ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGQyNGFkNTAuLjg2OWUxYTMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMyw2ICszLDEwIEBACiAjIHN1YmRpcmVjdG9yaWVzIGhlcmUuIEFkZCB0aGVtIGluIHRoZSAiLmdpdGlnbm9yZSIgZmlsZQogIyBpbiB0aGF0IHN1YmRpcmVjdG9yeSBpbnN0ZWFkLgogIworIyBOT1RFISBQbGVhc2UgdXNlICdnaXQtbHMtZmlsZXMgLWkgLS1leGNsdWRlLXN0YW5kYXJkJworIyBjb21tYW5kIGFmdGVyIGNoYW5naW5nIHRoaXMgZmlsZSwgdG8gc2VlIGlmIHRoZXJlIGFyZQorIyBhbnkgdHJhY2tlZCBmaWxlcyB3aGljaCBnZXQgaWdub3JlZCBhZnRlciB0aGUgY2hhbmdlLgorIwogIyBOb3JtYWwgcnVsZXMKICMKIC4qCkBAIC0xOCwxOCArMjIsMjEgQEAKICoubHN0CiAqLnN5bXR5cGVzCiAqLm9yZGVyCisqLmVsZgorKi5iaW4KKyouZ3oKIAogIwogIyBUb3AtbGV2ZWwgZ2VuZXJpYyBmaWxlcwogIwogdGFncwogVEFHUwotdm1saW51eCoKLSF2bWxpbnV4Lmxkcy5TCit2bWxpbnV4CiBTeXN0ZW0ubWFwCiBNb2R1bGUubWFya2VycwogTW9kdWxlLnN5bXZlcnMKICEuZ2l0aWdub3JlCishLm1haWxtYXAKIAogIwogIyBHZW5lcmF0ZWQgaW5jbHVkZSBmaWxlcwpkaWZmIC0tZ2l0IGEvQ1JFRElUUyBiL0NSRURJVFMKaW5kZXggOGZlYzdiMy4uZTk3YmVhMCAxMDA2NDQKLS0tIGEvQ1JFRElUUworKysgYi9DUkVESVRTCkBAIC0yNjExLDggKzI2MTEsOSBAQAogUzogQXVzdHJhbGlhCiAKIE46IE1pZ3VlbCBPamVkYSBTYW5kb25pcwotRTogbWF4ZXh0cmVtZUBnbWFpbC5jb20KLVc6IGh0dHA6Ly9tYXhleHRyZW1lLmdvb2dsZXBhZ2VzLmNvbS8KK0U6IG1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20KK1c6IGh0dHA6Ly9taWd1ZWxvamVkYS5lcworVzogaHR0cDovL2phaXIubGFiLmZpLnV2YS5lcy9+bWlnb2plZC8KIEQ6IEF1dGhvciBvZiB0aGUga3MwMTA4LCBjZmFnMTI4NjRiIGFuZCBjZmFnMTI4NjRiZmIgYXV4aWxpYXJ5IGRpc3BsYXkgZHJpdmVycy4KIEQ6IE1haW50YWluZXIgb2YgdGhlIGF1eGlsaWFyeSBkaXNwbGF5IGRyaXZlcnMgdHJlZSAoZHJpdmVycy9hdXhkaXNwbGF5LyopCiBTOiBDLyBNaWVzZXMgMjAsIDktQgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1ibG9jayBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYmxvY2sKaW5kZXggNGJkOWVhNS4uNDRmNTJhNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1ibG9jaworKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrCkBAIC0yNiwzICsyNiwzNyBAQAogCQlJL08gc3RhdGlzdGljcyBvZiBwYXJ0aXRpb24gPHBhcnQ+LiBUaGUgZm9ybWF0IGlzIHRoZQogCQlzYW1lIGFzIHRoZSBhYm92ZS13cml0dGVuIC9zeXMvYmxvY2svPGRpc2s+L3N0YXQKIAkJZm9ybWF0LgorCisKK1doYXQ6CQkvc3lzL2Jsb2NrLzxkaXNrPi9pbnRlZ3JpdHkvZm9ybWF0CitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorRGVzY3JpcHRpb246CisJCU1ldGFkYXRhIGZvcm1hdCBmb3IgaW50ZWdyaXR5IGNhcGFibGUgYmxvY2sgZGV2aWNlLgorCQlFLmcuIFQxMC1ESUYtVFlQRTEtQ1JDLgorCisKK1doYXQ6CQkvc3lzL2Jsb2NrLzxkaXNrPi9pbnRlZ3JpdHkvcmVhZF92ZXJpZnkKK0RhdGU6CQlKdW5lIDIwMDgKK0NvbnRhY3Q6CU1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CitEZXNjcmlwdGlvbjoKKwkJSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJsb2NrIGxheWVyIHNob3VsZCB2ZXJpZnkgdGhlCisJCWludGVncml0eSBvZiByZWFkIHJlcXVlc3RzIHNlcnZpY2VkIGJ5IGRldmljZXMgdGhhdAorCQlzdXBwb3J0IHNlbmRpbmcgaW50ZWdyaXR5IG1ldGFkYXRhLgorCisKK1doYXQ6CQkvc3lzL2Jsb2NrLzxkaXNrPi9pbnRlZ3JpdHkvdGFnX3NpemUKK0RhdGU6CQlKdW5lIDIwMDgKK0NvbnRhY3Q6CU1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CitEZXNjcmlwdGlvbjoKKwkJTnVtYmVyIG9mIGJ5dGVzIG9mIGludGVncml0eSB0YWcgc3BhY2UgYXZhaWxhYmxlIHBlcgorCQk1MTIgYnl0ZXMgb2YgZGF0YS4KKworCitXaGF0OgkJL3N5cy9ibG9jay88ZGlzaz4vaW50ZWdyaXR5L3dyaXRlX2dlbmVyYXRlCitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorRGVzY3JpcHRpb246CisJCUluZGljYXRlcyB3aGV0aGVyIHRoZSBibG9jayBsYXllciBzaG91bGQgYXV0b21hdGljYWxseQorCQlnZW5lcmF0ZSBjaGVja3N1bXMgZm9yIHdyaXRlIHJlcXVlc3RzIGJvdW5kIGZvcgorCQlkZXZpY2VzIHRoYXQgc3VwcG9ydCByZWNlaXZpbmcgaW50ZWdyaXR5IG1ldGFkYXRhLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtY3NzIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1ODVlYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1jc3MKQEAgLTAsMCArMSwzNSBAQAorV2hhdDoJCS9zeXMvYnVzL2Nzcy9kZXZpY2VzLy4uLi90eXBlCitEYXRlOgkJTWFyY2ggMjAwOAorQ29udGFjdDoJQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorCQlsaW51eC1zMzkwQHZnZXIua2VybmVsLm9yZworRGVzY3JpcHRpb246CUNvbnRhaW5zIHRoZSBzdWJjaGFubmVsIHR5cGUsIGFzIHJlcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4KKwkJVGhpcyBhdHRyaWJ1dGUgaXMgcHJlc2VudCBmb3IgYWxsIHN1YmNoYW5uZWwgdHlwZXMuCisKK1doYXQ6CQkvc3lzL2J1cy9jc3MvZGV2aWNlcy8uLi4vbW9kYWxpYXMKK0RhdGU6CQlNYXJjaCAyMDA4CitDb250YWN0OglDb3JuZWxpYSBIdWNrIDxjb3JuZWxpYS5odWNrQGRlLmlibS5jb20+CisJCWxpbnV4LXMzOTBAdmdlci5rZXJuZWwub3JnCitEZXNjcmlwdGlvbjoJQ29udGFpbnMgdGhlIG1vZHVsZSBhbGlhcyBhcyByZXBvcnRlZCB3aXRoIHVldmVudHMuCisJCUl0IGlzIG9mIHRoZSBmb3JtYXQgY3NzOnQ8dHlwZT4gYW5kIHByZXNlbnQgZm9yIGFsbAorCQlzdWJjaGFubmVsIHR5cGVzLgorCitXaGF0OgkJL3N5cy9idXMvY3NzL2RyaXZlcnMvaW9fc3ViY2hhbm5lbC8uLi4vY2hwaWRzCitEYXRlOgkJRGVjZW1iZXIgMjAwMgorQ29udGFjdDoJQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorCQlsaW51eC1zMzkwQHZnZXIua2VybmVsLm9yZworRGVzY3JpcHRpb246CUNvbnRhaW5zIHRoZSBpZHMgb2YgdGhlIGNoYW5uZWwgcGF0aHMgdXNlZCBieSB0aGlzCisJCXN1YmNoYW5uZWwsIGFzIHJlcG9ydGVkIGJ5IHRoZSBjaGFubmVsIHN1YnN5c3RlbQorCQlkdXJpbmcgc3ViY2hhbm5lbCByZWNvZ25pdGlvbi4KKwkJTm90ZTogVGhpcyBpcyBhbiBJL08tc3ViY2hhbm5lbCBzcGVjaWZpYyBhdHRyaWJ1dGUuCitVc2VyczoJCXMzOTAtdG9vbHMsIEhBTAorCitXaGF0OgkJL3N5cy9idXMvY3NzL2RyaXZlcnMvaW9fc3ViY2hhbm5lbC8uLi4vcGltcGFtcG9tCitEYXRlOgkJRGVjZW1iZXIgMjAwMgorQ29udGFjdDoJQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorCQlsaW51eC1zMzkwQHZnZXIua2VybmVsLm9yZworRGVzY3JpcHRpb246CUNvbnRhaW5zIHRoZSBQSU0vUEFNL1BPTSB2YWx1ZXMsIGFzIHJlcG9ydGVkIGJ5IHRoZQorCQljaGFubmVsIHN1YnN5c3RlbSB3aGVuIGxhc3QgcXVlcmllZCBieSB0aGUgY29tbW9uIEkvTworCQlsYXllciAodGhpcyBpbXBsaWVzIHRoYXQgdGhpcyBhdHRyaWJ1dGUgaXMgbm90IG5lY2Nlc3NhcmlseQorCQlpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBjdXJyZW50IGluIHRoZSBjaGFubmVsIHN1YnN5c3RlbSkuCisJCU5vdGU6IFRoaXMgaXMgYW4gSS9PLXN1YmNoYW5uZWwgc3BlY2lmaWMgYXR0cmlidXRlLgorVXNlcnM6CQlzMzkwLXRvb2xzLCBIQUwKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZmlybXdhcmUtbWVtbWFwIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1maXJtd2FyZS1tZW1tYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ5OWVlNgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZmlybXdhcmUtbWVtbWFwCkBAIC0wLDAgKzEsNzEgQEAKK1doYXQ6CQkvc3lzL2Zpcm13YXJlL21lbW1hcC8KK0RhdGU6CQlKdW5lIDIwMDgKK0NvbnRhY3Q6CUJlcm5oYXJkIFdhbGxlIDxid2FsbGVAc3VzZS5kZT4KK0Rlc2NyaXB0aW9uOgorCQlPbiBhbGwgcGxhdGZvcm1zLCB0aGUgZmlybXdhcmUgcHJvdmlkZXMgYSBtZW1vcnkgbWFwIHdoaWNoIHRoZQorCQlrZXJuZWwgcmVhZHMuIFRoZSByZXNvdXJjZXMgZnJvbSB0aGF0IG1lbW9yeSBtYXAgYXJlIHJlZ2lzdGVyZWQKKwkJaW4gdGhlIGtlcm5lbCByZXNvdXJjZSB0cmVlIGFuZCBleHBvc2VkIHRvIHVzZXJzcGFjZSB2aWEKKwkJL3Byb2MvaW9tZW0gKHRvZ2V0aGVyIHdpdGggb3RoZXIgcmVzb3VyY2VzKS4KKworCQlIb3dldmVyLCBvbiBtb3N0IGFyY2hpdGVjdHVyZXMgdGhhdCBmaXJtd2FyZS1wcm92aWRlZCBtZW1vcnkKKwkJbWFwIGlzIG1vZGlmaWVkIGFmdGVyd2FyZHMgYnkgdGhlIGtlcm5lbCBpdHNlbGYsIGVpdGhlciBiZWNhdXNlCisJCXRoZSBrZXJuZWwgbWVyZ2VzIHRoYXQgbWVtb3J5IG1hcCB3aXRoIG90aGVyIGluZm9ybWF0aW9uIG9yCisJCWp1c3QgYmVjYXVzZSB0aGUgdXNlciBvdmVyd3JpdGVzIHRoYXQgbWVtb3J5IG1hcCB2aWEgY29tbWFuZAorCQlsaW5lLgorCisJCWtleGVjIG5lZWRzIHRoZSByYXcgZmlybXdhcmUtcHJvdmlkZWQgbWVtb3J5IG1hcCB0byBzZXR1cCB0aGUKKwkJcGFyYW1ldGVyIHNlZ21lbnQgb2YgdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBib290ZWQgd2l0aAorCQlrZXhlYy4gQWxzbywgdGhlIHJhdyBtZW1vcnkgbWFwIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nLiBGb3IKKwkJdGhhdCByZWFzb24sIC9zeXMvZmlybXdhcmUvbWVtbWFwIGlzIGFuIGludGVyZmFjZSB0aGF0IHByb3ZpZGVzCisJCXRoZSByYXcgbWVtb3J5IG1hcCB0byB1c2Vyc3BhY2UuCisKKwkJVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3dzOiBVbmRlciAvc3lzL2Zpcm13YXJlL21lbW1hcCB0aGVyZQorCQlhcmUgc3ViZGlyZWN0b3JpZXMgd2l0aCB0aGUgbnVtYmVyIG9mIHRoZSBlbnRyeSBhcyB0aGVpciBuYW1lOgorCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8wCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8xCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8yCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8zCisJCQkuLi4KKworCQlUaGUgbWF4aW11bSBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbWVtb3J5IG1hcCBlbnRyaWVzIHByb3ZpZGVkCisJCWJ5IHRoZSBmaXJtd2FyZS4gVGhlIG9yZGVyIGlzIGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhlIGZpcm13YXJlCisJCXByb3ZpZGVzLgorCisJCUVhY2ggZGlyZWN0b3J5IGNvbnRhaW5zIHRocmVlIGZpbGVzOgorCisJCXN0YXJ0CTogVGhlIHN0YXJ0IGFkZHJlc3MgKGFzIGhleGFkZWNpbWFsIG51bWJlciB3aXRoIHRoZQorCQkJICAnMHgnIHByZWZpeCkuCisJCWVuZAk6IFRoZSBlbmQgYWRkcmVzcywgaW5jbHVzaXZlIChyZWdhcmRsZXNzIHdoZXRoZXIgdGhlCisJCQkgIGZpcm13YXJlIHByb3ZpZGVzIGluY2x1c2l2ZSBvciBleGNsdXNpdmUgcmFuZ2VzKS4KKwkJdHlwZQk6IFR5cGUgb2YgdGhlIGVudHJ5IGFzIHN0cmluZy4gU2VlIGJlbG93IGZvciBhIGxpc3Qgb2YKKwkJCSAgdmFsaWQgdHlwZXMuCisKKwkJU28sIGZvciBleGFtcGxlOgorCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8wL3N0YXJ0CisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8wL2VuZAorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMC90eXBlCisJCQkvc3lzL2Zpcm13YXJlL21lbW1hcC8xL3N0YXJ0CisJCQkuLi4KKworCQlDdXJyZW50bHkgZm9sbG93aW5nIHR5cGVzIGV4aXN0OgorCisJCSAgLSBTeXN0ZW0gUkFNCisJCSAgLSBBQ1BJIFRhYmxlcworCQkgIC0gQUNQSSBOb24tdm9sYXRpbGUgU3RvcmFnZQorCQkgIC0gcmVzZXJ2ZWQKKworCQlGb2xsb3dpbmcgc2hlbGwgc25pcHBldCBjYW4gYmUgdXNlZCB0byBkaXNwbGF5IHRoYXQgbWVtb3J5CisJCW1hcCBpbiBhIGh1bWFuLXJlYWRhYmxlIGZvcm1hdDoKKworCQktLS0tLS0tLS0tLS0tLS0tLS0tLSA4PCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAgIyEvYmluL2Jhc2gKKwkJICBjZCAvc3lzL2Zpcm13YXJlL21lbW1hcAorCQkgIGZvciBkaXIgaW4gKiA7IGRvCisJCSAgICAgIHN0YXJ0PSQoY2F0ICRkaXIvc3RhcnQpCisJCSAgICAgIGVuZD0kKGNhdCAkZGlyL2VuZCkKKwkJICAgICAgdHlwZT0kKGNhdCAkZGlyL3R5cGUpCisJCSAgICAgIHByaW50ZiAiJTAxNngtJTAxNnggKCVzKVxuIiAkc3RhcnQgJFsgJGVuZCArMV0gIiR0eXBlIgorCQkgIGRvbmUKKwkJLS0tLS0tLS0tLS0tLS0tLS0tLS0gPjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tnZGIudG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9rZ2RiLnRtcGwKaW5kZXggMDI4YTg0NC4uZThhY2QxZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tnZGIudG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2sva2dkYi50bXBsCkBAIC04NCwxMCArODQsOSBAQAogICAgIHJ1bnMgYW4gaW5zdGFuY2Ugb2YgZ2RiIGFnYWluc3QgdGhlIHZtbGludXggZmlsZSB3aGljaCBjb250YWlucwogICAgIHRoZSBzeW1ib2xzIChub3QgYm9vdCBpbWFnZSBzdWNoIGFzIGJ6SW1hZ2UsIHpJbWFnZSwgdUltYWdlLi4uKS4KICAgICBJbiBnZGIgdGhlIGRldmVsb3BlciBzcGVjaWZpZXMgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBhbmQKLSAgICBjb25uZWN0cyB0byBrZ2RiLiAgRGVwZW5kaW5nIG9uIHdoaWNoIGtnZGIgSS9PIG1vZHVsZXMgZXhpc3QgaW4KLSAgICB0aGUga2VybmVsIGZvciBhIGdpdmVuIGFyY2hpdGVjdHVyZSwgaXQgbWF5IGJlIHBvc3NpYmxlIHRvIGRlYnVnCi0gICAgdGhlIHRlc3QgbWFjaGluZSdzIGtlcm5lbCB3aXRoIHRoZSBkZXZlbG9wbWVudCBtYWNoaW5lIHVzaW5nIGEKLSAgICByczIzMiBvciBldGhlcm5ldCBjb25uZWN0aW9uLgorICAgIGNvbm5lY3RzIHRvIGtnZGIuICBUaGUgdHlwZSBvZiBjb25uZWN0aW9uIGEgZGV2ZWxvcGVyIG1ha2VzIHdpdGgKKyAgICBnZGIgZGVwZW5kcyBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGtnZGIgSS9PIG1vZHVsZXMgY29tcGlsZWQgYXMKKyAgICBidWlsdGluJ3Mgb3Iga2VybmVsIG1vZHVsZXMgaW4gdGhlIHRlc3QgbWFjaGluZSdzIGtlcm5lbC4KICAgICA8L3BhcmE+CiAgIDwvY2hhcHRlcj4KICAgPGNoYXB0ZXIgaWQ9IkNvbXBpbGluZ0FLZXJuZWwiPgpAQCAtMjIzLDcgKzIyMiw3IEBACiAgIDwvcGFyYT4KICAgPHBhcmE+CiAgIElNUE9SVEFOVCBOT1RFOiBVc2luZyB0aGlzIG9wdGlvbiB3aXRoIGtnZGIgb3ZlciB0aGUgY29uc29sZQotICAoa2dkYm9jKSBvciBrZ2RiIG92ZXIgZXRoZXJuZXQgKGtnZGJvZSkgaXMgbm90IHN1cHBvcnRlZC4KKyAgKGtnZGJvYykgaXMgbm90IHN1cHBvcnRlZC4KICAgPC9wYXJhPgogICA8L3NlY3QxPgogICA8L2NoYXB0ZXI+CkBAIC0yNDksMTggKzI0OCwxMSBAQAogICAgIChnZGIpIHRhcmdldCByZW1vdGUgL2Rldi90dHlTMAogICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgPHBhcmE+Ci0gICAgRXhhbXBsZSAoa2dkYiB0byBhIHRlcm1pbmFsIHNlcnZlcik6CisgICAgRXhhbXBsZSAoa2dkYiB0byBhIHRlcm1pbmFsIHNlcnZlciBvbiB0Y3AgcG9ydCAyMDEyKToKICAgICA8L3BhcmE+CiAgICAgPHByb2dyYW1saXN0aW5nPgogICAgICUgZ2RiIC4vdm1saW51eAotICAgIChnZGIpIHRhcmdldCByZW1vdGUgdWRwOjE5Mi4xNjguMi4yOjY0NDMKLSAgICA8L3Byb2dyYW1saXN0aW5nPgotICAgIDxwYXJhPgotICAgIEV4YW1wbGUgKGtnZGIgb3ZlciBldGhlcm5ldCk6Ci0gICAgPC9wYXJhPgotICAgIDxwcm9ncmFtbGlzdGluZz4KLSAgICAlIGdkYiAuL3ZtbGludXgKLSAgICAoZ2RiKSB0YXJnZXQgcmVtb3RlIHVkcDoxOTIuMTY4LjIuMjo2NDQzCisgICAgKGdkYikgdGFyZ2V0IHJlbW90ZSAxOTIuMTY4LjIuMjoyMDEyCiAgICAgPC9wcm9ncmFtbGlzdGluZz4KICAgICA8cGFyYT4KICAgICBPbmNlIGNvbm5lY3RlZCwgeW91IGNhbiBkZWJ1ZyBhIGtlcm5lbCB0aGUgd2F5IHlvdSB3b3VsZCBkZWJ1ZyBhbgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9IT1dUTyBiL0RvY3VtZW50YXRpb24vSE9XVE8KaW5kZXggMDI5MWFkZS4uNjE5ZThjYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9IT1dUTworKysgYi9Eb2N1bWVudGF0aW9uL0hPV1RPCkBAIC0zNzcsNyArMzc3LDcgQEAKIGJ1Z3ppbGxhLmtlcm5lbC5vcmcgaXMgd2hlcmUgdGhlIExpbnV4IGtlcm5lbCBkZXZlbG9wZXJzIHRyYWNrIGtlcm5lbAogYnVncy4gIFVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHJlcG9ydCBhbGwgYnVncyB0aGF0IHRoZXkgZmluZCBpbiB0aGlzCiB0b29sLiAgRm9yIGRldGFpbHMgb24gaG93IHRvIHVzZSB0aGUga2VybmVsIGJ1Z3ppbGxhLCBwbGVhc2Ugc2VlOgotCWh0dHA6Ly90ZXN0Lmtlcm5lbC5vcmcvYnVnemlsbGEvZmFxLmh0bWwKKwlodHRwOi8vYnVnemlsbGEua2VybmVsLm9yZy9wYWdlLmNnaT9pZD1mYXEuaHRtbAogCiBUaGUgZmlsZSBSRVBPUlRJTkctQlVHUyBpbiB0aGUgbWFpbiBrZXJuZWwgc291cmNlIGRpcmVjdG9yeSBoYXMgYSBnb29kCiB0ZW1wbGF0ZSBmb3IgaG93IHRvIHJlcG9ydCBhIHBvc3NpYmxlIGtlcm5lbCBidWcsIGFuZCBkZXRhaWxzIHdoYXQga2luZApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hY2NvdW50aW5nL3Rhc2tzdGF0cy1zdHJ1Y3QudHh0IGIvRG9jdW1lbnRhdGlvbi9hY2NvdW50aW5nL3Rhc2tzdGF0cy1zdHJ1Y3QudHh0CmluZGV4IDhhYTc1MjkuLmNkNzg0ZjQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYWNjb3VudGluZy90YXNrc3RhdHMtc3RydWN0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2FjY291bnRpbmcvdGFza3N0YXRzLXN0cnVjdC50eHQKQEAgLTI0LDYgKzI0LDggQEAKIAogNCkgUGVyLXRhc2sgYW5kIHBlci10aHJlYWQgY29udGV4dCBzd2l0Y2ggY291bnQgc3RhdGlzdGljcwogCis1KSBUaW1lIGFjY291bnRpbmcgZm9yIFNNVCBtYWNoaW5lcworCiBGdXR1cmUgZXh0ZW5zaW9uIHNob3VsZCBhZGQgZmllbGRzIHRvIHRoZSBlbmQgb2YgdGhlIHRhc2tzdGF0cyBzdHJ1Y3QsIGFuZAogc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIGVhY2ggZmllbGQgd2l0aGluIHRoZSBzdHJ1Y3QuCiAKQEAgLTE2NCw0ICsxNjYsOCBAQAogCV9fdTY0CW52Y3N3OwkJCS8qIENvbnRleHQgdm9sdW50YXJ5IHN3aXRjaCBjb3VudGVyICovCiAJX191NjQJbml2Y3N3OwkJCS8qIENvbnRleHQgaW52b2x1bnRhcnkgc3dpdGNoIGNvdW50ZXIgKi8KIAorNSkgVGltZSBhY2NvdW50aW5nIGZvciBTTVQgbWFjaGluZXMKKwlfX3U2NAlhY191dGltZXNjYWxlZDsJCS8qIHV0aW1lIHNjYWxlZCBvbiBmcmVxdWVuY3kgZXRjICovCisJX191NjQJYWNfc3RpbWVzY2FsZWQ7CQkvKiBzdGltZSBzY2FsZWQgb24gZnJlcXVlbmN5IGV0YyAqLworCV9fdTY0CWNwdV9zY2FsZWRfcnVuX3JlYWxfdG90YWw7IC8qIHNjYWxlZCBjcHVfcnVuX3JlYWxfdG90YWwgKi8KIH0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiIGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGIKaW5kZXggYjcxNDE4My4uZWI3YmUzOSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGIKKysrIGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGIKQEAgLTMsNyArMyw3IEBACiAJPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogTGljZW5zZToJCUdQTHYyCi1BdXRob3IgJiBNYWludGFpbmVyOglNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorQXV0aG9yICYgTWFpbnRhaW5lcjoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCiBEYXRlOgkJCTIwMDYtMTAtMjcKIAogCkBAIC0yMiw3ICsyMiw3IEBACiAxLiBEUklWRVIgSU5GT1JNQVRJT04KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1UaGlzIGRyaXZlciBzdXBwb3J0IG9uZSBjZmFnMTI4NjRiIGRpc3BsYXkgYXQgdGltZS4KK1RoaXMgZHJpdmVyIHN1cHBvcnRzIGEgY2ZhZzEyODY0YiBMQ0QuCiAKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi1leGFtcGxlLmMgYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi1leGFtcGxlLmMKaW5kZXggN2JmYWMzNS4uMmNhZWVhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGItZXhhbXBsZS5jCisrKyBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiLWV4YW1wbGUuYwpAQCAtNCw3ICs0LDcgQEAKICAqIERlc2NyaXB0aW9uOiBjZmFnMTI4NjRiIExDRCB1c2Vyc3BhY2UgZXhhbXBsZSBwcm9ncmFtCiAgKiAgICAgTGljZW5zZTogR1BMdjIKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0zMQogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2tzMDEwOCBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9rczAxMDgKaW5kZXggOTJiMDNiNi4uOGRkZGEwYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2tzMDEwOAorKysgYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkva3MwMTA4CkBAIC0zLDcgKzMsNyBAQAogCT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiBMaWNlbnNlOgkJR1BMdjIKLUF1dGhvciAmIE1haW50YWluZXI6CU1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CitBdXRob3IgJiBNYWludGFpbmVyOglNaWd1ZWwgT2plZGEgU2FuZG9uaXMKIERhdGU6CQkJMjAwNi0xMC0yNwogCiAKQEAgLTIxLDcgKzIxLDcgQEAKIDEuIERSSVZFUiBJTkZPUk1BVElPTgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRoaXMgZHJpdmVyIHN1cHBvcnQgdGhlIGtzMDEwOCBMQ0QgY29udHJvbGxlci4KK1RoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBrczAxMDggTENEIGNvbnRyb2xsZXIuCiAKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Jsb2NrL2RhdGEtaW50ZWdyaXR5LnR4dCBiL0RvY3VtZW50YXRpb24vYmxvY2svZGF0YS1pbnRlZ3JpdHkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZGM4ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2Jsb2NrL2RhdGEtaW50ZWdyaXR5LnR4dApAQCAtMCwwICsxLDMyNyBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMS4gSU5UUk9EVUNUSU9OCisKK01vZGVybiBmaWxlc3lzdGVtcyBmZWF0dXJlIGNoZWNrc3VtbWluZyBvZiBkYXRhIGFuZCBtZXRhZGF0YSB0bworcHJvdGVjdCBhZ2FpbnN0IGRhdGEgY29ycnVwdGlvbi4gIEhvd2V2ZXIsIHRoZSBkZXRlY3Rpb24gb2YgdGhlCitjb3JydXB0aW9uIGlzIGRvbmUgYXQgcmVhZCB0aW1lIHdoaWNoIGNvdWxkIHBvdGVudGlhbGx5IGJlIG1vbnRocworYWZ0ZXIgdGhlIGRhdGEgd2FzIHdyaXR0ZW4uICBBdCB0aGF0IHBvaW50IHRoZSBvcmlnaW5hbCBkYXRhIHRoYXQgdGhlCithcHBsaWNhdGlvbiB0cmllZCB0byB3cml0ZSBpcyBtb3N0IGxpa2VseSBsb3N0LgorCitUaGUgc29sdXRpb24gaXMgdG8gZW5zdXJlIHRoYXQgdGhlIGRpc2sgaXMgYWN0dWFsbHkgc3RvcmluZyB3aGF0IHRoZQorYXBwbGljYXRpb24gbWVhbnQgaXQgdG8uICBSZWNlbnQgYWRkaXRpb25zIHRvIGJvdGggdGhlIFNDU0kgZmFtaWx5Citwcm90b2NvbHMgKFNCQyBEYXRhIEludGVncml0eSBGaWVsZCwgU0NDIHByb3RlY3Rpb24gcHJvcG9zYWwpIGFzIHdlbGwKK2FzIFNBVEEvVDEzIChFeHRlcm5hbCBQYXRoIFByb3RlY3Rpb24pIHRyeSB0byByZW1lZHkgdGhpcyBieSBhZGRpbmcKK3N1cHBvcnQgZm9yIGFwcGVuZGluZyBpbnRlZ3JpdHkgbWV0YWRhdGEgdG8gYW4gSS9PLiAgVGhlIGludGVncml0eQorbWV0YWRhdGEgKG9yIHByb3RlY3Rpb24gaW5mb3JtYXRpb24gaW4gU0NTSSB0ZXJtaW5vbG9neSkgaW5jbHVkZXMgYQorY2hlY2tzdW0gZm9yIGVhY2ggc2VjdG9yIGFzIHdlbGwgYXMgYW4gaW5jcmVtZW50aW5nIGNvdW50ZXIgdGhhdAorZW5zdXJlcyB0aGUgaW5kaXZpZHVhbCBzZWN0b3JzIGFyZSB3cml0dGVuIGluIHRoZSByaWdodCBvcmRlci4gIEFuZAorZm9yIHNvbWUgcHJvdGVjdGlvbiBzY2hlbWVzIGFsc28gdGhhdCB0aGUgSS9PIGlzIHdyaXR0ZW4gdG8gdGhlIHJpZ2h0CitwbGFjZSBvbiBkaXNrLgorCitDdXJyZW50IHN0b3JhZ2UgY29udHJvbGxlcnMgYW5kIGRldmljZXMgaW1wbGVtZW50IHZhcmlvdXMgcHJvdGVjdGl2ZQorbWVhc3VyZXMsIGZvciBpbnN0YW5jZSBjaGVja3N1bW1pbmcgYW5kIHNjcnViYmluZy4gIEJ1dCB0aGVzZQordGVjaG5vbG9naWVzIGFyZSB3b3JraW5nIGluIHRoZWlyIG93biBpc29sYXRlZCBkb21haW5zIG9yIGF0IGJlc3QKK2JldHdlZW4gYWRqYWNlbnQgbm9kZXMgaW4gdGhlIEkvTyBwYXRoLiAgVGhlIGludGVyZXN0aW5nIHRoaW5nIGFib3V0CitESUYgYW5kIHRoZSBvdGhlciBpbnRlZ3JpdHkgZXh0ZW5zaW9ucyBpcyB0aGF0IHRoZSBwcm90ZWN0aW9uIGZvcm1hdAoraXMgd2VsbCBkZWZpbmVkIGFuZCBldmVyeSBub2RlIGluIHRoZSBJL08gcGF0aCBjYW4gdmVyaWZ5IHRoZQoraW50ZWdyaXR5IG9mIHRoZSBJL08gYW5kIHJlamVjdCBpdCBpZiBjb3JydXB0aW9uIGlzIGRldGVjdGVkLiAgVGhpcworYWxsb3dzIG5vdCBvbmx5IGNvcnJ1cHRpb24gcHJldmVudGlvbiBidXQgYWxzbyBpc29sYXRpb24gb2YgdGhlIHBvaW50CitvZiBmYWlsdXJlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyLiBUSEUgREFUQSBJTlRFR1JJVFkgRVhURU5TSU9OUworCitBcyB3cml0dGVuLCB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9ucyBvbmx5IHByb3RlY3QgdGhlIHBhdGggYmV0d2VlbgorY29udHJvbGxlciBhbmQgc3RvcmFnZSBkZXZpY2UuICBIb3dldmVyLCBtYW55IGNvbnRyb2xsZXJzIGFjdHVhbGx5CithbGxvdyB0aGUgb3BlcmF0aW5nIHN5c3RlbSB0byBpbnRlcmFjdCB3aXRoIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEKKyhJTUQpLiAgV2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBzZXZlcmFsIEZDL1NBUyBIQkEgdmVuZG9ycyB0byBlbmFibGUKK3RoZSBwcm90ZWN0aW9uIGluZm9ybWF0aW9uIHRvIGJlIHRyYW5zZmVycmVkIHRvIGFuZCBmcm9tIHRoZWlyCitjb250cm9sbGVycy4KKworVGhlIFNDU0kgRGF0YSBJbnRlZ3JpdHkgRmllbGQgd29ya3MgYnkgYXBwZW5kaW5nIDggYnl0ZXMgb2YgcHJvdGVjdGlvbgoraW5mb3JtYXRpb24gdG8gZWFjaCBzZWN0b3IuICBUaGUgZGF0YSArIGludGVncml0eSBtZXRhZGF0YSBpcyBzdG9yZWQKK2luIDUyMCBieXRlIHNlY3RvcnMgb24gZGlzay4gIERhdGEgKyBJTUQgYXJlIGludGVybGVhdmVkIHdoZW4KK3RyYW5zZmVycmVkIGJldHdlZW4gdGhlIGNvbnRyb2xsZXIgYW5kIHRhcmdldC4gIFRoZSBUMTMgcHJvcG9zYWwgaXMKK3NpbWlsYXIuCisKK0JlY2F1c2UgaXQgaXMgaGlnaGx5IGluY29udmVuaWVudCBmb3Igb3BlcmF0aW5nIHN5c3RlbXMgdG8gZGVhbCB3aXRoCis1MjAgKGFuZCA0MTA0KSBieXRlIHNlY3RvcnMsIHdlIGFwcHJvYWNoZWQgc2V2ZXJhbCBIQkEgdmVuZG9ycyBhbmQKK2VuY291cmFnZWQgdGhlbSB0byBhbGxvdyBzZXBhcmF0aW9uIG9mIHRoZSBkYXRhIGFuZCBpbnRlZ3JpdHkgbWV0YWRhdGEKK3NjYXR0ZXItZ2F0aGVyIGxpc3RzLgorCitUaGUgY29udHJvbGxlciB3aWxsIGludGVybGVhdmUgdGhlIGJ1ZmZlcnMgb24gd3JpdGUgYW5kIHNwbGl0IHRoZW0gb24KK3JlYWQuICBUaGlzIG1lYW5zIHRoYXQgdGhlIExpbnV4IGNhbiBETUEgdGhlIGRhdGEgYnVmZmVycyB0byBhbmQgZnJvbQoraG9zdCBtZW1vcnkgd2l0aG91dCBjaGFuZ2VzIHRvIHRoZSBwYWdlIGNhY2hlLgorCitBbHNvLCB0aGUgMTYtYml0IENSQyBjaGVja3N1bSBtYW5kYXRlZCBieSBib3RoIHRoZSBTQ1NJIGFuZCBTQVRBIHNwZWNzCitpcyBzb21ld2hhdCBoZWF2eSB0byBjb21wdXRlIGluIHNvZnR3YXJlLiAgQmVuY2htYXJrcyBmb3VuZCB0aGF0CitjYWxjdWxhdGluZyB0aGlzIGNoZWNrc3VtIGhhZCBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBzeXN0ZW0KK3BlcmZvcm1hbmNlIGZvciBhIG51bWJlciBvZiB3b3JrbG9hZHMuICBTb21lIGNvbnRyb2xsZXJzIGFsbG93IGEKK2xpZ2h0ZXItd2VpZ2h0IGNoZWNrc3VtIHRvIGJlIHVzZWQgd2hlbiBpbnRlcmZhY2luZyB3aXRoIHRoZSBvcGVyYXRpbmcKK3N5c3RlbS4gIEVtdWxleCwgZm9yIGluc3RhbmNlLCBzdXBwb3J0cyB0aGUgVENQL0lQIGNoZWNrc3VtIGluc3RlYWQuCitUaGUgSVAgY2hlY2tzdW0gcmVjZWl2ZWQgZnJvbSB0aGUgT1MgaXMgY29udmVydGVkIHRvIHRoZSAxNi1iaXQgQ1JDCit3aGVuIHdyaXRpbmcgYW5kIHZpY2UgdmVyc2EuICBUaGlzIGFsbG93cyB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIHRvIGJlCitnZW5lcmF0ZWQgYnkgTGludXggb3IgdGhlIGFwcGxpY2F0aW9uIGF0IHZlcnkgbG93IGNvc3QgKGNvbXBhcmFibGUgdG8KK3NvZnR3YXJlIFJBSUQ1KS4KKworVGhlIElQIGNoZWNrc3VtIGlzIHdlYWtlciB0aGFuIHRoZSBDUkMgaW4gdGVybXMgb2YgZGV0ZWN0aW5nIGJpdAorZXJyb3JzLiAgSG93ZXZlciwgdGhlIHN0cmVuZ3RoIGlzIHJlYWxseSBpbiB0aGUgc2VwYXJhdGlvbiBvZiB0aGUgZGF0YQorYnVmZmVycyBhbmQgdGhlIGludGVncml0eSBtZXRhZGF0YS4gIFRoZXNlIHR3byBkaXN0aW5jdCBidWZmZXJzIG11Y2gKK21hdGNoIHVwIGZvciBhbiBJL08gdG8gY29tcGxldGUuCisKK1RoZSBzZXBhcmF0aW9uIG9mIHRoZSBkYXRhIGFuZCBpbnRlZ3JpdHkgbWV0YWRhdGEgYnVmZmVycyBhcyB3ZWxsIGFzCit0aGUgY2hvaWNlIGluIGNoZWNrc3VtcyBpcyByZWZlcnJlZCB0byBhcyB0aGUgRGF0YSBJbnRlZ3JpdHkKK0V4dGVuc2lvbnMuICBBcyB0aGVzZSBleHRlbnNpb25zIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGUgcHJvdG9jb2wKK2JvZGllcyAoVDEwLCBUMTMpLCBPcmFjbGUgYW5kIGl0cyBwYXJ0bmVycyBhcmUgdHJ5aW5nIHRvIHN0YW5kYXJkaXplCit0aGVtIHdpdGhpbiB0aGUgU3RvcmFnZSBOZXR3b3JraW5nIEluZHVzdHJ5IEFzc29jaWF0aW9uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiszLiBLRVJORUwgQ0hBTkdFUworCitUaGUgZGF0YSBpbnRlZ3JpdHkgZnJhbWV3b3JrIGluIExpbnV4IGVuYWJsZXMgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbgordG8gYmUgcGlubmVkIHRvIEkvT3MgYW5kIHNlbnQgdG8vcmVjZWl2ZWQgZnJvbSBjb250cm9sbGVycyB0aGF0CitzdXBwb3J0IGl0LgorCitUaGUgYWR2YW50YWdlIHRvIHRoZSBpbnRlZ3JpdHkgZXh0ZW5zaW9ucyBpbiBTQ1NJIGFuZCBTQVRBIGlzIHRoYXQKK3RoZXkgZW5hYmxlIHVzIHRvIHByb3RlY3QgdGhlIGVudGlyZSBwYXRoIGZyb20gYXBwbGljYXRpb24gdG8gc3RvcmFnZQorZGV2aWNlLiAgSG93ZXZlciwgYXQgdGhlIHNhbWUgdGltZSB0aGlzIGlzIGFsc28gdGhlIGJpZ2dlc3QKK2Rpc2FkdmFudGFnZS4gSXQgbWVhbnMgdGhhdCB0aGUgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiBtdXN0IGJlIGluIGEKK2Zvcm1hdCB0aGF0IGNhbiBiZSB1bmRlcnN0b29kIGJ5IHRoZSBkaXNrLgorCitHZW5lcmFsbHkgTGludXgvUE9TSVggYXBwbGljYXRpb25zIGFyZSBhZ25vc3RpYyB0byB0aGUgaW50cmljYWNpZXMgb2YKK3RoZSBzdG9yYWdlIGRldmljZXMgdGhleSBhcmUgYWNjZXNzaW5nLiAgVGhlIHZpcnR1YWwgZmlsZXN5c3RlbSBzd2l0Y2gKK2FuZCB0aGUgYmxvY2sgbGF5ZXIgbWFrZSB0aGluZ3MgbGlrZSBoYXJkd2FyZSBzZWN0b3Igc2l6ZSBhbmQKK3RyYW5zcG9ydCBwcm90b2NvbHMgY29tcGxldGVseSB0cmFuc3BhcmVudCB0byB0aGUgYXBwbGljYXRpb24uCisKK0hvd2V2ZXIsIHRoaXMgbGV2ZWwgb2YgZGV0YWlsIGlzIHJlcXVpcmVkIHdoZW4gcHJlcGFyaW5nIHRoZQorcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiB0byBzZW5kIHRvIGEgZGlzay4gIENvbnNlcXVlbnRseSwgdGhlIHZlcnkKK2NvbmNlcHQgb2YgYW4gZW5kLXRvLWVuZCBwcm90ZWN0aW9uIHNjaGVtZSBpcyBhIGxheWVyaW5nIHZpb2xhdGlvbi4KK0l0IGlzIGNvbXBsZXRlbHkgdW5yZWFzb25hYmxlIGZvciBhbiBhcHBsaWNhdGlvbiB0byBiZSBhd2FyZSB3aGV0aGVyCitpdCBpcyBhY2Nlc3NpbmcgYSBTQ1NJIG9yIFNBVEEgZGlzay4KKworVGhlIGRhdGEgaW50ZWdyaXR5IHN1cHBvcnQgaW1wbGVtZW50ZWQgaW4gTGludXggYXR0ZW1wdHMgdG8gaGlkZSB0aGlzCitmcm9tIHRoZSBhcHBsaWNhdGlvbi4gIEFzIGZhciBhcyB0aGUgYXBwbGljYXRpb24gKGFuZCB0byBzb21lIGV4dGVudAordGhlIGtlcm5lbCkgaXMgY29uY2VybmVkLCB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGlzIG9wYXF1ZSBpbmZvcm1hdGlvbgordGhhdCdzIGF0dGFjaGVkIHRvIHRoZSBJL08uCisKK1RoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFsbG93cyB0aGUgYmxvY2sgbGF5ZXIgdG8gYXV0b21hdGljYWxseQorZ2VuZXJhdGUgdGhlIHByb3RlY3Rpb24gaW5mb3JtYXRpb24gZm9yIGFueSBJL08uICBFdmVudHVhbGx5IHRoZQoraW50ZW50IGlzIHRvIG1vdmUgdGhlIGludGVncml0eSBtZXRhZGF0YSBjYWxjdWxhdGlvbiB0byB1c2Vyc3BhY2UgZm9yCit1c2VyIGRhdGEuICBNZXRhZGF0YSBhbmQgb3RoZXIgSS9PIHRoYXQgb3JpZ2luYXRlcyB3aXRoaW4gdGhlIGtlcm5lbAord2lsbCBzdGlsbCB1c2UgdGhlIGF1dG9tYXRpYyBnZW5lcmF0aW9uIGludGVyZmFjZS4KKworU29tZSBzdG9yYWdlIGRldmljZXMgYWxsb3cgZWFjaCBoYXJkd2FyZSBzZWN0b3IgdG8gYmUgdGFnZ2VkIHdpdGggYQorMTYtYml0IHZhbHVlLiAgVGhlIG93bmVyIG9mIHRoaXMgdGFnIHNwYWNlIGlzIHRoZSBvd25lciBvZiB0aGUgYmxvY2sKK2RldmljZS4gIEkuZS4gdGhlIGZpbGVzeXN0ZW0gaW4gbW9zdCBjYXNlcy4gIFRoZSBmaWxlc3lzdGVtIGNhbiB1c2UKK3RoaXMgZXh0cmEgc3BhY2UgdG8gdGFnIHNlY3RvcnMgYXMgdGhleSBzZWUgZml0LiAgQmVjYXVzZSB0aGUgdGFnCitzcGFjZSBpcyBsaW1pdGVkLCB0aGUgYmxvY2sgaW50ZXJmYWNlIGFsbG93cyB0YWdnaW5nIGJpZ2dlciBjaHVua3MgYnkKK3dheSBvZiBpbnRlcmxlYXZpbmcuICBUaGlzIHdheSwgOCoxNiBiaXRzIG9mIGluZm9ybWF0aW9uIGNhbiBiZQorYXR0YWNoZWQgdG8gYSB0eXBpY2FsIDRLQiBmaWxlc3lzdGVtIGJsb2NrLgorCitUaGlzIGFsc28gbWVhbnMgdGhhdCBhcHBsaWNhdGlvbnMgc3VjaCBhcyBmc2NrIGFuZCBta2ZzIHdpbGwgbmVlZAorYWNjZXNzIHRvIG1hbmlwdWxhdGUgdGhlIHRhZ3MgZnJvbSB1c2VyIHNwYWNlLiAgQSBwYXNzdGhyb3VnaAoraW50ZXJmYWNlIGZvciB0aGlzIGlzIGJlaW5nIHdvcmtlZCBvbi4KKworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis0LiBCTE9DSyBMQVlFUiBJTVBMRU1FTlRBVElPTiBERVRBSUxTCisKKzQuMSBCSU8KKworVGhlIGRhdGEgaW50ZWdyaXR5IHBhdGNoZXMgYWRkIGEgbmV3IGZpZWxkIHRvIHN0cnVjdCBiaW8gd2hlbgorQ09ORklHX0JMS19ERVZfSU5URUdSSVRZIGlzIGVuYWJsZWQuICBiaW8tPmJpX2ludGVncml0eSBpcyBhIHBvaW50ZXIKK3RvIGEgc3RydWN0IGJpcCB3aGljaCBjb250YWlucyB0aGUgYmlvIGludGVncml0eSBwYXlsb2FkLiAgRXNzZW50aWFsbHkKK2EgYmlwIGlzIGEgdHJpbW1lZCBkb3duIHN0cnVjdCBiaW8gd2hpY2ggaG9sZHMgYSBiaW9fdmVjIGNvbnRhaW5pbmcKK3RoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgYW5kIHRoZSByZXF1aXJlZCBob3VzZWtlZXBpbmcgaW5mb3JtYXRpb24gKGJ2ZWMKK3Bvb2wsIHZlY3RvciBjb3VudCwgZXRjLikKKworQSBrZXJuZWwgc3Vic3lzdGVtIGNhbiBlbmFibGUgZGF0YSBpbnRlZ3JpdHkgcHJvdGVjdGlvbiBvbiBhIGJpbyBieQorY2FsbGluZyBiaW9faW50ZWdyaXR5X2FsbG9jKGJpbykuICBUaGlzIHdpbGwgYWxsb2NhdGUgYW5kIGF0dGFjaCB0aGUKK2JpcCB0byB0aGUgYmlvLgorCitJbmRpdmlkdWFsIHBhZ2VzIGNvbnRhaW5pbmcgaW50ZWdyaXR5IG1ldGFkYXRhIGNhbiBzdWJzZXF1ZW50bHkgYmUKK2F0dGFjaGVkIHVzaW5nIGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UoKS4KKworYmlvX2ZyZWUoKSB3aWxsIGF1dG9tYXRpY2FsbHkgZnJlZSB0aGUgYmlwLgorCisKKzQuMiBCTE9DSyBERVZJQ0UKKworQmVjYXVzZSB0aGUgZm9ybWF0IG9mIHRoZSBwcm90ZWN0aW9uIGRhdGEgaXMgdGllZCB0byB0aGUgcGh5c2ljYWwKK2Rpc2ssIGVhY2ggYmxvY2sgZGV2aWNlIGhhcyBiZWVuIGV4dGVuZGVkIHdpdGggYSBibG9jayBpbnRlZ3JpdHkKK3Byb2ZpbGUgKHN0cnVjdCBibGtfaW50ZWdyaXR5KS4gIFRoaXMgb3B0aW9uYWwgcHJvZmlsZSBpcyByZWdpc3RlcmVkCit3aXRoIHRoZSBibG9jayBsYXllciB1c2luZyBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKCkuCisKK1RoZSBwcm9maWxlIGNvbnRhaW5zIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyBhbmQgdmVyaWZ5aW5nCit0aGUgcHJvdGVjdGlvbiBkYXRhLCBhcyB3ZWxsIGFzIGdldHRpbmcgYW5kIHNldHRpbmcgYXBwbGljYXRpb24gdGFncy4KK1RoZSBwcm9maWxlIGFsc28gY29udGFpbnMgYSBmZXcgY29uc3RhbnRzIHRvIGFpZCBpbiBjb21wbGV0aW5nLAorbWVyZ2luZyBhbmQgc3BsaXR0aW5nIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEuCisKK0xheWVyZWQgYmxvY2sgZGV2aWNlcyB3aWxsIG5lZWQgdG8gcGljayBhIHByb2ZpbGUgdGhhdCdzIGFwcHJvcHJpYXRlCitmb3IgYWxsIHN1YmRldmljZXMuICBibGtfaW50ZWdyaXR5X2NvbXBhcmUoKSBjYW4gaGVscCB3aXRoIHRoYXQuICBETQorYW5kIE1EIGxpbmVhciwgUkFJRDAgYW5kIFJBSUQxIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLiAgUkFJRDQvNS82Cit3aWxsIHJlcXVpcmUgZXh0cmEgd29yayBkdWUgdG8gdGhlIGFwcGxpY2F0aW9uIHRhZy4KKworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis1LjAgQkxPQ0sgTEFZRVIgSU5URUdSSVRZIEFQSQorCis1LjEgTk9STUFMIEZJTEVTWVNURU0KKworICAgIFRoZSBub3JtYWwgZmlsZXN5c3RlbSBpcyB1bmF3YXJlIHRoYXQgdGhlIHVuZGVybHlpbmcgYmxvY2sgZGV2aWNlCisgICAgaXMgY2FwYWJsZSBvZiBzZW5kaW5nL3JlY2VpdmluZyBpbnRlZ3JpdHkgbWV0YWRhdGEuICBUaGUgSU1EIHdpbGwKKyAgICBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgYmxvY2sgbGF5ZXIgYXQgc3VibWl0X2JpbygpIHRpbWUKKyAgICBpbiBjYXNlIG9mIGEgV1JJVEUuICBBIFJFQUQgcmVxdWVzdCB3aWxsIGNhdXNlIHRoZSBJL08gaW50ZWdyaXR5CisgICAgdG8gYmUgdmVyaWZpZWQgdXBvbiBjb21wbGV0aW9uLgorCisgICAgSU1EIGdlbmVyYXRpb24gYW5kIHZlcmlmaWNhdGlvbiBjYW4gYmUgdG9nZ2xlZCB1c2luZyB0aGUKKworICAgICAgL3N5cy9ibG9jay88YmRldj4vaW50ZWdyaXR5L3dyaXRlX2dlbmVyYXRlCisKKyAgICBhbmQKKworICAgICAgL3N5cy9ibG9jay88YmRldj4vaW50ZWdyaXR5L3JlYWRfdmVyaWZ5CisKKyAgICBmbGFncy4KKworCis1LjIgSU5URUdSSVRZLUFXQVJFIEZJTEVTWVNURU0KKworICAgIEEgZmlsZXN5c3RlbSB0aGF0IGlzIGludGVncml0eS1hd2FyZSBjYW4gcHJlcGFyZSBJL09zIHdpdGggSU1ECisgICAgYXR0YWNoZWQuICBJdCBjYW4gYWxzbyB1c2UgdGhlIGFwcGxpY2F0aW9uIHRhZyBzcGFjZSBpZiB0aGlzIGlzCisgICAgc3VwcG9ydGVkIGJ5IHRoZSBibG9jayBkZXZpY2UuCisKKworICAgIGludCBiZGV2X2ludGVncml0eV9lbmFibGVkKGJsb2NrX2RldmljZSwgaW50IHJ3KTsKKworICAgICAgYmRldl9pbnRlZ3JpdHlfZW5hYmxlZCgpIHdpbGwgcmV0dXJuIDEgaWYgdGhlIGJsb2NrIGRldmljZQorICAgICAgc3VwcG9ydHMgaW50ZWdyaXR5IG1ldGFkYXRhIHRyYW5zZmVyIGZvciB0aGUgZGF0YSBkaXJlY3Rpb24KKyAgICAgIHNwZWNpZmllZCBpbiAncncnLgorCisgICAgICBiZGV2X2ludGVncml0eV9lbmFibGVkKCkgaG9ub3JzIHRoZSB3cml0ZV9nZW5lcmF0ZSBhbmQKKyAgICAgIHJlYWRfdmVyaWZ5IGZsYWdzIGluIHN5c2ZzIGFuZCB3aWxsIHJlc3BvbmQgYWNjb3JkaW5nbHkuCisKKworICAgIGludCBiaW9faW50ZWdyaXR5X3ByZXAoYmlvKTsKKworICAgICAgVG8gZ2VuZXJhdGUgSU1EIGZvciBXUklURSBhbmQgdG8gc2V0IHVwIGJ1ZmZlcnMgZm9yIFJFQUQsIHRoZQorICAgICAgZmlsZXN5c3RlbSBtdXN0IGNhbGwgYmlvX2ludGVncml0eV9wcmVwKGJpbykuCisKKyAgICAgIFByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIGJpbyBkYXRhIGRpcmVjdGlvbiBhbmQgc3RhcnQKKyAgICAgIHNlY3RvciBtdXN0IGJlIHNldCwgYW5kIHRoZSBiaW8gc2hvdWxkIGhhdmUgYWxsIGRhdGEgcGFnZXMKKyAgICAgIGFkZGVkLiAgSXQgaXMgdXAgdG8gdGhlIGNhbGxlciB0byBlbnN1cmUgdGhhdCB0aGUgYmlvIGRvZXMgbm90CisgICAgICBjaGFuZ2Ugd2hpbGUgSS9PIGlzIGluIHByb2dyZXNzLgorCisgICAgICBiaW9faW50ZWdyaXR5X3ByZXAoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYKKyAgICAgIGJpb19pbnRlZ3JpdHlfZW5hYmxlZCgpIHJldHVybmVkIDEuCisKKworICAgIGludCBiaW9faW50ZWdyaXR5X3RhZ19zaXplKGJpbyk7CisKKyAgICAgIElmIHRoZSBmaWxlc3lzdGVtIHdhbnRzIHRvIHVzZSB0aGUgYXBwbGljYXRpb24gdGFnIHNwYWNlIGl0IHdpbGwKKyAgICAgIGZpcnN0IGhhdmUgdG8gZmluZCBvdXQgaG93IG11Y2ggc3RvcmFnZSBzcGFjZSBpcyBhdmFpbGFibGUuCisgICAgICBCZWNhdXNlIHRhZyBzcGFjZSBpcyBnZW5lcmFsbHkgbGltaXRlZCAodXN1YWxseSAyIGJ5dGVzIHBlcgorICAgICAgc2VjdG9yIHJlZ2FyZGxlc3Mgb2Ygc2VjdG9yIHNpemUpLCB0aGUgaW50ZWdyaXR5IGZyYW1ld29yaworICAgICAgc3VwcG9ydHMgaW50ZXJsZWF2aW5nIHRoZSBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZSBzZWN0b3JzIGluIGFuCisgICAgICBJL08uCisKKyAgICAgIEZpbGVzeXN0ZW1zIGNhbiBjYWxsIGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoYmlvKSB0byBmaW5kIG91dCBob3cKKyAgICAgIG1hbnkgYnl0ZXMgb2Ygc3RvcmFnZSBhcmUgYXZhaWxhYmxlIGZvciB0aGF0IHBhcnRpY3VsYXIgYmlvLgorCisgICAgICBBbm90aGVyIG9wdGlvbiBpcyBiZGV2X2dldF90YWdfc2l6ZShibG9ja19kZXZpY2UpIHdoaWNoIHdpbGwKKyAgICAgIHJldHVybiB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBieXRlcyBwZXIgaGFyZHdhcmUgc2VjdG9yLgorCisKKyAgICBpbnQgYmlvX2ludGVncml0eV9zZXRfdGFnKGJpbywgdm9pZCAqdGFnX2J1ZiwgbGVuKTsKKworICAgICAgQWZ0ZXIgYSBzdWNjZXNzZnVsIHJldHVybiBmcm9tIGJpb19pbnRlZ3JpdHlfcHJlcCgpLAorICAgICAgYmlvX2ludGVncml0eV9zZXRfdGFnKCkgY2FuIGJlIHVzZWQgdG8gYXR0YWNoIGFuIG9wYXF1ZSB0YWcKKyAgICAgIGJ1ZmZlciB0byBhIGJpby4gIE9idmlvdXNseSB0aGlzIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIEkvTyBpcworICAgICAgYSBXUklURS4KKworCisgICAgaW50IGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhiaW8sIHZvaWQgKnRhZ19idWYsIGxlbik7CisKKyAgICAgIFNpbWlsYXJseSwgYXQgUkVBRCBJL08gY29tcGxldGlvbiB0aW1lIHRoZSBmaWxlc3lzdGVtIGNhbgorICAgICAgcmV0cmlldmUgdGhlIHRhZyBidWZmZXIgdXNpbmcgYmlvX2ludGVncml0eV9nZXRfdGFnKCkuCisKKworNi4zIFBBU1NJTkcgRVhJU1RJTkcgSU5URUdSSVRZIE1FVEFEQVRBCisKKyAgICBGaWxlc3lzdGVtcyB0aGF0IGVpdGhlciBnZW5lcmF0ZSB0aGVpciBvd24gaW50ZWdyaXR5IG1ldGFkYXRhIG9yCisgICAgYXJlIGNhcGFibGUgb2YgdHJhbnNmZXJyaW5nIElNRCBmcm9tIHVzZXIgc3BhY2UgY2FuIHVzZSB0aGUKKyAgICBmb2xsb3dpbmcgY2FsbHM6CisKKworICAgIHN0cnVjdCBiaXAgKiBiaW9faW50ZWdyaXR5X2FsbG9jKGJpbywgZ2ZwX21hc2ssIG5yX3BhZ2VzKTsKKworICAgICAgQWxsb2NhdGVzIHRoZSBiaW8gaW50ZWdyaXR5IHBheWxvYWQgYW5kIGhhbmdzIGl0IG9mZiBvZiB0aGUgYmlvLgorICAgICAgbnJfcGFnZXMgaW5kaWNhdGUgaG93IG1hbnkgcGFnZXMgb2YgcHJvdGVjdGlvbiBkYXRhIG5lZWQgdG8gYmUKKyAgICAgIHN0b3JlZCBpbiB0aGUgaW50ZWdyaXR5IGJpb192ZWMgbGlzdCAoc2ltaWxhciB0byBiaW9fYWxsb2MoKSkuCisKKyAgICAgIFRoZSBpbnRlZ3JpdHkgcGF5bG9hZCB3aWxsIGJlIGZyZWVkIGF0IGJpb19mcmVlKCkgdGltZS4KKworCisgICAgaW50IGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UoYmlvLCBwYWdlLCBsZW4sIG9mZnNldCk7CisKKyAgICAgIEF0dGFjaGVzIGEgcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YSB0byBhbiBleGlzdGluZworICAgICAgYmlvLiAgVGhlIGJpbyBtdXN0IGhhdmUgYW4gZXhpc3RpbmcgYmlwLAorICAgICAgaS5lLiBiaW9faW50ZWdyaXR5X2FsbG9jKCkgbXVzdCBoYXZlIGJlZW4gY2FsbGVkLiAgRm9yIGEgV1JJVEUsCisgICAgICB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGluIHRoZSBwYWdlcyBtdXN0IGJlIGluIGEgZm9ybWF0CisgICAgICB1bmRlcnN0b29kIGJ5IHRoZSB0YXJnZXQgZGV2aWNlIHdpdGggdGhlIG5vdGFibGUgZXhjZXB0aW9uIHRoYXQKKyAgICAgIHRoZSBzZWN0b3IgbnVtYmVycyB3aWxsIGJlIHJlbWFwcGVkIGFzIHRoZSByZXF1ZXN0IHRyYXZlcnNlcyB0aGUKKyAgICAgIEkvTyBzdGFjay4gIFRoaXMgaW1wbGllcyB0aGF0IHRoZSBwYWdlcyBhZGRlZCB1c2luZyB0aGlzIGNhbGwKKyAgICAgIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nIEkvTyEgIFRoZSBmaXJzdCByZWZlcmVuY2UgdGFnIGluIHRoZQorICAgICAgaW50ZWdyaXR5IG1ldGFkYXRhIG11c3QgaGF2ZSBhIHZhbHVlIG9mIGJpcC0+YmlwX3NlY3Rvci4KKworICAgICAgUGFnZXMgY2FuIGJlIGFkZGVkIHVzaW5nIGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UoKSBhcyBsb25nIGFzCisgICAgICB0aGVyZSBpcyByb29tIGluIHRoZSBiaXAgYmlvX3ZlYyBhcnJheSAobnJfcGFnZXMpLgorCisgICAgICBVcG9uIGNvbXBsZXRpb24gb2YgYSBSRUFEIG9wZXJhdGlvbiwgdGhlIGF0dGFjaGVkIHBhZ2VzIHdpbGwKKyAgICAgIGNvbnRhaW4gdGhlIGludGVncml0eSBtZXRhZGF0YSByZWNlaXZlZCBmcm9tIHRoZSBzdG9yYWdlIGRldmljZS4KKyAgICAgIEl0IGlzIHVwIHRvIHRoZSByZWNlaXZlciB0byBwcm9jZXNzIHRoZW0gYW5kIHZlcmlmeSBkYXRhCisgICAgICBpbnRlZ3JpdHkgdXBvbiBjb21wbGV0aW9uLgorCisKKzYuNCBSRUdJU1RFUklORyBBIEJMT0NLIERFVklDRSBBUyBDQVBBQkxFIE9GIEVYQ0hBTkdJTkcgSU5URUdSSVRZCisgICAgTUVUQURBVEEKKworICAgIFRvIGVuYWJsZSBpbnRlZ3JpdHkgZXhjaGFuZ2Ugb24gYSBibG9jayBkZXZpY2UgdGhlIGdlbmRpc2sgbXVzdCBiZQorICAgIHJlZ2lzdGVyZWQgYXMgY2FwYWJsZToKKworICAgIGludCBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKGdlbmRpc2ssIGJsa19pbnRlZ3JpdHkpOworCisgICAgICBUaGUgYmxrX2ludGVncml0eSBzdHJ1Y3QgaXMgYSB0ZW1wbGF0ZSBhbmQgc2hvdWxkIGNvbnRhaW4gdGhlCisgICAgICBmb2xsb3dpbmc6CisKKyAgICAgICAgc3RhdGljIHN0cnVjdCBibGtfaW50ZWdyaXR5IG15X3Byb2ZpbGUgPSB7CisgICAgICAgICAgICAubmFtZSAgICAgICAgICAgICAgICAgICA9ICJTVEFOREFSRFNCT0RZLVRZUEUtVkFSSUFOVC1DU1VNIiwKKyAgICAgICAgICAgIC5nZW5lcmF0ZV9mbiAgICAgICAgICAgID0gbXlfZ2VuZXJhdGVfZm4sCisgICAgICAgCSAgICAudmVyaWZ5X2ZuICAgICAgICAgICAgICA9IG15X3ZlcmlmeV9mbiwKKyAgICAgICAJICAgIC5nZXRfdGFnX2ZuICAgICAgICAgICAgID0gbXlfZ2V0X3RhZ19mbiwKKyAgICAgICAJICAgIC5zZXRfdGFnX2ZuICAgICAgICAgICAgID0gbXlfc2V0X3RhZ19mbiwKKwkgICAgLnR1cGxlX3NpemUgICAgICAgICAgICAgPSBzaXplb2Yoc3RydWN0IG15X3R1cGxlX3NpemUpLAorCSAgICAudGFnX3NpemUgICAgICAgICAgICAgICA9IDx0YWcgYnl0ZXMgcGVyIGh3IHNlY3Rvcj4sCisgICAgICAgIH07CisKKyAgICAgICduYW1lJyBpcyBhIHRleHQgc3RyaW5nIHdoaWNoIHdpbGwgYmUgdmlzaWJsZSBpbiBzeXNmcy4gIFRoaXMgaXMKKyAgICAgIHBhcnQgb2YgdGhlIHVzZXJsYW5kIEFQSSBzbyBjaG9zZSBpdCBjYXJlZnVsbHkgYW5kIG5ldmVyIGNoYW5nZQorICAgICAgaXQuICBUaGUgZm9ybWF0IGlzIHN0YW5kYXJkcyBib2R5LXR5cGUtdmFyaWFudC4KKyAgICAgIEUuZy4gVDEwLURJRi1UWVBFMS1JUCBvciBUMTMtRVBQLTAtQ1JDLgorCisgICAgICAnZ2VuZXJhdGVfZm4nIGdlbmVyYXRlcyBhcHByb3ByaWF0ZSBpbnRlZ3JpdHkgbWV0YWRhdGEgKGZvciBXUklURSkuCisKKyAgICAgICd2ZXJpZnlfZm4nIHZlcmlmaWVzIHRoYXQgdGhlIGRhdGEgYnVmZmVyIG1hdGNoZXMgdGhlIGludGVncml0eQorICAgICAgbWV0YWRhdGEuCisKKyAgICAgICd0dXBsZV9zaXplJyBtdXN0IGJlIHNldCB0byBtYXRjaCB0aGUgc2l6ZSBvZiB0aGUgaW50ZWdyaXR5CisgICAgICBtZXRhZGF0YSBwZXIgc2VjdG9yLiAgSS5lLiA4IGZvciBESUYgYW5kIEVQUC4KKworICAgICAgJ3RhZ19zaXplJyBtdXN0IGJlIHNldCB0byBpZGVudGlmeSBob3cgbWFueSBieXRlcyBvZiB0YWcgc3BhY2UKKyAgICAgIGFyZSBhdmFpbGFibGUgcGVyIGhhcmR3YXJlIHNlY3Rvci4gIEZvciBESUYgdGhpcyBpcyBlaXRoZXIgMiBvcgorICAgICAgMCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSBDb250cm9sIE1vZGUgUGFnZSBBVE8gYml0LgorCisgICAgICBTZWUgNi4yIGZvciBhIGRlc2NyaXB0aW9uIG9mIGdldF90YWdfZm4gYW5kIHNldF90YWdfZm4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMDctMTItMjQgTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY2Npc3MudHh0IGIvRG9jdW1lbnRhdGlvbi9jY2lzcy50eHQKaW5kZXggZTY1NzM2Yy4uNjNlNTliOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9jY2lzcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9jY2lzcy50eHQKQEAgLTIxLDYgKzIxLDExIEBACiAJKiBTQSBFMjAwCiAJKiBTQSBFMjAwaQogCSogU0EgRTUwMAorCSogU0EgUDIxMgorCSogU0EgUDQxMAorCSogU0EgUDQxMGkKKwkqIFNBIFA0MTEKKwkqIFNBIFA4MTIKIAogRGV0ZWN0aW5nIGRyaXZlIGZhaWx1cmVzOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jZ3JvdXBzLnR4dCBiL0RvY3VtZW50YXRpb24vY2dyb3Vwcy50eHQKaW5kZXggODI0ZmMwMi4uZDkwMTRhYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9jZ3JvdXBzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2Nncm91cHMudHh0CkBAIC0zOTAsNiArMzkwLDEwIEBACiAJLi4uCiAjIC9iaW4vZWNobyBQSURuID4gdGFza3MKIAorWW91IGNhbiBhdHRhY2ggdGhlIGN1cnJlbnQgc2hlbGwgdGFzayBieSBlY2hvaW5nIDA6CisKKyMgZWNobyAwID4gdGFza3MKKwogMy4gS2VybmVsIEFQSQogPT09PT09PT09PT09PQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2NvbnRyb2xsZXJzL2RldmljZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9jb250cm9sbGVycy9kZXZpY2VzLnR4dAppbmRleCA0ZGNlYTQyLi43Y2M2ZTZhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2NvbnRyb2xsZXJzL2RldmljZXMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY29udHJvbGxlcnMvZGV2aWNlcy50eHQKQEAgLTEzLDcgKzEzLDcgQEAKIFRoZSByb290IGRldmljZSBjZ3JvdXAgc3RhcnRzIHdpdGggcndtIHRvICdhbGwnLiAgQSBjaGlsZCBkZXZpY2UKIGNncm91cCBnZXRzIGEgY29weSBvZiB0aGUgcGFyZW50LiAgQWRtaW5pc3RyYXRvcnMgY2FuIHRoZW4gcmVtb3ZlCiBkZXZpY2VzIGZyb20gdGhlIHdoaXRlbGlzdCBvciBhZGQgbmV3IGVudHJpZXMuICBBIGNoaWxkIGNncm91cCBjYW4KLW5ldmVyIHJlY2VpdmUgYSBkZXZpY2UgYWNjZXNzIHdoaWNoIGlzIGRlbmllZCBpdHMgcGFyZW50LiAgSG93ZXZlcgorbmV2ZXIgcmVjZWl2ZSBhIGRldmljZSBhY2Nlc3Mgd2hpY2ggaXMgZGVuaWVkIGJ5IGl0cyBwYXJlbnQuICBIb3dldmVyCiB3aGVuIGEgZGV2aWNlIGFjY2VzcyBpcyByZW1vdmVkIGZyb20gYSBwYXJlbnQgaXQgd2lsbCBub3QgYWxzbyBiZQogcmVtb3ZlZCBmcm9tIHRoZSBjaGlsZChyZW4pLgogCkBAIC0yOSw3ICsyOSwxMSBAQAogCiAJZWNobyBhID4gL2Nncm91cHMvMS9kZXZpY2VzLmRlbnkKIAotd2lsbCByZW1vdmUgdGhlIGRlZmF1bHQgJ2EgKjoqIG1ydycgZW50cnkuCit3aWxsIHJlbW92ZSB0aGUgZGVmYXVsdCAnYSAqOiogcndtJyBlbnRyeS4gRG9pbmcKKworCWVjaG8gYSA+IC9jZ3JvdXBzLzEvZGV2aWNlcy5hbGxvdworCit3aWxsIGFkZCB0aGUgJ2EgKjoqIHJ3bScgZW50cnkgdG8gdGhlIHdoaXRlbGlzdC4KIAogMy4gU2VjdXJpdHkKIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jcHVzZXRzLnR4dCBiL0RvY3VtZW50YXRpb24vY3B1c2V0cy50eHQKaW5kZXggZDgwM2M1Yy4uMWY1YTkyNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9jcHVzZXRzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2NwdXNldHMudHh0CkBAIC0xNTQsMTMgKzE1NCwxNSBAQAogbmV3IHN5c3RlbSBjYWxscyBhcmUgYWRkZWQgZm9yIGNwdXNldHMgLSBhbGwgc3VwcG9ydCBmb3IgcXVlcnlpbmcgYW5kCiBtb2RpZnlpbmcgY3B1c2V0cyBpcyB2aWEgdGhpcyBjcHVzZXQgZmlsZSBzeXN0ZW0uCiAKLVRoZSAvcHJvYy88cGlkPi9zdGF0dXMgZmlsZSBmb3IgZWFjaCB0YXNrIGhhcyB0d28gYWRkZWQgbGluZXMsCitUaGUgL3Byb2MvPHBpZD4vc3RhdHVzIGZpbGUgZm9yIGVhY2ggdGFzayBoYXMgZm91ciBhZGRlZCBsaW5lcywKIGRpc3BsYXlpbmcgdGhlIHRhc2tzIGNwdXNfYWxsb3dlZCAob24gd2hpY2ggQ1BVcyBpdCBtYXkgYmUgc2NoZWR1bGVkKQogYW5kIG1lbXNfYWxsb3dlZCAob24gd2hpY2ggTWVtb3J5IE5vZGVzIGl0IG1heSBvYnRhaW4gbWVtb3J5KSwKLWluIHRoZSBmb3JtYXQgc2VlbiBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CitpbiB0aGUgdHdvIGZvcm1hdHMgc2VlbiBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CiAKICAgQ3B1c19hbGxvd2VkOiAgIGZmZmZmZmZmLGZmZmZmZmZmLGZmZmZmZmZmLGZmZmZmZmZmCisgIENwdXNfYWxsb3dlZF9saXN0OiAgICAgIDAtMTI3CiAgIE1lbXNfYWxsb3dlZDogICBmZmZmZmZmZixmZmZmZmZmZgorICBNZW1zX2FsbG93ZWRfbGlzdDogICAgICAwLTYzCiAKIEVhY2ggY3B1c2V0IGlzIHJlcHJlc2VudGVkIGJ5IGEgZGlyZWN0b3J5IGluIHRoZSBjZ3JvdXAgZmlsZSBzeXN0ZW0KIGNvbnRhaW5pbmcgKG9uIHRvcCBvZiB0aGUgc3RhbmRhcmQgY2dyb3VwIGZpbGVzKSB0aGUgZm9sbG93aW5nCkBAIC01NDIsNyArNTQ0LDEwIEBACiAgICAyICA6IHNlYXJjaCBjb3JlcyBpbiBhIHBhY2thZ2UuCiAgICAzICA6IHNlYXJjaCBjcHVzIGluIGEgbm9kZSBbPSBzeXN0ZW0gd2lkZSBvbiBub24tTlVNQSBzeXN0ZW1dCiAgKCA0ICA6IHNlYXJjaCBub2RlcyBpbiBhIGNodW5rIG9mIG5vZGUgW29uIE5VTUEgc3lzdGVtXSApCi0gKCA1fiA6IHNlYXJjaCBzeXN0ZW0gd2lkZSBbb24gTlVNQSBzeXN0ZW1dKQorICggNSAgOiBzZWFyY2ggc3lzdGVtIHdpZGUgW29uIE5VTUEgc3lzdGVtXSApCisKK1RoZSBzeXN0ZW0gZGVmYXVsdCBpcyBhcmNoaXRlY3R1cmUgZGVwZW5kZW50LiAgVGhlIHN5c3RlbSBkZWZhdWx0CitjYW4gYmUgY2hhbmdlZCB1c2luZyB0aGUgcmVsYXhfZG9tYWluX2xldmVsPSBib290IHBhcmFtZXRlci4KIAogVGhpcyBmaWxlIGlzIHBlci1jcHVzZXQgYW5kIGFmZmVjdCB0aGUgc2NoZWQgZG9tYWluIHdoZXJlIHRoZSBjcHVzZXQKIGJlbG9uZ3MgdG8uICBUaGVyZWZvcmUgaWYgdGhlIGZsYWcgJ3NjaGVkX2xvYWRfYmFsYW5jZScgb2YgYSBjcHVzZXQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dCBiL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAppbmRleCA1YjNmMzFmLi40NmVjZTNmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZlYXR1cmUtcmVtb3ZhbC1zY2hlZHVsZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0CkBAIC0zMTIsMyArMzEyLDEyIEBACiBXaHk6CUltcGxlbWVudGF0aW9uIGJlY2FtZSBnZW5lcmljOyB1c2VycyBzaG91bGQgbm93IGluY2x1ZGUKIAlsaW51eC9zZW1hcGhvcmUuaCBpbnN0ZWFkLgogV2hvOglNYXR0aGV3IFdpbGNveCA8d2lsbHlAbGludXguaW50ZWwuY29tPgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hhdDoJQ09ORklHX1RIRVJNQUxfSFdNT04KK1doZW46CUphbnVhcnkgMjAwOQorV2h5OglUaGlzIG9wdGlvbiB3YXMgaW50cm9kdWNlZCBqdXN0IHRvIGFsbG93IG9sZGVyIGxtLXNlbnNvcnMgdXNlcnNwYWNlCisJdG8ga2VlcCB3b3JraW5nIG92ZXIgdGhlIHVwZ3JhZGUgdG8gMi42LjI2LiBBdCB0aGUgc2NoZWR1bGVkIHRpbWUgb2YKKwlyZW1vdmFsIGZpeGVkIGxtLXNlbnNvcnMgKDIueCBvciAzLngpIHNob3VsZCBiZSByZWFkaWx5IGF2YWlsYWJsZS4KK1dobzoJUmVuZSBIZXJtYW4gPHJlbmUuaGVybWFuQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC50eHQgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQudHh0CmluZGV4IDU2MGY4OGQuLjgwZTE5M2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0LnR4dApAQCAtMTMsNzIgKzEzLDkzIEBACiAxLiBRdWljayB1c2FnZSBpbnN0cnVjdGlvbnM6CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotICAtIEdyYWIgdXBkYXRlZCBlMmZzcHJvZ3MgZnJvbQotICAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL3R5dHNvL2UyZnNwcm9ncy1pbnRlcmltLwotICAgIFRoaXMgaXMgYSBwYXRjaHNldCBvbiB0b3Agb2YgZTJmc3Byb2dzLTEuMzksIHdoaWNoIGNhbiBiZSBmb3VuZCBhdAorICAtIENvbXBpbGUgYW5kIGluc3RhbGwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGUyZnNwcm9ncyAoYXMgb2YgdGhpcworICAgIHdyaXRpbmcgdmVyc2lvbiAxLjQxKSBmcm9tOgorCisgICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dmaWxlcy5waHA/Z3JvdXBfaWQ9MjQwNgorCQorCW9yCisKICAgICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgva2VybmVsL3Blb3BsZS90eXRzby9lMmZzcHJvZ3MvCiAKLSAgLSBJdCdzIHN0aWxsIG1rZTJmcyAtaiAvZGV2L2hkYTEKKwlvciBncmFiIHRoZSBsYXRlc3QgZ2l0IHJlcG9zaXRvcnkgZnJvbToKIAotICAtIG1vdW50IC9kZXYvaGRhMSAvd2hlcmV2ZXIgLXQgZXh0NGRldgorICAgIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vZnMvZXh0Mi9lMmZzcHJvZ3MuZ2l0CiAKLSAgLSBUbyBlbmFibGUgZXh0ZW50cywKKyAgLSBDcmVhdGUgYSBuZXcgZmlsZXN5c3RlbSB1c2luZyB0aGUgZXh0NGRldiBmaWxlc3lzdGVtIHR5cGU6CiAKLQltb3VudCAvZGV2L2hkYTEgL3doZXJldmVyIC10IGV4dDRkZXYgLW8gZXh0ZW50cworICAgIAkjIG1rZTJmcyAtdCBleHQ0ZGV2IC9kZXYvaGRhMQogCi0gIC0gVGhlIGZpbGVzeXN0ZW0gaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBleHQzIGRyaXZlciB1bnRpbCB5b3UgYWRkIGEgZmlsZQotICAgIHdoaWNoIGhhcyBleHRlbnRzIChpZTogYG1vdW50IC1vIGV4dGVudHMnLCB0aGVuIGNyZWF0ZSBhIGZpbGUpLgorICAgIE9yIGNvbmZpZ3VyZSBhbiBleGlzdGluZyBleHQzIGZpbGVzeXN0ZW0gdG8gc3VwcG9ydCBleHRlbnRzIGFuZCBzZXQKKyAgICB0aGUgdGVzdF9mcyBmbGFnIHRvIGluZGljYXRlIHRoYXQgaXQncyBvayBmb3IgYW4gaW4tZGV2ZWxvcG1lbnQKKyAgICBmaWxlc3lzdGVtIHRvIHRvdWNoIHRoaXMgZmlsZXN5c3RlbToKIAotICAgIE5PVEU6IFRoZSAiZXh0ZW50cyIgbW91bnQgZmxhZyBpcyB0ZW1wb3JhcnkuICBJdCB3aWxsIHNvb24gZ28gYXdheSBhbmQKLSAgICBleHRlbnRzIHdpbGwgYmUgZW5hYmxlZCBieSB0aGUgIi1vIGV4dGVudHMiIGZsYWcgdG8gbWtlMmZzIG9yIHR1bmUyZnMKKwkjIHR1bmUyZnMgLU8gZXh0ZW50cyAtRSB0ZXN0X2ZzIC9kZXYvaGRhMQorCisgICAgSWYgdGhlIGZpbGVzeXN0ZW0gd2FzIGNyZWF0ZWQgd2l0aCAxMjggYnl0ZSBpbm9kZXMsIGl0IGNhbiBiZQorICAgIGNvbnZlcnRlZCB0byB1c2UgMjU2IGJ5dGUgZm9yIGdyZWF0ZXIgZWZmaWNpZW5jeSB2aWE6CisKKyAgICAgICAgIyB0dW5lMmZzIC1JIDI1NiAvZGV2L2hkYTEKKworICAgIChOb3RlOiB3ZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgdG9vbHMgdG8gY29udmVydCBhbiBleHQ0ZGV2CisgICAgZmlsZXN5c3RlbSBiYWNrIHRvIGV4dDM7IHNvIHBsZWFzZSBkbyBub3QgZG8gdHJ5IHRoaXMgb24gcHJvZHVjdGlvbgorICAgIGZpbGVzeXN0ZW1zLikKKworICAtIE1vdW50aW5nOgorCisJIyBtb3VudCAtdCBleHQ0ZGV2IC9kZXYvaGRhMSAvd2hlcmV2ZXIKIAogICAtIFdoZW4gY29tcGFyaW5nIHBlcmZvcm1hbmNlIHdpdGggb3RoZXIgZmlsZXN5c3RlbXMsIHJlbWVtYmVyIHRoYXQKLSAgICBleHQzLzQgYnkgZGVmYXVsdCBvZmZlcnMgaGlnaGVyIGRhdGEgaW50ZWdyaXR5IGd1YXJhbnRlZXMgdGhhbiBtb3N0LiAgU28KLSAgICB3aGVuIGNvbXBhcmluZyB3aXRoIGEgbWV0YWRhdGEtb25seSBqb3VybmFsbGluZyBmaWxlc3lzdGVtLCB1c2UgYG1vdW50IC1vCi0gICAgZGF0YT13cml0ZWJhY2snLiAgQW5kIHlvdSBtaWdodCBhcyB3ZWxsIHVzZSBgbW91bnQgLW8gbm9iaCcgdG9vIGFsb25nCi0gICAgd2l0aCBpdC4gIE1ha2luZyB0aGUgam91cm5hbCBsYXJnZXIgdGhhbiB0aGUgbWtlMmZzIGRlZmF1bHQgb2Z0ZW4gaGVscHMKLSAgICBwZXJmb3JtYW5jZSB3aXRoIG1ldGFkYXRhLWludGVuc2l2ZSB3b3JrbG9hZHMuCisgICAgZXh0My80IGJ5IGRlZmF1bHQgb2ZmZXJzIGhpZ2hlciBkYXRhIGludGVncml0eSBndWFyYW50ZWVzIHRoYW4gbW9zdC4KKyAgICBTbyB3aGVuIGNvbXBhcmluZyB3aXRoIGEgbWV0YWRhdGEtb25seSBqb3VybmFsbGluZyBmaWxlc3lzdGVtLCBzdWNoCisgICAgYXMgZXh0MywgdXNlIGBtb3VudCAtbyBkYXRhPXdyaXRlYmFjaycuICBBbmQgeW91IG1pZ2h0IGFzIHdlbGwgdXNlCisgICAgYG1vdW50IC1vIG5vYmgnIHRvbyBhbG9uZyB3aXRoIGl0LiAgTWFraW5nIHRoZSBqb3VybmFsIGxhcmdlciB0aGFuCisgICAgdGhlIG1rZTJmcyBkZWZhdWx0IG9mdGVuIGhlbHBzIHBlcmZvcm1hbmNlIHdpdGggbWV0YWRhdGEtaW50ZW5zaXZlCisgICAgd29ya2xvYWRzLgogCiAyLiBGZWF0dXJlcwogPT09PT09PT09PT0KIAogMi4xIEN1cnJlbnRseSBhdmFpbGFibGUKIAotKiBhYmlsaXR5IHRvIHVzZSBmaWxlc3lzdGVtcyA+IDE2VEIKKyogYWJpbGl0eSB0byB1c2UgZmlsZXN5c3RlbXMgPiAxNlRCIChlMmZzcHJvZ3Mgc3VwcG9ydCBub3QgYXZhaWxhYmxlIHlldCkKICogZXh0ZW50IGZvcm1hdCByZWR1Y2VzIG1ldGFkYXRhIG92ZXJoZWFkIChSQU0sIElPIGZvciBhY2Nlc3MsIHRyYW5zYWN0aW9ucykKICogZXh0ZW50IGZvcm1hdCBtb3JlIHJvYnVzdCBpbiBmYWNlIG9mIG9uLWRpc2sgY29ycnVwdGlvbiBkdWUgdG8gbWFnaWNzLAogKiBpbnRlcm5hbCByZWR1bmFuY3kgaW4gdHJlZQotCi0yLjEgUHJldmlvdXNseSBhdmFpbGFibGUsIHNvb24gdG8gYmUgZW5hYmxlZCBieSBkZWZhdWx0IGJ5ICJta2Vmcy5leHQ0IjoKLQotKiBkaXJfaW5kZXggYW5kIHJlc2l6ZSBpbm9kZSB3aWxsIGJlIG9uIGJ5IGRlZmF1bHQKLSogbGFyZ2UgaW5vZGVzIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBmYXN0IEVBcywgbnNlYyB0aW1lc3RhbXBzLCBldGMKKyogaW1wcm92ZWQgZmlsZSBhbGxvY2F0aW9uIChtdWx0aS1ibG9jayBhbGxvYykKKyogZml4IDMyMDAwIHN1YmRpcmVjdG9yeSBsaW1pdAorKiBuc2VjIHRpbWVzdGFtcHMgZm9yIG10aW1lLCBhdGltZSwgY3RpbWUsIGNyZWF0ZSB0aW1lCisqIGlub2RlIHZlcnNpb24gZmllbGQgb24gZGlzayAoTkZTdjQsIEx1c3RyZSkKKyogcmVkdWNlZCBlMmZzY2sgdGltZSB2aWEgdW5pbml0X2JnIGZlYXR1cmUKKyogam91cm5hbCBjaGVja3N1bW1pbmcgZm9yIHJvYnVzdG5lc3MsIHBlcmZvcm1hbmNlCisqIHBlcnNpc3RlbnQgZmlsZSBwcmVhbGxvY2F0aW9uIChlLmcgZm9yIHN0cmVhbWluZyBtZWRpYSwgZGF0YWJhc2VzKQorKiBhYmlsaXR5IHRvIHBhY2sgYml0bWFwcyBhbmQgaW5vZGUgdGFibGVzIGludG8gbGFyZ2VyIHZpcnR1YWwgZ3JvdXBzIHZpYSB0aGUKKyAgZmxleF9iZyBmZWF0dXJlCisqIGxhcmdlIGZpbGUgc3VwcG9ydAorKiBJbm9kZSBhbGxvY2F0aW9uIHVzaW5nIGxhcmdlIHZpcnR1YWwgYmxvY2sgZ3JvdXBzIHZpYSBmbGV4X2JnCisqIGRlbGF5ZWQgYWxsb2NhdGlvbgorKiBsYXJnZSBibG9jayAodXAgdG8gcGFnZXNpemUpIHN1cHBvcnQKKyogZWZmaWNlbnQgbmV3IG9yZGVyZWQgbW9kZSBpbiBKQkQyIGFuZCBleHQ0KGF2b2lkIHVzaW5nIGJ1ZmZlciBoZWFkIHRvIGZvcmNlCisgIHRoZSBvcmRlcmluZykKIAogMi4yIENhbmRpZGF0ZSBmZWF0dXJlcyBmb3IgZnV0dXJlIGluY2x1c2lvbgogCi1UaGVyZSBhcmUgc2V2ZXJhbCB1bmRlciBkaXNjdXNzaW9uLCB3aGV0aGVyIHRoZXkgYWxsIG1ha2UgaXQgaW4gaXMKLXBhcnRseSBhIGZ1bmN0aW9uIG9mIGhvdyBtdWNoIHRpbWUgZXZlcnlvbmUgaGFzIHRvIHdvcmsgb24gdGhlbToKKyogT25saW5lIGRlZnJhZyAocGF0Y2hlcyBhdmFpbGFibGUgYnV0IG5vdCB3ZWxsIHRlc3RlZCkKKyogcmVkdWNlZCBta2UyZnMgdGltZSB2aWEgbGF6eSBpdGFibGUgaW5pdGlhbGl6YXRpb24gaW4gY29uanVjdGlvbiB3aXRoCisgIHRoZSB1bmluaXRfYmcgZmVhdHVyZSAoY2FwYWJpbGl0eSB0byBkbyB0aGlzIGlzIGF2YWlsYWJsZSBpbiBlMmZzcHJvZ3MKKyAgYnV0IGEga2VybmVsIHRocmVhZCB0byBkbyBsYXp5IHplcm9pbmcgb2YgdW51c2VkIGlub2RlIHRhYmxlIGJsb2NrcworICBhZnRlciBmaWxlc3lzdGVtIGlzIGZpcnN0IG1vdW50ZWQgaXMgcmVxdWlyZWQgZm9yIHNhZmV0eSkKIAotKiBpbXByb3ZlZCBmaWxlIGFsbG9jYXRpb24gKG11bHRpLWJsb2NrIGFsbG9jLCBkZWxheWVkIGFsbG9jOyBiYXNpY2FsbHkgZG9uZSkKLSogZml4IDMyMDAwIHN1YmRpcmVjdG9yeSBsaW1pdCAocGF0Y2ggZXhpc3RzLCBuZWVkcyBzb21lIGUyZnNjayB3b3JrKQotKiBuc2VjIHRpbWVzdGFtcHMgZm9yIG10aW1lLCBhdGltZSwgY3RpbWUsIGNyZWF0ZSB0aW1lIChwYXRjaCBleGlzdHMsCi0gIG5lZWRzIHNvbWUgZTJmc2NrIHdvcmspCi0qIGlub2RlIHZlcnNpb24gZmllbGQgb24gZGlzayAoTkZTdjQsIEx1c3RyZTsgcHJvdG90eXBlIGV4aXN0cykKLSogcmVkdWNlZCBta2UyZnMvZTJmc2NrIHRpbWUgdmlhIHVuaW5pdGlhbGl6ZWQgZ3JvdXBzIChwcm90b3R5cGUgZXhpc3RzKQotKiBqb3VybmFsIGNoZWNrc3VtbWluZyBmb3Igcm9idXN0bmVzcywgcGVyZm9ybWFuY2UgKHByb3RvdHlwZSBleGlzdHMpCi0qIHBlcnNpc3RlbnQgZmlsZSBwcmVhbGxvY2F0aW9uIChlLmcgZm9yIHN0cmVhbWluZyBtZWRpYSwgZGF0YWJhc2VzKQorVGhlcmUgYXJlIHNldmVyYWwgb3RoZXJzIHVuZGVyIGRpc2N1c3Npb24sIHdoZXRoZXIgdGhleSBhbGwgbWFrZSBpdCBpbiBpcworcGFydGx5IGEgZnVuY3Rpb24gb2YgaG93IG11Y2ggdGltZSBldmVyeW9uZSBoYXMgdG8gd29yayBvbiB0aGVtLiBGZWF0dXJlcyBsaWtlCittZXRhZGF0YSBjaGVja3N1bW1pbmcgaGF2ZSBiZWVuIGRpc2N1c3NlZCBhbmQgcGxhbm5lZCBmb3IgYSBiaXQgYnV0IG5vIHBhdGNoZXMKK2V4aXN0IHlldCBzbyBJJ20gbm90IHN1cmUgdGhleSdyZSBpbiB0aGUgbmVhci10ZXJtIHJvYWRtYXAuCiAKLUZlYXR1cmVzIGxpa2UgbWV0YWRhdGEgY2hlY2tzdW1taW5nIGhhdmUgYmVlbiBkaXNjdXNzZWQgYW5kIHBsYW5uZWQgZm9yCi1hIGJpdCBidXQgbm8gcGF0Y2hlcyBleGlzdCB5ZXQgc28gSSdtIG5vdCBzdXJlIHRoZXkncmUgaW4gdGhlIG5lYXItdGVybQotcm9hZG1hcC4KK1RoZSBiaWcgcGVyZm9ybWFuY2Ugd2luIHdpbGwgY29tZSB3aXRoIG1iYWxsb2MsIGRlbGFsbG9jIGFuZCBmbGV4X2JnCitncm91cGluZyBvZiBiaXRtYXBzIGFuZCBpbm9kZSB0YWJsZXMuICBTb21lIHRlc3QgcmVzdWx0cyBhdmFpbGFibGUgaGVyZToKIAotVGhlIGJpZyBwZXJmb3JtYW5jZSB3aW4gd2lsbCBjb21lIHdpdGggbWJhbGxvYyBhbmQgZGVsYWxsb2MuICBDRlMgaGFzCi1iZWVuIHVzaW5nIG1iYWxsb2MgZm9yIGEgZmV3IHllYXJzIGFscmVhZHkgd2l0aCBMdXN0cmUsIGFuZCBJQk0gKyBCdWxsCi1kaWQgYSBsb3Qgb2YgYmVuY2htYXJraW5nIG9uIGl0LiAgVGhlIHJlYXNvbiBpdCBpc24ndCBpbiB0aGUgZmlyc3Qgc2V0IG9mCi1wYXRjaGVzIGlzIHBhcnRseSBhIG1hbmFnZWFiaWxpdHkgaXNzdWUsIGFuZCBwYXJ0bHkgYmVjYXVzZSBpdCBkb2Vzbid0Ci1kaXJlY3RseSBhZmZlY3QgdGhlIG9uLWRpc2sgZm9ybWF0IChvdXRzaWRlIG9mIG11Y2ggYmV0dGVyIGFsbG9jYXRpb24pCi1zbyBpdCBpc24ndCBjcml0aWNhbCB0byBnZXQgaW50byB0aGUgZmlyc3Qgcm91bmQgb2YgY2hhbmdlcy4gIEkgYmVsaWV2ZQotQWxleCBpcyB3b3JraW5nIG9uIGEgbmV3IHNldCBvZiBwYXRjaGVzIHJpZ2h0IG5vdy4KKyAtIGh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvMjAwODA1MzAvZmZzYi13cml0ZS0yLjYuMjYtcmMyLmh0bWwKKyAtIGh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvMjAwODA1MzAvZmZzYi1yZWFkd3JpdGUtMi42LjI2LXJjMi5odG1sCiAKIDMuIE9wdGlvbnMKID09PT09PT09PT0KQEAgLTEzOSw4ICsxNjAsMTYgQEAKIAkJCVNldHRpbmcgaXQgdG8gdmVyeSBsYXJnZSB2YWx1ZXMgd2lsbCBpbXByb3ZlCiAJCQlwZXJmb3JtYW5jZS4KIAotYmFycmllcj0xCQlUaGlzIGVuYWJsZXMvZGlzYWJsZXMgYmFycmllcnMuICBiYXJyaWVyPTAgZGlzYWJsZXMKLQkJCWl0LCBiYXJyaWVyPTEgZW5hYmxlcyBpdC4KK2JhcnJpZXI9PDB8MSgqKT4JVGhpcyBlbmFibGVzL2Rpc2FibGVzIHRoZSB1c2Ugb2Ygd3JpdGUgYmFycmllcnMgaW4KKwkJCXRoZSBqYmQgY29kZS4gIGJhcnJpZXI9MCBkaXNhYmxlcywgYmFycmllcj0xIGVuYWJsZXMuCisJCQlUaGlzIGFsc28gcmVxdWlyZXMgYW4gSU8gc3RhY2sgd2hpY2ggY2FuIHN1cHBvcnQKKwkJCWJhcnJpZXJzLCBhbmQgaWYgamJkIGdldHMgYW4gZXJyb3Igb24gYSBiYXJyaWVyCisJCQl3cml0ZSwgaXQgd2lsbCBkaXNhYmxlIGFnYWluIHdpdGggYSB3YXJuaW5nLgorCQkJV3JpdGUgYmFycmllcnMgZW5mb3JjZSBwcm9wZXIgb24tZGlzayBvcmRlcmluZworCQkJb2Ygam91cm5hbCBjb21taXRzLCBtYWtpbmcgdm9sYXRpbGUgZGlzayB3cml0ZSBjYWNoZXMKKwkJCXNhZmUgdG8gdXNlLCBhdCBzb21lIHBlcmZvcm1hbmNlIHBlbmFsdHkuICBJZgorCQkJeW91ciBkaXNrcyBhcmUgYmF0dGVyeS1iYWNrZWQgaW4gb25lIHdheSBvciBhbm90aGVyLAorCQkJZGlzYWJsaW5nIGJhcnJpZXJzIG1heSBzYWZlbHkgaW1wcm92ZSBwZXJmb3JtYW5jZS4KIAogb3Jsb3YJCSgqKQlUaGlzIGVuYWJsZXMgdGhlIG5ldyBPcmxvdiBibG9jayBhbGxvY2F0b3IuIEl0IGlzCiAJCQllbmFibGVkIGJ5IGRlZmF1bHQuCkBAIC0yMTQsOSArMjQzLDExIEBACiAJCQl0byB1c2UgZm9yIGFsbG9jYXRpb24gc2l6ZSBhbmQgYWxpZ25tZW50LiBGb3IgUkFJRDUvNgogCQkJc3lzdGVtcyB0aGlzIHNob3VsZCBiZSB0aGUgbnVtYmVyIG9mIGRhdGEKIAkJCWRpc2tzICogIFJBSUQgY2h1bmsgc2l6ZSBpbiBmaWxlIHN5c3RlbSBibG9ja3MuCi0KK2RlbGFsbG9jCSgqKQlEZWZlcnJpbmcgYmxvY2sgYWxsb2NhdGlvbiB1bnRpbCB3cml0ZS1vdXQgdGltZS4KK25vZGVsYWxsb2MJCURpc2FibGUgZGVsYXllZCBhbGxvY2F0aW9uLiBCbG9ja3MgYXJlIGFsbG9jYXRpb24KKwkJCXdoZW4gZGF0YSBpcyBjb3BpZWQgZnJvbSB1c2VyIHRvIHBhZ2UgY2FjaGUuCiBEYXRhIE1vZGUKLS0tLS0tLS0tLQorPT09PT09PT09CiBUaGVyZSBhcmUgMyBkaWZmZXJlbnQgZGF0YSBtb2RlczoKIAogKiB3cml0ZWJhY2sgbW9kZQpAQCAtMjI4LDEwICsyNTksMTAgQEAKIAogKiBvcmRlcmVkIG1vZGUKIEluIGRhdGE9b3JkZXJlZCBtb2RlLCBleHQ0IG9ubHkgb2ZmaWNpYWxseSBqb3VybmFscyBtZXRhZGF0YSwgYnV0IGl0IGxvZ2ljYWxseQotZ3JvdXBzIG1ldGFkYXRhIGFuZCBkYXRhIGJsb2NrcyBpbnRvIGEgc2luZ2xlIHVuaXQgY2FsbGVkIGEgdHJhbnNhY3Rpb24uICBXaGVuCi1pdCdzIHRpbWUgdG8gd3JpdGUgdGhlIG5ldyBtZXRhZGF0YSBvdXQgdG8gZGlzaywgdGhlIGFzc29jaWF0ZWQgZGF0YSBibG9ja3MKLWFyZSB3cml0dGVuIGZpcnN0LiAgSW4gZ2VuZXJhbCwgdGhpcyBtb2RlIHBlcmZvcm1zIHNsaWdodGx5IHNsb3dlciB0aGFuCi13cml0ZWJhY2sgYnV0IHNpZ25pZmljYW50bHkgZmFzdGVyIHRoYW4gam91cm5hbCBtb2RlLgorZ3JvdXBzIG1ldGFkYXRhIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gZGF0YSBjaGFuZ2VzIHdpdGggdGhlIGRhdGEgYmxvY2tzIGludG8gYQorc2luZ2xlIHVuaXQgY2FsbGVkIGEgdHJhbnNhY3Rpb24uICBXaGVuIGl0J3MgdGltZSB0byB3cml0ZSB0aGUgbmV3IG1ldGFkYXRhCitvdXQgdG8gZGlzaywgdGhlIGFzc29jaWF0ZWQgZGF0YSBibG9ja3MgYXJlIHdyaXR0ZW4gZmlyc3QuICBJbiBnZW5lcmFsLAordGhpcyBtb2RlIHBlcmZvcm1zIHNsaWdodGx5IHNsb3dlciB0aGFuIHdyaXRlYmFjayBidXQgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGhhbiBqb3VybmFsIG1vZGUuCiAKICogam91cm5hbCBtb2RlCiBkYXRhPWpvdXJuYWwgbW9kZSBwcm92aWRlcyBmdWxsIGRhdGEgYW5kIG1ldGFkYXRhIGpvdXJuYWxpbmcuICBBbGwgbmV3IGRhdGEgaXMKQEAgLTIzOSw3ICsyNzAsOCBAQAogSW4gdGhlIGV2ZW50IG9mIGEgY3Jhc2gsIHRoZSBqb3VybmFsIGNhbiBiZSByZXBsYXllZCwgYnJpbmdpbmcgYm90aCBkYXRhIGFuZAogbWV0YWRhdGEgaW50byBhIGNvbnNpc3RlbnQgc3RhdGUuICBUaGlzIG1vZGUgaXMgdGhlIHNsb3dlc3QgZXhjZXB0IHdoZW4gZGF0YQogbmVlZHMgdG8gYmUgcmVhZCBmcm9tIGFuZCB3cml0dGVuIHRvIGRpc2sgYXQgdGhlIHNhbWUgdGltZSB3aGVyZSBpdAotb3V0cGVyZm9ybXMgYWxsIG90aGVycyBtb2Rlcy4KK291dHBlcmZvcm1zIGFsbCBvdGhlcnMgbW9kZXMuICBDdXJlbnRseSBleHQ0IGRvZXMgbm90IGhhdmUgZGVsYXllZAorYWxsb2NhdGlvbiBzdXBwb3J0IGlmIHRoaXMgZGF0YSBqb3VybmFsbGluZyBtb2RlIGlzIHNlbGVjdGVkLgogCiBSZWZlcmVuY2VzCiA9PT09PT09PT09CkBAIC0yNDgsNyArMjgwLDggQEAKIAkJPGZpbGU6ZnMvamJkMi8+CiAKIHByb2dyYW1zOglodHRwOi8vZTJmc3Byb2dzLnNvdXJjZWZvcmdlLm5ldC8KLQkJaHR0cDovL2V4dDJyZXNpemUuc291cmNlZm9yZ2UubmV0CiAKIHVzZWZ1bCBsaW5rczoJaHR0cDovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvZXh0My1kZXZlbAogCQlodHRwOi8vd3d3LmJ1bGxvcGVuc291cmNlLm9yZy9leHQ0LworCQlodHRwOi8vZXh0NC53aWtpLmtlcm5lbC5vcmcvaW5kZXgucGhwL01haW5fUGFnZQorCQlodHRwOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWF0dXJlcy9FeHQ0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3N5c2ZzLXBjaS50eHQgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3N5c2ZzLXBjaS50eHQKaW5kZXggNWRhYTJhYS4uNjhlZjQ4OCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9zeXNmcy1wY2kudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMtcGNpLnR4dApAQCAtMzYsNiArMzYsNyBAQAogICAgICAgIGxvY2FsX2NwdXMJICAgbmVhcmJ5IENQVSBtYXNrIChjcHVtYXNrLCBybykKICAgICAgICByZXNvdXJjZQkJICAgUENJIHJlc291cmNlIGhvc3QgYWRkcmVzc2VzIChhc2NpaSwgcm8pCiAgICAgICAgcmVzb3VyY2UwLi5OCSAgIFBDSSByZXNvdXJjZSBOLCBpZiBwcmVzZW50IChiaW5hcnksIG1tYXApCisgICAgICAgcmVzb3VyY2UwX3djLi5OX3djICBQQ0kgV0MgbWFwIHJlc291cmNlIE4sIGlmIHByZWZldGNoYWJsZSAoYmluYXJ5LCBtbWFwKQogICAgICAgIHJvbQkJICAgUENJIFJPTSByZXNvdXJjZSwgaWYgcHJlc2VudCAoYmluYXJ5LCBybykKICAgICAgICBzdWJzeXN0ZW1fZGV2aWNlCSAgIFBDSSBzdWJzeXN0ZW0gZGV2aWNlIChhc2NpaSwgcm8pCiAgICAgICAgc3Vic3lzdGVtX3ZlbmRvcgkgICBQQ0kgc3Vic3lzdGVtIHZlbmRvciAoYXNjaWksIHJvKQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9mdHJhY2UudHh0IGIvRG9jdW1lbnRhdGlvbi9mdHJhY2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ZDNmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2Z0cmFjZS50eHQKQEAgLTAsMCArMSwxMzYxIEBACisJCWZ0cmFjZSAtIEZ1bmN0aW9uIFRyYWNlcgorCQk9PT09PT09PT09PT09PT09PT09PT09PT0KKworQ29weXJpZ2h0IDIwMDggUmVkIEhhdCBJbmMuCisgICBBdXRob3I6ICAgU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgIExpY2Vuc2U6ICAgVGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIKK1Jldmlld2VyczogICBFbGlhcyBPbHRtYW5ucyBhbmQgUmFuZHkgRHVubGFwCisKK1dyaXRlbiBmb3I6IDIuNi4yNi1yYzggbGludXgtMi42LXRpcC5naXQgdGlwL3RyYWNpbmcvZnRyYWNlIGJyYW5jaAorCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCitGdHJhY2UgaXMgYW4gaW50ZXJuYWwgdHJhY2VyIGRlc2lnbmVkIHRvIGhlbHAgb3V0IGRldmVsb3BlcnMgYW5kCitkZXNpZ25lcnMgb2Ygc3lzdGVtcyB0byBmaW5kIHdoYXQgaXMgZ29pbmcgb24gaW5zaWRlIHRoZSBrZXJuZWwuCitJdCBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nIG9yIGFuYWx5emluZyBsYXRlbmNpZXMgYW5kIHBlcmZvcm1hbmNlCitpc3N1ZXMgdGhhdCB0YWtlIHBsYWNlIG91dHNpZGUgb2YgdXNlci1zcGFjZS4KKworQWx0aG91Z2ggZnRyYWNlIGlzIHRoZSBmdW5jdGlvbiB0cmFjZXIsIGl0IGFsc28gaW5jbHVkZXMgYW4KK2luZnJhc3RydWN0dXJlIHRoYXQgYWxsb3dzIGZvciBvdGhlciB0eXBlcyBvZiB0cmFjaW5nLiBTb21lIG9mIHRoZQordHJhY2VycyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gZnRyYWNlIGlzIGEgdHJhY2VyIHRvIHRyYWNlCitjb250ZXh0IHN3aXRjaGVzLCB0aGUgdGltZSBpdCB0YWtlcyBmb3IgYSBoaWdoIHByaW9yaXR5IHRhc2sgdG8KK3J1biBhZnRlciBpdCB3YXMgd29rZW4gdXAsIHRoZSB0aW1lIGludGVycnVwdHMgYXJlIGRpc2FibGVkLCBhbmQKK21vcmUuCisKKworVGhlIEZpbGUgU3lzdGVtCistLS0tLS0tLS0tLS0tLS0KKworRnRyYWNlIHVzZXMgdGhlIGRlYnVnZnMgZmlsZSBzeXN0ZW0gdG8gaG9sZCB0aGUgY29udHJvbCBmaWxlcyBhcyB3ZWxsCithcyB0aGUgZmlsZXMgdG8gZGlzcGxheSBvdXRwdXQuCisKK1RvIG1vdW50IHRoZSBkZWJ1Z2ZzIHN5c3RlbToKKworICAjIG1rZGlyIC9kZWJ1ZworICAjIG1vdW50IC10IGRlYnVnZnMgbm9kZXYgL2RlYnVnCisKKworVGhhdCdzIGl0ISAoYXNzdW1pbmcgdGhhdCB5b3UgaGF2ZSBmdHJhY2UgY29uZmlndXJlZCBpbnRvIHlvdXIga2VybmVsKQorCitBZnRlciBtb3VudGluZyB0aGUgZGVidWdmcywgeW91IGNhbiBzZWUgYSBkaXJlY3RvcnkgY2FsbGVkCisidHJhY2luZyIuICBUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0aGUgY29udHJvbCBhbmQgb3V0cHV0IGZpbGVzCitvZiBmdHJhY2UuIEhlcmUgaXMgYSBsaXN0IG9mIHNvbWUgb2YgdGhlIGtleSBmaWxlczoKKworCisgTm90ZTogYWxsIHRpbWUgdmFsdWVzIGFyZSBpbiBtaWNyb3NlY29uZHMuCisKKyAgY3VycmVudF90cmFjZXIgOiBUaGlzIGlzIHVzZWQgdG8gc2V0IG9yIGRpc3BsYXkgdGhlIGN1cnJlbnQgdHJhY2VyCisJCXRoYXQgaXMgY29uZmlndXJlZC4KKworICBhdmFpbGFibGVfdHJhY2VycyA6IFRoaXMgaG9sZHMgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiB0cmFjZXJzIHRoYXQKKwkJaGF2ZSBiZWVuIGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbC4gVGhlIHRyYWNlcnMKKwkJbGlzdGVkIGhlcmUgY2FuIGJlIGNvbmZpZ3VyZWQgYnkgZWNob2luZyBpbiB0aGVpcgorCQluYW1lIGludG8gY3VycmVudF90cmFjZXIuCisKKyAgdHJhY2luZ19lbmFibGVkIDogVGhpcyBzZXRzIG9yIGRpc3BsYXlzIHdoZXRoZXIgdGhlIGN1cnJlbnRfdHJhY2VyCisJCWlzIGFjdGl2YXRlZCBhbmQgdHJhY2luZyBvciBub3QuIEVjaG8gMCBpbnRvIHRoaXMKKwkJZmlsZSB0byBkaXNhYmxlIHRoZSB0cmFjZXIgb3IgMSAob3Igbm9uLXplcm8pIHRvCisJCWVuYWJsZSBpdC4KKworICB0cmFjZSA6IFRoaXMgZmlsZSBob2xkcyB0aGUgb3V0cHV0IG9mIHRoZSB0cmFjZSBpbiBhIGh1bWFuIHJlYWRhYmxlCisJCWZvcm1hdC4KKworICBsYXRlbmN5X3RyYWNlIDogVGhpcyBmaWxlIHNob3dzIHRoZSBzYW1lIHRyYWNlIGJ1dCB0aGUgaW5mb3JtYXRpb24KKwkJaXMgb3JnYW5pemVkIG1vcmUgdG8gZGlzcGxheSBwb3NzaWJsZSBsYXRlbmNpZXMKKwkJaW4gdGhlIHN5c3RlbS4KKworICB0cmFjZV9waXBlIDogVGhlIG91dHB1dCBpcyB0aGUgc2FtZSBhcyB0aGUgInRyYWNlIiBmaWxlIGJ1dCB0aGlzCisJCWZpbGUgaXMgbWVhbnQgdG8gYmUgc3RyZWFtZWQgd2l0aCBsaXZlIHRyYWNpbmcuCisJCVJlYWRzIGZyb20gdGhpcyBmaWxlIHdpbGwgYmxvY2sgdW50aWwgbmV3IGRhdGEKKwkJaXMgcmV0cmlldmVkLiBVbmxpa2UgdGhlICJ0cmFjZSIgYW5kICJsYXRlbmN5X3RyYWNlIgorCQlmaWxlcywgdGhpcyBmaWxlIGlzIGEgY29uc3VtZXIuIFRoaXMgbWVhbnMgcmVhZGluZworCQlmcm9tIHRoaXMgZmlsZSBjYXVzZXMgc2VxdWVudGlhbCByZWFkcyB0byBkaXNwbGF5CisJCW1vcmUgY3VycmVudCBkYXRhLiBPbmNlIGRhdGEgaXMgcmVhZCBmcm9tIHRoaXMKKwkJZmlsZSwgaXQgaXMgY29uc3VtZWQsIGFuZCB3aWxsIG5vdCBiZSByZWFkCisJCWFnYWluIHdpdGggYSBzZXF1ZW50aWFsIHJlYWQuIFRoZSAidHJhY2UiIGFuZAorCQkibGF0ZW5jeV90cmFjZSIgZmlsZXMgYXJlIHN0YXRpYywgYW5kIGlmIHRoZQorCQl0cmFjZXIgaXNuJ3QgYWRkaW5nIG1vcmUgZGF0YSwgdGhleSB3aWxsIGRpc3BsYXkKKwkJdGhlIHNhbWUgaW5mb3JtYXRpb24gZXZlcnkgdGltZSB0aGV5IGFyZSByZWFkLgorCisgIGl0ZXJfY3RybCA6IFRoaXMgZmlsZSBsZXRzIHRoZSB1c2VyIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkYXRhCisJCXRoYXQgaXMgZGlzcGxheWVkIGluIG9uZSBvZiB0aGUgYWJvdmUgb3V0cHV0CisJCWZpbGVzLgorCisgIHRyYWNlX21heF9sYXRlbmN5IDogU29tZSBvZiB0aGUgdHJhY2VycyByZWNvcmQgdGhlIG1heCBsYXRlbmN5LgorCQlGb3IgZXhhbXBsZSwgdGhlIHRpbWUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuCisJCVRoaXMgdGltZSBpcyBzYXZlZCBpbiB0aGlzIGZpbGUuIFRoZSBtYXggdHJhY2UKKwkJd2lsbCBhbHNvIGJlIHN0b3JlZCwgYW5kIGRpc3BsYXllZCBieSBlaXRoZXIKKwkJInRyYWNlIiBvciAibGF0ZW5jeV90cmFjZSIuICBBIG5ldyBtYXggdHJhY2Ugd2lsbAorCQlvbmx5IGJlIHJlY29yZGVkIGlmIHRoZSBsYXRlbmN5IGlzIGdyZWF0ZXIgdGhhbgorCQl0aGUgdmFsdWUgaW4gdGhpcyBmaWxlLiAoaW4gbWljcm9zZWNvbmRzKQorCisgIHRyYWNlX2VudHJpZXMgOiBUaGlzIHNldHMgb3IgZGlzcGxheXMgdGhlIG51bWJlciBvZiB0cmFjZQorCQllbnRyaWVzIGVhY2ggQ1BVIGJ1ZmZlciBjYW4gaG9sZC4gVGhlIHRyYWNlciBidWZmZXJzCisJCWFyZSB0aGUgc2FtZSBzaXplIGZvciBlYWNoIENQVSwgc28gY2FyZSBtdXN0IGJlCisJCXRha2VuIHdoZW4gbW9kaWZ5aW5nIHRoZSB0cmFjZV9lbnRyaWVzLiBUaGUgdHJhY2UKKwkJYnVmZmVycyBhcmUgYWxsb2NhdGVkIGluIHBhZ2VzIChibG9ja3Mgb2YgbWVtb3J5IHRoYXQKKwkJdGhlIGtlcm5lbCB1c2VzIGZvciBhbGxvY2F0aW9uLCB1c3VhbGx5IDQgS0IgaW4gc2l6ZSkuCisJCVNpbmNlIGVhY2ggZW50cnkgaXMgc21hbGxlciB0aGFuIGEgcGFnZSwgaWYgdGhlIGxhc3QKKwkJYWxsb2NhdGVkIHBhZ2UgaGFzIHJvb20gZm9yIG1vcmUgZW50cmllcyB0aGFuIHdlcmUKKwkJcmVxdWVzdGVkLCB0aGUgcmVzdCBvZiB0aGUgcGFnZSBpcyB1c2VkIHRvIGFsbG9jYXRlCisJCWVudHJpZXMuCisKKwkJVGhpcyBjYW4gb25seSBiZSB1cGRhdGVkIHdoZW4gdGhlIGN1cnJlbnRfdHJhY2VyCisJCWlzIHNldCB0byAibm9uZSIuCisKKwkJTk9URTogSXQgaXMgcGxhbm5lZCBvbiBjaGFuZ2luZyB0aGUgYWxsb2NhdGVkIGJ1ZmZlcnMKKwkJICAgICAgZnJvbSBiZWluZyB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIENQVVMgdG8KKwkJICAgICAgdGhlIG51bWJlciBvZiBvbmxpbmUgQ1BVUy4KKworICB0cmFjaW5nX2NwdW1hc2sgOiBUaGlzIGlzIGEgbWFzayB0aGF0IGxldHMgdGhlIHVzZXIgb25seSB0cmFjZQorCQlvbiBzcGVjaWZpZWQgQ1BVUy4gVGhlIGZvcm1hdCBpcyBhIGhleCBzdHJpbmcKKwkJcmVwcmVzZW50aW5nIHRoZSBDUFVTLgorCisgIHNldF9mdHJhY2VfZmlsdGVyIDogV2hlbiBkeW5hbWljIGZ0cmFjZSBpcyBjb25maWd1cmVkIGluLCB0aGUKKwkJY29kZSBpcyBkeW5hbWljYWxseSBtb2RpZmllZCB0byBkaXNhYmxlIGNhbGxpbmcKKwkJb2YgdGhlIGZ1bmN0aW9uIHByb2ZpbGVyIChtY291bnQpLiBUaGlzIGxldHMKKwkJdHJhY2luZyBiZSBjb25maWd1cmVkIGluIHdpdGggcHJhY3RpY2FsbHkgbm8gb3ZlcmhlYWQKKwkJaW4gcGVyZm9ybWFuY2UuICBUaGlzIGFsc28gaGFzIGEgc2lkZSBlZmZlY3Qgb2YKKwkJZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHNwZWNpZmljIGZ1bmN0aW9ucyB0byBiZQorCQl0cmFjZWQuICBFY2hvaW5nIGluIG5hbWVzIG9mIGZ1bmN0aW9ucyBpbnRvIHRoaXMKKwkJZmlsZSB3aWxsIGxpbWl0IHRoZSB0cmFjZSB0byBvbmx5IHRoZXNlIGZ1bmN0aW9ucy4KKworICBzZXRfZnRyYWNlX25vdHJhY2U6IFRoaXMgaGFzIHRoZSBvcHBvc2l0ZSBlZmZlY3QgdGhhdAorCQlzZXRfZnRyYWNlX2ZpbHRlciBoYXMuIEFueSBmdW5jdGlvbiB0aGF0IGlzIGFkZGVkCisJCWhlcmUgd2lsbCBub3QgYmUgdHJhY2VkLiBJZiBhIGZ1bmN0aW9uIGV4aXN0cworCQlpbiBib3RoIHNldF9mdHJhY2VfZmlsdGVyIGFuZCBzZXRfZnRyYWNlX25vdHJhY2UsCisJCXRoZSBmdW5jdGlvbiB3aWxsIF9ub3RfIGJlIHRyYWNlZC4KKworICBhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucyA6IFdoZW4gYSBmdW5jdGlvbiBpcyBlbmNvdW50ZXJlZCB0aGUgZmlyc3QKKwkJdGltZSBieSB0aGUgZHluYW1pYyB0cmFjZXIsIGl0IGlzIHJlY29yZGVkIGFuZAorCQlsYXRlciB0aGUgY2FsbCBpcyBjb252ZXJ0ZWQgaW50byBhIG5vcC4gVGhpcyBmaWxlCisJCWxpc3RzIHRoZSBmdW5jdGlvbnMgdGhhdCBoYXZlIGJlZW4gcmVjb3JkZWQKKwkJYnkgdGhlIGR5bmFtaWMgdHJhY2VyIGFuZCB0aGVzZSBmdW5jdGlvbnMgY2FuCisJCWJlIHVzZWQgdG8gc2V0IHRoZSBmdHJhY2UgZmlsdGVyIGJ5IHRoZSBhYm92ZQorCQkic2V0X2Z0cmFjZV9maWx0ZXIiIGZpbGUuCisKKworVGhlIFRyYWNlcnMKKy0tLS0tLS0tLS0tCisKK0hlcmUgYXJlIHRoZSBsaXN0IG9mIGN1cnJlbnQgdHJhY2VycyB0aGF0IGNhbiBiZSBjb25maWd1cmVkLgorCisgIGZ0cmFjZSAtIGZ1bmN0aW9uIHRyYWNlciB0aGF0IHVzZXMgbWNvdW50IHRvIHRyYWNlIGFsbCBmdW5jdGlvbnMuCisJCUl0IGlzIHBvc3NpYmxlIHRvIGZpbHRlciBvdXQgd2hpY2ggZnVuY3Rpb25zIHRoYXQgYXJlCisJCXRvIGJlIHRyYWNlZCB3aGVuIGR5bmFtaWMgZnRyYWNlIGlzIGNvbmZpZ3VyZWQgaW4uCisKKyAgc2NoZWRfc3dpdGNoIC0gdHJhY2VzIHRoZSBjb250ZXh0IHN3aXRjaGVzIGJldHdlZW4gdGFza3MuCisKKyAgaXJxc29mZiAtIHRyYWNlcyB0aGUgYXJlYXMgdGhhdCBkaXNhYmxlIGludGVycnVwdHMgYW5kIHNhdmVzIG9mZgorICAJCXRoZSB0cmFjZSB3aXRoIHRoZSBsb25nZXN0IG1heCBsYXRlbmN5LgorCQlTZWUgdHJhY2luZ19tYXhfbGF0ZW5jeS4gIFdoZW4gYSBuZXcgbWF4IGlzIHJlY29yZGVkLAorCQlpdCByZXBsYWNlcyB0aGUgb2xkIHRyYWNlLiBJdCBpcyBiZXN0IHRvIHZpZXcgdGhpcworCQl0cmFjZSB3aXRoIHRoZSBsYXRlbmN5X3RyYWNlIGZpbGUuCisKKyAgcHJlZW1wdG9mZiAtIFNpbWlsYXIgdG8gaXJxc29mZiBidXQgdHJhY2VzIGFuZCByZWNvcmRzIHRoZSB0aW1lCisJCXByZWVtcHRpb24gaXMgZGlzYWJsZWQuCisKKyAgcHJlZW1wdGlycXNvZmYgLSBTaW1pbGFyIHRvIGlycXNvZmYgYW5kIHByZWVtcHRvZmYsIGJ1dCB0cmFjZXMgYW5kCisJCSByZWNvcmRzIHRoZSBsYXJnZXN0IHRpbWUgaXJxcyBhbmQvb3IgcHJlZW1wdGlvbiBpcworCQkgZGlzYWJsZWQuCisKKyAgd2FrZXVwIC0gVHJhY2VzIGFuZCByZWNvcmRzIHRoZSBtYXggbGF0ZW5jeSB0aGF0IGl0IHRha2VzIGZvcgorCQl0aGUgaGlnaGVzdCBwcmlvcml0eSB0YXNrIHRvIGdldCBzY2hlZHVsZWQgYWZ0ZXIKKwkJaXQgaGFzIGJlZW4gd29rZW4gdXAuCisKKyAgbm9uZSAtIFRoaXMgaXMgbm90IGEgdHJhY2VyLiBUbyByZW1vdmUgYWxsIHRyYWNlcnMgZnJvbSB0cmFjaW5nCisJCXNpbXBseSBlY2hvICJub25lIiBpbnRvIGN1cnJlbnRfdHJhY2VyLgorCisKK0V4YW1wbGVzIG9mIHVzaW5nIHRoZSB0cmFjZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSGVyZSBhcmUgdHlwaWNhbCBleGFtcGxlcyBvZiB1c2luZyB0aGUgdHJhY2VycyB3aXRoIG9ubHkgY29udHJvbGxpbmcKK3RoZW0gd2l0aCB0aGUgZGVidWdmcyBpbnRlcmZhY2UgKHdpdGhvdXQgdXNpbmcgYW55IHVzZXItbGFuZCB1dGlsaXRpZXMpLgorCitPdXRwdXQgZm9ybWF0OgorLS0tLS0tLS0tLS0tLS0KKworSGVyZSdzIGFuIGV4YW1wbGUgb2YgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIGZpbGUgInRyYWNlIgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgICAgYmFzaC00MjUxICBbMDFdIDEwMTUyLjU4Mzg1NDogcGF0aF9wdXQgPC1wYXRoX3dhbGsKKyAgICAgICAgICAgIGJhc2gtNDI1MSAgWzAxXSAxMDE1Mi41ODM4NTU6IGRwdXQgPC1wYXRoX3B1dAorICAgICAgICAgICAgYmFzaC00MjUxICBbMDFdIDEwMTUyLjU4Mzg1NTogX2F0b21pY19kZWNfYW5kX2xvY2sgPC1kcHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tCisKK0EgaGVhZGVyIGlzIHByaW50ZWQgd2l0aCB0aGUgdHJhY2UgdGhhdCBpcyByZXByZXNlbnRlZC4gSW4gdGhpcyBjYXNlCit0aGUgdHJhY2VyIGlzICJmdHJhY2UiLiBUaGVuIGEgaGVhZGVyIHNob3dpbmcgdGhlIGZvcm1hdC4gVGFzayBuYW1lCisiYmFzaCIsIHRoZSB0YXNrIFBJRCAiNDI1MSIsIHRoZSBDUFUgdGhhdCBpdCB3YXMgcnVubmluZyBvbgorIjAxIiwgdGhlIHRpbWVzdGFtcCBpbiA8c2Vjcz4uPHVzZWNzPiBmb3JtYXQsIHRoZSBmdW5jdGlvbiBuYW1lIHRoYXQgd2FzCit0cmFjZWQgInBhdGhfcHV0IiBhbmQgdGhlIHBhcmVudCBmdW5jdGlvbiB0aGF0IGNhbGxlZCB0aGlzIGZ1bmN0aW9uCisicGF0aF93YWxrIi4KKworVGhlIHNjaGVkX3N3aXRjaCB0cmFjZXIgYWxzbyBpbmNsdWRlcyB0cmFjaW5nIG9mIHRhc2sgd2FrZSB1cHMgYW5kCitjb250ZXh0IHN3aXRjaGVzLgorCisgICAgIGtzb2Z0aXJxZC8xLTcgICAgIFswMV0gIDE0NTMuMDcwMDEzOiAgICAgIDc6MTE1OlIgICArICAyOTE2OjExNTpTCisgICAgIGtzb2Z0aXJxZC8xLTcgICAgIFswMV0gIDE0NTMuMDcwMDEzOiAgICAgIDc6MTE1OlIgICArICAgIDEwOjExNTpTCisgICAgIGtzb2Z0aXJxZC8xLTcgICAgIFswMV0gIDE0NTMuMDcwMDEzOiAgICAgIDc6MTE1OlIgPT0+ICAgIDEwOjExNTpSCisgICAgICAgIGV2ZW50cy8xLTEwICAgIFswMV0gIDE0NTMuMDcwMDEzOiAgICAgMTA6MTE1OlMgPT0+ICAyOTE2OjExNTpSCisgICAgIGtvbmRlbWFuZC8xLTI5MTYgIFswMV0gIDE0NTMuMDcwMDEzOiAgIDI5MTY6MTE1OlMgPT0+ICAgICA3OjExNTpSCisgICAgIGtzb2Z0aXJxZC8xLTcgICAgIFswMV0gIDE0NTMuMDcwMDEzOiAgICAgIDc6MTE1OlMgPT0+ICAgICAwOjE0MDpSCisKK1dha2UgdXBzIGFyZSByZXByZXNlbnRlZCBieSBhICIrIiBhbmQgdGhlIGNvbnRleHQgc3dpdGNoZXMgc2hvdworIj09PiIuICBUaGUgZm9ybWF0IGlzOgorCisgQ29udGV4dCBzd2l0Y2hlczoKKworICAgICAgIFByZXZpb3VzIHRhc2sgICAgICAgICAgICAgIE5leHQgVGFzaworCisgIDxwaWQ+OjxwcmlvPjo8c3RhdGU+ICA9PT4gIDxwaWQ+OjxwcmlvPjo8c3RhdGU+CisKKyBXYWtlIHVwczoKKworICAgICAgIEN1cnJlbnQgdGFzayAgICAgICAgICAgICAgIFRhc2sgd2FraW5nIHVwCisKKyAgPHBpZD46PHByaW8+OjxzdGF0ZT4gICAgKyAgPHBpZD46PHByaW8+OjxzdGF0ZT4KKworVGhlIHByaW8gaXMgdGhlIGludGVybmFsIGtlcm5lbCBwcmlvcml0eSwgd2hpY2ggaXMgaW52ZXJzZSB0byB0aGUKK3ByaW9yaXR5IHRoYXQgaXMgdXN1YWxseSBkaXNwbGF5ZWQgYnkgdXNlci1zcGFjZSB0b29scy4gWmVybyByZXByZXNlbnRzCit0aGUgaGlnaGVzdCBwcmlvcml0eSAoOTkpLiBQcmlvIDEwMCBzdGFydHMgdGhlICJuaWNlIiBwcmlvcml0aWVzIHdpdGgKKzEwMCBiZWluZyBlcXVhbCB0byBuaWNlIC0yMCBhbmQgMTM5IGJlaW5nIG5pY2UgMTkuIFRoZSBwcmlvICIxNDAiIGlzCityZXNlcnZlZCBmb3IgdGhlIGlkbGUgdGFzayB3aGljaCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5IHRocmVhZCAocGlkIDApLgorCisKK0xhdGVuY3kgdHJhY2UgZm9ybWF0CistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3IgdHJhY2VzIHRoYXQgZGlzcGxheSBsYXRlbmN5IHRpbWVzLCB0aGUgbGF0ZW5jeV90cmFjZSBmaWxlIGdpdmVzCithIGJpdCBtb3JlIGluZm9ybWF0aW9uIHRvIHNlZSB3aHkgYSBsYXRlbmN5IGhhcHBlbmVkLiBIZXJlJ3MgYSB0eXBpY2FsCit0cmFjZS4KKworIyB0cmFjZXI6IGlycXNvZmYKKyMKK2lycXNvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA5NyB1cywgIzMvMywgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzd2FwcGVyLTAgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiBhcGljX3RpbWVyX2ludGVycnVwdAorID0+IGVuZGVkIGF0OiAgIGRvX3NvZnRpcnEKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgPGlkbGU+LTAgICAgIDBkLi4xICAgIDB1cys6IHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayAoYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgIDxpZGxlPi0wICAgICAwZC5zLiAgIDk3dXMgOiBfX2RvX3NvZnRpcnEgKGRvX3NvZnRpcnEpCisgIDxpZGxlPi0wICAgICAwZC5zMSAgIDk4dXMgOiB0cmFjZV9oYXJkaXJxc19vbiAoZG9fc29mdGlycSkKKworCit2aW06ZnQ9aGVscAorCisKK1RoaXMgc2hvd3MgdGhhdCB0aGUgY3VycmVudCB0cmFjZXIgaXMgImlycXNvZmYiIHRyYWNpbmcgdGhlIHRpbWUKK2ludGVycnVwdHMgYXJlIGRpc2FibGVkLiBJdCBnaXZlcyB0aGUgdHJhY2UgdmVyc2lvbiBhbmQgdGhlIGtlcm5lbAordGhpcyB3YXMgZXhlY3V0ZWQgb24gKDIuNi4yNi1yYzgpLiBUaGVuIGl0IGRpc3BsYXlzIHRoZSBtYXggbGF0ZW5jeQoraW4gbWljcm9zZWNzICg5NyB1cykuIFRoZSBudW1iZXIgb2YgdHJhY2UgZW50cmllcyBkaXNwbGF5ZWQKK2J5IHRoZSB0b3RhbCBudW1iZXIgcmVjb3JkZWQgKGJvdGggYXJlIHRocmVlOiAjMy8zKS4gVGhlIHR5cGUgb2YKK3ByZWVtcHRpb24gdGhhdCB3YXMgdXNlZCAoUFJFRU1QVCkuIFZQLCBLUCwgU1AsIGFuZCBIUCBhcmUgYWx3YXlzIHplcm8KK2FuZCByZXNlcnZlZCBmb3IgbGF0ZXIgdXNlLiAjUCBpcyB0aGUgbnVtYmVyIG9mIG9ubGluZSBDUFVTICgjUDoyKS4KKworVGhlIHRhc2sgaXMgdGhlIHByb2Nlc3MgdGhhdCB3YXMgcnVubmluZyB3aGVuIHRoZSBsYXRlbmN5IGhhcHBlbmVkLgorKHN3YXBwZXIgcGlkOiAwKS4KKworVGhlIHN0YXJ0IGFuZCBzdG9wIHRoYXQgY2F1c2VkIHRoZSBsYXRlbmNpZXM6CisKKyAgYXBpY190aW1lcl9pbnRlcnJ1cHQgaXMgd2hlcmUgdGhlIGludGVycnVwdHMgd2VyZSBkaXNhYmxlZC4KKyAgZG9fc29mdGlycSBpcyB3aGVyZSB0aGV5IHdlcmUgZW5hYmxlZCBhZ2Fpbi4KKworVGhlIG5leHQgbGluZXMgYWZ0ZXIgdGhlIGhlYWRlciBhcmUgdGhlIHRyYWNlIGl0c2VsZi4gVGhlIGhlYWRlcgorZXhwbGFpbnMgd2hpY2ggaXMgd2hpY2guCisKKyAgY21kOiBUaGUgbmFtZSBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHJhY2UuCisKKyAgcGlkOiBUaGUgUElEIG9mIHRoYXQgcHJvY2Vzcy4KKworICBDUFUjOiBUaGUgQ1BVIHRoYXQgdGhlIHByb2Nlc3Mgd2FzIHJ1bm5pbmcgb24uCisKKyAgaXJxcy1vZmY6ICdkJyBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4gJy4nIG90aGVyd2lzZS4KKworICBuZWVkLXJlc2NoZWQ6ICdOJyB0YXNrIG5lZWRfcmVzY2hlZCBpcyBzZXQsICcuJyBvdGhlcndpc2UuCisKKyAgaGFyZGlycS9zb2Z0aXJxOgorCSdIJyAtIGhhcmQgaXJxIGhhcHBlbmVkIGluc2lkZSBhIHNvZnRpcnEuCisJJ2gnIC0gaGFyZCBpcnEgaXMgcnVubmluZworCSdzJyAtIHNvZnQgaXJxIGlzIHJ1bm5pbmcKKwknLicgLSBub3JtYWwgY29udGV4dC4KKworICBwcmVlbXB0LWRlcHRoOiBUaGUgbGV2ZWwgb2YgcHJlZW1wdF9kaXNhYmxlZAorCitUaGUgYWJvdmUgaXMgbW9zdGx5IG1lYW5pbmdmdWwgZm9yIGtlcm5lbCBkZXZlbG9wZXJzLgorCisgIHRpbWU6IFRoaXMgZGlmZmVycyBmcm9tIHRoZSB0cmFjZSBmaWxlIG91dHB1dC4gVGhlIHRyYWNlIGZpbGUgb3V0cHV0CisJaW5jbHVkZWQgYW4gYWJzb2x1dGUgdGltZXN0YW1wLiBUaGUgdGltZXN0YW1wIHVzZWQgYnkgdGhlCisJbGF0ZW5jeV90cmFjZSBmaWxlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgdHJhY2UuCisKKyAgZGVsYXk6IFRoaXMgaXMganVzdCB0byBoZWxwIGNhdGNoIHlvdXIgZXllIGEgYml0IGJldHRlci4gQW5kCisJbmVlZHMgdG8gYmUgZml4ZWQgdG8gYmUgb25seSByZWxhdGl2ZSB0byB0aGUgc2FtZSBDUFUuCisJVGhlIG1hcmtzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcworCWN1cnJlbnQgdHJhY2UgYW5kIHRoZSBuZXh0IHRyYWNlLgorCSAnIScgLSBncmVhdGVyIHRoYW4gcHJlZW1wdF9tYXJrX3RocmVzaCAoZGVmYXVsdCAxMDApCisJICcrJyAtIGdyZWF0ZXIgdGhhbiAxIG1pY3Jvc2Vjb25kCisJICcgJyAtIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxIG1pY3Jvc2Vjb25kLgorCisgIFRoZSByZXN0IGlzIHRoZSBzYW1lIGFzIHRoZSAndHJhY2UnIGZpbGUuCisKKworaXRlcl9jdHJsCistLS0tLS0tLS0KKworVGhlIGl0ZXJfY3RybCBmaWxlIGlzIHVzZWQgdG8gY29udHJvbCB3aGF0IGdldHMgcHJpbnRlZCBpbiB0aGUgdHJhY2UKK291dHB1dC4gVG8gc2VlIHdoYXQgaXMgYXZhaWxhYmxlLCBzaW1wbHkgY2F0IHRoZSBmaWxlOgorCisgIGNhdCAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmwKKyAgcHJpbnQtcGFyZW50IG5vc3ltLW9mZnNldCBub3N5bS1hZGRyIG5vdmVyYm9zZSBub3JhdyBub2hleCBub2JpbiBcCisgbm9ibG9jayBub3N0YWNrdHJhY2Ugbm9zY2hlZC10cmVlCisKK1RvIGRpc2FibGUgb25lIG9mIHRoZSBvcHRpb25zLCBlY2hvIGluIHRoZSBvcHRpb24gcHJlcGVuZGVkIHdpdGggIm5vIi4KKworICBlY2hvIG5vcHJpbnQtcGFyZW50ID4gL2RlYnVnL3RyYWNpbmcvaXRlcl9jdHJsCisKK1RvIGVuYWJsZSBhbiBvcHRpb24sIGxlYXZlIG9mZiB0aGUgIm5vIi4KKworICBlY2hvIHN5bS1vZmZzZXQgPiAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmwKKworSGVyZSBhcmUgdGhlIGF2YWlsYWJsZSBvcHRpb25zOgorCisgIHByaW50LXBhcmVudCAtIE9uIGZ1bmN0aW9uIHRyYWNlcywgZGlzcGxheSB0aGUgY2FsbGluZyBmdW5jdGlvbgorCQlhcyB3ZWxsIGFzIHRoZSBmdW5jdGlvbiBiZWluZyB0cmFjZWQuCisKKyAgcHJpbnQtcGFyZW50OgorICAgYmFzaC00MDAwICBbMDFdICAxNDc3LjYwNjY5NDogc2ltcGxlX3N0cnRvdWwgPC1zdHJpY3Rfc3RydG91bAorCisgIG5vcHJpbnQtcGFyZW50OgorICAgYmFzaC00MDAwICBbMDFdICAxNDc3LjYwNjY5NDogc2ltcGxlX3N0cnRvdWwKKworCisgIHN5bS1vZmZzZXQgLSBEaXNwbGF5IG5vdCBvbmx5IHRoZSBmdW5jdGlvbiBuYW1lLCBidXQgYWxzbyB0aGUgb2Zmc2V0CisJCWluIHRoZSBmdW5jdGlvbi4gRm9yIGV4YW1wbGUsIGluc3RlYWQgb2Ygc2VlaW5nIGp1c3QKKwkJImt0aW1lX2dldCIsIHlvdSB3aWxsIHNlZSAia3RpbWVfZ2V0KzB4Yi8weDIwIi4KKworICBzeW0tb2Zmc2V0OgorICAgYmFzaC00MDAwICBbMDFdICAxNDc3LjYwNjY5NDogc2ltcGxlX3N0cnRvdWwrMHg2LzB4YTAKKworICBzeW0tYWRkciAtIHRoaXMgd2lsbCBhbHNvIGRpc3BsYXkgdGhlIGZ1bmN0aW9uIGFkZHJlc3MgYXMgd2VsbCBhcworCQl0aGUgZnVuY3Rpb24gbmFtZS4KKworICBzeW0tYWRkcjoKKyAgIGJhc2gtNDAwMCAgWzAxXSAgMTQ3Ny42MDY2OTQ6IHNpbXBsZV9zdHJ0b3VsIDxjMDMzOTM0Nj4KKworICB2ZXJib3NlIC0gVGhpcyBkZWFscyB3aXRoIHRoZSBsYXRlbmN5X3RyYWNlIGZpbGUuCisKKyAgICBiYXNoICA0MDAwIDEgMCAwMDAwMDAwMCAwMDAxMGE5NSBbNTgxMjdkMjZdIDE3MjAuNDE1bXMgXAorICAgICgrMC4wMDBtcyk6IHNpbXBsZV9zdHJ0b3VsIChzdHJpY3Rfc3RydG91bCkKKworICByYXcgLSBUaGlzIHdpbGwgZGlzcGxheSByYXcgbnVtYmVycy4gVGhpcyBvcHRpb24gaXMgYmVzdCBmb3IgdXNlIHdpdGgKKwl1c2VyIGFwcGxpY2F0aW9ucyB0aGF0IGNhbiB0cmFuc2xhdGUgdGhlIHJhdyBudW1iZXJzIGJldHRlciB0aGFuCisJaGF2aW5nIGl0IGRvbmUgaW4gdGhlIGtlcm5lbC4KKworICBoZXggLSBTaW1pbGFyIHRvIHJhdywgYnV0IHRoZSBudW1iZXJzIHdpbGwgYmUgaW4gYSBoZXhhZGVjaW1hbCBmb3JtYXQuCisKKyAgYmluIC0gVGhpcyB3aWxsIHByaW50IG91dCB0aGUgZm9ybWF0cyBpbiByYXcgYmluYXJ5LgorCisgIGJsb2NrIC0gVEJEIChuZWVkcyB1cGRhdGUpCisKKyAgc3RhY2t0cmFjZSAtIFRoaXMgaXMgb25lIG9mIHRoZSBvcHRpb25zIHRoYXQgY2hhbmdlcyB0aGUgdHJhY2UgaXRzZWxmLgorCQlXaGVuIGEgdHJhY2UgaXMgcmVjb3JkZWQsIHNvIGlzIHRoZSBzdGFjayBvZiBmdW5jdGlvbnMuCisJCVRoaXMgYWxsb3dzIGZvciBiYWNrIHRyYWNlcyBvZiB0cmFjZSBzaXRlcy4KKworICBzY2hlZC10cmVlIC0gVEJEIChhbnkgdXNlcnM/PykKKworCitzY2hlZF9zd2l0Y2gKKy0tLS0tLS0tLS0tLQorCitUaGlzIHRyYWNlciBzaW1wbHkgcmVjb3JkcyBzY2hlZHVsZSBzd2l0Y2hlcy4gSGVyZSdzIGFuIGV4YW1wbGUKK29mIGhvdyB0byB1c2UgaXQuCisKKyAjIGVjaG8gc2NoZWRfc3dpdGNoID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgc2xlZXAgMQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UKKworIyB0cmFjZXI6IHNjaGVkX3N3aXRjaAorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzIyODE6ICAgMzk5NzoxMjA6UiAgICsgIDQwNTU6MTIwOlIKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzIyODQ6ICAgMzk5NzoxMjA6UiA9PT4gIDQwNTU6MTIwOlIKKyAgICAgICAgICAgc2xlZXAtNDA1NSAgWzAxXSAgIDI0MC4xMzIzNzE6ICAgNDA1NToxMjA6UyA9PT4gIDM5OTc6MTIwOlIKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzI0NTQ6ICAgMzk5NzoxMjA6UiAgICsgIDQwNTU6MTIwOlMKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzI0NTc6ICAgMzk5NzoxMjA6UiA9PT4gIDQwNTU6MTIwOlIKKyAgICAgICAgICAgc2xlZXAtNDA1NSAgWzAxXSAgIDI0MC4xMzI0NjA6ICAgNDA1NToxMjA6RCA9PT4gIDM5OTc6MTIwOlIKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzI0NjM6ICAgMzk5NzoxMjA6UiAgICsgIDQwNTU6MTIwOkQKKyAgICAgICAgICAgIGJhc2gtMzk5NyAgWzAxXSAgIDI0MC4xMzI0NjU6ICAgMzk5NzoxMjA6UiA9PT4gIDQwNTU6MTIwOlIKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgIDI0MC4xMzI1ODk6ICAgICAgMDoxNDA6UiAgICsgICAgIDQ6MTE1OlMKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgIDI0MC4xMzI1OTE6ICAgICAgMDoxNDA6UiA9PT4gICAgIDQ6MTE1OlIKKyAgICAga3NvZnRpcnFkLzAtNCAgICAgWzAwXSAgIDI0MC4xMzI1OTU6ICAgICAgNDoxMTU6UyA9PT4gICAgIDA6MTQwOlIKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgIDI0MC4xMzI1OTg6ICAgICAgMDoxNDA6UiAgICsgICAgIDQ6MTE1OlMKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgIDI0MC4xMzI1OTk6ICAgICAgMDoxNDA6UiA9PT4gICAgIDQ6MTE1OlIKKyAgICAga3NvZnRpcnFkLzAtNCAgICAgWzAwXSAgIDI0MC4xMzI2MDM6ICAgICAgNDoxMTU6UyA9PT4gICAgIDA6MTQwOlIKKyAgICAgICAgICAgc2xlZXAtNDA1NSAgWzAxXSAgIDI0MC4xMzMwNTg6ICAgNDA1NToxMjA6UyA9PT4gIDM5OTc6MTIwOlIKKyBbLi4uXQorCisKK0FzIHdlIGhhdmUgZGlzY3Vzc2VkIHByZXZpb3VzbHkgYWJvdXQgdGhpcyBmb3JtYXQsIHRoZSBoZWFkZXIgc2hvd3MKK3RoZSBuYW1lIG9mIHRoZSB0cmFjZSBhbmQgcG9pbnRzIHRvIHRoZSBvcHRpb25zLiBUaGUgIkZVTkNUSU9OIgoraXMgYSBtaXNub21lciBzaW5jZSBoZXJlIGl0IHJlcHJlc2VudHMgdGhlIHdha2UgdXBzIGFuZCBjb250ZXh0Citzd2l0Y2hlcy4KKworVGhlIHNjaGVkX3N3aXRjaCBvbmx5IGxpc3RzIHRoZSB3YWtlIHVwcyAocmVwcmVzZW50ZWQgd2l0aCAnKycpCithbmQgY29udGV4dCBzd2l0Y2hlcyAoJz09PicpIHdpdGggdGhlIHByZXZpb3VzIHRhc2sgb3IgY3VycmVudAorZmlyc3QgZm9sbG93ZWQgYnkgdGhlIG5leHQgdGFzayBvciB0YXNrIHdha2luZyB1cC4gVGhlIGZvcm1hdCBmb3IgYm90aAorb2YgdGhlc2UgaXMgUElEOktFUk5FTC1QUklPOlRBU0stU1RBVEUuIFJlbWVtYmVyIHRoYXQgdGhlIEtFUk5FTC1QUklPCitpcyB0aGUgaW52ZXJzZSBvZiB0aGUgYWN0dWFsIHByaW9yaXR5IHdpdGggemVybyAoMCkgYmVpbmcgdGhlIGhpZ2hlc3QKK3ByaW9yaXR5IGFuZCB0aGUgbmljZSB2YWx1ZXMgc3RhcnRpbmcgYXQgMTAwIChuaWNlIC0yMCkuIEJlbG93IGlzCithIHF1aWNrIGNoYXJ0IHRvIG1hcCB0aGUga2VybmVsIHByaW9yaXR5IHRvIHVzZXIgbGFuZCBwcmlvcml0aWVzLgorCisgIEtlcm5lbCBwcmlvcml0eTogMCB0byA5OSAgICA9PT4gdXNlciBSVCBwcmlvcml0eSA5OSB0byAwCisgIEtlcm5lbCBwcmlvcml0eTogMTAwIHRvIDEzOSA9PT4gdXNlciBuaWNlIC0yMCB0byAxOQorICBLZXJuZWwgcHJpb3JpdHk6IDE0MCAgICAgICAgPT0+IGlkbGUgdGFzayBwcmlvcml0eQorCitUaGUgdGFzayBzdGF0ZXMgYXJlOgorCisgUiAtIHJ1bm5pbmcgOiB3YW50cyB0byBydW4sIG1heSBub3QgYWN0dWFsbHkgYmUgcnVubmluZworIFMgLSBzbGVlcCAgIDogcHJvY2VzcyBpcyB3YWl0aW5nIHRvIGJlIHdva2VuIHVwIChoYW5kbGVzIHNpZ25hbHMpCisgRCAtIGRlZXAgc2xlZXAgOiBwcm9jZXNzIG11c3QgYmUgd29rZW4gdXAgKGlnbm9yZXMgc2lnbmFscykKKyBUIC0gc3RvcHBlZCA6IHByb2Nlc3Mgc3VzcGVuZGVkCisgdCAtIHRyYWNlZCAgOiBwcm9jZXNzIGlzIGJlaW5nIHRyYWNlZCAod2l0aCBzb21ldGhpbmcgbGlrZSBnZGIpCisgWiAtIHpvbWJpZSAgOiBwcm9jZXNzIHdhaXRpbmcgdG8gYmUgY2xlYW5lZCB1cAorIFggLSB1bmtub3duCisKKworZnRyYWNlX2VuYWJsZWQKKy0tLS0tLS0tLS0tLS0tCisKK1RoZSBmb2xsb3dpbmcgdHJhY2VycyBnaXZlIGRpZmZlcmVudCBvdXRwdXQgZGVwZW5kaW5nIG9uIHdoZXRoZXIKK29yIG5vdCB0aGUgc3lzY3RsIGZ0cmFjZV9lbmFibGVkIGlzIHNldC4gVG8gc2V0IGZ0cmFjZV9lbmFibGVkLAorb25lIGNhbiBlaXRoZXIgdXNlIHRoZSBzeXNjdGwgZnVuY3Rpb24gb3Igc2V0IGl0IHZpYSB0aGUgcHJvYworZmlsZSBzeXN0ZW0gaW50ZXJmYWNlLgorCisgIHN5c2N0bCBrZXJuZWwuZnRyYWNlX2VuYWJsZWQ9MQorCisgb3IKKworICBlY2hvIDEgPiAvcHJvYy9zeXMva2VybmVsL2Z0cmFjZV9lbmFibGVkCisKK1RvIGRpc2FibGUgZnRyYWNlX2VuYWJsZWQgc2ltcGx5IHJlcGxhY2UgdGhlICcxJyB3aXRoICcwJyBpbgordGhlIGFib3ZlIGNvbW1hbmRzLgorCitXaGVuIGZ0cmFjZV9lbmFibGVkIGlzIHNldCB0aGUgdHJhY2VycyB3aWxsIGFsc28gcmVjb3JkIHRoZSBmdW5jdGlvbnMKK3RoYXQgYXJlIHdpdGhpbiB0aGUgdHJhY2UuIFRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIHRyYWNlcnMKK3dpbGwgYWxzbyBzaG93IGFuIGV4YW1wbGUgd2l0aCBmdHJhY2UgZW5hYmxlZC4KKworCitpcnFzb2ZmCistLS0tLS0tCisKK1doZW4gaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQsIHRoZSBDUFUgY2FuIG5vdCByZWFjdCB0byBhbnkgb3RoZXIKK2V4dGVybmFsIGV2ZW50IChiZXNpZGVzIE5NSXMgYW5kIFNNSXMpLiBUaGlzIHByZXZlbnRzIHRoZSB0aW1lcgoraW50ZXJydXB0IGZyb20gdHJpZ2dlcmluZyBvciB0aGUgbW91c2UgaW50ZXJydXB0IGZyb20gbGV0dGluZyB0aGUKK2tlcm5lbCBrbm93IG9mIGEgbmV3IG1vdXNlIGV2ZW50LiBUaGUgcmVzdWx0IGlzIGEgbGF0ZW5jeSB3aXRoIHRoZQorcmVhY3Rpb24gdGltZS4KKworVGhlIGlycXNvZmYgdHJhY2VyIHRyYWNrcyB0aGUgdGltZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCB0byB0aGUgdGltZQordGhleSBhcmUgcmUtZW5hYmxlZC4gV2hlbiBhIG5ldyBtYXhpbXVtIGxhdGVuY3kgaXMgaGl0LCBpdCBzYXZlcyBvZmYKK3RoZSB0cmFjZSBzbyB0aGF0IGl0IG1heSBiZSByZXRyaWV2ZWQgYXQgYSBsYXRlciB0aW1lLiBFdmVyeSB0aW1lIGEKK25ldyBtYXhpbXVtIGluIHJlYWNoZWQsIHRoZSBvbGQgc2F2ZWQgdHJhY2UgaXMgZGlzY2FyZGVkIGFuZCB0aGUgbmV3Cit0cmFjZSBpcyBzYXZlZC4KKworVG8gcmVzZXQgdGhlIG1heGltdW0sIGVjaG8gMCBpbnRvIHRyYWNpbmdfbWF4X2xhdGVuY3kuIEhlcmUncyBhbgorZXhhbXBsZToKKworICMgZWNobyBpcnFzb2ZmID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgbHMgLWx0cgorIFsuLi5dCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9sYXRlbmN5X3RyYWNlCisjIHRyYWNlcjogaXJxc29mZgorIworaXJxc29mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDYgdXMsICMzLzMsIENQVSMxIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogYmFzaC00MjY5ICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogY29weV9wYWdlX3JhbmdlCisgPT4gZW5kZWQgYXQ6ICAgY29weV9wYWdlX3JhbmdlCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgYmFzaC00MjY5ICAxLi4uMSAgICAwdXMrOiBfc3Bpbl9sb2NrIChjb3B5X3BhZ2VfcmFuZ2UpCisgICAgYmFzaC00MjY5ICAxLi4uMSAgICA3dXMgOiBfc3Bpbl91bmxvY2sgKGNvcHlfcGFnZV9yYW5nZSkKKyAgICBiYXNoLTQyNjkgIDEuLi4yICAgIDd1cyA6IHRyYWNlX3ByZWVtcHRfb24gKGNvcHlfcGFnZV9yYW5nZSkKKworCit2aW06ZnQ9aGVscAorCitIZXJlIHdlIHNlZSB0aGF0IHRoYXQgd2UgaGFkIGEgbGF0ZW5jeSBvZiA2IG1pY3Jvc2VjcyAod2hpY2ggaXMKK3ZlcnkgZ29vZCkuIFRoZSBzcGluX2xvY2sgaW4gY29weV9wYWdlX3JhbmdlIGRpc2FibGVkIGludGVycnVwdHMuCitUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSA2IGFuZCB0aGUgZGlzcGxheWVkIHRpbWVzdGFtcCA3dXMgaXMKK2JlY2F1c2UgdGhlIGNsb2NrIG11c3QgaGF2ZSBpbmNyZW1lbnRlZCBiZXR3ZWVuIHRoZSB0aW1lIG9mIHJlY29yZGluZwordGhlIG1heCBsYXRlbmN5IGFuZCByZWNvcmRpbmcgdGhlIGZ1bmN0aW9uIHRoYXQgaGFkIHRoYXQgbGF0ZW5jeS4KKworTm90ZSB0aGUgYWJvdmUgaGFkIGZ0cmFjZV9lbmFibGVkIG5vdCBzZXQuIElmIHdlIHNldCB0aGUgZnRyYWNlX2VuYWJsZWQsCit3ZSBnZXQgYSBtdWNoIGxhcmdlciBvdXRwdXQ6CisKKyMgdHJhY2VyOiBpcnFzb2ZmCisjCitpcnFzb2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogNTAgdXMsICMxMDEvMTAxLCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IGxzLTQzMzkgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiBfX2FsbG9jX3BhZ2VzX2ludGVybmFsCisgPT4gZW5kZWQgYXQ6ICAgX19hbGxvY19wYWdlc19pbnRlcm5hbAorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgICAgbHMtNDMzOSAgMC4uLjEgICAgMHVzKzogZ2V0X3BhZ2VfZnJvbV9mcmVlbGlzdCAoX19hbGxvY19wYWdlc19pbnRlcm5hbCkKKyAgICAgIGxzLTQzMzkgIDBkLi4xICAgIDN1cyA6IHJtcXVldWVfYnVsayAoZ2V0X3BhZ2VfZnJvbV9mcmVlbGlzdCkKKyAgICAgIGxzLTQzMzkgIDBkLi4xICAgIDN1cyA6IF9zcGluX2xvY2sgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4xICAgIDR1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgNHVzIDogX19ybXF1ZXVlIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMiAgICA1dXMgOiBfX3JtcXVldWVfc21hbGxlc3QgKF9fcm1xdWV1ZSkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDV1cyA6IF9fbW9kX3pvbmVfcGFnZV9zdGF0ZSAoX19ybXF1ZXVlX3NtYWxsZXN0KQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgNnVzIDogX19ybXF1ZXVlIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMiAgICA2dXMgOiBfX3JtcXVldWVfc21hbGxlc3QgKF9fcm1xdWV1ZSkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDd1cyA6IF9fbW9kX3pvbmVfcGFnZV9zdGF0ZSAoX19ybXF1ZXVlX3NtYWxsZXN0KQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgN3VzIDogX19ybXF1ZXVlIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMiAgICA4dXMgOiBfX3JtcXVldWVfc21hbGxlc3QgKF9fcm1xdWV1ZSkKK1suLi5dCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ2dXMgOiBfX3JtcXVldWVfc21hbGxlc3QgKF9fcm1xdWV1ZSkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDd1cyA6IF9fbW9kX3pvbmVfcGFnZV9zdGF0ZSAoX19ybXF1ZXVlX3NtYWxsZXN0KQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0N3VzIDogX19ybXF1ZXVlIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ4dXMgOiBfX3JtcXVldWVfc21hbGxlc3QgKF9fcm1xdWV1ZSkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDh1cyA6IF9fbW9kX3pvbmVfcGFnZV9zdGF0ZSAoX19ybXF1ZXVlX3NtYWxsZXN0KQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0OXVzIDogX3NwaW5fdW5sb2NrIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX3NwaW5fdW5sb2NrKQorICAgICAgbHMtNDMzOSAgMGQuLjEgICA1MHVzIDogZ2V0X3BhZ2VfZnJvbV9mcmVlbGlzdCAoX19hbGxvY19wYWdlc19pbnRlcm5hbCkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNTF1cyA6IHRyYWNlX2hhcmRpcnFzX29uIChfX2FsbG9jX3BhZ2VzX2ludGVybmFsKQorCisKK3ZpbTpmdD1oZWxwCisKKworSGVyZSB3ZSB0cmFjZWQgYSA1MCBtaWNyb3NlY29uZCBsYXRlbmN5LiBCdXQgd2UgYWxzbyBzZWUgYWxsIHRoZQorZnVuY3Rpb25zIHRoYXQgd2VyZSBjYWxsZWQgZHVyaW5nIHRoYXQgdGltZS4gTm90ZSB0aGF0IGJ5IGVuYWJsaW5nCitmdW5jdGlvbiB0cmFjaW5nLCB3ZSBlbmR1cmUgYW4gYWRkZWQgb3ZlcmhlYWQuIFRoaXMgb3ZlcmhlYWQgbWF5CitleHRlbmQgdGhlIGxhdGVuY3kgdGltZXMuIEJ1dCBuZXZlcnRoZWxlc3MsIHRoaXMgdHJhY2UgaGFzIHByb3ZpZGVkCitzb21lIHZlcnkgaGVscGZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCisKKworcHJlZW1wdG9mZgorLS0tLS0tLS0tLQorCitXaGVuIHByZWVtcHRpb24gaXMgZGlzYWJsZWQsIHdlIG1heSBiZSBhYmxlIHRvIHJlY2VpdmUgaW50ZXJydXB0cyBidXQKK3RoZSB0YXNrIGNhbm5vdCBiZSBwcmVlbXB0ZWQgYW5kIGEgaGlnaGVyIHByaW9yaXR5IHRhc2sgbXVzdCB3YWl0Citmb3IgcHJlZW1wdGlvbiB0byBiZSBlbmFibGVkIGFnYWluIGJlZm9yZSBpdCBjYW4gcHJlZW1wdCBhIGxvd2VyCitwcmlvcml0eSB0YXNrLgorCitUaGUgcHJlZW1wdG9mZiB0cmFjZXIgdHJhY2VzIHRoZSBwbGFjZXMgdGhhdCBkaXNhYmxlIHByZWVtcHRpb24uCitMaWtlIHRoZSBpcnFzb2ZmLCBpdCByZWNvcmRzIHRoZSBtYXhpbXVtIGxhdGVuY3kgdGhhdCBwcmVlbXB0aW9uCit3YXMgZGlzYWJsZWQuIFRoZSBjb250cm9sIG9mIHByZWVtcHRvZmYgaXMgbXVjaCBsaWtlIHRoZSBpcnFzb2ZmLgorCisgIyBlY2hvIHByZWVtcHRvZmYgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19tYXhfbGF0ZW5jeQorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBscyAtbHRyCisgWy4uLl0KKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL2xhdGVuY3lfdHJhY2UKKyMgdHJhY2VyOiBwcmVlbXB0b2ZmCisjCitwcmVlbXB0b2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogMjkgdXMsICMzLzMsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc3NoZC00MjYxICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogZG9fSVJRCisgPT4gZW5kZWQgYXQ6ICAgX19kb19zb2Z0aXJxCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgc3NoZC00MjYxICAwZC5oLiAgICAwdXMrOiBpcnFfZW50ZXIgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLnMuICAgMjl1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMxICAgMzB1cyA6IHRyYWNlX3ByZWVtcHRfb24gKF9fZG9fc29mdGlycSkKKworCit2aW06ZnQ9aGVscAorCitUaGlzIGhhcyBzb21lIG1vcmUgY2hhbmdlcy4gUHJlZW1wdGlvbiB3YXMgZGlzYWJsZWQgd2hlbiBhbiBpbnRlcnJ1cHQKK2NhbWUgaW4gKG5vdGljZSB0aGUgJ2gnKSwgYW5kIHdhcyBlbmFibGVkIHdoaWxlIGRvaW5nIGEgc29mdGlycS4KKyhub3RpY2UgdGhlICdzJykuIEJ1dCB3ZSBhbHNvIHNlZSB0aGF0IGludGVycnVwdHMgaGF2ZSBiZWVuIGRpc2FibGVkCit3aGVuIGVudGVyaW5nIHRoZSBwcmVlbXB0IG9mZiBzZWN0aW9uIGFuZCBsZWF2aW5nIGl0ICh0aGUgJ2QnKS4KK1dlIGRvIG5vdCBrbm93IGlmIGludGVycnVwdHMgd2VyZSBlbmFibGVkIGluIHRoZSBtZWFuIHRpbWUuCisKKyMgdHJhY2VyOiBwcmVlbXB0b2ZmCisjCitwcmVlbXB0b2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogNjMgdXMsICM4Ny84NywgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzc2hkLTQyNjEgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiByZW1vdmVfd2FpdF9xdWV1ZQorID0+IGVuZGVkIGF0OiAgIF9fZG9fc29mdGlycQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgMHVzIDogX3NwaW5fbG9ja19pcnFzYXZlIChyZW1vdmVfd2FpdF9xdWV1ZSkKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDF1cyA6IF9zcGluX3VubG9ja19pcnFyZXN0b3JlIChyZW1vdmVfd2FpdF9xdWV1ZSkKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDJ1cyA6IGRvX0lSUSAoY29tbW9uX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDJ1cyA6IGlycV9lbnRlciAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgMnVzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDN1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5oMSAgICAzdXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuaC4gICAgNHVzIDogaGFuZGxlX2Zhc3Rlb2lfaXJxIChkb19JUlEpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuaC4gICAxMnVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2spCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDEydXMgOiBhY2tfaW9hcGljX3F1aXJrX2lycSAoaGFuZGxlX2Zhc3Rlb2lfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxM3VzIDogbW92ZV9uYXRpdmVfaXJxIChhY2tfaW9hcGljX3F1aXJrX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTN1cyA6IF9zcGluX3VubG9jayAoaGFuZGxlX2Zhc3Rlb2lfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxNHVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9zcGluX3VubG9jaykKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTR1cyA6IGlycV9leGl0IChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDE1dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE1dXMgOiBkb19zb2Z0aXJxIChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMTV1cyA6IF9fZG9fc29mdGlycSAoZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMTZ1cyA6IF9fbG9jYWxfYmhfZGlzYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAxNnVzKzogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM0ICAgMjB1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNCAgIDIxdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczUgICAyMXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZSkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5zNiAgIDQxdXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczYgICA0MnVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM3ICAgNDJ1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGUpCisgICAgc3NoZC00MjYxICAwZC5zNSAgIDQzdXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczUgICA0M3VzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZV9pcCkKKyAgICBzc2hkLTQyNjEgIDBkLnM2ICAgNDR1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGVfaXApCisgICAgc3NoZC00MjYxICAwZC5zNSAgIDQ0dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczUgICA0NXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZSkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5zLiAgIDYzdXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC5zMSAgIDY0dXMgOiB0cmFjZV9wcmVlbXB0X29uIChfX2RvX3NvZnRpcnEpCisKKworVGhlIGFib3ZlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHByZWVtcHRvZmYgdHJhY2Ugd2l0aCBmdHJhY2VfZW5hYmxlZAorc2V0LiBIZXJlIHdlIHNlZSB0aGF0IGludGVycnVwdHMgd2VyZSBkaXNhYmxlZCB0aGUgZW50aXJlIHRpbWUuCitUaGUgaXJxX2VudGVyIGNvZGUgbGV0cyB1cyBrbm93IHRoYXQgd2UgZW50ZXJlZCBhbiBpbnRlcnJ1cHQgJ2gnLgorQmVmb3JlIHRoYXQsIHRoZSBmdW5jdGlvbnMgYmVpbmcgdHJhY2VkIHN0aWxsIHNob3cgdGhhdCBpdCBpcyBub3QKK2luIGFuIGludGVycnVwdCwgYnV0IHdlIGNhbiBzZWUgYnkgdGhlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzIHRoYXQKK3RoaXMgaXMgbm90IHRoZSBjYXNlLgorCitOb3RpY2UgdGhhdCB0aGUgX19kb19zb2Z0aXJxIHdoZW4gY2FsbGVkIGRvZXNuJ3QgaGF2ZSBhIHByZWVtcHRfY291bnQuCitJdCBtYXkgc2VlbSB0aGF0IHdlIG1pc3NlZCBhIHByZWVtcHQgZW5hYmxlZC4gV2hhdCByZWFsbHkgaGFwcGVuZWQKK2lzIHRoYXQgdGhlIHByZWVtcHQgY291bnQgaXMgaGVsZCBvbiB0aGUgdGhyZWFkcyBzdGFjayBhbmQgd2UKK3N3aXRjaGVkIHRvIHRoZSBzb2Z0aXJxIHN0YWNrICg0SyBzdGFja3MgaW4gZWZmZWN0KS4gVGhlIGNvZGUKK2RvZXMgbm90IGNvcHkgdGhlIHByZWVtcHQgY291bnQsIGJ1dCBiZWNhdXNlIGludGVycnVwdHMgYXJlIGRpc2FibGVkLAord2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBpdC4gSGF2aW5nIGEgdHJhY2VyIGxpa2UgdGhpcyBpcyBnb29kCit0byBsZXQgcGVvcGxlIGtub3cgd2hhdCByZWFsbHkgaGFwcGVucyBpbnNpZGUgdGhlIGtlcm5lbC4KKworCitwcmVlbXB0aXJxc29mZgorLS0tLS0tLS0tLS0tLS0KKworS25vd2luZyB0aGUgbG9jYXRpb25zIHRoYXQgaGF2ZSBpbnRlcnJ1cHRzIGRpc2FibGVkIG9yIHByZWVtcHRpb24KK2Rpc2FibGVkIGZvciB0aGUgbG9uZ2VzdCB0aW1lcyBpcyBoZWxwZnVsLiBCdXQgc29tZXRpbWVzIHdlIHdvdWxkCitsaWtlIHRvIGtub3cgd2hlbiBlaXRoZXIgcHJlZW1wdGlvbiBhbmQvb3IgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuCisKK1RoZSBmb2xsb3dpbmcgY29kZToKKworICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7CisgICAgY2FsbF9mdW5jdGlvbl93aXRoX2lycXNfb2ZmKCk7CisgICAgcHJlZW1wdF9kaXNhYmxlKCk7CisgICAgY2FsbF9mdW5jdGlvbl93aXRoX2lycXNfYW5kX3ByZWVtcHRpb25fb2ZmKCk7CisgICAgbG9jYWxfaXJxX2VuYWJsZSgpOworICAgIGNhbGxfZnVuY3Rpb25fd2l0aF9wcmVlbXB0aW9uX29mZigpOworICAgIHByZWVtcHRfZW5hYmxlKCk7CisKK1RoZSBpcnFzb2ZmIHRyYWNlciB3aWxsIHJlY29yZCB0aGUgdG90YWwgbGVuZ3RoIG9mCitjYWxsX2Z1bmN0aW9uX3dpdGhfaXJxc19vZmYoKSBhbmQKK2NhbGxfZnVuY3Rpb25fd2l0aF9pcnFzX2FuZF9wcmVlbXB0aW9uX29mZigpLgorCitUaGUgcHJlZW1wdG9mZiB0cmFjZXIgd2lsbCByZWNvcmQgdGhlIHRvdGFsIGxlbmd0aCBvZgorY2FsbF9mdW5jdGlvbl93aXRoX2lycXNfYW5kX3ByZWVtcHRpb25fb2ZmKCkgYW5kCitjYWxsX2Z1bmN0aW9uX3dpdGhfcHJlZW1wdGlvbl9vZmYoKS4KKworQnV0IG5laXRoZXIgd2lsbCB0cmFjZSB0aGUgdGltZSB0aGF0IGludGVycnVwdHMgYW5kL29yIHByZWVtcHRpb24KK2lzIGRpc2FibGVkLiBUaGlzIHRvdGFsIHRpbWUgaXMgdGhlIHRpbWUgdGhhdCB3ZSBjYW4gbm90IHNjaGVkdWxlLgorVG8gcmVjb3JkIHRoaXMgdGltZSwgdXNlIHRoZSBwcmVlbXB0aXJxc29mZiB0cmFjZXIuCisKK0FnYWluLCB1c2luZyB0aGlzIHRyYWNlIGlzIG11Y2ggbGlrZSB0aGUgaXJxc29mZiBhbmQgcHJlZW1wdG9mZiB0cmFjZXJzLgorCisgIyBlY2hvIHByZWVtcHRpcnFzb2ZmID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgbHMgLWx0cgorIFsuLi5dCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9sYXRlbmN5X3RyYWNlCisjIHRyYWNlcjogcHJlZW1wdGlycXNvZmYKKyMKK3ByZWVtcHRpcnFzb2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogMjkzIHVzLCAjMy8zLCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IGxzLTQ4NjAgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiBhcGljX3RpbWVyX2ludGVycnVwdAorID0+IGVuZGVkIGF0OiAgIF9fZG9fc29mdGlycQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgICAgbHMtNDg2MCAgMGQuLi4gICAgMHVzITogdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rIChhcGljX3RpbWVyX2ludGVycnVwdCkKKyAgICAgIGxzLTQ4NjAgIDBkLnMuICAyOTR1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKKyAgICAgIGxzLTQ4NjAgIDBkLnMxICAyOTR1cyA6IHRyYWNlX3ByZWVtcHRfb24gKF9fZG9fc29mdGlycSkKKworCit2aW06ZnQ9aGVscAorCisKK1RoZSB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmsgaXMgY2FsbGVkIGZyb20gYXNzZW1ibHkgb24geDg2IHdoZW4KK2ludGVycnVwdHMgYXJlIGRpc2FibGVkIGluIHRoZSBhc3NlbWJseSBjb2RlLiBXaXRob3V0IHRoZSBmdW5jdGlvbgordHJhY2luZywgd2UgZG9uJ3Qga25vdyBpZiBpbnRlcnJ1cHRzIHdlcmUgZW5hYmxlZCB3aXRoaW4gdGhlIHByZWVtcHRpb24KK3BvaW50cy4gV2UgZG8gc2VlIHRoYXQgaXQgc3RhcnRlZCB3aXRoIHByZWVtcHRpb24gZW5hYmxlZC4KKworSGVyZSBpcyBhIHRyYWNlIHdpdGggZnRyYWNlX2VuYWJsZWQgc2V0OgorCisKKyMgdHJhY2VyOiBwcmVlbXB0aXJxc29mZgorIworcHJlZW1wdGlycXNvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiAxMDUgdXMsICMxODMvMTgzLCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHNzaGQtNDI2MSAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IHdyaXRlX2NoYW4KKyA9PiBlbmRlZCBhdDogICBfX2RvX3NvZnRpcnEKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICAgIGxzLTQ0NzMgIDAuTi4uICAgIDB1cyA6IHByZWVtcHRfc2NoZWR1bGUgKHdyaXRlX2NoYW4pCisgICAgICBscy00NDczICAwZE4uMSAgICAxdXMgOiBfc3Bpbl9sb2NrIChzY2hlZHVsZSkKKyAgICAgIGxzLTQ0NzMgIDBkTi4xICAgIDJ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrKQorICAgICAgbHMtNDQ3MyAgMGQuLjIgICAgMnVzIDogcHV0X3ByZXZfdGFza19mYWlyIChzY2hlZHVsZSkKK1suLi5dCisgICAgICBscy00NDczICAwZC4uMiAgIDEzdXMgOiBzZXRfbm9ybWFsaXplZF90aW1lc3BlYyAoa3RpbWVfZ2V0X3RzKQorICAgICAgbHMtNDQ3MyAgMGQuLjIgICAxM3VzIDogX19zd2l0Y2hfdG8gKHNjaGVkdWxlKQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxNHVzIDogZmluaXNoX3Rhc2tfc3dpdGNoIChzY2hlZHVsZSkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTR1cyA6IF9zcGluX3VubG9ja19pcnEgKGZpbmlzaF90YXNrX3N3aXRjaCkKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgMTV1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrX2lycXNhdmUpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE2dXMgOiBfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoaHJ0aWNrX3NldCkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTZ1cyA6IGRvX0lSUSAoY29tbW9uX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTd1cyA6IGlycV9lbnRlciAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxN3VzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTh1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5oMiAgIDE4dXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuaC4gICAxOHVzIDogaGFuZGxlX2Zhc3Rlb2lfaXJxIChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC5oLiAgIDE5dXMgOiBfc3Bpbl9sb2NrIChoYW5kbGVfZmFzdGVvaV9pcnEpCisgICAgc3NoZC00MjYxICAwZC5oLiAgIDE5dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9jaykKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMjB1cyA6IF9zcGluX3VubG9jayAoaGFuZGxlX2Zhc3Rlb2lfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAyMHVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9zcGluX3VubG9jaykKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDI4dXMgOiBfc3Bpbl91bmxvY2sgKGhhbmRsZV9mYXN0ZW9pX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMjl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfc3Bpbl91bmxvY2spCisgICAgc3NoZC00MjYxICAwZC5oMiAgIDI5dXMgOiBpcnFfZXhpdCAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQuaDIgICAyOXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuLjMgICAzMHVzIDogZG9fc29mdGlycSAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDMwdXMgOiBfX2RvX3NvZnRpcnEgKGRvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDMxdXMgOiBfX2xvY2FsX2JoX2Rpc2FibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMzF1cys6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNCAgIDM0dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgNDN1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGVfaXApCisgICAgc3NoZC00MjYxICAwZC5zNCAgIDQ0dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlX2lwKQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA0NHVzIDogc21wX2FwaWNfdGltZXJfaW50ZXJydXB0IChhcGljX3RpbWVyX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgNDV1cyA6IGlycV9lbnRlciAoc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA0NXVzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgNDZ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDQ2dXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA0N3VzIDogaHJ0aW1lcl9pbnRlcnJ1cHQgKHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgNDd1cyA6IGt0aW1lX2dldCAoaHJ0aW1lcl9pbnRlcnJ1cHQpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4MXVzIDogdGlja19wcm9ncmFtX2V2ZW50IChocnRpbWVyX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODJ1cyA6IGt0aW1lX2dldCAodGlja19wcm9ncmFtX2V2ZW50KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4MnVzIDoga3RpbWVfZ2V0X3RzIChrdGltZV9nZXQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDgzdXMgOiBnZXRuc3RpbWVvZmRheSAoa3RpbWVfZ2V0X3RzKQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4M3VzIDogc2V0X25vcm1hbGl6ZWRfdGltZXNwZWMgKGt0aW1lX2dldF90cykKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODR1cyA6IGNsb2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQgKHRpY2tfcHJvZ3JhbV9ldmVudCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODR1cyA6IGxhcGljX25leHRfZXZlbnQgKGNsb2NrZXZlbnRzX3Byb2dyYW1fZXZlbnQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDg1dXMgOiBpcnFfZXhpdCAoc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4NXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuczQgICA4NnVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA4NnVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5zMSAgIDk4dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobmV0X3J4X2FjdGlvbikKKyAgICBzc2hkLTQyNjEgIDBkLnMuICAgOTl1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMxICAgOTl1cys6IF9zcGluX3VubG9ja19pcnEgKHJ1bl90aW1lcl9zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQucy4gIDEwNHVzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQucy4gIDEwNHVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9sb2NhbF9iaF9lbmFibGUpCisgICAgc3NoZC00MjYxICAwZC5zLiAgMTA1dXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC5zMSAgMTA1dXMgOiB0cmFjZV9wcmVlbXB0X29uIChfX2RvX3NvZnRpcnEpCisKKworVGhpcyBpcyBhIHZlcnkgaW50ZXJlc3RpbmcgdHJhY2UuIEl0IHN0YXJ0ZWQgd2l0aCB0aGUgcHJlZW1wdGlvbiBvZgordGhlIGxzIHRhc2suIFdlIHNlZSB0aGF0IHRoZSB0YXNrIGhhZCB0aGUgIm5lZWRfcmVzY2hlZCIgYml0IHNldAord2l0aCB0aGUgJ04nIGluIHRoZSB0cmFjZS4gIEludGVycnVwdHMgYXJlIGRpc2FibGVkIGluIHRoZSBzcGluX2xvY2sKK2FuZCB0aGUgdHJhY2Ugc3RhcnRlZC4gV2Ugc2VlIHRoYXQgYSBzY2hlZHVsZSB0b29rIHBsYWNlIHRvIHJ1bgorc3NoZC4gIFdoZW4gdGhlIGludGVycnVwdHMgd2VyZSBlbmFibGVkLCB3ZSB0b29rIGFuIGludGVycnVwdC4KK09uIHJldHVybiBmcm9tIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciwgdGhlIHNvZnRpcnEgcmFuLiBXZSB0b29rIGFub3RoZXIKK2ludGVycnVwdCB3aGlsZSBydW5uaW5nIHRoZSBzb2Z0aXJxIGFzIHdlIHNlZSB3aXRoIHRoZSBjYXBpdGFsICdIJy4KKworCit3YWtldXAKKy0tLS0tLQorCitJbiBSZWFsLVRpbWUgZW52aXJvbm1lbnQgaXQgaXMgdmVyeSBpbXBvcnRhbnQgdG8ga25vdyB0aGUgd2FrZXVwCit0aW1lIGl0IHRha2VzIGZvciB0aGUgaGlnaGVzdCBwcmlvcml0eSB0YXNrIHRoYXQgd2FrZXMgdXAgdG8gdGhlCit0aW1lIGl0IGV4ZWN1dGVzLiBUaGlzIGlzIGFsc28ga25vd24gYXMgInNjaGVkdWxlIGxhdGVuY3kiLgorSSBzdHJlc3MgdGhlIHBvaW50IHRoYXQgdGhpcyBpcyBhYm91dCBSVCB0YXNrcy4gSXQgaXMgYWxzbyBpbXBvcnRhbnQKK3RvIGtub3cgdGhlIHNjaGVkdWxpbmcgbGF0ZW5jeSBvZiBub24tUlQgdGFza3MsIGJ1dCB0aGUgYXZlcmFnZQorc2NoZWR1bGUgbGF0ZW5jeSBpcyBiZXR0ZXIgZm9yIG5vbi1SVCB0YXNrcy4gVG9vbHMgbGlrZQorTGF0ZW5jeVRvcCBhcmUgbW9yZSBhcHByb3ByaWF0ZSBmb3Igc3VjaCBtZWFzdXJlbWVudHMuCisKK1JlYWwtVGltZSBlbnZpcm9ubWVudHMgYXJlIGludGVyZXN0ZWQgaW4gdGhlIHdvcnN0IGNhc2UgbGF0ZW5jeS4KK1RoYXQgaXMgdGhlIGxvbmdlc3QgbGF0ZW5jeSBpdCB0YWtlcyBmb3Igc29tZXRoaW5nIHRvIGhhcHBlbiwgYW5kCitub3QgdGhlIGF2ZXJhZ2UuIFdlIGNhbiBoYXZlIGEgdmVyeSBmYXN0IHNjaGVkdWxlciB0aGF0IG1heSBvbmx5CitoYXZlIGEgbGFyZ2UgbGF0ZW5jeSBvbmNlIGluIGEgd2hpbGUsIGJ1dCB0aGF0IHdvdWxkIG5vdCB3b3JrIHdlbGwKK3dpdGggUmVhbC1UaW1lIHRhc2tzLiAgVGhlIHdha2V1cCB0cmFjZXIgd2FzIGRlc2lnbmVkIHRvIHJlY29yZAordGhlIHdvcnN0IGNhc2Ugd2FrZXVwcyBvZiBSVCB0YXNrcy4gTm9uLVJUIHRhc2tzIGFyZSBub3QgcmVjb3JkZWQKK2JlY2F1c2UgdGhlIHRyYWNlciBvbmx5IHJlY29yZHMgb25lIHdvcnN0IGNhc2UgYW5kIHRyYWNpbmcgbm9uLVJUCit0YXNrcyB0aGF0IGFyZSB1bnByZWRpY3RhYmxlIHdpbGwgb3ZlcndyaXRlIHRoZSB3b3JzdCBjYXNlIGxhdGVuY3kKK29mIFJUIHRhc2tzLgorCitTaW5jZSB0aGlzIHRyYWNlciBvbmx5IGRlYWxzIHdpdGggUlQgdGFza3MsIHdlIHdpbGwgcnVuIHRoaXMgc2xpZ2h0bHkKK2RpZmZlcmVudGx5IHRoYW4gd2UgZGlkIHdpdGggdGhlIHByZXZpb3VzIHRyYWNlcnMuIEluc3RlYWQgb2YgcGVyZm9ybWluZworYW4gJ2xzJywgd2Ugd2lsbCBydW4gJ3NsZWVwIDEnIHVuZGVyICdjaHJ0JyB3aGljaCBjaGFuZ2VzIHRoZQorcHJpb3JpdHkgb2YgdGhlIHRhc2suCisKKyAjIGVjaG8gd2FrZXVwID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2hydCAtZiA1IHNsZWVwIDEKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL2xhdGVuY3lfdHJhY2UKKyMgdHJhY2VyOiB3YWtldXAKKyMKK3dha2V1cCBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDQgdXMsICMyLzIsIENQVSMxIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc2xlZXAtNDkwMSAodWlkOjAgbmljZTowIHBvbGljeToxIHJ0X3ByaW86NSkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICA8aWRsZT4tMCAgICAgMWQuaDQgICAgMHVzKzogdHJ5X3RvX3dha2VfdXAgKHdha2VfdXBfcHJvY2VzcykKKyAgPGlkbGU+LTAgICAgIDFkLi40ICAgIDR1cyA6IHNjaGVkdWxlIChjcHVfaWRsZSkKKworCit2aW06ZnQ9aGVscAorCisKK1J1bm5pbmcgdGhpcyBvbiBhbiBpZGxlIHN5c3RlbSwgd2Ugc2VlIHRoYXQgaXQgb25seSB0b29rIDQgbWljcm9zZWNvbmRzCit0byBwZXJmb3JtIHRoZSB0YXNrIHN3aXRjaC4gIE5vdGUsIHNpbmNlIHRoZSB0cmFjZSBtYXJrZXIgaW4gdGhlCitzY2hlZHVsZSBpcyBiZWZvcmUgdGhlIGFjdHVhbCAic3dpdGNoIiwgd2Ugc3RvcCB0aGUgdHJhY2luZyB3aGVuCit0aGUgcmVjb3JkZWQgdGFzayBpcyBhYm91dCB0byBzY2hlZHVsZSBpbi4gVGhpcyBtYXkgY2hhbmdlIGlmCit3ZSBhZGQgYSBuZXcgbWFya2VyIGF0IHRoZSBlbmQgb2YgdGhlIHNjaGVkdWxlci4KKworTm90aWNlIHRoYXQgdGhlIHJlY29yZGVkIHRhc2sgaXMgJ3NsZWVwJyB3aXRoIHRoZSBQSUQgb2YgNDkwMSBhbmQgaXQKK2hhcyBhbiBydF9wcmlvIG9mIDUuIFRoaXMgcHJpb3JpdHkgaXMgdXNlci1zcGFjZSBwcmlvcml0eSBhbmQgbm90Cit0aGUgaW50ZXJuYWwga2VybmVsIHByaW9yaXR5LiBUaGUgcG9saWN5IGlzIDEgZm9yIFNDSEVEX0ZJRk8gYW5kIDIKK2ZvciBTQ0hFRF9SUi4KKworRG9pbmcgdGhlIHNhbWUgd2l0aCBjaHJ0IC1yIDUgYW5kIGZ0cmFjZV9lbmFibGVkIHNldC4KKworIyB0cmFjZXI6IHdha2V1cAorIword2FrZXVwIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogNTAgdXMsICM2MC82MCwgQ1BVIzEgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzbGVlcC00MDY4ICh1aWQ6MCBuaWNlOjAgcG9saWN5OjIgcnRfcHJpbzo1KQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCitrc29mdGlycS03ICAgICAxZC5IMyAgICAwdXMgOiB0cnlfdG9fd2FrZV91cCAod2FrZV91cF9wcm9jZXNzKQora3NvZnRpcnEtNyAgICAgMWQuSDQgICAgMXVzIDogc3ViX3ByZWVtcHRfY291bnQgKG1hcmtlcl9wcm9iZV9jYikKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDJ1cyA6IGNoZWNrX3ByZWVtcHRfd2FrZXVwICh0cnlfdG9fd2FrZV91cCkKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDN1cyA6IHVwZGF0ZV9jdXJyIChjaGVja19wcmVlbXB0X3dha2V1cCkKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDR1cyA6IGNhbGNfZGVsdGFfbWluZSAodXBkYXRlX2N1cnIpCitrc29mdGlycS03ICAgICAxZC5IMyAgICA1dXMgOiBfX3Jlc2NoZWRfdGFzayAoY2hlY2tfcHJlZW1wdF93YWtldXApCitrc29mdGlycS03ICAgICAxZC5IMyAgICA2dXMgOiB0YXNrX3dha2VfdXBfcnQgKHRyeV90b193YWtlX3VwKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgN3VzIDogX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUgKHRyeV90b193YWtlX3VwKQorWy4uLl0KK2tzb2Z0aXJxLTcgICAgIDFkLkgyICAgMTd1cyA6IGlycV9leGl0IChzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQpCitrc29mdGlycS03ICAgICAxZC5IMiAgIDE4dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCitrc29mdGlycS03ICAgICAxZC5zMyAgIDE5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCitrc29mdGlycS03ICAgICAxLi5zMiAgIDIwdXMgOiByY3VfcHJvY2Vzc19jYWxsYmFja3MgKF9fZG9fc29mdGlycSkKK1suLi5dCitrc29mdGlycS03ICAgICAxLi5zMiAgIDI2dXMgOiBfX3JjdV9wcm9jZXNzX2NhbGxiYWNrcyAocmN1X3Byb2Nlc3NfY2FsbGJhY2tzKQora3NvZnRpcnEtNyAgICAgMWQuczIgICAyN3VzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQora3NvZnRpcnEtNyAgICAgMWQuczIgICAyOHVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9sb2NhbF9iaF9lbmFibGUpCitrc29mdGlycS03ICAgICAxLk4uMyAgIDI5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoa3NvZnRpcnFkKQora3NvZnRpcnEtNyAgICAgMS5OLjIgICAzMHVzIDogX2NvbmRfcmVzY2hlZCAoa3NvZnRpcnFkKQora3NvZnRpcnEtNyAgICAgMS5OLjIgICAzMXVzIDogX19jb25kX3Jlc2NoZWQgKF9jb25kX3Jlc2NoZWQpCitrc29mdGlycS03ICAgICAxLk4uMiAgIDMydXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19jb25kX3Jlc2NoZWQpCitrc29mdGlycS03ICAgICAxLk4uMiAgIDMzdXMgOiBzY2hlZHVsZSAoX19jb25kX3Jlc2NoZWQpCitrc29mdGlycS03ICAgICAxLk4uMiAgIDMzdXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoc2NoZWR1bGUpCitrc29mdGlycS03ICAgICAxLk4uMyAgIDM0dXMgOiBocnRpY2tfY2xlYXIgKHNjaGVkdWxlKQora3NvZnRpcnEtNyAgICAgMWROLjMgICAzNXVzIDogX3NwaW5fbG9jayAoc2NoZWR1bGUpCitrc29mdGlycS03ICAgICAxZE4uMyAgIDM2dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9jaykKK2tzb2Z0aXJxLTcgICAgIDFkLi40ICAgMzd1cyA6IHB1dF9wcmV2X3Rhc2tfZmFpciAoc2NoZWR1bGUpCitrc29mdGlycS03ICAgICAxZC4uNCAgIDM4dXMgOiB1cGRhdGVfY3VyciAocHV0X3ByZXZfdGFza19mYWlyKQorWy4uLl0KK2tzb2Z0aXJxLTcgICAgIDFkLi41ICAgNDd1cyA6IF9zcGluX3RyeWxvY2sgKHRyYWNpbmdfcmVjb3JkX2NtZGxpbmUpCitrc29mdGlycS03ICAgICAxZC4uNSAgIDQ4dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fdHJ5bG9jaykKK2tzb2Z0aXJxLTcgICAgIDFkLi42ICAgNDl1cyA6IF9zcGluX3VubG9jayAodHJhY2luZ19yZWNvcmRfY21kbGluZSkKK2tzb2Z0aXJxLTcgICAgIDFkLi42ICAgNDl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfc3Bpbl91bmxvY2spCitrc29mdGlycS03ICAgICAxZC4uNCAgIDUwdXMgOiBzY2hlZHVsZSAoX19jb25kX3Jlc2NoZWQpCisKK1RoZSBpbnRlcnJ1cHQgd2VudCBvZmYgd2hpbGUgcnVubmluZyBrc29mdGlycWQuIFRoaXMgdGFzayBydW5zIGF0CitTQ0hFRF9PVEhFUi4gV2h5IGRpZG4ndCB3ZSBzZWUgdGhlICdOJyBzZXQgZWFybHk/IFRoaXMgbWF5IGJlCithIGhhcm1sZXNzIGJ1ZyB3aXRoIHg4Nl8zMiBhbmQgNEsgc3RhY2tzLiBPbiB4ODZfMzIgd2l0aCA0SyBzdGFja3MKK2NvbmZpZ3VyZWQsIHRoZSBpbnRlcnJ1cHQgYW5kIHNvZnRpcnEgcnVucyB3aXRoIHRoZWlyIG93biBzdGFjay4KK1NvbWUgaW5mb3JtYXRpb24gaXMgaGVsZCBvbiB0aGUgdG9wIG9mIHRoZSB0YXNrJ3Mgc3RhY2sgKG5lZWRfcmVzY2hlZAorYW5kIHByZWVtcHRfY291bnQgYXJlIGJvdGggc3RvcmVkIHRoZXJlKS4gVGhlIHNldHRpbmcgb2YgdGhlIE5FRURfUkVTQ0hFRAorYml0IGlzIGRvbmUgZGlyZWN0bHkgdG8gdGhlIHRhc2sncyBzdGFjaywgYnV0IHRoZSByZWFkaW5nIG9mIHRoZQorTkVFRF9SRVNDSEVEIGlzIGRvbmUgYnkgbG9va2luZyBhdCB0aGUgY3VycmVudCBzdGFjaywgd2hpY2ggaW4gdGhpcyBjYXNlCitpcyB0aGUgc3RhY2sgZm9yIHRoZSBoYXJkIGludGVycnVwdC4gVGhpcyBoaWRlcyB0aGUgZmFjdCB0aGF0IE5FRURfUkVTQ0hFRAoraGFzIGJlZW4gc2V0LiBXZSBkb24ndCBzZWUgdGhlICdOJyB1bnRpbCB3ZSBzd2l0Y2ggYmFjayB0byB0aGUgdGFzaydzCithc3NpZ25lZCBzdGFjay4KKworZnRyYWNlCistLS0tLS0KKworZnRyYWNlIGlzIG5vdCBvbmx5IHRoZSBuYW1lIG9mIHRoZSB0cmFjaW5nIGluZnJhc3RydWN0dXJlLCBidXQgaXQKK2lzIGFsc28gYSBuYW1lIG9mIG9uZSBvZiB0aGUgdHJhY2Vycy4gVGhlIHRyYWNlciBpcyB0aGUgZnVuY3Rpb24KK3RyYWNlci4gRW5hYmxpbmcgdGhlIGZ1bmN0aW9uIHRyYWNlciBjYW4gYmUgZG9uZSBmcm9tIHRoZQorZGVidWcgZmlsZSBzeXN0ZW0uIE1ha2Ugc3VyZSB0aGUgZnRyYWNlX2VuYWJsZWQgaXMgc2V0IG90aGVyd2lzZQordGhpcyB0cmFjZXIgaXMgYSBub3AuCisKKyAjIHN5c2N0bCBrZXJuZWwuZnRyYWNlX2VuYWJsZWQ9MQorICMgZWNobyBmdHJhY2UgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyB1c2xlZXAgMQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UKKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzEzOiBmaW5pc2hfdGFza19zd2l0Y2ggPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNDogX3NwaW5fdW5sb2NrX2lycSA8LWZpbmlzaF90YXNrX3N3aXRjaAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNDogc3ViX3ByZWVtcHRfY291bnQgPC1fc3Bpbl91bmxvY2tfaXJxCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE1OiBocnRpY2tfc2V0IDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTU6IF9zcGluX2xvY2tfaXJxc2F2ZSA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTY6IGFkZF9wcmVlbXB0X2NvdW50IDwtX3NwaW5fbG9ja19pcnFzYXZlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE2OiBfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTc6IHN1Yl9wcmVlbXB0X2NvdW50IDwtX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTc6IGhydGlja19jbGVhciA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTg6IHN1Yl9wcmVlbXB0X2NvdW50IDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTg6IHN1Yl9wcmVlbXB0X2NvdW50IDwtcHJlZW1wdF9zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxOTogd2FpdF9mb3JfY29tcGxldGlvbiA8LV9fc3RvcF9tYWNoaW5lX3J1bgorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxOTogd2FpdF9mb3JfY29tbW9uIDwtd2FpdF9mb3JfY29tcGxldGlvbgorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcyMDogX3NwaW5fbG9ja19pcnEgPC13YWl0X2Zvcl9jb21tb24KKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MjA6IGFkZF9wcmVlbXB0X2NvdW50IDwtX3NwaW5fbG9ja19pcnEKK1suLi5dCisKKworTm90ZTogSXQgaXMgc29tZXRpbWVzIGJldHRlciB0byBlbmFibGUgb3IgZGlzYWJsZSB0cmFjaW5nIGRpcmVjdGx5IGZyb20KK2EgcHJvZ3JhbSwgYmVjYXVzZSB0aGUgYnVmZmVyIG1heSBiZSBvdmVyZmxvd2VkIGJ5IHRoZSBlY2hvIGNvbW1hbmRzCitiZWZvcmUgeW91IGdldCB0byB0aGUgcG9pbnQgeW91IHdhbnQgdG8gdHJhY2UuIEl0IGlzIGFsc28gZWFzaWVyIHRvCitzdG9wIHRoZSB0cmFjaW5nIGF0IHRoZSBwb2ludCB0aGF0IHlvdSBoaXQgdGhlIHBhcnQgdGhhdCB5b3UgYXJlCitpbnRlcmVzdGVkIGluLiBTaW5jZSB0aGUgZnRyYWNlIGJ1ZmZlciBpcyBhIHJpbmcgYnVmZmVyIHdpdGggdGhlCitvbGRlc3QgZGF0YSBiZWluZyBvdmVyd3JpdHRlbiwgdXN1YWxseSBpdCBpcyBzdWZmaWNpZW50IHRvIHN0YXJ0IHRoZQordHJhY2VyIHdpdGggYW4gZWNobyBjb21tYW5kIGJ1dCBoYXZlIHlvdSBjb2RlIHN0b3AgaXQuIFNvbWV0aGluZworbGlrZSB0aGUgZm9sbG93aW5nIGlzIHVzdWFsbHkgYXBwcm9wcmlhdGUgZm9yIHRoaXMuCisKK2ludCB0cmFjZV9mZDsKK1suLi5dCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisJWy4uLl0KKwl0cmFjZV9mZCA9IG9wZW4oIi9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZCIsIE9fV1JPTkxZKTsKKwlbLi4uXQorCWlmIChjb25kaXRpb25faGl0KCkpIHsKKwl3cml0ZSh0cmFjZV9mZCwgIjAiLCAxKTsKKwl9CisJWy4uLl0KK30KKworCitkeW5hbWljIGZ0cmFjZQorLS0tLS0tLS0tLS0tLS0KKworSWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFIGlzIHNldCwgdGhlbiB0aGUgc3lzdGVtIHdpbGwgcnVuIHdpdGgKK3ZpcnR1YWxseSBubyBvdmVyaGVhZCB3aGVuIGZ1bmN0aW9uIHRyYWNpbmcgaXMgZGlzYWJsZWQuIFRoZSB3YXkKK3RoaXMgd29ya3MgaXMgdGhlIG1jb3VudCBmdW5jdGlvbiBjYWxsIChwbGFjZWQgYXQgdGhlIHN0YXJ0IG9mCitldmVyeSBrZXJuZWwgZnVuY3Rpb24sIHByb2R1Y2VkIGJ5IHRoZSAtcGcgc3dpdGNoIGluIGdjYyksIHN0YXJ0cworb2YgcG9pbnRpbmcgdG8gYSBzaW1wbGUgcmV0dXJuLgorCitXaGVuIGR5bmFtaWMgZnRyYWNlIGlzIGluaXRpYWxpemVkLCBpdCBjYWxscyBrc3RvcF9tYWNoaW5lIHRvIG1ha2UKK3RoZSBtYWNoaW5lIGFjdCBsaWtlIGEgdW5pcHJvY2Vzc29yIHNvIHRoYXQgaXQgY2FuIGZyZWVseSBtb2RpZnkgY29kZQord2l0aG91dCB3b3JyeWluZyBhYm91dCBvdGhlciBwcm9jZXNzb3JzIGV4ZWN1dGluZyB0aGF0IHNhbWUgY29kZS4gIEF0Citpbml0aWFsaXphdGlvbiwgdGhlIG1jb3VudCBjYWxscyBhcmUgY2hhbmdlZCB0byBjYWxsIGEgInJlY29yZF9pcCIKK2Z1bmN0aW9uLiAgQWZ0ZXIgdGhpcywgdGhlIGZpcnN0IHRpbWUgYSBrZXJuZWwgZnVuY3Rpb24gaXMgY2FsbGVkLAoraXQgaGFzIHRoZSBjYWxsaW5nIGFkZHJlc3Mgc2F2ZWQgaW4gYSBoYXNoIHRhYmxlLgorCitMYXRlciBvbiB0aGUgZnRyYWNlZCBrZXJuZWwgdGhyZWFkIGlzIGF3b2tlbiBhbmQgd2lsbCBhZ2FpbiBjYWxsCitrc3RvcF9tYWNoaW5lIGlmIG5ldyBmdW5jdGlvbnMgaGF2ZSBiZWVuIHJlY29yZGVkLiBUaGUgZnRyYWNlZCB0aHJlYWQKK3dpbGwgY2hhbmdlIGFsbCBjYWxscyB0byBtY291bnQgdG8gIm5vcCIuICBKdXN0IGNhbGxpbmcgbWNvdW50CithbmQgaGF2aW5nIG1jb3VudCByZXR1cm4gaGFzIHNob3duIGEgMTAlIG92ZXJoZWFkLiBCeSBjb252ZXJ0aW5nCitpdCB0byBhIG5vcCwgdGhlcmUgaXMgbm8gcmVjb3JkYWJsZSBvdmVyaGVhZCB0byB0aGUgc3lzdGVtLgorCitPbmUgc3BlY2lhbCBzaWRlLWVmZmVjdCB0byB0aGUgcmVjb3JkaW5nIG9mIHRoZSBmdW5jdGlvbnMgYmVpbmcKK3RyYWNlZCwgaXMgdGhhdCB3ZSBjYW4gbm93IHNlbGVjdGl2ZWx5IGNob29zZSB3aGljaCBmdW5jdGlvbnMgd2UKK3dhbnQgdG8gdHJhY2UgYW5kIHdoaWNoIG9uZXMgd2Ugd2FudCB0aGUgbWNvdW50IGNhbGxzIHRvIHJlbWFpbiBhcworbm9wcy4KKworVHdvIGZpbGVzIGFyZSB1c2VkLCBvbmUgZm9yIGVuYWJsaW5nIGFuZCBvbmUgZm9yIGRpc2FibGluZyB0aGUgdHJhY2luZworb2YgcmVjb3JkZWQgZnVuY3Rpb25zLiBUaGV5IGFyZToKKworICBzZXRfZnRyYWNlX2ZpbHRlcgorCithbmQKKworICBzZXRfZnRyYWNlX25vdHJhY2UKKworQSBsaXN0IG9mIGF2YWlsYWJsZSBmdW5jdGlvbnMgdGhhdCB5b3UgY2FuIGFkZCB0byB0aGVzZSBmaWxlcyBpcyBsaXN0ZWQKK2luOgorCisgICBhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucworCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvYXZhaWxhYmxlX2ZpbHRlcl9mdW5jdGlvbnMKK3B1dF9wcmV2X3Rhc2tfaWRsZQora21lbV9jYWNoZV9jcmVhdGUKK3BpY2tfbmV4dF90YXNrX3J0CitnZXRfb25saW5lX2NwdXMKK3BpY2tfbmV4dF90YXNrX2ZhaXIKK211dGV4X2xvY2sKK1suLi5dCisKK0lmIEknbSBvbmx5IGludGVyZXN0ZWQgaW4gc3lzX25hbm9zbGVlcCBhbmQgaHJ0aW1lcl9pbnRlcnJ1cHQ6CisKKyAjIGVjaG8gc3lzX25hbm9zbGVlcCBocnRpbWVyX2ludGVycnVwdCBcCisJCT4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKyAjIGVjaG8gZnRyYWNlID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgdXNsZWVwIDEKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgIHVzbGVlcC00MTM0ICBbMDBdICAxMzE3LjA3MDAxNzogaHJ0aW1lcl9pbnRlcnJ1cHQgPC1zbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQKKyAgICAgICAgICB1c2xlZXAtNDEzNCAgWzAwXSAgMTMxNy4wNzAxMTE6IHN5c19uYW5vc2xlZXAgPC1zeXNjYWxsX2NhbGwKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTMxNy4wNzAxMTU6IGhydGltZXJfaW50ZXJydXB0IDwtc21wX2FwaWNfdGltZXJfaW50ZXJydXB0CisKK1RvIHNlZSB3aGF0IGZ1bmN0aW9ucyBhcmUgYmVpbmcgdHJhY2VkLCB5b3UgY2FuIGNhdCB0aGUgZmlsZToKKworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCitocnRpbWVyX2ludGVycnVwdAorc3lzX25hbm9zbGVlcAorCisKK1BlcmhhcHMgdGhpcyBpc24ndCBlbm91Z2guIFRoZSBmaWx0ZXJzIGFsc28gYWxsb3cgc2ltcGxlIHdpbGQgY2FyZHMuCitPbmx5IHRoZSBmb2xsb3dpbmcgYXJlIGN1cnJlbnRseSBhdmFpbGFibGUKKworICA8bWF0Y2g+KiAgLSB3aWxsIG1hdGNoIGZ1bmN0aW9ucyB0aGF0IGJlZ2luIHdpdGggPG1hdGNoPgorICAqPG1hdGNoPiAgLSB3aWxsIG1hdGNoIGZ1bmN0aW9ucyB0aGF0IGVuZCB3aXRoIDxtYXRjaD4KKyAgKjxtYXRjaD4qIC0gd2lsbCBtYXRjaCBmdW5jdGlvbnMgdGhhdCBoYXZlIDxtYXRjaD4gaW4gaXQKKworVGhhdHMgYWxsIHRoZSB3aWxkIGNhcmRzIHRoYXQgYXJlIGFsbG93ZWQuCisKKyAgPG1hdGNoPio8bWF0Y2g+IHdpbGwgbm90IHdvcmsuCisKKyAjIGVjaG8gaHJ0aW1lcl8qID4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKworUHJvZHVjZXM6CisKKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gIDE0ODAuNjExNzk0OiBocnRpbWVyX2luaXQgPC1jb3B5X3Byb2Nlc3MKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgMTQ4MC42MTE5NDE6IGhydGltZXJfc3RhcnQgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gIDE0ODAuNjExOTU2OiBocnRpbWVyX2NhbmNlbCA8LWhydGlja19jbGVhcgorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAxNDgwLjYxMTk1NjogaHJ0aW1lcl90cnlfdG9fY2FuY2VsIDwtaHJ0aW1lcl9jYW5jZWwKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTQ4MC42MTIwMTk6IGhydGltZXJfZ2V0X25leHRfZXZlbnQgPC1nZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTQ4MC42MTIwMjU6IGhydGltZXJfZ2V0X25leHRfZXZlbnQgPC1nZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTQ4MC42MTIwMzI6IGhydGltZXJfZ2V0X25leHRfZXZlbnQgPC1nZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTQ4MC42MTIwMzc6IGhydGltZXJfZ2V0X25leHRfZXZlbnQgPC1nZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQKKyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwXSAgMTQ4MC42MTIzODI6IGhydGltZXJfZ2V0X25leHRfZXZlbnQgPC1nZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQKKworCitOb3RpY2UgdGhhdCB3ZSBsb3N0IHRoZSBzeXNfbmFub3NsZWVwLgorCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKK2hydGltZXJfcnVuX3F1ZXVlcworaHJ0aW1lcl9ydW5fcGVuZGluZworaHJ0aW1lcl9pbml0CitocnRpbWVyX2NhbmNlbAoraHJ0aW1lcl90cnlfdG9fY2FuY2VsCitocnRpbWVyX2ZvcndhcmQKK2hydGltZXJfc3RhcnQKK2hydGltZXJfcmVwcm9ncmFtCitocnRpbWVyX2ZvcmNlX3JlcHJvZ3JhbQoraHJ0aW1lcl9nZXRfbmV4dF9ldmVudAoraHJ0aW1lcl9pbnRlcnJ1cHQKK2hydGltZXJfbmFub3NsZWVwCitocnRpbWVyX3dha2V1cAoraHJ0aW1lcl9nZXRfcmVtYWluaW5nCitocnRpbWVyX2dldF9yZXMKK2hydGltZXJfaW5pdF9zbGVlcGVyCisKKworVGhpcyBpcyBiZWNhdXNlIHRoZSAnPicgYW5kICc+PicgYWN0IGp1c3QgbGlrZSB0aGV5IGRvIGluIGJhc2guCitUbyByZXdyaXRlIHRoZSBmaWx0ZXJzLCB1c2UgJz4nCitUbyBhcHBlbmQgdG8gdGhlIGZpbHRlcnMsIHVzZSAnPj4nCisKK1RvIGNsZWFyIG91dCBhIGZpbHRlciBzbyB0aGF0IGFsbCBmdW5jdGlvbnMgd2lsbCBiZSByZWNvcmRlZCBhZ2FpbjoKKworICMgZWNobyA+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKyAjCisKK0FnYWluLCBub3cgd2Ugd2FudCB0byBhcHBlbmQuCisKKyAjIGVjaG8gc3lzX25hbm9zbGVlcCA+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKK3N5c19uYW5vc2xlZXAKKyAjIGVjaG8gaHJ0aW1lcl8qID4+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKK2hydGltZXJfcnVuX3F1ZXVlcworaHJ0aW1lcl9ydW5fcGVuZGluZworaHJ0aW1lcl9pbml0CitocnRpbWVyX2NhbmNlbAoraHJ0aW1lcl90cnlfdG9fY2FuY2VsCitocnRpbWVyX2ZvcndhcmQKK2hydGltZXJfc3RhcnQKK2hydGltZXJfcmVwcm9ncmFtCitocnRpbWVyX2ZvcmNlX3JlcHJvZ3JhbQoraHJ0aW1lcl9nZXRfbmV4dF9ldmVudAoraHJ0aW1lcl9pbnRlcnJ1cHQKK3N5c19uYW5vc2xlZXAKK2hydGltZXJfbmFub3NsZWVwCitocnRpbWVyX3dha2V1cAoraHJ0aW1lcl9nZXRfcmVtYWluaW5nCitocnRpbWVyX2dldF9yZXMKK2hydGltZXJfaW5pdF9zbGVlcGVyCisKKworVGhlIHNldF9mdHJhY2Vfbm90cmFjZSBwcmV2ZW50cyB0aG9zZSBmdW5jdGlvbnMgZnJvbSBiZWluZyB0cmFjZWQuCisKKyAjIGVjaG8gJypwcmVlbXB0KicgJypsb2NrKicgPiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX25vdHJhY2UKKworUHJvZHVjZXM6CisKKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ0OiBmaW5pc2hfdGFza19zd2l0Y2ggPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0NTogaHJ0aWNrX3NldCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ1OiBocnRpY2tfY2xlYXIgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ2OiB3YWl0X2Zvcl9jb21wbGV0aW9uIDwtX19zdG9wX21hY2hpbmVfcnVuCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ3OiB3YWl0X2Zvcl9jb21tb24gPC13YWl0X2Zvcl9jb21wbGV0aW9uCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ3OiBrdGhyZWFkX3N0b3AgPC1zdG9wX21hY2hpbmVfcnVuCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ4OiBpbml0X3dhaXRxdWV1ZV9oZWFkIDwta3RocmVhZF9zdG9wCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ4OiB3YWtlX3VwX3Byb2Nlc3MgPC1rdGhyZWFkX3N0b3AKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDk6IHRyeV90b193YWtlX3VwIDwtd2FrZV91cF9wcm9jZXNzCisKK1dlIGNhbiBzZWUgdGhhdCB0aGVyZSdzIG5vIG1vcmUgbG9jayBvciBwcmVlbXB0IHRyYWNpbmcuCisKK2Z0cmFjZWQKKy0tLS0tLS0KKworQXMgbWVudGlvbmVkIGFib3ZlLCB3aGVuIGR5bmFtaWMgZnRyYWNlIGlzIGNvbmZpZ3VyZWQgaW4sIGEga2VybmVsCit0aHJlYWQgd2FrZXMgdXAgb25jZSBhIHNlY29uZCBhbmQgY2hlY2tzIHRvIHNlZSBpZiB0aGVyZSBhcmUgbWNvdW50CitjYWxscyB0aGF0IG5lZWQgdG8gYmUgY29udmVydGVkIGludG8gbm9wcy4gSWYgdGhlcmUgYXJlIG5vdCBhbnksIHRoZW4KK2l0IHNpbXBseSBnb2VzIGJhY2sgdG8gc2xlZXAuIEJ1dCBpZiB0aGVyZSBhcmUgc29tZSwgaXQgd2lsbCBjYWxsCitrc3RvcF9tYWNoaW5lIHRvIGNvbnZlcnQgdGhlIGNhbGxzIHRvIG5vcHMuCisKK1RoZXJlIG1heSBiZSBhIGNhc2UgdGhhdCB5b3UgZG8gbm90IHdhbnQgdGhpcyBhZGRlZCBsYXRlbmN5LgorUGVyaGFwcyB5b3UgYXJlIGRvaW5nIHNvbWUgYXVkaW8gcmVjb3JkaW5nIGFuZCB0aGlzIGFjdGl2aXR5IG1pZ2h0CitjYXVzZSBza2lwcyBpbiB0aGUgcGxheWJhY2suIFRoZXJlIGlzIGFuIGludGVyZmFjZSB0byBkaXNhYmxlCithbmQgZW5hYmxlIHRoZSBmdHJhY2VkIGtlcm5lbCB0aHJlYWQuCisKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL2Z0cmFjZWRfZW5hYmxlZAorCitUaGlzIHdpbGwgZGlzYWJsZSB0aGUgY2FsbGluZyBvZiB0aGUga3N0b3BfbWFjaGluZSB0byB1cGRhdGUgdGhlCittY291bnQgY2FsbHMgdG8gbm9wcy4gUmVtZW1iZXIgdGhhdCB0aGVyZSdzIGEgbGFyZ2Ugb3ZlcmhlYWQKK3RvIGNhbGxpbmcgbWNvdW50LiBXaXRob3V0IHRoaXMga2VybmVsIHRocmVhZCwgdGhhdCBvdmVyaGVhZCB3aWxsCitleGlzdC4KKworSWYgdGhlcmUgYXJlIHJlY29yZGVkIGNhbGxzIHRvIG1jb3VudCwgYW55IHdyaXRlIHRvIHRoZSBmdHJhY2VkX2VuYWJsZWQKK2ZpbGUgd2lsbCBjYXVzZSB0aGUga3N0b3BfbWFjaGluZSB0byBydW4uIFRoaXMgbWVhbnMgdGhhdCBhCit1c2VyIGNhbiBtYW51YWxseSBwZXJmb3JtIHRoZSB1cGRhdGVzIHdoZW4gdGhleSB3YW50IHRvIGJ5IHNpbXBseQorZWNob2luZyBhICcwJyBpbnRvIHRoZSBmdHJhY2VkX2VuYWJsZWQgZmlsZS4KKworVGhlIHVwZGF0ZXMgYXJlIGFsc28gZG9uZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGVuYWJsaW5nIGEgdHJhY2VyCit0aGF0IHVzZXMgZnRyYWNlIGZ1bmN0aW9uIHJlY29yZGluZy4KKworCit0cmFjZV9waXBlCistLS0tLS0tLS0tCisKK1RoZSB0cmFjZV9waXBlIG91dHB1dHMgdGhlIHNhbWUgYXMgdHJhY2UsIGJ1dCB0aGUgZWZmZWN0IG9uIHRoZQordHJhY2luZyBpcyBkaWZmZXJlbnQuIEV2ZXJ5IHJlYWQgZnJvbSB0cmFjZV9waXBlIGlzIGNvbnN1bWVkLgorVGhpcyBtZWFucyB0aGF0IHN1YnNlcXVlbnQgcmVhZHMgd2lsbCBiZSBkaWZmZXJlbnQuIFRoZSB0cmFjZQoraXMgbGl2ZS4KKworICMgZWNobyBmdHJhY2UgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgPiAvdG1wL3RyYWNlLm91dCAmCitbMV0gNDE1MworICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyB1c2xlZXAgMQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UKKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisKKyAjCisgIyBjYXQgL3RtcC90cmFjZS5vdXQKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDY6IGZpbmlzaF90YXNrX3N3aXRjaCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA2OiBocnRpY2tfc2V0IDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDc6IGhydGlja19jbGVhciA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDg6IHdhaXRfZm9yX2NvbXBsZXRpb24gPC1fX3N0b3BfbWFjaGluZV9ydW4KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDg6IHdhaXRfZm9yX2NvbW1vbiA8LXdhaXRfZm9yX2NvbXBsZXRpb24KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDk6IGt0aHJlYWRfc3RvcCA8LXN0b3BfbWFjaGluZV9ydW4KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDk6IGluaXRfd2FpdHF1ZXVlX2hlYWQgPC1rdGhyZWFkX3N0b3AKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMTA6IHdha2VfdXBfcHJvY2VzcyA8LWt0aHJlYWRfc3RvcAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzExMDogdHJ5X3RvX3dha2VfdXAgPC13YWtlX3VwX3Byb2Nlc3MKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMTE6IHNlbGVjdF90YXNrX3JxX3J0IDwtdHJ5X3RvX3dha2VfdXAKKworCitOb3RlLCByZWFkaW5nIHRoZSB0cmFjZV9waXBlIHdpbGwgYmxvY2sgdW50aWwgbW9yZSBpbnB1dCBpcyBhZGRlZC4KK0J5IGNoYW5naW5nIHRoZSB0cmFjZXIsIHRyYWNlX3BpcGUgd2lsbCBpc3N1ZSBhbiBFT0YuIFdlIG5lZWRlZAordG8gc2V0IHRoZSBmdHJhY2UgdHJhY2VyIF9iZWZvcmVfIGNhdGluZyB0aGUgdHJhY2VfcGlwZSBmaWxlLgorCisKK3RyYWNlIGVudHJpZXMKKy0tLS0tLS0tLS0tLS0KKworSGF2aW5nIHRvbyBtdWNoIG9yIG5vdCBlbm91Z2ggZGF0YSBjYW4gYmUgdHJvdWJsZXNvbWUgaW4gZGlhZ25vc2luZworc29tZSBpc3N1ZSBpbiB0aGUga2VybmVsLiBUaGUgZmlsZSB0cmFjZV9lbnRyaWVzIGlzIHVzZWQgdG8gbW9kaWZ5Cit0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgdHJhY2UgYnVmZmVycy4gVGhlIG51bWJlciBsaXN0ZWQKK2lzIHRoZSBudW1iZXIgb2YgZW50cmllcyB0aGF0IGNhbiBiZSByZWNvcmRlZCBwZXIgQ1BVLiBUbyBrbm93Cit0aGUgZnVsbCBzaXplLCBtdWx0aXBseSB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIENQVVMgd2l0aCB0aGUKK251bWJlciBvZiBlbnRyaWVzLgorCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworNjU2MjAKKworTm90ZSwgdG8gbW9kaWZ5IHRoaXMsIHlvdSBtdXN0IGhhdmUgdHJhY2luZyBjb21wbGV0ZWx5IGRpc2FibGVkLiBUbyBkbyB0aGF0LAorZWNobyAibm9uZSIgaW50byB0aGUgY3VycmVudF90cmFjZXIuCisKKyAjIGVjaG8gbm9uZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDEwMDAwMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCisxMDAwNDUKKworCitOb3RpY2UgdGhhdCB3ZSBlY2hvZWQgaW4gMTAwLDAwMCBidXQgdGhlIHNpemUgaXMgMTAwLDA0NS4gVGhlIGVudHJpZXMKK2FyZSBoZWxkIGJ5IGluZGl2aWR1YWwgcGFnZXMuIEl0IGFsbG9jYXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIGl0IHRha2VzCit0byBmdWxmaWxsIHRoZSByZXF1ZXN0LiBJZiBtb3JlIGVudHJpZXMgbWF5IGZpdCBvbiB0aGUgbGFzdCBwYWdlCitpdCB3aWxsIGFkZCB0aGVtLgorCisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworODUKKworVGhpcyBzaG93cyB1cyB0aGF0IDg1IGVudHJpZXMgY2FuIGZpdCBvbiBhIHNpbmdsZSBwYWdlLgorCitUaGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgd2lsbCBiZSBhbGxvY2F0ZWQgaXMgYSBwZXJjZW50YWdlIG9mIGF2YWlsYWJsZQorbWVtb3J5LiBBbGxvY2F0aW5nIHRvbyBtdWNoIHdpbGwgcHJvZHVjZSBhbiBlcnJvci4KKworICMgZWNobyAxMDAwMDAwMDAwMDAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworLWJhc2g6IGVjaG86IHdyaXRlIGVycm9yOiBDYW5ub3QgYWxsb2NhdGUgbWVtb3J5CisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworODUKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9od21vbi9zeXNmcy1pbnRlcmZhY2UgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3N5c2ZzLWludGVyZmFjZQppbmRleCBmNGE4ZWJjLi4yZDg0NTczIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2h3bW9uL3N5c2ZzLWludGVyZmFjZQorKysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3N5c2ZzLWludGVyZmFjZQpAQCAtMiwxNyArMiwxMiBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRoZSBsaWJzZW5zb3JzIGxpYnJhcnkgb2ZmZXJzIGFuIGludGVyZmFjZSB0byB0aGUgcmF3IHNlbnNvcnMgZGF0YQotdGhyb3VnaCB0aGUgc3lzZnMgaW50ZXJmYWNlLiBTZWUgbGlic2Vuc29ycyBkb2N1bWVudGF0aW9uIGFuZCBzb3VyY2UgZm9yCi1mdXJ0aGVyIGluZm9ybWF0aW9uLiBBcyBvZiB3cml0aW5nIHRoaXMgZG9jdW1lbnQsIGxpYnNlbnNvcnMKLShmcm9tIGxtX3NlbnNvcnMgMi44LjMpIGlzIGhlYXZpbHkgY2hpcC1kZXBlbmRlbnQuIEFkZGluZyBvciB1cGRhdGluZwotc3VwcG9ydCBmb3IgYW55IGdpdmVuIGNoaXAgcmVxdWlyZXMgbW9kaWZ5aW5nIHRoZSBsaWJyYXJ5J3MgY29kZS4KLVRoaXMgaXMgYmVjYXVzZSBsaWJzZW5zb3JzIHdhcyB3cml0dGVuIGZvciB0aGUgcHJvY2ZzIGludGVyZmFjZQotb2xkZXIga2VybmVsIG1vZHVsZXMgd2VyZSB1c2luZywgd2hpY2ggd2Fzbid0IHN0YW5kYXJkaXplZCBlbm91Z2guCi1SZWNlbnQgdmVyc2lvbnMgb2YgbGlic2Vuc29ycyAoZnJvbSBsbV9zZW5zb3JzIDIuOC4yIGFuZCBsYXRlcikgaGF2ZQotc3VwcG9ydCBmb3IgdGhlIHN5c2ZzIGludGVyZmFjZSwgdGhvdWdoLgotCi1UaGUgbmV3IHN5c2ZzIGludGVyZmFjZSB3YXMgZGVzaWduZWQgdG8gYmUgYXMgY2hpcC1pbmRlcGVuZGVudCBhcwotcG9zc2libGUuCit0aHJvdWdoIHRoZSBzeXNmcyBpbnRlcmZhY2UuIFNpbmNlIGxtLXNlbnNvcnMgMy4wLjAsIGxpYnNlbnNvcnMgaXMKK2NvbXBsZXRlbHkgY2hpcC1pbmRlcGVuZGVudC4gSXQgYXNzdW1lcyB0aGF0IGFsbCB0aGUga2VybmVsIGRyaXZlcnMKK2ltcGxlbWVudCB0aGUgc3RhbmRhcmQgc3lzZnMgaW50ZXJmYWNlIGRlc2NyaWJlZCBpbiB0aGlzIGRvY3VtZW50LgorVGhpcyBtYWtlcyBhZGRpbmcgb3IgdXBkYXRpbmcgc3VwcG9ydCBmb3IgYW55IGdpdmVuIGNoaXAgdmVyeSBlYXN5LCBhcworbGlic2Vuc29ycywgYW5kIGFwcGxpY2F0aW9ucyB1c2luZyBpdCwgZG8gbm90IG5lZWQgdG8gYmUgbW9kaWZpZWQuCitUaGlzIGlzIGEgbWFqb3IgaW1wcm92ZW1lbnQgY29tcGFyZWQgdG8gbG0tc2Vuc29ycyAyLgogCiBOb3RlIHRoYXQgbW90aGVyYm9hcmRzIHZhcnkgd2lkZWx5IGluIHRoZSBjb25uZWN0aW9ucyB0byBzZW5zb3IgY2hpcHMuCiBUaGVyZSBpcyBubyBzdGFuZGFyZCB0aGF0IGVuc3VyZXMsIGZvciBleGFtcGxlLCB0aGF0IHRoZSBzZWNvbmQKQEAgLTM1LDE5ICszMCwxNyBAQAogd2lsbCBoYXZlIHRvIGltcGxlbWVudCBjb252ZXJzaW9uLCBsYWJlbGluZyBhbmQgaGlkaW5nIG9mIGlucHV0cy4gRm9yCiB0aGlzIHJlYXNvbiwgaXQgaXMgc3RpbGwgbm90IHJlY29tbWVuZGVkIHRvIGJ5cGFzcyB0aGUgbGlicmFyeS4KIAotSWYgeW91IGFyZSBkZXZlbG9waW5nIGEgdXNlcnNwYWNlIGFwcGxpY2F0aW9uIHBsZWFzZSBzZW5kIHVzIGZlZWRiYWNrIG9uCi10aGlzIHN0YW5kYXJkLgotCi1Ob3RlIHRoYXQgdGhpcyBzdGFuZGFyZCBpc24ndCBjb21wbGV0ZWx5IGVzdGFibGlzaGVkIHlldCwgc28gaXQgaXMgc3ViamVjdAotdG8gY2hhbmdlcy4gSWYgeW91IGFyZSB3cml0aW5nIGEgbmV3IGhhcmR3YXJlIG1vbml0b3JpbmcgZHJpdmVyIHRob3NlCi1mZWF0dXJlcyBjYW4ndCBzZWVtIHRvIGZpdCBpbiB0aGlzIGludGVyZmFjZSwgcGxlYXNlIGNvbnRhY3QgdXMgd2l0aCB5b3VyCi1leHRlbnNpb24gcHJvcG9zYWwuIEtlZXAgaW4gbWluZCB0aGF0IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbXVzdCBiZQotcHJlc2VydmVkLgotCiBFYWNoIGNoaXAgZ2V0cyBpdHMgb3duIGRpcmVjdG9yeSBpbiB0aGUgc3lzZnMgL3N5cy9kZXZpY2VzIHRyZWUuICBUbwogZmluZCBhbGwgc2Vuc29yIGNoaXBzLCBpdCBpcyBlYXNpZXIgdG8gZm9sbG93IHRoZSBkZXZpY2Ugc3ltbGlua3MgZnJvbQogL3N5cy9jbGFzcy9od21vbi9od21vbiouCiAKK1VwIHRvIGxtLXNlbnNvcnMgMy4wLjAsIGxpYnNlbnNvcnMgbG9va3MgZm9yIGhhcmR3YXJlIG1vbml0b3JpbmcgYXR0cmlidXRlcworaW4gdGhlICJwaHlzaWNhbCIgZGV2aWNlIGRpcmVjdG9yeS4gU2luY2UgbG0tc2Vuc29ycyAzLjAuMSwgYXR0cmlidXRlcyBmb3VuZAoraW4gdGhlIGh3bW9uICJjbGFzcyIgZGV2aWNlIGRpcmVjdG9yeSBhcmUgYWxzbyBzdXBwb3J0ZWQuIENvbXBsZXggZHJpdmVycworKGUuZy4gZHJpdmVycyBmb3IgbXVsdGlmdW5jdGlvbiBjaGlwcykgbWF5IHdhbnQgdG8gdXNlIHRoaXMgcG9zc2liaWxpdHkgdG8KK2F2b2lkIG5hbWVzcGFjZSBwb2xsdXRpb24uIFRoZSBvbmx5IGRyYXdiYWNrIHdpbGwgYmUgdGhhdCBvbGRlciB2ZXJzaW9ucyBvZgorbGlic2Vuc29ycyB3b24ndCBzdXBwb3J0IHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24uCisKIEFsbCBzeXNmcyB2YWx1ZXMgYXJlIGZpeGVkIHBvaW50IG51bWJlcnMuCiAKIFRoZXJlIGlzIG9ubHkgb25lIHZhbHVlIHBlciBmaWxlLCB1bmxpa2UgdGhlIG9sZGVyIC9wcm9jIHNwZWNpZmljYXRpb24uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMgYi9Eb2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMKaW5kZXggZWU3NWNiYS4uZDRjZDQxMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzCisrKyBiL0RvY3VtZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cwpAQCAtMjUsMTIgKzI1LDIzIEBACiBwcm92aWRlLiAgQSBjbGllbnQgc3RydWN0dXJlIGhvbGRzIGRldmljZS1zcGVjaWZpYyBpbmZvcm1hdGlvbiBsaWtlIHRoZQogZHJpdmVyIG1vZGVsIGRldmljZSBub2RlLCBhbmQgaXRzIEkyQyBhZGRyZXNzLgogCisvKiBpZmYgZHJpdmVyIHVzZXMgZHJpdmVyIG1vZGVsICgibmV3IHN0eWxlIikgYmluZGluZyBtb2RlbDogKi8KKworc3RhdGljIHN0cnVjdCBpMmNfZGV2aWNlX2lkIGZvb19pZHRhYmxlW10gPSB7CisJeyAiZm9vIiwgbXlfaWRfZm9yX2ZvbyB9LAorCXsgImJhciIsIG15X2lkX2Zvcl9iYXIgfSwKKwl7IH0KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBmb29faWR0YWJsZSk7CisKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBmb29fZHJpdmVyID0gewogCS5kcml2ZXIgPSB7CiAJCS5uYW1lCT0gImZvbyIsCiAJfSwKIAogCS8qIGlmZiBkcml2ZXIgdXNlcyBkcml2ZXIgbW9kZWwgKCJuZXcgc3R5bGUiKSBiaW5kaW5nIG1vZGVsOiAqLworCS5pZF90YWJsZQk9IGZvb19pZHMsCiAJLnByb2JlCQk9IGZvb19wcm9iZSwKIAkucmVtb3ZlCQk9IGZvb19yZW1vdmUsCiAKQEAgLTE3MywxMCArMTg0LDkgQEAKICh6ZXJvIG5vdCBhIG5lZ2F0aXZlIHN0YXR1cyBjb2RlKSBpdCBtYXkgc2F2ZSB0aGUgaGFuZGxlIGFuZCB1c2UgaXQgdW50aWwKIGZvb19yZW1vdmUoKSByZXR1cm5zLiAgVGhhdCBiaW5kaW5nIG1vZGVsIGlzIHVzZWQgYnkgbW9zdCBMaW51eCBkcml2ZXJzLgogCi1Ecml2ZXJzIG1hdGNoIGRldmljZXMgd2hlbiBpMmNfY2xpZW50LmRyaXZlcl9uYW1lIGFuZCB0aGUgZHJpdmVyIG5hbWUgYXJlCi10aGUgc2FtZTsgdGhpcyBhcHByb2FjaCBpcyB1c2VkIGluIHNldmVyYWwgb3RoZXIgYnVzc2VzIHRoYXQgZG9uJ3QgaGF2ZQotZGV2aWNlIHR5cGluZyBzdXBwb3J0IGluIHRoZSBoYXJkd2FyZS4gIFRoZSBkcml2ZXIgYW5kIG1vZHVsZSBuYW1lIHNob3VsZAotbWF0Y2gsIHNvIGhvdHBsdWcvY29sZHBsdWcgbWVjaGFuaXNtcyB3aWxsIG1vZHByb2JlIHRoZSBkcml2ZXIuCitUaGUgcHJvYmUgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYW4gZW50cnkgaW4gdGhlIGlkX3RhYmxlIG5hbWUgZmllbGQKK21hdGNoZXMgdGhlIGRldmljZSdzIG5hbWUuIEl0IGlzIHBhc3NlZCB0aGUgZW50cnkgdGhhdCB3YXMgbWF0Y2hlZCBzbwordGhlIGRyaXZlciBrbm93cyB3aGljaCBvbmUgaW4gdGhlIHRhYmxlIG1hdGNoZWQuCiAKIAogRGV2aWNlIENyZWF0aW9uIChTdGFuZGFyZCBkcml2ZXIgbW9kZWwpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kzODYvYm9vdC50eHQgYi9Eb2N1bWVudGF0aW9uL2kzODYvYm9vdC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1YWQxNWMuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9pMzg2L2Jvb3QudHh0CisrKyAvZGV2L251bGwKQEAgLTEsODg3ICswLDAgQEAKLQkJICAgICBUSEUgTElOVVgvSTM4NiBCT09UIFBST1RPQ09MCi0JCSAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0JCSAgICBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLQkJCUxhc3QgdXBkYXRlIDIwMDctMDUtMjMKLQotT24gdGhlIGkzODYgcGxhdGZvcm0sIHRoZSBMaW51eCBrZXJuZWwgdXNlcyBhIHJhdGhlciBjb21wbGljYXRlZCBib290Ci1jb252ZW50aW9uLiAgVGhpcyBoYXMgZXZvbHZlZCBwYXJ0aWFsbHkgZHVlIHRvIGhpc3RvcmljYWwgYXNwZWN0cywgYXMKLXdlbGwgYXMgdGhlIGRlc2lyZSBpbiB0aGUgZWFybHkgZGF5cyB0byBoYXZlIHRoZSBrZXJuZWwgaXRzZWxmIGJlIGEKLWJvb3RhYmxlIGltYWdlLCB0aGUgY29tcGxpY2F0ZWQgUEMgbWVtb3J5IG1vZGVsIGFuZCBkdWUgdG8gY2hhbmdlZAotZXhwZWN0YXRpb25zIGluIHRoZSBQQyBpbmR1c3RyeSBjYXVzZWQgYnkgdGhlIGVmZmVjdGl2ZSBkZW1pc2Ugb2YKLXJlYWwtbW9kZSBET1MgYXMgYSBtYWluc3RyZWFtIG9wZXJhdGluZyBzeXN0ZW0uCi0KLUN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyB2ZXJzaW9ucyBvZiB0aGUgTGludXgvaTM4NiBib290IHByb3RvY29sIGV4aXN0LgotCi1PbGQga2VybmVsczoJekltYWdlL0ltYWdlIHN1cHBvcnQgb25seS4gIFNvbWUgdmVyeSBlYXJseSBrZXJuZWxzCi0JCW1heSBub3QgZXZlbiBzdXBwb3J0IGEgY29tbWFuZCBsaW5lLgotCi1Qcm90b2NvbCAyLjAwOgkoS2VybmVsIDEuMy43MykgQWRkZWQgYnpJbWFnZSBhbmQgaW5pdHJkIHN1cHBvcnQsIGFzCi0JCXdlbGwgYXMgYSBmb3JtYWxpemVkIHdheSB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZQotCQlib290IGxvYWRlciBhbmQgdGhlIGtlcm5lbC4gIHNldHVwLlMgbWFkZSByZWxvY2F0YWJsZSwKLQkJYWx0aG91Z2ggdGhlIHRyYWRpdGlvbmFsIHNldHVwIGFyZWEgc3RpbGwgYXNzdW1lZAotCQl3cml0YWJsZS4KLQotUHJvdG9jb2wgMi4wMToJKEtlcm5lbCAxLjMuNzYpIEFkZGVkIGEgaGVhcCBvdmVycnVuIHdhcm5pbmcuCi0KLVByb3RvY29sIDIuMDI6CShLZXJuZWwgMi40LjAtdGVzdDMtcHJlMykgTmV3IGNvbW1hbmQgbGluZSBwcm90b2NvbC4KLQkJTG93ZXIgdGhlIGNvbnZlbnRpb25hbCBtZW1vcnkgY2VpbGluZy4JTm8gb3ZlcndyaXRlCi0JCW9mIHRoZSB0cmFkaXRpb25hbCBzZXR1cCBhcmVhLCB0aHVzIG1ha2luZyBib290aW5nCi0JCXNhZmUgZm9yIHN5c3RlbXMgd2hpY2ggdXNlIHRoZSBFQkRBIGZyb20gU01NIG9yIDMyLWJpdAotCQlCSU9TIGVudHJ5IHBvaW50cy4gIHpJbWFnZSBkZXByZWNhdGVkIGJ1dCBzdGlsbAotCQlzdXBwb3J0ZWQuCi0KLVByb3RvY29sIDIuMDM6CShLZXJuZWwgMi40LjE4LXByZTEpIEV4cGxpY2l0bHkgbWFrZXMgdGhlIGhpZ2hlc3QgcG9zc2libGUKLQkJaW5pdHJkIGFkZHJlc3MgYXZhaWxhYmxlIHRvIHRoZSBib290bG9hZGVyLgotCi1Qcm90b2NvbCAyLjA0OgkoS2VybmVsIDIuNi4xNCkgRXh0ZW5kIHRoZSBzeXNzaXplIGZpZWxkIHRvIGZvdXIgYnl0ZXMuCi0KLVByb3RvY29sIDIuMDU6CShLZXJuZWwgMi42LjIwKSBNYWtlIHByb3RlY3RlZCBtb2RlIGtlcm5lbCByZWxvY2F0YWJsZS4KLQkJSW50cm9kdWNlIHJlbG9jYXRhYmxlX2tlcm5lbCBhbmQga2VybmVsX2FsaWdubWVudCBmaWVsZHMuCi0KLVByb3RvY29sIDIuMDY6CShLZXJuZWwgMi42LjIyKSBBZGRlZCBhIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHNpemUgb2YKLQkJdGhlIGJvb3QgY29tbWFuZCBsaW5lLgotCi1Qcm90b2NvbCAyLjA3OgkoS2VybmVsIDIuNi4yNCkgQWRkZWQgcGFyYXZpcnR1YWxpc2VkIGJvb3QgcHJvdG9jb2wuCi0JCUludHJvZHVjZWQgaGFyZHdhcmVfc3ViYXJjaCBhbmQgaGFyZHdhcmVfc3ViYXJjaF9kYXRhCi0JCWFuZCBLRUVQX1NFR01FTlRTIGZsYWcgaW4gbG9hZF9mbGFncy4KLQotUHJvdG9jb2wgMi4wODoJKEtlcm5lbCAyLjYuMjYpIEFkZGVkIGNyYzMyIGNoZWNrc3VtIGFuZCBFTEYgZm9ybWF0Ci0JCXBheWxvYWQuIEludHJvZHVjZWQgcGF5bG9hZF9vZmZzZXQgYW5kIHBheWxvYWQgbGVuZ3RoCi0JCWZpZWxkcyB0byBhaWQgaW4gbG9jYXRpbmcgdGhlIHBheWxvYWQuCi0KLVByb3RvY29sIDIuMDk6CShLZXJuZWwgMi42LjI2KSBBZGRlZCBhIGZpZWxkIG9mIDY0LWJpdCBwaHlzaWNhbAotCQlwb2ludGVyIHRvIHNpbmdsZSBsaW5rZWQgbGlzdCBvZiBzdHJ1Y3QJc2V0dXBfZGF0YS4KLQotKioqKiBNRU1PUlkgTEFZT1VUCi0KLVRoZSB0cmFkaXRpb25hbCBtZW1vcnkgbWFwIGZvciB0aGUga2VybmVsIGxvYWRlciwgdXNlZCBmb3IgSW1hZ2Ugb3IKLXpJbWFnZSBrZXJuZWxzLCB0eXBpY2FsbHkgbG9va3MgbGlrZToKLQotCXwJCQkgfAotMEEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgUmVzZXJ2ZWQgZm9yIEJJT1MJIHwJRG8gbm90IHVzZS4gIFJlc2VydmVkIGZvciBCSU9TIEVCREEuCi0wOUEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBDb21tYW5kIGxpbmUJCSB8Ci0JfCAgU3RhY2svaGVhcAkJIHwJRm9yIHVzZSBieSB0aGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgotMDk4MDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCQotCXwgIEtlcm5lbCBzZXR1cAkJIHwJVGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KLTA5MDIwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIEtlcm5lbCBib290IHNlY3RvcgkgfAlUaGUga2VybmVsIGxlZ2FjeSBib290IHNlY3Rvci4KLTA5MDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFByb3RlY3RlZC1tb2RlIGtlcm5lbCB8CVRoZSBidWxrIG9mIHRoZSBrZXJuZWwgaW1hZ2UuCi0wMTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBCb290IGxvYWRlcgkJIHwJPC0gQm9vdCBzZWN0b3IgZW50cnkgcG9pbnQgMDAwMDo3QzAwCi0wMDEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBSZXNlcnZlZCBmb3IgTUJSL0JJT1MgfAotMDAwODAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgVHlwaWNhbGx5IHVzZWQgYnkgTUJSIHwKLTAwMDYwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAKLQl8ICBCSU9TIHVzZSBvbmx5CSB8Ci0wMDAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQotCi1XaGVuIHVzaW5nIGJ6SW1hZ2UsIHRoZSBwcm90ZWN0ZWQtbW9kZSBrZXJuZWwgd2FzIHJlbG9jYXRlZCB0bwotMHgxMDAwMDAgKCJoaWdoIG1lbW9yeSIpLCBhbmQgdGhlIGtlcm5lbCByZWFsLW1vZGUgYmxvY2sgKGJvb3Qgc2VjdG9yLAotc2V0dXAsIGFuZCBzdGFjay9oZWFwKSB3YXMgbWFkZSByZWxvY2F0YWJsZSB0byBhbnkgYWRkcmVzcyBiZXR3ZWVuCi0weDEwMDAwIGFuZCBlbmQgb2YgbG93IG1lbW9yeS4gVW5mb3J0dW5hdGVseSwgaW4gcHJvdG9jb2xzIDIuMDAgYW5kCi0yLjAxIHRoZSAweDkwMDAwKyBtZW1vcnkgcmFuZ2UgaXMgc3RpbGwgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBrZXJuZWw7Ci10aGUgMi4wMiBwcm90b2NvbCByZXNvbHZlcyB0aGF0IHByb2JsZW0uCi0KLUl0IGlzIGRlc2lyYWJsZSB0byBrZWVwIHRoZSAibWVtb3J5IGNlaWxpbmciIC0tIHRoZSBoaWdoZXN0IHBvaW50IGluCi1sb3cgbWVtb3J5IHRvdWNoZWQgYnkgdGhlIGJvb3QgbG9hZGVyIC0tIGFzIGxvdyBhcyBwb3NzaWJsZSwgc2luY2UKLXNvbWUgbmV3ZXIgQklPU2VzIGhhdmUgYmVndW4gdG8gYWxsb2NhdGUgc29tZSByYXRoZXIgbGFyZ2UgYW1vdW50cyBvZgotbWVtb3J5LCBjYWxsZWQgdGhlIEV4dGVuZGVkIEJJT1MgRGF0YSBBcmVhLCBuZWFyIHRoZSB0b3Agb2YgbG93Ci1tZW1vcnkuCSBUaGUgYm9vdCBsb2FkZXIgc2hvdWxkIHVzZSB0aGUgIklOVCAxMmgiIEJJT1MgY2FsbCB0byB2ZXJpZnkKLWhvdyBtdWNoIGxvdyBtZW1vcnkgaXMgYXZhaWxhYmxlLgotCi1VbmZvcnR1bmF0ZWx5LCBpZiBJTlQgMTJoIHJlcG9ydHMgdGhhdCB0aGUgYW1vdW50IG9mIG1lbW9yeSBpcyB0b28KLWxvdywgdGhlcmUgaXMgdXN1YWxseSBub3RoaW5nIHRoZSBib290IGxvYWRlciBjYW4gZG8gYnV0IHRvIHJlcG9ydCBhbgotZXJyb3IgdG8gdGhlIHVzZXIuICBUaGUgYm9vdCBsb2FkZXIgc2hvdWxkIHRoZXJlZm9yZSBiZSBkZXNpZ25lZCB0bwotdGFrZSB1cCBhcyBsaXR0bGUgc3BhY2UgaW4gbG93IG1lbW9yeSBhcyBpdCByZWFzb25hYmx5IGNhbi4gIEZvcgotekltYWdlIG9yIG9sZCBiekltYWdlIGtlcm5lbHMsIHdoaWNoIG5lZWQgZGF0YSB3cml0dGVuIGludG8gdGhlCi0weDkwMDAwIHNlZ21lbnQsIHRoZSBib290IGxvYWRlciBzaG91bGQgbWFrZSBzdXJlIG5vdCB0byB1c2UgbWVtb3J5Ci1hYm92ZSB0aGUgMHg5QTAwMCBwb2ludDsgdG9vIG1hbnkgQklPU2VzIHdpbGwgYnJlYWsgYWJvdmUgdGhhdCBwb2ludC4KLQotRm9yIGEgbW9kZXJuIGJ6SW1hZ2Uga2VybmVsIHdpdGggYm9vdCBwcm90b2NvbCB2ZXJzaW9uID49IDIuMDIsIGEKLW1lbW9yeSBsYXlvdXQgbGlrZSB0aGUgZm9sbG93aW5nIGlzIHN1Z2dlc3RlZDoKLQotCX4gICAgICAgICAgICAgICAgICAgICAgICB+Ci0gICAgICAgIHwgIFByb3RlY3RlZC1tb2RlIGtlcm5lbCB8Ci0xMDAwMDAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgSS9PIG1lbW9yeSBob2xlCSB8Ci0wQTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBSZXNlcnZlZCBmb3IgQklPUwkgfAlMZWF2ZSBhcyBtdWNoIGFzIHBvc3NpYmxlIHVudXNlZAotCX4gICAgICAgICAgICAgICAgICAgICAgICB+Ci0JfCAgQ29tbWFuZCBsaW5lCQkgfAkoQ2FuIGFsc28gYmUgYmVsb3cgdGhlIFgrMTAwMDAgbWFyaykKLVgrMTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBTdGFjay9oZWFwCQkgfAlGb3IgdXNlIGJ5IHRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCi1YKzA4MDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCQotCXwgIEtlcm5lbCBzZXR1cAkJIHwJVGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KLQl8ICBLZXJuZWwgYm9vdCBzZWN0b3IJIHwJVGhlIGtlcm5lbCBsZWdhY3kgYm9vdCBzZWN0b3IuCi1YICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgQm9vdCBsb2FkZXIJCSB8CTwtIEJvb3Qgc2VjdG9yIGVudHJ5IHBvaW50IDAwMDA6N0MwMAotMDAxMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgUmVzZXJ2ZWQgZm9yIE1CUi9CSU9TIHwKLTAwMDgwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFR5cGljYWxseSB1c2VkIGJ5IE1CUiB8Ci0wMDA2MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgCi0JfCAgQklPUyB1c2Ugb25seQkgfAotMDAwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0KLS4uLiB3aGVyZSB0aGUgYWRkcmVzcyBYIGlzIGFzIGxvdyBhcyB0aGUgZGVzaWduIG9mIHRoZSBib290IGxvYWRlcgotcGVybWl0cy4KLQotCi0qKioqIFRIRSBSRUFMLU1PREUgS0VSTkVMIEhFQURFUgotCi1JbiB0aGUgZm9sbG93aW5nIHRleHQsIGFuZCBhbnl3aGVyZSBpbiB0aGUga2VybmVsIGJvb3Qgc2VxdWVuY2UsICJhCi1zZWN0b3IiIHJlZmVycyB0byA1MTIgYnl0ZXMuICBJdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgYWN0dWFsIHNlY3Rvcgotc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBtZWRpdW0uCi0KLVRoZSBmaXJzdCBzdGVwIGluIGxvYWRpbmcgYSBMaW51eCBrZXJuZWwgc2hvdWxkIGJlIHRvIGxvYWQgdGhlCi1yZWFsLW1vZGUgY29kZSAoYm9vdCBzZWN0b3IgYW5kIHNldHVwIGNvZGUpIGFuZCB0aGVuIGV4YW1pbmUgdGhlCi1mb2xsb3dpbmcgaGVhZGVyIGF0IG9mZnNldCAweDAxZjEuICBUaGUgcmVhbC1tb2RlIGNvZGUgY2FuIHRvdGFsIHVwIHRvCi0zMkssIGFsdGhvdWdoIHRoZSBib290IGxvYWRlciBtYXkgY2hvb3NlIHRvIGxvYWQgb25seSB0aGUgZmlyc3QgdHdvCi1zZWN0b3JzICgxSykgYW5kIHRoZW4gZXhhbWluZSB0aGUgYm9vdHVwIHNlY3RvciBzaXplLgotCi1UaGUgaGVhZGVyIGxvb2tzIGxpa2U6Ci0KLU9mZnNldAlQcm90bwlOYW1lCQlNZWFuaW5nCi0vU2l6ZQotCi0wMUYxLzEJQUxMKDEJc2V0dXBfc2VjdHMJVGhlIHNpemUgb2YgdGhlIHNldHVwIGluIHNlY3RvcnMKLTAxRjIvMglBTEwJcm9vdF9mbGFncwlJZiBzZXQsIHRoZSByb290IGlzIG1vdW50ZWQgcmVhZG9ubHkKLTAxRjQvNAkyLjA0KygyCXN5c3NpemUJCVRoZSBzaXplIG9mIHRoZSAzMi1iaXQgY29kZSBpbiAxNi1ieXRlIHBhcmFzCi0wMUY4LzIJQUxMCXJhbV9zaXplCURPIE5PVCBVU0UgLSBmb3IgYm9vdHNlY3QuUyB1c2Ugb25seQotMDFGQS8yCUFMTAl2aWRfbW9kZQlWaWRlbyBtb2RlIGNvbnRyb2wKLTAxRkMvMglBTEwJcm9vdF9kZXYJRGVmYXVsdCByb290IGRldmljZSBudW1iZXIKLTAxRkUvMglBTEwJYm9vdF9mbGFnCTB4QUE1NSBtYWdpYyBudW1iZXIKLTAyMDAvMgkyLjAwKwlqdW1wCQlKdW1wIGluc3RydWN0aW9uCi0wMjAyLzQJMi4wMCsJaGVhZGVyCQlNYWdpYyBzaWduYXR1cmUgIkhkclMiCi0wMjA2LzIJMi4wMCsJdmVyc2lvbgkJQm9vdCBwcm90b2NvbCB2ZXJzaW9uIHN1cHBvcnRlZAotMDIwOC80CTIuMDArCXJlYWxtb2RlX3N3dGNoCUJvb3QgbG9hZGVyIGhvb2sgKHNlZSBiZWxvdykKLTAyMEMvMgkyLjAwKwlzdGFydF9zeXMJVGhlIGxvYWQtbG93IHNlZ21lbnQgKDB4MTAwMCkgKG9ic29sZXRlKQotMDIwRS8yCTIuMDArCWtlcm5lbF92ZXJzaW9uCVBvaW50ZXIgdG8ga2VybmVsIHZlcnNpb24gc3RyaW5nCi0wMjEwLzEJMi4wMCsJdHlwZV9vZl9sb2FkZXIJQm9vdCBsb2FkZXIgaWRlbnRpZmllcgotMDIxMS8xCTIuMDArCWxvYWRmbGFncwlCb290IHByb3RvY29sIG9wdGlvbiBmbGFncwotMDIxMi8yCTIuMDArCXNldHVwX21vdmVfc2l6ZQlNb3ZlIHRvIGhpZ2ggbWVtb3J5IHNpemUgKHVzZWQgd2l0aCBob29rcykKLTAyMTQvNAkyLjAwKwljb2RlMzJfc3RhcnQJQm9vdCBsb2FkZXIgaG9vayAoc2VlIGJlbG93KQotMDIxOC80CTIuMDArCXJhbWRpc2tfaW1hZ2UJaW5pdHJkIGxvYWQgYWRkcmVzcyAoc2V0IGJ5IGJvb3QgbG9hZGVyKQotMDIxQy80CTIuMDArCXJhbWRpc2tfc2l6ZQlpbml0cmQgc2l6ZSAoc2V0IGJ5IGJvb3QgbG9hZGVyKQotMDIyMC80CTIuMDArCWJvb3RzZWN0X2tsdWRnZQlETyBOT1QgVVNFIC0gZm9yIGJvb3RzZWN0LlMgdXNlIG9ubHkKLTAyMjQvMgkyLjAxKwloZWFwX2VuZF9wdHIJRnJlZSBtZW1vcnkgYWZ0ZXIgc2V0dXAgZW5kCi0wMjI2LzIJTi9BCXBhZDEJCVVudXNlZAotMDIyOC80CTIuMDIrCWNtZF9saW5lX3B0cgkzMi1iaXQgcG9pbnRlciB0byB0aGUga2VybmVsIGNvbW1hbmQgbGluZQotMDIyQy80CTIuMDMrCWluaXRyZF9hZGRyX21heAlIaWdoZXN0IGxlZ2FsIGluaXRyZCBhZGRyZXNzCi0wMjMwLzQJMi4wNSsJa2VybmVsX2FsaWdubWVudCBQaHlzaWNhbCBhZGRyIGFsaWdubWVudCByZXF1aXJlZCBmb3Iga2VybmVsCi0wMjM0LzEJMi4wNSsJcmVsb2NhdGFibGVfa2VybmVsIFdoZXRoZXIga2VybmVsIGlzIHJlbG9jYXRhYmxlIG9yIG5vdAotMDIzNS8zCU4vQQlwYWQyCQlVbnVzZWQKLTAyMzgvNAkyLjA2KwljbWRsaW5lX3NpemUJTWF4aW11bSBzaXplIG9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lCi0wMjNDLzQJMi4wNysJaGFyZHdhcmVfc3ViYXJjaCBIYXJkd2FyZSBzdWJhcmNoaXRlY3R1cmUKLTAyNDAvOAkyLjA3KwloYXJkd2FyZV9zdWJhcmNoX2RhdGEgU3ViYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGRhdGEKLTAyNDgvNAkyLjA4KwlwYXlsb2FkX29mZnNldAlPZmZzZXQgb2Yga2VybmVsIHBheWxvYWQKLTAyNEMvNAkyLjA4KwlwYXlsb2FkX2xlbmd0aAlMZW5ndGggb2Yga2VybmVsIHBheWxvYWQKLTAyNTAvOAkyLjA5KwlzZXR1cF9kYXRhCTY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIGxpbmtlZCBsaXN0Ci0JCQkJb2Ygc3RydWN0IHNldHVwX2RhdGEKLQotKDEpIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgaWYgdGhlIHNldHVwX3NlY3RzIGZpZWxkIGNvbnRhaW5zIDAsIHRoZQotICAgIHJlYWwgdmFsdWUgaXMgNC4KLQotKDIpIEZvciBib290IHByb3RvY29sIHByaW9yIHRvIDIuMDQsIHRoZSB1cHBlciB0d28gYnl0ZXMgb2YgdGhlIHN5c3NpemUKLSAgICBmaWVsZCBhcmUgdW51c2FibGUsIHdoaWNoIG1lYW5zIHRoZSBzaXplIG9mIGEgYnpJbWFnZSBrZXJuZWwKLSAgICBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KLQotSWYgdGhlICJIZHJTIiAoMHg1MzcyNjQ0OCkgbWFnaWMgbnVtYmVyIGlzIG5vdCBmb3VuZCBhdCBvZmZzZXQgMHgyMDIsCi10aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uIGlzICJvbGQiLiAgTG9hZGluZyBhbiBvbGQga2VybmVsLCB0aGUKLWZvbGxvd2luZyBwYXJhbWV0ZXJzIHNob3VsZCBiZSBhc3N1bWVkOgotCi0JSW1hZ2UgdHlwZSA9IHpJbWFnZQotCWluaXRyZCBub3Qgc3VwcG9ydGVkCi0JUmVhbC1tb2RlIGtlcm5lbCBtdXN0IGJlIGxvY2F0ZWQgYXQgMHg5MDAwMC4KLQotT3RoZXJ3aXNlLCB0aGUgInZlcnNpb24iIGZpZWxkIGNvbnRhaW5zIHRoZSBwcm90b2NvbCB2ZXJzaW9uLAotZS5nLiBwcm90b2NvbCB2ZXJzaW9uIDIuMDEgd2lsbCBjb250YWluIDB4MDIwMSBpbiB0aGlzIGZpZWxkLiAgV2hlbgotc2V0dGluZyBmaWVsZHMgaW4gdGhlIGhlYWRlciwgeW91IG11c3QgbWFrZSBzdXJlIG9ubHkgdG8gc2V0IGZpZWxkcwotc3VwcG9ydGVkIGJ5IHRoZSBwcm90b2NvbCB2ZXJzaW9uIGluIHVzZS4KLQotCi0qKioqIERFVEFJTFMgT0YgSEVBREVSIEZJRUxEUwotCi1Gb3IgZWFjaCBmaWVsZCwgc29tZSBhcmUgaW5mb3JtYXRpb24gZnJvbSB0aGUga2VybmVsIHRvIHRoZSBib290bG9hZGVyCi0oInJlYWQiKSwgc29tZSBhcmUgZXhwZWN0ZWQgdG8gYmUgZmlsbGVkIG91dCBieSB0aGUgYm9vdGxvYWRlcgotKCJ3cml0ZSIpLCBhbmQgc29tZSBhcmUgZXhwZWN0ZWQgdG8gYmUgcmVhZCBhbmQgbW9kaWZpZWQgYnkgdGhlCi1ib290bG9hZGVyICgibW9kaWZ5IikuCi0KLUFsbCBnZW5lcmFsIHB1cnBvc2UgYm9vdCBsb2FkZXJzIHNob3VsZCB3cml0ZSB0aGUgZmllbGRzIG1hcmtlZAotKG9ibGlnYXRvcnkpLiAgQm9vdCBsb2FkZXJzIHdobyB3YW50IHRvIGxvYWQgdGhlIGtlcm5lbCBhdCBhCi1ub25zdGFuZGFyZCBhZGRyZXNzIHNob3VsZCBmaWxsIGluIHRoZSBmaWVsZHMgbWFya2VkIChyZWxvYyk7IG90aGVyCi1ib290IGxvYWRlcnMgY2FuIGlnbm9yZSB0aG9zZSBmaWVsZHMuCi0KLVRoZSBieXRlIG9yZGVyIG9mIGFsbCBmaWVsZHMgaXMgbGl0dGxlZW5kaWFuICh0aGlzIGlzIHg4NiwgYWZ0ZXIgYWxsLikKLQotRmllbGQgbmFtZToJc2V0dXBfc2VjdHMKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgxZjEvMQotUHJvdG9jb2w6CUFMTAotCi0gIFRoZSBzaXplIG9mIHRoZSBzZXR1cCBjb2RlIGluIDUxMi1ieXRlIHNlY3RvcnMuICBJZiB0aGlzIGZpZWxkIGlzCi0gIDAsIHRoZSByZWFsIHZhbHVlIGlzIDQuICBUaGUgcmVhbC1tb2RlIGNvZGUgY29uc2lzdHMgb2YgdGhlIGJvb3QKLSAgc2VjdG9yIChhbHdheXMgb25lIDUxMi1ieXRlIHNlY3RvcikgcGx1cyB0aGUgc2V0dXAgY29kZS4KLQotRmllbGQgbmFtZToJIHJvb3RfZmxhZ3MKLVR5cGU6CQkgbW9kaWZ5IChvcHRpb25hbCkKLU9mZnNldC9zaXplOgkgMHgxZjIvMgotUHJvdG9jb2w6CSBBTEwKLQotICBJZiB0aGlzIGZpZWxkIGlzIG5vbnplcm8sIHRoZSByb290IGRlZmF1bHRzIHRvIHJlYWRvbmx5LiAgVGhlIHVzZSBvZgotICB0aGlzIGZpZWxkIGlzIGRlcHJlY2F0ZWQ7IHVzZSB0aGUgInJvIiBvciAicnciIG9wdGlvbnMgb24gdGhlCi0gIGNvbW1hbmQgbGluZSBpbnN0ZWFkLgotCi1GaWVsZCBuYW1lOglzeXNzaXplCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MWY0LzQgKHByb3RvY29sIDIuMDQrKSAweDFmNC8yIChwcm90b2NvbCBBTEwpCi1Qcm90b2NvbDoJMi4wNCsKLQotICBUaGUgc2l6ZSBvZiB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpbiB1bml0cyBvZiAxNi1ieXRlIHBhcmFncmFwaHMuCi0gIEZvciBwcm90b2NvbCB2ZXJzaW9ucyBvbGRlciB0aGFuIDIuMDQgdGhpcyBmaWVsZCBpcyBvbmx5IHR3byBieXRlcwotICB3aWRlLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSB0cnVzdGVkIGZvciB0aGUgc2l6ZSBvZiBhIGtlcm5lbCBpZgotICB0aGUgTE9BRF9ISUdIIGZsYWcgaXMgc2V0LgotCi1GaWVsZCBuYW1lOglyYW1fc2l6ZQotVHlwZToJCWtlcm5lbCBpbnRlcm5hbAotT2Zmc2V0L3NpemU6CTB4MWY4LzIKLVByb3RvY29sOglBTEwKLQotICBUaGlzIGZpZWxkIGlzIG9ic29sZXRlLgotCi1GaWVsZCBuYW1lOgl2aWRfbW9kZQotVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDFmYS8yCi0KLSAgUGxlYXNlIHNlZSB0aGUgc2VjdGlvbiBvbiBTUEVDSUFMIENPTU1BTkQgTElORSBPUFRJT05TLgotCi1GaWVsZCBuYW1lOglyb290X2RldgotVHlwZToJCW1vZGlmeSAob3B0aW9uYWwpCi1PZmZzZXQvc2l6ZToJMHgxZmMvMgotUHJvdG9jb2w6CUFMTAotCi0gIFRoZSBkZWZhdWx0IHJvb3QgZGV2aWNlIGRldmljZSBudW1iZXIuICBUaGUgdXNlIG9mIHRoaXMgZmllbGQgaXMKLSAgZGVwcmVjYXRlZCwgdXNlIHRoZSAicm9vdD0iIG9wdGlvbiBvbiB0aGUgY29tbWFuZCBsaW5lIGluc3RlYWQuCi0KLUZpZWxkIG5hbWU6CWJvb3RfZmxhZwotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDFmZS8yCi1Qcm90b2NvbDoJQUxMCi0KLSAgQ29udGFpbnMgMHhBQTU1LiAgVGhpcyBpcyB0aGUgY2xvc2VzdCB0aGluZyBvbGQgTGludXgga2VybmVscyBoYXZlCi0gIHRvIGEgbWFnaWMgbnVtYmVyLgotCi1GaWVsZCBuYW1lOglqdW1wCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjAwLzIKLVByb3RvY29sOgkyLjAwKwotCi0gIENvbnRhaW5zIGFuIHg4NiBqdW1wIGluc3RydWN0aW9uLCAweEVCIGZvbGxvd2VkIGJ5IGEgc2lnbmVkIG9mZnNldAotICByZWxhdGl2ZSB0byBieXRlIDB4MjAyLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNpemUgb2YKLSAgdGhlIGhlYWRlci4KLQotRmllbGQgbmFtZToJaGVhZGVyCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjAyLzQKLVByb3RvY29sOgkyLjAwKwotCi0gIENvbnRhaW5zIHRoZSBtYWdpYyBudW1iZXIgIkhkclMiICgweDUzNzI2NDQ4KS4KLQotRmllbGQgbmFtZToJdmVyc2lvbgotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIwNi8yCi1Qcm90b2NvbDoJMi4wMCsKLQotICBDb250YWlucyB0aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uLCBpbiAobWFqb3IgPDwgOCkrbWlub3IgZm9ybWF0LAotICBlLmcuIDB4MDIwNCBmb3IgdmVyc2lvbiAyLjA0LCBhbmQgMHgwYTExIGZvciBhIGh5cG90aGV0aWNhbCB2ZXJzaW9uCi0gIDEwLjE3LgotCi1GaWVsZCBuYW1lOglyZWFkbW9kZV9zd3RjaAotVHlwZToJCW1vZGlmeSAob3B0aW9uYWwpCi1PZmZzZXQvc2l6ZToJMHgyMDgvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgQm9vdCBsb2FkZXIgaG9vayAoc2VlIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTIGJlbG93LikKLQotRmllbGQgbmFtZToJc3RhcnRfc3lzCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjBjLzQKLVByb3RvY29sOgkyLjAwKwotCi0gIFRoZSBsb2FkIGxvdyBzZWdtZW50ICgweDEwMDApLiAgT2Jzb2xldGUuCi0KLUZpZWxkIG5hbWU6CWtlcm5lbF92ZXJzaW9uCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjBlLzIKLVByb3RvY29sOgkyLjAwKwotCi0gIElmIHNldCB0byBhIG5vbnplcm8gdmFsdWUsIGNvbnRhaW5zIGEgcG9pbnRlciB0byBhIE5VTC10ZXJtaW5hdGVkCi0gIGh1bWFuLXJlYWRhYmxlIGtlcm5lbCB2ZXJzaW9uIG51bWJlciBzdHJpbmcsIGxlc3MgMHgyMDAuICBUaGlzIGNhbgotICBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIHRvIHRoZSB1c2VyLiAgVGhpcyB2YWx1ZQotICBzaG91bGQgYmUgbGVzcyB0aGFuICgweDIwMCpzZXR1cF9zZWN0cykuCi0KLSAgRm9yIGV4YW1wbGUsIGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIDB4MWMwMCwgdGhlIGtlcm5lbCB2ZXJzaW9uCi0gIG51bWJlciBzdHJpbmcgY2FuIGJlIGZvdW5kIGF0IG9mZnNldCAweDFlMDAgaW4gdGhlIGtlcm5lbCBmaWxlLgotICBUaGlzIGlzIGEgdmFsaWQgdmFsdWUgaWYgYW5kIG9ubHkgaWYgdGhlICJzZXR1cF9zZWN0cyIgZmllbGQKLSAgY29udGFpbnMgdGhlIHZhbHVlIDE1IG9yIGhpZ2hlciwgYXM6Ci0KLQkweDFjMDAgIDwgMTUqMHgyMDAgKD0gMHgxZTAwKSBidXQKLQkweDFjMDAgPj0gMTQqMHgyMDAgKD0gMHgxYzAwKQotCi0JMHgxYzAwID4+IDkgPSAxNCwgc28gdGhlIG1pbmltdW0gdmFsdWUgZm9yIHNldHVwX3NlY3MgaXMgMTUuCi0KLUZpZWxkIG5hbWU6CXR5cGVfb2ZfbG9hZGVyCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMTAvMQotUHJvdG9jb2w6CTIuMDArCi0KLSAgSWYgeW91ciBib290IGxvYWRlciBoYXMgYW4gYXNzaWduZWQgaWQgKHNlZSB0YWJsZSBiZWxvdyksIGVudGVyCi0gIDB4VFYgaGVyZSwgd2hlcmUgVCBpcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgYm9vdCBsb2FkZXIgYW5kIFYgaXMKLSAgYSB2ZXJzaW9uIG51bWJlci4gIE90aGVyd2lzZSwgZW50ZXIgMHhGRiBoZXJlLgotCi0gIEFzc2lnbmVkIGJvb3QgbG9hZGVyIGlkczoKLQkwICBMSUxPCQkJKDB4MDAgcmVzZXJ2ZWQgZm9yIHByZS0yLjAwIGJvb3Rsb2FkZXIpCi0JMSAgTG9hZGxpbgotCTIgIGJvb3RzZWN0LWxvYWRlcgkoMHgyMCwgYWxsIG90aGVyIHZhbHVlcyByZXNlcnZlZCkKLQkzICBTWVNMSU5VWAotCTQgIEV0aGVyQm9vdAotCTUgIEVMSUxPCi0JNyAgR1J1QgotCTggIFUtQk9PVAotCTkgIFhlbgotCUEgIEd1amluCi0JQiAgUWVtdQotCi0gIFBsZWFzZSBjb250YWN0IDxocGFAenl0b3IuY29tPiBpZiB5b3UgbmVlZCBhIGJvb3Rsb2FkZXIgSUQKLSAgdmFsdWUgYXNzaWduZWQuCi0KLUZpZWxkIG5hbWU6CWxvYWRmbGFncwotVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIxMS8xCi1Qcm90b2NvbDoJMi4wMCsKLQotICBUaGlzIGZpZWxkIGlzIGEgYml0bWFzay4KLQotICBCaXQgMCAocmVhZCk6CUxPQURFRF9ISUdICi0JLSBJZiAwLCB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHgxMDAwMC4KLQktIElmIDEsIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDEwMDAwMC4KLQotICBCaXQgNiAod3JpdGUpOiBLRUVQX1NFR01FTlRTCi0JUHJvdG9jb2w6IDIuMDcrCi0JLSBpZiAwLCByZWxvYWQgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGluIHRoZSAzMmJpdCBlbnRyeSBwb2ludC4KLQktIGlmIDEsIGRvIG5vdCByZWxvYWQgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGluIHRoZSAzMmJpdCBlbnRyeSBwb2ludC4KLQkJQXNzdW1lIHRoYXQgJWNzICVkcyAlc3MgJWVzIGFyZSBhbGwgc2V0IHRvIGZsYXQgc2VnbWVudHMgd2l0aAotCQlhIGJhc2Ugb2YgMCAob3IgdGhlIGVxdWl2YWxlbnQgZm9yIHRoZWlyIGVudmlyb25tZW50KS4KLQotICBCaXQgNyAod3JpdGUpOiBDQU5fVVNFX0hFQVAKLQlTZXQgdGhpcyBiaXQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSB2YWx1ZSBlbnRlcmVkIGluIHRoZQotCWhlYXBfZW5kX3B0ciBpcyB2YWxpZC4gIElmIHRoaXMgZmllbGQgaXMgY2xlYXIsIHNvbWUgc2V0dXAgY29kZQotCWZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBkaXNhYmxlZC4KLQotRmllbGQgbmFtZToJc2V0dXBfbW92ZV9zaXplCi1UeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjEyLzIKLVByb3RvY29sOgkyLjAwLTIuMDEKLQotICBXaGVuIHVzaW5nIHByb3RvY29sIDIuMDAgb3IgMi4wMSwgaWYgdGhlIHJlYWwgbW9kZSBrZXJuZWwgaXMgbm90Ci0gIGxvYWRlZCBhdCAweDkwMDAwLCBpdCBnZXRzIG1vdmVkIHRoZXJlIGxhdGVyIGluIHRoZSBsb2FkaW5nCi0gIHNlcXVlbmNlLiAgRmlsbCBpbiB0aGlzIGZpZWxkIGlmIHlvdSB3YW50IGFkZGl0aW9uYWwgZGF0YSAoc3VjaCBhcwotICB0aGUga2VybmVsIGNvbW1hbmQgbGluZSkgbW92ZWQgaW4gYWRkaXRpb24gdG8gdGhlIHJlYWwtbW9kZSBrZXJuZWwKLSAgaXRzZWxmLgotCi0gIFRoZSB1bml0IGlzIGJ5dGVzIHN0YXJ0aW5nIHdpdGggdGhlIGJlZ2lubmluZyBvZiB0aGUgYm9vdCBzZWN0b3IuCi0gIAotICBUaGlzIGZpZWxkIGlzIGNhbiBiZSBpZ25vcmVkIHdoZW4gdGhlIHByb3RvY29sIGlzIDIuMDIgb3IgaGlnaGVyLCBvcgotICBpZiB0aGUgcmVhbC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4OTAwMDAuCi0KLUZpZWxkIG5hbWU6CWNvZGUzMl9zdGFydAotVHlwZToJCW1vZGlmeSAob3B0aW9uYWwsIHJlbG9jKQotT2Zmc2V0L3NpemU6CTB4MjE0LzQKLVByb3RvY29sOgkyLjAwKwotCi0gIFRoZSBhZGRyZXNzIHRvIGp1bXAgdG8gaW4gcHJvdGVjdGVkIG1vZGUuICBUaGlzIGRlZmF1bHRzIHRvIHRoZSBsb2FkCi0gIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbCwgYW5kIGNhbiBiZSB1c2VkIGJ5IHRoZSBib290IGxvYWRlciB0bwotICBkZXRlcm1pbmUgdGhlIHByb3BlciBsb2FkIGFkZHJlc3MuCi0KLSAgVGhpcyBmaWVsZCBjYW4gYmUgbW9kaWZpZWQgZm9yIHR3byBwdXJwb3NlczoKLQotICAxLiBhcyBhIGJvb3QgbG9hZGVyIGhvb2sgKHNlZSBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUyBiZWxvdy4pCi0KLSAgMi4gaWYgYSBib290bG9hZGVyIHdoaWNoIGRvZXMgbm90IGluc3RhbGwgYSBob29rIGxvYWRzIGEKLSAgICAgcmVsb2NhdGFibGUga2VybmVsIGF0IGEgbm9uc3RhbmRhcmQgYWRkcmVzcyBpdCB3aWxsIGhhdmUgdG8gbW9kaWZ5Ci0gICAgIHRoaXMgZmllbGQgdG8gcG9pbnQgdG8gdGhlIGxvYWQgYWRkcmVzcy4KLQotRmllbGQgbmFtZToJcmFtZGlza19pbWFnZQotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjE4LzQKLVByb3RvY29sOgkyLjAwKwotCi0gIFRoZSAzMi1iaXQgbGluZWFyIGFkZHJlc3Mgb2YgdGhlIGluaXRpYWwgcmFtZGlzayBvciByYW1mcy4gIExlYXZlIGF0Ci0gIHplcm8gaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCByYW1kaXNrL3JhbWZzLgotCi1GaWVsZCBuYW1lOglyYW1kaXNrX3NpemUKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIxYy80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBTaXplIG9mIHRoZSBpbml0aWFsIHJhbWRpc2sgb3IgcmFtZnMuICBMZWF2ZSBhdCB6ZXJvIGlmIHRoZXJlIGlzIG5vCi0gIGluaXRpYWwgcmFtZGlzay9yYW1mcy4KLQotRmllbGQgbmFtZToJYm9vdHNlY3Rfa2x1ZGdlCi1UeXBlOgkJa2VybmVsIGludGVybmFsCi1PZmZzZXQvc2l6ZToJMHgyMjAvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgVGhpcyBmaWVsZCBpcyBvYnNvbGV0ZS4KLQotRmllbGQgbmFtZToJaGVhcF9lbmRfcHRyCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMjQvMgotUHJvdG9jb2w6CTIuMDErCi0KLSAgU2V0IHRoaXMgZmllbGQgdG8gdGhlIG9mZnNldCAoZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWFsLW1vZGUKLSAgY29kZSkgb2YgdGhlIGVuZCBvZiB0aGUgc2V0dXAgc3RhY2svaGVhcCwgbWludXMgMHgwMjAwLgotCi1GaWVsZCBuYW1lOgljbWRfbGluZV9wdHIKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIyOC80Ci1Qcm90b2NvbDoJMi4wMisKLQotICBTZXQgdGhpcyBmaWVsZCB0byB0aGUgbGluZWFyIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCi0gIFRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGNhbiBiZSBsb2NhdGVkIGFueXdoZXJlIGJldHdlZW4gdGhlIGVuZCBvZgotICB0aGUgc2V0dXAgaGVhcCBhbmQgMHhBMDAwMDsgaXQgZG9lcyBub3QgaGF2ZSB0byBiZSBsb2NhdGVkIGluIHRoZQotICBzYW1lIDY0SyBzZWdtZW50IGFzIHRoZSByZWFsLW1vZGUgY29kZSBpdHNlbGYuCi0KLSAgRmlsbCBpbiB0aGlzIGZpZWxkIGV2ZW4gaWYgeW91ciBib290IGxvYWRlciBkb2VzIG5vdCBzdXBwb3J0IGEKLSAgY29tbWFuZCBsaW5lLCBpbiB3aGljaCBjYXNlIHlvdSBjYW4gcG9pbnQgdGhpcyB0byBhbiBlbXB0eSBzdHJpbmcKLSAgKG9yIGJldHRlciB5ZXQsIHRvIHRoZSBzdHJpbmcgImF1dG8iLikgIElmIHRoaXMgZmllbGQgaXMgbGVmdCBhdAotICB6ZXJvLCB0aGUga2VybmVsIHdpbGwgYXNzdW1lIHRoYXQgeW91ciBib290IGxvYWRlciBkb2VzIG5vdCBzdXBwb3J0Ci0gIHRoZSAyLjAyKyBwcm90b2NvbC4KLQotRmllbGQgbmFtZToJaW5pdHJkX2FkZHJfbWF4Ci1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjJjLzQKLVByb3RvY29sOgkyLjAzKwotCi0gIFRoZSBtYXhpbXVtIGFkZHJlc3MgdGhhdCBtYXkgYmUgb2NjdXBpZWQgYnkgdGhlIGluaXRpYWwKLSAgcmFtZGlzay9yYW1mcyBjb250ZW50cy4gIEZvciBib290IHByb3RvY29scyAyLjAyIG9yIGVhcmxpZXIsIHRoaXMKLSAgZmllbGQgaXMgbm90IHByZXNlbnQsIGFuZCB0aGUgbWF4aW11bSBhZGRyZXNzIGlzIDB4MzdGRkZGRkYuICAoVGhpcwotICBhZGRyZXNzIGlzIGRlZmluZWQgYXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGhpZ2hlc3Qgc2FmZSBieXRlLCBzbyBpZgotICB5b3VyIHJhbWRpc2sgaXMgZXhhY3RseSAxMzEwNzIgYnl0ZXMgbG9uZyBhbmQgdGhpcyBmaWVsZCBpcwotICAweDM3RkZGRkZGLCB5b3UgY2FuIHN0YXJ0IHlvdXIgcmFtZGlzayBhdCAweDM3RkUwMDAwLikKLQotRmllbGQgbmFtZToJa2VybmVsX2FsaWdubWVudAotVHlwZToJCXJlYWQgKHJlbG9jKQotT2Zmc2V0L3NpemU6CTB4MjMwLzQKLVByb3RvY29sOgkyLjA1KwotCi0gIEFsaWdubWVudCB1bml0IHJlcXVpcmVkIGJ5IHRoZSBrZXJuZWwgKGlmIHJlbG9jYXRhYmxlX2tlcm5lbCBpcyB0cnVlLikKLQotRmllbGQgbmFtZToJcmVsb2NhdGFibGVfa2VybmVsCi1UeXBlOgkJcmVhZCAocmVsb2MpCi1PZmZzZXQvc2l6ZToJMHgyMzQvMQotUHJvdG9jb2w6CTIuMDUrCi0KLSAgSWYgdGhpcyBmaWVsZCBpcyBub256ZXJvLCB0aGUgcHJvdGVjdGVkLW1vZGUgcGFydCBvZiB0aGUga2VybmVsIGNhbgotICBiZSBsb2FkZWQgYXQgYW55IGFkZHJlc3MgdGhhdCBzYXRpc2ZpZXMgdGhlIGtlcm5lbF9hbGlnbm1lbnQgZmllbGQuCi0gIEFmdGVyIGxvYWRpbmcsIHRoZSBib290IGxvYWRlciBtdXN0IHNldCB0aGUgY29kZTMyX3N0YXJ0IGZpZWxkIHRvCi0gIHBvaW50IHRvIHRoZSBsb2FkZWQgY29kZSwgb3IgdG8gYSBib290IGxvYWRlciBob29rLgotCi1GaWVsZCBuYW1lOgljbWRsaW5lX3NpemUKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMzgvNAotUHJvdG9jb2w6CTIuMDYrCi0KLSAgVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgY29tbWFuZCBsaW5lIHdpdGhvdXQgdGhlIHRlcm1pbmF0aW5nCi0gIHplcm8uIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29tbWFuZCBsaW5lIGNhbiBjb250YWluIGF0IG1vc3QKLSAgY21kbGluZV9zaXplIGNoYXJhY3RlcnMuIFdpdGggcHJvdG9jb2wgdmVyc2lvbiAyLjA1IGFuZCBlYXJsaWVyLCB0aGUKLSAgbWF4aW11bSBzaXplIHdhcyAyNTUuCi0KLUZpZWxkIG5hbWU6CWhhcmR3YXJlX3N1YmFyY2gKLVR5cGU6CQl3cml0ZQotT2Zmc2V0L3NpemU6CTB4MjNjLzQKLVByb3RvY29sOgkyLjA3KwotCi0gIEluIGEgcGFyYXZpcnR1YWxpemVkIGVudmlyb25tZW50IHRoZSBoYXJkd2FyZSBsb3cgbGV2ZWwgYXJjaGl0ZWN0dXJhbAotICBwaWVjZXMgc3VjaCBhcyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHBhZ2UgdGFibGUgaGFuZGxpbmcsIGFuZAotICBhY2Nlc3NpbmcgcHJvY2VzcyBjb250cm9sIHJlZ2lzdGVycyBuZWVkcyB0byBiZSBkb25lIGRpZmZlcmVudGx5LgotCi0gIFRoaXMgZmllbGQgYWxsb3dzIHRoZSBib290bG9hZGVyIHRvIGluZm9ybSB0aGUga2VybmVsIHdlIGFyZSBpbiBvbmUKLSAgb25lIG9mIHRob3NlIGVudmlyb25tZW50cy4KLQotICAweDAwMDAwMDAwCVRoZSBkZWZhdWx0IHg4Ni9QQyBlbnZpcm9ubWVudAotICAweDAwMDAwMDAxCWxndWVzdAotICAweDAwMDAwMDAyCVhlbgotCi1GaWVsZCBuYW1lOgloYXJkd2FyZV9zdWJhcmNoX2RhdGEKLVR5cGU6CQl3cml0ZQotT2Zmc2V0L3NpemU6CTB4MjQwLzgKLVByb3RvY29sOgkyLjA3KwotCi0gIEEgcG9pbnRlciB0byBkYXRhIHRoYXQgaXMgc3BlY2lmaWMgdG8gaGFyZHdhcmUgc3ViYXJjaAotCi1GaWVsZCBuYW1lOglwYXlsb2FkX29mZnNldAotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDI0OC80Ci1Qcm90b2NvbDoJMi4wOCsKLQotICBJZiBub24temVybyB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgdGhlCi0gIHJlYWwtbW9kZSBjb2RlIHRvIHRoZSBwYXlsb2FkLgotCi0gIFRoZSBwYXlsb2FkIG1heSBiZSBjb21wcmVzc2VkLiBUaGUgZm9ybWF0IG9mIGJvdGggdGhlIGNvbXByZXNzZWQgYW5kCi0gIHVuY29tcHJlc3NlZCBkYXRhIHNob3VsZCBiZSBkZXRlcm1pbmVkIHVzaW5nIHRoZSBzdGFuZGFyZCBtYWdpYwotICBudW1iZXJzLiBDdXJyZW50bHkgb25seSBnemlwIGNvbXByZXNzZWQgRUxGIGlzIHVzZWQuCi0gIAotRmllbGQgbmFtZToJcGF5bG9hZF9sZW5ndGgKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyNGMvNAotUHJvdG9jb2w6CTIuMDgrCi0KLSAgVGhlIGxlbmd0aCBvZiB0aGUgcGF5bG9hZC4KLQotKioqKiBUSEUgSU1BR0UgQ0hFQ0tTVU0KLQotRnJvbSBib290IHByb3RvY29sIHZlcnNpb24gMi4wOCBvbndhcmRzIHRoZSBDUkMtMzIgaXMgY2FsY3VsYXRlZCBvdmVyCi10aGUgZW50aXJlIGZpbGUgdXNpbmcgdGhlIGNoYXJhY3RlcmlzdGljIHBvbHlub21pYWwgMHgwNEMxMURCNyBhbmQgYW4KLWluaXRpYWwgcmVtYWluZGVyIG9mIDB4ZmZmZmZmZmYuICBUaGUgY2hlY2tzdW0gaXMgYXBwZW5kZWQgdG8gdGhlCi1maWxlOyB0aGVyZWZvcmUgdGhlIENSQyBvZiB0aGUgZmlsZSB1cCB0byB0aGUgbGltaXQgc3BlY2lmaWVkIGluIHRoZQotc3lzc2l6ZSBmaWVsZCBvZiB0aGUgaGVhZGVyIGlzIGFsd2F5cyAwLgotCi0qKioqIFRIRSBLRVJORUwgQ09NTUFORCBMSU5FCi0KLVRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGhhcyBiZWNvbWUgYW4gaW1wb3J0YW50IHdheSBmb3IgdGhlIGJvb3QKLWxvYWRlciB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBrZXJuZWwuICBTb21lIG9mIGl0cyBvcHRpb25zIGFyZSBhbHNvCi1yZWxldmFudCB0byB0aGUgYm9vdCBsb2FkZXIgaXRzZWxmLCBzZWUgInNwZWNpYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMiCi1iZWxvdy4KLQotVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgaXMgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLiBUaGUgbWF4aW11bQotbGVuZ3RoIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgZmllbGQgY21kbGluZV9zaXplLiAgQmVmb3JlIHByb3RvY29sCi12ZXJzaW9uIDIuMDYsIHRoZSBtYXhpbXVtIHdhcyAyNTUgY2hhcmFjdGVycy4gIEEgc3RyaW5nIHRoYXQgaXMgdG9vCi1sb25nIHdpbGwgYmUgYXV0b21hdGljYWxseSB0cnVuY2F0ZWQgYnkgdGhlIGtlcm5lbC4KLQotSWYgdGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiBpcyAyLjAyIG9yIGxhdGVyLCB0aGUgYWRkcmVzcyBvZiB0aGUKLWtlcm5lbCBjb21tYW5kIGxpbmUgaXMgZ2l2ZW4gYnkgdGhlIGhlYWRlciBmaWVsZCBjbWRfbGluZV9wdHIgKHNlZQotYWJvdmUuKSAgVGhpcyBhZGRyZXNzIGNhbiBiZSBhbnl3aGVyZSBiZXR3ZWVuIHRoZSBlbmQgb2YgdGhlIHNldHVwCi1oZWFwIGFuZCAweEEwMDAwLgotCi1JZiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpcyAqbm90KiAyLjAyIG9yIGhpZ2hlciwgdGhlIGtlcm5lbAotY29tbWFuZCBsaW5lIGlzIGVudGVyZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBwcm90b2NvbDoKLQotCUF0IG9mZnNldCAweDAwMjAgKHdvcmQpLCAiY21kX2xpbmVfbWFnaWMiLCBlbnRlciB0aGUgbWFnaWMKLQludW1iZXIgMHhBMzNGLgotCi0JQXQgb2Zmc2V0IDB4MDAyMiAod29yZCksICJjbWRfbGluZV9vZmZzZXQiLCBlbnRlciB0aGUgb2Zmc2V0Ci0Jb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgKHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUKLQlyZWFsLW1vZGUga2VybmVsKS4KLQkKLQlUaGUga2VybmVsIGNvbW1hbmQgbGluZSAqbXVzdCogYmUgd2l0aGluIHRoZSBtZW1vcnkgcmVnaW9uCi0JY292ZXJlZCBieSBzZXR1cF9tb3ZlX3NpemUsIHNvIHlvdSBtYXkgbmVlZCB0byBhZGp1c3QgdGhpcwotCWZpZWxkLgotCi1GaWVsZCBuYW1lOglzZXR1cF9kYXRhCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyNTAvOAotUHJvdG9jb2w6CTIuMDkrCi0KLSAgVGhlIDY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIE5VTEwgdGVybWluYXRlZCBzaW5nbGUgbGlua2VkIGxpc3Qgb2YKLSAgc3RydWN0IHNldHVwX2RhdGEuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSBtb3JlIGV4dGVuc2libGUgYm9vdAotICBwYXJhbWV0ZXJzIHBhc3NpbmcgbWVjaGFuaXNtLiBUaGUgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc2V0dXBfZGF0YSBpcwotICBhcyBmb2xsb3c6Ci0KLSAgc3RydWN0IHNldHVwX2RhdGEgewotCSAgdTY0IG5leHQ7Ci0JICB1MzIgdHlwZTsKLQkgIHUzMiBsZW47Ci0JICB1OCAgZGF0YVswXTsKLSAgfTsKLQotICBXaGVyZSwgdGhlIG5leHQgaXMgYSA2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byB0aGUgbmV4dCBub2RlIG9mCi0gIGxpbmtlZCBsaXN0LCB0aGUgbmV4dCBmaWVsZCBvZiB0aGUgbGFzdCBub2RlIGlzIDA7IHRoZSB0eXBlIGlzIHVzZWQKLSAgdG8gaWRlbnRpZnkgdGhlIGNvbnRlbnRzIG9mIGRhdGE7IHRoZSBsZW4gaXMgdGhlIGxlbmd0aCBvZiBkYXRhCi0gIGZpZWxkOyB0aGUgZGF0YSBob2xkcyB0aGUgcmVhbCBwYXlsb2FkLgotCi0KLSoqKiogTUVNT1JZIExBWU9VVCBPRiBUSEUgUkVBTC1NT0RFIENPREUKLQotVGhlIHJlYWwtbW9kZSBjb2RlIHJlcXVpcmVzIGEgc3RhY2svaGVhcCB0byBiZSBzZXQgdXAsIGFzIHdlbGwgYXMKLW1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLiAgVGhpcyBuZWVkcyB0byBiZSBkb25lCi1pbiB0aGUgcmVhbC1tb2RlIGFjY2Vzc2libGUgbWVtb3J5IGluIGJvdHRvbSBtZWdhYnl0ZS4KLQotSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgbW9kZXJuIG1hY2hpbmVzIG9mdGVuIGhhdmUgYSBzaXphYmxlIEV4dGVuZGVkCi1CSU9TIERhdGEgQXJlYSAoRUJEQSkuICBBcyBhIHJlc3VsdCwgaXQgaXMgYWR2aXNhYmxlIHRvIHVzZSBhcyBsaXR0bGUKLW9mIHRoZSBsb3cgbWVnYWJ5dGUgYXMgcG9zc2libGUuCi0KLVVuZm9ydHVuYXRlbHksIHVuZGVyIHRoZSBmb2xsb3dpbmcgY2lyY3Vtc3RhbmNlcyB0aGUgMHg5MDAwMCBtZW1vcnkKLXNlZ21lbnQgaGFzIHRvIGJlIHVzZWQ6Ci0KLQktIFdoZW4gbG9hZGluZyBhIHpJbWFnZSBrZXJuZWwgKChsb2FkZmxhZ3MgJiAweDAxKSA9PSAwKS4KLQktIFdoZW4gbG9hZGluZyBhIDIuMDEgb3IgZWFybGllciBib290IHByb3RvY29sIGtlcm5lbC4KLQotCSAgLT4gRm9yIHRoZSAyLjAwIGFuZCAyLjAxIGJvb3QgcHJvdG9jb2xzLCB0aGUgcmVhbC1tb2RlIGNvZGUKLQkgICAgIGNhbiBiZSBsb2FkZWQgYXQgYW5vdGhlciBhZGRyZXNzLCBidXQgaXQgaXMgaW50ZXJuYWxseQotCSAgICAgcmVsb2NhdGVkIHRvIDB4OTAwMDAuICBGb3IgdGhlICJvbGQiIHByb3RvY29sLCB0aGUKLQkgICAgIHJlYWwtbW9kZSBjb2RlIG11c3QgYmUgbG9hZGVkIGF0IDB4OTAwMDAuCi0KLVdoZW4gbG9hZGluZyBhdCAweDkwMDAwLCBhdm9pZCB1c2luZyBtZW1vcnkgYWJvdmUgMHg5YTAwMC4KLQotRm9yIGJvb3QgcHJvdG9jb2wgMi4wMiBvciBoaWdoZXIsIHRoZSBjb21tYW5kIGxpbmUgZG9lcyBub3QgaGF2ZSB0byBiZQotbG9jYXRlZCBpbiB0aGUgc2FtZSA2NEsgc2VnbWVudCBhcyB0aGUgcmVhbC1tb2RlIHNldHVwIGNvZGU7IGl0IGlzCi10aHVzIHBlcm1pdHRlZCB0byBnaXZlIHRoZSBzdGFjay9oZWFwIHRoZSBmdWxsIDY0SyBzZWdtZW50IGFuZCBsb2NhdGUKLXRoZSBjb21tYW5kIGxpbmUgYWJvdmUgaXQuCi0KLVRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIHNob3VsZCBub3QgYmUgbG9jYXRlZCBiZWxvdyB0aGUgcmVhbC1tb2RlCi1jb2RlLCBub3Igc2hvdWxkIGl0IGJlIGxvY2F0ZWQgaW4gaGlnaCBtZW1vcnkuCi0KLQotKioqKiBTQU1QTEUgQk9PVCBDT05GSUdVUkFUSU9OCi0KLUFzIGEgc2FtcGxlIGNvbmZpZ3VyYXRpb24sIGFzc3VtZSB0aGUgZm9sbG93aW5nIGxheW91dCBvZiB0aGUgcmVhbAotbW9kZSBzZWdtZW50OgotCi0gICAgV2hlbiBsb2FkaW5nIGJlbG93IDB4OTAwMDAsIHVzZSB0aGUgZW50aXJlIHNlZ21lbnQ6Ci0KLQkweDAwMDAtMHg3ZmZmCVJlYWwgbW9kZSBrZXJuZWwKLQkweDgwMDAtMHhkZmZmCVN0YWNrIGFuZCBoZWFwCi0JMHhlMDAwLTB4ZmZmZglLZXJuZWwgY29tbWFuZCBsaW5lCi0KLSAgICBXaGVuIGxvYWRpbmcgYXQgMHg5MDAwMCBPUiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpcyAyLjAxIG9yIGVhcmxpZXI6Ci0KLQkweDAwMDAtMHg3ZmZmCVJlYWwgbW9kZSBrZXJuZWwKLQkweDgwMDAtMHg5N2ZmCVN0YWNrIGFuZCBoZWFwCi0JMHg5ODAwLTB4OWZmZglLZXJuZWwgY29tbWFuZCBsaW5lCi0KLVN1Y2ggYSBib290IGxvYWRlciBzaG91bGQgZW50ZXIgdGhlIGZvbGxvd2luZyBmaWVsZHMgaW4gdGhlIGhlYWRlcjoKLQotCXVuc2lnbmVkIGxvbmcgYmFzZV9wdHI7CS8qIGJhc2UgYWRkcmVzcyBmb3IgcmVhbC1tb2RlIHNlZ21lbnQgKi8KLQotCWlmICggc2V0dXBfc2VjdHMgPT0gMCApIHsKLQkJc2V0dXBfc2VjdHMgPSA0OwotCX0KLQotCWlmICggcHJvdG9jb2wgPj0gMHgwMjAwICkgewotCQl0eXBlX29mX2xvYWRlciA9IDx0eXBlIGNvZGU+OwotCQlpZiAoIGxvYWRpbmdfaW5pdHJkICkgewotCQkJcmFtZGlza19pbWFnZSA9IDxpbml0cmRfYWRkcmVzcz47Ci0JCQlyYW1kaXNrX3NpemUgPSA8aW5pdHJkX3NpemU+OwotCQl9Ci0KLQkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDIgJiYgbG9hZGZsYWdzICYgMHgwMSApCi0JCQloZWFwX2VuZCA9IDB4ZTAwMDsKLQkJZWxzZQotCQkJaGVhcF9lbmQgPSAweDk4MDA7Ci0KLQkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDEgKSB7Ci0JCQloZWFwX2VuZF9wdHIgPSBoZWFwX2VuZCAtIDB4MjAwOwotCQkJbG9hZGZsYWdzIHw9IDB4ODA7IC8qIENBTl9VU0VfSEVBUCAqLwotCQl9Ci0KLQkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDIgKSB7Ci0JCQljbWRfbGluZV9wdHIgPSBiYXNlX3B0ciArIGhlYXBfZW5kOwotCQkJc3RyY3B5KGNtZF9saW5lX3B0ciwgY21kbGluZSk7Ci0JCX0gZWxzZSB7Ci0JCQljbWRfbGluZV9tYWdpYwk9IDB4QTMzRjsKLQkJCWNtZF9saW5lX29mZnNldCA9IGhlYXBfZW5kOwotCQkJc2V0dXBfbW92ZV9zaXplID0gaGVhcF9lbmQgKyBzdHJsZW4oY21kbGluZSkrMTsKLQkJCXN0cmNweShiYXNlX3B0citjbWRfbGluZV9vZmZzZXQsIGNtZGxpbmUpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogVmVyeSBvbGQga2VybmVsICovCi0KLQkJaGVhcF9lbmQgPSAweDk4MDA7Ci0KLQkJY21kX2xpbmVfbWFnaWMJPSAweEEzM0Y7Ci0JCWNtZF9saW5lX29mZnNldCA9IGhlYXBfZW5kOwotCi0JCS8qIEEgdmVyeSBvbGQga2VybmVsIE1VU1QgaGF2ZSBpdHMgcmVhbC1tb2RlIGNvZGUKLQkJICAgbG9hZGVkIGF0IDB4OTAwMDAgKi8KLQotCQlpZiAoIGJhc2VfcHRyICE9IDB4OTAwMDAgKSB7Ci0JCQkvKiBDb3B5IHRoZSByZWFsLW1vZGUga2VybmVsICovCi0JCQltZW1jcHkoMHg5MDAwMCwgYmFzZV9wdHIsIChzZXR1cF9zZWN0cysxKSo1MTIpOwotCQkJYmFzZV9wdHIgPSAweDkwMDAwOwkJIC8qIFJlbG9jYXRlZCAqLwotCQl9Ci0KLQkJc3RyY3B5KDB4OTAwMDArY21kX2xpbmVfb2Zmc2V0LCBjbWRsaW5lKTsKLQotCQkvKiBJdCBpcyByZWNvbW1lbmRlZCB0byBjbGVhciBtZW1vcnkgdXAgdG8gdGhlIDMySyBtYXJrICovCi0JCW1lbXNldCgweDkwMDAwICsgKHNldHVwX3NlY3RzKzEpKjUxMiwgMCwKLQkJICAgICAgICg2NC0oc2V0dXBfc2VjdHMrMSkpKjUxMik7Ci0JfQotCi0KLSoqKiogTE9BRElORyBUSEUgUkVTVCBPRiBUSEUgS0VSTkVMCi0KLVRoZSAzMi1iaXQgKG5vbi1yZWFsLW1vZGUpIGtlcm5lbCBzdGFydHMgYXQgb2Zmc2V0IChzZXR1cF9zZWN0cysxKSo1MTIKLWluIHRoZSBrZXJuZWwgZmlsZSAoYWdhaW4sIGlmIHNldHVwX3NlY3RzID09IDAgdGhlIHJlYWwgdmFsdWUgaXMgNC4pCi1JdCBzaG91bGQgYmUgbG9hZGVkIGF0IGFkZHJlc3MgMHgxMDAwMCBmb3IgSW1hZ2UvekltYWdlIGtlcm5lbHMgYW5kCi0weDEwMDAwMCBmb3IgYnpJbWFnZSBrZXJuZWxzLgotCi1UaGUga2VybmVsIGlzIGEgYnpJbWFnZSBrZXJuZWwgaWYgdGhlIHByb3RvY29sID49IDIuMDAgYW5kIHRoZSAweDAxCi1iaXQgKExPQURfSElHSCkgaW4gdGhlIGxvYWRmbGFncyBmaWVsZCBpcyBzZXQ6Ci0KLQlpc19iekltYWdlID0gKHByb3RvY29sID49IDB4MDIwMCkgJiYgKGxvYWRmbGFncyAmIDB4MDEpOwotCWxvYWRfYWRkcmVzcyA9IGlzX2J6SW1hZ2UgPyAweDEwMDAwMCA6IDB4MTAwMDA7Ci0KLU5vdGUgdGhhdCBJbWFnZS96SW1hZ2Uga2VybmVscyBjYW4gYmUgdXAgdG8gNTEySyBpbiBzaXplLCBhbmQgdGh1cyB1c2UKLXRoZSBlbnRpcmUgMHgxMDAwMC0weDkwMDAwIHJhbmdlIG9mIG1lbW9yeS4gIFRoaXMgbWVhbnMgaXQgaXMgcHJldHR5Ci1tdWNoIGEgcmVxdWlyZW1lbnQgZm9yIHRoZXNlIGtlcm5lbHMgdG8gbG9hZCB0aGUgcmVhbC1tb2RlIHBhcnQgYXQKLTB4OTAwMDAuICBiekltYWdlIGtlcm5lbHMgYWxsb3cgbXVjaCBtb3JlIGZsZXhpYmlsaXR5LgotCi0KLSoqKiogU1BFQ0lBTCBDT01NQU5EIExJTkUgT1BUSU9OUwotCi1JZiB0aGUgY29tbWFuZCBsaW5lIHByb3ZpZGVkIGJ5IHRoZSBib290IGxvYWRlciBpcyBlbnRlcmVkIGJ5IHRoZQotdXNlciwgdGhlIHVzZXIgbWF5IGV4cGVjdCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIHdvcmsuCi1UaGV5IHNob3VsZCBub3JtYWxseSBub3QgYmUgZGVsZXRlZCBmcm9tIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGV2ZW4KLXRob3VnaCBub3QgYWxsIG9mIHRoZW0gYXJlIGFjdHVhbGx5IG1lYW5pbmdmdWwgdG8gdGhlIGtlcm5lbC4gIEJvb3QKLWxvYWRlciBhdXRob3JzIHdobyBuZWVkIGFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRoZSBib290Ci1sb2FkZXIgaXRzZWxmIHNob3VsZCBnZXQgdGhlbSByZWdpc3RlcmVkIGluCi1Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCB0byBtYWtlIHN1cmUgdGhleSB3aWxsIG5vdAotY29uZmxpY3Qgd2l0aCBhY3R1YWwga2VybmVsIG9wdGlvbnMgbm93IG9yIGluIHRoZSBmdXR1cmUuCi0KLSAgdmdhPTxtb2RlPgotCTxtb2RlPiBoZXJlIGlzIGVpdGhlciBhbiBpbnRlZ2VyIChpbiBDIG5vdGF0aW9uLCBlaXRoZXIKLQlkZWNpbWFsLCBvY3RhbCwgb3IgaGV4YWRlY2ltYWwpIG9yIG9uZSBvZiB0aGUgc3RyaW5ncwotCSJub3JtYWwiIChtZWFuaW5nIDB4RkZGRiksICJleHQiIChtZWFuaW5nIDB4RkZGRSkgb3IgImFzayIKLQkobWVhbmluZyAweEZGRkQpLiAgVGhpcyB2YWx1ZSBzaG91bGQgYmUgZW50ZXJlZCBpbnRvIHRoZQotCXZpZF9tb2RlIGZpZWxkLCBhcyBpdCBpcyB1c2VkIGJ5IHRoZSBrZXJuZWwgYmVmb3JlIHRoZSBjb21tYW5kCi0JbGluZSBpcyBwYXJzZWQuCi0KLSAgbWVtPTxzaXplPgotCTxzaXplPiBpcyBhbiBpbnRlZ2VyIGluIEMgbm90YXRpb24gb3B0aW9uYWxseSBmb2xsb3dlZCBieQotCShjYXNlIGluc2Vuc2l0aXZlKSBLLCBNLCBHLCBULCBQIG9yIEUgKG1lYW5pbmcgPDwgMTAsIDw8IDIwLAotCTw8IDMwLCA8PCA0MCwgPDwgNTAgb3IgPDwgNjApLiAgVGhpcyBzcGVjaWZpZXMgdGhlIGVuZCBvZgotCW1lbW9yeSB0byB0aGUga2VybmVsLiBUaGlzIGFmZmVjdHMgdGhlIHBvc3NpYmxlIHBsYWNlbWVudCBvZgotCWFuIGluaXRyZCwgc2luY2UgYW4gaW5pdHJkIHNob3VsZCBiZSBwbGFjZWQgbmVhciBlbmQgb2YKLQltZW1vcnkuICBOb3RlIHRoYXQgdGhpcyBpcyBhbiBvcHRpb24gdG8gKmJvdGgqIHRoZSBrZXJuZWwgYW5kCi0JdGhlIGJvb3Rsb2FkZXIhCi0KLSAgaW5pdHJkPTxmaWxlPgotCUFuIGluaXRyZCBzaG91bGQgYmUgbG9hZGVkLiAgVGhlIG1lYW5pbmcgb2YgPGZpbGU+IGlzCi0Jb2J2aW91c2x5IGJvb3Rsb2FkZXItZGVwZW5kZW50LCBhbmQgc29tZSBib290IGxvYWRlcnMKLQkoZS5nLiBMSUxPKSBkbyBub3QgaGF2ZSBzdWNoIGEgY29tbWFuZC4KLQotSW4gYWRkaXRpb24sIHNvbWUgYm9vdCBsb2FkZXJzIGFkZCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlCi11c2VyLXNwZWNpZmllZCBjb21tYW5kIGxpbmU6Ci0KLSAgQk9PVF9JTUFHRT08ZmlsZT4KLQlUaGUgYm9vdCBpbWFnZSB3aGljaCB3YXMgbG9hZGVkLiAgQWdhaW4sIHRoZSBtZWFuaW5nIG9mIDxmaWxlPgotCWlzIG9idmlvdXNseSBib290bG9hZGVyLWRlcGVuZGVudC4KLQotICBhdXRvCi0JVGhlIGtlcm5lbCB3YXMgYm9vdGVkIHdpdGhvdXQgZXhwbGljaXQgdXNlciBpbnRlcnZlbnRpb24uCi0KLUlmIHRoZXNlIG9wdGlvbnMgYXJlIGFkZGVkIGJ5IHRoZSBib290IGxvYWRlciwgaXQgaXMgaGlnaGx5Ci1yZWNvbW1lbmRlZCB0aGF0IHRoZXkgYXJlIGxvY2F0ZWQgKmZpcnN0KiwgYmVmb3JlIHRoZSB1c2VyLXNwZWNpZmllZAotb3IgY29uZmlndXJhdGlvbi1zcGVjaWZpZWQgY29tbWFuZCBsaW5lLiAgT3RoZXJ3aXNlLCAiaW5pdD0vYmluL3NoIgotZ2V0cyBjb25mdXNlZCBieSB0aGUgImF1dG8iIG9wdGlvbi4KLQotCi0qKioqIFJVTk5JTkcgVEhFIEtFUk5FTAotCi1UaGUga2VybmVsIGlzIHN0YXJ0ZWQgYnkganVtcGluZyB0byB0aGUga2VybmVsIGVudHJ5IHBvaW50LCB3aGljaCBpcwotbG9jYXRlZCBhdCAqc2VnbWVudCogb2Zmc2V0IDB4MjAgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHJlYWwgbW9kZQota2VybmVsLiAgVGhpcyBtZWFucyB0aGF0IGlmIHlvdSBsb2FkZWQgeW91ciByZWFsLW1vZGUga2VybmVsIGNvZGUgYXQKLTB4OTAwMDAsIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQgaXMgOTAyMDowMDAwLgotCi1BdCBlbnRyeSwgZHMgPSBlcyA9IHNzIHNob3VsZCBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHJlYWwtbW9kZQota2VybmVsIGNvZGUgKDB4OTAwMCBpZiB0aGUgY29kZSBpcyBsb2FkZWQgYXQgMHg5MDAwMCksIHNwIHNob3VsZCBiZQotc2V0IHVwIHByb3Blcmx5LCBub3JtYWxseSBwb2ludGluZyB0byB0aGUgdG9wIG9mIHRoZSBoZWFwLCBhbmQKLWludGVycnVwdHMgc2hvdWxkIGJlIGRpc2FibGVkLiAgRnVydGhlcm1vcmUsIHRvIGd1YXJkIGFnYWluc3QgYnVncyBpbgotdGhlIGtlcm5lbCwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgYm9vdCBsb2FkZXIgc2V0cyBmcyA9IGdzID0gZHMgPQotZXMgPSBzcy4KLQotSW4gb3VyIGV4YW1wbGUgZnJvbSBhYm92ZSwgd2Ugd291bGQgZG86Ci0KLQkvKiBOb3RlOiBpbiB0aGUgY2FzZSBvZiB0aGUgIm9sZCIga2VybmVsIHByb3RvY29sLCBiYXNlX3B0ciBtdXN0Ci0JICAgYmUgPT0gMHg5MDAwMCBhdCB0aGlzIHBvaW50OyBzZWUgdGhlIHByZXZpb3VzIHNhbXBsZSBjb2RlICovCi0KLQlzZWcgPSBiYXNlX3B0ciA+PiA0OwotCi0JY2xpKCk7CS8qIEVudGVyIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCEgKi8KLQotCS8qIFNldCB1cCB0aGUgcmVhbC1tb2RlIGtlcm5lbCBzdGFjayAqLwotCV9TUyA9IHNlZzsKLQlfU1AgPSBoZWFwX2VuZDsKLQotCV9EUyA9IF9FUyA9IF9GUyA9IF9HUyA9IHNlZzsKLQlqbXBfZmFyKHNlZysweDIwLCAwKTsJLyogUnVuIHRoZSBrZXJuZWwgKi8KLQotSWYgeW91ciBib290IHNlY3RvciBhY2Nlc3NlcyBhIGZsb3BweSBkcml2ZSwgaXQgaXMgcmVjb21tZW5kZWQgdG8KLXN3aXRjaCBvZmYgdGhlIGZsb3BweSBtb3RvciBiZWZvcmUgcnVubmluZyB0aGUga2VybmVsLCBzaW5jZSB0aGUKLWtlcm5lbCBib290IGxlYXZlcyBpbnRlcnJ1cHRzIG9mZiBhbmQgdGh1cyB0aGUgbW90b3Igd2lsbCBub3QgYmUKLXN3aXRjaGVkIG9mZiwgZXNwZWNpYWxseSBpZiB0aGUgbG9hZGVkIGtlcm5lbCBoYXMgdGhlIGZsb3BweSBkcml2ZXIgYXMKLWEgZGVtYW5kLWxvYWRlZCBtb2R1bGUhCi0KLQotKioqKiBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUwotCi1JZiB0aGUgYm9vdCBsb2FkZXIgcnVucyBpbiBhIHBhcnRpY3VsYXJseSBob3N0aWxlIGVudmlyb25tZW50IChzdWNoIGFzCi1MT0FETElOLCB3aGljaCBydW5zIHVuZGVyIERPUykgaXQgbWF5IGJlIGltcG9zc2libGUgdG8gZm9sbG93IHRoZQotc3RhbmRhcmQgbWVtb3J5IGxvY2F0aW9uIHJlcXVpcmVtZW50cy4gIFN1Y2ggYSBib290IGxvYWRlciBtYXkgdXNlIHRoZQotZm9sbG93aW5nIGhvb2tzIHRoYXQsIGlmIHNldCwgYXJlIGludm9rZWQgYnkgdGhlIGtlcm5lbCBhdCB0aGUKLWFwcHJvcHJpYXRlIHRpbWUuICBUaGUgdXNlIG9mIHRoZXNlIGhvb2tzIHNob3VsZCBwcm9iYWJseSBiZQotY29uc2lkZXJlZCBhbiBhYnNvbHV0ZWx5IGxhc3QgcmVzb3J0IQotCi1JTVBPUlRBTlQ6IEFsbCB0aGUgaG9va3MgYXJlIHJlcXVpcmVkIHRvIHByZXNlcnZlICVlc3AsICVlYnAsICVlc2kgYW5kCi0lZWRpIGFjcm9zcyBpbnZvY2F0aW9uLgotCi0gIHJlYWxtb2RlX3N3dGNoOgotCUEgMTYtYml0IHJlYWwgbW9kZSBmYXIgc3Vicm91dGluZSBpbnZva2VkIGltbWVkaWF0ZWx5IGJlZm9yZQotCWVudGVyaW5nIHByb3RlY3RlZCBtb2RlLiAgVGhlIGRlZmF1bHQgcm91dGluZSBkaXNhYmxlcyBOTUksIHNvCi0JeW91ciByb3V0aW5lIHNob3VsZCBwcm9iYWJseSBkbyBzbywgdG9vLgotCi0gIGNvZGUzMl9zdGFydDoKLQlBIDMyLWJpdCBmbGF0LW1vZGUgcm91dGluZSAqanVtcGVkKiB0byBpbW1lZGlhdGVseSBhZnRlciB0aGUKLQl0cmFuc2l0aW9uIHRvIHByb3RlY3RlZCBtb2RlLCBidXQgYmVmb3JlIHRoZSBrZXJuZWwgaXMKLQl1bmNvbXByZXNzZWQuICBObyBzZWdtZW50cywgZXhjZXB0IENTLCBhcmUgZ3VhcmFudGVlZCB0byBiZQotCXNldCB1cCAoY3VycmVudCBrZXJuZWxzIGRvLCBidXQgb2xkZXIgb25lcyBkbyBub3QpOyB5b3Ugc2hvdWxkCi0Jc2V0IHRoZW0gdXAgdG8gQk9PVF9EUyAoMHgxOCkgeW91cnNlbGYuCi0KLQlBZnRlciBjb21wbGV0aW5nIHlvdXIgaG9vaywgeW91IHNob3VsZCBqdW1wIHRvIHRoZSBhZGRyZXNzCi0JdGhhdCB3YXMgaW4gdGhpcyBmaWVsZCBiZWZvcmUgeW91ciBib290IGxvYWRlciBvdmVyd3JvdGUgaXQKLQkocmVsb2NhdGVkLCBpZiBhcHByb3ByaWF0ZS4pCi0KLQotKioqKiAzMi1iaXQgQk9PVCBQUk9UT0NPTAotCi1Gb3IgbWFjaGluZSB3aXRoIHNvbWUgbmV3IEJJT1Mgb3RoZXIgdGhhbiBsZWdhY3kgQklPUywgc3VjaCBhcyBFRkksCi1MaW51eEJJT1MsIGV0YywgYW5kIGtleGVjLCB0aGUgMTYtYml0IHJlYWwgbW9kZSBzZXR1cCBjb2RlIGluIGtlcm5lbAotYmFzZWQgb24gbGVnYWN5IEJJT1MgY2FuIG5vdCBiZSB1c2VkLCBzbyBhIDMyLWJpdCBib290IHByb3RvY29sIG5lZWRzCi10byBiZSBkZWZpbmVkLgotCi1JbiAzMi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGZpcnN0IHN0ZXAgaW4gbG9hZGluZyBhIExpbnV4IGtlcm5lbAotc2hvdWxkIGJlIHRvIHNldHVwIHRoZSBib290IHBhcmFtZXRlcnMgKHN0cnVjdCBib290X3BhcmFtcywKLXRyYWRpdGlvbmFsbHkga25vd24gYXMgInplcm8gcGFnZSIpLiBUaGUgbWVtb3J5IGZvciBzdHJ1Y3QgYm9vdF9wYXJhbXMKLXNob3VsZCBiZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHRvIGFsbCB6ZXJvLiBUaGVuIHRoZSBzZXR1cCBoZWFkZXIKLWZyb20gb2Zmc2V0IDB4MDFmMSBvZiBrZXJuZWwgaW1hZ2Ugb24gc2hvdWxkIGJlIGxvYWRlZCBpbnRvIHN0cnVjdAotYm9vdF9wYXJhbXMgYW5kIGV4YW1pbmVkLiBUaGUgZW5kIG9mIHNldHVwIGhlYWRlciBjYW4gYmUgY2FsY3VsYXRlZCBhcwotZm9sbG93OgotCi0JMHgwMjAyICsgYnl0ZSB2YWx1ZSBhdCBvZmZzZXQgMHgwMjAxCi0KLUluIGFkZGl0aW9uIHRvIHJlYWQvbW9kaWZ5L3dyaXRlIHRoZSBzZXR1cCBoZWFkZXIgb2YgdGhlIHN0cnVjdAotYm9vdF9wYXJhbXMgYXMgdGhhdCBvZiAxNi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZAotYWxzbyBmaWxsIHRoZSBhZGRpdGlvbmFsIGZpZWxkcyBvZiB0aGUgc3RydWN0IGJvb3RfcGFyYW1zIGFzIHRoYXQKLWRlc2NyaWJlZCBpbiB6ZXJvLXBhZ2UudHh0LgotCi1BZnRlciBzZXR1cHBpbmcgdGhlIHN0cnVjdCBib290X3BhcmFtcywgdGhlIGJvb3QgbG9hZGVyIGNhbiBsb2FkIHRoZQotMzIvNjQtYml0IGtlcm5lbCBpbiB0aGUgc2FtZSB3YXkgYXMgdGhhdCBvZiAxNi1iaXQgYm9vdCBwcm90b2NvbC4KLQotSW4gMzItYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBrZXJuZWwgaXMgc3RhcnRlZCBieSBqdW1waW5nIHRvIHRoZQotMzItYml0IGtlcm5lbCBlbnRyeSBwb2ludCwgd2hpY2ggaXMgdGhlIHN0YXJ0IGFkZHJlc3Mgb2YgbG9hZGVkCi0zMi82NC1iaXQga2VybmVsLgotCi1BdCBlbnRyeSwgdGhlIENQVSBtdXN0IGJlIGluIDMyLWJpdCBwcm90ZWN0ZWQgbW9kZSB3aXRoIHBhZ2luZwotZGlzYWJsZWQ7IGEgR0RUIG11c3QgYmUgbG9hZGVkIHdpdGggdGhlIGRlc2NyaXB0b3JzIGZvciBzZWxlY3RvcnMKLV9fQk9PVF9DUygweDEwKSBhbmQgX19CT09UX0RTKDB4MTgpOyBib3RoIGRlc2NyaXB0b3JzIG11c3QgYmUgNEcgZmxhdAotc2VnbWVudDsgX19CT09TX0NTIG11c3QgaGF2ZSBleGVjdXRlL3JlYWQgcGVybWlzc2lvbiwgYW5kIF9fQk9PVF9EUwotbXVzdCBoYXZlIHJlYWQvd3JpdGUgcGVybWlzc2lvbjsgQ1MgbXVzdCBiZSBfX0JPT1RfQ1MgYW5kIERTLCBFUywgU1MKLW11c3QgYmUgX19CT09UX0RTOyBpbnRlcnJ1cHQgbXVzdCBiZSBkaXNhYmxlZDsgJWVzaSBtdXN0IGhvbGQgdGhlIGJhc2UKLWFkZHJlc3Mgb2YgdGhlIHN0cnVjdCBib290X3BhcmFtczsgJWVicCwgJWVkaSBhbmQgJWVieCBtdXN0IGJlIHplcm8uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2lvY3RsLW51bWJlci50eHQgYi9Eb2N1bWVudGF0aW9uL2lvY3RsLW51bWJlci50eHQKaW5kZXggMjQwY2U3YS4uM2JiNWY0NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9pb2N0bC1udW1iZXIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vaW9jdGwtbnVtYmVyLnR4dApAQCAtMTE3LDYgKzExNyw3IEBACiAJCQkJCTxtYWlsdG86bmF0YWxpYUBuaWtoZWZrLm5pa2hlZi5ubD4KICdjJwkwMC03RglsaW51eC9jb21zdGF0cy5oCWNvbmZsaWN0IQogJ2MnCTAwLTdGCWxpbnV4L2NvZGEuaAkJY29uZmxpY3QhCisnYycJODAtOUYJYXNtLXMzOTAvY2hzYy5oCiAnZCcJMDAtRkYJbGludXgvY2hhci9kcm0vZHJtL2gJY29uZmxpY3QhCiAnZCcJMDAtREYJbGludXgvdmlkZW9fZGVjb2Rlci5oCWNvbmZsaWN0IQogJ2QnCUYwLUZGCWxpbnV4L2RpZ2kxLmgKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2R1bXAva2R1bXAudHh0IGIvRG9jdW1lbnRhdGlvbi9rZHVtcC9rZHVtcC50eHQKaW5kZXggYjhlNTJjMC4uOTY5MWM3ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9rZHVtcC9rZHVtcC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9rZHVtcC9rZHVtcC50eHQKQEAgLTEwOSw3ICsxMDksNyBAQAogMikgT3IgdXNlIHRoZSBzeXN0ZW0ga2VybmVsIGJpbmFyeSBpdHNlbGYgYXMgZHVtcC1jYXB0dXJlIGtlcm5lbCBhbmQgdGhlcmUgaXMKICAgIG5vIG5lZWQgdG8gYnVpbGQgYSBzZXBhcmF0ZSBkdW1wLWNhcHR1cmUga2VybmVsLiBUaGlzIGlzIHBvc3NpYmxlCiAgICBvbmx5IHdpdGggdGhlIGFyY2hpdGVjdXRyZXMgd2hpY2ggc3VwcG9ydCBhIHJlbG9jYXRhYmxlIGtlcm5lbC4gQXMKLSAgIG9mIHRvZGF5IGkzODYgYW5kIGlhNjQgYXJjaGl0ZWN0dXJlcyBzdXBwb3J0IHJlbG9jYXRhYmxlIGtlcm5lbC4KKyAgIG9mIHRvZGF5LCBpMzg2LCB4ODZfNjQgYW5kIGlhNjQgYXJjaGl0ZWN0dXJlcyBzdXBwb3J0IHJlbG9jYXRhYmxlIGtlcm5lbC4KIAogQnVpbGRpbmcgYSByZWxvY2F0YWJsZSBrZXJuZWwgaXMgYWR2YW50YWdlb3VzIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgdGhhdAogb25lIGRvZXMgbm90IGhhdmUgdG8gYnVpbGQgYSBzZWNvbmQga2VybmVsIGZvciBjYXB0dXJpbmcgdGhlIGR1bXAuIEJ1dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAppbmRleCBlMDdjNDMyLi42ODFkNjE1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dApAQCAtMjcxLDYgKzI3MSwxNyBAQAogCWFpYzc5eHg9CVtIVyxTQ1NJXQogCQkJU2VlIERvY3VtZW50YXRpb24vc2NzaS9haWM3OXh4LnR4dC4KIAorCWFtZF9pb21tdT0JW0hXLFg4Ni04NF0KKwkJCVBhc3MgcGFyYW1ldGVycyB0byB0aGUgQU1EIElPTU1VIGRyaXZlciBpbiB0aGUgc3lzdGVtLgorCQkJUG9zc2libGUgdmFsdWVzIGFyZToKKwkJCWlzb2xhdGUgLSBlbmFibGUgZGV2aWNlIGlzb2xhdGlvbiAoZWFjaCBkZXZpY2UsIGFzIGZhcgorCQkJICAgICAgICAgIGFzIHBvc3NpYmxlLCB3aWxsIGdldCBpdHMgb3duIHByb3RlY3Rpb24KKwkJCSAgICAgICAgICBkb21haW4pCisJYW1kX2lvbW11X3NpemU9IFtIVyxYODYtNjRdCisJCQlEZWZpbmUgdGhlIHNpemUgb2YgdGhlIGFwZXJ0dXJlIGZvciB0aGUgQU1EIElPTU1VCisJCQlkcml2ZXIuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisJCQknMzJNJywgJzY0TScgKGRlZmF1bHQpLCAnMTI4TScsICcyNTZNJywgJzUxMk0nLCAnMUcnCisKIAlhbWlqb3kubWFwPQlbSFcsSk9ZXSBBbWlnYSBqb3lzdGljayBzdXBwb3J0CiAJCQlNYXAgb2YgZGV2aWNlcyBhdHRhY2hlZCB0byBKT1kwREFUIGFuZCBKT1kxREFUCiAJCQlGb3JtYXQ6IDxhPiw8Yj4KQEAgLTI5NSw3ICszMDYsNyBAQAogCQkJd2hlbiBpbml0aWFsaXNpbmcgdGhlIEFQSUMgYW5kIElPLUFQSUMgY29tcG9uZW50cy4KIAogCWFwbT0JCVtBUE1dIEFkdmFuY2VkIFBvd2VyIE1hbmFnZW1lbnQKLQkJCVNlZSBoZWFkZXIgb2YgYXJjaC9pMzg2L2tlcm5lbC9hcG0uYy4KKwkJCVNlZSBoZWFkZXIgb2YgYXJjaC94ODYva2VybmVsL2FwbV8zMi5jLgogCiAJYXJjcmltaT0JW0hXLE5FVF0gQVJDbmV0IC0gIlJJTSBJIiAoZW50aXJlbHkgbWVtLW1hcHBlZCkgY2FyZHMKIAkJCUZvcm1hdDogPGlvPiw8aXJxPiw8bm9kZUlEPgpAQCAtNTYwLDYgKzU3MSw4IEBACiAKIAlkZWJ1Z19vYmplY3RzCVtLTkxdIEVuYWJsZSBvYmplY3QgZGVidWdnaW5nCiAKKwlkZWJ1Z3BhdAlbWDg2XSBFbmFibGUgUEFUIGRlYnVnZ2luZworCiAJZGVjbmV0LmFkZHI9CVtIVyxORVRdCiAJCQlGb3JtYXQ6IDxhcmVhPlssPG5vZGU+XQogCQkJU2VlIGFsc28gRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RlY25ldC50eHQuCkBAIC01OTksNiArNjEyLDI5IEBACiAJCQlTZWUgZHJpdmVycy9jaGFyL1JFQURNRS5lcGNhIGFuZAogCQkJRG9jdW1lbnRhdGlvbi9kaWdpZXBjYS50eHQuCiAKKwlkaXNhYmxlX210cnJfY2xlYW51cCBbWDg2XQorCWVuYWJsZV9tdHJyX2NsZWFudXAgW1g4Nl0KKwkJCVRoZSBrZXJuZWwgdHJpZXMgdG8gYWRqdXN0IE1UUlIgbGF5b3V0IGZyb20gY29udGludW91cworCQkJdG8gZGlzY3JldGUsIHRvIG1ha2UgWCBzZXJ2ZXIgZHJpdmVyIGFibGUgdG8gYWRkIFdCCisJCQllbnRyeSBsYXRlci4gVGhpcyBwYXJhbWV0ZXIgZW5hYmxlcy9kaXNhYmxlcyB0aGF0LgorCisJbXRycl9jaHVua19zaXplPW5uW0tNR10gW1g4Nl0KKwkJCXVzZWQgZm9yIG10cnIgY2xlYW51cC4gSXQgaXMgbGFyZ2VzdCBjb250aW5vdXMgY2h1bmsKKwkJCXRoYXQgY291bGQgaG9sZCBob2xlcyBha2EuIFVDIGVudHJpZXMuCisKKwltdHJyX2dyYW5fc2l6ZT1ubltLTUddIFtYODZdCisJCQlVc2VkIGZvciBtdHJyIGNsZWFudXAuIEl0IGlzIGdyYW51bGFyaXR5IG9mIG10cnIgYmxvY2suCisJCQlEZWZhdWx0IGlzIDEuCisJCQlMYXJnZSB2YWx1ZSBjb3VsZCBwcmV2ZW50IHNtYWxsIGFsaWdubWVudCBmcm9tCisJCQl1c2luZyB1cCBNVFJScy4KKworCW10cnJfc3BhcmVfcmVnX25yPW4gW1g4Nl0KKwkJCUZvcm1hdDogPGludGVnZXI+CisJCQlSYW5nZTogMCw3IDogc3BhcmUgcmVnIG51bWJlcgorCQkJRGVmYXVsdCA6IDEKKwkJCVVzZWQgZm9yIG10cnIgY2xlYW51cC4gSXQgaXMgc3BhcmUgbXRyciBlbnRyaWVzIG51bWJlci4KKwkJCVNldCB0byAyIG9yIG1vcmUgaWYgeW91ciBncmFwaGljYWwgY2FyZCBuZWVkcyBtb3JlLgorCiAJZGlzYWJsZV9tdHJyX3RyaW0gW1g4NiwgSW50ZWwgYW5kIEFNRCBvbmx5XQogCQkJQnkgZGVmYXVsdCB0aGUga2VybmVsIHdpbGwgdHJpbSBhbnkgdW5jYWNoZWFibGUKIAkJCW1lbW9yeSBvdXQgb2YgeW91ciBhdmFpbGFibGUgbWVtb3J5IHBvb2wgYmFzZWQgb24KQEAgLTYzOCw3ICs2NzQsNyBAQAogCiAJZWxhbmZyZXE9CVtYODYtMzJdCiAJCQlTZWUgY29tbWVudCBiZWZvcmUgZnVuY3Rpb24gZWxhbmZyZXFfc2V0dXAoKSBpbgotCQkJYXJjaC9pMzg2L2tlcm5lbC9jcHUvY3B1ZnJlcS9lbGFuZnJlcS5jLgorCQkJYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL2VsYW5mcmVxLmMuCiAKIAllbGV2YXRvcj0JW0lPU0NIRURdCiAJCQlGb3JtYXQ6IHsiYW50aWNpcGF0b3J5IiB8ICJjZnEiIHwgImRlYWRsaW5lIiB8ICJub29wIn0KQEAgLTEyMDgsNiArMTI0NCwxMSBAQAogCW10ZHBhcnRzPQlbTVREXQogCQkJU2VlIGRyaXZlcnMvbXRkL2NtZGxpbmVwYXJ0LmMuCiAKKwltdGRzZXQ9CQlbQVJNXQorCQkJQVJNL1MzQzI0MTIgSklWRSBib290IGNvbnRyb2wKKworCQkJU2VlIGFyY2gvYXJtL21hY2gtczNjMjQxMi9tYWNoLWppdmUuYworCiAJbXRvdWNodXNiLnJhd19jb29yZGluYXRlcz0KIAkJCVtIV10gTWFrZSB0aGUgTWljcm9Ub3VjaCBVU0IgZHJpdmVyIHVzZSByYXcgY29vcmRpbmF0ZXMKIAkJCSgneScsIGRlZmF1bHQpIG9yIGNvb2tlZCBjb29yZGluYXRlcyAoJ24nKQpAQCAtMTY3OSw2ICsxNzIwLDEwIEBACiAJCQlGb3JtYXQ6IDxyZWJvb3RfbW9kZT5bLDxyZWJvb3RfbW9kZTI+WywuLi5dXQogCQkJU2VlIGFyY2gvKi9rZXJuZWwvcmVib290LmMgb3IgYXJjaC8qL2tlcm5lbC9wcm9jZXNzLmMJCQkKIAorCXJlbGF4X2RvbWFpbl9sZXZlbD0KKwkJCVtLTkwsIFNNUF0gU2V0IHNjaGVkdWxlcidzIGRlZmF1bHQgcmVsYXhfZG9tYWluX2xldmVsLgorCQkJU2VlIERvY3VtZW50YXRpb24vY3B1c2V0cy50eHQuCisKIAlyZXNlcnZlPQlbS05MLEJVR1NdIEZvcmNlIHRoZSBrZXJuZWwgdG8gaWdub3JlIHNvbWUgaW9tZW0gYXJlYQogCiAJcmVzZXJ2ZXRvcD0JW1g4Ni0zMl0KQEAgLTIxMTIsNiArMjE1Nyw5IEBACiAJdXNiaGlkLm1vdXNlcG9sbD0KIAkJCVtVU0JISURdIFRoZSBpbnRlcnZhbCB3aGljaCBtaWNlIGFyZSB0byBiZSBwb2xsZWQgYXQuCiAKKwlhZGRfZWZpX21lbW1hcAlbRUZJOyB4ODYtMzIsWDg2LTY0XSBJbmNsdWRlIEVGSSBtZW1vcnkgbWFwIGluCisJCQlrZXJuZWwncyBtYXAgb2YgYXZhaWxhYmxlIHBoeXNpY2FsIFJBTS4KKwogCXZkc289CQlbWDg2LTMyLFNILHg4Ni02NF0KIAkJCXZkc289MjogZW5hYmxlIGNvbXBhdCBWRFNPIChkZWZhdWx0IHdpdGggQ09NUEFUX1ZEU08pCiAJCQl2ZHNvPTE6IGVuYWJsZSBWRFNPIChkZWZhdWx0KQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9rb2JqZWN0LnR4dCBiL0RvY3VtZW50YXRpb24va29iamVjdC50eHQKaW5kZXggYmYzMjU2ZS4uNTFhODAyMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9rb2JqZWN0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2tvYmplY3QudHh0CkBAIC0zMDUsNyArMzA1LDcgQEAKIAogQSBrc2V0IGtlZXBzIGl0cyBjaGlsZHJlbiBpbiBhIHN0YW5kYXJkIGtlcm5lbCBsaW5rZWQgbGlzdC4gIEtvYmplY3RzIHBvaW50CiBiYWNrIHRvIHRoZWlyIGNvbnRhaW5pbmcga3NldCB2aWEgdGhlaXIga3NldCBmaWVsZC4gSW4gYWxtb3N0IGFsbCBjYXNlcywKLXRoZSBrb2JqZWN0cyBiZWxvbmdpbmcgdG8gYSBrZXQgaGF2ZSB0aGF0IGtzZXQgKG9yLCBzdHJpY3RseSwgaXRzIGVtYmVkZGVkCit0aGUga29iamVjdHMgYmVsb25naW5nIHRvIGEga3NldCBoYXZlIHRoYXQga3NldCAob3IsIHN0cmljdGx5LCBpdHMgZW1iZWRkZWQKIGtvYmplY3QpIGluIHRoZWlyIHBhcmVudC4KIAogQXMgYSBrc2V0IGNvbnRhaW5zIGEga29iamVjdCB3aXRoaW4gaXQsIGl0IHNob3VsZCBhbHdheXMgYmUgZHluYW1pY2FsbHkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbGFwdG9wcy90aGlua3BhZC1hY3BpLnR4dCBiL0RvY3VtZW50YXRpb24vbGFwdG9wcy90aGlua3BhZC1hY3BpLnR4dAppbmRleCAwMWM2YzNkLi42NGIzZjE0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2xhcHRvcHMvdGhpbmtwYWQtYWNwaS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9sYXB0b3BzL3RoaW5rcGFkLWFjcGkudHh0CkBAIC01MDMsNyArNTAzLDcgQEAKIEluIGFkZGl0aW9uIHRvIHRoZSBFVl9LRVkgZXZlbnRzLCB0aGlua3BhZC1hY3BpIG1heSBhbHNvIGlzc3VlIEVWX1NXCiBldmVudHMgZm9yIHN3aXRjaGVzOgogCi1TV19SQURJTwlUNjAgYW5kIGxhdGVyIGhhcmRhcmUgcmZraWxsIHJvY2tlciBzd2l0Y2gKK1NXX1JGS0lMTF9BTEwJVDYwIGFuZCBsYXRlciBoYXJkYXJlIHJma2lsbCByb2NrZXIgc3dpdGNoCiBTV19UQUJMRVRfTU9ERQlUYWJsZXQgVGhpbmtQYWRzIEhLRVkgZXZlbnRzIDB4NTAwOSBhbmQgMHg1MDBBCiAKIE5vbiBob3Qta2V5IEFDUEkgSEtFWSBldmVudCBtYXA6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvaXAtc3lzY3RsLnR4dCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CmluZGV4IDE3YTZlNDYuLjk0NmI2NmUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CkBAIC04MSwyMyArODEsMjMgQEAKIAlNaW5pbXVtIHRpbWUtdG8tbGl2ZSBvZiBlbnRyaWVzLiAgU2hvdWxkIGJlIGVub3VnaCB0byBjb3ZlciBmcmFnbWVudAogCXRpbWUtdG8tbGl2ZSBvbiB0aGUgcmVhc3NlbWJsaW5nIHNpZGUuICBUaGlzIG1pbmltdW0gdGltZS10by1saXZlICBpcwogCWd1YXJhbnRlZWQgaWYgdGhlIHBvb2wgc2l6ZSBpcyBsZXNzIHRoYW4gaW5ldF9wZWVyX3RocmVzaG9sZC4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9tYXh0dGwgLSBJTlRFR0VSCiAJTWF4aW11bSB0aW1lLXRvLWxpdmUgb2YgZW50cmllcy4gIFVudXNlZCBlbnRyaWVzIHdpbGwgZXhwaXJlIGFmdGVyCiAJdGhpcyBwZXJpb2Qgb2YgdGltZSBpZiB0aGVyZSBpcyBubyBtZW1vcnkgcHJlc3N1cmUgb24gdGhlIHBvb2wgKGkuZS4KIAl3aGVuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgcG9vbCBpcyB2ZXJ5IHNtYWxsKS4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9nY19taW50aW1lIC0gSU5URUdFUgogCU1pbmltdW0gaW50ZXJ2YWwgYmV0d2VlbiBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzLiAgVGhpcyBpbnRlcnZhbCBpcwogCWluIGVmZmVjdCB1bmRlciBoaWdoIG1lbW9yeSBwcmVzc3VyZSBvbiB0aGUgcG9vbC4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9nY19tYXh0aW1lIC0gSU5URUdFUgogCU1pbmltdW0gaW50ZXJ2YWwgYmV0d2VlbiBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzLiAgVGhpcyBpbnRlcnZhbCBpcwogCWluIGVmZmVjdCB1bmRlciBsb3cgKG9yIGFic2VudCkgbWVtb3J5IHByZXNzdXJlIG9uIHRoZSBwb29sLgotCU1lYXN1cmVkIGluIGppZmZpZXMoMSkuCisJTWVhc3VyZWQgaW4gc2Vjb25kcy4KIAogVENQIHZhcmlhYmxlczogCiAKQEAgLTE0OCw5ICsxNDgsOSBAQAogCWJ1dCBub3QgbG9hZGVkLgogCiB0Y3BfYmFzZV9tc3MgLSBJTlRFR0VSCi0JVGhlIGluaXRpYWwgdmFsdWUgb2Ygc2VhcmNoX2xvdyB0byBiZSB1c2VkIGJ5IFBhY2tldGl6YXRpb24gTGF5ZXIKLQlQYXRoIE1UVSBEaXNjb3ZlcnkgKE1UVSBwcm9iaW5nKS4gIElmIE1UVSBwcm9iaW5nIGlzIGVuYWJsZWQsCi0JdGhpcyBpcyB0aGUgaW5pdGFsIE1TUyB1c2VkIGJ5IHRoZSBjb25uZWN0aW9uLgorCVRoZSBpbml0aWFsIHZhbHVlIG9mIHNlYXJjaF9sb3cgdG8gYmUgdXNlZCBieSB0aGUgcGFja2V0aXphdGlvbiBsYXllcgorCVBhdGggTVRVIGRpc2NvdmVyeSAoTVRVIHByb2JpbmcpLiAgSWYgTVRVIHByb2JpbmcgaXMgZW5hYmxlZCwKKwl0aGlzIGlzIHRoZSBpbml0aWFsIE1TUyB1c2VkIGJ5IHRoZSBjb25uZWN0aW9uLgogCiB0Y3BfY29uZ2VzdGlvbl9jb250cm9sIC0gU1RSSU5HCiAJU2V0IHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgYWxnb3JpdGhtIHRvIGJlIHVzZWQgZm9yIG5ldwpAQCAtMTg1LDEwICsxODUsOSBAQAogCXRpbWVvdXRzLiAgSXQgaXMgcGFydGljdWxhcmx5IGJlbmVmaWNpYWwgaW4gd2lyZWxlc3MgZW52aXJvbm1lbnRzCiAJd2hlcmUgcGFja2V0IGxvc3MgaXMgdHlwaWNhbGx5IGR1ZSB0byByYW5kb20gcmFkaW8gaW50ZXJmZXJlbmNlCiAJcmF0aGVyIHRoYW4gaW50ZXJtZWRpYXRlIHJvdXRlciBjb25nZXN0aW9uLiAgRi1SVE8gaXMgc2VuZGVyLXNpZGUKLQlvbmx5IG1vZGlmaWNhdGlvbi4gIFRoZXJlZm9yZSBpdCBkb2VzIG5vdCByZXF1aXJlIGFueSBzdXBwb3J0IGZyb20KLQl0aGUgcGVlciwgYnV0IGluIGEgdHlwaWNhbCBjYXNlLCBob3dldmVyLCB3aGVyZSB3aXJlbGVzcyBsaW5rIGlzCi0JdGhlIGxvY2FsIGFjY2VzcyBsaW5rIGFuZCBtb3N0IG9mIHRoZSBkYXRhIGZsb3dzIGRvd25saW5rLCB0aGUKLQlmYXJhd2F5IHNlcnZlcnMgc2hvdWxkIGhhdmUgRi1SVE8gZW5hYmxlZCB0byB0YWtlIGFkdmFudGFnZSBvZiBpdC4KKwlvbmx5IG1vZGlmaWNhdGlvbi4gVGhlcmVmb3JlIGl0IGRvZXMgbm90IHJlcXVpcmUgYW55IHN1cHBvcnQgZnJvbQorCXRoZSBwZWVyLgorCiAJSWYgc2V0IHRvIDEsIGJhc2ljIHZlcnNpb24gaXMgZW5hYmxlZC4gIDIgZW5hYmxlcyBTQUNLIGVuaGFuY2VkCiAJRi1SVE8gaWYgZmxvdyB1c2VzIFNBQ0suICBUaGUgYmFzaWMgdmVyc2lvbiBjYW4gYmUgdXNlZCBhbHNvIHdoZW4KIAlTQUNLIGlzIGluIHVzZSB0aG91Z2ggc2NlbmFyaW8ocykgd2l0aCBpdCBleGlzdHMgd2hlcmUgRi1SVE8KQEAgLTI3Niw3ICsyNzUsNyBAQAogCW1lbW9yeS4KIAogdGNwX21vZGVyYXRlX3JjdmJ1ZiAtIEJPT0xFQU4KLQlJZiBzZXQsIFRDUCBwZXJmb3JtcyByZWNlaXZlIGJ1ZmZlciBhdXRvdHVuaW5nLCBhdHRlbXB0aW5nIHRvCisJSWYgc2V0LCBUQ1AgcGVyZm9ybXMgcmVjZWl2ZSBidWZmZXIgYXV0by10dW5pbmcsIGF0dGVtcHRpbmcgdG8KIAlhdXRvbWF0aWNhbGx5IHNpemUgdGhlIGJ1ZmZlciAobm8gZ3JlYXRlciB0aGFuIHRjcF9ybWVtWzJdKSB0bwogCW1hdGNoIHRoZSBzaXplIHJlcXVpcmVkIGJ5IHRoZSBwYXRoIGZvciBmdWxsIHRocm91Z2hwdXQuICBFbmFibGVkIGJ5CiAJZGVmYXVsdC4KQEAgLTMzNiw3ICszMzUsNyBAQAogCXByZXNzdXJlLgogCURlZmF1bHQ6IDhLCiAKLQlkZWZhdWx0OiBkZWZhdWx0IHNpemUgb2YgcmVjZWl2ZSBidWZmZXIgdXNlZCBieSBUQ1Agc29ja2V0cy4KKwlkZWZhdWx0OiBpbml0aWFsIHNpemUgb2YgcmVjZWl2ZSBidWZmZXIgdXNlZCBieSBUQ1Agc29ja2V0cy4KIAlUaGlzIHZhbHVlIG92ZXJyaWRlcyBuZXQuY29yZS5ybWVtX2RlZmF1bHQgdXNlZCBieSBvdGhlciBwcm90b2NvbHMuCiAJRGVmYXVsdDogODczODAgYnl0ZXMuIFRoaXMgdmFsdWUgcmVzdWx0cyBpbiB3aW5kb3cgb2YgNjU1MzUgd2l0aAogCWRlZmF1bHQgc2V0dGluZyBvZiB0Y3BfYWR2X3dpbl9zY2FsZSBhbmQgdGNwX2FwcF93aW46MCBhbmQgYSBiaXQKQEAgLTM0NCw4ICszNDMsMTAgQEAKIAogCW1heDogbWF4aW1hbCBzaXplIG9mIHJlY2VpdmUgYnVmZmVyIGFsbG93ZWQgZm9yIGF1dG9tYXRpY2FsbHkKIAlzZWxlY3RlZCByZWNlaXZlciBidWZmZXJzIGZvciBUQ1Agc29ja2V0LiBUaGlzIHZhbHVlIGRvZXMgbm90IG92ZXJyaWRlCi0JbmV0LmNvcmUucm1lbV9tYXgsICJzdGF0aWMiIHNlbGVjdGlvbiB2aWEgU09fUkNWQlVGIGRvZXMgbm90IHVzZSB0aGlzLgotCURlZmF1bHQ6IDg3MzgwKjIgYnl0ZXMuCisJbmV0LmNvcmUucm1lbV9tYXguICBDYWxsaW5nIHNldHNvY2tvcHQoKSB3aXRoIFNPX1JDVkJVRiBkaXNhYmxlcworCWF1dG9tYXRpYyB0dW5pbmcgb2YgdGhhdCBzb2NrZXQncyByZWNlaXZlIGJ1ZmZlciBzaXplLCBpbiB3aGljaAorCWNhc2UgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorCURlZmF1bHQ6IGJldHdlZW4gODczODBCIGFuZCA0TUIsIGRlcGVuZGluZyBvbiBSQU0gc2l6ZS4KIAogdGNwX3NhY2sgLSBCT09MRUFOCiAJRW5hYmxlIHNlbGVjdCBhY2tub3dsZWRnbWVudHMgKFNBQ0tTKS4KQEAgLTM1OCw3ICszNTksNyBAQAogCURlZmF1bHQ6IDEKIAogdGNwX3N0ZHVyZyAtIEJPT0xFQU4KLQlVc2UgdGhlIEhvc3QgcmVxdWlyZW1lbnRzIGludGVycHJldGF0aW9uIG9mIHRoZSBUQ1AgdXJnIHBvaW50ZXIgZmllbGQuCisJVXNlIHRoZSBIb3N0IHJlcXVpcmVtZW50cyBpbnRlcnByZXRhdGlvbiBvZiB0aGUgVENQIHVyZ2VudCBwb2ludGVyIGZpZWxkLgogCU1vc3QgaG9zdHMgdXNlIHRoZSBvbGRlciBCU0QgaW50ZXJwcmV0YXRpb24sIHNvIGlmIHlvdSB0dXJuIHRoaXMgb24KIAlMaW51eCBtaWdodCBub3QgY29tbXVuaWNhdGUgY29ycmVjdGx5IHdpdGggdGhlbS4KIAlEZWZhdWx0OiBGQUxTRQpAQCAtMzcxLDEyICszNzIsMTIgQEAKIHRjcF9zeW5jb29raWVzIC0gQk9PTEVBTgogCU9ubHkgdmFsaWQgd2hlbiB0aGUga2VybmVsIHdhcyBjb21waWxlZCB3aXRoIENPTkZJR19TWU5DT09LSUVTCiAJU2VuZCBvdXQgc3luY29va2llcyB3aGVuIHRoZSBzeW4gYmFja2xvZyBxdWV1ZSBvZiBhIHNvY2tldAotCW92ZXJmbG93cy4gVGhpcyBpcyB0byBwcmV2ZW50IGFnYWluc3QgdGhlIGNvbW1vbiAnc3luIGZsb29kIGF0dGFjaycKKwlvdmVyZmxvd3MuIFRoaXMgaXMgdG8gcHJldmVudCBhZ2FpbnN0IHRoZSBjb21tb24gJ1NZTiBmbG9vZCBhdHRhY2snCiAJRGVmYXVsdDogRkFMU0UKIAogCU5vdGUsIHRoYXQgc3luY29va2llcyBpcyBmYWxsYmFjayBmYWNpbGl0eS4KIAlJdCBNVVNUIE5PVCBiZSB1c2VkIHRvIGhlbHAgaGlnaGx5IGxvYWRlZCBzZXJ2ZXJzIHRvIHN0YW5kCi0JYWdhaW5zdCBsZWdhbCBjb25uZWN0aW9uIHJhdGUuIElmIHlvdSBzZWUgc3luZmxvb2Qgd2FybmluZ3MKKwlhZ2FpbnN0IGxlZ2FsIGNvbm5lY3Rpb24gcmF0ZS4gSWYgeW91IHNlZSBTWU4gZmxvb2Qgd2FybmluZ3MKIAlpbiB5b3VyIGxvZ3MsIGJ1dCBpbnZlc3RpZ2F0aW9uCXNob3dzIHRoYXQgdGhleSBvY2N1cgogCWJlY2F1c2Ugb2Ygb3ZlcmxvYWQgd2l0aCBsZWdhbCBjb25uZWN0aW9ucywgeW91IHNob3VsZCB0dW5lCiAJYW5vdGhlciBwYXJhbWV0ZXJzIHVudGlsIHRoaXMgd2FybmluZyBkaXNhcHBlYXIuCkBAIC0zODYsNyArMzg3LDcgQEAKIAl0byB1c2UgVENQIGV4dGVuc2lvbnMsIGNhbiByZXN1bHQgaW4gc2VyaW91cyBkZWdyYWRhdGlvbgogCW9mIHNvbWUgc2VydmljZXMgKGYuZS4gU01UUCByZWxheWluZyksIHZpc2libGUgbm90IGJ5IHlvdSwKIAlidXQgeW91ciBjbGllbnRzIGFuZCByZWxheXMsIGNvbnRhY3RpbmcgeW91LiBXaGlsZSB5b3Ugc2VlCi0Jc3luZmxvb2Qgd2FybmluZ3MgaW4gbG9ncyBub3QgYmVpbmcgcmVhbGx5IGZsb29kZWQsIHlvdXIgc2VydmVyCisJU1lOIGZsb29kIHdhcm5pbmdzIGluIGxvZ3Mgbm90IGJlaW5nIHJlYWxseSBmbG9vZGVkLCB5b3VyIHNlcnZlcgogCWlzIHNlcmlvdXNseSBtaXNjb25maWd1cmVkLgogCiB0Y3Bfc3luX3JldHJpZXMgLSBJTlRFR0VSCkBAIC00MTksMTkgKzQyMCwyMSBAQAogCUVuYWJsZSB3aW5kb3cgc2NhbGluZyBhcyBkZWZpbmVkIGluIFJGQzEzMjMuCiAKIHRjcF93bWVtIC0gdmVjdG9yIG9mIDMgSU5URUdFUnM6IG1pbiwgZGVmYXVsdCwgbWF4Ci0JbWluOiBBbW91bnQgb2YgbWVtb3J5IHJlc2VydmVkIGZvciBzZW5kIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXQuCisJbWluOiBBbW91bnQgb2YgbWVtb3J5IHJlc2VydmVkIGZvciBzZW5kIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXRzLgogCUVhY2ggVENQIHNvY2tldCBoYXMgcmlnaHRzIHRvIHVzZSBpdCBkdWUgdG8gZmFjdCBvZiBpdHMgYmlydGguCiAJRGVmYXVsdDogNEsKIAotCWRlZmF1bHQ6IEFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3Igc2VuZCBidWZmZXJzIGZvciBUQ1Agc29ja2V0Ci0JYnkgZGVmYXVsdC4gVGhpcyB2YWx1ZSBvdmVycmlkZXMgbmV0LmNvcmUud21lbV9kZWZhdWx0IHVzZWQKLQlieSBvdGhlciBwcm90b2NvbHMsIGl0IGlzIHVzdWFsbHkgbG93ZXIgdGhhbiBuZXQuY29yZS53bWVtX2RlZmF1bHQuCisJZGVmYXVsdDogaW5pdGlhbCBzaXplIG9mIHNlbmQgYnVmZmVyIHVzZWQgYnkgVENQIHNvY2tldHMuICBUaGlzCisJdmFsdWUgb3ZlcnJpZGVzIG5ldC5jb3JlLndtZW1fZGVmYXVsdCB1c2VkIGJ5IG90aGVyIHByb3RvY29scy4KKwlJdCBpcyB1c3VhbGx5IGxvd2VyIHRoYW4gbmV0LmNvcmUud21lbV9kZWZhdWx0LgogCURlZmF1bHQ6IDE2SwogCi0JbWF4OiBNYXhpbWFsIGFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3IgYXV0b21hdGljYWxseSBzZWxlY3RlZAotCXNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldC4gVGhpcyB2YWx1ZSBkb2VzIG5vdCBvdmVycmlkZQotCW5ldC5jb3JlLndtZW1fbWF4LCAic3RhdGljIiBzZWxlY3Rpb24gdmlhIFNPX1NOREJVRiBkb2VzIG5vdCB1c2UgdGhpcy4KLQlEZWZhdWx0OiAxMjhLCisJbWF4OiBNYXhpbWFsIGFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3IgYXV0b21hdGljYWxseSB0dW5lZAorCXNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldHMuIFRoaXMgdmFsdWUgZG9lcyBub3Qgb3ZlcnJpZGUKKwluZXQuY29yZS53bWVtX21heC4gIENhbGxpbmcgc2V0c29ja29wdCgpIHdpdGggU09fU05EQlVGIGRpc2FibGVzCisJYXV0b21hdGljIHR1bmluZyBvZiB0aGF0IHNvY2tldCdzIHNlbmQgYnVmZmVyIHNpemUsIGluIHdoaWNoIGNhc2UKKwl0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisJRGVmYXVsdDogYmV0d2VlbiA2NEsgYW5kIDRNQiwgZGVwZW5kaW5nIG9uIFJBTSBzaXplLgogCiB0Y3Bfd29ya2Fyb3VuZF9zaWduZWRfd2luZG93cyAtIEJPT0xFQU4KIAlJZiBzZXQsIGFzc3VtZSBubyByZWNlaXB0IG9mIGEgd2luZG93IHNjYWxpbmcgb3B0aW9uIG1lYW5zIHRoZQpAQCAtNzk0LDEwICs3OTcsNiBAQAogCUFsbG93cyB5b3UgdG8gd3JpdGUgYSBudW1iZXIsIHdoaWNoIGNhbiBiZSB1c2VkIGFzIHJlcXVpcmVkLgogCURlZmF1bHQgdmFsdWUgaXMgMC4KIAotKDEpIEppZmZpZTogaW50ZXJuYWwgdGltZXVuaXQgZm9yIHRoZSBrZXJuZWwuIE9uIHRoZSBpMzg2IDEvMTAwcywgb24gdGhlCi1BbHBoYSAxLzEwMjRzLiBTZWUgdGhlIEhaIGRlZmluZSBpbiAvdXNyL2luY2x1ZGUvYXNtL3BhcmFtLmggZm9yIHRoZSBleGFjdAotdmFsdWUgb24geW91ciBzeXN0ZW0uIAotCiBBbGV4ZXkgS3V6bmV0c292Lgoga3V6bmV0QG1zMi5pbnIuYWMucnUKIApAQCAtMTA2NCwyNCArMTA2MywxOTMgQEAKIAlEZWZhdWx0OiAxCiAKIAorcHJvYy9zeXMvbmV0L3NjdHAvKiBWYXJpYWJsZXM6CisKK2FkZGlwX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSBleHRlbnNpb24gb2YgIER5bmFtaWMgQWRkcmVzcyBSZWNvbmZpZ3VyYXRpb24KKwkoQURELUlQKSBmdW5jdGlvbmFsaXR5IHNwZWNpZmllZCBpbiBSRkM1MDYxLiAgVGhpcyBleHRlbnNpb24gcHJvdmlkZXMKKwl0aGUgYWJpbGl0eSB0byBkeW5hbWljYWxseSBhZGQgYW5kIHJlbW92ZSBuZXcgYWRkcmVzc2VzIGZvciB0aGUgU0NUUAorCWFzc29jaWF0aW9ucy4KKworCTE6IEVuYWJsZSBleHRlbnNpb24uCisKKwkwOiBEaXNhYmxlIGV4dGVuc2lvbi4KKworCURlZmF1bHQ6IDAKKworYWRkaXBfbm9hdXRoX2VuYWJsZSAtIEJPT0xFQU4KKwlEeW5hbWljIEFkZHJlc3MgUmVjb25maWd1cmF0aW9uIChBREQtSVApIHJlcXVpcmVzIHRoZSB1c2Ugb2YKKwlhdXRoZW50aWNhdGlvbiB0byBwcm90ZWN0IHRoZSBvcGVyYXRpb25zIG9mIGFkZGluZyBvciByZW1vdmluZyBuZXcKKwlhZGRyZXNzZXMuICBUaGlzIHJlcXVpcmVtZW50IGlzIG1hbmRhdGVkIHNvIHRoYXQgdW5hdXRob3JpemVkIGhvc3RzCisJd291bGQgbm90IGJlIGFibGUgdG8gaGlqYWNrIGFzc29jaWF0aW9ucy4gIEhvd2V2ZXIsIG9sZGVyCisJaW1wbGVtZW50YXRpb25zIG1heSBub3QgaGF2ZSBpbXBsZW1lbnRlZCB0aGlzIHJlcXVpcmVtZW50IHdoaWxlCisJYWxsb3dpbmcgdGhlIEFERC1JUCBleHRlbnNpb24uICBGb3IgcmVhc29ucyBvZiBpbnRlcm9wZXJhYmlsaXR5LAorCXdlIHByb3ZpZGUgdGhpcyB2YXJpYWJsZSB0byBjb250cm9sIHRoZSBlbmZvcmNlbWVudCBvZiB0aGUKKwlhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudC4KKworCTE6IEFsbG93IEFERC1JUCBleHRlbnNpb24gdG8gYmUgdXNlZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uLiAgVGhpcworCSAgIHNob3VsZCBvbmx5IGJlIHNldCBpbiBhIGNsb3NlZCBlbnZpcm9ubWVudCBmb3IgaW50ZXJvcGVyYWJpbGl0eQorCSAgIHdpdGggb2xkZXIgaW1wbGVtZW50YXRpb25zLgorCisJMDogRW5mb3JjZSB0aGUgYXV0aGVudGljYXRpb24gcmVxdWlyZW1lbnQKKworCURlZmF1bHQ6IDAKKworYXV0aF9lbmFibGUgLSBCT09MRUFOCisJRW5hYmxlIG9yIGRpc2FibGUgQXV0aGVudGljYXRlZCBDaHVua3MgZXh0ZW5zaW9uLiAgVGhpcyBleHRlbnNpb24KKwlwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBzZW5kIGFuZCByZWNlaXZlIGF1dGhlbnRpY2F0ZWQgY2h1bmtzIGFuZCBpcworCXJlcXVpcmVkIGZvciBzZWN1cmUgb3BlcmF0aW9uIG9mIER5bmFtaWMgQWRkcmVzcyBSZWNvbmZpZ3VyYXRpb24KKwkoQURELUlQKSBleHRlbnNpb24uCisKKwkxOiBFbmFibGUgdGhpcyBleHRlbnNpb24uCisJMDogRGlzYWJsZSB0aGlzIGV4dGVuc2lvbi4KKworCURlZmF1bHQ6IDAKKworcHJzY3RwX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSB0aGUgUGFydGlhbCBSZWxpYWJpbGl0eSBleHRlbnNpb24gKFJGQzM3NTgpIHdoaWNoCisJaXMgdXNlZCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGdpdmVuIERBVEEgc2hvdWxkIG5vIGxvbmdlciBiZSBleHBlY3RlZC4KKworCTE6IEVuYWJsZSBleHRlbnNpb24KKwkwOiBEaXNhYmxlCisKKwlEZWZhdWx0OiAxCisKK21heF9idXJzdCAtIElOVEVHRVIKKwlUaGUgbGltaXQgb2YgdGhlIG51bWJlciBvZiBuZXcgcGFja2V0cyB0aGF0IGNhbiBiZSBpbml0aWFsbHkgc2VudC4gIEl0CisJY29udHJvbHMgaG93IGJ1cnN0eSB0aGUgZ2VuZXJhdGVkIHRyYWZmaWMgY2FuIGJlLgorCisJRGVmYXVsdDogNAorCithc3NvY2lhdGlvbl9tYXhfcmV0cmFucyAtIElOVEVHRVIKKwlTZXQgdGhlIG1heGltdW0gbnVtYmVyIGZvciByZXRyYW5zbWlzc2lvbnMgdGhhdCBhbiBhc3NvY2lhdGlvbiBjYW4KKwlhdHRlbXB0IGRlY2lkaW5nIHRoYXQgdGhlIHJlbW90ZSBlbmQgaXMgdW5yZWFjaGFibGUuICBJZiB0aGlzIHZhbHVlCisJaXMgZXhjZWVkZWQsIHRoZSBhc3NvY2lhdGlvbiBpcyB0ZXJtaW5hdGVkLgorCisJRGVmYXVsdDogMTAKKworbWF4X2luaXRfcmV0cmFuc21pdHMgLSBJTlRFR0VSCisJVGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJhbnNtaXNzaW9ucyBvZiBJTklUIGFuZCBDT09LSUUtRUNITyBjaHVua3MKKwl0aGF0IGFuIGFzc29jaWF0aW9uIHdpbGwgYXR0ZW1wdCBiZWZvcmUgZGVjbGFyaW5nIHRoZSBkZXN0aW5hdGlvbgorCXVucmVhY2hhYmxlIGFuZCB0ZXJtaW5hdGluZy4KKworCURlZmF1bHQ6IDgKKworcGF0aF9tYXhfcmV0cmFucyAtIElOVEVHRVIKKwlUaGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmFuc21pc3Npb25zIHRoYXQgd2lsbCBiZSBhdHRlbXB0ZWQgb24gYSBnaXZlbgorCXBhdGguICBPbmNlIHRoaXMgdGhyZXNob2xkIGlzIGV4Y2VlZGVkLCB0aGUgcGF0aCBpcyBjb25zaWRlcmVkCisJdW5yZWFjaGFibGUsIGFuZCBuZXcgdHJhZmZpYyB3aWxsIHVzZSBhIGRpZmZlcmVudCBwYXRoIHdoZW4gdGhlCisJYXNzb2NpYXRpb24gaXMgbXVsdGlob21lZC4KKworCURlZmF1bHQ6IDUKKworcnRvX2luaXRpYWwgLSBJTlRFR0VSCisJVGhlIGluaXRpYWwgcm91bmQgdHJpcCB0aW1lb3V0IHZhbHVlIGluIG1pbGxpc2Vjb25kcyB0aGF0IHdpbGwgYmUgdXNlZAorCWluIGNhbGN1bGF0aW5nIHJvdW5kIHRyaXAgdGltZXMuICBUaGlzIGlzIHRoZSBpbml0aWFsIHRpbWUgaW50ZXJ2YWwKKwlmb3IgcmV0cmFuc21pc3Npb25zLgorCisJRGVmYXVsdDogMzAwMAorCitydG9fbWF4IC0gSU5URUdFUgorCVRoZSBtYXhpbXVtIHZhbHVlIChpbiBtaWxsaXNlY29uZHMpIG9mIHRoZSByb3VuZCB0cmlwIHRpbWVvdXQuICBUaGlzCisJaXMgdGhlIGxhcmdlc3QgdGltZSBpbnRlcnZhbCB0aGF0IGNhbiBlbGFwc2UgYmV0d2VlbiByZXRyYW5zbWlzc2lvbnMuCisKKwlEZWZhdWx0OiA2MDAwMAorCitydG9fbWluIC0gSU5URUdFUgorCVRoZSBtaW5pbXVtIHZhbHVlIChpbiBtaWxsaXNlY29uZHMpIG9mIHRoZSByb3VuZCB0cmlwIHRpbWVvdXQuICBUaGlzCisJaXMgdGhlIHNtYWxsZXN0IHRpbWUgaW50ZXJ2YWwgdGhlIGNhbiBlbGFwc2UgYmV0d2VlbiByZXRyYW5zbWlzc2lvbnMuCisKKwlEZWZhdWx0OiAxMDAwCisKK2hiX2ludGVydmFsIC0gSU5URUdFUgorCVRoZSBpbnRlcnZhbCAoaW4gbWlsbGlzZWNvbmRzKSBiZXR3ZWVuIEhFQVJUQkVBVCBjaHVua3MuICBUaGVzZSBjaHVua3MKKwlhcmUgc2VudCBhdCB0aGUgc3BlY2lmaWVkIGludGVydmFsIG9uIGlkbGUgcGF0aHMgdG8gcHJvYmUgdGhlIHN0YXRlIG9mCisJYSBnaXZlbiBwYXRoIGJldHdlZW4gMiBhc3NvY2lhdGlvbnMuCisKKwlEZWZhdWx0OiAzMDAwMAorCitzYWNrX3RpbWVvdXQgLSBJTlRFR0VSCisJVGhlIGFtb3VudCBvZiB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIHdpbGwgd2FpdAorCXRvIHNlbmQgYSBTQUNLLgorCisJRGVmYXVsdDogMjAwCisKK3ZhbGlkX2Nvb2tpZV9saWZlIC0gSU5URUdFUgorCVRoZSBkZWZhdWx0IGxpZmV0aW1lIG9mIHRoZSBTQ1RQIGNvb2tpZSAoaW4gbWlsbGlzZWNvbmRzKS4gIFRoZSBjb29raWUKKwlpcyB1c2VkIGR1cmluZyBhc3NvY2lhdGlvbiBlc3RhYmxpc2htZW50LgorCisJRGVmYXVsdDogNjAwMDAKKworY29va2llX3ByZXNlcnZlX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBleHRlbmQgdGhlIGxpZmV0aW1lIG9mIHRoZSBTQ1RQIGNvb2tpZQorCXRoYXQgaXMgdXNlZCBkdXJpbmcgdGhlIGVzdGFibGlzaG1lbnQgcGhhc2Ugb2YgU0NUUCBhc3NvY2lhdGlvbgorCisJMTogRW5hYmxlIGNvb2tpZSBsaWZldGltZSBleHRlbnNpb24uCisJMDogRGlzYWJsZQorCisJRGVmYXVsdDogMQorCityY3ZidWZfcG9saWN5IC0gSU5URUdFUgorCURldGVybWluZXMgaWYgdGhlIHJlY2VpdmUgYnVmZmVyIGlzIGF0dHJpYnV0ZWQgdG8gdGhlIHNvY2tldCBvciB0bworCWFzc29jaWF0aW9uLiAgIFNDVFAgc3VwcG9ydHMgdGhlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIG11bHRpcGxlCisJYXNzb2NpYXRpb25zIG9uIGEgc2luZ2xlIHNvY2tldC4gIFdoZW4gdXNpbmcgdGhpcyBjYXBhYmlsaXR5LCBpdCBpcworCXBvc3NpYmxlIHRoYXQgYSBzaW5nbGUgc3RhbGxlZCBhc3NvY2lhdGlvbiB0aGF0J3MgYnVmZmVyaW5nIGEgbG90CisJb2YgZGF0YSBtYXkgYmxvY2sgb3RoZXIgYXNzb2NpYXRpb25zIGZyb20gZGVsaXZlcmluZyB0aGVpciBkYXRhIGJ5CisJY29uc3VtaW5nIGFsbCBvZiB0aGUgcmVjZWl2ZSBidWZmZXIgc3BhY2UuICBUbyB3b3JrIGFyb3VuZCB0aGlzLAorCXRoZSByY3ZidWZfcG9saWN5IGNvdWxkIGJlIHNldCB0byBhdHRyaWJ1dGUgdGhlIHJlY2VpdmVyIGJ1ZmZlciBzcGFjZQorCXRvIGVhY2ggYXNzb2NpYXRpb24gaW5zdGVhZCBvZiB0aGUgc29ja2V0LiAgVGhpcyBwcmV2ZW50cyB0aGUgZGVzY3JpYmVkCisJYmxvY2tpbmcuCisKKwkxOiByY3ZidWYgc3BhY2UgaXMgcGVyIGFzc29jaWF0aW9uCisJMDogcmVjYnVmIHNwYWNlIGlzIHBlciBzb2NrZXQKKworCURlZmF1bHQ6IDAKKworc25kYnVmX3BvbGljeSAtIElOVEVHRVIKKwlTaW1pbGFyIHRvIHJjdmJ1Zl9wb2xpY3kgYWJvdmUsIHRoaXMgYXBwbGllcyB0byBzZW5kIGJ1ZmZlciBzcGFjZS4KKworCTE6IFNlbmQgYnVmZmVyIGlzIHRyYWNrZWQgcGVyIGFzc29jaWF0aW9uCisJMDogU2VuZCBidWZmZXIgaXMgdHJhY2tlZCBwZXIgc29ja2V0LgorCisJRGVmYXVsdDogMAorCitzY3RwX21lbSAtIHZlY3RvciBvZiAzIElOVEVHRVJzOiBtaW4sIHByZXNzdXJlLCBtYXgKKwlOdW1iZXIgb2YgcGFnZXMgYWxsb3dlZCBmb3IgcXVldWVpbmcgYnkgYWxsIFNDVFAgc29ja2V0cy4KKworCW1pbjogQmVsb3cgdGhpcyBudW1iZXIgb2YgcGFnZXMgU0NUUCBpcyBub3QgYm90aGVyZWQgYWJvdXQgaXRzCisJbWVtb3J5IGFwcGV0aXRlLiBXaGVuIGFtb3VudCBvZiBtZW1vcnkgYWxsb2NhdGVkIGJ5IFNDVFAgZXhjZWVkcworCXRoaXMgbnVtYmVyLCBTQ1RQIHN0YXJ0cyB0byBtb2RlcmF0ZSBtZW1vcnkgdXNhZ2UuCisKKwlwcmVzc3VyZTogVGhpcyB2YWx1ZSB3YXMgaW50cm9kdWNlZCB0byBmb2xsb3cgZm9ybWF0IG9mIHRjcF9tZW0uCisKKwltYXg6IE51bWJlciBvZiBwYWdlcyBhbGxvd2VkIGZvciBxdWV1ZWluZyBieSBhbGwgU0NUUCBzb2NrZXRzLgorCisJRGVmYXVsdCBpcyBjYWxjdWxhdGVkIGF0IGJvb3QgdGltZSBmcm9tIGFtb3VudCBvZiBhdmFpbGFibGUgbWVtb3J5LgorCitzY3RwX3JtZW0gLSB2ZWN0b3Igb2YgMyBJTlRFR0VSczogbWluLCBkZWZhdWx0LCBtYXgKKwlTZWUgdGNwX3JtZW0gZm9yIGEgZGVzY3JpcHRpb24uCisKK3NjdHBfd21lbSAgLSB2ZWN0b3Igb2YgMyBJTlRFR0VSczogbWluLCBkZWZhdWx0LCBtYXgKKwlTZWUgdGNwX3dtZW0gZm9yIGEgZGVzY3JpcHRpb24uCisKIFVORE9DVU1FTlRFRDoKIAotZGV2X3dlaWdodCBGSVhNRQotZGlzY292ZXJ5X3Nsb3RzIEZJWE1FCi1kaXNjb3ZlcnlfdGltZW91dCBGSVhNRQotZmFzdF9wb2xsX2luY3JlYXNlIEZJWE1FCi1pcDZfcXVldWVfbWF4bGVuIEZJWE1FCi1sYXBfa2VlcGFsaXZlX3RpbWUgRklYTUUKLWxvX2NvbmcgRklYTUUKLW1heF9iYXVkX3JhdGUgRklYTUUKLW1heF9kZ3JhbV9xbGVuIEZJWE1FCi1tYXhfbm9yZXBseV90aW1lIEZJWE1FCi1tYXhfdHhfZGF0YV9zaXplIEZJWE1FCi1tYXhfdHhfd2luZG93IEZJWE1FCi1taW5fdHhfdHVybl90aW1lIEZJWE1FCi1tb2RfY29uZyBGSVhNRQotbm9fY29uZyBGSVhNRQotbm9fY29uZ190aHJlc2ggRklYTUUKLXNsb3RfdGltZW91dCBGSVhNRQotd2Fybl9ub3JlcGx5X3RpbWUgRklYTUUKKy9wcm9jL3N5cy9uZXQvY29yZS8qCisJZGV2X3dlaWdodCBGSVhNRQogCisvcHJvYy9zeXMvbmV0L3VuaXgvKgorCW1heF9kZ3JhbV9xbGVuIEZJWE1FCisKKy9wcm9jL3N5cy9uZXQvaXJkYS8qCisJZmFzdF9wb2xsX2luY3JlYXNlIEZJWE1FCisJd2Fybl9ub3JlcGx5X3RpbWUgRklYTUUKKwlkaXNjb3Zlcnlfc2xvdHMgRklYTUUKKwlzbG90X3RpbWVvdXQgRklYTUUKKwltYXhfYmF1ZF9yYXRlIEZJWE1FCisJZGlzY292ZXJ5X3RpbWVvdXQgRklYTUUKKwlsYXBfa2VlcGFsaXZlX3RpbWUgRklYTUUKKwltYXhfbm9yZXBseV90aW1lIEZJWE1FCisJbWF4X3R4X2RhdGFfc2l6ZSBGSVhNRQorCW1heF90eF93aW5kb3cgRklYTUUKKwltaW5fdHhfdHVybl90aW1lIEZJWE1FCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvczJpby50eHQgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvczJpby50eHQKaW5kZXggNGJkZTUzZS4uMWUyOGUyZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3MyaW8udHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9zMmlvLnR4dApAQCAtODMsOSArODMsOSBAQAogRGVmYXVsdDogMzAgCiAKIGUuIGludHJfdHlwZQotU3BlY2lmaWVzIGludGVycnVwdCB0eXBlLiBQb3NzaWJsZSB2YWx1ZXMgMShJTlRBKSwgMihNU0kpLCAzKE1TSS1YKQotVmFsaWQgcmFuZ2U6IDEtMwotRGVmYXVsdDogMSAKK1NwZWNpZmllcyBpbnRlcnJ1cHQgdHlwZS4gUG9zc2libGUgdmFsdWVzIDAoSU5UQSksIDIoTVNJLVgpCitWYWxpZCB2YWx1ZXM6IDAsIDIKK0RlZmF1bHQ6IDIKIAogNS4gIFBlcmZvcm1hbmNlIHN1Z2dlc3Rpb25zCiBHZW5lcmFsOgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ubWlfd2F0Y2hkb2cudHh0IGIvRG9jdW1lbnRhdGlvbi9ubWlfd2F0Y2hkb2cudHh0CmluZGV4IDc1N2M3MjkuLjkwYWE0NTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbm1pX3dhdGNoZG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL25taV93YXRjaGRvZy50eHQKQEAgLTEwLDcgKzEwLDcgQEAKIHdoaWNoIGdldCBleGVjdXRlZCBldmVuIGlmIHRoZSBzeXN0ZW0gaXMgb3RoZXJ3aXNlIGxvY2tlZCB1cCBoYXJkKS4KIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGVidWcgaGFyZCBrZXJuZWwgbG9ja3Vwcy4gIEJ5IGV4ZWN1dGluZyBwZXJpb2RpYwogTk1JIGludGVycnVwdHMsIHRoZSBrZXJuZWwgY2FuIG1vbml0b3Igd2hldGhlciBhbnkgQ1BVIGhhcyBsb2NrZWQgdXAsCi1hbmQgcHJpbnQgb3V0IGRlYnVnZ2luZyBtZXNzYWdlcyBpZiBzby4gIAorYW5kIHByaW50IG91dCBkZWJ1Z2dpbmcgbWVzc2FnZXMgaWYgc28uCiAKIEluIG9yZGVyIHRvIHVzZSB0aGUgTk1JIHdhdGNoZG9nLCB5b3UgbmVlZCB0byBoYXZlIEFQSUMgc3VwcG9ydCBpbiB5b3VyCiBrZXJuZWwuIEZvciBTTVAga2VybmVscywgQVBJQyBzdXBwb3J0IGdldHMgY29tcGlsZWQgaW4gYXV0b21hdGljYWxseS4gRm9yCkBAIC0yMiw4ICsyMiw3IEBACiBrZXJuZWwgZGVidWdnaW5nIG9wdGlvbnMsIHN1Y2ggYXMgS2VybmVsIFN0YWNrIE1ldGVyIG9yIEtlcm5lbCBUcmFjZXIsCiBtYXkgaW1wbGljaXRseSBkaXNhYmxlIHRoZSBOTUkgd2F0Y2hkb2cuXQogCi1Gb3IgeDg2LTY0LCB0aGUgbmVlZGVkIEFQSUMgaXMgYWx3YXlzIGNvbXBpbGVkIGluLCBhbmQgdGhlIE5NSSB3YXRjaGRvZyBpcwotYWx3YXlzIGVuYWJsZWQgd2l0aCBJL08tQVBJQyBtb2RlIChubWlfd2F0Y2hkb2c9MSkuCitGb3IgeDg2LTY0LCB0aGUgbmVlZGVkIEFQSUMgaXMgYWx3YXlzIGNvbXBpbGVkIGluLgogCiBVc2luZyBsb2NhbCBBUElDIChubWlfd2F0Y2hkb2c9MikgbmVlZHMgdGhlIGZpcnN0IHBlcmZvcm1hbmNlIHJlZ2lzdGVyLCBzbwogeW91IGNhbid0IHVzZSBpdCBmb3Igb3RoZXIgcHVycG9zZXMgKHN1Y2ggYXMgaGlnaCBwcmVjaXNpb24gcGVyZm9ybWFuY2UKQEAgLTYzLDE2ICs2MiwxNSBAQAogImhsdCIsIHRoZW4geW91IGFyZSBvdXQgb2YgbHVjayAtLSB0aGUgZXZlbnQgd2lsbCBub3QgaGFwcGVuIGF0IGFsbCBhbmQgdGhlCiB3YXRjaGRvZyB3b24ndCB0cmlnZ2VyLiBUaGlzIGlzIGEgc2hvcnRjb21pbmcgb2YgdGhlIGxvY2FsIEFQSUMgd2F0Y2hkb2cKIC0tIHVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgbm8gImNsb2NrIHRpY2tzIiBldmVudCB0aGF0IHdvdWxkIHdvcmsgYWxsIHRoZQotdGltZS4gVGhlIEkvTyBBUElDIHdhdGNoZG9nIGlzIGRyaXZlbiBleHRlcm5hbGx5IGFuZCBoYXMgbm8gc3VjaCBzaG9ydGNvbWluZy4gIAordGltZS4gVGhlIEkvTyBBUElDIHdhdGNoZG9nIGlzIGRyaXZlbiBleHRlcm5hbGx5IGFuZCBoYXMgbm8gc3VjaCBzaG9ydGNvbWluZy4KIEJ1dCBpdHMgTk1JIGZyZXF1ZW5jeSBpcyBtdWNoIGhpZ2hlciwgcmVzdWx0aW5nIGluIGEgbW9yZSBzaWduaWZpY2FudCBoaXQKIHRvIHRoZSBvdmVyYWxsIHN5c3RlbSBwZXJmb3JtYW5jZS4KIAotTk9URTogc3RhcnRpbmcgd2l0aCAyLjQuMi1hYzE4IHRoZSBOTUktb29wc2VyIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsCi15b3UgaGF2ZSB0byBlbmFibGUgaXQgd2l0aCBhIGJvb3QgdGltZSBwYXJhbWV0ZXIuICBQcmlvciB0byAyLjQuMi1hYzE4Ci10aGUgTk1JLW9vcHNlciBpcyBlbmFibGVkIHVuY29uZGl0aW9uYWxseSBvbiB4ODYgU01QIGJveGVzLgorT24geDg2IG5taV93YXRjaGRvZyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IHNvIHlvdSBoYXZlIHRvIGVuYWJsZSBpdCB3aXRoCithIGJvb3QgdGltZSBwYXJhbWV0ZXIuCiAKLU9uIHg4Ni02NCB0aGUgTk1JIG9vcHNlciBpcyBvbiBieSBkZWZhdWx0LiBPbiA2NGJpdCBJbnRlbCBDUFVzCi1pdCB1c2VzIElPLUFQSUMgYnkgZGVmYXVsdCBhbmQgb24gQU1EIGl0IHVzZXMgbG9jYWwgQVBJQy4KK05PVEU6IEluIGtlcm5lbHMgcHJpb3IgdG8gMi40LjItYWMxOCB0aGUgTk1JLW9vcHNlciBpcyBlbmFibGVkIHVuY29uZGl0aW9uYWxseQorb24geDg2IFNNUCBib3hlcy4KIAogWyBmZWVsIGZyZWUgdG8gc2VuZCBidWcgcmVwb3J0cywgc3VnZ2VzdGlvbnMgYW5kIHBhdGNoZXMgdG8KICAgSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+IG9yIHRoZSBMaW51eCBTTVAgbWFpbGluZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZG9tYWlucy50eHQgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dAppbmRleCBhOWU5OTBhLi4zNzNjZWFjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dApAQCAtNjEsMTAgKzYxLDcgQEAKIGFyY2hfaW5pdF9zY2hlZF9kb21haW5zIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYXR0YWNoIGRvbWFpbnMgdG8gYWxsCiBDUFVzIHVzaW5nIGNwdV9hdHRhY2hfZG9tYWluLgogCi1JbXBsZW1lbnRvcnMgc2hvdWxkIGNoYW5nZSB0aGUgbGluZQotI3VuZGVmIFNDSEVEX0RPTUFJTl9ERUJVRwotdG8KLSNkZWZpbmUgU0NIRURfRE9NQUlOX0RFQlVHCi1pbiBrZXJuZWwvc2NoZWQuYyBhcyB0aGlzIGVuYWJsZXMgYW4gZXJyb3IgY2hlY2tpbmcgcGFyc2Ugb2YgdGhlIHNjaGVkIGRvbWFpbnMKK1RoZSBzY2hlZC1kb21haW5zIGRlYnVnZ2luZyBpbmZyYXN0cnVjdHVyZSBjYW4gYmUgZW5hYmxlZCBieSBlbmFibGluZworQ09ORklHX1NDSEVEX0RFQlVHLiBUaGlzIGVuYWJsZXMgYW4gZXJyb3IgY2hlY2tpbmcgcGFyc2Ugb2YgdGhlIHNjaGVkIGRvbWFpbnMKIHdoaWNoIHNob3VsZCBjYXRjaCBtb3N0IHBvc3NpYmxlIGVycm9ycyAoZGVzY3JpYmVkIGFib3ZlKS4gSXQgYWxzbyBwcmludHMgb3V0CiB0aGUgZG9tYWluIHN0cnVjdHVyZSBpbiBhIHZpc3VhbCBmb3JtYXQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1ydC1ncm91cC50eHQgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1ydC1ncm91cC50eHQKaW5kZXggMTRmOTAxZi4uM2VmMzM5ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtcnQtZ3JvdXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLXJ0LWdyb3VwLnR4dApAQCAtNTEsOSArNTEsOSBAQAogMC4wMDAxNXMuIFNvIHRoaXMgZ3JvdXAgY2FuIGJlIHNjaGVkdWxlZCB3aXRoIGEgcGVyaW9kIG9mIDAuMDA1cyBhbmQgYSBydW4gdGltZQogb2YgMC4wMDAxNXMuCiAKLVRoZSByZW1haW5pbmcgQ1BVIHRpbWUgd2lsbCBiZSB1c2VkIGZvciB1c2VyIGlucHV0IGFuZCBvdGhlciB0YXNzLiBCZWNhdXNlCitUaGUgcmVtYWluaW5nIENQVSB0aW1lIHdpbGwgYmUgdXNlZCBmb3IgdXNlciBpbnB1dCBhbmQgb3RoZXIgdGFza3MuIEJlY2F1c2UKIHJlYWx0aW1lIHRhc2tzIGhhdmUgZXhwbGljaXRseSBhbGxvY2F0ZWQgdGhlIENQVSB0aW1lIHRoZXkgbmVlZCB0byBwZXJmb3JtCi10aGVpciB0YXNrcywgYnVmZmVyIHVuZGVycnVucyBpbiB0aGUgZ3JhcGhvY3Mgb3IgYXVkaW8gY2FuIGJlIGVsaW1pbmF0ZWQuCit0aGVpciB0YXNrcywgYnVmZmVyIHVuZGVycnVucyBpbiB0aGUgZ3JhcGhpY3Mgb3IgYXVkaW8gY2FuIGJlIGVsaW1pbmF0ZWQuCiAKIE5PVEU6IHRoZSBhYm92ZSBleGFtcGxlIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCBhcyBvZiB5ZXQgKDIuNi4yNSkuIFdlIHN0aWxsCiBsYWNrIGFuIEVERiBzY2hlZHVsZXIgdG8gbWFrZSBub24tdW5pZm9ybSBwZXJpb2RzIHVzYWJsZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9BTFNBLUNvbmZpZ3VyYXRpb24udHh0IGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKaW5kZXggMGJiZWUzOC4uNzJhZmY2MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKQEAgLTc1Myw4ICs3NTMsMTEgQEAKIAogICAgIFtNdWx0aXBsZSBvcHRpb25zIGZvciBlYWNoIGNhcmQgaW5zdGFuY2VdCiAgICAgbW9kZWwJLSBmb3JjZSB0aGUgbW9kZWwgbmFtZQotICAgIHBvc2l0aW9uX2ZpeCAtIEZpeCBETUEgcG9pbnRlciAoMCA9IGF1dG8sIDEgPSBub25lLCAyID0gUE9TQlVGLCAzID0gRklGTyBzaXplKQorICAgIHBvc2l0aW9uX2ZpeCAtIEZpeCBETUEgcG9pbnRlciAoMCA9IGF1dG8sIDEgPSB1c2UgTFBJQiwgMiA9IFBPU0JVRikKICAgICBwcm9iZV9tYXNrICAtIEJpdG1hc2sgdG8gcHJvYmUgY29kZWNzIChkZWZhdWx0ID0gLTEsIG1lYW5pbmcgYWxsIHNsb3RzKQorICAgIGJkbF9wb3NfYWRqCS0gU3BlY2lmaWVzIHRoZSBETUEgSVJRIHRpbWluZyBkZWxheSBpbiBzYW1wbGVzLgorCQlQYXNzaW5nIC0xIHdpbGwgbWFrZSB0aGUgZHJpdmVyIHRvIGNob29zZSB0aGUgYXBwcm9wcmlhdGUKKwkJdmFsdWUgYmFzZWQgb24gdGhlIGNvbnRyb2xsZXIgY2hpcC4KICAgICAKICAgICBbU2luZ2xlIChnbG9iYWwpIG9wdGlvbnNdCiAgICAgc2luZ2xlX2NtZCAgLSBVc2Ugc2luZ2xlIGltbWVkaWF0ZSBjb21tYW5kcyB0byBjb21tdW5pY2F0ZSB3aXRoCkBAIC04NDUsNyArODQ4LDcgQEAKIAlBTEMyNjkKIAkgIGJhc2ljCQlCYXNpYyBwcmVzZXQKIAotCUFMQzY2MgorCUFMQzY2Mi82NjMKIAkgIDNzdGFjay1kaWcJMy1zdGFjayAoMi1jaGFubmVsKSB3aXRoIFNQRElGCiAJICAzc3RhY2stNmNoCSAzLXN0YWNrICg2LWNoYW5uZWwpCiAJICAzc3RhY2stNmNoLWRpZyAzLXN0YWNrICg2LWNoYW5uZWwpIHdpdGggU1BESUYKQEAgLTg1Myw2ICs4NTYsMTAgQEAKIAkgIGxlbm92by0xMDFlCSBMZW5vdm8gbGFwdG9wCiAJICBlZWVwYy1wNzAxCUFTVVMgRWVlcGMgUDcwMQogCSAgZWVlcGMtZXAyMAlBU1VTIEVlZXBjIEVQMjAKKwkgIG01MXZhCQlBU1VTIE01MVZBCisJICBnNzF2CQlBU1VTIEc3MVYKKwkgIGgxMwkJQVNVUyBIMTMKKwkgIGc1MHYJCUFTVVMgRzUwVgogCSAgYXV0bwkJYXV0by1jb25maWcgcmVhZGluZyBCSU9TIChkZWZhdWx0KQogCiAJQUxDODgyLzg4NQpAQCAtMTA5MSw3ICsxMDk4LDcgQEAKICAgICBUaGlzIG9jY3VycyB3aGVuIHRoZSBhY2Nlc3MgdG8gbm9uLWV4aXN0aW5nIG9yIG5vbi13b3JraW5nIGNvZGVjIHNsb3QKICAgICAobGlrZWx5IGEgbW9kZW0gb25lKSBjYXVzZXMgYSBzdGFsbCBvZiB0aGUgY29tbXVuaWNhdGlvbiB2aWEgSEQtYXVkaW8KICAgICBidXMuICBZb3UgY2FuIHNlZSB3aGljaCBjb2RlYyBzbG90cyBhcmUgcHJvYmVkIGJ5IGVuYWJsaW5nCi0gICAgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QsIG9yIHNpbXBseSBmcm9tIHRoZSBmaWxlIG5hbWUgb2YgdGhlIGNvZGVjCisgICAgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFLCBvciBzaW1wbHkgZnJvbSB0aGUgZmlsZSBuYW1lIG9mIHRoZSBjb2RlYwogICAgIHByb2MgZmlsZXMuICBUaGVuIGxpbWl0IHRoZSBzbG90cyB0byBwcm9iZSBieSBwcm9iZV9tYXNrIG9wdGlvbi4KICAgICBGb3IgZXhhbXBsZSwgcHJvYmVfbWFzaz0xIG1lYW5zIHRvIHByb2JlIG9ubHkgdGhlIGZpcnN0IHNsb3QsIGFuZAogICAgIHByb2JlX21hc2s9NCBtZWFucyBvbmx5IHRoZSB0aGlyZCBzbG90LgpAQCAtMjI2Nyw2ICsyMjc0LDEwIEBACiBvdGhlciBkcml2ZXIgKGUuZy4gc25kLXVzYi1hdWRpbykgaXMgbG9hZGVkIGJlZm9yZSBzbmQtaW50ZXJ3YXZlIG9yCiBzbmQtZW5zMTM3MSwgaXQgd2lsbCBiZSBhc3NpZ25lZCB0byB0aGUgdGhpcmQgb3IgbGF0ZXIgc2xvdC4KIAorV2hlbiBhIG1vZHVsZSBuYW1lIGlzIGdpdmVuIHdpdGggJyEnLCB0aGUgc2xvdCB3aWxsIGJlIGdpdmVuIGZvciBhbnkKK21vZHVsZXMgYnV0IHRoYXQgbmFtZS4gIEZvciBleGFtcGxlLCAic2xvdHM9IXNuZC1wY3NwIiB3aWxsIHJlc2VydmUKK3RoZSBmaXJzdCBzbG90IGZvciBhbnkgbW9kdWxlcyBidXQgc25kLXBjc3AuIAorCiAKIEFMU0EgUENNIGRldmljZXMgdG8gT1NTIGRldmljZXMgbWFwcGluZwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwKaW5kZXggYjAzZGY0ZDQuLmUxM2M0ZTYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9Eb2NCb29rL3dyaXRpbmctYW4tYWxzYS1kcml2ZXIudG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwKQEAgLTYxMjcsOCArNjEyNyw4IEBACiAKICAgICAgIDxwYXJhPgogICAgICAgICA8ZnVuY3Rpb24+c25kX3ByaW50ZGQoKTwvZnVuY3Rpb24+IGlzIGNvbXBpbGVkIGluIG9ubHkgd2hlbgotICAgICAgPGNvbnN0YW50PkNPTkZJR19TTkRfREVCVUdfREVURUNUPC9jb25zdGFudD4gaXMgc2V0LiBQbGVhc2Ugbm90ZQotICAgICAgdGhhdCA8Y29uc3RhbnQ+REVCVUdfREVURUNUPC9jb25zdGFudD4gaXMgbm90IHNldCBhcyBkZWZhdWx0CisgICAgICA8Y29uc3RhbnQ+Q09ORklHX1NORF9ERUJVR19WRVJCT1NFPC9jb25zdGFudD4gaXMgc2V0LiBQbGVhc2Ugbm90ZQorICAgICAgdGhhdCA8Y29uc3RhbnQ+Q09ORklHX1NORF9ERUJVR19WRVJCT1NFPC9jb25zdGFudD4gaXMgbm90IHNldCBhcyBkZWZhdWx0CiAgICAgICBldmVuIGlmIHlvdSBjb25maWd1cmUgdGhlIGFsc2EtZHJpdmVyIHdpdGgKICAgICAgIDxvcHRpb24+LS13aXRoLWRlYnVnPWZ1bGw8L29wdGlvbj4gb3B0aW9uLiBZb3UgbmVlZCB0byBnaXZlCiAgICAgICBleHBsaWNpdGx5IDxvcHRpb24+LS13aXRoLWRlYnVnPWRldGVjdDwvb3B0aW9uPiBvcHRpb24gaW5zdGVhZC4gCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYWNlcnMvbW1pb3RyYWNlLnR4dCBiL0RvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YWZiNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3RyYWNlcnMvbW1pb3RyYWNlLnR4dApAQCAtMCwwICsxLDE2NCBAQAorCQlJbi1rZXJuZWwgbWVtb3J5LW1hcHBlZCBJL08gdHJhY2luZworCisKK0hvbWUgcGFnZSBhbmQgbGlua3MgdG8gb3B0aW9uYWwgdXNlciBzcGFjZSB0b29sczoKKworCWh0dHA6Ly9ub3V2ZWF1LmZyZWVkZXNrdG9wLm9yZy93aWtpL01taW9UcmFjZQorCitNTUlPIHRyYWNpbmcgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGJ5IEludGVsIGFyb3VuZCAyMDAzIGZvciB0aGVpciBGYXVsdAorSW5qZWN0aW9uIFRlc3QgSGFybmVzcy4gSW4gRGVjIDIwMDYgLSBKYW4gMjAwNywgdXNpbmcgdGhlIGNvZGUgZnJvbSBJbnRlbCwKK0plZmYgTXVpemVsYWFyIGNyZWF0ZWQgYSB0b29sIGZvciB0cmFjaW5nIE1NSU8gYWNjZXNzZXMgd2l0aCB0aGUgTm91dmVhdQorcHJvamVjdCBpbiBtaW5kLiBTaW5jZSB0aGVuIG1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQuCisKK01taW90cmFjZSB3YXMgYnVpbHQgZm9yIHJldmVyc2UgZW5naW5lZXJpbmcgYW55IG1lbW9yeS1tYXBwZWQgSU8gZGV2aWNlIHdpdGgKK3RoZSBOb3V2ZWF1IHByb2plY3QgYXMgdGhlIGZpcnN0IHJlYWwgdXNlci4gT25seSB4ODYgYW5kIHg4Nl82NCBhcmNoaXRlY3R1cmVzCithcmUgc3VwcG9ydGVkLgorCitPdXQtb2YtdHJlZSBtbWlvdHJhY2Ugd2FzIG9yaWdpbmFsbHkgbW9kaWZpZWQgZm9yIG1haW5saW5lIGluY2x1c2lvbiBhbmQKK2Z0cmFjZSBmcmFtZXdvcmsgYnkgUGVra2EgUGFhbGFuZW4gPHBxQGlraS5maT4uCisKKworUHJlcGFyYXRpb24KKy0tLS0tLS0tLS0tCisKK01taW90cmFjZSBmZWF0dXJlIGlzIGNvbXBpbGVkIGluIGJ5IHRoZSBDT05GSUdfTU1JT1RSQUNFIG9wdGlvbi4gVHJhY2luZyBpcworZGlzYWJsZWQgYnkgZGVmYXVsdCwgc28gaXQgaXMgc2FmZSB0byBoYXZlIHRoaXMgc2V0IHRvIHllcy4gU01QIHN5c3RlbXMgYXJlCitzdXBwb3J0ZWQsIGJ1dCB0cmFjaW5nIGlzIHVucmVsaWFibGUgYW5kIG1heSBtaXNzIGV2ZW50cyBpZiBtb3JlIHRoYW4gb25lIENQVQoraXMgb24tbGluZSwgdGhlcmVmb3JlIG1taW90cmFjZSB0YWtlcyBhbGwgYnV0IG9uZSBDUFUgb2ZmLWxpbmUgZHVyaW5nIHJ1bi10aW1lCithY3RpdmF0aW9uLiBZb3UgY2FuIHJlLWVuYWJsZSBDUFVzIGJ5IGhhbmQsIGJ1dCB5b3UgaGF2ZSBiZWVuIHdhcm5lZCwgdGhlcmUKK2lzIG5vIHdheSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCBpZiB5b3UgYXJlIGxvc2luZyBldmVudHMgZHVlIHRvIENQVXMgcmFjaW5nLgorCisKK1VzYWdlIFF1aWNrIFJlZmVyZW5jZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyQgbW91bnQgLXQgZGVidWdmcyBkZWJ1Z2ZzIC9kZWJ1ZworJCBlY2hvIG1taW90cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCiskIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9waXBlID4gbXlkdW1wLnR4dCAmCitTdGFydCBYIG9yIHdoYXRldmVyLgorJCBlY2hvICJYIGlzIHVwIiA+IC9kZWJ1Zy90cmFjaW5nL21hcmtlcgorJCBlY2hvIG5vbmUgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorQ2hlY2sgZm9yIGxvc3QgZXZlbnRzLgorCisKK1VzYWdlCistLS0tLQorCitNYWtlIHN1cmUgZGVidWdmcyBpcyBtb3VudGVkIHRvIC9kZWJ1Zy4gSWYgbm90LCAocmVxdWlyZXMgcm9vdCBwcml2aWxlZ2VzKQorJCBtb3VudCAtdCBkZWJ1Z2ZzIGRlYnVnZnMgL2RlYnVnCisKK0NoZWNrIHRoYXQgdGhlIGRyaXZlciB5b3UgYXJlIGFib3V0IHRvIHRyYWNlIGlzIG5vdCBsb2FkZWQuCisKK0FjdGl2YXRlIG1taW90cmFjZSAocmVxdWlyZXMgcm9vdCBwcml2aWxlZ2VzKToKKyQgZWNobyBtbWlvdHJhY2UgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorCitTdGFydCBzdG9yaW5nIHRoZSB0cmFjZToKKyQgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgPiBteWR1bXAudHh0ICYKK1RoZSAnY2F0JyBwcm9jZXNzIHNob3VsZCBzdGF5IHJ1bm5pbmcgKHNsZWVwaW5nKSBpbiB0aGUgYmFja2dyb3VuZC4KKworTG9hZCB0aGUgZHJpdmVyIHlvdSB3YW50IHRvIHRyYWNlIGFuZCB1c2UgaXQuIE1taW90cmFjZSB3aWxsIG9ubHkgY2F0Y2ggTU1JTworYWNjZXNzZXMgdG8gYXJlYXMgdGhhdCBhcmUgaW9yZW1hcHBlZCB3aGlsZSBtbWlvdHJhY2UgaXMgYWN0aXZlLgorCitbVW5pbXBsZW1lbnRlZCBmZWF0dXJlOl0KK0R1cmluZyB0cmFjaW5nIHlvdSBjYW4gcGxhY2UgY29tbWVudHMgKG1hcmtlcnMpIGludG8gdGhlIHRyYWNlIGJ5CiskIGVjaG8gIlggaXMgdXAiID4gL2RlYnVnL3RyYWNpbmcvbWFya2VyCitUaGlzIG1ha2VzIGl0IGVhc2llciB0byBzZWUgd2hpY2ggcGFydCBvZiB0aGUgKGh1Z2UpIHRyYWNlIGNvcnJlc3BvbmRzIHRvCit3aGljaCBhY3Rpb24uIEl0IGlzIHJlY29tbWVuZGVkIHRvIHBsYWNlIGRlc2NyaXB0aXZlIG1hcmtlcnMgYWJvdXQgd2hhdCB5b3UKK2RvLgorCitTaHV0IGRvd24gbW1pb3RyYWNlIChyZXF1aXJlcyByb290IHByaXZpbGVnZXMpOgorJCBlY2hvIG5vbmUgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorVGhlICdjYXQnIHByb2Nlc3MgZXhpdHMuIElmIGl0IGRvZXMgbm90LCBraWxsIGl0IGJ5IGlzc3VpbmcgJ2ZnJyBjb21tYW5kIGFuZAorcHJlc3NpbmcgY3RybCtjLgorCitDaGVjayB0aGF0IG1taW90cmFjZSBkaWQgbm90IGxvc2UgZXZlbnRzIGR1ZSB0byBhIGJ1ZmZlciBmaWxsaW5nIHVwLiBFaXRoZXIKKyQgZ3JlcCAtaSBsb3N0IG15ZHVtcC50eHQKK3doaWNoIHRlbGxzIHlvdSBleGFjdGx5IGhvdyBtYW55IGV2ZW50cyB3ZXJlIGxvc3QsIG9yIHVzZQorJCBkbWVzZwordG8gdmlldyB5b3VyIGtlcm5lbCBsb2cgYW5kIGxvb2sgZm9yICJtbWlvdHJhY2UgaGFzIGxvc3QgZXZlbnRzIiB3YXJuaW5nLiBJZgorZXZlbnRzIHdlcmUgbG9zdCwgdGhlIHRyYWNlIGlzIGluY29tcGxldGUuIFlvdSBzaG91bGQgZW5sYXJnZSB0aGUgYnVmZmVycyBhbmQKK3RyeSBhZ2Fpbi4gQnVmZmVycyBhcmUgZW5sYXJnZWQgYnkgZmlyc3Qgc2VlaW5nIGhvdyBsYXJnZSB0aGUgY3VycmVudCBidWZmZXJzCithcmU6CiskIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCitnaXZlcyB5b3UgYSBudW1iZXIuIEFwcHJveGltYXRlbHkgZG91YmxlIHRoaXMgbnVtYmVyIGFuZCB3cml0ZSBpdCBiYWNrLCBmb3IKK2luc3RhbmNlOgorJCBlY2hvIDEyODAwMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKK1RoZW4gc3RhcnQgYWdhaW4gZnJvbSB0aGUgdG9wLgorCitJZiB5b3UgYXJlIGRvaW5nIGEgdHJhY2UgZm9yIGEgZHJpdmVyIHByb2plY3QsIGUuZy4gTm91dmVhdSwgeW91IHNob3VsZCBhbHNvCitkbyB0aGUgZm9sbG93aW5nIGJlZm9yZSBzZW5kaW5nIHlvdXIgcmVzdWx0czoKKyQgbHNwY2kgLXZ2diA+IGxzcGNpLnR4dAorJCBkbWVzZyA+IGRtZXNnLnR4dAorJCB0YXIgemNmIHBjaWlkLW5pY2stbW1pb3RyYWNlLnRhci5neiBteWR1bXAudHh0IGxzcGNpLnR4dCBkbWVzZy50eHQKK2FuZCB0aGVuIHNlbmQgdGhlIC50YXIuZ3ogZmlsZS4gVGhlIHRyYWNlIGNvbXByZXNzZXMgY29uc2lkZXJhYmx5LiBSZXBsYWNlCisicGNpaWQiIGFuZCAibmljayIgd2l0aCB0aGUgUENJIElEIG9yIG1vZGVsIG5hbWUgb2YgeW91ciBwaWVjZSBvZiBoYXJkd2FyZQordW5kZXIgaW52ZXN0aWdhdGlvbiBhbmQgeW91ciBuaWNrIG5hbWUuCisKKworSG93IE1taW90cmFjZSBXb3JrcworLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBY2Nlc3MgdG8gaGFyZHdhcmUgSU8tbWVtb3J5IGlzIGdhaW5lZCBieSBtYXBwaW5nIGFkZHJlc3NlcyBmcm9tIFBDSSBidXMgYnkKK2NhbGxpbmcgb25lIG9mIHRoZSBpb3JlbWFwXyooKSBmdW5jdGlvbnMuIE1taW90cmFjZSBpcyBob29rZWQgaW50byB0aGUKK19faW9yZW1hcCgpIGZ1bmN0aW9uIGFuZCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIG1hcHBpbmcgaXMgY3JlYXRlZC4gTWFwcGluZyBpcworYW4gZXZlbnQgdGhhdCBpcyByZWNvcmRlZCBpbnRvIHRoZSB0cmFjZSBsb2cuIE5vdGUsIHRoYXQgSVNBIHJhbmdlIG1hcHBpbmdzCithcmUgbm90IGNhdWdodCwgc2luY2UgdGhlIG1hcHBpbmcgYWx3YXlzIGV4aXN0cyBhbmQgaXMgcmV0dXJuZWQgZGlyZWN0bHkuCisKK01NSU8gYWNjZXNzZXMgYXJlIHJlY29yZGVkIHZpYSBwYWdlIGZhdWx0cy4gSnVzdCBiZWZvcmUgX19pb3JlbWFwKCkgcmV0dXJucywKK3RoZSBtYXBwZWQgcGFnZXMgYXJlIG1hcmtlZCBhcyBub3QgcHJlc2VudC4gQW55IGFjY2VzcyB0byB0aGUgcGFnZXMgY2F1c2VzIGEKK2ZhdWx0LiBUaGUgcGFnZSBmYXVsdCBoYW5kbGVyIGNhbGxzIG1taW90cmFjZSB0byBoYW5kbGUgdGhlIGZhdWx0LiBNbWlvdHJhY2UKK21hcmtzIHRoZSBwYWdlIHByZXNlbnQsIHNldHMgVEYgZmxhZyB0byBhY2hpZXZlIHNpbmdsZSBzdGVwcGluZyBhbmQgZXhpdHMgdGhlCitmYXVsdCBoYW5kbGVyLiBUaGUgaW5zdHJ1Y3Rpb24gdGhhdCBmYXVsdGVkIGlzIGV4ZWN1dGVkIGFuZCBkZWJ1ZyB0cmFwIGlzCitlbnRlcmVkLiBIZXJlIG1taW90cmFjZSBhZ2FpbiBtYXJrcyB0aGUgcGFnZSBhcyBub3QgcHJlc2VudC4gVGhlIGluc3RydWN0aW9uCitpcyBkZWNvZGVkIHRvIGdldCB0aGUgdHlwZSBvZiBvcGVyYXRpb24gKHJlYWQvd3JpdGUpLCBkYXRhIHdpZHRoIGFuZCB0aGUgdmFsdWUKK3JlYWQgb3Igd3JpdHRlbi4gVGhlc2UgYXJlIHN0b3JlZCB0byB0aGUgdHJhY2UgbG9nLgorCitTZXR0aW5nIHRoZSBwYWdlIHByZXNlbnQgaW4gdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciBoYXMgYSByYWNlIGNvbmRpdGlvbiBvbiBTTVAKK21hY2hpbmVzLiBEdXJpbmcgdGhlIHNpbmdsZSBzdGVwcGluZyBvdGhlciBDUFVzIG1heSBydW4gZnJlZWx5IG9uIHRoYXQgcGFnZQorYW5kIGV2ZW50cyBjYW4gYmUgbWlzc2VkIHdpdGhvdXQgYSBub3RpY2UuIFJlLWVuYWJsaW5nIG90aGVyIENQVXMgZHVyaW5nCit0cmFjaW5nIGlzIGRpc2NvdXJhZ2VkLgorCisKK1RyYWNlIExvZyBGb3JtYXQKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHJhdyBsb2cgaXMgdGV4dCBhbmQgZWFzaWx5IGZpbHRlcmVkIHdpdGggZS5nLiBncmVwIGFuZCBhd2suIE9uZSByZWNvcmQgaXMKK29uZSBsaW5lIGluIHRoZSBsb2cuIEEgcmVjb3JkIHN0YXJ0cyB3aXRoIGEga2V5d29yZCwgZm9sbG93ZWQgYnkga2V5d29yZAorZGVwZW5kYW50IGFyZ3VtZW50cy4gQXJndW1lbnRzIGFyZSBzZXBhcmF0ZWQgYnkgYSBzcGFjZSwgb3IgY29udGludWUgdW50aWwgdGhlCitlbmQgb2YgbGluZS4gVGhlIGZvcm1hdCBmb3IgdmVyc2lvbiAyMDA3MDgyNCBpcyBhcyBmb2xsb3dzOgorCitFeHBsYW5hdGlvbglLZXl3b3JkCVNwYWNlIHNlcGFyYXRlZCBhcmd1bWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCityZWFkIGV2ZW50CVIJd2lkdGgsIHRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmFsdWUsIFBDLCBQSUQKK3dyaXRlIGV2ZW50CVcJd2lkdGgsIHRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmFsdWUsIFBDLCBQSUQKK2lvcmVtYXAgZXZlbnQJTUFQCXRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmlydHVhbCwgbGVuZ3RoLCBQQywgUElECitpb3VubWFwIGV2ZW50CVVOTUFQCXRpbWVzdGFtcCwgbWFwIGlkLCBQQywgUElECittYXJrZXIJCU1BUksJdGltZXN0YW1wLCB0ZXh0Cit2ZXJzaW9uCQlWRVJTSU9OCXRoZSBzdHJpbmcgIjIwMDcwODI0IgoraW5mbyBmb3IgcmVhZGVyCUxTUENJCW9uZSBsaW5lIGZyb20gbHNwY2kgLXYKK1BDSSBhZGRyZXNzIG1hcAlQQ0lERVYJc3BhY2Ugc2VwYXJhdGVkIC9wcm9jL2J1cy9wY2kvZGV2aWNlcyBkYXRhCit1bmsuIG9wY29kZQlVTktOT1dOCXRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgZGF0YSwgUEMsIFBJRAorCitUaW1lc3RhbXAgaXMgaW4gc2Vjb25kcyB3aXRoIGRlY2ltYWxzLiBQaHlzaWNhbCBpcyBhIFBDSSBidXMgYWRkcmVzcywgdmlydHVhbAoraXMgYSBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLiBXaWR0aCBpcyB0aGUgZGF0YSB3aWR0aCBpbiBieXRlcyBhbmQgdmFsdWUgaXMgdGhlCitkYXRhIHZhbHVlLiBNYXAgaWQgaXMgYW4gYXJiaXRyYXJ5IGlkIG51bWJlciBpZGVudGlmeWluZyB0aGUgbWFwcGluZyB0aGF0IHdhcwordXNlZCBpbiBhbiBvcGVyYXRpb24uIFBDIGlzIHRoZSBwcm9ncmFtIGNvdW50ZXIgYW5kIFBJRCBpcyBwcm9jZXNzIGlkLiBQQyBpcworemVybyBpZiBpdCBpcyBub3QgcmVjb3JkZWQuIFBJRCBpcyBhbHdheXMgemVybyBhcyB0cmFjaW5nIE1NSU8gYWNjZXNzZXMKK29yaWdpbmF0aW5nIGluIHVzZXIgc3BhY2UgbWVtb3J5IGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorCitGb3IgaW5zdGFuY2UsIHRoZSBmb2xsb3dpbmcgYXdrIGZpbHRlciB3aWxsIHBhc3MgYWxsIDMyLWJpdCB3cml0ZXMgdGhhdCB0YXJnZXQKK3BoeXNpY2FsIGFkZHJlc3NlcyBpbiB0aGUgcmFuZ2UgWzB4ZmI3M2NlNDAsIDB4ZmI4MDAwMDBbCisKKyQgYXdrICcvVyA0IC8geyBhZHI9c3RydG9udW0oJDUpOyBpZiAoYWRyID49IDB4ZmI3M2NlNDAgJiYKK2FkciA8IDB4ZmI4MDAwMDApIHByaW50OyB9JworCisKK1Rvb2xzIGZvciBEZXZlbG9wZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgdXNlciBzcGFjZSB0b29scyBpbmNsdWRlIHV0aWxpdGllcyBmb3I6CistIHJlcGxhY2luZyBudW1lcmljIGFkZHJlc3NlcyBhbmQgdmFsdWVzIHdpdGggaGFyZHdhcmUgcmVnaXN0ZXIgbmFtZXMKKy0gcmVwbGF5aW5nIE1NSU8gbG9ncywgaS5lLiwgcmUtZXhlY3V0aW5nIHRoZSByZWNvcmRlZCB3cml0ZXMKKworCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpZGVvNGxpbnV4L0NBUkRMSVNULmF1MDgyOCBiL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CmluZGV4IGFhYWUzNjAuLjg2ZDFjOGUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CisrKyBiL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CkBAIC0xLDQgKzEsNCBAQAogICAwIC0+IFVua25vd24gYm9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkKLSAgMSAtPiBIYXVwcGF1Z2UgSFZSOTUwUSAgICAgICAgICAgICAgICAgICAgICAgIChhdTA4MjgpICAgICAgICBbMjA0MDo3MjAwXQorICAxIC0+IEhhdXBwYXVnZSBIVlI5NTBRICAgICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkgICAgICAgIFsyMDQwOjcyMDAsMjA0MDo3MjEwLDIwNDA6NzIxNywyMDQwOjcyMWIsMjA0MDo3MjFmLDIwNDA6NzI4MCwwZmQ5OjAwMDhdCiAgIDIgLT4gSGF1cHBhdWdlIEhWUjg1MCAgICAgICAgICAgICAgICAgICAgICAgICAoYXUwODI4KSAgICAgICAgWzIwNDA6NzI0MF0KICAgMyAtPiBEVmlDTyBGdXNpb25IRFRWIFVTQiAgICAgICAgICAgICAgICAgICAgIChhdTA4MjgpICAgICAgICBbMGZlOTpkNjIwXQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92bS9zbGFiaW5mby5jIGIvRG9jdW1lbnRhdGlvbi92bS9zbGFiaW5mby5jCmluZGV4IGU0MjMwZWQuLmRmMzIyNzYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdm0vc2xhYmluZm8uYworKysgYi9Eb2N1bWVudGF0aW9uL3ZtL3NsYWJpbmZvLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogU2xhYmluZm86IFRvb2wgdG8gZ2V0IHJlcG9ydHMgYWJvdXQgc2xhYnMKICAqCi0gKiAoQykgMjAwNyBzZ2ksIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogKEMpIDIwMDcgc2dpLCBDaHJpc3RvcGggTGFtZXRlcgogICoKICAqIENvbXBpbGUgYnk6CiAgKgpAQCAtOTksNyArOTksNyBAQAogCiB2b2lkIHVzYWdlKHZvaWQpCiB7Ci0JcHJpbnRmKCJzbGFiaW5mbyA1LzcvMjAwNy4gKGMpIDIwMDcgc2dpLiBjbGFtZXRlckBzZ2kuY29tXG5cbiIKKwlwcmludGYoInNsYWJpbmZvIDUvNy8yMDA3LiAoYykgMjAwNyBzZ2kuXG5cbiIKIAkJInNsYWJpbmZvIFstYWhucHZ0c3pdIFstZCBkZWJ1Z29wdHNdIFtzbGFiLXJlZ2V4cF1cbiIKIAkJIi1hfC0tYWxpYXNlcyAgICAgICAgICAgU2hvdyBhbGlhc2VzXG4iCiAJCSItQXwtLWFjdGl2aXR5ICAgICAgICAgIE1vc3QgYWN0aXZlIHNsYWJzIGZpcnN0XG4iCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZtL3NsdWIudHh0IGIvRG9jdW1lbnRhdGlvbi92bS9zbHViLnR4dAppbmRleCA3YzEzZjIyLi5iYjFmNWM2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3ZtL3NsdWIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdm0vc2x1Yi50eHQKQEAgLTI2Niw0ICsyNjYsNCBAQAogCiAJc2x1Yl9kZWJ1Zz1GWixkZW50cnkKIAotQ2hyaXN0b3BoIExhbWV0ZXIsIDxjbGFtZXRlckBzZ2kuY29tPiwgTWF5IDMwLCAyMDA3CitDaHJpc3RvcGggTGFtZXRlciwgTWF5IDMwLCAyMDA3CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kzODYvSU8tQVBJQy50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L0lPLUFQSUMudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kzODYvSU8tQVBJQy50eHQKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L2kzODYvSU8tQVBJQy50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2L2kzODYvYm9vdC50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L2Jvb3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0N2JmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L2Jvb3QudHh0CkBAIC0wLDAgKzEsOTAwIEBACisJCSAgICAgVEhFIExJTlVYL3g4NiBCT09UIFBST1RPQ09MCisJCSAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uIHRoZSB4ODYgcGxhdGZvcm0sIHRoZSBMaW51eCBrZXJuZWwgdXNlcyBhIHJhdGhlciBjb21wbGljYXRlZCBib290Citjb252ZW50aW9uLiAgVGhpcyBoYXMgZXZvbHZlZCBwYXJ0aWFsbHkgZHVlIHRvIGhpc3RvcmljYWwgYXNwZWN0cywgYXMKK3dlbGwgYXMgdGhlIGRlc2lyZSBpbiB0aGUgZWFybHkgZGF5cyB0byBoYXZlIHRoZSBrZXJuZWwgaXRzZWxmIGJlIGEKK2Jvb3RhYmxlIGltYWdlLCB0aGUgY29tcGxpY2F0ZWQgUEMgbWVtb3J5IG1vZGVsIGFuZCBkdWUgdG8gY2hhbmdlZAorZXhwZWN0YXRpb25zIGluIHRoZSBQQyBpbmR1c3RyeSBjYXVzZWQgYnkgdGhlIGVmZmVjdGl2ZSBkZW1pc2Ugb2YKK3JlYWwtbW9kZSBET1MgYXMgYSBtYWluc3RyZWFtIG9wZXJhdGluZyBzeXN0ZW0uCisKK0N1cnJlbnRseSwgdGhlIGZvbGxvd2luZyB2ZXJzaW9ucyBvZiB0aGUgTGludXgveDg2IGJvb3QgcHJvdG9jb2wgZXhpc3QuCisKK09sZCBrZXJuZWxzOgl6SW1hZ2UvSW1hZ2Ugc3VwcG9ydCBvbmx5LiAgU29tZSB2ZXJ5IGVhcmx5IGtlcm5lbHMKKwkJbWF5IG5vdCBldmVuIHN1cHBvcnQgYSBjb21tYW5kIGxpbmUuCisKK1Byb3RvY29sIDIuMDA6CShLZXJuZWwgMS4zLjczKSBBZGRlZCBiekltYWdlIGFuZCBpbml0cmQgc3VwcG9ydCwgYXMKKwkJd2VsbCBhcyBhIGZvcm1hbGl6ZWQgd2F5IHRvIGNvbW11bmljYXRlIGJldHdlZW4gdGhlCisJCWJvb3QgbG9hZGVyIGFuZCB0aGUga2VybmVsLiAgc2V0dXAuUyBtYWRlIHJlbG9jYXRhYmxlLAorCQlhbHRob3VnaCB0aGUgdHJhZGl0aW9uYWwgc2V0dXAgYXJlYSBzdGlsbCBhc3N1bWVkCisJCXdyaXRhYmxlLgorCitQcm90b2NvbCAyLjAxOgkoS2VybmVsIDEuMy43NikgQWRkZWQgYSBoZWFwIG92ZXJydW4gd2FybmluZy4KKworUHJvdG9jb2wgMi4wMjoJKEtlcm5lbCAyLjQuMC10ZXN0My1wcmUzKSBOZXcgY29tbWFuZCBsaW5lIHByb3RvY29sLgorCQlMb3dlciB0aGUgY29udmVudGlvbmFsIG1lbW9yeSBjZWlsaW5nLglObyBvdmVyd3JpdGUKKwkJb2YgdGhlIHRyYWRpdGlvbmFsIHNldHVwIGFyZWEsIHRodXMgbWFraW5nIGJvb3RpbmcKKwkJc2FmZSBmb3Igc3lzdGVtcyB3aGljaCB1c2UgdGhlIEVCREEgZnJvbSBTTU0gb3IgMzItYml0CisJCUJJT1MgZW50cnkgcG9pbnRzLiAgekltYWdlIGRlcHJlY2F0ZWQgYnV0IHN0aWxsCisJCXN1cHBvcnRlZC4KKworUHJvdG9jb2wgMi4wMzoJKEtlcm5lbCAyLjQuMTgtcHJlMSkgRXhwbGljaXRseSBtYWtlcyB0aGUgaGlnaGVzdCBwb3NzaWJsZQorCQlpbml0cmQgYWRkcmVzcyBhdmFpbGFibGUgdG8gdGhlIGJvb3Rsb2FkZXIuCisKK1Byb3RvY29sIDIuMDQ6CShLZXJuZWwgMi42LjE0KSBFeHRlbmQgdGhlIHN5c3NpemUgZmllbGQgdG8gZm91ciBieXRlcy4KKworUHJvdG9jb2wgMi4wNToJKEtlcm5lbCAyLjYuMjApIE1ha2UgcHJvdGVjdGVkIG1vZGUga2VybmVsIHJlbG9jYXRhYmxlLgorCQlJbnRyb2R1Y2UgcmVsb2NhdGFibGVfa2VybmVsIGFuZCBrZXJuZWxfYWxpZ25tZW50IGZpZWxkcy4KKworUHJvdG9jb2wgMi4wNjoJKEtlcm5lbCAyLjYuMjIpIEFkZGVkIGEgZmllbGQgdGhhdCBjb250YWlucyB0aGUgc2l6ZSBvZgorCQl0aGUgYm9vdCBjb21tYW5kIGxpbmUuCisKK1Byb3RvY29sIDIuMDc6CShLZXJuZWwgMi42LjI0KSBBZGRlZCBwYXJhdmlydHVhbGlzZWQgYm9vdCBwcm90b2NvbC4KKwkJSW50cm9kdWNlZCBoYXJkd2FyZV9zdWJhcmNoIGFuZCBoYXJkd2FyZV9zdWJhcmNoX2RhdGEKKwkJYW5kIEtFRVBfU0VHTUVOVFMgZmxhZyBpbiBsb2FkX2ZsYWdzLgorCitQcm90b2NvbCAyLjA4OgkoS2VybmVsIDIuNi4yNikgQWRkZWQgY3JjMzIgY2hlY2tzdW0gYW5kIEVMRiBmb3JtYXQKKwkJcGF5bG9hZC4gSW50cm9kdWNlZCBwYXlsb2FkX29mZnNldCBhbmQgcGF5bG9hZCBsZW5ndGgKKwkJZmllbGRzIHRvIGFpZCBpbiBsb2NhdGluZyB0aGUgcGF5bG9hZC4KKworUHJvdG9jb2wgMi4wOToJKEtlcm5lbCAyLjYuMjYpIEFkZGVkIGEgZmllbGQgb2YgNjQtYml0IHBoeXNpY2FsCisJCXBvaW50ZXIgdG8gc2luZ2xlIGxpbmtlZCBsaXN0IG9mIHN0cnVjdAlzZXR1cF9kYXRhLgorCisqKioqIE1FTU9SWSBMQVlPVVQKKworVGhlIHRyYWRpdGlvbmFsIG1lbW9yeSBtYXAgZm9yIHRoZSBrZXJuZWwgbG9hZGVyLCB1c2VkIGZvciBJbWFnZSBvcgorekltYWdlIGtlcm5lbHMsIHR5cGljYWxseSBsb29rcyBsaWtlOgorCisJfAkJCSB8CiswQTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBSZXNlcnZlZCBmb3IgQklPUwkgfAlEbyBub3QgdXNlLiAgUmVzZXJ2ZWQgZm9yIEJJT1MgRUJEQS4KKzA5QTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIENvbW1hbmQgbGluZQkJIHwKKwl8ICBTdGFjay9oZWFwCQkgfAlGb3IgdXNlIGJ5IHRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCiswOTgwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsJCisJfCAgS2VybmVsIHNldHVwCQkgfAlUaGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgorMDkwMjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgS2VybmVsIGJvb3Qgc2VjdG9yCSB8CVRoZSBrZXJuZWwgbGVnYWN5IGJvb3Qgc2VjdG9yLgorMDkwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgUHJvdGVjdGVkLW1vZGUga2VybmVsIHwJVGhlIGJ1bGsgb2YgdGhlIGtlcm5lbCBpbWFnZS4KKzAxMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIEJvb3QgbG9hZGVyCQkgfAk8LSBCb290IHNlY3RvciBlbnRyeSBwb2ludCAwMDAwOjdDMDAKKzAwMTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFJlc2VydmVkIGZvciBNQlIvQklPUyB8CiswMDA4MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBUeXBpY2FsbHkgdXNlZCBieSBNQlIgfAorMDAwNjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIAorCXwgIEJJT1MgdXNlIG9ubHkJIHwKKzAwMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisKK1doZW4gdXNpbmcgYnpJbWFnZSwgdGhlIHByb3RlY3RlZC1tb2RlIGtlcm5lbCB3YXMgcmVsb2NhdGVkIHRvCisweDEwMDAwMCAoImhpZ2ggbWVtb3J5IiksIGFuZCB0aGUga2VybmVsIHJlYWwtbW9kZSBibG9jayAoYm9vdCBzZWN0b3IsCitzZXR1cCwgYW5kIHN0YWNrL2hlYXApIHdhcyBtYWRlIHJlbG9jYXRhYmxlIHRvIGFueSBhZGRyZXNzIGJldHdlZW4KKzB4MTAwMDAgYW5kIGVuZCBvZiBsb3cgbWVtb3J5LiBVbmZvcnR1bmF0ZWx5LCBpbiBwcm90b2NvbHMgMi4wMCBhbmQKKzIuMDEgdGhlIDB4OTAwMDArIG1lbW9yeSByYW5nZSBpcyBzdGlsbCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGtlcm5lbDsKK3RoZSAyLjAyIHByb3RvY29sIHJlc29sdmVzIHRoYXQgcHJvYmxlbS4KKworSXQgaXMgZGVzaXJhYmxlIHRvIGtlZXAgdGhlICJtZW1vcnkgY2VpbGluZyIgLS0gdGhlIGhpZ2hlc3QgcG9pbnQgaW4KK2xvdyBtZW1vcnkgdG91Y2hlZCBieSB0aGUgYm9vdCBsb2FkZXIgLS0gYXMgbG93IGFzIHBvc3NpYmxlLCBzaW5jZQorc29tZSBuZXdlciBCSU9TZXMgaGF2ZSBiZWd1biB0byBhbGxvY2F0ZSBzb21lIHJhdGhlciBsYXJnZSBhbW91bnRzIG9mCittZW1vcnksIGNhbGxlZCB0aGUgRXh0ZW5kZWQgQklPUyBEYXRhIEFyZWEsIG5lYXIgdGhlIHRvcCBvZiBsb3cKK21lbW9yeS4JIFRoZSBib290IGxvYWRlciBzaG91bGQgdXNlIHRoZSAiSU5UIDEyaCIgQklPUyBjYWxsIHRvIHZlcmlmeQoraG93IG11Y2ggbG93IG1lbW9yeSBpcyBhdmFpbGFibGUuCisKK1VuZm9ydHVuYXRlbHksIGlmIElOVCAxMmggcmVwb3J0cyB0aGF0IHRoZSBhbW91bnQgb2YgbWVtb3J5IGlzIHRvbworbG93LCB0aGVyZSBpcyB1c3VhbGx5IG5vdGhpbmcgdGhlIGJvb3QgbG9hZGVyIGNhbiBkbyBidXQgdG8gcmVwb3J0IGFuCitlcnJvciB0byB0aGUgdXNlci4gIFRoZSBib290IGxvYWRlciBzaG91bGQgdGhlcmVmb3JlIGJlIGRlc2lnbmVkIHRvCit0YWtlIHVwIGFzIGxpdHRsZSBzcGFjZSBpbiBsb3cgbWVtb3J5IGFzIGl0IHJlYXNvbmFibHkgY2FuLiAgRm9yCit6SW1hZ2Ugb3Igb2xkIGJ6SW1hZ2Uga2VybmVscywgd2hpY2ggbmVlZCBkYXRhIHdyaXR0ZW4gaW50byB0aGUKKzB4OTAwMDAgc2VnbWVudCwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZCBtYWtlIHN1cmUgbm90IHRvIHVzZSBtZW1vcnkKK2Fib3ZlIHRoZSAweDlBMDAwIHBvaW50OyB0b28gbWFueSBCSU9TZXMgd2lsbCBicmVhayBhYm92ZSB0aGF0IHBvaW50LgorCitGb3IgYSBtb2Rlcm4gYnpJbWFnZSBrZXJuZWwgd2l0aCBib290IHByb3RvY29sIHZlcnNpb24gPj0gMi4wMiwgYQorbWVtb3J5IGxheW91dCBsaWtlIHRoZSBmb2xsb3dpbmcgaXMgc3VnZ2VzdGVkOgorCisJfiAgICAgICAgICAgICAgICAgICAgICAgIH4KKyAgICAgICAgfCAgUHJvdGVjdGVkLW1vZGUga2VybmVsIHwKKzEwMDAwMCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBJL08gbWVtb3J5IGhvbGUJIHwKKzBBMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFJlc2VydmVkIGZvciBCSU9TCSB8CUxlYXZlIGFzIG11Y2ggYXMgcG9zc2libGUgdW51c2VkCisJfiAgICAgICAgICAgICAgICAgICAgICAgIH4KKwl8ICBDb21tYW5kIGxpbmUJCSB8CShDYW4gYWxzbyBiZSBiZWxvdyB0aGUgWCsxMDAwMCBtYXJrKQorWCsxMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFN0YWNrL2hlYXAJCSB8CUZvciB1c2UgYnkgdGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KK1grMDgwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsJCisJfCAgS2VybmVsIHNldHVwCQkgfAlUaGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgorCXwgIEtlcm5lbCBib290IHNlY3RvcgkgfAlUaGUga2VybmVsIGxlZ2FjeSBib290IHNlY3Rvci4KK1ggICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBCb290IGxvYWRlcgkJIHwJPC0gQm9vdCBzZWN0b3IgZW50cnkgcG9pbnQgMDAwMDo3QzAwCiswMDEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBSZXNlcnZlZCBmb3IgTUJSL0JJT1MgfAorMDAwODAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgVHlwaWNhbGx5IHVzZWQgYnkgTUJSIHwKKzAwMDYwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAKKwl8ICBCSU9TIHVzZSBvbmx5CSB8CiswMDAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworLi4uIHdoZXJlIHRoZSBhZGRyZXNzIFggaXMgYXMgbG93IGFzIHRoZSBkZXNpZ24gb2YgdGhlIGJvb3QgbG9hZGVyCitwZXJtaXRzLgorCisKKyoqKiogVEhFIFJFQUwtTU9ERSBLRVJORUwgSEVBREVSCisKK0luIHRoZSBmb2xsb3dpbmcgdGV4dCwgYW5kIGFueXdoZXJlIGluIHRoZSBrZXJuZWwgYm9vdCBzZXF1ZW5jZSwgImEKK3NlY3RvciIgcmVmZXJzIHRvIDUxMiBieXRlcy4gIEl0IGlzIGluZGVwZW5kZW50IG9mIHRoZSBhY3R1YWwgc2VjdG9yCitzaXplIG9mIHRoZSB1bmRlcmx5aW5nIG1lZGl1bS4KKworVGhlIGZpcnN0IHN0ZXAgaW4gbG9hZGluZyBhIExpbnV4IGtlcm5lbCBzaG91bGQgYmUgdG8gbG9hZCB0aGUKK3JlYWwtbW9kZSBjb2RlIChib290IHNlY3RvciBhbmQgc2V0dXAgY29kZSkgYW5kIHRoZW4gZXhhbWluZSB0aGUKK2ZvbGxvd2luZyBoZWFkZXIgYXQgb2Zmc2V0IDB4MDFmMS4gIFRoZSByZWFsLW1vZGUgY29kZSBjYW4gdG90YWwgdXAgdG8KKzMySywgYWx0aG91Z2ggdGhlIGJvb3QgbG9hZGVyIG1heSBjaG9vc2UgdG8gbG9hZCBvbmx5IHRoZSBmaXJzdCB0d28KK3NlY3RvcnMgKDFLKSBhbmQgdGhlbiBleGFtaW5lIHRoZSBib290dXAgc2VjdG9yIHNpemUuCisKK1RoZSBoZWFkZXIgbG9va3MgbGlrZToKKworT2Zmc2V0CVByb3RvCU5hbWUJCU1lYW5pbmcKKy9TaXplCisKKzAxRjEvMQlBTEwoMQlzZXR1cF9zZWN0cwlUaGUgc2l6ZSBvZiB0aGUgc2V0dXAgaW4gc2VjdG9ycworMDFGMi8yCUFMTAlyb290X2ZsYWdzCUlmIHNldCwgdGhlIHJvb3QgaXMgbW91bnRlZCByZWFkb25seQorMDFGNC80CTIuMDQrKDIJc3lzc2l6ZQkJVGhlIHNpemUgb2YgdGhlIDMyLWJpdCBjb2RlIGluIDE2LWJ5dGUgcGFyYXMKKzAxRjgvMglBTEwJcmFtX3NpemUJRE8gTk9UIFVTRSAtIGZvciBib290c2VjdC5TIHVzZSBvbmx5CiswMUZBLzIJQUxMCXZpZF9tb2RlCVZpZGVvIG1vZGUgY29udHJvbAorMDFGQy8yCUFMTAlyb290X2RldglEZWZhdWx0IHJvb3QgZGV2aWNlIG51bWJlcgorMDFGRS8yCUFMTAlib290X2ZsYWcJMHhBQTU1IG1hZ2ljIG51bWJlcgorMDIwMC8yCTIuMDArCWp1bXAJCUp1bXAgaW5zdHJ1Y3Rpb24KKzAyMDIvNAkyLjAwKwloZWFkZXIJCU1hZ2ljIHNpZ25hdHVyZSAiSGRyUyIKKzAyMDYvMgkyLjAwKwl2ZXJzaW9uCQlCb290IHByb3RvY29sIHZlcnNpb24gc3VwcG9ydGVkCiswMjA4LzQJMi4wMCsJcmVhbG1vZGVfc3d0Y2gJQm9vdCBsb2FkZXIgaG9vayAoc2VlIGJlbG93KQorMDIwQy8yCTIuMDArCXN0YXJ0X3N5cwlUaGUgbG9hZC1sb3cgc2VnbWVudCAoMHgxMDAwKSAob2Jzb2xldGUpCiswMjBFLzIJMi4wMCsJa2VybmVsX3ZlcnNpb24JUG9pbnRlciB0byBrZXJuZWwgdmVyc2lvbiBzdHJpbmcKKzAyMTAvMQkyLjAwKwl0eXBlX29mX2xvYWRlcglCb290IGxvYWRlciBpZGVudGlmaWVyCiswMjExLzEJMi4wMCsJbG9hZGZsYWdzCUJvb3QgcHJvdG9jb2wgb3B0aW9uIGZsYWdzCiswMjEyLzIJMi4wMCsJc2V0dXBfbW92ZV9zaXplCU1vdmUgdG8gaGlnaCBtZW1vcnkgc2l6ZSAodXNlZCB3aXRoIGhvb2tzKQorMDIxNC80CTIuMDArCWNvZGUzMl9zdGFydAlCb290IGxvYWRlciBob29rIChzZWUgYmVsb3cpCiswMjE4LzQJMi4wMCsJcmFtZGlza19pbWFnZQlpbml0cmQgbG9hZCBhZGRyZXNzIChzZXQgYnkgYm9vdCBsb2FkZXIpCiswMjFDLzQJMi4wMCsJcmFtZGlza19zaXplCWluaXRyZCBzaXplIChzZXQgYnkgYm9vdCBsb2FkZXIpCiswMjIwLzQJMi4wMCsJYm9vdHNlY3Rfa2x1ZGdlCURPIE5PVCBVU0UgLSBmb3IgYm9vdHNlY3QuUyB1c2Ugb25seQorMDIyNC8yCTIuMDErCWhlYXBfZW5kX3B0cglGcmVlIG1lbW9yeSBhZnRlciBzZXR1cCBlbmQKKzAyMjYvMglOL0EJcGFkMQkJVW51c2VkCiswMjI4LzQJMi4wMisJY21kX2xpbmVfcHRyCTMyLWJpdCBwb2ludGVyIHRvIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lCiswMjJDLzQJMi4wMysJaW5pdHJkX2FkZHJfbWF4CUhpZ2hlc3QgbGVnYWwgaW5pdHJkIGFkZHJlc3MKKzAyMzAvNAkyLjA1KwlrZXJuZWxfYWxpZ25tZW50IFBoeXNpY2FsIGFkZHIgYWxpZ25tZW50IHJlcXVpcmVkIGZvciBrZXJuZWwKKzAyMzQvMQkyLjA1KwlyZWxvY2F0YWJsZV9rZXJuZWwgV2hldGhlciBrZXJuZWwgaXMgcmVsb2NhdGFibGUgb3Igbm90CiswMjM1LzMJTi9BCXBhZDIJCVVudXNlZAorMDIzOC80CTIuMDYrCWNtZGxpbmVfc2l6ZQlNYXhpbXVtIHNpemUgb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUKKzAyM0MvNAkyLjA3KwloYXJkd2FyZV9zdWJhcmNoIEhhcmR3YXJlIHN1YmFyY2hpdGVjdHVyZQorMDI0MC84CTIuMDcrCWhhcmR3YXJlX3N1YmFyY2hfZGF0YSBTdWJhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZGF0YQorMDI0OC80CTIuMDgrCXBheWxvYWRfb2Zmc2V0CU9mZnNldCBvZiBrZXJuZWwgcGF5bG9hZAorMDI0Qy80CTIuMDgrCXBheWxvYWRfbGVuZ3RoCUxlbmd0aCBvZiBrZXJuZWwgcGF5bG9hZAorMDI1MC84CTIuMDkrCXNldHVwX2RhdGEJNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gbGlua2VkIGxpc3QKKwkJCQlvZiBzdHJ1Y3Qgc2V0dXBfZGF0YQorCisoMSkgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBpZiB0aGUgc2V0dXBfc2VjdHMgZmllbGQgY29udGFpbnMgMCwgdGhlCisgICAgcmVhbCB2YWx1ZSBpcyA0LgorCisoMikgRm9yIGJvb3QgcHJvdG9jb2wgcHJpb3IgdG8gMi4wNCwgdGhlIHVwcGVyIHR3byBieXRlcyBvZiB0aGUgc3lzc2l6ZQorICAgIGZpZWxkIGFyZSB1bnVzYWJsZSwgd2hpY2ggbWVhbnMgdGhlIHNpemUgb2YgYSBiekltYWdlIGtlcm5lbAorICAgIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgorCitJZiB0aGUgIkhkclMiICgweDUzNzI2NDQ4KSBtYWdpYyBudW1iZXIgaXMgbm90IGZvdW5kIGF0IG9mZnNldCAweDIwMiwKK3RoZSBib290IHByb3RvY29sIHZlcnNpb24gaXMgIm9sZCIuICBMb2FkaW5nIGFuIG9sZCBrZXJuZWwsIHRoZQorZm9sbG93aW5nIHBhcmFtZXRlcnMgc2hvdWxkIGJlIGFzc3VtZWQ6CisKKwlJbWFnZSB0eXBlID0gekltYWdlCisJaW5pdHJkIG5vdCBzdXBwb3J0ZWQKKwlSZWFsLW1vZGUga2VybmVsIG11c3QgYmUgbG9jYXRlZCBhdCAweDkwMDAwLgorCitPdGhlcndpc2UsIHRoZSAidmVyc2lvbiIgZmllbGQgY29udGFpbnMgdGhlIHByb3RvY29sIHZlcnNpb24sCitlLmcuIHByb3RvY29sIHZlcnNpb24gMi4wMSB3aWxsIGNvbnRhaW4gMHgwMjAxIGluIHRoaXMgZmllbGQuICBXaGVuCitzZXR0aW5nIGZpZWxkcyBpbiB0aGUgaGVhZGVyLCB5b3UgbXVzdCBtYWtlIHN1cmUgb25seSB0byBzZXQgZmllbGRzCitzdXBwb3J0ZWQgYnkgdGhlIHByb3RvY29sIHZlcnNpb24gaW4gdXNlLgorCisKKyoqKiogREVUQUlMUyBPRiBIRUFERVIgRklFTERTCisKK0ZvciBlYWNoIGZpZWxkLCBzb21lIGFyZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBrZXJuZWwgdG8gdGhlIGJvb3Rsb2FkZXIKKygicmVhZCIpLCBzb21lIGFyZSBleHBlY3RlZCB0byBiZSBmaWxsZWQgb3V0IGJ5IHRoZSBib290bG9hZGVyCisoIndyaXRlIiksIGFuZCBzb21lIGFyZSBleHBlY3RlZCB0byBiZSByZWFkIGFuZCBtb2RpZmllZCBieSB0aGUKK2Jvb3Rsb2FkZXIgKCJtb2RpZnkiKS4KKworQWxsIGdlbmVyYWwgcHVycG9zZSBib290IGxvYWRlcnMgc2hvdWxkIHdyaXRlIHRoZSBmaWVsZHMgbWFya2VkCisob2JsaWdhdG9yeSkuICBCb290IGxvYWRlcnMgd2hvIHdhbnQgdG8gbG9hZCB0aGUga2VybmVsIGF0IGEKK25vbnN0YW5kYXJkIGFkZHJlc3Mgc2hvdWxkIGZpbGwgaW4gdGhlIGZpZWxkcyBtYXJrZWQgKHJlbG9jKTsgb3RoZXIKK2Jvb3QgbG9hZGVycyBjYW4gaWdub3JlIHRob3NlIGZpZWxkcy4KKworVGhlIGJ5dGUgb3JkZXIgb2YgYWxsIGZpZWxkcyBpcyBsaXR0bGVlbmRpYW4gKHRoaXMgaXMgeDg2LCBhZnRlciBhbGwuKQorCitGaWVsZCBuYW1lOglzZXR1cF9zZWN0cworVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDFmMS8xCitQcm90b2NvbDoJQUxMCisKKyAgVGhlIHNpemUgb2YgdGhlIHNldHVwIGNvZGUgaW4gNTEyLWJ5dGUgc2VjdG9ycy4gIElmIHRoaXMgZmllbGQgaXMKKyAgMCwgdGhlIHJlYWwgdmFsdWUgaXMgNC4gIFRoZSByZWFsLW1vZGUgY29kZSBjb25zaXN0cyBvZiB0aGUgYm9vdAorICBzZWN0b3IgKGFsd2F5cyBvbmUgNTEyLWJ5dGUgc2VjdG9yKSBwbHVzIHRoZSBzZXR1cCBjb2RlLgorCitGaWVsZCBuYW1lOgkgcm9vdF9mbGFncworVHlwZToJCSBtb2RpZnkgKG9wdGlvbmFsKQorT2Zmc2V0L3NpemU6CSAweDFmMi8yCitQcm90b2NvbDoJIEFMTAorCisgIElmIHRoaXMgZmllbGQgaXMgbm9uemVybywgdGhlIHJvb3QgZGVmYXVsdHMgdG8gcmVhZG9ubHkuICBUaGUgdXNlIG9mCisgIHRoaXMgZmllbGQgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSAicm8iIG9yICJydyIgb3B0aW9ucyBvbiB0aGUKKyAgY29tbWFuZCBsaW5lIGluc3RlYWQuCisKK0ZpZWxkIG5hbWU6CXN5c3NpemUKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgxZjQvNCAocHJvdG9jb2wgMi4wNCspIDB4MWY0LzIgKHByb3RvY29sIEFMTCkKK1Byb3RvY29sOgkyLjA0KworCisgIFRoZSBzaXplIG9mIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGluIHVuaXRzIG9mIDE2LWJ5dGUgcGFyYWdyYXBocy4KKyAgRm9yIHByb3RvY29sIHZlcnNpb25zIG9sZGVyIHRoYW4gMi4wNCB0aGlzIGZpZWxkIGlzIG9ubHkgdHdvIGJ5dGVzCisgIHdpZGUsIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIHRydXN0ZWQgZm9yIHRoZSBzaXplIG9mIGEga2VybmVsIGlmCisgIHRoZSBMT0FEX0hJR0ggZmxhZyBpcyBzZXQuCisKK0ZpZWxkIG5hbWU6CXJhbV9zaXplCitUeXBlOgkJa2VybmVsIGludGVybmFsCitPZmZzZXQvc2l6ZToJMHgxZjgvMgorUHJvdG9jb2w6CUFMTAorCisgIFRoaXMgZmllbGQgaXMgb2Jzb2xldGUuCisKK0ZpZWxkIG5hbWU6CXZpZF9tb2RlCitUeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MWZhLzIKKworICBQbGVhc2Ugc2VlIHRoZSBzZWN0aW9uIG9uIFNQRUNJQUwgQ09NTUFORCBMSU5FIE9QVElPTlMuCisKK0ZpZWxkIG5hbWU6CXJvb3RfZGV2CitUeXBlOgkJbW9kaWZ5IChvcHRpb25hbCkKK09mZnNldC9zaXplOgkweDFmYy8yCitQcm90b2NvbDoJQUxMCisKKyAgVGhlIGRlZmF1bHQgcm9vdCBkZXZpY2UgZGV2aWNlIG51bWJlci4gIFRoZSB1c2Ugb2YgdGhpcyBmaWVsZCBpcworICBkZXByZWNhdGVkLCB1c2UgdGhlICJyb290PSIgb3B0aW9uIG9uIHRoZSBjb21tYW5kIGxpbmUgaW5zdGVhZC4KKworRmllbGQgbmFtZToJYm9vdF9mbGFnCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MWZlLzIKK1Byb3RvY29sOglBTEwKKworICBDb250YWlucyAweEFBNTUuICBUaGlzIGlzIHRoZSBjbG9zZXN0IHRoaW5nIG9sZCBMaW51eCBrZXJuZWxzIGhhdmUKKyAgdG8gYSBtYWdpYyBudW1iZXIuCisKK0ZpZWxkIG5hbWU6CWp1bXAKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMDAvMgorUHJvdG9jb2w6CTIuMDArCisKKyAgQ29udGFpbnMgYW4geDg2IGp1bXAgaW5zdHJ1Y3Rpb24sIDB4RUIgZm9sbG93ZWQgYnkgYSBzaWduZWQgb2Zmc2V0CisgIHJlbGF0aXZlIHRvIGJ5dGUgMHgyMDIuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZgorICB0aGUgaGVhZGVyLgorCitGaWVsZCBuYW1lOgloZWFkZXIKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMDIvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgQ29udGFpbnMgdGhlIG1hZ2ljIG51bWJlciAiSGRyUyIgKDB4NTM3MjY0NDgpLgorCitGaWVsZCBuYW1lOgl2ZXJzaW9uCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjA2LzIKK1Byb3RvY29sOgkyLjAwKworCisgIENvbnRhaW5zIHRoZSBib290IHByb3RvY29sIHZlcnNpb24sIGluIChtYWpvciA8PCA4KSttaW5vciBmb3JtYXQsCisgIGUuZy4gMHgwMjA0IGZvciB2ZXJzaW9uIDIuMDQsIGFuZCAweDBhMTEgZm9yIGEgaHlwb3RoZXRpY2FsIHZlcnNpb24KKyAgMTAuMTcuCisKK0ZpZWxkIG5hbWU6CXJlYWRtb2RlX3N3dGNoCitUeXBlOgkJbW9kaWZ5IChvcHRpb25hbCkKK09mZnNldC9zaXplOgkweDIwOC80CitQcm90b2NvbDoJMi4wMCsKKworICBCb290IGxvYWRlciBob29rIChzZWUgQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MgYmVsb3cuKQorCitGaWVsZCBuYW1lOglzdGFydF9zeXMKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMGMvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgVGhlIGxvYWQgbG93IHNlZ21lbnQgKDB4MTAwMCkuICBPYnNvbGV0ZS4KKworRmllbGQgbmFtZToJa2VybmVsX3ZlcnNpb24KK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMGUvMgorUHJvdG9jb2w6CTIuMDArCisKKyAgSWYgc2V0IHRvIGEgbm9uemVybyB2YWx1ZSwgY29udGFpbnMgYSBwb2ludGVyIHRvIGEgTlVMLXRlcm1pbmF0ZWQKKyAgaHVtYW4tcmVhZGFibGUga2VybmVsIHZlcnNpb24gbnVtYmVyIHN0cmluZywgbGVzcyAweDIwMC4gIFRoaXMgY2FuCisgIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUga2VybmVsIHZlcnNpb24gdG8gdGhlIHVzZXIuICBUaGlzIHZhbHVlCisgIHNob3VsZCBiZSBsZXNzIHRoYW4gKDB4MjAwKnNldHVwX3NlY3RzKS4KKworICBGb3IgZXhhbXBsZSwgaWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gMHgxYzAwLCB0aGUga2VybmVsIHZlcnNpb24KKyAgbnVtYmVyIHN0cmluZyBjYW4gYmUgZm91bmQgYXQgb2Zmc2V0IDB4MWUwMCBpbiB0aGUga2VybmVsIGZpbGUuCisgIFRoaXMgaXMgYSB2YWxpZCB2YWx1ZSBpZiBhbmQgb25seSBpZiB0aGUgInNldHVwX3NlY3RzIiBmaWVsZAorICBjb250YWlucyB0aGUgdmFsdWUgMTUgb3IgaGlnaGVyLCBhczoKKworCTB4MWMwMCAgPCAxNSoweDIwMCAoPSAweDFlMDApIGJ1dAorCTB4MWMwMCA+PSAxNCoweDIwMCAoPSAweDFjMDApCisKKwkweDFjMDAgPj4gOSA9IDE0LCBzbyB0aGUgbWluaW11bSB2YWx1ZSBmb3Igc2V0dXBfc2VjcyBpcyAxNS4KKworRmllbGQgbmFtZToJdHlwZV9vZl9sb2FkZXIKK1R5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIxMC8xCitQcm90b2NvbDoJMi4wMCsKKworICBJZiB5b3VyIGJvb3QgbG9hZGVyIGhhcyBhbiBhc3NpZ25lZCBpZCAoc2VlIHRhYmxlIGJlbG93KSwgZW50ZXIKKyAgMHhUViBoZXJlLCB3aGVyZSBUIGlzIGFuIGlkZW50aWZpZXIgZm9yIHRoZSBib290IGxvYWRlciBhbmQgViBpcworICBhIHZlcnNpb24gbnVtYmVyLiAgT3RoZXJ3aXNlLCBlbnRlciAweEZGIGhlcmUuCisKKyAgQXNzaWduZWQgYm9vdCBsb2FkZXIgaWRzOgorCTAgIExJTE8JCQkoMHgwMCByZXNlcnZlZCBmb3IgcHJlLTIuMDAgYm9vdGxvYWRlcikKKwkxICBMb2FkbGluCisJMiAgYm9vdHNlY3QtbG9hZGVyCSgweDIwLCBhbGwgb3RoZXIgdmFsdWVzIHJlc2VydmVkKQorCTMgIFNZU0xJTlVYCisJNCAgRXRoZXJCb290CisJNSAgRUxJTE8KKwk3ICBHUnVCCisJOCAgVS1CT09UCisJOSAgWGVuCisJQSAgR3VqaW4KKwlCICBRZW11CisKKyAgUGxlYXNlIGNvbnRhY3QgPGhwYUB6eXRvci5jb20+IGlmIHlvdSBuZWVkIGEgYm9vdGxvYWRlciBJRAorICB2YWx1ZSBhc3NpZ25lZC4KKworRmllbGQgbmFtZToJbG9hZGZsYWdzCitUeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjExLzEKK1Byb3RvY29sOgkyLjAwKworCisgIFRoaXMgZmllbGQgaXMgYSBiaXRtYXNrLgorCisgIEJpdCAwIChyZWFkKToJTE9BREVEX0hJR0gKKwktIElmIDAsIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDEwMDAwLgorCS0gSWYgMSwgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4MTAwMDAwLgorCisgIEJpdCA1ICh3cml0ZSk6IFFVSUVUX0ZMQUcKKwktIElmIDAsIHByaW50IGVhcmx5IG1lc3NhZ2VzLgorCS0gSWYgMSwgc3VwcHJlc3MgZWFybHkgbWVzc2FnZXMuCisJCVRoaXMgcmVxdWVzdHMgdG8gdGhlIGtlcm5lbCAoZGVjb21wcmVzc29yIGFuZCBlYXJseQorCQlrZXJuZWwpIHRvIG5vdCB3cml0ZSBlYXJseSBtZXNzYWdlcyB0aGF0IHJlcXVpcmUKKwkJYWNjZXNzaW5nIHRoZSBkaXNwbGF5IGhhcmR3YXJlIGRpcmVjdGx5LgorCisgIEJpdCA2ICh3cml0ZSk6IEtFRVBfU0VHTUVOVFMKKwlQcm90b2NvbDogMi4wNysKKwktIElmIDAsIHJlbG9hZCB0aGUgc2VnbWVudCByZWdpc3RlcnMgaW4gdGhlIDMyYml0IGVudHJ5IHBvaW50LgorCS0gSWYgMSwgZG8gbm90IHJlbG9hZCB0aGUgc2VnbWVudCByZWdpc3RlcnMgaW4gdGhlIDMyYml0IGVudHJ5IHBvaW50LgorCQlBc3N1bWUgdGhhdCAlY3MgJWRzICVzcyAlZXMgYXJlIGFsbCBzZXQgdG8gZmxhdCBzZWdtZW50cyB3aXRoCisJCWEgYmFzZSBvZiAwIChvciB0aGUgZXF1aXZhbGVudCBmb3IgdGhlaXIgZW52aXJvbm1lbnQpLgorCisgIEJpdCA3ICh3cml0ZSk6IENBTl9VU0VfSEVBUAorCVNldCB0aGlzIGJpdCB0byAxIHRvIGluZGljYXRlIHRoYXQgdGhlIHZhbHVlIGVudGVyZWQgaW4gdGhlCisJaGVhcF9lbmRfcHRyIGlzIHZhbGlkLiAgSWYgdGhpcyBmaWVsZCBpcyBjbGVhciwgc29tZSBzZXR1cCBjb2RlCisJZnVuY3Rpb25hbGl0eSB3aWxsIGJlIGRpc2FibGVkLgorCitGaWVsZCBuYW1lOglzZXR1cF9tb3ZlX3NpemUKK1R5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMTIvMgorUHJvdG9jb2w6CTIuMDAtMi4wMQorCisgIFdoZW4gdXNpbmcgcHJvdG9jb2wgMi4wMCBvciAyLjAxLCBpZiB0aGUgcmVhbCBtb2RlIGtlcm5lbCBpcyBub3QKKyAgbG9hZGVkIGF0IDB4OTAwMDAsIGl0IGdldHMgbW92ZWQgdGhlcmUgbGF0ZXIgaW4gdGhlIGxvYWRpbmcKKyAgc2VxdWVuY2UuICBGaWxsIGluIHRoaXMgZmllbGQgaWYgeW91IHdhbnQgYWRkaXRpb25hbCBkYXRhIChzdWNoIGFzCisgIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lKSBtb3ZlZCBpbiBhZGRpdGlvbiB0byB0aGUgcmVhbC1tb2RlIGtlcm5lbAorICBpdHNlbGYuCisKKyAgVGhlIHVuaXQgaXMgYnl0ZXMgc3RhcnRpbmcgd2l0aCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBib290IHNlY3Rvci4KKyAgCisgIFRoaXMgZmllbGQgaXMgY2FuIGJlIGlnbm9yZWQgd2hlbiB0aGUgcHJvdG9jb2wgaXMgMi4wMiBvciBoaWdoZXIsIG9yCisgIGlmIHRoZSByZWFsLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHg5MDAwMC4KKworRmllbGQgbmFtZToJY29kZTMyX3N0YXJ0CitUeXBlOgkJbW9kaWZ5IChvcHRpb25hbCwgcmVsb2MpCitPZmZzZXQvc2l6ZToJMHgyMTQvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgVGhlIGFkZHJlc3MgdG8ganVtcCB0byBpbiBwcm90ZWN0ZWQgbW9kZS4gIFRoaXMgZGVmYXVsdHMgdG8gdGhlIGxvYWQKKyAgYWRkcmVzcyBvZiB0aGUga2VybmVsLCBhbmQgY2FuIGJlIHVzZWQgYnkgdGhlIGJvb3QgbG9hZGVyIHRvCisgIGRldGVybWluZSB0aGUgcHJvcGVyIGxvYWQgYWRkcmVzcy4KKworICBUaGlzIGZpZWxkIGNhbiBiZSBtb2RpZmllZCBmb3IgdHdvIHB1cnBvc2VzOgorCisgIDEuIGFzIGEgYm9vdCBsb2FkZXIgaG9vayAoc2VlIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTIGJlbG93LikKKworICAyLiBpZiBhIGJvb3Rsb2FkZXIgd2hpY2ggZG9lcyBub3QgaW5zdGFsbCBhIGhvb2sgbG9hZHMgYQorICAgICByZWxvY2F0YWJsZSBrZXJuZWwgYXQgYSBub25zdGFuZGFyZCBhZGRyZXNzIGl0IHdpbGwgaGF2ZSB0byBtb2RpZnkKKyAgICAgdGhpcyBmaWVsZCB0byBwb2ludCB0byB0aGUgbG9hZCBhZGRyZXNzLgorCitGaWVsZCBuYW1lOglyYW1kaXNrX2ltYWdlCitUeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMTgvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgVGhlIDMyLWJpdCBsaW5lYXIgYWRkcmVzcyBvZiB0aGUgaW5pdGlhbCByYW1kaXNrIG9yIHJhbWZzLiAgTGVhdmUgYXQKKyAgemVybyBpZiB0aGVyZSBpcyBubyBpbml0aWFsIHJhbWRpc2svcmFtZnMuCisKK0ZpZWxkIG5hbWU6CXJhbWRpc2tfc2l6ZQorVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjFjLzQKK1Byb3RvY29sOgkyLjAwKworCisgIFNpemUgb2YgdGhlIGluaXRpYWwgcmFtZGlzayBvciByYW1mcy4gIExlYXZlIGF0IHplcm8gaWYgdGhlcmUgaXMgbm8KKyAgaW5pdGlhbCByYW1kaXNrL3JhbWZzLgorCitGaWVsZCBuYW1lOglib290c2VjdF9rbHVkZ2UKK1R5cGU6CQlrZXJuZWwgaW50ZXJuYWwKK09mZnNldC9zaXplOgkweDIyMC80CitQcm90b2NvbDoJMi4wMCsKKworICBUaGlzIGZpZWxkIGlzIG9ic29sZXRlLgorCitGaWVsZCBuYW1lOgloZWFwX2VuZF9wdHIKK1R5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIyNC8yCitQcm90b2NvbDoJMi4wMSsKKworICBTZXQgdGhpcyBmaWVsZCB0byB0aGUgb2Zmc2V0IChmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlYWwtbW9kZQorICBjb2RlKSBvZiB0aGUgZW5kIG9mIHRoZSBzZXR1cCBzdGFjay9oZWFwLCBtaW51cyAweDAyMDAuCisKK0ZpZWxkIG5hbWU6CWNtZF9saW5lX3B0cgorVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjI4LzQKK1Byb3RvY29sOgkyLjAyKworCisgIFNldCB0aGlzIGZpZWxkIHRvIHRoZSBsaW5lYXIgYWRkcmVzcyBvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4KKyAgVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgY2FuIGJlIGxvY2F0ZWQgYW55d2hlcmUgYmV0d2VlbiB0aGUgZW5kIG9mCisgIHRoZSBzZXR1cCBoZWFwIGFuZCAweEEwMDAwOyBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGxvY2F0ZWQgaW4gdGhlCisgIHNhbWUgNjRLIHNlZ21lbnQgYXMgdGhlIHJlYWwtbW9kZSBjb2RlIGl0c2VsZi4KKworICBGaWxsIGluIHRoaXMgZmllbGQgZXZlbiBpZiB5b3VyIGJvb3QgbG9hZGVyIGRvZXMgbm90IHN1cHBvcnQgYQorICBjb21tYW5kIGxpbmUsIGluIHdoaWNoIGNhc2UgeW91IGNhbiBwb2ludCB0aGlzIHRvIGFuIGVtcHR5IHN0cmluZworICAob3IgYmV0dGVyIHlldCwgdG8gdGhlIHN0cmluZyAiYXV0byIuKSAgSWYgdGhpcyBmaWVsZCBpcyBsZWZ0IGF0CisgIHplcm8sIHRoZSBrZXJuZWwgd2lsbCBhc3N1bWUgdGhhdCB5b3VyIGJvb3QgbG9hZGVyIGRvZXMgbm90IHN1cHBvcnQKKyAgdGhlIDIuMDIrIHByb3RvY29sLgorCitGaWVsZCBuYW1lOglpbml0cmRfYWRkcl9tYXgKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMmMvNAorUHJvdG9jb2w6CTIuMDMrCisKKyAgVGhlIG1heGltdW0gYWRkcmVzcyB0aGF0IG1heSBiZSBvY2N1cGllZCBieSB0aGUgaW5pdGlhbAorICByYW1kaXNrL3JhbWZzIGNvbnRlbnRzLiAgRm9yIGJvb3QgcHJvdG9jb2xzIDIuMDIgb3IgZWFybGllciwgdGhpcworICBmaWVsZCBpcyBub3QgcHJlc2VudCwgYW5kIHRoZSBtYXhpbXVtIGFkZHJlc3MgaXMgMHgzN0ZGRkZGRi4gIChUaGlzCisgIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyB0aGUgYWRkcmVzcyBvZiB0aGUgaGlnaGVzdCBzYWZlIGJ5dGUsIHNvIGlmCisgIHlvdXIgcmFtZGlzayBpcyBleGFjdGx5IDEzMTA3MiBieXRlcyBsb25nIGFuZCB0aGlzIGZpZWxkIGlzCisgIDB4MzdGRkZGRkYsIHlvdSBjYW4gc3RhcnQgeW91ciByYW1kaXNrIGF0IDB4MzdGRTAwMDAuKQorCitGaWVsZCBuYW1lOglrZXJuZWxfYWxpZ25tZW50CitUeXBlOgkJcmVhZCAocmVsb2MpCitPZmZzZXQvc2l6ZToJMHgyMzAvNAorUHJvdG9jb2w6CTIuMDUrCisKKyAgQWxpZ25tZW50IHVuaXQgcmVxdWlyZWQgYnkgdGhlIGtlcm5lbCAoaWYgcmVsb2NhdGFibGVfa2VybmVsIGlzIHRydWUuKQorCitGaWVsZCBuYW1lOglyZWxvY2F0YWJsZV9rZXJuZWwKK1R5cGU6CQlyZWFkIChyZWxvYykKK09mZnNldC9zaXplOgkweDIzNC8xCitQcm90b2NvbDoJMi4wNSsKKworICBJZiB0aGlzIGZpZWxkIGlzIG5vbnplcm8sIHRoZSBwcm90ZWN0ZWQtbW9kZSBwYXJ0IG9mIHRoZSBrZXJuZWwgY2FuCisgIGJlIGxvYWRlZCBhdCBhbnkgYWRkcmVzcyB0aGF0IHNhdGlzZmllcyB0aGUga2VybmVsX2FsaWdubWVudCBmaWVsZC4KKyAgQWZ0ZXIgbG9hZGluZywgdGhlIGJvb3QgbG9hZGVyIG11c3Qgc2V0IHRoZSBjb2RlMzJfc3RhcnQgZmllbGQgdG8KKyAgcG9pbnQgdG8gdGhlIGxvYWRlZCBjb2RlLCBvciB0byBhIGJvb3QgbG9hZGVyIGhvb2suCisKK0ZpZWxkIG5hbWU6CWNtZGxpbmVfc2l6ZQorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIzOC80CitQcm90b2NvbDoJMi4wNisKKworICBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBjb21tYW5kIGxpbmUgd2l0aG91dCB0aGUgdGVybWluYXRpbmcKKyAgemVyby4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb21tYW5kIGxpbmUgY2FuIGNvbnRhaW4gYXQgbW9zdAorICBjbWRsaW5lX3NpemUgY2hhcmFjdGVycy4gV2l0aCBwcm90b2NvbCB2ZXJzaW9uIDIuMDUgYW5kIGVhcmxpZXIsIHRoZQorICBtYXhpbXVtIHNpemUgd2FzIDI1NS4KKworRmllbGQgbmFtZToJaGFyZHdhcmVfc3ViYXJjaAorVHlwZToJCXdyaXRlIChvcHRpb25hbCwgZGVmYXVsdHMgdG8geDg2L1BDKQorT2Zmc2V0L3NpemU6CTB4MjNjLzQKK1Byb3RvY29sOgkyLjA3KworCisgIEluIGEgcGFyYXZpcnR1YWxpemVkIGVudmlyb25tZW50IHRoZSBoYXJkd2FyZSBsb3cgbGV2ZWwgYXJjaGl0ZWN0dXJhbAorICBwaWVjZXMgc3VjaCBhcyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHBhZ2UgdGFibGUgaGFuZGxpbmcsIGFuZAorICBhY2Nlc3NpbmcgcHJvY2VzcyBjb250cm9sIHJlZ2lzdGVycyBuZWVkcyB0byBiZSBkb25lIGRpZmZlcmVudGx5LgorCisgIFRoaXMgZmllbGQgYWxsb3dzIHRoZSBib290bG9hZGVyIHRvIGluZm9ybSB0aGUga2VybmVsIHdlIGFyZSBpbiBvbmUKKyAgb25lIG9mIHRob3NlIGVudmlyb25tZW50cy4KKworICAweDAwMDAwMDAwCVRoZSBkZWZhdWx0IHg4Ni9QQyBlbnZpcm9ubWVudAorICAweDAwMDAwMDAxCWxndWVzdAorICAweDAwMDAwMDAyCVhlbgorCitGaWVsZCBuYW1lOgloYXJkd2FyZV9zdWJhcmNoX2RhdGEKK1R5cGU6CQl3cml0ZSAoc3ViYXJjaC1kZXBlbmRlbnQpCitPZmZzZXQvc2l6ZToJMHgyNDAvOAorUHJvdG9jb2w6CTIuMDcrCisKKyAgQSBwb2ludGVyIHRvIGRhdGEgdGhhdCBpcyBzcGVjaWZpYyB0byBoYXJkd2FyZSBzdWJhcmNoCisgIFRoaXMgZmllbGQgaXMgY3VycmVudGx5IHVudXNlZCBmb3IgdGhlIGRlZmF1bHQgeDg2L1BDIGVudmlyb25tZW50LAorICBkbyBub3QgbW9kaWZ5LgorCitGaWVsZCBuYW1lOglwYXlsb2FkX29mZnNldAorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDI0OC80CitQcm90b2NvbDoJMi4wOCsKKworICBJZiBub24temVybyB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgdGhlCisgIHJlYWwtbW9kZSBjb2RlIHRvIHRoZSBwYXlsb2FkLgorCisgIFRoZSBwYXlsb2FkIG1heSBiZSBjb21wcmVzc2VkLiBUaGUgZm9ybWF0IG9mIGJvdGggdGhlIGNvbXByZXNzZWQgYW5kCisgIHVuY29tcHJlc3NlZCBkYXRhIHNob3VsZCBiZSBkZXRlcm1pbmVkIHVzaW5nIHRoZSBzdGFuZGFyZCBtYWdpYworICBudW1iZXJzLiBDdXJyZW50bHkgb25seSBnemlwIGNvbXByZXNzZWQgRUxGIGlzIHVzZWQuCisgIAorRmllbGQgbmFtZToJcGF5bG9hZF9sZW5ndGgKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyNGMvNAorUHJvdG9jb2w6CTIuMDgrCisKKyAgVGhlIGxlbmd0aCBvZiB0aGUgcGF5bG9hZC4KKworRmllbGQgbmFtZToJc2V0dXBfZGF0YQorVHlwZToJCXdyaXRlIChzcGVjaWFsKQorT2Zmc2V0L3NpemU6CTB4MjUwLzgKK1Byb3RvY29sOgkyLjA5KworCisgIFRoZSA2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byBOVUxMIHRlcm1pbmF0ZWQgc2luZ2xlIGxpbmtlZCBsaXN0IG9mCisgIHN0cnVjdCBzZXR1cF9kYXRhLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgbW9yZSBleHRlbnNpYmxlIGJvb3QKKyAgcGFyYW1ldGVycyBwYXNzaW5nIG1lY2hhbmlzbS4gVGhlIGRlZmluaXRpb24gb2Ygc3RydWN0IHNldHVwX2RhdGEgaXMKKyAgYXMgZm9sbG93OgorCisgIHN0cnVjdCBzZXR1cF9kYXRhIHsKKwkgIHU2NCBuZXh0OworCSAgdTMyIHR5cGU7CisJICB1MzIgbGVuOworCSAgdTggIGRhdGFbMF07CisgIH07CisKKyAgV2hlcmUsIHRoZSBuZXh0IGlzIGEgNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gdGhlIG5leHQgbm9kZSBvZgorICBsaW5rZWQgbGlzdCwgdGhlIG5leHQgZmllbGQgb2YgdGhlIGxhc3Qgbm9kZSBpcyAwOyB0aGUgdHlwZSBpcyB1c2VkCisgIHRvIGlkZW50aWZ5IHRoZSBjb250ZW50cyBvZiBkYXRhOyB0aGUgbGVuIGlzIHRoZSBsZW5ndGggb2YgZGF0YQorICBmaWVsZDsgdGhlIGRhdGEgaG9sZHMgdGhlIHJlYWwgcGF5bG9hZC4KKworICBUaGlzIGxpc3QgbWF5IGJlIG1vZGlmaWVkIGF0IGEgbnVtYmVyIG9mIHBvaW50cyBkdXJpbmcgdGhlIGJvb3R1cAorICBwcm9jZXNzLiAgVGhlcmVmb3JlLCB3aGVuIG1vZGlmeWluZyB0aGlzIGxpc3Qgb25lIHNob3VsZCBhbHdheXMgbWFrZQorICBzdXJlIHRvIGNvbnNpZGVyIHRoZSBjYXNlIHdoZXJlIHRoZSBsaW5rZWQgbGlzdCBhbHJlYWR5IGNvbnRhaW5zCisgIGVudHJpZXMuCisKKworKioqKiBUSEUgSU1BR0UgQ0hFQ0tTVU0KKworRnJvbSBib290IHByb3RvY29sIHZlcnNpb24gMi4wOCBvbndhcmRzIHRoZSBDUkMtMzIgaXMgY2FsY3VsYXRlZCBvdmVyCit0aGUgZW50aXJlIGZpbGUgdXNpbmcgdGhlIGNoYXJhY3RlcmlzdGljIHBvbHlub21pYWwgMHgwNEMxMURCNyBhbmQgYW4KK2luaXRpYWwgcmVtYWluZGVyIG9mIDB4ZmZmZmZmZmYuICBUaGUgY2hlY2tzdW0gaXMgYXBwZW5kZWQgdG8gdGhlCitmaWxlOyB0aGVyZWZvcmUgdGhlIENSQyBvZiB0aGUgZmlsZSB1cCB0byB0aGUgbGltaXQgc3BlY2lmaWVkIGluIHRoZQorc3lzc2l6ZSBmaWVsZCBvZiB0aGUgaGVhZGVyIGlzIGFsd2F5cyAwLgorCisKKyoqKiogVEhFIEtFUk5FTCBDT01NQU5EIExJTkUKKworVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgaGFzIGJlY29tZSBhbiBpbXBvcnRhbnQgd2F5IGZvciB0aGUgYm9vdAorbG9hZGVyIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGtlcm5lbC4gIFNvbWUgb2YgaXRzIG9wdGlvbnMgYXJlIGFsc28KK3JlbGV2YW50IHRvIHRoZSBib290IGxvYWRlciBpdHNlbGYsIHNlZSAic3BlY2lhbCBjb21tYW5kIGxpbmUgb3B0aW9ucyIKK2JlbG93LgorCitUaGUga2VybmVsIGNvbW1hbmQgbGluZSBpcyBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcuIFRoZSBtYXhpbXVtCitsZW5ndGggY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBmaWVsZCBjbWRsaW5lX3NpemUuICBCZWZvcmUgcHJvdG9jb2wKK3ZlcnNpb24gMi4wNiwgdGhlIG1heGltdW0gd2FzIDI1NSBjaGFyYWN0ZXJzLiAgQSBzdHJpbmcgdGhhdCBpcyB0b28KK2xvbmcgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHRydW5jYXRlZCBieSB0aGUga2VybmVsLgorCitJZiB0aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uIGlzIDIuMDIgb3IgbGF0ZXIsIHRoZSBhZGRyZXNzIG9mIHRoZQora2VybmVsIGNvbW1hbmQgbGluZSBpcyBnaXZlbiBieSB0aGUgaGVhZGVyIGZpZWxkIGNtZF9saW5lX3B0ciAoc2VlCithYm92ZS4pICBUaGlzIGFkZHJlc3MgY2FuIGJlIGFueXdoZXJlIGJldHdlZW4gdGhlIGVuZCBvZiB0aGUgc2V0dXAKK2hlYXAgYW5kIDB4QTAwMDAuCisKK0lmIHRoZSBwcm90b2NvbCB2ZXJzaW9uIGlzICpub3QqIDIuMDIgb3IgaGlnaGVyLCB0aGUga2VybmVsCitjb21tYW5kIGxpbmUgaXMgZW50ZXJlZCB1c2luZyB0aGUgZm9sbG93aW5nIHByb3RvY29sOgorCisJQXQgb2Zmc2V0IDB4MDAyMCAod29yZCksICJjbWRfbGluZV9tYWdpYyIsIGVudGVyIHRoZSBtYWdpYworCW51bWJlciAweEEzM0YuCisKKwlBdCBvZmZzZXQgMHgwMDIyICh3b3JkKSwgImNtZF9saW5lX29mZnNldCIsIGVudGVyIHRoZSBvZmZzZXQKKwlvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZSAocmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZQorCXJlYWwtbW9kZSBrZXJuZWwpLgorCQorCVRoZSBrZXJuZWwgY29tbWFuZCBsaW5lICptdXN0KiBiZSB3aXRoaW4gdGhlIG1lbW9yeSByZWdpb24KKwljb3ZlcmVkIGJ5IHNldHVwX21vdmVfc2l6ZSwgc28geW91IG1heSBuZWVkIHRvIGFkanVzdCB0aGlzCisJZmllbGQuCisKKworKioqKiBNRU1PUlkgTEFZT1VUIE9GIFRIRSBSRUFMLU1PREUgQ09ERQorCitUaGUgcmVhbC1tb2RlIGNvZGUgcmVxdWlyZXMgYSBzdGFjay9oZWFwIHRvIGJlIHNldCB1cCwgYXMgd2VsbCBhcworbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuICBUaGlzIG5lZWRzIHRvIGJlIGRvbmUKK2luIHRoZSByZWFsLW1vZGUgYWNjZXNzaWJsZSBtZW1vcnkgaW4gYm90dG9tIG1lZ2FieXRlLgorCitJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBtb2Rlcm4gbWFjaGluZXMgb2Z0ZW4gaGF2ZSBhIHNpemFibGUgRXh0ZW5kZWQKK0JJT1MgRGF0YSBBcmVhIChFQkRBKS4gIEFzIGEgcmVzdWx0LCBpdCBpcyBhZHZpc2FibGUgdG8gdXNlIGFzIGxpdHRsZQorb2YgdGhlIGxvdyBtZWdhYnl0ZSBhcyBwb3NzaWJsZS4KKworVW5mb3J0dW5hdGVseSwgdW5kZXIgdGhlIGZvbGxvd2luZyBjaXJjdW1zdGFuY2VzIHRoZSAweDkwMDAwIG1lbW9yeQorc2VnbWVudCBoYXMgdG8gYmUgdXNlZDoKKworCS0gV2hlbiBsb2FkaW5nIGEgekltYWdlIGtlcm5lbCAoKGxvYWRmbGFncyAmIDB4MDEpID09IDApLgorCS0gV2hlbiBsb2FkaW5nIGEgMi4wMSBvciBlYXJsaWVyIGJvb3QgcHJvdG9jb2wga2VybmVsLgorCisJICAtPiBGb3IgdGhlIDIuMDAgYW5kIDIuMDEgYm9vdCBwcm90b2NvbHMsIHRoZSByZWFsLW1vZGUgY29kZQorCSAgICAgY2FuIGJlIGxvYWRlZCBhdCBhbm90aGVyIGFkZHJlc3MsIGJ1dCBpdCBpcyBpbnRlcm5hbGx5CisJICAgICByZWxvY2F0ZWQgdG8gMHg5MDAwMC4gIEZvciB0aGUgIm9sZCIgcHJvdG9jb2wsIHRoZQorCSAgICAgcmVhbC1tb2RlIGNvZGUgbXVzdCBiZSBsb2FkZWQgYXQgMHg5MDAwMC4KKworV2hlbiBsb2FkaW5nIGF0IDB4OTAwMDAsIGF2b2lkIHVzaW5nIG1lbW9yeSBhYm92ZSAweDlhMDAwLgorCitGb3IgYm9vdCBwcm90b2NvbCAyLjAyIG9yIGhpZ2hlciwgdGhlIGNvbW1hbmQgbGluZSBkb2VzIG5vdCBoYXZlIHRvIGJlCitsb2NhdGVkIGluIHRoZSBzYW1lIDY0SyBzZWdtZW50IGFzIHRoZSByZWFsLW1vZGUgc2V0dXAgY29kZTsgaXQgaXMKK3RodXMgcGVybWl0dGVkIHRvIGdpdmUgdGhlIHN0YWNrL2hlYXAgdGhlIGZ1bGwgNjRLIHNlZ21lbnQgYW5kIGxvY2F0ZQordGhlIGNvbW1hbmQgbGluZSBhYm92ZSBpdC4KKworVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgc2hvdWxkIG5vdCBiZSBsb2NhdGVkIGJlbG93IHRoZSByZWFsLW1vZGUKK2NvZGUsIG5vciBzaG91bGQgaXQgYmUgbG9jYXRlZCBpbiBoaWdoIG1lbW9yeS4KKworCisqKioqIFNBTVBMRSBCT09UIENPTkZJR1VSQVRJT04KKworQXMgYSBzYW1wbGUgY29uZmlndXJhdGlvbiwgYXNzdW1lIHRoZSBmb2xsb3dpbmcgbGF5b3V0IG9mIHRoZSByZWFsCittb2RlIHNlZ21lbnQ6CisKKyAgICBXaGVuIGxvYWRpbmcgYmVsb3cgMHg5MDAwMCwgdXNlIHRoZSBlbnRpcmUgc2VnbWVudDoKKworCTB4MDAwMC0weDdmZmYJUmVhbCBtb2RlIGtlcm5lbAorCTB4ODAwMC0weGRmZmYJU3RhY2sgYW5kIGhlYXAKKwkweGUwMDAtMHhmZmZmCUtlcm5lbCBjb21tYW5kIGxpbmUKKworICAgIFdoZW4gbG9hZGluZyBhdCAweDkwMDAwIE9SIHRoZSBwcm90b2NvbCB2ZXJzaW9uIGlzIDIuMDEgb3IgZWFybGllcjoKKworCTB4MDAwMC0weDdmZmYJUmVhbCBtb2RlIGtlcm5lbAorCTB4ODAwMC0weDk3ZmYJU3RhY2sgYW5kIGhlYXAKKwkweDk4MDAtMHg5ZmZmCUtlcm5lbCBjb21tYW5kIGxpbmUKKworU3VjaCBhIGJvb3QgbG9hZGVyIHNob3VsZCBlbnRlciB0aGUgZm9sbG93aW5nIGZpZWxkcyBpbiB0aGUgaGVhZGVyOgorCisJdW5zaWduZWQgbG9uZyBiYXNlX3B0cjsJLyogYmFzZSBhZGRyZXNzIGZvciByZWFsLW1vZGUgc2VnbWVudCAqLworCisJaWYgKCBzZXR1cF9zZWN0cyA9PSAwICkgeworCQlzZXR1cF9zZWN0cyA9IDQ7CisJfQorCisJaWYgKCBwcm90b2NvbCA+PSAweDAyMDAgKSB7CisJCXR5cGVfb2ZfbG9hZGVyID0gPHR5cGUgY29kZT47CisJCWlmICggbG9hZGluZ19pbml0cmQgKSB7CisJCQlyYW1kaXNrX2ltYWdlID0gPGluaXRyZF9hZGRyZXNzPjsKKwkJCXJhbWRpc2tfc2l6ZSA9IDxpbml0cmRfc2l6ZT47CisJCX0KKworCQlpZiAoIHByb3RvY29sID49IDB4MDIwMiAmJiBsb2FkZmxhZ3MgJiAweDAxICkKKwkJCWhlYXBfZW5kID0gMHhlMDAwOworCQllbHNlCisJCQloZWFwX2VuZCA9IDB4OTgwMDsKKworCQlpZiAoIHByb3RvY29sID49IDB4MDIwMSApIHsKKwkJCWhlYXBfZW5kX3B0ciA9IGhlYXBfZW5kIC0gMHgyMDA7CisJCQlsb2FkZmxhZ3MgfD0gMHg4MDsgLyogQ0FOX1VTRV9IRUFQICovCisJCX0KKworCQlpZiAoIHByb3RvY29sID49IDB4MDIwMiApIHsKKwkJCWNtZF9saW5lX3B0ciA9IGJhc2VfcHRyICsgaGVhcF9lbmQ7CisJCQlzdHJjcHkoY21kX2xpbmVfcHRyLCBjbWRsaW5lKTsKKwkJfSBlbHNlIHsKKwkJCWNtZF9saW5lX21hZ2ljCT0gMHhBMzNGOworCQkJY21kX2xpbmVfb2Zmc2V0ID0gaGVhcF9lbmQ7CisJCQlzZXR1cF9tb3ZlX3NpemUgPSBoZWFwX2VuZCArIHN0cmxlbihjbWRsaW5lKSsxOworCQkJc3RyY3B5KGJhc2VfcHRyK2NtZF9saW5lX29mZnNldCwgY21kbGluZSk7CisJCX0KKwl9IGVsc2UgeworCQkvKiBWZXJ5IG9sZCBrZXJuZWwgKi8KKworCQloZWFwX2VuZCA9IDB4OTgwMDsKKworCQljbWRfbGluZV9tYWdpYwk9IDB4QTMzRjsKKwkJY21kX2xpbmVfb2Zmc2V0ID0gaGVhcF9lbmQ7CisKKwkJLyogQSB2ZXJ5IG9sZCBrZXJuZWwgTVVTVCBoYXZlIGl0cyByZWFsLW1vZGUgY29kZQorCQkgICBsb2FkZWQgYXQgMHg5MDAwMCAqLworCisJCWlmICggYmFzZV9wdHIgIT0gMHg5MDAwMCApIHsKKwkJCS8qIENvcHkgdGhlIHJlYWwtbW9kZSBrZXJuZWwgKi8KKwkJCW1lbWNweSgweDkwMDAwLCBiYXNlX3B0ciwgKHNldHVwX3NlY3RzKzEpKjUxMik7CisJCQliYXNlX3B0ciA9IDB4OTAwMDA7CQkgLyogUmVsb2NhdGVkICovCisJCX0KKworCQlzdHJjcHkoMHg5MDAwMCtjbWRfbGluZV9vZmZzZXQsIGNtZGxpbmUpOworCisJCS8qIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsZWFyIG1lbW9yeSB1cCB0byB0aGUgMzJLIG1hcmsgKi8KKwkJbWVtc2V0KDB4OTAwMDAgKyAoc2V0dXBfc2VjdHMrMSkqNTEyLCAwLAorCQkgICAgICAgKDY0LShzZXR1cF9zZWN0cysxKSkqNTEyKTsKKwl9CisKKworKioqKiBMT0FESU5HIFRIRSBSRVNUIE9GIFRIRSBLRVJORUwKKworVGhlIDMyLWJpdCAobm9uLXJlYWwtbW9kZSkga2VybmVsIHN0YXJ0cyBhdCBvZmZzZXQgKHNldHVwX3NlY3RzKzEpKjUxMgoraW4gdGhlIGtlcm5lbCBmaWxlIChhZ2FpbiwgaWYgc2V0dXBfc2VjdHMgPT0gMCB0aGUgcmVhbCB2YWx1ZSBpcyA0LikKK0l0IHNob3VsZCBiZSBsb2FkZWQgYXQgYWRkcmVzcyAweDEwMDAwIGZvciBJbWFnZS96SW1hZ2Uga2VybmVscyBhbmQKKzB4MTAwMDAwIGZvciBiekltYWdlIGtlcm5lbHMuCisKK1RoZSBrZXJuZWwgaXMgYSBiekltYWdlIGtlcm5lbCBpZiB0aGUgcHJvdG9jb2wgPj0gMi4wMCBhbmQgdGhlIDB4MDEKK2JpdCAoTE9BRF9ISUdIKSBpbiB0aGUgbG9hZGZsYWdzIGZpZWxkIGlzIHNldDoKKworCWlzX2J6SW1hZ2UgPSAocHJvdG9jb2wgPj0gMHgwMjAwKSAmJiAobG9hZGZsYWdzICYgMHgwMSk7CisJbG9hZF9hZGRyZXNzID0gaXNfYnpJbWFnZSA/IDB4MTAwMDAwIDogMHgxMDAwMDsKKworTm90ZSB0aGF0IEltYWdlL3pJbWFnZSBrZXJuZWxzIGNhbiBiZSB1cCB0byA1MTJLIGluIHNpemUsIGFuZCB0aHVzIHVzZQordGhlIGVudGlyZSAweDEwMDAwLTB4OTAwMDAgcmFuZ2Ugb2YgbWVtb3J5LiAgVGhpcyBtZWFucyBpdCBpcyBwcmV0dHkKK211Y2ggYSByZXF1aXJlbWVudCBmb3IgdGhlc2Uga2VybmVscyB0byBsb2FkIHRoZSByZWFsLW1vZGUgcGFydCBhdAorMHg5MDAwMC4gIGJ6SW1hZ2Uga2VybmVscyBhbGxvdyBtdWNoIG1vcmUgZmxleGliaWxpdHkuCisKKworKioqKiBTUEVDSUFMIENPTU1BTkQgTElORSBPUFRJT05TCisKK0lmIHRoZSBjb21tYW5kIGxpbmUgcHJvdmlkZWQgYnkgdGhlIGJvb3QgbG9hZGVyIGlzIGVudGVyZWQgYnkgdGhlCit1c2VyLCB0aGUgdXNlciBtYXkgZXhwZWN0IHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gd29yay4KK1RoZXkgc2hvdWxkIG5vcm1hbGx5IG5vdCBiZSBkZWxldGVkIGZyb20gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgZXZlbgordGhvdWdoIG5vdCBhbGwgb2YgdGhlbSBhcmUgYWN0dWFsbHkgbWVhbmluZ2Z1bCB0byB0aGUga2VybmVsLiAgQm9vdAorbG9hZGVyIGF1dGhvcnMgd2hvIG5lZWQgYWRkaXRpb25hbCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhlIGJvb3QKK2xvYWRlciBpdHNlbGYgc2hvdWxkIGdldCB0aGVtIHJlZ2lzdGVyZWQgaW4KK0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IHRvIG1ha2Ugc3VyZSB0aGV5IHdpbGwgbm90Citjb25mbGljdCB3aXRoIGFjdHVhbCBrZXJuZWwgb3B0aW9ucyBub3cgb3IgaW4gdGhlIGZ1dHVyZS4KKworICB2Z2E9PG1vZGU+CisJPG1vZGU+IGhlcmUgaXMgZWl0aGVyIGFuIGludGVnZXIgKGluIEMgbm90YXRpb24sIGVpdGhlcgorCWRlY2ltYWwsIG9jdGFsLCBvciBoZXhhZGVjaW1hbCkgb3Igb25lIG9mIHRoZSBzdHJpbmdzCisJIm5vcm1hbCIgKG1lYW5pbmcgMHhGRkZGKSwgImV4dCIgKG1lYW5pbmcgMHhGRkZFKSBvciAiYXNrIgorCShtZWFuaW5nIDB4RkZGRCkuICBUaGlzIHZhbHVlIHNob3VsZCBiZSBlbnRlcmVkIGludG8gdGhlCisJdmlkX21vZGUgZmllbGQsIGFzIGl0IGlzIHVzZWQgYnkgdGhlIGtlcm5lbCBiZWZvcmUgdGhlIGNvbW1hbmQKKwlsaW5lIGlzIHBhcnNlZC4KKworICBtZW09PHNpemU+CisJPHNpemU+IGlzIGFuIGludGVnZXIgaW4gQyBub3RhdGlvbiBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5CisJKGNhc2UgaW5zZW5zaXRpdmUpIEssIE0sIEcsIFQsIFAgb3IgRSAobWVhbmluZyA8PCAxMCwgPDwgMjAsCisJPDwgMzAsIDw8IDQwLCA8PCA1MCBvciA8PCA2MCkuICBUaGlzIHNwZWNpZmllcyB0aGUgZW5kIG9mCisJbWVtb3J5IHRvIHRoZSBrZXJuZWwuIFRoaXMgYWZmZWN0cyB0aGUgcG9zc2libGUgcGxhY2VtZW50IG9mCisJYW4gaW5pdHJkLCBzaW5jZSBhbiBpbml0cmQgc2hvdWxkIGJlIHBsYWNlZCBuZWFyIGVuZCBvZgorCW1lbW9yeS4gIE5vdGUgdGhhdCB0aGlzIGlzIGFuIG9wdGlvbiB0byAqYm90aCogdGhlIGtlcm5lbCBhbmQKKwl0aGUgYm9vdGxvYWRlciEKKworICBpbml0cmQ9PGZpbGU+CisJQW4gaW5pdHJkIHNob3VsZCBiZSBsb2FkZWQuICBUaGUgbWVhbmluZyBvZiA8ZmlsZT4gaXMKKwlvYnZpb3VzbHkgYm9vdGxvYWRlci1kZXBlbmRlbnQsIGFuZCBzb21lIGJvb3QgbG9hZGVycworCShlLmcuIExJTE8pIGRvIG5vdCBoYXZlIHN1Y2ggYSBjb21tYW5kLgorCitJbiBhZGRpdGlvbiwgc29tZSBib290IGxvYWRlcnMgYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byB0aGUKK3VzZXItc3BlY2lmaWVkIGNvbW1hbmQgbGluZToKKworICBCT09UX0lNQUdFPTxmaWxlPgorCVRoZSBib290IGltYWdlIHdoaWNoIHdhcyBsb2FkZWQuICBBZ2FpbiwgdGhlIG1lYW5pbmcgb2YgPGZpbGU+CisJaXMgb2J2aW91c2x5IGJvb3Rsb2FkZXItZGVwZW5kZW50LgorCisgIGF1dG8KKwlUaGUga2VybmVsIHdhcyBib290ZWQgd2l0aG91dCBleHBsaWNpdCB1c2VyIGludGVydmVudGlvbi4KKworSWYgdGhlc2Ugb3B0aW9ucyBhcmUgYWRkZWQgYnkgdGhlIGJvb3QgbG9hZGVyLCBpdCBpcyBoaWdobHkKK3JlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgbG9jYXRlZCAqZmlyc3QqLCBiZWZvcmUgdGhlIHVzZXItc3BlY2lmaWVkCitvciBjb25maWd1cmF0aW9uLXNwZWNpZmllZCBjb21tYW5kIGxpbmUuICBPdGhlcndpc2UsICJpbml0PS9iaW4vc2giCitnZXRzIGNvbmZ1c2VkIGJ5IHRoZSAiYXV0byIgb3B0aW9uLgorCisKKyoqKiogUlVOTklORyBUSEUgS0VSTkVMCisKK1RoZSBrZXJuZWwgaXMgc3RhcnRlZCBieSBqdW1waW5nIHRvIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQsIHdoaWNoIGlzCitsb2NhdGVkIGF0ICpzZWdtZW50KiBvZmZzZXQgMHgyMCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgcmVhbCBtb2RlCitrZXJuZWwuICBUaGlzIG1lYW5zIHRoYXQgaWYgeW91IGxvYWRlZCB5b3VyIHJlYWwtbW9kZSBrZXJuZWwgY29kZSBhdAorMHg5MDAwMCwgdGhlIGtlcm5lbCBlbnRyeSBwb2ludCBpcyA5MDIwOjAwMDAuCisKK0F0IGVudHJ5LCBkcyA9IGVzID0gc3Mgc2hvdWxkIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcmVhbC1tb2RlCitrZXJuZWwgY29kZSAoMHg5MDAwIGlmIHRoZSBjb2RlIGlzIGxvYWRlZCBhdCAweDkwMDAwKSwgc3Agc2hvdWxkIGJlCitzZXQgdXAgcHJvcGVybHksIG5vcm1hbGx5IHBvaW50aW5nIHRvIHRoZSB0b3Agb2YgdGhlIGhlYXAsIGFuZAoraW50ZXJydXB0cyBzaG91bGQgYmUgZGlzYWJsZWQuICBGdXJ0aGVybW9yZSwgdG8gZ3VhcmQgYWdhaW5zdCBidWdzIGluCit0aGUga2VybmVsLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBib290IGxvYWRlciBzZXRzIGZzID0gZ3MgPSBkcyA9CitlcyA9IHNzLgorCitJbiBvdXIgZXhhbXBsZSBmcm9tIGFib3ZlLCB3ZSB3b3VsZCBkbzoKKworCS8qIE5vdGU6IGluIHRoZSBjYXNlIG9mIHRoZSAib2xkIiBrZXJuZWwgcHJvdG9jb2wsIGJhc2VfcHRyIG11c3QKKwkgICBiZSA9PSAweDkwMDAwIGF0IHRoaXMgcG9pbnQ7IHNlZSB0aGUgcHJldmlvdXMgc2FtcGxlIGNvZGUgKi8KKworCXNlZyA9IGJhc2VfcHRyID4+IDQ7CisKKwljbGkoKTsJLyogRW50ZXIgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkISAqLworCisJLyogU2V0IHVwIHRoZSByZWFsLW1vZGUga2VybmVsIHN0YWNrICovCisJX1NTID0gc2VnOworCV9TUCA9IGhlYXBfZW5kOworCisJX0RTID0gX0VTID0gX0ZTID0gX0dTID0gc2VnOworCWptcF9mYXIoc2VnKzB4MjAsIDApOwkvKiBSdW4gdGhlIGtlcm5lbCAqLworCitJZiB5b3VyIGJvb3Qgc2VjdG9yIGFjY2Vzc2VzIGEgZmxvcHB5IGRyaXZlLCBpdCBpcyByZWNvbW1lbmRlZCB0bworc3dpdGNoIG9mZiB0aGUgZmxvcHB5IG1vdG9yIGJlZm9yZSBydW5uaW5nIHRoZSBrZXJuZWwsIHNpbmNlIHRoZQora2VybmVsIGJvb3QgbGVhdmVzIGludGVycnVwdHMgb2ZmIGFuZCB0aHVzIHRoZSBtb3RvciB3aWxsIG5vdCBiZQorc3dpdGNoZWQgb2ZmLCBlc3BlY2lhbGx5IGlmIHRoZSBsb2FkZWQga2VybmVsIGhhcyB0aGUgZmxvcHB5IGRyaXZlciBhcworYSBkZW1hbmQtbG9hZGVkIG1vZHVsZSEKKworCisqKioqIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTCisKK0lmIHRoZSBib290IGxvYWRlciBydW5zIGluIGEgcGFydGljdWxhcmx5IGhvc3RpbGUgZW52aXJvbm1lbnQgKHN1Y2ggYXMKK0xPQURMSU4sIHdoaWNoIHJ1bnMgdW5kZXIgRE9TKSBpdCBtYXkgYmUgaW1wb3NzaWJsZSB0byBmb2xsb3cgdGhlCitzdGFuZGFyZCBtZW1vcnkgbG9jYXRpb24gcmVxdWlyZW1lbnRzLiAgU3VjaCBhIGJvb3QgbG9hZGVyIG1heSB1c2UgdGhlCitmb2xsb3dpbmcgaG9va3MgdGhhdCwgaWYgc2V0LCBhcmUgaW52b2tlZCBieSB0aGUga2VybmVsIGF0IHRoZQorYXBwcm9wcmlhdGUgdGltZS4gIFRoZSB1c2Ugb2YgdGhlc2UgaG9va3Mgc2hvdWxkIHByb2JhYmx5IGJlCitjb25zaWRlcmVkIGFuIGFic29sdXRlbHkgbGFzdCByZXNvcnQhCisKK0lNUE9SVEFOVDogQWxsIHRoZSBob29rcyBhcmUgcmVxdWlyZWQgdG8gcHJlc2VydmUgJWVzcCwgJWVicCwgJWVzaSBhbmQKKyVlZGkgYWNyb3NzIGludm9jYXRpb24uCisKKyAgcmVhbG1vZGVfc3d0Y2g6CisJQSAxNi1iaXQgcmVhbCBtb2RlIGZhciBzdWJyb3V0aW5lIGludm9rZWQgaW1tZWRpYXRlbHkgYmVmb3JlCisJZW50ZXJpbmcgcHJvdGVjdGVkIG1vZGUuICBUaGUgZGVmYXVsdCByb3V0aW5lIGRpc2FibGVzIE5NSSwgc28KKwl5b3VyIHJvdXRpbmUgc2hvdWxkIHByb2JhYmx5IGRvIHNvLCB0b28uCisKKyAgY29kZTMyX3N0YXJ0OgorCUEgMzItYml0IGZsYXQtbW9kZSByb3V0aW5lICpqdW1wZWQqIHRvIGltbWVkaWF0ZWx5IGFmdGVyIHRoZQorCXRyYW5zaXRpb24gdG8gcHJvdGVjdGVkIG1vZGUsIGJ1dCBiZWZvcmUgdGhlIGtlcm5lbCBpcworCXVuY29tcHJlc3NlZC4gIE5vIHNlZ21lbnRzLCBleGNlcHQgQ1MsIGFyZSBndWFyYW50ZWVkIHRvIGJlCisJc2V0IHVwIChjdXJyZW50IGtlcm5lbHMgZG8sIGJ1dCBvbGRlciBvbmVzIGRvIG5vdCk7IHlvdSBzaG91bGQKKwlzZXQgdGhlbSB1cCB0byBCT09UX0RTICgweDE4KSB5b3Vyc2VsZi4KKworCUFmdGVyIGNvbXBsZXRpbmcgeW91ciBob29rLCB5b3Ugc2hvdWxkIGp1bXAgdG8gdGhlIGFkZHJlc3MKKwl0aGF0IHdhcyBpbiB0aGlzIGZpZWxkIGJlZm9yZSB5b3VyIGJvb3QgbG9hZGVyIG92ZXJ3cm90ZSBpdAorCShyZWxvY2F0ZWQsIGlmIGFwcHJvcHJpYXRlLikKKworCisqKioqIDMyLWJpdCBCT09UIFBST1RPQ09MCisKK0ZvciBtYWNoaW5lIHdpdGggc29tZSBuZXcgQklPUyBvdGhlciB0aGFuIGxlZ2FjeSBCSU9TLCBzdWNoIGFzIEVGSSwKK0xpbnV4QklPUywgZXRjLCBhbmQga2V4ZWMsIHRoZSAxNi1iaXQgcmVhbCBtb2RlIHNldHVwIGNvZGUgaW4ga2VybmVsCitiYXNlZCBvbiBsZWdhY3kgQklPUyBjYW4gbm90IGJlIHVzZWQsIHNvIGEgMzItYml0IGJvb3QgcHJvdG9jb2wgbmVlZHMKK3RvIGJlIGRlZmluZWQuCisKK0luIDMyLWJpdCBib290IHByb3RvY29sLCB0aGUgZmlyc3Qgc3RlcCBpbiBsb2FkaW5nIGEgTGludXgga2VybmVsCitzaG91bGQgYmUgdG8gc2V0dXAgdGhlIGJvb3QgcGFyYW1ldGVycyAoc3RydWN0IGJvb3RfcGFyYW1zLAordHJhZGl0aW9uYWxseSBrbm93biBhcyAiemVybyBwYWdlIikuIFRoZSBtZW1vcnkgZm9yIHN0cnVjdCBib290X3BhcmFtcworc2hvdWxkIGJlIGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgdG8gYWxsIHplcm8uIFRoZW4gdGhlIHNldHVwIGhlYWRlcgorZnJvbSBvZmZzZXQgMHgwMWYxIG9mIGtlcm5lbCBpbWFnZSBvbiBzaG91bGQgYmUgbG9hZGVkIGludG8gc3RydWN0Citib290X3BhcmFtcyBhbmQgZXhhbWluZWQuIFRoZSBlbmQgb2Ygc2V0dXAgaGVhZGVyIGNhbiBiZSBjYWxjdWxhdGVkIGFzCitmb2xsb3c6CisKKwkweDAyMDIgKyBieXRlIHZhbHVlIGF0IG9mZnNldCAweDAyMDEKKworSW4gYWRkaXRpb24gdG8gcmVhZC9tb2RpZnkvd3JpdGUgdGhlIHNldHVwIGhlYWRlciBvZiB0aGUgc3RydWN0Citib290X3BhcmFtcyBhcyB0aGF0IG9mIDE2LWJpdCBib290IHByb3RvY29sLCB0aGUgYm9vdCBsb2FkZXIgc2hvdWxkCithbHNvIGZpbGwgdGhlIGFkZGl0aW9uYWwgZmllbGRzIG9mIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXMgYXMgdGhhdAorZGVzY3JpYmVkIGluIHplcm8tcGFnZS50eHQuCisKK0FmdGVyIHNldHVwcGluZyB0aGUgc3RydWN0IGJvb3RfcGFyYW1zLCB0aGUgYm9vdCBsb2FkZXIgY2FuIGxvYWQgdGhlCiszMi82NC1iaXQga2VybmVsIGluIHRoZSBzYW1lIHdheSBhcyB0aGF0IG9mIDE2LWJpdCBib290IHByb3RvY29sLgorCitJbiAzMi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGtlcm5lbCBpcyBzdGFydGVkIGJ5IGp1bXBpbmcgdG8gdGhlCiszMi1iaXQga2VybmVsIGVudHJ5IHBvaW50LCB3aGljaCBpcyB0aGUgc3RhcnQgYWRkcmVzcyBvZiBsb2FkZWQKKzMyLzY0LWJpdCBrZXJuZWwuCisKK0F0IGVudHJ5LCB0aGUgQ1BVIG11c3QgYmUgaW4gMzItYml0IHByb3RlY3RlZCBtb2RlIHdpdGggcGFnaW5nCitkaXNhYmxlZDsgYSBHRFQgbXVzdCBiZSBsb2FkZWQgd2l0aCB0aGUgZGVzY3JpcHRvcnMgZm9yIHNlbGVjdG9ycworX19CT09UX0NTKDB4MTApIGFuZCBfX0JPT1RfRFMoMHgxOCk7IGJvdGggZGVzY3JpcHRvcnMgbXVzdCBiZSA0RyBmbGF0CitzZWdtZW50OyBfX0JPT1NfQ1MgbXVzdCBoYXZlIGV4ZWN1dGUvcmVhZCBwZXJtaXNzaW9uLCBhbmQgX19CT09UX0RTCittdXN0IGhhdmUgcmVhZC93cml0ZSBwZXJtaXNzaW9uOyBDUyBtdXN0IGJlIF9fQk9PVF9DUyBhbmQgRFMsIEVTLCBTUworbXVzdCBiZSBfX0JPT1RfRFM7IGludGVycnVwdCBtdXN0IGJlIGRpc2FibGVkOyAlZXNpIG11c3QgaG9sZCB0aGUgYmFzZQorYWRkcmVzcyBvZiB0aGUgc3RydWN0IGJvb3RfcGFyYW1zOyAlZWJwLCAlZWRpIGFuZCAlZWJ4IG11c3QgYmUgemVyby4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTM4Ni91c2ItbGVnYWN5LXN1cHBvcnQudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni91c2ItbGVnYWN5LXN1cHBvcnQudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kzODYvdXNiLWxlZ2FjeS1zdXBwb3J0LnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni91c2ItbGVnYWN5LXN1cHBvcnQudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kzODYvemVyby1wYWdlLnR4dCBiL0RvY3VtZW50YXRpb24veDg2L2kzODYvemVyby1wYWdlLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMzg2L3plcm8tcGFnZS50eHQKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L2kzODYvemVyby1wYWdlLnR4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvMDAtSU5ERVggYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvMDAtSU5ERVgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0LzAwLUlOREVYCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvMDAtSU5ERVgKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L2Jvb3Qtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvYm9vdC1vcHRpb25zLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQvYm9vdC1vcHRpb25zLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2Jvb3Qtb3B0aW9ucy50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L2NwdS1ob3RwbHVnLXNwZWMgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvY3B1LWhvdHBsdWctc3BlYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQvY3B1LWhvdHBsdWctc3BlYwpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2NwdS1ob3RwbHVnLXNwZWMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L2Zha2UtbnVtYS1mb3ItY3B1c2V0cyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9mYWtlLW51bWEtZm9yLWNwdXNldHMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0L2Zha2UtbnVtYS1mb3ItY3B1c2V0cwpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2Zha2UtbnVtYS1mb3ItY3B1c2V0cwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQva2VybmVsLXN0YWNrcyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9rZXJuZWwtc3RhY2tzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC9rZXJuZWwtc3RhY2tzCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQva2VybmVsLXN0YWNrcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvbWFjaGluZWNoZWNrIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21hY2hpbmVjaGVjawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQvbWFjaGluZWNoZWNrCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbWFjaGluZWNoZWNrCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmNlNzUwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dApAQCAtMCwwICsxLDI4IEBACisKKzxwcmV2aW91cyBkZXNjcmlwdGlvbiBvYnNvbGV0ZSwgZGVsZXRlZD4KKworVmlydHVhbCBtZW1vcnkgbWFwIHdpdGggNCBsZXZlbCBwYWdlIHRhYmxlczoKKworMDAwMDAwMDAwMDAwMDAwMCAtIDAwMDA3ZmZmZmZmZmZmZmYgKD00NyBiaXRzKSB1c2VyIHNwYWNlLCBkaWZmZXJlbnQgcGVyIG1tCitob2xlIGNhdXNlZCBieSBbNDg6NjNdIHNpZ24gZXh0ZW5zaW9uCitmZmZmODAwMDAwMDAwMDAwIC0gZmZmZjgwZmZmZmZmZmZmZiAoPTQwIGJpdHMpIGd1YXJkIGhvbGUKK2ZmZmY4MTAwMDAwMDAwMDAgLSBmZmZmYzBmZmZmZmZmZmZmICg9NDYgYml0cykgZGlyZWN0IG1hcHBpbmcgb2YgYWxsIHBoeXMuIG1lbW9yeQorZmZmZmMxMDAwMDAwMDAwMCAtIGZmZmZjMWZmZmZmZmZmZmYgKD00MCBiaXRzKSBob2xlCitmZmZmYzIwMDAwMDAwMDAwIC0gZmZmZmUxZmZmZmZmZmZmZiAoPTQ1IGJpdHMpIHZtYWxsb2MvaW9yZW1hcCBzcGFjZQorZmZmZmUyMDAwMDAwMDAwMCAtIGZmZmZlMmZmZmZmZmZmZmYgKD00MCBiaXRzKSB2aXJ0dWFsIG1lbW9yeSBtYXAgKDFUQikKKy4uLiB1bnVzZWQgaG9sZSAuLi4KK2ZmZmZmZmZmODAwMDAwMDAgLSBmZmZmZmZmZmEwMDAwMDAwICg9NTEyIE1CKSAga2VybmVsIHRleHQgbWFwcGluZywgZnJvbSBwaHlzIDAKK2ZmZmZmZmZmYTAwMDAwMDAgLSBmZmZmZmZmZmZmZjAwMDAwICg9MTUzNiBNQikgbW9kdWxlIG1hcHBpbmcgc3BhY2UKKworVGhlIGRpcmVjdCBtYXBwaW5nIGNvdmVycyBhbGwgbWVtb3J5IGluIHRoZSBzeXN0ZW0gdXAgdG8gdGhlIGhpZ2hlc3QKK21lbW9yeSBhZGRyZXNzICh0aGlzIG1lYW5zIGluIHNvbWUgY2FzZXMgaXQgY2FuIGFsc28gaW5jbHVkZSBQQ0kgbWVtb3J5Citob2xlcykuCisKK3ZtYWxsb2Mgc3BhY2UgaXMgbGF6aWx5IHN5bmNocm9uaXplZCBpbnRvIHRoZSBkaWZmZXJlbnQgUE1MNCBwYWdlcyBvZgordGhlIHByb2Nlc3NlcyB1c2luZyB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyLCB3aXRoIGluaXRfbGV2ZWw0X3BndCBhcworcmVmZXJlbmNlLgorCitDdXJyZW50IFg4Ni02NCBpbXBsZW1lbnRhdGlvbnMgb25seSBzdXBwb3J0IDQwIGJpdHMgb2YgYWRkcmVzcyBzcGFjZSwKK2J1dCB3ZSBzdXBwb3J0IHVwIHRvIDQ2IGJpdHMuIFRoaXMgZXhwYW5kcyBpbnRvIE1CWiBzcGFjZSBpbiB0aGUgcGFnZSB0YWJsZXMuCisKKy1BbmRpIEtsZWVuLCBKdWwgMjAwNApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L3VlZmkudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L3VlZmkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1ZTJiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvdWVmaS50eHQKQEAgLTAsMCArMSw0MiBAQAorR2VuZXJhbCBub3RlIG9uIFtVXUVGSSB4ODZfNjQgc3VwcG9ydAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgbm9tZW5jbGF0dXJlIEVGSSBhbmQgVUVGSSBhcmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgaW4gdGhpcyBkb2N1bWVudC4KKworQWx0aG91Z2ggdGhlIHRvb2xzIGJlbG93IGFyZSBfbm90XyBuZWVkZWQgZm9yIGJ1aWxkaW5nIHRoZSBrZXJuZWwsCit0aGUgbmVlZGVkIGJvb3Rsb2FkZXIgc3VwcG9ydCBhbmQgYXNzb2NpYXRlZCB0b29scyBmb3IgeDg2XzY0IHBsYXRmb3Jtcword2l0aCBFRkkgZmlybXdhcmUgYW5kIHNwZWNpZmljYXRpb25zIGFyZSBsaXN0ZWQgYmVsb3cuCisKKzEuIFVFRkkgc3BlY2lmaWNhdGlvbjogIGh0dHA6Ly93d3cudWVmaS5vcmcKKworMi4gQm9vdGluZyBMaW51eCBrZXJuZWwgb24gVUVGSSB4ODZfNjQgcGxhdGZvcm0gcmVxdWlyZXMgYm9vdGxvYWRlcgorICAgc3VwcG9ydC4gRWxpbG8gd2l0aCB4ODZfNjQgc3VwcG9ydCBjYW4gYmUgdXNlZC4KKworMy4geDg2XzY0IHBsYXRmb3JtIHdpdGggRUZJL1VFRkkgZmlybXdhcmUuCisKK01lY2hhbmljczoKKy0tLS0tLS0tLQorLSBCdWlsZCB0aGUga2VybmVsIHdpdGggdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uLgorCUNPTkZJR19GQl9FRkk9eQorCUNPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKKyAgSWYgRUZJIHJ1bnRpbWUgc2VydmljZXMgYXJlIGV4cGVjdGVkLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gc2hvdWxkCisgIGJlIHNlbGVjdGVkLgorCUNPTkZJR19FRkk9eQorCUNPTkZJR19FRklfVkFSUz15IG9yIG0JCSMgb3B0aW9uYWwKKy0gQ3JlYXRlIGEgVkZBVCBwYXJ0aXRpb24gb24gdGhlIGRpc2sKKy0gQ29weSB0aGUgZm9sbG93aW5nIHRvIHRoZSBWRkFUIHBhcnRpdGlvbjoKKwllbGlsbyBib290bG9hZGVyIHdpdGggeDg2XzY0IHN1cHBvcnQsIGVsaWxvIGNvbmZpZ3VyYXRpb24gZmlsZSwKKwlrZXJuZWwgaW1hZ2UgYnVpbHQgaW4gZmlyc3Qgc3RlcCBhbmQgY29ycmVzcG9uZGluZworCWluaXRyZC4gSW5zdHJ1Y3Rpb25zIG9uIGJ1aWxkaW5nIGVsaWxvCWFuZCBpdHMgZGVwZW5kZW5jaWVzCisJY2FuIGJlIGZvdW5kIGluIHRoZSBlbGlsbyBzb3VyY2Vmb3JnZSBwcm9qZWN0LgorLSBCb290IHRvIEVGSSBzaGVsbCBhbmQgaW52b2tlIGVsaWxvIGNob29zaW5nIHRoZSBrZXJuZWwgaW1hZ2UgYnVpbHQKKyAgaW4gZmlyc3Qgc3RlcC4KKy0gSWYgc29tZSBvciBhbGwgRUZJIHJ1bnRpbWUgc2VydmljZXMgZG9uJ3Qgd29yaywgeW91IGNhbiB0cnkgZm9sbG93aW5nCisgIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyB0byB0dXJuIG9mZiBzb21lIG9yIGFsbCBFRkkgcnVudGltZQorICBzZXJ2aWNlcy4KKwlub2VmaQkJdHVybiBvZmYgYWxsIEVGSSBydW50aW1lIHNlcnZpY2VzCisJcmVib290X3R5cGU9awl0dXJuIG9mZiBFRkkgcmVib290IHJ1bnRpbWUgc2VydmljZQorLSBJZiB0aGUgRUZJIG1lbW9yeSBtYXAgaGFzIGFkZGl0aW9uYWwgZW50cmllcyBub3QgaW4gdGhlIEU4MjAgbWFwLAorICB5b3UgY2FuIGluY2x1ZGUgdGhvc2UgZW50cmllcyBpbiB0aGUga2VybmVscyBtZW1vcnkgbWFwIG9mIGF2YWlsYWJsZQorICBwaHlzaWNhbCBSQU0gYnkgdXNpbmcgdGhlIGZvbGxvd2luZyBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlci4KKwlhZGRfZWZpX21lbW1hcAlpbmNsdWRlIEVGSSBtZW1vcnkgbWFwIG9mIGF2YWlsYWJsZSBwaHlzaWNhbCBSQU0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L21tLnR4dCBiL0RvY3VtZW50YXRpb24veDg2XzY0L21tLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg5YjZkMi4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9tbS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0KLTxwcmV2aW91cyBkZXNjcmlwdGlvbiBvYnNvbGV0ZSwgZGVsZXRlZD4KLQotVmlydHVhbCBtZW1vcnkgbWFwIHdpdGggNCBsZXZlbCBwYWdlIHRhYmxlczoKLQotMDAwMDAwMDAwMDAwMDAwMCAtIDAwMDA3ZmZmZmZmZmZmZmYgKD00NyBiaXRzKSB1c2VyIHNwYWNlLCBkaWZmZXJlbnQgcGVyIG1tCi1ob2xlIGNhdXNlZCBieSBbNDg6NjNdIHNpZ24gZXh0ZW5zaW9uCi1mZmZmODAwMDAwMDAwMDAwIC0gZmZmZjgwZmZmZmZmZmZmZiAoPTQwIGJpdHMpIGd1YXJkIGhvbGUKLWZmZmY4MTAwMDAwMDAwMDAgLSBmZmZmYzBmZmZmZmZmZmZmICg9NDYgYml0cykgZGlyZWN0IG1hcHBpbmcgb2YgYWxsIHBoeXMuIG1lbW9yeQotZmZmZmMxMDAwMDAwMDAwMCAtIGZmZmZjMWZmZmZmZmZmZmYgKD00MCBiaXRzKSBob2xlCi1mZmZmYzIwMDAwMDAwMDAwIC0gZmZmZmUxZmZmZmZmZmZmZiAoPTQ1IGJpdHMpIHZtYWxsb2MvaW9yZW1hcCBzcGFjZQotZmZmZmUyMDAwMDAwMDAwMCAtIGZmZmZlMmZmZmZmZmZmZmYgKD00MCBiaXRzKSB2aXJ0dWFsIG1lbW9yeSBtYXAgKDFUQikKLS4uLiB1bnVzZWQgaG9sZSAuLi4KLWZmZmZmZmZmODAwMDAwMDAgLSBmZmZmZmZmZjgyODAwMDAwICg9NDAgTUIpICAga2VybmVsIHRleHQgbWFwcGluZywgZnJvbSBwaHlzIDAKLS4uLiB1bnVzZWQgaG9sZSAuLi4KLWZmZmZmZmZmODgwMDAwMDAgLSBmZmZmZmZmZmZmZjAwMDAwICg9MTkxOSBNQikgbW9kdWxlIG1hcHBpbmcgc3BhY2UKLQotVGhlIGRpcmVjdCBtYXBwaW5nIGNvdmVycyBhbGwgbWVtb3J5IGluIHRoZSBzeXN0ZW0gdXAgdG8gdGhlIGhpZ2hlc3QKLW1lbW9yeSBhZGRyZXNzICh0aGlzIG1lYW5zIGluIHNvbWUgY2FzZXMgaXQgY2FuIGFsc28gaW5jbHVkZSBQQ0kgbWVtb3J5Ci1ob2xlcykuCi0KLXZtYWxsb2Mgc3BhY2UgaXMgbGF6aWx5IHN5bmNocm9uaXplZCBpbnRvIHRoZSBkaWZmZXJlbnQgUE1MNCBwYWdlcyBvZgotdGhlIHByb2Nlc3NlcyB1c2luZyB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyLCB3aXRoIGluaXRfbGV2ZWw0X3BndCBhcwotcmVmZXJlbmNlLgotCi1DdXJyZW50IFg4Ni02NCBpbXBsZW1lbnRhdGlvbnMgb25seSBzdXBwb3J0IDQwIGJpdHMgb2YgYWRkcmVzcyBzcGFjZSwKLWJ1dCB3ZSBzdXBwb3J0IHVwIHRvIDQ2IGJpdHMuIFRoaXMgZXhwYW5kcyBpbnRvIE1CWiBzcGFjZSBpbiB0aGUgcGFnZSB0YWJsZXMuCi0KLS1BbmRpIEtsZWVuLCBKdWwgMjAwNApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvdWVmaS50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Nl82NC91ZWZpLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q3NzEyMC4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC91ZWZpLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUdlbmVyYWwgbm90ZSBvbiBbVV1FRkkgeDg2XzY0IHN1cHBvcnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIG5vbWVuY2xhdHVyZSBFRkkgYW5kIFVFRkkgYXJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IGluIHRoaXMgZG9jdW1lbnQuCi0KLUFsdGhvdWdoIHRoZSB0b29scyBiZWxvdyBhcmUgX25vdF8gbmVlZGVkIGZvciBidWlsZGluZyB0aGUga2VybmVsLAotdGhlIG5lZWRlZCBib290bG9hZGVyIHN1cHBvcnQgYW5kIGFzc29jaWF0ZWQgdG9vbHMgZm9yIHg4Nl82NCBwbGF0Zm9ybXMKLXdpdGggRUZJIGZpcm13YXJlIGFuZCBzcGVjaWZpY2F0aW9ucyBhcmUgbGlzdGVkIGJlbG93LgotCi0xLiBVRUZJIHNwZWNpZmljYXRpb246ICBodHRwOi8vd3d3LnVlZmkub3JnCi0KLTIuIEJvb3RpbmcgTGludXgga2VybmVsIG9uIFVFRkkgeDg2XzY0IHBsYXRmb3JtIHJlcXVpcmVzIGJvb3Rsb2FkZXIKLSAgIHN1cHBvcnQuIEVsaWxvIHdpdGggeDg2XzY0IHN1cHBvcnQgY2FuIGJlIHVzZWQuCi0KLTMuIHg4Nl82NCBwbGF0Zm9ybSB3aXRoIEVGSS9VRUZJIGZpcm13YXJlLgotCi1NZWNoYW5pY3M6Ci0tLS0tLS0tLS0KLS0gQnVpbGQgdGhlIGtlcm5lbCB3aXRoIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbi4KLQlDT05GSUdfRkJfRUZJPXkKLQlDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15Ci0gIElmIEVGSSBydW50aW1lIHNlcnZpY2VzIGFyZSBleHBlY3RlZCwgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHNob3VsZAotICBiZSBzZWxlY3RlZC4KLQlDT05GSUdfRUZJPXkKLQlDT05GSUdfRUZJX1ZBUlM9eSBvciBtCQkjIG9wdGlvbmFsCi0tIENyZWF0ZSBhIFZGQVQgcGFydGl0aW9uIG9uIHRoZSBkaXNrCi0tIENvcHkgdGhlIGZvbGxvd2luZyB0byB0aGUgVkZBVCBwYXJ0aXRpb246Ci0JZWxpbG8gYm9vdGxvYWRlciB3aXRoIHg4Nl82NCBzdXBwb3J0LCBlbGlsbyBjb25maWd1cmF0aW9uIGZpbGUsCi0Ja2VybmVsIGltYWdlIGJ1aWx0IGluIGZpcnN0IHN0ZXAgYW5kIGNvcnJlc3BvbmRpbmcKLQlpbml0cmQuIEluc3RydWN0aW9ucyBvbiBidWlsZGluZyBlbGlsbwlhbmQgaXRzIGRlcGVuZGVuY2llcwotCWNhbiBiZSBmb3VuZCBpbiB0aGUgZWxpbG8gc291cmNlZm9yZ2UgcHJvamVjdC4KLS0gQm9vdCB0byBFRkkgc2hlbGwgYW5kIGludm9rZSBlbGlsbyBjaG9vc2luZyB0aGUga2VybmVsIGltYWdlIGJ1aWx0Ci0gIGluIGZpcnN0IHN0ZXAuCi0tIElmIHNvbWUgb3IgYWxsIEVGSSBydW50aW1lIHNlcnZpY2VzIGRvbid0IHdvcmssIHlvdSBjYW4gdHJ5IGZvbGxvd2luZwotICBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgdG8gdHVybiBvZmYgc29tZSBvciBhbGwgRUZJIHJ1bnRpbWUKLSAgc2VydmljZXMuCi0Jbm9lZmkJCXR1cm4gb2ZmIGFsbCBFRkkgcnVudGltZSBzZXJ2aWNlcwotCXJlYm9vdF90eXBlPWsJdHVybiBvZmYgRUZJIHJlYm9vdCBydW50aW1lIHNlcnZpY2UKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggOTlmNTY2NS4uMTUyOGU1OCAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTIyOCwyMSArMjI4LDIxIEBACiBQOglBbGV4ZXkgU3Rhcmlrb3Zza2l5CiBNOglhc3Rhcmlrb3Zza2l5QHN1c2UuZGUKIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vYWNwaS5zb3VyY2Vmb3JnZS5uZXQvCitXOglodHRwOi8vd3d3Lmxlc3N3YXR0cy5vcmcvcHJvamVjdHMvYWNwaS8KIFM6CVN1cHBvcnRlZAogCiBBQ1BJIEVDIERSSVZFUgogUDoJQWxleGV5IFN0YXJpa292c2tpeQogTToJYXN0YXJpa292c2tpeUBzdXNlLmRlCiBMOglsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2FjcGkuc291cmNlZm9yZ2UubmV0LworVzoJaHR0cDovL3d3dy5sZXNzd2F0dHMub3JnL3Byb2plY3RzL2FjcGkvCiBTOglTdXBwb3J0ZWQKIAogQUNQSSBGQU4gRFJJVkVSCiBQOglMZW4gQnJvd24KIE06CWxlbi5icm93bkBpbnRlbC5jb20KIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vYWNwaS5zb3VyY2Vmb3JnZS5uZXQvCitXOglodHRwOi8vd3d3Lmxlc3N3YXR0cy5vcmcvcHJvamVjdHMvYWNwaS8KIFM6CVN1cHBvcnRlZAogCiBBQ1BJIFBDSSBIT1RQTFVHIERSSVZFUgpAQCAtMjU1LDE0ICsyNTUsMTQgQEAKIFA6CUxlbiBCcm93bgogTToJbGVuLmJyb3duQGludGVsLmNvbQogTDoJbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmcKLVc6CWh0dHA6Ly9hY3BpLnNvdXJjZWZvcmdlLm5ldC8KK1c6CWh0dHA6Ly93d3cubGVzc3dhdHRzLm9yZy9wcm9qZWN0cy9hY3BpLwogUzoJU3VwcG9ydGVkCiAKIEFDUEkgVklERU8gRFJJVkVSCiBQOglSdWkgWmhhbmcKIE06CXJ1aS56aGFuZ0BpbnRlbC5jb20KIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vYWNwaS5zb3VyY2Vmb3JnZS5uZXQvCitXOglodHRwOi8vd3d3Lmxlc3N3YXR0cy5vcmcvcHJvamVjdHMvYWNwaS8KIFM6CVN1cHBvcnRlZAogCiBBQ1BJIFdNSSBEUklWRVIKQEAgLTI3NCw3ICsyNzQsNyBAQAogCiBBRDE4ODkgQUxTQSBTT1VORCBEUklWRVIKIFA6ICAgICBLeWxlIE1jTWFydGluCi1NOiAgICAga3lsZUBwYXJpc2MtbGludXgub3JnCitNOiAgICAga3lsZUBtY21hcnRpbi5jYQogUDogICAgIFRoaWJhdXQgVmFyZW5lCiBNOiAgICAgVC1Cb25lQHBhcmlzYy1saW51eC5vcmcKIFc6ICAgICBodHRwOi8vd2lraS5wYXJpc2MtbGludXgub3JnL0FEMTg4OQpAQCAtMzc2LDYgKzM3NiwxMiBAQAogVzoJaHR0cDovL3d3dy5hbWQuY29tL3VzLWVuL0Nvbm5lY3Rpdml0eVNvbHV0aW9ucy9UZWNobmljYWxSZXNvdXJjZXMvMCwsNTBfMjMzNF8yNDUyXzExMzYzLDAwLmh0bWwKIFM6CVN1cHBvcnRlZAogCitBTUQgSU9NTVUgKEFNRC1WSSkKK1A6CUpvZXJnIFJvZWRlbAorTToJam9lcmcucm9lZGVsQGFtZC5jb20KK0w6CWlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCitTOglTdXBwb3J0ZWQKKwogQU1TIChBcHBsZSBNb3Rpb24gU2Vuc29yKSBEUklWRVIKIFA6CVN0ZWxpYW4gUG9wCiBNOglzdGVsaWFuQHBvcGllcy5uZXQKQEAgLTc2Myw5ICs3NjksMTAgQEAKIAogQVVYSUxJQVJZIERJU1BMQVkgRFJJVkVSUwogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIEFWUjMyIEFSQ0hJVEVDVFVSRQpAQCAtOTk1LDggKzEwMDIsOCBAQAogUzoJU3VwcG9ydGVkCiAKIEJST0FEQ09NIEJOWDJYIDEwIEdJR0FCSVQgRVRIRVJORVQgRFJJVkVSCi1QOglFbGllemVyIFRhbWlyCi1NOgllbGllemVydEBicm9hZGNvbS5jb20KK1A6CUVpbG9uIEdyZWVuc3RlaW4KK006CWVpbG9uZ0Bicm9hZGNvbS5jb20KIEw6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFM6CVN1cHBvcnRlZAogCkBAIC0xMDU1LDE2ICsxMDYyLDE4IEBACiAKIENGQUcxMjg2NEIgTENEIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIENGQUcxMjg2NEJGQiBMQ0QgRlJBTUVCVUZGRVIgRFJJVkVSCiBQOglNaWd1ZWwgT2plZGEgU2FuZG9uaXMKLU06CW1heGV4dHJlbWVAZ21haWwuY29tCitNOgltaWd1ZWwub2plZGEuc2FuZG9uaXNAZ21haWwuY29tCiBMOglsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vYXV4ZGlzcGxheS5nb29nbGVwYWdlcy5jb20vCitXOglodHRwOi8vbWlndWVsb2plZGEuZXMvYXV4ZGlzcGxheS5odG0KK1c6CWh0dHA6Ly9qYWlyLmxhYi5maS51dmEuZXMvfm1pZ29qZWQvYXV4ZGlzcGxheS5odG0KIFM6CU1haW50YWluZWQKIAogQ0ZHODAyMTEgYW5kIE5MODAyMTEKQEAgLTEyMDIsNiArMTIxMSw3IEBACiBNOgltZW5hZ2VAZ29vZ2xlLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwogVzoJaHR0cDovL3d3dy5idWxsb3BlbnNvdXJjZS5vcmcvY3B1c2V0LworVzoJaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL2NwdXNldHMvCiBTOglTdXBwb3J0ZWQKIAogQ1JBTUZTIEZJTEVTWVNURU0KQEAgLTE0MTksNiArMTQyOSwxNCBAQAogTDoJbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmcKIFM6CVN1cHBvcnRlZAogCitET0NVTUVOVEFUSU9OICgvRG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkpCitQOiAgICAgTWljaGFlbCBLZXJyaXNrCitNOiAgICAgbXRrLm1hbnBhZ2VzQGdtYWlsLmNvbQorUDogICAgIFJhbmR5IER1bmxhcAorTTogICAgIHJkdW5sYXBAeGVub3RpbWUubmV0CitMOiAgICAgbGludXgtZG9jQHZnZXIua2VybmVsLm9yZworUzogICAgIE1haW50YWluZWQKKwogRE9VQkxFVEFMSyBEUklWRVIKIFA6CUphbWVzIFIuIFZhbiBaYW5kdAogTToJanJ2QHZhbnphbmR0Lm12LmNvbQpAQCAtMTYyNSwxMyArMTY0MywxMyBAQAogCiBFWFQzIEZJTEUgU1lTVEVNCiBQOglTdGVwaGVuIFR3ZWVkaWUsIEFuZHJldyBNb3J0b24KLU06CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQGNsdXN0ZXJmcy5jb20KK006CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQHN1bi5jb20KIEw6CWxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIEVYVDQgRklMRSBTWVNURU0KIFA6CVN0ZXBoZW4gVHdlZWRpZSwgQW5kcmV3IE1vcnRvbgotTToJc2N0QHJlZGhhdC5jb20sIGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmcsIGFkaWxnZXJAY2x1c3RlcmZzLmNvbQorTToJc2N0QHJlZGhhdC5jb20sIGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmcsIGFkaWxnZXJAc3VuLmNvbQogTDoJbGludXgtZXh0NEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtMTgyNyw3ICsxODQ1LDcgQEAKIAogSEFSTU9OWSBTT1VORCBEUklWRVIKIFA6CUt5bGUgTWNNYXJ0aW4KLU06CWt5bGVAcGFyaXNjLWxpbnV4Lm9yZworTToJa3lsZUBtY21hcnRpbi5jYQogTDoJbGludXgtcGFyaXNjQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC0yNDI3LDkgKzI0NDUsMTAgQEAKIAogS1MwMTA4IExDRCBDT05UUk9MTEVSIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIExBUEIgbW9kdWxlCkBAIC0yNDczLDkgKzI0OTIsMTEgQEAKIFc6CWh0dHA6Ly93d3cuaGFuc2VucGFydG5lcnNoaXAuY29tL3ZveWFnZXIKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMKK0xJTlVYIEZPUiBQT1dFUlBDICgzMi1CSVQgQU5EIDY0LUJJVCkKIFA6CVBhdWwgTWFja2VycmFzCiBNOglwYXVsdXNAc2FtYmEub3JnCitQOglCZW5qYW1pbiBIZXJyZW5zY2htaWR0CitNOgliZW5oQGtlcm5lbC5jcmFzaGluZy5vcmcKIFc6CWh0dHA6Ly93d3cucGVuZ3VpbnBwYy5vcmcvCiBMOglsaW51eHBwYy1kZXZAb3psYWJzLm9yZwogVDoJZ2l0IGtlcm5lbC5vcmc6L3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9wYXVsdXMvcG93ZXJwYy5naXQKQEAgLTI1MTUsMTMgKzI1MzYsNiBAQAogTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMgQk9PVCBDT0RFCi1QOglUb20gUmluaQotTToJdHJpbmlAa2VybmVsLmNyYXNoaW5nLm9yZwotVzoJaHR0cDovL3d3dy5wZW5ndWlucHBjLm9yZy8KLUw6CWxpbnV4cHBjLWRldkBvemxhYnMub3JnCi1TOglNYWludGFpbmVkCi0KIExJTlVYIEZPUiBQT1dFUlBDIEVNQkVEREVEIFBQQzhYWAogUDoJVml0YWx5IEJvcmR1ZwogTToJdml0YkBrZXJuZWwuY3Jhc2hpbmcub3JnCkBAIC0yNTUwLDE3ICsyNTY0LDYgQEAKIE06CWFjbWVAZ2hvc3Rwcm90b2NvbHMubmV0CiBTOglNYWludGFpbmVkCiAKLUxJTlVYIEZPUiA2NEJJVCBQT1dFUlBDCi1QOglQYXVsIE1hY2tlcnJhcwotTToJcGF1bHVzQHNhbWJhLm9yZwotTToJcGF1bHVzQGF1LmlibS5jb20KLVA6CUFudG9uIEJsYW5jaGFyZAotTToJYW50b25Ac2FtYmEub3JnCi1NOglhbnRvbkBhdS5pYm0uY29tCi1XOglodHRwOi8vd3d3LnBlbmd1aW5wcGMub3JnL3BwYzY0LwotTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKLVM6CVN1cHBvcnRlZAotCiBMSU5VWCBTRUNVUklUWSBNT0RVTEUgKExTTSkgRlJBTUVXT1JLCiBQOglDaHJpcyBXcmlnaHQKIE06CWNocmlzd0Bzb3VzLXNvbC5vcmcKQEAgLTI2NzksOCArMjY4Miw4IEBACiBNQU4tUEFHRVM6IE1BTlVBTCBQQUdFUyBGT1IgTElOVVggLS0gU2VjdGlvbnMgMiwgMywgNCwgNSwgYW5kIDcKIFA6CU1pY2hhZWwgS2VycmlzawogTToJbXRrLm1hbnBhZ2VzQGdtYWlsLmNvbQotVzoJZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L2RvY3MvbWFucGFnZXMKLVM6CU1haW50YWluZWQKK1c6ICAgICBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL21hbi1wYWdlcworUzogICAgIFN1cHBvcnRlZAogCiBNQVJWRUxMIExJQkVSVEFTIFdJUkVMRVNTIERSSVZFUgogUDoJRGFuIFdpbGxpYW1zCkBAIC0yODEzLDYgKzI4MTYsMTIgQEAKIFc6CWh0dHA6Ly8wcG9pbnRlci5kZS9sZW5uYXJ0L3RjaGliby5odG1sCiBTOglNYWludGFpbmVkCiAKK01VTFRJRlVOQ1RJT04gREVWSUNFUyAoTUZEKQorUDoJU2FtdWVsIE9ydGl6CitNOglzYW1lb0BvcGVuZWRoYW5kLmNvbQorTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZworUzoJU3VwcG9ydGVkCisKIE1VTFRJTUVESUEgQ0FSRCAoTU1DKSwgU0VDVVJFIERJR0lUQUwgKFNEKSBBTkQgU0RJTyBTVUJTWVNURU0KIFA6CVBpZXJyZSBPc3NtYW4KIE06CWRyemV1cy1tbWNAZHJ6ZXVzLmN4CkBAIC0zMDc5LDggKzMwODgsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBPUFJPRklMRQotUDoJUGhpbGlwcGUgRWxpZQotTToJcGhpbC5lbEB3YW5hZG9vLmZyCitQOglSb2JlcnQgUmljaHRlcgorTToJcm9iZXJ0LnJpY2h0ZXJAYW1kLmNvbQogTDoJb3Byb2ZpbGUtbGlzdEBsaXN0cy5zZi5uZXQKIFM6CU1haW50YWluZWQKIApAQCAtMzEyMCw3ICszMTI5LDcgQEAKIAogUEFSSVNDIEFSQ0hJVEVDVFVSRQogUDoJS3lsZSBNY01hcnRpbgotTToJa3lsZUBwYXJpc2MtbGludXgub3JnCitNOglreWxlQG1jbWFydGluLmNhCiBQOglNYXR0aGV3IFdpbGNveAogTToJbWF0dGhld0B3aWwuY3gKIFA6CUdyYW50IEdydW5kbGVyCkBAIC0zMTk0LDggKzMyMDMsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBQRVItVEFTSyBERUxBWSBBQ0NPVU5USU5HCi1QOglTaGFpbGFiaCBOYWdhcgotTToJbmFnYXJAd2F0c29uLmlibS5jb20KK1A6CUJhbGJpciBTaW5naAorTToJYmFsYmlyQGxpbnV4LnZuZXQuaWJtLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC0zMjY0LDcgKzMyNzMsNyBAQAogCiBQUFAgT1ZFUiBFVEhFUk5FVAogUDoJTWljaGFsIE9zdHJvd3NraQotTToJbW9zdHJvd3NAc3BlYWtlYXN5Lm5ldAorTToJbW9zdHJvd3NAZWFydGhsaW5rLm5ldAogUzoJTWFpbnRhaW5lZAogCiBQUFAgT1ZFUiBMMlRQCkBAIC0zMzI5LDkgKzMzMzgsMTEgQEAKIFc6CWh0dHA6Ly93d3cuaXNlbHkubmV0L3B2cnVzYjIvCiBTOglNYWludGFpbmVkCiAKLVBYQTJ4eCBTVVBQT1JUCi1QOglOaWNvbGFzIFBpdHJlCi1NOgluaWNvQGNhbS5vcmcKK1BYQTJ4eC9QWEEzeHggU1VQUE9SVAorUDoJRXJpYyBNaWFvCitNOgllcmljLm1pYW9AbWFydmVsbC5jb20KK1A6CVJ1c3NlbGwgS2luZworTToJbGludXhAYXJtLmxpbnV4Lm9yZy51awogTDoJbGludXgtYXJtLWtlcm5lbEBsaXN0cy5hcm0ubGludXgub3JnLnVrCShzdWJzY3JpYmVycy1vbmx5KQogUzoJTWFpbnRhaW5lZAogCkBAIC0zNjU4LDEzICszNjY5LDYgQEAKIEw6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIAotU0lTIDU1MTMgSURFIENPTlRST0xMRVIgRFJJVkVSCi1QOglMaW9uZWwgQm91dG9uCi1NOglMaW9uZWwuQm91dG9uQGluZXQ2LmZyCi1XOglodHRwOi8vaW5ldDYuZHluLmRocy5vcmcvc3BvbnNvcmluZy9zaXM1NTEzL2luZGV4Lmh0bWwKLVc6CWh0dHA6Ly9neXZlci5ob21laXAubmV0L3NpczU1MTMvaW5kZXguaHRtbAotUzoJTWFpbnRhaW5lZAotCiBTSVMgOTAwLzcwMTYgRkFTVCBFVEhFUk5FVCBEUklWRVIKIFA6CURhbmllbGUgVmVuemFubwogTToJdmVuemFAYnJvd25oYXQub3JnCkBAIC0zNjkyLDcgKzM2OTYsNyBAQAogCiBTTEFCIEFMTE9DQVRPUgogUDoJQ2hyaXN0b3BoIExhbWV0ZXIKLU06CWNsYW1ldGVyQHNnaS5jb20KK006CWNsQGxpbnV4LWZvdW5kYXRpb24ub3JnCiBQOglQZWtrYSBFbmJlcmcKIE06CXBlbmJlcmdAY3MuaGVsc2lua2kuZmkKIFA6CU1hdHQgTWFja2FsbApAQCAtMzkwMiw4ICszOTA2LDggQEAKIFM6CU1haW50YWluZWQKIAogVEFTS1NUQVRTIFNUQVRJU1RJQ1MgSU5URVJGQUNFCi1QOglTaGFpbGFiaCBOYWdhcgotTToJbmFnYXJAd2F0c29uLmlibS5jb20KK1A6CUJhbGJpciBTaW5naAorTToJYmFsYmlyQGxpbnV4LnZuZXQuaWJtLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC0zOTk5LDcgKzQwMDMsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBUUE0gREVWSUNFIERSSVZFUgotUDoJS3lsZW5lIEhhbGwKK1A6ICAgICBEZWJvcmEgVmVsYXJkZQorUDogICAgIFJhaml2IEFuZHJhZGUKIE06CXRwbWRkLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAogVzoJaHR0cDovL3RwbWRkLnNvdXJjZWZvcmdlLm5ldAogUDoJTWFyY2VsIFNlbGhvcnN0CkBAIC00MDMwLDcgKzQwMzUsNyBAQAogUDoJR3JhbnQgR3J1bmRsZXIKIE06CWdydW5kbGVyQHBhcmlzYy1saW51eC5vcmcKIFA6CUt5bGUgTWNNYXJ0aW4KLU06CWt5bGVAcGFyaXNjLWxpbnV4Lm9yZworTToJa3lsZUBtY21hcnRpbi5jYQogTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC00MzE4LDYgKzQzMjMsMTQgQEAKIFc6CWh0dHA6Ly93d3cubGludXgtdXNiLm9yZy91c2JuZXQKIFM6CU1haW50YWluZWQKIAorVVNCIFZJREVPIENMQVNTCitQOglMYXVyZW50IFBpbmNoYXJ0CitNOglsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZQorTDoJbGlueC11dmMtZGV2ZWxAYmVybGlvcy5kZQorTDoJdmlkZW80bGludXgtbGlzdEByZWRoYXQuY29tCitXOglodHRwOi8vbGludXgtdXZjLmJlcmxpb3MuZGUKK1M6CU1haW50YWluZWQKKwogVVNCIFc5OTZbODddQ0YgRFJJVkVSCiBQOglMdWNhIFJpc29saWEKIE06CWx1Y2Eucmlzb2xpYUBzdHVkaW8udW5pYm8uaXQKQEAgLTQ0MzUsMTAgKzQ0NDgsMTAgQEAKIFM6CU1haW50YWluZWQKIAogVzgzNzkxRCBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUgotUDoJQ2hhcmxlcyBTcGlyYWtpcwotTToJYmV6YXVyQGdtYWlsLmNvbQorUDoJTWFyYyBIdWxzbWFuCitNOgltLmh1bHNtYW5AdHVkZWxmdC5ubAogTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwotUzoJT2RkIEZpeGVzCitTOglNYWludGFpbmVkCiAKIFc4Mzc5MyBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUgogUDoJUnVkb2xmIE1hcmVrCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDJiOTUxMjAuLjVlZmRkODggMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDggKzEsOCBAQAogVkVSU0lPTiA9IDIKIFBBVENITEVWRUwgPSA2CiBTVUJMRVZFTCA9IDI2Ci1FWFRSQVZFUlNJT04gPSAtcmM1Ci1OQU1FID0gRnVua3kgV2Vhc2VsIGlzIEppZ2d5IHdpdCBpdAorRVhUUkFWRVJTSU9OID0KK05BTUUgPSBSb3RhcnkgV29tYmF0CiAKICMgKkRPQ1VNRU5UQVRJT04qCiAjIFRvIHNlZSBhIGxpc3Qgb2YgdHlwaWNhbCB0YXJnZXRzIGV4ZWN1dGUgIm1ha2UgaGVscCIKQEAgLTQ1MCw3ICs0NTAsNyBAQAogCiAjIE9iamVjdHMgd2Ugd2lsbCBsaW5rIGludG8gdm1saW51eCAvIHN1YmRpcnMgd2UgbmVlZCB0byB2aXNpdAogaW5pdC15CQk6PSBpbml0LwotZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLworZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLyBmaXJtd2FyZS8KIG5ldC15CQk6PSBuZXQvCiBsaWJzLXkJCTo9IGxpYi8KIGNvcmUteQkJOj0gdXNyLwpAQCAtNTI4LDYgKzUyOCwxMCBAQAogS0JVSUxEX0FGTEFHUwkrPSAtZ2R3YXJmLTIKIGVuZGlmCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKK0tCVUlMRF9DRkxBR1MJKz0gLXBnCitlbmRpZgorCiAjIFdlIHRyaWdnZXIgYWRkaXRpb25hbCBtaXNtYXRjaGVzIHdpdGggbGVzcyBpbmxpbmluZwogaWZkZWYgQ09ORklHX0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0gKIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwgLWZuby1pbmxpbmUtZnVuY3Rpb25zLWNhbGxlZC1vbmNlKQpAQCAtOTk1LDYgKzk5OSwxNiBAQAogCUBlY2hvICcqKiogV2FybmluZzogbWFrZSAkQCBpcyB1bm5lY2Vzc2FyeSBub3cuJwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGaXJtd2FyZSBpbnN0YWxsCitJTlNUQUxMX0ZXX1BBVEg9JChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUKK2V4cG9ydCBJTlNUQUxMX0ZXX1BBVEgKKworUEhPTlkgKz0gZmlybXdhcmVfaW5zdGFsbAorZmlybXdhcmVfaW5zdGFsbDogRk9SQ0UKKwlAbWtkaXIgLXAgJChvYmp0cmVlKS9maXJtd2FyZQorCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5md2luc3Qgb2JqPWZpcm13YXJlIF9fZndfaW5zdGFsbAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBLZXJuZWwgaGVhZGVycwogSU5TVEFMTF9IRFJfUEFUSD0kKG9ianRyZWUpL3VzcgogZXhwb3J0IElOU1RBTExfSERSX1BBVEgKQEAgLTEwODAsNiArMTA5NCw3IEBACiAjIGJvb3Qgc2NyaXB0IGRlcG1vZCBpcyB0aGUgbWFzdGVyIHZlcnNpb24uCiBQSE9OWSArPSBfbW9kaW5zdF9wb3N0CiBfbW9kaW5zdF9wb3N0OiBfbW9kaW5zdF8KKwkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0IG9iaj1maXJtd2FyZSBfX2Z3X21vZGluc3QKIAkkKGNhbGwgY21kLGRlcG1vZCkKIAogZWxzZSAjIENPTkZJR19NT0RVTEVTCkBAIC0xMTk3LDYgKzEyMTIsOCBAQAogCUBlY2hvICAnKiB2bWxpbnV4CSAgLSBCdWlsZCB0aGUgYmFyZSBrZXJuZWwnCiAJQGVjaG8gICcqIG1vZHVsZXMJICAtIEJ1aWxkIGFsbCBtb2R1bGVzJwogCUBlY2hvICAnICBtb2R1bGVzX2luc3RhbGwgLSBJbnN0YWxsIGFsbCBtb2R1bGVzIHRvIElOU1RBTExfTU9EX1BBVEggKGRlZmF1bHQ6IC8pJworCUBlY2hvICAnICBmaXJtd2FyZV9pbnN0YWxsLSBJbnN0YWxsIGFsbCBmaXJtd2FyZSB0byBJTlNUQUxMX0ZXX1BBVEgnCisJQGVjaG8gICcgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiAkJChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUpJwogCUBlY2hvICAnICBkaXIvICAgICAgICAgICAgLSBCdWlsZCBhbGwgZmlsZXMgaW4gZGlyIGFuZCBiZWxvdycKIAlAZWNobyAgJyAgZGlyL2ZpbGUuW29pc10gIC0gQnVpbGQgc3BlY2lmaWVkIHRhcmdldCBvbmx5JwogCUBlY2hvICAnICBkaXIvZmlsZS5rbyAgICAgLSBCdWlsZCBtb2R1bGUgaW5jbHVkaW5nIGZpbmFsIGxpbmsnCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL01ha2VmaWxlIGIvYXJjaC9hbHBoYS9NYWtlZmlsZQppbmRleCA0ZTFhOGUyLi40NzU5ZmU3IDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL01ha2VmaWxlCisrKyBiL2FyY2gvYWxwaGEvTWFrZWZpbGUKQEAgLTEzLDYgKzEzLDcgQEAKIExERkxBR1Nfdm1saW51eAk6PSAtc3RhdGljIC1OICMtcmVsYXgKIENIRUNLRkxBR1MJKz0gLURfX2FscGhhX18gLW02NAogY2ZsYWdzLXkJOj0gLXBpcGUgLW1uby1mcC1yZWdzIC1mZml4ZWQtOCAtbXNtYWxsLWRhdGEKK2NmbGFncy15CSs9ICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tanVtcC10YWJsZXMpCiAKIGNwdWZsYWdzLSQoQ09ORklHX0FMUEhBX0VWNCkJCTo9IC1tY3B1PWV2NAogY3B1ZmxhZ3MtJChDT05GSUdfQUxQSEFfRVY1KQkJOj0gLW1jcHU9ZXY1CmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX3QyLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX3QyLmMKaW5kZXggYzA3NTAyOS4uZDk5ODBkNCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvY29yZV90Mi5jCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL2NvcmVfdDIuYwpAQCAtNzQsNiArNzQsOCBAQAogIyBkZWZpbmUgREJHKGFyZ3MpCiAjZW5kaWYKIAorREVGSU5FX1NQSU5MT0NLKHQyX2hhZV9sb2NrKTsKKwogc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGludCB0Ml9tY2hlY2tfYW55X2V4cGVjdGVkOwogc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGludCB0Ml9tY2hlY2tfbGFzdF90YWtlbjsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYwppbmRleCAzNmFiMjJhLi41Y2Y0NWZjIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYworKysgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYwpAQCAtNzEsNiArNzEsMjMgQEAKIHN0YXRpYyB2b2lkIF9faW5pdAogcXVpcmtfY3lwcmVzcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogeworCS8qIFRoZSBOb3RvcmlvdXMgQ3k4MkM2OTMgY2hpcC4gICovCisKKwkvKiBUaGUgZ2VuZXJpYyBsZWdhY3kgbW9kZSBJREUgZml4dXAgaW4gZHJpdmVycy9wY2kvcHJvYmUuYworCSAgIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCB0aGUgQ3lwcmVzcyBJREUgY29udHJvbGxlciBhcworCSAgIGl0IGhhcyBub24tc3RhbmRhcmQgcmVnaXN0ZXIgbGF5b3V0LiAgRml4IHRoYXQuICAqLworCWlmIChkZXYtPmNsYXNzID4+IDggPT0gUENJX0NMQVNTX1NUT1JBR0VfSURFKSB7CisJCWRldi0+cmVzb3VyY2VbMl0uc3RhcnQgPSBkZXYtPnJlc291cmNlWzNdLnN0YXJ0ID0gMDsKKwkJZGV2LT5yZXNvdXJjZVsyXS5lbmQgPSBkZXYtPnJlc291cmNlWzNdLmVuZCA9IDA7CisJCWRldi0+cmVzb3VyY2VbMl0uZmxhZ3MgPSBkZXYtPnJlc291cmNlWzNdLmZsYWdzID0gMDsKKwkJaWYgKFBDSV9GVU5DKGRldi0+ZGV2Zm4pID09IDIpIHsKKwkJCWRldi0+cmVzb3VyY2VbMF0uc3RhcnQgPSAweDE3MDsKKwkJCWRldi0+cmVzb3VyY2VbMF0uZW5kID0gMHgxNzc7CisJCQlkZXYtPnJlc291cmNlWzFdLnN0YXJ0ID0gMHgzNzY7CisJCQlkZXYtPnJlc291cmNlWzFdLmVuZCA9IDB4Mzc2OworCQl9CisJfQorCiAJLyogVGhlIEN5cHJlc3MgYnJpZGdlIHJlc3BvbmRzIG9uIHRoZSBQQ0kgYnVzIGluIHRoZSBhZGRyZXNzIHJhbmdlCiAJICAgMHhmZmZmMDAwMC0weGZmZmZmZmZmIChjb252ZW50aW9uYWwgeDg2IEJJT1MgUk9NKS4gIFRoZXJlIGlzIG5vCiAJICAgd2F5IHRvIHR1cm4gdGhpcyBvZmYuICBUaGUgYnJpZGdlIGFsc28gc3VwcG9ydHMgc2V2ZXJhbCBleHRlbmRlZApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvYWxwaGEva2VybmVsL3RyYXBzLmMKaW5kZXggZGM1Nzc5MC4uYzc3ODc3OSAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvdHJhcHMuYworKysgYi9hcmNoL2FscGhhL2tlcm5lbC90cmFwcy5jCkBAIC00NDcsNyArNDQ3LDcgQEAKIAogCiAvKiBNYWNybyBmb3IgZXhjZXB0aW9uIGZpeHVwIGNvZGUgdG8gYWNjZXNzIGludGVnZXIgcmVnaXN0ZXJzLiAgKi8KLSNkZWZpbmUgdW5hX3JlZyhyKSAgKHJlZ3MtPnJlZ3NbKHIpID49IDE2ICYmIChyKSA8PSAxOCA/IChyKSsxOSA6IChyKV0pCisjZGVmaW5lIHVuYV9yZWcocikgIChfcmVnc1socikgPj0gMTYgJiYgKHIpIDw9IDE4ID8gKHIpKzE5IDogKHIpXSkKIAogCiBhc21saW5rYWdlIHZvaWQKQEAgLTQ1Niw2ICs0NTYsNyBAQAogewogCWxvbmcgZXJyb3IsIHRtcDEsIHRtcDIsIHRtcDMsIHRtcDQ7CiAJdW5zaWduZWQgbG9uZyBwYyA9IHJlZ3MtPnBjIC0gNDsKKwl1bnNpZ25lZCBsb25nICpfcmVncyA9IHJlZ3MtPnJlZ3M7CiAJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZml4dXA7CiAKIAl1bmFsaWduZWRbMF0uY291bnQrKzsKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2FscGhhL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGYxMzI0OWIuLmVmMzdmYzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9hbHBoYS9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtMjUsNiArMjUsMTMgQEAKIAl9IDprZXJuZWwKIAlfZXRleHQgPSAuOwkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAKKwlOT1RFUyA6a2VybmVsIDpub3RlCisJLmR1bW15IDogeworCQkqKC5kdW1teSkKKwl9IDprZXJuZWwKKworCVJPREFUQQorCiAJLyogRXhjZXB0aW9uIHRhYmxlICovCiAJLiA9IEFMSUdOKDE2KTsKIAlfX2V4X3RhYmxlIDogewpAQCAtMzMsMTMgKzQwLDYgQEAKIAkJX19zdG9wX19fZXhfdGFibGUgPSAuOwogCX0KIAotCU5PVEVTIDprZXJuZWwgOm5vdGUKLQkuZHVtbXkgOiB7Ci0JCSooLmR1bW15KQotCX0gOmtlcm5lbAotCi0JUk9EQVRBCi0KIAkvKiBXaWxsIGJlIGZyZWVkIGFmdGVyIGluaXQgKi8KIAkuID0gQUxJR04oUEFHRV9TSVpFKTsKIAkvKiBJbml0IGNvZGUgYW5kIGRhdGEgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL0tjb25maWcgYi9hcmNoL2FybS9LY29uZmlnCmluZGV4IGI3ODZlNjguLjI1OGYxMzYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL0tjb25maWcKKysrIGIvYXJjaC9hcm0vS2NvbmZpZwpAQCAtMTQsNiArMTQsOCBAQAogCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfS1BST0JFUyBpZiAoIVhJUF9LRVJORUwpCiAJc2VsZWN0IEhBVkVfS1JFVFBST0JFUyBpZiAoSEFWRV9LUFJPQkVTKQorCXNlbGVjdCBIQVZFX0ZUUkFDRSBpZiAoIVhJUF9LRVJORUwpCisJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0UgaWYgKEhBVkVfRlRSQUNFKQogCWhlbHAKIAkgIFRoZSBBUk0gc2VyaWVzIGlzIGEgbGluZSBvZiBsb3ctcG93ZXItY29uc3VtcHRpb24gUklTQyBjaGlwIGRlc2lnbnMKIAkgIGxpY2Vuc2VkIGJ5IEFSTSBMdGQgYW5kIHRhcmdldGVkIGF0IGVtYmVkZGVkIGFwcGxpY2F0aW9ucyBhbmQKQEAgLTIyLDYgKzI0LDkgQEAKIAkgIEV1cm9wZS4gIFRoZXJlIGlzIGFuIEFSTSBMaW51eCBwcm9qZWN0IHdpdGggYSB3ZWIgcGFnZSBhdAogCSAgPGh0dHA6Ly93d3cuYXJtLmxpbnV4Lm9yZy51ay8+LgogCitjb25maWcgSEFWRV9QV00KKwlib29sCisKIGNvbmZpZyBTWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTgogCWJvb2wKIApAQCAtODQsNiArODksMTEgQEAKIAlib29sCiAJZGVmYXVsdCB5CiAKK2NvbmZpZyBIQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVAorCWJvb2wKKwlkZXBlbmRzIG9uICFTTVAKKwlkZWZhdWx0IHkKKwogY29uZmlnIExPQ0tERVBfU1VQUE9SVAogCWJvb2wKIAlkZWZhdWx0IHkKQEAgLTE0Nyw2ICsxNTcsMTAgQEAKIGNvbmZpZyBBUkNIX01URF9YSVAKIAlib29sCiAKK2NvbmZpZyBHRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlEKKwlib29sCisJZGVmX2Jvb2wgeQorCiBpZiBPUFJPRklMRQogCiBjb25maWcgT1BST0ZJTEVfQVJNVjYKQEAgLTIzMiwxMyArMjQ2LDYgQEAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBDaXJydXMgTG9naWMgNzExeC83MjF4IGJhc2VkIGJvYXJkcy4KIAotY29uZmlnIEFSQ0hfQ08yODUKLQlib29sICJDby1FQlNBMjg1IgotCXNlbGVjdCBGT09UQlJJREdFCi0Jc2VsZWN0IEZPT1RCUklER0VfQURESU4KLQloZWxwCi0JICBTdXBwb3J0IGZvciBJbnRlbCdzIEVCU0EyODUgY29tcGFuaW9uIGNoaXAuCi0KIGNvbmZpZyBBUkNIX0VCU0ExMTAKIAlib29sICJFQlNBLTExMCIKIAlzZWxlY3QgSVNBCkBAIC0yOTksNiArMzA2LDggQEAKIAlkZXBlbmRzIG9uIE1NVQogCXNlbGVjdCBQTEFUX0lPUAogCXNlbGVjdCBQQ0kKKwlzZWxlY3QgR0VORVJJQ19HUElPCisJc2VsZWN0IEhBVkVfR1BJT19MSUIKIAloZWxwCiAJICBTdXBwb3J0IGZvciBJbnRlbCdzIDgwMjE5IGFuZCBJT1AzMlggKFhTY2FsZSkgZmFtaWx5IG9mCiAJICBwcm9jZXNzb3JzLgpAQCAtMzA4LDYgKzMxNyw4IEBACiAJZGVwZW5kcyBvbiBNTVUKIAlzZWxlY3QgUExBVF9JT1AKIAlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfR1BJTworCXNlbGVjdCBIQVZFX0dQSU9fTElCCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgSW50ZWwncyBJT1AzM1ggKFhTY2FsZSkgZmFtaWx5IG9mIHByb2Nlc3NvcnMuCiAKQEAgLTM0Nyw2ICszNTgsMTYgQEAKIAkgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgb3IgY29tbWVudHMgYWJvdXQgdGhlIExpbnV4IGtlcm5lbCBwb3J0CiAJICB0byB0aGlzIGJvYXJkLCBzZW5kIGUtbWFpbCB0byA8c2poaWxsQGNvdHcuY29tPi4KIAorY29uZmlnIEFSQ0hfS0lSS1dPT0QKKwlib29sICJNYXJ2ZWxsIEtpcmt3b29kIgorCXNlbGVjdCBQQ0kKKwlzZWxlY3QgR0VORVJJQ19USU1FCisJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKKwlzZWxlY3QgUExBVF9PUklPTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgTWFydmVsbCBLaXJrd29vZCBzZXJpZXMgU29DczoKKwkgIDg4RjYxODAsIDg4RjYxOTIgYW5kIDg4RjYyODEuCisKIGNvbmZpZyBBUkNIX0tTODY5NQogCWJvb2wgIk1pY3JlbC9LZW5kaW4gS1M4Njk1IgogCXNlbGVjdCBHRU5FUklDX0dQSU8KQEAgLTM2NSw5ICszODYsMzEgQEAKIAogCSAgPGh0dHA6Ly93d3cuZGlnaS5jb20vcHJvZHVjdHMvbWljcm9wcm9jZXNzb3JzL2luZGV4LmpzcD4KIAorY29uZmlnIEFSQ0hfTE9LSQorCWJvb2wgIk1hcnZlbGwgTG9raSAoODhSQzg0ODApIgorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUworCXNlbGVjdCBQTEFUX09SSU9OCisJaGVscAorCSAgU3VwcG9ydCBmb3IgdGhlIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQy4KKworY29uZmlnIEFSQ0hfTVY3OFhYMAorCWJvb2wgIk1hcnZlbGwgTVY3OHh4MCIKKwlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfVElNRQorCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCisJc2VsZWN0IFBMQVRfT1JJT04KKwloZWxwCisJICBTdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIE1hcnZlbGwgTVY3OHh4MCBzZXJpZXMgU29DczoKKwkgIE1WNzgxeDAsIE1WNzgyeDAuCisKIGNvbmZpZyBBUkNIX01YQwogCWJvb2wgIkZyZWVzY2FsZSBNWEMvaU1YLWJhc2VkIgorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUwogCXNlbGVjdCBBUkNIX01URF9YSVAKKwlzZWxlY3QgR0VORVJJQ19HUElPCisJc2VsZWN0IEhBVkVfR1BJT19MSUIKIAloZWxwCiAJICBTdXBwb3J0IGZvciBGcmVlc2NhbGUgTVhDL2lNWC1iYXNlZCBmYW1pbHkgb2YgcHJvY2Vzc29ycwogCkBAIC0zODEsNyArNDI0LDggQEAKIAlzZWxlY3QgUExBVF9PUklPTgogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgTWFydmVsbCBPcmlvbiA1eCBzZXJpZXMgU29DczoKLQkgIE9yaW9uLTEgKDUxODEpLCBPcmlvbi1OQVMgKDUxODIpLCBPcmlvbi0yICg1MjgxLikKKwkgIE9yaW9uLTEgKDUxODEpLCBPcmlvbi1Wb0lQICg1MTgxTCksIE9yaW9uLU5BUyAoNTE4MiksCisJICBPcmlvbi0yICg1MjgxKS4KIAogY29uZmlnIEFSQ0hfUE5YNDAwOAogCWJvb2wgIlBoaWxpcHMgTmV4cGVyaWEgUE5YNDAwOCBNb2JpbGUiCkBAIC00MDYsNiArNDUwLDcgQEAKIAlzZWxlY3QgRklRCiAJc2VsZWN0IFRJTUVSX0FDT1JOCiAJc2VsZWN0IEFSQ0hfTUFZX0hBVkVfUENfRkRDCisJc2VsZWN0IEhBVkVfUEFUQV9QTEFURk9STQogCXNlbGVjdCBJU0FfRE1BX0FQSQogCXNlbGVjdCBOT19JT1BPUlQKIAloZWxwCkBAIC01MDIsNiArNTQ3LDEwIEBACiAKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1peHAyM3h4L0tjb25maWciCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWciCisKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWciCisKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZyIKIAogc291cmNlICJhcmNoL2FybS9tYWNoLXNhMTEwMC9LY29uZmlnIgpAQCAtNTE0LDYgKzU2Myw4IEBACiAKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWciCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1raXJrd29vZC9LY29uZmlnIgorCiBzb3VyY2UgImFyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnIgogc291cmNlICJhcmNoL2FybS9wbGF0LXMzYy9LY29uZmlnIgogCkBAIC03MDMsMjcgKzc1NCw2IEBACiAJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgYnVpbGRpbmcgYSBrZXJuZWwgZm9yIGEgZGVza3RvcCwgZW1iZWRkZWQKIAkgIG9yIHJlYWwtdGltZSBzeXN0ZW0uICBTYXkgTiBpZiB5b3UgYXJlIHVuc3VyZS4KIAotY29uZmlnIE5PX0lETEVfSFoKLQlib29sICJEeW5hbWljIHRpY2sgdGltZXIiCi0JZGVwZW5kcyBvbiAhR0VORVJJQ19DTE9DS0VWRU5UUwotCWhlbHAKLQkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIGNvbnRpbnVvdXMgdGltZXIgdGlja3MKLQkgIGFuZCBoYXZlIHRoZW0gcHJvZ3JhbW1lZCB0byBvY2N1ciBhcyByZXF1aXJlZC4gVGhpcyBvcHRpb24gc2F2ZXMKLQkgIHBvd2VyIGFzIHRoZSBzeXN0ZW0gY2FuIHJlbWFpbiBpbiBpZGxlIHN0YXRlIGZvciBsb25nZXIuCi0KLQkgIEJ5IGRlZmF1bHQgZHluYW1pYyB0aWNrIGlzIGRpc2FibGVkIGR1cmluZyB0aGUgYm9vdCwgYW5kIGNhbiBiZQotCSAgbWFudWFsbHkgZW5hYmxlZCB3aXRoOgotCi0JICAgIGVjaG8gMSA+IC9zeXMvZGV2aWNlcy9zeXN0ZW0vdGltZXIvdGltZXIwL2R5bl90aWNrCi0KLQkgIEFsdGVybmF0aXZlbHksIGlmIHlvdSB3YW50IGR5bmFtaWMgdGljayBhdXRvbWF0aWNhbGx5IGVuYWJsZWQKLQkgIGR1cmluZyBib290LCBwYXNzICJkeW50aWNrPWVuYWJsZSIgdmlhIHRoZSBrZXJuZWwgY29tbWFuZCBzdHJpbmcuCi0KLQkgIFBsZWFzZSBub3RlIHRoYXQgZHluYW1pYyB0aWNrIG1heSBhZmZlY3QgdGhlIGFjY3VyYWN5IG9mCi0JICB0aW1la2VlcGluZyBvbiBzb21lIHBsYXRmb3JtcyBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLgotCSAgQ3VycmVudGx5IGF0IGxlYXN0IE9NQVAsIFBYQTJ4eCBhbmQgU0ExMXgwIHBsYXRmb3JtcyBhcmUga25vd24KLQkgIHRvIGhhdmUgYWNjdXJhdGUgdGltZWtlZXBpbmcgd2l0aCBkeW5hbWljIHRpY2suCi0KIGNvbmZpZyBIWgogCWludAogCWRlZmF1bHQgMTI4IGlmIEFSQ0hfTDcyMDAKQEAgLTc4OSw3ICs4MTksNyBAQAogCiBjb25maWcgTEVEUwogCWJvb2wgIlRpbWVyIGFuZCBDUFUgdXNhZ2UgTEVEcyIKLQlkZXBlbmRzIG9uIEFSQ0hfQ0RCODk3MTIgfHwgQVJDSF9DTzI4NSB8fCBBUkNIX0VCU0ExMTAgfHwgXAorCWRlcGVuZHMgb24gQVJDSF9DREI4OTcxMiB8fCBBUkNIX0VCU0ExMTAgfHwgXAogCQkgICBBUkNIX0VCU0EyODUgfHwgQVJDSF9JTVggfHwgQVJDSF9JTlRFR1JBVE9SIHx8IFwKIAkJICAgQVJDSF9MVUJCT0NLIHx8IE1BQ0hfTUFJTlNUT05FIHx8IEFSQ0hfTkVUV0lOREVSIHx8IFwKIAkJICAgQVJDSF9PTUFQIHx8IEFSQ0hfUDcyMFQgfHwgQVJDSF9QWEFfSURQIHx8IFwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggZTcyZGIyNy4uYjIwOTk1YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTEwMCw4ICsxMDAsNiBAQAogICBpbmNkaXItJChDT05GSUdfQVJDSF9DTFBTNzUwMCkgICA6PSBjbDc1MDAKICBtYWNoaW5lLSQoQ09ORklHX0ZPT1RCUklER0UpCSAgIDo9IGZvb3RicmlkZ2UKICAgaW5jZGlyLSQoQ09ORklHX0ZPT1RCUklER0UpCSAgIDo9IGVic2EyODUKLSBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfQ08yODUpCSAgIDo9IGZvb3RicmlkZ2UKLSAgaW5jZGlyLSQoQ09ORklHX0FSQ0hfQ08yODUpCSAgIDo9IGVic2EyODUKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfU0hBUkspCSAgIDo9IHNoYXJrCiAgbWFjaGluZS0kKENPTkZJR19BUkNIX1NBMTEwMCkJICAgOj0gc2ExMTAwCiBpZmVxICgkKENPTkZJR19BUkNIX1NBMTEwMCkseSkKQEAgLTEzNSwxMSArMTMzLDE1IEBACiAgbWFjaGluZS0kKENPTkZJR19BUkNIX05FVFgpCSAgIDo9IG5ldHgKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTlM5WFhYKQkgICA6PSBuczl4eHgKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfREFWSU5DSSkJICAgOj0gZGF2aW5jaQorIG1hY2hpbmUtJChDT05GSUdfQVJDSF9LSVJLV09PRCkgICA6PSBraXJrd29vZAogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9LUzg2OTUpICAgICA6PSBrczg2OTUKICAgaW5jZGlyLSQoQ09ORklHX0FSQ0hfTVhDKQkgICA6PSBteGMKKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVgyKQkgICA6PSBteDIKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVgzKQkgICA6PSBteDMKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfT1JJT041WCkJICAgOj0gb3Jpb241eAogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9NU003WDAwQSkgICA6PSBtc20KKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTE9LSSkgICAgICAgOj0gbG9raQorIG1hY2hpbmUtJChDT05GSUdfQVJDSF9NVjc4WFgwKSAgICA6PSBtdjc4eHgwCiAKIGlmZXEgKCQoQ09ORklHX0FSQ0hfRUJTQTExMCkseSkKICMgVGhpcyBpcyB3aGF0IGhhcHBlbnMgaWYgeW91IGZvcmdldCB0aGUgSU9DUzE2IGxpbmUuCkBAIC0xOTAsOCArMTkyLDYgQEAKIGNvcmUtJChDT05GSUdfQVJDSF9NWEMpCQkrPSBhcmNoL2FybS9wbGF0LW14Yy8KIAogZHJpdmVycy0kKENPTkZJR19PUFJPRklMRSkgICAgICArPSBhcmNoL2FybS9vcHJvZmlsZS8KLWRyaXZlcnMtJChDT05GSUdfQVJDSF9DTFBTNzUwMCkJKz0gZHJpdmVycy9hY29ybi9jaGFyLwotZHJpdmVycy0kKENPTkZJR19BUkNIX0w3MjAwKQkrPSBkcml2ZXJzL2Fjb3JuL2NoYXIvCiAKIGxpYnMteQkJCQk6PSBhcmNoL2FybS9saWIvICQobGlicy15KQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUKaW5kZXggZGU5ZDllZS4uOTViYWFjNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQpAQCAtNjksNiArNjksMTIgQEAKIAogdGFyZ2V0cyAgICAgICA6PSB2bWxpbnV4IHZtbGludXgubGRzIHBpZ2d5Lmd6IHBpZ2d5Lm8gZm9udC5vIGZvbnQuYyBcCiAJCSBoZWFkLm8gbWlzYy5vICQoT0JKUykKKworaWZlcSAoJChDT05GSUdfRlRSQUNFKSx5KQorT1JJR19DRkxBR1MgOj0gJChLQlVJTERfQ0ZMQUdTKQorS0JVSUxEX0NGTEFHUyA9ICQoc3Vic3QgLXBnLCAsICQoT1JJR19DRkxBR1MpKQorZW5kaWYKKwogRVhUUkFfQ0ZMQUdTICA6PSAtZnBpYyAtZm5vLWJ1aWx0aW4KIEVYVFJBX0FGTEFHUyAgOj0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLlMKaW5kZXggM2MyYzhmMi4uZGU0MWRhZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUworKysgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC5TCkBAIC02MjMsOCArNjIzLDggQEAKIAkJYglfX2FybXY0X21tdV9jYWNoZV9vZmYKIAkJYglfX2FybXY0X21tdV9jYWNoZV9mbHVzaAogCi0JCS53b3JkCTB4NTYwNTUzMTAJCUAgRmVyb2Nlb24KLQkJLndvcmQJMHhmZmZmZmZmMAorCQkud29yZAkweDU2MDUwMDAwCQlAIEZlcm9jZW9uCisJCS53b3JkCTB4ZmYwZjAwMDAKIAkJYglfX2FybXY0X21tdV9jYWNoZV9vbgogCQliCV9fYXJtdjRfbW11X2NhY2hlX29mZgogCQliCV9fYXJtdjV0ZWpfbW11X2NhY2hlX2ZsdXNoCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb21tb24vTWFrZWZpbGUgYi9hcmNoL2FybS9jb21tb24vTWFrZWZpbGUKaW5kZXggM2QwYjlmYS4uMzI1ZTRiNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29tbW9uL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9NYWtlZmlsZQpAQCAtMiw3ICsyLDYgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBsaW51eCBrZXJuZWwuCiAjCiAKLW9iai15CQkJCSs9IHJ0Y3RpbWUubwogb2JqLSQoQ09ORklHX0FSTV9HSUMpCQkrPSBnaWMubwogb2JqLSQoQ09ORklHX0FSTV9WSUMpCQkrPSB2aWMubwogb2JqLSQoQ09ORklHX0lDU1Q1MjUpCQkrPSBpY3N0NTI1Lm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYyBiL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYwppbmRleCA1MmZjNmE4Li4yNzQ0NjczIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKKysrIGIvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jCkBAIC02NTAsNyArNjUwLDggQEAKIEVYUE9SVF9TWU1CT0woZG1hX3VubWFwX3NnKTsKIEVYUE9SVF9TWU1CT0woZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUpOwogRVhQT1JUX1NZTUJPTChkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZSk7Ci1FWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NnKTsKK0VYUE9SVF9TWU1CT0woZG1hX3N5bmNfc2dfZm9yX2NwdSk7CitFWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NnX2Zvcl9kZXZpY2UpOwogRVhQT1JUX1NZTUJPTChkbWFib3VuY2VfcmVnaXN0ZXJfZGV2KTsKIEVYUE9SVF9TWU1CT0woZG1hYm91bmNlX3VucmVnaXN0ZXJfZGV2KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29tbW9uL3J0Y3RpbWUuYyBiL2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOGY3NzMuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vY29tbW9uL3J0Y3RpbWUuYworKysgL2Rldi9udWxsCkBAIC0xLDQzNCArMCwwIEBACi0vKgotICogIGxpbnV4L2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkLgotICogIEJhc2VkIG9uIHNhMTEwMC1ydGMuYywgTmlscyBGYWVyYmVyLCBDSUgsIE5pY29sYXMgUGl0cmUuCi0gKiAgQmFzZWQgb24gcnRjLmMgYnkgUGF1bCBHb3J0bWFrZXIKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgotI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0KLSNpbmNsdWRlIDxhc20vcnRjLmg+Ci0KLXN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChydGNfd2FpdCk7Ci1zdGF0aWMgc3RydWN0IGZhc3luY19zdHJ1Y3QgKnJ0Y19hc3luY19xdWV1ZTsKLQotLyoKLSAqIHJ0Y19sb2NrIHByb3RlY3RzIHJ0Y19pcnFfZGF0YQotICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHJ0Y19sb2NrKTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJ0Y19pcnFfZGF0YTsKLQotLyoKLSAqIHJ0Y19zZW0gcHJvdGVjdHMgcnRjX2ludXNlIGFuZCBydGNfb3BzCi0gKi8KLXN0YXRpYyBERUZJTkVfTVVURVgocnRjX211dGV4KTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJ0Y19pbnVzZTsKLXN0YXRpYyBzdHJ1Y3QgcnRjX29wcyAqcnRjX29wczsKLQotI2RlZmluZSBydGNfZXBvY2ggMTkwMFVMCi0KLS8qCi0gKiBDYWxjdWxhdGUgdGhlIG5leHQgYWxhcm0gdGltZSBnaXZlbiB0aGUgcmVxdWVzdGVkIGFsYXJtIHRpbWUgbWFzawotICogYW5kIHRoZSBjdXJyZW50IHRpbWUuCi0gKi8KLXZvaWQgcnRjX25leHRfYWxhcm1fdGltZShzdHJ1Y3QgcnRjX3RpbWUgKm5leHQsIHN0cnVjdCBydGNfdGltZSAqbm93LCBzdHJ1Y3QgcnRjX3RpbWUgKmFscm0pCi17Ci0JdW5zaWduZWQgbG9uZyBuZXh0X3RpbWU7Ci0JdW5zaWduZWQgbG9uZyBub3dfdGltZTsKLQotCW5leHQtPnRtX3llYXIgPSBub3ctPnRtX3llYXI7Ci0JbmV4dC0+dG1fbW9uID0gbm93LT50bV9tb247Ci0JbmV4dC0+dG1fbWRheSA9IG5vdy0+dG1fbWRheTsKLQluZXh0LT50bV9ob3VyID0gYWxybS0+dG1faG91cjsKLQluZXh0LT50bV9taW4gPSBhbHJtLT50bV9taW47Ci0JbmV4dC0+dG1fc2VjID0gYWxybS0+dG1fc2VjOwotCi0JcnRjX3RtX3RvX3RpbWUobm93LCAmbm93X3RpbWUpOwotCXJ0Y190bV90b190aW1lKG5leHQsICZuZXh0X3RpbWUpOwotCi0JaWYgKG5leHRfdGltZSA8IG5vd190aW1lKSB7Ci0JCS8qIEFkdmFuY2Ugb25lIGRheSAqLwotCQluZXh0X3RpbWUgKz0gNjAgKiA2MCAqIDI0OwotCQlydGNfdGltZV90b190bShuZXh0X3RpbWUsIG5leHQpOwotCX0KLX0KLUVYUE9SVF9TWU1CT0wocnRjX25leHRfYWxhcm1fdGltZSk7Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJ0Y19hcm1fcmVhZF90aW1lKHN0cnVjdCBydGNfb3BzICpvcHMsIHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JbWVtc2V0KHRtLCAwLCBzaXplb2Yoc3RydWN0IHJ0Y190aW1lKSk7Ci0JcmV0dXJuIG9wcy0+cmVhZF90aW1lKHRtKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcnRjX2FybV9zZXRfdGltZShzdHJ1Y3QgcnRjX29wcyAqb3BzLCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQotewotCWludCByZXQ7Ci0KLQlyZXQgPSBydGNfdmFsaWRfdG0odG0pOwotCWlmIChyZXQgPT0gMCkKLQkJcmV0ID0gb3BzLT5zZXRfdGltZSh0bSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW5saW5lIGludCBydGNfYXJtX3JlYWRfYWxhcm0oc3RydWN0IHJ0Y19vcHMgKm9wcywgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCi17Ci0JaW50IHJldCA9IC1FSU5WQUw7Ci0JaWYgKG9wcy0+cmVhZF9hbGFybSkgewotCQltZW1zZXQoYWxybSwgMCwgc2l6ZW9mKHN0cnVjdCBydGNfd2thbHJtKSk7Ci0JCXJldCA9IG9wcy0+cmVhZF9hbGFybShhbHJtKTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcnRjX2FybV9zZXRfYWxhcm0oc3RydWN0IHJ0Y19vcHMgKm9wcywgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCi17Ci0JaW50IHJldCA9IC1FSU5WQUw7Ci0JaWYgKG9wcy0+c2V0X2FsYXJtKQotCQlyZXQgPSBvcHMtPnNldF9hbGFybShhbHJtKTsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIHJ0Y191cGRhdGUodW5zaWduZWQgbG9uZyBudW0sIHVuc2lnbmVkIGxvbmcgZXZlbnRzKQotewotCXNwaW5fbG9jaygmcnRjX2xvY2spOwotCXJ0Y19pcnFfZGF0YSA9IChydGNfaXJxX2RhdGEgKyAobnVtIDw8IDgpKSB8IGV2ZW50czsKLQlzcGluX3VubG9jaygmcnRjX2xvY2spOwotCi0Jd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZydGNfd2FpdCk7Ci0Ja2lsbF9mYXN5bmMoJnJ0Y19hc3luY19xdWV1ZSwgU0lHSU8sIFBPTExfSU4pOwotfQotRVhQT1JUX1NZTUJPTChydGNfdXBkYXRlKTsKLQotCi1zdGF0aWMgc3NpemVfdAotcnRjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQotewotCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOwotCXVuc2lnbmVkIGxvbmcgZGF0YTsKLQlzc2l6ZV90IHJldDsKLQotCWlmIChjb3VudCA8IHNpemVvZih1bnNpZ25lZCBsb25nKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlhZGRfd2FpdF9xdWV1ZSgmcnRjX3dhaXQsICZ3YWl0KTsKLQlkbyB7Ci0JCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKLQotCQlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7Ci0JCWRhdGEgPSBydGNfaXJxX2RhdGE7Ci0JCXJ0Y19pcnFfZGF0YSA9IDA7Ci0JCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOwotCi0JCWlmIChkYXRhICE9IDApIHsKLQkJCXJldCA9IDA7Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoZmlsZS0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spIHsKLQkJCXJldCA9IC1FQUdBSU47Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKLQkJCXJldCA9IC1FUkVTVEFSVFNZUzsKLQkJCWJyZWFrOwotCQl9Ci0JCXNjaGVkdWxlKCk7Ci0JfSB3aGlsZSAoMSk7Ci0Jc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKLQlyZW1vdmVfd2FpdF9xdWV1ZSgmcnRjX3dhaXQsICZ3YWl0KTsKLQotCWlmIChyZXQgPT0gMCkgewotCQlyZXQgPSBwdXRfdXNlcihkYXRhLCAodW5zaWduZWQgbG9uZyBfX3VzZXIgKilidWYpOwotCQlpZiAocmV0ID09IDApCi0JCQlyZXQgPSBzaXplb2YodW5zaWduZWQgbG9uZyk7Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgcnRjX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCi17Ci0JdW5zaWduZWQgbG9uZyBkYXRhOwotCi0JcG9sbF93YWl0KGZpbGUsICZydGNfd2FpdCwgd2FpdCk7Ci0KLQlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7Ci0JZGF0YSA9IHJ0Y19pcnFfZGF0YTsKLQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKLQotCXJldHVybiBkYXRhICE9IDAgPyBQT0xMSU4gfCBQT0xMUkROT1JNIDogMDsKLX0KLQotc3RhdGljIGludCBydGNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCi0JCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0Jc3RydWN0IHJ0Y19vcHMgKm9wcyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgcnRjX3RpbWUgdG07Ci0Jc3RydWN0IHJ0Y193a2Fscm0gYWxybTsKLQl2b2lkIF9fdXNlciAqdWFyZyA9ICh2b2lkIF9fdXNlciAqKWFyZzsKLQlpbnQgcmV0ID0gLUVJTlZBTDsKLQotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBSVENfQUxNX1JFQUQ6Ci0JCXJldCA9IHJ0Y19hcm1fcmVhZF9hbGFybShvcHMsICZhbHJtKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCQlyZXQgPSBjb3B5X3RvX3VzZXIodWFyZywgJmFscm0udGltZSwgc2l6ZW9mKHRtKSk7Ci0JCWlmIChyZXQpCi0JCQlyZXQgPSAtRUZBVUxUOwotCQlicmVhazsKLQotCWNhc2UgUlRDX0FMTV9TRVQ6Ci0JCXJldCA9IGNvcHlfZnJvbV91c2VyKCZhbHJtLnRpbWUsIHVhcmcsIHNpemVvZih0bSkpOwotCQlpZiAocmV0KSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJYnJlYWs7Ci0JCX0KLQkJYWxybS5lbmFibGVkID0gMDsKLQkJYWxybS5wZW5kaW5nID0gMDsKLQkJYWxybS50aW1lLnRtX21kYXkgPSAtMTsKLQkJYWxybS50aW1lLnRtX21vbiA9IC0xOwotCQlhbHJtLnRpbWUudG1feWVhciA9IC0xOwotCQlhbHJtLnRpbWUudG1fd2RheSA9IC0xOwotCQlhbHJtLnRpbWUudG1feWRheSA9IC0xOwotCQlhbHJtLnRpbWUudG1faXNkc3QgPSAtMTsKLQkJcmV0ID0gcnRjX2FybV9zZXRfYWxhcm0ob3BzLCAmYWxybSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfUkRfVElNRToKLQkJcmV0ID0gcnRjX2FybV9yZWFkX3RpbWUob3BzLCAmdG0pOwotCQlpZiAocmV0KQotCQkJYnJlYWs7Ci0JCXJldCA9IGNvcHlfdG9fdXNlcih1YXJnLCAmdG0sIHNpemVvZih0bSkpOwotCQlpZiAocmV0KQotCQkJcmV0ID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0KLQljYXNlIFJUQ19TRVRfVElNRToKLQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfVElNRSkpIHsKLQkJCXJldCA9IC1FQUNDRVM7Ci0JCQlicmVhazsKLQkJfQotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmdG0sIHVhcmcsIHNpemVvZih0bSkpOwotCQlpZiAocmV0KSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJYnJlYWs7Ci0JCX0KLQkJcmV0ID0gcnRjX2FybV9zZXRfdGltZShvcHMsICZ0bSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfRVBPQ0hfU0VUOgotI2lmbmRlZiBydGNfZXBvY2gKLQkJLyoKLQkJICogVGhlcmUgd2VyZSBubyBSVEMgY2xvY2tzIGJlZm9yZSAxOTAwLgotCQkgKi8KLQkJaWYgKGFyZyA8IDE5MDApIHsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19USU1FKSkgewotCQkJcmV0ID0gLUVBQ0NFUzsKLQkJCWJyZWFrOwotCQl9Ci0JCXJ0Y19lcG9jaCA9IGFyZzsKLQkJcmV0ID0gMDsKLSNlbmRpZgotCQlicmVhazsKLQotCWNhc2UgUlRDX0VQT0NIX1JFQUQ6Ci0JCXJldCA9IHB1dF91c2VyKHJ0Y19lcG9jaCwgKHVuc2lnbmVkIGxvbmcgX191c2VyICopdWFyZyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfV0tBTE1fU0VUOgotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmYWxybSwgdWFyZywgc2l6ZW9mKGFscm0pKTsKLQkJaWYgKHJldCkgewotCQkJcmV0ID0gLUVGQVVMVDsKLQkJCWJyZWFrOwotCQl9Ci0JCXJldCA9IHJ0Y19hcm1fc2V0X2FsYXJtKG9wcywgJmFscm0pOwotCQlicmVhazsKLQotCWNhc2UgUlRDX1dLQUxNX1JEOgotCQlyZXQgPSBydGNfYXJtX3JlYWRfYWxhcm0ob3BzLCAmYWxybSk7Ci0JCWlmIChyZXQpCi0JCQlicmVhazsKLQkJcmV0ID0gY29weV90b191c2VyKHVhcmcsICZhbHJtLCBzaXplb2YoYWxybSkpOwotCQlpZiAocmV0KQotCQkJcmV0ID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlpZiAob3BzLT5pb2N0bCkKLQkJCXJldCA9IG9wcy0+aW9jdGwoY21kLCBhcmcpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfbG9jaygmcnRjX211dGV4KTsKLQotCWlmIChydGNfaW51c2UpIHsKLQkJcmV0ID0gLUVCVVNZOwotCX0gZWxzZSBpZiAoIXJ0Y19vcHMgfHwgIXRyeV9tb2R1bGVfZ2V0KHJ0Y19vcHMtPm93bmVyKSkgewotCQlyZXQgPSAtRU5PREVWOwotCX0gZWxzZSB7Ci0JCWZpbGUtPnByaXZhdGVfZGF0YSA9IHJ0Y19vcHM7Ci0KLQkJcmV0ID0gcnRjX29wcy0+b3BlbiA/IHJ0Y19vcHMtPm9wZW4oKSA6IDA7Ci0JCWlmIChyZXQgPT0gMCkgewotCQkJc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCQkJcnRjX2lycV9kYXRhID0gMDsKLQkJCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOwotCi0JCQlydGNfaW51c2UgPSAxOwotCQl9Ci0JfQotCW11dGV4X3VubG9jaygmcnRjX211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0Jc3RydWN0IHJ0Y19vcHMgKm9wcyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCWlmIChvcHMtPnJlbGVhc2UpCi0JCW9wcy0+cmVsZWFzZSgpOwotCi0Jc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCXJ0Y19pcnFfZGF0YSA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7Ci0KLQltb2R1bGVfcHV0KHJ0Y19vcHMtPm93bmVyKTsKLQlydGNfaW51c2UgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgb24pCi17Ci0JcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcnRjX2FzeW5jX3F1ZXVlKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnRjX2ZvcHMgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5sbHNlZWsJCT0gbm9fbGxzZWVrLAotCS5yZWFkCQk9IHJ0Y19yZWFkLAotCS5wb2xsCQk9IHJ0Y19wb2xsLAotCS5pb2N0bAkJPSBydGNfaW9jdGwsCi0JLm9wZW4JCT0gcnRjX29wZW4sCi0JLnJlbGVhc2UJPSBydGNfcmVsZWFzZSwKLQkuZmFzeW5jCQk9IHJ0Y19mYXN5bmMsCi19OwotCi1zdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgcnRjX21pc2NkZXYgPSB7Ci0JLm1pbm9yCQk9IFJUQ19NSU5PUiwKLQkubmFtZQkJPSAicnRjIiwKLQkuZm9wcwkJPSAmcnRjX2ZvcHMsCi19OwotCi0KLXN0YXRpYyBpbnQgcnRjX3JlYWRfcHJvYyhjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgcnRjX29wcyAqb3BzID0gZGF0YTsKLQlzdHJ1Y3QgcnRjX3drYWxybSBhbHJtOwotCXN0cnVjdCBydGNfdGltZSB0bTsKLQljaGFyICpwID0gcGFnZTsKLQotCWlmIChydGNfYXJtX3JlYWRfdGltZShvcHMsICZ0bSkgPT0gMCkgewotCQlwICs9IHNwcmludGYocCwKLQkJCSJydGNfdGltZVx0OiAlMDJkOiUwMmQ6JTAyZFxuIgotCQkJInJ0Y19kYXRlXHQ6ICUwNGQtJTAyZC0lMDJkXG4iCi0JCQkicnRjX2Vwb2NoXHQ6ICUwNGx1XG4iLAotCQkJdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsCi0JCQl0bS50bV95ZWFyICsgMTkwMCwgdG0udG1fbW9uICsgMSwgdG0udG1fbWRheSwKLQkJCXJ0Y19lcG9jaCk7Ci0JfQotCi0JaWYgKHJ0Y19hcm1fcmVhZF9hbGFybShvcHMsICZhbHJtKSA9PSAwKSB7Ci0JCXAgKz0gc3ByaW50ZihwLCAiYWxybV90aW1lXHQ6ICIpOwotCQlpZiAoKHVuc2lnbmVkIGludClhbHJtLnRpbWUudG1faG91ciA8PSAyNCkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTAyZDoiLCBhbHJtLnRpbWUudG1faG91cik7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKio6Iik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9taW4gPD0gNTkpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmQ6IiwgYWxybS50aW1lLnRtX21pbik7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKio6Iik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9zZWMgPD0gNTkpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmRcbiIsIGFscm0udGltZS50bV9zZWMpOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqXG4iKTsKLQotCQlwICs9IHNwcmludGYocCwgImFscm1fZGF0ZVx0OiAiKTsKLQkJaWYgKCh1bnNpZ25lZCBpbnQpYWxybS50aW1lLnRtX3llYXIgPD0gMjAwKQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDRkLSIsIGFscm0udGltZS50bV95ZWFyICsgMTkwMCk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKioqKi0iKTsKLQkJaWYgKCh1bnNpZ25lZCBpbnQpYWxybS50aW1lLnRtX21vbiA8PSAxMSkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTAyZC0iLCBhbHJtLnRpbWUudG1fbW9uICsgMSk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKiotIik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9tZGF5IDw9IDMxKQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDJkXG4iLCBhbHJtLnRpbWUudG1fbWRheSk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKipcbiIpOwotCQlwICs9IHNwcmludGYocCwgImFscm1fd2FrZXVwXHQ6ICVzXG4iLAotCQkJICAgICBhbHJtLmVuYWJsZWQgPyAieWVzIiA6ICJubyIpOwotCQlwICs9IHNwcmludGYocCwgImFscm1fcGVuZGluZ1x0OiAlc1xuIiwKLQkJCSAgICAgYWxybS5wZW5kaW5nID8gInllcyIgOiAibm8iKTsKLQl9Ci0KLQlpZiAob3BzLT5wcm9jKQotCQlwICs9IG9wcy0+cHJvYyhwKTsKLQotCXJldHVybiBwIC0gcGFnZTsKLX0KLQotaW50IHJlZ2lzdGVyX3J0YyhzdHJ1Y3QgcnRjX29wcyAqb3BzKQotewotCWludCByZXQgPSAtRUJVU1k7Ci0KLQltdXRleF9sb2NrKCZydGNfbXV0ZXgpOwotCWlmIChydGNfb3BzID09IE5VTEwpIHsKLQkJcnRjX29wcyA9IG9wczsKLQotCQlyZXQgPSBtaXNjX3JlZ2lzdGVyKCZydGNfbWlzY2Rldik7Ci0JCWlmIChyZXQgPT0gMCkKLQkJCWNyZWF0ZV9wcm9jX3JlYWRfZW50cnkoImRyaXZlci9ydGMiLCAwLCBOVUxMLAotCQkJCQkgICAgICAgcnRjX3JlYWRfcHJvYywgb3BzKTsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZydGNfbXV0ZXgpOwotCi0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0wocmVnaXN0ZXJfcnRjKTsKLQotdm9pZCB1bnJlZ2lzdGVyX3J0YyhzdHJ1Y3QgcnRjX29wcyAqcnRjKQotewotCW11dGV4X2xvY2soJnJ0Y19tdXRleCk7Ci0JaWYgKHJ0YyA9PSBydGNfb3BzKSB7Ci0JCXJlbW92ZV9wcm9jX2VudHJ5KCJkcml2ZXIvcnRjIiwgTlVMTCk7Ci0JCW1pc2NfZGVyZWdpc3RlcigmcnRjX21pc2NkZXYpOwotCQlydGNfb3BzID0gTlVMTDsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZydGNfbXV0ZXgpOwotfQotRVhQT1JUX1NZTUJPTCh1bnJlZ2lzdGVyX3J0Yyk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb21tb24vc2hhcnBzbF9wbS5jIGIvYXJjaC9hcm0vY29tbW9uL3NoYXJwc2xfcG0uYwppbmRleCA1YmJhNTI1Li44ODIyYjY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb21tb24vc2hhcnBzbF9wbS5jCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9zaGFycHNsX3BtLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc2hhcnBzbC5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9zaGFycHNsX3BtLmg+CiAKQEAgLTE1Nyw2ICsxNTgsNyBAQAogCWRldl9kYmcoc2hhcnBzbF9wbS5kZXYsICJCYXR0ZXJ5OiB2b2x0YWdlOiAlZCwgc3RhdHVzOiAlZCwgcGVyY2VudGFnZTogJWQsIHRpbWU6ICVsZFxuIiwgdm9sdGFnZSwKIAkJCXNoYXJwc2xfcG0uYmF0dHN0YXQubWFpbmJhdF9zdGF0dXMsIHNoYXJwc2xfcG0uYmF0dHN0YXQubWFpbmJhdF9wZXJjZW50LCBqaWZmaWVzKTsKIAorI2lmZGVmIENPTkZJR19CQUNLTElHSFRfQ09SR0kKIAkvKiBJZiBiYXR0ZXJ5IGlzIGxvdy4gbGltaXQgYmFja2xpZ2h0IGludGVuc2l0eSB0byBzYXZlIHBvd2VyLiAqLwogCWlmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5hY19zdGF0dXMgIT0gQVBNX0FDX09OTElORSkKIAkJCSYmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5tYWluYmF0X3N0YXR1cyA9PSBBUE1fQkFUVEVSWV9TVEFUVVNfTE9XKSB8fApAQCAtMTY5LDYgKzE3MSw3IEBACiAJCXNoYXJwc2xfcG0ubWFjaGluZm8tPmJhY2tsaWdodF9saW1pdCgwKTsKIAkJc2hhcnBzbF9wbS5mbGFncyAmPSB+U0hBUlBTTF9CTF9MSU1JVDsKIAl9CisjZW5kaWYKIAogCS8qIFN1c3BlbmQgaWYgY3JpdGljYWwgYmF0dGVyeSBsZXZlbCAqLwogCWlmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5hY19zdGF0dXMgIT0gQVBNX0FDX09OTElORSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MWNhcDlhZGtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKaW5kZXggZTMyZTczNi4uYmUyYjJmMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKQEAgLTIxMyw3ICsyMTMsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiBDT05GSUdfQUVBQkk9eQogQ09ORklHX09BQklfQ09NUEFUPXkKQEAgLTkwNyw3ICs5MDYsMzIgQEAKICMKICMgVVNCIEdhZGdldCBTdXBwb3J0CiAjCi0jIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CisjIENPTkZJR19VU0JfR0FER0VUX0FNRDU1MzZVREMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQT15CitDT05GSUdfVVNCX0FUTUVMX1VTQkE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9GU0xfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQ9eQorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9bQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRklMRV9TVE9SQUdFPW0KKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0VfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19TRVJJQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKIENPTkZJR19NTUM9eQogIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKQEAgLTkyNiw3ICs5NTAsNTkgQEAKICMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQotIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05PXkKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05X1JUVD0wCitDT05GSUdfUlRDX0RSVl9BVDkxU0FNOV9HUEJSPTAKIAogIwogIyBGaWxlIHN5c3RlbXMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrX2RlZmNvbmZpZwppbmRleCAyZGJiYmMzLi44NjhmYjdiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBka19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZGtfZGVmY29uZmlnCkBAIC0xNjksNyArMTY5LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKIENPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKIENPTkZJR19GTEFUTUVNX01BTlVBTD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBla19kZWZjb25maWcKaW5kZXggNmU5OTRmNy4uZGU0M2ZjNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGVrX2RlZmNvbmZpZwpAQCAtMTYwLDcgKzE2MCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjBla19kZWZjb25maWcKaW5kZXggZjY1OWM5My4uMjAxMWFkZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MGVrX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYwZWtfZGVmY29uZmlnCkBAIC0yMjAsNyArMjIwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjFla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYxZWtfZGVmY29uZmlnCmluZGV4IDM4MDJlODUuLjQwNDk3NjggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjFla19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MWVrX2RlZmNvbmZpZwpAQCAtMjEzLDcgKzIxMyw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYzZWtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2M2VrX2RlZmNvbmZpZwppbmRleCAzMmEwZDc0Li5mYTFjNWFlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYzZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjNla19kZWZjb25maWcKQEAgLTIxMyw3ICsyMTMsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOWcyMGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnMjBla19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA2ODYzOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnMjBla19kZWZjb25maWcKQEAgLTAsMCArMSwxMTY4IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEp1biAxMCAxNTo1MTo1MiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQUlSX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxU0FNOUcyMD15CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTlHMjAgQm9hcmQgVHlwZQorIworQ09ORklHX01BQ0hfQVQ5MVNBTTlHMjBFSz15CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisjIENPTkZJR19NVERfQVQ5MV9EQVRBRkxBU0hfQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2IGlzIG5vdCBzZXQKKworIworIyBBVDkxIEZlYXR1cmUgU2VsZWN0aW9ucworIworQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUz15CisjIENPTkZJR19BVDkxX1NMT1dfQ0xPQ0sgaXMgbm90IHNldAorQ09ORklHX0FUOTFfVElNRVJfSFo9MTAwCitDT05GSUdfQVQ5MV9FQVJMWV9EQkdVPXkKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ1IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworIyBDT05GSUdfQVJNX1RIVU1CIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0NBQ0hFX1JPVU5EX1JPQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19MRURTPXkKK0NPTkZJR19MRURTX0NQVT15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMwLDExNTIwMCBpbml0cmQ9MHgyMTEwMDAwMCwzMTQ1NzI4IHJvb3Q9L2Rldi9yYW0wIHJ3IgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NPTkNBVD15CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfUkFNPXkKK0NPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9ODE5MgorQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKK0NPTkZJR19BVE1FTF9QV009eQorIyBDT05GSUdfRUVQUk9NXzkzQ1g2IGlzIG5vdCBzZXQKK0NPTkZJR19BVE1FTF9TU0M9eQorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUwgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19QSFlMSUI9eQorCisjCisjIE1JSSBQSFkgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01BUlZFTExfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBVklDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FTRU1JX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19MWFRfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJQ0FEQV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfVklURVNTRV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfU01TQ19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQlJPQURDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lDUExVU19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfRklYRURfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorQ09ORklHX01BQ0I9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTMyMAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTI0MAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKK0NPTkZJR19TRVJJTz15CitDT05GSUdfU0VSSU9fU0VSUE9SVD15CisjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPXkKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorCisjCisjIFNQSSBzdXBwb3J0CisjCitDT05GSUdfU1BJPXkKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9BVE1FTD15CisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKK0NPTkZJR19TUElfU1BJREVWPXkKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKKworIworIyBTb3VuZAorIworQ09ORklHX1NPVU5EPXkKKworIworIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKKyMKK0NPTkZJR19TTkQ9eQorQ09ORklHX1NORF9USU1FUj15CitDT05GSUdfU05EX1BDTT15CitDT05GSUdfU05EX1NFUVVFTkNFUj15CisjIENPTkZJR19TTkRfU0VRX0RVTU1ZIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz15CitDT05GSUdfU05EX1BDTV9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPXkKKyMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgR2VuZXJpYyBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUk1JREkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIEFMU0EgQVJNIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9BVDkxX0FDOTcgaXMgbm90IHNldAorCisjCisjIFNQSSBkZXZpY2VzCisjCitDT05GSUdfU05EX0FUNzNDMjEzPXkKK0NPTkZJR19TTkRfQVQ3M0MyMTNfVEFSR0VUX0JJVFJBVEU9NDgwMDAKKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0CisjCisjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKKworIworIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICisjCisKKyMKKyMgT3BlbiBTb3VuZCBTeXN0ZW0KKyMKKyMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisKKyMKKyMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKworIworIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKKyMKKworIworIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorQ09ORklHX1VTQl9aRVJPPW0KKyMgQ09ORklHX1VTQl9FVEggaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRGUz1tCitDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRT1tCisjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFX1RFU1QgaXMgbm90IHNldAorQ09ORklHX1VTQl9HX1NFUklBTD1tCisjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorQ09ORklHX01NQz15CisjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBDYXJkIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQkxPQ0s9eQorQ09ORklHX01NQ19CTE9DS19CT1VOQ0U9eQorIyBDT05GSUdfU0RJT19VQVJUIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQVQ5MT15CisjIENPTkZJR19NTUNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX0FUTUVMX1BXTT15CitDT05GSUdfTEVEU19HUElPPXkKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfQVQ5MVNBTTk9eQorQ09ORklHX1JUQ19EUlZfQVQ5MVNBTTlfUlRUPTAKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05X0dQQlI9MAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKK0NPTkZJR19NU0RPU19GUz15CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1NVTU1BUlk9eQorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKK0NPTkZJR19DUkFNRlM9eQorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMTU9eQorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfVVRGOD15CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19VU0VSIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlybGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlybGVrX2RlZmNvbmZpZwppbmRleCA5OGU2NzQ2Li5kOGVjNWY5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05cmxla19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOXJsZWtfZGVmY29uZmlnCkBAIC0yMTEsNyArMjExLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXRlYjkyMDBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKaW5kZXggZDg0NmE0OS4uODVjODBmNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKQEAgLTE3MSw3ICsxNzEsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLUNPTkZJR19OT19JRExFX0haPXkKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2NtX3gyNzBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9jbV94MjcwX2RlZmNvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNhYjA4My4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9jb25maWdzL2NtX3gyNzBfZGVmY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTQxMCArMCwwIEBACi0jCi0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjIKLSMgV2VkIEp1bCAxOCAxNDoxMTo0OCAyMDA3Ci0jCi1DT05GSUdfQVJNPXkKLUNPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15Ci1DT05GSUdfR0VORVJJQ19HUElPPXkKLUNPTkZJR19HRU5FUklDX1RJTUU9eQotIyBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUyBpcyBub3Qgc2V0Ci1DT05GSUdfTU1VPXkKLSMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQotQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQotQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15Ci1DT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX0FSQ0hfTVREX1hJUD15Ci1DT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19CUk9LRU5fT05fU01QPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCi1DT05GSUdfTE9DQUxWRVJTSU9OPSIiCi0jIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0Ci1DT05GSUdfU1dBUD15Ci1DT05GSUdfU1lTVklQQz15Ci1DT05GSUdfU1lTVklQQ19TWVNDVEw9eQotIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAotQ09ORklHX0lLQ09ORklHPXkKLUNPTkZJR19JS0NPTkZJR19QUk9DPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3Ci1DT05GSUdfU1lTRlNfREVQUkVDQVRFRD15Ci0jIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eQotQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKLUNPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15Ci1DT05GSUdfU1lTQ1RMPXkKLUNPTkZJR19FTUJFRERFRD15Ci1DT05GSUdfVUlEMTY9eQotQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKLUNPTkZJR19LQUxMU1lNUz15Ci0jIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAotIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0Ci1DT05GSUdfSE9UUExVRz15Ci1DT05GSUdfUFJJTlRLPXkKLUNPTkZJR19CVUc9eQotQ09ORklHX0VMRl9DT1JFPXkKLUNPTkZJR19CQVNFX0ZVTEw9eQotQ09ORklHX0ZVVEVYPXkKLUNPTkZJR19BTk9OX0lOT0RFUz15Ci0jIENPTkZJR19FUE9MTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSUdOQUxGRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUkZEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VWRU5URkQgaXMgbm90IHNldAotQ09ORklHX1NITUVNPXkKLUNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotQ09ORklHX1JUX01VVEVYRVM9eQotIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkFTRV9TTUFMTD0wCi1DT05GSUdfTU9EVUxFUz15Ci1DT05GSUdfTU9EVUxFX1VOTE9BRD15Ci1DT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15Ci0jIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAotQ09ORklHX0tNT0Q9eQotQ09ORklHX0JMT0NLPXkKLSMgQ09ORklHX0xCRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0xTRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0Ci0KLSMKLSMgSU8gU2NoZWR1bGVycwotIwotQ09ORklHX0lPU0NIRURfTk9PUD15Ci1DT05GSUdfSU9TQ0hFRF9BUz15Ci1DT05GSUdfSU9TQ0hFRF9ERUFETElORT15Ci1DT05GSUdfSU9TQ0hFRF9DRlE9eQotQ09ORklHX0RFRkFVTFRfQVM9eQotIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAotQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgotCi0jCi0jIFN5c3RlbSBUeXBlCi0jCi0jIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKLUNPTkZJR19BUkNIX1BYQT15Ci0jIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0Ci1DT05GSUdfRE1BQk9VTkNFPXkKLQotIwotIyBJbnRlbCBQWEEyeHggSW1wbGVtZW50YXRpb25zCi0jCi0jIENPTkZJR19BUkNIX0xVQkJPQ0sgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9MT0dJQ1BEX1BYQTI3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX01BSU5TVE9ORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1BYQV9JRFAgaXMgbm90IHNldAotIyBDT05GSUdfUFhBX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9UUklaRVBTNCBpcyBub3Qgc2V0Ci1DT05GSUdfTUFDSF9BUk1DT1JFPXkKLUNPTkZJR19QWEEyN3g9eQotCi0jCi0jIFByb2Nlc3NvciBUeXBlCi0jCi1DT05GSUdfQ1BVXzMyPXkKLUNPTkZJR19DUFVfWFNDQUxFPXkKLUNPTkZJR19DUFVfMzJ2NT15Ci1DT05GSUdfQ1BVX0FCUlRfRVY1VD15Ci1DT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQotQ09ORklHX0NQVV9UTEJfVjRXQkk9eQotQ09ORklHX0NQVV9DUDE1PXkKLUNPTkZJR19DUFVfQ1AxNV9NTVU9eQotCi0jCi0jIFByb2Nlc3NvciBGZWF0dXJlcwotIwotQ09ORklHX0FSTV9USFVNQj15Ci0jIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAotIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAotQ09ORklHX0lXTU1YVD15Ci1DT05GSUdfWFNDQUxFX1BNVT15Ci0KLSMKLSMgQnVzIHN1cHBvcnQKLSMKLUNPTkZJR19QQ0k9eQotQ09ORklHX1BDSV9TWVNDQUxMPXkKLUNPTkZJR19QQ0lfSE9TVF9JVEU4MTUyPXkKLSMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAotIwotIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLQotIwotIyBLZXJuZWwgRmVhdHVyZXMKLSMKLSMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAotQ09ORklHX0haPTEwMAotIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKLUNPTkZJR19GTEFUTUVNX01BTlVBTD15Ci0jIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAotQ09ORklHX0ZMQVRNRU09eQotQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKLSMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAotQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKLSMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCi1DT05GSUdfQk9VTkNFPXkKLUNPTkZJR19WSVJUX1RPX0JVUz15Ci1DT05GSUdfQUxJR05NRU5UX1RSQVA9eQotCi0jCi0jIEJvb3Qgb3B0aW9ucwotIwotQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAotQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCi1DT05GSUdfQ01ETElORT0iIgotIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0KLSMKLSMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCi0jCi0KLSMKLSMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCi0jCi1DT05GSUdfRlBFX05XRlBFPXkKLSMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCi0jCi1DT05GSUdfQklORk1UX0VMRj15Ci0jIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUlRIVVIgaXMgbm90IHNldAotCi0jCi0jIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwotIwotQ09ORklHX1BNPXkKLSMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmtpbmcKLSMKLUNPTkZJR19ORVQ9eQotCi0jCi0jIE5ldHdvcmtpbmcgb3B0aW9ucwotIwotQ09ORklHX1BBQ0tFVD15Ci0jIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0Ci1DT05GSUdfVU5JWD15Ci1DT05GSUdfWEZSTT15Ci0jIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAotIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUPXkKLSMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAotQ09ORklHX0lQX0ZJQl9IQVNIPXkKLUNPTkZJR19JUF9QTlA9eQotQ09ORklHX0lQX1BOUF9ESENQPXkKLUNPTkZJR19JUF9QTlBfQk9PVFA9eQotIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSUEQgaXMgbm90IHNldAotIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15Ci1DT05GSUdfSU5FVF9ESUFHPXkKLUNPTkZJR19JTkVUX1RDUF9ESUFHPXkKLSMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19UQ1BfQ09OR19DVUJJQz15Ci1DT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCi0jIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RJUEMgaXMgbm90IHNldAotIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19YMjUgaXMgbm90IHNldAotIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCi0jIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgdGVzdGluZwotIwotIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKLQotIwotIyBXaXJlbGVzcwotIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotQ09ORklHX1dJUkVMRVNTX0VYVD15Ci0jIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCi1DT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQotIyBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1RLSVAgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTgwMjExX1NPRlRNQUMgaXMgbm90IHNldAotIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGV2aWNlIERyaXZlcnMKLSMKLQotIwotIyBHZW5lcmljIERyaXZlciBPcHRpb25zCi0jCi1DT05GSUdfU1RBTkRBTE9ORT15Ci1DT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15Ci1DT05GSUdfRldfTE9BREVSPXkKLSMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAotIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKLUNPTkZJR19NVEQ9bQotIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAotQ09ORklHX01URF9QQVJUSVRJT05TPXkKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAotCi0jCi0jIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCi0jCi1DT05GSUdfTVREX0NIQVI9bQotQ09ORklHX01URF9CTEtERVZTPW0KLUNPTkZJR19NVERfQkxPQ0s9bQotIyBDT05GSUdfTVREX0JMT0NLX1JPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAotIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAotCi0jCi0jIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCi0jCi0jIENPTkZJR19NVERfQ0ZJIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAotQ09ORklHX01URF9DRklfSTE9eQotQ09ORklHX01URF9DRklfSTI9eQotIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKLQotIwotIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCi0jCi0jIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfU0hBUlBfU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAotCi0jCi0jIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EPW0KLSMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX0lEUz1tCi0jIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfQ0FGRSBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX05BTkRfQ01fWDI3MD1tCi0jIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKLQotIwotIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKLSMKLSMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAotIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVj15Ci0jIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1VNRU0gaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0xPT1A9eQotIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU1g4IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfUkFNPXkKLUNPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgotQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MTIwMDAKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAotIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAotQ09ORklHX0lERT1tCi1DT05GSUdfSURFX01BWF9IV0lGUz00Ci1DT05GSUdfQkxLX0RFVl9JREU9bQotCi0jCi0jIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwotIwotIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVESVNLPW0KLSMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVDRD1tCi0jIENPTkZJR19CTEtfREVWX0lERVRBUEUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFkgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVTQ1NJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5vdCBzZXQKLUNPTkZJR19JREVfUFJPQ19GUz15Ci0KLSMKLSMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwotIwotIyBDT05GSUdfSURFX0dFTkVSSUMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVQQ0kgaXMgbm90IHNldAotIyBDT05GSUdfSURFUENJX1BDSUJVU19PUkRFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFRE1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAotQ09ORklHX1NDU0k9eQotQ09ORklHX1NDU0lfRE1BPXkKLSMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCi0jCi1DT05GSUdfQkxLX0RFVl9TRD15Ci0jIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfU0cgaXMgbm90IHNldAotIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAotCi0jCi0jIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcwotIwotIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9XQUlUX1NDQU49bQotCi0jCi0jIFNDU0kgVHJhbnNwb3J0cwotIwotIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0FTX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBsb3ctbGV2ZWwgZHJpdmVycwotIwotIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FSQ01TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0hQVElPUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RNWDMxOTFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSVRJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRCBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TUEkgaXMgbm90IHNldAotIyBDT05GSUdfRlVTSU9OX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TQVMgaXMgbm90IHNldAotCi0jCi0jIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKLSMKLSMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyTyBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWSUNFUz15Ci0jIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAotIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVU4gaXMgbm90IHNldAotIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUX0VUSEVSTkVUPXkKLUNPTkZJR19NSUk9eQotIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQVBQWU1FQUwgaXMgbm90IHNldAotIyBDT05GSUdfU1VOR0VNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NBU1NJTkkgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0Ci1DT05GSUdfRE05MDAwPXkKLSMgQ09ORklHX1NNQzkxMVggaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRfUENJPXkKLSMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAotIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAotIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CNDQgaXMgbm90IHNldAotIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAotIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAotIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GRUFMTlggaXMgbm90IHNldAotIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAotQ09ORklHXzgxMzlUT089bQotIyBDT05GSUdfODEzOVRPT19QSU8gaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVklBX1JISU5FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDOTIwMzEgaXMgbm90IHNldAotQ09ORklHX05FVERFVl8xMDAwPXkKLSMgQ09ORklHX0FDRU5JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETDJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAotIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAotIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAotIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLR0UgaXMgbm90IHNldAotIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAotIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JOWDIgaXMgbm90IHNldAotIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRERVZfMTAwMDA9eQotIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0IgaXMgbm90IHNldAotIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUiBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MgTEFOCi0jCi0jIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAotCi0jCi0jIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCi0jCi0jIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZEREkgaXMgbm90IHNldAotIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAotIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMSVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKLQotIwotIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX0lOUFVUPXkKLSMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcmxhbmQgaW50ZXJmYWNlcwotIwotIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKLUNPTkZJR19JTlBVVF9FVkRFVj15Ci0jIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgSW5wdXQgRGV2aWNlIERyaXZlcnMKLSMKLSMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKLUNPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwPW0KLSMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0Ci0KLSMKLSMgSGFyZHdhcmUgSS9PIHBvcnRzCi0jCi0jIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci0KLSMKLSMgQ2hhcmFjdGVyIGRldmljZXMKLSMKLUNPTkZJR19WVD15Ci1DT05GSUdfVlRfQ09OU09MRT15Ci1DT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKLQotIwotIyBTZXJpYWwgZHJpdmVycwotIwotIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAotCi0jCi0jIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKLSMKLUNPTkZJR19TRVJJQUxfUFhBPXkKLUNPTkZJR19TRVJJQUxfUFhBX0NPTlNPTEU9eQotQ09ORklHX1NFUklBTF9DT1JFPXkKLUNPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKLSMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAotQ09ORklHX1VOSVg5OF9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKLSMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPW0KLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAotQ09ORklHX0RFVlBPUlQ9eQotIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwotIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfVzEgaXMgbm90IHNldAotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotQ09ORklHX01JU0NfREVWSUNFUz15Ci0jIENPTkZJR19QSEFOVE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAotCi0jCi0jIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKLSMKLSMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgTEVEIGRldmljZXMKLSMKLUNPTkZJR19ORVdfTEVEUz15Ci1DT05GSUdfTEVEU19DTEFTUz15Ci0KLSMKLSMgTEVEIGRyaXZlcnMKLSMKLUNPTkZJR19MRURTX0NNX1gyNzA9eQotCi0jCi0jIExFRCBUcmlnZ2VycwotIwotQ09ORklHX0xFRFNfVFJJR0dFUlM9eQotIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0xFRFNfVFJJR0dFUl9JREVfRElTSyBpcyBub3Qgc2V0Ci1DT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15Ci0KLSMKLSMgTXVsdGltZWRpYSBkZXZpY2VzCi0jCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotQ09ORklHX0RBQj15Ci0jIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKLQotIwotIyBHcmFwaGljcyBzdXBwb3J0Ci0jCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAotCi0jCi0jIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci1DT05GSUdfRkI9eQotIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9EREMgaXMgbm90IHNldAotQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15Ci1DT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKLUNPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKLSMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfREVGRVJSRURfSU89eQotIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0Ci0KLSMKLSMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKLSMKLSMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAotIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAotIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAotIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAotQ09ORklHX0ZCX1BYQT15Ci0jIENPTkZJR19GQl9QWEFfUEFSQU1FVEVSUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfTUJYPW0KLSMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAotCi0jCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQotIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZPTlRTIGlzIG5vdCBzZXQKLUNPTkZJR19GT05UXzh4OD15Ci1DT05GSUdfRk9OVF84eDE2PXkKLUNPTkZJR19MT0dPPXkKLUNPTkZJR19MT0dPX0xJTlVYX01PTk89eQotQ09ORklHX0xPR09fTElOVVhfVkdBMTY9eQotQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15Ci0KLSMKLSMgU291bmQKLSMKLUNPTkZJR19TT1VORD1tCi0KLSMKLSMgQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlCi0jCi1DT05GSUdfU05EPW0KLUNPTkZJR19TTkRfVElNRVI9bQotQ09ORklHX1NORF9QQ009bQotIyBDT05GSUdfU05EX1NFUVVFTkNFUiBpcyBub3Qgc2V0Ci1DT05GSUdfU05EX09TU0VNVUw9eQotQ09ORklHX1NORF9NSVhFUl9PU1M9bQotQ09ORklHX1NORF9QQ01fT1NTPW0KLUNPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKLSMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci1DT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15Ci1DT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZTPXkKLSMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIEdlbmVyaWMgZGV2aWNlcwotIwotQ09ORklHX1NORF9BQzk3X0NPREVDPW0KLSMgQ09ORklHX1NORF9EVU1NWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTVRQQVYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1NFUklBTF9VMTY1NTAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01QVTQwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgUENJIGRldmljZXMKLSMKLSMgQ09ORklHX1NORF9BRDE4ODkgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FMUzMwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQUxJNTQ1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVRJSVhQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BVElJWFBfTU9ERU0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQ1M0MjgxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0dJTkEyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTEFZTEEyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfR0lOQTI0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9MQVlMQTI0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NT05BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NSUEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VDSE8zRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JTkRJR09JTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5ESUdPREogaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VNVTEwSzEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VNVTEwSzFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTlMxMzcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FUzE5MzggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VTMTk2OCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0hEQV9JTlRFTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSERTUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSERTUE0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lDRTE3MTIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lDRTE3MjQgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lOVEVMOFgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JTlRFTDhYME0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0tPUkcxMjEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NQUVTVFJPMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTUlYQVJUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9OTTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfUENYSFIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1JJUFRJREUgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1JNRTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9STUU5NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfUk1FOTY1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfU09OSUNWSUJFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVFJJREVOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVklBODJYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVklBODJYWF9NT0RFTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1lNRlBDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFIGlzIG5vdCBzZXQKLQotIwotIyBBTFNBIEFSTSBkZXZpY2VzCi0jCi1DT05GSUdfU05EX1BYQTJYWF9QQ009bQotQ09ORklHX1NORF9QWEEyWFhfQUM5Nz1tCi0KLSMKLSMgVVNCIGRldmljZXMKLSMKLSMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAotIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0Ci0KLSMKLSMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAotIwotIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0Ci0KLSMKLSMgT3BlbiBTb3VuZCBTeXN0ZW0KLSMKLSMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKLUNPTkZJR19BQzk3X0JVUz1tCi1DT05GSUdfSElEX1NVUFBPUlQ9eQotQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBJbnB1dCBEZXZpY2VzCi0jCi1DT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfU1VQUE9SVD15Ci1DT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15Ci1DT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQotQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotIyBDT05GSUdfVVNCX0VIQ0lfSENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQotIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCi0jCi0KLSMKLSMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotIwotQ09ORklHX1VTQl9TVE9SQUdFPXkKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIEltYWdpbmcgZGV2aWNlcwotIwotIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAotQ09ORklHX1VTQl9NT049eQotCi0jCi0jIFVTQiBwb3J0IGRyaXZlcnMKLSMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCi0jIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwotIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci1DT05GSUdfTU1DPW0KLSMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgRHJpdmVycwotIwotQ09ORklHX01NQ19CTE9DSz1tCi1DT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15Ci0KLSMKLSMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCi0jCi1DT05GSUdfTU1DX1BYQT1tCi0jIENPTkZJR19NTUNfU0RIQ0kgaXMgbm90IHNldAotIyBDT05GSUdfTU1DX1RJRk1fU0QgaXMgbm90IHNldAotCi0jCi0jIFJlYWwgVGltZSBDbG9jawotIwotQ09ORklHX1JUQ19MSUI9eQotQ09ORklHX1JUQ19DTEFTUz15Ci1DT05GSUdfUlRDX0hDVE9TWVM9eQotQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKLSMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgUlRDIGludGVyZmFjZXMKLSMKLUNPTkZJR19SVENfSU5URl9TWVNGUz15Ci1DT05GSUdfUlRDX0lOVEZfUFJPQz15Ci1DT05GSUdfUlRDX0lOVEZfREVWPXkKLSMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFBsYXRmb3JtIFJUQyBkcml2ZXJzCi0jCi0jIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfVjMwMjA9eQotCi0jCi0jIG9uLUNQVSBSVEMgZHJpdmVycwotIwotQ09ORklHX1JUQ19EUlZfU0ExMTAwPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBGaWxlIHN5c3RlbXMKLSMKLUNPTkZJR19FWFQyX0ZTPXkKLSMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAotQ09ORklHX0VYVDNfRlM9eQotQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19GU19NQkNBQ0hFPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAotQ09ORklHX0lOT1RJRlk9eQotQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15Ci0jIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCi0jCi0jIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcwotIwotQ09ORklHX0ZBVF9GUz15Ci1DT05GSUdfTVNET1NfRlM9eQotQ09ORklHX1ZGQVRfRlM9eQotQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwotQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgUHNldWRvIGZpbGVzeXN0ZW1zCi0jCi1DT05GSUdfUFJPQ19GUz15Ci1DT05GSUdfUFJPQ19TWVNDVEw9eQotQ09ORklHX1NZU0ZTPXkKLUNPTkZJR19UTVBGUz15Ci0jIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15Ci0jIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwotIwotIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRkZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAotIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAotQ09ORklHX1NNQl9GUz15Ci0jIENPTkZJR19TTUJfTkxTX0RFRkFVTFQgaXMgbm90IHNldAotIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIFBhcnRpdGlvbiBUeXBlcwotIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCi1DT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgotQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQotIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMT15Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCi0jIENPTkZJR19ETE0gaXMgbm90IHNldAotCi0jCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCi0jIEtlcm5lbCBoYWNraW5nCi0jCi0jIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0Ci1DT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQotQ09ORklHX01BR0lDX1NZU1JRPXkKLSMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0tFUk5FTD15Ci0jIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERVRFQ1RfU09GVExPQ0tVUCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NIRURfREVCVUc9eQotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0lORk89eQotIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15Ci1DT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKLSMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19VU0VSPXkKLUNPTkZJR19ERUJVR19FUlJPUlM9eQotQ09ORklHX0RFQlVHX0xMPXkKLSMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VjdXJpdHkgb3B0aW9ucwotIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPPXkKLUNPTkZJR19DUllQVE9fQUxHQVBJPW0KLUNPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KLUNPTkZJR19DUllQVE9fTUFOQUdFUj1tCi0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz1tCi1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19BRVM9bQotIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQVJDND1tCi0jIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fSFc9eQotCi0jCi0jIExpYnJhcnkgcm91dGluZXMKLSMKLUNPTkZJR19CSVRSRVZFUlNFPXkKLSMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAotQ09ORklHX0NSQzMyPXkKLSMgQ09ORklHX0NSQzcgaXMgbm90IHNldAotIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKLUNPTkZJR19QTElTVD15Ci1DT05GSUdfSEFTX0lPTUVNPXkKLUNPTkZJR19IQVNfSU9QT1JUPXkKLUNPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvY29sbGllX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29sbGllX2RlZmNvbmZpZwppbmRleCA0MjY0ZTI3Li5mNzYyMmU2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2NvbGxpZV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9jb2xsaWVfZGVmY29uZmlnCkBAIC0xNjYsNyArMTY2LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2NvcmdpX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCmluZGV4IGU4OTgwYTkuLjliODc0OGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCkBAIC0xNjUsNyArMTY1LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lY2JhdDkxX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZWNiYXQ5MV9kZWZjb25maWcKaW5kZXggOTBlZDIxNC4uY2ZlYjgxNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9lY2JhdDkxX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VjYmF0OTFfZGVmY29uZmlnCkBAIC0yMzAsNyArMjMwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2VtX3gyNzBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9lbV94MjcwX2RlZmNvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlYTA5MC4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9jb25maWdzL2VtX3gyNzBfZGVmY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTI2NSArMCwwIEBACi0jCi0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjIKLSMgTW9uIEp1bCAgOSAxNToxODoyMCAyMDA3Ci0jCi1DT05GSUdfQVJNPXkKLUNPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15Ci1DT05GSUdfR0VORVJJQ19HUElPPXkKLUNPTkZJR19HRU5FUklDX1RJTUU9eQotIyBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUyBpcyBub3Qgc2V0Ci1DT05GSUdfTU1VPXkKLSMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQotQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQotQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15Ci1DT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX0FSQ0hfTVREX1hJUD15Ci1DT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19CUk9LRU5fT05fU01QPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCi1DT05GSUdfTE9DQUxWRVJTSU9OPSItZW0teDI3MCIKLSMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKLUNPTkZJR19TV0FQPXkKLUNPTkZJR19TWVNWSVBDPXkKLSMgQ09ORklHX0lQQ19OUyBpcyBub3Qgc2V0Ci1DT05GSUdfU1lTVklQQ19TWVNDVEw9eQotIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVURJVCBpcyBub3Qgc2V0Ci1DT05GSUdfSUtDT05GSUc9eQotQ09ORklHX0lLQ09ORklHX1BST0M9eQotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKLSMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lOSVRSRD15Ci1DT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgotQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKLUNPTkZJR19TWVNDVEw9eQotQ09ORklHX0VNQkVEREVEPXkKLUNPTkZJR19VSUQxNj15Ci1DT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQotQ09ORklHX0tBTExTWU1TPXkKLSMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKLUNPTkZJR19IT1RQTFVHPXkKLUNPTkZJR19QUklOVEs9eQotQ09ORklHX0JVRz15Ci1DT05GSUdfRUxGX0NPUkU9eQotQ09ORklHX0JBU0VfRlVMTD15Ci1DT05GSUdfRlVURVg9eQotQ09ORklHX0FOT05fSU5PREVTPXkKLUNPTkZJR19FUE9MTD15Ci1DT05GSUdfU0lHTkFMRkQ9eQotQ09ORklHX1RJTUVSRkQ9eQotQ09ORklHX0VWRU5URkQ9eQotQ09ORklHX1NITUVNPXkKLUNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotQ09ORklHX1JUX01VVEVYRVM9eQotIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkFTRV9TTUFMTD0wCi0KLSMKLSMgTG9hZGFibGUgbW9kdWxlIHN1cHBvcnQKLSMKLUNPTkZJR19NT0RVTEVTPXkKLUNPTkZJR19NT0RVTEVfVU5MT0FEPXkKLUNPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKLSMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0Ci1DT05GSUdfS01PRD15Ci0KLSMKLSMgQmxvY2sgbGF5ZXIKLSMKLUNPTkZJR19CTE9DSz15Ci0jIENPTkZJR19MQkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19MU0YgaXMgbm90IHNldAotCi0jCi0jIElPIFNjaGVkdWxlcnMKLSMKLUNPTkZJR19JT1NDSEVEX05PT1A9eQotQ09ORklHX0lPU0NIRURfQVM9eQotQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQotQ09ORklHX0lPU0NIRURfQ0ZRPXkKLUNPTkZJR19ERUZBVUxUX0FTPXkKLSMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKLUNPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKLQotIwotIyBTeXN0ZW0gVHlwZQotIwotIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0Ci1DT05GSUdfQVJDSF9QWEE9eQotIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAotCi0jCi0jIEludGVsIFBYQTJ4eCBJbXBsZW1lbnRhdGlvbnMKLSMKLSMgQ09ORklHX0FSQ0hfTFVCQk9DSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX0xPR0lDUERfUFhBMjcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQ0hfTUFJTlNUT05FIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUFhBX0lEUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QWEFfU0hBUlBTTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX1RSSVpFUFM0IGlzIG5vdCBzZXQKLUNPTkZJR19NQUNIX0VNX1gyNzA9eQotQ09ORklHX1BYQTI3eD15Ci0KLSMKLSMgUHJvY2Vzc29yIFR5cGUKLSMKLUNPTkZJR19DUFVfMzI9eQotQ09ORklHX0NQVV9YU0NBTEU9eQotQ09ORklHX0NQVV8zMnY1PXkKLUNPTkZJR19DUFVfQUJSVF9FVjVUPXkKLUNPTkZJR19DUFVfQ0FDSEVfVklWVD15Ci1DT05GSUdfQ1BVX1RMQl9WNFdCST15Ci1DT05GSUdfQ1BVX0NQMTU9eQotQ09ORklHX0NQVV9DUDE1X01NVT15Ci0KLSMKLSMgUHJvY2Vzc29yIEZlYXR1cmVzCi0jCi1DT05GSUdfQVJNX1RIVU1CPXkKLSMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0Ci1DT05GSUdfSVdNTVhUPXkKLUNPTkZJR19YU0NBTEVfUE1VPXkKLQotIwotIyBCdXMgc3VwcG9ydAotIwotIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAotCi0jCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgS2VybmVsIEZlYXR1cmVzCi0jCi0jIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKLUNPTkZJR19IWj0xMDAKLUNPTkZJR19BRUFCST15Ci1DT05GSUdfT0FCSV9DT01QQVQ9eQotIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKLUNPTkZJR19GTEFUTUVNX01BTlVBTD15Ci0jIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAotQ09ORklHX0ZMQVRNRU09eQotQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKLSMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAotQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKLSMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCi1DT05GSUdfQUxJR05NRU5UX1RSQVA9eQotCi0jCi0jIEJvb3Qgb3B0aW9ucwotIwotQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAotQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCi1DT05GSUdfQ01ETElORT0iIgotIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0KLSMKLSMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCi0jCi0KLSMKLSMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCi0jCi1DT05GSUdfRlBFX05XRlBFPXkKLSMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCi0jCi1DT05GSUdfQklORk1UX0VMRj15Ci0jIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci0KLSMKLSMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCi0jCi1DT05GSUdfUE09eQotQ09ORklHX1BNX0xFR0FDWT15Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKLUNPTkZJR19BUE1fRU1VTEFUSU9OPW0KLQotIwotIyBOZXR3b3JraW5nCi0jCi1DT05GSUdfTkVUPXkKLQotIwotIyBOZXR3b3JraW5nIG9wdGlvbnMKLSMKLUNPTkZJR19QQUNLRVQ9eQotIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAotQ09ORklHX1VOSVg9eQotQ09ORklHX1hGUk09eQotIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVD15Ci0jIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAotIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19JUF9GSUJfSEFTSD15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfREhDUD15Ci1DT05GSUdfSVBfUE5QX0JPT1RQPXkKLSMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQotQ09ORklHX0lORVRfRElBRz15Ci1DT05GSUdfSU5FVF9UQ1BfRElBRz15Ci0jIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0Ci1DT05GSUdfVENQX0NPTkdfQ1VCSUM9eQotQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgotIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAotIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USVBDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CUklER0UgaXMgbm90IHNldAotIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUNORVQgaXMgbm90IHNldAotIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFggaXMgbm90IHNldAotIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAotIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0xBUEIgaXMgbm90IHNldAotIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwotIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIHRlc3RpbmcKLSMKLSMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAotIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAotIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0Ci1DT05GSUdfQlQ9bQotQ09ORklHX0JUX0wyQ0FQPW0KLUNPTkZJR19CVF9TQ089bQotQ09ORklHX0JUX1JGQ09NTT1tCi0jIENPTkZJR19CVF9SRkNPTU1fVFRZIGlzIG5vdCBzZXQKLUNPTkZJR19CVF9CTkVQPW0KLSMgQ09ORklHX0JUX0JORVBfTUNfRklMVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19CVF9ISURQPW0KLQotIwotIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKLSMKLUNPTkZJR19CVF9IQ0lVU0I9bQotIyBDT05GSUdfQlRfSENJVVNCX1NDTyBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfSENJVUFSVD1tCi0jIENPTkZJR19CVF9IQ0lVQVJUX0g0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUX0hDSVVBUlRfQkNTUCBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfSENJQkNNMjAzWD1tCi1DT05GSUdfQlRfSENJQlBBMTBYPW0KLUNPTkZJR19CVF9IQ0lCRlVTQj1tCi0jIENPTkZJR19CVF9IQ0lWSENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKLQotIwotIyBXaXJlbGVzcwotIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFODAyMTE9bQotIyBDT05GSUdfSUVFRTgwMjExX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFODAyMTFfQ1JZUFRfV0VQPW0KLUNPTkZJR19JRUVFODAyMTFfQ1JZUFRfQ0NNUD1tCi0jIENPTkZJR19JRUVFODAyMTFfQ1JZUFRfVEtJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFODAyMTFfU09GVE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRktJTEwgaXMgbm90IHNldAotCi0jCi0jIERldmljZSBEcml2ZXJzCi0jCi0KLSMKLSMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwotIwotQ09ORklHX1NUQU5EQUxPTkU9eQotQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQotQ09ORklHX0ZXX0xPQURFUj15Ci0jIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLQotIwotIyBDb25uZWN0b3IgLSB1bmlmaWVkIHVzZXJzcGFjZSA8LT4ga2VybmVsc3BhY2UgbGlua2VyCi0jCi0jIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAotQ09ORklHX01URD15Ci0jIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAotQ09ORklHX01URF9DT05DQVQ9eQotQ09ORklHX01URF9QQVJUSVRJT05TPXkKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAotCi0jCi0jIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCi0jCi1DT05GSUdfTVREX0NIQVI9eQotQ09ORklHX01URF9CTEtERVZTPXkKLUNPTkZJR19NVERfQkxPQ0s9eQotIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GVEwgaXMgbm90IHNldAotIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAotIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0Ci0KLSMKLSMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKLSMKLSMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9OT1NXQVAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQotIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAotIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX0NGSV9JMT15Ci1DT05GSUdfTVREX0NGSV9JMj15Ci0jIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAotIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAotCi0jCi0jIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKLSMKLSMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9TSEFSUF9TTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EPXkKLSMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX0lEUz15Ci0jIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX05BTkRfUExBVEZPUk09eQotIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAotCi0jCi0jIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcwotIwotIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0Ci0KLSMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0Ci0jCi0jIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBQbHVnIGFuZCBQbGF5IHN1cHBvcnQKLSMKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKLSMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9MT09QPXkKLSMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1JBTT15Ci1DT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKLUNPTkZJR19CTEtfREVWX1JBTV9TSVpFPTEyMDAwCi1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKLSMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAotIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERSBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTST15Ci0jIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQotIwotQ09ORklHX0JMS19ERVZfU0Q9eQotIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKLQotIwotIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKLSMKLSMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAotQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KLQotIwotIyBTQ1NJIFRyYW5zcG9ydHMKLSMKLSMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgbG93LWxldmVsIGRyaXZlcnMKLSMKLSMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKLSMKLSMgQ09ORklHX01EIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfTkVUREVWSUNFUz15Ci0jIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVU4gaXMgbm90IHNldAotIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAgb3IgMTAwTWJpdCkKLSMKLUNPTkZJR19ORVRfRVRIRVJORVQ9eQotQ09ORklHX01JST15Ci0jIENPTkZJR19TTUM5MVggaXMgbm90IHNldAotQ09ORklHX0RNOTAwMD15Ci0jIENPTkZJR19TTUM5MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MgTEFOCi0jCi0jIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAotCi0jCi0jIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCi0jCi0jIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BQUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgSVNETiBzdWJzeXN0ZW0KLSMKLSMgQ09ORklHX0lTRE4gaXMgbm90IHNldAotCi0jCi0jIElucHV0IGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfSU5QVVQ9eQotIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKLQotIwotIyBVc2VybGFuZCBpbnRlcmZhY2VzCi0jCi1DT05GSUdfSU5QVVRfTU9VU0VERVY9eQotIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAotQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKLSMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfRVZERVY9eQotIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAotCi0jCi0jIElucHV0IERldmljZSBEcml2ZXJzCi0jCi1DT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQotIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAotIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0Ci1DT05GSUdfS0VZQk9BUkRfUFhBMjd4PW0KLSMgQ09ORklHX0tFWUJPQVJEX0dQSU8gaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKLUNPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIEkvTyBwb3J0cwotIwotQ09ORklHX1NFUklPPXkKLSMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAotQ09ORklHX1NFUklPX0xJQlBTMj15Ci0jIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotCi0jCi0jIENoYXJhY3RlciBkZXZpY2VzCi0jCi1DT05GSUdfVlQ9eQotQ09ORklHX1ZUX0NPTlNPTEU9eQotQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VyaWFsIGRyaXZlcnMKLSMKLSMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKLQotIwotIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0Ci0jCi1DT05GSUdfU0VSSUFMX1BYQT15Ci1DT05GSUdfU0VSSUFMX1BYQV9DT05TT0xFPXkKLUNPTkZJR19TRVJJQUxfQ09SRT15Ci1DT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15Ci1DT05GSUdfVU5JWDk4X1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgotCi0jCi0jIElQTUkKLSMKLSMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPW0KLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAotCi0jCi0jIFRQTSBkZXZpY2VzCi0jCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKLSMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLQotIwotIyBEYWxsYXMncyAxLXdpcmUgYnVzCi0jCi0jIENPTkZJR19XMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19IV01PTiBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzYyBkZXZpY2VzCi0jCi0KLSMKLSMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIwotIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi0KLSMKLSMgTEVEIFRyaWdnZXJzCi0jCi0KLSMKLSMgTXVsdGltZWRpYSBkZXZpY2VzCi0jCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKLQotIwotIyBHcmFwaGljcyBzdXBwb3J0Ci0jCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAotCi0jCi0jIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci1DT05GSUdfRkI9eQotIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9EREMgaXMgbm90IHNldAotQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15Ci1DT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKLUNPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKLSMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfREVGRVJSRURfSU89eQotIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0Ci0KLSMKLSMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKLSMKLSMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKLUNPTkZJR19GQl9QWEE9eQotIyBDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTUJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAotCi0jCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQotIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GT05UUyBpcyBub3Qgc2V0Ci1DT05GSUdfRk9OVF84eDg9eQotQ09ORklHX0ZPTlRfOHgxNj15Ci1DT05GSUdfTE9HTz15Ci1DT05GSUdfTE9HT19MSU5VWF9NT05PPXkKLUNPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKLUNPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQotCi0jCi0jIFNvdW5kCi0jCi1DT05GSUdfU09VTkQ9bQotCi0jCi0jIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQotIwotQ09ORklHX1NORD1tCi1DT05GSUdfU05EX1RJTUVSPW0KLUNPTkZJR19TTkRfUENNPW0KLSMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAotQ09ORklHX1NORF9PU1NFTVVMPXkKLUNPTkZJR19TTkRfTUlYRVJfT1NTPW0KLUNPTkZJR19TTkRfUENNX09TUz1tCi1DT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15Ci0jIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQotQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15Ci0jIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBHZW5lcmljIGRldmljZXMKLSMKLUNPTkZJR19TTkRfQUM5N19DT0RFQz1tCi0jIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAotCi0jCi0jIEFMU0EgQVJNIGRldmljZXMKLSMKLUNPTkZJR19TTkRfUFhBMlhYX1BDTT1tCi1DT05GSUdfU05EX1BYQTJYWF9BQzk3PW0KLQotIwotIyBVU0IgZGV2aWNlcwotIwotIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKLQotIwotIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0Ci0jCi0jIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKLQotIwotIyBPcGVuIFNvdW5kIFN5c3RlbQotIwotIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAotQ09ORklHX0FDOTdfQlVTPW0KLQotIwotIyBISUQgRGV2aWNlcwotIwotQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBJbnB1dCBEZXZpY2VzCi0jCi1DT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIwotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfT0hDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15Ci0jIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAotCi0jCi0jIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKLSMKLQotIwotIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCi0jCi1DT05GSUdfVVNCX1NUT1JBR0U9eQotIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSW1hZ2luZyBkZXZpY2VzCi0jCi0jIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgcG9ydCBkcml2ZXJzCi0jCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycwotIwotIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAotQ09ORklHX01NQz1tCi0jIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAotCi0jCi0jIE1NQy9TRCBDYXJkIERyaXZlcnMKLSMKLUNPTkZJR19NTUNfQkxPQ0s9bQotCi0jCi0jIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotQ09ORklHX01NQ19QWEE9bQotCi0jCi0jIFJlYWwgVGltZSBDbG9jawotIwotQ09ORklHX1JUQ19MSUI9eQotQ09ORklHX1JUQ19DTEFTUz1tCi0KLSMKLSMgUlRDIGludGVyZmFjZXMKLSMKLUNPTkZJR19SVENfSU5URl9TWVNGUz15Ci1DT05GSUdfUlRDX0lOVEZfUFJPQz15Ci1DT05GSUdfUlRDX0lOVEZfREVWPXkKLSMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIEkyQyBSVEMgZHJpdmVycwotIwotCi0jCi0jIFNQSSBSVEMgZHJpdmVycwotIwotCi0jCi0jIFBsYXRmb3JtIFJUQyBkcml2ZXJzCi0jCi0jIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfVjMwMjA9bQotCi0jCi0jIG9uLUNQVSBSVEMgZHJpdmVycwotIwotQ09ORklHX1JUQ19EUlZfU0ExMTAwPW0KLQotIwotIyBGaWxlIHN5c3RlbXMKLSMKLUNPTkZJR19FWFQyX0ZTPXkKLSMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAotQ09ORklHX0VYVDNfRlM9eQotQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19GU19NQkNBQ0hFPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAotQ09ORklHX0lOT1RJRlk9eQotQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15Ci0jIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCi0jCi0jIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcwotIwotQ09ORklHX0ZBVF9GUz15Ci1DT05GSUdfTVNET1NfRlM9eQotQ09ORklHX1ZGQVRfRlM9eQotQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwotQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgUHNldWRvIGZpbGVzeXN0ZW1zCi0jCi1DT05GSUdfUFJPQ19GUz15Ci1DT05GSUdfUFJPQ19TWVNDVEw9eQotQ09ORklHX1NZU0ZTPXkKLUNPTkZJR19UTVBGUz15Ci0jIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15Ci0jIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwotIwotIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0Ci1DT05GSUdfSkZGUzJfRlM9eQotQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKLUNPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15Ci1DT05GSUdfSkZGUzJfU1VNTUFSWT15Ci0jIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKLUNPTkZJR19KRkZTMl9aTElCPXkKLUNPTkZJR19KRkZTMl9SVElNRT15Ci0jIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAotIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAotQ09ORklHX1NNQl9GUz15Ci0jIENPTkZJR19TTUJfTkxTX0RFRkFVTFQgaXMgbm90IHNldAotIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfOVBfRlMgaXMgbm90IHNldAotCi0jCi0jIFBhcnRpdGlvbiBUeXBlcwotIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCi1DT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgotQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQotIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMT15Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX1VURjg9eQotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwotIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLQotIwotIyBQcm9maWxpbmcgc3VwcG9ydAotIwotIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKLQotIwotIyBLZXJuZWwgaGFja2luZwotIwotIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAotQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKLUNPTkZJR19NQUdJQ19TWVNSUT15Ci0jIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19LRVJORUw9eQotIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAotIyBDT05GSUdfREVURUNUX1NPRlRMT0NLVVAgaXMgbm90IHNldAotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0lORk89eQotIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15Ci1DT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKLSMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19VU0VSPXkKLUNPTkZJR19ERUJVR19FUlJPUlM9eQotQ09ORklHX0RFQlVHX0xMPXkKLSMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VjdXJpdHkgb3B0aW9ucwotIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci0KLSMKLSMgQ3J5cHRvZ3JhcGhpYyBvcHRpb25zCi0jCi1DT05GSUdfQ1JZUFRPPXkKLUNPTkZJR19DUllQVE9fQUxHQVBJPW0KLUNPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KLUNPTkZJR19DUllQVE9fTUFOQUdFUj1tCi0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz1tCi1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19BRVM9bQotIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQVJDND1tCi0jIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLQotIwotIyBIYXJkd2FyZSBjcnlwdG8gZGV2aWNlcwotIwotCi0jCi0jIExpYnJhcnkgcm91dGluZXMKLSMKLUNPTkZJR19CSVRSRVZFUlNFPXkKLSMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAotQ09ORklHX0NSQzMyPXkKLSMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0Ci1DT05GSUdfWkxJQl9JTkZMQVRFPXkKLUNPTkZJR19aTElCX0RFRkxBVEU9eQotQ09ORklHX1BMSVNUPXkKLUNPTkZJR19IQVNfSU9NRU09eQotQ09ORklHX0hBU19JT1BPUlQ9eQotQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnCmluZGV4IDI0YTcwMWEuLjIxYWEwMTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWcKQEAgLTE4NCw3ICsxODQsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lc2VyaWVzX3B4YV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZwppbmRleCBlZDQ4N2I5Li40OTNlY2VlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZwpAQCAtMjUxLDcgKzI1MSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKIENPTkZJR19BRUFCST15CiBDT05GSUdfT0FCSV9DT01QQVQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pbXgyN2Fkc19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2lteDI3YWRzX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2Q5NWI4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9pbXgyN2Fkc19kZWZjb25maWcKQEAgLTAsMCArMSw4MjYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjoyOTozNCAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKKyMgQ09ORklHX0lPU0NIRURfQVMgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfTk9PUD15CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJub29wIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01YQz15CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBGcmVlc2NhbGUgTVhDIEltcGxlbWVudGF0aW9ucworIworQ09ORklHX0FSQ0hfTVgyPXkKKyMgQ09ORklHX0FSQ0hfTVgzIGlzIG5vdCBzZXQKKworIworIyBNWDIgZmFtaWx5IENQVSBzdXBwb3J0CisjCitDT05GSUdfTUFDSF9NWDI3PXkKKworIworIyBNWDIgUGxhdGZvcm1zCisjCitDT05GSUdfTUFDSF9NWDI3QURTPXkKKyMgQ09ORklHX01BQ0hfUENNMDM4IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CisjIENPTkZJR19NVERfQ0ZJX0FNRFNURCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVA9eQorQ09ORklHX01URF9QSFlTTUFQX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTIKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKKyMgQ09ORklHX01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUNfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKKyMgQ09ORklHX1NFUklBTF9JTVggaXMgbm90IHNldAorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorQ09ORklHX0hBVkVfR1BJT19MSUI9eQorCisjCisjIEdQSU8gU3VwcG9ydAorIworCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9bQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPW0KKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMTU9bQorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2lvcDEzeHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AxM3h4X2RlZmNvbmZpZwppbmRleCA5ODhiNGQxLi40ODJlNTcwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2lvcDEzeHhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMTN4eF9kZWZjb25maWcKQEAgLTE5Nyw3ICsxOTcsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pb3AzMnhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzMnhfZGVmY29uZmlnCmluZGV4IDgzZjQwZDQuLjg2MTJmNTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzJ4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lvcDMyeF9kZWZjb25maWcKQEAgLTIwMSw3ICsyMDEsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pb3AzM3hfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzM3hfZGVmY29uZmlnCmluZGV4IDkxN2FmYjUuLjhiMDA5OGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzN4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lvcDMzeF9kZWZjb25maWcKQEAgLTE5Nyw3ICsxOTcsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9peHAyMDAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjAwMF9kZWZjb25maWcKaW5kZXggZjhmOTc5My4uODQ2ODBkYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9peHAyMDAwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2l4cDIwMDBfZGVmY29uZmlnCkBAIC0xODQsNyArMTg0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjN4eF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2l4cDIzeHhfZGVmY29uZmlnCmluZGV4IDI3Y2YwMjIuLjRhMmY3YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjN4eF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9peHAyM3h4X2RlZmNvbmZpZwpAQCAtMTgwLDcgKzE4MCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWcKaW5kZXggZWZhMDQ4NS4uZmMxNDkzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZwpAQCAtMTY1LDYgKzE2NSw3IEBACiBDT05GSUdfTUFDSF9OQVMxMDBEPXkKIENPTkZJR19NQUNIX0RTTUc2MDA9eQogQ09ORklHX0FSQ0hfSVhEUDRYWD15CitDT05GSUdfTUFDSF9GU0c9eQogQ09ORklHX0NQVV9JWFA0Nlg9eQogQ09ORklHX0NQVV9JWFA0M1g9eQogQ09ORklHX01BQ0hfR1RXWDU3MTU9eQpAQCAtNzcwLDcgKzc3MSw3IEBACiAjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1ZJQT15CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0CkBAIC0xMTQzLDcgKzExNDQsNyBAQAogIyBDT05GSUdfU0VOU09SU19WSUE2ODZBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVlQ4MjMxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19XODM3ODFEPXkKICMgQ09ORklHX1NFTlNPUlNfVzgzNzkxRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldApAQCAtMTMzNCw4ICsxMzM1LDggQEAKICMKICMgTEVEIGRyaXZlcnMKICMKLSMgQ09ORklHX0xFRFNfSVhQNFhYIGlzIG5vdCBzZXQKIENPTkZJR19MRURTX0dQSU89eQorQ09ORklHX0xFRFNfRlNHPXkKIAogIwogIyBMRUQgVHJpZ2dlcnMKQEAgLTEzNjcsNyArMTM2OCw3IEBACiAjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9JU0wxMjA4PXkKIENPTkZJR19SVENfRFJWX1gxMjA1PXkKIENPTkZJR19SVENfRFJWX1BDRjg1NjM9eQogIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3Mva2FmYV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2thZmFfZGVmY29uZmlnCmluZGV4IGFlNTFhNDAuLjZkZDk1YTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mva2FmYV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9rYWZhX2RlZmNvbmZpZwpAQCAtMTYyLDcgKzE2Miw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9rYjkyMDJfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9rYjkyMDJfZGVmY29uZmlnCmluZGV4IGMxNjUzN2QuLjhlNzRjNjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mva2I5MjAyX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2tiOTIwMl9kZWZjb25maWcKQEAgLTEyNiw3ICsxMjYsNiBAQAogIwogIyBLZXJuZWwgRmVhdHVyZXMKICMKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2tpcmt3b29kX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mva2lya3dvb2RfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMzU3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL2tpcmt3b29kX2RlZmNvbmZpZwpAQCAtMCwwICsxLDE0MjYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgU3VuIEp1biAyMiAxNTo1MToyNSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9LSVJLV09PRD15CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xPS0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NVjc4WFgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgTWFydmVsbCBLaXJrd29vZCBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19NQUNIX0RCODhGNjI4MV9CUD15CitDT05GSUdfTUFDSF9SRDg4RjYxOTJfTkFTPXkKK0NPTkZJR19NQUNIX1JEODhGNjI4MT15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworQ09ORklHX1BMQVRfT1JJT049eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfRkVST0NFT049eQorIyBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorQ09ORklHX09VVEVSX0NBQ0hFPXkKK0NPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMj15CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKK0NPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9TWVNDQUxMPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0iIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdFTj1tCisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPXkKKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKK0NPTkZJR19NVERfSkVERUNQUk9CRT15CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1NUQUE9eQorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lOVEVMX1ZSX05PUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfUE1DNTUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorQ09ORklHX01URF9NMjVQODA9eQorQ09ORklHX00yNVBYWF9VU0VfRkFTVF9SRUFEPXkKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURT15CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0NIUl9ERVZfU0c9bQorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDNzlYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EUFRfSTJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQzI4SjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9UVUxJUCBpcyBub3Qgc2V0CisjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ0k9eQorIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAorIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAorIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAorIyBDT05GSUdfODEzOVRPTyBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAorIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CitDT05GSUdfRTEwMDA9eQorQ09ORklHX0UxMDAwX05BUEk9eQorIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAorIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CisjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CisjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CisjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CisjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CitDT05GSUdfTVY2NDNYWF9FVEg9eQorIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UUiBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERVZLTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCitDT05GSUdfU0VSSUFMXzgyNTA9eQorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CitDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0yCisjIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9eQorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1NjMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDc1NiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1EODExMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgwMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUElJWDQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUFJPU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzU1OTUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0kyQ19NVjY0WFhYPXkKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX1NQSV9PUklPTj15CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhDSV9IQ0Q9eQorQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKK0NPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRD15CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9eQorQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EUENNPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9eQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NT15CitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0lTVVNCVkdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKKyMgQ09ORklHX0xFRFNfQ0xBU1MgaXMgbm90IHNldAorCisjCisjIExFRCBkcml2ZXJzCisjCisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCisjIENPTkZJR19MRURTX1RSSUdHRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfTVY9eQorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1I5NzAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX0RNQURFVklDRVM9eQorCisjCisjIERNQSBEZXZpY2VzCisjCitDT05GSUdfTVZfWE9SPXkKK0NPTkZJR19ETUFfRU5HSU5FPXkKKworIworIyBETUEgQ2xpZW50cworIworIyBDT05GSUdfTkVUX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GUz15CisjIENPTkZJR19FWFQzX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorQ09ORklHX0pCRD15CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKK0NPTkZJR19YRlNfRlM9eQorIyBDT05GSUdfWEZTX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19JU085NjYwX0ZTPXkKK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKKyMgQ09ORklHX0JTRF9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTklYV0FSRV9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1VOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LQVJNQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CitDT05GSUdfTkxTX0lTTzg4NTlfMj15CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorQ09ORklHX05MU19VVEY4PXkKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CitDT05GSUdfTUFHSUNfU1lTUlE9eQorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CisjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19QUkVFTVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKK0NPTkZJR19ERUJVR19FUlJPUlM9eQorIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQVNZTkNfQ09SRT15CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPW0KK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19IVz15CisjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorQ09ORklHX0NSQ19DQ0lUVD15CitDT05GSUdfQ1JDMTY9eQorQ09ORklHX0NSQ19JVFVfVD1tCitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CitDT05GSUdfTElCQ1JDMzJDPXkKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2tzODY5NV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2tzODY5NV9kZWZjb25maWcKaW5kZXggOGFiMjFhMC4uNjA3N2YyYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9rczg2OTVfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mva3M4Njk1X2RlZmNvbmZpZwpAQCAtMTc0LDcgKzE3NCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2xva2lfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9sb2tpX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2RhN2MzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9sb2tpX2RlZmNvbmZpZwpAQCAtMCwwICsxLDExNDcgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAwMzowNzo0OSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LSVJLV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9MT0tJPXkKKyMgQ09ORklHX0FSQ0hfTVY3OFhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIEltcGxlbWVudGF0aW9ucworIworQ09ORklHX01BQ0hfTEI4OFJDODQ4MD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworQ09ORklHX1BMQVRfT1JJT049eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfRkVST0NFT049eQorIyBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9IiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworIyBDT05GSUdfRlBFX05XRlBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKK0NPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dJUkVMRVNTX0VYVD15CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj15CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CitDT05GSUdfRlRMPXkKK0NPTkZJR19ORlRMPXkKKyMgQ09ORklHX05GVExfUlcgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKK0NPTkZJR19NVERfSkVERUNQUk9CRT15CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CitDT05GSUdfTVREX0NGSV9JND15CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PVFAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSU5URUxFWFQ9eQorQ09ORklHX01URF9DRklfQU1EU1REPXkKK0NPTkZJR19NVERfQ0ZJX1NUQUE9eQorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX0RBVEFGTEFTSCBpcyBub3Qgc2V0CitDT05GSUdfTVREX00yNVA4MD15CitDT05GSUdfTTI1UFhYX1VTRV9GQVNUX1JFQUQ9eQorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CitDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFPXkKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAorCisjCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CisjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9TUj1tCisjIENPTkZJR19CTEtfREVWX1NSX1ZFTkRPUiBpcyBub3Qgc2V0CitDT05GSUdfQ0hSX0RFVl9TRz1tCisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCisjIENPTkZJR19TQ1NJX01VTFRJX0xVTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CitDT05GSUdfQVRBX1NGRj15CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQzI4SjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorQ09ORklHX05FVERFVl8xMDAwPXkKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKK0NPTkZJR19NVjY0M1hYX0VUSD15CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKK0NPTkZJR19JTlBVVF9NT1VTRURFVj15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkRFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCitDT05GSUdfU0VSSUFMXzgyNTA9eQorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTQKK0NPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTIKKyMgQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009bQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0kyQ19NVjY0WFhYPXkKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9eQorQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EUENNPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9eQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NT15CitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CisjIENPTkZJR19MRURTX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBMRUQgZHJpdmVycworIworCisjCisjIExFRCBUcmlnZ2VycworIworIyBDT05GSUdfTEVEU19UUklHR0VSUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorIyBDT05GSUdfRVhUM19GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CitDT05GSUdfWEZTX0ZTPXkKKyMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfSVNPOTY2MF9GUz15CisjIENPTkZJR19KT0xJRVQgaXMgbm90IHNldAorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKK0NPTkZJR19NSU5JWF9TVUJQQVJUSVRJT049eQorQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTj15CitDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMPXkKK0NPTkZJR19MRE1fUEFSVElUSU9OPXkKK0NPTkZJR19MRE1fREVCVUc9eQorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TVU5fUEFSVElUSU9OPXkKKyMgQ09ORklHX0tBUk1BX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKK0NPTkZJR19OTFNfSVNPODg1OV8yPXkKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9bQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19NQU5BR0VSPW0KKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz1tCisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0NDSVRUPXkKK0NPTkZJR19DUkMxNj15CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKK0NPTkZJR19MSUJDUkMzMkM9eQorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbHBkMjcwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbHBkMjcwX2RlZmNvbmZpZwppbmRleCBhM2JmNTgzLi4xYTM4ZDhlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2xwZDI3MF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9scGQyNzBfZGVmY29uZmlnCkBAIC0xNzMsNyArMTczLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbHBkN2E0MDRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKaW5kZXggNDZhMGY3Zi4uN2EyZTkzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKQEAgLTE0OCw3ICsxNDgsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRT15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzhlYmY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDE0NDUgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAwMjo1NzozMiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfQUxMPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS0lSS1dPT0QgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MT0tJIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01WNzhYWDA9eQorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBNYXJ2ZWxsIE1WNzh4eDAgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfTUFDSF9EQjc4WDAwX0JQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCitDT05GSUdfUExBVF9PUklPTj15CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorQ09ORklHX09VVEVSX0NBQ0hFPXkKK0NPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMj15CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKK0NPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9TWVNDQUxMPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9IiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKK0NPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorQ09ORklHX01URF9KRURFQ1BST0JFPXkKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lOVEVMX1ZSX05PUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfUE1DNTUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURT15CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19NSVNDX0RFVklDRVM9eQorIyBDT05GSUdfUEhBTlRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAorIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0NIUl9ERVZfU0c9bQorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDNzlYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EUFRfSTJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9UVUxJUCBpcyBub3Qgc2V0CisjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ0k9eQorIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAorIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAorIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAorIyBDT05GSUdfODEzOVRPTyBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAorIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CisjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAorIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CisjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLWTIgaXMgbm90IHNldAorIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKK0NPTkZJR19NVjY0M1hYX0VUSD15CisjIENPTkZJR19RTEEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTDEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RSIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCisjIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworQ09ORklHX1NFUklBTF84MjUwPXkKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAorQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9MgorIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZQT1JUPXkKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNVgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ3NTYgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MDEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVY2NFhYWD15CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKK0NPTkZJR19IV01PTj15CisjIENPTkZJR19IV01PTl9WSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRDc0MTggaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTkyNDAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFQ3NDcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FUWFAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRFMxNjIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfSTVLX0FNQiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4ODJGRyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3NTM3NVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE03NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNNzcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTc4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE04NyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDE2MTkgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2NjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDODc0MjcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRE1FMTczNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFM3ODI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVEhNQzUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVklBNjg2QSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZUMTIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZUODIzMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkyRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODVUUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODZORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4MzYyN0hGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9FSENJX0hDRD15CitDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQorQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEPXkKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1BSSU5URVI9eQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQj15CitDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RQQ009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOT15CitDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1PXkKK0NPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD15CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT04gaXMgbm90IHNldAorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorCisjCisjIExFRCBkcml2ZXJzCisjCisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0RTMTMwNz15CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfUlM1QzM3Mj15CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX000MVQ4MD15CisjIENPTkZJR19SVENfRFJWX000MVQ4MF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GUz15CisjIENPTkZJR19FWFQzX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorQ09ORklHX0pCRD15CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19JU085NjYwX0ZTPW0KK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorQ09ORklHX05MU19JU084ODU5XzI9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CitDT05GSUdfTUFHSUNfU1lTUlE9eQorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorQ09ORklHX1NDSEVEU1RBVFM9eQorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUFJFRU1QVD15CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GTz15CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST1tCitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVI9bQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9teDMxYWRzX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWFkc19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1MjcxNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWFkc19kZWZjb25maWcKQEAgLTAsMCArMSw4MzkgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjoyMToxMSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQorQ09ORklHX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVhDPXkKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zCisjCisjIENPTkZJR19BUkNIX01YMiBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWDM9eQorCisjCisjIE1YMyBPcHRpb25zCisjCitDT05GSUdfTUFDSF9NWDMxQURTPXkKKyMgQ09ORklHX01BQ0hfUENNMDM3IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX1Y2PXkKKyMgQ09ORklHX0NQVV8zMnY2SyBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjY9eQorQ09ORklHX0NQVV9BQlJUX0VWNj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1Y2PXkKK0NPTkZJR19DUFVfQ0FDSEVfVklQVD15CitDT05GSUdfQ1BVX0NPUFlfVjY9eQorQ09ORklHX0NQVV9UTEJfVjY9eQorQ09ORklHX0NQVV9IQVNfQVNJRD15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0JQUkVESUNUX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibm9pbml0cmQgY29uc29sZT10dHlteGMwLDExNTIwMCByb290PS9kZXYvbXRkYmxvY2syIHJ3IGlwPW9mZiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1VOSVg9eQorQ09ORklHX1hGUk09eQorIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorQ09ORklHX01URF9SRURCT09UX1BBUlRTPXkKK0NPTkZJR19NVERfUkVEQk9PVF9ESVJFQ1RPUllfQkxPQ0s9LTEKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1VOQUxMT0NBVEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CisjIENPTkZJR19NVERfQ0ZJX0kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSU5URUxFWFQgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfQU1EU1REPXkKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9VVElMPXkKK0NPTkZJR19NVERfUkFNPXkKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhZU01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9JTVg9eQorQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorQ09ORklHX0hBVkVfR1BJT19MSUI9eQorCisjCisjIEdQSU8gU3VwcG9ydAorIworCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworQ09ORklHX1BSSU5US19USU1FPXkKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKKyMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL214MzFsaXRla2l0X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWxpdGVraXRfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNDFjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL214MzFsaXRla2l0X2RlZmNvbmZpZwpAQCAtMCwwICsxLDExMDAgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAxNDoyMzozOSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFMgaXMgbm90IHNldAorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CitDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CitDT05GSUdfTU9EVkVSU0lPTlM9eQorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMz15CisKKyMKKyMgTVgzIE9wdGlvbnMKKyMKKyMgQ09ORklHX01BQ0hfTVgzMUFEUyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9NWDMxTElURT15CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9WNj15CisjIENPTkZJR19DUFVfMzJ2NksgaXMgbm90IHNldAorQ09ORklHX0NQVV8zMnY2PXkKK0NPTkZJR19DUFVfQUJSVF9FVjY9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WNj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJUFQ9eQorQ09ORklHX0NQVV9DT1BZX1Y2PXkKK0NPTkZJR19DUFVfVExCX1Y2PXkKK0NPTkZJR19DUFVfSEFTX0FTSUQ9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9CUFJFRElDVF9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorQ09ORklHX1BDQ0FSRD1tCisjIENPTkZJR19QQ01DSUFfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBIGlzIG5vdCBzZXQKKworIworIyBQQy1jYXJkIGJyaWRnZXMKKyMKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CitDT05GSUdfUFJFRU1QVD15CisjIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJub2luaXRyZCBjb25zb2xlPXR0eW14YzAsMTE1MjAwIHJvb3Q9L2Rldi9tdGRibG9jazIgcncgaXA9b2ZmIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfVkZQPXkKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKK0NPTkZJR19CSU5GTVRfQU9VVD15CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUE09eQorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19BUE1fRU1VTEFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CisjIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CisjIENPTkZJR19JUF9QTlBfQk9PVFAgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPW0KKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKK0NPTkZJR19NVERfUkVEQk9PVF9QQVJUUz15CitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CitDT05GSUdfTVREX1JBTT15CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIWVNNQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCitDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPXkKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfV0FUQ0hET0c9eQorQ09ORklHX1dBVENIRE9HX05PV0FZT1VUPXkKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCitDT05GSUdfVklERU9fREVWPXkKK0NPTkZJR19WSURFT19WNEwyX0NPTU1PTj15CitDT05GSUdfVklERU9fQUxMT1dfVjRMMT15CitDT05GSUdfVklERU9fVjRMMV9DT01QQVQ9eQorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPXkKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fVjRMMj15CitDT05GSUdfVklERU9fVjRMMT15CitDT05GSUdfVklERU9fQ0FQVFVSRV9EUklWRVJTPXkKKyMgQ09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fSEVMUEVSX0NISVBTX0FVVE89eQorIyBDT05GSUdfVklERU9fVklWSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19DUElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0NQSUEyIGlzIG5vdCBzZXQKK0NPTkZJR19WNExfVVNCX0RSSVZFUlM9eQorIyBDT05GSUdfVVNCX1ZJQ0FNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JQk1DQU0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tPTklDQVdDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9RVUlDS0NBTV9NRVNTRU5HRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VUNjFYMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVjUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0U0MDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NOOUMxMDIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUVjY4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkMwMzAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QV0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pSMzY0WFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUS1dFQkNBTSBpcyBub3Qgc2V0CisjIENPTkZJR19TT0NfQ0FNRVJBIGlzIG5vdCBzZXQKK0NPTkZJR19SQURJT19BREFQVEVSUz15CisjIENPTkZJR19VU0JfRFNCUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0k0NzBYIGlzIG5vdCBzZXQKK0NPTkZJR19EQUI9eQorIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NT0RFX0hFTFBFUlMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKKworIworIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAorQ09ORklHX0ZPTlRfOHg4PXkKK0NPTkZJR19GT05UXzh4MTY9eQorQ09ORklHX0xPR089eQorIyBDT05GSUdfTE9HT19MSU5VWF9NT05PIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR09fTElOVVhfVkdBMTYgaXMgbm90IHNldAorQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKKyMgQ09ORklHX1VTQl9ERVZJQ0VGUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworIyBDT05GSUdfVVNCX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworQ09ORklHX1BSSU5US19USU1FPXkKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUFJFRU1QVD15CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfQ0NJVFQ9bQorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9uZXR4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbmV0eF9kZWZjb25maWcKaW5kZXggNTdmMzJmMy4uMDg4NGYyMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9uZXR4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL25ldHhfZGVmY29uZmlnCkBAIC0xNTQsNyArMTU0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL29uZWFybV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL29uZWFybV9kZWZjb25maWcKaW5kZXggNjUwYTI0OC4uNDE4Y2EyZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9vbmVhcm1fZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvb25lYXJtX2RlZmNvbmZpZwpAQCAtMjAyLDcgKzIwMiw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZwppbmRleCA1MmNkOTliLi45NTc4YjVkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKLSMgVGh1IEZlYiAgNyAxNDoxMDozMCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIE1vbiBKdW4gIDIgMjM6NTQ6NDggMjAwOAogIwogQ09ORklHX0FSTT15CiBDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQpAQCAtMjEsNiArMjEsNyBAQAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQogQ09ORklHX1pPTkVfRE1BPXkKIENPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAogQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKQEAgLTQwLDI0ICs0MSwyNCBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CiBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1VJRDE2PXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKK0NPTkZJR19LQUxMU1lNU19BTEw9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTczLDIwICs3NCwyNSBAQAogQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CiAjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKICMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKLSMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15Ci1DT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTExMSw3ICsxMTcsNiBAQAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKIENPTkZJR19DTEFTU0lDX1JDVT15Ci0jIENPTkZJR19QUkVFTVBUX1JDVSBpcyBub3Qgc2V0CiAKICMKICMgU3lzdGVtIFR5cGUKQEAgLTE2MCw2ICsxNjUsMTUgQEAKIENPTkZJR19NQUNIX0tVUk9CT1hfUFJPPXkKIENPTkZJR19NQUNIX0ROUzMyMz15CiBDT05GSUdfTUFDSF9UUzIwOT15CitDT05GSUdfTUFDSF9MSU5LU1RBVElPTl9QUk89eQorQ09ORklHX01BQ0hfVFM0MDk9eQorQ09ORklHX01BQ0hfV1JUMzUwTl9WMj15CitDT05GSUdfTUFDSF9UUzc4WFg9eQorQ09ORklHX01BQ0hfTVYyMTIwPXkKK0NPTkZJR19NQUNIX01TUzI9eQorQ09ORklHX01BQ0hfV05SODU0VD15CitDT05GSUdfTUFDSF9SRDg4RjUxODFMX0dFPXkKK0NPTkZJR19NQUNIX1JEODhGNTE4MUxfRlhPPXkKIAogIwogIyBCb290IG9wdGlvbnMKQEAgLTE2OCw2ICsxODIsNyBAQAogIwogIyBQb3dlciBtYW5hZ2VtZW50CiAjCitDT05GSUdfUExBVF9PUklPTj15CiAKICMKICMgUHJvY2Vzc29yIFR5cGUKQEAgLTE3Nyw4ICsxOTIsOSBAQAogQ09ORklHX0NQVV9GRVJPQ0VPTl9PTERfSUQ9eQogQ09ORklHX0NQVV8zMnY1PXkKIENPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKIENPTkZJR19DUFVfQ0FDSEVfVklWVD15Ci1DT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX0NPUFlfRkVST0NFT049eQogQ09ORklHX0NQVV9UTEJfVjRXQkk9eQogQ09ORklHX0NQVV9DUDE1PXkKIENPTkZJR19DUFVfQ1AxNV9NTVU9eQpAQCAtMTg5LDcgKzIwNSw2IEBACiBDT05GSUdfQVJNX1RIVU1CPXkKICMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAogIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAogCiAjCkBAIC0xOTksNiArMjE0LDcgQEAKIENPTkZJR19QQ0lfU1lTQ0FMTD15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtMjIxLDYgKzIzNyw3IEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKQEAgLTIzOCw3ICsyNTUsNiBAQAogQ09ORklHX0NNRExJTkU9IiIKICMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotIyBDT05GSUdfQVRBR1NfUFJPQyBpcyBub3Qgc2V0CiAKICMKICMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCkBAIC0zMTEsOCArMzI3LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTMzNSw2ICszNDksNyBAQAogIyBOZXR3b3JrIHRlc3RpbmcKICMKIENPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CkBAIC0zNjIsNiArMzc3LDggQEAKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogQ09ORklHX01URD15CkBAIC0zNzEsNiArMzg4LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC0zNzgsOSArMzk2LDggQEAKIENPTkZJR19NVERfQ0hBUj15CiBDT05GSUdfTVREX0JMS0RFVlM9eQogQ09ORklHX01URF9CTE9DSz15Ci1DT05GSUdfRlRMPXkKLUNPTkZJR19ORlRMPXkKLSMgQ09ORklHX05GVExfUlcgaXMgbm90IHNldAorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAogIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAogIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CkBAIC00MDUsMTIgKzQyMiwxMiBAQAogIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ0ZJX0kxPXkKIENPTkZJR19NVERfQ0ZJX0kyPXkKLUNPTkZJR19NVERfQ0ZJX0k0PXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKIENPTkZJR19NVERfQ0ZJX0FNRFNURD15Ci1DT05GSUdfTVREX0NGSV9TVEFBPXkKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NGSV9VVElMPXkKICMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAogIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CkBAIC00ODEsNiArNDk4LDkgQEAKICMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0CiAjIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCiAjIFNDU0kgZGV2aWNlIHN1cHBvcnQKQEAgLTU0Miw2ICs1NjIsNyBAQAogIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldApAQCAtNTU2LDcgKzU3NywxMCBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX01WPXkKQEAgLTU2Niw3ICs1OTAsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldApAQCAtNjExLDYgKzYzNCw3IEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCkBAIC02NTIsNyArNjc2LDcgQEAKICMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiAjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAotQ09ORklHX0UxMDA9eQorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAogIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CkBAIC02NjgsOSArNjkyLDcgQEAKIENPTkZJR19ORVRERVZfMTAwMD15CiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0Ci1DT05GSUdfRTEwMDA9eQotQ09ORklHX0UxMDAwX05BUEk9eQotIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDAgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKICMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CkBAIC02ODAsMjcgKzcwMiwxNSBAQAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKICMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0Ci1DT05GSUdfU0tHRT15Ci1DT05GSUdfU0tZMj15Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLR0UgaXMgbm90IHNldAorIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAotQ09ORklHX1RJR09OMz15CisjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CiBDT05GSUdfTVY2NDNYWF9FVEg9eQogIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRERVZfMTAwMDA9eQotIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0IgaXMgbm90IHNldAotIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX05JVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTcwOCw2ICs3MTgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTczOCwxMiArNzQ5LDkgQEAKICMKICMgVXNlcmxhbmQgaW50ZXJmYWNlcwogIwotQ09ORklHX0lOUFVUX01PVVNFREVWPXkKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAotQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CiAjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTc2NSwxMCArNzczLDggQEAKICMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKLUNPTkZJR19WVD15Ci1DT05GSUdfVlRfQ09OU09MRT15Ci1DT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTc3Nyw3ICs3ODMsNyBAQAogIwogQ09ORklHX1NFUklBTF84MjUwPXkKIENPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKLUNPTkZJR19TRVJJQUxfODI1MF9QQ0k9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUENJIGlzIG5vdCBzZXQKIENPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CiBDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0yCiAjIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CkBAIC03OTIsNyArNzk4LDcgQEAKIENPTkZJR19MRUdBQ1lfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKLUNPTkZJR19IV19SQU5ET009bQorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKQEAgLTgwNCwxMyArODEwLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTgzNyw2ICs4MzYsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogQ09ORklHX0kyQ19NVjY0WFhYPXkKIAogIwpAQCAtODQ3LDE5ICs4NDcsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTg3Miw2ICs4NjYsNyBAQAogIyBDT05GSUdfU0VOU09SU19BRE0xMDMxIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfQURNOTI0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0FEVDc0NzAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFQ3NDczIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfQVRYUDEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19EUzE2MjEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19JNUtfQU1CIGlzIG5vdCBzZXQKQEAgLTkwMSw2ICs4OTYsNyBAQAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURTNzgyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RITUM1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1ZJQTY4NkEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19WVDEyMTEgaXMgbm90IHNldApAQCAtOTEwLDYgKzkwNiw3IEBACiAjIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODNMNzg2TkcgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTl9ERUJVR19DSElQIGlzIG5vdCBzZXQKQEAgLTkyNSwxNCArOTIyLDI0IEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0Ci1DT05GSUdfREFCPXkKLSMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CkBAIC05NDksMTIgKzk1Niw2IEBACiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotCi0jCiAjIFNvdW5kCiAjCiAjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CkBAIC05ODUsMTQgKzk4NiwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRD15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CkBAIC0xMDAzLDYgKzEwMDgsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1BSSU5URVI9eQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTAyMiw3ICsxMDI4LDkgQEAKIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9eQogQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UPXkKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjAsNiArMTA2OCw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogQ09ORklHX05FV19MRURTPXkKQEAgLTEwNjgsNyArMTA3Nyw3IEBACiAjCiAjIExFRCBkcml2ZXJzCiAjCi0jIENPTkZJR19MRURTX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0xFRFNfR1BJTz15CiAKICMKICMgTEVEIFRyaWdnZXJzCkBAIC0xMDc2LDYgKzEwODUsNyBAQAogQ09ORklHX0xFRFNfVFJJR0dFUlM9eQogQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUj15CiBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CitDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT049eQogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtMTEwNSw2ICsxMTE1LDcgQEAKICMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0RSVl9NNDFUODA9eQogIyBDT05GSUdfUlRDX0RSVl9NNDFUODBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CiAKICMKICMgU1BJIFJUQyBkcml2ZXJzCkBAIC0xMTI1LDYgKzExMzYsNyBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC0xMTQwLDE0ICsxMTUyLDExIEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CkBAIC0xMTU1LDggKzExNjQsOCBAQAogIwogIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCiAjCi1DT05GSUdfSVNPOTY2MF9GUz15Ci0jIENPTkZJR19KT0xJRVQgaXMgbm90IHNldAorQ09ORklHX0lTTzk2NjBfRlM9bQorQ09ORklHX0pPTElFVD15CiAjIENPTkZJR19aSVNPRlMgaXMgbm90IHNldAogQ09ORklHX1VERl9GUz1tCiBDT05GSUdfVURGX05MUz15CkBAIC0xMjA1LDggKzEyMTQsMTAgQEAKICMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKIENPTkZJR19DUkFNRlM9eQogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CkBAIC0xMjE0LDcgKzEyMjUsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEyNDEsMTQgKzEyNTEsMTMgQEAKICMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15CiBDT05GSUdfQlNEX0RJU0tMQUJFTD15Ci1DT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKLUNPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQotQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15Ci1DT05GSUdfTERNX1BBUlRJVElPTj15Ci1DT05GSUdfTERNX0RFQlVHPXkKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19TVU5fUEFSVElUSU9OPXkKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CkBAIC0xMzAwLDE1ICsxMzA5LDQ4IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQotIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CitDT05GSUdfU0NIRURTVEFUUz15CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19QUkVFTVBUPXkKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiBDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfVVNFUj15CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKQEAgLTEzMTcsNTAgKzEzNTksNzkgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9bQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPW0KLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldApAQCAtMTM2OSwxMiArMTQ0MCwxNCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15Ci1DT05GSUdfQ1JDX0NDSVRUPXkKLUNPTkZJR19DUkMxNj15Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfSVRVX1Q9bQogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAotQ09ORklHX0xJQkNSQzMyQz15CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAogQ09ORklHX1pMSUJfSU5GTEFURT15CiBDT05GSUdfWkxJQl9ERUZMQVRFPXkKIENPTkZJR19QTElTVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3BjbTAzN19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzN19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI3NDc0NQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGNtMDM3X2RlZmNvbmZpZwpAQCAtMCwwICsxLDc0OCBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNgorIyBXZWQgSnVuIDI1IDExOjUyOjQyIDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfQVJDSF9NVERfWElQPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CitDT05GSUdfSUtDT05GSUc9eQorQ09ORklHX0lLQ09ORklHX1BST0M9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CitDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CitDT05GSUdfTU9EVkVSU0lPTlM9eQorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMz15CisKKyMKKyMgTVgzIE9wdGlvbnMKKyMKKyMgQ09ORklHX01BQ0hfTVgzMUFEUyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9QQ00wMzc9eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfVjY9eQorIyBDT05GSUdfQ1BVXzMydjZLIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfMzJ2Nj15CitDT05GSUdfQ1BVX0FCUlRfRVY2PXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVjY9eQorQ09ORklHX0NQVV9DQUNIRV9WSVBUPXkKK0NPTkZJR19DUFVfQ09QWV9WNj15CitDT05GSUdfQ1BVX1RMQl9WNj15CitDT05GSUdfQ1BVX0hBU19BU0lEPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKK0NPTkZJR19BUk1fVEhVTUI9eQorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQlBSRURJQ1RfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJub2luaXRyZCBjb25zb2xlPXR0eW14YzAsMTE1MjAwIHJvb3Q9L2Rldi9tdGRibG9jazIgcncgaXA9b2ZmIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfVkZQPXkKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKKyMgQ09ORklHX1BNIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKKyMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9HRU5fUFJPQkU9eQorIyBDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX05PU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0yCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorQ09ORklHX1NNQzkxWD15CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfSU1YPXkKK0NPTkZJR19TRVJJQUxfSU1YX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3BjbTAzOF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzOF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI3OThjMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGNtMDM4X2RlZmNvbmZpZwpAQCAtMCwwICsxLDEwMDggQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjozODozNiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19SVF9HUk9VUF9TQ0hFRD15CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CitDT05GSUdfTUFSS0VSUz15CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0NfUEFHRV9NT05JVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CisjIENPTkZJR19JT1NDSEVEX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX05PT1A9eQorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0ibm9vcCIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMj15CisjIENPTkZJR19BUkNIX01YMyBpcyBub3Qgc2V0CisKKyMKKyMgTVgyIGZhbWlseSBDUFUgc3VwcG9ydAorIworQ09ORklHX01BQ0hfTVgyNz15CisKKyMKKyMgTVgyIFBsYXRmb3JtcworIworIyBDT05GSUdfTUFDSF9NWDI3QURTIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1BDTTAzOD15CitDT05GSUdfTUFDSF9QQ005NzBfQkFTRUJPQVJEPXkKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CisjIENPTkZJR19NVERfQ0ZJX0kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9VVElMPXkKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9YSVAgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX01URF9QSFlTTUFQX0xFTj0weDAKK0NPTkZJR19NVERfUEhZU01BUF9CQU5LV0lEVEg9MgorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKKyMgQ09ORklHX01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRU5DMjhKNjAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfRkVDX09MRD15CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDYgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9JTVg9eQorQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0JJVEJBTkc9eQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX01DUDIzUzA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfRUdQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19ERVY9eQorQ09ORklHX1ZJREVPX1Y0TDJfQ09NTU9OPXkKK0NPTkZJR19WSURFT19BTExPV19WNEwxPXkKK0NPTkZJR19WSURFT19WNEwxX0NPTVBBVD15CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fTUVESUE9eQorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfTUVESUFfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUj15CisjIENPTkZJR19NRURJQV9UVU5FUl9DVVNUT01JWkUgaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT15CitDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD15CitDT05GSUdfTUVESUFfVFVORVJfVERBOTg4Nz15CitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2MT15CitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2Nz15CitDT05GSUdfTUVESUFfVFVORVJfTVQyMFhYPXkKK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9eQorQ09ORklHX01FRElBX1RVTkVSX1hDNTAwMD15CitDT05GSUdfVklERU9fVjRMMj15CitDT05GSUdfVklERU9fVjRMMT15CitDT05GSUdfVklERU9fQ0FQVFVSRV9EUklWRVJTPXkKKyMgQ09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fSEVMUEVSX0NISVBTX0FVVE89eQorIyBDT05GSUdfVklERU9fVklWSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19DUElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX1NBQTUyNDZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX1NBQTUyNDkgaXMgbm90IHNldAorIyBDT05GSUdfVFVORVJfMzAzNiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0NfQ0FNRVJBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBRElPX0FEQVBURVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NT0RFX0hFTFBFUlMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKKworIworIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAorQ09ORklHX0ZPTlRTPXkKK0NPTkZJR19GT05UXzh4OD15CisjIENPTkZJR19GT05UXzh4MTYgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF82eDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfN3gxNCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1BFQVJMXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX0FDT1JOXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX01JTklfNHg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfU1VOOHgxNiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjEyeDIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfMTB4MTggaXMgbm90IHNldAorIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1BDRjg1NjM9eQorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0ZNMzEzMCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PW0KKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE1PW0KKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9waWNvdHV4MjAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGljb3R1eDIwMF9kZWZjb25maWcKaW5kZXggOTVhMjJmNS4uMTQ4MjZmMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9waWNvdHV4MjAwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3BpY290dXgyMDBfZGVmY29uZmlnCkBAIC0yMDEsNyArMjAxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLUNPTkZJR19OT19JRExFX0haPXkKIENPTkZJR19IWj0xMDAKIENPTkZJR19BRUFCST15CiBDT05GSUdfT0FCSV9DT01QQVQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9wbng0MDA4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcG54NDAwOF9kZWZjb25maWcKaW5kZXggYjVlMTFhYS4uODExYjhmNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9wbng0MDA4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3BueDQwMDhfZGVmY29uZmlnCkBAIC0xNTEsNyArMTUxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3FpbC1hOTI2MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3FpbC1hOTI2MF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY5MDNiZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcWlsLWE5MjYwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDEyNTYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNAorIyBUdWUgQXByIDE1IDEyOjI4OjM4IDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKKyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CisjIENPTkZJR19JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0FTPXkKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxPXkKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBBdG1lbCBBVDkxIFN5c3RlbS1vbi1DaGlwCisjCisjIENPTkZJR19BUkNIX0FUOTFSTTkyMDAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjA9eQorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTkyNjAgVmFyaWFudHMKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjBfU0FNOVhFIGlzIG5vdCBzZXQKKworIworIyBBVDkxU0FNOTI2MCAvIEFUOTFTQU05WEUgQm9hcmQgVHlwZQorIworIyBDT05GSUdfTUFDSF9BVDkxU0FNOTI2MEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfQ0FNNjAgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9TQU05X0w5MjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfVVNCX0E5MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1FJTF9BOTI2MD15CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisKKyMKKyMgQVQ5MSBGZWF0dXJlIFNlbGVjdGlvbnMKKyMKKyMgQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUyBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9TTE9XX0NMT0NLPXkKK0NPTkZJR19BVDkxX1RJTUVSX0haPTEwMAorIyBDT05GSUdfQVQ5MV9FQVJMWV9EQkdVIGlzIG5vdCBzZXQKK0NPTkZJR19BVDkxX0VBUkxZX1VTQVJUMD15CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMSBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMiBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNSBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKKyMgQ09ORklHX0FSTV9USFVNQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFogaXMgbm90IHNldAorIyBDT05GSUdfSElHSF9SRVNfVElNRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CisjIENPTkZJR19MRURTIGlzIG5vdCBzZXQKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5UzEsMTE1MjAwIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEggaXMgbm90IHNldAorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBfUkFSUD15CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworIyBDT05GSUdfTVREX0NGSSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01URF9EQVRBRkxBU0g9eQorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9BVDkxPXkKK0NPTkZJR19NVERfTkFORF9BVDkxX0VDQ19TT0ZUPXkKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX0hXIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElCPXkKKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKK0NPTkZJR19NQUNCPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CitDT05GSUdfTkVUREVWXzEwMDAwPXkKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorQ09ORklHX0lOUFVUX0VWQlVHPXkKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0dQSU89eQorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9eQorCisjCisjIEkyQyBBbGdvcml0aG1zCisjCisjIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0E5NTM5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAorCisjCisjIFNQSSBzdXBwb3J0CisjCitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQVRNRUw9eQorIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfV0FUQ0hET0c9eQorQ09ORklHX1dBVENIRE9HX05PV0FZT1VUPXkKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxU0FNOV9XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworIyBDT05GSUdfVVNCX0hJRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdfTU1DPXkKKyMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIENhcmQgRHJpdmVycworIworQ09ORklHX01NQ19CTE9DSz15CitDT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15CisjIENPTkZJR19TRElPX1VBUlQgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX01NQ19BVDkxPXkKKyMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfTTQxVDk0PXkKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0FUOTFTQU05IGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorQ09ORklHX0ZVU0VfRlM9bQorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorQ09ORklHX05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND15CisjIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9TVVBQT1JUPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorQ09ORklHX1NVTlJQQ19HU1M9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PXkKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisjIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXctc21wX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXctc21wX2RlZmNvbmZpZwppbmRleCBmYzM5YmExLi4wYzA5YjIzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3LXNtcF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlldy1zbXBfZGVmY29uZmlnCkBAIC0xNzcsNyArMTc3LDYgQEAKIENPTkZJR19IT1RQTFVHX0NQVT15CiBDT05GSUdfTE9DQUxfVElNRVJTPXkKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlld19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZwppbmRleCBhY2NiZjUyLi45MDdlNTQzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZwpAQCAtMTI2LDcgKzEyNiw2IEBACiAjCiAjIEtlcm5lbCBGZWF0dXJlcwogIwotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZwppbmRleCA1ZGRlY2I5Li5mNjJkMTgxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnCkBAIC0xOTAsNyArMTkwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvczNjMjQxMF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3MzYzI0MTBfZGVmY29uZmlnCmluZGV4IGY4YTE2NDUuLjM1ZmFhZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvczNjMjQxMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9zM2MyNDEwX2RlZmNvbmZpZwpAQCAtMSwxNSArMSwxOCBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIxLXJjNgotIyBNb24gQXByICA5IDEwOjEyOjU4IDIwMDcKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzgKKyMgTW9uIEp1bCAgNyAxNjo1OToyMyAyMDA4CiAjCiBDT05GSUdfQVJNPXkKIENPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CiBDT05GSUdfR0VORVJJQ19HUElPPXkKICMgQ09ORklHX0dFTkVSSUNfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTIGlzIG5vdCBzZXQKIENPTkZJR19NTVU9eQogQ09ORklHX05PX0lPUE9SVD15CiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQogQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CiBDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQpAQCAtMTgsMzQgKzIxLDM5IEBACiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CiBDT05GSUdfWk9ORV9ETUE9eQogQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCiBDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgogCiAjCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucworIyBHZW5lcmFsIHNldHVwCiAjCiBDT05GSUdfRVhQRVJJTUVOVEFMPXkKIENPTkZJR19CUk9LRU5fT05fU01QPXkKIENPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCiBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQotIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19JS0NPTkZJRz1tCitDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNgorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CitDT05GSUdfTkFNRVNQQUNFUz15CisjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAorIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKQEAgLTUzLDYgKzYxLDcgQEAKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19VSUQxNj15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC02MCwzNCArNjksNDMgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKIENPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKLUNPTkZJR19TTEFCPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotCi0jCi0jIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0Ci0jCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CiBDT05GSUdfS01PRD15Ci0KLSMKLSMgQmxvY2sgbGF5ZXIKLSMKIENPTkZJR19CTE9DSz15CiAjIENPTkZJR19MQkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CiAjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAogCiAjCiAjIElPIFNjaGVkdWxlcnMKQEAgLTEwMSw2ICsxMTksNyBAQAogIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgU3lzdGVtIFR5cGUKQEAgLTExOSwxNCArMTM4LDE3IEBACiAjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CkBAIC0xMzQsMTggKzE1NiwzMiBAQAogQ09ORklHX0FSQ0hfUzNDMjQxMD15CiAjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAogQ09ORklHX1BMQVRfUzNDMjRYWD15CiBDT05GSUdfQ1BVX1MzQzI0NFg9eQorIyBDT05GSUdfUzNDMjRYWF9QV00gaXMgbm90IHNldAogQ09ORklHX1BNX1NJTVRFQz15Ci0jIENPTkZJR19TM0NfQk9PVF9XQVRDSERPRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TM0NfQk9PVF9FUlJPUl9SRVNFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TM0MyNDEwX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MzQzI0MTBfUE1fQ0hFQ0sgaXMgbm90IHNldAotQ09ORklHX1MzQ19MT1dMRVZFTF9VQVJUX1BPUlQ9MAogQ09ORklHX1MzQzI0MTBfRE1BPXkKICMgQ09ORklHX1MzQzI0MTBfRE1BX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1NNREs9eQorQ09ORklHX1BMQVRfUzNDPXkKK0NPTkZJR19DUFVfTExTRVJJQUxfUzNDMjQxMD15CitDT05GSUdfQ1BVX0xMU0VSSUFMX1MzQzI0NDA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworIyBDT05GSUdfUzNDX0JPT1RfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfUzNDX0JPT1RfRVJST1JfUkVTRVQgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKyMgQ09ORklHX1MzQzI0MTBfUE1fREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUzNDMjQxMF9QTV9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfUzNDX0xPV0xFVkVMX1VBUlRfUE9SVD0wCiAKICMKICMgUzNDMjQwMCBNYWNoaW5lcwpAQCAtMTU1LDYgKzE5MSw4IEBACiBDT05GSUdfUzNDMjQxMF9QTT15CiBDT05GSUdfUzNDMjQxMF9HUElPPXkKIENPTkZJR19TM0MyNDEwX0NMT0NLPXkKK0NPTkZJR19TSU1URUNfTk9SPXkKK0NPTkZJR19NQUNIX0JBU1RfSURFPXkKIAogIwogIyBTM0MyNDEwIE1hY2hpbmVzCkBAIC0xNjcsNiArMjA1LDcgQEAKIENPTkZJR19NQUNIX09UT009eQogQ09ORklHX01BQ0hfQU1MX001OTAwPXkKIENPTkZJR19CQVNUX1BDMTA0X0lSUT15CisjIENPTkZJR19NQUNIX1RDVF9IQU1NRVIgaXMgbm90IHNldAogQ09ORklHX01BQ0hfVlIxMDAwPXkKIENPTkZJR19NQUNIX1FUMjQxMD15CiBDT05GSUdfQ1BVX1MzQzI0MTI9eQpAQCAtMTc2LDggKzIxNSwxMCBAQAogIwogIyBTM0MyNDEyIE1hY2hpbmVzCiAjCisjIENPTkZJR19NQUNIX0pJVkUgaXMgbm90IHNldAogQ09ORklHX01BQ0hfU01ESzI0MTM9eQogQ09ORklHX01BQ0hfUzNDMjQxMz15CisjIENPTkZJR19NQUNIX1NNREsyNDEyIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1ZTVE1TPXkKIENPTkZJR19DUFVfUzNDMjQ0MD15CiBDT05GSUdfUzNDMjQ0MF9ETUE9eQpAQCAtMTkxLDYgKzIzMiw3IEBACiBDT05GSUdfQVJDSF9TM0MyNDQwPXkKIENPTkZJR19NQUNIX05FWENPREVSXzI0NDA9eQogQ09ORklHX1NNREsyNDQwX0NQVTI0NDA9eQorIyBDT05GSUdfTUFDSF9BVDI0NDBFVkIgaXMgbm90IHNldAogQ09ORklHX0NQVV9TM0MyNDQyPXkKIAogIwpAQCAtMjE1LDYgKzI1Nyw3IEBACiBDT05GSUdfQ1BVXzMydjU9eQogQ09ORklHX0NQVV9BQlJUX0VWNFQ9eQogQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKIENPTkZJR19DUFVfQ0FDSEVfVjRXVD15CiBDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQogQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQpAQCAtMjM2LDE3ICsyNzksMTUgQEAKICMgQnVzIHN1cHBvcnQKICMKIENPTkZJR19JU0E9eQotCi0jCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKLSMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAKICMKICMgS2VybmVsIEZlYXR1cmVzCiAjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0yMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CkBAIC0yNTcsOSArMjk4LDEzIEBACiBDT05GSUdfRkxBVE1FTT15CiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKIENPTkZJR19BTElHTk1FTlRfVFJBUD15CiAKICMKQEAgLTI3OSw3ICszMjQsNyBAQAogIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKICMKIENPTkZJR19GUEVfTldGUEU9eQotIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKK0NPTkZJR19GUEVfTldGUEVfWFA9eQogIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAogIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKIApAQCAtMjk1LDEwICszNDAsMTIgQEAKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCiBDT05GSUdfUE09eQotIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BNX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAotIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CitDT05GSUdfQVBNX0VNVUxBVElPTj1tCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDgsNTkgKzM1NSw2NyBAQAogIwogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKLSMgQ09ORklHX05FVERFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBQ0tFVCBpcyBub3Qgc2V0CitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKIENPTkZJR19VTklYPXkKIENPTkZJR19YRlJNPXkKICMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKLSMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVVMVElDQVNUPXkKICMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CiBDT05GSUdfSVBfRklCX0hBU0g9eQogQ09ORklHX0lQX1BOUD15Ci0jIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0RIQ1A9eQogQ09ORklHX0lQX1BOUF9CT09UUD15CiAjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSUEQgaXMgbm90IHNldAogIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1RVTk5FTD1tCiBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQogQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSVBWNj1tCitDT05GSUdfSVBWNl9QUklWQUNZPXkKK0NPTkZJR19JUFY2X1JPVVRFUl9QUkVGPXkKKyMgQ09ORklHX0lQVjZfUk9VVEVfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9BSD1tCitDT05GSUdfSU5FVDZfRVNQPW0KK0NPTkZJR19JTkVUNl9JUENPTVA9bQorQ09ORklHX0lQVjZfTUlQNj1tCitDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1RVTk5FTD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RSQU5TUE9SVD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9bQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTj1tCitDT05GSUdfSVBWNl9TSVQ9bQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQorQ09ORklHX0lQVjZfVFVOTkVMPW0KKyMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotCi0jCi0jIERDQ1AgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQotIwogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NUUCBDb25maWd1cmF0aW9uIChFWFBFUklNRU5UQUwpCi0jCiAjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLQotIwotIyBUSVBDIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKLSMKICMgQ09ORklHX1RJUEMgaXMgbm90IHNldAogIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKICMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CkBAIC0zNzMsMjAgKzQyOCw3MSBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hfRklGTz15CiAKICMKICMgTmV0d29yayB0ZXN0aW5nCiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUIGlzIG5vdCBzZXQKK0NPTkZJR19CVD1tCitDT05GSUdfQlRfTDJDQVA9bQorQ09ORklHX0JUX1NDTz1tCitDT05GSUdfQlRfUkZDT01NPW0KK0NPTkZJR19CVF9SRkNPTU1fVFRZPXkKK0NPTkZJR19CVF9CTkVQPW0KK0NPTkZJR19CVF9CTkVQX01DX0ZJTFRFUj15CitDT05GSUdfQlRfQk5FUF9QUk9UT19GSUxURVI9eQorQ09ORklHX0JUX0hJRFA9bQorCisjCisjIEJsdWV0b290aCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX0JUX0hDSVVTQj1tCitDT05GSUdfQlRfSENJVVNCX1NDTz15CitDT05GSUdfQlRfSENJVUFSVD1tCitDT05GSUdfQlRfSENJVUFSVF9IND15CitDT05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0xMPXkKK0NPTkZJR19CVF9IQ0lCQ00yMDNYPW0KK0NPTkZJR19CVF9IQ0lCUEExMFg9bQorQ09ORklHX0JUX0hDSUJGVVNCPW0KK0NPTkZJR19CVF9IQ0lWSENJPW0KKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworQ09ORklHX0NGRzgwMjExPW0KK0NPTkZJR19OTDgwMjExPXkKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX01BQzgwMjExPW0KKworIworIyBSYXRlIGNvbnRyb2wgYWxnb3JpdGhtIHNlbGVjdGlvbgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfTk9ORSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZWN0aW5nICd5JyBmb3IgYW4gYWxnb3JpdGhtIHdpbGwKKyMKKworIworIyBidWlsZCB0aGUgYWxnb3JpdGhtIGludG8gbWFjODAyMTEuCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0icGlkIgorQ09ORklHX01BQzgwMjExX1JDX1BJRD15CitDT05GSUdfTUFDODAyMTFfTUVTSD15CitDT05GSUdfTUFDODAyMTFfTEVEUz15CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR19QQUNLRVRfQUxJR05NRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKIAogIwogIyBEZXZpY2UgRHJpdmVycwpAQCAtMzk1LDIxICs1MDEsMTQgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKLSMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CitDT05GSUdfRldfTE9BREVSPW0KICMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotCi0jCi0jIENvbm5lY3RvciAtIHVuaWZpZWQgdXNlcnNwYWNlIDwtPiBrZXJuZWxzcGFjZSBsaW5rZXIKLSMKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0Ci0KLSMKLSMgTWVtb3J5IFRlY2hub2xvZ3kgRGV2aWNlcyAoTVREKQotIwogQ09ORklHX01URD15CiAjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CkBAIC00MjAsNiArNTE5LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MzIsNiArNTMyLDcgQEAKICMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAogIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAogCiAjCiAjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCkBAIC00NTcsNyArNTU4LDYgQEAKICMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAogQ09ORklHX01URF9ST009eQogIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfT0JTT0xFVEVfQ0hJUFMgaXMgbm90IHNldAogCiAjCiAjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKQEAgLTQ4NiwxMyArNTg2LDEwIEBACiAjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotCi0jCi0jIE5BTkQgRmxhc2ggRGV2aWNlIERyaXZlcnMKLSMKIENPTkZJR19NVERfTkFORD15CiAjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAogIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfTkFORF9JRFM9eQogQ09ORklHX01URF9OQU5EX1MzQzI0MTA9eQogIyBDT05GSUdfTVREX05BTkRfUzNDMjQxMF9ERUJVRyBpcyBub3Qgc2V0CkBAIC01MDAsMzAgKzU5NywyNSBAQAogIyBDT05GSUdfTVREX05BTkRfUzNDMjQxMF9DTEtTVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAogIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0Ci0KLSMKLSMgT25lTkFORCBGbGFzaCBEZXZpY2UgRHJpdmVycwotIworIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CiAKICMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0CisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcwogIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfUEFSUE9SVD15Ci0jIENPTkZJR19QQVJQT1JUX1BDIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JUX1BDPW0KKyMgQ09ORklHX1BBUlBPUlRfUENfRklGTyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUX1BDX1NVUEVSSU8gaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF9HU0MgaXMgbm90IHNldAotIyBDT05GSUdfUEFSUE9SVF9BWDg4Nzk2IGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JUX0FYODg3OTY9bQogQ09ORklHX1BBUlBPUlRfMTI4ND15Ci0KLSMKLSMgUGx1ZyBhbmQgUGxheSBzdXBwb3J0Ci0jCitDT05GSUdfUEFSUE9SVF9OT1RfUEM9eQogIyBDT05GSUdfUE5QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX1BBUklERSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfTE9PUD15CiAjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldApAQCAtNTMyLDM0ICs2MjQsMzQgQEAKIENPTkZJR19CTEtfREVWX1JBTT15CiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKIENPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX09WRVJfRVRIPW0KLQotIwotIyBBVEEvQVRBUEkvTUZNL1JMTCBzdXBwb3J0Ci0jCitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKIENPTkZJR19JREU9eQogQ09ORklHX0JMS19ERVZfSURFPXkKIAogIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKKyMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwogIwogIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVESVNLPXkKICMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVDRD15CitDT05GSUdfQkxLX0RFVl9JREVDRF9WRVJCT1NFX0VSUk9SUz15CiBDT05GSUdfQkxLX0RFVl9JREVUQVBFPW0KIENPTkZJR19CTEtfREVWX0lERUZMT1BQWT1tCisjIENPTkZJR19CTEtfREVWX0lERVNDU0kgaXMgbm90IHNldAogIyBDT05GSUdfSURFX1RBU0tfSU9DVEwgaXMgbm90IHNldAorQ09ORklHX0lERV9QUk9DX0ZTPXkKIAogIwogIyBJREUgY2hpcHNldCBzdXBwb3J0L2J1Z2ZpeGVzCiAjCi1DT05GSUdfSURFX0dFTkVSSUM9eQotIyBDT05GSUdfSURFX0FSTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVfQkFTVD15Ci0jIENPTkZJR19JREVfQ0hJUFNFVFMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QTEFURk9STSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lERURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIApAQCAtNTY3LDEwMSArNjU5LDExOSBAQAogIyBTQ1NJIGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKK0NPTkZJR19TQ1NJX1RHVD1tCiAjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CiAKICMKLSMgU2VyaWFsIEFUQSAocHJvZCkgYW5kIFBhcmFsbGVsIEFUQSAoZXhwZXJpbWVudGFsKSBkcml2ZXJzCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCiAjCitDT05GSUdfQkxLX0RFVl9TRD15CitDT05GSUdfQ0hSX0RFVl9TVD1tCisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorQ09ORklHX0JMS19ERVZfU1JfVkVORE9SPXkKK0NPTkZJR19DSFJfREVWX1NHPXkKK0NPTkZJR19DSFJfREVWX1NDSD1tCisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorQ09ORklHX1NDU0lfQ09OU1RBTlRTPXkKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9TQ0FOX0FTWU5DPXkKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FIQTE1MlggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU4yMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFRDMzI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9HRU5FUklDX05DUjUzODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9HRU5FUklDX05DUjUzODBfTU1JTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1BQQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lNTSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05DUjUzQzQwNkEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QQVMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMT0dJQ19GQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TWU01M0M0MTYgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9UMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKLQotIwotIyBNdWx0aS1kZXZpY2Ugc3VwcG9ydCAoUkFJRCBhbmQgTFZNKQotIworQ09ORklHX0hBVkVfUEFUQV9QTEFURk9STT15CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKLQotIwotIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0Ci0jCi0KLSMKLSMgSTJPIGRldmljZSBzdXBwb3J0Ci0jCi0KLSMKLSMgTmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAogIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKLQotIwotIyBBUkNuZXQgZGV2aWNlcwotIworIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAotCi0jCi0jIFBIWSBkZXZpY2Ugc3VwcG9ydAotIwogIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAgb3IgMTAwTWJpdCkKLSMKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SX1NNQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAogQ09ORklHX0RNOTAwMD15CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CitDT05GSUdfRE05MDAwX0RFQlVHTEVWRUw9NAogIyBDT05GSUdfTkVUX1ZFTkRPUl9SQUNBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVDE3MDAgaXMgbm90IHNldAogIyBDT05GSUdfREVQQ0EgaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lTQSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BPQ0tFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwMDAgTWJpdCkKLSMKLQotIwotIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKLSMKLQotIwotIyBUb2tlbiBSaW5nIGRldmljZXMKLSMKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwotIyBXaXJlbGVzcyBMQU4gKG5vbi1oYW1yYWRpbykKKyMgV2lyZWxlc3MgTEFOCiAjCi0jIENPTkZJR19ORVRfUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKLSMgV2FuIGludGVyZmFjZXMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKICMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUExJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotCi0jCi0jIElTRE4gc3Vic3lzdGVtCi0jCiAjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKIAogIwpAQCAtNjY5LDYgKzc3OSw3IEBACiAjCiBDT05GSUdfSU5QVVQ9eQogIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKIAogIwogIyBVc2VybGFuZCBpbnRlcmZhY2VzCkBAIC02NzgsNyArNzg5LDYgQEAKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiAjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfRVZERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAogCkBAIC02OTUsMTIgKzgwNSwyMSBAQAogIyBDT05GSUdfS0VZQk9BUkRfR1BJTyBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfTU9VU0U9eQogQ09ORklHX01PVVNFX1BTMj15CitDT05GSUdfTU9VU0VfUFMyX0FMUFM9eQorQ09ORklHX01PVVNFX1BTMl9MT0dJUFMyUFA9eQorQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJQ1M9eQorQ09ORklHX01PVVNFX1BTMl9MSUZFQk9PSz15CitDT05GSUdfTU9VU0VfUFMyX1RSQUNLUE9JTlQ9eQorIyBDT05GSUdfTU9VU0VfUFMyX1RPVUNIS0lUIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1NFUklBTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT1VTRV9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX0lOUE9SVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9MT0dJQk0gaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfUEMxMTBQQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0CisjIENPTkZJR19NT1VTRV9HUElPIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKIApAQCAtNzIxLDYgKzg0MCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CiAjIENPTkZJR19DT01QVVRPTkUgaXMgbm90IHNldAogIyBDT05GSUdfUk9DS0VUUE9SVCBpcyBub3Qgc2V0CkBAIC03MjgsOCArODQ4LDYgQEAKICMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKICMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAogIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PWEFfU01BUlRJT19ORVcgaXMgbm90IHNldAotIyBDT05GSUdfU1lOQ0xJTktNUCBpcyBub3Qgc2V0CiAjIENPTkZJR19OX0hETEMgaXMgbm90IHNldAogIyBDT05GSUdfUklTQ09NOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldApAQCAtNzU4LDggKzg3NiwxMiBAQAogIwogIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CiAjCitDT05GSUdfU0VSSUFMX1NBTVNVTkc9eQorIyBDT05GSUdfU0VSSUFMX1NBTVNVTkdfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEU9eQogQ09ORklHX1NFUklBTF9TM0MyNDEwPXkKLUNPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfUzNDMjQxMj15CitDT05GSUdfU0VSSUFMX1MzQzI0NDA9eQogQ09ORklHX1NFUklBTF9DT1JFPXkKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKIENPTkZJR19VTklYOThfUFRZUz15CkBAIC03NjgsMTYgKzg5MCwxMzkgQEAKIENPTkZJR19QUklOVEVSPXkKICMgQ09ORklHX0xQX0NPTlNPTEUgaXMgbm90IHNldAogQ09ORklHX1BQREVWPXkKLSMgQ09ORklHX1RJUEFSIGlzIG5vdCBzZXQKLQotIwotIyBJUE1JCi0jCiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19EVExLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCitDT05GSUdfSTJDX0FMR09CSVQ9eQogCiAjCi0jIFdhdGNoZG9nIENhcmRzCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIworIyBDT05GSUdfSTJDX0VMRUtUT1IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1MzQzI0MTA9eQorQ09ORklHX0kyQ19TSU1URUM9eQorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX0lTQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19FRVBST009bQorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQklUQkFORz1tCisjIENPTkZJR19TUElfQlVUVEVSRkxZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9MTTcwX0xMUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJX1MzQzI0WFg9bQorQ09ORklHX1NQSV9TM0MyNFhYX0dQSU89bQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKyMgQ09ORklHX0RFQlVHX0dQSU8gaXMgbm90IHNldAorCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fUENBOTUzWCBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPX1BDRjg1N1ggaXMgbm90IHNldAorCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fTUNQMjNTMDggaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKK0NPTkZJR19IV01PTj15CitDT05GSUdfSFdNT05fVklEPW0KKyMgQ09ORklHX1NFTlNPUlNfQUQ3NDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyOSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMzEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE05MjQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FEVDc0NzMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BVFhQMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4ODJGRyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3NTM3NVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE03MCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTc1PW0KKyMgQ09ORklHX1NFTlNPUlNfTE03NyBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTc4PW0KKyMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTE04NT1tCisjIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjY1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQzg3NDI3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRE1FMTczNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFM3ODI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVEhNQzUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzTDc4Nk5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNjI3SEYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM2MjdFSEYgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CiBDT05GSUdfV0FUQ0hET0c9eQogIyBDT05GSUdfV0FUQ0hET0dfTk9XQVlPVVQgaXMgbm90IHNldAogCkBAIC03OTgsMTc5ICsxMDQzLDU0IEBACiAjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcwogIwogIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPXkKLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RUTEsgaXMgbm90IHNldAotIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAotIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAKICMKLSMgVFBNIGRldmljZXMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCiAjCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLQotIwotIyBJMkMgc3VwcG9ydAotIwotQ09ORklHX0kyQz15Ci1DT05GSUdfSTJDX0NIQVJERVY9bQotCi0jCi0jIEkyQyBBbGdvcml0aG1zCi0jCi1DT05GSUdfSTJDX0FMR09CSVQ9bQotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCi0jIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAotIwotIyBDT05GSUdfSTJDX0VMRUtUT1IgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0Ci1DT05GSUdfSTJDX1MzQzI0MTA9eQotIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX1BDQV9JU0EgaXMgbm90IHNldAotCi0jCi0jIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAotIwotIyBDT05GSUdfU0VOU09SU19EUzEzMzcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19EUzEzNzQgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfRUVQUk9NPW0KLSMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1BDQTk1MzkgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwotQ09ORklHX1NQST15Ci0jIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAotQ09ORklHX1NQSV9NQVNURVI9eQotCi0jCi0jIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCi0jCi1DT05GSUdfU1BJX0JJVEJBTkc9bQotIyBDT05GSUdfU1BJX0JVVFRFUkZMWSBpcyBub3Qgc2V0Ci1DT05GSUdfU1BJX1MzQzI0WFg9bQotQ09ORklHX1NQSV9TM0MyNFhYX0dQSU89bQotCi0jCi0jIFNQSSBQcm90b2NvbCBNYXN0ZXJzCi0jCi0jIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0Ci0KLSMKLSMgRGFsbGFzJ3MgMS13aXJlIGJ1cwotIwotIyBDT05GSUdfVzEgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIE1vbml0b3Jpbmcgc3VwcG9ydAotIwotQ09ORklHX0hXTU9OPXkKLUNPTkZJR19IV01PTl9WSUQ9bQotIyBDT05GSUdfU0VOU09SU19BQklUVUdVUlUgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE0xMDIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAyNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTEwMjYgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE0xMDI5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTkyNDAgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BU0IxMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BVFhQMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19GU0NIRVIgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19GU0NQT1MgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE03MCBpcyBub3Qgc2V0Ci1DT05GSUdfU0VOU09SU19MTTc1PW0KLSMgQ09ORklHX1NFTlNPUlNfTE03NyBpcyBub3Qgc2V0Ci1DT05GSUdfU0VOU09SU19MTTc4PW0KLSMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfTE04NT1tCi0jIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX01BWDE2MTkgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQzg3MzYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfUEM4NzQyNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19WVDEyMTEgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM3ODFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzkxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IV01PTl9ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjIGRldmljZXMKLSMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCi0jIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAotCi0jCi0jIExFRCBkZXZpY2VzCi0jCi1DT05GSUdfTkVXX0xFRFM9eQotQ09ORklHX0xFRFNfQ0xBU1M9bQotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi1DT05GSUdfTEVEU19TM0MyNFhYPW0KLUNPTkZJR19MRURTX0gxOTQwPW0KLQotIwotIyBMRUQgVHJpZ2dlcnMKLSMKLUNPTkZJR19MRURTX1RSSUdHRVJTPXkKLUNPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9bQotIyBDT05GSUdfTEVEU19UUklHR0VSX0lERV9ESVNLIGlzIG5vdCBzZXQKLUNPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPW0KK0NPTkZJR19NRkRfU001MDE9eQorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKLSMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAKICMKLSMgRGlnaXRhbCBWaWRlbyBCcm9hZGNhc3RpbmcgRGV2aWNlcworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAogIwotIyBDT05GSUdfRFZCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKIENPTkZJR19GQj15CiBDT05GSUdfRklSTVdBUkVfRURJRD15CiAjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAogQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CiBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKIENPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAogIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAogIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKQEAgLTk3OCwxMiArMTA5OCwxOSBAQAogIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKIAogIwotIyBGcmFtYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKICMKICMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKIENPTkZJR19GQl9TM0MyNDEwPXkKICMgQ09ORklHX0ZCX1MzQzI0MTBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0ZCX1NNNTAxPXkKICMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydApAQCAtOTkyLDY4ICsxMTE5LDIxIEBACiAjIENPTkZJR19NREFfQ09OU09MRSBpcyBub3Qgc2V0CiBDT05GSUdfRFVNTVlfQ09OU09MRT15CiBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAogQ09ORklHX0ZPTlRfOHg4PXkKIENPTkZJR19GT05UXzh4MTY9eQotCi0jCi0jIExvZ28gY29uZmlndXJhdGlvbgotIwogIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CiAKICMKICMgU291bmQKICMKICMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKLQotIwotIyBISUQgRGV2aWNlcwotIworQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQogIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIwotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQotIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCi0jCi0KLSMKLSMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotIwotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIElucHV0IERldmljZXMKQEAgLTEwNjUsNDUgKzExNDUsMTIyIEBACiAjCiAjIENPTkZJR19VU0JfS0JEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9NT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQUlQVEVLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9XQUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQUNFQ0FEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9LQlRBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUE9XRVJNQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfWUVBTElOSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfWFBBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVRJX1JFTU9URSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVRJX1JFTU9URTIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0tFWVNQQU5fUkVNT1RFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9HVENPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCitDT05GSUdfVVNCX0FDTT1tCitDT05GSUdfVVNCX1BSSU5URVI9bQorQ09ORklHX1VTQl9XRE09bQorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9bQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorQ09ORklHX1VTQl9MSUJVU1VBTD15CiAKICMKICMgVVNCIEltYWdpbmcgZGV2aWNlcwogIwogIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKLSMKLSMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAogQ09ORklHX1VTQl9NT049eQogCiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKICMgQ09ORklHX1VTQl9VU1M3MjAgaXMgbm90IHNldAotCi0jCi0jIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorQ09ORklHX1VTQl9TRVJJQUw9eQorIyBDT05GSUdfVVNCX1NFUklBTF9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FWlVTQiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfQUlSQ0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9BSVJQUklNRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0FSSzMxMTYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9CRUxLSU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DSDM0MSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1dISVRFSEVBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NQMjEwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9FTVBFRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9GVERJX1NJTz15CisjIENPTkZJR19VU0JfU0VSSUFMX0ZVTlNPRlQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9WSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0lQQVEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9HQVJNSU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JUFcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JVVUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9LTFNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfS09CSUxfU0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTUNUX1UyMzIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9NT1M3NzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTU9TNzg0MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX01PVE9ST0xBIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0VSSUFMX05BVk1BTj1tCitDT05GSUdfVVNCX1NFUklBTF9QTDIzMDM9eQorIyBDT05GSUdfVVNCX1NFUklBTF9PVEk2ODU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU1BDUDhYNSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0hQNFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9TQUZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU0lFUlJBV0lSRUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9USSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NZQkVSSkFDSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1hJUkNPTSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9PUFRJT049bQorIyBDT05GSUdfVVNCX1NFUklBTF9PTU5JTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfREVCVUcgaXMgbm90IHNldAogCiAjCiAjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKQEAgLTExMTYsMzUgKzEyNzMsMzggQEAKICMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorQ09ORklHX1VTQl9MRUQ9bQogIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorQ09ORklHX1VTQl9MRD1tCiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERTTCBtb2RlbSBzdXBwb3J0Ci0jCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgc3VwcG9ydAotIwogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz1tCiAKICMKLSMgUmVhbCBUaW1lIENsb2NrCisjIExFRCBkcml2ZXJzCiAjCitDT05GSUdfTEVEU19TM0MyNFhYPW0KK0NPTkZJR19MRURTX0gxOTQwPW0KKyMgQ09ORklHX0xFRFNfR1BJTyBpcyBub3Qgc2V0CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPW0KKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9JREVfRElTSyBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD1tCisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKIENPTkZJR19SVENfSENUT1NZUz15CkBAIC0xMTU4LDYxICsxMzE4LDg2IEBACiBDT05GSUdfUlRDX0lOVEZfUFJPQz15CiBDT05GSUdfUlRDX0lOVEZfREVWPXkKICMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAogCiAjCi0jIFJUQyBkcml2ZXJzCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0ZNMzEzMCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiAjCiAjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfUzNDPXkKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKIAogIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX1MzQz15CisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCiAjIEZpbGUgc3lzdGVtcwogIwogQ09ORklHX0VYVDJfRlM9eQotIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CitDT05GSUdfRVhUMl9GU19YQVRUUj15CitDT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eQogIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAogQ09ORklHX0VYVDNfRlM9eQogQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15CiAjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKK0NPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotQ09ORklHX1JPTUZTX0ZTPXkKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19BQ0w9eQogCiAjCiAjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKICMKLSMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAotIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JU085NjYwX0ZTPXkKK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQogCiAjCiAjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKQEAgLTEyMjIsNyArMTQwNyw5IEBACiBDT05GSUdfVkZBVF9GUz15CiBDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CiBDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCi0jIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19OVEZTX0ZTPW0KKyMgQ09ORklHX05URlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19SVyBpcyBub3Qgc2V0CiAKICMKICMgUHNldWRvIGZpbGVzeXN0ZW1zCkBAIC0xMjMwLDEwICsxNDE3LDEwIEBACiBDT05GSUdfUFJPQ19GUz15CiBDT05GSUdfUFJPQ19TWVNDVEw9eQogQ09ORklHX1NZU0ZTPXkKLSMgQ09ORklHX1RNUEZTIGlzIG5vdCBzZXQKK0NPTkZJR19UTVBGUz15CitDT05GSUdfVE1QRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0Ci1DT05GSUdfUkFNRlM9eQotIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0NPTkZJR0ZTX0ZTPW0KIAogIwogIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCkBAIC0xMjQ4LDMxICsxNDM1LDMyIEBACiBDT05GSUdfSkZGUzJfRlM9eQogQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKIENPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15Ci0jIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9TVU1NQVJZPXkKICMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAogQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKIENPTkZJR19KRkZTMl9SVElNRT15CiAjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPXkKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPXkKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX05GU19DT01NT049eQogQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CiAjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKICMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CkBAIC0xMjgwLDcgKzE0NjgsNiBAQAogIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHXzlQX0ZTIGlzIG5vdCBzZXQKIAogIwogIyBQYXJ0aXRpb24gVHlwZXMKQEAgLTEzMDIsOTQgKzE0ODksOTMgQEAKICMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19OTFM9eQogQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCi0jIENPTkZJR19OTFNfQ09ERVBBR0VfNDM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CitDT05GSUdfTkxTX0NPREVQQUdFXzczNz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzc3NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CitDT05GSUdfTkxTX0NPREVQQUdFXzg1Mj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1Nz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2MT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Mj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Mz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2ND1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Nj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2OT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzkzNj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk1MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzkzMj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk0OT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg3ND1tCitDT05GSUdfTkxTX0lTTzg4NTlfOD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzEyNTA9bQorQ09ORklHX05MU19DT0RFUEFHRV8xMjUxPW0KK0NPTkZJR19OTFNfQVNDSUk9eQorQ09ORklHX05MU19JU084ODU5XzE9eQorQ09ORklHX05MU19JU084ODU5XzI9bQorQ09ORklHX05MU19JU084ODU5XzM9bQorQ09ORklHX05MU19JU084ODU5XzQ9bQorQ09ORklHX05MU19JU084ODU5XzU9bQorQ09ORklHX05MU19JU084ODU5XzY9bQorQ09ORklHX05MU19JU084ODU5Xzc9bQorQ09ORklHX05MU19JU084ODU5Xzk9bQorQ09ORklHX05MU19JU084ODU5XzEzPW0KK0NPTkZJR19OTFNfSVNPODg1OV8xND1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTU9bQorQ09ORklHX05MU19LT0k4X1I9bQorQ09ORklHX05MU19LT0k4X1U9bQorQ09ORklHX05MU19VVEY4PW0KICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CiAKICMKLSMgUHJvZmlsaW5nIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0Ci0KLSMKICMgS2VybmVsIGhhY2tpbmcKICMKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKICMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE2CiBDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19NVVRFWEVTPXkKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKIENPTkZJR19GUkFNRV9QT0lOVEVSPXkKLUNPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19VU0VSPXkKLSMgQ09ORklHX0RFQlVHX0VSUk9SUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19MTD15CiAjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1MzQ19QT1JUPXkKQEAgLTE0MDAsMjEgKzE1ODYsMTAwIEBACiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQogCiAjCi0jIENyeXB0b2dyYXBoaWMgb3B0aW9ucworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKICMKLSMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FMR0FQST1tCitDT05GSUdfQ1JZUFRPX0FFQUQ9bQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19IQVNIPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fSE1BQz1tCisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9bQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fU0hBMT1tCisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKK0NPTkZJR19DUllQVE9fQUVTPW0KKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PW0KKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz1tCisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKK0NPTkZJR19DUllQVE9fREVGTEFURT1tCisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQogCiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKICMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CiBDT05GSUdfWkxJQl9JTkZMQVRFPXkKIENPTkZJR19aTElCX0RFRkxBVEU9eQogQ09ORklHX1BMSVNUPXkKIENPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9zYW05X2w5MjYwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc2FtOV9sOTI2MF9kZWZjb25maWcKaW5kZXggNDg0ZGM5Ny4uODY4ODM2MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9zYW05X2w5MjYwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3NhbTlfbDkyNjBfZGVmY29uZmlnCkBAIC0yMTEsNyArMjExLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCmluZGV4IGFhN2EwMTEuLjdkNTlmYjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCkBAIC0xNjQsNyArMTY0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy90Y3RfaGFtbWVyX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdGN0X2hhbW1lcl9kZWZjb25maWcKaW5kZXggNTc2YjgzMy4uMDdkZmI5OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy90Y3RfaGFtbWVyX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3RjdF9oYW1tZXJfZGVmY29uZmlnCkBAIC0yNDcsNyArMjQ3LDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTIwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdHJpemVwczRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKaW5kZXggNmRiNjM5Mi4uOGI3YTQzMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKQEAgLTE5NSw3ICsxOTUsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogQ09ORklHX0FFQUJJPXkKIENPTkZJR19PQUJJX0NPTVBBVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2MF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY4MGJkMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvdXNiLWE5MjYwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDExNDIgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNAorIyBUdWUgQXByIDE1IDExOjM5OjM1IDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKKyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CisjIENPTkZJR19JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0FTPXkKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxPXkKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBBdG1lbCBBVDkxIFN5c3RlbS1vbi1DaGlwCisjCisjIENPTkZJR19BUkNIX0FUOTFSTTkyMDAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjA9eQorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTkyNjAgVmFyaWFudHMKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjBfU0FNOVhFIGlzIG5vdCBzZXQKKworIworIyBBVDkxU0FNOTI2MCAvIEFUOTFTQU05WEUgQm9hcmQgVHlwZQorIworIyBDT05GSUdfTUFDSF9BVDkxU0FNOTI2MEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfQ0FNNjAgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9TQU05X0w5MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1VTQl9BOTI2MD15CisjIENPTkZJR19NQUNIX1FJTF9BOTI2MCBpcyBub3Qgc2V0CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisKKyMKKyMgQVQ5MSBGZWF0dXJlIFNlbGVjdGlvbnMKKyMKKyMgQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUyBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9TTE9XX0NMT0NLPXkKK0NPTkZJR19BVDkxX1RJTUVSX0haPTEwMAorQ09ORklHX0FUOTFfRUFSTFlfREJHVT15CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMSBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMiBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNSBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKKyMgQ09ORklHX0FSTV9USFVNQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFogaXMgbm90IHNldAorIyBDT05GSUdfSElHSF9SRVNfVElNRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CisjIENPTkZJR19MRURTIGlzIG5vdCBzZXQKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5UzAsMTE1MjAwIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEggaXMgbm90IHNldAorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBfUkFSUD15CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworIyBDT05GSUdfTVREX0NGSSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01URF9EQVRBRkxBU0g9eQorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9BVDkxPXkKK0NPTkZJR19NVERfTkFORF9BVDkxX0VDQ19TT0ZUPXkKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX0hXIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElCPXkKKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKK0NPTkZJR19NQUNCPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CitDT05GSUdfTkVUREVWXzEwMDAwPXkKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorQ09ORklHX0lOUFVUX0VWQlVHPXkKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0dQSU89eQorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKworIworIyBTUEkgc3VwcG9ydAorIworQ09ORklHX1NQST15CisjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0FUTUVMPXkKKyMgQ09ORklHX1NQSV9CSVRCQU5HIGlzIG5vdCBzZXQKKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCisjIENPTkZJR19VU0JfSElEIGlzIG5vdCBzZXQKKworIworIyBVU0IgSElEIEJvb3QgUHJvdG9jb2wgZHJpdmVycworIworIyBDT05GSUdfVVNCX0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9VU0UgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisKKyMKKyMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKworIworIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKKyMKKworIworIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CisjIENPTkZJR19VU0JfR0FER0VUX0FNRDU1MzZVREMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfRlNMX1VTQjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ORVQyMjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTTY2NTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfR09LVSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUzNDMjQxMCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9BVDkxPXkKK0NPTkZJR19VU0JfQVQ5MT15CisjIENPTkZJR19VU0JfR0FER0VUX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RVQUxTUEVFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkVSTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VUSD15CitDT05GSUdfVVNCX0VUSF9STkRJUz15CisjIENPTkZJR19VU0JfR0FER0VURlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19TRVJJQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorCisjCisjIExFRCBkcml2ZXJzCisjCitDT05GSUdfTEVEU19HUElPPXkKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19GU19QT1NJWF9BQ0w9eQorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CitDT05GSUdfRlVTRV9GUz1tCisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorQ09ORklHX1ZGQVRfRlM9eQorQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNworQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CitDT05GSUdfTkZTX1YzX0FDTD15CitDT05GSUdfTkZTX1Y0PXkKKyMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NVUFBPUlQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CitDT05GSUdfU1VOUlBDX0dTUz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKK0NPTkZJR19SUENTRUNfR1NTX0tSQjU9eQorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlNUUlVNRU5UQVRJT04gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CisjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKKyMgQ09ORklHX0RFQlVHX0VSUk9SUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjNfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjNfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ZDQ1NWIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2M19kZWZjb25maWcKQEAgLTAsMCArMSwxMTM0IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEFwciAxNSAxMToxNToxOSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX1NZU0NUTD15CisjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxU0FNOTI2Mz15CisjIENPTkZJR19BUkNIX0FUOTFTQU05UkwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxQ0FQOSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFYNDAgaXMgbm90IHNldAorQ09ORklHX0FUOTFfUE1DX1VOSVQ9eQorCisjCisjIEFUOTFTQU05MjYzIEJvYXJkIFR5cGUKKyMKKyMgQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjNFSyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9VU0JfQTkyNjM9eQorCisjCisjIEFUOTEgQm9hcmQgT3B0aW9ucworIworCisjCisjIEFUOTEgRmVhdHVyZSBTZWxlY3Rpb25zCisjCisjIENPTkZJR19BVDkxX1BST0dSQU1NQUJMRV9DTE9DS1MgaXMgbm90IHNldAorQ09ORklHX0FUOTFfU0xPV19DTE9DSz15CitDT05GSUdfQVQ5MV9USU1FUl9IWj0xMDAKK0NPTkZJR19BVDkxX0VBUkxZX0RCR1U9eQorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDAgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDEgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDIgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDMgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDQgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDUgaXMgbm90IHNldAorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfQVJNOTI2VD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCisjIENPTkZJR19BUk1fVEhVTUIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMwLDExNTIwMCIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EX1VQX1BPU1NJQkxFPXkKK0NPTkZJR19TVVNQRU5EPXkKKyMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9CT09UUD15CitDT05GSUdfSVBfUE5QX1JBUlA9eQorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CisjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorQ09ORklHX1BIWUxJQj15CisKKyMKKyMgTUlJIFBIWSBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUFSVkVMTF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfREFWSUNPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUVNFTUlfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xYVF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQ0lDQURBX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVRFU1NFX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CitDT05GSUdfTUFDQj15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorQ09ORklHX05FVERFVl8xMDAwMD15CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKK0NPTkZJR19JTlBVVF9FVkJVRz15CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9BVE1FTD15CitDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1RUWUFUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009eQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIHN1cHBvcnQKKyMKK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9BVE1FTD15CisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworIyBDT05GSUdfVVNCX0hJRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorQ09ORklHX0ZVU0VfRlM9bQorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorQ09ORklHX05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND15CisjIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9TVVBQT1JUPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorQ09ORklHX1NVTlJQQ19HU1M9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PXkKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisjIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdmVyc2F0aWxlX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdmVyc2F0aWxlX2RlZmNvbmZpZwppbmRleCA0OGRjYTY5Li44MzU1Zjg4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3ZlcnNhdGlsZV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy92ZXJzYXRpbGVfZGVmY29uZmlnCkBAIC0xNTEsNyArMTUxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MveG1feDI3MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3htX3gyNzBfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNDBkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3htX3gyNzBfZGVmY29uZmlnCkBAIC0wLDAgKzEsMTc0MSBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1CisjIFN1biBNYXkgMTEgMTU6MTI6NTIgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CitDT05GSUdfSUtDT05GSUc9eQorQ09ORklHX0lLQ09ORklHX1BST0M9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKKyMgQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0NfUEFHRV9NT05JVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfUFhBPXkKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorQ09ORklHX0RNQUJPVU5DRT15CisKKyMKKyMgSW50ZWwgUFhBMnh4L1BYQTN4eCBJbXBsZW1lbnRhdGlvbnMKKyMKKworIworIyBTZWxlY3QgdGFyZ2V0IGJvYXJkcworIworIyBDT05GSUdfQVJDSF9HVU1TVElYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTFVCQk9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0xPR0lDUERfUFhBMjcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfTUFJTlNUT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBX0lEUCBpcyBub3Qgc2V0CisjIENPTkZJR19QWEFfU0hBUlBTTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQV9FU0VSSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfVFJJWkVQUzQgaXMgbm90IHNldAorQ09ORklHX01BQ0hfRU1fWDI3MD15CisjIENPTkZJR19NQUNIX0NPTElCUkkgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9aWUxPTklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0xJVFRMRVRPTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9BUk1DT1JFPXkKKyMgQ09ORklHX01BQ0hfTUFHSUNJQU4gaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9QQ00wMjcgaXMgbm90IHNldAorQ09ORklHX1BYQTI3eD15CisjIENPTkZJR19QWEFfUFdNIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9YU0NBTEU9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CitDT05GSUdfSVdNTVhUPXkKK0NPTkZJR19YU0NBTEVfUE1VPXkKKworIworIyBCdXMgc3VwcG9ydAorIworQ09ORklHX1BDST15CitDT05GSUdfUENJX1NZU0NBTEw9eQorQ09ORklHX1BDSV9IT1NUX0lURTgxNTI9eQorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorQ09ORklHX1BDSV9MRUdBQ1k9eQorIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0NBUkQ9bQorIyBDT05GSUdfUENNQ0lBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUE9bQorQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfUENNQ0lBX0lPQ1RMPXkKK0NPTkZJR19DQVJEQlVTPXkKKworIworIyBQQy1jYXJkIGJyaWRnZXMKKyMKK0NPTkZJR19ZRU5UQT1tCisjIENPTkZJR19ZRU5UQV9PMiBpcyBub3Qgc2V0CisjIENPTkZJR19ZRU5UQV9SSUNPSCBpcyBub3Qgc2V0CitDT05GSUdfWUVOVEFfVEk9eQorIyBDT05GSUdfWUVOVEFfRU5FX1RVTkUgaXMgbm90IHNldAorIyBDT05GSUdfWUVOVEFfVE9TSElCQSBpcyBub3Qgc2V0CisjIENPTkZJR19QRDY3MjkgaXMgbm90IHNldAorIyBDT05GSUdfSTgyMDkyIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUFfUFhBMlhYPW0KK0NPTkZJR19QQ0NBUkRfTk9OU1RBVElDPW0KKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0icm9vdD0xZjAzIG1lbT0zMk0iCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBDUFUgRnJlcXVlbmN5IHNjYWxpbmcKKyMKKyMgQ09ORklHX0NQVV9GUkVRIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKK0NPTkZJR19GUEVfTldGUEU9eQorIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CitDT05GSUdfQVBNX0VNVUxBVElPTj1tCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CitDT05GSUdfQlQ9bQorQ09ORklHX0JUX0wyQ0FQPW0KK0NPTkZJR19CVF9TQ089bQorQ09ORklHX0JUX1JGQ09NTT1tCisjIENPTkZJR19CVF9SRkNPTU1fVFRZIGlzIG5vdCBzZXQKK0NPTkZJR19CVF9CTkVQPW0KKyMgQ09ORklHX0JUX0JORVBfTUNfRklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19CVF9ISURQPW0KKworIworIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19CVF9IQ0lVU0I9bQorQ09ORklHX0JUX0hDSVVTQl9TQ089eQorIyBDT05GSUdfQlRfSENJQlRTRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSVVBUlQgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQkNNMjAzWCBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCUEExMFggaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQkZVU0IgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJRFRMMSBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCVDNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJMVUVDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJUVUFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lWSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dJUkVMRVNTX0VYVD15CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CitDT05GSUdfTVREX0pFREVDUFJPQkU9eQorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfR0VPTUVUUlkgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CitDT05GSUdfTVREX0NGSV9BTURTVEQ9eQorQ09ORklHX01URF9DRklfU1RBQT15CitDT05GSUdfTVREX0NGSV9VVElMPXkKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9YSVAgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4NDAwMDAwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTIKK0NPTkZJR19NVERfUFhBMlhYPXkKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NIQVJQX1NMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9JTlRFTF9WUl9OT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfQ0FGRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQ01fWDI3MD15CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9QTEFURk9STT15CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VNRU0gaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1g4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfUkFNPXkKK0NPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKKyMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX01WU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQSBpcyBub3Qgc2V0CitDT05GSUdfQVRBPW0KKyMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BNUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAorIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMk4gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorQ09ORklHX1BBVEFfUENNQ0lBPW0KKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorQ09ORklHX0RNOTAwMD15CitDT05GSUdfRE05MDAwX0RFQlVHTEVWRUw9MQorIyBDT05GSUdfU01DOTExWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAorIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENJPXkKKyMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAorIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAorIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAorIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKK0NPTkZJR184MTM5VE9PPXkKKyMgQ09ORklHXzgxMzlUT09fUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UUiBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOXzgwMjExPXkKKyMgQ09ORklHX1BDTUNJQV9SQVlDUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIyMDAgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTPW0KKyMgQ09ORklHX0xJQkVSVEFTX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBU19DUyBpcyBub3Qgc2V0CitDT05GSUdfTElCRVJUQVNfU0RJTz1tCisjIENPTkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19IRVJNRVMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNRUwgaXMgbm90IHNldAorIyBDT05GSUdfQUlST19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfV0wzNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSSVNNNTQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pEMTIwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVUX1JORElTX1dMQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVEFQIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QQ01DSUEgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAorQ09ORklHX1BQUD1tCitDT05GSUdfUFBQX01VTFRJTElOSz15CitDT05GSUdfUFBQX0ZJTFRFUj15CitDT05GSUdfUFBQX0FTWU5DPW0KKyMgQ09ORklHX1BQUF9TWU5DX1RUWSBpcyBub3Qgc2V0CitDT05GSUdfUFBQX0RFRkxBVEU9bQorQ09ORklHX1BQUF9CU0RDT01QPW0KKyMgQ09ORklHX1BQUF9NUFBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUE9FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUE9MMlRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorQ09ORklHX1NMSEM9bQorIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FQTVBPV0VSIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKK0NPTkZJR19LRVlCT0FSRF9BVEtCRD15CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9QWEEyN3g9bQorIyBDT05GSUdfS0VZQk9BUkRfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3WFg9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzA1IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3MTI9eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1dNOTdYWF9NQUlOU1RPTkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKK0NPTkZJR19TRVJJTz15CisjIENPTkZJR19TRVJJT19TRVJQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fTElCUFMyPXkKKyMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX1BYQT15CitDT05GSUdfU0VSSUFMX1BYQV9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBjaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFdJUkVMRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfUFhBPXkKKyMgQ09ORklHX0kyQ19QWEFfU0xBVkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisjIENPTkZJR19ERUJVR19HUElPIGlzIG5vdCBzZXQKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CitDT05GSUdfRkJfREVGRVJSRURfSU89eQorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorQ09ORklHX0ZCX1BYQT15CisjIENPTkZJR19GQl9QWEFfU01BUlRQQU5FTCBpcyBub3Qgc2V0CitDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlM9eQorQ09ORklHX0ZCX01CWD1tCisjIENPTkZJR19GQl9BTTIwMEVQRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKK0NPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UUyBpcyBub3Qgc2V0CitDT05GSUdfRk9OVF84eDg9eQorQ09ORklHX0ZPTlRfOHgxNj15CitDT05GSUdfTE9HTz15CitDT05GSUdfTE9HT19MSU5VWF9NT05PPXkKK0NPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKK0NPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQorCisjCisjIFNvdW5kCisjCitDT05GSUdfU09VTkQ9bQorCisjCisjIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQorIworQ09ORklHX1NORD1tCitDT05GSUdfU05EX1RJTUVSPW0KK0NPTkZJR19TTkRfUENNPW0KKyMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAorQ09ORklHX1NORF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPW0KK0NPTkZJR19TTkRfUENNX09TUz1tCitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CisjIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBHZW5lcmljIGRldmljZXMKKyMKK0NPTkZJR19TTkRfQUM5N19DT0RFQz1tCisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIFBDSSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfQUQxODg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMSTU0NTEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfT1hZR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQyODEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01PTkEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRUNITzNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0lPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09ESiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTkzOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9GTTgwMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERBX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSElGSUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9LT1JHMTIxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUFFU1RSTzMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JWEFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTk0yNTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BDWEhSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9SSVBUSURFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2NTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUlRVT1NPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WWDIyMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfWU1GUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkUgaXMgbm90IHNldAorCisjCisjIEFMU0EgQVJNIGRldmljZXMKKyMKK0NPTkZJR19TTkRfUFhBMlhYX1BDTT1tCitDT05GSUdfU05EX1BYQTJYWF9BQzk3PW0KKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgZGV2aWNlcworIworIyBDT05GSUdfU05EX1ZYUE9DS0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QREFVRElPQ0YgaXMgbm90IHNldAorCisjCisjIFN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAorCisjCisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIworCisjCisjIFNvQyBBdWRpbyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzIE9NQVAKKyMKKworIworIyBPcGVuIFNvdW5kIFN5c3RlbQorIworIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAorQ09ORklHX0FDOTdfQlVTPW0KK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKK0NPTkZJR19ISURfREVCVUc9eQorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0VIQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQorIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUM9bQorIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgQ2FyZCBEcml2ZXJzCisjCitDT05GSUdfTU1DX0JMT0NLPW0KK0NPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKKyMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfTU1DX1BYQT1tCisjIENPTkZJR19NTUNfU0RIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1RJRk1fU0QgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworIyBDT05GSUdfTEVEU19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0NNX1gyNzA9eQorCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9WMzAyMD15CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9TQTExMDA9eQorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorQ09ORklHX0VYVDNfRlNfWEFUVFI9eQorIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorQ09ORklHX0ZTX01CQ0FDSEU9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz1tCisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CitDT05GSUdfVkZBVF9GUz1tCitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1NVTU1BUlk9eQorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorQ09ORklHX0NJRlM9bQorIyBDT05GSUdfQ0lGU19TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX1dFQUtfUFdfSEFTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfREVCVUcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfRVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKKyMgQ09ORklHX0JTRF9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTklYV0FSRV9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1VOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LQVJNQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19OTFM9bQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPW0KKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfVVRGOD1tCisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1VTRVI9eQorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorQ09ORklHX0NSQ19DQ0lUVD1tCisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL2FybS9rZXJuZWwvTWFrZWZpbGUKaW5kZXggYWQ0NTVmZi4uZWI5MDkyYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9NYWtlZmlsZQpAQCAtNCw2ICs0LDEwIEBACiAKIEFGTEFHU19oZWFkLm8gOj0gLURURVhUX09GRlNFVD0kKFRFWFRfT0ZGU0VUKQogCitpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK0NGTEFHU19SRU1PVkVfZnRyYWNlLm8gPSAtcGcKK2VuZGlmCisKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKIG9iai15CQk6PSBjb21wYXQubyBlbnRyeS1hcm12Lm8gZW50cnktY29tbW9uLm8gaXJxLm8gXApAQCAtMTgsNiArMjIsNyBAQAogb2JqLSQoQ09ORklHX0lTQV9ETUEpCQkrPSBkbWEtaXNhLm8KIG9iai0kKENPTkZJR19QQ0kpCQkrPSBiaW9zMzIubyBpc2Eubwogb2JqLSQoQ09ORklHX1NNUCkJCSs9IHNtcC5vCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpCSs9IGZ0cmFjZS5vCiBvYmotJChDT05GSUdfS0VYRUMpCQkrPSBtYWNoaW5lX2tleGVjLm8gcmVsb2NhdGVfa2VybmVsLm8KIG9iai0kKENPTkZJR19LUFJPQkVTKQkJKz0ga3Byb2Jlcy5vIGtwcm9iZXMtZGVjb2RlLm8KIG9iai0kKENPTkZJR19BVEFHU19QUk9DKQkrPSBhdGFncy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvYXJta3N5bXMuYyBiL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCmluZGV4IDY4OGI3YjEuLmNjN2IyNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiAvKgogICogbGliZ2NjIGZ1bmN0aW9ucyAtIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkgYnkgdGhlCkBAIC0xODEsMyArMTgyLDcgQEAKICNlbmRpZgogCiBFWFBPUlRfU1lNQk9MKGNvcHlfcGFnZSk7CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitFWFBPUlRfU1lNQk9MKG1jb3VudCk7CisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9hdGFncy5jIGIvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKaW5kZXggNjRjNDIwOC4uNDJhMWExNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKQEAgLTEsNSArMSw0IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS90eXBlcy5oPgpAQCAtNyw5ICs2LDggQEAKIAogc3RydWN0IGJ1ZmZlciB7CiAJc2l6ZV90IHNpemU7Ci0JY2hhciAqZGF0YTsKKwljaGFyIGRhdGFbXTsKIH07Ci1zdGF0aWMgc3RydWN0IGJ1ZmZlciB0YWdzX2J1ZmZlcjsKIAogc3RhdGljIGludAogcmVhZF9idWZmZXIoY2hhciogcGFnZSwgY2hhcioqIHN0YXJ0LCBvZmZfdCBvZmYsIGludCBjb3VudCwKQEAgLTI5LDU4ICsyNyw1NyBAQAogCXJldHVybiBjb3VudDsKIH0KIAotCi1zdGF0aWMgaW50Ci1jcmVhdGVfcHJvY19lbnRyaWVzKHZvaWQpCi17Ci0Jc3RydWN0IHByb2NfZGlyX2VudHJ5KiB0YWdzX2VudHJ5OwotCi0JdGFnc19lbnRyeSA9IGNyZWF0ZV9wcm9jX3JlYWRfZW50cnkoImF0YWdzIiwgMDQwMCwgTlVMTCwgcmVhZF9idWZmZXIsICZ0YWdzX2J1ZmZlcik7Ci0JaWYgKCF0YWdzX2VudHJ5KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyBjaGFyIF9faW5pdGRhdGEgYXRhZ3NfY29weV9idWZbS0VYRUNfQk9PVF9QQVJBTVNfU0laRV07Ci1zdGF0aWMgY2hhciBfX2luaXRkYXRhICphdGFnc19jb3B5OworI2RlZmluZSBCT09UX1BBUkFNU19TSVpFIDE1MzYKK3N0YXRpYyBjaGFyIF9faW5pdGRhdGEgYXRhZ3NfY29weVtCT09UX1BBUkFNU19TSVpFXTsKIAogdm9pZCBfX2luaXQgc2F2ZV9hdGFncyhjb25zdCBzdHJ1Y3QgdGFnICp0YWdzKQogewotCWF0YWdzX2NvcHkgPSBhdGFnc19jb3B5X2J1ZjsKLQltZW1jcHkoYXRhZ3NfY29weSwgdGFncywgS0VYRUNfQk9PVF9QQVJBTVNfU0laRSk7CisJbWVtY3B5KGF0YWdzX2NvcHksIHRhZ3MsIHNpemVvZihhdGFnc19jb3B5KSk7CiB9CiAKLQogc3RhdGljIGludCBfX2luaXQgaW5pdF9hdGFnc19wcm9jZnModm9pZCkKIHsKLQlzdHJ1Y3QgdGFnICp0YWc7Ci0JaW50IGVycm9yOworCS8qCisJICogVGhpcyBjYW5ub3QgZ28gaW50byBzYXZlX2F0YWdzKCkgYmVjYXVzZSBrbWFsbG9jIGFuZCBwcm9jIGRvbid0IHdvcmsKKwkgKiB5ZXQgd2hlbiBpdCBpcyBjYWxsZWQuCisJICovCisJc3RydWN0IHByb2NfZGlyX2VudHJ5ICp0YWdzX2VudHJ5OworCXN0cnVjdCB0YWcgKnRhZyA9IChzdHJ1Y3QgdGFnICopYXRhZ3NfY29weTsKKwlzdHJ1Y3QgYnVmZmVyICpiOworCXNpemVfdCBzaXplOwogCi0JaWYgKCFhdGFnc19jb3B5KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkV4cG9ydGluZyBBVEFHczogTm8gc2F2ZWQgdGFncyBmb3VuZFxuIik7Ci0JCXJldHVybiAtRUlPOworCWlmICh0YWctPmhkci50YWcgIT0gQVRBR19DT1JFKSB7CisJCXByaW50ayhLRVJOX0lORk8gIk5vIEFUQUdzPyIpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlmb3IgKHRhZyA9IChzdHJ1Y3QgdGFnICopIGF0YWdzX2NvcHk7IHRhZy0+aGRyLnNpemU7IHRhZyA9IHRhZ19uZXh0KHRhZykpCisJZm9yICg7IHRhZy0+aGRyLnNpemU7IHRhZyA9IHRhZ19uZXh0KHRhZykpCiAJCTsKIAotCXRhZ3NfYnVmZmVyLnNpemUgPSAoKGNoYXIgKikgdGFnIC0gYXRhZ3NfY29weSkgKyBzaXplb2YodGFnLT5oZHIpOwotCXRhZ3NfYnVmZmVyLmRhdGEgPSBrbWFsbG9jKHRhZ3NfYnVmZmVyLnNpemUsIEdGUF9LRVJORUwpOwotCWlmICh0YWdzX2J1ZmZlci5kYXRhID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCW1lbWNweSh0YWdzX2J1ZmZlci5kYXRhLCBhdGFnc19jb3B5LCB0YWdzX2J1ZmZlci5zaXplKTsKKwkvKiBpbmNsdWRlIHRoZSB0ZXJtaW5hdGluZyBBVEFHX05PTkUgKi8KKwlzaXplID0gKGNoYXIgKil0YWcgLSBhdGFnc19jb3B5ICsgc2l6ZW9mKHN0cnVjdCB0YWdfaGVhZGVyKTsKIAotCWVycm9yID0gY3JlYXRlX3Byb2NfZW50cmllcygpOwotCWlmIChlcnJvcikgewotCQlwcmludGsoS0VSTl9FUlIgIkV4cG9ydGluZyBBVEFHczogbm90IGVub3VnaCBtZW1vcnlcbiIpOwotCQlrZnJlZSh0YWdzX2J1ZmZlci5kYXRhKTsKLQkJdGFnc19idWZmZXIuc2l6ZSA9IDA7Ci0JCXRhZ3NfYnVmZmVyLmRhdGEgPSBOVUxMOwotCX0KKwlXQVJOX09OKHRhZy0+aGRyLnRhZyAhPSBBVEFHX05PTkUpOwogCi0JcmV0dXJuIGVycm9yOworCWIgPSBrbWFsbG9jKHNpemVvZigqYikgKyBzaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWIpCisJCWdvdG8gbm9tZW07CisKKwliLT5zaXplID0gc2l6ZTsKKwltZW1jcHkoYi0+ZGF0YSwgYXRhZ3NfY29weSwgc2l6ZSk7CisKKwl0YWdzX2VudHJ5ID0gY3JlYXRlX3Byb2NfcmVhZF9lbnRyeSgiYXRhZ3MiLCAwNDAwLAorCQkJTlVMTCwgcmVhZF9idWZmZXIsIGIpOworCisJaWYgKCF0YWdzX2VudHJ5KQorCQlnb3RvIG5vbWVtOworCisJcmV0dXJuIDA7CisKK25vbWVtOgorCWtmcmVlKGIpOworCXByaW50ayhLRVJOX0VSUiAiRXhwb3J0aW5nIEFUQUdzOiBub3QgZW5vdWdoIG1lbW9yeVxuIik7CisKKwlyZXR1cm4gLUVOT01FTTsKIH0KLQogYXJjaF9pbml0Y2FsbChpbml0X2F0YWdzX3Byb2Nmcyk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuYyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCmluZGV4IGE1M2MwYWIuLjhiZmQyOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCkBAIC02ODAsNyArNjgwLDcgQEAKICNkZWZpbmUgSU9fRUNfTUVNQzhfQkFTRSAwCiAjZW5kaWYKIAotdW5zaWduZWQgaW50IF9fZWNhcmRfYWRkcmVzcyhlY2FyZF90ICplYywgY2FyZF90eXBlX3QgdHlwZSwgY2FyZF9zcGVlZF90IHNwZWVkKQorc3RhdGljIHVuc2lnbmVkIGludCBfX2VjYXJkX2FkZHJlc3MoZWNhcmRfdCAqZWMsIGNhcmRfdHlwZV90IHR5cGUsIGNhcmRfc3BlZWRfdCBzcGVlZCkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSAwOwogCWludCBzbG90ID0gZWMtPnNsb3Rfbm87CkBAIC0xMDAyLDcgKzEwMDIsNyBAQAogCX0KIAogCXJjID0gLUVOT0RFVjsKLQlpZiAoKGVjLT5wb2RhZGRyID0gZWNhcmRfYWRkcmVzcyhlYywgdHlwZSwgRUNBUkRfU1lOQykpID09IDApCisJaWYgKChlYy0+cG9kYWRkciA9IF9fZWNhcmRfYWRkcmVzcyhlYywgdHlwZSwgRUNBUkRfU1lOQykpID09IDApCiAJCWdvdG8gbm9kZXY7CiAKIAljaWQucl96ZXJvID0gMTsKQEAgLTExNDEsMTAgKzExNDEsMTAgQEAKIAogCWlkID0gZWNhcmRfbWF0Y2hfZGV2aWNlKGRydi0+aWRfdGFibGUsIGVjKTsKIAotCWVjYXJkX2NsYWltKGVjKTsKKwllYy0+Y2xhaW1lZCA9IDE7CiAJcmV0ID0gZHJ2LT5wcm9iZShlYywgaWQpOwogCWlmIChyZXQpCi0JCWVjYXJkX3JlbGVhc2UoZWMpOworCQllYy0+Y2xhaW1lZCA9IDA7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTE1NCw3ICsxMTU0LDcgQEAKIAlzdHJ1Y3QgZWNhcmRfZHJpdmVyICpkcnYgPSBFQ0FSRF9EUlYoZGV2LT5kcml2ZXIpOwogCiAJZHJ2LT5yZW1vdmUoZWMpOwotCWVjYXJkX3JlbGVhc2UoZWMpOworCWVjLT5jbGFpbWVkID0gMDsKIAogCS8qCiAJICogUmVzdG9yZSB0aGUgZGVmYXVsdCBvcGVyYXRpb25zLiAgV2UgZW5zdXJlIHRoYXQgdGhlCkBAIC0xMTgyLDcgKzExODIsNyBAQAogCWlmIChkZXYtPmRyaXZlcikgewogCQlpZiAoZHJ2LT5zaHV0ZG93bikKIAkJCWRydi0+c2h1dGRvd24oZWMpOwotCQllY2FyZF9yZWxlYXNlKGVjKTsKKwkJZWMtPmNsYWltZWQgPSAwOwogCX0KIAogCS8qCkBAIC0xMjM5LDcgKzEyMzksNiBAQAogcG9zdGNvcmVfaW5pdGNhbGwoZWNhcmRfYnVzX2luaXQpOwogCiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlYWRjaHVuayk7Ci1FWFBPUlRfU1lNQk9MKF9fZWNhcmRfYWRkcmVzcyk7CiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlZ2lzdGVyX2RyaXZlcik7CiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogRVhQT1JUX1NZTUJPTChlY2FyZF9idXNfdHlwZSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuaCBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCmluZGV4IGQ3YzJkYWMuLjQ2NDJkNDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCkBAIC01NCwzICs1NCwxNiBAQAogI2RlZmluZSBjX2xlbih4KQkoKHgpLT5yX2xlblswXXwoKHgpLT5yX2xlblsxXTw8OCl8KCh4KS0+cl9sZW5bMl08PDE2KSkKICNkZWZpbmUgY19zdGFydCh4KQkoKHgpLT5yX3N0YXJ0KQogfTsKKwordHlwZWRlZiBlbnVtIGVjYXJkX3R5cGUgewkJLyogQ2FyZHMgYWRkcmVzcyBzcGFjZQkJKi8KKwlFQ0FSRF9JT0MsCisJRUNBUkRfTUVNQywKKwlFQ0FSRF9FQVNJCit9IGNhcmRfdHlwZV90OworCit0eXBlZGVmIGVudW0gewkJCQkvKiBTcGVlZCBmb3IgRUNBUkRfSU9DIHNwYWNlCSovCisJRUNBUkRfU0xPVwkgPSAwLAorCUVDQVJEX01FRElVTQkgPSAxLAorCUVDQVJEX0ZBU1QJID0gMiwKKwlFQ0FSRF9TWU5DCSA9IDMKK30gY2FyZF9zcGVlZF90OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWNvbW1vbi5TIGIvYXJjaC9hcm0va2VybmVsL2VudHJ5LWNvbW1vbi5TCmluZGV4IDU5N2VkMDAuLjg0Njk0ZTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1jb21tb24uUworKysgYi9hcmNoL2FybS9rZXJuZWwvZW50cnktY29tbW9uLlMKQEAgLTksNiArOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZW50cnktbWFjcm8uUz4KIAogI2luY2x1ZGUgImVudHJ5LWhlYWRlci5TIgpAQCAtOTksNiArMTAwLDU2IEBACiAjdW5kZWYgQ0FMTAogI2RlZmluZSBDQUxMKHgpIC5sb25nIHgKIAorI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK0VOVFJZKG1jb3VudCkKKwlzdG1kYiBzcCEsIHtyMC1yMywgbHJ9CisJbW92IHIwLCBscgorCXN1YiByMCwgcjAsICNNQ09VTlRfSU5TTl9TSVpFCisKKwkuZ2xvYmwgbWNvdW50X2NhbGwKK21jb3VudF9jYWxsOgorCWJsIGZ0cmFjZV9zdHViCisJbGRtaWEgc3AhLCB7cjAtcjMsIHBjfQorCitFTlRSWShmdHJhY2VfY2FsbGVyKQorCXN0bWRiIHNwISwge3IwLXIzLCBscn0KKwlsZHIgcjEsIFtmcCwgIy00XQorCW1vdiByMCwgbHIKKwlzdWIgcjAsIHIwLCAjTUNPVU5UX0lOU05fU0laRQorCisJLmdsb2JsIGZ0cmFjZV9jYWxsCitmdHJhY2VfY2FsbDoKKwlibCBmdHJhY2Vfc3R1YgorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKworI2Vsc2UKKworRU5UUlkobWNvdW50KQorCXN0bWRiIHNwISwge3IwLXIzLCBscn0KKwlsZHIgcjAsID1mdHJhY2VfdHJhY2VfZnVuY3Rpb24KKwlsZHIgcjIsIFtyMF0KKwlhZHIgcjAsIGZ0cmFjZV9zdHViCisJY21wIHIwLCByMgorCWJuZSB0cmFjZQorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKwordHJhY2U6CisJbGRyIHIxLCBbZnAsICMtNF0KKwltb3YgcjAsIGxyCisJc3ViIHIwLCByMCwgI01DT1VOVF9JTlNOX1NJWkUKKwltb3YgbHIsIHBjCisJbW92IHBjLCByMgorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKworI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworCisJLmdsb2JsIGZ0cmFjZV9zdHViCitmdHJhY2Vfc3R1YjoKKwltb3YgcGMsIGxyCisKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqIFNXSSBoYW5kbGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL2FybS9rZXJuZWwvZnRyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNTBlNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9mdHJhY2UuYwpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIER5bmFtaWMgZnVuY3Rpb24gdHJhY2luZyBzdXBwb3J0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBYmhpc2hlayBTYWdhciA8c2FnYXIuYWJoaXNoZWtAZ21haWwuY29tPgorICoKKyAqIEZvciBsaWNlbmNpbmcgZGV0YWlscywgc2VlIENPUFlJTkcuCisgKgorICogRGVmaW5lcyBsb3ctbGV2ZWwgaGFuZGxpbmcgb2YgbWNvdW50IGNhbGxzIHdoZW4gdGhlIGtlcm5lbAorICogaXMgY29tcGlsZWQgd2l0aCB0aGUgLXBnIGZsYWcuIFdoZW4gdXNpbmcgZHluYW1pYyBmdHJhY2UsIHRoZQorICogbWNvdW50IGNhbGwtc2l0ZXMgZ2V0IHBhdGNoZWQgbGF6aWx5IHdpdGggTk9QIHRpbGwgdGhleSBhcmUKKyAqIGVuYWJsZWQuIEFsbCBjb2RlIG11dGF0aW9uIHJvdXRpbmVzIGhlcmUgdGFrZSBlZmZlY3QgYXRvbWljYWxseS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisKKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworI2RlZmluZSBQQ19PRkZTRVQgICAgICA4CisjZGVmaW5lIEJMX09QQ09ERSAgICAgIDB4ZWIwMDAwMDAKKyNkZWZpbmUgQkxfT0ZGU0VUX01BU0sgMHgwMGZmZmZmZgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBibF9pbnNuOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgTk9QID0gMHhlMWEwMDAwMDsgLyogbW92IHIwLCByMCAqLworCit1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKikmTk9QOworfQorCisvKiBjb25zdHJ1Y3QgYSBicmFuY2ggKEJMKSBpbnN0cnVjdGlvbiB0byBhZGRyICovCit1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgcGMsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlsb25nIG9mZnNldDsKKworCW9mZnNldCA9IChsb25nKWFkZHIgLSAobG9uZykocGMgKyBQQ19PRkZTRVQpOworCWlmICh1bmxpa2VseShvZmZzZXQgPCAtMzM1NTQ0MzIgfHwgb2Zmc2V0ID4gMzM1NTQ0MjgpKSB7CisJCS8qIENhbid0IGdlbmVyYXRlIGJyYW5jaGVzIHRoYXQgZmFyIChmcm9tIEFSTSBBUk0pLiBGdHJhY2UKKwkJICogZG9lc24ndCBnZW5lcmF0ZSBicmFuY2hlcyBvdXRzaWRlIG9mIGtlcm5lbCB0ZXh0LgorCQkgKi8KKwkJV0FSTl9PTl9PTkNFKDEpOworCQlyZXR1cm4gTlVMTDsKKwl9CisJb2Zmc2V0ID0gKG9mZnNldCA+PiAyKSAmIEJMX09GRlNFVF9NQVNLOworCWJsX2luc24gPSBCTF9PUENPREUgfCBvZmZzZXQ7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyICopJmJsX2luc247Cit9CisKK2ludCBmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBwYywgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCSAgICAgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSkKK3sKKwl1bnNpZ25lZCBsb25nIGVyciA9IDAsIHJlcGxhY2VkID0gMCwgb2xkLCBuZXc7CisKKwlvbGQgPSAqKHVuc2lnbmVkIGxvbmcgKilvbGRfY29kZTsKKwluZXcgPSAqKHVuc2lnbmVkIGxvbmcgKiluZXdfY29kZTsKKworCV9fYXNtX18gX192b2xhdGlsZV9fICgKKwkJIjE6ICBsZHIgICAgJTEsIFslMl0gIFxuIgorCQkiICAgIGNtcCAgICAlMSwgJTQgICAgXG4iCisJCSIyOiAgc3RyZXEgICUzLCBbJTJdICBcbiIKKwkJIiAgICBjbXBuZSAgJTEsICUzICAgIFxuIgorCQkiICAgIG1vdm5lICAlMCwgIzIgICAgXG4iCisJCSIzOlxuIgorCisJCSIuc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuIgorCQkiNDogIG1vdiAgJTAsICMxICBcbiIKKwkJIiAgICBiICAgIDNiICAgICAgXG4iCisJCSIucHJldmlvdXNcbiIKKworCQkiLnNlY3Rpb24gX19leF90YWJsZSwgXCJhXCJcbiIKKwkJIiAgICAubG9uZyAxYiwgNGIgXG4iCisJCSIgICAgLmxvbmcgMmIsIDRiIFxuIgorCQkiLnByZXZpb3VzXG4iCisKKwkJOiAiPXIiKGVyciksICI9ciIocmVwbGFjZWQpCisJCTogInIiKHBjKSwgInIiKG5ldyksICJyIihvbGQpLCAiMCIoZXJyKSwgIjEiKHJlcGxhY2VkKQorCQk6ICJtZW1vcnkiKTsKKworCWlmICghZXJyICYmIChyZXBsYWNlZCA9PSBvbGQpKQorCQlmbHVzaF9pY2FjaGVfcmFuZ2UocGMsIHBjICsgTUNPVU5UX0lOU05fU0laRSk7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpCit7CisJaW50IHJldDsKKwl1bnNpZ25lZCBsb25nIHBjLCBvbGQ7CisJdW5zaWduZWQgY2hhciAqbmV3OworCisJcGMgPSAodW5zaWduZWQgbG9uZykmZnRyYWNlX2NhbGw7CisJbWVtY3B5KCZvbGQsICZmdHJhY2VfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShwYywgKHVuc2lnbmVkIGxvbmcpZnVuYyk7CisJcmV0ID0gZnRyYWNlX21vZGlmeV9jb2RlKHBjLCAodW5zaWduZWQgY2hhciAqKSZvbGQsIG5ldyk7CisJcmV0dXJuIHJldDsKK30KKworaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBwYywgb2xkOworCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgKm5ldzsKKworCXBjID0gKHVuc2lnbmVkIGxvbmcpJm1jb3VudF9jYWxsOworCW1lbWNweSgmb2xkLCAmbWNvdW50X2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UocGMsICphZGRyKTsKKwkqYWRkciA9IGZ0cmFjZV9tb2RpZnlfY29kZShwYywgKHVuc2lnbmVkIGNoYXIgKikmb2xkLCBuZXcpOworCXJldHVybiAwOworfQorCisvKiBydW4gZnJvbSBrc3RvcF9tYWNoaW5lICovCitpbnQgX19pbml0IGZ0cmFjZV9keW5fYXJjaF9pbml0KHZvaWQgKmRhdGEpCit7CisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwva3Byb2Jlcy5jIGIvYXJjaC9hcm0va2VybmVsL2twcm9iZXMuYwppbmRleCA1NTkzZGQyLi41ZWUzOWUxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9rcHJvYmVzLmMKQEAgLTI3NCw3ICsyNzQsNyBAQAogICogZm9yIGtyZXRwcm9iZSBoYW5kbGVycyB3aGljaCBzaG91bGQgbm9ybWFsbHkgYmUgaW50ZXJlc3RlZCBpbiByMCBvbmx5CiAgKiBhbnl3YXkuCiAgKi8KLXN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKG5ha2VkKSkgX19rcHJvYmVzIGtyZXRwcm9iZV90cmFtcG9saW5lKHZvaWQpCit2b2lkIF9fbmFrZWQgX19rcHJvYmVzIGtyZXRwcm9iZV90cmFtcG9saW5lKHZvaWQpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKAogCQkic3RtZGIJc3AhLCB7cjAgLSByMTF9CQlcblx0IgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggNDZiZjJlZGUuLjE5OWIzNjggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYwpAQCAtMTMzLDEwICsxMzMsOCBAQAogCQljcHVfcmVsYXgoKTsKIAllbHNlIHsKIAkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKLQkJaWYgKCFuZWVkX3Jlc2NoZWQoKSkgewotCQkJdGltZXJfZHluX3JlcHJvZ3JhbSgpOworCQlpZiAoIW5lZWRfcmVzY2hlZCgpKQogCQkJYXJjaF9pZGxlKCk7Ci0JCX0KIAkJbG9jYWxfaXJxX2VuYWJsZSgpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL2FybS9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IGFlMzFkZWIuLmZjNjUwZjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtMzYsNiArMzYsNyBAQAogI2lmZGVmIENPTkZJR19TVEFDS1RSQUNFCiBzdHJ1Y3Qgc3RhY2tfdHJhY2VfZGF0YSB7CiAJc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZTsKKwl1bnNpZ25lZCBpbnQgbm9fc2NoZWRfZnVuY3Rpb25zOwogCXVuc2lnbmVkIGludCBza2lwOwogfTsKIApAQCAtNDMsMjcgKzQ0LDUzIEBACiB7CiAJc3RydWN0IHN0YWNrX3RyYWNlX2RhdGEgKmRhdGEgPSBkOwogCXN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UgPSBkYXRhLT50cmFjZTsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSBmcmFtZS0+bHI7CiAKKwlpZiAoZGF0YS0+bm9fc2NoZWRfZnVuY3Rpb25zICYmIGluX3NjaGVkX2Z1bmN0aW9ucyhhZGRyKSkKKwkJcmV0dXJuIDA7CiAJaWYgKGRhdGEtPnNraXApIHsKIAkJZGF0YS0+c2tpcC0tOwogCQlyZXR1cm4gMDsKIAl9CiAKLQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IGZyYW1lLT5scjsKKwl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IGFkZHI7CiAKIAlyZXR1cm4gdHJhY2UtPm5yX2VudHJpZXMgPj0gdHJhY2UtPm1heF9lbnRyaWVzOwogfQogCi12b2lkIHNhdmVfc3RhY2tfdHJhY2Uoc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3ZvaWQgc2F2ZV9zdGFja190cmFjZV90c2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCiB7CiAJc3RydWN0IHN0YWNrX3RyYWNlX2RhdGEgZGF0YTsKIAl1bnNpZ25lZCBsb25nIGZwLCBiYXNlOwogCiAJZGF0YS50cmFjZSA9IHRyYWNlOwogCWRhdGEuc2tpcCA9IHRyYWNlLT5za2lwOwotCWJhc2UgPSAodW5zaWduZWQgbG9uZyl0YXNrX3N0YWNrX3BhZ2UoY3VycmVudCk7Ci0JYXNtKCJtb3YgJTAsIGZwIiA6ICI9ciIgKGZwKSk7CisJYmFzZSA9ICh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZSh0c2spOworCisJaWYgKHRzayAhPSBjdXJyZW50KSB7CisjaWZkZWYgQ09ORklHX1NNUAorCQkvKgorCQkgKiBXaGF0IGd1YXJhbnRlZXMgZG8gd2UgaGF2ZSBoZXJlIHRoYXQgJ3RzaycKKwkJICogaXMgbm90IHJ1bm5pbmcgb24gYW5vdGhlciBDUFU/CisJCSAqLworCQlCVUcoKTsKKyNlbHNlCisJCWRhdGEubm9fc2NoZWRfZnVuY3Rpb25zID0gMTsKKwkJZnAgPSB0aHJlYWRfc2F2ZWRfZnAodHNrKTsKKyNlbmRpZgorCX0gZWxzZSB7CisJCWRhdGEubm9fc2NoZWRfZnVuY3Rpb25zID0gMDsKKwkJYXNtKCJtb3YgJTAsIGZwIiA6ICI9ciIgKGZwKSk7CisJfQogCiAJd2Fsa19zdGFja2ZyYW1lKGZwLCBiYXNlLCBiYXNlICsgVEhSRUFEX1NJWkUsIHNhdmVfdHJhY2UsICZkYXRhKTsKKwlpZiAodHJhY2UtPm5yX2VudHJpZXMgPCB0cmFjZS0+bWF4X2VudHJpZXMpCisJCXRyYWNlLT5lbnRyaWVzW3RyYWNlLT5ucl9lbnRyaWVzKytdID0gVUxPTkdfTUFYOwogfQorCit2b2lkIHNhdmVfc3RhY2tfdHJhY2Uoc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3sKKwlzYXZlX3N0YWNrX3RyYWNlX3RzayhjdXJyZW50LCB0cmFjZSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3RpbWUuYyBiL2FyY2gvYXJtL2tlcm5lbC90aW1lLmMKaW5kZXggYjU4NjdlYy4uY2M1MTQ1YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL3RpbWUuYworKysgYi9hcmNoL2FybS9rZXJuZWwvdGltZS5jCkBAIC0zNjUsMTA4ICszNjUsNiBAQAogCS5yZXN1bWUJCT0gdGltZXJfcmVzdW1lLAogfTsKIAotI2lmZGVmIENPTkZJR19OT19JRExFX0haCi1zdGF0aWMgaW50IHRpbWVyX2R5bl90aWNrX2VuYWJsZSh2b2lkKQotewotCXN0cnVjdCBkeW5fdGlja190aW1lciAqZHluX3RpY2sgPSBzeXN0ZW1fdGltZXItPmR5bl90aWNrOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldCA9IC1FTk9ERVY7Ci0KLQlpZiAoZHluX3RpY2spIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JCXJldCA9IDA7Ci0JCWlmICghKGR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpKSB7Ci0JCQlyZXQgPSBkeW5fdGljay0+ZW5hYmxlKCk7Ci0KLQkJCWlmIChyZXQgPT0gMCkKLQkJCQlkeW5fdGljay0+c3RhdGUgfD0gRFlOX1RJQ0tfRU5BQkxFRDsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgdGltZXJfZHluX3RpY2tfZGlzYWJsZSh2b2lkKQotewotCXN0cnVjdCBkeW5fdGlja190aW1lciAqZHluX3RpY2sgPSBzeXN0ZW1fdGltZXItPmR5bl90aWNrOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldCA9IC1FTk9ERVY7Ci0KLQlpZiAoZHluX3RpY2spIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JCXJldCA9IDA7Ci0JCWlmIChkeW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKSB7Ci0JCQlyZXQgPSBkeW5fdGljay0+ZGlzYWJsZSgpOwotCi0JCQlpZiAocmV0ID09IDApCi0JCQkJZHluX3RpY2stPnN0YXRlICY9IH5EWU5fVElDS19FTkFCTEVEOwotCQl9Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIFJlcHJvZ3JhbSB0aGUgc3lzdGVtIHRpbWVyIGZvciBhdCBsZWFzdCB0aGUgY2FsY3VsYXRlZCB0aW1lIGludGVydmFsLgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGZyb20gdGhlIGlkbGUgdGhyZWFkIHdpdGggSVJRcyBkaXNhYmxlZCwKLSAqIGltbWVkaWF0ZWx5IGJlZm9yZSBzbGVlcGluZy4KLSAqLwotdm9pZCB0aW1lcl9keW5fcmVwcm9ncmFtKHZvaWQpCi17Ci0Jc3RydWN0IGR5bl90aWNrX3RpbWVyICpkeW5fdGljayA9IHN5c3RlbV90aW1lci0+ZHluX3RpY2s7Ci0JdW5zaWduZWQgbG9uZyBuZXh0LCBzZXEsIGZsYWdzOwotCi0JaWYgKCFkeW5fdGljaykKLQkJcmV0dXJuOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JaWYgKGR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpIHsKLQkJbmV4dCA9IG5leHRfdGltZXJfaW50ZXJydXB0KCk7Ci0JCWRvIHsKLQkJCXNlcSA9IHJlYWRfc2VxYmVnaW4oJnh0aW1lX2xvY2spOwotCQkJZHluX3RpY2stPnJlcHJvZ3JhbShuZXh0IC0gamlmZmllcyk7Ci0JCX0gd2hpbGUgKHJlYWRfc2VxcmV0cnkoJnh0aW1lX2xvY2ssIHNlcSkpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgc3NpemVfdCB0aW1lcl9zaG93X2R5bl90aWNrKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwKLQkJICAgICAgIChzeXN0ZW1fdGltZXItPmR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpID4+IDEpOwotfQotCi1zdGF0aWMgc3NpemVfdCB0aW1lcl9zZXRfZHluX3RpY2soc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqYnVmLAotCQkJCSAgc2l6ZV90IGNvdW50KQotewotCXVuc2lnbmVkIGludCBlbmFibGUgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDIpOwotCi0JaWYgKGVuYWJsZSkKLQkJdGltZXJfZHluX3RpY2tfZW5hYmxlKCk7Ci0JZWxzZQotCQl0aW1lcl9keW5fdGlja19kaXNhYmxlKCk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci1zdGF0aWMgU1lTREVWX0FUVFIoZHluX3RpY2ssIDA2NDQsIHRpbWVyX3Nob3dfZHluX3RpY2ssIHRpbWVyX3NldF9keW5fdGljayk7Ci0KLS8qCi0gKiBkeW50aWNrPWVuYWJsZXxkaXNhYmxlCi0gKi8KLXN0YXRpYyBjaGFyIGR5bnRpY2tfc3RyWzRdIF9faW5pdGRhdGEgPSAiIjsKLQotc3RhdGljIGludCBfX2luaXQgZHludGlja19zZXR1cChjaGFyICpzdHIpCi17Ci0JaWYgKHN0cikKLQkJc3RybGNweShkeW50aWNrX3N0ciwgc3RyLCBzaXplb2YoZHludGlja19zdHIpKTsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZHludGljaz0iLCBkeW50aWNrX3NldHVwKTsKLSNlbmRpZgotCiBzdGF0aWMgaW50IF9faW5pdCB0aW1lcl9pbml0X3N5c2ZzKHZvaWQpCiB7CiAJaW50IHJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmdGltZXJfc3lzY2xhc3MpOwpAQCAtNDc1LDE5ICszNzMsNiBAQAogCQlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJnN5c3RlbV90aW1lci0+ZGV2KTsKIAl9CiAKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCWlmIChyZXQgPT0gMCAmJiBzeXN0ZW1fdGltZXItPmR5bl90aWNrKSB7Ci0JCXJldCA9IHN5c2Rldl9jcmVhdGVfZmlsZSgmc3lzdGVtX3RpbWVyLT5kZXYsICZhdHRyX2R5bl90aWNrKTsKLQotCQkvKgotCQkgKiBUdXJuIG9uIGR5bmFtaWMgdGljayBhZnRlciBjYWxpYnJhdGUgZGVsYXkKLQkJICogZm9yIGNvcnJlY3QgYm9nb21pcHMKLQkJICovCi0JCWlmIChyZXQgPT0gMCAmJiBkeW50aWNrX3N0clswXSA9PSAnZScpCi0JCQlyZXQgPSB0aW1lcl9keW5fdGlja19lbmFibGUoKTsKLQl9Ci0jZW5kaWYKLQogCXJldHVybiByZXQ7CiB9CiAKQEAgLTUwMCwxMCArMzg1LDUgQEAKIAkJc3lzdGVtX3RpbWVyLT5vZmZzZXQgPSBkdW1teV9nZXR0aW1lb2Zmc2V0OwogI2VuZGlmCiAJc3lzdGVtX3RpbWVyLT5pbml0KCk7Ci0KLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCWlmIChzeXN0ZW1fdGltZXItPmR5bl90aWNrKQotCQlzcGluX2xvY2tfaW5pdCgmc3lzdGVtX3RpbWVyLT5keW5fdGljay0+bG9jayk7Ci0jZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUyBiL2FyY2gvYXJtL2xpYi9jb3B5X3RlbXBsYXRlLlMKaW5kZXggY2FiMzU1Yy4uMTM5Y2NlNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUworKysgYi9hcmNoL2FybS9saWIvY29weV90ZW1wbGF0ZS5TCkBAIC0xMywxNCArMTMsNiBAQAogICovCiAKIC8qCi0gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBjb2RlIHRvIGNhY2hlbGluZSBhbGlnbiB0aGUgc291cmNlIHBvaW50ZXIuCi0gKiBFeHBlcmltZW50cyBvbiB0ZXN0ZWQgYXJjaGl0ZWN0dXJlcyAoU3Ryb25nQVJNIGFuZCBYU2NhbGUpIGRpZG4ndCBzaG93Ci0gKiB0aGlzIGEgd29ydGh3aGlsZSB0aGluZyB0byBkby4gIFRoYXQgbWlnaHQgYmUgZGlmZmVyZW50IGluIHRoZSBmdXR1cmUuCi0gKi8KLS8vI2RlZmluZSBDQUxHTihjb2RlLi4uKQljb2RlCi0jZGVmaW5lIENBTEdOKGNvZGUuLi4pCi0KLS8qCiAgKiBUaGVvcnkgb2Ygb3BlcmF0aW9uCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgpAQCAtODIsNyArNzQsNyBAQAogCQlzdG1mZAlzcCEsIHtyNSAtIHI4fQogCQlibHQJNWYKIAotCUNBTEdOKAlhbmRzCWlwLCByMSwgIzMxCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJcnNiCXIzLCBpcCwgIzMyCQkpCiAJQ0FMR04oCXNiY25lcwlyNCwgcjMsIHIyCQkpICBAIEMgaXMgYWx3YXlzIHNldCBoZXJlCiAJQ0FMR04oCWJjcwkyZgkJCSkKQEAgLTE2OCw3ICsxNjAsNyBAQAogCQlzdWJzCXIyLCByMiwgIzI4CiAJCWJsdAkxNGYKIAotCUNBTEdOKAlhbmRzCWlwLCByMSwgIzMxCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJcnNiCWlwLCBpcCwgIzMyCQkpCiAJQ0FMR04oCXNiY25lcwlyNCwgaXAsIHIyCQkpICBAIEMgaXMgYWx3YXlzIHNldCBoZXJlCiAJQ0FMR04oCXN1YmNjCXIyLCByMiwgaXAJCSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9tZW1tb3ZlLlMgYi9hcmNoL2FybS9saWIvbWVtbW92ZS5TCmluZGV4IGVmN2ZkZGMuLjJlMzAxYjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9tZW1tb3ZlLlMKKysrIGIvYXJjaC9hcm0vbGliL21lbW1vdmUuUwpAQCAtMTMsMTQgKzEzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgogCi0vKgotICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29kZSB0byBjYWNoZWxpbmUgYWxpZ24gdGhlIHNvdXJjZSBwb2ludGVyLgotICogRXhwZXJpbWVudHMgb24gdGVzdGVkIGFyY2hpdGVjdHVyZXMgKFN0cm9uZ0FSTSBhbmQgWFNjYWxlKSBkaWRuJ3Qgc2hvdwotICogdGhpcyBhIHdvcnRod2hpbGUgdGhpbmcgdG8gZG8uICBUaGF0IG1pZ2h0IGJlIGRpZmZlcmVudCBpbiB0aGUgZnV0dXJlLgotICovCi0vLyNkZWZpbmUgQ0FMR04oY29kZS4uLikgICAgICAgIGNvZGUKLSNkZWZpbmUgQ0FMR04oY29kZS4uLikKLQogCQkudGV4dAogCiAvKgpAQCAtNTUsMTEgKzQ3LDEyIEBACiAJCXN0bWZkCXNwISwge3I1IC0gcjh9CiAJCWJsdAk1ZgogCi0JQ0FMR04oCWFuZHMJaXAsIHIxLCAjMzEJCSkKKwlDQUxHTigJYW5kcwlpcCwgcjAsICMzMQkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIGlwLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAliY3MJMmYJCQkpCiAJQ0FMR04oCWFkcglyNCwgNmYJCQkpCiAJQ0FMR04oCXN1YnMJcjIsIHIyLCBpcAkJKSAgQCBDIGlzIHNldCBoZXJlCisJQ0FMR04oCXJzYglpcCwgaXAsICMzMgkJKQogCUNBTEdOKAlhZGQJcGMsIHI0LCBpcAkJKQogCiAJUExEKAlwbGQJW3IxLCAjLTRdCQkpCkBAIC0xMzgsOCArMTMxLDcgQEAKIAkJc3VicwlyMiwgcjIsICMyOAogCQlibHQJMTRmCiAKLQlDQUxHTigJYW5kcwlpcCwgcjEsICMzMQkJKQotCUNBTEdOKAlyc2IJaXAsIGlwLCAjMzIJCSkKKwlDQUxHTigJYW5kcwlpcCwgcjAsICMzMQkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIGlwLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAlzdWJjYwlyMiwgcjIsIGlwCQkpCiAJQ0FMR04oCWJjYwkxNWYJCQkpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvbWVtc2V0LlMgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMKaW5kZXggOTViMTEwYi4uYjQ3N2Q0YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbGliL21lbXNldC5TCisrKyBiL2FyY2gvYXJtL2xpYi9tZW1zZXQuUwpAQCAtMzksNiArMzksOSBAQAogCW1vdglyMywgcjEKIAljbXAJcjIsICMxNgogCWJsdAk0ZgorCisjaWYgISBDQUxHTigxKSswCisKIC8qCiAgKiBXZSBuZWVkIGFuIGV4dHJhIHJlZ2lzdGVyIGZvciB0aGlzIGxvb3AgLSBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyBhbmQKICAqIHVzZSB0aGUgTFIKQEAgLTY0LDYgKzY3LDQ5IEBACiAJc3RtbmVpYQlyMCEsIHtyMSwgcjMsIGlwLCBscn0KIAlsZHIJbHIsIFtzcF0sICM0CiAKKyNlbHNlCisKKy8qCisgKiBUaGlzIHZlcnNpb24gYWxpZ25zIHRoZSBkZXN0aW5hdGlvbiBwb2ludGVyIGluIG9yZGVyIHRvIHdyaXRlCisgKiB3aG9sZSBjYWNoZSBsaW5lcyBhdCBvbmNlLgorICovCisKKwlzdG1mZAlzcCEsIHtyNC1yNywgbHJ9CisJbW92CXI0LCByMQorCW1vdglyNSwgcjEKKwltb3YJcjYsIHIxCisJbW92CXI3LCByMQorCW1vdglpcCwgcjEKKwltb3YJbHIsIHIxCisKKwljbXAJcjIsICM5NgorCXRzdGd0CXIwLCAjMzEKKwlibGUJM2YKKworCWFuZAlpcCwgcjAsICMzMQorCXJzYglpcCwgaXAsICMzMgorCXN1YglyMiwgcjIsIGlwCisJbW92cwlpcCwgaXAsIGxzbCAjKDMyIC0gNCkKKwlzdG1jc2lhCXIwISwge3I0LCByNSwgcjYsIHI3fQorCXN0bW1paWEJcjAhLCB7cjQsIHI1fQorCXRzdAlpcCwgIygxIDw8IDMwKQorCW1vdglpcCwgcjEKKwlzdHJuZQlyMSwgW3IwXSwgIzQKKworMzoJc3VicwlyMiwgcjIsICM2NAorCXN0bWdlaWEJcjAhLCB7cjEsIHIzLXI3LCBpcCwgbHJ9CisJc3RtZ2VpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0KKwliZ3QJM2IKKwlsZG1lcWZkCXNwISwge3I0LXI3LCBwY30KKworCXRzdAlyMiwgIzMyCisJc3RtbmVpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0KKwl0c3QJcjIsICMxNgorCXN0bW5laWEJcjAhLCB7cjQtcjd9CisJbGRtZmQJc3AhLCB7cjQtcjcsIGxyfQorCisjZW5kaWYKKwogNDoJdHN0CXIyLCAjOAogCXN0bW5laWEJcjAhLCB7cjEsIHIzfQogCXRzdAlyMiwgIzQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9tZW16ZXJvLlMgYi9hcmNoL2FybS9saWIvbWVtemVyby5TCmluZGV4IGFiZjI1MDguLmI4Zjc5ZDggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9tZW16ZXJvLlMKKysrIGIvYXJjaC9hcm0vbGliL21lbXplcm8uUwpAQCAtMzksNiArMzksOSBAQAogICovCiAJY21wCXIxLCAjMTYJCQlAIDEgd2UgY2FuIHNraXAgdGhpcyBjaHVuayBpZiB3ZQogCWJsdAk0ZgkJCUAgMSBoYXZlIDwgMTYgYnl0ZXMKKworI2lmICEgQ0FMR04oMSkrMAorCiAvKgogICogV2UgbmVlZCBhbiBleHRyYSByZWdpc3RlciBmb3IgdGhpcyBsb29wIC0gc2F2ZSB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kCiAgKiB1c2UgdGhlIExSCkBAIC02NCw2ICs2Nyw0NyBAQAogCXN0bW5laWEJcjAhLCB7cjIsIHIzLCBpcCwgbHJ9CUAgNAogCWxkcglsciwgW3NwXSwgIzQJCUAgMQogCisjZWxzZQorCisvKgorICogVGhpcyB2ZXJzaW9uIGFsaWducyB0aGUgZGVzdGluYXRpb24gcG9pbnRlciBpbiBvcmRlciB0byB3cml0ZQorICogd2hvbGUgY2FjaGUgbGluZXMgYXQgb25jZS4KKyAqLworCisJc3RtZmQJc3AhLCB7cjQtcjcsIGxyfQorCW1vdglyNCwgcjIKKwltb3YJcjUsIHIyCisJbW92CXI2LCByMgorCW1vdglyNywgcjIKKwltb3YJaXAsIHIyCisJbW92CWxyLCByMgorCisJY21wCXIxLCAjOTYKKwlhbmRndHMJaXAsIHIwLCAjMzEKKwlibGUJM2YKKworCXJzYglpcCwgaXAsICMzMgorCXN1YglyMSwgcjEsIGlwCisJbW92cwlpcCwgaXAsIGxzbCAjKDMyIC0gNCkKKwlzdG1jc2lhCXIwISwge3I0LCByNSwgcjYsIHI3fQorCXN0bW1paWEJcjAhLCB7cjQsIHI1fQorCW1vdnMJaXAsIGlwLCBsc2wgIzIKKwlzdHJjcwlyMiwgW3IwXSwgIzQKKworMzoJc3VicwlyMSwgcjEsICM2NAorCXN0bWdlaWEJcjAhLCB7cjItcjcsIGlwLCBscn0KKwlzdG1nZWlhCXIwISwge3IyLXI3LCBpcCwgbHJ9CisJYmd0CTNiCisJbGRtZXFmZAlzcCEsIHtyNC1yNywgcGN9CisKKwl0c3QJcjEsICMzMgorCXN0bW5laWEJcjAhLCB7cjItcjcsIGlwLCBscn0KKwl0c3QJcjEsICMxNgorCXN0bW5laWEJcjAhLCB7cjQtcjd9CisJbGRtZmQJc3AhLCB7cjQtcjcsIGxyfQorCisjZW5kaWYKKwogNDoJdHN0CXIxLCAjOAkJCUAgMSA4IGJ5dGVzIG9yIG1vcmU/CiAJc3RtbmVpYQlyMCEsIHtyMiwgcjN9CQlAIDIKIAl0c3QJcjEsICM0CQkJQCAxIDQgYnl0ZXMgb3IgbW9yZT8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKaW5kZXggMGZjMDdiNi4uNWJhZDZiOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKQEAgLTMwLDYgKzMwLDExIEBACiAJc2VsZWN0IEdFTkVSSUNfVElNRQogCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCiAKK2NvbmZpZyBBUkNIX0FUOTFTQU05RzIwCisJYm9vbCAiQVQ5MVNBTTlHMjAiCisJc2VsZWN0IEdFTkVSSUNfVElNRQorCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCisKIGNvbmZpZyBBUkNIX0FUOTFDQVA5CiAJYm9vbCAiQVQ5MUNBUDkiCiAJc2VsZWN0IEdFTkVSSUNfVElNRQpAQCAtMTI2LDYgKzEzMSwxMiBAQAogCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBlbVFiaXQncyBFQ0JfQVQ5MSBib2FyZC4KIAkgIDxodHRwOi8vd2lraS5lbXFiaXQuY29tL2ZyZWUtZWNiLWF0OTE+CiAKK2NvbmZpZyBNQUNIX1lMOTIwMAorCWJvb2wgInVjRHJhZ29uIFlMLTkyMDAiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFSTTkyMDAKKwloZWxwCisJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIHRoZSB1Y0RyYWdvbiBZTC05MjAwIGJvYXJkLgorCiBlbmRpZgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE2NCw2ICsxNzUsMjAgQEAKIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgT2xpbWV4J3MgU0FNOS1MOTI2MCBib2FyZCBiYXNlZCBvbiB0aGUgQXRtZWwgQVQ5MVNBTTkyNjAuCiAJICA8aHR0cDovL3d3dy5vbGltZXguY29tL2Rldi9zYW05LUw5MjYwLmh0bWw+CiAKK2NvbmZpZyBNQUNIX1VTQl9BOTI2MAorCWJvb2wgIkNBTEFPIFVTQi1BOTI2MCIKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MVNBTTkyNjAKKwloZWxwCisJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIGEgQ2FsYW8gU3lzdGVtcyBVU0ItQTkyNjAuCisJICA8aHR0cDovL3d3dy5jYWxhby1zeXN0ZW1zLmNvbT4KKworY29uZmlnIE1BQ0hfUUlMX0E5MjYwCisJYm9vbCAiQ0FMQU8gUUlMLUE5MjYwIGJvYXJkIgorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MAorCWhlbHAKKwkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgYSBDYWxhbyBTeXN0ZW1zIFFJTC1BOTI2MCBCb2FyZC4KKwkgIDxodHRwOi8vd3d3LmNhbGFvLXN5c3RlbXMuY29tPgorCiBlbmRpZgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NCw2ICsyMTksMTMgQEAKIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgQXRtZWwncyBBVDkxU0FNOTI2My1FSyBFdmFsdWF0aW9uIEtpdC4KIAkgIDxodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvdG9vbHNfY2FyZC5hc3A/dG9vbF9pZD00MDU3PgogCitjb25maWcgTUFDSF9VU0JfQTkyNjMKKwlib29sICJDQUxBTyBVU0ItQTkyNjMiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYzCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBhIENhbGFvIFN5c3RlbXMgVVNCLUE5MjYzLgorCSAgPGh0dHA6Ly93d3cuY2FsYW8tc3lzdGVtcy5jb20+CisKIGVuZGlmCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEyLDYgKzI0NCwyMCBAQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAoraWYgQVJDSF9BVDkxU0FNOUcyMAorCitjb21tZW50ICJBVDkxU0FNOUcyMCBCb2FyZCBUeXBlIgorCitjb25maWcgTUFDSF9BVDkxU0FNOUcyMEVLCisJYm9vbCAiQXRtZWwgQVQ5MVNBTTlHMjAtRUsgRXZhbHVhdGlvbiBLaXQiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05RzIwCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBBdG1lbCdzIEFUOTFTQU05RzIwLUVLIEV2YWx1YXRpb24gS2l0LgorCitlbmRpZgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogaWYgQVJDSF9BVDkxQ0FQOQogCiBjb21tZW50ICJBVDkxQ0FQOSBCb2FyZCBUeXBlIgpAQCAtMjQ3LDEzICsyOTMsMTMgQEAKIAogY29uZmlnIE1URF9BVDkxX0RBVEFGTEFTSF9DQVJECiAJYm9vbCAiRW5hYmxlIERhdGFGbGFzaCBDYXJkIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiAoQVJDSF9BVDkxUk05MjAwREsgfHwgTUFDSF9BVDkxUk05MjAwRUsgfHwgTUFDSF9BVDkxU0FNOTI2MEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjFFSyB8fCBNQUNIX0FUOTFTQU05MjYzRUsgfHwgTUFDSF9BVDkxQ0FQOUFESyB8fCBNQUNIX1NBTTlfTDkyNjAgfHwgTUFDSF9FQ0JBVDkxKQorCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMERLIHx8IE1BQ0hfQVQ5MVJNOTIwMEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MVNBTTlHMjBFSyB8fCBNQUNIX0VDQkFUOTEgfHwgTUFDSF9TQU05X0w5MjYwIHx8IE1BQ0hfQVQ5MUNBUDlBREspCiAJaGVscAogCSAgRW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBEYXRhRmxhc2ggY2FyZC4KIAogY29uZmlnIE1URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYKIAlib29sICJFbmFibGUgMTYtYml0IGRhdGEgYnVzIGludGVyZmFjZSB0byBOQU5EIGZsYXNoIgotCWRlcGVuZHMgb24gKE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MUNBUDlBREspCisJZGVwZW5kcyBvbiAoTUFDSF9BVDkxU0FNOTI2MEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjFFSyB8fCBNQUNIX0FUOTFTQU05MjYzRUsgfHwgTUFDSF9BVDkxU0FNOUcyMEVLIHx8IE1BQ0hfQVQ5MUNBUDlBREspCiAJaGVscAogCSAgT24gQVQ5MVNBTTkyNnggYm9hcmRzIGJvdGggdHlwZXMgb2YgTkFORCBmbGFzaCBjYW4gYmUgcHJlc2VudAogCSAgKDggYW5kIDE2IGJpdCBkYXRhIGJ1cyB3aWR0aCkuCkBAIC0zMDIsMTUgKzM0OCwxNSBAQAogCiBjb25maWcgQVQ5MV9FQVJMWV9VU0FSVDMKIAlib29sICJVU0FSVDMiCi0JZGVwZW5kcyBvbiAoQVJDSF9BVDkxUk05MjAwIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBBUkNIX0FUOTFTQU05MjYwKQorCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMCB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05RzIwKQogCiBjb25maWcgQVQ5MV9FQVJMWV9VU0FSVDQKIAlib29sICJVU0FSVDQiCi0JZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYwCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTlHMjAKIAogY29uZmlnIEFUOTFfRUFSTFlfVVNBUlQ1CiAJYm9vbCAiVVNBUlQ1IgotCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MAorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05RzIwCiAKIGVuZGNob2ljZQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLWF0OTEvTWFrZWZpbGUKaW5kZXggOGQ5YmMwMS4uN2Q2NDFmOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9NYWtlZmlsZQpAQCAtMTUsNiArMTUsNyBAQAogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEpCSs9IGF0OTFzYW05MjYxLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYxX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjMpCSs9IGF0OTFzYW05MjYzLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYzX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCkJKz0gYXQ5MXNhbTlybC5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxc2FtOXJsX2RldmljZXMubworb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjApCSs9IGF0OTFzYW05MjYwLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYwX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MUNBUDkpCSs9IGF0OTFjYXA5Lm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFjYXA5X2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVg0MCkJKz0gYXQ5MXg0MC5vIGF0OTF4NDBfdGltZS5vCiAKQEAgLTMwLDIxICszMSwyOCBAQAogb2JqLSQoQ09ORklHX01BQ0hfS0FGQSkJCSs9IGJvYXJkLWthZmEubwogb2JqLSQoQ09ORklHX01BQ0hfUElDT1RVWDJYWCkJKz0gYm9hcmQtcGljb3R1eDIwMC5vCiBvYmotJChDT05GSUdfTUFDSF9FQ0JBVDkxKQkrPSBib2FyZC1lY2JhdDkxLm8KK29iai0kKENPTkZJR19NQUNIX1lMOTIwMCkJKz0gYm9hcmQteWwtOTIwMC5vCiAKICMgQVQ5MVNBTTkyNjAgYm9hcmQtc3BlY2lmaWMgc3VwcG9ydAogb2JqLSQoQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjBFSykgKz0gYm9hcmQtc2FtOTI2MGVrLm8KIG9iai0kKENPTkZJR19NQUNIX0NBTTYwKQkrPSBib2FyZC1jYW02MC5vCiBvYmotJChDT05GSUdfTUFDSF9TQU05X0w5MjYwKQkrPSBib2FyZC1zYW05LWw5MjYwLm8KK29iai0kKENPTkZJR19NQUNIX1VTQl9BOTI2MCkJKz0gYm9hcmQtdXNiLWE5MjYwLm8KK29iai0kKENPTkZJR19NQUNIX1FJTF9BOTI2MCkJKz0gYm9hcmQtcWlsLWE5MjYwLm8KIAogIyBBVDkxU0FNOTI2MSBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOTI2MUVLKSArPSBib2FyZC1zYW05MjYxZWsubwogCiAjIEFUOTFTQU05MjYzIGJvYXJkLXNwZWNpZmljIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX0FUOTFTQU05MjYzRUspICs9IGJvYXJkLXNhbTkyNjNlay5vCitvYmotJChDT05GSUdfTUFDSF9VU0JfQTkyNjMpCSs9IGJvYXJkLXVzYi1hOTI2My5vCiAKICMgQVQ5MVNBTTlSTCBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOVJMRUspCSs9IGJvYXJkLXNhbTlybGVrLm8KIAorIyBBVDkxU0FNOUcyMCBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CitvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOUcyMEVLKSArPSBib2FyZC1zYW05ZzIwZWsubworCiAjIEFUOTFDQVA5IGJvYXJkLXNwZWNpZmljIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX0FUOTFDQVA5QURLKQkrPSBib2FyZC1jYXA5YWRrLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFjYXA5X2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxY2FwOV9kZXZpY2VzLmMKaW5kZXggYmU1MjY3NC4uNzQ3YjlkZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFjYXA5X2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MWNhcDlfZGV2aWNlcy5jCkBAIC04NCw2ICs4NCwxMDUgQEAKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFVTQiBIUyBEZXZpY2UgKEdhZGdldCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkEpIHx8IGRlZmluZWQoQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQV9NT0RVTEUpCisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdXNiYV91ZGNfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBBVDkxQ0FQOV9VRFBIU19GSUZPLAorCQkuZW5kCT0gQVQ5MUNBUDlfVURQSFNfRklGTyArIFNaXzUxMksgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MUNBUDlfQkFTRV9VRFBIUywKKwkJLmVuZAk9IEFUOTFDQVA5X0JBU0VfVURQSFMgKyBTWl8xSyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBBVDkxQ0FQOV9JRF9VRFBIUywKKwkJLmVuZAk9IEFUOTFDQVA5X0lEX1VEUEhTLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworI2RlZmluZSBFUChuYW0sIGlkeCwgbWF4cGt0LCBtYXhiaywgZG1hLCBpc29jKQkJCVwKKwlbaWR4XSA9IHsJCQkJCQlcCisJCS5uYW1lCQk9IG5hbSwJCQkJXAorCQkuaW5kZXgJCT0gaWR4LAkJCQlcCisJCS5maWZvX3NpemUJPSBtYXhwa3QsCQkJXAorCQkubnJfYmFua3MJPSBtYXhiaywJCQlcCisJCS5jYW5fZG1hCT0gZG1hLAkJCQlcCisJCS5jYW5faXNvYwk9IGlzb2MsCQkJCVwKKwl9CisKK3N0YXRpYyBzdHJ1Y3QgdXNiYV9lcF9kYXRhIHVzYmFfdWRjX2VwW10gPSB7CisJRVAoImVwMCIsIDAsICAgNjQsIDEsIDAsIDApLAorCUVQKCJlcDEiLCAxLCAxMDI0LCAzLCAxLCAxKSwKKwlFUCgiZXAyIiwgMiwgMTAyNCwgMywgMSwgMSksCisJRVAoImVwMyIsIDMsIDEwMjQsIDIsIDEsIDEpLAorCUVQKCJlcDQiLCA0LCAxMDI0LCAyLCAxLCAxKSwKKwlFUCgiZXA1IiwgNSwgMTAyNCwgMiwgMSwgMCksCisJRVAoImVwNiIsIDYsIDEwMjQsIDIsIDEsIDApLAorCUVQKCJlcDciLCA3LCAxMDI0LCAyLCAwLCAwKSwKK307CisKKyN1bmRlZiBFUAorCisvKgorICogcGRhdGEgZG9lc24ndCBoYXZlIHJvb20gZm9yIGFueSBlbmRwb2ludHMsIHNvIHdlIG5lZWQgdG8KKyAqIGFwcGVuZCByb29tIGZvciB0aGUgb25lcyB3ZSBuZWVkIHJpZ2h0IGFmdGVyIGl0LgorICovCitzdGF0aWMgc3RydWN0IHsKKwlzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhIHBkYXRhOworCXN0cnVjdCB1c2JhX2VwX2RhdGEgZXBbOF07Cit9IHVzYmFfdWRjX2RhdGE7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0OTFfdXNiYV91ZGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJhdG1lbF91c2JhX3VkYyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnVzYmFfdWRjX2RhdGEucGRhdGEsCisJfSwKKwkucmVzb3VyY2UJPSB1c2JhX3VkY19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHVzYmFfdWRjX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKQoreworCWF0OTFfc3lzX3dyaXRlKEFUOTFfTUFUUklYX1VEUEhTLCBBVDkxX01BVFJJWF9TRUxFQ1RfVURQSFMgfAorCQkJCQkgIEFUOTFfTUFUUklYX1VEUEhTX0JZUEFTU19MT0NLKTsKKworCS8qCisJICogSW52YWxpZCBwaW5zIGFyZSAwIG9uIEFUOTEsIGJ1dCB0aGUgdXNiYSBkcml2ZXIgaXMgc2hhcmVkCisJICogd2l0aCBBVlIzMiwgd2hpY2ggdXNlIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLiBPbmNlL2lmCisJICogZ3Bpb19pc192YWxpZCgpIGlzIHBvcnRlZCB0byBBVDkxLCByZXZpc2l0IHRoaXMgY29kZS4KKwkgKi8KKwl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gLUVJTlZBTDsKKwl1c2JhX3VkY19kYXRhLnBkYXRhLm51bV9lcCA9IEFSUkFZX1NJWkUodXNiYV91ZGNfZXApOworCW1lbWNweSh1c2JhX3VkY19kYXRhLmVwLCB1c2JhX3VkY19lcCwgc2l6ZW9mKHVzYmFfdWRjX2VwKSk7OworCisJaWYgKGRhdGEgJiYgZGF0YS0+dmJ1c19waW4gPiAwKSB7CisJCWF0OTFfc2V0X2dwaW9faW5wdXQoZGF0YS0+dmJ1c19waW4sIDApOworCQlhdDkxX3NldF9kZWdsaXRjaChkYXRhLT52YnVzX3BpbiwgMSk7CisJCXVzYmFfdWRjX2RhdGEucGRhdGEudmJ1c19waW4gPSBkYXRhLT52YnVzX3BpbjsKKwl9CisKKwkvKiBQdWxsdXAgcGluIGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSBVU0IgZGV2aWNlIHBlcmlwaGVyYWwgKi8KKworCS8qIENsb2NrcyAqLworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1dG1pX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJoY2xrIik7CisJYXQ5MV9jbG9ja19hc3NvY2lhdGUoInVkcGhzX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJwY2xrIik7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmF0OTFfdXNiYV91ZGNfZGV2aWNlKTsKK30KKyNlbHNlCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKSB7fQorI2VuZGlmCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBFdGhlcm5ldAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYwppbmRleCBlZTI2NTUwLi4zODBmMTJhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYwpAQCAtNDcsNiArNDcsMjAgQEAKIAl9CiB9OwogCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGF0OTFzYW05ZzIwX3NyYW1fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEFUOTFfSU9fVklSVF9CQVNFIC0gQVQ5MVNBTTlHMjBfU1JBTTBfU0laRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEFUOTFTQU05RzIwX1NSQU0wX0JBU0UpLAorCQkubGVuZ3RoCQk9IEFUOTFTQU05RzIwX1NSQU0wX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CisJCS52aXJ0dWFsCT0gQVQ5MV9JT19WSVJUX0JBU0UgLSBBVDkxU0FNOUcyMF9TUkFNMF9TSVpFIC0gQVQ5MVNBTTlHMjBfU1JBTTFfU0laRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEFUOTFTQU05RzIwX1NSQU0xX0JBU0UpLAorCQkubGVuZ3RoCQk9IEFUOTFTQU05RzIwX1NSQU0xX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9Cit9OworCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGF0OTFzYW05eGVfc3JhbV9kZXNjW10gX19pbml0ZGF0YSA9IHsKIAl7CiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBVDkxU0FNOVhFX1NSQU1fQkFTRSksCkBAIC0zMDcsNiArMzIxLDggQEAKIAogCWlmIChjcHVfaXNfYXQ5MXNhbTl4ZSgpKQogCQlhdDkxc2FtOXhlX2luaXRpYWxpemUoKTsKKwllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSkKKwkJaW90YWJsZV9pbml0KGF0OTFzYW05ZzIwX3NyYW1fZGVzYywgQVJSQVlfU0laRShhdDkxc2FtOWcyMF9zcmFtX2Rlc2MpKTsKIAllbHNlCiAJCWlvdGFibGVfaW5pdChhdDkxc2FtOTI2MF9zcmFtX2Rlc2MsIEFSUkFZX1NJWkUoYXQ5MXNhbTkyNjBfc3JhbV9kZXNjKSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MF9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjBfZGV2aWNlcy5jCmluZGV4IDM5M2EzMmEuLjg2Y2JhNGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MF9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwX2RldmljZXMuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXNhbTkyNjAuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxc2FtOTI2MF9tYXRyaXguaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxc2FtOV9zbWMuaD4KQEAgLTMyMCwyMCArMzIxLDQxIEBACiAJY3NhID0gYXQ5MV9zeXNfcmVhZChBVDkxX01BVFJJWF9FQklDU0EpOwogCWF0OTFfc3lzX3dyaXRlKEFUOTFfTUFUUklYX0VCSUNTQSwgY3NhIHwgQVQ5MV9NQVRSSVhfQ1MzQV9TTUNfU01BUlRNRURJQSk7CiAKLQkvKiBzZXQgdGhlIGJ1cyBpbnRlcmZhY2UgY2hhcmFjdGVyaXN0aWNzICovCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygwKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQotCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOworCWlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSkgeworCQkvKiBUaW1pbmcgZm9yIHNhbTkyNjAgKi8KKwkJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQotCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDMpCisJCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg1KSB8IEFUOTFfU01DX05SRENZQ0xFXyg1KSk7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwogCi0JaWYgKGRhdGEtPmJ1c193aWR0aF8xNikKLQkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKLQllbHNlCi0JCW1vZGUgPSBBVDkxX1NNQ19EQldfODsKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygyKSk7CisJCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzE2OworCQllbHNlCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIG1vZGUgfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDIpKTsKKwl9CisKKwlpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKKwkJLyogVGltaW5nIGZvciBzYW05ZzIwICovCisJCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygyKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDIpIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDQpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDQpCisJCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oNCkgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oNCkpOworCisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNykgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNykpOworCisJCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzE2OworCQllbHNlCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIG1vZGUgfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDMpKTsKKwl9CiAKIAkvKiBlbmFibGUgcGluICovCiAJaWYgKGRhdGEtPmVuYWJsZV9waW4pCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjFfZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYxX2RldmljZXMuYwppbmRleCAwYmFiYjY0Li5lYzE4OTEzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjFfZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MV9kZXZpY2VzLmMKQEAgLTIzMiwxOSArMjMyLDE5IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9NQVRSSVhfRUJJQ1NBLCBjc2EgfCBBVDkxX01BVFJJWF9DUzNBX1NNQ19TTUFSVE1FRElBKTsKIAogCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCi0JCQl8IEFUOTFfU01DX05SRFNFVFVQXygwKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygxKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygyKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXyg1KQotCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMikgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oNSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1BVTFNFKDMpLCBBVDkxX1NNQ19OV0VQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oMykKKwkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNykgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNykpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwogCiAJaWYgKGRhdGEtPmJ1c193aWR0aF8xNikKIAkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKIAllbHNlCiAJCW1vZGUgPSBBVDkxX1NNQ19EQldfODsKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygxKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwgbW9kZSB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMikpOwogCiAJLyogZW5hYmxlIHBpbiAqLwogCWlmIChkYXRhLT5lbmFibGVfcGluKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYzX2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2M19kZXZpY2VzLmMKaW5kZXggNzE5NjY3ZS4uOGE4MWY3NiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYzX2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjNfZGV2aWNlcy5jCkBAIC0zOTEsOCArMzkxLDggQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQkkwQ1NBLCBjc2EgfCBBVDkxX01BVFJJWF9FQkkwX0NTM0FfU01DX1NNQVJUTUVESUEpOwogCiAJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKLQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQl8IEFUOTFfU01DX05SRFNFVFVQXygxKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CiAKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDMpCiAJCQl8IEFUOTFfU01DX05SRFBVTFNFXygzKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXygzKSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTlybF9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTlybF9kZXZpY2VzLmMKaW5kZXggNDUwZGIzMC4uYWUyODEwMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05cmxfZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOXJsX2RldmljZXMuYwpAQCAtMjYsNiArMjYsMTAxIEBACiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBVU0IgSFMgRGV2aWNlIChHYWRnZXQpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBKSB8fCBkZWZpbmVkKENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkFfTU9EVUxFKQorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVzYmFfdWRjX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MVNBTTlSTF9VRFBIU19GSUZPLAorCQkuZW5kCT0gQVQ5MVNBTTlSTF9VRFBIU19GSUZPICsgU1pfNTEySyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzFdID0geworCQkuc3RhcnQJPSBBVDkxU0FNOVJMX0JBU0VfVURQSFMsCisJCS5lbmQJPSBBVDkxU0FNOVJMX0JBU0VfVURQSFMgKyBTWl8xSyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBBVDkxU0FNOVJMX0lEX1VEUEhTLAorCQkuZW5kCT0gQVQ5MVNBTTlSTF9JRF9VRFBIUywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKKyNkZWZpbmUgRVAobmFtLCBpZHgsIG1heHBrdCwgbWF4YmssIGRtYSwgaXNvYykJCQlcCisJW2lkeF0gPSB7CQkJCQkJXAorCQkubmFtZQkJPSBuYW0sCQkJCVwKKwkJLmluZGV4CQk9IGlkeCwJCQkJXAorCQkuZmlmb19zaXplCT0gbWF4cGt0LAkJCVwKKwkJLm5yX2JhbmtzCT0gbWF4YmssCQkJXAorCQkuY2FuX2RtYQk9IGRtYSwJCQkJXAorCQkuY2FuX2lzb2MJPSBpc29jLAkJCQlcCisJfQorCitzdGF0aWMgc3RydWN0IHVzYmFfZXBfZGF0YSB1c2JhX3VkY19lcFtdIF9faW5pdGRhdGEgPSB7CisJRVAoImVwMCIsIDAsIDY0LCAxLCAwLCAwKSwKKwlFUCgiZXAxIiwgMSwgMTAyNCwgMiwgMSwgMSksCisJRVAoImVwMiIsIDIsIDEwMjQsIDIsIDEsIDEpLAorCUVQKCJlcDMiLCAzLCAxMDI0LCAzLCAxLCAwKSwKKwlFUCgiZXA0IiwgNCwgMTAyNCwgMywgMSwgMCksCisJRVAoImVwNSIsIDUsIDEwMjQsIDMsIDEsIDEpLAorCUVQKCJlcDYiLCA2LCAxMDI0LCAzLCAxLCAxKSwKK307CisKKyN1bmRlZiBFUAorCisvKgorICogcGRhdGEgZG9lc24ndCBoYXZlIHJvb20gZm9yIGFueSBlbmRwb2ludHMsIHNvIHdlIG5lZWQgdG8KKyAqIGFwcGVuZCByb29tIGZvciB0aGUgb25lcyB3ZSBuZWVkIHJpZ2h0IGFmdGVyIGl0LgorICovCitzdGF0aWMgc3RydWN0IHsKKwlzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhIHBkYXRhOworCXN0cnVjdCB1c2JhX2VwX2RhdGEgZXBbN107Cit9IHVzYmFfdWRjX2RhdGE7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0OTFfdXNiYV91ZGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJhdG1lbF91c2JhX3VkYyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnVzYmFfdWRjX2RhdGEucGRhdGEsCisJfSwKKwkucmVzb3VyY2UJPSB1c2JhX3VkY19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHVzYmFfdWRjX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKQoreworCS8qCisJICogSW52YWxpZCBwaW5zIGFyZSAwIG9uIEFUOTEsIGJ1dCB0aGUgdXNiYSBkcml2ZXIgaXMgc2hhcmVkCisJICogd2l0aCBBVlIzMiwgd2hpY2ggdXNlIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLiBPbmNlL2lmCisJICogZ3Bpb19pc192YWxpZCgpIGlzIHBvcnRlZCB0byBBVDkxLCByZXZpc2l0IHRoaXMgY29kZS4KKwkgKi8KKwl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gLUVJTlZBTDsKKwl1c2JhX3VkY19kYXRhLnBkYXRhLm51bV9lcCA9IEFSUkFZX1NJWkUodXNiYV91ZGNfZXApOworCW1lbWNweSh1c2JhX3VkY19kYXRhLmVwLCB1c2JhX3VkY19lcCwgc2l6ZW9mKHVzYmFfdWRjX2VwKSk7OworCisJaWYgKGRhdGEgJiYgZGF0YS0+dmJ1c19waW4gPiAwKSB7CisJCWF0OTFfc2V0X2dwaW9faW5wdXQoZGF0YS0+dmJ1c19waW4sIDApOworCQlhdDkxX3NldF9kZWdsaXRjaChkYXRhLT52YnVzX3BpbiwgMSk7CisJCXVzYmFfdWRjX2RhdGEucGRhdGEudmJ1c19waW4gPSBkYXRhLT52YnVzX3BpbjsKKwl9CisKKwkvKiBQdWxsdXAgcGluIGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSBVU0IgZGV2aWNlIHBlcmlwaGVyYWwgKi8KKworCS8qIENsb2NrcyAqLworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1dG1pX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJoY2xrIik7CisJYXQ5MV9jbG9ja19hc3NvY2lhdGUoInVkcGhzX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJwY2xrIik7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmF0OTFfdXNiYV91ZGNfZGV2aWNlKTsKK30KKyNlbHNlCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKSB7fQorI2VuZGlmCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBNTUMgLyBTRAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTM4LDE1ICsyMzMsMTUgQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQklDU0EsIGNzYSB8IEFUOTFfTUFUUklYX0NTM0FfU01DX1NNQVJUTUVESUEpOwogCiAJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKLQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQl8IEFUOTFfU01DX05SRFNFVFVQXygxKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CiAKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDIpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDUpCi0JCQl8IEFUOTFfU01DX05SRFBVTFNFXygyKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXyg1KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQorCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg3KSB8IEFUOTFfU01DX05SRENZQ0xFXyg3KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg1KSB8IEFUOTFfU01DX05SRENZQ0xFXyg1KSk7CiAKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBBVDkxX1NNQ19EQldfOCB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIEFUOTFfU01DX0RCV184IHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygyKSk7CiAKIAkvKiBlbmFibGUgcGluICovCiAJaWYgKGRhdGEtPmVuYWJsZV9waW4pCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FwOWFkay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcDlhZGsuYwppbmRleCBlNTUxMmQxLi44YTJhOTU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FwOWFkay5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXA5YWRrLmMKQEAgLTc4LDYgKzc4LDEyIEBACiAJLnBvcnRzCQk9IDIsCiB9OwogCisvKgorICogVVNCIEhTIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhIF9faW5pdGRhdGEgY2FwOWFka191c2JhX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BCMzEsCit9OwogCiAvKgogICogQURTNzg0NiBUb3VjaHNjcmVlbgpAQCAtMzI2LDYgKzMzMiw5IEBACiAJLyogVVNCIEhvc3QgKi8KIAlzZXRfaXJxX3R5cGUoQVQ5MUNBUDlfSURfVUhQLCBJUlFUX0hJR0gpOwogCWF0OTFfYWRkX2RldmljZV91c2JoKCZjYXA5YWRrX3VzYmhfZGF0YSk7CisJLyogVVNCIEhTICovCisJc2V0X2lycV90eXBlKEFUOTFDQVA5X0lEX1VEUEhTLCBJUlFUX0hJR0gpOworCWF0OTFfYWRkX2RldmljZV91c2JhKCZjYXA5YWRrX3VzYmFfdWRjX2RhdGEpOwogCS8qIFNQSSAqLwogCWF0OTFfYWRkX2RldmljZV9zcGkoY2FwOWFka19zcGlfZGV2aWNlcywgQVJSQVlfU0laRShjYXA5YWRrX3NwaV9kZXZpY2VzKSk7CiAJLyogVG91Y2hzY3JlZW4gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXJtZXZhLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FybWV2YS5jCmluZGV4IDBmMDg3ODIuLjk4NTRmYzMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXJtZXZhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcm1ldmEuYwpAQCAtNDAsMjQgKzQwLDIxIEBACiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICovCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSBjYXJtZXZhX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAyLAotCS50dHlfbWFwCT0geyA0LCAxLCAtMSwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCiBzdGF0aWMgdm9pZCBfX2luaXQgY2FybWV2YV9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMjAuMDAwIE1IeiBjcnlzdGFsICovCiAJYXQ5MXJtOTIwMF9pbml0aWFsaXplKDIwMDAwMDAwLCBBVDkxUk05MjAwX0JHQSk7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgmY2FybWV2YV91YXJ0X2NvbmZpZyk7CisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGNhcm1ldmFfaW5pdF9pcnEodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jc2I2MzcuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jc2I2MzcuYwppbmRleCA0MTlmZDE5Li5iYjFhNTQ3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY3NiNjM3LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNzYjYzNy5jCkBAIC00NSwxMCArNDUsMTAgQEAKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMy42ODY0IE1IeiBjcnlzdGFsICovCiAJYXQ5MXJtOTIwMF9pbml0aWFsaXplKDM2ODY0MDAsIEFUOTFSTTkyMDBfQkdBKTsKIAotCS8qIERCR1Ugb24gdHR5UzAgKi8KKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLwogCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKIAotCS8qIG1ha2UgY29uc29sZT10dHlTMCB0aGUgZGVmYXVsdCAqLworCS8qIG1ha2UgY29uc29sZT10dHlTMCAoaWUsIERCR1UpIHRoZSBkZWZhdWx0ICovCiAJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1kay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWRrLmMKaW5kZXggYzFhODEzYy4uZGFiOTU4ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWRrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWRrLmMKQEAgLTQ1LDE3ICs0NSw2IEBACiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICovCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSBka191YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMiwKLQkudHR5X21hcAk9IHsgNCwgMSwgLTEsIC0xLCAtMSB9CQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGRrX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KQEAgLTY0LDggKzUzLDE2IEBACiAJLyogU2V0dXAgdGhlIExFRHMgKi8KIAlhdDkxX2luaXRfbGVkcyhBVDkxX1BJTl9QQjIsIEFUOTFfUElOX1BCMik7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgmZGtfdWFydF9jb25maWcpOworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQkgICB8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJICAgfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBka19pbml0X2lycSh2b2lkKQpAQCAtMTYzLDcgKzE2MCw3IEBACiAjZGVmaW5lIERLX0ZMQVNIX1NJWkUJMHgyMDAwMDAKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgZGtfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGgJPSAyLAorCS53aWR0aAkJPSAyLAogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBka19mbGFzaF9yZXNvdXJjZSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lYjkyMDAuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lYjkyMDAuYwppbmRleCBhZjFhMWQ4Li4zZmUwNTRlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZWI5MjAwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWViOTIwMC5jCkBAIC00MCwyNCArNDAsMjQgQEAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGViOTIwMF91YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMiwKLQkudHR5X21hcAk9IHsgNCwgMSwgLTEsIC0xLCAtMSB9CQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGViOTIwMF9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTguNDMyIE1IeiBjcnlzdGFsICovCiAJYXQ5MXJtOTIwMF9pbml0aWFsaXplKDE4NDMyMDAwLCBBVDkxUk05MjAwX0JHQSk7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgmZWI5MjAwX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMSBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMSwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCXwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBVU0FSVDIgb24gdHR5UzIuIChSeCwgVHgpIC0gSVJEQSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMiwgMiwgMCk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgZWI5MjAwX2luaXRfaXJxKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZWsuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lay5jCmluZGV4IDA1NzRlNTAuLjc0YWE0MzIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lay5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lay5jCkBAIC00NSwxNyArNDUsNiBAQAogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqLwotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEgZWtfdWFydF9jb25maWcgPSB7Ci0JLmNvbnNvbGVfdHR5CT0gMCwJCQkJLyogdHR5UzAgKi8KLQkubnJfdHR5CQk9IDIsCi0JLnR0eV9tYXAJPSB7IDQsIDEsIC0xLCAtMSwgLTEgfQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KIHN0YXRpYyB2b2lkIF9faW5pdCBla19tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTguNDMyIE1IeiBjcnlzdGFsICovCkBAIC02NCw4ICs1MywxNiBAQAogCS8qIFNldHVwIHRoZSBMRURzICovCiAJYXQ5MV9pbml0X2xlZHMoQVQ5MV9QSU5fUEIxLCBBVDkxX1BJTl9QQjIpOwogCi0JLyogU2V0dXAgdGhlIHNlcmlhbCBwb3J0cyBhbmQgY29uc29sZSAqLwotCWF0OTFfaW5pdF9zZXJpYWwoJmVrX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMSBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMSwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJICAgfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCSAgIHwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgZWtfaW5pdF9pcnEodm9pZCkKQEAgLTEyMiw3ICsxMTksNyBAQAogI2RlZmluZSBFS19GTEFTSF9TSVpFCTB4MjAwMDAwCiAKIHN0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIGVrX2ZsYXNoX2RhdGEgPSB7Ci0JLndpZHRoCT0gMiwKKwkud2lkdGgJCT0gMiwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZWtfZmxhc2hfcmVzb3VyY2UgPSB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQta2I5MjAyLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQta2I5MjAyLmMKaW5kZXggNGIzOWI5Yy4uY2IwNjVmZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWtiOTIwMi5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1rYjkyMDIuYwpAQCAtMzcsMjAgKzM3LDExIEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CiAKKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxcm05MjAwX21jLmg+CisKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGtiOTIwMl91YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkJLyogdHR5UzAgKi8KLQkubnJfdHR5CQk9IDMsCi0JLnR0eV9tYXAJPSB7IDQsIDAsIDEsIC0xLCAtMSB9CQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KIHN0YXRpYyB2b2lkIF9faW5pdCBrYjkyMDJfbWFwX2lvKHZvaWQpCiB7CiAJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDEwIE1IeiBjcnlzdGFsICovCkBAIC01OSw4ICs1MCwyMCBAQAogCS8qIFNldCB1cCB0aGUgTEVEcyAqLwogCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BDMTksIEFUOTFfUElOX1BDMTgpOwogCi0JLyogU2V0dXAgdGhlIHNlcmlhbCBwb3J0cyBhbmQgY29uc29sZSAqLwotCWF0OTFfaW5pdF9zZXJpYWwoJmtiOTIwMl91YXJ0X2NvbmZpZyk7CisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDAgb24gdHR5UzEgKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzAsIDEsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMyIChSeCAmIFR4IG9ubHkpIC0gSVJEQSAob3B0aW9uYWwpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAyLCAwKTsKKworCS8qIFVTQVJUMyBvbiB0dHlTMyAoUngsIFR4LCBDVFMsIFJUUykgLSBSUzQ4NSAob3B0aW9uYWwpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMzLCAzLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBrYjkyMDJfaW5pdF9pcnEodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1xaWwtYTkyNjAuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1xaWwtYTkyNjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWI0ZWMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jCkBAIC0wLDAgKzEsMjU1IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbGFvLXN5c3RlbXMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfc2hkd2MuaD4KKworI2luY2x1ZGUgImdlbmVyaWMuaCIKKworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfbWFwX2lvKHZvaWQpCit7CisJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDEyLjAwMCBNSHogY3J5c3RhbCAqLworCWF0OTFzYW05MjYwX2luaXRpYWxpemUoMTIwMDAwMDApOworCisJLyogREdCVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDAgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVNBTTkyNjBfSURfVVMwLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQkgICB8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJICAgfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIFVTQVJUMSBvbiB0dHlTMi4gKFJ4LCBUeCwgQ1RTLCBSVFMpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFTQU05MjYwX0lEX1VTMSwgMiwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUyk7CisKKwkvKiBVU0FSVDIgb24gdHR5UzMuIChSeCwgVHgsIENUUywgUlRTKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzIsIDMsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMxIChpZSwgVVNBUlQwKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDEpOworCit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19pbml0X2lycSh2b2lkKQoreworCWF0OTFzYW05MjYwX2luaXRfaW50ZXJydXB0cyhOVUxMKTsKK30KKworCisvKgorICogVVNCIEhvc3QgcG9ydAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdXNiaF9kYXRhIF9faW5pdGRhdGEgZWtfdXNiaF9kYXRhID0geworCS5wb3J0cwkJPSAyLAorfTsKKworLyoKKyAqIFVTQiBEZXZpY2UgcG9ydAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSBla191ZGNfZGF0YSA9IHsKKwkudmJ1c19waW4JPSBBVDkxX1BJTl9QQzUsCisJLnB1bGx1cF9waW4JPSAwLAkJLyogcHVsbC11cCBkcml2ZW4gYnkgVURDICovCit9OworCisvKgorICogU1BJIGRldmljZXMuCisgKi8KK3N0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gZWtfc3BpX2RldmljZXNbXSA9IHsKKyNpZiBkZWZpbmVkKENPTkZJR19SVENfRFJWX000MVQ5NCkKKwl7CS8qIE00MVQ5NCBSVEMgKi8KKwkJLm1vZGFsaWFzCT0gIm00MXQ5NCIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tYXhfc3BlZWRfaHoJPSAxICogMTAwMCAqIDEwMDAsCisJCS5idXNfbnVtCT0gMCwKKwl9CisjZW5kaWYKK307CisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEEzMSwKKwkuaXNfcm1paQk9IDEsCit9OworCisvKgorICogTkFORCBmbGFzaAorICovCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gX19pbml0ZGF0YSBla19uYW5kX3BhcnRpdGlvbltdID0geworCXsKKwkJLm5hbWUJPSAiVWJvb3QgJiBLZXJuZWwiLAorCQkub2Zmc2V0CT0gMHgwMDAwMDAwMCwKKwkJLnNpemUJPSAxNiAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJSb290IEZTIiwKKwkJLm9mZnNldAk9IDB4MDEwMDAwMDAsCisJCS5zaXplCT0gMTIwICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIkZTIiwKKwkJLm9mZnNldAk9IDB4MDg4MDAwMDAsCisJCS5zaXplCT0gMTIwICogMTAyNCAqIDEwMjQsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiAqIF9faW5pdCBuYW5kX3BhcnRpdGlvbnMoaW50IHNpemUsIGludCAqbnVtX3BhcnRpdGlvbnMpCit7CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShla19uYW5kX3BhcnRpdGlvbik7CisJcmV0dXJuIGVrX25hbmRfcGFydGl0aW9uOworfQorCitzdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgZWtfbmFuZF9kYXRhID0geworCS5hbGUJCT0gMjEsCisJLmNsZQkJPSAyMiwKKy8vCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMTMsCisJLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QQzE0LAorCS5wYXJ0aXRpb25faW5mbwk9IG5hbmRfcGFydGl0aW9ucywKKyNpZiBkZWZpbmVkKENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2KQorCS5idXNfd2lkdGhfMTYJPSAxLAorI2Vsc2UKKwkuYnVzX3dpZHRoXzE2CT0gMCwKKyNlbmRpZgorfTsKKworLyoKKyAqIE1DSSAoU0QvTU1DKQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfbW1jX2RhdGEgX19pbml0ZGF0YSBla19tbWNfZGF0YSA9IHsKKwkuc2xvdF9iCQk9IDAsCisJLndpcmU0CQk9IDEsCisvLwkuZGV0X3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCisvLwkud3BfcGluCQk9IC4uLiBub3QgY29ubmVjdGVkCisvLwkudmNjX3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCit9OworCisvKgorICogR1BJTyBCdXR0b25zCisgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19LRVlCT0FSRF9HUElPKSB8fCBkZWZpbmVkKENPTkZJR19LRVlCT0FSRF9HUElPX01PRFVMRSkKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBla19idXR0b25zW10gPSB7CisJewkvKiBVU0VSIFBVU0ggQlVUVE9OICovCisJCS5jb2RlCQk9IEtFWV9FTlRFUiwKKwkJLmdwaW8JCT0gQVQ5MV9QSU5fUEIxMCwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCQkuZGVzYwkJPSAidXNlcl9wYiIsCisJCS53YWtldXAJCT0gMSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIGVrX2J1dHRvbl9kYXRhID0geworCS5idXR0b25zCT0gZWtfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKGVrX2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZWtfYnV0dG9uX2RldmljZSA9IHsKKwkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKKwkuaWQJCT0gLTEsCisJLm51bV9yZXNvdXJjZXMJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZla19idXR0b25fZGF0YSwKKwl9Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfYWRkX2RldmljZV9idXR0b25zKHZvaWQpCit7CisJYXQ5MV9zZXRfR1BJT19wZXJpcGgoQVQ5MV9QSU5fUEIxMCwgMSk7CS8qIHVzZXIgcHVzaCBidXR0b24sIHB1bGwgdXAgZW5hYmxlZCAqLworCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCMTAsIDEpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZla19idXR0b25fZGV2aWNlKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfYWRkX2RldmljZV9idXR0b25zKHZvaWQpIHt9CisjZW5kaWYKKworLyoKKyAqIExFRHMKKyAqLworc3RhdGljIHN0cnVjdCBncGlvX2xlZCBla19sZWRzW10gPSB7CisJewkvKiB1c2VyX2xlZCAoZ3JlZW4pICovCisJCS5uYW1lCQkJPSAidXNlcl9sZWQiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEIyMSwKKwkJLmFjdGl2ZV9sb3cJCT0gMCwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJoZWFydGJlYXQiLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19ib2FyZF9pbml0KHZvaWQpCit7CisJLyogU2VyaWFsICovCisJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIb3N0ICovCisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJmVrX3VzYmhfZGF0YSk7CisJLyogVVNCIERldmljZSAqLworCWF0OTFfYWRkX2RldmljZV91ZGMoJmVrX3VkY19kYXRhKTsKKwkvKiBTUEkgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc3BpKGVrX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKGVrX3NwaV9kZXZpY2VzKSk7CisJLyogTkFORCAqLworCWF0OTFfYWRkX2RldmljZV9uYW5kKCZla19uYW5kX2RhdGEpOworCS8qIEkyQyAqLworCWF0OTFfYWRkX2RldmljZV9pMmMoTlVMTCwgMCk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIE1NQyAqLworCWF0OTFfYWRkX2RldmljZV9tbWMoMCwgJmVrX21tY19kYXRhKTsKKwkvKiBQdXNoIEJ1dHRvbnMgKi8KKwlla19hZGRfZGV2aWNlX2J1dHRvbnMoKTsKKwkvKiBMRURzICovCisJYXQ5MV9ncGlvX2xlZHMoZWtfbGVkcywgQVJSQVlfU0laRShla19sZWRzKSk7CisJLyogc2h1dGRvd24gY29udHJvbGxlciwgd2FrZXVwIGJ1dHRvbiAoNSBtc2VjIGxvdykgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX1NIRFdfTVIsIEFUOTFfU0hEV19DUFRXSzBfKDEwKSB8IEFUOTFfU0hEV19XS01PREUwX0xPVworCQkJCXwgQVQ5MV9TSERXX1JUVFdLRU4pOworfQorCitNQUNISU5FX1NUQVJUKFFJTF9BOTI2MCwgIkNBTEFPIFFJTF9BOTI2MCIpCisJLyogTWFpbnRhaW5lcjogY2FsYW8tc3lzdGVtcyAqLworCS5waHlzX2lvCT0gQVQ5MV9CQVNFX1NZUywKKwkuaW9fcGdfb2Zmc3QJPSAoQVQ5MV9WQV9CQVNFX1NZUyA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gQVQ5MV9TRFJBTV9CQVNFICsgMHgxMDAsCisJLnRpbWVyCQk9ICZhdDkxc2FtOTI2eF90aW1lciwKKwkubWFwX2lvCQk9IGVrX21hcF9pbywKKwkuaW5pdF9pcnEJPSBla19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lCT0gZWtfYm9hcmRfaW5pdCwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtc2FtOWcyMGVrLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtc2FtOWcyMGVrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU2MTdjMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05ZzIwZWsuYwpAQCAtMCwwICsxLDIxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUgU0FOIFBlb3BsZQorICogIENvcHlyaWdodCAoQykgMjAwOCBBdG1lbAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL2F0NzNjMjEzLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorCisjaW5jbHVkZSAiZ2VuZXJpYy5oIgorCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19tYXBfaW8odm9pZCkKK3sKKwkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTguNDMyIE1IeiBjcnlzdGFsICovCisJYXQ5MXNhbTkyNjBfaW5pdGlhbGl6ZSgxODQzMjAwMCk7CisKKwkvKiBER0JVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzAsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogVVNBUlQxIG9uIHR0eVMyLiAoUngsIFR4LCBSVFMsIENUUykgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVNBTTkyNjBfSURfVVMxLCAyLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19pbml0X2lycSh2b2lkKQoreworCWF0OTFzYW05MjYwX2luaXRfaW50ZXJydXB0cyhOVUxMKTsKK30KKworCisvKgorICogVVNCIEhvc3QgcG9ydAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdXNiaF9kYXRhIF9faW5pdGRhdGEgZWtfdXNiaF9kYXRhID0geworCS5wb3J0cwkJPSAyLAorfTsKKworLyoKKyAqIFVTQiBEZXZpY2UgcG9ydAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSBla191ZGNfZGF0YSA9IHsKKwkudmJ1c19waW4JPSBBVDkxX1BJTl9QQzUsCisJLnB1bGx1cF9waW4JPSAwLAkJLyogcHVsbC11cCBkcml2ZW4gYnkgVURDICovCit9OworCisKKy8qCisgKiBTUEkgZGV2aWNlcy4KKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBla19zcGlfZGV2aWNlc1tdID0geworI2lmICFkZWZpbmVkKENPTkZJR19NTUNfQVQ5MSkKKwl7CS8qIERhdGFGbGFzaCBjaGlwICovCisJCS5tb2RhbGlhcwk9ICJtdGRfZGF0YWZsYXNoIiwKKwkJLmNoaXBfc2VsZWN0CT0gMSwKKwkJLm1heF9zcGVlZF9oegk9IDE1ICogMTAwMCAqIDEwMDAsCisJCS5idXNfbnVtCT0gMCwKKwl9LAorI2lmIGRlZmluZWQoQ09ORklHX01URF9BVDkxX0RBVEFGTEFTSF9DQVJEKQorCXsJLyogRGF0YUZsYXNoIGNhcmQgKi8KKwkJLm1vZGFsaWFzCT0gIm10ZF9kYXRhZmxhc2giLAorCQkuY2hpcF9zZWxlY3QJPSAwLAorCQkubWF4X3NwZWVkX2h6CT0gMTUgKiAxMDAwICogMTAwMCwKKwkJLmJ1c19udW0JPSAwLAorCX0sCisjZW5kaWYKKyNlbmRpZgorfTsKKworCisvKgorICogTUFDQiBFdGhlcm5ldCBkZXZpY2UKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX2V0aF9kYXRhIF9faW5pdGRhdGEgZWtfbWFjYl9kYXRhID0geworCS5waHlfaXJxX3Bpbgk9IEFUOTFfUElOX1BBNywKKwkuaXNfcm1paQk9IDEsCit9OworCisKKy8qCisgKiBOQU5EIGZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIGVrX25hbmRfcGFydGl0aW9uW10gPSB7CisJeworCQkubmFtZSAgID0gIkJvb3RzdHJhcCIsCisJCS5vZmZzZXQgPSAwLAorCQkuc2l6ZSAgID0gNCAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJQYXJ0aXRpb24gMSIsCisJCS5vZmZzZXQJPSA0ICogMTAyNCAqIDEwMjQsCisJCS5zaXplCT0gNjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiUGFydGl0aW9uIDIiLAorCQkub2Zmc2V0CT0gNjQgKiAxMDI0ICogMTAyNCwKKwkJLnNpemUJPSBNVERQQVJUX1NJWl9GVUxMLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQoreworCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoZWtfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiBla19uYW5kX3BhcnRpdGlvbjsKK30KKworLyogZGV0X3BpbiBpcyBub3QgY29ubmVjdGVkICovCitzdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgZWtfbmFuZF9kYXRhID0geworCS5hbGUJCT0gMjEsCisJLmNsZQkJPSAyMiwKKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMTMsCisJLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QQzE0LAorCS5wYXJ0aXRpb25faW5mbwk9IG5hbmRfcGFydGl0aW9ucywKKyNpZiBkZWZpbmVkKENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2KQorCS5idXNfd2lkdGhfMTYJPSAxLAorI2Vsc2UKKwkuYnVzX3dpZHRoXzE2CT0gMCwKKyNlbmRpZgorfTsKKworCisvKgorICogTUNJIChTRC9NTUMpCisgKiBkZXRfcGluLCB3cF9waW4gYW5kIHZjY19waW4gYXJlIG5vdCBjb25uZWN0ZWQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX21tY19kYXRhIF9faW5pdGRhdGEgZWtfbW1jX2RhdGEgPSB7CisJLnNsb3RfYgkJPSAxLAorCS53aXJlNAkJPSAxLAorfTsKKworCisvKgorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIGVrX2xlZHNbXSA9IHsKKwl7CS8qICJib3R0b20iIGxlZCwgZ3JlZW4sIHVzZXJsZWQxIHRvIGJlIGRlZmluZWQgKi8KKwkJLm5hbWUJCQk9ICJkczUiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEE2LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gIm5vbmUiLAorCX0sCisJewkvKiAicG93ZXIiIGxlZCwgeWVsbG93ICovCisJCS5uYW1lCQkJPSAiZHMxIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BBOSwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJoZWFydGJlYXQiLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19ib2FyZF9pbml0KHZvaWQpCit7CisJLyogU2VyaWFsICovCisJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIb3N0ICovCisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJmVrX3VzYmhfZGF0YSk7CisJLyogVVNCIERldmljZSAqLworCWF0OTFfYWRkX2RldmljZV91ZGMoJmVrX3VkY19kYXRhKTsKKwkvKiBTUEkgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc3BpKGVrX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKGVrX3NwaV9kZXZpY2VzKSk7CisJLyogTkFORCAqLworCWF0OTFfYWRkX2RldmljZV9uYW5kKCZla19uYW5kX2RhdGEpOworCS8qIEV0aGVybmV0ICovCisJYXQ5MV9hZGRfZGV2aWNlX2V0aCgmZWtfbWFjYl9kYXRhKTsKKwkvKiBNTUMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfbW1jKDAsICZla19tbWNfZGF0YSk7CisJLyogSTJDICovCisJYXQ5MV9hZGRfZGV2aWNlX2kyYyhOVUxMLCAwKTsKKwkvKiBMRURzICovCisJYXQ5MV9ncGlvX2xlZHMoZWtfbGVkcywgQVJSQVlfU0laRShla19sZWRzKSk7Cit9CisKK01BQ0hJTkVfU1RBUlQoQVQ5MVNBTTlHMjBFSywgIkF0bWVsIEFUOTFTQU05RzIwLUVLIikKKwkvKiBNYWludGFpbmVyOiBBdG1lbCAqLworCS5waHlzX2lvCT0gQVQ5MV9CQVNFX1NZUywKKwkuaW9fcGdfb2Zmc3QJPSAoQVQ5MV9WQV9CQVNFX1NZUyA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gQVQ5MV9TRFJBTV9CQVNFICsgMHgxMDAsCisJLnRpbWVyCQk9ICZhdDkxc2FtOTI2eF90aW1lciwKKwkubWFwX2lvCQk9IGVrX21hcF9pbywKKwkuaW5pdF9pcnEJPSBla19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lCT0gZWtfYm9hcmRfaW5pdCwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtc2FtOXJsZWsuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05cmxlay5jCmluZGV4IGZmYzA1OTcuLmI2YTcwZmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05cmxlay5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05cmxlay5jCkBAIC01Niw2ICs1NiwxNCBAQAogCiAKIC8qCisgKiBVU0IgSFMgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCB1c2JhX3BsYXRmb3JtX2RhdGEgX19pbml0ZGF0YSBla191c2JhX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BBOCwKK307CisKKworLyoKICAqIE1DSSAoU0QvTU1DKQogICovCiBzdGF0aWMgc3RydWN0IGF0OTFfbW1jX2RhdGEgX19pbml0ZGF0YSBla19tbWNfZGF0YSA9IHsKQEAgLTE3NSw2ICsxODMsOCBAQAogewogCS8qIFNlcmlhbCAqLwogCWF0OTFfYWRkX2RldmljZV9zZXJpYWwoKTsKKwkvKiBVU0IgSFMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiYSgmZWtfdXNiYV91ZGNfZGF0YSk7CiAJLyogSTJDICovCiAJYXQ5MV9hZGRfZGV2aWNlX2kyYyhOVUxMLCAwKTsKIAkvKiBOQU5EICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtdXNiLWE5MjYwLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtdXNiLWE5MjYwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM3YWVkZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYwpAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUgU0FOIFBlb3BsZQorICogIENvcHlyaWdodCAoQykgMjAwNiBBdG1lbAorICogIENvcHlyaWdodCAoQykgMjAwNyBDYWxhby1zeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3NoZHdjLmg+CisKKyNpbmNsdWRlICJnZW5lcmljLmgiCisKKworc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQoreworCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxMi4wMDAgTUh6IGNyeXN0YWwgKi8KKwlhdDkxc2FtOTI2MF9pbml0aWFsaXplKDEyMDAwMDAwKTsKKworCS8qIERHQlUgb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BDNSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEEzMSwKKwkuaXNfcm1paQk9IDEsCit9OworCisvKgorICogTkFORCBmbGFzaAorICovCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gX19pbml0ZGF0YSBla19uYW5kX3BhcnRpdGlvbltdID0geworCXsKKwkJLm5hbWUJPSAiVWJvb3QgJiBLZXJuZWwiLAorCQkub2Zmc2V0CT0gMHgwMDAwMDAwMCwKKwkJLnNpemUJPSAxNiAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJSb290IEZTIiwKKwkJLm9mZnNldAk9IDB4MDEwMDAwMDAsCisJCS5zaXplCT0gMTIwICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIkZTIiwKKwkJLm9mZnNldAk9IDB4MDg4MDAwMDAsCisJCS5zaXplCT0gMTIwICogMTAyNCAqIDEwMjQsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uICogX19pbml0IG5hbmRfcGFydGl0aW9ucyhpbnQgc2l6ZSwgaW50ICpudW1fcGFydGl0aW9ucykKK3sKKwkqbnVtX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKGVrX25hbmRfcGFydGl0aW9uKTsKKwlyZXR1cm4gZWtfbmFuZF9wYXJ0aXRpb247Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSBla19uYW5kX2RhdGEgPSB7CisJLmFsZQkJPSAyMSwKKwkuY2xlCQk9IDIyLAorLy8JLmRldF9waW4JPSAuLi4gbm90IGNvbm5lY3RlZAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxMywKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTQsCisJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAorI2lmIGRlZmluZWQoQ09ORklHX01URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYpCisJLmJ1c193aWR0aF8xNgk9IDEsCisjZWxzZQorCS5idXNfd2lkdGhfMTYJPSAwLAorI2VuZGlmCit9OworCisvKgorICogR1BJTyBCdXR0b25zCisgKi8KKworI2lmIGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU8pIHx8IGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU9fTU9EVUxFKQorc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIGVrX2J1dHRvbnNbXSA9IHsKKwl7CS8qIFVTRVIgUFVTSCBCVVRUT04gKi8KKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjEwLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJCS5kZXNjCQk9ICJ1c2VyX3BiIiwKKwkJLndha2V1cAkJPSAxLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgZWtfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBla19idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoZWtfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBla19idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmVrX2J1dHRvbl9kYXRhLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkKK3sKKwlhdDkxX3NldF9HUElPX3BlcmlwaChBVDkxX1BJTl9QQjEwLCAxKTsJLyogdXNlciBwdXNoIGJ1dHRvbiwgcHVsbCB1cCBlbmFibGVkICovCisJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxMCwgMSk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmVrX2J1dHRvbl9kZXZpY2UpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KKyNlbmRpZgorCisvKgorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIGVrX2xlZHNbXSA9IHsKKwl7CS8qIHVzZXJfbGVkIChncmVlbikgKi8KKwkJLm5hbWUJCQk9ICJ1c2VyX2xlZCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjIxLAorCQkuYWN0aXZlX2xvdwkJPSAwLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2JvYXJkX2luaXQodm9pZCkKK3sKKwkvKiBTZXJpYWwgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc2VyaWFsKCk7CisJLyogVVNCIEhvc3QgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmZWtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgRGV2aWNlICovCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmZWtfdWRjX2RhdGEpOworCS8qIE5BTkQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfbmFuZCgmZWtfbmFuZF9kYXRhKTsKKwkvKiBJMkMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOworCS8qIEV0aGVybmV0ICovCisJYXQ5MV9hZGRfZGV2aWNlX2V0aCgmZWtfbWFjYl9kYXRhKTsKKwkvKiBQdXNoIEJ1dHRvbnMgKi8KKwlla19hZGRfZGV2aWNlX2J1dHRvbnMoKTsKKwkvKiBMRURzICovCisJYXQ5MV9ncGlvX2xlZHMoZWtfbGVkcywgQVJSQVlfU0laRShla19sZWRzKSk7CisJLyogc2h1dGRvd24gY29udHJvbGxlciwgd2FrZXVwIGJ1dHRvbiAoNSBtc2VjIGxvdykgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX1NIRFdfTVIsIEFUOTFfU0hEV19DUFRXSzBfKDEwKSB8IEFUOTFfU0hEV19XS01PREUwX0xPVworCQkJCXwgQVQ5MV9TSERXX1JUVFdLRU4pOworfQorCitNQUNISU5FX1NUQVJUKFVTQl9BOTI2MCwgIkNBTEFPIFVTQl9BOTI2MCIpCisJLyogTWFpbnRhaW5lcjogY2FsYW8tc3lzdGVtcyAqLworCS5waHlzX2lvCT0gQVQ5MV9CQVNFX1NZUywKKwkuaW9fcGdfb2Zmc3QJPSAoQVQ5MV9WQV9CQVNFX1NZUyA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gQVQ5MV9TRFJBTV9CQVNFICsgMHgxMDAsCisJLnRpbWVyCQk9ICZhdDkxc2FtOTI2eF90aW1lciwKKwkubWFwX2lvCQk9IGVrX21hcF9pbywKKwkuaW5pdF9pcnEJPSBla19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lCT0gZWtfYm9hcmRfaW5pdCwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtdXNiLWE5MjYzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtdXNiLWE5MjYzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU4MDBkMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYwpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUgU0FOIFBlb3BsZQorICogIENvcHlyaWdodCAoQykgMjAwNyBBdG1lbCBDb3Jwb3JhdGlvbi4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FsYW8tc3lzdGVtcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9zaGR3Yy5oPgorCisjaW5jbHVkZSAiZ2VuZXJpYy5oIgorCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19tYXBfaW8odm9pZCkKK3sKKwkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTIuMDAgTUh6IGNyeXN0YWwgKi8KKwlhdDkxc2FtOTI2M19pbml0aWFsaXplKDEyMDAwMDAwKTsKKworCS8qIERHQlUgb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjNfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BCMTEsCisJLnB1bGx1cF9waW4JPSAwLAkJLyogcHVsbC11cCBkcml2ZW4gYnkgVURDICovCit9OworCisvKgorICogU1BJIGRldmljZXMuCisgKi8KK3N0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gZWtfc3BpX2RldmljZXNbXSA9IHsKKyNpZiAhZGVmaW5lZChDT05GSUdfTU1DX0FUOTEpCisJewkvKiBEYXRhRmxhc2ggY2hpcCAqLworCQkubW9kYWxpYXMJPSAibXRkX2RhdGFmbGFzaCIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tYXhfc3BlZWRfaHoJPSAxNSAqIDEwMDAgKiAxMDAwLAorCQkuYnVzX251bQk9IDAsCisJfQorI2VuZGlmCit9OworCisvKgorICogTUFDQiBFdGhlcm5ldCBkZXZpY2UKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX2V0aF9kYXRhIF9faW5pdGRhdGEgZWtfbWFjYl9kYXRhID0geworCS5waHlfaXJxX3Bpbgk9IEFUOTFfUElOX1BFMzEsCisJLmlzX3JtaWkJPSAxLAorfTsKKworLyoKKyAqIE5BTkQgZmxhc2gKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgZWtfbmFuZF9wYXJ0aXRpb25bXSA9IHsKKwl7CisJCS5uYW1lCT0gIkxpbnV4IEtlcm5lbCIsCisJCS5vZmZzZXQJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQk9IDE2ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlJvb3QgRlMiLAorCQkub2Zmc2V0CT0gMHgwMTAwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiRlMiLAorCQkub2Zmc2V0CT0gMHgwODgwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQoreworCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoZWtfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiBla19uYW5kX3BhcnRpdGlvbjsKK30KKworc3RhdGljIHN0cnVjdCBhdDkxX25hbmRfZGF0YSBfX2luaXRkYXRhIGVrX25hbmRfZGF0YSA9IHsKKwkuYWxlCQk9IDIxLAorCS5jbGUJCT0gMjIsCisvLwkuZGV0X3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCisJLnJkeV9waW4JPSBBVDkxX1BJTl9QQTIyLAorCS5lbmFibGVfcGluCT0gQVQ5MV9QSU5fUEQxNSwKKwkucGFydGl0aW9uX2luZm8JPSBuYW5kX3BhcnRpdGlvbnMsCisjaWYgZGVmaW5lZChDT05GSUdfTVREX05BTkRfQVQ5MV9CVVNXSURUSF8xNikKKwkuYnVzX3dpZHRoXzE2CT0gMSwKKyNlbHNlCisJLmJ1c193aWR0aF8xNgk9IDAsCisjZW5kaWYKK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyAqLworI2lmIGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU8pIHx8IGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU9fTU9EVUxFKQorc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIGVrX2J1dHRvbnNbXSA9IHsKKwl7CS8qIFVTRVIgUFVTSCBCVVRUT04gKi8KKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjEwLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJCS5kZXNjCQk9ICJ1c2VyX3BiIiwKKwkJLndha2V1cAkJPSAxLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgZWtfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBla19idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoZWtfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBla19idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmVrX2J1dHRvbl9kYXRhLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkKK3sKKwlhdDkxX3NldF9HUElPX3BlcmlwaChBVDkxX1BJTl9QQjEwLCAxKTsJLyogdXNlciBwdXNoIGJ1dHRvbiwgcHVsbCB1cCBlbmFibGVkICovCisJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxMCwgMSk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmVrX2J1dHRvbl9kZXZpY2UpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KKyNlbmRpZgorCisvKgorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIGVrX2xlZHNbXSA9IHsKKwl7CS8qIHVzZXJfbGVkIChncmVlbikgKi8KKwkJLm5hbWUJCQk9ICJ1c2VyX2xlZCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjIxLAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfYm9hcmRfaW5pdCh2b2lkKQoreworCS8qIFNlcmlhbCAqLworCWF0OTFfYWRkX2RldmljZV9zZXJpYWwoKTsKKwkvKiBVU0IgSG9zdCAqLworCWF0OTFfYWRkX2RldmljZV91c2JoKCZla191c2JoX2RhdGEpOworCS8qIFVTQiBEZXZpY2UgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdWRjKCZla191ZGNfZGF0YSk7CisJLyogU1BJICovCisJYXQ5MV9hZGRfZGV2aWNlX3NwaShla19zcGlfZGV2aWNlcywgQVJSQVlfU0laRShla19zcGlfZGV2aWNlcykpOworCS8qIEV0aGVybmV0ICovCisJYXQ5MV9hZGRfZGV2aWNlX2V0aCgmZWtfbWFjYl9kYXRhKTsKKwkvKiBOQU5EICovCisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJmVrX25hbmRfZGF0YSk7CisJLyogSTJDICovCisJYXQ5MV9hZGRfZGV2aWNlX2kyYyhOVUxMLCAwKTsKKwkvKiBQdXNoIEJ1dHRvbnMgKi8KKwlla19hZGRfZGV2aWNlX2J1dHRvbnMoKTsKKwkvKiBMRURzICovCisJYXQ5MV9ncGlvX2xlZHMoZWtfbGVkcywgQVJSQVlfU0laRShla19sZWRzKSk7CisJLyogc2h1dGRvd24gY29udHJvbGxlciwgd2FrZXVwIGJ1dHRvbiAoNSBtc2VjIGxvdykgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX1NIRFdfTVIsIEFUOTFfU0hEV19DUFRXSzBfKDEwKSB8IEFUOTFfU0hEV19XS01PREUwX0xPVworCQkJCXwgQVQ5MV9TSERXX1JUVFdLRU4pOworfQorCitNQUNISU5FX1NUQVJUKFVTQl9BOTI2MywgIkNBTEFPIFVTQl9BOTI2MyIpCisJLyogTWFpbnRhaW5lcjogY2FsYW8tc3lzdGVtcyAqLworCS5waHlzX2lvCT0gQVQ5MV9CQVNFX1NZUywKKwkuaW9fcGdfb2Zmc3QJPSAoQVQ5MV9WQV9CQVNFX1NZUyA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gQVQ5MV9TRFJBTV9CQVNFICsgMHgxMDAsCisJLnRpbWVyCQk9ICZhdDkxc2FtOTI2eF90aW1lciwKKwkubWFwX2lvCQk9IGVrX21hcF9pbywKKwkuaW5pdF9pcnEJPSBla19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lCT0gZWtfYm9hcmRfaW5pdCwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQteWwtOTIwMC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXlsLTkyMDAuYwppbmRleCBiNTcxNzEwLi43MDc5MDUwIDEwMDc1NQotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQteWwtOTIwMC5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMKQEAgLTEsMTEgKzEsMTAgQEAKIC8qCiAgKiBsaW51eC9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQteWwtOTIwMC5jCiAgKgotICogQWRhcHRlZCBmcm9tOgotICp2YXJpb3VzIGJvYXJkIGZpbGVzIGluCi0gKiAvYXJjaC9hcm0vbWFjaC1hdDkxCi0gKiBtb2RpZmljYXRpb25zICB0byBjb252ZXJ0IHRvICBZTC05MjAwIHBsYXRmb3JtCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA3IFMuQmlydGxlcworICogQWRhcHRlZCBmcm9tIHZhcmlvdXMgYm9hcmQgZmlsZXMgaW4gYXJjaC9hcm0vbWFjaC1hdDkxCisgKgorICogTW9kaWZpY2F0aW9ucyBmb3IgWUwtOTIwMCBwbGF0Zm9ybToKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgUy4gQmlydGxlcwogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMjYsMTMgKzI1LDE0IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0vKiNpbmNsdWRlIDxsaW51eC9jYW5fYnVzL2NhbmRhdGEuaD4qLwogI2luY2x1ZGUgPGxpbnV4L3NwaS9hZHM3ODQ2Lmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgogCi0vKiNpbmNsdWRlIDxzb3VuZC9ncGlvX3NvdW5kZXIuaD4qLwogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CkBAIC00NSwxNzkgKzQ1LDEwOCBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDBfbWMuaD4KLSNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgogCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgotI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfcGlvLmg+CiAKLSNkZWZpbmUgWUxfOTIwMF9GTEFTSF9CQVNFCUFUOTFfQ0hJUFNFTEVDVF8wCi0jZGVmaW5lIFlMXzkyMDBfRkxBU0hfU0laRQkweDgwMDAwMAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqYXRtZWxfdXNhcnQuMDogdHR5UzAgYXQgTU1JTyAweGZlZmZmMjAwIChpcnEgPSAxKSBpcyBhIEFUTUVMX1NFUklBTAotICphdG1lbF91c2FydC4xOiB0dHlTMSBhdCBNTUlPIDB4ZmZmYzAwMDAgKGlycSA9IDYpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKmF0bWVsX3VzYXJ0LjI6IHR0eVMyIGF0IE1NSU8gMHhmZmZjNDAwMCAoaXJxID0gNykgaXMgYSBBVE1FTF9TRVJJQUwKLSAqYXRtZWxfdXNhcnQuMzogdHR5UzMgYXQgTU1JTyAweGZmZmM4MDAwIChpcnEgPSA4KSBpcyBhIEFUTUVMX1NFUklBTAotICphdG1lbF91c2FydC40OiB0dHlTNCBhdCBNTUlPIDB4ZmZmY2MwMDAgKGlycSA9IDkpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKiBvbiB0aGUgWUwtOTIwMCB3ZSBhcmUgc2l0dGluZyBhdCB0aGUgZm9sbG93aW5nCi0gKnR0eVMwIGF0IE1NSU8gMHhmZWZmZjIwMCAoaXJxID0gMSkgaXMgYSBBVDkxX1NFUklBTAotICp0dHlTMSBhdCBNTUlPIDB4ZmVmYzQwMDAgKGlycSA9IDcpIGlzIGEgQVQ5MV9TRVJJQUwKLSAqLwotCi0vKiBleHRlcm4gdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX3NvdW5kZXIoc3RydWN0IGdwaW9fc291bmRlciAqc291bmRlcnMsIGludCBucik7Ki8KLQotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEgeWxfOTIwMF91YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMywKLQkudHR5X21hcAk9IHsgNCwgMSwgMCwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9tYXBfaW8odm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfbWFwX2lvKHZvaWQpCiB7CiAJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDE4LjQzMiBNSHogY3J5c3RhbCAqLwotCS8qQWxzbyBpbml0aWFsaXNlcyByZWdpc3RlciBjbG9ja3MgJiBncGlvKi8KLQlhdDkxcm05MjAwX2luaXRpYWxpemUoMTg0MzIwMDAsIEFUOTFSTTkyMDBfUFFGUCk7IC8qd2UgaGF2ZSBhIDMgYmFuayBzeXN0ZW0qLworCWF0OTFybTkyMDBfaW5pdGlhbGl6ZSgxODQzMjAwMCwgQVQ5MVJNOTIwMF9QUUZQKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZ5bF85MjAwX3VhcnRfY29uZmlnKTsKKwkvKiBTZXR1cCB0aGUgTEVEcyBEMj1QQjE3ICh0aW1lciksIEQzPVBCMTYgKGNwdSkgKi8KKwlhdDkxX2luaXRfbGVkcyhBVDkxX1BJTl9QQjE2LCBBVDkxX1BJTl9QQjE3KTsKIAotCS8qIFNldHVwIHRoZSBMRURzIEQyPVBCMTcsRDM9UEIxNiAqLwotCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BCMTYsQVQ5MV9QSU5fUEIxNyk7IC8qY3B1LWxlZCx0aW1lci1sZWQqLworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQl8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMi4gKFJ4ICYgVHggb25seSB0byBKUDMpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMwLCAyLCAwKTsKKworCS8qIFVTQVJUMyBvbiB0dHlTMy4gKFJ4LCBUeCwgUlRTIC0gUlM0ODUgaW50ZXJmYWNlKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMywgMywgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IHlsXzkyMDBfaW5pdF9pcnEodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfaW5pdF9pcnEodm9pZCkKIHsKIAlhdDkxcm05MjAwX2luaXRfaW50ZXJydXB0cyhOVUxMKTsKIH0KIAotc3RhdGljIHN0cnVjdCBhdDkxX2V0aF9kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF9ldGhfZGF0YSA9IHsKLQkucGh5X2lycV9waW4JPSBBVDkxX1BJTl9QQjI4LAotCS5pc19ybWlpCT0gMSwKLX07CiAKLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX3VzYmhfZGF0YSA9IHsKLQkucG9ydHMJCT0gMSwgIC8qIHRoaXMgc2hvdWxkIGJlIDEgbm90IDIgZm9yIHRoZSBZbDkyMDAqLwotfTsKLQotc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF91ZGNfZGF0YSA9IHsKLS8qb24gc2hlZXQgNyBTY2hlbWl0aWMgcmV2IDEuMCovCi0JLnB1bGx1cF9waW4JPSBBVDkxX1BJTl9QQzQsCi0JLnZidXNfcGluPSAgQVQ5MV9QSU5fUEM1LAotCS5wdWxsdXBfYWN0aXZlX2xvdyA9IDEsIC8qQUNUSVZFIExPVyEhIGR1ZSB0byBQTlAgdHJhbnNpc3RvciBvbiBwYWdlIDcqLwotCi19OwogLyoKLXN0YXRpYyBzdHJ1Y3QgYXQ5MV9jZl9kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF9jZl9kYXRhID0gewotVE9ETyBTLkJJUlRMRVMKLQkuZGV0X3Bpbgk9IEFUOTFfUElOX3h4eCwKLQkucnN0X3Bpbgk9IEFUOTFfUElOX3h4eCwKLQkuaXJxX3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCi0JLnZjY19waW4JPSAuLi4gYWx3YXlzIHBvd2VyZWQKKyAqIExFRHMKKyAqLworc3RhdGljIHN0cnVjdCBncGlvX2xlZCB5bDkyMDBfbGVkc1tdID0geworCXsJLyogRDIgKi8KKwkJLm5hbWUJCQk9ICJsZWQyIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMTcsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAidGltZXIiLAorCX0sCisJewkvKiBEMyAqLworCQkubmFtZQkJCT0gImxlZDMiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEIxNiwKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJoZWFydGJlYXQiLAorCX0sCisJewkvKiBENCAqLworCQkubmFtZQkJCT0gImxlZDQiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEIxNSwKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwl9LAorCXsJLyogRDUgKi8KKwkJLm5hbWUJCQk9ICJsZWQ1IiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCOCwKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwl9Cit9OworCisvKgorICogRXRoZXJuZXQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX2V0aF9kYXRhIF9faW5pdGRhdGEgeWw5MjAwX2V0aF9kYXRhID0geworCS5waHlfaXJxX3BpbgkJPSBBVDkxX1BJTl9QQjI4LAorCS5pc19ybWlpCQk9IDEsCit9OworCisvKgorICogVVNCIEhvc3QKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIHlsOTIwMF91c2JoX2RhdGEgPSB7CisJLnBvcnRzCQkJPSAxLAkvKiBQUUZQIHZlcnNpb24gb2YgQVQ5MVJNOTIwMCAqLworfTsKKworLyoKKyAqIFVTQiBEZXZpY2UKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgeWw5MjAwX3VkY19kYXRhID0geworCS5wdWxsdXBfcGluCQk9IEFUOTFfUElOX1BDNCwKKwkudmJ1c19waW4JCT0gQVQ5MV9QSU5fUEM1LAorCS5wdWxsdXBfYWN0aXZlX2xvdwk9IDEsCS8qIEFjdGl2ZSBMb3cgZHVlIHRvIFBOUCB0cmFuc2lzdG9yIChwZyA3KSAqLwogCiB9OwotKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIHlsXzkyMDBfbW1jX2RhdGEgPSB7Ci0JLmRldF9waW4JPSBBVDkxX1BJTl9QQjksIC8qVEhJUyBMT09LUyBDT1JSRUNUIFNIRUVUNyovCi0vKgkud3BfcGluCQk9IC4uLiBub3QgY29ubmVjdGVkICBTSEVFVDcqLwotCS5zbG90X2IJCT0gMCwKKworLyoKKyAqIE1NQworICovCitzdGF0aWMgc3RydWN0IGF0OTFfbW1jX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfbW1jX2RhdGEgPSB7CisJLmRldF9waW4JPSBBVDkxX1BJTl9QQjksCisJLy8gLndwX3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCiAJLndpcmU0CQk9IDEsCi0KIH07CiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgVG91Y2ggc2NyZWVuCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2lmIGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDYpIHx8IGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDZfTU9EVUxFKQotc3RhdGljIGludCBhZHM3ODQzX3BlbmRvd25fc3RhdGUodm9pZCkKLXsKLQlyZXR1cm4gIWF0OTFfZ2V0X2dwaW9fdmFsdWUoQVQ5MV9QSU5fUEIxMSk7CS8qIFRvdWNoc2NyZWVuIFBFTklSUSAqLwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgYXQ5MV9pbml0X2RldmljZV90cyh2b2lkKQotewotLypJTVBPUlRBTlQgTk9URSBUSEUgU1BJIElOVEVSRkFDRSBJUyBBTFJFQURZIENPTkZJR1VSRUQgQlkgWFhYX0RFVklDRVMuQwotVEhBVCBJUyBUTyBTQVkgVEhBVCAgTUlTTyxNT1NJLFNQQ0sgQU5EIENTICBhcmUgYWxyZWFkeSBjb25maWd1cmVkCi13ZSBvbmx5IG5lZWQgdG8gZW5hYmxlIHRoZSBvdGhlciBkYXRhcGlucyB3aGljaCBhcmU6Ci1QQjEwL1JLMSBCVVNZCi0qLwotLyogVG91Y2hzY3JlZW4gQlVTWSBzaWduYWwgLCAgcGluLHVzZSBwdWxsdXAgKCBUT0RPIG5vdCBjdXJyZW50bHkgdXNlZCBpbiB0aGUgQURTNzg0My82LmMgZHJpdmVyKSovCi1hdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMTAsIDEpOwotfQotCi0jZWxzZQotc3RhdGljIHZvaWQgX19pbml0IGF0OTFfaW5pdF9kZXZpY2VfdHModm9pZCkge30KLSNlbmRpZgotCi1zdGF0aWMgc3RydWN0IGFkczc4NDZfcGxhdGZvcm1fZGF0YSBhZHNfaW5mbyA9IHsKLQkubW9kZWwJCQk9IDc4NDMsCi0JLnhfbWluCQkJPSAxNTAsCi0JLnhfbWF4CQkJPSAzODMwLAotCS55X21pbgkJCT0gMTkwLAotCS55X21heAkJCT0gMzgzMCwKLQkudnJlZl9kZWxheV91c2Vjcwk9IDEwMCwKLS8qIGZvciBhIDgiIHRvdWNoIHNjcmVlbiovCi0JLy8ueF9wbGF0ZV9vaG1zCQk9IDYwMywgLy89IDQ1MCwgUy5CaXJ0bGVzIFRPRE8KLQkvLy55X3BsYXRlX29obXMJCT0gMzMyLCAvLz0gMjUwLCBTLkJpcnRsZXMgVE9ETwotLypmb3IgYSAxMC40IiB0b3VjaCBzY3JlZW4qLwotCS8vLnhfcGxhdGVfb2htcwkJPTYxMSwKLQkvLy55X3BsYXRlX29obXMJCT0zMjUsCi0KLQkueF9wbGF0ZV9vaG1zCT0gNTc2LAotCS55X3BsYXRlX29obXMJPSAzNjYsCi0JCS8vCi0JLnByZXNzdXJlX21heAkJPSAxNTAwMCwgLypnZW5lcmFsbHkgbm9uc2Vuc2Ugb24gdGhlIDc4NDMqLwotCSAvKm51bWJlciBvZiB0aW1lcyB0byBzZW5kIHF1ZXJ5IHRvIGNoaXAgaW4gYSBnaXZlbiBydW4gMCBlcXVhbHMgb25lIHRpbWUgKGRvIG5vdCBzZXQgdG8gMCEhICx0aGVyZSBpcyBhIGJ1ZyBpbiBBRFMgNzg0NiBjb2RlKSovCi0JLmRlYm91bmNlX21heAkJPSAxLAotCS5kZWJvdW5jZV9yZXAJCT0gMCwKLQkuZGVib3VuY2VfdG9sCQk9ICh+MCksCi0JLmdldF9wZW5kb3duX3N0YXRlCT0gYWRzNzg0M19wZW5kb3duX3N0YXRlLAotfTsKLQotLypzdGF0aWMgc3RydWN0IGNhbmJ1c19wbGF0Zm9ybV9kYXRhIGNhbl9pbmZvID0gewotCS5tb2RlbAkJCT0gMjUxMCwKLX07Ci0qLwotCi1zdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIHlsXzkyMDBfc3BpX2RldmljZXNbXSA9IHsKLS8qdGhpcyBzdGlja3MgaXQgYXQ6Ci0gL3N5cy9kZXZpY2VzL3BsYXRmb3JtL2F0bWVsX3NwaS4wL3NwaTAuMAotIC9zeXMvYnVzL3BsYXRmb3JtL2RldmljZXMvCi1Eb2N1bWVudGF0aW9uL3NwaSBJSVJDKi8KLQotI2lmIGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDYpIHx8IGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDZfTU9EVUxFKQotIC8qKHRoaXMgSVMgY29ycmVjdCAwNC1OT1YtMjAwNykqLwotCXsKLQkJLm1vZGFsaWFzCQk9ICJhZHM3ODQ2IiwgLyogYmVjYXVzZSB0aGUgZHJpdmVyIGlzIGNhbGxlZCBhZHM3ODQ2Ki8KLQkJLmNoaXBfc2VsZWN0CT0gMCwgLypUSElTIE1VU1QgQkUgQU4gSU5ERVggSU5UTyBBTiBBUlJBWSBPRiAgcGlucyAqLwotLyp0aGlzIGlzIE9OTFkgVE8gQkUgVVNFRCBpZiBjaGlwc2VsZWN0IGFib3ZlIGlzIG5vdCB1c2VkLCBpdCBwYXNzZXMgYSBwaW4gZGlyZWN0bHkgZm9yIHRoZSBjaGlwIHNlbGVjdCovCi0JCS8qLmNvbnRyb2xsZXJfZGF0YSA9QVQ5MV9QSU5fUEEzICwqLwotCQkubWF4X3NwZWVkX2h6CT0gNTAwMCoyNiwgLyooNDcwMCAqIDI2KS0xMjUwMDAgKiAyNiwgKG1heCBzYW1wbGUgcmF0ZSBAIDNWKSAqIChjbWQgKyBkYXRhICsgb3ZlcmhlYWQpICovCi0JCS5idXNfbnVtCQk9IDAsCi0JCS5wbGF0Zm9ybV9kYXRhCT0gJmFkc19pbmZvLAotCQkuaXJxCQkJPSBBVDkxX1BJTl9QQjExLAotCX0sCi0jZW5kaWYKLS8qd2UgbmVlZCB0byBwdXQgb3VyIENBTiBkcml2ZXIgZGF0YSBoZXJlISEqLwotLypUSElTIElTIEFMTCBEVU1NWSBEQVRBKi8KLS8qCXsKLQkJLm1vZGFsaWFzCQk9ICJtY3AyNTEwIiwgLy9EVU1NWSBmb3IgTUNQMjUxMCBjaGlwCi0JCS5jaGlwX3NlbGVjdAk9IDEsKi8gLypUSElTIE1VU1QgQkUgQU4gSU5ERVggSU5UTyBBTiBBUlJBWSBPRiAgcGlucyAqLwotCS8qdGhpcyBpcyBPTkxZIFRPIEJFIFVTRUQgaWYgY2hpcHNlbGVjdCBhYm92ZSBpcyBub3QgdXNlZCwgaXQgcGFzc2VzIGEgcGluIGRpcmVjdGx5IGZvciB0aGUgY2hpcCBzZWxlY3QgKi8KLQkvKiAgLmNvbnRyb2xsZXJfZGF0YSA9QVQ5MV9QSU5fUEE0ICwKLQkJLm1heF9zcGVlZF9oegk9IDI1MDAwICogMjYsCi0JCS5idXNfbnVtCQk9IDAsCi0JCS5wbGF0Zm9ybV9kYXRhCT0gJmNhbl9pbmZvLAotCQkuaXJxCQkJPSBBVDkxX1BJTl9QQzAsCi0JfSwKLQkqLwotCS8vbWF4IFNQSSBjaGlwIG5lZWRzIHRvIGdvIGhlcmUKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIHlsXzkyMDBfbmFuZF9wYXJ0aXRpb25bXSA9IHsKKy8qCisgKiBOQU5EIEZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIHlsOTIwMF9uYW5kX3BhcnRpdGlvbltdID0gewogCXsKIAkJLm5hbWUJPSAiQVQ5MSBOQU5EIHBhcnRpdGlvbiAxLCBib290IiwKIAkJLm9mZnNldAk9IDAsCkBAIC0yNDIsNDQyICsxNzEsNDM0IEBACiAJCS5uYW1lCT0gIkFUOTEgTkFORCBwYXJ0aXRpb24gNSwgZXh0LWZzIiwKIAkJLm9mZnNldAk9IDMyICogU1pfMU0sCiAJCS5zaXplCT0gMzIgKiBTWl8xTQotCX0sCisJfQogfTsKIAogc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uICogX19pbml0IG5hbmRfcGFydGl0aW9ucyhpbnQgc2l6ZSwgaW50ICpudW1fcGFydGl0aW9ucykKIHsKLQkqbnVtX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKHlsXzkyMDBfbmFuZF9wYXJ0aXRpb24pOwotCXJldHVybiB5bF85MjAwX25hbmRfcGFydGl0aW9uOworCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoeWw5MjAwX25hbmRfcGFydGl0aW9uKTsKKwlyZXR1cm4geWw5MjAwX25hbmRfcGFydGl0aW9uOwogfQogCi1zdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF9uYW5kX2RhdGEgPSB7Ci0JLmFsZT0gNiwKLQkuY2xlPSA3LAotCS8qLmRldF9waW4JPSBBVDkxX1BJTl9QQ3h4LCovICAgLyp3ZSBkb24ndCBoYXZlIGEgZGV0IHBpbiBiZWNhdXNlIE5hbmRGbGFzaCBpcyBmaXhlZCB0byBib2FyZCovCi0JLnJkeV9waW4JPSBBVDkxX1BJTl9QQzE0LCAgLypSLyFCIFNoZWV0MTAqLwotCS5lbmFibGVfcGluCT0gQVQ5MV9QSU5fUEMxNSwgIC8qIUNFICBTaGVldDEwICovCitzdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgeWw5MjAwX25hbmRfZGF0YSA9IHsKKwkuYWxlCQk9IDYsCisJLmNsZQkJPSA3LAorCS8vIC5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMTQsCS8qIFIvIUIgKFNoZWV0MTApICovCisJLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QQzE1LAkvKiAhQ0UgIChTaGVldDEwKSAqLwogCS5wYXJ0aXRpb25faW5mbwk9IG5hbmRfcGFydGl0aW9ucywKIH07CiAKLQotCiAvKgotVE9ETyBTLkJpcnRsZXMKLXBvdGVudGlhbGx5IGEgcHJvYmxlbSB3aXRoIHRoZSBzaXplIGFib3ZlCi1waHlzbWFwIHBsYXRmb3JtIGZsYXNoIGRldmljZTogMDA4MDAwMDAgYXQgMTAwMDAwMDAKLXBoeXNtYXAtZmxhc2guMDogRm91bmQgMSB4MTYgZGV2aWNlcyBhdCAweDAgaW4gMTYtYml0IGJhbmsKLU5PUiBjaGlwIHRvbyBsYXJnZSB0byBmaXQgaW4gbWFwcGluZy4gQXR0ZW1wdGluZyB0byBjb3BlLi4uCi0gSW50ZWwvU2hhcnAgRXh0ZW5kZWQgUXVlcnkgVGFibGUgYXQgMHgwMDMxCi1Vc2luZyBidWZmZXIgd3JpdGUgbWV0aG9kCi1jZmlfY21kc2V0XzAwMDE6IEVyYXNlIHN1c3BlbmQgb24gd3JpdGUgZW5hYmxlZAotUmVkdWNpbmcgdmlzaWJpbGl0eSBvZiAxNjM4NEtpQiBjaGlwIHRvIDgxOTJLaUIKLSovCisgKiBOT1IgRmxhc2gKKyAqLworI2RlZmluZSBZTDkyMDBfRkxBU0hfQkFTRQlBVDkxX0NISVBTRUxFQ1RfMAorI2RlZmluZSBZTDkyMDBfRkxBU0hfU0laRQkweDEwMDAwMDAKIAotc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHlsXzkyMDBfZmxhc2hfcGFydGl0aW9uc1tdID0geworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHlsOTIwMF9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CiAJewotCQkubmFtZSA9CQkiQm9vdGxvYWRlciIsCi0JCS5zaXplID0JCTB4MDAwNDAwMDAsCi0JCS5vZmZzZXQgPQkwLAotCQkubWFza19mbGFncyA9CU1URF9XUklURUFCTEUgIC8qIGZvcmNlIHJlYWQtb25seSAqLwotCX0sewotCQkubmFtZSA9CQkiS2VybmVsIiwKLQkJLnNpemUgPQkJMHgwMDFDMDAwMCwKLQkJLm9mZnNldCA9CTB4MDAwNDAwMDAsCi0JfSx7Ci0JCS5uYW1lID0JCSJGaWxlc3lzdGVtIiwKLQkJLnNpemUgPQkJTVREUEFSVF9TSVpfRlVMTCwKLQkJLm9mZnNldCA9CTB4MDAyMDAwMDAKLQl9Ci0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHlsXzkyMDBfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGgJPSAyLAotCS5wYXJ0cyAgICAgICAgICA9IHlsXzkyMDBfZmxhc2hfcGFydGl0aW9ucywKLQkubnJfcGFydHMgICAgICAgPSBBUlJBWV9TSVpFKHlsXzkyMDBfZmxhc2hfcGFydGl0aW9ucyksCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHlsXzkyMDBfZmxhc2hfcmVzb3VyY2VzW10gPSB7Ci17Ci0JLnN0YXJ0CQk9IFlMXzkyMDBfRkxBU0hfQkFTRSwKLQkuZW5kCQk9IFlMXzkyMDBfRkxBU0hfQkFTRSArIFlMXzkyMDBfRkxBU0hfU0laRSAtIDEsCi0JLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCQkubmFtZQkJPSAiQm9vdGxvYWRlciIsCisJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisJCS5vZmZzZXQJCT0gMCwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLAkvKiBmb3JjZSByZWFkLW9ubHkgKi8KKwl9LAorCXsKKwkJLm5hbWUJCT0gIktlcm5lbCIsCisJCS5zaXplCQk9IDB4MDAxQzAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDA0MDAwMCwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIkZpbGVzeXN0ZW0iLAorCQkuc2l6ZQkJPSBNVERQQVJUX1NJWl9GVUxMLAorCQkub2Zmc2V0CQk9IDB4MDAyMDAwMDAKIAl9CiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB5bF85MjAwX2ZsYXNoID0geworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgeWw5MjAwX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDIsCisJLnBhcnRzCQk9IHlsOTIwMF9mbGFzaF9wYXJ0aXRpb25zLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUoeWw5MjAwX2ZsYXNoX3BhcnRpdGlvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB5bDkyMDBfZmxhc2hfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBZTDkyMDBfRkxBU0hfQkFTRSwKKwkJLmVuZAk9IFlMOTIwMF9GTEFTSF9CQVNFICsgWUw5MjAwX0ZMQVNIX1NJWkUgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB5bDkyMDBfZmxhc2ggPSB7CiAJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAogCS5pZAkJPSAwLAogCS5kZXYJCT0gewotCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnlsXzkyMDBfZmxhc2hfZGF0YSwKKwkJCQkucGxhdGZvcm1fZGF0YQk9ICZ5bDkyMDBfZmxhc2hfZGF0YSwKIAkJCX0sCi0JLnJlc291cmNlCT0geWxfOTIwMF9mbGFzaF9yZXNvdXJjZXMsCi0JLm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRSh5bF85MjAwX2ZsYXNoX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0geWw5MjAwX2ZsYXNoX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoeWw5MjAwX2ZsYXNoX3Jlc291cmNlcyksCiB9OwogCi0KLXN0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgeWxfOTIwMF9sZWRzW10gPSB7Ci0vKkQyICZEMyBhcmUgcGFzc2VkIGRpcmVjdGx5IGluIHZpYSBhdDkxX2luaXRfbGVkcyovCi0JewotCQkubmFtZQkJCT0gImxlZDQiLCAgLypENCovCi0JCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjE1LAotCQkuYWN0aXZlX2xvdwkJPSAxLAotCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCi0JCS8qLmRlZmF1bHRfdHJpZ2dlcgk9ICJ0aW1lciIsKi8KLQl9LAotCXsKLQkJLm5hbWUJCQk9ICJsZWQ1IiwgIC8qRDUqLwotCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEI4LAotCQkuYWN0aXZlX2xvdwkJPSAxLAotCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCi0JfQotfTsKLQotLy9zdGF0aWMgc3RydWN0IGdwaW9fc291bmRlciB5bF85MjAwX3NvdW5kZXJbXSA9IHsqLwotLypUaGlzIGlzIGEgc2ltcGxlIHNwZWFrZXIgYXR0YWNoZWQgdG8gYSBncG8gbGluZSovCi0KLS8vCXsKLS8vCQkubmFtZQkJCT0gIlNwZWFrZXIiLCAgLypMUzEqLwotLy8JCS5ncGlvCQkJPSBBVDkxX1BJTl9QQTIyLAotLy8JCS5hY3RpdmVfbG93CQk9IDAsCi0vLwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJoZWFydGJlYXQiLAotCQkvKi5kZWZhdWx0X3RyaWdnZXIJPSAidGltZXIiLCovCi0vLwl9LAotLy99OwotCi0KLQotc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIHlsXzkyMDBfaTJjX2RldmljZXNbXSA9IHsKLQl7Ci0JLypUT0RPKi8KLQkJSTJDX0JPQVJEX0lORk8oIkNTNDMzNCIsIDB4MDApLAotCX0KLX07Ci0KLQotIC8qCi0gKiBHUElPIEJ1dHRvbnMKKy8qCisgKiBJMkMgKFRXSSkKICAqLworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIHlsOTIwMF9pMmNfZGV2aWNlc1tdID0geworCXsJLyogRUVQUk9NICovCisJCUkyQ19CT0FSRF9JTkZPKCIyNGMxMjgiLCAweDUwKSwKKwl9Cit9OworCisvKgorICogR1BJTyBCdXR0b25zCisqLwogI2lmIGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU8pIHx8IGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU9fTU9EVUxFKQotc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIHlsXzkyMDBfYnV0dG9uc1tdID0geworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIHlsOTIwMF9idXR0b25zW10gPSB7CiAJewogCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQTI0LAotCQkuY29kZQk9IEJUTl8yLAorCQkuY29kZQkJPSBCVE5fMiwKIAkJLmRlc2MJCT0gIlNXMiIsCiAJCS5hY3RpdmVfbG93CT0gMSwKIAkJLndha2V1cAkJPSAxLAogCX0sCiAJewogCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjEsCi0JCS5jb2RlCT0gQlROXzMsCisJCS5jb2RlCQk9IEJUTl8zLAogCQkuZGVzYwkJPSAiU1czIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAogCQkud2FrZXVwCQk9IDEsCiAJfSwKIAl7CiAJCS5ncGlvCQk9IEFUOTFfUElOX1BCMiwKLQkJLmNvZGUJPSBCVE5fNCwKKwkJLmNvZGUJCT0gQlROXzQsCiAJCS5kZXNjCQk9ICJTVzQiLAogCQkuYWN0aXZlX2xvdwk9IDEsCiAJCS53YWtldXAJCT0gMSwKIAl9LAogCXsKIAkJLmdwaW8JCT0gQVQ5MV9QSU5fUEI2LAotCQkuY29kZQk9IEJUTl81LAorCQkuY29kZQkJPSBCVE5fNSwKIAkJLmRlc2MJCT0gIlNXNSIsCiAJCS5hY3RpdmVfbG93CT0gMSwKIAkJLndha2V1cAkJPSAxLAotCX0sCi0KKwl9CiB9OwogCi1zdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHlsXzkyMDBfYnV0dG9uX2RhdGEgPSB7Ci0JLmJ1dHRvbnMJPSB5bF85MjAwX2J1dHRvbnMsCi0JLm5idXR0b25zCT0gQVJSQVlfU0laRSh5bF85MjAwX2J1dHRvbnMpLAorc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSB5bDkyMDBfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSB5bDkyMDBfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHlsOTIwMF9idXR0b25zKSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsXzkyMDBfYnV0dG9uX2RldmljZSA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsOTIwMF9idXR0b25fZGV2aWNlID0gewogCS5uYW1lCQk9ICJncGlvLWtleXMiLAogCS5pZAkJPSAtMSwKIAkubnVtX3Jlc291cmNlcwk9IDAsCiAJLmRldgkJPSB7Ci0JLnBsYXRmb3JtX2RhdGEJPSAmeWxfOTIwMF9idXR0b25fZGF0YSwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmeWw5MjAwX2J1dHRvbl9kYXRhLAogCX0KIH07CiAKLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkKIHsKLQkvL1NXMgotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEEyNCwgMCk7CisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQTI0LCAxKTsJLyogU1cyICovCiAJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEEyNCwgMSk7Ci0KLQkvL1NXMwotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxLCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMSwgMSk7CS8qIFNXMyAqLwogCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCMSwgMSk7Ci0JLy9TVzQKLQlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMiwgMCk7CisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjIsIDEpOwkvKiBTVzQgKi8KIAlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjIsIDEpOwotCi0JLy9TVzUKLQlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCNiwgMCk7CisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjYsIDEpOwkvKiBTVzUgKi8KIAlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjYsIDEpOwogCisJLyogRW5hYmxlIGJ1dHRvbnMgKFNoZWV0IDUpICovCisJYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQVQ5MV9QSU5fUEI3LCAxKTsKIAotCWF0OTFfc2V0X2dwaW9fb3V0cHV0KEFUOTFfUElOX1BCNywgMSk7CS8qICNUVVJOIEJVVFRPTlMgT04sIFNIRUVUIDUgIG9mIHNjaGVtYXRpY3MgKi8KLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnlsXzkyMDBfYnV0dG9uX2RldmljZSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bDkyMDBfYnV0dG9uX2RldmljZSk7CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgX19pbml0IHlsXzkyMDBfYWRkX2RldmljZV9idXR0b25zKHZvaWQpIHt9CitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKSB7fQogI2VuZGlmCiAKKy8qCisgKiBUb3VjaHNjcmVlbgorICovCisjaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCitzdGF0aWMgaW50IGFkczc4NDNfcGVuZG93bl9zdGF0ZSh2b2lkKQoreworCXJldHVybiAhYXQ5MV9nZXRfZ3Bpb192YWx1ZShBVDkxX1BJTl9QQjExKTsJLyogVG91Y2hzY3JlZW4gUEVOSVJRICovCit9CisKK3N0YXRpYyBzdHJ1Y3QgYWRzNzg0Nl9wbGF0Zm9ybV9kYXRhIGFkc19pbmZvID0geworCS5tb2RlbAkJCT0gNzg0MywKKwkueF9taW4JCQk9IDE1MCwKKwkueF9tYXgJCQk9IDM4MzAsCisJLnlfbWluCQkJPSAxOTAsCisJLnlfbWF4CQkJPSAzODMwLAorCS52cmVmX2RlbGF5X3VzZWNzCT0gMTAwLAorCisJLyogRm9yIGEgOCIgdG91Y2gtc2NyZWVuICovCisJLy8gLnhfcGxhdGVfb2htcwkJPSA2MDMsCisJLy8gLnlfcGxhdGVfb2htcwkJPSAzMzIsCisKKwkvKiBGb3IgYSAxMC40IiB0b3VjaC1zY3JlZW4gKi8KKwkvLyAueF9wbGF0ZV9vaG1zCQk9IDYxMSwKKwkvLyAueV9wbGF0ZV9vaG1zCQk9IDMyNSwKKworCS54X3BsYXRlX29obXMJCT0gNTc2LAorCS55X3BsYXRlX29obXMJCT0gMzY2LAorCisJLnByZXNzdXJlX21heAkJPSAxNTAwMCwgLyogZ2VuZXJhbGx5IG5vbnNlbnNlIG9uIHRoZSA3ODQzICovCisJLmRlYm91bmNlX21heAkJPSAxLAorCS5kZWJvdW5jZV9yZXAJCT0gMCwKKwkuZGVib3VuY2VfdG9sCQk9ICh+MCksCisJLmdldF9wZW5kb3duX3N0YXRlCT0gYWRzNzg0M19wZW5kb3duX3N0YXRlLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9hZGRfZGV2aWNlX3RzKHZvaWQpCit7CisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjExLCAxKTsJLyogVG91Y2hzY3JlZW4gaW50ZXJydXB0IHBpbiAqLworCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxMCwgMSk7CS8qIFRvdWNoc2NyZWVuIEJVU1kgc2lnbmFsIC0gbm90IHVzZWQhICovCit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9hZGRfZGV2aWNlX3RzKHZvaWQpIHt9CisjZW5kaWYKKworLyoKKyAqIFNQSSBkZXZpY2VzCisgKi8KK3N0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8geWw5MjAwX3NwaV9kZXZpY2VzW10gPSB7CisjaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCisJewkvKiBUb3VjaHNjcmVlbiAqLworCQkubW9kYWxpYXMJPSAiYWRzNzg0NiIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tYXhfc3BlZWRfaHoJPSA1MDAwICogMjYsCisJCS5wbGF0Zm9ybV9kYXRhCT0gJmFkc19pbmZvLAorCQkuaXJxCQk9IEFUOTFfUElOX1BCMTEsCisJfSwKKyNlbmRpZgorCXsJLyogQ0FOICovCisJCS5tb2RhbGlhcwk9ICJtY3AyNTEwIiwKKwkJLmNoaXBfc2VsZWN0CT0gMSwKKwkJLm1heF9zcGVlZF9oegk9IDI1MDAwICogMjYsCisJCS5pcnEJCT0gQVQ5MV9QSU5fUEMwLAorCX0KK307CisKKy8qCisgKiBMQ0QgLyBWR0EKKyAqCisgKiBFUFNPTiBTMUQxMzgwNiBGQiAoZGlzY29udGludWVkIGNoaXApCisgKiBFUFNPTiBTMUQxMzUwNiBGQgorICovCiAjaWYgZGVmaW5lZChDT05GSUdfRkJfUzFEMTM1WFgpIHx8IGRlZmluZWQoQ09ORklHX0ZCX1MxRDEzWFhYX01PRFVMRSkKICNpbmNsdWRlIDx2aWRlby9zMWQxM3h4eGZiLmg+CiAKLS8qIEVQU09OIFMxRDEzODA2IEZCIChkaXNjb250aW51ZWQgY2hpcCkqLwotLyogRVBTT04gUzFEMTM1MDYgRkIgKi8KLQogI2RlZmluZSBBVDkxX0ZCX1JFR19CQVNFCTB4ODAwMDAwMDBMCiAjZGVmaW5lIEFUOTFfRkJfUkVHX1NJWkUJMHgyMDAKICNkZWZpbmUgQVQ5MV9GQl9WTUVNX0JBU0UJMHg4MDIwMDAwMEwKICNkZWZpbmUgQVQ5MV9GQl9WTUVNX1NJWkUJMHgyMDAwMDBMCiAKLS8qI2RlZmluZSBTMURfRElTUExBWV9XSURUSCAgICAgICAgICAgNjQwKi8KLS8qI2RlZmluZSBTMURfRElTUExBWV9IRUlHSFQgICAgICAgICAgNDgwKi8KLQotCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9pbml0X3ZpZGVvKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2luaXRfdmlkZW8odm9pZCkKIHsKLQlhdDkxX3N5c193cml0ZShBVDkxX1BJT0MgKyBQSU9fQVNSLEFUOTFfUElOX1BDNik7Ci0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9QSU9DICsgUElPX0JTUiwwKTsKLQlhdDkxX3N5c193cml0ZShBVDkxX1BJT0MgKyBQSU9fQVNSLEFUOTFfUElOX1BDNik7CisJLyogTldBSVQgU2lnbmFsICovCisJYXQ5MV9zZXRfQV9wZXJpcGgoQVQ5MV9QSU5fUEM2LCAwKTsKIAotCWF0OTFfc3lzX3dyaXRlKCBBVDkxX1NNQ19DU1IoMiksCi0JQVQ5MV9TTUNfTldTXygweDQpIHwKLQlBVDkxX1NNQ19XU0VOIHwKLQlBVDkxX1NNQ19UREZfKDB4MTAwKSB8Ci0JQVQ5MV9TTUNfREJXCisJLyogSW5pdGlhbGl6YXRpb24gb2YgdGhlIFN0YXRpYyBNZW1vcnkgQ29udHJvbGxlciBmb3IgQ2hpcCBTZWxlY3QgMiAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NTUigyKSwgQVQ5MV9TTUNfREJXXzE2CQkvKiAxNiBiaXQgKi8KKwkJCXwgQVQ5MV9TTUNfV1NFTiB8IEFUOTFfU01DX05XU18oMHg0KQkvKiB3YWl0IHN0YXRlcyAqLworCQkJfCBBVDkxX1NNQ19UREZfKDB4MTAwKQkJCS8qIGZsb2F0IHRpbWUgKi8KIAkpOwotCi0KLQogfQogCi0KLXN0YXRpYyBzdHJ1Y3QgczFkMTN4eHhmYl9yZWd2YWwgeWxfOTIwMF9zMWRmYl9pbml0cmVnc1tdID0KK3N0YXRpYyBzdHJ1Y3QgczFkMTN4eHhmYl9yZWd2YWwgeWw5MjAwX3MxZGZiX2luaXRyZWdzW10gPQogewotCXtTMURSRUdfTUlTQywJCQkJMHgwMH0sICAgLyogTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCi0Je1MxRFJFR19DT01fRElTUF9NT0RFLAkJMHgwMX0sICAgLyogRGlzcGxheSBNb2RlIFJlZ2lzdGVyLCBMQ0Qgb25seSovCi0Je1MxRFJFR19HUElPX0NORjAsCQkJMHgwMH0sICAgLyogR2VuZXJhbCBJTyBQaW5zIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfR1BJT19DVEwwLAkJCTB4MDB9LCAgIC8qIEdlbmVyYWwgSU8gUGlucyBDb250cm9sIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NMS19DTkYsCQkJMHgxMX0sICAgLyogTWVtb3J5IENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NMS19DTkYsCQkweDEwfSwgICAvKiBMQ0QgUGl4ZWwgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ0xLX0NORiwJCTB4MTJ9LCAgIC8qIENSVC9UViBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX01QTFVHX0NMS19DTkYsCQkweDAxfSwgICAvKiBNZWRpYVBsdWcgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19DUFUyTUVNX1dTVF9TRUwsCTB4MDJ9LCAgIC8qIENQVSBUbyBNZW1vcnkgV2FpdCBTdGF0ZSBTZWxlY3QgUmVnaXN0ZXIqLwotCXtTMURSRUdfTUVNX0NORiwJCQkweDAwfSwgICAvKiBNZW1vcnkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19TRFJBTV9SRUZfUkFURSwJCTB4MDR9LCAgIC8qIERSQU0gUmVmcmVzaCBSYXRlIFJlZ2lzdGVyLCBNQ0xLIHNvdXJjZSovCi0Je1MxRFJFR19TRFJBTV9UQzAsCQkJMHgxMn0sICAgLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19TRFJBTV9UQzEsCQkJMHgwMn0sICAgLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19QQU5FTF9UWVBFLAkJCTB4MjV9LCAgIC8qIFBhbmVsIFR5cGUgUmVnaXN0ZXIqLwotCXtTMURSRUdfTU9EX1JBVEUsCQkJMHgwMH0sICAgLyogTU9EIFJhdGUgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfSFdJRFRILAkweDRGfSwgICAvKiBMQ0QgSG9yaXpvbnRhbCBEaXNwbGF5IFdpZHRoIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9ORElTUF9IUEVSLAkJMHgxM30sICAgLyogTENEIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1RGVF9GUExJTkVfU1RBUlQsCTB4MDF9LCAgIC8qIFRGVCBGUExJTkUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQTElORV9QV0lEVEgsCTB4MGN9LCAgIC8qIFRGVCBGUExJTkUgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfVkhFSUdIVDAsCTB4REZ9LCAgIC8qIExDRCBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0xDRF9ESVNQX1ZIRUlHSFQxLAkweDAxfSwgICAvKiBMQ0QgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfTkRJU1BfVlBFUiwJCTB4MmN9LCAgIC8qIExDRCBWZXJ0aWNhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQRlJBTUVfU1RBUlQsCTB4MGF9LCAgIC8qIFRGVCBGUEZSQU1FIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1RGVF9GUEZSQU1FX1BXSURUSCwJMHgwMn0sICAgLyogVEZUIEZQRlJBTUUgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfTU9ERSwJCTB4MDV9LCAgIC8qIExDRCBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX01JU0MsCQkJMHgwMX0sICAgLyogTENEIE1pc2NlbGxhbmVvdXMgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfU1RBUlQwLAkweDAwfSwgICAvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX0RJU1BfU1RBUlQxLAkweDAwfSwgICAvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfTENEX0RJU1BfU1RBUlQyLAkweDAwfSwgICAvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLwotCXtTMURSRUdfTENEX01FTV9PRkYwLAkJMHg4MH0sICAgLyogTENEIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0xDRF9NRU1fT0ZGMSwJCTB4MDJ9LCAgIC8qIExDRCBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfUElYX1BBTiwJCTB4MDN9LCAgIC8qIExDRCBQaXhlbCBQYW5uaW5nIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9ESVNQX0ZJRk9fSFRDLAkweDAwfSwgICAvKiBMQ0QgRGlzcGxheSBGSUZPIEhpZ2ggVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfRklGT19MVEMsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IEZJRk8gTG93IFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9ESVNQX0hXSURUSCwJMHg0Rn0sICAgLyogQ1JUL1RWIEhvcml6b250YWwgRGlzcGxheSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfTkRJU1BfSFBFUiwJCTB4MTN9LCAgIC8qIENSVC9UViBIb3Jpem9udGFsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfSFJUQ19TVEFSVCwJCTB4MDF9LCAgIC8qIENSVC9UViBIUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9IUlRDX1BXSURUSCwJMHgwQn0sICAgLyogQ1JUL1RWIEhSVEMgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0RJU1BfVkhFSUdIVDAsCTB4REZ9LCAgIC8qIENSVC9UViBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1ZIRUlHSFQxLAkweDAxfSwgICAvKiBDUlQvVFYgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19DUlRfTkRJU1BfVlBFUiwJCTB4MkJ9LCAgIC8qIENSVC9UViBWZXJ0aWNhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX1ZSVENfU1RBUlQsCQkweDA5fSwgICAvKiBDUlQvVFYgVlJUQyBTdGFydCBQb3NpdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfVlJUQ19QV0lEVEgsCTB4MDF9LCAgIC8qIENSVC9UViBWUlRDIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1RWX09VVF9DVEwsCQkJMHgxOH0sICAgLyogVFYgT3V0cHV0IENvbnRyb2wgUmVnaXN0ZXIgKi8KLQl7UzFEUkVHX0NSVF9ESVNQX01PREUsCQkweDA1fSwgICAvKiBDUlQvVFYgRGlzcGxheSBNb2RlIFJlZ2lzdGVyLCAxNkJQUCovCi0Je1MxRFJFR19DUlRfRElTUF9TVEFSVDAsCTB4MDB9LCAgIC8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19DUlRfRElTUF9TVEFSVDEsCTB4MDB9LCAgIC8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19DUlRfRElTUF9TVEFSVDIsCTB4MDB9LCAgIC8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19DUlRfTUVNX09GRjAsCQkweDgwfSwgICAvKiBDUlQvVFYgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX01FTV9PRkYxLAkJMHgwMn0sICAgLyogQ1JUL1RWIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9QSVhfUEFOLAkJMHgwMH0sICAgLyogQ1JUL1RWIFBpeGVsIFBhbm5pbmcgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0RJU1BfRklGT19IVEMsCTB4MDB9LCAgIC8qIENSVC9UViBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfRElTUF9GSUZPX0xUQywJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgRklGTyBMb3cgVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9DVEwsCQkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBDb250cm9sIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfU1RBUlQsCQkweDAxfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfWFBPUzAsCQkweDAwfSwgICAvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19MQ0RfQ1VSX1hQT1MxLAkJMHgwMH0sICAgLyogTENEIEN1cnNvciBYIFBvc2l0aW9uIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfTENEX0NVUl9ZUE9TMCwJCTB4MDB9LCAgIC8qIExDRCBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0xDRF9DVVJfWVBPUzEsCQkweDAwfSwgICAvKiBMQ0QgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfQ1VSX0JDVEwwLAkJMHgwMH0sICAgLyogTENEIEluay9DdXJzb3IgQmx1ZSBDb2xvciAwIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfR0NUTDAsCQkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAwIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfUkNUTDAsCQkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ1VSX0JDVEwxLAkJMHgxRn0sICAgLyogTENEIEluay9DdXJzb3IgQmx1ZSBDb2xvciAxIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfR0NUTDEsCQkweDNGfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAxIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfUkNUTDEsCQkweDFGfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMSBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ1VSX0ZJRk9fSFRDLAkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBGSUZPIFRocmVzaG9sZCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX0NUTCwJCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9TVEFSVCwJCTB4MDF9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9YUE9TMCwJCTB4MDB9LCAgIC8qIENSVC9UViBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0NSVF9DVVJfWFBPUzEsCQkweDAwfSwgICAvKiBDUlQvVFYgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19DUlRfQ1VSX1lQT1MwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX0NVUl9ZUE9TMSwJCTB4MDB9LCAgIC8qIENSVC9UViBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9DVVJfQkNUTDAsCQkweDAwfSwgICAvKiBDUlQvVFYgSW5rL0N1cnNvciBCbHVlIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9HQ1RMMCwJCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMCwJCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIFJlZCBDb2xvciAwIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DVVJfQkNUTDEsCQkweDFGfSwgICAvKiBDUlQvVFYgSW5rL0N1cnNvciBCbHVlIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9HQ1RMMSwJCTB4M0Z9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMSwJCTB4MUZ9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIFJlZCBDb2xvciAxIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DVVJfRklGT19IVEMsCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEZJRk8gVGhyZXNob2xkIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0JCTFRfQ1RMMCwJCQkweDAwfSwgICAvKiBCaXRCbHQgQ29udHJvbCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfQ1RMMSwJCQkweDAxfSwgICAvKiBCaXRCbHQgQ29udHJvbCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfQ0NfRVhQLAkJMHgwMH0sICAgLyogQml0Qmx0IFJPUCBDb2RlL0NvbG9yIEV4cGFuc2lvbiBSZWdpc3RlciovCi0Je1MxRFJFR19CQkxUX09QLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBPcGVyYXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQwLAkweDAwfSwgICAvKiBCaXRCbHQgU291cmNlIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX1NSQ19TVEFSVDEsCTB4MDB9LCAgIC8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMiwJMHgwMH0sICAgLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLwotCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQwLAkweDAwfSwgICAvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMSwJMHgwMH0sICAgLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19CQkxUX0RTVF9TVEFSVDIsCTB4MDB9LCAgIC8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLwotCXtTMURSRUdfQkJMVF9NRU1fT0ZGMCwJCTB4MDB9LCAgIC8qIEJpdEJsdCBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX01FTV9PRkYxLAkJMHgwMH0sICAgLyogQml0Qmx0IE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfV0lEVEgwLAkJMHgwMH0sICAgLyogQml0Qmx0IFdpZHRoIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9XSURUSDEsCQkweDAwfSwgICAvKiBCaXRCbHQgV2lkdGggUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19CQkxUX0hFSUdIVDAsCQkweDAwfSwgICAvKiBCaXRCbHQgSGVpZ2h0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9IRUlHSFQxLAkJMHgwMH0sICAgLyogQml0Qmx0IEhlaWdodCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfQkdDMCwJCQkweDAwfSwgICAvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfQkdDMSwJCQkweDAwfSwgICAvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfRkdDMCwJCQkweDAwfSwgICAvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfRkdDMSwJCQkweDAwfSwgICAvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xLVVBfTU9ERSwJCQkweDAwfSwgICAvKiBMb29rLVVwIFRhYmxlIE1vZGUgUmVnaXN0ZXIqLwotCXtTMURSRUdfTEtVUF9BRERSLAkJCTB4MDB9LCAgIC8qIExvb2stVXAgVGFibGUgQWRkcmVzcyBSZWdpc3RlciovCi0Je1MxRFJFR19QU19DTkYsCQkJCTB4MDB9LCAgIC8qIFBvd2VyIFNhdmUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19QU19TVEFUVVMsCQkJMHgwMH0sICAgLyogUG93ZXIgU2F2ZSBTdGF0dXMgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1BVMk1FTV9XRE9HVCwJCTB4MDB9LCAgIC8qIENQVS10by1NZW1vcnkgQWNjZXNzIFdhdGNoZG9nIFRpbWVyIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NPTV9ESVNQX01PREUsCQkweDAxfSwgICAvKiBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIExDRCBvbmx5Ki8KKwl7UzFEUkVHX01JU0MsCQkJMHgwMH0sCS8qIE1pc2NlbGxhbmVvdXMgUmVnaXN0ZXIqLworCXtTMURSRUdfQ09NX0RJU1BfTU9ERSwJCTB4MDF9LAkvKiBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIExDRCBvbmx5Ki8KKwl7UzFEUkVHX0dQSU9fQ05GMCwJCTB4MDB9LAkvKiBHZW5lcmFsIElPIFBpbnMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19HUElPX0NUTDAsCQkweDAwfSwJLyogR2VuZXJhbCBJTyBQaW5zIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfQ0xLX0NORiwJCTB4MTF9LAkvKiBNZW1vcnkgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ0xLX0NORiwJCTB4MTB9LAkvKiBMQ0QgUGl4ZWwgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ0xLX0NORiwJCTB4MTJ9LAkvKiBDUlQvVFYgUGl4ZWwgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19NUExVR19DTEtfQ05GLAkJMHgwMX0sCS8qIE1lZGlhUGx1ZyBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NQVTJNRU1fV1NUX1NFTCwJMHgwMn0sCS8qIENQVSBUbyBNZW1vcnkgV2FpdCBTdGF0ZSBTZWxlY3QgUmVnaXN0ZXIqLworCXtTMURSRUdfTUVNX0NORiwJCTB4MDB9LAkvKiBNZW1vcnkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19TRFJBTV9SRUZfUkFURSwJCTB4MDR9LAkvKiBEUkFNIFJlZnJlc2ggUmF0ZSBSZWdpc3RlciwgTUNMSyBzb3VyY2UqLworCXtTMURSRUdfU0RSQU1fVEMwLAkJMHgxMn0sCS8qIERSQU0gVGltaW5ncyBDb250cm9sIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfU0RSQU1fVEMxLAkJMHgwMn0sCS8qIERSQU0gVGltaW5ncyBDb250cm9sIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfUEFORUxfVFlQRSwJCTB4MjV9LAkvKiBQYW5lbCBUeXBlIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX01PRF9SQVRFLAkJMHgwMH0sCS8qIE1PRCBSYXRlIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX0hXSURUSCwJMHg0Rn0sCS8qIExDRCBIb3Jpem9udGFsIERpc3BsYXkgV2lkdGggUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX05ESVNQX0hQRVIsCQkweDEzfSwJLyogTENEIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RGVF9GUExJTkVfU1RBUlQsCTB4MDF9LAkvKiBURlQgRlBMSU5FIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RGVF9GUExJTkVfUFdJRFRILAkweDBjfSwJLyogVEZUIEZQTElORSBQdWxzZSBXaWR0aCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9WSEVJR0hUMCwJMHhERn0sCS8qIExDRCBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1ZIRUlHSFQxLAkweDAxfSwJLyogTENEIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDEqLworCXtTMURSRUdfTENEX05ESVNQX1ZQRVIsCQkweDJjfSwJLyogTENEIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCisJe1MxRFJFR19URlRfRlBGUkFNRV9TVEFSVCwJMHgwYX0sCS8qIFRGVCBGUEZSQU1FIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RGVF9GUEZSQU1FX1BXSURUSCwJMHgwMn0sCS8qIFRGVCBGUEZSQU1FIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX01PREUsCQkweDA1fSwJLyogTENEIERpc3BsYXkgTW9kZSBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfTUlTQywJCTB4MDF9LAkvKiBMQ0QgTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9TVEFSVDAsCTB4MDB9LAkvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0RJU1BfU1RBUlQxLAkweDAwfSwJLyogTENEIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1NUQVJUMiwJMHgwMH0sCS8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCisJe1MxRFJFR19MQ0RfTUVNX09GRjAsCQkweDgwfSwJLyogTENEIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0xDRF9NRU1fT0ZGMSwJCTB4MDJ9LAkvKiBMQ0QgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLworCXtTMURSRUdfTENEX1BJWF9QQU4sCQkweDAzfSwJLyogTENEIFBpeGVsIFBhbm5pbmcgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfRklGT19IVEMsCTB4MDB9LAkvKiBMQ0QgRGlzcGxheSBGSUZPIEhpZ2ggVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfRklGT19MVEMsCTB4MDB9LAkvKiBMQ0QgRGlzcGxheSBGSUZPIExvdyBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfRElTUF9IV0lEVEgsCTB4NEZ9LAkvKiBDUlQvVFYgSG9yaXpvbnRhbCBEaXNwbGF5IFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ORElTUF9IUEVSLAkJMHgxM30sCS8qIENSVC9UViBIb3Jpem9udGFsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfSFJUQ19TVEFSVCwJCTB4MDF9LAkvKiBDUlQvVFYgSFJUQyBTdGFydCBQb3NpdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfSFJUQ19QV0lEVEgsCTB4MEJ9LAkvKiBDUlQvVFYgSFJUQyBQdWxzZSBXaWR0aCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfRElTUF9WSEVJR0hUMCwJMHhERn0sCS8qIENSVC9UViBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1ZIRUlHSFQxLAkweDAxfSwJLyogQ1JUL1RWIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQ1JUX05ESVNQX1ZQRVIsCQkweDJCfSwJLyogQ1JUL1RWIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfVlJUQ19TVEFSVCwJCTB4MDl9LAkvKiBDUlQvVFYgVlJUQyBTdGFydCBQb3NpdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfVlJUQ19QV0lEVEgsCTB4MDF9LAkvKiBDUlQvVFYgVlJUQyBQdWxzZSBXaWR0aCBSZWdpc3RlciovCisJe1MxRFJFR19UVl9PVVRfQ1RMLAkJMHgxOH0sCS8qIFRWIE91dHB1dCBDb250cm9sIFJlZ2lzdGVyICovCisJe1MxRFJFR19DUlRfRElTUF9NT0RFLAkJMHgwNX0sCS8qIENSVC9UViBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIDE2QlBQKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMCwJMHgwMH0sCS8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19DUlRfRElTUF9TVEFSVDEsCTB4MDB9LAkvKiBDUlQvVFYgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQ1JUX0RJU1BfU1RBUlQyLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KKwl7UzFEUkVHX0NSVF9NRU1fT0ZGMCwJCTB4ODB9LAkvKiBDUlQvVFYgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX01FTV9PRkYxLAkJMHgwMn0sCS8qIENSVC9UViBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfUElYX1BBTiwJCTB4MDB9LAkvKiBDUlQvVFYgUGl4ZWwgUGFubmluZyBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfRElTUF9GSUZPX0hUQywJMHgwMH0sCS8qIENSVC9UViBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfRElTUF9GSUZPX0xUQywJMHgwMH0sCS8qIENSVC9UViBEaXNwbGF5IEZJRk8gTG93IFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DVVJfQ1RMLAkJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9TVEFSVCwJCTB4MDF9LAkvKiBMQ0QgSW5rL0N1cnNvciBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DVVJfWFBPUzAsCQkweDAwfSwJLyogTENEIEN1cnNvciBYIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0NVUl9YUE9TMSwJCTB4MDB9LAkvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfQ1VSX1lQT1MwLAkJMHgwMH0sCS8qIExDRCBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0xDRF9DVVJfWVBPUzEsCQkweDAwfSwJLyogTENEIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfTENEX0NVUl9CQ1RMMCwJCTB4MDB9LAkvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9HQ1RMMCwJCTB4MDB9LAkvKiBMQ0QgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAwIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DVVJfUkNUTDAsCQkweDAwfSwJLyogTENEIEluay9DdXJzb3IgUmVkIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9CQ1RMMSwJCTB4MUZ9LAkvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9HQ1RMMSwJCTB4M0Z9LAkvKiBMQ0QgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAxIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DVVJfUkNUTDEsCQkweDFGfSwJLyogTENEIEluay9DdXJzb3IgUmVkIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9GSUZPX0hUQywJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIEZJRk8gVGhyZXNob2xkIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DVVJfQ1RMLAkJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9TVEFSVCwJCTB4MDF9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DVVJfWFBPUzAsCQkweDAwfSwJLyogQ1JUL1RWIEN1cnNvciBYIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX0NVUl9YUE9TMSwJCTB4MDB9LAkvKiBDUlQvVFYgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfQ1VSX1lQT1MwLAkJMHgwMH0sCS8qIENSVC9UViBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0NSVF9DVVJfWVBPUzEsCQkweDAwfSwJLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMCwJCTB4MDB9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBCbHVlIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9HQ1RMMCwJCTB4MDB9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAwIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DVVJfUkNUTDAsCQkweDAwfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMSwJCTB4MUZ9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBCbHVlIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9HQ1RMMSwJCTB4M0Z9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBHcmVlbiBDb2xvciAxIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DVVJfUkNUTDEsCQkweDFGfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9GSUZPX0hUQywJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEZJRk8gVGhyZXNob2xkIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0JCTFRfQ1RMMCwJCTB4MDB9LAkvKiBCaXRCbHQgQ29udHJvbCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfQ1RMMSwJCTB4MDF9LAkvKiBCaXRCbHQgQ29udHJvbCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfQ0NfRVhQLAkJMHgwMH0sCS8qIEJpdEJsdCBST1AgQ29kZS9Db2xvciBFeHBhbnNpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfQkJMVF9PUCwJCTB4MDB9LAkvKiBCaXRCbHQgT3BlcmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMCwJMHgwMH0sCS8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMSwJMHgwMH0sCS8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMiwJMHgwMH0sCS8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KKwl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMCwJMHgwMH0sCS8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQxLAkweDAwfSwJLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19CQkxUX0RTVF9TVEFSVDIsCTB4MDB9LAkvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KKwl7UzFEUkVHX0JCTFRfTUVNX09GRjAsCQkweDAwfSwJLyogQml0Qmx0IE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfTUVNX09GRjEsCQkweDAwfSwJLyogQml0Qmx0IE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfV0lEVEgwLAkJMHgwMH0sCS8qIEJpdEJsdCBXaWR0aCBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfV0lEVEgxLAkJMHgwMH0sCS8qIEJpdEJsdCBXaWR0aCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfSEVJR0hUMCwJCTB4MDB9LAkvKiBCaXRCbHQgSGVpZ2h0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9IRUlHSFQxLAkJMHgwMH0sCS8qIEJpdEJsdCBIZWlnaHQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19CQkxUX0JHQzAsCQkweDAwfSwJLyogQml0Qmx0IEJhY2tncm91bmQgQ29sb3IgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0JHQzEsCQkweDAwfSwJLyogQml0Qmx0IEJhY2tncm91bmQgQ29sb3IgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19CQkxUX0ZHQzAsCQkweDAwfSwJLyogQml0Qmx0IEZvcmVncm91bmQgQ29sb3IgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0ZHQzEsCQkweDAwfSwJLyogQml0Qmx0IEZvcmVncm91bmQgQ29sb3IgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MS1VQX01PREUsCQkweDAwfSwJLyogTG9vay1VcCBUYWJsZSBNb2RlIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xLVVBfQUREUiwJCTB4MDB9LAkvKiBMb29rLVVwIFRhYmxlIEFkZHJlc3MgUmVnaXN0ZXIqLworCXtTMURSRUdfUFNfQ05GLAkJCTB4MDB9LAkvKiBQb3dlciBTYXZlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfUFNfU1RBVFVTLAkJMHgwMH0sCS8qIFBvd2VyIFNhdmUgU3RhdHVzIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NQVTJNRU1fV0RPR1QsCQkweDAwfSwJLyogQ1BVLXRvLU1lbW9yeSBBY2Nlc3MgV2F0Y2hkb2cgVGltZXIgUmVnaXN0ZXIqLworCXtTMURSRUdfQ09NX0RJU1BfTU9ERSwJCTB4MDF9LAkvKiBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIExDRCBvbmx5Ki8KIH07CiAKLXN0YXRpYyB1NjQgczFkZmJfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKK3N0YXRpYyB1NjQgczFkZmJfZG1hbWFzayA9IERNQV9CSVRfTUFTSygzMik7CiAKLXN0YXRpYyBzdHJ1Y3QgczFkMTN4eHhmYl9wZGF0YSB5bF85MjAwX3MxZGZiX3BkYXRhID0gewotCQkuaW5pdHJlZ3MJCQkJPSB5bF85MjAwX3MxZGZiX2luaXRyZWdzLAotCQkuaW5pdHJlZ3NzaXplCQkJPSBBUlJBWV9TSVpFKHlsXzkyMDBfczFkZmJfaW5pdHJlZ3MpLAotCQkucGxhdGZvcm1faW5pdF92aWRlbwk9IHlsXzkyMDBfaW5pdF92aWRlbywKK3N0YXRpYyBzdHJ1Y3QgczFkMTN4eHhmYl9wZGF0YSB5bDkyMDBfczFkZmJfcGRhdGEgPSB7CisJLmluaXRyZWdzCQk9IHlsOTIwMF9zMWRmYl9pbml0cmVncywKKwkuaW5pdHJlZ3NzaXplCQk9IEFSUkFZX1NJWkUoeWw5MjAwX3MxZGZiX2luaXRyZWdzKSwKKwkucGxhdGZvcm1faW5pdF92aWRlbwk9IHlsOTIwMF9pbml0X3ZpZGVvLAogfTsKIAotc3RhdGljIHN0cnVjdCByZXNvdXJjZSB5bF85MjAwX3MxZGZiX3Jlc291cmNlW10gPSB7CitzdGF0aWMgc3RydWN0IHJlc291cmNlIHlsOTIwMF9zMWRmYl9yZXNvdXJjZVtdID0gewogCVswXSA9IHsJLyogdmlkZW8gbWVtICovCi0JCS5uYW1lICAgPSAiczFkMTN4eHhmYiBtZW1vcnkiLAotCS8qCS5uYW1lICAgPSAiczFkMTM4MDYgbWVtb3J5IiwqLwotCQkuc3RhcnQgID0gQVQ5MV9GQl9WTUVNX0JBU0UsCi0JCS5lbmQgICAgPSBBVDkxX0ZCX1ZNRU1fQkFTRSArIEFUOTFfRkJfVk1FTV9TSVpFIC0xLAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCisJCS5uYW1lCT0gInMxZDEzeHh4ZmIgbWVtb3J5IiwKKwkJLnN0YXJ0CT0gQVQ5MV9GQl9WTUVNX0JBU0UsCisJCS5lbmQJPSBBVDkxX0ZCX1ZNRU1fQkFTRSArIEFUOTFfRkJfVk1FTV9TSVpFIC0xLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LAogCVsxXSA9IHsJLyogdmlkZW8gcmVnaXN0ZXJzICovCi0JCS5uYW1lICAgPSAiczFkMTN4eHhmYiByZWdpc3RlcnMiLAotCS8qCS5uYW1lICAgPSAiczFkMTM4MDYgcmVnaXN0ZXJzIiwqLwotCQkuc3RhcnQgID0gQVQ5MV9GQl9SRUdfQkFTRSwKLQkJLmVuZCAgICA9IEFUOTFfRkJfUkVHX0JBU0UgKyBBVDkxX0ZCX1JFR19TSVpFIC0xLAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCisJCS5uYW1lCT0gInMxZDEzeHh4ZmIgcmVnaXN0ZXJzIiwKKwkJLnN0YXJ0CT0gQVQ5MV9GQl9SRUdfQkFTRSwKKwkJLmVuZAk9IEFUOTFfRkJfUkVHX0JBU0UgKyBBVDkxX0ZCX1JFR19TSVpFIC0xLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LAogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWxfOTIwMF9zMWRmYl9kZXZpY2UgPSB7Ci0JLypUT0RPIFMuQmlydGxlcyAsIHJlYWxseSB3ZSBuZWVkIHRoZSBjaGlwIHJldmlzaW9uIGluIGhlcmUgYXMgd2VsbCovCi0JCS5uYW1lCQk9ICJzMWQxMzgwNmZiIiwKLQkvKiAgLm5hbWUJCT0gInMxZDEzNTA2ZmIiLCovCi0JCS5pZAkJCT0gLTEsCi0JCS5kZXYJCT0gewotCS8qVE9ETyB0aGVyZXMgYSB3YXJpbmcgaGVyZSEhKi8KLQkvKldBUk5JTkc6IHZtbGludXgubyguZGF0YSsweDJkYmMpOiBTZWN0aW9uIG1pc21hdGNoOiByZWZlcmVuY2UgdG8gLmluaXQudGV4dDogKGJldHdlZW4gJ3lsXzkyMDBfczFkZmJfcGRhdGEnIGFuZCAnczFkZmJfZG1hbWFzaycpKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsOTIwMF9zMWRmYl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gInMxZDEzODA2ZmIiLAorCS5pZAkJPSAtMSwKKwkuZGV2CT0gewogCQkuZG1hX21hc2sJCT0gJnMxZGZiX2RtYW1hc2ssCi0JCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCi0JCS5wbGF0Zm9ybV9kYXRhCQk9ICZ5bF85MjAwX3MxZGZiX3BkYXRhLAorCQkuY29oZXJlbnRfZG1hX21hc2sJPSBETUFfQklUX01BU0soMzIpLAorCQkucGxhdGZvcm1fZGF0YQkJPSAmeWw5MjAwX3MxZGZiX3BkYXRhLAogCX0sCi0JLnJlc291cmNlCT0geWxfOTIwMF9zMWRmYl9yZXNvdXJjZSwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoeWxfOTIwMF9zMWRmYl9yZXNvdXJjZSksCisJLnJlc291cmNlCT0geWw5MjAwX3MxZGZiX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh5bDkyMDBfczFkZmJfcmVzb3VyY2UpLAogfTsKIAotdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKHZvaWQpCit2b2lkIF9faW5pdCB5bDkyMDBfYWRkX2RldmljZV92aWRlbyh2b2lkKQogewotCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmeWxfOTIwMF9zMWRmYl9kZXZpY2UpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmeWw5MjAwX3MxZGZiX2RldmljZSk7CiB9CiAjZWxzZQotCXZvaWQgX19pbml0IHlsXzkyMDBfYWRkX2RldmljZV92aWRlbyh2b2lkKSB7fQordm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfdmlkZW8odm9pZCkge30KICNlbmRpZgogCi0vKnRoaXMgaXMgbm90IGNhbGxlZCBmaXJzdCAsIHlsXzkyMDBfbWFwX2lvIGlzIGNhbGxlZCBmaXJzdCovCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9ib2FyZF9pbml0KHZvaWQpCisKK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfYm9hcmRfaW5pdCh2b2lkKQogewogCS8qIFNlcmlhbCAqLwogCWF0OTFfYWRkX2RldmljZV9zZXJpYWwoKTsKIAkvKiBFdGhlcm5ldCAqLwotCWF0OTFfYWRkX2RldmljZV9ldGgoJnlsXzkyMDBfZXRoX2RhdGEpOworCWF0OTFfYWRkX2RldmljZV9ldGgoJnlsOTIwMF9ldGhfZGF0YSk7CiAJLyogVVNCIEhvc3QgKi8KLQlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmeWxfOTIwMF91c2JoX2RhdGEpOworCWF0OTFfYWRkX2RldmljZV91c2JoKCZ5bDkyMDBfdXNiaF9kYXRhKTsKIAkvKiBVU0IgRGV2aWNlICovCi0JYXQ5MV9hZGRfZGV2aWNlX3VkYygmeWxfOTIwMF91ZGNfZGF0YSk7Ci0JLyogcHVsbHVwX3BpbiBpdCBpcyAgYWN0dWFsbHkgYWN0aXZlIGxvdywgYnV0IHRoaXMgaXMgbm90IG5lZWRlZCwgZHJpdmVyIHNldHMgaXQgdXAgKi8KLQkvKmF0OTFfc2V0X211bHRpX2RyaXZlKHlsXzkyMDBfdWRjX2RhdGEucHVsbHVwX3BpbiwgMCk7Ki8KLQotCS8qIENvbXBhY3QgRmxhc2ggKi8KLQkvKmF0OTFfYWRkX2RldmljZV9jZigmeWxfOTIwMF9jZl9kYXRhKTsqLwotCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmeWw5MjAwX3VkY19kYXRhKTsKIAkvKiBJMkMgKi8KLQlhdDkxX2FkZF9kZXZpY2VfaTJjKHlsXzkyMDBfaTJjX2RldmljZXMsIEFSUkFZX1NJWkUoeWxfOTIwMF9pMmNfZGV2aWNlcykpOwotCS8qIFNQSSAqLwotCS8qVE9ETyBZTDkyMDAgd2UgaGF2ZSAyIHNwaSBpbnRlcmZhY2VzIHRvdWNoIHNjcmVlbiAmIENBTiovCi0JLyogQVQ5MV9QSU5fUEE1LCBBVDkxX1BJTl9QQTYgLCBhcmUgdXNlZCBvbiB0aGUgIG1heCA0ODUgTk9UIFNQSSovCi0KLQkvKnRvdWNoIHNjcmVlbiBhbmQgQ0FOKi8KLQlhdDkxX2FkZF9kZXZpY2Vfc3BpKHlsXzkyMDBfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoeWxfOTIwMF9zcGlfZGV2aWNlcykpOwotCi0JLypCYXNpY2FsbHkgdGhlICBUUyB1c2VzICBQQjExICYgUEIxMCAsIFBCMTEgaXMgY29uZmlndXJlZCBieSB0aGUgU1BJIHN5c3RlbSBCUDEwIElTIE5PVCBVU0VEISEqLwotCS8qIHdlIG5lZWQgdGhpcyBpbmNhc2UgdGhlIGJvYXJkIGlzIHJ1bm5pbmcgd2l0aG91dCBhIHRvdWNoIHNjcmVlbiovCi0JI2lmIGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDYpIHx8IGRlZmluZWQoQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDZfTU9EVUxFKQotCWF0OTFfaW5pdF9kZXZpY2VfdHMoKTsgLyppbml0IHRoZSB0b3VjaCBzY3JlZW4gZGV2aWNlKi8KLQkjZW5kaWYKLQkvKiBEYXRhRmxhc2ggY2FyZCAqLwotCWF0OTFfYWRkX2RldmljZV9tbWMoMCwgJnlsXzkyMDBfbW1jX2RhdGEpOworCWF0OTFfYWRkX2RldmljZV9pMmMoeWw5MjAwX2kyY19kZXZpY2VzLCBBUlJBWV9TSVpFKHlsOTIwMF9pMmNfZGV2aWNlcykpOworCS8qIE1NQyAqLworCWF0OTFfYWRkX2RldmljZV9tbWMoMCwgJnlsOTIwMF9tbWNfZGF0YSk7CiAJLyogTkFORCAqLwotCWF0OTFfYWRkX2RldmljZV9uYW5kKCZ5bF85MjAwX25hbmRfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJnlsOTIwMF9uYW5kX2RhdGEpOwogCS8qIE5PUiBGbGFzaCAqLwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmeWxfOTIwMF9mbGFzaCk7Ci0JLyogTEVEcy4gTm90ZSEhIHRoaXMgZG9lcyBub3QgaW5jbHVkZSB0aGUgbGVkJ3Mgd2UgcGFzc2VkIGZvciB0aGUgcHJvY2Vzc29yIHN0YXR1cyAqLwotCWF0OTFfZ3Bpb19sZWRzKHlsXzkyMDBfbGVkcywgQVJSQVlfU0laRSh5bF85MjAwX2xlZHMpKTsKLQkvKiBWR0EgICovCi0JLyp0aGlzIGlzIHNlbGYgcmVnaXN0ZXJlZCBieSBpbmNsdWRpbmcgdGhlIHMxZDEzeHh4IGNoaXAgaW4gdGhlIGtlcm5lbCBidWlsZCovCi0JeWxfOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bDkyMDBfZmxhc2gpOworI2lmIGRlZmluZWQoQ09ORklHX1NQSV9BVE1FTCkgfHwgZGVmaW5lZChDT05GSUdfU1BJX0FUTUVMX01PRFVMRSkKKwkvKiBTUEkgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc3BpKHlsOTIwMF9zcGlfZGV2aWNlcywgQVJSQVlfU0laRSh5bDkyMDBfc3BpX2RldmljZXMpKTsKKwkvKiBUb3VjaHNjcmVlbiAqLworCXlsOTIwMF9hZGRfZGV2aWNlX3RzKCk7CisjZW5kaWYKKwkvKiBMRURzLiAqLworCWF0OTFfZ3Bpb19sZWRzKHlsOTIwMF9sZWRzLCBBUlJBWV9TSVpFKHlsOTIwMF9sZWRzKSk7CiAJLyogUHVzaCBCdXR0b25zICovCi0JeWxfOTIwMF9hZGRfZGV2aWNlX2J1dHRvbnMoKTsKLQkvKlRPRE8gZml4dXAgdGhlIFNvdW5kZXIgKi8KLS8vCXlsXzkyMDBfYWRkX2RldmljZV9zb3VuZGVyKHlsXzkyMDBfc291bmRlcixBUlJBWV9TSVpFKHlsXzkyMDBfc291bmRlcikpOwotCisJeWw5MjAwX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIFZHQSAqLworCXlsOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKCk7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoWUw5MjAwLCAidUNkcmFnb24gWUwtOTIwMCIpCi0JLyogTWFpbnRhaW5lcjogUy5CaXJ0bGVzKi8KLQkucGh5c19pbwkJPSBBVDkxX0JBU0VfU1lTLAorCS8qIE1haW50YWluZXI6IFMuQmlydGxlcyAqLworCS5waHlzX2lvCT0gQVQ5MV9CQVNFX1NZUywKIAkuaW9fcGdfb2Zmc3QJPSAoQVQ5MV9WQV9CQVNFX1NZUyA+PiAxOCkgJiAweGZmZmMsCiAJLmJvb3RfcGFyYW1zCT0gQVQ5MV9TRFJBTV9CQVNFICsgMHgxMDAsCi0JLnRpbWVyCQkJPSAmYXQ5MXJtOTIwMF90aW1lciwKLQkubWFwX2lvCQkJPSB5bF85MjAwX21hcF9pbywKLQkuaW5pdF9pcnEJCT0geWxfOTIwMF9pbml0X2lycSwKLQkuaW5pdF9tYWNoaW5lCT0geWxfOTIwMF9ib2FyZF9pbml0LAorCS50aW1lcgkJPSAmYXQ5MXJtOTIwMF90aW1lciwKKwkubWFwX2lvCQk9IHlsOTIwMF9tYXBfaW8sCisJLmluaXRfaXJxCT0geWw5MjAwX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSB5bDkyMDBfYm9hcmRfaW5pdCwKIE1BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9jbG9jay5jCmluZGV4IGEzM2RmZTQuLjQ2NGJkYmIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9jbG9jay5jCkBAIC0xMTIsMTIgKzExMiwzNCBAQAogCQlhdDkxX3N5c193cml0ZShBVDkxX1BNQ19TQ0RSLCBjbGstPnBtY19tYXNrKTsKIH0KIAorc3RhdGljIHZvaWQgcG1jX3Vja3JfbW9kZShzdHJ1Y3QgY2xrICpjbGssIGludCBpc19vbikKK3sKKwl1bnNpZ25lZCBpbnQgdWNrciA9IGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1VDS1IpOworCisJaWYgKGlzX29uKSB7CisJCWlzX29uID0gQVQ5MV9QTUNfTE9DS1U7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfQ0tHUl9VQ0tSLCB1Y2tyIHwgY2xrLT5wbWNfbWFzayk7CisJfSBlbHNlCisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfQ0tHUl9VQ0tSLCB1Y2tyICYgfihjbGstPnBtY19tYXNrKSk7CisKKwlkbyB7CisJCWNwdV9yZWxheCgpOworCX0gd2hpbGUgKChhdDkxX3N5c19yZWFkKEFUOTFfUE1DX1NSKSAmIEFUOTFfUE1DX0xPQ0tVKSAhPSBpc19vbik7Cit9CisKIC8qIFVTQiBmdW5jdGlvbiBjbG9ja3MgKFBMTEIgbXVzdCBiZSA0OCBNSHopICovCiBzdGF0aWMgc3RydWN0IGNsayB1ZHBjayA9IHsKIAkubmFtZQkJPSAidWRwY2siLAogCS5wYXJlbnQJCT0gJnBsbGIsCiAJLm1vZGUJCT0gcG1jX3N5c19tb2RlLAogfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIHV0bWlfY2xrID0geworCS5uYW1lCQk9ICJ1dG1pX2NsayIsCisJLnBhcmVudAkJPSAmbWFpbl9jbGssCisJLnBtY19tYXNrCT0gQVQ5MV9QTUNfVVBMTEVOLAkvKiBpbiBDS0dSX1VDS1IgKi8KKwkubW9kZQkJPSBwbWNfdWNrcl9tb2RlLAorCS50eXBlCQk9IENMS19UWVBFX1BMTCwKK307CiBzdGF0aWMgc3RydWN0IGNsayB1aHBjayA9IHsKIAkubmFtZQkJPSAidWhwY2siLAogCS5wYXJlbnQJCT0gJnBsbGIsCkBAIC0zNjEsNyArMzgzLDcgQEAKIAogc3RhdGljIGludCBhdDkxX2Nsa19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKQogewotCXUzMgkJc2NzciwgcGNzciwgc3I7CisJdTMyCQlzY3NyLCBwY3NyLCB1Y2tyID0gMCwgc3I7CiAJc3RydWN0IGNsawkqY2xrOwogCiAJc2VxX3ByaW50ZihzLCAiU0NTUiA9ICU4eFxuIiwgc2NzciA9IGF0OTFfc3lzX3JlYWQoQVQ5MV9QTUNfU0NTUikpOwpAQCAtMzY5LDcgKzM5MSwxMCBAQAogCXNlcV9wcmludGYocywgIk1PUiAgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX01PUikpOwogCXNlcV9wcmludGYocywgIk1DRlIgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX01DRlIpKTsKIAlzZXFfcHJpbnRmKHMsICJQTExBID0gJTh4XG4iLCBhdDkxX3N5c19yZWFkKEFUOTFfQ0tHUl9QTExBUikpOwotCXNlcV9wcmludGYocywgIlBMTEIgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEJSKSk7CisJaWYgKCFjcHVfaXNfYXQ5MXNhbTlybCgpKQorCQlzZXFfcHJpbnRmKHMsICJQTExCID0gJTh4XG4iLCBhdDkxX3N5c19yZWFkKEFUOTFfQ0tHUl9QTExCUikpOworCWlmIChjcHVfaXNfYXQ5MWNhcDkoKSB8fCBjcHVfaXNfYXQ5MXNhbTlybCgpKQorCQlzZXFfcHJpbnRmKHMsICJVQ0tSID0gJTh4XG4iLCB1Y2tyID0gYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfVUNLUikpOwogCXNlcV9wcmludGYocywgIk1DS1IgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9QTUNfTUNLUikpOwogCXNlcV9wcmludGYocywgIlNSICAgPSAlOHhcbiIsIHNyID0gYXQ5MV9zeXNfcmVhZChBVDkxX1BNQ19TUikpOwogCkBAIC0zODIsNiArNDA3LDggQEAKIAkJCXN0YXRlID0gKHNjc3IgJiBjbGstPnBtY19tYXNrKSA/ICJvbiIgOiAib2ZmIjsKIAkJZWxzZSBpZiAoY2xrLT5tb2RlID09IHBtY19wZXJpcGhfbW9kZSkKIAkJCXN0YXRlID0gKHBjc3IgJiBjbGstPnBtY19tYXNrKSA/ICJvbiIgOiAib2ZmIjsKKwkJZWxzZSBpZiAoY2xrLT5tb2RlID09IHBtY191Y2tyX21vZGUpCisJCQlzdGF0ZSA9ICh1Y2tyICYgY2xrLT5wbWNfbWFzaykgPyAib24iIDogIm9mZiI7CiAJCWVsc2UgaWYgKGNsay0+cG1jX21hc2spCiAJCQlzdGF0ZSA9IChzciAmIGNsay0+cG1jX21hc2spID8gIm9uIiA6ICJvZmYiOwogCQllbHNlIGlmIChjbGsgPT0gJmNsazMyayB8fCBjbGsgPT0gJm1haW5fY2xrKQpAQCAtNDg4LDE0ICs1MTUsMTkgQEAKIAkJLyoKIAkJICogUExMIGlucHV0IGJldHdlZW4gMU1IeiBhbmQgMzJNSHogcGVyIHNwZWMsIGJ1dCBsb3dlcgogCQkgKiBmcmVxdWVuY2VzIHNlZW0gbmVjZXNzYXJ5IGluIHNvbWUgY2FzZXMgc28gYWxsb3cgMTAwSy4KKwkJICogV2FybmluZzogc29tZSBuZXdlciBwcm9kdWN0cyBuZWVkIDJNSHogbWluLgogCQkgKi8KIAkJaW5wdXQgPSBtYWluX2ZyZXEgLyBpOworCQlpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkgJiYgaW5wdXQgPCAyMDAwMDAwKQorCQkJY29udGludWU7CiAJCWlmIChpbnB1dCA8IDEwMDAwMCkKIAkJCWNvbnRpbnVlOwogCQlpZiAoaW5wdXQgPiAzMjAwMDAwMCkKIAkJCWNvbnRpbnVlOwogCiAJCW11bDEgPSBvdXRfZnJlcSAvIGlucHV0OworCQlpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkgJiYgbXVsID4gNjMpCisJCQljb250aW51ZTsKIAkJaWYgKG11bDEgPiAyMDQ4KQogCQkJY29udGludWU7CiAJCWlmIChtdWwxIDwgMikKQEAgLTU1NSw3ICs1ODcsOCBAQAogCiAJLyogcmVwb3J0IGlmIFBMTEEgaXMgbW9yZSB0aGFuIG1pbGRseSBvdmVyY2xvY2tlZCAqLwogCXBsbGEucmF0ZV9oeiA9IGF0OTFfcGxsX3JhdGUoJnBsbGEsIG1haW5fY2xvY2ssIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEFSKSk7Ci0JaWYgKHBsbGEucmF0ZV9oeiA+IDIwOTAwMDAwMCkKKwlpZiAoKCFjcHVfaXNfYXQ5MXNhbTlnMjAoKSAmJiBwbGxhLnJhdGVfaHogPiAyMDkwMDAwMDApCisJICAgfHwgKGNwdV9pc19hdDkxc2FtOWcyMCgpICYmIHBsbGEucmF0ZV9oeiA+IDgwMDAwMDAwMCkpCiAJCXByX2luZm8oIkNsb2NrczogUExMQSBvdmVyY2xvY2tlZCwgJWxkIE1IelxuIiwgcGxsYS5yYXRlX2h6IC8gMTAwMDAwMCk7CiAKIAkvKgpAQCAtNTcwLDcgKzYwMyw3IEBACiAJCXVocGNrLnBtY19tYXNrID0gQVQ5MVJNOTIwMF9QTUNfVUhQOwogCQl1ZHBjay5wbWNfbWFzayA9IEFUOTFSTTkyMDBfUE1DX1VEUDsKIAkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9QTUNfU0NFUiwgQVQ5MVJNOTIwMF9QTUNfTUNLVURQKTsKLQl9IGVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MSgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpKSB7CisJfSBlbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjEoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQl1aHBjay5wbWNfbWFzayA9IEFUOTFTQU05MjZ4X1BNQ19VSFA7CiAJCXVkcGNrLnBtY19tYXNrID0gQVQ5MVNBTTkyNnhfUE1DX1VEUDsKIAl9IGVsc2UgaWYgKGNwdV9pc19hdDkxY2FwOSgpKSB7CkBAIC01ODIsNiArNjE1LDE3IEBACiAJdWhwY2sucmF0ZV9oeiA9IGF0OTFfdXNiX3JhdGUoJnBsbGIsIHBsbGIucmF0ZV9oeiwgYXQ5MV9wbGxiX3VzYl9pbml0KTsKIAogCS8qCisJICogVVNCIEhTIGNsb2NrIGluaXQKKwkgKi8KKwlpZiAoY3B1X2lzX2F0OTFjYXA5KCkgfHwgY3B1X2lzX2F0OTFzYW05cmwoKSkgeworCQkvKgorCQkgKiBtdWx0aXBsaWVyIGlzIGhhcmQtd2lyZWQgdG8gNDAKKwkJICogKG9idGFpbiB0aGUgVVNCIEhpZ2ggU3BlZWQgNDgwIE1IeiB3aGVuIGlucHV0IGlzIDEyIE1IeikKKwkJICovCisJCXV0bWlfY2xrLnJhdGVfaHogPSA0MCAqIHV0bWlfY2xrLnBhcmVudC0+cmF0ZV9oejsKKwl9CisKKwkvKgogCSAqIE1DSyBhbmQgQ1BVIGRlcml2ZSBmcm9tIG9uZSBvZiB0aG9zZSBwcmltYXJ5IGNsb2Nrcy4KIAkgKiBGb3Igbm93LCBhc3N1bWUgdGhpcyBwYXJlbnRhZ2Ugd29uJ3QgY2hhbmdlLgogCSAqLwpAQCAtNTkxLDEzICs2MzUsMjEgQEAKIAlmcmVxIC89ICgxIDw8ICgobWNrciAmIEFUOTFfUE1DX1BSRVMpID4+IDIpKTsJCQkJLyogcHJlc2NhbGUgKi8KIAlpZiAoY3B1X2lzX2F0OTFybTkyMDAoKSkKIAkJbWNrLnJhdGVfaHogPSBmcmVxIC8gKDEgKyAoKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA+PiA4KSk7CS8qIG1kaXYgKi8KLQllbHNlCi0JCW1jay5yYXRlX2h6ID0gZnJlcSAvICgxIDw8ICgobWNrciAmIEFUOTFfUE1DX01ESVYpID4+IDgpKTsJLyogbWRpdiAqLworCWVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CisJCW1jay5yYXRlX2h6ID0gKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA/CisJCQlmcmVxIC8gKChtY2tyICYgQVQ5MV9QTUNfTURJVikgPj4gNykgOiBmcmVxOwkvKiBtZGl2IDsgKHggPj4gNykgPSAoKHggPj4gOCkgKiAyKSAqLworCQlpZiAobWNrciAmIEFUOTFfUE1DX1BESVYpCisJCQlmcmVxIC89IDI7CQkvKiBwcm9jZXNzb3IgY2xvY2sgZGl2aXNpb24gKi8KKwl9IGVsc2UKKwkJbWNrLnJhdGVfaHogPSBmcmVxIC8gKDEgPDwgKChtY2tyICYgQVQ5MV9QTUNfTURJVikgPj4gOCkpOyAgICAgIC8qIG1kaXYgKi8KIAogCS8qIFJlZ2lzdGVyIHRoZSBQTUMncyBzdGFuZGFyZCBjbG9ja3MgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGFuZGFyZF9wbWNfY2xvY2tzKTsgaSsrKQogCQlsaXN0X2FkZF90YWlsKCZzdGFuZGFyZF9wbWNfY2xvY2tzW2ldLT5ub2RlLCAmY2xvY2tzKTsKIAorCWlmIChjcHVfaXNfYXQ5MWNhcDkoKSB8fCBjcHVfaXNfYXQ5MXNhbTlybCgpKQorCQlsaXN0X2FkZF90YWlsKCZ1dG1pX2Nsay5ub2RlLCAmY2xvY2tzKTsKKwogCS8qIE1DSyBhbmQgQ1BVIGNsb2NrIGFyZSAiYWx3YXlzIG9uIiAqLwogCWNsa19lbmFibGUoJm1jayk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9wbS5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL3BtLmMKaW5kZXggYWE4NjNjMS4uOGFiNGZlYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL3BtLmMKQEAgLTIwMiw3ICsyMDIsNyBAQAogCQkJcHJfZGVidWcoIkFUOTE6IFBNIC0gU3VzcGVuZC10by1SQU0gd2l0aCBVU0Igc3RpbGwgYWN0aXZlXG4iKTsKIAkJCXJldHVybiAwOwogCQl9Ci0JfSBlbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjEoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSkgeworCX0gZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYxKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYzKCkgfHwgY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKIAkJaWYgKChzY3NyICYgKEFUOTFTQU05MjZ4X1BNQ19VSFAgfCBBVDkxU0FNOTI2eF9QTUNfVURQKSkgIT0gMCkgewogCQkJcHJfZGVidWcoIkFUOTE6IFBNIC0gU3VzcGVuZC10by1SQU0gd2l0aCBVU0Igc3RpbGwgYWN0aXZlXG4iKTsKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1lcDkzeHgvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtZXA5M3h4L2Nsb2NrLmMKaW5kZXggOWQ3NTE1Yy4uZjYyYzM1NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1lcDkzeHgvY2xvY2suYworKysgYi9hcmNoL2FybS9tYWNoLWVwOTN4eC9jbG9jay5jCkBAIC03NCw2ICs3NCw3IEBACiAKIAlyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKIH0KK0VYUE9SVF9TWU1CT0woY2xrX2dldCk7CiAKIGludCBjbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKIHsKQEAgLTg2LDYgKzg3LDcgQEAKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChjbGtfZW5hYmxlKTsKIAogdm9pZCBjbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCiB7CkBAIC05NiwxNSArOTgsMTggQEAKIAkJX19yYXdfd3JpdGVsKHZhbHVlICYgfmNsay0+ZW5hYmxlX21hc2ssIGNsay0+ZW5hYmxlX3JlZyk7CiAJfQogfQorRVhQT1JUX1NZTUJPTChjbGtfZGlzYWJsZSk7CiAKIHVuc2lnbmVkIGxvbmcgY2xrX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKIHsKIAlyZXR1cm4gY2xrLT5yYXRlOwogfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0X3JhdGUpOwogCiB2b2lkIGNsa19wdXQoc3RydWN0IGNsayAqY2xrKQogewogfQorRVhQT1JUX1NZTUJPTChjbGtfcHV0KTsKIAogCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9NYWtlZmlsZQppbmRleCAwNjk0YWQ2Li4zMmY4NjA5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL01ha2VmaWxlCkBAIC0xNCwxMiArMTQsMTAgQEAKIHBjaS0kKENPTkZJR19BUkNIX05FVFdJTkRFUikgKz0gbmV0d2luZGVyLXBjaS5vCiBwY2ktJChDT05GSUdfQVJDSF9QRVJTT05BTF9TRVJWRVIpICs9IHBlcnNvbmFsLXBjaS5vCiAKLWxlZHMtJChDT05GSUdfQVJDSF9DTzI4NSkgKz0gZWJzYTI4NS1sZWRzLm8KIGxlZHMtJChDT05GSUdfQVJDSF9FQlNBMjg1KSArPSBlYnNhMjg1LWxlZHMubwogbGVkcy0kKENPTkZJR19BUkNIX05FVFdJTkRFUikgKz0gbmV0d2luZGVyLWxlZHMubwogCiBvYmotJChDT05GSUdfQVJDSF9DQVRTKSArPSBjYXRzLWh3Lm8gaXNhLXRpbWVyLm8KLW9iai0kKENPTkZJR19BUkNIX0NPMjg1KSArPSBjbzI4NS5vIGRjMjEyODUtdGltZXIubwogb2JqLSQoQ09ORklHX0FSQ0hfRUJTQTI4NSkgKz0gZWJzYTI4NS5vIGRjMjEyODUtdGltZXIubwogb2JqLSQoQ09ORklHX0FSQ0hfTkVUV0lOREVSKSArPSBuZXR3aW5kZXItaHcubyBpc2EtdGltZXIubwogb2JqLSQoQ09ORklHX0FSQ0hfUEVSU09OQUxfU0VSVkVSKSArPSBwZXJzb25hbC5vIGRjMjEyODUtdGltZXIubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvMjg1LmMgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY28yODUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU0NTU3Ni4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY28yODUuYworKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY28yODUuYwotICoKLSAqIENPMjg1IG1hY2hpbmUgZml4dXAKLSAqLwotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9kZWMyMTI4NS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+Ci0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotc3RhdGljIHZvaWQgX19pbml0Ci1maXh1cF9jb2Vic2EyODUoc3RydWN0IG1hY2hpbmVfZGVzYyAqZGVzYywgc3RydWN0IHRhZyAqdGFncywKLQkJY2hhciAqKmNtZGxpbmUsIHN0cnVjdCBtZW1pbmZvICptaSkKLXsKLQlleHRlcm4gdW5zaWduZWQgbG9uZyBib290X21lbW9yeV9lbmQ7Ci0JZXh0ZXJuIGNoYXIgYm9vdF9jb21tYW5kX2xpbmVbXTsKLQotCW1pLT5ucl9iYW5rcyAgICAgID0gMTsKLQltaS0+YmFua1swXS5zdGFydCA9IFBIWVNfT0ZGU0VUOwotCW1pLT5iYW5rWzBdLnNpemUgID0gYm9vdF9tZW1vcnlfZW5kOwotCW1pLT5iYW5rWzBdLm5vZGUgID0gMDsKLQotCSpjbWRsaW5lID0gYm9vdF9jb21tYW5kX2xpbmU7Ci19Ci0KLU1BQ0hJTkVfU1RBUlQoQ08yODUsICJjby1FQlNBMjg1IikKLQkvKiBNYWludGFpbmVyOiBNYXJrIHZhbiBEb2VzYnVyZyAqLwotCS5waHlzX2lvCT0gREMyMTI4NV9BUk1DU1JfQkFTRSwKLQkuaW9fcGdfb2Zmc3QJPSAoKDB4N2NmMDAwMDApID4+IDE4KSAmIDB4ZmZmYywKLQkuZml4dXAJCT0gZml4dXBfY29lYnNhMjg1LAotCS5tYXBfaW8JCT0gZm9vdGJyaWRnZV9tYXBfaW8sCi0JLmluaXRfaXJxCT0gZm9vdGJyaWRnZV9pbml0X2lycSwKLQkudGltZXIJCT0gJmZvb3RicmlkZ2VfdGltZXIsCi1NQUNISU5FX0VORAotCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMKaW5kZXggZWYyOWZjMy4uYjA4YWI1MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYwpAQCAtMTc3LDI1ICsxNzcsNiBAQAogI2VuZGlmCiB9OwogCi0vKgotICogVGhlIENPLWVic2EyODUgbWFwcGluZy4KLSAqLwotc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBjbzI4NV9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKLSNpZmRlZiBDT05GSUdfQVJDSF9DTzI4NQotCXsKLQkJLnZpcnR1YWwJPSBQQ0lPX0JBU0UsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihEQzIxMjg1X1BDSV9JTyksCi0JCS5sZW5ndGgJCT0gUENJT19TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UsCi0JfSwgewotCQkudmlydHVhbAk9IFBDSU1FTV9CQVNFLAotCQkucGZuCQk9IF9fcGh5c190b19wZm4oREMyMTI4NV9QQ0lfTUVNKSwKLQkJLmxlbmd0aAkJPSBQQ0lNRU1fU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFLAotCX0sCi0jZW5kaWYKLX07Ci0KIHZvaWQgX19pbml0IGZvb3RicmlkZ2VfbWFwX2lvKHZvaWQpCiB7CiAJLyoKQEAgLTIwOCw4ICsxODksNiBAQAogCSAqIE5vdywgd29yayBvdXQgd2hhdCB3ZSd2ZSBnb3QgdG8gbWFwIGluIGFkZGl0aW9uIG9uIHRoaXMKIAkgKiBwbGF0Zm9ybS4KIAkgKi8KLQlpZiAobWFjaGluZV9pc19jbzI4NSgpKQotCQlpb3RhYmxlX2luaXQoY28yODVfaW9fZGVzYywgQVJSQVlfU0laRShjbzI4NV9pb19kZXNjKSk7CiAJaWYgKGZvb3RicmlkZ2VfY2ZuX21vZGUoKSkKIAkJaW90YWJsZV9pbml0KGVic2EyODVfaG9zdF9pb19kZXNjLCBBUlJBWV9TSVpFKGVic2EyODVfaG9zdF9pb19kZXNjKSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS1sZWRzLmMgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS1sZWRzLmMKaW5kZXggYTY0ZTIyMi4uMDljMWZiYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUtbGVkcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9lYnNhMjg1LWxlZHMuYwpAQCAtMTI4LDcgKzEyOCw3IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGxlZHNfaW5pdCh2b2lkKQogewotCWlmIChtYWNoaW5lX2lzX2Vic2EyODUoKSB8fCBtYWNoaW5lX2lzX2NvMjg1KCkpCisJaWYgKG1hY2hpbmVfaXNfZWJzYTI4NSgpKQogCQlsZWRzX2V2ZW50ID0gZWJzYTI4NV9sZWRzX2V2ZW50OwogCiAJbGVkc19ldmVudChsZWRfc3RhcnQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL3RpbWUuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS90aW1lLmMKaW5kZXggNWQwMmU5NS4uZDVjZmNkYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL3RpbWUuYworKysgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvdGltZS5jCkBAIC0xMTUsOCArMTE1LDcgQEAKIAogdm9pZCBfX2luaXQgaXNhX3J0Y19pbml0KHZvaWQpCiB7Ci0JaWYgKG1hY2hpbmVfaXNfY28yODUoKSB8fAotCSAgICBtYWNoaW5lX2lzX3BlcnNvbmFsX3NlcnZlcigpKQorCWlmIChtYWNoaW5lX2lzX3BlcnNvbmFsX3NlcnZlcigpKQogCQkvKgogCQkgKiBBZGQtaW4gMjEyODVzIHNob3VsZG4ndCBhY2Nlc3MgdGhlIFJUQwogCQkgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1pbXgvTWFrZWZpbGUKaW5kZXggODhkNWU2MS4uYjA0N2M3ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvTWFrZWZpbGUKQEAgLTQsNyArNCw3IEBACiAKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKLW9iai15CQkJKz0gaXJxLm8gdGltZS5vIGRtYS5vIGdlbmVyaWMubworb2JqLXkJCQkrPSBpcnEubyB0aW1lLm8gZG1hLm8gZ2VuZXJpYy5vIGNsb2NrLm8KIAogb2JqLSQoQ09ORklHX0NQVV9GUkVRX0lNWCkJKz0gY3B1ZnJlcS5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLWlteC9jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhOTBmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWlteC9jbG9jay5jCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwOCBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+LCBQZW5ndXRyb25peAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21hdGg2NC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorCisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW14LXJlZ3MuaD4KKworLyoKKyAqIFZlcnkgc2ltcGxlIGFwcHJvYWNoOiBXZSBjYW4ndCBkaXNhYmxlIGNsb2Nrcywgc28gd2UgZG8KKyAqIG5vdCBuZWVkIHJlZmNvdW50aW5nCisgKi8KKworc3RydWN0IGNsayB7CisJc3RydWN0IGxpc3RfaGVhZCBub2RlOworCWNvbnN0IGNoYXIgKm5hbWU7CisJdW5zaWduZWQgbG9uZyAoKmdldF9yYXRlKSh2b2lkKTsKK307CisKKy8qCisgKiAgZ2V0IHRoZSBzeXN0ZW0gcGxsIGNsb2NrIGluIEh6CisgKgorICogICAgICAgICAgICAgICAgICBtZmkgKyBtZm4gLyAobWZkICsxKQorICogIGYgPSAyICogZl9yZWYgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgICAgICAgICAgICAgICAgICAgICBwZCArIDEKKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2RlY29kZV9wbGwodW5zaWduZWQgaW50IHBsbCwgdTMyIGZfcmVmKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBsbDsKKwl1bnNpZ25lZCBsb25nIHF1b3Q7CisKKwl1MzIgbWZpID0gKHBsbCA+PiAxMCkgJiAweGY7CisJdTMyIG1mbiA9IHBsbCAmIDB4M2ZmOworCXUzMiBtZmQgPSAocGxsID4+IDE2KSAmIDB4M2ZmOworCXUzMiBwZCA9ICAocGxsID4+IDI2KSAmIDB4ZjsKKworCW1maSA9IG1maSA8PSA1ID8gNSA6IG1maTsKKworCWxsID0gMiAqICh1bnNpZ25lZCBsb25nIGxvbmcpZl9yZWYgKgorCQkoKG1maSA8PCAxNikgKyAobWZuIDw8IDE2KSAvIChtZmQgKyAxKSk7CisJcXVvdCA9IChwZCArIDEpICogKDEgPDwgMTYpOworCWxsICs9IHF1b3QgLyAyOworCWRvX2RpdihsbCwgcXVvdCk7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKWxsOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3N5c3RlbV9jbGsodm9pZCkKK3sKKwl1MzIgZl9yZWYgPSAoQ1NDUiAmIENTQ1JfU1lTVEVNX1NFTCkgPyAxNjAwMDAwMCA6IChDTEszMiAqIDUxMik7CisKKwlyZXR1cm4gaW14X2RlY29kZV9wbGwoU1BDVEwwLCBmX3JlZik7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfbWN1X2Nsayh2b2lkKQoreworCXJldHVybiBpbXhfZGVjb2RlX3BsbChNUENUTDAsIENMSzMyICogNTEyKTsKK30KKworLyoKKyAqICBnZXQgcGVyaXBoZXJhbCBjbG9jayAxICggVUFSVFsxMl0sIFRpbWVyWzEyXSwgUFdNICkKKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9wZXJjbGsxKHZvaWQpCit7CisJcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUikgJiAweGYpKzEpOworfQorCisvKgorICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDIgKCBMQ0QsIFNELCBTUElbMTJdICkKKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9wZXJjbGsyKHZvaWQpCit7CisJcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUj4+NCkgJiAweGYpKzEpOworfQorCisvKgorICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDMgKCBTU0kgKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3BlcmNsazModm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSPj4xNikgJiAweDdmKSsxKTsKK30KKworLyoKKyAqICBnZXQgaGNsayAoIFNEUkFNLCBDU0ksIE1lbW9yeSBTdGljaywgSTJDLCBETUEgKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X2hjbGsodm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChDU0NSPj4xMCkgJiAweGYpKzEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBjbGtfc3lzdGVtX2NsayA9IHsKKwkubmFtZSA9ICJzeXN0ZW1fY2xrIiwKKwkuZ2V0X3JhdGUgPSBpbXhfZ2V0X3N5c3RlbV9jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjbGtfaGNsayA9IHsKKwkubmFtZSA9ICJoY2xrIiwKKwkuZ2V0X3JhdGUgPSBpbXhfZ2V0X2hjbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjbGtfbWN1X2NsayA9IHsKKwkubmFtZSA9ICJtY3VfY2xrIiwKKwkuZ2V0X3JhdGUgPSBpbXhfZ2V0X21jdV9jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjbGtfcGVyY2xrMSA9IHsKKwkubmFtZSA9ICJwZXJjbGsxIiwKKwkuZ2V0X3JhdGUgPSBpbXhfZ2V0X3BlcmNsazEsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjbGtfdWFydF9jbGsgPSB7CisJLm5hbWUgPSAidWFydF9jbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfcGVyY2xrMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19wZXJjbGsyID0geworCS5uYW1lID0gInBlcmNsazIiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfcGVyY2xrMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19wZXJjbGszID0geworCS5uYW1lID0gInBlcmNsazMiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfcGVyY2xrMywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrICpjbGtzW10gPSB7CisJJmNsa19wZXJjbGsxLAorCSZjbGtfcGVyY2xrMiwKKwkmY2xrX3BlcmNsazMsCisJJmNsa19zeXN0ZW1fY2xrLAorCSZjbGtfaGNsaywKKwkmY2xrX21jdV9jbGssCisJJmNsa191YXJ0X2NsaywKK307CisKK3N0YXRpYyBMSVNUX0hFQUQoY2xvY2tzKTsKK3N0YXRpYyBERUZJTkVfTVVURVgoY2xvY2tzX211dGV4KTsKKworc3RydWN0IGNsayAqY2xrX2dldChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmlkKQoreworCXN0cnVjdCBjbGsgKnAsICpjbGsgPSBFUlJfUFRSKC1FTk9FTlQpOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKKwkJaWYgKCFzdHJjbXAocC0+bmFtZSwgaWQpKSB7CisJCQljbGsgPSBwOworCQkJZ290byBmb3VuZDsKKwkJfQorCX0KKworZm91bmQ6CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIGNsazsKK30KKwordm9pZCBjbGtfcHV0KHN0cnVjdCBjbGsgKmNsaykKK3sKK30KKworaW50IGNsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiAwOworfQorCit2b2lkIGNsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKK30KKwordW5zaWduZWQgbG9uZyBjbGtfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiBjbGstPmdldF9yYXRlKCk7Cit9CisKK2ludCBpbXhfY2xvY2tzX2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY2xrcyk7IGkrKykKKwkJbGlzdF9hZGQoJmNsa3NbaV0tPm5vZGUsICZjbG9ja3MpOworCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKKworCXJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9jcHVmcmVxLmMgYi9hcmNoL2FybS9tYWNoLWlteC9jcHVmcmVxLmMKaW5kZXggZTU0OGJhNy4uYmUwODA5YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY3B1ZnJlcS5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2NwdWZyZXEuYwpAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KQEAgLTUyLDYgKzU0LDggQEAKIHN0YXRpYyB1MzIgbXBjdGwwX2F0X2Jvb3Q7CiBzdGF0aWMgdTMyIGJjbGtfZGl2X2F0X2Jvb3Q7CiAKK3N0YXRpYyBzdHJ1Y3QgY2xrICpzeXN0ZW1fY2xrLCAqbWN1X2NsazsKKwogc3RhdGljIHZvaWQgaW14X3NldF9hc3luY19tb2RlKHZvaWQpCiB7CiAJYWRqdXN0X2NyKENSXzkyMFRfQ0xPQ0tfTU9ERSwgQ1JfOTIwVF9BU1lOQ19NT0RFKTsKQEAgLTE2MCwxMCArMTY0LDEwIEBACiAJY3IgPSBnZXRfY3IoKTsKIAogCWlmKChjciAmIENSXzkyMFRfQ0xPQ0tfTU9ERSkgPT0gQ1JfOTIwVF9GQVNUQlVTX01PREUpIHsKLQkJZnJlcSA9IGlteF9nZXRfc3lzdGVtX2NsaygpOworCQlmcmVxID0gY2xrX2dldF9yYXRlKHN5c3RlbV9jbGspOwogCQlmcmVxID0gKGZyZXEgKyBiY2xrX2Rpdi8yKSAvIGJjbGtfZGl2OwogCX0gZWxzZSB7Ci0JCWZyZXEgPSBpbXhfZ2V0X21jdV9jbGsoKTsKKwkJZnJlcSA9IGNsa19nZXRfcmF0ZShtY3VfY2xrKTsKIAkJaWYgKGNzY3IgJiBDU0NSX01QVV9QUkVTQykKIAkJCWZyZXEgLz0gMjsKIAl9CkBAIC0yMDEsNyArMjA1LDcgQEAKIAlwcl9kZWJ1ZyhLRVJOX0RFQlVHICJpbXg6IHJlcXVlc3RlZCBmcmVxdWVuY3kgJWxkIEh6LCBtcGN0bDAgYXQgYm9vdCAweCUwOHhcbiIsCiAJCQlmcmVxLCBtcGN0bDBfYXRfYm9vdCk7CiAKLQlzeXNjbGsgPSBpbXhfZ2V0X3N5c3RlbV9jbGsoKTsKKwlzeXNjbGsgPSBjbGtfZ2V0X3JhdGUoc3lzdGVtX2Nsayk7CiAKIAlpZiAoZnJlcSA+IHN5c2NsayAvIGJjbGtfZGl2X2F0X2Jvb3QgKyAxMDAwMDAwKSB7CiAJCWZyZXEgPSBpbXhfY29tcHV0ZV9tcGN0bCgmbXBjdGwwLCBtcGN0bDBfYXRfYm9vdCwgQ0xLMzIgKiA1MTIsIGZyZXEsIHJlbGF0aW9uKTsKQEAgLTI5MCw2ICsyOTQsMTYgQEAKIAliY2xrX2Rpdl9hdF9ib290ID0gX19tZmxkMnZhbChDU0NSX0JDTEtfRElWLCBDU0NSKSArIDE7CiAJbXBjdGwwX2F0X2Jvb3QgPSAwOwogCisJc3lzdGVtX2NsayA9IGNsa19nZXQoTlVMTCwgInN5c3RlbV9jbGsiKTsKKwlpZiAoSVNfRVJSKHN5c3RlbV9jbGspKQorCQlyZXR1cm4gUFRSX0VSUihzeXN0ZW1fY2xrKTsKKworCW1jdV9jbGsgPSBjbGtfZ2V0KE5VTEwsICJtY3VfY2xrIik7CisJaWYgKElTX0VSUihtY3VfY2xrKSkgeworCQljbGtfcHV0KHN5c3RlbV9jbGspOworCQlyZXR1cm4gUFRSX0VSUihtY3VfY2xrKTsKKwl9CisKIAlpZigoQ1NDUiAmIENTQ1JfTVBFTikgJiYKIAkgICAoKGdldF9jcigpICYgQ1JfOTIwVF9DTE9DS19NT0RFKSAhPSBDUl85MjBUX0ZBU1RCVVNfTU9ERSkpCiAJCW1wY3RsMF9hdF9ib290ID0gTVBDVEwwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvZG1hLmMgYi9hcmNoL2FybS9tYWNoLWlteC9kbWEuYwppbmRleCBhNTlmZjI5Li5lZTFjNmYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9kbWEuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9kbWEuYwpAQCAtNDEwLDcgKzQxMCw2IEBACiAKIC8qKgogICogaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8gLSBmaW5kIGFuZCByZXF1ZXN0IHNvbWUgb2YgZnJlZSBjaGFubmVscyBiZXN0IHN1aXRpbmcgcmVxdWVzdGVkIHByaW9yaXR5Ci0gKiBAZG1hX2NoOiBpLk1YIERNQSBjaGFubmVsIG51bWJlcgogICogQG5hbWU6IHRoZSBkcml2ZXIvY2FsbGVyIG93biBub24tJU5VTEwgaWRlbnRpZmljYXRpb24KICAqIEBwcmlvOiBvbmUgb2YgdGhlIGhhcmR3YXJlIGRpc3Rpbmd1aXNoZWQgcHJpb3JpdHkgbGV2ZWw6CiAgKiAgICAgICAgJURNQV9QUklPX0hJR0gsICVETUFfUFJJT19NRURJVU0sICVETUFfUFJJT19MT1cKQEAgLTQyMCwxMSArNDE5LDkgQEAKICAqIGluIHRoZSBoaWdoZXIgYW5kIHRoZW4gZXZlbiBsb3dlciBwcmlvcml0eSBncm91cHMuCiAgKgogICogUmV0dXJuIHZhbHVlOiBJZiB0aGVyZSBpcyBubyBmcmVlIGNoYW5uZWwgdG8gYWxsb2NhdGUsIC0lRU5PREVWIGlzIHJldHVybmVkLgotICogICAgICAgICAgICAgICBaZXJvIHZhbHVlIGluZGljYXRlcyBzdWNjZXNzZnVsIGNoYW5uZWwgYWxsb2NhdGlvbi4KKyAqICAgICAgICAgICAgICAgT24gc3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIGNoYW5uZWwgaXMgcmV0dXJuZWQuCiAgKi8KLWludAotaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oaW14X2RtYWNoX3QgKiBwZG1hX2NoLCBjb25zdCBjaGFyICpuYW1lLAotCQkJaW14X2RtYV9wcmlvIHByaW8pCitpbXhfZG1hY2hfdCBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyhjb25zdCBjaGFyICpuYW1lLCBpbXhfZG1hX3ByaW8gcHJpbykKIHsKIAlpbnQgaTsKIAlpbnQgYmVzdDsKQEAgLTQ0NCwxNSArNDQxLDEzIEBACiAKIAlmb3IgKGkgPSBiZXN0OyBpIDwgSU1YX0RNQV9DSEFOTkVMUzsgaSsrKSB7CiAJCWlmICghaW14X2RtYV9yZXF1ZXN0KGksIG5hbWUpKSB7Ci0JCQkqcGRtYV9jaCA9IGk7Ci0JCQlyZXR1cm4gMDsKKwkJCXJldHVybiBpOwogCQl9CiAJfQogCiAJZm9yIChpID0gYmVzdCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAJCWlmICghaW14X2RtYV9yZXF1ZXN0KGksIG5hbWUpKSB7Ci0JCQkqcGRtYV9jaCA9IGk7Ci0JCQlyZXR1cm4gMDsKKwkJCXJldHVybiBpOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9nZW5lcmljLmMgYi9hcmNoL2FybS9tYWNoLWlteC9nZW5lcmljLmMKaW5kZXggNGNmYzlkMy4uOThkZGQ4YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvZ2VuZXJpYy5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2dlbmVyaWMuYwpAQCAtMjE0LDgyICsyMTQsNiBAQAogCiBFWFBPUlRfU1lNQk9MKGlteF9pcnFfdG9fZ3Bpbyk7CiAKLS8qCi0gKiAgZ2V0IHRoZSBzeXN0ZW0gcGxsIGNsb2NrIGluIEh6Ci0gKgotICogICAgICAgICAgICAgICAgICBtZmkgKyBtZm4gLyAobWZkICsxKQotICogIGYgPSAyICogZl9yZWYgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLQotICogICAgICAgICAgICAgICAgICAgICAgICBwZCArIDEKLSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBpbXhfZGVjb2RlX3BsbCh1bnNpZ25lZCBpbnQgcGxsLCB1MzIgZl9yZWYpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxsOwotCXVuc2lnbmVkIGxvbmcgcXVvdDsKLQotCXUzMiBtZmkgPSAocGxsID4+IDEwKSAmIDB4ZjsKLQl1MzIgbWZuID0gcGxsICYgMHgzZmY7Ci0JdTMyIG1mZCA9IChwbGwgPj4gMTYpICYgMHgzZmY7Ci0JdTMyIHBkID0gIChwbGwgPj4gMjYpICYgMHhmOwotCi0JbWZpID0gbWZpIDw9IDUgPyA1IDogbWZpOwotCi0JbGwgPSAyICogKHVuc2lnbmVkIGxvbmcgbG9uZylmX3JlZiAqICggKG1maTw8MTYpICsgKG1mbjw8MTYpIC8gKG1mZCsxKSApOwotCXF1b3QgPSAocGQrMSkgKiAoMTw8MTYpOwotCWxsICs9IHF1b3QgLyAyOwotCWRvX2RpdihsbCwgcXVvdCk7Ci0JcmV0dXJuICh1bnNpZ25lZCBpbnQpIGxsOwotfQotCi11bnNpZ25lZCBpbnQgaW14X2dldF9zeXN0ZW1fY2xrKHZvaWQpCi17Ci0JdTMyIGZfcmVmID0gKENTQ1IgJiBDU0NSX1NZU1RFTV9TRUwpID8gMTYwMDAwMDAgOiAoQ0xLMzIgKiA1MTIpOwotCi0JcmV0dXJuIGlteF9kZWNvZGVfcGxsKFNQQ1RMMCwgZl9yZWYpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X3N5c3RlbV9jbGspOwotCi11bnNpZ25lZCBpbnQgaW14X2dldF9tY3VfY2xrKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9kZWNvZGVfcGxsKE1QQ1RMMCwgQ0xLMzIgKiA1MTIpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X21jdV9jbGspOwotCi0vKgotICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDEgKCBVQVJUWzEyXSwgVGltZXJbMTJdLCBQV00gKQotICovCi11bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsxKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUikgJiAweGYpKzEpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X3BlcmNsazEpOwotCi0vKgotICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDIgKCBMQ0QsIFNELCBTUElbMTJdICkKLSAqLwotdW5zaWduZWQgaW50IGlteF9nZXRfcGVyY2xrMih2b2lkKQotewotCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKFBDRFI+PjQpICYgMHhmKSsxKTsKLX0KLUVYUE9SVF9TWU1CT0woaW14X2dldF9wZXJjbGsyKTsKLQotLyoKLSAqICBnZXQgcGVyaXBoZXJhbCBjbG9jayAzICggU1NJICkKLSAqLwotdW5zaWduZWQgaW50IGlteF9nZXRfcGVyY2xrMyh2b2lkKQotewotCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKFBDRFI+PjE2KSAmIDB4N2YpKzEpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X3BlcmNsazMpOwotCi0vKgotICogIGdldCBoY2xrICggU0RSQU0sIENTSSwgTWVtb3J5IFN0aWNrLCBJMkMsIERNQSApCi0gKi8KLXVuc2lnbmVkIGludCBpbXhfZ2V0X2hjbGsodm9pZCkKLXsKLQlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChDU0NSPj4xMCkgJiAweGYpKzEpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X2hjbGspOwotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGlteF9tbWNfcmVzb3VyY2VzW10gPSB7CiAJWzBdID0gewogCQkuc3RhcnQJPSAweDAwMjE0MDAwLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvbXgxYWRzLmMgYi9hcmNoL2FybS9tYWNoLWlteC9teDFhZHMuYwppbmRleCBhOTc3OGMxLi45NjM1ZDU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9teDFhZHMuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9teDFhZHMuYwpAQCAtNjksNiArNjksMTEgQEAKIAkJLmVuZAk9IChVQVJUMV9NSU5UX1RYKSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCiAJfSwKKwlbM10gPSB7CisJCS5zdGFydAk9IFVBUlQxX01JTlRfUlRTLAorCQkuZW5kCT0gVUFSVDFfTUlOVF9SVFMsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpbXhfdWFydDFfZGV2aWNlID0gewpAQCAtOTcsNiArMTAyLDExIEBACiAJCS5lbmQJPSAoVUFSVDJfTUlOVF9UWCksCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAogCX0sCisJWzNdID0geworCQkuc3RhcnQJPSBVQVJUMl9NSU5UX1JUUywKKwkJLmVuZAk9IFVBUlQyX01JTlRfUlRTLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaW14X3VhcnQyX2RldmljZSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L3RpbWUuYyBiL2FyY2gvYXJtL21hY2gtaW14L3RpbWUuYwppbmRleCBkODZkMTI0Li41YTQxZTk2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC90aW1lLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvdGltZS5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC04NiwxMCArODcsMTAgQEAKIAkuZmxhZ3MJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbXhfY2xvY2tzb3VyY2VfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgaW14X2Nsb2Nrc291cmNlX2luaXQodW5zaWduZWQgbG9uZyByYXRlKQogewogCWNsb2Nrc291cmNlX2lteC5tdWx0ID0KLQkJY2xvY2tzb3VyY2VfaHoybXVsdChpbXhfZ2V0X3BlcmNsazEoKSwgY2xvY2tzb3VyY2VfaW14LnNoaWZ0KTsKKwkJY2xvY2tzb3VyY2VfaHoybXVsdChyYXRlLCBjbG9ja3NvdXJjZV9pbXguc2hpZnQpOwogCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV9pbXgpOwogCiAJcmV0dXJuIDA7CkBAIC0xNzQsOSArMTc1LDkgQEAKIAkucmF0aW5nCQk9IDIwMCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGlteF9jbG9ja2V2ZW50X2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGlteF9jbG9ja2V2ZW50X2luaXQodW5zaWduZWQgbG9uZyByYXRlKQogewotCWNsb2NrZXZlbnRfaW14Lm11bHQgPSBkaXZfc2MoaW14X2dldF9wZXJjbGsxKCksIE5TRUNfUEVSX1NFQywKKwljbG9ja2V2ZW50X2lteC5tdWx0ID0gZGl2X3NjKHJhdGUsIE5TRUNfUEVSX1NFQywKIAkJCQkJY2xvY2tldmVudF9pbXguc2hpZnQpOwogCWNsb2NrZXZlbnRfaW14Lm1heF9kZWx0YV9ucyA9CiAJCWNsb2NrZXZlbnRfZGVsdGEybnMoMHhmZmZmZmZmZSwgJmNsb2NrZXZlbnRfaW14KTsKQEAgLTE5MCwxMyArMTkxLDIzIEBACiAJcmV0dXJuIDA7CiB9CiAKK2V4dGVybiBpbnQgaW14X2Nsb2Nrc19pbml0KHZvaWQpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgaW14X3RpbWVyX2luaXQodm9pZCkKIHsKLQlpbXhfdGltZXJfaGFyZHdhcmVfaW5pdCgpOwotCWlteF9jbG9ja3NvdXJjZV9pbml0KCk7CisJc3RydWN0IGNsayAqY2xrOworCXVuc2lnbmVkIGxvbmcgcmF0ZTsKIAotCWlteF9jbG9ja2V2ZW50X2luaXQoKTsKKwlpbXhfY2xvY2tzX2luaXQoKTsKKworCWNsayA9IGNsa19nZXQoTlVMTCwgInBlcmNsazEiKTsKKwljbGtfZW5hYmxlKGNsayk7CisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspOworCisJaW14X3RpbWVyX2hhcmR3YXJlX2luaXQoKTsKKwlpbXhfY2xvY2tzb3VyY2VfaW5pdChyYXRlKTsKKworCWlteF9jbG9ja2V2ZW50X2luaXQocmF0ZSk7CiAKIAkvKgogCSAqIE1ha2UgaXJxcyBoYXBwZW4gZm9yIHRoZSBzeXN0ZW0gdGltZXIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9NYWtlZmlsZQppbmRleCAxNThkYWFmLi42YTVlZjhkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL01ha2VmaWxlCkBAIC00LDcgKzQsNyBAQAogCiAjIE9iamVjdCBmaWxlIGxpc3RzLgogCi1vYmoteQkJCQkJOj0gY2xvY2subyBjb3JlLm8gbG0ubyB0aW1lLm8KK29iai15CQkJCQk6PSBjbG9jay5vIGNvcmUubyBsbS5vCiBvYmotJChDT05GSUdfQVJDSF9JTlRFR1JBVE9SX0FQKQkrPSBpbnRlZ3JhdG9yX2FwLm8KIG9iai0kKENPTkZJR19BUkNIX0lOVEVHUkFUT1JfQ1ApCSs9IGludGVncmF0b3JfY3AubwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL3RpbWUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUwOGEwZC4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjIzICswLDAgQEAKLS8qCi0gKiAgbGludXgvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL3RpbWUuYwotICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2FtYmEvYnVzLmg+Ci0KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGFzbS9ydGMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLQotI2RlZmluZSBSVENfRFIJCSgwKQotI2RlZmluZSBSVENfTVIJCSg0KQotI2RlZmluZSBSVENfU1RBVAkoOCkKLSNkZWZpbmUgUlRDX0VPSQkJKDgpCi0jZGVmaW5lIFJUQ19MUgkJKDEyKQotI2RlZmluZSBSVENfQ1IJCSgxNikKLSNkZWZpbmUgUlRDX0NSX01JRQkoMSA8PCAwKQotCi1leHRlcm4gaW50ICgqc2V0X3J0Yykodm9pZCk7Ci1zdGF0aWMgdm9pZCBfX2lvbWVtICpydGNfYmFzZTsKLQotc3RhdGljIGludCBpbnRlZ3JhdG9yX3NldF9ydGModm9pZCkKLXsKLQlfX3Jhd193cml0ZWwoeHRpbWUudHZfc2VjLCBydGNfYmFzZSArIFJUQ19MUik7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbnQgaW50ZWdyYXRvcl9ydGNfcmVhZF9hbGFybShzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKLXsKLQlydGNfdGltZV90b190bShyZWFkbChydGNfYmFzZSArIFJUQ19NUiksICZhbHJtLT50aW1lKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgaW50ZWdyYXRvcl9ydGNfc2V0X2FsYXJtKHN0cnVjdCBydGNfd2thbHJtICphbHJtKQotewotCXVuc2lnbmVkIGxvbmcgdGltZTsKLQlpbnQgcmV0OwotCi0JLyoKLQkgKiBBdCB0aGUgbW9tZW50LCB3ZSBjYW4gb25seSBkZWFsIHdpdGggbm9uLXdpbGRjYXJkZWQgYWxhcm0gdGltZXMuCi0JICovCi0JcmV0ID0gcnRjX3ZhbGlkX3RtKCZhbHJtLT50aW1lKTsKLQlpZiAocmV0ID09IDApCi0JCXJldCA9IHJ0Y190bV90b190aW1lKCZhbHJtLT50aW1lLCAmdGltZSk7Ci0JaWYgKHJldCA9PSAwKQotCQl3cml0ZWwodGltZSwgcnRjX2Jhc2UgKyBSVENfTVIpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgaW50ZWdyYXRvcl9ydGNfcmVhZF90aW1lKHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JcnRjX3RpbWVfdG9fdG0ocmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpLCB0bSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBTZXQgdGhlIFJUQyB0aW1lLiAgVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWNjdXJhdGVseSBzZXQKLSAqIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgY291bnRlciB1cGRhdGVzLgotICoKLSAqIEFsc28sIHNpbmNlIFJUQ19MUiBpcyB0cmFuc2ZlcnJlZCB0byBSVENfQ1Igb24gbmV4dCByaXNpbmcKLSAqIGVkZ2Ugb2YgdGhlIDFIeiBjbG9jaywgd2UgbXVzdCB3cml0ZSB0aGUgdGltZSBvbmUgc2Vjb25kCi0gKiBpbiBhZHZhbmNlLgotICovCi1zdGF0aWMgaW5saW5lIGludCBpbnRlZ3JhdG9yX3J0Y19zZXRfdGltZShzdHJ1Y3QgcnRjX3RpbWUgKnRtKQotewotCXVuc2lnbmVkIGxvbmcgdGltZTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gcnRjX3RtX3RvX3RpbWUodG0sICZ0aW1lKTsKLQlpZiAocmV0ID09IDApCi0JCXdyaXRlbCh0aW1lICsgMSwgcnRjX2Jhc2UgKyBSVENfTFIpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHN0cnVjdCBydGNfb3BzIHJ0Y19vcHMgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5yZWFkX3RpbWUJPSBpbnRlZ3JhdG9yX3J0Y19yZWFkX3RpbWUsCi0JLnNldF90aW1lCT0gaW50ZWdyYXRvcl9ydGNfc2V0X3RpbWUsCi0JLnJlYWRfYWxhcm0JPSBpbnRlZ3JhdG9yX3J0Y19yZWFkX2FsYXJtLAotCS5zZXRfYWxhcm0JPSBpbnRlZ3JhdG9yX3J0Y19zZXRfYWxhcm0sCi19OwotCi1zdGF0aWMgaXJxcmV0dXJuX3QgYXJtX3J0Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQotewotCXdyaXRlbCgwLCBydGNfYmFzZSArIFJUQ19FT0kpOwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCBydGNfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYsIHZvaWQgKmlkKQotewotCWludCByZXQ7Ci0KLQlpZiAocnRjX2Jhc2UpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQlyZXQgPSBhbWJhX3JlcXVlc3RfcmVnaW9ucyhkZXYsIE5VTEwpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0OwotCi0JcnRjX2Jhc2UgPSBpb3JlbWFwKGRldi0+cmVzLnN0YXJ0LCBTWl80Syk7Ci0JaWYgKCFydGNfYmFzZSkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIHJlc19vdXQ7Ci0JfQotCi0JX19yYXdfd3JpdGVsKDAsIHJ0Y19iYXNlICsgUlRDX0NSKTsKLQlfX3Jhd193cml0ZWwoMCwgcnRjX2Jhc2UgKyBSVENfRU9JKTsKLQotCXh0aW1lLnR2X3NlYyA9IF9fcmF3X3JlYWRsKHJ0Y19iYXNlICsgUlRDX0RSKTsKLQotCS8qIG5vdGUgdGhhdCAnZGV2JyBpcyBtZXJlbHkgdXNlZCBmb3IgaXJxIGRpc2FtYmlndWF0aW9uOwotCSAqIGl0IGlzIG5vdCBhY3R1YWxseSByZWZlcmVuY2VkIGluIHRoZSBpcnEgaGFuZGxlcgotCSAqLwotCXJldCA9IHJlcXVlc3RfaXJxKGRldi0+aXJxWzBdLCBhcm1fcnRjX2ludGVycnVwdCwgSVJRRl9ESVNBQkxFRCwKLQkJCSAgInJ0Yy1wbDAzMCIsIGRldik7Ci0JaWYgKHJldCkKLQkJZ290byBtYXBfb3V0OwotCi0JcmV0ID0gcmVnaXN0ZXJfcnRjKCZydGNfb3BzKTsKLQlpZiAocmV0KQotCQlnb3RvIGlycV9vdXQ7Ci0KLQlzZXRfcnRjID0gaW50ZWdyYXRvcl9zZXRfcnRjOwotCXJldHVybiAwOwotCi0gaXJxX291dDoKLQlmcmVlX2lycShkZXYtPmlycVswXSwgZGV2KTsKLSBtYXBfb3V0OgotCWlvdW5tYXAocnRjX2Jhc2UpOwotCXJ0Y19iYXNlID0gTlVMTDsKLSByZXNfb3V0OgotCWFtYmFfcmVsZWFzZV9yZWdpb25zKGRldik7Ci0gb3V0OgotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKLXsKLQlzZXRfcnRjID0gTlVMTDsKLQotCXdyaXRlbCgwLCBydGNfYmFzZSArIFJUQ19DUik7Ci0KLQlmcmVlX2lycShkZXYtPmlycVswXSwgZGV2KTsKLQl1bnJlZ2lzdGVyX3J0YygmcnRjX29wcyk7Ci0KLQlpb3VubWFwKHJ0Y19iYXNlKTsKLQlydGNfYmFzZSA9IE5VTEw7Ci0JYW1iYV9yZWxlYXNlX3JlZ2lvbnMoZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHRpbWVzcGVjIHJ0Y19kZWx0YTsKLQotc3RhdGljIGludCBydGNfc3VzcGVuZChzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXN0cnVjdCB0aW1lc3BlYyBydGM7Ci0KLQlydGMudHZfc2VjID0gcmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpOwotCXJ0Yy50dl9uc2VjID0gMDsKLQlzYXZlX3RpbWVfZGVsdGEoJnJ0Y19kZWx0YSwgJnJ0Yyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBydGNfcmVzdW1lKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQotewotCXN0cnVjdCB0aW1lc3BlYyBydGM7Ci0KLQlydGMudHZfc2VjID0gcmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpOwotCXJ0Yy50dl9uc2VjID0gMDsKLQlyZXN0b3JlX3RpbWVfZGVsdGEoJnJ0Y19kZWx0YSwgJnJ0Yyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBhbWJhX2lkIHJ0Y19pZHNbXSA9IHsKLQl7Ci0JCS5pZAk9IDB4MDAwNDEwMzAsCi0JCS5tYXNrCT0gMHgwMDBmZmZmZiwKLQl9LAotCXsgMCwgMCB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBhbWJhX2RyaXZlciBydGNfZHJpdmVyID0gewotCS5kcnYJCT0gewotCQkubmFtZQk9ICJydGMtcGwwMzAiLAotCX0sCi0JLnByb2JlCQk9IHJ0Y19wcm9iZSwKLQkucmVtb3ZlCQk9IHJ0Y19yZW1vdmUsCi0JLnN1c3BlbmQJPSBydGNfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHJ0Y19yZXN1bWUsCi0JLmlkX3RhYmxlCT0gcnRjX2lkcywKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGludGVncmF0b3JfcnRjX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gYW1iYV9kcml2ZXJfcmVnaXN0ZXIoJnJ0Y19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaW50ZWdyYXRvcl9ydGNfZXhpdCh2b2lkKQotewotCWFtYmFfZHJpdmVyX3VucmVnaXN0ZXIoJnJ0Y19kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChpbnRlZ3JhdG9yX3J0Y19pbml0KTsKLW1vZHVsZV9leGl0KGludGVncmF0b3JfcnRjX2V4aXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L0tjb25maWcKaW5kZXggZTc3NDQ0Ny4uZGI4YjVmZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnCkBAIC0xMjUsNiArMTI1LDE1IEBACiAJZGVwZW5kcyBvbiBBUkNIX0lYRFA0MjUgfHwgTUFDSF9JWERQNDY1IHx8IE1BQ0hfS0lYUlA0MzUKIAlkZWZhdWx0IHkKIAorY29uZmlnIE1BQ0hfRlNHCisJYm9vbAorCXByb21wdCAiRnJlZWNvbSBGU0ctMyIKKwlzZWxlY3QgUENJCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgRnJlZWNvbSdzCisJICBGU0ctMyBkZXZpY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgcGxhdGZvcm0sCisJICBzZWUgaHR0cDovL3d3dy5uc2x1Mi1saW51eC5vcmcvd2lraS9GU0czL0hvbWVQYWdlCisKICMKICMgQ2VydGFpbiByZWdpc3RlcnMgYW5kIElSUXMgYXJlIG9ubHkgZW5hYmxlZCBpZiBzdXBwb3J0aW5nIElYUDQ2NSBDUFVzCiAjCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCmluZGV4IGMxOTU2ODguLjJlNmJiZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCkBAIC0xNSw2ICsxNSw3IEBACiBvYmotcGNpLSQoQ09ORklHX01BQ0hfRFNNRzYwMCkJCSs9IGRzbWc2MDAtcGNpLm8KIG9iai1wY2ktJChDT05GSUdfTUFDSF9HQVRFV0FZNzAwMSkJKz0gZ2F0ZXdheTcwMDEtcGNpLm8KIG9iai1wY2ktJChDT05GSUdfTUFDSF9XRzMwMlYyKQkJKz0gd2czMDJ2Mi1wY2kubworb2JqLXBjaS0kKENPTkZJR19NQUNIX0ZTRykJCSs9IGZzZy1wY2kubwogCiBvYmoteQkrPSBjb21tb24ubwogCkBAIC0yOCw2ICsyOSw3IEBACiBvYmotJChDT05GSUdfTUFDSF9EU01HNjAwKSAgICAgICs9IGRzbWc2MDAtc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfR0FURVdBWTcwMDEpCSs9IGdhdGV3YXk3MDAxLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX1dHMzAyVjIpCSs9IHdnMzAydjItc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfRlNHKQkJKz0gZnNnLXNldHVwLm8KIAogb2JqLSQoQ09ORklHX1BDSSkJCSs9ICQob2JqLXBjaS0kKENPTkZJR19QQ0kpKSBjb21tb24tcGNpLm8KIG9iai0kKENPTkZJR19JWFA0WFhfUU1HUikJKz0gaXhwNHh4X3FtZ3IubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYwppbmRleCBmNmQ2NmRjLi4zNzgxYjNkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYworKysgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYwpAQCAtMzI2LDExICszMjYsMTEgQEAKIH07CiAKIC8qCi0gKiBVU0IgZGV2aWNlIGNvbnRyb2xsZXIuIFRoZSBJWFA0eHggdXNlcyB0aGUgc2FtZSBjb250cm9sbGVyIGFzIFBYQTJYWCwKKyAqIFVTQiBkZXZpY2UgY29udHJvbGxlci4gVGhlIElYUDR4eCB1c2VzIHRoZSBzYW1lIGNvbnRyb2xsZXIgYXMgUFhBMjVYLAogICogc28gd2UganVzdCB1c2UgdGhlIHNhbWUgZGV2aWNlLgogICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpeHA0eHhfdWRjX2RldmljZSA9IHsKLQkubmFtZSAgICAgICAgICAgPSAicHhhMnh4LXVkYyIsCisJLm5hbWUgICAgICAgICAgID0gInB4YTI1eC11ZGMiLAogCS5pZCAgICAgICAgICAgICA9IC0xLAogCS5udW1fcmVzb3VyY2VzICA9IDIsCiAJLnJlc291cmNlICAgICAgID0gaXhwNHh4X3VkY19yZXNvdXJjZXMsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctcGNpLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctcGNpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE5ZjNmNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1wY2kuYwpAQCAtMCwwICsxLDcxIEBACisvKgorICogYXJjaC9hcmNoL21hY2gtaXhwNHh4L2ZzZy1wY2kuYworICoKKyAqIEZTRyBib2FyZC1sZXZlbCBQQ0kgaW5pdGlhbGl6YXRpb24KKyAqCisgKiBBdXRob3I6IFJvZCBXaGl0YnkgPHJvZEB3aGl0YnkuaWQuYXU+CisgKiBNYWludGFpbmVyOiBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZy8KKyAqCisgKiBiYXNlZCBvbiBpeGRwNDI1LXBjaS5jOgorICoJQ29weXJpZ2h0IChDKSAyMDAyIEludGVsIENvcnBvcmF0aW9uLgorICoJQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCit2b2lkIF9faW5pdCBmc2dfcGNpX3ByZWluaXQodm9pZCkKK3sKKwlzZXRfaXJxX3R5cGUoSVJRX0ZTR19QQ0lfSU5UQSwgSVJRVF9MT1cpOworCXNldF9pcnFfdHlwZShJUlFfRlNHX1BDSV9JTlRCLCBJUlFUX0xPVyk7CisJc2V0X2lycV90eXBlKElSUV9GU0dfUENJX0lOVEMsIElSUVRfTE9XKTsKKworCWl4cDR4eF9wY2lfcHJlaW5pdCgpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBmc2dfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJc3RhdGljIGludCBwY2lfaXJxX3RhYmxlW0ZTR19QQ0lfSVJRX0xJTkVTXSA9IHsKKwkJSVJRX0ZTR19QQ0lfSU5UQywKKwkJSVJRX0ZTR19QQ0lfSU5UQiwKKwkJSVJRX0ZTR19QQ0lfSU5UQSwKKwl9OworCisJaW50IGlycSA9IC0xOworCXNsb3QgPSBzbG90IC0gMTE7CisKKwlpZiAoc2xvdCA+PSAxICYmIHNsb3QgPD0gRlNHX1BDSV9NQVhfREVWICYmCisJICAgIHBpbiA+PSAxICYmIHBpbiA8PSBGU0dfUENJX0lSUV9MSU5FUykKKwkJaXJxID0gcGNpX2lycV90YWJsZVsoc2xvdCAtIDEpXTsKKwlwcmludGsoS0VSTl9JTkZPICIlczogTWFwcGVkIHNsb3QgJWQgcGluICVkIHRvIElSUSAlZFxuIiwKKwkgICAgICAgX19mdW5jX18sIHNsb3QsIHBpbiwgaXJxKTsKKworCXJldHVybiBpcnE7Cit9CisKK3N0cnVjdCBod19wY2kgZnNnX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycyA9IDEsCisJLnByZWluaXQgPQkgIGZzZ19wY2lfcHJlaW5pdCwKKwkuc3dpenpsZSA9CSAgcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cCA9CSAgaXhwNHh4X3NldHVwLAorCS5zY2FuID0JCSAgaXhwNHh4X3NjYW5fYnVzLAorCS5tYXBfaXJxID0JICBmc2dfbWFwX2lycSwKK307CisKK2ludCBfX2luaXQgZnNnX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfZnNnKCkpCisJCXBjaV9jb21tb25faW5pdCgmZnNnX3BjaSk7CisJcmV0dXJuIDA7Cit9CisKK3N1YnN5c19pbml0Y2FsbChmc2dfcGNpX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvZnNnLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGIzYTkwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvZnNnLXNldHVwLmMKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYworICoKKyAqIEZTRyBib2FyZC1zZXR1cAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBSb2QgV2hpdGJ5IDxyb2RAd2hpdGJ5LmlkLmF1PgorICoKKyAqIGJhc2VkIG9uIGl4ZHA0MjUtc2V0dXAuYzoKKyAqCUNvcHlyaWdodCAoQykgMjAwMy0yMDA0IE1vbnRhVmlzdGEgU29mdHdhcmUsIEluYy4KKyAqIGJhc2VkIG9uIG5zbHUyLXBvd2VyLmMKKyAqCUNvcHlyaWdodCAoQykgMjAwNSBUb3dlciBUZWNobm9sb2dpZXMKKyAqCisgKiBBdXRob3I6IFJvZCBXaGl0YnkgPHJvZEB3aGl0YnkuaWQuYXU+CisgKiBNYWludGFpbmVyczogaHR0cDovL3d3dy5uc2x1Mi1saW51eC5vcmcvCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CisjaW5jbHVkZSA8bGludXgvbGVkcy5oPgorI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy1ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9mbGFzaC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisKK3N0YXRpYyBzdHJ1Y3QgZmxhc2hfcGxhdGZvcm1fZGF0YSBmc2dfZmxhc2hfZGF0YSA9IHsKKwkubWFwX25hbWUJCT0gImNmaV9wcm9iZSIsCisJLndpZHRoCQkJPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBmc2dfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQkJPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ19mbGFzaCA9IHsKKwkubmFtZQkJCT0gIklYUDRYWC1GbGFzaCIsCisJLmlkCQkJPSAwLAorCS5kZXYgPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmZzZ19mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJCT0gMSwKKwkucmVzb3VyY2UJCT0gJmZzZ19mbGFzaF9yZXNvdXJjZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2dwaW9fcGxhdGZvcm1fZGF0YSBmc2dfaTJjX2dwaW9fZGF0YSA9IHsKKwkuc2RhX3BpbgkJPSBGU0dfU0RBX1BJTiwKKwkuc2NsX3BpbgkJPSBGU0dfU0NMX1BJTiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ19pMmNfZ3BpbyA9IHsKKwkubmFtZQkJCT0gImkyYy1ncGlvIiwKKwkuaWQJCQk9IDAsCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZnNnX2kyY19ncGlvX2RhdGEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBmc2dfaTJjX2JvYXJkX2luZm8gW10gPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygicnRjLWlzbDEyMDgiLCAweDZmKSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBmc2dfdWFydF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBJWFA0WFhfVUFSVDFfQkFTRV9QSFlTLAorCQkuZW5kCQk9IElYUDRYWF9VQVJUMV9CQVNFX1BIWVMgKyAweDBmZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCXsKKwkJLnN0YXJ0CQk9IElYUDRYWF9VQVJUMl9CQVNFX1BIWVMsCisJCS5lbmQJCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUyArIDB4MGZmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgZnNnX3VhcnRfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBJWFA0WFhfVUFSVDFfQkFTRV9QSFlTLAorCQkubWVtYmFzZQk9IChjaGFyICopSVhQNFhYX1VBUlQxX0JBU0VfVklSVCArIFJFR19PRkZTRVQsCisJCS5pcnEJCT0gSVJRX0lYUDRYWF9VQVJUMSwKKwkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GIHwgVVBGX1NLSVBfVEVTVCwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBJWFA0WFhfVUFSVF9YVEFMLAorCX0sCisJeworCQkubWFwYmFzZQk9IElYUDRYWF9VQVJUMl9CQVNFX1BIWVMsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilJWFA0WFhfVUFSVDJfQkFTRV9WSVJUICsgUkVHX09GRlNFVCwKKwkJLmlycQkJPSBJUlFfSVhQNFhYX1VBUlQyLAorCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYgfCBVUEZfU0tJUF9URVNULAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IElYUDRYWF9VQVJUX1hUQUwsCisJfSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ191YXJ0ID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSBQTEFUODI1MF9ERVZfUExBVEZPUk0sCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBmc2dfdWFydF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShmc2dfdWFydF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQkJPSBmc2dfdWFydF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBmc2dfbGVkcyA9IHsKKwkubmFtZQkJPSAiZnNnLWxlZCIsCisJLmlkCQk9IC0xLAorfTsKKworLyogQnVpbHQtaW4gMTAvMTAwIEV0aGVybmV0IE1BQyBpbnRlcmZhY2VzICovCitzdGF0aWMgc3RydWN0IGV0aF9wbGF0X2luZm8gZnNnX3BsYXRfZXRoW10gPSB7CisJeworCQkucGh5CQk9IDUsCisJCS5yeHEJCT0gMywKKwkJLnR4cmVhZHlxCT0gMjAsCisJfSwgeworCQkucGh5CQk9IDQsCisJCS5yeHEJCT0gNCwKKwkJLnR4cmVhZHlxCT0gMjEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZnNnX2V0aFtdID0geworCXsKKwkJLm5hbWUJCQk9ICJpeHA0eHhfZXRoIiwKKwkJLmlkCQkJPSBJWFA0WFhfRVRIX05QRUIsCisJCS5kZXYgPSB7CisJCQkucGxhdGZvcm1fZGF0YQk9IGZzZ19wbGF0X2V0aCwKKwkJfSwKKwl9LCB7CisJCS5uYW1lCQkJPSAiaXhwNHh4X2V0aCIsCisJCS5pZAkJCT0gSVhQNFhYX0VUSF9OUEVDLAorCQkuZGV2ID0geworCQkJLnBsYXRmb3JtX2RhdGEJPSBmc2dfcGxhdF9ldGggKyAxLAorCQl9LAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpmc2dfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJmZzZ19pMmNfZ3BpbywKKwkmZnNnX2ZsYXNoLAorCSZmc2dfbGVkcywKKwkmZnNnX2V0aFswXSwKKwkmZnNnX2V0aFsxXSwKK307CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBmc2dfcG93ZXJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJLyogU2lnbmFsIGluaXQgdG8gZG8gdGhlIGN0cmxhbHRkZWwgYWN0aW9uLCB0aGlzIHdpbGwgYnlwYXNzIGluaXQgaWYKKwkgKiBpdCBoYXNuJ3Qgc3RhcnRlZCBhbmQgZG8gYSBrZXJuZWxfcmVzdGFydC4KKwkgKi8KKwljdHJsX2FsdF9kZWwoKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGlycXJldHVybl90IGZzZ19yZXNldF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwkvKiBUaGlzIGlzIHRoZSBwYXBlci1jbGlwIHJlc2V0IHdoaWNoIGRvZXMgYW4gZW1lcmdlbmN5IHJlYm9vdC4gKi8KKwlwcmludGsoS0VSTl9JTkZPICJSZXN0YXJ0aW5nIHN5c3RlbS5cbiIpOworCW1hY2hpbmVfcmVzdGFydChOVUxMKTsKKworCS8qIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQuICovCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnNnX2luaXQodm9pZCkKK3sKKwlERUNMQVJFX01BQ19CVUYobWFjX2J1Zik7CisJdWludDhfdCBfX2lvbWVtICpmOworCWludCBpOworCisJaXhwNHh4X3N5c19pbml0KCk7CisKKwlmc2dfZmxhc2hfcmVzb3VyY2Uuc3RhcnQgPSBJWFA0WFhfRVhQX0JVU19CQVNFKDApOworCWZzZ19mbGFzaF9yZXNvdXJjZS5lbmQgPQorCQlJWFA0WFhfRVhQX0JVU19CQVNFKDApICsgaXhwNHh4X2V4cF9idXNfc2l6ZSAtIDE7CisKKwkqSVhQNFhYX0VYUF9DUzAgfD0gSVhQNFhYX0ZMQVNIX1dSSVRBQkxFOworCSpJWFA0WFhfRVhQX0NTMSA9ICpJWFA0WFhfRVhQX0NTMDsKKworCS8qIENvbmZpZ3VyZSBDUzIgZm9yIG9wZXJhdGlvbiwgOGJpdCBhbmQgd3JpdGFibGUgKi8KKwkqSVhQNFhYX0VYUF9DUzIgPSAweGJmZmYwMDAyOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgZnNnX2kyY19ib2FyZF9pbmZvLAorCQkJCUFSUkFZX1NJWkUoZnNnX2kyY19ib2FyZF9pbmZvKSk7CisKKwkvKiBUaGlzIGlzIG9ubHkgdXNlZnVsIG9uIGEgbW9kaWZpZWQgbWFjaGluZSwgYnV0IGl0IGlzIHZhbHVhYmxlCisJICogdG8gaGF2ZSBpdCBmaXJzdCBpbiBvcmRlciB0byBzZWUgZGVidWcgbWVzc2FnZXMsIGFuZCBzbyB0aGF0CisJICogaXQgZG9lcyAqbm90KiBnZXQgcmVtb3ZlZCBpZiBwbGF0Zm9ybV9hZGRfZGV2aWNlcyBmYWlscyEKKwkgKi8KKwkodm9pZClwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmZzZ191YXJ0KTsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGZzZ19kZXZpY2VzLCBBUlJBWV9TSVpFKGZzZ19kZXZpY2VzKSk7CisKKwlpZiAocmVxdWVzdF9pcnEoZ3Bpb190b19pcnEoRlNHX1JCX0dQSU8pLCAmZnNnX3Jlc2V0X2hhbmRsZXIsCisJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9UUklHR0VSX0xPVywKKwkJCSJGU0cgcmVzZXQgYnV0dG9uIiwgTlVMTCkgPCAwKSB7CisKKwkJcHJpbnRrKEtFUk5fREVCVUcgIlJlc2V0IEJ1dHRvbiBJUlEgJWQgbm90IGF2YWlsYWJsZVxuIiwKKwkJCWdwaW9fdG9faXJxKEZTR19SQl9HUElPKSk7CisJfQorCisJaWYgKHJlcXVlc3RfaXJxKGdwaW9fdG9faXJxKEZTR19TQl9HUElPKSwgJmZzZ19wb3dlcl9oYW5kbGVyLAorCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfVFJJR0dFUl9MT1csCisJCQkiRlNHIHBvd2VyIGJ1dHRvbiIsIE5VTEwpIDwgMCkgeworCisJCXByaW50ayhLRVJOX0RFQlVHICJQb3dlciBCdXR0b24gSVJRICVkIG5vdCBhdmFpbGFibGVcbiIsCisJCQlncGlvX3RvX2lycShGU0dfU0JfR1BJTykpOworCX0KKworCS8qCisJICogTWFwIGluIGEgcG9ydGlvbiBvZiB0aGUgZmxhc2ggYW5kIHJlYWQgdGhlIE1BQyBhZGRyZXNzZXMuCisJICogU2luY2UgaXQgaXMgc3RvcmVkIGluIEJFIGluIHRoZSBmbGFzaCBpdHNlbGYsIHdlIG5lZWQgdG8KKwkgKiBieXRlc3dhcCBpdCBpZiB3ZSdyZSBpbiBMRSBtb2RlLgorCSAqLworCWYgPSBpb3JlbWFwKElYUDRYWF9FWFBfQlVTX0JBU0UoMCksIDB4NDAwMDAwKTsKKwlpZiAoZikgeworI2lmZGVmIF9fQVJNRUJfXworCQlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisJCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyW2ldID0gcmVhZGIoZiArIDB4M0MwNDIyICsgaSk7CisJCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyW2ldID0gcmVhZGIoZiArIDB4M0MwNDNCICsgaSk7CisJCX0KKyNlbHNlCisKKwkJLyoKKwkJICBFbmRpYW4tc3dhcHBlZCByZWFkcyBmcm9tIHVuYWxpZ25lZCBhZGRyZXNzZXMgYXJlCisJCSAgcmVxdWlyZWQgdG8gZXh0cmFjdCB0aGUgdHdvIE1BQ3MgZnJvbSB0aGUgYmlnLWVuZGlhbgorCQkgIFJlZGJvb3QgY29uZmlnIGFyZWEgaW4gZmxhc2guCisJCSovCisKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkclswXSA9IHJlYWRiKGYgKyAweDNDMDQyMSk7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbMV0gPSByZWFkYihmICsgMHgzQzA0MjApOworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzJdID0gcmVhZGIoZiArIDB4M0MwNDI3KTsKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkclszXSA9IHJlYWRiKGYgKyAweDNDMDQyNik7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbNF0gPSByZWFkYihmICsgMHgzQzA0MjUpOworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzVdID0gcmVhZGIoZiArIDB4M0MwNDI0KTsKKworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzBdID0gcmVhZGIoZiArIDB4M0MwNDM5KTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkclsxXSA9IHJlYWRiKGYgKyAweDNDMDQzRik7CisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbMl0gPSByZWFkYihmICsgMHgzQzA0M0UpOworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzNdID0gcmVhZGIoZiArIDB4M0MwNDNEKTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkcls0XSA9IHJlYWRiKGYgKyAweDNDMDQzQyk7CisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbNV0gPSByZWFkYihmICsgMHgzQzA0NDMpOworI2VuZGlmCisJCWlvdW5tYXAoZik7CisJfQorCXByaW50ayhLRVJOX0lORk8gIkZTRzogVXNpbmcgTUFDIGFkZHJlc3MgJXMgZm9yIHBvcnQgMFxuIiwKKwkgICAgICAgcHJpbnRfbWFjKG1hY19idWYsIGZzZ19wbGF0X2V0aFswXS5od2FkZHIpKTsKKwlwcmludGsoS0VSTl9JTkZPICJGU0c6IFVzaW5nIE1BQyBhZGRyZXNzICVzIGZvciBwb3J0IDFcbiIsCisJICAgICAgIHByaW50X21hYyhtYWNfYnVmLCBmc2dfcGxhdF9ldGhbMV0uaHdhZGRyKSk7CisKK30KKworTUFDSElORV9TVEFSVChGU0csICJGcmVlY29tIEZTRy0zIikKKwkvKiBNYWludGFpbmVyOiB3d3cubnNsdTItbGludXgub3JnICovCisJLnBoeXNfaW8JPSBJWFA0WFhfUEVSSVBIRVJBTF9CQVNFX1BIWVMsCisJLmlvX3BnX29mZnN0CT0gKChJWFA0WFhfUEVSSVBIRVJBTF9CQVNFX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkubWFwX2lvCQk9IGl4cDR4eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gaXhwNHh4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmaXhwNHh4X3RpbWVyLAorCS5ib290X3BhcmFtcwk9IDB4MDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gZnNnX2luaXQsCitNQUNISU5FX0VORAorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYwMGNkOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvS2NvbmZpZwpAQCAtMCwwICsxLDI1IEBACitpZiBBUkNIX0tJUktXT09ECisKK21lbnUgIk1hcnZlbGwgS2lya3dvb2QgSW1wbGVtZW50YXRpb25zIgorCitjb25maWcgTUFDSF9EQjg4RjYyODFfQlAKKwlib29sICJNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQuCisKK2NvbmZpZyBNQUNIX1JEODhGNjE5Ml9OQVMKKwlib29sICJNYXJ2ZWxsIFJELTg4RjYxOTItTkFTIFJlZmVyZW5jZSBCb2FyZCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgUkQtODhGNjE5Mi1OQVMgUmVmZXJlbmNlIEJvYXJkLgorCitjb25maWcgTUFDSF9SRDg4RjYyODEKKwlib29sICJNYXJ2ZWxsIFJELTg4RjYyODEgUmVmZXJlbmNlIEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBSRC04OEY2MjgxIFJlZmVyZW5jZSBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE0YmY0MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvTWFrZWZpbGUKQEAgLTAsMCArMSw1IEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vIHBjaWUubworCitvYmotJChDT05GSUdfTUFDSF9EQjg4RjYyODFfQlApCQkrPSBkYjg4ZjYyODEtYnAtc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfUkQ4OEY2MTkyX05BUykJKz0gcmQ4OGY2MTkyLW5hcy1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9SRDg4RjYxOTJfTkFTKQkrPSByZDg4ZjYyODEtc2V0dXAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZS5ib290IGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZS5ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MDM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4MDAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHgwMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweDAwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2FkZHItbWFwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2FkZHItbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM5ZjBmMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYwpAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYworICoKKyAqIEFkZHJlc3MgbWFwIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIEdlbmVyaWMgQWRkcmVzcyBEZWNvZGUgV2luZG93cyBiaXQgc2V0dGluZ3MKKyAqLworI2RlZmluZSBUQVJHRVRfRERSCQkwCisjZGVmaW5lIFRBUkdFVF9ERVZfQlVTCQkxCisjZGVmaW5lIFRBUkdFVF9QQ0lFCQk0CisjZGVmaW5lIEFUVFJfREVWX1NQSV9ST00JMHgxZQorI2RlZmluZSBBVFRSX0RFVl9CT09UCQkweDFkCisjZGVmaW5lIEFUVFJfREVWX05BTkQJCTB4MmYKKyNkZWZpbmUgQVRUUl9ERVZfQ1MzCQkweDM3CisjZGVmaW5lIEFUVFJfREVWX0NTMgkJMHgzYgorI2RlZmluZSBBVFRSX0RFVl9DUzEJCTB4M2QKKyNkZWZpbmUgQVRUUl9ERVZfQ1MwCQkweDNlCisjZGVmaW5lIEFUVFJfUENJRV9JTwkJMHhlMAorI2RlZmluZSBBVFRSX1BDSUVfTUVNCQkweGU4CisKKy8qCisgKiBIZWxwZXJzIHRvIGdldCBERFIgYmFuayBpbmZvCisgKi8KKyNkZWZpbmUgRERSX0JBU0VfQ1NfT0ZGKG4pCSgweDAwMDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfU0laRV9DU19PRkYobikJKDB4MDAwNCArICgobikgPDwgMykpCisKKy8qCisgKiBDUFUgQWRkcmVzcyBEZWNvZGUgV2luZG93cyByZWdpc3RlcnMKKyAqLworI2RlZmluZSBXSU5fT0ZGKG4pCQkoQlJJREdFX1ZJUlRfQkFTRSArIDB4MDAwMCArICgobikgPDwgNCkpCisjZGVmaW5lIFdJTl9DVFJMX09GRgkJMHgwMDAwCisjZGVmaW5lIFdJTl9CQVNFX09GRgkJMHgwMDA0CisjZGVmaW5lIFdJTl9SRU1BUF9MT19PRkYJMHgwMDA4CisjZGVmaW5lIFdJTl9SRU1BUF9ISV9PRkYJMHgwMDBjCisKKworc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBraXJrd29vZF9tYnVzX2RyYW1faW5mbzsKKworc3RhdGljIGludCBfX2luaXQgY3B1X3dpbl9jYW5fcmVtYXAoaW50IHdpbikKK3sKKwlpZiAod2luIDwgNCkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV93aW4oaW50IHdpbiwgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSB1OCB0YXJnZXQsIHU4IGF0dHIsIGludCByZW1hcCkKK3sKKwl2b2lkIF9faW9tZW0gKmFkZHIgPSAodm9pZCBfX2lvbWVtICopV0lOX09GRih3aW4pOworCXUzMiBjdHJsOworCisJYmFzZSAmPSAweGZmZmYwMDAwOworCWN0cmwgPSAoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMTsKKworCXdyaXRlbChiYXNlLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwl3cml0ZWwoY3RybCwgYWRkciArIFdJTl9DVFJMX09GRik7CisJaWYgKGNwdV93aW5fY2FuX3JlbWFwKHdpbikpIHsKKwkJaWYgKHJlbWFwIDwgMCkKKwkJCXJlbWFwID0gYmFzZTsKKworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0hJX09GRik7CisJfQorfQorCit2b2lkIF9faW5pdCBraXJrd29vZF9zZXR1cF9jcHVfbWJ1cyh2b2lkKQoreworCXZvaWQgX19pb21lbSAqYWRkcjsKKwlpbnQgaTsKKwlpbnQgY3M7CisKKwkvKgorCSAqIEZpcnN0LCBkaXNhYmxlIGFuZCBjbGVhciB3aW5kb3dzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJYWRkciA9ICh2b2lkIF9faW9tZW0gKilXSU5fT0ZGKGkpOworCisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fQ1RSTF9PRkYpOworCQlpZiAoY3B1X3dpbl9jYW5fcmVtYXAoaSkpIHsKKwkJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCQl3cml0ZWwoMCwgYWRkciArIFdJTl9SRU1BUF9ISV9PRkYpOworCQl9CisJfQorCisJLyoKKwkgKiBTZXR1cCB3aW5kb3dzIGZvciBQQ0llIElPK01FTSBzcGFjZS4KKwkgKi8KKwlzZXR1cF9jcHVfd2luKDAsIEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFLCBLSVJLV09PRF9QQ0lFX0lPX1NJWkUsCisJCSAgICAgIFRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfSU8sIEtJUktXT09EX1BDSUVfSU9fQlVTX0JBU0UpOworCXNldHVwX2NwdV93aW4oMSwgS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFLCBLSVJLV09PRF9QQ0lFX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfUENJRSwgQVRUUl9QQ0lFX01FTSwgLTEpOworCisJLyoKKwkgKiBTZXR1cCB3aW5kb3cgZm9yIE5BTkQgY29udHJvbGxlci4KKwkgKi8KKwlzZXR1cF9jcHVfd2luKDIsIEtJUktXT09EX05BTkRfTUVNX1BIWVNfQkFTRSwgS0lSS1dPT0RfTkFORF9NRU1fU0laRSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX05BTkQsIC0xKTsKKworCS8qCisJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgorCSAqLworCWtpcmt3b29kX21idXNfZHJhbV9pbmZvLm1idXNfZHJhbV90YXJnZXRfaWQgPSBUQVJHRVRfRERSOworCisJYWRkciA9ICh2b2lkIF9faW9tZW0gKilERFJfV0lORE9XX0NQVV9CQVNFOworCisJZm9yIChpID0gMCwgY3MgPSAwOyBpIDwgNDsgaSsrKSB7CisJCXUzMiBiYXNlID0gcmVhZGwoYWRkciArIEREUl9CQVNFX0NTX09GRihpKSk7CisJCXUzMiBzaXplID0gcmVhZGwoYWRkciArIEREUl9TSVpFX0NTX09GRihpKSk7CisKKwkJLyoKKwkJICogQ2hpcCBzZWxlY3QgZW5hYmxlZD8KKwkJICovCisJCWlmIChzaXplICYgMSkgeworCQkJc3RydWN0IG1idXNfZHJhbV93aW5kb3cgKnc7CisKKwkJCXcgPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8uY3NbY3MrK107CisJCQl3LT5jc19pbmRleCA9IGk7CisJCQl3LT5tYnVzX2F0dHIgPSAweGYgJiB+KDEgPDwgaSk7CisJCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmZmZjAwMDA7CisJCQl3LT5zaXplID0gKHNpemUgfCAweDAwMDBmZmZmKSArIDE7CisJCX0KKwl9CisJa2lya3dvb2RfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTM4YTNiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uYwpAQCAtMCwwICsxLDMzMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvY29tbW9uLmMKKyAqCisgKiBDb3JlIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfODI1MC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3RpbWV4Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9laGNpLW9yaW9uLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3RpbWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJL08gQWRkcmVzcyBNYXBwaW5nCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2Mga2lya3dvb2RfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oS0lSS1dPT0RfUENJRV9JT19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IEtJUktXT09EX1BDSUVfSU9fU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKKwkJLnZpcnR1YWwJPSBLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEtJUktXT09EX1JFR1NfUEhZU19CQVNFKSwKKwkJLmxlbmd0aAkJPSBLSVJLV09PRF9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfbWFwX2lvKHZvaWQpCit7CisJaW90YWJsZV9pbml0KGtpcmt3b29kX2lvX2Rlc2MsIEFSUkFZX1NJWkUoa2lya3dvb2RfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uX2VoY2lfZGF0YSBraXJrd29vZF9laGNpX2RhdGEgPSB7CisJLmRyYW0JCT0gJmtpcmt3b29kX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHU2NCBlaGNpX2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX2VoY2lfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBVU0JfUEhZU19CQVNFLAorCQkuZW5kCT0gVVNCX1BIWVNfQkFTRSArIDB4MGZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfS0lSS1dPT0RfVVNCLAorCQkuZW5kCT0gSVJRX0tJUktXT09EX1VTQiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX2VoY2kgPSB7CisJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuZG1hX21hc2sJCT0gJmVoY2lfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwkJLnBsYXRmb3JtX2RhdGEJCT0gJmtpcmt3b29kX2VoY2lfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX2VoY2lfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShraXJrd29vZF9laGNpX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF9laGNpX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2VoY2kpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEga2lya3dvb2RfZ2UwMF9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gS0lSS1dPT0RfVENMSywKKwkuZHJhbQkJPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX2dlMDBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UwMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTAwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX2dlMDBfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZraXJrd29vZF9nZTAwX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX2dlMDBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfZ2UwMF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMDAgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0tJUktXT09EX0dFMDBfU1VNLAorCQkuZW5kCT0gSVJRX0tJUktXT09EX0dFMDBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2RfZ2UwMCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBraXJrd29vZF9nZTAwX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZraXJrd29vZF9nZTAwX3NoYXJlZDsKKwlraXJrd29vZF9nZTAwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2dlMDBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2dlMDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU29DIFJUQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX3J0Y19yZXNvdXJjZSA9IHsKKwkuc3RhcnQJPSBSVENfUEhZU19CQVNFLAorCS5lbmQJPSBSVENfUEhZU19CQVNFICsgU1pfMTYgLSAxLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfcnRjX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJydGMtbXYiLCAtMSwgJmtpcmt3b29kX3J0Y19yZXNvdXJjZSwgMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2Rfc2F0YV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gInNhdGEgYmFzZSIsCisJCS5zdGFydAk9IFNBVEFfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FUQV9QSFlTX0JBU0UgKyAweDUwMDAgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5uYW1lCT0gInNhdGEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0tJUktXT09EX1NBVEEsCisJCS5lbmQJPSBJUlFfS0lSS1dPT0RfU0FUQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX3NhdGEgPSB7CisJLm5hbWUJCT0gInNhdGFfbXYiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGtpcmt3b29kX3NhdGFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSBraXJrd29vZF9zYXRhX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpCit7CisJc2F0YV9kYXRhLT5kcmFtID0gJmtpcmt3b29kX21idXNfZHJhbV9pbmZvOworCWtpcmt3b29kX3NhdGEuZGV2LnBsYXRmb3JtX2RhdGEgPSBzYXRhX2RhdGE7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZraXJrd29vZF9zYXRhKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFVBUlQwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQga2lya3dvb2RfdWFydDBfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX0tJUktXT09EX1VBUlRfMCwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBLSVJLV09PRF9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBraXJrd29vZF91YXJ0MF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9LSVJLV09PRF9VQVJUXzAsCisJCS5lbmQJCT0gSVJRX0tJUktXT09EX1VBUlRfMCwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBraXJrd29vZF91YXJ0MCA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gMCwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0ga2lya3dvb2RfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBraXJrd29vZF91YXJ0MF9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShraXJrd29vZF91YXJ0MF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma2lya3dvb2RfdWFydDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBraXJrd29vZF91YXJ0MV9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQxX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfS0lSS1dPT0RfVUFSVF8xLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IEtJUktXT09EX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0tJUktXT09EX1VBUlRfMSwKKwkJLmVuZAkJPSBJUlFfS0lSS1dPT0RfVUFSVF8xLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAxLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBraXJrd29vZF91YXJ0MV9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGtpcmt3b29kX3VhcnQxX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGtpcmt3b29kX3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF91YXJ0MV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZraXJrd29vZF91YXJ0MSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUaW1lIGhhbmRsaW5nCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGtpcmt3b29kX3RpbWVyX2luaXQodm9pZCkKK3sKKwlvcmlvbl90aW1lX2luaXQoSVJRX0tJUktXT09EX0JSSURHRSwgS0lSS1dPT0RfVENMSyk7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIga2lya3dvb2RfdGltZXIgPSB7CisJLmluaXQgPSBraXJrd29vZF90aW1lcl9pbml0LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGNoYXIgKiBfX2luaXQga2lya3dvb2RfaWQodm9pZCkKK3sKKwlzd2l0Y2ggKHJlYWRsKERFVklDRV9JRCkgJiAweDMpIHsKKwljYXNlIDA6CisJCXJldHVybiAiODhGNjE4MCI7CisJY2FzZSAxOgorCQlyZXR1cm4gIjg4RjYxOTIiOworCWNhc2UgMjoKKwkJcmV0dXJuICI4OEY2MjgxIjsKKwl9CisKKwlyZXR1cm4gInVua25vd24gODhGNjAwMCB2YXJpYW50IjsKK30KKworc3RhdGljIGludCBfX2luaXQgaXNfbDJfd3JpdGV0aHJvdWdoKHZvaWQpCit7CisJcmV0dXJuICEhKHJlYWRsKEwyX0NPTkZJR19SRUcpICYgTDJfV1JJVEVUSFJPVUdIKTsKK30KKwordm9pZCBfX2luaXQga2lya3dvb2RfaW5pdCh2b2lkKQoreworCXByaW50ayhLRVJOX0lORk8gIktpcmt3b29kOiAlcywgVENMSz0lZC5cbiIsCisJCWtpcmt3b29kX2lkKCksIEtJUktXT09EX1RDTEspOworCisJa2lya3dvb2Rfc2V0dXBfY3B1X21idXMoKTsKKworI2lmZGVmIENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMgorCWZlcm9jZW9uX2wyX2luaXQoaXNfbDJfd3JpdGV0aHJvdWdoKCkpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGVlMmY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaApAQCAtMCwwICsxLDQyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaAorICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9LSVJLV09PRF9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfS0lSS1dPT0RfQ09NTU9OX0gKKworc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGE7CitzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhOworCisvKgorICogQmFzaWMgS2lya3dvb2QgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCit2b2lkIGtpcmt3b29kX21hcF9pbyh2b2lkKTsKK3ZvaWQga2lya3dvb2RfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfaW5pdF9pcnEodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGtpcmt3b29kX21idXNfZHJhbV9pbmZvOwordm9pZCBraXJrd29vZF9zZXR1cF9jcHVfbWJ1cyh2b2lkKTsKK3ZvaWQga2lya3dvb2Rfc2V0dXBfcGNpZV9pb193aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCWludCBtYWosIGludCBtaW4pOwordm9pZCBraXJrd29vZF9zZXR1cF9wY2llX21lbV93aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSBpbnQgbWFqLCBpbnQgbWluKTsKKwordm9pZCBraXJrd29vZF9laGNpX2luaXQodm9pZCk7Cit2b2lkIGtpcmt3b29kX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwordm9pZCBraXJrd29vZF9wY2llX2luaXQodm9pZCk7Cit2b2lkIGtpcmt3b29kX3J0Y19pbml0KHZvaWQpOwordm9pZCBraXJrd29vZF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKTsKK3ZvaWQga2lya3dvb2RfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfdWFydDFfaW5pdCh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIga2lya3dvb2RfdGltZXI7CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2RiODhmNjI4MS1icC1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWM0ODJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYworICoKKyAqIE1hcnZlbGwgREItODhGNjI4MS1CUCBEZXZlbG9wbWVudCBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI4OGY2MjgxX2dlMDBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgZGI4OGY2MjgxX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZGI4OGY2MjgxX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJa2lya3dvb2RfaW5pdCgpOworCisJa2lya3dvb2RfZWhjaV9pbml0KCk7CisJa2lya3dvb2RfZ2UwMF9pbml0KCZkYjg4ZjYyODFfZ2UwMF9kYXRhKTsKKwlraXJrd29vZF9ydGNfaW5pdCgpOworCWtpcmt3b29kX3NhdGFfaW5pdCgmZGI4OGY2MjgxX3NhdGFfZGF0YSk7CisJa2lya3dvb2RfdWFydDBfaW5pdCgpOworCWtpcmt3b29kX3VhcnQxX2luaXQoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgZGI4OGY2MjgxX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfZGI4OGY2MjgxX2JwKCkpCisJCWtpcmt3b29kX3BjaWVfaW5pdCgpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoZGI4OGY2MjgxX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChEQjg4RjYyODFfQlAsICJNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IGRiODhmNjI4MV9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9pcnEuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAyYmIyYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKKyAqCisgKiBLaXJrd29vZCBJUlEgaGFuZGxpbmcuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2lycS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCit2b2lkIF9faW5pdCBraXJrd29vZF9pbml0X2lycSh2b2lkKQoreworCW9yaW9uX2lycV9pbml0KDAsICh2b2lkIF9faW9tZW0gKikoSVJRX1ZJUlRfQkFTRSArIElSUV9NQVNLX0xPV19PRkYpKTsKKwlvcmlvbl9pcnFfaW5pdCgzMiwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfSElHSF9PRkYpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcGNpZS5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI4MmQwZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcGNpZS5jCkBAIC0wLDAgKzEsMTgwIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMKKyAqCisgKiBQQ0llIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9wY2llLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKworI2RlZmluZSBQQ0lFX0JBU0UJKCh2b2lkIF9faW9tZW0gKilQQ0lFX1ZJUlRfQkFTRSkKKworc3RhdGljIGludCBwY2llX3ZhbGlkX2NvbmZpZyhpbnQgYnVzLCBpbnQgZGV2KQoreworCS8qCisJICogRG9uJ3QgZ28gb3V0IHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyAtLQorCSAqIDEuIG5vbmV4aXN0aW5nIGRldmljZSBvbiBsb2NhbCBidXMKKwkgKiAyLiB3aGVyZSB0aGVyZSdzIG5vIGRldmljZSBjb25uZWN0ZWQgKG5vIGxpbmspCisJICovCisJaWYgKGJ1cyA9PSAwICYmIGRldiA9PSAwKQorCQlyZXR1cm4gMTsKKworCWlmICghb3Jpb25fcGNpZV9saW5rX3VwKFBDSUVfQkFTRSkpCisJCXJldHVybiAwOworCisJaWYgKGJ1cyA9PSAwICYmIGRldiAhPSAxKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOworfQorCisKKy8qCisgKiBQQ0llIGNvbmZpZyBjeWNsZXMgYXJlIGRvbmUgYnkgcHJvZ3JhbW1pbmcgdGhlIFBDSUVfQ09ORl9BRERSIHJlZ2lzdGVyCisgKiBhbmQgdGhlbiByZWFkaW5nIHRoZSBQQ0lFX0NPTkZfREFUQSByZWdpc3Rlci4gTmVlZCB0byBtYWtlIHN1cmUgdGhlc2UKKyAqIHRyYW5zYWN0aW9ucyBhcmUgYXRvbWljLgorICovCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGtpcmt3b29kX3BjaWVfbG9jayk7CisKK3N0YXRpYyBpbnQgcGNpZV9yZF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwgaW50IHdoZXJlLAorCQkJaW50IHNpemUsIHUzMiAqdmFsKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCWlmIChwY2llX3ZhbGlkX2NvbmZpZyhidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pKSA9PSAwKSB7CisJCSp2YWwgPSAweGZmZmZmZmZmOworCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3JkX2NvbmYoUENJRV9CQVNFLCBidXMsIGRldmZuLCB3aGVyZSwgc2l6ZSwgdmFsKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKKwkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJaWYgKHBjaWVfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApCisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgma2lya3dvb2RfcGNpZV9sb2NrLCBmbGFncyk7CisJcmV0ID0gb3Jpb25fcGNpZV93cl9jb25mKFBDSUVfQkFTRSwgYnVzLCBkZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma2lya3dvb2RfcGNpZV9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IHBjaV9vcHMgcGNpZV9vcHMgPSB7CisJLnJlYWQgPSBwY2llX3JkX2NvbmYsCisJLndyaXRlID0gcGNpZV93cl9jb25mLAorfTsKKworCitzdGF0aWMgaW50IGtpcmt3b29kX3BjaWVfc2V0dXAoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpCit7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisKKwkvKgorCSAqIEdlbmVyaWMgUENJZSB1bml0IHNldHVwLgorCSAqLworCW9yaW9uX3BjaWVfc2V0dXAoUENJRV9CQVNFLCAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8pOworCisJLyoKKwkgKiBSZXF1ZXN0IHJlc291cmNlcy4KKwkgKi8KKwlyZXMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogMiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyZXMpCisJCXBhbmljKCJwY2llX3NldHVwIHVuYWJsZSB0byBhbGxvYyByZXNvdXJjZXMiKTsKKworCS8qCisJICogSU9SRVNPVVJDRV9JTworCSAqLworCXJlc1swXS5uYW1lID0gIlBDSWUgSS9PIFNwYWNlIjsKKwlyZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX0lPOworCXJlc1swXS5zdGFydCA9IEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFOworCXJlc1swXS5lbmQgPSByZXNbMF0uc3RhcnQgKyBLSVJLV09PRF9QQ0lFX0lPX1NJWkUgLSAxOworCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZpb3BvcnRfcmVzb3VyY2UsICZyZXNbMF0pKQorCQlwYW5pYygiUmVxdWVzdCBQQ0llIElPIHJlc291cmNlIGZhaWxlZFxuIik7CisJc3lzLT5yZXNvdXJjZVswXSA9ICZyZXNbMF07CisKKwkvKgorCSAqIElPUkVTT1VSQ0VfTUVNCisJICovCisJcmVzWzFdLm5hbWUgPSAiUENJZSBNZW1vcnkgU3BhY2UiOworCXJlc1sxXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCXJlc1sxXS5zdGFydCA9IEtJUktXT09EX1BDSUVfTUVNX1BIWVNfQkFTRTsKKwlyZXNbMV0uZW5kID0gcmVzWzFdLnN0YXJ0ICsgS0lSS1dPT0RfUENJRV9NRU1fU0laRSAtIDE7CisJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmcmVzWzFdKSkKKwkJcGFuaWMoIlJlcXVlc3QgUENJZSBNZW1vcnkgcmVzb3VyY2UgZmFpbGVkXG4iKTsKKwlzeXMtPnJlc291cmNlWzFdID0gJnJlc1sxXTsKKworCXN5cy0+cmVzb3VyY2VbMl0gPSBOVUxMOworCXN5cy0+aW9fb2Zmc2V0ID0gMDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZCBfX2RldmluaXQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJLyoKKwkgKiBQcmV2ZW50IGVudW1lcmF0aW9uIG9mIHJvb3QgY29tcGxleC4KKwkgKi8KKwlpZiAoZGV2LT5idXMtPnBhcmVudCA9PSBOVUxMICYmIGRldi0+ZGV2Zm4gPT0gMCkgeworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPSAwOworCQkJZGV2LT5yZXNvdXJjZVtpXS5lbmQgICA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsKKwkJfQorCX0KK30KK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2J1cyBfX2luaXQgKgora2lya3dvb2RfcGNpZV9zY2FuX2J1cyhpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKK3sKKwlzdHJ1Y3QgcGNpX2J1cyAqYnVzOworCisJaWYgKG5yID09IDApIHsKKwkJYnVzID0gcGNpX3NjYW5fYnVzKHN5cy0+YnVzbnIsICZwY2llX29wcywgc3lzKTsKKwl9IGVsc2UgeworCQlidXMgPSBOVUxMOworCQlCVUcoKTsKKwl9CisKKwlyZXR1cm4gYnVzOworfQorCitzdGF0aWMgaW50IF9faW5pdCBraXJrd29vZF9wY2llX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCXJldHVybiBJUlFfS0lSS1dPT0RfUENJRTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kga2lya3dvb2RfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMSwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0ga2lya3dvb2RfcGNpZV9zZXR1cCwKKwkuc2NhbgkJPSBraXJrd29vZF9wY2llX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0ga2lya3dvb2RfcGNpZV9tYXBfaXJxLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfcGNpZV9pbml0KHZvaWQpCit7CisJcGNpX2NvbW1vbl9pbml0KCZraXJrd29vZF9wY2kpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYxOTItbmFzLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjE5Mi1uYXMtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Y2NDJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYxOTItbmFzLXNldHVwLmMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MTkyLW5hcy1zZXR1cC5jCisgKgorICogTWFydmVsbCBSRC04OEY2MTkyLU5BUyBSZWZlcmVuY2UgQm9hcmQgU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworI2RlZmluZSBSRDg4RjYxOTJfR1BJT19VU0JfVkJVUwkJMTAKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHJkODhmNjE5Ml9nZTAwX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHJkODhmNjE5Ml9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHJkODhmNjE5Ml9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBCYXNpYyBzZXR1cC4gTmVlZHMgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCWtpcmt3b29kX2luaXQoKTsKKworCWtpcmt3b29kX2VoY2lfaW5pdCgpOworCWtpcmt3b29kX2dlMDBfaW5pdCgmcmQ4OGY2MTkyX2dlMDBfZGF0YSk7CisJa2lya3dvb2RfcnRjX2luaXQoKTsKKwlraXJrd29vZF9zYXRhX2luaXQoJnJkODhmNjE5Ml9zYXRhX2RhdGEpOworCWtpcmt3b29kX3VhcnQwX2luaXQoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgcmQ4OGY2MTkyX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfcmQ4OGY2MTkyX25hcygpKQorCQlraXJrd29vZF9wY2llX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHJkODhmNjE5Ml9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY2MTkyX05BUywgIk1hcnZlbGwgUkQtODhGNjE5Mi1OQVMgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNjE5Ml9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYyODEtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MjgxLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFmOGRlMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MjgxLXNldHVwLmMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjI4MS1zZXR1cC5jCisgKgorICogTWFydmVsbCBSRC04OEY2MjgxIFJlZmVyZW5jZSBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHJkODhmNjI4MV9uYW5kX3BhcnRzW10gPSB7CisJeworCQkubmFtZSA9ICJ1LWJvb3QiLAorCQkub2Zmc2V0ID0gMCwKKwkJLnNpemUgPSBTWl8xTQorCX0sIHsKKwkJLm5hbWUgPSAidUltYWdlIiwKKwkJLm9mZnNldCA9IE1URFBBUlRfT0ZTX05YVEJMSywKKwkJLnNpemUgPSBTWl8yTQorCX0sIHsKKwkJLm5hbWUgPSAicm9vdCIsCisJCS5vZmZzZXQgPSBNVERQQVJUX09GU19OWFRCTEssCisJCS5zaXplID0gTVREUEFSVF9TSVpfRlVMTAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHJkODhmNjI4MV9uYW5kX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFLAorCS5lbmQJCT0gS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFICsKKwkJCSAgS0lSS1dPT0RfTkFORF9NRU1fU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IG9yaW9uX25hbmRfZGF0YSByZDg4ZjYyODFfbmFuZF9kYXRhID0geworCS5wYXJ0cwkJPSByZDg4ZjYyODFfbmFuZF9wYXJ0cywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHJkODhmNjI4MV9uYW5kX3BhcnRzKSwKKwkuY2xlCQk9IDAsCisJLmFsZQkJPSAxLAorCS53aWR0aAkJPSA4LAorCS5jaGlwX2RlbGF5CT0gMjUsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSByZDg4ZjYyODFfbmFuZF9mbGFzaCA9IHsKKwkubmFtZQkJPSAib3Jpb25fbmFuZCIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZyZDg4ZjYyODFfbmFuZF9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gJnJkODhmNjI4MV9uYW5kX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSByZDg4ZjYyODFfZ2UwMF9kYXRhID0geworCS5waHlfYWRkcgk9IC0xLAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgcmQ4OGY2MjgxX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmQ4OGY2MjgxX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJa2lya3dvb2RfaW5pdCgpOworCisJa2lya3dvb2RfZWhjaV9pbml0KCk7CisJa2lya3dvb2RfZ2UwMF9pbml0KCZyZDg4ZjYyODFfZ2UwMF9kYXRhKTsKKwlraXJrd29vZF9ydGNfaW5pdCgpOworCWtpcmt3b29kX3NhdGFfaW5pdCgmcmQ4OGY2MjgxX3NhdGFfZGF0YSk7CisJa2lya3dvb2RfdWFydDBfaW5pdCgpOworCWtpcmt3b29kX3VhcnQxX2luaXQoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcmQ4OGY2MjgxX25hbmRfZmxhc2gpOworfQorCitzdGF0aWMgaW50IF9faW5pdCByZDg4ZjYyODFfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19yZDg4ZjYyODEoKSkKKwkJa2lya3dvb2RfcGNpZV9pbml0KCk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjYyODFfcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKFJEODhGNjI4MSwgIk1hcnZlbGwgUkQtODhGNjI4MSBSZWZlcmVuY2UgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNjI4MV9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWxva2kvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDQ1YmRkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWcKQEAgLTAsMCArMSwxMyBAQAoraWYgQVJDSF9MT0tJCisKK21lbnUgIk1hcnZlbGwgTG9raSAoODhSQzg0ODApIEltcGxlbWVudGF0aW9ucyIKKworY29uZmlnIE1BQ0hfTEI4OFJDODQ4MAorCWJvb2wgIk1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MzIzM2UKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUKQEAgLTAsMCArMSwzIEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vCisKK29iai0kKENPTkZJR19NQUNIX0xCODhSQzg0ODApCSs9IGxiODhyYzg0ODAtc2V0dXAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlLmJvb3QgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUuYm9vdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzAzOWMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4MDAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHgwMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweDAwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvYWRkci1tYXAuYyBiL2FyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMjVlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvYWRkci1tYXAuYwpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jCisgKgorICogQWRkcmVzcyBtYXAgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKy8qCisgKiBHZW5lcmljIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgYml0IHNldHRpbmdzCisgKi8KKyNkZWZpbmUgVEFSR0VUX0REUgkJMAorI2RlZmluZSBUQVJHRVRfREVWX0JVUwkJMQorI2RlZmluZSBUQVJHRVRfUENJRTAJCTMKKyNkZWZpbmUgVEFSR0VUX1BDSUUxCQk0CisjZGVmaW5lIEFUVFJfREVWX0JPT1QJCTB4MGYKKyNkZWZpbmUgQVRUUl9ERVZfQ1MyCQkweDFiCisjZGVmaW5lIEFUVFJfREVWX0NTMQkJMHgxZAorI2RlZmluZSBBVFRSX0RFVl9DUzAJCTB4MWUKKyNkZWZpbmUgQVRUUl9QQ0lFX0lPCQkweDUxCisjZGVmaW5lIEFUVFJfUENJRV9NRU0JCTB4NTkKKworLyoKKyAqIEhlbHBlcnMgdG8gZ2V0IEREUiBiYW5rIGluZm8KKyAqLworI2RlZmluZSBERFJfU0laRV9DUyhuKQkJRERSX1JFRygweDE1MDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfQkFTRV9DUyhuKQkJRERSX1JFRygweDE1MDQgKyAoKG4pIDw8IDMpKQorCisvKgorICogQ1BVIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgcmVnaXN0ZXJzCisgKi8KKyNkZWZpbmUgQ1BVX1dJTl9DVFJMKG4pCQlCUklER0VfUkVHKDB4MDAwIHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9CQVNFKG4pCQlCUklER0VfUkVHKDB4MDA0IHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9SRU1BUF9MTyhuKQlCUklER0VfUkVHKDB4MDA4IHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9SRU1BUF9ISShuKQlCUklER0VfUkVHKDB4MDBjIHwgKChuKSA8PCA0KSkKKworCitzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGxva2lfbWJ1c19kcmFtX2luZm87CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9jcHVfd2luKGludCB3aW4sIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCQkgdTggdGFyZ2V0LCB1OCBhdHRyLCBpbnQgcmVtYXApCit7CisJdTMyIGN0cmw7CisKKwliYXNlICY9IDB4ZmZmZjAwMDA7CisJY3RybCA9ICgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICgxIDw8IDUpIHwgdGFyZ2V0OworCisJd3JpdGVsKGJhc2UsIENQVV9XSU5fQkFTRSh3aW4pKTsKKwl3cml0ZWwoY3RybCwgQ1BVX1dJTl9DVFJMKHdpbikpOworCWlmICh3aW4gPCAyKSB7CisJCWlmIChyZW1hcCA8IDApCisJCQlyZW1hcCA9IGJhc2U7CisKKwkJd3JpdGVsKHJlbWFwICYgMHhmZmZmMDAwMCwgQ1BVX1dJTl9SRU1BUF9MTyh3aW4pKTsKKwkJd3JpdGVsKDAsIENQVV9XSU5fUkVNQVBfSEkod2luKSk7CisJfQorfQorCit2b2lkIF9faW5pdCBsb2tpX3NldHVwX2NwdV9tYnVzKHZvaWQpCit7CisJaW50IGk7CisJaW50IGNzOworCisJLyoKKwkgKiBGaXJzdCwgZGlzYWJsZSBhbmQgY2xlYXIgd2luZG93cy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCXdyaXRlbCgwLCBDUFVfV0lOX0JBU0UoaSkpOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9DVFJMKGkpKTsKKwkJaWYgKGkgPCAyKSB7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9MTyhpKSk7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9ISShpKSk7CisJCX0KKwl9CisKKwkvKgorCSAqIFNldHVwIHdpbmRvd3MgZm9yIFBDSWUgSU8rTUVNIHNwYWNlLgorCSAqLworCXNldHVwX2NwdV93aW4oMiwgTE9LSV9QQ0lFMF9NRU1fUEhZU19CQVNFLCBMT0tJX1BDSUUwX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfUENJRTAsIEFUVFJfUENJRV9NRU0sIC0xKTsKKwlzZXR1cF9jcHVfd2luKDMsIExPS0lfUENJRTFfTUVNX1BIWVNfQkFTRSwgTE9LSV9QQ0lFMV9NRU1fU0laRSwKKwkJICAgICAgVEFSR0VUX1BDSUUxLCBBVFRSX1BDSUVfTUVNLCAtMSk7CisKKwkvKgorCSAqIFNldHVwIE1CVVMgZHJhbSB0YXJnZXQgaW5mby4KKwkgKi8KKwlsb2tpX21idXNfZHJhbV9pbmZvLm1idXNfZHJhbV90YXJnZXRfaWQgPSBUQVJHRVRfRERSOworCisJZm9yIChpID0gMCwgY3MgPSAwOyBpIDwgNDsgaSsrKSB7CisJCXUzMiBiYXNlID0gcmVhZGwoRERSX0JBU0VfQ1MoaSkpOworCQl1MzIgc2l6ZSA9IHJlYWRsKEREUl9TSVpFX0NTKGkpKTsKKworCQkvKgorCQkgKiBDaGlwIHNlbGVjdCBlbmFibGVkPworCQkgKi8KKwkJaWYgKHNpemUgJiAxKSB7CisJCQlzdHJ1Y3QgbWJ1c19kcmFtX3dpbmRvdyAqdzsKKworCQkJdyA9ICZsb2tpX21idXNfZHJhbV9pbmZvLmNzW2NzKytdOworCQkJdy0+Y3NfaW5kZXggPSBpOworCQkJdy0+bWJ1c19hdHRyID0gMHhmICYgfigxIDw8IGkpOworCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmZmYwMDAwOworCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMDAwZmZmZikgKyAxOworCQl9CisJfQorCWxva2lfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CisKK3ZvaWQgX19pbml0IGxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKK3sKKwlzZXR1cF9jcHVfd2luKDQsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9CT09ULCAtMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEwZjUwMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYwpAQCAtMCwwICsxLDMwNSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYworICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfODI1MC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3RpbWV4Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vdGltZS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBsb2tpX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBMT0tJX1JFR1NfVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oTE9LSV9SRUdTX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gTE9LSV9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQgbG9raV9tYXBfaW8odm9pZCkKK3sKKwlpb3RhYmxlX2luaXQobG9raV9pb19kZXNjLCBBUlJBWV9TSVpFKGxva2lfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBsb2tpX2dlMF9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gTE9LSV9UQ0xLLAorCS5kcmFtCQk9ICZsb2tpX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAgYmFzZSIsCisJCS5zdGFydAk9IEdFMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTBfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV9nZTBfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZsb2tpX2dlMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMF9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTE9LSV9HQkVfQV9JTlQsCisJCS5lbmQJPSBJUlFfTE9LSV9HQkVfQV9JTlQsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX2dlMCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBsb2tpX2dlMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJmxva2lfZ2UwX3NoYXJlZDsKKwlsb2tpX2dlMC5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJd3JpdGVsKDB4MDAwNzkyMjAsIEdFMF9WSVJUX0JBU0UgKyAweDIwYjApOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9nZTBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfZ2UwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdFMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbG9raV9nZTFfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IExPS0lfVENMSywKKwkuZHJhbQkJPSAmbG9raV9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV9nZTFfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxIGJhc2UiLAorCQkuc3RhcnQJPSBHRTFfUEhZU19CQVNFICsgMHgyMDAwLAorCQkuZW5kCT0gR0UxX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfZ2UxX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbG9raV9nZTFfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbG9raV9nZTFfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV9nZTFfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0xPS0lfR0JFX0JfSU5ULAorCQkuZW5kCT0gSVJRX0xPS0lfR0JFX0JfSU5ULAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV9nZTEgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbG9raV9nZTFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbG9raV9nZTFfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZsb2tpX2dlMV9zaGFyZWQ7CisJbG9raV9nZTEuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXdyaXRlbCgweDAwMDc5MjIwLCBHRTFfVklSVF9CQVNFICsgMHgyMGIwKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfZ2UxX3NoYXJlZCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX2dlMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVMvU0FUQQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGxva2lfc2FzX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAibXZzYXMwIG1lbSIsCisJCS5zdGFydAk9IFNBUzBfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FTMF9QSFlTX0JBU0UgKyAweDAxZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMwIGlycSIsCisJCS5zdGFydAk9IElSUV9MT0tJX1NBU19BLAorCQkuZW5kCT0gSVJRX0xPS0lfU0FTX0EsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMxIG1lbSIsCisJCS5zdGFydAk9IFNBUzFfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FTMV9QSFlTX0JBU0UgKyAweDAxZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMxIGlycSIsCisJCS5zdGFydAk9IElSUV9MT0tJX1NBU19CLAorCQkuZW5kCT0gSVJRX0xPS0lfU0FTX0IsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX3NhcyA9IHsKKwkubmFtZQkJPSAibXZzYXMiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGxva2lfc2FzX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0gbG9raV9zYXNfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbG9raV9zYXNfaW5pdCh2b2lkKQoreworCXdyaXRlbCgweDgzMDBmNzA3LCBERFJfUkVHKDB4MTQyNCkpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9zYXMpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBsb2tpX3VhcnQwX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IExPS0lfVENMSywKKwl9LCB7CisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV91YXJ0MF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZW5kCQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfdWFydDAgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IGxva2lfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBsb2tpX3VhcnQwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGxva2lfdWFydDBfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IGxva2lfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV91YXJ0MCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IGxva2lfdWFydDFfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMV9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMV9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gTE9LSV9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5lbmQJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV91YXJ0MSA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gMSwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gbG9raV91YXJ0MV9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGxva2lfdWFydDFfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUobG9raV91YXJ0MV9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbG9raV91YXJ0MV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX3VhcnQxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRpbWUgaGFuZGxpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgbG9raV90aW1lcl9pbml0KHZvaWQpCit7CisJb3Jpb25fdGltZV9pbml0KElSUV9MT0tJX0JSSURHRSwgTE9LSV9UQ0xLKTsKK30KKworc3RydWN0IHN5c190aW1lciBsb2tpX3RpbWVyID0geworCS5pbml0ID0gbG9raV90aW1lcl9pbml0LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZCBfX2luaXQgbG9raV9pbml0KHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiTG9raSBJRDogODhSQzg0ODAuIFRDTEs9JWQuXG4iLCBMT0tJX1RDTEspOworCisJbG9raV9zZXR1cF9jcHVfbWJ1cygpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDU0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9jb21tb24uaAorICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FSQ0hfTE9LSV9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfTE9LSV9DT01NT05fSAorCitzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YTsKKworLyoKKyAqIEJhc2ljIExva2kgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCit2b2lkIGxva2lfbWFwX2lvKHZvaWQpOwordm9pZCBsb2tpX2luaXQodm9pZCk7Cit2b2lkIGxva2lfaW5pdF9pcnEodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGxva2lfbWJ1c19kcmFtX2luZm87Cit2b2lkIGxva2lfc2V0dXBfY3B1X21idXModm9pZCk7Cit2b2lkIGxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSk7CisKK3ZvaWQgbG9raV9nZTBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwordm9pZCBsb2tpX2dlMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIGxva2lfc2FzX2luaXQodm9pZCk7Cit2b2lkIGxva2lfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQgbG9raV91YXJ0MV9pbml0KHZvaWQpOworCitleHRlcm4gc3RydWN0IHN5c190aW1lciBsb2tpX3RpbWVyOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL2lycS5jIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2lycS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4MzlhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvaXJxLmMKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9pcnEuYworICoKKyAqIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIElSUSBoYW5kbGluZy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2lycS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCit2b2lkIF9faW5pdCBsb2tpX2luaXRfaXJxKHZvaWQpCit7CisJb3Jpb25faXJxX2luaXQoMCwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfT0ZGKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvbGI4OHJjODQ4MC1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2xiODhyYzg0ODAtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWI5ZTZlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2xiODhyYzg0ODAtc2V0dXAuYwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9sYjg4cmM4NDgwLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIExCODhSQzg0ODAgRGV2ZWxvcG1lbnQgQm9hcmQgU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisjZGVmaW5lIExCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19CQVNFCTB4ZjgwMDAwMDAKKyNkZWZpbmUgTEI4OFJDODQ4MF9GTEFTSF9CT09UX0NTX1NJWkUJU1pfMTI4TQorCisjZGVmaW5lIExCODhSQzg0ODBfTk9SX0JPT1RfQkFTRQkweGZmMDAwMDAwCisjZGVmaW5lIExCODhSQzg0ODBfTk9SX0JPT1RfU0laRQlTWl8xNk0KKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGxiODhyYzg0ODBfYm9vdF9mbGFzaF9wYXJ0c1tdID0geworCXsKKwkJLm5hbWUJPSAia2VybmVsIiwKKwkJLm9mZnNldAk9IDAsCisJCS5zaXplCT0gU1pfMk0sCisJfSwgeworCQkubmFtZQk9ICJyb290LWZzIiwKKwkJLm9mZnNldAk9IFNaXzJNLAorCQkuc2l6ZQk9IChTWl84TSArIFNaXzRNICsgU1pfMU0pLAorCX0sIHsKKwkJLm5hbWUJPSAidS1ib290IiwKKwkJLm9mZnNldAk9IChTWl84TSArIFNaXzRNICsgU1pfMk0gKyBTWl8xTSksCisJCS5zaXplCT0gU1pfMU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIGxiODhyYzg0ODBfYm9vdF9mbGFzaF9kYXRhID0geworCS5wYXJ0cwkJPSBsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcGFydHMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRShsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcGFydHMpLAorCS53aWR0aAkJPSAxLAkvKiA4IGJpdCBidXMgd2lkdGggKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbGI4OHJjODQ4MF9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAk9IExCODhSQzg0ODBfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCT0gTEI4OFJDODQ4MF9OT1JfQk9PVF9CQVNFICsgTEI4OFJDODQ4MF9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxiODhyYzg0ODBfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJPSAwLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmxiODhyYzg0ODBfYm9vdF9mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9ICZsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgbGI4OHJjODQ4MF9nZTBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAxLAorCS5tYWNfYWRkcgk9IHsgMHgwMCwgMHg1MCwgMHg0MywgMHgxMSwgMHgyMiwgMHgzMyB9LAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGxiODhyYzg0ODBfaW5pdCh2b2lkKQoreworCS8qCisJICogQmFzaWMgc2V0dXAuIE5lZWRzIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlsb2tpX2luaXQoKTsKKworCWxva2lfZ2UwX2luaXQoJmxiODhyYzg0ODBfZ2UwX2RhdGEpOworCWxva2lfc2FzX2luaXQoKTsKKwlsb2tpX3VhcnQwX2luaXQoKTsKKwlsb2tpX3VhcnQxX2luaXQoKTsKKworCWxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKExCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19CQVNFLAorCQkJCUxCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxiODhyYzg0ODBfYm9vdF9mbGFzaCk7Cit9CisKK01BQ0hJTkVfU1RBUlQoTEI4OFJDODQ4MCwgIk1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogS2UgV2VpIDxrZXdlaUBtYXJ2ZWxsLmNvbT4gKi8KKwkucGh5c19pbwk9IExPS0lfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChMT0tJX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gbGI4OHJjODQ4MF9pbml0LAorCS5tYXBfaW8JCT0gbG9raV9tYXBfaW8sCisJLmluaXRfaXJxCT0gbG9raV9pbml0X2lycSwKKwkudGltZXIJCT0gJmxva2lfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODNjYjg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWcKQEAgLTAsMCArMSwxMyBAQAoraWYgQVJDSF9NVjc4WFgwCisKK21lbnUgIk1hcnZlbGwgTVY3OHh4MCBJbXBsZW1lbnRhdGlvbnMiCisKK2NvbmZpZyBNQUNIX0RCNzhYMDBfQlAKKwlib29sICJNYXJ2ZWxsIERCLTc4eDAwLUJQIERldmVsb3BtZW50IEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBEQi03OHgwMC1CUCBEZXZlbG9wbWVudCBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMTZjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUKQEAgLTAsMCArMSwyIEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vIHBjaWUubworb2JqLSQoQ09ORklHX01BQ0hfREI3OFgwMF9CUCkJKz0gZGI3OHgwMC1icC1zZXR1cC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9NYWtlZmlsZS5ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MDM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUuYm9vdApAQCAtMCwwICsxLDMgQEAKKyAgIHpyZWxhZGRyLXkJOj0gMHgwMDAwODAwMAorcGFyYW1zX3BoeXMteQk6PSAweDAwMDAwMTAwCitpbml0cmRfcGh5cy15CTo9IDB4MDA4MDAwMDAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9hZGRyLW1hcC5jIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAwNGI2NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9hZGRyLW1hcC5jCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMKKyAqCisgKiBBZGRyZXNzIG1hcCBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTVY3OHh4MCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKy8qCisgKiBHZW5lcmljIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgYml0IHNldHRpbmdzCisgKi8KKyNkZWZpbmUgVEFSR0VUX0REUgkJMAorI2RlZmluZSBUQVJHRVRfREVWX0JVUwkJMQorI2RlZmluZSBUQVJHRVRfUENJRTAJCTQKKyNkZWZpbmUgVEFSR0VUX1BDSUUxCQk4CisjZGVmaW5lIFRBUkdFVF9QQ0lFKGkpCQkoKGkpID8gVEFSR0VUX1BDSUUxIDogVEFSR0VUX1BDSUUwKQorI2RlZmluZSBBVFRSX0RFVl9TUElfUk9NCTB4MWYKKyNkZWZpbmUgQVRUUl9ERVZfQk9PVAkJMHgyZgorI2RlZmluZSBBVFRSX0RFVl9DUzMJCTB4MzcKKyNkZWZpbmUgQVRUUl9ERVZfQ1MyCQkweDNiCisjZGVmaW5lIEFUVFJfREVWX0NTMQkJMHgzZAorI2RlZmluZSBBVFRSX0RFVl9DUzAJCTB4M2UKKyNkZWZpbmUgQVRUUl9QQ0lFX0lPKGwpCQkoMHhmMCAmIH4oMHgxMCA8PCAobCkpKQorI2RlZmluZSBBVFRSX1BDSUVfTUVNKGwpCSgweGY4ICYgfigweDEwIDw8IChsKSkpCisKKy8qCisgKiBIZWxwZXJzIHRvIGdldCBERFIgYmFuayBpbmZvCisgKi8KKyNkZWZpbmUgRERSX0JBU0VfQ1NfT0ZGKG4pCSgweDAwMDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfU0laRV9DU19PRkYobikJKDB4MDAwNCArICgobikgPDwgMykpCisKKy8qCisgKiBDUFUgQWRkcmVzcyBEZWNvZGUgV2luZG93cyByZWdpc3RlcnMKKyAqLworI2RlZmluZSBXSU4wX09GRihuKQkJKEJSSURHRV9WSVJUX0JBU0UgKyAweDAwMDAgKyAoKG4pIDw8IDQpKQorI2RlZmluZSBXSU44X09GRihuKQkJKEJSSURHRV9WSVJUX0JBU0UgKyAweDA5MDAgKyAoKChuKSAtIDgpIDw8IDQpKQorI2RlZmluZSBXSU5fQ1RSTF9PRkYJCTB4MDAwMAorI2RlZmluZSBXSU5fQkFTRV9PRkYJCTB4MDAwNAorI2RlZmluZSBXSU5fUkVNQVBfTE9fT0ZGCTB4MDAwOAorI2RlZmluZSBXSU5fUkVNQVBfSElfT0ZGCTB4MDAwYworCisKK3N0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8gbXY3OHh4MF9tYnVzX2RyYW1faW5mbzsKKworc3RhdGljIHZvaWQgX19pbml0IF9faW9tZW0gKndpbl9jZmdfYmFzZShpbnQgd2luKQoreworCS8qCisJICogRmluZCB0aGUgY29udHJvbCByZWdpc3RlciBiYXNlIGFkZHJlc3MgZm9yIHRoaXMgd2luZG93LgorCSAqCisJICogQlJJREdFX1ZJUlRfQkFTRSBwb2ludHMgdG8gdGhlIHJpZ2h0IChDUFUwJ3Mgb3IgQ1BVMSdzKQorCSAqIE1CVVMgYnJpZGdlIGRlcGVuZGluZyBvbiB3aGljaCBDUFUgY29yZSB3ZSdyZSBydW5uaW5nIG9uLAorCSAqIHNvIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGF0IGludG8gYWNjb3VudCBoZXJlLgorCSAqLworCisJcmV0dXJuICh2b2lkIF9faW9tZW0gKikoKHdpbiA8IDgpID8gV0lOMF9PRkYod2luKSA6IFdJTjhfT0ZGKHdpbikpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBjcHVfd2luX2Nhbl9yZW1hcChpbnQgd2luKQoreworCWlmICh3aW4gPCA4KQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1X3dpbihpbnQgd2luLCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJIHU4IHRhcmdldCwgdTggYXR0ciwgaW50IHJlbWFwKQoreworCXZvaWQgX19pb21lbSAqYWRkciA9IHdpbl9jZmdfYmFzZSh3aW4pOworCXUzMiBjdHJsOworCisJYmFzZSAmPSAweGZmZmYwMDAwOworCWN0cmwgPSAoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMTsKKworCXdyaXRlbChiYXNlLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwl3cml0ZWwoY3RybCwgYWRkciArIFdJTl9DVFJMX09GRik7CisJaWYgKGNwdV93aW5fY2FuX3JlbWFwKHdpbikpIHsKKwkJaWYgKHJlbWFwIDwgMCkKKwkJCXJlbWFwID0gYmFzZTsKKworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0hJX09GRik7CisJfQorfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX3NldHVwX2NwdV9tYnVzKHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICphZGRyOworCWludCBpOworCWludCBjczsKKworCS8qCisJICogRmlyc3QsIGRpc2FibGUgYW5kIGNsZWFyIHdpbmRvd3MuCisJICovCisJZm9yIChpID0gMDsgaSA8IDE0OyBpKyspIHsKKwkJYWRkciA9IHdpbl9jZmdfYmFzZShpKTsKKworCQl3cml0ZWwoMCwgYWRkciArIFdJTl9CQVNFX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX0NUUkxfT0ZGKTsKKwkJaWYgKGNwdV93aW5fY2FuX3JlbWFwKGkpKSB7CisJCQl3cml0ZWwoMCwgYWRkciArIFdJTl9SRU1BUF9MT19PRkYpOworCQkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fUkVNQVBfSElfT0ZGKTsKKwkJfQorCX0KKworCS8qCisJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgorCSAqLworCW12Nzh4eDBfbWJ1c19kcmFtX2luZm8ubWJ1c19kcmFtX3RhcmdldF9pZCA9IFRBUkdFVF9ERFI7CisKKwlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkKKwkJYWRkciA9ICh2b2lkIF9faW9tZW0gKilERFJfV0lORE9XX0NQVTBfQkFTRTsKKwllbHNlCisJCWFkZHIgPSAodm9pZCBfX2lvbWVtICopRERSX1dJTkRPV19DUFUxX0JBU0U7CisKKwlmb3IgKGkgPSAwLCBjcyA9IDA7IGkgPCA0OyBpKyspIHsKKwkJdTMyIGJhc2UgPSByZWFkbChhZGRyICsgRERSX0JBU0VfQ1NfT0ZGKGkpKTsKKwkJdTMyIHNpemUgPSByZWFkbChhZGRyICsgRERSX1NJWkVfQ1NfT0ZGKGkpKTsKKworCQkvKgorCQkgKiBDaGlwIHNlbGVjdCBlbmFibGVkPworCQkgKi8KKwkJaWYgKHNpemUgJiAxKSB7CisJCQlzdHJ1Y3QgbWJ1c19kcmFtX3dpbmRvdyAqdzsKKworCQkJdyA9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLmNzW2NzKytdOworCQkJdy0+Y3NfaW5kZXggPSBpOworCQkJdy0+bWJ1c19hdHRyID0gMHhmICYgfigxIDw8IGkpOworCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmZmYwMDAwOworCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMDAwZmZmZikgKyAxOworCQl9CisJfQorCW12Nzh4eDBfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2V0dXBfcGNpZV9pb193aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSAgICAgIGludCBtYWosIGludCBtaW4pCit7CisJc2V0dXBfY3B1X3dpbih3aW5kb3csIGJhc2UsIHNpemUsIFRBUkdFVF9QQ0lFKG1haiksCisJCSAgICAgIEFUVFJfUENJRV9JTyhtaW4pLCAtMSk7Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2V0dXBfcGNpZV9tZW1fd2luKGludCB3aW5kb3csIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCQkgICAgICAgaW50IG1haiwgaW50IG1pbikKK3sKKwlzZXR1cF9jcHVfd2luKHdpbmRvdywgYmFzZSwgc2l6ZSwgVEFSR0VUX1BDSUUobWFqKSwKKwkJICAgICAgQVRUUl9QQ0lFX01FTShtaW4pLCAtMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3YjgzYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYwpAQCAtMCwwICsxLDc1NCBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYworICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIE1WNzh4eDAgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2NhY2hlLWZlcm9jZW9uLWwyLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vZWhjaS1vcmlvbi5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi90aW1lLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb21tb24gYml0cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQgbXY3OHh4MF9jb3JlX2luZGV4KHZvaWQpCit7CisJdTMyIGV4dHJhOworCisJLyoKKwkgKiBSZWFkIEV4dHJhIEZlYXR1cmVzIHJlZ2lzdGVyLgorCSAqLworCV9fYXNtX18oIm1yYyBwMTUsIDEsICUwLCBjMTUsIGMxLCAwIiA6ICI9ciIgKGV4dHJhKSk7CisKKwlyZXR1cm4gISEoZXh0cmEgJiAweDAwMDA0MDAwKTsKK30KKworc3RhdGljIGludCBnZXRfaGNsayh2b2lkKQoreworCWludCBoY2xrOworCisJLyoKKwkgKiBIQ0xLIHRpY2sgcmF0ZSBpcyBjb25maWd1cmVkIGJ5IERFVl9EWzc6NV0gcGlucy4KKwkgKi8KKwlzd2l0Y2ggKChyZWFkbChTQU1QTEVfQVRfUkVTRVRfTE9XKSA+PiA1KSAmIDcpIHsKKwljYXNlIDA6CisJCWhjbGsgPSAxNjY2NjY2Njc7CisJCWJyZWFrOworCWNhc2UgMToKKwkJaGNsayA9IDIwMDAwMDAwMDsKKwkJYnJlYWs7CisJY2FzZSAyOgorCQloY2xrID0gMjY2NjY2NjY3OworCQlicmVhazsKKwljYXNlIDM6CisJCWhjbGsgPSAzMzMzMzMzMzM7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJaGNsayA9IDQwMDAwMDAwMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcGFuaWMoInVua25vd24gSENMSyBQTEwgc2V0dGluZzogJS44eFxuIiwKKwkJCXJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpKTsKKwl9CisKKwlyZXR1cm4gaGNsazsKK30KKworc3RhdGljIHZvaWQgZ2V0X3BjbGtfbDJjbGsoaW50IGhjbGssIGludCBjb3JlX2luZGV4LCBpbnQgKnBjbGssIGludCAqbDJjbGspCit7CisJdTMyIGNmZzsKKworCS8qCisJICogQ29yZSAjMCBQQ0xLL0wyQ0xLIGlzIGNvbmZpZ3VyZWQgYnkgYml0cyBbMTM6OF0sIGNvcmUgIzEKKwkgKiBQQ0xLL0wyQ0xLIGJ5IGJpdHMgWzE5OjE0XS4KKwkgKi8KKwlpZiAoY29yZV9pbmRleCA9PSAwKSB7CisJCWNmZyA9IChyZWFkbChTQU1QTEVfQVRfUkVTRVRfTE9XKSA+PiA4KSAmIDB4M2Y7CisJfSBlbHNlIHsKKwkJY2ZnID0gKHJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpID4+IDE0KSAmIDB4M2Y7CisJfQorCisJLyoKKwkgKiBCaXRzIFsxMTo4XSAoWzE3OjE0XSBmb3IgY29yZSAjMSkgY29uZmlndXJlIHRoZSBQQ0xLOkhDTEsKKwkgKiByYXRpbyAoMSwgMS41LCAyLCAyLjUsIDMsIDMuNSwgNCwgNC41LCA1LCA1LjUsIDYpLgorCSAqLworCSpwY2xrID0gKCh1NjQpaGNsayAqICgyICsgKGNmZyAmIDB4ZikpKSA+PiAxOworCisJLyoKKwkgKiBCaXRzIFsxMzoxMl0gKFsxOToxOF0gZm9yIGNvcmUgIzEpIGNvbmZpZ3VyZSB0aGUgUENMSzpMMkNMSworCSAqIHJhdGlvICgxLCAyLCAzKS4KKwkgKi8KKwkqbDJjbGsgPSAqcGNsayAvICgoKGNmZyA+PiA0KSAmIDMpICsgMSk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3RjbGsodm9pZCkKK3sKKwlpbnQgdGNsazsKKworCS8qCisJICogVENMSyB0aWNrIHJhdGUgaXMgY29uZmlndXJlZCBieSBERVZfQVsyOjBdIHN0cmFwIHBpbnMuCisJICovCisJc3dpdGNoICgocmVhZGwoU0FNUExFX0FUX1JFU0VUX0hJR0gpID4+IDYpICYgNykgeworCWNhc2UgMToKKwkJdGNsayA9IDE2NjY2NjY2NzsKKwkJYnJlYWs7CisJY2FzZSAzOgorCQl0Y2xrID0gMjAwMDAwMDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwYW5pYygidW5rbm93biBUQ0xLIFBMTCBzZXR0aW5nOiAlLjh4XG4iLAorCQkJcmVhZGwoU0FNUExFX0FUX1JFU0VUX0hJR0gpKTsKKwl9CisKKwlyZXR1cm4gdGNsazsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBtdjc4eHgwX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBNVjc4WFgwX0NPUkVfUkVHU19WSVJUX0JBU0UsCisJCS5wZm4JCT0gMCwKKwkJLmxlbmd0aAkJPSBNVjc4WFgwX0NPUkVfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgeworCQkudmlydHVhbAk9IE1WNzhYWDBfUENJRV9JT19WSVJUX0JBU0UoMCksCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApKSwKKwkJLmxlbmd0aAkJPSBNVjc4WFgwX1BDSUVfSU9fU0laRSAqIDgsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CisJCS52aXJ0dWFsCT0gTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IE1WNzhYWDBfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfbWFwX2lvKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBwaHlzOworCisJLyoKKwkgKiBNYXAgdGhlIHJpZ2h0IHNldCBvZiBwZXItY29yZSByZWdpc3RlcnMgZGVwZW5kaW5nIG9uCisJICogd2hpY2ggY29yZSB3ZSBhcmUgcnVubmluZyBvbi4KKwkgKi8KKwlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkgeworCQlwaHlzID0gTVY3OFhYMF9DT1JFMF9SRUdTX1BIWVNfQkFTRTsKKwl9IGVsc2UgeworCQlwaHlzID0gTVY3OFhYMF9DT1JFMV9SRUdTX1BIWVNfQkFTRTsKKwl9CisJbXY3OHh4MF9pb19kZXNjWzBdLnBmbiA9IF9fcGh5c190b19wZm4ocGh5cyk7CisKKwlpb3RhYmxlX2luaXQobXY3OHh4MF9pb19kZXNjLCBBUlJBWV9TSVpFKG12Nzh4eDBfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uX2VoY2lfZGF0YSBtdjc4eHgwX2VoY2lfZGF0YSA9IHsKKwkuZHJhbQkJPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyB1NjQgZWhjaV9kbWFtYXNrID0gMHhmZmZmZmZmZlVMOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSTAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2VoY2kwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gVVNCMF9QSFlTX0JBU0UsCisJCS5lbmQJPSBVU0IwX1BIWVNfQkFTRSArIDB4MGZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9VU0JfMCwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX1VTQl8wLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9laGNpMCA9IHsKKwkubmFtZQkJPSAib3Jpb24tZWhjaSIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5kbWFfbWFzawkJPSAmZWhjaV9kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCQkucGxhdGZvcm1fZGF0YQkJPSAmbXY3OHh4MF9laGNpX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2VoY2kwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobXY3OHh4MF9laGNpMF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9laGNpMF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2VoY2kwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9laGNpMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFVTQjFfUEhZU19CQVNFLAorCQkuZW5kCT0gVVNCMV9QSFlTX0JBU0UgKyAweDBmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfVVNCXzEsCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9VU0JfMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZWhjaTEgPSB7CisJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAorCS5pZAkJPSAxLAorCS5kZXYJCT0geworCQkuZG1hX21hc2sJCT0gJmVoY2lfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwkJLnBsYXRmb3JtX2RhdGEJCT0gJm12Nzh4eDBfZWhjaV9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gbXY3OHh4MF9laGNpMV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG12Nzh4eDBfZWhjaTFfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZWhjaTFfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9laGNpMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZWhjaTJfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBVU0IyX1BIWVNfQkFTRSwKKwkJLmVuZAk9IFVTQjJfUEhZU19CQVNFICsgMHgwZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9NVjc4WFgwX1VTQl8yLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfVVNCXzIsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2VoY2kyID0geworCS5uYW1lCQk9ICJvcmlvbi1laGNpIiwKKwkuaWQJCT0gMiwKKwkuZGV2CQk9IHsKKwkJLmRtYV9tYXNrCQk9ICZlaGNpX2RtYW1hc2ssCisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJCS5wbGF0Zm9ybV9kYXRhCQk9ICZtdjc4eHgwX2VoY2lfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZWhjaTJfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShtdjc4eHgwX2VoY2kyX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2VoY2kyX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZWhjaTIpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbXY3OHh4MF9nZTAwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSAwLAorCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMDBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UwMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTAwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UwMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12Nzh4eDBfZ2UwMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMDBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTAwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9HRTAwX1NVTSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX0dFMDBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTAwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDAsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UwMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZtdjc4eHgwX2dlMDBfc2hhcmVkOworCW12Nzh4eDBfZ2UwMC5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMDBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UwMCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTAxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBtdjc4eHgwX2dlMDFfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IDAsCisJLmRyYW0JCT0gJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UwMV9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAxIGJhc2UiLAorCQkuc3RhcnQJPSBHRTAxX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMDFfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTAxX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXY3OHh4MF9nZTAxX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UwMV9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAxIGlycSIsCisJCS5zdGFydAk9IElSUV9NVjc4WFgwX0dFMDFfU1VNLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfR0UwMV9TVU0sCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMDEgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTAxX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZ2UwMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJm12Nzh4eDBfZ2UwMV9zaGFyZWQ7CisJZXRoX2RhdGEtPnNoYXJlZF9zbWkgPSAmbXY3OHh4MF9nZTAwX3NoYXJlZDsKKwltdjc4eHgwX2dlMDEuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTAxX3NoYXJlZCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMDEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UxMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbXY3OHh4MF9nZTEwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSAwLAorCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMTBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UxMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTEwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UxMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDIsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12Nzh4eDBfZ2UxMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMTBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTEwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9HRTEwX1NVTSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX0dFMTBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTEwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDIsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UxMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2dlMTBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZtdjc4eHgwX2dlMTBfc2hhcmVkOworCWV0aF9kYXRhLT5zaGFyZWRfc21pID0gJm12Nzh4eDBfZ2UwMF9zaGFyZWQ7CisJbXY3OHh4MF9nZTEwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UxMF9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTEwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdFMTEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RydWN0IG12NjQzeHhfZXRoX3NoYXJlZF9wbGF0Zm9ybV9kYXRhIG12Nzh4eDBfZ2UxMV9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gMCwKKwkuZHJhbQkJPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTExX3NoYXJlZF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMTEgYmFzZSIsCisJCS5zdGFydAk9IEdFMTFfUEhZU19CQVNFICsgMHgyMDAwLAorCQkuZW5kCT0gR0UxMV9QSFlTX0JBU0UgKyAweDNmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMTFfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAzLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjc4eHgwX2dlMTFfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTExX3NoYXJlZF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UxMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMTEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfR0UxMV9TVU0sCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9HRTExX1NVTSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UxMSA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAzLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMTFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9nZTExX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKQoreworCWV0aF9kYXRhLT5zaGFyZWQgPSAmbXY3OHh4MF9nZTExX3NoYXJlZDsKKwlldGhfZGF0YS0+c2hhcmVkX3NtaSA9ICZtdjc4eHgwX2dlMDBfc2hhcmVkOworCW12Nzh4eDBfZ2UxMS5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMTFfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UxMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9zYXRhX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAic2F0YSBiYXNlIiwKKwkJLnN0YXJ0CT0gU0FUQV9QSFlTX0JBU0UsCisJCS5lbmQJPSBTQVRBX1BIWVNfQkFTRSArIDB4NTAwMCAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAic2F0YSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9TQVRBLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfU0FUQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfc2F0YSA9IHsKKwkubmFtZQkJPSAic2F0YV9tdiIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobXY3OHh4MF9zYXRhX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0gbXY3OHh4MF9zYXRhX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSkKK3sKKwlzYXRhX2RhdGEtPmRyYW0gPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbzsKKwltdjc4eHgwX3NhdGEuZGV2LnBsYXRmb3JtX2RhdGEgPSBzYXRhX2RhdGE7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX3NhdGEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQwX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMCwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8wLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMCwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQwID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAwLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQwX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0MF9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQwX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQwX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQxX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDFfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDFfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMSwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8xLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMSwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAxLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQxX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0MV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQyX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDJfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDJfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMiwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQyX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQyX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMl9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8yLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQyID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAyLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQyX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0Ml9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQyX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQyX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDIpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQzX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDNfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDNfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMywKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQzX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQzX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUM19QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8zLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMywKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQzID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAzLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQzX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0M19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQzX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQzX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDMpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVGltZSBoYW5kbGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBtdjc4eHgwX3RpbWVyX2luaXQodm9pZCkKK3sKKwlvcmlvbl90aW1lX2luaXQoSVJRX01WNzhYWDBfVElNRVJfMSwgZ2V0X3RjbGsoKSk7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgbXY3OHh4MF90aW1lciA9IHsKKwkuaW5pdCA9IG12Nzh4eDBfdGltZXJfaW5pdCwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgX19pbml0IGlzX2wyX3dyaXRldGhyb3VnaCh2b2lkKQoreworCXJldHVybiAhIShyZWFkbChDUFVfQ09OVFJPTCkgJiBMMl9XUklURVRIUk9VR0gpOworfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX2luaXQodm9pZCkKK3sKKwlpbnQgY29yZV9pbmRleDsKKwlpbnQgaGNsazsKKwlpbnQgcGNsazsKKwlpbnQgbDJjbGs7CisJaW50IHRjbGs7CisKKwljb3JlX2luZGV4ID0gbXY3OHh4MF9jb3JlX2luZGV4KCk7CisJaGNsayA9IGdldF9oY2xrKCk7CisJZ2V0X3BjbGtfbDJjbGsoaGNsaywgY29yZV9pbmRleCwgJnBjbGssICZsMmNsayk7CisJdGNsayA9IGdldF90Y2xrKCk7CisKKwlwcmludGsoS0VSTl9JTkZPICJNVjc4eHgwIGNvcmUgIyVkLCAiLCBjb3JlX2luZGV4KTsKKwlwcmludGsoIlBDTEsgPSAlZE1IeiwgIiwgKHBjbGsgKyA0OTk5OTkpIC8gMTAwMDAwMCk7CisJcHJpbnRrKCJMMiA9ICVkTUh6LCAiLCAobDJjbGsgKyA0OTk5OTkpIC8gMTAwMDAwMCk7CisJcHJpbnRrKCJIQ0xLID0gJWRNSHosICIsIChoY2xrICsgNDk5OTk5KSAvIDEwMDAwMDApOworCXByaW50aygiVENMSyA9ICVkTUh6XG4iLCAodGNsayArIDQ5OTk5OSkgLyAxMDAwMDAwKTsKKworCW12Nzh4eDBfc2V0dXBfY3B1X21idXMoKTsKKworI2lmZGVmIENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMgorCWZlcm9jZW9uX2wyX2luaXQoaXNfbDJfd3JpdGV0aHJvdWdoKCkpOworI2VuZGlmCisKKwltdjc4eHgwX2dlMDBfc2hhcmVkX2RhdGEudF9jbGsgPSB0Y2xrOworCW12Nzh4eDBfZ2UwMV9zaGFyZWRfZGF0YS50X2NsayA9IHRjbGs7CisJbXY3OHh4MF9nZTEwX3NoYXJlZF9kYXRhLnRfY2xrID0gdGNsazsKKwltdjc4eHgwX2dlMTFfc2hhcmVkX2RhdGEudF9jbGsgPSB0Y2xrOworCW12Nzh4eDBfdWFydDBfZGF0YVswXS51YXJ0Y2xrID0gdGNsazsKKwltdjc4eHgwX3VhcnQxX2RhdGFbMF0udWFydGNsayA9IHRjbGs7CisJbXY3OHh4MF91YXJ0Ml9kYXRhWzBdLnVhcnRjbGsgPSB0Y2xrOworCW12Nzh4eDBfdWFydDNfZGF0YVswXS51YXJ0Y2xrID0gdGNsazsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uaCBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGFmNWRlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmgKKyAqCisgKiBDb3JlIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9NVjc4WFgwX0NPTU1PTl9ICisjZGVmaW5lIF9fQVJDSF9NVjc4WFgwX0NPTU1PTl9ICisKK3N0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhOworc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YTsKKworLyoKKyAqIEJhc2ljIE1WNzh4eDAgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCitpbnQgbXY3OHh4MF9jb3JlX2luZGV4KHZvaWQpOwordm9pZCBtdjc4eHgwX21hcF9pbyh2b2lkKTsKK3ZvaWQgbXY3OHh4MF9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX2luaXRfaXJxKHZvaWQpOworCitleHRlcm4gc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBtdjc4eHgwX21idXNfZHJhbV9pbmZvOwordm9pZCBtdjc4eHgwX3NldHVwX2NwdV9tYnVzKHZvaWQpOwordm9pZCBtdjc4eHgwX3NldHVwX3BjaWVfaW9fd2luKGludCB3aW5kb3csIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCSAgICAgICBpbnQgbWFqLCBpbnQgbWluKTsKK3ZvaWQgbXY3OHh4MF9zZXR1cF9wY2llX21lbV93aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCWludCBtYWosIGludCBtaW4pOworCit2b2lkIG12Nzh4eDBfZWhjaTBfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF9laGNpMV9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX2VoY2kyX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfZ2UwMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UwMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UxMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UxMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfcGNpZV9pbml0KGludCBpbml0X3BvcnQwLCBpbnQgaW5pdF9wb3J0MSk7Cit2b2lkIG12Nzh4eDBfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSk7Cit2b2lkIG12Nzh4eDBfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF91YXJ0MV9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX3VhcnQyX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfdWFydDNfaW5pdCh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIgbXY3OHh4MF90aW1lcjsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9kYjc4eDAwLWJwLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOTNkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCisgKgorICogTWFydmVsbCBEQi03OHgwMC1CUCBEZXZlbG9wbWVudCBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX2dlMDBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGRiNzh4MDBfZ2UwMV9kYXRhID0geworCS5waHlfYWRkcgk9IDksCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI3OHgwMF9nZTEwX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI3OHgwMF9nZTExX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZGI3OHgwMF9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBCYXNpYyBNVjc4eHgwIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJbXY3OHh4MF9pbml0KCk7CisKKwkvKgorCSAqIFBhcnRpdGlvbiBvbi1jaGlwIHBlcmlwaGVyYWxzIGJldHdlZW4gdGhlIHR3byBDUFUgY29yZXMuCisJICovCisJaWYgKG12Nzh4eDBfY29yZV9pbmRleCgpID09IDApIHsKKwkJbXY3OHh4MF9laGNpMF9pbml0KCk7CisJCW12Nzh4eDBfZWhjaTFfaW5pdCgpOworCQltdjc4eHgwX2VoY2kyX2luaXQoKTsKKwkJbXY3OHh4MF9nZTAwX2luaXQoJmRiNzh4MDBfZ2UwMF9kYXRhKTsKKwkJbXY3OHh4MF9nZTAxX2luaXQoJmRiNzh4MDBfZ2UwMV9kYXRhKTsKKwkJbXY3OHh4MF9nZTEwX2luaXQoJmRiNzh4MDBfZ2UxMF9kYXRhKTsKKwkJbXY3OHh4MF9nZTExX2luaXQoJmRiNzh4MDBfZ2UxMV9kYXRhKTsKKwkJbXY3OHh4MF9zYXRhX2luaXQoJmRiNzh4MDBfc2F0YV9kYXRhKTsKKwkJbXY3OHh4MF91YXJ0MF9pbml0KCk7CisJCW12Nzh4eDBfdWFydDJfaW5pdCgpOworCX0gZWxzZSB7CisJCW12Nzh4eDBfdWFydDFfaW5pdCgpOworCQltdjc4eHgwX3VhcnQzX2luaXQoKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGRiNzh4MDBfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19kYjc4eDAwX2JwKCkpIHsKKwkJLyoKKwkJICogQXNzaWduIHRoZSB4MTYgUENJZSBzbG90IG9uIHRoZSBib2FyZCB0byBDUFUgY29yZQorCQkgKiAjMCwgYW5kIGxldCBDUFUgY29yZSAjMSBoYXZlIHRoZSBmb3VyIHgxIHNsb3RzLgorCQkgKi8KKwkJaWYgKG12Nzh4eDBfY29yZV9pbmRleCgpID09IDApCisJCQltdjc4eHgwX3BjaWVfaW5pdCgwLCAxKTsKKwkJZWxzZQorCQkJbXY3OHh4MF9wY2llX2luaXQoMSwgMCk7CisJfQorCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoZGI3OHgwMF9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoREI3OFgwMF9CUCwgIk1hcnZlbGwgREItNzh4MDAtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IExlbm5lcnQgQnV5dGVuaGVrIDxidXl0ZW5oQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBkYjc4eDAwX2luaXQsCisJLm1hcF9pbwkJPSBtdjc4eHgwX21hcF9pbywKKwkuaW5pdF9pcnEJPSBtdjc4eHgwX2luaXRfaXJxLAorCS50aW1lcgkJPSAmbXY3OHh4MF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBmNGVlNAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYwpAQCAtMCwwICsxLDIyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jCisgKgorICogTVY3OHh4MCBJUlEgaGFuZGxpbmcuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vaXJxLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3ZvaWQgX19pbml0IG12Nzh4eDBfaW5pdF9pcnEodm9pZCkKK3sKKwlvcmlvbl9pcnFfaW5pdCgwLCAodm9pZCBfX2lvbWVtICopKElSUV9WSVJUX0JBU0UgKyBJUlFfTUFTS19MT1dfT0ZGKSk7CisJb3Jpb25faXJxX2luaXQoMzIsICh2b2lkIF9faW9tZW0gKikoSVJRX1ZJUlRfQkFTRSArIElSUV9NQVNLX0hJR0hfT0ZGKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzhlMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMKKyAqCisgKiBQQ0llIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3BjaWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworc3RydWN0IHBjaWVfcG9ydCB7CisJdTgJCQltYWo7CisJdTgJCQltaW47CisJdTgJCQlyb290X2J1c19ucjsKKwl2b2lkIF9faW9tZW0JCSpiYXNlOworCXNwaW5sb2NrX3QJCWNvbmZfbG9jazsKKwljaGFyCQkJaW9fc3BhY2VfbmFtZVsxNl07CisJY2hhcgkJCW1lbV9zcGFjZV9uYW1lWzE2XTsKKwlzdHJ1Y3QgcmVzb3VyY2UJCXJlc1syXTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGNpZV9wb3J0IHBjaWVfcG9ydFs4XTsKK3N0YXRpYyBpbnQgbnVtX3BjaWVfcG9ydHM7CitzdGF0aWMgc3RydWN0IHJlc291cmNlIHBjaWVfaW9fc3BhY2U7CitzdGF0aWMgc3RydWN0IHJlc291cmNlIHBjaWVfbWVtX3NwYWNlOworCisKK3N0YXRpYyB2b2lkIF9faW5pdCBtdjc4eHgwX3BjaWVfcHJlaW5pdCh2b2lkKQoreworCWludCBpOworCXUzMiBzaXplX2VhY2g7CisJdTMyIHN0YXJ0OworCWludCB3aW47CisKKwlwY2llX2lvX3NwYWNlLm5hbWUgPSAiUENJZSBJL08gU3BhY2UiOworCXBjaWVfaW9fc3BhY2Uuc3RhcnQgPSBNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApOworCXBjaWVfaW9fc3BhY2UuZW5kID0KKwkJTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRSgwKSArIE1WNzhYWDBfUENJRV9JT19TSVpFICogOCAtIDE7CisJcGNpZV9pb19zcGFjZS5mbGFncyA9IElPUkVTT1VSQ0VfSU87CisJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmcGNpZV9pb19zcGFjZSkpCisJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIEkvTyBzcGFjZSIpOworCisJcGNpZV9tZW1fc3BhY2UubmFtZSA9ICJQQ0llIE1FTSBTcGFjZSI7CisJcGNpZV9tZW1fc3BhY2Uuc3RhcnQgPSBNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRTsKKwlwY2llX21lbV9zcGFjZS5lbmQgPQorCQlNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRSArIE1WNzhYWDBfUENJRV9NRU1fU0laRSAtIDE7CisJcGNpZV9tZW1fc3BhY2UuZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKKwlpZiAocmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZwY2llX21lbV9zcGFjZSkpCisJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIE1FTSBzcGFjZSIpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9wY2llX3BvcnRzOyBpKyspIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBwY2llX3BvcnQgKyBpOworCisJCXNucHJpbnRmKHBwLT5pb19zcGFjZV9uYW1lLCBzaXplb2YocHAtPmlvX3NwYWNlX25hbWUpLAorCQkJIlBDSWUgJWQuJWQgSS9PIiwgcHAtPm1haiwgcHAtPm1pbik7CisJCXBwLT5pb19zcGFjZV9uYW1lW3NpemVvZihwcC0+aW9fc3BhY2VfbmFtZSkgLSAxXSA9IDA7CisJCXBwLT5yZXNbMF0ubmFtZSA9IHBwLT5pb19zcGFjZV9uYW1lOworCQlwcC0+cmVzWzBdLnN0YXJ0ID0gTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRShpKTsKKwkJcHAtPnJlc1swXS5lbmQgPSBwcC0+cmVzWzBdLnN0YXJ0ICsgTVY3OFhYMF9QQ0lFX0lPX1NJWkUgLSAxOworCQlwcC0+cmVzWzBdLmZsYWdzID0gSU9SRVNPVVJDRV9JTzsKKworCQlzbnByaW50ZihwcC0+bWVtX3NwYWNlX25hbWUsIHNpemVvZihwcC0+bWVtX3NwYWNlX25hbWUpLAorCQkJIlBDSWUgJWQuJWQgTUVNIiwgcHAtPm1haiwgcHAtPm1pbik7CisJCXBwLT5tZW1fc3BhY2VfbmFtZVtzaXplb2YocHAtPm1lbV9zcGFjZV9uYW1lKSAtIDFdID0gMDsKKwkJcHAtPnJlc1sxXS5uYW1lID0gcHAtPm1lbV9zcGFjZV9uYW1lOworCQlwcC0+cmVzWzFdLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJfQorCisJc3dpdGNoIChudW1fcGNpZV9wb3J0cykgeworCWNhc2UgMDoKKwkJc2l6ZV9lYWNoID0gMDsKKwkJYnJlYWs7CisKKwljYXNlIDE6CisJCXNpemVfZWFjaCA9IDB4MzAwMDAwMDA7CisJCWJyZWFrOworCisJY2FzZSAyIC4uLiAzOgorCQlzaXplX2VhY2ggPSAweDEwMDAwMDAwOworCQlicmVhazsKKworCWNhc2UgNCAuLi4gNjoKKwkJc2l6ZV9lYWNoID0gMHgwODAwMDAwMDsKKwkJYnJlYWs7CisKKwljYXNlIDc6CisJCXNpemVfZWFjaCA9IDB4MDQwMDAwMDA7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcGFuaWMoImludmFsaWQgbnVtYmVyIG9mIFBDSWUgcG9ydHMiKTsKKwl9CisKKwlzdGFydCA9IE1WNzhYWDBfUENJRV9NRU1fUEhZU19CQVNFOworCWZvciAoaSA9IDA7IGkgPCBudW1fcGNpZV9wb3J0czsgaSsrKSB7CisJCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gcGNpZV9wb3J0ICsgaTsKKworCQlwcC0+cmVzWzFdLnN0YXJ0ID0gc3RhcnQ7CisJCXBwLT5yZXNbMV0uZW5kID0gc3RhcnQgKyBzaXplX2VhY2ggLSAxOworCQlzdGFydCArPSBzaXplX2VhY2g7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG51bV9wY2llX3BvcnRzOyBpKyspIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBwY2llX3BvcnQgKyBpOworCisJCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZwY2llX2lvX3NwYWNlLCAmcHAtPnJlc1swXSkpCisJCQlwYW5pYygiY2FuJ3QgYWxsb2NhdGUgUENJZSBJL08gc3ViLXNwYWNlIik7CisKKwkJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJnBjaWVfbWVtX3NwYWNlLCAmcHAtPnJlc1sxXSkpCisJCQlwYW5pYygiY2FuJ3QgYWxsb2NhdGUgUENJZSBNRU0gc3ViLXNwYWNlIik7CisJfQorCisJd2luID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BjaWVfcG9ydHM7IGkrKykgeworCQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWVfcG9ydCArIGk7CisKKwkJbXY3OHh4MF9zZXR1cF9wY2llX2lvX3dpbih3aW4rKywgcHAtPnJlc1swXS5zdGFydCwKKwkJCXBwLT5yZXNbMF0uZW5kIC0gcHAtPnJlc1swXS5zdGFydCArIDEsCisJCQlwcC0+bWFqLCBwcC0+bWluKTsKKworCQltdjc4eHgwX3NldHVwX3BjaWVfbWVtX3dpbih3aW4rKywgcHAtPnJlc1sxXS5zdGFydCwKKwkJCXBwLT5yZXNbMV0uZW5kIC0gcHAtPnJlc1sxXS5zdGFydCArIDEsCisJCQlwcC0+bWFqLCBwcC0+bWluKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG12Nzh4eDBfcGNpZV9zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKKworCWlmIChuciA+PSBudW1fcGNpZV9wb3J0cykKKwkJcmV0dXJuIDA7CisKKwlwcCA9ICZwY2llX3BvcnRbbnJdOworCXBwLT5yb290X2J1c19uciA9IHN5cy0+YnVzbnI7CisKKwkvKgorCSAqIEdlbmVyaWMgUENJZSB1bml0IHNldHVwLgorCSAqLworCW9yaW9uX3BjaWVfc2V0X2xvY2FsX2J1c19ucihwcC0+YmFzZSwgc3lzLT5idXNucik7CisJb3Jpb25fcGNpZV9zZXR1cChwcC0+YmFzZSwgJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8pOworCisJc3lzLT5yZXNvdXJjZVswXSA9ICZwcC0+cmVzWzBdOworCXN5cy0+cmVzb3VyY2VbMV0gPSAmcHAtPnJlc1sxXTsKKwlzeXMtPnJlc291cmNlWzJdID0gTlVMTDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgc3RydWN0IHBjaWVfcG9ydCAqYnVzX3RvX3BvcnQoaW50IGJ1cykKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IG51bV9wY2llX3BvcnRzIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJaW50IHJidXMgPSBwY2llX3BvcnRbaV0ucm9vdF9idXNfbnI7CisJCWlmIChyYnVzICE9IC0xICYmIHJidXMgPD0gYnVzKQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIGkgPj0gMCA/IHBjaWVfcG9ydCArIGkgOiBOVUxMOworfQorCitzdGF0aWMgaW50IHBjaWVfdmFsaWRfY29uZmlnKHN0cnVjdCBwY2llX3BvcnQgKnBwLCBpbnQgYnVzLCBpbnQgZGV2KQoreworCS8qCisJICogRG9uJ3QgZ28gb3V0IHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyBub25leGlzdGluZyBkZXZpY2VzCisJICogb24gdGhlIGxvY2FsIGJ1cy4KKwkgKi8KKwlpZiAoYnVzID09IHBwLT5yb290X2J1c19uciAmJiBkZXYgPiAxKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IHBjaWVfcmRfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sIGludCB3aGVyZSwKKwkJCWludCBzaXplLCB1MzIgKnZhbCkKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1c190b19wb3J0KGJ1cy0+bnVtYmVyKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlpZiAocGNpZV92YWxpZF9jb25maWcocHAsIGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApIHsKKwkJKnZhbCA9IDB4ZmZmZmZmZmY7CisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3JkX2NvbmYocHAtPmJhc2UsIGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKKwkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCit7CisJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBidXNfdG9fcG9ydChidXMtPm51bWJlcik7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJaWYgKHBjaWVfdmFsaWRfY29uZmlnKHBwLCBidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pKSA9PSAwKQorCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3dyX2NvbmYocHAtPmJhc2UsIGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX29wcyBwY2llX29wcyA9IHsKKwkucmVhZCA9IHBjaWVfcmRfY29uZiwKKwkud3JpdGUgPSBwY2llX3dyX2NvbmYsCit9OworCitzdGF0aWMgdm9pZCBfX2RldmluaXQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJLyoKKwkgKiBQcmV2ZW50IGVudW1lcmF0aW9uIG9mIHJvb3QgY29tcGxleC4KKwkgKi8KKwlpZiAoZGV2LT5idXMtPnBhcmVudCA9PSBOVUxMICYmIGRldi0+ZGV2Zm4gPT0gMCkgeworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPSAwOworCQkJZGV2LT5yZXNvdXJjZVtpXS5lbmQgICA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsKKwkJfQorCX0KK30KK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2J1cyBfX2luaXQgKgorbXY3OHh4MF9wY2llX3NjYW5fYnVzKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQoreworCXN0cnVjdCBwY2lfYnVzICpidXM7CisKKwlpZiAobnIgPCBudW1fcGNpZV9wb3J0cykgeworCQlidXMgPSBwY2lfc2Nhbl9idXMoc3lzLT5idXNuciwgJnBjaWVfb3BzLCBzeXMpOworCX0gZWxzZSB7CisJCWJ1cyA9IE5VTEw7CisJCUJVRygpOworCX0KKworCXJldHVybiBidXM7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG12Nzh4eDBfcGNpZV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1c190b19wb3J0KGRldi0+YnVzLT5udW1iZXIpOworCisJcmV0dXJuIElSUV9NVjc4WFgwX1BDSUVfMDAgKyAocHAtPm1haiA8PCAyKSArIHBwLT5taW47Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIG12Nzh4eDBfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gOCwKKwkucHJlaW5pdAk9IG12Nzh4eDBfcGNpZV9wcmVpbml0LAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBtdjc4eHgwX3BjaWVfc2V0dXAsCisJLnNjYW4JCT0gbXY3OHh4MF9wY2llX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gbXY3OHh4MF9wY2llX21hcF9pcnEsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYWRkX3BjaWVfcG9ydChpbnQgbWFqLCBpbnQgbWluLCB1bnNpZ25lZCBsb25nIGJhc2UpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiTVY3OHh4MCBQQ0llIHBvcnQgJWQuJWQ6ICIsIG1haiwgbWluKTsKKworCWlmIChvcmlvbl9wY2llX2xpbmtfdXAoKHZvaWQgX19pb21lbSAqKWJhc2UpKSB7CisJCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWVfcG9ydFtudW1fcGNpZV9wb3J0cysrXTsKKworCQlwcmludGsoImxpbmsgdXBcbiIpOworCisJCXBwLT5tYWogPSBtYWo7CisJCXBwLT5taW4gPSBtaW47CisJCXBwLT5yb290X2J1c19uciA9IC0xOworCQlwcC0+YmFzZSA9ICh2b2lkIF9faW9tZW0gKiliYXNlOworCQlzcGluX2xvY2tfaW5pdCgmcHAtPmNvbmZfbG9jayk7CisJCW1lbXNldChwcC0+cmVzLCAwLCBzaXplb2YocHAtPnJlcykpOworCX0gZWxzZSB7CisJCXByaW50aygibGluayBkb3duLCBpZ25vcmluZ1xuIik7CisJfQorfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX3BjaWVfaW5pdChpbnQgaW5pdF9wb3J0MCwgaW50IGluaXRfcG9ydDEpCit7CisJaWYgKGluaXRfcG9ydDApIHsKKwkJYWRkX3BjaWVfcG9ydCgwLCAwLCBQQ0lFMDBfVklSVF9CQVNFKTsKKwkJaWYgKCFvcmlvbl9wY2llX3g0X21vZGUoKHZvaWQgX19pb21lbSAqKVBDSUUwMF9WSVJUX0JBU0UpKSB7CisJCQlhZGRfcGNpZV9wb3J0KDAsIDEsIFBDSUUwMV9WSVJUX0JBU0UpOworCQkJYWRkX3BjaWVfcG9ydCgwLCAyLCBQQ0lFMDJfVklSVF9CQVNFKTsKKwkJCWFkZF9wY2llX3BvcnQoMCwgMywgUENJRTAzX1ZJUlRfQkFTRSk7CisJCX0KKwl9CisKKwlpZiAoaW5pdF9wb3J0MSkgeworCQlhZGRfcGNpZV9wb3J0KDEsIDAsIFBDSUUxMF9WSVJUX0JBU0UpOworCQlpZiAoIW9yaW9uX3BjaWVfeDRfbW9kZSgodm9pZCBfX2lvbWVtICopUENJRTEwX1ZJUlRfQkFTRSkpIHsKKwkJCWFkZF9wY2llX3BvcnQoMSwgMSwgUENJRTExX1ZJUlRfQkFTRSk7CisJCQlhZGRfcGNpZV9wb3J0KDEsIDIsIFBDSUUxMl9WSVJUX0JBU0UpOworCQkJYWRkX3BjaWVfcG9ydCgxLCAzLCBQQ0lFMTNfVklSVF9CQVNFKTsKKwkJfQorCX0KKworCXBjaV9jb21tb25faW5pdCgmbXY3OHh4MF9wY2kpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtbXgyL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVhYTk3YwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL0tjb25maWcKQEAgLTAsMCArMSwzOSBAQAorY29tbWVudCAiTVgyIGZhbWlseSBDUFUgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEFSQ0hfTVgyCisKK2NvbmZpZyBNQUNIX01YMjcKKwlib29sICJpLk1YMjcgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEFSQ0hfTVgyCisJaGVscAorCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSdzIE1YMiBiYXNlZCBpLk1YMjcgcHJvY2Vzc29yLgorCitjb21tZW50ICJNWDIgUGxhdGZvcm1zIgorCWRlcGVuZHMgb24gQVJDSF9NWDIKKworY29uZmlnIE1BQ0hfTVgyN0FEUworCWJvb2wgIk1YMjdBRFMgcGxhdGZvcm0iCisJZGVwZW5kcyBvbiBNQUNIX01YMjcKKwloZWxwCisJICBJbmNsdWRlIHN1cHBvcnQgZm9yIE1YMjdBRFMgcGxhdGZvcm0uIFRoaXMgaW5jbHVkZXMgc3BlY2lmaWMKKwkgIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgYm9hcmQgYW5kIGl0cyBwZXJpcGhlcmFscy4KKworY29uZmlnIE1BQ0hfUENNMDM4CisJYm9vbCAiUGh5dGVjIHBoeUNPUkUtaS5NWDI3IENQVSBtb2R1bGUgKHBjbTAzOCkiCisJZGVwZW5kcyBvbiBNQUNIX01YMjcKKwloZWxwCisJICBJbmNsdWRlIHN1cHBvcnQgZm9yIHBoeUNPUkUtaS5NWDI3IChha2EgcGNtMDM4KSBwbGF0Zm9ybS4gVGhpcworCSAgaW5jbHVkZXMgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBtb2R1bGUgYW5kIGl0cyBwZXJpcGhlcmFscy4KKworY2hvaWNlCisJcHJvbXB0ICJCYXNlYm9hcmQiCisJZGVwZW5kcyBvbiBNQUNIX1BDTTAzOAorCWRlZmF1bHQgTUFDSF9QQ005NzBfQkFTRUJPQVJECisKK2NvbmZpZyBNQUNIX1BDTTk3MF9CQVNFQk9BUkQKKwlwcm9tcHQgIlBIWVRFQyBQQ005NzAgZGV2ZWxvcG1lbnQgYm9hcmQiCisJYm9vbAorCWhlbHAKKwkgIFRoaXMgYWRkcyBib2FyZCBzcGVjaWZpYyBkZXZpY2VzIHRoYXQgY2FuIGJlIGZvdW5kIG9uIFBoeXRlYydzCisJICBQQ005NzAgZXZhbHVhdGlvbiBib2FyZC4KKworZW5kY2hvaWNlCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MmQ4NjAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZQpAQCAtMCwwICsxLDE0IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgbGludXgga2VybmVsLgorIworCisjIE9iamVjdCBmaWxlIGxpc3RzLgorCitvYmoteQk6PSAgc3lzdGVtLm8gZ2VuZXJpYy5vIGRldmljZXMubyBzZXJpYWwubworCitvYmotJChDT05GSUdfTUFDSF9NWDI3KSArPSBjcHVfaW14Mjcubworb2JqLSQoQ09ORklHX01BQ0hfTVgyNykgKz0gY2xvY2tfaW14MjcubworCitvYmotJChDT05GSUdfTUFDSF9NWDI3QURTKSArPSBteDI3YWRzLm8KK29iai0kKENPTkZJR19NQUNIX1BDTTAzOCkgKz0gcGNtMDM4Lm8KK29iai0kKENPTkZJR19NQUNIX1BDTTk3MF9CQVNFQk9BUkQpICs9IHBjbTk3MC1iYXNlYm9hcmQubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvTWFrZWZpbGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlLmJvb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk2ODMxZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4QTAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHhBMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweEEwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jbG9ja19pbXgyNy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvY2xvY2tfaW14MjcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTI5ZWYyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvY2xvY2tfaW14MjcuYwpAQCAtMCwwICsxLDE2MjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKKyNpbmNsdWRlICJjcm1fcmVncy5oIgorCitzdGF0aWMgc3RydWN0IGNsayBja2lsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1wbGxfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgbXBsbF9tYWluX2Nsa1tdOworc3RhdGljIHN0cnVjdCBjbGsgc3BsbF9jbGs7CisKK3N0YXRpYyBpbnQgX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgfD0gMSA8PCBjbGstPmVuYWJsZV9zaGlmdDsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChjbGstPmVuYWJsZV9yZWcpOworCXJlZyAmPSB+KDEgPDwgY2xrLT5lbmFibGVfc2hpZnQpOworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19zcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fQ1NDUik7CisJcmVnIHw9IENDTV9DU0NSX1NQRU47CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX0NTQ1IpOworCisJd2hpbGUgKChfX3Jhd19yZWFkbChDQ01fU1BDVEwxKSAmIENDTV9TUENUTDFfTEYpID09IDApCisJCTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NwbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fQ1NDUik7CisJcmVnICY9IH5DQ01fQ1NDUl9TUEVOOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9DU0NSKTsKK30KKworc3RhdGljIHZvaWQgX2Nsa19wY2NyMDFfZW5hYmxlKHVuc2lnbmVkIGxvbmcgbWFzazAsIHVuc2lnbmVkIGxvbmcgbWFzazEpCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyB8PSBtYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgfD0gbWFzazE7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKKworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IwMV9kaXNhYmxlKHVuc2lnbmVkIGxvbmcgbWFzazAsIHVuc2lnbmVkIGxvbmcgbWFzazEpCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyAmPSB+bWFzazA7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IwKTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnICY9IH5tYXNrMTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IxMF9lbmFibGUodW5zaWduZWQgbG9uZyBtYXNrMSwgdW5zaWduZWQgbG9uZyBtYXNrMCkKK3sKKwl1bnNpZ25lZCBsb25nIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnIHw9IG1hc2sxOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0NSMSk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyB8PSBtYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IxMF9kaXNhYmxlKHVuc2lnbmVkIGxvbmcgbWFzazEsIHVuc2lnbmVkIGxvbmcgbWFzazApCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjEpOworCXJlZyAmPSB+bWFzazE7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMCk7CisJcmVnICY9IH5tYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworfQorCitzdGF0aWMgaW50IF9jbGtfZG1hX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9ETUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRE1BX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZG1hX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX0RNQV9NQVNLLCBDQ01fUENDUjFfSENMS19ETUFfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19ydGljX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9SVElDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1JUSUNfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19ydGljX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX1JUSUNfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfUlRJQ19NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX2VtbWFfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX0VNTUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2VtbWFfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfRU1NQV9NQVNLLCBDQ01fUENDUjFfSENMS19FTU1BX01BU0spOworfQorCitzdGF0aWMgaW50IF9jbGtfc2xjZGNfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX1NMQ0RDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NMQ0RDX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfc2xjZGNfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfU0xDRENfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfU0xDRENfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19mZWNfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX0ZFQ19NQVNLLCBDQ01fUENDUjFfSENMS19GRUNfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19mZWNfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfRkVDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX0ZFQ19NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX3ZwdV9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgfD0gQ0NNX1BDQ1IxX1ZQVV9CQVVEX01BU0sgfCBDQ01fUENDUjFfSENMS19WUFVfTUFTSzsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfdnB1X2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgJj0gfihDQ01fUENDUjFfVlBVX0JBVURfTUFTSyB8IENDTV9QQ0NSMV9IQ0xLX1ZQVV9NQVNLKTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworfQorCitzdGF0aWMgaW50IF9jbGtfc2FoYXJhMl9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2VuYWJsZShDQ01fUENDUjBfU0FIQVJBX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NhaGFyYTJfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfU0FIQVJBX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX21zdGljazFfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IxMF9lbmFibGUoQ0NNX1BDQ1IxX01TSENfQkFVRF9NQVNLLCBDQ01fUENDUjBfTVNIQ19NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX21zdGljazFfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMTBfZGlzYWJsZShDQ01fUENDUjFfTVNIQ19CQVVEX01BU0ssIENDTV9QQ0NSMF9NU0hDX01BU0spOworfQorCisjZGVmaW5lIENTQ1IoKSAoX19yYXdfcmVhZGwoQ0NNX0NTQ1IpKQorI2RlZmluZSBQQ0RSMCgpIChfX3Jhd19yZWFkbChDQ01fUENEUjApKQorI2RlZmluZSBQQ0RSMSgpIChfX3Jhd19yZWFkbChDQ01fUENEUjEpKQorCitzdGF0aWMgaW50IF9jbGtfY3B1X3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJaW50IGNzY3IgPSBDU0NSKCk7CisKKwlpZiAoY2xrLT5wYXJlbnQgPT0gcGFyZW50KQorCQlyZXR1cm4gMDsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCWlmIChwYXJlbnQgPT0gJm1wbGxfbWFpbl9jbGtbMF0pIHsKKwkJCWNzY3IgfD0gQ0NNX0NTQ1JfQVJNX1NSQzsKKwkJfSBlbHNlIHsKKwkJCWlmIChwYXJlbnQgPT0gJm1wbGxfbWFpbl9jbGtbMV0pCisJCQkJY3NjciAmPSB+Q0NNX0NTQ1JfQVJNX1NSQzsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlfX3Jhd193cml0ZWwoY3NjciwgQ0NNX0NTQ1IpOworCX0gZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNsay0+cGFyZW50ID0gcGFyZW50OworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NwdV9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCWludCBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAocGFyZW50X3JhdGUgJSByYXRlKQorCQlkaXYrKzsKKworCWlmIChkaXYgPiA0KQorCQlkaXYgPSA0OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2OworfQorCitzdGF0aWMgaW50IF9jbGtfY3B1X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXVuc2lnbmVkIGludCBkaXY7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisKKwlpZiAoZGl2ID4gNCB8fCBkaXYgPCAxIHx8ICgocGFyZW50X3JhdGUgLyBkaXYpICE9IHJhdGUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpdi0tOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX0NTQ1IpOworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXJlZyAmPSB+Q0NNX0NTQ1JfQVJNX01BU0s7CisJCXJlZyB8PSBkaXYgPDwgQ0NNX0NTQ1JfQVJNX09GRlNFVDsKKwkJcmVnICY9IH4weDA2OworCQlfX3Jhd193cml0ZWwocmVnIHwgMHg4MDAwMDAwMCwgQ0NNX0NTQ1IpOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FudCBzZXQgQ1BVIGZyZXF1ZW5jeSFcbiIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3BlcmNsa3hfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssCisJCQkJCSAgICAgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAocGFyZW50X3JhdGUgJSByYXRlKQorCQlkaXYrKzsKKworCWlmIChkaXYgPiA2NCkKKwkJZGl2ID0gNjQ7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19wZXJjbGt4X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWc7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJaWYgKGNsay0+aWQgPCAwIHx8IGNsay0+aWQgPiAzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAoZGl2ID4gNjQgfHwgZGl2IDwgMSB8fCAoKHBhcmVudF9yYXRlIC8gZGl2KSAhPSByYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZGl2LS07CisKKwlyZWcgPQorCSAgICBfX3Jhd19yZWFkbChDQ01fUENEUjEpICYgfihDQ01fUENEUjFfUEVSRElWMV9NQVNLIDw8CisJCQkJICAgICAgIChjbGstPmlkIDw8IDMpKTsKKwlyZWcgfD0gZGl2IDw8IChjbGstPmlkIDw8IDMpOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0RSMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa191c2JfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVzYl9wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXVzYl9wZGYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfVVNCX01BU0spID4+IENDTV9DU0NSX1VTQl9PRkZTRVQ7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyAodXNiX3BkZiArIDFVKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kxX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBzc2kxX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJc3NpMV9wZGYgPSAoUENEUjAoKSAmIENDTV9QQ0RSMF9TU0kxQkFVRERJVl9NQVNLKSA+PgorCQkJCQlDQ01fUENEUjBfU1NJMUJBVURESVZfT0ZGU0VUOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCXNzaTFfcGRmICs9IDQ7CisJZWxzZQorCQlzc2kxX3BkZiA9IChzc2kxX3BkZiA8IDIpID8gMTI0VUwgOiBzc2kxX3BkZjsKKworCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIHNzaTFfcGRmOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3NzaTJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTJfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlzc2kyX3BkZiA9IChQQ0RSMCgpICYgQ0NNX1BDRFIwX1NTSTJCQVVERElWX01BU0spID4+CisJICAgIENDTV9QQ0RSMF9TU0kyQkFVRERJVl9PRkZTRVQ7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkKKwkJc3NpMl9wZGYgKz0gNDsKKwllbHNlCisJCXNzaTJfcGRmID0gKHNzaTJfcGRmIDwgMikgPyAxMjRVTCA6IHNzaTJfcGRmOworCisJcmV0dXJuIDJVTCAqIHBhcmVudF9yYXRlIC8gc3NpMl9wZGY7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbmZjX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBuZmNfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQluZmNfcGRmID0KKwkJICAgIChQQ0RSMCgpICYgQ0NNX1BDRFIwX05GQ0RJVjJfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9ORkNESVYyX09GRlNFVDsKKwl9IGVsc2UgeworCQluZmNfcGRmID0KKwkJICAgIChQQ0RSMCgpICYgQ0NNX1BDRFIwX05GQ0RJVl9NQVNLKSA+PgorCQkgICAgQ0NNX1BDRFIwX05GQ0RJVl9PRkZTRVQ7CisJfQorCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gKG5mY19wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa192cHVfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHZwdV9wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXZwdV9wZGYgPQorCQkgICAgKFBDRFIwKCkgJiBDQ01fUENEUjBfVlBVRElWMl9NQVNLKSA+PgorCQkgICAgQ0NNX1BDRFIwX1ZQVURJVjJfT0ZGU0VUOworCQl2cHVfcGRmICs9IDQ7CisJfSBlbHNlIHsKKwkJdnB1X3BkZiA9CisJCSAgICAoUENEUjAoKSAmIENDTV9QQ0RSMF9WUFVESVZfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9WUFVESVZfT0ZGU0VUOworCQl2cHVfcGRmID0gKHZwdV9wZGYgPCAyKSA/IDEyNCA6IHZwdV9wZGY7CisJfQorCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIHZwdV9wZGY7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGFyZW50X3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJcmV0dXJuIGNsay0+cGFyZW50LT5yb3VuZF9yYXRlKGNsay0+cGFyZW50LCByYXRlKTsKK30KKworc3RhdGljIGludCBfY2xrX3BhcmVudF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlyZXR1cm4gY2xrLT5wYXJlbnQtPnNldF9yYXRlKGNsay0+cGFyZW50LCByYXRlKTsKK30KKworLyogaW4gSHogKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGV4dGVybmFsX2hpZ2hfcmVmZXJlbmNlID0gMjYwMDAwMDA7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9oaWdoX3JlZmVyZW5jZV9jbG9ja19yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gZXh0ZXJuYWxfaGlnaF9yZWZlcmVuY2U7Cit9CisKKy8qCisgKiB0aGUgaGlnaCBmcmVxdWVuY3kgZXh0ZXJuYWwgY2xvY2sgcmVmZXJlbmNlCisgKiBEZWZhdWx0IGNhc2UgaXMgMjZNSHouIENvdWxkIGJlIGNoYW5nZWQgYXQgcnVudGltZQorICogd2l0aCBhIGNhbGwgdG8gY2hhbmdlX2V4dGVybmFsX2hpZ2hfcmVmZXJlbmNlKCkKKyAqLworc3RhdGljIHN0cnVjdCBjbGsgY2tpaF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpaCIsCisJLmdldF9yYXRlID0gZ2V0X2hpZ2hfcmVmZXJlbmNlX2Nsb2NrX3JhdGUsCit9OworCisvKiBpbiBIeiAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgZXh0ZXJuYWxfbG93X3JlZmVyZW5jZSA9IDMyNzY4OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfbG93X3JlZmVyZW5jZV9jbG9ja19yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gZXh0ZXJuYWxfbG93X3JlZmVyZW5jZTsKK30KKworLyoKKyAqIHRoZSBsb3cgZnJlcXVlbmN5IGV4dGVybmFsIGNsb2NrIHJlZmVyZW5jZQorICogRGVmYXVsdCBjYXNlIGlzIDMyLjc2OGtIeiBDb3VsZCBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUKKyAqIHdpdGggYSBjYWxsIHRvIGNoYW5nZV9leHRlcm5hbF9sb3dfcmVmZXJlbmNlKCkKKyAqLworc3RhdGljIHN0cnVjdCBjbGsgY2tpbF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpbCIsCisJLmdldF9yYXRlID0gZ2V0X2xvd19yZWZlcmVuY2VfY2xvY2tfcmF0ZSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9tcGxsX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcmVmX2NsazsKKwl1bnNpZ25lZCBsb25nIG1maSA9IDAsIG1mbiA9IDAsIG1mZCA9IDAsIHBkZiA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIHRlbXA7CisKKwlyZWZfY2xrID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9NUENUTDApOworCXBkZiA9IChyZWcgJiBDQ01fTVBDVEwwX1BEX01BU0spID4+IENDTV9NUENUTDBfUERfT0ZGU0VUOworCW1mZCA9IChyZWcgJiBDQ01fTVBDVEwwX01GRF9NQVNLKSA+PiBDQ01fTVBDVEwwX01GRF9PRkZTRVQ7CisJbWZpID0gKHJlZyAmIENDTV9NUENUTDBfTUZJX01BU0spID4+IENDTV9NUENUTDBfTUZJX09GRlNFVDsKKwltZm4gPSAocmVnICYgQ0NNX01QQ1RMMF9NRk5fTUFTSykgPj4gQ0NNX01QQ1RMMF9NRk5fT0ZGU0VUOworCisJbWZpID0gKG1maSA8PSA1KSA/IDUgOiBtZmk7CisJdGVtcCA9IDJMTCAqIHJlZl9jbGsgKiBtZm47CisJZG9fZGl2KHRlbXAsIG1mZCArIDEpOworCXRlbXAgPSAyTEwgKiByZWZfY2xrICogbWZpICsgdGVtcDsKKwlkb19kaXYodGVtcCwgcGRmICsgMSk7CisKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpdGVtcDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgbXBsbF9jbGsgPSB7CisJLm5hbWUgPSAibXBsbCIsCisJLnBhcmVudCA9ICZja2loX2NsaywKKwkuZ2V0X3JhdGUgPSBnZXRfbXBsbF9jbGssCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX21wbGxfbWFpbl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCS8qIGkuTVgyNyBUTzI6CisJICogY2xrLT5pZCA9PSAwOiBhcm0gY2xvY2sgc291cmNlIHBhdGggMSB3aGljaCBpcyBmcm9tIDIqTVBMTC9ESVZfMgorCSAqIGNsay0+aWQgPT0gMTogYXJtIGNsb2NrIHNvdXJjZSBwYXRoIDIgd2hpY2ggaXMgZnJvbSAyKk1QTEwvRElWXzMKKwkgKi8KKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wICYmIGNsay0+aWQgPT0gMSkKKwkJcmV0dXJuIDJVTCAqIHBhcmVudF9yYXRlIC8gM1VMOworCisJcmV0dXJuIHBhcmVudF9yYXRlOworfQorCitzdGF0aWMgc3RydWN0IGNsayBtcGxsX21haW5fY2xrW10gPSB7CisJeworCQkvKiBGb3IgaS5NWDI3IFRPMiwgaXQgaXMgdGhlIE1QTEwgcGF0aCAxIG9mIEFSTSBjb3JlCisJCSAqIEl0IHByb3ZpZGUgdGhlIGNsb2NrIHNvdXJjZSB3aG9zZSByYXRlIGlzIHNhbWUgYXMgTVBMTAorCQkgKi8KKwkJLm5hbWUgPSAibXBsbF9tYWluIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZtcGxsX2NsaywKKwkJLmdldF9yYXRlID0gX2Nsa19tcGxsX21haW5fZ2V0X3JhdGUKKwl9LCB7CisJCS8qIEZvciBpLk1YMjcgVE8yLCBpdCBpcyB0aGUgTVBMTCBwYXRoIDIgb2YgQVJNIGNvcmUKKwkJICogSXQgcHJvdmlkZSB0aGUgY2xvY2sgc291cmNlIHdob3NlIHJhdGUgaXMgc2FtZSBNUExMICogMi8zCisJCSAqLworCQkubmFtZSA9ICJtcGxsX21haW4iLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJm1wbGxfY2xrLAorCQkuZ2V0X3JhdGUgPSBfY2xrX21wbGxfbWFpbl9nZXRfcmF0ZQorCX0KK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9zcGxsX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcmVmX2NsazsKKwl1bnNpZ25lZCBsb25nIG1maSA9IDAsIG1mbiA9IDAsIG1mZCA9IDAsIHBkZiA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIHRlbXA7CisKKwlyZWZfY2xrID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9TUENUTDApOworCS8qVE9ETzogVGhpcyBpcyBUTzIgQnVnICovCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCV9fcmF3X3dyaXRlbChyZWcsIENDTV9TUENUTDApOworCisJcGRmID0gKHJlZyAmIENDTV9TUENUTDBfUERfTUFTSykgPj4gQ0NNX1NQQ1RMMF9QRF9PRkZTRVQ7CisJbWZkID0gKHJlZyAmIENDTV9TUENUTDBfTUZEX01BU0spID4+IENDTV9TUENUTDBfTUZEX09GRlNFVDsKKwltZmkgPSAocmVnICYgQ0NNX1NQQ1RMMF9NRklfTUFTSykgPj4gQ0NNX1NQQ1RMMF9NRklfT0ZGU0VUOworCW1mbiA9IChyZWcgJiBDQ01fU1BDVEwwX01GTl9NQVNLKSA+PiBDQ01fU1BDVEwwX01GTl9PRkZTRVQ7CisKKwltZmkgPSAobWZpIDw9IDUpID8gNSA6IG1maTsKKwl0ZW1wID0gMkxMICogcmVmX2NsayAqIG1mbjsKKwlkb19kaXYodGVtcCwgbWZkICsgMSk7CisJdGVtcCA9IDJMTCAqIHJlZl9jbGsgKiBtZmkgKyB0ZW1wOworCWRvX2Rpdih0ZW1wLCBwZGYgKyAxKTsKKworCXJldHVybiAodW5zaWduZWQgbG9uZyl0ZW1wOworfQorCitzdGF0aWMgc3RydWN0IGNsayBzcGxsX2NsayA9IHsKKwkubmFtZSA9ICJzcGxsIiwKKwkucGFyZW50ID0gJmNraWhfY2xrLAorCS5nZXRfcmF0ZSA9IGdldF9zcGxsX2NsaywKKwkuZW5hYmxlID0gX2Nsa19zcGxsX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfc3BsbF9kaXNhYmxlLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2NwdV9jbGsoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCWRpdiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9BUk1fTUFTSykgPj4gQ0NNX0NTQ1JfQVJNX09GRlNFVDsKKwllbHNlCisJCWRpdiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9QUkVTQ19NQVNLKSA+PiBDQ01fQ1NDUl9QUkVTQ19PRkZTRVQ7CisKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlyZXR1cm4gcmF0ZSAvIChkaXYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY3B1X2NsayA9IHsKKwkubmFtZSA9ICJjcHVfY2xrIiwKKwkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJLnNldF9wYXJlbnQgPSBfY2xrX2NwdV9zZXRfcGFyZW50LAorCS5yb3VuZF9yYXRlID0gX2Nsa19jcHVfcm91bmRfcmF0ZSwKKwkuZ2V0X3JhdGUgPSBnZXRfY3B1X2NsaywKKwkuc2V0X3JhdGUgPSBfY2xrX2NwdV9zZXRfcmF0ZSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9haGJfY2xrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisJdW5zaWduZWQgbG9uZyBiY2xrX3BkZjsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQliY2xrX3BkZiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9BSEJfTUFTSykKKwkJCQkJPj4gQ0NNX0NTQ1JfQUhCX09GRlNFVDsKKwllbHNlCisJCWJjbGtfcGRmID0gKENTQ1IoKSAmIENDTV9DU0NSX0JDTEtfTUFTSykKKwkJCQkJPj4gQ0NNX0NTQ1JfQkNMS19PRkZTRVQ7CisKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlyZXR1cm4gcmF0ZSAvIChiY2xrX3BkZiArIDEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBhaGJfY2xrID0geworCS5uYW1lID0gImFoYl9jbGsiLAorCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkuZ2V0X3JhdGUgPSBnZXRfYWhiX2NsaywKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9pcGdfY2xrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisJdW5zaWduZWQgbG9uZyBpcGdfcGRmOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCWVsc2UKKwkJaXBnX3BkZiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9JUERJVikgPj4gQ0NNX0NTQ1JfSVBESVZfT0ZGU0VUOworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJcmV0dXJuIHJhdGUgLyAoaXBnX3BkZiArIDEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBpcGdfY2xrID0geworCS5uYW1lID0gImlwZ19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZ2V0X3JhdGUgPSBnZXRfaXBnX2NsaywKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGVyY2xreF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcGVyY2xrX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJaWYgKGNsay0+aWQgPCAwIHx8IGNsay0+aWQgPiAzKQorCQlyZXR1cm4gMDsKKworCXBlcmNsa19wZGYgPSAoUENEUjEoKSA+PiAoY2xrLT5pZCA8PCAzKSkgJiBDQ01fUENEUjFfUEVSRElWMV9NQVNLOworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gKHBlcmNsa19wZGYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgcGVyX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAicGVyX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19wZXJjbGt4X3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9QRVJDTEsxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJwZXJfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkuZ2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1BFUkNMSzJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInBlcl9jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wZXJjbGt4X3JvdW5kX3JhdGUsCisJCS5zZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9zZXRfcmF0ZSwKKwkJLmdldF9yYXRlID0gX2Nsa19wZXJjbGt4X3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9QRVJDTEszX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJwZXJfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkucm91bmRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yb3VuZF9yYXRlLAorCQkuc2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfc2V0X3JhdGUsCisJCS5nZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yZWNhbGMsCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfUEVSQ0xLNF9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDFfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0Ml9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0M19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQ0X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSAzLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDRfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQ0X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDVfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDQsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0NV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDVfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0Nl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gNSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQ2X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDUsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUNl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDFfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0Ml9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0Ml9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQyX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDNfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDNfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQ0X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDMsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQ0X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDRfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0NV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0NV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDQsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQ1X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDZfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gNSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDZfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSA1LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUNl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBwd21fY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJwd21fY2xrIiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnB3bV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJwd21fY2xrIiwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1BXTV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjMV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjMl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMyX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDMl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjM19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpMV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpMl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkyX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJMl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpM19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBsY2RjX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAibGNkY19jbGsiLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMl0sCisJCS5zZWNvbmRhcnkgPSAmbGNkY19jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wYXJlbnRfcm91bmRfcmF0ZSwKKwkJLnNldF9yYXRlID0gX2Nsa19wYXJlbnRfc2V0X3JhdGUsCisJfSwgeworCQkubmFtZSA9ICJsY2RjX2lwZ19jbGsiLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5zZWNvbmRhcnkgPSAmbGNkY19jbGtbMl0sCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfTENEQ19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAibGNkY19haGJfY2xrIiwKKwkJLnBhcmVudCA9ICZhaGJfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX0hDTEtfTENEQ19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc2lfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJjc2lfcGVyY2xrIiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzNdLAorCQkuc2Vjb25kYXJ5ID0gJmNzaV9jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wYXJlbnRfcm91bmRfcmF0ZSwKKwkJLnNldF9yYXRlID0gX2Nsa19wYXJlbnRfc2V0X3JhdGUsCisJfSwgeworCQkubmFtZSA9ICJjc2lfYWhiX2NsayIsCisJCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0NTSV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayB1c2JfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1c2JfY2xrIiwKKwkJLnBhcmVudCA9ICZzcGxsX2NsaywKKwkJLmdldF9yYXRlID0gX2Nsa191c2JfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VTQk9UR19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAidXNiX2FoYl9jbGsiLAorCQkucGFyZW50ID0gJmFoYl9jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19VU0JPVEdfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IGNsayBzc2kxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAic3NpX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzc2kxX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19zc2kxX3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9TU0kxX0JBVURfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInNzaV9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1NTSTFfSVBHX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNzaTJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJzc2lfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNzaTJfY2xrWzFdLAorCQkuZ2V0X3JhdGUgPSBfY2xrX3NzaTJfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1NTSTJfQkFVRF9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAic3NpX2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfU1NJMl9JUEdfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbmZjX2NsayA9IHsKKwkubmFtZSA9ICJuZmNfY2xrIiwKKwkucGFyZW50ID0gJmNwdV9jbGssCisJLmdldF9yYXRlID0gX2Nsa19uZmNfcmVjYWxjLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX05GQ19CQVVEX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHZwdV9jbGsgPSB7CisJLm5hbWUgPSAidnB1X2NsayIsCisJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCS5nZXRfcmF0ZSA9IF9jbGtfdnB1X3JlY2FsYywKKwkuZW5hYmxlID0gX2Nsa192cHVfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa192cHVfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGRtYV9jbGsgPSB7CisJLm5hbWUgPSAiZG1hX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2RtYV9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2RtYV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcnRpY19jbGsgPSB7CisJLm5hbWUgPSAicnRpY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19ydGljX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfcnRpY19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgYnJvbV9jbGsgPSB7CisJLm5hbWUgPSAiYnJvbV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0JST01fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZW1tYV9jbGsgPSB7CisJLm5hbWUgPSAiZW1tYV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbW1hX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfZW1tYV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2xjZGNfY2xrID0geworCS5uYW1lID0gInNsY2RjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX3NsY2RjX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfc2xjZGNfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGZlY19jbGsgPSB7CisJLm5hbWUgPSAiZmVjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2ZlY19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2ZlY19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZW1pX2NsayA9IHsKKwkubmFtZSA9ICJlbWlfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19FTUlfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2FoYXJhMl9jbGsgPSB7CisJLm5hbWUgPSAic2FoYXJhX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX3NhaGFyYTJfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19zYWhhcmEyX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBhdGFfY2xrID0geworCS5uYW1lID0gImF0YV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0FUQV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBtc3RpY2sxX2NsayA9IHsKKwkubmFtZSA9ICJtc3RpY2sxX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX21zdGljazFfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19tc3RpY2sxX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB3ZG9nX2NsayA9IHsKKwkubmFtZSA9ICJ3ZG9nX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1dEVF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncGlvX2NsayA9IHsKKwkubmFtZSA9ICJncGlvX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQSU9fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaTJjX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiaTJjX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9JMkMxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJpMmNfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0kyQzJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaWltX2NsayA9IHsKKwkubmFtZSA9ICJpaW1fY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfSUlNX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGtwcF9jbGsgPSB7CisJLm5hbWUgPSAia3BwX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0tQUF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBvd2lyZV9jbGsgPSB7CisJLm5hbWUgPSAib3dpcmVfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfT1dJUkVfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcnRjX2NsayA9IHsKKwkubmFtZSA9ICJydGNfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfUlRDX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNjY19jbGsgPSB7CisJLm5hbWUgPSAic2NjX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1NDQ19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2Nsa29fcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJZGl2ID0gcGFyZW50X3JhdGUgLyByYXRlOworCWlmIChwYXJlbnRfcmF0ZSAlIHJhdGUpCisJCWRpdisrOworCisJaWYgKGRpdiA+IDgpCisJCWRpdiA9IDg7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWc7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdiA+IDggfHwgZGl2IDwgMSB8fCAoKHBhcmVudF9yYXRlIC8gZGl2KSAhPSByYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZGl2LS07CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENEUjApICYgfkNDTV9QQ0RSMF9DTEtPRElWX01BU0s7CisJcmVnIHw9IGRpdiA8PCBDQ01fUENEUjBfQ0xLT0RJVl9PRkZTRVQ7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDRFIwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2Nsa29fcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBfX3Jhd19yZWFkbChDQ01fUENEUjApICYgQ0NNX1BDRFIwX0NMS09ESVZfTUFTSyA+PgorCQlDQ01fUENEUjBfQ0xLT0RJVl9PRkZTRVQ7CisJZGl2Kys7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9DQ1NSKSAmIH5DQ01fQ0NTUl9DTEtPU0VMX01BU0s7CisKKwlpZiAocGFyZW50ID09ICZja2lsX2NsaykKKwkJcmVnIHw9IDAgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZja2loX2NsaykKKwkJcmVnIHw9IDIgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IG1wbGxfY2xrLnBhcmVudCkKKwkJcmVnIHw9IDMgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IHNwbGxfY2xrLnBhcmVudCkKKwkJcmVnIHw9IDQgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZtcGxsX2NsaykKKwkJcmVnIHw9IDUgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZzcGxsX2NsaykKKwkJcmVnIHw9IDYgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZjcHVfY2xrKQorCQlyZWcgfD0gNyA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmFoYl9jbGspCisJCXJlZyB8PSA4IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmaXBnX2NsaykKKwkJcmVnIHw9IDkgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZwZXJfY2xrWzBdKQorCQlyZWcgfD0gMHhBIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmcGVyX2Nsa1sxXSkKKwkJcmVnIHw9IDB4QiA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnBlcl9jbGtbMl0pCisJCXJlZyB8PSAweEMgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZwZXJfY2xrWzNdKQorCQlyZWcgfD0gMHhEIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmc3NpMV9jbGtbMF0pCisJCXJlZyB8PSAweEUgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZzc2kyX2Nsa1swXSkKKwkJcmVnIHw9IDB4RiA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJm5mY19jbGspCisJCXJlZyB8PSAweDEwIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmbXN0aWNrMV9jbGspCisJCXJlZyB8PSAweDExIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmdnB1X2NsaykKKwkJcmVnIHw9IDB4MTIgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZ1c2JfY2xrWzBdKQorCQlyZWcgfD0gMHgxNSA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX0NDU1IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0RSMCkgfCBDQ01fUENEUjBfQ0xLT19FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENEUjApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfY2xrb19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDRFIwKSAmIH5DQ01fUENEUjBfQ0xLT19FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENEUjApOworfQorCitzdGF0aWMgc3RydWN0IGNsayBjbGtvX2NsayA9IHsKKwkubmFtZSA9ICJjbGtvX2NsayIsCisJLmdldF9yYXRlID0gX2Nsa19jbGtvX3JlY2FsYywKKwkuc2V0X3JhdGUgPSBfY2xrX2Nsa29fc2V0X3JhdGUsCisJLnJvdW5kX3JhdGUgPSBfY2xrX2Nsa29fcm91bmRfcmF0ZSwKKwkuc2V0X3BhcmVudCA9IF9jbGtfY2xrb19zZXRfcGFyZW50LAorCS5lbmFibGUgPSBfY2xrX2Nsa29fZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19jbGtvX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayAqbXhjX2Nsa3NbXSA9IHsKKwkmY2tpaF9jbGssCisJJmNraWxfY2xrLAorCSZtcGxsX2NsaywKKwkmbXBsbF9tYWluX2Nsa1swXSwKKwkmbXBsbF9tYWluX2Nsa1sxXSwKKwkmc3BsbF9jbGssCisJJmNwdV9jbGssCisJJmFoYl9jbGssCisJJmlwZ19jbGssCisJJnBlcl9jbGtbMF0sCisJJnBlcl9jbGtbMV0sCisJJnBlcl9jbGtbMl0sCisJJnBlcl9jbGtbM10sCisJJmNsa29fY2xrLAorCSZ1YXJ0MV9jbGtbMF0sCisJJnVhcnQxX2Nsa1sxXSwKKwkmdWFydDJfY2xrWzBdLAorCSZ1YXJ0Ml9jbGtbMV0sCisJJnVhcnQzX2Nsa1swXSwKKwkmdWFydDNfY2xrWzFdLAorCSZ1YXJ0NF9jbGtbMF0sCisJJnVhcnQ0X2Nsa1sxXSwKKwkmdWFydDVfY2xrWzBdLAorCSZ1YXJ0NV9jbGtbMV0sCisJJnVhcnQ2X2Nsa1swXSwKKwkmdWFydDZfY2xrWzFdLAorCSZncHQxX2Nsa1swXSwKKwkmZ3B0MV9jbGtbMV0sCisJJmdwdDJfY2xrWzBdLAorCSZncHQyX2Nsa1sxXSwKKwkmZ3B0M19jbGtbMF0sCisJJmdwdDNfY2xrWzFdLAorCSZncHQ0X2Nsa1swXSwKKwkmZ3B0NF9jbGtbMV0sCisJJmdwdDVfY2xrWzBdLAorCSZncHQ1X2Nsa1sxXSwKKwkmZ3B0Nl9jbGtbMF0sCisJJmdwdDZfY2xrWzFdLAorCSZwd21fY2xrWzBdLAorCSZwd21fY2xrWzFdLAorCSZzZGhjMV9jbGtbMF0sCisJJnNkaGMxX2Nsa1sxXSwKKwkmc2RoYzJfY2xrWzBdLAorCSZzZGhjMl9jbGtbMV0sCisJJnNkaGMzX2Nsa1swXSwKKwkmc2RoYzNfY2xrWzFdLAorCSZjc3BpMV9jbGtbMF0sCisJJmNzcGkxX2Nsa1sxXSwKKwkmY3NwaTJfY2xrWzBdLAorCSZjc3BpMl9jbGtbMV0sCisJJmNzcGkzX2Nsa1swXSwKKwkmY3NwaTNfY2xrWzFdLAorCSZsY2RjX2Nsa1swXSwKKwkmbGNkY19jbGtbMV0sCisJJmxjZGNfY2xrWzJdLAorCSZjc2lfY2xrWzBdLAorCSZjc2lfY2xrWzFdLAorCSZ1c2JfY2xrWzBdLAorCSZ1c2JfY2xrWzFdLAorCSZzc2kxX2Nsa1swXSwKKwkmc3NpMV9jbGtbMV0sCisJJnNzaTJfY2xrWzBdLAorCSZzc2kyX2Nsa1sxXSwKKwkmbmZjX2NsaywKKwkmdnB1X2NsaywKKwkmZG1hX2NsaywKKwkmcnRpY19jbGssCisJJmJyb21fY2xrLAorCSZlbW1hX2NsaywKKwkmc2xjZGNfY2xrLAorCSZmZWNfY2xrLAorCSZlbWlfY2xrLAorCSZzYWhhcmEyX2NsaywKKwkmYXRhX2NsaywKKwkmbXN0aWNrMV9jbGssCisJJndkb2dfY2xrLAorCSZncGlvX2NsaywKKwkmaTJjX2Nsa1swXSwKKwkmaTJjX2Nsa1sxXSwKKwkmaWltX2NsaywKKwkma3BwX2NsaywKKwkmb3dpcmVfY2xrLAorCSZydGNfY2xrLAorCSZzY2NfY2xrLAorfTsKKwordm9pZCBfX2luaXQgY2hhbmdlX2V4dGVybmFsX2xvd19yZWZlcmVuY2UodW5zaWduZWQgbG9uZyBuZXdfcmVmKQoreworCWV4dGVybmFsX2xvd19yZWZlcmVuY2UgPSBuZXdfcmVmOworfQorCit1bnNpZ25lZCBsb25nIF9faW5pdCBjbGtfZWFybHlfZ2V0X3RpbWVyX3JhdGUodm9pZCkKK3sKKwlyZXR1cm4gY2xrX2dldF9yYXRlKCZwZXJfY2xrWzBdKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHByb2JlX214Y19jbG9ja3Modm9pZCkKK3sKKwlpbnQgaTsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCWlmIChDU0NSKCkgJiAweDgwMDApCisJCQljcHVfY2xrLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzBdOworCisJCWlmICghKENTQ1IoKSAmIDB4MDA4MDAwMDApKQorCQkJc3NpMl9jbGtbMF0ucGFyZW50ID0gJnNwbGxfY2xrOworCisJCWlmICghKENTQ1IoKSAmIDB4MDA0MDAwMDApKQorCQkJc3NpMV9jbGtbMF0ucGFyZW50ID0gJnNwbGxfY2xrOworCisJCWlmICghKENTQ1IoKSAmIDB4MDAyMDAwMDApKQorCQkJdnB1X2Nsay5wYXJlbnQgPSAmc3BsbF9jbGs7CisJfSBlbHNlIHsKKwkJY3B1X2Nsay5wYXJlbnQgPSAmbXBsbF9jbGs7CisJCWNwdV9jbGsuc2V0X3BhcmVudCA9IE5VTEw7CisJCWNwdV9jbGsucm91bmRfcmF0ZSA9IE5VTEw7CisJCWNwdV9jbGsuc2V0X3JhdGUgPSBOVUxMOworCQlhaGJfY2xrLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHBlcl9jbGspIC8gc2l6ZW9mKHBlcl9jbGtbMF0pOyBpKyspCisJCQlwZXJfY2xrW2ldLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQlzc2kxX2Nsa1swXS5wYXJlbnQgPSAmbXBsbF9jbGs7CisJCXNzaTJfY2xrWzBdLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQl2cHVfY2xrLnBhcmVudCA9ICZtcGxsX2NsazsKKwl9Cit9CisKKy8qCisgKiBtdXN0IGJlIGNhbGxlZCB2ZXJ5IGVhcmx5IHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIGF2YWlsYWJsZSBjbG9jayByYXRlIHdoZW4gdGhlIHRpbWVyIGZyYW1ld29yayBzdGFydHMKKyAqLworaW50IF9faW5pdCBteGNfY2xvY2tzX2luaXQodW5zaWduZWQgbG9uZyBmcmVmKQoreworCXUzMiBjc2NyOworCXN0cnVjdCBjbGsgKipjbGtwOworCisJZXh0ZXJuYWxfaGlnaF9yZWZlcmVuY2UgPSBmcmVmOworCisJLyogZGV0ZWN0IGNsb2NrIHJlZmVyZW5jZSBmb3IgYm90aCBzeXN0ZW0gUExMICovCisJY3NjciA9IENTQ1IoKTsKKwlpZiAoY3NjciAmIENDTV9DU0NSX01DVSkKKwkJbXBsbF9jbGsucGFyZW50ID0gJmNraWhfY2xrOworCWVsc2UKKwkJbXBsbF9jbGsucGFyZW50ID0gJmNraWxfY2xrOworCisJaWYgKGNzY3IgJiBDQ01fQ1NDUl9TUCkKKwkJc3BsbF9jbGsucGFyZW50ID0gJmNraWhfY2xrOworCWVsc2UKKwkJc3BsbF9jbGsucGFyZW50ID0gJmNraWxfY2xrOworCisJcHJvYmVfbXhjX2Nsb2NrcygpOworCisJcGVyX2Nsa1swXS5lbmFibGUoJnBlcl9jbGtbMF0pOworCWdwdDFfY2xrWzFdLmVuYWJsZSgmZ3B0MV9jbGtbMV0pOworCisJZm9yIChjbGtwID0gbXhjX2Nsa3M7IGNsa3AgPCBteGNfY2xrcyArIEFSUkFZX1NJWkUobXhjX2Nsa3MpOyBjbGtwKyspCisJCWNsa19yZWdpc3RlcigqY2xrcCk7CisKKwkvKiBUdXJuIG9mZiBhbGwgcG9zc2libGUgY2xvY2tzICovCisJX19yYXdfd3JpdGVsKENDTV9QQ0NSMF9HUFQxX01BU0ssIENDTV9QQ0NSMCk7CisJX19yYXdfd3JpdGVsKENDTV9QQ0NSMV9QRVJDTEsxX01BU0sgfCBDQ01fUENDUjFfSENMS19FTUlfTUFTSywKKwkJICAgICBDQ01fUENDUjEpOworCXNwbGxfY2xrLmRpc2FibGUoJnNwbGxfY2xrKTsKKworCS8qIFRoaXMgd2lsbCBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkcmVuIGFuZCBpbml0IGFsbCB0aGUgY2xvY2sgcmF0ZXMgKi8KKworCWNsa19lbmFibGUoJmVtaV9jbGspOworCWNsa19lbmFibGUoJmdwaW9fY2xrKTsKKwljbGtfZW5hYmxlKCZpaW1fY2xrKTsKKwljbGtfZW5hYmxlKCZncHQxX2Nsa1swXSk7CisjaWZkZWYgQ09ORklHX0RFQlVHX0xMX0NPTlNPTEUKKwljbGtfZW5hYmxlKCZ1YXJ0MV9jbGtbMF0pOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jcHVfaW14MjcuYyBiL2FyY2gvYXJtL21hY2gtbXgyL2NwdV9pbXgyNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2YjVjMmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9jcHVfaW14MjcuYwpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IDIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworLyoKKyAqIGkuTVgyNyBzcGVjaWZpYyBDUFUgZGV0ZWN0aW9uIGNvZGUKKyAqLworCisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSAiY3JtX3JlZ3MuaCIKKworc3RhdGljIGludCBjcHVfc2lsaWNvbl9yZXYgPSAtMTsKK3N0YXRpYyBpbnQgY3B1X3BhcnRudW1iZXI7CisKK3N0YXRpYyB2b2lkIHF1ZXJ5X3NpbGljb25fcGFyYW1ldGVyKHZvaWQpCit7CisJdTMyIHZhbDsKKwkvKgorCSAqIG5vdyB3ZSBoYXZlIGFjY2VzcyB0byB0aGUgSU8gcmVnaXN0ZXJzLiBBcyB3ZSBuZWVkCisJICogdGhlIHNpbGljb24gcmV2aXNpb24gdmVyeSBlYXJseSB3ZSByZWFkIGl0IGhlcmUgdG8KKwkgKiBhdm9pZCBhbnkgZnVydGhlciBob29rcworCSovCisJdmFsID0gX19yYXdfcmVhZGwoSU9fQUREUkVTUyhTWVNDVFJMX0JBU0VfQUREUikgKyBTWVNfQ0hJUF9JRCk7CisKKwljcHVfc2lsaWNvbl9yZXYgPSAoaW50KSh2YWwgPj4gMjgpOworCWNwdV9wYXJ0bnVtYmVyID0gKGludCkoKHZhbCA+PiAxMikgJiAweEZGRkYpOworfQorCisvKgorICogUmV0dXJuczoKKyAqCXRoZSBzaWxpY29uIHJldmlzaW9uIG9mIHRoZSBjcHUKKyAqCS1FSU5WQUwgLSBub3QgYSBteDI3CisgKi8KK2ludCBteDI3X3JldmlzaW9uKHZvaWQpCit7CisJaWYgKGNwdV9zaWxpY29uX3JldiA9PSAtMSkKKwkJcXVlcnlfc2lsaWNvbl9wYXJhbWV0ZXIoKTsKKworCWlmIChjcHVfcGFydG51bWJlciAhPSAweDg4MjEpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGNwdV9zaWxpY29uX3JldjsKK30KK0VYUE9SVF9TWU1CT0wobXgyN19yZXZpc2lvbik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jcm1fcmVncy5oIGIvYXJjaC9hcm0vbWFjaC1teDIvY3JtX3JlZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDBhOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvY3JtX3JlZ3MuaApAQCAtMCwwICsxLDI3MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FSQ0hfQVJNX01BQ0hfTVgyX0NSTV9SRUdTX0hfXworI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfTVgyX0NSTV9SRUdTX0hfXworCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKworLyogUmVnaXN0ZXIgb2Zmc2V0cyAqLworI2RlZmluZSBDQ01fQ1NDUiAgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MCkKKyNkZWZpbmUgQ0NNX01QQ1RMMCAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDQpCisjZGVmaW5lIENDTV9NUENUTDEgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHg4KQorI2RlZmluZSBDQ01fU1BDVEwwICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4QykKKyNkZWZpbmUgQ0NNX1NQQ1RMMSAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDEwKQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MTQpCisjZGVmaW5lIENDTV9QQ0RSMCAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgxOCkKKyNkZWZpbmUgQ0NNX1BDRFIxICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDFjKQorI2RlZmluZSBDQ01fUENDUjAgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MjApCisjZGVmaW5lIENDTV9QQ0NSMSAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgyNCkKKyNkZWZpbmUgQ0NNX0NDU1IgICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDI4KQorI2RlZmluZSBDQ01fUE1DVEwgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MmMpCisjZGVmaW5lIENDTV9QTUNPVU5UICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgzMCkKKyNkZWZpbmUgQ0NNX1dLR0RDVEwgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDM0KQorCisjZGVmaW5lIENDTV9DU0NSX1VTQl9PRkZTRVQgICAgIDI4CisjZGVmaW5lIENDTV9DU0NSX1VTQl9NQVNLICAgICAgICgweDcgPDwgMjgpCisjZGVmaW5lIENDTV9DU0NSX1NEX09GRlNFVCAgICAgIDI0CisjZGVmaW5lIENDTV9DU0NSX1NEX01BU0sgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIENDTV9DU0NSX1NTSTIgICAgICAgICAgICgxIDw8IDIzKQorI2RlZmluZSBDQ01fQ1NDUl9TU0kyX09GRlNFVCAgICAyMworI2RlZmluZSBDQ01fQ1NDUl9TU0kxICAgICAgICAgICAoMSA8PCAyMikKKyNkZWZpbmUgQ0NNX0NTQ1JfU1NJMV9PRkZTRVQgICAgMjIKKyNkZWZpbmUgQ0NNX0NTQ1JfVlBVICAgICAgICAgICAoMSA8PCAyMSkKKyNkZWZpbmUgQ0NNX0NTQ1JfVlBVX09GRlNFVCAgICAyMQorI2RlZmluZSBDQ01fQ1NDUl9NU0hDICAgICAgICAgICAoMSA8PCAyMCkKKyNkZWZpbmUgQ0NNX0NTQ1JfU1BMTFJFUyAgICAgICAgKDEgPDwgMTkpCisjZGVmaW5lIENDTV9DU0NSX01QTExSRVMgICAgICAgICgxIDw8IDE4KQorI2RlZmluZSBDQ01fQ1NDUl9TUCAgICAgICAgICAgICAoMSA8PCAxNykKKyNkZWZpbmUgQ0NNX0NTQ1JfTUNVICAgICAgICAgICAgKDEgPDwgMTYpCisvKiBDQ01fQ1NDUl9BUk1feHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9BUk1fU1JDICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX0NTQ1JfQVJNX09GRlNFVCAgICAgMTIKKyNkZWZpbmUgQ0NNX0NTQ1JfQVJNX01BU0sgICAgICAgKDB4MyA8PCAxMikKKy8qIENDTV9DU0NSX0FSTV94eHgganVzdCBiZSBhdmFsaWFibGUgb24gaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9DU0NSX1BSRVNDX09GRlNFVCAgIDEzCisjZGVmaW5lIENDTV9DU0NSX1BSRVNDX01BU0sgICAgICgweDcgPDwgMTMpCisjZGVmaW5lIENDTV9DU0NSX0JDTEtfT0ZGU0VUICAgIDkKKyNkZWZpbmUgQ0NNX0NTQ1JfQkNMS19NQVNLICAgICAgKDB4ZiA8PCA5KQorI2RlZmluZSBDQ01fQ1NDUl9JUERJVl9PRkZTRVQgICA4CisjZGVmaW5lIENDTV9DU0NSX0lQRElWICAgICAgICAgICgxIDw8IDgpCisvKiBDQ01fQ1NDUl9BSEJfeHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9BSEJfT0ZGU0VUICAgICA4CisjZGVmaW5lIENDTV9DU0NSX0FIQl9NQVNLICAgICAgICgweDMgPDwgOCkKKy8qIENDTV9DU0NSX0FIQl94eHgganVzdCBiZSBhdmFsaWFibGUgb24gaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9DU0NSX09TQzI2TURJViAgICAgICgxIDw8IDQpCisjZGVmaW5lIENDTV9DU0NSX09TQzI2TSAgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIENDTV9DU0NSX0ZQTSAgICAgICAgICAgICgxIDw8IDIpCisjZGVmaW5lIENDTV9DU0NSX1NQRU4gICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIENDTV9DU0NSX01QRU4gICAgICAgICAgIDEKKworI2RlZmluZSBDQ01fTVBDVEwwX0NQTE0gICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgQ0NNX01QQ1RMMF9QRF9PRkZTRVQgICAgMjYKKyNkZWZpbmUgQ0NNX01QQ1RMMF9QRF9NQVNLICAgICAgKDB4ZiA8PCAyNikKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRkRfT0ZGU0VUICAgMTYKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRkRfTUFTSyAgICAgKDB4M2ZmIDw8IDE2KQorI2RlZmluZSBDQ01fTVBDVEwwX01GSV9PRkZTRVQgICAxMAorI2RlZmluZSBDQ01fTVBDVEwwX01GSV9NQVNLICAgICAoMHhmIDw8IDEwKQorI2RlZmluZSBDQ01fTVBDVEwwX01GTl9PRkZTRVQgICAwCisjZGVmaW5lIENDTV9NUENUTDBfTUZOX01BU0sgICAgIDB4M2ZmCisKKyNkZWZpbmUgQ0NNX01QQ1RMMV9MRiAgICAgICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIENDTV9NUENUTDFfQlJNTyAgICAgICAgICgxIDw8IDYpCisKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9DUExNICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9TUENUTDBfUERfT0ZGU0VUICAgIDI2CisjZGVmaW5lIENDTV9TUENUTDBfUERfTUFTSyAgICAgICgweGYgPDwgMjYpCisjZGVmaW5lIENDTV9TUENUTDBfTUZEX09GRlNFVCAgIDE2CisjZGVmaW5lIENDTV9TUENUTDBfTUZEX01BU0sgICAgICgweDNmZiA8PCAxNikKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRklfT0ZGU0VUICAgMTAKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRklfTUFTSyAgICAgKDB4ZiA8PCAxMCkKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRk5fT0ZGU0VUICAgMAorI2RlZmluZSBDQ01fU1BDVEwwX01GTl9NQVNLICAgICAweDNmZgorCisjZGVmaW5lIENDTV9TUENUTDFfTEYgICAgICAgICAgICgxIDw8IDE1KQorI2RlZmluZSBDQ01fU1BDVEwxX0JSTU8gICAgICAgICAoMSA8PCA2KQorCisjZGVmaW5lIENDTV9PU0MyNk1DVExfUEVBS19PRkZTRVQgICAgICAgMTYKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9QRUFLX01BU0sgICAgICAgICAoMHgzIDw8IDE2KQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMX0FHQ19PRkZTRVQgICAgICAgIDgKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BR0NfTUFTSyAgICAgICAgICAoMHgzZiA8PCA4KQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMX0FOQVRFU1RfT0ZGU0VUICAgIDAKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BTkFURVNUX01BU0sgICAgICAweDNmCisKKyNkZWZpbmUgQ0NNX1BDRFIwX1NTSTJCQVVERElWX09GRlNFVCAgICAyNgorI2RlZmluZSBDQ01fUENEUjBfU1NJMkJBVURESVZfTUFTSyAgICAgICgweDNmIDw8IDI2KQorI2RlZmluZSBDQ01fUENEUjBfQ0xLT19FTiAgICAgICAgICAgICAgIDI1CisjZGVmaW5lIENDTV9QQ0RSMF9DTEtPRElWX09GRlNFVCAgICAgICAgMjIKKyNkZWZpbmUgQ0NNX1BDRFIwX0NMS09ESVZfTUFTSyAgICAgICAgICAoMHg3IDw8IDIyKQorI2RlZmluZSBDQ01fUENEUjBfU1NJMUJBVURESVZfT0ZGU0VUICAgIDE2CisjZGVmaW5lIENDTV9QQ0RSMF9TU0kxQkFVRERJVl9NQVNLICAgICAgKDB4M2YgPDwgMTYpCisvKlRoZSBkaWZpbml0aW9uIGZvciBpLk1YMjcgVE8yKi8KKyNkZWZpbmUgQ0NNX1BDRFIwX1ZQVURJVjJfT0ZGU0VUICAgICAgICAxMAorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWMl9NQVNLICAgICAgICAgICgweDNmIDw8IDEwKQorI2RlZmluZSBDQ01fUENEUjBfTkZDRElWMl9PRkZTRVQgICAgICAgICA2CisjZGVmaW5lIENDTV9QQ0RSMF9ORkNESVYyX01BU0sgICAgICAgICAgICgweGYgPDwgNikKKyNkZWZpbmUgQ0NNX1BDRFIwX01TSENESVYyX01BU0sgICAgICAgICAgMHgzZgorLypUaGUgZGlmaW5pdGlvbiBmb3IgaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9QQ0RSMF9ORkNESVZfT0ZGU0VUICAgICAgICAgMTIKKyNkZWZpbmUgQ0NNX1BDRFIwX05GQ0RJVl9NQVNLICAgICAgICAgICAoMHhmIDw8IDEyKQorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWX09GRlNFVCAgICAgICAgOAorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWX01BU0sgICAgICAgICAgKDB4ZiA8PCA4KQorI2RlZmluZSBDQ01fUENEUjBfTVNIQ0RJVl9PRkZTRVQgICAgICAgIDAKKyNkZWZpbmUgQ0NNX1BDRFIwX01TSENESVZfTUFTSyAgICAgICAgICAweDFmCisKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjRfT0ZGU0VUICAgICAgICAyNAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWNF9NQVNLICAgICAgICAgICgweDNmIDw8IDI0KQorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWM19PRkZTRVQgICAgICAgIDE2CisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYzX01BU0sgICAgICAgICAgKDB4M2YgPDwgMTYpCisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYyX09GRlNFVCAgICAgICAgOAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMl9NQVNLICAgICAgICAgICgweDNmIDw8IDgpCisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYxX09GRlNFVCAgICAgICAgMAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMV9NQVNLICAgICAgICAgIDB4M2YKKworI2RlZmluZSBDQ01fUENDUjBfQ1NQSTFfT0ZGU0VUICAgICAgICAgIDMxCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJMV9NQVNLICAgICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJMl9PRkZTRVQgICAgICAgICAgMzAKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkyX01BU0sgICAgICAgICAgICAoMSA8PCAzMCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkzX09GRlNFVCAgICAgICAgICAyOQorI2RlZmluZSBDQ01fUENDUjBfQ1NQSTNfTUFTSyAgICAgICAgICAgICgxIDw8IDI5KQorI2RlZmluZSBDQ01fUENDUjBfRE1BX09GRlNFVCAgICAgICAgICAgIDI4CisjZGVmaW5lIENDTV9QQ0NSMF9ETUFfTUFTSyAgICAgICAgICAgICAgKDEgPDwgMjgpCisjZGVmaW5lIENDTV9QQ0NSMF9FTU1BX09GRlNFVCAgICAgICAgICAgMjcKKyNkZWZpbmUgQ0NNX1BDQ1IwX0VNTUFfTUFTSyAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgQ0NNX1BDQ1IwX0ZFQ19PRkZTRVQgICAgICAgICAgICAyNgorI2RlZmluZSBDQ01fUENDUjBfRkVDX01BU0sgICAgICAgICAgICAgICgxIDw8IDI2KQorI2RlZmluZSBDQ01fUENDUjBfR1BJT19PRkZTRVQgICAgICAgICAgIDI1CisjZGVmaW5lIENDTV9QQ0NSMF9HUElPX01BU0sgICAgICAgICAgICAgKDEgPDwgMjUpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQxX09GRlNFVCAgICAgICAgICAgMjQKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDFfTUFTSyAgICAgICAgICAgICAoMSA8PCAyNCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDJfT0ZGU0VUICAgICAgICAgICAyMworI2RlZmluZSBDQ01fUENDUjBfR1BUMl9NQVNLICAgICAgICAgICAgICgxIDw8IDIzKQorI2RlZmluZSBDQ01fUENDUjBfR1BUM19PRkZTRVQgICAgICAgICAgIDIyCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQzX01BU0sgICAgICAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ0X09GRlNFVCAgICAgICAgICAgMjEKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDRfTUFTSyAgICAgICAgICAgICAoMSA8PCAyMSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDVfT0ZGU0VUICAgICAgICAgICAyMAorI2RlZmluZSBDQ01fUENDUjBfR1BUNV9NQVNLICAgICAgICAgICAgICgxIDw8IDIwKQorI2RlZmluZSBDQ01fUENDUjBfR1BUNl9PRkZTRVQgICAgICAgICAgIDE5CisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ2X01BU0sgICAgICAgICAgICAgKDEgPDwgMTkpCisjZGVmaW5lIENDTV9QQ0NSMF9JMkMxX09GRlNFVCAgICAgICAgICAgMTgKKyNkZWZpbmUgQ0NNX1BDQ1IwX0kyQzFfTUFTSyAgICAgICAgICAgICAoMSA8PCAxOCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0kyQzJfT0ZGU0VUICAgICAgICAgICAxNworI2RlZmluZSBDQ01fUENDUjBfSTJDMl9NQVNLICAgICAgICAgICAgICgxIDw8IDE3KQorI2RlZmluZSBDQ01fUENDUjBfSUlNX09GRlNFVCAgICAgICAgICAgIDE2CisjZGVmaW5lIENDTV9QQ0NSMF9JSU1fTUFTSyAgICAgICAgICAgICAgKDEgPDwgMTYpCisjZGVmaW5lIENDTV9QQ0NSMF9LUFBfT0ZGU0VUICAgICAgICAgICAgMTUKKyNkZWZpbmUgQ0NNX1BDQ1IwX0tQUF9NQVNLICAgICAgICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0xDRENfT0ZGU0VUICAgICAgICAgICAxNAorI2RlZmluZSBDQ01fUENDUjBfTENEQ19NQVNLICAgICAgICAgICAgICgxIDw8IDE0KQorI2RlZmluZSBDQ01fUENDUjBfTVNIQ19PRkZTRVQgICAgICAgICAgIDEzCisjZGVmaW5lIENDTV9QQ0NSMF9NU0hDX01BU0sgICAgICAgICAgICAgKDEgPDwgMTMpCisjZGVmaW5lIENDTV9QQ0NSMF9PV0lSRV9PRkZTRVQgICAgICAgICAgMTIKKyNkZWZpbmUgQ0NNX1BDQ1IwX09XSVJFX01BU0sgICAgICAgICAgICAoMSA8PCAxMikKKyNkZWZpbmUgQ0NNX1BDQ1IwX1BXTV9PRkZTRVQgICAgICAgICAgICAxMQorI2RlZmluZSBDQ01fUENDUjBfUFdNX01BU0sgICAgICAgICAgICAgICgxIDw8IDExKQorI2RlZmluZSBDQ01fUENDUjBfUlRDX09GRlNFVCAgICAgICAgICAgIDkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUQ19NQVNLICAgICAgICAgICAgICAoMSA8PCA5KQorI2RlZmluZSBDQ01fUENDUjBfUlRJQ19PRkZTRVQgICAgICAgICAgIDgKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUSUNfTUFTSyAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBDQ01fUENDUjBfU0FIQVJBX09GRlNFVCAgICAgICAgIDcKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NBSEFSQV9NQVNLICAgICAgICAgICAoMSA8PCA3KQorI2RlZmluZSBDQ01fUENDUjBfU0NDX09GRlNFVCAgICAgICAgICAgIDYKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NDQ19NQVNLICAgICAgICAgICAgICAoMSA8PCA2KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzFfT0ZGU0VUICAgICAgICAgIDUKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMxX01BU0sgICAgICAgICAgICAoMSA8PCA1KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzJfT0ZGU0VUICAgICAgICAgIDQKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMyX01BU0sgICAgICAgICAgICAoMSA8PCA0KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzNfT0ZGU0VUICAgICAgICAgIDMKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMzX01BU0sgICAgICAgICAgICAoMSA8PCAzKQorI2RlZmluZSBDQ01fUENDUjBfU0xDRENfT0ZGU0VUICAgICAgICAgIDIKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NMQ0RDX01BU0sgICAgICAgICAgICAoMSA8PCAyKQorI2RlZmluZSBDQ01fUENDUjBfU1NJMV9JUEdfT0ZGU0VUICAgICAgIDEKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTFfSVBHX01BU0sgICAgICAgICAoMSA8PCAxKQorI2RlZmluZSBDQ01fUENDUjBfU1NJMl9JUEdfT0ZGU0VUICAgICAgIDAKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTJfSVBHX01BU0sgICAgICAgICAoMSA8PCAwKQorCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUMV9PRkZTRVQgICAgICAgICAgMzEKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQxX01BU0sgICAgICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQyX09GRlNFVCAgICAgICAgICAzMAorI2RlZmluZSBDQ01fUENDUjFfVUFSVDJfTUFTSyAgICAgICAgICAgICgxIDw8IDMwKQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDNfT0ZGU0VUICAgICAgICAgIDI5CisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUM19NQVNLICAgICAgICAgICAgKDEgPDwgMjkpCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNF9PRkZTRVQgICAgICAgICAgMjgKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ0X01BU0sgICAgICAgICAgICAoMSA8PCAyOCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ1X09GRlNFVCAgICAgICAgICAyNworI2RlZmluZSBDQ01fUENDUjFfVUFSVDVfTUFTSyAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDZfT0ZGU0VUICAgICAgICAgIDI2CisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNl9NQVNLICAgICAgICAgICAgKDEgPDwgMjYpCisjZGVmaW5lIENDTV9QQ0NSMV9VU0JPVEdfT0ZGU0VUICAgICAgICAgMjUKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VTQk9UR19NQVNLICAgICAgICAgICAoMSA8PCAyNSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1dEVF9PRkZTRVQgICAgICAgICAgICAyNAorI2RlZmluZSBDQ01fUENDUjFfV0RUX01BU0sgICAgICAgICAgICAgICgxIDw8IDI0KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19BVEFfT0ZGU0VUICAgICAgIDIzCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0FUQV9NQVNLICAgICAgICAgKDEgPDwgMjMpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0JST01fT0ZGU0VUICAgICAgMjIKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQlJPTV9NQVNLICAgICAgICAoMSA8PCAyMikKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQ1NJX09GRlNFVCAgICAgICAyMQorI2RlZmluZSBDQ01fUENDUjFfSENMS19DU0lfTUFTSyAgICAgICAgICgxIDw8IDIxKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19ETUFfT0ZGU0VUICAgICAgIDIwCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0RNQV9NQVNLICAgICAgICAgKDEgPDwgMjApCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0VNSV9PRkZTRVQgICAgICAgMTkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRU1JX01BU0sgICAgICAgICAoMSA8PCAxOSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9PRkZTRVQgICAgICAxOAorI2RlZmluZSBDQ01fUENDUjFfSENMS19FTU1BX01BU0sgICAgICAgICgxIDw8IDE4KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19GRUNfT0ZGU0VUICAgICAgIDE3CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0ZFQ19NQVNLICAgICAgICAgKDEgPDwgMTcpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1ZQVV9PRkZTRVQgICAgICAgMTYKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfVlBVX01BU0sgICAgICAgICAoMSA8PCAxNikKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfTENEQ19PRkZTRVQgICAgICAxNQorI2RlZmluZSBDQ01fUENDUjFfSENMS19MQ0RDX01BU0sgICAgICAgICgxIDw8IDE1KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19SVElDX09GRlNFVCAgICAgIDE0CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1JUSUNfTUFTSyAgICAgICAgKDEgPDwgMTQpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9PRkZTRVQgICAgMTMKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfU0FIQVJBX01BU0sgICAgICAoMSA8PCAxMykKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfU0xDRENfT0ZGU0VUICAgICAxMgorI2RlZmluZSBDQ01fUENDUjFfSENMS19TTENEQ19NQVNLICAgICAgICgxIDw8IDEyKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19VU0JPVEdfT0ZGU0VUICAgIDExCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1VTQk9UR19NQVNLICAgICAgKDEgPDwgMTEpCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsxX09GRlNFVCAgICAgICAgMTAKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzFfTUFTSyAgICAgICAgICAoMSA8PCAxMCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzJfT0ZGU0VUICAgICAgICA5CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsyX01BU0sgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzNfT0ZGU0VUICAgICAgICA4CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEszX01BU0sgICAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzRfT0ZGU0VUICAgICAgICA3CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEs0X01BU0sgICAgICAgICAgKDEgPDwgNykKKyNkZWZpbmUgQ0NNX1BDQ1IxX1ZQVV9CQVVEX09GRlNFVCAgICAgICA2CisjZGVmaW5lIENDTV9QQ0NSMV9WUFVfQkFVRF9NQVNLICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgQ0NNX1BDQ1IxX1NTSTFfQkFVRF9PRkZTRVQgICAgICA1CisjZGVmaW5lIENDTV9QQ0NSMV9TU0kxX0JBVURfTUFTSyAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1NTSTJfQkFVRF9PRkZTRVQgICAgICA0CisjZGVmaW5lIENDTV9QQ0NSMV9TU0kyX0JBVURfTUFTSyAgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX05GQ19CQVVEX09GRlNFVCAgICAgICAzCisjZGVmaW5lIENDTV9QQ0NSMV9ORkNfQkFVRF9NQVNLICAgICAgICAgKDEgPDwgMykKKyNkZWZpbmUgQ0NNX1BDQ1IxX01TSENfQkFVRF9PRkZTRVQgICAgICAyCisjZGVmaW5lIENDTV9QQ0NSMV9NU0hDX0JBVURfTUFTSyAgICAgICAgKDEgPDwgMikKKworI2RlZmluZSBDQ01fQ0NTUl8zMktTUiAgICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLTU9ERTEgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLTU9ERTAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQgMAorI2RlZmluZSBDQ01fQ0NTUl9DTEtPU0VMX01BU0sgICAweDFmCisKKyNkZWZpbmUgU1lTX0ZNQ1IgICAgICAgICAgICAgICAgMHgxNAkvKiAgRnVuY3Rpb25hbCBNdXhpbmcgQ29udHJvbCBSZWcgKi8KKyNkZWZpbmUgU1lTX0NISVBfSUQgICAgICAgICAgICAgMHgwMAkvKiBUaGUgb2Zmc2V0IG9mIENISVAgSUQgcmVnaXN0ZXIgKi8KKworI2VuZGlmIC8qIF9fQVJDSF9BUk1fTUFDSF9NWDJfQ1JNX1JFR1NfSF9fICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLW14Mi9kZXZpY2VzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmNDRjMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL2RldmljZXMuYwpAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIEF1dGhvcjogTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorICogICAgICAgPHNvdXJjZUBtdmlzdGEuY29tPgorICoKKyAqIEJhc2VkIG9uIHRoZSBPTUFQIGRldmljZXMuYworICoKKyAqIDIwMDUgKGMpIE1vbnRhVmlzdGEgU29mdHdhcmUsIEluYy4gVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZQorICogdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4gVGhpcyBwcm9ncmFtIGlzCisgKiBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3MKKyAqIG9yIGltcGxpZWQuCisgKgorICogQ29weXJpZ2h0IDIwMDYtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworLyoKKyAqIFJlc291cmNlIGRlZmluaXRpb24gZm9yIHRoZSBNWEMgSXJEQQorICovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG14Y19pcmRhX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0ICAgPSBVQVJUM19CQVNFX0FERFIsCisJCS5lbmQgICAgID0gVUFSVDNfQkFTRV9BRERSICsgU1pfNEsgLSAxLAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfVUFSVDMsCisJCS5lbmQgICAgID0gTVhDX0lOVF9VQVJUMywKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworLyogUGxhdGZvcm0gRGF0YSBmb3IgTVhDIElyREEgKi8KK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2lyZGFfZGV2aWNlID0geworCS5uYW1lID0gIm14Y19pcmRhIiwKKwkuaWQgPSAwLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRShteGNfaXJkYV9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IG14Y19pcmRhX3Jlc291cmNlcywKK307CisKKy8qCisgKiBHZW5lcmFsIFB1cnBvc2UgVGltZXIKKyAqIC0gaS5NWDE6IDIgdGltZXIgKHNsaWdobHkgZGlmZmVyZW50IHJlZ2lzdGVyIGhhbmRsaW5nKQorICogLSBpLk1YMjE6IDMgdGltZXIKKyAqIC0gaS5NWDI3OiA2IHRpbWVyCisgKi8KKworLyogV2UgdXNlIGdwdDAgYXMgc3lzdGVtIHRpbWVyLCBzbyBkbyBub3QgYWRkIGEgZGV2aWNlIGZvciB0aGlzIG9uZSAqLworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHRpbWVyMV9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IEdQVDJfQkFTRV9BRERSLAorCQkuZW5kCT0gR1BUMl9CQVNFX0FERFIgKyAweDE3LAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfR1BUMiwKKwkJLmVuZCAgICAgPSBNWENfSU5UX0dQVDIsCisJCS5mbGFncyAgID0gSU9SRVNPVVJDRV9JUlEsCisJfQorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfZ3B0MSA9IHsKKwkubmFtZSA9ICJpbXhfZ3B0IiwKKwkuaWQgPSAxLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh0aW1lcjFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSB0aW1lcjFfcmVzb3VyY2VzCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHRpbWVyMl9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IEdQVDNfQkFTRV9BRERSLAorCQkuZW5kCT0gR1BUM19CQVNFX0FERFIgKyAweDE3LAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfR1BUMywKKwkJLmVuZCAgICAgPSBNWENfSU5UX0dQVDMsCisJCS5mbGFncyAgID0gSU9SRVNPVVJDRV9JUlEsCisJfQorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfZ3B0MiA9IHsKKwkubmFtZSA9ICJpbXhfZ3B0IiwKKwkuaWQgPSAyLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh0aW1lcjJfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSB0aW1lcjJfcmVzb3VyY2VzCit9OworCisjaWZkZWYgQ09ORklHX01BQ0hfTVgyNworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjNfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ0X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDRfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDQsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ0LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDMgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gMywKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXIzX3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXIzX3Jlc291cmNlcworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjRfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ1X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDVfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDUsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ1LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDQgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gNCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXI0X3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXI0X3Jlc291cmNlcworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjVfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ2X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDZfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDYsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ2LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDUgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gNSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXI1X3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXI1X3Jlc291cmNlcworfTsKKyNlbmRpZgorCisvKgorICogV2F0Y2hkb2c6CisgKiAtIGkuTVgxCisgKiAtIGkuTVgyMQorICogLSBpLk1YMjcKKyAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBteGNfd2R0X3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gV0RPR19CQVNFX0FERFIsCisJCS5lbmQJPSBXRE9HX0JBU0VfQUREUiArIDB4MzAsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y193ZHQgPSB7CisJLm5hbWUgPSAibXhjX3dkdCIsCisJLmlkID0gMCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUobXhjX3dkdF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IG14Y193ZHRfcmVzb3VyY2VzLAorfTsKKworLyogR1BJTyBwb3J0IGRlc2NyaXB0aW9uICovCitzdGF0aWMgc3RydWN0IG14Y19ncGlvX3BvcnQgaW14X2dwaW9fcG9ydHNbXSA9IHsKKwlbMF0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tMCIsCisJCS5pcnEgPSBNWENfSU5UX0dQSU8sCisJCS5iYXNlID0gKHZvaWQqKShBSVBJX0JBU0VfQUREUl9WSVJUICsgMHgxNTAwMCArIDB4MTAwICogMCksCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19NQVhfSU5UX0xJTkVTLAorCX0sCisJWzFdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTEiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDEpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDMyLAorCX0sCisJWzJdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTIiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDIpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDY0LAorCX0sCisJWzNdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTMiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDMpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDk2LAorCX0sCisJWzRdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTQiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDQpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDEyOCwKKwl9LAorCVs1XSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby01IiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiA1KSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyAxNjAsCisJfQorfTsKKworaW50IF9faW5pdCBteGNfcmVnaXN0ZXJfZ3Bpb3Modm9pZCkKK3sKKwlyZXR1cm4gbXhjX2dwaW9faW5pdChpbXhfZ3Bpb19wb3J0cywgQVJSQVlfU0laRShpbXhfZ3Bpb19wb3J0cykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvZ2VuZXJpYy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvZ2VuZXJpYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODc1Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9nZW5lcmljLmMKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIGdlbmVyaWMuYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKworLyogTVgyNyBtZW1vcnkgbWFwIGRlZmluaXRpb24gKi8KK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgbXhjX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCS8qCisJICogdGhpcyBmaXhlZCBtYXBwaW5nIGNvdmVyczoKKwkgKiAtIEFJUEkxCisJICogLSBBSVBJMgorCSAqIC0gQUlUQworCSAqIC0gUk9NIFBhdGNoCisJICogLSBhbmQgc29tZSByZXNlcnZlZCBzcGFjZQorCSAqLworCXsKKwkJLnZpcnR1YWwgPSBBSVBJX0JBU0VfQUREUl9WSVJULAorCQkucGZuID0gX19waHlzX3RvX3BmbihBSVBJX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBBSVBJX1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfSwKKwkvKgorCSAqIHRoaXMgZml4ZWQgbWFwcGluZyBjb3ZlcnM6CisJICogLSBDU0kKKwkgKiAtIEFUQQorCSAqLworCXsKKwkJLnZpcnR1YWwgPSBTQUhCMV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oU0FIQjFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFNBSEIxX1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfSwKKwkvKgorCSAqIHRoaXMgZml4ZWQgbWFwcGluZyBjb3ZlcnM6CisJICogLSBFTUkKKwkgKi8KKwl7CisJCS52aXJ0dWFsID0gWF9NRU1DX0JBU0VfQUREUl9WSVJULAorCQkucGZuID0gX19waHlzX3RvX3BmbihYX01FTUNfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFhfTUVNQ19TSVpFLAorCQkudHlwZSA9IE1UX0RFVklDRQorCX0KK307CisKKy8qCisgKiBJbml0aWFsaXplIHRoZSBtZW1vcnkgbWFwLiBJdCBpcyBjYWxsZWQgZHVyaW5nIHRoZQorICogc3lzdGVtIHN0YXJ0dXAgdG8gY3JlYXRlIHN0YXRpYyBwaHlzaWNhbCB0byB2aXJ0dWFsCisgKiBtZW1vcnkgbWFwIGZvciB0aGUgSU8gbW9kdWxlcy4KKyAqLwordm9pZCBfX2luaXQgbXhjX21hcF9pbyh2b2lkKQoreworCWlvdGFibGVfaW5pdChteGNfaW9fZGVzYywgQVJSQVlfU0laRShteGNfaW9fZGVzYykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvbXgyN2Fkcy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvbXgyN2Fkcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZmYwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9teDI3YWRzLmMKQEAgLTAsMCArMSwzMDQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyIFNoYW5lIE5heSAoc2hhbmVAbWluaXJsLmNvbSkKKyAqICBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW9tdXgtbXgxLW14Mi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MjdhZHMuaD4KKworLyogQURTJ3MgTk9SIGZsYXNoICovCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBteDI3YWRzX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoID0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXgyN2Fkc19mbGFzaF9yZXNvdXJjZSA9IHsKKwkuc3RhcnQgPSAweGMwMDAwMDAwLAorCS5lbmQgPSAweGMwMDAwMDAwICsgMHgwMjAwMDAwMCAtIDEsCisJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14MjdhZHNfbm9yX210ZF9kZXZpY2UgPSB7CisJLm5hbWUgPSAicGh5c21hcC1mbGFzaCIsCisJLmlkID0gMCwKKwkuZGV2ID0geworCQkucGxhdGZvcm1fZGF0YSA9ICZteDI3YWRzX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcyA9IDEsCisJLnJlc291cmNlID0gJm14MjdhZHNfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgaW50IG14Y191YXJ0MF9waW5zW10gPSB7CisJUEUxMl9QRl9VQVJUMV9UWEQsCisJUEUxM19QRl9VQVJUMV9SWEQsCisJUEUxNF9QRl9VQVJUMV9DVFMsCisJUEUxNV9QRl9VQVJUMV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQwIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0MV9waW5zW10gPSB7CisJUEUzX1BGX1VBUlQyX0NUUywKKwlQRTRfUEZfVUFSVDJfUlRTLAorCVBFNl9QRl9VQVJUMl9UWEQsCisJUEU3X1BGX1VBUlQyX1JYRAorfTsKKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiVUFSVDEiKTsKK30KKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9leGl0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgbXhjX3VhcnQyX3BpbnNbXSA9IHsKKwlQRThfUEZfVUFSVDNfVFhELAorCVBFOV9QRl9VQVJUM19SWEQsCisJUEUxMF9QRl9VQVJUM19DVFMsCisJUEUxMV9QRl9VQVJUM19SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQyIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMiIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0M19waW5zW10gPSB7CisJUEIyNl9BRl9VQVJUNF9SVFMsCisJUEIyOF9BRl9VQVJUNF9UWEQsCisJUEIyOV9BRl9VQVJUNF9DVFMsCisJUEIzMV9BRl9VQVJUNF9SWEQKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0M19waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQzIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDNfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0M19waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMyIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0NF9waW5zW10gPSB7CisJUEIxOF9BRl9VQVJUNV9UWEQsCisJUEIxOV9BRl9VQVJUNV9SWEQsCisJUEIyMF9BRl9VQVJUNV9DVFMsCisJUEIyMV9BRl9VQVJUNV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDRfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDRfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQ0Iik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDRfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDRfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUNCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0NV9waW5zW10gPSB7CisJUEIxMF9BRl9VQVJUNl9UWEQsCisJUEIxMl9BRl9VQVJUNl9DVFMsCisJUEIxMV9BRl9VQVJUNl9SWEQsCisJUEIxM19BRl9VQVJUNl9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDVfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDVfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQ1Iik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDVfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDVfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUNSIpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJm14MjdhZHNfbm9yX210ZF9kZXZpY2UsCit9OworCitzdGF0aWMgaW50IG14Y19mZWNfcGluc1tdID0geworCVBEMF9BSU5fRkVDX1RYRDAsCisJUEQxX0FJTl9GRUNfVFhEMSwKKwlQRDJfQUlOX0ZFQ19UWEQyLAorCVBEM19BSU5fRkVDX1RYRDMsCisJUEQ0X0FPVVRfRkVDX1JYX0VSLAorCVBENV9BT1VUX0ZFQ19SWEQxLAorCVBENl9BT1VUX0ZFQ19SWEQyLAorCVBEN19BT1VUX0ZFQ19SWEQzLAorCVBEOF9BRl9GRUNfTURJTywKKwlQRDlfQUlOX0ZFQ19NREMsCisJUEQxMF9BT1VUX0ZFQ19DUlMsCisJUEQxMV9BT1VUX0ZFQ19UWF9DTEssCisJUEQxMl9BT1VUX0ZFQ19SWEQwLAorCVBEMTNfQU9VVF9GRUNfUlhfRFYsCisJUEQxNF9BT1VUX0ZFQ19DTFIsCisJUEQxNV9BT1VUX0ZFQ19DT0wsCisJUEQxNl9BSU5fRkVDX1RYX0VSLAorCVBGMjNfQUlOX0ZFQ19UWF9FTgorfTsKKworc3RhdGljIHZvaWQgZ3Bpb19mZWNfYWN0aXZlKHZvaWQpCit7CisJbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfZmVjX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y19mZWNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIkZFQyIpOworfQorCitzdGF0aWMgdm9pZCBncGlvX2ZlY19pbmFjdGl2ZSh2b2lkKQoreworCW14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX2ZlY19waW5zLAorCQkJQVJSQVlfU0laRShteGNfZmVjX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiRkVDIik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhIHVhcnRfcGRhdGFbXSA9IHsKKwl7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDBfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0MF9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0MV9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQxX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQyX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDJfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDNfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0M19leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0NF9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQ0X2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQ1X2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDVfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IG14MjdhZHNfYm9hcmRfaW5pdCh2b2lkKQoreworCWludCBpOworCisJZ3Bpb19mZWNfYWN0aXZlKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQorCQlpbXhfaW5pdF91YXJ0KGksICZ1YXJ0X3BkYXRhW2ldKTsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHBsYXRmb3JtX2RldmljZXMsIEFSUkFZX1NJWkUocGxhdGZvcm1fZGV2aWNlcykpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgbXgyN2Fkc190aW1lcl9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmcmVmID0gMjYwMDAwMDA7CisKKwlpZiAoKF9fcmF3X3JlYWR3KFBCQ19WRVJTSU9OX1JFRykgJiBDS0lIXzI3TUhaX0JJVF9TRVQpID09IDApCisJCWZyZWYgPSAyNzAwMDAwMDsKKworCW14Y19jbG9ja3NfaW5pdChmcmVmKTsKKwlteGNfdGltZXJfaW5pdCgiZ3B0X2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgbXgyN2Fkc190aW1lciA9IHsKKwkuaW5pdAk9IG14MjdhZHNfdGltZXJfaW5pdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgbXgyN2Fkc19pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsID0gUEJDX0JBU0VfQUREUkVTUywKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQ1M0X0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBTWl8xTSwKKwkJLnR5cGUgPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IG14MjdhZHNfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChteDI3YWRzX2lvX2Rlc2MsIEFSUkFZX1NJWkUobXgyN2Fkc19pb19kZXNjKSk7Cit9CisKK01BQ0hJTkVfU1RBUlQoTVgyN0FEUywgIkZyZWVzY2FsZSBpLk1YMjdBRFMiKQorCS8qIG1haW50YWluZXI6IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuICovCisJLnBoeXNfaW8gICAgICAgID0gQUlQSV9CQVNFX0FERFIsCisJLmlvX3BnX29mZnN0ICAgID0gKChBSVBJX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBteDI3YWRzX21hcF9pbywKKwkuaW5pdF9pcnEgICAgICAgPSBteGNfaW5pdF9pcnEsCisJLmluaXRfbWFjaGluZSAgID0gbXgyN2Fkc19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZteDI3YWRzX3RpbWVyLAorTUFDSElORV9FTkQKKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvcGNtMDM4LmMgYi9hcmNoL2FybS9tYWNoLW14Mi9wY20wMzguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWEyOGY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtMDM4LmMKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+LCBQZW5ndXRyb25peAorICogQ29weXJpZ2h0IChDKSAyMDA4IEp1ZXJnZW4gQmVpc2VydCAoa2VybmVsQHBlbmd1dHJvbml4LmRlKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14MS1teDIuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW14LXVhcnQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1wY20wMzguaD4KKworLyoKKyAqIFBoeXRlYydzIHBoeUNPUkUtaS5NWDI3IGNvbWVzIHdpdGggMzJNaUIgZmxhc2gsCisgKiAxNiBiaXQgd2lkdGgKKyAqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcGNtMDM4X2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoID0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcGNtMDM4X2ZsYXNoX3Jlc291cmNlID0geworCS5zdGFydCA9IDB4YzAwMDAwMDAsCisJLmVuZCAgID0gMHhjMWZmZmZmZiwKKwkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBjbTAzOF9ub3JfbXRkX2RldmljZSA9IHsKKwkubmFtZSA9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQgPSAwLAorCS5kZXYgPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJnBjbTAzOF9mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMgPSAxLAorCS5yZXNvdXJjZSA9ICZwY20wMzhfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgaW50IG14Y191YXJ0MF9waW5zW10gPSB7CisJUEUxMl9QRl9VQVJUMV9UWEQsCisJUEUxM19QRl9VQVJUMV9SWEQsCisJUEUxNF9QRl9VQVJUMV9DVFMsCisJUEUxNV9QRl9VQVJUMV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQwIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0MV9waW5zW10gPSB7CisJUEUzX1BGX1VBUlQyX0NUUywKKwlQRTRfUEZfVUFSVDJfUlRTLAorCVBFNl9QRl9VQVJUMl9UWEQsCisJUEU3X1BGX1VBUlQyX1JYRAorfTsKKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiVUFSVDEiKTsKK30KKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9leGl0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgbXhjX3VhcnQyX3BpbnNbXSA9IHsgUEUxMF9QRl9VQVJUM19DVFMsCisJCQkJUEU5X1BGX1VBUlQzX1JYRCwKKwkJCQlQRTEwX1BGX1VBUlQzX0NUUywKKwkJCQlQRTlfUEZfVUFSVDNfUlhEIH07CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQyIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMiIpOworfQorCitzdGF0aWMgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSB1YXJ0X3BkYXRhW10gPSB7CisJeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQwX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDBfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDFfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0MV9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0Ml9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQyX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwKK307CisKK3N0YXRpYyBpbnQgbXhjX2ZlY19waW5zW10gPSB7CisJUEQwX0FJTl9GRUNfVFhEMCwKKwlQRDFfQUlOX0ZFQ19UWEQxLAorCVBEMl9BSU5fRkVDX1RYRDIsCisJUEQzX0FJTl9GRUNfVFhEMywKKwlQRDRfQU9VVF9GRUNfUlhfRVIsCisJUEQ1X0FPVVRfRkVDX1JYRDEsCisJUEQ2X0FPVVRfRkVDX1JYRDIsCisJUEQ3X0FPVVRfRkVDX1JYRDMsCisJUEQ4X0FGX0ZFQ19NRElPLAorCVBEOV9BSU5fRkVDX01EQywKKwlQRDEwX0FPVVRfRkVDX0NSUywKKwlQRDExX0FPVVRfRkVDX1RYX0NMSywKKwlQRDEyX0FPVVRfRkVDX1JYRDAsCisJUEQxM19BT1VUX0ZFQ19SWF9EViwKKwlQRDE0X0FPVVRfRkVDX0NMUiwKKwlQRDE1X0FPVVRfRkVDX0NPTCwKKwlQRDE2X0FJTl9GRUNfVFhfRVIsCisJUEYyM19BSU5fRkVDX1RYX0VOCit9OworCitzdGF0aWMgdm9pZCBncGlvX2ZlY19hY3RpdmUodm9pZCkKK3sKKwlteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y19mZWNfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX2ZlY19waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiRkVDIik7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fZmVjX2luYWN0aXZlKHZvaWQpCit7CisJbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfZmVjX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y19mZWNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJGRUMiKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZwY20wMzhfbm9yX210ZF9kZXZpY2UsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcGNtMDM4X2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKwlncGlvX2ZlY19hY3RpdmUoKTsKKworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspCisJCWlteF9pbml0X3VhcnQoaSwgJnVhcnRfcGRhdGFbaV0pOworCisJcGxhdGZvcm1fYWRkX2RldmljZXMocGxhdGZvcm1fZGV2aWNlcywgQVJSQVlfU0laRShwbGF0Zm9ybV9kZXZpY2VzKSk7CisKKyNpZmRlZiBDT05GSUdfTUFDSF9QQ005NzBfQkFTRUJPQVJECisJcGNtOTcwX2Jhc2Vib2FyZF9pbml0KCk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19pbml0IHBjbTAzOF90aW1lcl9pbml0KHZvaWQpCit7CisJbXhjX2Nsb2Nrc19pbml0KDI2MDAwMDAwKTsKKwlteGNfdGltZXJfaW5pdCgiZ3B0X2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgcGNtMDM4X3RpbWVyID0geworCS5pbml0ID0gcGNtMDM4X3RpbWVyX2luaXQsCit9OworCitNQUNISU5FX1NUQVJUKFBDTTAzOCwgInBoeUNPUkUtaS5NWDI3IikKKwkucGh5c19pbyAgICAgICAgPSBBSVBJX0JBU0VfQUREUiwKKwkuaW9fcGdfb2Zmc3QgICAgPSAoKEFJUElfQkFTRV9BRERSX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMgICAgPSBQSFlTX09GRlNFVCArIDB4MTAwLAorCS5tYXBfaW8gICAgICAgICA9IG14Y19tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IHBjbTAzOF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZwY20wMzhfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvcGNtOTcwLWJhc2Vib2FyZC5jIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtOTcwLWJhc2Vib2FyZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyOGFjNGQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9wY205NzAtYmFzZWJvYXJkLmMKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisKKy8qCisgKiBzeXN0ZW0gaW5pdCBmb3IgYmFzZWJvYXJkIHVzYWdlLiBXaWxsIGJlIGNhbGxlZCBieSBwY20wMzggaW5pdC4KKyAqCisgKiBBZGQgcGxhdGZvcm0gZGV2aWNlcyBwcmVzZW50IG9uIHRoaXMgYmFzZWJvYXJkIGFuZCBpbml0CisgKiB0aGVtIGZyb20gQ1BVIHNpZGUgYXMgZmFyIGFzIHJlcXVpcmVkIHRvIHVzZSB0aGVtIGxhdGVyIG9uCisgKi8KK3ZvaWQgX19pbml0IHBjbTk3MF9iYXNlYm9hcmRfaW5pdCh2b2lkKQoreworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvc2VyaWFsLmMgYi9hcmNoL2FybS9tYWNoLW14Mi9zZXJpYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzBjMDJiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvc2VyaWFsLmMKQEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtdWFydC5oPgorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQwW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUMV9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUMV9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQxLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTAgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDAsCisJLnJlc291cmNlID0gdWFydDAsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQwKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDFbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQyX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQyX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDIsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQyLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMSA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMSwKKwkucmVzb3VyY2UgPSB1YXJ0MSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDEpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MltdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDNfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDNfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMywKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UyID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAyLAorCS5yZXNvdXJjZSA9IHVhcnQyLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MiksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQzW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUNF9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUNF9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQ0LAorCQkuZW5kID0gTVhDX0lOVF9VQVJUNCwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTMgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDMsCisJLnJlc291cmNlID0gdWFydDMsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQzKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDRbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ1X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ1X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDUsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlNCA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gNCwKKwkucmVzb3VyY2UgPSB1YXJ0NCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDQpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0NVtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDZfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDZfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUNiwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2U1ID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSA1LAorCS5yZXNvdXJjZSA9IHVhcnQ1LAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0NSksCit9OworCisvKgorICogUmVnaXN0ZXIgb25seSB0aG9zZSBVQVJUcyB0aGF0IHBoeXNpY2FsbHkgZXhpc3RzCisgKi8KK2ludCBfX2luaXQgaW14X2luaXRfdWFydChpbnQgdWFydF9ubywgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCit7CisJc3dpdGNoICh1YXJ0X25vKSB7CisJY2FzZSAwOgorCQlteGNfdWFydF9kZXZpY2UwLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMCk7CisJCWJyZWFrOworCWNhc2UgMToKKwkJbXhjX3VhcnRfZGV2aWNlMS5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTEpOworCQlicmVhazsKKyNpZm5kZWYgQ09ORklHX01YQ19JUkRBCisJY2FzZSAyOgorCQlteGNfdWFydF9kZXZpY2UyLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMik7CisJCWJyZWFrOworI2VuZGlmCisJY2FzZSAzOgorCQlteGNfdWFydF9kZXZpY2UzLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMyk7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJbXhjX3VhcnRfZGV2aWNlNC5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTQpOworCQlicmVhazsKKwljYXNlIDU6CisJCW14Y191YXJ0X2RldmljZTUuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2U1KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9zeXN0ZW0uYyBiL2FyY2gvYXJtL21hY2gtbXgyL3N5c3RlbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzA0NjQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9zeXN0ZW0uYwpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IEFSTSBMaW1pdGVkCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAgRGVlcCBCbHVlIFNvbHV0aW9ucyBMdGQKKyAqIENvcHlyaWdodCAyMDA2LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vcHJvYy1mbnMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisKKy8qCisgKiBQdXQgdGhlIENQVSBpbnRvIGlkbGUgbW9kZS4gSXQgaXMgY2FsbGVkIGJ5IGRlZmF1bHRfaWRsZSgpCisgKiBpbiBwcm9jZXNzLmMgZmlsZS4KKyAqLwordm9pZCBhcmNoX2lkbGUodm9pZCkKK3sKKwkvKgorCSAqIFRoaXMgc2hvdWxkIGRvIGFsbCB0aGUgY2xvY2sgc3dpdGNoaW5nCisJICogYW5kIHdhaXQgZm9yIGludGVycnVwdCB0cmlja3MuCisJICovCisJY3B1X2RvX2lkbGUoKTsKK30KKworI2RlZmluZSBXRE9HX1dDUl9SRUcgICAgICAgICAgICAgICAgICAgIElPX0FERFJFU1MoV0RPR19CQVNFX0FERFIpCisjZGVmaW5lIFdET0dfV0NSX1NSUyAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKworLyoKKyAqIFJlc2V0IHRoZSBzeXN0ZW0uIEl0IGlzIGNhbGxlZCBieSBtYWNoaW5lX3Jlc3RhcnQoKS4KKyAqLwordm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSkKK3sKKwlzdHJ1Y3QgY2xrICpjbGs7CisKKwljbGsgPSBjbGtfZ2V0KE5VTEwsICJ3ZG9nX2NsayIpOworCWlmICghY2xrKSB7CisJCXByaW50ayhLRVJOX0VSUiJDYW5ub3QgYWN0aXZhdGUgdGhlIHdhdGNoZG9nLiBHaXZpbmcgdXBcbiIpOworCQlyZXR1cm47CisJfQorCisJY2xrX2VuYWJsZShjbGspOworCisJLyogQXNzZXJ0IFNSUyBzaWduYWwgKi8KKwlfX3Jhd193cml0ZXcoX19yYXdfcmVhZHcoV0RPR19XQ1JfUkVHKSAmIH5XRE9HX1dDUl9TUlMsIFdET0dfV0NSX1JFRyk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZwppbmRleCA1ZmU4NjA2Li5kYjk0MzFkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtbXgzL0tjb25maWcKQEAgLTgsNSArOCwxOCBAQAogCSAgSW5jbHVkZSBzdXBwb3J0IGZvciBNWDMxQURTIHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzIHNwZWNpZmljCiAJICBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCiAKK2NvbmZpZyBNQUNIX1BDTTAzNworCWJvb2wgIlN1cHBvcnQgUGh5dGVjIHBjbTAzNyBwbGF0Zm9ybXMiCisJaGVscAorCSAgSW5jbHVkZSBzdXBwb3J0IGZvciBQaHl0ZWMgcGNtMDM3IHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzCisJICBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCisKK2NvbmZpZyBNQUNIX01YMzFMSVRFCisJYm9vbCAiU3VwcG9ydCBNWDMxIExJVEVLSVQgKExvZ2ljUEQpIgorCWRlZmF1bHQgbgorCWhlbHAKKwkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgTVgzMSBMSVRFS0lUIHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzIHNwZWNpZmljCisJICBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCisKIGVuZG1lbnUKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQppbmRleCBjYmVjOTk3Li44YjIxYWJiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQpAQCAtNCw1ICs0LDcgQEAKIAogIyBPYmplY3QgZmlsZSBsaXN0cy4KIAotb2JqLXkJCQk6PSBtbS5vIHRpbWUubworb2JqLXkJCQk6PSBtbS5vIGNsb2NrLm8gZGV2aWNlcy5vIGlvbXV4Lm8KIG9iai0kKENPTkZJR19NQUNIX01YMzFBRFMpCSs9IG14MzFhZHMubworb2JqLSQoQ09ORklHX01BQ0hfTVgzMUxJVEUpCSs9IG14MzFsaXRlLm8KK29iai0kKENPTkZJR19NQUNIX1BDTTAzNykJKz0gcGNtMDM3Lm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLW14My9jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMzYzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9jbG9jay5jCkBAIC0wLDAgKzEsMTE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBTYXNjaGEgSGF1ZXIgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKworI2luY2x1ZGUgImNybV9yZWdzLmgiCisKKyNkZWZpbmUgUFJFX0RJVl9NSU5fRlJFUSAgICAxMDAwMDAwMCAvKiBNaW5pbXVtIEZyZXF1ZW5jeSBhZnRlciBQcmVkaXZpZGVyICovCisKK3N0YXRpYyB2b2lkIF9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyh1MzIgZGl2LCB1MzIgKnByZSwgdTMyICpwb3N0KQoreworCXUzMiBtaW5fcHJlLCB0ZW1wX3ByZSwgb2xkX2VyciwgZXJyOworCisJaWYgKGRpdiA+PSA1MTIpIHsKKwkJKnByZSA9IDg7CisJCSpwb3N0ID0gNjQ7CisJfSBlbHNlIGlmIChkaXYgPj0gNjQpIHsKKwkJbWluX3ByZSA9IChkaXYgLSAxKSAvIDY0ICsgMTsKKwkJb2xkX2VyciA9IDg7CisJCWZvciAodGVtcF9wcmUgPSA4OyB0ZW1wX3ByZSA+PSBtaW5fcHJlOyB0ZW1wX3ByZS0tKSB7CisJCQllcnIgPSBkaXYgJSB0ZW1wX3ByZTsKKwkJCWlmIChlcnIgPT0gMCkgeworCQkJCSpwcmUgPSB0ZW1wX3ByZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWVyciA9IHRlbXBfcHJlIC0gZXJyOworCQkJaWYgKGVyciA8IG9sZF9lcnIpIHsKKwkJCQlvbGRfZXJyID0gZXJyOworCQkJCSpwcmUgPSB0ZW1wX3ByZTsKKwkJCX0KKwkJfQorCQkqcG9zdCA9IChkaXYgKyAqcHJlIC0gMSkgLyAqcHJlOworCX0gZWxzZSBpZiAoZGl2IDw9IDgpIHsKKwkJKnByZSA9IGRpdjsKKwkJKnBvc3QgPSAxOworCX0gZWxzZSB7CisJCSpwcmUgPSAxOworCQkqcG9zdCA9IGRpdjsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9wbGxfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgbWN1X21haW5fY2xrOworc3RhdGljIHN0cnVjdCBjbGsgdXNiX3BsbF9jbGs7CitzdGF0aWMgc3RydWN0IGNsayBzZXJpYWxfcGxsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlwZ19jbGs7CitzdGF0aWMgc3RydWN0IGNsayBja2loX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGFoYl9jbGs7CisKK3N0YXRpYyBpbnQgX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChjbGstPmVuYWJsZV9yZWcpOworCXJlZyB8PSAzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0OworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgJj0gfigzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2VtaV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgJj0gfigzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlyZWcgfD0gKDEgPDwgY2xrLT5lbmFibGVfc2hpZnQpOworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19wbGxfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZzsKKwlzaWduZWQgbG9uZyBwZCA9IDE7CS8qIFByZS1kaXZpZGVyICovCisJc2lnbmVkIGxvbmcgbWZpOwkvKiBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgKEludGVnZXIgcGFydCkgKi8KKwlzaWduZWQgbG9uZyBtZm47CS8qIE11bHRpcGxpY2F0aW9uIEZhY3RvciAoSW50ZWdlciBwYXJ0KSAqLworCXNpZ25lZCBsb25nIG1mZDsJLyogTXVsdGlwbGljYXRpb24gRmFjdG9yIChEZW5vbWluYXRvciBQYXJ0KSAqLworCXNpZ25lZCBsb25nIHRtcDsKKwl1MzIgcmVmX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJd2hpbGUgKCgocmVmX2ZyZXEgLyBwZCkgKiAxMCkgPiByYXRlKQorCQlwZCsrOworCisJaWYgKChyZWZfZnJlcSAvIHBkKSA8IFBSRV9ESVZfTUlOX0ZSRVEpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogdGhlIHJlZl9mcmVxLzIgaW4gdGhlIGZvbGxvd2luZyBpcyB0byByb3VuZCB1cCAqLworCW1maSA9ICgoKHJhdGUgLyAyKSAqIHBkKSArIChyZWZfZnJlcSAvIDIpKSAvIHJlZl9mcmVxOworCWlmIChtZmkgPCA1IHx8IG1maSA+IDE1KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHBpY2sgYSBtZmQgdmFsdWUgdGhhdCB3aWxsIHdvcmsKKwkgKiB0aGVuIHNvbHZlIGZvciBtZm4gKi8KKwltZmQgPSByZWZfZnJlcSAvIDUwMDAwOworCisJLyoKKwkgKiAgICAgICAgICBwbGxfZnJlcSAqIHBkICogbWZkCisJICogICBtZm4gPSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAgLSAgKG1maSAqIG1mZCkKKwkgKiAgICAgICAgICAgMiAqIHJlZl9mcmVxCisJICovCisJLyogdGhlIHRtcC8yIGlzIGZvciByb3VuZGluZyAqLworCXRtcCA9IHJlZl9mcmVxIC8gMTAwMDA7CisJbWZuID0KKwkgICAgKCgoKCgocmF0ZSAvIDIpICsgKHRtcCAvIDIpKSAvIHRtcCkgKiBwZCkgKiBtZmQpIC8gMTAwMDApIC0KKwkgICAgKG1maSAqIG1mZCk7CisKKwltZm4gPSBtZm4gJiAweDNmZjsKKwlwZC0tOworCW1mZC0tOworCisJLyogQ2hhbmdlIHRoZSBQbGwgdmFsdWUgKi8KKwlyZWcgPSAobWZpIDw8IE1YQ19DQ01fUENUTF9NRklfT0ZGU0VUKSB8CisJICAgIChtZm4gPDwgTVhDX0NDTV9QQ1RMX01GTl9PRkZTRVQpIHwKKwkgICAgKG1mZCA8PCBNWENfQ0NNX1BDVExfTUZEX09GRlNFVCkgfCAocGQgPDwgTVhDX0NDTV9QQ1RMX1BEX09GRlNFVCk7CisKKwlpZiAoY2xrID09ICZtY3VfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9NUENUTCk7CisJZWxzZSBpZiAoY2xrID09ICZ1c2JfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9VUENUTCk7CisJZWxzZSBpZiAoY2xrID09ICZzZXJpYWxfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9TUlBDVEwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGxsX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlsb25nIG1maSwgbWZuLCBtZmQsIHBkZiwgcmVmX2NsaywgbWZuX2FiczsKKwl1bnNpZ25lZCBsb25nIHJlZywgY2NtcjsKKwlzNjQgdGVtcDsKKwl1bnNpZ25lZCBpbnQgcHJjczsKKworCWNjbXIgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NDTVIpOworCXByY3MgPSAoY2NtciAmIE1YQ19DQ01fQ0NNUl9QUkNTX01BU0spID4+IE1YQ19DQ01fQ0NNUl9QUkNTX09GRlNFVDsKKwlpZiAocHJjcyA9PSAweDEpCisJCXJlZl9jbGsgPSBDS0lMX0NMS19GUkVRICogMTAyNDsKKwllbHNlCisJCXJlZl9jbGsgPSBjbGtfZ2V0X3JhdGUoJmNraWhfY2xrKTsKKworCWlmIChjbGsgPT0gJm1jdV9wbGxfY2xrKSB7CisJCWlmICgoY2NtciAmIE1YQ19DQ01fQ0NNUl9NUEUpID09IDApCisJCQlyZXR1cm4gcmVmX2NsazsKKwkJaWYgKChjY21yICYgTVhDX0NDTV9DQ01SX01EUykgIT0gMCkKKwkJCXJldHVybiByZWZfY2xrOworCQlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX01QQ1RMKTsKKwl9IGVsc2UgaWYgKGNsayA9PSAmdXNiX3BsbF9jbGspCisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fVVBDVEwpOworCWVsc2UgaWYgKGNsayA9PSAmc2VyaWFsX3BsbF9jbGspCisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fU1JQQ1RMKTsKKwllbHNlIHsKKwkJQlVHKCk7CisJCXJldHVybiAwOworCX0KKworCXBkZiA9IChyZWcgJiBNWENfQ0NNX1BDVExfUERfTUFTSykgPj4gTVhDX0NDTV9QQ1RMX1BEX09GRlNFVDsKKwltZmQgPSAocmVnICYgTVhDX0NDTV9QQ1RMX01GRF9NQVNLKSA+PiBNWENfQ0NNX1BDVExfTUZEX09GRlNFVDsKKwltZmkgPSAocmVnICYgTVhDX0NDTV9QQ1RMX01GSV9NQVNLKSA+PiBNWENfQ0NNX1BDVExfTUZJX09GRlNFVDsKKwltZmkgPSAobWZpIDw9IDUpID8gNSA6IG1maTsKKwltZm4gPSBtZm5fYWJzID0gcmVnICYgTVhDX0NDTV9QQ1RMX01GTl9NQVNLOworCisJaWYgKG1mbiA+PSAweDIwMCkgeworCQltZm4gfD0gMHhGRkZGRkUwMDsKKwkJbWZuX2FicyA9IC1tZm47CisJfQorCisJcmVmX2NsayAqPSAyOworCXJlZl9jbGsgLz0gcGRmICsgMTsKKworCXRlbXAgPSAodTY0KSByZWZfY2xrICogbWZuX2FiczsKKwlkb19kaXYodGVtcCwgbWZkICsgMSk7CisJaWYgKG1mbiA8IDApCisJCXRlbXAgPSAtdGVtcDsKKwl0ZW1wID0gKHJlZl9jbGsgKiBtZmkpICsgdGVtcDsKKworCXJldHVybiB0ZW1wOworfQorCitzdGF0aWMgaW50IF9jbGtfdXNiX3BsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NDTVIpOworCXJlZyB8PSBNWENfQ0NNX0NDTVJfVVBFOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ0NNUik7CisKKwkvKiBObyBsb2NrIGJpdCBvbiBNWDMxLCBzbyB1c2luZyBtYXggdGltZSBmcm9tIHNwZWMgKi8KKwl1ZGVsYXkoODApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfdXNiX3BsbF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlyZWcgJj0gfk1YQ19DQ01fQ0NNUl9VUEU7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DQ01SKTsKK30KKworc3RhdGljIGludCBfY2xrX3NlcmlhbF9wbGxfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlyZWcgfD0gTVhDX0NDTV9DQ01SX1NQRTsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NDTVIpOworCisJLyogTm8gbG9jayBiaXQgb24gTVgzMSwgc28gdXNpbmcgbWF4IHRpbWUgZnJvbSBzcGVjICovCisJdWRlbGF5KDgwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NlcmlhbF9wbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ0NNUik7CisJcmVnICY9IH5NWENfQ0NNX0NDTVJfU1BFOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ0NNUik7Cit9CisKKyNkZWZpbmUgUERSMChtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIwKSAmIG1hc2spID4+IG9mZikKKyNkZWZpbmUgUERSMShtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIxKSAmIG1hc2spID4+IG9mZikKKyNkZWZpbmUgUERSMihtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIyKSAmIG1hc2spID4+IG9mZikKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tY3VfbWFpbl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHBtY3IwID0gX19yYXdfcmVhZGwoTVhDX0NDTV9QTUNSMCk7CisKKwlpZiAoKHBtY3IwICYgTVhDX0NDTV9QTUNSMF9ERlNVUDEpID09IE1YQ19DQ01fUE1DUjBfREZTVVAxX1NQTEwpCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoJnNlcmlhbF9wbGxfY2xrKTsKKwllbHNlCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoJm1jdV9wbGxfY2xrKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19oY2xrX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1heF9wZGY7CisKKwltYXhfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfTUFYX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKG1heF9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19pcGdfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgaXBnX3BkZjsKKworCWlwZ19wZGYgPSBQRFIwKE1YQ19DQ01fUERSMF9JUEdfUE9ERl9NQVNLLAorCQkgICAgICAgTVhDX0NDTV9QRFIwX0lQR19QT0RGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAoaXBnX3BkZiArIDEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX25mY19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBuZmNfcGRmOworCisJbmZjX3BkZiA9IFBEUjAoTVhDX0NDTV9QRFIwX05GQ19QT0RGX01BU0ssCisJCSAgICAgICBNWENfQ0NNX1BEUjBfTkZDX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChuZmNfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfaHNwX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIGhzcF9wZGY7CisKKwloc3BfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfSFNQX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9IU1BfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKGhzcF9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa191c2JfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdXNiX3BkZiwgdXNiX3ByZXBkZjsKKworCXVzYl9wZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9VU0JfUE9ERl9NQVNLLAorCQkgICAgICAgTVhDX0NDTV9QRFIxX1VTQl9QT0RGX09GRlNFVCk7CisJdXNiX3ByZXBkZiA9IFBEUjEoTVhDX0NDTV9QRFIxX1VTQl9QUkRGX01BU0ssCisJCQkgIE1YQ19DQ01fUERSMV9VU0JfUFJERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHVzYl9wcmVwZGYgKyAxKSAvICh1c2JfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfY3NpX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnLCBwcmUsIHBvc3Q7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BEUjApOworCXByZSA9IChyZWcgJiBNWENfQ0NNX1BEUjBfQ1NJX1BSREZfTUFTSykgPj4KKwkgICAgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVDsKKwlwcmUrKzsKKwlwb3N0ID0gKHJlZyAmIE1YQ19DQ01fUERSMF9DU0lfUE9ERl9NQVNLKSA+PgorCSAgICBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfT0ZGU0VUOworCXBvc3QrKzsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChwcmUgKiBwb3N0KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19jc2lfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcHJlLCBwb3N0LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXUzMiBkaXYgPSBwYXJlbnQgLyByYXRlOworCisJaWYgKHBhcmVudCAlIHJhdGUpCisJCWRpdisrOworCisJX19jYWxjX3ByZV9wb3N0X2RpdmlkZXJzKGRpdiwgJnByZSwgJnBvc3QpOworCisJcmV0dXJuIHBhcmVudCAvIChwcmUgKiBwb3N0KTsKK30KKworc3RhdGljIGludCBfY2xrX2NzaV9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcmVnLCBkaXYsIHByZSwgcG9zdCwgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudCAvIHJhdGU7CisKKwlpZiAoKHBhcmVudCAvIGRpdikgIT0gcmF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX2NhbGNfcHJlX3Bvc3RfZGl2aWRlcnMoZGl2LCAmcHJlLCAmcG9zdCk7CisKKwkvKiBTZXQgQ1NJIGNsb2NrIGRpdmlkZXIgKi8KKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BEUjApICYKKwkgICAgfihNWENfQ0NNX1BEUjBfQ1NJX1BPREZfTUFTSyB8IE1YQ19DQ01fUERSMF9DU0lfUFJERl9NQVNLKTsKKwlyZWcgfD0gKHBvc3QgLSAxKSA8PCBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfT0ZGU0VUOworCXJlZyB8PSAocHJlIC0gMSkgPDwgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVDsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX1BEUjApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGVyX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHBlcl9wZGY7CisKKwlwZXJfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfUEVSX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9QRVJfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHBlcl9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kxX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTFfcGRmLCBzc2kxX3ByZXBkZjsKKworCXNzaTFfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMV9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfU1NJMV9QT0RGX09GRlNFVCk7CisJc3NpMV9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9TU0kxX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfU1NJMV9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHNzaTFfcHJlcGRmICsgMSkgLyAoc3NpMV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kyX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTJfcGRmLCBzc2kyX3ByZXBkZjsKKworCXNzaTJfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX09GRlNFVCk7CisJc3NpMl9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9TU0kyX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfU1NJMl9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHNzaTJfcHJlcGRmICsgMSkgLyAoc3NpMl9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19maXJpX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIGZpcmlfcGRmLCBmaXJpX3ByZXBkZjsKKworCWZpcmlfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfRklSSV9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfRklSSV9QT0RGX09GRlNFVCk7CisJZmlyaV9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKGZpcmlfcHJlcGRmICsgMSkgLyAoZmlyaV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19maXJpX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHByZSwgcG9zdDsKKwl1MzIgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwl1MzIgZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmIChwYXJlbnQgJSByYXRlKQorCQlkaXYrKzsKKworCV9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyhkaXYsICZwcmUsICZwb3N0KTsKKworCXJldHVybiBwYXJlbnQgLyAocHJlICogcG9zdCk7CisKK30KKworc3RhdGljIGludCBfY2xrX2Zpcmlfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZywgZGl2LCBwcmUsIHBvc3QsIHBhcmVudCA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnQgLyByYXRlOworCisJaWYgKChwYXJlbnQgLyBkaXYpICE9IHJhdGUpCisJCXJldHVybiAtRUlOVkFMOworCisJX19jYWxjX3ByZV9wb3N0X2RpdmlkZXJzKGRpdiwgJnByZSwgJnBvc3QpOworCisJLyogU2V0IEZJUkkgY2xvY2sgZGl2aWRlciAqLworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fUERSMSkgJgorCSAgICB+KE1YQ19DQ01fUERSMV9GSVJJX1BPREZfTUFTSyB8IE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX01BU0spOworCXJlZyB8PSAocHJlIC0gMSkgPDwgTVhDX0NDTV9QRFIxX0ZJUklfUFJFX1BPREZfT0ZGU0VUOworCXJlZyB8PSAocG9zdCAtIDEpIDw8IE1YQ19DQ01fUERSMV9GSVJJX1BPREZfT0ZGU0VUOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fUERSMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tYnhfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gMjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tc3RpY2sxX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1zdGlfcGRmOworCisJbXN0aV9wZGYgPSBQRFIyKE1YQ19DQ01fUERSMl9NU1QxX1BERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIyX01TVDFfUERGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAobXN0aV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tc3RpY2syX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1zdGlfcGRmOworCisJbXN0aV9wZGYgPSBQRFIyKE1YQ19DQ01fUERSMl9NU1QyX1BERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIyX01TVDJfUERGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAobXN0aV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2tpaF9yYXRlOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfY2tpaF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNraWhfcmF0ZTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2tpaF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpaCIsCisJLmdldF9yYXRlID0gY2xrX2NraWhfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfY2tpbF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIENLSUxfQ0xLX0ZSRVE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNraWxfY2xrID0geworCS5uYW1lID0gImNraWwiLAorCS5nZXRfcmF0ZSA9IGNsa19ja2lsX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbWN1X3BsbF9jbGsgPSB7CisJLm5hbWUgPSAibWN1X3BsbCIsCisJLnBhcmVudCA9ICZja2loX2NsaywKKwkuc2V0X3JhdGUgPSBfY2xrX3BsbF9zZXRfcmF0ZSwKKwkuZ2V0X3JhdGUgPSBfY2xrX3BsbF9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9tYWluX2NsayA9IHsKKwkubmFtZSA9ICJtY3VfbWFpbl9jbGsiLAorCS5wYXJlbnQgPSAmbWN1X3BsbF9jbGssCisJLmdldF9yYXRlID0gX2Nsa19tY3VfbWFpbl9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNlcmlhbF9wbGxfY2xrID0geworCS5uYW1lID0gInNlcmlhbF9wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLnNldF9yYXRlID0gX2Nsa19wbGxfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19wbGxfZ2V0X3JhdGUsCisJLmVuYWJsZSA9IF9jbGtfc2VyaWFsX3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3NlcmlhbF9wbGxfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHVzYl9wbGxfY2xrID0geworCS5uYW1lID0gInVzYl9wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLnNldF9yYXRlID0gX2Nsa19wbGxfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19wbGxfZ2V0X3JhdGUsCisJLmVuYWJsZSA9IF9jbGtfdXNiX3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3VzYl9wbGxfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGFoYl9jbGsgPSB7CisJLm5hbWUgPSAiYWhiX2NsayIsCisJLnBhcmVudCA9ICZtY3VfbWFpbl9jbGssCisJLmdldF9yYXRlID0gX2Nsa19oY2xrX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcGVyX2NsayA9IHsKKwkubmFtZSA9ICJwZXJfY2xrIiwKKwkucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfcGVyX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcGVyY2xrX2NsayA9IHsKKwkubmFtZSA9ICJwZXJjbGtfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfQ1NQSTFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAxLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfQ1NQSTJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAyLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfQ1NQSTNfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaXBnX2NsayA9IHsKKwkubmFtZSA9ICJpcGdfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmdldF9yYXRlID0gX2Nsa19pcGdfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBlbWlfY2xrID0geworCS5uYW1lID0gImVtaV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9FTUlfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19lbWlfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdF9jbGsgPSB7CisJLm5hbWUgPSAiZ3B0X2NsayIsCisJLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0dQVF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBwd21fY2xrID0geworCS5uYW1lID0gInB3bV9jbGsiLAorCS5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9QV01fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZXBpdF9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gImVwaXRfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0VQSVQxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gImVwaXRfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0VQSVQyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG5mY19jbGsgPSB7CisJLm5hbWUgPSAibmZjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfbmZjX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2NjX2NsayA9IHsKKwkubmFtZSA9ICJzY2NfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBpcHVfY2xrID0geworCS5uYW1lID0gImlwdV9jbGsiLAorCS5wYXJlbnQgPSAmbWN1X21haW5fY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfaHNwX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX0lQVV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBrcHBfY2xrID0geworCS5uYW1lID0gImtwcF9jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9LUFBfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgd2RvZ19jbGsgPSB7CisJLm5hbWUgPSAid2RvZ19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9XRE9HX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CitzdGF0aWMgc3RydWN0IGNsayBydGNfY2xrID0geworCS5uYW1lID0gInJ0Y19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9SVENfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdXNiX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAidXNiX2NsayIsCisJIC5wYXJlbnQgPSAmdXNiX3BsbF9jbGssCisJIC5nZXRfcmF0ZSA9IF9jbGtfdXNiX2dldF9yYXRlLH0sCisJeworCSAubmFtZSA9ICJ1c2JfYWhiX2NsayIsCisJIC5wYXJlbnQgPSAmYWhiX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9VU0JPVEdfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NpX2NsayA9IHsKKwkubmFtZSA9ICJjc2lfY2xrIiwKKwkucGFyZW50ID0gJnNlcmlhbF9wbGxfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfY3NpX2dldF9yYXRlLAorCS5yb3VuZF9yYXRlID0gX2Nsa19jc2lfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUgPSBfY2xrX2NzaV9zZXRfcmF0ZSwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9DU0lfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdWFydF9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1VBUlQxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1VBUlQyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMiwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQzX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMywKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQ0X09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gNCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQ1X09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGkyY19jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gImkyY19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfSTJDMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJpMmNfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0kyQzJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiaTJjX2NsayIsCisJIC5pZCA9IDIsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9JMkMzX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG93aXJlX2NsayA9IHsKKwkubmFtZSA9ICJvd2lyZV9jbGsiLAorCS5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX09XSVJFX09GRlNFVCwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAic2RoY19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzZGhjX2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9TRF9NTUMyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNzaV9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInNzaV9jbGsiLAorCSAucGFyZW50ID0gJnNlcmlhbF9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX3NzaTFfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU1NJMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzc2lfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZzZXJpYWxfcGxsX2NsaywKKwkgLmdldF9yYXRlID0gX2Nsa19zc2kyX2dldF9yYXRlLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX1NTSTJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZmlyaV9jbGsgPSB7CisJLm5hbWUgPSAiZmlyaV9jbGsiLAorCS5wYXJlbnQgPSAmdXNiX3BsbF9jbGssCisJLnJvdW5kX3JhdGUgPSBfY2xrX2Zpcmlfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUgPSBfY2xrX2Zpcmlfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19maXJpX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0ZJUklfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgYXRhX2NsayA9IHsKKwkubmFtZSA9ICJhdGFfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfQVRBX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1ieF9jbGsgPSB7CisJLm5hbWUgPSAibWJ4X2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0dBQ0NfT0ZGU0VULAorCS5nZXRfcmF0ZSA9IF9jbGtfbWJ4X2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdnB1X2NsayA9IHsKKwkubmFtZSA9ICJ2cHVfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfR0FDQ19PRkZTRVQsCisJLmdldF9yYXRlID0gX2Nsa19tYnhfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBydGljX2NsayA9IHsKKwkubmFtZSA9ICJydGljX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX1JUSUNfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcm5nX2NsayA9IHsKKwkubmFtZSA9ICJybmdfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfUk5HX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNkbWFfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJzZG1hX2FoYl9jbGsiLAorCSAucGFyZW50ID0gJmFoYl9jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU0RNQV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzZG1hX2lwZ19jbGsiLAorCSAucGFyZW50ID0gJmlwZ19jbGssfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbXBlZzRfY2xrID0geworCS5uYW1lID0gIm1wZWc0X2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX0hBTlRST19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB2bDJjY19jbGsgPSB7CisJLm5hbWUgPSAidmwyY2NfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfSEFOVFJPX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1zdGlja19jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gIm1zdGlja19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX21zdGljazFfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gIm1zdGlja19jbGsiLAorCSAuaWQgPSAxLAorCSAucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX21zdGljazJfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlpbV9jbGsgPSB7CisJLm5hbWUgPSAiaWltX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0lJTV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NrbzFfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgZGl2LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50IC8gcmF0ZTsKKwlpZiAocGFyZW50ICUgcmF0ZSkKKwkJZGl2Kys7CisKKwlpZiAoZGl2ID4gOCkKKwkJZGl2ID0gMTY7CisJZWxzZSBpZiAoZGl2ID4gNCkKKwkJZGl2ID0gODsKKwllbHNlIGlmIChkaXYgPiAyKQorCQlkaXYgPSA0OworCisJcmV0dXJuIHBhcmVudCAvIGRpdjsKK30KKworc3RhdGljIGludCBfY2xrX2NrbzFfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZywgZGl2LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmIChkaXYgPT0gMTYpCisJCWRpdiA9IDQ7CisJZWxzZSBpZiAoZGl2ID09IDgpCisJCWRpdiA9IDM7CisJZWxzZSBpZiAoZGl2ID09IDQpCisJCWRpdiA9IDI7CisJZWxzZSBpZiAoZGl2ID09IDIpCisJCWRpdiA9IDE7CisJZWxzZSBpZiAoZGl2ID09IDEpCisJCWRpdiA9IDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ09TUikgJiB+TVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLOworCXJlZyB8PSBkaXYgPDwgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9PRkZTRVQ7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DT1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NrbzFfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiBkaXY7CisKKwlkaXYgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpICYgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLID4+CisJICAgIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfT0ZGU0VUOworCisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAoMSA8PCBkaXYpOworfQorCitzdGF0aWMgaW50IF9jbGtfY2tvMV9zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpICYgfk1YQ19DQ01fQ09TUl9DTEtPU0VMX01BU0s7CisKKwlpZiAocGFyZW50ID09ICZtY3VfbWFpbl9jbGspCisJCXJlZyB8PSAwIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmlwZ19jbGspCisJCXJlZyB8PSAxIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnVzYl9wbGxfY2xrKQorCQlyZWcgfD0gMiA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IG1jdV9tYWluX2Nsay5wYXJlbnQpCisJCXJlZyB8PSAzIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmFoYl9jbGspCisJCXJlZyB8PSA1IDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnNlcmlhbF9wbGxfY2xrKQorCQlyZWcgfD0gNyA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZja2loX2NsaykKKwkJcmVnIHw9IDggPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmZW1pX2NsaykKKwkJcmVnIHw9IDkgPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmaXB1X2NsaykKKwkJcmVnIHw9IDB4QSA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZuZmNfY2xrKQorCQlyZWcgfD0gMHhCIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnVhcnRfY2xrWzBdKQorCQlyZWcgfD0gMHhDIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DT1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9jbGtfY2tvMV9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpIHwgTVhDX0NDTV9DT1NSX0NMS09FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NPU1IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfY2tvMV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DT1NSKSAmIH5NWENfQ0NNX0NPU1JfQ0xLT0VOOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ09TUik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNrbzFfY2xrID0geworCS5uYW1lID0gImNrbzFfY2xrIiwKKwkuZ2V0X3JhdGUgPSBfY2xrX2NrbzFfZ2V0X3JhdGUsCisJLnNldF9yYXRlID0gX2Nsa19ja28xX3NldF9yYXRlLAorCS5yb3VuZF9yYXRlID0gX2Nsa19ja28xX3JvdW5kX3JhdGUsCisJLnNldF9wYXJlbnQgPSBfY2xrX2NrbzFfc2V0X3BhcmVudCwKKwkuZW5hYmxlID0gX2Nsa19ja28xX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfY2tvMV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKm14Y19jbGtzW10gPSB7CisJJmNraWhfY2xrLAorCSZja2lsX2NsaywKKwkmbWN1X3BsbF9jbGssCisJJnVzYl9wbGxfY2xrLAorCSZzZXJpYWxfcGxsX2NsaywKKwkmbWN1X21haW5fY2xrLAorCSZhaGJfY2xrLAorCSZwZXJfY2xrLAorCSZwZXJjbGtfY2xrLAorCSZja28xX2NsaywKKwkmZW1pX2NsaywKKwkmY3NwaV9jbGtbMF0sCisJJmNzcGlfY2xrWzFdLAorCSZjc3BpX2Nsa1syXSwKKwkmaXBnX2NsaywKKwkmZ3B0X2NsaywKKwkmcHdtX2NsaywKKwkmd2RvZ19jbGssCisJJnJ0Y19jbGssCisJJmVwaXRfY2xrWzBdLAorCSZlcGl0X2Nsa1sxXSwKKwkmbmZjX2NsaywKKwkmaXB1X2NsaywKKwkma3BwX2NsaywKKwkmdXNiX2Nsa1swXSwKKwkmdXNiX2Nsa1sxXSwKKwkmY3NpX2NsaywKKwkmdWFydF9jbGtbMF0sCisJJnVhcnRfY2xrWzFdLAorCSZ1YXJ0X2Nsa1syXSwKKwkmdWFydF9jbGtbM10sCisJJnVhcnRfY2xrWzRdLAorCSZpMmNfY2xrWzBdLAorCSZpMmNfY2xrWzFdLAorCSZpMmNfY2xrWzJdLAorCSZvd2lyZV9jbGssCisJJnNkaGNfY2xrWzBdLAorCSZzZGhjX2Nsa1sxXSwKKwkmc3NpX2Nsa1swXSwKKwkmc3NpX2Nsa1sxXSwKKwkmZmlyaV9jbGssCisJJmF0YV9jbGssCisJJnJ0aWNfY2xrLAorCSZybmdfY2xrLAorCSZzZG1hX2Nsa1swXSwKKwkmc2RtYV9jbGtbMV0sCisJJm1zdGlja19jbGtbMF0sCisJJm1zdGlja19jbGtbMV0sCisJJnNjY19jbGssCisJJmlpbV9jbGssCit9OworCitpbnQgX19pbml0IG14Y19jbG9ja3NfaW5pdCh1bnNpZ25lZCBsb25nIGZyZWYpCit7CisJdTMyIHJlZzsKKwlzdHJ1Y3QgY2xrICoqY2xrcDsKKworCWNraWhfcmF0ZSA9IGZyZWY7CisKKwlmb3IgKGNsa3AgPSBteGNfY2xrczsgY2xrcCA8IG14Y19jbGtzICsgQVJSQVlfU0laRShteGNfY2xrcyk7IGNsa3ArKykKKwkJY2xrX3JlZ2lzdGVyKCpjbGtwKTsKKworCWlmIChjcHVfaXNfbXgzMSgpKSB7CisJCWNsa19yZWdpc3RlcigmbXBlZzRfY2xrKTsKKwkJY2xrX3JlZ2lzdGVyKCZtYnhfY2xrKTsKKwl9IGVsc2UgeworCQljbGtfcmVnaXN0ZXIoJnZwdV9jbGspOworCQljbGtfcmVnaXN0ZXIoJnZsMmNjX2Nsayk7CisJfQorCisJLyogVHVybiBvZmYgYWxsIHBvc3NpYmxlIGNsb2NrcyAqLworCV9fcmF3X3dyaXRlbChNWENfQ0NNX0NHUjBfR1BUX01BU0ssIE1YQ19DQ01fQ0dSMCk7CisJX19yYXdfd3JpdGVsKDAsIE1YQ19DQ01fQ0dSMSk7CisKKwlfX3Jhd193cml0ZWwoTVhDX0NDTV9DR1IyX0VNSV9NQVNLIHwKKwkJICAgICBNWENfQ0NNX0NHUjJfSVBNVVgxX01BU0sgfAorCQkgICAgIE1YQ19DQ01fQ0dSMl9JUE1VWDJfTUFTSyB8CisJCSAgICAgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIE1YQ19DQ01fQ0dSMl9DSElLQ0FNUEVOX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIE1YQ19DQ01fQ0dSMl9PVlJWUFVCVVNZX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIDEgPDwgMjcgfCAxIDw8IDI4LCAvKiBCaXQgMjcgYW5kIDI4IGFyZSBub3QgZGVmaW5lZCBmb3IKKwkJCQkJICAgTVgzMiwgYnV0IHN0aWxsIHJlcXVpcmVkIHRvIGJlIHNldCAqLworCQkgICAgIE1YQ19DQ01fQ0dSMik7CisKKwljbGtfZGlzYWJsZSgmY2tvMV9jbGspOworCWNsa19kaXNhYmxlKCZ1c2JfcGxsX2Nsayk7CisKKwlwcl9pbmZvKCJDbG9jayBpbnB1dCBzb3VyY2UgaXMgJWxkXG4iLCBjbGtfZ2V0X3JhdGUoJmNraWhfY2xrKSk7CisKKwljbGtfZW5hYmxlKCZncHRfY2xrKTsKKwljbGtfZW5hYmxlKCZlbWlfY2xrKTsKKwljbGtfZW5hYmxlKCZpaW1fY2xrKTsKKworCWNsa19lbmFibGUoJnNlcmlhbF9wbGxfY2xrKTsKKworCWlmIChteDMxX3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fUE1DUjEpOworCQkvKiBObyBQTEwgcmVzdGFydCBvbiBEVkZTIHN3aXRjaDsgZW5hYmxlIGF1dG8gRU1JIGhhbmRzaGFrZSAqLworCQlyZWcgfD0gTVhDX0NDTV9QTUNSMV9QTExSRElTIHwgTVhDX0NDTV9QTUNSMV9FTUlSUV9FTjsKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9QTUNSMSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2NybV9yZWdzLmggYi9hcmNoL2FybS9tYWNoLW14My9jcm1fcmVncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMGUwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9jcm1fcmVncy5oCkBAIC0wLDAgKzEsNDAxIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BUkNIX0FSTV9NQUNIX01YM19DUk1fUkVHU19IX18KKyNkZWZpbmUgX19BUkNIX0FSTV9NQUNIX01YM19DUk1fUkVHU19IX18KKworI2RlZmluZSBDS0lIX0NMS19GUkVRICAgICAgICAgICAyNjAwMDAwMAorI2RlZmluZSBDS0lIX0NMS19GUkVRXzI3TUhaICAgICAyNzAwMDAwMAorI2RlZmluZSBDS0lMX0NMS19GUkVRICAgICAgICAgICAzMjc2OAorCisjZGVmaW5lIE1YQ19DQ01fQkFTRQkJSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKQorCisvKiBSZWdpc3RlciBhZGRyZXNzZXMgKi8KKyNkZWZpbmUgTVhDX0NDTV9DQ01SCQkoTVhDX0NDTV9CQVNFICsgMHgwMCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwCQkoTVhDX0NDTV9CQVNFICsgMHgwNCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxCQkoTVhDX0NDTV9CQVNFICsgMHgwOCkKKyNkZWZpbmUgTVhDX0NDTV9SQ1NSCQkoTVhDX0NDTV9CQVNFICsgMHgwQykKKyNkZWZpbmUgTVhDX0NDTV9NUENUTAkJKE1YQ19DQ01fQkFTRSArIDB4MTApCisjZGVmaW5lIE1YQ19DQ01fVVBDVEwJCShNWENfQ0NNX0JBU0UgKyAweDE0KQorI2RlZmluZSBNWENfQ0NNX1NSUENUTAkJKE1YQ19DQ01fQkFTRSArIDB4MTgpCisjZGVmaW5lIE1YQ19DQ01fQ09TUgkJKE1YQ19DQ01fQkFTRSArIDB4MUMpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMAkJKE1YQ19DQ01fQkFTRSArIDB4MjApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMQkJKE1YQ19DQ01fQkFTRSArIDB4MjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMgkJKE1YQ19DQ01fQkFTRSArIDB4MjgpCisjZGVmaW5lIE1YQ19DQ01fV0lNUgkJKE1YQ19DQ01fQkFTRSArIDB4MkMpCisjZGVmaW5lIE1YQ19DQ01fTERDCQkoTVhDX0NDTV9CQVNFICsgMHgzMCkKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSMAkJKE1YQ19DQ01fQkFTRSArIDB4MzQpCisjZGVmaW5lIE1YQ19DQ01fRENWUjEJCShNWENfQ0NNX0JBU0UgKyAweDM4KQorI2RlZmluZSBNWENfQ0NNX0RDVlIyCQkoTVhDX0NDTV9CQVNFICsgMHgzQykKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSMwkJKE1YQ19DQ01fQkFTRSArIDB4NDApCisjZGVmaW5lIE1YQ19DQ01fTFRSMAkJKE1YQ19DQ01fQkFTRSArIDB4NDQpCisjZGVmaW5lIE1YQ19DQ01fTFRSMQkJKE1YQ19DQ01fQkFTRSArIDB4NDgpCisjZGVmaW5lIE1YQ19DQ01fTFRSMgkJKE1YQ19DQ01fQkFTRSArIDB4NEMpCisjZGVmaW5lIE1YQ19DQ01fTFRSMwkJKE1YQ19DQ01fQkFTRSArIDB4NTApCisjZGVmaW5lIE1YQ19DQ01fTFRCUjAJCShNWENfQ0NNX0JBU0UgKyAweDU0KQorI2RlZmluZSBNWENfQ0NNX0xUQlIxCQkoTVhDX0NDTV9CQVNFICsgMHg1OCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMAkJKE1YQ19DQ01fQkFTRSArIDB4NUMpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjEJCShNWENfQ0NNX0JBU0UgKyAweDYwKQorI2RlZmluZSBNWENfQ0NNX1BEUjIJCShNWENfQ0NNX0JBU0UgKyAweDY0KQorCisvKiBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1dCRU4gICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfQ1NDUyAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QRVJDUyAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NTSTFTX09GRlNFVCAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9TU0kxU19NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfU1NJMlNfT0ZGU0VUICAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NTSTJTX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjEpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9MUE1fT0ZGU0VUICAgICAgICAgICAgICAgICAxNAorI2RlZmluZSBNWENfQ0NNX0NDTVJfTFBNX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX0ZJUlNfT0ZGU0VUICAgICAgICAgICAgICAgIDExCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9GSVJTX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDExKQorI2RlZmluZSBNWENfQ0NNX0NDTVJfVVBFICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NQRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9NRFMgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfU0JZQ1MgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX01QRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QUkNTX09GRlNFVCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QUkNTX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDEpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0NTSV9QT0RGX09GRlNFVCAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHgzRiA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVCAgICAgICAgICAgIDIzCisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUFJERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDIzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfUEVSX1BPREZfT0ZGU0VUICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX1BFUl9QT0RGX01BU0sgICAgICAgICAgICAgICgweDFGIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX1BPREZfT0ZGU0VUICAgICAgICAgICAgMTEKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9QT0RGX01BU0sgICAgICAgICAgICAgICgweDcgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfUE9ERl9PRkZTRVQgICAgICAgICAgICA4CisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfUE9ERl9PRkZTRVQgICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHgzIDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9PRkZTRVQgICAgICAgICAgICAzCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDMpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfUE9ERl9PRkZTRVQgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfUE9ERl9NQVNLICAgICAgICAgICAgICAweDcKKworI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl8xICAgICAgICAgICAgICAgICAgKDB4MCA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfMiAgICAgICAgICAgICAgICAgICgweDEgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzMgICAgICAgICAgICAgICAgICAoMHgyIDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl80ICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfNSAgICAgICAgICAgICAgICAgICgweDQgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzYgICAgICAgICAgICAgICAgICAoMHg1IDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl83ICAgICAgICAgICAgICAgICAgKDB4NiA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfOCAgICAgICAgICAgICAgICAgICgweDcgPDwgMTEpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMSAgICAgICAgICAgICAgICAgICgweDAgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMiAgICAgICAgICAgICAgICAgICgweDEgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMyAgICAgICAgICAgICAgICAgICgweDIgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfNCAgICAgICAgICAgICAgICAgICgweDMgPDwgNikKKworI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8xICAgICAgICAgICAgICAgICAgKDB4MCA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8yICAgICAgICAgICAgICAgICAgKDB4MSA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8zICAgICAgICAgICAgICAgICAgKDB4MiA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl80ICAgICAgICAgICAgICAgICAgKDB4MyA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl81ICAgICAgICAgICAgICAgICAgKDB4NCA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl82ICAgICAgICAgICAgICAgICAgKDB4NSA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl83ICAgICAgICAgICAgICAgICAgKDB4NiA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl84ICAgICAgICAgICAgICAgICAgKDB4NyA8PCAzKQorCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzEgICAgICAgICAgICAgICAgICAoMHgwIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzIgICAgICAgICAgICAgICAgICAoMHgxIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzMgICAgICAgICAgICAgICAgICAoMHgyIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzQgICAgICAgICAgICAgICAgICAoMHgzIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzUgICAgICAgICAgICAgICAgICAoMHg0IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzYgICAgICAgICAgICAgICAgICAoMHg1IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzcgICAgICAgICAgICAgICAgICAoMHg2IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzggICAgICAgICAgICAgICAgICAoMHg3IDw8IDgpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfMSAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl8yICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzMgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfNCAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl81ICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzYgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfNyAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl84ICAgICAgICAgICAgICAgICAgMHg3CisKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1VTQl9QUkRGX09GRlNFVCAgICAgICAgICAgIDMwCisjZGVmaW5lIE1YQ19DQ01fUERSMV9VU0JfUFJERl9NQVNLICAgICAgICAgICAgICAoMHgzIDw8IDMwKQorI2RlZmluZSBNWENfQ0NNX1BEUjFfVVNCX1BPREZfT0ZGU0VUICAgICAgICAgICAgMjcKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1VTQl9QT0RGX01BU0sgICAgICAgICAgICAgICgweDcgPDwgMjcpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX09GRlNFVCAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9NQVNLICAgICAgICAgKDB4NyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX0ZJUklfUE9ERl9PRkZTRVQgICAgICAgICAgIDE4CisjZGVmaW5lIE1YQ19DQ01fUERSMV9GSVJJX1BPREZfTUFTSyAgICAgICAgICAgICAoMHgzRiA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTJfUFJFX1BPREZfT0ZGU0VUICAgICAgIDE1CisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kyX1BSRV9QT0RGX01BU0sgICAgICAgICAoMHg3IDw8IDE1KQorI2RlZmluZSBNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX09GRlNFVCAgICAgICAgICAgOQorI2RlZmluZSBNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX01BU0sgICAgICAgICAgICAgKDB4M0YgPDwgOSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUFJFX1BPREZfT0ZGU0VUICAgICAgIDYKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUFJFX1BPREZfTUFTSyAgICAgICAgICgweDcgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9PRkZTRVQgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9NQVNLICAgICAgICAgICAgIDB4M0YKKworLyogQml0IGRlZmluaXRpb25zIGZvciBSQ1NSICovCisjZGVmaW5lIE1YQ19DQ01fUkNTUl9ORjE2QgkJCTB4ODAwMDAwMDAKKworLyogQml0IGRlZmluaXRpb25zIGZvciBib3RoIE1DVSwgVVNCIGFuZCBTUiBQTEwgY29udHJvbCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX0JSTSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX1BEX09GRlNFVCAgICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fUENUTF9QRF9NQVNLICAgICAgICAgICAgICAgICAgICAoMHhGIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZEX09GRlNFVCAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GRF9NQVNLICAgICAgICAgICAgICAgICAgICgweDNGRiA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GSV9PRkZTRVQgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1YQ19DQ01fUENUTF9NRklfTUFTSyAgICAgICAgICAgICAgICAgICAoMHhGIDw8IDEwKQorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZOX09GRlNFVCAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZOX01BU0sgICAgICAgICAgICAgICAgICAgMHgzRkYKKworI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9PRkZTRVQgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9NQVNLICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMl9PRkZTRVQgICAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMl9NQVNLICAgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfR1BUX09GRlNFVCAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjBfR1BUX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDFfT0ZGU0VUICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDFfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDJfT0ZGU0VUICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDJfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfSUlNX09GRlNFVCAgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0lJTV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9BVEFfT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjBfQVRBX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NETUFfT0ZGU0VUICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9TRE1BX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfQ1NQSTNfT0ZGU0VUICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0NTUEkzX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9STkdfT0ZGU0VUICAgICAgICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX0NHUjBfUk5HX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1VBUlQxX09GRlNFVCAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9VQVJUMV9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfVUFSVDJfT0ZGU0VUICAgICAgICAgICAgICAgMjIKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1VBUlQyX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9TU0kxX09GRlNFVCAgICAgICAgICAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX0NHUjBfU1NJMV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzFfT0ZGU0VUICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMxX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDMl9PRkZTRVQgICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzJfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMzX09GRlNFVCAgICAgICAgICAgICAgICAzMAorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDM19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKworI2RlZmluZSBNWENfQ0NNX0NHUjFfSEFOVFJPX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjFfSEFOVFJPX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX09GRlNFVCAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX01BU0sgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX09GRlNFVCAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX01BU0sgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfQ1NJX09GRlNFVCAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjFfQ1NJX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfUlRDX09GRlNFVCAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjFfUlRDX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfV0RPR19PRkZTRVQgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1dET0dfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9QV01fT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjFfUFdNX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1NJTV9PRkZTRVQgICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9TSU1fTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfRUNUX09GRlNFVCAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0VDVF9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VU0JPVEdfT0ZGU0VUICAgICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX0NHUjFfVVNCT1RHX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0tQUF9PRkZTRVQgICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9LUFBfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfSVBVX09GRlNFVCAgICAgICAgICAgICAgICAgMjIKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0lQVV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUM19PRkZTRVQgICAgICAgICAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDNfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQ0X09GRlNFVCAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUNF9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDVfT0ZGU0VUICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQ1X01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9PV0lSRV9PRkZTRVQgICAgICAgICAgICAgICAzMAorI2RlZmluZSBNWENfQ0NNX0NHUjFfT1dJUkVfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKworI2RlZmluZSBNWENfQ0NNX0NHUjJfU1NJMl9PRkZTRVQgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjJfU1NJMl9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTFfT0ZGU0VUICAgICAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTFfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTJfT0ZGU0VUICAgICAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTJfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfR0FDQ19PRkZTRVQgICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjJfR0FDQ19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfRU1JX09GRlNFVCAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjJfRU1JX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfUlRJQ19PRkZTRVQgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX1JUSUNfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9GSVJJX09GRlNFVCAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjJfRklSSV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0lQTVVYMV9PRkZTRVQgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9JUE1VWDFfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfSVBNVVgyX09GRlNFVCAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0lQTVVYMl9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisKKy8qIFRoZXNlIG5ldyBDR1IyIGJpdHMgYXJlIGFkZGVkIGluIE1YMzIgKi8KKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNZU0NMS1NFTF9PRkZTRVQJMTgKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNZU0NMS1NFTF9NQVNLCQkoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNU1NJQ0xLU0VMX09GRlNFVAkyMAorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNU1NJQ0xLU0VMX01BU0sJCSgweDMgPDwgMjApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1QRVJDTEtTRUxfT0ZGU0VUCTIyCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1QRVJDTEtTRUxfTUFTSwkJKDB4MyA8PCAyMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX09GRlNFVAkJMjQKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX01BU0sJCSgweDEgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9DSElLQ0FNUEVOX09GRlNFVAkJMjUKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NISUtDQU1QRU5fTUFTSwkJKDB4MSA8PCAyNSkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX09WUlZQVUJVU1lfT0ZGU0VUCQkyNgorI2RlZmluZSBNWENfQ0NNX0NHUjJfT1ZSVlBVQlVTWV9NQVNLCQkoMHgxIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNRU5BX09GRlNFVAkJMzAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FPTUVOQV9NQVNLCQkoMHgxIDw8IDMwKQorCisvKgorICogTFRSMCByZWdpc3RlciBvZmZzZXRzCisgKi8KKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0RJVjNDS19PRkZTRVQgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0RJVjNDS19NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMSkKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0ROVEhSX09GRlNFVCAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fTFRSMF9ETlRIUl9NQVNLICAgICAgICAgICAgICAgICAoMHgzRiA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX1VQVEhSX09GRlNFVCAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9VUFRIUl9NQVNLICAgICAgICAgICAgICAgICAoMHgzRiA8PCAyMikKKworLyoKKyAqIExUUjEgcmVnaXN0ZXIgb2Zmc2V0cworICovCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9QTkNUSFJfT0ZGU0VUICAgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9QTkNUSFJfTUFTSyAgICAgICAgICAgICAgICAweDNGCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9VUENOVF9PRkZTRVQgICAgICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fTFRSMV9VUENOVF9NQVNLICAgICAgICAgICAgICAgICAoMHhGRiA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0xUUjFfRE5DTlRfT0ZGU0VUICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0ROQ05UX01BU0sgICAgICAgICAgICAgICAgICgweEZGIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0xUUjFfTFRCUlNSX01BU0sgICAgICAgICAgICAgICAgMHg0MDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0xUQlJTUl9PRkZTRVQgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9MVEJSU1IgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMAorI2RlZmluZSBNWENfQ0NNX0xUUjFfTFRCUlNIICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAKKworLyoKKyAqIExUUjIgYml0IGRlZmluaXRpb25zLiB4IHJhbmdlcyBmcm9tIDAgZm9yIFdTVzkgdG8gNiBmb3IgV1NXMTUKKyAqLworI2RlZmluZSBNWENfQ0NNX0xUUjJfV1NXX09GRlNFVCh4KSAgICAgICAgICAgICAgKDExICsgKHgpICogMykKKyNkZWZpbmUgTVhDX0NDTV9MVFIyX1dTV19NQVNLKHgpICAgICAgICAgICAgICAgICgweDcgPDwgXAorCQkJCQlNWENfQ0NNX0xUUjJfV1NXX09GRlNFVCgoeCkpKQorI2RlZmluZSBNWENfQ0NNX0xUUjJfRU1BQ19PRkZTRVQgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0xUUjJfRU1BQ19NQVNLICAgICAgICAgICAgICAgICAgMHgxRkYKKworLyoKKyAqIExUUjMgYml0IGRlZmluaXRpb25zLiB4IHJhbmdlcyBmcm9tIDAgZm9yIFdTVzAgdG8gOCBmb3IgV1NXOAorICovCisjZGVmaW5lIE1YQ19DQ01fTFRSM19XU1dfT0ZGU0VUKHgpICAgICAgICAgICAgICAoNSArICh4KSAqIDMpCisjZGVmaW5lIE1YQ19DQ01fTFRSM19XU1dfTUFTSyh4KSAgICAgICAgICAgICAgICAoMHg3IDw8IFwKKwkJCQkJTVhDX0NDTV9MVFIzX1dTV19PRkZTRVQoKHgpKSkKKworI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMSAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMV9TUExMICAgICAgICAgICAgICAgKDAgPDwgMzEpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVAxX01QTEwgICAgICAgICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDBfUExMICAgICAgICAgICAgICAgICgwIDw8IDMwKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMF9QRFIgICAgICAgICAgICAgICAgKDEgPDwgMzApCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVBfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDMwKQorCisjZGVmaW5lIERWU1VQX1RVUkJPCQkJCTAKKyNkZWZpbmUgRFZTVVBfSElHSAkJCQkxCisjZGVmaW5lIERWU1VQX01FRElVTQkJCQkyCisjZGVmaW5lIERWU1VQX0xPVwkJCQkzCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfVFVSQk8gICAgICAgICAgICAgICAoRFZTVVBfVFVSQk8gPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfSElHSCAgICAgICAgICAgICAgICAoRFZTVVBfSElHSCA8PCAyOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9EVlNVUF9NRURJVU0gICAgICAgICAgICAgIChEVlNVUF9NRURJVU0gPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfTE9XICAgICAgICAgICAgICAgICAoRFZTVVBfTE9XIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWU1VQX09GRlNFVCAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9EVlNVUF9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVURTQyAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVURTQ19NQVNLICAgICAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9VRFNDX1VQICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VEU0NfRE9XTiAgICAgICAgICAgICAgICAgKDAgPDwgMjcpCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF8xICAgICAgICAgICAgICAgICAgICgweDAgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfMiAgICAgICAgICAgICAgICAgICAoMHgxIDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzMgICAgICAgICAgICAgICAgICAgKDB4MiA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF80ICAgICAgICAgICAgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfNSAgICAgICAgICAgICAgICAgICAoMHg0IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzYgICAgICAgICAgICAgICAgICAgKDB4NSA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF83ICAgICAgICAgICAgICAgICAgICgweDYgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfOCAgICAgICAgICAgICAgICAgICAoMHg3IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UX09GRlNFVCAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF9NQVNLICAgICAgICAgICAgICAgICgweDcgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGRVYgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGSVMgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJNSSAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJGTCAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl80ICAgICAgICAgICAgICAgICAgICAoMHgwIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfOCAgICAgICAgICAgICAgICAgICAgKDB4MSA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGXzEyICAgICAgICAgICAgICAgICAgICgweDIgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl8xNiAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfT0ZGU0VUICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWSVMgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVVBEVEVOICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVVBEVEVOX01BU0sgICAgICAgICAgICAgICAoMHgxIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0ZTVkFJTSAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0ZTVkFJX09GRlNFVCAgICAgICAgICAgICAgMTMKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9GU1ZBSV9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMTMpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBWQ1IgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBWViAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfV0ZJTSAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTMgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTEgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRENSICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGRU4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlNICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlfT0ZGU0VUICAgICAgICAgICAgICAxCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDEpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBURU4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9EVkdQX09GRlNFVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9EVkdQX01BU0sgICAgICAgICAgICAgICAgICgweEYpCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9QTExSRElTICAgICAgICAgICAgICAgICAgICAgICgweDEgPDwgNykKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9FTUlSUV9FTiAgICAgICAgICAgICAgICAgICAgICAoMHgxIDw8IDgpCisKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSX1VMVl9NQVNLICAgICAgICAgICAgICAgICAgICgweDNGRiA8PCAyMikKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSX1VMVl9PRkZTRVQgICAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fRENWUl9MTFZfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzRkYgPDwgMTIpCisjZGVmaW5lIE1YQ19DQ01fRENWUl9MTFZfT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0RDVlJfRUxWX01BU0sgICAgICAgICAgICAgICAgICAgKDB4M0ZGIDw8IDIpCisjZGVmaW5lIE1YQ19DQ01fRENWUl9FTFZfT0ZGU0VUICAgICAgICAgICAgICAgICAyCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIyX01TVDJfUERGX01BU0sgICAgICAgICAgICAgICgweDNGIDw8IDcpCisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QyX1BERl9PRkZTRVQgICAgICAgICAgICA3CisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QxX1BERl9NQVNLICAgICAgICAgICAgICAweDNGCisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QxX1BERl9PRkZTRVQgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MEYKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLICAgICAgICAgICAgICgweDA3IDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfT0ZGU0VUICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPRU4gICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQorCisvKgorICogUE1DUjAgcmVnaXN0ZXIgb2Zmc2V0cworICovCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJGTF9PRkZTRVQgICAyMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMF9PRkZTRVQgMzAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDFfT0ZGU0VUIDMxCisKKyNlbmRpZgkJCQkvKiBfX0FSQ0hfQVJNX01BQ0hfTVgzX0NSTV9SRUdTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1teDMvZGV2aWNlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjMDMyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9kZXZpY2VzLmMKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBTYXNjaGEgSGF1ZXIsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDBbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQxX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQxX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDEsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQxLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMCA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMCwKKwkucmVzb3VyY2UgPSB1YXJ0MCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDApLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MVtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDJfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDJfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMiwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDIsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UxID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAxLAorCS5yZXNvdXJjZSA9IHVhcnQxLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MSksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQyW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUM19CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUM19CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQzLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTIgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDIsCisJLnJlc291cmNlID0gdWFydDIsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQyKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDNbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ0X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ0X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDQsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ0LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMyA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMywKKwkucmVzb3VyY2UgPSB1YXJ0MywKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDMpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0NFtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDVfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDVfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUNSwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2U0ID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSA0LAorCS5yZXNvdXJjZSA9IHVhcnQ0LAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0NCksCit9OworCisvKgorICogUmVnaXN0ZXIgb25seSB0aG9zZSBVQVJUcyB0aGF0IHBoeXNpY2FsbHkgZXhpc3QKKyAqLworaW50IF9faW5pdCBpbXhfaW5pdF91YXJ0KGludCB1YXJ0X25vLCBzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhICpwZGF0YSkKK3sKKwlzd2l0Y2ggKHVhcnRfbm8pIHsKKwljYXNlIDA6CisJCW14Y191YXJ0X2RldmljZTAuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UwKTsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQlteGNfdWFydF9kZXZpY2UxLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMSk7CisJCWJyZWFrOworCWNhc2UgMjoKKwkJbXhjX3VhcnRfZGV2aWNlMi5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTIpOworCQlicmVhazsKKwljYXNlIDM6CisJCW14Y191YXJ0X2RldmljZTMuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UzKTsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQlteGNfdWFydF9kZXZpY2U0LmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlNCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJldHVybiAwOworfQorCisvKiBHUElPIHBvcnQgZGVzY3JpcHRpb24gKi8KK3N0YXRpYyBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCBpbXhfZ3Bpb19wb3J0c1tdID0geworCVswXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0wIiwKKwkJLmJhc2UgPSBJT19BRERSRVNTKEdQSU8xX0JBU0VfQUREUiksCisJCS5pcnEgPSBNWENfSU5UX0dQSU8xLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfR1BJT19JTlRfQkFTRQorCX0sCisJWzFdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTEiLAorCQkuYmFzZSA9IElPX0FERFJFU1MoR1BJTzJfQkFTRV9BRERSKSwKKwkJLmlycSA9IE1YQ19JTlRfR1BJTzIsCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19HUElPX0lOVF9CQVNFICsgR1BJT19OVU1fUElOCisJfSwKKwlbMl0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tMiIsCisJCS5iYXNlID0gSU9fQUREUkVTUyhHUElPM19CQVNFX0FERFIpLAorCQkuaXJxID0gTVhDX0lOVF9HUElPMywKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX0dQSU9fSU5UX0JBU0UgKyBHUElPX05VTV9QSU4gKiAyCisJfQorfTsKKworaW50IF9faW5pdCBteGNfcmVnaXN0ZXJfZ3Bpb3Modm9pZCkKK3sKKwlyZXR1cm4gbXhjX2dwaW9faW5pdChpbXhfZ3Bpb19wb3J0cywgQVJSQVlfU0laRShpbXhfZ3Bpb19wb3J0cykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvaW9tdXguYyBiL2FyY2gvYXJtL21hY2gtbXgzL2lvbXV4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRjNTFmZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgzL2lvbXV4LmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggYnkgU2FzY2hhIEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14My5oPgorCisvKgorICogSU9NVVggcmVnaXN0ZXIgKGJhc2UpIGFkZHJlc3NlcworICovCisjZGVmaW5lIElPTVVYX0JBU0UJSU9fQUREUkVTUyhJT01VWENfQkFTRV9BRERSKQorI2RlZmluZSBJT01VWElOVF9PQlMxCShJT01VWF9CQVNFICsgMHgwMDApCisjZGVmaW5lIElPTVVYSU5UX09CUzIJKElPTVVYX0JBU0UgKyAweDAwNCkKKyNkZWZpbmUgSU9NVVhHUFIJKElPTVVYX0JBU0UgKyAweDAwOCkKKyNkZWZpbmUgSU9NVVhTV19NVVhfQ1RMCShJT01VWF9CQVNFICsgMHgwMEMpCisjZGVmaW5lIElPTVVYU1dfUEFEX0NUTAkoSU9NVVhfQkFTRSArIDB4MTU0KQorCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGdwaW9fbXV4X2xvY2spOworCisjZGVmaW5lIElPTVVYX1JFR19NQVNLIChJT01VWF9QQUROVU1fTUFTSyAmIH4weDMpCisvKgorICogc2V0IHRoZSBtb2RlIGZvciBhIElPTVVYIHBpbi4KKyAqLworaW50IG14Y19pb211eF9tb2RlKHVuc2lnbmVkIGludCBwaW5fbW9kZSkKK3sKKwl1MzIgcmVnLCBmaWVsZCwgbCwgbW9kZSwgcmV0ID0gMDsKKworCXJlZyA9IElPTVVYU1dfTVVYX0NUTCArIChwaW5fbW9kZSAmIElPTVVYX1JFR19NQVNLKTsKKwlmaWVsZCA9IHBpbl9tb2RlICYgMHgzOworCW1vZGUgPSAocGluX21vZGUgJiBJT01VWF9NT0RFX01BU0spID4+IElPTVVYX01PREVfU0hJRlQ7CisKKwlwcl9kZWJ1ZygiJXM6IHJlZyBvZmZzZXQgPSAweCV4IGZpZWxkID0gJWQgbW9kZSA9IDB4JTAyeFxuIiwKKwkJCV9fZnVuY19fLCAocGluX21vZGUgJiBJT01VWF9SRUdfTUFTSyksIGZpZWxkLCBtb2RlKTsKKworCXNwaW5fbG9jaygmZ3Bpb19tdXhfbG9jayk7CisKKwlsID0gX19yYXdfcmVhZGwocmVnKTsKKwlsICY9IH4oMHhmZiA8PCAoZmllbGQgKiA4KSk7CisJbCB8PSBtb2RlIDw8IChmaWVsZCAqIDgpOworCV9fcmF3X3dyaXRlbChsLCByZWcpOworCisJc3Bpbl91bmxvY2soJmdwaW9fbXV4X2xvY2spOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2lvbXV4X21vZGUpOworCisvKgorICogVGhpcyBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSBwYWQgdmFsdWUgZm9yIGEgSU9NVVggcGluLgorICovCit2b2lkIG14Y19pb211eF9zZXRfcGFkKGVudW0gaW9tdXhfcGlucyBwaW4sIHUzMiBjb25maWcpCit7CisJdTMyIHJlZywgZmllbGQsIGw7CisKKwlyZWcgPSBJT01VWFNXX1BBRF9DVEwgKyAocGluICsgMikgLyAzOworCWZpZWxkID0gKHBpbiArIDIpICUgMzsKKworCXByX2RlYnVnKCIlczogcmVnIG9mZnNldCA9IDB4JXggZmllbGQgPSAlZFxuIiwKKwkJCV9fZnVuY19fLCAocGluICsgMikgLyAzLCBmaWVsZCk7CisKKwlzcGluX2xvY2soJmdwaW9fbXV4X2xvY2spOworCisJbCA9IF9fcmF3X3JlYWRsKHJlZyk7CisJbCAmPSB+KDB4MWZmIDw8IChmaWVsZCAqIDkpKTsKKwlsIHw9IGNvbmZpZyA8PCAoZmllbGQgKiA5KTsKKwlfX3Jhd193cml0ZWwobCwgcmVnKTsKKworCXNwaW5fdW5sb2NrKCZncGlvX211eF9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2lvbXV4X3NldF9wYWQpOworCisvKgorICogVGhpcyBmdW5jdGlvbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBnZW5lcmFsIHB1cnBvc2UgZnVuY3Rpb24gZm9yIGEgcGFydGljdWxhcgorICogc2lnbmFsLgorICovCit2b2lkIG14Y19pb211eF9zZXRfZ3ByKGVudW0gaW9tdXhfZ3BfZnVuYyBncCwgYm9vbCBlbikKK3sKKwl1MzIgbDsKKworCXNwaW5fbG9jaygmZ3Bpb19tdXhfbG9jayk7CisJbCA9IF9fcmF3X3JlYWRsKElPTVVYR1BSKTsKKwlpZiAoZW4pCisJCWwgfD0gZ3A7CisJZWxzZQorCQlsICY9IH5ncDsKKworCV9fcmF3X3dyaXRlbChsLCBJT01VWEdQUik7CisJc3Bpbl91bmxvY2soJmdwaW9fbXV4X2xvY2spOworfQorRVhQT1JUX1NZTUJPTChteGNfaW9tdXhfc2V0X2dwcik7CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL214MzFhZHMuYyBiL2FyY2gvYXJtL21hY2gtbXgzL214MzFhZHMuYwppbmRleCA3ZTg5YmRjLi5lYmEzZTBjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9teDMxYWRzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvbXgzMWFkcy5jCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KICNpbmNsdWRlIDxhc20vbWVtb3J5Lmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtbXgzMWFkcy5oPgogCiAvKiEKICAqIEBmaWxlIG14MzFhZHMuYwpAQCAtMTI2LDYgKzEyOCwxNiBAQAogCW14Y19pbml0X2V4dHVhcnQoKTsKIH0KIAorc3RhdGljIHZvaWQgX19pbml0IG14MzFhZHNfdGltZXJfaW5pdCh2b2lkKQoreworCW14Y19jbG9ja3NfaW5pdCgyNjAwMDAwMCk7CisJbXhjX3RpbWVyX2luaXQoImlwZ19jbGsuMCIpOworfQorCitzdHJ1Y3Qgc3lzX3RpbWVyIG14MzFhZHNfdGltZXIgPSB7CisJLmluaXQJPSBteDMxYWRzX3RpbWVyX2luaXQsCit9OworCiAvKgogICogVGhlIGZvbGxvd2luZyB1c2VzIHN0YW5kYXJkIGtlcm5lbCBtYWNyb3MgZGVmaW5lZCBpbiBhcmNoLmggaW4gb3JkZXIgdG8KICAqIGluaXRpYWxpemUgX19tYWNoX2Rlc2NfTVgzMUFEUyBkYXRhIHN0cnVjdHVyZS4KQEAgLTEzOCw1ICsxNTAsNSBAQAogCS5tYXBfaW8gICAgICAgICA9IG14MzFhZHNfbWFwX2lvLAogCS5pbml0X2lycSAgICAgICA9IG14Y19pbml0X2lycSwKIAkuaW5pdF9tYWNoaW5lICAgPSBteGNfYm9hcmRfaW5pdCwKLQkudGltZXIgICAgICAgICAgPSAmbXhjX3RpbWVyLAorCS50aW1lciAgICAgICAgICA9ICZteDMxYWRzX3RpbWVyLAogTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL214MzFsaXRlLmMgYi9hcmNoL2FybS9tYWNoLW14My9teDMxbGl0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNzJjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9teDMxbGl0ZS5jCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwMCBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZAorICogIENvcHlyaWdodCAoQykgMjAwMiBTaGFuZSBOYXkgKHNoYW5lQG1pbmlybC5jb20pCisgKiAgQ29weXJpZ2h0IDIwMDUtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxbGl0ZS5oPgorCisvKgorICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBib2FyZC1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiByb3V0aW5lcy4KKyAqLworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyB0aGUgTVgzMSBtZW1vcnkgbWFwLgorICovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG14MzFsaXRlX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwgPSBBSVBTMV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQUlQUzFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IEFJUFMxX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBTUEJBMF9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oU1BCQTBfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFNQQkEwX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBBSVBTMl9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQUlQUzJfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IEFJUFMyX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBDUzRfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKENTNF9CQVNFX0FERFIpLAorCQkubGVuZ3RoID0gQ1M0X1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfQorfTsKKworLyoKKyAqIFNldCB1cCBzdGF0aWMgdmlydHVhbCBtYXBwaW5ncy4KKyAqLwordm9pZCBfX2luaXQgbXgzMWxpdGVfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChteDMxbGl0ZV9pb19kZXNjLCBBUlJBWV9TSVpFKG14MzFsaXRlX2lvX2Rlc2MpKTsKK30KKworLyoKKyAqIEJvYXJkIHNwZWNpZmljIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgbXhjX2JvYXJkX2luaXQodm9pZCkKK3sKK30KKworc3RhdGljIHZvaWQgX19pbml0IG14MzFsaXRlX3RpbWVyX2luaXQodm9pZCkKK3sKKwlteGNfY2xvY2tzX2luaXQoMjYwMDAwMDApOworCW14Y190aW1lcl9pbml0KCJpcGdfY2xrLjAiKTsKK30KKworc3RydWN0IHN5c190aW1lciBteDMxbGl0ZV90aW1lciA9IHsKKwkuaW5pdAk9IG14MzFsaXRlX3RpbWVyX2luaXQsCit9OworCisvKgorICogVGhlIGZvbGxvd2luZyB1c2VzIHN0YW5kYXJkIGtlcm5lbCBtYWNyb3MgZGVmaW5lZCBpbiBhcmNoLmggaW4gb3JkZXIgdG8KKyAqIGluaXRpYWxpemUgX19tYWNoX2Rlc2NfTVgzMUxJVEUgZGF0YSBzdHJ1Y3R1cmUuCisgKi8KKworTUFDSElORV9TVEFSVChNWDMxTElURSwgIkxvZ2ljUEQgTVgzMSBMSVRFS0lUIikKKwkvKiBNYWludGFpbmVyOiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiAqLworCS5waHlzX2lvICAgICAgICA9IEFJUFMxX0JBU0VfQUREUiwKKwkuaW9fcGdfb2Zmc3QgICAgPSAoKEFJUFMxX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBteDMxbGl0ZV9tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IG14Y19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZteDMxbGl0ZV90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9wY20wMzcuYyBiL2FyY2gvYXJtL21hY2gtbXgzL3BjbTAzNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNGFlNmQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9wY20wMzcuYwpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L21lbW9yeS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW9tdXgtbXgzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtcGNtMDM3Lmg+CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHBjbTAzN19mbGFzaF9kYXRhID0geworCS53aWR0aCAgPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBwY20wMzdfZmxhc2hfcmVzb3VyY2UgPSB7CisJLnN0YXJ0CT0gMHhhMDAwMDAwMCwKKwkuZW5kCT0gMHhhMWZmZmZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBjbTAzN19mbGFzaCA9IHsKKwkubmFtZQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJPSAwLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhICA9ICZwY20wMzdfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZSA9ICZwY20wMzdfZmxhc2hfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMgPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgdWFydF9wZGF0YSA9IHsKKwkuZmxhZ3MgPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZXNbXSBfX2luaXRkYXRhID0geworCSZwY20wMzdfZmxhc2gsCit9OworCisvKgorICogQm9hcmQgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBteGNfYm9hcmRfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGRldmljZXMsIEFSUkFZX1NJWkUoZGV2aWNlcykpOworCisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fQ1RTMV9fQ1RTMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fUlRTMV9fUlRTMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fVFhEMV9fVFhEMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fUlhEMV9fUlhEMSk7CisKKwlpbXhfaW5pdF91YXJ0KDAsICZ1YXJ0X3BkYXRhKTsKKworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX0NTUEkzX01PU0lfX1JYRDMpOworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX0NTUEkzX01JU09fX1RYRDMpOworCisJaW14X2luaXRfdWFydCgyLCAmdWFydF9wZGF0YSk7Cit9CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBkZWZpbmVzIHN0YXRpYyBtYXBwaW5ncyBmb3IgdGhlIHBjbTAzNyBib2FyZC4KKyAqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBwY20wMzdfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEFJUFMxX0JBU0VfQUREUl9WSVJULAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oQUlQUzFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aAkJPSBBSVBTMV9TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UKKwl9LCB7CisJCS52aXJ0dWFsCT0gQUlQUzJfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBSVBTMl9CQVNFX0FERFIpLAorCQkubGVuZ3RoCQk9IEFJUFMyX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRQorCX0sCit9OworCisvKgorICogU2V0IHVwIHN0YXRpYyB2aXJ0dWFsIG1hcHBpbmdzLgorICovCit2b2lkIF9faW5pdCBwY20wMzdfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChwY20wMzdfaW9fZGVzYywgQVJSQVlfU0laRShwY20wMzdfaW9fZGVzYykpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgcGNtMDM3X3RpbWVyX2luaXQodm9pZCkKK3sKKwlteGNfY2xvY2tzX2luaXQoMjYwMDAwMDApOworCW14Y190aW1lcl9pbml0KCJpcGdfY2xrLjAiKTsKK30KKworc3RydWN0IHN5c190aW1lciBwY20wMzdfdGltZXIgPSB7CisJLmluaXQJPSBwY20wMzdfdGltZXJfaW5pdCwKK307CisKK01BQ0hJTkVfU1RBUlQoUENNMDM3LCAiUGh5dGVjIFBoeWNvcmUgcGNtMDM3IikKKwkvKiBNYWludGFpbmVyOiBQZW5ndXRyb25peCAqLworCS5waHlzX2lvCT0gQUlQUzFfQkFTRV9BRERSLAorCS5pb19wZ19vZmZzdAk9ICgoQUlQUzFfQkFTRV9BRERSX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMgICAgPSBQSFlTX09GRlNFVCArIDB4MTAwLAorCS5tYXBfaW8gICAgICAgICA9IHBjbTAzN19tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IG14Y19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZwY20wMzdfdGltZXIsCitNQUNISU5FX0VORAorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My90aW1lLmMgYi9hcmNoL2FybS9tYWNoLW14My90aW1lLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNTY1YzkuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1teDMvdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLS8qCi0gKiBTeXN0ZW0gVGltZXIgSW50ZXJydXB0IHJlY29uZmlndXJlZCB0byBydW4gaW4gZnJlZS1ydW4gbW9kZS4KLSAqIEF1dGhvcjogVml0YWx5IFdvb2wKLSAqIENvcHlyaWdodCAyMDA0IE1vbnRhVmlzdGEgU29mdHdhcmUgSW5jLgotICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICovCi0KLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLS8qIQotICogQGZpbGUgdGltZS5jCi0gKiBAYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIE9TIHRpY2sgYW5kIHdkb2cgdGltZXIgaW1wbGVtZW50YXRpb25zLgotICoKLSAqIFRoaXMgZmlsZSBjb250YWlucyBPUyB0aWNrIGFuZCB3ZG9nIHRpbWVyIGltcGxlbWVudGF0aW9ucy4KLSAqCi0gKiBAaW5ncm91cCBUaW1lcnMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KLQotLyohCi0gKiBUaGlzIGlzIHRoZSB0aW1lciBpbnRlcnJ1cHQgc2VydmljZSByb3V0aW5lIHRvIGRvIHJlcXVpcmVkIHRhc2tzLgotICogSXQgYWxzbyBzZXJ2aWNlcyB0aGUgV0RPRyB0aW1lciBhdCB0aGUgZnJlcXVlbmN5IG9mIHR3aWNlIHBlciBXRE9HCi0gKiB0aW1lb3V0IHZhbHVlLiBGb3IgZXhhbXBsZSwgaWYgdGhlIFdET0cncyB0aW1lb3V0IHZhbHVlIGlzIDQgKDIKLSAqIHNlY29uZHMgc2luY2UgdGhlIFdET0cgcnVucyBhdCAwLjVIeiksIGl0IHdpbGwgYmUgc2VydmljZWQgb25jZQotICogZXZlcnkgMi8yPTEgc2Vjb25kLgotICoKLSAqIEBwYXJhbSAgaXJxICAgICAgICAgIEdQVCBpbnRlcnJ1cHQgc291cmNlIG51bWJlciAobm90IHVzZWQpCi0gKiBAcGFyYW0gIGRldl9pZCAgICAgICB0aGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZAotICogQHJldHVybiBhbHdheXMgcmV0dXJucyBcYiBJUlFfSEFORExFRCBhcyBkZWZpbmVkIGluCi0gKiAgICAgICAgIGluY2x1ZGUvbGludXgvaW50ZXJydXB0LmguCi0gKi8KLXN0YXRpYyBpcnFyZXR1cm5fdCBteGNfdGltZXJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgbmV4dF9tYXRjaDsKLQotCWlmIChfX3Jhd19yZWFkbChNWENfR1BUX0dQVFNSKSAmIEdQVFNSX09GMSkgewotCQlkbyB7Ci0JCQl0aW1lcl90aWNrKCk7Ci0JCQluZXh0X21hdGNoID0gX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRPQ1IxKSArIExBVENIOwotCQkJX19yYXdfd3JpdGVsKEdQVFNSX09GMSwgTVhDX0dQVF9HUFRTUik7Ci0JCQlfX3Jhd193cml0ZWwobmV4dF9tYXRjaCwgTVhDX0dQVF9HUFRPQ1IxKTsKLQkJfSB3aGlsZSAoKHNpZ25lZCBsb25nKShuZXh0X21hdGNoIC0KLQkJCQkgICAgICAgX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRDTlQpKSA8PSAwKTsKLQl9Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLS8qIQotICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIG9idGFpbiB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25kcyBzaW5jZSB0aGUgbGFzdAotICogdGltZXIgaW50ZXJydXB0LiBOb3RlIHRoYXQgaW50ZXJydXB0cyBpcyBkaXNhYmxlZCBieSBkb19nZXR0aW1lb2ZkYXkoKS4KLSAqCi0gKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRzIHNpbmNlIHRoZSBsYXN0IHRpbWVyIGludGVycnVwdC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbXhjX2dldHRpbWVvZmZzZXQodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHRpY2tzX3RvX21hdGNoLCBlbGFwc2VkLCB1c2VjLCB0aWNrX3VzZWMsIGk7Ci0KLQkvKiBHZXQgdGlja3MgYmVmb3JlIG5leHQgdGltZXIgbWF0Y2ggKi8KLQl0aWNrc190b19tYXRjaCA9Ci0JICAgIF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUT0NSMSkgLSBfX3Jhd19yZWFkbChNWENfR1BUX0dQVENOVCk7Ci0KLQkvKiBXZSBuZWVkIGVsYXBzZWQgdGlja3Mgc2luY2UgbGFzdCBtYXRjaCAqLwotCWVsYXBzZWQgPSBMQVRDSCAtIHRpY2tzX3RvX21hdGNoOwotCi0JLyogTm93IGNvbnZlcnQgdGhlbSB0byB1c2VjICovCi0JLyogSW5zdXJlIG5vIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHVzZWMgYmVsb3cgKi8KLQlmb3IgKGkgPSAxLCB0aWNrX3VzZWMgPSB0aWNrX25zZWMgLyAxMDAwOzsgaSAqPSAyKSB7Ci0JCXRpY2tfdXNlYyAvPSBpOwotCQlpZiAoKDB4RkZGRkZGRkYgLyB0aWNrX3VzZWMpID4gZWxhcHNlZCkKLQkJCWJyZWFrOwotCX0KLQl1c2VjID0gKHVuc2lnbmVkIGxvbmcpKGVsYXBzZWQgKiB0aWNrX3VzZWMpIC8gKExBVENIIC8gaSk7Ci0KLQlyZXR1cm4gdXNlYzsKLX0KLQotLyohCi0gKiBUaGUgT1MgdGljayB0aW1lciBpbnRlcnJ1cHQgc3RydWN0dXJlLgotICovCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiB0aW1lcl9pcnEgPSB7Ci0JLm5hbWUgPSAiTVhDIFRpbWVyIFRpY2siLAotCS5mbGFncyA9IElSUUZfRElTQUJMRUQgfCBJUlFGX1RJTUVSLAotCS5oYW5kbGVyID0gbXhjX3RpbWVyX2ludGVycnVwdAotfTsKLQotLyohCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgR1BUIHRvIHByb2R1Y2UgYW4gaW50ZXJydXB0Ci0gKiBiYXNlZCBvbiBIWi4gIEl0IGlzIGNhbGxlZCBieSBzdGFydF9rZXJuZWwoKSBkdXJpbmcgc3lzdGVtIHN0YXJ0dXAuCi0gKi8KLXZvaWQgX19pbml0IG14Y19pbml0X3RpbWUodm9pZCkKLXsKLQl1MzIgcmVnLCB2OwotCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpOwotCXJlZyAmPSB+R1BUQ1JfRU5BQkxFOwotCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19HUFRfR1BUQ1IpOwotCXJlZyB8PSBHUFRDUl9TV1I7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRDUik7Ci0KLQl3aGlsZSAoKF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpICYgR1BUQ1JfU1dSKSAhPSAwKQotCQljcHVfcmVsYXgoKTsKLQotCXJlZyA9IEdQVENSX0ZSUiB8IEdQVENSX0NMS1NSQ19ISUdIRlJFUTsKLQlfX3Jhd193cml0ZWwocmVnLCBNWENfR1BUX0dQVENSKTsKLQotCS8qIFRPRE86IGdldCB0aW1lciByYXRlIGZyb20gY2xrIGRyaXZlciAqLwotCXYgPSA2NjUwMDAwMDsKLQotCV9fcmF3X3dyaXRlbCgodiAvIENMT0NLX1RJQ0tfUkFURSkgLSAxLCBNWENfR1BUX0dQVFBSKTsKLQotCWlmICgodiAlIENMT0NLX1RJQ0tfUkFURSkgIT0gMCkgewotCQlwcl9pbmZvKCJcbldBUk5JTkc6IENhbid0IGdlbmVyYXRlIENMT0NLX1RJQ0tfUkFURSBhdCAlZCBIelxuIiwKLQkJCUNMT0NLX1RJQ0tfUkFURSk7Ci0JfQotCXByX2luZm8oIkFjdHVhbCBDTE9DS19USUNLX1JBVEUgaXMgJWQgSHpcbiIsCi0JCXYgLyAoKF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUUFIpICYgMHhGRkYpICsgMSkpOwotCi0JcmVnID0gX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRDTlQpOwotCXJlZyArPSBMQVRDSDsKLQlfX3Jhd193cml0ZWwocmVnLCBNWENfR1BUX0dQVE9DUjEpOwotCi0Jc2V0dXBfaXJxKE1YQ19JTlRfR1BULCAmdGltZXJfaXJxKTsKLQotCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpOwotCXJlZyA9Ci0JICAgIEdQVENSX0ZSUiB8IEdQVENSX0NMS1NSQ19ISUdIRlJFUSB8IEdQVENSX1NUT1BFTiB8IEdQVENSX0RPWkVOIHwKLQkgICAgR1BUQ1JfV0FJVEVOIHwgR1BUQ1JfRU5NT0QgfCBHUFRDUl9FTkFCTEU7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRDUik7Ci0KLQlfX3Jhd193cml0ZWwoR1BUSVJfT0YxSUUsIE1YQ19HUFRfR1BUSVIpOwotfQotCi1zdHJ1Y3Qgc3lzX3RpbWVyIG14Y190aW1lciA9IHsKLQkuaW5pdCA9IG14Y19pbml0X3RpbWUsCi0JLm9mZnNldCA9IG14Y19nZXR0aW1lb2Zmc2V0LAotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW9tYXAxL01ha2VmaWxlCmluZGV4IGMwNmY1MjUuLjFiZGE4ZjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9NYWtlZmlsZQpAQCAtMyw3ICszLDkgQEAKICMKIAogIyBDb21tb24gc3VwcG9ydAotb2JqLXkgOj0gaW8ubyBpZC5vIGNsb2NrLm8gaXJxLm8gbXV4Lm8gc2VyaWFsLm8gZGV2aWNlcy5vCitvYmoteSA6PSBpby5vIGlkLm8gc3JhbS5vIGNsb2NrLm8gaXJxLm8gbXV4Lm8gc2VyaWFsLm8gZGV2aWNlcy5vCisKK29iai0kKENPTkZJR19PTUFQX01DQlNQKSArPSBtY2JzcC5vCiAKIG9iai0kKENPTkZJR19PTUFQX01QVV9USU1FUikJKz0gdGltZS5vCiBvYmotJChDT05GSUdfT01BUF8zMktfVElNRVIpCSs9IHRpbWVyMzJrLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYwppbmRleCBiY2I5ODRmLi4zZjM5ZTBlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jCkBAIC0xMCw2ICsxMCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgpAQCAtMjAyLDcgKzIwMyw3IEBACiAjZGVmaW5lCUFNUExJRklFUl9DVFJMX0dQSU8JNTgKIAogc3RhdGljIHN0cnVjdCBjbGsgKmRzcHhvcl9jazsKLXN0YXRpYyBERUNMQVJFX01VVEVYKGF1ZGlvX3B3cl9zZW0pOworc3RhdGljIERFRklORV9NVVRFWChhdWRpb19wd3JfbG9jayk7CiAvKgogICogYXVkaW9fcHdyX3N0YXRlCiAgKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yMTgsNyArMjE5LDcgQEAKIHN0YXRpYyBpbnQgYXVkaW9fcHdyX3N0YXRlID0gLTE7CiAKIC8qCi0gKiBhdWRpb19wd3JfdXAgLyBkb3duIHNob3VsZCBiZSBjYWxsZWQgdW5kZXIgYXVkaW9fcHdyX3NlbQorICogYXVkaW9fcHdyX3VwIC8gZG93biBzaG91bGQgYmUgY2FsbGVkIHVuZGVyIGF1ZGlvX3B3cl9sb2NrCiAgKi8KIHN0YXRpYyB2b2lkIG5va2lhNzcwX2F1ZGlvX3B3cl91cCh2b2lkKQogewpAQCAtMjM3LDExICsyMzgsMTEgQEAKIAogc3RhdGljIHZvaWQgY29kZWNfZGVsYXllZF9wb3dlcl9kb3duKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLQlkb3duKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF9sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJaWYgKGF1ZGlvX3B3cl9zdGF0ZSA9PSAtMSkKIAkJYWljMjNfcG93ZXJfZG93bigpOwogCWNsa19kaXNhYmxlKGRzcHhvcl9jayk7Ci0JdXAoJmF1ZGlvX3B3cl9zZW0pOworCW11dGV4X3VubG9jaygmYXVkaW9fcHdyX2xvY2spOwogfQogCiBzdGF0aWMgREVDTEFSRV9ERUxBWUVEX1dPUksoY29kZWNfcG93ZXJfZG93bl93b3JrLCBjb2RlY19kZWxheWVkX3Bvd2VyX2Rvd24pOwpAQCAtMjU4LDE5ICsyNTksMTkgQEAKIHN0YXRpYyBpbnQKIG5va2lhNzcwX2F1ZGlvX3B3cl91cF9yZXF1ZXN0KHN0cnVjdCBkc3Bfa2Z1bmNfZGV2aWNlICprZGV2LCBpbnQgc3RhZ2UpCiB7Ci0JZG93bigmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfbG9jaygmYXVkaW9fcHdyX2xvY2spOwogCWlmIChhdWRpb19wd3Jfc3RhdGUgPT0gLTEpCiAJCW5va2lhNzcwX2F1ZGlvX3B3cl91cCgpOwogCS8qIGZvcmNlIGF1ZGlvX3B3cl9zdGF0ZSA9IDAsIGV2ZW4gaWYgaXQgd2FzIDEuICovCiAJYXVkaW9fcHdyX3N0YXRlID0gMDsKLQl1cCgmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKIG5va2lhNzcwX2F1ZGlvX3B3cl9kb3duX3JlcXVlc3Qoc3RydWN0IGRzcF9rZnVuY19kZXZpY2UgKmtkZXYsIGludCBzdGFnZSkKIHsKLQlkb3duKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF9sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJc3dpdGNoIChzdGFnZSkgewogCWNhc2UgMToKIAkJaWYgKGF1ZGlvX3B3cl9zdGF0ZSA9PSAwKQpAQCAtMjgzLDcgKzI4NCw3IEBACiAJCX0KIAkJYnJlYWs7CiAJfQotCXVwKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF91bmxvY2soJmF1ZGlvX3B3cl9sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtb3NrLmMKaW5kZXggYTY2NTA1Zi4uODQ1YzY2MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jCkBAIC0yNjcsMTMgKzI2NywxNyBAQAogCiBzdGF0aWMgdm9pZCBfX2luaXQgb3NrX2luaXRfc21jOTF4KHZvaWQpCiB7CisJdTMyIGw7CisKIAlpZiAoKGdwaW9fcmVxdWVzdCgwLCAic21jX2lycSIpKSA8IDApIHsKIAkJcHJpbnRrKCJFcnJvciByZXF1ZXN0aW5nIGdwaW8gMCBmb3Igc21jOTF4IGlycVxuIik7CiAJCXJldHVybjsKIAl9CiAKIAkvKiBDaGVjayBFTUlGUyB3YWl0IHN0YXRlcyB0byBmaXggZXJyb3JzIHdpdGggU01DX0dFVF9QS1RfSERSICovCi0JRU1JRlNfQ0NTKDEpIHw9IDB4MzsKKwlsID0gb21hcF9yZWFkbChFTUlGU19DQ1MoMSkpOworCWwgfD0gMHgzOworCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NDUygxKSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvc2tfaW5pdF9jZih2b2lkKQpAQCAtNTI2LDIwICs1MzAsMjYgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IG9za19pbml0KHZvaWQpCiB7CisJdTMyIGw7CisKIAkvKiBXb3JrYXJvdW5kIGZvciB3cm9uZyBDUzMgKE5PUiBmbGFzaCkgdGltaW5nCiAJICogVGhlcmUgYXJlIHNvbWUgVS1Cb290IHZlcnNpb25zIG91dCB0aGVyZSB3aGljaCBjb25maWd1cmUKIAkgKiB3cm9uZyBDUzMgbWVtb3J5IHRpbWluZ3MuIFRoaXMgbWFpbmx5IGxlYWRzIHRvIENSQwogCSAqIG9yIHNpbWlsYXIgZXJyb3JzIGlmIHlvdSB1c2UgTk9SIGZsYXNoIChlLmcuIHdpdGggSkZGUzIpCiAJICovCi0JaWYgKEVNSUZTX0NDUygzKSAhPSBFTUlGU19DUzNfVkFMKQotCQlFTUlGU19DQ1MoMykgPSBFTUlGU19DUzNfVkFMOworCWwgPSBvbWFwX3JlYWRsKEVNSUZTX0NDUygzKSk7CisJaWYgKGwgIT0gRU1JRlNfQ1MzX1ZBTCkKKwkJb21hcF93cml0ZWwoRU1JRlNfQ1MzX1ZBTCwgRU1JRlNfQ0NTKDMpKTsKIAogCW9za19mbGFzaF9yZXNvdXJjZS5lbmQgPSBvc2tfZmxhc2hfcmVzb3VyY2Uuc3RhcnQgPSBvbWFwX2NzM19waHlzKCk7CiAJb3NrX2ZsYXNoX3Jlc291cmNlLmVuZCArPSBTWl8zMk0gLSAxOwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG9zazU5MTJfZGV2aWNlcywgQVJSQVlfU0laRShvc2s1OTEyX2RldmljZXMpKTsKIAlvbWFwX2JvYXJkX2NvbmZpZyA9IG9za19jb25maWc7CiAJb21hcF9ib2FyZF9jb25maWdfc2l6ZSA9IEFSUkFZX1NJWkUob3NrX2NvbmZpZyk7Ci0JVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9ICgzIDw8IDEpOworCisJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCWwgfD0gKDMgPDwgMSk7CisJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCiAJLyogaXJxIGZvciB0cHM2NTAxMCBjaGlwICovCiAJLyogYm9vdGxvYWRlciBlZmZlY3RpdmVseSBkb2VzOiAgb21hcF9jZmdfcmVnKFUxOV8xNjEwX01QVUlPMSk7ICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL2ZwZ2EuYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvZnBnYS5jCmluZGV4IDMwZTE4ODEuLjBjZjYyZWYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvZnBnYS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvZnBnYS5jCkBAIC0zMiw3ICszMiw3IEBACiAKIHN0YXRpYyB2b2lkIGZwZ2FfbWFza19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlpcnEgLT0gT01BUDE1MTBfSUhfRlBHQV9CQVNFOworCWlycSAtPSBPTUFQX0ZQR0FfSVJRX0JBU0U7CiAKIAlpZiAoaXJxIDwgOCkKIAkJX19yYXdfd3JpdGViKChfX3Jhd19yZWFkYihPTUFQMTUxMF9GUEdBX0lNUl9MTykKQEAgLTY1LDcgKzY1LDcgQEAKIAogc3RhdGljIHZvaWQgZnBnYV91bm1hc2tfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JaXJxIC09IE9NQVAxNTEwX0lIX0ZQR0FfQkFTRTsKKwlpcnEgLT0gT01BUF9GUEdBX0lSUV9CQVNFOwogCiAJaWYgKGlycSA8IDgpCiAJCV9fcmF3X3dyaXRlYigoX19yYXdfcmVhZGIoT01BUDE1MTBfRlBHQV9JTVJfTE8pIHwgKDEgPDwgaXJxKSksCkBAIC05NSw4ICs5NSw4IEBACiAJaWYgKCFzdGF0KQogCQlyZXR1cm47CiAKLQlmb3IgKGZwZ2FfaXJxID0gT01BUDE1MTBfSUhfRlBHQV9CQVNFOwotCSAgICAgKGZwZ2FfaXJxIDwgKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIE5SX0ZQR0FfSVJRUykpICYmIHN0YXQ7CisJZm9yIChmcGdhX2lycSA9IE9NQVBfRlBHQV9JUlFfQkFTRTsKKwkgICAgIChmcGdhX2lycSA8IE9NQVBfRlBHQV9JUlFfRU5EKSAmJiBzdGF0OwogCSAgICAgZnBnYV9pcnErKywgc3RhdCA+Pj0gMSkgewogCQlpZiAoc3RhdCAmIDEpIHsKIAkJCWQgPSBpcnFfZGVzYyArIGZwZ2FfaXJxOwpAQCAtMTUxLDcgKzE1MSw3IEBACiAJX19yYXdfd3JpdGViKDAsIE9NQVAxNTEwX0ZQR0FfSU1SX0hJKTsKIAlfX3Jhd193cml0ZWIoMCwgSU5OT1ZBVE9SX0ZQR0FfSU1SMik7CiAKLQlmb3IgKGkgPSBPTUFQMTUxMF9JSF9GUEdBX0JBU0U7IGkgPCAoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgTlJfRlBHQV9JUlFTKTsgaSsrKSB7CisJZm9yIChpID0gT01BUF9GUEdBX0lSUV9CQVNFOyBpIDwgT01BUF9GUEdBX0lSUV9FTkQ7IGkrKykgewogCiAJCWlmIChpID09IE9NQVAxNTEwX0lOVF9GUEdBX1RTKSB7CiAJCQkvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9tY2JzcC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9tY2JzcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMmMyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL21jYnNwLmMKQEAgLTAsMCArMSwyODAgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAxL21jYnNwLmMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvbnRhY3Q6IEVkdWFyZG8gVmFsZW50aW4gPGVkdWFyZG8udmFsZW50aW5AaW5kdC5vcmcuYnI+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBNdWx0aWNoYW5uZWwgbW9kZSBub3Qgc3VwcG9ydGVkLgorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9kbWEuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jcHUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tY2JzcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2RzcF9jb21tb24uaD4KKworI2RlZmluZSBEUFNfUlNUQ1QyX1BFUl9FTgkoMSA8PCAwKQorI2RlZmluZSBEU1BfUlNUQ1QyX1dEX1BFUl9FTgkoMSA8PCAxKQorCitzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIHsKKwlzdHJ1Y3QgY2xrIGNsazsKKwlzdHJ1Y3QgY2xrICoqY2hpbGRzOworCWludCBuX2NoaWxkczsKK307CisKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNVhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNlhYKQorc3RhdGljIHZvaWQgb21hcF9tY2JzcF9jbGtfaW5pdChzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrKQoreworCWNvbnN0IGNoYXIgKmNsa19uYW1lc1tdID0geyAiZHNwX2NrIiwgImFwaV9jayIsICJkc3B4b3JfY2siIH07CisJaW50IGk7CisKKwltY2xrLT5uX2NoaWxkcyA9IEFSUkFZX1NJWkUoY2xrX25hbWVzKTsKKwltY2xrLT5jaGlsZHMgPSBremFsbG9jKG1jbGstPm5fY2hpbGRzICogc2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJCQkJR0ZQX0tFUk5FTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykgeworCQkvKiBXZSBmYWtlIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGdldCBjb3JyZWN0IGRldmljZSBpZCAqLworCQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBkZXY7CisKKwkJcGRldi5kZXYuYnVzID0gJnBsYXRmb3JtX2J1c190eXBlOworCQlwZGV2LmlkID0gbWNsay0+Y2xrLmlkOworCQltY2xrLT5jaGlsZHNbaV0gPSBjbGtfZ2V0KCZwZGV2LmRldiwgY2xrX25hbWVzW2ldKTsKKwkJaWYgKElTX0VSUihtY2xrLT5jaGlsZHNbaV0pKQorCQkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgZ2V0IGNsb2NrICVzICglZCkuXG4iLAorCQkJCWNsa19uYW1lc1tpXSwgbWNsay0+Y2xrLmlkKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9jbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrID0gY29udGFpbmVyX29mKGNsaywKKwkJCQkJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsaywgY2xrKTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKQorCQljbGtfZW5hYmxlKG1jbGstPmNoaWxkc1tpXSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIG9tYXBfbWNic3BfY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGsgPSBjb250YWluZXJfb2YoY2xrLAorCQkJCQlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrLCBjbGspOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspCisJCWNsa19kaXNhYmxlKG1jbGstPmNoaWxkc1tpXSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIG9tYXBfbWNic3BfY2xrc1tdID0geworCXsKKwkJLmNsayA9IHsKKwkJCS5uYW1lIAkJPSAibWNic3BfY2xrIiwKKwkJCS5pZAkJPSAxLAorCQkJLmVuYWJsZQkJPSBvbWFwX21jYnNwX2Nsa19lbmFibGUsCisJCQkuZGlzYWJsZQk9IG9tYXBfbWNic3BfY2xrX2Rpc2FibGUsCisJCX0sCisJfSwKKwl7CisJCS5jbGsgPSB7CisJCQkubmFtZSAJCT0gIm1jYnNwX2NsayIsCisJCQkuaWQJCT0gMywKKwkJCS5lbmFibGUJCT0gb21hcF9tY2JzcF9jbGtfZW5hYmxlLAorCQkJLmRpc2FibGUJPSBvbWFwX21jYnNwX2Nsa19kaXNhYmxlLAorCQl9LAorCX0sCit9OworCisjZGVmaW5lIG9tYXBfbWNic3BfY2xrc19zaXplCUFSUkFZX1NJWkUob21hcF9tY2JzcF9jbGtzKQorI2Vsc2UKKyNkZWZpbmUgb21hcF9tY2JzcF9jbGtzX3NpemUJMAorc3RhdGljIHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgX19pbml0ZGF0YSAqb21hcF9tY2JzcF9jbGtzOworc3RhdGljIGlubGluZSB2b2lkIG9tYXBfbWNic3BfY2xrX2luaXQoc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsaykKK3sgfQorI2VuZGlmCisKK3N0YXRpYyBpbnQgb21hcDFfbWNic3BfY2hlY2sodW5zaWduZWQgaW50IGlkKQoreworCS8qIFJFVklTSVQ6IENoZWNrIGNvcnJlY3RseSBmb3IgbnVtYmVyIG9mIHJlZ2lzdGVyZWQgTWNCU1BzICovCisJaWYgKGNwdV9pc19vbWFwNzMwKCkpIHsKKwkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQgLSAyKSB7CisJCSAgICAgICBwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IE1jQlNQJWQgZG9lc24ndCBleGlzdFxuIiwKKwkJCQlpZCArIDEpOworCQkgICAgICAgcmV0dXJuIC1FTk9ERVY7CisJCX0KKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGNwdV9pc19vbWFwMTV4eCgpIHx8IGNwdV9pc19vbWFwMTZ4eCgpKSB7CisJCWlmIChpZCA+IE9NQVBfTUFYX01DQlNQX0NPVU5UIC0gMSkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGRvZXNuJ3QgZXhpc3RcbiIsCisJCQkJaWQgKyAxKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAtRU5PREVWOworfQorCitzdGF0aWMgdm9pZCBvbWFwMV9tY2JzcF9yZXF1ZXN0KHVuc2lnbmVkIGludCBpZCkKK3sKKwkvKgorCSAqIE9uIDE1MTAsIDE2MTAgYW5kIDE3MTAsIE1jQlNQMSBhbmQgTWNCU1AzCisJICogYXJlIERTUCBwdWJsaWMgcGVyaXBoZXJhbHMuCisJICovCisJaWYgKGlkID09IE9NQVBfTUNCU1AxIHx8IGlkID09IE9NQVBfTUNCU1AzKSB7CisJCW9tYXBfZHNwX3JlcXVlc3RfbWVtKCk7CisJCS8qCisJCSAqIERTUCBleHRlcm5hbCBwZXJpcGhlcmFsIHJlc2V0CisJCSAqIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtb3ZlZCB0byBkc3AgY29kZQorCQkgKi8KKwkJX19yYXdfd3JpdGV3KF9fcmF3X3JlYWR3KERTUF9SU1RDVDIpIHwgRFBTX1JTVENUMl9QRVJfRU4gfAorCQkJCURTUF9SU1RDVDJfV0RfUEVSX0VOLCBEU1BfUlNUQ1QyKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIG9tYXAxX21jYnNwX2ZyZWUodW5zaWduZWQgaW50IGlkKQoreworCWlmIChpZCA9PSBPTUFQX01DQlNQMSB8fCBpZCA9PSBPTUFQX01DQlNQMykKKwkJb21hcF9kc3BfcmVsZWFzZV9tZW0oKTsKK30KKworc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX29wcyBvbWFwMV9tY2JzcF9vcHMgPSB7CisJLmNoZWNrCQk9IG9tYXAxX21jYnNwX2NoZWNrLAorCS5yZXF1ZXN0CT0gb21hcDFfbWNic3BfcmVxdWVzdCwKKwkuZnJlZQkJPSBvbWFwMV9tY2JzcF9mcmVlLAorfTsKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVA3MzAKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhIG9tYXA3MzBfbWNic3BfcGRhdGFbXSA9IHsKKwl7CisJCS52aXJ0X2Jhc2UJPSBpb19wMnYoT01BUDczMF9NQ0JTUDFfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1RYLAorCQkucnhfaXJxCQk9IElOVF83MzBfTWNCU1AxUlgsCisJCS50eF9pcnEJCT0gSU5UXzczMF9NY0JTUDFUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AyX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19UWCwKKwkJLnJ4X2lycQkJPSBJTlRfNzMwX01jQlNQMlJYLAorCQkudHhfaXJxCQk9IElOVF83MzBfTWNCU1AyVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwl9LAorfTsKKyNkZWZpbmUgT01BUDczMF9NQ0JTUF9QREFUQV9TWgkJQVJSQVlfU0laRShvbWFwNzMwX21jYnNwX3BkYXRhKQorI2Vsc2UKKyNkZWZpbmUgb21hcDczMF9tY2JzcF9wZGF0YQkJTlVMTAorI2RlZmluZSBPTUFQNzMwX01DQlNQX1BEQVRBX1NaCQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAxNVhYCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSBvbWFwMTV4eF9tY2JzcF9wZGF0YVtdID0geworCXsKKwkJLnZpcnRfYmFzZQk9IE9NQVAxNTEwX01DQlNQMV9CQVNFLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfTWNCU1AxUlgsCisJCS50eF9pcnEJCT0gSU5UX01jQlNQMVRYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCQl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IGlvX3AydihPTUFQMTUxMF9NQ0JTUDJfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQMl9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AyX1RYLAorCQkucnhfaXJxCQk9IElOVF8xNTEwX1NQSV9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMTUxMF9TUElfVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IE9NQVAxNTEwX01DQlNQM19CQVNFLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19UWCwKKwkJLnJ4X2lycQkJPSBJTlRfTWNCU1AzUlgsCisJCS50eF9pcnEJCT0gSU5UX01jQlNQM1RYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCit9OworI2RlZmluZSBPTUFQMTVYWF9NQ0JTUF9QREFUQV9TWgkJQVJSQVlfU0laRShvbWFwMTV4eF9tY2JzcF9wZGF0YSkKKyNlbHNlCisjZGVmaW5lIG9tYXAxNXh4X21jYnNwX3BkYXRhCQlOVUxMCisjZGVmaW5lIE9NQVAxNVhYX01DQlNQX1BEQVRBX1NaCQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAxNlhYCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSBvbWFwMTZ4eF9tY2JzcF9wZGF0YVtdID0geworCXsKKwkJLnZpcnRfYmFzZQk9IE9NQVAxNjEwX01DQlNQMV9CQVNFLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfTWNCU1AxUlgsCisJCS50eF9pcnEJCT0gSU5UX01jQlNQMVRYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gaW9fcDJ2KE9NQVAxNjEwX01DQlNQMl9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AyX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDJfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzE2MTBfTWNCU1AyX1JYLAorCQkudHhfaXJxCQk9IElOVF8xNjEwX01jQlNQMl9UWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gT01BUDE2MTBfTUNCU1AzX0JBU0UsCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1RYLAorCQkucnhfaXJxCQk9IElOVF9NY0JTUDNSWCwKKwkJLnR4X2lycQkJPSBJTlRfTWNCU1AzVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKK307CisjZGVmaW5lIE9NQVAxNlhYX01DQlNQX1BEQVRBX1NaCQlBUlJBWV9TSVpFKG9tYXAxNnh4X21jYnNwX3BkYXRhKQorI2Vsc2UKKyNkZWZpbmUgb21hcDE2eHhfbWNic3BfcGRhdGEJCU5VTEwKKyNkZWZpbmUgT01BUDE2WFhfTUNCU1BfUERBVEFfU1oJCTAKKyNlbmRpZgorCitpbnQgX19pbml0IG9tYXAxX21jYnNwX2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBvbWFwX21jYnNwX2Nsa3Nfc2l6ZTsgaSsrKSB7CisJCWlmIChjcHVfaXNfb21hcDE1eHgoKSB8fCBjcHVfaXNfb21hcDE2eHgoKSkgeworCQkJb21hcF9tY2JzcF9jbGtfaW5pdCgmb21hcF9tY2JzcF9jbGtzW2ldKTsKKwkJCWNsa19yZWdpc3Rlcigmb21hcF9tY2JzcF9jbGtzW2ldLmNsayk7CisJCX0KKwl9CisKKwlpZiAoY3B1X2lzX29tYXA3MzAoKSkKKwkJb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcob21hcDczMF9tY2JzcF9wZGF0YSwKKwkJCQkJCU9NQVA3MzBfTUNCU1BfUERBVEFfU1opOworCisJaWYgKGNwdV9pc19vbWFwMTV4eCgpKQorCQlvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhvbWFwMTV4eF9tY2JzcF9wZGF0YSwKKwkJCQkJCU9NQVAxNVhYX01DQlNQX1BEQVRBX1NaKTsKKworCWlmIChjcHVfaXNfb21hcDE2eHgoKSkKKwkJb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcob21hcDE2eHhfbWNic3BfcGRhdGEsCisJCQkJCQlPTUFQMTZYWF9NQ0JTUF9QREFUQV9TWik7CisKKwlyZXR1cm4gb21hcF9tY2JzcF9pbml0KCk7Cit9CisKK2FyY2hfaW5pdGNhbGwob21hcDFfbWNic3BfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL3BtLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL3BtLmMKaW5kZXggZTZjNjRlMS4uNzQyZjc5ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9wbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvcG0uYwpAQCAtMTE2LDEzICsxMTYsNiBAQAogCQlyZXR1cm47CiAJfQogCi0JLyoKLQkgKiBTaW5jZSBhbiBpbnRlcnJ1cHQgbWF5IHNldCB1cCBhIHRpbWVyLCB3ZSBkb24ndCB3YW50IHRvCi0JICogcmVwcm9ncmFtIHRoZSBoYXJkd2FyZSB0aW1lciB3aXRoIGludGVycnVwdHMgZW5hYmxlZC4KLQkgKiBSZS1lbmFibGUgaW50ZXJydXB0cyBvbmx5IGFmdGVyIHJldHVybmluZyBmcm9tIGlkbGUuCi0JICovCi0JdGltZXJfZHluX3JlcHJvZ3JhbSgpOwotCiAjaWZkZWYgQ09ORklHX09NQVBfTVBVX1RJTUVSCiAjd2FybmluZyBFbmFibGUgMzJrSHogT1MgdGltZXIgaW4gb3JkZXIgdG8gYWxsb3cgc2xlZXAgc3RhdGVzIGluIGlkbGUKIAl1c2VfaWRsZWN0MSA9IHVzZV9pZGxlY3QxICYgfigxIDw8IDkpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9zcmFtLlMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL3NyYW0uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjZkMjUyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9zcmFtLlMKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMKKyAqCisgKiBGdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHJ1biBpbiBpbnRlcm5hbCBTUkFNCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisJLnRleHQKKworLyoKKyAqIFJlcHJvZ3JhbXMgVUxQRCBhbmQgQ0tDVEwuCisgKi8KK0VOVFJZKG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrKQorCXN0bWZkCXNwISwge3IwIC0gcjEyLCBscn0JCUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKKworCW1vdglyMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHhmZjAwMDAwMAorCW9ycglyMiwgcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4MDBmZjAwMDAKKwlvcnIJcjIsIHIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweDAwMDBmZjAwCisKKwltb3YJcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweGZmMDAwMDAwCisJb3JyCXIzLCByMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4MDBmZjAwMDAKKwlvcnIJcjMsIHIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHgwMDAwZmYwMAorCisJdHN0CXIwLCAjMSA8PCA0CQkJQCB3YW50IGxvY2sgbW9kZT8KKwliZXEJbmV3Y2sJCQkJQCBub3BlCisJYmljCXIwLCByMCwgIzEgPDwgNAkJCUAgZWxzZSBjbGVhciBsb2NrIGJpdAorCXN0cmgJcjAsIFtyMl0JCQlAIHNldCBkcGxsIGludG8gYnlwYXNzIG1vZGUKKwlvcnIJcjAsIHIwLCAjMSA8PCA0CQkJQCBzZXQgbG9jayBiaXQgYWdhaW4KKworbmV3Y2s6CisJc3RyaAlyMSwgW3IzXQkJCUAgd3JpdGUgbmV3IGNrY3RsIHZhbHVlCisJc3RyaAlyMCwgW3IyXQkJCUAgd3JpdGUgbmV3IGRwbGwgdmFsdWUKKworCW1vdglyNCwgIzB4MDcwMAkJCUAgbGV0IHRoZSBjbG9ja3Mgc2V0dGxlCisJb3JyCXI0LCByNCwgIzB4MDBmZgorZGVsYXk6CXN1YglyNCwgcjQsICMxCisJY21wCXI0LCAjMAorCWJuZQlkZWxheQorCitsb2NrOglsZHJoCXI0LCBbcjJdLCAjMAkJCUAgcmVhZCBiYWNrIGRwbGwgdmFsdWUKKwl0c3QJcjAsICMxIDw8IDQJCQlAIHdhbnQgbG9jayBtb2RlPworCWJlcQlvdXQJCQkJQCBub3BlCisJdHN0CXI0LCAjMSA8PCAwCQkJQCBkcGxsIHJhdGUgbG9ja2VkPworCWJlcQlsb2NrCQkJCUAgdHJ5IGFnYWluCisKK291dDoKKwlsZG1mZAlzcCEsIHtyMCAtIHIxMiwgcGN9CQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCitFTlRSWShvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9ja19zeikKKwkud29yZAkuIC0gb21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2sKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCmluZGV4IDJmZWI2ODcuLjkzZWU5OTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQpAQCAtMyw5ICszLDE1IEBACiAjCiAKICMgQ29tbW9uIHN1cHBvcnQKLW9iai15IDo9IGlycS5vIGlkLm8gaW8ubyBzcmFtLWZuLm8gbWVtb3J5Lm8gY29udHJvbC5vIHByY20ubyBjbG9jay5vIG11eC5vIFwKK29iai15IDo9IGlycS5vIGlkLm8gaW8ubyBtZW1vcnkubyBjb250cm9sLm8gcHJjbS5vIGNsb2NrLm8gbXV4Lm8gXAogCQlkZXZpY2VzLm8gc2VyaWFsLm8gZ3BtYy5vIHRpbWVyLWdwLm8KIAorb2JqLSQoQ09ORklHX09NQVBfTUNCU1ApICs9IG1jYnNwLm8KKworIyBGdW5jdGlvbnMgbG9hZGVkIHRvIFNSQU0KK29iai0kKENPTkZJR19BUkNIX09NQVAyNDIwKQkJKz0gc3JhbTI0Mngubworb2JqLSQoQ09ORklHX0FSQ0hfT01BUDI0MzApCQkrPSBzcmFtMjQzeC5vCisKICMgUG93ZXIgTWFuYWdlbWVudAogb2JqLSQoQ09ORklHX1BNKSArPSBwbS5vIHNsZWVwLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jCmluZGV4IGFiOWZjNTcuLjE1Njc1YmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMKQEAgLTQxLDYgKzQxLDI0IEBACiAKICNkZWZpbmUgTUFYX0NMT0NLX0VOQUJMRV9XQUlUCQkxMDAwMDAKIAorLyogRFBMTCByYXRlIHJvdW5kaW5nOiBtaW5pbXVtIERQTEwgbXVsdGlwbGllciwgZGl2aWRlciB2YWx1ZXMgKi8KKyNkZWZpbmUgRFBMTF9NSU5fTVVMVElQTElFUgkJMQorI2RlZmluZSBEUExMX01JTl9ESVZJREVSCQkxCisKKy8qIFBvc3NpYmxlIGVycm9yIHJlc3VsdHMgZnJvbSBfZHBsbF90ZXN0X211bHQgKi8KKyNkZWZpbmUgRFBMTF9NVUxUX1VOREVSRkxPVwkJKDEgPDwgMCkKKworLyoKKyAqIFNjYWxlIGZhY3RvciB0byBtaXRpZ2F0ZSByb3VuZG9mZiBlcnJvcnMgaW4gRFBMTCByYXRlIHJvdW5kaW5nLgorICogVGhlIGhpZ2hlciB0aGUgc2NhbGUgZmFjdG9yLCB0aGUgZ3JlYXRlciB0aGUgcmlzayBvZiBhcml0aG1ldGljIG92ZXJmbG93LAorICogYnV0IHRoZSBjbG9zZXIgdGhlIHJvdW5kZWQgcmF0ZSB0byB0aGUgdGFyZ2V0IHJhdGUuICBEUExMX1NDQUxFX0ZBQ1RPUgorICogbXVzdCBiZSBhIHBvd2VyIG9mIERQTExfU0NBTEVfQkFTRS4KKyAqLworI2RlZmluZSBEUExMX1NDQUxFX0ZBQ1RPUgkJNjQKKyNkZWZpbmUgRFBMTF9TQ0FMRV9CQVNFCQkJMgorI2RlZmluZSBEUExMX1JPVU5ESU5HX1ZBTAkJKChEUExMX1NDQUxFX0JBU0UgLyAyKSAqIFwKKwkJCQkJIChEUExMX1NDQUxFX0ZBQ1RPUiAvIERQTExfU0NBTEVfQkFTRSkpCisKIHU4IGNwdV9tYXNrOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk1LDcgKzExMyw3IEBACiB7CiAJbG9uZyBsb25nIGRwbGxfY2xrOwogCXUzMiBkcGxsX211bHQsIGRwbGxfZGl2LCBkcGxsOwotCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCXN0cnVjdCBkcGxsX2RhdGEgKmRkOwogCiAJZGQgPSBjbGstPmRwbGxfZGF0YTsKIAkvKiBSRVZJU0lUOiBXaGF0IGRvIHdlIHJldHVybiBvbiBlcnJvcj8gKi8KQEAgLTYwMyw3ICs2MjEsOCBAQAogCWNsay0+cmF0ZSA9IGNsay0+cGFyZW50LT5yYXRlIC8gbmV3X2RpdjsKIAogCWlmIChjbGstPmZsYWdzICYgREVMQVlFRF9BUFAgJiYgY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJX19yYXdfd3JpdGVsKE9NQVAyNFhYX1ZBTElEX0NPTkZJRywgT01BUDI0WFhfUFJDTV9DTEtDRkdfQ1RSTCk7CisJCXBybV93cml0ZV9tb2RfcmVnKE9NQVAyNFhYX1ZBTElEX0NPTkZJRywKKwkJCU9NQVAyNFhYX0dSX01PRCwgT01BUDI0WFhfUFJDTV9DTEtDRkdfQ1RSTF9PRkZTRVQpOwogCQl3bWIoKTsKIAl9CiAKQEAgLTcyMyw2ICs3NDIsMTg0IEBACiAJcmV0dXJuIDA7CiB9CiAKKy8qIERQTEwgcmF0ZSByb3VuZGluZyBjb2RlICovCisKKy8qKgorICogb21hcDJfZHBsbF9zZXRfcmF0ZV90b2xlcmFuY2U6IHNldCB0aGUgZXJyb3IgdG9sZXJhbmNlIGR1cmluZyByYXRlIHJvdW5kaW5nCisgKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwKKyAqIEB0b2xlcmFuY2U6IG1heGltdW0gcmF0ZSBlcnJvciB0b2xlcmFuY2UKKyAqCisgKiBTZXQgdGhlIG1heGltdW0gRFBMTCByYXRlIGVycm9yIHRvbGVyYW5jZSBmb3IgdGhlIHJhdGUgcm91bmRpbmcKKyAqIGFsZ29yaXRobS4gIFRoZSByYXRlIHRvbGVyYW5jZSBpcyBhbiBhdHRlbXB0IHRvIGJhbGFuY2UgRFBMTCBwb3dlcgorICogc2F2aW5nICh0aGUgbGVhc3QgZGl2aWRlciB2YWx1ZSAibiIpIHZzLiByYXRlIGZpZGVsaXR5ICh0aGUgbGVhc3QKKyAqIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzaXJlZCBEUExMIHRhcmdldCByYXRlIGFuZCB0aGUgcm91bmRlZAorICogcmF0ZSBvdXQgb2YgdGhlIGFsZ29yaXRobSkuICBTbywgaW5jcmVhc2luZyB0aGUgdG9sZXJhbmNlIGlzIGxpa2VseQorICogdG8gZGVjcmVhc2UgRFBMTCBwb3dlciBjb25zdW1wdGlvbiBhbmQgaW5jcmVhc2UgRFBMTCByYXRlIGVycm9yLgorICogUmV0dXJucyAtRUlOVkFMIGlmIHByb3ZpZGVkIGEgbnVsbCBjbG9jayBwdHIgb3IgYSBjbGsgdGhhdCBpcyBub3QgYQorICogRFBMTDsgb3IgMCB1cG9uIHN1Y2Nlc3MuCisgKi8KK2ludCBvbWFwMl9kcGxsX3NldF9yYXRlX3RvbGVyYW5jZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGludCB0b2xlcmFuY2UpCit7CisJaWYgKCFjbGsgfHwgIWNsay0+ZHBsbF9kYXRhKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWNsay0+ZHBsbF9kYXRhLT5yYXRlX3RvbGVyYW5jZSA9IHRvbGVyYW5jZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfZHBsbF9jb21wdXRlX25ld19yYXRlKHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUsIHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbikKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgbnVtOworCisJbnVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZylwYXJlbnRfcmF0ZSAqIG07CisJZG9fZGl2KG51bSwgbik7CisJcmV0dXJuIG51bTsKK30KKworLyoKKyAqIF9kcGxsX3Rlc3RfbXVsdCAtIHRlc3QgYSBEUExMIG11bHRpcGxpZXIgdmFsdWUKKyAqIEBtOiBwb2ludGVyIHRvIHRoZSBEUExMIG0gKG11bHRpcGxpZXIpIHZhbHVlIHVuZGVyIHRlc3QKKyAqIEBuOiBjdXJyZW50IERQTEwgbiAoZGl2aWRlcikgdmFsdWUgdW5kZXIgdGVzdAorICogQG5ld19yYXRlOiBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXN1bHRpbmcgcm91bmRlZCByYXRlCisgKiBAdGFyZ2V0X3JhdGU6IHRoZSBkZXNpcmVkIERQTEwgcmF0ZQorICogQHBhcmVudF9yYXRlOiB0aGUgRFBMTCdzIHBhcmVudCBjbG9jayByYXRlCisgKgorICogVGhpcyBjb2RlIHRlc3RzIGEgRFBMTCBtdWx0aXBsaWVyIHZhbHVlLCBlbnN1cmluZyB0aGF0IHRoZQorICogcmVzdWx0aW5nIHJhdGUgd2lsbCBub3QgYmUgaGlnaGVyIHRoYW4gdGhlIHRhcmdldF9yYXRlLCBhbmQgdGhhdAorICogdGhlIG11bHRpcGxpZXIgdmFsdWUgaXRzZWxmIGlzIHZhbGlkIGZvciB0aGUgRFBMTC4gIEluaXRpYWxseSwgdGhlCisgKiBpbnRlZ2VyIHBvaW50ZWQgdG8gYnkgdGhlIG0gYXJndW1lbnQgc2hvdWxkIGJlIHByZXNjYWxlZCBieQorICogbXVsdGlwbHlpbmcgYnkgRFBMTF9TQ0FMRV9GQUNUT1IuICBUaGUgY29kZSB3aWxsIHJlcGxhY2UgdGhpcyB3aXRoCisgKiBhIG5vbi1zY2FsZWQgbSB1cG9uIHJldHVybi4gIFRoaXMgbm9uLXNjYWxlZCBtIHdpbGwgcmVzdWx0IGluIGEKKyAqIG5ld19yYXRlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRhcmdldF9yYXRlIChidXQgbm90IGdyZWF0ZXIgdGhhbgorICogdGFyZ2V0X3JhdGUpIGdpdmVuIHRoZSBjdXJyZW50IChwYXJlbnRfcmF0ZSwgbiwgcHJlc2NhbGVkIG0pCisgKiB0cmlwbGUuIFJldHVybnMgRFBMTF9NVUxUX1VOREVSRkxPVyBpbiB0aGUgZXZlbnQgdGhhdCB0aGUKKyAqIG5vbi1zY2FsZWQgbSBhdHRlbXB0ZWQgdG8gdW5kZXJmbG93LCB3aGljaCBjYW4gYWxsb3cgdGhlIGNhbGxpbmcKKyAqIGZ1bmN0aW9uIHRvIGJhaWwgb3V0IGVhcmx5OyBvciAwIHVwb24gc3VjY2Vzcy4KKyAqLworc3RhdGljIGludCBfZHBsbF90ZXN0X211bHQoaW50ICptLCBpbnQgbiwgdW5zaWduZWQgbG9uZyAqbmV3X3JhdGUsCisJCQkgICB1bnNpZ25lZCBsb25nIHRhcmdldF9yYXRlLAorCQkJICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKK3sKKwlpbnQgZmxhZ3MgPSAwLCBjYXJyeSA9IDA7CisKKwkvKiBVbnNjYWxlIG0gYW5kIHJvdW5kIGlmIG5lY2Vzc2FyeSAqLworCWlmICgqbSAlIERQTExfU0NBTEVfRkFDVE9SID49IERQTExfUk9VTkRJTkdfVkFMKQorCQljYXJyeSA9IDE7CisJKm0gPSAoKm0gLyBEUExMX1NDQUxFX0ZBQ1RPUikgKyBjYXJyeTsKKworCS8qCisJICogVGhlIG5ldyByYXRlIG11c3QgYmUgPD0gdGhlIHRhcmdldCByYXRlIHRvIGF2b2lkIHByb2dyYW1taW5nCisJICogYSByYXRlIHRoYXQgaXMgaW1wb3NzaWJsZSBmb3IgdGhlIGhhcmR3YXJlIHRvIGhhbmRsZQorCSAqLworCSpuZXdfcmF0ZSA9IF9kcGxsX2NvbXB1dGVfbmV3X3JhdGUocGFyZW50X3JhdGUsICptLCBuKTsKKwlpZiAoKm5ld19yYXRlID4gdGFyZ2V0X3JhdGUpIHsKKwkJKCptKS0tOworCQkqbmV3X3JhdGUgPSAwOworCX0KKworCS8qIEd1YXJkIGFnYWluc3QgbSB1bmRlcmZsb3cgKi8KKwlpZiAoKm0gPCBEUExMX01JTl9NVUxUSVBMSUVSKSB7CisJCSptID0gRFBMTF9NSU5fTVVMVElQTElFUjsKKwkJKm5ld19yYXRlID0gMDsKKwkJZmxhZ3MgPSBEUExMX01VTFRfVU5ERVJGTE9XOworCX0KKworCWlmICgqbmV3X3JhdGUgPT0gMCkKKwkJKm5ld19yYXRlID0gX2RwbGxfY29tcHV0ZV9uZXdfcmF0ZShwYXJlbnRfcmF0ZSwgKm0sIG4pOworCisJcmV0dXJuIGZsYWdzOworfQorCisvKioKKyAqIG9tYXAyX2RwbGxfcm91bmRfcmF0ZSAtIHJvdW5kIGEgdGFyZ2V0IHJhdGUgZm9yIGFuIE9NQVAgRFBMTAorICogQGNsazogc3RydWN0IGNsayAqIGZvciBhIERQTEwKKyAqIEB0YXJnZXRfcmF0ZTogZGVzaXJlZCBEUExMIGNsb2NrIHJhdGUKKyAqCisgKiBHaXZlbiBhIERQTEwsIGEgZGVzaXJlZCB0YXJnZXQgcmF0ZSwgYW5kIGEgcmF0ZSB0b2xlcmFuY2UsIHJvdW5kCisgKiB0aGUgdGFyZ2V0IHJhdGUgdG8gYSBwb3NzaWJsZSwgcHJvZ3JhbW1hYmxlIHJhdGUgZm9yIHRoaXMgRFBMTC4KKyAqIFJhdGUgdG9sZXJhbmNlIGlzIGFzc3VtZWQgdG8gYmUgc2V0IGJ5IHRoZSBjYWxsZXIgYmVmb3JlIHRoaXMKKyAqIGZ1bmN0aW9uIGlzIGNhbGxlZC4gIEF0dGVtcHRzIHRvIHNlbGVjdCB0aGUgbWluaW11bSBwb3NzaWJsZSBuCisgKiB3aXRoaW4gdGhlIHRvbGVyYW5jZSB0byByZWR1Y2UgcG93ZXIgY29uc3VtcHRpb24uICBTdG9yZXMgdGhlCisgKiBjb21wdXRlZCAobSwgbikgaW4gdGhlIERQTEwncyBkcGxsX2RhdGEgc3RydWN0dXJlIHNvIHNldF9yYXRlKCkKKyAqIHdpbGwgbm90IG5lZWQgdG8gY2FsbCB0aGlzIChleHBlbnNpdmUpIGZ1bmN0aW9uIGFnYWluLiAgUmV0dXJucyB+MAorICogaWYgdGhlIHRhcmdldCByYXRlIGNhbm5vdCBiZSByb3VuZGVkLCBlaXRoZXIgYmVjYXVzZSB0aGUgcmF0ZSBpcworICogdG9vIGxvdyBvciBiZWNhdXNlIHRoZSByYXRlIHRvbGVyYW5jZSBpcyBzZXQgdG9vIHRpZ2h0bHk7IG9yIHRoZQorICogcm91bmRlZCByYXRlIHVwb24gc3VjY2Vzcy4KKyAqLworbG9uZyBvbWFwMl9kcGxsX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHRhcmdldF9yYXRlKQoreworCWludCBtLCBuLCByLCBlLCBzY2FsZWRfbWF4X207CisJdW5zaWduZWQgbG9uZyBzY2FsZWRfcnRfcnAsIG5ld19yYXRlOworCWludCBtaW5fZSA9IC0xLCBtaW5fZV9tID0gLTEsIG1pbl9lX24gPSAtMTsKKworCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKKwkJcmV0dXJuIH4wOworCisJcHJfZGVidWcoImNsb2NrOiBzdGFydGluZyBEUExMIHJvdW5kX3JhdGUgZm9yIGNsb2NrICVzLCB0YXJnZXQgcmF0ZSAiCisJCSAiJWxkXG4iLCBjbGstPm5hbWUsIHRhcmdldF9yYXRlKTsKKworCXNjYWxlZF9ydF9ycCA9IHRhcmdldF9yYXRlIC8gKGNsay0+cGFyZW50LT5yYXRlIC8gRFBMTF9TQ0FMRV9GQUNUT1IpOworCXNjYWxlZF9tYXhfbSA9IGNsay0+ZHBsbF9kYXRhLT5tYXhfbXVsdGlwbGllciAqIERQTExfU0NBTEVfRkFDVE9SOworCisJY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9yYXRlID0gMDsKKworCWZvciAobiA9IGNsay0+ZHBsbF9kYXRhLT5tYXhfZGl2aWRlcjsgbiA+PSBEUExMX01JTl9ESVZJREVSOyBuLS0pIHsKKworCQkvKiBDb21wdXRlIHRoZSBzY2FsZWQgRFBMTCBtdWx0aXBsaWVyLCBiYXNlZCBvbiB0aGUgZGl2aWRlciAqLworCQltID0gc2NhbGVkX3J0X3JwICogbjsKKworCQkvKgorCQkgKiBTaW5jZSB3ZSdyZSBjb3VudGluZyBuIGRvd24sIGEgbSBvdmVyZmxvdyBtZWFucyB3ZSBjYW4KKwkJICogY2FuIGltbWVkaWF0ZWx5IHNraXAgdG8gdGhlIG5leHQgbgorCQkgKi8KKwkJaWYgKG0gPiBzY2FsZWRfbWF4X20pCisJCQljb250aW51ZTsKKworCQlyID0gX2RwbGxfdGVzdF9tdWx0KCZtLCBuLCAmbmV3X3JhdGUsIHRhcmdldF9yYXRlLAorCQkJCSAgICBjbGstPnBhcmVudC0+cmF0ZSk7CisKKwkJZSA9IHRhcmdldF9yYXRlIC0gbmV3X3JhdGU7CisJCXByX2RlYnVnKCJjbG9jazogbiA9ICVkOiBtID0gJWQ6IHJhdGUgZXJyb3IgaXMgJWQgIgorCQkJICIobmV3X3JhdGUgPSAlbGQpXG4iLCBuLCBtLCBlLCBuZXdfcmF0ZSk7CisKKwkJaWYgKG1pbl9lID09IC0xIHx8CisJCSAgICBtaW5fZSA+PSAoaW50KShhYnMoZSkgLSBjbGstPmRwbGxfZGF0YS0+cmF0ZV90b2xlcmFuY2UpKSB7CisJCQltaW5fZSA9IGU7CisJCQltaW5fZV9tID0gbTsKKwkJCW1pbl9lX24gPSBuOworCisJCQlwcl9kZWJ1ZygiY2xvY2s6IGZvdW5kIG5ldyBsZWFzdCBlcnJvciAlZFxuIiwgbWluX2UpOworCQl9CisKKwkJLyoKKwkJICogU2luY2Ugd2UncmUgY291bnRpbmcgbiBkb3duLCBhIG0gdW5kZXJmbG93IG1lYW5zIHdlCisJCSAqIGNhbiBiYWlsIG91dCBjb21wbGV0ZWx5IChzaW5jZSBhcyBuIGRlY3JlYXNlcyBpbgorCQkgKiB0aGUgbmV4dCBpdGVyYXRpb24sIHRoZXJlJ3Mgbm8gd2F5IHRoYXQgbSBjYW4KKwkJICogaW5jcmVhc2UgYmV5b25kIHRoZSBjdXJyZW50IG0pCisJCSAqLworCQlpZiAociAmIERQTExfTVVMVF9VTkRFUkZMT1cpCisJCQlicmVhazsKKwl9CisKKwlpZiAobWluX2UgPCAwKSB7CisJCXByX2RlYnVnKCJjbG9jazogZXJyb3I6IHRhcmdldCByYXRlIG9yIHRvbGVyYW5jZSB0b28gbG93XG4iKTsKKwkJcmV0dXJuIH4wOworCX0KKworCWNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfbSA9IG1pbl9lX207CisJY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9uID0gbWluX2VfbjsKKwljbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX3JhdGUgPQorCQlfZHBsbF9jb21wdXRlX25ld19yYXRlKGNsay0+cGFyZW50LT5yYXRlLCBtaW5fZV9tLCAgbWluX2Vfbik7CisKKwlwcl9kZWJ1ZygiY2xvY2s6IGZpbmFsIGxlYXN0IGVycm9yOiBlID0gJWQsIG0gPSAlZCwgbiA9ICVkXG4iLAorCQkgbWluX2UsIG1pbl9lX20sIG1pbl9lX24pOworCXByX2RlYnVnKCJjbG9jazogZmluYWwgcmF0ZTogJWxkICAodGFyZ2V0IHJhdGU6ICVsZClcbiIsCisJCSBjbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX3JhdGUsIHRhcmdldF9yYXRlKTsKKworCXJldHVybiBjbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX3JhdGU7Cit9CisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT21hcDIgY2xvY2sgcmVzZXQgYW5kIGluaXQgZnVuY3Rpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5oCmluZGV4IGQ1OTgwYTkuLjNjZDM3Y2IgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmgKQEAgLTE4LDExICsxOCwxNiBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KIAorLyogVGhlIG1heGltdW0gZXJyb3IgYmV0d2VlbiBhIHRhcmdldCBEUExMIHJhdGUgYW5kIHRoZSByb3VuZGVkIHJhdGUgaW4gSHogKi8KKyNkZWZpbmUgREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCTUwMDAwCisKIGludCBvbWFwMl9jbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsayk7CiB2b2lkIG9tYXAyX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsayk7CiBsb25nIG9tYXAyX2Nsa19yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKIGludCBvbWFwMl9jbGtfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpOwogaW50IG9tYXAyX2Nsa19zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqbmV3X3BhcmVudCk7CitpbnQgb21hcDJfZHBsbF9yYXRlX3RvbGVyYW5jZV9zZXQoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBpbnQgdG9sZXJhbmNlKTsKK2xvbmcgb21hcDJfZHBsbF9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSk7CiAKICNpZmRlZiBDT05GSUdfT01BUF9SRVNFVF9DTE9DS1MKIHZvaWQgb21hcDJfY2xrX2Rpc2FibGVfdW51c2VkKHN0cnVjdCBjbGsgKmNsayk7CkBAIC00Miw2ICs0Nyw3IEBACiBpbnQgb21hcDJfY2xrc2VsX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKIHUzMiBvbWFwMl9nZXRfZHBsbF9yYXRlKHN0cnVjdCBjbGsgKmNsayk7CiBpbnQgb21hcDJfd2FpdF9jbG9ja19yZWFkeSh2b2lkIF9faW9tZW0gKnJlZywgdTMyIGN2YWwsIGNvbnN0IGNoYXIgKm5hbWUpOwordm9pZCBvbWFwMl9jbGtfcHJlcGFyZV9mb3JfcmVib290KHZvaWQpOwogCiBleHRlcm4gdTggY3B1X21hc2s7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5jCmluZGV4IGVjZTMyZDguLmFhNTY3ODcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguYwpAQCAtMTU0LDcgKzE1NCw3IEBACiAgKiBVc2VzIHRoZSBjdXJyZW50IHByY20gc2V0IHRvIHRlbGwgaWYgYSByYXRlIGlzIHZhbGlkLgogICogWW91IGNhbiBnbyBzbG93ZXIsIGJ1dCBub3QgZmFzdGVyIHdpdGhpbiBhIGdpdmVuIHJhdGUgc2V0LgogICovCi1zdGF0aWMgdTMyIG9tYXAyX2RwbGxfcm91bmRfcmF0ZSh1bnNpZ25lZCBsb25nIHRhcmdldF9yYXRlKQorbG9uZyBvbWFwMl9kcGxsY29yZV9yb3VuZF9yYXRlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0X3JhdGUpCiB7CiAJdTMyIGhpZ2gsIGxvdywgY29yZV9jbGtfc3JjOwogCkBAIC0xODMsMTQgKzE4MywxNCBAQAogCiB9CiAKLXN0YXRpYyB2b2lkIG9tYXAyX2RwbGxfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3N0YXRpYyB2b2lkIG9tYXAyX2RwbGxjb3JlX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCiB7CiAJY2xrLT5yYXRlID0gb21hcDJfZ2V0X2RwbGxfcmF0ZV8yNHh4KGNsayk7CiAKIAlwcm9wYWdhdGVfcmF0ZShjbGspOwogfQogCi1zdGF0aWMgaW50IG9tYXAyX3JlcHJvZ3JhbV9kcGxsKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQorc3RhdGljIGludCBvbWFwMl9yZXByb2dyYW1fZHBsbGNvcmUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCiB7CiAJdTMyIGN1cl9yYXRlLCBsb3csIG11bHQsIGRpdiwgdmFsaWRfcmF0ZSwgZG9uZV9yYXRlOwogCXUzMiBieXBhc3MgPSAwOwpAQCAtMjA5LDcgKzIwOSw3IEBACiAJfSBlbHNlIGlmICgocmF0ZSA9PSAoY3VyX3JhdGUgKiAyKSkgJiYgKG11bHQgPT0gMSkpIHsKIAkJb21hcDJfcmVwcm9ncmFtX3NkcmMoQ09SRV9DTEtfU1JDX0RQTExfWDIsIDEpOwogCX0gZWxzZSBpZiAocmF0ZSAhPSBjdXJfcmF0ZSkgewotCQl2YWxpZF9yYXRlID0gb21hcDJfZHBsbF9yb3VuZF9yYXRlKHJhdGUpOworCQl2YWxpZF9yYXRlID0gb21hcDJfZHBsbGNvcmVfcm91bmRfcmF0ZShyYXRlKTsKIAkJaWYgKHZhbGlkX3JhdGUgIT0gcmF0ZSkKIAkJCWdvdG8gZHBsbF9leGl0OwogCkBAIC0yNTYsNyArMjU2LDcgQEAKIAkJb21hcDJfaW5pdF9tZW1vcnlfcGFyYW1zKG9tYXAyX2RsbF9mb3JjZV9uZWVkZWQoKSk7CiAJCW9tYXAyX3JlcHJvZ3JhbV9zZHJjKGRvbmVfcmF0ZSwgMCk7CiAJfQotCW9tYXAyX2RwbGxfcmVjYWxjKCZkcGxsX2NrKTsKKwlvbWFwMl9kcGxsY29yZV9yZWNhbGMoJmRwbGxfY2spOwogCXJldCA9IDA7CiAKIGRwbGxfZXhpdDoKQEAgLTM4Myw3ICszODMsNyBAQAogCiAJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAl9Ci0Jb21hcDJfZHBsbF9yZWNhbGMoJmRwbGxfY2spOworCW9tYXAyX2RwbGxjb3JlX3JlY2FsYygmZHBsbF9jayk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5oCmluZGV4IDg4MDgxZWQuLmJlNGUyNTUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguaApAQCAtMzAsMTIgKzMwLDEyIEBACiBzdGF0aWMgdm9pZCBvbWFwMl9zeXNfY2xrX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIHZvaWQgb21hcDJfb3NjX2Nsa19yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyB2b2lkIG9tYXAyX3N5c19jbGtfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7Ci1zdGF0aWMgdm9pZCBvbWFwMl9kcGxsX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIHZvaWQgb21hcDJfZHBsbGNvcmVfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgaW50IG9tYXAyX2Nsa19maXhlZF9lbmFibGUoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyB2b2lkIG9tYXAyX2Nsa19maXhlZF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgaW50IG9tYXAyX2VuYWJsZV9vc2NfY2soc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyB2b2lkIG9tYXAyX2Rpc2FibGVfb3NjX2NrKHN0cnVjdCBjbGsgKmNsayk7Ci1zdGF0aWMgaW50IG9tYXAyX3JlcHJvZ3JhbV9kcGxsKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKK3N0YXRpYyBpbnQgb21hcDJfcmVwcm9ncmFtX2RwbGxjb3JlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKIAogLyogS2V5IGRpdmlkZXJzIHdoaWNoIG1ha2UgdXAgYSBQUkNNIHNldC4gUmF0aW8ncyBmb3IgYSBQUkNNIGFyZSBtYW5kYXRlZC4KICAqIHh0YWxfc3BlZWQsIGRwbGxfc3BlZWQsIG1wdV9zcGVlZCwgQ01fQ0xLU0VMX01QVSxDTV9DTEtTRUxfRFNQCkBAIC02NjUsMjAgKzY2NSwyNyBAQAogICogZGVhbCB3aXRoIHRoaXMKICAqLwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsX2RkID0geworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbF9kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwkJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSksCiAJLm11bHRfbWFzawkJPSBPTUFQMjRYWF9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCQk9IE9NQVAyNFhYX0RQTExfRElWX01BU0ssCisJLm1heF9tdWx0aXBsaWVyCQk9IDEwMjQsCisJLm1heF9kaXZpZGVyCQk9IDE2LAorCS5yYXRlX3RvbGVyYW5jZQkJPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKKy8qCisgKiBYWFggQ2Fubm90IGFkZCByb3VuZF9yYXRlIGhlcmUgeWV0LCBhcyB0aGlzIGlzIHN0aWxsIGEgY29tcG9zaXRlIGNsb2NrLAorICogbm90IGp1c3QgYSBEUExMCisgKi8KIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGxfY2sgPSB7CiAJLm5hbWUJCT0gImRwbGxfY2siLAogCS5wYXJlbnQJCT0gJnN5c19jaywJCS8qIENhbiBiZSBmdW5jXzMyayBhbHNvICovCiAJLmRwbGxfZGF0YQk9ICZkcGxsX2RkLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQyWCB8IENMT0NLX0lOX09NQVAyNDNYIHwKIAkJCQlSQVRFX1BST1BBR0FURVMgfCBBTFdBWVNfRU5BQkxFRCwKLQkucmVjYWxjCQk9ICZvbWFwMl9kcGxsX3JlY2FsYywKLQkuc2V0X3JhdGUJPSAmb21hcDJfcmVwcm9ncmFtX2RwbGwsCisJLnJlY2FsYwkJPSAmb21hcDJfZHBsbGNvcmVfcmVjYWxjLAorCS5zZXRfcmF0ZQk9ICZvbWFwMl9yZXByb2dyYW1fZHBsbGNvcmUsCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBhcGxsOTZfY2sgPSB7CkBAIC0xNzQ3LDcgKzE3NTQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AxX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AxX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDEsCiAJLnBhcmVudAkJPSAmbDRfY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDJYIHwgQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLApAQCAtMTc1Niw3ICsxNzY0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMV9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMV9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAxLAogCS5wYXJlbnQJCT0gJmZ1bmNfOTZtX2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQyWCB8IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKQEAgLTE3NjUsNyArMTc3NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDJfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMiwKIAkucGFyZW50CQk9ICZsNF9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0MlggfCBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCkBAIC0xNzc0LDcgKzE3ODQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AyX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AyX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDIsCiAJLnBhcmVudAkJPSAmZnVuY185Nm1fY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDJYIHwgQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLApAQCAtMTc4Myw3ICsxNzk0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwM19pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwM19pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAzLAogCS5wYXJlbnQJCT0gJmw0X2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMiksCkBAIC0xNzkyLDcgKzE4MDQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AzX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AzX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDMsCiAJLnBhcmVudAkJPSAmZnVuY185Nm1fY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBPTUFQMjRYWF9DTV9GQ0xLRU4yKSwKQEAgLTE4MDEsNyArMTgxNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDRfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDRfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gNCwKIAkucGFyZW50CQk9ICZsNF9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjIpLApAQCAtMTgxMCw3ICsxODI0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNF9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNF9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSA0LAogCS5wYXJlbnQJCT0gJmZ1bmNfOTZtX2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgT01BUDI0WFhfQ01fRkNMS0VOMiksCkBAIC0xODE5LDcgKzE4MzQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A1X2ljayA9IHsKLQkubmFtZQkJPSAibWNic3A1X2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDUsCiAJLnBhcmVudAkJPSAmbDRfY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4yKSwKQEAgLTE4MjgsNyArMTg0NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDVfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDVfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gNSwKIAkucGFyZW50CQk9ICZmdW5jXzk2bV9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIE9NQVAyNFhYX0NNX0ZDTEtFTjIpLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmMKaW5kZXggYjQyYmRkNi4uNDI2MzA5OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jCkBAIC0xLDEwICsxLDExIEBACiAvKgogICogT01BUDMtc3BlY2lmaWMgY2xvY2sgZnJhbWV3b3JrIGZ1bmN0aW9ucwogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDA3IE5va2lhIENvcnBvcmF0aW9uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggTm9raWEgQ29ycG9yYXRpb24KICAqCiAgKiBXcml0dGVuIGJ5IFBhdWwgV2FsbXNsZXkKKyAqIFRlc3RpbmcgYW5kIGludGVncmF0aW9uIGZpeGVzIGJ5IEpvdW5pIEjDtmdhbmRlcgogICoKICAqIFBhcnRzIG9mIHRoaXMgY29kZSBhcmUgYmFzZWQgb24gY29kZSB3cml0dGVuIGJ5CiAgKiBSaWNoYXJkIFdvb2RydWZmLCBUb255IExpbmRncmVuLCBUdXVra2EgVGlra2FuZW4sIEthcnRoaWsgRGFzdQpAQCAtMjMsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9saW1pdHMuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL2Nsb2NrLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc3JhbS5oPgpAQCAtMzcsOCArMzksMTEgQEAKICNpbmNsdWRlICJjbS5oIgogI2luY2x1ZGUgImNtLXJlZ2JpdHMtMzR4eC5oIgogCi0vKiBDTV9DTEtFTl9QTEwqLkVOKiBiaXQgdmFsdWVzICovCi0jZGVmaW5lIERQTExfTE9DS0VECQkweDcKKy8qIENNX0FVVE9JRExFX1BMTCouQVVUT18qIGJpdCB2YWx1ZXMgKi8KKyNkZWZpbmUgRFBMTF9BVVRPSURMRV9ESVNBQkxFCQkJMHgwCisjZGVmaW5lIERQTExfQVVUT0lETEVfTE9XX1BPV0VSX1NUT1AJCTB4MQorCisjZGVmaW5lIE1BWF9EUExMX1dBSVRfVFJJRVMJCTEwMDAwMDAKIAogLyoqCiAgKiBvbWFwM19kcGxsX3JlY2FsYyAtIHJlY2FsY3VsYXRlIERQTEwgcmF0ZQpAQCAtNTMsNiArNTgsMjkwIEBACiAJcHJvcGFnYXRlX3JhdGUoY2xrKTsKIH0KIAorLyogX29tYXAzX2RwbGxfd3JpdGVfY2xrZW4gLSB3cml0ZSBjbGtlbl9iaXRzIGFyZyB0byBhIERQTEwncyBlbmFibGUgYml0cyAqLworc3RhdGljIHZvaWQgX29tYXAzX2RwbGxfd3JpdGVfY2xrZW4oc3RydWN0IGNsayAqY2xrLCB1OCBjbGtlbl9iaXRzKQoreworCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCisJZGQgPSBjbGstPmRwbGxfZGF0YTsKKworCWNtX3Jtd19yZWdfYml0cyhkZC0+ZW5hYmxlX21hc2ssIGNsa2VuX2JpdHMgPDwgX19mZnMoZGQtPmVuYWJsZV9tYXNrKSwKKwkJCWRkLT5jb250cm9sX3JlZyk7Cit9CisKKy8qIF9vbWFwM193YWl0X2RwbGxfc3RhdHVzOiB3YWl0IGZvciBhIERQTEwgdG8gZW50ZXIgYSBzcGVjaWZpYyBzdGF0ZSAqLworc3RhdGljIGludCBfb21hcDNfd2FpdF9kcGxsX3N0YXR1cyhzdHJ1Y3QgY2xrICpjbGssIHU4IHN0YXRlKQoreworCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCWludCBpID0gMDsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKwl1MzIgaWRsZXN0X21hc2s7CisKKwlkZCA9IGNsay0+ZHBsbF9kYXRhOworCisJc3RhdGUgPDw9IGRkLT5pZGxlc3RfYml0OworCWlkbGVzdF9tYXNrID0gMSA8PCBkZC0+aWRsZXN0X2JpdDsKKworCXdoaWxlICgoKGNtX3JlYWRfcmVnKGRkLT5pZGxlc3RfcmVnKSAmIGlkbGVzdF9tYXNrKSAhPSBzdGF0ZSkgJiYKKwkgICAgICAgaSA8IE1BWF9EUExMX1dBSVRfVFJJRVMpIHsKKwkJaSsrOworCQl1ZGVsYXkoMSk7CisJfQorCisJaWYgKGkgPT0gTUFYX0RQTExfV0FJVF9UUklFUykgeworCQlwcmludGsoS0VSTl9FUlIgImNsb2NrOiAlcyBmYWlsZWQgdHJhbnNpdGlvbiB0byAnJXMnXG4iLAorCQkgICAgICAgY2xrLT5uYW1lLCAoc3RhdGUpID8gImxvY2tlZCIgOiAiYnlwYXNzZWQiKTsKKwl9IGVsc2UgeworCQlwcl9kZWJ1ZygiY2xvY2s6ICVzIHRyYW5zaXRpb24gdG8gJyVzJyBpbiAlZCBsb29wc1xuIiwKKwkJCSBjbGstPm5hbWUsIChzdGF0ZSkgPyAibG9ja2VkIiA6ICJieXBhc3NlZCIsIGkpOworCisJCXJldCA9IDA7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworLyogTm9uLUNPUkUgRFBMTCAoZS5nLiwgRFBMTHMgdGhhdCBkbyBub3QgY29udHJvbCBTRFJDKSBjbG9jayBmdW5jdGlvbnMgKi8KKworLyoKKyAqIF9vbWFwM19ub25jb3JlX2RwbGxfbG9jayAtIGluc3RydWN0IGEgRFBMTCB0byBsb2NrIGFuZCB3YWl0IGZvciByZWFkaW5lc3MKKyAqIEBjbGs6IHBvaW50ZXIgdG8gYSBEUExMIHN0cnVjdCBjbGsKKyAqCisgKiBJbnN0cnVjdHMgYSBub24tQ09SRSBEUExMIHRvIGxvY2suICBXYWl0cyBmb3IgdGhlIERQTEwgdG8gcmVwb3J0CisgKiByZWFkaW5lc3MgYmVmb3JlIHJldHVybmluZy4gIFdpbGwgc2F2ZSBhbmQgcmVzdG9yZSB0aGUgRFBMTCdzCisgKiBhdXRvaWRsZSBzdGF0ZSBhY3Jvc3MgdGhlIGVuYWJsZSwgcGVyIHRoZSBDRFAgY29kZS4gIElmIHRoZSBEUExMCisgKiBsb2NrZWQgc3VjY2Vzc2Z1bGx5LCByZXR1cm4gMDsgaWYgdGhlIERQTEwgZGlkIG5vdCBsb2NrIGluIHRoZSB0aW1lCisgKiBhbGxvdHRlZCwgb3IgRFBMTDMgd2FzIHBhc3NlZCBpbiwgcmV0dXJuIC1FSU5WQUwuCisgKi8KK3N0YXRpYyBpbnQgX29tYXAzX25vbmNvcmVfZHBsbF9sb2NrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1OCBhaTsKKwlpbnQgcjsKKworCWlmIChjbGsgPT0gJmRwbGwzX2NrKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByX2RlYnVnKCJjbG9jazogbG9ja2luZyBEUExMICVzXG4iLCBjbGstPm5hbWUpOworCisJYWkgPSBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoY2xrKTsKKworCV9vbWFwM19kcGxsX3dyaXRlX2Nsa2VuKGNsaywgRFBMTF9MT0NLRUQpOworCisJaWYgKGFpKSB7CisJCS8qCisJCSAqIElmIG5vIGRvd25zdHJlYW0gY2xvY2tzIGFyZSBlbmFibGVkLCBDTV9JRExFU1QgYml0CisJCSAqIG1heSBuZXZlciBiZWNvbWUgYWN0aXZlLCBzbyBkb24ndCB3YWl0IGZvciBEUExMIHRvIGxvY2suCisJCSAqLworCQlyID0gMDsKKwkJb21hcDNfZHBsbF9hbGxvd19pZGxlKGNsayk7CisJfSBlbHNlIHsKKwkJciA9IF9vbWFwM193YWl0X2RwbGxfc3RhdHVzKGNsaywgMSk7CisJCW9tYXAzX2RwbGxfZGVueV9pZGxlKGNsayk7CisJfTsKKworCXJldHVybiByOworfQorCisvKgorICogb21hcDNfbm9uY29yZV9kcGxsX2J5cGFzcyAtIGluc3RydWN0IGEgRFBMTCB0byBieXBhc3MgYW5kIHdhaXQgZm9yIHJlYWRpbmVzcworICogQGNsazogcG9pbnRlciB0byBhIERQTEwgc3RydWN0IGNsaworICoKKyAqIEluc3RydWN0cyBhIG5vbi1DT1JFIERQTEwgdG8gZW50ZXIgbG93LXBvd2VyIGJ5cGFzcyBtb2RlLiAgSW4KKyAqIGJ5cGFzcyBtb2RlLCB0aGUgRFBMTCdzIHJhdGUgaXMgc2V0IGVxdWFsIHRvIGl0cyBwYXJlbnQgY2xvY2sncworICogcmF0ZS4gIFdhaXRzIGZvciB0aGUgRFBMTCB0byByZXBvcnQgcmVhZGluZXNzIGJlZm9yZSByZXR1cm5pbmcuCisgKiBXaWxsIHNhdmUgYW5kIHJlc3RvcmUgdGhlIERQTEwncyBhdXRvaWRsZSBzdGF0ZSBhY3Jvc3MgdGhlIGVuYWJsZSwKKyAqIHBlciB0aGUgQ0RQIGNvZGUuICBJZiB0aGUgRFBMTCBlbnRlcmVkIGJ5cGFzcyBtb2RlIHN1Y2Nlc3NmdWxseSwKKyAqIHJldHVybiAwOyBpZiB0aGUgRFBMTCBkaWQgbm90IGVudGVyIGJ5cGFzcyBpbiB0aGUgdGltZSBhbGxvdHRlZCwgb3IKKyAqIERQTEwzIHdhcyBwYXNzZWQgaW4sIG9yIHRoZSBEUExMIGRvZXMgbm90IHN1cHBvcnQgbG93LXBvd2VyIGJ5cGFzcywKKyAqIHJldHVybiAtRUlOVkFMLgorICovCitzdGF0aWMgaW50IF9vbWFwM19ub25jb3JlX2RwbGxfYnlwYXNzKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpbnQgcjsKKwl1OCBhaTsKKworCWlmIChjbGsgPT0gJmRwbGwzX2NrKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghKGNsay0+ZHBsbF9kYXRhLT5tb2RlcyAmICgxIDw8IERQTExfTE9XX1BPV0VSX0JZUEFTUykpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByX2RlYnVnKCJjbG9jazogY29uZmlndXJpbmcgRFBMTCAlcyBmb3IgbG93LXBvd2VyIGJ5cGFzc1xuIiwKKwkJIGNsay0+bmFtZSk7CisKKwlhaSA9IG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChjbGspOworCisJX29tYXAzX2RwbGxfd3JpdGVfY2xrZW4oY2xrLCBEUExMX0xPV19QT1dFUl9CWVBBU1MpOworCisJciA9IF9vbWFwM193YWl0X2RwbGxfc3RhdHVzKGNsaywgMCk7CisKKwlpZiAoYWkpCisJCW9tYXAzX2RwbGxfYWxsb3dfaWRsZShjbGspOworCWVsc2UKKwkJb21hcDNfZHBsbF9kZW55X2lkbGUoY2xrKTsKKworCXJldHVybiByOworfQorCisvKgorICogX29tYXAzX25vbmNvcmVfZHBsbF9zdG9wIC0gaW5zdHJ1Y3QgYSBEUExMIHRvIHN0b3AKKyAqIEBjbGs6IHBvaW50ZXIgdG8gYSBEUExMIHN0cnVjdCBjbGsKKyAqCisgKiBJbnN0cnVjdHMgYSBub24tQ09SRSBEUExMIHRvIGVudGVyIGxvdy1wb3dlciBzdG9wLiBXaWxsIHNhdmUgYW5kCisgKiByZXN0b3JlIHRoZSBEUExMJ3MgYXV0b2lkbGUgc3RhdGUgYWNyb3NzIHRoZSBzdG9wLCBwZXIgdGhlIENEUAorICogY29kZS4gIElmIERQTEwzIHdhcyBwYXNzZWQgaW4sIG9yIHRoZSBEUExMIGRvZXMgbm90IHN1cHBvcnQKKyAqIGxvdy1wb3dlciBzdG9wLCByZXR1cm4gLUVJTlZBTDsgb3RoZXJ3aXNlLCByZXR1cm4gMC4KKyAqLworc3RhdGljIGludCBfb21hcDNfbm9uY29yZV9kcGxsX3N0b3Aoc3RydWN0IGNsayAqY2xrKQoreworCXU4IGFpOworCisJaWYgKGNsayA9PSAmZHBsbDNfY2spCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCEoY2xrLT5kcGxsX2RhdGEtPm1vZGVzICYgKDEgPDwgRFBMTF9MT1dfUE9XRVJfU1RPUCkpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByX2RlYnVnKCJjbG9jazogc3RvcHBpbmcgRFBMTCAlc1xuIiwgY2xrLT5uYW1lKTsKKworCWFpID0gb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKGNsayk7CisKKwlfb21hcDNfZHBsbF93cml0ZV9jbGtlbihjbGssIERQTExfTE9XX1BPV0VSX1NUT1ApOworCisJaWYgKGFpKQorCQlvbWFwM19kcGxsX2FsbG93X2lkbGUoY2xrKTsKKwllbHNlCisJCW9tYXAzX2RwbGxfZGVueV9pZGxlKGNsayk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlIC0gaW5zdHJ1Y3QgYSBEUExMIHRvIGVudGVyIGJ5cGFzcyBvciBsb2NrIG1vZGUKKyAqIEBjbGs6IHBvaW50ZXIgdG8gYSBEUExMIHN0cnVjdCBjbGsKKyAqCisgKiBJbnN0cnVjdHMgYSBub24tQ09SRSBEUExMIHRvIGVuYWJsZSwgZS5nLiwgdG8gZW50ZXIgYnlwYXNzIG9yIGxvY2suCisgKiBUaGUgY2hvaWNlIG9mIG1vZGVzIGRlcGVuZHMgb24gdGhlIERQTEwncyBwcm9ncmFtbWVkIHJhdGU6IGlmIGl0IGlzCisgKiB0aGUgc2FtZSBhcyB0aGUgRFBMTCdzIHBhcmVudCBjbG9jaywgaXQgd2lsbCBlbnRlciBieXBhc3M7CisgKiBvdGhlcndpc2UsIGl0IHdpbGwgZW50ZXIgbG9jay4gIFRoaXMgY29kZSB3aWxsIHdhaXQgZm9yIHRoZSBEUExMIHRvCisgKiBpbmRpY2F0ZSByZWFkaW5lc3MgYmVmb3JlIHJldHVybmluZywgdW5sZXNzIHRoZSBEUExMIHRha2VzIHRvbyBsb25nCisgKiB0byBlbnRlciB0aGUgdGFyZ2V0IHN0YXRlLiAgSW50ZW5kZWQgdG8gYmUgdXNlZCBhcyB0aGUgc3RydWN0IGNsaydzCisgKiBlbmFibGUgZnVuY3Rpb24uICBJZiBEUExMMyB3YXMgcGFzc2VkIGluLCBvciB0aGUgRFBMTCBkb2VzIG5vdAorICogc3VwcG9ydCBsb3ctcG93ZXIgc3RvcCwgb3IgaWYgdGhlIERQTEwgdG9vayB0b28gbG9uZyB0byBlbnRlcgorICogYnlwYXNzIG9yIGxvY2ssIHJldHVybiAtRUlOVkFMOyBvdGhlcndpc2UsIHJldHVybiAwLgorICovCitzdGF0aWMgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCWludCByOworCisJaWYgKGNsayA9PSAmZHBsbDNfY2spCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGNsay0+cGFyZW50LT5yYXRlID09IGNsa19nZXRfcmF0ZShjbGspKQorCQlyID0gX29tYXAzX25vbmNvcmVfZHBsbF9ieXBhc3MoY2xrKTsKKwllbHNlCisJCXIgPSBfb21hcDNfbm9uY29yZV9kcGxsX2xvY2soY2xrKTsKKworCXJldHVybiByOworfQorCisvKioKKyAqIG9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUgLSBpbnN0cnVjdCBhIERQTEwgdG8gZW50ZXIgYnlwYXNzIG9yIGxvY2sgbW9kZQorICogQGNsazogcG9pbnRlciB0byBhIERQTEwgc3RydWN0IGNsaworICoKKyAqIEluc3RydWN0cyBhIG5vbi1DT1JFIERQTEwgdG8gZW5hYmxlLCBlLmcuLCB0byBlbnRlciBieXBhc3Mgb3IgbG9jay4KKyAqIFRoZSBjaG9pY2Ugb2YgbW9kZXMgZGVwZW5kcyBvbiB0aGUgRFBMTCdzIHByb2dyYW1tZWQgcmF0ZTogaWYgaXQgaXMKKyAqIHRoZSBzYW1lIGFzIHRoZSBEUExMJ3MgcGFyZW50IGNsb2NrLCBpdCB3aWxsIGVudGVyIGJ5cGFzczsKKyAqIG90aGVyd2lzZSwgaXQgd2lsbCBlbnRlciBsb2NrLiAgVGhpcyBjb2RlIHdpbGwgd2FpdCBmb3IgdGhlIERQTEwgdG8KKyAqIGluZGljYXRlIHJlYWRpbmVzcyBiZWZvcmUgcmV0dXJuaW5nLCB1bmxlc3MgdGhlIERQTEwgdGFrZXMgdG9vIGxvbmcKKyAqIHRvIGVudGVyIHRoZSB0YXJnZXQgc3RhdGUuICBJbnRlbmRlZCB0byBiZSB1c2VkIGFzIHRoZSBzdHJ1Y3QgY2xrJ3MKKyAqIGVuYWJsZSBmdW5jdGlvbi4gIElmIERQTEwzIHdhcyBwYXNzZWQgaW4sIG9yIHRoZSBEUExMIGRvZXMgbm90CisgKiBzdXBwb3J0IGxvdy1wb3dlciBzdG9wLCBvciBpZiB0aGUgRFBMTCB0b29rIHRvbyBsb25nIHRvIGVudGVyCisgKiBieXBhc3Mgb3IgbG9jaywgcmV0dXJuIC1FSU5WQUw7IG90aGVyd2lzZSwgcmV0dXJuIDAuCisgKi8KK3N0YXRpYyB2b2lkIG9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpZiAoY2xrID09ICZkcGxsM19jaykKKwkJcmV0dXJuOworCisJX29tYXAzX25vbmNvcmVfZHBsbF9zdG9wKGNsayk7Cit9CisKKy8qKgorICogb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkIC0gcmVhZCBhIERQTEwncyBhdXRvaWRsZSBiaXRzCisgKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gcmVhZAorICoKKyAqIFJldHVybiB0aGUgRFBMTCdzIGF1dG9pZGxlIGJpdHMsIHNoaWZ0ZWQgZG93biB0byBiaXQgMC4gIFJldHVybnMKKyAqIC1FSU5WQUwgaWYgcGFzc2VkIGEgbnVsbCBwb2ludGVyIG9yIGlmIHRoZSBzdHJ1Y3QgY2xrIGRvZXMgbm90CisgKiBhcHBlYXIgdG8gcmVmZXIgdG8gYSBEUExMLgorICovCitzdGF0aWMgdTMyIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xrICpjbGspCit7CisJY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisJdTMyIHY7CisKKwlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCisJCXJldHVybiAtRUlOVkFMOworCisJZGQgPSBjbGstPmRwbGxfZGF0YTsKKworCXYgPSBjbV9yZWFkX3JlZyhkZC0+YXV0b2lkbGVfcmVnKTsKKwl2ICY9IGRkLT5hdXRvaWRsZV9tYXNrOworCXYgPj49IF9fZmZzKGRkLT5hdXRvaWRsZV9tYXNrKTsKKworCXJldHVybiB2OworfQorCisvKioKKyAqIG9tYXAzX2RwbGxfYWxsb3dfaWRsZSAtIGVuYWJsZSBEUExMIGF1dG9pZGxlIGJpdHMKKyAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiB0aGUgRFBMTCB0byBvcGVyYXRlIG9uCisgKgorICogRW5hYmxlIERQTEwgYXV0b21hdGljIGlkbGUgY29udHJvbC4gIFRoaXMgYXV0b21hdGljIGlkbGUgbW9kZQorICogc3dpdGNoaW5nIHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gdGhlIERQTEwgaXMgbG9ja2VkLCBhdCBsZWFzdCBvbgorICogT01BUDM0MzAuICBUaGUgRFBMTCB3aWxsIGVudGVyIGxvdy1wb3dlciBzdG9wIHdoZW4gaXRzIGRvd25zdHJlYW0KKyAqIGNsb2NrcyBhcmUgZ2F0ZWQuICBObyByZXR1cm4gdmFsdWUuCisgKi8KK3N0YXRpYyB2b2lkIG9tYXAzX2RwbGxfYWxsb3dfaWRsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisKKwlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCisJCXJldHVybjsKKworCWRkID0gY2xrLT5kcGxsX2RhdGE7CisKKwkvKgorCSAqIFJFVklTSVQ6IENPUkUgRFBMTCBjYW4gb3B0aW9uYWxseSBlbnRlciBsb3ctcG93ZXIgYnlwYXNzCisJICogYnkgd3JpdGluZyAweDUgaW5zdGVhZCBvZiAweDEuICBBZGQgc29tZSBtZWNoYW5pc20gdG8KKwkgKiBvcHRpb25hbGx5IGVudGVyIHRoaXMgbW9kZS4KKwkgKi8KKwljbV9ybXdfcmVnX2JpdHMoZGQtPmF1dG9pZGxlX21hc2ssCisJCQlEUExMX0FVVE9JRExFX0xPV19QT1dFUl9TVE9QIDw8IF9fZmZzKGRkLT5hdXRvaWRsZV9tYXNrKSwKKwkJCWRkLT5hdXRvaWRsZV9yZWcpOworfQorCisvKioKKyAqIG9tYXAzX2RwbGxfZGVueV9pZGxlIC0gcHJldmVudCBEUExMIGZyb20gYXV0b21hdGljYWxseSBpZGxpbmcKKyAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiB0aGUgRFBMTCB0byBvcGVyYXRlIG9uCisgKgorICogRGlzYWJsZSBEUExMIGF1dG9tYXRpYyBpZGxlIGNvbnRyb2wuICBObyByZXR1cm4gdmFsdWUuCisgKi8KK3N0YXRpYyB2b2lkIG9tYXAzX2RwbGxfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKworCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKKwkJcmV0dXJuOworCisJZGQgPSBjbGstPmRwbGxfZGF0YTsKKworCWNtX3Jtd19yZWdfYml0cyhkZC0+YXV0b2lkbGVfbWFzaywKKwkJCURQTExfQVVUT0lETEVfRElTQUJMRSA8PCBfX2ZmcyhkZC0+YXV0b2lkbGVfbWFzayksCisJCQlkZC0+YXV0b2lkbGVfcmVnKTsKK30KKworLyogQ2xvY2sgY29udHJvbCBmb3IgRFBMTCBvdXRwdXRzICovCisKIC8qKgogICogb21hcDNfY2xrb3V0eDJfcmVjYWxjIC0gcmVjYWxjdWxhdGUgRFBMTCBYMiBvdXRwdXQgdmlydHVhbCBjbG9jayByYXRlCiAgKiBAY2xrOiBEUExMIG91dHB1dCBzdHJ1Y3QgY2xrCkBAIC04OSw2ICszNzgsOCBAQAogCQlwcm9wYWdhdGVfcmF0ZShjbGspOwogfQogCisvKiBDb21tb24gY2xvY2sgY29kZSAqLworCiAvKgogICogQXMgaXQgaXMgc3RydWN0dXJlZCBub3csIHRoaXMgd2lsbCBwcmV2ZW50IGFuIE9NQVAyLzMgbXVsdGlib290CiAgKiBrZXJuZWwgZnJvbSBjb21waWxpbmcuICBUaGlzIHdpbGwgbmVlZCBmdXJ0aGVyIGF0dGVudGlvbi4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5oCmluZGV4IGM5YzU5NzIuLjA1NzU3ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaApAQCAtMSwxNCArMSwxOSBAQAogLyoKICAqIE9NQVAzIGNsb2NrIGZyYW1ld29yawogICoKLSAqIFZpcnR1YWwgY2xvY2tzIGFyZSBpbnRyb2R1Y2VkIGFzIGEgY29udmVuaWVudCB0b29scy4KLSAqIFRoZXkgYXJlIHNvdXJjZXMgZm9yIG90aGVyIGNsb2NrcyBhbmQgbm90IHN1cHBvc2VkCi0gKiB0byBiZSByZXF1ZXN0ZWQgZnJvbSBkcml2ZXJzIGRpcmVjdGx5LgotICoKICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbgogICoKICAqIFdyaXR0ZW4gYnkgUGF1bCBXYWxtc2xleQorICogV2l0aCBtYW55IGRldmljZSBjbG9jayBmaXhlcyBieSBLZXZpbiBIaWxtYW4gYW5kIEpvdW5pIEjDtmdhbmRlcgorICogRFBMTCBieXBhc3MgY2xvY2sgc3VwcG9ydCBhZGRlZCBieSBSb21hbiBUZXJlc2hvbmtvdgorICoKKyAqLworCisvKgorICogVmlydHVhbCBjbG9ja3MgYXJlIGludHJvZHVjZWQgYXMgY29udmVuaWVudCB0b29scy4KKyAqIFRoZXkgYXJlIHNvdXJjZXMgZm9yIG90aGVyIGNsb2NrcyBhbmQgbm90IHN1cHBvc2VkCisgKiB0byBiZSByZXF1ZXN0ZWQgZnJvbSBkcml2ZXJzIGRpcmVjdGx5LgogICovCiAKICNpZm5kZWYgX19BUkNIX0FSTV9NQUNIX09NQVAyX0NMT0NLMzRYWF9ICkBAIC0yNCw2ICsyOSwxNSBAQAogCiBzdGF0aWMgdm9pZCBvbWFwM19kcGxsX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIHZvaWQgb21hcDNfY2xrb3V0eDJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgdm9pZCBvbWFwM19kcGxsX2FsbG93X2lkbGUoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyB2b2lkIG9tYXAzX2RwbGxfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgdTMyIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIGludCBvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgdm9pZCBvbWFwM19ub25jb3JlX2RwbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspOworCisvKiBNYXhpbXVtIERQTEwgbXVsdGlwbGllciwgZGl2aWRlciB2YWx1ZXMgZm9yIE9NQVAzICovCisjZGVmaW5lIE9NQVAzX01BWF9EUExMX01VTFQJCTIwNDgKKyNkZWZpbmUgT01BUDNfTUFYX0RQTExfRElWCQkxMjgKIAogLyoKICAqIERQTEwxIHN1cHBsaWVzIGNsb2NrIHRvIHRoZSBNUFUuCkBAIC0zMyw2ICs0NywxMSBAQAogICogRFBMTDUgc3VwcGxpZXMgb3RoZXIgcGVyaXBoZXJhbCBjbG9ja3MgKFVTQkhPU1QsIFVTSU0pLgogICovCiAKKy8qIENNX0NMS0VOX1BMTCouRU4qIGJpdCB2YWx1ZXMgLSBub3QgYWxsIGFyZSBhdmFpbGFibGUgZm9yIGV2ZXJ5IERQTEwgKi8KKyNkZWZpbmUgRFBMTF9MT1dfUE9XRVJfU1RPUAkJMHgxCisjZGVmaW5lIERQTExfTE9XX1BPV0VSX0JZUEFTUwkJMHg1CisjZGVmaW5lIERQTExfTE9DS0VECQkJMHg3CisKIC8qIFBSTSBDTE9DS1MgKi8KIAogLyogQWNjb3JkaW5nIHRvIHRpbWVyMzJrLmMsIHRoaXMgaXMgYSAzMjc2OEh6IGNsb2NrLCBub3QgYSAzMjAwMEh6IGNsb2NrLiAqLwpAQCAtMjQwLDE1ICsyNTksMjMgQEAKIC8qIERQTEwxICovCiAvKiBNUFUgY2xvY2sgc291cmNlICovCiAvKiBUeXBlOiBEUExMICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsMV9kZCA9IHsKK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwxX2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0NMS1NFTDFfUExMKSwKIAkubXVsdF9tYXNrCT0gT01BUDM0MzBfTVBVX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJPSBPTUFQMzQzMF9NUFVfRFBMTF9ESVZfTUFTSywKIAkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoTVBVX01PRCwgT01BUDM0MzBfQ01fQ0xLRU5fUExMKSwKIAkuZW5hYmxlX21hc2sJPSBPTUFQMzQzMF9FTl9NUFVfRFBMTF9NQVNLLAorCS5tb2RlcwkJPSAoMSA8PCBEUExMX0xPV19QT1dFUl9CWVBBU1MpIHwgKDEgPDwgRFBMTF9MT0NLRUQpLAogCS5hdXRvX3JlY2FsX2JpdAk9IE9NQVAzNDMwX0VOX01QVV9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCiAJLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX01QVV9EUExMX1JFQ0FMX0VOX1NISUZULAogCS5yZWNhbF9zdF9iaXQJPSBPTUFQMzQzMF9NUFVfRFBMTF9TVF9TSElGVCwKKwkuYXV0b2lkbGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0FVVE9JRExFX1BMTCksCisJLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMF9BVVRPX01QVV9EUExMX01BU0ssCisJLmlkbGVzdF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoTVBVX01PRCwgT01BUDM0MzBfQ01fSURMRVNUX1BMTCksCisJLmlkbGVzdF9iaXQJPSBPTUFQMzQzMF9TVF9NUFVfQ0xLX1NISUZULAorCS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCisJLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAorCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDFfY2sgPSB7CkBAIC0yNTYsNiArMjgzLDcgQEAKIAkucGFyZW50CQk9ICZzeXNfY2ssCiAJLmRwbGxfZGF0YQk9ICZkcGxsMV9kZCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfCBBTFdBWVNfRU5BQkxFRCwKKwkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxsX3JvdW5kX3JhdGUsCiAJLnJlY2FsYwkJPSAmb21hcDNfZHBsbF9yZWNhbGMsCiB9OwogCkBAIC0yOTcsMjIgKzMyNSwzNCBAQAogLyogSVZBMiBjbG9jayBzb3VyY2UgKi8KIC8qIFR5cGU6IERQTEwgKi8KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbDJfZGQgPSB7CitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsMl9kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9JVkEyX01PRCwgT01BUDM0MzBfQ01fQ0xLU0VMMV9QTEwpLAogCS5tdWx0X21hc2sJPSBPTUFQMzQzMF9JVkEyX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJPSBPTUFQMzQzMF9JVkEyX0RQTExfRElWX01BU0ssCiAJLmNvbnRyb2xfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9DTEtFTl9QTEwpLAogCS5lbmFibGVfbWFzawk9IE9NQVAzNDMwX0VOX0lWQTJfRFBMTF9NQVNLLAorCS5tb2RlcwkJPSAoMSA8PCBEUExMX0xPV19QT1dFUl9TVE9QKSB8ICgxIDw8IERQTExfTE9DS0VEKSB8CisJCQkJKDEgPDwgRFBMTF9MT1dfUE9XRVJfQllQQVNTKSwKIAkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMF9FTl9JVkEyX0RQTExfRFJJRlRHVUFSRF9TSElGVCwKIAkucmVjYWxfZW5fYml0CT0gT01BUDM0MzBfUFJNX0lSUUVOQUJMRV9NUFVfSVZBMl9EUExMX1JFQ0FMX0VOX1NISUZULAogCS5yZWNhbF9zdF9iaXQJPSBPTUFQMzQzMF9QUk1fSVJRU1RBVFVTX01QVV9JVkEyX0RQTExfU1RfU0hJRlQsCisJLmF1dG9pZGxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9JVkEyX01PRCwgT01BUDM0MzBfQ01fQVVUT0lETEVfUExMKSwKKwkuYXV0b2lkbGVfbWFzawk9IE9NQVAzNDMwX0FVVE9fSVZBMl9EUExMX01BU0ssCisJLmlkbGVzdF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9NQVAzNDMwX0NNX0lETEVTVF9QTEwpLAorCS5pZGxlc3RfYml0CT0gT01BUDM0MzBfU1RfSVZBMl9DTEtfU0hJRlQsCisJLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKKwkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCisJLnJhdGVfdG9sZXJhbmNlID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsMl9jayA9IHsKIAkubmFtZQkJPSAiZHBsbDJfY2siLAogCS5wYXJlbnQJCT0gJnN5c19jaywKIAkuZHBsbF9kYXRhCT0gJmRwbGwyX2RkLAotCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8IEFMV0FZU19FTkFCTEVELAorCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUywKKwkuZW5hYmxlCQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlLAorCS5kaXNhYmxlCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlLAorCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKIAkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKIH07CiAKQEAgLTMzOCwxMCArMzc4LDEyIEBACiAJLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKIH07CiAKLS8qIERQTEwzICovCi0vKiBTb3VyY2UgY2xvY2sgZm9yIGFsbCBpbnRlcmZhY2VzIGFuZCBmb3Igc29tZSBkZXZpY2UgZmNsa3MgKi8KLS8qIFR5cGU6IERQTEwgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwzX2RkID0geworLyoKKyAqIERQTEwzCisgKiBTb3VyY2UgY2xvY2sgZm9yIGFsbCBpbnRlcmZhY2VzIGFuZCBmb3Igc29tZSBkZXZpY2UgZmNsa3MKKyAqIFJFVklTSVQ6IEFsc28gc3VwcG9ydHMgZmFzdCByZWxvY2sgYnlwYXNzIC0gbm90IGluY2x1ZGVkIGJlbG93CisgKi8KK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwzX2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpLAogCS5tdWx0X21hc2sJPSBPTUFQMzQzMF9DT1JFX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJPSBPTUFQMzQzMF9DT1JFX0RQTExfRElWX01BU0ssCkBAIC0zNTAsNiArMzkyLDExIEBACiAJLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBfRU5fQ09SRV9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCiAJLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX0NPUkVfRFBMTF9SRUNBTF9FTl9TSElGVCwKIAkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBfQ09SRV9EUExMX1NUX1NISUZULAorCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQVVUT0lETEUpLAorCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVUT19DT1JFX0RQTExfTUFTSywKKwkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAorCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKKwkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwzX2NrID0gewpAQCAtMzU3LDYgKzQwNCw3IEBACiAJLnBhcmVudAkJPSAmc3lzX2NrLAogCS5kcGxsX2RhdGEJPSAmZHBsbDNfZGQsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwgQUxXQVlTX0VOQUJMRUQsCisJLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAogCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxfcmVjYWxjLAogfTsKIApAQCAtNDM5LDcgKzQ4Nyw3IEBACiAJLm5hbWUJCT0gImNvcmVfY2siLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gY29yZV9ja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQlQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC00NTYsNyArNTA0LDcgQEAKIAkubmFtZQkJPSAiZHBsbDNfbTJ4Ml9jayIsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBkcGxsM19tMngyX2NrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCVBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTUwMyw3ICs1NTEsNyBAQAogCS5wYXJlbnQJCT0gJmRwbGwzX20zeDJfY2ssCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBlbXVfY29yZV9hbHdvbl9ja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQlQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC01MTMsMjIgKzU2MSwzMyBAQAogLyogRFBMTDQgKi8KIC8qIFN1cHBsaWVzIDk2TUh6LCA1NE1oeiBUViBEQUMsIERTUyBmY2xrLCBDQU0gc2Vuc29yIGNsb2NrLCBlbXVsIHRyYWNlIGNsayAqLwogLyogVHlwZTogRFBMTCAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbDRfZGQgPSB7CitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsNF9kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKSwKIAkubXVsdF9tYXNrCT0gT01BUDM0MzBfUEVSSVBIX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJPSBPTUFQMzQzMF9QRVJJUEhfRFBMTF9ESVZfTUFTSywKIAkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pLAogCS5lbmFibGVfbWFzawk9IE9NQVAzNDMwX0VOX1BFUklQSF9EUExMX01BU0ssCisJLm1vZGVzCQk9ICgxIDw8IERQTExfTE9XX1BPV0VSX1NUT1ApIHwgKDEgPDwgRFBMTF9MT0NLRUQpLAogCS5hdXRvX3JlY2FsX2JpdAk9IE9NQVAzNDMwX0VOX1BFUklQSF9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCiAJLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX1BFUklQSF9EUExMX1JFQ0FMX0VOX1NISUZULAogCS5yZWNhbF9zdF9iaXQJPSBPTUFQMzQzMF9QRVJJUEhfRFBMTF9TVF9TSElGVCwKKwkuYXV0b2lkbGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0FVVE9JRExFKSwKKwkuYXV0b2lkbGVfbWFzawk9IE9NQVAzNDMwX0FVVE9fUEVSSVBIX0RQTExfTUFTSywKKwkuaWRsZXN0X3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAorCS5pZGxlc3RfYml0CT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19TSElGVCwKKwkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAorCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKKwkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X2NrID0gewogCS5uYW1lCQk9ICJkcGxsNF9jayIsCiAJLnBhcmVudAkJPSAmc3lzX2NrLAogCS5kcGxsX2RhdGEJPSAmZHBsbDRfZGQsCi0JLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwgQUxXQVlTX0VOQUJMRUQsCisJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTLAorCS5lbmFibGUJCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUsCisJLmRpc2FibGUJPSAmb21hcDNfbm9uY29yZV9kcGxsX2Rpc2FibGUsCisJLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAogCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxfcmVjYWxjLAogfTsKIApAQCAtNTg0LDcgKzY0Myw3IEBACiAJLnBhcmVudAkJPSAmZHBsbDRfbTJ4Ml9jaywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBvbWFwXzk2bV9hbHdvbl9mY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJIFBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTYxMCw3ICs2NjksNyBAQAogCS5wYXJlbnQJCT0gJmRwbGw0X20yeDJfY2ssCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gY21fOTZtX2Zja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQlQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC02NTIsNyArNzExLDcgQEAKIAkucGFyZW50CQk9ICZkcGxsNF9tM3gyX2NrLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IHZpcnRfb21hcF81NG1fZmNrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCVBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTgwNCwyMyArODYzLDMzIEBACiAvKiBTdXBwbGllcyAxMjBNSHogY2xvY2ssIFVTSU0gc291cmNlIGNsb2NrICovCiAvKiBUeXBlOiBEUExMICovCiAvKiAzNDMwRVMyIG9ubHkgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGw1X2RkID0geworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDVfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgT01BUDM0MzBFUzJfQ01fQ0xLU0VMNCksCiAJLm11bHRfbWFzawk9IE9NQVAzNDMwRVMyX1BFUklQSDJfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawk9IE9NQVAzNDMwRVMyX1BFUklQSDJfRFBMTF9ESVZfTUFTSywKIAkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgT01BUDM0MzBFUzJfQ01fQ0xLRU4yKSwKIAkuZW5hYmxlX21hc2sJPSBPTUFQMzQzMEVTMl9FTl9QRVJJUEgyX0RQTExfTUFTSywKKwkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfU1RPUCkgfCAoMSA8PCBEUExMX0xPQ0tFRCksCiAJLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBFUzJfRU5fUEVSSVBIMl9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCiAJLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwRVMyX1NORF9QRVJJUEhfRFBMTF9SRUNBTF9FTl9TSElGVCwKIAkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBFUzJfU05EX1BFUklQSF9EUExMX1NUX1NISUZULAorCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgT01BUDM0MzBFUzJfQ01fQVVUT0lETEUyX1BMTCksCisJLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMEVTMl9BVVRPX1BFUklQSDJfRFBMTF9NQVNLLAorCS5pZGxlc3RfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVDIpLAorCS5pZGxlc3RfYml0CT0gT01BUDM0MzBFUzJfU1RfUEVSSVBIMl9DTEtfU0hJRlQsCisJLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKKwkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCisJLnJhdGVfdG9sZXJhbmNlID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsNV9jayA9IHsKIAkubmFtZQkJPSAiZHBsbDVfY2siLAogCS5wYXJlbnQJCT0gJnN5c19jaywKIAkuZHBsbF9kYXRhCT0gJmRwbGw1X2RkLAotCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzMEVTMiB8IFJBVEVfUFJPUEFHQVRFUyB8Ci0JCQkJQUxXQVlTX0VOQUJMRUQsCisJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDMwRVMyIHwgUkFURV9QUk9QQUdBVEVTLAorCS5lbmFibGUJCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUsCisJLmRpc2FibGUJPSAmb21hcDNfbm9uY29yZV9kcGxsX2Rpc2FibGUsCisJLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAogCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxfcmVjYWxjLAogfTsKIApAQCAtMTM2NSw3ICsxNDM0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNV9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNV9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSA1LAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1A1X1NISUZULApAQCAtMTM3Nyw3ICsxNDQ3LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMV9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMV9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAxLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AxX1NISUZULApAQCAtMTc4OSw3ICsxODYwLDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNV9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSA1LAogCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQNV9TSElGVCwKQEAgLTE3OTgsNyArMTg3MCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDFfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDFfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMSwKIAkucGFyZW50CQk9ICZjb3JlX2w0X2ljaywKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDFfU0hJRlQsCkBAIC0xOTM1LDcgKzIwMDgsNyBAQAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0RTU19NT0QsIENNX0ZDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9EU1MxX1NISUZULAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBkc3MxX2Fsd29uX2Zja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYLAogCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCkBAIC0xOTkxLDcgKzIwNjQsNyBAQAogCS5wYXJlbnQJCT0gJmRwbGw0X201eDJfY2ssCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gY2FtX21jbGtfY2xrc2VsLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0NBTV9NT0QsIENNX0ZDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9DQU1fU0hJRlQsCkBAIC0yNTQxLDcgKzI2MTQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AyX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AyX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDIsCiAJLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AyX1NISUZULApAQCAtMjU1MCw3ICsyNjI0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwM19pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwM19pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAzLAogCS5wYXJlbnQJCT0gJnBlcl9sNF9pY2ssCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fSUNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQM19TSElGVCwKQEAgLTI1NTksNyArMjYzNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDRfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDRfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gNCwKIAkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDRfU0hJRlQsCkBAIC0yNTc0LDcgKzI2NTAsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AyX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AyX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDIsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AyX1NISUZULApAQCAtMjU4Niw3ICsyNjYzLDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwM19mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwM19mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAzLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fRkNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQM19TSElGVCwKQEAgLTI1OTgsNyArMjY3Niw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDRfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDRfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gNCwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDRfU0hJRlQsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLXJlZ2JpdHMtMzR4eC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTM0eHguaAppbmRleCAzYzM4Mzk1Li5lZTRjMGNhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLXJlZ2JpdHMtMzR4eC5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0zNHh4LmgKQEAgLTcyLDcgKzcyLDggQEAKICNkZWZpbmUgT01BUDM0MzBfU1RfSVZBMgkJCQkoMSA8PCAwKQogCiAvKiBDTV9JRExFU1RfUExMX0lWQTIgKi8KLSNkZWZpbmUgT01BUDM0MzBfU1RfSVZBMl9DTEsJCQkJKDEgPDwgMCkKKyNkZWZpbmUgT01BUDM0MzBfU1RfSVZBMl9DTEtfU0hJRlQJCQkwCisjZGVmaW5lIE9NQVAzNDMwX1NUX0lWQTJfQ0xLX01BU0sJCQkoMSA8PCAwKQogCiAvKiBDTV9BVVRPSURMRV9QTExfSVZBMiAqLwogI2RlZmluZSBPTUFQMzQzMF9BVVRPX0lWQTJfRFBMTF9TSElGVAkJCTAKQEAgLTExNSwxMCArMTE2LDcgQEAKICNkZWZpbmUgT01BUDM0MzBfU1RfTVBVCQkJCQkoMSA8PCAwKQogCiAvKiBDTV9JRExFU1RfUExMX01QVSAqLwotI2RlZmluZSBPTUFQMzQzMF9TVF9NUFVfQ0xLCQkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAzNDMwX1NUX0lWQTJfQ0xLX01BU0sJCQkoMSA8PCAwKQotCi0vKiBDTV9JRExFU1RfUExMX01QVSAqLworI2RlZmluZSBPTUFQMzQzMF9TVF9NUFVfQ0xLX1NISUZUCQkJMAogI2RlZmluZSBPTUFQMzQzMF9TVF9NUFVfQ0xLX01BU0sJCQkoMSA8PCAwKQogCiAvKiBDTV9BVVRPSURMRV9QTExfTVBVICovCkBAIC00MDgsOCArNDA2LDEwIEBACiAjZGVmaW5lIE9NQVAzNDMwX1NUXzEyTV9DTEsJCQkJKDEgPDwgNCkKICNkZWZpbmUgT01BUDM0MzBfU1RfNDhNX0NMSwkJCQkoMSA8PCAzKQogI2RlZmluZSBPTUFQMzQzMF9TVF85Nk1fQ0xLCQkJCSgxIDw8IDIpCi0jZGVmaW5lIE9NQVAzNDMwX1NUX1BFUklQSF9DTEsJCQkJKDEgPDwgMSkKLSNkZWZpbmUgT01BUDM0MzBfU1RfQ09SRV9DTEsJCQkJKDEgPDwgMCkKKyNkZWZpbmUgT01BUDM0MzBfU1RfUEVSSVBIX0NMS19TSElGVAkJCTEKKyNkZWZpbmUgT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLCQkJKDEgPDwgMSkKKyNkZWZpbmUgT01BUDM0MzBfU1RfQ09SRV9DTEtfU0hJRlQJCQkwCisjZGVmaW5lIE9NQVAzNDMwX1NUX0NPUkVfQ0xLX01BU0sJCQkoMSA8PCAwKQogCiAvKiBDTV9JRExFU1QyX0NLR0VOICovCiAjZGVmaW5lIE9NQVAzNDMwRVMyX1NUXzEyME1fQ0xLX1NISUZUCQkJMQpAQCAtNDIzLDYgKzQyMywxMCBAQAogI2RlZmluZSBPTUFQMzQzMF9BVVRPX0NPUkVfRFBMTF9TSElGVAkJCTAKICNkZWZpbmUgT01BUDM0MzBfQVVUT19DT1JFX0RQTExfTUFTSwkJCSgweDcgPDwgMCkKIAorLyogQ01fQVVUT0lETEUyX1BMTCAqLworI2RlZmluZSBPTUFQMzQzMEVTMl9BVVRPX1BFUklQSDJfRFBMTF9TSElGVAkJMAorI2RlZmluZSBPTUFQMzQzMEVTMl9BVVRPX1BFUklQSDJfRFBMTF9NQVNLCQkoMHg3IDw8IDApCisKIC8qIENNX0NMS1NFTDFfUExMICovCiAvKiBOb3RlIHRoYXQgT01BUDM0MzBfQ09SRV9EUExMX0NMS09VVF9ESVZfTUFTSyB3YXMgKDB4MyA8PCAyNykgb24gMzQzMEVTMSAqLwogI2RlZmluZSBPTUFQMzQzMF9DT1JFX0RQTExfQ0xLT1VUX0RJVl9TSElGVAkJMjcKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20uaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY20uaAppbmRleCA4NDg5ZjMwLi44N2E0NGM3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS5oCkBAIC04MSw2ICs4MSw3IEBACiAjZGVmaW5lIE9NQVAzNDMwRVMyX0NNX0ZDTEtFTjMJCQkJMHgwMDA4CiAjZGVmaW5lIE9NQVAzNDMwX0NNX0lETEVTVF9QTEwJCQkJQ01fSURMRVNUMgogI2RlZmluZSBPTUFQMzQzMF9DTV9BVVRPSURMRV9QTEwJCQlDTV9BVVRPSURMRTIKKyNkZWZpbmUgT01BUDM0MzBFUzJfQ01fQVVUT0lETEUyX1BMTAkJCUNNX0FVVE9JRExFMgogI2RlZmluZSBPTUFQMzQzMF9DTV9DTEtTRUwxCQkJCUNNX0NMS1NFTAogI2RlZmluZSBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTAkJCQlDTV9DTEtTRUwKICNkZWZpbmUgT01BUDM0MzBfQ01fQ0xLU0VMMl9QTEwJCQkJQ01fQ0xLU0VMMgpAQCAtOTYsMTUgKzk3LDIxIEBACiAvKiBDbG9jayBtYW5hZ2VtZW50IGRvbWFpbiByZWdpc3RlciBnZXQvc2V0ICovCiAKICNpZm5kZWYgX19BU1NFTUJMRVJfXwotc3RhdGljIGlubGluZSB2b2lkIGNtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgczE2IGlkeCkKKworZXh0ZXJuIHUzMiBjbV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgdTE2IGlkeCk7CitleHRlcm4gdm9pZCBjbV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHUxNiBpZHgpOworZXh0ZXJuIHUzMiBjbV9ybXdfbW9kX3JlZ19iaXRzKHUzMiBtYXNrLCB1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCk7CisKK3N0YXRpYyBpbmxpbmUgdTMyIGNtX3NldF9tb2RfcmVnX2JpdHModTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCiB7Ci0JX19yYXdfd3JpdGVsKHZhbCwgT01BUF9DTV9SRUdBRERSKG1vZHVsZSwgaWR4KSk7CisJcmV0dXJuIGNtX3Jtd19tb2RfcmVnX2JpdHMoYml0cywgYml0cywgbW9kdWxlLCBpZHgpOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBjbV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgczE2IGlkeCkKK3N0YXRpYyBpbmxpbmUgdTMyIGNtX2NsZWFyX21vZF9yZWdfYml0cyh1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKIHsKLQlyZXR1cm4gX19yYXdfcmVhZGwoT01BUF9DTV9SRUdBRERSKG1vZHVsZSwgaWR4KSk7CisJcmV0dXJuIGNtX3Jtd19tb2RfcmVnX2JpdHMoYml0cywgMHgwLCBtb2R1bGUsIGlkeCk7CiB9CisKICNlbmRpZgogCiAvKiBDTSByZWdpc3RlciBiaXRzIHNoYXJlZCBiZXR3ZWVuIDI0WFggYW5kIDM0MzAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY29udHJvbC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMKaW5kZXggYTVkODZhNC4uNTFmNzAzMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMKQEAgLTEzLDIyICsxMywyMSBAQAogI3VuZGVmIERFQlVHCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCi0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jb250cm9sLmg+CiAKLXN0YXRpYyB1MzIgb21hcDJfY3RybF9iYXNlOworc3RhdGljIHZvaWQgX19pb21lbSAqb21hcDJfY3RybF9iYXNlOwogCi0jZGVmaW5lIE9NQVBfQ1RSTF9SRUdBRERSKHJlZykJKHZvaWQgX19pb21lbSAqKUlPX0FERFJFU1Mob21hcDJfY3RybF9iYXNlIFwKLQkJCQkJCQkJKyAocmVnKSkKKyNkZWZpbmUgT01BUF9DVFJMX1JFR0FERFIocmVnKQkJKG9tYXAyX2N0cmxfYmFzZSArIChyZWcpKQogCi12b2lkIG9tYXBfY3RybF9iYXNlX3NldCh1MzIgYmFzZSkKK3ZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzX2NvbnRyb2woc3RydWN0IG9tYXBfZ2xvYmFscyAqb21hcDJfZ2xvYmFscykKIHsKLQlvbWFwMl9jdHJsX2Jhc2UgPSBiYXNlOworCW9tYXAyX2N0cmxfYmFzZSA9IG9tYXAyX2dsb2JhbHMtPmN0cmw7CiB9CiAKLXUzMiBvbWFwX2N0cmxfYmFzZV9nZXQodm9pZCkKK3ZvaWQgX19pb21lbSAqb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpCiB7CiAJcmV0dXJuIG9tYXAyX2N0cmxfYmFzZTsKIH0KQEAgLTUwLDI1ICs0OSwxNiBAQAogCiB2b2lkIG9tYXBfY3RybF93cml0ZWIodTggdmFsLCB1MTYgb2Zmc2V0KQogewotCXByX2RlYnVnKCJvbWFwX2N0cmxfd3JpdGViOiB3cml0aW5nIDB4JTB4IHRvIDB4JTB4XG4iLCB2YWwsCi0JCSAodTMyKU9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwotCiAJX19yYXdfd3JpdGViKHZhbCwgT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7CiB9CiAKIHZvaWQgb21hcF9jdHJsX3dyaXRldyh1MTYgdmFsLCB1MTYgb2Zmc2V0KQogewotCXByX2RlYnVnKCJvbWFwX2N0cmxfd3JpdGV3OiB3cml0aW5nIDB4JTB4IHRvIDB4JTB4XG4iLCB2YWwsCi0JCSAodTMyKU9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwotCiAJX19yYXdfd3JpdGV3KHZhbCwgT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7CiB9CiAKIHZvaWQgb21hcF9jdHJsX3dyaXRlbCh1MzIgdmFsLCB1MTYgb2Zmc2V0KQogewotCXByX2RlYnVnKCJvbWFwX2N0cmxfd3JpdGVsOiB3cml0aW5nIDB4JTB4IHRvIDB4JTB4XG4iLCB2YWwsCi0JCSAodTMyKU9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwotCiAJX19yYXdfd3JpdGVsKHZhbCwgT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmMKaW5kZXggMDJjZWRlMi4uZGJmNjhkYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmMKQEAgLTQyLDcgKzQyLDcgQEAKICNkZWZpbmUgR1BNQ19TVEFUVVMJCTB4NTQKICNkZWZpbmUgR1BNQ19QUkVGRVRDSF9DT05GSUcxCTB4MWUwCiAjZGVmaW5lIEdQTUNfUFJFRkVUQ0hfQ09ORklHMgkweDFlNAotI2RlZmluZSBHUE1DX1BSRUZFVENIX0NPTlRST0wJMHgxZTgKKyNkZWZpbmUgR1BNQ19QUkVGRVRDSF9DT05UUk9MCTB4MWVjCiAjZGVmaW5lIEdQTUNfUFJFRkVUQ0hfU1RBVFVTCTB4MWYwCiAjZGVmaW5lIEdQTUNfRUNDX0NPTkZJRwkJMHgxZjQKICNkZWZpbmUgR1BNQ19FQ0NfQ09OVFJPTAkweDFmOApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jCmluZGV4IDRkZmQ4NzguLmRmZjRiMTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmMKQEAgLTE3LDE2ICsxNywyMyBAQAogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDIwKQotI2RlZmluZSBPTUFQMjRYWF9UQVBfQkFTRQlpb19wMnYoMHg0ODAxNDAwMCkKLSNlbmRpZgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jcHUuaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MzApCi0jZGVmaW5lIE9NQVAyNFhYX1RBUF9CQVNFCWlvX3AydigweDQ5MDBBMDAwKQorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MjApCisjZGVmaW5lIFRBUF9CQVNFCWlvX3AydigweDQ4MDE0MDAwKQorI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjQzMCkKKyNkZWZpbmUgVEFQX0JBU0UJaW9fcDJ2KDB4NDkwMEEwMDApCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNFhYKQorI2RlZmluZSBUQVBfQkFTRQlpb19wMnYoMHg0ODMwQTAwMCkKICNlbmRpZgogCiAjZGVmaW5lIE9NQVBfVEFQX0lEQ09ERQkJMHgwMjA0CisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMzRYWCkKKyNkZWZpbmUgT01BUF9UQVBfUFJPRF9JRAkweDAyMTAKKyNlbHNlCiAjZGVmaW5lIE9NQVBfVEFQX1BST0RfSUQJMHgwMjA4CisjZW5kaWYKIAogI2RlZmluZSBPTUFQX1RBUF9ESUVfSURfMAkweDAyMTgKICNkZWZpbmUgT01BUF9UQVBfRElFX0lEXzEJMHgwMjFDCkBAIC01Niw5ICs2MywxMzQgQEAKIAl7IC5oYXdrZXllID0gMHhiNjhhLCAuZGV2ID0gMHgwLCAudHlwZSA9IDB4MjQzMDAwMDAgfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9jaGlwX2lkIG9tYXBfY2hpcDsKKworLyoqCisgKiBvbWFwX2NoaXBfaXMgLSB0ZXN0IHdoZXRoZXIgY3VycmVudGx5IHJ1bm5pbmcgT01BUCBtYXRjaGVzIGEgY2hpcCB0eXBlCisgKiBAb2M6IG9tYXBfY2hpcF90IHRvIHRlc3QgYWdhaW5zdAorICoKKyAqIFRlc3Qgd2hldGhlciB0aGUgY3VycmVudGx5LXJ1bm5pbmcgT01BUCBjaGlwIG1hdGNoZXMgdGhlIHN1cHBsaWVkCisgKiBjaGlwIHR5cGUgJ29jJy4gIFJldHVybnMgMSB1cG9uIGEgbWF0Y2g7IDAgdXBvbiBmYWlsdXJlLgorICovCitpbnQgb21hcF9jaGlwX2lzKHN0cnVjdCBvbWFwX2NoaXBfaWQgb2NpKQoreworCXJldHVybiAob2NpLm9jICYgb21hcF9jaGlwLm9jKSA/IDEgOiAwOworfQorRVhQT1JUX1NZTUJPTChvbWFwX2NoaXBfaXMpOworCiBzdGF0aWMgdTMyIF9faW5pdCByZWFkX3RhcF9yZWcoaW50IHJlZykKIHsKLQlyZXR1cm4gX19yYXdfcmVhZGwoT01BUDI0WFhfVEFQX0JBU0UgKyByZWcpOworCXVuc2lnbmVkIGludCByZWd2YWwgPSAwOworCXUzMiBjcHVpZDsKKworCS8qIFJlYWRpbmcgdGhlIElEQ09ERSByZWdpc3RlciBvbiAzNDMwIEVTMSByZXN1bHRzIGluIGEKKwkgKiBkYXRhIGFib3J0IGFzIHRoZSByZWdpc3RlciBpcyBub3QgZXhwb3NlZCBvbiB0aGUgT0NQCisJICogSGVuY2UgcmVhZGluZyB0aGUgQ29ydGV4IFJldgorCSAqLworCWNwdWlkID0gcmVhZF9jcHVpZChDUFVJRF9JRCk7CisKKwkvKiBJZiB0aGUgcHJvY2Vzc29yIHR5cGUgaXMgQ29ydGV4LUE4IGFuZCB0aGUgcmV2aXNpb24gaXMgMHgwCisJICogaXQgbWVhbnMgaXRzIENvcnRleCByMHAwIHdoaWNoIGlzIDM0MzAgRVMxCisJICovCisJaWYgKCgoKGNwdWlkID4+IDQpICYgMHhGRkYpID09IDB4QzA4KSAmJiAoKGNwdWlkICYgMHhGKSA9PSAweDApKSB7CisJCXN3aXRjaCAocmVnKSB7CisJCWNhc2UgT01BUF9UQVBfSURDT0RFICA6IHJlZ3ZhbCA9IDB4MEI3QUUwMkY7IGJyZWFrOworCQkvKiBNYWtpbmcgRGV2VHlwZSBhcyAweEYgaW4gRVMxIHRvIGRpZmZlciBmcm9tIEVTMiAqLworCQljYXNlIE9NQVBfVEFQX1BST0RfSUQgOiByZWd2YWwgPSAweDAwMEYwMEYwOyBicmVhazsKKwkJY2FzZSBPTUFQX1RBUF9ESUVfSURfMDogcmVndmFsID0gMHgwMTAwMDAwMDsgYnJlYWs7CisJCWNhc2UgT01BUF9UQVBfRElFX0lEXzE6IHJlZ3ZhbCA9IDB4MTAxMmQ2ODc7IGJyZWFrOworCQljYXNlIE9NQVBfVEFQX0RJRV9JRF8yOglyZWd2YWwgPSAweDAwMDAwMDAwOyBicmVhazsKKwkJY2FzZSBPTUFQX1RBUF9ESUVfSURfMzoJcmVndmFsID0gMHgyZDJjMDAwMDsgYnJlYWs7CisJCX0KKwl9IGVsc2UKKwkJcmVndmFsID0gX19yYXdfcmVhZGwoVEFQX0JBU0UgKyByZWcpOworCisJcmV0dXJuIHJlZ3ZhbDsKKworfQorCisvKgorICogX3NldF9zeXN0ZW1fcmV2IC0gc2V0IHRoZSBzeXN0ZW1fcmV2IGdsb2JhbCBiYXNlZCBvbiBjdXJyZW50IE9NQVAgY2hpcCB0eXBlCisgKgorICogU2V0IHRoZSBzeXN0ZW1fcmV2IGdsb2JhbC4gIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgYnkgdGhlIGNwdV9pc19vbWFweHh4eCgpCisgKiBtYWNyb3MuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBfc2V0X3N5c3RlbV9yZXYodTMyIHR5cGUsIHU4IHJldikKK3sKKwl1MzIgaSwgY3RybF9zdGF0dXM7CisKKwkvKgorCSAqIHN5c3RlbV9yZXYgZW5jb2RpbmcgaXMgYXMgZm9sbG93cworCSAqIHN5c3RlbV9yZXYgJiAweGZmMDAwMDAwIC0+IE9tYXAgQ2xhc3MgKDI0eHgvMzR4eCkKKwkgKiBzeXN0ZW1fcmV2ICYgMHhmZmYwMDAwMCAtPiBPbWFwIFN1YiBDbGFzcyAoMjQyeC8zNDN4KQorCSAqIHN5c3RlbV9yZXYgJiAweGZmZmYwMDAwIC0+IE9tYXAgdHlwZSAoMjQyMC8yNDIyLzI0MjMvMjQzMC8zNDMwKQorCSAqIHN5c3RlbV9yZXYgJiAweDAwMDBmMDAwIC0+IFNpbGljb24gcmV2aXNpb24gKEVTMSwgRVMyICkKKwkgKiBzeXN0ZW1fcmV2ICYgMHgwMDAwMDcwMCAtPiBEZXZpY2UgVHlwZSAoIEVNVS9IUy9HUC9CQUQgKQorCSAqIHN5c3RlbV9yZXYgJiAweDAwMDAwMGMwIC0+IElEQ09ERSByZXZpc2lvbls2OjddCisJICogc3lzdGVtX3JldiAmIDB4MDAwMDAwM2YgLT4gc3lzX2Jvb3RbMDo1XQorCSAqLworCS8qIEVtYmVkZGluZyB0aGUgRVMgcmV2aXNpb24gaW5mbyBpbiB0eXBlIGZpZWxkICovCisJc3lzdGVtX3JldiA9IHR5cGU7CisJLyogQWxzbyBhZGQgSURDT0RFIHJldmlzaW9uIGluZm8gb25seSB0d28gbG93ZXIgYml0cyAqLworCXN5c3RlbV9yZXYgfD0gKChyZXYgJiAweDMpIDw8IDYpOworCisJLyogQWRkIGluIHRoZSBkZXZpY2UgdHlwZSBhbmQgc3lzX2Jvb3QgZmllbGRzIChzZWUgYWJvdmUpICovCisJaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7CisJCWkgPSBPTUFQMjRYWF9DT05UUk9MX1NUQVRVUzsKKwl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMzQzeCgpKSB7CisJCWkgPSBPTUFQMzQzWF9DT05UUk9MX1NUQVRVUzsKKwl9IGVsc2UgeworCQlwcmludGsoS0VSTl9FUlIgImlkOiB1bmtub3duIENQVSB0eXBlXG4iKTsKKwkJQlVHKCk7CisJfQorCWN0cmxfc3RhdHVzID0gb21hcF9jdHJsX3JlYWRsKGkpOworCXN5c3RlbV9yZXYgfD0gKGN0cmxfc3RhdHVzICYgKE9NQVAyX1NZU0JPT1RfNV9NQVNLIHwKKwkJCQkgICAgICBPTUFQMl9TWVNCT09UXzRfTUFTSyB8CisJCQkJICAgICAgT01BUDJfU1lTQk9PVF8zX01BU0sgfAorCQkJCSAgICAgIE9NQVAyX1NZU0JPT1RfMl9NQVNLIHwKKwkJCQkgICAgICBPTUFQMl9TWVNCT09UXzFfTUFTSyB8CisJCQkJICAgICAgT01BUDJfU1lTQk9PVF8wX01BU0spKTsKKwlzeXN0ZW1fcmV2IHw9IChjdHJsX3N0YXR1cyAmIE9NQVAyX0RFVklDRVRZUEVfTUFTSyk7Cit9CisKKworLyoKKyAqIF9zZXRfb21hcF9jaGlwIC0gc2V0IHRoZSBvbWFwX2NoaXAgZ2xvYmFsIGJhc2VkIG9uIE9NQVAgY2hpcCB0eXBlCisgKgorICogQnVpbGQgdGhlIG9tYXBfY2hpcCBiaXRzLiAgVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IHBvd2VyZG9tYWluIGFuZAorICogY2xvY2tkb21haW4gY29kZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHN0cnVjdHVyZXMgYXJlIGFwcGxpY2FibGUgZm9yCisgKiB0aGUgY3VycmVudCBPTUFQIGNoaXAgdHlwZSBieSBBTkRpbmcgaXQgYWdhaW5zdCBhICdwbGF0Zm9ybScgYml0ZmllbGQKKyAqIGluIHRoZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBfc2V0X29tYXBfY2hpcCh2b2lkKQoreworCWlmIChjcHVfaXNfb21hcDM0M3goKSkgeworCisJCW9tYXBfY2hpcC5vYyA9IENISVBfSVNfT01BUDM0MzA7CisJCWlmIChpc19zaWxfcmV2X2VxdWFsX3RvKE9NQVAzNDMwX1JFVl9FUzFfMCkpCisJCQlvbWFwX2NoaXAub2MgfD0gQ0hJUF9JU19PTUFQMzQzMEVTMTsKKwkJZWxzZSBpZiAoaXNfc2lsX3Jldl9ncmVhdGVyX3RoYW4oT01BUDM0MzBfUkVWX0VTMV8wKSkKKwkJCW9tYXBfY2hpcC5vYyB8PSBDSElQX0lTX09NQVAzNDMwRVMyOworCisJfSBlbHNlIGlmIChjcHVfaXNfb21hcDI0M3goKSkgeworCisJCS8qIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIDI0MzBFUzIuMSBhbmQgMjQzMC1hbGwgKi8KKwkJb21hcF9jaGlwLm9jIHw9IENISVBfSVNfT01BUDI0MzA7CisKKwl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMjQyeCgpKSB7CisKKwkJLyogQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgMjQyMEVTMi4xLjEgYW5kIDI0MjAtYWxsICovCisJCW9tYXBfY2hpcC5vYyB8PSBDSElQX0lTX09NQVAyNDIwOworCisJfSBlbHNlIHsKKworCQkvKiBDdXJyZW50IENQVSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29kZS4gKi8KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiT01BUCBjaGlwIHR5cGUgY29kZSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCAiCisJCSAgICAgICAidGhpcyBDUFUgdHlwZS5cbiIpOworCQlXQVJOX09OKDEpOworCisJfQorCiB9CiAKIHZvaWQgX19pbml0IG9tYXAyX2NoZWNrX3JldmlzaW9uKHZvaWQpCkBAIC03NiwyMSArMjA4LDMxIEBACiAJcmV2ID0gKGlkY29kZSA+PiAyOCkgJiAweDBmOwogCWRldl90eXBlID0gKHByb2RfaWQgPj4gMTYpICYgMHgwZjsKIAotI2lmZGVmIERFQlVHCi0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX0lEQ09ERSAweCUwOHggUkVWICVpIEhBV0tFWUUgMHglMDR4IE1BTkYgJTAzeFxuIiwKLQkJaWRjb2RlLCByZXYsIGhhd2tleWUsIChpZGNvZGUgPj4gMSkgJiAweDdmZik7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX0RJRV9JRF8wOiAweCUwOHhcbiIsCi0JCXJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMCkpOwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9ESUVfSURfMTogMHglMDh4IERFVl9SRVY6ICVpXG4iLAotCQlyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzEpLAotCSAgICAgICAocmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8xKSA+PiAyOCkgJiAweGYpOwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9ESUVfSURfMjogMHglMDh4XG4iLAotCQlyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzIpKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfRElFX0lEXzM6IDB4JTA4eFxuIiwKLQkJcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8zKSk7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX1BST0RfSURfMDogMHglMDh4IERFVl9UWVBFOiAlaVxuIiwKLQkJcHJvZF9pZCwgZGV2X3R5cGUpOwotI2VuZGlmCisJcHJfZGVidWcoIk9NQVBfVEFQX0lEQ09ERSAweCUwOHggUkVWICVpIEhBV0tFWUUgMHglMDR4IE1BTkYgJTAzeFxuIiwKKwkJIGlkY29kZSwgcmV2LCBoYXdrZXllLCAoaWRjb2RlID4+IDEpICYgMHg3ZmYpOworCXByX2RlYnVnKCJPTUFQX1RBUF9ESUVfSURfMDogMHglMDh4XG4iLAorCQkgcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8wKSk7CisJcHJfZGVidWcoIk9NQVBfVEFQX0RJRV9JRF8xOiAweCUwOHggREVWX1JFVjogJWlcbiIsCisJCSByZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzEpLAorCQkgKHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMSkgPj4gMjgpICYgMHhmKTsKKwlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzI6IDB4JTA4eFxuIiwKKwkJIHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMikpOworCXByX2RlYnVnKCJPTUFQX1RBUF9ESUVfSURfMzogMHglMDh4XG4iLAorCQkgcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8zKSk7CisJcHJfZGVidWcoIk9NQVBfVEFQX1BST0RfSURfMDogMHglMDh4IERFVl9UWVBFOiAlaVxuIiwKKwkJIHByb2RfaWQsIGRldl90eXBlKTsKKworCS8qCisJICogRGV0ZWN0aW9uIGZvciAzNHh4IEVTMi4wIGFuZCBhYm92ZSBjYW4gYmUgZG9uZSB3aXRoIGp1c3QKKwkgKiBoYXdrZXllIGFuZCByZXYuIFNlZSBUUk0gMS41LjIgRGV2aWNlIElkZW50aWZpY2F0aW9uLgorCSAqIE5vdGUgdGhhdCByZXYgY2Fubm90IGJlIHVzZWQgZGlyZWN0bHkgYXMgRVMxLjAgdXNlcyB2YWx1ZSAwLgorCSAqLworCWlmIChoYXdrZXllID09IDB4YjdhZSkgeworCQlzeXN0ZW1fcmV2ID0gMHgzNDMwMDAwMCB8ICgoMSArIHJldikgPDwgMTIpOworCQlwcl9pbmZvKCJPTUFQJTA0eCBFUzIuJWlcbiIsIHN5c3RlbV9yZXYgPj4gMTYsIHJldik7CisJCV9zZXRfb21hcF9jaGlwKCk7CisJCXJldHVybjsKKwl9CiAKIAkvKiBDaGVjayBoYXdrZXllIGlkcyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG9tYXBfaWRzKTsgaSsrKSB7CkBAIC0xMTQsMTYgKzI1NiwxNSBAQAogCQkJCW9tYXBfaWRzW2ldLnR5cGUgPj4gMTYpOwogCQlqID0gaTsKIAl9Ci0Jc3lzdGVtX3JldiA9IG9tYXBfaWRzW2pdLnR5cGU7CiAKLQlzeXN0ZW1fcmV2IHw9IHJldiA8PCA4OworCV9zZXRfc3lzdGVtX3JldihvbWFwX2lkc1tqXS50eXBlLCByZXYpOwogCi0JLyogQWRkIHRoZSBjcHUgY2xhc3MgaW5mbyAoMjR4eCkgKi8KLQlzeXN0ZW1fcmV2IHw9IDB4MjQ7CisJX3NldF9vbWFwX2NoaXAoKTsKIAogCXByX2luZm8oIk9NQVAlMDR4Iiwgc3lzdGVtX3JldiA+PiAxNik7CiAJaWYgKChzeXN0ZW1fcmV2ID4+IDgpICYgMHgwZikKLQkJcHJpbnRrKCIleCIsIChzeXN0ZW1fcmV2ID4+IDgpICYgMHgwZik7Ci0JcHJpbnRrKCJcbiIpOworCQlwcl9pbmZvKCJFUyV4IiwgKHN5c3RlbV9yZXYgPj4gMTIpICYgMHhmKTsKKwlwcl9pbmZvKCJcbiIpOworCiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvbWNic3AuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbWNic3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2NmMTk5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tY2JzcC5jCkBAIC0wLDAgKzEsMjA4IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9tY2JzcC5jCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb250YWN0OiBFZHVhcmRvIFZhbGVudGluIDxlZHVhcmRvLnZhbGVudGluQGluZHQub3JnLmJyPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTXVsdGljaGFubmVsIG1vZGUgbm90IHN1cHBvcnRlZC4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvZG1hLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY3B1Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWNic3AuaD4KKworc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayB7CisJc3RydWN0IGNsayBjbGs7CisJc3RydWN0IGNsayAqKmNoaWxkczsKKwlpbnQgbl9jaGlsZHM7Cit9OworCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjRYWCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMzRYWCkKK3N0YXRpYyB2b2lkIG9tYXBfbWNic3BfY2xrX2luaXQoc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsaykKK3sKKwljb25zdCBjaGFyICpjbGtfbmFtZXNbXSA9IHsgIm1jYnNwX2ljayIsICJtY2JzcF9mY2siIH07CisJaW50IGk7CisKKwltY2xrLT5uX2NoaWxkcyA9IEFSUkFZX1NJWkUoY2xrX25hbWVzKTsKKwltY2xrLT5jaGlsZHMgPSBremFsbG9jKG1jbGstPm5fY2hpbGRzICogc2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJCQkJR0ZQX0tFUk5FTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykgeworCQkvKiBXZSBmYWtlIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGdldCBjb3JyZWN0IGRldmljZSBpZCAqLworCQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBkZXY7CisKKwkJcGRldi5kZXYuYnVzID0gJnBsYXRmb3JtX2J1c190eXBlOworCQlwZGV2LmlkID0gbWNsay0+Y2xrLmlkOworCQltY2xrLT5jaGlsZHNbaV0gPSBjbGtfZ2V0KCZwZGV2LmRldiwgY2xrX25hbWVzW2ldKTsKKwkJaWYgKElTX0VSUihtY2xrLT5jaGlsZHNbaV0pKQorCQkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgZ2V0IGNsb2NrICVzICglZCkuXG4iLAorCQkJCWNsa19uYW1lc1tpXSwgbWNsay0+Y2xrLmlkKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9jbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrID0gY29udGFpbmVyX29mKGNsaywKKwkJCQkJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsaywgY2xrKTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKQorCQljbGtfZW5hYmxlKG1jbGstPmNoaWxkc1tpXSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIG9tYXBfbWNic3BfY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGsgPSBjb250YWluZXJfb2YoY2xrLAorCQkJCQlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrLCBjbGspOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspCisJCWNsa19kaXNhYmxlKG1jbGstPmNoaWxkc1tpXSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIG9tYXBfbWNic3BfY2xrc1tdID0geworCXsKKwkJLmNsayA9IHsKKwkJCS5uYW1lIAkJPSAibWNic3BfY2xrIiwKKwkJCS5pZAkJPSAxLAorCQkJLmVuYWJsZQkJPSBvbWFwX21jYnNwX2Nsa19lbmFibGUsCisJCQkuZGlzYWJsZQk9IG9tYXBfbWNic3BfY2xrX2Rpc2FibGUsCisJCX0sCisJfSwKKwl7CisJCS5jbGsgPSB7CisJCQkubmFtZSAJCT0gIm1jYnNwX2NsayIsCisJCQkuaWQJCT0gMiwKKwkJCS5lbmFibGUJCT0gb21hcF9tY2JzcF9jbGtfZW5hYmxlLAorCQkJLmRpc2FibGUJPSBvbWFwX21jYnNwX2Nsa19kaXNhYmxlLAorCQl9LAorCX0sCit9OworCisjZGVmaW5lIG9tYXBfbWNic3BfY2xrc19zaXplCUFSUkFZX1NJWkUob21hcF9tY2JzcF9jbGtzKQorI2Vsc2UKKyNkZWZpbmUgb21hcF9tY2JzcF9jbGtzX3NpemUJMAorc3RhdGljIHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgX19pbml0ZGF0YSAqb21hcF9tY2JzcF9jbGtzOworc3RhdGljIGlubGluZSB2b2lkIG9tYXBfbWNic3BfY2xrX2luaXQoc3RydWN0IGNsayAqY2xrKQoreyB9CisjZW5kaWYKKworc3RhdGljIHZvaWQgb21hcDJfbWNic3AyX211eF9zZXR1cCh2b2lkKQoreworCW9tYXBfY2ZnX3JlZyhZMTVfMjRYWF9NQ0JTUDJfQ0xLWCk7CisJb21hcF9jZmdfcmVnKFIxNF8yNFhYX01DQlNQMl9GU1gpOworCW9tYXBfY2ZnX3JlZyhXMTVfMjRYWF9NQ0JTUDJfRFIpOworCW9tYXBfY2ZnX3JlZyhWMTVfMjRYWF9NQ0JTUDJfRFgpOworCW9tYXBfY2ZnX3JlZyhWMTRfMjRYWF9HUElPMTE3KTsKKwkvKgorCSAqIFRPRE86IE5lZWQgdG8gYWRkIE1VWCBzZXR0aW5ncyBmb3IgT01BUCAyNDMwIFNEUAorCSAqLworfQorCitzdGF0aWMgdm9pZCBvbWFwMl9tY2JzcF9yZXF1ZXN0KHVuc2lnbmVkIGludCBpZCkKK3sKKwlpZiAoY3B1X2lzX29tYXAyNDIwKCkgJiYgKGlkID09IE9NQVBfTUNCU1AyKSkKKwkJb21hcDJfbWNic3AyX211eF9zZXR1cCgpOworfQorCitzdGF0aWMgaW50IG9tYXAyX21jYnNwX2NoZWNrKHVuc2lnbmVkIGludCBpZCkKK3sKKwlpZiAoaWQgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCAtIDEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGRvZXNuJ3QgZXhpc3RcbiIsIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX29wcyBvbWFwMl9tY2JzcF9vcHMgPSB7CisJLnJlcXVlc3QJPSBvbWFwMl9tY2JzcF9yZXF1ZXN0LAorCS5jaGVjawkJPSBvbWFwMl9tY2JzcF9jaGVjaywKK307CisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMjRYWAorc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgb21hcDI0eHhfbWNic3BfcGRhdGFbXSA9IHsKKwl7CisJCS52aXJ0X2Jhc2UJPSBJT19BRERSRVNTKE9NQVAyNFhYX01DQlNQMV9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMV9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMV9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDFfSVJRX1JYLAorCQkudHhfaXJxCQk9IElOVF8yNFhYX01DQlNQMV9JUlFfVFgsCisJCS5vcHMJCT0gJm9tYXAyX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBJT19BRERSRVNTKE9NQVAyNFhYX01DQlNQMl9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMl9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMl9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1JYLAorCQkudHhfaXJxCQk9IElOVF8yNFhYX01DQlNQMl9JUlFfVFgsCisJCS5vcHMJCT0gJm9tYXAyX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKK307CisjZGVmaW5lIE9NQVAyNFhYX01DQlNQX1BEQVRBX1NaCQlBUlJBWV9TSVpFKG9tYXAyNHh4X21jYnNwX3BkYXRhKQorI2Vsc2UKKyNkZWZpbmUgb21hcDI0eHhfbWNic3BfcGRhdGEJCU5VTEwKKyNkZWZpbmUgT01BUDI0WFhfTUNCU1BfUERBVEFfU1oJCTAKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDM0WFgKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhIG9tYXAzNHh4X21jYnNwX3BkYXRhW10gPSB7CisJeworCQkudmlydF9iYXNlCT0gSU9fQUREUkVTUyhPTUFQMzRYWF9NQ0JTUDFfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AxX0lSUV9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDFfSVJRX1RYLAorCQkub3BzCQk9ICZvbWFwMl9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gSU9fQUREUkVTUyhPTUFQMzRYWF9NQ0JTUDJfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AyX0lSUV9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1RYLAorCQkub3BzCQk9ICZvbWFwMl9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCit9OworI2RlZmluZSBPTUFQMzRYWF9NQ0JTUF9QREFUQV9TWgkJQVJSQVlfU0laRShvbWFwMzR4eF9tY2JzcF9wZGF0YSkKKyNlbHNlCisjZGVmaW5lIG9tYXAzNHh4X21jYnNwX3BkYXRhCQlOVUxMCisjZGVmaW5lIE9NQVAzNFhYX01DQlNQX1BEQVRBX1NaCQkwCisjZW5kaWYKKworaW50IF9faW5pdCBvbWFwMl9tY2JzcF9pbml0KHZvaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb21hcF9tY2JzcF9jbGtzX3NpemU7IGkrKykgeworCQkvKiBPbmNlIHdlIGNhbGwgY2xrX2dldCBpbnNpZGUgaW5pdCwgd2UgZG8gbm90IHJlZ2lzdGVyIGl0ICovCisJCW9tYXBfbWNic3BfY2xrX2luaXQoJm9tYXBfbWNic3BfY2xrc1tpXSk7CisJCWNsa19yZWdpc3Rlcigmb21hcF9tY2JzcF9jbGtzW2ldLmNsayk7CisJfQorCisJaWYgKGNwdV9pc19vbWFwMjR4eCgpKQorCQlvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhvbWFwMjR4eF9tY2JzcF9wZGF0YSwKKwkJCQkJCU9NQVAyNFhYX01DQlNQX1BEQVRBX1NaKTsKKworCWlmIChjcHVfaXNfb21hcDM0eHgoKSkKKwkJb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcob21hcDM0eHhfbWNic3BfcGRhdGEsCisJCQkJCQlPTUFQMzRYWF9NQ0JTUF9QREFUQV9TWik7CisKKwlyZXR1cm4gb21hcF9tY2JzcF9pbml0KCk7Cit9CithcmNoX2luaXRjYWxsKG9tYXAyX21jYnNwX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tZW1vcnkuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbWVtb3J5LmMKaW5kZXggMTI0NzkwOC4uNzNjYWRiMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tZW1vcnkuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL21lbW9yeS5jCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2Nsb2NrLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc3JhbS5oPgogCkBAIC0zMiw4ICszMyw4IEBACiAjaW5jbHVkZSAibWVtb3J5LmgiCiAjaW5jbHVkZSAic2RyYy5oIgogCi11bnNpZ25lZCBsb25nIG9tYXAyX3NkcmNfYmFzZTsKLXVuc2lnbmVkIGxvbmcgb21hcDJfc21zX2Jhc2U7Cit2b2lkIF9faW9tZW0gKm9tYXAyX3NkcmNfYmFzZTsKK3ZvaWQgX19pb21lbSAqb21hcDJfc21zX2Jhc2U7CiAKIHN0YXRpYyBzdHJ1Y3QgbWVtb3J5X3RpbWluZ3MgbWVtX3RpbWluZ3M7CiBzdGF0aWMgdTMyIGN1cnJfcGVyZl9sZXZlbCA9IENPUkVfQ0xLX1NSQ19EUExMX1gyOwpAQCAtMTU0LDYgKzE1NSwxMiBAQAogCW1lbV90aW1pbmdzLnNsb3dfZGxsX2N0cmwgfD0gKCgxIDw8IDEpIHwgKDMgPDwgOCkpOwogfQogCit2b2lkIF9faW5pdCBvbWFwMl9zZXRfZ2xvYmFsc19tZW1vcnkoc3RydWN0IG9tYXBfZ2xvYmFscyAqb21hcDJfZ2xvYmFscykKK3sKKwlvbWFwMl9zZHJjX2Jhc2UgPSBvbWFwMl9nbG9iYWxzLT5zZHJjOworCW9tYXAyX3Ntc19iYXNlID0gb21hcDJfZ2xvYmFscy0+c21zOworfQorCiAvKiB0dXJuIG9uIHNtYXJ0IGlkbGUgbW9kZXMgZm9yIFNEUkFNIHNjaGVkdWxlciBhbmQgY29udHJvbGxlciAqLwogdm9pZCBfX2luaXQgb21hcDJfaW5pdF9tZW1vcnkodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvbXV4LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jCmluZGV4IDkzMDc3MDAuLjhmOThiMjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvbXV4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tdXguYwpAQCAtMjM2LDcgKzIzNiw3IEBACiAJd2FybiA9IChvcmlnICE9IHJlZyk7CiAJaWYgKGRlYnVnIHx8IHdhcm4pCiAJCXByaW50ayhLRVJOX1dBUk5JTkcKLQkJCSJNVVg6IHNldHVwICVzICgweCUwOHgpOiAweCUwMnggLT4gMHglMDJ4XG4iLAorCQkJIk1VWDogc2V0dXAgJXMgKDB4JXApOiAweCUwNHggLT4gMHglMDR4XG4iLAogCQkJY2ZnLT5uYW1lLCBvbWFwX2N0cmxfYmFzZV9nZXQoKSArIGNmZy0+bXV4X3JlZywKIAkJCW9yaWcsIHJlZyk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmMKaW5kZXggYWFkNzgxZC4uZDZjOWRlOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcG0uYwpAQCAtNTcsMTMgKzU3LDYgQEAKIAkJcmV0dXJuOwogCX0KIAotCS8qCi0JICogU2luY2UgYW4gaW50ZXJydXB0IG1heSBzZXQgdXAgYSB0aW1lciwgd2UgZG9uJ3Qgd2FudCB0bwotCSAqIHJlcHJvZ3JhbSB0aGUgaGFyZHdhcmUgdGltZXIgd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQuCi0JICogUmUtZW5hYmxlIGludGVycnVwdHMgb25seSBhZnRlciByZXR1cm5pbmcgZnJvbSBpZGxlLgotCSAqLwotCXRpbWVyX2R5bl9yZXByb2dyYW0oKTsKLQogCW9tYXAyX3NyYW1faWRsZSgpOwogCWxvY2FsX2ZpcV9lbmFibGUoKTsKIAlsb2NhbF9pcnFfZW5hYmxlKCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKaW5kZXggY2FjYjM0MC4uNTRjMzJmNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24uaApAQCAtMzIsNiArMzIsNyBAQAogCiAKIC8qIENoaXAtc3BlY2lmaWMgbW9kdWxlIG9mZnNldHMgKi8KKyNkZWZpbmUgT01BUDI0WFhfR1JfTU9ECQkJCQlPQ1BfTU9ECiAjZGVmaW5lIE9NQVAyNFhYX0RTUF9NT0QJCQkJMHg4MDAKIAogI2RlZmluZSBPTUFQMjQzMF9NRE1fTU9ECQkJCTB4YzAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20uYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS5jCmluZGV4IGIxMmY0MjMuLmZkOTJhODAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS5jCkBAIC0xNiwxNiArMTYsMjEgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAotI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3ByY20uaD4KIAorI2luY2x1ZGUgImNsb2NrLmgiCiAjaW5jbHVkZSAicHJtLmgiCiAjaW5jbHVkZSAicHJtLXJlZ2JpdHMtMjR4eC5oIgogCi1leHRlcm4gdm9pZCBvbWFwMl9jbGtfcHJlcGFyZV9mb3JfcmVib290KHZvaWQpOworc3RhdGljIHZvaWQgX19pb21lbSAqcHJtX2Jhc2U7CitzdGF0aWMgdm9pZCBfX2lvbWVtICpjbV9iYXNlOwogCiB1MzIgb21hcF9wcmNtX2dldF9yZXNldF9zb3VyY2VzKHZvaWQpCiB7CisJLyogWFhYIFRoaXMgcHJlc3VtYWJseSBuZWVkcyBtb2RpZmljYXRpb24gZm9yIDM0WFggKi8KIAlyZXR1cm4gcHJtX3JlYWRfbW9kX3JlZyhXS1VQX01PRCwgUk1fUlNUU1QpICYgMHg3ZjsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9wcmNtX2dldF9yZXNldF9zb3VyY2VzKTsKQEAgLTMzLDExICszOCw5MCBAQAogLyogUmVzZXRzIGNsb2NrIHJhdGVzIGFuZCByZWJvb3RzIHRoZSBzeXN0ZW0uIE9ubHkgY2FsbGVkIGZyb20gc3lzdGVtLmggKi8KIHZvaWQgb21hcF9wcmNtX2FyY2hfcmVzZXQoY2hhciBtb2RlKQogewotCXUzMiB3a3VwOworCXMxNiBwcmNtX29mZnM7CiAJb21hcDJfY2xrX3ByZXBhcmVfZm9yX3JlYm9vdCgpOwogCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7Ci0JCXdrdXAgPSBwcm1fcmVhZF9tb2RfcmVnKFdLVVBfTU9ELCBSTV9SU1RDVFJMKSB8IE9NQVBfUlNUX0RQTEwzOwotCQlwcm1fd3JpdGVfbW9kX3JlZyh3a3VwLCBXS1VQX01PRCwgUk1fUlNUQ1RSTCk7Ci0JfQorCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwkJcHJjbV9vZmZzID0gV0tVUF9NT0Q7CisJZWxzZSBpZiAoY3B1X2lzX29tYXAzNHh4KCkpCisJCXByY21fb2ZmcyA9IE9NQVAzNDMwX0dSX01PRDsKKwllbHNlCisJCVdBUk5fT04oMSk7CisKKwlwcm1fc2V0X21vZF9yZWdfYml0cyhPTUFQX1JTVF9EUExMMywgcHJjbV9vZmZzLCBSTV9SU1RDVFJMKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgX19vbWFwX3ByY21fcmVhZCh2b2lkIF9faW9tZW0gKmJhc2UsIHMxNiBtb2R1bGUsIHUxNiByZWcpCit7CisJQlVHX09OKCFiYXNlKTsKKwlyZXR1cm4gX19yYXdfcmVhZGwoYmFzZSArIG1vZHVsZSArIHJlZyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX29tYXBfcHJjbV93cml0ZSh1MzIgdmFsdWUsIHZvaWQgX19pb21lbSAqYmFzZSwKKwkJCQkJCXMxNiBtb2R1bGUsIHUxNiByZWcpCit7CisJQlVHX09OKCFiYXNlKTsKKwlfX3Jhd193cml0ZWwodmFsdWUsIGJhc2UgKyBtb2R1bGUgKyByZWcpOworfQorCisvKiBSZWFkIGEgcmVnaXN0ZXIgaW4gYSBQUk0gbW9kdWxlICovCit1MzIgcHJtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCB1MTYgaWR4KQoreworCXJldHVybiBfX29tYXBfcHJjbV9yZWFkKHBybV9iYXNlLCBtb2R1bGUsIGlkeCk7Cit9CitFWFBPUlRfU1lNQk9MKHBybV9yZWFkX21vZF9yZWcpOworCisvKiBXcml0ZSBpbnRvIGEgcmVnaXN0ZXIgaW4gYSBQUk0gbW9kdWxlICovCit2b2lkIHBybV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHUxNiBpZHgpCit7CisJX19vbWFwX3ByY21fd3JpdGUodmFsLCBwcm1fYmFzZSwgbW9kdWxlLCBpZHgpOworfQorRVhQT1JUX1NZTUJPTChwcm1fd3JpdGVfbW9kX3JlZyk7CisKKy8qIFJlYWQtbW9kaWZ5LXdyaXRlIGEgcmVnaXN0ZXIgaW4gYSBQUk0gbW9kdWxlLiBDYWxsZXIgbXVzdCBsb2NrICovCit1MzIgcHJtX3Jtd19tb2RfcmVnX2JpdHModTMyIG1hc2ssIHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQoreworCXUzMiB2OworCisJdiA9IHBybV9yZWFkX21vZF9yZWcobW9kdWxlLCBpZHgpOworCXYgJj0gfm1hc2s7CisJdiB8PSBiaXRzOworCXBybV93cml0ZV9tb2RfcmVnKHYsIG1vZHVsZSwgaWR4KTsKKworCXJldHVybiB2OworfQorRVhQT1JUX1NZTUJPTChwcm1fcm13X21vZF9yZWdfYml0cyk7CisKKy8qIFJlYWQgYSByZWdpc3RlciBpbiBhIENNIG1vZHVsZSAqLwordTMyIGNtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCB1MTYgaWR4KQoreworCXJldHVybiBfX29tYXBfcHJjbV9yZWFkKGNtX2Jhc2UsIG1vZHVsZSwgaWR4KTsKK30KK0VYUE9SVF9TWU1CT0woY21fcmVhZF9tb2RfcmVnKTsKKworLyogV3JpdGUgaW50byBhIHJlZ2lzdGVyIGluIGEgQ00gbW9kdWxlICovCit2b2lkIGNtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgdTE2IGlkeCkKK3sKKwlfX29tYXBfcHJjbV93cml0ZSh2YWwsIGNtX2Jhc2UsIG1vZHVsZSwgaWR4KTsKK30KK0VYUE9SVF9TWU1CT0woY21fd3JpdGVfbW9kX3JlZyk7CisKKy8qIFJlYWQtbW9kaWZ5LXdyaXRlIGEgcmVnaXN0ZXIgaW4gYSBDTSBtb2R1bGUuIENhbGxlciBtdXN0IGxvY2sgKi8KK3UzMiBjbV9ybXdfbW9kX3JlZ19iaXRzKHUzMiBtYXNrLCB1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKK3sKKwl1MzIgdjsKKworCXYgPSBjbV9yZWFkX21vZF9yZWcobW9kdWxlLCBpZHgpOworCXYgJj0gfm1hc2s7CisJdiB8PSBiaXRzOworCWNtX3dyaXRlX21vZF9yZWcodiwgbW9kdWxlLCBpZHgpOworCisJcmV0dXJuIHY7Cit9CitFWFBPUlRfU1lNQk9MKGNtX3Jtd19tb2RfcmVnX2JpdHMpOworCit2b2lkIF9faW5pdCBvbWFwMl9zZXRfZ2xvYmFsc19wcmNtKHN0cnVjdCBvbWFwX2dsb2JhbHMgKm9tYXAyX2dsb2JhbHMpCit7CisJcHJtX2Jhc2UgPSBvbWFwMl9nbG9iYWxzLT5wcm07CisJY21fYmFzZSA9IG9tYXAyX2dsb2JhbHMtPmNtOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0uaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtLmgKaW5kZXggNjE4ZjgxMS4uYmJmNDFmYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0uaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BybS5oCkBAIC0zOCwxMyArMzgsMjkgQEAKICAqCiAgKi8KIAorLyogR2xvYmFsIDI0eHggcmVnaXN0ZXJzIGluIEdSX01PRCAoU2FtZSBhcyBPQ1BfTU9EIGZvciAyNHh4KSAqLworI2RlZmluZSBPTUFQMjRYWF9QUkNNX1ZPTFRDVFJMX09GRlNFVAkJMHgwMDUwCisjZGVmaW5lIE9NQVAyNFhYX1BSQ01fQ0xLQ0ZHX0NUUkxfT0ZGU0VUCTB4MDA4MAorCisvKiAyNDJ4IEdSX01PRCByZWdpc3RlcnMsIHVzZSB0aGVzZSBvbmx5IGZvciBhc3NlbWJseSBjb2RlICovCisjZGVmaW5lIE9NQVAyNDJYX1BSQ01fVk9MVENUUkwJCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9NQVAyNFhYX0dSX01PRCwJXAorCQkJCQkJT01BUDI0WFhfUFJDTV9WT0xUQ1RSTF9PRkZTRVQpCisjZGVmaW5lIE9NQVAyNDJYX1BSQ01fQ0xLQ0ZHX0NUUkwJT01BUDI0MjBfUFJNX1JFR0FERFIoT01BUDI0WFhfR1JfTU9ELAlcCisJCQkJCQlPTUFQMjRYWF9QUkNNX0NMS0NGR19DVFJMX09GRlNFVCkKKworLyogMjQzeCBHUl9NT0QgcmVnaXN0ZXJzLCB1c2UgdGhlc2Ugb25seSBmb3IgYXNzZW1ibHkgY29kZSAqLworI2RlZmluZSBPTUFQMjQzWF9QUkNNX1ZPTFRDVFJMCQlPTUFQMjQzMF9QUk1fUkVHQUREUihPTUFQMjRYWF9HUl9NT0QsCVwKKwkJCQkJCU9NQVAyNFhYX1BSQ01fVk9MVENUUkxfT0ZGU0VUKQorI2RlZmluZSBPTUFQMjQzWF9QUkNNX0NMS0NGR19DVFJMCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9NQVAyNFhYX0dSX01PRCwJXAorCQkJCQkJT01BUDI0WFhfUFJDTV9DTEtDRkdfQ1RSTF9PRkZTRVQpCisKKy8qIFRoZXNlIHdpbGwgZGlzYXBwZWFyICovCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fUkVWSVNJT04JCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDAwKQogI2RlZmluZSBPTUFQMjRYWF9QUkNNX1NZU0NPTkZJRwkJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMTApCiAKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9JUlFTVEFUVVNfTVBVCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDE4KQogI2RlZmluZSBPTUFQMjRYWF9QUkNNX0lSUUVOQUJMRV9NUFUJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMWMpCiAKLSNkZWZpbmUgT01BUDI0WFhfUFJDTV9WT0xUQ1RSTAkJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNTApCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fVk9MVFNUCQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA1NCkKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9DTEtTUkNfQ1RSTAlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA2MCkKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9DTEtPVVRfQ1RSTAlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA3MCkKQEAgLTE1MCwxNSArMTY2LDE5IEBACiAjaWZuZGVmIF9fQVNTRU1CTEVSX18KIAogLyogUG93ZXIvcmVzZXQgbWFuYWdlbWVudCBkb21haW4gcmVnaXN0ZXIgZ2V0L3NldCAqLworZXh0ZXJuIHUzMiBwcm1fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHUxNiBpZHgpOworZXh0ZXJuIHZvaWQgcHJtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgdTE2IGlkeCk7CitleHRlcm4gdTMyIHBybV9ybXdfbW9kX3JlZ19iaXRzKHUzMiBtYXNrLCB1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBwcm1fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQorLyogUmVhZC1tb2RpZnktd3JpdGUgYml0cyBpbiBhIFBSTSByZWdpc3RlciAoYnkgZG9tYWluKSAqLworc3RhdGljIGlubGluZSB1MzIgcHJtX3NldF9tb2RfcmVnX2JpdHModTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCiB7Ci0JX19yYXdfd3JpdGVsKHZhbCwgT01BUF9QUk1fUkVHQUREUihtb2R1bGUsIGlkeCkpOworCXJldHVybiBwcm1fcm13X21vZF9yZWdfYml0cyhiaXRzLCBiaXRzLCBtb2R1bGUsIGlkeCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIHBybV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgczE2IGlkeCkKK3N0YXRpYyBpbmxpbmUgdTMyIHBybV9jbGVhcl9tb2RfcmVnX2JpdHModTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCiB7Ci0JcmV0dXJuIF9fcmF3X3JlYWRsKE9NQVBfUFJNX1JFR0FERFIobW9kdWxlLCBpZHgpKTsKKwlyZXR1cm4gcHJtX3Jtd19tb2RfcmVnX2JpdHMoYml0cywgMHgwLCBtb2R1bGUsIGlkeCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaAppbmRleCBkN2YyM2JjLi4xYjFmZTRmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaApAQCAtMTgsMTMgKzE4LDExIEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvc2RyYy5oPgogCiAjaWZuZGVmIF9fQVNTRU1CTEVSX18KLWV4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyX3NkcmNfYmFzZTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyX3Ntc19iYXNlOworZXh0ZXJuIHZvaWQgX19pb21lbSAqb21hcDJfc2RyY19iYXNlOworZXh0ZXJuIHZvaWQgX19pb21lbSAqb21hcDJfc21zX2Jhc2U7CiAKLSNkZWZpbmUgT01BUF9TRFJDX1JFR0FERFIocmVnKQkJCQkJCVwKLQkJKHZvaWQgX19pb21lbSAqKUlPX0FERFJFU1Mob21hcDJfc2RyY19iYXNlICsgKHJlZykpCi0jZGVmaW5lIE9NQVBfU01TX1JFR0FERFIocmVnKQkJCQkJCVwKLQkJKHZvaWQgX19pb21lbSAqKUlPX0FERFJFU1Mob21hcDJfc21zX2Jhc2UgKyAocmVnKSkKKyNkZWZpbmUgT01BUF9TRFJDX1JFR0FERFIocmVnKQkJCShvbWFwMl9zZHJjX2Jhc2UgKyAocmVnKSkKKyNkZWZpbmUgT01BUF9TTVNfUkVHQUREUihyZWcpCQkJKG9tYXAyX3Ntc19iYXNlICsgKHJlZykpCiAKIC8qIFNEUkMgZ2xvYmFsIHJlZ2lzdGVyIGdldC9zZXQgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtLWZuLlMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0tZm4uUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE5ZTQ5MS4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0tZm4uUworKysgL2Rldi9udWxsCkBAIC0xLDMyNCArMCwwIEBACi0vKgotICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtLWZuLlMKLSAqCi0gKiBPbWFwMiBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHJ1biBpbiBpbnRlcm5hbCBTUkFNCi0gKgotICogKEMpIENvcHlyaWdodCAyMDA0Ci0gKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+Ci0gKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCi0gKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIC9QVVJQT1NFLiBTZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKLSAqIE1BIDAyMTExLTEzMDcgVVNBCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0KLSNpbmNsdWRlICJzZHJjLmgiCi0jaW5jbHVkZSAicHJtLmgiCi0jaW5jbHVkZSAiY20uaCIKLQotI2RlZmluZSBUSU1FUl8zMktTWU5DVF9DUl9WCUlPX0FERFJFU1MoT01BUDI0MjBfMzJLU1lOQ1RfQkFTRSArIDB4MDEwKQotCi0JLnRleHQKLQotRU5UUlkoc3JhbV9kZHJfaW5pdCkKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKLQotCW1vdglyMTIsIHIyCQkJQCBjYXB0dXJlIENTMSB2cyBDUzAKLQltb3YJcjgsIHIzCQkJQCBjYXB0dXJlIGZvcmNlIHBhcmFtZXRlcgotCi0JLyogZnJlcXVlbmN5IHNoaWZ0IGRvd24gKi8KLQlsZHIJcjIsIGNtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2YgZHBsbG91dCByZWcKLQltb3YJcjMsICMweDEJCUAgdmFsdWUgZm9yIDF4IG9wZXJhdGlvbgotCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMS1mcmVxIG9wZXJhdGlvbgotCi0JLyogdm9sdGFnZSBzaGlmdCBkb3duICovCi0JbW92IHI5LCAjMHgxCQkJQCBzZXQgdXAgZm9yIEwxIHZvbHRhZ2UgY2FsbAotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gZHJvcCB2b2x0YWdlCi0KLQkvKiBkbGwgbG9jayBtb2RlICovCi0JbGRyCXIxMSwgc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAotCWNtcAlyMTIsICMweDEJCUAgY3MxIGJhc2UgKDI0MjIgZXMyLjA1LzEpCi0JYWRkZXEJcjExLCByMTEsICMweDgJCUAgaWYgY3MxIGJhc2UsIG1vdmUgdG8gRExMQgotCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCi0JYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUuCi0Jb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQotCW9ycglyMTAsIHIxMCwgIzB4MgkJQCA5MCBkZWdyZWUgcGhhc2UgZm9yIGFsbCBiZWxvdyAxMzNNaHoKLQlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCi0JYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBkbGwgdG8gbG9jawotCi0JLyogZ2V0IGRsbCB2YWx1ZSAqLwotCWFkZAlyMTEsIHIxMSwgIzB4NAkJQCBnZXQgYWRkciBvZiBzdGF0dXMgcmVnCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGxvY2tlZCB2YWx1ZQotCi0JLyogdm9sdGFnZSBzaGlmdCB1cCAqLwotCW1vdiByOSwgIzB4MAkJCUAgc2hpZnQgYmFjayB0byBMMC12b2x0YWdlCi0JYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyByYWlzZSB2b2x0YWdlCi0KLQkvKiBmcmVxdWVuY3kgc2hpZnQgdXAgKi8KLQltb3YJcjMsICMweDIJCUAgdmFsdWUgZm9yIDJ4IG9wZXJhdGlvbgotCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMC1mcmVxIG9wZXJhdGlvbgotCi0JLyogcmVzZXQgZW50cnkgbW9kZSBmb3IgZGxsY3RybCAqLwotCXN1YglyMTEsIHIxMSwgIzB4NAkJQCBtb3ZlIGZyb20gc3RhdHVzIHRvIGN0cmwKLQljbXAJcjEyLCAjMHgxCQlAIG5vcm1hbGl6ZSBpZiBjczEgYmFzZWQKLQlzdWJlcQlyMTEsIHIxMSwgIzB4OAkJQCBwb3NzaWJseSBiYWNrIHRvIERMTEEKLQljbXAJcjgsICMweDEJCUAgaWYgZm9yY2VkIHVubG9jayBleGl0Ci0Jb3JyZXEJcjEsIHIxLCAjMHg0CQlAIG1ha2Ugc3VyZSBleGl0IHdpdGggdW5sb2NrZWQgdmFsdWUKLQlzdHIJcjEsIFtyMTFdCQlAIHJlc3RvcmUgRExMQV9DVFJMIGhpZ2ggdmFsdWUKLQlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBETExCX0NUUkwgYWRkcgotCXN0cglyMSwgW3IxMV0JCUAgc2V0IHZhbHVlIERMTEJfQ1RSTAotCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgcG9zc2libGUgbG9jawotCi0JLyogc2V0IHVwIGZvciByZXR1cm4sIEREUiBzaG91bGQgYmUgZ29vZCAqLwotCXN0ciByMTAsIFtyMF0JCQlAIHdyaXRlIGRsbF9zdGF0dXMgYW5kIHJldHVybiBjb3VudGVyCi0JbGRtZmQJc3AhLCB7cjAgLSByMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLQkvKiBlbnN1cmUgdGhlIERMTCBoYXMgcmVsb2NrZWQgKi8KLWlfZGxsX3dhaXQ6Ci0JbW92CXI0LCAjMHg4MDAJCUAgZGVsYXkgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcwotaV9kbGxfZGVsYXk6Ci0Jc3VicwlyNCwgcjQsICMweDEKLQlibmUJaV9kbGxfZGVsYXkKLQltb3YJcGMsIGxyCi0KLQkvKgotCSAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0JICogd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KLQkgKi8KLXZvbHRhZ2Vfc2hpZnQ6Ci0JbGRyCXI0LCBwcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsLgotCWxkcglyNSwgW3I0XQkJQCBnZXQgdmFsdWUuCi0JbGRyCXI2LCBwcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKLQlhbmQJcjUsIHI1LCByNgkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKLQlvcnIJcjUsIHI1LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCi0Jc3RyCXI1LCBbcjRdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgotCW1vdglyMywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQotCW9ycglyNSwgcjUsIHIzCQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQotCXN0cglyNSwgW3I0XQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCi0KLQlsZHIJcjMsIHRpbWVyXzMya3N5bmN0X2NyCUAgZ2V0IGFkZHIgb2YgY291bnRlcgotCWxkcglyNSwgW3IzXQkJQCBnZXQgdmFsdWUKLQlhZGQJcjUsIHI1LCAjMHgzCQlAIGdpdmUgaXQgYXQgbW9zdCA5M3VTCi12b2x0X2RlbGF5OgotCWxkcglyNywgW3IzXQkJQCBnZXQgdGltZXIgdmFsdWUKLQljbXAJcjUsIHI3CQkJQCB0aW1lIHVwPwotCWJoaQl2b2x0X2RlbGF5CQlAIG5vdCB5ZXQtPmJyYW5jaAotCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyLgotCi0vKiByZWxhdGl2ZSBsb2FkIGNvbnN0YW50cyAqLwotY21fY2xrc2VsMl9wbGw6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQotc2RyY19kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQotcHJjbV92b2x0Y3RybDoKLQkud29yZCBPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDUwKQotcHJjbV9tYXNrX3ZhbDoKLQkud29yZCAweEZGRkYzRkZDCi10aW1lcl8zMmtzeW5jdF9jcjoKLQkud29yZCBUSU1FUl8zMktTWU5DVF9DUl9WCi1FTlRSWShzcmFtX2Rkcl9pbml0X3N6KQotCS53b3JkCS4gLSBzcmFtX2Rkcl9pbml0Ci0KLS8qCi0gKiBSZXByb2dyYW1zIG1lbW9yeSB0aW1pbmdzLgotICogcjAgPSBbUFJDTV9GVUxMIHwgUFJDTV9IQUxGXSByMSA9IFNEUkNfRExMQV9DVFJMIHZhbHVlIHIyID0gW0REUiB8IFNEUl0KLSAqIFBSQ01fRlVMTCA9IDIsIFBSQ01fSEFMRiA9IDEsIEREUiA9IDEsIFNEUiA9IDAKLSAqLwotRU5UUlkoc3JhbV9yZXByb2dyYW1fc2RyYykKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMCwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKLQltb3YJcjMsICMweDAJCUAgY2xlYXIgZm9yIG1yYyBjYWxsCi0JbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllciwgZmluaXNoIEFSTSBTRFIvRERSCi0Jbm9wCi0Jbm9wCi0JbGRyCXI2LCBkZHJfc2RyY19yZnJfY3RybAlAIGdldCBhZGRyIG9mIHJlZnJlc2ggcmVnCi0JbGRyCXI1LCBbcjZdCQlAIGdldCB2YWx1ZQotCW1vdglyNSwgcjUsIGxzciAjOAkJQCBpc29sYXRlIHJmciBmaWVsZCBhbmQgZHJvcCBidXJzdAotCi0JY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQ/Ci0JbW92bmUJcjksICMweDAJCUAgaWYgdXAgc2V0IGZsYWcgdXAgZm9yIHByZSB1cCwgaGkgdm9sdAotCi0JYmxuZQl2b2x0YWdlX3NoaWZ0X2MJCUAgYWRqdXN0IHZvbHRhZ2UKLQotCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkIChwb3N0IGJyYW5jaCBsaW5rKQotCW1vdmVxCXI1LCByNSwgbHNyICMxCQlAIGRpdmlkZSBieSAyIGlmIHRvIGhhbGYKLQltb3ZuZQlyNSwgcjUsIGxzbCAjMQkJQCBtdWx0IGJ5IDIgaWYgdG8gZnVsbAotCW1vdglyNSwgcjUsIGxzbCAjOAkJQCBwdXQgcmZyIGZpZWxkIGJhY2sgaW50byBwbGFjZQotCWFkZAlyNSwgcjUsICMweDEJCUAgdHVybiBvbiBidXJzdCBvZiAxCi0JbGRyCXI0LCBkZHJfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBvdXQgcmVnCi0JbGRyCXIzLCBbcjRdCQlAIGdldCBjdXJyIHZhbHVlCi0Jb3JyCXIzLCByMywgIzB4MwotCWJpYwlyMywgcjMsICMweDMJCUAgY2xlYXIgbG93ZXIgYml0cwotCW9ycglyMywgcjMsIHIwCQlAIG5ldyBzdGF0ZSB2YWx1ZQotCXN0cglyMywgW3I0XQkJQCBzZXQgbmV3IHN0YXRlIChwbGwveCwgeD0xIG9yIDIpCi0Jbm9wCi0Jbm9wCi0KLQltb3ZlcQlyOSwgIzB4MQkJQCBpZiBzcGVlZCBkb3duLCBwb3N0IGRvd24sIGRyb3Agdm9sdAotCWJsZXEJdm9sdGFnZV9zaGlmdF9jCi0KLQltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyCi0Jc3RyCXI1LCBbcjZdCQlAIHNldCBuZXcgUkZSXzEgdmFsdWUKLQlhZGQJcjYsIHI2LCAjMHgzMAkJQCBnZXQgUkZSXzIgYWRkcgotCXN0cglyNSwgW3I2XQkJQCBzZXQgUkZSXzIKLQlub3AKLQljbXAJcjIsICMweDEJCUAgKFNEUiBvciBERFIpIGRvIHdlIG5lZWQgdG8gYWRqdXN0IERMTAotCWJuZQlmcmVxX291dAkJQCBsZWF2ZSBpZiBTRFIsIG5vIERMTCBmdW5jdGlvbgotCi0JLyogV2l0aCBERFIsIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIHRoZSBETEwgZm9yIHRoZSBmcmVxdWVuY3kgY2hhbmdlICovCi0JbGRyCXIyLCBkZHJfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAotCXN0cglyMSwgW3IyXQkJQCB3cml0ZSBvdXQgbmV3IFNEUkNfRExMQV9DVFJMCi0JYWRkCXIyLCByMiwgIzB4OAkJQCBhZGRyIHRvIFNEUkNfRExMQl9DVFJMCi0Jc3RyCXIxLCBbcjJdCQlAIGNvbW1pdCB0byBTRFJDX0RMTEJfQ1RSTAotCW1vdglyMSwgIzB4MjAwMAkJQCB3YWl0IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKLWRsbF93YWl0OgotCXN1YnMJcjEsIHIxLCAjMHgxCi0JYm5lCWRsbF93YWl0Ci1mcmVxX291dDoKLQlsZG1mZAlzcCEsIHtyMCAtIHIxMCwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLQotICAgIC8qCi0gICAgICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KLSAgICAgKgl3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgotICAgICAqLwotdm9sdGFnZV9zaGlmdF9jOgotCWxkcglyMTAsIGRkcl9wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsCi0JbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKLQlsZHIJcjcsIGRkcl9wcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKLQlhbmQJcjgsIHI4LCByNwkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKLQlvcnIJcjgsIHI4LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCi0Jc3RyCXI4LCBbcjEwXQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KLQltb3YJcjcsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKLQlvcnIJcjgsIHI4LCByNwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKLQlzdHIJcjgsIFtyMTBdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKLQotCWxkcglyMTAsIGRkcl90aW1lcl8zMmtzeW5jdAlAIGdldCBhZGRyIG9mIGNvdW50ZXIKLQlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQotCWFkZAlyOCwgcjgsICMweDIJCUAgZ2l2ZSBpdCBhdCBtb3N0IDYydVMgKG1pbiAzMSspCi12b2x0X2RlbGF5X2M6Ci0JbGRyCXI3LCBbcjEwXQkJQCBnZXQgdGltZXIgdmFsdWUKLQljbXAJcjgsIHI3CQkJQCB0aW1lIHVwPwotCWJoaQl2b2x0X2RlbGF5X2MJCUAgbm90IHlldC0+YnJhbmNoCi0JbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIKLQotZGRyX2NtX2Nsa3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKLWRkcl9zZHJjX2RsbGFfY3RybDoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi1kZHJfc2RyY19yZnJfY3RybDoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQotZGRyX3ByY21fdm9sdGN0cmw6Ci0JLndvcmQgT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHg1MCkKLWRkcl9wcmNtX21hc2tfdmFsOgotCS53b3JkIDB4RkZGRjNGRkMKLWRkcl90aW1lcl8zMmtzeW5jdDoKLQkud29yZCBUSU1FUl8zMktTWU5DVF9DUl9WCi0KLUVOVFJZKHNyYW1fcmVwcm9ncmFtX3NkcmNfc3opCi0JLndvcmQJLiAtIHNyYW1fcmVwcm9ncmFtX3NkcmMKLQotLyoKLSAqIFNldCBkaXZpZGVycyBhbmQgcGxsLiBBbHNvIHJlY2FsY3VsYXRlIERMTCB2YWx1ZSBmb3IgRERSIGFuZCB1bmxvY2sgbW9kZS4KLSAqLwotRU5UUlkoc3JhbV9zZXRfcHJjbSkKLQlzdG1mZAlzcCEsIHtyMC1yMTIsIGxyfQlAIHJlZ3MgdG8gc3RhY2sKLQlhZHIJcjQsIHBiZWdpbgkJQCBhZGRyIG9mIHByZWxvYWQgc3RhcnQKLQlhZHIJcjgsIHBlbmQJCUAgYWRkciBvZiBwcmVsb2FkIGVuZAotCW1jcnIJcDE1LCAxLCByOCwgcjQsIGMxMglAIHByZWxvYWQgaW50byBpY2FjaGUKLXBiZWdpbjoKLQkvKiBtb3ZlIGludG8gZmFzdCByZWxvY2sgYnlwYXNzICovCi0JbGRyCXI4LCBwbGxfY3RsCQlAIGdldCBhZGRyCi0JbGRyCXI1LCBbcjhdCQlAIGdldCB2YWwKLQltdm4JcjYsICMweDMJCUAgY2xlYXIgbWFzawotCWFuZAlyNSwgcjUsIHI2CQlAIGNsZWFyIGZpZWxkCi0Jb3JyCXI3LCByNSwgIzB4MgkJQCBmYXN0IHJlbG9jayB2YWwKLQlzdHIJcjcsIFtyOF0JCUAgZ28gdG8gZmFzdCByZWxvY2sKLQlsZHIJcjQsIHBsbF9zdGF0CQlAIGFkZHIgb2Ygc3RhdAotYmxvY2s6Ci0JLyogd2FpdCBmb3IgYnlwYXNzICovCi0JbGRyCXI4LCBbcjRdCQlAIHN0YXQgdmFsdWUKLQlhbmQJcjgsIHI4LCAjMHgzCQlAIG1hc2sgZm9yIHN0YXQKLQljbXAJcjgsICMweDEJCUAgdGhlcmUgeWV0Ci0JYm5lCWJsb2NrCQkJQCBsb29wIGlmIG5vdAotCi0JLyogc2V0IG5ldyBkcGxsIGRpdmlkZXJzIF9hZnRlcl8gaW4gYnlwYXNzICovCi0JbGRyCXI0LCBwbGxfZGl2CQlAIGdldCBhZGRyCi0Jc3RyCXIwLCBbcjRdCQlAIHNldCBkcGxsIGN0cmwgdmFsCi0KLQlsZHIJcjQsIHNldF9jb25maWcJCUAgZ2V0IGFkZHIKLQltb3YJcjgsICMxCQkJQCB2YWxpZCBjZmcgbXNrCi0Jc3RyCXI4LCBbcjRdCQlAIG1ha2UgZGl2aWRlcnMgdGFrZQotCi0JbW92CXI0LCAjMTAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9hX2JpdDoKLQlzdWJzCXI0LCByNCwgIzEJCUAgZGVjIGxvb3AKLQlibmUJd2FpdF9hX2JpdAkJQCBkZWxheSBkb25lPwotCi0JLyogY2hlY2sgaWYgc3RheWluZyBpbiBieXBhc3MgKi8KLQljbXAJcjIsICMweDEJCUAgc3RheSBpbiBieXBhc3M/Ci0JYmVxCXBlbmQJCQlAIGp1bXAgb3ZlciBkcGxsIHJlbG9jawotCi0JLyogcmVsb2NrIERQTEwgd2l0aCBuZXcgdmFscyAqLwotCWxkcglyNSwgcGxsX3N0YXQJCUAgZ2V0IGFkZHIKLQlsZHIJcjQsIHBsbF9jdGwJCUAgZ2V0IGFkZHIKLQlvcnIJcjgsIHI3LCAjMHgzCQlAIHZhbCBmb3IgbG9jayBkcGxsCi0Jc3RyCXI4LCBbcjRdCQlAIHNldCB2YWwKLQltb3YJcjAsICMxMDAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9tb3JlOgotCXN1YnMJcjAsIHIwLCAjMQkJQCBkZWMgbG9vcAotCWJuZQl3YWl0X21vcmUJCUAgZGVsYXkgZG9uZT8KLXdhaXRfbG9jazoKLQlsZHIJcjgsIFtyNV0JCUAgZ2V0IGxvY2sgdmFsCi0JYW5kCXI4LCByOCwgIzMJCUAgaXNvbGF0ZSBmaWVsZAotCWNtcAlyOCwgIzIJCQlAIGxvY2tlZD8KLQlibmUJd2FpdF9sb2NrCQlAIHdhaXQgaWYgbm90Ci1wZW5kOgotCS8qIHVwZGF0ZSBtZW1vcnkgdGltaW5ncyAmIGJyaWVmbHkgbG9jayBkbGwgKi8KLQlsZHIJcjQsIHNkcmNfcmZyCQlAIGdldCBhZGRyCi0Jc3RyCXIxLCBbcjRdCQlAIHVwZGF0ZSByZWZyZXNoIHRpbWluZwotCWxkcglyMTEsIGRsbGFfY3RybAkJQCBnZXQgYWRkciBvZiBETExBIGN0cmwKLQlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKLQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgotCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlCi0Jb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQotCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKLQlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBkbGxiCi0Jc3RyCXIxMCwgW3IxMV0JCUAgaGl0IERMTEIgYWxzbwotCi0JbW92CXI0LCAjMHg4MDAJCUAgcmVsb2NrIHRpbWUgKG1pbiAweDQwMCBMMyBjbG9ja3MpCi13YWl0X2RsbF9sb2NrOgotCXN1YnMJcjQsIHI0LCAjMHgxCi0JYm5lCXdhaXRfZGxsX2xvY2sKLQlub3AKLQlsZG1mZAlzcCEsIHtyMC1yMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLXNldF9jb25maWc6Ci0JLndvcmQgT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHg4MCkKLXBsbF9jdGw6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9GQ0xLRU4xKQotcGxsX3N0YXQ6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QxKQotcGxsX2RpdjoKLQkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTCkKLXNkcmNfcmZyOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCi1kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQotCi1FTlRSWShzcmFtX3NldF9wcmNtX3N6KQotCS53b3JkCS4gLSBzcmFtX3NldF9wcmNtCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDJ4LlMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDJ4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyNzQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUwpAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUworICoKKyAqIE9tYXAyIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDQKKyAqIFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgL1BVUlBPU0UuIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworI2luY2x1ZGUgInBybS5oIgorI2luY2x1ZGUgImNtLmgiCisjaW5jbHVkZSAic2RyYy5oIgorCisJLnRleHQKKworRU5UUlkob21hcDI0Mnhfc3JhbV9kZHJfaW5pdCkKKwlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKKworCW1vdglyMTIsIHIyCQkJQCBjYXB0dXJlIENTMSB2cyBDUzAKKwltb3YJcjgsIHIzCQkJQCBjYXB0dXJlIGZvcmNlIHBhcmFtZXRlcgorCisJLyogZnJlcXVlbmN5IHNoaWZ0IGRvd24gKi8KKwlsZHIJcjIsIG9tYXAyNDJ4X3NkaV9jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIGRwbGxvdXQgcmVnCisJbW92CXIzLCAjMHgxCQlAIHZhbHVlIGZvciAxeCBvcGVyYXRpb24KKwlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDEtZnJlcSBvcGVyYXRpb24KKworCS8qIHZvbHRhZ2Ugc2hpZnQgZG93biAqLworCW1vdiByOSwgIzB4MQkJCUAgc2V0IHVwIGZvciBMMSB2b2x0YWdlIGNhbGwKKwlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIGRyb3Agdm9sdGFnZQorCisJLyogZGxsIGxvY2sgbW9kZSAqLworCWxkcglyMTEsIG9tYXAyNDJ4X3NkaV9zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCisJY21wCXIxMiwgIzB4MQkJQCBjczEgYmFzZSAoMjQyMiBlczIuMDUvMSkKKwlhZGRlcQlyMTEsIHIxMSwgIzB4OAkJQCBpZiBjczEgYmFzZSwgbW92ZSB0byBETExCCisJbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKKwlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZS4KKwlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCisJb3JyCXIxMCwgcjEwLCAjMHgyCQlAIDkwIGRlZ3JlZSBwaGFzZSBmb3IgYWxsIGJlbG93IDEzM01oegorCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKKwlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIGRsbCB0byBsb2NrCisKKwkvKiBnZXQgZGxsIHZhbHVlICovCisJYWRkCXIxMSwgcjExLCAjMHg0CQlAIGdldCBhZGRyIG9mIHN0YXR1cyByZWcKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgbG9ja2VkIHZhbHVlCisKKwkvKiB2b2x0YWdlIHNoaWZ0IHVwICovCisJbW92IHI5LCAjMHgwCQkJQCBzaGlmdCBiYWNrIHRvIEwwLXZvbHRhZ2UKKwlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIHJhaXNlIHZvbHRhZ2UKKworCS8qIGZyZXF1ZW5jeSBzaGlmdCB1cCAqLworCW1vdglyMywgIzB4MgkJQCB2YWx1ZSBmb3IgMnggb3BlcmF0aW9uCisJc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwwLWZyZXEgb3BlcmF0aW9uCisKKwkvKiByZXNldCBlbnRyeSBtb2RlIGZvciBkbGxjdHJsICovCisJc3ViCXIxMSwgcjExLCAjMHg0CQlAIG1vdmUgZnJvbSBzdGF0dXMgdG8gY3RybAorCWNtcAlyMTIsICMweDEJCUAgbm9ybWFsaXplIGlmIGNzMSBiYXNlZAorCXN1YmVxCXIxMSwgcjExLCAjMHg4CQlAIHBvc3NpYmx5IGJhY2sgdG8gRExMQQorCWNtcAlyOCwgIzB4MQkJQCBpZiBmb3JjZWQgdW5sb2NrIGV4aXQKKwlvcnJlcQlyMSwgcjEsICMweDQJCUAgbWFrZSBzdXJlIGV4aXQgd2l0aCB1bmxvY2tlZCB2YWx1ZQorCXN0cglyMSwgW3IxMV0JCUAgcmVzdG9yZSBETExBX0NUUkwgaGlnaCB2YWx1ZQorCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIERMTEJfQ1RSTCBhZGRyCisJc3RyCXIxLCBbcjExXQkJQCBzZXQgdmFsdWUgRExMQl9DVFJMCisJYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBwb3NzaWJsZSBsb2NrCisKKwkvKiBzZXQgdXAgZm9yIHJldHVybiwgRERSIHNob3VsZCBiZSBnb29kICovCisJc3RyIHIxMCwgW3IwXQkJCUAgd3JpdGUgZGxsX3N0YXR1cyBhbmQgcmV0dXJuIGNvdW50ZXIKKwlsZG1mZAlzcCEsIHtyMCAtIHIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworCS8qIGVuc3VyZSB0aGUgRExMIGhhcyByZWxvY2tlZCAqLworaV9kbGxfd2FpdDoKKwltb3YJcjQsICMweDgwMAkJQCBkZWxheSBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCitpX2RsbF9kZWxheToKKwlzdWJzCXI0LCByNCwgIzB4MQorCWJuZQlpX2RsbF9kZWxheQorCW1vdglwYywgbHIKKworCS8qCisJICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KKwkgKiB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgorCSAqLwordm9sdGFnZV9zaGlmdDoKKwlsZHIJcjQsIG9tYXAyNDJ4X3NkaV9wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsLgorCWxkcglyNSwgW3I0XQkJQCBnZXQgdmFsdWUuCisJbGRyCXI2LCBwcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKKwlhbmQJcjUsIHI1LCByNgkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKKwlvcnIJcjUsIHI1LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCisJc3RyCXI1LCBbcjRdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgorCW1vdglyMywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQorCW9ycglyNSwgcjUsIHIzCQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQorCXN0cglyNSwgW3I0XQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCisKKwlsZHIJcjMsIG9tYXAyNDJ4X3NkaV90aW1lcl8zMmtzeW5jdF9jcglAIGdldCBhZGRyIG9mIGNvdW50ZXIKKwlsZHIJcjUsIFtyM10JCUAgZ2V0IHZhbHVlCisJYWRkCXI1LCByNSwgIzB4MwkJQCBnaXZlIGl0IGF0IG1vc3QgOTN1Uwordm9sdF9kZWxheToKKwlsZHIJcjcsIFtyM10JCUAgZ2V0IHRpbWVyIHZhbHVlCisJY21wCXI1LCByNwkJCUAgdGltZSB1cD8KKwliaGkJdm9sdF9kZWxheQkJQCBub3QgeWV0LT5icmFuY2gKKwltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlci4KKworb21hcDI0Mnhfc2RpX2NtX2Nsa3NlbDJfcGxsOgorCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKK29tYXAyNDJ4X3NkaV9zZHJjX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCitvbWFwMjQyeF9zZGlfcHJjbV92b2x0Y3RybDoKKwkud29yZCBPTUFQMjQyWF9QUkNNX1ZPTFRDVFJMCitwcmNtX21hc2tfdmFsOgorCS53b3JkIDB4RkZGRjNGRkMKK29tYXAyNDJ4X3NkaV90aW1lcl8zMmtzeW5jdF9jcjoKKwkud29yZCBJT19BRERSRVNTKE9NQVAyXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKK0VOVFJZKG9tYXAyNDJ4X3NyYW1fZGRyX2luaXRfc3opCisJLndvcmQJLiAtIG9tYXAyNDJ4X3NyYW1fZGRyX2luaXQKKworLyoKKyAqIFJlcHJvZ3JhbXMgbWVtb3J5IHRpbWluZ3MuCisgKiByMCA9IFtQUkNNX0ZVTEwgfCBQUkNNX0hBTEZdIHIxID0gU0RSQ19ETExBX0NUUkwgdmFsdWUgcjIgPSBbRERSIHwgU0RSXQorICogUFJDTV9GVUxMID0gMiwgUFJDTV9IQUxGID0gMSwgRERSID0gMSwgU0RSID0gMAorICovCitFTlRSWShvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKQorCXN0bWZkCXNwISwge3IwIC0gcjEwLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjaworCW1vdglyMywgIzB4MAkJQCBjbGVhciBmb3IgbXJjIGNhbGwKKwltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyLCBmaW5pc2ggQVJNIFNEUi9ERFIKKwlub3AKKwlub3AKKwlsZHIJcjYsIG9tYXAyNDJ4X3Nyc19zZHJjX3Jmcl9jdHJsCUAgZ2V0IGFkZHIgb2YgcmVmcmVzaCByZWcKKwlsZHIJcjUsIFtyNl0JCUAgZ2V0IHZhbHVlCisJbW92CXI1LCByNSwgbHNyICM4CQlAIGlzb2xhdGUgcmZyIGZpZWxkIGFuZCBkcm9wIGJ1cnN0CisKKwljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZD8KKwltb3ZuZQlyOSwgIzB4MAkJQCBpZiB1cCBzZXQgZmxhZyB1cCBmb3IgcHJlIHVwLCBoaSB2b2x0CisKKwlibG5lCXZvbHRhZ2Vfc2hpZnRfYwkJQCBhZGp1c3Qgdm9sdGFnZQorCisJY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQgKHBvc3QgYnJhbmNoIGxpbmspCisJbW92ZXEJcjUsIHI1LCBsc3IgIzEJCUAgZGl2aWRlIGJ5IDIgaWYgdG8gaGFsZgorCW1vdm5lCXI1LCByNSwgbHNsICMxCQlAIG11bHQgYnkgMiBpZiB0byBmdWxsCisJbW92CXI1LCByNSwgbHNsICM4CQlAIHB1dCByZnIgZmllbGQgYmFjayBpbnRvIHBsYWNlCisJYWRkCXI1LCByNSwgIzB4MQkJQCB0dXJuIG9uIGJ1cnN0IG9mIDEKKwlsZHIJcjQsIG9tYXAyNDJ4X3Nyc19jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIG91dCByZWcKKwlsZHIJcjMsIFtyNF0JCUAgZ2V0IGN1cnIgdmFsdWUKKwlvcnIJcjMsIHIzLCAjMHgzCisJYmljCXIzLCByMywgIzB4MwkJQCBjbGVhciBsb3dlciBiaXRzCisJb3JyCXIzLCByMywgcjAJCUAgbmV3IHN0YXRlIHZhbHVlCisJc3RyCXIzLCBbcjRdCQlAIHNldCBuZXcgc3RhdGUgKHBsbC94LCB4PTEgb3IgMikKKwlub3AKKwlub3AKKworCW1vdmVxCXI5LCAjMHgxCQlAIGlmIHNwZWVkIGRvd24sIHBvc3QgZG93biwgZHJvcCB2b2x0CisJYmxlcQl2b2x0YWdlX3NoaWZ0X2MKKworCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIKKwlzdHIJcjUsIFtyNl0JCUAgc2V0IG5ldyBSRlJfMSB2YWx1ZQorCWFkZAlyNiwgcjYsICMweDMwCQlAIGdldCBSRlJfMiBhZGRyCisJc3RyCXI1LCBbcjZdCQlAIHNldCBSRlJfMgorCW5vcAorCWNtcAlyMiwgIzB4MQkJQCAoU0RSIG9yIEREUikgZG8gd2UgbmVlZCB0byBhZGp1c3QgRExMCisJYm5lCWZyZXFfb3V0CQlAIGxlYXZlIGlmIFNEUiwgbm8gRExMIGZ1bmN0aW9uCisKKwkvKiBXaXRoIEREUiwgd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgdGhlIERMTCBmb3IgdGhlIGZyZXF1ZW5jeSBjaGFuZ2UgKi8KKwlsZHIJcjIsIG9tYXAyNDJ4X3Nyc19zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCisJc3RyCXIxLCBbcjJdCQlAIHdyaXRlIG91dCBuZXcgU0RSQ19ETExBX0NUUkwKKwlhZGQJcjIsIHIyLCAjMHg4CQlAIGFkZHIgdG8gU0RSQ19ETExCX0NUUkwKKwlzdHIJcjEsIFtyMl0JCUAgY29tbWl0IHRvIFNEUkNfRExMQl9DVFJMCisJbW92CXIxLCAjMHgyMDAwCQlAIHdhaXQgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcworZGxsX3dhaXQ6CisJc3VicwlyMSwgcjEsICMweDEKKwlibmUJZGxsX3dhaXQKK2ZyZXFfb3V0OgorCWxkbWZkCXNwISwge3IwIC0gcjEwLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCisgICAgLyoKKyAgICAgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgorICAgICAqCXdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCisgICAgICovCit2b2x0YWdlX3NoaWZ0X2M6CisJbGRyCXIxMCwgb21hcDI0Mnhfc3JzX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwKKwlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQorCWxkcglyNywgZGRyX3ByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzaworCWFuZAlyOCwgcjgsIHI3CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cworCW9ycglyOCwgcjgsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KKwlzdHIJcjgsIFtyMTBdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgorCW1vdglyNywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQorCW9ycglyOCwgcjgsIHI3CQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQorCXN0cglyOCwgW3IxMF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQorCisJbGRyCXIxMCwgb21hcDI0Mnhfc3JzX3RpbWVyXzMya3N5bmN0CUAgZ2V0IGFkZHIgb2YgY291bnRlcgorCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCisJYWRkCXI4LCByOCwgIzB4MgkJQCBnaXZlIGl0IGF0IG1vc3QgNjJ1UyAobWluIDMxKykKK3ZvbHRfZGVsYXlfYzoKKwlsZHIJcjcsIFtyMTBdCQlAIGdldCB0aW1lciB2YWx1ZQorCWNtcAlyOCwgcjcJCQlAIHRpbWUgdXA/CisJYmhpCXZvbHRfZGVsYXlfYwkJQCBub3QgeWV0LT5icmFuY2gKKwltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlcgorCitvbWFwMjQyeF9zcnNfY21fY2xrc2VsMl9wbGw6CisJLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQorb21hcDI0Mnhfc3JzX3NkcmNfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKK29tYXAyNDJ4X3Nyc19zZHJjX3Jmcl9jdHJsOgorCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCitvbWFwMjQyeF9zcnNfcHJjbV92b2x0Y3RybDoKKwkud29yZCBPTUFQMjQyWF9QUkNNX1ZPTFRDVFJMCitkZHJfcHJjbV9tYXNrX3ZhbDoKKwkud29yZCAweEZGRkYzRkZDCitvbWFwMjQyeF9zcnNfdGltZXJfMzJrc3luY3Q6CisJLndvcmQgSU9fQUREUkVTUyhPTUFQMl8zMktTWU5DVF9CQVNFICsgMHgwMTApCisKK0VOVFJZKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opCisJLndvcmQJLiAtIG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmMKKworLyoKKyAqIFNldCBkaXZpZGVycyBhbmQgcGxsLiBBbHNvIHJlY2FsY3VsYXRlIERMTCB2YWx1ZSBmb3IgRERSIGFuZCB1bmxvY2sgbW9kZS4KKyAqLworRU5UUlkob21hcDI0Mnhfc3JhbV9zZXRfcHJjbSkKKwlzdG1mZAlzcCEsIHtyMC1yMTIsIGxyfQlAIHJlZ3MgdG8gc3RhY2sKKwlhZHIJcjQsIHBiZWdpbgkJQCBhZGRyIG9mIHByZWxvYWQgc3RhcnQKKwlhZHIJcjgsIHBlbmQJCUAgYWRkciBvZiBwcmVsb2FkIGVuZAorCW1jcnIJcDE1LCAxLCByOCwgcjQsIGMxMglAIHByZWxvYWQgaW50byBpY2FjaGUKK3BiZWdpbjoKKwkvKiBtb3ZlIGludG8gZmFzdCByZWxvY2sgYnlwYXNzICovCisJbGRyCXI4LCBvbWFwMjQyeF9zc3BfcGxsX2N0bAlAIGdldCBhZGRyCisJbGRyCXI1LCBbcjhdCQlAIGdldCB2YWwKKwltdm4JcjYsICMweDMJCUAgY2xlYXIgbWFzaworCWFuZAlyNSwgcjUsIHI2CQlAIGNsZWFyIGZpZWxkCisJb3JyCXI3LCByNSwgIzB4MgkJQCBmYXN0IHJlbG9jayB2YWwKKwlzdHIJcjcsIFtyOF0JCUAgZ28gdG8gZmFzdCByZWxvY2sKKwlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9wbGxfc3RhdAlAIGFkZHIgb2Ygc3RhdAorYmxvY2s6CisJLyogd2FpdCBmb3IgYnlwYXNzICovCisJbGRyCXI4LCBbcjRdCQlAIHN0YXQgdmFsdWUKKwlhbmQJcjgsIHI4LCAjMHgzCQlAIG1hc2sgZm9yIHN0YXQKKwljbXAJcjgsICMweDEJCUAgdGhlcmUgeWV0CisJYm5lCWJsb2NrCQkJQCBsb29wIGlmIG5vdAorCisJLyogc2V0IG5ldyBkcGxsIGRpdmlkZXJzIF9hZnRlcl8gaW4gYnlwYXNzICovCisJbGRyCXI0LCBvbWFwMjQyeF9zc3BfcGxsX2RpdglAIGdldCBhZGRyCisJc3RyCXIwLCBbcjRdCQlAIHNldCBkcGxsIGN0cmwgdmFsCisKKwlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9zZXRfY29uZmlnCUAgZ2V0IGFkZHIKKwltb3YJcjgsICMxCQkJQCB2YWxpZCBjZmcgbXNrCisJc3RyCXI4LCBbcjRdCQlAIG1ha2UgZGl2aWRlcnMgdGFrZQorCisJbW92CXI0LCAjMTAwCQlAIGRlYWQgc3BpbiBhIGJpdAord2FpdF9hX2JpdDoKKwlzdWJzCXI0LCByNCwgIzEJCUAgZGVjIGxvb3AKKwlibmUJd2FpdF9hX2JpdAkJQCBkZWxheSBkb25lPworCisJLyogY2hlY2sgaWYgc3RheWluZyBpbiBieXBhc3MgKi8KKwljbXAJcjIsICMweDEJCUAgc3RheSBpbiBieXBhc3M/CisJYmVxCXBlbmQJCQlAIGp1bXAgb3ZlciBkcGxsIHJlbG9jaworCisJLyogcmVsb2NrIERQTEwgd2l0aCBuZXcgdmFscyAqLworCWxkcglyNSwgb21hcDI0Mnhfc3NwX3BsbF9zdGF0CUAgZ2V0IGFkZHIKKwlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKKwlvcnIJcjgsIHI3LCAjMHgzCQlAIHZhbCBmb3IgbG9jayBkcGxsCisJc3RyCXI4LCBbcjRdCQlAIHNldCB2YWwKKwltb3YJcjAsICMxMDAwCQlAIGRlYWQgc3BpbiBhIGJpdAord2FpdF9tb3JlOgorCXN1YnMJcjAsIHIwLCAjMQkJQCBkZWMgbG9vcAorCWJuZQl3YWl0X21vcmUJCUAgZGVsYXkgZG9uZT8KK3dhaXRfbG9jazoKKwlsZHIJcjgsIFtyNV0JCUAgZ2V0IGxvY2sgdmFsCisJYW5kCXI4LCByOCwgIzMJCUAgaXNvbGF0ZSBmaWVsZAorCWNtcAlyOCwgIzIJCQlAIGxvY2tlZD8KKwlibmUJd2FpdF9sb2NrCQlAIHdhaXQgaWYgbm90CitwZW5kOgorCS8qIHVwZGF0ZSBtZW1vcnkgdGltaW5ncyAmIGJyaWVmbHkgbG9jayBkbGwgKi8KKwlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9zZHJjX3JmcglAIGdldCBhZGRyCisJc3RyCXIxLCBbcjRdCQlAIHVwZGF0ZSByZWZyZXNoIHRpbWluZworCWxkcglyMTEsIG9tYXAyNDJ4X3NzcF9kbGxhX2N0cmwJQCBnZXQgYWRkciBvZiBETExBIGN0cmwKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKKwltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgorCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlCisJb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQorCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKKwlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBkbGxiCisJc3RyCXIxMCwgW3IxMV0JCUAgaGl0IERMTEIgYWxzbworCisJbW92CXI0LCAjMHg4MDAJCUAgcmVsb2NrIHRpbWUgKG1pbiAweDQwMCBMMyBjbG9ja3MpCit3YWl0X2RsbF9sb2NrOgorCXN1YnMJcjQsIHI0LCAjMHgxCisJYm5lCXdhaXRfZGxsX2xvY2sKKwlub3AKKwlsZG1mZAlzcCEsIHtyMC1yMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKK29tYXAyNDJ4X3NzcF9zZXRfY29uZmlnOgorCS53b3JkIE9NQVAyNDJYX1BSQ01fQ0xLQ0ZHX0NUUkwKK29tYXAyNDJ4X3NzcF9wbGxfY3RsOgorCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pCitvbWFwMjQyeF9zc3BfcGxsX3N0YXQ6CisJLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpCitvbWFwMjQyeF9zc3BfcGxsX2RpdjoKKwkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpCitvbWFwMjQyeF9zc3Bfc2RyY19yZnI6CisJLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKK29tYXAyNDJ4X3NzcF9kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorCitFTlRSWShvbWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6KQorCS53b3JkCS4gLSBvbWFwMjQyeF9zcmFtX3NldF9wcmNtCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDN4LlMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDN4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNmYTQ4ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDN4LlMKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDN4LlMKKyAqCisgKiBPbWFwMiBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHJ1biBpbiBpbnRlcm5hbCBTUkFNCisgKgorICogKEMpIENvcHlyaWdodCAyMDA0CisgKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisgKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIC9QVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlICJwcm0uaCIKKyNpbmNsdWRlICJjbS5oIgorI2luY2x1ZGUgInNkcmMuaCIKKworCS50ZXh0CisKK0VOVFJZKG9tYXAyNDN4X3NyYW1fZGRyX2luaXQpCisJc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCisKKwltb3YJcjEyLCByMgkJCUAgY2FwdHVyZSBDUzEgdnMgQ1MwCisJbW92CXI4LCByMwkJCUAgY2FwdHVyZSBmb3JjZSBwYXJhbWV0ZXIKKworCS8qIGZyZXF1ZW5jeSBzaGlmdCBkb3duICovCisJbGRyCXIyLCBvbWFwMjQzeF9zZGlfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBkcGxsb3V0IHJlZworCW1vdglyMywgIzB4MQkJQCB2YWx1ZSBmb3IgMXggb3BlcmF0aW9uCisJc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwxLWZyZXEgb3BlcmF0aW9uCisKKwkvKiB2b2x0YWdlIHNoaWZ0IGRvd24gKi8KKwltb3YgcjksICMweDEJCQlAIHNldCB1cCBmb3IgTDEgdm9sdGFnZSBjYWxsCisJYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyBkcm9wIHZvbHRhZ2UKKworCS8qIGRsbCBsb2NrIG1vZGUgKi8KKwlsZHIJcjExLCBvbWFwMjQzeF9zZGlfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAorCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAorCWNtcAlyMTIsICMweDEJCUAgY3MxIGJhc2UgKDI0MjIgZXMyLjA1LzEpCisJYWRkZXEJcjExLCByMTEsICMweDgJCUAgaWYgY3MxIGJhc2UsIG1vdmUgdG8gRExMQgorCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCisJYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUuCisJb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQorCW9ycglyMTAsIHIxMCwgIzB4MgkJQCA5MCBkZWdyZWUgcGhhc2UgZm9yIGFsbCBiZWxvdyAxMzNNaHoKKwlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCisJYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBkbGwgdG8gbG9jaworCisJLyogZ2V0IGRsbCB2YWx1ZSAqLworCWFkZAlyMTEsIHIxMSwgIzB4NAkJQCBnZXQgYWRkciBvZiBzdGF0dXMgcmVnCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGxvY2tlZCB2YWx1ZQorCisJLyogdm9sdGFnZSBzaGlmdCB1cCAqLworCW1vdiByOSwgIzB4MAkJCUAgc2hpZnQgYmFjayB0byBMMC12b2x0YWdlCisJYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyByYWlzZSB2b2x0YWdlCisKKwkvKiBmcmVxdWVuY3kgc2hpZnQgdXAgKi8KKwltb3YJcjMsICMweDIJCUAgdmFsdWUgZm9yIDJ4IG9wZXJhdGlvbgorCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMC1mcmVxIG9wZXJhdGlvbgorCisJLyogcmVzZXQgZW50cnkgbW9kZSBmb3IgZGxsY3RybCAqLworCXN1YglyMTEsIHIxMSwgIzB4NAkJQCBtb3ZlIGZyb20gc3RhdHVzIHRvIGN0cmwKKwljbXAJcjEyLCAjMHgxCQlAIG5vcm1hbGl6ZSBpZiBjczEgYmFzZWQKKwlzdWJlcQlyMTEsIHIxMSwgIzB4OAkJQCBwb3NzaWJseSBiYWNrIHRvIERMTEEKKwljbXAJcjgsICMweDEJCUAgaWYgZm9yY2VkIHVubG9jayBleGl0CisJb3JyZXEJcjEsIHIxLCAjMHg0CQlAIG1ha2Ugc3VyZSBleGl0IHdpdGggdW5sb2NrZWQgdmFsdWUKKwlzdHIJcjEsIFtyMTFdCQlAIHJlc3RvcmUgRExMQV9DVFJMIGhpZ2ggdmFsdWUKKwlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBETExCX0NUUkwgYWRkcgorCXN0cglyMSwgW3IxMV0JCUAgc2V0IHZhbHVlIERMTEJfQ1RSTAorCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgcG9zc2libGUgbG9jaworCisJLyogc2V0IHVwIGZvciByZXR1cm4sIEREUiBzaG91bGQgYmUgZ29vZCAqLworCXN0ciByMTAsIFtyMF0JCQlAIHdyaXRlIGRsbF9zdGF0dXMgYW5kIHJldHVybiBjb3VudGVyCisJbGRtZmQJc3AhLCB7cjAgLSByMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKKwkvKiBlbnN1cmUgdGhlIERMTCBoYXMgcmVsb2NrZWQgKi8KK2lfZGxsX3dhaXQ6CisJbW92CXI0LCAjMHg4MDAJCUAgZGVsYXkgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcworaV9kbGxfZGVsYXk6CisJc3VicwlyNCwgcjQsICMweDEKKwlibmUJaV9kbGxfZGVsYXkKKwltb3YJcGMsIGxyCisKKwkvKgorCSAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCisJICogd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KKwkgKi8KK3ZvbHRhZ2Vfc2hpZnQ6CisJbGRyCXI0LCBvbWFwMjQzeF9zZGlfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybC4KKwlsZHIJcjUsIFtyNF0JCUAgZ2V0IHZhbHVlLgorCWxkcglyNiwgcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCisJYW5kCXI1LCByNSwgcjYJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCisJb3JyCXI1LCByNSwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgorCXN0cglyNSwgW3I0XQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KKwltb3YJcjMsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKKwlvcnIJcjUsIHI1LCByMwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKKwlzdHIJcjUsIFtyNF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQorCisJbGRyCXIzLCBvbWFwMjQzeF9zZGlfdGltZXJfMzJrc3luY3RfY3IJQCBnZXQgYWRkciBvZiBjb3VudGVyCisJbGRyCXI1LCBbcjNdCQlAIGdldCB2YWx1ZQorCWFkZAlyNSwgcjUsICMweDMJCUAgZ2l2ZSBpdCBhdCBtb3N0IDkzdVMKK3ZvbHRfZGVsYXk6CisJbGRyCXI3LCBbcjNdCQlAIGdldCB0aW1lciB2YWx1ZQorCWNtcAlyNSwgcjcJCQlAIHRpbWUgdXA/CisJYmhpCXZvbHRfZGVsYXkJCUAgbm90IHlldC0+YnJhbmNoCisJbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIuCisKK29tYXAyNDN4X3NkaV9jbV9jbGtzZWwyX3BsbDoKKwkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCitvbWFwMjQzeF9zZGlfc2RyY19kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorb21hcDI0M3hfc2RpX3ByY21fdm9sdGN0cmw6CisJLndvcmQgT01BUDI0M1hfUFJDTV9WT0xUQ1RSTAorcHJjbV9tYXNrX3ZhbDoKKwkud29yZCAweEZGRkYzRkZDCitvbWFwMjQzeF9zZGlfdGltZXJfMzJrc3luY3RfY3I6CisJLndvcmQgSU9fQUREUkVTUyhPTUFQMl8zMktTWU5DVF9CQVNFICsgMHgwMTApCitFTlRSWShvbWFwMjQzeF9zcmFtX2Rkcl9pbml0X3N6KQorCS53b3JkCS4gLSBvbWFwMjQzeF9zcmFtX2Rkcl9pbml0CisKKy8qCisgKiBSZXByb2dyYW1zIG1lbW9yeSB0aW1pbmdzLgorICogcjAgPSBbUFJDTV9GVUxMIHwgUFJDTV9IQUxGXSByMSA9IFNEUkNfRExMQV9DVFJMIHZhbHVlIHIyID0gW0REUiB8IFNEUl0KKyAqIFBSQ01fRlVMTCA9IDIsIFBSQ01fSEFMRiA9IDEsIEREUiA9IDEsIFNEUiA9IDAKKyAqLworRU5UUlkob21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyYykKKwlzdG1mZAlzcCEsIHtyMCAtIHIxMCwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKKwltb3YJcjMsICMweDAJCUAgY2xlYXIgZm9yIG1yYyBjYWxsCisJbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllciwgZmluaXNoIEFSTSBTRFIvRERSCisJbm9wCisJbm9wCisJbGRyCXI2LCBvbWFwMjQzeF9zcnNfc2RyY19yZnJfY3RybAlAIGdldCBhZGRyIG9mIHJlZnJlc2ggcmVnCisJbGRyCXI1LCBbcjZdCQlAIGdldCB2YWx1ZQorCW1vdglyNSwgcjUsIGxzciAjOAkJQCBpc29sYXRlIHJmciBmaWVsZCBhbmQgZHJvcCBidXJzdAorCisJY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQ/CisJbW92bmUJcjksICMweDAJCUAgaWYgdXAgc2V0IGZsYWcgdXAgZm9yIHByZSB1cCwgaGkgdm9sdAorCisJYmxuZQl2b2x0YWdlX3NoaWZ0X2MJCUAgYWRqdXN0IHZvbHRhZ2UKKworCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkIChwb3N0IGJyYW5jaCBsaW5rKQorCW1vdmVxCXI1LCByNSwgbHNyICMxCQlAIGRpdmlkZSBieSAyIGlmIHRvIGhhbGYKKwltb3ZuZQlyNSwgcjUsIGxzbCAjMQkJQCBtdWx0IGJ5IDIgaWYgdG8gZnVsbAorCW1vdglyNSwgcjUsIGxzbCAjOAkJQCBwdXQgcmZyIGZpZWxkIGJhY2sgaW50byBwbGFjZQorCWFkZAlyNSwgcjUsICMweDEJCUAgdHVybiBvbiBidXJzdCBvZiAxCisJbGRyCXI0LCBvbWFwMjQzeF9zcnNfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBvdXQgcmVnCisJbGRyCXIzLCBbcjRdCQlAIGdldCBjdXJyIHZhbHVlCisJb3JyCXIzLCByMywgIzB4MworCWJpYwlyMywgcjMsICMweDMJCUAgY2xlYXIgbG93ZXIgYml0cworCW9ycglyMywgcjMsIHIwCQlAIG5ldyBzdGF0ZSB2YWx1ZQorCXN0cglyMywgW3I0XQkJQCBzZXQgbmV3IHN0YXRlIChwbGwveCwgeD0xIG9yIDIpCisJbm9wCisJbm9wCisKKwltb3ZlcQlyOSwgIzB4MQkJQCBpZiBzcGVlZCBkb3duLCBwb3N0IGRvd24sIGRyb3Agdm9sdAorCWJsZXEJdm9sdGFnZV9zaGlmdF9jCisKKwltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyCisJc3RyCXI1LCBbcjZdCQlAIHNldCBuZXcgUkZSXzEgdmFsdWUKKwlhZGQJcjYsIHI2LCAjMHgzMAkJQCBnZXQgUkZSXzIgYWRkcgorCXN0cglyNSwgW3I2XQkJQCBzZXQgUkZSXzIKKwlub3AKKwljbXAJcjIsICMweDEJCUAgKFNEUiBvciBERFIpIGRvIHdlIG5lZWQgdG8gYWRqdXN0IERMTAorCWJuZQlmcmVxX291dAkJQCBsZWF2ZSBpZiBTRFIsIG5vIERMTCBmdW5jdGlvbgorCisJLyogV2l0aCBERFIsIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIHRoZSBETEwgZm9yIHRoZSBmcmVxdWVuY3kgY2hhbmdlICovCisJbGRyCXIyLCBvbWFwMjQzeF9zcnNfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAorCXN0cglyMSwgW3IyXQkJQCB3cml0ZSBvdXQgbmV3IFNEUkNfRExMQV9DVFJMCisJYWRkCXIyLCByMiwgIzB4OAkJQCBhZGRyIHRvIFNEUkNfRExMQl9DVFJMCisJc3RyCXIxLCBbcjJdCQlAIGNvbW1pdCB0byBTRFJDX0RMTEJfQ1RSTAorCW1vdglyMSwgIzB4MjAwMAkJQCB3YWl0IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKK2RsbF93YWl0OgorCXN1YnMJcjEsIHIxLCAjMHgxCisJYm5lCWRsbF93YWl0CitmcmVxX291dDoKKwlsZG1mZAlzcCEsIHtyMCAtIHIxMCwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworICAgIC8qCisgICAgICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KKyAgICAgKgl3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgorICAgICAqLwordm9sdGFnZV9zaGlmdF9jOgorCWxkcglyMTAsIG9tYXAyNDN4X3Nyc19wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsCisJbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKKwlsZHIJcjcsIGRkcl9wcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKKwlhbmQJcjgsIHI4LCByNwkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKKwlvcnIJcjgsIHI4LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCisJc3RyCXI4LCBbcjEwXQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KKwltb3YJcjcsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKKwlvcnIJcjgsIHI4LCByNwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKKwlzdHIJcjgsIFtyMTBdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKKworCWxkcglyMTAsIG9tYXAyNDN4X3Nyc190aW1lcl8zMmtzeW5jdAlAIGdldCBhZGRyIG9mIGNvdW50ZXIKKwlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQorCWFkZAlyOCwgcjgsICMweDIJCUAgZ2l2ZSBpdCBhdCBtb3N0IDYydVMgKG1pbiAzMSspCit2b2x0X2RlbGF5X2M6CisJbGRyCXI3LCBbcjEwXQkJQCBnZXQgdGltZXIgdmFsdWUKKwljbXAJcjgsIHI3CQkJQCB0aW1lIHVwPworCWJoaQl2b2x0X2RlbGF5X2MJCUAgbm90IHlldC0+YnJhbmNoCisJbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIKKworb21hcDI0M3hfc3JzX2NtX2Nsa3NlbDJfcGxsOgorCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKK29tYXAyNDN4X3Nyc19zZHJjX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCitvbWFwMjQzeF9zcnNfc2RyY19yZnJfY3RybDoKKwkud29yZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQorb21hcDI0M3hfc3JzX3ByY21fdm9sdGN0cmw6CisJLndvcmQgT01BUDI0M1hfUFJDTV9WT0xUQ1RSTAorZGRyX3ByY21fbWFza192YWw6CisJLndvcmQgMHhGRkZGM0ZGQworb21hcDI0M3hfc3JzX3RpbWVyXzMya3N5bmN0OgorCS53b3JkIElPX0FERFJFU1MoT01BUDJfMzJLU1lOQ1RfQkFTRSArIDB4MDEwKQorCitFTlRSWShvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KQorCS53b3JkCS4gLSBvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjCisKKy8qCisgKiBTZXQgZGl2aWRlcnMgYW5kIHBsbC4gQWxzbyByZWNhbGN1bGF0ZSBETEwgdmFsdWUgZm9yIEREUiBhbmQgdW5sb2NrIG1vZGUuCisgKi8KK0VOVFJZKG9tYXAyNDN4X3NyYW1fc2V0X3ByY20pCisJc3RtZmQJc3AhLCB7cjAtcjEyLCBscn0JQCByZWdzIHRvIHN0YWNrCisJYWRyCXI0LCBwYmVnaW4JCUAgYWRkciBvZiBwcmVsb2FkIHN0YXJ0CisJYWRyCXI4LCBwZW5kCQlAIGFkZHIgb2YgcHJlbG9hZCBlbmQKKwltY3JyCXAxNSwgMSwgcjgsIHI0LCBjMTIJQCBwcmVsb2FkIGludG8gaWNhY2hlCitwYmVnaW46CisJLyogbW92ZSBpbnRvIGZhc3QgcmVsb2NrIGJ5cGFzcyAqLworCWxkcglyOCwgb21hcDI0M3hfc3NwX3BsbF9jdGwJQCBnZXQgYWRkcgorCWxkcglyNSwgW3I4XQkJQCBnZXQgdmFsCisJbXZuCXI2LCAjMHgzCQlAIGNsZWFyIG1hc2sKKwlhbmQJcjUsIHI1LCByNgkJQCBjbGVhciBmaWVsZAorCW9ycglyNywgcjUsICMweDIJCUAgZmFzdCByZWxvY2sgdmFsCisJc3RyCXI3LCBbcjhdCQlAIGdvIHRvIGZhc3QgcmVsb2NrCisJbGRyCXI0LCBvbWFwMjQzeF9zc3BfcGxsX3N0YXQJQCBhZGRyIG9mIHN0YXQKK2Jsb2NrOgorCS8qIHdhaXQgZm9yIGJ5cGFzcyAqLworCWxkcglyOCwgW3I0XQkJQCBzdGF0IHZhbHVlCisJYW5kCXI4LCByOCwgIzB4MwkJQCBtYXNrIGZvciBzdGF0CisJY21wCXI4LCAjMHgxCQlAIHRoZXJlIHlldAorCWJuZQlibG9jawkJCUAgbG9vcCBpZiBub3QKKworCS8qIHNldCBuZXcgZHBsbCBkaXZpZGVycyBfYWZ0ZXJfIGluIGJ5cGFzcyAqLworCWxkcglyNCwgb21hcDI0M3hfc3NwX3BsbF9kaXYJQCBnZXQgYWRkcgorCXN0cglyMCwgW3I0XQkJQCBzZXQgZHBsbCBjdHJsIHZhbAorCisJbGRyCXI0LCBvbWFwMjQzeF9zc3Bfc2V0X2NvbmZpZwlAIGdldCBhZGRyCisJbW92CXI4LCAjMQkJCUAgdmFsaWQgY2ZnIG1zaworCXN0cglyOCwgW3I0XQkJQCBtYWtlIGRpdmlkZXJzIHRha2UKKworCW1vdglyNCwgIzEwMAkJQCBkZWFkIHNwaW4gYSBiaXQKK3dhaXRfYV9iaXQ6CisJc3VicwlyNCwgcjQsICMxCQlAIGRlYyBsb29wCisJYm5lCXdhaXRfYV9iaXQJCUAgZGVsYXkgZG9uZT8KKworCS8qIGNoZWNrIGlmIHN0YXlpbmcgaW4gYnlwYXNzICovCisJY21wCXIyLCAjMHgxCQlAIHN0YXkgaW4gYnlwYXNzPworCWJlcQlwZW5kCQkJQCBqdW1wIG92ZXIgZHBsbCByZWxvY2sKKworCS8qIHJlbG9jayBEUExMIHdpdGggbmV3IHZhbHMgKi8KKwlsZHIJcjUsIG9tYXAyNDN4X3NzcF9wbGxfc3RhdAlAIGdldCBhZGRyCisJbGRyCXI0LCBvbWFwMjQzeF9zc3BfcGxsX2N0bAlAIGdldCBhZGRyCisJb3JyCXI4LCByNywgIzB4MwkJQCB2YWwgZm9yIGxvY2sgZHBsbAorCXN0cglyOCwgW3I0XQkJQCBzZXQgdmFsCisJbW92CXIwLCAjMTAwMAkJQCBkZWFkIHNwaW4gYSBiaXQKK3dhaXRfbW9yZToKKwlzdWJzCXIwLCByMCwgIzEJCUAgZGVjIGxvb3AKKwlibmUJd2FpdF9tb3JlCQlAIGRlbGF5IGRvbmU/Cit3YWl0X2xvY2s6CisJbGRyCXI4LCBbcjVdCQlAIGdldCBsb2NrIHZhbAorCWFuZAlyOCwgcjgsICMzCQlAIGlzb2xhdGUgZmllbGQKKwljbXAJcjgsICMyCQkJQCBsb2NrZWQ/CisJYm5lCXdhaXRfbG9jawkJQCB3YWl0IGlmIG5vdAorcGVuZDoKKwkvKiB1cGRhdGUgbWVtb3J5IHRpbWluZ3MgJiBicmllZmx5IGxvY2sgZGxsICovCisJbGRyCXI0LCBvbWFwMjQzeF9zc3Bfc2RyY19yZnIJQCBnZXQgYWRkcgorCXN0cglyMSwgW3I0XQkJQCB1cGRhdGUgcmVmcmVzaCB0aW1pbmcKKwlsZHIJcjExLCBvbWFwMjQzeF9zc3BfZGxsYV9jdHJsCUAgZ2V0IGFkZHIgb2YgRExMQSBjdHJsCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCisJbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKKwlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZQorCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKKwlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCisJYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gZGxsYgorCXN0cglyMTAsIFtyMTFdCQlAIGhpdCBETExCIGFsc28KKworCW1vdglyNCwgIzB4ODAwCQlAIHJlbG9jayB0aW1lIChtaW4gMHg0MDAgTDMgY2xvY2tzKQord2FpdF9kbGxfbG9jazoKKwlzdWJzCXI0LCByNCwgIzB4MQorCWJuZQl3YWl0X2RsbF9sb2NrCisJbm9wCisJbGRtZmQJc3AhLCB7cjAtcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCitvbWFwMjQzeF9zc3Bfc2V0X2NvbmZpZzoKKwkud29yZCBPTUFQMjQzWF9QUkNNX0NMS0NGR19DVFJMCitvbWFwMjQzeF9zc3BfcGxsX2N0bDoKKwkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS0VOKQorb21hcDI0M3hfc3NwX3BsbF9zdGF0OgorCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKQorb21hcDI0M3hfc3NwX3BsbF9kaXY6CisJLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwxKQorb21hcDI0M3hfc3NwX3NkcmNfcmZyOgorCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCitvbWFwMjQzeF9zc3BfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKKworRU5UUlkob21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zeikKKwkud29yZAkuIC0gb21hcDI0M3hfc3JhbV9zZXRfcHJjbQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi90aW1lci1ncC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi90aW1lci1ncC5jCmluZGV4IDc4ZDA1ZjIuLjU1NzYwM2YgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvdGltZXItZ3AuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3RpbWVyLWdwLmMKQEAgLTU5LDggKzU5LDcgQEAKIHN0YXRpYyBpbnQgb21hcDJfZ3BfdGltZXJfc2V0X25leHRfZXZlbnQodW5zaWduZWQgbG9uZyBjeWNsZXMsCiAJCQkJCSBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCiB7Ci0Jb21hcF9kbV90aW1lcl9zZXRfbG9hZChncHRpbWVyLCAwLCAweGZmZmZmZmZmIC0gY3ljbGVzKTsKLQlvbWFwX2RtX3RpbWVyX3N0YXJ0KGdwdGltZXIpOworCW9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoZ3B0aW1lciwgMCwgMHhmZmZmZmZmZiAtIGN5Y2xlcyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTc3LDggKzc2LDcgQEAKIAkJcGVyaW9kID0gY2xrX2dldF9yYXRlKG9tYXBfZG1fdGltZXJfZ2V0X2ZjbGsoZ3B0aW1lcikpIC8gSFo7CiAJCXBlcmlvZCAtPSAxOwogCi0JCW9tYXBfZG1fdGltZXJfc2V0X2xvYWQoZ3B0aW1lciwgMSwgMHhmZmZmZmZmZiAtIHBlcmlvZCk7Ci0JCW9tYXBfZG1fdGltZXJfc3RhcnQoZ3B0aW1lcik7CisJCW9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoZ3B0aW1lciwgMSwgMHhmZmZmZmZmZiAtIHBlcmlvZCk7CiAJCWJyZWFrOwogCWNhc2UgQ0xPQ0tfRVZUX01PREVfT05FU0hPVDoKIAkJYnJlYWs7CkBAIC0xNzIsOCArMTcwLDcgQEAKIAl0aWNrX3JhdGUgPSBjbGtfZ2V0X3JhdGUob21hcF9kbV90aW1lcl9nZXRfZmNsayhncHQpKTsKIAl0aWNrX3BlcmlvZCA9ICh0aWNrX3JhdGUgLyBIWikgLSAxOwogCi0Jb21hcF9kbV90aW1lcl9zZXRfbG9hZChncHQsIDEsIDApOwotCW9tYXBfZG1fdGltZXJfc3RhcnQoZ3B0KTsKKwlvbWFwX2RtX3RpbWVyX3NldF9sb2FkX3N0YXJ0KGdwdCwgMSwgMCk7CiAKIAljbG9ja3NvdXJjZV9ncHQubXVsdCA9CiAJCWNsb2Nrc291cmNlX2toejJtdWx0KHRpY2tfcmF0ZS8xMDAwLCBjbG9ja3NvdXJjZV9ncHQuc2hpZnQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWcgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvS2NvbmZpZwppbmRleCA5M2RlYmYzLi5kZGNkNDFiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvS2NvbmZpZwpAQCAtNDQsNiArNDQsNTQgQEAKIAkgIEJ1ZmZhbG8gTGlua3N0YXRpb24gUHJvL0xpdmUgcGxhdGZvcm0uIEJvdGggdjEgYW5kCiAJICB2MiBkZXZpY2VzIGFyZSBzdXBwb3J0ZWQuCiAKK2NvbmZpZyBNQUNIX1RTNDA5CisJYm9vbCAiUU5BUCBUUy00MDkiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBRTkFQIFRTLTQwOSBwbGF0Zm9ybS4KKworY29uZmlnIE1BQ0hfV1JUMzUwTl9WMgorCWJvb2wgIkxpbmtzeXMgV1JUMzUwTiB2MiIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIExpbmtzeXMgV1JUMzUwTiB2MiBwbGF0Zm9ybS4KKworY29uZmlnIE1BQ0hfVFM3OFhYCisJYm9vbCAiVGVjaG5vbG9naWMgU3lzdGVtcyBUUy03OHh4IgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgVGVjaG5vbG9naWMgU3lzdGVtcyBUUy03OHh4IHBsYXRmb3JtLgorCitjb25maWcgTUFDSF9NVjIxMjAKKwlib29sICJIUCBNZWRpYSBWYXVsdCBtdjIxMjAiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBIUCBNZWRpYSBWYXVsdCBtdjIxMjAgb3IgbXY1MTAwLgorCitjb25maWcgTUFDSF9NU1MyCisJYm9vbCAiTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIHBsYXRmb3JtLgorCitjb25maWcgTUFDSF9XTlI4NTRUCisJYm9vbCAiTmV0Z2VhciBXTlI4NTRUIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTmV0Z2VhciBXTlI4NTRUIHBsYXRmb3JtLgorCitjb25maWcgTUFDSF9SRDg4RjUxODFMX0dFCisJYm9vbCAiTWFydmVsbCBPcmlvbi1Wb0lQIEdFIFJlZmVyZW5jZSBEZXNpZ24iCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIE9yaW9uLVZvSVAgR0UgKDg4RjUxODFMKSBSRC4KKworY29uZmlnIE1BQ0hfUkQ4OEY1MTgxTF9GWE8KKwlib29sICJNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPIFJlZmVyZW5jZSBEZXNpZ24iCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPICg4OEY1MTgxTCkgUkQuCisKIGVuZG1lbnUKIAogZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9NYWtlZmlsZQppbmRleCA5MzAxYmY1Li5mY2M0OGE4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L01ha2VmaWxlCkBAIC0xLDcgKzEsMTUgQEAKLW9iai15CQkJCSs9IGNvbW1vbi5vIGFkZHItbWFwLm8gcGNpLm8gZ3Bpby5vIGlycS5vCitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIHBjaS5vIGdwaW8ubyBpcnEubyBtcHAubwogb2JqLSQoQ09ORklHX01BQ0hfREI4OEY1MjgxKQkrPSBkYjg4ZjUyODEtc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfUkQ4OEY1MTgyKQkrPSByZDg4ZjUxODItc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfS1VST0JPWF9QUk8pCSs9IGt1cm9ib3hfcHJvLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX0xJTktTVEFUSU9OX1BSTykgKz0ga3Vyb2JveF9wcm8tc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfRE5TMzIzKQkrPSBkbnMzMjMtc2V0dXAubwotb2JqLSQoQ09ORklHX01BQ0hfVFMyMDkpCSs9IHRzMjA5LXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1RTMjA5KQkrPSB0czIwOS1zZXR1cC5vIHRzeDA5LWNvbW1vbi5vCitvYmotJChDT05GSUdfTUFDSF9UUzQwOSkJKz0gdHM0MDktc2V0dXAubyB0c3gwOS1jb21tb24ubworb2JqLSQoQ09ORklHX01BQ0hfV1JUMzUwTl9WMikJKz0gd3J0MzUwbi12Mi1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9UUzc4WFgpCSs9IHRzNzh4eC1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9NVjIxMjApCSs9IG12MjEyMC1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9NU1MyKQkJKz0gbXNzMi1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9XTlI4NTRUKQkrPSB3bnI4NTR0LXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1JEODhGNTE4MUxfR0UpCSs9IHJkODhmNTE4MWwtZ2Utc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfUkQ4OEY1MTgxTF9GWE8pCSs9IHJkODhmNTE4MWwtZnhvLXNldHVwLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9hZGRyLW1hcC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2FkZHItbWFwLmMKaW5kZXggZTYzZmIwNS4uNmYwZGJkYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2FkZHItbWFwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2FkZHItbWFwLmMKQEAgLTcwLDYgKzcwLDcgQEAKIAogCiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIG9yaW9uNXhfbWJ1c19kcmFtX2luZm87CitzdGF0aWMgaW50IF9faW5pdGRhdGEgd2luX2FsbG9jX2NvdW50OwogCiBzdGF0aWMgaW50IF9faW5pdCBvcmlvbjV4X2NwdV93aW5fY2FuX3JlbWFwKGludCB3aW4pCiB7CkBAIC04NywxNiArODgsMjIgQEAKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9jcHVfd2luKGludCB3aW4sIHUzMiBiYXNlLCB1MzIgc2l6ZSwKIAkJCQkgdTggdGFyZ2V0LCB1OCBhdHRyLCBpbnQgcmVtYXApCiB7Ci0Jb3Jpb241eF93cml0ZShDUFVfV0lOX0JBU0Uod2luKSwgYmFzZSAmIDB4ZmZmZjAwMDApOwotCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9DVFJMKHdpbiksCi0JCSgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICh0YXJnZXQgPDwgNCkgfCAxKTsKKwlpZiAod2luID49IDgpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJzZXR1cF9jcHVfd2luOiB0cnlpbmcgdG8gYWxsb2NhdGUgIgorCQkJCSJ3aW5kb3cgJWRcbiIsIHdpbik7CisJCXJldHVybjsKKwl9CisKKwl3cml0ZWwoYmFzZSAmIDB4ZmZmZjAwMDAsIENQVV9XSU5fQkFTRSh3aW4pKTsKKwl3cml0ZWwoKChzaXplIC0gMSkgJiAweGZmZmYwMDAwKSB8IChhdHRyIDw8IDgpIHwgKHRhcmdldCA8PCA0KSB8IDEsCisJCUNQVV9XSU5fQ1RSTCh3aW4pKTsKIAogCWlmIChvcmlvbjV4X2NwdV93aW5fY2FuX3JlbWFwKHdpbikpIHsKIAkJaWYgKHJlbWFwIDwgMCkKIAkJCXJlbWFwID0gYmFzZTsKIAotCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fUkVNQVBfTE8od2luKSwgcmVtYXAgJiAweGZmZmYwMDAwKTsKLQkJb3Jpb241eF93cml0ZShDUFVfV0lOX1JFTUFQX0hJKHdpbiksIDApOworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBDUFVfV0lOX1JFTUFQX0xPKHdpbikpOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9ISSh3aW4pKTsKIAl9CiB9CiAKQEAgLTEwOSwxMSArMTE2LDExIEBACiAJICogRmlyc3QsIGRpc2FibGUgYW5kIGNsZWFyIHdpbmRvd3MuCiAJICovCiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fQkFTRShpKSwgMCk7Ci0JCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9DVFJMKGkpLCAwKTsKKwkJd3JpdGVsKDAsIENQVV9XSU5fQkFTRShpKSk7CisJCXdyaXRlbCgwLCBDUFVfV0lOX0NUUkwoaSkpOwogCQlpZiAob3Jpb241eF9jcHVfd2luX2Nhbl9yZW1hcChpKSkgewotCQkJb3Jpb241eF93cml0ZShDUFVfV0lOX1JFTUFQX0xPKGkpLCAwKTsKLQkJCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9SRU1BUF9ISShpKSwgMCk7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9MTyhpKSk7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9ISShpKSk7CiAJCX0KIAl9CiAKQEAgLTEyOCw2ICsxMzUsNyBAQAogCQlUQVJHRVRfUENJRSwgQVRUUl9QQ0lFX01FTSwgLTEpOwogCXNldHVwX2NwdV93aW4oMywgT1JJT041WF9QQ0lfTUVNX1BIWVNfQkFTRSwgT1JJT041WF9QQ0lfTUVNX1NJWkUsCiAJCVRBUkdFVF9QQ0ksIEFUVFJfUENJX01FTSwgLTEpOworCXdpbl9hbGxvY19jb3VudCA9IDQ7CiAKIAkvKgogCSAqIFNldHVwIE1CVVMgZHJhbSB0YXJnZXQgaW5mby4KQEAgLTE0Nyw4ICsxNTUsOCBAQAogCQkJdyA9ICZvcmlvbjV4X21idXNfZHJhbV9pbmZvLmNzW2NzKytdOwogCQkJdy0+Y3NfaW5kZXggPSBpOwogCQkJdy0+bWJ1c19hdHRyID0gMHhmICYgfigxIDw8IGkpOwotCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmMDAwMDAwOwotCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMGZmZmZmZikgKyAxOworCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmZmYwMDAwOworCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMDAwZmZmZikgKyAxOwogCQl9CiAJfQogCW9yaW9uNXhfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7CkBAIC0xNTYsMjUgKzE2NCwzMCBAQAogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbih1MzIgYmFzZSwgdTMyIHNpemUpCiB7Ci0Jc2V0dXBfY3B1X3dpbig0LCBiYXNlLCBzaXplLCBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQk9PVCwgLTEpOworCXNldHVwX2NwdV93aW4od2luX2FsbG9jX2NvdW50KyssIGJhc2UsIHNpemUsCisJCSAgICAgIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9CT09ULCAtMSk7CiB9CiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2V0dXBfZGV2MF93aW4odTMyIGJhc2UsIHUzMiBzaXplKQogewotCXNldHVwX2NwdV93aW4oNSwgYmFzZSwgc2l6ZSwgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMCwgLTEpOworCXNldHVwX2NwdV93aW4od2luX2FsbG9jX2NvdW50KyssIGJhc2UsIHNpemUsCisJCSAgICAgIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzAsIC0xKTsKIH0KIAogdm9pZCBfX2luaXQgb3Jpb241eF9zZXR1cF9kZXYxX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpCiB7Ci0Jc2V0dXBfY3B1X3dpbig2LCBiYXNlLCBzaXplLCBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MxLCAtMSk7CisJc2V0dXBfY3B1X3dpbih3aW5fYWxsb2NfY291bnQrKywgYmFzZSwgc2l6ZSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMSwgLTEpOwogfQogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NldHVwX2RldjJfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKIHsKLQlzZXR1cF9jcHVfd2luKDcsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzIsIC0xKTsKKwlzZXR1cF9jcHVfd2luKHdpbl9hbGxvY19jb3VudCsrLCBiYXNlLCBzaXplLAorCQkgICAgICBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MyLCAtMSk7CiB9CiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4odTMyIGJhc2UsIHUzMiBzaXplKQogewotCXNldHVwX2NwdV93aW4oNywgYmFzZSwgc2l6ZSwgVEFSR0VUX1BDSUUsIEFUVFJfUENJRV9XQSwgLTEpOworCXNldHVwX2NwdV93aW4od2luX2FsbG9jX2NvdW50KyssIGJhc2UsIHNpemUsCisJCSAgICAgIFRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfV0EsIC0xKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uYwppbmRleCA0ZjEzZmQwLi5mYWY0ZTMyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5jCkBAIC0zOSwyNSArMzksMjIgQEAKIAkJLnZpcnR1YWwJPSBPUklPTjVYX1JFR1NfVklSVF9CQVNFLAogCQkucGZuCQk9IF9fcGh5c190b19wZm4oT1JJT041WF9SRUdTX1BIWVNfQkFTRSksCiAJCS5sZW5ndGgJCT0gT1JJT041WF9SRUdTX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0JeworCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgewogCQkudmlydHVhbAk9IE9SSU9ONVhfUENJRV9JT19WSVJUX0JBU0UsCiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihPUklPTjVYX1BDSUVfSU9fUEhZU19CQVNFKSwKIAkJLmxlbmd0aAkJPSBPUklPTjVYX1BDSUVfSU9fU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLQl7CisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CiAJCS52aXJ0dWFsCT0gT1JJT041WF9QQ0lfSU9fVklSVF9CQVNFLAogCQkucGZuCQk9IF9fcGh5c190b19wZm4oT1JJT041WF9QQ0lfSU9fUEhZU19CQVNFKSwKIAkJLmxlbmd0aAkJPSBPUklPTjVYX1BDSV9JT19TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LAotCXsKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKIAkJLnZpcnR1YWwJPSBPUklPTjVYX1BDSUVfV0FfVklSVF9CQVNFLAogCQkucGZuCQk9IF9fcGh5c190b19wZm4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSksCiAJCS5sZW5ndGgJCT0gT1JJT041WF9QQ0lFX1dBX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCiAJfSwKIH07CiAKQEAgLTY2LDEwMSArNjMsMzIgQEAKIAlpb3RhYmxlX2luaXQob3Jpb241eF9pb19kZXNjLCBBUlJBWV9TSVpFKG9yaW9uNXhfaW9fZGVzYykpOwogfQogCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogVUFSVAorICogRUhDSQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF91YXJ0X3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKLQkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAotCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5zdGFydAkJPSBJUlFfT1JJT041WF9VQVJUMCwKLQkJLmVuZAkJPSBJUlFfT1JJT041WF9VQVJUMCwKLQkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi0JewotCQkuc3RhcnQJCT0gVUFSVDFfUEhZU19CQVNFLAotCQkuZW5kCQk9IFVBUlQxX1BIWVNfQkFTRSArIDB4ZmYsCi0JCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CQk9IElSUV9PUklPTjVYX1VBUlQxLAotCQkuZW5kCQk9IElSUV9PUklPTjVYX1VBUlQxLAotCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgb3Jpb241eF91YXJ0X2RhdGFbXSA9IHsKLQl7Ci0JCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAotCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAotCQkuaXJxCQk9IElSUV9PUklPTjVYX1VBUlQwLAotCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAotCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkucmVnc2hpZnQJPSAyLAotCQkudWFydGNsawk9IE9SSU9ONVhfVENMSywKLQl9LAotCXsKLQkJLm1hcGJhc2UJPSBVQVJUMV9QSFlTX0JBU0UsCi0JCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMV9WSVJUX0JBU0UsCi0JCS5pcnEJCT0gSVJRX09SSU9ONVhfVUFSVDEsCi0JCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCi0JCS5pb3R5cGUJCT0gVVBJT19NRU0sCi0JCS5yZWdzaGlmdAk9IDIsCi0JCS51YXJ0Y2xrCT0gT1JJT041WF9UQ0xLLAotCX0sCi0JeyB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF91YXJ0ID0gewotCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCi0JLmlkCQkJPSBQTEFUODI1MF9ERVZfUExBVEZPUk0sCi0JLmRldgkJCT0gewotCQkucGxhdGZvcm1fZGF0YQk9IG9yaW9uNXhfdWFydF9kYXRhLAotCX0sCi0JLnJlc291cmNlCQk9IG9yaW9uNXhfdWFydF9yZXNvdXJjZXMsCi0JLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShvcmlvbjV4X3VhcnRfcmVzb3VyY2VzKSwKLX07Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBVU0IgQ29udHJvbGxlciAtIDIgaW50ZXJmYWNlcwotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X2VoY2kwX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CT0gT1JJT041WF9VU0IwX1BIWVNfQkFTRSwKLQkJLmVuZAk9IE9SSU9ONVhfVVNCMF9QSFlTX0JBU0UgKyBTWl80SyAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJPSBJUlFfT1JJT041WF9VU0IwX0NUUkwsCi0JCS5lbmQJPSBJUlFfT1JJT041WF9VU0IwX0NUUkwsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfZWhjaTFfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJPSBPUklPTjVYX1VTQjFfUEhZU19CQVNFLAotCQkuZW5kCT0gT1JJT041WF9VU0IxX1BIWVNfQkFTRSArIFNaXzRLIC0gMSwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5zdGFydAk9IElSUV9PUklPTjVYX1VTQjFfQ1RSTCwKLQkJLmVuZAk9IElSUV9PUklPTjVYX1VTQjFfQ1RSTCwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3Qgb3Jpb25fZWhjaV9kYXRhIG9yaW9uNXhfZWhjaV9kYXRhID0gewogCS5kcmFtCQk9ICZvcmlvbjV4X21idXNfZHJhbV9pbmZvLAogfTsKIAogc3RhdGljIHU2NCBlaGNpX2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7CiAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfZWhjaTBfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBPUklPTjVYX1VTQjBfUEhZU19CQVNFLAorCQkuZW5kCT0gT1JJT041WF9VU0IwX1BIWVNfQkFTRSArIFNaXzRLIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfT1JJT041WF9VU0IwX0NUUkwsCisJCS5lbmQJPSBJUlFfT1JJT041WF9VU0IwX0NUUkwsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X2VoY2kwID0gewogCS5uYW1lCQk9ICJvcmlvbi1laGNpIiwKIAkuaWQJCT0gMCwKQEAgLTE3Myw2ICsxMDEsMjcgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUob3Jpb241eF9laGNpMF9yZXNvdXJjZXMpLAogfTsKIAordm9pZCBfX2luaXQgb3Jpb241eF9laGNpMF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2VoY2kwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9laGNpMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IE9SSU9ONVhfVVNCMV9QSFlTX0JBU0UsCisJCS5lbmQJPSBPUklPTjVYX1VTQjFfUEhZU19CQVNFICsgU1pfNEsgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9PUklPTjVYX1VTQjFfQ1RSTCwKKwkJLmVuZAk9IElSUV9PUklPTjVYX1VTQjFfQ1RSTCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfZWhjaTEgPSB7CiAJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAogCS5pZAkJPSAxLApAQCAtMTg1LDExICsxMzQsMTUgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUob3Jpb241eF9laGNpMV9yZXNvdXJjZXMpLAogfTsKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBHaWdhYml0IEV0aGVybmV0IHBvcnQKLSAqIChUaGUgT3Jpb24gYW5kIERpc2NvdmVyeSAoTVY2NDN4eCkgZmFtaWxpZXMgdXNlIHRoZSBzYW1lIEV0aGVybmV0IGRyaXZlcikKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZCBfX2luaXQgb3Jpb241eF9laGNpMV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2VoY2kxKTsKK30KIAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdpZ0UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RydWN0IG12NjQzeHhfZXRoX3NoYXJlZF9wbGF0Zm9ybV9kYXRhIG9yaW9uNXhfZXRoX3NoYXJlZF9kYXRhID0gewogCS5kcmFtCQk9ICZvcmlvbjV4X21idXNfZHJhbV9pbmZvLAogCS50X2NsawkJPSBPUklPTjVYX1RDTEssCkBAIC0yMTksNyArMTcyLDcgQEAKIAkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfRVRIX1NVTSwKIAkJLmVuZAk9IElSUV9PUklPTjVYX0VUSF9TVU0sCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAotCX0KKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF9ldGggPSB7CkBAIC0yMzgsMTEgKzE5MSwxMCBAQAogCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9ldGgpOwogfQogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEkyQyBjb250cm9sbGVyCi0gKiAoVGhlIE9yaW9uIGFuZCBEaXNjb3ZlcnkgKE1WNjQzeHgpIGZhbWlsaWVzIHNoYXJlIHRoZSBzYW1lIEkyQyBjb250cm9sbGVyKQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSTJDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXY2NHh4eF9pMmNfcGRhdGEgb3Jpb241eF9pMmNfcGRhdGEgPSB7CiAJLmZyZXFfbQkJPSA4LCAvKiBhc3N1bWVzIDE2NiBNSHogVENMSyAqLwogCS5mcmVxX24JCT0gMywKQEAgLTI1MSwxNiArMjAzLDE1IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9pMmNfcmVzb3VyY2VzW10gPSB7CiAJewotCQkubmFtZSAgID0gImkyYyBiYXNlIiwKLQkJLnN0YXJ0ICA9IEkyQ19QSFlTX0JBU0UsCi0JCS5lbmQgICAgPSBJMkNfUEhZU19CQVNFICsgMHgyMCAtMSwKLQkJLmZsYWdzICA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkubmFtZSAgID0gImkyYyBpcnEiLAotCQkuc3RhcnQgID0gSVJRX09SSU9ONVhfSTJDLAotCQkuZW5kICAgID0gSVJRX09SSU9ONVhfSTJDLAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9JUlEsCisJCS5uYW1lCT0gImkyYyBiYXNlIiwKKwkJLnN0YXJ0CT0gSTJDX1BIWVNfQkFTRSwKKwkJLmVuZAk9IEkyQ19QSFlTX0JBU0UgKyAweDFmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5uYW1lCT0gImkyYyBpcnEiLAorCQkuc3RhcnQJPSBJUlFfT1JJT041WF9JMkMsCisJCS5lbmQJPSBJUlFfT1JJT041WF9JMkMsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAogCX0sCiB9OwogCkBAIC0yNzAsMzYgKzIyMSw0MSBAQAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShvcmlvbjV4X2kyY19yZXNvdXJjZXMpLAogCS5yZXNvdXJjZQk9IG9yaW9uNXhfaTJjX3Jlc291cmNlcywKIAkuZGV2CQk9IHsKLQkJLnBsYXRmb3JtX2RhdGEgPSAmb3Jpb241eF9pMmNfcGRhdGEsCisJCS5wbGF0Zm9ybV9kYXRhCT0gJm9yaW9uNXhfaTJjX3BkYXRhLAogCX0sCiB9OwogCit2b2lkIF9faW5pdCBvcmlvbjV4X2kyY19pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2kyYyk7Cit9CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBTYXRhIHBvcnQKKyAqIFNBVEEKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X3NhdGFfcmVzb3VyY2VzW10gPSB7Ci0gICAgICAgIHsKLSAgICAgICAgICAgICAgICAubmFtZSAgID0gInNhdGEgYmFzZSIsCi0gICAgICAgICAgICAgICAgLnN0YXJ0ICA9IE9SSU9ONVhfU0FUQV9QSFlTX0JBU0UsCi0gICAgICAgICAgICAgICAgLmVuZCAgICA9IE9SSU9ONVhfU0FUQV9QSFlTX0JBU0UgKyAweDUwMDAgLSAxLAotICAgICAgICAgICAgICAgIC5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKLSAgICAgICAgfSwKIAl7Ci0gICAgICAgICAgICAgICAgLm5hbWUgICA9ICJzYXRhIGlycSIsCi0gICAgICAgICAgICAgICAgLnN0YXJ0ICA9IElSUV9PUklPTjVYX1NBVEEsCi0gICAgICAgICAgICAgICAgLmVuZCAgICA9IElSUV9PUklPTjVYX1NBVEEsCi0gICAgICAgICAgICAgICAgLmZsYWdzICA9IElPUkVTT1VSQ0VfSVJRLAotICAgICAgICB9LAorCQkubmFtZQk9ICJzYXRhIGJhc2UiLAorCQkuc3RhcnQJPSBPUklPTjVYX1NBVEFfUEhZU19CQVNFLAorCQkuZW5kCT0gT1JJT041WF9TQVRBX1BIWVNfQkFTRSArIDB4NTAwMCAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAic2F0YSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfT1JJT041WF9TQVRBLAorCQkuZW5kCT0gSVJRX09SSU9ONVhfU0FUQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfc2F0YSA9IHsKLQkubmFtZSAgICAgICAgICAgPSAic2F0YV9tdiIsCi0JLmlkICAgICAgICAgICAgID0gMCwKKwkubmFtZQkJPSAic2F0YV9tdiIsCisJLmlkCQk9IDAsCiAJLmRldgkJPSB7CiAJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCiAJfSwKLQkubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKG9yaW9uNXhfc2F0YV9yZXNvdXJjZXMpLAotCS5yZXNvdXJjZSAgICAgICA9IG9yaW9uNXhfc2F0YV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG9yaW9uNXhfc2F0YV9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQk9IG9yaW9uNXhfc2F0YV9yZXNvdXJjZXMsCiB9OwogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpCkBAIC0zMDksMjMgKzI2NSwxMTEgQEAKIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfc2F0YSk7CiB9CiAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG9yaW9uNXhfdWFydDBfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX09SSU9ONVhfVUFSVDAsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gT1JJT041WF9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X3VhcnQwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX09SSU9ONVhfVUFSVDAsCisJCS5lbmQJCT0gSVJRX09SSU9ONVhfVUFSVDAsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF91YXJ0MCA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gUExBVDgyNTBfREVWX1BMQVRGT1JNLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBvcmlvbjV4X3VhcnQwX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gb3Jpb241eF91YXJ0MF9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShvcmlvbjV4X3VhcnQwX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBvcmlvbjV4X3VhcnQwX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfdWFydDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBvcmlvbjV4X3VhcnQxX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDFfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDFfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9PUklPTjVYX1VBUlQxLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IE9SSU9ONVhfVENMSywKKwl9LCB7CisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF91YXJ0MV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMV9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDFfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9PUklPTjVYX1VBUlQxLAorCQkuZW5kCQk9IElSUV9PUklPTjVYX1VBUlQxLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfdWFydDEgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IFBMQVQ4MjUwX0RFVl9QTEFURk9STTEsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG9yaW9uNXhfdWFydDFfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBvcmlvbjV4X3VhcnQxX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG9yaW9uNXhfdWFydDFfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG9yaW9uNXhfdWFydDFfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF91YXJ0MSk7Cit9CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBUaW1lIGhhbmRsaW5nCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQogc3RhdGljIHZvaWQgb3Jpb241eF90aW1lcl9pbml0KHZvaWQpCiB7CiAJb3Jpb25fdGltZV9pbml0KElSUV9PUklPTjVYX0JSSURHRSwgT1JJT041WF9UQ0xLKTsKIH0KIAogc3RydWN0IHN5c190aW1lciBvcmlvbjV4X3RpbWVyID0gewotICAgICAgICAuaW5pdCA9IG9yaW9uNXhfdGltZXJfaW5pdCwKKwkuaW5pdCA9IG9yaW9uNXhfdGltZXJfaW5pdCwKIH07CiAKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBHZW5lcmFsCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQogLyoKICAqIElkZW50aWZ5IGRldmljZSBJRCBhbmQgcmV2IGZyb20gUENJZSBjb25maWd1cmF0aW9uIGhlYWRlciBzcGFjZSAnMCcuCiAgKi8KQEAgLTM1MCw4ICszOTQsMTAgQEAKIAl9IGVsc2UgaWYgKCpkZXYgPT0gTVY4OEY1MTgxX0RFVl9JRCkgewogCQlpZiAoKnJldiA9PSBNVjg4RjUxODFfUkVWX0IxKSB7CiAJCQkqZGV2X25hbWUgPSAiTVY4OEY1MTgxLVJldi1CMSI7CisJCX0gZWxzZSBpZiAoKnJldiA9PSBNVjg4RjUxODFMX1JFVl9BMSkgeworCQkJKmRldl9uYW1lID0gIk1WODhGNTE4MUwtUmV2LUExIjsKIAkJfSBlbHNlIHsKLQkJCSpkZXZfbmFtZSA9ICJNVjg4RjUxODEtUmV2LVVuc3VwcG9ydGVkIjsKKwkJCSpkZXZfbmFtZSA9ICJNVjg4RjUxODEoTCktUmV2LVVuc3VwcG9ydGVkIjsKIAkJfQogCX0gZWxzZSB7CiAJCSpkZXZfbmFtZSA9ICJEZXZpY2UtVW5rbm93biI7CkBAIC0zNzAsMTUgKzQxNiw2IEBACiAJICogU2V0dXAgT3Jpb24gYWRkcmVzcyBtYXAKIAkgKi8KIAlvcmlvbjV4X3NldHVwX2NwdV9tYnVzX2JyaWRnZSgpOwotCi0JLyoKLQkgKiBSZWdpc3RlciBkZXZpY2VzLgotCSAqLwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF91YXJ0KTsKLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfZWhjaTApOwotCWlmIChkZXYgPT0gTVY4OEY1MTgyX0RFVl9JRCkKLQkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2VoY2kxKTsKLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfaTJjKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uaCBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uaAppbmRleCBiZDBmMDVkLi5mNzJjZjBlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5oCkBAIC0xLDEwICsxLDEyIEBACiAjaWZuZGVmIF9fQVJDSF9PUklPTjVYX0NPTU1PTl9ICiAjZGVmaW5lIF9fQVJDSF9PUklPTjVYX0NPTU1PTl9ICiAKK3N0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhOworc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YTsKKwogLyoKICAqIEJhc2ljIE9yaW9uIGluaXQgZnVuY3Rpb25zIHVzZWQgZWFybHkgYnkgbWFjaGluZS1zZXR1cC4KICAqLwotCiB2b2lkIG9yaW9uNXhfbWFwX2lvKHZvaWQpOwogdm9pZCBvcmlvbjV4X2luaXRfaXJxKHZvaWQpOwogdm9pZCBvcmlvbjV4X2luaXQodm9pZCk7CkBAIC0yMywxNSArMjUsMjIgQEAKIHZvaWQgb3Jpb241eF9zZXR1cF9kZXYyX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpOwogdm9pZCBvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSk7CiAKLS8qCi0gKiBTaGFyZWQgY29kZSB1c2VkIGludGVybmFsbHkgYnkgb3RoZXIgT3Jpb24gY29yZSBmdW5jdGlvbnMuCi0gKiAoL21hY2gtb3Jpb24vcGNpLmMpCi0gKi8KK3ZvaWQgb3Jpb241eF9laGNpMF9pbml0KHZvaWQpOwordm9pZCBvcmlvbjV4X2VoY2kxX2luaXQodm9pZCk7Cit2b2lkIG9yaW9uNXhfZXRoX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgb3Jpb241eF9pMmNfaW5pdCh2b2lkKTsKK3ZvaWQgb3Jpb241eF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKTsKK3ZvaWQgb3Jpb241eF91YXJ0MF9pbml0KHZvaWQpOwordm9pZCBvcmlvbjV4X3VhcnQxX2luaXQodm9pZCk7CiAKLXN0cnVjdCBwY2lfc3lzX2RhdGE7CisvKgorICogUENJZS9QQ0kgZnVuY3Rpb25zLgorICovCiBzdHJ1Y3QgcGNpX2J1czsKK3N0cnVjdCBwY2lfc3lzX2RhdGE7CiAKIHZvaWQgb3Jpb241eF9wY2llX2lkKHUzMiAqZGV2LCB1MzIgKnJldik7Cit2b2lkIG9yaW9uNXhfcGNpX3NldF9jYXJkYnVzX21vZGUodm9pZCk7CiBpbnQgb3Jpb241eF9wY2lfc3lzX3NldHVwKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKTsKIHN0cnVjdCBwY2lfYnVzICpvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpOwogaW50IG9yaW9uNXhfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKTsKQEAgLTQwLDI2ICs0OSw5IEBACiAgKiBWYWxpZCBHUElPIHBpbnMgYWNjb3JkaW5nIHRvIE1QUCBzZXR1cCwgdXNlZCBieSBtYWNoaW5lLXNldHVwLgogICogKC9tYWNoLW9yaW9uL2dwaW8uYykuCiAgKi8KLQotdm9pZCBvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnModTMyIHBpbnMpOwordm9pZCBvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkKHVuc2lnbmVkIHBpbiwgaW50IHZhbGlkKTsKIHZvaWQgZ3Bpb19kaXNwbGF5KHZvaWQpOwkvKiBkZWJ1ZyAqLwogCi0vKgotICogUHVsbCBpbiBPcmlvbiBFdGhlcm5ldCBwbGF0Zm9ybV9kYXRhLCB1c2VkIGJ5IG1hY2hpbmUtc2V0dXAKLSAqLwotCi1zdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YTsKLQotdm9pZCBvcmlvbjV4X2V0aF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Ci0KLS8qCi0gKiBPcmlvbiBTYXRhIHBsYXRmb3JtX2RhdGEsIHVzZWQgYnkgbWFjaGluZS1zZXR1cAotICovCi0KLXN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGE7Ci0KLXZvaWQgb3Jpb241eF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKTsKLQogc3RydWN0IG1hY2hpbmVfZGVzYzsKIHN0cnVjdCBtZW1pbmZvOwogc3RydWN0IHRhZzsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kYjg4ZjUyODEtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kYjg4ZjUyODEtc2V0dXAuYwppbmRleCA0NGM2NDM0Li44ODQwNWU3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZGI4OGY1MjgxLXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RiODhmNTI4MS1zZXR1cC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KICNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEQi04OEY1MjgxIG9uIGJvYXJkIGRldmljZXMKQEAgLTg2LDcgKzg3LDcgQEAKIAkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCiAJLmlkCQk9IDAsCiAJLmRldgkJPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJmRiODhmNTI4MV9ib290X2ZsYXNoX2RhdGEsCisJCS5wbGF0Zm9ybV9kYXRhCT0gJmRiODhmNTI4MV9ib290X2ZsYXNoX2RhdGEsCiAJfSwKIAkubnVtX3Jlc291cmNlcwk9IDEsCiAJLnJlc291cmNlCT0gJmRiODhmNTI4MV9ib290X2ZsYXNoX3Jlc291cmNlLApAQCAtMTEwLDcgKzExMSw3IEBACiAJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAogCS5pZAkJPSAxLAogCS5kZXYJCT0gewotCQkucGxhdGZvcm1fZGF0YSA9ICZkYjg4ZjUyODFfbm9yX2ZsYXNoX2RhdGEsCisJCS5wbGF0Zm9ybV9kYXRhCT0gJmRiODhmNTI4MV9ub3JfZmxhc2hfZGF0YSwKIAl9LAogCS5udW1fcmVzb3VyY2VzCT0gMSwKIAkucmVzb3VyY2UJPSAmZGI4OGY1MjgxX25vcl9mbGFzaF9yZXNvdXJjZSwKQEAgLTEyNSwxOCArMTI2LDE1IEBACiAJCS5uYW1lID0gImtlcm5lbCIsCiAJCS5vZmZzZXQgPSAwLAogCQkuc2l6ZSA9IFNaXzJNLAotCX0sCi0JeworCX0sIHsKIAkJLm5hbWUgPSAicm9vdCIsCiAJCS5vZmZzZXQgPSBTWl8yTSwKIAkJLnNpemUgPSAoU1pfMTZNIC0gU1pfMk0pLAotCX0sCi0JeworCX0sIHsKIAkJLm5hbWUgPSAidXNlciIsCiAJCS5vZmZzZXQgPSBTWl8xNk0sCiAJCS5zaXplID0gU1pfOE0sCi0JfSwKLQl7CisJfSwgewogCQkubmFtZSA9ICJyZWNvdmVyeSIsCiAJCS5vZmZzZXQgPSAoU1pfMTZNICsgU1pfOE0pLAogCQkuc2l6ZSA9IFNaXzhNLApAQCAtMjg4LDcgKzI4Niw2IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjg4ZjUyODFfZXRoX2RhdGEgPSB7CiAJLnBoeV9hZGRyCT0gOCwKLQkuZm9yY2VfcGh5X2FkZHIgPSAxLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0zMDEsMTEgKzI5OCwyOCBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBHZW5lcmFsIFNldHVwCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRiODhmNTI4MV9kZXZzW10gX19pbml0ZGF0YSA9IHsKLQkmZGI4OGY1MjgxX2Jvb3RfZmxhc2gsCi0JJmRiODhmNTI4MV9ub3JfZmxhc2gsCi0JJmRiODhmNTI4MV9uYW5kX2ZsYXNoLAorc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIGRiODhmNTI4MV9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBVU0IgT3ZlciBDdXJyZW50ICovCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIFVTQiBWYmF0IGlucHV0ICovCisJeyAgMiwgTVBQX1BDSV9BUkIgfSwJCS8qIFBDSV9SRVFuWzJdICovCisJeyAgMywgTVBQX1BDSV9BUkIgfSwJCS8qIFBDSV9HTlRuWzJdICovCisJeyAgNCwgTVBQX1BDSV9BUkIgfSwJCS8qIFBDSV9SRVFuWzNdICovCisJeyAgNSwgTVBQX1BDSV9BUkIgfSwJCS8qIFBDSV9HTlRuWzNdICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIEpQMCwgQ09OMTcuMiAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBKUDEsIENPTjE3LjEgKi8KKwl7ICA4LCBNUFBfR1BJTyB9LAkJLyogSlAyLCBDT04xMS4yICovCisJeyAgOSwgTVBQX0dQSU8gfSwJCS8qIEpQMywgQ09OMTEuMyAqLworCXsgMTAsIE1QUF9HUElPIH0sCQkvKiBSVEMgaW50ICovCisJeyAxMSwgTVBQX0dQSU8gfSwJCS8qIEJhdWQgUmF0ZSBHZW5lcmF0b3IgKi8KKwl7IDEyLCBNUFBfR1BJTyB9LAkJLyogUENJIGludCAxICovCisJeyAxMywgTVBQX0dQSU8gfSwJCS8qIFBDSSBpbnQgMiAqLworCXsgMTQsIE1QUF9OQU5EIH0sCQkvKiBOQU5EX1JFblsyXSAqLworCXsgMTUsIE1QUF9OQU5EIH0sCQkvKiBOQU5EX1dFblsyXSAqLworCXsgMTYsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMV9SWCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMV9UWCAqLworCXsgMTgsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMV9DVFNuICovCisJeyAxOSwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxX1JUU24gKi8KKwl7IC0xIH0sCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgZGI4OGY1MjgxX2luaXQodm9pZCkKQEAgLTMxNSwzOSArMzI5LDMxIEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKKwlvcmlvbjV4X21wcF9jb25mKGRiODhmNTI4MV9tcHBfbW9kZXMpOworCXdyaXRlbCgwLCBNUFBfREVWX0NUUkwpOwkJLyogREVWX0RbMzE6MTZdICovCisKIAkvKgotCSAqIFNldHVwIHRoZSBDUFUgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3Igb3VyIG9uLWJvYXJkIGRldmljZXMKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCiAJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmZGI4OGY1MjgxX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisJb3Jpb241eF91YXJ0MV9pbml0KCk7CisKIAlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihEQjg4RjUyODFfTk9SX0JPT1RfQkFTRSwKIAkJCQlEQjg4RjUyODFfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkYjg4ZjUyODFfYm9vdF9mbGFzaCk7CisKIAlvcmlvbjV4X3NldHVwX2RldjBfd2luKERCODhGNTI4MV83U0VHX0JBU0UsIERCODhGNTI4MV83U0VHX1NJWkUpOworCiAJb3Jpb241eF9zZXR1cF9kZXYxX3dpbihEQjg4RjUyODFfTk9SX0JBU0UsIERCODhGNTI4MV9OT1JfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkYjg4ZjUyODFfbm9yX2ZsYXNoKTsKKwogCW9yaW9uNXhfc2V0dXBfZGV2Ml93aW4oREI4OEY1MjgxX05BTkRfQkFTRSwgREI4OEY1MjgxX05BTkRfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkYjg4ZjUyODFfbmFuZF9mbGFzaCk7CiAKLQkvKgotCSAqIFNldHVwIE11bHRpcGxleGluZyBQaW5zOgotCSAqIE1QUDA6IEdQSU8gKFVTQiBPdmVyIEN1cnJlbnQpCU1QUDE6IEdQSU8gKFVTQiBWYmF0IGlucHV0KQotCSAqIE1QUDI6IFBDSV9SRVFuWzJdCQkJTVBQMzogUENJX0dOVG5bMl0KLQkgKiBNUFA0OiBQQ0lfUkVRblszXQkJCU1QUDU6IFBDSV9HTlRuWzNdCi0JICogTVBQNjogR1BJTyAoSlAwLCBDT04xNy4yKQkJTVBQNzogR1BJTyAoSlAxLCBDT04xNy4xKQotCSAqIE1QUDg6IEdQSU8gKEpQMiwgQ09OMTEuMikJCU1QUDk6IEdQSU8gKEpQMywgQ09OMTEuMykKLQkgKiBNUFAxMDogR1BJTyAoUlRDIGludCkJCU1QUDExOiBHUElPIChCYXVkIFJhdGUgR2VuZXJhdG9yKQotCSAqIE1QUDEyOiBHUElPIChQQ0kgaW50IDEpCQlNUFAxMzogR1BJTyAoUENJIGludCAyKQotCSAqIE1QUDE0OiBOQU5EX1JFblsyXQkJCU1QUDE1OiBOQU5EX1dFblsyXQotCSAqIE1QUDE2OiBVQVJUMV9SWAkJCU1QUDE3OiBVQVJUMV9UWAotCSAqIE1QUDE4OiBVQVJUMV9DVFMJCQlNUFAxOTogVUFSVDFfUlRTCi0JICogTVBQLURFVjogREVWX0RbMTY6MzFdCi0JICovCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4MDAyMjIyMDMpOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMHg0NDAwMDAwMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfREVWX0NUUkwsIDApOwotCi0Jb3Jpb241eF9ncGlvX3NldF92YWxpZF9waW5zKDB4MDAwMDNmYzMpOwotCi0JcGxhdGZvcm1fYWRkX2RldmljZXMoZGI4OGY1MjgxX2RldnMsIEFSUkFZX1NJWkUoZGI4OGY1MjgxX2RldnMpKTsKIAlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAmZGI4OGY1MjgxX2kyY19ydGMsIDEpOwotCW9yaW9uNXhfZXRoX2luaXQoJmRiODhmNTI4MV9ldGhfZGF0YSk7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoREI4OEY1MjgxLCAiTWFydmVsbCBPcmlvbi0yIERldmVsb3BtZW50IEJvYXJkIikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kbnMzMjMtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kbnMzMjMtc2V0dXAuYwppbmRleCAyN2NlOTY3Li4zNzkxY2E2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZG5zMzIzLXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RuczMyMy1zZXR1cC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgogCiAjZGVmaW5lIEROUzMyM19HUElPX0xFRF9SSUdIVF9BTUJFUgkxCiAjZGVmaW5lIEROUzMyM19HUElPX0xFRF9MRUZUX0FNQkVSCTIKQEAgLTUyLDggKzUzLDYgQEAKIAlpZiAoaXJxICE9IC0xKQogCQlyZXR1cm4gaXJxOwogCi0JcHJfZXJyKCIlczogcmVxdWVzdGVkIG1hcHBpbmcgZm9yIHVua25vd24gZGV2aWNlXG4iLCBfX2Z1bmNfXyk7Ci0KIAlyZXR1cm4gLTE7CiB9CiAKQEAgLTgxLDcgKzgwLDYgQEAKIAogc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGRuczMyM19ldGhfZGF0YSA9IHsKIAkucGh5X2FkZHIgPSA4LAotCS5mb3JjZV9waHlfYWRkciA9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTE5LDcgKzExNyw3IEBACiAJCS5uYW1lCT0gInUtYm9vdCIsCiAJCS5zaXplCT0gMHgwMDAzMDAwMCwKIAkJLm9mZnNldAk9IDB4MDA3ZDAwMDAsCi0JfQorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBkbnMzMjNfbm9yX2ZsYXNoX2RhdGEgPSB7CkBAIC0xMzcsNyArMTM1LDkgQEAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGRuczMyM19ub3JfZmxhc2ggPSB7CiAJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAogCS5pZAkJPSAwLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZkbnMzMjNfbm9yX2ZsYXNoX2RhdGEsIH0sCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmRuczMyM19ub3JfZmxhc2hfZGF0YSwKKwl9LAogCS5yZXNvdXJjZQk9ICZkbnMzMjNfbm9yX2ZsYXNoX3Jlc291cmNlLAogCS5udW1fcmVzb3VyY2VzCT0gMSwKIH07CkBAIC0xNzAsNyArMTcwLDkgQEAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGRuczMyM19ncGlvX2xlZHMgPSB7CiAJLm5hbWUJCT0gImxlZHMtZ3BpbyIsCiAJLmlkCQk9IC0xLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZkbnMzMjNfbGVkX2RhdGEsIH0sCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmRuczMyM19sZWRfZGF0YSwKKwl9LAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE4MywzNSArMTg1LDUzIEBACiAJCS5ncGlvCQk9IEROUzMyM19HUElPX0tFWV9SRVNFVCwKIAkJLmRlc2MJCT0gIlJlc2V0IEJ1dHRvbiIsCiAJCS5hY3RpdmVfbG93CT0gMSwKLQl9LAotCXsKKwl9LCB7CiAJCS5jb2RlCQk9IEtFWV9QT1dFUiwKIAkJLmdwaW8JCT0gRE5TMzIzX0dQSU9fS0VZX1BPV0VSLAogCQkuZGVzYwkJPSAiUG93ZXIgQnV0dG9uIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAotCX0KKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBkbnMzMjNfYnV0dG9uX2RhdGEgPSB7CiAJLmJ1dHRvbnMJPSBkbnMzMjNfYnV0dG9ucywKLQkubmJ1dHRvbnMgICAgICAgPSBBUlJBWV9TSVpFKGRuczMyM19idXR0b25zKSwKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKGRuczMyM19idXR0b25zKSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGRuczMyM19idXR0b25fZGV2aWNlID0gewogCS5uYW1lCQk9ICJncGlvLWtleXMiLAogCS5pZAkJPSAtMSwKIAkubnVtX3Jlc291cmNlcwk9IDAsCi0JLmRldgkJPSB7IC5wbGF0Zm9ybV9kYXRhICA9ICZkbnMzMjNfYnV0dG9uX2RhdGEsIH0sCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmRuczMyM19idXR0b25fZGF0YSwKKwl9LAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdlbmVyYWwgU2V0dXAKICAqLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZG5zMzIzX3BsYXRfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJmRuczMyM19ub3JfZmxhc2gsCi0JJmRuczMyM19ncGlvX2xlZHMsCi0JJmRuczMyM19idXR0b25fZGV2aWNlLAorc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIGRuczMyM19tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9QQ0lFX1JTVF9PVVRuIH0sCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIHJpZ2h0IGFtYmVyIExFRCAoc2F0YSBjaDApICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIGxlZnQgYW1iZXIgTEVEIChzYXRhIGNoMSkgKi8KKwl7ICAzLCBNUFBfVU5VU0VEIH0sCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIHBvd2VyIGJ1dHRvbiBMRUQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogcG93ZXIgYnV0dG9uIExFRCAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBHTVQgRzc1MS0yZiBvdmVydGVtcCAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBNNDFUODAgbklSUS9PVVQvU1FXICovCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIHRyaWdnZXJzIHBvd2VyIG9mZiAqLworCXsgIDksIE1QUF9HUElPIH0sCQkvKiBwb3dlciBidXR0b24gc3dpdGNoICovCisJeyAxMCwgTVBQX0dQSU8gfSwJCS8qIHJlc2V0IGJ1dHRvbiBzd2l0Y2ggKi8KKwl7IDExLCBNUFBfVU5VU0VEIH0sCisJeyAxMiwgTVBQX1VOVVNFRCB9LAorCXsgMTMsIE1QUF9VTlVTRUQgfSwKKwl7IDE0LCBNUFBfVU5VU0VEIH0sCisJeyAxNSwgTVBQX1VOVVNFRCB9LAorCXsgMTYsIE1QUF9VTlVTRUQgfSwKKwl7IDE3LCBNUFBfVU5VU0VEIH0sCisJeyAxOCwgTVBQX1VOVVNFRCB9LAorCXsgMTksIE1QUF9VTlVTRUQgfSwKKwl7IC0xIH0sCiB9OwogCiAvKgpAQCAtMjI1LDE3ICsyNDUsMTUgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBkbnMzMjNfaTJjX2RldmljZXNbXSA9IHsKIAl7CiAJCUkyQ19CT0FSRF9JTkZPKCJnNzYwYSIsIDB4M2UpLAotCX0sCiAjaWYgMAogCS8qIHRoaXMgZW50cnkgcmVxdWlyZXMgdGhlIG5ldy1zdHlsZSBkcml2ZXIgbW9kZWwgbG03NSBkcml2ZXIsCiAJICogZm9yIHRoZSBtZWFudGltZSAiaW5zbW9kIGxtNzUua28gZm9yY2VfbG03NT0wLDB4NDgiIGlzIG5lZWRlZCAqLwotCXsKKwl9LCB7CiAJCUkyQ19CT0FSRF9JTkZPKCJnNzUxIiwgMHg0OCksCi0JfSwKICNlbmRpZgotCXsKKwl9LCB7CiAJCUkyQ19CT0FSRF9JTkZPKCJtNDF0ODAiLCAweDY4KSwKLQl9CisJfSwKIH07CiAKIC8qIEROUy0zMjMgc3BlY2lmaWMgcG93ZXIgb2ZmIG1ldGhvZCAqLwpAQCAtMjUwLDYyICsyNjgsMzUgQEAKIAkvKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LiAqLwogCW9yaW9uNXhfaW5pdCgpOwogCisJb3Jpb241eF9tcHBfY29uZihkbnMzMjNfbXBwX21vZGVzKTsKKwl3cml0ZWwoMCwgTVBQX0RFVl9DVFJMKTsJCS8qIERFVl9EWzMxOjE2XSAqLworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmZG5zMzIzX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKIAkvKiBzZXR1cCBmbGFzaCBtYXBwaW5nCiAJICogQ1MzIGhvbGRzIGEgOCBNQiBTcGFuc2lvbiBTMjlHTDA2NE05MFRGSVI0CiAJICovCiAJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oRE5TMzIzX05PUl9CT09UX0JBU0UsIEROUzMyM19OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRuczMyM19ub3JfZmxhc2gpOwogCi0JLyogRE5TLTMyMyBoYXMgYSBNYXJ2ZWxsIDg4WDcwNDIgU0FUQSBjb250cm9sbGVyIGF0dGFjaGVkIHZpYSBQQ0llCi0JICoKLQkgKiBPcGVuIGEgc3BlY2lhbCBhZGRyZXNzIGRlY29kZSB3aW5kb3dzIGZvciB0aGUgUENJZSBXQS4KLQkgKi8KLQlvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKE9SSU9ONVhfUENJRV9XQV9QSFlTX0JBU0UsCi0JCQkJT1JJT041WF9QQ0lFX1dBX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZG5zMzIzX2dwaW9fbGVkcyk7CiAKLQkvKiBzZXQgTVBQIHRvIDAgYXMgRC1MaW5rJ3MgMi42LjEyLjYga2VybmVsIGRpZCAqLwotCW9yaW9uNXhfd3JpdGUoTVBQXzBfN19DVFJMLCAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF84XzE1X0NUUkwsIDApOwotCW9yaW9uNXhfd3JpdGUoTVBQXzE2XzE5X0NUUkwsIDApOwotCW9yaW9uNXhfd3JpdGUoTVBQX0RFVl9DVFJMLCAwKTsKLQotCS8qIERlZmluZSB1c2VkIEdQSU8gcGlucwotCi0JICBHUElPIE1hcDoKLQotCSAgfCAgMCB8ICAgICB8IFBFWF9SU1RfT1VUIChub3QgY29udHJvbGxlZCBieSBHUElPKQotCSAgfCAgMSB8IE91dCB8IHJpZ2h0IGFtYmVyIExFRCAoPSBzYXRhIGNoMCBMRUQpICAobG93LWFjdGl2ZSkKLQkgIHwgIDIgfCBPdXQgfCBsZWZ0ICBhbWJlciBMRUQgKD0gc2F0YSBjaDEgTEVEKSAgKGxvdy1hY3RpdmUpCi0JICB8ICAzIHwgT3V0IHwgLy91bmtub3duLy8KLQkgIHwgIDQgfCBPdXQgfCBwb3dlciBidXR0b24gTEVEIChsb3ctYWN0aXZlLCB0b2dldGhlciB3aXRoIHBpbiAjNSkKLQkgIHwgIDUgfCBPdXQgfCBwb3dlciBidXR0b24gTEVEIChsb3ctYWN0aXZlLCB0b2dldGhlciB3aXRoIHBpbiAjNCkKLQkgIHwgIDYgfCBJbiAgfCBHTVQgRzc1MS0yZiBvdmVydGVtcC4gc2h1dGRvd24gc2lnbmFsIChsb3ctYWN0aXZlKQotCSAgfCAgNyB8IEluICB8IE00MVQ4MCBuSVJRL09VVC9TUVcgc2lnbmFsCi0JICB8ICA4IHwgT3V0IHwgdHJpZ2dlcnMgcG93ZXIgb2ZmIChoaWdoLWFjdGl2ZSkKLQkgIHwgIDkgfCBJbiAgfCBwb3dlciBidXR0b24gc3dpdGNoIChsb3ctYWN0aXZlKQotCSAgfCAxMCB8IEluICB8IHJlc2V0IGJ1dHRvbiBzd2l0Y2ggKGxvdy1hY3RpdmUpCi0JICB8IDExIHwgT3V0IHwgLy91bmtub3duLy8KLQkgIHwgMTIgfCBPdXQgfCAvL3Vua25vd24vLwotCSAgfCAxMyB8IE91dCB8IC8vdW5rbm93bi8vCi0JICB8IDE0IHwgT3V0IHwgLy91bmtub3duLy8KLQkgIHwgMTUgfCBPdXQgfCAvL3Vua25vd24vLwotCSovCi0Jb3Jpb241eF9ncGlvX3NldF92YWxpZF9waW5zKDB4MDdmNik7Ci0KLQkvKiByZWdpc3RlciBkbnMzMjMgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLwotCWlmICgoZ3Bpb19yZXF1ZXN0KEROUzMyM19HUElPX1BPV0VSX09GRiwgIlBPV0VST0ZGIikgIT0gMCkKLQkgICAgfHwgKGdwaW9fZGlyZWN0aW9uX291dHB1dChETlMzMjNfR1BJT19QT1dFUl9PRkYsIDApICE9IDApKQotCQlwcl9lcnIoIkROUzMyMzogZmFpbGVkIHRvIHNldHVwIHBvd2VyLW9mZiBHUElPXG4iKTsKLQotCXBtX3Bvd2VyX29mZiA9IGRuczMyM19wb3dlcl9vZmY7Ci0KLQkvKiByZWdpc3RlciBmbGFzaCBhbmQgb3RoZXIgcGxhdGZvcm0gZGV2aWNlcyAqLwotCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGRuczMyM19wbGF0X2RldmljZXMsCi0JCQkgICAgIEFSUkFZX1NJWkUoZG5zMzIzX3BsYXRfZGV2aWNlcykpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZG5zMzIzX2J1dHRvbl9kZXZpY2UpOwogCiAJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgZG5zMzIzX2kyY19kZXZpY2VzLAogCQkJCUFSUkFZX1NJWkUoZG5zMzIzX2kyY19kZXZpY2VzKSk7CiAKLQlvcmlvbjV4X2V0aF9pbml0KCZkbnMzMjNfZXRoX2RhdGEpOworCS8qIHJlZ2lzdGVyIGRuczMyMyBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCisJaWYgKGdwaW9fcmVxdWVzdChETlMzMjNfR1BJT19QT1dFUl9PRkYsICJQT1dFUk9GRiIpICE9IDAgfHwKKwkgICAgZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KEROUzMyM19HUElPX1BPV0VSX09GRiwgMCkgIT0gMCkKKwkJcHJfZXJyKCJETlMzMjM6IGZhaWxlZCB0byBzZXR1cCBwb3dlci1vZmYgR1BJT1xuIik7CisJcG1fcG93ZXJfb2ZmID0gZG5zMzIzX3Bvd2VyX29mZjsKIH0KIAogLyogV2FybmluZzogRC1MaW5rIHVzZXMgYSB3cm9uZyBtYWNoLXR5cGUgKD01MjYpIGluIHRoZWlyIGJvb3Rsb2FkZXIgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9ncGlvLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZ3Bpby5jCmluZGV4IDgxMDhjMzEuLmQwOTc5NzkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9ncGlvLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2dwaW8uYwpAQCAtMjQsOSArMjQsMTIgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdwaW9fdmFsaWRbQklUU19UT19MT05HUyhHUElPX01BWCldOwogc3RhdGljIGNvbnN0IGNoYXIgKmdwaW9fbGFiZWxbR1BJT19NQVhdOyAgLyogbm9uIG51bGwgZm9yIGFsbG9jYXRlZCBHUElPcyAqLwogCi12b2lkIF9faW5pdCBvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnModTMyIHBpbnMpCit2b2lkIF9faW5pdCBvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkKHVuc2lnbmVkIHBpbiwgaW50IHZhbGlkKQogewotCWdwaW9fdmFsaWRbMF0gPSBwaW5zOworCWlmICh2YWxpZCkKKwkJX19zZXRfYml0KHBpbiwgZ3Bpb192YWxpZCk7CisJZWxzZQorCQlfX2NsZWFyX2JpdChwaW4sIGdwaW9fdmFsaWQpOwogfQogCiAvKgpAQCAtOTMsMTAgKzk2LDEwIEBACiB7CiAJaW50IHZhbCwgbWFzayA9IDEgPDwgcGluOwogCi0JaWYgKG9yaW9uNXhfcmVhZChHUElPX0lPX0NPTkYpICYgbWFzaykKLQkJdmFsID0gb3Jpb241eF9yZWFkKEdQSU9fREFUQV9JTikgXiBvcmlvbjV4X3JlYWQoR1BJT19JTl9QT0wpOworCWlmIChyZWFkbChHUElPX0lPX0NPTkYpICYgbWFzaykKKwkJdmFsID0gcmVhZGwoR1BJT19EQVRBX0lOKSBeIHJlYWRsKEdQSU9fSU5fUE9MKTsKIAllbHNlCi0JCXZhbCA9IG9yaW9uNXhfcmVhZChHUElPX09VVCk7CisJCXZhbCA9IHJlYWRsKEdQSU9fT1VUKTsKIAogCXJldHVybiB2YWwgJiBtYXNrOwogfQpAQCAtMTg4LDM5ICsxOTEsMzkgQEAKIAkJCXByaW50aygiR1BJTywgZnJlZVxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGsoIkdQSU8sIHVzZWQgYnkgJXMsICIsIGdwaW9fbGFiZWxbaV0pOwotCQkJaWYgKG9yaW9uNXhfcmVhZChHUElPX0lPX0NPTkYpICYgKDEgPDwgaSkpIHsKKwkJCWlmIChyZWFkbChHUElPX0lPX0NPTkYpICYgKDEgPDwgaSkpIHsKIAkJCQlwcmludGsoImlucHV0LCBhY3RpdmUgJXMsIGxldmVsICVzLCBlZGdlICVzXG4iLAotCQkJCSgob3Jpb241eF9yZWFkKEdQSU9fSU5fUE9MKSA+PiBpKSAmIDEpID8gImxvdyIgOiAiaGlnaCIsCi0JCQkJKChvcmlvbjV4X3JlYWQoR1BJT19MRVZFTF9NQVNLKSA+PiBpKSAmIDEpID8gImVuYWJsZWQiIDogIm1hc2tlZCIsCi0JCQkJKChvcmlvbjV4X3JlYWQoR1BJT19FREdFX01BU0spID4+IGkpICYgMSkgPyAiZW5hYmxlZCIgOiAibWFza2VkIik7CisJCQkJKChyZWFkbChHUElPX0lOX1BPTCkgPj4gaSkgJiAxKSA/ICJsb3ciIDogImhpZ2giLAorCQkJCSgocmVhZGwoR1BJT19MRVZFTF9NQVNLKSA+PiBpKSAmIDEpID8gImVuYWJsZWQiIDogIm1hc2tlZCIsCisJCQkJKChyZWFkbChHUElPX0VER0VfTUFTSykgPj4gaSkgJiAxKSA/ICJlbmFibGVkIiA6ICJtYXNrZWQiKTsKIAkJCX0gZWxzZSB7Ci0JCQkJcHJpbnRrKCJvdXRwdXQsIHZhbD0lZFxuIiwgKG9yaW9uNXhfcmVhZChHUElPX09VVCkgPj4gaSkgJiAxKTsKKwkJCQlwcmludGsoIm91dHB1dCwgdmFsPSVkXG4iLCAocmVhZGwoR1BJT19PVVQpID4+IGkpICYgMSk7CiAJCQl9CiAJCX0KIAl9CiAKIAlwcmludGsoS0VSTl9ERUJVRyAiTVBQXzBfN19DVFJMICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCU1QUF8wXzdfQ1RSTCwgb3Jpb241eF9yZWFkKE1QUF8wXzdfQ1RSTCkpOworCQkJCU1QUF8wXzdfQ1RSTCwgcmVhZGwoTVBQXzBfN19DVFJMKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIk1QUF84XzE1X0NUUkwgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJTVBQXzhfMTVfQ1RSTCwgb3Jpb241eF9yZWFkKE1QUF84XzE1X0NUUkwpKTsKKwkJCQlNUFBfOF8xNV9DVFJMLCByZWFkbChNUFBfOF8xNV9DVFJMKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIk1QUF8xNl8xOV9DVFJMICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCU1QUF8xNl8xOV9DVFJMLCBvcmlvbjV4X3JlYWQoTVBQXzE2XzE5X0NUUkwpKTsKKwkJCQlNUFBfMTZfMTlfQ1RSTCwgcmVhZGwoTVBQXzE2XzE5X0NUUkwpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiTVBQX0RFVl9DVFJMICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCU1QUF9ERVZfQ1RSTCwgb3Jpb241eF9yZWFkKE1QUF9ERVZfQ1RSTCkpOworCQkJCU1QUF9ERVZfQ1RSTCwgcmVhZGwoTVBQX0RFVl9DVFJMKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fT1VUICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fT1VULCBvcmlvbjV4X3JlYWQoR1BJT19PVVQpKTsKKwkJCQlHUElPX09VVCwgcmVhZGwoR1BJT19PVVQpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19JT19DT05GICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fSU9fQ09ORiwgb3Jpb241eF9yZWFkKEdQSU9fSU9fQ09ORikpOworCQkJCUdQSU9fSU9fQ09ORiwgcmVhZGwoR1BJT19JT19DT05GKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fQkxJTktfRU4gKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19CTElOS19FTiwgb3Jpb241eF9yZWFkKEdQSU9fQkxJTktfRU4pKTsKKwkJCQlHUElPX0JMSU5LX0VOLCByZWFkbChHUElPX0JMSU5LX0VOKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fSU5fUE9MICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fSU5fUE9MLCBvcmlvbjV4X3JlYWQoR1BJT19JTl9QT0wpKTsKKwkJCQlHUElPX0lOX1BPTCwgcmVhZGwoR1BJT19JTl9QT0wpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19EQVRBX0lOICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fREFUQV9JTiwgb3Jpb241eF9yZWFkKEdQSU9fREFUQV9JTikpOworCQkJCUdQSU9fREFUQV9JTiwgcmVhZGwoR1BJT19EQVRBX0lOKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fTEVWRUxfTUFTSyAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0xFVkVMX01BU0ssIG9yaW9uNXhfcmVhZChHUElPX0xFVkVMX01BU0spKTsKKwkJCQlHUElPX0xFVkVMX01BU0ssIHJlYWRsKEdQSU9fTEVWRUxfTUFTSykpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0VER0VfQ0FVU0UgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19FREdFX0NBVVNFLCBvcmlvbjV4X3JlYWQoR1BJT19FREdFX0NBVVNFKSk7CisJCQkJR1BJT19FREdFX0NBVVNFLCByZWFkbChHUElPX0VER0VfQ0FVU0UpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19FREdFX01BU0sgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19FREdFX01BU0ssIG9yaW9uNXhfcmVhZChHUElPX0VER0VfTUFTSykpOworCQkJCUdQSU9fRURHRV9NQVNLLCByZWFkbChHUElPX0VER0VfTUFTSykpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2lycS5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2lycS5jCmluZGV4IGRkMjFmMzguLmUyYTAwODQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9pcnEuYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvaXJxLmMKQEAgLTgyLDcgKzgyLDcgQEAKIAlpbnQgcGluID0gaXJxX3RvX2dwaW8oaXJxKTsKIAlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7CiAKLQlpZiAoKG9yaW9uNXhfcmVhZChHUElPX0lPX0NPTkYpICYgKDEgPDwgcGluKSkgPT0gMCkgeworCWlmICgocmVhZGwoR1BJT19JT19DT05GKSAmICgxIDw8IHBpbikpID09IDApIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJvcmlvbjV4X2dwaW9fc2V0X2lycV90eXBlIGZhaWxlZCAiCiAJCQkJIihpcnEgJWQsIHBpbiAlZCkuXG4iLCBpcnEsIHBpbik7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTE3LDcgKzExNyw3IEBACiAJCS8qCiAJCSAqIHNldCBpbml0aWFsIHBvbGFyaXR5IGJhc2VkIG9uIGN1cnJlbnQgaW5wdXQgbGV2ZWwKIAkJICovCi0JCWlmICgob3Jpb241eF9yZWFkKEdQSU9fSU5fUE9MKSBeIG9yaW9uNXhfcmVhZChHUElPX0RBVEFfSU4pKQorCQlpZiAoKHJlYWRsKEdQSU9fSU5fUE9MKSBeIHJlYWRsKEdQSU9fREFUQV9JTikpCiAJCSAgICAmICgxIDw8IHBpbikpCiAJCQlvcmlvbjV4X3NldGJpdHMoR1BJT19JTl9QT0wsICgxIDw8IHBpbikpOyAvKiBmYWxsaW5nICovCiAJCWVsc2UKQEAgLTE0OSw4ICsxNDksOCBAQAogCiAJQlVHX09OKGlycSA8IElSUV9PUklPTjVYX0dQSU9fMF83IHx8IGlycSA+IElSUV9PUklPTjVYX0dQSU9fMjRfMzEpOwogCW9mZnMgPSAoaXJxIC0gSVJRX09SSU9ONVhfR1BJT18wXzcpICogODsKLQljYXVzZSA9IChvcmlvbjV4X3JlYWQoR1BJT19EQVRBX0lOKSAmIG9yaW9uNXhfcmVhZChHUElPX0xFVkVMX01BU0spKSB8Ci0JCShvcmlvbjV4X3JlYWQoR1BJT19FREdFX0NBVVNFKSAmIG9yaW9uNXhfcmVhZChHUElPX0VER0VfTUFTSykpOworCWNhdXNlID0gKHJlYWRsKEdQSU9fREFUQV9JTikgJiByZWFkbChHUElPX0xFVkVMX01BU0spKSB8CisJCShyZWFkbChHUElPX0VER0VfQ0FVU0UpICYgcmVhZGwoR1BJT19FREdFX01BU0spKTsKIAogCWZvciAocGluID0gb2ZmczsgcGluIDwgb2ZmcyArIDg7IHBpbisrKSB7CiAJCWlmIChjYXVzZSAmICgxIDw8IHBpbikpIHsKQEAgLTE1OCw5ICsxNTgsOSBAQAogCQkJZGVzYyA9IGlycV9kZXNjICsgaXJxOwogCQkJaWYgKChkZXNjLT5zdGF0dXMgJiBJUlFfVFlQRV9TRU5TRV9NQVNLKSA9PSBJUlFUX0JPVEhFREdFKSB7CiAJCQkJLyogU3dhcCBwb2xhcml0eSAocmFjZSB3aXRoIEdQSU8gbGluZSkgKi8KLQkJCQl1MzIgcG9sYXJpdHkgPSBvcmlvbjV4X3JlYWQoR1BJT19JTl9QT0wpOworCQkJCXUzMiBwb2xhcml0eSA9IHJlYWRsKEdQSU9fSU5fUE9MKTsKIAkJCQlwb2xhcml0eSBePSAxIDw8IHBpbjsKLQkJCQlvcmlvbjV4X3dyaXRlKEdQSU9fSU5fUE9MLCBwb2xhcml0eSk7CisJCQkJd3JpdGVsKHBvbGFyaXR5LCBHUElPX0lOX1BPTCk7CiAJCQl9CiAJCQlkZXNjX2hhbmRsZV9pcnEoaXJxLCBkZXNjKTsKIAkJfQpAQCAtMTc1LDkgKzE3NSw5IEBACiAJLyoKIAkgKiBNYXNrIGFuZCBjbGVhciBHUElPIElSUSBpbnRlcnJ1cHRzCiAJICovCi0Jb3Jpb241eF93cml0ZShHUElPX0xFVkVMX01BU0ssIDB4MCk7Ci0Jb3Jpb241eF93cml0ZShHUElPX0VER0VfTUFTSywgMHgwKTsKLQlvcmlvbjV4X3dyaXRlKEdQSU9fRURHRV9DQVVTRSwgMHgwKTsKKwl3cml0ZWwoMHgwLCBHUElPX0xFVkVMX01BU0spOworCXdyaXRlbCgweDAsIEdQSU9fRURHRV9NQVNLKTsKKwl3cml0ZWwoMHgwLCBHUElPX0VER0VfQ0FVU0UpOwogCiAJLyoKIAkgKiBSZWdpc3RlciBjaGFpbmVkIGxldmVsIGhhbmRsZXJzIGZvciBHUElPIElSUXMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9rdXJvYm94X3Byby1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2t1cm9ib3hfcHJvLXNldHVwLmMKaW5kZXggZjUwNzRiOC4uODRmZWFjNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2t1cm9ib3hfcHJvLXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2t1cm9ib3hfcHJvLXNldHVwLmMKQEAgLTEzLDEwICsxMywxMiBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgogI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgogI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2dwaW8uaD4KQEAgLTI1LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEtVUk9CT1gtUFJPIEluZm8KQEAgLTUzLDEzICs1NiwxMSBAQAogCQkubmFtZQk9ICJ1SW1hZ2UiLAogCQkub2Zmc2V0CT0gMCwKIAkJLnNpemUJPSBTWl80TSwKLQl9LAotCXsKKwl9LCB7CiAJCS5uYW1lCT0gInJvb3RmcyIsCiAJCS5vZmZzZXQJPSBTWl80TSwKIAkJLnNpemUJPSBTWl82NE0sCi0JfSwKLQl7CisJfSwgewogCQkubmFtZQk9ICJleHRyYSIsCiAJCS5vZmZzZXQJPSBTWl80TSArIFNaXzY0TSwKIAkJLnNpemUJPSBTWl8yNTZNIC0gKFNaXzRNICsgU1pfNjRNKSwKQEAgLTEzMiw4ICsxMzMsNiBAQAogCS8qCiAJICogUENJIGlzbid0IHVzZWQgb24gdGhlIEt1cm8KIAkgKi8KLQlwcmludGsoS0VSTl9FUlIgImt1cm9ib3hfcHJvX3BjaV9tYXBfaXJxIGZhaWxlZCwgdW5rbm93biBidXNcbiIpOwotCiAJcmV0dXJuIC0xOwogfQogCkBAIC0xNjEsNyArMTYwLDYgQEAKIAogc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGt1cm9ib3hfcHJvX2V0aF9kYXRhID0gewogCS5waHlfYWRkcgk9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTc1LDEyICsxNzMsMTY5IEBACiAgKiBTQVRBCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIGt1cm9ib3hfcHJvX3NhdGFfZGF0YSA9IHsKLQkubl9wb3J0cyAgICAgICAgPSAyLAorCS5uX3BvcnRzCT0gMiwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogS3Vyb2JveCBQcm8gc3BlY2lmaWMgcG93ZXIgb2ZmIG1ldGhvZCB2aWEgVUFSVDEtYXR0YWNoZWQgbWljcm9jb250cm9sbGVyCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBVQVJUMV9SRUcoeCkJKFVBUlQxX1ZJUlRfQkFTRSArICgoVUFSVF8jI3gpIDw8IDIpKQorCitzdGF0aWMgaW50IGt1cm9ib3hfcHJvX21pY29ucmVhZCh1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlpbnQgaTsKKwlpbnQgdGltZW91dDsKKworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCXRpbWVvdXQgPSAxMDsKKworCQl3aGlsZSAoIShyZWFkbChVQVJUMV9SRUcoTFNSKSkgJiBVQVJUX0xTUl9EUikpIHsKKwkJCWlmICgtLXRpbWVvdXQgPT0gMCkKKwkJCQlicmVhazsKKwkJCXVkZWxheSgxMDAwKTsKKwkJfQorCisJCWlmICh0aW1lb3V0ID09IDApCisJCQlicmVhazsKKwkJYnVmW2ldID0gcmVhZGwoVUFSVDFfUkVHKFJYKSk7CisJfQorCisJLyogcmV0dXJuIHJlYWQgYnl0ZXMgKi8KKwlyZXR1cm4gaTsKK30KKworc3RhdGljIGludCBrdXJvYm94X3Byb19taWNvbndyaXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCWludCBpID0gMDsKKworCXdoaWxlIChjb3VudC0tKSB7CisJCXdoaWxlICghKHJlYWRsKFVBUlQxX1JFRyhMU1IpKSAmIFVBUlRfTFNSX1RIUkUpKQorCQkJYmFycmllcigpOworCQl3cml0ZWwoYnVmW2krK10sIFVBUlQxX1JFRyhUWCkpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGt1cm9ib3hfcHJvX21pY29uc2VuZChjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgY291bnQpCit7CisJaW50IGk7CisJdW5zaWduZWQgY2hhciBjaGVja3N1bSA9IDA7CisJdW5zaWduZWQgY2hhciByZWN2X2J1Zls0MF07CisJdW5zaWduZWQgY2hhciBzZW5kX2J1Zls0MF07CisJdW5zaWduZWQgY2hhciBjb3JyZWN0X2Fja1szXTsKKwlpbnQgcmV0cnkgPSAyOworCisJLyogR2VuZXJhdGUgY2hlY2tzdW0gKi8KKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKwkJY2hlY2tzdW0gLT0gIGRhdGFbaV07CisKKwlkbyB7CisJCS8qIFNlbmQgZGF0YSAqLworCQlrdXJvYm94X3Byb19taWNvbndyaXRlKGRhdGEsIGNvdW50KTsKKworCQkvKiBzZW5kIGNoZWNrc3VtICovCisJCWt1cm9ib3hfcHJvX21pY29ud3JpdGUoJmNoZWNrc3VtLCAxKTsKKworCQlpZiAoa3Vyb2JveF9wcm9fbWljb25yZWFkKHJlY3ZfYnVmLCBzaXplb2YocmVjdl9idWYpKSA8PSAzKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIj4lczogcmVjZWl2ZSBmYWlsZWQuXG4iLCBfX2Z1bmNfXyk7CisKKwkJCS8qIHNlbmQgcHJlYW1ibGUgdG8gY2xlYXIgdGhlIHJlY2VpdmUgYnVmZmVyICovCisJCQltZW1zZXQoJnNlbmRfYnVmLCAweGZmLCBzaXplb2Yoc2VuZF9idWYpKTsKKwkJCWt1cm9ib3hfcHJvX21pY29ud3JpdGUoc2VuZF9idWYsIHNpemVvZihzZW5kX2J1ZikpOworCisJCQkvKiBtYWtlIGR1bW15IHJlYWRzICovCisJCQltZGVsYXkoMTAwKTsKKwkJCWt1cm9ib3hfcHJvX21pY29ucmVhZChyZWN2X2J1Ziwgc2l6ZW9mKHJlY3ZfYnVmKSk7CisJCX0gZWxzZSB7CisJCQkvKiBHZW5lcmF0ZSBleHBlY3RlZCBhY2sgKi8KKwkJCWNvcnJlY3RfYWNrWzBdID0gMHgwMTsKKwkJCWNvcnJlY3RfYWNrWzFdID0gZGF0YVsxXTsKKwkJCWNvcnJlY3RfYWNrWzJdID0gMHgwMDsKKworCQkJLyogY2hlY2tzdW0gQ2hlY2sgKi8KKwkJCWlmICgocmVjdl9idWZbMF0gKyByZWN2X2J1ZlsxXSArIHJlY3ZfYnVmWzJdICsKKwkJCSAgICAgcmVjdl9idWZbM10pICYgMHhGRikgeworCQkJCXByaW50ayhLRVJOX0VSUiAiPiVzOiBDaGVja3N1bSBFcnJvciA6ICIKKwkJCQkJIlJlY2VpdmVkIGRhdGFbJTAyeCwgJTAyeCwgJTAyeCwgJTAyeF0iCisJCQkJCSJcbiIsIF9fZnVuY19fLCByZWN2X2J1ZlswXSwKKwkJCQkJcmVjdl9idWZbMV0sIHJlY3ZfYnVmWzJdLCByZWN2X2J1ZlszXSk7CisJCQl9IGVsc2UgeworCQkJCS8qIENoZWNrIFJlY2VpdmVkIERhdGEgKi8KKwkJCQlpZiAoY29ycmVjdF9hY2tbMF0gPT0gcmVjdl9idWZbMF0gJiYKKwkJCQkgICAgY29ycmVjdF9hY2tbMV0gPT0gcmVjdl9idWZbMV0gJiYKKwkJCQkgICAgY29ycmVjdF9hY2tbMl0gPT0gcmVjdl9idWZbMl0pIHsKKwkJCQkJLyogSW50ZXJ2YWwgZm9yIG5leHQgY29tbWFuZCAqLworCQkJCQltZGVsYXkoMTApOworCisJCQkJCS8qIFJlY2VpdmUgQUNLICovCisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCX0KKwkJCS8qIFJlY2VpdmVkIE5BSyBvciBpbGxlZ2FsIERhdGEgKi8KKwkJCXByaW50ayhLRVJOX0VSUiAiPiVzOiBFcnJvciA6IE5BSyBvciBJbGxlZ2FsIERhdGEgIgorCQkJCQkiUmVjZWl2ZWRcbiIsIF9fZnVuY19fKTsKKwkJfQorCX0gd2hpbGUgKHJldHJ5LS0pOworCisJLyogSW50ZXJ2YWwgZm9yIG5leHQgY29tbWFuZCAqLworCW1kZWxheSgxMCk7CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB2b2lkIGt1cm9ib3hfcHJvX3Bvd2VyX29mZih2b2lkKQoreworCWNvbnN0IHVuc2lnbmVkIGNoYXIgd2F0Y2hkb2draWxsW10JPSB7MHgwMSwgMHgzNSwgMHgwMH07CisJY29uc3QgdW5zaWduZWQgY2hhciBzaHV0ZG93bndhaXRbXQk9IHsweDAwLCAweDBjfTsKKwljb25zdCB1bnNpZ25lZCBjaGFyIHBvd2Vyb2ZmW10JCT0gezB4MDAsIDB4MDZ9OworCS8qIDM4NDAwIGJhdWQgZGl2aXNvciAqLworCWNvbnN0IHVuc2lnbmVkIGRpdmlzb3IgPSAoKE9SSU9ONVhfVENMSyArICg4ICogMzg0MDApKSAvICgxNiAqIDM4NDAwKSk7CisKKwlwcl9pbmZvKCIlczogdHJpZ2dlcmluZyBwb3dlci1vZmYuLi5cbiIsIF9fZnVuY19fKTsKKworCS8qIGhpamFjayB1YXJ0MSBhbmQgcmVzZXQgaW50byBzYW5lIHN0YXRlICgzODQwMCw4bjEsZXZlbiBwYXJpdHkpICovCisJd3JpdGVsKDB4ODMsIFVBUlQxX1JFRyhMQ1IpKTsKKwl3cml0ZWwoZGl2aXNvciAmIDB4ZmYsIFVBUlQxX1JFRyhETEwpKTsKKwl3cml0ZWwoKGRpdmlzb3IgPj4gOCkgJiAweGZmLCBVQVJUMV9SRUcoRExNKSk7CisJd3JpdGVsKDB4MWIsIFVBUlQxX1JFRyhMQ1IpKTsKKwl3cml0ZWwoMHgwMCwgVUFSVDFfUkVHKElFUikpOworCXdyaXRlbCgweDA3LCBVQVJUMV9SRUcoRkNSKSk7CisJd3JpdGVsKDB4MDAsIFVBUlQxX1JFRyhNQ1IpKTsKKworCS8qIFNlbmQgdGhlIGNvbW1hbmRzIHRvIHNodXRkb3duIHRoZSBLdXJvYm94IFBybyAqLworCWt1cm9ib3hfcHJvX21pY29uc2VuZCh3YXRjaGRvZ2tpbGwsIHNpemVvZih3YXRjaGRvZ2tpbGwpKSA7CisJa3Vyb2JveF9wcm9fbWljb25zZW5kKHNodXRkb3dud2FpdCwgc2l6ZW9mKHNodXRkb3dud2FpdCkpIDsKKwlrdXJvYm94X3Byb19taWNvbnNlbmQocG93ZXJvZmYsIHNpemVvZihwb3dlcm9mZikpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdlbmVyYWwgU2V0dXAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIGt1cm9ib3hfcHJvX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX1VOVVNFRCB9LAorCXsgIDEsIE1QUF9VTlVTRUQgfSwKKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogR1BJTyBNaWNvbiAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBHUElPIFJ0YyAqLworCXsgIDQsIE1QUF9VTlVTRUQgfSwKKwl7ICA1LCBNUFBfVU5VU0VEIH0sCisJeyAgNiwgTVBQX05BTkQgfSwJCS8qIE5BTkQgRmxhc2ggUkVuICovCisJeyAgNywgTVBQX05BTkQgfSwJCS8qIE5BTkQgRmxhc2ggV0VuICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIHByZXNlbmNlICovCisJeyAxMywgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgcHJlc2VuY2UgKi8KKwl7IDE0LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBhY3RpdmUgKi8KKwl7IDE1LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBhY3RpdmUgKi8KKwl7IDE2LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgUlhEICovCisJeyAxNywgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFRYRCAqLworCXsgMTgsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBDVFNuICovCisJeyAxOSwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJUU24gKi8KKwl7IC0xIH0sCit9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQga3Vyb2JveF9wcm9faW5pdCh2b2lkKQogewpAQCAtMTg5LDQ2ICszNDQsMzMgQEAKIAkgKi8KIAlvcmlvbjV4X2luaXQoKTsKIAotCS8qCi0JICogU2V0dXAgdGhlIENQVSBhZGRyZXNzIGRlY29kZSB3aW5kb3dzIGZvciBvdXIgZGV2aWNlcwotCSAqLwotCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKEtVUk9CT1hfUFJPX05PUl9CT09UX0JBU0UsCi0JCQkJS1VST0JPWF9QUk9fTk9SX0JPT1RfU0laRSk7Ci0Jb3Jpb241eF9zZXR1cF9kZXYwX3dpbihLVVJPQk9YX1BST19OQU5EX0JBU0UsIEtVUk9CT1hfUFJPX05BTkRfU0laRSk7CisJb3Jpb241eF9tcHBfY29uZihrdXJvYm94X3Byb19tcHBfbW9kZXMpOwogCiAJLyoKLQkgKiBPcGVuIGEgc3BlY2lhbCBhZGRyZXNzIGRlY29kZSB3aW5kb3dzIGZvciB0aGUgUENJZSBXQS4KKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCiAJICovCi0Jb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbihPUklPTjVYX1BDSUVfV0FfUEhZU19CQVNFLAotCQkJCU9SSU9ONVhfUENJRV9XQV9TSVpFKTsKLQotCS8qCi0JICogU2V0dXAgTXVsdGlwbGV4aW5nIFBpbnMgLS0KLQkgKiBNUFBbMC0xXSBOb3QgdXNlZAotCSAqIE1QUFsyXSBHUElPIE1pY29uCi0JICogTVBQWzNdIEdQSU8gUlRDCi0JICogTVBQWzQtNV0gTm90IHVzZWQKLQkgKiBNUFBbNl0gTmFuZCBGbGFzaCBSRW4KLQkgKiBNUFBbN10gTmFuZCBGbGFzaCBXRW4KLQkgKiBNUFBbOC0xMV0gTm90IHVzZWQKLQkgKiBNUFBbMTJdIFNBVEEgMCBwcmVzZW5jZSBJbmRpY2F0aW9uCi0JICogTVBQWzEzXSBTQVRBIDEgcHJlc2VuY2UgSW5kaWNhdGlvbgotCSAqIE1QUFsxNF0gU0FUQSAwIGFjdGl2ZSBJbmRpY2F0aW9uCi0JICogTVBQWzE1XSBTQVRBIDEgYWN0aXZlIGluZGljYXRpb24KLQkgKiBNUFBbMTYtMTldIE5vdCB1c2VkCi0JICovCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4NDQyMjAwMDMpOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMHg1NTU1MDAwMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMHgwKTsKLQotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDAwMDAwMDBjKTsKLQotCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma3Vyb2JveF9wcm9fbm9yX2ZsYXNoKTsKLQlpZiAobWFjaGluZV9pc19rdXJvYm94X3BybygpKQotCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmt1cm9ib3hfcHJvX25hbmRfZmxhc2gpOwotCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZrdXJvYm94X3Byb19pMmNfcnRjLCAxKTsKKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKIAlvcmlvbjV4X2V0aF9pbml0KCZrdXJvYm94X3Byb19ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOwogCW9yaW9uNXhfc2F0YV9pbml0KCZrdXJvYm94X3Byb19zYXRhX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCW9yaW9uNXhfdWFydDFfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oS1VST0JPWF9QUk9fTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBLVVJPQk9YX1BST19OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmt1cm9ib3hfcHJvX25vcl9mbGFzaCk7CisKKwlpZiAobWFjaGluZV9pc19rdXJvYm94X3BybygpKSB7CisJCW9yaW9uNXhfc2V0dXBfZGV2MF93aW4oS1VST0JPWF9QUk9fTkFORF9CQVNFLAorCQkJCSAgICAgICBLVVJPQk9YX1BST19OQU5EX1NJWkUpOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmt1cm9ib3hfcHJvX25hbmRfZmxhc2gpOworCX0KKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZrdXJvYm94X3Byb19pMmNfcnRjLCAxKTsKKworCS8qIHJlZ2lzdGVyIEt1cm9ib3ggUHJvIHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlwbV9wb3dlcl9vZmYgPSBrdXJvYm94X3Byb19wb3dlcl9vZmY7CiB9CiAKICNpZmRlZiBDT05GSUdfTUFDSF9LVVJPQk9YX1BSTwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OGNhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmMKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmMKKyAqCisgKiBNUFAgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIE9yaW9uIDV4IFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworc3RhdGljIGludCBpc181MTgxbCh2b2lkKQoreworCXUzMiBkZXY7CisJdTMyIHJldjsKKworCW9yaW9uNXhfcGNpZV9pZCgmZGV2LCAmcmV2KTsKKworCXJldHVybiAhIShkZXYgPT0gTVY4OEY1MTgxX0RFVl9JRCAmJiByZXYgPj0gTVY4OEY1MTgxTF9SRVZfQTApOworfQorCitzdGF0aWMgaW50IGlzXzUxODIodm9pZCkKK3sKKwl1MzIgZGV2OworCXUzMiByZXY7CisKKwlvcmlvbjV4X3BjaWVfaWQoJmRldiwgJnJldik7CisKKwlyZXR1cm4gISEoZGV2ID09IE1WODhGNTE4Ml9ERVZfSUQpOworfQorCitzdGF0aWMgaW50IGlzXzUyODEodm9pZCkKK3sKKwl1MzIgZGV2OworCXUzMiByZXY7CisKKwlvcmlvbjV4X3BjaWVfaWQoJmRldiwgJnJldik7CisKKwlyZXR1cm4gISEoZGV2ID09IE1WODhGNTI4MV9ERVZfSUQpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBkZXRlcm1pbmVfdHlwZV9lbmNvZGluZyhpbnQgbXBwLCBlbnVtIG9yaW9uNXhfbXBwX3R5cGUgdHlwZSkKK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIE1QUF9VTlVTRUQ6CisJY2FzZSBNUFBfR1BJTzoKKwkJaWYgKG1wcCA9PSAwKQorCQkJcmV0dXJuIDM7CisJCWlmIChtcHAgPj0gMSAmJiBtcHAgPD0gMTUpCisJCQlyZXR1cm4gMDsKKwkJaWYgKG1wcCA+PSAxNiAmJiBtcHAgPD0gMTkpIHsKKwkJCWlmIChpc181MTgyKCkpCisJCQkJcmV0dXJuIDU7CisJCQlpZiAodHlwZSA9PSBNUFBfVU5VU0VEKQorCQkJCXJldHVybiAwOworCQl9CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1BDSUVfUlNUX09VVG46CisJCWlmIChtcHAgPT0gMCkKKwkJCXJldHVybiAwOworCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9QQ0lfQVJCOgorCQlpZiAobXBwID49IDAgJiYgbXBwIDw9IDcpCisJCQlyZXR1cm4gMjsKKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfUENJX1BNRW46CisJCWlmIChtcHAgPT0gMikKKwkJCXJldHVybiAzOworCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9HSUdFOgorCQlpZiAobXBwID49IDggJiYgbXBwIDw9IDE5KQorCQkJcmV0dXJuIDE7CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX05BTkQ6CisJCWlmIChpc181MTgyKCkgfHwgaXNfNTI4MSgpKSB7CisJCQlpZiAobXBwID49IDQgJiYgbXBwIDw9IDcpCisJCQkJcmV0dXJuIDQ7CisJCQlpZiAobXBwID49IDEyICYmIG1wcCA8PSAxNykKKwkJCQlyZXR1cm4gNDsKKwkJfQorCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9QQ0lfQ0xLOgorCQlpZiAoaXNfNTE4MWwoKSAmJiBtcHAgPj0gNiAmJiBtcHAgPD0gNykKKwkJCXJldHVybiA1OworCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9TQVRBX0xFRDoKKwkJaWYgKGlzXzUxODIoKSkgeworCQkJaWYgKG1wcCA+PSA0ICYmIG1wcCA8PSA3KQorCQkJCXJldHVybiA1OworCQkJaWYgKG1wcCA+PSAxMiAmJiBtcHAgPD0gMTUpCisJCQkJcmV0dXJuIDU7CisJCX0KKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfVUFSVDoKKwkJaWYgKG1wcCA+PSAxNiAmJiBtcHAgPD0gMTkpCisJCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC0xOworCX0KKworCXByaW50ayhLRVJOX0lORk8gInVua25vd24gTVBQIHR5cGUgJWRcbiIsIHR5cGUpOworCisJcmV0dXJuIC0xOworfQorCit2b2lkIF9faW5pdCBvcmlvbjV4X21wcF9jb25mKHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlICptb2RlKQoreworCXUzMiBtcHBfMF83X2N0cmwgPSByZWFkbChNUFBfMF83X0NUUkwpOworCXUzMiBtcHBfOF8xNV9jdHJsID0gcmVhZGwoTVBQXzhfMTVfQ1RSTCk7CisJdTMyIG1wcF8xNl8xOV9jdHJsID0gcmVhZGwoTVBQXzE2XzE5X0NUUkwpOworCisJd2hpbGUgKG1vZGUtPm1wcCA+PSAwKSB7CisJCXUzMiAqcmVnOworCQlpbnQgbnVtX3R5cGU7CisJCWludCBzaGlmdDsKKworCQlpZiAobW9kZS0+bXBwID49IDAgJiYgbW9kZS0+bXBwIDw9IDcpCisJCQlyZWcgPSAmbXBwXzBfN19jdHJsOworCQllbHNlIGlmIChtb2RlLT5tcHAgPj0gOCAmJiBtb2RlLT5tcHAgPD0gMTUpCisJCQlyZWcgPSAmbXBwXzhfMTVfY3RybDsKKwkJZWxzZSBpZiAobW9kZS0+bXBwID49IDE2ICYmIG1vZGUtPm1wcCA8PSAxOSkKKwkJCXJlZyA9ICZtcHBfMTZfMTlfY3RybDsKKwkJZWxzZSB7CisJCQlwcmludGsoS0VSTl9FUlIgIm9yaW9uNXhfbXBwX2NvbmY6IGludmFsaWQgTVBQICIKKwkJCQkJIiglZClcbiIsIG1vZGUtPm1wcCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCW51bV90eXBlID0gZGV0ZXJtaW5lX3R5cGVfZW5jb2RpbmcobW9kZS0+bXBwLCBtb2RlLT50eXBlKTsKKwkJaWYgKG51bV90eXBlIDwgMCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJvcmlvbjV4X21wcF9jb25mOiBpbnZhbGlkIE1QUCAiCisJCQkJCSJjb21iaW5hdGlvbiAoJWQsICVkKVxuIiwgbW9kZS0+bXBwLAorCQkJCQltb2RlLT50eXBlKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJc2hpZnQgPSAobW9kZS0+bXBwICYgNykgPDwgMjsKKwkJKnJlZyAmPSB+KDB4ZiA8PCBzaGlmdCk7CisJCSpyZWcgfD0gKG51bV90eXBlICYgMHhmKSA8PCBzaGlmdDsKKworCQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkKG1vZGUtPm1wcCwgISEobW9kZS0+dHlwZSA9PSBNUFBfR1BJTykpOworCisJCW1vZGUrKzsKKwl9CisKKwl3cml0ZWwobXBwXzBfN19jdHJsLCBNUFBfMF83X0NUUkwpOworCXdyaXRlbChtcHBfOF8xNV9jdHJsLCBNUFBfOF8xNV9DVFJMKTsKKwl3cml0ZWwobXBwXzE2XzE5X2N0cmwsIE1QUF8xNl8xOV9DVFJMKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuaCBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTBlNjEwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5oCkBAIC0wLDAgKzEsNzQgQEAKKyNpZm5kZWYgX19BUkNIX09SSU9ONVhfTVBQX0gKKyNkZWZpbmUgX19BUkNIX09SSU9ONVhfTVBQX0gKKworZW51bSBvcmlvbjV4X21wcF90eXBlIHsKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVudXNlZC4KKwkgKi8KKwlNUFBfVU5VU0VELAorCisJLyoKKwkgKiBUaGlzIE1QUCBwaW4gaXMgdXNlZCBhcyBhIGdlbmVyaWMgR1BJTyBwaW4uICBWYWxpZCBmb3IKKwkgKiBNUFBzIDAtMTUgYW5kIGRldmljZSBidXMgZGF0YSBwaW5zIDE2LTMxLiAgT24gNTE4MiwgYWxzbworCSAqIHZhbGlkIGZvciBNUFBzIDE2LTE5LgorCSAqLworCU1QUF9HUElPLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIFBDSWVfUlNUX09VVG4gcGluLiAgVmFsaWQgZm9yCisJICogTVBQIDAgb25seS4KKwkgKi8KKwlNUFBfUENJRV9SU1RfT1VUbiwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBQQ0kgYXJiaXRlciBwaW4gKFJFUW4vR05UbikuCisJICogVmFsaWQgZm9yIE1QUHMgMC03IG9ubHkuCisJICovCisJTVBQX1BDSV9BUkIsCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgUENJX1BNRW4gcGluLiAgVmFsaWQgZm9yIE1QUCAyIG9ubHkuCisJICovCisJTVBQX1BDSV9QTUVuLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIEdpZ0UgaGFsZi1kdXBsZXggKENPTCwgQ1JTKSBvciBHTUlJCisJICogKFJYRVJSLCBDUlMsIFRYRVJSLCBUWERbNzo0XSwgUlhEWzc6NF0pIHBpbi4gIFZhbGlkIGZvcgorCSAqIE1QUHMgOC0xOSBvbmx5LgorCSAqLworCU1QUF9HSUdFLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIE5BTkQgUkVuL1dFbiBwaW4uICBWYWxpZCBmb3IgTVBQcworCSAqIDQtNyBhbmQgMTItMTcgb25seSwgYW5kIG9ubHkgb24gdGhlIDUxODFsLzUxODIvNTI4MS4KKwkgKi8KKwlNUFBfTkFORCwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBhIFBDSSBjbG9jayBvdXRwdXQgcGluLiAgVmFsaWQgZm9yCisJICogTVBQcyA2LTcgb25seSwgYW5kIG9ubHkgb24gdGhlIDUxODFsLgorCSAqLworCU1QUF9QQ0lfQ0xLLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIGEgU0FUQSBwcmVzZW5jZS9hY3Rpdml0eSBMRUQuCisJICogVmFsaWQgZm9yIE1QUHMgNC03IGFuZCAxMi0xNSBvbmx5LCBhbmQgb25seSBvbiB0aGUgNTE4Mi4KKwkgKi8KKwlNUFBfU0FUQV9MRUQsCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgVUFSVDEgUlhEL1RYRC9DVFNuL1JUU24gcGluLgorCSAqIFZhbGlkIGZvciBNUFBzIDE2LTE5IG9ubHkuCisJICovCisJTVBQX1VBUlQsCit9OworCitzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB7CisJaW50CQkJbXBwOworCWVudW0gb3Jpb241eF9tcHBfdHlwZQl0eXBlOworfTsKKwordm9pZCBvcmlvbjV4X21wcF9jb25mKHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlICptb2RlKTsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tc3MyLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXNzMi1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZTllNDAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXNzMi1zZXR1cC5jCkBAIC0wLDAgKzEsMjcwIEBACisvKgorICogTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIEJvYXJkIFNldHVwCisgKgorICogTWFpbnRhaW5lcjogU3lsdmVyIEJydW5lYXUgPHN5bHZlci5icnVuZWF1QGdvb2dsZW1haWwuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvbGVkcy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworI2RlZmluZSBNU1MyX05PUl9CT09UX0JBU0UJMHhmZjgwMDAwMAorI2RlZmluZSBNU1MyX05PUl9CT09UX1NJWkUJU1pfMjU2SworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIE1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIE1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSBoYXJkd2FyZSA6CisgKiAtIE1hcnZlbGwgODhGNTE4Mi1BMiBDNTAwCisgKiAtIE1hcnZlbGwgODhFMTExMSBHaWdhYml0IEV0aGVybmV0IFBIWQorICogLSBSVEMgTTQxVDgxIChAMHg2OCkgb24gSTJDIGJ1cworICogLSAyNTZLQiBOT1IgZmxhc2gKKyAqIC0gNjRNQiBvZiBSQU0KKyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDI1NktCIE5PUiBGbGFzaCBvbiBCT09UIERldmljZQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIG1zczJfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG1zczJfbm9yX2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gTVNTMl9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gTVNTMl9OT1JfQk9PVF9CQVNFICsgTVNTMl9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG1zczJfbm9yX2ZsYXNoID0geworCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXNzMl9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9ICZtc3MyX25vcl9mbGFzaF9yZXNvdXJjZSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUENJIHNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgX19pbml0IG1zczJfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIG1zczJfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzID0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IG1zczJfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBtc3MyX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfbXNzMigpKQorCQlwY2lfY29tbW9uX2luaXQoJm1zczJfcGNpKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKG1zczJfcGNpX2luaXQpOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRXRoZXJuZXQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgbXNzMl9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgbXNzMl9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHUElPIGJ1dHRvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIE1TUzJfR1BJT19LRVlfUkVTRVQJMTIKKyNkZWZpbmUgTVNTMl9HUElPX0tFWV9QT1dFUgkxMQorCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gbXNzMl9idXR0b25zW10gPSB7CisJeworCQkuY29kZQkJPSBLRVlfUE9XRVIsCisJCS5ncGlvCQk9IE1TUzJfR1BJT19LRVlfUE9XRVIsCisJCS5kZXNjCQk9ICJQb3dlciIsCisJCS5hY3RpdmVfbG93CT0gMSwKKwl9LCB7CisJCS5jb2RlCQk9IEtFWV9SRVNUQVJULAorCQkuZ3BpbwkJPSBNU1MyX0dQSU9fS0VZX1JFU0VULAorCQkuZGVzYwkJPSAiUmVzZXQiLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgbXNzMl9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IG1zczJfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKG1zczJfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtc3MyX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtc3MyX2J1dHRvbl9kYXRhLAorCX0sCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJUQyBtNDF0ODEgb24gSTJDIGJ1cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgTVNTMl9HUElPX1JUQ19JUlEJMworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgbXNzMl9pMmNfcnRjID0geworCUkyQ19CT0FSRF9JTkZPKCJtNDF0ODEiLCAweDY4KSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogTVNTMiBwb3dlciBvZmYgbWV0aG9kCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiBPbiB0aGUgTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJLCB0aGUgc2h1dGRvd24gcHJvY2VzcyBpcyB0aGUgZm9sbG93aW5nIDoKKyAqIC0gVXNlcmxhbmQgbW9kaWZpZXMgVS1ib290IGVudiB0byB0ZWxsIFUtYm9vdCB0byBnbyBpZGxlIGF0IG5leHQgYm9vdAorICogLSBUaGUgYm9hcmQgcmVib290cworICogLSBVLWJvb3Qgc3RhcnRzIGFuZCBnbyBpbnRvIGFuIGlkbGUgbW9kZSB1bnRpbCB0aGUgdXNlciBwcmVzcyAicG93ZXIiCisgKi8KK3N0YXRpYyB2b2lkIG1zczJfcG93ZXJfb2ZmKHZvaWQpCit7CisJdTMyIHJlZzsKKworCS8qCisJICogRW5hYmxlIGFuZCBpc3N1ZSBzb2Z0IHJlc2V0CisJICovCisJcmVnID0gcmVhZGwoQ1BVX1JFU0VUX01BU0spOworCXJlZyB8PSAxIDw8IDI7CisJd3JpdGVsKHJlZywgQ1BVX1JFU0VUX01BU0spOworCisJcmVnID0gcmVhZGwoQ1BVX1NPRlRfUkVTRVQpOworCXJlZyB8PSAxOworCXdyaXRlbChyZWcsIENQVV9TT0ZUX1JFU0VUKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIG1zczJfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgTEVEICovCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIEVycm9yIExFRCAqLworCXsgIDIsIE1QUF9VTlVTRUQgfSwKKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogUlRDIGludGVycnVwdCAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBIREQgaW5kLiAoU2luZ2xlL0R1YWwpKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogSEQwIDVWIGNvbnRyb2wgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogSEQwIDEyViBjb250cm9sICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIEhEMSA1ViBjb250cm9sICovCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIEhEMSAxMlYgY29udHJvbCAqLworCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogRmFuIGNvbnRyb2wgKi8KKwl7IDExLCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgYnV0dG9uICovCisJeyAxMiwgTVBQX0dQSU8gfSwJCS8qIFJlc2V0IGJ1dHRvbiAqLworCXsgMTMsIE1QUF9VTlVTRUQgfSwKKwl7IDE0LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBhY3RpdmUgKi8KKwl7IDE1LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBhY3RpdmUgKi8KKwl7IDE2LCBNUFBfVU5VU0VEIH0sCisJeyAxNywgTVBQX1VOVVNFRCB9LAorCXsgMTgsIE1QUF9VTlVTRUQgfSwKKwl7IDE5LCBNUFBfVU5VU0VEIH0sCisJeyAtMSB9LAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IG1zczJfaW5pdCh2b2lkKQoreworCS8qIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKG1zczJfbXBwX21vZGVzKTsKKworCS8qCisJICogTVBQWzIwXSBVbnVzZWQKKwkgKiBNUFBbMjFdIFBDSSBjbG9jaworCSAqIE1QUFsyMl0gVVNCIDAgb3ZlciBjdXJyZW50CisJICogTVBQWzIzXSBVU0IgMSBvdmVyIGN1cnJlbnQKKwkgKi8KKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZWhjaTFfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJm1zczJfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3NhdGFfaW5pdCgmbXNzMl9zYXRhX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oTVNTMl9OT1JfQk9PVF9CQVNFLCBNU1MyX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXNzMl9ub3JfZmxhc2gpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtc3MyX2J1dHRvbl9kZXZpY2UpOworCisJaWYgKGdwaW9fcmVxdWVzdChNU1MyX0dQSU9fUlRDX0lSUSwgInJ0YyIpID09IDApIHsKKwkJaWYgKGdwaW9fZGlyZWN0aW9uX2lucHV0KE1TUzJfR1BJT19SVENfSVJRKSA9PSAwKQorCQkJbXNzMl9pMmNfcnRjLmlycSA9IGdwaW9fdG9faXJxKE1TUzJfR1BJT19SVENfSVJRKTsKKwkJZWxzZQorCQkJZ3Bpb19mcmVlKE1TUzJfR1BJT19SVENfSVJRKTsKKwl9CisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJm1zczJfaTJjX3J0YywgMSk7CisKKwkvKiByZWdpc3RlciBtc3MyIHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlwbV9wb3dlcl9vZmYgPSBtc3MyX3Bvd2VyX29mZjsKK30KKworTUFDSElORV9TVEFSVChNU1MyLCAiTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIikKKwkvKiBNYWludGFpbmVyOiBTeWx2ZXIgQnJ1bmVhdSA8c3lsdmVyLmJydW5lYXVAZ29vZ2xlbWFpbC5jb20+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IG1zczJfaW5pdCwKKwkubWFwX2lvCQk9IG9yaW9uNXhfbWFwX2lvLAorCS5pbml0X2lycQk9IG9yaW9uNXhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZvcmlvbjV4X3RpbWVyLAorCS5maXh1cAkJPSB0YWdfZml4dXBfbWVtMzIKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXYyMTIwLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXYyMTIwLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmM2IwZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tdjIxMjAtc2V0dXAuYwpAQCAtMCwwICsxLDIzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBIZXJiZXJ0IFZhbGVyaW8gUmllZGVsIDxodnJAZ251Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gTWljaGxtYXlyIDx0Ym1AY3lyaXVzLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9sZWRzLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworI2RlZmluZSBNVjIxMjBfTk9SX0JPT1RfQkFTRQkweGY0MDAwMDAwCisjZGVmaW5lIE1WMjEyMF9OT1JfQk9PVF9TSVpFCVNaXzUxMksKKworI2RlZmluZSBNVjIxMjBfR1BJT19SVENfSVJRCTMKKyNkZWZpbmUgTVYyMTIwX0dQSU9fS0VZX1JFU0VUCTE3CisjZGVmaW5lIE1WMjEyMF9HUElPX0tFWV9QT1dFUgkxOAorI2RlZmluZSBNVjIxMjBfR1BJT19QT1dFUl9PRkYJMTkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEV0aGVybmV0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBtdjIxMjBfZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIG12MjEyMF9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIG12MjEyMF9wYXJ0aXRpb25zW10gPSB7CisJeworCQkubmFtZQk9ICJmaXJtd2FyZSIsCisJCS5zaXplCT0gMHgwMDA4MDAwMCwKKwkJLm9mZnNldAk9IDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIG12MjEyMF9ub3JfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMSwKKwkucGFydHMJCT0gbXYyMTIwX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRShtdjIxMjBfcGFydGl0aW9ucykKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXYyMTIwX25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IE1WMjEyMF9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gTVYyMTIwX05PUl9CT09UX0JBU0UgKyBNVjIxMjBfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjIxMjBfbm9yX2ZsYXNoID0geworCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXYyMTIwX25vcl9mbGFzaF9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gJm12MjEyMF9ub3JfZmxhc2hfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIG12MjEyMF9idXR0b25zW10gPSB7CisJeworCQkuY29kZQkJPSBLRVlfUkVTVEFSVCwKKwkJLmdwaW8JCT0gTVYyMTIwX0dQSU9fS0VZX1JFU0VULAorCQkuZGVzYwkJPSAicmVzZXQiLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwgeworCQkuY29kZQkJPSBLRVlfUE9XRVIsCisJCS5ncGlvCQk9IE1WMjEyMF9HUElPX0tFWV9QT1dFUiwKKwkJLmRlc2MJCT0gInBvd2VyIiwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIG12MjEyMF9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IG12MjEyMF9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUobXYyMTIwX2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXYyMTIwX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXYyMTIwX2J1dHRvbl9kYXRhLAorCX0sCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSBtdjIxMjBfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogU3lzIHN0YXR1cyBMRUQgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogU3lzIGVycm9yIExFRCAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBPdmVyVGVtcCBpbnRlcnJ1cHQgKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogUlRDIGludGVycnVwdCAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBWX0xFRCA1ViAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBWX0xFRCAzLjNWICovCisJeyAgNiwgTVBQX1VOVVNFRCB9LAorCXsgIDcsIE1QUF9VTlVTRUQgfSwKKwl7ICA4LCBNUFBfR1BJTyB9LAkJLyogU0FUQSAwIGZhaWwgTEVEICovCisJeyAgOSwgTVBQX0dQSU8gfSwJCS8qIFNBVEEgMSBmYWlsIExFRCAqLworCXsgMTAsIE1QUF9VTlVTRUQgfSwKKwl7IDExLCBNUFBfVU5VU0VEIH0sCisJeyAxMiwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgcHJlc2VuY2UgKi8KKwl7IDEzLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBwcmVzZW5jZSAqLworCXsgMTQsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIGFjdGl2ZSAqLworCXsgMTUsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIGFjdGl2ZSAqLworCXsgMTYsIE1QUF9VTlVTRUQgfSwKKwl7IDE3LCBNUFBfR1BJTyB9LAkJLyogUmVzZXQgYnV0dG9uICovCisJeyAxOCwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIGJ1dHRvbiAqLworCXsgMTksIE1QUF9HUElPIH0sCQkvKiBQb3dlciBvZmYgKi8KKwl7IC0xIH0sCit9OworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgbXYyMTIwX2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oInBjZjg1NjMiLCAweDUxKSwKKwkuaXJxCT0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgbXYyMTIwX2xlZF9waW5zW10gPSB7CisJeworCQkubmFtZQkJCT0gIm12MjEyMDpibHVlOmhlYWx0aCIsCisJCS5ncGlvCQkJPSAwLAorCX0sCisJeworCQkubmFtZQkJCT0gIm12MjEyMDpyZWQ6aGVhbHRoIiwKKwkJLmdwaW8JCQk9IDEsCisJfSwKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOmxlZDpicmlnaHQiLAorCQkuZ3BpbwkJCT0gNCwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJkZWZhdWx0LW9uIiwKKwl9LAorCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6bGVkOmRpbW1lZCIsCisJCS5ncGlvCQkJPSA1LAorCX0sCisJeworCQkubmFtZQkJCT0gIm12MjEyMDpyZWQ6c2F0YTAiLAorCQkuZ3BpbwkJCT0gOCwKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwl9LAorCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6cmVkOnNhdGExIiwKKwkJLmdwaW8JCQk9IDksCisJCS5hY3RpdmVfbG93CQk9IDEsCisJfSwKKworfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2xlZF9wbGF0Zm9ybV9kYXRhIG12MjEyMF9sZWRfZGF0YSA9IHsKKwkubGVkcwkJPSBtdjIxMjBfbGVkX3BpbnMsCisJLm51bV9sZWRzCT0gQVJSQVlfU0laRShtdjIxMjBfbGVkX3BpbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXYyMTIwX2xlZHMgPSB7CisJLm5hbWUJPSAibGVkcy1ncGlvIiwKKwkuaWQJPSAtMSwKKwkuZGV2CT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjIxMjBfbGVkX2RhdGEsCisJfQorfTsKKworc3RhdGljIHZvaWQgbXYyMTIwX3Bvd2VyX29mZih2b2lkKQoreworCXByX2luZm8oIiVzOiB0cmlnZ2VyaW5nIHBvd2VyLW9mZi4uLlxuIiwgX19mdW5jX18pOworCWdwaW9fc2V0X3ZhbHVlKE1WMjEyMF9HUElPX1BPV0VSX09GRiwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtdjIxMjBfaW5pdCh2b2lkKQoreworCS8qIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKG12MjEyMF9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9laGNpMV9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmbXYyMTIwX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CisJb3Jpb241eF9zYXRhX2luaXQoJm12MjEyMF9zYXRhX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oTVYyMTIwX05PUl9CT09UX0JBU0UsIE1WMjEyMF9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12MjEyMF9ub3JfZmxhc2gpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjIxMjBfYnV0dG9uX2RldmljZSk7CisKKwlpZiAoZ3Bpb19yZXF1ZXN0KE1WMjEyMF9HUElPX1JUQ19JUlEsICJydGMiKSA9PSAwKSB7CisJCWlmIChncGlvX2RpcmVjdGlvbl9pbnB1dChNVjIxMjBfR1BJT19SVENfSVJRKSA9PSAwKQorCQkJbXYyMTIwX2kyY19ydGMuaXJxID0gZ3Bpb190b19pcnEoTVYyMTIwX0dQSU9fUlRDX0lSUSk7CisJCWVsc2UKKwkJCWdwaW9fZnJlZShNVjIxMjBfR1BJT19SVENfSVJRKTsKKwl9CisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJm12MjEyMF9pMmNfcnRjLCAxKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12MjEyMF9sZWRzKTsKKworCS8qIHJlZ2lzdGVyIG12MjEyMCBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCisJaWYgKGdwaW9fcmVxdWVzdChNVjIxMjBfR1BJT19QT1dFUl9PRkYsICJQT1dFUk9GRiIpICE9IDAgfHwKKwkgICAgZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KE1WMjEyMF9HUElPX1BPV0VSX09GRiwgMSkgIT0gMCkKKwkJcHJfZXJyKCJtdjIxMjA6IGZhaWxlZCB0byBzZXR1cCBwb3dlci1vZmYgR1BJT1xuIik7CisJcG1fcG93ZXJfb2ZmID0gbXYyMTIwX3Bvd2VyX29mZjsKK30KKworLyogV2FybmluZzogSFAgdXNlcyBhIHdyb25nIG1hY2gtdHlwZSAoPTUyNikgaW4gdGhlaXIgYm9vdGxvYWRlciAqLworTUFDSElORV9TVEFSVChNVjIxMjAsICJIUCBNZWRpYSBWYXVsdCBtdjIxMjAiKQorCS8qIE1haW50YWluZXI6IE1hcnRpbiBNaWNobG1heXIgPHRibUBjeXJpdXMuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBtdjIxMjBfaW5pdCwKKwkubWFwX2lvCQk9IG9yaW9uNXhfbWFwX2lvLAorCS5pbml0X2lycQk9IG9yaW9uNXhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZvcmlvbjV4X3RpbWVyLAorCS5maXh1cAkJPSB0YWdfZml4dXBfbWVtMzIKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMKaW5kZXggOWQ1ZDM5Zi4uMjU2YTRmNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9wY2kuYwpAQCAtMTUyLDYgKzE1Miw4IEBACiAJaWYgKGRldiA9PSBNVjg4RjUxODFfREVWX0lEIHx8IGRldiA9PSBNVjg4RjUxODJfREVWX0lEKSB7CiAJCXByaW50ayhLRVJOX05PVElDRSAiQXBwbHlpbmcgT3Jpb24tMS9Pcmlvbi1OQVMgUENJZSBjb25maWcgIgogCQkJCSAgICJyZWFkIHRyYW5zYWN0aW9uIHdvcmthcm91bmRcbiIpOworCQlvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKE9SSU9ONVhfUENJRV9XQV9QSFlTX0JBU0UsCisJCQkJCSAgT1JJT041WF9QQ0lFX1dBX1NJWkUpOwogCQlwY2llX29wcy5yZWFkID0gcGNpZV9yZF9jb25mX3dhOwogCX0KIApAQCAtMjQwLDEzICsyNDIsMTMgQEAKICAqIFBDSSBBZGRyZXNzIERlY29kZSBXaW5kb3dzIHJlZ2lzdGVycwogICovCiAjZGVmaW5lIFBDSV9CQVJfU0laRV9ERFJfQ1MobikJKCgobikgPT0gMCkgPyBPUklPTjVYX1BDSV9SRUcoMHhjMDgpIDogXAotCQkJCSgobikgPT0gMSkgPyBPUklPTjVYX1BDSV9SRUcoMHhkMDgpIDogIFwKLQkJCQkoKG4pID09IDIpID8gT1JJT041WF9QQ0lfUkVHKDB4YzBjKSA6ICBcCi0JCQkJKChuKSA9PSAzKSA/IE9SSU9ONVhfUENJX1JFRygweGQwYykgOiAwKQotI2RlZmluZSBQQ0lfQkFSX1JFTUFQX0REUl9DUyhuKQkoKChuKSA9PTApID8gT1JJT041WF9QQ0lfUkVHKDB4YzQ4KSA6ICBcCi0JCQkJKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQ0OCkgOiAgXAotCQkJCSgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjNGMpIDogIFwKLQkJCQkoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDRjKSA6IDApCisJCQkJICgobikgPT0gMSkgPyBPUklPTjVYX1BDSV9SRUcoMHhkMDgpIDogXAorCQkJCSAoKG4pID09IDIpID8gT1JJT041WF9QQ0lfUkVHKDB4YzBjKSA6IFwKKwkJCQkgKChuKSA9PSAzKSA/IE9SSU9ONVhfUENJX1JFRygweGQwYykgOiAwKQorI2RlZmluZSBQQ0lfQkFSX1JFTUFQX0REUl9DUyhuKQkoKChuKSA9PSAwKSA/IE9SSU9ONVhfUENJX1JFRygweGM0OCkgOiBcCisJCQkJICgobikgPT0gMSkgPyBPUklPTjVYX1BDSV9SRUcoMHhkNDgpIDogXAorCQkJCSAoKG4pID09IDIpID8gT1JJT041WF9QQ0lfUkVHKDB4YzRjKSA6IFwKKwkJCQkgKChuKSA9PSAzKSA/IE9SSU9ONVhfUENJX1JFRygweGQ0YykgOiAwKQogI2RlZmluZSBQQ0lfQkFSX0VOQUJMRQkJT1JJT041WF9QQ0lfUkVHKDB4YzNjKQogI2RlZmluZSBQQ0lfQUREUl9ERUNPREVfQ1RSTAlPUklPTjVYX1BDSV9SRUcoMHhkM2MpCiAKQEAgLTI2NCw5ICsyNjYsMTEgQEAKICAqLwogc3RhdGljIERFRklORV9TUElOTE9DSyhvcmlvbjV4X3BjaV9sb2NrKTsKIAorc3RhdGljIGludCBvcmlvbjV4X3BjaV9jYXJkYnVzX21vZGU7CisKIHN0YXRpYyBpbnQgb3Jpb241eF9wY2lfbG9jYWxfYnVzX25yKHZvaWQpCiB7Ci0JdTMyIGNvbmYgPSBvcmlvbjV4X3JlYWQoUENJX1AyUF9DT05GKTsKKwl1MzIgY29uZiA9IHJlYWRsKFBDSV9QMlBfQ09ORik7CiAJcmV0dXJuKChjb25mICYgUENJX1AyUF9CVVNfTUFTSykgPj4gUENJX1AyUF9CVVNfT0ZGUyk7CiB9CiAKQEAgLTI3NiwxMSArMjgwLDExIEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmb3Jpb241eF9wY2lfbG9jaywgZmxhZ3MpOwogCi0Jb3Jpb241eF93cml0ZShQQ0lfQ09ORl9BRERSLCBQQ0lfQ09ORl9CVVMoYnVzKSB8Ci0JCQlQQ0lfQ09ORl9ERVYoZGV2KSB8IFBDSV9DT05GX1JFRyh3aGVyZSkgfAotCQkJUENJX0NPTkZfRlVOQyhmdW5jKSB8IFBDSV9DT05GX0FERFJfRU4pOworCXdyaXRlbChQQ0lfQ09ORl9CVVMoYnVzKSB8CisJCVBDSV9DT05GX0RFVihkZXYpIHwgUENJX0NPTkZfUkVHKHdoZXJlKSB8CisJCVBDSV9DT05GX0ZVTkMoZnVuYykgfCBQQ0lfQ09ORl9BRERSX0VOLCBQQ0lfQ09ORl9BRERSKTsKIAotCSp2YWwgPSBvcmlvbjV4X3JlYWQoUENJX0NPTkZfREFUQSk7CisJKnZhbCA9IHJlYWRsKFBDSV9DT05GX0RBVEEpOwogCiAJaWYgKHNpemUgPT0gMSkKIAkJKnZhbCA9ICgqdmFsID4+ICg4Kih3aGVyZSAmIDB4MykpKSAmIDB4ZmY7CkBAIC0zMDAsOSArMzA0LDkgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZvcmlvbjV4X3BjaV9sb2NrLCBmbGFncyk7CiAKLQlvcmlvbjV4X3dyaXRlKFBDSV9DT05GX0FERFIsIFBDSV9DT05GX0JVUyhidXMpIHwKLQkJCVBDSV9DT05GX0RFVihkZXYpIHwgUENJX0NPTkZfUkVHKHdoZXJlKSB8Ci0JCQlQQ0lfQ09ORl9GVU5DKGZ1bmMpIHwgUENJX0NPTkZfQUREUl9FTik7CisJd3JpdGVsKFBDSV9DT05GX0JVUyhidXMpIHwKKwkJUENJX0NPTkZfREVWKGRldikgfCBQQ0lfQ09ORl9SRUcod2hlcmUpIHwKKwkJUENJX0NPTkZfRlVOQyhmdW5jKSB8IFBDSV9DT05GX0FERFJfRU4sIFBDSV9DT05GX0FERFIpOwogCiAJaWYgKHNpemUgPT0gNCkgewogCQlfX3Jhd193cml0ZWwodmFsLCBQQ0lfQ09ORl9EQVRBKTsKQEAgLTMxOSwxNCArMzIzLDMwIEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBvcmlvbjV4X3BjaV92YWxpZF9jb25maWcoaW50IGJ1cywgdTMyIGRldmZuKQoreworCWlmIChidXMgPT0gb3Jpb241eF9wY2lfbG9jYWxfYnVzX25yKCkpIHsKKwkJLyoKKwkJICogRG9uJ3QgZ28gb3V0IGZvciBsb2NhbCBkZXZpY2UKKwkJICovCisJCWlmIChQQ0lfU0xPVChkZXZmbikgPT0gMCAmJiBQQ0lfRlVOQyhkZXZmbikgIT0gMCkKKwkJCXJldHVybiAwOworCisJCS8qCisJCSAqIFdoZW4gdGhlIFBDSSBzaWduYWxzIGFyZSBkaXJlY3RseSBjb25uZWN0ZWQgdG8gYQorCQkgKiBDYXJkYnVzIHNsb3QsIGlnbm9yZSBhbGwgYnV0IGRldmljZSBJRHMgMCBhbmQgMS4KKwkJICovCisJCWlmIChvcmlvbjV4X3BjaV9jYXJkYnVzX21vZGUgJiYgUENJX1NMT1QoZGV2Zm4pID4gMSkKKwkJCXJldHVybiAwOworCX0KKworCXJldHVybiAxOworfQorCiBzdGF0aWMgaW50IG9yaW9uNXhfcGNpX3JkX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAogCQkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiAqdmFsKQogewotCS8qCi0JICogRG9uJ3QgZ28gb3V0IGZvciBsb2NhbCBkZXZpY2UKLQkgKi8KLQlpZiAoYnVzLT5udW1iZXIgPT0gb3Jpb241eF9wY2lfbG9jYWxfYnVzX25yKCkgJiYKLQkgICAgUENJX1NMT1QoZGV2Zm4pID09IDAgJiYgUENJX0ZVTkMoZGV2Zm4pICE9IDApIHsKKwlpZiAoIW9yaW9uNXhfcGNpX3ZhbGlkX2NvbmZpZyhidXMtPm51bWJlciwgZGV2Zm4pKSB7CiAJCSp2YWwgPSAweGZmZmZmZmZmOwogCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwogCX0KQEAgLTMzOCw4ICszNTgsNyBAQAogc3RhdGljIGludCBvcmlvbjV4X3BjaV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKIAkJCQlpbnQgd2hlcmUsIGludCBzaXplLCB1MzIgdmFsKQogewotCWlmIChidXMtPm51bWJlciA9PSBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIoKSAmJgotCSAgICBQQ0lfU0xPVChkZXZmbikgPT0gMCAmJiBQQ0lfRlVOQyhkZXZmbikgIT0gMCkKKwlpZiAoIW9yaW9uNXhfcGNpX3ZhbGlkX2NvbmZpZyhidXMtPm51bWJlciwgZGV2Zm4pKQogCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwogCiAJcmV0dXJuIG9yaW9uNXhfcGNpX2h3X3dyX2NvbmYoYnVzLT5udW1iZXIsIFBDSV9TTE9UKGRldmZuKSwKQEAgLTM1Myw5ICszNzIsOSBAQAogCiBzdGF0aWMgdm9pZCBfX2luaXQgb3Jpb241eF9wY2lfc2V0X2J1c19ucihpbnQgbnIpCiB7Ci0JdTMyIHAycCA9IG9yaW9uNXhfcmVhZChQQ0lfUDJQX0NPTkYpOworCXUzMiBwMnAgPSByZWFkbChQQ0lfUDJQX0NPTkYpOwogCi0JaWYgKG9yaW9uNXhfcmVhZChQQ0lfTU9ERSkgJiBQQ0lfTU9ERV9QQ0lYKSB7CisJaWYgKHJlYWRsKFBDSV9NT0RFKSAmIFBDSV9NT0RFX1BDSVgpIHsKIAkJLyoKIAkJICogUENJLVggbW9kZQogCQkgKi8KQEAgLTM3Miw3ICszOTEsNyBAQAogCQkgKi8KIAkJcDJwICY9IH5QQ0lfUDJQX0JVU19NQVNLOwogCQlwMnAgfD0gKG5yIDw8IFBDSV9QMlBfQlVTX09GRlMpOwotCQlvcmlvbjV4X3dyaXRlKFBDSV9QMlBfQ09ORiwgcDJwKTsKKwkJd3JpdGVsKHAycCwgUENJX1AyUF9DT05GKTsKIAl9CiB9CiAKQEAgLTM5OSw3ICs0MTgsNyBAQAogCSAqIEZpcnN0LCBkaXNhYmxlIHdpbmRvd3MuCiAJICovCiAJd2luX2VuYWJsZSA9IDB4ZmZmZmZmZmY7Ci0Jb3Jpb241eF93cml0ZShQQ0lfQkFSX0VOQUJMRSwgd2luX2VuYWJsZSk7CisJd3JpdGVsKHdpbl9lbmFibGUsIFBDSV9CQVJfRU5BQkxFKTsKIAogCS8qCiAJICogU2V0dXAgd2luZG93cyBmb3IgRERSIGJhbmtzLgpAQCAtNDI1LDEwICs0NDQsMTAgQEAKIAkJICovCiAJCXJlZyA9IFBDSV9DT05GX1JFR19CQVJfSElfQ1MoY3MtPmNzX2luZGV4KTsKIAkJb3Jpb241eF9wY2lfaHdfd3JfY29uZihidXMsIDAsIGZ1bmMsIHJlZywgNCwgMCk7Ci0JCW9yaW9uNXhfd3JpdGUoUENJX0JBUl9TSVpFX0REUl9DUyhjcy0+Y3NfaW5kZXgpLAotCQkJCShjcy0+c2l6ZSAtIDEpICYgMHhmZmZmZjAwMCk7Ci0JCW9yaW9uNXhfd3JpdGUoUENJX0JBUl9SRU1BUF9ERFJfQ1MoY3MtPmNzX2luZGV4KSwKLQkJCQljcy0+YmFzZSAmIDB4ZmZmZmYwMDApOworCQl3cml0ZWwoKGNzLT5zaXplIC0gMSkgJiAweGZmZmZmMDAwLAorCQkJUENJX0JBUl9TSVpFX0REUl9DUyhjcy0+Y3NfaW5kZXgpKTsKKwkJd3JpdGVsKGNzLT5iYXNlICYgMHhmZmZmZjAwMCwKKwkJCVBDSV9CQVJfUkVNQVBfRERSX0NTKGNzLT5jc19pbmRleCkpOwogCiAJCS8qCiAJCSAqIEVuYWJsZSBkZWNvZGUgd2luZG93IGZvciB0aGlzIGNoaXAgc2VsZWN0LgpAQCAtNDM5LDcgKzQ1OCw3IEBACiAJLyoKIAkgKiBSZS1lbmFibGUgZGVjb2RlIHdpbmRvd3MuCiAJICovCi0Jb3Jpb241eF93cml0ZShQQ0lfQkFSX0VOQUJMRSwgd2luX2VuYWJsZSk7CisJd3JpdGVsKHdpbl9lbmFibGUsIFBDSV9CQVJfRU5BQkxFKTsKIAogCS8qCiAJICogRGlzYWJsZSBhdXRvbWF0aWMgdXBkYXRlIG9mIGFkZHJlc3MgcmVtYXBpbmcgd2hlbiB3cml0aW5nIHRvIEJBUnMuCkBAIC01MjIsNiArNTQxLDExIEBACiB9CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQQ0lfQU5ZX0lELCByY19wY2lfZml4dXApOwogCit2b2lkIF9faW5pdCBvcmlvbjV4X3BjaV9zZXRfY2FyZGJ1c19tb2RlKHZvaWQpCit7CisJb3Jpb241eF9wY2lfY2FyZGJ1c19tb2RlID0gMTsKK30KKwogaW50IF9faW5pdCBvcmlvbjV4X3BjaV9zeXNfc2V0dXAoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1meG8tc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MGUzNjUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1meG8tc2V0dXAuYwpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jCisgKgorICogTWFydmVsbCBPcmlvbi1Wb0lQIEZYTyBSZWZlcmVuY2UgRGVzaWduIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9sZWRzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBSRC04OEY1MTgxTCBGWE8gSW5mbworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogOE0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFJEODhGNTE4MUxfRlhPX05PUl9CT09UX0JBU0UJCTB4ZmY4MDAwMDAKKyNkZWZpbmUgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfU0laRQkJU1pfOE0KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDhNIE5PUiBGbGFzaCBvbiBEZXZpY2UgYnVzIEJvb3QgY2hpcCBzZWxlY3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfQkFTRSArCisJCQkgIFJEODhGNTE4MUxfRlhPX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnJkODhmNTE4MWxfZnhvX25vcl9ib290X2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2UsCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbCBTZXR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgcmQ4OGY1MTgxbF9meG9fbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogTEVEMSBDYXJkQnVzIExFRCAoZnJvbnQgcGFuZWwpICovCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIFBDSV9pbnRBICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIEhhcmQgUmVzZXQgLyBGYWN0b3J5IEluaXQqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBGWFMgb3IgREFBIHNlbGVjdCAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBMRUQ2IC0gcGhvbmUgTEVEIChmcm9udCBwYW5lbCkgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogTEVENSAtIHBob25lIExFRCAoZnJvbnQgcGFuZWwpICovCisJeyAgNiwgTVBQX1BDSV9DTEsgfSwJCS8qIENQVSBQQ0kgcmVmY2xrICovCisJeyAgNywgTVBQX1BDSV9DTEsgfSwJCS8qIFBDSS9QQ0llIHJlZmNsayAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiBDYXJkQnVzIHJlc2V0ICovCisJeyAgOSwgTVBQX0dQSU8gfSwJCS8qIEdFX1JYRVJSICovCisJeyAxMCwgTVBQX0dQSU8gfSwJCS8qIExFRDIgTWluaVBDSSBMRUQgKGZyb250IHBhbmVsKSAqLworCXsgMTEsIE1QUF9HUElPIH0sCQkvKiBMaWZlbGluZSBjb250cm9sICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgxbF9meG9fZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmQ4OGY1MTgxbF9meG9faW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYocmQ4OGY1MTgxbF9meG9fbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJnJkODhmNTE4MWxfZnhvX2V0aF9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFJEODhGNTE4MUxfRlhPX05PUl9CT09UX0JBU0UsCisJCQkJICAgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZyZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0CityZDg4ZjUxODFsX2Z4b19wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCS8qCisJICogTWluaS1QQ0kgLyBDYXJkYnVzIHNsb3QuCisJICovCisJcmV0dXJuIGdwaW9fdG9faXJxKDEpOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSByZDg4ZjUxODFsX2Z4b19wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSAyLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gcmQ4OGY1MTgxbF9meG9fcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCByZDg4ZjUxODFsX2Z4b19wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3JkODhmNTE4MWxfZnhvKCkpIHsKKwkJb3Jpb241eF9wY2lfc2V0X2NhcmRidXNfbW9kZSgpOworCQlwY2lfY29tbW9uX2luaXQoJnJkODhmNTE4MWxfZnhvX3BjaSk7CisJfQorCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwocmQ4OGY1MTgxbF9meG9fcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKFJEODhGNTE4MUxfRlhPLCAiTWFydmVsbCBPcmlvbi1Wb0lQIEZYTyBSZWZlcmVuY2UgRGVzaWduIikKKwkvKiBNYWludGFpbmVyOiBOaWNvbGFzIFBpdHJlIDxuaWNvQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSByZDg4ZjUxODFsX2Z4b19pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1nZS1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZ2Utc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTY0NDdkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZ2Utc2V0dXAuYwpAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWdlLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIE9yaW9uLVZvSVAgR0UgUmVmZXJlbmNlIERlc2lnbiBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbGVkcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUkQtODhGNTE4MUwgR0UgSW5mbworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogMTZNIE5PUiBmbGFzaCBEZXZpY2UgYnVzIGJvb3QgY2hpcCBzZWxlY3QKKyAqLworI2RlZmluZSBSRDg4RjUxODFMX0dFX05PUl9CT09UX0JBU0UJCTB4ZmYwMDAwMDAKKyNkZWZpbmUgUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9TSVpFCQlTWl8xNk0KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDE2TSBOT1IgRmxhc2ggb24gRGV2aWNlIGJ1cyBCb290IGNoaXAgc2VsZWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHJkODhmNTE4MWxfZ2Vfbm9yX2Jvb3RfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcmQ4OGY1MTgxbF9nZV9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCQk9IFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfQkFTRSArCisJCQkgIFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSByZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoID0geworCS5uYW1lCQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZyZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmcmQ4OGY1MTgxbF9nZV9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSByZDg4ZjUxODFsX2dlX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIExFRDEgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogTEVENSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBMRUQ0ICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIExFRDMgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogUENJX2ludEEgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogUlRDIGludGVycnVwdCAqLworCXsgIDYsIE1QUF9QQ0lfQ0xLIH0sCQkvKiBDUFUgUENJIHJlZmNsayAqLworCXsgIDcsIE1QUF9QQ0lfQ0xLIH0sCQkvKiBQQ0kvUENJZSByZWZjbGsgKi8KKwl7ICA4LCBNUFBfR1BJTyB9LAkJLyogODhlNjEzMSBpbnRlcnJ1cHQgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogR0VfUlhFUlIgKi8KKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogUENJX2ludEIgKi8KKwl7IDExLCBNUFBfR1BJTyB9LAkJLyogTEVEMiAqLworCXsgMTIsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNF0gKi8KKwl7IDEzLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzVdICovCisJeyAxNCwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs2XSAqLworCXsgMTUsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbN10gKi8KKwl7IDE2LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzRdICovCisJeyAxNywgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs1XSAqLworCXsgMTgsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNl0gKi8KKwl7IDE5LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzddICovCisJeyAtMSB9LAorfTsKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHJkODhmNTE4MWxfZ2VfZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgcmQ4OGY1MTgxbF9nZV9pMmNfcnRjID0geworCUkyQ19CT0FSRF9JTkZPKCJkczEzMzgiLCAweDY4KSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZDg4ZjUxODFsX2dlX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHJkODhmNTE4MWxfZ2VfbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJnJkODhmNTE4MWxfZ2VfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBSRDg4RjUxODFMX0dFX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcmQ4OGY1MTgxbF9nZV9ub3JfYm9vdF9mbGFzaCk7CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAmcmQ4OGY1MTgxbF9nZV9pMmNfcnRjLCAxKTsKK30KKworc3RhdGljIGludCBfX2luaXQKK3JkODhmNTE4MWxfZ2VfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIENhcmRidXMgc2xvdC4KKwkgKi8KKwlpZiAocGluID09IDEpCisJCXJldHVybiBncGlvX3RvX2lycSg0KTsKKwllbHNlCisJCXJldHVybiBncGlvX3RvX2lycSgxMCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHJkODhmNTE4MWxfZ2VfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IHJkODhmNTE4MWxfZ2VfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCByZDg4ZjUxODFsX2dlX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfcmQ4OGY1MTgxbF9nZSgpKSB7CisJCW9yaW9uNXhfcGNpX3NldF9jYXJkYnVzX21vZGUoKTsKKwkJcGNpX2NvbW1vbl9pbml0KCZyZDg4ZjUxODFsX2dlX3BjaSk7CisJfQorCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwocmQ4OGY1MTgxbF9nZV9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY1MTgxTF9HRSwgIk1hcnZlbGwgT3Jpb24tVm9JUCBHRSBSZWZlcmVuY2UgRGVzaWduIikKKwkvKiBNYWludGFpbmVyOiBMZW5uZXJ0IEJ1eXRlbmhlayA8YnV5dGVuaEBtYXJ2ZWxsLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gcmQ4OGY1MTgxbF9nZV9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgyLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgyLXNldHVwLmMKaW5kZXggODFhYmMxMC4uMTBhZTYyOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4Mi1zZXR1cC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODItc2V0dXAuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KICNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBSRC04OEY1MTgyIEluZm8KQEAgLTEyNSw2ICsxMjYsNyBAQAogCiAJCWxlZHNfZXZlbnQgPSByZDg4ZjUxODJfZGJnbGVkX2V2ZW50OwogCX0KKwogCXJldHVybiAwOwogfQogCkBAIC0yMjAsNyArMjIyLDYgQEAKIAogc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHJkODhmNTE4Ml9ldGhfZGF0YSA9IHsKIAkucGh5X2FkZHIJPSA4LAotCS5mb3JjZV9waHlfYWRkciA9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTIzNCwxNSArMjM1LDM0IEBACiAgKiBTYXRhCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHJkODhmNTE4Ml9zYXRhX2RhdGEgPSB7Ci0JLm5fcG9ydHMgICAgICAgID0gMiwKKwkubl9wb3J0cwk9IDIsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdlbmVyYWwgU2V0dXAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcmQ4OGY1MTgyX2RldmljZXNbXSBfX2luaXRkYXRhID0gewotCSZyZDg4ZjUxODJfbm9yX2ZsYXNoLAorc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHJkODhmNTE4Ml9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBEZWJ1ZyBMZWQgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogUmVzZXQgU3dpdGNoICovCisJeyAgMiwgTVBQX1VOVVNFRCB9LAorCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBSVEMgSW50ICovCisJeyAgNCwgTVBQX0dQSU8gfSwKKwl7ICA1LCBNUFBfR1BJTyB9LAorCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QSAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QiAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBwcmVzZW5jZSAqLworCXsgMTMsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIHByZXNlbmNlICovCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VOVVNFRCB9LAorCXsgMTcsIE1QUF9VTlVTRUQgfSwKKwl7IDE4LCBNUFBfVU5VU0VEIH0sCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCByZDg4ZjUxODJfaW5pdCh2b2lkKQpAQCAtMjUyLDM1ICsyNzIsOSBAQAogCSAqLwogCW9yaW9uNXhfaW5pdCgpOwogCi0JLyoKLQkgKiBTZXR1cCB0aGUgQ1BVIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIG91ciBkZXZpY2VzCi0JICovCi0Jb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgyX05PUl9CT09UX0JBU0UsCi0JCQkJUkQ4OEY1MTgyX05PUl9CT09UX1NJWkUpOwotCW9yaW9uNXhfc2V0dXBfZGV2MV93aW4oUkQ4OEY1MTgyX05PUl9CQVNFLCBSRDg4RjUxODJfTk9SX1NJWkUpOworCW9yaW9uNXhfbXBwX2NvbmYocmQ4OGY1MTgyX21wcF9tb2Rlcyk7CiAKIAkvKgotCSAqIE9wZW4gYSBzcGVjaWFsIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIHRoZSBQQ0llIFdBLgotCSAqLwotCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKLQkJCQlPUklPTjVYX1BDSUVfV0FfU0laRSk7Ci0KLQkvKgotCSAqIFNldHVwIE11bHRpcGxleGluZyBQaW5zIC0tCi0JICogTVBQWzBdIERlYnVnIExlZCAoR1BJTyAtIE91dCkKLQkgKiBNUFBbMV0gRGVidWcgTGVkIChHUElPIC0gT3V0KQotCSAqIE1QUFsyXSBOL0EKLQkgKiBNUFBbM10gUlRDX0ludCAoR1BJTyAtIEluKQotCSAqIE1QUFs0XSBHUElPCi0JICogTVBQWzVdIEdQSU8KLQkgKiBNUFBbNl0gUENJX2ludEEgKEdQSU8gLSBJbikKLQkgKiBNUFBbN10gUENJX2ludEIgKEdQSU8gLSBJbikKLQkgKiBNUFBbOC0xMV0gTi9BCi0JICogTVBQWzEyXSBTQVRBIDAgcHJlc2VuY2UgSW5kaWNhdGlvbgotCSAqIE1QUFsxM10gU0FUQSAxIHByZXNlbmNlIEluZGljYXRpb24KLQkgKiBNUFBbMTRdIFNBVEEgMCBhY3RpdmUgSW5kaWNhdGlvbgotCSAqIE1QUFsxNV0gU0FUQSAxIGFjdGl2ZSBpbmRpY2F0aW9uCi0JICogTVBQWzE2LTE5XSBOb3QgdXNlZAogCSAqIE1QUFsyMF0gUENJIENsb2NrIHRvIE1WODhGNTE4MgogCSAqIE1QUFsyMV0gUENJIENsb2NrIHRvIG1pbmkgUENJIENPTjExCiAJICogTVBQWzIyXSBVU0IgMCBvdmVyIGN1cnJlbnQgaW5kaWNhdGlvbgpAQCAtMjg5LDE2ICsyODMsMjMgQEAKIAkgKiBNUFBbMjVdIFVTQiAwIG92ZXIgY3VycmVudCBlbmFibGUKIAkgKi8KIAotCW9yaW9uNXhfd3JpdGUoTVBQXzBfN19DVFJMLCAweDAwMDAwMDAzKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF84XzE1X0NUUkwsIDB4NTU1NTAwMDApOwotCW9yaW9uNXhfd3JpdGUoTVBQXzE2XzE5X0NUUkwsIDB4NTU1NSk7Ci0KLQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnMoMHgwMDAwMDBmYik7Ci0KLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhyZDg4ZjUxODJfZGV2aWNlcywgQVJSQVlfU0laRShyZDg4ZjUxODJfZGV2aWNlcykpOwotCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZyZDg4ZjUxODJfaTJjX3J0YywgMSk7CisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9laGNpMV9pbml0KCk7CiAJb3Jpb241eF9ldGhfaW5pdCgmcmQ4OGY1MTgyX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CiAJb3Jpb241eF9zYXRhX2luaXQoJnJkODhmNTE4Ml9zYXRhX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgyX05PUl9CT09UX0JBU0UsCisJCQkJICAgUkQ4OEY1MTgyX05PUl9CT09UX1NJWkUpOworCisJb3Jpb241eF9zZXR1cF9kZXYxX3dpbihSRDg4RjUxODJfTk9SX0JBU0UsIFJEODhGNTE4Ml9OT1JfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZyZDg4ZjUxODJfbm9yX2ZsYXNoKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZyZDg4ZjUxODJfaTJjX3J0YywgMSk7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoUkQ4OEY1MTgyLCAiTWFydmVsbCBPcmlvbi1OQVMgUmVmZXJlbmNlIERlc2lnbiIpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHMyMDktc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czIwOS1zZXR1cC5jCmluZGV4IDlhZmI0MWUuLmE5Y2VmOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czIwOS1zZXR1cC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czIwOS1zZXR1cC5jCkBAIC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorI2luY2x1ZGUgInRzeDA5LWNvbW1vbi5oIgogCiAjZGVmaW5lIFFOQVBfVFMyMDlfTk9SX0JPT1RfQkFTRSAweGY0MDAwMDAwCiAjZGVmaW5lIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSBTWl84TQpAQCAtNDcsNTIgKzQ5LDU0IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHFuYXBfdHMyMDlfcGFydGl0aW9uc1tdID0gewogCXsKLQkJLm5hbWUgICAgICAgPSAiVS1Cb290IiwKLQkJLnNpemUgICAgICAgPSAweDAwMDgwMDAwLAotCQkub2Zmc2V0ICAgICA9IDB4MDA3ODAwMDAsCi0JCS5tYXNrX2ZsYWdzID0gTVREX1dSSVRFQUJMRSwKKwkJLm5hbWUJCT0gIlUtQm9vdCIsCisJCS5zaXplCQk9IDB4MDAwODAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc4MDAwMCwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLAogCX0sIHsKLQkJLm5hbWUgICA9ICJLZXJuZWwiLAotCQkuc2l6ZSAgID0gMHgwMDIwMDAwMCwKLQkJLm9mZnNldCA9IDAsCisJCS5uYW1lCQk9ICJLZXJuZWwiLAorCQkuc2l6ZQkJPSAweDAwMjAwMDAwLAorCQkub2Zmc2V0CQk9IDAsCiAJfSwgewotCQkubmFtZSAgID0gIlJvb3RGUzEiLAotCQkuc2l6ZSAgID0gMHgwMDQwMDAwMCwKLQkJLm9mZnNldCA9IDB4MDAyMDAwMDAsCisJCS5uYW1lCQk9ICJSb290RlMxIiwKKwkJLnNpemUJCT0gMHgwMDQwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwMjAwMDAwLAogCX0sIHsKLQkJLm5hbWUgICA9ICJSb290RlMyIiwKLQkJLnNpemUgICA9IDB4MDAxMDAwMDAsCi0JCS5vZmZzZXQgPSAweDAwNjAwMDAwLAorCQkubmFtZQkJPSAiUm9vdEZTMiIsCisJCS5zaXplCQk9IDB4MDAxMDAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDYwMDAwMCwKIAl9LCB7Ci0JCS5uYW1lICAgPSAiVS1Cb290IENvbmZpZyIsCi0JCS5zaXplICAgPSAweDAwMDIwMDAwLAotCQkub2Zmc2V0ID0gMHgwMDc2MDAwMCwKKwkJLm5hbWUJCT0gIlUtQm9vdCBDb25maWciLAorCQkuc2l6ZQkJPSAweDAwMDIwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA3NjAwMDAsCiAJfSwgewotCQkubmFtZSAgICAgICA9ICJOQVMgQ29uZmlnIiwKLQkJLnNpemUgICAgICAgPSAweDAwMDYwMDAwLAotCQkub2Zmc2V0ICAgICA9IDB4MDA3MDAwMDAsCi0JCS5tYXNrX2ZsYWdzID0gTVREX1dSSVRFQUJMRSwKLQl9CisJCS5uYW1lCQk9ICJOQVMgQ29uZmlnIiwKKwkJLnNpemUJCT0gMHgwMDA2MDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNzAwMDAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHFuYXBfdHMyMDlfbm9yX2ZsYXNoX2RhdGEgPSB7Ci0JLndpZHRoICAgID0gMSwKLQkucGFydHMgICAgPSBxbmFwX3RzMjA5X3BhcnRpdGlvbnMsCi0JLm5yX3BhcnRzID0gQVJSQVlfU0laRShxbmFwX3RzMjA5X3BhcnRpdGlvbnMpCisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHFuYXBfdHMyMDlfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHFuYXBfdHMyMDlfcGFydGl0aW9ucykKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcW5hcF90czIwOV9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7Ci0JLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JLnN0YXJ0ID0gUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFLAotCS5lbmQgICA9IFFOQVBfVFMyMDlfTk9SX0JPT1RfQkFTRSArIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSAtIDEsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CT0gUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFLAorCS5lbmQJPSBRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UgKyBRTkFQX1RTMjA5X05PUl9CT09UX1NJWkUgLSAxLAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcW5hcF90czIwOV9ub3JfZmxhc2ggPSB7Ci0JLm5hbWUgICAgICAgICAgPSAicGh5c21hcC1mbGFzaCIsCi0JLmlkICAgICAgICAgICAgPSAwLAotCS5kZXYgICAgICAgICAgID0geyAucGxhdGZvcm1fZGF0YSA9ICZxbmFwX3RzMjA5X25vcl9mbGFzaF9kYXRhLCB9LAotCS5yZXNvdXJjZSAgICAgID0gJnFuYXBfdHMyMDlfbm9yX2ZsYXNoX3Jlc291cmNlLAotCS5udW1fcmVzb3VyY2VzID0gMSwKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnFuYXBfdHMyMDlfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSAmcW5hcF90czIwOV9ub3JfZmxhc2hfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSAxLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNjQsMTIgKzE2OCwxMiBAQAogfQogCiBzdGF0aWMgc3RydWN0IGh3X3BjaSBxbmFwX3RzMjA5X3BjaSBfX2luaXRkYXRhID0gewotCS5ucl9jb250cm9sbGVycyA9IDIsCi0JLnByZWluaXQgICAgICAgID0gcW5hcF90czIwOV9wY2lfcHJlaW5pdCwKLQkuc3dpenpsZSAgICAgICAgPSBwY2lfc3RkX3N3aXp6bGUsCi0JLnNldHVwICAgICAgICAgID0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAotCS5zY2FuICAgICAgICAgICA9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKLQkubWFwX2lycSAgICAgICAgPSBxbmFwX3RzMjA5X3BjaV9tYXBfaXJxLAorCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnByZWluaXQJPSBxbmFwX3RzMjA5X3BjaV9wcmVpbml0LAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gcW5hcF90czIwOV9wY2lfbWFwX2lycSwKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IHFuYXBfdHMyMDlfcGNpX2luaXQodm9pZCkKQEAgLTE4Myw5NiArMTg3LDYgQEAKIHN1YnN5c19pbml0Y2FsbChxbmFwX3RzMjA5X3BjaV9pbml0KTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBFdGhlcm5ldAotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBxbmFwX3RzMjA5X2V0aF9kYXRhID0gewotCS5waHlfYWRkciAgICAgICA9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2hleF9uaWJibGUoY2hhciBuKQotewotCWlmIChuID49ICcwJyAmJiBuIDw9ICc5JykKLQkJcmV0dXJuIG4gLSAnMCc7Ci0KLQlpZiAobiA+PSAnQScgJiYgbiA8PSAnRicpCi0JCXJldHVybiBuIC0gJ0EnICsgMTA7Ci0KLQlpZiAobiA+PSAnYScgJiYgbiA8PSAnZicpCi0JCXJldHVybiBuIC0gJ2EnICsgMTA7Ci0KLQlyZXR1cm4gLTE7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2hleF9ieXRlKGNvbnN0IGNoYXIgKmIpCi17Ci0JaW50IGhpOwotCWludCBsbzsKLQotCWhpID0gcGFyc2VfaGV4X25pYmJsZShiWzBdKTsKLQlsbyA9IHBhcnNlX2hleF9uaWJibGUoYlsxXSk7Ci0KLQlpZiAoaGkgPCAwIHx8IGxvIDwgMCkKLQkJcmV0dXJuIC0xOwotCi0JcmV0dXJuIChoaSA8PCA0KSB8IGxvOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBjaGVja19tYWNfYWRkcihjb25zdCBjaGFyICphZGRyX3N0cikKLXsKLQl1X2ludDhfdCBhZGRyWzZdOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IDY7IGkrKykgewotCQlpbnQgYnl0ZTsKLQotCQkvKgotCQkgKiBFbmZvcmNlICJ4eDp4eDp4eDp4eDp4eDp4eFxuIiBmb3JtYXQuCi0JCSAqLwotCQlpZiAoYWRkcl9zdHJbKGkgKiAzKSArIDJdICE9ICgoaSA8IDUpID8gJzonIDogJ1xuJykpCi0JCQlyZXR1cm4gLTE7Ci0KLQkJYnl0ZSA9IHBhcnNlX2hleF9ieXRlKGFkZHJfc3RyICsgKGkgKiAzKSk7Ci0JCWlmIChieXRlIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJYWRkcltpXSA9IGJ5dGU7Ci0JfQotCi0JcHJpbnRrKEtFUk5fSU5GTyAidHMyMDk6IGZvdW5kIGV0aGVybmV0IG1hYyBhZGRyZXNzICIpOwotCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspCi0JCXByaW50aygiJS4yeCVzIiwgYWRkcltpXSwgKGkgPCA1KSA/ICI6IiA6ICIuXG4iKTsKLQotCW1lbWNweShxbmFwX3RzMjA5X2V0aF9kYXRhLm1hY19hZGRyLCBhZGRyLCA2KTsKLQotCXJldHVybiAwOwotfQotCi0vKgotICogVGhlICdOQVMgQ29uZmlnJyBmbGFzaCBwYXJ0aXRpb24gaGFzIGFuIGV4dDIgZmlsZXN5c3RlbSB3aGljaAotICogY29udGFpbnMgYSBmaWxlIHRoYXQgaGFzIHRoZSBldGhlcm5ldCBNQUMgYWRkcmVzcyBpbiBwbGFpbiB0ZXh0Ci0gKiAoZm9ybWF0ICJ4eDp4eDp4eDp4eDp4eDp4eFxuIi4pCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCB0czIwOV9maW5kX21hY19hZGRyKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBhZGRyOwotCi0JZm9yIChhZGRyID0gMHgwMDcwMDAwMDsgYWRkciA8IDB4MDA3NjAwMDA7IGFkZHIgKz0gMTAyNCkgewotCQljaGFyICpub3JfcGFnZTsKLQkJaW50IHJldCA9IDA7Ci0KLQkJbm9yX3BhZ2UgPSBpb3JlbWFwKFFOQVBfVFMyMDlfTk9SX0JPT1RfQkFTRSArIGFkZHIsIDEwMjQpOwotCQlpZiAobm9yX3BhZ2UgIT0gTlVMTCkgewotCQkJcmV0ID0gY2hlY2tfbWFjX2FkZHIobm9yX3BhZ2UpOwotCQkJaW91bm1hcChub3JfcGFnZSk7Ci0JCX0KLQotCQlpZiAocmV0ID09IDApCi0JCQlicmVhazsKLQl9Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogUlRDIFMzNTM5MEEgb24gSTJDIGJ1cwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTI4MCw3ICsxOTQsNyBAQAogCiBzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgcW5hcF90czIwOV9pMmNfcnRjID0gewogCUkyQ19CT0FSRF9JTkZPKCJzMzUzOTBhIiwgMHgzMCksCi0gICAgICAgLmlycSAgICAgICAgID0gMCwKKwkuaXJxCT0gMCwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yOTcsNzAgKzIxMSw2MyBAQAogCQkuZ3BpbwkJPSBRTkFQX1RTMjA5X0dQSU9fS0VZX01FRElBLAogCQkuZGVzYwkJPSAiVVNCIENvcHkgQnV0dG9uIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAotCX0sCi0JeworCX0sIHsKIAkJLmNvZGUJCT0gS0VZX1BPV0VSLAogCQkuZ3BpbwkJPSBRTkFQX1RTMjA5X0dQSU9fS0VZX1JFU0VULAogCQkuZGVzYwkJPSAiUmVzZXQgQnV0dG9uIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAotCX0KKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBxbmFwX3RzMjA5X2J1dHRvbl9kYXRhID0gewogCS5idXR0b25zCT0gcW5hcF90czIwOV9idXR0b25zLAotCS5uYnV0dG9ucyAgICAgICA9IEFSUkFZX1NJWkUocW5hcF90czIwOV9idXR0b25zKSwKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHFuYXBfdHMyMDlfYnV0dG9ucyksCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxbmFwX3RzMjA5X2J1dHRvbl9kZXZpY2UgPSB7CiAJLm5hbWUJCT0gImdwaW8ta2V5cyIsCiAJLmlkCQk9IC0xLAogCS5udW1fcmVzb3VyY2VzCT0gMCwKLQkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgID0gJnFuYXBfdHMyMDlfYnV0dG9uX2RhdGEsIH0sCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnFuYXBfdHMyMDlfYnV0dG9uX2RhdGEsCisJfSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogU0FUQQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBxbmFwX3RzMjA5X3NhdGFfZGF0YSA9IHsKLQkubl9wb3J0cyAgICAgICAgPSAyLAorCS5uX3BvcnRzCT0gMiwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCiAgKiBHZW5lcmFsIFNldHVwCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnFuYXBfdHMyMDlfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnFuYXBfdHMyMDlfbm9yX2ZsYXNoLAotCSZxbmFwX3RzMjA5X2J1dHRvbl9kZXZpY2UsCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgdHMyMDlfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfVU5VU0VEIH0sCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIFVTQiBjb3B5IGJ1dHRvbiAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBMb2FkIGRlZmF1bHRzIGJ1dHRvbiAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBHUElPIFJUQyAqLworCXsgIDQsIE1QUF9VTlVTRUQgfSwKKwl7ICA1LCBNUFBfVU5VU0VEIH0sCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIFBDSSBJbnQgQSAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBQQ0kgSW50IEIgKi8KKwl7ICA4LCBNUFBfVU5VU0VEIH0sCisJeyAgOSwgTVBQX1VOVVNFRCB9LAorCXsgMTAsIE1QUF9VTlVTRUQgfSwKKwl7IDExLCBNUFBfVU5VU0VEIH0sCisJeyAxMiwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgcHJlc2VuY2UgKi8KKwl7IDEzLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBwcmVzZW5jZSAqLworCXsgMTQsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIGFjdGl2ZSAqLworCXsgMTUsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIGFjdGl2ZSAqLworCXsgMTYsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBSWEQgKi8KKwl7IDE3LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgVFhEICovCisJeyAxOCwgTVBQX0dQSU8gfSwJCS8qIFNXX1JTVCAqLworCXsgMTksIE1QUF9VTlVTRUQgfSwKKwl7IC0xIH0sCiB9OwogCi0vKgotICogUU5BUCBUUy1bMTJdMDkgc3BlY2lmaWMgcG93ZXIgb2ZmIG1ldGhvZCB2aWEgVUFSVDEtYXR0YWNoZWQgUElDCi0gKi8KLQotI2RlZmluZSBVQVJUMV9SRUcoeCkgIChVQVJUMV9WSVJUX0JBU0UgKyAoKFVBUlRfIyN4KSA8PCAyKSkKLQotc3RhdGljIHZvaWQgcW5hcF90czIwOV9wb3dlcl9vZmYodm9pZCkKLXsKLQkvKiAxOTIwMCBiYXVkIGRpdmlzb3IgKi8KLQljb25zdCB1bnNpZ25lZCBkaXZpc29yID0gKChPUklPTjVYX1RDTEsgKyAoOCAqIDE5MjAwKSkgLyAoMTYgKiAxOTIwMCkpOwotCi0JcHJfaW5mbygiJXM6IHRyaWdnZXJpbmcgcG93ZXItb2ZmLi4uXG4iLCBfX2Z1bmNfXyk7Ci0KLQkvKiBoaWphY2sgdWFydDEgYW5kIHJlc2V0IGludG8gc2FuZSBzdGF0ZSAoMTkyMDAsOG4xKSAqLwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKExDUiksIDB4ODMpOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKERMTCksIGRpdmlzb3IgJiAweGZmKTsKLQlvcmlvbjV4X3dyaXRlKFVBUlQxX1JFRyhETE0pLCAoZGl2aXNvciA+PiA4KSAmIDB4ZmYpOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKExDUiksIDB4MDMpOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKElFUiksIDB4MDApOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKEZDUiksIDB4MDApOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKE1DUiksIDB4MDApOwotCi0JLyogc2VuZCB0aGUgcG93ZXItb2ZmIGNvbW1hbmQgJ0EnIHRvIFBJQyAqLwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKFRYKSwgJ0EnKTsKLX0KLQogc3RhdGljIHZvaWQgX19pbml0IHFuYXBfdHMyMDlfaW5pdCh2b2lkKQogewogCS8qCkBAIC0zNjgsNTEgKzI3NSwzMyBAQAogCSAqLwogCW9yaW9uNXhfaW5pdCgpOwogCi0JLyoKLQkgKiBTZXR1cCBmbGFzaCBtYXBwaW5nCi0JICovCi0Jb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFLAotCQkJICAgIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSk7CisJb3Jpb241eF9tcHBfY29uZih0czIwOV9tcHBfbW9kZXMpOwogCiAJLyoKLQkgKiBPcGVuIGEgc3BlY2lhbCBhZGRyZXNzIGRlY29kZSB3aW5kb3dzIGZvciB0aGUgUENJZSBXQS4KLQkgKi8KLQlvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKE9SSU9ONVhfUENJRV9XQV9QSFlTX0JBU0UsCi0JCQkJT1JJT041WF9QQ0lFX1dBX1NJWkUpOwotCi0JLyoKLQkgKiBTZXR1cCBNdWx0aXBsZXhpbmcgUGlucyAtLQotCSAqIE1QUFswXSBSZXNlcnZlZAotCSAqIE1QUFsxXSBVU0IgY29weSBidXR0b24gKDAgYWN0aXZlKQotCSAqIE1QUFsyXSBMb2FkIGRlZmF1bHRzIGJ1dHRvbiAoMCBhY3RpdmUpCi0JICogTVBQWzNdIEdQSU8gUlRDCi0JICogTVBQWzQtNV0gUmVzZXJ2ZWQKLQkgKiBNUFBbNl0gUENJIEludCBBCi0JICogTVBQWzddIFBDSSBJbnQgQgotCSAqIE1QUFs4LTExXSBSZXNlcnZlZAotCSAqIE1QUFsxMl0gU0FUQSAwIHByZXNlbmNlCi0JICogTVBQWzEzXSBTQVRBIDEgcHJlc2VuY2UKLQkgKiBNUFBbMTRdIFNBVEEgMCBhY3RpdmUKLQkgKiBNUFBbMTVdIFNBVEEgMSBhY3RpdmUKLQkgKiBNUFBbMTZdIFVBUlQxIFJYRAotCSAqIE1QUFsxN10gVUFSVDEgVFhECi0JICogTVBQWzE4XSBTV19SU1QgKDAgYWN0aXZlKQotCSAqIE1QUFsxOV0gUmVzZXJ2ZWQKIAkgKiBNUFBbMjBdIFBDSSBjbG9jayAwCiAJICogTVBQWzIxXSBQQ0kgY2xvY2sgMQogCSAqIE1QUFsyMl0gVVNCIDAgb3ZlciBjdXJyZW50CiAJICogTVBQWzIzLTI1XSBSZXNlcnZlZAogCSAqLwotCW9yaW9uNXhfd3JpdGUoTVBQXzBfN19DVFJMLCAweDMpOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMHg1NTU1MDAwMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMHg1NTAwKTsKLQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnMoMHgzY2MwZmZmKTsKIAotCS8qIHJlZ2lzdGVyIHRzMjA5IHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KLQlwbV9wb3dlcl9vZmYgPSBxbmFwX3RzMjA5X3Bvd2VyX29mZjsKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKKwlxbmFwX3RzeDA5X2ZpbmRfbWFjX2FkZHIoUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFICsKKwkJCQkgcW5hcF90czIwOV9wYXJ0aXRpb25zWzVdLm9mZnNldCwKKwkJCQkgcW5hcF90czIwOV9wYXJ0aXRpb25zWzVdLnNpemUpOworCW9yaW9uNXhfZXRoX2luaXQoJnFuYXBfdHN4MDlfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3NhdGFfaW5pdCgmcW5hcF90czIwOV9zYXRhX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOwogCi0JcGxhdGZvcm1fYWRkX2RldmljZXMocW5hcF90czIwOV9kZXZpY2VzLAotCQkJCUFSUkFZX1NJWkUocW5hcF90czIwOV9kZXZpY2VzKSk7CisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZxbmFwX3RzMjA5X25vcl9mbGFzaCk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnFuYXBfdHMyMDlfYnV0dG9uX2RldmljZSk7CiAKIAkvKiBHZXQgUlRDIElSUSBhbmQgcmVnaXN0ZXIgdGhlIGNoaXAgKi8KIAlpZiAoZ3Bpb19yZXF1ZXN0KFRTMjA5X1JUQ19HUElPLCAicnRjIikgPT0gMCkgewpAQCAtNDI1LDE0ICszMTQsMTIgQEAKIAkJcHJfd2FybmluZygicW5hcF90czIwOV9pbml0OiBmYWlsZWQgdG8gZ2V0IFJUQyBJUlFcbiIpOwogCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZxbmFwX3RzMjA5X2kyY19ydGMsIDEpOwogCi0JdHMyMDlfZmluZF9tYWNfYWRkcigpOwotCW9yaW9uNXhfZXRoX2luaXQoJnFuYXBfdHMyMDlfZXRoX2RhdGEpOwotCi0Jb3Jpb241eF9zYXRhX2luaXQoJnFuYXBfdHMyMDlfc2F0YV9kYXRhKTsKKwkvKiByZWdpc3RlciB0c3gwOSBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCisJcG1fcG93ZXJfb2ZmID0gcW5hcF90c3gwOV9wb3dlcl9vZmY7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoVFMyMDksICJRTkFQIFRTLTEwOS9UUy0yMDkiKQotCS8qIE1haW50YWluZXI6ICBCeXJvbiBCcmFkbGV5IDxieXJvbi5iYnJhZGxleUBnbWFpbC5jb20+ICovCisJLyogTWFpbnRhaW5lcjogQnlyb24gQnJhZGxleSA8Ynlyb24uYmJyYWRsZXlAZ21haWwuY29tPiAqLwogCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKIAkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKIAkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNDA5LXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM0MDktc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmYwZmYwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNDA5LXNldHVwLmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBRTkFQIFRTLTQwOSBCb2FyZCBTZXR1cAorICoKKyAqIE1haW50YWluZXI6IFN5bHZlciBCcnVuZWF1IDxzeWx2ZXIuYnJ1bmVhdUBnbWFpbC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgorICogMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKyNpbmNsdWRlICJ0c3gwOS1jb21tb24uaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBRTkFQIFRTLTQwOSBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIFFOQVAgVFMtNDA5IGhhcmR3YXJlIDoKKyAqIC0gTWFydmVsbCA4OEY1MjgxLUQwCisgKiAtIE1hcnZlbGwgODhTWDcwNDIgU0FUQSBjb250cm9sbGVyIChQQ0llKQorICogLSBNYXJ2ZWxsIDg4RTExMTggR2lnYWJpdCBFdGhlcm5ldCBQSFkKKyAqIC0gUlRDIFMzNTM5MEEgKEAweDMwKSBvbiBJMkMgYnVzCisgKiAtIDhNQiBOT1IgZmxhc2gKKyAqIC0gMjU2TUIgb2YgRERSLTIgUkFNCisgKi8KKworLyoKKyAqIDhNQiBOT1IgZmxhc2ggRGV2aWNlIGJ1cyBib290IGNoaXAgc2VsZWN0CisgKi8KKworI2RlZmluZSBRTkFQX1RTNDA5X05PUl9CT09UX0JBU0UgMHhmZjgwMDAwMAorI2RlZmluZSBRTkFQX1RTNDA5X05PUl9CT09UX1NJWkUgU1pfOE0KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDhNaUIgTk9SIGZsYXNoLiBUaGUgc3RydWN0IG10ZF9wYXJ0aXRpb24gaXMgbm90IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZQorICogICAgIHBhcnRpdGlvbnMgb24gdGhlIGRldmljZSBiZWNhdXNlIHdlIHdhbnQgdG8ga2VlcCBjb21wYXRhYmlsaXR5IHdpdGgKKyAqICAgICBleGlzdGluZyBRTkFQIGZpcm13YXJlLgorICoKKyAqIExheW91dCBhcyB1c2VkIGJ5IFFOQVA6CisgKiAgWzJdIDB4MDAwMDAwMDAtMHgwMDIwMDAwMCA6ICJLZXJuZWwiCisgKiAgWzNdIDB4MDAyMDAwMDAtMHgwMDYwMDAwMCA6ICJSb290RlMxIgorICogIFs0XSAweDAwNjAwMDAwLTB4MDA3MDAwMDAgOiAiUm9vdEZTMiIKKyAqICBbNl0gMHgwMDcwMDAwMC0weDAwNzYwMDAwIDogIk5BUyBDb25maWciIChyZWFkLW9ubHkpCisgKiAgWzVdIDB4MDA3NjAwMDAtMHgwMDc4MDAwMCA6ICJVLUJvb3QgQ29uZmlnIgorICogIFsxXSAweDAwNzgwMDAwLTB4MDA4MDAwMDAgOiAiVS1Cb290IiAocmVhZC1vbmx5KQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBxbmFwX3RzNDA5X3BhcnRpdGlvbnNbXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJVLUJvb3QiLAorCQkuc2l6ZQkJPSAweDAwMDgwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA3ODAwMDAsCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwKKwl9LCB7CisJCS5uYW1lCQk9ICJLZXJuZWwiLAorCQkuc2l6ZQkJPSAweDAwMjAwMDAwLAorCQkub2Zmc2V0CQk9IDAsCisJfSwgeworCQkubmFtZQkJPSAiUm9vdEZTMSIsCisJCS5zaXplCQk9IDB4MDA0MDAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDIwMDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJSb290RlMyIiwKKwkJLnNpemUJCT0gMHgwMDEwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNjAwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gIlUtQm9vdCBDb25maWciLAorCQkuc2l6ZQkJPSAweDAwMDIwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA3NjAwMDAsCisJfSwgeworCQkubmFtZQkJPSAiTkFTIENvbmZpZyIsCisJCS5zaXplCQk9IDB4MDAwNjAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDcwMDAwMCwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBxbmFwX3RzNDA5X25vcl9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorCS5wYXJ0cwkJPSBxbmFwX3RzNDA5X3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRShxbmFwX3RzNDA5X3BhcnRpdGlvbnMpCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHFuYXBfdHM0MDlfbm9yX2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAk9IFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCT0gUU5BUF9UUzQwOV9OT1JfQk9PVF9CQVNFICsgUU5BUF9UUzQwOV9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHFuYXBfdHM0MDlfbm9yX2ZsYXNoID0geworCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgPSAmcW5hcF90czQwOV9ub3JfZmxhc2hfZGF0YSwgfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gJnFuYXBfdHM0MDlfbm9yX2ZsYXNoX3Jlc291cmNlLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBQQ0kKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IF9faW5pdCBxbmFwX3RzNDA5X3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlpbnQgaXJxOworCisJLyoKKwkgKiBDaGVjayBmb3IgZGV2aWNlcyB3aXRoIGhhcmQtd2lyZWQgSVJRcy4KKwkgKi8KKwlpcnEgPSBvcmlvbjV4X3BjaV9tYXBfaXJxKGRldiwgc2xvdCwgcGluKTsKKwlpZiAoaXJxICE9IC0xKQorCQlyZXR1cm4gaXJxOworCisJLyoKKwkgKiBQQ0kgaXNuJ3QgdXNlZCBvbiB0aGUgVFMtNDA5CisJICovCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSBxbmFwX3RzNDA5X3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBxbmFwX3RzNDA5X3BjaV9tYXBfaXJxLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcW5hcF90czQwOV9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3RzNDA5KCkpCisJCXBjaV9jb21tb25faW5pdCgmcW5hcF90czQwOV9wY2kpOworCisJcmV0dXJuIDA7Cit9CisKK3N1YnN5c19pbml0Y2FsbChxbmFwX3RzNDA5X3BjaV9pbml0KTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBSVEMgUzM1MzkwQSBvbiBJMkMgYnVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBUUzQwOV9SVENfR1BJTwkxMAorCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgcW5hcF90czQwOV9pMmNfcnRjID0geworCUkyQ19CT0FSRF9JTkZPKCJzMzUzOTBhIiwgMHgzMCksCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR1BJTyBBdHRhY2hlZCBLZXlzCisgKiAgICAgUG93ZXIgYnV0dG9uIGlzIGF0dGFjaGVkIHRvIHRoZSBQSUMgbWljcm9jb250cm9sbGVyCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBRTkFQX1RTNDA5X0dQSU9fS0VZX01FRElBCTE1CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBxbmFwX3RzNDA5X2J1dHRvbnNbXSA9IHsKKwl7CisJCS5jb2RlCQk9IEtFWV9SRVNUQVJULAorCQkuZ3BpbwkJPSBRTkFQX1RTNDA5X0dQSU9fS0VZX01FRElBLAorCQkuZGVzYwkJPSAiVVNCIENvcHkgQnV0dG9uIiwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHFuYXBfdHM0MDlfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBxbmFwX3RzNDA5X2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShxbmFwX3RzNDA5X2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcW5hcF90czQwOV9idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnFuYXBfdHM0MDlfYnV0dG9uX2RhdGEsCisJfSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbCBTZXR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgdHM0MDlfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfVU5VU0VEIH0sCisJeyAgMSwgTVBQX1VOVVNFRCB9LAorCXsgIDIsIE1QUF9VTlVTRUQgfSwKKwl7ICAzLCBNUFBfVU5VU0VEIH0sCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIEhERCAxIHN0YXR1cyAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBIREQgMiBzdGF0dXMgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogSEREIDMgc3RhdHVzICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIEhERCA0IHN0YXR1cyAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX0dQSU8gfSwJCS8qIFJUQyBpbnQgKi8KKwl7IDExLCBNUFBfVU5VU0VEIH0sCisJeyAxMiwgTVBQX1VOVVNFRCB9LAorCXsgMTMsIE1QUF9VTlVTRUQgfSwKKwl7IDE0LCBNUFBfR1BJTyB9LAkJLyogU1dfUlNUICovCisJeyAxNSwgTVBQX0dQSU8gfSwJCS8qIFVTQiBjb3B5IGJ1dHRvbiAqLworCXsgMTYsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBSWEQgKi8KKwl7IDE3LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgVFhEICovCisJeyAxOCwgTVBQX1VOVVNFRCB9LAorCXsgMTksIE1QUF9VTlVTRUQgfSwKKwl7IC0xIH0sCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcW5hcF90czQwOV9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZih0czQwOV9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJcW5hcF90c3gwOV9maW5kX21hY19hZGRyKFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSArCisJCQkJIHFuYXBfdHM0MDlfcGFydGl0aW9uc1s1XS5vZmZzZXQsCisJCQkJIHFuYXBfdHM0MDlfcGFydGl0aW9uc1s1XS5zaXplKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZxbmFwX3RzeDA5X2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihRTkFQX1RTNDA5X05PUl9CT09UX0JBU0UsCisJCQkJICAgUU5BUF9UUzQwOV9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnFuYXBfdHM0MDlfbm9yX2ZsYXNoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcW5hcF90czQwOV9idXR0b25fZGV2aWNlKTsKKworCS8qIEdldCBSVEMgSVJRIGFuZCByZWdpc3RlciB0aGUgY2hpcCAqLworCWlmIChncGlvX3JlcXVlc3QoVFM0MDlfUlRDX0dQSU8sICJydGMiKSA9PSAwKSB7CisJCWlmIChncGlvX2RpcmVjdGlvbl9pbnB1dChUUzQwOV9SVENfR1BJTykgPT0gMCkKKwkJCXFuYXBfdHM0MDlfaTJjX3J0Yy5pcnEgPSBncGlvX3RvX2lycShUUzQwOV9SVENfR1BJTyk7CisJCWVsc2UKKwkJCWdwaW9fZnJlZShUUzQwOV9SVENfR1BJTyk7CisJfQorCWlmIChxbmFwX3RzNDA5X2kyY19ydGMuaXJxID09IDApCisJCXByX3dhcm5pbmcoInFuYXBfdHM0MDlfaW5pdDogZmFpbGVkIHRvIGdldCBSVEMgSVJRXG4iKTsKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAmcW5hcF90czQwOV9pMmNfcnRjLCAxKTsKKworCS8qIHJlZ2lzdGVyIHRzeDA5IHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlwbV9wb3dlcl9vZmYgPSBxbmFwX3RzeDA5X3Bvd2VyX29mZjsKK30KKworTUFDSElORV9TVEFSVChUUzQwOSwgIlFOQVAgVFMtNDA5IikKKwkvKiBNYWludGFpbmVyOiAgU3lsdmVyIEJydW5lYXUgPHN5bHZlci5icnVuZWF1QGdtYWlsLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gcW5hcF90czQwOV9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM3OHh4LXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM3OHh4LXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdlOWYzNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYwpAQCAtMCwwICsxLDI3NyBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYworICoKKyAqIE1haW50YWluZXI6IEFsZXhhbmRlciBDbG91dGVyIDxhbGV4QGRpZ3Jpei5vcmcudWs+CisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbTQ4dDg2Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRTLTc4eHggSW5mbworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBGUEdBIC0gbGl2ZXMgd2hlcmUgdGhlIFBDSSBidXMgd291bGQgYmUgYXQgT1JJT041WF9QQ0lfTUVNX1BIWVNfQkFTRQorICovCisjZGVmaW5lIFRTNzhYWF9GUEdBX1JFR1NfUEhZU19CQVNFCTB4ZTgwMDAwMDAKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UJMHhmZjkwMDAwMAorI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1NJWkUJCVNaXzFNCisKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19TWVNDT05fSUQJKFRTNzhYWF9GUEdBX1JFR1NfVklSVF9CQVNFIHwgMHgwMDApCisjZGVmaW5lIFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0xDREkJKFRTNzhYWF9GUEdBX1JFR1NfVklSVF9CQVNFIHwgMHgwMDQpCisjZGVmaW5lIFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0xDRE8JKFRTNzhYWF9GUEdBX1JFR1NfVklSVF9CQVNFIHwgMHgwMDgpCisKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19SVENfQ1RSTAkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDgwOCkKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19SVENfREFUQQkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDgwYykKKworLyoKKyAqIDUxMmtCIE5PUiBmbGFzaCBEZXZpY2UKKyAqLworI2RlZmluZSBUUzc4WFhfTk9SX0JPT1RfQkFTRQkJMHhmZjgwMDAwMAorI2RlZmluZSBUUzc4WFhfTk9SX0JPT1RfU0laRQkJU1pfNTEySworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyB0czc4eHhfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IFRTNzhYWF9GUEdBX1JFR1NfVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oVFM3OFhYX0ZQR0FfUkVHU19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IFRTNzhYWF9GUEdBX1JFR1NfU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sCit9OworCit2b2lkIF9faW5pdCB0czc4eHhfbWFwX2lvKHZvaWQpCit7CisJb3Jpb241eF9tYXBfaW8oKTsKKwlpb3RhYmxlX2luaXQodHM3OHh4X2lvX2Rlc2MsIEFSUkFZX1NJWkUodHM3OHh4X2lvX2Rlc2MpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiA1MTJrQiBOT1IgQm9vdCBGbGFzaCAtIHRoZSBjaGlwIGlzIGEgTTI1UDQwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiB0czc4eHhfbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQkJPSAidHMtYm9vdHJvbSIsCisJCS5vZmZzZXQJCT0gMCwKKwkJLyogb25seSB0aGUgZmlyc3QgMjU2a0IgaXMgdXNlZCAqLworCQkuc2l6ZQkJPSBTWl8yNTZLLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorCS5wYXJ0cwkJPSB0czc4eHhfbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2VzLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUodHM3OHh4X25vcl9ib290X2ZsYXNoX3Jlc291cmNlcyksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFRTNzhYWF9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gVFM3OFhYX05PUl9CT09UX0JBU0UgKyBUUzc4WFhfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB0czc4eHhfbm9yX2Jvb3RfZmxhc2ggPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAtMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmdHM3OHh4X25vcl9ib290X2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gJnRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRXRoZXJuZXQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHRzNzh4eF9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAwLAorCS5mb3JjZV9waHlfYWRkciA9IDEsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJUQyBNNDhUODYgLSBuaWNrZWReV2JvcnJvd2VkIGZyb20gYXJjaC9hcm0vbWFjaC1lcDkzeHgvdHM3Mnh4LmMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmZGVmIENPTkZJR19SVENfRFJWX000OFQ4Ngorc3RhdGljIHVuc2lnbmVkIGNoYXIgdHM3OHh4X3J0Y19yZWFkYnl0ZSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJd3JpdGViKGFkZHIsIFRTNzhYWF9GUEdBX1JFR1NfUlRDX0NUUkwpOworCXJldHVybiByZWFkYihUUzc4WFhfRlBHQV9SRUdTX1JUQ19EQVRBKTsKK30KKworc3RhdGljIHZvaWQgdHM3OHh4X3J0Y193cml0ZWJ5dGUodW5zaWduZWQgY2hhciB2YWx1ZSwgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXdyaXRlYihhZGRyLCBUUzc4WFhfRlBHQV9SRUdTX1JUQ19DVFJMKTsKKwl3cml0ZWIodmFsdWUsIFRTNzhYWF9GUEdBX1JFR1NfUlRDX0RBVEEpOworfQorCitzdGF0aWMgc3RydWN0IG00OHQ4Nl9vcHMgdHM3OHh4X3J0Y19vcHMgPSB7CisJLnJlYWRieXRlCT0gdHM3OHh4X3J0Y19yZWFkYnl0ZSwKKwkud3JpdGVieXRlCT0gdHM3OHh4X3J0Y193cml0ZWJ5dGUsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB0czc4eHhfcnRjX2RldmljZSA9IHsKKwkubmFtZQkJPSAicnRjLW00OHQ4NiIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZ0czc4eHhfcnRjX29wcywKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMCwKK307CisKKy8qCisgKiBUUyB1c2VzIHNvbWUgb2YgdGhlIHVzZXIgc3RvcmFnZSBzcGFjZSBvbiB0aGUgUlRDIGNoaXAgc28gc2VlIGlmIGl0IGlzCisgKiBwcmVzZW50OyBhcyBpdCdzIGFuIG9wdGlvbmFsIGZlYXR1cmUgYXQgcHVyY2hhc2UgdGltZSBhbmQgbm90IGFsbCBib2FyZHMKKyAqIHdpbGwgaGF2ZSBpdCBwcmVzZW50CisgKgorICogSSd2ZSB1c2VkIHRoZSBtZXRob2QgVFMgdXNlIGluIHRoZWlyIHJ0Yzc4MDAuYyBleGFtcGxlIGZvciB0aGUgZGV0ZWN0aW9uCisgKgorICogVE9ETzogdHJhY2sgZG93biBhIGd1aW5lYSBwaWcgd2l0aG91dCBhbiBSVEMgdG8gc2VlIGlmIHdlIGNhbiB3b3JrIG91dCBhCisgKiAJCWJldHRlciBSVEMgZGV0ZWN0aW9uIHJvdXRpbmUKKyAqLworc3RhdGljIGludCBfX2luaXQgdHM3OHh4X3J0Y19pbml0KHZvaWQpCit7CisJdW5zaWduZWQgY2hhciB0bXBfcnRjMCwgdG1wX3J0YzE7CisKKwl0bXBfcnRjMCA9IHRzNzh4eF9ydGNfcmVhZGJ5dGUoMTI2KTsKKwl0bXBfcnRjMSA9IHRzNzh4eF9ydGNfcmVhZGJ5dGUoMTI3KTsKKworCXRzNzh4eF9ydGNfd3JpdGVieXRlKDB4MDAsIDEyNik7CisJdHM3OHh4X3J0Y193cml0ZWJ5dGUoMHg1NSwgMTI3KTsKKwlpZiAodHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjcpID09IDB4NTUpIHsKKwkJdHM3OHh4X3J0Y193cml0ZWJ5dGUoMHhhYSwgMTI3KTsKKwkJaWYgKHRzNzh4eF9ydGNfcmVhZGJ5dGUoMTI3KSA9PSAweGFhCisJCQkJJiYgdHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjYpID09IDB4MDApIHsKKwkJCXRzNzh4eF9ydGNfd3JpdGVieXRlKHRtcF9ydGMwLCAxMjYpOworCQkJdHM3OHh4X3J0Y193cml0ZWJ5dGUodG1wX3J0YzEsIDEyNyk7CisJCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnRzNzh4eF9ydGNfZGV2aWNlKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9OworI2Vsc2UKK3N0YXRpYyBpbnQgX19pbml0IHRzNzh4eF9ydGNfaW5pdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU0FUQQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSB0czc4eHhfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcHJpbnQgc29tZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGJvYXJkCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIF9faW5pdCB0czc4eHhfcHJpbnRfYm9hcmRfaWQodm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgYm9hcmRfaW5mbzsKKworCWJvYXJkX2luZm8gPSByZWFkbChUUzc4WFhfRlBHQV9SRUdTX1NZU0NPTl9JRCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiVFMtNzh4eCBJbmZvOiBGUEdBIHJldj0lLjJ4LCBCb2FyZCBNYWdpYz0lLjZ4LCAiLAorCQkJCWJvYXJkX2luZm8gJiAweGZmLAorCQkJCShib2FyZF9pbmZvID4+IDgpICYgMHhmZmZmZmYpOworCWJvYXJkX2luZm8gPSByZWFkbChUUzc4WFhfRlBHQV9SRUdTX1NZU0NPTl9MQ0RJKTsKKwlwcmludGsoIkpQMT0lZCwgSlAyPSVkXG4iLAorCQkJCShib2FyZF9pbmZvID4+IDMwKSAmIDB4MSwKKwkJCQkoYm9hcmRfaW5mbyA+PiAzMSkgJiAweDEpOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB0czc4eHhfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfVU5VU0VEIH0sCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIEpUQUcgQ2xvY2sgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogSlRBRyBEYXRhIEluICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIExhdCBFQ1AyIDI1NiBGUEdBIC0gUEIyQiAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBKVEFHIERhdGEgT3V0ICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIEpUQUcgVE1TICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIExhdCBFQ1AyIDI1NiBGUEdBIC0gUEIzMUFfQ0xLNCsgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogTGF0IEVDUDIgMjU2IEZQR0EgLSBQQjIyQiAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfVU5VU0VEIH0sCisJeyAxMywgTVBQX1VOVVNFRCB9LAorCXsgMTQsIE1QUF9VTlVTRUQgfSwKKwl7IDE1LCBNUFBfVU5VU0VEIH0sCisJeyAxNiwgTVBQX1VBUlQgfSwKKwl7IDE3LCBNUFBfVUFSVCB9LAorCXsgMTgsIE1QUF9VQVJUIH0sCisJeyAxOSwgTVBQX1VBUlQgfSwKKwl7IC0xIH0sCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgdHM3OHh4X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwl0czc4eHhfcHJpbnRfYm9hcmRfaWQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYodHM3OHh4X21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIE1QUFsyMF0gUENJIENsb2NrIE91dCAxCisJICogTVBQWzIxXSBQQ0kgQ2xvY2sgT3V0IDAKKwkgKiBNUFBbMjJdIFVudXNlZAorCSAqIE1QUFsyM10gVW51c2VkCisJICogTVBQWzI0XSBVbnVzZWQKKwkgKiBNUFBbMjVdIFVudXNlZAorCSAqLworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9laGNpMV9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmdHM3OHh4X2V0aF9kYXRhKTsKKwlvcmlvbjV4X3NhdGFfaW5pdCgmdHM3OHh4X3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisJb3Jpb241eF91YXJ0MV9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihUUzc4WFhfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBUUzc4WFhfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ0czc4eHhfbm9yX2Jvb3RfZmxhc2gpOworCisJaWYgKCF0czc4eHhfcnRjX2luaXQoKSkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiVFMtNzh4eCBSVEMgbm90IGRldGVjdGVkIG9yIGVuYWJsZWRcbiIpOworfQorCitNQUNISU5FX1NUQVJUKFRTNzhYWCwgIlRlY2hub2xvZ2ljIFN5c3RlbXMgVFMtNzh4eCBTQkMiKQorCS8qIE1haW50YWluZXI6IEFsZXhhbmRlciBDbG91dGVyIDxhbGV4QGRpZ3Jpei5vcmcudWs+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHRzNzh4eF9pbml0LAorCS5tYXBfaW8JCT0gdHM3OHh4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHN4MDktY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHN4MDktY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmZWFjMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uYwpAQCAtMCwwICsxLDEzMyBAQAorLyoKKyAqIFFOQVAgVFMteDA5IEJvYXJkcyBjb21tb24gZnVuY3Rpb25zCisgKgorICogTWFpbnRhaW5lcnM6IExlbm5lcnQgQnV5dGVuaGVrIDxidXl0ZW5oQG1hcnZlbGwuY29tPgorICoJCUJ5cm9uIEJyYWRsZXkgPGJ5cm9uLmJicmFkbGV5QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgInRzeDA5LWNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFFOQVAgVFMteDA5IHNwZWNpZmljIHBvd2VyIG9mZiBtZXRob2QgdmlhIFVBUlQxLWF0dGFjaGVkIFBJQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVUFSVDFfUkVHKHgpCShVQVJUMV9WSVJUX0JBU0UgKyAoKFVBUlRfIyN4KSA8PCAyKSkKKwordm9pZCBxbmFwX3RzeDA5X3Bvd2VyX29mZih2b2lkKQoreworCS8qIDE5MjAwIGJhdWQgZGl2aXNvciAqLworCWNvbnN0IHVuc2lnbmVkIGRpdmlzb3IgPSAoKE9SSU9ONVhfVENMSyArICg4ICogMTkyMDApKSAvICgxNiAqIDE5MjAwKSk7CisKKwlwcl9pbmZvKCIlczogdHJpZ2dlcmluZyBwb3dlci1vZmYuLi5cbiIsIF9fZnVuY19fKTsKKworCS8qIGhpamFjayB1YXJ0MSBhbmQgcmVzZXQgaW50byBzYW5lIHN0YXRlICgxOTIwMCw4bjEpICovCisJd3JpdGVsKDB4ODMsIFVBUlQxX1JFRyhMQ1IpKTsKKwl3cml0ZWwoZGl2aXNvciAmIDB4ZmYsIFVBUlQxX1JFRyhETEwpKTsKKwl3cml0ZWwoKGRpdmlzb3IgPj4gOCkgJiAweGZmLCBVQVJUMV9SRUcoRExNKSk7CisJd3JpdGVsKDB4MDMsIFVBUlQxX1JFRyhMQ1IpKTsKKwl3cml0ZWwoMHgwMCwgVUFSVDFfUkVHKElFUikpOworCXdyaXRlbCgweDAwLCBVQVJUMV9SRUcoRkNSKSk7CisJd3JpdGVsKDB4MDAsIFVBUlQxX1JFRyhNQ1IpKTsKKworCS8qIHNlbmQgdGhlIHBvd2VyLW9mZiBjb21tYW5kICdBJyB0byBQSUMgKi8KKwl3cml0ZWwoJ0EnLCBVQVJUMV9SRUcoVFgpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFdGhlcm5ldAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHFuYXBfdHN4MDlfZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOCwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHFuYXBfdHN4MDlfcGFyc2VfaGV4X25pYmJsZShjaGFyIG4pCit7CisJaWYgKG4gPj0gJzAnICYmIG4gPD0gJzknKQorCQlyZXR1cm4gbiAtICcwJzsKKworCWlmIChuID49ICdBJyAmJiBuIDw9ICdGJykKKwkJcmV0dXJuIG4gLSAnQScgKyAxMDsKKworCWlmIChuID49ICdhJyAmJiBuIDw9ICdmJykKKwkJcmV0dXJuIG4gLSAnYScgKyAxMDsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBfX2luaXQgcW5hcF90c3gwOV9wYXJzZV9oZXhfYnl0ZShjb25zdCBjaGFyICpiKQoreworCWludCBoaTsKKwlpbnQgbG87CisKKwloaSA9IHFuYXBfdHN4MDlfcGFyc2VfaGV4X25pYmJsZShiWzBdKTsKKwlsbyA9IHFuYXBfdHN4MDlfcGFyc2VfaGV4X25pYmJsZShiWzFdKTsKKworCWlmIChoaSA8IDAgfHwgbG8gPCAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gKGhpIDw8IDQpIHwgbG87Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHFuYXBfdHN4MDlfY2hlY2tfbWFjX2FkZHIoY29uc3QgY2hhciAqYWRkcl9zdHIpCit7CisJdV9pbnQ4X3QgYWRkcls2XTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKwkJaW50IGJ5dGU7CisKKwkJLyoKKwkJICogRW5mb3JjZSAieHg6eHg6eHg6eHg6eHg6eHhcbiIgZm9ybWF0LgorCQkgKi8KKwkJaWYgKGFkZHJfc3RyWyhpICogMykgKyAyXSAhPSAoKGkgPCA1KSA/ICc6JyA6ICdcbicpKQorCQkJcmV0dXJuIC0xOworCisJCWJ5dGUgPSBxbmFwX3RzeDA5X3BhcnNlX2hleF9ieXRlKGFkZHJfc3RyICsgKGkgKiAzKSk7CisJCWlmIChieXRlIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJYWRkcltpXSA9IGJ5dGU7CisJfQorCisJcHJpbnRrKEtFUk5fSU5GTyAidHN4MDk6IGZvdW5kIGV0aGVybmV0IG1hYyBhZGRyZXNzICIpOworCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspCisJCXByaW50aygiJS4yeCVzIiwgYWRkcltpXSwgKGkgPCA1KSA/ICI6IiA6ICIuXG4iKTsKKworCW1lbWNweShxbmFwX3RzeDA5X2V0aF9kYXRhLm1hY19hZGRyLCBhZGRyLCA2KTsKKworCXJldHVybiAwOworfQorCisvKgorICogVGhlICdOQVMgQ29uZmlnJyBmbGFzaCBwYXJ0aXRpb24gaGFzIGFuIGV4dDIgZmlsZXN5c3RlbSB3aGljaAorICogY29udGFpbnMgYSBmaWxlIHRoYXQgaGFzIHRoZSBldGhlcm5ldCBNQUMgYWRkcmVzcyBpbiBwbGFpbiB0ZXh0CisgKiAoZm9ybWF0ICJ4eDp4eDp4eDp4eDp4eDp4eFxuIikuCisgKi8KK3ZvaWQgX19pbml0IHFuYXBfdHN4MDlfZmluZF9tYWNfYWRkcih1MzIgbWVtX2Jhc2UsIHUzMiBzaXplKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKworCWZvciAoYWRkciA9IG1lbV9iYXNlOyBhZGRyIDwgKG1lbV9iYXNlICsgc2l6ZSk7IGFkZHIgKz0gMTAyNCkgeworCQljaGFyICpub3JfcGFnZTsKKwkJaW50IHJldCA9IDA7CisKKwkJbm9yX3BhZ2UgPSBpb3JlbWFwKGFkZHIsIDEwMjQpOworCQlpZiAobm9yX3BhZ2UgIT0gTlVMTCkgeworCQkJcmV0ID0gcW5hcF90c3gwOV9jaGVja19tYWNfYWRkcihub3JfcGFnZSk7CisJCQlpb3VubWFwKG5vcl9wYWdlKTsKKwkJfQorCisJCWlmIChyZXQgPT0gMCkKKwkJCWJyZWFrOworCX0KK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uaCBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTg0MjY0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5oCkBAIC0wLDAgKzEsMjAgQEAKKyNpZm5kZWYgX19BUkNIX09SSU9ONVhfVFNYMDlfQ09NTU9OX0gKKyNkZWZpbmUgX19BUkNIX09SSU9ONVhfVFNYMDlfQ09NTU9OX0gKKworLyoKKyAqIFFOQVAgVFMteDA5IEJvYXJkcyBwb3dlci1vZmYgZnVuY3Rpb24KKyAqLworZXh0ZXJuIHZvaWQgcW5hcF90c3gwOV9wb3dlcl9vZmYodm9pZCk7CisKKy8qCisgKiBRTkFQIFRTLXgwOSBCb2FyZHMgZnVuY3Rpb24gdG8gZmluZCBFdGhlcm5ldCBNQUMgYWRkcmVzcyBpbiBmbGFzaCBtZW1vcnkKKyAqLworZXh0ZXJuIHZvaWQgX19pbml0IHFuYXBfdHN4MDlfZmluZF9tYWNfYWRkcih1MzIgbWVtX2Jhc2UsIHUzMiBzaXplKTsKKworLyoKKyAqIFFOQVAgVFMteDA5IEJvYXJkcyBldGhlcm5ldCBkZWNsYXJhdGlvbgorICovCitleHRlcm4gc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcW5hcF90c3gwOV9ldGhfZGF0YTsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC93bnI4NTR0LXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd25yODU0dC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhZjA5M2YKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd25yODU0dC1zZXR1cC5jCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3ducjg1NHQtc2V0dXAuYworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB3bnI4NTR0X21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIExFRCBncmVlbiAoMD1vbikgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogUmVzZXQgQnV0dG9uICgwPW9mZikgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgTEVEIGJsaW5rICgwPW9mZikgKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogV0FOIFN0YXR1cyBMRUQgYW1iZXIgKDA9b2ZmKSAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBQQ0kgaW50ICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qID8/PyAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiA/Pz8gKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogPz8/ICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAgOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRVJSICovCisJeyAxMCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMSwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCisvKgorICogOE0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFdOUjg1NFRfTk9SX0JPT1RfQkFTRQkweGY0MDAwMDAwCisjZGVmaW5lIFdOUjg1NFRfTk9SX0JPT1RfU0laRQlTWl84TQorCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gd25yODU0dF9ub3JfZmxhc2hfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJCT0gImtlcm5lbCIsCisJCS5vZmZzZXQJCT0gMHgwMDAwMDAwMCwKKwkJLnNpemUJCT0gMHgwMDEwMDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJyb290ZnMiLAorCQkub2Zmc2V0CQk9IDB4MDAxMDAwMDAsCisJCS5zaXplCQk9IDB4MDA2NjAwMDAsCisJfSwgeworCQkubmFtZQkJPSAidWJvb3QiLAorCQkub2Zmc2V0CQk9IDB4MDA3NjAwMDAsCisJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHducjg1NHRfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDIsCisJLnBhcnRzCQk9IHducjg1NHRfbm9yX2ZsYXNoX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh3bnI4NTR0X25vcl9mbGFzaF9wYXJ0aXRpb25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugd25yODU0dF9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBXTlI4NTRUX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBXTlI4NTRUX05PUl9CT09UX0JBU0UgKyBXTlI4NTRUX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugd25yODU0dF9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnducjg1NHRfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmd25yODU0dF9ub3JfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgd25yODU0dF9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCB3bnI4NTR0X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHducjg1NHRfbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZXRoX2luaXQoJnducjg1NHRfZXRoX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oV05SODU0VF9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFdOUjg1NFRfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ3bnI4NTR0X25vcl9mbGFzaCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHducjg1NHRfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIE1pbmktUENJIHNsb3QuCisJICovCisJaWYgKHNsb3QgPT0gNykKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDQpOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSB3bnI4NTR0X3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSB3bnI4NTR0X3BjaV9tYXBfaXJxLAorfTsKKworc3RhdGljIGludCBfX2luaXQgd25yODU0dF9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3ducjg1NHQoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZ3bnI4NTR0X3BjaSk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbCh3bnI4NTR0X3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChXTlI4NTRULCAiTmV0Z2VhciBXTlI4NTRUIikKKwkvKiBNYWludGFpbmVyOiBJbXJlIEthbG96IDxrYWxvekBvcGVud3J0Lm9yZz4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gd25yODU0dF9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd3J0MzUwbi12Mi1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3dydDM1MG4tdjItc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWFiNTVjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3dydDM1MG4tdjItc2V0dXAuYwpAQCAtMCwwICsxLDE3MyBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtb3Jpb241eC93cnQzNTBuLXYyLXNldHVwLmMKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgd3J0MzUwbl92Ml9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgZ3JlZW4gKDA9b24pICovCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIFNlY3VyaXR5IExFRCAoMD1vbikgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogSW50ZXJuYWwgQnV0dG9uICgwPW9uKSAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBCdXR0b24gKDA9b24pICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIFBDSSBpbnQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgTEVEIG9yYW5nZSAoMD1vbikgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogVVNCIExFRCAoMD1vbikgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogV2lyZWxlc3MgTEVEICgwPW9uKSAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwJCS8qID8/PyAqLworCXsgIDksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWEVSUiAqLworCXsgMTAsIE1QUF9VTlVTRUQgfSwJCS8qID8/PyAqLworCXsgMTEsIE1QUF9VTlVTRUQgfSwJCS8qID8/PyAqLworCXsgMTIsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNF0gKi8KKwl7IDEzLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzVdICovCisJeyAxNCwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs2XSAqLworCXsgMTUsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbN10gKi8KKwl7IDE2LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzRdICovCisJeyAxNywgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs1XSAqLworCXsgMTgsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNl0gKi8KKwl7IDE5LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzddICovCisJeyAtMSB9LAorfTsKKworLyoKKyAqIDhNIE5PUiBmbGFzaCBEZXZpY2UgYnVzIGJvb3QgY2hpcCBzZWxlY3QKKyAqLworI2RlZmluZSBXUlQzNTBOX1YyX05PUl9CT09UX0JBU0UJMHhmNDAwMDAwMAorI2RlZmluZSBXUlQzNTBOX1YyX05PUl9CT09UX1NJWkUJU1pfOE0KKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHdydDM1MG5fdjJfbm9yX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJrZXJuZWwiLAorCQkub2Zmc2V0CQk9IDB4MDAwMDAwMDAsCisJCS5zaXplCQk9IDB4MDA3NjAwMDAsCisJfSwgeworCQkubmFtZQkJPSAicm9vdGZzIiwKKwkJLm9mZnNldAkJPSAweDAwMWEwMDAwLAorCQkuc2l6ZQkJPSAweDAwNWMwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gImxhbmciLAorCQkub2Zmc2V0CQk9IDB4MDA3NjAwMDAsCisJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisJfSwgeworCQkubmFtZQkJPSAibnZyYW0iLAorCQkub2Zmc2V0CQk9IDB4MDA3YTAwMDAsCisJCS5zaXplCQk9IDB4MDAwMjAwMDAsCisJfSwgeworCQkubmFtZQkJPSAidS1ib290IiwKKwkJLm9mZnNldAkJPSAweDAwN2MwMDAwLAorCQkuc2l6ZQkJPSAweDAwMDQwMDAwLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSB3cnQzNTBuX3YyX25vcl9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorCS5wYXJ0cwkJPSB3cnQzNTBuX3YyX25vcl9mbGFzaF9wYXJ0aXRpb25zLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUod3J0MzUwbl92Ml9ub3JfZmxhc2hfcGFydGl0aW9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHdydDM1MG5fdjJfbm9yX2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gV1JUMzUwTl9WMl9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gV1JUMzUwTl9WMl9OT1JfQk9PVF9CQVNFICsgV1JUMzUwTl9WMl9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHdydDM1MG5fdjJfbm9yX2ZsYXNoID0geworCS5uYW1lCQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZ3cnQzNTBuX3YyX25vcl9mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJCT0gMSwKKwkucmVzb3VyY2UJCT0gJndydDM1MG5fdjJfbm9yX2ZsYXNoX3Jlc291cmNlLAorfTsKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHdydDM1MG5fdjJfZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgd3J0MzUwbl92Ml9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZih3cnQzNTBuX3YyX21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZ3cnQzNTBuX3YyX2V0aF9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFdSVDM1ME5fVjJfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBXUlQzNTBOX1YyX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmd3J0MzUwbl92Ml9ub3JfZmxhc2gpOworfQorCitzdGF0aWMgaW50IF9faW5pdCB3cnQzNTBuX3YyX3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlpbnQgaXJxOworCisJLyoKKwkgKiBDaGVjayBmb3IgZGV2aWNlcyB3aXRoIGhhcmQtd2lyZWQgSVJRcy4KKwkgKi8KKwlpcnEgPSBvcmlvbjV4X3BjaV9tYXBfaXJxKGRldiwgc2xvdCwgcGluKTsKKwlpZiAoaXJxICE9IC0xKQorCQlyZXR1cm4gaXJxOworCisJLyoKKwkgKiBNaW5pLVBDSSBzbG90LgorCSAqLworCWlmIChzbG90ID09IDcpCisJCXJldHVybiBncGlvX3RvX2lycSg0KTsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kgd3J0MzUwbl92Ml9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSAyLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gd3J0MzUwbl92Ml9wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHdydDM1MG5fdjJfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc193cnQzNTBuX3YyKCkpCisJCXBjaV9jb21tb25faW5pdCgmd3J0MzUwbl92Ml9wY2kpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwod3J0MzUwbl92Ml9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoV1JUMzUwTl9WMiwgIkxpbmtzeXMgV1JUMzUwTiB2MiIpCisJLyogTWFpbnRhaW5lcjogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHdydDM1MG5fdjJfaW5pdCwKKwkubWFwX2lvCQk9IG9yaW9uNXhfbWFwX2lvLAorCS5pbml0X2lycQk9IG9yaW9uNXhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZvcmlvbjV4X3RpbWVyLAorCS5maXh1cAkJPSB0YWdfZml4dXBfbWVtMzIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtcHhhL0tjb25maWcKaW5kZXggNWRhN2E2OC4uOTE0YmIzMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9LY29uZmlnCkBAIC0yMCw4ICsyMCw3IEBACiAKIGVuZGlmCiAKLWNob2ljZQotCXByb21wdCAiU2VsZWN0IHRhcmdldCBib2FyZCIKK21lbnUgIlNlbGVjdCB0YXJnZXQgYm9hcmRzIgogCiBjb25maWcgQVJDSF9HVU1TVElYCiAJYm9vbCAiR3Vtc3RpeCBYU2NhbGUgYm9hcmRzIgpAQCAtMzcsMTAgKzM2LDEyIEBACiBjb25maWcgTUFDSF9MT0dJQ1BEX1BYQTI3MAogCWJvb2wgIkxvZ2ljUEQgUFhBMjcwIENhcmQgRW5naW5lIERldmVsb3BtZW50IFBsYXRmb3JtIgogCXNlbGVjdCBQWEEyN3gKKwlzZWxlY3QgSEFWRV9QV00KIAogY29uZmlnIE1BQ0hfTUFJTlNUT05FCiAJYm9vbCAiSW50ZWwgSENEREJCVkEwIERldmVsb3BtZW50IFBsYXRmb3JtIgogCXNlbGVjdCBQWEEyN3gKKwlzZWxlY3QgSEFWRV9QV00KIAogY29uZmlnIEFSQ0hfUFhBX0lEUAogCWJvb2wgIkFjY2VsZW50IFhzY2FsZSBJRFAiCkBAIC0xMTYsNiArMTE3LDcgQEAKIGNvbmZpZyBNQUNIX1pZTE9OSVRFCiAJYm9vbCAiUFhBM3h4IERldmVsb3BtZW50IFBsYXRmb3JtIgogCXNlbGVjdCBQWEEzeHgKKwlzZWxlY3QgSEFWRV9QV00KIAogY29uZmlnIE1BQ0hfTElUVExFVE9OCiAJYm9vbCAiUFhBM3h4IEZvcm0gRmFjdG9yIFBsYXRmb3JtIChha2EgTGl0dGxldG9uKSIKQEAgLTEzOCw3ICsxNDAsNyBAQAogCXNlbGVjdCBQWEEyN3gKIAlzZWxlY3QgSVdNTVhUCiAKLWVuZGNob2ljZQorZW5kbWVudQogCiBjaG9pY2UKIAlwcm9tcHQgIlVzZWQgYmFzZWJvYXJkIgpAQCAtMTQ2LDI2ICsxNDgsMjUgQEAKIAogY29uZmlnIE1BQ0hfUENNOTkwX0JBU0VCT0FSRAogCWJvb2wgIlBIWVRFQyBQQ00tOTkwIGRldmVsb3BtZW50IGJvYXJkIgorCXNlbGVjdCBIQVZFX1BXTQogCiBlbmRjaG9pY2UKIAotaWYgUFhBX1NIQVJQU0wKLQogY2hvaWNlCi0JcHJvbXB0ICJTZWxlY3QgdGFyZ2V0IFNoYXJwIFphdXJ1cyBkZXZpY2UgcmFuZ2UiCisJcHJvbXB0ICJkaXNwbGF5IG9uIHBjbTk5MCIKKwlkZXBlbmRzIG9uIE1BQ0hfUENNOTkwX0JBU0VCT0FSRAogCi1jb25maWcgUFhBX1NIQVJQU0xfMjV4Ci0JYm9vbCAiU2hhcnAgUFhBMjV4IG1vZGVscyAoU0wtNTYwMCwgU0wtQzd4eCBhbmQgU0wtQzYwMDB4KSIKLQlzZWxlY3QgUFhBMjV4Citjb25maWcgUENNOTkwX0RJU1BMQVlfU0hBUlAKKwlib29sICJzaGFycCBscTA4NHYxZGcyMSBzdG4gZGlzcGxheSIKIAotY29uZmlnIFBYQV9TSEFSUFNMXzI3eAotCWJvb2wgIlNoYXJwIFBYQTI3MCBtb2RlbHMgKFNMLUN4eDAwKSIKLQlzZWxlY3QgUFhBMjd4Citjb25maWcgUENNOTkwX0RJU1BMQVlfTkVDCisJYm9vbCAibmVjIG5sNjQ0OGJjMjBfMThkIHRmdCBkaXNwbGF5IgorCitjb25maWcgUENNOTkwX0RJU1BMQVlfTk9ORQorCWJvb2wgIm5vIGRpc3BsYXkiCiAKIGVuZGNob2ljZQogCi1lbmRpZgotCiBpZiBBUkNIX0dVTVNUSVgKIAogY2hvaWNlCkBAIC0xOTksMjggKzIwMCwzMyBAQAogCiBjb25maWcgTUFDSF9QT09ETEUKIAlib29sICJFbmFibGUgU2hhcnAgU0wtNTYwMCAoUG9vZGxlKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjV4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyNXgKIAlzZWxlY3QgU0hBUlBfTE9DT01PCiAJc2VsZWN0IFBYQV9TU1AKIAogY29uZmlnIE1BQ0hfQ09SR0kKIAlib29sICJFbmFibGUgU2hhcnAgU0wtQzcwMCAoQ29yZ2kpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCXNlbGVjdCBQWEFfU0hBUlBfQzd4eAogCiBjb25maWcgTUFDSF9TSEVQSEVSRAogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC1DNzUwIChTaGVwaGVyZCkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI1eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjV4CiAJc2VsZWN0IFBYQV9TSEFSUF9DN3h4CiAKIGNvbmZpZyBNQUNIX0hVU0tZCiAJYm9vbCAiRW5hYmxlIFNoYXJwIFNMLUM3NjAgKEh1c2t5KSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjV4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyNXgKIAlzZWxlY3QgUFhBX1NIQVJQX0M3eHgKIAogY29uZmlnIE1BQ0hfQUtJVEEKIAlib29sICJFbmFibGUgU2hhcnAgU0wtMTAwMCAoQWtpdGEpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yN3gKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI3eAogCXNlbGVjdCBQWEFfU0hBUlBfQ3h4MDAKIAlzZWxlY3QgTUFDSF9TUElUWgogCXNlbGVjdCBJMkMKQEAgLTIyOCwxNyArMjM0LDIwIEBACiAKIGNvbmZpZyBNQUNIX1NQSVRaCiAJYm9vbCAiRW5hYmxlIFNoYXJwIFphdXJ1cyBTTC0zMDAwIChTcGl0eikgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI3eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjd4CiAJc2VsZWN0IFBYQV9TSEFSUF9DeHgwMAogCiBjb25maWcgTUFDSF9CT1JaT0kKIAlib29sICJFbmFibGUgU2hhcnAgWmF1cnVzIFNMLTMxMDAgKEJvcnpvaSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI3eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjd4CiAJc2VsZWN0IFBYQV9TSEFSUF9DeHgwMAogCiBjb25maWcgTUFDSF9UT1NBCiAJYm9vbCAiRW5hYmxlIFNoYXJwIFNMLTYwMDB4IChUb3NhKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjV4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyNXgKIAogY29uZmlnIFBYQTI1eAogCWJvb2wKQEAgLTI3Myw0ICsyODIsMTAgQEAKIAl0cmlzdGF0ZQogCWhlbHAKIAkgIEVuYWJsZSBzdXBwb3J0IGZvciBQWEEyeHggU1NQIHBvcnRzCisKK2NvbmZpZyBQWEFfUFdNCisJdHJpc3RhdGUKKwlkZWZhdWx0IEJBQ0tMSUdIVF9QV00KKwloZWxwCisJICBFbmFibGUgc3VwcG9ydCBmb3IgUFhBMnh4L1BYQTN4eCBQV00gY29udHJvbGxlcnMKIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtcHhhL01ha2VmaWxlCmluZGV4IDBlNmQwNWIuLmM0ZGZiZTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL01ha2VmaWxlCkBAIC0xMCwxMCArMTAsMTEgQEAKIAogIyBHZW5lcmljIGRyaXZlcnMgdGhhdCBvdGhlciBkcml2ZXJzIG1heSBkZXBlbmQgdXBvbgogb2JqLSQoQ09ORklHX1BYQV9TU1ApCQkrPSBzc3Aubworb2JqLSQoQ09ORklHX1BYQV9QV00pCQkrPSBwd20ubwogCiAjIFNvQy1zcGVjaWZpYyBjb2RlCi1vYmotJChDT05GSUdfUFhBMjV4KQkJKz0gbWZwLXB4YTJ4eC5vIHB4YTI1eC5vCi1vYmotJChDT05GSUdfUFhBMjd4KQkJKz0gbWZwLXB4YTJ4eC5vIHB4YTI3eC5vCitvYmotJChDT05GSUdfUFhBMjV4KQkJKz0gbWZwLXB4YTJ4eC5vIHB4YTJ4eC5vIHB4YTI1eC5vCitvYmotJChDT05GSUdfUFhBMjd4KQkJKz0gbWZwLXB4YTJ4eC5vIHB4YTJ4eC5vIHB4YTI3eC5vCiBvYmotJChDT05GSUdfUFhBM3h4KQkJKz0gbWZwLXB4YTN4eC5vIHB4YTN4eC5vIHNtZW1jLm8KIG9iai0kKENPTkZJR19DUFVfUFhBMzAwKQkrPSBweGEzMDAubwogb2JqLSQoQ09ORklHX0NQVV9QWEEzMjApCSs9IHB4YTMyMC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suYwppbmRleCBlOTdkYzU5Li5iNGQwNDk1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmMKQEAgLTEyLDcgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogCi0jaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKQEAgLTQ3LDYgKzQ3LDkgQEAKIAkJY2xrID0gcDsKIAltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CiAKKwlpZiAoIUlTX0VSUihjbGspICYmIGNsay0+b3BzID09IE5VTEwpCisJCWNsayA9IGNsay0+b3RoZXI7CisKIAlyZXR1cm4gY2xrOwogfQogRVhQT1JUX1NZTUJPTChjbGtfZ2V0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmggYi9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5oCmluZGV4IGJjNmI3N2UuLjgzY2JmYWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suaApAQCAtMTUsNiArMTUsNyBAQAogCXVuc2lnbmVkIGludAkJY2tlbjsKIAl1bnNpZ25lZCBpbnQJCWRlbGF5OwogCXVuc2lnbmVkIGludAkJZW5hYmxlZDsKKwlzdHJ1Y3QgY2xrCQkqb3RoZXI7CiB9OwogCiAjZGVmaW5lIElOSVRfQ0tFTihfbmFtZSwgX2NrZW4sIF9yYXRlLCBfZGVsYXksIF9kZXYpCVwKQEAgLTM1LDYgKzM2LDE3IEBACiAJCS5ja2VuCT0gQ0tFTl8jI19ja2VuLAkJCVwKIAl9CiAKKy8qCisgKiBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgdG8gYWxpYXMgb25lIGNsb2NrIGRldmljZStuYW1lIHBhaXIKKyAqIHRvIGFub3RoZXIgc3RydWN0IGNsay4KKyAqLworI2RlZmluZSBJTklUX0NLT1RIRVIoX25hbWUsIF9vdGhlciwgX2RldikJCVwKKwl7CQkJCQkJXAorCQkubmFtZQk9IF9uYW1lLAkJCVwKKwkJLmRldgk9IF9kZXYsCQkJCVwKKwkJLm90aGVyCT0gX290aGVyLAkJCVwKKwl9CisKIGV4dGVybiBjb25zdCBzdHJ1Y3QgY2xrb3BzIGNsa19ja2VuX29wczsKIAogdm9pZCBjbGtfY2tlbl9lbmFibGUoc3RydWN0IGNsayAqY2xrKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAtcGNpLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLXBjaS5jCmluZGV4IGFjN2YwNWYuLjMxOWM5ZmYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAtcGNpLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC1wY2kuYwpAQCAtNDEsMTggKzQxLDIwIEBACiB7CiAJdW5zaWduZWQgaW50IHN6ID0gU1pfNjRNID4+IFBBR0VfU0hJRlQ7CiAKLQlwcl9pbmZvKCJBZGp1c3Rpbmcgem9uZXMgZm9yIENNLXgyNzBcbiIpOworCWlmIChtYWNoaW5lX2lzX2FybWNvcmUoKSkgeworCQlwcl9pbmZvKCJBZGp1c3Rpbmcgem9uZXMgZm9yIENNLXgyNzBcbiIpOwogCi0JLyoKLQkgKiBPbmx5IGFkanVzdCBpZiA+IDY0TSBvbiBjdXJyZW50IHN5c3RlbQotCSAqLwotCWlmIChub2RlIHx8ICh6b25lX3NpemVbMF0gPD0gc3opKQotCQlyZXR1cm47CisJCS8qCisJCSAqIE9ubHkgYWRqdXN0IGlmID4gNjRNIG9uIGN1cnJlbnQgc3lzdGVtCisJCSAqLworCQlpZiAobm9kZSB8fCAoem9uZV9zaXplWzBdIDw9IHN6KSkKKwkJCXJldHVybjsKIAotCXpvbmVfc2l6ZVsxXSA9IHpvbmVfc2l6ZVswXSAtIHN6OwotCXpvbmVfc2l6ZVswXSA9IHN6OwotCXpob2xlX3NpemVbMV0gPSB6aG9sZV9zaXplWzBdOwotCXpob2xlX3NpemVbMF0gPSAwOworCQl6b25lX3NpemVbMV0gPSB6b25lX3NpemVbMF0gLSBzejsKKwkJem9uZV9zaXplWzBdID0gc3o7CisJCXpob2xlX3NpemVbMV0gPSB6aG9sZV9zaXplWzBdOworCQl6aG9sZV9zaXplWzBdID0gMDsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGNteDI3MF9pdDgxNTJfaXJxX2RlbXV4KHVuc2lnbmVkIGludCBpcnEsIHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAuYwppbmRleCBmNTg1MWQxLi4wMWI5OTY0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGFmYi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KQEAgLTgxLDEyICs4Miw2IEBACiAJfQogfTsKIAotLyogYXVkaW8gZGV2aWNlICovCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBjbXgyNzBfYXVkaW9fZGV2aWNlID0gewotCS5uYW1lCQk9ICJweGEyeHgtYWM5NyIsCi0JLmlkCQk9IC0xLAotfTsKLQogLyogdG91Y2hzY3JlZW4gY29udHJvbGxlciAqLwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgY214MjcwX3RzX2RldmljZSA9IHsKIAkubmFtZQkJPSAidWNiMTQwMF90cyIsCkBAIC0yMTksNyArMjE0LDYgQEAKIC8qIHBsYXRmb3JtIGRldmljZXMgKi8KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmY214MjcwX2RldmljZV9kbTlrLAotCSZjbXgyNzBfYXVkaW9fZGV2aWNlLAogCSZjbXgyNzBfcnRjX2RldmljZSwKIAkmY214MjcwXzI3MDBHLAogCSZjbXgyNzBfbGVkX2RldmljZSwKQEAgLTU5NCw2ICs1ODgsNyBAQAogCiAJLyogcmVnaXN0ZXIgQ00tWDI3MCBwbGF0Zm9ybSBkZXZpY2VzICovCiAJcGxhdGZvcm1fYWRkX2RldmljZXMocGxhdGZvcm1fZGV2aWNlcywgQVJSQVlfU0laRShwbGF0Zm9ybV9kZXZpY2VzKSk7CisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAKIAkvKiBzZXQgTUNJIGFuZCBPSENJIHBsYXRmb3JtIHBhcmFtZXRlcnMgKi8KIAlweGFfc2V0X21jaV9pbmZvKCZjbXgyNzBfbWNpX3BsYXRmb3JtX2RhdGEpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2kuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpLmMKaW5kZXggYjc1N2RkNy4uYjM3NjcxYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2kuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbW1jLmg+CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaV9wbS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2lfcG0uYwppbmRleCAwYTg1ZjcwLi5lOTFjMGYyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaV9wbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpX3BtLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zaGFycHNsLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY29yZ2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlICJzaGFycHNsLmgiCiAKQEAgLTIwNCw3ICsyMDUsOSBAQAogCS5yZWFkX2RldmRhdGEgICAgPSBjb3JnaXBtX3JlYWRfZGV2ZGF0YSwKIAkuY2hhcmdlcl93YWtldXAgID0gY29yZ2lfY2hhcmdlcl93YWtldXAsCiAJLnNob3VsZF93YWtldXAgICA9IGNvcmdpX3Nob3VsZF93YWtldXAsCisjaWZkZWYgQ09ORklHX0JBQ0tMSUdIVF9DT1JHSQogCS5iYWNrbGlnaHRfbGltaXQgPSBjb3JnaWJsX2xpbWl0X2ludGVuc2l0eSwKKyNlbmRpZgogCS5jaGFyZ2Vfb25fdm9sdAkgID0gU0hBUlBTTF9DSEFSR0VfT05fVk9MVCwKIAkuY2hhcmdlX29uX3RlbXAJICA9IFNIQVJQU0xfQ0hBUkdFX09OX1RFTVAsCiAJLmNoYXJnZV9hY2luX2hpZ2ggPSBTSEFSUFNMX0NIQVJHRV9PTl9BQ0lOX0hJR0gsCkBAIC0yMjYsNiArMjI5LDEwIEBACiB7CiAJaW50IHJldDsKIAorCWlmICghbWFjaGluZV9pc19jb3JnaSgpICYmICFtYWNoaW5lX2lzX3NoZXBoZXJkKCkKKwkJCSYmICFtYWNoaW5lX2lzX2h1c2t5KCkpCisJCXJldHVybiAtRU5PREVWOworCiAJY29yZ2lwbV9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNoYXJwc2wtcG0iLCAtMSk7CiAJaWYgKCFjb3JnaXBtX2RldmljZSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmMKaW5kZXggZDZjMDViNi4uYTZmMjM5MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuYwpAQCAtMTAsMTEgKzEwLDE0IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvbW1jLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJkYS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2kyYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyN3guaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMjd4X2tleXBhZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NhbWVyYS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CiAKICNpbmNsdWRlICJkZXZpY2VzLmgiCisjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiB2b2lkIF9faW5pdCBweGFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIHsKQEAgLTkxLDggKzk0LDE5IEBACiAKIHN0YXRpYyB1NjQgdWRjX2RtYV9tYXNrID0gfih1MzIpMDsKIAotc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX3VkYyA9IHsKLQkubmFtZQkJPSAicHhhMnh4LXVkYyIsCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI1eF9kZXZpY2VfdWRjID0geworCS5uYW1lCQk9ICJweGEyNXgtdWRjIiwKKwkuaWQJCT0gLTEsCisJLnJlc291cmNlCT0gcHhhMnh4X3VkY19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTJ4eF91ZGNfcmVzb3VyY2VzKSwKKwkuZGV2CQk9ICB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnB4YV91ZGNfaW5mbywKKwkJLmRtYV9tYXNrCT0gJnVkY19kbWFfbWFzaywKKwl9Cit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfdWRjID0geworCS5uYW1lCQk9ICJweGEyN3gtdWRjIiwKIAkuaWQJCT0gLTEsCiAJLnJlc291cmNlCT0gcHhhMnh4X3VkY19yZXNvdXJjZXMsCiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTJ4eF91ZGNfcmVzb3VyY2VzKSwKQEAgLTIzMyw4ICsyNDcsMTUgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhaTJjX3Jlc291cmNlcyksCiB9OwogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBweGEyN3hfaTJjX21mcF9jZmdbXSA9IHsKKwlHUElPMTE3X0kyQ19TQ0wsCisJR1BJTzExOF9JMkNfU0RBLAorfTsKKwogdm9pZCBfX2luaXQgcHhhX3NldF9pMmNfaW5mbyhzdHJ1Y3QgaTJjX3B4YV9wbGF0Zm9ybV9kYXRhICppbmZvKQogeworCWlmIChjcHVfaXNfcHhhMjd4KCkpCisJCXB4YTJ4eF9tZnBfY29uZmlnKEFSUkFZX0FORF9TSVpFKHB4YTI3eF9pMmNfbWZwX2NmZykpOwogCXB4YV9yZWdpc3Rlcl9kZXZpY2UoJnB4YV9kZXZpY2VfaTJjLCBpbmZvKTsKIH0KIApAQCAtMjc4LDggKzI5OSw2OSBAQAogCS5pZAkJPSAtMSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhX2FjOTdfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQgID0gMHg0MDUwMDAwMCwKKwkJLmVuZAk9IDB4NDA1MDAwMDAgKyAweGZmZiwKKwkJLmZsYWdzICA9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzFdID0geworCQkuc3RhcnQgID0gSVJRX0FDOTcsCisJCS5lbmQgICAgPSBJUlFfQUM5NywKKwkJLmZsYWdzICA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgdTY0IHB4YV9hYzk3X2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9hYzk3ID0geworCS5uYW1lICAgICAgICAgICA9ICJweGEyeHgtYWM5NyIsCisJLmlkICAgICAgICAgICAgID0gLTEsCisJLmRldiAgICAgICAgICAgID0geworCQkuZG1hX21hc2sgPSAmcHhhX2FjOTdfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gMHhmZmZmZmZmZiwKKwl9LAorCS5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUocHhhX2FjOTdfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgICAgICAgPSBweGFfYWM5N19yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBweGFfc2V0X2FjOTdfaW5mbyhweGEyeHhfYXVkaW9fb3BzX3QgKm9wcykKK3sKKwlweGFfcmVnaXN0ZXJfZGV2aWNlKCZweGFfZGV2aWNlX2FjOTcsIG9wcyk7Cit9CisKICNpZmRlZiBDT05GSUdfUFhBMjV4CiAKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjV4X3Jlc291cmNlX3B3bTBbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBiMDAwMDAsCisJCS5lbmQJPSAweDQwYjAwMDBmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyNXhfZGV2aWNlX3B3bTAgPSB7CisJLm5hbWUJCT0gInB4YTI1eC1wd20iLAorCS5pZAkJPSAwLAorCS5yZXNvdXJjZQk9IHB4YTI1eF9yZXNvdXJjZV9wd20wLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyNXhfcmVzb3VyY2VfcHdtMCksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI1eF9yZXNvdXJjZV9wd20xW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSAweDQwYzAwMDAwLAorCQkuZW5kCT0gMHg0MGMwMDAwZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV9wd20xID0geworCS5uYW1lCQk9ICJweGEyNXgtcHdtIiwKKwkuaWQJCT0gMSwKKwkucmVzb3VyY2UJPSBweGEyNXhfcmVzb3VyY2VfcHdtMSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMjV4X3Jlc291cmNlX3B3bTEpLAorfTsKKwogc3RhdGljIHU2NCBweGEyNXhfc3NwX2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyNXhfcmVzb3VyY2Vfc3NwW10gPSB7CkBAIC01NjgsNiArNjUwLDM2IEBACiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTI3eF9yZXNvdXJjZV9zc3AzKSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjd4X3Jlc291cmNlX3B3bTBbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBiMDAwMDAsCisJCS5lbmQJPSAweDQwYjAwMDFmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX3B3bTAgPSB7CisJLm5hbWUJCT0gInB4YTI3eC1wd20iLAorCS5pZAkJPSAwLAorCS5yZXNvdXJjZQk9IHB4YTI3eF9yZXNvdXJjZV9wd20wLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyN3hfcmVzb3VyY2VfcHdtMCksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI3eF9yZXNvdXJjZV9wd20xW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSAweDQwYzAwMDAwLAorCQkuZW5kCT0gMHg0MGMwMDAxZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9wd20xID0geworCS5uYW1lCQk9ICJweGEyN3gtcHdtIiwKKwkuaWQJCT0gMSwKKwkucmVzb3VyY2UJPSBweGEyN3hfcmVzb3VyY2VfcHdtMSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMjd4X3Jlc291cmNlX3B3bTEpLAorfTsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyN3hfcmVzb3VyY2VfY2FtZXJhW10gPSB7CiAJWzBdID0gewogCQkuc3RhcnQJPSAweDUwMDAwMDAwLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5oIGIvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5oCmluZGV4IGZjYWIwMTcuLmI4NTJlYjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuaAorKysgYi9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmgKQEAgLTEsNyArMSw4IEBACiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX21jaTsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTN4eF9kZXZpY2VfbWNpMjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTN4eF9kZXZpY2VfbWNpMzsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfdWRjOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV91ZGM7CitleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX3VkYzsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfZmI7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2ZmdWFydDsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfYnR1YXJ0OwpAQCAtMTEsNiArMTIsNyBAQAogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9pMnM7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2ZpY3A7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX3J0YzsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfYWM5NzsKIAogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9pMmNfcG93ZXI7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX29oY2k7CkBAIC0yNCw0ICsyNiw5IEBACiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX3NzcDM7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEzeHhfZGV2aWNlX3NzcDQ7CiAKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI1eF9kZXZpY2VfcHdtMDsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI1eF9kZXZpY2VfcHdtMTsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfcHdtMDsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfcHdtMTsKKwogdm9pZCBfX2luaXQgcHhhX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvZW0teDI3MC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvZW0teDI3MC5jCmluZGV4IDljNTc3MDAuLjFiZjY4MDcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2VtLXgyNzAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9lbS14MjcwLmMKQEAgLTI0LDYgKzI0LDggQEAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyN3gtdWRjLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGFmYi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KQEAgLTcyLDEyICs3NCw2IEBACiAJfQogfTsKIAotLyogYXVkaW8gZGV2aWNlICovCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBlbV94MjcwX2F1ZGlvID0gewotCS5uYW1lCQk9ICJweGEyeHgtYWM5NyIsCi0JLmlkCQk9IC0xLAotfTsKLQogLyogV005NzEyIHRvdWNoc2NyZWVuIGNvbnRyb2xsZXIuIEhvcGVmdWxseSB0aGUgZHJpdmVyIHdpbGwgbWFrZSBpdCB0bwogICogdGhlIG1haW5zdHJlYW0gc29tZXRpbWUgKi8KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVtX3gyNzBfdHMgPSB7CkBAIC0yMTcsNyArMjEzLDYgQEAKIC8qIHBsYXRmb3JtIGRldmljZXMgKi8KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmZW1feDI3MF9kbTlrLAotCSZlbV94MjcwX2F1ZGlvLAogCSZlbV94MjcwX3RzLAogCSZlbV94MjcwX3J0YywKIAkmZW1feDI3MF9uYW5kLApAQCAtMzI1LDYgKzMyMCw3IEBACiAKIAkvKiByZWdpc3RlciBFTS1YMjcwIHBsYXRmb3JtIGRldmljZXMgKi8KIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhwbGF0Zm9ybV9kZXZpY2VzLCBBUlJBWV9TSVpFKHBsYXRmb3JtX2RldmljZXMpKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAogCS8qIHNldCBNQ0kgYW5kIE9IQ0kgcGxhdGZvcm0gcGFyYW1ldGVycyAqLwogCXB4YV9zZXRfbWNpX2luZm8oJmVtX3gyNzBfbWNpX3BsYXRmb3JtX2RhdGEpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvZ2VuZXJpYy5jIGIvYXJjaC9hcm0vbWFjaC1weGEvZ2VuZXJpYy5jCmluZGV4IDQ0NjE3OTMuLmNhMDUzMjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2dlbmVyaWMuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9nZW5lcmljLmMKQEAgLTYwLDIzICs2MCw2IEBACiBFWFBPUlRfU1lNQk9MKGdldF9tZW1jbGtfZnJlcXVlbmN5XzEwa2h6KTsKIAogLyoKLSAqIFJvdXRpbmUgdG8gc2FmZWx5IGVuYWJsZSBvciBkaXNhYmxlIGEgY2xvY2sgaW4gdGhlIENLRU4KLSAqLwotdm9pZCBfX3B4YV9zZXRfY2tlbihpbnQgY2xvY2ssIGludCBlbmFibGUpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQlpZiAoZW5hYmxlKQotCQlDS0VOIHw9ICgxIDw8IGNsb2NrKTsKLQllbHNlCi0JCUNLRU4gJj0gfigxIDw8IGNsb2NrKTsKLQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLX0KLUVYUE9SVF9TWU1CT0woX19weGFfc2V0X2NrZW4pOwotCi0vKgogICogSW50ZWwgUFhBMnh4IGludGVybmFsIHJlZ2lzdGVyIG1hcHBpbmcuCiAgKgogICogTm90ZSAxOiBub3QgYWxsIFBYQTJ4eCB2YXJpYW50cyBpbXBsZW1lbnQgYWxsIHRob3NlIGFkZHJlc3Nlcy4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2lycS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvaXJxLmMKaW5kZXggYTlhMGMzZi4uZmJmZjU1NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvaXJxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvaXJxLmMKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9scGQyNzAuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2xwZDI3MC5jCmluZGV4IGEyMGU0YjEuLmNjMWM0ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2xwZDI3MC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2xwZDI3MC5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgogCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CkBAIC0xMzQsOSArMTM1LDEyIEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGxwZDI3MF9pcnFfZGV2aWNlX2luaXQodm9pZCkKIHsKLQlpbnQgcmV0ID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZscGQyNzBfaXJxX3N5c2NsYXNzKTsKLQlpZiAocmV0ID09IDApCi0JCXJldCA9IHN5c2Rldl9yZWdpc3RlcigmbHBkMjcwX2lycV9kZXZpY2UpOworCWludCByZXQgPSAtRU5PREVWOworCWlmIChtYWNoaW5lX2lzX2xvZ2ljcGRfcHhhMjcwKCkpIHsKKwkJcmV0ID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZscGQyNzBfaXJxX3N5c2NsYXNzKTsKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZscGQyNzBfaXJxX2RldmljZSk7CisJfQogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE2NCwxMSArMTY4LDYgQEAKIAkucmVzb3VyY2UJPSBzbWM5MXhfcmVzb3VyY2VzLAogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbHBkMjcwX2F1ZGlvX2RldmljZSA9IHsKLQkubmFtZQkJPSAicHhhMnh4LWFjOTciLAotCS5pZAkJPSAtMSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbHBkMjcwX2ZsYXNoX3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKIAkJLnN0YXJ0CT0gUFhBX0NTMF9QSFlTLApAQCAtMjMzLDIxICsyMzIsMjAgQEAKIAl9LAogfTsKIAotc3RhdGljIHZvaWQgbHBkMjcwX2JhY2tsaWdodF9wb3dlcihpbnQgb24pCi17Ci0JaWYgKG9uKSB7Ci0JCXB4YV9ncGlvX21vZGUoR1BJTzE2X1BXTTBfTUQpOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAxKTsKLQkJUFdNX0NUUkwwID0gMDsKLQkJUFdNX1BXRFVUWTAgPSAweDNmZjsKLQkJUFdNX1BFUlZBTDAgPSAweDNmZjsKLQl9IGVsc2UgewotCQlQV01fQ1RSTDAgPSAwOwotCQlQV01fUFdEVVRZMCA9IDB4MDsKLQkJUFdNX1BFUlZBTDAgPSAweDNGRjsKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMCk7Ci0JfQotfQorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgbHBkMjcwX2JhY2tsaWdodF9kYXRhID0geworCS5wd21faWQJCT0gMCwKKwkubWF4X2JyaWdodG5lc3MJPSAxLAorCS5kZnRfYnJpZ2h0bmVzcwk9IDEsCisJLnB3bV9wZXJpb2RfbnMJPSA3ODc3MCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxwZDI3MF9iYWNrbGlnaHRfZGV2aWNlID0geworCS5uYW1lCQk9ICJwd20tYmFja2xpZ2h0IiwKKwkuZGV2CQk9IHsKKwkJLnBhcmVudAk9ICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2LAorCQkucGxhdGZvcm1fZGF0YSA9ICZscGQyNzBfYmFja2xpZ2h0X2RhdGEsCisJfSwKK307CiAKIC8qIDUuNyIgVEZUIFFWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgMSkgKi8KIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIHNoYXJwX2xxMDU3cTNkYzAyX21vZGUgPSB7CkBAIC0yNjksNyArMjY3LDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIC8qIDEyLjEiIFRGVCBTVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDIpICovCkBAIC0yOTIsNyArMjg5LDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIC8qIDMuNiIgVEZUIFFWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgMykgKi8KQEAgLTMxNSw3ICszMTEsNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogLyogNi40IiBURlQgVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDUpICovCkBAIC0zMzgsNyArMzMzLDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIC8qIDEwLjQiIFRGVCBWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgNykgKi8KQEAgLTM2MSw3ICszNTUsNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogLyogMy41IiBURlQgUVZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciA4KSAqLwpAQCAtMzg0LDcgKzM3Nyw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiBzdGF0aWMgc3RydWN0IHB4YWZiX21hY2hfaW5mbyAqbHBkMjcwX2xjZF90b191c2U7CkBAIC00MTQsNyArNDA2LDcgQEAKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzbWM5MXhfZGV2aWNlLAotCSZscGQyNzBfYXVkaW9fZGV2aWNlLAorCSZscGQyNzBfYmFja2xpZ2h0X2RldmljZSwKIAkmbHBkMjcwX2ZsYXNoX2RldmljZVswXSwKIAkmbHBkMjcwX2ZsYXNoX2RldmljZVsxXSwKIH07CkBAIC00NTQsOSArNDQ2LDEyIEBACiAJICogT24gTG9naWNQRCBQWEEyNzAsIHdlIHJvdXRlIEFDOTdfU1lTQ0xLIHZpYSBHUElPNDUuCiAJICovCiAJcHhhX2dwaW9fbW9kZShHUElPNDVfU1lTQ0xLX0FDOTdfTUQpOworCXB4YV9ncGlvX21vZGUoR1BJTzE2X1BXTTBfTUQpOwogCiAJcGxhdGZvcm1fYWRkX2RldmljZXMocGxhdGZvcm1fZGV2aWNlcywgQVJSQVlfU0laRShwbGF0Zm9ybV9kZXZpY2VzKSk7CiAKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKKwogCWlmIChscGQyNzBfbGNkX3RvX3VzZSAhPSBOVUxMKQogCQlzZXRfcHhhX2ZiX2luZm8obHBkMjcwX2xjZF90b191c2UpOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9sdWJib2NrLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9sdWJib2NrLmMKaW5kZXggN2I5YmRkMC4uYTNmYWU0MSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2x1YmJvY2suYwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMjV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9sdWJib2NrLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvdWRjLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJkYS5oPgpAQCAtMTk2LDExICsxOTcsNiBAQAogCS8vIG5vIEQrIHB1bGx1cDsgbHViYm9jayBjYW4ndCBjb25uZWN0L2Rpc2Nvbm5lY3QgaW4gc29mdHdhcmUKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGx1Yl9hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHNhMTExMV9yZXNvdXJjZXNbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IDB4MTAwMDAwMDAsCkBAIC0zNjgsNyArMzY0LDYgQEAKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzYTExMTFfZGV2aWNlLAotCSZsdWJfYXVkaW9fZGV2aWNlLAogCSZzbWM5MXhfZGV2aWNlLAogCSZsdWJib2NrX2ZsYXNoX2RldmljZVswXSwKIAkmbHViYm9ja19mbGFzaF9kZXZpY2VbMV0sCkBAIC00OTQsNiArNDg5LDcgQEAKIAlzZXRfcHhhX2ZiX2luZm8oJnNoYXJwX2xtOHYzMSk7CiAJcHhhX3NldF9tY2lfaW5mbygmbHViYm9ja19tY2lfcGxhdGZvcm1fZGF0YSk7CiAJcHhhX3NldF9maWNwX2luZm8oJmx1YmJvY2tfZmljcF9wbGF0Zm9ybV9kYXRhKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAogCWx1YmJvY2tfZmxhc2hfZGF0YVswXS53aWR0aCA9IGx1YmJvY2tfZmxhc2hfZGF0YVsxXS53aWR0aCA9CiAJCShCT09UX0RFRiAmIDEpID8gMiA6IDQ7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9tYWdpY2lhbi5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFnaWNpYW4uYwppbmRleCBiYWRiYTA2Li4wMWIyZmE3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9tYWdpY2lhbi5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL21hZ2ljaWFuLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdGQvbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9wZGFfcG93ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9wd21fYmFja2xpZ2h0Lmg+CiAKICNpbmNsdWRlIDxhc20vZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgpAQCAtMzMsMTIgKzM0LDE0IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvbWFnaWNpYW4uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMjd4Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaTJjLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbW1jLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJkYS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KIAorI2luY2x1ZGUgImRldmljZXMuaCIKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1hZ2ljaWFuX3Bpbl9jb25maWdbXSA9IHsKQEAgLTM0OCw0MCArMzUxLDU4IEBACiAgKiBCYWNrbGlnaHQKICAqLwogCi1zdGF0aWMgdm9pZCBtYWdpY2lhbl9zZXRfYmxfaW50ZW5zaXR5KGludCBpbnRlbnNpdHkpCitzdGF0aWMgaW50IG1hZ2ljaWFuX2JhY2tsaWdodF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlpZiAoaW50ZW5zaXR5KSB7Ci0JCVBXTV9DVFJMMCA9IDE7Ci0JCVBXTV9QRVJWQUwwID0gMHhjODsKLQkJaWYgKGludGVuc2l0eSA+IDB4YzcpIHsKLQkJCVBXTV9QV0RVVFkwID0gaW50ZW5zaXR5IC0gMHg0ODsKLQkJCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMiwgMSk7Ci0JCX0gZWxzZSB7Ci0JCQlQV01fUFdEVVRZMCA9IGludGVuc2l0eTsKLQkJCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMiwgMCk7Ci0JCX0KLQkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIsIDEpOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAxKTsKKwlpbnQgcmV0OworCisJcmV0ID0gZ3Bpb19yZXF1ZXN0KEVHUElPX01BR0lDSUFOX0JMX1BPV0VSLCAiQkxfUE9XRVIiKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsKKwlyZXQgPSBncGlvX3JlcXVlc3QoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyLCAiQkxfUE9XRVIyIik7CisJaWYgKHJldCkKKwkJZ290byBlcnIyOworCXJldHVybiAwOworCitlcnIyOgorCWdwaW9fZnJlZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUik7CitlcnI6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBtYWdpY2lhbl9iYWNrbGlnaHRfbm90aWZ5KGludCBicmlnaHRuZXNzKQoreworCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSLCBicmlnaHRuZXNzKTsKKwlpZiAoYnJpZ2h0bmVzcyA+PSAyMDApIHsKKwkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyLCAxKTsKKwkJcmV0dXJuIGJyaWdodG5lc3MgLSA3MjsKIAl9IGVsc2UgewotCQkvKiBQV01fUFdEVVRZMCA9IGludGVuc2l0eTsgKi8KLQkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIsIDApOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAwKTsKKwkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyLCAwKTsKKwkJcmV0dXJuIGJyaWdodG5lc3M7CiAJfQogfQogCi1zdGF0aWMgc3RydWN0IGdlbmVyaWNfYmxfaW5mbyBiYWNrbGlnaHRfaW5mbyA9IHsKLQkuZGVmYXVsdF9pbnRlbnNpdHkgPSAweDY0LAotCS5saW1pdF9tYXNrICAgICAgICA9IDB4MGIsCi0JLm1heF9pbnRlbnNpdHkgICAgID0gMHhjNysweDQ4LAotCS5zZXRfYmxfaW50ZW5zaXR5ICA9IG1hZ2ljaWFuX3NldF9ibF9pbnRlbnNpdHksCitzdGF0aWMgdm9pZCBtYWdpY2lhbl9iYWNrbGlnaHRfZXhpdChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJZ3Bpb19mcmVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSKTsKKwlncGlvX2ZyZWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgYmFja2xpZ2h0X2RhdGEgPSB7CisJLnB3bV9pZCAgICAgICAgID0gMCwKKwkubWF4X2JyaWdodG5lc3MgPSAyNzIsCisJLmRmdF9icmlnaHRuZXNzID0gMTAwLAorCS5wd21fcGVyaW9kX25zICA9IDMwOTIzLAorCS5pbml0ICAgICAgICAgICA9IG1hZ2ljaWFuX2JhY2tsaWdodF9pbml0LAorCS5ub3RpZnkgICAgICAgICA9IG1hZ2ljaWFuX2JhY2tsaWdodF9ub3RpZnksCisJLmV4aXQgICAgICAgICAgID0gbWFnaWNpYW5fYmFja2xpZ2h0X2V4aXQsCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBiYWNrbGlnaHQgPSB7Ci0JLm5hbWUgPSAiZ2VuZXJpYy1ibCIsCisJLm5hbWUgPSAicHdtLWJhY2tsaWdodCIsCiAJLmRldiAgPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJmJhY2tsaWdodF9pbmZvLAorCQkucGFyZW50ICAgICAgICA9ICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2LAorCQkucGxhdGZvcm1fZGF0YSA9ICZiYWNrbGlnaHRfZGF0YSwKIAl9LAotCS5pZCAgID0gLTEsCiB9OwogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9tYWluc3RvbmUuYwppbmRleCA3Mzk5ZmIzLi5mMmU5ZTdjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9tYWluc3RvbmUuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9tYWluc3RvbmUuYwpAQCAtMjMsOSArMjMsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgotI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgogI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgogCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CkBAIC0yODAsMTIgKzI4MCw2IEBACiAJLnJlc3VtZQkJPSBtc3RfYXVkaW9fcmVzdW1lLAogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXN0X2F1ZGlvX2RldmljZSA9IHsKLQkubmFtZQkJPSAicHhhMnh4LWFjOTciLAotCS5pZAkJPSAtMSwKLQkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgPSAmbXN0X2F1ZGlvX29wcyB9LAotfTsKLQogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBmbGFzaF9yZXNvdXJjZXNbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IFBYQV9DUzBfUEhZUywKQEAgLTM0OSw1NiArMzQzLDI3IEBACiAJfSwKIH07CiAKLSNpZmRlZiBDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRQotc3RhdGljIGludCBtYWluc3RvbmVfYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQotewotCWludCBicmlnaHRuZXNzID0gYmwtPnByb3BzLmJyaWdodG5lc3M7CisjaWYgZGVmaW5lZChDT05GSUdfRkJfUFhBKSB8fCBkZWZpbmVkKENPTkZJR19GQl9QWEFfTU9EVUxFKQorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgbWFpbnN0b25lX2JhY2tsaWdodF9kYXRhID0geworCS5wd21faWQJCT0gMCwKKwkubWF4X2JyaWdodG5lc3MJPSAxMDIzLAorCS5kZnRfYnJpZ2h0bmVzcwk9IDEwMjMsCisJLnB3bV9wZXJpb2RfbnMJPSA3ODc3MCwKK307CiAKLQlpZiAoYmwtPnByb3BzLnBvd2VyICE9IEZCX0JMQU5LX1VOQkxBTksgfHwKLQkgICAgYmwtPnByb3BzLmZiX2JsYW5rICE9IEZCX0JMQU5LX1VOQkxBTkspCi0JCWJyaWdodG5lc3MgPSAwOwotCi0JaWYgKGJyaWdodG5lc3MgIT0gMCkKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMSk7Ci0KLQlQV01fQ1RSTDAgPSAwOwotCVBXTV9QV0RVVFkwID0gYnJpZ2h0bmVzczsKLQlQV01fUEVSVkFMMCA9IGJsLT5wcm9wcy5tYXhfYnJpZ2h0bmVzczsKLQotCWlmIChicmlnaHRuZXNzID09IDApCi0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDApOwotCXJldHVybiAwOyAvKiBwb2ludGxlc3MgcmV0dXJuIHZhbHVlICovCi19Ci0KLXN0YXRpYyBpbnQgbWFpbnN0b25lX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwpCi17Ci0JcmV0dXJuIFBXTV9QV0RVVFkwOwotfQotCi1zdGF0aWMgLypjb25zdCovIHN0cnVjdCBiYWNrbGlnaHRfb3BzIG1haW5zdG9uZV9iYWNrbGlnaHRfb3BzID0gewotCS51cGRhdGVfc3RhdHVzCT0gbWFpbnN0b25lX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzLAotCS5nZXRfYnJpZ2h0bmVzcwk9IG1haW5zdG9uZV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3MsCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtYWluc3RvbmVfYmFja2xpZ2h0X2RldmljZSA9IHsKKwkubmFtZQkJPSAicHdtLWJhY2tsaWdodCIsCisJLmRldgkJPSB7CisJCS5wYXJlbnQgPSAmcHhhMjd4X2RldmljZV9wd20wLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEgPSAmbWFpbnN0b25lX2JhY2tsaWdodF9kYXRhLAorCX0sCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgbWFpbnN0b25lX2JhY2tsaWdodF9yZWdpc3Rlcih2b2lkKQogewotCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibDsKLQotCWJsID0gYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcigibWFpbnN0b25lLWJsIiwgJnB4YV9kZXZpY2VfZmIuZGV2LAotCQkJCSAgICAgICBOVUxMLCAmbWFpbnN0b25lX2JhY2tsaWdodF9vcHMpOwotCWlmIChJU19FUlIoYmwpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWFpbnN0b25lOiB1bmFibGUgdG8gcmVnaXN0ZXIgYmFja2xpZ2h0OiAlbGRcbiIsCi0JCSAgICAgICBQVFJfRVJSKGJsKSk7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKgotCSAqIGJyb2tlbiBkZXNpZ24gLSByZWdpc3Rlci10aGVuLXNldHVwIGludGVyZmFjZXMgYXJlCi0JICogdXR0ZXJseSBicm9rZW4gYnkgZGVmaW5pdGlvbi4KLQkgKi8KLQlibC0+cHJvcHMubWF4X2JyaWdodG5lc3MgPSAxMDIzOwotCWJsLT5wcm9wcy5icmlnaHRuZXNzID0gMTAyMzsKLQliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7CisJaW50IHJldCA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbWFpbnN0b25lX2JhY2tsaWdodF9kZXZpY2UpOworCWlmIChyZXQpCisJCXByaW50ayhLRVJOX0VSUiAibWFpbnN0b25lOiBmYWlsZWQgdG8gcmVnaXN0ZXIgYmFja2xpZ2h0IGRldmljZTogJWRcbiIsIHJldCk7CiB9CiAjZWxzZQogI2RlZmluZSBtYWluc3RvbmVfYmFja2xpZ2h0X3JlZ2lzdGVyKCkJZG8geyB9IHdoaWxlICgwKQpAQCAtNTI4LDcgKzQ5Myw2IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmc21jOTF4X2RldmljZSwKLQkmbXN0X2F1ZGlvX2RldmljZSwKIAkmbXN0X2ZsYXNoX2RldmljZVswXSwKIAkmbXN0X2ZsYXNoX2RldmljZVsxXSwKIAkmbXN0X2dwaW9fa2V5c19kZXZpY2UsCkBAIC02MzgsNiArNjAyLDcgQEAKIAlweGFfc2V0X2ZpY3BfaW5mbygmbWFpbnN0b25lX2ZpY3BfcGxhdGZvcm1fZGF0YSk7CiAJcHhhX3NldF9vaGNpX2luZm8oJm1haW5zdG9uZV9vaGNpX3BsYXRmb3JtX2RhdGEpOwogCXB4YV9zZXRfaTJjX2luZm8oTlVMTCk7CisJcHhhX3NldF9hYzk3X2luZm8oJm1zdF9hdWRpb19vcHMpOwogCiAJbWFpbnN0b25lX2luaXRfa2V5cGFkKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9tZnAtcHhhMnh4LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9tZnAtcHhhMnh4LmMKaW5kZXggMjIwOTdhMS4uZDFjZGI0ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbWZwLXB4YTJ4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL21mcC1weGEyeHguYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTJ4eC5oPgogCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcGNtOTkwLWJhc2Vib2FyZC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcGNtOTkwLWJhc2Vib2FyZC5jCmluZGV4IDQ5ZDk1MWQuLjVkODdjN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3BjbTk5MC1iYXNlYm9hcmQuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9wY205OTAtYmFzZWJvYXJkLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pZGUuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wd21fYmFja2xpZ2h0Lmg+CiAKICNpbmNsdWRlIDxtZWRpYS9zb2NfY2FtZXJhLmg+CiAKQEAgLTMzLDEyICszNCwxMDMgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcGNtOTkwX2Jhc2Vib2FyZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CisKKyNpbmNsdWRlICJkZXZpY2VzLmgiCiAKIC8qCi0gKiBUaGUgUENNLTk5MCBkZXZlbG9wbWVudCBiYXNlYm9hcmQgdXNlcyBQQ00tMDI3J3MgaGFyZGV3YXJlIGluIHRoZQorICogcGNtOTkwX2xjZF9wb3dlciAtIGNvbnRyb2wgcG93ZXIgc3VwcGx5IHRvIHRoZSBMQ0QKKyAqIEBvbjogMCA9IHN3aXRjaCBvZmYsIDEgPSBzd2l0Y2ggb24KKyAqCisgKiBDYWxsZWQgYnkgdGhlIHB4YWZiIGRyaXZlcgorICovCisjaWZuZGVmIENPTkZJR19QQ005OTBfRElTUExBWV9OT05FCitzdGF0aWMgdm9pZCBwY205OTBfbGNkX3Bvd2VyKGludCBvbiwgc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIpCit7CisJaWYgKG9uKSB7CisJCS8qIGVuYWJsZSBMQ0QtTGF0Y2hlcworCQkgKiBwb3dlciBvbiBMQ0QKKwkJICovCisJCV9fUENNOTkwX0NUUkxfUkVHKFBDTTk5MF9DVFJMX1BIWVMgKyBQQ005OTBfQ1RSTF9SRUczKSA9CisJCQlQQ005OTBfQ1RSTF9MQ0RQV1IgKyBQQ005OTBfQ1RSTF9MQ0RPTjsKKwl9IGVsc2UgeworCQkvKiBkaXNhYmxlIExDRC1MYXRjaGVzCisJCSAqIHBvd2VyIG9mZiBMQ0QKKwkJICovCisJCV9fUENNOTkwX0NUUkxfUkVHKFBDTTk5MF9DVFJMX1BIWVMgKyBQQ005OTBfQ1RSTF9SRUczKSA9IDB4MDA7CisJfQorfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19QQ005OTBfRElTUExBWV9TSEFSUCkKK3N0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIGZiX2luZm9fc2hhcnBfbHEwODR2MWRnMjEgPSB7CisJLnBpeGNsb2NrCQk9IDI4MDAwLAorCS54cmVzCQkJPSA2NDAsCisJLnlyZXMJCQk9IDQ4MCwKKwkuYnBwCQkJPSAxNiwKKwkuaHN5bmNfbGVuCQk9IDIwLAorCS5sZWZ0X21hcmdpbgkJPSAxMDMsCisJLnJpZ2h0X21hcmdpbgkJPSA0NywKKwkudnN5bmNfbGVuCQk9IDYsCisJLnVwcGVyX21hcmdpbgkJPSAyOCwKKwkubG93ZXJfbWFyZ2luCQk9IDUsCisJLnN5bmMJCQk9IDAsCisJLmNtYXBfZ3JleXNjYWxlCQk9IDAsCit9OworCitzdGF0aWMgc3RydWN0IHB4YWZiX21hY2hfaW5mbyBwY205OTBfZmJpbmZvIF9faW5pdGRhdGEgPSB7CisJLm1vZGVzCQkJPSAmZmJfaW5mb19zaGFycF9scTA4NHYxZGcyMSwKKwkubnVtX21vZGVzCQk9IDEsCisJLmxjY3IwCQkJPSBMQ0NSMF9QQVMsCisJLmxjY3IzCQkJPSBMQ0NSM19QQ1AsCisJLnB4YWZiX2xjZF9wb3dlcgk9IHBjbTk5MF9sY2RfcG93ZXIsCit9OworI2VsaWYgZGVmaW5lZChDT05GSUdfUENNOTkwX0RJU1BMQVlfTkVDKQorc3RydWN0IHB4YWZiX21vZGVfaW5mbyBmYl9pbmZvX25lY19ubDY0NDhiYzIwXzE4ZCA9IHsKKwkucGl4Y2xvY2sJCT0gMzk3MjAsCisJLnhyZXMJCQk9IDY0MCwKKwkueXJlcwkJCT0gNDgwLAorCS5icHAJCQk9IDE2LAorCS5oc3luY19sZW4JCT0gMzIsCisJLmxlZnRfbWFyZ2luCQk9IDE2LAorCS5yaWdodF9tYXJnaW4JCT0gNDgsCisJLnZzeW5jX2xlbgkJPSAyLAorCS51cHBlcl9tYXJnaW4JCT0gMTIsCisJLmxvd2VyX21hcmdpbgkJPSAxNywKKwkuc3luYwkJCT0gMCwKKwkuY21hcF9ncmV5c2NhbGUJCT0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvIHBjbTk5MF9mYmluZm8gX19pbml0ZGF0YSA9IHsKKwkubW9kZXMJCQk9ICZmYl9pbmZvX25lY19ubDY0NDhiYzIwXzE4ZCwKKwkubnVtX21vZGVzCQk9IDEsCisJLmxjY3IwCQkJPSBMQ0NSMF9BY3QsCisJLmxjY3IzCQkJPSBMQ0NSM19QaXhGbEVkZywKKwkucHhhZmJfbGNkX3Bvd2VyCT0gcGNtOTkwX2xjZF9wb3dlciwKK307CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgcGNtOTkwX2JhY2tsaWdodF9kYXRhID0geworCS5wd21faWQJCT0gMCwKKwkubWF4X2JyaWdodG5lc3MJPSAxMDIzLAorCS5kZnRfYnJpZ2h0bmVzcwk9IDEwMjMsCisJLnB3bV9wZXJpb2RfbnMJPSA3ODc3MCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBjbTk5MF9iYWNrbGlnaHRfZGV2aWNlID0geworCS5uYW1lCQk9ICJwd20tYmFja2xpZ2h0IiwKKwkuZGV2CQk9IHsKKwkJLnBhcmVudCA9ICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2LAorCQkucGxhdGZvcm1fZGF0YSA9ICZwY205OTBfYmFja2xpZ2h0X2RhdGEsCisJfSwKK307CisKKy8qCisgKiBUaGUgUENNLTk5MCBkZXZlbG9wbWVudCBiYXNlYm9hcmQgdXNlcyBQQ00tMDI3J3MgaGFyZHdhcmUgaW4gdGhlCiAgKiBmb2xsb3dpbmcgd2F5OgogICoKICAqIC0gTENEIHN1cHBvcnQgaXMgaW4gdXNlCkBAIC0zMzMsMzYgKzQyNSw2IEBACiAjZW5kaWYgLyogQ09ORklHX1ZJREVPX1BYQTI3eCB8fENPTkZJR19WSURFT19QWEEyN3hfTU9EVUxFICovCiAKIC8qCi0gKiBBQzk3IHN1cHBvcnQKLSAqIE5vdGU6IFRoZSBjb25uZWN0ZWQgQUM5NyBtaXhlciBhbHNvIHJlcG9ydHMgaW50ZXJydXB0cyBhdCBQQ005OTBfQUM5N19JUlEKLSAqLwotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyN3hfYWM5N19yZXNvdXJjZXNbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCAgPSAweDQwNTAwMDAwLAotCQkuZW5kCT0gMHg0MDUwMDAwMCArIDB4ZmZmLAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQlbMV0gPSB7Ci0JCS5zdGFydCAgPSBJUlFfQUM5NywKLQkJLmVuZCAgICA9IElSUV9BQzk3LAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLX07Ci0KLXN0YXRpYyB1NjQgcHhhX2FjOTdfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9hYzk3ID0gewotCS5uYW1lICAgICAgICAgICA9ICJweGEyeHgtYWM5NyIsCi0JLmlkICAgICAgICAgICAgID0gLTEsCi0JLmRldiAgICAgICAgICAgID0gewotCQkuZG1hX21hc2sgPSAmcHhhX2FjOTdfZG1hbWFzaywKLQkJLmNvaGVyZW50X2RtYV9tYXNrID0gMHhmZmZmZmZmZiwKLQl9LAotCS5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUocHhhMjd4X2FjOTdfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UgICAgICAgPSBweGEyN3hfYWM5N19yZXNvdXJjZXMsCi19OwotCi0vKgogICogZW5hYmxlIGdlbmVyaWMgYWNjZXNzIHRvIHRoZSBiYXNlIGJvYXJkIGNvbnRyb2wgQ1BMRHMgVTYgYW5kIFU3CiAgKi8KIHN0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgcGNtOTkwX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0gewpAQCAtMzkzLDcgKzQ1NSwxMSBAQAogCS8qIHJlZ2lzdGVyIENQTEQncyBJUlEgY29udHJvbGxlciAqLwogCXBjbTk5MF9pbml0X2lycSgpOwogCi0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZweGEyN3hfZGV2aWNlX2FjOTcpOworI2lmbmRlZiBDT05GSUdfUENNOTkwX0RJU1BMQVlfTk9ORQorCXNldF9weGFfZmJfaW5mbygmcGNtOTkwX2ZiaW5mbyk7CisjZW5kaWYKKwlweGFfZ3Bpb19tb2RlKEdQSU8xNl9QV00wX01EKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnBjbTk5MF9iYWNrbGlnaHRfZGV2aWNlKTsKIAogCS8qIE1NQyAqLwogCXB4YV9zZXRfbWNpX2luZm8oJnBjbTk5MF9tY2lfcGxhdGZvcm1fZGF0YSk7CkBAIC00MDIsNiArNDY4LDcgQEAKIAlweGFfc2V0X29oY2lfaW5mbygmcGNtOTkwX29oY2lfcGxhdGZvcm1fZGF0YSk7CiAKIAlweGFfc2V0X2kyY19pbmZvKE5VTEwpOworCXB4YV9zZXRfYWM5N19pbmZvKE5VTEwpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfVklERU9fUFhBMjd4KSB8fCBkZWZpbmVkKENPTkZJR19WSURFT19QWEEyN3hfTU9EVUxFKQogCXB4YV9zZXRfY2FtZXJhX2luZm8oJnBjbTk5MF9weGFjYW1lcmFfcGxhdGZvcm1fZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9wb29kbGUuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3Bvb2RsZS5jCmluZGV4IDBiMzBmMjUuLmY4MWMxMGMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3Bvb2RsZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3Bvb2RsZS5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC91ZGMuaD4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B3bS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcHdtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UyOGNkOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B3bS5jCkBAIC0wLDAgKzEsMzE5IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1weGEvcHdtLmMKKyAqCisgKiBzaW1wbGUgZHJpdmVyIGZvciBQV00gKFB1bHNlIFdpZHRoIE1vZHVsYXRvcikgY29udHJvbGxlcgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogMjAwOC0wMi0xMwlpbml0aWFsIHZlcnNpb24KKyAqIAkJZXJpYyBtaWFvIDxlcmljLm1pYW9AbWFydmVsbC5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcHdtLmg+CisKKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorCisvKiBQV00gcmVnaXN0ZXJzIGFuZCBiaXRzIGRlZmluaXRpb25zICovCisjZGVmaW5lIFBXTUNSCQkoMHgwMCkKKyNkZWZpbmUgUFdNRENSCQkoMHgwNCkKKyNkZWZpbmUgUFdNUENSCQkoMHgwOCkKKworI2RlZmluZSBQV01DUl9TRAkoMSA8PCA2KQorI2RlZmluZSBQV01EQ1JfRkQJKDEgPDwgMTApCisKK3N0cnVjdCBwd21fZGV2aWNlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkCW5vZGU7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKworCWNvbnN0IGNoYXIJKmxhYmVsOworCXN0cnVjdCBjbGsJKmNsazsKKwlpbnQJCWNsa19lbmFibGVkOworCXZvaWQgX19pb21lbQkqbW1pb19iYXNlOworCisJdW5zaWduZWQgaW50CXVzZV9jb3VudDsKKwl1bnNpZ25lZCBpbnQJcHdtX2lkOworfTsKKworLyoKKyAqIHBlcmlvZF9ucyA9IDEwXjkgKiAoUFJFU0NBTEUgKyAxKSAqIChQViArIDEpIC8gUFdNX0NMS19SQVRFCisgKiBkdXR5X25zICAgPSAxMF45ICogKFBSRVNDQUxFICsgMSkgKiBEQyAvIFBXTV9DTEtfUkFURQorICovCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucykKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgYzsKKwl1bnNpZ25lZCBsb25nIHBlcmlvZF9jeWNsZXMsIHByZXNjYWxlLCBwdiwgZGM7CisKKwlpZiAocHdtID09IE5VTEwgfHwgcGVyaW9kX25zID09IDAgfHwgZHV0eV9ucyA+IHBlcmlvZF9ucykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljID0gY2xrX2dldF9yYXRlKHB3bS0+Y2xrKTsKKwljID0gYyAqIHBlcmlvZF9uczsKKwlkb19kaXYoYywgMTAwMDAwMDAwMCk7CisJcGVyaW9kX2N5Y2xlcyA9IGM7CisKKwlpZiAocGVyaW9kX2N5Y2xlcyA8IDApCisJCXBlcmlvZF9jeWNsZXMgPSAxOworCXByZXNjYWxlID0gKHBlcmlvZF9jeWNsZXMgLSAxKSAvIDEwMjQ7CisJcHYgPSBwZXJpb2RfY3ljbGVzIC8gKHByZXNjYWxlICsgMSkgLSAxOworCisJaWYgKHByZXNjYWxlID4gNjMpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGR1dHlfbnMgPT0gcGVyaW9kX25zKQorCQlkYyA9IFBXTURDUl9GRDsKKwllbHNlCisJCWRjID0gKHB2ICsgMSkgKiBkdXR5X25zIC8gcGVyaW9kX25zOworCisJLyogTk9URTogdGhlIGNsb2NrIHRvIFBXTSBoYXMgdG8gYmUgZW5hYmxlZCBmaXJzdAorCSAqIGJlZm9yZSB3cml0aW5nIHRvIHRoZSByZWdpc3RlcnMKKwkgKi8KKwljbGtfZW5hYmxlKHB3bS0+Y2xrKTsKKwlfX3Jhd193cml0ZWwocHJlc2NhbGUsIHB3bS0+bW1pb19iYXNlICsgUFdNQ1IpOworCV9fcmF3X3dyaXRlbChkYywgcHdtLT5tbWlvX2Jhc2UgKyBQV01EQ1IpOworCV9fcmF3X3dyaXRlbChwdiwgcHdtLT5tbWlvX2Jhc2UgKyBQV01QQ1IpOworCWNsa19kaXNhYmxlKHB3bS0+Y2xrKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChwd21fY29uZmlnKTsKKworaW50IHB3bV9lbmFibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlpbnQgcmMgPSAwOworCisJaWYgKCFwd20tPmNsa19lbmFibGVkKSB7CisJCXJjID0gY2xrX2VuYWJsZShwd20tPmNsayk7CisJCWlmICghcmMpCisJCQlwd20tPmNsa19lbmFibGVkID0gMTsKKwl9CisJcmV0dXJuIHJjOworfQorRVhQT1JUX1NZTUJPTChwd21fZW5hYmxlKTsKKwordm9pZCBwd21fZGlzYWJsZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCWlmIChwd20tPmNsa19lbmFibGVkKSB7CisJCWNsa19kaXNhYmxlKHB3bS0+Y2xrKTsKKwkJcHdtLT5jbGtfZW5hYmxlZCA9IDA7CisJfQorfQorRVhQT1JUX1NZTUJPTChwd21fZGlzYWJsZSk7CisKK3N0YXRpYyBERUZJTkVfTVVURVgocHdtX2xvY2spOworc3RhdGljIExJU1RfSEVBRChwd21fbGlzdCk7CisKK3N0cnVjdCBwd21fZGV2aWNlICpwd21fcmVxdWVzdChpbnQgcHdtX2lkLCBjb25zdCBjaGFyICpsYWJlbCkKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtOworCWludCBmb3VuZCA9IDA7CisKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHB3bSwgJnB3bV9saXN0LCBub2RlKSB7CisJCWlmIChwd20tPnB3bV9pZCA9PSBwd21faWQpIHsKKwkJCWZvdW5kID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKGZvdW5kKSB7CisJCWlmIChwd20tPnVzZV9jb3VudCA9PSAwKSB7CisJCQlwd20tPnVzZV9jb3VudCsrOworCQkJcHdtLT5sYWJlbCA9IGxhYmVsOworCQl9IGVsc2UKKwkJCXB3bSA9IEVSUl9QVFIoLUVCVVNZKTsKKwl9IGVsc2UKKwkJcHdtID0gRVJSX1BUUigtRU5PRU5UKTsKKworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworCXJldHVybiBwd207Cit9CitFWFBPUlRfU1lNQk9MKHB3bV9yZXF1ZXN0KTsKKwordm9pZCBwd21fZnJlZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKworCWlmIChwd20tPnVzZV9jb3VudCkgeworCQlwd20tPnVzZV9jb3VudC0tOworCQlwd20tPmxhYmVsID0gTlVMTDsKKwl9IGVsc2UKKwkJcHJfd2FybmluZygiUFdNIGRldmljZSBhbHJlYWR5IGZyZWVkXG4iKTsKKworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworfQorRVhQT1JUX1NZTUJPTChwd21fZnJlZSk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2FkZF9wd20oc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisJbGlzdF9hZGRfdGFpbCgmcHdtLT5ub2RlLCAmcHdtX2xpc3QpOworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworfQorCitzdGF0aWMgc3RydWN0IHB3bV9kZXZpY2UgKnB3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQl1bnNpZ25lZCBpbnQgcHdtX2lkLCBzdHJ1Y3QgcHdtX2RldmljZSAqcGFyZW50X3B3bSkKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtOworCXN0cnVjdCByZXNvdXJjZSAqcjsKKwlpbnQgcmV0ID0gMDsKKworCXB3bSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwd21fZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHB3bSA9PSBOVUxMKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnlcbiIpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9CisKKwlwd20tPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgIlBXTUNMSyIpOworCWlmIChJU19FUlIocHdtLT5jbGspKSB7CisJCXJldCA9IFBUUl9FUlIocHdtLT5jbGspOworCQlnb3RvIGVycl9mcmVlOworCX0KKwlwd20tPmNsa19lbmFibGVkID0gMDsKKworCXB3bS0+dXNlX2NvdW50ID0gMDsKKwlwd20tPnB3bV9pZCA9IHB3bV9pZDsKKwlwd20tPnBkZXYgPSBwZGV2OworCisJaWYgKHBhcmVudF9wd20gIT0gTlVMTCkgeworCQkvKiByZWdpc3RlcnMgZm9yIHRoZSBzZWNvbmQgUFdNIGhhcyBvZmZzZXQgb2YgMHgxMCAqLworCQlwd20tPm1taW9fYmFzZSA9IHBhcmVudF9wd20tPm1taW9fYmFzZSArIDB4MTA7CisJCV9fYWRkX3B3bShwd20pOworCQlyZXR1cm4gcHdtOworCX0KKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmIChyID09IE5VTEwpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gbWVtb3J5IHJlc291cmNlIGRlZmluZWRcbiIpOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGVycl9mcmVlX2NsazsKKwl9CisKKwlyID0gcmVxdWVzdF9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEsIHBkZXYtPm5hbWUpOworCWlmIChyID09IE5VTEwpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgbWVtb3J5IHJlc291cmNlXG4iKTsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIGVycl9mcmVlX2NsazsKKwl9CisKKwlwd20tPm1taW9fYmFzZSA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CisJaWYgKHB3bS0+bW1pb19iYXNlID09IE5VTEwpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGlvcmVtYXAoKSByZWdpc3RlcnNcbiIpOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGVycl9mcmVlX21lbTsKKwl9CisKKwlfX2FkZF9wd20ocHdtKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwd20pOworCXJldHVybiBwd207CisKK2Vycl9mcmVlX21lbToKKwlyZWxlYXNlX21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CitlcnJfZnJlZV9jbGs6CisJY2xrX3B1dChwd20tPmNsayk7CitlcnJfZnJlZToKKwlrZnJlZShwd20pOworCXJldHVybiBFUlJfUFRSKHJldCk7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZpbml0IHB4YTI1eF9wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtID0gcHdtX3Byb2JlKHBkZXYsIHBkZXYtPmlkLCBOVUxMKTsKKworCWlmIChJU19FUlIocHdtKSkKKwkJcmV0dXJuIFBUUl9FUlIocHdtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBweGEyN3hfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKworCXB3bSA9IHB3bV9wcm9iZShwZGV2LCBwZGV2LT5pZCwgTlVMTCk7CisJaWYgKElTX0VSUihwd20pKQorCQlyZXR1cm4gUFRSX0VSUihwd20pOworCisJcHdtID0gcHdtX3Byb2JlKHBkZXYsIHBkZXYtPmlkICsgMiwgcHdtKTsKKwlpZiAoSVNfRVJSKHB3bSkpCisJCXJldHVybiBQVFJfRVJSKHB3bSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2RldmV4aXQgcHdtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJc3RydWN0IHJlc291cmNlICpyOworCisJcHdtID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJaWYgKHB3bSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKwlsaXN0X2RlbCgmcHdtLT5ub2RlKTsKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKworCWlvdW5tYXAocHdtLT5tbWlvX2Jhc2UpOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOworCisJY2xrX3B1dChwd20tPmNsayk7CisJa2ZyZWUocHdtKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcHhhMjV4X3B3bV9kcml2ZXIgPSB7CisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInB4YTI1eC1wd20iLAorCX0sCisJLnByb2JlCQk9IHB4YTI1eF9wd21fcHJvYmUsCisJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChwd21fcmVtb3ZlKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHB4YTI3eF9wd21fZHJpdmVyID0geworCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJweGEyN3gtcHdtIiwKKwl9LAorCS5wcm9iZQkJPSBweGEyN3hfcHdtX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AocHdtX3JlbW92ZSksCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwd21faW5pdCh2b2lkKQoreworCWludCByZXQgPSAwOworCisJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZweGEyNXhfcHdtX2RyaXZlcik7CisJaWYgKHJldCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byByZWdpc3RlciBweGEyNXhfcHdtX2RyaXZlclxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZweGEyN3hfcHdtX2RyaXZlcik7CisJaWYgKHJldCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byByZWdpc3RlciBweGEyN3hfcHdtX2RyaXZlclxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KK2FyY2hfaW5pdGNhbGwocHdtX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgcHdtX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHhhMjV4X3B3bV9kcml2ZXIpOworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZweGEyN3hfcHdtX2RyaXZlcik7Cit9Cittb2R1bGVfZXhpdChwd21fZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjV4LmMKaW5kZXggZTViNDE3ZC4uNGNkNTBlMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjV4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjV4LmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcnFzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyNXguaD4KICNpbmNsdWRlIDxhc20vYXJjaC9wbS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2RtYS5oPgpAQCAtMTE3LDI5ICsxMTgsMzUgQEAKIAlJTklUX0NLRU4oIlVBUlRDTEsiLCBIV1VBUlQsIDE0NzQ1NjAwLCAxLCAmcHhhX2RldmljZV9od3VhcnQuZGV2KQogOwogCisvKgorICogUFhBIDJ4eCBjbG9jayBkZWNsYXJhdGlvbnMuIE9yZGVyIGlzIGltcG9ydGFudCAoc2VlIGFsaWFzZXMgYmVsb3cpCisgKiBQbGVhc2UgYmUgY2FyZWZ1bCBub3QgdG8gZGlzcnVwdCB0aGUgb3JkZXJpbmcuCisgKi8KIHN0YXRpYyBzdHJ1Y3QgY2xrIHB4YTI1eF9jbGtzW10gPSB7CiAJSU5JVF9DSygiTENEQ0xLIiwgTENELCAmY2xrX3B4YTI1eF9sY2Rfb3BzLCAmcHhhX2RldmljZV9mYi5kZXYpLAogCUlOSVRfQ0tFTigiVUFSVENMSyIsIEZGVUFSVCwgMTQ3NDU2MDAsIDEsICZweGFfZGV2aWNlX2ZmdWFydC5kZXYpLAogCUlOSVRfQ0tFTigiVUFSVENMSyIsIEJUVUFSVCwgMTQ3NDU2MDAsIDEsICZweGFfZGV2aWNlX2J0dWFydC5kZXYpLAogCUlOSVRfQ0tFTigiVUFSVENMSyIsIFNUVUFSVCwgMTQ3NDU2MDAsIDEsIE5VTEwpLAotCUlOSVRfQ0tFTigiVURDQ0xLIiwgVVNCLCA0NzkyMzAwMCwgNSwgJnB4YV9kZXZpY2VfdWRjLmRldiksCisJSU5JVF9DS0VOKCJVRENDTEsiLCBVU0IsIDQ3OTIzMDAwLCA1LCAmcHhhMjV4X2RldmljZV91ZGMuZGV2KSwKIAlJTklUX0NLRU4oIk1NQ0NMSyIsIE1NQywgMTkxNjkwMDAsIDAsICZweGFfZGV2aWNlX21jaS5kZXYpLAogCUlOSVRfQ0tFTigiSTJDQ0xLIiwgSTJDLCAzMTk0OTAwMCwgMCwgJnB4YV9kZXZpY2VfaTJjLmRldiksCiAKIAlJTklUX0NLRU4oIlNTUENMSyIsICBTU1AsIDM2ODY0MDAsIDAsICZweGEyNXhfZGV2aWNlX3NzcC5kZXYpLAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgTlNTUCwgMzY4NjQwMCwgMCwgJnB4YTI1eF9kZXZpY2VfbnNzcC5kZXYpLAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgQVNTUCwgMzY4NjQwMCwgMCwgJnB4YTI1eF9kZXZpY2VfYXNzcC5kZXYpLAorCUlOSVRfQ0tFTigiUFdNQ0xLIiwgUFdNMCwgMzY4NjQwMCwgMCwgJnB4YTI1eF9kZXZpY2VfcHdtMC5kZXYpLAorCUlOSVRfQ0tFTigiUFdNQ0xLIiwgUFdNMSwgMzY4NjQwMCwgMCwgJnB4YTI1eF9kZXZpY2VfcHdtMS5kZXYpLAogCiAJSU5JVF9DS0VOKCJBQzk3Q0xLIiwgICAgIEFDOTcsICAgICAyNDU3NjAwMCwgMCwgTlVMTCksCiAKIAkvKgotCUlOSVRfQ0tFTigiUFdNQ0xLIiwgIFBXTTAsIDM2ODY0MDAsICAwLCBOVUxMKSwKLQlJTklUX0NLRU4oIlBXTUNMSyIsICBQV00wLCAzNjg2NDAwLCAgMCwgTlVMTCksCiAJSU5JVF9DS0VOKCJJMlNDTEsiLCAgSTJTLCAgMTQ3NDU2MDAsIDAsIE5VTEwpLAogCSovCiAJSU5JVF9DS0VOKCJGSUNQQ0xLIiwgRklDUCwgNDc5MjMwMDAsIDAsIE5VTEwpLAogfTsKIAorc3RhdGljIHN0cnVjdCBjbGsgZ3BpbzdfY2xrID0gSU5JVF9DS09USEVSKCJHUElPN19DSyIsICZweGEyNXhfY2xrc1s0XSwgTlVMTCk7CisKICNpZmRlZiBDT05GSUdfUE0KIAogI2RlZmluZSBTQVZFKHgpCQlzbGVlcF9zYXZlW1NMRUVQX1NBVkVfIyN4XSA9IHgKQEAgLTI2MCw3ICsyNjcsNyBAQAogfQogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcHhhMjV4X2RldmljZXNbXSBfX2luaXRkYXRhID0gewotCSZweGFfZGV2aWNlX3VkYywKKwkmcHhhMjV4X2RldmljZV91ZGMsCiAJJnB4YV9kZXZpY2VfZmZ1YXJ0LAogCSZweGFfZGV2aWNlX2J0dWFydCwKIAkmcHhhX2RldmljZV9zdHVhcnQsCkBAIC0yNjksNiArMjc2LDggQEAKIAkmcHhhMjV4X2RldmljZV9zc3AsCiAJJnB4YTI1eF9kZXZpY2VfbnNzcCwKIAkmcHhhMjV4X2RldmljZV9hc3NwLAorCSZweGEyNXhfZGV2aWNlX3B3bTAsCisJJnB4YTI1eF9kZXZpY2VfcHdtMSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBweGEyNXhfc3lzZGV2W10gPSB7CkBAIC0zMTEsNiArMzIwLDggQEAKIAlpZiAoY3B1X2lzX3B4YTI1eCgpKQogCQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnB4YV9kZXZpY2VfaHd1YXJ0KTsKIAorCWNsa3NfcmVnaXN0ZXIoJmdwaW83X2NsaywgMSk7CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCmluZGV4IDdlOTQ1ODMuLmQ1ZDE0ZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCkBAIC0xNDYsNyArMTQ2LDcgQEAKIAogCUlOSVRfQ0tFTigiSTJTQ0xLIiwgIEkyUywgIDE0NjgyMDAwLCAwLCAmcHhhX2RldmljZV9pMnMuZGV2KSwKIAlJTklUX0NLRU4oIkkyQ0NMSyIsICBJMkMsICAzMjg0MjAwMCwgMCwgJnB4YV9kZXZpY2VfaTJjLmRldiksCi0JSU5JVF9DS0VOKCJVRENDTEsiLCAgVVNCLCAgNDgwMDAwMDAsIDUsICZweGFfZGV2aWNlX3VkYy5kZXYpLAorCUlOSVRfQ0tFTigiVURDQ0xLIiwgIFVTQiwgIDQ4MDAwMDAwLCA1LCAmcHhhMjd4X2RldmljZV91ZGMuZGV2KSwKIAlJTklUX0NLRU4oIk1NQ0NMSyIsICBNTUMsICAxOTUwMDAwMCwgMCwgJnB4YV9kZXZpY2VfbWNpLmRldiksCiAJSU5JVF9DS0VOKCJGSUNQQ0xLIiwgRklDUCwgNDgwMDAwMDAsIDAsICZweGFfZGV2aWNlX2ZpY3AuZGV2KSwKIApAQCAtMTU3LDEyICsxNTcsMTMgQEAKIAlJTklUX0NLRU4oIlNTUENMSyIsIFNTUDEsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9zc3AxLmRldiksCiAJSU5JVF9DS0VOKCJTU1BDTEsiLCBTU1AyLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfc3NwMi5kZXYpLAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgU1NQMywgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3NzcDMuZGV2KSwKKwlJTklUX0NLRU4oIlBXTUNMSyIsIFBXTTAsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9wd20wLmRldiksCisJSU5JVF9DS0VOKCJQV01DTEsiLCBQV00xLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2VfcHdtMS5kZXYpLAogCiAJSU5JVF9DS0VOKCJBQzk3Q0xLIiwgICAgIEFDOTcsICAgICAyNDU3NjAwMCwgMCwgTlVMTCksCiAJSU5JVF9DS0VOKCJBQzk3Q09ORkNMSyIsIEFDOTdDT05GLCAyNDU3NjAwMCwgMCwgTlVMTCksCiAKIAkvKgotCUlOSVRfQ0tFTigiUFdNQ0xLIiwgIFBXTTAsIDEzMDAwMDAwLCAwLCBOVUxMKSwKIAlJTklUX0NLRU4oIk1TTENMSyIsICBNU0wsICA0ODAwMDAwMCwgMCwgTlVMTCksCiAJSU5JVF9DS0VOKCJVU0lNQ0xLIiwgVVNJTSwgNDgwMDAwMDAsIDAsIE5VTEwpLAogCUlOSVRfQ0tFTigiTVNUS0NMSyIsIE1FTVNUSywgMTk1MDAwMDAsIDAsIE5VTEwpLApAQCAtMzQ5LDExICszNTAsMTQgQEAKIAogdm9pZCBfX2luaXQgcHhhX3NldF9pMmNfcG93ZXJfaW5mbyhzdHJ1Y3QgaTJjX3B4YV9wbGF0Zm9ybV9kYXRhICppbmZvKQogeworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJUENGUiB8PSBQQ0ZSX1BJMkNFTjsKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CiAJcHhhMjd4X2RldmljZV9pMmNfcG93ZXIuZGV2LnBsYXRmb3JtX2RhdGEgPSBpbmZvOwogfQogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnB4YV9kZXZpY2VfdWRjLAorCSZweGEyN3hfZGV2aWNlX3VkYywKIAkmcHhhX2RldmljZV9mZnVhcnQsCiAJJnB4YV9kZXZpY2VfYnR1YXJ0LAogCSZweGFfZGV2aWNlX3N0dWFydCwKQEAgLTM2Myw2ICszNjcsOCBAQAogCSZweGEyN3hfZGV2aWNlX3NzcDEsCiAJJnB4YTI3eF9kZXZpY2Vfc3NwMiwKIAkmcHhhMjd4X2RldmljZV9zc3AzLAorCSZweGEyN3hfZGV2aWNlX3B3bTAsCisJJnB4YTI3eF9kZXZpY2VfcHdtMSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBweGEyN3hfc3lzZGV2W10gPSB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyeHguYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTJ4eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0ZjY0MTUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyeHguYwpAQCAtMCwwICsxLDQ2IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1weGEvcHhhMnh4LmMKKyAqCisgKiBjb2RlIHNwZWNpZmljIHRvIHB4YTJ4eAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBEbWl0cnkgQmFyeXNoa292CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMnh4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI1eC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgcHhhMnh4X21mcF9maXJbXSA9IHsKKwlHUElPNDZfRklDUF9SWEQsCisJR1BJTzQ3X0ZJQ1BfVFhELAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgcHhhMnh4X21mcF9zaXJbXSA9IHsKKwlHUElPNDZfU1RVQVJUX1JYRCwKKwlHUElPNDdfU1RVQVJUX1RYRCwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB4YTJ4eF9tZnBfb2ZmW10gPSB7CisJR1BJTzQ2X0dQSU8gfCBNRlBfTFBNX0RSSVZFX0xPVywKKwlHUElPNDdfR1BJTyB8IE1GUF9MUE1fRFJJVkVfTE9XLAorfTsKKwordm9pZCBweGEyeHhfdHJhbnNjZWl2ZXJfbW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBtb2RlKQoreworCWlmIChtb2RlICYgSVJfT0ZGKSB7CisJCXB4YTJ4eF9tZnBfY29uZmlnKHB4YTJ4eF9tZnBfb2ZmLCBBUlJBWV9TSVpFKHB4YTJ4eF9tZnBfb2ZmKSk7CisJfSBlbHNlIGlmIChtb2RlICYgSVJfU0lSTU9ERSkgeworCQlweGEyeHhfbWZwX2NvbmZpZyhweGEyeHhfbWZwX3NpciwgQVJSQVlfU0laRShweGEyeHhfbWZwX3NpcikpOworCX0gZWxzZSBpZiAobW9kZSAmIElSX0ZJUk1PREUpIHsKKwkJcHhhMnh4X21mcF9jb25maWcocHhhMnh4X21mcF9maXIsIEFSUkFZX1NJWkUocHhhMnh4X21mcF9maXIpKTsKKwl9IGVsc2UKKwkJQlVHKCk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEzeHguYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTN4eC5jCmluZGV4IDY0NDU1MGIuLjE1Njg1ZDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTN4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTN4eC5jCkBAIC0yMzEsNyArMjMxLDcgQEAKIAlQWEEzeHhfQ0tFTigiVUFSVENMSyIsIFNUVUFSVCwgMTQ4NTcwMDAsIDEsIE5VTEwpLAogCiAJUFhBM3h4X0NLRU4oIkkyQ0NMSyIsIEkyQywgIDMyODQyMDAwLCAwLCAmcHhhX2RldmljZV9pMmMuZGV2KSwKLQlQWEEzeHhfQ0tFTigiVURDQ0xLIiwgVURDLCAgNDgwMDAwMDAsIDUsICZweGFfZGV2aWNlX3VkYy5kZXYpLAorCVBYQTN4eF9DS0VOKCJVRENDTEsiLCBVREMsICA0ODAwMDAwMCwgNSwgJnB4YTI3eF9kZXZpY2VfdWRjLmRldiksCiAJUFhBM3h4X0NLRU4oIlVTQkNMSyIsIFVTQkgsIDQ4MDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9vaGNpLmRldiksCiAJUFhBM3h4X0NLRU4oIktCRENMSyIsIEtFWVBBRCwgIDMyNzY4LCAwLCAmcHhhMjd4X2RldmljZV9rZXlwYWQuZGV2KSwKIApAQCAtMjM5LDYgKzIzOSw4IEBACiAJUFhBM3h4X0NLRU4oIlNTUENMSyIsIFNTUDIsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9zc3AyLmRldiksCiAJUFhBM3h4X0NLRU4oIlNTUENMSyIsIFNTUDMsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9zc3AzLmRldiksCiAJUFhBM3h4X0NLRU4oIlNTUENMSyIsIFNTUDQsIDEzMDAwMDAwLCAwLCAmcHhhM3h4X2RldmljZV9zc3A0LmRldiksCisJUFhBM3h4X0NLRU4oIlBXTUNMSyIsIFBXTTAsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9wd20wLmRldiksCisJUFhBM3h4X0NLRU4oIlBXTUNMSyIsIFBXTTEsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9wd20xLmRldiksCiAKIAlQWEEzeHhfQ0tFTigiTU1DQ0xLIiwgTU1DMSwgMTk1MDAwMDAsIDAsICZweGFfZGV2aWNlX21jaS5kZXYpLAogCVBYQTN4eF9DS0VOKCJNTUNDTEsiLCBNTUMyLCAxOTUwMDAwMCwgMCwgJnB4YTN4eF9kZXZpY2VfbWNpMi5kZXYpLApAQCAtNTIwLDcgKzUyMiw3IEBACiAgKi8KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZXNbXSBfX2luaXRkYXRhID0gewotCSZweGFfZGV2aWNlX3VkYywKKy8qCSZweGFfZGV2aWNlX3VkYywJVGhlIFVEQyBkcml2ZXIgaXMgUFhBMjV4IG9ubHkgKi8KIAkmcHhhX2RldmljZV9mZnVhcnQsCiAJJnB4YV9kZXZpY2VfYnR1YXJ0LAogCSZweGFfZGV2aWNlX3N0dWFydCwKQEAgLTUzMCw2ICs1MzIsOCBAQAogCSZweGEyN3hfZGV2aWNlX3NzcDIsCiAJJnB4YTI3eF9kZXZpY2Vfc3NwMywKIAkmcHhhM3h4X2RldmljZV9zc3A0LAorCSZweGEyN3hfZGV2aWNlX3B3bTAsCisJJnB4YTI3eF9kZXZpY2VfcHdtMSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBweGEzeHhfc3lzZGV2W10gPSB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9zcGl0el9wbS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHpfcG0uYwppbmRleCAyM2YwNTBmLi4zNjAzNTQwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9zcGl0el9wbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6X3BtLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zaGFycHNsLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc3BpdHouaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlICJzaGFycHNsLmgiCiAKQEAgLTIwNyw3ICsyMDgsOSBAQAogCS5yZWFkX2RldmRhdGEgICAgID0gc3BpdHpwbV9yZWFkX2RldmRhdGEsCiAJLmNoYXJnZXJfd2FrZXVwICAgPSBzcGl0el9jaGFyZ2VyX3dha2V1cCwKIAkuc2hvdWxkX3dha2V1cCAgICA9IHNwaXR6X3Nob3VsZF93YWtldXAsCisjaWZkZWYgQ09ORklHX0JBQ0tMSUdIVF9DT1JHSQogICAgICAgICAuYmFja2xpZ2h0X2xpbWl0ICA9IGNvcmdpYmxfbGltaXRfaW50ZW5zaXR5LAorI2VuZGlmCiAJLmNoYXJnZV9vbl92b2x0CSAgPSBTSEFSUFNMX0NIQVJHRV9PTl9WT0xULAogCS5jaGFyZ2Vfb25fdGVtcAkgID0gU0hBUlBTTF9DSEFSR0VfT05fVEVNUCwKIAkuY2hhcmdlX2FjaW5faGlnaCA9IFNIQVJQU0xfQ0hBUkdFX09OX0FDSU5fSElHSCwKQEAgLTIyOSw2ICsyMzIsMTAgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX3NwaXR6KCkgJiYgIW1hY2hpbmVfaXNfYWtpdGEoKQorCQkJJiYgIW1hY2hpbmVfaXNfYm9yem9pKCkpCisJCXJldHVybiAtRU5PREVWOworCiAJc3BpdHpwbV9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNoYXJwc2wtcG0iLCAtMSk7CiAJaWYgKCFzcGl0enBtX2RldmljZSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9zc3AuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCmluZGV4IDAwYWY3ZjIuLjBiYjMxOTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCkBAIC0zMzAsNyArMzMwLDcgQEAKIAogCW11dGV4X3VubG9jaygmc3NwX2xvY2spOwogCi0JaWYgKHNzcC0+cG9ydF9pZCAhPSBwb3J0KQorCWlmICgmc3NwLT5ub2RlID09ICZzc3BfbGlzdCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gc3NwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvc3RhbmRieS5TIGIvYXJjaC9hcm0vbWFjaC1weGEvc3RhbmRieS5TCmluZGV4IDE2NzQxMmUuLjQwYmI3MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3N0YW5kYnkuUworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9zdGFuZGJ5LlMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KIAogCQkudGV4dAogCkBAIC0zNSwyMCArMzYsMjAgQEAKIAogI2lmZGVmIENPTkZJR19QWEEzeHgKIAotI2RlZmluZSBNRENORkcJCTB4MDAwMAotI2RlZmluZSBNRENORkdfRE1DRU4JKDEgPDwgMzApCi0jZGVmaW5lIEREUl9IQ0FMCTB4MDA2MAotI2RlZmluZSBERFJfSENBTF9IQ1JORwkweDFmCi0jZGVmaW5lIEREUl9IQ0FMX0hDUFJPRwkoMSA8PCAyOCkKLSNkZWZpbmUgRERSX0hDQUxfSENFTgkoMSA8PCAzMSkKLSNkZWZpbmUgRE1DSUVSCQkweDAwNzAKLSNkZWZpbmUgRE1DSUVSX0VETFAJKDEgPDwgMjkpCi0jZGVmaW5lIERNQ0lTUgkJMHgwMDc4Ci0jZGVmaW5lIFJDT01QCQkweDAxMDAKLSNkZWZpbmUgUkNPTVBfU1dFVkFMCSgxIDw8IDMxKQorI2RlZmluZSBQWEEzX01EQ05GRwkJMHgwMDAwCisjZGVmaW5lIFBYQTNfTURDTkZHX0RNQ0VOCSgxIDw8IDMwKQorI2RlZmluZSBQWEEzX0REUl9IQ0FMCQkweDAwNjAKKyNkZWZpbmUgUFhBM19ERFJfSENBTF9IQ1JORwkweDFmCisjZGVmaW5lIFBYQTNfRERSX0hDQUxfSENQUk9HCSgxIDw8IDI4KQorI2RlZmluZSBQWEEzX0REUl9IQ0FMX0hDRU4JKDEgPDwgMzEpCisjZGVmaW5lIFBYQTNfRE1DSUVSCQkweDAwNzAKKyNkZWZpbmUgUFhBM19ETUNJRVJfRURMUAkoMSA8PCAyOSkKKyNkZWZpbmUgUFhBM19ETUNJU1IJCTB4MDA3OAorI2RlZmluZSBQWEEzX1JDT01QCQkweDAxMDAKKyNkZWZpbmUgUFhBM19SQ09NUF9TV0VWQUwJKDEgPDwgMzEpCiAKIEVOVFJZKHBtX2VudGVyX3N0YW5kYnlfc3RhcnQpCi0JbW92CXIxLCAjMHhmNjAwMDAwMAkJQCBETUVNQ19SRUdfQkFTRSAoTURDTkZHKQorCW1vdglyMSwgIzB4ZjYwMDAwMDAJCQlAIERNRU1DX1JFR19CQVNFIChQWEEzX01EQ05GRykKIAlhZGQJcjEsIHIxLCAjMHgwMDEwMDAwMAogCiAJLyoKQEAgLTU5LDU0ICs2MCw1NCBAQAogCSAqIFRoaXMgYWxzbyBtZWFucyB0aGF0IG9ubHkgdGhlIGR5bmFtaWMgbWVtb3J5IGNvbnRyb2xsZXIKIAkgKiBjYW4gYmUgcmVsaWFibHkgYWNjZXNzZWQgaW4gdGhlIGNvZGUgZm9sbG93aW5nIHN0YW5kYnkuCiAJICovCi0JbGRyCXIyLCBbcjFdCQlAIER1bW15IHJlYWQgTURDTkZHCisJbGRyCXIyLCBbcjFdCQkJQCBEdW1teSByZWFkIFBYQTNfTURDTkZHCiAKIAltY3IJcDE0LCAwLCByMCwgYzcsIGMwLCAwCiAJLnJlcHQJOAogCW5vcAogCS5lbmRyCiAKLQlsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQlAIENsZWFyIChhbmQgd2FpdCBmb3IpIEhDRU4KLQliaWMJcjAsIHIwLCAjRERSX0hDQUxfSENFTgotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCi0xOglsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQotCXRzdAlyMCwgI0REUl9IQ0FMX0hDRU4KKwlsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCUAgQ2xlYXIgKGFuZCB3YWl0IGZvcikgSENFTgorCWJpYwlyMCwgcjAsICNQWEEzX0REUl9IQ0FMX0hDRU4KKwlzdHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCisJdHN0CXIwLCAjUFhBM19ERFJfSENBTF9IQ0VOCiAJYm5lCTFiCiAKLQlsZHIJcjAsIFtyMSwgI1JDT01QXQlAIEluaXRpYXRlIFJDT01QCi0Jb3JyCXIwLCByMCwgI1JDT01QX1NXRVZBTAotCXN0cglyMCwgW3IxLCAjUkNPTVBdCisJbGRyCXIwLCBbcjEsICNQWEEzX1JDT01QXQkJQCBJbml0aWF0ZSBSQ09NUAorCW9ycglyMCwgcjAsICNQWEEzX1JDT01QX1NXRVZBTAorCXN0cglyMCwgW3IxLCAjUFhBM19SQ09NUF0KIAotCW1vdglyMCwgI34wCQkJQCBDbGVhciBpbnRlcnJ1cHRzCi0Jc3RyCXIwLCBbcjEsICNETUNJU1JdCisJbW92CXIwLCAjfjAJCQkJQCBDbGVhciBpbnRlcnJ1cHRzCisJc3RyCXIwLCBbcjEsICNQWEEzX0RNQ0lTUl0KIAotCWxkcglyMCwgW3IxLCAjRE1DSUVSXQlAIHNldCBETUlFUltFRExQXQotCW9ycglyMCwgcjAsICNETUNJRVJfRURMUAotCXN0cglyMCwgW3IxLCAjRE1DSUVSXQorCWxkcglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCQlAIHNldCBETUlFUltFRExQXQorCW9ycglyMCwgcjAsICNQWEEzX0RNQ0lFUl9FRExQCisJc3RyCXIwLCBbcjEsICNQWEEzX0RNQ0lFUl0KIAotCWxkcglyMCwgW3IxLCAjRERSX0hDQUxdCUAgY2xlYXIgSENSTkcsIHNldCBIQ1BST0csIEhDRU4KLQliaWMJcjAsIHIwLCAjRERSX0hDQUxfSENSTkcKLQlvcnIJcjAsIHIwLCAjRERSX0hDQUxfSENFTiB8IEREUl9IQ0FMX0hDUFJPRwotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCisJbGRyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQlAIGNsZWFyIEhDUk5HLCBzZXQgSENQUk9HLCBIQ0VOCisJYmljCXIwLCByMCwgI1BYQTNfRERSX0hDQUxfSENSTkcKKwlvcnIJcjAsIHIwLCAjUFhBM19ERFJfSENBTF9IQ0VOIHwgUFhBM19ERFJfSENBTF9IQ1BST0cKKwlzdHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCiAKLTE6CWxkcglyMCwgW3IxLCAjRE1DSVNSXQotCXRzdAlyMCwgI0RNQ0lFUl9FRExQCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfRE1DSVNSXQorCXRzdAlyMCwgI1BYQTNfRE1DSUVSX0VETFAKIAliZXEJMWIKIAotCWxkcglyMCwgW3IxLCAjTURDTkZHXQlAIHNldCBNRENORkdbRE1DRU5dCi0Jb3JyCXIwLCByMCwgI01EQ05GR19ETUNFTgotCXN0cglyMCwgW3IxLCAjTURDTkZHXQotMToJbGRyCXIwLCBbcjEsICNNRENORkddCi0JdHN0CXIwLCAjTURDTkZHX0RNQ0VOCisJbGRyCXIwLCBbcjEsICNQWEEzX01EQ05GR10JCUAgc2V0IFBYQTNfTURDTkZHW0RNQ0VOXQorCW9ycglyMCwgcjAsICNQWEEzX01EQ05GR19ETUNFTgorCXN0cglyMCwgW3IxLCAjUFhBM19NRENORkddCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfTURDTkZHXQorCXRzdAlyMCwgI1BYQTNfTURDTkZHX0RNQ0VOCiAJYmVxCTFiCiAKLQlsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQlAIHNldCBERFJfSENBTFtIQ1JOR10KKwlsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCUAgc2V0IFBYQTNfRERSX0hDQUxbSENSTkddCiAJb3JyCXIwLCByMCwgIzIgQCBIQ1JORwotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCisJc3RyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQogCi0JbGRyCXIwLCBbcjEsICNETUNJRVJdCUAgQ2xlYXIgdGhlIGludGVycnVwdAorCWxkcglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCQlAIENsZWFyIHRoZSBpbnRlcnJ1cHQKIAliaWMJcjAsIHIwLCAjMHgyMDAwMDAwMAotCXN0cglyMCwgW3IxLCAjRE1DSUVSXQorCXN0cglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCiAKIAltb3YJcGMsIGxyCiBFTlRSWShwbV9lbnRlcl9zdGFuZGJ5X2VuZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3RyaXplcHM0LmMgYi9hcmNoL2FybS9tYWNoLXB4YS90cml6ZXBzNC5jCmluZGV4IDkzMTg4NWQuLjYxZTI0NDAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3RyaXplcHM0LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvdHJpemVwczQuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL2ZsYXNoLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC90cml6ZXBzNC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CkBAIC0xNzUsMTkgKzE3NiwxMCBAQAogCS5yZXNvdXJjZQk9IE5VTEwsCiB9OwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFBYQTI3MCBhYzk3IHNvdW5kIGNvZGVjCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhYzk3X2F1ZGlvX2RldmljZSA9IHsKLQkubmFtZQkJPSAicHhhMnh4LWFjOTciLAotCS5pZAkJPSAtMSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICogdHJpemVwczRfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJmZsYXNoX2RldmljZSwKIAkmdWFydF9kZXZpY2VzLAogCSZkbTkwMDBfZGV2aWNlLAotCSZhYzk3X2F1ZGlvX2RldmljZSwKIH07CiAKICNpZmRlZiBDT05GSUdfTUFDSF9UUklaRVBTNF9DT05YUwpAQCAtNDM4LDYgKzQzMCw3IEBACiAJcHhhX3NldF9tY2lfaW5mbygmdHJpemVwczRfbWNpX3BsYXRmb3JtX2RhdGEpOwogCXB4YV9zZXRfZmljcF9pbmZvKCZ0cml6ZXBzNF9maWNwX3BsYXRmb3JtX2RhdGEpOwogCXB4YV9zZXRfb2hjaV9pbmZvKCZ0cml6ZXBzNF9vaGNpX3BsYXRmb3JtX2RhdGEpOworCXB4YV9zZXRfYWM5N19pbmZvKE5VTEwpOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgdHJpemVwczRfbWFwX2lvKHZvaWQpCkBAIC00ODcsNiArNDgwLDcgQEAKIAlDb25YU19CQ1IgPSB0cml6ZXBzX2NvbnhzX2JjcjsKICNlbmRpZgogCisjd2FybmluZyBGSVhNRSAtIGFjY2Vzc2luZyBQTSByZWdpc3RlcnMgZGlyZWN0bHkgaXMgZGVwcmVjYXRlZAogCVBXRVIgID0gMHgwMDAwMDAwMjsKIAlQRkVSICA9IDB4MDAwMDAwMDA7CiAJUFJFUiAgPSAweDAwMDAwMDAyOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGUuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlLmMKaW5kZXggNGEwMDI4MC4uNjZiNDQ2YyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGUuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZS5jCkBAIC0xOCwyMiArMTgsMjQgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgogCiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhZmIuaD4KICNpbmNsdWRlIDxhc20vYXJjaC96eWxvbml0ZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTI3eF9rZXlwYWQuaD4KIAorI2luY2x1ZGUgImRldmljZXMuaCIKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKICNkZWZpbmUgTUFYX1NMT1RTCTMKIHN0cnVjdCBwbGF0Zm9ybV9tbWNfc2xvdCB6eWxvbml0ZV9tbWNfc2xvdFtNQVhfU0xPVFNdOwogCi1pbnQgZ3Bpb19iYWNrbGlnaHQ7CiBpbnQgZ3Bpb19ldGhfaXJxOwogCiBpbnQgd205NzEzX2lycTsKQEAgLTYyLDEwICs2NCwyMCBAQAogfTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0ZCX1BYQSkgfHwgZGVmaW5lZChDT05GSUdfRkJfUFhBX01PRFVMRSkKLXN0YXRpYyB2b2lkIHp5bG9uaXRlX2JhY2tsaWdodF9wb3dlcihpbnQgb24pCi17Ci0JZ3Bpb19zZXRfdmFsdWUoZ3Bpb19iYWNrbGlnaHQsIG9uKTsKLX0KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhIHp5bG9uaXRlX2JhY2tsaWdodF9kYXRhID0geworCS5wd21faWQJCT0gMywKKwkubWF4X2JyaWdodG5lc3MJPSAxMDAsCisJLmRmdF9icmlnaHRuZXNzCT0gMTAwLAorCS5wd21fcGVyaW9kX25zCT0gMTAwMDAsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB6eWxvbml0ZV9iYWNrbGlnaHRfZGV2aWNlID0geworCS5uYW1lCQk9ICJwd20tYmFja2xpZ2h0IiwKKwkuZGV2CQk9IHsKKwkJLnBhcmVudCA9ICZweGEyN3hfZGV2aWNlX3B3bTEuZGV2LAorCQkucGxhdGZvcm1fZGF0YQk9ICZ6eWxvbml0ZV9iYWNrbGlnaHRfZGF0YSwKKwl9LAorfTsKIAogc3RhdGljIHN0cnVjdCBweGFmYl9tb2RlX2luZm8gdG9zaGliYV9sdG0wMzVhNzc2Y19tb2RlID0gewogCS5waXhjbG9jawkJPSAxMTAwMDAsCkBAIC05OCw3ICsxMTAsNiBAQAogc3RhdGljIHN0cnVjdCBweGFmYl9tYWNoX2luZm8genlsb25pdGVfdG9zaGliYV9sY2RfaW5mbyA9IHsKIAkubnVtX21vZGVzICAgICAgCT0gMSwKIAkubGNkX2Nvbm4JCT0gTENEX0NPTE9SX1RGVF8xNkJQUCB8IExDRF9QQ0xLX0VER0VfRkFMTCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0genlsb25pdGVfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogc3RhdGljIHN0cnVjdCBweGFmYl9tb2RlX2luZm8gc2hhcnBfbHMwMzdfbW9kZXNbXSA9IHsKQEAgLTEzNCwxMyArMTQ1LDExIEBACiAJLm1vZGVzCQkJPSBzaGFycF9sczAzN19tb2RlcywKIAkubnVtX21vZGVzCQk9IDIsCiAJLmxjZF9jb25uCQk9IExDRF9DT0xPUl9URlRfMTZCUFAgfCBMQ0RfUENMS19FREdFX0ZBTEwsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IHp5bG9uaXRlX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCB6eWxvbml0ZV9pbml0X2xjZCh2b2lkKQogewotCS8qIGJhY2tsaWdodCBHUElPOiBvdXRwdXQsIGRlZmF1bHQgb24gKi8KLQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoZ3Bpb19iYWNrbGlnaHQsIDEpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmenlsb25pdGVfYmFja2xpZ2h0X2RldmljZSk7CiAKIAlpZiAobGNkX2lkICYgMHgyMCkgewogCQlzZXRfcHhhX2ZiX2luZm8oJnp5bG9uaXRlX3NoYXJwX2xjZF9pbmZvKTsKQEAgLTMyOSw2ICszMzgsNyBAQAogCXNtYzkxeF9yZXNvdXJjZXNbMV0uZW5kICAgPSBncGlvX3RvX2lycShncGlvX2V0aF9pcnEpOwogCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmc21jOTF4X2RldmljZSk7CiAKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAl6eWxvbml0ZV9pbml0X2xjZCgpOwogCXp5bG9uaXRlX2luaXRfbW1jKCk7CiAJenlsb25pdGVfaW5pdF9rZXlwYWQoKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzAwLmMKaW5kZXggMzI0ZmI5ZC4uNmY3YWU5NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzAwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzAwLmMKQEAgLTUwLDYgKzUwLDcgQEAKIAlHUElPNzVfTENEX0JJQVMsCiAJR1BJTzc2X0xDRF9WU1lOQywKIAlHUElPMTI3X0xDRF9DU19OLAorCUdQSU8yMF9QV00zX09VVCwJLyogYmFja2xpZ2h0ICovCiAKIAkvKiBCVFVBUlQgKi8KIAlHUElPMTExX1VBUlQyX1JUUywKQEAgLTIwMCw5ICsyMDEsNiBAQAogCQkvKiBkZXRlY3QgTENEIHBhbmVsICovCiAJCXp5bG9uaXRlX2RldGVjdF9sY2RfcGFuZWwoKTsKIAotCQkvKiBHUElPIHBpbiBhc3NpZ25tZW50ICovCi0JCWdwaW9fYmFja2xpZ2h0ID0gbWZwX3RvX2dwaW8oTUZQX1BJTl9HUElPMjApOwotCiAJCS8qIE1NQyBjYXJkIGRldGVjdCAmIHdyaXRlIHByb3RlY3QgZm9yIGNvbnRyb2xsZXIgMCAqLwogCQl6eWxvbml0ZV9tbWNfc2xvdFswXS5ncGlvX2NkICA9IEVYVF9HUElPKDApOwogCQl6eWxvbml0ZV9tbWNfc2xvdFswXS5ncGlvX3dwICA9IEVYVF9HUElPKDIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZV9weGEzMjAuYwppbmRleCAxOTNkMDc5Li4yYjRmYzM0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZV9weGEzMjAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZV9weGEzMjAuYwpAQCAtNDksNiArNDksNyBAQAogCUdQSU8xNV8yX0xDRF9MQ0xLLAogCUdQSU8xNl8yX0xDRF9QQ0xLLAogCUdQSU8xN18yX0xDRF9CSUFTLAorCUdQSU8xNF9QV00zX09VVCwJLyogYmFja2xpZ2h0ICovCiAKIAkvKiBGRlVBUlQgKi8KIAlHUElPNDFfVUFSVDFfUlhEIHwgTUZQX0xQTV9FREdFX0ZBTEwsCkBAIC0xODcsNyArMTg4LDYgQEAKIAkJenlsb25pdGVfZGV0ZWN0X2xjZF9wYW5lbCgpOwogCiAJCS8qIEdQSU8gcGluIGFzc2lnbm1lbnQgKi8KLQkJZ3Bpb19iYWNrbGlnaHQJPSBtZnBfdG9fZ3BpbyhNRlBfUElOX0dQSU8xNCk7CiAJCWdwaW9fZXRoX2lycQk9IG1mcF90b19ncGlvKE1GUF9QSU5fR1BJTzkpOwogCiAJCS8qIE1NQyBjYXJkIGRldGVjdCAmIHdyaXRlIHByb3RlY3QgZm9yIGNvbnRyb2xsZXIgMCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMgYi9hcmNoL2FybS9tYWNoLXJlYWx2aWV3L3BsYXRzbXAuYwppbmRleCAzZTU3NDI4Li44ZTgxM2VkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXJlYWx2aWV3L3BsYXRzbXAuYworKysgYi9hcmNoL2FybS9tYWNoLXJlYWx2aWV3L3BsYXRzbXAuYwpAQCAtNzQsNiArNzQsOCBAQAogCiB2b2lkIF9fY3B1aW5pdCBwbGF0Zm9ybV9zZWNvbmRhcnlfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogeworCXRyYWNlX2hhcmRpcnFzX29mZigpOworCiAJLyoKIAkgKiB0aGUgcHJpbWFyeSBjb3JlIG1heSBoYXZlIHVzZWQgYSAiY3Jvc3MgY2FsbCIgc29mdCBpbnRlcnJ1cHQKIAkgKiB0byBnZXQgdGhpcyBwcm9jZXNzb3Igb3V0IG9mIFdGSSBpbiB0aGUgQm9vdE1vbml0b3IgLSBtYWtlCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9LY29uZmlnCmluZGV4IGNkM2RjMDguLjk5ZmRjNzMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9LY29uZmlnCkBAIC0zNyw2ICszNywxNyBAQAogCWhlbHAKIAkgIENsb2NrIGNvZGUgZm9yIHRoZSBTM0MyNDEwLCBhbmQgc2ltaWxhciBwcm9jZXNzb3JzCiAKK2NvbmZpZyBTSU1URUNfTk9SCisJYm9vbAorCWhlbHAKKwkgIEludGVybmFsIG5vZGUgdG8gc3BlY2lmeSBtYWNoaW5lIGhhcyBzaW10ZWMgTk9SIG1hcHBpbmcKKworY29uZmlnIE1BQ0hfQkFTVF9JREUKKwlib29sCisJc2VsZWN0IEhBVkVfUEFUQV9QTEFURk9STQorCWhlbHAKKwkgIEludGVybmFsIG5vZGUgZm9yIG1hY2hpbmVzIHdpdGggYW4gQkFTVCBzdHlsZSBJREUKKwkgIGludGVyZmFjZQogCiBtZW51ICJTM0MyNDEwIE1hY2hpbmVzIgogCkBAIC02MSwxNSArNzIsMTggQEAKIAkgIEludGVybmFsIG5vZGUgZm9yIEgxOTQwIGFuZCByZWxhdGVkIFBNCiAKIGNvbmZpZyBNQUNIX04zMAotCWJvb2wgIkFjZXIgTjMwIgorCWJvb2wgIkFjZXIgTjMwIGZhbWlseSIKIAlzZWxlY3QgQ1BVX1MzQzI0MTAKIAloZWxwCi0JICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIEFjZXIgTjMwCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHN1cHB0IGZvciB0aGUgQWNlciBOMzAsIEFjZXIgTjM1LAorCSAgTmF2bWFuIFBpTjU3MCwgWWFrdW1vIEFscGhhWCBvciBBaXJpcyBOQzA1IFBEQXMuCiAKIGNvbmZpZyBBUkNIX0JBU1QKIAlib29sICJTaW10ZWMgRWxlY3Ryb25pY3MgQkFTVCAoRUIyNDEwSVRYKSIKIAlzZWxlY3QgQ1BVX1MzQzI0MTAKIAlzZWxlY3QgUE1fU0lNVEVDIGlmIFBNCisJc2VsZWN0IFNJTVRFQ19OT1IKKwlzZWxlY3QgTUFDSF9CQVNUX0lERQogCXNlbGVjdCBJU0EKIAloZWxwCiAJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIFNpbXRlYyBFbGVjdHJvbmljcyBFQjI0MTBJVFgKQEAgLTEwNyw2ICsxMjEsOCBAQAogY29uZmlnIE1BQ0hfVlIxMDAwCiAJYm9vbCAiVGhvcmNvbSBWUjEwMDAiCiAJc2VsZWN0IFBNX1NJTVRFQyBpZiBQTQorCXNlbGVjdCBTSU1URUNfTk9SCisJc2VsZWN0IE1BQ0hfQkFTVF9JREUKIAlzZWxlY3QgQ1BVX1MzQzI0MTAKIAloZWxwCiAJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIFRob3Jjb20gVlIxMDAwIGJvYXJkLgpAQCAtMTE4LDQgKzEzNCwzIEBACiAJICAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBBcm16b25lIFFUMjQxMAogCiBlbmRtZW51Ci0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9NYWtlZmlsZQppbmRleCBjYWJjMTNjLi4wMGYzMWY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL01ha2VmaWxlCkBAIC0zMCwzICszMCwxMSBAQAogb2JqLSQoQ09ORklHX01BQ0hfVENUX0hBTU1FUikJKz0gbWFjaC10Y3RfaGFtbWVyLm8KIG9iai0kKENPTkZJR19NQUNIX1ZSMTAwMCkJKz0gbWFjaC12cjEwMDAubyB1c2Itc2ltdGVjLm8KIG9iai0kKENPTkZJR19NQUNIX1FUMjQxMCkJKz0gbWFjaC1xdDI0MTAubworCisjIENvbW1vbiBiaXRzIG9mIG1hY2hpbmUgc3VwcG9ydAorCitvYmotJChDT05GSUdfU0lNVEVDX05PUikJKz0gbm9yLXNpbXRlYy5vCisKKyMgbWFjaGluZSBhZGRpdGlvbnMKKworb2JqLSQoQ09ORklHX01BQ0hfQkFTVF9JREUpCSs9IGJhc3QtaWRlLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9iYXN0LWlkZS5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2Jhc3QtaWRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5NWZlMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9iYXN0LWlkZS5jCkBAIC0wLDAgKzEsMTEyIEBACisvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvYmFzdC1pZGUuYworICoKKyAqIENvcHlyaWdodCAyMDA3IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvRUIyNDEwSVRYLworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9iYXN0LWlycS5oPgorCisvKiBJREUgcG9ydHMgKi8KKworc3RhdGljIHN0cnVjdCBwYXRhX3BsYXRmb3JtX2luZm8gYmFzdF9pZGVfcGxhdGRhdGEgPSB7CisJLmlvcG9ydF9zaGlmdAk9IDUsCit9OworCisjZGVmaW5lIElERV9DUwlTM0MyNDEwX0NTNQorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGJhc3RfaWRlMF9yZXNvdXJjZVtdID0geworCVswXQk9IHsKKwkJLnN0YXJ0CT0gSURFX0NTICsgQkFTVF9QQV9JREVQUkksCisJCS5lbmQJPSBJREVfQ1MgKyBCQVNUX1BBX0lERVBSSSArICg4ICogMHgyMCkgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXQk9IHsKKwkJLnN0YXJ0CT0gSURFX0NTICsgQkFTVF9QQV9JREVQUklBVVggKyAoNiAqIDB4MjApICwKKwkJLmVuZAk9IElERV9DUyArIEJBU1RfUEFfSURFUFJJQVVYICsgKDcgKiAweDIwKSAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdCT0geworCQkuc3RhcnQJPSBJUlFfSURFMCwKKwkJLmVuZAk9IElSUV9JREUwLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFzdF9kZXZpY2VfaWRlMCA9IHsKKwkubmFtZQkJPSAicGF0YV9wbGF0Zm9ybSIsCisJLmlkCQk9IDAsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGJhc3RfaWRlMF9yZXNvdXJjZSksCisJLnJlc291cmNlCT0gYmFzdF9pZGUwX3Jlc291cmNlLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZiYXN0X2lkZV9wbGF0ZGF0YSwKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gfjAsCisJfQorCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGJhc3RfaWRlMV9yZXNvdXJjZVtdID0geworCVswXQk9IHsKKwkJLnN0YXJ0CT0gSURFX0NTICsgQkFTVF9QQV9JREVTRUMsCisJCS5lbmQJPSBJREVfQ1MgKyBCQVNUX1BBX0lERVNFQyArICg4ICogMHgyMCkgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXQk9IHsKKwkJLnN0YXJ0CT0gSURFX0NTICsgQkFTVF9QQV9JREVTRUNBVVggKyAoNiAqIDB4MjApLAorCQkuZW5kCT0gSURFX0NTICsgQkFTVF9QQV9JREVTRUNBVVggKyAoNyAqIDB4MjApIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMl0JPSB7CisJCS5zdGFydAk9IElSUV9JREUxLAorCQkuZW5kCT0gSVJRX0lERTEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBiYXN0X2RldmljZV9pZGUxID0geworCS5uYW1lCQk9ICJwYXRhX3BsYXRmb3JtIiwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoYmFzdF9pZGUxX3Jlc291cmNlKSwKKwkucmVzb3VyY2UJPSBiYXN0X2lkZTFfcmVzb3VyY2UsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJmJhc3RfaWRlX3BsYXRkYXRhLAorCQkuY29oZXJlbnRfZG1hX21hc2sgPSB+MCwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYmFzdF9pZGVfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJmJhc3RfZGV2aWNlX2lkZTAsCisJJmJhc3RfZGV2aWNlX2lkZTEsCit9OworCitzdGF0aWMgX19pbml0IGludCBiYXN0X2lkZV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfYmFzdCgpIHx8IG1hY2hpbmVfaXNfdnIxMDAwKCkpCisJCXJldHVybiBwbGF0Zm9ybV9hZGRfZGV2aWNlcyhiYXN0X2lkZV9kZXZpY2VzLAorCQkJCQkgICAgQVJSQVlfU0laRShiYXN0X2lkZV9kZXZpY2VzKSk7CisKKwlyZXR1cm4gMDsKK30KKworZnNfaW5pdGNhbGwoYmFzdF9pZGVfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMKaW5kZXggMjdmNjNkNS4uOTY1ZjI3MSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtYmFzdC5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLWJhc3QuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLWJhc3QuYwogICoKLSAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKICAqICAgQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKICAqIGh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC8KQEAgLTIwLDYgKzIwLDggQEAKICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtOTAwMC5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogCiAjaW5jbHVkZSA8bmV0L2F4ODg3OTYuaD4KIApAQCAtNTYsNyArNTgsOSBAQAogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY2xvY2suaD4KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2NwdS5oPgorCiAjaW5jbHVkZSAidXNiLXNpbXRlYy5oIgorI2luY2x1ZGUgIm5vci1zaW10ZWMuaCIKIAogI2RlZmluZSBDT1BZUklHSFQgIiwgKGMpIDIwMDQtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MiCiAKQEAgLTEzNCwzNyArMTM4LDIxIEBACiAgIHsgVkFfQzIoQkFTVF9WQV9JU0FJTyksICAgUEFfQ1MyKEJBU1RfUEFfSVNBSU8pLCAgICBTWl8xNk0sIE1UX0RFVklDRSB9LAogICB7IFZBX0MyKEJBU1RfVkFfSVNBTUVNKSwgIFBBX0NTMihCQVNUX1BBX0lTQU1FTSksICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMihCQVNUX1ZBX1NVUEVSSU8pLCBQQV9DUzIoQkFTVF9QQV9TVVBFUklPKSwgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoQkFTVF9WQV9JREVQUkkpLCAgUEFfQ1MzKEJBU1RfUEFfSURFUFJJKSwgICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKEJBU1RfVkFfSURFU0VDKSwgIFBBX0NTMyhCQVNUX1BBX0lERVNFQyksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihCQVNUX1ZBX0lERVBSSUFVWCksIFBBX0NTMyhCQVNUX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihCQVNUX1ZBX0lERVNFQ0FVWCksIFBBX0NTMyhCQVNUX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKIAogICAvKiBzbG93LCB3b3JkICovCiAgIHsgVkFfQzMoQkFTVF9WQV9JU0FJTyksICAgUEFfQ1MzKEJBU1RfUEFfSVNBSU8pLCAgICBTWl8xNk0sIE1UX0RFVklDRSB9LAogICB7IFZBX0MzKEJBU1RfVkFfSVNBTUVNKSwgIFBBX0NTMyhCQVNUX1BBX0lTQU1FTSksICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMyhCQVNUX1ZBX1NVUEVSSU8pLCBQQV9DUzMoQkFTVF9QQV9TVVBFUklPKSwgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoQkFTVF9WQV9JREVQUkkpLCAgUEFfQ1MzKEJBU1RfUEFfSURFUFJJKSwgICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKEJBU1RfVkFfSURFU0VDKSwgIFBBX0NTMyhCQVNUX1BBX0lERVNFQyksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhCQVNUX1ZBX0lERVBSSUFVWCksIFBBX0NTMyhCQVNUX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhCQVNUX1ZBX0lERVNFQ0FVWCksIFBBX0NTMyhCQVNUX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKIAogICAvKiBmYXN0LCBieXRlICovCiAgIHsgVkFfQzQoQkFTVF9WQV9JU0FJTyksICAgUEFfQ1M0KEJBU1RfUEFfSVNBSU8pLCAgICBTWl8xNk0sIE1UX0RFVklDRSB9LAogICB7IFZBX0M0KEJBU1RfVkFfSVNBTUVNKSwgIFBBX0NTNChCQVNUX1BBX0lTQU1FTSksICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNChCQVNUX1ZBX1NVUEVSSU8pLCBQQV9DUzQoQkFTVF9QQV9TVVBFUklPKSwgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoQkFTVF9WQV9JREVQUkkpLCAgUEFfQ1M1KEJBU1RfUEFfSURFUFJJKSwgICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KEJBU1RfVkFfSURFU0VDKSwgIFBBX0NTNShCQVNUX1BBX0lERVNFQyksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChCQVNUX1ZBX0lERVBSSUFVWCksIFBBX0NTNShCQVNUX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChCQVNUX1ZBX0lERVNFQ0FVWCksIFBBX0NTNShCQVNUX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKIAogICAvKiBmYXN0LCB3b3JkICovCiAgIHsgVkFfQzUoQkFTVF9WQV9JU0FJTyksICAgUEFfQ1M1KEJBU1RfUEFfSVNBSU8pLCAgICBTWl8xNk0sIE1UX0RFVklDRSB9LAogICB7IFZBX0M1KEJBU1RfVkFfSVNBTUVNKSwgIFBBX0NTNShCQVNUX1BBX0lTQU1FTSksICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNShCQVNUX1ZBX1NVUEVSSU8pLCBQQV9DUzUoQkFTVF9QQV9TVVBFUklPKSwgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoQkFTVF9WQV9JREVQUkkpLCAgUEFfQ1M1KEJBU1RfUEFfSURFUFJJKSwgICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KEJBU1RfVkFfSURFU0VDKSwgIFBBX0NTNShCQVNUX1BBX0lERVNFQyksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShCQVNUX1ZBX0lERVBSSUFVWCksIFBBX0NTNShCQVNUX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShCQVNUX1ZBX0lERVNFQ0FVWCksIFBBX0NTNShCQVNUX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKIH07CiAKICNkZWZpbmUgVUNPTiBTM0MyNDEwX1VDT05fREVGQVVMVCB8IFMzQzI0MTBfVUNPTl9VQ0xLCkBAIC0yMTgsMjMgKzIwNiw2IEBACiAJfQogfTsKIAotLyogTk9SIEZsYXNoIG9uIEJBU1QgYm9hcmQgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiYXN0X25vcl9yZXNvdXJjZVtdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ID0gUzNDMjQxMF9DUzEgKyAweDQwMDAwMDAsCi0JCS5lbmQgICA9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwICsgKDMyKjEwMjQqMTAyNCkgLSAxLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9Ci19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBiYXN0X2RldmljZV9ub3IgPSB7Ci0JLm5hbWUJCT0gImJhc3Qtbm9yIiwKLQkuaWQJCT0gLTEsCi0JLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGJhc3Rfbm9yX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJPSBiYXN0X25vcl9yZXNvdXJjZSwKLX07Ci0KIC8qIE5BTkQgRmxhc2ggb24gQkFTVCBib2FyZCAqLwogCiAjaWZkZWYgQ09ORklHX1BNCkBAIC0zNzQsNyArMzQ1LDcgQEAKIAlbMl0gPSB7CiAJCS5zdGFydCA9IElSUV9ETTkwMDAsCiAJCS5lbmQgICA9IElSUV9ETTkwMDAsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSVJRRl9UUklHR0VSX0hJR0gsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSU9SRVNPVVJDRV9JUlFfSElHSExFVkVMLAogCX0KIAogfTsKQEAgLTU2NCw2ICs1MzUsMTggQEAKIAkuZGVmYXVsdF9kaXNwbGF5ID0gMSwKIH07CiAKKy8qIEkyQyBkZXZpY2VzIGZpdHRlZC4gKi8KKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBiYXN0X2kyY19kZXZzW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJ0bHYzMjBhaWMyMyIsIDB4MWEpLAorCX0sIHsKKwkJSTJDX0JPQVJEX0lORk8oInNpbXRlYy1wbXUiLCAweDZiKSwKKwl9LCB7CisJCUkyQ19CT0FSRF9JTkZPKCJjaDcwMTMiLCAweDc1KSwKKwl9LAorfTsKKwogLyogU3RhbmRhcmQgQkFTVCBkZXZpY2VzICovCiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpiYXN0X2RldmljZXNbXSBfX2luaXRkYXRhID0gewpAQCAtNTczLDcgKzU1Niw2IEBACiAJJnMzY19kZXZpY2VfaTJjLAogIAkmczNjX2RldmljZV9ydGMsCiAJJnMzY19kZXZpY2VfbmFuZCwKLQkmYmFzdF9kZXZpY2Vfbm9yLAogCSZiYXN0X2RldmljZV9kbTlrLAogCSZiYXN0X2RldmljZV9hc2l4LAogCSZiYXN0X2RldmljZV9heHBwLApAQCAtNjIyLDYgKzYwNCwxMSBAQAogCiAJczNjMjR4eF9mYl9zZXRfcGxhdGRhdGEoJmJhc3RfZmJfaW5mbyk7CiAJcGxhdGZvcm1fYWRkX2RldmljZXMoYmFzdF9kZXZpY2VzLCBBUlJBWV9TSVpFKGJhc3RfZGV2aWNlcykpOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgYmFzdF9pMmNfZGV2cywKKwkJCQlBUlJBWV9TSVpFKGJhc3RfaTJjX2RldnMpKTsKKworCW5vcl9zaW10ZWNfaW5pdCgpOwogfQogCiBNQUNISU5FX1NUQVJUKEJBU1QsICJTaW10ZWMtQkFTVCIpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1uMzAuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLW4zMC5jCmluZGV4IDYyMWY1NDguLjQzYzJlOTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLW4zMC5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLW4zMC5jCkBAIC0xLDkgKzEsMTAgQEAKLS8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLW4zMC5jCisvKiBNYWNoaW5lIHNwZWNpZmljIGNvZGUgZm9yIHRoZSBBY2VyIG4zMCwgQWNlciBOMzUsIE5hdm1hbiBQaU4gNTcwLAorICogWWFrdW1vIEFscGhhWCBhbmQgQWlyaXMgTkMwNSBQREFzLgogICoKICAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcwogICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKLSAqIENvcHlyaWdodCAoYykgMjAwNSBDaHJpc3RlciBXZWluaWdlbCA8Y2hyaXN0ZXJAd2VpbmlnZWwuc2U+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBDaHJpc3RlciBXZWluaWdlbCA8Y2hyaXN0ZXJAd2VpbmlnZWwuc2U+CiAgKgogICogVGhlcmUgaXMgYSB3aWtpIHdpdGggbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbjMwIHBvcnQgYXQKICAqIGh0dHA6Ly9oYW5kaGVsZHMub3JnL21vaW4vbW9pbi5jZ2kvQWNlck4zMERvY3VtZW50YXRpb24gLgpAQCAtMTEsMzYgKzEyLDQyIEBACiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKICAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotKi8KKyAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KIAotI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KLSNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KLSNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KIAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgogCi0jaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZmIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9sZWRzLWdwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KLSNpbmNsdWRlIDxhc20vcGxhdC1zM2MvaWljLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1sY2QuaD4KIAotI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvczNjMjQxMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9paWMuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKwogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY2xvY2suaD4KLSNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2NwdS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvZGV2cy5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvczNjMjQxMC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvdWRjLmg+CiAKIHN0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgbjMwX2lvZGVzY1tdIF9faW5pdGRhdGEgPSB7CiAJLyogbm90aGluZyBoZXJlIHlldCAqLwpAQCAtNjQsNyArNzEsOCBAQAogCQkudWxjb24JICAgICA9IDB4NDMsCiAJCS51ZmNvbgkgICAgID0gMHg1MSwKIAl9LAotCS8qIFRoZSBCbHVlVG9vdGggY29udHJvbGxlciBpcyBjb25uZWN0ZWQgdG8gcG9ydCAyICovCisJLyogT24gdGhlIE4zMCB0aGUgYmx1ZXRvb3RoIGNvbnRyb2xsZXIgaXMgY29ubmVjdGVkIGhlcmUuCisJICogT24gdGhlIE4zNSBhbmQgdmFyaWFudHMgdGhlIEdQUyByZWNlaXZlciBpcyBjb25uZWN0ZWQgaGVyZS4gKi8KIAlbMl0gPSB7CiAJCS5od3BvcnQJICAgICA9IDIsCiAJCS5mbGFncwkgICAgID0gMCwKQEAgLTc0LDEzICs4MiwyNjAgQEAKIAl9LAogfTsKIAorc3RhdGljIHZvaWQgbjMwX3VkY19wdWxsdXAoZW51bSBzM2MyNDEwX3VkY19jbWRfZSBjbWQpCit7CisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFMzQzI0MTBfVURDX1BfRU5BQkxFIDoKKwkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQjMsIDEpOworCQlicmVhazsKKwljYXNlIFMzQzI0MTBfVURDX1BfRElTQUJMRSA6CisJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEIzLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBTM0MyNDEwX1VEQ19QX1JFU0VUIDoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfdWRjX21hY2hfaW5mbyBuMzBfdWRjX2NmZyBfX2luaXRkYXRhID0geworCS51ZGNfY29tbWFuZAkJPSBuMzBfdWRjX3B1bGx1cCwKKwkudmJ1c19waW4JCT0gUzNDMjQxMF9HUEcxLAorCS52YnVzX3Bpbl9pbnZlcnRlZAk9IDAsCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gbjMwX2J1dHRvbnNbXSA9IHsKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGMCwKKwkJLmNvZGUJCT0gS0VZX1BPV0VSLAorCQkuZGVzYwkJPSAiUG93ZXIiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHOSwKKwkJLmNvZGUJCT0gS0VZX1VQLAorCQkuZGVzYwkJPSAiVGh1bWJ3aGVlbCBVcCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc4LAorCQkuY29kZQkJPSBLRVlfRE9XTiwKKwkJLmRlc2MJCT0gIlRodW1id2hlZWwgRG93biIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc3LAorCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5kZXNjCQk9ICJUaHVtYndoZWVsIFByZXNzIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjcsCisJCS5jb2RlCQk9IEtFWV9IT01FUEFHRSwKKwkJLmRlc2MJCT0gIkhvbWUiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNiwKKwkJLmNvZGUJCT0gS0VZX0NBTEVOREFSLAorCQkuZGVzYwkJPSAiQ2FsZW5kYXIiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNSwKKwkJLmNvZGUJCT0gS0VZX0FERFJFU1NCT09LLAorCQkuZGVzYwkJPSAiQ29udGFjdHMiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNCwKKwkJLmNvZGUJCT0gS0VZX01BSUwsCisJCS5kZXNjCQk9ICJNYWlsIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIG4zMF9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IG4zMF9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUobjMwX2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbjMwX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZuMzBfYnV0dG9uX2RhdGEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIG4zNV9idXR0b25zW10gPSB7CisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjAsCisJCS5jb2RlCQk9IEtFWV9QT1dFUiwKKwkJLmRlc2MJCT0gIlBvd2VyIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzksCisJCS5jb2RlCQk9IEtFWV9VUCwKKwkJLmRlc2MJCT0gIkpveXN0aWNrIFVwIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzgsCisJCS5jb2RlCQk9IEtFWV9ET1dOLAorCQkuZGVzYwkJPSAiSm95c3RpY2sgRG93biIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc2LAorCQkuY29kZQkJPSBLRVlfRE9XTiwKKwkJLmRlc2MJCT0gIkpveXN0aWNrIExlZnQiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHNSwKKwkJLmNvZGUJCT0gS0VZX0RPV04sCisJCS5kZXNjCQk9ICJKb3lzdGljayBSaWdodCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc3LAorCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5kZXNjCQk9ICJKb3lzdGljayBQcmVzcyIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY3LAorCQkuY29kZQkJPSBLRVlfSE9NRVBBR0UsCisJCS5kZXNjCQk9ICJIb21lIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjYsCisJCS5jb2RlCQk9IEtFWV9DQUxFTkRBUiwKKwkJLmRlc2MJCT0gIkNhbGVuZGFyIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjUsCisJCS5jb2RlCQk9IEtFWV9BRERSRVNTQk9PSywKKwkJLmRlc2MJCT0gIkNvbnRhY3RzIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjQsCisJCS5jb2RlCQk9IEtFWV9NQUlMLAorCQkuZGVzYwkJPSAiTWFpbCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEYzLAorCQkuY29kZQkJPSBTV19SQURJTywKKwkJLmRlc2MJCT0gIkdQUyBBbnRlbm5hIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzIsCisJCS5jb2RlCQk9IFNXX0hFQURQSE9ORV9JTlNFUlQsCisJCS5kZXNjCQk9ICJIZWFkcGhvbmUiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgbjM1X2J1dHRvbl9kYXRhID0geworCS5idXR0b25zCT0gbjM1X2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShuMzVfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBuMzVfYnV0dG9uX2RldmljZSA9IHsKKwkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKKwkuaWQJCT0gLTEsCisJLm51bV9yZXNvdXJjZXMJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZuMzVfYnV0dG9uX2RhdGEsCisJfQorfTsKKworLyogVGhpcyBpcyB0aGUgYmx1ZXRvb3RoIExFRCBvbiB0aGUgZGV2aWNlLiAqLworc3RhdGljIHN0cnVjdCBzM2MyNHh4X2xlZF9wbGF0ZGF0YSBuMzBfYmx1ZV9sZWRfcGRhdGEgPSB7CisJLm5hbWUJCT0gImJsdWVfbGVkIiwKKwkuZ3BpbwkJPSBTM0MyNDEwX0dQRzYsCisJLmRlZl90cmlnZ2VyCT0gIiIsCit9OworCisvKiBUaGlzIExFRCBpcyBkcml2ZW4gYnkgdGhlIGJhdHRlcnkgbWljcm9jb250cm9sbGVyLCBhbmQgaXMgYmxpbmtpbmcKKyAqIHJlZCwgYmxpbmtpbmcgZ3JlZW4gb3Igc29saWQgZ3JlZW4gd2hlbiB0aGUgYmF0dGVyeSBpcyBsb3csCisgKiBjaGFyZ2luZyBvciBmdWxsIHJlc3BlY3RpdmVseS4gIEJ5IGRyaXZpbmcgR1BEOSBsb3csIGl0J3MgcG9zc2libGUKKyAqIHRvIGZvcmNlIHRoZSBMRUQgdG8gYmxpbmsgcmVkLCBzbyBjYWxsIHRoYXQgd2FybmluZyBMRUQuICAqLworc3RhdGljIHN0cnVjdCBzM2MyNHh4X2xlZF9wbGF0ZGF0YSBuMzBfd2FybmluZ19sZWRfcGRhdGEgPSB7CisJLm5hbWUJCT0gIndhcm5pbmdfbGVkIiwKKwkuZmxhZ3MgICAgICAgICAgPSBTM0MyNFhYX0xFREZfQUNUTE9XLAorCS5ncGlvCQk9IFMzQzI0MTBfR1BEOSwKKwkuZGVmX3RyaWdnZXIJPSAiIiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG4zMF9ibHVlX2xlZCA9IHsKKwkubmFtZQkJPSAiczNjMjR4eF9sZWQiLAorCS5pZAkJPSAxLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZuMzBfYmx1ZV9sZWRfcGRhdGEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG4zMF93YXJuaW5nX2xlZCA9IHsKKwkubmFtZQkJPSAiczNjMjR4eF9sZWQiLAorCS5pZAkJPSAyLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZuMzBfd2FybmluZ19sZWRfcGRhdGEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMGZiX2Rpc3BsYXkgbjMwX2Rpc3BsYXkgX19pbml0ZGF0YSA9IHsKKwkudHlwZQkJPSBTM0MyNDEwX0xDRENPTjFfVEZULAorCS53aWR0aAkJPSAyNDAsCisJLmhlaWdodAkJPSAzMjAsCisJLnBpeGNsb2NrCT0gMTcwMDAwLAorCisJLnhyZXMJCT0gMjQwLAorCS55cmVzCQk9IDMyMCwKKwkuYnBwCQk9IDE2LAorCS5sZWZ0X21hcmdpbgk9IDMsCisJLnJpZ2h0X21hcmdpbgk9IDQwLAorCS5oc3luY19sZW4JPSA0MCwKKwkudXBwZXJfbWFyZ2luCT0gMiwKKwkubG93ZXJfbWFyZ2luCT0gMywKKwkudnN5bmNfbGVuCT0gMiwKKworCS5sY2Rjb241ID0gUzNDMjQxMF9MQ0RDT041X0lOVlZMSU5FIHwgUzNDMjQxMF9MQ0RDT041X0lOVlZGUkFNRSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMGZiX21hY2hfaW5mbyBuMzBfZmJfaW5mbyBfX2luaXRkYXRhID0geworCS5kaXNwbGF5cwk9ICZuMzBfZGlzcGxheSwKKwkubnVtX2Rpc3BsYXlzCT0gMSwKKwkuZGVmYXVsdF9kaXNwbGF5ID0gMCwKKwkubHBjc2VsCQk9IDB4MDYsCit9OworCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbjMwX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZzM2NfZGV2aWNlX2xjZCwKKwkmczNjX2RldmljZV93ZHQsCisJJnMzY19kZXZpY2VfaTJjLAorCSZzM2NfZGV2aWNlX2lpcywKIAkmczNjX2RldmljZV91c2IsCisJJnMzY19kZXZpY2VfdXNiZ2FkZ2V0LAorCSZuMzBfYnV0dG9uX2RldmljZSwKKwkmbjMwX2JsdWVfbGVkLAorCSZuMzBfd2FybmluZ19sZWQsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbjM1X2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzM2NfZGV2aWNlX2xjZCwKIAkmczNjX2RldmljZV93ZHQsCiAJJnMzY19kZXZpY2VfaTJjLAogCSZzM2NfZGV2aWNlX2lpcywKIAkmczNjX2RldmljZV91c2JnYWRnZXQsCisJJm4zNV9idXR0b25fZGV2aWNlLAogfTsKIAogc3RhdGljIHN0cnVjdCBzM2MyNDEwX3BsYXRmb3JtX2kyYyBuMzBfaTJjY2ZnID0gewpAQCAtOTAsOSArMzQ1LDE0OCBAQAogCS5tYXhfZnJlcQk9IDEwKjEwMDAsCiB9OwogCisvKiBMb3RzIG9mIGhhcmRjb2RlZCBzdHVmZiwgYnV0IGl0IHNldHMgdXAgdGhlIGhhcmR3YXJlIGluIGEgdXNlZnVsCisgKiBzdGF0ZSBzbyB0aGF0IHdlIGNhbiBib290IExpbnV4IGRpcmVjdGx5IGZyb20gZmxhc2guICovCitzdGF0aWMgdm9pZCBfX2luaXQgbjMwX2h3aW5pdCh2b2lkKQoreworCS8qIEdQQTAtMTEgc3BlY2lhbCBmdW5jdGlvbnMgLS0gdW5rbm93biB3aGF0IHRoZXkgZG8KKwkgKiBHUEExMiBOMzAgc3BlY2lhbCBmdW5jdGlvbiAtLSB1bmtub3duIHdoYXQgaXQgZG9lcworCSAqICAgICAgIE4zNS9QaU4gb3V0cHV0IC0tIHVua25vd24gd2hhdCBpdCBkb2VzCisJICoKKwkgKiBBMTIgaXMgbkdDUzEgb24gdGhlIE4zMCBhbmQgYW4gb3V0cHV0IG9uIHRoZSBOMzUvUGlOLiAgSQorCSAqIGRvbid0IHRoaW5rIGl0IGRvZXMgYW55dGhpbmcgdXNlZnVsIG9uIHRoZSBOMzAsIHNvIEkgb3VnaHQKKwkgKiB0byBtYWtlIGl0IGFuIG91dHB1dCB0aGVyZSB0b28gc2luY2UgaXQgYWx3YXlzIGRyaXZlbiB0byAwCisJICogYXMgZmFyIGFzIEkgY2FuIHRlbGwuICovCisJaWYgKG1hY2hpbmVfaXNfbjMwKCkpCisJCV9fcmF3X3dyaXRlbCgweDAwN2ZmZmZmLCBTM0MyNDEwX0dQQUNPTik7CisJaWYgKG1hY2hpbmVfaXNfbjM1KCkpCisJCV9fcmF3X3dyaXRlbCgweDAwN2ZlZmZmLCBTM0MyNDEwX0dQQUNPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDAwMDAsIFMzQzI0MTBfR1BBREFUKTsKKworCS8qIEdQQjAgVE9VVDAgYmFja2xpZ2h0IGxldmVsCisJICogR1BCMSBvdXRwdXQgMT1iYWNrbGlnaHQgb24KKwkgKiBHUEIyIG91dHB1dCBJckRBIGVuYWJsZSAwPXRyYW5zY2VpdmVyIGVuYWJsZWQsIDE9ZGlzYWJsZWQKKwkgKiBHUEIzIG91dHB1dCBVU0IgRCsgcHVsbCB1cCAwPWRpc2FibGVkLCAxPWVuYWJsZWQKKwkgKiBHUEI0IE4zMCBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgTjMwL1BpTiBHUFMgY29udHJvbCAwPUdQUyBlbmFibGVkLCAxPUdQUyBkaXNhYmxlZAorCSAqIEdQQjUgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEI2IGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEI3IG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BCOCBvdXRwdXQgLS0gcHJvYmFibHkgTENEIGRyaXZlciBlbmFibGUKKwkgKiBHUEI5IG91dHB1dCAtLSBwcm9iYWJseSBMQ0QgVlNZTkMgZHJpdmVyIGVuYWJsZQorCSAqIEdQQjEwIG91dHB1dCAtLSBwcm9iYWJseSBMQ0QgSFNZTkMgZHJpdmVyIGVuYWJsZQorCSAqLworCV9fcmF3X3dyaXRlbCgweDAwMTU0NTU2LCBTM0MyNDEwX0dQQkNPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDA3NTAsIFMzQzI0MTBfR1BCREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDA3MywgUzNDMjQxMF9HUEJVUCk7CisKKwkvKiBHUEMwIGlucHV0IFJTMjMyIERDRC9EU1IvUkkKKwkgKiBHUEMxIExDRAorCSAqIEdQQzIgb3V0cHV0IFJTMjMyIERUUj8KKwkgKiBHUEMzIGlucHV0IFJTMjMyIERDRC9EU1IvUkkKKwkgKiBHUEM0IExDRAorCSAqIEdQQzUgb3V0cHV0IDA9TkFORCB3cml0ZSBlbmFibGVkLCAxPU5BTkQgd3JpdGUgcHJvdGVjdAorCSAqIEdQQzYgaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQQzcgaW5wdXQgY2hhcmdlciBzdGF0dXMgMD1jaGFyZ2VyIGNvbm5lY3RlZAorCSAqICAgICAgdGhpcyBpbnB1dCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHBvd2VyIG9uIHRoZSBVU0IgZGV2aWNlCisJICogICAgICBwb3J0IHRvbywgYnV0IHdpbGwgZ28gYmFjayB0byBkaXNjb25uZWN0ZWQgc29vbiBhZnRlci4KKwkgKiBHUEM4IE4zMC9OMzUgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24sIGFsd2F5cyBkcml2ZW4gdG8gMQorCSAqICAgICAgUGlOIGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24sIGFsd2F5cyByZWFkIGFzIDEKKwkgKiAgICAgIE1ha2UgaXQgYW4gaW5wdXQgd2l0aCBhIHB1bGwgdXAgZm9yIGFsbCBtb2RlbHMuCisJICogR1BDOS0xNSBMQ0QKKwkgKi8KKwlfX3Jhd193cml0ZWwoMHhhYWE4MDYxOCwgUzNDMjQxMF9HUENDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwMTRjLCBTM0MyNDEwX0dQQ0RBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMGZlZjIsIFMzQzI0MTBfR1BDVVApOworCisJLyogR1BEMCBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BEMS1ENyBMQ0QKKwkgKiBHUEQ4IE4zMCBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgTjM1L1BpTiBvdXRwdXQgMT1HUFMgTEVEIG9uCisJICogR1BEOSBvdXRwdXQgMD1wb3dlciBsZWQgYmxpbmtzIHJlZCwgMT1ub3JtYWwgcG93ZXIgbGVkIGZ1bmN0aW9uCisJICogR1BEMTAgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEQxMS0xNSBMQ0QgZHJpdmVycworCSAqLworCV9fcmF3X3dyaXRlbCgweGFhOTVhYWE0LCBTM0MyNDEwX0dQRENPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDA2MDEsIFMzQzI0MTBfR1BEREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZmJmZSwgUzNDMjQxMF9HUERVUCk7CisKKwkvKiBHUEUwLTQgSTJTIGF1ZGlvIGJ1cworCSAqIEdQRTUtMTAgU0QvTU1DIGJ1cworCSAqIEUxMS0xMyBvdXRwdXRzIC0tIHVua25vd24gZnVuY3Rpb24sIHByb2JhYmx5IHBvd2VyIG1hbmFnZW1lbnQKKwkgKiBFMTQtMTUgSTJDIGJ1cyBjb25uZWN0ZWQgdG8gdGhlIGJhdHRlcnkgY29udHJvbGxlcgorCSAqLworCV9fcmF3X3dyaXRlbCgweGE1NmFhYWFhLCBTM0MyNDEwX0dQRUNPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMGVmYzUsIFMzQzI0MTBfR1BFREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZjgxZiwgUzNDMjQxMF9HUEVVUCk7CisKKwkvKiBHUEYwICBpbnB1dCAwPXBvd2VyIGJ1dHRvbiBwcmVzc2VkCisJICogR1BGMSAgaW5wdXQgU0QvTU1DIHN3aXRjaCAwPWNhcmQgcHJlc2VudAorCSAqIEdQRjIgIE4zMCAxPXJlc2V0IGJ1dHRvbiBwcmVzc2VkIChpbnZlcnRlZCBjb21wYXJlZCB0byB0aGUgcmVzdCkKKwkgKgkgTjM1L1BpTiAwPXJlc2V0IGJ1dHRvbiBwcmVzc2VkCisJICogR1BGMyAgTjMwL1BpTiBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICAgTjM1IGlucHV0IEdQUyBhbnRlbm5hIHBvc2l0aW9uLCAwPWFudGVubmEgY2xvc2VkLCAxPW9wZW4KKwkgKiBHUEY0ICBpbnB1dCAwPWJ1dHRvbiA0IHByZXNzZWQKKwkgKiBHUEY1ICBpbnB1dCAwPWJ1dHRvbiAzIHByZXNzZWQKKwkgKiBHUEY2ICBpbnB1dCAwPWJ1dHRvbiAyIHByZXNzZWQKKwkgKiBHUEY3ICBpbnB1dCAwPWJ1dHRvbiAxIHByZXNzZWQKKwkgKi8KKwlfX3Jhd193cml0ZWwoMHgwMDAwYWFhYSwgUzNDMjQxMF9HUEZDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwMDAwLCBTM0MyNDEwX0dQRkRBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMDAwZmYsIFMzQzI0MTBfR1BGVVApOworCisJLyogR1BHMCAgaW5wdXQgUlMyMzIgRENEL0RTUi9SSQorCSAqIEdQRzEgIGlucHV0IDE9VVNCIGdhZGdldCBwb3J0IGhhcyBwb3dlciBmcm9tIGEgaG9zdAorCSAqIEdQRzIgIE4zMCBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICAgTjM1L1BpTiBpbnB1dCAwPWhlYWRwaG9uZXMgcGx1Z2dlZCBpbiwgMT1ub3QgcGx1Z2dlZCBpbgorCSAqIEdQRzMgIE4zMCBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgIE4zNS9QaU4gaW5wdXQgd2l0aCB1bmtub3duIGZ1bmN0aW9uCisJICogR1BHNCAgTjMwIG91dHB1dCAwPU1NQyBlbmFibGVkLCAxPU1NQyBkaXNhYmxlZAorCSAqIEdQRzUgIE4zMCBvdXRwdXQgMD1CbHVlVG9vdGggY2hpcCBkaXNhYmxlZCwgMT1lbmFibGVkCisJICogICAgICAgTjM1L1BpTiBpbnB1dCBqb3lzdGljayByaWdodAorCSAqIEdQRzYgIE4zMCBvdXRwdXQgMD1ibHVlIGxlZCBvbiwgMT1vZmYKKwkgKiAgICAgICBOMzUvUGlOIGlucHV0IGpveXN0aWNrIGxlZnQKKwkgKiBHUEc3ICBpbnB1dCAwPXRodW1id2hlZWwgcHJlc3NlZAorCSAqIEdQRzggIGlucHV0IDA9dGh1bWJ3aGVlbCBkb3duCisJICogR1BHOSAgaW5wdXQgMD10aHVtYndoZWVsIHVwCisJICogR1BHMTAgaW5wdXQgU0QvTU1DIHdyaXRlIHByb3RlY3Qgc3dpdGNoCisJICogR1BHMTEgTjMwIGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgICBOMzUgb3V0cHV0IDA9R1BTIGFudGVubmEgcG93ZXJlZCwgMT1ub3QgcG93ZXJlZAorCSAqICAgICAgIFBpTiBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQRzEyLTE1IHRvdWNoIHNjcmVlbiBmdW5jdGlvbnMKKwkgKgorCSAqIFRoZSBwdWxsdXBzIGRpZmZlciBiZXR3ZWVuIHRoZSBtb2RlbHMsIHNvIGVuYWJsZSBhbGwKKwkgKiBwdWxsdXBzIHRoYXQgYXJlIGVuYWJsZWQgb24gYW55IG9mIHRoZSBtb2RlbHMuCisJICovCisJaWYgKG1hY2hpbmVfaXNfbjMwKCkpCisJCV9fcmF3X3dyaXRlbCgweGZmMGE5NTZhLCBTM0MyNDEwX0dQR0NPTik7CisJaWYgKG1hY2hpbmVfaXNfbjM1KCkpCisJCV9fcmF3X3dyaXRlbCgweGZmNGFhOTJhLCBTM0MyNDEwX0dQR0NPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMGU4MDAsIFMzQzI0MTBfR1BHREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZjg2ZiwgUzNDMjQxMF9HUEdVUCk7CisKKwkvKiBHUEgwLzEvMi8zIFJTMjMyIHNlcmlhbCBwb3J0CisJICogR1BINC81IElyREEgc2VyaWFsIHBvcnQKKwkgKiBHUEg2LzcgIE4zMCBCbHVlVG9vdGggc2VyaWFsIHBvcnQKKwkgKiAgICAgICAgIE4zNS9QaU4gR1BTIHJlY2VpdmVyCisJICogR1BIOCBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BIOSBDTEtPVVQwIEhDTEsgLS0gdW5rbm93biB1c2UKKwkgKiBHUEgxMCBDTEtPVVQxIEZDTEsgLS0gdW5rbm93biB1c2UKKwkgKgorCSAqIFRoZSBwdWxsIHVwcyBmb3IgSDYvSDcgYXJlIGVuYWJsZWQgb24gTjMwIGJ1dCBub3Qgb24gdGhlCisJICogTjM1L1BpTi4gIEkgc3VwcG9zZSBpcyB1c2VmdWwgZm9yIGEgYnVkZ2V0IG1vZGVsIG9mIHRoZSBOMzAKKwkgKiB3aXRoIG5vIGJsdWV0b29oLiAgSXQgZG9lc24ndCBodXJ0IHRvIGhhdmUgdGhlIHB1bGwgdXBzCisJICogZW5hYmxlZCBvbiB0aGUgTjM1LCBzbyBsZWF2ZSB0aGVtIGVuYWJsZWQgZm9yIGFsbCBtb2RlbHMuCisJICovCisJX19yYXdfd3JpdGVsKDB4MDAyOGFhYWEsIFMzQzI0MTBfR1BIQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDVlZiwgUzNDMjQxMF9HUEhEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDAwNjNmLCBTM0MyNDEwX0dQSFVQKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IG4zMF9tYXBfaW8odm9pZCkKIHsKIAlzM2MyNHh4X2luaXRfaW8objMwX2lvZGVzYywgQVJSQVlfU0laRShuMzBfaW9kZXNjKSk7CisJbjMwX2h3aW5pdCgpOwogCXMzYzI0eHhfaW5pdF9jbG9ja3MoMCk7CiAJczNjMjR4eF9pbml0X3VhcnRzKG4zMF91YXJ0Y2ZncywgQVJSQVlfU0laRShuMzBfdWFydGNmZ3MpKTsKIH0KQEAgLTEwNiw3ICs1MDAsOSBAQAogCiBzdGF0aWMgdm9pZCBfX2luaXQgbjMwX2luaXQodm9pZCkKIHsKKwlzM2MyNHh4X2ZiX3NldF9wbGF0ZGF0YSgmbjMwX2ZiX2luZm8pOwogCXMzY19kZXZpY2VfaTJjLmRldi5wbGF0Zm9ybV9kYXRhID0gJm4zMF9pMmNjZmc7CisJczNjMjR4eF91ZGNfc2V0X3BsYXRkYXRhKCZuMzBfdWRjX2NmZyk7CiAKIAkvKiBUdXJuIG9mZiBzdXNwZW5kIG9uIGJvdGggVVNCIHBvcnRzLCBhbmQgc3dpdGNoIHRoZQogCSAqIHNlbGVjdGFibGUgVVNCIHBvcnQgdG8gVVNCIGRldmljZSBtb2RlLiAqLwpAQCAtMTE1LDcgKzUxMSwzMiBAQAogCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMCB8CiAJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQxLCAweDApOwogCi0JcGxhdGZvcm1fYWRkX2RldmljZXMobjMwX2RldmljZXMsIEFSUkFZX1NJWkUobjMwX2RldmljZXMpKTsKKwlpZiAobWFjaGluZV9pc19uMzAoKSkgeworCQkvKiBUdXJuIG9mZiBzdXNwZW5kIG9uIGJvdGggVVNCIHBvcnRzLCBhbmQgc3dpdGNoIHRoZQorCQkgKiBzZWxlY3RhYmxlIFVTQiBwb3J0IHRvIFVTQiBkZXZpY2UgbW9kZS4gKi8KKwkJczNjMjQxMF9tb2RpZnlfbWlzY2NyKFMzQzI0MTBfTUlTQ0NSX1VTQkhPU1QgfAorCQkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDAgfAorCQkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDEsIDB4MCk7CisKKwkJcGxhdGZvcm1fYWRkX2RldmljZXMobjMwX2RldmljZXMsIEFSUkFZX1NJWkUobjMwX2RldmljZXMpKTsKKwl9CisKKwlpZiAobWFjaGluZV9pc19uMzUoKSkgeworCQkvKiBUdXJuIG9mZiBzdXNwZW5kIGFuZCBzd2l0Y2ggdGhlIHNlbGVjdGFibGUgVVNCIHBvcnQKKwkJICogdG8gVVNCIGRldmljZSBtb2RlLiAgVHVybiBvbiBzdXNwZW5kIGZvciB0aGUgaG9zdAorCQkgKiBwb3J0IHNpbmNlIGl0IGlzIG5vdCBjb25uZWN0ZWQgb24gdGhlIE4zNS4KKwkJICoKKwkJICogQWN0dWFsbHksIHRoZSBob3N0IHBvcnQgaXMgYXZhaWxhYmxlIGF0IHNvbWUgcGFkcworCQkgKiBvbiB0aGUgYmFjayBvZiB0aGUgZGV2aWNlLCBzbyBpdCB3b3VsZCBhY3R1YWxseSBiZQorCQkgKiBwb3NzaWJsZSB0byBhZGQgYSBVU0IgZGV2aWNlIGluc2lkZSB0aGUgTjM1IGlmIHlvdQorCQkgKiBhcmUgd2lsbGluZyB0byBkbyBzb21lIGhhcmR3YXJlIG1vZGlmaWNhdGlvbnMuICovCisJCXMzYzI0MTBfbW9kaWZ5X21pc2NjcihTM0MyNDEwX01JU0NDUl9VU0JIT1NUIHwKKwkJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQwIHwKKwkJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQxLAorCQkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDEpOworCisJCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG4zNV9kZXZpY2VzLCBBUlJBWV9TSVpFKG4zNV9kZXZpY2VzKSk7CisJfQogfQogCiBNQUNISU5FX1NUQVJUKE4zMCwgIkFjZXItTjMwIikKQEAgLTEzMSw5ICs1NTIsMTQgQEAKIAkubWFwX2lvCQk9IG4zMF9tYXBfaW8sCiBNQUNISU5FX0VORAogCi0vKgotICAgIExvY2FsIHZhcmlhYmxlczoKLSAgICAgICAgY29tcGlsZS1jb21tYW5kOiAibWFrZSBBUkNIPWFybSBDUk9TU19DT01QSUxFPS91c3IvbG9jYWwvYXJtLzMuMy4yL2Jpbi9hcm0tbGludXgtIC1rIC1DIC4uLy4uLy4uIgotICAgICAgICBjLWJhc2ljLW9mZnNldDogOAotICAgIEVuZDoKLSovCitNQUNISU5FX1NUQVJUKE4zNSwgIkFjZXItTjM1IikKKwkvKiBNYWludGFpbmVyOiBDaHJpc3RlciBXZWluaWdlbCA8Y2hyaXN0ZXJAd2VpbmlnZWwuc2U+CisJKi8KKwkucGh5c19pbwk9IFMzQzI0MTBfUEFfVUFSVCwKKwkuaW9fcGdfb2Zmc3QJPSAoKCh1MzIpUzNDMjRYWF9WQV9VQVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gUzNDMjQxMF9TRFJBTV9QQSArIDB4MTAwLAorCS50aW1lcgkJPSAmczNjMjR4eF90aW1lciwKKwkuaW5pdF9tYWNoaW5lCT0gbjMwX2luaXQsCisJLmluaXRfaXJxCT0gbjMwX2luaXRfaXJxLAorCS5tYXBfaW8JCT0gbjMwX21hcF9pbywKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC12cjEwMDAuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLXZyMTAwMC5jCmluZGV4IDRjNGI1YzQuLjlhMDk2NWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLXZyMTAwMC5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLXZyMTAwMC5jCkBAIC0xLDYgKzEsNiBAQAogLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtdnIxMDAwLmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCiAgKiAgIEJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCiAgKiBNYWNoaW5lIHN1cHBvcnQgZm9yIFRob3Jjb20gVlIxMDAwIGJvYXJkLiBEZXNpZ25lZCBmb3IgVGhvcmNvbSBieQpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtOTAwMC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogCiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CkBAIC00Niw3ICs0Nyw5IEBACiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvZGV2cy5oPgogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisKICNpbmNsdWRlICJ1c2Itc2ltdGVjLmgiCisjaW5jbHVkZSAibm9yLXNpbXRlYy5oIgogCiAvKiBtYWNyb3MgZm9yIHZpcnR1YWwgYWRkcmVzcyBtb2RzIGZvciB0aGUgaW8gc3BhY2UgZW50cmllcyAqLwogI2RlZmluZSBWQV9DNShpdGVtKSAoKHVuc2lnbmVkIGxvbmcpKGl0ZW0pICsgQkFTVF9WQU1fQ1M1KQpAQCAtOTcsMzQgKzEwMCw2IEBACiAJICAubGVuZ3RoCT0gU1pfMU0sCiAJICAudHlwZQkJPSBNVF9ERVZJQ0UsCiAgIH0sCi0KLSAgLyogcGVyaXBoZXJhbCBzcGFjZS4uLiBvbmUgZm9yIGVhY2ggb2YgZmFzdC9zbG93L2J5dGUvMTZiaXQgKi8KLSAgLyogbm90ZSwgaWRlIGlzIG9ubHkgZGVjb2RlZCBpbiB3b3JkIHNwYWNlLCBldmVuIHRob3VnaCBzb21lIHJlZ2lzdGVycwotICAgKiBhcmUgb25seSA4Yml0ICovCi0KLSAgLyogc2xvdywgYnl0ZSAqLwotICB7IFZBX0MyKFZSMTAwMF9WQV9JREVQUkkpLCAgUEFfQ1MzKFZSMTAwMF9QQV9JREVQUkkpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoVlIxMDAwX1ZBX0lERVNFQyksICBQQV9DUzMoVlIxMDAwX1BBX0lERVNFQyksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihWUjEwMDBfVkFfSURFUFJJQVVYKSwgUEFfQ1MzKFZSMTAwMF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoVlIxMDAwX1ZBX0lERVNFQ0FVWCksIFBBX0NTMyhWUjEwMDBfUEFfSURFU0VDQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotCi0gIC8qIHNsb3csIHdvcmQgKi8KLSAgeyBWQV9DMyhWUjEwMDBfVkFfSURFUFJJKSwgIFBBX0NTMyhWUjEwMDBfUEFfSURFUFJJKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKFZSMTAwMF9WQV9JREVTRUMpLCAgUEFfQ1MzKFZSMTAwMF9QQV9JREVTRUMpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoVlIxMDAwX1ZBX0lERVBSSUFVWCksIFBBX0NTMyhWUjEwMDBfUEFfSURFUFJJQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKFZSMTAwMF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoVlIxMDAwX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLQotICAvKiBmYXN0LCBieXRlICovCi0gIHsgVkFfQzQoVlIxMDAwX1ZBX0lERVBSSSksICBQQV9DUzUoVlIxMDAwX1BBX0lERVBSSSksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChWUjEwMDBfVkFfSURFU0VDKSwgIFBBX0NTNShWUjEwMDBfUEFfSURFU0VDKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KFZSMTAwMF9WQV9JREVQUklBVVgpLCBQQV9DUzUoVlIxMDAwX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChWUjEwMDBfVkFfSURFU0VDQVVYKSwgUEFfQ1M1KFZSMTAwMF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0KLSAgLyogZmFzdCwgd29yZCAqLwotICB7IFZBX0M1KFZSMTAwMF9WQV9JREVQUkkpLCAgUEFfQ1M1KFZSMTAwMF9QQV9JREVQUkkpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoVlIxMDAwX1ZBX0lERVNFQyksICBQQV9DUzUoVlIxMDAwX1BBX0lERVNFQyksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShWUjEwMDBfVkFfSURFUFJJQVVYKSwgUEFfQ1M1KFZSMTAwMF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoVlIxMDAwX1ZBX0lERVNFQ0FVWCksIFBBX0NTNShWUjEwMDBfUEFfSURFU0VDQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAogfTsKIAogI2RlZmluZSBVQ09OIFMzQzI0MTBfVUNPTl9ERUZBVUxUIHwgUzNDMjQxMF9VQ09OX1VDTEsKQEAgLTIzMCwyMyArMjA1LDYgQEAKIAl9LAogfTsKIAotLyogTVREIE5PUiBGbGFzaCAqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHZyMTAwMF9ub3JfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydAk9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwLAotCQkuZW5kCT0gUzNDMjQxMF9DUzEgKyAweDQwMDAwMDAgKyBTWl8xNk0gLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9Ci19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB2cjEwMDBfbm9yID0gewotCS5uYW1lCQk9ICJiYXN0LW5vciIsCi0JLmlkCQk9IC0xLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh2cjEwMDBfbm9yX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJPSB2cjEwMDBfbm9yX3Jlc291cmNlLAotfTsKLQogLyogRE05MDAwIGV0aGVybmV0IGRldmljZXMgKi8KIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2cjEwMDBfZG05azBfcmVzb3VyY2VbXSA9IHsKQEAgLTI2Myw3ICsyMjEsNyBAQAogCVsyXSA9IHsKIAkJLnN0YXJ0ID0gSVJRX1ZSMTAwMF9ETTkwMDBBLAogCQkuZW5kICAgPSBJUlFfVlIxMDAwX0RNOTAwMEEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSVJRRl9UUklHR0VSX0hJR0gsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSU9SRVNPVVJDRV9JUlFfSElHSExFVkVMLAogCX0KIAogfTsKQEAgLTI4Miw3ICsyNDAsNyBAQAogCVsyXSA9IHsKIAkJLnN0YXJ0ID0gSVJRX1ZSMTAwMF9ETTkwMDBOLAogCQkuZW5kICAgPSBJUlFfVlIxMDAwX0RNOTAwME4sCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSVJRRl9UUklHR0VSX0hJR0gsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSU9SRVNPVVJDRV9JUlFfSElHSExFVkVMLAogCX0KIH07CiAKQEAgLTM1OCw2ICszMTYsMTggQEAKIAl9LAogfTsKIAorLyogSTJDIGRldmljZXMuICovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gdnIxMDAwX2kyY19kZXZzW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJ0bHYzMjBhaWMyMyIsIDB4MWEpLAorCX0sIHsKKwkJSTJDX0JPQVJEX0lORk8oInRtcDEwMSIsIDB4NDgpLAorCX0sIHsKKwkJSTJDX0JPQVJEX0lORk8oIm00MXN0ODciLCAweDY4KSwKKwl9LAorfTsKKwogLyogZGV2aWNlcyBmb3IgdGhpcyBib2FyZCAqLwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqdnIxMDAwX2RldmljZXNbXSBfX2luaXRkYXRhID0gewpAQCAtMzY3LDcgKzMzNyw2IEBACiAJJnMzY19kZXZpY2VfaTJjLAogCSZzM2NfZGV2aWNlX2FkYywKIAkmc2VyaWFsX2RldmljZSwKLQkmdnIxMDAwX25vciwKIAkmdnIxMDAwX2RtOWswLAogCSZ2cjEwMDBfZG05azEsCiAJJnZyMTAwMF9sZWQxLApAQCAtNDE2LDYgKzM4NSwxMSBAQAogc3RhdGljIHZvaWQgX19pbml0IHZyMTAwMF9pbml0KHZvaWQpCiB7CiAJcGxhdGZvcm1fYWRkX2RldmljZXModnIxMDAwX2RldmljZXMsIEFSUkFZX1NJWkUodnIxMDAwX2RldmljZXMpKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIHZyMTAwMF9pMmNfZGV2cywKKwkJCQlBUlJBWV9TSVpFKHZyMTAwMF9pMmNfZGV2cykpOworCisJbm9yX3NpbXRlY19pbml0KCk7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoVlIxMDAwLCAiVGhvcmNvbS1WUjEwMDAiKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0ZTIxYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmMKQEAgLTAsMCArMSw4NiBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogU2ltdGVjIE5PUiBtYXBwaW5nCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9iYXN0LWNwbGQuaD4KKworCitzdGF0aWMgdm9pZCBzaW10ZWNfbm9yX3ZwcChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwgaW50IHZwcCkKK3sKKwl1bnNpZ25lZCBpbnQgdmFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJdmFsID0gX19yYXdfcmVhZGIoQkFTVF9WQV9DVFJMMyk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiJXMoJWQpXG4iLCBfX2Z1bmNfXywgdnBwKTsKKworCWlmICh2cHApCisJCXZhbCB8PSBCQVNUX0NQTERfQ1RSTDNfUk9NV0VOOworCWVsc2UKKwkJdmFsICY9IH5CQVNUX0NQTERfQ1RSTDNfUk9NV0VOOworCisJX19yYXdfd3JpdGViKHZhbCwgQkFTVF9WQV9DVFJMMyk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHNpbXRlY19ub3JfcGRhdGEgPSB7CisJLndpZHRoCQk9IDIsCisJLnNldF92cHAJPSBzaW10ZWNfbm9yX3ZwcCwKKwkubnJfcGFydHMJPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzaW10ZWNfbm9yX3Jlc291cmNlW10gPSB7CisJWzBdID0geworCQkuc3RhcnQgPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCwKKwkJLmVuZCAgID0gUzNDMjQxMF9DUzEgKyAweDQwMDAwMDAgKyBTWl84TSAtIDEsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHNpbXRlY19kZXZpY2Vfbm9yID0geworCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gLTEsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHNpbXRlY19ub3JfcmVzb3VyY2UpLAorCS5yZXNvdXJjZQk9IHNpbXRlY19ub3JfcmVzb3VyY2UsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJnNpbXRlY19ub3JfcGRhdGEsCisJfSwKK307CisKK3ZvaWQgX19pbml0IG5vcl9zaW10ZWNfaW5pdCh2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnNpbXRlY19kZXZpY2Vfbm9yKTsKKwlpZiAocmV0IDwgMCkKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcmVnaXN0ZXIgcGh5c21hcC1mbGFzaCBkZXZpY2VcbiIpOworCWVsc2UKKwkJc2ltdGVjX25vcl92cHAoTlVMTCwgMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5oIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjE5YzFlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuaApAQCAtMCwwICsxLDE0IEBACisvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5oCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBTaW10ZWMgTk9SIG1hcHBpbmcKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworZXh0ZXJuIHZvaWQgbm9yX3NpbXRlY19pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvS2NvbmZpZwppbmRleCAwYjQzNDMxLi5jNTlhOWQyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvS2NvbmZpZwpAQCAtMzQsNiArMzQsMTYgQEAKIAogbWVudSAiUzNDMjQxMiBNYWNoaW5lcyIKIAorY29uZmlnIE1BQ0hfSklWRQorCWJvb2wgIkxvZ2l0ZWNoIEppdmUiCisJc2VsZWN0IENQVV9TM0MyNDEyCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBMb2dpdGVjaCBKaXZlLgorCitjb25maWcgTUFDSF9KSVZFX1NIT1dfQk9PVExPQURFUgorCWJvb2wgIkFsbG93IGFjY2VzcyB0byBib290bG9hZGVyIHBhcnRpdGlvbnMgaW4gTVREIgorCWRlcGVuZHMgb24gTUFDSF9KSVZFICYmIEVYUEVSSU1FTlRBTAorCiBjb25maWcgTUFDSF9TTURLMjQxMwogCWJvb2wgIlNNREsyNDEzIgogCXNlbGVjdCBDUFVfUzNDMjQxMgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL01ha2VmaWxlCmluZGV4IDI2N2YzMzQuLjIwOTE4ZDUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvTWFrZWZpbGUKQEAgLTE4LDUgKzE4LDYgQEAKIAogIyBNYWNoaW5lIHN1cHBvcnQKIAorb2JqLSQoQ09ORklHX01BQ0hfSklWRSkJCSs9IG1hY2gtaml2ZS5vCiBvYmotJChDT05GSUdfTUFDSF9TTURLMjQxMykJKz0gbWFjaC1zbWRrMjQxMy5vCiBvYmotJChDT05GSUdfTUFDSF9WU1RNUykJKz0gbWFjaC12c3Rtcy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9jbG9jay5jCmluZGV4IDI2OTdhNjUuLjExNTdiNWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9jbG9jay5jCkBAIC02MzEsNiArNjMxLDE3IEBACiAJCS5iaXQJPSBTM0MyNDEyX0NMS1NSQ19VU0JDTEtfSENMSywKIAkJLnNyY18wCT0gJmNsa191c3lzY2xrLAogCQkuc3JjXzEJPSAmY2xrX2gsCisJLyogaGVyZSB3ZSBhc3N1bWUgIE9NWzRdIHNlbGVjdCB4dGFsICovCisJfSwgeworCQkuY2xrCT0gJmNsa19lcmVmY2xrLAorCQkuYml0CT0gUzNDMjQxMl9DTEtTUkNfRVJFRkNMS19FWFRDTEssCisJCS5zcmNfMAk9ICZjbGtfeHRhbCwKKwkJLnNyY18xCT0gJmNsa19leHQsCisJfSwgeworCQkuY2xrCT0gJmNsa191cmVmY2xrLAorCQkuYml0CT0gUzNDMjQxMl9DTEtTUkNfVVJFRkNMS19FWFRDTEssCisJCS5zcmNfMAk9ICZjbGtfeHRhbCwKKwkJLnNyY18xCT0gJmNsa19leHQsCiAJfSwKIH07CiAKQEAgLTY2Niw4ICs2NzcsNiBAQAogc3RhdGljIHN0cnVjdCBjbGsgKmNsa3NbXSBfX2luaXRkYXRhID0gewogCSZjbGtfZXh0LAogCSZjbGtfdXNiX2J1cywKLQkmY2xrX2VyZWZjbGssCi0JJmNsa191cmVmY2xrLAogCSZjbGtfbXJlZmNsaywKIAkmY2xrX2FybWNsaywKIH07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvbWFjaC1qaXZlLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvbWFjaC1qaXZlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y1OTI0NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9tYWNoLWppdmUuYwpAQCAtMCwwICsxLDY4NyBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtaml2ZS5jCisgKgorICogQ29weXJpZ2h0IDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKworI2luY2x1ZGUgPHZpZGVvL2lsaTkzMjAuaD4KKworI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKworI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL25hbmQuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvaWljLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLXBvd2VyLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1tZW0uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWxjZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3NwaS1ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZmIuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZF9lY2MuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvZGV2cy5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9wbS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvdWRjLmg+CisKK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2Mgaml2ZV9pb2Rlc2NbXSBfX2luaXRkYXRhID0geworfTsKKworI2RlZmluZSBVQ09OIFMzQzI0MTBfVUNPTl9ERUZBVUxUCisjZGVmaW5lIFVMQ09OIFMzQzI0MTBfTENPTl9DUzggfCBTM0MyNDEwX0xDT05fUE5PTkUKKyNkZWZpbmUgVUZDT04gUzNDMjQxMF9VRkNPTl9SWFRSSUc4IHwgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERQorCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfdWFydGNmZyBqaXZlX3VhcnRjZmdzW10gPSB7CisJWzBdID0geworCQkuaHdwb3J0CSAgICAgPSAwLAorCQkuZmxhZ3MJICAgICA9IDAsCisJCS51Y29uCSAgICAgPSBVQ09OLAorCQkudWxjb24JICAgICA9IFVMQ09OLAorCQkudWZjb24JICAgICA9IFVGQ09OLAorCX0sCisJWzFdID0geworCQkuaHdwb3J0CSAgICAgPSAxLAorCQkuZmxhZ3MJICAgICA9IDAsCisJCS51Y29uCSAgICAgPSBVQ09OLAorCQkudWxjb24JICAgICA9IFVMQ09OLAorCQkudWZjb24JICAgICA9IFVGQ09OLAorCX0sCisJWzJdID0geworCQkuaHdwb3J0CSAgICAgPSAyLAorCQkuZmxhZ3MJICAgICA9IDAsCisJCS51Y29uCSAgICAgPSBVQ09OLAorCQkudWxjb24JICAgICA9IFVMQ09OLAorCQkudWZjb24JICAgICA9IFVGQ09OLAorCX0KK307CisKKy8qIEppdmUgZmxhc2ggYXNzaWdubWVudAorICoKKyAqIDB4MDAwMDAwMDAtMHgwMDAyODAwMCA6IHVib290CisgKiAweDAwMDI4MDAwLTB4MDAwMmMwMDAgOiB1Ym9vdCBlbnYKKyAqIDB4MDAwMmMwMDAtMHgwMDAzMDAwMCA6IHNwYXJlCisgKiAweDAwMDMwMDAwLTB4MDAyMDAwMDAgOiB6aW1hZ2UgQQorICogMHgwMDIwMDAwMC0weDAxNjAwMDAwIDogY3JhbWZzIEEKKyAqIDB4MDE2MDAwMDAtMHgwMTdkMDAwMCA6IHppbWFnZSBCCisgKiAweDAxN2QwMDAwLTB4MDJiZDAwMDAgOiBjcmFtZnMgQgorICogMHgwMmJkMDAwMC0weDAzZmQwMDAwIDogeWFmZnMKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGppdmVfaW1hZ2VBX25hbmRfcGFydFtdID0geworCisjaWZkZWYgQ09ORklHX01BQ0hfSklWRV9TSE9XX0JPT1RMT0FERVIKKwkvKiBEb24ndCBhbGxvdyBhY2Nlc3MgdG8gdGhlIGJvb3Rsb2FkZXIgZnJvbSBsaW51eCAqLworCXsKKwkJLm5hbWUgICAgICAgICAgID0gInVib290IiwKKwkJLm9mZnNldCAgICAgICAgID0gMCwKKwkJLnNpemUgICAgICAgICAgID0gKDE2MCAqIFNaXzFLKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKwl9LAorCisJLyogc3BhcmUgKi8KKyAgICAgICAgeworICAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJzcGFyZSIsCisgICAgICAgICAgICAgICAgLm9mZnNldCAgICAgICAgID0gKDE3NiAqIFNaXzFLKSwKKyAgICAgICAgICAgICAgICAuc2l6ZSAgICAgICAgICAgPSAoMTYgKiBTWl8xSyksCisgICAgICAgIH0sCisjZW5kaWYKKworCS8qIGJvb3RlZCBpbWFnZXMgKi8KKyAgICAgICAgeworCQkubmFtZQkJPSAia2VybmVsIChybykiLAorCQkub2Zmc2V0CQk9ICgxOTIgKiBTWl8xSyksCisJCS5zaXplCQk9IChTWl8yTSkgLSAoMTkyICogU1pfMUspLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgLm5hbWUgICAgICAgICAgID0gInJvb3QgKHJvKSIsCisgICAgICAgICAgICAgICAgLm9mZnNldCAgICAgICAgID0gKFNaXzJNKSwKKyAgICAgICAgICAgICAgICAuc2l6ZSAgICAgICAgICAgPSAoMjAgKiBTWl8xTSksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisgICAgICAgIH0sCisKKwkvKiB5YWZmcyAqLworCXsKKwkJLm5hbWUJCT0gInlhZmZzIiwKKwkJLm9mZnNldAkJPSAoNDQgKiBTWl8xTSksCisJCS5zaXplCQk9ICgyMCAqIFNaXzFNKSwKKwl9LAorCisJLyogYm9vdGxvYWRlciBlbnZpcm9ubWVudCAqLworCXsKKyAgICAgICAgICAgICAgICAubmFtZQkJPSAiZW52IiwKKwkJLm9mZnNldAkJPSAoMTYwICogU1pfMUspLAorCQkuc2l6ZQkJPSAoMTYgKiBTWl8xSyksCisJfSwKKworCS8qIHVwZ3JhZGUgaW1hZ2VzICovCisgICAgICAgIHsKKwkJLm5hbWUJCT0gInppbWFnZSIsCisJCS5vZmZzZXQJCT0gKDIyICogU1pfMU0pLAorCQkuc2l6ZQkJPSAoMiAqIFNaXzFNKSAtICgxOTIgKiBTWl8xSyksCisgICAgICAgIH0sIHsKKwkJLm5hbWUJCT0gImNyYW1mcyIsCisJCS5vZmZzZXQJCT0gKDI0ICogU1pfMU0pIC0gKDE5MipTWl8xSyksCisJCS5zaXplCQk9ICgyMCAqIFNaXzFNKSwKKyAgICAgICAgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBqaXZlX2ltYWdlQl9uYW5kX3BhcnRbXSA9IHsKKworI2lmZGVmIENPTkZJR19NQUNIX0pJVkVfU0hPV19CT09UTE9BREVSCisJLyogRG9uJ3QgYWxsb3cgYWNjZXNzIHRvIHRoZSBib290bG9hZGVyIGZyb20gbGludXggKi8KKwl7CisJCS5uYW1lICAgICAgICAgICA9ICJ1Ym9vdCIsCisJCS5vZmZzZXQgICAgICAgICA9IDAsCisJCS5zaXplICAgICAgICAgICA9ICgxNjAgKiBTWl8xSyksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisJfSwKKworCS8qIHNwYXJlICovCisgICAgICAgIHsKKyAgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAic3BhcmUiLAorICAgICAgICAgICAgICAgIC5vZmZzZXQgICAgICAgICA9ICgxNzYgKiBTWl8xSyksCisgICAgICAgICAgICAgICAgLnNpemUgICAgICAgICAgID0gKDE2ICogU1pfMUspLAorICAgICAgICB9LAorI2VuZGlmCisKKwkvKiBib290ZWQgaW1hZ2VzICovCisgICAgICAgIHsKKwkJLm5hbWUgICAgICAgICAgID0gImtlcm5lbCAocm8pIiwKKwkJLm9mZnNldCAgICAgICAgID0gKDIyICogU1pfMU0pLAorCQkuc2l6ZSAgICAgICAgICAgPSAoMiAqIFNaXzFNKSAtICgxOTIgKiBTWl8xSyksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisgICAgICAgIH0sCisJeworCQkubmFtZQkJPSAicm9vdCAocm8pIiwKKwkJLm9mZnNldAkJPSAoMjQgKiBTWl8xTSkgLSAoMTkyICogU1pfMUspLAorICAgICAgICAgICAgICAgIC5zaXplCQk9ICgyMCAqIFNaXzFNKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKwl9LAorCisJLyogeWFmZnMgKi8KKwl7CisJCS5uYW1lCQk9ICJ5YWZmcyIsCisJCS5vZmZzZXQJCT0gKDQ0ICogU1pfMU0pLAorCQkuc2l6ZQkJPSAoMjAgKiBTWl8xTSksCisgICAgICAgIH0sCisKKwkvKiBib290bG9hZGVyIGVudmlyb25tZW50ICovCisJeworCQkubmFtZQkJPSAiZW52IiwKKwkJLm9mZnNldAkJPSAoMTYwICogU1pfMUspLAorCQkuc2l6ZQkJPSAoMTYgKiBTWl8xSyksCisJfSwKKworCS8qIHVwZ3JhZGUgaW1hZ2VzICovCisJeworCQkubmFtZQkJPSAiemltYWdlIiwKKwkJLm9mZnNldAkJPSAoMTkyICogU1pfMUspLAorCQkuc2l6ZQkJPSAoMiAqIFNaXzFNKSAtICgxOTIgKiBTWl8xSyksCisgICAgICAgIH0sIHsKKwkJLm5hbWUJCT0gImNyYW1mcyIsCisJCS5vZmZzZXQJCT0gKDIgKiBTWl8xTSksCisJCS5zaXplCQk9ICgyMCAqIFNaXzFNKSwKKyAgICAgICAgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9uYW5kX3NldCBqaXZlX25hbmRfc2V0c1tdID0geworCVswXSA9IHsKKwkJLm5hbWUgICAgICAgICAgID0gImZsYXNoIiwKKwkJLm5yX2NoaXBzICAgICAgID0gMSwKKwkJLm5yX3BhcnRpdGlvbnMgID0gQVJSQVlfU0laRShqaXZlX2ltYWdlQV9uYW5kX3BhcnQpLAorCQkucGFydGl0aW9ucyAgICAgPSBqaXZlX2ltYWdlQV9uYW5kX3BhcnQsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9wbGF0Zm9ybV9uYW5kIGppdmVfbmFuZF9pbmZvID0geworCS8qIHNldCB0YWtlbiBmcm9tIG9zaXJpcyBuYW5kIHRpbWluZ3MsIHBvc3NpYmx5IHN0aWxsIGNvbnNlcnZhdGl2ZSAqLworCS50YWNscwkJPSAzMCwKKwkudHdycGgwCQk9IDU1LAorCS50d3JwaDEJCT0gNDAsCisJLnNldHMJCT0gaml2ZV9uYW5kX3NldHMsCisJLm5yX3NldHMJPSBBUlJBWV9TSVpFKGppdmVfbmFuZF9zZXRzKSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGppdmVfbXRkc2V0KGNoYXIgKm9wdGlvbnMpCit7CisJc3RydWN0IHMzYzI0MTBfbmFuZF9zZXQgKm5hbmQgPSAmaml2ZV9uYW5kX3NldHNbMF07CisJdW5zaWduZWQgbG9uZyBzZXQ7CisKKwlpZiAob3B0aW9ucyA9PSBOVUxMIHx8IG9wdGlvbnNbMF0gPT0gJ1wwJykKKwkJcmV0dXJuIDA7CisKKwlpZiAoc3RyaWN0X3N0cnRvdWwob3B0aW9ucywgMTAsICZzZXQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHBhcnNlIG10ZHNldD0lc1xuIiwgb3B0aW9ucyk7CisJCXJldHVybiAwOworCX0KKworCXN3aXRjaCAoc2V0KSB7CisJY2FzZSAxOgorCQluYW5kLT5ucl9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShqaXZlX2ltYWdlQl9uYW5kX3BhcnQpOworCQluYW5kLT5wYXJ0aXRpb25zID0gaml2ZV9pbWFnZUJfbmFuZF9wYXJ0OworCWNhc2UgMDoKKwkJLyogdGhpcyBpcyBhbHJlYWR5IHNldHVwIGluIHRoZSBuYW5kIGluZm8gKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmtub3duIG10ZCBzZXQgJWxkIHNwZWNpZmllZCwiCisJCSAgICAgICAidXNpbmcgZGVmYXVsdC4iLCBzZXQpOworCX0KKworCXJldHVybiAwOworfQorCisvKiBwYXJzZSB0aGUgbXRkc2V0PSBvcHRpb24gZ2l2ZW4gdG8gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgKi8KK19fc2V0dXAoIm10ZHNldD0iLCBqaXZlX210ZHNldCk7CisKKy8qIExDRCB0aW1pbmcgYW5kIHNldHVwICovCisKKyNkZWZpbmUgTENEX1hSRVMJICgyNDApCisjZGVmaW5lIExDRF9ZUkVTCSAoMzIwKQorI2RlZmluZSBMQ0RfTEVGVF9NQVJHSU4gICgxMikKKyNkZWZpbmUgTENEX1JJR0hUX01BUkdJTiAoMTIpCisjZGVmaW5lIExDRF9MT1dFUl9NQVJHSU4gKDEyKQorI2RlZmluZSBMQ0RfVVBQRVJfTUFSR0lOICgxMikKKyNkZWZpbmUgTENEX1ZTWU5DCSAoMikKKyNkZWZpbmUgTENEX0hTWU5DCSAoMikKKworI2RlZmluZSBMQ0RfUkVGUkVTSAkgKDYwKQorCisjZGVmaW5lIExDRF9IVE9UIChMQ0RfSFNZTkMgKyBMQ0RfTEVGVF9NQVJHSU4gKyBMQ0RfWFJFUyArIExDRF9SSUdIVF9NQVJHSU4pCisjZGVmaW5lIExDRF9WVE9UIChMQ0RfVlNZTkMgKyBMQ0RfTE9XRVJfTUFSR0lOICsgTENEX1lSRVMgKyBMQ0RfVVBQRVJfTUFSR0lOKQorCitzdHJ1Y3QgczNjMjQxMGZiX2Rpc3BsYXkgaml2ZV92Z2cyNDMyYTRfZGlzcGxheVtdID0geworCVswXSA9IHsKKwkJLndpZHRoCQk9IExDRF9YUkVTLAorCQkuaGVpZ2h0CQk9IExDRF9ZUkVTLAorCQkueHJlcwkJPSBMQ0RfWFJFUywKKwkJLnlyZXMJCT0gTENEX1lSRVMsCisJCS5sZWZ0X21hcmdpbgk9IExDRF9MRUZUX01BUkdJTiwKKwkJLnJpZ2h0X21hcmdpbgk9IExDRF9SSUdIVF9NQVJHSU4sCisJCS51cHBlcl9tYXJnaW4JPSBMQ0RfVVBQRVJfTUFSR0lOLAorCQkubG93ZXJfbWFyZ2luCT0gTENEX0xPV0VSX01BUkdJTiwKKwkJLmhzeW5jX2xlbgk9IExDRF9IU1lOQywKKwkJLnZzeW5jX2xlbgk9IExDRF9WU1lOQywKKworCQkucGl4Y2xvY2sJPSAoMTAwMDAwMDAwMDAwMExMIC8KKwkJCQkgICAoTENEX1JFRlJFU0ggKiBMQ0RfSFRPVCAqIExDRF9WVE9UKSksCisKKwkJLmJwcAkJPSAxNiwKKwkJLnR5cGUJCT0gKFMzQzI0MTBfTENEQ09OMV9URlQxNkJQUCB8CisJCQkJICAgUzNDMjQxMF9MQ0RDT04xX1RGVCksCisKKwkJLmxjZGNvbjUJPSAoUzNDMjQxMF9MQ0RDT041X0ZSTTU2NSB8CisJCQkJICAgUzNDMjQxMF9MQ0RDT041X0lOVlZMSU5FIHwKKwkJCQkgICBTM0MyNDEwX0xDRENPTjVfSU5WVkZSQU1FIHwKKwkJCQkgICBTM0MyNDEwX0xDRENPTjVfSU5WVkRFTiB8CisJCQkJICAgUzNDMjQxMF9MQ0RDT041X1BXUkVOKSwKKwl9LAorfTsKKworLyogdG9kbyAtIHB1dCBpbnRvIGdwaW8gaGVhZGVyICovCisKKyNkZWZpbmUgUzNDMjQxMF9HUENDT05fTUFTSyh4KQkoMyA8PCAoKHgpICogMikpCisjZGVmaW5lIFMzQzI0MTBfR1BEQ09OX01BU0soeCkJKDMgPDwgKCh4KSAqIDIpKQorCitzdHJ1Y3QgczNjMjQxMGZiX21hY2hfaW5mbyBqaXZlX2xjZF9jb25maWcgPSB7CisJLmRpc3BsYXlzCSA9IGppdmVfdmdnMjQzMmE0X2Rpc3BsYXksCisJLm51bV9kaXNwbGF5cwkgPSBBUlJBWV9TSVpFKGppdmVfdmdnMjQzMmE0X2Rpc3BsYXkpLAorCS5kZWZhdWx0X2Rpc3BsYXkgPSAwLAorCisJLyogRW5hYmxlIFZEWzIuLjddLCBWRFsxMC4uMTVdLCBWRFsxOC4uMjNdIGFuZCBWQ0xLLCBzeW5jcywgVkRFTgorCSAqIGFuZCBkaXNhYmxlIHRoZSBwdWxsIGRvd24gcmVzaXN0b3JzIG9uIHBpbnMgd2UgYXJlIHVzaW5nIGZvciBMQ0QKKwkgKiBkYXRhLiAqLworCisJLmdwY3VwCQk9ICgweGYgPDwgMSkgfCAoMHgzZiA8PCAxMCksCisKKwkuZ3BjY29uCQk9IChTM0MyNDEwX0dQQzFfVkNMSyAgIHwgUzNDMjQxMF9HUEMyX1ZMSU5FIHwKKwkJCSAgIFMzQzI0MTBfR1BDM19WRlJBTUUgfCBTM0MyNDEwX0dQQzRfVk0gfAorCQkJICAgUzNDMjQxMF9HUEMxMF9WRDIgICB8IFMzQzI0MTBfR1BDMTFfVkQzIHwKKwkJCSAgIFMzQzI0MTBfR1BDMTJfVkQ0ICAgfCBTM0MyNDEwX0dQQzEzX1ZENSB8CisJCQkgICBTM0MyNDEwX0dQQzE0X1ZENiAgIHwgUzNDMjQxMF9HUEMxNV9WRDcpLAorCisJLmdwY2Nvbl9tYXNrCT0gKFMzQzI0MTBfR1BDQ09OX01BU0soMSkgIHwgUzNDMjQxMF9HUENDT05fTUFTSygyKSAgfAorCQkJICAgUzNDMjQxMF9HUENDT05fTUFTSygzKSAgfCBTM0MyNDEwX0dQQ0NPTl9NQVNLKDQpICB8CisJCQkgICBTM0MyNDEwX0dQQ0NPTl9NQVNLKDEwKSB8IFMzQzI0MTBfR1BDQ09OX01BU0soMTEpIHwKKwkJCSAgIFMzQzI0MTBfR1BDQ09OX01BU0soMTIpIHwgUzNDMjQxMF9HUENDT05fTUFTSygxMykgfAorCQkJICAgUzNDMjQxMF9HUENDT05fTUFTSygxNCkgfCBTM0MyNDEwX0dQQ0NPTl9NQVNLKDE1KSksCisKKwkuZ3BkdXAJCT0gKDB4M2YgPDwgMikgfCAoMHgzZiA8PCAxMCksCisKKwkuZ3BkY29uCQk9IChTM0MyNDEwX0dQRDJfVkQxMCAgfCBTM0MyNDEwX0dQRDNfVkQxMSB8CisJCQkgICBTM0MyNDEwX0dQRDRfVkQxMiAgfCBTM0MyNDEwX0dQRDVfVkQxMyB8CisJCQkgICBTM0MyNDEwX0dQRDZfVkQxNCAgfCBTM0MyNDEwX0dQRDdfVkQxNSB8CisJCQkgICBTM0MyNDEwX0dQRDEwX1ZEMTggfCBTM0MyNDEwX0dQRDExX1ZEMTkgfAorCQkJICAgUzNDMjQxMF9HUEQxMl9WRDIwIHwgUzNDMjQxMF9HUEQxM19WRDIxIHwKKwkJCSAgIFMzQzI0MTBfR1BEMTRfVkQyMiB8IFMzQzI0MTBfR1BEMTVfVkQyMyksCisKKwkuZ3BkY29uX21hc2sJPSAoUzNDMjQxMF9HUERDT05fTUFTSygyKSAgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDMpIHwKKwkJCSAgIFMzQzI0MTBfR1BEQ09OX01BU0soNCkgIHwgUzNDMjQxMF9HUERDT05fTUFTSyg1KSB8CisJCQkgICBTM0MyNDEwX0dQRENPTl9NQVNLKDYpICB8IFMzQzI0MTBfR1BEQ09OX01BU0soNykgfAorCQkJICAgUzNDMjQxMF9HUERDT05fTUFTSygxMCkgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDExKXwKKwkJCSAgIFMzQzI0MTBfR1BEQ09OX01BU0soMTIpIHwgUzNDMjQxMF9HUERDT05fTUFTSygxMyl8CisJCQkgICBTM0MyNDEwX0dQRENPTl9NQVNLKDE0KSB8IFMzQzI0MTBfR1BEQ09OX01BU0soMTUpKSwKK307CisKKy8qIElMSTkzMjAgc3VwcG9ydC4gKi8KKworc3RhdGljIHZvaWQgaml2ZV9sY21fcmVzZXQodW5zaWduZWQgaW50IHNldCkKK3sKKwlwcmludGsoS0VSTl9ERUJVRyAiJXMoJWQpXG4iLCBfX2Z1bmNfXywgc2V0KTsKKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEcxMywgc2V0KTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BHMTMsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworfQorCisjdW5kZWYgTENEX1VQUEVSX01BUkdJTgorI2RlZmluZSBMQ0RfVVBQRVJfTUFSR0lOIDIKKworc3RhdGljIHN0cnVjdCBpbGk5MzIwX3BsYXRkYXRhIGppdmVfbGNtX2NvbmZpZyA9IHsKKwkuaHNpemUJCT0gTENEX1hSRVMsCisJLnZzaXplCQk9IExDRF9ZUkVTLAorCisJLnJlc2V0CQk9IGppdmVfbGNtX3Jlc2V0LAorCS5zdXNwZW5kCT0gSUxJOTMyMF9TVVNQRU5EX0RFRVAsCisKKwkuZW50cnlfbW9kZQk9IElMSTkzMjBfRU5UUllNT0RFX0lEKDMpIHwgSUxJOTMyMF9FTlRSWU1PREVfQkdSLAorCS5kaXNwbGF5Mgk9IChJTEk5MzIwX0RJU1BMQVkyX0ZQKExDRF9VUFBFUl9NQVJHSU4pIHwKKwkJCSAgIElMSTkzMjBfRElTUExBWTJfQlAoTENEX0xPV0VSX01BUkdJTikpLAorCS5kaXNwbGF5Mwk9IDB4MCwKKwkuZGlzcGxheTQJPSAweDAsCisJLnJnYl9pZjEJPSAoSUxJOTMyMF9SR0JJRjFfUklNX1JHQjE4IHwKKwkJCSAgIElMSTkzMjBfUkdCSUYxX1JNIHwgSUxJOTMyMF9SR0JJRjFfQ0xLX1JHQklGKSwKKwkucmdiX2lmMgk9IElMSTkzMjBfUkdCSUYyX0RQTCwKKwkuaW50ZXJmYWNlMgk9IDB4MCwKKwkuaW50ZXJmYWNlMwk9IDB4MywKKwkuaW50ZXJmYWNlNAk9IChJTEk5MzIwX0lOVEVSRkFDRTRfUlRORSgxNikgfAorCQkJICAgSUxJOTMyMF9JTlRFUkZBQ0U0X0RJVkUoMSkpLAorCS5pbnRlcmZhY2U1CT0gMHgwLAorCS5pbnRlcmZhY2U2CT0gMHgwLAorfTsKKworLyogTENEIFNQSSBzdXBwb3J0ICovCisKK3N0YXRpYyB2b2lkIGppdmVfbGNkX3NwaV9jaGlwc2VsZWN0KHN0cnVjdCBzM2MyNDEwX3NwaWdwaW9faW5mbyAqc3BpLCBpbnQgY3MpCit7CisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQjcsIGNzID8gMCA6IDEpOworfQorCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfc3BpZ3Bpb19pbmZvIGppdmVfbGNkX3NwaSA9IHsKKwkuYnVzX251bQk9IDAsCisJLnBpbl9jbGsJPSBTM0MyNDEwX0dQRzgsCisJLnBpbl9tb3NpCT0gUzNDMjQxMF9HUEI4LAorCS5jaGlwX3NlbGVjdAk9IGppdmVfbGNkX3NwaV9jaGlwc2VsZWN0LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugaml2ZV9kZXZpY2VfbGNkc3BpID0geworCS5uYW1lCQk9ICJzM2MyNHh4LXNwaS1ncGlvIiwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcyAgPSAwLAorCS5kZXYucGxhdGZvcm1fZGF0YSA9ICZqaXZlX2xjZF9zcGksCit9OworCisvKiBXTTg3NTAgYXVkaW8gY29kZSBTUEkgZGVmaW5pdGlvbiAqLworCitzdGF0aWMgdm9pZCBqaXZlX3dtODc1MF9jaGlwc2VsZWN0KHN0cnVjdCBzM2MyNDEwX3NwaWdwaW9faW5mbyAqc3BpLCBpbnQgY3MpCit7CisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQSDEwLCBjcyA/IDAgOiAxKTsKK30KKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3NwaWdwaW9faW5mbyBqaXZlX3dtODc1MF9zcGkgPSB7CisJLmJ1c19udW0JPSAyLAorCS5waW5fY2xrCT0gUzNDMjQxMF9HUEI0LAorCS5waW5fbW9zaQk9IFMzQzI0MTBfR1BCOSwKKwkuY2hpcF9zZWxlY3QJPSBqaXZlX3dtODc1MF9jaGlwc2VsZWN0LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugaml2ZV9kZXZpY2Vfd204NzUwID0geworCS5uYW1lCQk9ICJzM2MyNHh4LXNwaS1ncGlvIiwKKwkuaWQJCT0gMiwKKwkubnVtX3Jlc291cmNlcyAgPSAwLAorCS5kZXYucGxhdGZvcm1fZGF0YSA9ICZqaXZlX3dtODc1MF9zcGksCit9OworCisvKiBKSVZFIFNQSSBkZXZpY2VzLiAqLworCitzdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIF9faW5pdGRhdGEgaml2ZV9zcGlfZGV2c1tdID0geworCVswXSA9IHsKKwkJLm1vZGFsaWFzCT0gIlZHRzI0MzJBNCIsCisJCS5idXNfbnVtCT0gMSwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1vZGUJCT0gU1BJX01PREVfMywJLyogQ1BPTD0xLCBDUEhBPTEgKi8KKwkJLm1heF9zcGVlZF9oegk9IDEwMDAwMCwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmaml2ZV9sY21fY29uZmlnLAorCX0sIHsKKwkJLm1vZGFsaWFzCT0gIldNODc1MCIsCisJCS5idXNfbnVtCT0gMiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1vZGUJCT0gU1BJX01PREVfMCwJLyogQ1BPTD0wLCBDUEhBPTAgKi8KKwkJLm1heF9zcGVlZF9oegk9IDEwMDAwMCwKKwl9LAorfTsKKworLyogSTJDIGJ1cyBhbmQgZGV2aWNlIGNvbmZpZ3VyYXRpb24uICovCisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9wbGF0Zm9ybV9pMmMgaml2ZV9pMmNfY2ZnID0geworCS5tYXhfZnJlcQk9IDgwICogMTAwMCwKKwkuYnVzX2ZyZXEJPSA1MCAqIDEwMDAsCisJLmZsYWdzCQk9IFMzQ19JSUNGTEdfRklMVEVSLAorCS5zZGFfZGVsYXkJPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBqaXZlX2kyY19kZXZzW10gPSB7CisJWzBdID0geworCQlJMkNfQk9BUkRfSU5GTygibGlzMzAyZGwiLCAweDFjKSwKKwkJLmlycQk9IElSUV9FSU5UMTQsCisJfSwKK307CisKKy8qIFRoZSBwbGF0Zm9ybSBkZXZpY2VzIGJlaW5nIHVzZWQuICovCisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpqaXZlX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZzM2NfZGV2aWNlX3VzYiwKKwkmczNjX2RldmljZV9ydGMsCisJJnMzY19kZXZpY2Vfd2R0LAorCSZzM2NfZGV2aWNlX2kyYywKKwkmczNjX2RldmljZV9sY2QsCisJJmppdmVfZGV2aWNlX2xjZHNwaSwKKwkmaml2ZV9kZXZpY2Vfd204NzUwLAorCSZzM2NfZGV2aWNlX25hbmQsCisJJnMzY19kZXZpY2VfdXNiZ2FkZ2V0LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3VkY19tYWNoX2luZm8gaml2ZV91ZGNfY2ZnIF9faW5pdGRhdGEgPSB7CisJLnZidXNfcGluCT0gUzNDMjQxMF9HUEcxLAkJLyogZGV0ZWN0IGlzIG9uIEdQRzEgKi8KK307CisKKy8qIEppdmUgcG93ZXIgbWFuYWdlbWVudCBkZXZpY2UgKi8KKworI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBqaXZlX3BtX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKnNkLCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJLyogV3JpdGUgdGhlIG1hZ2ljIHZhbHVlIHUtYm9vdCB1c2VzIHRvIGNoZWNrIGZvciByZXN1bWUgaW50bworCSAqIHRoZSBJTkZPUk0wIHJlZ2lzdGVyLCBhbmQgZW5zdXJlIElORk9STTEgaXMgc2V0IHRvIHRoZQorCSAqIGNvcnJlY3QgYWRkcmVzcyB0byByZXN1bWUgZnJvbS4gKi8KKworCV9fcmF3X3dyaXRlbCgweDJCRUQsIFMzQzI0MTJfSU5GT1JNMCk7CisJX19yYXdfd3JpdGVsKHZpcnRfdG9fcGh5cyhzM2MyNDEwX2NwdV9yZXN1bWUpLCBTM0MyNDEyX0lORk9STTEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaml2ZV9wbV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKnNkKQoreworCV9fcmF3X3dyaXRlbCgweDAsIFMzQzI0MTJfSU5GT1JNMCk7CisJcmV0dXJuIDA7Cit9CisKKyNlbHNlCisjZGVmaW5lIGppdmVfcG1fc3VzcGVuZCBOVUxMCisjZGVmaW5lIGppdmVfcG1fcmVzdW1lIE5VTEwKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBqaXZlX3BtX3N5c2NsYXNzID0geworCS5uYW1lCQk9ICJqaXZlLXBtIiwKKwkuc3VzcGVuZAk9IGppdmVfcG1fc3VzcGVuZCwKKwkucmVzdW1lCQk9IGppdmVfcG1fcmVzdW1lLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGppdmVfcG1fc3lzZGV2ID0geworCS5jbHMJCT0gJmppdmVfcG1fc3lzY2xhc3MsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgaml2ZV9tYXBfaW8odm9pZCkKK3sKKwlzM2MyNHh4X2luaXRfaW8oaml2ZV9pb2Rlc2MsIEFSUkFZX1NJWkUoaml2ZV9pb2Rlc2MpKTsKKwlzM2MyNHh4X2luaXRfY2xvY2tzKDEyMDAwMDAwKTsKKwlzM2MyNHh4X2luaXRfdWFydHMoaml2ZV91YXJ0Y2ZncywgQVJSQVlfU0laRShqaXZlX3VhcnRjZmdzKSk7Cit9CisKK3N0YXRpYyB2b2lkIGppdmVfcG93ZXJfb2ZmKHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAicG93ZXJpbmcgc3lzdGVtIGRvd24uLi5cbiIpOworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQzUsIDEpOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEM1LCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGppdmVfbWFjaGluZV9pbml0KHZvaWQpCit7CisJLyogcmVnaXN0ZXIgc3lzdGVtIGRldmljZXMgZm9yIG1hbmFnaW5nIGxvdyBsZXZlbCBzdXNwZW5kICovCisKKwlzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmppdmVfcG1fc3lzY2xhc3MpOworCXN5c2Rldl9yZWdpc3Rlcigmaml2ZV9wbV9zeXNkZXYpOworCisJLyogd3JpdGUgb3VyIHNsZWVwIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgSU8uIFB1bGwgZG93biBhbGwgdW51c2VkCisJICogSU8sIGVuc3VyZSB0aGF0IHdlIGhhdmUgdHVybmVkIG9mZiBhbGwgcGVyaXBoZXJhbHMgd2UgZG8gbm90CisJICogbmVlZCwgYW5kIGNvbmZpZ3VyZSB0aGUgb25lcyB3ZSBkbyBuZWVkLiAqLworCisJLyogUG9ydCBCIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fSU4oMCkgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSElHSCgyKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg0KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg1KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg2KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSElHSCg3KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg4KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg5KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMCksIFMzQzI0MTJfR1BCU0xQQ09OKTsKKworCS8qIFBvcnQgQyBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX1BVTEwoMCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0xPVyg2KSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTApIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDExKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDE0KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxNSksIFMzQzI0MTJfR1BDU0xQQ09OKTsKKworCS8qIFBvcnQgRCBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX0FMTF9QVUxMLCBTM0MyNDEyX0dQRFNMUENPTik7CisKKwkvKiBQb3J0IEYgc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9MT1coMCkgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9MT1coMSkgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9MT1coMikgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9FSU5UKDMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9FSU5UKDQpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9FSU5UKDUpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9FSU5UKDYpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9FSU5UKDcpLCBTM0MyNDEyX0dQRlNMUENPTik7CisKKwkvKiBQb3J0IEcgc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9JTigwKSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMSkgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDIpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigzKSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oNCkgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDUpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig2KSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oNykgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOCkgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDkpICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMTApICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTEpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEyKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDE0KSAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDE1KSwgUzNDMjQxMl9HUEdTTFBDT04pOworCisJLyogUG9ydCBIIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fUFVMTCgwKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgyKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg0KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg1KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg2KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oNykgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oOCkgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg5KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMTApLCBTM0MyNDEyX0dQSFNMUENPTik7CisKKwkvKiBpbml0aWFsaXNlIHRoZSBwb3dlciBtYW5hZ2VtZW50IG5vdyB3ZSd2ZSBzZXR1cCBldmVyeXRoaW5nLiAqLworCisJczNjMjQxMF9wbV9pbml0KCk7CisKKwlzM2NfZGV2aWNlX25hbmQuZGV2LnBsYXRmb3JtX2RhdGEgPSAmaml2ZV9uYW5kX2luZm87CisKKwkvKiBpbml0aWFsaXNlIHRoZSBzcGkgKi8KKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEcxMywgMCk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQRzEzLCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEI3LCAxKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BCNywgUzNDMjQxMF9HUElPX09VVFBVVCk7CisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BCNiwgMCk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQQjYsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQRzgsIDEpOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEc4LCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKKworCS8qIGluaXRpYWxpc2UgdGhlIFdNODc1MCBzcGkgKi8KKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEgxMCwgMSk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQSDEwLCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKKworCS8qIFR1cm4gb2ZmIHN1c3BlbmQgb24gYm90aCBVU0IgcG9ydHMsIGFuZCBzd2l0Y2ggdGhlCisJICogc2VsZWN0YWJsZSBVU0IgcG9ydCB0byBVU0IgZGV2aWNlIG1vZGUuICovCisKKwlzM2MyNDEwX21vZGlmeV9taXNjY3IoUzNDMjQxMF9NSVNDQ1JfVVNCSE9TVCB8CisJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQwIHwKKwkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDEsIDB4MCk7CisKKwlzM2MyNHh4X3VkY19zZXRfcGxhdGRhdGEoJmppdmVfdWRjX2NmZyk7CisJczNjMjR4eF9mYl9zZXRfcGxhdGRhdGEoJmppdmVfbGNkX2NvbmZpZyk7CisKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhqaXZlX3NwaV9kZXZzLCBBUlJBWV9TSVpFKGppdmVfc3BpX2RldnMpKTsKKworCXMzY19kZXZpY2VfaTJjLmRldi5wbGF0Zm9ybV9kYXRhID0gJmppdmVfaTJjX2NmZzsKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBqaXZlX2kyY19kZXZzLCBBUlJBWV9TSVpFKGppdmVfaTJjX2RldnMpKTsKKworCXBtX3Bvd2VyX29mZiA9IGppdmVfcG93ZXJfb2ZmOworCisJcGxhdGZvcm1fYWRkX2RldmljZXMoaml2ZV9kZXZpY2VzLCBBUlJBWV9TSVpFKGppdmVfZGV2aWNlcykpOworfQorCitNQUNISU5FX1NUQVJUKEpJVkUsICJKSVZFIikKKwkvKiBNYWludGFpbmVyOiBCZW4gRG9va3MgPGJlbkBmbHVmZi5vcmc+ICovCisJLnBoeXNfaW8JPSBTM0MyNDEwX1BBX1VBUlQsCisJLmlvX3BnX29mZnN0CT0gKCgodTMyKVMzQzI0WFhfVkFfVUFSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IFMzQzI0MTBfU0RSQU1fUEEgKyAweDEwMCwKKworCS5pbml0X2lycQk9IHMzYzI0eHhfaW5pdF9pcnEsCisJLm1hcF9pbwkJPSBqaXZlX21hcF9pbywKKwkuaW5pdF9tYWNoaW5lCT0gaml2ZV9tYWNoaW5lX2luaXQsCisJLnRpbWVyCQk9ICZzM2MyNHh4X3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL0tjb25maWcKaW5kZXggZjE5MTViZC4uMjVkZTA0MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL0tjb25maWcKQEAgLTI5LDYgKzI5LDcgQEAKIAlib29sICJTaW10ZWMgRWxlY3Ryb25pY3MgQU5VQklTIgogCXNlbGVjdCBDUFVfUzNDMjQ0MAogCXNlbGVjdCBQTV9TSU1URUMgaWYgUE0KKwlzZWxlY3QgSEFWRV9QQVRBX1BMQVRGT1JNCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBTaW10ZWMgRWxlY3Ryb25pY3MgQU5VQklTCiAJICBkZXZlbG9wbWVudCBzeXN0ZW0KQEAgLTY3LDYgKzY4LDExIEBACiAJZGVmYXVsdCB5IGlmIEFSQ0hfUzNDMjQ0MAogCXNlbGVjdCBDUFVfUzNDMjQ0MAogCitjb25maWcgTUFDSF9BVDI0NDBFVkIKKwlib29sICJBdmFudGVjaCBBVDI0NDBFVkIgZGV2ZWxvcG1lbnQgYm9hcmQiCisJc2VsZWN0IENQVV9TM0MyNDQwCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBBVDI0NDBFVkIgZGV2ZWxvcG1lbnQgYm9hcmQKIAogZW5kbWVudQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvTWFrZWZpbGUKaW5kZXggYzgxZWQ2Mi4uMGI0NDQwZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9NYWtlZmlsZQpAQCAtMjEsMyArMjEsNCBAQAogb2JqLSQoQ09ORklHX01BQ0hfUlgzNzE1KQkrPSBtYWNoLXJ4MzcxNS5vCiBvYmotJChDT05GSUdfQVJDSF9TM0MyNDQwKQkrPSBtYWNoLXNtZGsyNDQwLm8KIG9iai0kKENPTkZJR19NQUNIX05FWENPREVSXzI0NDApICs9IG1hY2gtbmV4Y29kZXIubworb2JqLSQoQ09ORklHX01BQ0hfQVQyNDQwRVZCKSArPSBtYWNoLWF0MjQ0MGV2Yi5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hbnViaXMuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWFudWJpcy5jCmluZGV4IDQ3MjU4OTEuLjA5YWY4YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWFudWJpcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWFudWJpcy5jCkBAIC0xLDYgKzEsNiBAQAogLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYW51YmlzLmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCiAgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLwogICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKQEAgLTE3LDYgKzE3LDggQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3NtNTAxLmg+CiAjaW5jbHVkZSA8bGludXgvc201MDEtcmVncy5oPgpAQCAtMjQxLDE0ICsyNDMsMTggQEAKIAogLyogSURFIGNoYW5uZWxzICovCiAKK3N0cnVjdCBwYXRhX3BsYXRmb3JtX2luZm8gYW51YmlzX2lkZV9wbGF0ZGF0YSA9IHsKKwkuaW9wb3J0X3NoaWZ0CT0gNSwKK307CisKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYW51YmlzX2lkZTBfcmVzb3VyY2VbXSA9IHsKIAl7CiAJCS5zdGFydAk9IFMzQzI0MTBfQ1MzLAogCQkuZW5kCT0gUzNDMjQxMF9DUzMgKyAoOCozMikgLSAxLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LCB7Ci0JCS5zdGFydAk9IFMzQzI0MTBfQ1MzICsgKDE8PDI2KSwKLQkJLmVuZAk9IFMzQzI0MTBfQ1MzICsgKDE8PDI2KSArICg4KjMyKSAtIDEsCisJCS5zdGFydAk9IFMzQzI0MTBfQ1MzICsgKDE8PDI2KSArICg2KjMyKSwKKwkJLmVuZAk9IFMzQzI0MTBfQ1MzICsgKDE8PDI2KSArICg3KjMyKSAtIDEsCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sIHsKIAkJLnN0YXJ0CT0gSVJRX0lERTAsCkBAIC0yNTgsMTAgKzI2NCwxNCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYW51YmlzX2RldmljZV9pZGUwID0gewotCS5uYW1lCQk9ICJzaW10ZWMtaWRlIiwKKwkubmFtZQkJPSAicGF0YV9wbGF0Zm9ybSIsCiAJLmlkCQk9IDAsCiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGFudWJpc19pZGUwX3Jlc291cmNlKSwKIAkucmVzb3VyY2UJPSBhbnViaXNfaWRlMF9yZXNvdXJjZSwKKwkuZGV2CT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZhbnViaXNfaWRlX3BsYXRkYXRhLAorCQkuY29oZXJlbnRfZG1hX21hc2sgPSB+MCwKKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhbnViaXNfaWRlMV9yZXNvdXJjZVtdID0gewpAQCAtMjcwLDggKzI4MCw4IEBACiAJCS5lbmQJPSBTM0MyNDEwX0NTNCArICg4KjMyKSAtIDEsCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sIHsKLQkJLnN0YXJ0CT0gUzNDMjQxMF9DUzQgKyAoMTw8MjYpLAotCQkuZW5kCT0gUzNDMjQxMF9DUzQgKyAoMTw8MjYpICsgKDgqMzIpIC0gMSwKKwkJLnN0YXJ0CT0gUzNDMjQxMF9DUzQgKyAoMTw8MjYpICsgKDYqMzIpLAorCQkuZW5kCT0gUzNDMjQxMF9DUzQgKyAoMTw8MjYpICsgKDcqMzIpIC0gMSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCiAJfSwgewogCQkuc3RhcnQJPSBJUlFfSURFMCwKQEAgLTI4MCwxMiArMjkwLDE1IEBACiAJfSwKIH07CiAKLQogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYW51YmlzX2RldmljZV9pZGUxID0gewotCS5uYW1lCQk9ICJzaW10ZWMtaWRlIiwKKwkubmFtZQkJPSAicGF0YV9wbGF0Zm9ybSIsCiAJLmlkCQk9IDEsCiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGFudWJpc19pZGUxX3Jlc291cmNlKSwKIAkucmVzb3VyY2UJPSBhbnViaXNfaWRlMV9yZXNvdXJjZSwKKwkuZGV2CT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZhbnViaXNfaWRlX3BsYXRkYXRhLAorCQkuY29oZXJlbnRfZG1hX21hc2sgPSB+MCwKKwl9LAogfTsKIAogLyogQXNpeCBBWDg4Nzk2IDEwLzEwMCBldGhlcm5ldCBjb250cm9sbGVyICovCkBAIC00MDksNiArNDIyLDE1IEBACiAJJnMzYzI0eHhfdWNsaywKIH07CiAKKy8qIEkyQyBkZXZpY2VzLiAqLworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIGFudWJpc19pMmNfZGV2c1tdIF9faW5pdGRhdGEgPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygidHBzNjUwMTEiLCAweDQ4KSwKKwkJLmlycQk9IElSUV9FSU5UMjAsCisJfQorfTsKKwogc3RhdGljIHZvaWQgX19pbml0IGFudWJpc19tYXBfaW8odm9pZCkKIHsKIAkvKiBpbml0aWFsaXNlIHRoZSBjbG9ja3MgKi8KQEAgLTQ0OCw2ICs0NzAsOSBAQAogc3RhdGljIHZvaWQgX19pbml0IGFudWJpc19pbml0KHZvaWQpCiB7CiAJcGxhdGZvcm1fYWRkX2RldmljZXMoYW51YmlzX2RldmljZXMsIEFSUkFZX1NJWkUoYW51YmlzX2RldmljZXMpKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIGFudWJpc19pMmNfZGV2cywKKwkJCQlBUlJBWV9TSVpFKGFudWJpc19pMmNfZGV2cykpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWF0MjQ0MGV2Yi5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYXQyNDQwZXZiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlM2M3ZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWF0MjQ0MGV2Yi5jCkBAIC0wLDAgKzEsMTk4IEBACisvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hdDI0NDBldmIuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBSYW1heCBMbyA8cmFtYXhsb0BnbWFpbC5jb20+CisgKiAgICAgIEJhc2VkIG9uIG1hY2gtYW51YmlzLmMgYnkgQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgorICogICAgICBhbmQgbW9kaWZpY2F0aW9ucyBieSBTQlogPHNiekBzcGd1aS5vcmc+IGFuZAorICogICAgICBXZWliaW5nIDxodHRwOi8vd2VpYmluZy5ibG9nYnVzLmNvbT4KKyAqCisgKiBGb3IgcHJvZHVjdCBpbmZvcm1hdGlvbiwgdmlzaXQgaHR0cDovL3d3dy5hcm05ZS5jb20vCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvZG05MDAwLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtbWVtLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1sY2QuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvbmFuZC5oPgorCisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfZWNjLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY2xvY2suaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2NwdS5oPgorCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGF0MjQ0MGV2Yl9pb2Rlc2NbXSBfX2luaXRkYXRhID0geworCS8qIE5vdGhpbmcgaGVyZSAqLworfTsKKworI2RlZmluZSBVQ09OIFMzQzI0MTBfVUNPTl9ERUZBVUxUCisjZGVmaW5lIFVMQ09OIChTM0MyNDEwX0xDT05fQ1M4IHwgUzNDMjQxMF9MQ09OX1BOT05FKQorI2RlZmluZSBVRkNPTiAoUzNDMjQxMF9VRkNPTl9SWFRSSUc4IHwgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkKKworc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIGF0MjQ0MGV2Yl9zZXJpYWxfY2xvY2tzW10gPSB7CisJWzBdID0geworCQkubmFtZQkJPSAidWNsayIsCisJCS5kaXZpc29yCT0gMSwKKwkJLm1pbl9iYXVkCT0gMCwKKwkJLm1heF9iYXVkCT0gMCwKKwl9LAorCVsxXSA9IHsKKwkJLm5hbWUJCT0gInBjbGsiLAorCQkuZGl2aXNvcgk9IDEsCisJCS5taW5fYmF1ZAk9IDAsCisJCS5tYXhfYmF1ZAk9IDAsCisJfQorfTsKKworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfdWFydGNmZyBhdDI0NDBldmJfdWFydGNmZ3NbXSBfX2luaXRkYXRhID0geworCVswXSA9IHsKKwkJLmh3cG9ydAkgICAgID0gMCwKKwkJLmZsYWdzCSAgICAgPSAwLAorCQkudWNvbgkgICAgID0gVUNPTiwKKwkJLnVsY29uCSAgICAgPSBVTENPTiwKKwkJLnVmY29uCSAgICAgPSBVRkNPTiwKKwkJLmNsb2NrcwkgICAgID0gYXQyNDQwZXZiX3NlcmlhbF9jbG9ja3MsCisJCS5jbG9ja3Nfc2l6ZSA9IEFSUkFZX1NJWkUoYXQyNDQwZXZiX3NlcmlhbF9jbG9ja3MpLAorCX0sCisJWzFdID0geworCQkuaHdwb3J0CSAgICAgPSAxLAorCQkuZmxhZ3MJICAgICA9IDAsCisJCS51Y29uCSAgICAgPSBVQ09OLAorCQkudWxjb24JICAgICA9IFVMQ09OLAorCQkudWZjb24JICAgICA9IFVGQ09OLAorCQkuY2xvY2tzCSAgICAgPSBhdDI0NDBldmJfc2VyaWFsX2Nsb2NrcywKKwkJLmNsb2Nrc19zaXplID0gQVJSQVlfU0laRShhdDI0NDBldmJfc2VyaWFsX2Nsb2NrcyksCisJfSwKK307CisKKy8qIE5BTkQgRmxhc2ggb24gQVQyNDQwRVZCIGJvYXJkICovCisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBhdDI0NDBldmJfZGVmYXVsdF9uYW5kX3BhcnRbXSA9IHsKKwlbMF0gPSB7CisJCS5uYW1lCT0gIkJvb3QgQWdlbnQiLAorCQkuc2l6ZQk9IFNaXzI1NkssCisJCS5vZmZzZXQJPSAwLAorCX0sCisJWzFdID0geworCQkubmFtZQk9ICJLZXJuZWwiLAorCQkuc2l6ZQk9IFNaXzJNLAorCQkub2Zmc2V0CT0gU1pfMjU2SywKKwl9LAorCVsyXSA9IHsKKwkJLm5hbWUJPSAiUm9vdCIsCisJCS5vZmZzZXQJPSBTWl8yNTZLICsgU1pfMk0sCisJCS5zaXplCT0gTVREUEFSVF9TSVpfRlVMTCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX25hbmRfc2V0IGF0MjQ0MGV2Yl9uYW5kX3NldHNbXSA9IHsKKwlbMF0gPSB7CisJCS5uYW1lCQk9ICJuYW5kIiwKKwkJLm5yX2NoaXBzCT0gMSwKKwkJLm5yX3BhcnRpdGlvbnMJPSBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9kZWZhdWx0X25hbmRfcGFydCksCisJCS5wYXJ0aXRpb25zCT0gYXQyNDQwZXZiX2RlZmF1bHRfbmFuZF9wYXJ0LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfcGxhdGZvcm1fbmFuZCBhdDI0NDBldmJfbmFuZF9pbmZvID0geworCS50YWNscwkJPSAyNSwKKwkudHdycGgwCQk9IDU1LAorCS50d3JwaDEJCT0gNDAsCisJLm5yX3NldHMJPSBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9uYW5kX3NldHMpLAorCS5zZXRzCQk9IGF0MjQ0MGV2Yl9uYW5kX3NldHMsCit9OworCisvKiBETTkwMDBBRVAgMTAvMTAwIGV0aGVybmV0IGNvbnRyb2xsZXIgKi8KKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdDI0NDBldmJfZG05a19yZXNvdXJjZVtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0ID0gUzNDMjQxMF9DUzMsCisJCS5lbmQgICA9IFMzQzI0MTBfQ1MzICsgMywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ID0gUzNDMjQxMF9DUzMgKyA0LAorCQkuZW5kICAgPSBTM0MyNDEwX0NTMyArIDcsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNCisJfSwKKwlbMl0gPSB7CisJCS5zdGFydCA9IElSUV9FSU5UNywKKwkJLmVuZCAgID0gSVJRX0VJTlQ3LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElPUkVTT1VSQ0VfSVJRX0hJR0hFREdFLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZG05MDAwX3BsYXRfZGF0YSBhdDI0NDBldmJfZG05a19wZGF0YSA9IHsKKwkuZmxhZ3MJCT0gKERNOTAwMF9QTEFURl8xNkJJVE9OTFkgfCBETTkwMDBfUExBVEZfTk9fRUVQUk9NKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0MjQ0MGV2Yl9kZXZpY2VfZXRoID0geworCS5uYW1lCQk9ICJkbTkwMDAiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoYXQyNDQwZXZiX2RtOWtfcmVzb3VyY2UpLAorCS5yZXNvdXJjZQk9IGF0MjQ0MGV2Yl9kbTlrX3Jlc291cmNlLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZhdDI0NDBldmJfZG05a19wZGF0YSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MjQ0MGV2Yl9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmczNjX2RldmljZV91c2IsCisJJnMzY19kZXZpY2Vfd2R0LAorCSZzM2NfZGV2aWNlX2FkYywKKwkmczNjX2RldmljZV9pMmMsCisJJnMzY19kZXZpY2VfcnRjLAorCSZzM2NfZGV2aWNlX25hbmQsCisJJmF0MjQ0MGV2Yl9kZXZpY2VfZXRoLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGF0MjQ0MGV2Yl9tYXBfaW8odm9pZCkKK3sKKwlzM2NfZGV2aWNlX25hbmQuZGV2LnBsYXRmb3JtX2RhdGEgPSAmYXQyNDQwZXZiX25hbmRfaW5mbzsKKworCXMzYzI0eHhfaW5pdF9pbyhhdDI0NDBldmJfaW9kZXNjLCBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9pb2Rlc2MpKTsKKwlzM2MyNHh4X2luaXRfY2xvY2tzKDE2OTM0NDAwKTsKKwlzM2MyNHh4X2luaXRfdWFydHMoYXQyNDQwZXZiX3VhcnRjZmdzLCBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl91YXJ0Y2ZncykpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgYXQyNDQwZXZiX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhhdDI0NDBldmJfZGV2aWNlcywgQVJSQVlfU0laRShhdDI0NDBldmJfZGV2aWNlcykpOworfQorCisKK01BQ0hJTkVfU1RBUlQoQVQyNDQwRVZCLCAiQVQyNDQwRVZCIikKKwkucGh5c19pbwk9IFMzQzI0MTBfUEFfVUFSVCwKKwkuaW9fcGdfb2Zmc3QJPSAoKCh1MzIpUzNDMjRYWF9WQV9VQVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gUzNDMjQxMF9TRFJBTV9QQSArIDB4MTAwLAorCS5tYXBfaW8JCT0gYXQyNDQwZXZiX21hcF9pbywKKwkuaW5pdF9tYWNoaW5lCT0gYXQyNDQwZXZiX2luaXQsCisJLmluaXRfaXJxCT0gczNjMjR4eF9pbml0X2lycSwKKwkudGltZXIJCT0gJnMzYzI0eHhfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtb3NpcmlzLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1vc2lyaXMuYwppbmRleCA4YThhY2RiLi5hZjk5NmIwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1vc2lyaXMuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1vc2lyaXMuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLW9zaXJpcy5jCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDA1IFNpbXRlYyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChjKSAyMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCiAgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLwogICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogCiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgogI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgpAQCAtMzIyLDYgKzMyMywxNSBAQAogCS5jbHMJCT0gJm9zaXJpc19wbV9zeXNjbGFzcywKIH07CiAKKy8qIEkyQyBkZXZpY2VzIGZpdHRlZC4gKi8KKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBvc2lyaXNfaTJjX2RldnNbXSBfX2luaXRkYXRhID0geworCXsKKwkJSTJDX0JPQVJEX0lORk8oInRwczY1MDExIiwgMHg0OCksCisJCS5pcnEJPSBJUlFfRUlOVDIwLAorCX0sCit9OworCiAvKiBTdGFuZGFyZCBPc2lyaXMgZGV2aWNlcyAqLwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb3NpcmlzX2RldmljZXNbXSBfX2luaXRkYXRhID0gewpAQCAtMzg4LDYgKzM5OCw5IEBACiAJc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZvc2lyaXNfcG1fc3lzY2xhc3MpOwogCXN5c2Rldl9yZWdpc3Rlcigmb3NpcmlzX3BtX3N5c2Rldik7CiAKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBvc2lyaXNfaTJjX2RldnMsCisJCQkJQVJSQVlfU0laRShvc2lyaXNfaTJjX2RldnMpKTsKKwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG9zaXJpc19kZXZpY2VzLCBBUlJBWV9TSVpFKG9zaXJpc19kZXZpY2VzKSk7CiB9OwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDMvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0My9jbG9jay5jCmluZGV4IGI0MmY5NTYuLjE3ZjA2NGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQ0My9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0My9jbG9jay5jCkBAIC04MSw3ICs4MSw3IEBACiAJZWxzZQogCQljbGtjb24gJj0gfmNsb2NrczsKIAotCV9fcmF3X3dyaXRlbChjbGtjb24sIFMzQzI0NDNfSENMS0NPTik7CisJX19yYXdfd3JpdGVsKGNsa2NvbiwgUzNDMjQ0M19QQ0xLQ09OKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjIxLDcgKzIyMSw2IEBACiAJLmdldF9yYXRlCT0gczNjMjQ0M19nZXRyYXRlX21kaXZjbGssCiB9OwogCi0KIHN0YXRpYyBpbnQgczNjMjQ0M19zZXRwYXJlbnRfbXN5c2NsayhzdHJ1Y3QgY2xrICpjbGssIHN0cnVjdCBjbGsgKnBhcmVudCkKIHsKIAl1bnNpZ25lZCBsb25nIGNsa3NyYyA9IF9fcmF3X3JlYWRsKFMzQzI0NDNfQ0xLU1JDKTsKQEAgLTI0OSw2ICsyNDgsNDYgQEAKIAkuc2V0X3BhcmVudAk9IHMzYzI0NDNfc2V0cGFyZW50X21zeXNjbGssCiB9OwogCisvKiBhcm1kaXYKKyAqCisgKiB0aGlzIGNsb2NrIGlzIHNvdXJjZWQgZnJvbSBtc3lzY2xrIGFuZCBjYW4gaGF2ZSBhIG51bWJlciBvZgorICogZGl2aWRlciB2YWx1ZXMgYXBwbGllZCB0byBpdCB0byB0aGVuIGJlIGZlZCBpbnRvIGFybWNsay4KKyovCisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19hcm1kaXYgPSB7CisJLm5hbWUJCT0gImFybWRpdiIsCisJLmlkCQk9IC0xLAorCS5wYXJlbnQJCT0gJmNsa19tc3lzY2xrLAorfTsKKworLyogYXJtY2xrCisgKgorICogdGhpcyBpcyB0aGUgY2xvY2sgZmVkIGludG8gdGhlIEFSTSBjb3JlIGl0c2VsZiwgZWl0aGVyIGZyb20KKyAqIGFybWRpdiBvciBmcm9tIGhjbGsuCisgKi8KKworc3RhdGljIGludCBzM2MyNDQzX3NldHBhcmVudF9hcm1jbGsoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJdW5zaWduZWQgbG9uZyBjbGtkaXYwOworCisJY2xrZGl2MCA9IF9fcmF3X3JlYWRsKFMzQzI0NDNfQ0xLRElWMCk7CisKKwlpZiAocGFyZW50ID09ICZjbGtfYXJtZGl2KQorCQljbGtkaXYwICY9IH5TM0MyNDQzX0NMS0RJVjBfRFZTOworCWVsc2UgaWYgKHBhcmVudCA9PSAmY2xrX2gpCisJCWNsa2RpdjAgfD0gUzNDMjQ0M19DTEtESVYwX0RWUzsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJX19yYXdfd3JpdGVsKGNsa2RpdjAsIFMzQzI0NDNfQ0xLRElWMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19hcm0gPSB7CisJLm5hbWUJCT0gImFybWNsayIsCisJLmlkCQk9IC0xLAorCS5zZXRfcGFyZW50CT0gczNjMjQ0M19zZXRwYXJlbnRfYXJtY2xrLAorfTsKIAogLyogZXN5c2NsawogICoKQEAgLTYzOSw2ICs2NzgsMjkgQEAKIAkucm91bmRfcmF0ZQk9IHMzYzI0NDNfcm91bmRyYXRlX2Nsa3NyYzI1NiwKIH07CiAKKy8qIHByZWRpdgorICoKKyAqIHRoaXMgZGl2aWRlcyB0aGUgbXN5c2NsayBkb3duIHRvIHBhc3MgdG8gaC9wL2V0Yy4KKyAqLworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBzM2MyNDQzX3ByZWRpdl9nZXRyYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXVuc2lnbmVkIGxvbmcgY2xrZGl2MCA9IF9fcmF3X3JlYWRsKFMzQzI0NDNfQ0xLRElWMCk7CisKKwljbGtkaXYwICY9IFMzQzI0NDNfQ0xLRElWMF9QUkVESVZfTUFTSzsKKwljbGtkaXYwID4+PSBTM0MyNDQzX0NMS0RJVjBfUFJFRElWX1NISUZUOworCisJcmV0dXJuIHJhdGUgLyAoY2xrZGl2MCArIDEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBjbGtfcHJlZGl2ID0geworCS5uYW1lCQk9ICJwcmVkaXYiLAorCS5pZAkJPSAtMSwKKwkucGFyZW50CQk9ICZjbGtfbXN5c2NsaywKKwkuZ2V0X3JhdGUJPSBzM2MyNDQzX3ByZWRpdl9nZXRyYXRlLAorfTsKKwogLyogc3RhbmRhcmQgY2xvY2sgZGVmaW5pdGlvbnMgKi8KIAogc3RhdGljIHN0cnVjdCBjbGsgaW5pdF9jbG9ja3NfZGlzYWJsZVtdID0gewpAQCAtODg3LDYgKzk0OSwxNSBAQAogCX0KIAogCWNsa19pbml0X3NldF9wYXJlbnQoJmNsa19tc3lzY2xrLCBwYXJlbnQpOworCisJLyogYXJtICovCisKKwlpZiAoX19yYXdfcmVhZGwoUzNDMjQ0M19DTEtESVYwKSAmIFMzQzI0NDNfQ0xLRElWMF9EVlMpCisJCXBhcmVudCA9ICZjbGtfaDsKKwllbHNlCisJCXBhcmVudCA9ICZjbGtfYXJtZGl2OworCisJY2xrX2luaXRfc2V0X3BhcmVudCgmY2xrX2FybSwgcGFyZW50KTsKIH0KIAogLyogYXJtZGl2IGRpdmlzb3IgdGFibGUgKi8KQEAgLTkwOSwxMCArOTgwLDkgQEAKIAlyZXR1cm4gYXJtZGl2W2Nsa2NvbjAgPj4gUzNDMjQ0M19DTEtESVYwX0FSTURJVl9TSElGVF07CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBzM2MyNDQzX2dldF9wcmVkaXYodW5zaWduZWQgbG9uZyBjbGtjb24wKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHMzYzI0NDNfZ2V0X2hkaXYodW5zaWduZWQgbG9uZyBjbGtjb24wKQogewotCWNsa2NvbjAgJj0gUzNDMjQ0M19DTEtESVYwX1BSRURJVl9NQVNLOwotCWNsa2NvbjAgPj49IFMzQzI0NDNfQ0xLRElWMF9QUkVESVZfU0hJRlQ7CisJY2xrY29uMCAmPSBTM0MyNDQzX0NMS0RJVjBfSENMS0RJVl9NQVNLOwogCiAJcmV0dXJuIGNsa2NvbjAgKyAxOwogfQpAQCAtOTM2LDYgKzEwMDYsOSBAQAogCSZjbGtfaHNzcGksCiAJJmNsa19oc21tY19kaXYsCiAJJmNsa19oc21tYywKKwkmY2xrX2FybWRpdiwKKwkmY2xrX2FybSwKKwkmY2xrX3ByZWRpdiwKIH07CiAKIHZvaWQgX19pbml0IHMzYzI0NDNfaW5pdF9jbG9ja3MoaW50IHh0YWwpCkBAIC05NTEsMTAgKzEwMjQsMTYgQEAKIAlpbnQgcmV0OwogCWludCBwdHI7CiAKKwkvKiBzM2MyNDQzIHBhcmVudHMgaCBhbmQgcCBjbG9ja3MgZnJvbSBwcmVkaXYgKi8KKwljbGtfaC5wYXJlbnQgPSAmY2xrX3ByZWRpdjsKKwljbGtfcC5wYXJlbnQgPSAmY2xrX3ByZWRpdjsKKwogCXBsbCA9IHMzYzI0NDNfZ2V0X21wbGwobXBsbGNvbiwgeHRhbCk7CisJY2xrX21zeXNjbGsucmF0ZSA9IHBsbDsKIAogCWZjbGsgPSBwbGwgLyBzM2MyNDQzX2ZjbGtfZGl2KGNsa2RpdjApOwotCWhjbGsgPSBmY2xrIC8gczNjMjQ0M19nZXRfcHJlZGl2KGNsa2RpdjApOworCWhjbGsgPSBzM2MyNDQzX3ByZWRpdl9nZXRyYXRlKCZjbGtfcHJlZGl2KTsKKwloY2xrID0gaGNsayAvIHMzYzI0NDNfZ2V0X2hkaXYoY2xrZGl2MCk7CiAJaGNsayA9IGhjbGsgLyAoKGNsa2RpdjAgJiBTM0MyNDQzX0NMS0RJVjBfSEFMRl9IQ0xLKSA/IDIgOiAxKTsKICAJcGNsayA9IGhjbGsgLyAoKGNsa2RpdjAgJiBTM0MyNDQzX0NMS0RJVjBfSEFMRl9QQ0xLKSA/IDIgOiAxKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vS2NvbmZpZyBiL2FyY2gvYXJtL21tL0tjb25maWcKaW5kZXggMzNlZDA0OC4uM2E2YzhlYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vS2NvbmZpZworKysgYi9hcmNoL2FybS9tbS9LY29uZmlnCkBAIC0xODAsOCArMTgwLDIxIEBACiAjIEFSTTkyNlQKIGNvbmZpZyBDUFVfQVJNOTI2VAogCWJvb2wgIlN1cHBvcnQgQVJNOTI2VCBwcm9jZXNzb3IiCi0JZGVwZW5kcyBvbiBBUkNIX0lOVEVHUkFUT1IgfHwgQVJDSF9WRVJTQVRJTEVfUEIgfHwgTUFDSF9WRVJTQVRJTEVfQUIgfHwgQVJDSF9PTUFQNzMwIHx8IEFSQ0hfT01BUDE2WFggfHwgTUFDSF9SRUFMVklFV19FQiB8fCBBUkNIX1BOWDQwMDggfHwgQVJDSF9ORVRYIHx8IENQVV9TM0MyNDEyIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MSB8fCBBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBBUkNIX0FUOTFDQVA5IHx8IEFSQ0hfTlM5WFhYIHx8IEFSQ0hfREFWSU5DSQotCWRlZmF1bHQgeSBpZiBBUkNIX1ZFUlNBVElMRV9QQiB8fCBNQUNIX1ZFUlNBVElMRV9BQiB8fCBBUkNIX09NQVA3MzAgfHwgQVJDSF9PTUFQMTZYWCB8fCBBUkNIX1BOWDQwMDggfHwgQVJDSF9ORVRYIHx8IENQVV9TM0MyNDEyIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MSB8fCBBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBBUkNIX0FUOTFDQVA5IHx8IEFSQ0hfTlM5WFhYIHx8IEFSQ0hfREFWSU5DSQorCWRlcGVuZHMgb24gQVJDSF9JTlRFR1JBVE9SIHx8IEFSQ0hfVkVSU0FUSUxFX1BCIHx8IFwKKwkJTUFDSF9WRVJTQVRJTEVfQUIgfHwgQVJDSF9PTUFQNzMwIHx8IFwKKwkJQVJDSF9PTUFQMTZYWCB8fCBNQUNIX1JFQUxWSUVXX0VCIHx8IFwKKwkJQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MSB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjMgfHwgQVJDSF9BVDkxU0FNOVJMIHx8IFwKKwkJQVJDSF9BVDkxU0FNOUcyMCB8fCBBUkNIX0FUOTFDQVA5IHx8IFwKKwkJQVJDSF9OUzlYWFggfHwgQVJDSF9EQVZJTkNJCisJZGVmYXVsdCB5IGlmIEFSQ0hfVkVSU0FUSUxFX1BCIHx8IE1BQ0hfVkVSU0FUSUxFX0FCIHx8IFwKKwkJQVJDSF9PTUFQNzMwIHx8IEFSQ0hfT01BUDE2WFggfHwgXAorCQlBUkNIX1BOWDQwMDggfHwgQVJDSF9ORVRYIHx8IENQVV9TM0MyNDEyIHx8IFwKKwkJQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05MjYxIHx8IFwKKwkJQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05UkwgfHwgXAorCQlBUkNIX0FUOTFTQU05RzIwIHx8IEFSQ0hfQVQ5MUNBUDkgfHwgXAorCQlBUkNIX05TOVhYWCB8fCBBUkNIX0RBVklOQ0kgfHwgQVJDSF9NWDIKIAlzZWxlY3QgQ1BVXzMydjUKIAlzZWxlY3QgQ1BVX0FCUlRfRVY1VEoKIAlzZWxlY3QgQ1BVX1BBQlJUX05PSUZBUgpAQCAtMzY1LDcgKzM3OCw3IEBACiAjIEZlcm9jZW9uCiBjb25maWcgQ1BVX0ZFUk9DRU9OCiAJYm9vbAotCWRlcGVuZHMgb24gQVJDSF9PUklPTjVYCisJZGVwZW5kcyBvbiBBUkNIX09SSU9ONVggfHwgQVJDSF9MT0tJIHx8IEFSQ0hfS0lSS1dPT0QgfHwgQVJDSF9NVjc4WFgwCiAJZGVmYXVsdCB5CiAJc2VsZWN0IENQVV8zMnY1CiAJc2VsZWN0IENQVV9BQlJUX0VWNVQKQEAgLTM3Myw3ICszODYsNyBAQAogCXNlbGVjdCBDUFVfQ0FDSEVfVklWVAogCXNlbGVjdCBDUFVfQ1AxNV9NTVUKIAlzZWxlY3QgQ1BVX0NPUFlfRkVST0NFT04gaWYgTU1VCi0Jc2VsZWN0IENQVV9UTEJfVjRXQkkgaWYgTU1VCisJc2VsZWN0IENQVV9UTEJfRkVST0NFT04gaWYgTU1VCiAKIGNvbmZpZyBDUFVfRkVST0NFT05fT0xEX0lECiAJYm9vbCAiQWNjZXB0IGVhcmx5IEZlcm9jZW9uIGNvcmVzIHdpdGggYW4gQVJNOTI2IElEIgpAQCAtNTUxLDYgKzU2NCwxMSBAQAogCSAgQVJNIEFyY2hpdGVjdHVyZSBWZXJzaW9uIDQgVExCIHdpdGggd3JpdGViYWNrIGNhY2hlIGFuZCBpbnZhbGlkYXRlCiAJICBpbnN0cnVjdGlvbiBjYWNoZSBlbnRyeS4KIAorY29uZmlnIENQVV9UTEJfRkVST0NFT04KKwlib29sCisJaGVscAorCSAgRmVyb2Nlb24gVExCICh2NHdiaSB3aXRoIG5vbi1vdXRlci1jYWNoYWJsZSBwYWdlIHRhYmxlIHdhbGtzKS4KKwogY29uZmlnIENQVV9UTEJfVjYKIAlib29sCiAKQEAgLTcwOSw2ICs3MjcsMTQgQEAKIAlib29sCiAJZGVmYXVsdCBuCiAKK2NvbmZpZyBDQUNIRV9GRVJPQ0VPTl9MMgorCWJvb2wgIkVuYWJsZSB0aGUgRmVyb2Nlb24gTDIgY2FjaGUgY29udHJvbGxlciIKKwlkZXBlbmRzIG9uIEFSQ0hfS0lSS1dPT0QgfHwgQVJDSF9NVjc4WFgwCisJZGVmYXVsdCB5CisJc2VsZWN0IE9VVEVSX0NBQ0hFCisJaGVscAorCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgRmVyb2Nlb24gTDIgY2FjaGUgY29udHJvbGxlci4KKwogY29uZmlnIENBQ0hFX0wyWDAKIAlib29sICJFbmFibGUgdGhlIEwyeDAgb3V0ZXIgY2FjaGUgY29udHJvbGxlciIKIAlkZXBlbmRzIG9uIFJFQUxWSUVXX0VCX0FSTTExTVAgfHwgTUFDSF9SRUFMVklFV19QQjExTVAgfHwgTUFDSF9SRUFMVklFV19QQjExNzYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL01ha2VmaWxlIGIvYXJjaC9hcm0vbW0vTWFrZWZpbGUKaW5kZXggMzJiMmQyZC4uZjY0YjkyNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbW0vTWFrZWZpbGUKQEAgLTQ2LDYgKzQ2LDcgQEAKIG9iai0kKENPTkZJR19DUFVfVExCX1Y0V1QpCSs9IHRsYi12NC5vCiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNFdCKQkrPSB0bGItdjR3Yi5vCiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNFdCSSkJKz0gdGxiLXY0d2JpLm8KK29iai0kKENPTkZJR19DUFVfVExCX0ZFUk9DRU9OKQkrPSB0bGItdjR3YmkubwkjIHJldXNlIHY0d2JpIFRMQiBmdW5jdGlvbnMKIG9iai0kKENPTkZJR19DUFVfVExCX1Y2KQkrPSB0bGItdjYubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjcpCSs9IHRsYi12Ny5vCiAKQEAgLTczLDQgKzc0LDUgQEAKIG9iai0kKENPTkZJR19DUFVfVjYpCQkrPSBwcm9jLXY2Lm8KIG9iai0kKENPTkZJR19DUFVfVjcpCQkrPSBwcm9jLXY3Lm8KIAorb2JqLSQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKQkrPSBjYWNoZS1mZXJvY2Vvbi1sMi5vCiBvYmotJChDT05GSUdfQ0FDSEVfTDJYMCkJKz0gY2FjaGUtbDJ4MC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9jYWNoZS1mZXJvY2Vvbi1sMi5jIGIvYXJjaC9hcm0vbW0vY2FjaGUtZmVyb2Nlb24tbDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGVlYzRiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbW0vY2FjaGUtZmVyb2Nlb24tbDIuYwpAQCAtMCwwICsxLDMxOCBAQAorLyoKKyAqIGFyY2gvYXJtL21tL2NhY2hlLWZlcm9jZW9uLWwyLmMgLSBGZXJvY2VvbiBMMiBjYWNoZSBjb250cm9sbGVyIHN1cHBvcnQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKgorICogUmVmZXJlbmNlczoKKyAqIC0gVW5pZmllZCBMYXllciAyIENhY2hlIGZvciBGZXJvY2VvbiBDUFUgQ29yZXMsCisgKiAgIERvY3VtZW50IElEIE1WLVMxMDQ4NTgtMDAsIFJldi4gQSwgT2N0b2JlciAyMyAyMDA3LgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oPgorCisKKy8qCisgKiBMb3ctbGV2ZWwgY2FjaGUgbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucy4KKyAqCisgKiBBcyB3ZWxsIGFzIHRoZSByZWd1bGFyICdjbGVhbi9pbnZhbGlkYXRlL2ZsdXNoIEwyIGNhY2hlIGxpbmUgYnkKKyAqIE1WQScgaW5zdHJ1Y3Rpb25zLCB0aGUgRmVyb2Nlb24gTDIgY2FjaGUgY29udHJvbGxlciBhbHNvIGZlYXR1cmVzCisgKiAnY2xlYW4vaW52YWxpZGF0ZSBMMiByYW5nZSBieSBNVkEnIG9wZXJhdGlvbnMuCisgKgorICogQ2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyBhcmUgaW5pdGlhdGVkIGJ5IHdyaXRpbmcgdGhlIHN0YXJ0IGFuZAorICogZW5kIGFkZHJlc3NlcyB0byBzdWNjZXNzaXZlIGNwMTUgcmVnaXN0ZXJzLCBhbmQgcHJvY2VzcyBldmVyeQorICogY2FjaGUgbGluZSB3aG9zZSBmaXJzdCBieXRlIGFkZHJlc3MgbGllcyBpbiB0aGUgaW5jbHVzaXZlIHJhbmdlCisgKiBbc3RhcnQ6ZW5kXS4KKyAqCisgKiBUaGUgY2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyBzdGFsbCB0aGUgQ1BVIHBpcGVsaW5lIHVudGlsIGNvbXBsZXRpb24uCisgKgorICogVGhlIHJhbmdlIG9wZXJhdGlvbnMgcmVxdWlyZSB0d28gc3VjY2Vzc2l2ZSBjcDE1IHdyaXRlcywgaW4KKyAqIGJldHdlZW4gd2hpY2ggd2UgZG9uJ3Qgd2FudCB0byBiZSBwcmVlbXB0ZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9jbGVhbl9wYSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzksIDMiIDogOiAiciIgKGFkZHIpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2NsZWFuX212YV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJLyoKKwkgKiBNYWtlIHN1cmUgJ3N0YXJ0JyBhbmQgJ2VuZCcgcmVmZXJlbmNlIHRoZSBzYW1lIHBhZ2UsIGFzCisJICogTDIgaXMgUElQVCBhbmQgcmFuZ2Ugb3BlcmF0aW9ucyBvbmx5IGRvIGEgVExCIGxvb2t1cCBvbgorCSAqIHRoZSBzdGFydCBhZGRyZXNzLgorCSAqLworCUJVR19PTigoc3RhcnQgXiBlbmQpICYgfihQQUdFX1NJWkUgLSAxKSk7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGM5LCA0IiA6IDogInIiIChzdGFydCkpOworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGM5LCA1IiA6IDogInIiIChlbmQpKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfY2xlYW5fcGFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJbDJfY2xlYW5fbXZhX3JhbmdlKF9fcGh5c190b192aXJ0KHN0YXJ0KSwgX19waHlzX3RvX3ZpcnQoZW5kKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9jbGVhbl9pbnZfcGEodW5zaWduZWQgbG9uZyBhZGRyKQoreworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGMxMCwgMyIgOiA6ICJyIiAoYWRkcikpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfaW52X3BhKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMTEsIDMiIDogOiAiciIgKGFkZHIpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2ludl9tdmFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogTWFrZSBzdXJlICdzdGFydCcgYW5kICdlbmQnIHJlZmVyZW5jZSB0aGUgc2FtZSBwYWdlLCBhcworCSAqIEwyIGlzIFBJUFQgYW5kIHJhbmdlIG9wZXJhdGlvbnMgb25seSBkbyBhIFRMQiBsb29rdXAgb24KKwkgKiB0aGUgc3RhcnQgYWRkcmVzcy4KKwkgKi8KKwlCVUdfT04oKHN0YXJ0IF4gZW5kKSAmIH4oUEFHRV9TSVpFIC0gMSkpOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMTEsIDQiIDogOiAiciIgKHN0YXJ0KSk7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzExLCA1IiA6IDogInIiIChlbmQpKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfaW52X3BhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWwyX2ludl9tdmFfcmFuZ2UoX19waHlzX3RvX3ZpcnQoc3RhcnQpLCBfX3BoeXNfdG9fdmlydChlbmQpKTsKK30KKworCisvKgorICogTGludXggcHJpbWl0aXZlcy4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIGVuZCBhZGRyZXNzZXMgcGFzc2VkIHRvIExpbnV4IHByaW1pdGl2ZXMgYXJlCisgKiBub25pbmNsdXNpdmUsIHdoaWxlIHRoZSBoYXJkd2FyZSBjYWNoZSByYW5nZSBvcGVyYXRpb25zIHVzZQorICogaW5jbHVzaXZlIHN0YXJ0IGFuZCBlbmQgYWRkcmVzc2VzLgorICovCisjZGVmaW5lIENBQ0hFX0xJTkVfU0laRQkJMzIKKyNkZWZpbmUgTUFYX1JBTkdFX1NJWkUJCTEwMjQKKworc3RhdGljIGludCBsMl93dF9vdmVycmlkZTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2FsY19yYW5nZV9lbmQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJdW5zaWduZWQgbG9uZyByYW5nZV9lbmQ7CisKKwlCVUdfT04oc3RhcnQgJiAoQ0FDSEVfTElORV9TSVpFIC0gMSkpOworCUJVR19PTihlbmQgJiAoQ0FDSEVfTElORV9TSVpFIC0gMSkpOworCisJLyoKKwkgKiBUcnkgdG8gcHJvY2VzcyBhbGwgY2FjaGUgbGluZXMgYmV0d2VlbiAnc3RhcnQnIGFuZCAnZW5kJy4KKwkgKi8KKwlyYW5nZV9lbmQgPSBlbmQ7CisKKwkvKgorCSAqIExpbWl0IHRoZSBudW1iZXIgb2YgY2FjaGUgbGluZXMgcHJvY2Vzc2VkIGF0IG9uY2UsCisJICogc2luY2UgY2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyBzdGFsbCB0aGUgQ1BVIHBpcGVsaW5lCisJICogdW50aWwgY29tcGxldGlvbi4KKwkgKi8KKwlpZiAocmFuZ2VfZW5kID4gc3RhcnQgKyBNQVhfUkFOR0VfU0laRSkKKwkJcmFuZ2VfZW5kID0gc3RhcnQgKyBNQVhfUkFOR0VfU0laRTsKKworCS8qCisJICogQ2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyBjYW4ndCBzdHJhZGRsZSBhIHBhZ2UgYm91bmRhcnkuCisJICovCisJaWYgKHJhbmdlX2VuZCA+IChzdGFydCB8IChQQUdFX1NJWkUgLSAxKSkgKyAxKQorCQlyYW5nZV9lbmQgPSAoc3RhcnQgfCAoUEFHRV9TSVpFIC0gMSkpICsgMTsKKworCXJldHVybiByYW5nZV9lbmQ7Cit9CisKK3N0YXRpYyB2b2lkIGZlcm9jZW9uX2wyX2ludl9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwkvKgorCSAqIENsZWFuIGFuZCBpbnZhbGlkYXRlIHBhcnRpYWwgZmlyc3QgY2FjaGUgbGluZS4KKwkgKi8KKwlpZiAoc3RhcnQgJiAoQ0FDSEVfTElORV9TSVpFIC0gMSkpIHsKKwkJbDJfY2xlYW5faW52X3BhKHN0YXJ0ICYgfihDQUNIRV9MSU5FX1NJWkUgLSAxKSk7CisJCXN0YXJ0ID0gKHN0YXJ0IHwgKENBQ0hFX0xJTkVfU0laRSAtIDEpKSArIDE7CisJfQorCisJLyoKKwkgKiBDbGVhbiBhbmQgaW52YWxpZGF0ZSBwYXJ0aWFsIGxhc3QgY2FjaGUgbGluZS4KKwkgKi8KKwlpZiAoZW5kICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKSB7CisJCWwyX2NsZWFuX2ludl9wYShlbmQgJiB+KENBQ0hFX0xJTkVfU0laRSAtIDEpKTsKKwkJZW5kICY9IH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJfQorCisJLyoKKwkgKiBJbnZhbGlkYXRlIGFsbCBmdWxsIGNhY2hlIGxpbmVzIGJldHdlZW4gJ3N0YXJ0JyBhbmQgJ2VuZCcuCisJICovCisJd2hpbGUgKHN0YXJ0ICE9IGVuZCkgeworCQl1bnNpZ25lZCBsb25nIHJhbmdlX2VuZCA9IGNhbGNfcmFuZ2VfZW5kKHN0YXJ0LCBlbmQpOworCQlsMl9pbnZfcGFfcmFuZ2Uoc3RhcnQsIHJhbmdlX2VuZCAtIENBQ0hFX0xJTkVfU0laRSk7CisJCXN0YXJ0ID0gcmFuZ2VfZW5kOworCX0KKworCWRzYigpOworfQorCitzdGF0aWMgdm9pZCBmZXJvY2Vvbl9sMl9jbGVhbl9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwkvKgorCSAqIElmIEwyIGlzIGZvcmNlZCB0byBXVCwgdGhlIEwyIHdpbGwgYWx3YXlzIGJlIGNsZWFuIGFuZCB3ZQorCSAqIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZS4KKwkgKi8KKwlpZiAoIWwyX3d0X292ZXJyaWRlKSB7CisJCXN0YXJ0ICY9IH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJCWVuZCA9IChlbmQgKyBDQUNIRV9MSU5FX1NJWkUgLSAxKSAmIH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJCXdoaWxlIChzdGFydCAhPSBlbmQpIHsKKwkJCXVuc2lnbmVkIGxvbmcgcmFuZ2VfZW5kID0gY2FsY19yYW5nZV9lbmQoc3RhcnQsIGVuZCk7CisJCQlsMl9jbGVhbl9wYV9yYW5nZShzdGFydCwgcmFuZ2VfZW5kIC0gQ0FDSEVfTElORV9TSVpFKTsKKwkJCXN0YXJ0ID0gcmFuZ2VfZW5kOworCQl9CisJfQorCisJZHNiKCk7Cit9CisKK3N0YXRpYyB2b2lkIGZlcm9jZW9uX2wyX2ZsdXNoX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXN0YXJ0ICY9IH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJZW5kID0gKGVuZCArIENBQ0hFX0xJTkVfU0laRSAtIDEpICYgfihDQUNIRV9MSU5FX1NJWkUgLSAxKTsKKwl3aGlsZSAoc3RhcnQgIT0gZW5kKSB7CisJCXVuc2lnbmVkIGxvbmcgcmFuZ2VfZW5kID0gY2FsY19yYW5nZV9lbmQoc3RhcnQsIGVuZCk7CisJCWlmICghbDJfd3Rfb3ZlcnJpZGUpCisJCQlsMl9jbGVhbl9wYV9yYW5nZShzdGFydCwgcmFuZ2VfZW5kIC0gQ0FDSEVfTElORV9TSVpFKTsKKwkJbDJfaW52X3BhX3JhbmdlKHN0YXJ0LCByYW5nZV9lbmQgLSBDQUNIRV9MSU5FX1NJWkUpOworCQlzdGFydCA9IHJhbmdlX2VuZDsKKwl9CisKKwlkc2IoKTsKK30KKworCisvKgorICogUm91dGluZXMgdG8gZGlzYWJsZSBhbmQgcmUtZW5hYmxlIHRoZSBELWNhY2hlIGFuZCBJLWNhY2hlIGF0IHJ1bgorICogdGltZS4gIFRoZXNlIGFyZSBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgTDIgY2FjaGUgY2FuIG9ubHkgYmUgZW5hYmxlZAorICogb3IgZGlzYWJsZWQgd2hpbGUgdGhlIEwxIERjYWNoZSBhbmQgSWNhY2hlIGFyZSBib3RoIGRpc2FibGVkLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgaW52YWxpZGF0ZV9hbmRfZGlzYWJsZV9kY2FjaGUodm9pZCkKK3sKKwl1MzIgY3I7CisKKwljciA9IGdldF9jcigpOworCWlmIChjciAmIENSX0MpIHsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCQlyYXdfbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCQlmbHVzaF9jYWNoZV9hbGwoKTsKKwkJc2V0X2NyKGNyICYgfkNSX0MpOworCQlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGVuYWJsZV9kY2FjaGUodm9pZCkKK3sKKwl1MzIgY3I7CisKKwljciA9IGdldF9jcigpOworCWlmICghKGNyICYgQ1JfQykpCisJCXNldF9jcihjciB8IENSX0MpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgX19pbnZhbGlkYXRlX2ljYWNoZSh2b2lkKQoreworCWludCBkdW1teTsKKworCV9fYXNtX18gX192b2xhdGlsZV9fKCJtY3IgcDE1LCAwLCAlMCwgYzcsIGM1LCAwXG4iIDogIj1yIiAoZHVtbXkpKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGludmFsaWRhdGVfYW5kX2Rpc2FibGVfaWNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoY3IgJiBDUl9JKSB7CisJCXNldF9jcihjciAmIH5DUl9JKTsKKwkJX19pbnZhbGlkYXRlX2ljYWNoZSgpOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGVuYWJsZV9pY2FjaGUodm9pZCkKK3sKKwl1MzIgY3I7CisKKwljciA9IGdldF9jcigpOworCWlmICghKGNyICYgQ1JfSSkpCisJCXNldF9jcihjciB8IENSX0kpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiByZWFkX2V4dHJhX2ZlYXR1cmVzKHZvaWQpCit7CisJdTMyIHU7CisKKwlfX2FzbV9fKCJtcmMgcDE1LCAxLCAlMCwgYzE1LCBjMSwgMCIgOiAiPXIiICh1KSk7CisKKwlyZXR1cm4gdTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX2V4dHJhX2ZlYXR1cmVzKHUzMiB1KQoreworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGMxLCAwIiA6IDogInIiICh1KSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBkaXNhYmxlX2wyX3ByZWZldGNoKHZvaWQpCit7CisJdTMyIHU7CisKKwkvKgorCSAqIFJlYWQgdGhlIENQVSBFeHRyYSBGZWF0dXJlcyByZWdpc3RlciBhbmQgdmVyaWZ5IHRoYXQgdGhlCisJICogRGlzYWJsZSBMMiBQcmVmZXRjaCBiaXQgaXMgc2V0LgorCSAqLworCXUgPSByZWFkX2V4dHJhX2ZlYXR1cmVzKCk7CisJaWYgKCEodSAmIDB4MDEwMDAwMDApKSB7CisJCXByaW50ayhLRVJOX0lORk8gIkZlcm9jZW9uIEwyOiBEaXNhYmxpbmcgTDIgcHJlZmV0Y2guXG4iKTsKKwkJd3JpdGVfZXh0cmFfZmVhdHVyZXModSB8IDB4MDEwMDAwMDApOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGVuYWJsZV9sMih2b2lkKQoreworCXUzMiB1OworCisJdSA9IHJlYWRfZXh0cmFfZmVhdHVyZXMoKTsKKwlpZiAoISh1ICYgMHgwMDQwMDAwMCkpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiRmVyb2Nlb24gTDI6IEVuYWJsaW5nIEwyXG4iKTsKKworCQlpbnZhbGlkYXRlX2FuZF9kaXNhYmxlX2RjYWNoZSgpOworCQlpbnZhbGlkYXRlX2FuZF9kaXNhYmxlX2ljYWNoZSgpOworCQl3cml0ZV9leHRyYV9mZWF0dXJlcyh1IHwgMHgwMDQwMDAwMCk7CisJCWVuYWJsZV9pY2FjaGUoKTsKKwkJZW5hYmxlX2RjYWNoZSgpOworCX0KK30KKwordm9pZCBfX2luaXQgZmVyb2Nlb25fbDJfaW5pdChpbnQgX19sMl93dF9vdmVycmlkZSkKK3sKKwlsMl93dF9vdmVycmlkZSA9IF9fbDJfd3Rfb3ZlcnJpZGU7CisKKwlkaXNhYmxlX2wyX3ByZWZldGNoKCk7CisKKwlvdXRlcl9jYWNoZS5pbnZfcmFuZ2UgPSBmZXJvY2Vvbl9sMl9pbnZfcmFuZ2U7CisJb3V0ZXJfY2FjaGUuY2xlYW5fcmFuZ2UgPSBmZXJvY2Vvbl9sMl9jbGVhbl9yYW5nZTsKKwlvdXRlcl9jYWNoZS5mbHVzaF9yYW5nZSA9IGZlcm9jZW9uX2wyX2ZsdXNoX3JhbmdlOworCisJZW5hYmxlX2wyKCk7CisKKwlwcmludGsoS0VSTl9JTkZPICJGZXJvY2VvbiBMMjogQ2FjaGUgc3VwcG9ydCBpbml0aWFsaXNlZCVzLlxuIiwKKwkJCSBsMl93dF9vdmVycmlkZSA/ICIsIGluIFdUIG92ZXJyaWRlIG1vZGUiIDogIiIpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vZmF1bHQtYXJtdi5jIGIvYXJjaC9hcm0vbW0vZmF1bHQtYXJtdi5jCmluZGV4IDQ0NTU4ZDUuLmZiZmEyNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2ZhdWx0LWFybXYuYworKysgYi9hcmNoL2FybS9tbS9mYXVsdC1hcm12LmMKQEAgLTE0NCwxMyArMTQ0LDE3IEBACiAJcGFnZSA9IHBmbl90b19wYWdlKHBmbik7CiAJbWFwcGluZyA9IHBhZ2VfbWFwcGluZyhwYWdlKTsKIAlpZiAobWFwcGluZykgeworI2lmbmRlZiBDT05GSUdfU01QCiAJCWludCBkaXJ0eSA9IHRlc3RfYW5kX2NsZWFyX2JpdChQR19kY2FjaGVfZGlydHksICZwYWdlLT5mbGFncyk7CiAKIAkJaWYgKGRpcnR5KQogCQkJX19mbHVzaF9kY2FjaGVfcGFnZShtYXBwaW5nLCBwYWdlKTsKKyNlbmRpZgogCiAJCWlmIChjYWNoZV9pc192aXZ0KCkpCiAJCQltYWtlX2NvaGVyZW50KG1hcHBpbmcsIHZtYSwgYWRkciwgcGZuKTsKKwkJZWxzZSBpZiAodm1hLT52bV9mbGFncyAmIFZNX0VYRUMpCisJCQlfX2ZsdXNoX2ljYWNoZV9hbGwoKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2ZsdXNoLmMgYi9hcmNoL2FybS9tbS9mbHVzaC5jCmluZGV4IDlkZjUwN2QuLjAyOWVlNjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2ZsdXNoLmMKKysrIGIvYXJjaC9hcm0vbW0vZmx1c2guYwpAQCAtMTk5LDYgKzE5OSw4IEBACiAJCV9fZmx1c2hfZGNhY2hlX3BhZ2UobWFwcGluZywgcGFnZSk7CiAJCWlmIChtYXBwaW5nICYmIGNhY2hlX2lzX3ZpdnQoKSkKIAkJCV9fZmx1c2hfZGNhY2hlX2FsaWFzZXMobWFwcGluZywgcGFnZSk7CisJCWVsc2UgaWYgKG1hcHBpbmcpCisJCQlfX2ZsdXNoX2ljYWNoZV9hbGwoKTsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGZsdXNoX2RjYWNoZV9wYWdlKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL3Byb2MtZmVyb2Nlb24uUyBiL2FyY2gvYXJtL21tL3Byb2MtZmVyb2Nlb24uUwppbmRleCBhMDJjMTcxLi5mMmU1ODg0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9wcm9jLWZlcm9jZW9uLlMKKysrIGIvYXJjaC9hcm0vbW0vcHJvYy1mZXJvY2Vvbi5TCkBAIC00NCwxMSArNDQsMzEgQEAKICAqLwogI2RlZmluZSBDQUNIRV9ETElORVNJWkUJMzIKIAorCS5ic3MKKwkuYWxpZ24gMworX19jYWNoZV9wYXJhbXNfbG9jOgorCS5zcGFjZQk4CisKIAkudGV4dAorX19jYWNoZV9wYXJhbXM6CisJLndvcmQJX19jYWNoZV9wYXJhbXNfbG9jCisKIC8qCiAgKiBjcHVfZmVyb2Nlb25fcHJvY19pbml0KCkKICAqLwogRU5UUlkoY3B1X2Zlcm9jZW9uX3Byb2NfaW5pdCkKKwltcmMJcDE1LCAwLCByMCwgYzAsIGMwLCAxCQlAIHJlYWQgY2FjaGUgdHlwZSByZWdpc3RlcgorCWxkcglyMSwgX19jYWNoZV9wYXJhbXMKKwltb3YJcjIsICMoMTYgPDwgNSkKKwl0c3QJcjAsICMoMSA8PCAxNikJCQlAIGdldCB3YXkKKwltb3YJcjAsIHIwLCBsc3IgIzE4CQkJQCBnZXQgY2FjaGUgc2l6ZSBvcmRlcgorCW1vdm5lCXIzLCAjKCg0IC0gMSkgPDwgMzApCQlAIDQtd2F5CisJYW5kCXIwLCByMCwgIzB4ZgorCW1vdmVxCXIzLCAjMAkJCQlAIDEtd2F5CisJbW92CXIyLCByMiwgbHNsIHIwCQkJQCBhY3R1YWwgY2FjaGUgc2l6ZQorCW1vdm5lCXIyLCByMiwgbHNyICMyCQkJQCB0dXJuZWQgaW50byAjIG9mIHNldHMKKwlzdWIJcjIsIHIyLCAjKDEgPDwgNSkKKwlzdG1pYQlyMSwge3IyLCByM30KIAltb3YJcGMsIGxyCiAKIC8qCkBAIC01OSw2ICs3OSwxMyBAQAogCW1vdglpcCwgI1BTUl9GX0JJVCB8IFBTUl9JX0JJVCB8IFNWQ19NT0RFCiAJbXNyCWNwc3JfYywgaXAKIAlibAlmZXJvY2Vvbl9mbHVzaF9rZXJuX2NhY2hlX2FsbAorCisjaWYgZGVmaW5lZChDT05GSUdfQ0FDSEVfRkVST0NFT05fTDIpICYmICFkZWZpbmVkKENPTkZJR19MMl9DQUNIRV9XUklURVRIUk9VR0gpCisJbW92CXIwLCAjMAorCW1jcglwMTUsIDEsIHIwLCBjMTUsIGM5LCAwCQlAIGNsZWFuIEwyCisJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKKyNlbmRpZgorCiAJbXJjCXAxNSwgMCwgcjAsIGMxLCBjMCwgMAkJQCBjdHJsIHJlZ2lzdGVyCiAJYmljCXIwLCByMCwgIzB4MTAwMAkJCUAgLi4uaS4uLi4uLi4uLi4uLgogCWJpYwlyMCwgcjAsICMweDAwMGUJCQlAIC4uLi4uLi4uLi4uLndjYS4KQEAgLTExNywxMSArMTQ0LDE5IEBACiAgKi8KIEVOVFJZKGZlcm9jZW9uX2ZsdXNoX2tlcm5fY2FjaGVfYWxsKQogCW1vdglyMiwgI1ZNX0VYRUMKLQltb3YJaXAsICMwCisKIF9fZmx1c2hfd2hvbGVfY2FjaGU6Ci0xOgltcmMJcDE1LCAwLCByMTUsIGM3LCBjMTQsIDMgCUAgdGVzdCxjbGVhbixpbnZhbGlkYXRlCi0JYm5lCTFiCisJbGRyCXIxLCBfX2NhY2hlX3BhcmFtcworCWxkbWlhCXIxLCB7cjEsIHIzfQorMToJb3JyCWlwLCByMSwgcjMKKzI6CW1jcglwMTUsIDAsIGlwLCBjNywgYzE0LCAyCQlAIGNsZWFuICsgaW52YWxpZGF0ZSBEIHNldC93YXkKKwlzdWJzCWlwLCBpcCwgIygxIDw8IDMwKQkJQCBuZXh0IHdheQorCWJjcwkyYgorCXN1YnMJcjEsIHIxLCAjKDEgPDwgNSkJCUAgbmV4dCBzZXQKKwliY3MJMWIKKwogCXRzdAlyMiwgI1ZNX0VYRUMKKwltb3YJaXAsICMwCiAJbWNybmUJcDE1LCAwLCBpcCwgYzcsIGM1LCAwCQlAIGludmFsaWRhdGUgSSBjYWNoZQogCW1jcm5lCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCkBAIC0xMzgsNyArMTczLDYgQEAKICAqLwogCS5hbGlnbgk1CiBFTlRSWShmZXJvY2Vvbl9mbHVzaF91c2VyX2NhY2hlX3JhbmdlKQotCW1vdglpcCwgIzAKIAlzdWIJcjMsIHIxLCByMAkJCUAgY2FsY3VsYXRlIHRvdGFsIHNpemUKIAljbXAJcjMsICNDQUNIRV9ETElNSVQKIAliZ3QJX19mbHVzaF93aG9sZV9jYWNoZQpAQCAtMTUyLDYgKzE4Niw3IEBACiAJY21wCXIwLCByMQogCWJsbwkxYgogCXRzdAlyMiwgI1ZNX0VYRUMKKwltb3YJaXAsICMwCiAJbWNybmUJcDE1LCAwLCBpcCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIApAQCAtMjA5LDYgKzI0NCwyMCBAQAogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCisJLmFsaWduCTUKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2ZsdXNoX2tlcm5fZGNhY2hlX3BhZ2UpCisJbXJzCXIyLCBjcHNyCisJYWRkCXIxLCByMCwgI1BBR0VfU1ogLSBDQUNIRV9ETElORVNJWkUJQCB0b3AgYWRkciBpcyBpbmNsdXNpdmUKKwlvcnIJcjMsIHIyLCAjUFNSX0lfQklUCisJbXNyCWNwc3JfYywgcjMJCQlAIGRpc2FibGUgaW50ZXJydXB0cworCW1jcglwMTUsIDUsIHIwLCBjMTUsIGMxNSwgMAkJQCBEIGNsZWFuL2ludiByYW5nZSBzdGFydAorCW1jcglwMTUsIDUsIHIxLCBjMTUsIGMxNSwgMQkJQCBEIGNsZWFuL2ludiByYW5nZSB0b3AKKwltc3IJY3Bzcl9jLCByMgkJCUAgcmVzdG9yZSBpbnRlcnJ1cHRzCisJbW92CXIwLCAjMAorCW1jcglwMTUsIDAsIHIwLCBjNywgYzUsIDAJCUAgaW52YWxpZGF0ZSBJIGNhY2hlCisJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKKwltb3YJcGMsIGxyCisKIC8qCiAgKglkbWFfaW52X3JhbmdlKHN0YXJ0LCBlbmQpCiAgKgpAQCAtMjI1LDEwICsyNzQsMTAgQEAKIAkuYWxpZ24JNQogRU5UUlkoZmVyb2Nlb25fZG1hX2ludl9yYW5nZSkKIAl0c3QJcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCisJYmljCXIwLCByMCwgI0NBQ0hFX0RMSU5FU0laRSAtIDEKIAltY3JuZQlwMTUsIDAsIHIwLCBjNywgYzEwLCAxCQlAIGNsZWFuIEQgZW50cnkKIAl0c3QJcjEsICNDQUNIRV9ETElORVNJWkUgLSAxCiAJbWNybmUJcDE1LCAwLCByMSwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5Ci0JYmljCXIwLCByMCwgI0NBQ0hFX0RMSU5FU0laRSAtIDEKIDE6CW1jcglwMTUsIDAsIHIwLCBjNywgYzYsIDEJCUAgaW52YWxpZGF0ZSBEIGVudHJ5CiAJYWRkCXIwLCByMCwgI0NBQ0hFX0RMSU5FU0laRQogCWNtcAlyMCwgcjEKQEAgLTIzNiw2ICsyODUsMjIgQEAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIAorCS5hbGlnbgk1CitFTlRSWShmZXJvY2Vvbl9yYW5nZV9kbWFfaW52X3JhbmdlKQorCW1ycwlyMiwgY3BzcgorCXRzdAlyMCwgI0NBQ0hFX0RMSU5FU0laRSAtIDEKKwltY3JuZQlwMTUsIDAsIHIwLCBjNywgYzEwLCAxCQlAIGNsZWFuIEQgZW50cnkKKwl0c3QJcjEsICNDQUNIRV9ETElORVNJWkUgLSAxCisJbWNybmUJcDE1LCAwLCByMSwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CisJY21wCXIxLCByMAorCXN1Ym5lCXIxLCByMSwgIzEJCQlAIHRvcCBhZGRyZXNzIGlzIGluY2x1c2l2ZQorCW9ycglyMywgcjIsICNQU1JfSV9CSVQKKwltc3IJY3Bzcl9jLCByMwkJCUAgZGlzYWJsZSBpbnRlcnJ1cHRzCisJbWNyCXAxNSwgNSwgcjAsIGMxNSwgYzE0LCAwCQlAIEQgaW52IHJhbmdlIHN0YXJ0CisJbWNyCXAxNSwgNSwgcjEsIGMxNSwgYzE0LCAxCQlAIEQgaW52IHJhbmdlIHRvcAorCW1zcgljcHNyX2MsIHIyCQkJQCByZXN0b3JlIGludGVycnVwdHMKKwltb3YJcGMsIGxyCisKIC8qCiAgKglkbWFfY2xlYW5fcmFuZ2Uoc3RhcnQsIGVuZCkKICAqCkBAIC0yNTYsNiArMzIxLDE5IEBACiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKKwkuYWxpZ24JNQorRU5UUlkoZmVyb2Nlb25fcmFuZ2VfZG1hX2NsZWFuX3JhbmdlKQorCW1ycwlyMiwgY3BzcgorCWNtcAlyMSwgcjAKKwlzdWJuZQlyMSwgcjEsICMxCQkJQCB0b3AgYWRkcmVzcyBpcyBpbmNsdXNpdmUKKwlvcnIJcjMsIHIyLCAjUFNSX0lfQklUCisJbXNyCWNwc3JfYywgcjMJCQlAIGRpc2FibGUgaW50ZXJydXB0cworCW1jcglwMTUsIDUsIHIwLCBjMTUsIGMxMywgMAkJQCBEIGNsZWFuIHJhbmdlIHN0YXJ0CisJbWNyCXAxNSwgNSwgcjEsIGMxNSwgYzEzLCAxCQlAIEQgY2xlYW4gcmFuZ2UgdG9wCisJbXNyCWNwc3JfYywgcjIJCQlAIHJlc3RvcmUgaW50ZXJydXB0cworCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisJbW92CXBjLCBscgorCiAvKgogICoJZG1hX2ZsdXNoX3JhbmdlKHN0YXJ0LCBlbmQpCiAgKgpAQCAtMjc0LDYgKzM1MiwxOSBAQAogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCisJLmFsaWduCTUKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2RtYV9mbHVzaF9yYW5nZSkKKwltcnMJcjIsIGNwc3IKKwljbXAJcjEsIHIwCisJc3VibmUJcjEsIHIxLCAjMQkJCUAgdG9wIGFkZHJlc3MgaXMgaW5jbHVzaXZlCisJb3JyCXIzLCByMiwgI1BTUl9JX0JJVAorCW1zcgljcHNyX2MsIHIzCQkJQCBkaXNhYmxlIGludGVycnVwdHMKKwltY3IJcDE1LCA1LCByMCwgYzE1LCBjMTUsIDAJCUAgRCBjbGVhbi9pbnYgcmFuZ2Ugc3RhcnQKKwltY3IJcDE1LCA1LCByMSwgYzE1LCBjMTUsIDEJCUAgRCBjbGVhbi9pbnYgcmFuZ2UgdG9wCisJbXNyCWNwc3JfYywgcjIJCQlAIHJlc3RvcmUgaW50ZXJydXB0cworCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisJbW92CXBjLCBscgorCiBFTlRSWShmZXJvY2Vvbl9jYWNoZV9mbnMpCiAJLmxvbmcJZmVyb2Nlb25fZmx1c2hfa2Vybl9jYWNoZV9hbGwKIAkubG9uZwlmZXJvY2Vvbl9mbHVzaF91c2VyX2NhY2hlX2FsbApAQCAtMjg1LDEyICszNzYsMzMgQEAKIAkubG9uZwlmZXJvY2Vvbl9kbWFfY2xlYW5fcmFuZ2UKIAkubG9uZwlmZXJvY2Vvbl9kbWFfZmx1c2hfcmFuZ2UKIAorRU5UUlkoZmVyb2Nlb25fcmFuZ2VfY2FjaGVfZm5zKQorCS5sb25nCWZlcm9jZW9uX2ZsdXNoX2tlcm5fY2FjaGVfYWxsCisJLmxvbmcJZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9hbGwKKwkubG9uZwlmZXJvY2Vvbl9mbHVzaF91c2VyX2NhY2hlX3JhbmdlCisJLmxvbmcJZmVyb2Nlb25fY29oZXJlbnRfa2Vybl9yYW5nZQorCS5sb25nCWZlcm9jZW9uX2NvaGVyZW50X3VzZXJfcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9mbHVzaF9rZXJuX2RjYWNoZV9wYWdlCisJLmxvbmcJZmVyb2Nlb25fcmFuZ2VfZG1hX2ludl9yYW5nZQorCS5sb25nCWZlcm9jZW9uX3JhbmdlX2RtYV9jbGVhbl9yYW5nZQorCS5sb25nCWZlcm9jZW9uX3JhbmdlX2RtYV9mbHVzaF9yYW5nZQorCiAJLmFsaWduCTUKIEVOVFJZKGNwdV9mZXJvY2Vvbl9kY2FjaGVfY2xlYW5fYXJlYSkKKyNpZiBkZWZpbmVkKENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMikgJiYgIWRlZmluZWQoQ09ORklHX0wyX0NBQ0hFX1dSSVRFVEhST1VHSCkKKwltb3YJcjIsIHIwCisJbW92CXIzLCByMQorI2VuZGlmCiAxOgltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CiAJYWRkCXIwLCByMCwgI0NBQ0hFX0RMSU5FU0laRQogCXN1YnMJcjEsIHIxLCAjQ0FDSEVfRExJTkVTSVpFCiAJYmhpCTFiCisjaWYgZGVmaW5lZChDT05GSUdfQ0FDSEVfRkVST0NFT05fTDIpICYmICFkZWZpbmVkKENPTkZJR19MMl9DQUNIRV9XUklURVRIUk9VR0gpCisxOgltY3IJcDE1LCAxLCByMiwgYzE1LCBjOSwgMQkJQCBjbGVhbiBMMiBlbnRyeQorCWFkZAlyMiwgcjIsICNDQUNIRV9ETElORVNJWkUKKwlzdWJzCXIzLCByMywgI0NBQ0hFX0RMSU5FU0laRQorCWJoaQkxYgorI2VuZGlmCiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKQEAgLTMwNiwxNiArNDE4LDI1IEBACiAJLmFsaWduCTUKIEVOVFJZKGNwdV9mZXJvY2Vvbl9zd2l0Y2hfbW0pCiAjaWZkZWYgQ09ORklHX01NVQotCW1vdglpcCwgIzAKLUAgJiYgJ0NsZWFuICYgSW52YWxpZGF0ZSB3aG9sZSBEQ2FjaGUnCi0xOgltcmMJcDE1LCAwLCByMTUsIGM3LCBjMTQsIDMgCUAgdGVzdCxjbGVhbixpbnZhbGlkYXRlCi0JYm5lCTFiCi0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjNSwgMAkJQCBpbnZhbGlkYXRlIEkgY2FjaGUKLQltY3IJcDE1LCAwLCBpcCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgorCS8qCisJICogTm90ZTogd2Ugd2lzaCB0byBjYWxsIF9fZmx1c2hfd2hvbGVfY2FjaGUgYnV0IHdlIG5lZWQgdG8gcHJlc2VydmUKKwkgKiBsciB0byBkbyBzby4gIFRoZSBvbmx5IHdheSB3aXRob3V0IHRvdWNoaW5nIG1haW4gbWVtb3J5IGlzIHRvCisJICogdXNlIHIyIHdoaWNoIGlzIG5vcm1hbGx5IHVzZWQgdG8gdGVzdCB0aGUgVk1fRVhFQyBmbGFnLCBhbmQKKwkgKiBjb21wZW5zYXRlIGxvY2FsbHkgZm9yIHRoZSBza2lwcGVkIG9wcyBpZiBpdCBpcyBub3Qgc2V0LgorCSAqLworCW1vdglyMiwgbHIJCQkJQCBhYnVzZSByMiB0byBwcmVzZXJ2ZSBscgorCWJsCV9fZmx1c2hfd2hvbGVfY2FjaGUKKwlAIGlmIHIyIGNvbnRhaW5zIHRoZSBWTV9FWEVDIGJpdCB0aGVuIHRoZSBuZXh0IDIgb3BzIGFyZSBkb25lIGFscmVhZHkKKwl0c3QJcjIsICNWTV9FWEVDCisJbWNyZXEJcDE1LCAwLCBpcCwgYzcsIGM1LCAwCQlAIGludmFsaWRhdGUgSSBjYWNoZQorCW1jcmVxCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKKwogCW1jcglwMTUsIDAsIHIwLCBjMiwgYzAsIDAJCUAgbG9hZCBwYWdlIHRhYmxlIHBvaW50ZXIKIAltY3IJcDE1LCAwLCBpcCwgYzgsIGM3LCAwCQlAIGludmFsaWRhdGUgSSAmIEQgVExCcwotI2VuZGlmCisJbW92CXBjLCByMgorI2Vsc2UKIAltb3YJcGMsIGxyCisjZW5kaWYKIAogLyoKICAqIGNwdV9mZXJvY2Vvbl9zZXRfcHRlX2V4dChwdGVwLCBwdGUsIGV4dCkKQEAgLTM0NSw2ICs0NjYsOSBAQAogCXN0cglyMiwgW3IwXQkJCUAgaGFyZHdhcmUgdmVyc2lvbgogCW1vdglyMCwgcjAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CisjaWYgZGVmaW5lZChDT05GSUdfQ0FDSEVfRkVST0NFT05fTDIpICYmICFkZWZpbmVkKENPTkZJR19MMl9DQUNIRV9XUklURVRIUk9VR0gpCisJbWNyCXAxNSwgMSwgcjAsIGMxNSwgYzksIDEJCUAgY2xlYW4gTDIgZW50cnkKKyNlbmRpZgogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAjZW5kaWYKIAltb3YJcGMsIGxyCkBAIC0zNjksMTQgKzQ5MywxNSBAQAogCS5zaXplCV9fZmVyb2Nlb25fc2V0dXAsIC4gLSBfX2Zlcm9jZW9uX3NldHVwCiAKIAkvKgotCSAqICBSCi0JICogLlJWSSBaRlJTIEJMRFAgV0NBTQotCSAqIC4wMTEgMDAwMSAuLjExIDAxMDEKKwkgKiAgICAgIEIKKwkgKiAgUiAgIFAKKwkgKiAuUlZJIFVGUlMgQkxEUCBXQ0FNCisJICogLjAxMSAuMDAxIC4uMTEgMDEwMQogCSAqCiAJICovCiAJLnR5cGUJZmVyb2Nlb25fY3J2YWwsICNvYmplY3QKIGZlcm9jZW9uX2NydmFsOgotCWNydmFsCWNsZWFyPTB4MDAwMDdmM2YsIG1tdXNldD0weDAwMDAzMTM1LCB1Y3NldD0weDAwMDAxMTM0CisJY3J2YWwJY2xlYXI9MHgwMDAwNzczZiwgbW11c2V0PTB4MDAwMDMxMzUsIHVjc2V0PTB4MDAwMDExMzQKIAogCV9fSU5JVERBVEEKIApAQCAtNDE0LDYgKzUzOSwyMSBAQAogCS5hc2NpegkiRmVyb2Nlb24iCiAJLnNpemUJY3B1X2Zlcm9jZW9uX25hbWUsIC4gLSBjcHVfZmVyb2Nlb25fbmFtZQogCisJLnR5cGUJY3B1Xzg4ZnI1MzFfbmFtZSwgI29iamVjdAorY3B1Xzg4ZnI1MzFfbmFtZToKKwkuYXNjaXoJIkZlcm9jZW9uIDg4RlI1MzEtdmQiCisJLnNpemUJY3B1Xzg4ZnI1MzFfbmFtZSwgLiAtIGNwdV84OGZyNTMxX25hbWUKKworCS50eXBlCWNwdV84OGZyNTcxX25hbWUsICNvYmplY3QKK2NwdV84OGZyNTcxX25hbWU6CisJLmFzY2l6CSJGZXJvY2VvbiA4OEZSNTcxLXZkIgorCS5zaXplCWNwdV84OGZyNTcxX25hbWUsIC4gLSBjcHVfODhmcjU3MV9uYW1lCisKKwkudHlwZQljcHVfODhmcjEzMV9uYW1lLCAjb2JqZWN0CitjcHVfODhmcjEzMV9uYW1lOgorCS5hc2NpegkiRmVyb2Nlb24gODhGUjEzMSIKKwkuc2l6ZQljcHVfODhmcjEzMV9uYW1lLCAuIC0gY3B1Xzg4ZnIxMzFfbmFtZQorCiAJLmFsaWduCiAKIAkuc2VjdGlvbiAiLnByb2MuaW5mby5pbml0IiwgI2FsbG9jLCAjZXhlY2luc3RyCkBAIC00MjEsMTUgKzU2MSwxNSBAQAogI2lmZGVmIENPTkZJR19DUFVfRkVST0NFT05fT0xEX0lECiAJLnR5cGUJX19mZXJvY2Vvbl9vbGRfaWRfcHJvY19pbmZvLCNvYmplY3QKIF9fZmVyb2Nlb25fb2xkX2lkX3Byb2NfaW5mbzoKLQkubG9uZwkweDQxMDY5MjYwCi0JLmxvbmcJMHhmZmZmZmZmMAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwkweDQxMDA5MjYwCisJLmxvbmcJMHhmZjAwZmZmMAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCiAJCVBNRF9TRUNUX0JVRkZFUkFCTEUgfCBcCiAJCVBNRF9TRUNUX0NBQ0hFQUJMRSB8IFwKIAkJUE1EX0JJVDQgfCBcCiAJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAogCQlQTURfU0VDVF9BUF9SRUFECi0JLmxvbmcgICBQTURfVFlQRV9TRUNUIHwgXAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRApAQCAtNDQ1LDE3ICs1ODUsMTcgQEAKIAkuc2l6ZQlfX2Zlcm9jZW9uX29sZF9pZF9wcm9jX2luZm8sIC4gLSBfX2Zlcm9jZW9uX29sZF9pZF9wcm9jX2luZm8KICNlbmRpZgogCi0JLnR5cGUJX19mZXJvY2Vvbl9wcm9jX2luZm8sI29iamVjdAotX19mZXJvY2Vvbl9wcm9jX2luZm86CisJLnR5cGUJX184OGZyNTMxX3Byb2NfaW5mbywjb2JqZWN0CitfXzg4ZnI1MzFfcHJvY19pbmZvOgogCS5sb25nCTB4NTYwNTUzMTAKIAkubG9uZwkweGZmZmZmZmYwCi0JLmxvbmcgICBQTURfVFlQRV9TRUNUIHwgXAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCiAJCVBNRF9TRUNUX0JVRkZFUkFCTEUgfCBcCiAJCVBNRF9TRUNUX0NBQ0hFQUJMRSB8IFwKIAkJUE1EX0JJVDQgfCBcCiAJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAogCQlQTURfU0VDVF9BUF9SRUFECi0JLmxvbmcgICBQTURfVFlQRV9TRUNUIHwgXAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRApAQCAtNDYzLDkgKzYwMyw1OSBAQAogCS5sb25nCWNwdV9hcmNoX25hbWUKIAkubG9uZwljcHVfZWxmX25hbWUKIAkubG9uZwlIV0NBUF9TV1B8SFdDQVBfSEFMRnxIV0NBUF9USFVNQnxIV0NBUF9GQVNUX01VTFR8SFdDQVBfRURTUAotCS5sb25nCWNwdV9mZXJvY2Vvbl9uYW1lCisJLmxvbmcJY3B1Xzg4ZnI1MzFfbmFtZQogCS5sb25nCWZlcm9jZW9uX3Byb2Nlc3Nvcl9mdW5jdGlvbnMKIAkubG9uZwl2NHdiaV90bGJfZm5zCiAJLmxvbmcJZmVyb2Nlb25fdXNlcl9mbnMKIAkubG9uZwlmZXJvY2Vvbl9jYWNoZV9mbnMKLQkuc2l6ZQlfX2Zlcm9jZW9uX3Byb2NfaW5mbywgLiAtIF9fZmVyb2Nlb25fcHJvY19pbmZvCisJLnNpemUJX184OGZyNTMxX3Byb2NfaW5mbywgLiAtIF9fODhmcjUzMV9wcm9jX2luZm8KKworCS50eXBlCV9fODhmcjU3MV9wcm9jX2luZm8sI29iamVjdAorX184OGZyNTcxX3Byb2NfaW5mbzoKKwkubG9uZwkweDU2MTU1NzEwCisJLmxvbmcJMHhmZmZmZmZmMAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCisJCVBNRF9TRUNUX0JVRkZFUkFCTEUgfCBcCisJCVBNRF9TRUNUX0NBQ0hFQUJMRSB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJLmxvbmcJUE1EX1RZUEVfU0VDVCB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJYglfX2Zlcm9jZW9uX3NldHVwCisJLmxvbmcJY3B1X2FyY2hfbmFtZQorCS5sb25nCWNwdV9lbGZfbmFtZQorCS5sb25nCUhXQ0FQX1NXUHxIV0NBUF9IQUxGfEhXQ0FQX1RIVU1CfEhXQ0FQX0ZBU1RfTVVMVHxIV0NBUF9FRFNQCisJLmxvbmcJY3B1Xzg4ZnI1NzFfbmFtZQorCS5sb25nCWZlcm9jZW9uX3Byb2Nlc3Nvcl9mdW5jdGlvbnMKKwkubG9uZwl2NHdiaV90bGJfZm5zCisJLmxvbmcJZmVyb2Nlb25fdXNlcl9mbnMKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9jYWNoZV9mbnMKKwkuc2l6ZQlfXzg4ZnI1NzFfcHJvY19pbmZvLCAuIC0gX184OGZyNTcxX3Byb2NfaW5mbworCisJLnR5cGUJX184OGZyMTMxX3Byb2NfaW5mbywjb2JqZWN0CitfXzg4ZnIxMzFfcHJvY19pbmZvOgorCS5sb25nCTB4NTYyNTEzMTAKKwkubG9uZwkweGZmZmZmZmYwCisJLmxvbmcJUE1EX1RZUEVfU0VDVCB8IFwKKwkJUE1EX1NFQ1RfQlVGRkVSQUJMRSB8IFwKKwkJUE1EX1NFQ1RfQ0FDSEVBQkxFIHwgXAorCQlQTURfQklUNCB8IFwKKwkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCisJCVBNRF9TRUNUX0FQX1JFQUQKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAorCQlQTURfQklUNCB8IFwKKwkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCisJCVBNRF9TRUNUX0FQX1JFQUQKKwliCV9fZmVyb2Nlb25fc2V0dXAKKwkubG9uZwljcHVfYXJjaF9uYW1lCisJLmxvbmcJY3B1X2VsZl9uYW1lCisJLmxvbmcJSFdDQVBfU1dQfEhXQ0FQX0hBTEZ8SFdDQVBfVEhVTUJ8SFdDQVBfRkFTVF9NVUxUfEhXQ0FQX0VEU1AKKwkubG9uZwljcHVfODhmcjEzMV9uYW1lCisJLmxvbmcJZmVyb2Nlb25fcHJvY2Vzc29yX2Z1bmN0aW9ucworCS5sb25nCXY0d2JpX3RsYl9mbnMKKwkubG9uZwlmZXJvY2Vvbl91c2VyX2ZucworCS5sb25nCWZlcm9jZW9uX3JhbmdlX2NhY2hlX2ZucworCS5zaXplCV9fODhmcjEzMV9wcm9jX2luZm8sIC4gLSBfXzg4ZnIxMzFfcHJvY19pbmZvCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LWlvcC9ncGlvLmMgYi9hcmNoL2FybS9wbGF0LWlvcC9ncGlvLmMKaW5kZXggZWRhNDM2MC4uNjQwZTQ5OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1pb3AvZ3Bpby5jCisrKyBiL2FyY2gvYXJtL3BsYXQtaW9wL2dwaW8uYwpAQCAtMTEsNiArMTEsMTAgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2lvcDN4eC5oPgogCiB2b2lkIGdwaW9fbGluZV9jb25maWcoaW50IGxpbmUsIGludCBkaXJlY3Rpb24pCkBAIC00NiwzICs1MCw0MiBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZ3Bpb19saW5lX3NldCk7CisKK3N0YXRpYyBpbnQgaW9wM3h4X2dwaW9fZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGdwaW8pCit7CisJZ3Bpb19saW5lX2NvbmZpZyhncGlvLCBHUElPX0lOKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb3AzeHhfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGdwaW8sIGludCBsZXZlbCkKK3sKKwlncGlvX2xpbmVfc2V0KGdwaW8sIGxldmVsKTsKKwlncGlvX2xpbmVfY29uZmlnKGdwaW8sIEdQSU9fT1VUKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb3AzeHhfZ3Bpb19nZXRfdmFsdWUoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgZ3BpbykKK3sKKwlyZXR1cm4gZ3Bpb19saW5lX2dldChncGlvKTsKK30KKworc3RhdGljIHZvaWQgaW9wM3h4X2dwaW9fc2V0X3ZhbHVlKHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGdwaW8sIGludCB2YWx1ZSkKK3sKKwlncGlvX2xpbmVfc2V0KGdwaW8sIHZhbHVlKTsKK30KKworc3RhdGljIHN0cnVjdCBncGlvX2NoaXAgaW9wM3h4X2NoaXAgPSB7CisJLmxhYmVsCQkJPSAiaW9wM3h4IiwKKwkuZGlyZWN0aW9uX2lucHV0CT0gaW9wM3h4X2dwaW9fZGlyZWN0aW9uX2lucHV0LAorCS5nZXQJCQk9IGlvcDN4eF9ncGlvX2dldF92YWx1ZSwKKwkuZGlyZWN0aW9uX291dHB1dAk9IGlvcDN4eF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQsCisJLnNldAkJCT0gaW9wM3h4X2dwaW9fc2V0X3ZhbHVlLAorCS5iYXNlCQkJPSAwLAorCS5uZ3BpbwkJCT0gSU9QM1hYX05fR1BJT1MsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpb3AzeHhfZ3Bpb19zZXR1cCh2b2lkKQoreworCXJldHVybiBncGlvY2hpcF9hZGQoJmlvcDN4eF9jaGlwKTsKK30KK2FyY2hfaW5pdGNhbGwoaW9wM3h4X2dwaW9fc2V0dXApOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvS2NvbmZpZyBiL2FyY2gvYXJtL3BsYXQtbXhjL0tjb25maWcKaW5kZXggYmI2ZTEyNy4uZTE0ZWFhZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1teGMvS2NvbmZpZworKysgYi9hcmNoL2FybS9wbGF0LW14Yy9LY29uZmlnCkBAIC0zLDkgKzMsMTQgQEAKIG1lbnUgIkZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zIgogCiBjaG9pY2UKLQlwcm9tcHQgIk1YQy9pTVggU3lzdGVtIFR5cGUiCisJcHJvbXB0ICJNWEMvaU1YIEJhc2UgVHlwZSIKIAlkZWZhdWx0IEFSQ0hfTVgzCiAKK2NvbmZpZyBBUkNIX01YMgorCWJvb2wgIk1YMi1iYXNlZCIKKwloZWxwCisJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3Igc3lzdGVtcyBiYXNlZCBvbiB0aGUgRnJlZXNjYWxlIGkuTVgyIGZhbWlseQorCiBjb25maWcgQVJDSF9NWDMKIAlib29sICJNWDMtYmFzZWQiCiAJaGVscApAQCAtMTMsNiArMTgsNyBAQAogCiBlbmRjaG9pY2UKIAorc291cmNlICJhcmNoL2FybS9tYWNoLW14Mi9LY29uZmlnIgogc291cmNlICJhcmNoL2FybS9tYWNoLW14My9LY29uZmlnIgogCiBlbmRtZW51CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZSBiL2FyY2gvYXJtL3BsYXQtbXhjL01ha2VmaWxlCmluZGV4IGY5NmRjMDMuLmRiNjZlOWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtbXhjL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL01ha2VmaWxlCkBAIC0zLDQgKzMsNiBAQAogIwogCiAjIENvbW1vbiBzdXBwb3J0Ci1vYmoteSA6PSBpcnEubworb2JqLXkgOj0gaXJxLm8gY2xvY2subyBncGlvLm8gdGltZS5vCisKK29iai0kKENPTkZJR19BUkNIX01YMikgKz0gaW9tdXgtbXgxLW14Mi5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9jbG9jay5jIGIvYXJjaC9hcm0vcGxhdC1teGMvY2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWE4NmZkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvY2xvY2suYwpAQCAtMCwwICsxLDMzMSBAQAorLyoKKyAqIEJhc2VkIG9uIGFyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA0IC0gMjAwNSBOb2tpYSBjb3Jwb3JhdGlvbgorICogV3JpdHRlbiBieSBUdXVra2EgVGlra2FuZW4gPHR1dWtrYS50aWtrYW5lbkBlbGVrdHJvYml0LmNvbT4KKyAqIE1vZGlmaWVkIGZvciBvbWFwIHNoYXJlZCBjbG9jayBmcmFtZXdvcmsgYnkgVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KKyAqIENvcHlyaWdodCAyMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisvKiAjZGVmaW5lIERFQlVHICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zZW1hcGhvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgorCitzdGF0aWMgTElTVF9IRUFEKGNsb2Nrcyk7CitzdGF0aWMgREVGSU5FX01VVEVYKGNsb2Nrc19tdXRleCk7CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3RhbmRhcmQgY2xvY2sgZnVuY3Rpb25zIGRlZmluZWQgaW4gaW5jbHVkZS9saW51eC9jbGsuaAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqIFJldHJpZXZlIGEgY2xvY2sgYnkgbmFtZS4KKyAqCisgKiBOb3RlIHRoYXQgd2UgZmlyc3QgdHJ5IHRvIHVzZSBkZXZpY2UgaWQgb24gdGhlIGJ1cworICogYW5kIGNsb2NrIG5hbWUuIElmIHRoaXMgZmFpbHMsIHdlIHRyeSB0byB1c2UgIjxuYW1lPi48aWQ+Ii4gSWYgdGhpcyBmYWlscywKKyAqIHdlIHRyeSB0byB1c2UgY2xvY2sgbmFtZSBvbmx5LgorICogVGhlIHJlZmVyZW5jZSBjb3VudCB0byB0aGUgY2xvY2sncyBtb2R1bGUgb3duZXIgcmVmIGNvdW50IGlzIGluY3JlbWVudGVkLgorICovCitzdHJ1Y3QgY2xrICpjbGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqaWQpCit7CisJc3RydWN0IGNsayAqcCwgKmNsayA9IEVSUl9QVFIoLUVOT0VOVCk7CisJaW50IGlkbm87CisJY29uc3QgY2hhciAqc3RyOworCisJaWYgKGlkID09IE5VTEwpCisJCXJldHVybiBjbGs7CisKKwlpZiAoZGV2ID09IE5VTEwgfHwgZGV2LT5idXMgIT0gJnBsYXRmb3JtX2J1c190eXBlKQorCQlpZG5vID0gLTE7CisJZWxzZQorCQlpZG5vID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldiktPmlkOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQlpZiAocC0+aWQgPT0gaWRubyAmJgorCQkgICAgc3RyY21wKGlkLCBwLT5uYW1lKSA9PSAwICYmIHRyeV9tb2R1bGVfZ2V0KHAtPm93bmVyKSkgeworCQkJY2xrID0gcDsKKwkJCWdvdG8gZm91bmQ7CisJCX0KKwl9CisKKwlzdHIgPSBzdHJyY2hyKGlkLCAnLicpOworCWlmIChzdHIpIHsKKwkJaW50IGNudCA9IHN0ciAtIGlkOworCQlzdHIrKzsKKwkJaWRubyA9IHNpbXBsZV9zdHJ0b2woc3RyLCBOVUxMLCAxMCk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQkJaWYgKHAtPmlkID09IGlkbm8gJiYKKwkJCSAgICBzdHJsZW4ocC0+bmFtZSkgPT0gY250ICYmCisJCQkgICAgc3RybmNtcChpZCwgcC0+bmFtZSwgY250KSA9PSAwICYmCisJCQkgICAgdHJ5X21vZHVsZV9nZXQocC0+b3duZXIpKSB7CisJCQkJY2xrID0gcDsKKwkJCQlnb3RvIGZvdW5kOworCQkJfQorCQl9CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmY2xvY2tzLCBub2RlKSB7CisJCWlmIChzdHJjbXAoaWQsIHAtPm5hbWUpID09IDAgJiYgdHJ5X21vZHVsZV9nZXQocC0+b3duZXIpKSB7CisJCQljbGsgPSBwOworCQkJZ290byBmb3VuZDsKKwkJfQorCX0KKworCXByaW50ayhLRVJOX1dBUk5JTkcgImNsazogVW5hYmxlIHRvIGdldCByZXF1ZXN0ZWQgY2xvY2s6ICVzXG4iLCBpZCk7CisKK2ZvdW5kOgorCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKKworCXJldHVybiBjbGs7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19nZXQpOworCitzdGF0aWMgdm9pZCBfX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykpCisJCXJldHVybjsKKworCV9fY2xrX2Rpc2FibGUoY2xrLT5wYXJlbnQpOworCV9fY2xrX2Rpc2FibGUoY2xrLT5zZWNvbmRhcnkpOworCisJaWYgKCEoLS1jbGstPnVzZWNvdW50KSAmJiBjbGstPmRpc2FibGUpCisJCWNsay0+ZGlzYWJsZShjbGspOworfQorCitzdGF0aWMgaW50IF9fY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCV9fY2xrX2VuYWJsZShjbGstPnBhcmVudCk7CisJX19jbGtfZW5hYmxlKGNsay0+c2Vjb25kYXJ5KTsKKworCWlmIChjbGstPnVzZWNvdW50KysgPT0gMCAmJiBjbGstPmVuYWJsZSkKKwkJY2xrLT5lbmFibGUoY2xrKTsKKworCXJldHVybiAwOworfQorCisvKiBUaGlzIGZ1bmN0aW9uIGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgY2xvY2sgYW5kIGVuYWJsZXMgdGhlCisgKiBjbG9jayBpZiBub3QgYWxyZWFkeSBlbmFibGVkLiBUaGUgcGFyZW50IGNsb2NrIHRyZWUgaXMgcmVjdXJzaXZlbHkgZW5hYmxlZAorICovCitpbnQgY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaW50IHJldCA9IDA7CisKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlyZXQgPSBfX2Nsa19lbmFibGUoY2xrKTsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChjbGtfZW5hYmxlKTsKKworLyogVGhpcyBmdW5jdGlvbiBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIGNsb2NrIGFuZCBkaXNhYmxlcworICogdGhlIGNsb2NrIHdoZW4gcmVmZXJlbmNlIGNvdW50IGlzIDAuIFRoZSBwYXJlbnQgY2xvY2sgdHJlZSBpcworICogcmVjdXJzaXZlbHkgZGlzYWJsZWQKKyAqLwordm9pZCBjbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCV9fY2xrX2Rpc2FibGUoY2xrKTsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19kaXNhYmxlKTsKKworLyogUmV0cmlldmUgdGhlICpjdXJyZW50KiBjbG9jayByYXRlLiBJZiB0aGUgY2xvY2sgaXRzZWxmCisgKiBkb2VzIG5vdCBwcm92aWRlIGEgc3BlY2lhbCBjYWxjdWxhdGlvbiByb3V0aW5lLCBhc2sKKyAqIGl0cyBwYXJlbnQgYW5kIHNvIG9uLCB1bnRpbCBvbmUgaXMgYWJsZSB0byByZXR1cm4KKyAqIGEgdmFsaWQgY2xvY2sgcmF0ZQorICovCit1bnNpZ25lZCBsb25nIGNsa19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm4gMFVMOworCisJaWYgKGNsay0+Z2V0X3JhdGUpCisJCXJldHVybiBjbGstPmdldF9yYXRlKGNsayk7CisKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKK30KK0VYUE9SVF9TWU1CT0woY2xrX2dldF9yYXRlKTsKKworLyogRGVjcmVtZW50IHRoZSBjbG9jaydzIG1vZHVsZSByZWZlcmVuY2UgY291bnQgKi8KK3ZvaWQgY2xrX3B1dChzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayAmJiAhSVNfRVJSKGNsaykpCisJCW1vZHVsZV9wdXQoY2xrLT5vd25lcik7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19wdXQpOworCisvKiBSb3VuZCB0aGUgcmVxdWVzdGVkIGNsb2NrIHJhdGUgdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkCisgKiByYXRlIHRoYXQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZXF1ZXN0ZWQgcmF0ZS4KKyAqIFRoaXMgaXMgZGVwZW5kZW50IG9uIHRoZSBjbG9jaydzIGN1cnJlbnQgcGFyZW50LgorICovCitsb25nIGNsa19yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSB8fCAhY2xrLT5yb3VuZF9yYXRlKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBjbGstPnJvdW5kX3JhdGUoY2xrLCByYXRlKTsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3JvdW5kX3JhdGUpOworCisvKiBTZXQgdGhlIGNsb2NrIHRvIHRoZSByZXF1ZXN0ZWQgY2xvY2sgcmF0ZS4gVGhlIHJhdGUgbXVzdAorICogbWF0Y2ggYSBzdXBwb3J0ZWQgcmF0ZSBleGFjdGx5IGJhc2VkIG9uIHdoYXQgY2xrX3JvdW5kX3JhdGUgcmV0dXJucworICovCitpbnQgY2xrX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCWludCByZXQgPSAtRUlOVkFMOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspIHx8IGNsay0+c2V0X3JhdGUgPT0gTlVMTCB8fCByYXRlID09IDApCisJCXJldHVybiByZXQ7CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCXJldCA9IGNsay0+c2V0X3JhdGUoY2xrLCByYXRlKTsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChjbGtfc2V0X3JhdGUpOworCisvKiBTZXQgdGhlIGNsb2NrJ3MgcGFyZW50IHRvIGFub3RoZXIgY2xvY2sgc291cmNlICovCitpbnQgY2xrX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJaW50IHJldCA9IC1FSU5WQUw7CisKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykgfHwgcGFyZW50ID09IE5VTEwgfHwKKwkgICAgSVNfRVJSKHBhcmVudCkgfHwgY2xrLT5zZXRfcGFyZW50ID09IE5VTEwpCisJCXJldHVybiByZXQ7CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCXJldCA9IGNsay0+c2V0X3BhcmVudChjbGssIHBhcmVudCk7CisJaWYgKHJldCA9PSAwKQorCQljbGstPnBhcmVudCA9IHBhcmVudDsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChjbGtfc2V0X3BhcmVudCk7CisKKy8qIFJldHJpZXZlIHRoZSBjbG9jaydzIHBhcmVudCBjbG9jayBzb3VyY2UgKi8KK3N0cnVjdCBjbGsgKmNsa19nZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaykKK3sKKwlzdHJ1Y3QgY2xrICpyZXQgPSBOVUxMOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGNsay0+cGFyZW50OworfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0X3BhcmVudCk7CisKKy8qCisgKiBBZGQgYSBuZXcgY2xvY2sgdG8gdGhlIGNsb2NrIHRyZWUuCisgKi8KK2ludCBjbGtfcmVnaXN0ZXIoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCWxpc3RfYWRkKCZjbGstPm5vZGUsICZjbG9ja3MpOworCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChjbGtfcmVnaXN0ZXIpOworCisvKiBSZW1vdmUgYSBjbG9jayBmcm9tIHRoZSBjbG9jayB0cmVlICovCit2b2lkIGNsa191bnJlZ2lzdGVyKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisJbGlzdF9kZWwoJmNsay0+bm9kZSk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTChjbGtfdW5yZWdpc3Rlcik7CisKKyNpZmRlZiBDT05GSUdfUFJPQ19GUworc3RhdGljIGludCBteGNfY2xvY2tfcmVhZF9wcm9jKGNoYXIgKnBhZ2UsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2ZmLAorCQkJCWludCBjb3VudCwgaW50ICplb2YsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNsayAqY2xrcDsKKwljaGFyICpwID0gcGFnZTsKKwlpbnQgbGVuOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjbGtwLCAmY2xvY2tzLCBub2RlKSB7CisJCXAgKz0gc3ByaW50ZihwLCAiJXMtJWQ6XHRcdCVsdSwgJWQiLCBjbGtwLT5uYW1lLCBjbGtwLT5pZCwKKwkJCQljbGtfZ2V0X3JhdGUoY2xrcCksIGNsa3AtPnVzZWNvdW50KTsKKwkJaWYgKGNsa3AtPnBhcmVudCkKKwkJCXAgKz0gc3ByaW50ZihwLCAiLCAlcy0lZFxuIiwgY2xrcC0+cGFyZW50LT5uYW1lLAorCQkJCSAgICAgY2xrcC0+cGFyZW50LT5pZCk7CisJCWVsc2UKKwkJCXAgKz0gc3ByaW50ZihwLCAiXG4iKTsKKwl9CisKKwlsZW4gPSAocCAtIHBhZ2UpIC0gb2ZmOworCWlmIChsZW4gPCAwKQorCQlsZW4gPSAwOworCisJKmVvZiA9IChsZW4gPD0gY291bnQpID8gMSA6IDA7CisJKnN0YXJ0ID0gcGFnZSArIG9mZjsKKworCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG14Y19zZXR1cF9wcm9jX2VudHJ5KHZvaWQpCit7CisJc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyZXM7CisKKwlyZXMgPSBjcmVhdGVfcHJvY19yZWFkX2VudHJ5KCJjcHUvY2xvY2tzIiwgMCwgTlVMTCwKKwkJCQkgICAgIG14Y19jbG9ja19yZWFkX3Byb2MsIE5VTEwpOworCWlmICghcmVzKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGNyZWF0ZSBwcm9jL2NwdS9jbG9ja3NcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2xhdGVfaW5pdGNhbGwobXhjX3NldHVwX3Byb2NfZW50cnkpOworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9ncGlvLmMgYi9hcmNoL2FybS9wbGF0LW14Yy9ncGlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE3NzM2NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2dwaW8uYwpAQCAtMCwwICsxLDI1MyBAQAorLyoKKyAqIE1YQyBHUElPIHN1cHBvcnQuIChjKSAyMDA4IERhbmllbCBNYWNrIDxkYW5pZWxAY2FpYXEuZGU+CisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIEJhc2VkIG9uIGNvZGUgZnJvbSBGcmVlc2NhbGUsCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9idWcuaD4KKworc3RhdGljIHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpteGNfZ3Bpb19wb3J0czsKK3N0YXRpYyBpbnQgZ3Bpb190YWJsZV9zaXplOworCisvKiBOb3RlOiBUaGlzIGRyaXZlciBhc3N1bWVzIDMyIEdQSU9zIGFyZSBoYW5kbGVkIGluIG9uZSByZWdpc3RlciAqLworCitzdGF0aWMgdm9pZCBfY2xlYXJfZ3Bpb19pcnFzdGF0dXMoc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQsIHUzMiBpbmRleCkKK3sKKwlfX3Jhd193cml0ZWwoMSA8PCBpbmRleCwgcG9ydC0+YmFzZSArIEdQSU9fSVNSKTsKK30KKworc3RhdGljIHZvaWQgX3NldF9ncGlvX2lycWVuYWJsZShzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCwgdTMyIGluZGV4LAorCQkJCWludCBlbmFibGUpCit7CisJdTMyIGw7CisKKwlsID0gX19yYXdfcmVhZGwocG9ydC0+YmFzZSArIEdQSU9fSU1SKTsKKwlsID0gKGwgJiAofigxIDw8IGluZGV4KSkpIHwgKCEhZW5hYmxlIDw8IGluZGV4KTsKKwlfX3Jhd193cml0ZWwobCwgcG9ydC0+YmFzZSArIEdQSU9fSU1SKTsKK30KKworc3RhdGljIHZvaWQgZ3Bpb19hY2tfaXJxKHUzMiBpcnEpCit7CisJdTMyIGdwaW8gPSBpcnFfdG9fZ3BpbyhpcnEpOworCV9jbGVhcl9ncGlvX2lycXN0YXR1cygmbXhjX2dwaW9fcG9ydHNbZ3BpbyAvIDMyXSwgZ3BpbyAmIDB4MWYpOworfQorCitzdGF0aWMgdm9pZCBncGlvX21hc2tfaXJxKHUzMiBpcnEpCit7CisJdTMyIGdwaW8gPSBpcnFfdG9fZ3BpbyhpcnEpOworCV9zZXRfZ3Bpb19pcnFlbmFibGUoJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl0sIGdwaW8gJiAweDFmLCAwKTsKK30KKworc3RhdGljIHZvaWQgZ3Bpb191bm1hc2tfaXJxKHUzMiBpcnEpCit7CisJdTMyIGdwaW8gPSBpcnFfdG9fZ3BpbyhpcnEpOworCV9zZXRfZ3Bpb19pcnFlbmFibGUoJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl0sIGdwaW8gJiAweDFmLCAxKTsKK30KKworc3RhdGljIGludCBncGlvX3NldF9pcnFfdHlwZSh1MzIgaXJxLCB1MzIgdHlwZSkKK3sKKwl1MzIgZ3BpbyA9IGlycV90b19ncGlvKGlycSk7CisJc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQgPSAmbXhjX2dwaW9fcG9ydHNbZ3BpbyAvIDMyXTsKKwl1MzIgYml0LCB2YWw7CisJaW50IGVkZ2U7CisJdm9pZCBfX2lvbWVtICpyZWcgPSBwb3J0LT5iYXNlOworCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBJUlFUX1JJU0lORzoKKwkJZWRnZSA9IEdQSU9fSU5UX1JJU0VfRURHRTsKKwkJYnJlYWs7CisJY2FzZSBJUlFUX0ZBTExJTkc6CisJCWVkZ2UgPSBHUElPX0lOVF9GQUxMX0VER0U7CisJCWJyZWFrOworCWNhc2UgSVJRVF9MT1c6CisJCWVkZ2UgPSBHUElPX0lOVF9MT1dfTEVWOworCQlicmVhazsKKwljYXNlIElSUVRfSElHSDoKKwkJZWRnZSA9IEdQSU9fSU5UX0hJR0hfTEVWOworCQlicmVhazsKKwlkZWZhdWx0OgkvKiB0aGlzIGluY2x1ZGVzIElSUVRfQk9USEVER0UgKi8KKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVnICs9IEdQSU9fSUNSMSArICgoZ3BpbyAmIDB4MTApID4+IDIpOyAvKiBsb3dlciBvciB1cHBlciByZWdpc3RlciAqLworCWJpdCA9IGdwaW8gJiAweGY7CisJdmFsID0gX19yYXdfcmVhZGwocmVnKSAmIH4oMHgzIDw8IChiaXQgPDwgMSkpOworCV9fcmF3X3dyaXRlbCh2YWwgfCAoZWRnZSA8PCAoYml0IDw8IDEpKSwgcmVnKTsKKwlfY2xlYXJfZ3Bpb19pcnFzdGF0dXMocG9ydCwgZ3BpbyAmIDB4MWYpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIGhhbmRsZSBuIGludGVycnVwdHMgaW4gb25lIHN0YXR1cyByZWdpc3RlciAqLworc3RhdGljIHZvaWQgbXhjX2dwaW9faXJxX2hhbmRsZXIoc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQsIHUzMiBpcnFfc3RhdCkKK3sKKwl1MzIgZ3Bpb19pcnFfbm87CisKKwlncGlvX2lycV9ubyA9IHBvcnQtPnZpcnR1YWxfaXJxX3N0YXJ0OworCWZvciAoOyBpcnFfc3RhdCAhPSAwOyBpcnFfc3RhdCA+Pj0gMSwgZ3Bpb19pcnFfbm8rKykgeworCisJCWlmICgoaXJxX3N0YXQgJiAxKSA9PSAwKQorCQkJY29udGludWU7CisKKwkJQlVHX09OKCEoaXJxX2Rlc2NbZ3Bpb19pcnFfbm9dLmhhbmRsZV9pcnEpKTsKKwkJaXJxX2Rlc2NbZ3Bpb19pcnFfbm9dLmhhbmRsZV9pcnEoZ3Bpb19pcnFfbm8sCisJCQkJJmlycV9kZXNjW2dwaW9faXJxX25vXSk7CisJfQorfQorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgzCisvKiBNWDMgaGFzIG9uZSBpbnRlcnJ1cHQgKnBlciogZ3BpbyBwb3J0ICovCitzdGF0aWMgdm9pZCBteDNfZ3Bpb19pcnFfaGFuZGxlcih1MzIgaXJxLCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCit7CisJdTMyIGlycV9zdGF0OworCXN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0ID0gKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICopZ2V0X2lycV9kYXRhKGlycSk7CisKKwlpcnFfc3RhdCA9IF9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0lTUikgJgorCQkJX19yYXdfcmVhZGwocG9ydC0+YmFzZSArIEdQSU9fSU1SKTsKKwlCVUdfT04oIWlycV9zdGF0KTsKKwlteGNfZ3Bpb19pcnFfaGFuZGxlcihwb3J0LCBpcnFfc3RhdCk7Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorLyogTVgyIGhhcyBvbmUgaW50ZXJydXB0ICpmb3IgYWxsKiBncGlvIHBvcnRzICovCitzdGF0aWMgdm9pZCBteDJfZ3Bpb19pcnFfaGFuZGxlcih1MzIgaXJxLCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCit7CisJaW50IGk7CisJdTMyIGlycV9tc2ssIGlycV9zdGF0OworCXN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0ID0gKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICopZ2V0X2lycV9kYXRhKGlycSk7CisKKwkvKiB3YWxrIHRocm91Z2ggYWxsIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXJzICovCisJZm9yIChpID0gMDsgaSA8IGdwaW9fdGFibGVfc2l6ZTsgaSsrKSB7CisJCWlycV9tc2sgPSBfX3Jhd19yZWFkbChwb3J0W2ldLmJhc2UgKyBHUElPX0lNUik7CisJCWlmICghaXJxX21zaykKKwkJCWNvbnRpbnVlOworCisJCWlycV9zdGF0ID0gX19yYXdfcmVhZGwocG9ydFtpXS5iYXNlICsgR1BJT19JU1IpICYgaXJxX21zazsKKwkJaWYgKGlycV9zdGF0KQorCQkJbXhjX2dwaW9faXJxX2hhbmRsZXIoJnBvcnRbaV0sIGlycV9zdGF0KTsKKwl9Cit9CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBncGlvX2lycV9jaGlwID0geworCS5hY2sgPSBncGlvX2Fja19pcnEsCisJLm1hc2sgPSBncGlvX21hc2tfaXJxLAorCS51bm1hc2sgPSBncGlvX3VubWFza19pcnEsCisJLnNldF90eXBlID0gZ3Bpb19zZXRfaXJxX3R5cGUsCit9OworCitzdGF0aWMgdm9pZCBfc2V0X2dwaW9fZGlyZWN0aW9uKHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCwKKwkJCQlpbnQgZGlyKQoreworCXN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0ID0KKwkJY29udGFpbmVyX29mKGNoaXAsIHN0cnVjdCBteGNfZ3Bpb19wb3J0LCBjaGlwKTsKKwl1MzIgbDsKKworCWwgPSBfX3Jhd19yZWFkbChwb3J0LT5iYXNlICsgR1BJT19HRElSKTsKKwlpZiAoZGlyKQorCQlsIHw9IDEgPDwgb2Zmc2V0OworCWVsc2UKKwkJbCAmPSB+KDEgPDwgb2Zmc2V0KTsKKwlfX3Jhd193cml0ZWwobCwgcG9ydC0+YmFzZSArIEdQSU9fR0RJUik7Cit9CisKK3N0YXRpYyB2b2lkIG14Y19ncGlvX3NldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQsIGludCB2YWx1ZSkKK3sKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9CisJCWNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCwgY2hpcCk7CisJdm9pZCBfX2lvbWVtICpyZWcgPSBwb3J0LT5iYXNlICsgR1BJT19EUjsKKwl1MzIgbDsKKworCWwgPSAoX19yYXdfcmVhZGwocmVnKSAmICh+KDEgPDwgb2Zmc2V0KSkpIHwgKHZhbHVlIDw8IG9mZnNldCk7CisJX19yYXdfd3JpdGVsKGwsIHJlZyk7Cit9CisKK3N0YXRpYyBpbnQgbXhjX2dwaW9fZ2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9CisJCWNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCwgY2hpcCk7CisKKwlyZXR1cm4gKF9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0RSKSA+PiBvZmZzZXQpICYgMTsKK30KKworc3RhdGljIGludCBteGNfZ3Bpb19kaXJlY3Rpb25faW5wdXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0KQoreworCV9zZXRfZ3Bpb19kaXJlY3Rpb24oY2hpcCwgb2Zmc2V0LCAwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBteGNfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCisJCQkJICAgICB1bnNpZ25lZCBvZmZzZXQsIGludCB2YWx1ZSkKK3sKKwlfc2V0X2dwaW9fZGlyZWN0aW9uKGNoaXAsIG9mZnNldCwgMSk7CisJbXhjX2dwaW9fc2V0KGNoaXAsIG9mZnNldCwgdmFsdWUpOworCXJldHVybiAwOworfQorCitpbnQgX19pbml0IG14Y19ncGlvX2luaXQoc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQsIGludCBjbnQpCit7CisJaW50IGksIGo7CisKKwkvKiBzYXZlIGZvciBsb2NhbCB1c2FnZSAqLworCW14Y19ncGlvX3BvcnRzID0gcG9ydDsKKwlncGlvX3RhYmxlX3NpemUgPSBjbnQ7CisKKwlwcmludGsoS0VSTl9JTkZPICJNWEMgR1BJTyBoYXJkd2FyZVxuIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKKwkJLyogZGlzYWJsZSB0aGUgaW50ZXJydXB0IGFuZCBjbGVhciB0aGUgc3RhdHVzICovCisJCV9fcmF3X3dyaXRlbCgwLCBwb3J0W2ldLmJhc2UgKyBHUElPX0lNUik7CisJCV9fcmF3X3dyaXRlbCh+MCwgcG9ydFtpXS5iYXNlICsgR1BJT19JU1IpOworCQlmb3IgKGogPSBwb3J0W2ldLnZpcnR1YWxfaXJxX3N0YXJ0OworCQkJaiA8IHBvcnRbaV0udmlydHVhbF9pcnFfc3RhcnQgKyAzMjsgaisrKSB7CisJCQlzZXRfaXJxX2NoaXAoaiwgJmdwaW9faXJxX2NoaXApOworCQkJc2V0X2lycV9oYW5kbGVyKGosIGhhbmRsZV9lZGdlX2lycSk7CisJCQlzZXRfaXJxX2ZsYWdzKGosIElSUUZfVkFMSUQpOworCQl9CisKKwkJLyogcmVnaXN0ZXIgZ3BpbyBjaGlwICovCisJCXBvcnRbaV0uY2hpcC5kaXJlY3Rpb25faW5wdXQgPSBteGNfZ3Bpb19kaXJlY3Rpb25faW5wdXQ7CisJCXBvcnRbaV0uY2hpcC5kaXJlY3Rpb25fb3V0cHV0ID0gbXhjX2dwaW9fZGlyZWN0aW9uX291dHB1dDsKKwkJcG9ydFtpXS5jaGlwLmdldCA9IG14Y19ncGlvX2dldDsKKwkJcG9ydFtpXS5jaGlwLnNldCA9IG14Y19ncGlvX3NldDsKKwkJcG9ydFtpXS5jaGlwLmJhc2UgPSBpICogMzI7CisJCXBvcnRbaV0uY2hpcC5uZ3BpbyA9IDMyOworCisJCS8qIGl0cyBhIHNlcmlvdXMgY29uZmlndXJhdGlvbiBidWcgd2hlbiBpdCBmYWlscyAqLworCQlCVUdfT04oIGdwaW9jaGlwX2FkZCgmcG9ydFtpXS5jaGlwKSA8IDAgKTsKKworI2lmZGVmIENPTkZJR19BUkNIX01YMworCQkvKiBzZXR1cCBvbmUgaGFuZGxlciBmb3IgZWFjaCBlbnRyeSAqLworCQlzZXRfaXJxX2NoYWluZWRfaGFuZGxlcihwb3J0W2ldLmlycSwgbXgzX2dwaW9faXJxX2hhbmRsZXIpOworCQlzZXRfaXJxX2RhdGEocG9ydFtpXS5pcnEsICZwb3J0W2ldKTsKKyNlbmRpZgorCX0KKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorCS8qIHNldHVwIG9uZSBoYW5kbGVyIGZvciBhbGwgR1BJTyBpbnRlcnJ1cHRzICovCisJc2V0X2lycV9jaGFpbmVkX2hhbmRsZXIocG9ydFswXS5pcnEsIG14Ml9ncGlvX2lycV9oYW5kbGVyKTsKKwlzZXRfaXJxX2RhdGEocG9ydFswXS5pcnEsIHBvcnQpOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9pb211eC1teDEtbXgyLmMgYi9hcmNoL2FybS9wbGF0LW14Yy9pb211eC1teDEtbXgyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk4NTU3MQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2lvbXV4LW14MS1teDIuYwpAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqICBhcmNoL2FybS9tYWNoLW14Yy9nZW5lcmljLmMKKyAqCisgKiAgYXV0aG9yOiBTYXNjaGEgSGF1ZXIKKyAqICBDcmVhdGVkOiBhcHJpbCAyMHRoLCAyMDA0CisgKiAgQ29weXJpZ2h0OiBTeW5lcnRyb25peHggR21iSAorICoKKyAqICBDb21tb24gY29kZSBmb3IgaS5NWCBtYWNoaW5lcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14MS1teDIuaD4KKwordm9pZCBteGNfZ3Bpb19tb2RlKGludCBncGlvX21vZGUpCit7CisJdW5zaWduZWQgaW50IHBpbiA9IGdwaW9fbW9kZSAmIEdQSU9fUElOX01BU0s7CisJdW5zaWduZWQgaW50IHBvcnQgPSAoZ3Bpb19tb2RlICYgR1BJT19QT1JUX01BU0spID4+IEdQSU9fUE9SVF9TSElGVDsKKwl1bnNpZ25lZCBpbnQgb2NyID0gKGdwaW9fbW9kZSAmIEdQSU9fT0NSX01BU0spID4+IEdQSU9fT0NSX1NISUZUOworCXVuc2lnbmVkIGludCB0bXA7CisKKwkvKiBQdWxsdXAgZW5hYmxlICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX1BVRU4ocG9ydCkpOworCWlmIChncGlvX21vZGUgJiBHUElPX1BVRU4pCisJCXRtcCB8PSAoMSA8PCBwaW4pOworCWVsc2UKKwkJdG1wICY9IH4oMSA8PCBwaW4pOworCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19QVUVOKHBvcnQpKTsKKworCS8qIERhdGEgZGlyZWN0aW9uICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX0RESVIocG9ydCkpOworCWlmIChncGlvX21vZGUgJiBHUElPX09VVCkKKwkJdG1wIHw9IDEgPDwgcGluOworCWVsc2UKKwkJdG1wICY9IH4oMSA8PCBwaW4pOworCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19ERElSKHBvcnQpKTsKKworCS8qIFByaW1hcnkgLyBhbHRlcm5hdGUgZnVuY3Rpb24gKi8KKwl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfR1BSKHBvcnQpKTsKKwlpZiAoZ3Bpb19tb2RlICYgR1BJT19BRikKKwkJdG1wIHw9ICgxIDw8IHBpbik7CisJZWxzZQorCQl0bXAgJj0gfigxIDw8IHBpbik7CisJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX0dQUihwb3J0KSk7CisKKwkvKiB1c2UgYXMgZ3Bpbz8gKi8KKwl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfR0lVUyhwb3J0KSk7CisJaWYgKGdwaW9fbW9kZSAmIChHUElPX1BGIHwgR1BJT19BRikpCisJCXRtcCAmPSB+KDEgPDwgcGluKTsKKwllbHNlCisJCXRtcCB8PSAoMSA8PCBwaW4pOworCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19HSVVTKHBvcnQpKTsKKworCWlmIChwaW4gPCAxNikgeworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfT0NSMShwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9IChvY3IgPDwgKHBpbiAqIDIpKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX09DUjEocG9ydCkpOworCisJCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkExKHBvcnQpKTsKKwkJdG1wICY9IH4oMyA8PCAocGluICogMikpOworCQl0bXAgfD0gKChncGlvX21vZGUgPj4gR1BJT19BT1VUX1NISUZUKSAmIDMpIDw8IChwaW4gKiAyKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX0lDT05GQTEocG9ydCkpOworCisJCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIxKHBvcnQpKTsKKwkJdG1wICY9IH4oMyA8PCAocGluICogMikpOworCQl0bXAgfD0gKChncGlvX21vZGUgPj4gR1BJT19CT1VUX1NISUZUKSAmIDMpIDw8IChwaW4gKiAyKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX0lDT05GQjEocG9ydCkpOworCX0gZWxzZSB7CisJCXBpbiAtPSAxNjsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfT0NSMihwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9IChvY3IgPDwgKHBpbiAqIDIpKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX09DUjIocG9ydCkpOworCisJCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkEyKHBvcnQpKTsKKwkJdG1wICY9IH4oMyA8PCAocGluICogMikpOworCQl0bXAgfD0gKChncGlvX21vZGUgPj4gR1BJT19BT1VUX1NISUZUKSAmIDMpIDw8IChwaW4gKiAyKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX0lDT05GQTIocG9ydCkpOworCisJCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIyKHBvcnQpKTsKKwkJdG1wICY9IH4oMyA8PCAocGluICogMikpOworCQl0bXAgfD0gKChncGlvX21vZGUgPj4gR1BJT19CT1VUX1NISUZUKSAmIDMpIDw8IChwaW4gKiAyKTsKKwkJX19yYXdfd3JpdGVsKHRtcCwgVkFfR1BJT19CQVNFICsgTVhDX0lDT05GQjIocG9ydCkpOworCX0KK30KK0VYUE9SVF9TWU1CT0wobXhjX2dwaW9fbW9kZSk7CisKK2ludCBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKGNvbnN0IGludCAqcGluX2xpc3QsIHVuc2lnbmVkIGNvdW50LAorCQkJCWludCBhbGxvY19tb2RlLCBjb25zdCBjaGFyICpsYWJlbCkKK3sKKwljb25zdCBpbnQgKnAgPSBwaW5fbGlzdDsKKwlpbnQgaTsKKwl1bnNpZ25lZCBncGlvOworCXVuc2lnbmVkIG1vZGU7CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQlncGlvID0gKnAgJiAoR1BJT19QSU5fTUFTSyB8IEdQSU9fUE9SVF9NQVNLKTsKKwkJbW9kZSA9ICpwICYgfihHUElPX1BJTl9NQVNLIHwgR1BJT19QT1JUX01BU0spOworCisJCWlmIChncGlvID49IChHUElPX1BPUlRfTUFYICsgMSkgKiAzMikKKwkJCWdvdG8gc2V0dXBfZXJyb3I7CisKKwkJaWYgKGFsbG9jX21vZGUgJiBNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UpCisJCQlncGlvX2ZyZWUoZ3Bpbyk7CisJCWVsc2UgaWYgKCEoYWxsb2NfbW9kZSAmIE1YQ19HUElPX0FMTE9DX01PREVfTk9fQUxMT0MpKQorCQkJaWYgKGdwaW9fcmVxdWVzdChncGlvLCBsYWJlbCkKKwkJCSAgICYmICEoYWxsb2NfbW9kZSAmIE1YQ19HUElPX0FMTE9DX01PREVfVFJZX0FMTE9DKSkKKwkJCQlnb3RvIHNldHVwX2Vycm9yOworCisJCWlmICghKGFsbG9jX21vZGUgJiAoTVhDX0dQSU9fQUxMT0NfTU9ERV9BTExPQ19PTkxZIHwKKwkJCQkgICAgTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFKSkpCisJCQlteGNfZ3Bpb19tb2RlKGdwaW8gfCBtb2RlKTsKKworCQlwKys7CisJfQorCXJldHVybiAwOworCitzZXR1cF9lcnJvcjoKKwlpZiAoYWxsb2NfbW9kZSAmIChNWENfR1BJT19BTExPQ19NT0RFX05PX0FMTE9DIHwKKwkgICAgTVhDX0dQSU9fQUxMT0NfTU9ERV9UUllfQUxMT0MpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXdoaWxlIChwICE9IHBpbl9saXN0KSB7CisJCXAtLTsKKwkJZ3BpbyA9ICpwICYgKEdQSU9fUElOX01BU0sgfCBHUElPX1BPUlRfTUFTSyk7CisJCWdwaW9fZnJlZShncGlvKTsKKwl9CisKKwlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyk7CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jIGIvYXJjaC9hcm0vcGxhdC1teGMvaXJxLmMKaW5kZXggMmFkNWE2OS4uMWZiZTAxZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1teGMvaXJxLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvaXJxLmMKQEAgLTEsMjQgKzEsNTkgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotLyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgogCisjZGVmaW5lIEFWSUNfQkFTRQkJSU9fQUREUkVTUyhBVklDX0JBU0VfQUREUikKKyNkZWZpbmUgQVZJQ19JTlRDTlRMCQkoQVZJQ19CQVNFICsgMHgwMCkJLyogaW50IGNvbnRyb2wgcmVnICovCisjZGVmaW5lIEFWSUNfTklNQVNLCQkoQVZJQ19CQVNFICsgMHgwNCkJLyogaW50IG1hc2sgcmVnICovCisjZGVmaW5lIEFWSUNfSU5URU5OVU0JCShBVklDX0JBU0UgKyAweDA4KQkvKiBpbnQgZW5hYmxlIG51bWJlciByZWcgKi8KKyNkZWZpbmUgQVZJQ19JTlRESVNOVU0JCShBVklDX0JBU0UgKyAweDBDKQkvKiBpbnQgZGlzYWJsZSBudW1iZXIgcmVnICovCisjZGVmaW5lIEFWSUNfSU5URU5BQkxFSAkJKEFWSUNfQkFTRSArIDB4MTApCS8qIGludCBlbmFibGUgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRFTkFCTEVMCQkoQVZJQ19CQVNFICsgMHgxNCkJLyogaW50IGVuYWJsZSByZWcgbG93ICovCisjZGVmaW5lIEFWSUNfSU5UVFlQRUgJCShBVklDX0JBU0UgKyAweDE4KQkvKiBpbnQgdHlwZSByZWcgaGlnaCAqLworI2RlZmluZSBBVklDX0lOVFRZUEVMCQkoQVZJQ19CQVNFICsgMHgxQykJLyogaW50IHR5cGUgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFk3CShBVklDX0JBU0UgKyAweDIwKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw3ICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTYJKEFWSUNfQkFTRSArIDB4MjQpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDYgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNQkoQVZJQ19CQVNFICsgMHgyOCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNSAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFk0CShBVklDX0JBU0UgKyAweDJDKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw0ICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTMJKEFWSUNfQkFTRSArIDB4MzApCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDMgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMgkoQVZJQ19CQVNFICsgMHgzNCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMiAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFkxCShBVklDX0JBU0UgKyAweDM4KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwxICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTAJKEFWSUNfQkFTRSArIDB4M0MpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDAgKi8KKyNkZWZpbmUgQVZJQ19OSVZFQ1NSCQkoQVZJQ19CQVNFICsgMHg0MCkJLyogbm9ybSBpbnQgdmVjdG9yL3N0YXR1cyAqLworI2RlZmluZSBBVklDX0ZJVkVDU1IJCShBVklDX0JBU0UgKyAweDQ0KQkvKiBmYXN0IGludCB2ZWN0b3Ivc3RhdHVzICovCisjZGVmaW5lIEFWSUNfSU5UU1JDSAkJKEFWSUNfQkFTRSArIDB4NDgpCS8qIGludCBzb3VyY2UgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRTUkNMCQkoQVZJQ19CQVNFICsgMHg0QykJLyogaW50IHNvdXJjZSByZWcgbG93ICovCisjZGVmaW5lIEFWSUNfSU5URlJDSAkJKEFWSUNfQkFTRSArIDB4NTApCS8qIGludCBmb3JjZSByZWcgaGlnaCAqLworI2RlZmluZSBBVklDX0lOVEZSQ0wJCShBVklDX0JBU0UgKyAweDU0KQkvKiBpbnQgZm9yY2UgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX05JUE5ESAkJKEFWSUNfQkFTRSArIDB4NTgpCS8qIG5vcm0gaW50IHBlbmRpbmcgaGlnaCAqLworI2RlZmluZSBBVklDX05JUE5ETAkJKEFWSUNfQkFTRSArIDB4NUMpCS8qIG5vcm0gaW50IHBlbmRpbmcgbG93ICovCisjZGVmaW5lIEFWSUNfRklQTkRICQkoQVZJQ19CQVNFICsgMHg2MCkJLyogZmFzdCBpbnQgcGVuZGluZyBoaWdoICovCisjZGVmaW5lIEFWSUNfRklQTkRMCQkoQVZJQ19CQVNFICsgMHg2NCkJLyogZmFzdCBpbnQgcGVuZGluZyBsb3cgKi8KKworI2RlZmluZSBTWVNURU1fUFJFVl9SRUcJCUlPX0FERFJFU1MoSUlNX0JBU0VfQUREUiArIDB4MjApCisjZGVmaW5lIFNZU1RFTV9TUkVWX1JFRwkJSU9fQUREUkVTUyhJSU1fQkFTRV9BRERSICsgMHgyNCkKKyNkZWZpbmUgSUlNX1BST0RfUkVWX1NICQkzCisjZGVmaW5lIElJTV9QUk9EX1JFVl9MRU4JNQorCiAvKiBEaXNhYmxlIGludGVycnVwdCBudW1iZXIgImlycSIgaW4gdGhlIEFWSUMgKi8KIHN0YXRpYyB2b2lkIG14Y19tYXNrX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewpAQCAtMzIsNyArNjcsNyBAQAogfQogCiBzdGF0aWMgc3RydWN0IGlycV9jaGlwIG14Y19hdmljX2NoaXAgPSB7Ci0JLm1hc2tfYWNrID0gbXhjX21hc2tfaXJxLAorCS5hY2sgPSBteGNfbWFza19pcnEsCiAJLm1hc2sgPSBteGNfbWFza19pcnEsCiAJLnVubWFzayA9IG14Y191bm1hc2tfaXJxLAogfTsKQEAgLTcxLDUgKzEwNiw4IEBACiAJcmVnIHw9ICgweEYgPDwgMjgpOwogCV9fcmF3X3dyaXRlbChyZWcsIEFWSUNfTklQUklPUklUWTYpOwogCisJLyogaW5pdCBhcmNoaXRlY3R1cmVzIGNoYWluZWQgaW50ZXJydXB0IGhhbmRsZXIgKi8KKwlteGNfcmVnaXN0ZXJfZ3Bpb3MoKTsKKwogCXByaW50ayhLRVJOX0lORk8gIk1YQyBJUlEgaW5pdGlhbGl6ZWRcbiIpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvdGltZS5jIGIvYXJjaC9hcm0vcGxhdC1teGMvdGltZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZjg2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LW14Yy90aW1lLmMKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiAgbGludXgvYXJjaC9hcm0vcGxhdC1teGMvdGltZS5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwMC0yMDAxIERlZXAgQmx1ZSBTb2x1dGlvbnMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDIgU2hhbmUgTmF5IChzaGFuZUBtaW5pcmwuY29tKQorICogIENvcHlyaWdodCAoQykgMjAwNi0yMDA3IFBhdmVsIFBpc2EgKHBwaXNhQHBpa3Jvbi5jb20pCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEp1ZXJnZW4gQmVpc2VydCAoa2VybmVsQHBlbmd1dHJvbml4LmRlKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXhjX3RpbWVyLmg+CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlIGNsb2NrZXZlbnRfbXhjOworc3RhdGljIGVudW0gY2xvY2tfZXZlbnRfbW9kZSBjbG9ja2V2ZW50X21vZGUgPSBDTE9DS19FVlRfTU9ERV9VTlVTRUQ7CisKKy8qIGNsb2NrIHNvdXJjZSBmb3IgdGhlIHRpbWVyICovCitzdGF0aWMgc3RydWN0IGNsayAqdGltZXJfY2xrOworCisvKiBjbG9jayBzb3VyY2UgKi8KKworc3RhdGljIGN5Y2xlX3QgbXhjX2dldF9jeWNsZXModm9pZCkKK3sKKwlyZXR1cm4gX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ04pOworfQorCitzdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX214YyA9IHsKKwkubmFtZSAJCT0gIm14Y190aW1lcjEiLAorCS5yYXRpbmcJCT0gMjAwLAorCS5yZWFkCQk9IG14Y19nZXRfY3ljbGVzLAorCS5tYXNrCQk9IENMT0NLU09VUkNFX01BU0soMzIpLAorCS5zaGlmdCAJCT0gMjAsCisJLmZsYWdzCQk9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTLAorfTsKKworc3RhdGljIGludCBfX2luaXQgbXhjX2Nsb2Nrc291cmNlX2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgY2xvY2s7CisKKwljbG9jayA9IGNsa19nZXRfcmF0ZSh0aW1lcl9jbGspOworCisJY2xvY2tzb3VyY2VfbXhjLm11bHQgPSBjbG9ja3NvdXJjZV9oejJtdWx0KGNsb2NrLAorCQkJCQljbG9ja3NvdXJjZV9teGMuc2hpZnQpOworCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV9teGMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIGNsb2NrIGV2ZW50ICovCisKK3N0YXRpYyBpbnQgbXhjX3NldF9uZXh0X2V2ZW50KHVuc2lnbmVkIGxvbmcgZXZ0LAorCQkJICAgICAgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqdW51c2VkKQoreworCXVuc2lnbmVkIGxvbmcgdGNtcDsKKworCXRjbXAgPSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDTikgKyBldnQ7CisJX19yYXdfd3JpdGVsKHRjbXAsIFRJTUVSX0JBU0UgKyBNWENfVENNUCk7CisKKwlyZXR1cm4gKGludCkodGNtcCAtIF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENOKSkgPCAwID8KKwkJCQktRVRJTUUgOiAwOworfQorCisjaWZkZWYgREVCVUcKK3N0YXRpYyBjb25zdCBjaGFyICpjbG9ja19ldmVudF9tb2RlX2xhYmVsW10gPSB7CisJW0NMT0NLX0VWVF9NT0RFX1BFUklPRElDXSA9ICJDTE9DS19FVlRfTU9ERV9QRVJJT0RJQyIsCisJW0NMT0NLX0VWVF9NT0RFX09ORVNIT1RdICA9ICJDTE9DS19FVlRfTU9ERV9PTkVTSE9UIiwKKwlbQ0xPQ0tfRVZUX01PREVfU0hVVERPV05dID0gIkNMT0NLX0VWVF9NT0RFX1NIVVRET1dOIiwKKwlbQ0xPQ0tfRVZUX01PREVfVU5VU0VEXSAgID0gIkNMT0NLX0VWVF9NT0RFX1VOVVNFRCIKK307CisjZW5kaWYgLyogREVCVUcgKi8KKworc3RhdGljIHZvaWQgbXhjX3NldF9tb2RlKGVudW0gY2xvY2tfZXZlbnRfbW9kZSBtb2RlLAorCQkJCXN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJLyoKKwkgKiBUaGUgdGltZXIgaW50ZXJydXB0IGdlbmVyYXRpb24gaXMgZGlzYWJsZWQgYXQgbGVhc3QKKwkgKiBmb3IgZW5vdWdoIHRpbWUgdG8gY2FsbCBteGNfc2V0X25leHRfZXZlbnQoKQorCSAqLworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCS8qIERpc2FibGUgaW50ZXJydXB0IGluIEdQVCBtb2R1bGUgKi8KKwlncHRfaXJxX2Rpc2FibGUoKTsKKworCWlmIChtb2RlICE9IGNsb2NrZXZlbnRfbW9kZSkgeworCQkvKiBTZXQgZXZlbnQgdGltZSBpbnRvIGZhci1mYXIgZnV0dXJlICovCisJCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDTikgLSAzLAorCQkJCVRJTUVSX0JBU0UgKyBNWENfVENNUCk7CisJCS8qIENsZWFyIHBlbmRpbmcgaW50ZXJydXB0ICovCisJCWdwdF9pcnFfYWNrbm93bGVkZ2UoKTsKKwl9CisKKyNpZmRlZiBERUJVRworCXByaW50ayhLRVJOX0lORk8gIm14Y19zZXRfbW9kZTogY2hhbmdpbmcgbW9kZSBmcm9tICVzIHRvICVzXG4iLAorCQljbG9ja19ldmVudF9tb2RlX2xhYmVsW2Nsb2NrZXZlbnRfbW9kZV0sCisJCWNsb2NrX2V2ZW50X21vZGVfbGFiZWxbbW9kZV0pOworI2VuZGlmIC8qIERFQlVHICovCisKKwkvKiBSZW1lbWJlciB0aW1lciBtb2RlICovCisJY2xvY2tldmVudF9tb2RlID0gbW9kZTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNlIENMT0NLX0VWVF9NT0RFX1BFUklPRElDOgorCQlwcmludGsoS0VSTl9FUlIibXhjX3NldF9tb2RlOiBQZXJpb2RpYyBtb2RlIGlzIG5vdCAiCisJCQkJInN1cHBvcnRlZCBmb3IgaS5NWFxuIik7CisJCWJyZWFrOworCWNhc2UgQ0xPQ0tfRVZUX01PREVfT05FU0hPVDoKKwkvKgorCSAqIERvIG5vdCBwdXQgb3ZlcmhlYWQgb2YgaW50ZXJydXB0IGVuYWJsZS9kaXNhYmxlIGludG8KKwkgKiBteGNfc2V0X25leHRfZXZlbnQoKSwgdGhlIGNvcmUgaGFzIGFib3V0IDQgbWludXRlcworCSAqIHRvIGNhbGwgbXhjX3NldF9uZXh0X2V2ZW50KCkgb3Igc2h1dGRvd24gY2xvY2sgYWZ0ZXIKKwkgKiBtb2RlIHN3aXRjaGluZworCSAqLworCQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJCWdwdF9pcnFfZW5hYmxlKCk7CisJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwkJYnJlYWs7CisJY2FzZSBDTE9DS19FVlRfTU9ERV9TSFVURE9XTjoKKwljYXNlIENMT0NLX0VWVF9NT0RFX1VOVVNFRDoKKwljYXNlIENMT0NLX0VWVF9NT0RFX1JFU1VNRToKKwkJLyogTGVmdCBldmVudCBzb3VyY2VzIGRpc2FibGVkLCBubyBtb3JlIGludGVycnVwdHMgYXBwZWFyICovCisJCWJyZWFrOworCX0KK30KKworLyoKKyAqIElSUSBoYW5kbGVyIGZvciB0aGUgdGltZXIKKyAqLworc3RhdGljIGlycXJldHVybl90IG14Y190aW1lcl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCA9ICZjbG9ja2V2ZW50X214YzsKKwl1aW50MzJfdCB0c3RhdDsKKworCXRzdGF0ID0gX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UU1RBVCk7CisKKwlncHRfaXJxX2Fja25vd2xlZGdlKCk7CisKKwlldnQtPmV2ZW50X2hhbmRsZXIoZXZ0KTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gbXhjX3RpbWVyX2lycSA9IHsKKwkubmFtZQkJPSAiaS5NWCBUaW1lciBUaWNrIiwKKwkuZmxhZ3MJCT0gSVJRRl9ESVNBQkxFRCB8IElSUUZfVElNRVIgfCBJUlFGX0lSUVBPTEwsCisJLmhhbmRsZXIJPSBteGNfdGltZXJfaW50ZXJydXB0LAorfTsKKworc3RhdGljIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgY2xvY2tldmVudF9teGMgPSB7CisJLm5hbWUJCT0gIm14Y190aW1lcjEiLAorCS5mZWF0dXJlcwk9IENMT0NLX0VWVF9GRUFUX09ORVNIT1QsCisJLnNoaWZ0CQk9IDMyLAorCS5zZXRfbW9kZQk9IG14Y19zZXRfbW9kZSwKKwkuc2V0X25leHRfZXZlbnQJPSBteGNfc2V0X25leHRfZXZlbnQsCisJLnJhdGluZwkJPSAyMDAsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBteGNfY2xvY2tldmVudF9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgaW50IGNsb2NrOworCisJY2xvY2sgPSBjbGtfZ2V0X3JhdGUodGltZXJfY2xrKTsKKworCWNsb2NrZXZlbnRfbXhjLm11bHQgPSBkaXZfc2MoY2xvY2ssIE5TRUNfUEVSX1NFQywKKwkJCQkJY2xvY2tldmVudF9teGMuc2hpZnQpOworCWNsb2NrZXZlbnRfbXhjLm1heF9kZWx0YV9ucyA9CisJCQljbG9ja2V2ZW50X2RlbHRhMm5zKDB4ZmZmZmZmZmUsICZjbG9ja2V2ZW50X214Yyk7CisJY2xvY2tldmVudF9teGMubWluX2RlbHRhX25zID0KKwkJCWNsb2NrZXZlbnRfZGVsdGEybnMoMHhmZiwgJmNsb2NrZXZlbnRfbXhjKTsKKworCWNsb2NrZXZlbnRfbXhjLmNwdW1hc2sgPSBjcHVtYXNrX29mX2NwdSgwKTsKKworCWNsb2NrZXZlbnRzX3JlZ2lzdGVyX2RldmljZSgmY2xvY2tldmVudF9teGMpOworCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgX19pbml0IG14Y190aW1lcl9pbml0KGNvbnN0IGNoYXIgKmNsa190aW1lcikKK3sKKwl0aW1lcl9jbGsgPSBjbGtfZ2V0KE5VTEwsIGNsa190aW1lcik7CisJaWYgKCF0aW1lcl9jbGspIHsKKwkJcHJpbnRrKEtFUk5fRVJSIkNhbm5vdCBkZXRlcm1pbmUgdGltZXIgY2xvY2suIEdpdmluZyB1cC5cbiIpOworCQlyZXR1cm47CisJfQorCisJY2xrX2VuYWJsZSh0aW1lcl9jbGspOworCisJLyoKKwkgKiBJbml0aWFsaXNlIHRvIGEga25vd24gc3RhdGUgKGFsbCB0aW1lcnMgb2ZmLCBhbmQgdGltaW5nIHJlc2V0KQorCSAqLworCV9fcmF3X3dyaXRlbCgwLCBUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCV9fcmF3X3dyaXRlbCgwLCBUSU1FUl9CQVNFICsgTVhDX1RQUkVSKTsgLyogc2VlIGRhdGFzaGVldCBub3RlICovCisKKwlfX3Jhd193cml0ZWwoVENUTF9GUlIgfAkvKiBmcmVlIHJ1bm5pbmcgKi8KKwkJICAgICBUQ1RMX1ZBTCB8CS8qIHNldCBjbG9ja3NvdXJjZSBhbmQgYXJjaCBzcGVjaWZpYyBiaXRzICovCisJCSAgICAgVENUTF9URU4sCS8qIHN0YXJ0IHRoZSB0aW1lciAqLworCQkgICAgIFRJTUVSX0JBU0UgKyBNWENfVENUTCk7CisKKwkvKiBpbml0IGFuZCByZWdpc3RlciB0aGUgdGltZXIgdG8gdGhlIGZyYW1ld29yayAqLworCW14Y19jbG9ja3NvdXJjZV9pbml0KCk7CisJbXhjX2Nsb2NrZXZlbnRfaW5pdCgpOworCisJLyogTWFrZSBpcnFzIGhhcHBlbiAqLworCXNldHVwX2lycShUSU1FUl9JTlRFUlJVUFQsICZteGNfdGltZXJfaXJxKTsKK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL01ha2VmaWxlIGIvYXJjaC9hcm0vcGxhdC1vbWFwL01ha2VmaWxlCmluZGV4IGJjNjM5YTMuLjJjNDA1MWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvTWFrZWZpbGUKQEAgLTMsNyArMyw3IEBACiAjCiAKICMgQ29tbW9uIHN1cHBvcnQKLW9iai15IDo9IGNvbW1vbi5vIHNyYW0ubyBzcmFtLWZuLm8gY2xvY2subyBkZXZpY2VzLm8gZG1hLm8gbXV4Lm8gZ3Bpby5vIFwKK29iai15IDo9IGNvbW1vbi5vIHNyYW0ubyBjbG9jay5vIGRldmljZXMubyBkbWEubyBtdXgubyBncGlvLm8gXAogCSB1c2IubyBmYi5vCiBvYmotbSA6PQogb2JqLW4gOj0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2Nsb2NrLmMKaW5kZXggMmRiNTU4MC4uYzJlNzQxZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2Nsb2NrLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogIGxpbnV4L2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCiAgKgotICogIENvcHlyaWdodCAoQykgMjAwNCAtIDIwMDUgTm9raWEgY29ycG9yYXRpb24KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgLSAyMDA4IE5va2lhIGNvcnBvcmF0aW9uCiAgKiAgV3JpdHRlbiBieSBUdXVra2EgVGlra2FuZW4gPHR1dWtrYS50aWtrYW5lbkBlbGVrdHJvYml0LmNvbT4KICAqCiAgKiAgTW9kaWZpZWQgZm9yIG9tYXAgc2hhcmVkIGNsb2NrIGZyYW1ld29yayBieSBUb255IExpbmRncmVuIDx0b255QGF0b21pZGUuY29tPgpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogCkBAIC0zMyw0MSArMzQsNiBAQAogCiBzdGF0aWMgc3RydWN0IGNsa19mdW5jdGlvbnMgKmFyY2hfY2xvY2s7CiAKLSNpZmRlZiBDT05GSUdfUE1fREVCVUcKLQotc3RhdGljIHZvaWQgcHJpbnRfcGFyZW50cyhzdHJ1Y3QgY2xrICpjbGspCi17Ci0Jc3RydWN0IGNsayAqcDsKLQlpbnQgcHJpbnRlZCA9IDA7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKLQkJaWYgKHAtPnBhcmVudCA9PSBjbGsgJiYgcC0+dXNlY291bnQpIHsKLQkJCWlmICghY2xrLT51c2Vjb3VudCAmJiAhcHJpbnRlZCkgewotCQkJCXByaW50aygiTUlTTUFUQ0g6ICVzXG4iLCBjbGstPm5hbWUpOwotCQkJCXByaW50ZWQgPSAxOwotCQkJfQotCQkJcHJpbnRrKCJcdCUtMTVzXG4iLCBwLT5uYW1lKTsKLQkJfQotCX0KLX0KLQotdm9pZCBjbGtfcHJpbnRfdXNlY291bnRzKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlzdHJ1Y3QgY2xrICpwOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNsb2NrZndfbG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgewotCQlpZiAocC0+dXNlY291bnQpCi0JCQlwcmludGsoIiUtMTVzOiAlZFxuIiwgcC0+bmFtZSwgcC0+dXNlY291bnQpOwotCQlwcmludF9wYXJlbnRzKHApOwotCi0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNsb2NrZndfbG9jaywgZmxhZ3MpOwotfQotCi0jZW5kaWYKLQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFuZGFyZCBjbG9jayBmdW5jdGlvbnMgZGVmaW5lZCBpbiBpbmNsdWRlL2xpbnV4L2Nsay5oCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNDQ2LDMgKzQxMiw5MyBAQAogCXJldHVybiAwOwogfQogCisjaWYgZGVmaW5lZChDT05GSUdfUE1fREVCVUcpICYmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQorLyoKKyAqCWRlYnVnZnMgc3VwcG9ydCB0byB0cmFjZSBjbG9jayB0cmVlIGhpZXJhcmNoeSBhbmQgYXR0cmlidXRlcworICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqY2xrX2RlYnVnZnNfcm9vdDsKKworc3RhdGljIGludCBjbGtfZGVidWdmc19yZWdpc3Rlcl9vbmUoc3RydWN0IGNsayAqYykKK3sKKwlpbnQgZXJyOworCXN0cnVjdCBkZW50cnkgKmQsICpjaGlsZDsKKwlzdHJ1Y3QgY2xrICpwYSA9IGMtPnBhcmVudDsKKwljaGFyIHNbMjU1XTsKKwljaGFyICpwID0gczsKKworCXAgKz0gc3ByaW50ZihwLCAiJXMiLCBjLT5uYW1lKTsKKwlpZiAoYy0+aWQgIT0gMCkKKwkJc3ByaW50ZihwLCAiOiVkIiwgYy0+aWQpOworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIocywgcGEgPyBwYS0+ZGVudCA6IGNsa19kZWJ1Z2ZzX3Jvb3QpOworCWlmIChJU19FUlIoZCkpCisJCXJldHVybiBQVFJfRVJSKGQpOworCWMtPmRlbnQgPSBkOworCisJZCA9IGRlYnVnZnNfY3JlYXRlX3U4KCJ1c2Vjb3VudCIsIFNfSVJVR08sIGMtPmRlbnQsICh1OCAqKSZjLT51c2Vjb3VudCk7CisJaWYgKElTX0VSUihkKSkgeworCQllcnIgPSBQVFJfRVJSKGQpOworCQlnb3RvIGVycl9vdXQ7CisJfQorCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV91MzIoInJhdGUiLCBTX0lSVUdPLCBjLT5kZW50LCAodTMyICopJmMtPnJhdGUpOworCWlmIChJU19FUlIoZCkpIHsKKwkJZXJyID0gUFRSX0VSUihkKTsKKwkJZ290byBlcnJfb3V0OworCX0KKwlkID0gZGVidWdmc19jcmVhdGVfeDMyKCJmbGFncyIsIFNfSVJVR08sIGMtPmRlbnQsICh1MzIgKikmYy0+ZmxhZ3MpOworCWlmIChJU19FUlIoZCkpIHsKKwkJZXJyID0gUFRSX0VSUihkKTsKKwkJZ290byBlcnJfb3V0OworCX0KKwlyZXR1cm4gMDsKKworZXJyX291dDoKKwlkID0gYy0+ZGVudDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmZC0+ZF9zdWJkaXJzLCBkX3UuZF9jaGlsZCkKKwkJZGVidWdmc19yZW1vdmUoY2hpbGQpOworCWRlYnVnZnNfcmVtb3ZlKGMtPmRlbnQpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY2xrX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGNsayAqYykKK3sKKwlpbnQgZXJyOworCXN0cnVjdCBjbGsgKnBhID0gYy0+cGFyZW50OworCisJaWYgKHBhICYmICFwYS0+ZGVudCkgeworCQllcnIgPSBjbGtfZGVidWdmc19yZWdpc3RlcihwYSk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCWlmICghYy0+ZGVudCkgeworCQllcnIgPSBjbGtfZGVidWdmc19yZWdpc3Rlcl9vbmUoYyk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgY2xrX2RlYnVnZnNfaW5pdCh2b2lkKQoreworCXN0cnVjdCBjbGsgKmM7CisJc3RydWN0IGRlbnRyeSAqZDsKKwlpbnQgZXJyOworCisJZCA9IGRlYnVnZnNfY3JlYXRlX2RpcigiY2xvY2siLCBOVUxMKTsKKwlpZiAoSVNfRVJSKGQpKQorCQlyZXR1cm4gUFRSX0VSUihkKTsKKwljbGtfZGVidWdmc19yb290ID0gZDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoYywgJmNsb2Nrcywgbm9kZSkgeworCQllcnIgPSBjbGtfZGVidWdmc19yZWdpc3RlcihjKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX291dDsKKwl9CisJcmV0dXJuIDA7CitlcnJfb3V0OgorCWRlYnVnZnNfcmVtb3ZlKGNsa19kZWJ1Z2ZzX3Jvb3QpOyAvKiBSRVZJU0lUOiBDbGVhbnVwIGNvcnJlY3RseSAqLworCXJldHVybiBlcnI7Cit9CitsYXRlX2luaXRjYWxsKGNsa19kZWJ1Z2ZzX2luaXQpOworCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUE1fREVCVUcpICYmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL2NvbW1vbi5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2NvbW1vbi5jCmluZGV4IGJkMWNlZjIuLjhkMDQ5MjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9jb21tb24uYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvY29tbW9uLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY29udHJvbC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL211eC5oPgpAQCAtMjQxLDMwICsyNDIsNzAgQEAKIAogLyogR2xvYmFsIGFkZHJlc3MgYmFzZSBzZXR1cCBjb2RlICovCiAKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyAqb21hcDJfZ2xvYmFsczsKKworc3RhdGljIHZvaWQgX19pbml0IF9fb21hcDJfc2V0X2dsb2JhbHModm9pZCkKK3sKKwlvbWFwMl9zZXRfZ2xvYmFsc19tZW1vcnkob21hcDJfZ2xvYmFscyk7CisJb21hcDJfc2V0X2dsb2JhbHNfY29udHJvbChvbWFwMl9nbG9iYWxzKTsKKwlvbWFwMl9zZXRfZ2xvYmFsc19wcmNtKG9tYXAyX2dsb2JhbHMpOworfQorCisjZW5kaWYKKwogI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MjApCisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9nbG9iYWxzIG9tYXAyNDJ4X2dsb2JhbHMgPSB7CisJLnRhcAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoMHg0ODAxNDAwMCksCisJLnNkcmMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDIwX1NEUkNfQkFTRSksCisJLnNtcwk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0MjBfU01TX0JBU0UpLAorCS5jdHJsCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9DVFJMX0JBU0UpLAorCS5wcm0JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDIwX1BSTV9CQVNFKSwKKwkuY20JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDIwX0NNX0JBU0UpLAorfTsKKwogdm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfMjQyeCh2b2lkKQogewotCW9tYXAyX3NkcmNfYmFzZSA9IE9NQVAyNDIwX1NEUkNfQkFTRTsKLQlvbWFwMl9zbXNfYmFzZSA9IE9NQVAyNDIwX1NNU19CQVNFOwotCW9tYXBfY3RybF9iYXNlX3NldChPTUFQMjQyMF9DVFJMX0JBU0UpOworCW9tYXAyX2dsb2JhbHMgPSAmb21hcDI0MnhfZ2xvYmFsczsKKwlfX29tYXAyX3NldF9nbG9iYWxzKCk7CiB9CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MzApCisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9nbG9iYWxzIG9tYXAyNDN4X2dsb2JhbHMgPSB7CisJLnRhcAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoMHg0OTAwYTAwMCksCisJLnNkcmMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDNYX1NEUkNfQkFTRSksCisJLnNtcwk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0M1hfU01TX0JBU0UpLAorCS5jdHJsCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzWF9DVFJMX0JBU0UpLAorCS5wcm0JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDMwX1BSTV9CQVNFKSwKKwkuY20JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDMwX0NNX0JBU0UpLAorfTsKKwogdm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfMjQzeCh2b2lkKQogewotCW9tYXAyX3NkcmNfYmFzZSA9IE9NQVAyNDNYX1NEUkNfQkFTRTsKLQlvbWFwMl9zbXNfYmFzZSA9IE9NQVAyNDNYX1NNU19CQVNFOwotCW9tYXBfY3RybF9iYXNlX3NldChPTUFQMjQzWF9DVFJMX0JBU0UpOworCW9tYXAyX2dsb2JhbHMgPSAmb21hcDI0M3hfZ2xvYmFsczsKKwlfX29tYXAyX3NldF9nbG9iYWxzKCk7CiB9CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0MzApCisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9nbG9iYWxzIG9tYXAzNDN4X2dsb2JhbHMgPSB7CisJLnRhcAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoMHg0ODMwQTAwMCksCisJLnNkcmMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAzNDNYX1NEUkNfQkFTRSksCisJLnNtcwk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDM0M1hfU01TX0JBU0UpLAorCS5jdHJsCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzWF9DVFJMX0JBU0UpLAorCS5wcm0JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAzNDMwX1BSTV9CQVNFKSwKKwkuY20JPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAzNDMwX0NNX0JBU0UpLAorfTsKKwogdm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfMzQzeCh2b2lkKQogewotCW9tYXAyX3NkcmNfYmFzZSA9IE9NQVAzNDNYX1NEUkNfQkFTRTsKLQlvbWFwMl9zbXNfYmFzZSA9IE9NQVAzNDNYX1NNU19CQVNFOwotCW9tYXBfY3RybF9iYXNlX3NldChPTUFQMzQzWF9DVFJMX0JBU0UpOworCW9tYXAyX2dsb2JhbHMgPSAmb21hcDM0M3hfZ2xvYmFsczsKKwlfX29tYXAyX3NldF9nbG9iYWxzKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RldmljZXMuYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9kZXZpY2VzLmMKaW5kZXggNGE1M2Y5Yi4uODEwMDJiNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RldmljZXMuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvZGV2aWNlcy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21lbmVsYXVzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWNic3AuaD4KIAogI2lmCWRlZmluZWQoQ09ORklHX09NQVBfRFNQKSB8fCBkZWZpbmVkKENPTkZJR19PTUFQX0RTUF9NT0RVTEUpCiAKQEAgLTE0NSw2ICsxNDYsNTMgQEAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2lmIGRlZmluZWQoQ09ORklHX09NQVBfTUNCU1ApIHx8IGRlZmluZWQoQ09ORklHX09NQVBfTUNCU1BfTU9EVUxFKQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqKm9tYXBfbWNic3BfZGV2aWNlczsKKwordm9pZCBvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpjb25maWcsCisJCQkJCWludCBzaXplKQoreworCWludCBpOworCisJaWYgKHNpemUgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJSZWdpc3RlcmVkIHRvbyBtYW55IE1jQlNQcyBwbGF0Zm9ybV9kYXRhLiIKKwkJCSIgVXNpbmcgbWF4aW11bSAoJWQpIGF2YWlsYWJsZS5cbiIsCisJCQlPTUFQX01BWF9NQ0JTUF9DT1VOVCk7CisJCXNpemUgPSBPTUFQX01BWF9NQ0JTUF9DT1VOVDsKKwl9CisKKwlvbWFwX21jYnNwX2RldmljZXMgPSBremFsbG9jKHNpemUgKiBzaXplb2Yoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqKSwKKwkJCQkgICAgIEdGUF9LRVJORUwpOworCWlmICghb21hcF9tY2JzcF9kZXZpY2VzKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IHJlZ2lzdGVyIE1jQlNQIGRldmljZXNcbiIpOworCQlyZXR1cm47CisJfQorCisJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworCQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpuZXdfbWNic3A7CisJCWludCByZXQ7CisKKwkJbmV3X21jYnNwID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJvbWFwLW1jYnNwIiwgaSArIDEpOworCQlpZiAoIW5ld19tY2JzcCkKKwkJCWNvbnRpbnVlOworCQluZXdfbWNic3AtPmRldi5wbGF0Zm9ybV9kYXRhID0gJmNvbmZpZ1tpXTsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChuZXdfbWNic3ApOworCQlpZiAocmV0KSB7CisJCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KG5ld19tY2JzcCk7CisJCQljb250aW51ZTsKKwkJfQorCQlvbWFwX21jYnNwX2RldmljZXNbaV0gPSBuZXdfbWNic3A7CisJfQorfQorCisjZWxzZQordm9pZCBvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpjb25maWcsCisJCQkJCWludCBzaXplKQoreyAgfQorI2VuZGlmCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKICNpZglkZWZpbmVkKENPTkZJR19NTUNfT01BUCkgfHwgZGVmaW5lZChDT05GSUdfTU1DX09NQVBfTU9EVUxFKQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9tYXAvZG1hLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG1hLmMKaW5kZXggYzAwZWRhNS4uZmFjOGU5OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb21hcC9kbWEuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBsaW51eC9hcmNoL2FybS9wbGF0LW9tYXAvZG1hLmMKICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgTm9raWEgQ29ycG9yYXRpb24KKyAqIENvcHlyaWdodCAoQykgMjAwMyAtIDIwMDggTm9raWEgQ29ycG9yYXRpb24KICAqIEF1dGhvcjogSnVoYSBZcmrDtmzDpCA8anVoYS55cmpvbGFAbm9raWEuY29tPgogICogRE1BIGNoYW5uZWwgbGlua2luZyBmb3IgMTYxMCBieSBTYW11ZWwgT3J0aXogPHNhbXVlbC5vcnRpekBub2tpYS5jb20+CiAgKiBHcmFwaGljcyBETUEgYW5kIExDRCBETUEgZ3JhcGhpY3MgdHJhbmZvcm1hdGlvbnMKQEAgLTI1LDExICsyNSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC90Yy5oPgogCkBAIC00MywxMyArNDMsMTMgQEAKIGVudW0geyBETUFfQ0hBSU5fU1RBUlRFRCwgRE1BX0NIQUlOX05PVFNUQVJURUQgfTsKICNlbmRpZgogCi0jZGVmaW5lIE9NQVBfRE1BX0FDVElWRQkJMHgwMQotI2RlZmluZSBPTUFQX0RNQV9DQ1JfRU4JCSgxIDw8IDcpCisjZGVmaW5lIE9NQVBfRE1BX0FDVElWRQkJCTB4MDEKKyNkZWZpbmUgT01BUF9ETUFfQ0NSX0VOCQkJKDEgPDwgNykKICNkZWZpbmUgT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLCTB4ZmZlCiAKLSNkZWZpbmUgT01BUF9GVU5DX01VWF9BUk1fQkFTRQkoMHhmZmZlMTAwMCArIDB4ZWMpCisjZGVmaW5lIE9NQVBfRlVOQ19NVVhfQVJNX0JBU0UJCSgweGZmZmUxMDAwICsgMHhlYykKIAotc3RhdGljIGludCBlbmFibGVfMTUxMF9tb2RlID0gMDsKK3N0YXRpYyBpbnQgZW5hYmxlXzE1MTBfbW9kZTsKIAogc3RydWN0IG9tYXBfZG1hX2xjaCB7CiAJaW50IG5leHRfbGNoOwpAQCAtNTcsNyArNTcsNyBAQAogCXUxNiBzYXZlZF9jc3I7CiAJdTE2IGVuYWJsZWRfaXJxczsKIAljb25zdCBjaGFyICpkZXZfbmFtZTsKLQl2b2lkICgqIGNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKTsKKwl2b2lkICgqY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpOwogCXZvaWQgKmRhdGE7CiAKICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKQEAgLTcyLDcgKzcyLDYgQEAKIAlsb25nIGZsYWdzOwogfTsKIAotI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQogc3RydWN0IGRtYV9saW5rX2luZm8gewogCWludCAqbGlua2VkX2RtYWNoX3E7CiAJaW50IG5vX29mX2xjaHNfbGlua2VkOwpAQCAtODYsNyArODUsOSBAQAogCiB9OwogCi1zdGF0aWMgc3RydWN0IGRtYV9saW5rX2luZm8gZG1hX2xpbmtlZF9sY2hbT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVF07CitzdGF0aWMgc3RydWN0IGRtYV9saW5rX2luZm8gKmRtYV9saW5rZWRfbGNoOworCisjaWZuZGVmIENPTkZJR19BUkNIX09NQVAxCiAKIC8qIENoYWluIGhhbmRsaW5nIG1hY3JvcyAqLwogI2RlZmluZSBPTUFQX0RNQV9DSEFJTl9RSU5JVChjaGFpbl9pZCkJCQkJCVwKQEAgLTExOSwxMiArMTIwLDE1IEBACiAJCWRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5xX2NvdW50Kys7IFwKIAl9IHdoaWxlICgwKQogI2VuZGlmCisKK3N0YXRpYyBpbnQgZG1hX2xjaF9jb3VudDsKIHN0YXRpYyBpbnQgZG1hX2NoYW5fY291bnQ7CiAKIHN0YXRpYyBzcGlubG9ja190IGRtYV9jaGFuX2xvY2s7Ci1zdGF0aWMgc3RydWN0IG9tYXBfZG1hX2xjaCBkbWFfY2hhbltPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXTsKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9kbWFfbGNoICpkbWFfY2hhbjsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKm9tYXBfZG1hX2Jhc2U7CiAKLXN0YXRpYyBjb25zdCB1OCBvbWFwMV9kbWFfaXJxW09NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdID0geworc3RhdGljIGNvbnN0IHU4IG9tYXAxX2RtYV9pcnFbT01BUDFfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdID0gewogCUlOVF9ETUFfQ0gwXzYsIElOVF9ETUFfQ0gxXzcsIElOVF9ETUFfQ0gyXzgsIElOVF9ETUFfQ0gzLAogCUlOVF9ETUFfQ0g0LCBJTlRfRE1BX0NINSwgSU5UXzE2MTBfRE1BX0NINiwgSU5UXzE2MTBfRE1BX0NINywKIAlJTlRfMTYxMF9ETUFfQ0g4LCBJTlRfMTYxMF9ETUFfQ0g5LCBJTlRfMTYxMF9ETUFfQ0gxMCwKQEAgLTEzOSw2ICsxNDMsMjQgQEAKICNkZWZpbmUgUkVWSVNJVF8yNFhYKCkJCXByaW50ayhLRVJOX0VSUiAiRklYTUU6IG5vICVzIG9uIDI0eHhcbiIsIFwKIAkJCQkJCV9fZnVuY19fKTsKIAorI2RlZmluZSBkbWFfcmVhZChyZWcpCQkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCXUzMiBfX3ZhbDsJCQkJCQkJXAorCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkJCQkJCVwKKwkJX192YWwgPSBfX3Jhd19yZWFkdyhvbWFwX2RtYV9iYXNlICsgT01BUDFfRE1BXyMjcmVnKTsJXAorCWVsc2UJCQkJCQkJCVwKKwkJX192YWwgPSBfX3Jhd19yZWFkbChvbWFwX2RtYV9iYXNlICsgT01BUF9ETUE0XyMjcmVnKTsJXAorCV9fdmFsOwkJCQkJCQkJXAorfSkKKworI2RlZmluZSBkbWFfd3JpdGUodmFsLCByZWcpCQkJCQkJXAorKHsJCQkJCQkJCQlcCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQkJCQkJXAorCQlfX3Jhd193cml0ZXcoKHUxNikodmFsKSwgb21hcF9kbWFfYmFzZSArIE9NQVAxX0RNQV8jI3JlZyk7IFwKKwllbHNlCQkJCQkJCQlcCisJCV9fcmF3X3dyaXRlbCgodmFsKSwgb21hcF9kbWFfYmFzZSArIE9NQVBfRE1BNF8jI3JlZyk7CVwKK30pCisKICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAogLyogUmV0dXJucyAxIGlmIHRoZSBETUEgbW9kdWxlIGlzIGluIE9NQVAxNTEwLWNvbXBhdGlibGUgbW9kZSwgMCBvdGhlcndpc2UgKi8KIGludCBvbWFwX2RtYV9pbl8xNTEwX21vZGUodm9pZCkKQEAgLTE3MywxMyArMTk1LDE0IEBACiAjZGVmaW5lIHNldF9nZG1hX2RldihyZXEsIGRldikJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKIAorLyogT21hcDEgb25seSAqLwogc3RhdGljIHZvaWQgY2xlYXJfbGNoX3JlZ3MoaW50IGxjaCkKIHsKIAlpbnQgaTsKLQl1MzIgbGNoX2Jhc2UgPSBPTUFQX0RNQV9CQVNFICsgbGNoICogMHg0MDsKKwl2b2lkIF9faW9tZW0gKmxjaF9iYXNlID0gb21hcF9kbWFfYmFzZSArIE9NQVAxX0RNQV9DSF9CQVNFKGxjaCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgMHgyYzsgaSArPSAyKQotCQlvbWFwX3dyaXRldygwLCBsY2hfYmFzZSArIGkpOworCQlfX3Jhd193cml0ZXcoMCwgbGNoX2Jhc2UgKyBpKTsKIH0KIAogdm9pZCBvbWFwX3NldF9kbWFfcHJpb3JpdHkoaW50IGxjaCwgaW50IGRzdF9wb3J0LCBpbnQgcHJpb3JpdHkpCkBAIC0yMTIsMzMgKzIzNSw0OSBAQAogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgeworCQl1MzIgY2NyOworCisJCWNjciA9IGRtYV9yZWFkKENDUihsY2gpKTsKIAkJaWYgKHByaW9yaXR5KQotCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9ICgxIDw8IDYpOworCQkJY2NyIHw9ICgxIDw8IDYpOwogCQllbHNlCi0JCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgJj0gfigxIDw8IDYpOworCQkJY2NyICY9IH4oMSA8PCA2KTsKKwkJZG1hX3dyaXRlKGNjciwgQ0NSKGxjaCkpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3ByaW9yaXR5KTsKIAogdm9pZCBvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKGludCBsY2gsIGludCBkYXRhX3R5cGUsIGludCBlbGVtX2NvdW50LAogCQkJCSAgaW50IGZyYW1lX2NvdW50LCBpbnQgc3luY19tb2RlLAogCQkJCSAgaW50IGRtYV90cmlnZ2VyLCBpbnQgc3JjX29yX2RzdF9zeW5jaCkKIHsKLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpICY9IH4weDAzOwotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gZGF0YV90eXBlOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+MHgwMzsKKwlsIHw9IGRhdGFfdHlwZTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgJj0gfigxIDw8IDUpOwotCQlpZiAoc3luY19tb2RlID09IE9NQVBfRE1BX1NZTkNfRlJBTUUpCi0JCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgfD0gMSA8PCA1OworCQl1MTYgY2NyOwogCi0JCU9NQVAxX0RNQV9DQ1IyX1JFRyhsY2gpICY9IH4oMSA8PCAyKTsKKwkJY2NyID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCQljY3IgJj0gfigxIDw8IDUpOworCQlpZiAoc3luY19tb2RlID09IE9NQVBfRE1BX1NZTkNfRlJBTUUpCisJCQljY3IgfD0gMSA8PCA1OworCQlkbWFfd3JpdGUoY2NyLCBDQ1IobGNoKSk7CisKKwkJY2NyID0gZG1hX3JlYWQoQ0NSMihsY2gpKTsKKwkJY2NyICY9IH4oMSA8PCAyKTsKIAkJaWYgKHN5bmNfbW9kZSA9PSBPTUFQX0RNQV9TWU5DX0JMT0NLKQotCQkJT01BUDFfRE1BX0NDUjJfUkVHKGxjaCkgfD0gMSA8PCAyOworCQkJY2NyIHw9IDEgPDwgMjsKKwkJZG1hX3dyaXRlKGNjciwgQ0NSMihsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkgJiYgZG1hX3RyaWdnZXIpIHsKLQkJdTMyIHZhbCA9IE9NQVBfRE1BX0NDUl9SRUcobGNoKTsKKwkJdTMyIHZhbDsKIAorCQl2YWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAJCXZhbCAmPSB+KDMgPDwgMTkpOwogCQlpZiAoZG1hX3RyaWdnZXIgPiA2MykKIAkJCXZhbCB8PSAxIDw8IDIwOwpAQCAtMjYzLDEyICszMDIsMTMgQEAKIAkJZWxzZQogCQkJdmFsICY9IH4oMSA8PCAyNCk7CS8qIGRlc3Qgc3luY2ggKi8KIAotCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB2YWw7CisJCWRtYV93cml0ZSh2YWwsIENDUihsY2gpKTsKIAl9CiAKLQlPTUFQX0RNQV9DRU5fUkVHKGxjaCkgPSBlbGVtX2NvdW50OwotCU9NQVBfRE1BX0NGTl9SRUcobGNoKSA9IGZyYW1lX2NvdW50OworCWRtYV93cml0ZShlbGVtX2NvdW50LCBDRU4obGNoKSk7CisJZG1hX3dyaXRlKGZyYW1lX2NvdW50LCBDRk4obGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV90cmFuc2Zlcl9wYXJhbXMpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY29sb3JfbW9kZSBtb2RlLCB1MzIgY29sb3IpCiB7CkBAIC0yODEsNyArMzIxLDkgQEAKIAkJcmV0dXJuOwogCX0KIAotCXcgPSBPTUFQMV9ETUFfQ0NSMl9SRUcobGNoKSAmIH4weDAzOworCXcgPSBkbWFfcmVhZChDQ1IyKGxjaCkpOworCXcgJj0gfjB4MDM7CisKIAlzd2l0Y2ggKG1vZGUpIHsKIAljYXNlIE9NQVBfRE1BX0NPTlNUQU5UX0ZJTEw6CiAJCXcgfD0gMHgwMTsKQEAgLTI5NCw1MiArMzM2LDgxIEBACiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJfQotCU9NQVAxX0RNQV9DQ1IyX1JFRyhsY2gpID0gdzsKKwlkbWFfd3JpdGUodywgQ0NSMihsY2gpKTsKIAotCXcgPSBPTUFQMV9ETUFfTENIX0NUUkxfUkVHKGxjaCkgJiB+MHgwZjsKKwl3ID0gZG1hX3JlYWQoTENIX0NUUkwobGNoKSk7CisJdyAmPSB+MHgwZjsKIAkvKiBEZWZhdWx0IGlzIGNoYW5uZWwgdHlwZSAyRCAqLwogCWlmIChtb2RlKSB7Ci0JCU9NQVAxX0RNQV9DT0xPUl9MX1JFRyhsY2gpID0gKHUxNiljb2xvcjsKLQkJT01BUDFfRE1BX0NPTE9SX1VfUkVHKGxjaCkgPSAodTE2KShjb2xvciA+PiAxNik7CisJCWRtYV93cml0ZSgodTE2KWNvbG9yLCBDT0xPUl9MKGxjaCkpOworCQlkbWFfd3JpdGUoKHUxNikoY29sb3IgPj4gMTYpLCBDT0xPUl9VKGxjaCkpOwogCQl3IHw9IDE7CQkvKiBDaGFubmVsIHR5cGUgRyAqLwogCX0KLQlPTUFQMV9ETUFfTENIX0NUUkxfUkVHKGxjaCkgPSB3OworCWRtYV93cml0ZSh3LCBMQ0hfQ1RSTChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2NvbG9yX21vZGUpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV93cml0ZV9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfd3JpdGVfbW9kZSBtb2RlKQogewogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpICY9IH4oMHgzIDw8IDE2KTsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAobW9kZSA8PCAxNik7CisJCXUzMiBjc2RwOworCisJCWNzZHAgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCQljc2RwICY9IH4oMHgzIDw8IDE2KTsKKwkJY3NkcCB8PSAobW9kZSA8PCAxNik7CisJCWRtYV93cml0ZShjc2RwLCBDU0RQKGxjaCkpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3dyaXRlX21vZGUpOworCit2b2lkIG9tYXBfc2V0X2RtYV9jaGFubmVsX21vZGUoaW50IGxjaCwgZW51bSBvbWFwX2RtYV9jaGFubmVsX21vZGUgbW9kZSkKK3sKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKSB7CisJCXUzMiBsOworCisJCWwgPSBkbWFfcmVhZChMQ0hfQ1RSTChsY2gpKTsKKwkJbCAmPSB+MHg3OworCQlsIHw9IG1vZGU7CisJCWRtYV93cml0ZShsLCBMQ0hfQ1RSTChsY2gpKTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jaGFubmVsX21vZGUpOwogCiAvKiBOb3RlIHRoYXQgc3JjX3BvcnQgaXMgb25seSBmb3Igb21hcDEgKi8KIHZvaWQgb21hcF9zZXRfZG1hX3NyY19wYXJhbXMoaW50IGxjaCwgaW50IHNyY19wb3J0LCBpbnQgc3JjX2Ftb2RlLAogCQkJICAgICB1bnNpZ25lZCBsb25nIHNyY19zdGFydCwKIAkJCSAgICAgaW50IHNyY19laSwgaW50IHNyY19maSkKIHsKKwl1MzIgbDsKKwogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpICY9IH4oMHgxZiA8PCAyKTsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSBzcmNfcG9ydCA8PCAyOworCQl1MTYgdzsKKworCQl3ID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwkJdyAmPSB+KDB4MWYgPDwgMik7CisJCXcgfD0gc3JjX3BvcnQgPDwgMjsKKwkJZG1hX3dyaXRlKHcsIENTRFAobGNoKSk7CiAJfQogCi0JT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMHgwMyA8PCAxMik7Ci0JT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9IHNyY19hbW9kZSA8PCAxMjsKKwlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCWwgJj0gfigweDAzIDw8IDEyKTsKKwlsIHw9IHNyY19hbW9kZSA8PCAxMjsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCU9NQVAxX0RNQV9DU1NBX1VfUkVHKGxjaCkgPSBzcmNfc3RhcnQgPj4gMTY7Ci0JCU9NQVAxX0RNQV9DU1NBX0xfUkVHKGxjaCkgPSBzcmNfc3RhcnQ7CisJCWRtYV93cml0ZShzcmNfc3RhcnQgPj4gMTYsIENTU0FfVShsY2gpKTsKKwkJZG1hX3dyaXRlKCh1MTYpc3JjX3N0YXJ0LCBDU1NBX0wobGNoKSk7CiAJfQogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQotCQlPTUFQMl9ETUFfQ1NTQV9SRUcobGNoKSA9IHNyY19zdGFydDsKKwkJZG1hX3dyaXRlKHNyY19zdGFydCwgQ1NTQShsY2gpKTsKIAotCU9NQVBfRE1BX0NTRUlfUkVHKGxjaCkgPSBzcmNfZWk7Ci0JT01BUF9ETUFfQ1NGSV9SRUcobGNoKSA9IHNyY19maTsKKwlkbWFfd3JpdGUoc3JjX2VpLCBDU0VJKGxjaCkpOworCWRtYV93cml0ZShzcmNfZmksIENTRkkobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKTsKIAotdm9pZCBvbWFwX3NldF9kbWFfcGFyYW1zKGludCBsY2gsIHN0cnVjdCBvbWFwX2RtYV9jaGFubmVsX3BhcmFtcyAqIHBhcmFtcykKK3ZvaWQgb21hcF9zZXRfZG1hX3BhcmFtcyhpbnQgbGNoLCBzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgKnBhcmFtcykKIHsKIAlvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKGxjaCwgcGFyYW1zLT5kYXRhX3R5cGUsCiAJCQkJICAgICBwYXJhbXMtPmVsZW1fY291bnQsIHBhcmFtcy0+ZnJhbWVfY291bnQsCkBAIC0zNTYsMjggKzQyNywzNyBAQAogCQlvbWFwX2RtYV9zZXRfcHJpb19sY2gobGNoLCBwYXJhbXMtPnJlYWRfcHJpbywKIAkJCQkgICAgICBwYXJhbXMtPndyaXRlX3ByaW8pOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfcGFyYW1zKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfc3JjX2luZGV4KGludCBsY2gsIGludCBlaWR4LCBpbnQgZmlkeCkKIHsKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJUkVWSVNJVF8yNFhYKCk7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQogCQlyZXR1cm47Ci0JfQotCU9NQVBfRE1BX0NTRUlfUkVHKGxjaCkgPSBlaWR4OwotCU9NQVBfRE1BX0NTRklfUkVHKGxjaCkgPSBmaWR4OworCisJZG1hX3dyaXRlKGVpZHgsIENTRUkobGNoKSk7CisJZG1hX3dyaXRlKGZpZHgsIENTRkkobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfaW5kZXgpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9zcmNfZGF0YV9wYWNrKGludCBsY2gsIGludCBlbmFibGUpCiB7Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDEgPDwgNik7CisJdTMyIGw7CisKKwlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwlsICY9IH4oMSA8PCA2KTsKIAlpZiAoZW5hYmxlKQotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9ICgxIDw8IDYpOworCQlsIHw9ICgxIDw8IDYpOworCWRtYV93cml0ZShsLCBDU0RQKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2RhdGFfcGFjayk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfYnVyc3RfbW9kZSBidXJzdF9tb2RlKQogewogCXVuc2lnbmVkIGludCBidXJzdCA9IDA7Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MDMgPDwgNyk7CisJdTMyIGw7CisKKwlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwlsICY9IH4oMHgwMyA8PCA3KTsKIAogCXN3aXRjaCAoYnVyc3RfbW9kZSkgewogCWNhc2UgT01BUF9ETUFfREFUQV9CVVJTVF9ESVM6CkBAIC00MDgsNTUgKzQ4OCw3MyBAQAogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IChidXJzdCA8PCA3KTsKKworCWwgfD0gKGJ1cnN0IDw8IDcpOworCWRtYV93cml0ZShsLCBDU0RQKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2J1cnN0X21vZGUpOwogCiAvKiBOb3RlIHRoYXQgZGVzdF9wb3J0IGlzIG9ubHkgZm9yIE9NQVAxICovCiB2b2lkIG9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyhpbnQgbGNoLCBpbnQgZGVzdF9wb3J0LCBpbnQgZGVzdF9hbW9kZSwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgZGVzdF9zdGFydCwKIAkJCSAgICAgIGludCBkc3RfZWksIGludCBkc3RfZmkpCiB7CisJdTMyIGw7CisKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MWYgPDwgOSk7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gZGVzdF9wb3J0IDw8IDk7CisJCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCQlsICY9IH4oMHgxZiA8PCA5KTsKKwkJbCB8PSBkZXN0X3BvcnQgPDwgOTsKKwkJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiAJfQogCi0JT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMHgwMyA8PCAxNCk7Ci0JT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9IGRlc3RfYW1vZGUgPDwgMTQ7CisJbCA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwlsICY9IH4oMHgwMyA8PCAxNCk7CisJbCB8PSBkZXN0X2Ftb2RlIDw8IDE0OworCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUDFfRE1BX0NEU0FfVV9SRUcobGNoKSA9IGRlc3Rfc3RhcnQgPj4gMTY7Ci0JCU9NQVAxX0RNQV9DRFNBX0xfUkVHKGxjaCkgPSBkZXN0X3N0YXJ0OworCQlkbWFfd3JpdGUoZGVzdF9zdGFydCA+PiAxNiwgQ0RTQV9VKGxjaCkpOworCQlkbWFfd3JpdGUoZGVzdF9zdGFydCwgQ0RTQV9MKGxjaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJT01BUDJfRE1BX0NEU0FfUkVHKGxjaCkgPSBkZXN0X3N0YXJ0OworCQlkbWFfd3JpdGUoZGVzdF9zdGFydCwgQ0RTQShsY2gpKTsKIAotCU9NQVBfRE1BX0NERUlfUkVHKGxjaCkgPSBkc3RfZWk7Ci0JT01BUF9ETUFfQ0RGSV9SRUcobGNoKSA9IGRzdF9maTsKKwlkbWFfd3JpdGUoZHN0X2VpLCBDREVJKGxjaCkpOworCWRtYV93cml0ZShkc3RfZmksIENERkkobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX2Rlc3RfaW5kZXgoaW50IGxjaCwgaW50IGVpZHgsIGludCBmaWR4KQogewotCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewotCQlSRVZJU0lUXzI0WFgoKTsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCiAJCXJldHVybjsKLQl9Ci0JT01BUF9ETUFfQ0RFSV9SRUcobGNoKSA9IGVpZHg7Ci0JT01BUF9ETUFfQ0RGSV9SRUcobGNoKSA9IGZpZHg7CisKKwlkbWFfd3JpdGUoZWlkeCwgQ0RFSShsY2gpKTsKKwlkbWFfd3JpdGUoZmlkeCwgQ0RGSShsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2Rlc3RfaW5kZXgpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayhpbnQgbGNoLCBpbnQgZW5hYmxlKQogewotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigxIDw8IDEzKTsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCWwgJj0gfigxIDw8IDEzKTsKIAlpZiAoZW5hYmxlKQotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IDEgPDwgMTM7CisJCWwgfD0gMSA8PCAxMzsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2Rlc3RfZGF0YV9wYWNrKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfZGVzdF9idXJzdF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfYnVyc3RfbW9kZSBidXJzdF9tb2RlKQogewogCXVuc2lnbmVkIGludCBidXJzdCA9IDA7Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MDMgPDwgMTQpOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+KDB4MDMgPDwgMTQpOwogCiAJc3dpdGNoIChidXJzdF9tb2RlKSB7CiAJY2FzZSBPTUFQX0RNQV9EQVRBX0JVUlNUX0RJUzoKQEAgLTQ4Niw4ICs1ODQsMTAgQEAKIAkJQlVHKCk7CiAJCXJldHVybjsKIAl9Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAoYnVyc3QgPDwgMTQpOworCWwgfD0gKGJ1cnN0IDw8IDE0KTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2Rlc3RfYnVyc3RfbW9kZSk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX2VuYWJsZV9jaGFubmVsX2lycShpbnQgbGNoKQogewpAQCAtNDk1LDY0ICs1OTUsNzQgQEAKIAogCS8qIENsZWFyIENTUiAqLwogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJc3RhdHVzID0gT01BUF9ETUFfQ1NSX1JFRyhsY2gpOworCQlzdGF0dXMgPSBkbWFfcmVhZChDU1IobGNoKSk7CiAJZWxzZSBpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCi0JCU9NQVBfRE1BX0NTUl9SRUcobGNoKSA9IE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSzsKKwkJZG1hX3dyaXRlKE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSywgQ1NSKGxjaCkpOwogCiAJLyogRW5hYmxlIHNvbWUgbmljZSBpbnRlcnJ1cHRzLiAqLwotCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSBkbWFfY2hhbltsY2hdLmVuYWJsZWRfaXJxczsKLQotCWRtYV9jaGFuW2xjaF0uZmxhZ3MgfD0gT01BUF9ETUFfQUNUSVZFOworCWRtYV93cml0ZShkbWFfY2hhbltsY2hdLmVuYWJsZWRfaXJxcywgQ0lDUihsY2gpKTsKIH0KIAogc3RhdGljIHZvaWQgb21hcF9kaXNhYmxlX2NoYW5uZWxfaXJxKGludCBsY2gpCiB7CiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQotCQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENJQ1IobGNoKSk7CiB9CiAKIHZvaWQgb21hcF9lbmFibGVfZG1hX2lycShpbnQgbGNoLCB1MTYgYml0cykKIHsKIAlkbWFfY2hhbltsY2hdLmVuYWJsZWRfaXJxcyB8PSBiaXRzOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2VuYWJsZV9kbWFfaXJxKTsKIAogdm9pZCBvbWFwX2Rpc2FibGVfZG1hX2lycShpbnQgbGNoLCB1MTYgYml0cykKIHsKIAlkbWFfY2hhbltsY2hdLmVuYWJsZWRfaXJxcyAmPSB+Yml0czsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9kaXNhYmxlX2RtYV9pcnEpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZW5hYmxlX2xuayhpbnQgbGNoKQogeworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENMTktfQ1RSTChsY2gpKTsKKwogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpICY9IH4oMSA8PCAxNCk7CisJCWwgJj0gfigxIDw8IDE0KTsKIAogCS8qIFNldCB0aGUgRU5BQkxFX0xOSyBiaXRzICovCiAJaWYgKGRtYV9jaGFuW2xjaF0ubmV4dF9sY2ggIT0gLTEpCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSA9Ci0JCQlkbWFfY2hhbltsY2hdLm5leHRfbGNoIHwgKDEgPDwgMTUpOworCQlsID0gZG1hX2NoYW5bbGNoXS5uZXh0X2xjaCB8ICgxIDw8IDE1KTsKIAogI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQotCWlmIChkbWFfY2hhbltsY2hdLm5leHRfbGlua2VkX2NoICE9IC0xKQotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgPQotCQkJZG1hX2NoYW5bbGNoXS5uZXh0X2xpbmtlZF9jaCB8ICgxIDw8IDE1KTsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCisJCWlmIChkbWFfY2hhbltsY2hdLm5leHRfbGlua2VkX2NoICE9IC0xKQorCQkJbCA9IGRtYV9jaGFuW2xjaF0ubmV4dF9saW5rZWRfY2ggfCAoMSA8PCAxNSk7CiAjZW5kaWYKKworCWRtYV93cml0ZShsLCBDTE5LX0NUUkwobGNoKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX2xuayhpbnQgbGNoKQogeworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENMTktfQ1RSTChsY2gpKTsKKwogCS8qIERpc2FibGUgaW50ZXJydXB0cyAqLwogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENJQ1IobGNoKSk7CiAJCS8qIFNldCB0aGUgU1RPUF9MTksgYml0ICovCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSB8PSAxIDw8IDE0OworCQlsIHw9IDEgPDwgMTQ7CiAJfQogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CiAJCW9tYXBfZGlzYWJsZV9jaGFubmVsX2lycShsY2gpOwogCQkvKiBDbGVhciB0aGUgRU5BQkxFX0xOSyBiaXQgKi8KLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpICY9IH4oMSA8PCAxNSk7CisJCWwgJj0gfigxIDw8IDE1KTsKIAl9CiAKKwlkbWFfd3JpdGUobCwgQ0xOS19DVFJMKGxjaCkpOwogCWRtYV9jaGFuW2xjaF0uZmxhZ3MgJj0gfk9NQVBfRE1BX0FDVElWRTsKIH0KIApAQCAtNTYzLDEzICs2NzMsMTMgQEAKIAlpZiAoIWNwdV9jbGFzc19pc19vbWFwMigpKQogCQlyZXR1cm47CiAKLQl2YWwgPSBvbWFwX3JlYWRsKE9NQVBfRE1BNF9JUlFFTkFCTEVfTDApOworCXZhbCA9IGRtYV9yZWFkKElSUUVOQUJMRV9MMCk7CiAJdmFsIHw9IDEgPDwgbGNoOwotCW9tYXBfd3JpdGVsKHZhbCwgT01BUF9ETUE0X0lSUUVOQUJMRV9MMCk7CisJZG1hX3dyaXRlKHZhbCwgSVJRRU5BQkxFX0wwKTsKIH0KIAogaW50IG9tYXBfcmVxdWVzdF9kbWEoaW50IGRldl9pZCwgY29uc3QgY2hhciAqZGV2X25hbWUsCi0JCSAgICAgdm9pZCAoKiBjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCisJCSAgICAgdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJICAgICB2b2lkICpkYXRhLCBpbnQgKmRtYV9jaF9vdXQpCiB7CiAJaW50IGNoLCBmcmVlX2NoID0gLTE7CkBAIC02MDIsMTAgKzcxMiwxNCBAQAogCWNoYW4tPmRldl9uYW1lID0gZGV2X25hbWU7CiAJY2hhbi0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKIAljaGFuLT5kYXRhID0gZGF0YTsKKwogI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQotCWNoYW4tPmNoYWluX2lkID0gLTE7Ci0JY2hhbi0+bmV4dF9saW5rZWRfY2ggPSAtMTsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKKwkJY2hhbi0+Y2hhaW5faWQgPSAtMTsKKwkJY2hhbi0+bmV4dF9saW5rZWRfY2ggPSAtMTsKKwl9CiAjZW5kaWYKKwogCWNoYW4tPmVuYWJsZWRfaXJxcyA9IE9NQVBfRE1BX0RST1BfSVJRIHwgT01BUF9ETUFfQkxPQ0tfSVJROwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQpAQCAtNjIwLDI2ICs3MzQsMjggQEAKIAkJCXNldF9nZG1hX2RldihmcmVlX2NoICsgMSwgZGV2X2lkKTsKIAkJCWRldl9pZCA9IGZyZWVfY2ggKyAxOwogCQl9Ci0JCS8qIERpc2FibGUgdGhlIDE1MTAgY29tcGF0aWJpbGl0eSBtb2RlIGFuZCBzZXQgdGhlIHN5bmMgZGV2aWNlCi0JCSAqIGlkLiAqLwotCQlPTUFQX0RNQV9DQ1JfUkVHKGZyZWVfY2gpID0gZGV2X2lkIHwgKDEgPDwgMTApOworCQkvKgorCQkgKiBEaXNhYmxlIHRoZSAxNTEwIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgc2V0IHRoZSBzeW5jIGRldmljZQorCQkgKiBpZC4KKwkJICovCisJCWRtYV93cml0ZShkZXZfaWQgfCAoMSA8PCAxMCksIENDUihmcmVlX2NoKSk7CiAJfSBlbHNlIGlmIChjcHVfaXNfb21hcDczMCgpIHx8IGNwdV9pc19vbWFwMTV4eCgpKSB7Ci0JCU9NQVBfRE1BX0NDUl9SRUcoZnJlZV9jaCkgPSBkZXZfaWQ7CisJCWRtYV93cml0ZShkZXZfaWQsIENDUihmcmVlX2NoKSk7CiAJfQogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CiAJCW9tYXAyX2VuYWJsZV9pcnFfbGNoKGZyZWVfY2gpOwotCiAJCW9tYXBfZW5hYmxlX2NoYW5uZWxfaXJxKGZyZWVfY2gpOwogCQkvKiBDbGVhciB0aGUgQ1NSIHJlZ2lzdGVyIGFuZCBJUlEgc3RhdHVzIHJlZ2lzdGVyICovCi0JCU9NQVBfRE1BX0NTUl9SRUcoZnJlZV9jaCkgPSBPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0s7Ci0JCW9tYXBfd3JpdGVsKDEgPDwgZnJlZV9jaCwgT01BUF9ETUE0X0lSUVNUQVRVU19MMCk7CisJCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihmcmVlX2NoKSk7CisJCWRtYV93cml0ZSgxIDw8IGZyZWVfY2gsIElSUVNUQVRVU19MMCk7CiAJfQogCiAJKmRtYV9jaF9vdXQgPSBmcmVlX2NoOwogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfcmVxdWVzdF9kbWEpOwogCiB2b2lkIG9tYXBfZnJlZV9kbWEoaW50IGxjaCkKIHsKQEAgLTY0NywxMSArNzYzLDEyIEBACiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZG1hX2NoYW5fbG9jaywgZmxhZ3MpOwogCWlmIChkbWFfY2hhbltsY2hdLmRldl9pZCA9PSAtMSkgewotCQlwcmludGsoIm9tYXBfZG1hOiB0cnlpbmcgdG8gZnJlZSBub25hbGxvY2F0ZWQgRE1BIGNoYW5uZWwgJWRcbiIsCisJCXByX2Vycigib21hcF9kbWE6IHRyeWluZyB0byBmcmVlIHVuYWxsb2NhdGVkIERNQSBjaGFubmVsICVkXG4iLAogCQkgICAgICAgbGNoKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG1hX2NoYW5fbG9jaywgZmxhZ3MpOwogCQlyZXR1cm47CiAJfQorCiAJZG1hX2NoYW5bbGNoXS5kZXZfaWQgPSAtMTsKIAlkbWFfY2hhbltsY2hdLm5leHRfbGNoID0gLTE7CiAJZG1hX2NoYW5bbGNoXS5jYWxsYmFjayA9IE5VTEw7CkBAIC02NTksMzAgKzc3NiwzMSBAQAogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CiAJCS8qIERpc2FibGUgYWxsIERNQSBpbnRlcnJ1cHRzIGZvciB0aGUgY2hhbm5lbC4gKi8KLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogCQkvKiBNYWtlIHN1cmUgdGhlIERNQSB0cmFuc2ZlciBpcyBzdG9wcGVkLiAqLwotCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0NSKGxjaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQl1MzIgdmFsOwogCQkvKiBEaXNhYmxlIGludGVycnVwdHMgKi8KLQkJdmFsID0gb21hcF9yZWFkbChPTUFQX0RNQTRfSVJRRU5BQkxFX0wwKTsKKwkJdmFsID0gZG1hX3JlYWQoSVJRRU5BQkxFX0wwKTsKIAkJdmFsICY9IH4oMSA8PCBsY2gpOwotCQlvbWFwX3dyaXRlbCh2YWwsIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDApOworCQlkbWFfd3JpdGUodmFsLCBJUlFFTkFCTEVfTDApOwogCiAJCS8qIENsZWFyIHRoZSBDU1IgcmVnaXN0ZXIgYW5kIElSUSBzdGF0dXMgcmVnaXN0ZXIgKi8KLQkJT01BUF9ETUFfQ1NSX1JFRyhsY2gpID0gT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLOwotCQlvbWFwX3dyaXRlbCgxIDw8IGxjaCwgT01BUF9ETUE0X0lSUVNUQVRVU19MMCk7CisJCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihsY2gpKTsKKwkJZG1hX3dyaXRlKDEgPDwgbGNoLCBJUlFTVEFUVVNfTDApOwogCiAJCS8qIERpc2FibGUgYWxsIERNQSBpbnRlcnJ1cHRzIGZvciB0aGUgY2hhbm5lbC4gKi8KLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogCiAJCS8qIE1ha2Ugc3VyZSB0aGUgRE1BIHRyYW5zZmVyIGlzIHN0b3BwZWQuICovCi0JCU9NQVBfRE1BX0NDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDQ1IobGNoKSk7CiAJCW9tYXBfY2xlYXJfZG1hKGxjaCk7CiAJfQogfQorRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfZG1hKTsKIAogLyoqCiAgKiBAYnJpZWYgb21hcF9kbWFfc2V0X2dsb2JhbF9wYXJhbXMgOiBTZXQgZ2xvYmFsIHByaW9yaXR5IHNldHRpbmdzIGZvciBkbWEKQEAgLTcxMCw3ICs4MjgsNyBAQAogCXJlZyA9IChhcmJfcmF0ZSAmIDB4ZmYpIDw8IDE2OwogCXJlZyB8PSAoMHhmZiAmIG1heF9maWZvX2RlcHRoKTsKIAotCW9tYXBfd3JpdGVsKHJlZywgT01BUF9ETUE0X0dDUl9SRUcpOworCWRtYV93cml0ZShyZWcsIEdDUik7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX3NldF9nbG9iYWxfcGFyYW1zKTsKIApAQCAtNzI3LDIwICs4NDUsMjEgQEAKIG9tYXBfZG1hX3NldF9wcmlvX2xjaChpbnQgbGNoLCB1bnNpZ25lZCBjaGFyIHJlYWRfcHJpbywKIAkJICAgICAgdW5zaWduZWQgY2hhciB3cml0ZV9wcmlvKQogewotCXUzMiB3OworCXUzMiBsOwogCi0JaWYgKHVubGlrZWx5KChsY2ggPCAwIHx8IGxjaCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGxjaCA8IDAgfHwgbGNoID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhbm5lbCBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KLQl3ID0gT01BUF9ETUFfQ0NSX1JFRyhsY2gpOwotCXcgJj0gfigoMSA8PCA2KSB8ICgxIDw8IDI2KSk7CisJbCA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwlsICY9IH4oKDEgPDwgNikgfCAoMSA8PCAyNikpOwogCWlmIChjcHVfaXNfb21hcDI0MzAoKSB8fCBjcHVfaXNfb21hcDM0eHgoKSkKLQkJdyB8PSAoKHJlYWRfcHJpbyAmIDB4MSkgPDwgNikgfCAoKHdyaXRlX3ByaW8gJiAweDEpIDw8IDI2KTsKKwkJbCB8PSAoKHJlYWRfcHJpbyAmIDB4MSkgPDwgNikgfCAoKHdyaXRlX3ByaW8gJiAweDEpIDw8IDI2KTsKIAllbHNlCi0JCXcgfD0gKChyZWFkX3ByaW8gJiAweDEpIDw8IDYpOworCQlsIHw9ICgocmVhZF9wcmlvICYgMHgxKSA8PCA2KTsKIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSA9IHc7CisJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKKwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX2RtYV9zZXRfcHJpb19sY2gpOwpAQCAtNzU2LDI4ICs4NzUsMzQgQEAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJaW50IHN0YXR1czsKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH5PTUFQX0RNQV9DQ1JfRU47CisJCXUzMiBsOworCisJCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJCWwgJj0gfk9NQVBfRE1BX0NDUl9FTjsKKwkJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAogCQkvKiBDbGVhciBwZW5kaW5nIGludGVycnVwdHMgKi8KLQkJc3RhdHVzID0gT01BUF9ETUFfQ1NSX1JFRyhsY2gpOworCQlsID0gZG1hX3JlYWQoQ1NSKGxjaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlpbnQgaTsKLQkJdTMyIGxjaF9iYXNlID0gT01BUF9ETUE0X0JBU0UgKyBsY2ggKiAweDYwICsgMHg4MDsKKwkJdm9pZCBfX2lvbWVtICpsY2hfYmFzZSA9IG9tYXBfZG1hX2Jhc2UgKyBPTUFQX0RNQTRfQ0hfQkFTRShsY2gpOwogCQlmb3IgKGkgPSAwOyBpIDwgMHg0NDsgaSArPSA0KQotCQkJb21hcF93cml0ZWwoMCwgbGNoX2Jhc2UgKyBpKTsKKwkJCV9fcmF3X3dyaXRlbCgwLCBsY2hfYmFzZSArIGkpOwogCX0KIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9jbGVhcl9kbWEpOwogCiB2b2lkIG9tYXBfc3RhcnRfZG1hKGludCBsY2gpCiB7CisJdTMyIGw7CisKIAlpZiAoIW9tYXBfZG1hX2luXzE1MTBfbW9kZSgpICYmIGRtYV9jaGFuW2xjaF0ubmV4dF9sY2ggIT0gLTEpIHsKIAkJaW50IG5leHRfbGNoLCBjdXJfbGNoOwotCQljaGFyIGRtYV9jaGFuX2xpbmtfbWFwW09NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOworCQljaGFyIGRtYV9jaGFuX2xpbmtfbWFwW09NQVBfRE1BNF9MT0dJQ0FMX0RNQV9DSF9DT1VOVF07CiAKIAkJZG1hX2NoYW5fbGlua19tYXBbbGNoXSA9IDE7CiAJCS8qIFNldCB0aGUgbGluayByZWdpc3RlciBvZiB0aGUgZmlyc3QgY2hhbm5lbCAqLwpAQCAtODAxLDI3ICs5MjYsMzQgQEAKIAkJfSB3aGlsZSAobmV4dF9sY2ggIT0gLTEpOwogCX0gZWxzZSBpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKIAkJLyogRXJyYXRhOiBOZWVkIHRvIHdyaXRlIGxjaCBldmVuIGlmIG5vdCB1c2luZyBjaGFpbmluZyAqLwotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgPSBsY2g7CisJCWRtYV93cml0ZShsY2gsIENMTktfQ1RSTChsY2gpKTsKIAl9CiAKIAlvbWFwX2VuYWJsZV9jaGFubmVsX2lycShsY2gpOwogCi0JLyogRXJyYXRhOiBPbiBFUzIuMCBCVUZGRVJJTkcgZGlzYWJsZSBtdXN0IGJlIHNldC4KLQkgKiBUaGlzIHdpbGwgYWx3YXlzIGZhaWwgb24gRVMxLjAgKi8KLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9IE9NQVBfRE1BX0NDUl9FTjsKLQl9CisJbCA9IGRtYV9yZWFkKENDUihsY2gpKTsKIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBPTUFQX0RNQV9DQ1JfRU47CisJLyoKKwkgKiBFcnJhdGE6IE9uIEVTMi4wIEJVRkZFUklORyBkaXNhYmxlIG11c3QgYmUgc2V0LgorCSAqIFRoaXMgd2lsbCBhbHdheXMgZmFpbCBvbiBFUzEuMAorCSAqLworCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwkJbCB8PSBPTUFQX0RNQV9DQ1JfRU47CisKKwlsIHw9IE9NQVBfRE1BX0NDUl9FTjsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCiAJZG1hX2NoYW5bbGNoXS5mbGFncyB8PSBPTUFQX0RNQV9BQ1RJVkU7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc3RhcnRfZG1hKTsKIAogdm9pZCBvbWFwX3N0b3BfZG1hKGludCBsY2gpCiB7CisJdTMyIGw7CisKIAlpZiAoIW9tYXBfZG1hX2luXzE1MTBfbW9kZSgpICYmIGRtYV9jaGFuW2xjaF0ubmV4dF9sY2ggIT0gLTEpIHsKIAkJaW50IG5leHRfbGNoLCBjdXJfbGNoID0gbGNoOwotCQljaGFyIGRtYV9jaGFuX2xpbmtfbWFwW09NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOworCQljaGFyIGRtYV9jaGFuX2xpbmtfbWFwW09NQVBfRE1BNF9MT0dJQ0FMX0RNQV9DSF9DT1VOVF07CiAKIAkJbWVtc2V0KGRtYV9jaGFuX2xpbmtfbWFwLCAwLCBzaXplb2YoZG1hX2NoYW5fbGlua19tYXApKTsKIAkJZG8gewpAQCAtODQyLDE4ICs5NzQsMjIgQEAKIAogCS8qIERpc2FibGUgYWxsIGludGVycnVwdHMgb24gdGhlIGNoYW5uZWwgKi8KIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0lDUihsY2gpKTsKIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+T01BUF9ETUFfQ0NSX0VOOworCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJbCAmPSB+T01BUF9ETUFfQ0NSX0VOOworCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CisKIAlkbWFfY2hhbltsY2hdLmZsYWdzICY9IH5PTUFQX0RNQV9BQ1RJVkU7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc3RvcF9kbWEpOwogCiAvKgogICogQWxsb3dzIGNoYW5naW5nIHRoZSBETUEgY2FsbGJhY2sgZnVuY3Rpb24gb3IgZGF0YS4gVGhpcyBtYXkgYmUgbmVlZGVkIGlmCiAgKiB0aGUgZHJpdmVyIHNoYXJlcyBhIHNpbmdsZSBETUEgY2hhbm5lbCBmb3IgbXVsdGlwbGUgZG1hIHRyaWdnZXJzLgogICovCiBpbnQgb21hcF9zZXRfZG1hX2NhbGxiYWNrKGludCBsY2gsCi0JCQkgIHZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAorCQkJICB2b2lkICgqY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJICB2b2lkICpkYXRhKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC04NzMsNiArMTAwOSw3IEBACiAKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2NhbGxiYWNrKTsKIAogLyoKICAqIFJldHVybnMgY3VycmVudCBwaHlzaWNhbCBzb3VyY2UgYWRkcmVzcyBmb3IgdGhlIGdpdmVuIERNQSBjaGFubmVsLgpAQCAtODg2LDE1ICsxMDIzLDI0IEBACiB7CiAJZG1hX2FkZHJfdCBvZmZzZXQgPSAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlvZmZzZXQgPSAoZG1hX2FkZHJfdCkgKE9NQVAxX0RNQV9DU1NBX0xfUkVHKGxjaCkgfAotCQkJCSAgICAgICAoT01BUDFfRE1BX0NTU0FfVV9SRUcobGNoKSA8PCAxNikpOworCWlmIChjcHVfaXNfb21hcDE1eHgoKSkKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ1BDKGxjaCkpOworCWVsc2UKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ1NBQyhsY2gpKTsKIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJb2Zmc2V0ID0gT01BUF9ETUFfQ1NBQ19SRUcobGNoKTsKKwkvKgorCSAqIG9tYXAgMy4yLzMuMyBlcnJhdHVtOiBzb21ldGltZXMgMCBpcyByZXR1cm5lZCBpZiBDU0FDL0NEQUMgaXMKKwkgKiByZWFkIGJlZm9yZSB0aGUgRE1BIGNvbnRyb2xsZXIgZmluaXNoZWQgZGlzYWJsaW5nIHRoZSBjaGFubmVsLgorCSAqLworCWlmICghY3B1X2lzX29tYXAxNXh4KCkgJiYgb2Zmc2V0ID09IDApCisJCW9mZnNldCA9IGRtYV9yZWFkKENTQUMobGNoKSk7CisKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCisJCW9mZnNldCB8PSAoZG1hX3JlYWQoQ1NTQV9VKGxjaCkpIDw8IDE2KTsKIAogCXJldHVybiBvZmZzZXQ7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9zcmNfcG9zKTsKIAogLyoKICAqIFJldHVybnMgY3VycmVudCBwaHlzaWNhbCBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciB0aGUgZ2l2ZW4gRE1BIGNoYW5uZWwuCkBAIC05MDgsMjUgKzEwNTQsMzAgQEAKIHsKIAlkbWFfYWRkcl90IG9mZnNldCA9IDA7CiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCW9mZnNldCA9IChkbWFfYWRkcl90KSAoT01BUDFfRE1BX0NEU0FfTF9SRUcobGNoKSB8Ci0JCQkJICAgICAgIChPTUFQMV9ETUFfQ0RTQV9VX1JFRyhsY2gpIDw8IDE2KSk7CisJaWYgKGNwdV9pc19vbWFwMTV4eCgpKQorCQlvZmZzZXQgPSBkbWFfcmVhZChDUEMobGNoKSk7CisJZWxzZQorCQlvZmZzZXQgPSBkbWFfcmVhZChDREFDKGxjaCkpOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQotCQlvZmZzZXQgPSBPTUFQX0RNQV9DREFDX1JFRyhsY2gpOworCS8qCisJICogb21hcCAzLjIvMy4zIGVycmF0dW06IHNvbWV0aW1lcyAwIGlzIHJldHVybmVkIGlmIENTQUMvQ0RBQyBpcworCSAqIHJlYWQgYmVmb3JlIHRoZSBETUEgY29udHJvbGxlciBmaW5pc2hlZCBkaXNhYmxpbmcgdGhlIGNoYW5uZWwuCisJICovCisJaWYgKCFjcHVfaXNfb21hcDE1eHgoKSAmJiBvZmZzZXQgPT0gMCkKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ0RBQyhsY2gpKTsKKworCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKKwkJb2Zmc2V0IHw9IChkbWFfcmVhZChDRFNBX1UobGNoKSkgPDwgMTYpOwogCiAJcmV0dXJuIG9mZnNldDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX2RzdF9wb3MpOwogCi0vKgotICogUmV0dXJucyBjdXJyZW50IHNvdXJjZSB0cmFuc2ZlciBjb3VudGluZyBmb3IgdGhlIGdpdmVuIERNQSBjaGFubmVsLgotICogQ2FuIGJlIHVzZWQgdG8gbW9uaXRvciB0aGUgcHJvZ3Jlc3Mgb2YgYSB0cmFuc2ZlciBpbnNpZGUgYSBibG9jay4KLSAqIEl0IG11c3QgYmUgY2FsbGVkIHdpdGggZGlzYWJsZWQgaW50ZXJydXB0cy4KLSAqLwotaW50IG9tYXBfZ2V0X2RtYV9zcmNfYWRkcl9jb3VudGVyKGludCBsY2gpCitpbnQgb21hcF9nZXRfZG1hX2FjdGl2ZV9zdGF0dXMoaW50IGxjaCkKIHsKLQlyZXR1cm4gKGRtYV9hZGRyX3QpIE9NQVBfRE1BX0NTQUNfUkVHKGxjaCk7CisJcmV0dXJuIChkbWFfcmVhZChDQ1IobGNoKSkgJiBPTUFQX0RNQV9DQ1JfRU4pICE9IDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9hY3RpdmVfc3RhdHVzKTsKIAogaW50IG9tYXBfZG1hX3J1bm5pbmcodm9pZCkKIHsKQEAgLTkzOCw3ICsxMDg5LDcgQEAKIAkJCXJldHVybiAxOwogCiAJZm9yIChsY2ggPSAwOyBsY2ggPCBkbWFfY2hhbl9jb3VudDsgbGNoKyspCi0JCWlmIChPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgJiBPTUFQX0RNQV9DQ1JfRU4pCisJCWlmIChkbWFfcmVhZChDQ1IobGNoKSkgJiBPTUFQX0RNQV9DQ1JfRU4pCiAJCQlyZXR1cm4gMTsKIAogCXJldHVybiAwOwpAQCAtOTQ5LDcgKzExMDAsNyBAQAogICogRm9yIHRoaXMgRE1BIGxpbmsgdG8gc3RhcnQsIHlvdSBzdGlsbCBuZWVkIHRvIHN0YXJ0IChzZWUgb21hcF9zdGFydF9kbWEpCiAgKiB0aGUgZmlyc3Qgb25lLiBUaGF0IHdpbGwgZmlyZSB1cCB0aGUgZW50aXJlIHF1ZXVlLgogICovCi12b2lkIG9tYXBfZG1hX2xpbmtfbGNoIChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCit2b2lkIG9tYXBfZG1hX2xpbmtfbGNoKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSkKIHsKIAlpZiAob21hcF9kbWFfaW5fMTUxMF9tb2RlKCkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJETUEgbGlua2luZyBpcyBub3Qgc3VwcG9ydGVkIGluIDE1MTAgbW9kZVxuIik7CkBAIC05NjYsMTEgKzExMTcsMTIgQEAKIAogCWRtYV9jaGFuW2xjaF9oZWFkXS5uZXh0X2xjaCA9IGxjaF9xdWV1ZTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9kbWFfbGlua19sY2gpOwogCiAvKgogICogT25jZSB0aGUgRE1BIHF1ZXVlIGlzIHN0b3BwZWQsIHdlIGNhbiBkZXN0cm95IGl0LgogICovCi12b2lkIG9tYXBfZG1hX3VubGlua19sY2ggKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSkKK3ZvaWQgb21hcF9kbWFfdW5saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCiB7CiAJaWYgKG9tYXBfZG1hX2luXzE1MTBfbW9kZSgpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRE1BIGxpbmtpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiAxNTEwIG1vZGVcbiIpOwpAQCAtOTg1LDcgKzExMzcsNiBAQAogCQlkdW1wX3N0YWNrKCk7CiAJfQogCi0KIAlpZiAoKGRtYV9jaGFuW2xjaF9oZWFkXS5mbGFncyAmIE9NQVBfRE1BX0FDVElWRSkgfHwKIAkgICAgKGRtYV9jaGFuW2xjaF9oZWFkXS5mbGFncyAmIE9NQVBfRE1BX0FDVElWRSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJvbWFwX2RtYTogWW91IG5lZWQgdG8gc3RvcCB0aGUgRE1BIGNoYW5uZWxzICIKQEAgLTk5NSwxMiArMTE0NiwxNSBAQAogCiAJZG1hX2NoYW5bbGNoX2hlYWRdLm5leHRfbGNoID0gLTE7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX3VubGlua19sY2gpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWZuZGVmIENPTkZJR19BUkNIX09NQVAxCiAvKiBDcmVhdGUgY2hhaW4gb2YgRE1BIGNoYW5uZXNscyAqLwogc3RhdGljIHZvaWQgY3JlYXRlX2RtYV9sY2hfY2hhaW4oaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKQogewotCXUzMiB3OworCXUzMiBsOwogCiAJLyogQ2hlY2sgaWYgdGhpcyBpcyB0aGUgZmlyc3QgbGluayBpbiBjaGFpbiAqLwogCWlmIChkbWFfY2hhbltsY2hfaGVhZF0ubmV4dF9saW5rZWRfY2ggPT0gLTEpIHsKQEAgLTEwMjAsMTUgKzExNzQsMTUgQEAKIAkJCQkJbGNoX3F1ZXVlOwogCX0KIAotCXcgPSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaF9oZWFkKTsKLQl3ICY9IH4oMHgxZik7Ci0JdyB8PSBsY2hfcXVldWU7Ci0JT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2hfaGVhZCkgPSB3OworCWwgPSBkbWFfcmVhZChDTE5LX0NUUkwobGNoX2hlYWQpKTsKKwlsICY9IH4oMHgxZik7CisJbCB8PSBsY2hfcXVldWU7CisJZG1hX3dyaXRlKGwsIENMTktfQ1RSTChsY2hfaGVhZCkpOwogCi0JdyA9IE9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoX3F1ZXVlKTsKLQl3ICY9IH4oMHgxZik7Ci0JdyB8PSAoZG1hX2NoYW5bbGNoX3F1ZXVlXS5uZXh0X2xpbmtlZF9jaCk7Ci0JT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2hfcXVldWUpID0gdzsKKwlsID0gZG1hX3JlYWQoQ0xOS19DVFJMKGxjaF9xdWV1ZSkpOworCWwgJj0gfigweDFmKTsKKwlsIHw9IChkbWFfY2hhbltsY2hfcXVldWVdLm5leHRfbGlua2VkX2NoKTsKKwlkbWFfd3JpdGUobCwgQ0xOS19DVFJMKGxjaF9xdWV1ZSkpOwogfQogCiAvKioKQEAgLTEwNjMsNyArMTIxNyw3IEBACiAJfQogCiAJaWYgKHVubGlrZWx5KChub19vZl9jaGFucyA8IDEKLQkJCXx8IG5vX29mX2NoYW5zID4gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJCQl8fCBub19vZl9jaGFucyA+IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgTnVtYmVyIG9mIGNoYW5uZWxzIHJlcXVlc3RlZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTExMTgsNiArMTI3Miw3IEBACiAJCWZvciAoaSA9IDA7IGkgPCAobm9fb2ZfY2hhbnMgLSAxKTsgaSsrKQogCQkJY3JlYXRlX2RtYV9sY2hfY2hhaW4oY2hhbm5lbHNbaV0sIGNoYW5uZWxzW2kgKyAxXSk7CiAJfQorCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfcmVxdWVzdF9kbWFfY2hhaW4pOwpAQCAtMTE0MCw3ICsxMjk1LDcgQEAKIAogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KIAlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMAotCQkJfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJCQl8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTE2MCw2ICsxMzE1LDcgQEAKIAkJICovCiAJCW9tYXBfc2V0X2RtYV9wYXJhbXMoY2hhbm5lbHNbaV0sICZwYXJhbXMpOwogCX0KKwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX21vZGlmeV9kbWFfY2hhaW5fcGFyYW1zKTsKQEAgLTExNzgsNyArMTMzNCw3IEBACiAJdTMyIGk7CiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCi0JaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTEyMDMsNiArMTM1OSw3IEBACiAJZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmxpbmtlZF9kbWFjaF9xID0gTlVMTDsKIAlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fbW9kZSA9IC0xOwogCWRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5jaGFpbl9zdGF0ZSA9IC0xOworCiAJcmV0dXJuICgwKTsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9mcmVlX2RtYV9jaGFpbik7CkBAIC0xMjE4LDcgKzEzNzUsNyBAQAogaW50IG9tYXBfZG1hX2NoYWluX3N0YXR1cyhpbnQgY2hhaW5faWQpCiB7CiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjMzLDYgKzEzOTAsNyBAQAogCiAJaWYgKE9NQVBfRE1BX0NIQUlOX1FFTVBUWShjaGFpbl9pZCkpCiAJCXJldHVybiBPTUFQX0RNQV9DSEFJTl9JTkFDVElWRTsKKwogCXJldHVybiBPTUFQX0RNQV9DSEFJTl9BQ1RJVkU7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2NoYWluX3N0YXR1cyk7CkBAIC0xMjU1LDExICsxNDEzLDEzIEBACiAJCQlpbnQgZWxlbV9jb3VudCwgaW50IGZyYW1lX2NvdW50LCB2b2lkICpjYWxsYmtfZGF0YSkKIHsKIAlpbnQgKmNoYW5uZWxzOwotCXUzMiB3LCBsY2g7CisJdTMyIGwsIGxjaDsKIAlpbnQgc3RhcnRfZG1hID0gMDsKIAotCS8qIGlmIGJ1ZmZlciBzaXplIGlzIGxlc3MgdGhhbiAxIHRoZW4gdGhlcmUgaXMKLQkgKiBubyB1c2Ugb2Ygc3RhcnRpbmcgdGhlIGNoYWluICovCisJLyoKKwkgKiBpZiBidWZmZXIgc2l6ZSBpcyBsZXNzIHRoYW4gMSB0aGVuIHRoZXJlIGlzCisJICogbm8gdXNlIG9mIHN0YXJ0aW5nIHRoZSBjaGFpbgorCSAqLwogCWlmIChlbGVtX2NvdW50IDwgMSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgYnVmZmVyIHNpemVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTEyNjcsNyArMTQyNyw3IEBACiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCiAJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAKLQkJCXx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCQkJfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTEyOTYsMjAgKzE0NTYsMjQgQEAKIAogCS8qIFNldCB0aGUgcGFyYW1zIHRvIHRoZSBmcmVlIGNoYW5uZWwgKi8KIAlpZiAoc3JjX3N0YXJ0ICE9IDApCi0JCU9NQVAyX0RNQV9DU1NBX1JFRyhsY2gpID0gc3JjX3N0YXJ0OworCQlkbWFfd3JpdGUoc3JjX3N0YXJ0LCBDU1NBKGxjaCkpOwogCWlmIChkZXN0X3N0YXJ0ICE9IDApCi0JCU9NQVAyX0RNQV9DRFNBX1JFRyhsY2gpID0gZGVzdF9zdGFydDsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQsIENEU0EobGNoKSk7CiAKIAkvKiBXcml0ZSB0aGUgYnVmZmVyIHNpemUgKi8KLQlPTUFQX0RNQV9DRU5fUkVHKGxjaCkgPSBlbGVtX2NvdW50OwotCU9NQVBfRE1BX0NGTl9SRUcobGNoKSA9IGZyYW1lX2NvdW50OworCWRtYV93cml0ZShlbGVtX2NvdW50LCBDRU4obGNoKSk7CisJZG1hX3dyaXRlKGZyYW1lX2NvdW50LCBDRk4obGNoKSk7CiAKLQkvKiBJZiB0aGUgY2hhaW4gaXMgZHluYW1pY2FsbHkgbGlua2VkLAotCSAqIHRoZW4gd2UgbWF5IGhhdmUgdG8gc3RhcnQgdGhlIGNoYWluIGlmIGl0cyBub3QgYWN0aXZlICovCisJLyoKKwkgKiBJZiB0aGUgY2hhaW4gaXMgZHluYW1pY2FsbHkgbGlua2VkLAorCSAqIHRoZW4gd2UgbWF5IGhhdmUgdG8gc3RhcnQgdGhlIGNoYWluIGlmIGl0cyBub3QgYWN0aXZlCisJICovCiAJaWYgKGRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5jaGFpbl9tb2RlID09IE9NQVBfRE1BX0RZTkFNSUNfQ0hBSU4pIHsKIAotCQkvKiBJbiBEeW5hbWljIGNoYWluLCBpZiB0aGUgY2hhaW4gaXMgbm90IHN0YXJ0ZWQsCi0JCSAqIHF1ZXVlIHRoZSBjaGFubmVsICovCisJCS8qCisJCSAqIEluIER5bmFtaWMgY2hhaW4sIGlmIHRoZSBjaGFpbiBpcyBub3Qgc3RhcnRlZCwKKwkJICogcXVldWUgdGhlIGNoYW5uZWwKKwkJICovCiAJCWlmIChkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fc3RhdGUgPT0KIAkJCQkJCURNQV9DSEFJTl9OT1RTVEFSVEVEKSB7CiAJCQkvKiBFbmFibGUgdGhlIGxpbmsgaW4gcHJldmlvdXMgY2hhbm5lbCAqLwpAQCAtMTMxOSw4ICsxNDgzLDEwIEBACiAJCQlkbWFfY2hhbltsY2hdLnN0YXRlID0gRE1BX0NIX1FVRVVFRDsKIAkJfQogCi0JCS8qIENoYWluIGlzIGFscmVhZHkgc3RhcnRlZCwgbWFrZSBzdXJlIGl0cyBhY3RpdmUsCi0JCSAqIGlmIG5vdCB0aGVuIHN0YXJ0IHRoZSBjaGFpbiAqLworCQkvKgorCQkgKiBDaGFpbiBpcyBhbHJlYWR5IHN0YXJ0ZWQsIG1ha2Ugc3VyZSBpdHMgYWN0aXZlLAorCQkgKiBpZiBub3QgdGhlbiBzdGFydCB0aGUgY2hhaW4KKwkJICovCiAJCWVsc2UgewogCQkJc3RhcnRfZG1hID0gMTsKIApAQCAtMTMyOSw4ICsxNDk1LDggQEAKIAkJCQllbmFibGVfbG5rKGRtYV9jaGFuW2xjaF0ucHJldl9saW5rZWRfY2gpOwogCQkJCWRtYV9jaGFuW2xjaF0uc3RhdGUgPSBETUFfQ0hfUVVFVUVEOwogCQkJCXN0YXJ0X2RtYSA9IDA7Ci0JCQkJaWYgKDAgPT0gKCgxIDw8IDcpICYgKE9NQVBfRE1BX0NDUl9SRUcKLQkJCQkJKGRtYV9jaGFuW2xjaF0ucHJldl9saW5rZWRfY2gpKSkpIHsKKwkJCQlpZiAoMCA9PSAoKDEgPDwgNykgJiBkbWFfcmVhZCgKKwkJCQkJQ0NSKGRtYV9jaGFuW2xjaF0ucHJldl9saW5rZWRfY2gpKSkpIHsKIAkJCQkJZGlzYWJsZV9sbmsoZG1hX2NoYW5bbGNoXS4KIAkJCQkJCSAgICBwcmV2X2xpbmtlZF9jaCk7CiAJCQkJCXByX2RlYnVnKCJcbiBwcmV2IGNoIGlzIHN0b3BwZWRcbiIpOwpAQCAtMTM0NiwyNyArMTUxMiwyOCBAQAogCQkJfQogCQkJb21hcF9lbmFibGVfY2hhbm5lbF9pcnEobGNoKTsKIAotCQkJdyA9IE9NQVBfRE1BX0NDUl9SRUcobGNoKTsKKwkJCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAKLQkJCWlmICgoMCA9PSAodyAmICgxIDw8IDI0KSkpKQotCQkJCXcgJj0gfigxIDw8IDI1KTsKKwkJCWlmICgoMCA9PSAobCAmICgxIDw8IDI0KSkpKQorCQkJCWwgJj0gfigxIDw8IDI1KTsKIAkJCWVsc2UKLQkJCQl3IHw9ICgxIDw8IDI1KTsKKwkJCQlsIHw9ICgxIDw8IDI1KTsKIAkJCWlmIChzdGFydF9kbWEgPT0gMSkgewotCQkJCWlmICgwID09ICh3ICYgKDEgPDwgNykpKSB7Ci0JCQkJCXcgfD0gKDEgPDwgNyk7CisJCQkJaWYgKDAgPT0gKGwgJiAoMSA8PCA3KSkpIHsKKwkJCQkJbCB8PSAoMSA8PCA3KTsKIAkJCQkJZG1hX2NoYW5bbGNoXS5zdGF0ZSA9IERNQV9DSF9TVEFSVEVEOwogCQkJCQlwcl9kZWJ1Zygic3RhcnRpbmcgJWRcbiIsIGxjaCk7Ci0JCQkJCU9NQVBfRE1BX0NDUl9SRUcobGNoKSA9IHc7CisJCQkJCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CiAJCQkJfSBlbHNlCiAJCQkJCXN0YXJ0X2RtYSA9IDA7CiAJCQl9IGVsc2UgewotCQkJCWlmICgwID09ICh3ICYgKDEgPDwgNykpKQotCQkJCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB3OworCQkJCWlmICgwID09IChsICYgKDEgPDwgNykpKQorCQkJCQlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCQkJfQogCQkJZG1hX2NoYW5bbGNoXS5mbGFncyB8PSBPTUFQX0RNQV9BQ1RJVkU7CiAJCX0KIAl9CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9kbWFfY2hhaW5fYV90cmFuc2Zlcik7CkBAIC0xMzgyLDkgKzE1NDksOSBAQAogaW50IG9tYXBfc3RhcnRfZG1hX2NoYWluX3RyYW5zZmVycyhpbnQgY2hhaW5faWQpCiB7CiAJaW50ICpjaGFubmVsczsKLQl1MzIgdywgaTsKKwl1MzIgbCwgaTsKIAotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNDA2LDE4ICsxNTczLDE5IEBACiAJCW9tYXBfZW5hYmxlX2NoYW5uZWxfaXJxKGNoYW5uZWxzWzBdKTsKIAl9CiAKLQl3ID0gT01BUF9ETUFfQ0NSX1JFRyhjaGFubmVsc1swXSk7Ci0JdyB8PSAoMSA8PCA3KTsKKwlsID0gZG1hX3JlYWQoQ0NSKGNoYW5uZWxzWzBdKSk7CisJbCB8PSAoMSA8PCA3KTsKIAlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fc3RhdGUgPSBETUFfQ0hBSU5fU1RBUlRFRDsKIAlkbWFfY2hhbltjaGFubmVsc1swXV0uc3RhdGUgPSBETUFfQ0hfU1RBUlRFRDsKIAotCWlmICgoMCA9PSAodyAmICgxIDw8IDI0KSkpKQotCQl3ICY9IH4oMSA8PCAyNSk7CisJaWYgKCgwID09IChsICYgKDEgPDwgMjQpKSkpCisJCWwgJj0gfigxIDw8IDI1KTsKIAllbHNlCi0JCXcgfD0gKDEgPDwgMjUpOwotCU9NQVBfRE1BX0NDUl9SRUcoY2hhbm5lbHNbMF0pID0gdzsKKwkJbCB8PSAoMSA8PCAyNSk7CisJZG1hX3dyaXRlKGwsIENDUihjaGFubmVsc1swXSkpOwogCiAJZG1hX2NoYW5bY2hhbm5lbHNbMF1dLmZsYWdzIHw9IE9NQVBfRE1BX0FDVElWRTsKKwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX3N0YXJ0X2RtYV9jaGFpbl90cmFuc2ZlcnMpOwpAQCAtMTQzMywxMSArMTYwMSwxMSBAQAogaW50IG9tYXBfc3RvcF9kbWFfY2hhaW5fdHJhbnNmZXJzKGludCBjaGFpbl9pZCkKIHsKIAlpbnQgKmNoYW5uZWxzOwotCXUzMiB3LCBpOworCXUzMiBsLCBpOwogCXUzMiBzeXNfY2Y7CiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCi0JaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE0NDksMjEgKzE2MTcsMjIgQEAKIAl9CiAJY2hhbm5lbHMgPSBkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ubGlua2VkX2RtYWNoX3E7CiAKLQkvKiBETUEgRXJyYXRhOgorCS8qCisJICogRE1BIEVycmF0YToKIAkgKiBTcGVjaWFsIHByb2dyYW1taW5nIG1vZGVsIG5lZWRlZCB0byBkaXNhYmxlIERNQSBiZWZvcmUgZW5kIG9mIGJsb2NrCiAJICovCi0Jc3lzX2NmID0gb21hcF9yZWFkbChPTUFQX0RNQTRfT0NQX1NZU0NPTkZJRyk7Ci0JdyA9IHN5c19jZjsKKwlzeXNfY2YgPSBkbWFfcmVhZChPQ1BfU1lTQ09ORklHKTsKKwlsID0gc3lzX2NmOwogCS8qIE1pZGRsZSBtb2RlIHJlZyBzZXQgbm8gU3RhbmRieSAqLwotCXcgJj0gfigoMSA8PCAxMil8KDEgPDwgMTMpKTsKLQlvbWFwX3dyaXRlbCh3LCBPTUFQX0RNQTRfT0NQX1NZU0NPTkZJRyk7CisJbCAmPSB+KCgxIDw8IDEyKXwoMSA8PCAxMykpOworCWRtYV93cml0ZShsLCBPQ1BfU1lTQ09ORklHKTsKIAogCWZvciAoaSA9IDA7IGkgPCBkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ubm9fb2ZfbGNoc19saW5rZWQ7IGkrKykgewogCiAJCS8qIFN0b3AgdGhlIENoYW5uZWwgdHJhbnNtaXNzaW9uICovCi0JCXcgPSBPTUFQX0RNQV9DQ1JfUkVHKGNoYW5uZWxzW2ldKTsKLQkJdyAmPSB+KDEgPDwgNyk7Ci0JCU9NQVBfRE1BX0NDUl9SRUcoY2hhbm5lbHNbaV0pID0gdzsKKwkJbCA9IGRtYV9yZWFkKENDUihjaGFubmVsc1tpXSkpOworCQlsICY9IH4oMSA8PCA3KTsKKwkJZG1hX3dyaXRlKGwsIENDUihjaGFubmVsc1tpXSkpOwogCiAJCS8qIERpc2FibGUgdGhlIGxpbmsgaW4gYWxsIHRoZSBjaGFubmVscyAqLwogCQlkaXNhYmxlX2xuayhjaGFubmVsc1tpXSk7CkBAIC0xNDc2LDcgKzE2NDUsOCBAQAogCU9NQVBfRE1BX0NIQUlOX1FJTklUKGNoYWluX2lkKTsKIAogCS8qIEVycmF0YSAtIHB1dCBpbiB0aGUgb2xkIHZhbHVlICovCi0Jb21hcF93cml0ZWwoc3lzX2NmLCBPTUFQX0RNQTRfT0NQX1NZU0NPTkZJRyk7CisJZG1hX3dyaXRlKHN5c19jZiwgT0NQX1NZU0NPTkZJRyk7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9zdG9wX2RtYV9jaGFpbl90cmFuc2ZlcnMpOwpAQCAtMTQ5OSw3ICsxNjY5LDcgQEAKIAlpbnQgKmNoYW5uZWxzOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNTE3LDggKzE2ODcsOCBAQAogCS8qIEdldCB0aGUgY3VycmVudCBjaGFubmVsICovCiAJbGNoID0gY2hhbm5lbHNbZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLnFfaGVhZF07CiAKLQkqZWkgPSBPTUFQMl9ETUFfQ0NFTl9SRUcobGNoKTsKLQkqZmkgPSBPTUFQMl9ETUFfQ0NGTl9SRUcobGNoKTsKKwkqZWkgPSBkbWFfcmVhZChDQ0VOKGxjaCkpOworCSpmaSA9IGRtYV9yZWFkKENDRk4obGNoKSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE1MzksNyArMTcwOSw3IEBACiAJaW50ICpjaGFubmVsczsKIAogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTU1NSw3ICsxNzI1LDcgQEAKIAkvKiBHZXQgdGhlIGN1cnJlbnQgY2hhbm5lbCAqLwogCWxjaCA9IGNoYW5uZWxzW2RtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5xX2hlYWRdOwogCi0JcmV0dXJuIChPTUFQX0RNQV9DREFDX1JFRyhsY2gpKTsKKwlyZXR1cm4gZG1hX3JlYWQoQ0RBQyhsY2gpKTsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX2NoYWluX2RzdF9wb3MpOwogCkBAIC0xNTczLDcgKzE3NDMsNyBAQAogCWludCAqY2hhbm5lbHM7CiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCi0JaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE1ODksMTAgKzE3NTksMTAgQEAKIAkvKiBHZXQgdGhlIGN1cnJlbnQgY2hhbm5lbCAqLwogCWxjaCA9IGNoYW5uZWxzW2RtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5xX2hlYWRdOwogCi0JcmV0dXJuIChPTUFQX0RNQV9DU0FDX1JFRyhsY2gpKTsKKwlyZXR1cm4gZG1hX3JlYWQoQ1NBQyhsY2gpKTsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX2NoYWluX3NyY19wb3MpOwotI2VuZGlmCisjZW5kaWYJLyogaWZuZGVmIENPTkZJR19BUkNIX09NQVAxICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTE2MDAsMTMgKzE3NzAsMTMgQEAKIAogc3RhdGljIGludCBvbWFwMV9kbWFfaGFuZGxlX2NoKGludCBjaCkKIHsKLQl1MTYgY3NyOworCXUzMiBjc3I7CiAKIAlpZiAoZW5hYmxlXzE1MTBfbW9kZSAmJiBjaCA+PSA2KSB7CiAJCWNzciA9IGRtYV9jaGFuW2NoXS5zYXZlZF9jc3I7CiAJCWRtYV9jaGFuW2NoXS5zYXZlZF9jc3IgPSAwOwogCX0gZWxzZQotCQljc3IgPSBPTUFQX0RNQV9DU1JfUkVHKGNoKTsKKwkJY3NyID0gZG1hX3JlYWQoQ1NSKGNoKSk7CiAJaWYgKGVuYWJsZV8xNTEwX21vZGUgJiYgY2ggPD0gMiAmJiAoY3NyID4+IDcpICE9IDApIHsKIAkJZG1hX2NoYW5bY2ggKyA2XS5zYXZlZF9jc3IgPSBjc3IgPj4gNzsKIAkJY3NyICY9IDB4N2Y7CkBAIC0xNjI4LDYgKzE3OTgsNyBAQAogCQlkbWFfY2hhbltjaF0uZmxhZ3MgJj0gfk9NQVBfRE1BX0FDVElWRTsKIAlpZiAobGlrZWx5KGRtYV9jaGFuW2NoXS5jYWxsYmFjayAhPSBOVUxMKSkKIAkJZG1hX2NoYW5bY2hdLmNhbGxiYWNrKGNoLCBjc3IsIGRtYV9jaGFuW2NoXS5kYXRhKTsKKwogCXJldHVybiAxOwogfQogCkBAIC0xNjU4LDEyICsxODI5LDEzIEBACiAKIHN0YXRpYyBpbnQgb21hcDJfZG1hX2hhbmRsZV9jaChpbnQgY2gpCiB7Ci0JdTMyIHN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcoY2gpOworCXUzMiBzdGF0dXMgPSBkbWFfcmVhZChDU1IoY2gpKTsKIAogCWlmICghc3RhdHVzKSB7CiAJCWlmIChwcmludGtfcmF0ZWxpbWl0KCkpCi0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJTcHVyaW91cyBETUEgSVJRIGZvciBsY2ggJWRcbiIsIGNoKTsKLQkJb21hcF93cml0ZWwoMSA8PCBjaCwgT01BUF9ETUE0X0lSUVNUQVRVU19MMCk7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJTcHVyaW91cyBETUEgSVJRIGZvciBsY2ggJWRcbiIsCisJCQkJY2gpOworCQlkbWFfd3JpdGUoMSA8PCBjaCwgSVJRU1RBVFVTX0wwKTsKIAkJcmV0dXJuIDA7CiAJfQogCWlmICh1bmxpa2VseShkbWFfY2hhbltjaF0uZGV2X2lkID09IC0xKSkgewpAQCAtMTY4NiwxNCArMTg1OCwxNCBAQAogCQlwcmludGsoS0VSTl9JTkZPICJETUEgbWlzYWxpZ25lZCBlcnJvciB3aXRoIGRldmljZSAlZFxuIiwKIAkJICAgICAgIGRtYV9jaGFuW2NoXS5kZXZfaWQpOwogCi0JT01BUF9ETUFfQ1NSX1JFRyhjaCkgPSBPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0s7Ci0Jb21hcF93cml0ZWwoMSA8PCBjaCwgT01BUF9ETUE0X0lSUVNUQVRVU19MMCk7CisJZG1hX3dyaXRlKE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSywgQ1NSKGNoKSk7CisJZG1hX3dyaXRlKDEgPDwgY2gsIElSUVNUQVRVU19MMCk7CiAKIAkvKiBJZiB0aGUgY2ggaXMgbm90IGNoYWluZWQgdGhlbiBjaGFpbl9pZCB3aWxsIGJlIC0xICovCiAJaWYgKGRtYV9jaGFuW2NoXS5jaGFpbl9pZCAhPSAtMSkgewogCQlpbnQgY2hhaW5faWQgPSBkbWFfY2hhbltjaF0uY2hhaW5faWQ7CiAJCWRtYV9jaGFuW2NoXS5zdGF0ZSA9IERNQV9DSF9OT1RTVEFSVEVEOwotCQlpZiAoT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhjaCkgJiAoMSA8PCAxNSkpCisJCWlmIChkbWFfcmVhZChDTE5LX0NUUkwoY2gpKSAmICgxIDw8IDE1KSkKIAkJCWRtYV9jaGFuW2RtYV9jaGFuW2NoXS5uZXh0X2xpbmtlZF9jaF0uc3RhdGUgPQogCQkJCQkJCURNQV9DSF9TVEFSVEVEOwogCQlpZiAoZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX21vZGUgPT0KQEAgLTE3MDMsMTMgKzE4NzUsMTMgQEAKIAkJaWYgKCFPTUFQX0RNQV9DSEFJTl9RRU1QVFkoY2hhaW5faWQpKQogCQkJT01BUF9ETUFfQ0hBSU5fSU5DUUhFQUQoY2hhaW5faWQpOwogCi0JCXN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcoY2gpOworCQlzdGF0dXMgPSBkbWFfcmVhZChDU1IoY2gpKTsKIAl9CiAKIAlpZiAobGlrZWx5KGRtYV9jaGFuW2NoXS5jYWxsYmFjayAhPSBOVUxMKSkKIAkJZG1hX2NoYW5bY2hdLmNhbGxiYWNrKGNoLCBzdGF0dXMsIGRtYV9jaGFuW2NoXS5kYXRhKTsKIAotCU9NQVBfRE1BX0NTUl9SRUcoY2gpID0gc3RhdHVzOworCWRtYV93cml0ZShzdGF0dXMsIENTUihjaCkpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNzIwLDEzICsxODkyLDEzIEBACiAJdTMyIHZhbDsKIAlpbnQgaTsKIAotCXZhbCA9IG9tYXBfcmVhZGwoT01BUF9ETUE0X0lSUVNUQVRVU19MMCk7CisJdmFsID0gZG1hX3JlYWQoSVJRU1RBVFVTX0wwKTsKIAlpZiAodmFsID09IDApIHsKIAkJaWYgKHByaW50a19yYXRlbGltaXQoKSkKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlNwdXJpb3VzIERNQSBJUlFcbiIpOwogCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CiAJfQotCWZvciAoaSA9IDA7IGkgPCBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UICYmIHZhbCAhPSAwOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgZG1hX2xjaF9jb3VudCAmJiB2YWwgIT0gMDsgaSsrKSB7CiAJCWlmICh2YWwgJiAxKQogCQkJb21hcDJfZG1hX2hhbmRsZV9jaChpKTsKIAkJdmFsID4+PSAxOwpAQCAtMTc1MCw3ICsxOTIyLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgbGNkX2RtYV9pbmZvIHsKIAlzcGlubG9ja190IGxvY2s7CiAJaW50IHJlc2VydmVkOwotCXZvaWQgKCogY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpOworCXZvaWQgKCpjYWxsYmFjaykodTE2IHN0YXR1cywgdm9pZCAqZGF0YSk7CiAJdm9pZCAqY2JfZGF0YTsKIAogCWludCBhY3RpdmU7CkBAIC0xNzcyLDYgKzE5NDQsNyBAQAogCWxjZF9kbWEueHJlcyA9IGZiX3hyZXM7CiAJbGNkX2RtYS55cmVzID0gZmJfeXJlczsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMSk7CiAKIHZvaWQgb21hcF9zZXRfbGNkX2RtYV9zcmNfcG9ydChpbnQgcG9ydCkKIHsKQEAgLTE3ODIsMTIgKzE5NTUsMTMgQEAKIHsKIAlsY2RfZG1hLmV4dF9jdHJsID0gZXh0ZXJuYWw7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfZXh0X2NvbnRyb2xsZXIpOwogCiB2b2lkIG9tYXBfc2V0X2xjZF9kbWFfc2luZ2xlX3RyYW5zZmVyKGludCBzaW5nbGUpCiB7CiAJbGNkX2RtYS5zaW5nbGVfdHJhbnNmZXIgPSBzaW5nbGU7CiB9Ci0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9zaW5nbGVfdHJhbnNmZXIpOwogCiB2b2lkIG9tYXBfc2V0X2xjZF9kbWFfYjFfcm90YXRpb24oaW50IHJvdGF0ZSkKIHsKQEAgLTE3OTgsNiArMTk3Miw3IEBACiAJfQogCWxjZF9kbWEucm90YXRlID0gcm90YXRlOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3JvdGF0aW9uKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX21pcnJvcihpbnQgbWlycm9yKQogewpAQCAtMTgwNyw2ICsxOTgyLDcgQEAKIAl9CiAJbGNkX2RtYS5taXJyb3IgPSBtaXJyb3I7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfbWlycm9yKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX3Z4cmVzKHVuc2lnbmVkIGxvbmcgdnhyZXMpCiB7CkBAIC0xODE3LDYgKzE5OTMsNyBAQAogCX0KIAlsY2RfZG1hLnZ4cmVzID0gdnhyZXM7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfdnhyZXMpOwogCiB2b2lkIG9tYXBfc2V0X2xjZF9kbWFfYjFfc2NhbGUodW5zaWduZWQgaW50IHhzY2FsZSwgdW5zaWduZWQgaW50IHlzY2FsZSkKIHsKQEAgLTE4MjcsNiArMjAwNCw3IEBACiAJbGNkX2RtYS54c2NhbGUgPSB4c2NhbGU7CiAJbGNkX2RtYS55c2NhbGUgPSB5c2NhbGU7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfc2NhbGUpOwogCiBzdGF0aWMgdm9pZCBzZXRfYjFfcmVncyh2b2lkKQogewpAQCAtMTg1Nyw4ICsyMDM1LDExIEBACiAJeHNjYWxlID0gbGNkX2RtYS54c2NhbGUgPyBsY2RfZG1hLnhzY2FsZSA6IDE7CiAJeXNjYWxlID0gbGNkX2RtYS55c2NhbGUgPyBsY2RfZG1hLnlzY2FsZSA6IDE7CiAJQlVHX09OKHZ4cmVzIDwgbGNkX2RtYS54cmVzKTsKLSNkZWZpbmUgUElYQUREUih4LHkpIChsY2RfZG1hLmFkZHIgKyAoKHkpICogdnhyZXMgKiB5c2NhbGUgKyAoeCkgKiB4c2NhbGUpICogZXMpCisKKyNkZWZpbmUgUElYQUREUih4LCB5KSAobGNkX2RtYS5hZGRyICsJCQkJCVwKKwkJKCh5KSAqIHZ4cmVzICogeXNjYWxlICsgKHgpICogeHNjYWxlKSAqIGVzKQogI2RlZmluZSBQSVhTVEVQKHN4LCBzeSwgZHgsIGR5KSAoUElYQUREUihkeCwgZHkpIC0gUElYQUREUihzeCwgc3kpIC0gZXMgKyAxKQorCiAJc3dpdGNoIChsY2RfZG1hLnJvdGF0ZSkgewogCWNhc2UgMDoKIAkJaWYgKCFsY2RfZG1hLm1pcnJvcikgewpAQCAtMTg2Nyw4ICsyMDQ4LDggQEAKIAkJCS8qIDE1MTAgRE1BIHJlcXVpcmVzIHRoZSBib3R0b20gYWRkcmVzcyB0byBiZSAyIG1vcmUKIAkJCSAqIHRoYW4gdGhlIGFjdHVhbCBsYXN0IG1lbW9yeSBhY2Nlc3MgbG9jYXRpb24uICovCiAJCQlpZiAob21hcF9kbWFfaW5fMTUxMF9tb2RlKCkgJiYKLQkJCSAgICBsY2RfZG1hLmRhdGFfdHlwZSA9PSBPTUFQX0RNQV9EQVRBX1RZUEVfUzMyKQotCQkJCWJvdHRvbSArPSAyOworCQkJCWxjZF9kbWEuZGF0YV90eXBlID09IE9NQVBfRE1BX0RBVEFfVFlQRV9TMzIpCisJCQkJCWJvdHRvbSArPSAyOwogCQkJZWkgPSBQSVhTVEVQKDAsIDAsIDEsIDApOwogCQkJZmkgPSBQSVhTVEVQKGxjZF9kbWEueHJlcyAtIDEsIDAsIDAsIDEpOwogCQl9IGVsc2UgewpAQCAtMTk5NSw3ICsyMTc2LDcgQEAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLWludCBvbWFwX3JlcXVlc3RfbGNkX2RtYSh2b2lkICgqIGNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKSwKK2ludCBvbWFwX3JlcXVlc3RfbGNkX2RtYSh2b2lkICgqY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJIHZvaWQgKmRhdGEpCiB7CiAJc3Bpbl9sb2NrX2lycSgmbGNkX2RtYS5sb2NrKTsKQEAgLTIwMjEsNiArMjIwMiw3IEBACiAKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9yZXF1ZXN0X2xjZF9kbWEpOwogCiB2b2lkIG9tYXBfZnJlZV9sY2RfZG1hKHZvaWQpCiB7CkBAIC0yMDM3LDEyICsyMjE5LDE0IEBACiAJbGNkX2RtYS5yZXNlcnZlZCA9IDA7CiAJc3Bpbl91bmxvY2soJmxjZF9kbWEubG9jayk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZnJlZV9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX2VuYWJsZV9sY2RfZG1hKHZvaWQpCiB7CiAJdTE2IHc7CiAKLQkvKiBTZXQgdGhlIEVuYWJsZSBiaXQgb25seSBpZiBhbiBleHRlcm5hbCBjb250cm9sbGVyIGlzCisJLyoKKwkgKiBTZXQgdGhlIEVuYWJsZSBiaXQgb25seSBpZiBhbiBleHRlcm5hbCBjb250cm9sbGVyIGlzCiAJICogY29ubmVjdGVkLiBPdGhlcndpc2UgdGhlIE9NQVAgaW50ZXJuYWwgY29udHJvbGxlciB3aWxsCiAJICogc3RhcnQgdGhlIHRyYW5zZmVyIHdoZW4gaXQgZ2V0cyBlbmFibGVkLgogCSAqLwpAQCAtMjA1OSw2ICsyMjQzLDcgQEAKIAl3IHw9IDEgPDwgNzsKIAlvbWFwX3dyaXRldyh3LCBPTUFQMTYxMF9ETUFfTENEX0NDUik7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZW5hYmxlX2xjZF9kbWEpOwogCiB2b2lkIG9tYXBfc2V0dXBfbGNkX2RtYSh2b2lkKQogewpAQCAtMjA3NCwxNiArMjI1OSwxOCBAQAogCQl1MTYgdzsKIAogCQl3ID0gb21hcF9yZWFkdyhPTUFQMTYxMF9ETUFfTENEX0NDUik7Ci0JCS8qIElmIERNQSB3YXMgYWxyZWFkeSBhY3RpdmUgc2V0IHRoZSBlbmRfcHJvZyBiaXQgdG8gaGF2ZQorCQkvKgorCQkgKiBJZiBETUEgd2FzIGFscmVhZHkgYWN0aXZlIHNldCB0aGUgZW5kX3Byb2cgYml0IHRvIGhhdmUKIAkJICogdGhlIHByb2dyYW1tZWQgcmVnaXN0ZXIgc2V0IGxvYWRlZCBpbnRvIHRoZSBhY3RpdmUKIAkJICogcmVnaXN0ZXIgc2V0LgogCQkgKi8KIAkJdyB8PSAxIDw8IDExOwkJLyogRW5kX3Byb2cgKi8KIAkJaWYgKCFsY2RfZG1hLnNpbmdsZV90cmFuc2ZlcikKLQkgICAgICAgIAl3IHw9ICgzIDw8IDgpOwkvKiBBdXRvX2luaXQsIHJlcGVhdCAqLworCQkJdyB8PSAoMyA8PCA4KTsJLyogQXV0b19pbml0LCByZXBlYXQgKi8KIAkJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DQ1IpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXR1cF9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX3N0b3BfbGNkX2RtYSh2b2lkKQogewpAQCAtMjEwMSw2ICsyMjg4LDcgQEAKIAl3ICY9IH4oMSA8PCA4KTsKIAlvbWFwX3dyaXRldyh3LCBPTUFQMTYxMF9ETUFfTENEX0NUUkwpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfbGNkX2RtYSk7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTIxMDgsMjcgKzIyOTYsNTUgQEAKIHsKIAlpbnQgY2gsIHI7CiAKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKKwkJb21hcF9kbWFfYmFzZSA9ICh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKE9NQVAxX0RNQV9CQVNFKTsKKwkJZG1hX2xjaF9jb3VudCA9IE9NQVAxX0xPR0lDQUxfRE1BX0NIX0NPVU5UOworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKKwkJb21hcF9kbWFfYmFzZSA9ICh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKE9NQVAyNFhYX0RNQTRfQkFTRSk7CisJCWRtYV9sY2hfY291bnQgPSBPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CisJfSBlbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQlvbWFwX2RtYV9iYXNlID0gKHZvaWQgX19pb21lbSAqKUlPX0FERFJFU1MoT01BUDM0WFhfRE1BNF9CQVNFKTsKKwkJZG1hX2xjaF9jb3VudCA9IE9NQVBfRE1BNF9MT0dJQ0FMX0RNQV9DSF9DT1VOVDsKKwl9IGVsc2UgeworCQlwcl9lcnIoIkRNQSBpbml0IGZhaWxlZCBmb3IgdW5zdXBwb3J0ZWQgb21hcFxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWRtYV9jaGFuID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG9tYXBfZG1hX2xjaCkgKiBkbWFfbGNoX2NvdW50LAorCQkJCUdGUF9LRVJORUwpOworCWlmICghZG1hX2NoYW4pCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CisJCWRtYV9saW5rZWRfbGNoID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRtYV9saW5rX2luZm8pICoKKwkJCQkJCWRtYV9sY2hfY291bnQsIEdGUF9LRVJORUwpOworCQlpZiAoIWRtYV9saW5rZWRfbGNoKSB7CisJCQlrZnJlZShkbWFfY2hhbik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCX0KKwogCWlmIChjcHVfaXNfb21hcDE1eHgoKSkgewogCQlwcmludGsoS0VSTl9JTkZPICJETUEgc3VwcG9ydCBmb3IgT01BUDE1eHggaW5pdGlhbGl6ZWRcbiIpOwogCQlkbWFfY2hhbl9jb3VudCA9IDk7CiAJCWVuYWJsZV8xNTEwX21vZGUgPSAxOwogCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAxNnh4KCkgfHwgY3B1X2lzX29tYXA3MzAoKSkgewogCQlwcmludGsoS0VSTl9JTkZPICJPTUFQIERNQSBoYXJkd2FyZSB2ZXJzaW9uICVkXG4iLAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9IV19JRCkpOworCQkgICAgICAgZG1hX3JlYWQoSFdfSUQpKTsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiRE1BIGNhcGFiaWxpdGllczogJTA4eDolMDh4OiUwNHg6JTA0eDolMDR4XG4iLAotCQkgICAgICAgKG9tYXBfcmVhZHcoT01BUF9ETUFfQ0FQU18wX1UpIDw8IDE2KSB8Ci0JCSAgICAgICBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMF9MKSwKLQkJICAgICAgIChvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMV9VKSA8PCAxNikgfAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzFfTCksCi0JCSAgICAgICBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMiksIG9tYXBfcmVhZHcoT01BUF9ETUFfQ0FQU18zKSwKLQkJICAgICAgIG9tYXBfcmVhZHcoT01BUF9ETUFfQ0FQU180KSk7CisJCSAgICAgICAoZG1hX3JlYWQoQ0FQU18wX1UpIDw8IDE2KSB8CisJCSAgICAgICBkbWFfcmVhZChDQVBTXzBfTCksCisJCSAgICAgICAoZG1hX3JlYWQoQ0FQU18xX1UpIDw8IDE2KSB8CisJCSAgICAgICBkbWFfcmVhZChDQVBTXzFfTCksCisJCSAgICAgICBkbWFfcmVhZChDQVBTXzIpLCBkbWFfcmVhZChDQVBTXzMpLAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU180KSk7CiAJCWlmICghZW5hYmxlXzE1MTBfbW9kZSkgewogCQkJdTE2IHc7CiAKIAkJCS8qIERpc2FibGUgT01BUCAzLjAvMy4xIGNvbXBhdGliaWxpdHkgbW9kZS4gKi8KLQkJCXcgPSBvbWFwX3JlYWR3KE9NQVBfRE1BX0dTQ1IpOworCQkJdyA9IGRtYV9yZWFkKEdTQ1IpOwogCQkJdyB8PSAxIDw8IDM7Ci0JCQlvbWFwX3dyaXRldyh3LCBPTUFQX0RNQV9HU0NSKTsKKwkJCWRtYV93cml0ZSh3LCBHU0NSKTsKIAkJCWRtYV9jaGFuX2NvdW50ID0gMTY7CiAJCX0gZWxzZQogCQkJZG1hX2NoYW5fY291bnQgPSA5OwpAQCAtMjE0MSwxOSArMjM1NywxNyBAQAogCQkJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DVFJMKTsKIAkJfQogCX0gZWxzZSBpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJdTggcmV2aXNpb24gPSBvbWFwX3JlYWRiKE9NQVBfRE1BNF9SRVZJU0lPTik7CisJCXU4IHJldmlzaW9uID0gZG1hX3JlYWQoUkVWSVNJT04pICYgMHhmZjsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiT01BUCBETUEgaGFyZHdhcmUgcmV2aXNpb24gJWQuJWRcbiIsCiAJCSAgICAgICByZXZpc2lvbiA+PiA0LCByZXZpc2lvbiAmIDB4Zik7Ci0JCWRtYV9jaGFuX2NvdW50ID0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVDsKKwkJZG1hX2NoYW5fY291bnQgPSBPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CiAJfSBlbHNlIHsKIAkJZG1hX2NoYW5fY291bnQgPSAwOwogCQlyZXR1cm4gMDsKIAl9CiAKLQltZW1zZXQoJmxjZF9kbWEsIDAsIHNpemVvZihsY2RfZG1hKSk7CiAJc3Bpbl9sb2NrX2luaXQoJmxjZF9kbWEubG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJmRtYV9jaGFuX2xvY2spOwotCW1lbXNldCgmZG1hX2NoYW4sIDAsIHNpemVvZihkbWFfY2hhbikpOwogCiAJZm9yIChjaCA9IDA7IGNoIDwgZG1hX2NoYW5fY291bnQ7IGNoKyspIHsKIAkJb21hcF9jbGVhcl9kbWEoY2gpOwpAQCAtMjE2NCw4ICsyMzc4LDEwIEBACiAJCQljb250aW51ZTsKIAogCQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJCS8qIHJlcXVlc3RfaXJxKCkgZG9lc24ndCBsaWtlIGRldl9pZCAoaWUuIGNoKSBiZWluZwotCQkJICogemVybywgc28gd2UgaGF2ZSB0byBrbHVkZ2UgYXJvdW5kIHRoaXMuICovCisJCQkvKgorCQkJICogcmVxdWVzdF9pcnEoKSBkb2Vzbid0IGxpa2UgZGV2X2lkIChpZS4gY2gpIGJlaW5nCisJCQkgKiB6ZXJvLCBzbyB3ZSBoYXZlIHRvIGtsdWRnZSBhcm91bmQgdGhpcy4KKwkJCSAqLwogCQkJciA9IHJlcXVlc3RfaXJxKG9tYXAxX2RtYV9pcnFbY2hdLAogCQkJCQlvbWFwMV9kbWFfaXJxX2hhbmRsZXIsIDAsICJETUEiLAogCQkJCQkodm9pZCAqKSAoY2ggKyAxKSk7CkBAIC0yMjEwLDQ4ICsyNDI2LDQgQEAKIAogYXJjaF9pbml0Y2FsbChvbWFwX2luaXRfZG1hKTsKIAotRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfc3JjX3Bvcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9kc3RfcG9zKTsKLUVYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX3NyY19hZGRyX2NvdW50ZXIpOwotRVhQT1JUX1NZTUJPTChvbWFwX2NsZWFyX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9wcmlvcml0eSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfcmVxdWVzdF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zdGFydF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2NhbGxiYWNrKTsKLUVYUE9SVF9TWU1CT0wob21hcF9lbmFibGVfZG1hX2lycSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZGlzYWJsZV9kbWFfaXJxKTsKLQotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2NvbG9yX21vZGUpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfd3JpdGVfbW9kZSk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19wYXJhbXMpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2luZGV4KTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19kYXRhX3BhY2spOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2J1cnN0X21vZGUpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2luZGV4KTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2Rlc3RfZGF0YV9wYWNrKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX2Rlc3RfYnVyc3RfbW9kZSk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3BhcmFtcyk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9kbWFfbGlua19sY2gpOwotRVhQT1JUX1NZTUJPTChvbWFwX2RtYV91bmxpbmtfbGNoKTsKLQotRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZnJlZV9sY2RfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9lbmFibGVfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0dXBfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc3RvcF9sY2RfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfc2luZ2xlX3RyYW5zZmVyKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9leHRfY29udHJvbGxlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfcm90YXRpb24pOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3Z4cmVzKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMV9zY2FsZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfbWlycm9yKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RtdGltZXIuYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9kbXRpbWVyLmMKaW5kZXggMzAyYWQ4ZC4uZjIyNTA2YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RtdGltZXIuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG10aW1lci5jCkBAIC0zOCwzNCArMzgsMTEzIEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJxcy5oPgogCiAvKiByZWdpc3RlciBvZmZzZXRzICovCi0jZGVmaW5lIE9NQVBfVElNRVJfSURfUkVHCQkweDAwCi0jZGVmaW5lIE9NQVBfVElNRVJfT0NQX0NGR19SRUcJCTB4MTAKLSNkZWZpbmUgT01BUF9USU1FUl9TWVNfU1RBVF9SRUcJCTB4MTQKLSNkZWZpbmUgT01BUF9USU1FUl9TVEFUX1JFRwkJMHgxOAotI2RlZmluZSBPTUFQX1RJTUVSX0lOVF9FTl9SRUcJCTB4MWMKLSNkZWZpbmUgT01BUF9USU1FUl9XQUtFVVBfRU5fUkVHCTB4MjAKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1JFRwkJMHgyNAotI2RlZmluZSBPTUFQX1RJTUVSX0NPVU5URVJfUkVHCQkweDI4Ci0jZGVmaW5lIE9NQVBfVElNRVJfTE9BRF9SRUcJCTB4MmMKLSNkZWZpbmUgT01BUF9USU1FUl9UUklHR0VSX1JFRwkJMHgzMAotI2RlZmluZSBPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHCTB4MzQKLSNkZWZpbmUgT01BUF9USU1FUl9NQVRDSF9SRUcJCTB4MzgKLSNkZWZpbmUgT01BUF9USU1FUl9DQVBUVVJFX1JFRwkJMHgzYwotI2RlZmluZSBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHCQkweDQwCisjZGVmaW5lIF9PTUFQX1RJTUVSX0lEX09GRlNFVAkJMHgwMAorI2RlZmluZSBfT01BUF9USU1FUl9PQ1BfQ0ZHX09GRlNFVAkweDEwCisjZGVmaW5lIF9PTUFQX1RJTUVSX1NZU19TVEFUX09GRlNFVAkweDE0CisjZGVmaW5lIF9PTUFQX1RJTUVSX1NUQVRfT0ZGU0VUCQkweDE4CisjZGVmaW5lIF9PTUFQX1RJTUVSX0lOVF9FTl9PRkZTRVQJMHgxYworI2RlZmluZSBfT01BUF9USU1FUl9XQUtFVVBfRU5fT0ZGU0VUCTB4MjAKKyNkZWZpbmUgX09NQVBfVElNRVJfQ1RSTF9PRkZTRVQJCTB4MjQKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9HUE9DRkcJCSgxIDw8IDE0KQorI2RlZmluZQkJT01BUF9USU1FUl9DVFJMX0NBUFRNT0RFCSgxIDw8IDEzKQorI2RlZmluZQkJT01BUF9USU1FUl9DVFJMX1BUCQkoMSA8PCAxMikKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9UQ01fTE9XVE9ISUdICSgweDEgPDwgOCkKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9UQ01fSElHSFRPTE9XCSgweDIgPDwgOCkKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9UQ01fQk9USEVER0VTCSgweDMgPDwgOCkKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9TQ1BXTQkJKDEgPDwgNykKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9DRQkJKDEgPDwgNikgLyogY29tcGFyZSBlbmFibGUgKi8KKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9QUkUJCSgxIDw8IDUpIC8qIHByZXNjYWxlciBlbmFibGUgKi8KKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9QVFZfU0hJRlQJMiAvKiBwcmVzY2FsZXIgdmFsdWUgc2hpZnQgKi8KKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9QT1NURUQJCSgxIDw8IDIpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfQVIJCSgxIDw8IDEpIC8qIGF1dG8tcmVsb2FkIGVuYWJsZSAqLworI2RlZmluZQkJT01BUF9USU1FUl9DVFJMX1NUCQkoMSA8PCAwKSAvKiBzdGFydCB0aW1lciAqLworI2RlZmluZSBfT01BUF9USU1FUl9DT1VOVEVSX09GRlNFVAkweDI4CisjZGVmaW5lIF9PTUFQX1RJTUVSX0xPQURfT0ZGU0VUCQkweDJjCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RSSUdHRVJfT0ZGU0VUCTB4MzAKKyNkZWZpbmUgX09NQVBfVElNRVJfV1JJVEVfUEVORF9PRkZTRVQJMHgzNAorI2RlZmluZQkJV1BfTk9ORQkJCTAJLyogbm8gd3JpdGUgcGVuZGluZyBiaXQgKi8KKyNkZWZpbmUJCVdQX1RDTFIJCQkoMSA8PCAwKQorI2RlZmluZQkJV1BfVENSUgkJCSgxIDw8IDEpCisjZGVmaW5lCQlXUF9UTERSCQkJKDEgPDwgMikKKyNkZWZpbmUJCVdQX1RUR1IJCQkoMSA8PCAzKQorI2RlZmluZQkJV1BfVE1BUgkJCSgxIDw8IDQpCisjZGVmaW5lCQlXUF9UUElSCQkJKDEgPDwgNSkKKyNkZWZpbmUJCVdQX1ROSVIJCQkoMSA8PCA2KQorI2RlZmluZQkJV1BfVENWUgkJCSgxIDw8IDcpCisjZGVmaW5lCQlXUF9UT0NSCQkJKDEgPDwgOCkKKyNkZWZpbmUJCVdQX1RPV1IJCQkoMSA8PCA5KQorI2RlZmluZSBfT01BUF9USU1FUl9NQVRDSF9PRkZTRVQJMHgzOAorI2RlZmluZSBfT01BUF9USU1FUl9DQVBUVVJFX09GRlNFVAkweDNjCisjZGVmaW5lIF9PTUFQX1RJTUVSX0lGX0NUUkxfT0ZGU0VUCTB4NDAKKyNkZWZpbmUgX09NQVBfVElNRVJfQ0FQVFVSRTJfT0ZGU0VUCQkweDQ0CS8qIFRDQVIyLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19QT1NfT0ZGU0VUCQkweDQ4CS8qIFRQSVIsIDM0eHggb25seSAqLworI2RlZmluZSBfT01BUF9USU1FUl9USUNLX05FR19PRkZTRVQJCTB4NGMJLyogVE5JUiwgMzR4eCBvbmx5ICovCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RJQ0tfQ09VTlRfT0ZGU0VUCQkweDUwCS8qIFRDVlIsIDM0eHggb25seSAqLworI2RlZmluZSBfT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX1NFVF9PRkZTRVQJMHg1NAkvKiBUT0NSLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19JTlRfTUFTS19DT1VOVF9PRkZTRVQJMHg1OAkvKiBUT1dSLCAzNHh4IG9ubHkgKi8KIAotLyogdGltZXIgY29udHJvbCByZWcgYml0cyAqLwotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfR1BPQ0ZHCQkoMSA8PCAxNCkKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX0NBUFRNT0RFCSgxIDw8IDEzKQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfUFQJCSgxIDw8IDEyKQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfVENNX0xPV1RPSElHSAkoMHgxIDw8IDgpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9UQ01fSElHSFRPTE9XCSgweDIgPDwgOCkKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1RDTV9CT1RIRURHRVMJKDB4MyA8PCA4KQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfU0NQV00JCSgxIDw8IDcpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9DRQkJKDEgPDwgNikJLyogY29tcGFyZSBlbmFibGUgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1BSRQkJKDEgPDwgNSkJLyogcHJlc2NhbGVyIGVuYWJsZSAqLwotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfUFRWX1NISUZUCTIJCS8qIGhvdyBtdWNoIHRvIHNoaWZ0IHRoZSBwcmVzY2FsZXIgdmFsdWUgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX0FSCQkoMSA8PCAxKQkvKiBhdXRvLXJlbG9hZCBlbmFibGUgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1NUCQkoMSA8PCAwKQkvKiBzdGFydCB0aW1lciAqLworLyogcmVnaXN0ZXIgb2Zmc2V0cyB3aXRoIHRoZSB3cml0ZSBwZW5kaW5nIGJpdCBlbmNvZGVkICovCisjZGVmaW5lCVdQU0hJRlQJCQkJCTE2CisKKyNkZWZpbmUgT01BUF9USU1FUl9JRF9SRUcJCQkoX09NQVBfVElNRVJfSURfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfT0NQX0NGR19SRUcJCQkoX09NQVBfVElNRVJfT0NQX0NGR19PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9TWVNfU1RBVF9SRUcJCQkoX09NQVBfVElNRVJfU1lTX1NUQVRfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfU1RBVF9SRUcJCQkoX09NQVBfVElNRVJfU1RBVF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9JTlRfRU5fUkVHCQkJKF9PTUFQX1RJTUVSX0lOVF9FTl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9XQUtFVVBfRU5fUkVHCQkoX09NQVBfVElNRVJfV0FLRVVQX0VOX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfUkVHCQkJKF9PTUFQX1RJTUVSX0NUUkxfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UQ0xSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfQ09VTlRFUl9SRUcJCQkoX09NQVBfVElNRVJfQ09VTlRFUl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RDUlIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9MT0FEX1JFRwkJCShfT01BUF9USU1FUl9MT0FEX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVExEUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RSSUdHRVJfUkVHCQkJKF9PTUFQX1RJTUVSX1RSSUdHRVJfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UVEdSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcJCShfT01BUF9USU1FUl9XUklURV9QRU5EX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX01BVENIX1JFRwkJCShfT01BUF9USU1FUl9NQVRDSF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RNQVIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9DQVBUVVJFX1JFRwkJCShfT01BUF9USU1FUl9DQVBUVVJFX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHCQkJKF9PTUFQX1RJTUVSX0lGX0NUUkxfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfQ0FQVFVSRTJfUkVHCQkJKF9PTUFQX1RJTUVSX0NBUFRVUkUyX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RJQ0tfUE9TX1JFRwkJCShfT01BUF9USU1FUl9USUNLX1BPU19PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RQSVIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX05FR19SRUcJCQkoX09NQVBfVElNRVJfVElDS19ORUdfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UTklSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfVElDS19DT1VOVF9SRUcJCShfT01BUF9USU1FUl9USUNLX0NPVU5UX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVENWUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RJQ0tfSU5UX01BU0tfU0VUX1JFRwkJCQlcCisJCShfT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX1NFVF9PRkZTRVQgfCAoV1BfVE9DUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RJQ0tfSU5UX01BU0tfQ09VTlRfUkVHCQkJCVwKKwkJKF9PTUFQX1RJTUVSX1RJQ0tfSU5UX01BU0tfQ09VTlRfT0ZGU0VUIHwgKFdQX1RPV1IgPDwgV1BTSElGVCkpCiAKIHN0cnVjdCBvbWFwX2RtX3RpbWVyIHsKIAl1bnNpZ25lZCBsb25nIHBoeXNfYmFzZTsKQEAgLTc2LDYgKzE1NSw3IEBACiAJdm9pZCBfX2lvbWVtICppb19iYXNlOwogCXVuc2lnbmVkIHJlc2VydmVkOjE7CiAJdW5zaWduZWQgZW5hYmxlZDoxOworCXVuc2lnbmVkIHBvc3RlZDoxOwogfTsKIAogI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCkBAIC0xODEsMTYgKzI2MSwzNCBAQAogCiBzdGF0aWMgc3BpbmxvY2tfdCBkbV90aW1lcl9sb2NrOwogCi1zdGF0aWMgaW5saW5lIHUzMiBvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHJlZykKKy8qCisgKiBSZWFkcyB0aW1lciByZWdpc3RlcnMgaW4gcG9zdGVkIGFuZCBub24tcG9zdGVkIG1vZGUuIFRoZSBwb3N0ZWQgbW9kZSBiaXQKKyAqIGlzIGVuY29kZWQgaW4gcmVnLiBOb3RlIHRoYXQgaW4gcG9zdGVkIG1vZGUgd3JpdGUgcGVuZGluZyBiaXQgbXVzdCBiZQorICogY2hlY2tlZC4gT3RoZXJ3aXNlIGEgcmVhZCBvZiBhIG5vbiBjb21wbGV0ZWQgd3JpdGUgd2lsbCBwcm9kdWNlIGFuIGVycm9yLgorICovCitzdGF0aWMgaW5saW5lIHUzMiBvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgdTMyIHJlZykKIHsKLQlyZXR1cm4gcmVhZGwodGltZXItPmlvX2Jhc2UgKyByZWcpOworCWlmICh0aW1lci0+cG9zdGVkKQorCQl3aGlsZSAocmVhZGwodGltZXItPmlvX2Jhc2UgKyAoT01BUF9USU1FUl9XUklURV9QRU5EX1JFRyAmIDB4ZmYpKQorCQkJCSYgKHJlZyA+PiBXUFNISUZUKSkKKwkJCWNwdV9yZWxheCgpOworCXJldHVybiByZWFkbCh0aW1lci0+aW9fYmFzZSArIChyZWcgJiAweGZmKSk7CiB9CiAKLXN0YXRpYyB2b2lkIG9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHJlZywgdTMyIHZhbHVlKQorLyoKKyAqIFdyaXRlcyB0aW1lciByZWdpc3RlcnMgaW4gcG9zdGVkIGFuZCBub24tcG9zdGVkIG1vZGUuIFRoZSBwb3N0ZWQgbW9kZSBiaXQKKyAqIGlzIGVuY29kZWQgaW4gcmVnLiBOb3RlIHRoYXQgaW4gcG9zdGVkIG1vZGUgdGhlIHdyaXRlIHBlbmRpbmcgYml0IG11c3QgYmUKKyAqIGNoZWNrZWQuIE90aGVyd2lzZSBhIHdyaXRlIG9uIGEgcmVnaXN0ZXIgd2hpY2ggaGFzIGEgcGVuZGluZyB3cml0ZSB3aWxsIGJlCisgKiBsb3N0LgorICovCitzdGF0aWMgdm9pZCBvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIHUzMiByZWcsCisJCQkJCQl1MzIgdmFsdWUpCiB7Ci0Jd3JpdGVsKHZhbHVlLCB0aW1lci0+aW9fYmFzZSArIHJlZyk7Ci0Jd2hpbGUgKG9tYXBfZG1fdGltZXJfcmVhZF9yZWcodGltZXIsIE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcpKQotCQk7CisJaWYgKHRpbWVyLT5wb3N0ZWQpCisJCXdoaWxlIChyZWFkbCh0aW1lci0+aW9fYmFzZSArIChPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHICYgMHhmZikpCisJCQkJJiAocmVnID4+IFdQU0hJRlQpKQorCQkJY3B1X3JlbGF4KCk7CisJd3JpdGVsKHZhbHVlLCB0aW1lci0+aW9fYmFzZSArIChyZWcgJiAweGZmKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfZG1fdGltZXJfd2FpdF9mb3JfcmVzZXQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyKQpAQCAtMjE3LDE3ICszMTUsMjMgQEAKIAl9CiAJb21hcF9kbV90aW1lcl9zZXRfc291cmNlKHRpbWVyLCBPTUFQX1RJTUVSX1NSQ18zMl9LSFopOwogCi0JLyogU2V0IHRvIHNtYXJ0LWlkbGUgbW9kZSAqLwogCWwgPSBvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX09DUF9DRkdfUkVHKTsKLQlsIHw9IDB4MDIgPDwgMzsKKwlsIHw9IDB4MDIgPDwgMzsgIC8qIFNldCB0byBzbWFydC1pZGxlIG1vZGUgKi8KKwlsIHw9IDB4MiA8PCA4OyAgIC8qIFNldCBjbG9jayBhY3Rpdml0eSB0byBwZXJzZXJ2ZSBmLWNsb2NrIG9uIGlkbGUgKi8KIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSAmJiB0aW1lciA9PSAmZG1fdGltZXJzWzBdKSB7Ci0JCS8qIEVuYWJsZSB3YWtlLXVwIG9ubHkgZm9yIEdQVDEgb24gT01BUDIgQ1BVcyovCisJLyoKKwkgKiBFbmFibGUgd2FrZS11cCBvbmx5IGZvciBHUFQxIG9uIE9NQVAyIENQVXMuCisJICogRklYTUU6IEFsbCB0aW1lcnMgc2hvdWxkIGhhdmUgd2FrZS11cCBlbmFibGVkIGFuZCBjbGVhcgorCSAqIFBSQ00gc3RhdHVzLgorCSAqLworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSAmJiAodGltZXIgPT0gJmRtX3RpbWVyc1swXSkpCiAJCWwgfD0gMSA8PCAyOwotCQkvKiBOb24tcG9zdGVkIG1vZGUgKi8KLQkJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfSUZfQ1RSTF9SRUcsIDApOwotCX0KIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9PQ1BfQ0ZHX1JFRywgbCk7CisKKwkvKiBNYXRjaCBoYXJkd2FyZSByZXNldCBkZWZhdWx0IG9mIHBvc3RlZCBtb2RlICovCisJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfSUZfQ1RSTF9SRUcsCisJCQlPTUFQX1RJTUVSX0NUUkxfUE9TVEVEKTsKKwl0aW1lci0+cG9zdGVkID0gMTsKIH0KIAogc3RhdGljIHZvaWQgb21hcF9kbV90aW1lcl9wcmVwYXJlKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lcikKQEAgLTQzNCw5ICs1MzgsMzIgQEAKIAkJbCAmPSB+T01BUF9USU1FUl9DVFJMX0FSOwogCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NUUkxfUkVHLCBsKTsKIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9MT0FEX1JFRywgbG9hZCk7CisKKwkvKiBSRVZJU0lUOiBodyBmZWF0dXJlLCB0dGdyIG92ZXJ0YWtpbmcgdGxkcj8gKi8KKwl3aGlsZSAocmVhZGwodGltZXItPmlvX2Jhc2UgKyAoT01BUF9USU1FUl9XUklURV9QRU5EX1JFRyAmIDB4ZmYpKSkKKwkJY3B1X3JlbGF4KCk7CisKIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9UUklHR0VSX1JFRywgMCk7CiB9CiAKKy8qIE9wdGltaXplZCBzZXRfbG9hZCB3aGljaCByZW1vdmVzIGNvc3RseSBzcGluIHdhaXQgaW4gdGltZXJfc3RhcnQgKi8KK3ZvaWQgb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBhdXRvcmVsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsb2FkKQoreworCXUzMiBsOworCisJbCA9IG9tYXBfZG1fdGltZXJfcmVhZF9yZWcodGltZXIsIE9NQVBfVElNRVJfQ1RSTF9SRUcpOworCWlmIChhdXRvcmVsb2FkKQorCQlsIHw9IE9NQVBfVElNRVJfQ1RSTF9BUjsKKwllbHNlCisJCWwgJj0gfk9NQVBfVElNRVJfQ1RSTF9BUjsKKwlsIHw9IE9NQVBfVElNRVJfQ1RSTF9TVDsKKworCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NPVU5URVJfUkVHLCBsb2FkKTsKKwlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9MT0FEX1JFRywgbG9hZCk7CisJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfQ1RSTF9SRUcsIGwpOworfQorCiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X21hdGNoKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IGVuYWJsZSwKIAkJCSAgICAgdW5zaWduZWQgaW50IG1hdGNoKQogewpAQCAtNDUxLDcgKzU3OCw2IEBACiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfTUFUQ0hfUkVHLCBtYXRjaCk7CiB9CiAKLQogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9wd20oc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgZGVmX29uLAogCQkJICAgaW50IHRvZ2dsZSwgaW50IHRyaWdnZXIpCiB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9tY2JzcC5jCmluZGV4IDljZjgzYzQuLmM3Zjc0MDYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9tY2JzcC5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb21hcC9tY2JzcC5jCkBAIC0xNSw5NSArMTUsNjYgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCi0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9kbWEuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9pcnFzLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvZHNwX2NvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CiAKLSNpZmRlZiBDT05GSUdfTUNCU1BfREVCVUcKLSNkZWZpbmUgREJHKHguLi4pCXByaW50ayh4KQotI2Vsc2UKLSNkZWZpbmUgREJHKHguLi4pCQkJZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCi0KLXN0cnVjdCBvbWFwX21jYnNwIHsKLQl1MzIgICAgICAgICAgICAgICAgICAgICAgICAgIGlvX2Jhc2U7Ci0JdTggICAgICAgICAgICAgICAgICAgICAgICAgICBpZDsKLQl1OCAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWU7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCAgICAgICByeF93b3JkX2xlbmd0aDsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoICAgICAgIHR4X3dvcmRfbGVuZ3RoOwotCi0Jb21hcF9tY2JzcF9pb190eXBlX3QgICAgICAgICBpb190eXBlOyAvKiBJUlEgb3IgcG9sbCAqLwotCS8qIElSUSBiYXNlZCBUWC9SWCAqLwotCWludCAgICAgICAgICAgICAgICAgICAgICAgICAgcnhfaXJxOwotCWludCAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfaXJxOwotCi0JLyogRE1BIHN0dWZmICovCi0JdTggICAgICAgICAgICAgICAgICAgICAgICAgICBkbWFfcnhfc3luYzsKLQlzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yeF9sY2g7Ci0JdTggICAgICAgICAgICAgICAgICAgICAgICAgICBkbWFfdHhfc3luYzsKLQlzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgIGRtYV90eF9sY2g7Ci0KLQkvKiBDb21wbGV0aW9uIHF1ZXVlcyAqLwotCXN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgICAgdHhfaXJxX2NvbXBsZXRpb247Ci0Jc3RydWN0IGNvbXBsZXRpb24gICAgICAgICAgICByeF9pcnFfY29tcGxldGlvbjsKLQlzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICAgIHR4X2RtYV9jb21wbGV0aW9uOwotCXN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgICAgcnhfZG1hX2NvbXBsZXRpb247Ci0KLQlzcGlubG9ja190ICAgICAgICAgICAgICAgICAgIGxvY2s7Ci19OwotCiBzdGF0aWMgc3RydWN0IG9tYXBfbWNic3AgbWNic3BbT01BUF9NQVhfTUNCU1BfQ09VTlRdOwotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi1zdGF0aWMgc3RydWN0IGNsayAqbWNic3BfZHNwX2NrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcF9hcGlfY2sgPSAwOwotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwX2RzcHhvcl9jayA9IDA7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwMV9pY2sgPSAwOwotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwMV9mY2sgPSAwOwotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwMl9pY2sgPSAwOwotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwMl9mY2sgPSAwOwotI2VuZGlmCisKKyNkZWZpbmUgb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkJKG1jYnNwW2lkXS5wZGF0YSAmJiBcCisJCQkJCW1jYnNwW2lkXS5wZGF0YS0+b3BzICYmIFwKKwkJCQkJbWNic3BbaWRdLnBkYXRhLT5vcHMtPmNoZWNrICYmIFwKKwkJCQkJKG1jYnNwW2lkXS5wZGF0YS0+b3BzLT5jaGVjayhpZCkgPT0gMCkpCiAKIHN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZHVtcF9yZWcodTggaWQpCiB7Ci0JREJHKCIqKioqIE1DQlNQJWQgcmVncyAqKioqXG4iLCBtY2JzcFtpZF0uaWQpOwotCURCRygiRFJSMjogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEUlIyKSk7Ci0JREJHKCJEUlIxOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERSUjEpKTsKLQlEQkcoIkRYUjI6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMikpOwotCURCRygiRFhSMTogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEWFIxKSk7Ci0JREJHKCJTUENSMjogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNQQ1IyKSk7Ci0JREJHKCJTUENSMTogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNQQ1IxKSk7Ci0JREJHKCJSQ1IyOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFJDUjIpKTsKLQlEQkcoIlJDUjE6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgUkNSMSkpOwotCURCRygiWENSMjogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IyKSk7Ci0JREJHKCJYQ1IxOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFhDUjEpKTsKLQlEQkcoIlNSR1IyOiAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1JHUjIpKTsKLQlEQkcoIlNSR1IxOiAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1JHUjEpKTsKLQlEQkcoIlBDUjA6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgUENSMCkpOwotCURCRygiKioqKioqKioqKioqKioqKioqKioqKipcbiIpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIioqKiogTWNCU1AlZCByZWdzICoqKipcbiIsIG1jYnNwW2lkXS5pZCk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiRFJSMjogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFJSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkRSUjE6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERSUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJEWFIyOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEWFIyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiRFhSMTogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMSkpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlNQQ1IyOiAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNQQ1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiU1BDUjE6IDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1BDUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJSQ1IyOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBSQ1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiUkNSMTogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgUkNSMSkpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlhDUjI6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFhDUjIpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJYQ1IxOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IxKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiU1JHUjI6IDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1JHUjIpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJTUkdSMTogMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUkdSMSkpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlBDUjA6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFBDUjApKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICIqKioqKioqKioqKioqKioqKioqKioqKlxuIik7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBvbWFwX21jYnNwX3R4X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3BfdHggPSBkZXZfaWQ7CiAKLQlEQkcoIlRYIElSUSBjYWxsYmFjayA6IDB4JXhcbiIsCi0JICAgIE9NQVBfTUNCU1BfUkVBRChtY2JzcF90eC0+aW9fYmFzZSwgU1BDUjIpKTsKKwlkZXZfZGJnKG1jYnNwX3R4LT5kZXYsICJUWCBJUlEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfdHgtPmlvX2Jhc2UsIFNQQ1IyKSk7CiAKIAljb21wbGV0ZSgmbWNic3BfdHgtPnR4X2lycV9jb21wbGV0aW9uKTsKKwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTExLDEwICs4MiwxMSBAQAogewogCXN0cnVjdCBvbWFwX21jYnNwICptY2JzcF9yeCA9IGRldl9pZDsKIAotCURCRygiUlggSVJRIGNhbGxiYWNrIDogMHgleFxuIiwKLQkgICAgT01BUF9NQ0JTUF9SRUFEKG1jYnNwX3J4LT5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BfcngtPmRldiwgIlJYIElSUSBjYWxsYmFjayA6IDB4JXhcbiIsCisJCU9NQVBfTUNCU1BfUkVBRChtY2JzcF9yeC0+aW9fYmFzZSwgU1BDUjIpKTsKIAogCWNvbXBsZXRlKCZtY2JzcF9yeC0+cnhfaXJxX2NvbXBsZXRpb24pOworCiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCkBAIC0xMjIsOCArOTQsOCBAQAogewogCXN0cnVjdCBvbWFwX21jYnNwICptY2JzcF9kbWFfdHggPSBkYXRhOwogCi0JREJHKCJUWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAotCSAgICBPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3R4LT5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BfZG1hX3R4LT5kZXYsICJUWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3R4LT5pb19iYXNlLCBTUENSMikpOwogCiAJLyogV2UgY2FuIGZyZWUgdGhlIGNoYW5uZWxzICovCiAJb21hcF9mcmVlX2RtYShtY2JzcF9kbWFfdHgtPmRtYV90eF9sY2gpOwpAQCAtMTM2LDggKzEwOCw4IEBACiB7CiAJc3RydWN0IG9tYXBfbWNic3AgKm1jYnNwX2RtYV9yeCA9IGRhdGE7CiAKLQlEQkcoIlJYIERNQSBjYWxsYmFjayA6IDB4JXhcbiIsCi0JICAgIE9NQVBfTUNCU1BfUkVBRChtY2JzcF9kbWFfcngtPmlvX2Jhc2UsIFNQQ1IyKSk7CisJZGV2X2RiZyhtY2JzcF9kbWFfcngtPmRldiwgIlJYIERNQSBjYWxsYmFjayA6IDB4JXhcbiIsCisJCU9NQVBfTUNCU1BfUkVBRChtY2JzcF9kbWFfcngtPmlvX2Jhc2UsIFNQQ1IyKSk7CiAKIAkvKiBXZSBjYW4gZnJlZSB0aGUgY2hhbm5lbHMgKi8KIAlvbWFwX2ZyZWVfZG1hKG1jYnNwX2RtYV9yeC0+ZG1hX3J4X2xjaCk7CkBAIC0xNDYsMTkgKzExOCwyNCBAQAogCWNvbXBsZXRlKCZtY2JzcF9kbWFfcngtPnJ4X2RtYV9jb21wbGV0aW9uKTsKIH0KIAotCiAvKgogICogb21hcF9tY2JzcF9jb25maWcgc2ltcGx5IHdyaXRlIGEgY29uZmlnIHRvIHRoZQogICogYXBwcm9wcmlhdGUgTWNCU1AuCiAgKiBZb3UgZWl0aGVyIGNhbGwgdGhpcyBmdW5jdGlvbiBvciBzZXQgdGhlIE1jQlNQIHJlZ2lzdGVycwogICogYnkgeW91cnNlbGYgYmVmb3JlIGNhbGxpbmcgb21hcF9tY2JzcF9zdGFydCgpLgogICovCi0KLXZvaWQgb21hcF9tY2JzcF9jb25maWcodW5zaWduZWQgaW50IGlkLCBjb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnICogY29uZmlnKQordm9pZCBvbWFwX21jYnNwX2NvbmZpZyh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX3JlZ19jZmcgKmNvbmZpZykKIHsKLQl1MzIgaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOworCXUzMiBpb19iYXNlOwogCi0JREJHKCJPTUFQLU1jQlNQOiBNY0JTUCVkICBpb19iYXNlOiAweCU4eFxuIiwgaWQrMSwgaW9fYmFzZSk7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm47CisJfQorCisJaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkNvbmZpZ3VyaW5nIE1jQlNQJWQgIGlvX2Jhc2U6IDB4JTh4XG4iLAorCQkJbWNic3BbaWRdLmlkLCBpb19iYXNlKTsKIAogCS8qIFdlIHdyaXRlIHRoZSBnaXZlbiBjb25maWcgKi8KIAlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCBjb25maWctPnNwY3IyKTsKQEAgLTE3Myw4MyArMTUwLDcgQEAKIAlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIE1DUjEsIGNvbmZpZy0+bWNyMSk7CiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBQQ1IwLCBjb25maWctPnBjcjApOwogfQotCi0KLQotc3RhdGljIGludCBvbWFwX21jYnNwX2NoZWNrKHVuc2lnbmVkIGludCBpZCkKLXsKLQlpZiAoY3B1X2lzX29tYXA3MzAoKSkgewotCQlpZiAoaWQgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCAtIDEpIHsKLQkJICAgICAgIHByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLCBpZCArIDEpOwotCQkgICAgICAgcmV0dXJuIC0xOwotCQl9Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChjcHVfaXNfb21hcDE1eHgoKSB8fCBjcHVfaXNfb21hcDE2eHgoKSB8fCBjcHVfaXNfb21hcDI0eHgoKSkgewotCQlpZiAoaWQgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGRvZXNuJ3QgZXhpc3RcbiIsIGlkICsgMSk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmV0dXJuIC0xOwotfQotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKLXN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZHNwX3JlcXVlc3Qodm9pZCkKLXsKLQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkpIHsKLQkJaW50IHJldDsKLQotCQlyZXQgPSBvbWFwX2RzcF9yZXF1ZXN0X21lbSgpOwotCQlpZiAocmV0IDwgMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgZ2V0IGRzcCBtZW1vcnk6ICVpXG4iLCByZXQpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJY2xrX2VuYWJsZShtY2JzcF9kc3BfY2spOwotCQljbGtfZW5hYmxlKG1jYnNwX2FwaV9jayk7Ci0KLQkJLyogZW5hYmxlIDEyTUh6IGNsb2NrIHRvIG1jYnNwIDEgJiAzICovCi0JCWNsa19lbmFibGUobWNic3BfZHNweG9yX2NrKTsKLQotCQkvKgotCQkgKiBEU1AgZXh0ZXJuYWwgcGVyaXBoZXJhbCByZXNldAotCQkgKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gZHNwIGNvZGUKLQkJICovCi0JCV9fcmF3X3dyaXRldyhfX3Jhd19yZWFkdyhEU1BfUlNUQ1QyKSB8IDEgfCAxIDw8IDEsCi0JCQkgICAgIERTUF9SU1RDVDIpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgb21hcF9tY2JzcF9kc3BfZnJlZSh2b2lkKQotewotCWlmIChjcHVfaXNfb21hcDE1eHgoKSB8fCBjcHVfaXNfb21hcDE2eHgoKSkgewotCQlvbWFwX2RzcF9yZWxlYXNlX21lbSgpOwotCQljbGtfZGlzYWJsZShtY2JzcF9kc3B4b3JfY2spOwotCQljbGtfZGlzYWJsZShtY2JzcF9kc3BfY2spOwotCQljbGtfZGlzYWJsZShtY2JzcF9hcGlfY2spOwotCX0KLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLXN0YXRpYyB2b2lkIG9tYXAyX21jYnNwMl9tdXhfc2V0dXAodm9pZCkKLXsKLQlpZiAoY3B1X2lzX29tYXAyNDIwKCkpIHsKLQkJb21hcF9jZmdfcmVnKFkxNV8yNFhYX01DQlNQMl9DTEtYKTsKLQkJb21hcF9jZmdfcmVnKFIxNF8yNFhYX01DQlNQMl9GU1gpOwotCQlvbWFwX2NmZ19yZWcoVzE1XzI0WFhfTUNCU1AyX0RSKTsKLQkJb21hcF9jZmdfcmVnKFYxNV8yNFhYX01DQlNQMl9EWCk7Ci0JCW9tYXBfY2ZnX3JlZyhWMTRfMjRYWF9HUElPMTE3KTsKLQl9Ci0JLyoKLQkgKiBOZWVkIHRvIGFkZCBNVVggc2V0dGluZ3MgZm9yIE9NQVAgMjQzMCBTRFAKLQkgKi8KLX0KLSNlbmRpZgorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX2NvbmZpZyk7CiAKIC8qCiAgKiBXZSBjYW4gY2hvb3NlIGJldHdlZW4gSVJRIGJhc2VkIG9yIHBvbGxlZCBJTy4KQEAgLTI1NywxMyArMTU4LDE2IEBACiAgKi8KIGludCBvbWFwX21jYnNwX3NldF9pb190eXBlKHVuc2lnbmVkIGludCBpZCwgb21hcF9tY2JzcF9pb190eXBlX3QgaW9fdHlwZSkKIHsKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KIAogCXNwaW5fbG9jaygmbWNic3BbaWRdLmxvY2spOwogCiAJaWYgKCFtY2JzcFtpZF0uZnJlZSkgewotCQlwcmludGsgKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsIGlkICsgMSk7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgaXMgY3VycmVudGx5IGluIHVzZVxuIiwKKwkJCW1jYnNwW2lkXS5pZCk7CiAJCXNwaW5fdW5sb2NrKCZtY2JzcFtpZF0ubG9jayk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTI3NCwzOCArMTc4LDI2IEBACiAKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9zZXRfaW9fdHlwZSk7CiAKIGludCBvbWFwX21jYnNwX3JlcXVlc3QodW5zaWduZWQgaW50IGlkKQogewogCWludCBlcnI7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi0JLyoKLQkgKiBPbiAxNTEwLCAxNjEwIGFuZCAxNzEwLCBNY0JTUDEgYW5kIE1jQlNQMwotCSAqIGFyZSBEU1AgcHVibGljIHBlcmlwaGVyYWxzLgotCSAqLwotCWlmIChpZCA9PSBPTUFQX01DQlNQMSB8fCBpZCA9PSBPTUFQX01DQlNQMykKLQkJb21hcF9tY2JzcF9kc3BfcmVxdWVzdCgpOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgewotCQlpZiAoaWQgPT0gT01BUF9NQ0JTUDEpIHsKLQkJCWNsa19lbmFibGUobWNic3AxX2ljayk7Ci0JCQljbGtfZW5hYmxlKG1jYnNwMV9mY2spOwotCQl9IGVsc2UgewotCQkJY2xrX2VuYWJsZShtY2JzcDJfaWNrKTsKLQkJCWNsa19lbmFibGUobWNic3AyX2Zjayk7Ci0JCX0KKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOwogCX0KLSNlbmRpZgorCisJaWYgKG1jYnNwW2lkXS5wZGF0YS0+b3BzLT5yZXF1ZXN0KQorCQltY2JzcFtpZF0ucGRhdGEtPm9wcy0+cmVxdWVzdChpZCk7CisKKwljbGtfZW5hYmxlKG1jYnNwW2lkXS5jbGspOwogCiAJc3Bpbl9sb2NrKCZtY2JzcFtpZF0ubG9jayk7CiAJaWYgKCFtY2JzcFtpZF0uZnJlZSkgewotCQlwcmludGsgKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsIGlkICsgMSk7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgaXMgY3VycmVudGx5IGluIHVzZVxuIiwKKwkJCW1jYnNwW2lkXS5pZCk7CiAJCXNwaW5fdW5sb2NrKCZtY2JzcFtpZF0ubG9jayk7CiAJCXJldHVybiAtMTsKIAl9CkBAIC0zMTUsMjQgKzIwNywyMyBAQAogCiAJaWYgKG1jYnNwW2lkXS5pb190eXBlID09IE9NQVBfTUNCU1BfSVJRX0lPKSB7CiAJCS8qIFdlIG5lZWQgdG8gZ2V0IElSUXMgaGVyZSAqLwotCQllcnIgPSByZXF1ZXN0X2lycShtY2JzcFtpZF0udHhfaXJxLCBvbWFwX21jYnNwX3R4X2lycV9oYW5kbGVyLCAwLAotCQkJCSAgIk1jQlNQIiwKLQkJCQkgICh2b2lkICopICgmbWNic3BbaWRdKSk7CisJCWVyciA9IHJlcXVlc3RfaXJxKG1jYnNwW2lkXS50eF9pcnEsIG9tYXBfbWNic3BfdHhfaXJxX2hhbmRsZXIsCisJCQkJCTAsICJNY0JTUCIsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJCWlmIChlcnIgIT0gMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBVbmFibGUgdG8gcmVxdWVzdCBUWCBJUlEgJWQgZm9yIE1jQlNQJWRcbiIsCi0JCQkgICAgICAgbWNic3BbaWRdLnR4X2lycSwgbWNic3BbaWRdLmlkKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIlVuYWJsZSB0byByZXF1ZXN0IFRYIElSUSAlZCAiCisJCQkJCSJmb3IgTWNCU1AlZFxuIiwgbWNic3BbaWRdLnR4X2lycSwKKwkJCQkJbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiBlcnI7CiAJCX0KIAogCQlpbml0X2NvbXBsZXRpb24oJihtY2JzcFtpZF0udHhfaXJxX2NvbXBsZXRpb24pKTsKIAotCi0JCWVyciA9IHJlcXVlc3RfaXJxKG1jYnNwW2lkXS5yeF9pcnEsIG9tYXBfbWNic3BfcnhfaXJxX2hhbmRsZXIsIDAsCi0JCQkJICAiTWNCU1AiLAotCQkJCSAgKHZvaWQgKikgKCZtY2JzcFtpZF0pKTsKKwkJZXJyID0gcmVxdWVzdF9pcnEobWNic3BbaWRdLnJ4X2lycSwgb21hcF9tY2JzcF9yeF9pcnFfaGFuZGxlciwKKwkJCQkJMCwgIk1jQlNQIiwgKHZvaWQgKikgKCZtY2JzcFtpZF0pKTsKIAkJaWYgKGVyciAhPSAwKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IFVuYWJsZSB0byByZXF1ZXN0IFJYIElSUSAlZCBmb3IgTWNCU1AlZFxuIiwKLQkJCSAgICAgICBtY2JzcFtpZF0ucnhfaXJxLCBtY2JzcFtpZF0uaWQpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiVW5hYmxlIHRvIHJlcXVlc3QgUlggSVJRICVkICIKKwkJCQkJImZvciBNY0JTUCVkXG4iLCBtY2JzcFtpZF0ucnhfaXJxLAorCQkJCQltY2JzcFtpZF0uaWQpOwogCQkJZnJlZV9pcnEobWNic3BbaWRdLnR4X2lycSwgKHZvaWQgKikgKCZtY2JzcFtpZF0pKTsKIAkJCXJldHVybiBlcnI7CiAJCX0KQEAgLTM0MSwzNiArMjMyLDI1IEBACiAJfQogCiAJcmV0dXJuIDA7Ci0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZXF1ZXN0KTsKIAogdm9pZCBvbWFwX21jYnNwX2ZyZWUodW5zaWduZWQgaW50IGlkKQogewotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOwogCQlyZXR1cm47Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQotCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlpZiAoaWQgPT0gT01BUF9NQ0JTUDEgfHwgaWQgPT0gT01BUF9NQ0JTUDMpCi0JCQlvbWFwX21jYnNwX2RzcF9mcmVlKCk7CiAJfQotI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgewotCQlpZiAoaWQgPT0gT01BUF9NQ0JTUDEpIHsKLQkJCWNsa19kaXNhYmxlKG1jYnNwMV9pY2spOwotCQkJY2xrX2Rpc2FibGUobWNic3AxX2Zjayk7Ci0JCX0gZWxzZSB7Ci0JCQljbGtfZGlzYWJsZShtY2JzcDJfaWNrKTsKLQkJCWNsa19kaXNhYmxlKG1jYnNwMl9mY2spOwotCQl9Ci0JfQotI2VuZGlmCisJaWYgKG1jYnNwW2lkXS5wZGF0YS0+b3BzLT5mcmVlKQorCQltY2JzcFtpZF0ucGRhdGEtPm9wcy0+ZnJlZShpZCk7CisKKwljbGtfZGlzYWJsZShtY2JzcFtpZF0uY2xrKTsKIAogCXNwaW5fbG9jaygmbWNic3BbaWRdLmxvY2spOwogCWlmIChtY2JzcFtpZF0uZnJlZSkgewotCQlwcmludGsgKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIHdhcyBub3QgcmVzZXJ2ZWRcbiIsIGlkICsgMSk7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgd2FzIG5vdCByZXNlcnZlZFxuIiwKKwkJCW1jYnNwW2lkXS5pZCk7CiAJCXNwaW5fdW5sb2NrKCZtY2JzcFtpZF0ubG9jayk7CiAJCXJldHVybjsKIAl9CkBAIC0zODQsNiArMjY0LDcgQEAKIAkJZnJlZV9pcnEobWNic3BbaWRdLnR4X2lycSwgKHZvaWQgKikgKCZtY2JzcFtpZF0pKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfZnJlZSk7CiAKIC8qCiAgKiBIZXJlIHdlIHN0YXJ0IHRoZSBNY0JTUCwgYnkgZW5hYmxpbmcgdGhlIHNhbXBsZQpAQCAtMzk1LDEzICsyNzYsMTUgQEAKIAl1MzIgaW9fYmFzZTsKIAl1MTYgdzsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOwogCQlyZXR1cm47CisJfQogCiAJaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCi0JbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoID0gKChPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgUkNSMSkgPj4gNSkgJiAweDcpOwotCW1jYnNwW2lkXS50eF93b3JkX2xlbmd0aCA9ICgoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFhDUjEpID4+IDUpICYgMHg3KTsKKwltY2JzcFtpZF0ucnhfd29yZF9sZW5ndGggPSAoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFJDUjEpID4+IDUpICYgMHg3OworCW1jYnNwW2lkXS50eF93b3JkX2xlbmd0aCA9IChPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgWENSMSkgPj4gNSkgJiAweDc7CiAKIAkvKiBTdGFydCB0aGUgc2FtcGxlIGdlbmVyYXRvciAqLwogCXcgPSBPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgU1BDUjIpOwpAQCAtNDIyLDIwICszMDUsMjIgQEAKIAogCS8qIER1bXAgTWNCU1AgUmVncyAqLwogCW9tYXBfbWNic3BfZHVtcF9yZWcoaWQpOwotCiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3RhcnQpOwogCiB2b2lkIG9tYXBfbWNic3Bfc3RvcCh1bnNpZ25lZCBpbnQgaWQpCiB7CiAJdTMyIGlvX2Jhc2U7CiAJdTE2IHc7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOworCX0KIAogCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKIAotICAgICAgICAvKiBSZXNldCB0cmFuc21pdHRlciAqLworCS8qIFJlc2V0IHRyYW5zbWl0dGVyICovCiAJdyA9IE9NQVBfTUNCU1BfUkVBRChpb19iYXNlLCBTUENSMik7CiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBTUENSMiwgdyAmIH4oMSkpOwogCkBAIC00NDcsMTIgKzMzMiwxOSBAQAogCXcgPSBPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgU1BDUjIpOwogCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjIsIHcgJiB+KDEgPDwgNikpOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3RvcCk7CiAKIC8qIHBvbGxlZCBtY2JzcCBpL28gb3BlcmF0aW9ucyAqLwogaW50IG9tYXBfbWNic3BfcG9sbHdyaXRlKHVuc2lnbmVkIGludCBpZCwgdTE2IGJ1ZikKIHsKLQl1MzIgYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOworCXUzMiBiYXNlOworCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwliYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CiAJd3JpdGV3KGJ1ZiwgYmFzZSArIE9NQVBfTUNCU1BfUkVHX0RYUjEpOwogCS8qIGlmIGZyYW1lIHN5bmMgZXJyb3IgLSBjbGVhciB0aGUgZXJyb3IgKi8KIAlpZiAocmVhZHcoYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IyKSAmIFhTWU5DX0VSUikgewpAQCAtNDc0LDE4ICszNjYsMjcgQEAKIAkJCQkgICAgICAgKFhSU1QpLAogCQkJCSAgICAgICBiYXNlICsgT01BUF9NQ0JTUF9SRUdfU1BDUjIpOwogCQkJCXVkZWxheSgxMCk7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkJICAgICAgICIgQ291bGQgbm90IHdyaXRlIHRvIE1jQlNQIFJlZ2lzdGVyXG4iKTsKKwkJCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJDb3VsZCBub3Qgd3JpdGUgdG8iCisJCQkJCSIgTWNCU1AlZCBSZWdpc3RlclxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCQlyZXR1cm4gLTI7CiAJCQl9CiAJCX0KIAl9CisKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9wb2xsd3JpdGUpOwogCi1pbnQgb21hcF9tY2JzcF9wb2xscmVhZCh1bnNpZ25lZCBpbnQgaWQsIHUxNiAqIGJ1ZikKK2ludCBvbWFwX21jYnNwX3BvbGxyZWFkKHVuc2lnbmVkIGludCBpZCwgdTE2ICpidWYpCiB7Ci0JdTMyIGJhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl1MzIgYmFzZTsKKworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCS8qIGlmIGZyYW1lIHN5bmMgZXJyb3IgLSBjbGVhciB0aGUgZXJyb3IgKi8KIAlpZiAocmVhZHcoYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IxKSAmIFJTWU5DX0VSUikgewogCQkvKiBjbGVhciBlcnJvciAqLwpAQCAtNTA2LDE1ICs0MDcsMTcgQEAKIAkJCQkgICAgICAgKFJSU1QpLAogCQkJCSAgICAgICBiYXNlICsgT01BUF9NQ0JTUF9SRUdfU1BDUjEpOwogCQkJCXVkZWxheSgxMCk7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkJICAgICAgICIgQ291bGQgbm90IHJlYWQgZnJvbSBNY0JTUCBSZWdpc3RlclxuIik7CisJCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiQ291bGQgbm90IHJlYWQgZnJvbSIKKwkJCQkJIiBNY0JTUCVkIFJlZ2lzdGVyXG4iLCBtY2JzcFtpZF0uaWQpOwogCQkJCXJldHVybiAtMjsKIAkJCX0KIAkJfQogCX0KIAkqYnVmID0gcmVhZHcoYmFzZSArIE9NQVBfTUNCU1BfUkVHX0RSUjEpOworCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcG9sbHJlYWQpOwogCiAvKgogICogSVJRIGJhc2VkIHdvcmQgdHJhbnNtaXNzaW9uLgpAQCAtNTIyLDEyICs0MjUsMTUgQEAKIHZvaWQgb21hcF9tY2JzcF94bWl0X3dvcmQodW5zaWduZWQgaW50IGlkLCB1MzIgd29yZCkKIHsKIAl1MzIgaW9fYmFzZTsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHdvcmRfbGVuZ3RoID0gbWNic3BbaWRdLnR4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggd29yZF9sZW5ndGg7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOworCX0KIAogCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl3b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKIAogCXdhaXRfZm9yX2NvbXBsZXRpb24oJihtY2JzcFtpZF0udHhfaXJxX2NvbXBsZXRpb24pKTsKIApAQCAtNTM1LDE2ICs0NDEsMjAgQEAKIAkJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBEWFIyLCB3b3JkID4+IDE2KTsKIAlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIERYUjEsIHdvcmQgJiAweGZmZmYpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3htaXRfd29yZCk7CiAKIHUzMiBvbWFwX21jYnNwX3JlY3Zfd29yZCh1bnNpZ25lZCBpbnQgaWQpCiB7CiAJdTMyIGlvX2Jhc2U7CiAJdTE2IHdvcmRfbHNiLCB3b3JkX21zYiA9IDA7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB3b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHdvcmRfbGVuZ3RoOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKKwl3b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKIAlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CiAKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCYobWNic3BbaWRdLnJ4X2lycV9jb21wbGV0aW9uKSk7CkBAIC01NTUsMTUgKzQ2NSwyNCBAQAogCiAJcmV0dXJuICh3b3JkX2xzYiB8ICh3b3JkX21zYiA8PCAxNikpOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVjdl93b3JkKTsKIAogaW50IG9tYXBfbWNic3Bfc3BpX21hc3Rlcl94bWl0X3dvcmRfcG9sbCh1bnNpZ25lZCBpbnQgaWQsIHUzMiB3b3JkKQogewotCXUzMiBpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB0eF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHJ4X3dvcmRfbGVuZ3RoID0gbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoOworCXUzMiBpb19iYXNlOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggdHhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCByeF93b3JkX2xlbmd0aDsKIAl1MTYgc3BjcjIsIHNwY3IxLCBhdHRlbXB0cyA9IDAsIHdvcmRfbHNiLCB3b3JkX21zYiA9IDA7CiAKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl0eF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKKwlyeF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKKwogCWlmICh0eF93b3JkX2xlbmd0aCAhPSByeF93b3JkX2xlbmd0aCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTU3Nyw3ICs0OTYsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjIsIHNwY3IyIHwgWFJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCB0cmFuc21pdHRlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCB0cmFuc21pdHRlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNTk3LDcgKzUxNyw4IEBACiAJCQl1ZGVsYXkoMTApOwogCQkJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBTUENSMSwgc3BjcjEgfCBSUlNUKTsKIAkJCXVkZWxheSgxMCk7Ci0JCQlwcmludGsoIk1jQlNQIHJlY2VpdmVyIG5vdCByZWFkeVxuIik7CisJCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIHJlY2VpdmVyIG5vdCAiCisJCQkJInJlYWR5XG4iLCBtY2JzcFtpZF0uaWQpOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KIAl9CkBAIC02MDksMTQgKzUzMCwyNCBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3BpX21hc3Rlcl94bWl0X3dvcmRfcG9sbCk7CiAKLWludCBvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwodW5zaWduZWQgaW50IGlkLCB1MzIgKiB3b3JkKQoraW50IG9tYXBfbWNic3Bfc3BpX21hc3Rlcl9yZWN2X3dvcmRfcG9sbCh1bnNpZ25lZCBpbnQgaWQsIHUzMiAqd29yZCkKIHsKLQl1MzIgaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlLCBjbG9ja193b3JkID0gMDsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHR4X3dvcmRfbGVuZ3RoID0gbWNic3BbaWRdLnR4X3dvcmRfbGVuZ3RoOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisJdTMyIGlvX2Jhc2UsIGNsb2NrX3dvcmQgPSAwOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggdHhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCByeF93b3JkX2xlbmd0aDsKIAl1MTYgc3BjcjIsIHNwY3IxLCBhdHRlbXB0cyA9IDAsIHdvcmRfbHNiLCB3b3JkX21zYiA9IDA7CiAKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl0eF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKKwlyeF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKKwogCWlmICh0eF93b3JkX2xlbmd0aCAhPSByeF93b3JkX2xlbmd0aCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTYzMCw3ICs1NjEsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjIsIHNwY3IyIHwgWFJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCB0cmFuc21pdHRlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCB0cmFuc21pdHRlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNjUwLDcgKzU4Miw4IEBACiAJCQl1ZGVsYXkoMTApOwogCQkJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBTUENSMSwgc3BjcjEgfCBSUlNUKTsKIAkJCXVkZWxheSgxMCk7Ci0JCQlwcmludGsoIk1jQlNQIHJlY2VpdmVyIG5vdCByZWFkeVxuIik7CisJCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIHJlY2VpdmVyIG5vdCAiCisJCQkJInJlYWR5XG4iLCBtY2JzcFtpZF0uaWQpOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KIAl9CkBAIC02NjQsNyArNTk3LDcgQEAKIAogCXJldHVybiAwOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3BpX21hc3Rlcl9yZWN2X3dvcmRfcG9sbCk7CiAKIC8qCiAgKiBTaW1wbGUgRE1BIGJhc2VkIGJ1ZmZlciByeC90eCByb3V0aW5lcy4KQEAgLTY3MywyNSArNjA2LDMyIEBACiAgKiBGb3IgYW55dGhpbmcgZmFuY2llciwgeW91IHNob3VsZCB1c2UgeW91ciBvd24gY3VzdG9taXplZCBETUEKICAqIHJvdXRpbmVzIGFuZCBjYWxsYmFja3MuCiAgKi8KLWludCBvbWFwX21jYnNwX3htaXRfYnVmZmVyKHVuc2lnbmVkIGludCBpZCwgZG1hX2FkZHJfdCBidWZmZXIsIHVuc2lnbmVkIGludCBsZW5ndGgpCitpbnQgb21hcF9tY2JzcF94bWl0X2J1ZmZlcih1bnNpZ25lZCBpbnQgaWQsIGRtYV9hZGRyX3QgYnVmZmVyLAorCQkJCXVuc2lnbmVkIGludCBsZW5ndGgpCiB7CiAJaW50IGRtYV90eF9jaDsKIAlpbnQgc3JjX3BvcnQgPSAwOwogCWludCBkZXN0X3BvcnQgPSAwOwogCWludCBzeW5jX2RldiA9IDA7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KIAotCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfdHhfc3luYywgIk1jQlNQIFRYIiwgb21hcF9tY2JzcF90eF9kbWFfY2FsbGJhY2ssCi0JCQkgICAgICZtY2JzcFtpZF0sCi0JCQkgICAgICZkbWFfdHhfY2gpKSB7Ci0JCXByaW50aygiT01BUC1NY0JTUDogVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yIE1jQlNQJWQgVFguIFRyeWluZyBJUlEgYmFzZWQgVFhcbiIsIGlkKzEpOworCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfdHhfc3luYywgIk1jQlNQIFRYIiwKKwkJCQlvbWFwX21jYnNwX3R4X2RtYV9jYWxsYmFjaywKKwkJCQkmbWNic3BbaWRdLAorCQkJCSZkbWFfdHhfY2gpKSB7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIiBVbmFibGUgdG8gcmVxdWVzdCBETUEgY2hhbm5lbCBmb3IgIgorCQkJCSJNY0JTUCVkIFRYLiBUcnlpbmcgSVJRIGJhc2VkIFRYXG4iLAorCQkJCW1jYnNwW2lkXS5pZCk7CiAJCXJldHVybiAtRUFHQUlOOwogCX0KIAltY2JzcFtpZF0uZG1hX3R4X2xjaCA9IGRtYV90eF9jaDsKIAotCURCRygiVFggRE1BIG9uIGNoYW5uZWwgJWRcbiIsIGRtYV90eF9jaCk7CisJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCBUWCBETUEgb24gY2hhbm5lbCAlZFxuIiwgbWNic3BbaWRdLmlkLAorCQlkbWFfdHhfY2gpOwogCiAJaW5pdF9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2RtYV9jb21wbGV0aW9uKSk7CiAKQEAgLTY5OSw3ICs2MzksNyBAQAogCQlzcmNfcG9ydCA9IE9NQVBfRE1BX1BPUlRfVElQQjsKIAkJZGVzdF9wb3J0ID0gT01BUF9ETUFfUE9SVF9FTUlGRjsKIAl9Ci0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKQorCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJc3luY19kZXYgPSBtY2JzcFtpZF0uZG1hX3R4X3N5bmM7CiAKIAlvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKG1jYnNwW2lkXS5kbWFfdHhfbGNoLApAQCAtNzIyLDI5ICs2NjIsMzcgQEAKIAogCW9tYXBfc3RhcnRfZG1hKG1jYnNwW2lkXS5kbWFfdHhfbGNoKTsKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2RtYV9jb21wbGV0aW9uKSk7CisKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF94bWl0X2J1ZmZlcik7CiAKLQotaW50IG9tYXBfbWNic3BfcmVjdl9idWZmZXIodW5zaWduZWQgaW50IGlkLCBkbWFfYWRkcl90IGJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbmd0aCkKK2ludCBvbWFwX21jYnNwX3JlY3ZfYnVmZmVyKHVuc2lnbmVkIGludCBpZCwgZG1hX2FkZHJfdCBidWZmZXIsCisJCQkJdW5zaWduZWQgaW50IGxlbmd0aCkKIHsKIAlpbnQgZG1hX3J4X2NoOwogCWludCBzcmNfcG9ydCA9IDA7CiAJaW50IGRlc3RfcG9ydCA9IDA7CiAJaW50IHN5bmNfZGV2ID0gMDsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCi0JCXJldHVybiAtRUlOVkFMOworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQogCi0JaWYgKG9tYXBfcmVxdWVzdF9kbWEobWNic3BbaWRdLmRtYV9yeF9zeW5jLCAiTWNCU1AgUlgiLCBvbWFwX21jYnNwX3J4X2RtYV9jYWxsYmFjaywKLQkJCSAgICAgJm1jYnNwW2lkXSwKLQkJCSAgICAgJmRtYV9yeF9jaCkpIHsKLQkJcHJpbnRrKCJVbmFibGUgdG8gcmVxdWVzdCBETUEgY2hhbm5lbCBmb3IgTWNCU1AlZCBSWC4gVHJ5aW5nIElSUSBiYXNlZCBSWFxuIiwgaWQrMSk7CisJaWYgKG9tYXBfcmVxdWVzdF9kbWEobWNic3BbaWRdLmRtYV9yeF9zeW5jLCAiTWNCU1AgUlgiLAorCQkJCW9tYXBfbWNic3BfcnhfZG1hX2NhbGxiYWNrLAorCQkJCSZtY2JzcFtpZF0sCisJCQkJJmRtYV9yeF9jaCkpIHsKKwkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yICIKKwkJCQkiTWNCU1AlZCBSWC4gVHJ5aW5nIElSUSBiYXNlZCBSWFxuIiwKKwkJCQltY2JzcFtpZF0uaWQpOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAJbWNic3BbaWRdLmRtYV9yeF9sY2ggPSBkbWFfcnhfY2g7CiAKLQlEQkcoIlJYIERNQSBvbiBjaGFubmVsICVkXG4iLCBkbWFfcnhfY2gpOworCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgUlggRE1BIG9uIGNoYW5uZWwgJWRcbiIsIG1jYnNwW2lkXS5pZCwKKwkJZG1hX3J4X2NoKTsKIAogCWluaXRfY29tcGxldGlvbigmKG1jYnNwW2lkXS5yeF9kbWFfY29tcGxldGlvbikpOwogCkBAIC03NTIsMTQgKzcwMCwxNCBAQAogCQlzcmNfcG9ydCA9IE9NQVBfRE1BX1BPUlRfVElQQjsKIAkJZGVzdF9wb3J0ID0gT01BUF9ETUFfUE9SVF9FTUlGRjsKIAl9Ci0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKQorCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJc3luY19kZXYgPSBtY2JzcFtpZF0uZG1hX3J4X3N5bmM7CiAKIAlvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKG1jYnNwW2lkXS5kbWFfcnhfbGNoLAotCQkJCSAgICAgT01BUF9ETUFfREFUQV9UWVBFX1MxNiwKLQkJCQkgICAgIGxlbmd0aCA+PiAxLCAxLAotCQkJCSAgICAgT01BUF9ETUFfU1lOQ19FTEVNRU5ULAotCSBzeW5jX2RldiwgMCk7CisJCQkJCU9NQVBfRE1BX0RBVEFfVFlQRV9TMTYsCisJCQkJCWxlbmd0aCA+PiAxLCAxLAorCQkJCQlPTUFQX0RNQV9TWU5DX0VMRU1FTlQsCisJCQkJCXN5bmNfZGV2LCAwKTsKIAogCW9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKG1jYnNwW2lkXS5kbWFfcnhfbGNoLAogCQkJCXNyY19wb3J0LApAQCAtNzY4LDE2ICs3MTYsMTcgQEAKIAkJCQkwLCAwKTsKIAogCW9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyhtY2JzcFtpZF0uZG1hX3J4X2xjaCwKLQkJCQkgZGVzdF9wb3J0LAotCQkJCSBPTUFQX0RNQV9BTU9ERV9QT1NUX0lOQywKLQkJCQkgYnVmZmVyLAotCQkJCSAwLCAwKTsKKwkJCQkJZGVzdF9wb3J0LAorCQkJCQlPTUFQX0RNQV9BTU9ERV9QT1NUX0lOQywKKwkJCQkJYnVmZmVyLAorCQkJCQkwLCAwKTsKIAogCW9tYXBfc3RhcnRfZG1hKG1jYnNwW2lkXS5kbWFfcnhfbGNoKTsKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCYobWNic3BbaWRdLnJ4X2RtYV9jb21wbGV0aW9uKSk7CisKIAlyZXR1cm4gMDsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3JlY3ZfYnVmZmVyKTsKIAogLyoKICAqIFNQSSB3cmFwcGVyLgpAQCAtNzg1LDEyICs3MzQsMTUgQEAKICAqIHRoaXMgd3JhcHBlciBqdXN0IG5lZWQgYW4gb21hcF9tY2JzcF9zcGlfY2ZnIHN0cnVjdHVyZSBhcyBhbiBpbnB1dC4KICAqIE9uY2UgdGhpcyBpcyBkb25lLCB5b3UgY2FuIGNhbGwgb21hcF9tY2JzcF9zdGFydCgpLgogICovCi12b2lkIG9tYXBfbWNic3Bfc2V0X3NwaV9tb2RlKHVuc2lnbmVkIGludCBpZCwgY29uc3Qgc3RydWN0IG9tYXBfbWNic3Bfc3BpX2NmZyAqIHNwaV9jZmcpCit2b2lkIG9tYXBfbWNic3Bfc2V0X3NwaV9tb2RlKHVuc2lnbmVkIGludCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9zcGlfY2ZnICpzcGlfY2ZnKQogewogCXN0cnVjdCBvbWFwX21jYnNwX3JlZ19jZmcgbWNic3BfY2ZnOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CiAJCXJldHVybjsKKwl9CiAKIAltZW1zZXQoJm1jYnNwX2NmZywgMCwgc2l6ZW9mKHN0cnVjdCBvbWFwX21jYnNwX3JlZ19jZmcpKTsKIApAQCAtNzk4LDcgKzc1MCw3IEBACiAJbWNic3BfY2ZnLnJjcjEgfD0gKFJXRExFTjEoc3BpX2NmZy0+d29yZF9sZW5ndGgpIHwgUkZSTEVOMSgwKSk7CiAJbWNic3BfY2ZnLnhjcjEgfD0gKFhXRExFTjEoc3BpX2NmZy0+d29yZF9sZW5ndGgpIHwgWEZSTEVOMSgwKSk7CiAKLSAgICAgICAgLyogQ2xvY2sgc3RvcCBtb2RlICovCisJLyogQ2xvY2sgc3RvcCBtb2RlICovCiAJaWYgKHNwaV9jZmctPmNsa19zdHBfbW9kZSA9PSBPTUFQX01DQlNQX0NMS19TVFBfTU9ERV9OT19ERUxBWSkKIAkJbWNic3BfY2ZnLnNwY3IxIHw9ICgxIDw8IDEyKTsKIAllbHNlCkBAIC04MjcsMTMgKzc3OSwxMiBAQAogCiAJaWYgKHNwaV9jZmctPnNwaV9tb2RlID09IE9NQVBfTUNCU1BfU1BJX01BU1RFUikgewogCQltY2JzcF9jZmcucGNyMCB8PSBDTEtYTTsKLQkJbWNic3BfY2ZnLnNyZ3IxIHw9IENMS0dEVihzcGlfY2ZnLT5jbGtfZGl2IC0xKTsKKwkJbWNic3BfY2ZnLnNyZ3IxIHw9IENMS0dEVihzcGlfY2ZnLT5jbGtfZGl2IC0gMSk7CiAJCW1jYnNwX2NmZy5wY3IwIHw9IEZTWE07CiAJCW1jYnNwX2NmZy5zcmdyMiAmPSB+RlNHTTsKIAkJbWNic3BfY2ZnLnhjcjIgfD0gWERBVERMWSgxKTsKIAkJbWNic3BfY2ZnLnJjcjIgfD0gUkRBVERMWSgxKTsKLQl9Ci0JZWxzZSB7CisJfSBlbHNlIHsKIAkJbWNic3BfY2ZnLnBjcjAgJj0gfkNMS1hNOwogCQltY2JzcF9jZmcuc3JncjEgfD0gQ0xLR0RWKDEpOwogCQltY2JzcF9jZmcucGNyMCAmPSB+RlNYTTsKQEAgLTg0NiwxOTkgKzc5Nyw5OSBAQAogCiAJb21hcF9tY2JzcF9jb25maWcoaWQsICZtY2JzcF9jZmcpOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc2V0X3NwaV9tb2RlKTsKIAogLyoKICAqIE1jQlNQMSBhbmQgTWNCU1AzIGFyZSBkaXJlY3RseSBtYXBwZWQgb24gMTYxMCBhbmQgMTUxMC4KICAqIDczMCBoYXMgb25seSAyIE1jQlNQLCBhbmQgYm90aCBvZiB0aGVtIGFyZSBNUFUgcGVyaXBoZXJhbHMuCiAgKi8KLXN0cnVjdCBvbWFwX21jYnNwX2luZm8gewotCXUzMiB2aXJ0X2Jhc2U7Ci0JdTggZG1hX3J4X3N5bmMsIGRtYV90eF9zeW5jOwotCXUxNiByeF9pcnEsIHR4X2lycTsKLX07Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQNzMwCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyBtY2JzcF83MzBbXSA9IHsKLQlbMF0gPSB7IC52aXJ0X2Jhc2UgPSBpb19wMnYoT01BUDczMF9NQ0JTUDFfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AxX1RYLAotCQkucnhfaXJxID0gSU5UXzczMF9NY0JTUDFSWCwKLQkJLnR4X2lycSA9IElOVF83MzBfTWNCU1AxVFggfSwKLQlbMV0gPSB7IC52aXJ0X2Jhc2UgPSBpb19wMnYoT01BUDczMF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1RYLAotCQkucnhfaXJxID0gSU5UXzczMF9NY0JTUDJSWCwKLQkJLnR4X2lycSA9IElOVF83MzBfTWNCU1AyVFggfSwKLX07Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxNVhYCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyBtY2JzcF8xNTEwW10gPSB7Ci0JWzBdID0geyAudmlydF9iYXNlID0gT01BUDE1MTBfTUNCU1AxX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AxX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQMVJYLAotCQkudHhfaXJxID0gSU5UX01jQlNQMVRYIH0sCi0JWzFdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVAxNTEwX01DQlNQMl9CQVNFKSwKLQkJLmRtYV9yeF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDJfVFgsCi0JCS5yeF9pcnEgPSBJTlRfMTUxMF9TUElfUlgsCi0JCS50eF9pcnEgPSBJTlRfMTUxMF9TUElfVFggfSwKLQlbMl0gPSB7IC52aXJ0X2Jhc2UgPSBPTUFQMTUxMF9NQ0JTUDNfQkFTRSwKLQkJLmRtYV9yeF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDNfVFgsCi0JCS5yeF9pcnEgPSBJTlRfTWNCU1AzUlgsCi0JCS50eF9pcnEgPSBJTlRfTWNCU1AzVFggfSwKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDE2WFgpCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyBtY2JzcF8xNjEwW10gPSB7Ci0JWzBdID0geyAudmlydF9iYXNlID0gT01BUDE2MTBfTUNCU1AxX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AxX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQMVJYLAotCQkudHhfaXJxID0gSU5UX01jQlNQMVRYIH0sCi0JWzFdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVAxNjEwX01DQlNQMl9CQVNFKSwKLQkJLmRtYV9yeF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDJfVFgsCi0JCS5yeF9pcnEgPSBJTlRfMTYxMF9NY0JTUDJfUlgsCi0JCS50eF9pcnEgPSBJTlRfMTYxMF9NY0JTUDJfVFggfSwKLQlbMl0gPSB7IC52aXJ0X2Jhc2UgPSBPTUFQMTYxMF9NQ0JTUDNfQkFTRSwKLQkJLmRtYV9yeF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDNfVFgsCi0JCS5yeF9pcnEgPSBJTlRfTWNCU1AzUlgsCi0JCS50eF9pcnEgPSBJTlRfTWNCU1AzVFggfSwKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0WFgpCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyBtY2JzcF8yNHh4W10gPSB7Ci0JWzBdID0geyAudmlydF9iYXNlID0gSU9fQUREUkVTUyhPTUFQMjRYWF9NQ0JTUDFfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgsCi0JCS5yeF9pcnEgPSBJTlRfMjRYWF9NQ0JTUDFfSVJRX1JYLAotCQkudHhfaXJxID0gSU5UXzI0WFhfTUNCU1AxX0lSUV9UWCwKLQkJfSwKLQlbMV0gPSB7IC52aXJ0X2Jhc2UgPSBJT19BRERSRVNTKE9NQVAyNFhYX01DQlNQMl9CQVNFKSwKLQkJLmRtYV9yeF9zeW5jID0gT01BUDI0WFhfRE1BX01DQlNQMl9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUDI0WFhfRE1BX01DQlNQMl9UWCwKLQkJLnJ4X2lycSA9IElOVF8yNFhYX01DQlNQMl9JUlFfUlgsCi0JCS50eF9pcnEgPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1RYLAotCQl9LAotfTsKLSNlbmRpZgotCi1zdGF0aWMgaW50IF9faW5pdCBvbWFwX21jYnNwX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IG9tYXBfbWNic3BfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlpbnQgbWNic3BfY291bnQgPSAwLCBpOwotCXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9pbmZvICptY2JzcF9pbmZvOworCXN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJaW50IGlkID0gcGRldi0+aWQgLSAxOworCWludCByZXQgPSAwOwogCi0JcHJpbnRrKCJJbml0aWFsaXppbmcgT01BUCBNY0JTUCBzeXN0ZW1cbiIpOworCWlmICghcGRhdGEpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiTWNCU1AgZGV2aWNlIGluaXRpYWxpemVkIHdpdGhvdXQiCisJCQkJInBsYXRmb3JtIGRhdGFcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGV4aXQ7CisJfQogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKLQltY2JzcF9kc3BfY2sgPSBjbGtfZ2V0KDAsICJkc3BfY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwX2RzcF9jaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgZHNwX2NrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcF9kc3BfY2spOwotCX0KLQltY2JzcF9hcGlfY2sgPSBjbGtfZ2V0KDAsICJhcGlfY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwX2FwaV9jaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgYXBpX2NrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcF9hcGlfY2spOwotCX0KLQltY2JzcF9kc3B4b3JfY2sgPSBjbGtfZ2V0KDAsICJkc3B4b3JfY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwX2RzcHhvcl9jaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgZHNweG9yX2NrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcF9kc3B4b3JfY2spOwotCX0KLSNlbmRpZgotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi0JbWNic3AxX2ljayA9IGNsa19nZXQoMCwgIm1jYnNwMV9pY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwMV9pY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIG1jYnNwMV9pY2sgaGFuZGxlLlxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG1jYnNwMV9pY2spOwotCX0KLQltY2JzcDFfZmNrID0gY2xrX2dldCgwLCAibWNic3AxX2ZjayIpOwotCWlmIChJU19FUlIobWNic3AxX2ZjaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgbWNic3AxX2ZjayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3AxX2Zjayk7Ci0JfQotCW1jYnNwMl9pY2sgPSBjbGtfZ2V0KDAsICJtY2JzcDJfaWNrIik7Ci0JaWYgKElTX0VSUihtY2JzcDJfaWNrKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1jYnNwOiBjb3VsZCBub3QgYWNxdWlyZSBtY2JzcDJfaWNrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcDJfaWNrKTsKLQl9Ci0JbWNic3AyX2ZjayA9IGNsa19nZXQoMCwgIm1jYnNwMl9mY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwMl9mY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIG1jYnNwMl9mY2sgaGFuZGxlLlxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG1jYnNwMl9mY2spOwotCX0KLSNlbmRpZgorCWRldl9kYmcoJnBkZXYtPmRldiwgIkluaXRpYWxpemluZyBPTUFQIE1jQlNQICglZCkuXG4iLCBwZGV2LT5pZCk7CiAKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQNzMwCi0JaWYgKGNwdV9pc19vbWFwNzMwKCkpIHsKLQkJbWNic3BfaW5mbyA9IG1jYnNwXzczMDsKLQkJbWNic3BfY291bnQgPSBBUlJBWV9TSVpFKG1jYnNwXzczMCk7CisJaWYgKGlkID49IE9NQVBfTUFYX01DQlNQX0NPVU5UKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkludmFsaWQgTWNCU1AgZGV2aWNlIGlkICglZClcbiIsIGlkKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBleGl0OwogCX0KLSNlbmRpZgotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxNVhYCi0JaWYgKGNwdV9pc19vbWFwMTV4eCgpKSB7Ci0JCW1jYnNwX2luZm8gPSBtY2JzcF8xNTEwOwotCQltY2JzcF9jb3VudCA9IEFSUkFZX1NJWkUobWNic3BfMTUxMCk7Ci0JfQotI2VuZGlmCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMTZYWCkKLQlpZiAoY3B1X2lzX29tYXAxNnh4KCkpIHsKLQkJbWNic3BfaW5mbyA9IG1jYnNwXzE2MTA7Ci0JCW1jYnNwX2NvdW50ID0gQVJSQVlfU0laRShtY2JzcF8xNjEwKTsKLQl9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKQotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgewotCQltY2JzcF9pbmZvID0gbWNic3BfMjR4eDsKLQkJbWNic3BfY291bnQgPSBBUlJBWV9TSVpFKG1jYnNwXzI0eHgpOwotCQlvbWFwMl9tY2JzcDJfbXV4X3NldHVwKCk7Ci0JfQotI2VuZGlmCi0JZm9yIChpID0gMDsgaSA8IE9NQVBfTUFYX01DQlNQX0NPVU5UIDsgaSsrKSB7Ci0JCWlmIChpID49IG1jYnNwX2NvdW50KSB7Ci0JCQltY2JzcFtpXS5pb19iYXNlID0gMDsKLQkJCW1jYnNwW2ldLmZyZWUgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0JCX0KLQkJbWNic3BbaV0uaWQgPSBpICsgMTsKLQkJbWNic3BbaV0uZnJlZSA9IDE7Ci0JCW1jYnNwW2ldLmRtYV90eF9sY2ggPSAtMTsKLQkJbWNic3BbaV0uZG1hX3J4X2xjaCA9IC0xOwogCi0JCW1jYnNwW2ldLmlvX2Jhc2UgPSBtY2JzcF9pbmZvW2ldLnZpcnRfYmFzZTsKLQkJbWNic3BbaV0uaW9fdHlwZSA9IE9NQVBfTUNCU1BfSVJRX0lPOyAvKiBEZWZhdWx0IEkvTyBpcyBJUlEgYmFzZWQgKi8KLQkJbWNic3BbaV0udHhfaXJxID0gbWNic3BfaW5mb1tpXS50eF9pcnE7Ci0JCW1jYnNwW2ldLnJ4X2lycSA9IG1jYnNwX2luZm9baV0ucnhfaXJxOwotCQltY2JzcFtpXS5kbWFfcnhfc3luYyA9IG1jYnNwX2luZm9baV0uZG1hX3J4X3N5bmM7Ci0JCW1jYnNwW2ldLmRtYV90eF9zeW5jID0gbWNic3BfaW5mb1tpXS5kbWFfdHhfc3luYzsKLQkJc3Bpbl9sb2NrX2luaXQoJm1jYnNwW2ldLmxvY2spOworCXNwaW5fbG9ja19pbml0KCZtY2JzcFtpZF0ubG9jayk7CisJbWNic3BbaWRdLmlkID0gaWQgKyAxOworCW1jYnNwW2lkXS5mcmVlID0gMTsKKwltY2JzcFtpZF0uZG1hX3R4X2xjaCA9IC0xOworCW1jYnNwW2lkXS5kbWFfcnhfbGNoID0gLTE7CisKKwltY2JzcFtpZF0uaW9fYmFzZSA9IHBkYXRhLT52aXJ0X2Jhc2U7CisJLyogRGVmYXVsdCBJL08gaXMgSVJRIGJhc2VkICovCisJbWNic3BbaWRdLmlvX3R5cGUgPSBPTUFQX01DQlNQX0lSUV9JTzsKKwltY2JzcFtpZF0udHhfaXJxID0gcGRhdGEtPnR4X2lycTsKKwltY2JzcFtpZF0ucnhfaXJxID0gcGRhdGEtPnJ4X2lycTsKKwltY2JzcFtpZF0uZG1hX3J4X3N5bmMgPSBwZGF0YS0+ZG1hX3J4X3N5bmM7CisJbWNic3BbaWRdLmRtYV90eF9zeW5jID0gcGRhdGEtPmRtYV90eF9zeW5jOworCisJaWYgKHBkYXRhLT5jbGtfbmFtZSkKKwkJbWNic3BbaWRdLmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgcGRhdGEtPmNsa19uYW1lKTsKKwlpZiAoSVNfRVJSKG1jYnNwW2lkXS5jbGspKSB7CisJCW1jYnNwW2lkXS5mcmVlID0gMDsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkJIkludmFsaWQgY2xvY2sgY29uZmlndXJhdGlvbiBmb3IgTWNCU1AlZC5cbiIsCisJCQltY2JzcFtpZF0uaWQpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGV4aXQ7CisJfQorCisJbWNic3BbaWRdLnBkYXRhID0gcGRhdGE7CisJbWNic3BbaWRdLmRldiA9ICZwZGV2LT5kZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgJm1jYnNwW2lkXSk7CisKK2V4aXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBvbWFwX21jYnNwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBvbWFwX21jYnNwICptY2JzcCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisJaWYgKG1jYnNwKSB7CisKKwkJaWYgKG1jYnNwLT5wZGF0YSAmJiBtY2JzcC0+cGRhdGEtPm9wcyAmJgorCQkJCW1jYnNwLT5wZGF0YS0+b3BzLT5mcmVlKQorCQkJbWNic3AtPnBkYXRhLT5vcHMtPmZyZWUobWNic3AtPmlkKTsKKworCQljbGtfZGlzYWJsZShtY2JzcC0+Y2xrKTsKKwkJY2xrX3B1dChtY2JzcC0+Y2xrKTsKKworCQltY2JzcC0+Y2xrID0gTlVMTDsKKwkJbWNic3AtPmZyZWUgPSAwOworCQltY2JzcC0+ZGV2ID0gTlVMTDsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KIAotYXJjaF9pbml0Y2FsbChvbWFwX21jYnNwX2luaXQpOworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgb21hcF9tY2JzcF9kcml2ZXIgPSB7CisJLnByb2JlCQk9IG9tYXBfbWNic3BfcHJvYmUsCisJLnJlbW92ZQkJPSBvbWFwX21jYnNwX3JlbW92ZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAib21hcC1tY2JzcCIsCisJfSwKK307CiAKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9jb25maWcpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3JlcXVlc3QpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NldF9pb190eXBlKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9mcmVlKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9zdGFydCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3RvcCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcG9sbHJlYWQpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3BvbGx3cml0ZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfeG1pdF93b3JkKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZWN2X3dvcmQpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3htaXRfYnVmZmVyKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZWN2X2J1ZmZlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3BpX21hc3Rlcl94bWl0X3dvcmRfcG9sbCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3BpX21hc3Rlcl9yZWN2X3dvcmRfcG9sbCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc2V0X3NwaV9tb2RlKTsKK2ludCBfX2luaXQgb21hcF9tY2JzcF9pbml0KHZvaWQpCit7CisJLyogUmVnaXN0ZXIgdGhlIE1jQlNQIGRyaXZlciAqLworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJm9tYXBfbWNic3BfZHJpdmVyKTsKK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0tZm4uUyBiL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllMTgxM2MuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0tZm4uUworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBsaW51eC9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS1mbi5TCi0gKgotICogRnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50ZXJuYWwgU1JBTQotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLQotCS50ZXh0Ci0KLS8qCi0gKiBSZXByb2dyYW1zIFVMUEQgYW5kIENLQ1RMLgotICovCi1FTlRSWShzcmFtX3JlcHJvZ3JhbV9jbG9jaykKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCi0KLQltb3YJcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4ZmYwMDAwMDAKLQlvcnIJcjIsIHIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweDAwZmYwMDAwCi0Jb3JyCXIyLCByMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHgwMDAwZmYwMAotCi0JbW92CXIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHhmZjAwMDAwMAotCW9ycglyMywgcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweDAwZmYwMDAwCi0Jb3JyCXIzLCByMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4MDAwMGZmMDAKLQotCXRzdAlyMCwgIzEgPDwgNAkJCUAgd2FudCBsb2NrIG1vZGU/Ci0JYmVxCW5ld2NrCQkJCUAgbm9wZQotCWJpYwlyMCwgcjAsICMxIDw8IDQJCQlAIGVsc2UgY2xlYXIgbG9jayBiaXQKLQlzdHJoCXIwLCBbcjJdCQkJQCBzZXQgZHBsbCBpbnRvIGJ5cGFzcyBtb2RlCi0Jb3JyCXIwLCByMCwgIzEgPDwgNAkJCUAgc2V0IGxvY2sgYml0IGFnYWluCi0KLW5ld2NrOgotCXN0cmgJcjEsIFtyM10JCQlAIHdyaXRlIG5ldyBja2N0bCB2YWx1ZQotCXN0cmgJcjAsIFtyMl0JCQlAIHdyaXRlIG5ldyBkcGxsIHZhbHVlCi0KLQltb3YJcjQsICMweDA3MDAJCQlAIGxldCB0aGUgY2xvY2tzIHNldHRsZQotCW9ycglyNCwgcjQsICMweDAwZmYKLWRlbGF5OglzdWIJcjQsIHI0LCAjMQotCWNtcAlyNCwgIzAKLQlibmUJZGVsYXkKLQotbG9jazoJbGRyaAlyNCwgW3IyXSwgIzAJCQlAIHJlYWQgYmFjayBkcGxsIHZhbHVlCi0JdHN0CXIwLCAjMSA8PCA0CQkJQCB3YW50IGxvY2sgbW9kZT8KLQliZXEJb3V0CQkJCUAgbm9wZQotCXRzdAlyNCwgIzEgPDwgMAkJCUAgZHBsbCByYXRlIGxvY2tlZD8KLQliZXEJbG9jawkJCQlAIHRyeSBhZ2FpbgotCi1vdXQ6Ci0JbGRtZmQJc3AhLCB7cjAgLSByMTIsIHBjfQkJQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotRU5UUlkoc3JhbV9yZXByb2dyYW1fY2xvY2tfc3opCi0JLndvcmQJLiAtIHNyYW1fcmVwcm9ncmFtX2Nsb2NrCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0uYwppbmRleCAxZjIzZjA0Li41NTRlZTU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLmMKQEAgLTEwLDYgKzEwLDcgQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICAqLworI3VuZGVmIERFQlVHCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTI0LDI1ICsyNSw0MyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3NyYW0uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogCisjaW5jbHVkZSA8YXNtL2FyY2gvY29udHJvbC5oPgorCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKKyMgaW5jbHVkZSAiLi4vbWFjaC1vbWFwMi9wcm0uaCIKKyMgaW5jbHVkZSAiLi4vbWFjaC1vbWFwMi9jbS5oIgorIyBpbmNsdWRlICIuLi9tYWNoLW9tYXAyL3NkcmMuaCIKKyNlbmRpZgorCiAjZGVmaW5lIE9NQVAxX1NSQU1fUEEJCTB4MjAwMDAwMDAKLSNkZWZpbmUgT01BUDFfU1JBTV9WQQkJMHhkMDAwMDAwMAorI2RlZmluZSBPTUFQMV9TUkFNX1ZBCQlWTUFMTE9DX0VORAogI2RlZmluZSBPTUFQMl9TUkFNX1BBCQkweDQwMjAwMDAwCiAjZGVmaW5lIE9NQVAyX1NSQU1fUFVCX1BBCTB4NDAyMGY4MDAKLSNkZWZpbmUgT01BUDJfU1JBTV9WQQkJMHhkMDAwMDAwMAotI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9WQQkweGQwMDAwODAwCisjZGVmaW5lIE9NQVAyX1NSQU1fVkEJCVZNQUxMT0NfRU5ECisjZGVmaW5lIE9NQVAyX1NSQU1fUFVCX1ZBCShWTUFMTE9DX0VORCArIDB4ODAwKQorI2RlZmluZSBPTUFQM19TUkFNX1BBICAgICAgICAgICAweDQwMjAwMDAwCisjZGVmaW5lIE9NQVAzX1NSQU1fVkEgICAgICAgICAgIDB4ZDcwMDAwMDAKKyNkZWZpbmUgT01BUDNfU1JBTV9QVUJfUEEgICAgICAgMHg0MDIwODAwMAorI2RlZmluZSBPTUFQM19TUkFNX1BVQl9WQSAgICAgICAweGQ3MDA4MDAwCiAKLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKQorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0WFgpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0WFgpCiAjZGVmaW5lIFNSQU1fQk9PVExPQURFUl9TWgkweDAwCiAjZWxzZQogI2RlZmluZSBTUkFNX0JPT1RMT0FERVJfU1oJMHg4MAogI2VuZGlmCiAKLSNkZWZpbmUgVkFfUkVRSU5GT1BFUk0wCQlJT19BRERSRVNTKDB4NjgwMDUwNDgpCi0jZGVmaW5lIFZBX1JFQURQRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDUwKQotI2RlZmluZSBWQV9XUklURVBFUk0wCQlJT19BRERSRVNTKDB4NjgwMDUwNTgpCi0jZGVmaW5lIFZBX0NPTlRST0xfU1RBVAkJSU9fQUREUkVTUygweDQ4MDAwMkY4KQorI2RlZmluZSBPTUFQMjRYWF9WQV9SRVFJTkZPUEVSTTAJSU9fQUREUkVTUygweDY4MDA1MDQ4KQorI2RlZmluZSBPTUFQMjRYWF9WQV9SRUFEUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAwNTA1MCkKKyNkZWZpbmUgT01BUDI0WFhfVkFfV1JJVEVQRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDU4KQorCisjZGVmaW5lIE9NQVAzNFhYX1ZBX1JFUUlORk9QRVJNMAlJT19BRERSRVNTKDB4NjgwMTI4NDgpCisjZGVmaW5lIE9NQVAzNFhYX1ZBX1JFQURQRVJNMAkJSU9fQUREUkVTUygweDY4MDEyODUwKQorI2RlZmluZSBPTUFQMzRYWF9WQV9XUklURVBFUk0wCQlJT19BRERSRVNTKDB4NjgwMTI4NTgpCisjZGVmaW5lIE9NQVAzNFhYX1ZBX0FERFJfTUFUQ0gyCQlJT19BRERSRVNTKDB4NjgwMTI4ODApCisjZGVmaW5lIE9NQVAzNFhYX1ZBX1NNU19SR19BVFQwCQlJT19BRERSRVNTKDB4NkMwMDAwNDgpCisjZGVmaW5lIE9NQVAzNFhYX1ZBX0NPTlRST0xfU1RBVAlJT19BRERSRVNTKDB4NDgwMDIyRjApCisKICNkZWZpbmUgR1BfREVWSUNFCQkweDMwMAotI2RlZmluZSBUWVBFX01BU0sJCTB4NzAwCiAKICNkZWZpbmUgUk9VTkRfRE9XTih2YWx1ZSxib3VuZGFyeSkJKCh2YWx1ZSkgJiAofigoYm91bmRhcnkpLTEpKSkKIApAQCAtNjgsMTQgKzg3LDIxIEBACiAJaW50IHR5cGUgPSAwOwogCiAJaWYgKGNwdV9pc19vbWFwMjQyeCgpKQotCQl0eXBlID0gX19yYXdfcmVhZGwoVkFfQ09OVFJPTF9TVEFUKSAmIFRZUEVfTUFTSzsKKwkJdHlwZSA9IHN5c3RlbV9yZXYgJiBPTUFQMl9ERVZJQ0VUWVBFX01BU0s7CiAKIAlpZiAodHlwZSA9PSBHUF9ERVZJQ0UpIHsKIAkJLyogUkFNRlc6IFIvVyBhY2Nlc3MgdG8gYWxsIGluaXRpYXRvcnMgZm9yIGFsbCBxdWFsaWZpZXIgc2V0cyAqLwogCQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpIHsKLQkJCV9fcmF3X3dyaXRlbCgweEZGLCBWQV9SRVFJTkZPUEVSTTApOyAvKiBhbGwgcS12ZWN0cyAqLwotCQkJX19yYXdfd3JpdGVsKDB4Q0ZERSwgVkFfUkVBRFBFUk0wKTsgIC8qIGFsbCBpLXJlYWQgKi8KLQkJCV9fcmF3X3dyaXRlbCgweENGREUsIFZBX1dSSVRFUEVSTTApOyAvKiBhbGwgaS13cml0ZSAqLworCQkJX19yYXdfd3JpdGVsKDB4RkYsIE9NQVAyNFhYX1ZBX1JFUUlORk9QRVJNMCk7IC8qIGFsbCBxLXZlY3RzICovCisJCQlfX3Jhd193cml0ZWwoMHhDRkRFLCBPTUFQMjRYWF9WQV9SRUFEUEVSTTApOyAgLyogYWxsIGktcmVhZCAqLworCQkJX19yYXdfd3JpdGVsKDB4Q0ZERSwgT01BUDI0WFhfVkFfV1JJVEVQRVJNMCk7IC8qIGFsbCBpLXdyaXRlICovCisJCX0KKwkJaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJCQlfX3Jhd193cml0ZWwoMHhGRkZGLCBPTUFQMzRYWF9WQV9SRVFJTkZPUEVSTTApOyAvKiBhbGwgcS12ZWN0cyAqLworCQkJX19yYXdfd3JpdGVsKDB4RkZGRiwgT01BUDM0WFhfVkFfUkVBRFBFUk0wKTsgIC8qIGFsbCBpLXJlYWQgKi8KKwkJCV9fcmF3X3dyaXRlbCgweEZGRkYsIE9NQVAzNFhYX1ZBX1dSSVRFUEVSTTApOyAvKiBhbGwgaS13cml0ZSAqLworCQkJX19yYXdfd3JpdGVsKDB4MCwgT01BUDM0WFhfVkFfQUREUl9NQVRDSDIpOworCQkJX19yYXdfd3JpdGVsKDB4RkZGRkZGRkYsIE9NQVAzNFhYX1ZBX1NNU19SR19BVFQwKTsKIAkJfQogCQlyZXR1cm4gMDsKIAl9IGVsc2UKQEAgLTkyLDE4ICsxMTgsMzAgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHJlc2VydmVkOwogCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CiAJCWlmIChpc19zcmFtX2xvY2tlZCgpKSB7Ci0JCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fUFVCX1ZBOwotCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDJfU1JBTV9QVUJfUEE7Ci0JCQlvbWFwX3NyYW1fc2l6ZSA9IDB4ODAwOyAvKiAySyAqLworCQkJaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJCQkJb21hcF9zcmFtX2Jhc2UgPSBPTUFQM19TUkFNX1BVQl9WQTsKKwkJCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQM19TUkFNX1BVQl9QQTsKKwkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4ODAwMDsgLyogMzJLICovCisJCQl9IGVsc2UgeworCQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDJfU1JBTV9QVUJfVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDJfU1JBTV9QVUJfUEE7CisJCQkJb21hcF9zcmFtX3NpemUgPSAweDgwMDsgLyogMksgKi8KKwkJCX0KIAkJfSBlbHNlIHsKLQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDJfU1JBTV9WQTsKLQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUEE7Ci0JCQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCi0JCQkJb21hcF9zcmFtX3NpemUgPSAweGEwMDAwOyAvKiA2NDBLICovCi0JCQllbHNlIGlmIChjcHVfaXNfb21hcDI0M3goKSkKKwkJCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDNfU1JBTV9WQTsKKwkJCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQM19TUkFNX1BBOwogCQkJCW9tYXBfc3JhbV9zaXplID0gMHgxMDAwMDsgLyogNjRLICovCisJCQl9IGVsc2UgeworCQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDJfU1JBTV9WQTsKKwkJCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQMl9TUkFNX1BBOworCQkJCWlmIChjcHVfaXNfb21hcDI0MngoKSkKKwkJCQkJb21hcF9zcmFtX3NpemUgPSAweGEwMDAwOyAvKiA2NDBLICovCisJCQkJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDN4KCkpCisJCQkJCW9tYXBfc3JhbV9zaXplID0gMHgxMDAwMDsgLyogNjRLICovCisJCQl9CiAJCX0KIAl9IGVsc2UgewogCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAxX1NSQU1fVkE7CkBAIC0xNTcsNiArMTk1LDEzIEBACiAJCW9tYXBfc3JhbV9pb19kZXNjWzBdLnBmbiA9IF9fcGh5c190b19wZm4oYmFzZSk7CiAJfQogCisJaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJCW9tYXBfc3JhbV9pb19kZXNjWzBdLnZpcnR1YWwgPSBPTUFQM19TUkFNX1ZBOworCQliYXNlID0gT01BUDNfU1JBTV9QQTsKKwkJYmFzZSA9IFJPVU5EX0RPV04oYmFzZSwgUEFHRV9TSVpFKTsKKwkJb21hcF9zcmFtX2lvX2Rlc2NbMF0ucGZuID0gX19waHlzX3RvX3BmbihiYXNlKTsKKwl9CisKIAlvbWFwX3NyYW1faW9fZGVzY1swXS5sZW5ndGggPSAxMDI0ICogMTAyNDsJLyogVXNlIHNlY3Rpb24gZGVzYyAqLwogCWlvdGFibGVfaW5pdChvbWFwX3NyYW1faW9fZGVzYywgQVJSQVlfU0laRShvbWFwX3NyYW1faW9fZGVzYykpOwogCkBAIC0xOTEsNiArMjM2LDcgQEAKIAlvbWFwX3NyYW1fY2VpbCAtPSBzaXplOwogCW9tYXBfc3JhbV9jZWlsID0gUk9VTkRfRE9XTihvbWFwX3NyYW1fY2VpbCwgc2l6ZW9mKHZvaWQgKikpOwogCW1lbWNweSgodm9pZCAqKW9tYXBfc3JhbV9jZWlsLCBzdGFydCwgc2l6ZSk7CisJZmx1c2hfaWNhY2hlX3JhbmdlKCh1bnNpZ25lZCBsb25nKXN0YXJ0LCAodW5zaWduZWQgbG9uZykoc3RhcnQgKyBzaXplKSk7CiAKIAlyZXR1cm4gKHZvaWQgKilvbWFwX3NyYW1fY2VpbDsKIH0KQEAgLTIxNCw4ICsyNjAsOSBAQAogCiBpbnQgX19pbml0IG9tYXAxX3NyYW1faW5pdCh2b2lkKQogewotCV9vbWFwX3NyYW1fcmVwcm9ncmFtX2Nsb2NrID0gb21hcF9zcmFtX3B1c2goc3JhbV9yZXByb2dyYW1fY2xvY2ssCi0JCQkJCQkgICAgc3JhbV9yZXByb2dyYW1fY2xvY2tfc3opOworCV9vbWFwX3NyYW1fcmVwcm9ncmFtX2Nsb2NrID0KKwkJCW9tYXBfc3JhbV9wdXNoKG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrLAorCQkJCQlvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9ja19zeik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyNCw3ICsyNzEsNyBAQAogI2RlZmluZSBvbWFwMV9zcmFtX2luaXQoKQlkbyB7fSB3aGlsZSAoMCkKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQogCiBzdGF0aWMgdm9pZCAoKl9vbWFwMl9zcmFtX2Rkcl9pbml0KSh1MzIgKnNsb3dfZGxsX2N0cmwsIHUzMiBmYXN0X2RsbF9jdHJsLAogCQkJICAgICAgdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOwpAQCAtMjU5LDE5ICszMDYsMTA5IEBACiAKIAlyZXR1cm4gX29tYXAyX3NldF9wcmNtKGRwbGxfY3RybF92YWwsIHNkcmNfcmZyX3ZhbCwgYnlwYXNzKTsKIH0KKyNlbmRpZgogCi1pbnQgX19pbml0IG9tYXAyX3NyYW1faW5pdCh2b2lkKQorI2lmZGVmIENPTkZJR19BUkNIX09NQVAyNDIwCitpbnQgX19pbml0IG9tYXAyNDJ4X3NyYW1faW5pdCh2b2lkKQogewotCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2goc3JhbV9kZHJfaW5pdCwgc3JhbV9kZHJfaW5pdF9zeik7CisJX29tYXAyX3NyYW1fZGRyX2luaXQgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQyeF9zcmFtX2Rkcl9pbml0LAorCQkJCQlvbWFwMjQyeF9zcmFtX2Rkcl9pbml0X3N6KTsKIAotCV9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9zZHJjID0gb21hcF9zcmFtX3B1c2goc3JhbV9yZXByb2dyYW1fc2RyYywKLQkJCQkJCSAgICBzcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KTsKLQlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChzcmFtX3NldF9wcmNtLCBzcmFtX3NldF9wcmNtX3N6KTsKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCisJCQkJCSAgICBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KTsKKworCV9vbWFwMl9zZXRfcHJjbSA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20sCisJCQkJCSBvbWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6KTsKIAogCXJldHVybiAwOwogfQogI2Vsc2UKLSNkZWZpbmUgb21hcDJfc3JhbV9pbml0KCkJZG8ge30gd2hpbGUgKDApCitzdGF0aWMgaW5saW5lIGludCBvbWFwMjQyeF9zcmFtX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDI0MzAKK2ludCBfX2luaXQgb21hcDI0M3hfc3JhbV9pbml0KHZvaWQpCit7CisJX29tYXAyX3NyYW1fZGRyX2luaXQgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQzeF9zcmFtX2Rkcl9pbml0LAorCQkJCQlvbWFwMjQzeF9zcmFtX2Rkcl9pbml0X3N6KTsKKworCV9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9zZHJjID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyYywKKwkJCQkJICAgIG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opOworCisJX29tYXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9zZXRfcHJjbSwKKwkJCQkJIG9tYXAyNDN4X3NyYW1fc2V0X3ByY21fc3opOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgb21hcDI0M3hfc3JhbV9pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAzCisKK3N0YXRpYyB1MzIgKCpfb21hcDJfc3JhbV9yZXByb2dyYW1fZ3BtYykodTMyIHBlcmZfbGV2ZWwpOwordTMyIG9tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWModTMyIHBlcmZfbGV2ZWwpCit7CisJaWYgKCFfb21hcDJfc3JhbV9yZXByb2dyYW1fZ3BtYykKKwkJb21hcF9zcmFtX2Vycm9yKCk7CisKKwlyZXR1cm4gX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMocGVyZl9sZXZlbCk7Cit9CisKK3N0YXRpYyB1MzIgKCpfb21hcDJfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsKSh1MzIgbSwgdTMyIG4sCisJCQkJCQl1MzIgZnJlcXNlbCwgdTMyIG0yKTsKK3UzMiBvbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwodTMyIG0sIHUzMiBuLCB1MzIgZnJlcXNlbCwgdTMyIG0yKQoreworCWlmICghX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCkKKwkJb21hcF9zcmFtX2Vycm9yKCk7CisKKwlyZXR1cm4gX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbChtLCBuLCBmcmVxc2VsLCBtMik7Cit9CisKKy8qIFJFVklTSVQ6IFNob3VsZCB0aGlzIGJlIHNhbWUgYXMgb21hcDM0eHhfc3JhbV9pbml0KCkgYWZ0ZXIgb2ZmLWlkbGU/ICovCit2b2lkIHJlc3RvcmVfc3JhbV9mdW5jdGlvbnModm9pZCkKK3sKKwlvbWFwX3NyYW1fY2VpbCA9IG9tYXBfc3JhbV9iYXNlICsgb21hcF9zcmFtX3NpemU7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fZ3BtYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWMsCisJCW9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWNfc3opOworCisJX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCA9CisJCQlvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwsCisJCQkJCW9tYXAzNHh4X3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbF9zeik7Cit9CisKK2ludCBfX2luaXQgb21hcDM0eHhfc3JhbV9pbml0KHZvaWQpCit7CisJX29tYXAyX3NyYW1fZGRyX2luaXQgPSBvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX2Rkcl9pbml0LAorCQkJCQlvbWFwMzR4eF9zcmFtX2Rkcl9pbml0X3N6KTsKKworCV9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9zZHJjID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9yZXByb2dyYW1fc2RyYywKKwkJCQkJb21hcDM0eHhfc3JhbV9yZXByb2dyYW1fc2RyY19zeik7CisKKwlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX3NldF9wcmNtLAorCQkJCQlvbWFwMzR4eF9zcmFtX3NldF9wcmNtX3N6KTsKKworCV9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9ncG1jID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9yZXByb2dyYW1fZ3BtYywKKwkJCQkJb21hcDM0eHhfc3JhbV9yZXByb2dyYW1fZ3BtY19zeik7CisKKwlfb21hcDJfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsID0KKwkJCQlvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwsCisJCQkJCW9tYXAzNHh4X3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbF9zeik7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBvbWFwMzR4eF9zcmFtX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KICNlbmRpZgogCiBpbnQgX19pbml0IG9tYXBfc3JhbV9pbml0KHZvaWQpCkBAIC0yNzksMTAgKzQxNiwxNCBAQAogCW9tYXBfZGV0ZWN0X3NyYW0oKTsKIAlvbWFwX21hcF9zcmFtKCk7CiAKLQlpZiAoIWNwdV9pc19vbWFwMjR4eCgpKQorCWlmICghKGNwdV9jbGFzc19pc19vbWFwMigpKSkKIAkJb21hcDFfc3JhbV9pbml0KCk7Ci0JZWxzZQotCQlvbWFwMl9zcmFtX2luaXQoKTsKKwllbHNlIGlmIChjcHVfaXNfb21hcDI0MngoKSkKKwkJb21hcDI0Mnhfc3JhbV9pbml0KCk7CisJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDMwKCkpCisJCW9tYXAyNDN4X3NyYW1faW5pdCgpOworCWVsc2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKQorCQlvbWFwMzR4eF9zcmFtX2luaXQoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jCmluZGV4IGE2MTk0NzUuLjI2OTljMTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC91c2IuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvdXNiLmMKQEAgLTEsNCArMSw0IEBACi0vKgorIC8qCiAgKiBhcmNoL2FybS9wbGF0LW9tYXAvdXNiLmMgLS0gcGxhdGZvcm0gbGV2ZWwgVVNCIGluaXRpYWxpemF0aW9uCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCkBAIC0xNTYsOCArMTU2LDEyIEBACiAKIAlpZiAobndpcmVzID09IDApIHsKIAkJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSkgeworCQkJdTMyIGw7CisKIAkJCS8qIHB1bGxkb3duIEQrL0QtICovCi0JCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfigzIDw8IDEpOworCQkJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCQkJbCAmPSB+KDMgPDwgMSk7CisJCQlvbWFwX3dyaXRlbChsLCBVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CiAJCX0KIAkJcmV0dXJuIDA7CiAJfQpAQCAtMTcxLDYgKzE3NSw4IEBACiAKIAkvKiBpbnRlcm5hbCB0cmFuc2NlaXZlciAodW5hdmFpbGFibGUgb24gMTd4eCwgMjR4eCkgKi8KIAlpZiAoIWNwdV9jbGFzc19pc19vbWFwMigpICYmIG53aXJlcyA9PSAyKSB7CisJCXUzMiBsOworCiAJCS8vIG9tYXBfY2ZnX3JlZyhQOV9VU0JfRFApOwogCQkvLyBvbWFwX2NmZ19yZWcoUjhfVVNCX0RNKTsKIApAQCAtMTg1LDkgKzE5MSwxMSBAQAogCQkgKiAgLSBPVEcgc3VwcG9ydCBvbiB0aGlzIHBvcnQgbm90IHlldCB3cml0dGVuCiAJCSAqLwogCi0JCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyAmPSB+KDcgPDwgNCk7CisJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJbCAmPSB+KDcgPDwgNCk7CiAJCWlmICghaXNfZGV2aWNlKQotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9ICgzIDw8IDEpOworCQkJbCB8PSAoMyA8PCAxKTsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCiAJCXJldHVybiAzIDw8IDE2OwogCX0KQEAgLTIxNyw4ICsyMjUsMTMgQEAKIAkgKiB3aXRoIFZCVVMgc3dpdGNoaW5nIGFuZCBvdmVyY3VycmVudCBkZXRlY3Rpb24uCiAJICovCiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgbndpcmVzICE9IDYpCi0JCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyAmPSB+Q09ORl9VU0IyX1VOSV9SOworCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSAmJiBud2lyZXMgIT0gNikgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCX0KIAogCXN3aXRjaCAobndpcmVzKSB7CiAJY2FzZSAzOgpAQCAtMjM4LDkgKzI1MSwxMyBAQAogCQkJb21hcF9jZmdfcmVnKEsyMF8yNFhYX1VTQjBfVk0pOwogCQkJb21hcDJfdXNiX2RldmNvbmZfc2V0KDAsIFVTQl9VTklESVIpOwogCQl9IGVsc2UgeworCQkJdTMyIGw7CisKIAkJCW9tYXBfY2ZnX3JlZyhBQTlfVVNCMF9WUCk7CiAJCQlvbWFwX2NmZ19yZWcoUjlfVVNCMF9WTSk7Ci0JCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgfD0gQ09ORl9VU0IyX1VOSV9SOworCQkJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCQkJbCB8PSBDT05GX1VTQjJfVU5JX1I7CisJCQlvbWFwX3dyaXRlbChsLCBVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CiAJCX0KIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTI1NCw4ICsyNzEsMTMgQEAKIHsKIAl1MzIJc3lzY29uMSA9IDA7CiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpICYmIG53aXJlcyAhPSA2KQotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfkNPTkZfVVNCMV9VTklfUjsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpICYmIG53aXJlcyAhPSA2KSB7CisJCXUzMiBsOworCisJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJbCAmPSB+Q09ORl9VU0IxX1VOSV9SOworCQlvbWFwX3dyaXRlbChsLCBVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJfQogCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKIAkJb21hcDJfdXNiX2RldmNvbmZfY2xlYXIoMSwgVVNCX0JJRElSX1RMTCk7CiAKQEAgLTMxNiw4ICszMzgsMTMgQEAKIAkJc3lzY29uMSA9IDM7CiAJCW9tYXBfY2ZnX3JlZyhVU0IxX1ZQKTsKIAkJb21hcF9jZmdfcmVnKFVTQjFfVk0pOwotCQlpZiAoIWNwdV9pc19vbWFwMTV4eCgpKQotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9IENPTkZfVVNCMV9VTklfUjsKKwkJaWYgKCFjcHVfaXNfb21hcDE1eHgoKSkgeworCQkJdTMyIGw7CisKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgfD0gQ09ORl9VU0IxX1VOSV9SOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiBiYWQ6CkBAIC0zNDAsOCArMzY3LDEzIEBACiAJaWYgKGFsdF9waW5ncm91cCB8fCBud2lyZXMgPT0gMCkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpICYmIG53aXJlcyAhPSA2KQotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpICYmIG53aXJlcyAhPSA2KSB7CisJCXUzMiBsOworCisJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJbCAmPSB+Q09ORl9VU0IyX1VOSV9SOworCQlvbWFwX3dyaXRlbChsLCBVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJfQogCiAJLyogZXh0ZXJuYWwgdHJhbnNjZWl2ZXIgKi8KIAlpZiAoY3B1X2lzX29tYXAxNXh4KCkpIHsKQEAgLTQxMCw5ICs0NDIsMTMgQEAKIAkJCW9tYXBfY2ZnX3JlZyhVU0IyX1ZQKTsKIAkJCW9tYXBfY2ZnX3JlZyhVU0IyX1ZNKTsKIAkJfSBlbHNlIHsKKwkJCXUzMiBsOworCiAJCQlvbWFwX2NmZ19yZWcoQUE5X1VTQjJfVlApOwogCQkJb21hcF9jZmdfcmVnKFI5X1VTQjJfVk0pOwotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9IENPTkZfVVNCMl9VTklfUjsKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgfD0gQ09ORl9VU0IyX1VOSV9SOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC01MzEsMTAgKzU2Nyw2IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNkZWZpbmUgVUxQRF9DTE9DS19DVFJMX1JFRwlfX1JFRzE2KFVMUERfQ0xPQ0tfQ1RSTCkKLSNkZWZpbmUgVUxQRF9TT0ZUX1JFUV9SRUcJX19SRUcxNihVTFBEX1NPRlRfUkVRKQotCi0KIC8vIEZJWE1FIGNvcnJlY3QgYW5zd2VyIGRlcGVuZHMgb24gaG1jX21vZGUsCiAvLyBhcyBkb2VzIChvbiBvbWFwMSkgYW55IG5vbnplcm8gdmFsdWUgZm9yIGNvbmZpZy0+b3RnIHBvcnQgbnVtYmVyCiAjaWZkZWYJQ09ORklHX1VTQl9HQURHRVRfT01BUApAQCAtNTUwLDE3ICs1ODIsMTcgQEAKIHZvaWQgX19pbml0CiBvbWFwX290Z19pbml0KHN0cnVjdCBvbWFwX3VzYl9jb25maWcgKmNvbmZpZykKIHsKLQl1MzIJCXN5c2NvbiA9IE9UR19TWVNDT05fMV9SRUcgJiAweGZmZmY7CisJdTMyCQlzeXNjb247CiAJaW50CQlzdGF0dXM7CiAJaW50CQlhbHRfcGluZ3JvdXAgPSAwOwogCiAJLyogTk9URTogIG5vIGJ1cyBvciBjbG9jayBzZXR1cCAoeWV0PykgKi8KIAotCXN5c2NvbiA9IE9UR19TWVNDT05fMV9SRUcgJiAweGZmZmY7CisJc3lzY29uID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzEpICYgMHhmZmZmOwogCWlmICghKHN5c2NvbiAmIE9UR19SRVNFVF9ET05FKSkKIAkJcHJfZGVidWcoIlVTQiByZXNldHMgbm90IGNvbXBsZXRlP1xuIik7CiAKLQkvLyBPVEdfSVJRX0VOX1JFRyA9IDA7CisJLy9vbWFwX3dyaXRldygwLCBPVEdfSVJRX0VOKTsKIAogCS8qIHBpbiBtdXhpbmcgYW5kIHRyYW5zY2VpdmVyIHBpbm91dHMgKi8KIAlpZiAoY29uZmlnLT5waW5zWzBdID4gMikJLyogYWx0IHBpbmdyb3VwIDIgKi8KQEAgLTU2OCw4ICs2MDAsOCBAQAogCXN5c2NvbiB8PSBvbWFwX3VzYjBfaW5pdChjb25maWctPnBpbnNbMF0sIGlzX3VzYjBfZGV2aWNlKGNvbmZpZykpOwogCXN5c2NvbiB8PSBvbWFwX3VzYjFfaW5pdChjb25maWctPnBpbnNbMV0pOwogCXN5c2NvbiB8PSBvbWFwX3VzYjJfaW5pdChjb25maWctPnBpbnNbMl0sIGFsdF9waW5ncm91cCk7Ci0JcHJfZGVidWcoIk9UR19TWVNDT05fMV9SRUcgPSAlMDh4XG4iLCBzeXNjb24pOwotCU9UR19TWVNDT05fMV9SRUcgPSBzeXNjb247CisJcHJfZGVidWcoIk9UR19TWVNDT05fMSA9ICUwOHhcbiIsIG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8xKSk7CisJb21hcF93cml0ZWwoc3lzY29uLCBPVEdfU1lTQ09OXzEpOwogCiAJc3lzY29uID0gY29uZmlnLT5obWNfbW9kZTsKIAlzeXNjb24gfD0gVVNCWF9TWU5DSFJPIHwgKDQgPDwgMTYpIC8qIEJfQVNFMF9CUlNUICovOwpAQCAtNTc4LDkgKzYxMCwxMCBAQAogCQlzeXNjb24gfD0gT1RHX0VOOwogI2VuZGlmCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlwcl9kZWJ1ZygiVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHID0gJTAzeFxuIiwgVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHKTsKLQlwcl9kZWJ1ZygiT1RHX1NZU0NPTl8yX1JFRyA9ICUwOHhcbiIsIHN5c2Nvbik7Ci0JT1RHX1NZU0NPTl8yX1JFRyA9IHN5c2NvbjsKKwkJcHJfZGVidWcoIlVTQl9UUkFOU0NFSVZFUl9DVFJMID0gJTAzeFxuIiwKKwkJCSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKSk7CisJcHJfZGVidWcoIk9UR19TWVNDT05fMiA9ICUwOHhcbiIsIG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8yKSk7CisJb21hcF93cml0ZWwoc3lzY29uLCBPVEdfU1lTQ09OXzIpOwogCiAJcHJpbnRrKCJVU0I6IGhtYyAlZCIsIGNvbmZpZy0+aG1jX21vZGUpOwogCWlmICghYWx0X3Bpbmdyb3VwKQpAQCAtNTk3LDEyICs2MzAsMTkgQEAKIAlwcmludGsoIlxuIik7CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKKwkJdTE2IHc7CisKIAkJLyogbGVhdmUgVVNCIGNsb2Nrcy9jb250cm9sbGVycyBvZmYgdW50aWwgbmVlZGVkICovCi0JCVVMUERfU09GVF9SRVFfUkVHICY9IH5TT0ZUX1VTQl9DTEtfUkVROwotCQlVTFBEX0NMT0NLX0NUUkxfUkVHICY9IH5VU0JfTUNMS19FTjsKLQkJVUxQRF9DTE9DS19DVFJMX1JFRyB8PSBESVNfVVNCX1BWQ0lfQ0xLOworCQl3ID0gb21hcF9yZWFkdyhVTFBEX1NPRlRfUkVRKTsKKwkJdyAmPSB+U09GVF9VU0JfQ0xLX1JFUTsKKwkJb21hcF93cml0ZXcodywgVUxQRF9TT0ZUX1JFUSk7CisKKwkJdyA9IG9tYXBfcmVhZHcoVUxQRF9DTE9DS19DVFJMKTsKKwkJdyAmPSB+VVNCX01DTEtfRU47CisJCXcgfD0gRElTX1VTQl9QVkNJX0NMSzsKKwkJb21hcF93cml0ZXcodywgVUxQRF9DTE9DS19DVFJMKTsKIAl9Ci0Jc3lzY29uID0gT1RHX1NZU0NPTl8xX1JFRzsKKwlzeXNjb24gPSBvbWFwX3JlYWRsKE9UR19TWVNDT05fMSk7CiAJc3lzY29uIHw9IEhTVF9JRExFX0VOfERFVl9JRExFX0VOfE9UR19JRExFX0VOOwogCiAjaWZkZWYJQ09ORklHX1VTQl9HQURHRVRfT01BUApAQCAtNjM5LDggKzY3OSw4IEBACiAJCQlwcl9kZWJ1ZygiY2FuJ3QgcmVnaXN0ZXIgT1RHIGRldmljZSwgJWRcbiIsIHN0YXR1cyk7CiAJfQogI2VuZGlmCi0JcHJfZGVidWcoIk9UR19TWVNDT05fMV9SRUcgPSAlMDh4XG4iLCBzeXNjb24pOwotCU9UR19TWVNDT05fMV9SRUcgPSBzeXNjb247CisJcHJfZGVidWcoIk9UR19TWVNDT05fMSA9ICUwOHhcbiIsIG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8xKSk7CisJb21hcF93cml0ZWwoc3lzY29uLCBPVEdfU1lTQ09OXzEpOwogCiAJc3RhdHVzID0gMDsKIH0KQEAgLTY1MywxOCArNjkzLDE5IEBACiAKICNpZmRlZglDT05GSUdfQVJDSF9PTUFQMTVYWAogCi0jZGVmaW5lIFVMUERfRFBMTF9DVFJMX1JFRwlfX1JFRzE2KFVMUERfRFBMTF9DVFJMKQorLyogVUxQRF9EUExMX0NUUkwgKi8KICNkZWZpbmUgRFBMTF9JT0IJCSgxIDw8IDEzKQogI2RlZmluZSBEUExMX1BMTF9FTkFCTEUJCSgxIDw8IDQpCiAjZGVmaW5lIERQTExfTE9DSwkJKDEgPDwgMCkKIAotI2RlZmluZSBVTFBEX0FQTExfQ1RSTF9SRUcJX19SRUcxNihVTFBEX0FQTExfQ1RSTCkKKy8qIFVMUERfQVBMTF9DVFJMICovCiAjZGVmaW5lIEFQTExfTkRQTExfU1dJVENICSgxIDw8IDApCiAKIAogc3RhdGljIHZvaWQgX19pbml0IG9tYXBfMTUxMF91c2JfaW5pdChzdHJ1Y3Qgb21hcF91c2JfY29uZmlnICpjb25maWcpCiB7CiAJdW5zaWduZWQgaW50IHZhbDsKKwl1MTYgdzsKIAogCW9tYXBfdXNiMF9pbml0KGNvbmZpZy0+cGluc1swXSwgaXNfdXNiMF9kZXZpY2UoY29uZmlnKSk7CiAJb21hcF91c2IxX2luaXQoY29uZmlnLT5waW5zWzFdKTsKQEAgLTY4NSwxMiArNzI2LDIyIEBACiAJcHJpbnRrKCJcbiIpOwogCiAJLyogdXNlIERQTEwgZm9yIDQ4IE1IeiBmdW5jdGlvbiBjbG9jayAqLwotCXByX2RlYnVnKCJBUExMICUwNHggRFBMTCAlMDR4IFJFUSAlMDR4XG4iLCBVTFBEX0FQTExfQ1RSTF9SRUcsCi0JCQlVTFBEX0RQTExfQ1RSTF9SRUcsIFVMUERfU09GVF9SRVFfUkVHKTsKLQlVTFBEX0FQTExfQ1RSTF9SRUcgJj0gfkFQTExfTkRQTExfU1dJVENIOwotCVVMUERfRFBMTF9DVFJMX1JFRyB8PSBEUExMX0lPQiB8IERQTExfUExMX0VOQUJMRTsKLQlVTFBEX1NPRlRfUkVRX1JFRyB8PSBTT0ZUX1VEQ19SRVEgfCBTT0ZUX0RQTExfUkVROwotCXdoaWxlICghKFVMUERfRFBMTF9DVFJMX1JFRyAmIERQTExfTE9DSykpCisJcHJfZGVidWcoIkFQTEwgJTA0eCBEUExMICUwNHggUkVRICUwNHhcbiIsIG9tYXBfcmVhZHcoVUxQRF9BUExMX0NUUkwpLAorCQkJb21hcF9yZWFkdyhVTFBEX0RQTExfQ1RSTCksIG9tYXBfcmVhZHcoVUxQRF9TT0ZUX1JFUSkpOworCisJdyA9IG9tYXBfcmVhZHcoVUxQRF9BUExMX0NUUkwpOworCXcgJj0gfkFQTExfTkRQTExfU1dJVENIOworCW9tYXBfd3JpdGV3KHcsIFVMUERfQVBMTF9DVFJMKTsKKworCXcgPSBvbWFwX3JlYWR3KFVMUERfRFBMTF9DVFJMKTsKKwl3IHw9IERQTExfSU9CIHwgRFBMTF9QTExfRU5BQkxFOworCW9tYXBfd3JpdGV3KHcsIFVMUERfRFBMTF9DVFJMKTsKKworCXcgPSBvbWFwX3JlYWR3KFVMUERfU09GVF9SRVEpOworCXcgfD0gU09GVF9VRENfUkVRIHwgU09GVF9EUExMX1JFUTsKKwlvbWFwX3dyaXRldyh3LCBVTFBEX1NPRlRfUkVRKTsKKworCXdoaWxlICghKG9tYXBfcmVhZHcoVUxQRF9EUExMX0NUUkwpICYgRFBMTF9MT0NLKSkKIAkJY3B1X3JlbGF4KCk7CiAKICNpZmRlZglDT05GSUdfVVNCX0dBREdFVF9PTUFQCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9yaW9uL2lycS5jIGIvYXJjaC9hcm0vcGxhdC1vcmlvbi9pcnEuYwppbmRleCBjNWI2NjlkLi5mZTY2YTE4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL2lycS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vaXJxLmMKQEAgLTM2LDggKzM2LDggQEAKIAogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBvcmlvbl9pcnFfY2hpcCA9IHsKIAkubmFtZQkJPSAib3Jpb25faXJxIiwKLQkuYWNrCQk9IG9yaW9uX2lycV9tYXNrLAogCS5tYXNrCQk9IG9yaW9uX2lycV9tYXNrLAorCS5tYXNrX2Fjawk9IG9yaW9uX2lycV9tYXNrLAogCS51bm1hc2sJCT0gb3Jpb25faXJxX3VubWFzaywKIH07CiAKQEAgLTU5LDYgKzU5LDcgQEAKIAkJc2V0X2lycV9jaGlwKGlycSwgJm9yaW9uX2lycV9jaGlwKTsKIAkJc2V0X2lycV9jaGlwX2RhdGEoaXJxLCBtYXNrYWRkcik7CiAJCXNldF9pcnFfaGFuZGxlcihpcnEsIGhhbmRsZV9sZXZlbF9pcnEpOworCQlpcnFfZGVzY1tpcnFdLnN0YXR1cyB8PSBJUlFfTEVWRUw7CiAJCXNldF9pcnFfZmxhZ3MoaXJxLCBJUlFGX1ZBTElEKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vcGNpZS5jCmluZGV4IGFiZmRhNTMuLmNhMzJjNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb3Jpb24vcGNpZS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vcGNpZS5jCkBAIC0zOSw2ICszOSw3IEBACiAjZGVmaW5lIFBDSUVfQ09ORl9EQVRBX09GRgkweDE4ZmMKICNkZWZpbmUgUENJRV9NQVNLX09GRgkJMHgxOTEwCiAjZGVmaW5lIFBDSUVfQ1RSTF9PRkYJCTB4MWEwMAorI2RlZmluZSAgUENJRV9DVFJMX1gxX01PREUJCTB4MDAwMQogI2RlZmluZSBQQ0lFX1NUQVRfT0ZGCQkweDFhMDQKICNkZWZpbmUgIFBDSUVfU1RBVF9ERVZfT0ZGUwkJMjAKICNkZWZpbmUgIFBDSUVfU1RBVF9ERVZfTUFTSwkJMHgxZgpAQCAtNjIsNiArNjMsMTEgQEAKIAlyZXR1cm4gIShyZWFkbChiYXNlICsgUENJRV9TVEFUX09GRikgJiBQQ0lFX1NUQVRfTElOS19ET1dOKTsKIH0KIAoraW50IF9faW5pdCBvcmlvbl9wY2llX3g0X21vZGUodm9pZCBfX2lvbWVtICpiYXNlKQoreworCXJldHVybiAhKHJlYWRsKGJhc2UgKyBQQ0lFX0NUUkxfT0ZGKSAmIFBDSUVfQ1RSTF9YMV9NT0RFKTsKK30KKwogaW50IG9yaW9uX3BjaWVfZ2V0X2xvY2FsX2J1c19ucih2b2lkIF9faW9tZW0gKmJhc2UpCiB7CiAJdTMyIHN0YXQgPSByZWFkbChiYXNlICsgUENJRV9TVEFUX09GRik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vdGltZS5jCmluZGV4IDI4YjUyODUuLjkzYzRlZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb3Jpb24vdGltZS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vdGltZS5jCkBAIC03NCw3ICs3NCw3IEBACiAJLyoKIAkgKiBDbGVhciBhbmQgZW5hYmxlIGNsb2NrZXZlbnQgdGltZXIgaW50ZXJydXB0LgogCSAqLwotCXdyaXRlbCh+QlJJREdFX0lOVF9USU1FUjEsIEJSSURHRV9DQVVTRSk7CisJd3JpdGVsKEJSSURHRV9JTlRfVElNRVIxX0NMUiwgQlJJREdFX0NBVVNFKTsKIAogCXUgPSByZWFkbChCUklER0VfTUFTSyk7CiAJdSB8PSBCUklER0VfSU5UX1RJTUVSMTsKQEAgLTEzOCw3ICsxMzgsNyBAQAogCQkvKgogCQkgKiBBQ0sgcGVuZGluZyB0aW1lciBpbnRlcnJ1cHQuCiAJCSAqLwotCQl3cml0ZWwofkJSSURHRV9JTlRfVElNRVIxLCBCUklER0VfQ0FVU0UpOworCQl3cml0ZWwoQlJJREdFX0lOVF9USU1FUjFfQ0xSLCBCUklER0VfQ0FVU0UpOwogCiAJfQogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKQEAgLTE1OSw3ICsxNTksNyBAQAogCS8qCiAJICogQUNLIHRpbWVyIGludGVycnVwdCBhbmQgY2FsbCBldmVudCBoYW5kbGVyLgogCSAqLwotCXdyaXRlbCh+QlJJREdFX0lOVF9USU1FUjEsIEJSSURHRV9DQVVTRSk7CisJd3JpdGVsKEJSSURHRV9JTlRfVElNRVIxX0NMUiwgQlJJREdFX0NBVVNFKTsKIAlvcmlvbl9jbGtldnQuZXZlbnRfaGFuZGxlcigmb3Jpb25fY2xrZXZ0KTsKIAogCXJldHVybiBJUlFfSEFORExFRDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L0tjb25maWcKaW5kZXggYjY2ZmIzYy4uNWUyOGMyMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L0tjb25maWcKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L0tjb25maWcKQEAgLTksNiArOSw3IEBACiAJZGVwZW5kcyBvbiBBUkNIX1MzQzI0MTAKIAlkZWZhdWx0IHkgaWYgQVJDSF9TM0MyNDEwCiAJc2VsZWN0IE5PX0lPUE9SVAorCXNlbGVjdCBIQVZFX0dQSU9fTElCCiAJaGVscAogCSAgQmFzZSBwbGF0Zm9ybSBjb2RlIGZvciBhbnkgU2Ftc3VuZyBTM0MyNFhYIGRldmljZQogCkBAIC0yMCw2ICsyMSwxMyBAQAogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIFMzQzI0NDAgYW5kIFMzQzI0NDIgU2Ftc3VuZyBNb2JpbGUgQ1BVIGJhc2VkIHN5c3RlbXMuCiAKK2NvbmZpZyBTM0MyNFhYX1BXTQorCWJvb2wgIlBXTSBkZXZpY2Ugc3VwcG9ydCIKKwlzZWxlY3QgSEFWRV9QV00KKwloZWxwCisJICBTdXBwb3J0IGZvciBleHBvcnRpbmcgdGhlIFBXTSB0aW1lciBibG9ja3MgdmlhIHRoZSBwd20gZGV2aWNlCisJICBzeXN0ZW0uCisKIGNvbmZpZyBQTV9TSU1URUMKIAlib29sCiAJaGVscApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L01ha2VmaWxlIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L01ha2VmaWxlCmluZGV4IDEzMWQyMDIuLmQ4Mjc2N2IgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvTWFrZWZpbGUKQEAgLTE2LDggKzE2LDEwIEBACiBvYmoteQkJCQkrPSBpcnEubwogb2JqLXkJCQkJKz0gZGV2cy5vCiBvYmoteQkJCQkrPSBncGlvLm8KK29iai15CQkJCSs9IGdwaW9saWIubwogb2JqLXkJCQkJKz0gdGltZS5vCiBvYmoteQkJCQkrPSBjbG9jay5vCitvYmoteQkJCQkrPSBwd20tY2xvY2subwogCiAjIEFyY2hpdGVjdHVyZSBkZXBlbmRhbnQgYnVpbGRzCiAKQEAgLTI3LDUgKzI5LDYgQEAKIG9iai0kKENPTkZJR19QTV9TSU1URUMpCQkrPSBwbS1zaW10ZWMubwogb2JqLSQoQ09ORklHX1BNKQkJKz0gcG0ubwogb2JqLSQoQ09ORklHX1BNKQkJKz0gc2xlZXAubworb2JqLSQoQ09ORklHX0hBVkVfUFdNKQkJKz0gcHdtLm8KIG9iai0kKENPTkZJR19TM0MyNDEwX0RNQSkJKz0gZG1hLm8KIG9iai0kKENPTkZJR19NQUNIX1NNREspCQkrPSBjb21tb24tc21kay5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZGV2cy5jIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2RldnMuYwppbmRleCBlNTQ2ZTkzLi5lZWEzYjMyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZGV2cy5jCisrKyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9kZXZzLmMKQEAgLTQ5NSwxMDYgKzQ5NSw2IEBACiAKIEVYUE9SVF9TWU1CT0woczNjX2RldmljZV9zcGkxKTsKIAotLyogcHdtIHRpbWVyIGJsb2NrcyAqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHMzY190aW1lcjBfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDBDLAotCQkuZW5kICAgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgwQyArIDB4QiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQlbMV0gPSB7Ci0JCS5zdGFydCA9IElSUV9USU1FUjAsCi0JCS5lbmQgICA9IElSUV9USU1FUjAsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAotCX0KLQotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMCA9IHsKLQkubmFtZQkJICA9ICJzM2MyNDEwLXRpbWVyIiwKLQkuaWQJCSAgPSAwLAotCS5udW1fcmVzb3VyY2VzCSAgPSBBUlJBWV9TSVpFKHMzY190aW1lcjBfcmVzb3VyY2UpLAotCS5yZXNvdXJjZQkgID0gczNjX3RpbWVyMF9yZXNvdXJjZSwKLX07Ci0KLUVYUE9SVF9TWU1CT0woczNjX2RldmljZV90aW1lcjApOwotCi0vKiB0aW1lciAxICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgczNjX3RpbWVyMV9yZXNvdXJjZVtdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MTgsCi0JCS5lbmQgICA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDIzLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCVsxXSA9IHsKLQkJLnN0YXJ0ID0gSVJRX1RJTUVSMSwKLQkJLmVuZCAgID0gSVJRX1RJTUVSMSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCi0JfQotCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIxID0gewotCS5uYW1lCQkgID0gInMzYzI0MTAtdGltZXIiLAotCS5pZAkJICA9IDEsCi0JLm51bV9yZXNvdXJjZXMJICA9IEFSUkFZX1NJWkUoczNjX3RpbWVyMV9yZXNvdXJjZSksCi0JLnJlc291cmNlCSAgPSBzM2NfdGltZXIxX3Jlc291cmNlLAotfTsKLQotRVhQT1JUX1NZTUJPTChzM2NfZGV2aWNlX3RpbWVyMSk7Ci0KLS8qIHRpbWVyIDIgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzM2NfdGltZXIyX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgyNCwKLQkJLmVuZCAgID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MkYsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBJUlFfVElNRVIyLAotCQkuZW5kICAgPSBJUlFfVElNRVIyLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci0KLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjIgPSB7Ci0JLm5hbWUJCSAgPSAiczNjMjQxMC10aW1lciIsCi0JLmlkCQkgID0gMiwKLQkubnVtX3Jlc291cmNlcwkgID0gQVJSQVlfU0laRShzM2NfdGltZXIyX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJICA9IHMzY190aW1lcjJfcmVzb3VyY2UsCi19OwotCi1FWFBPUlRfU1lNQk9MKHMzY19kZXZpY2VfdGltZXIyKTsKLQotLyogdGltZXIgMyAqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHMzY190aW1lcjNfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDMwLAotCQkuZW5kICAgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgzQiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQlbMV0gPSB7Ci0JCS5zdGFydCA9IElSUV9USU1FUjMsCi0JCS5lbmQgICA9IElSUV9USU1FUjMsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAotCX0KLQotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMyA9IHsKLQkubmFtZQkJICA9ICJzM2MyNDEwLXRpbWVyIiwKLQkuaWQJCSAgPSAzLAotCS5udW1fcmVzb3VyY2VzCSAgPSBBUlJBWV9TSVpFKHMzY190aW1lcjNfcmVzb3VyY2UpLAotCS5yZXNvdXJjZQkgID0gczNjX3RpbWVyM19yZXNvdXJjZSwKLX07Ci0KLUVYUE9SVF9TWU1CT0woczNjX2RldmljZV90aW1lcjMpOwotCiAjaWZkZWYgQ09ORklHX0NQVV9TM0MyNDQwCiAKIC8qIENhbWlmIENvbnRyb2xsZXIgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9ncGlvbGliLmMgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZ3Bpb2xpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNWQ4ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZ3Bpb2xpYi5jCkBAIC0wLDAgKzEsMjU5IEBACisvKiBsaW51eC9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZ3Bpb2xpYi5jCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBTM0MyNFhYIEdQSU9saWIgc3VwcG9ydAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwIHsKKwlzdHJ1Y3QgZ3Bpb19jaGlwCWNoaXA7CisJdm9pZCBfX2lvbWVtCQkqYmFzZTsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICp0b19zM2NfY2hpcChzdHJ1Y3QgZ3Bpb19jaGlwICpncGMpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihncGMsIHN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCwgY2hpcCk7Cit9CisKKy8qIHRoZXNlIHJvdXRpbmVzIGFyZSBleHBvcnRlZCBmb3IgdXNlIGJ5IG90aGVyIHBhcnRzIG9mIHRoZSBwbGF0Zm9ybQorICogYW5kIHN5c3RlbSBzdXBwb3J0LCBidXQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IHRoZQorICogZHJpdmVycyB0aGVtc2V2bGVzLgorICovCisKK2ludCBzM2MyNHh4X2dwaW9saWJfaW5wdXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqb3VyY2hpcCA9IHRvX3MzY19jaGlwKGNoaXApOworCXZvaWQgX19pb21lbSAqYmFzZSA9IG91cmNoaXAtPmJhc2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCWNvbiA9IF9fcmF3X3JlYWRsKGJhc2UgKyAweDAwKTsKKwljb24gJj0gfigzIDw8IChvZmZzZXQgKiAyKSk7CisJY29uIHw9IChTM0MyNDEwX0dQSU9fT1VUUFVUICYgMHhmKSA8PCAob2Zmc2V0ICogMik7CisKKwlfX3Jhd193cml0ZWwoY29uLCBiYXNlICsgMHgwMCk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK2ludCBzM2MyNHh4X2dwaW9saWJfb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCisJCQkJICB1bnNpZ25lZCBvZmZzZXQsIGludCB2YWx1ZSkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2UgPSBvdXJjaGlwLT5iYXNlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBkYXQ7CisJdW5zaWduZWQgbG9uZyBjb247CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwlkYXQgPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwNCk7CisJZGF0ICY9IH4oMSA8PCBvZmZzZXQpOworCWlmICh2YWx1ZSkKKwkJZGF0IHw9IDEgPDwgb2Zmc2V0OworCV9fcmF3X3dyaXRlbChkYXQsIGJhc2UgKyAweDA0KTsKKworCWNvbiA9IF9fcmF3X3JlYWRsKGJhc2UgKyAweDAwKTsKKwljb24gJj0gfigzIDw8IChvZmZzZXQgKiAyKSk7CisJY29uIHw9IChTM0MyNDEwX0dQSU9fT1VUUFVUICYgMHhmKSA8PCAob2Zmc2V0ICogMik7CisKKwlfX3Jhd193cml0ZWwoY29uLCBiYXNlICsgMHgwMCk7CisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCit2b2lkIHMzYzI0eHhfZ3Bpb2xpYl9zZXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICpvdXJjaGlwID0gdG9fczNjX2NoaXAoY2hpcCk7CisJdm9pZCBfX2lvbWVtICpiYXNlID0gb3VyY2hpcC0+YmFzZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgZGF0OworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJZGF0ID0gX19yYXdfcmVhZGwoYmFzZSArIDB4MDQpOworCWRhdCAmPSB+KDEgPDwgb2Zmc2V0KTsKKwlpZiAodmFsdWUpCisJCWRhdCB8PSAxIDw8IG9mZnNldDsKKwlfX3Jhd193cml0ZWwoZGF0LCBiYXNlICsgMHgwNCk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKK2ludCBzM2MyNHh4X2dwaW9saWJfZ2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl1bnNpZ25lZCBsb25nIHZhbDsKKworCXZhbCA9IF9fcmF3X3JlYWRsKG91cmNoaXAtPmJhc2UgKyAweDA0KTsKKwl2YWwgPj49IG9mZnNldDsKKwl2YWwgJj0gMTsKKworCXJldHVybiB2YWw7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9ncGlvbGliX2JhbmthX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBzM2MyNHh4X2dwaW9saWJfYmFua2Ffb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsCisJCQkJCXVuc2lnbmVkIG9mZnNldCwgaW50IHZhbHVlKQoreworCXN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqb3VyY2hpcCA9IHRvX3MzY19jaGlwKGNoaXApOworCXZvaWQgX19pb21lbSAqYmFzZSA9IG91cmNoaXAtPmJhc2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGRhdDsKKwl1bnNpZ25lZCBsb25nIGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCWNvbiA9IF9fcmF3X3JlYWRsKGJhc2UgKyAweDAwKTsKKwlkYXQgPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwNCk7CisKKwlkYXQgJj0gfigxIDw8IG9mZnNldCk7CisJaWYgKHZhbHVlKQorCQlkYXQgfD0gMSA8PCBvZmZzZXQ7CisKKwlfX3Jhd193cml0ZWwoZGF0LCBiYXNlICsgMHgwNCk7CisKKwljb24gJj0gfigxIDw8IG9mZnNldCk7CisKKwlfX3Jhd193cml0ZWwoY29uLCBiYXNlICsgMHgwMCk7CisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCisKK3N0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCBncGlvc1tdID0geworCVswXSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQQTApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQQTAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0EiLAorCQkJLm5ncGlvCQkJPSAyNCwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfYmFua2FfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9iYW5rYV9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVsxXSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQQjApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQQjAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0IiLAorCQkJLm5ncGlvCQkJPSAxNiwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVsyXSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQQzApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQQzAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0MiLAorCQkJLm5ncGlvCQkJPSAxNiwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVszXSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQRDApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQRDAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0QiLAorCQkJLm5ncGlvCQkJPSAxNiwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVs0XSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQRTApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQRTAsCisJCQkubGFiZWwJCQk9ICJHUElPRSIsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLm5ncGlvCQkJPSAxNiwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVs1XSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQRjApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQRjAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0YiLAorCQkJLm5ncGlvCQkJPSA4LAorCQkJLmRpcmVjdGlvbl9pbnB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9pbnB1dCwKKwkJCS5kaXJlY3Rpb25fb3V0cHV0CT0gczNjMjR4eF9ncGlvbGliX291dHB1dCwKKwkJCS5zZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9zZXQsCisJCQkuZ2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfZ2V0LAorCQl9LAorCX0sCisJWzZdID0geworCQkuYmFzZQk9IFMzQzI0WFhfR1BJT19CQVNFKFMzQzI0MTBfR1BHMCksCisJCS5jaGlwCT0geworCQkJLmJhc2UJCQk9IFMzQzI0MTBfR1BHMCwKKwkJCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCisJCQkubGFiZWwJCQk9ICJHUElPRyIsCisJCQkubmdwaW8JCQk9IDEwLAorCQkJLmRpcmVjdGlvbl9pbnB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9pbnB1dCwKKwkJCS5kaXJlY3Rpb25fb3V0cHV0CT0gczNjMjR4eF9ncGlvbGliX291dHB1dCwKKwkJCS5zZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9zZXQsCisJCQkuZ2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfZ2V0LAorCQl9LAorCX0sCit9OworCitzdGF0aWMgX19pbml0IGludCBzM2MyNHh4X2dwaW9saWJfaW5pdCh2b2lkKQoreworCXN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqY2hpcCA9IGdwaW9zOworCWludCBncG47CisKKwlmb3IgKGdwbiA9IDA7IGdwbiA8IEFSUkFZX1NJWkUoZ3Bpb3MpOyBncG4rKywgY2hpcCsrKQorCQlncGlvY2hpcF9hZGQoJmNoaXAtPmNoaXApOworCisJcmV0dXJuIDA7Cit9CisKK2FyY2hfaW5pdGNhbGwoczNjMjR4eF9ncGlvbGliX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS1jbG9jay5jIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS1jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZGEzZTMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLWNsb2NrLmMKQEAgLTAsMCArMSw0MzcgQEAKKy8qIGxpbnV4L2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20tY2xvY2suYworICoKKyAqIENvcHlyaWdodCAoYykgMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwNywgMjAwOCBCZW4gRG9va3MKKyAqCUJlbiBEb29rcyA8YmVuLWxpbnV4QGZsdWZmLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWNsb2NrLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXRpbWVyLmg+CisKKy8qIEVhY2ggb2YgdGhlIHRpbWVycyAwIHRocm91Z2ggNSBnbyB0aHJvdWdoIHRoZSBmb2xsb3dpbmcKKyAqIGNsb2NrIHRyZWUsIHdpdGggdGhlIGlucHV0cyBkZXBlbmRpbmcgb24gdGhlIHRpbWVycy4KKyAqCisgKiBwY2xrIC0tLS0gWyBwcmVzY2FsZXIgMCBdIC0rLS0tPiB0aW1lciAwCisgKgkJCSAgICAgICstLS0+IHRpbWVyIDEKKyAqCisgKiBwY2xrIC0tLS0gWyBwcmVzY2FsZXIgMSBdIC0rLS0tPiB0aW1lciAyCisgKgkJCSAgICAgICstLS0+IHRpbWVyIDMKKyAqCQkJICAgICAgXC0tLT4gdGltZXIgNAorICoKKyAqIFdoaWNoIGFyZSBmZWQgaW50byB0aGUgdGltZXJzIGFzIHNvOgorICoKKyAqIHByZXNjYWxlZCAwIC0tLS0gWyBkaXYgMiw0LDgsMTYgXSAtLS1cCisgKgkJCQkgICAgICAgW211eF0gLT4gdGltZXIgMAorICogdGNsayAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KKyAqCisgKiBwcmVzY2FsZWQgMCAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDEKKyAqIHRjbGsgMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICoKKyAqIHByZXNjYWxlZCAxIC0tLS0gWyBkaXYgMiw0LDgsMTYgXSAtLS1cCisgKgkJCQkgICAgICAgW211eF0gLT4gdGltZXIgMgorICogdGNsayAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KKyAqCisgKiBwcmVzY2FsZWQgMSAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDMKKyAqIHRjbGsgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICogcHJlc2NhbGVkIDEgLS0tLSBbIGRpdiAyLDQsOCwgMTYgXSAtLVwKKyAqCQkJCSAgICAgICBbbXV4XSAtPiB0aW1lciA0CisgKiB0Y2xrIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworICoKKyAqIFNpbmNlIHRoZSBtdXggYW5kIHRoZSBkaXZpZGVyIGFyZSB0aWVkIHRvZ2V0aGVyIGluIHRoZQorICogc2FtZSByZWdpc3RlciBzcGFjZSwgaXQgaXMgaW1wb3NzaWJsZSB0byBzZXQgdGhlIHBhcmVudAorICogYW5kIHRoZSByYXRlIGF0IHRoZSBzYW1lIHRpbWUuIFRvIGF2b2lkIHRoaXMsIHdlIGFkZCBhbgorICogaW50ZXJtZWRpYXRlICdwcmVzY2FsZWQtYW5kLWRpdmlkZWQnIGNsb2NrIHRvIHNlbGVjdAorICogYXMgdGhlIHBhcmVudCBmb3IgdGhlIHRpbWVyIGlucHV0IGNsb2NrIGNhbGxlZCB0ZGl2LgorICoKKyAqIHByZXNjYWxlZCBjbGsgLS0+IHB3bS10ZGl2IC0tLVwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIG11eCBdIC0tPiB0aW1lciBYCisgKiB0Y2xrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisqLworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfcHdtX3NjYWxlcl9nZXRyYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcwID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMCk7CisKKwlpZiAoY2xrLT5pZCA9PSAxKSB7CisJCXRjZmcwICY9IFMzQzI0MTBfVENGR19QUkVTQ0FMRVIxX01BU0s7CisJCXRjZmcwID4+PSBTM0MyNDEwX1RDRkdfUFJFU0NBTEVSMV9TSElGVDsKKwl9IGVsc2UgeworCQl0Y2ZnMCAmPSBTM0MyNDEwX1RDRkdfUFJFU0NBTEVSMF9NQVNLOworCX0KKworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHRjZmcwICsgMSk7Cit9CisKKy8qIFRPRE8gLSBhZGQgc2V0IHJhdGUgY2FsbHMuICovCisKK3N0cnVjdCBjbGsgY2xrX3RpbWVyX3NjYWxlcltdID0geworCVswXQk9IHsKKwkJLm5hbWUJCT0gInB3bS1zY2FsZXIwIiwKKwkJLmlkCQk9IC0xLAorCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3NjYWxlcl9nZXRyYXRlLAorCX0sCisJWzFdCT0geworCQkubmFtZQkJPSAicHdtLXNjYWxlcjEiLAorCQkuaWQJCT0gLTEsCisJCS5nZXRfcmF0ZQk9IGNsa19wd21fc2NhbGVyX2dldHJhdGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgY2xrX3RpbWVyX3RjbGtbXSA9IHsKKwlbMF0JPSB7CisJCS5uYW1lCQk9ICJwd20tdGNsazAiLAorCQkuaWQJCT0gLTEsCisJfSwKKwlbMV0JPSB7CisJCS5uYW1lCQk9ICJwd20tdGNsazEiLAorCQkuaWQJCT0gLTEsCisJfSwKK307CisKK3N0cnVjdCBwd21fdGRpdl9jbGsgeworCXN0cnVjdCBjbGsJY2xrOworCXVuc2lnbmVkIGludAlkaXZpc29yOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgcHdtX3RkaXZfY2xrICp0b190ZGl2KHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGNsaywgc3RydWN0IHB3bV90ZGl2X2NsaywgY2xrKTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjZmdfdG9fZGl2aXNvcih1bnNpZ25lZCBsb25nIHRjZmcxKQoreworCXJldHVybiAxIDw8ICgxICsgdGNmZzEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdGNmZzEgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDRkcxKTsKKwl1bnNpZ25lZCBpbnQgZGl2aXNvcjsKKworCXRjZmcxID4+PSBTM0MyNDEwX1RDRkcxX1NISUZUKGNsay0+aWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlpZiAodGNmZzEgPT0gUzNDMjQxMF9UQ0ZHMV9NVVhfVENMSykKKwkJZGl2aXNvciA9IHRvX3RkaXYoY2xrKS0+ZGl2aXNvcjsKKwllbHNlCisJCWRpdmlzb3IgPSB0Y2ZnX3RvX2Rpdmlzb3IodGNmZzEpOworCisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyBkaXZpc29yOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfcHdtX3RkaXZfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssCisJCQkJCSAgICAgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisJdW5zaWduZWQgbG9uZyBkaXZpc29yOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCWRpdmlzb3IgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisKKwlpZiAoZGl2aXNvciA8PSAyKQorCQlkaXZpc29yID0gMjsKKwllbHNlIGlmIChkaXZpc29yIDw9IDQpCisJCWRpdmlzb3IgPSA0OworCWVsc2UgaWYgKGRpdmlzb3IgPD0gOCkKKwkJZGl2aXNvciA9IDg7CisJZWxzZQorCQlkaXZpc29yID0gMTY7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXZpc29yOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfcHdtX3RkaXZfYml0cyhzdHJ1Y3QgcHdtX3RkaXZfY2xrICpkaXZjbGspCit7CisJdW5zaWduZWQgbG9uZyBiaXRzOworCisJc3dpdGNoIChkaXZjbGstPmRpdmlzb3IpIHsKKwljYXNlIDI6CisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9ESVYyOworCQlicmVhazsKKwljYXNlIDQ6CisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9ESVY0OworCQlicmVhazsKKwljYXNlIDg6CisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9ESVY4OworCQlicmVhazsKKwljYXNlIDE2OgorCWRlZmF1bHQ6CisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9ESVYxNjsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIGJpdHM7Cit9CisKK3N0YXRpYyB2b2lkIGNsa19wd21fdGRpdl91cGRhdGUoc3RydWN0IHB3bV90ZGl2X2NsayAqZGl2Y2xrKQoreworCXVuc2lnbmVkIGxvbmcgdGNmZzEgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDRkcxKTsKKwl1bnNpZ25lZCBsb25nIGJpdHMgPSBjbGtfcHdtX3RkaXZfYml0cyhkaXZjbGspOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBzaGlmdCA9ICBTM0MyNDEwX1RDRkcxX1NISUZUKGRpdmNsay0+Y2xrLmlkKTsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdGNmZzEgJj0gfihTM0MyNDEwX1RDRkcxX01VWF9NQVNLIDw8IHNoaWZ0KTsKKwl0Y2ZnMSB8PSBiaXRzIDw8IHNoaWZ0OworCV9fcmF3X3dyaXRlbCh0Y2ZnMSwgUzNDMjQxMF9UQ0ZHMSk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKK3N0YXRpYyBpbnQgY2xrX3B3bV90ZGl2X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXN0cnVjdCBwd21fdGRpdl9jbGsgKmRpdmNsayA9IHRvX3RkaXYoY2xrKTsKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJdW5zaWduZWQgbG9uZyBkaXZpc29yOworCisJdGNmZzEgPj49IFMzQzI0MTBfVENGRzFfU0hJRlQoY2xrLT5pZCk7CisJdGNmZzEgJj0gUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSzsKKworCXJhdGUgPSBjbGtfcm91bmRfcmF0ZShjbGssIHJhdGUpOworCWRpdmlzb3IgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisKKwlpZiAoZGl2aXNvciA+IDE2KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpdmNsay0+ZGl2aXNvciA9IGRpdmlzb3I7CisKKwkvKiBVcGRhdGUgdGhlIGN1cnJlbnQgTVVYIHNldHRpbmdzIGlmIHdlIGFyZSBjdXJyZW50bHkKKwkgKiBzZWxlY3RlZCBhcyB0aGUgY2xvY2sgc291cmNlIGZvciB0aGlzIGNsb2NrLiAqLworCisJaWYgKHRjZmcxICE9IFMzQzI0MTBfVENGRzFfTVVYX1RDTEspCisJCWNsa19wd21fdGRpdl91cGRhdGUoZGl2Y2xrKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3QgcHdtX3RkaXZfY2xrIGNsa190aW1lcl90ZGl2W10gPSB7CisJWzBdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMF0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCisJWzFdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMF0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9CisJfSwKKwlbMl0JPSB7CisJCS5jbGsJPSB7CisJCQkubmFtZQkJPSAicHdtLXRkaXYiLAorCQkJLnBhcmVudAkJPSAmY2xrX3RpbWVyX3NjYWxlclsxXSwKKwkJCS5nZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9nZXRfcmF0ZSwKKwkJCS5zZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9zZXRfcmF0ZSwKKwkJCS5yb3VuZF9yYXRlCT0gY2xrX3B3bV90ZGl2X3JvdW5kX3JhdGUsCisJCX0sCisJfSwKKwlbM10JPSB7CisJCS5jbGsJPSB7CisJCQkubmFtZQkJPSAicHdtLXRkaXYiLAorCQkJLnBhcmVudAkJPSAmY2xrX3RpbWVyX3NjYWxlclsxXSwKKwkJCS5nZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9nZXRfcmF0ZSwKKwkJCS5zZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9zZXRfcmF0ZSwKKwkJCS5yb3VuZF9yYXRlCT0gY2xrX3B3bV90ZGl2X3JvdW5kX3JhdGUsCisJCX0sCisJfSwKKwlbNF0JPSB7CisJCS5jbGsJPSB7CisJCQkubmFtZQkJPSAicHdtLXRkaXYiLAorCQkJLnBhcmVudAkJPSAmY2xrX3RpbWVyX3NjYWxlclsxXSwKKwkJCS5nZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9nZXRfcmF0ZSwKKwkJCS5zZXRfcmF0ZQk9IGNsa19wd21fdGRpdl9zZXRfcmF0ZSwKKwkJCS5yb3VuZF9yYXRlCT0gY2xrX3B3bV90ZGl2X3JvdW5kX3JhdGUsCisJCX0sCisJfSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGNsa19wd21fdGRpdl9yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaWQpCit7CisJc3RydWN0IHB3bV90ZGl2X2NsayAqZGl2Y2xrID0gJmNsa190aW1lcl90ZGl2W2lkXTsKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisKKwl0Y2ZnMSA+Pj0gUzNDMjQxMF9UQ0ZHMV9TSElGVChpZCk7CisJdGNmZzEgJj0gUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSzsKKworCWRpdmNsay0+Y2xrLmlkID0gaWQ7CisJZGl2Y2xrLT5kaXZpc29yID0gdGNmZ190b19kaXZpc29yKHRjZmcxKTsKKworCXJldHVybiBzM2MyNHh4X3JlZ2lzdGVyX2Nsb2NrKCZkaXZjbGstPmNsayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqczNjMjR4eF9wd21jbGtfdGNsayh1bnNpZ25lZCBpbnQgaWQpCit7CisJcmV0dXJuIChpZCA+PSAyKSA/ICZjbGtfdGltZXJfdGNsa1sxXSA6ICZjbGtfdGltZXJfdGNsa1swXTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICpzM2MyNHh4X3B3bWNsa190ZGl2KHVuc2lnbmVkIGludCBpZCkKK3sKKwlyZXR1cm4gJmNsa190aW1lcl90ZGl2W2lkXS5jbGs7Cit9CisKK3N0YXRpYyBpbnQgY2xrX3B3bV90aW5fc2V0X3BhcmVudChzdHJ1Y3QgY2xrICpjbGssIHN0cnVjdCBjbGsgKnBhcmVudCkKK3sKKwl1bnNpZ25lZCBpbnQgaWQgPSBjbGstPmlkOworCXVuc2lnbmVkIGxvbmcgdGNmZzE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGJpdHM7CisJdW5zaWduZWQgbG9uZyBzaGlmdCA9IFMzQzI0MTBfVENGRzFfU0hJRlQoaWQpOworCisJaWYgKHBhcmVudCA9PSBzM2MyNHh4X3B3bWNsa190Y2xrKGlkKSkKKwkJYml0cyA9IFMzQzI0MTBfVENGRzFfTVVYX1RDTEsgPDwgc2hpZnQ7CisJZWxzZSBpZiAocGFyZW50ID09IHMzYzI0eHhfcHdtY2xrX3RkaXYoaWQpKQorCQliaXRzID0gY2xrX3B3bV90ZGl2X2JpdHModG9fdGRpdihjbGspKSA8PCBzaGlmdDsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJY2xrLT5wYXJlbnQgPSBwYXJlbnQ7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwl0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXRjZmcxICY9IH4oUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSyA8PCBzaGlmdCk7CisJX19yYXdfd3JpdGVsKHRjZmcxIHwgYml0cywgUzNDMjQxMF9UQ0ZHMSk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3RpbltdID0geworCVswXQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gMCwKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCisJWzFdCT0geworCQkubmFtZQkJPSAicHdtLXRpbiIsCisJCS5pZAkJPSAxLAorCQkuc2V0X3BhcmVudAk9IGNsa19wd21fdGluX3NldF9wYXJlbnQsCisJfSwKKwlbMl0JPSB7CisJCS5uYW1lCQk9ICJwd20tdGluIiwKKwkJLmlkCQk9IDIsCisJCS5zZXRfcGFyZW50CT0gY2xrX3B3bV90aW5fc2V0X3BhcmVudCwKKwl9LAorCVszXQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gMywKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCisJWzRdCT0geworCQkubmFtZQkJPSAicHdtLXRpbiIsCisJCS5pZAkJPSA0LAorCQkuc2V0X3BhcmVudAk9IGNsa19wd21fdGluX3NldF9wYXJlbnQsCisJfSwKK307CisKK3N0YXRpYyBfX2luaXQgaW50IGNsa19wd21fdGluX3JlZ2lzdGVyKHN0cnVjdCBjbGsgKnB3bSkKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgaW50IGlkID0gcHdtLT5pZDsKKworCXN0cnVjdCBjbGsgKnBhcmVudDsKKwlpbnQgcmV0OworCisJcmV0ID0gczNjMjR4eF9yZWdpc3Rlcl9jbG9jayhwd20pOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJdGNmZzEgPj49IFMzQzI0MTBfVENGRzFfU0hJRlQoaWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlpZiAodGNmZzEgPT0gUzNDMjQxMF9UQ0ZHMV9NVVhfVENMSykKKwkJcGFyZW50ID0gczNjMjR4eF9wd21jbGtfdGNsayhpZCk7CisJZWxzZQorCQlwYXJlbnQgPSBzM2MyNHh4X3B3bWNsa190ZGl2KGlkKTsKKworCXJldHVybiBjbGtfc2V0X3BhcmVudChwd20sIHBhcmVudCk7Cit9CisKK3N0YXRpYyBfX2luaXQgaW50IHMzYzI0eHhfcHdtY2xrX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgY2xrICpjbGtfdGltZXJzOworCXVuc2lnbmVkIGludCBjbGs7CisJaW50IHJldDsKKworCWNsa190aW1lcnMgPSBjbGtfZ2V0KE5VTEwsICJ0aW1lcnMiKTsKKwlpZiAoSVNfRVJSKGNsa190aW1lcnMpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IG5vIHBhcmVudCBjbG9ja1xuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmb3IgKGNsayA9IDA7IGNsayA8IEFSUkFZX1NJWkUoY2xrX3RpbWVyX3NjYWxlcik7IGNsaysrKSB7CisJCWNsa190aW1lcl9zY2FsZXJbY2xrXS5wYXJlbnQgPSBjbGtfdGltZXJzOworCQlyZXQgPSBzM2MyNHh4X3JlZ2lzdGVyX2Nsb2NrKCZjbGtfdGltZXJfc2NhbGVyW2Nsa10pOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJlcnJvciBhZGRpbmcgcHdtIHNjYWxlciVkIGNsb2NrXG4iLCBjbGspOworCQkJZ290byBlcnI7CisJCX0KKwl9CisKKwlmb3IgKGNsayA9IDA7IGNsayA8IEFSUkFZX1NJWkUoY2xrX3RpbWVyX3RjbGspOyBjbGsrKykgeworCQlyZXQgPSBzM2MyNHh4X3JlZ2lzdGVyX2Nsb2NrKCZjbGtfdGltZXJfdGNsa1tjbGtdKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3dyB0Y2xrJWRcbiIsIGNsayk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCWZvciAoY2xrID0gMDsgY2xrIDwgQVJSQVlfU0laRShjbGtfdGltZXJfdGRpdik7IGNsaysrKSB7CisJCXJldCA9IGNsa19wd21fdGRpdl9yZWdpc3RlcihjbGspOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJlcnJvciBhZGRpbmcgcHdtJWQgdGRpdiBjbG9ja1xuIiwgY2xrKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJZm9yIChjbGsgPSAwOyBjbGsgPCBBUlJBWV9TSVpFKGNsa190aW4pOyBjbGsrKykgeworCQlyZXQgPSBjbGtfcHdtX3Rpbl9yZWdpc3RlcigmY2xrX3RpbltjbGtdKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3bSVkIHRpbiBjbG9ja1xuIiwgY2xrKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJcmV0dXJuIDA7CisKKyBlcnI6CisJcmV0dXJuIHJldDsKK30KKworYXJjaF9pbml0Y2FsbChzM2MyNHh4X3B3bWNsa19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20uYyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGM0YmRjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS5jCkBAIC0wLDAgKzEsNDAyIEBACisvKiBhcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgQmVuIERvb2tzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+LCA8YmVuLWxpbnV4QGZsdWZmLm9yZz4KKyAqCisgKiBTM0MyNFhYIFBXTSBkZXZpY2UgY29yZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3MtdGltZXIuaD4KKworc3RydWN0IHB3bV9kZXZpY2UgeworCXN0cnVjdCBsaXN0X2hlYWQJIGxpc3Q7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZQkqcGRldjsKKworCXN0cnVjdCBjbGsJCSpjbGtfZGl2OworCXN0cnVjdCBjbGsJCSpjbGs7CisJY29uc3QgY2hhcgkJKmxhYmVsOworCisJdW5zaWduZWQgaW50CQkgcGVyaW9kX25zOworCXVuc2lnbmVkIGludAkJIGR1dHlfbnM7CisKKwl1bnNpZ25lZCBjaGFyCQkgdGNvbl9iYXNlOworCXVuc2lnbmVkIGNoYXIJCSBydW5uaW5nOworCXVuc2lnbmVkIGNoYXIJCSB1c2VfY291bnQ7CisJdW5zaWduZWQgY2hhcgkJIHB3bV9pZDsKK307CisKKyNkZWZpbmUgcHdtX2RiZyhfcHdtLCBtc2cuLi4pIGRldl9pbmZvKCYoX3B3bSktPnBkZXYtPmRldiwgbXNnKQorCitzdGF0aWMgc3RydWN0IGNsayAqY2xrX3NjYWxlclsyXTsKKworLyogU3RhbmRhcmQgc2V0dXAgZm9yIGEgdGltZXIgYmxvY2suICovCisKKyNkZWZpbmUgVElNRVJfUkVTT1VSQ0VfU0laRSAoMSkKKworI2RlZmluZSBUSU1FUl9SRVNPVVJDRShfdG1yLCBfaXJxKQkJCVwKKwkoc3RydWN0IHJlc291cmNlIFtUSU1FUl9SRVNPVVJDRV9TSVpFXSkgewlcCisJCVswXSA9IHsJCQkJCVwKKwkJCS5zdGFydAk9IF9pcnEsCQkJXAorCQkJLmVuZAk9IF9pcnEsCQkJXAorCQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEJXAorCQl9CQkJCQlcCisJfQorCisjZGVmaW5lIERFRklORV9USU1FUihfdG1yX25vLCBfaXJxKQkJCVwKKwkubmFtZQkJPSAiczNjMjR4eC1wd20iLAkJXAorCS5pZAkJPSBfdG1yX25vLAkJCVwKKwkubnVtX3Jlc291cmNlcwk9IFRJTUVSX1JFU09VUkNFX1NJWkUsCQlcCisJLnJlc291cmNlCT0gVElNRVJfUkVTT1VSQ0UoX3Rtcl9ubywgX2lycSksCVwKKworLyogc2luY2Ugd2UgYWxyZWFkeSBoYXZlIGFuIHN0YXRpYyBtYXBwaW5nIGZvciB0aGUgdGltZXIsIHdlIGRvIG5vdAorICogYm90aGVyIHNldHRpbmcgYW55IElPIHJlc291cmNlIGZvciB0aGUgYmFzZS4KKyAqLworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXJbXSA9IHsKKwlbMF0gPSB7IERFRklORV9USU1FUigwLCBJUlFfVElNRVIwKSB9LAorCVsxXSA9IHsgREVGSU5FX1RJTUVSKDEsIElSUV9USU1FUjEpIH0sCisJWzJdID0geyBERUZJTkVfVElNRVIoMiwgSVJRX1RJTUVSMikgfSwKKwlbM10gPSB7IERFRklORV9USU1FUigzLCBJUlFfVElNRVIzKSB9LAorCVs0XSA9IHsgREVGSU5FX1RJTUVSKDQsIElSUV9USU1FUjQpIH0sCit9OworCitzdGF0aWMgaW5saW5lIGludCBwd21faXNfdGRpdihzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCXJldHVybiBjbGtfZ2V0X3BhcmVudChwd20tPmNsaykgPT0gcHdtLT5jbGtfZGl2OworfQorCitzdGF0aWMgREVGSU5FX01VVEVYKHB3bV9sb2NrKTsKK3N0YXRpYyBMSVNUX0hFQUQocHdtX2xpc3QpOworCitzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3JlcXVlc3QoaW50IHB3bV9pZCwgY29uc3QgY2hhciAqbGFiZWwpCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKwlpbnQgZm91bmQgPSAwOworCisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwd20sICZwd21fbGlzdCwgbGlzdCkgeworCQlpZiAocHdtLT5wd21faWQgPT0gcHdtX2lkKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChmb3VuZCkgeworCQlpZiAocHdtLT51c2VfY291bnQgPT0gMCkgeworCQkJcHdtLT51c2VfY291bnQgPSAxOworCQkJcHdtLT5sYWJlbCA9IGxhYmVsOworCQl9IGVsc2UKKwkJCXB3bSA9IEVSUl9QVFIoLUVCVVNZKTsKKwl9IGVsc2UKKwkJcHdtID0gRVJSX1BUUigtRU5PRU5UKTsKKworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworCXJldHVybiBwd207Cit9CisKK0VYUE9SVF9TWU1CT0wocHdtX3JlcXVlc3QpOworCisKK3ZvaWQgcHdtX2ZyZWUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisKKwlpZiAocHdtLT51c2VfY291bnQpIHsKKwkJcHdtLT51c2VfY291bnQtLTsKKwkJcHdtLT5sYWJlbCA9IE5VTEw7CisJfSBlbHNlCisJCXByaW50ayhLRVJOX0VSUiAiUFdNJWQgZGV2aWNlIGFscmVhZHkgZnJlZWRcbiIsIHB3bS0+cHdtX2lkKTsKKworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9mcmVlKTsKKworI2RlZmluZSBwd21fdGNvbl9zdGFydChwd20pICgxIDw8IChwd20tPnRjb25fYmFzZSArIDApKQorI2RlZmluZSBwd21fdGNvbl9pbnZlcnQocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAyKSkKKyNkZWZpbmUgcHdtX3Rjb25fYXV0b3JlbG9hZChwd20pICgxIDw8IChwd20tPnRjb25fYmFzZSArIDMpKQorI2RlZmluZSBwd21fdGNvbl9tYW51bHVwZGF0ZShwd20pICgxIDw8IChwd20tPnRjb25fYmFzZSArIDEpKQorCitpbnQgcHdtX2VuYWJsZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyB0Y29uOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdGNvbiA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENPTik7CisJdGNvbiB8PSBwd21fdGNvbl9zdGFydChwd20pOworCV9fcmF3X3dyaXRlbCh0Y29uLCBTM0MyNDEwX1RDT04pOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcHdtLT5ydW5uaW5nID0gMTsKKwlyZXR1cm4gMDsKK30KKworRVhQT1JUX1NZTUJPTChwd21fZW5hYmxlKTsKKwordm9pZCBwd21fZGlzYWJsZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyB0Y29uOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdGNvbiA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENPTik7CisJdGNvbiAmPSB+cHdtX3Rjb25fc3RhcnQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXB3bS0+cnVubmluZyA9IDA7Cit9CisKK0VYUE9SVF9TWU1CT0wocHdtX2Rpc2FibGUpOworCit1bnNpZ25lZCBsb25nIHB3bV9jYWxjX3RpbihzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCB1bnNpZ25lZCBsb25nIGZyZXEpCit7CisJdW5zaWduZWQgbG9uZyB0aW5fcGFyZW50X3JhdGU7CisJdW5zaWduZWQgaW50IGRpdjsKKworCXRpbl9wYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGtfZ2V0X3BhcmVudChwd20tPmNsa19kaXYpKTsKKwlwd21fZGJnKHB3bSwgInRpbiBwYXJlbnQgYXQgJWx1XG4iLCB0aW5fcGFyZW50X3JhdGUpOworCisJZm9yIChkaXYgPSAyOyBkaXYgPD0gMTY7IGRpdiAqPSAyKSB7CisJCWlmICgodGluX3BhcmVudF9yYXRlIC8gKGRpdiA8PCAxNikpIDwgZnJlcSkKKwkJCXJldHVybiB0aW5fcGFyZW50X3JhdGUgLyBkaXY7CisJfQorCisJcmV0dXJuIHRpbl9wYXJlbnRfcmF0ZSAvIDE2OworfQorCisjZGVmaW5lIE5TX0lOX0haICgxMDAwMDAwMDAwVUwpCisKK2ludCBwd21fY29uZmlnKHN0cnVjdCBwd21fZGV2aWNlICpwd20sIGludCBkdXR5X25zLCBpbnQgcGVyaW9kX25zKQoreworCXVuc2lnbmVkIGxvbmcgdGluX3JhdGU7CisJdW5zaWduZWQgbG9uZyB0aW5fbnM7CisJdW5zaWduZWQgbG9uZyBwZXJpb2Q7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHRjb247CisJdW5zaWduZWQgbG9uZyB0Y250OworCWxvbmcgdGNtcDsKKworCS8qIFdlIGN1cnJlbnRseSBhdm9pZCB1c2luZyA2NGJpdCBhcml0aG1ldGljIGJ5IHVzaW5nIHRoZQorCSAqIGZhY3QgdGhhdCBhbnl0aGluZyBmYXN0ZXIgdGhhbiAxSHogaXMgZWFzaWx5IHJlcHJlc2VudGFibGUKKwkgKiBieSAzMmJpdHMuICovCisKKwlpZiAocGVyaW9kX25zID4gTlNfSU5fSFogfHwgZHV0eV9ucyA+IE5TX0lOX0haKQorCQlyZXR1cm4gLUVSQU5HRTsKKworCWlmIChkdXR5X25zID4gcGVyaW9kX25zKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChwZXJpb2RfbnMgPT0gcHdtLT5wZXJpb2RfbnMgJiYKKwkgICAgZHV0eV9ucyA9PSBwd20tPmR1dHlfbnMpCisJCXJldHVybiAwOworCisJLyogVGhlIFRDTVAgYW5kIFRDTlQgY2FuIGJlIHJlYWQgd2l0aG91dCBhIGxvY2ssIHRoZXkncmUgbm90CisJICogc2hhcmVkIGJldHdlZW4gdGhlIHRpbWVycy4gKi8KKworCXRjbXAgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDTVBCKHB3bS0+cHdtX2lkKSk7CisJdGNudCA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENOVEIocHdtLT5wd21faWQpKTsKKworCXBlcmlvZCA9IE5TX0lOX0haIC8gcGVyaW9kX25zOworCisJcHdtX2RiZyhwd20sICJkdXR5X25zPSVkLCBwZXJpb2RfbnM9JWQgKCVsdSlcbiIsCisJCWR1dHlfbnMsIHBlcmlvZF9ucywgcGVyaW9kKTsKKworCS8qIENoZWNrIHRvIHNlZSBpZiB3ZSBhcmUgY2hhbmdpbmcgdGhlIGNsb2NrIHJhdGUgb2YgdGhlIFBXTSAqLworCisJaWYgKHB3bS0+cGVyaW9kX25zICE9IHBlcmlvZF9ucykgeworCQlpZiAocHdtX2lzX3RkaXYocHdtKSkgeworCQkJdGluX3JhdGUgPSBwd21fY2FsY190aW4ocHdtLCBwZXJpb2QpOworCQkJY2xrX3NldF9yYXRlKHB3bS0+Y2xrX2RpdiwgdGluX3JhdGUpOworCQl9IGVsc2UKKwkJCXRpbl9yYXRlID0gY2xrX2dldF9yYXRlKHB3bS0+Y2xrKTsKKworCQlwd20tPnBlcmlvZF9ucyA9IHBlcmlvZF9uczsKKworCQlwd21fZGJnKHB3bSwgInRpbl9yYXRlPSVsdVxuIiwgdGluX3JhdGUpOworCisJCXRpbl9ucyA9IE5TX0lOX0haIC8gdGluX3JhdGU7CisJCXRjbnQgPSBwZXJpb2RfbnMgLyB0aW5fbnM7CisJfSBlbHNlCisJCXRpbl9ucyA9IE5TX0lOX0haIC8gY2xrX2dldF9yYXRlKHB3bS0+Y2xrKTsKKworCS8qIE5vdGUsIGNvdW50ZXJzIGNvdW50IGRvd24gKi8KKworCXRjbXAgPSBkdXR5X25zIC8gdGluX25zOworCXRjbXAgPSB0Y250IC0gdGNtcDsKKworCXB3bV9kYmcocHdtLCAidGluX25zPSVsdSwgdGNtcD0lbGQvJWx1XG4iLCB0aW5fbnMsIHRjbXAsIHRjbnQpOworCisJaWYgKHRjbXAgPCAwKQorCQl0Y21wID0gMDsKKworCS8qIFVwZGF0ZSB0aGUgUFdNIHJlZ2lzdGVyIGJsb2NrLiAqLworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJX19yYXdfd3JpdGVsKHRjbXAsIFMzQzI0MTBfVENNUEIocHdtLT5wd21faWQpKTsKKwlfX3Jhd193cml0ZWwodGNudCwgUzNDMjQxMF9UQ05UQihwd20tPnB3bV9pZCkpOworCisJdGNvbiA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENPTik7CisJdGNvbiB8PSBwd21fdGNvbl9tYW51bHVwZGF0ZShwd20pOworCXRjb24gfD0gcHdtX3Rjb25fYXV0b3JlbG9hZChwd20pOworCV9fcmF3X3dyaXRlbCh0Y29uLCBTM0MyNDEwX1RDT04pOworCisJdGNvbiAmPSB+cHdtX3Rjb25fbWFudWx1cGRhdGUocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXJldHVybiAwOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9jb25maWcpOworCitzdGF0aWMgaW50IHB3bV9yZWdpc3RlcihzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCXB3bS0+ZHV0eV9ucyA9IC0xOworCXB3bS0+cGVyaW9kX25zID0gLTE7CisKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisJbGlzdF9hZGRfdGFpbCgmcHdtLT5saXN0LCAmcHdtX2xpc3QpOworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczNjX3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgdGNvbjsKKwl1bnNpZ25lZCBpbnQgaWQgPSBwZGV2LT5pZDsKKwlpbnQgcmV0OworCisJaWYgKGlkID09IDQpIHsKKwkJZGV2X2VycihkZXYsICJUSU1FUjQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gLUVOWElPOworCX0KKworCXB3bSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwd21fZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHB3bSA9PSBOVUxMKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHB3bV9kZXZpY2VcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlwd20tPnBkZXYgPSBwZGV2OworCXB3bS0+cHdtX2lkID0gaWQ7CisKKwkvKiBjYWxjdWxhdGUgYmFzZSBvZiBjb250cm9sIGJpdHMgaW4gVENPTiAqLworCXB3bS0+dGNvbl9iYXNlID0gaWQgPT0gMCA/IDAgOiAoaWQgKiA0KSArIDQ7CisKKwlwd20tPmNsayA9IGNsa19nZXQoZGV2LCAicHdtLXRpbiIpOworCWlmIChJU19FUlIocHdtLT5jbGspKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBwd20gdGluIGNsa1xuIik7CisJCXJldCA9IFBUUl9FUlIocHdtLT5jbGspOworCQlnb3RvIGVycl9hbGxvYzsKKwl9CisKKwlwd20tPmNsa19kaXYgPSBjbGtfZ2V0KGRldiwgInB3bS10ZGl2Iik7CisJaWYgKElTX0VSUihwd20tPmNsa19kaXYpKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBwd20gdGRpdiBjbGtcbiIpOworCQlyZXQgPSBQVFJfRVJSKHB3bS0+Y2xrX2Rpdik7CisJCWdvdG8gZXJyX2Nsa190aW47CisJfQorCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdGNvbiA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENPTik7CisJdGNvbiB8PSBwd21fdGNvbl9pbnZlcnQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCisJcmV0ID0gcHdtX3JlZ2lzdGVyKHB3bSk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBwd21cbiIpOworCQlnb3RvIGVycl9jbGtfdGRpdjsKKwl9CisKKwlwd21fZGJnKHB3bSwgImNvbmZpZyBiaXRzICUwMnhcbiIsCisJCShfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pID4+IHB3bS0+dGNvbl9iYXNlKSAmIDB4MGYpOworCisJZGV2X2luZm8oZGV2LCAidGluIGF0ICVsdSwgdGRpdiBhdCAlbHUsIHRpbj0lc2NsaywgYmFzZSAlZFxuIiwKKwkJIGNsa19nZXRfcmF0ZShwd20tPmNsayksCisJCSBjbGtfZ2V0X3JhdGUocHdtLT5jbGtfZGl2KSwKKwkJIHB3bV9pc190ZGl2KHB3bSkgPyAiZGl2IiA6ICJleHQiLCBwd20tPnRjb25fYmFzZSk7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwd20pOworCXJldHVybiAwOworCisgZXJyX2Nsa190ZGl2OgorCWNsa19wdXQocHdtLT5jbGtfZGl2KTsKKworIGVycl9jbGtfdGluOgorCWNsa19wdXQocHdtLT5jbGspOworCisgZXJyX2FsbG9jOgorCWtmcmVlKHB3bSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzM2NfcHdtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd20gPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWNsa19wdXQocHdtLT5jbGtfZGl2KTsKKwljbGtfcHV0KHB3bS0+Y2xrKTsKKwlrZnJlZShwd20pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzY19wd21fZHJpdmVyID0geworCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJzM2MyNHh4LXB3bSIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0sCisJLnByb2JlCQk9IHMzY19wd21fcHJvYmUsCisJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChzM2NfcHdtX3JlbW92ZSksCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwd21faW5pdCh2b2lkKQoreworCWludCByZXQ7CisKKwljbGtfc2NhbGVyWzBdID0gY2xrX2dldChOVUxMLCAicHdtLXNjYWxlcjAiKTsKKwljbGtfc2NhbGVyWzFdID0gY2xrX2dldChOVUxMLCAicHdtLXNjYWxlcjEiKTsKKworCWlmIChJU19FUlIoY2xrX3NjYWxlclswXSkgfHwgSVNfRVJSKGNsa19zY2FsZXJbMV0pKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGZhaWxlZCB0byBnZXQgc2NhbGVyIGNsb2Nrc1xuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnMzY19wd21fZHJpdmVyKTsKKwlpZiAocmV0KQorCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmYWlsZWQgdG8gYWRkIHB3bSBkcml2ZXJcbiIsIF9fZnVuY19fKTsKKworCXJldHVybiByZXQ7Cit9CisKK2FyY2hfaW5pdGNhbGwocHdtX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vdG9vbHMvbWFjaC10eXBlcyBiL2FyY2gvYXJtL3Rvb2xzL21hY2gtdHlwZXMKaW5kZXggMjA3YThiNS4uMGJlNTYzMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vdG9vbHMvbWFjaC10eXBlcworKysgYi9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzCkBAIC0xMiw3ICsxMiw3IEBACiAjCiAjICAgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2RldmVsb3Blci9tYWNoaW5lcy8/YWN0aW9uPW5ldwogIwotIyBMYXN0IHVwZGF0ZTogU2F0IEFwciAxOSAxMToyMzozOCAyMDA4CisjIExhc3QgdXBkYXRlOiBNb24gSnVsIDcgMTY6MjU6MzkgMjAwOAogIwogIyBtYWNoaW5lX2lzX3h4eAlDT05GSUdfeHh4eAkJTUFDSF9UWVBFX3h4eAkJbnVtYmVyCiAjCkBAIC01NjAsNyArNTYwLDYgQEAKIGJveGVyCQkJTUFDSF9CT1hFUgkJQk9YRVIJCQk1NDQKIHNoZXBoZXJkCQlNQUNIX1NIRVBIRVJECQlTSEVQSEVSRAkJNTQ1CiBhbWw0MjgwMGFhCQlNQUNIX0FNTDQyODAwQUEJCUFNTDQyODAwQUEJCTU0NgotbWw2NzQwMDEJCU1BQ0hfTUFDSF9UWVBFX01MNjc0MDAxCU1BQ0hfVFlQRV9NTDY3NDAwMQk1NDcKIGxwYzIyOTQJCQlNQUNIX0xQQzIyOTQJCUxQQzIyOTQJCQk1NDgKIHN3aXRjaGdyYXNzCQlNQUNIX1NXSVRDSEdSQVNTCVNXSVRDSEdSQVNTCQk1NDkKIGVuc19jbXUJCQlNQUNIX0VOU19DTVUJCUVOU19DTVUJCQk1NTAKQEAgLTc0OCw3ICs3NDcsNiBAQAogaXRlODE1MgkJCU1BQ0hfSVRFODE1MgkJSVRFODE1MgkJCTczNQogbHBjM3h4eAkJCU1BQ0hfTFBDM1hYWAkJTFBDM1hYWAkJCTczNgogcHVwcGV0ZWVyCQlNQUNIX1BVUFBFVEVFUgkJUFVQUEVURUVSCQk3MzcKLXZ0MDAxCQkJTUFDSF9NQUNIX1ZBREFURUNICU1BQ0hfVkFEQVRFQ0gJCTczOAogZTU3MAkJCU1BQ0hfRTU3MAkJRTU3MAkJCTczOQogeDUwCQkJTUFDSF9YNTAJCVg1MAkJCTc0MAogcmVjb24JCQlNQUNIX1JFQ09OCQlSRUNPTgkJCTc0MQpAQCAtODM5LDcgKzgzNyw3IEBACiBvbWFwX2dzYW1wbGUJCU1BQ0hfT01BUF9HU0FNUExFCU9NQVBfR1NBTVBMRQkJODI2CiByZWFsdmlld19lYgkJTUFDSF9SRUFMVklFV19FQglSRUFMVklFV19FQgkJODI3CiBzYW1vYQkJCU1BQ0hfU0FNT0EJCVNBTU9BCQkJODI4Ci10M3hzY2FsZQkJTUFDSF9UM1hTQ0FMRQkJVDNYU0NBTEUJCTgyOQorcGFsbXQzCQkJTUFDSF9QQUxNVDMJCVBBTE1UMwkJCTgyOQogaTg3OAkJCU1BQ0hfSTg3OAkJSTg3OAkJCTgzMAogYm9yem9pCQkJTUFDSF9CT1JaT0kJCUJPUlpPSQkJCTgzMQogZ2Vja28JCQlNQUNIX0dFQ0tPCQlHRUNLTwkJCTgzMgpAQCAtODk1LDcgKzg5Myw3IEBACiBvbWlfYm9hcmQJCU1BQ0hfT01JX0JPQVJECQlPTUlfQk9BUkQJCTg4MgogbXgyMWNpdgkJCU1BQ0hfTVgyMUNJVgkJTVgyMUNJVgkJCTg4MwogbWFoaV9jZGFjCQlNQUNIX01BSElfQ0RBQwkJTUFISV9DREFDCQk4ODQKLXhzY2FsZV9wYWxtdHgJCU1BQ0hfWFNDQUxFX1BBTE1UWAlYU0NBTEVfUEFMTVRYCQk4ODUKK3BhbG10eAkJCU1BQ0hfUEFMTVRYCQlQQUxNVFgJCQk4ODUKIHMzYzI0MTMJCQlNQUNIX1MzQzI0MTMJCVMzQzI0MTMJCQk4ODcKIHNhbXN5c19lcDAJCU1BQ0hfU0FNU1lTX0VQMAkJU0FNU1lTX0VQMAkJODg4CiB3ZzMwMnYxCQkJTUFDSF9XRzMwMlYxCQlXRzMwMlYxCQkJODg5CkBAIC05MTgsNyArOTE2LDcgQEAKIGFwZjkzMjgJCQlNQUNIX0FQRjkzMjgJCUFQRjkzMjgJCQk5MDYKIG9tYXBfd2lwb3EJCU1BQ0hfT01BUF9XSVBPUQkJT01BUF9XSVBPUQkJOTA3CiBvbWFwX3R3aXAJCU1BQ0hfT01BUF9UV0lQCQlPTUFQX1RXSVAJCTkwOAoteHNjYWxlX3RyZW82NTAJCU1BQ0hfWFNDQUxFX1BBTE1UUkVPNjUwCVhTQ0FMRV9QQUxNVFJFTzY1MAk5MDkKK3BhbG10cmVvNjUwCQlNQUNIX1BBTE1UUkVPNjUwCVBBTE1UUkVPNjUwCQk5MDkKIGFjdW1lbgkJCU1BQ0hfQUNVTUVOCQlBQ1VNRU4JCQk5MTAKIHhwMTAwCQkJTUFDSF9YUDEwMAkJWFAxMDAJCQk5MTEKIGZzMjQxMAkJCU1BQ0hfRlMyNDEwCQlGUzI0MTAJCQk5MTIKQEAgLTkyNiw4ICs5MjQsOCBAQAogc3EyZnRscGFsbQkJTUFDSF9TUTJGVExQQUxNCQlTUTJGVExQQUxNCQk5MTQKIGJzZW1zZXJ2ZXIJCU1BQ0hfQlNFTVNFUlZFUgkJQlNFTVNFUlZFUgkJOTE1CiBuZXRjbGllbnQJCU1BQ0hfTkVUQ0xJRU5UCQlORVRDTElFTlQJCTkxNgoteHNjYWxlX3BhbG10dDUJCU1BQ0hfWFNDQUxFX1BBTE1UVDUJWFNDQUxFX1BBTE1UVDUJCTkxNwoteHNjYWxlX3BhbG10YwkJTUFDSF9PTUFQX1BBTE1UQwlPTUFQX1BBTE1UQwkJOTE4CitwYWxtdDUJCQlNQUNIX1BBTE1UNQkJUEFMTVQ1CQkJOTE3CitwYWxtdGMJCQlNQUNIX1BBTE1UQwkJUEFMTVRDCQkJOTE4CiBvbWFwX2Fwb2xsb24JCU1BQ0hfT01BUF9BUE9MTE9OCU9NQVBfQVBPTExPTgkJOTE5CiBteGMzMDAzMGV2YgkJTUFDSF9NWEMzMDAzMEVWQglNWEMzMDAzMEVWQgkJOTIwCiByZWFfMmQJCQlNQUNIX1JFQV8yRAkJUkVBXzJECQkJOTIxCkBAIC0xMjIwLDcgKzEyMTgsNiBAQAogZW03MjEwCQkJTUFDSF9FTTcyMTAJCUVNNzIxMAkJCTEyMTIKIGh0Y2hlcm1lcwkJTUFDSF9IVENIRVJNRVMJCUhUQ0hFUk1FUwkJMTIxMwogZXRpX2MxCQkJTUFDSF9FVElfQzEJCUVUSV9DMQkJCTEyMTQKLW1hY2hfZGVwMjQxMAkJTUFDSF9NQUNIX0RFUDI0MTAJTUFDSF9ERVAyNDEwCQkxMjE1CiBhYzEwMAkJCU1BQ0hfQUMxMDAJCUFDMTAwCQkJMTIxNgogc25lZXRjaAkJCU1BQ0hfU05FRVRDSAkJU05FRVRDSAkJCTEyMTcKIHN0dWRlbnRtYXRlCQlNQUNIX1NUVURFTlRNQVRFCVNUVURFTlRNQVRFCQkxMjE4CkBAIC0xNDIxLDEwICsxNDE4LDEwIEBACiBjbnR5X3RpdGFuCQlNQUNIX0NOVFlfVElUQU4JCUNOVFlfVElUQU4JCTE0MTgKIGFwcDN4eAkJCU1BQ0hfQVBQM1hYCQlBUFAzWFgJCQkxNDE5CiBzaWRlb2F0c2dyYW1hCQlNQUNIX1NJREVPQVRTR1JBTUEJU0lERU9BVFNHUkFNQQkJMTQyMAoteHNjYWxlX3BhbG10NzAwcAlNQUNIX1hTQ0FMRV9QQUxNVDcwMFAJWFNDQUxFX1BBTE1UNzAwUAkxNDIxCi14c2NhbGVfcGFsbXQ3MDB3CU1BQ0hfWFNDQUxFX1BBTE1UNzAwVwlYU0NBTEVfUEFMTVQ3MDBXCTE0MjIKLXhzY2FsZV9wYWxtdDc1MAkJTUFDSF9YU0NBTEVfUEFMTVQ3NTAJWFNDQUxFX1BBTE1UNzUwCQkxNDIzCi14c2NhbGVfcGFsbXQ3NTVwCU1BQ0hfWFNDQUxFX1BBTE1UNzU1UAlYU0NBTEVfUEFMTVQ3NTVQCTE0MjQKK3BhbG10cmVvNzAwcAkJTUFDSF9QQUxNVFJFTzcwMFAJUEFMTVRSRU83MDBQCQkxNDIxCitwYWxtdHJlbzcwMHcJCU1BQ0hfUEFMTVRSRU83MDBXCVBBTE1UUkVPNzAwVwkJMTQyMgorcGFsbXRyZW83NTAJCU1BQ0hfUEFMTVRSRU83NTAJUEFMTVRSRU83NTAJCTE0MjMKK3BhbG10cmVvNzU1cAkJTUFDSF9QQUxNVFJFTzc1NVAJUEFMTVRSRU83NTVQCQkxNDI0CiBlenJlZ2FudXQ5MjAwCQlNQUNIX0VaUkVHQU5VVDkyMDAJRVpSRUdBTlVUOTIwMAkJMTQyNQogc2FyZ2UJCQlNQUNIX1NBUkdFCQlTQVJHRQkJCTE0MjYKIGE2OTYJCQlNQUNIX0E2OTYJCUE2OTYJCQkxNDI3CkBAIC0xNDYzLDcgKzE0NjAsNyBAQAogaHRjdGl0YW4JCU1BQ0hfSFRDVElUQU4JCUhUQ1RJVEFOCQkxNDYzCiBxcmFuaXVtCQkJTUFDSF9RUkFOSVVNCQlRUkFOSVVNCQkJMTQ2NAogYWR4X3dzYzIJCU1BQ0hfQURYX1dTQzIJCUFEWF9XU0MyCQkxNDY1Ci1hZHhfbWVkY29tCQlNQUNIX0FEWF9NRURJTkVUCUFEWF9NRURJTkVUCQkxNDY2CithZHhfbWVkY29tCQlNQUNIX0FEWF9NRURDT00JCUFEWF9NRURDT00JCTE0NjYKIGJib2FyZAkJCU1BQ0hfQkJPQVJECQlCQk9BUkQJCQkxNDY3CiBjYW1icmlhCQkJTUFDSF9DQU1CUklBCQlDQU1CUklBCQkJMTQ2OAogbXQ3eHh4CQkJTUFDSF9NVDdYWFgJCU1UN1hYWAkJCTE0NjkKQEAgLTE1MTksNyArMTUxNiw3IEBACiBjb3JzaWNhCQkJTUFDSF9DT1JTSUNBCQlDT1JTSUNBCQkJMTUxOQogYmlnZXllCQkJTUFDSF9CSUdFWUUJCUJJR0VZRQkJCTE1MjAKIHRsbDUwMDAJCQlNQUNIX1RMTDUwMDAJCVRMTDUwMDAJCQkxNTIyCi1obmkyNzAJCQlNQUNIX0hOSV9YMjcwCQlITklfWDI3MAkJMTUyMworYmVib3QJCQlNQUNIX0JFQk9UCQlCRUJPVAkJCTE1MjMKIHFvbmcJCQlNQUNIX1FPTkcJCVFPTkcJCQkxNTI0CiB0Y29tcGFjdAkJTUFDSF9UQ09NUEFDVAkJVENPTVBBQ1QJCTE1MjUKIHB1bWE1CQkJTUFDSF9QVU1BNQkJUFVNQTUJCQkxNTI2CkBAIC0xNjM2LDcgKzE2MzMsNiBAQAogcGFsZXJtb2MJCU1BQ0hfUEFMRVJNT0MJCVBBTEVSTU9DCQkxNjM4CiBvbWFwX2xkcAkJTUFDSF9PTUFQX0xEUAkJT01BUF9MRFAJCTE2MzkKIGlwNTAwCQkJTUFDSF9JUDUwMAkJSVA1MDAJCQkxNjQwCi1teDM1YWRzCQkJTUFDSF9NQUNIX01YMzVBRFMJTUFDSF9NWDM1QURTCQkxNjQxCiBhc2UyCQkJTUFDSF9BU0UyCQlBU0UyCQkJMTY0MgogbXgzNWV2YgkJCU1BQ0hfTVgzNUVWQgkJTVgzNUVWQgkJCTE2NDMKIGFtbF9tODA1MAkJTUFDSF9BTUxfTTgwNTAJCUFNTF9NODA1MAkJMTY0NApAQCAtMTY0Nyw3ICsxNjQzLDcgQEAKIHRyaXplcHM0d2wJCU1BQ0hfVFJJWkVQUzRXTAkJVFJJWkVQUzRXTAkJMTY0OQogdHJpemVwczUJCU1BQ0hfVFJJWkVQUzUJCVRSSVpFUFM1CQkxNjUwCiBtYXJsaW4JCQlNQUNIX01BUkxJTgkJTUFSTElOCQkJMTY1MQotdHM3ODAwCQkJTUFDSF9UUzc4MDAJCVRTNzgwMAkJCTE2NTIKK3RzNzh4eAkJCU1BQ0hfVFM3OFhYCQlUUzc4WFgJCQkxNjUyCiBocGlwYXEyMTQJCU1BQ0hfSFBJUEFRMjE0CQlIUElQQVEyMTQJCTE2NTMKIGF0NTcyZDk0MGRjbQkJTUFDSF9BVDU3MkQ5NDBEQ00JQVQ1NzJEOTQwRENNCQkxNjU0CiBuZTFib2FyZAkJTUFDSF9ORTFCT0FSRAkJTkUxQk9BUkQJCTE2NTUKQEAgLTE3MjAsMyArMTcxNiw5OSBAQAogbGdfa3MyMAkJCU1BQ0hfTEdfS1MyMAkJTEdfS1MyMAkJCTE3MjUKIGhoZ3BzCQkJTUFDSF9ISEdQUwkJSEhHUFMJCQkxNzI2CiBub2tpYV9uODEwX3dpbWF4CU1BQ0hfTk9LSUFfTjgxMF9XSU1BWAlOT0tJQV9OODEwX1dJTUFYCTE3MjcKK2luc2lnaHQJCQlNQUNIX0lOU0lHSFQJCUlOU0lHSFQJCQkxNzI4CitzYXBwaGlyZQkJTUFDSF9TQVBQSElSRQkJU0FQUEhJUkUJCTE3MjkKK2NzYjYzN3hvCQlNQUNIX0NTQjYzN1hPCQlDU0I2MzdYTwkJMTczMAorZXZpc2lvbmcJCU1BQ0hfRVZJU0lPTkcJCUVWSVNJT05HCQkxNzMxCitzdG1wMzd4eAkJTUFDSF9TVE1QMzdYWAkJU1RNUDM3WFgJCTE3MzIKK3N0bXAzNzh4CQlNQUNIX1NUTVAzOFhYCQlTVE1QMzhYWAkJMTczMwordG50CQkJTUFDSF9UTlQJCVROVAkJCTE3MzQKK3RieHQJCQlNQUNIX1RCWFQJCVRCWFQJCQkxNzM1CitwbGF5bWF0ZQkJTUFDSF9QTEFZTUFURQkJUExBWU1BVEUJCTE3MzYKK3BuczEwCQkJTUFDSF9QTlMxMAkJUE5TMTAJCQkxNzM3Citlem5hdmkJCQlNQUNIX0VaTkFWSQkJRVpOQVZJCQkJMTczOAorcHM0MDAwCQkJTUFDSF9QUzQwMDAJCVBTNDAwMAkJCTE3MzkKK2V6eF9hNzgwCQlNQUNIX0VaWF9BNzgwCQlFWlhfQTc4MAkJMTc0MAorZXp4X2U2ODAJCU1BQ0hfRVpYX0U2ODAJCUVaWF9FNjgwCQkxNzQxCitlenhfYTEyMDAJCU1BQ0hfRVpYX0ExMjAwCQlFWlhfQTEyMDAJCTE3NDIKK2V6eF9lNgkJCU1BQ0hfRVpYX0U2CQlFWlhfRTYJCQkxNzQzCitlenhfZTIJCQlNQUNIX0VaWF9FMgkJRVpYX0UyCQkJMTc0NAorZXp4X2E5MTAJCU1BQ0hfRVpYX0E5MTAJCUVaWF9BOTEwCQkxNzQ1Citjd214MzEJCQlNQUNIX0NXTVgzMQkJQ1dNWDMxCQkJMTc0Ngorc2wyMzEyCQkJTUFDSF9TTDIzMTIJCVNMMjMxMgkJCTE3NDcKK2JsZW5ueQkJCU1BQ0hfQkxFTk5ZCQlCTEVOTlkJCQkxNzQ4CitkczEwNwkJCU1BQ0hfRFMxMDcJCURTMTA3CQkJMTc0OQorZHN4MDcJCQlNQUNIX0RTWDA3CQlEU1gwNwkJCTE3NTAKK3BpY29jb20xCQlNQUNIX1BJQ09DT00xCQlQSUNPQ09NMQkJMTc1MQorbHlueF93b2x2ZXJpbmUJCU1BQ0hfTFlOWF9XT0xWRVJJTkUJTFlOWF9XT0xWRVJJTkUJCTE3NTIKK3ViaXN5c19wOV9zYzE5CQlNQUNIX1VCSVNZU19QOV9TQzE5CVVCSVNZU19QOV9TQzE5CQkxNzUzCitrcmF0b3NfbG93CQlNQUNIX0tSQVRPU19MT1cJCUtSQVRPU19MT1cJCTE3NTQKK203MDAJCQlNQUNIX003MDAJCU03MDAJCQkxNzU1CitlZG1pbmlfdjIJCU1BQ0hfRURNSU5JX1YyCQlFRE1JTklfVjIJCTE3NTYKK3ppcGl0MgkJCU1BQ0hfWklQSVQyCQlaSVBJVDIJCQkxNzU3Citoc2xmZW10b2NlbGwJCU1BQ0hfSFNMRkVNVE9DRUxMCUhTTEZFTVRPQ0VMTAkJMTc1OAorZGFpbnRyZWVfYXQ5MQkJTUFDSF9EQUlOVFJFRV9BVDkxCURBSU5UUkVFX0FUOTEJCTE3NTkKK3NnNTYwdXNiCQlNQUNIX1NHNTYwVVNCCQlTRzU2MFVTQgkJMTc2MAorb21hcDNfcGFuZG9yYQkJTUFDSF9PTUFQM19QQU5ET1JBCU9NQVAzX1BBTkRPUkEJCTE3NjEKK3VzcjgyMDAJCQlNQUNIX1VTUjgyMDAJCVVTUjgyMDAJCQkxNzYyCitzMXM2NWsJCQlNQUNIX1MxUzY1SwkJUzFTNjVLCQkJMTc2MworczJzNjVhCQkJTUFDSF9TMlM2NUEJCVMyUzY1QQkJCTE3NjQKK2ljb3JlCQkJTUFDSF9JQ09SRQkJSUNPUkUJCQkxNzY1Cittc3MyCQkJTUFDSF9NU1MyCQlNU1MyCQkJMTc2NgorYmVsbW9udAkJCU1BQ0hfQkVMTU9OVAkJQkVMTU9OVAkJCTE3NjcKK2FzdXNwNTI1CQlNQUNIX0FTVVNQNTI1CQlBU1VTUDUyNQkJMTc2OAorbGI4OHJjODQ4MAkJTUFDSF9MQjg4UkM4NDgwCQlMQjg4UkM4NDgwCQkxNzY5CitoaXB4YQkJCU1BQ0hfSElQWEEJCUhJUFhBCQkJMTc3MAorbXgyNV8zZHMJCU1BQ0hfTVgyNV8zRFMJCU1YMjVfM0RTCQkxNzcxCittODAwCQkJTUFDSF9NODAwCQlNODAwCQkJMTc3Mgorb21hcDM1MzBfbHZfc29tCQlNQUNIX09NQVAzNTMwX0xWX1NPTQlPTUFQMzUzMF9MVl9TT00JCTE3NzMKK3ByaW1hX2V2YgkJTUFDSF9QUklNQV9FVkIJCVBSSU1BX0VWQgkJMTc3NAorbXgzMWJ0MQkJCU1BQ0hfTVgzMUJUMQkJTVgzMUJUMQkJCTE3NzUKK2F0bGFzNF9ldmIJCU1BQ0hfQVRMQVM0X0VWQgkJQVRMQVM0X0VWQgkJMTc3NgorbXgzMWNpY2FkYQkJTUFDSF9NWDMxQ0lDQURBCQlNWDMxQ0lDQURBCQkxNzc3CittaTQyNHdyCQkJTUFDSF9NSTQyNFdSCQlNSTQyNFdSCQkJMTc3OAorYXhzX3VsdHJheAkJTUFDSF9BWFNfVUxUUkFYCQlBWFNfVUxUUkFYCQkxNzc5CithdDU3MmQ5NDBkZWIJCU1BQ0hfQVQ1NzJEOTQwREVCCUFUNTcyRDk0MERFQgkJMTc4MAorZGF2aW5jaV9kYTh4eF9ldm0JTUFDSF9EQVZJTkNJX0RBOFhYX0VWTQlEQVZJTkNJX0RBOFhYX0VWTQkxNzgxCitlcDkzMDIJCQlNQUNIX0VQOTMwMgkJRVA5MzAyCQkJMTc4MgorYXQ1NzJkOTQwaGZlYgkJTUFDSF9BVDU3MkQ5NDBIRkVCCUFUNTcyRDk0MEhGRUIJCTE3ODMKK2N5Ym9vazMJCQlNQUNIX0NZQk9PSzMJCUNZQk9PSzMJCQkxNzg0Cit3ZGcwMDIJCQlNQUNIX1dERzAwMgkJV0RHMDAyCQkJMTc4NQorc2c1NjBhZHNsCQlNQUNIX1NHNTYwQURTTAkJU0c1NjBBRFNMCQkxNzg2CituZXh0aW9fbjI4MDBfaWNhCU1BQ0hfTkVYVElPX04yODAwX0lDQQlORVhUSU9fTjI4MDBfSUNBCTE3ODcKK21hcnZlbGxfbmV3ZGIJCU1BQ0hfTUFSVkVMTF9ORVdEQglNQVJWRUxMX05FV0RCCQkxNzg5Cit2YW5kaWh1ZAkJTUFDSF9WQU5ESUhVRAkJVkFORElIVUQJCTE3OTAKK21hZ3hfZTgJCQlNQUNIX01BR1hfRTgJCU1BR1hfRTgJCQkxNzkxCittYWd4X3o2CQkJTUFDSF9NQUdYX1o2CQlNQUdYX1o2CQkJMTc5MgorbWFneF92OAkJCU1BQ0hfTUFHWF9WOAkJTUFHWF9WOAkJCTE3OTMKK21hZ3hfdTkJCQlNQUNIX01BR1hfVTkJCU1BR1hfVTkJCQkxNzk0Cit0b3VnaGNmMDgJCU1BQ0hfVE9VR0hDRjA4CQlUT1VHSENGMDgJCTE3OTUKK3p3NDQwMAkJCU1BQ0hfWlc0NDAwCQlaVzQ0MDAJCQkxNzk2CittYXJhdDkxCQkJTUFDSF9NQVJBVDkxCQlNQVJBVDkxCQkJMTc5Nworb3Zlcm8JCQlNQUNIX09WRVJPCQlPVkVSTwkJCTE3OTgKK2F0MjQ0MGV2YgkJTUFDSF9BVDI0NDBFVkIJCUFUMjQ0MEVWQgkJMTc5OQorbmVvY29yZTkyNgkJTUFDSF9ORU9DT1JFOTI2CQlORU9DT1JFOTI2CQkxODAwCit3bnI4NTR0CQkJTUFDSF9XTlI4NTRUCQlXTlI4NTRUCQkJMTgwMQoraW14MjcJCQlNQUNIX0lNWDI3CQlJTVgyNwkJCTE4MDIKK21vb3NlX2RiCQlNQUNIX01PT1NFX0RCCQlNT09TRV9EQgkJMTgwMworZmFiNAkJCU1BQ0hfRkFCNAkJRkFCNAkJCTE4MDQKK2h0Y2RpYW1vbmQJCU1BQ0hfSFRDRElBTU9ORAkJSFRDRElBTU9ORAkJMTgwNQorZmlvbmEJCQlNQUNIX0ZJT05BCQlGSU9OQQkJCTE4MDYKK214YzMwMDMwX3gJCU1BQ0hfTVhDMzAwMzBfWAkJTVhDMzAwMzBfWAkJMTgwNworYm1wMTAwMAkJCU1BQ0hfQk1QMTAwMAkJQk1QMTAwMAkJCTE4MDgKK2xvZ2k5MjAwCQlNQUNIX0xPR0k5MjAwCQlMT0dJOTIwMAkJMTgwOQordHFtYTMxCQkJTUFDSF9UUU1BMzEJCVRRTUEzMQkJCTE4MTAKK2NjdzlwOTIxNWpzCQlNQUNIX0NDVzlQOTIxNUpTCUNDVzlQOTIxNUpTCQkxODExCityZDg4ZjUxODFsX2dlCQlNQUNIX1JEODhGNTE4MUxfR0UJUkQ4OEY1MTgxTF9HRQkJMTgxMgorc2lmbWFpbgkJCU1BQ0hfU0lGTUFJTgkJU0lGTUFJTgkJCTE4MTMKK3NhbTlfbDkyNjEJCU1BQ0hfU0FNOV9MOTI2MQkJU0FNOV9MOTI2MQkJMTgxNAorY2M5bTI0NDNqcwkJTUFDSF9DQzlNMjQ0M0pTCQlDQzlNMjQ0M0pTCQkxODE1Cit4YXJpYTMwMAkJTUFDSF9YQVJJQTMwMAkJWEFSSUEzMDAJCTE4MTYKK2l0OTIwMAkJCU1BQ0hfSVQ5MjAwCQlJVDkyMDAJCQkxODE3CityZDg4ZjUxODFsX2Z4bwkJTUFDSF9SRDg4RjUxODFMX0ZYTwlSRDg4RjUxODFMX0ZYTwkJMTgxOAora3Jpc3Nfc2Vuc29yCQlNQUNIX0tSSVNTX1NFTlNPUglLUklTU19TRU5TT1IJCTE4MTkKK3BpbHpfcG1pNQkJTUFDSF9QSUxaX1BNSTUJCVBJTFpfUE1JNQkJMTgyMAoramFkZQkJCU1BQ0hfSkFERQkJSkFERQkJCTE4MjEKK2tzODY5NV9zb2Z0cGxjCQlNQUNIX0tTODY5NV9TT0ZUUExDCUtTODY5NV9TT0ZUUExDCQkxODIyCitncHJpc2M0CQkJTUFDSF9HUFJJU0M0CQlHUFJJU0M0CQkJMTgyMworc3RhbXA5MjYwCQlNQUNIX1NUQU1QOTI2MAkJU1RBTVA5MjYwCQkxODI0CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL0tjb25maWcgYi9hcmNoL2F2cjMyL0tjb25maWcKaW5kZXggMDlhZDc5OS4uNDVkNjNjOSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9LY29uZmlnCisrKyBiL2FyY2gvYXZyMzIvS2NvbmZpZwpAQCAtODgsNiArODgsNyBAQAogCXNlbGVjdCBNTVUKIAlzZWxlY3QgUEVSRk9STUFOQ0VfQ09VTlRFUlMKIAlzZWxlY3QgSEFWRV9HUElPX0xJQgorCXNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUgogCiAjCiAjIENQVSB0eXBlcwpAQCAtMTQ3LDYgKzE0OCw5IEBACiAKIHNvdXJjZSAia2VybmVsL0tjb25maWcucHJlZW1wdCIKIAorY29uZmlnIFFVSUNLTElTVAorCWRlZl9ib29sIHkKKwogY29uZmlnIEhBVkVfQVJDSF9CT09UTUVNX05PREUKIAlkZWZfYm9vbCBuCiAKQEAgLTIwMSw2ICsyMDUsMTEgQEAKIAogbWVudSAiUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zIgogCitzb3VyY2UgImtlcm5lbC9wb3dlci9LY29uZmlnIgorCitjb25maWcgQVJDSF9TVVNQRU5EX1BPU1NJQkxFCisJZGVmX2Jvb2wgeQorCiBtZW51ICJDUFUgRnJlcXVlbmN5IHNjYWxpbmciCiAKIHNvdXJjZSAiZHJpdmVycy9jcHVmcmVxL0tjb25maWciCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2JvYXJkcy9hdG5ndzEwMC9zZXR1cC5jIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRuZ3cxMDAvc2V0dXAuYwppbmRleCBhMzk4YmUyLi5hNTFiYjlmIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2JvYXJkcy9hdG5ndzEwMC9zZXR1cC5jCisrKyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0bmd3MTAwL3NldHVwLmMKQEAgLTksNiArOSw4IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy1ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KQEAgLTI1LDYgKzI3LDEzIEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvaW5pdC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BvcnRtdXguaD4KIAorLyogT3NjaWxsYXRvciBmcmVxdWVuY2llcy4gVGhlc2UgYXJlIGJvYXJkLXNwZWNpZmljICovCit1bnNpZ25lZCBsb25nIGF0MzJfYm9hcmRfb3NjX3JhdGVzWzNdID0geworCVswXSA9IDMyNzY4LAkvKiAzMi43Njgga0h6IG9uIFJUQyBvc2MgKi8KKwlbMV0gPSAyMDAwMDAwMCwJLyogMjAgTUh6IG9uIG9zYzAgKi8KKwlbMl0gPSAxMjAwMDAwMCwJLyogMTIgTUh6IG9uIG9zYzEgKi8KK307CisKIC8qIEluaXRpYWxpemVkIGJ5IGJvb3Rsb2FkZXItc3BlY2lmaWMgc3RhcnR1cCBjb2RlLiAqLwogc3RydWN0IHRhZyAqYm9vdGxvYWRlcl90YWdzIF9faW5pdGRhdGE7CiAKQEAgLTE0MCw2ICsxNDksMTAgQEAKIAl9LAogfTsKIAorc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIGkyY19pbmZvW10gPSB7CisJLyogTk9URTogIG9yaWdpbmFsIEFUdGlueTI0IGZpcm13YXJlIGlzIGF0IGFkZHJlc3MgMHgwYiAqLworfTsKKwogc3RhdGljIGludCBfX2luaXQgYXRuZ3cxMDBfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkCWk7CkBAIC0xNjUsMTIgKzE3OCwyOCBAQAogCX0KIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm5nd19ncGlvX2xlZHMpOwogCisJLyogYWxsIHRoZXNlIGkyYy9zbWJ1cyBwaW5zIHNob3VsZCBoYXZlIGV4dGVybmFsIHB1bGx1cHMgZm9yCisJICogb3Blbi1kcmFpbiBzaGFyaW5nIGFtb25nIGFsbCBJMkMgZGV2aWNlcy4gIFNEQSBhbmQgU0NMIGRvOworCSAqIFBCMjgvRVhUSU5UMyBkb2Vzbid0OyBpdCBzaG91bGQgYmUgU01CQUxFUlQjIChmb3IgUE1CdXMpLAorCSAqIGJ1dCBpdCdzIG5vdCBhdmFpbGFibGUgb2ZmLWJvYXJkLgorCSAqLworCWF0MzJfc2VsZWN0X3BlcmlwaChHUElPX1BJTl9QQigyOCksIDAsIEFUMzJfR1BJT0ZfUFVMTFVQKTsKIAlhdDMyX3NlbGVjdF9ncGlvKGkyY19ncGlvX2RhdGEuc2RhX3BpbiwKIAkJQVQzMl9HUElPRl9NVUxUSURSViB8IEFUMzJfR1BJT0ZfT1VUUFVUIHwgQVQzMl9HUElPRl9ISUdIKTsKIAlhdDMyX3NlbGVjdF9ncGlvKGkyY19ncGlvX2RhdGEuc2NsX3BpbiwKIAkJQVQzMl9HUElPRl9NVUxUSURSViB8IEFUMzJfR1BJT0ZfT1VUUFVUIHwgQVQzMl9HUElPRl9ISUdIKTsKIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmkyY19ncGlvX2RldmljZSk7CisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgaTJjX2luZm8sIEFSUkFZX1NJWkUoaTJjX2luZm8pKTsKIAogCXJldHVybiAwOwogfQogcG9zdGNvcmVfaW5pdGNhbGwoYXRuZ3cxMDBfaW5pdCk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF0bmd3MTAwX2FyY2hfaW5pdCh2b2lkKQoreworCS8qIHNldF9pcnFfdHlwZSgpIGFmdGVyIHRoZSBhcmNoX2luaXRjYWxsIGZvciBFSUMgaGFzIHJ1biwgYW5kCisJICogYmVmb3JlIHRoZSBJMkMgc3Vic3lzdGVtIGNvdWxkIHRyeSB1c2luZyB0aGlzIElSUS4KKwkgKi8KKwlyZXR1cm4gc2V0X2lycV90eXBlKEFUMzJfRVhUSU5UKDMpLCBJUlFfVFlQRV9FREdFX0ZBTExJTkcpOworfQorYXJjaF9pbml0Y2FsbChhdG5ndzEwMF9hcmNoX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMi5jIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMi5jCmluZGV4IDAwMGViNDIuLjg2YjM2M2MgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDIuYworKysgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAyLmMKQEAgLTI4LDYgKzI4LDEyIEBACiAKICNpbmNsdWRlICJhdHN0azEwMDAuaCIKIAorLyogT3NjaWxsYXRvciBmcmVxdWVuY2llcy4gVGhlc2UgYXJlIGJvYXJkIHNwZWNpZmljICovCit1bnNpZ25lZCBsb25nIGF0MzJfYm9hcmRfb3NjX3JhdGVzWzNdID0geworCVswXSA9IDMyNzY4LAkvKiAzMi43Njgga0h6IG9uIFJUQyBvc2MgKi8KKwlbMV0gPSAyMDAwMDAwMCwJLyogMjAgTUh6IG9uIG9zYzAgKi8KKwlbMl0gPSAxMjAwMDAwMCwJLyogMTIgTUh6IG9uIG9zYzEgKi8KK307CiAKIHN0cnVjdCBldGhfYWRkciB7CiAJdTggYWRkcls2XTsKQEAgLTIzMiw3ICsyMzgsNyBAQAogCXNldF9od19hZGRyKGF0MzJfYWRkX2RldmljZV9ldGgoMSwgJmV0aF9kYXRhWzFdKSk7CiAjZWxzZQogCWF0MzJfYWRkX2RldmljZV9sY2RjKDAsICZhdHN0azEwMDBfbGNkY19kYXRhLAotCQkJICAgICBmYm1lbV9zdGFydCwgZmJtZW1fc2l6ZSk7CisJCQkgICAgIGZibWVtX3N0YXJ0LCBmYm1lbV9zaXplLCAwKTsKICNlbmRpZgogCWF0MzJfYWRkX2RldmljZV91c2JhKDAsIE5VTEwpOwogI2lmbmRlZiBDT05GSUdfQk9BUkRfQVRTVEsxMDBYX1NXM19DVVNUT00KZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDMuYyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDMuYwppbmRleCBhMGIyMjNkLi5lYTEwOWY0IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAzLmMKKysrIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMy5jCkBAIC0yNyw2ICsyNywxMyBAQAogCiAjaW5jbHVkZSAiYXRzdGsxMDAwLmgiCiAKKy8qIE9zY2lsbGF0b3IgZnJlcXVlbmNpZXMuIFRoZXNlIGFyZSBib2FyZCBzcGVjaWZpYyAqLwordW5zaWduZWQgbG9uZyBhdDMyX2JvYXJkX29zY19yYXRlc1szXSA9IHsKKwlbMF0gPSAzMjc2OCwJLyogMzIuNzY4IGtIeiBvbiBSVEMgb3NjICovCisJWzFdID0gMjAwMDAwMDAsCS8qIDIwIE1IeiBvbiBvc2MwICovCisJWzJdID0gMTIwMDAwMDAsCS8qIDEyIE1IeiBvbiBvc2MxICovCit9OworCiAjaWZkZWYgQ09ORklHX0JPQVJEX0FUU1RLMTAwMF9FWFREQUMKIHN0YXRpYyBzdHJ1Y3QgYXQ3M2MyMTNfYm9hcmRfaW5mbyBhdDczYzIxM19kYXRhID0gewogCS5zc2NfaWQJCT0gMCwKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDQuYyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDQuYwppbmRleCBlNzY1YTg2Li5jNzIzNmRmIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDA0LmMKKysrIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwNC5jCkBAIC0yOSw2ICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiYXRzdGsxMDAwLmgiCiAKKy8qIE9zY2lsbGF0b3IgZnJlcXVlbmNpZXMuIFRoZXNlIGFyZSBib2FyZCBzcGVjaWZpYyAqLwordW5zaWduZWQgbG9uZyBhdDMyX2JvYXJkX29zY19yYXRlc1szXSA9IHsKKwlbMF0gPSAzMjc2OCwJLyogMzIuNzY4IGtIeiBvbiBSVEMgb3NjICovCisJWzFdID0gMjAwMDAwMDAsCS8qIDIwIE1IeiBvbiBvc2MwICovCisJWzJdID0gMTIwMDAwMDAsCS8qIDEyIE1IeiBvbiBvc2MxICovCit9OworCiAjaWZkZWYgQ09ORklHX0JPQVJEX0FUU1RLMTAwMF9FWFREQUMKIHN0YXRpYyBzdHJ1Y3QgYXQ3M2MyMTNfYm9hcmRfaW5mbyBhdDczYzIxM19kYXRhID0gewogCS5zc2NfaWQJCT0gMCwKQEAgLTEzMyw3ICsxNDAsNyBAQAogCWF0MzJfYWRkX2RldmljZV9tY2koMCk7CiAjZW5kaWYKIAlhdDMyX2FkZF9kZXZpY2VfbGNkYygwLCAmYXRzdGsxMDAwX2xjZGNfZGF0YSwKLQkJCSAgICAgZmJtZW1fc3RhcnQsIGZibWVtX3NpemUpOworCQkJICAgICBmYm1lbV9zdGFydCwgZmJtZW1fc2l6ZSwgMCk7CiAJYXQzMl9hZGRfZGV2aWNlX3VzYmEoMCwgTlVMTCk7CiAjaWZuZGVmIENPTkZJR19CT0FSRF9BVFNUSzEwMFhfU1czX0NVU1RPTQogCWF0MzJfYWRkX2RldmljZV9zc2MoMCwgQVRNRUxfU1NDX1RYKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TIGIvYXJjaC9hdnIzMi9rZXJuZWwvZW50cnktYXZyMzJiLlMKaW5kZXggNWYzMTcwMi4uMmIzOThjYSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvZW50cnktYXZyMzJiLlMKKysrIGIvYXJjaC9hdnIzMi9rZXJuZWwvZW50cnktYXZyMzJiLlMKQEAgLTc0LDUwICs3NCw0MSBAQAogCS5hbGlnbgkyCiAJYnJhbAlkb19kdGxiX21vZGlmaWVkCiAKLQkvKgotCSAqIHIwIDoJUEdEL1BUL1BURQotCSAqIHIxIDogT2ZmZW5kaW5nIGFkZHJlc3MKLQkgKiByMiA6IFNjcmF0Y2ggcmVnaXN0ZXIKLQkgKiByMyA6IENhdXNlICg1LCAxMiBvciAxMykKLQkgKi8KICNkZWZpbmUJdGxibWlzc19zYXZlCXB1c2htCXIwLXIzCiAjZGVmaW5lIHRsYm1pc3NfcmVzdG9yZQlwb3BtCXIwLXIzCiAKLQkuc2VjdGlvbiAudGxieC5leC50ZXh0LCJheCIsQHByb2diaXRzCisJLm9yZwkweDUwCiAJLmdsb2JhbAlpdGxiX21pc3MKIGl0bGJfbWlzczoKIAl0bGJtaXNzX3NhdmUKIAlyam1wCXRsYl9taXNzX2NvbW1vbgogCi0JLnNlY3Rpb24gLnRsYnIuZXgudGV4dCwiYXgiLEBwcm9nYml0cworCS5vcmcJMHg2MAogZHRsYl9taXNzX3JlYWQ6CiAJdGxibWlzc19zYXZlCiAJcmptcAl0bGJfbWlzc19jb21tb24KIAotCS5zZWN0aW9uIC50bGJ3LmV4LnRleHQsImF4IixAcHJvZ2JpdHMKKwkub3JnCTB4NzAKIGR0bGJfbWlzc193cml0ZToKIAl0bGJtaXNzX3NhdmUKIAogCS5nbG9iYWwJdGxiX21pc3NfY29tbW9uCisJLmFsaWduCTIKIHRsYl9taXNzX2NvbW1vbjoKIAltZnNyCXIwLCBTWVNSRUdfVExCRUFSCiAJbWZzcglyMSwgU1lTUkVHX1BUQlIKIAotCS8qIElzIGl0IHRoZSB2bWFsbG9jIHNwYWNlPyAqLwotCWJsZAlyMCwgMzEKLQlicmNzCWhhbmRsZV92bWFsbG9jX21pc3MKLQotCS8qIEZpcnN0IGxldmVsIGxvb2t1cCAqLworCS8qCisJICogRmlyc3QgbGV2ZWwgbG9va3VwOiBUaGUgUEdEIGNvbnRhaW5zIHZpcnR1YWwgcG9pbnRlcnMgdG8KKwkgKiB0aGUgc2Vjb25kLWxldmVsIHBhZ2UgdGFibGVzLCBidXQgdGhleSBtYXkgYmUgTlVMTCBpZiBub3QKKwkgKiBwcmVzZW50LgorCSAqLwogcGd0YmxfbG9va3VwOgogCWxzcglyMiwgcjAsIFBHRElSX1NISUZUCiAJbGQudwlyMywgcjFbcjIgPDwgMl0KIAliZmV4dHUJcjEsIHIwLCBQQUdFX1NISUZULCBQR0RJUl9TSElGVCAtIFBBR0VfU0hJRlQKLQlibGQJcjMsIF9QQUdFX0JJVF9QUkVTRU5UCi0JYnJjYwlwYWdlX3RhYmxlX25vdF9wcmVzZW50Ci0KLQkvKiBUcmFuc2xhdGUgdG8gdmlydHVhbCBhZGRyZXNzIGluIFAxLiAqLwotCWFuZGwJcjMsIDB4ZjAwMAotCXNicglyMywgMzEKKwljcC53CXIzLCAwCisJYnJlcQlwYWdlX3RhYmxlX25vdF9wcmVzZW50CiAKIAkvKiBTZWNvbmQgbGV2ZWwgbG9va3VwICovCiAJbGQudwlyMiwgcjNbcjEgPDwgMl0KQEAgLTE0OCwxNiArMTM5LDU1IEBACiAJdGxibWlzc19yZXN0b3JlCiAJcmV0ZQogCi1oYW5kbGVfdm1hbGxvY19taXNzOgotCS8qIFNpbXBseSBkbyB0aGUgbG9va3VwIGluIGluaXQncyBwYWdlIHRhYmxlICovCisJLyogVGhlIHNsb3cgcGF0aCBvZiB0aGUgVExCIG1pc3MgaGFuZGxlciAqLworCS5hbGlnbgkyCitwYWdlX3RhYmxlX25vdF9wcmVzZW50OgorCS8qIERvIHdlIG5lZWQgdG8gc3luY2hyb25pemUgd2l0aCBzd2FwcGVyX3BnX2Rpcj8gKi8KKwlibGQJcjAsIDMxCisJYnJjcwlzeW5jX3dpdGhfc3dhcHBlcl9wZ19kaXIKKworcGFnZV9ub3RfcHJlc2VudDoKKwl0bGJtaXNzX3Jlc3RvcmUKKwlzdWIJc3AsIDQKKwlzdG10cwktLXNwLCByMC1scgorCXJjYWxsCXNhdmVfZnVsbF9jb250ZXh0X2V4CisJbWZzcglyMTIsIFNZU1JFR19FQ1IKKwltb3YJcjExLCBzcAorCXJjYWxsCWRvX3BhZ2VfZmF1bHQKKwlyam1wCXJldF9mcm9tX2V4Y2VwdGlvbgorCisJLmFsaWduCTIKK3N5bmNfd2l0aF9zd2FwcGVyX3BnX2RpcjoKKwkvKgorCSAqIElmIHN3YXBwZXJfcGdfZGlyIGNvbnRhaW5zIGEgbm9uLU5VTEwgc2Vjb25kLWxldmVsIHBhZ2UKKwkgKiB0YWJsZSBwb2ludGVyLCBjb3B5IGl0IGludG8gdGhlIGN1cnJlbnQgUEdELiBJZiBub3QsIHdlCisJICogbXVzdCBoYW5kbGUgaXQgYXMgYSBmdWxsLWJsb3duIHBhZ2UgZmF1bHQuCisJICoKKwkgKiBKdW1waW5nIGJhY2sgdG8gcGd0YmxfbG9va3VwIGNhdXNlcyBhbiB1bm5lY2Vzc2FyeSBsb29rdXAsCisJICogYnV0IGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBjYWNoZSBoaXQsIGl0IHdvbid0IGhhcHBlbgorCSAqIHZlcnkgb2Z0ZW4sIGFuZCB3ZSBhYnNvbHV0ZWx5IGRvIG5vdCB3YW50IHRvIHNhY3JpZmljZSBhbnkKKwkgKiBwZXJmb3JtYW5jZSBpbiB0aGUgZmFzdCBwYXRoIGluIG9yZGVyIHRvIGltcHJvdmUgdGhpcy4KKwkgKi8KIAltb3YJcjEsIGxvKHN3YXBwZXJfcGdfZGlyKQogCW9yaAlyMSwgaGkoc3dhcHBlcl9wZ19kaXIpCisJbGQudwlyMywgcjFbcjIgPDwgMl0KKwljcC53CXIzLCAwCisJYnJlcQlwYWdlX25vdF9wcmVzZW50CisJbWZzcglyMSwgU1lTUkVHX1BUQlIKKwlzdC53CXIxW3IyIDw8IDJdLCByMwogCXJqbXAJcGd0YmxfbG9va3VwCiAKKwkvKgorCSAqIFdlIGN1cnJlbnRseSBoYXZlIHR3byBieXRlcyBsZWZ0IGF0IHRoaXMgcG9pbnQgdW50aWwgd2UKKwkgKiBjcmFzaCBpbnRvIHRoZSBzeXN0ZW0gY2FsbCBoYW5kbGVyLi4uCisJICoKKwkgKiBEb24ndCB3b3JyeSwgdGhlIGFzc2VtYmxlciB3aWxsIGxldCB1cyBrbm93LgorCSAqLworCiAKIAkvKiAtLS0gICAgICAgICAgICAgICAgICAgIFN5c3RlbSBDYWxsICAgICAgICAgICAgICAgICAgICAtLS0gKi8KIAotCS5zZWN0aW9uIC5zY2FsbC50ZXh0LCJheCIsQHByb2diaXRzCisJLm9yZwkweDEwMAogc3lzdGVtX2NhbGw6CiAjaWZkZWYgQ09ORklHX1BSRUVNUFQKIAltYXNrX2ludGVycnVwdHMKQEAgLTI2NiwxOCArMjk2LDYgQEAKIAlicmNjCXN5c2NhbGxfZXhpdF9jb250CiAJcmptcAllbnRlcl9tb25pdG9yX21vZGUKIAotCS8qIFRoZSBzbG93IHBhdGggb2YgdGhlIFRMQiBtaXNzIGhhbmRsZXIgKi8KLXBhZ2VfdGFibGVfbm90X3ByZXNlbnQ6Ci1wYWdlX25vdF9wcmVzZW50OgotCXRsYm1pc3NfcmVzdG9yZQotCXN1YglzcCwgNAotCXN0bXRzCS0tc3AsIHIwLWxyCi0JcmNhbGwJc2F2ZV9mdWxsX2NvbnRleHRfZXgKLQltZnNyCXIxMiwgU1lTUkVHX0VDUgotCW1vdglyMTEsIHNwCi0JcmNhbGwJZG9fcGFnZV9mYXVsdAotCXJqbXAJcmV0X2Zyb21fZXhjZXB0aW9uCi0KIAkvKiBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgdG8gZmluZCBvZmZlbmRpbmcgUEMgaW4gU1lTUkVHX1JBUl9FWCAqLwogCS50eXBlCXNhdmVfZnVsbF9jb250ZXh0X2V4LCBAZnVuY3Rpb24KIAkuYWxpZ24JMgpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMgYi9hcmNoL2F2cjMyL2tlcm5lbC9zaWduYWwuYwppbmRleCA1NjE2YTAwLi5jNWIxMWY5IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2tlcm5lbC9zaWduYWwuYworKysgYi9hcmNoL2F2cjMyL2tlcm5lbC9zaWduYWwuYwpAQCAtOTMsNiArOTMsOSBAQAogCWlmIChyZXN0b3JlX3NpZ2NvbnRleHQocmVncywgJmZyYW1lLT51Yy51Y19tY29udGV4dCkpCiAJCWdvdG8gYmFkZnJhbWU7CiAKKwlpZiAoZG9fc2lnYWx0c3RhY2soJmZyYW1lLT51Yy51Y19zdGFjaywgTlVMTCwgcmVncy0+c3ApID09IC1FRkFVTFQpCisJCWdvdG8gYmFkZnJhbWU7CisKIAlwcl9kZWJ1ZygiQ29udGV4dCByZXN0b3JlZDogcGMgPSAlMDhseCwgbHIgPSAlMDhseCwgc3AgPSAlMDhseFxuIiwKIAkJIHJlZ3MtPnBjLCByZWdzLT5sciwgcmVncy0+c3ApOwogCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL2F2cjMyL2tlcm5lbC9zdGFja3RyYWNlLmMKaW5kZXggOWE2ODE5MC4uZjRiZGI0NCAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtNTEsMyArNTEsNCBAQAogCQlmcCA9IGZyYW1lLT5mcDsKIAl9CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIva2VybmVsL3RpbWUuYyBiL2FyY2gvYXZyMzIva2VybmVsL3RpbWUuYwppbmRleCAwMGE5ODYyLi5hYmQ5NTRmIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9hdnIzMi9rZXJuZWwvdGltZS5jCkBAIC03LDIxICs3LDEzIEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAKLSNpbmNsdWRlIDxhc20vZGl2NjQuaD4KICNpbmNsdWRlIDxhc20vc3lzcmVnLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9wbS5oPgogCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCA0ODFjZmQ0Li43OTEwZDQxIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTY4LDE0ICs2OCw2IEBACiAJCV9ldmJhID0gLjsKIAkJX3RleHQgPSAuOwogCQkqKC5leC50ZXh0KQotCQkuID0gMHg1MDsKLQkJKigudGxieC5leC50ZXh0KQotCQkuID0gMHg2MDsKLQkJKigudGxici5leC50ZXh0KQotCQkuID0gMHg3MDsKLQkJKigudGxidy5leC50ZXh0KQotCQkuID0gMHgxMDA7Ci0JCSooLnNjYWxsLnRleHQpCiAJCSooLmlycS50ZXh0KQogCQlLUFJPQkVTX1RFWFQKIAkJVEVYVF9URVhUCkBAIC05Myw4ICs4NSw2IEBACiAJCV9fc3RvcF9fX2V4X3RhYmxlID0gLjsKIAl9CiAKLQlCVUdfVEFCTEUKLQogCVJPREFUQQogCiAJLiA9IEFMSUdOKFRIUkVBRF9TSVpFKTsKQEAgLTEwNyw2ICs5NywxMCBAQAogCQkgKi8KIAkJKiguZGF0YS5pbml0X3Rhc2spCiAKKwkJLyogVGhlbiwgdGhlIHBhZ2UtYWxpZ25lZCBkYXRhICovCisJCS4gPSBBTElHTihQQUdFX1NJWkUpOworCQkqKC5kYXRhLnBhZ2VfYWxpZ25lZCkKKwogCQkvKiBUaGVuLCB0aGUgY2FjaGVsaW5lIGFsaWduZWQgZGF0YSAqLwogCQkuID0gQUxJR04oTDFfQ0FDSEVfQllURVMpOwogCQkqKC5kYXRhLmNhY2hlbGluZV9hbGlnbmVkKQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9saWIvaW8tcmVhZHNiLlMgYi9hcmNoL2F2cjMyL2xpYi9pby1yZWFkc2IuUwppbmRleCAyYmU1ZGE3Li5jYjJkODY5IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2xpYi9pby1yZWFkc2IuUworKysgYi9hcmNoL2F2cjMyL2xpYi9pby1yZWFkc2IuUwpAQCAtNDEsNyArNDEsNyBAQAogMjoJc3ViCXIxMCwgLTQKIAlyZXRlcQlyMTIKIAotMzoJbGQudWgJcjgsIHIxMlswXQorMzoJbGQudWIJcjgsIHIxMlswXQogCXN1YglyMTAsIDEKIAlzdC5iCXIxMSsrLCByOAogCWJybmUJM2IKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvTWFrZWZpbGUgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL01ha2VmaWxlCmluZGV4IGU4OTAwOTQuLmQ1MDE4ZTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvTWFrZWZpbGUKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9NYWtlZmlsZQpAQCAtMSwzICsxLDggQEAKLW9iai15CQkJCSs9IGF0MzJhcC5vIGNsb2NrLm8gaW50Yy5vIGV4dGludC5vIHBpby5vIGhzbWMubworb2JqLXkJCQkJKz0gcGRjLm8gY2xvY2subyBpbnRjLm8gZXh0aW50Lm8gcGlvLm8gaHNtYy5vCiBvYmotJChDT05GSUdfQ1BVX0FUMzJBUDcwMFgpCSs9IGF0MzJhcDcwMHgubyBwbS1hdDMyYXA3MDB4Lm8KIG9iai0kKENPTkZJR19DUFVfRlJFUV9BVDMyQVApCSs9IGNwdWZyZXEubworb2JqLSQoQ09ORklHX1BNKQkJKz0gcG0ubworCitpZmVxICgkKENPTkZJR19QTV9ERUJVRykseSkKK0NGTEFHU19wbS5vCSs9IC1EREVCVUcKK2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcC5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2M0OTg3Zi4uMDAwMDAwMAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcC5jCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBdG1lbCBDb3Jwb3JhdGlvbgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLQotI2luY2x1ZGUgPGFzbS9hcmNoL2luaXQuaD4KLQotdm9pZCBfX2luaXQgc2V0dXBfcGxhdGZvcm0odm9pZCkKLXsKLQlhdDMyX2Nsb2NrX2luaXQoKTsKLQlhdDMyX3BvcnRtdXhfaW5pdCgpOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBwZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgY2xrICpwY2xrLCAqaGNsazsKLQotCXBjbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwY2xrIik7Ci0JaWYgKElTX0VSUihwY2xrKSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBwY2xrIGRlZmluZWRcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihwY2xrKTsKLQl9Ci0JaGNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgImhjbGsiKTsKLQlpZiAoSVNfRVJSKGhjbGspKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGhjbGsgZGVmaW5lZFxuIik7Ci0JCWNsa19wdXQocGNsayk7Ci0JCXJldHVybiBQVFJfRVJSKGhjbGspOwotCX0KLQotCWNsa19lbmFibGUocGNsayk7Ci0JY2xrX2VuYWJsZShoY2xrKTsKLQotCWRldl9pbmZvKCZwZGV2LT5kZXYsICJBdG1lbCBQZXJpcGhlcmFsIERNQSBDb250cm9sbGVyIGVuYWJsZWRcbiIpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBwZGNfZHJpdmVyID0gewotCS5wcm9iZQkJPSBwZGNfcHJvYmUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInBkYyIsCi0JfSwKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBkY19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcGRjX2RyaXZlcik7Ci19Ci1hcmNoX2luaXRjYWxsKHBkY19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvYXQzMmFwNzAweC5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXA3MDB4LmMKaW5kZXggMGYyNGI0Zi4uMDdiMjFiMSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXA3MDB4LmMKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXA3MDB4LmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9hdDMyYXA3MDB4Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9wb3J0bXV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvc3JhbS5oPgogCiAjaW5jbHVkZSA8dmlkZW8vYXRtZWxfbGNkYy5oPgogCkBAIC05MywxOSArOTQsMTIgQEAKIAogc3RhdGljIERFRklORV9TUElOTE9DSyhwbV9sb2NrKTsKIAotdW5zaWduZWQgbG9uZyBhdDMyYXA3MDAwX29zY19yYXRlc1szXSA9IHsKLQlbMF0gPSAzMjc2OCwKLQkvKiBGSVhNRTogdGhlc2UgYXJlIEFUU1RLMTAwMi1zcGVjaWZpYyAqLwotCVsxXSA9IDIwMDAwMDAwLAotCVsyXSA9IDEyMDAwMDAwLAotfTsKLQogc3RhdGljIHN0cnVjdCBjbGsgb3NjMDsKIHN0YXRpYyBzdHJ1Y3QgY2xrIG9zYzE7CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG9zY19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCiB7Ci0JcmV0dXJuIGF0MzJhcDcwMDBfb3NjX3JhdGVzW2Nsay0+aW5kZXhdOworCXJldHVybiBhdDMyX2JvYXJkX29zY19yYXRlc1tjbGstPmluZGV4XTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgcGxsX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyBjb250cm9sKQpAQCAtNjgyLDYgKzY3NiwxNCBAQAogCS51c2VycwkJPSAxLAogCS5pbmRleAkJPSAzLAogfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNkcmFtY19jbGsgPSB7CisJLm5hbWUJCT0gInNkcmFtY19jbGsiLAorCS5wYXJlbnQJCT0gJnBiYl9jbGssCisJLm1vZGUJCT0gcGJiX2Nsa19tb2RlLAorCS5nZXRfcmF0ZQk9IHBiYl9jbGtfZ2V0X3JhdGUsCisJLnVzZXJzCQk9IDEsCisJLmluZGV4CQk9IDE0LAorfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzbWMwX3Jlc291cmNlW10gPSB7CiAJUEJNRU0oMHhmZmYwMzQwMCksCkBAIC04NDEsNiArODQzLDgxIEBACiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgUFNJRgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYXRtZWxfcHNpZjBfcmVzb3VyY2VbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnN0YXJ0CT0gMHhmZmUwM2MwMCwKKwkJLmVuZAk9IDB4ZmZlMDNjZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJSVJRKDE4KSwKK307CitzdGF0aWMgc3RydWN0IGNsayBhdG1lbF9wc2lmMF9wY2xrID0geworCS5uYW1lCQk9ICJwY2xrIiwKKwkucGFyZW50CQk9ICZwYmFfY2xrLAorCS5tb2RlCQk9IHBiYV9jbGtfbW9kZSwKKwkuZ2V0X3JhdGUJPSBwYmFfY2xrX2dldF9yYXRlLAorCS5pbmRleAkJPSAxNSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYXRtZWxfcHNpZjFfcmVzb3VyY2VbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnN0YXJ0CT0gMHhmZmUwM2QwMCwKKwkJLmVuZAk9IDB4ZmZlMDNkZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJSVJRKDE4KSwKK307CitzdGF0aWMgc3RydWN0IGNsayBhdG1lbF9wc2lmMV9wY2xrID0geworCS5uYW1lCQk9ICJwY2xrIiwKKwkucGFyZW50CQk9ICZwYmFfY2xrLAorCS5tb2RlCQk9IHBiYV9jbGtfbW9kZSwKKwkuZ2V0X3JhdGUJPSBwYmFfY2xrX2dldF9yYXRlLAorCS5pbmRleAkJPSAxNSwKK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKl9faW5pdCBhdDMyX2FkZF9kZXZpY2VfcHNpZih1bnNpZ25lZCBpbnQgaWQpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKworCWlmICghKGlkID09IDAgfHwgaWQgPT0gMSkpCisJCXJldHVybiBOVUxMOworCisJcGRldiA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygiYXRtZWxfcHNpZiIsIGlkKTsKKwlpZiAoIXBkZXYpCisJCXJldHVybiBOVUxMOworCisJc3dpdGNoIChpZCkgeworCWNhc2UgMDoKKwkJaWYgKHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIGF0bWVsX3BzaWYwX3Jlc291cmNlLAorCQkJCQlBUlJBWV9TSVpFKGF0bWVsX3BzaWYwX3Jlc291cmNlKSkpCisJCQlnb3RvIGVycl9hZGRfcmVzb3VyY2VzOworCQlhdG1lbF9wc2lmMF9wY2xrLmRldiA9ICZwZGV2LT5kZXY7CisJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDgpLCBQRVJJUEhfQSwgMCk7IC8qIENMT0NLICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDkpLCBQRVJJUEhfQSwgMCk7IC8qIERBVEEgICovCisJCWJyZWFrOworCWNhc2UgMToKKwkJaWYgKHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIGF0bWVsX3BzaWYxX3Jlc291cmNlLAorCQkJCQlBUlJBWV9TSVpFKGF0bWVsX3BzaWYxX3Jlc291cmNlKSkpCisJCQlnb3RvIGVycl9hZGRfcmVzb3VyY2VzOworCQlhdG1lbF9wc2lmMV9wY2xrLmRldiA9ICZwZGV2LT5kZXY7CisJCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDExKSwgUEVSSVBIX0EsIDApOyAvKiBDTE9DSyAqLworCQlzZWxlY3RfcGVyaXBoZXJhbChQQigxMiksIFBFUklQSF9BLCAwKTsgLyogREFUQSAgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcGxhdGZvcm1fZGV2aWNlX2FkZChwZGV2KTsKKwlyZXR1cm4gcGRldjsKKworZXJyX2FkZF9yZXNvdXJjZXM6CisJcGxhdGZvcm1fZGV2aWNlX3B1dChwZGV2KTsKKwlyZXR1cm4gTlVMTDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBVU0FSVAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTExMyw3ICsxMTkwLDggQEAKIAlzd2l0Y2ggKGlkKSB7CiAJY2FzZSAwOgogCQlwZGV2ID0gJmF0bWVsX3NwaTBfZGV2aWNlOwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQSgwKSwgIFBFUklQSF9BLCAwKTsJLyogTUlTTwkgKi8KKwkJLyogcHVsbHVwIE1JU08gc28gYSBsZXZlbCBpcyBhbHdheXMgZGVmaW5lZCAqLworCQlzZWxlY3RfcGVyaXBoZXJhbChQQSgwKSwgIFBFUklQSF9BLCBBVDMyX0dQSU9GX1BVTExVUCk7CiAJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDEpLCAgUEVSSVBIX0EsIDApOwkvKiBNT1NJCSAqLwogCQlzZWxlY3RfcGVyaXBoZXJhbChQQSgyKSwgIFBFUklQSF9BLCAwKTsJLyogU0NLCSAqLwogCQlhdDMyX3NwaV9zZXR1cF9zbGF2ZXMoMCwgYiwgbiwgc3BpMF9waW5zKTsKQEAgLTExMjEsNyArMTE5OSw4IEBACiAKIAljYXNlIDE6CiAJCXBkZXYgPSAmYXRtZWxfc3BpMV9kZXZpY2U7Ci0JCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDApLCAgUEVSSVBIX0IsIDApOwkvKiBNSVNPICAqLworCQkvKiBwdWxsdXAgTUlTTyBzbyBhIGxldmVsIGlzIGFsd2F5cyBkZWZpbmVkICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDApLCAgUEVSSVBIX0IsIEFUMzJfR1BJT0ZfUFVMTFVQKTsKIAkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMSksICBQRVJJUEhfQiwgMCk7CS8qIE1PU0kgICovCiAJCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDUpLCAgUEVSSVBIX0IsIDApOwkvKiBTQ0sgICAqLwogCQlhdDMyX3NwaV9zZXR1cF9zbGF2ZXMoMSwgYiwgbiwgc3BpMV9waW5zKTsKQEAgLTEyNjQsNyArMTM0Myw4IEBACiAKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKl9faW5pdAogYXQzMl9hZGRfZGV2aWNlX2xjZGModW5zaWduZWQgaW50IGlkLCBzdHJ1Y3QgYXRtZWxfbGNkZmJfaW5mbyAqZGF0YSwKLQkJICAgICB1bnNpZ25lZCBsb25nIGZibWVtX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGZibWVtX2xlbikKKwkJICAgICB1bnNpZ25lZCBsb25nIGZibWVtX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGZibWVtX2xlbiwKKwkJICAgICB1bnNpZ25lZCBpbnQgcGluX2NvbmZpZykKIHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OwogCXN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvICppbmZvOwpAQCAtMTI5MSwzNyArMTM3MSw3NyBAQAogCXN3aXRjaCAoaWQpIHsKIAljYXNlIDA6CiAJCXBkZXYgPSAmYXRtZWxfbGNkZmIwX2RldmljZTsKLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMTkpLCBQRVJJUEhfQSwgMCk7CS8qIENDCSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjApLCBQRVJJUEhfQSwgMCk7CS8qIEhTWU5DICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMSksIFBFUklQSF9BLCAwKTsJLyogUENMSwkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIyKSwgUEVSSVBIX0EsIDApOwkvKiBWU1lOQyAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjMpLCBQRVJJUEhfQSwgMCk7CS8qIERWQUwJICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNCksIFBFUklQSF9BLCAwKTsJLyogTU9ERQkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI1KSwgUEVSSVBIX0EsIDApOwkvKiBQV1IJICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNiksIFBFUklQSF9BLCAwKTsJLyogREFUQTAgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI3KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjgpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyOSksIFBFUklQSF9BLCAwKTsJLyogREFUQTMgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDMwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBNCAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMzEpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEE1ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgwKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTYgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNyAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMiksICBQRVJJUEhfQSwgMCk7CS8qIERBVEE4ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgzKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDQpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNSksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMSAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg2KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEyICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDcpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTMgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoOCksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExNCAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg5KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE1ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTYgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTEpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExNyAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMiksIFBFUklQSF9BLCAwKTsJLyogREFUQTE4ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEzKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTkgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTQpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMCAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNSksIFBFUklQSF9BLCAwKTsJLyogREFUQTIxICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjIgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTcpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMyAqLworCisJCXN3aXRjaCAocGluX2NvbmZpZykgeworCQljYXNlIDA6CisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygxOSksIFBFUklQSF9BLCAwKTsJLyogQ0MJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjApLCBQRVJJUEhfQSwgMCk7CS8qIEhTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjEpLCBQRVJJUEhfQSwgMCk7CS8qIFBDTEsJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjIpLCBQRVJJUEhfQSwgMCk7CS8qIFZTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjMpLCBQRVJJUEhfQSwgMCk7CS8qIERWQUwJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjQpLCBQRVJJUEhfQSwgMCk7CS8qIE1PREUJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjUpLCBQRVJJUEhfQSwgMCk7CS8qIFBXUgkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNiksIFBFUklQSF9BLCAwKTsJLyogREFUQTAgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTEgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyOCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyOSksIFBFUklQSF9BLCAwKTsJLyogREFUQTMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMCksIFBFUklQSF9BLCAwKTsJLyogREFUQTQgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTUgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgwKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTYgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTcgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgyKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTggICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgzKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg0KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg1KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTExICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg2KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg3KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEzICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg4KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE0ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg5KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE1ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMCksIFBFUklQSF9BLCAwKTsJLyogREFUQTE2ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTE3ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMiksIFBFUklQSF9BLCAwKTsJLyogREFUQTE4ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMyksIFBFUklQSF9BLCAwKTsJLyogREFUQTE5ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNSksIFBFUklQSF9BLCAwKTsJLyogREFUQTIxICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNiksIFBFUklQSF9BLCAwKTsJLyogREFUQTIyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTIzICovCisJCQlicmVhazsKKwkJY2FzZSAxOgorCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMCksICBQRVJJUEhfQiwgMCk7CS8qIENDCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIwKSwgUEVSSVBIX0EsIDApOwkvKiBIU1lOQyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIxKSwgUEVSSVBIX0EsIDApOwkvKiBQQ0xLCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIyKSwgUEVSSVBIX0EsIDApOwkvKiBWU1lOQyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBFKDEpLCAgUEVSSVBIX0IsIDApOwkvKiBEVkFMCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBFKDIpLCAgUEVSSVBIX0IsIDApOwkvKiBNT0RFCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI1KSwgUEVSSVBIX0EsIDApOwkvKiBQV1IJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMyksICBQRVJJUEhfQiwgMCk7CS8qIERBVEEwICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoNCksICBQRVJJUEhfQiwgMCk7CS8qIERBVEExICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoNSksICBQRVJJUEhfQiwgMCk7CS8qIERBVEEyICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoNiksICBQRVJJUEhfQiwgMCk7CS8qIERBVEEzICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoNyksICBQRVJJUEhfQiwgMCk7CS8qIERBVEE0ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMzEpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEE1ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMCksICBQRVJJUEhfQSwgMCk7CS8qIERBVEE2ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMSksICBQRVJJUEhfQSwgMCk7CS8qIERBVEE3ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoOCksICBQRVJJUEhfQiwgMCk7CS8qIERBVEE4ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoOSksICBQRVJJUEhfQiwgMCk7CS8qIERBVEE5ICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTApLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExMCAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTEpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExMSAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTIpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExMiAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNyksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMyAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoOCksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExNCAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoOSksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExNSAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTMpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExNiAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTQpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExNyAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTUpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExOCAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTYpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEExOSAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTcpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEEyMCAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMTgpLCBQRVJJUEhfQiwgMCk7CS8qIERBVEEyMSAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTYpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMiAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTcpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMyAqLworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlnb3RvIGVycl9pbnZhbGlkX2lkOworCQl9CiAKIAkJY2xrX3NldF9wYXJlbnQoJmF0bWVsX2xjZGZiMF9waXhjbGssICZwbGwwKTsKIAkJY2xrX3NldF9yYXRlKCZhdG1lbF9sY2RmYjBfcGl4Y2xrLCBjbGtfZ2V0X3JhdGUoJnBsbDApKTsKQEAgLTEzNjAsNyArMTQ4MCw3IEBACiAJSVJRKDI0KSwKIH07CiBzdGF0aWMgc3RydWN0IGNsayBhdG1lbF9wd20wX21jayA9IHsKLQkubmFtZQkJPSAibWNrIiwKKwkubmFtZQkJPSAicHdtX2NsayIsCiAJLnBhcmVudAkJPSAmcGJiX2NsaywKIAkubW9kZQkJPSBwYmJfY2xrX21vZGUsCiAJLmdldF9yYXRlCT0gcGJiX2Nsa19nZXRfcmF0ZSwKQEAgLTE4ODcsNiArMjAwNyw3IEBACiAJJmhtYXRyaXhfY2xrLAogCSZlYmlfY2xrLAogCSZocmFtY19jbGssCisJJnNkcmFtY19jbGssCiAJJnNtYzBfcGNsaywKIAkmc21jMF9tY2ssCiAJJnBkY19oY2xrLApAQCAtMTkwMCw2ICsyMDIxLDggQEAKIAkmcGlvNF9tY2ssCiAJJmF0MzJfdGNiMF90MF9jbGssCiAJJmF0MzJfdGNiMV90MF9jbGssCisJJmF0bWVsX3BzaWYwX3BjbGssCisJJmF0bWVsX3BzaWYxX3BjbGssCiAJJmF0bWVsX3VzYXJ0MF91c2FydCwKIAkmYXRtZWxfdXNhcnQxX3VzYXJ0LAogCSZhdG1lbF91c2FydDJfdXNhcnQsCkBAIC0xOTM1LDE2ICsyMDU4LDcgQEAKIH07CiB1bnNpZ25lZCBpbnQgYXQzMl9ucl9jbG9ja3MgPSBBUlJBWV9TSVpFKGF0MzJfY2xvY2tfbGlzdCk7CiAKLXZvaWQgX19pbml0IGF0MzJfcG9ydG11eF9pbml0KHZvaWQpCi17Ci0JYXQzMl9pbml0X3BpbygmcGlvMF9kZXZpY2UpOwotCWF0MzJfaW5pdF9waW8oJnBpbzFfZGV2aWNlKTsKLQlhdDMyX2luaXRfcGlvKCZwaW8yX2RldmljZSk7Ci0JYXQzMl9pbml0X3BpbygmcGlvM19kZXZpY2UpOwotCWF0MzJfaW5pdF9waW8oJnBpbzRfZGV2aWNlKTsKLX0KLQotdm9pZCBfX2luaXQgYXQzMl9jbG9ja19pbml0KHZvaWQpCit2b2lkIF9faW5pdCBzZXR1cF9wbGF0Zm9ybSh2b2lkKQogewogCXUzMiBjcHVfbWFzayA9IDAsIGhzYl9tYXNrID0gMCwgcGJhX21hc2sgPSAwLCBwYmJfbWFzayA9IDA7CiAJaW50IGk7CkBAIC0xOTk5LDQgKzIxMTMsMzYgQEAKIAlwbV93cml0ZWwoSFNCX01BU0ssIGhzYl9tYXNrKTsKIAlwbV93cml0ZWwoUEJBX01BU0ssIHBiYV9tYXNrKTsKIAlwbV93cml0ZWwoUEJCX01BU0ssIHBiYl9tYXNrKTsKKworCS8qIEluaXRpYWxpemUgdGhlIHBvcnQgbXV4ZXMgKi8KKwlhdDMyX2luaXRfcGlvKCZwaW8wX2RldmljZSk7CisJYXQzMl9pbml0X3BpbygmcGlvMV9kZXZpY2UpOworCWF0MzJfaW5pdF9waW8oJnBpbzJfZGV2aWNlKTsKKwlhdDMyX2luaXRfcGlvKCZwaW8zX2RldmljZSk7CisJYXQzMl9pbml0X3BpbygmcGlvNF9kZXZpY2UpOwogfQorCitzdHJ1Y3QgZ2VuX3Bvb2wgKnNyYW1fcG9vbDsKKworc3RhdGljIGludCBfX2luaXQgc3JhbV9pbml0KHZvaWQpCit7CisJc3RydWN0IGdlbl9wb29sICpwb29sOworCisJLyogMUtpQiBncmFudWxhcml0eSAqLworCXBvb2wgPSBnZW5fcG9vbF9jcmVhdGUoMTAsIC0xKTsKKwlpZiAoIXBvb2wpCisJCWdvdG8gZmFpbDsKKworCWlmIChnZW5fcG9vbF9hZGQocG9vbCwgMHgyNDAwMDAwMCwgMHg4MDAwLCAtMSkpCisJCWdvdG8gZXJyX3Bvb2xfYWRkOworCisJc3JhbV9wb29sID0gcG9vbDsKKwlyZXR1cm4gMDsKKworZXJyX3Bvb2xfYWRkOgorCWdlbl9wb29sX2Rlc3Ryb3kocG9vbCk7CitmYWlsOgorCXByX2VycigiRmFpbGVkIHRvIGNyZWF0ZSBTUkFNIHBvb2xcbiIpOworCXJldHVybiAtRU5PTUVNOworfQorY29yZV9pbml0Y2FsbChzcmFtX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9pbnRjLmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2ludGMuYwppbmRleCAwOTdjZjRlLi45OTRjNDU0NSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9pbnRjLmMKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9pbnRjLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsIENvcnBvcmF0aW9uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXRtZWwgQ29ycG9yYXRpb24KICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKQEAgLTEyLDE0ICsxMiwyMCBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpbmNsdWRlICJpbnRjLmgiCiAKIHN0cnVjdCBpbnRjIHsKLQl2b2lkIF9faW9tZW0JKnJlZ3M7Ci0Jc3RydWN0IGlycV9jaGlwCWNoaXA7CisJdm9pZCBfX2lvbWVtCQkqcmVnczsKKwlzdHJ1Y3QgaXJxX2NoaXAJCWNoaXA7CisJc3RydWN0IHN5c19kZXZpY2UJc3lzZGV2OworI2lmZGVmIENPTkZJR19QTQorCXVuc2lnbmVkIGxvbmcJCXN1c3BlbmRfaXByOworCXVuc2lnbmVkIGxvbmcJCXNhdmVkX2lwcls2NF07CisjZW5kaWYKIH07CiAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0MzJfaW50YzBfZGV2aWNlOwpAQCAtMTM2LDYgKzE0Miw3NCBAQAogCXBhbmljKCJJbnRlcnJ1cHQgY29udHJvbGxlciBpbml0aWFsaXphdGlvbiBmYWlsZWQhXG4iKTsKIH0KIAorI2lmZGVmIENPTkZJR19QTQordm9pZCBpbnRjX3NldF9zdXNwZW5kX2hhbmRsZXIodW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJaW50YzAuc3VzcGVuZF9pcHIgPSBvZmZzZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW50Y19zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpzZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IGludGMgKmludGMgPSBjb250YWluZXJfb2Yoc2Rldiwgc3RydWN0IGludGMsIHN5c2Rldik7CisJaW50IGk7CisKKwlpZiAodW5saWtlbHkoIWlycXNfZGlzYWJsZWQoKSkpIHsKKwkJcHJfZXJyKCJpbnRjX3N1c3BlbmQ6IGNhbGxlZCB3aXRoIGludGVycnVwdHMgZW5hYmxlZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmICh1bmxpa2VseSghaW50Yy0+c3VzcGVuZF9pcHIpKSB7CisJCXByX2VycigiaW50Y19zdXNwZW5kOiBzdXNwZW5kX2lwciBub3QgaW5pdGlhbGl6ZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykgeworCQlpbnRjLT5zYXZlZF9pcHJbaV0gPSBpbnRjX3JlYWRsKGludGMsIElOVFBSMCArIDQgKiBpKTsKKwkJaW50Y193cml0ZWwoaW50YywgSU5UUFIwICsgNCAqIGksIGludGMtPnN1c3BlbmRfaXByKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbnRjX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqc2RldikKK3sKKwlzdHJ1Y3QgaW50YyAqaW50YyA9IGNvbnRhaW5lcl9vZihzZGV2LCBzdHJ1Y3QgaW50Yywgc3lzZGV2KTsKKwlpbnQgaTsKKworCVdBUk5fT04oIWlycXNfZGlzYWJsZWQoKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykKKwkJaW50Y193cml0ZWwoaW50YywgSU5UUFIwICsgNCAqIGksIGludGMtPnNhdmVkX2lwcltpXSk7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlCisjZGVmaW5lIGludGNfc3VzcGVuZAlOVUxMCisjZGVmaW5lIGludGNfcmVzdW1lCU5VTEwKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBpbnRjX2NsYXNzID0geworCS5uYW1lCQk9ICJpbnRjIiwKKwkuc3VzcGVuZAk9IGludGNfc3VzcGVuZCwKKwkucmVzdW1lCQk9IGludGNfcmVzdW1lLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaW50Y19pbml0X3N5c2Rldih2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmludGNfY2xhc3MpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpbnRjMC5zeXNkZXYuaWQgPSAwOworCWludGMwLnN5c2Rldi5jbHMgPSAmaW50Y19jbGFzczsKKwlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJmludGMwLnN5c2Rldik7CisKKwlyZXR1cm4gcmV0OworfQorZGV2aWNlX2luaXRjYWxsKGludGNfaW5pdF9zeXNkZXYpOworCiB1bnNpZ25lZCBsb25nIGludGNfZ2V0X3BlbmRpbmcodW5zaWduZWQgaW50IGdyb3VwKQogewogCXJldHVybiBpbnRjX3JlYWRsKCZpbnRjMCwgSU5UUkVRMCArIDQgKiBncm91cCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BkYy5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wZGMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDQwYmRhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wZGMuYwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsIENvcnBvcmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCitzdGF0aWMgaW50IF9faW5pdCBwZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgY2xrICpwY2xrLCAqaGNsazsKKworCXBjbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwY2xrIik7CisJaWYgKElTX0VSUihwY2xrKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBwY2xrIGRlZmluZWRcbiIpOworCQlyZXR1cm4gUFRSX0VSUihwY2xrKTsKKwl9CisJaGNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgImhjbGsiKTsKKwlpZiAoSVNfRVJSKGhjbGspKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIGhjbGsgZGVmaW5lZFxuIik7CisJCWNsa19wdXQocGNsayk7CisJCXJldHVybiBQVFJfRVJSKGhjbGspOworCX0KKworCWNsa19lbmFibGUocGNsayk7CisJY2xrX2VuYWJsZShoY2xrKTsKKworCWRldl9pbmZvKCZwZGV2LT5kZXYsICJBdG1lbCBQZXJpcGhlcmFsIERNQSBDb250cm9sbGVyIGVuYWJsZWRcbiIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBwZGNfZHJpdmVyID0geworCS5wcm9iZQkJPSBwZGNfcHJvYmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInBkYyIsCisJfSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHBkY19pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcGRjX2RyaXZlcik7Cit9CithcmNoX2luaXRjYWxsKHBkY19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5jCmluZGV4IDM4YThmYTMuLjYwZGEwM2IgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmMKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uYwpAQCAtMzE4LDYgKzMxOCw4IEBACiAJCWNvbnN0IGNoYXIgKmxhYmVsOwogCiAJCWxhYmVsID0gZ3Bpb2NoaXBfaXNfcmVxdWVzdGVkKGNoaXAsIGkpOworCQlpZiAoIWxhYmVsICYmIChpbXIgJiBtYXNrKSkKKwkJCWxhYmVsID0gIltpcnFdIjsKIAkJaWYgKCFsYWJlbCkKIAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5oIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uaAppbmRleCA3Nzk1MTE2Li45NDg0ZGZjIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5oCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmgKQEAgLTU3LDcgKzU3LDcgQEAKIAogLyogQml0ZmllbGRzIGluIElGRFIgKi8KIAotLyogQml0ZmllbGRzIGluIElTRlIgKi8KKy8qIEJpdGZpZWxkcyBpbiBJRlNSICovCiAKIC8qIEJpdGZpZWxkcyBpbiBTT0RSICovCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0tYXQzMmFwNzAweC5TIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS1hdDMyYXA3MDB4LlMKaW5kZXggOTQ5ZTI0OC4uMGE1M2FkMyAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS1hdDMyYXA3MDB4LlMKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS1hdDMyYXA3MDB4LlMKQEAgLTEyLDYgKzEyLDEyIEBACiAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KIAorI2luY2x1ZGUgInBtLmgiCisjaW5jbHVkZSAic2RyYW1jLmgiCisKKy8qIFNhbWUgYXMgMHhmZmYwMDAwMCBidXQgZml0cyBpbiBhIDIxIGJpdCBzaWduZWQgaW1tZWRpYXRlICovCisjZGVmaW5lIFBNX0JBU0UJLTB4MTAwMDAwCisKIAkuc2VjdGlvbiAuYnNzLCAid2EiLCBAbm9iaXRzCiAJLmdsb2JhbAlkaXNhYmxlX2lkbGVfc2xlZXAKIAkudHlwZQlkaXNhYmxlX2lkbGVfc2xlZXAsIEBvYmplY3QKQEAgLTY0LDMgKzcwLDEwNSBAQAogCXVubWFza19pbnRlcnJ1cHRzCiAJcmV0YWwJcjEyCiAJLnNpemUJY3B1X2lkbGVfc2tpcF9zbGVlcCwgLiAtIGNwdV9pZGxlX3NraXBfc2xlZXAKKworI2lmZGVmIENPTkZJR19QTQorCS5zZWN0aW9uIC5pbml0LnRleHQsICJheCIsIEBwcm9nYml0cworCisJLmdsb2JhbAlwbV9leGNlcHRpb24KKwkudHlwZQlwbV9leGNlcHRpb24sIEBmdW5jdGlvbgorcG1fZXhjZXB0aW9uOgorCS8qCisJICogRXhjZXB0aW9ucyBhcmUgbWFza2VkIHdoZW4gd2Ugc3dpdGNoIHRvIHRoaXMgaGFuZGxlciwgc28KKwkgKiB3ZSdsbCBvbmx5IGdldCAidW5yZWNvdmVyYWJsZSIgZXhjZXB0aW9ucyAob2Zmc2V0IDAuKQorCSAqLworCXN1YglyMTIsIHBjLCAuIC0gLkxwYW5pY19tc2cKKwlsZGRwYwlwYywgLkxwYW5pY19hZGRyCisKKwkuYWxpZ24JMgorLkxwYW5pY19hZGRyOgorCS5sb25nCXBhbmljCisuTHBhbmljX21zZzoKKwkuYXNjaXoJIlVucmVjb3ZlcmFibGUgZXhjZXB0aW9uIGR1cmluZyBzdXNwZW5kXG4iCisJLnNpemUJcG1fZXhjZXB0aW9uLCAuIC0gcG1fZXhjZXB0aW9uCisKKwkuZ2xvYmFsCXBtX2lycTAKKwkudHlwZQlwbV9pcnEwLCBAZnVuY3Rpb24KK3BtX2lycTA6CisJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIGFuZCByZXR1cm4gYWZ0ZXIgdGhlIHNsZWVwIGluc3RydWN0aW9uICovCisJbWZzcglyOSwgU1lTUkVHX1JTUl9JTlQwCisJbXRzcglTWVNSRUdfUkFSX0lOVDAsIHI4CisJc2JyCXI5LCBTWVNSRUdfR01fT0ZGU0VUCisJbXRzcglTWVNSRUdfUlNSX0lOVDAsIHI5CisJcmV0ZQorCisJLyoKKwkgKiB2b2lkIGNwdV9lbnRlcl9zdGFuZGJ5KHVuc2lnbmVkIGxvbmcgc2RyYW1jX2Jhc2UpCisJICoKKwkgKiBFbnRlciBQTV9TVVNQRU5EX1NUQU5EQlkgbW9kZS4gQXQgdGhpcyBwb2ludCwgYWxsIGRyaXZlcnMKKwkgKiBhcmUgc3VzcGVuZGVkIGFuZCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4gSW50ZXJydXB0cworCSAqIG1hcmtlZCBhcyAnd2FrZXVwJyBldmVudCBzb3VyY2VzIG1heSBzdGlsbCBjb21lIGFsb25nIGFuZAorCSAqIGdldCB1cyBvdXQgb2YgaGVyZS4KKwkgKgorCSAqIFRoZSBTRFJBTSB3aWxsIGJlIHB1dCBpbnRvIHNlbGYtcmVmcmVzaCBtb2RlICh3aGljaCBkb2VzCisJICogbm90IHJlcXVpcmUgYSBjbG9jayBmcm9tIHRoZSBDUFUpLCBhbmQgdGhlIENQVSB3aWxsIGJlIHB1dAorCSAqIGludG8gImZyb3plbiIgbW9kZSAoSFNCIGJ1cyBzdG9wcGVkKS4gVGhlIFNEUkFNIGNvbnRyb2xsZXIKKwkgKiB3aWxsIGF1dG9tYXRpY2FsbHkgYnJpbmcgdGhlIFNEUkFNIGludG8gbm9ybWFsIG1vZGUgb24gdGhlCisJICogZmlyc3QgYWNjZXNzLCBhbmQgdGhlIHBvd2VyIG1hbmFnZXIgd2lsbCBhdXRvbWF0aWNhbGx5CisJICogc3RhcnQgdGhlIEhTQiBhbmQgQ1BVIGNsb2NrcyB1cG9uIGEgd2FrZXVwIGV2ZW50LgorCSAqCisJICogVGhpcyBjb2RlIHVzZXMgdGhlIHNhbWUgInNraXAgc2xlZXAiIHRlY2huaXF1ZSBhcyBhYm92ZS4KKwkgKiBJdCBpcyB2ZXJ5IGltcG9ydGFudCB0aGF0IHdlIGp1bXAgZGlyZWN0bHkgdG8KKwkgKiBjcHVfYWZ0ZXJfc2xlZXAgYWZ0ZXIgdGhlIHNsZWVwIGluc3RydWN0aW9uIHNpbmNlIHRoYXQncworCSAqIHdoZXJlIHdlJ2xsIGVuZCB1cCBpZiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgZGVjaWRlcyB0aGF0IHdlCisJICogbmVlZCB0byBza2lwIHRoZSBzbGVlcCBpbnN0cnVjdGlvbi4KKwkgKi8KKwkuZ2xvYmFsCXBtX3N0YW5kYnkKKwkudHlwZQlwbV9zdGFuZGJ5LCBAZnVuY3Rpb24KK3BtX3N0YW5kYnk6CisJLyoKKwkgKiBpbnRlcnJ1cHRzIGFyZSBhbHJlYWR5IG1hc2tlZCBhdCB0aGlzIHBvaW50LCBhbmQgRVZCQQorCSAqIHBvaW50cyB0byBwbV9leGNlcHRpb24gYWJvdmUuCisJICovCisJbGQudwlyMTAsIHIxMltTRFJBTUNfTFBSXQorCXN1YglyOCwgcGMsIC4gLSAxZgkJLyogcmV0dXJuIGFkZHJlc3MgZm9yIGlycSBoYW5kbGVyICovCisJbW92CXIxMSwgU0RSQU1DX0xQUl9MUENCX1NFTEZfUkZSCisJYmZpbnMJcjEwLCByMTEsIDAsIDIJCS8qIExQQ0IgPC0gc2VsZiBSZWZyZXNoICovCisJc3luYwkwCQkJLyogZmx1c2ggd3JpdGUgYnVmZmVyICovCisJc3QudwlyMTJbU0RSQU1DX0xQUl0sIHIxMQkvKiBwdXQgU0RSQU0gaW4gc2VsZi1yZWZyZXNoIG1vZGUgKi8KKwlsZC53CXIxMSwgcjEyW1NEUkFNQ19MUFJdCisJdW5tYXNrX2ludGVycnVwdHMKKwlzbGVlcAlDUFVfU0xFRVBfRlJPWkVOCisxOgltYXNrX2ludGVycnVwdHMKKwlyZXRhbAlyMTIKKwkuc2l6ZQlwbV9zdGFuZGJ5LCAuIC0gcG1fc3RhbmRieQorCisJLmdsb2JhbAlwbV9zdXNwZW5kX3RvX3JhbQorCS50eXBlCXBtX3N1c3BlbmRfdG9fcmFtLCBAZnVuY3Rpb24KK3BtX3N1c3BlbmRfdG9fcmFtOgorCS8qCisJICogaW50ZXJydXB0cyBhcmUgYWxyZWFkeSBtYXNrZWQgYXQgdGhpcyBwb2ludCwgYW5kIEVWQkEKKwkgKiBwb2ludHMgdG8gcG1fZXhjZXB0aW9uIGFib3ZlLgorCSAqLworCW1vdglyMTEsIDAKKwljYWNoZQlyMTFbMl0sIDgJCS8qIGNsZWFuIGFsbCBkY2FjaGUgbGluZXMgKi8KKwlzeW5jCTAJCQkvKiBmbHVzaCB3cml0ZSBidWZmZXIgKi8KKwlsZC53CXIxMCwgcjEyW1NEUkFNQ19MUFJdCisJc3ViCXI4LCBwYywgLiAtIDFmCQkvKiByZXR1cm4gYWRkcmVzcyBmb3IgaXJxIGhhbmRsZXIgKi8KKwltb3YJcjExLCBTRFJBTUNfTFBSX0xQQ0JfU0VMRl9SRlIKKwliZmlucwlyMTAsIHIxMSwgMCwgMgkJLyogTFBDQiA8LSBzZWxmIHJlZnJlc2ggKi8KKwlzdC53CXIxMltTRFJBTUNfTFBSXSwgcjEwCS8qIHB1dCBTRFJBTSBpbiBzZWxmLXJlZnJlc2ggbW9kZSAqLworCWxkLncJcjExLCByMTJbU0RSQU1DX0xQUl0KKworCXVubWFza19pbnRlcnJ1cHRzCisJc2xlZXAJQ1BVX1NMRUVQX1NUT1AKKzE6CW1hc2tfaW50ZXJydXB0cworCisJcmV0YWwJcjEyCisJLnNpemUJcG1fc3VzcGVuZF90b19yYW0sIC4gLSBwbV9zdXNwZW5kX3RvX3JhbQorCisJLmdsb2JhbAlwbV9zcmFtX2VuZAorCS50eXBlCXBtX3NyYW1fZW5kLCBAZnVuY3Rpb24KK3BtX3NyYW1fZW5kOgorCS5zaXplCXBtX3NyYW1fZW5kLCAwCisKKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0uYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjc2NDMyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS5jCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQVZSMzIgQVAgUG93ZXIgTWFuYWdlbWVudAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBdG1lbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisKKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorI2luY2x1ZGUgPGFzbS9zeXNyZWcuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL3BtLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvc3JhbS5oPgorCisvKiBGSVhNRTogVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBBUDcwMDAgKi8KKyNkZWZpbmUgU0RSQU1DX0JBU0UJMHhmZmYwMzgwMAorCisjaW5jbHVkZSAic2RyYW1jLmgiCisKKyNkZWZpbmUgU1JBTV9QQUdFX0ZMQUdTCShTWVNSRUdfQklUKFRMQkVMT19EKSB8IFNZU1JFR19CRihTWiwgMSkJXAorCQkJCXwgU1lTUkVHX0JGKEFQLCAzKSB8IFNZU1JFR19CSVQoRykpCisKKworc3RhdGljIHVuc2lnbmVkIGxvbmcJcG1fc3JhbV9zdGFydDsKK3N0YXRpYyBzaXplX3QJCXBtX3NyYW1fc2l6ZTsKK3N0YXRpYyBzdHJ1Y3Qgdm1fc3RydWN0CSpwbV9zcmFtX2FyZWE7CisKK3N0YXRpYyB2b2lkICgqYXZyMzJfcG1fZW50ZXJfc3RhbmRieSkodW5zaWduZWQgbG9uZyBzZHJhbWNfYmFzZSk7CitzdGF0aWMgdm9pZCAoKmF2cjMyX3BtX2VudGVyX3N0cikodW5zaWduZWQgbG9uZyBzZHJhbWNfYmFzZSk7CisKKy8qCisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQuIEV4Y2VwdGlvbnMgd2lsbCBiZSBtYXNrZWQKKyAqIG9uIHJldHVybiAoaS5lLiBhbGwgZXhjZXB0aW9ucyB3aWxsIGJlICJ1bnJlY292ZXJhYmxlIi4pCisgKi8KK3N0YXRpYyB2b2lkICphdnIzMl9wbV9tYXBfc3JhbSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcJdmFkZHI7CisJdW5zaWduZWQgbG9uZwlwYWdlX2FkZHI7CisJdTMyCQl0bGJlaGk7CisJdTMyCQltbXVjcjsKKworCXZhZGRyID0gKHVuc2lnbmVkIGxvbmcpcG1fc3JhbV9hcmVhLT5hZGRyOworCXBhZ2VfYWRkciA9IHBtX3NyYW1fc3RhcnQgJiBQQUdFX01BU0s7CisKKwkvKgorCSAqIE1hc2sgZXhjZXB0aW9ucyBhbmQgZ3JhYiB0aGUgZmlyc3QgVExCIGVudHJ5LiBXZSB3b24ndCBiZQorCSAqIG5lZWRpbmcgaXQgd2hpbGUgc2xlZXBpbmcuCisJICovCisJYXNtIHZvbGF0aWxlKCJzc3JmCSUwIiA6IDogImkiKFNZU1JFR19FTV9PRkZTRVQpIDogIm1lbW9yeSIpOworCisJbW11Y3IgPSBzeXNyZWdfcmVhZChNTVVDUik7CisJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKKwlzeXNyZWdfd3JpdGUoTU1VQ1IsIFNZU1JFR19CRklOUyhEUlAsIDAsIG1tdWNyKSk7CisKKwl0bGJlaGkgPSBTWVNSRUdfQkYoQVNJRCwgU1lTUkVHX0JGRVhUKEFTSUQsIHRsYmVoaSkpOworCXRsYmVoaSB8PSB2YWRkciAmIFBBR0VfTUFTSzsKKwl0bGJlaGkgfD0gU1lTUkVHX0JJVChUTEJFSElfVik7CisKKwlzeXNyZWdfd3JpdGUoVExCRUxPLCBwYWdlX2FkZHIgfCBTUkFNX1BBR0VfRkxBR1MpOworCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaSk7CisJX19idWlsdGluX3RsYncoKTsKKworCXJldHVybiAodm9pZCAqKSh2YWRkciArIHBtX3NyYW1fc3RhcnQgLSBwYWdlX2FkZHIpOworfQorCisvKgorICogTXVzdCBiZSBjYWxsZWQgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLiBFeGNlcHRpb25zIHdpbGwgYmUKKyAqIHVubWFza2VkIG9uIHJldHVybi4KKyAqLworc3RhdGljIHZvaWQgYXZyMzJfcG1fdW5tYXBfc3JhbSh2b2lkKQoreworCXUzMgltbXVjcjsKKwl1MzIJdGxiZWhpOworCXUzMgl0bGJhcmxvOworCisJLyogR29pbmcgdG8gdXBkYXRlIFRMQiBlbnRyeSBhdCBpbmRleCAwICovCisJbW11Y3IgPSBzeXNyZWdfcmVhZChNTVVDUik7CisJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKKwlzeXNyZWdfd3JpdGUoTU1VQ1IsIFNZU1JFR19CRklOUyhEUlAsIDAsIG1tdWNyKSk7CisKKwkvKiBDbGVhciB0aGUgInZhbGlkIiBiaXQgKi8KKwl0bGJlaGkgPSBTWVNSRUdfQkYoQVNJRCwgU1lTUkVHX0JGRVhUKEFTSUQsIHRsYmVoaSkpOworCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaSk7CisKKwkvKiBNYXJrIGl0IGFzICJub3QgYWNjZXNzZWQiICovCisJdGxiYXJsbyA9IHN5c3JlZ19yZWFkKFRMQkFSTE8pOworCXN5c3JlZ193cml0ZShUTEJBUkxPLCB0bGJhcmxvIHwgMHg4MDAwMDAwMFUpOworCisJLyogVXBkYXRlIHRoZSBUTEIgKi8KKwlfX2J1aWx0aW5fdGxidygpOworCisJLyogVW5tYXNrIGV4Y2VwdGlvbnMgKi8KKwlhc20gdm9sYXRpbGUoImNzcmYJJTAiIDogOiAiaSIoU1lTUkVHX0VNX09GRlNFVCkgOiAibWVtb3J5Iik7Cit9CisKK3N0YXRpYyBpbnQgYXZyMzJfcG1fdmFsaWRfc3RhdGUoc3VzcGVuZF9zdGF0ZV90IHN0YXRlKQoreworCXN3aXRjaCAoc3RhdGUpIHsKKwljYXNlIFBNX1NVU1BFTkRfT046CisJY2FzZSBQTV9TVVNQRU5EX1NUQU5EQlk6CisJY2FzZSBQTV9TVVNQRU5EX01FTToKKwkJcmV0dXJuIDE7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CisKK3N0YXRpYyBpbnQgYXZyMzJfcG1fZW50ZXIoc3VzcGVuZF9zdGF0ZV90IHN0YXRlKQoreworCXUzMgkJbHByX3NhdmVkOworCXUzMgkJZXZiYV9zYXZlZDsKKwl2b2lkCQkqc3JhbTsKKworCXN3aXRjaCAoc3RhdGUpIHsKKwljYXNlIFBNX1NVU1BFTkRfU1RBTkRCWToKKwkJc3JhbSA9IGF2cjMyX3BtX21hcF9zcmFtKCk7CisKKwkJLyogU3dpdGNoIHRvIGluLXNyYW0gZXhjZXB0aW9uIGhhbmRsZXJzICovCisJCWV2YmFfc2F2ZWQgPSBzeXNyZWdfcmVhZChFVkJBKTsKKwkJc3lzcmVnX3dyaXRlKEVWQkEsICh1bnNpZ25lZCBsb25nKXNyYW0pOworCisJCS8qCisJCSAqIFNhdmUgdGhlIExQUiByZWdpc3RlciBzbyB0aGF0IHdlIGNhbiByZS1lbmFibGUKKwkJICogU0RSQU0gTG93IFBvd2VyIG1vZGUgb24gcmVzdW1lLgorCQkgKi8KKwkJbHByX3NhdmVkID0gc2RyYW1jX3JlYWRsKExQUik7CisJCXByX2RlYnVnKCIlczogRW50ZXJpbmcgc3RhbmRieS4uLlxuIiwgX19mdW5jX18pOworCQlhdnIzMl9wbV9lbnRlcl9zdGFuZGJ5KFNEUkFNQ19CQVNFKTsKKwkJc2RyYW1jX3dyaXRlbChMUFIsIGxwcl9zYXZlZCk7CisKKwkJLyogU3dpdGNoIGJhY2sgdG8gcmVndWxhciBleGNlcHRpb24gaGFuZGxlcnMgKi8KKwkJc3lzcmVnX3dyaXRlKEVWQkEsIGV2YmFfc2F2ZWQpOworCisJCWF2cjMyX3BtX3VubWFwX3NyYW0oKTsKKwkJYnJlYWs7CisKKwljYXNlIFBNX1NVU1BFTkRfTUVNOgorCQlzcmFtID0gYXZyMzJfcG1fbWFwX3NyYW0oKTsKKworCQkvKiBTd2l0Y2ggdG8gaW4tc3JhbSBleGNlcHRpb24gaGFuZGxlcnMgKi8KKwkJZXZiYV9zYXZlZCA9IHN5c3JlZ19yZWFkKEVWQkEpOworCQlzeXNyZWdfd3JpdGUoRVZCQSwgKHVuc2lnbmVkIGxvbmcpc3JhbSk7CisKKwkJLyoKKwkJICogU2F2ZSB0aGUgTFBSIHJlZ2lzdGVyIHNvIHRoYXQgd2UgY2FuIHJlLWVuYWJsZQorCQkgKiBTRFJBTSBMb3cgUG93ZXIgbW9kZSBvbiByZXN1bWUuCisJCSAqLworCQlscHJfc2F2ZWQgPSBzZHJhbWNfcmVhZGwoTFBSKTsKKwkJcHJfZGVidWcoIiVzOiBFbnRlcmluZyBzdXNwZW5kLXRvLXJhbS4uLlxuIiwgX19mdW5jX18pOworCQlhdnIzMl9wbV9lbnRlcl9zdHIoU0RSQU1DX0JBU0UpOworCQlzZHJhbWNfd3JpdGVsKExQUiwgbHByX3NhdmVkKTsKKworCQkvKiBTd2l0Y2ggYmFjayB0byByZWd1bGFyIGV4Y2VwdGlvbiBoYW5kbGVycyAqLworCQlzeXNyZWdfd3JpdGUoRVZCQSwgZXZiYV9zYXZlZCk7CisKKwkJYXZyMzJfcG1fdW5tYXBfc3JhbSgpOworCQlicmVhazsKKworCWNhc2UgUE1fU1VTUEVORF9PTjoKKwkJcHJfZGVidWcoIiVzOiBFbnRlcmluZyBpZGxlLi4uXG4iLCBfX2Z1bmNfXyk7CisJCWNwdV9lbnRlcl9pZGxlKCk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJfZGVidWcoIiVzOiBJbnZhbGlkIHN1c3BlbmQgc3RhdGUgJWRcbiIsIF9fZnVuY19fLCBzdGF0ZSk7CisJCWdvdG8gb3V0OworCX0KKworCXByX2RlYnVnKCIlczogd2FrZXVwXG4iLCBfX2Z1bmNfXyk7CisKK291dDoKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9zdXNwZW5kX29wcyBhdnIzMl9wbV9vcHMgPSB7CisJLnZhbGlkCT0gYXZyMzJfcG1fdmFsaWRfc3RhdGUsCisJLmVudGVyCT0gYXZyMzJfcG1fZW50ZXIsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBhdnIzMl9wbV9vZmZzZXQodm9pZCAqc3ltYm9sKQoreworCWV4dGVybiB1OCBwbV9leGNlcHRpb25bXTsKKworCXJldHVybiAodW5zaWduZWQgbG9uZylzeW1ib2wgLSAodW5zaWduZWQgbG9uZylwbV9leGNlcHRpb247Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGF2cjMyX3BtX2luaXQodm9pZCkKK3sKKwlleHRlcm4gdTggcG1fZXhjZXB0aW9uW107CisJZXh0ZXJuIHU4IHBtX2lycTBbXTsKKwlleHRlcm4gdTggcG1fc3RhbmRieVtdOworCWV4dGVybiB1OCBwbV9zdXNwZW5kX3RvX3JhbVtdOworCWV4dGVybiB1OCBwbV9zcmFtX2VuZFtdOworCXZvaWQgKmRzdDsKKworCS8qCisJICogVG8ga2VlcCB0aGluZ3Mgc2ltcGxlLCB3ZSBkZXBlbmQgb24gbm90IG5lZWRpbmcgbW9yZSB0aGFuIGEKKwkgKiBzaW5nbGUgcGFnZS4KKwkgKi8KKwlwbV9zcmFtX3NpemUgPSBhdnIzMl9wbV9vZmZzZXQocG1fc3JhbV9lbmQpOworCWlmIChwbV9zcmFtX3NpemUgPiBQQUdFX1NJWkUpCisJCWdvdG8gZXJyOworCisJcG1fc3JhbV9zdGFydCA9IHNyYW1fYWxsb2MocG1fc3JhbV9zaXplKTsKKwlpZiAoIXBtX3NyYW1fc3RhcnQpCisJCWdvdG8gZXJyX2FsbG9jX3NyYW07CisKKwkvKiBHcmFiIGEgdmlydHVhbCBhcmVhIHdlIGNhbiB1c2UgbGF0ZXIgb24uICovCisJcG1fc3JhbV9hcmVhID0gZ2V0X3ZtX2FyZWEocG1fc3JhbV9zaXplLCBWTV9JT1JFTUFQKTsKKwlpZiAoIXBtX3NyYW1fYXJlYSkKKwkJZ290byBlcnJfdm1fYXJlYTsKKwlwbV9zcmFtX2FyZWEtPnBoeXNfYWRkciA9IHBtX3NyYW1fc3RhcnQ7CisKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCWRzdCA9IGF2cjMyX3BtX21hcF9zcmFtKCk7CisJbWVtY3B5KGRzdCwgcG1fZXhjZXB0aW9uLCBwbV9zcmFtX3NpemUpOworCWZsdXNoX2RjYWNoZV9yZWdpb24oZHN0LCBwbV9zcmFtX3NpemUpOworCWludmFsaWRhdGVfaWNhY2hlX3JlZ2lvbihkc3QsIHBtX3NyYW1fc2l6ZSk7CisJYXZyMzJfcG1fdW5tYXBfc3JhbSgpOworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCWF2cjMyX3BtX2VudGVyX3N0YW5kYnkgPSBkc3QgKyBhdnIzMl9wbV9vZmZzZXQocG1fc3RhbmRieSk7CisJYXZyMzJfcG1fZW50ZXJfc3RyID0gZHN0ICsgYXZyMzJfcG1fb2Zmc2V0KHBtX3N1c3BlbmRfdG9fcmFtKTsKKwlpbnRjX3NldF9zdXNwZW5kX2hhbmRsZXIoYXZyMzJfcG1fb2Zmc2V0KHBtX2lycTApKTsKKworCXN1c3BlbmRfc2V0X29wcygmYXZyMzJfcG1fb3BzKTsKKworCXByaW50aygiQVZSMzIgQVAgUG93ZXIgTWFuYWdlbWVudCBlbmFibGVkXG4iKTsKKworCXJldHVybiAwOworCitlcnJfdm1fYXJlYToKKwlzcmFtX2ZyZWUocG1fc3JhbV9zdGFydCwgcG1fc3JhbV9zaXplKTsKK2Vycl9hbGxvY19zcmFtOgorZXJyOgorCXByX2VycigiQVZSMzIgUG93ZXIgTWFuYWdlbWVudCBpbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOworCXJldHVybiAtRU5PTUVNOworfQorYXJjaF9pbml0Y2FsbChhdnIzMl9wbV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvc2RyYW1jLmggYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3NkcmFtYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ZWVhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3NkcmFtYy5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBSZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgdGhlIEFUMzJBUCBTRFJBTSBDb250cm9sbGVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEF0bWVsIENvcnBvcmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisvKiBSZWdpc3RlciBvZmZzZXRzICovCisjZGVmaW5lIFNEUkFNQ19NUgkJCTB4MDAwMAorI2RlZmluZSBTRFJBTUNfVFIJCQkweDAwMDQKKyNkZWZpbmUgU0RSQU1DX0NSCQkJMHgwMDA4CisjZGVmaW5lIFNEUkFNQ19IU1IJCQkweDAwMGMKKyNkZWZpbmUgU0RSQU1DX0xQUgkJCTB4MDAxMAorI2RlZmluZSBTRFJBTUNfSUVSCQkJMHgwMDE0CisjZGVmaW5lIFNEUkFNQ19JRFIJCQkweDAwMTgKKyNkZWZpbmUgU0RSQU1DX0lNUgkJCTB4MDAxYworI2RlZmluZSBTRFJBTUNfSVNSCQkJMHgwMDIwCisjZGVmaW5lIFNEUkFNQ19NRFIJCQkweDAwMjQKKworLyogTVIgLSBNb2RlIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX05PUk1BTAkJKCAgMCA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfTk9QCQkoICAxIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9CQU5LU19QUkVDSEFSR0UJKCAgMiA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfTE9BRF9NT0RFCSggIDMgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX0FVVE9fUkVGUkVTSAkoICA0IDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9FWFRfTE9BRF9NT0RFCSggIDUgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX1BPV0VSX0RPV04JKCAgNiA8PCAgMCkKKworLyogQ1IgLSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19DUl9OQ184X0JJVFMJCSggIDAgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19DUl9OQ185X0JJVFMJCSggIDEgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19DUl9OQ18xMF9CSVRTCQkoICAyIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfQ1JfTkNfMTFfQklUUwkJKCAgMyA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0NSX05SXzExX0JJVFMJCSggIDAgPDwgIDIpCisjZGVmaW5lIFNEUkFNQ19DUl9OUl8xMl9CSVRTCQkoICAxIDw8ICAyKQorI2RlZmluZSBTRFJBTUNfQ1JfTlJfMTNfQklUUwkJKCAgMiA8PCAgMikKKyNkZWZpbmUgU0RSQU1DX0NSX05CXzJfQkFOS1MJCSggIDAgPDwgIDQpCisjZGVmaW5lIFNEUkFNQ19DUl9OQl80X0JBTktTCQkoICAxIDw8ICA0KQorI2RlZmluZSBTRFJBTUNfQ1JfQ0FTKHgpCQkoKHgpIDw8ICA1KQorI2RlZmluZSBTRFJBTUNfQ1JfREJXXzMyX0JJVFMJCSggIDAgPDwgIDcpCisjZGVmaW5lIFNEUkFNQ19DUl9EQldfMTZfQklUUwkJKCAgMSA8PCAgNykKKyNkZWZpbmUgU0RSQU1DX0NSX1RXUih4KQkJKCh4KSA8PCAgOCkKKyNkZWZpbmUgU0RSQU1DX0NSX1RSQyh4KQkJKCh4KSA8PCAxMikKKyNkZWZpbmUgU0RSQU1DX0NSX1RSUCh4KQkJKCh4KSA8PCAxNikKKyNkZWZpbmUgU0RSQU1DX0NSX1RSQ0QoeCkJCSgoeCkgPDwgMjApCisjZGVmaW5lIFNEUkFNQ19DUl9UUkFTKHgpCQkoKHgpIDw8IDI0KQorI2RlZmluZSBTRFJBTUNfQ1JfVFhTUih4KQkJKCh4KSA8PCAyOCkKKworLyogSFNSIC0gSGlnaCBTcGVlZCBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfSFNSX0RBCQkJKCAgMSA8PCAgMCkKKworLyogTFBSIC0gTG93IFBvd2VyIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19MUFJfTFBDQl9JTkhJQklUCQkoICAwIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTFBSX0xQQ0JfU0VMRl9SRlIJKCAgMSA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9MUENCX1BET1dOCQkoICAyIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTFBSX0xQQ0JfREVFUF9QRE9XTgkoICAzIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTFBSX1BBU1IoeCkJCSgoeCkgPDwgIDQpCisjZGVmaW5lIFNEUkFNQ19MUFJfVENTUih4KQkJKCh4KSA8PCAgOCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9EUyh4KQkJKCh4KSA8PCAxMCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9USU1FT1VUKHgpCQkoKHgpIDw8IDEyKQorCisvKiBJRVIvSURSL0lNUi9JU1IgLSBJbnRlcnJ1cHQgRW5hYmxlL0Rpc2FibGUvTWFzay9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX0lTUl9SRVMJCQkoICAxIDw8ICAwKQorCisvKiBNRFIgLSBNZW1vcnkgRGV2aWNlIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19NRFJfTURfU0RSQU0JCSggIDAgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NRFJfTURfTE9XX1BXUl9TRFJBTQkoICAxIDw8ICAwKQorCisvKiBSZWdpc3RlciBhY2Nlc3MgbWFjcm9zICovCisjZGVmaW5lIHNkcmFtY19yZWFkbChyZWcpIFwKKwlfX3Jhd19yZWFkbCgodm9pZCBfX2lvbWVtIF9fZm9yY2UgKilTRFJBTUNfQkFTRSArIFNEUkFNQ18jI3JlZykKKyNkZWZpbmUgc2RyYW1jX3dyaXRlbChyZWcsIHZhbHVlKSBcCisJX19yYXdfd3JpdGVsKHZhbHVlLCAodm9pZCBfX2lvbWVtIF9fZm9yY2UgKilTRFJBTUNfQkFTRSArIFNEUkFNQ18jI3JlZykKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbW0vaW5pdC5jIGIvYXJjaC9hdnIzMi9tbS9pbml0LmMKaW5kZXggMGU2NGRkYy4uM2Y5MGE4NyAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tbS9pbml0LmMKKysrIGIvYXJjaC9hdnIzMi9tbS9pbml0LmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KQEAgLTIzLDExICsyNCwxNCBAQAogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgogCisjZGVmaW5lIF9fcGFnZV9hbGlnbmVkCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLnBhZ2VfYWxpZ25lZCIpKSkKKwogREVGSU5FX1BFUl9DUFUoc3RydWN0IG1tdV9nYXRoZXIsIG1tdV9nYXRoZXJzKTsKIAotcGdkX3Qgc3dhcHBlcl9wZ19kaXJbUFRSU19QRVJfUEdEXTsKK3BnZF90IHN3YXBwZXJfcGdfZGlyW1BUUlNfUEVSX1BHRF0gX19wYWdlX2FsaWduZWQ7CiAKIHN0cnVjdCBwYWdlICplbXB0eV96ZXJvX3BhZ2U7CitFWFBPUlRfU1lNQk9MKGVtcHR5X3plcm9fcGFnZSk7CiAKIC8qCiAgKiBDYWNoZSBvZiBNTVUgY29udGV4dCBsYXN0IHVzZWQuCkBAIC0xMDYsMTkgKzExMCw5IEBACiAJemVyb19wYWdlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXNfbm9kZShOT0RFX0RBVEEoMCksCiAJCQkJCQkgUEFHRV9TSVpFKTsKIAotCXsKLQkJcGdkX3QgKnBnX2RpcjsKLQkJaW50IGk7Ci0KLQkJcGdfZGlyID0gc3dhcHBlcl9wZ19kaXI7Ci0JCXN5c3JlZ193cml0ZShQVEJSLCAodW5zaWduZWQgbG9uZylwZ19kaXIpOwotCi0JCWZvciAoaSA9IDA7IGkgPCBQVFJTX1BFUl9QR0Q7IGkrKykKLQkJCXBnZF92YWwocGdfZGlyW2ldKSA9IDA7Ci0KLQkJZW5hYmxlX21tdSgpOwotCQlwcmludGsgKCJDUFU6IFBhZ2luZyBlbmFibGVkXG4iKTsKLQl9CisJc3lzcmVnX3dyaXRlKFBUQlIsICh1bnNpZ25lZCBsb25nKXN3YXBwZXJfcGdfZGlyKTsKKwllbmFibGVfbW11KCk7CisJcHJpbnRrICgiQ1BVOiBQYWdpbmcgZW5hYmxlZFxuIik7CiAKIAlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKIAkJcGdfZGF0YV90ICpwZ2RhdCA9IE5PREVfREFUQShuaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tbS90bGIuYyBiL2FyY2gvYXZyMzIvbW0vdGxiLmMKaW5kZXggY2QxMmVkYi4uMDY2NzdiZSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tbS90bGIuYworKysgYi9hcmNoL2F2cjMyL21tL3RsYi5jCkBAIC0xMSwyMSArMTEsMjEgQEAKIAogI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgogCi0jZGVmaW5lIF9UTEJFSElfSQkweDEwMAorLyogVE9ETzogR2V0IHRoZSBjb3JyZWN0IG51bWJlciBmcm9tIHRoZSBDT05GSUcxIHN5c3RlbSByZWdpc3RlciAqLworI2RlZmluZSBOUl9UTEJfRU5UUklFUyAzMgogCi12b2lkIHNob3dfZHRsYl9lbnRyeSh1bnNpZ25lZCBpbnQgaW5kZXgpCitzdGF0aWMgdm9pZCBzaG93X2R0bGJfZW50cnkodW5zaWduZWQgaW50IGluZGV4KQogewotCXVuc2lnbmVkIGludCB0bGJlaGksIHRsYmVoaV9zYXZlLCB0bGJlbG8sIG1tdWNyLCBtbXVjcl9zYXZlOworCXUzMiB0bGJlaGksIHRsYmVoaV9zYXZlLCB0bGJlbG8sIG1tdWNyLCBtbXVjcl9zYXZlOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJbW11Y3Jfc2F2ZSA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKIAl0bGJlaGlfc2F2ZSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7Ci0JbW11Y3IgPSBtbXVjcl9zYXZlICYgMHgxMzsKLQltbXVjciB8PSBpbmRleCA8PCAxNDsKKwltbXVjciA9IFNZU1JFR19CRklOUyhEUlAsIGluZGV4LCBtbXVjcl9zYXZlKTsKIAlzeXNyZWdfd3JpdGUoTU1VQ1IsIG1tdWNyKTsKIAotCWFzbSB2b2xhdGlsZSgidGxiciIgOiA6IDogIm1lbW9yeSIpOworCV9fYnVpbHRpbl90bGJyKCk7CiAJY3B1X3N5bmNfcGlwZWxpbmUoKTsKIAogCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7CkBAIC0zMywxNSArMzMsMTcgQEAKIAogCXByaW50aygiJTJ1OiAlYyAlYyAlMDJ4ICAgJTA1eCAlMDV4ICVvICAlbyAgJWMgJWMgJWMgJWNcbiIsCiAJICAgICAgIGluZGV4LAotCSAgICAgICAodGxiZWhpICYgMHgyMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDEwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVoaSAmIDB4ZmYpLAotCSAgICAgICAodGxiZWhpID4+IDEyKSwgKHRsYmVsbyA+PiAxMiksCi0JICAgICAgICh0bGJlbG8gPj4gNCkgJiA3LCAodGxiZWxvID4+IDIpICYgMywKLQkgICAgICAgKHRsYmVsbyAmIDB4MjAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwODApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDAwMSk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDAyKT8nMSc6JzAnKTsKKwkgICAgICAgU1lTUkVHX0JGRVhUKFRMQkVISV9WLCB0bGJlaGkpID8gJzEnIDogJzAnLAorCSAgICAgICBTWVNSRUdfQkZFWFQoRywgdGxiZWxvKSA/ICcxJyA6ICcwJywKKwkgICAgICAgU1lTUkVHX0JGRVhUKEFTSUQsIHRsYmVoaSksCisJICAgICAgIFNZU1JFR19CRkVYVChWUE4sIHRsYmVoaSkgPj4gMiwKKwkgICAgICAgU1lTUkVHX0JGRVhUKFBGTiwgdGxiZWxvKSA+PiAyLAorCSAgICAgICBTWVNSRUdfQkZFWFQoQVAsIHRsYmVsbyksCisJICAgICAgIFNZU1JFR19CRkVYVChTWiwgdGxiZWxvKSwKKwkgICAgICAgU1lTUkVHX0JGRVhUKFRMQkVMT19DLCB0bGJlbG8pID8gJ0MnIDogJyAnLAorCSAgICAgICBTWVNSRUdfQkZFWFQoQiwgdGxiZWxvKSA/ICdCJyA6ICcgJywKKwkgICAgICAgU1lTUkVHX0JGRVhUKFcsIHRsYmVsbykgPyAnVycgOiAnICcsCisJICAgICAgIFNZU1JFR19CRkVYVChUTEJFTE9fRCwgdGxiZWxvKSA/ICdEJyA6ICcgJyk7CiAKIAlzeXNyZWdfd3JpdGUoTU1VQ1IsIG1tdWNyX3NhdmUpOwogCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaV9zYXZlKTsKQEAgLTU0LDI5ICs1NiwzMyBAQAogCXVuc2lnbmVkIGludCBpOwogCiAJcHJpbnRrKCJJRCAgViBHIEFTSUQgVlBOICAgUEZOICAgQVAgU1ogQyBCIFcgRFxuIik7Ci0JZm9yIChpID0gMDsgaSA8IDMyOyBpKyspCisJZm9yIChpID0gMDsgaSA8IE5SX1RMQl9FTlRSSUVTOyBpKyspCiAJCXNob3dfZHRsYl9lbnRyeShpKTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgbGFzdF9tbXVjcjsKLQotc3RhdGljIGlubGluZSB2b2lkIHNldF9yZXBsYWNlbWVudF9wb2ludGVyKHVuc2lnbmVkIHNoaWZ0KQorc3RhdGljIHZvaWQgdXBkYXRlX2R0bGIodW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCBwdGUpCiB7Ci0JdW5zaWduZWQgbG9uZyBtbXVjciwgbW11Y3Jfc2F2ZTsKKwl1MzIgdGxiZWhpOworCXUzMiBtbXVjcjsKIAotCW1tdWNyID0gbW11Y3Jfc2F2ZSA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKKwkvKgorCSAqIFdlJ3JlIG5vdCBjaGFuZ2luZyB0aGUgQVNJRCBoZXJlLCBzbyBubyBuZWVkIHRvIGZsdXNoIHRoZQorCSAqIHBpcGVsaW5lLgorCSAqLworCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7CisJdGxiZWhpID0gU1lTUkVHX0JGKEFTSUQsIFNZU1JFR19CRkVYVChBU0lELCB0bGJlaGkpKTsKKwl0bGJlaGkgfD0gYWRkcmVzcyAmIE1NVV9WUE5fTUFTSzsKKwl0bGJlaGkgfD0gU1lTUkVHX0JJVChUTEJFSElfVik7CisJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpKTsKIAogCS8qIERvZXMgdGhpcyBtYXBwaW5nIGFscmVhZHkgZXhpc3Q/ICovCi0JX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JCSIJdGxic1xuIgotCQkiCW1mc3IgJTAsICUxIgotCQk6ICI9ciIobW11Y3IpCi0JCTogImkiKFNZU1JFR19NTVVDUikpOworCV9fYnVpbHRpbl90bGJzKCk7CisJbW11Y3IgPSBzeXNyZWdfcmVhZChNTVVDUik7CiAKIAlpZiAobW11Y3IgJiBTWVNSRUdfQklUKE1NVUNSX04pKSB7CiAJCS8qIE5vdCBmb3VuZCAtLSBwaWNrIGEgbm90LXJlY2VudGx5LWFjY2Vzc2VkIGVudHJ5ICovCi0JCXVuc2lnbmVkIGxvbmcgcnA7Ci0JCXVuc2lnbmVkIGxvbmcgdGxiYXIgPSBzeXNyZWdfcmVhZChUTEJBUkxPKTsKKwkJdW5zaWduZWQgaW50IHJwOworCQl1MzIgdGxiYXIgPSBzeXNyZWdfcmVhZChUTEJBUkxPKTsKIAogCQlycCA9IDMyIC0gZmxzKHRsYmFyKTsKIAkJaWYgKHJwID09IDMyKSB7CkBAIC04NCwzMCArOTAsMTQgQEAKIAkJCXN5c3JlZ193cml0ZShUTEJBUkxPLCAtMUwpOwogCQl9CiAKLQkJbW11Y3IgJj0gMHgxMzsKLQkJbW11Y3IgfD0gKHJwIDw8IHNoaWZ0KTsKLQorCQltbXVjciA9IFNZU1JFR19CRklOUyhEUlAsIHJwLCBtbXVjcik7CiAJCXN5c3JlZ193cml0ZShNTVVDUiwgbW11Y3IpOwogCX0KIAotCWxhc3RfbW11Y3IgPSBtbXVjcjsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX2R0bGIodW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCBwdGUsIHVuc2lnbmVkIGxvbmcgYXNpZCkKLXsKLQl1bnNpZ25lZCBsb25nIHZwbjsKLQotCXZwbiA9IChhZGRyZXNzICYgTU1VX1ZQTl9NQVNLKSB8IF9UTEJFSElfVkFMSUQgfCBhc2lkOwotCXN5c3JlZ193cml0ZShUTEJFSEksIHZwbik7Ci0JY3B1X3N5bmNfcGlwZWxpbmUoKTsKLQotCXNldF9yZXBsYWNlbWVudF9wb2ludGVyKDE0KTsKLQogCXN5c3JlZ193cml0ZShUTEJFTE8sIHB0ZV92YWwocHRlKSAmIF9QQUdFX0ZMQUdTX0hBUkRXQVJFX01BU0spOwogCiAJLyogTGV0J3MgZ28gKi8KLQlhc20gdm9sYXRpbGUoIm5vcFxuXHR0bGJ3IiA6IDogOiAibWVtb3J5Iik7Ci0JY3B1X3N5bmNfcGlwZWxpbmUoKTsKKwlfX2J1aWx0aW5fdGxidygpOwogfQogCiB2b2lkIHVwZGF0ZV9tbXVfY2FjaGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCkBAIC0xMjAsMzkgKzExMCw0MCBAQAogCQlyZXR1cm47CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JdXBkYXRlX2R0bGIoYWRkcmVzcywgcHRlLCBnZXRfYXNpZCgpKTsKKwl1cGRhdGVfZHRsYihhZGRyZXNzLCBwdGUpOwogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAotdm9pZCBfX2ZsdXNoX3RsYl9wYWdlKHVuc2lnbmVkIGxvbmcgYXNpZCwgdW5zaWduZWQgbG9uZyBwYWdlKQorc3RhdGljIHZvaWQgX19mbHVzaF90bGJfcGFnZSh1bnNpZ25lZCBsb25nIGFzaWQsIHVuc2lnbmVkIGxvbmcgcGFnZSkKIHsKLQl1bnNpZ25lZCBsb25nIG1tdWNyLCB0bGJlaGk7CisJdTMyIG1tdWNyLCB0bGJlaGk7CiAKLQlwYWdlIHw9IGFzaWQ7Ci0Jc3lzcmVnX3dyaXRlKFRMQkVISSwgcGFnZSk7Ci0JY3B1X3N5bmNfcGlwZWxpbmUoKTsKLQlhc20gdm9sYXRpbGUoInRsYnMiKTsKKwkvKgorCSAqIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgbWFza2luZyBvdXQgbm9uLVBGTiBiaXRzIGluIHBhZ2UKKwkgKiBhbmQgY2hhbmdpbmcgdGhlIGN1cnJlbnQgQVNJRCBpZiBuZWNlc3NhcnkuIFRoaXMgbWVhbnMgdGhhdAorCSAqIHdlIGRvbid0IG5lZWQgdG8gZmx1c2ggdGhlIHBpcGVsaW5lIGFmdGVyIHdyaXRpbmcgVExCRUhJLgorCSAqLworCXRsYmVoaSA9IHBhZ2UgfCBhc2lkOworCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaSk7CisKKwlfX2J1aWx0aW5fdGxicygpOwogCW1tdWNyID0gc3lzcmVnX3JlYWQoTU1VQ1IpOwogCiAJaWYgKCEobW11Y3IgJiBTWVNSRUdfQklUKE1NVUNSX04pKSkgewotCQl1bnNpZ25lZCBsb25nIHRsYmFybG87Ci0JCXVuc2lnbmVkIGxvbmcgZW50cnk7CisJCXVuc2lnbmVkIGludCBlbnRyeTsKKwkJdTMyIHRsYmFybG87CiAKIAkJLyogQ2xlYXIgdGhlICJ2YWxpZCIgYml0ICovCi0JCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7Ci0JCXRsYmVoaSAmPSB+X1RMQkVISV9WQUxJRDsKIAkJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpKTsKLQkJY3B1X3N5bmNfcGlwZWxpbmUoKTsKIAogCQkvKiBtYXJrIHRoZSBlbnRyeSBhcyAibm90IGFjY2Vzc2VkIiAqLwotCQllbnRyeSA9IChtbXVjciA+PiAxNCkgJiAweDNmOworCQllbnRyeSA9IFNZU1JFR19CRkVYVChEUlAsIG1tdWNyKTsKIAkJdGxiYXJsbyA9IHN5c3JlZ19yZWFkKFRMQkFSTE8pOwotCQl0bGJhcmxvIHw9ICgweDgwMDAwMDAwID4+IGVudHJ5KTsKKwkJdGxiYXJsbyB8PSAoMHg4MDAwMDAwMFVMID4+IGVudHJ5KTsKIAkJc3lzcmVnX3dyaXRlKFRMQkFSTE8sIHRsYmFybG8pOwogCiAJCS8qIHVwZGF0ZSB0aGUgZW50cnkgd2l0aCB2YWxpZCBiaXQgY2xlYXIgKi8KLQkJYXNtIHZvbGF0aWxlKCJ0bGJ3Iik7Ci0JCWNwdV9zeW5jX3BpcGVsaW5lKCk7CisJCV9fYnVpbHRpbl90bGJ3KCk7CiAJfQogfQogCkBAIC0xOTAsMTcgKzE4MSwyMiBAQAogCiAJCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAkJc2l6ZSA9IChlbmQgLSBzdGFydCArIChQQUdFX1NJWkUgLSAxKSkgPj4gUEFHRV9TSElGVDsKKwogCQlpZiAoc2l6ZSA+IChNTVVfRFRMQl9FTlRSSUVTIC8gNCkpIHsgLyogVG9vIG1hbnkgZW50cmllcyB0byBmbHVzaCAqLwogCQkJbW0tPmNvbnRleHQgPSBOT19DT05URVhUOwogCQkJaWYgKG1tID09IGN1cnJlbnQtPm1tKQogCQkJCWFjdGl2YXRlX2NvbnRleHQobW0pOwogCQl9IGVsc2UgewotCQkJdW5zaWduZWQgbG9uZyBhc2lkID0gbW0tPmNvbnRleHQgJiBNTVVfQ09OVEVYVF9BU0lEX01BU0s7Ci0JCQl1bnNpZ25lZCBsb25nIHNhdmVkX2FzaWQgPSBNTVVfTk9fQVNJRDsKKwkJCXVuc2lnbmVkIGxvbmcgYXNpZDsKKwkJCXVuc2lnbmVkIGxvbmcgc2F2ZWRfYXNpZDsKKworCQkJYXNpZCA9IG1tLT5jb250ZXh0ICYgTU1VX0NPTlRFWFRfQVNJRF9NQVNLOworCQkJc2F2ZWRfYXNpZCA9IE1NVV9OT19BU0lEOwogCiAJCQlzdGFydCAmPSBQQUdFX01BU0s7CiAJCQllbmQgKz0gKFBBR0VfU0laRSAtIDEpOwogCQkJZW5kICY9IFBBR0VfTUFTSzsKKwogCQkJaWYgKG1tICE9IGN1cnJlbnQtPm1tKSB7CiAJCQkJc2F2ZWRfYXNpZCA9IGdldF9hc2lkKCk7CiAJCQkJc2V0X2FzaWQoYXNpZCk7CkBAIC0yMTgsMzMgKzIxNCwzNCBAQAogfQogCiAvKgotICogVE9ETzogSWYgdGhpcyBpcyBvbmx5IGNhbGxlZCBmb3IgYWRkcmVzc2VzID4gVEFTS19TSVpFLCB3ZSBjYW4gcHJvYmFibHkKLSAqIHNraXAgdGhlIEFTSUQgc3R1ZmYgYW5kIGp1c3QgdXNlIHRoZSBHbG9iYWwgYml0Li4uCisgKiBUaGlzIGZ1bmN0aW9uIGRlcGVuZHMgb24gdGhlIHBhZ2VzIHRvIGJlIGZsdXNoZWQgaGF2aW5nIHRoZSBHCisgKiAoZ2xvYmFsKSBiaXQgc2V0IGluIHRoZWlyIHB0ZS4gVGhpcyBpcyB0cnVlIGZvciBhbGwKKyAqIFBBR0VfS0VSTkVMKF9STykgcGFnZXMuCiAgKi8KIHZvaWQgZmx1c2hfdGxiX2tlcm5lbF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBzaXplOwogCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCXNpemUgPSAoZW5kIC0gc3RhcnQgKyAoUEFHRV9TSVpFIC0gMSkpID4+IFBBR0VfU0hJRlQ7CiAJaWYgKHNpemUgPiAoTU1VX0RUTEJfRU5UUklFUyAvIDQpKSB7IC8qIFRvbyBtYW55IGVudHJpZXMgdG8gZmx1c2ggKi8KIAkJZmx1c2hfdGxiX2FsbCgpOwogCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGxvbmcgYXNpZCA9IGluaXRfbW0uY29udGV4dCAmIE1NVV9DT05URVhUX0FTSURfTUFTSzsKLQkJdW5zaWduZWQgbG9uZyBzYXZlZF9hc2lkID0gZ2V0X2FzaWQoKTsKKwkJdW5zaWduZWQgbG9uZyBhc2lkOworCisJCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkJYXNpZCA9IGdldF9hc2lkKCk7CiAKIAkJc3RhcnQgJj0gUEFHRV9NQVNLOwogCQllbmQgKz0gKFBBR0VfU0laRSAtIDEpOwogCQllbmQgJj0gUEFHRV9NQVNLOwotCQlzZXRfYXNpZChhc2lkKTsKKwogCQl3aGlsZSAoc3RhcnQgPCBlbmQpIHsKIAkJCV9fZmx1c2hfdGxiX3BhZ2UoYXNpZCwgc3RhcnQpOwogCQkJc3RhcnQgKz0gUEFHRV9TSVpFOwogCQl9Ci0JCXNldF9hc2lkKHNhdmVkX2FzaWQpOworCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiAJfQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAogdm9pZCBmbHVzaF90bGJfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0pCkBAIC0yODAsNyArMjc3LDcgQEAKIHsKIAlzdGF0aWMgdW5zaWduZWQgbG9uZyB0bGJfaW5kZXg7CiAKLQlpZiAoKnBvcyA+PSAzMikKKwlpZiAoKnBvcyA+PSBOUl9UTEJfRU5UUklFUykKIAkJcmV0dXJuIE5VTEw7CiAKIAl0bGJfaW5kZXggPSAwOwpAQCAtMjkxLDcgKzI4OCw3IEBACiB7CiAJdW5zaWduZWQgbG9uZyAqaW5kZXggPSB2OwogCi0JaWYgKCppbmRleCA+PSAzMSkKKwlpZiAoKmluZGV4ID49IE5SX1RMQl9FTlRSSUVTIC0gMSkKIAkJcmV0dXJuIE5VTEw7CiAKIAkrKypwb3M7CkBAIC0zMTMsMTYgKzMxMCwxNiBAQAogCWlmICgqaW5kZXggPT0gMCkKIAkJc2VxX3B1dHModGxiLCAiSUQgIFYgRyBBU0lEIFZQTiAgIFBGTiAgIEFQIFNaIEMgQiBXIERcbiIpOwogCi0JQlVHX09OKCppbmRleCA+PSAzMik7CisJQlVHX09OKCppbmRleCA+PSBOUl9UTEJfRU5UUklFUyk7CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJbW11Y3Jfc2F2ZSA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKIAl0bGJlaGlfc2F2ZSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7Ci0JbW11Y3IgPSBtbXVjcl9zYXZlICYgMHgxMzsKLQltbXVjciB8PSAqaW5kZXggPDwgMTQ7CisJbW11Y3IgPSBTWVNSRUdfQkZJTlMoRFJQLCAqaW5kZXgsIG1tdWNyX3NhdmUpOwogCXN5c3JlZ193cml0ZShNTVVDUiwgbW11Y3IpOwogCi0JYXNtIHZvbGF0aWxlKCJ0bGJyIiA6IDogOiAibWVtb3J5Iik7CisJLyogVExCUiBtaWdodCBjaGFuZ2UgdGhlIEFTSUQgKi8KKwlfX2J1aWx0aW5fdGxicigpOwogCWNwdV9zeW5jX3BpcGVsaW5lKCk7CiAKIAl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOwpAQCAtMzM0LDE2ICszMzEsMTggQEAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiAKIAlzZXFfcHJpbnRmKHRsYiwgIiUybHU6ICVjICVjICUwMnggICAlMDV4ICUwNXggJW8gICVvICAlYyAlYyAlYyAlY1xuIiwKLQkgICAgICAgKmluZGV4LAotCSAgICAgICAodGxiZWhpICYgMHgyMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDEwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVoaSAmIDB4ZmYpLAotCSAgICAgICAodGxiZWhpID4+IDEyKSwgKHRsYmVsbyA+PiAxMiksCi0JICAgICAgICh0bGJlbG8gPj4gNCkgJiA3LCAodGxiZWxvID4+IDIpICYgMywKLQkgICAgICAgKHRsYmVsbyAmIDB4MjAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwODApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDAwMSk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDAyKT8nMSc6JzAnKTsKKwkJICAgKmluZGV4LAorCQkgICBTWVNSRUdfQkZFWFQoVExCRUhJX1YsIHRsYmVoaSkgPyAnMScgOiAnMCcsCisJCSAgIFNZU1JFR19CRkVYVChHLCB0bGJlbG8pID8gJzEnIDogJzAnLAorCQkgICBTWVNSRUdfQkZFWFQoQVNJRCwgdGxiZWhpKSwKKwkJICAgU1lTUkVHX0JGRVhUKFZQTiwgdGxiZWhpKSA+PiAyLAorCQkgICBTWVNSRUdfQkZFWFQoUEZOLCB0bGJlbG8pID4+IDIsCisJCSAgIFNZU1JFR19CRkVYVChBUCwgdGxiZWxvKSwKKwkJICAgU1lTUkVHX0JGRVhUKFNaLCB0bGJlbG8pLAorCQkgICBTWVNSRUdfQkZFWFQoVExCRUxPX0MsIHRsYmVsbykgPyAnMScgOiAnMCcsCisJCSAgIFNZU1JFR19CRkVYVChCLCB0bGJlbG8pID8gJzEnIDogJzAnLAorCQkgICBTWVNSRUdfQkZFWFQoVywgdGxiZWxvKSA/ICcxJyA6ICcwJywKKwkJICAgU1lTUkVHX0JGRVhUKFRMQkVMT19ELCB0bGJlbG8pID8gJzEnIDogJzAnKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvY3BsYi1ub21wdS9jcGxiaW5pdC5jIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvY3BsYi1ub21wdS9jcGxiaW5pdC5jCmluZGV4IDkxNzMyNWIuLjZiZTBjNTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4va2VybmVsL2NwbGItbm9tcHUvY3BsYmluaXQuYworKysgYi9hcmNoL2JsYWNrZmluL2tlcm5lbC9jcGxiLW5vbXB1L2NwbGJpbml0LmMKQEAgLTI1NCw3ICsyNTQsOCBAQAogfQogCiAvKiBoZWxwZXIgZnVuY3Rpb24gKi8KLXN0YXRpYyB2b2lkIF9fZmlsbF9jb2RlX2NwbGJ0YWIoc3RydWN0IGNwbGJfdGFiICp0LCBpbnQgaSwgdTMyIGFfc3RhcnQsIHUzMiBhX2VuZCkKK3N0YXRpYyB2b2lkIF9faW5pdAorX19maWxsX2NvZGVfY3BsYnRhYihzdHJ1Y3QgY3BsYl90YWIgKnQsIGludCBpLCB1MzIgYV9zdGFydCwgdTMyIGFfZW5kKQogewogCWlmIChjcGxiX2RhdGFbaV0ucHNpemUpIHsKIAkJZmlsbF9jcGxidGFiKHQsCkBAIC0yOTEsNyArMjkyLDggQEAKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIF9fZmlsbF9kYXRhX2NwbGJ0YWIoc3RydWN0IGNwbGJfdGFiICp0LCBpbnQgaSwgdTMyIGFfc3RhcnQsIHUzMiBhX2VuZCkKK3N0YXRpYyB2b2lkIF9faW5pdAorX19maWxsX2RhdGFfY3BsYnRhYihzdHJ1Y3QgY3BsYl90YWIgKnQsIGludCBpLCB1MzIgYV9zdGFydCwgdTMyIGFfZW5kKQogewogCWlmIChjcGxiX2RhdGFbaV0ucHNpemUpIHsKIAkJZmlsbF9jcGxidGFiKHQsCmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL2tlcm5lbC9pcnFjaGlwLmMgYi9hcmNoL2JsYWNrZmluL2tlcm5lbC9pcnFjaGlwLmMKaW5kZXggNzM2NDdjMS4uMDc0MDJmNSAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvaXJxY2hpcC5jCisrKyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2lycWNoaXAuYwpAQCAtNjAsOSArNjAsMTQgQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2Rlc2MgYmFkX2lycV9kZXNjID0geworCS5zdGF0dXMgPSBJUlFfRElTQUJMRUQsCiAJLmNoaXAgPSAmYmFkX2NoaXAsCiAJLmhhbmRsZV9pcnEgPSBoYW5kbGVfYmFkX2lycSwKIAkuZGVwdGggPSAxLAorCS5sb2NrID0gX19TUElOX0xPQ0tfVU5MT0NLRUQoaXJxX2Rlc2MtPmxvY2spLAorI2lmZGVmIENPTkZJR19TTVAKKwkuYWZmaW5pdHkgPSBDUFVfTUFTS19BTEwKKyNlbmRpZgogfTsKIAogaW50IHNob3dfaW50ZXJydXB0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQgKnYpCmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL2tlcm5lbC90cmFwcy5jIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvdHJhcHMuYwppbmRleCA3YmZiZDk1Li5mMDYxZjUxIDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL2tlcm5lbC90cmFwcy5jCisrKyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL3RyYXBzLmMKQEAgLTY3LDcgKzY3LDcgQEAKIAlDU1lOQygpOwogfQogCi12b2lkICpzYXZlZF9pY3BsYl9mYXVsdF9hZGRyLCAqc2F2ZWRfZGNwbGJfZmF1bHRfYWRkcjsKK3Vuc2lnbmVkIGxvbmcgc2F2ZWRfaWNwbGJfZmF1bHRfYWRkciwgc2F2ZWRfZGNwbGJfZmF1bHRfYWRkcjsKIAogaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDQ4OwogCkBAIC0zNjYsNyArMzY2LDcgQEAKIAkJaW5mby5zaV9jb2RlID0gSUxMX0NQTEJfTVVMSElUOwogCQlzaWcgPSBTSUdTRUdWOwogI2lmZGVmIENPTkZJR19ERUJVR19IVU5UX0ZPUl9aRVJPCi0JCWlmIChzYXZlZF9kY3BsYl9mYXVsdF9hZGRyIDwgKHZvaWQgKilGSVhFRF9DT0RFX1NUQVJUKQorCQlpZiAoc2F2ZWRfZGNwbGJfZmF1bHRfYWRkciA8IEZJWEVEX0NPREVfU1RBUlQpCiAJCQlwcmludGsoS0VSTl9OT1RJQ0UgIk5VTEwgcG9pbnRlciBhY2Nlc3NcbiIpOwogCQllbHNlCiAjZW5kaWYKQEAgLTQyMSw3ICs0MjEsNyBAQAogCQlpbmZvLnNpX2NvZGUgPSBJTExfQ1BMQl9NVUxISVQ7CiAJCXNpZyA9IFNJR1NFR1Y7CiAjaWZkZWYgQ09ORklHX0RFQlVHX0hVTlRfRk9SX1pFUk8KLQkJaWYgKHNhdmVkX2ljcGxiX2ZhdWx0X2FkZHIgPCAodm9pZCAqKUZJWEVEX0NPREVfU1RBUlQpCisJCWlmIChzYXZlZF9pY3BsYl9mYXVsdF9hZGRyIDwgRklYRURfQ09ERV9TVEFSVCkKIAkJCXByaW50ayhLRVJOX05PVElDRSAiSnVtcCB0byBOVUxMIGFkZHJlc3NcbiIpOwogCQllbHNlCiAjZW5kaWYKQEAgLTkzOSw4ICs5MzksNiBAQAogCiAJb29wc19pbl9wcm9ncmVzcyA9IDE7CiAKLQlwcmludGsoS0VSTl9FTUVSRyAiRENQTEJfRkFVTFRfQUREUj0lcFxuIiwgc2F2ZWRfZGNwbGJfZmF1bHRfYWRkcik7Ci0JcHJpbnRrKEtFUk5fRU1FUkcgIklDUExCX0ZBVUxUX0FERFI9JXBcbiIsIHNhdmVkX2ljcGxiX2ZhdWx0X2FkZHIpOwogCWR1bXBfYmZpbl9wcm9jZXNzKGZwKTsKIAlkdW1wX2JmaW5fbWVtKGZwKTsKIAlzaG93X3JlZ3MoZnApOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTI3L2JvYXJkcy9lemtpdC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTI3L2JvYXJkcy9lemtpdC5jCmluZGV4IGZhNGY0ZTguLjU5NThlZWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUyNy9ib2FyZHMvZXpraXQuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MjcvYm9hcmRzL2V6a2l0LmMKQEAgLTQ1MSw5ICs0NTEsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KLQogI2lmIGRlZmluZWQoQ09ORklHX01URF9NMjVQODApIFwKIAl8fCBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwX01PRFVMRSkKIHN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBiZmluX3NwaV9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CkBAIC02NzYsNiArNjczLDcgQEAKICNlbmRpZgogfTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAvKiBTUEkgY29udHJvbGxlciBkYXRhICovCiBzdGF0aWMgc3RydWN0IGJmaW41eHhfc3BpX21hc3RlciBiZmluX3NwaTBfaW5mbyA9IHsKIAkubnVtX2NoaXBzZWxlY3QgPSA4LApAQCAtMTAxOCwxMCArMTAxNiw3IEBACiAjZW5kaWYKIAogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHN0YW1wX2RldmljZXMsIEFSUkFZX1NJWkUoc3RhbXBfZGV2aWNlcykpOwotI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCi0Jc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmZpbl9zcGlfYm9hcmRfaW5mbywKLQkJCQlBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKLSNlbmRpZgorCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sIEFSUkFZX1NJWkUoYmZpbl9zcGlfYm9hcmRfaW5mbykpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfUEFUQV9QTEFURk9STSkgfHwgZGVmaW5lZChDT05GSUdfUEFUQV9QTEFURk9STV9NT0RVTEUpCiAJaXJxX2Rlc2NbUEFUQV9JTlRdLnN0YXR1cyB8PSBJUlFfTk9BVVRPRU47CmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzMvYm9hcmRzL2V6a2l0LmMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzMvYm9hcmRzL2V6a2l0LmMKaW5kZXggOWQyODQxNS4uMDc5Mzg5YyAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTMzL2JvYXJkcy9lemtpdC5jCisrKyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvZXpraXQuYwpAQCAtODcsOSArODcsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KLQogI2lmIGRlZmluZWQoQ09ORklHX01URF9NMjVQODApIHx8IGRlZmluZWQoQ09ORklHX01URF9NMjVQODBfTU9EVUxFKQogc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGJmaW5fc3BpX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKIAl7CkBAIC0xODksNiArMTg2LDcgQEAKICNlbmRpZgogfTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAvKiBTUEkgKDApICovCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGJmaW5fc3BpMF9yZXNvdXJjZVtdID0gewogCVswXSA9IHsKQEAgLTQyNSw5ICs0MjMsNyBAQAogewogCXByaW50ayhLRVJOX0lORk8gIiVzKCk6IHJlZ2lzdGVyaW5nIGRldmljZSByZXNvdXJjZXNcbiIsIF9fZnVuY19fKTsKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhlemtpdF9kZXZpY2VzLCBBUlJBWV9TSVpFKGV6a2l0X2RldmljZXMpKTsKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQogCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sIEFSUkFZX1NJWkUoYmZpbl9zcGlfYm9hcmRfaW5mbykpOwotI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNKSB8fCBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNX01PRFVMRSkKIAlpcnFfZGVzY1tQQVRBX0lOVF0uc3RhdHVzIHw9IElSUV9OT0FVVE9FTjsKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvc3RhbXAuYyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvc3RhbXAuYwppbmRleCBlYzA1YjIzLi4xM2FlNDk1IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzMvYm9hcmRzL3N0YW1wLmMKKysrIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTMzL2JvYXJkcy9zdGFtcC5jCkBAIC0xNjEsOSArMTYxLDYgQEAKIH07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCi0vKiBhbGwgU1BJIHBlcmlwaGVyYWxzIGluZm8gZ29lcyBoZXJlICovCi0KICNpZiBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwKSB8fCBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwX01PRFVMRSkKIHN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBiZmluX3NwaV9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CiAJewpAQCAtMzIwLDYgKzMxNyw3IEBACiAjZW5kaWYKIH07CiAKKyNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQogLyogU1BJICgwKSAqLwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiZmluX3NwaTBfcmVzb3VyY2VbXSA9IHsKIAlbMF0gPSB7CkBAIC02MjYsMTAgKzYyNCw4IEBACiAJU1NZTkMoKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLQlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLAotCQkJCUFSUkFZX1NJWkUoYmZpbl9zcGlfYm9hcmRfaW5mbykpOwotI2VuZGlmCisJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmZpbl9zcGlfYm9hcmRfaW5mbywgQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7CisKICNpZiBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNKSB8fCBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNX01PRFVMRSkKIAlpcnFfZGVzY1tQQVRBX0lOVF0uc3RhdHVzIHw9IElSUV9OT0FVVE9FTjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTM3L2JvYXJkcy9zdGFtcC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTM3L2JvYXJkcy9zdGFtcC5jCmluZGV4IDlhNzU2ZDEuLjY3MWY5ZDYgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzNy9ib2FyZHMvc3RhbXAuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzcvYm9hcmRzL3N0YW1wLmMKQEAgLTQwMCw5ICs0MDAsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KLQogI2lmIGRlZmluZWQoQ09ORklHX01URF9NMjVQODApIFwKIAl8fCBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwX01PRFVMRSkKIHN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBiZmluX3NwaV9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CkBAIC02MjksNiArNjI2LDcgQEAKICNlbmRpZgogfTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAvKiBTUEkgY29udHJvbGxlciBkYXRhICovCiBzdGF0aWMgc3RydWN0IGJmaW41eHhfc3BpX21hc3RlciBiZmluX3NwaTBfaW5mbyA9IHsKIAkubnVtX2NoaXBzZWxlY3QgPSA4LApAQCAtOTM5LDEwICs5MzcsNyBAQAogI2VuZGlmCiAKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhzdGFtcF9kZXZpY2VzLCBBUlJBWV9TSVpFKHN0YW1wX2RldmljZXMpKTsKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sCi0JCQkJQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9lemtpdC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9lemtpdC5jCmluZGV4IGQxNjgyYmIuLmFmN2MyMTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvZXpraXQuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL2V6a2l0LmMKQEAgLTQxMiw4ICs0MTIsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwKSBcCiAJfHwgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MF9NT0RVTEUpCiAvKiBTUEkgZmxhc2ggY2hpcCAobTI1cDE2KSAqLwpAQCAtNDgxLDcgKzQ3OSw3IEBACiB9OwogI2VuZGlmCiAKLXN0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gYmY1NHhfc3BpX2JvYXJkX2luZm9bXSBfX2luaXRkYXRhID0geworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBiZmluX3NwaV9ib2FyZF9pbmZvW10gX19pbml0ZGF0YSA9IHsKICNpZiBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwKSBcCiAJfHwgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MF9NT0RVTEUpCiAJewpAQCAtNTI3LDYgKzUyNSw3IEBACiAjZW5kaWYKIH07CiAKKyNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQogLyogU1BJICgwKSAqLwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiZmluX3NwaTBfcmVzb3VyY2VbXSA9IHsKIAlbMF0gPSB7CkBAIC04MDAsMTAgKzc5OSw3IEBACiAKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhlemtpdF9kZXZpY2VzLCBBUlJBWV9TSVpFKGV6a2l0X2RldmljZXMpKTsKIAotI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCi0Jc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmY1NHhfc3BpX2JvYXJkX2luZm8sCi0JCQlBUlJBWV9TSVpFKGJmNTR4X3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2JvYXJkcy9lemtpdC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2JvYXJkcy9lemtpdC5jCmluZGV4IDYxZDhmNzYuLmJjNmZlZGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU2MS9ib2FyZHMvZXpraXQuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvYm9hcmRzL2V6a2l0LmMKQEAgLTI4MCw3ICsyODAsNiBAQAogfTsKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1NQSV9CRklOCiAjaWYgZGVmaW5lZChDT05GSUdfU05EX0JMQUNLRklOX0FEMTgzNikgXAogCXx8IGRlZmluZWQoQ09ORklHX1NORF9CTEFDS0ZJTl9BRDE4MzZfTU9EVUxFKQogc3RhdGljIHN0cnVjdCBiZmluNXh4X3NwaV9jaGlwIGFkMTgzNl9zcGlfY2hpcF9pbmZvID0gewpAQCAtMjk1LDggKzI5NCw4IEBACiAJLmJpdHNfcGVyX3dvcmQgPSA4LAogfTsKICNlbmRpZgotI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQogLyogU1BJICgwKSAqLwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiZmluX3NwaTBfcmVzb3VyY2VbXSA9IHsKIAlbMF0gPSB7CkBAIC0zMjcsNiArMzI2LDcgQEAKIAkJLnBsYXRmb3JtX2RhdGEgPSAmYmZpbl9zcGkwX2luZm8sIC8qIFBhc3NlZCB0byBkcml2ZXIgKi8KIAl9LAogfTsKKyNlbmRpZgogCiBzdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGJmaW5fc3BpX2JvYXJkX2luZm9bXSBfX2luaXRkYXRhID0gewogI2lmIGRlZmluZWQoQ09ORklHX1NORF9CTEFDS0ZJTl9BRDE4MzYpIFwKQEAgLTUzNywxMCArNTM3LDcgQEAKIAlTU1lOQygpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sCi0JCQkJQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2NvcmViLmMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYwppbmRleCAxYjQ0ZTllLi44NTk4MDk4IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYwpAQCAtMTk0LDYgKzE5NCw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAorLyogTm8gQktMIG5lZWRlZCBoZXJlICovCiBzdGF0aWMgaW50IGNvcmViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJc3Bpbl9sb2NrX2lycSgmY29yZWJfbG9jayk7CmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9lZXByb20uYyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCmluZGV4IGYxY2FjOWQuLjFmMmFlOTAgMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlICJpMmMuaCIKQEAgLTM3NSwxMCArMzc2LDkgQEAKIH0KIAogLyogT3BlbnMgdGhlIGRldmljZS4gKi8KLQogc3RhdGljIGludCBlZXByb21fb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogewotCisgIGN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAgIGlmKGltaW5vcihpbm9kZSkgIT0gRUVQUk9NX01JTk9SX05SKQogICAgICByZXR1cm4gLUVOWElPOwogICBpZihpbWFqb3IoaW5vZGUpICE9IEVFUFJPTV9NQUpPUl9OUikKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2dwaW8uYyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2dwaW8uYwppbmRleCA2OGE5OThiLi44NjA0OGU2IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9ncGlvLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvZ3Bpby5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTMyMyw2ICszMjQsNyBAQAogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlsb2NrX2tlcm5lbCgpOwogCXByaXYtPm1pbm9yID0gcDsKIAogCS8qIGluaXRpYWxpemUgdGhlIGlvL2FsYXJtIHN0cnVjdCAqLwpAQCAtMzU3LDYgKzM1OSw3IEBACiAJYWxhcm1saXN0ID0gcHJpdjsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZncGlvX2xvY2ssIGZsYWdzKTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvaTJjLmMgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYwppbmRleCBkNmQyMjA2Li4yNzk3ZTY3IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNTY2LDYgKzU2Nyw3IEBACiBzdGF0aWMgaW50CiBpMmNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9zeW5jX3NlcmlhbC5jIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvc3luY19zZXJpYWwuYwppbmRleCAwNjk1NDZlLi45MWZlYTYyIDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9zeW5jX3NlcmlhbC5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgpAQCAtNDQzLDE4ICs0NDQsMjEgQEAKIAlpbnQgZGV2ID0gTUlOT1IoaW5vZGUtPmlfcmRldik7CiAJc3RydWN0IHN5bmNfcG9ydCAqcG9ydDsKIAlpbnQgbW9kZTsKKwlpbnQgZXJyID0gLUVCVVNZOwogCisJbG9ja19rZXJuZWwoKTsKIAlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiT3BlbiBzeW5jIHNlcmlhbCBwb3J0ICVkXG4iLCBkZXYpKTsKIAogCWlmIChkZXYgPCAwIHx8IGRldiA+PSBOVU1CRVJfT0ZfUE9SVFMgfHwgIXBvcnRzW2Rldl0uZW5hYmxlZCkgewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiSW52YWxpZCBtaW5vciAlZFxuIiwgZGV2KSk7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAJcG9ydCA9ICZwb3J0c1tkZXZdOwogCS8qIEFsbG93IG9wZW4gdGhpcyBkZXZpY2UgdHdpY2UgKGFzc3VtaW5nIG9uZSByZWFkZXIgYW5kIG9uZSB3cml0ZXIpICovCiAJaWYgKHBvcnQtPmJ1c3kgPT0gMikgewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiRGV2aWNlIGlzIGJ1c3kuLiBcbiIpKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCWlmIChwb3J0LT5pbml0X2lycXMpIHsKIAkJaWYgKHBvcnQtPnVzZV9kbWEpIHsKQEAgLTQ2NSwxNCArNDY5LDE0IEBACiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBwb3J0IDEgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAocmVxdWVzdF9pcnEoMjUsIHJ4X2ludGVycnVwdCwgMCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMSBkbWEgcngiLAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlmcmVlX2lycSgyNCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAxIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXNfcmVxdWVzdF9kbWEoOCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMSBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00ODIsNyArNDg2LDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMSAiCiAJCQkJCQkiVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDksCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTQ5Myw3ICs0OTcsNyBAQAogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAxICIKIAkJCQkJCSJSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCQlSRVNFVF9ETUEoOCk7IFdBSVRfRE1BKDgpOwpAQCAtNTIwLDE0ICs1MjQsMTQgQEAKIAkJCQkJCSZwb3J0c1sxXSkpIHsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycSgyMSwgcnhfaW50ZXJydXB0LCAwLAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAzIGRtYSByeCIsCiAJCQkJCQkmcG9ydHNbMV0pKSB7CiAJCQkJCWZyZWVfaXJxKDIwLCAmcG9ydHNbMV0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAzIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXNfcmVxdWVzdF9kbWEoNCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMyBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC01MzcsNyArNTQxLDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyAiCiAJCQkJCQkiVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDUsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDMgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTU0OCw3ICs1NTIsNyBAQAogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAzICIKIAkJCQkJCSJSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCQlSRVNFVF9ETUEoNCk7IFdBSVRfRE1BKDQpOwpAQCAtNTgxLDcgKzU4NSw3IEBACiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0gZWxzZSBpZiAocG9ydCA9PSAmcG9ydHNbMV0pIHsKIAkJCQlpZiAocmVxdWVzdF9pcnEoOCwKQEAgLTU5MSw3ICs1OTUsNyBAQAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgbWFudWFsIGlycSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAJCQl9CiAJCQlwb3J0LT5pbml0X2lycXMgPSAwOwpAQCAtNjIwLDcgKzYyNCwxMSBAQAogCQkJKlJfSVJRX01BU0sxX1NFVCA9IDEgPDwgcG9ydC0+ZGF0YV9hdmFpbF9iaXQ7CiAJCURFQlVHKHByaW50ayhLRVJOX0RFQlVHICJzc2VyJWQgcmVjIHN0YXJ0ZWRcbiIsIGRldikpOwogCX0KLQlyZXR1cm4gMDsKKwlyZXQgPSAwOworCQorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHN5bmNfc2VyaWFsX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCmluZGV4IDlmYjU4MjAuLjY3YzYxZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KIApAQCAtMjMwMiwxMSArMjMwMywxMSBAQAogCXJldHVybiAwOwogfQogCi0KIHN0YXRpYyBpbnQgY3J5cHRvY29wX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJaW50IHAgPSBpbWlub3IoaW5vZGUpOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlpZiAocCAhPSBDUllQVE9DT1BfTUlOT1IpIHJldHVybiAtRUlOVkFMOwogCiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2kyYy5jIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKaW5kZXggYzJmYjdhNS4uMTc5ZTdiOCAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2V0cmF4aTJjLmg+CiAKQEAgLTYzNiw2ICs2MzcsNyBAQAogc3RhdGljIGludAogaTJjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1hMy9ncGlvLmMgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYwppbmRleCBkZTEwN2RhLi5lZjk4NjA4IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYworKysgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vZXRyYXhncGlvLmg+CiAjaW5jbHVkZSA8aHdyZWdzL3JlZ19tYXAuaD4KQEAgLTM5MCw2ICszOTEsOCBAQAogCiAJaWYgKCFwcml2KQogCQlyZXR1cm4gLUVOT01FTTsKKworCWxvY2tfa2VybmVsKCk7CiAJbWVtc2V0KHByaXYsIDAsIHNpemVvZigqcHJpdikpOwogCiAJcHJpdi0+bWlub3IgPSBwOwpAQCAtNDEyLDYgKzQxNSw3IEBACiAJCXNwaW5fdW5sb2NrX2lycSgmZ3Bpb19sb2NrKTsKIAl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtZnMvZ3Bpby5jIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKaW5kZXggNzg2M2ZkNC4uZmUxZmRlOCAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2V0cmF4Z3Bpby5oPgogI2luY2x1ZGUgPGh3cmVncy9yZWdfbWFwLmg+CkBAIC00MjYsOSArNDI3LDEwIEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJcHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBncGlvX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKLQogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CisKKwlsb2NrX2tlcm5lbCgpOwogCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKIAogCXByaXYtPm1pbm9yID0gcDsKQEAgLTQ0OSw2ICs0NTEsNyBAQAogCWFsYXJtbGlzdCA9IHByaXY7CiAJc3Bpbl91bmxvY2tfaXJxKCZhbGFybV9sb2NrKTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvc3luY19zZXJpYWwuYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKaW5kZXggNDdjMzc3ZC4uZDJhMGZiZiAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvc3luY19zZXJpYWwuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9zeW5jX3NlcmlhbC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC00MjksMjMgKzQzMCwyNiBAQAogc3RhdGljIGludCBzeW5jX3NlcmlhbF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCWludCBkZXYgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQgPSAtRUJVU1k7CiAJc3luY19wb3J0ICpwb3J0OwogCXJlZ19kbWFfcndfY2ZnIGNmZyA9IHsuZW4gPSByZWdrX2RtYV95ZXN9OwogCXJlZ19kbWFfcndfaW50cl9tYXNrIGludHJfbWFzayA9IHsuZGF0YSA9IHJlZ2tfZG1hX3llc307CiAKKwlsb2NrX2tlcm5lbCgpOwogCURFQlVHKHByaW50ayhLRVJOX0RFQlVHICJPcGVuIHN5bmMgc2VyaWFsIHBvcnQgJWRcbiIsIGRldikpOwogCiAJaWYgKGRldiA8IDAgfHwgZGV2ID49IE5CUl9QT1JUUyB8fCAhcG9ydHNbZGV2XS5lbmFibGVkKQogCXsKIAkJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIkludmFsaWQgbWlub3IgJWRcbiIsIGRldikpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCXBvcnQgPSAmcG9ydHNbZGV2XTsKIAkvKiBBbGxvdyBvcGVuIHRoaXMgZGV2aWNlIHR3aWNlIChhc3N1bWluZyBvbmUgcmVhZGVyIGFuZCBvbmUgd3JpdGVyKSAqLwogCWlmIChwb3J0LT5idXN5ID09IDIpCiAJewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiRGV2aWNlIGlzIGJ1c3kuLiBcbiIpKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCiAKQEAgLTQ1OSw3ICs0NjMsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAwIGRtYSB0ciIsCiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMCBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycShETUFfSU5fSU5UUl9WRUNULAogCQkJCQkJcnhfaW50ZXJydXB0LAogCQkJCQkJMCwKQEAgLTQ2Nyw3ICs0NzEsNyBAQAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlmcmVlX2lycShETUFfT1VUX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDAgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc3YzMl9yZXF1ZXN0X2RtYShPVVRfRE1BX05CUiwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMCBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00NzYsNyArNDgwLDcgQEAKIAkJCQkJZnJlZV9pcnEoRE1BX09VVF9JTlRSX1ZFQ1QsICZwb3J0WzBdKTsKIAkJCQkJZnJlZV9pcnEoRE1BX0lOX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDAgVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzdjMyX3JlcXVlc3RfZG1hKElOX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDAgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTQ4Niw3ICs0OTAsNyBAQAogCQkJCQlmcmVlX2lycShETUFfT1VUX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlmcmVlX2lycShETUFfSU5fSU5UUl9WRUNULCAmcG9ydFswXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMSBSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCX0KQEAgLTQ5OSw3ICs1MDMsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAxIGRtYSB0ciIsCiAJCQkJCQkmcG9ydHNbMV0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMSBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycShETUE3X0lOVFJfVkVDVCwKIAkJCQkJCSAgICAgICByeF9pbnRlcnJ1cHQsCiAJCQkJCQkgICAgICAgMCwKQEAgLTUwNyw3ICs1MTEsNyBAQAogCQkJCQkJICAgICAgICZwb3J0c1sxXSkpIHsKIAkJCQkJZnJlZV9pcnEoRE1BNl9JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzdjMyX3JlcXVlc3RfZG1hKAogCQkJCQkJU1lOQ19TRVIxX1RYX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHRyIiwKQEAgLTUxNyw3ICs1MjEsNyBAQAogCQkJCQlmcmVlX2lycShETUE2X0lOVFJfVkVDVCwgJnBvcnRzWzFdKTsKIAkJCQkJZnJlZV9pcnEoRE1BN19JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBUWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXN2MzJfcmVxdWVzdF9kbWEoCiAJCQkJCQlTWU5DX1NFUjFfUlhfRE1BX05CUiwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMyBkbWEgcmVjIiwKQEAgLTUyOCw3ICs1MzIsNyBAQAogCQkJCQlmcmVlX2lycShETUE2X0lOVFJfVkVDVCwgJnBvcnRzWzFdKTsKIAkJCQkJZnJlZV9pcnEoRE1BN19JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCX0KQEAgLTU1NCw3ICs1NTgsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCBtYW51YWwgaXJxIiwKIAkJCQkJCSZwb3J0c1swXSkpIHsKIAkJCQkJcHJpbnRrKCJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0KICNpZmRlZiBDT05GSUdfRVRSQVhGUwpAQCAtNTY1LDcgKzU2OSw3IEBACiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIG1hbnVhbCBpcnEiLAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0KICNlbmRpZgpAQCAtNTc4LDcgKzU4MiwxMCBAQAogCX0gLyogcG9ydC0+aW5pdF9pcnFzICovCiAKIAlwb3J0LT5idXN5Kys7Ci0JcmV0dXJuIDA7CisJcmV0ID0gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBzeW5jX3NlcmlhbF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L01ha2VmaWxlIGIvYXJjaC9pYTY0L01ha2VmaWxlCmluZGV4IDg4ZjFhNTUuLmU2N2VlM2YgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9NYWtlZmlsZQorKysgYi9hcmNoL2lhNjQvTWFrZWZpbGUKQEAgLTU3LDYgKzU3LDcgQEAKIGNvcmUtJChDT05GSUdfSUE2NF9IUF9aWDEpCSs9IGFyY2gvaWE2NC9kaWcvCiBjb3JlLSQoQ09ORklHX0lBNjRfSFBfWlgxX1NXSU9UTEIpICs9IGFyY2gvaWE2NC9kaWcvCiBjb3JlLSQoQ09ORklHX0lBNjRfU0dJX1NOMikJKz0gYXJjaC9pYTY0L3NuLworY29yZS0kKENPTkZJR19JQTY0X1NHSV9VVikJKz0gYXJjaC9pYTY0L3V2LwogY29yZS0kKENPTkZJR19LVk0pIAkJKz0gYXJjaC9pYTY0L2t2bS8KIAogZHJpdmVycy0kKENPTkZJR19QQ0kpCQkrPSBhcmNoL2lhNjQvcGNpLwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9hY3BpLmMgYi9hcmNoL2lhNjQva2VybmVsL2FjcGkuYwppbmRleCA4NTNkMWYxLi40MzY4N2NjIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL2FjcGkuYworKysgYi9hcmNoL2lhNjQva2VybmVsL2FjcGkuYwpAQCAtNDY1LDcgKzQ2NSw2IEBACiAJCXByaW50ayhLRVJOX0VSUgogCQkgICAgICAgIkFDUEkgMi4wIFNMSVQ6IHNpemUgbWlzbWF0Y2g6ICVkIGV4cGVjdGVkLCAlZCBhY3R1YWxcbiIsCiAJCSAgICAgICBsZW4sIHNsaXQtPmhlYWRlci5sZW5ndGgpOwotCQltZW1zZXQobnVtYV9zbGl0LCAxMCwgc2l6ZW9mKG51bWFfc2xpdCkpOwogCQlyZXR1cm47CiAJfQogCXNsaXRfdGFibGUgPSBzbGl0OwpAQCAtNTc0LDggKzU3MywxNCBAQAogCXByaW50ayhLRVJOX0lORk8gIk51bWJlciBvZiBtZW1vcnkgY2h1bmtzIGluIHN5c3RlbSA9ICVkXG4iLAogCSAgICAgICBudW1fbm9kZV9tZW1ibGtzKTsKIAotCWlmICghc2xpdF90YWJsZSkKKwlpZiAoIXNsaXRfdGFibGUpIHsKKwkJZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKQorCQkJZm9yIChqID0gMDsgaiA8IE1BWF9OVU1OT0RFUzsgaisrKQorCQkJCW5vZGVfZGlzdGFuY2UoaSwgaikgPSBpID09IGogPyBMT0NBTF9ESVNUQU5DRSA6CisJCQkJCQkJUkVNT1RFX0RJU1RBTkNFOwogCQlyZXR1cm47CisJfQorCiAJbWVtc2V0KG51bWFfc2xpdCwgLTEsIHNpemVvZihudW1hX3NsaXQpKTsKIAlmb3IgKGkgPSAwOyBpIDwgc2xpdF90YWJsZS0+bG9jYWxpdHlfY291bnQ7IGkrKykgewogCQlpZiAoIXB4bV9iaXRfdGVzdChpKSkKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvaW9zYXBpYy5jIGIvYXJjaC9pYTY0L2tlcm5lbC9pb3NhcGljLmMKaW5kZXggMDgyYzMxZC4uMzk3NTJjZCAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9pb3NhcGljLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9pb3NhcGljLmMKQEAgLTU1OCw4ICs1NTgsNiBAQAogCWlmICghaW9zYXBpY19rbWFsbG9jX29rICYmIGxpc3RfZW1wdHkoJmZyZWVfcnRlX2xpc3QpKSB7CiAJCXJ0ZSA9IGFsbG9jX2Jvb3RtZW0oc2l6ZW9mKHN0cnVjdCBpb3NhcGljX3J0ZV9pbmZvKSAqCiAJCQkJICAgIE5SX1BSRUFMTE9DQVRFX1JURV9FTlRSSUVTKTsKLQkJaWYgKCFydGUpCi0JCQlyZXR1cm4gTlVMTDsKIAkJZm9yIChpID0gMDsgaSA8IE5SX1BSRUFMTE9DQVRFX1JURV9FTlRSSUVTOyBpKyssIHJ0ZSsrKQogCQkJbGlzdF9hZGQoJnJ0ZS0+cnRlX2xpc3QsICZmcmVlX3J0ZV9saXN0KTsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3BlcmZtb24uYyBiL2FyY2gvaWE2NC9rZXJuZWwvcGVyZm1vbi5jCmluZGV4IDcxZDA1MTMuLjc3MTRhOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvcGVyZm1vbi5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvcGVyZm1vbi5jCkBAIC0xODY0LDExICsxODY0LDYgQEAKIAkgKiBpbnZva2VkIGFmdGVyLCBpdCB3aWxsIGZpbmQgYW4gZW1wdHkgcXVldWUgYW5kIG5vCiAJICogc2lnbmFsIHdpbGwgYmUgc2VudC4gSW4gYm90aCBjYXNlLCB3ZSBhcmUgc2FmZQogCSAqLwotCWlmIChmaWxwLT5mX2ZsYWdzICYgRkFTWU5DKSB7Ci0JCURQUklOVCgoImNsZWFuaW5nIHVwIGFzeW5jX3F1ZXVlPSVwXG4iLCBjdHgtPmN0eF9hc3luY19xdWV1ZSkpOwotCQlwZm1fZG9fZmFzeW5jICgtMSwgZmlscCwgY3R4LCAwKTsKLQl9Ci0KIAlQUk9URUNUX0NUWChjdHgsIGZsYWdzKTsKIAogCXN0YXRlICAgICA9IGN0eC0+Y3R4X3N0YXRlOwpAQCAtMTk5OSw2ICsxOTk0LDExIEBACiAJCXJldHVybiAtRUJBREY7CiAJfQogCisJaWYgKGZpbHAtPmZfZmxhZ3MgJiBGQVNZTkMpIHsKKwkJRFBSSU5UKCgiY2xlYW5pbmcgdXAgYXN5bmNfcXVldWU9JXBcbiIsIGN0eC0+Y3R4X2FzeW5jX3F1ZXVlKSk7CisJCXBmbV9kb19mYXN5bmMoLTEsIGZpbHAsIGN0eCwgMCk7CisJfQorCiAJUFJPVEVDVF9DVFgoY3R4LCBmbGFncyk7CiAKIAlzdGF0ZSAgICAgPSBjdHgtPmN0eF9zdGF0ZTsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvc2FsLmMgYi9hcmNoL2lhNjQva2VybmVsL3NhbC5jCmluZGV4IDdlMDI1OTcuLjA0NjQxNzMgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvc2FsLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9zYWwuYwpAQCAtMjUyLDExICsyNTIsMTAgQEAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKIAkvKgotCSAqIFNjaGVkdWxlIGEgdGltZXIgaW50ZXJydXB0LCB3YWl0IHVudGlsIGl0J3MgcmVwb3J0ZWQsIGFuZCBzZWUgaWYKLQkgKiBTQUxfQ0FDSEVfRkxVU0ggZHJvcHMgaXQuCisJICogU2VuZCBvdXJzZWx2ZXMgYSB0aW1lciBpbnRlcnJ1cHQsIHdhaXQgdW50aWwgaXQncyByZXBvcnRlZCwgYW5kIHNlZQorCSAqIGlmIFNBTF9DQUNIRV9GTFVTSCBkcm9wcyBpdC4KIAkgKi8KLQlpYTY0X3NldF9pdHYoSUE2NF9USU1FUl9WRUNUT1IpOwotCWlhNjRfc2V0X2l0bShpYTY0X2dldF9pdGMoKSArIDEwMDApOworCXBsYXRmb3JtX3NlbmRfaXBpKGNwdSwgSUE2NF9USU1FUl9WRUNUT1IsIElBNjRfSVBJX0RNX0lOVCwgMCk7CiAKIAl3aGlsZSAoIWlhNjRfZ2V0X2lycihJQTY0X1RJTUVSX1ZFQ1RPUikpCiAJCWNwdV9yZWxheCgpOwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jCmluZGV4IGY0OGE4MDkuLjYzMmNkYTggMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMKQEAgLTU0Nyw3ICs1NDcsOCBAQAogIyBpZmRlZiBDT05GSUdfQUNQSV9OVU1BCiAJYWNwaV9udW1hX2luaXQoKTsKIAlwZXJfY3B1X3NjYW5fZmluYWxpemUoKGNwdXNfd2VpZ2h0KGVhcmx5X2NwdV9wb3NzaWJsZV9tYXApID09IDAgPwotCQkzMiA6IGNwdXNfd2VpZ2h0KGVhcmx5X2NwdV9wb3NzaWJsZV9tYXApKSwgYWRkaXRpb25hbF9jcHVzKTsKKwkJMzIgOiBjcHVzX3dlaWdodChlYXJseV9jcHVfcG9zc2libGVfbWFwKSksCisJCWFkZGl0aW9uYWxfY3B1cyA+IDAgPyBhZGRpdGlvbmFsX2NwdXMgOiAwKTsKICMgZW5kaWYKICNlbHNlCiAjIGlmZGVmIENPTkZJR19TTVAKQEAgLTU3OCw4ICs1NzksNiBAQAogCWNwdV9pbml0KCk7CS8qIGluaXRpYWxpemUgdGhlIGJvb3RzdHJhcCBDUFUgKi8KIAltbXVfY29udGV4dF9pbml0KCk7CS8qIGluaXRpYWxpemUgY29udGV4dF9pZCBiaXRtYXAgKi8KIAotCWNoZWNrX3NhbF9jYWNoZV9mbHVzaCgpOwotCiAjaWZkZWYgQ09ORklHX0FDUEkKIAlhY3BpX2Jvb3RfaW5pdCgpOwogI2VuZGlmCkBAIC02MDcsNiArNjA2LDcgQEAKIAkJaWE2NF9tY2FfaW5pdCgpOwogCiAJcGxhdGZvcm1fc2V0dXAoY21kbGluZV9wKTsKKwljaGVja19zYWxfY2FjaGVfZmx1c2goKTsKIAlwYWdpbmdfaW5pdCgpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3RpbWUuYyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCmluZGV4IDhjNzM2NDMuLmFhZDFiN2IgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCkBAIC0xMTcsNiArMTE3LDcgQEAKIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGFjY291bnRfc3lzdGVtX3Z0aW1lKTsKIAogLyoKICAqIENhbGxlZCBmcm9tIHRoZSB0aW1lciBpbnRlcnJ1cHQgaGFuZGxlciB0byBjaGFyZ2UgYWNjdW11bGF0ZWQgdXNlciB0aW1lCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva3ZtL21taW8uYyBiL2FyY2gvaWE2NC9rdm0vbW1pby5jCmluZGV4IDM1MWJmNzAuLjdmMWE4NTggMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rdm0vbW1pby5jCisrKyBiL2FyY2gvaWE2NC9rdm0vbW1pby5jCkBAIC0xNTksNyArMTU5LDggQEAKIAogCWlmIChwLT51LmlvcmVxLnN0YXRlID09IFNUQVRFX0lPUkVTUF9SRUFEWSkgewogCQlpZiAoZGlyID09IElPUkVRX1JFQUQpCi0JCQkqZGVzdCA9IHAtPnUuaW9yZXEuZGF0YTsKKwkJCS8qIGl0J3MgbmVjZXNzYXJ5IHRvIGVuc3VyZSB6ZXJvIGV4dGVuZGluZyAqLworCQkJKmRlc3QgPSBwLT51LmlvcmVxLmRhdGEgJiAofjBVTCA+PiAoNjQtKHMqOCkpKTsKIAl9IGVsc2UKIAkJcGFuaWNfdm0odmNwdSk7CiBvdXQ6CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvc24va2VybmVsL3NuMi9zbjJfc21wLmMgYi9hcmNoL2lhNjQvc24va2VybmVsL3NuMi9zbjJfc21wLmMKaW5kZXggNDlkMzEyMC4uZTU4NWY5YSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L3NuL2tlcm5lbC9zbjIvc24yX3NtcC5jCisrKyBiL2FyY2gvaWE2NC9zbi9rZXJuZWwvc24yL3NuMl9zbXAuYwpAQCAtNTEyLDYgKzUxMiw4IEBACiAJaW50IGNwdTsKIAljaGFyIG9wdHN0cls2NF07CiAKKwlpZiAoY291bnQgPT0gMCB8fCBjb3VudCA+IHNpemVvZihvcHRzdHIpKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoY29weV9mcm9tX3VzZXIob3B0c3RyLCB1c2VyLCBjb3VudCkpCiAJCXJldHVybiAtRUZBVUxUOwogCW9wdHN0cltjb3VudCAtIDFdID0gJ1wwJzsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC91di9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvaWE2NC91di9rZXJuZWwvc2V0dXAuYwppbmRleCA5YWE3NDMyLi5jZjVmMjhhIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvdXYva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9pYTY0L3V2L2tlcm5lbC9zZXR1cC5jCkBAIC0xNyw2ICsxNyw5IEBACiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdXZfaHViX2luZm9fcywgX191dl9odWJfaW5mbyk7CiBFWFBPUlRfUEVSX0NQVV9TWU1CT0xfR1BMKF9fdXZfaHViX2luZm8pOwogCisjaWZkZWYgQ09ORklHX0lBNjRfU0dJX1VWCitpbnQgc25fcHJvbV90eXBlOworI2VuZGlmCiAKIHN0cnVjdCByZWRpcl9hZGRyIHsKIAl1bnNpZ25lZCBsb25nIHJlZGlyZWN0OwpAQCAtNjQsNiArNjcsMTUgQEAKIAkJbV9uX2NvbmZpZy5zLm1fc2t0ID0gMzc7CiAJCW1fbl9jb25maWcucy5uX3NrdCA9IDA7CiAJCW1tcl9iYXNlID0gMDsKKyNpZiAwCisJCS8qIE5lZWQgQklPUyBjYWxscyAtIFREQiAqLworCQlpZiAoIWlhNjRfc25faXNfZmFrZV9wcm9tKCkpCisJCQlzbl9wcm9tX3R5cGUgPSAxOworCQllbHNlCisjZW5kaWYKKwkJCXNuX3Byb21fdHlwZSA9IDI7CisJCXByaW50ayhLRVJOX0lORk8gIlJ1bm5pbmcgb24gbWVkdXNhIHdpdGggJXMgUFJPTVxuIiwKKwkJCQkJKHNuX3Byb21fdHlwZSA9PSAxKSA/ICJyZWFsIiA6ICJmYWtlIik7CiAJfSBlbHNlIHsKIAkJZ2V0X2xvd21lbV9yZWRpcmVjdCgmbG93bWVtX3JlZGlyX2Jhc2UsICZsb3dtZW1fcmVkaXJfc2l6ZSk7CiAJCW5vZGVfaWQudiA9IHV2X3JlYWRfbG9jYWxfbW1yKFVWSF9OT0RFX0lEKTsKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9idm1lNjAwMC9ydGMuYyBiL2FyY2gvbTY4ay9idm1lNjAwMC9ydGMuYwppbmRleCBhODEyZDAzLi5lOGFjM2Y3IDEwMDY0NAotLS0gYS9hcmNoL202OGsvYnZtZTYwMDAvcnRjLmMKKysrIGIvYXJjaC9tNjhrL2J2bWU2MDAwL3J0Yy5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZjbnRsLmg+CkBAIC0xNDAsMTAgKzE0MSwxNCBAQAogCiBzdGF0aWMgaW50IHJ0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCWlmKHJ0Y19zdGF0dXMpCisJbG9ja19rZXJuZWwoKTsKKwlpZihydGNfc3RhdHVzKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAKIAlydGNfc3RhdHVzID0gMTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9tdm1lMTZ4L3J0Yy5jIGIvYXJjaC9tNjhrL212bWUxNngvcnRjLmMKaW5kZXggZTM0MTM4Ny4uNDMyYTlmMSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL212bWUxNngvcnRjLmMKKysrIGIvYXJjaC9tNjhrL212bWUxNngvcnRjLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KQEAgLTEyNywxMSArMTI4LDE0IEBACiAKIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlpZiggIWF0b21pY19kZWNfYW5kX3Rlc3QoJnJ0Y19yZWFkeSkgKQogCXsKIAkJYXRvbWljX2luYyggJnJ0Y19yZWFkeSApOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrbm9tbXUvcGxhdGZvcm0vY29sZGZpcmUvdGltZXJzLmMgYi9hcmNoL202OGtub21tdS9wbGF0Zm9ybS9jb2xkZmlyZS90aW1lcnMuYwppbmRleCBiYTVhOWYzLi40NTRmMjU0IDEwMDY0NAotLS0gYS9hcmNoL202OGtub21tdS9wbGF0Zm9ybS9jb2xkZmlyZS90aW1lcnMuYworKysgYi9hcmNoL202OGtub21tdS9wbGF0Zm9ybS9jb2xkZmlyZS90aW1lcnMuYwpAQCAtMTExLDcgKzExMSwxMyBAQAogCiAJX19yYXdfd3JpdGV3KE1DRlRJTUVSX1RNUl9ESVNBQkxFLCBUQShNQ0ZUSU1FUl9UTVIpKTsKIAltY2Z0bXJfY3ljbGVzX3Blcl9qaWZmeSA9IEZSRVEgLyBIWjsKLQlfX3Jhd193cml0ZXRycihtY2Z0bXJfY3ljbGVzX3Blcl9qaWZmeSwgVEEoTUNGVElNRVJfVFJSKSk7CisJLyoKKwkgKglUaGUgY29sZGZpcmUgdGltZXIgcnVucyBmcm9tIDAgdG8gVFJSIGluY2x1ZGVkLCB0aGVuIDAKKwkgKglhZ2FpbiBhbmQgc28gb24uICBJdCBjb3VudHMgdGh1cyBhY3R1YWxseSBUUlIgKyAxIHN0ZXBzCisJICoJZm9yIDEgdGljaywgbm90IFRSUi4gIFNvIGlmIHlvdSB3YW50IG4gY3ljbGVzLAorCSAqCWluaXRpYWxpemUgVFJSIHdpdGggbiAtIDEuCisJICovCisJX19yYXdfd3JpdGV0cnIobWNmdG1yX2N5Y2xlc19wZXJfamlmZnkgLSAxLCBUQShNQ0ZUSU1FUl9UUlIpKTsKIAlfX3Jhd193cml0ZXcoTUNGVElNRVJfVE1SX0VOT1JJIHwgTUNGVElNRVJfVE1SX0NMSzE2IHwKIAkJTUNGVElNRVJfVE1SX1JFU1RBUlQgfCBNQ0ZUSU1FUl9UTVJfRU5BQkxFLCBUQShNQ0ZUSU1FUl9UTVIpKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL0tjb25maWcgYi9hcmNoL21pcHMvS2NvbmZpZwppbmRleCBlNWE3YzVkLi4yNGM1ZGVlIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvS2NvbmZpZworKysgYi9hcmNoL21pcHMvS2NvbmZpZwpAQCAtMTAwNiw3ICsxMDA2LDcgQEAKIGNvbmZpZyBNSVBTX0wxX0NBQ0hFX1NISUZUCiAJaW50CiAJZGVmYXVsdCAiNCIgaWYgTUFDSF9ERUNTVEFUSU9OCi0JZGVmYXVsdCAiNyIgaWYgU0dJX0lQMjcgfHwgU0dJX0lQMjggfHwgU05JX1JNCisJZGVmYXVsdCAiNyIgaWYgU0dJX0lQMjIgfHwgU0dJX0lQMjcgfHwgU0dJX0lQMjggfHwgU05JX1JNCiAJZGVmYXVsdCAiNCIgaWYgUE1DX01TUDQyMDBfRVZBTAogCWRlZmF1bHQgIjUiCiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9NYWtlZmlsZSBiL2FyY2gvbWlwcy9NYWtlZmlsZQppbmRleCA2OTY0OGQwLi5hZDM2Yzk0IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL01ha2VmaWxlCkBAIC01MzgsMTkgKzUzOCwxOSBAQAogIyBTaWJ5dGUgU1dBUk0gYm9hcmQKICMgU2lieXRlIEJDTTkxeDgwIChCaWdTdXIpIGJvYXJkCiAjCi1saWJzLSQoQ09ORklHX1NJQllURV9DQVJNRUwpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCitjb3JlLSQoQ09ORklHX1NJQllURV9DQVJNRUwpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9DQVJNRUwpCTo9IDB4ZmZmZmZmZmY4MDEwMDAwMAotbGlicy0kKENPTkZJR19TSUJZVEVfQ1JISU5FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLworY29yZS0kKENPTkZJR19TSUJZVEVfQ1JISU5FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLwogbG9hZC0kKENPTkZJR19TSUJZVEVfQ1JISU5FKQk6PSAweGZmZmZmZmZmODAxMDAwMDAKLWxpYnMtJChDT05GSUdfU0lCWVRFX0NSSE9ORSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KK2NvcmUtJChDT05GSUdfU0lCWVRFX0NSSE9ORSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KIGxvYWQtJChDT05GSUdfU0lCWVRFX0NSSE9ORSkJOj0gMHhmZmZmZmZmZjgwMTAwMDAwCi1saWJzLSQoQ09ORklHX1NJQllURV9SSE9ORSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KK2NvcmUtJChDT05GSUdfU0lCWVRFX1JIT05FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLwogbG9hZC0kKENPTkZJR19TSUJZVEVfUkhPTkUpCTo9IDB4ZmZmZmZmZmY4MDEwMDAwMAotbGlicy0kKENPTkZJR19TSUJZVEVfU0VOVE9TQSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KK2NvcmUtJChDT05GSUdfU0lCWVRFX1NFTlRPU0EpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9TRU5UT1NBKQk6PSAweGZmZmZmZmZmODAxMDAwMDAKLWxpYnMtJChDT05GSUdfU0lCWVRFX1NXQVJNKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLworY29yZS0kKENPTkZJR19TSUJZVEVfU1dBUk0pCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9TV0FSTSkJOj0gMHhmZmZmZmZmZjgwMTAwMDAwCi1saWJzLSQoQ09ORklHX1NJQllURV9CSUdTVVIpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCitjb3JlLSQoQ09ORklHX1NJQllURV9CSUdTVVIpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9CSUdTVVIpCTo9IDB4ZmZmZmZmZmY4MDEwMDAwMAogCiAjCkBAIC01NjUsNyArNTY1LDExIEBACiAjCiBjb3JlLSQoQ09ORklHX1NOSV9STSkJCSs9IGFyY2gvbWlwcy9zbmkvCiBjZmxhZ3MtJChDT05GSUdfU05JX1JNKQkJKz0gLUlpbmNsdWRlL2FzbS1taXBzL21hY2gtcm0KK2lmZGVmIENPTkZJR19DUFVfTElUVExFX0VORElBTgogbG9hZC0kKENPTkZJR19TTklfUk0pCQkrPSAweGZmZmZmZmZmODA2MDAwMDAKK2Vsc2UKK2xvYWQtJChDT05GSUdfU05JX1JNKQkJKz0gMHhmZmZmZmZmZjgwMDMwMDAwCitlbmRpZgogYWxsLSQoQ09ORklHX1NOSV9STSkJCTo9IHZtbGludXguZWNvZmYKIAogIwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2F1MTAwMC9jb21tb24vcGxhdGZvcm0uYyBiL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL3BsYXRmb3JtLmMKaW5kZXggOGNhZTc3NS4uNzRkNmQ0YSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2F1MTAwMC9jb21tb24vcGxhdGZvcm0uYworKysgYi9hcmNoL21pcHMvYXUxMDAwL2NvbW1vbi9wbGF0Zm9ybS5jCkBAIC0xNjUsMTIgKzE2NSwxMiBAQAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdTF4eHhfbW1jX3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKIAkJLnN0YXJ0ICAgICAgICAgID0gU0QwX1BIWVNfQUREUiwKLQkJLmVuZCAgICAgICAgICAgID0gU0QwX1BIWVNfQUREUiArIDB4NDAsCisJCS5lbmQgICAgICAgICAgICA9IFNEMF9QSFlTX0FERFIgKyAweDdmZmZmLAogCQkuZmxhZ3MgICAgICAgICAgPSBJT1JFU09VUkNFX01FTSwKIAl9LAogCVsxXSA9IHsKIAkJLnN0YXJ0CQk9IFNEMV9QSFlTX0FERFIsCi0JCS5lbmQgCQk9IFNEMV9QSFlTX0FERFIgKyAweDQwLAorCQkuZW5kIAkJPSBTRDFfUEhZU19BRERSICsgMHg3ZmZmZiwKIAkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiAJWzJdID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Jhc2xlci9leGNpdGUvZXhjaXRlX2lvZGV2LmMgYi9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYwppbmRleCA0NzZkMjBlLi5hMWUzNTI2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYworKysgYi9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAiZXhjaXRlX2lvZGV2LmgiCiAKQEAgLTExMCw4ICsxMTEsMTQgQEAKIAogc3RhdGljIGludCBpb2Rldl9vcGVuKHN0cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpCiB7Ci0JcmV0dXJuIHJlcXVlc3RfaXJxKGlvZGV2X2lycSwgaW9kZXZfaXJxaGRsLCBJUlFGX0RJU0FCTEVELAorCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IHJlcXVlc3RfaXJxKGlvZGV2X2lycSwgaW9kZXZfaXJxaGRsLCBJUlFGX0RJU0FCTEVELAogCQkJICAgaW9kZXZfbmFtZSwgJm1pc2NkZXYpOworCXVubG9ja19rZXJuZWwoKTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW9kZXZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmksIHN0cnVjdCBmaWxlICpmKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwLXN3YXJtX2RlZmNvbmZpZyBiL2FyY2gvbWlwcy9jb25maWdzL3NiMTI1MC1zd2FybV9kZWZjb25maWcKaW5kZXggMTE3NDcwYi4uNGI4Nzk5OCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwLXN3YXJtX2RlZmNvbmZpZworKysgYi9hcmNoL21pcHMvY29uZmlncy9zYjEyNTAtc3dhcm1fZGVmY29uZmlnCkBAIC0xLDY3ICsxLDU4IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjAKLSMgVHVlIEZlYiAyMCAyMTo0Nzo0MCAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUKKyMgU2F0IE1heSAgMyAwMDozODoxMSAyMDA4CiAjCiBDT05GSUdfTUlQUz15CiAKICMKICMgTWFjaGluZSBzZWxlY3Rpb24KICMKLUNPTkZJR19aT05FX0RNQT15Ci0jIENPTkZJR19NSVBTX01UWDEgaXMgbm90IHNldAotIyBDT05GSUdfTUlQU19CT1NQT1JVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTU1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTIwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTU1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTIwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX01JUkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0FMQ0hFTVkgaXMgbm90IHNldAogIyBDT05GSUdfQkFTTEVSX0VYQ0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19CQ000N1hYIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfQ09CQUxUIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0hfREVDU1RBVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0pBWlogaXMgbm90IHNldAorIyBDT05GSUdfTEFTQVQgaXMgbm90IHNldAorIyBDT05GSUdfTEVNT1RFX0ZVTE9ORyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0FUTEFTIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfTUFMVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19TRUFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dSX1BQTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19TSU0gaXMgbm90IHNldAotIyBDT05GSUdfTU9NRU5DT19KQUdVQVJfQVRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JUFNfWFhTMTUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRUlOUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX1ZSNDFYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTlg4NTUwX0pCUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QTlg4NTUwX1NUQjgxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX1ZSNDFYWCBpcyBub3Qgc2V0CisjIENPTkZJR19QTUNfTVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQVJLRUlOUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSUJZVEVfQklHU1VSIGlzIG5vdCBzZXQKLUNPTkZJR19TSUJZVEVfU1dBUk09eQotIyBDT05GSUdfU0lCWVRFX1NFTlRPU0EgaXMgbm90IHNldAotIyBDT05GSUdfU0lCWVRFX1JIT05FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldAotIyBDT05GSUdfU0lCWVRFX0xJVFRMRVNVUiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0NSSE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19TSUJZVEVfUkhPTkUgaXMgbm90IHNldAorQ09ORklHX1NJQllURV9TV0FSTT15CisjIENPTkZJR19TSUJZVEVfTElUVExFU1VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9TRU5UT1NBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9CSUdTVVIgaXMgbm90IHNldAogIyBDT05GSUdfU05JX1JNIGlzIG5vdCBzZXQKICMgQ09ORklHX1RPU0hJQkFfSk1SMzkyNyBpcyBub3Qgc2V0CiAjIENPTkZJR19UT1NISUJBX1JCVFg0OTI3IGlzIG5vdCBzZXQKICMgQ09ORklHX1RPU0hJQkFfUkJUWDQ5MzggaXMgbm90IHNldAorIyBDT05GSUdfV1JfUFBNQyBpcyBub3Qgc2V0CiBDT05GSUdfU0lCWVRFX1NCMTI1MD15CiBDT05GSUdfU0lCWVRFX1NCMXh4eF9TT0M9eQotQ09ORklHX0NQVV9TQjFfUEFTU18xPXkKKyMgQ09ORklHX0NQVV9TQjFfUEFTU18xIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TQjFfUEFTU18yXzEyNTAgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX1NCMV9QQVNTXzJfMiBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX1NCMV9QQVNTXzJfMj15CiAjIENPTkZJR19DUFVfU0IxX1BBU1NfNCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU0IxX1BBU1NfMl8xMTJ4IGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TQjFfUEFTU18zIGlzIG5vdCBzZXQKIENPTkZJR19TSUJZVEVfSEFTX0xEVD15CitDT05GSUdfU0lCWVRFX0VOQUJMRV9MRFRfSUZfUENJPXkKICMgQ09ORklHX1NJTVVMQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0IxX0NFWF9BTFdBWVNfRkFUQUwgaXMgbm90IHNldAogIyBDT05GSUdfU0IxX0NFUlJfU1RBTEwgaXMgbm90IHNldApAQCAtNjksMjAgKzYwLDMyIEBACiAjIENPTkZJR19TSUJZVEVfQ0ZFX0NPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0JVU19XQVRDSEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9UQlBST0YgaXMgbm90IHNldAorQ09ORklHX1NJQllURV9IQVNfWkJVU19QUk9GSUxJTkc9eQogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFJPRklMRT15CiBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKIENPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQogQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CiAjIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlEgaXMgbm90IHNldAorQ09ORklHX0NFVlRfU0IxMjUwPXkKK0NPTkZJR19DU1JDX1NCMTI1MD15CitDT05GSUdfQ0ZFPXkKIENPTkZJR19ETUFfQ09IRVJFTlQ9eQorQ09ORklHX0VBUkxZX1BSSU5USz15CitDT05GSUdfU1lTX0hBU19FQVJMWV9QUklOVEs9eQorIyBDT05GSUdfSE9UUExVR19DUFUgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfQklHX0VORElBTj15CiAjIENPTkZJR19DUFVfTElUVExFX0VORElBTiBpcyBub3Qgc2V0CiBDT05GSUdfU1lTX1NVUFBPUlRTX0JJR19FTkRJQU49eQogQ09ORklHX1NZU19TVVBQT1JUU19MSVRUTEVfRU5ESUFOPXkKK0NPTkZJR19JUlFfQ1BVPXkKIENPTkZJR19TV0FQX0lPX1NQQUNFPXkKIENPTkZJR19CT09UX0VMRjMyPXkKIENPTkZJR19NSVBTX0wxX0NBQ0hFX1NISUZUPTUKQEAgLTkwLDYgKzkzLDcgQEAKICMKICMgQ1BVIHNlbGVjdGlvbgogIworIyBDT05GSUdfQ1BVX0xPT05HU09OMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfTUlQUzMyX1IxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9NSVBTMzJfUjIgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX01JUFM2NF9SMSBpcyBub3Qgc2V0CkBAIC0xMzAsOCArMTM0LDcgQEAKIENPTkZJR19NSVBTX01UX0RJU0FCTEVEPXkKICMgQ09ORklHX01JUFNfTVRfU01QIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfTVRfU01UQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1ZQRV9MT0FERVIgaXMgbm90IHNldAotQ09ORklHX1NCMV9QQVNTXzFfV09SS0FST1VORFM9eQorQ09ORklHX1NCMV9QQVNTXzJfV09SS0FST1VORFM9eQogQ09ORklHX0NQVV9IQVNfTExTQz15CiBDT05GSUdfQ1BVX0hBU19TWU5DPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKQEAgLTE0MCw2ICsxNDMsNyBAQAogQ09ORklHX0NQVV9TVVBQT1JUU19ISUdITUVNPXkKIENPTkZJR19TWVNfU1VQUE9SVFNfSElHSE1FTT15CiBDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldApAQCAtMTQ3LDEzICsxNTEsMTkgQEAKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogQ09ORklHX1JFU09VUkNFU182NEJJVD15Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfWk9ORV9ETUFfRkxBRz0wCitDT05GSUdfVklSVF9UT19CVVM9eQogQ09ORklHX1NNUD15CiBDT05GSUdfU1lTX1NVUFBPUlRTX1NNUD15CiBDT05GSUdfTlJfQ1BVU19ERUZBVUxUXzI9eQogQ09ORklHX05SX0NQVVM9MgorQ09ORklHX1RJQ0tfT05FU0hPVD15CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKICMgQ09ORklHX0haXzQ4IGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMjggaXMgbm90IHNldApAQCAtMTY2LDM4ICsxNzYsNDkgQEAKIENPTkZJR19QUkVFTVBUX05PTkU9eQogIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUFJFRU1QVF9CS0w9eQogIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorQ09ORklHX1NFQ0NPTVA9eQogQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKIENPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCiAKICMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCisjIEdlbmVyYWwgc2V0dXAKICMKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0xPQ0tfS0VSTkVMPXkKIENPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCiBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQotIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE1CiBDT05GSUdfQ0dST1VQUz15CisjIENPTkZJR19DR1JPVVBfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQ0dST1VQX05TIGlzIG5vdCBzZXQKIENPTkZJR19DUFVTRVRTPXkKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKKyMgQ09ORklHX1JFU09VUkNFX0NPVU5URVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorIyBDT05GSUdfUFJPQ19QSURfQ1BVU0VUIGlzIG5vdCBzZXQKIENPTkZJR19SRUxBWT15CitDT05GSUdfTkFNRVNQQUNFUz15CisjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAorIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAogQ09ORklHX1NZU0NUTD15CkBAIC0yMDksMjAgKzIzMCwyOSBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CiBDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15Ci1DT05GSUdfU0xBQj15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0hBVkVfS1BST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0tSRVRQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotCi0jCi0jIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0Ci0jCiBDT05GSUdfTU9EVUxFUz15CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKQEAgLTIzMCwxMiArMjYwLDEwIEBACiBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMPXkKIENPTkZJR19LTU9EPXkKIENPTkZJR19TVE9QX01BQ0hJTkU9eQotCi0jCi0jIEJsb2NrIGxheWVyCi0jCiBDT05GSUdfQkxPQ0s9eQogIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9CU0c9eQorQ09ORklHX0JMT0NLX0NPTVBBVD15CiAKICMKICMgSU8gU2NoZWR1bGVycwpAQCAtMjQ5LDIyICsyNzcsMTkgQEAKICMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQogCiAjCiAjIEJ1cyBvcHRpb25zIChQQ0ksIFBDTUNJQSwgRUlTQSwgSVNBLCBUQykKICMKIENPTkZJR19IV19IQVNfUENJPXkKIENPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9ET01BSU5TPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSV9MRUdBQ1kgaXMgbm90IHNldAogQ09ORklHX01NVT15Ci0KLSMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAotIworQ09ORklHX1pPTkVfRE1BMzI9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLQotIwotIyBQQ0kgSG90cGx1ZyBTdXBwb3J0Ci0jCiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CiAKICMKQEAgLTI3Miw3ICsyOTcsNiBAQAogIwogQ09ORklHX0JJTkZNVF9FTEY9eQogIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotIyBDT05GSUdfQlVJTERfRUxGNjQgaXMgbm90IHNldAogQ09ORklHX01JUFMzMl9DT01QQVQ9eQogQ09ORklHX0NPTVBBVD15CiBDT05GSUdfU1lTVklQQ19DT01QQVQ9eQpAQCAtMjg2LDcgKzMxMCw2IEBACiBDT05GSUdfUE09eQogIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BNX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Niw3ICszMTksNiBAQAogIwogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKLSMgQ09ORklHX05FVERFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19QQUNLRVQ9eQogQ09ORklHX1BBQ0tFVF9NTUFQPXkKIENPTkZJR19VTklYPXkKQEAgLTMwNCw2ICszMjYsNyBAQAogQ09ORklHX1hGUk1fVVNFUj1tCiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogQ09ORklHX1hGUk1fTUlHUkFURT15CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogQ09ORklHX05FVF9LRVk9eQogQ09ORklHX05FVF9LRVlfTUlHUkFURT15CiBDT05GSUdfSU5FVD15CkBAIC0zMjYsNiArMzQ5LDcgQEAKIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9bQogQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD1tCiBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD1tCitDT05GSUdfSU5FVF9MUk89bQogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0zMzMsMjQgKzM1NywxNSBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogQ09ORklHX1RDUF9NRDVTSUc9eQogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogQ09ORklHX05FVFdPUktfU0VDTUFSSz15CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotCi0jCi0jIERDQ1AgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQotIwogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NUUCBDb25maWd1cmF0aW9uIChFWFBFUklNRU5UQUwpCi0jCi0jIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLQotIwotIyBUSVBDIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKLSMKK0NPTkZJR19JUF9TQ1RQPW0KKyMgQ09ORklHX1NDVFBfREJHX01TRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1RQX0RCR19PQkpDTlQgaXMgbm90IHNldAorIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAorQ09ORklHX1NDVFBfSE1BQ19NRDU9eQogIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVE0gaXMgbm90IHNldAogIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKQEAgLTM2MywyNiArMzc4LDUyIEBACiAjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKICMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKLQotIwotIyBRb1MgYW5kL29yIGZhaXIgcXVldWVpbmcKLSMKICMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSF9GSUZPPXkKIAogIwogIyBOZXR3b3JrIHRlc3RpbmcKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCitDT05GSUdfQ0ZHODAyMTE9bQorQ09ORklHX05MODAyMTE9eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfTUFDODAyMTE9bQorCisjCisjIFJhdGUgY29udHJvbCBhbGdvcml0aG0gc2VsZWN0aW9uCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9OT05FIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RpbmcgJ3knIGZvciBhbiBhbGdvcml0aG0gd2lsbAorIworCisjCisjIGJ1aWxkIHRoZSBhbGdvcml0aG0gaW50byBtYWM4MDIxMS4KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJwaWQiCitDT05GSUdfTUFDODAyMTFfUkNfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX01FU0ggaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfUEFDS0VUX0FMSUdOTUVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSUVFRTgwMjExPW0KICMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQotQ09ORklHX0lFRUU4MDIxMV9TT0ZUTUFDPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9TT0ZUTUFDX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQPW0KK0NPTkZJR19SRktJTEw9bQorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKIAogIwogIyBEZXZpY2UgRHJpdmVycwpAQCAtMzkxLDM0ICs0MzIsMTUgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9bQogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotCi0jCi0jIENvbm5lY3RvciAtIHVuaWZpZWQgdXNlcnNwYWNlIDwtPiBrZXJuZWxzcGFjZSBsaW5rZXIKLSMKIENPTkZJR19DT05ORUNUT1I9bQotCi0jCi0jIE1lbW9yeSBUZWNobm9sb2d5IERldmljZXMgKE1URCkKLSMKICMgQ09ORklHX01URCBpcyBub3Qgc2V0Ci0KLSMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBQbHVnIGFuZCBQbGF5IHN1cHBvcnQKLSMKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKK0NPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKQEAgLTQyNyw0OSArNDQ5LDc3IEBACiAjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9TWDggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT05MjIwCi1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKLUNPTkZJR19CTEtfREVWX0lOSVRSRD15CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiBDT05GSUdfQ0RST01fUEtUQ0RWRD1tCiBDT05GSUdfQ0RST01fUEtUQ0RWRF9CVUZGRVJTPTgKICMgQ09ORklHX0NEUk9NX1BLVENEVkRfV0NBQ0hFIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfT1ZFUl9FVEg9bQotCi0jCi0jIE1pc2MgZGV2aWNlcwotIworQ09ORklHX01JU0NfREVWSUNFUz15CisjIENPTkZJR19QSEFOVE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiBDT05GSUdfU0dJX0lPQzQ9bQogIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKLQotIwotIyBBVEEvQVRBUEkvTUZNL1JMTCBzdXBwb3J0Ci0jCisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKIENPTkZJR19JREU9eQogQ09ORklHX0lERV9NQVhfSFdJRlM9NAogQ09ORklHX0JMS19ERVZfSURFPXkKIAogIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKKyMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwogIwogIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVESVNLPXkKICMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVDRD15CitDT05GSUdfQkxLX0RFVl9JREVDRF9WRVJCT1NFX0VSUk9SUz15CiBDT05GSUdfQkxLX0RFVl9JREVUQVBFPXkKIENPTkZJR19CTEtfREVWX0lERUZMT1BQWT15CiAjIENPTkZJR19JREVfVEFTS19JT0NUTCBpcyBub3Qgc2V0CitDT05GSUdfSURFX1BST0NfRlM9eQogCiAjCiAjIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKICMKLUNPTkZJR19JREVfR0VORVJJQz15Ci0jIENPTkZJR19CTEtfREVWX0lERVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19JREVfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBQQ0kgSURFIGNoaXBzZXRzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0JMS19ERVZfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX09QVEk2MjEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9BRUM2MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0FNRDc0WFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9UUklGTEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ1k4MkM2OTMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9IUFQzNFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU0MxMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lUODIxMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lUODIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05TODc0MTUgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9PTEQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9ORVcgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TVldLUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NJSU1BR0UgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TTEM5MEU2NiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1RSTTI5MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lERV9TV0FSTT15Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSURFRE1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERURNQV9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNDc3LDg5ICs1MjcsNjggQEAKICMKIENPTkZJR19SQUlEX0FUVFJTPW0KICMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKLQotIwotIyBTZXJpYWwgQVRBIChwcm9kKSBhbmQgUGFyYWxsZWwgQVRBIChleHBlcmltZW50YWwpIGRyaXZlcnMKLSMKICMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKLSMKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKLQotIwotIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0Ci0jCiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCiAjCiAjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKICMKKyMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKLQotIwotIyBJMk8gZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0kyTyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogQ09ORklHX05FVERFVklDRVM9eQorQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRT15CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNWTEFOPW0KICMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UVU4gaXMgbm90IHNldAotCi0jCi0jIEFSQ25ldCBkZXZpY2VzCi0jCisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0Ci0KLSMKLSMgUEhZIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfUEhZTElCPW0KK0NPTkZJR19QSFlMSUI9eQogCiAjCiAjIE1JSSBQSFkgZGV2aWNlIGRyaXZlcnMKICMKLUNPTkZJR19NQVJWRUxMX1BIWT1tCi1DT05GSUdfREFWSUNPTV9QSFk9bQotQ09ORklHX1FTRU1JX1BIWT1tCi1DT05GSUdfTFhUX1BIWT1tCi1DT05GSUdfQ0lDQURBX1BIWT1tCi1DT05GSUdfVklURVNTRV9QSFk9bQotQ09ORklHX1NNU0NfUEhZPW0KLSMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKK0NPTkZJR19CUk9BRENPTV9QSFk9eQorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUFMVEVLX1BIWSBpcyBub3Qgc2V0CiAjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAotCi0jCi0jIEV0aGVybmV0ICgxMCBvciAxMDBNYml0KQotIworIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKICMgQ09ORklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAogIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAogIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKLQotIwotIyBUdWxpcCBmYW1pbHkgbmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUENJIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAwMCBNYml0KQotIworIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKQEAgLTU2OCw1MyArNTk3LDcwIEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAorIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKLUNPTkZJR19RTEEzWFhYPW0KKyMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwMDAwIE1iaXQpCi0jCitDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotQ09ORklHX0NIRUxTSU9fVDM9bQorIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0CisjIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKICMgQ09ORklHX1MySU8gaXMgbm90IHNldAogIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotQ09ORklHX05FVFhFTl9OSUM9bQotCi0jCi0jIFRva2VuIFJpbmcgZGV2aWNlcwotIworIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0CisjIENPTkZJR19OSVUgaXMgbm90IHNldAorIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKLSMgV2lyZWxlc3MgTEFOIChub24taGFtcmFkaW8pCisjIFdpcmVsZXNzIExBTgogIwotIyBDT05GSUdfTkVUX1JBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dMQU5fODAyMTE9eQorIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkVSVEFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFUk1FUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE1FTCBpcyBub3Qgc2V0CisjIENPTkZJR19QUklTTTU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRDEyMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVF9STkRJU19XTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4NyBpcyBub3Qgc2V0CisjIENPTkZJR19BRE04MjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1A1NF9DT01NT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRINUsgaXMgbm90IHNldAorIyBDT05GSUdfSVdMQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSVdMNDk2NSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0wzOTQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDMgaXMgbm90IHNldAorIyBDT05GSUdfQjQzTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pEMTIxMVJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMCBpcyBub3Qgc2V0CiAKICMKLSMgV2FuIGludGVyZmFjZXMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKICMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotCi0jCi0jIElTRE4gc3Vic3lzdGVtCi0jCiAjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKLQotIwotIyBUZWxlcGhvbnkgU3VwcG9ydAotIwogIyBDT05GSUdfUEhPTkUgaXMgbm90IHNldAogCiAjCkBAIC02MzcsMjQgKzY4Myw4IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0Ci1DT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEPXkKLSMgQ09ORklHX0NPTVBVVE9ORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST0NLRVRQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NZQ0xBREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAotIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKLUNPTkZJR19NT1hBX1NNQVJUSU9fTkVXPW0KLSMgQ09ORklHX0lTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWU5DTElOS01QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTkNMSU5LX0dUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05fSERMQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldAotIyBDT05GSUdfU1ggaXMgbm90IHNldAotIyBDT05GSUdfUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NUQUxEUlYgaXMgbm90IHNldAotQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlQ9eQotQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIAogIwogIyBTZXJpYWwgZHJpdmVycwpAQCAtNjY0LDM3ICs2OTQsMjIgQEAKICMKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAogIworQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlQ9eQorQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlRfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQogIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWDk4X1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlTPXkKIENPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgotCi0jCi0jIElQTUkKLSMKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgV2F0Y2hkb2cgQ2FyZHMKLSMKLSMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVEMgaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVExLIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKLQotIwotIyBUUE0gZGV2aWNlcwotIwogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0KLSMKLSMgSTJDIHN1cHBvcnQKLSMKK0NPTkZJR19ERVZQT1JUPXkKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CiAKICMKQEAgLTcwMiwxMDkgKzcxNywxMzkgQEAKICMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLQotIwotIyBEYWxsYXMncyAxLXdpcmUgYnVzCi0jCiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiAKICMKLSMgSGFyZHdhcmUgTW9uaXRvcmluZyBzdXBwb3J0CisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQogIwotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotIyBDT05GSUdfSFdNT05fVklEIGlzIG5vdCBzZXQKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKLQotIwotIyBEaWdpdGFsIFZpZGVvIEJyb2FkY2FzdGluZyBEZXZpY2VzCi0jCi0jIENPTkZJR19EVkIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCi0jIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQiBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgU291bmQKICMKICMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIworQ09ORklHX1VTQl9TVVBQT1JUPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQotIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfRUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKIAogIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgogIworIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgc3VwcG9ydAotIwogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIworIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi0KLSMKLSMgTEVEIFRyaWdnZXJzCi0jCi0KLSMKLSMgSW5maW5pQmFuZCBzdXBwb3J0Ci0jCiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKLQotIwotIyBFREFDIC0gZXJyb3IgZGV0ZWN0aW9uIGFuZCByZXBvcnRpbmcgKFJBUykgKEVYUEVSSU1FTlRBTCkKLSMKLQotIwotIyBSZWFsIFRpbWUgQ2xvY2sKLSMKK0NPTkZJR19SVENfTElCPXkKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0CisjIFVzZXJzcGFjZSBJL08KICMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBBdXhpbGlhcnkgRGlzcGxheSBzdXBwb3J0Ci0jCi0KLSMKLSMgVmlydHVhbGl6YXRpb24KLSMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC04MjMsMTUgKzg2OCwxNCBAQAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlVTRV9GUz1tCitDT05GSUdfR0VORVJJQ19BQ0w9eQogCiAjCiAjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKQEAgLTg1Myw5ICs4OTcsOSBAQAogQ09ORklHX1BST0NfS0NPUkU9eQogQ09ORklHX1BST0NfU1lTQ1RMPXkKIENPTkZJR19TWVNGUz15Ci0jIENPTkZJR19UTVBGUyBpcyBub3Qgc2V0CitDT05GSUdfVE1QRlM9eQorQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAotQ09ORklHX1JBTUZTPXkKIENPTkZJR19DT05GSUdGU19GUz1tCiAKICMKQEAgLTg3MSwxNCArOTE1LDEzIEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CiBDT05GSUdfTkZTX0ZTPXkKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CkBAIC04OTAsNiArOTMzLDcgQEAKIENPTkZJR19MT0NLRF9WND15CiBDT05GSUdfTkZTX0NPTU1PTj15CiBDT05GSUdfU1VOUlBDPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAogIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKICMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAogIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKQEAgLTg5Nyw0NSArOTQxLDI5IEBACiAjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfOVBfRlMgaXMgbm90IHNldAogCiAjCiAjIFBhcnRpdGlvbiBUeXBlcwogIwogIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKIENPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCiAjIENPTkZJR19OTFMgaXMgbm90IHNldAotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwogQ09ORklHX0RMTT1tCi1DT05GSUdfRExNX1RDUD15Ci0jIENPTkZJR19ETE1fU0NUUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETE1fREVCVUcgaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTUKLUNPTkZJR19DUk9TU0NPTVBJTEU9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ01ETElORT0iIgogQ09ORklHX1NZU19TVVBQT1JUU19LR0RCPXkKICMgQ09ORklHX1NCMVhYWF9DT1JFTElTIGlzIG5vdCBzZXQKQEAgLTk0NiwxMyArOTc0LDEyIEBACiBDT05GSUdfS0VZUz15CiBDT05GSUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotCi0jCi0jIENyeXB0b2dyYXBoaWMgb3B0aW9ucwotIworIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0FFQUQ9bQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19TRVFJVj1tCiBDT05GSUdfQ1JZUFRPX0hBU0g9eQogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKIENPTkZJR19DUllQVE9fSE1BQz15CkBAIC05NzAsNiArOTk3LDExIEBACiBDT05GSUdfQ1JZUFRPX0NCQz1tCiBDT05GSUdfQ1JZUFRPX1BDQkM9bQogQ09ORklHX0NSWVBUT19MUlc9bQorQ09ORklHX0NSWVBUT19YVFM9bQorQ09ORklHX0NSWVBUT19DVFI9bQorQ09ORklHX0NSWVBUT19HQ009bQorQ09ORklHX0NSWVBUT19DQ009bQorQ09ORklHX0NSWVBUT19DUllQVEQ9bQogQ09ORklHX0NSWVBUT19ERVM9bQogQ09ORklHX0NSWVBUT19GQ1JZUFQ9bQogQ09ORklHX0NSWVBUT19CTE9XRklTSD1tCkBAIC05ODMsMTUgKzEwMTUsMTYgQEAKIENPTkZJR19DUllQVE9fQVJDND1tCiBDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCiBDT05GSUdfQ1JZUFRPX0FOVUJJUz1tCitDT05GSUdfQ1JZUFRPX1NFRUQ9bQorQ09ORklHX0NSWVBUT19TQUxTQTIwPW0KIENPTkZJR19DUllQVE9fREVGTEFURT1tCiBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDPW0KIENPTkZJR19DUllQVE9fQ1JDMzJDPW0KIENPTkZJR19DUllQVE9fQ0FNRUxMSUE9bQogIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIGNyeXB0byBkZXZpY2VzCi0jCitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorQ09ORklHX0NSWVBUT19MWk89bQorIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCkBAIC05OTksMTAgKzEwMzIsMTUgQEAKIENPTkZJR19CSVRSRVZFUlNFPXkKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDMTY9bQorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKIENPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQogQ09ORklHX1pMSUJfSU5GTEFURT1tCiBDT05GSUdfWkxJQl9ERUZMQVRFPW0KK0NPTkZJR19MWk9fQ09NUFJFU1M9bQorQ09ORklHX0xaT19ERUNPTVBSRVNTPW0KIENPTkZJR19QTElTVD15CiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIxOV9kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyMTlfZGVmY29uZmlnCmluZGV4IGFmODJlMWEuLjhkZDNhZTMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIxOV9kZWZjb25maWcKKysrIGIvYXJjaC9taXBzL2NvbmZpZ3MvdGIwMjE5X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMy1yYzIKLSMgV2VkIEF1ZyAgOCAxNjoxMTo0NyAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIE1vbiBNYXkgMTIgMTE6NTQ6NTEgMjAwOAogIwogQ09ORklHX01JUFM9eQogCkBAIC0xMCw5ICsxMCwxMSBAQAogIwogIyBDT05GSUdfTUFDSF9BTENIRU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBU0xFUl9FWENJVEUgaXMgbm90IHNldAorIyBDT05GSUdfQkNNNDdYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0RFQ1NUQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9KQVpaIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU0FUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xFTU9URV9GVUxPTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19BVExBUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX01BTFRBIGlzIG5vdCBzZXQKQEAgLTI2LDYgKzI4LDcgQEAKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldApAQCAtNTMsMTIgKzU2LDE3IEBACiBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15CiBDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlE9eQorQ09ORklHX0NFVlRfUjRLPXkKK0NPTkZJR19DU1JDX1I0Sz15CiBDT05GSUdfRE1BX05PTkNPSEVSRU5UPXkKIENPTkZJR19ETUFfTkVFRF9QQ0lfTUFQX1NUQVRFPXkKICMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMjEsNyBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CkBAIC0xMjAsMTAgKzEyOSwxNiBAQAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiAjIENPTkZJR19IWl80OCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTI4IGlzIG5vdCBzZXQKQEAgLTE1NiwyMyArMTcxLDI5IEBACiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA2LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQyLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY2LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc4LDYgKzMwOCw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0yODUsMTUgKzMxNiwxMCBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX01ENSBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldApAQCAtMzA2LDEwICszMzIsNiBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAogCiAjCkBAIC0zMTcsNiArMzM5LDcgQEAKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMzM5LDYgKzM2Miw3IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPW0KQEAgLTM2MCwxMCArMzg0LDExIEBACiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1hJUD15CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKICMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKQEAgLTM3NSwxMCArNDAwLDYgQEAKICMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKICMKQEAgLTM5NCw2ICs0MTUsNyBAQAogIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAogIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAogIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKIENPTkZJR19QSFlMSUI9bQogCkBAIC00MDksNyArNDMxLDggQEAKIENPTkZJR19TTVNDX1BIWT1tCiAjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAogIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVBTFRFS19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CiAjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKQEAgLTQyMCw2ICs0NDMsMTAgQEAKICMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUENJPXkKICMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAogIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldApAQCAtNDI3LDcgKzQ1NCw2IEBACiAjIENPTkZJR19CNDQgaXMgbm90IHNldAogIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDMzU4MTUgaXMgbm90IHNldAotIyBDT05GSUdfREdSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CkBAIC00MzksNiArNDY1LDcgQEAKICMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAogIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CkBAIC00NTEsNiArNDc4LDEwIEBACiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKQEAgLTQ3Miw2ICs1MDMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTQ4MCwxNCArNTEyLDEyIEBACiAjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTUwNiw3ICs1MzYsNiBAQAogIwogIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNTMzLDcgKzU2Miw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTU1Miw1MiArNTgzLDYyIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiBDT05GSUdfR1BJT19UQjAyMTk9eQotIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKIENPTkZJR19HUElPX1ZSNDFYWD15CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAogCiAjCiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIworIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CiAKICMKICMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAogIwogIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKQEAgLTYxNiw2ICs2NTcsNyBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9bQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtNjI0LDE1ICs2NjYsMTggQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPW0KLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9bQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC02NjUsMTAgKzcxMCw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtNjk0LDE3ICs3MzUsMTEgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKQEAgLTcyOSw5ICs3NjQsMTAgQEAKICMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKICMKICMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC03NDAsMjMgKzc3Niw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogQ09ORklHX1JUQ19EUlZfVlI0MVhYPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03NzEsMjAgKzc5MCwxNiBAQAogIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19GU19NQkNBQ0hFPXkKICMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19ST01GU19GUz1tCitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKICMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQVVUT0ZTNF9GUz15CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTgxMyw3ICs4MjgsNiBAQAogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTgyOCwyNCArODQyLDIxIEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0NSQU1GUz1tCiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19GUz1tCiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKIENPTkZJR19ORlNfRlM9eQogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogQ09ORklHX05GU0Q9eQogQ09ORklHX05GU0RfVjM9eQogIyBDT05GSUdfTkZTRF9WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CiBDT05GSUdfTE9DS0RfVjQ9eQpAQCAtODY2LDQ3ICs4NzcsMzggQEAKICMKICMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIwogIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CiAKICMKLSMgUHJvZmlsaW5nIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0Ci0KLSMKICMgS2VybmVsIGhhY2tpbmcKICMKIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JPU1NDT01QSUxFPXkKLUNPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCBpcD1hbnkgcm9vdD0vZGV2L25mcyIKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0NNRExJTkU9ImNjYT0zIG1lbT02NE0gY29uc29sZT10dHlWUjAsMTE1MjAwIGlwPWFueSByb290PS9kZXYvbmZzIgogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKICMKICMgQ09ORklHX0tFWVMgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIyNl9kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyMjZfZGVmY29uZmlnCmluZGV4IGE5NTM4NWIuLjJiYTI0MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIyNl9kZWZjb25maWcKKysrIGIvYXJjaC9taXBzL2NvbmZpZ3MvdGIwMjI2X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMy1yYzIKLSMgVGh1IEF1ZyAgOSAxMToxNjo1NSAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIE1vbiBNYXkgMTIgMTE6NTM6NTQgMjAwOAogIwogQ09ORklHX01JUFM9eQogCkBAIC0xMCw5ICsxMCwxMSBAQAogIwogIyBDT05GSUdfTUFDSF9BTENIRU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBU0xFUl9FWENJVEUgaXMgbm90IHNldAorIyBDT05GSUdfQkNNNDdYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0RFQ1NUQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9KQVpaIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU0FUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xFTU9URV9GVUxPTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19BVExBUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX01BTFRBIGlzIG5vdCBzZXQKQEAgLTI2LDYgKzI4LDcgQEAKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldApAQCAtNTMsMTIgKzU2LDE3IEBACiBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15CiBDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlE9eQorQ09ORklHX0NFVlRfUjRLPXkKK0NPTkZJR19DU1JDX1I0Sz15CiBDT05GSUdfRE1BX05PTkNPSEVSRU5UPXkKIENPTkZJR19ETUFfTkVFRF9QQ0lfTUFQX1NUQVRFPXkKICMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMjEsNyBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CkBAIC0xMjAsMTAgKzEyOSwxNiBAQAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiAjIENPTkZJR19IWl80OCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTI4IGlzIG5vdCBzZXQKQEAgLTE1NiwyMyArMTcxLDI5IEBACiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA2LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQyLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY2LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc3LDYgKzMwNyw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0yODQsMTUgKzMxNSwxMCBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX01ENSBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldApAQCAtMzA1LDEwICszMzEsNiBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAogCiAjCkBAIC0zMTYsNiArMzM4LDcgQEAKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMzM4LDYgKzM2MSw3IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPXkKQEAgLTM1OSwxMCArMzgzLDExIEBACiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1hJUD15CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKICMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKQEAgLTQwMiwxOCArNDI3LDEzIEBACiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19TQ1NJX1NBU19BVFRSUz1tCiBDT05GSUdfU0NTSV9TQVNfTElCU0FTPW0KK0NPTkZJR19TQ1NJX1NBU19IT1NUX1NNUD15CiAjIENPTkZJR19TQ1NJX1NBU19MSUJTQVNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CkBAIC00MjgsNiArNDQ4LDcgQEAKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAogQ09ORklHX05FVF9FVEhFUk5FVD15CkBAIC00NDAsNiArNDYxLDEwIEBACiAjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKQEAgLTQ0Nyw3ICs0NzIsNiBAQAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQzM1ODE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQogIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKQEAgLTQ1NSw2ICs0NzksNyBAQAogIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAogIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT08gaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtNDcwLDYgKzQ5NSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNDc4LDcgKzUwNCw2IEBACiBDT05GSUdfVVNCX0tBV0VUSD1tCiBDT05GSUdfVVNCX1BFR0FTVVM9bQogQ09ORklHX1VTQl9SVEw4MTUwPW0KLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldApAQCAtNDg2LDcgKzUxMSw2IEBACiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTUwNSw3ICs1MjksNiBAQAogIwogIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNTMyLDcgKzU1NSw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTU1MSw1MiArNTc2LDYyIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19HUElPX1RCMDIxOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAogQ09ORklHX0dQSU9fVlI0MVhYPXkKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAogIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwogIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAotIyBDT05GSUdfRkIgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydApAQCAtNjE1LDYgKzY1MCw3IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogQ09ORklHX1VTQj15CiAjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCkBAIC02MjMsMTUgKzY1OSwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQEAgLTY1NywxMyArNjk2LDE2IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC02NzYsMTAgKzcxOCw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtNzA1LDE3ICs3NDMsMTEgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKQEAgLTc0MCw5ICs3NzIsMTAgQEAKICMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKICMKICMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC03NTEsMjMgKzc4NCw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogQ09ORklHX1JUQ19EUlZfVlI0MVhYPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03ODIsMTQgKzc5OCwxMSBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotQ09ORklHX1JPTUZTX0ZTPW0KK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtODE4LDcgKzgzMSw2IEBACiBDT05GSUdfVE1QRlM9eQogQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAotQ09ORklHX1JBTUZTPXkKICMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtODMzLDI0ICs4NDUsMjEgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPW0KICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPW0KICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0RfVENQIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTg3MSw0NyArODgwLDM4IEBACiAjCiAjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKICMgQ09ORklHX05MUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0NST1NTQ09NUElMRT15Ci1DT05GSUdfQ01ETElORT0ibWVtPTMyTSBjb25zb2xlPXR0eVZSMCwxMTUyMDAiCisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19DTURMSU5FPSJjY2E9MyBtZW09MzJNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCIKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9bQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDI4N19kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyODdfZGVmY29uZmlnCmluZGV4IDQwZDRhNDBhLi5hNWQwZjNjIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvY29uZmlncy90YjAyODdfZGVmY29uZmlnCisrKyBiL2FyY2gvbWlwcy9jb25maWdzL3RiMDI4N19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjMtcmMyCi0jIFRodSBBdWcgIDkgMTQ6MDM6NTQgMjAwNworIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMQorIyBNb24gTWF5IDEyIDExOjU1OjU1IDIwMDgKICMKIENPTkZJR19NSVBTPXkKIApAQCAtMTAsOSArMTAsMTEgQEAKICMKICMgQ09ORklHX01BQ0hfQUxDSEVNWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CQVNMRVJfRVhDSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JDTTQ3WFggaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19DT0JBTFQgaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9ERUNTVEFUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0hfSkFaWiBpcyBub3Qgc2V0CisjIENPTkZJR19MQVNBVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MRU1PVEVfRlVMT05HIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfQVRMQVMgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19NQUxUQSBpcyBub3Qgc2V0CkBAIC0yNiw2ICsyOCw3IEBACiAjIENPTkZJR19QTUNfWU9TRU1JVEUgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMjIgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMjcgaXMgbm90IHNldAorIyBDT05GSUdfU0dJX0lQMjggaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMzIgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0NSSElORSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ0FSTUVMIGlzIG5vdCBzZXQKQEAgLTUzLDEyICs1NiwxNyBAQAogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFJPRklMRT15CiBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKIENPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQogQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CiBDT05GSUdfR0VORVJJQ19IQVJESVJRU19OT19fRE9fSVJRPXkKK0NPTkZJR19DRVZUX1I0Sz15CitDT05GSUdfQ1NSQ19SNEs9eQogQ09ORklHX0RNQV9OT05DT0hFUkVOVD15CiBDT05GSUdfRE1BX05FRURfUENJX01BUF9TVEFURT15CiAjIENPTkZJR19IT1RQTFVHX0NQVSBpcyBub3Qgc2V0CkBAIC0xMTMsNiArMTIxLDcgQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKIENPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CiBDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldApAQCAtMTIwLDEwICsxMjksMTYgQEAKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MAogQ09ORklHX1ZJUlRfVE9fQlVTPXkKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogIyBDT05GSUdfSFpfNDggaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzEyOCBpcyBub3Qgc2V0CkBAIC0xNTYsMTIgKzE3MSwxNSBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAogIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMPXkKQEAgLTE3Myw2ICsxOTEsOCBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA1LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQxLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY1LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc4LDYgKzMwNyw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQ9eQpAQCAtMzAyLDggKzMzMiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iYmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTMyMCwxMCArMzQ4LDYgQEAKICMgQ09ORklHX0xBUEIgaXMgbm90IHNldAogIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwogIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKIAogIwpAQCAtMzMxLDYgKzM1NSw3IEBACiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNzgsNyBAQAogIwogIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiAjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgogQ09ORklHX1NUQU5EQUxPTkU9eQogQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQogQ09ORklHX0ZXX0xPQURFUj1tCkBAIC0zNzQsMTAgKzQwMCwxMSBAQAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CitDT05GSUdfQkxLX0RFVl9YSVA9eQogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiAjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCkBAIC00MTYsMTAgKzQ0MywxNCBAQAogIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0xPV0xFVkVMIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTQyOSw3ICs0NjAsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldApAQCAtNDU4LDcgKzQ4OCw5IEBACiAjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldApAQCAtNDcyLDE1ICs1MDQsOSBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CkBAIC01MjAsNiArNTQ2LDcgQEAKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAogQ09ORklHX05FVF9FVEhFUk5FVD15CkBAIC01MzIsNiArNTU5LDEwIEBACiAjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKQEAgLTUzOSw3ICs1NzAsNiBAQAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQzM1ODE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldApAQCAtNTUxLDYgKzU4MSw3IEBACiAjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5VE9PXzgxMjkgaXMgbm90IHNldAogIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtNTYzLDYgKzU5NCwxMCBAQAogIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RMMksgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAogIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKICMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CkBAIC01ODQsNiArNjE5LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC01OTIsNyArNjI4LDYgQEAKICMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CkBAIC02MDAsNyArNjM1LDYgQEAKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldApAQCAtNjIyLDcgKzY1Niw2IEBACiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNjQ5LDcgKzY4Miw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTY2OCw0OSArNzAzLDUzIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19HUElPX1RCMDIxOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAogQ09ORklHX0dQSU9fVlI0MVhYPXkKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogQ09ORklHX01GRF9TTTUwMT15CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTD1tCiBDT05GSUdfRkI9eQpAQCAtNzE5LDkgKzc1OCwxMSBAQAogQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CiBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKIENPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKIENPTkZJR19GQl9ERUZFUlJFRF9JTz15CiAjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKQEAgLTc1Nyw3ICs3OTgsMTQgQEAKICMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAogQ09ORklHX0ZCX1NNNTAxPXkKKyMgQ09ORklHX0ZCX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKQEAgLTc4Nyw2ICs4MzUsNyBAQAogQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQogIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIElucHV0IERldmljZXMKQEAgLTgwNyw2ICs4NTYsNyBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9bQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtODE1LDE1ICs4NjUsMTggQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPW0KLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9bQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC04NDksMTMgKzkwMiwxNiBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtODY4LDEwICs5MjQsNiBAQAogIwogIyBVU0IgcG9ydCBkcml2ZXJzCiAjCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwogIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTg5NiwzNiArOTQ4LDE0IEBACiAjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKLQotIwotIyBETUEgQ2xpZW50cwotIwotCi0jCi0jIERNQSBEZXZpY2VzCi0jCi0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTQwLDI1ICs5NzAsMjEgQEAKICMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15CiAjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiBDT05GSUdfWEZTX0ZTPXkKIENPTkZJR19YRlNfUVVPVEE9eQotIyBDT05GSUdfWEZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIENPTkZJR19YRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci1DT05GSUdfUk9NRlNfRlM9bQorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CiBDT05GSUdfUVVPVEFDVEw9eQotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtOTg3LDcgKzEwMTMsNiBAQAogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMDIsMjQgKzEwMjcsMjEgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPW0KICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPW0KICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xMDQwLDQ3ICsxMDYyLDM4IEBACiAjCiAjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKICMgQ09ORklHX05MUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0NST1NTQ09NUElMRT15Ci1DT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVZSMCwxMTUyMDAgaXA9YW55IHJvb3Q9L2Rldi9uZnMiCisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19DTURMSU5FPSJjY2E9MyBtZW09NjRNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCBpcD1hbnkgcm9vdD0vZGV2L25mcyIKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPXkKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvZncvYXJjL2lkZW50aWZ5LmMgYi9hcmNoL21pcHMvZncvYXJjL2lkZW50aWZ5LmMKaW5kZXggMjhkZmQyZS4uMjMwNjY5OCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Z3L2FyYy9pZGVudGlmeS5jCisrKyBiL2FyY2gvbWlwcy9mdy9hcmMvaWRlbnRpZnkuYwpAQCAtNjcsNiArNjcsMTEgQEAKIAkJLmxpbmFtZQkJPSAiU05JIFJNMjAwX1BDSSIsCiAJCS50eXBlCQk9IE1BQ0hfU05JX1JNMjAwX1BDSSwKIAkJLmZsYWdzCQk9IFBST01fRkxBR19ET05UX0ZSRUVfVEVNUCwKKwl9LCB7CisJCS5hcmNuYW1lCT0gIlJNMjAwUENJLVI1SyIsCisJCS5saW5hbWUJCT0gIlNOSSBSTTIwMF9QQ0ktUjVLIiwKKwkJLnR5cGUJCT0gTUFDSF9TTklfUk0yMDBfUENJLAorCQkuZmxhZ3MJCT0gUFJPTV9GTEFHX0RPTlRfRlJFRV9URU1QLAogCX0KIH07CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvY2V2dC10eHg5LmMgYi9hcmNoL21pcHMva2VybmVsL2NldnQtdHh4OS5jCmluZGV4IDc5NWNiOGYuLmI1ZmM0ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvY2V2dC10eHg5LmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9jZXZ0LXR4eDkuYwpAQCAtMTYxLDYgKzE2MSw5IEBACiAJc3RydWN0IHR4eDlfdG1yX3JlZyBfX2lvbWVtICp0bXJwdHI7CiAKIAl0bXJwdHIgPSBpb3JlbWFwKGJhc2VhZGRyLCBzaXplb2Yoc3RydWN0IHR4eDlfdG1yX3JlZykpOworCS8qIFN0YXJ0IG9uY2UgdG8gbWFrZSBDb3VudGVyUmVzZXRFbmFibGUgZWZmZWN0aXZlICovCisJX19yYXdfd3JpdGVsKFRYeDlfVE1UQ1JfQ1JFIHwgVFh4OV9UTVRDUl9UQ0UsICZ0bXJwdHItPnRjcik7CisJLyogU3RvcCBhbmQgcmVzZXQgdGhlIGNvdW50ZXIgKi8KIAlfX3Jhd193cml0ZWwoVFh4OV9UTVRDUl9DUkUsICZ0bXJwdHItPnRjcik7CiAJX19yYXdfd3JpdGVsKDAsICZ0bXJwdHItPnRpc3IpOwogCV9fcmF3X3dyaXRlbCgweGZmZmZmZmZmLCAmdG1ycHRyLT5jcHJhKTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jIGIvYXJjaC9taXBzL2tlcm5lbC9ydGx4LmMKaW5kZXggYjg4ZjFjMS4uYjU1NjQxOSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9ydGx4LmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9ydGx4LmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvZWxmLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlbG9hZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0zOTIsOCArMzkzLDEyIEBACiBzdGF0aWMgaW50IGZpbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCBlcnI7CiAKLQlyZXR1cm4gcnRseF9vcGVuKG1pbm9yLCAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spID8gMCA6IDEpOworCWxvY2tfa2VybmVsKCk7CisJZXJyID0gcnRseF9vcGVuKG1pbm9yLCAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spID8gMCA6IDEpOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGZpbGVfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvc21wLmMgYi9hcmNoL21pcHMva2VybmVsL3NtcC5jCmluZGV4IDYzMzcwY2QuLmNkZjg3YTkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvc21wLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zbXAuYwpAQCAtMjE2LDYgKzIxNiw3IEBACiB7CiAJcmV0dXJuIHNtcF9jYWxsX2Z1bmN0aW9uX21hc2soY3B1X29ubGluZV9tYXAsIGZ1bmMsIGluZm8sIHJldHJ5LCB3YWl0KTsKIH0KK0VYUE9SVF9TWU1CT0woc21wX2NhbGxfZnVuY3Rpb24pOwogCiB2b2lkIHNtcF9jYWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKQogewpAQCAtMjcxLDYgKzI3Miw3IEBACiAJcHV0X2NwdSgpOwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChzbXBfY2FsbF9mdW5jdGlvbl9zaW5nbGUpOwogCiBzdGF0aWMgdm9pZCBzdG9wX3RoaXNfY3B1KHZvaWQgKmR1bW15KQogewpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL21pcHMva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCBlYmQ5ZGI4Li41ZWI0NjgxIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9hcmNoL21pcHMva2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtNzMsMyArNzMsNCBAQAogCXByZXBhcmVfZnJhbWV0cmFjZShyZWdzKTsKIAlzYXZlX2NvbnRleHRfc3RhY2sodHJhY2UsIHJlZ3MpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3ZwZS5jIGIvYXJjaC9taXBzL2tlcm5lbC92cGUuYwppbmRleCAyNzk0NTAxLi45NzJiMmQyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3ZwZS5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvdnBlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvZWxmLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlbG9hZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0xMDUwLDE3ICsxMDUxLDIwIEBACiAJZW51bSB2cGVfc3RhdGUgc3RhdGU7CiAJc3RydWN0IHZwZV9ub3RpZmljYXRpb25zICpub3Q7CiAJc3RydWN0IHZwZSAqdjsKLQlpbnQgcmV0OworCWludCByZXQsIGVyciA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWlmIChtaW5vciAhPSBpbWlub3IoaW5vZGUpKSB7CiAJCS8qIGFzc3VtZSBvbmx5IDEgZGV2aWNlIGF0IHRoZSBtb21lbnQuICovCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlZQRSBsb2FkZXI6IG9ubHkgdnBlMSBpcyBzdXBwb3J0ZWRcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCiAJaWYgKCh2ID0gZ2V0X3ZwZSh0Y2xpbWl0KSkgPT0gTlVMTCkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJWUEUgbG9hZGVyOiB1bmFibGUgdG8gZ2V0IHZwZVxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAKIAlzdGF0ZSA9IHhjaGcoJnYtPnN0YXRlLCBWUEVfU1RBVEVfSU5VU0UpOwpAQCAtMTEwMCw2ICsxMTA0LDggQEAKIAl2LT5zaGFyZWRfcHRyID0gTlVMTDsKIAl2LT5fX3N0YXJ0ID0gMDsKIAorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2xhc2F0L2ludGVycnVwdC5jIGIvYXJjaC9taXBzL2xhc2F0L2ludGVycnVwdC5jCmluZGV4IGNmZWFiNjYuLmE1NmMxNTAgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9sYXNhdC9pbnRlcnJ1cHQuYworKysgYi9hcmNoL21pcHMvbGFzYXQvaW50ZXJydXB0LmMKQEAgLTM0LDExICszNCwxMyBAQAogCiB2b2lkIGRpc2FibGVfbGFzYXRfaXJxKHVuc2lnbmVkIGludCBpcnFfbnIpCiB7CisJaXJxX25yIC09IExBU0FUX0lSUV9CQVNFOwogCSpsYXNhdF9pbnRfbWFzayAmPSB+KDEgPDwgaXJxX25yKSA8PCBsYXNhdF9pbnRfbWFza19zaGlmdDsKIH0KIAogdm9pZCBlbmFibGVfbGFzYXRfaXJxKHVuc2lnbmVkIGludCBpcnFfbnIpCiB7CisJaXJxX25yIC09IExBU0FUX0lSUV9CQVNFOwogCSpsYXNhdF9pbnRfbWFzayB8PSAoMSA8PCBpcnFfbnIpIDw8IGxhc2F0X2ludF9tYXNrX3NoaWZ0OwogfQogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbGFzYXQvbGFzYXRfYm9hcmQuYyBiL2FyY2gvbWlwcy9sYXNhdC9sYXNhdF9ib2FyZC5jCmluZGV4IGVjMmY2NTguLjMxZTMyOGIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9sYXNhdC9sYXNhdF9ib2FyZC5jCisrKyBiL2FyY2gvbWlwcy9sYXNhdC9sYXNhdF9ib2FyZC5jCkBAIC0yMywxOCArMjMsMTkgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3RpbmZvLmg+CiAjaW5jbHVkZSA8YXNtL2FkZHJzcGFjZS5oPgogI2luY2x1ZGUgImF0OTNjLmgiCiAvKiBOZXcgbW9kZWwgZGVzY3JpcHRpb24gdGFibGUgKi8KICNpbmNsdWRlICJsYXNhdF9tb2RlbHMuaCIKIAorc3RhdGljIERFRklORV9NVVRFWChsYXNhdF9lZXByb21fbXV0ZXgpOworCiAjZGVmaW5lIEVFUFJPTV9DUkMoZGF0YSwgbGVuKSAofmNyYzMyKH4wLCBkYXRhLCBsZW4pKQogCiBzdHJ1Y3QgbGFzYXRfaW5mbyBsYXNhdF9ib2FyZF9pbmZvOwogCi12b2lkIHVwZGF0ZV9iY2FzdGFkZHIodm9pZCk7Ci0KIGludCBFRVBST01SZWFkKHVuc2lnbmVkIGludCBwb3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW4pCiB7CiAJaW50IGk7CkBAIC0yNTgsMTAgKzI1OSw2IEBACiAJCQlzcHJpbnRmKGxhc2F0X2JvYXJkX2luZm8ubGlfdHlwZXN0ciwgIiVkIiwgMTAgKiBjKTsKIAl9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19JTkVUKSAmJiBkZWZpbmVkKENPTkZJR19TWVNDVEwpCi0JdXBkYXRlX2JjYXN0YWRkcigpOwotI2VuZGlmCi0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMjY5LDYgKzI2Niw4IEBACiB7CiAJdW5zaWduZWQgbG9uZyBjcmM7CiAKKwltdXRleF9sb2NrKCZsYXNhdF9lZXByb21fbXV0ZXgpOworCiAJLyogR2VuZXJhdGUgdGhlIENSQyAqLwogCWNyYyA9IEVFUFJPTV9DUkMoKHVuc2lnbmVkIGNoYXIgKikoJmxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8pLAogCQkgICAgc2l6ZW9mKHN0cnVjdCBsYXNhdF9lZXByb21fc3RydWN0KSAtIDQpOwpAQCAtMjc3LDQgKzI3Niw2IEBACiAJLyogV3JpdGUgdGhlIEVFUFJPTSBpbmZvICovCiAJRUVQUk9NV3JpdGUoMCwgKHVuc2lnbmVkIGNoYXIgKikmbGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mbywKIAkJICAgIHNpemVvZihzdHJ1Y3QgbGFzYXRfZWVwcm9tX3N0cnVjdCkpOworCisJbXV0ZXhfdW5sb2NrKCZsYXNhdF9lZXByb21fbXV0ZXgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5jIGIvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5jCmluZGV4IDM4OTMzNmMuLjg2Njg4MWUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9sYXNhdC9zeXNjdGwuYworKysgYi9hcmNoL21pcHMvbGFzYXQvc3lzY3RsLmMKQEAgLTI5LDE1ICsyOSwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L25ldC5oPgogI2luY2x1ZGUgPGxpbnV4L2luZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgPGFzbS90aW1lLmg+CiAKLSNpbmNsdWRlICJzeXNjdGwuaCIKKyNpZmRlZiBDT05GSUdfRFMxNjAzCiAjaW5jbHVkZSAiZHMxNjAzLmgiCi0KLXN0YXRpYyBERUZJTkVfTVVURVgobGFzYXRfaW5mb19tdXRleCk7CisjZW5kaWYKIAogLyogU3RyYXRlZ3kgZnVuY3Rpb24gdG8gd3JpdGUgRUVQUk9NIGFmdGVyIGNoYW5naW5nIHN0cmluZyBlbnRyeSAqLwogaW50IHN5c2N0bF9sYXNhdHN0cmluZyhjdGxfdGFibGUgKnRhYmxlLCBpbnQgKm5hbWUsIGludCBubGVuLApAQCAtNDYsMTggKzQ0LDE1IEBACiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlyID0gc3lzY3RsX3N0cmluZyh0YWJsZSwgbmFtZSwKIAkJCSAgbmxlbiwgb2xkdmFsLCBvbGRsZW5wLCBuZXd2YWwsIG5ld2xlbik7Ci0JaWYgKHIgPCAwKSB7Ci0JCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJaWYgKHIgPCAwKQogCQlyZXR1cm4gcjsKLQl9CisKIAlpZiAobmV3dmFsICYmIG5ld2xlbikKIAkJbGFzYXRfd3JpdGVfZWVwcm9tX2luZm8oKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCi0JcmV0dXJuIDE7CisJcmV0dXJuIDA7CiB9CiAKIApAQCAtNjcsMTQgKzYyLDExIEBACiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlyID0gcHJvY19kb3N0cmluZyh0YWJsZSwgd3JpdGUsIGZpbHAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7Ci0JaWYgKCghd3JpdGUpIHx8IHIpIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAoKCF3cml0ZSkgfHwgcikKIAkJcmV0dXJuIHI7Ci0JfQorCiAJbGFzYXRfd3JpdGVfZWVwcm9tX2luZm8oKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NSwyOCArNzcsMjQgQEAKIHsKIAlpbnQgcjsKIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCXIgPSBwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlscCwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKLQlpZiAoKCF3cml0ZSkgfHwgcikgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmICgoIXdyaXRlKSB8fCByKQogCQlyZXR1cm4gcjsKLQl9CisKIAlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOwotCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19EUzE2MDMKIHN0YXRpYyBpbnQgcnRjdG1wOwogCi0jaWZkZWYgQ09ORklHX0RTMTYwMwogLyogcHJvYyBmdW5jdGlvbiB0byByZWFkL3dyaXRlIFJlYWxUaW1lIENsb2NrICovCiBpbnQgcHJvY19kb2xhc2F0cnRjKGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgc3RydWN0IGZpbGUgKmZpbHAsCiAJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByOwogCi0JbXV0ZXhfbG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAJaWYgKCF3cml0ZSkgewogCQlydGN0bXAgPSByZWFkX3BlcnNpc3RlbnRfY2xvY2soKTsKIAkJLyogY2hlY2sgZm9yIHRpbWUgPCAwIGFuZCBzZXQgdG8gMCAqLwpAQCAtMTE0LDEyICsxMDIsMTEgQEAKIAkJCXJ0Y3RtcCA9IDA7CiAJfQogCXIgPSBwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlscCwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKLQlpZiAoKCF3cml0ZSkgfHwgcikgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmIChyKQogCQlyZXR1cm4gcjsKLQl9Ci0JcnRjX21pcHNfc2V0X21tc3MocnRjdG1wKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCisJaWYgKHdyaXRlKQorCQlydGNfbWlwc19zZXRfbW1zcyhydGN0bXApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMzIsMTcgKzExOSwxNCBAQAogewogCWludCByOwogCi0JbXV0ZXhfbG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAJciA9IHN5c2N0bF9pbnR2ZWModGFibGUsIG5hbWUsIG5sZW4sIG9sZHZhbCwgb2xkbGVucCwgbmV3dmFsLCBuZXdsZW4pOwotCWlmIChyIDwgMCkgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7Ci0JfQorCiAJaWYgKG5ld3ZhbCAmJiBuZXdsZW4pCiAJCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAotCXJldHVybiAxOworCXJldHVybiAwOwogfQogCiAjaWZkZWYgQ09ORklHX0RTMTYwMwpAQCAtMTUzLDUwICsxMzcsMjcgQEAKIHsKIAlpbnQgcjsKIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCXJ0Y3RtcCA9IHJlYWRfcGVyc2lzdGVudF9jbG9jaygpOwogCWlmIChydGN0bXAgPCAwKQogCQlydGN0bXAgPSAwOwogCXIgPSBzeXNjdGxfaW50dmVjKHRhYmxlLCBuYW1lLCBubGVuLCBvbGR2YWwsIG9sZGxlbnAsIG5ld3ZhbCwgbmV3bGVuKTsKLQlpZiAociA8IDApIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAociA8IDApCiAJCXJldHVybiByOwotCX0KIAlpZiAobmV3dmFsICYmIG5ld2xlbikKIAkJcnRjX21pcHNfc2V0X21tc3MocnRjdG1wKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCi0JcmV0dXJuIDE7CisJcmV0dXJuIHI7CiB9CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19JTkVUCi1zdGF0aWMgY2hhciBsYXNhdF9iY2FzdGFkZHJbMTZdOwotCi12b2lkIHVwZGF0ZV9iY2FzdGFkZHIodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgaXA7Ci0KLQlpcCA9IChsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvLmlwYWRkciAmCi0JCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ubmV0bWFzaykgfAotCQl+bGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mby5uZXRtYXNrOwotCi0Jc3ByaW50ZihsYXNhdF9iY2FzdGFkZHIsICIlZC4lZC4lZC4lZCIsCi0JCQkoaXApICAgICAgICYgMHhmZiwKLQkJCShpcCA+PiAgOCkgJiAweGZmLAotCQkJKGlwID4+IDE2KSAmIDB4ZmYsCi0JCQkoaXAgPj4gMjQpICYgMHhmZik7Ci19Ci0KLXN0YXRpYyBjaGFyIHByb2NfbGFzYXRfaXBidWZbMzJdOwotCi0vKiBQYXJzaW5nIG9mIElQIGFkZHJlc3MgKi8KIGludCBwcm9jX2xhc2F0X2lwKGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgc3RydWN0IGZpbGUgKmZpbHAsCiAJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXVuc2lnbmVkIGludCBpcDsKIAljaGFyICpwLCBjOwogCWludCBsZW47CisJY2hhciBpcGJ1ZlszMl07CiAKIAlpZiAoIXRhYmxlLT5kYXRhIHx8ICF0YWJsZS0+bWF4bGVuIHx8ICEqbGVucCB8fAogCSAgICAoKnBwb3MgJiYgIXdyaXRlKSkgewpAQCAtMjA0LDExNyArMTY1LDg4IEBACiAJCXJldHVybiAwOwogCX0KIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCWlmICh3cml0ZSkgewogCQlsZW4gPSAwOwogCQlwID0gYnVmZmVyOwogCQl3aGlsZSAobGVuIDwgKmxlbnApIHsKLQkJCWlmIChnZXRfdXNlcihjLCBwKyspKSB7Ci0JCQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwkJCWlmIChnZXRfdXNlcihjLCBwKyspKQogCQkJCXJldHVybiAtRUZBVUxUOwotCQkJfQogCQkJaWYgKGMgPT0gMCB8fCBjID09ICdcbicpCiAJCQkJYnJlYWs7CiAJCQlsZW4rKzsKIAkJfQotCQlpZiAobGVuID49IHNpemVvZihwcm9jX2xhc2F0X2lwYnVmKS0xKQotCQkJbGVuID0gc2l6ZW9mKHByb2NfbGFzYXRfaXBidWYpIC0gMTsKLQkJaWYgKGNvcHlfZnJvbV91c2VyKHByb2NfbGFzYXRfaXBidWYsIGJ1ZmZlciwgbGVuKSkgewotCQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwkJaWYgKGxlbiA+PSBzaXplb2YoaXBidWYpLTEpCisJCQlsZW4gPSBzaXplb2YoaXBidWYpIC0gMTsKKwkJaWYgKGNvcHlfZnJvbV91c2VyKGlwYnVmLCBidWZmZXIsIGxlbikpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJfQotCQlwcm9jX2xhc2F0X2lwYnVmW2xlbl0gPSAwOworCQlpcGJ1ZltsZW5dID0gMDsKIAkJKnBwb3MgKz0gKmxlbnA7CiAJCS8qIE5vdyBzZWUgaWYgd2UgY2FuIGNvbnZlcnQgaXQgdG8gYSB2YWxpZCBJUCAqLwotCQlpcCA9IGluX2F0b24ocHJvY19sYXNhdF9pcGJ1Zik7CisJCWlwID0gaW5fYXRvbihpcGJ1Zik7CiAJCSoodW5zaWduZWQgaW50ICopKHRhYmxlLT5kYXRhKSA9IGlwOwogCQlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOwogCX0gZWxzZSB7CiAJCWlwID0gKih1bnNpZ25lZCBpbnQgKikodGFibGUtPmRhdGEpOwotCQlzcHJpbnRmKHByb2NfbGFzYXRfaXBidWYsICIlZC4lZC4lZC4lZCIsCisJCXNwcmludGYoaXBidWYsICIlZC4lZC4lZC4lZCIsCiAJCQkoaXApICAgICAgICYgMHhmZiwKIAkJCShpcCA+PiAgOCkgJiAweGZmLAogCQkJKGlwID4+IDE2KSAmIDB4ZmYsCiAJCQkoaXAgPj4gMjQpICYgMHhmZik7Ci0JCWxlbiA9IHN0cmxlbihwcm9jX2xhc2F0X2lwYnVmKTsKKwkJbGVuID0gc3RybGVuKGlwYnVmKTsKIAkJaWYgKGxlbiA+ICpsZW5wKQogCQkJbGVuID0gKmxlbnA7CiAJCWlmIChsZW4pCi0JCQlpZiAoY29weV90b191c2VyKGJ1ZmZlciwgcHJvY19sYXNhdF9pcGJ1ZiwgbGVuKSkgewotCQkJCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJCQlpZiAoY29weV90b191c2VyKGJ1ZmZlciwgaXBidWYsIGxlbikpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQl9CiAJCWlmIChsZW4gPCAqbGVucCkgewotCQkJaWYgKHB1dF91c2VyKCdcbicsICgoY2hhciAqKSBidWZmZXIpICsgbGVuKSkgewotCQkJCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJCQlpZiAocHV0X3VzZXIoJ1xuJywgKChjaGFyICopIGJ1ZmZlcikgKyBsZW4pKQogCQkJCXJldHVybiAtRUZBVUxUOwotCQkJfQogCQkJbGVuKys7CiAJCX0KIAkJKmxlbnAgPSBsZW47CiAJCSpwcG9zICs9IGxlbjsKIAl9Ci0JdXBkYXRlX2JjYXN0YWRkcigpOwotCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19JTkVUKSAqLworI2VuZGlmCiAKLXN0YXRpYyBpbnQgc3lzY3RsX2xhc2F0X2VlcHJvbV92YWx1ZShjdGxfdGFibGUgKnRhYmxlLCBpbnQgKm5hbWUsIGludCBubGVuLAorc3RhdGljIGludCBzeXNjdGxfbGFzYXRfcHJpZChjdGxfdGFibGUgKnRhYmxlLCBpbnQgKm5hbWUsIGludCBubGVuLAogCQkJCSAgICAgdm9pZCAqb2xkdmFsLCBzaXplX3QgKm9sZGxlbnAsCiAJCQkJICAgICB2b2lkICpuZXd2YWwsIHNpemVfdCBuZXdsZW4pCiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlyID0gc3lzY3RsX2ludHZlYyh0YWJsZSwgbmFtZSwgbmxlbiwgb2xkdmFsLCBvbGRsZW5wLCBuZXd2YWwsIG5ld2xlbik7Ci0JaWYgKHIgPCAwKSB7Ci0JCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJaWYgKHIgPCAwKQogCQlyZXR1cm4gcjsKLQl9Ci0KIAlpZiAobmV3dmFsICYmIG5ld2xlbikgewotCQlpZiAobmFtZSAmJiAqbmFtZSA9PSBMQVNBVF9QUklEKQotCQkJbGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mby5wcmlkID0gKihpbnQgKiluZXd2YWw7Ci0KKwkJbGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mby5wcmlkID0gKihpbnQgKiluZXd2YWw7CiAJCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7CiAJCWxhc2F0X2luaXRfYm9hcmRfaW5mbygpOwogCX0KLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwotCiAJcmV0dXJuIDA7CiB9CiAKLWludCBwcm9jX2xhc2F0X2VlcHJvbV92YWx1ZShjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxwLAoraW50IHByb2NfbGFzYXRfcHJpZChjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxwLAogCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcjsKIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCXIgPSBwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlscCwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKLQlpZiAoKCF3cml0ZSkgfHwgcikgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7CisJaWYgKHdyaXRlKSB7CisJCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ucHJpZCA9CisJCQlsYXNhdF9ib2FyZF9pbmZvLmxpX3ByaWQ7CisJCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7CisJCWxhc2F0X2luaXRfYm9hcmRfaW5mbygpOwogCX0KLQlpZiAoZmlscCAmJiBmaWxwLT5mX3BhdGguZGVudHJ5KSB7Ci0JCWlmICghc3RyY21wKGZpbHAtPmZfcGF0aC5kZW50cnktPmRfbmFtZS5uYW1lLCAicHJpZCIpKQotCQkJbGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mby5wcmlkID0KLQkJCQlsYXNhdF9ib2FyZF9pbmZvLmxpX3ByaWQ7Ci0JCWlmICghc3RyY21wKGZpbHAtPmZfcGF0aC5kZW50cnktPmRfbmFtZS5uYW1lLCAiZGVidWdhY2Nlc3MiKSkKLQkJCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8uZGVidWdhY2Nlc3MgPQotCQkJCWxhc2F0X2JvYXJkX2luZm8ubGlfZGVidWdhY2Nlc3M7Ci0JfQotCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKLQogCXJldHVybiAwOwogfQogCiBleHRlcm4gaW50IGxhc2F0X2Jvb3RfdG9fc2VydmljZTsKIAotI2lmZGVmIENPTkZJR19TWVNDVEwKLQogc3RhdGljIGN0bF90YWJsZSBsYXNhdF90YWJsZVtdID0gewogCXsKIAkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCkBAIC0zNDksOCArMjgxLDggQEAKIAkJLmRhdGEJCT0gJmxhc2F0X2JvYXJkX2luZm8ubGlfcHJpZCwKIAkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKIAkJLm1vZGUJCT0gMDY0NCwKLQkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2xhc2F0X2VlcHJvbV92YWx1ZSwKLQkJLnN0cmF0ZWd5CT0gJnN5c2N0bF9sYXNhdF9lZXByb21fdmFsdWUKKwkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2xhc2F0X3ByaWQsCisJCS5zdHJhdGVneQk9ICZzeXNjdGxfbGFzYXRfcHJpZAogCX0sCiAjaWZkZWYgQ09ORklHX0lORVQKIAl7CkBAIC0zNjMsNyArMjk1LDcgQEAKIAkJLnN0cmF0ZWd5CT0gJnN5c2N0bF9sYXNhdF9pbnR2ZWMKIAl9LAogCXsKLQkJLmN0bF9uYW1lCT0gTEFTQVRfTkVUTUFTSywKKwkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCiAJCS5wcm9jbmFtZQk9ICJuZXRtYXNrIiwKIAkJLmRhdGEJCT0gJmxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ubmV0bWFzaywKIAkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKQEAgLTM3MSwxNSArMzAzLDYgQEAKIAkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2xhc2F0X2lwLAogCQkuc3RyYXRlZ3kJPSAmc3lzY3RsX2xhc2F0X2ludHZlYwogCX0sCi0JewotCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKLQkJLnByb2NuYW1lCT0gImJjYXN0YWRkciIsCi0JCS5kYXRhCQk9ICZsYXNhdF9iY2FzdGFkZHIsCi0JCS5tYXhsZW4JCT0gc2l6ZW9mKGxhc2F0X2JjYXN0YWRkciksCi0JCS5tb2RlCQk9IDA2MDAsCi0JCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19kb3N0cmluZywKLQkJLnN0cmF0ZWd5CT0gJnN5c2N0bF9zdHJpbmcKLQl9LAogI2VuZGlmCiAJewogCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKQEAgLTQxNyw3ICszNDAsNyBAQAogCQkuZGF0YQkJPSAmbGFzYXRfYm9hcmRfaW5mby5saV9uYW1lc3RyLAogCQkubWF4bGVuCQk9IHNpemVvZihsYXNhdF9ib2FyZF9pbmZvLmxpX25hbWVzdHIpLAogCQkubW9kZQkJPSAwNDQ0LAotCQkucHJvY19oYW5kbGVyCT0gICZwcm9jX2Rvc3RyaW5nLAorCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9zdHJpbmcsCiAJCS5zdHJhdGVneQk9ICZzeXNjdGxfc3RyaW5nCiAJfSwKIAl7CkBAIC00NDgsOSArMzcxLDEyIEBACiAKIAlsYXNhdF90YWJsZV9oZWFkZXIgPQogCQlyZWdpc3Rlcl9zeXNjdGxfdGFibGUobGFzYXRfcm9vdF90YWJsZSk7CisJaWYgKCFsYXNhdF90YWJsZV9oZWFkZXIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcmVnaXN0ZXIgTEFTQVQgc3lzY3RsXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQogCiAJcmV0dXJuIDA7CiB9CiAKIF9faW5pdGNhbGwobGFzYXRfcmVnaXN0ZXJfc3lzY3RsKTsKLSNlbmRpZiAvKiBDT05GSUdfU1lTQ1RMICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbGFzYXQvc3lzY3RsLmggYi9hcmNoL21pcHMvbGFzYXQvc3lzY3RsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MWI5NzkuLjAwMDAwMDAKLS0tIGEvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotLyoKLSAqIExBU0FUIHN5c2N0bCB2YWx1ZXMKLSAqLwotCi0jaWZuZGVmIF9MQVNBVF9TWVNDVExfSAotI2RlZmluZSBfTEFTQVRfU1lTQ1RMX0gKLQotLyogL3Byb2Mvc3lzL2xhc2F0ICovCi1lbnVtIHsKLQlMQVNBVF9DUFVfSFogPSAxLAotCUxBU0FUX0JVU19IWiwKLQlMQVNBVF9NT0RFTCwKLQlMQVNBVF9QUklELAotCUxBU0FUX0lQQUREUiwKLQlMQVNBVF9ORVRNQVNLLAotCUxBU0FUX0JDQVNULAotCUxBU0FUX1BBU1NXT1JELAotCUxBU0FUX1NCT09ULAotCUxBU0FUX1JUQywKLQlMQVNBVF9OQU1FU1RSLAotCUxBU0FUX1RZUEVTVFIsCi19OwotCi0jZW5kaWYgLyogX0xBU0FUX1NZU0NUTF9IICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbWlwcy1ib2FyZHMvZ2VuZXJpYy9hbW9uLmMgYi9hcmNoL21pcHMvbWlwcy1ib2FyZHMvZ2VuZXJpYy9hbW9uLmMKaW5kZXggYjc2MzNmZC4uOTYyMzZiZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21pcHMtYm9hcmRzL2dlbmVyaWMvYW1vbi5jCisrKyBiL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9nZW5lcmljL2Ftb24uYwpAQCAtMjgsNyArMjgsNyBAQAogCiBpbnQgYW1vbl9jcHVfYXZhaWwoaW50IGNwdSkKIHsKLQlzdHJ1Y3QgY3B1bGF1bmNoICpsYXVuY2ggPSAoc3RydWN0IGNwdWxhdW5jaCAqKUtTRUcwQUREUihDUFVMQVVOQ0gpOworCXN0cnVjdCBjcHVsYXVuY2ggKmxhdW5jaCA9IChzdHJ1Y3QgY3B1bGF1bmNoICopQ0tTRUcwQUREUihDUFVMQVVOQ0gpOwogCiAJaWYgKGNwdSA8IDAgfHwgY3B1ID49IE5DUFVMQVVOQ0gpIHsKIAkJcHJfZGVidWcoImF2YWlsOiBjcHUlZCBpcyBvdXQgb2YgcmFuZ2VcbiIsIGNwdSk7CkBAIC01Myw3ICs1Myw3IEBACiAJCSAgICB1bnNpZ25lZCBsb25nIGdwLCB1bnNpZ25lZCBsb25nIGEwKQogewogCXZvbGF0aWxlIHN0cnVjdCBjcHVsYXVuY2ggKmxhdW5jaCA9Ci0JCShzdHJ1Y3QgY3B1bGF1bmNoICAqKUtTRUcwQUREUihDUFVMQVVOQ0gpOworCQkoc3RydWN0IGNwdWxhdW5jaCAgKilDS1NFRzBBRERSKENQVUxBVU5DSCk7CiAKIAlpZiAoIWFtb25fY3B1X2F2YWlsKGNwdSkpCiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9tYWx0YS9NYWtlZmlsZSBiL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9tYWx0YS9NYWtlZmlsZQppbmRleCA4ZGM2ZTJhLi5kYjRhZDY1IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbWlwcy1ib2FyZHMvbWFsdGEvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL21pcHMtYm9hcmRzL21hbHRhL01ha2VmaWxlCkBAIC0xOSw5ICsxOSw4IEBACiAjIHVuZGVyIExpbnV4LgogIwogCi1vYmoteSA6PSBtYWx0YV9pbnQubyBtYWx0YV9wbGF0Zm9ybS5vIG1hbHRhX3NldHVwLm8KK29iai15IDo9IG1hbHRhX2ludC5vIG1hbHRhX210ZC5vIG1hbHRhX3BsYXRmb3JtLm8gbWFsdGFfc2V0dXAubwogCi1vYmotJChDT05GSUdfTVREKSArPSBtYWx0YV9tdGQubwogIyBGSVhNRSBGSVhNRSBGSVhNRQogb2JqLSQoQ09ORklHX01JUFNfTVRfU01UQykgKz0gbWFsdGFfc210Yy5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9jLXIzay5jIGIvYXJjaC9taXBzL21tL2MtcjNrLmMKaW5kZXggNzY5MzVlMy4uMjdhNWI0NiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL2MtcjNrLmMKKysrIGIvYXJjaC9taXBzL21tL2MtcjNrLmMKQEAgLTI2LDcgKzI2LDcgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGljYWNoZV9zaXplLCBkY2FjaGVfc2l6ZTsJCS8qIFNpemUgaW4gYnl0ZXMgKi8KIHN0YXRpYyB1bnNpZ25lZCBsb25nIGljYWNoZV9sc2l6ZSwgZGNhY2hlX2xzaXplOwkvKiBTaXplIGluIGJ5dGVzICovCiAKLXVuc2lnbmVkIGxvbmcgX19pbml0IHIza19jYWNoZV9zaXplKHVuc2lnbmVkIGxvbmcgY2FfZmxhZ3MpCit1bnNpZ25lZCBsb25nIF9fY3B1aW5pdCByM2tfY2FjaGVfc2l6ZSh1bnNpZ25lZCBsb25nIGNhX2ZsYWdzKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0YXR1cywgZHVtbXksIHNpemU7CiAJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqcDsKQEAgLTYxLDcgKzYxLDcgQEAKIAlyZXR1cm4gc2l6ZSAqIHNpemVvZigqcCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgX19pbml0IHIza19jYWNoZV9sc2l6ZSh1bnNpZ25lZCBsb25nIGNhX2ZsYWdzKQordW5zaWduZWQgbG9uZyBfX2NwdWluaXQgcjNrX2NhY2hlX2xzaXplKHVuc2lnbmVkIGxvbmcgY2FfZmxhZ3MpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFncywgc3RhdHVzLCBsc2l6ZSwgaTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nICpwOwpAQCAtOTAsNyArOTAsNyBAQAogCXJldHVybiBsc2l6ZSAqIHNpemVvZigqcCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCByM2tfcHJvYmVfY2FjaGUodm9pZCkKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCByM2tfcHJvYmVfY2FjaGUodm9pZCkKIHsKIAlkY2FjaGVfc2l6ZSA9IHIza19jYWNoZV9zaXplKFNUMF9JU0MpOwogCWlmIChkY2FjaGVfc2l6ZSkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9jLXI0ay5jIGIvYXJjaC9taXBzL21tL2MtcjRrLmMKaW5kZXggNjQzYzhiYy4uMjcwOTY3NSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL2MtcjRrLmMKKysrIGIvYXJjaC9taXBzL21tL2MtcjRrLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQAogCXN0cnVjdCBwYWdlICpwYWdlID0gcGZuX3RvX3BhZ2UoZmNwX2FyZ3MtPnBmbik7CiAJaW50IGV4ZWMgPSB2bWEtPnZtX2ZsYWdzICYgVk1fRVhFQzsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHZtYS0+dm1fbW07CisJaW50IG1hcF9jb2hlcmVudCA9IDA7CiAJcGdkX3QgKnBnZHA7CiAJcHVkX3QgKnB1ZHA7CiAJcG1kX3QgKnBtZHA7CkBAIC00NzksNyArNDgwLDkgQEAKIAkJICogVXNlIGttYXBfY29oZXJlbnQgb3Iga21hcF9hdG9taWMgdG8gZG8gZmx1c2hlcyBmb3IKIAkJICogYW5vdGhlciBBU0lEIHRoYW4gdGhlIGN1cnJlbnQgb25lLgogCQkgKi8KLQkJaWYgKGNwdV9oYXNfZGNfYWxpYXNlcykKKwkJbWFwX2NvaGVyZW50ID0gKGNwdV9oYXNfZGNfYWxpYXNlcyAmJgorCQkJCXBhZ2VfbWFwcGVkKHBhZ2UpICYmICFQYWdlX2RjYWNoZV9kaXJ0eShwYWdlKSk7CisJCWlmIChtYXBfY29oZXJlbnQpCiAJCQl2YWRkciA9IGttYXBfY29oZXJlbnQocGFnZSwgYWRkcik7CiAJCWVsc2UKIAkJCXZhZGRyID0ga21hcF9hdG9taWMocGFnZSwgS01fVVNFUjApOwpAQCAtNTAyLDcgKzUwNSw3IEBACiAJfQogCiAJaWYgKHZhZGRyKSB7Ci0JCWlmIChjcHVfaGFzX2RjX2FsaWFzZXMpCisJCWlmIChtYXBfY29oZXJlbnQpCiAJCQlrdW5tYXBfY29oZXJlbnQoKTsKIAkJZWxzZQogCQkJa3VubWFwX2F0b21pYyh2YWRkciwgS01fVVNFUjApOwpAQCAtMTIyNiw2ICsxMjI5LDI4IEBACiAJfQogfQogCisvKiBDUDAgaGF6YXJkIGF2b2lkYW5jZS4gKi8KKyNkZWZpbmUgTlhQX0JBUlJJRVIoKQkJCQkJCQlcCisJIF9fYXNtX18gX192b2xhdGlsZV9fKAkJCQkJCVwKKwkiLnNldCBub3Jlb3JkZXJcblx0IgkJCQkJCVwKKwkibm9wOyBub3A7IG5vcDsgbm9wOyBub3A7IG5vcDtcblx0IgkJCQlcCisJIi5zZXQgcmVvcmRlclxuXHQiKQorCitzdGF0aWMgdm9pZCBueHBfcHI0NDUwX2ZpeHVwX2NvbmZpZyh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgY29uZmlnMDsKKworCWNvbmZpZzAgPSByZWFkX2MwX2NvbmZpZygpOworCisJLyogY2xlYXIgYWxsIHRocmVlIGNhY2hlIGNvaGVyZW5jeSBmaWVsZHMgKi8KKwljb25maWcwICY9IH4oMHg3IHwgKDcgPDwgMjUpIHwgKDcgPDwgMjgpKTsKKwljb25maWcwIHw9ICgoKF9wYWdlX2NhY2hhYmxlX2RlZmF1bHQgPj4gX0NBQ0hFX1NISUZUKSA8PCAgMCkgfAorCQkgICAgKChfcGFnZV9jYWNoYWJsZV9kZWZhdWx0ID4+IF9DQUNIRV9TSElGVCkgPDwgMjUpIHwKKwkJICAgICgoX3BhZ2VfY2FjaGFibGVfZGVmYXVsdCA+PiBfQ0FDSEVfU0hJRlQpIDw8IDI4KSk7CisJd3JpdGVfYzBfY29uZmlnKGNvbmZpZzApOworCU5YUF9CQVJSSUVSKCk7Cit9CisKIHN0YXRpYyBpbnQgX19jcHVpbml0ZGF0YSBjY2EgPSAtMTsKIAogc3RhdGljIGludCBfX2luaXQgY2NhX3NldHVwKGNoYXIgKnN0cikKQEAgLTEyNzEsNiArMTI5NiwxMCBAQAogCWNhc2UgQ1BVX0FVMTUwMDogLyogcmV2LiBBQiAqLwogCQlhdTF4MDBfZml4dXBfY29uZmlnX29kKCk7CiAJCWJyZWFrOworCisJY2FzZSBQUklEX0lNUF9QUjQ0NTA6CisJCW54cF9wcjQ0NTBfZml4dXBfY29uZmlnKCk7CisJCWJyZWFrOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2luaXQuYyBiL2FyY2gvbWlwcy9tbS9pbml0LmMKaW5kZXggZWNkNTYyZC4uMTM3YzE0YiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL2luaXQuYworKysgYi9hcmNoL21pcHMvbW0vaW5pdC5jCkBAIC03MSw2ICs3MSw3IEBACiAgKiBkb24ndCBoYXZlIHRvIGNhcmUgYWJvdXQgYWxpYXNlcyBvbiBvdGhlciBDUFVzLgogICovCiB1bnNpZ25lZCBsb25nIGVtcHR5X3plcm9fcGFnZSwgemVyb19wYWdlX21hc2s7CitFWFBPUlRfU1lNQk9MX0dQTChlbXB0eV96ZXJvX3BhZ2UpOwogCiAvKgogICogTm90IHN0YXRpYyBpbmxpbmUgYmVjYXVzZSB1c2VkIGJ5IElQMjcgc3BlY2lhbCBtYWdpYyBpbml0aWFsaXphdGlvbiBjb2RlCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vcGFnZS5jIGIvYXJjaC9taXBzL21tL3BhZ2UuYwppbmRleCBjYWI4MWY0Li4xNDE3YzY0IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vcGFnZS5jCisrKyBiL2FyY2gvbWlwcy9tbS9wYWdlLmMKQEAgLTIzNSwxMyArMjM1LDEyIEBACiAJfQogCS8qCiAJICogVG9vIG11Y2ggdW5yb2xsaW5nIHdpbGwgb3ZlcmZsb3cgdGhlIGF2YWlsYWJsZSBzcGFjZSBpbgotCSAqIGNsZWFyX3NwYWNlX2FycmF5IC8gY29weV9wYWdlX2FycmF5LiA4IHdvcmRzIHNvdW5kcyBnZW5lcm91cywKLQkgKiBidXQgYSBSNDAwMCB3aXRoIDEyOCBieXRlIEwyIGxpbmUgbGVuZ3RoIGNhbiBleGNlZWQgZXZlbiB0aGF0LgorCSAqIGNsZWFyX3NwYWNlX2FycmF5IC8gY29weV9wYWdlX2FycmF5LgogCSAqLwotCWhhbGZfY2xlYXJfbG9vcF9zaXplID0gbWluKDggKiBjbGVhcl93b3JkX3NpemUsCisJaGFsZl9jbGVhcl9sb29wX3NpemUgPSBtaW4oMTYgKiBjbGVhcl93b3JkX3NpemUsCiAJCQkJICAgbWF4KGNhY2hlX2xpbmVfc2l6ZSA+PiAxLAogCQkJCSAgICAgICA0ICogY2xlYXJfd29yZF9zaXplKSk7Ci0JaGFsZl9jb3B5X2xvb3Bfc2l6ZSA9IG1pbig4ICogY29weV93b3JkX3NpemUsCisJaGFsZl9jb3B5X2xvb3Bfc2l6ZSA9IG1pbigxNiAqIGNvcHlfd29yZF9zaXplLAogCQkJCSAgbWF4KGNhY2hlX2xpbmVfc2l6ZSA+PiAxLAogCQkJCSAgICAgIDQgKiBjb3B5X3dvcmRfc2l6ZSkpOwogfQpAQCAtMjYzLDIxICsyNjIsMjMgQEAKIAlpZiAocHJlZl9iaWFzX2NsZWFyX3N0b3JlKSB7CiAJCXVhc21faV9wcmVmKGJ1ZiwgcHJlZl9kc3RfbW9kZSwgcHJlZl9iaWFzX2NsZWFyX3N0b3JlICsgb2ZmLAogCQkJICAgIEEwKTsKLQl9IGVsc2UgaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9zKSB7Ci0JCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKLQl9IGVsc2UgaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9wKSB7Ci0JCWlmIChSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YxX3goKSkgewotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOworCX0gZWxzZSBpZiAoY2FjaGVfbGluZV9zaXplID09IChoYWxmX2NsZWFyX2xvb3Bfc2l6ZSA8PCAxKSkgeworCQlpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKKwkJCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKKwkJfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgeworCQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJfQorCisJCQlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCisJCQkJdWFzbV9pX2x3KGJ1ZiwgWkVSTywgWkVSTywgQVQpOworCisJCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAkJfQotCi0JCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKLQkJCXVhc21faV9sdyhidWYsIFpFUk8sIFpFUk8sIEFUKTsKLQotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKLQl9CisJCX0KIH0KIAogdm9pZCBfX2NwdWluaXQgYnVpbGRfY2xlYXJfcGFnZSh2b2lkKQpAQCAtNDAzLDIwICs0MDQsMjIgQEAKIAlpZiAocHJlZl9iaWFzX2NvcHlfc3RvcmUpIHsKIAkJdWFzbV9pX3ByZWYoYnVmLCBwcmVmX2RzdF9tb2RlLCBwcmVmX2JpYXNfY29weV9zdG9yZSArIG9mZiwKIAkJCSAgICBBMCk7Ci0JfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcykgewotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9TRCwgb2ZmLCBBMCk7Ci0JfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgewotCQlpZiAoUjQ2MDBfVjFfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92MV94KCkpIHsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKKwl9IGVsc2UgaWYgKGNhY2hlX2xpbmVfc2l6ZSA9PSAoaGFsZl9jb3B5X2xvb3Bfc2l6ZSA8PCAxKSkgeworCQlpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKKwkJCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKKwkJfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgeworCQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJfQorCisJCQlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCisJCQkJdWFzbV9pX2x3KGJ1ZiwgWkVSTywgWkVSTywgQVQpOworCisJCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAkJfQotCi0JCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKLQkJCXVhc21faV9sdyhidWYsIFpFUk8sIFpFUk8sIEFUKTsKLQotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAl9CiB9CiAKQEAgLTQ2MCw3ICs0NjMsNyBAQAogCQlidWlsZF9jb3B5X2xvYWRfcHJlZigmYnVmLCAtb2ZmKTsKIAkJb2ZmIC09IGNhY2hlX2xpbmVfc2l6ZTsKIAl9Ci0Jb2ZmID0gY2FjaGVfbGluZV9zaXplID8gbWluKDgsIHByZWZfYmlhc19jb3B5X2xvYWQgLyBjYWNoZV9saW5lX3NpemUpICoKKwlvZmYgPSBjYWNoZV9saW5lX3NpemUgPyBtaW4oOCwgcHJlZl9iaWFzX2NvcHlfc3RvcmUgLyBjYWNoZV9saW5lX3NpemUpICoKIAkgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9saW5lX3NpemUgOiAwOwogCXdoaWxlIChvZmYpIHsKIAkJYnVpbGRfY29weV9zdG9yZV9wcmVmKCZidWYsIC1vZmYpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL3NjLXJtN2suYyBiL2FyY2gvbWlwcy9tbS9zYy1ybTdrLmMKaW5kZXggZmMyMjdmMy4uZTNhYmZiMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL3NjLXJtN2suYworKysgYi9hcmNoL21pcHMvbW0vc2Mtcm03ay5jCkBAIC04Niw3ICs4Niw3IEBACiAvKgogICogVGhpcyBmdW5jdGlvbiBpcyBleGVjdXRlZCBpbiB1bmNhY2hlZCBhZGRyZXNzIHNwYWNlLgogICovCi1zdGF0aWMgX19pbml0IHZvaWQgX19ybTdrX3NjX2VuYWJsZSh2b2lkKQorc3RhdGljIF9fY3B1aW5pdCB2b2lkIF9fcm03a19zY19lbmFibGUodm9pZCkKIHsKIAlpbnQgaTsKIApAQCAtMTA3LDcgKzEwNyw3IEBACiAJfQogfQogCi1zdGF0aWMgX19pbml0IHZvaWQgcm03a19zY19lbmFibGUodm9pZCkKK3N0YXRpYyBfX2NwdWluaXQgdm9pZCBybTdrX3NjX2VuYWJsZSh2b2lkKQogewogCWlmIChyZWFkX2MwX2NvbmZpZygpICYgUk03S19DT05GX1NFKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbnhwL3BueDg1NTAvamJzL2JvYXJkX3NldHVwLmMgYi9hcmNoL21pcHMvbnhwL3BueDg1NTAvamJzL2JvYXJkX3NldHVwLmMKaW5kZXggZjkyODI2ZS4uNTdkZDkwMyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL254cC9wbng4NTUwL2picy9ib2FyZF9zZXR1cC5jCisrKyBiL2FyY2gvbWlwcy9ueHAvcG54ODU1MC9qYnMvYm9hcmRfc2V0dXAuYwpAQCAtNDcsMTYgKzQ3LDcgQEAKIAogdm9pZCBfX2luaXQgYm9hcmRfc2V0dXAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGNvbmZpZzAsIGNvbmZpZ3ByOwotCi0JY29uZmlnMCA9IHJlYWRfYzBfY29uZmlnKCk7Ci0KLQkvKiBjbGVhciBhbGwgdGhyZWUgY2FjaGUgY29oZXJlbmN5IGZpZWxkcyAqLwotCWNvbmZpZzAgJj0gfigweDcgfCAoNzw8MjUpIHwgKDc8PDI4KSk7Ci0JY29uZmlnMCB8PSAoQ09ORl9DTV9ERUZBVUxUIHwgKENPTkZfQ01fREVGQVVMVDw8MjUpIHwKLQkJCShDT05GX0NNX0RFRkFVTFQ8PDI4KSk7Ci0Jd3JpdGVfYzBfY29uZmlnKGNvbmZpZzApOwotCUJBUlJJRVI7CisJdW5zaWduZWQgbG9uZyBjb25maWdwcjsKIAogCWNvbmZpZ3ByID0gcmVhZF9jMF9jb25maWc3KCk7CiAJY29uZmlncHIgfD0gKDE8PDE5KTsgLyogZW5hYmxlIHRsYiAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL254cC9wbng4NTUwL3N0YjgxMC9ib2FyZF9zZXR1cC5jIGIvYXJjaC9taXBzL254cC9wbng4NTUwL3N0YjgxMC9ib2FyZF9zZXR1cC5jCmluZGV4IDEyODJjMjcuLmFmMmE1NWUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9ueHAvcG54ODU1MC9zdGI4MTAvYm9hcmRfc2V0dXAuYworKysgYi9hcmNoL21pcHMvbnhwL3BueDg1NTAvc3RiODEwL2JvYXJkX3NldHVwLmMKQEAgLTMzLDE1ICszMyw3IEBACiAKIHZvaWQgX19pbml0IGJvYXJkX3NldHVwKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBjb25maWcwLCBjb25maWdwcjsKLQotCWNvbmZpZzAgPSByZWFkX2MwX2NvbmZpZygpOwotCi0JLyogY2xlYXIgYWxsIHRocmVlIGNhY2hlIGNvaGVyZW5jeSBmaWVsZHMgKi8KLQljb25maWcwICY9IH4oMHg3IHwgKDc8PDI1KSB8ICg3PDwyOCkpOwotCWNvbmZpZzAgfD0gKENPTkZfQ01fREVGQVVMVCB8IChDT05GX0NNX0RFRkFVTFQ8PDI1KSB8Ci0JCQkoQ09ORl9DTV9ERUZBVUxUPDwyOCkpOwotCXdyaXRlX2MwX2NvbmZpZyhjb25maWcwKTsKKwl1bnNpZ25lZCBsb25nIGNvbmZpZ3ByOwogCiAJY29uZmlncHIgPSByZWFkX2MwX2NvbmZpZzcoKTsKIAljb25maWdwciB8PSAoMTw8MTkpOyAvKiBlbmFibGUgdGxiICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvcGNpL3BjaS1zYjEyNTAuYyBiL2FyY2gvbWlwcy9wY2kvcGNpLXNiMTI1MC5jCmluZGV4IDQyZTRkMmMuLjJhMDlhZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9wY2kvcGNpLXNiMTI1MC5jCisrKyBiL2FyY2gvbWlwcy9wY2kvcGNpLXNiMTI1MC5jCkBAIC0yMDcsNiArMjA3LDcgQEAKIAogc3RhdGljIGludCBfX2luaXQgc2IxMjUwX3BjaWJpb3NfaW5pdCh2b2lkKQogeworCXZvaWQgX19pb21lbSAqaW9fbWFwX2Jhc2U7CiAJdWludDMyX3QgY21kcmVnOwogCXVpbnQ2NF90IHJlZzsKIAlleHRlcm4gaW50IHBjaV9wcm9iZV9vbmx5OwpAQCAtMjUzLDEyICsyNTQsMTMgQEAKIAkgKiB3b3JrcyBjb3JyZWN0bHkgd2l0aCBtb3N0IG9mIExpbnV4J3MgZHJpdmVycy4KIAkgKiBYWFggZWhzOiBTaG91bGQgdGhpcyBoYXBwZW4gaW4gUENJIERldmljZSBtb2RlPwogCSAqLwotCi0Jc2V0X2lvX3BvcnRfYmFzZSgodW5zaWduZWQgbG9uZykKLQkJCSBpb3JlbWFwKEFfUEhZU19MRFRQQ0lfSU9fTUFUQ0hfQllURVMsIDY1NTM2KSk7CiAJaXNhX3Nsb3Rfb2Zmc2V0ID0gKHVuc2lnbmVkIGxvbmcpCiAJICAgIGlvcmVtYXAoQV9QSFlTX0xEVFBDSV9JT19NQVRDSF9CWVRFU18zMiwgMTAyNCAqIDEwMjQpOwogCisJaW9fbWFwX2Jhc2UgPSBpb3JlbWFwKEFfUEhZU19MRFRQQ0lfSU9fTUFUQ0hfQllURVMsIDEwMjQgKiAxMDI0KTsKKwlzYjEyNTBfY29udHJvbGxlci5pb19tYXBfYmFzZSA9IGlvX21hcF9iYXNlOworCXNldF9pb19wb3J0X2Jhc2UoKHVuc2lnbmVkIGxvbmcpaW9fbWFwX2Jhc2UpOworCiAjaWZkZWYgQ09ORklHX1NJQllURV9IQVNfTERUCiAJLyoKIAkgKiBBbHNvIGNoZWNrIHRoZSBMRFQgYnJpZGdlJ3MgZW5hYmxlLCBqdXN0IGluIGNhc2Ugd2UgZGlkbid0CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvcGNpL3BjaS12cjQxeHguYyBiL2FyY2gvbWlwcy9wY2kvcGNpLXZyNDF4eC5jCmluZGV4IDMzYzRmNjguLmQxZTA0OWIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9wY2kvcGNpLXZyNDF4eC5jCisrKyBiL2FyY2gvbWlwcy9wY2kvcGNpLXZyNDF4eC5jCkBAIC0zLDcgKzMsNyBAQAogICoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMyBNb250YVZpc3RhIFNvZnR3YXJlIEluYy4KICAqICAgIEF1dGhvcjogWW9pY2hpIFl1YXNhIDx5eXVhc2FAbXZpc3RhLmNvbSBvciBzb3VyY2VAbXZpc3RhLmNvbT4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSAgWW9pY2hpIFl1YXNhIDx5b2ljaGlfeXVhc2FAdHJpcGVha3MuY28uanA+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDggIFlvaWNoaSBZdWFzYSA8eW9pY2hpX3l1YXNhQHRyaXBlYWtzLmNvLmpwPgogICogIENvcHlyaWdodCAoQykgMjAwNCBieSBSYWxmIEJhZWNobGUgKHJhbGZAbGludXgtbWlwcy5vcmcpCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0zMDAsNiArMzAwLDE4IEBACiAJCWlvcG9ydF9yZXNvdXJjZS5lbmQgPSBJT19QT1JUX1JFU09VUkNFX0VORDsKIAl9CiAKKwlpZiAoc2V0dXAtPm1hc3Rlcl9pbykgeworCQl2b2lkIF9faW9tZW0gKmlvX21hcF9iYXNlOworCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IHZyNDF4eF9wY2lfY29udHJvbGxlci5pb19yZXNvdXJjZTsKKwkJbWFzdGVyID0gc2V0dXAtPm1hc3Rlcl9pbzsKKwkJaW9fbWFwX2Jhc2UgPSBpb3JlbWFwKG1hc3Rlci0+YnVzX2Jhc2VfYWRkcmVzcywKKwkJCQkgICAgICByZXMtPmVuZCAtIHJlcy0+c3RhcnQgKyAxKTsKKwkJaWYgKCFpb19tYXBfYmFzZSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJdnI0MXh4X3BjaV9jb250cm9sbGVyLmlvX21hcF9iYXNlID0gKHVuc2lnbmVkIGxvbmcpaW9fbWFwX2Jhc2U7CisJfQorCiAJcmVnaXN0ZXJfcGNpX2NvbnRyb2xsZXIoJnZyNDF4eF9wY2lfY29udHJvbGxlcik7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9zZ2ktaXAzMi9pcDMyLWlycS5jIGIvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKaW5kZXggYjBlYTBlNC4uMGQ2YjY2NiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKKysrIGIvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKQEAgLTQyNSw2ICs0MjUsMTEgQEAKIAlCVUlMRF9CVUdfT04oTUFDRUlTQV9TRVJJQUwyX1JETUFPUl9JUlEgLSBNQUNFSVNBX0FVRElPX1NXX0lSUSAhPSAzMSk7CiAKIAljcmltZV9pbnQgPSBjcmltZS0+aXN0YXQgJiBjcmltZV9tYXNrOworCisJLyogY3JpbWUgc29tZXRpbWUgZGVsaXZlcnMgc3B1cmlvdXMgaW50ZXJydXB0cywgaWdub3JlIHRoZW0gKi8KKwlpZiAodW5saWtlbHkoY3JpbWVfaW50ID09IDApKQorCQlyZXR1cm47CisKIAlpcnEgPSBNQUNFX1ZJRF9JTjFfSVJRICsgX19mZnMoY3JpbWVfaW50KTsKIAogCWlmIChjcmltZV9pbnQgJiBDUklNRV9NQUNFSVNBX0lOVF9NQVNLKSB7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvc2lieXRlL2NvbW1vbi9zYl90YnByb2YuYyBiL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCmluZGV4IDYzYjQ0NGUuLjI4YjAxMmEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCisrKyBiL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CkBAIC00MDIsMTggKzQwMywyNiBAQAogc3RhdGljIGludCBzYnByb2ZfdGJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3I7CisJaW50IGVyciA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKLQlpZiAobWlub3IgIT0gMCkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKG1pbm9yICE9IDApIHsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKHhjaGcoJnNicC5vcGVuLCBTQl9PUEVOSU5HKSAhPSBTQl9DTE9TRUQpCi0JCXJldHVybiAtRUJVU1k7CisJaWYgKHhjaGcoJnNicC5vcGVuLCBTQl9PUEVOSU5HKSAhPSBTQl9DTE9TRUQpIHsKKwkJZXJyID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAKIAltZW1zZXQoJnNicCwgMCwgc2l6ZW9mKHN0cnVjdCBzYnByb2ZfdGIpKTsKIAlzYnAuc2Jwcm9mX3RiYnVmID0gdm1hbGxvYyhNQVhfVEJTQU1QTEVfQllURVMpOwotCWlmICghc2JwLnNicHJvZl90YmJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFzYnAuc2Jwcm9mX3RiYnVmKSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KIAltZW1zZXQoc2JwLnNicHJvZl90YmJ1ZiwgMCwgTUFYX1RCU0FNUExFX0JZVEVTKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzYnAudGJfc3luYyk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmc2JwLnRiX3JlYWQpOwpAQCAtNDIxLDcgKzQzMCw5IEBACiAKIAlzYnAub3BlbiA9IFNCX09QRU47CiAKLQlyZXR1cm4gMDsKKyAgb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IHNicHJvZl90Yl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9NYWtlZmlsZSBiL2FyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vTWFrZWZpbGUKaW5kZXggMmQ2MjYwMy4uMTc3NTc1NSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvc2lieXRlL3N3YXJtL01ha2VmaWxlCkBAIC0xLDMgKzEsMyBAQAotbGliLXkJCQkJPSBzZXR1cC5vIHJ0Y194aWNvcjEyNDEubyBydGNfbTQxdDgxLm8KK29iai15CQkJCTo9IHNldHVwLm8gcnRjX3hpY29yMTI0MS5vIHJ0Y19tNDF0ODEubwogCi1saWItJChDT05GSUdfS0dEQikJCSs9IGRiZ19pby5vCitvYmotJChDT05GSUdfS0dEQikJCSs9IGRiZ19pby5vCmRpZmYgLS1naXQgYS9hcmNoL21uMTAzMDAva2VybmVsL21uMTAzMDBfa3N5bXMuYyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCmluZGV4IDZkMTk2MjguLmY5ZWI5NzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCisrKyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCkBAIC0xMCw4ICsxMCwxMSBAQAogICovCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCiAKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKKwogRVhQT1JUX1NZTUJPTChjaGFuZ2VfYml0KTsKIEVYUE9SVF9TWU1CT0wodGVzdF9hbmRfY2hhbmdlX2JpdCk7CiAKQEAgLTMxLDcgKzM0LDkgQEAKIGV4dGVybiB1NjQgX19hc2hsZGkzKHU2NCwgdW5zaWduZWQpOwogZXh0ZXJuIHU2NCBfX2xzaHJkaTModTY0LCB1bnNpZ25lZCk7CiBleHRlcm4gczY0IF9fbmVnZGkyKHM2NCk7CitleHRlcm4gaW50IF9fdWNtcGRpMih1NjQsIHU2NCk7CiBFWFBPUlRfU1lNQk9MKF9fYXNocmRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fYXNobGRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fbHNocmRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fbmVnZGkyKTsKK0VYUE9SVF9TWU1CT0woX191Y21wZGkyKTsKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggM2IwZDU3OS4uYjI4YzlhNiAxMDA2NDQKLS0tIGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KQEAgLTE1NCw2ICsxNTMsNyBAQAogCXJldHVybiBkb19mb3JrKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCwgMCwgJnJlZ3MsIDAsCiAJCSAgICAgICBOVUxMLCBOVUxMKTsKIH0KK0VYUE9SVF9TWU1CT0woa2VybmVsX3RocmVhZCk7CiAKIC8qCiAgKiBmcmVlIGN1cnJlbnQgdGhyZWFkIGRhdGEgc3RydWN0dXJlcyBldGMuLgpkaWZmIC0tZ2l0IGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9zZXR1cC5jCmluZGV4IDZiN2NlMjYuLjAxNzEyMWMgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL21uMTAzMDAva2VybmVsL3NldHVwLmMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9saWIvTWFrZWZpbGUgYi9hcmNoL21uMTAzMDAvbGliL01ha2VmaWxlCmluZGV4IGZkZmE5ZWMuLjBjZDIzNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC9tbjEwMzAwL2xpYi9NYWtlZmlsZQpAQCAtNCw0ICs0LDQgQEAKIAogbGliLXkgPSBkZWxheS5vIHVzZXJjb3B5Lm8gY2hlY2tzdW0ubyBiaXRvcHMubyBtZW1jcHkubyBtZW1tb3ZlLm8gbWVtc2V0Lm8KIGxpYi15ICs9IGRvX2NzdW0ubwotbGliLXkgKz0gX19hc2hsZGkzLm8gX19hc2hyZGkzLm8gX19sc2hyZGkzLm8gbmVnZGkyLm8KK2xpYi15ICs9IF9fYXNobGRpMy5vIF9fYXNocmRpMy5vIF9fbHNocmRpMy5vIG5lZ2RpMi5vIF9fdWNtcGRpMi5vCmRpZmYgLS1naXQgYS9hcmNoL21uMTAzMDAvbGliL19fdWNtcGRpMi5TIGIvYXJjaC9tbjEwMzAwL2xpYi9fX3VjbXBkaTIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRjYmRmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9tbjEwMzAwL2xpYi9fX3VjbXBkaTIuUwpAQCAtMCwwICsxLDQzIEBACisvKiBfX3VjbXBkaTIuUzogNjQtYml0IHVuc2lnbmVkIGNvbXBhcmUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogV3JpdHRlbiBieSBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworCisgICAgICAgIC50ZXh0CisgICAgICAgIC5wMmFsaWduCTQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBpbnQgX191Y21wZGkyKHVuc2lnbmVkIGxvbmcgbG9uZyBhIFtEMDpEMV0sCisjCQl1bnNpZ25lZCBsb25nIGxvbmcgYiBbKFNQLDEyKSwoU1AsMTYpXSkKKyMKKyMgLSByZXR1cm5zIDAsIDEsIG9yIDIgYXMgYSA8LCA9LCA+IGIgcmVzcGVjdGl2ZWx5LgorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAgICAuZ2xvYmwJCV9fdWNtcGRpMgorICAgICAgICAudHlwZQkJX191Y21wZGkyLEBmdW5jdGlvbgorX191Y21wZGkyOgorCW1vdgkJKDEyLHNwKSxhMAkJIyBiLmxzdworCW1vdgkJKDE2LHNwKSxhMQkJIyBiLm1zdworCisJc3ViCQlhMCxkMAorCXN1YmMJCWExLGQxCQkJIyBtYXkgY2xlYXIgWiwgbmV2ZXIgc2V0cyBpdAorCWJuZQkJX191Y21wZGkyX2RpZmZlcgkjIGEubXN3ICE9IGIubXN3CisJbW92CQkrMSxkMAorCXJldHMKKworX191Y21wZGkyX2RpZmZlcjoKKwkjIEMgZmxhZyBpcyBzZXQgaWYgTEUsIGNsZWFyIGlmIEdFCisJc3ViYwkJZDAsZDAJCQkjIC0xIGlmIExFLCAwIGlmIEdFCisJYWRkCQkrMSxkMAkJCSMgIDAgaWYgTEUsIDEgaWYgR0UKKwlhZGQJCWQwLGQwCQkJIyAgMCBpZiBMRSwgMiBpZiBHRQorCXJldHMKKworCS5zaXplCQlfX3VjbXBkaTIsIC4tX191Y21wZGkyCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9ocHV4L2dhdGUuUyBiL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCmluZGV4IGYwYjE4Y2UuLjM4YTFjMWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCisrKyBiL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCkBAIC0xMywxMCArMTMsOSBAQAogI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KICNpbmNsdWRlIDxhc20vZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLmxldmVsCUxFVkVMCi0JX19IRUFECisJLnRleHQKIAogCS5pbXBvcnQgaHB1eF9jYWxsX3RhYmxlCiAJLmltcG9ydCBocHV4X3N5c2NhbGxfZXhpdCxjb2RlCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9ocHV4L3dyYXBwZXJzLlMgYi9hcmNoL3BhcmlzYy9ocHV4L3dyYXBwZXJzLlMKaW5kZXggY2NkM2E1MC4uNThjNTNjOCAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvaHB1eC93cmFwcGVycy5TCisrKyBiL2FyY2gvcGFyaXNjL2hwdXgvd3JhcHBlcnMuUwpAQCAtMjgsMTAgKzI4LDkgQEAKICNpbmNsdWRlIDxhc20vYXNzZW1ibHkuaD4KICNpbmNsdWRlIDxhc20vc2lnbmFsLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogCS5sZXZlbAlMRVZFTAotCV9fSEVBRAorCS50ZXh0CiAKIAkvKiBUaGVzZSBzaG91bGQgcHJvYmFibHkgZ28gaW4gYSBoZWFkZXIgZmlsZSBzb21ld2hlcmUuCiAJICogVGhleSBhcmUgZHVwbGljYXRlZCBpbiBrZXJuZWwvd3JhcHBlcnMuUwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2VudHJ5LlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUwppbmRleCA1ZDA4Mzc0Li5kMWZhNGVkIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUwpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgogCiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogI2lmZGVmIENPTkZJR182NEJJVAogCS5sZXZlbCAyLjB3CkBAIC02MjIsNyArNjIxLDcgQEAKIAkgKiB0aGUgc3RhdGljIHBhcnQgb2YgdGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNlLgogCSAqLwogCi0JX19IRUFECisJLnRleHQKIAogCS5hbGlnbglQQUdFX1NJWkUKIApkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2hlYWQuUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9oZWFkLlMKaW5kZXggNTY4MGEyYy4uYTg0ZTMxZSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL2hlYWQuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvaGVhZC5TCkBAIC0zMyw2ICszMyw3IEBACiBFTkQoYm9vdF9hcmdzKQogCiAJX19IRUFECisKIAkuYWxpZ24JNAogCS5pbXBvcnQgaW5pdF90aHJlYWRfdW5pb24sZGF0YQogCS5pbXBvcnQgZmF1bHRfdmVjdG9yXzIwLGNvZGUgICAgLyogSVZBIHBhcmlzYyAyLjAgMzIgYml0ICovCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvaHBtYy5TIGIvYXJjaC9wYXJpc2Mva2VybmVsL2hwbWMuUwppbmRleCAwNjgzMjJlLi4yY2JmMTNiIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvaHBtYy5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9ocG1jLlMKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxhc20vcGRjLmg+CiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLyoKIAkgKiBzdGFjayBmb3Igb3NfaHBtYywgdGhlIEhQTUMgaGFuZGxlci4KQEAgLTc3LDcgKzc2LDcgQEAKIAkuYmxvY2sgSFBNQ19QSU1fREFUQV9TSVpFCiBFTkQoaHBtY19waW1fZGF0YSkKIAotCV9fSEVBRAorCS50ZXh0CiAKIAkuaW1wb3J0IGludHJfc2F2ZSwgY29kZQogRU5UUlkob3NfaHBtYykKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYWNhY2hlLlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGFjYWNoZS5TCmluZGV4IGUzMjQ2YTUuLjA5Yjc3YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYWNhY2hlLlMKKysrIGIvYXJjaC9wYXJpc2Mva2VybmVsL3BhY2FjaGUuUwpAQCAtMzcsOSArMzcsOCBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAotCV9fSEVBRAorCS50ZXh0CiAJLmFsaWduCTEyOAogCiBFTlRSWShmbHVzaF90bGJfYWxsX2xvY2FsKQpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jIGIvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jCmluZGV4IDViN2ZjNGEuLjBlZWNmYmIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGFyaXNjX2tzeW1zLmMKQEAgLTE1MiwzICsxNTIsNiBAQAogRVhQT1JUX1NZTUJPTChub2RlX2RhdGEpOwogRVhQT1JUX1NZTUJPTChwZm5uaWRfbWFwKTsKICNlbmRpZgorCisvKiBmcm9tIHBhY2FjaGUuUyAtLSBuZWVkZWQgZm9yIGNvcHlfcGFnZSAqLworRVhQT1JUX1NZTUJPTChjb3B5X3VzZXJfcGFnZV9hc20pOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmLmMKaW5kZXggODlkNmQ1YS4uZjY5NmY1NyAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGVyZi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTI2MCwxMyArMjYxLDE2IEBACiAgKi8KIHN0YXRpYyBpbnQgcGVyZl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZwZXJmX2xvY2spOwogCWlmIChwZXJmX2VuYWJsZWQpIHsKIAkJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJcGVyZl9lbmFibGVkID0gMTsKICAJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvcGVyZl9hc20uUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCmluZGV4IGQ0MTFkZmIuLmZhNmVhOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCkBAIC00Myw3ICs0Myw3IEBACiA7IFRoZSBjb3Byb2Nlc3NvciBvbmx5IG5lZWRzIHRvIGJlIGVuYWJsZWQgd2hlbgogOyBzdGFydGluZy9zdG9wcGluZyB0aGUgY29wcm9jZXNzb3Igd2l0aCB0aGUgcG1lbmIvcG1kaXMuCiA7Ci0JX19IRUFECisJLnRleHQKIAogRU5UUlkocGVyZl9pbnRyaWd1ZV9lbmFibGVfcGVyZl9jb3VudGVycykKIAkucHJvYwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3JlYWwyLlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUwppbmRleCA0N2ZiZGFlLi43YTkyNjk1IDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUwpAQCAtMTIsNyArMTIsNiBAQAogI2luY2x1ZGUgPGFzbS9hc3NlbWJseS5oPgogCiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogCS5zZWN0aW9uCS5ic3MKIAkuZXhwb3J0IHJlYWxfc3RhY2sKQEAgLTQwLDcgKzM5LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKiogMzItYml0IHJlYWwtbW9kZSBjYWxscyAqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiBib3RoIG5hcnJvdyBhbmQgd2lkZSBrZXJuZWxzICovCiAKLQlfX0hFQUQKKwkudGV4dAogCiAJLyogdW5zaWduZWQgbG9uZyByZWFsMzJfY2FsbF9hc20odW5zaWduZWQgaW50ICpzcCwKIAkgKgkJdW5zaWduZWQgaW50ICphcmcwcCwKQEAgLTExNCw3ICsxMTMsNyBAQAogIyAgZGVmaW5lIFBVU0hfQ1Iociwgd2hlcmUpIG1mY3RsIHIsICVyMSAhIFNUUkVHLG1hICVyMSwgUkVHX1NaKHdoZXJlKQogIyAgZGVmaW5lIFBPUF9DUihyLCB3aGVyZSkgTERSRUcsbWIgLVJFR19TWih3aGVyZSksICVyMSAhIG10Y3RsICVyMSwgcgogCi0JX19IRUFECisJLnRleHQKIHNhdmVfY29udHJvbF9yZWdzOgogCWxvYWQzMglQQShzYXZlX2NyX3NwYWNlKSwgJXIyOAogCVBVU0hfQ1IoJWNyMjQsICVyMjgpCkBAIC0xNDYsNyArMTQ1LDcgQEAKIC8qIHJmaV92aXJ0MnJlYWwoKSBhbmQgcmZpX3JlYWwydmlydCgpIGNvdWxkIHBlcmhhcHMgYmUgYWRhcHRlZCBmb3IKICAqIG1vcmUgZ2VuZXJhbC1wdXJwb3NlIHVzZSBieSB0aGUgc2V2ZXJhbCBwbGFjZXMgd2hpY2ggbmVlZCBSRklzCiAgKi8KLQlfX0hFQUQKKwkudGV4dAogCS5hbGlnbiAxMjgKIHJmaV92aXJ0MnJlYWw6CiAJLyogc3dpdGNoIHRvIHJlYWwgbW9kZS4uLiAqLwpAQCAtMTgxLDcgKzE4MCw3IEBACiAJYnYJMCglcjIpCiAJbm9wCiAKLQlfX0hFQUQKKwkudGV4dAogCS5hbGlnbiAxMjgKIHJmaV9yZWFsMnZpcnQ6CiAJcnNtCQlQU1dfU01fSSwlcjAKQEAgLTIxOSw3ICsyMTgsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqIDY0LWJpdCByZWFsLW1vZGUgY2FsbHMgKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBUaGlzIGlzIG9ubHkgdXNhYmxlIGluIHdpZGUga2VybmVscyByaWdodCBub3cgYW5kIHdpbGwgcHJvYmFibHkgc3RheSBzbyAqLwotCV9fSEVBRAorCS50ZXh0CiAJLyogdW5zaWduZWQgbG9uZyByZWFsNjRfY2FsbF9hc20odW5zaWduZWQgbG9uZyAqc3AsCiAJICoJCXVuc2lnbmVkIGxvbmcgKmFyZzBwLAogCSAqCQl1bnNpZ25lZCBsb25nIGZuKQpAQCAtMjc3LDcgKzI3Niw3IEBACiAKICNlbmRpZgogCi0JX19IRUFECisJLnRleHQKIAkvKiBodHRwOi8vbGlzdHMucGFyaXNjLWxpbnV4Lm9yZy9oeXBlcm1haWwvcGFyaXNjLWxpbnV4LzEwOTE2Lmh0bWwKIAkqKglHQ0MgMy4zIGFuZCBsYXRlciBoYXMgYSBuZXcgZnVuY3Rpb24gaW4gbGliZ2NjLmEgZm9yCiAJKioJY29tcGFyaW5nIGZ1bmN0aW9uIHBvaW50ZXJzLgpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3NpZ25hbDMyLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYwppbmRleCBkYjk0YWZmLi5mYjU5ODUyIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYwpAQCAtMjg5LDcgKzI4OSw3IEBACiAJCQkJJnNjLT5zY19pYW9xWzBdLCBjb21wYXRfcmVnKTsKIAkJCiAJCS8qIFN0b3JlIHVwcGVyIGhhbGYgKi8KLQkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KShyZWdzLT5nclszMl0gPj4gMzIpOworCQljb21wYXRfcmVnID0gKGNvbXBhdF91aW50X3QpKHJlZ3MtPmdyWzMxXSA+PiAzMik7CiAJCWVyciB8PSBfX3B1dF91c2VyKGNvbXBhdF9yZWcsICZyZi0+cmZfaWFvcVswXSk7CiAJCURCRygyLCJzZXR1cF9zaWdjb250ZXh0MzI6IHVwcGVyIGhhbGYgaWFvcVswXSA9ICUjeFxuIiwgY29tcGF0X3JlZyk7CiAJCQpAQCAtMjk5LDcgKzI5OSw3IEBACiAJCURCRygyLCJzZXR1cF9zaWdjb250ZXh0MzI6IHNjLT5zY19pYW9xWzFdID0gJXAgPD0gJSN4XG4iLAogCQkJCSZzYy0+c2NfaWFvcVsxXSwgY29tcGF0X3JlZyk7CiAJCS8qIFN0b3JlIHVwcGVyIGhhbGYgKi8KLQkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KSgocmVncy0+Z3JbMzJdKzQpID4+IDMyKTsKKwkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KSgocmVncy0+Z3JbMzFdKzQpID4+IDMyKTsKIAkJZXJyIHw9IF9fcHV0X3VzZXIoY29tcGF0X3JlZywgJnJmLT5yZl9pYW9xWzFdKTsKIAkJREJHKDIsInNldHVwX3NpZ2NvbnRleHQzMjogdXBwZXIgaGFsZiBpYW9xWzFdID0gJSN4XG4iLCBjb21wYXRfcmVnKTsKIAkJCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbC5TIGIvYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGwuUwppbmRleCBhZTUwOWQ4Li42OWI2ZWViIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbC5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxsLlMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLyogV2UgZmlsbCB0aGUgZW1wdHkgcGFydHMgb2YgdGhlIGdhdGV3YXkgcGFnZSB3aXRoCiAgCSAqIHNvbWV0aGluZyB0aGF0IHdpbGwga2lsbCB0aGUga2VybmVsIG9yIGEKQEAgLTI3LDcgKzI2LDcgQEAKIAogCS5sZXZlbCAgICAgICAgICBMRVZFTAogCi0JX19IRUFECisJLnRleHQKIAogCS5pbXBvcnQgc3lzY2FsbF9leGl0LGNvZGUKIAkuaW1wb3J0IHN5c2NhbGxfZXhpdF9yZmksY29kZQpAQCAtNjM3LDcgKzYzNiw3IEBACiAJCUFsbCBsaWdodC13ZWlnaHQtc3lzY2FsbCBhdG9taWMgb3BlcmF0aW9ucyAKIAkJd2lsbCB1c2UgdGhpcyBzZXQgb2YgbG9ja3MgCiAJKi8KLQkuc2VjdGlvbiAuZGF0YSwgImF3IgorCS5zZWN0aW9uIC5kYXRhCiAJLmFsaWduCVBBR0VfU0laRQogRU5UUlkobHdzX2xvY2tfc3RhcnQpCiAJLyogbHdzIGxvY2tzICovCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IDUwYjRhM2EuLjFhM2I2Y2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC01MCw2ICs1MCw3IEBACiAKIAlfdGV4dCA9IC47CQkvKiBUZXh0IGFuZCByZWFkLW9ubHkgZGF0YSAqLwogCS50ZXh0IEFMSUdOKDE2KSA6IHsKKwkJSEVBRF9URVhUCiAJCVRFWFRfVEVYVAogCQlTQ0hFRF9URVhUCiAJCUxPQ0tfVEVYVApAQCAtNjYsNyArNjcsNiBAQAogCV9ldGV4dCA9IC47CiAKIAlST0RBVEEKLQlCVUdfVEFCTEUKIAogCS8qIHdyaXRlYWJsZSAqLwogCS8qIE1ha2Ugc3VyZSB0aGlzIGlzIHBhZ2UgYWxpZ25lZCBzbwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL2ZpeHVwLlMgYi9hcmNoL3BhcmlzYy9saWIvZml4dXAuUwppbmRleCA0ODIxYWQ2Li5kMTcyZDQyIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9saWIvZml4dXAuUworKysgYi9hcmNoL3BhcmlzYy9saWIvZml4dXAuUwpAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1ZGUgPGFzbS9hc3NlbWJseS5oPgogI2luY2x1ZGUgPGFzbS9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAKICNpZmRlZiBDT05GSUdfU01QCiAJLm1hY3JvICBnZXRfZmF1bHRfaXAgdDEgdDIKQEAgLTU2LDcgKzU1LDcgQEAKIAogCS5sZXZlbCBMRVZFTAogCi0JX19IRUFECisJLnRleHQKIAkuc2VjdGlvbiAuZml4dXAsICJheCIKIAogCS8qIGdldF91c2VyKCkgZml4dXBzLCBzdG9yZSAtRUZBVUxUIGluIHI4LCBhbmQgMCBpbiByOSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL2x1c2VyY29weS5TIGIvYXJjaC9wYXJpc2MvbGliL2x1c2VyY29weS5TCmluZGV4IGIwZDg4NTMuLjFiZDIzY2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2xpYi9sdXNlcmNvcHkuUworKysgYi9hcmNoL3BhcmlzYy9saWIvbHVzZXJjb3B5LlMKQEAgLTMzLDEyICszMywxMSBAQAogICovCiAKIAorCS50ZXh0CisJCiAjaW5jbHVkZSA8YXNtL2Fzc2VtYmx5Lmg+CiAjaW5jbHVkZSA8YXNtL2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotCV9fSEVBRAogCiAJLyoKIAkgKiBnZXRfc3IgZ2V0cyB0aGUgYXBwcm9wcmlhdGUgc3BhY2UgdmFsdWUgaW50bwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbW0vaW5pdC5jIGIvYXJjaC9wYXJpc2MvbW0vaW5pdC5jCmluZGV4IDc4ZmUyNTIuLmNlMGRhNjggMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL21tL2luaXQuYworKysgYi9hcmNoL3BhcmlzYy9tbS9pbml0LmMKQEAgLTU0Nyw2ICs1NDcsNyBAQAogfQogCiB1bnNpZ25lZCBsb25nICplbXB0eV96ZXJvX3BhZ2UgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKIAogdm9pZCBzaG93X21lbSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL0tjb25maWcgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwppbmRleCAzOTM0ZTI2Li5hNWU5OTEyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvS2NvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwpAQCAtMTA1LDExICsxMDUsMTMgQEAKIGNvbmZpZyBQUEMKIAlib29sCiAJZGVmYXVsdCB5CisJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0UKKwlzZWxlY3QgSEFWRV9GVFJBQ0UKIAlzZWxlY3QgSEFWRV9JREUKLQlzZWxlY3QgSEFWRV9PUFJPRklMRQogCXNlbGVjdCBIQVZFX0tQUk9CRVMKIAlzZWxlY3QgSEFWRV9LUkVUUFJPQkVTCiAJc2VsZWN0IEhBVkVfTE1CCisJc2VsZWN0IEhBVkVfT1BST0ZJTEUKIAogY29uZmlnIEVBUkxZX1BSSU5USwogCWJvb2wKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9NYWtlZmlsZQppbmRleCA5ZGNkYzAzLi5iN2Q0YzRjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL01ha2VmaWxlCkBAIC05Niw2ICs5Niw4IEBACiBlbHNlCiAJS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1tdHVuZT1wb3dlcjQpCiBlbmRpZgorZWxzZQorTERGTEFHU19NT0RVTEUJKz0gYXJjaC9wb3dlcnBjL2xpYi9jcnRzYXZyZXMubwogZW5kaWYKIAogaWZlcSAoJChDT05GSUdfVFVORV9DRUxMKSx5KQpAQCAtMTU0LDcgKzE1Niw3IEBACiAKIENQUEZMQUdTX3ZtbGludXgubGRzCTo9IC1VcG93ZXJwYwogCi1CT09UX1RBUkdFVFMgPSB6SW1hZ2UgekltYWdlLmluaXRyZCB1SW1hZ2UgekltYWdlJSBkdGJJbWFnZSUgdHJlZUltYWdlLiUgY3VJbWFnZS4lCitCT09UX1RBUkdFVFMgPSB6SW1hZ2UgekltYWdlLmluaXRyZCB1SW1hZ2UgekltYWdlJSBkdGJJbWFnZSUgdHJlZUltYWdlLiUgY3VJbWFnZS4lIHNpbXBsZUltYWdlLiUKIAogUEhPTlkgKz0gJChCT09UX1RBUkdFVFMpCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKaW5kZXggZjVlMGIyYS4uMDk1ZTA0ZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKQEAgLTUxLDcgKzUxLDcgQEAKIAkkKGFkZHByZWZpeCAkKG9iaikvLCQoemxpYmxpbnV4aGVhZGVyKSkgJChhZGRwcmVmaXggJChvYmopLywkKHpsaWJoZWFkZXIpKQogCiBzcmMtbGliZmR0IDo9IGZkdC5jIGZkdF9yby5jIGZkdF93aXAuYyBmZHRfc3cuYyBmZHRfcncuYyBmZHRfc3RyZXJyb3IuYwotc3JjLXdsaWIgOj0gc3RyaW5nLlMgY3J0MC5TIHN0ZGlvLmMgbWFpbi5jIFwKK3NyYy13bGliIDo9IHN0cmluZy5TIGNydDAuUyBjcnRzYXZyZXMuUyBzdGRpby5jIG1haW4uYyBcCiAJCSQoYWRkcHJlZml4IGxpYmZkdC8sJChzcmMtbGliZmR0KSkgbGliZmR0LXdyYXBwZXIuYyBcCiAJCW5zMTY1NTAuYyBzZXJpYWwuYyBzaW1wbGVfYWxsb2MuYyBkaXY2NC5TIHV0aWwuUyBcCiAJCWd1bnppcF91dGlsLmMgZWxmX3V0aWwuYyAkKHpsaWIpIGRldnRyZWUuYyBvZmxpYi5jIG9mY29uc29sZS5jIFwKQEAgLTIyMSw4ICsyMjEsOCBAQAogaW1hZ2UtJChDT05GSUdfWU9TRU1JVEUpCQkrPSBjdUltYWdlLnlvc2VtaXRlCiAKICMgQm9hcmQgcG9ydHMgaW4gYXJjaC9wb3dlcnBjL3BsYXRmb3JtLzh4eC9LY29uZmlnCi1pbWFnZS0kKENPTkZJR19QUENfTVBDODZYQURTKQkJKz0gY3VJbWFnZS5tcGM4NjZhZHMKLWltYWdlLSQoQ09ORklHX1BQQ19NUEM4ODVBRFMpCQkrPSBjdUltYWdlLm1wYzg4NWFkcworaW1hZ2UtJChDT05GSUdfTVBDODZYQURTKQkJKz0gY3VJbWFnZS5tcGM4NjZhZHMKK2ltYWdlLSQoQ09ORklHX01QQzg4NUFEUykJCSs9IGN1SW1hZ2UubXBjODg1YWRzCiBpbWFnZS0kKENPTkZJR19QUENfRVA4OFhDKQkJKz0gZHRiSW1hZ2UuZXA4OHhjCiBpbWFnZS0kKENPTkZJR19QUENfQURERVI4NzUpCQkrPSBjdUltYWdlLmFkZGVyODc1LXVib290IFwKIAkJCQkJICAgZHRiSW1hZ2UuYWRkZXI4NzUtcmVkYm9vdApAQCAtMjczLDcgKzI3Myw4IEBACiBpbml0cmQtICA6PSAkKHBhdHN1YnN0IHpJbWFnZSUsIHpJbWFnZS5pbml0cmQlLCAkKGltYWdlLW4pICQoaW1hZ2UtKSkKIGluaXRyZC15IDo9ICQocGF0c3Vic3QgekltYWdlJSwgekltYWdlLmluaXRyZCUsIFwKIAkJJChwYXRzdWJzdCBkdGJJbWFnZSUsIGR0YkltYWdlLmluaXRyZCUsIFwKLQkJJChwYXRzdWJzdCB0cmVlSW1hZ2UlLCB0cmVlSW1hZ2UuaW5pdHJkJSwgJChpbWFnZS15KSkpKQorCQkkKHBhdHN1YnN0IHNpbXBsZUltYWdlJSwgc2ltcGxlSW1hZ2UuaW5pdHJkJSwgXAorCQkkKHBhdHN1YnN0IHRyZWVJbWFnZSUsIHRyZWVJbWFnZS5pbml0cmQlLCAkKGltYWdlLXkpKSkpKQogaW5pdHJkLXkgOj0gJChmaWx0ZXItb3V0ICQoaW1hZ2UteSksICQoaW5pdHJkLXkpKQogdGFyZ2V0cwkrPSAkKGltYWdlLXkpICQoaW5pdHJkLXkpCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2NydHNhdnJlcy5TIGIvYXJjaC9wb3dlcnBjL2Jvb3QvY3J0c2F2cmVzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNkOWIzNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2NydHNhdnJlcy5TCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogU3BlY2lhbCBzdXBwb3J0IGZvciBlYWJpIGFuZCBTVlI0CisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTUsIDE5OTYsIDE5OTgsIDIwMDAsIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKiAgIENvcHlyaWdodCAyMDA4IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKiAgIFdyaXR0ZW4gQnkgTWljaGFlbCBNZWlzc25lcgorICoKKyAqIEJhc2VkIG9uIGdjYy9jb25maWcvcnM2MDAwL2NydHNhdnJlcy5hc20gZnJvbSBnY2MKKyAqCisgKiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBwZXJtaXNzaW9ucyBpbiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzIHlvdSB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBsaW5rIHRoZQorICogY29tcGlsZWQgdmVyc2lvbiBvZiB0aGlzIGZpbGUgd2l0aCBvdGhlciBwcm9ncmFtcywgYW5kIHRvIGRpc3RyaWJ1dGUKKyAqIHRob3NlIHByb2dyYW1zIHdpdGhvdXQgYW55IHJlc3RyaWN0aW9uIGNvbWluZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcworICogZmlsZS4gIChUaGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSByZXN0cmljdGlvbnMgZG8gYXBwbHkgaW4gb3RoZXIKKyAqIHJlc3BlY3RzOyBmb3IgZXhhbXBsZSwgdGhleSBjb3ZlciBtb2RpZmljYXRpb24gb2YgdGhlIGZpbGUsIGFuZAorICogZGlzdHJpYnV0aW9uIHdoZW4gbm90IGxpbmtlZCBpbnRvIGFub3RoZXIgcHJvZ3JhbS4pCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqICAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIHlvdSBsaW5rIHRoaXMgbGlicmFyeSB3aXRoIGZpbGVzCisgKiAgICBjb21waWxlZCB3aXRoIEdDQyB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIHRoaXMgZG9lcyBub3QgY2F1c2UKKyAqICAgIHRoZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqICAgIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkKKyAqICAgIHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworCS5maWxlCSJjcnRzYXZyZXMuUyIKKwkuc2VjdGlvbiAiLnRleHQiCisKKy8qIE9uIFBvd2VyUEM2NCBMaW51eCwgdGhlc2UgZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBieSB0aGUgbGlua2VyLiAgKi8KKyNpZm5kZWYgX19wb3dlcnBjNjRfXworCisjZGVmaW5lIF9HTE9CQUwobmFtZSkgXAorCS50eXBlIG5hbWUsQGZ1bmN0aW9uOyBcCisJLmdsb2JsIG5hbWU7IFwKK25hbWU6CisKKy8qIFJvdXRpbmVzIGZvciBzYXZpbmcgaW50ZWdlciByZWdpc3RlcnMsIGNhbGxlZCBieSB0aGUgY29tcGlsZXIuICAqLworLyogQ2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVyIG9mIHRoZSAqLworLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgc2F2ZSBhcmVhLiAgKi8KKworX0dMT0JBTChfc2F2ZWdwcl8xNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNCkKKwlzdHcJMTQsLTcyKDExKQkvKiBzYXZlIGdwIHJlZ2lzdGVycyAqLworX0dMT0JBTChfc2F2ZWdwcl8xNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNSkKKwlzdHcJMTUsLTY4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNikKK19HTE9CQUwoX3NhdmUzMmdwcl8xNikKKwlzdHcJMTYsLTY0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNykKK19HTE9CQUwoX3NhdmUzMmdwcl8xNykKKwlzdHcJMTcsLTYwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOCkKKwlzdHcJMTgsLTU2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOSkKKwlzdHcJMTksLTUyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMCkKKwlzdHcJMjAsLTQ4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMSkKKwlzdHcJMjEsLTQ0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMikKK19HTE9CQUwoX3NhdmUzMmdwcl8yMikKKwlzdHcJMjIsLTQwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMykKK19HTE9CQUwoX3NhdmUzMmdwcl8yMykKKwlzdHcJMjMsLTM2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNCkKKwlzdHcJMjQsLTMyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNSkKKwlzdHcJMjUsLTI4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNikKK19HTE9CQUwoX3NhdmUzMmdwcl8yNikKKwlzdHcJMjYsLTI0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNykKK19HTE9CQUwoX3NhdmUzMmdwcl8yNykKKwlzdHcJMjcsLTIwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOCkKKwlzdHcJMjgsLTE2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOSkKKwlzdHcJMjksLTEyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8zMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8zMCkKKwlzdHcJMzAsLTgoMTEpCitfR0xPQkFMKF9zYXZlZ3ByXzMxKQorX0dMT0JBTChfc2F2ZTMyZ3ByXzMxKQorCXN0dwkzMSwtNCgxMSkKKwlibHIKKworLyogUm91dGluZXMgZm9yIHJlc3RvcmluZyBpbnRlZ2VyIHJlZ2lzdGVycywgY2FsbGVkIGJ5IHRoZSBjb21waWxlci4gICovCisvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCisvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciByZXN0b3JlIGFyZWEuICAqLworCitfR0xPQkFMKF9yZXN0Z3ByXzE0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE0KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE1KQorCWx3egkxNSwtNjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2KQorCWx3egkxNiwtNjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE3KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE4KQorCWx3egkxOCwtNTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5KQorCWx3egkxOSwtNTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIwKQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIxKQorCWx3egkyMSwtNDQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIyKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyKQorCWx3egkyMiwtNDAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIzKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIzKQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI0KQorCWx3egkyNCwtMzIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1KQorCWx3egkyNSwtMjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI2KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI3KQorCWx3egkyNywtMjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4KQorCWx3egkyOCwtMTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI5KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzMwKQorCWx3egkzMCwtOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMzEpCitfR0xPQkFMKF9yZXN0MzJncHJfMzEpCisJbHd6CTMxLC00KDExKQorCWJscgorCisvKiBSb3V0aW5lcyBmb3IgcmVzdG9yaW5nIGludGVnZXIgcmVnaXN0ZXJzLCBjYWxsZWQgYnkgdGhlIGNvbXBpbGVyLiAgKi8KKy8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBvZiB0aGUgKi8KKy8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHJlc3RvcmUgYXJlYS4gICovCisKK19HTE9CQUwoX3Jlc3RncHJfMTRfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNF94KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMTVfeCkKKwlsd3oJMTUsLTY4KDExKQorX0dMT0JBTChfcmVzdGdwcl8xNl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2X3gpCisJbHd6CTE2LC02NCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMTdfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xN194KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMThfeCkKKwlsd3oJMTgsLTU2KDExKQorX0dMT0JBTChfcmVzdGdwcl8xOV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5X3gpCisJbHd6CTE5LC01MigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjBfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMF94KQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjFfeCkKKwlsd3oJMjEsLTQ0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyX3gpCisJbHd6CTIyLC00MCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjNfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yM194KQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjRfeCkKKwlsd3oJMjQsLTMyKDExKQorX0dMT0JBTChfcmVzdGdwcl8yNV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1X3gpCisJbHd6CTI1LC0yOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjZfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNl94KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjdfeCkKKwlsd3oJMjcsLTIwKDExKQorX0dMT0JBTChfcmVzdGdwcl8yOF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4X3gpCisJbHd6CTI4LC0xNigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjlfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOV94KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzBfeCkKKwlsd3oJMzAsLTgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzFfeCkKKwlsd3oJMCw0KDExKQorCWx3egkzMSwtNCgxMSkKKwltdGxyCTAKKwltcgkxLDExCisJYmxyCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc3X3JkYi5kdHMgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3N19yZGIuZHRzCmluZGV4IDViYzA5YWQuLmYzMDgzYzcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc3X3JkYi5kdHMKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzdfcmRiLmR0cwpAQCAtMTY0LDEyICsxNjQsNiBAQAogCQkJCXJlZyA9IDwweDI+OwogCQkJCWRldmljZV90eXBlID0gImV0aGVybmV0LXBoeSI7CiAJCQl9OwotCQkJcGh5MzogZXRoZXJuZXQtcGh5QDMgewotCQkJCWludGVycnVwdC1wYXJlbnQgPSA8JmlwaWM+OwotCQkJCWludGVycnVwdHMgPSA8MTggMHg4PjsKLQkJCQlyZWcgPSA8MHgzPjsKLQkJCQlkZXZpY2VfdHlwZSA9ICJldGhlcm5ldC1waHkiOwotCQkJfTsKIAkJfTsKIAogCQllbmV0MDogZXRoZXJuZXRAMjQwMDAgewpAQCAtMTk1LDcgKzE4OSw3IEBACiAJCQlpbnRlcnJ1cHRzID0gPDM1IDB4OCAzNiAweDggMzcgMHg4PjsKIAkJCXBoeS1jb25uZWN0aW9uLXR5cGUgPSAibWlpIjsKIAkJCWludGVycnVwdC1wYXJlbnQgPSA8JmlwaWM+OwotCQkJcGh5LWhhbmRsZSA9IDwmcGh5Mz47CisJCQlmaXhlZC1saW5rID0gPDEgMSAxMDAwIDAgMD47CiAJCX07CiAKIAkJc2VyaWFsMDogc2VyaWFsQDQ1MDAgewpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzhfcmRiLmR0cyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc4X3JkYi5kdHMKaW5kZXggNzExZjlhMy4uMGU4NzJhNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzhfcmRiLmR0cworKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OF9yZGIuZHRzCkBAIC0xNjQsMTIgKzE2NCw2IEBACiAJCQkJcmVnID0gPDB4Mj47CiAJCQkJZGV2aWNlX3R5cGUgPSAiZXRoZXJuZXQtcGh5IjsKIAkJCX07Ci0JCQlwaHkzOiBldGhlcm5ldC1waHlAMyB7Ci0JCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmaXBpYz47Ci0JCQkJaW50ZXJydXB0cyA9IDwxOCAweDg+OwotCQkJCXJlZyA9IDwweDM+OwotCQkJCWRldmljZV90eXBlID0gImV0aGVybmV0LXBoeSI7Ci0JCQl9OwogCQl9OwogCiAJCWVuZXQwOiBldGhlcm5ldEAyNDAwMCB7CkBAIC0xOTUsNyArMTg5LDcgQEAKIAkJCWludGVycnVwdHMgPSA8MzUgMHg4IDM2IDB4OCAzNyAweDg+OwogCQkJcGh5LWNvbm5lY3Rpb24tdHlwZSA9ICJtaWkiOwogCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmaXBpYz47Ci0JCQlwaHktaGFuZGxlID0gPCZwaHkzPjsKKwkJCWZpeGVkLWxpbmsgPSA8MSAxIDEwMDAgMCAwPjsKIAkJfTsKIAogCQlzZXJpYWwwOiBzZXJpYWxANDUwMCB7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OV9yZGIuZHRzIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzlfcmRiLmR0cwppbmRleCBjMTFjZWI3Li4xZWI4ZGVmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OV9yZGIuZHRzCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc5X3JkYi5kdHMKQEAgLTE2NCwxMiArMTY0LDYgQEAKIAkJCQlyZWcgPSA8MHgyPjsKIAkJCQlkZXZpY2VfdHlwZSA9ICJldGhlcm5ldC1waHkiOwogCQkJfTsKLQkJCXBoeTM6IGV0aGVybmV0LXBoeUAzIHsKLQkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpcGljPjsKLQkJCQlpbnRlcnJ1cHRzID0gPDE4IDB4OD47Ci0JCQkJcmVnID0gPDB4Mz47Ci0JCQkJZGV2aWNlX3R5cGUgPSAiZXRoZXJuZXQtcGh5IjsKLQkJCX07CiAJCX07CiAKIAkJZW5ldDA6IGV0aGVybmV0QDI0MDAwIHsKQEAgLTE5NSw3ICsxODksNyBAQAogCQkJaW50ZXJydXB0cyA9IDwzNSAweDggMzYgMHg4IDM3IDB4OD47CiAJCQlwaHktY29ubmVjdGlvbi10eXBlID0gIm1paSI7CiAJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpcGljPjsKLQkJCXBoeS1oYW5kbGUgPSA8JnBoeTM+OworCQkJZml4ZWQtbGluayA9IDwxIDEgMTAwMCAwIDA+OwogCQl9OwogCiAJCXNlcmlhbDA6IHNlcmlhbEA0NTAwIHsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NTQ4Y2RzLmR0cyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NTQ4Y2RzLmR0cwppbmRleCBmYTI5OGE4Li40ODExYjgxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODU0OGNkcy5kdHMKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzg1NDhjZHMuZHRzCkBAIC00MDksNyArNDA5LDcgQEAKIAkJaW50ZXJydXB0cyA9IDwyNiAyPjsKIAkJYnVzLXJhbmdlID0gPDAgMjU1PjsKIAkJcmFuZ2VzID0gPDB4MjAwMDAwMCAweDAgMHhhMDAwMDAwMCAweGEwMDAwMDAwIDB4MCAweDIwMDAwMDAwCi0JCQkgIDB4MTAwMDAwMCAweDAgMHgwIDB4ZTMwMDAwMDAgMHgwIDB4ODAwMDAwMD47CisJCQkgIDB4MTAwMDAwMCAweDAgMHgwIDB4ZTMwMDAwMDAgMHgwIDB4MTAwMDAwPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDMzMzMzMzMzPjsKIAkJI2ludGVycnVwdC1jZWxscyA9IDwxPjsKIAkJI3NpemUtY2VsbHMgPSA8Mj47CkBAIC00MjgsNyArNDI4LDcgQEAKIAogCQkJCSAgMHgxMDAwMDAwIDB4MCAweDAKIAkJCQkgIDB4MTAwMDAwMCAweDAgMHgwCi0JCQkJICAweDAgMHg4MDAwMDAwPjsKKwkJCQkgIDB4MCAweDEwMDAwMD47CiAJCX07CiAJfTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTNfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCmluZGV4IDdkMTg0NDAuLjU0MjhmOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBGcmkgQXByIDExIDExOjEwOjA5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0xOTYsNyArMjAxLDYgQEAKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAogQ09ORklHX0JJTkZNVF9FTEY9eQogIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQogQ09ORklHX0FSQ0hfSEFTX1dBTEtfTUVNT1JZPXkKQEAgLTIxMSwxMSArMjE1LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzksNiArMjQ1LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDgsMTEgKzI1NSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDAsOCArMzA3LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM2Miw2ICszNjcsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9PRl9QQVJUUz15CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDQ1LDYgKzQ1MSw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNjQxLDcgKzY0OCw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY2MSw2ICs2NjcsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NjgsNiArNjc1LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MjQsNiArNzMyLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NTEsNyArNzYwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NjIsMTMgKzc3MCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTUsNiArNzk2LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwNCwxNyArODA2LDEyIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogQ09ORklHX1NQST15CiAjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAogQ09ORklHX1NQSV9NQVNURVI9eQpAQCAtOTE5LDEyICs5MTYsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtOTc3LDE2ICs5ODQsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMDA0LDYgKzEwMTUsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMDIzLDcgKzEwMzUsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjEsNiArMTA3NSw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKQEAgLTEwNzIsNiArMTA4Nyw3IEBACiBDT05GSUdfVVNCX05FVDIyODA9eQogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtMTA5MCw2ICsxMTA2LDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC0xMTQ0LDExICsxMTYxLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMTY4LDcgKzExODIsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMjM3LDcgKzEyNTAsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMjgyLDYgKzEyOTQsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTMwMiw2ICsxMzE1LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMzEyLDYgKzEzMjYsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMzI0LDYgKzEzMzksNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMzM1LDYgKzEzNTEsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTEzNDUsNTEgKzEzNjIsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTVfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCmluZGV4IDFmNTc0NTYuLjliYzNhMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjE1IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM4LDYgKzI0NSw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ3LDExICsyNTUsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk5LDggKzMwNyw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNjEsNiArMzY3LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDQ0LDYgKzQ1MSw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTQ5LDcgKzU1NywxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX0ZTTD15CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTU1OSwxMyArNTcxLDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9GU0w9eQogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC02MDUsNiArNjE1LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CiBDT05GSUdfTURfTElORUFSPXkKQEAgLTY5OCw3ICs3MDksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC03MTgsNiArNzI4LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNzI1LDYgKzczNiw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNzgxLDYgKzc5Myw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtODA4LDcgKzgyMSw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtODE5LDEzICs4MzEsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODUyLDYgKzg1Nyw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04NjEsMTcgKzg2NywxMiBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19TUElfTUFTVEVSPXkKQEAgLTk3NiwxMiArOTc3LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKQEAgLTEwMzQsMTYgKzEwNDUsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMDYxLDYgKzEwNzYsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMDgwLDcgKzEwOTYsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTExMTgsNiArMTEzNiw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKQEAgLTExMjksNiArMTE0OCw3IEBACiBDT05GSUdfVVNCX05FVDIyODA9eQogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtMTE0Nyw2ICsxMTY3LDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC0xMjAxLDExICsxMjIyLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjI1LDcgKzEyNDMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMjk0LDcgKzEzMTEsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMzM5LDYgKzEzNTUsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTM1MSw2ICsxMzY4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTM1OCw2ICsxMzc2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMzY4LDYgKzEzODcsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMzgwLDYgKzE0MDAsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMzkxLDYgKzE0MTIsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE0MDEsNTEgKzE0MjMsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfbWRzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCmluZGV4IDUwY2NlZGEuLjFlY2EyNmYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM2OjUxIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTIsMTEgKzIxNywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM5LDYgKzI0Niw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDgsMTEgKzI1NiwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDAsOCArMzA4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1NSw2ICszNjEsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUyMiw3ICs1MjksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC01NDYsNiArNTUyLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNTUzLDYgKzU2MCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTYwMCw2ICs2MDgsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTYyOCw3ICs2MzcsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQogIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTYzOSwxMyArNjQ3LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTY3MSw2ICs2NzIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNjgwLDE5ICs2ODIsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTc3NSwxMiArNzcxLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC04MTEsNiArODE3LDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODE5LDYgKzgyNyw3IEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtODcwLDExICs4NzksOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTg5NCw3ICs5MDAsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05NTIsNyArOTU3LDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtOTk1LDYgKzk5OSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDA1LDYgKzEwMTAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDEyLDYgKzEwMTgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwMjEsNiArMTAyOCw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTAzMCw1MiArMTAzOCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzJ4X3JkYl9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZwppbmRleCBhYzkxMzAyLi5kZTk1ZDMyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxNiAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjQgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEyLDExICsyMTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzOSw2ICsyNDYsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ4LDExICsyNTYsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAwLDggKzMwOCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTUsNiArMzYxLDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjYsNyArNTMzLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTUwLDYgKzU1Niw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1Nyw2ICs1NjQsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTYxMyw2ICs2MjEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTY1MywxMyArNjYyLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTY4Niw2ICs2ODgsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNjk1LDE3ICs2OTgsMTIgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKIENPTkZJR19TUElfTUFTVEVSPXkKIApAQCAtODA5LDEyICs4MDcsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtODY3LDE2ICs4NzUsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEX1BQQ19PRj15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0Y9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0ZfQkU9eQpAQCAtODk0LDYgKzkwNiw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTkxMyw3ICs5MjYsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTk1MSw2ICs5NjYsNyBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogQ09ORklHX01NQz15CiAjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldApAQCAtOTYyLDYgKzk3OCw3IEBACiBDT05GSUdfTU1DX0JMT0NLPXkKIENPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKICMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUNfVEVTVCBpcyBub3Qgc2V0CiAKICMKICMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCkBAIC05NzIsMTQgKzk4OSwxMSBAQAogQ09ORklHX01NQ19TUEk9eQogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTk5OSw3ICsxMDEzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTA2MCw3ICsxMDczLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTE0Nyw2ICsxMTU5LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogQ09ORklHX0NSQ19JVFVfVD15CkBAIC0xMTU3LDYgKzExNzAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMTY0LDYgKzExNzgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTExNzMsNiArMTE4OCw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE4Miw1MiArMTE5OCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZwppbmRleCBlMWRlMzk5Li5iNDdmYzkxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxNyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjUgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNyw2ICsyNDQsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ2LDExICsyNTQsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk4LDggKzMwNiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MzIsNiArNDM4LDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01NDEsNyArNTQ4LDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC01NTEsMTMgKzU2MiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX1NJTD15Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldApAQCAtNTk4LDYgKzYwNyw3IEBACiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogQ09ORklHX1BBVEFfUExBVEZPUk09eQogQ09ORklHX1BBVEFfT0ZfUExBVEZPUk09eQorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogQ09ORklHX01EPXkKIENPTkZJR19CTEtfREVWX01EPXkKIENPTkZJR19NRF9MSU5FQVI9eQpAQCAtNjU5LDcgKzY2OSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY3OSw2ICs2ODgsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02ODYsNiArNjk2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MjIsNiArNzMzLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NDksNyArNzYxLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NjAsMTMgKzc3MSw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTMsNiArNzk3LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwMiwxNyArODA3LDEyIEBACiBDT05GSUdfU0VOU09SU19QQ0Y4NTc0PXkKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogQ09ORklHX1NQSV9NQVNURVI9eQogCkBAIC04NjIsMTIgKzg2MiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC05MDUsMTYgKzkxNSwyMCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9VSENJX0hDRD15CiAjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKQEAgLTkyNSw2ICs5MzksNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC05NDUsNiArOTYwLDcgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTk4MiwxMCArOTk4LDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtMTA0MCwxMSArMTA1OCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA2NCw3ICsxMDc5LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTEyNiw3ICsxMTQwLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTIxMCw2ICsxMjIzLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEyMjAsNiArMTIzNCw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEyMjcsNiArMTI0Miw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTIzNiw2ICsxMjUyLDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMjQ1LDUxICsxMjYyLDgxIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eGdwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9pdHhncF9kZWZjb25maWcKaW5kZXggYjRlMzljZi4uZmRhYzQ4NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eGdwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4Z3BfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjE4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM3LDYgKzI0NCw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDYsMTEgKzI1NCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTgsOCArMzA2LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQzMiw2ICs0MzgsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTU4Nyw3ICs1OTQsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MDcsNiArNjEzLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE0LDYgKzYyMSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNjUwLDYgKzY1OCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNjc3LDcgKzY4Niw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNjg4LDEzICs2OTYsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzIxLDYgKzcyMiw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03MzAsMTcgKzczMiwxMiBAQAogQ09ORklHX1NFTlNPUlNfUENGODU3ND15CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKIENPTkZJR19TUElfTUFTVEVSPXkKIApAQCAtNzkwLDEyICs3ODcsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtODMzLDE2ICs4NDAsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfVUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CkBAIC04NTMsNiArODY0LDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODczLDYgKzg4NSw3IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC05MDksMTAgKzkyMiwxMiBAQAogIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC05NjcsMTEgKzk4Miw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTkxLDcgKzEwMDMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMDUzLDcgKzEwNjQsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMTM3LDYgKzExNDcsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTE0Nyw2ICsxMTU4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTE1NCw2ICsxMTY2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMTYzLDYgKzExNzYsNyBAQAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTExNzIsNTEgKzExODYsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfbWRzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCmluZGV4IGI0ZTgyYzAuLmM4MmU5NmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM2OjU2IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM3LDYgKzI0NCw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDYsMTEgKzI1NCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTgsOCArMzA2LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNTksNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQ3MSw3ICs0NzgsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00OTEsNiArNDk3LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDk4LDYgKzUwNSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTU0NCw2ICs1NTIsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU3MSw3ICs1ODAsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNTgyLDEzICs1OTAsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNjE0LDYgKzYxNSw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC02MjMsMTkgKzYyNSwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNzE4LDEyICs3MTQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTc1NCw2ICs3NjAsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC03NjIsNiArNzcwLDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC04MTMsMTEgKzgyMiw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODM3LDcgKzg0Myw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTg5NSw3ICs5MDAsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC05MzYsNiArOTQwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTk0Niw2ICs5NTEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC05NTMsNiArOTU5LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC05NjIsNiArOTY5LDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC05NzEsNTEgKzk3OSw4MSBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzZ4X21kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZwppbmRleCBkNTBhOTZlLi4yMGZkOWY1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNjo1NyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjcgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNyw2ICsyNDQsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ2LDExICsyNTQsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk4LDggKzMwNiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTMsNiArMzU5LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjAsNyArNTI3LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTQ0LDYgKzU1MCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1MSw2ICs1NTgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC01OTgsNiArNjA2LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjYsNyArNjM1LDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC02MzcsMTMgKzY0NSw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC02NjksNiArNjcwLDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY3OCwxOSArNjgwLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NzMsMTIgKzc2OSwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODA5LDYgKzgxNSw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTgxNyw2ICs4MjUsNyBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTg2OCwxMSArODc3LDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC04OTIsNyArODk4LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTUwLDcgKzk1NSw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTk5Myw2ICs5OTcsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTAwMyw2ICsxMDA4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTAxMCw2ICsxMDE2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMDE5LDYgKzEwMjYsNyBAQAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMjgsNTIgKzEwMzYsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9tZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKaW5kZXggZjM3N2NkZS4uMGY5NGQ5ZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MjMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjI4IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDEyICsxMTQsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTIxMSwxMSArMjE2LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzQsNiArMjQxLDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MywxMSArMjUxLDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5NSw4ICszMDMsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUwLDYgKzM1Niw3IEBACiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNDExLDggKzQxOCwxMCBAQAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9GU0w9eQorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0lOVE9TSF9EUklWRVJTIGlzIG5vdCBzZXQKQEAgLTQ1OSw2ICs0NjgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTAzLDYgKzUxMyw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01MzcsMTMgKzU0OCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01NTIsNiArNTU2LDcgQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNTYxLDE5ICs1NjYsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTY0NiwxMiArNjQ1LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC02ODAsNiArNjg5LDggQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC02ODgsMTMgKzY5OSwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNzE0LDcgKzcyMiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTc3Miw3ICs3NzksNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC04MTcsNiArODIzLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgyNyw2ICs4MzQsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04MzQsNiArODQyLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NDEsNiArODUwLDcgQEAKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTg1MCw1MCArODYwLDgwIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzN3hfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCmluZGV4IGE2MzMxNzYuLjBkNDQ4NTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjI0IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgVHVlIEp1biAxMCAwOToxNzoxMiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKQEAgLTExMSwxMiArMTE0LDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTEsMTEgKzIxNiwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzI0MSw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDMsMTEgKzI1MSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTAsOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM0NSw2ICszNTEsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTM1Miw2ICszNTksNyBAQAogQ09ORklHX0JMS19ERVZfTE9PUD15CiAjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0zMjc2OApAQCAtNDA2LDggKzQxNCwxMCBAQAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9GU0w9eQorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CkBAIC00NDQsNyArNDU0LDcgQEAKICMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JFQUxURUtfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CitDT05GSUdfRklYRURfUEhZPXkKICMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKIENPTkZJR19NSUk9eQpAQCAtNDY0LDYgKzQ3NCwxNiBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTA4LDYgKzUyOCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NDIsMTMgKzU2Myw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01NTcsNiArNTcxLDggQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTU2NiwxOSArNTgyLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC02NDIsNiArNjUyLDExIEBACiBDT05GSUdfODN4eF9XRFQ9eQogCiAjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKICMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCiAjCiBDT05GSUdfU1NCX1BPU1NJQkxFPXkKQEAgLTY1MSwxMyArNjY2LDI0IEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQorIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydApAQCAtNjgwLDYgKzcwNiwxNCBAQAogQ09ORklHX0hJRD15CiAjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NVUFBPUlQ9eQogQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldApAQCAtNjk1LDMzICs3MjksODMgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKIAogIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CisKKyMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwogIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKKyMgQ09ORklHX1VTQl9TVE9SQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTc0MSw3ICs4MjUsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC03OTksNyArODgyLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtODQ0LDYgKzkyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC04NTQsNiArOTM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtODYxLDYgKzk0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NjgsNiArOTUzLDcgQEAKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTg4MSw1MCArOTY3LDgwIEBACiBDT05GSUdfQVNZTkNfTUVNQ1BZPXkKIENPTkZJR19BU1lOQ19YT1I9eQogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9zYmM4MzR4X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvc2JjODM0eF9kZWZjb25maWcKaW5kZXggMWYxNTE4Mi4uMTc1MjkxOCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9zYmM4MzR4X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L3NiYzgzNHhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjM4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozMCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTA5LDEyICsxMTIsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMDksMTEgKzIxNCwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjMyLDYgKzIzOSw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDEsMTEgKzI0OSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTMsOCArMzAxLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM0OCw2ICszNTQsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQyMCw2ICs0MjcsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNDY0LDYgKzQ3Miw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC00OTgsMTMgKzUwNyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01MTMsNiArNTE1LDcgQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNTIyLDE5ICs1MjUsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTYwNywxMiArNjA0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKQEAgLTY0MCwxMyArNjQ3LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC02NTksNyArNjYzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNzE3LDcgKzcyMCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTc0Niw2ICs3NDgsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzU2LDYgKzc1OSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc2Myw2ICs3NjcsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc3MCw2ICs3NzUsNyBAQAogIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtNzc5LDUwICs3ODUsODAgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9rc2k4NTYwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgva3NpODU2MF9kZWZjb25maWcKaW5kZXggMmQwZGViYy4uYjgyYmIwNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9rc2k4NTYwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2tzaTg1NjBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0Ci0jIE1vbiBGZWIgMTEgMTY6MjU6MTkgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjMwIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTY4LDIzICs3MCwyMiBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTkyLDYgKzkzLDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTEwOSw2ICsxMTEsOCBAQAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xMzQsNyArMTM4LDYgQEAKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCiBDT05GSUdfQ0xBU1NJQ19SQ1U9eQotIyBDT05GSUdfUFJFRU1QVF9SQ1UgaXMgbm90IHNldAogCiAjCiAjIFBsYXRmb3JtIHN1cHBvcnQKQEAgLTE5MSwxMiArMTk0LDEzIEBACiBDT05GSUdfUFJFRU1QVF9OT05FPXkKICMgQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotQ09ORklHX1JDVV9UUkFDRT15CiBDT05GSUdfQklORk1UX0VMRj15CiBDT05GSUdfQklORk1UX01JU0M9eQogQ09ORklHX01BVEhfRU1VTEFUSU9OPXkKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQorQ09ORklHX0FSQ0hfSEFTX1dBTEtfTUVNT1JZPXkKK0NPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUkVNT1ZFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKIENPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CkBAIC0yMDcsMTYgKzIxMSwxNyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNDT01QIGlzIG5vdCBzZXQKLUNPTkZJR19XQU5UX0RFVklDRV9UUkVFPXkKIENPTkZJR19JU0FfRE1BX0FQST15CiAKICMKQEAgLTIyOSw2ICsyMzQsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjM4LDExICsyNDQsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5MCw4ICsyOTcsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUxLDYgKzM1Niw4IEBACiBDT05GSUdfTVREX1BBUlRJVElPTlM9eQogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MzAsMTcgKzQzNywxOSBAQAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MzI3NjgKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiBDT05GSUdfSURFPXkKIENPTkZJR19JREVfTUFYX0hXSUZTPTQKIENPTkZJR19CTEtfREVWX0lERT15CiAKICMKLSMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS50eHQgZm9yIGhlbHAvaW5mbyBvbiBJREUgZHJpdmVzCisjIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUvaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKICMKICMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVESVNLIGlzIG5vdCBzZXQKQEAgLTQ1Nyw3ICs0NjYsNyBAQAogQ09ORklHX0lERV9HRU5FUklDPXkKICMgQ09ORklHX0JMS19ERVZfUExBVEZPUk0gaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01MTcsNiArNTI2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTU2MSw2ICs1NzEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTk0LDEyICs2MDUsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNjE1LDYgKzYyMSw3IEBACiAjIENPTkZJR19TRU5TT1JTX1c4MzYyN0hGIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiAKICMKQEAgLTYyNywxMiArNjM0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC02NjAsMTkgKzY3NywyMCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKKyMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjkzLDE0ICs3MTEsMTEgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTc0MywxNSArNzU4LDE2IEBACiAjIENPTkZJR19KRkZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03OTAsNiArODA2LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgwMCw2ICs4MTcsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04MDcsNiArODI1LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfRlM9eQpAQCAtODE3LDcgKzgzNiw5IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC04MjksOSArODUwLDkgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CkBAIC04NDEsNiArODYyLDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJUlFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldApAQCAtODUyLDQ4ICs4NzQsNzggQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTQwX2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZwppbmRleCBiOTk4NTM5Li5mMzNmZDUxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoyNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzEgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtMTEzLDYgKzExNiw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xNTMsNiArMTU3LDcgQEAKICMgQ09ORklHX01QQzg1eHhfQ0RTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDgsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjI5LDYgKzIzNiw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yMzgsMTEgKzI0NiwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjkwLDggKzI5OSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MTksNiArNDI2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTQ2Myw2ICs0NzEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNDk0LDEyICs1MDMsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNTI4LDEyICs1MzIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTU2MSw2ICs1NzUsOCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTU2OSwxMyArNTg1LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC01OTUsNyArNjA4LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNjUyLDcgKzY2NCw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC02OTEsNiArNzAyLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcwMSw2ICs3MTMsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MDgsNiArNzIxLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC03MTgsNiArNzMyLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtNzMwLDYgKzc0NSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTc0MCw2ICs3NTYsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTc1MCw0NyArNzY3LDc3IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU0NF9kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDRfZHNfZGVmY29uZmlnCmluZGV4IGE5ZjExM2IuLjA0MmE4NWUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU0NF9kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTQ0X2RzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzowMyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtOTAsNiArOTIsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CkBAIC0xMTcsMTIgKzEyMCwxNCBAQAogIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKIENPTkZJR19NT0RWRVJTSU9OUz15CkBAIC0yMDMsNyArMjA4LDYgQEAKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAogQ09ORklHX0JJTkZNVF9FTEY9eQogQ09ORklHX0JJTkZNVF9NSVNDPW0KLUNPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfTUFUSF9FTVVMQVRJT049eQogIyBDT05GSUdfSU9NTVVfSEVMUEVSIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRz15CkBAIC0yMTksMTEgKzIyMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjQ4LDYgKzI1NCw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjU3LDExICsyNjQsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMzMiw4ICszNDAsMTAgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zOTUsNiArNDA1LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MDEsNyArNTEyLDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfQUhDST15CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldApAQCAtNTExLDEzICs1MjYsMTEgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX0FMST15CiAjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKQEAgLTU1Nyw2ICs1NzAsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNjIyLDcgKzYzNiw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY0Miw2ICs2NTUsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NDksNiArNjYzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MTMsNiArNzI4LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKICMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzQ0LDcgKzc2MCw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKIENPTkZJR19OVlJBTT15Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNzU1LDEzICs3NzAsNiBAQAogIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03ODgsNiArNzk2LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc5NywxOSArODA2LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTgyNiwxMyArODI5LDMzIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKIENPTkZJR19EVkJfQ09SRT1tCi0jIENPTkZJR19EVkJfQ09SRV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPW0KKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVI9bQorIyBDT05GSUdfTUVESUFfVFVORVJfQ1VTVE9NSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD1tCitDT05GSUdfTUVESUFfVFVORVJfWEMyMDI4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQogQ09ORklHX0RWQl9DQVBUVVJFX0RSSVZFUlM9eQogCiAjCkBAIC04NzUsMTQgKzg5OCwxNyBAQAogIwogIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKICMKLSMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTIzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9NVDMxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQyMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVERBMTAwODYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVTkVSX0lURDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogCiAjCiAjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCkBAIC05MDAsNiArOTI2LDcgQEAKICMgQ09ORklHX0RWQl9ESUIzMDAwTUMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwUCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBMTAwNDggaXMgbm90IHNldAogCiAjCiAjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCkBAIC05MTgsMjcgKzk0NSwyMSBAQAogIyBDT05GSUdfRFZCX0JDTTM1MTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0xHRFQzMzBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9BVTg1MjIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1M1SDE0MTEgaXMgbm90IHNldAogCiAjCi0jIFR1bmVycy9QTEwgc3VwcG9ydAorIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAogIwogIyBDT05GSUdfRFZCX1BMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI3WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBMTgyNzEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1FUMTAxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMDYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIyNjYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjEzMSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVFVORVJfRElCMDA3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfWEM1MDAwIGlzIG5vdCBzZXQKIAogIwotIyBNaXNjZWxsYW5lb3VzIGRldmljZXMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKICMKICMgQ09ORklHX0RWQl9MTkJQMjEgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0lTTDY0MDUgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0lTTDY0MjEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtMTAwNSw2ICsxMDI2LDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA3OSwxMSArMTEwMSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTE4LDE2ICsxMTQwLDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9GU0wgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExNDUsNiArMTE3MSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNjQsNyArMTE5MSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTIwMiwxMCArMTIzMSwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyNTcsMjMgKzEyODgsMTkgQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiBDT05GSUdfRE1BREVWSUNFUz15CiAKICMKICMgRE1BIERldmljZXMKICMKIENPTkZJR19GU0xfRE1BPXkKLSMgQ09ORklHX0ZTTF9ETUFfU0VMRlRFU1QgaXMgbm90IHNldAogQ09ORklHX0RNQV9FTkdJTkU9eQogCiAjCiAjIERNQSBDbGllbnRzCiAjCiAjIENPTkZJR19ORVRfRE1BIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjkzLDcgKzEzMjAsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMzYzLDEwICsxMzg5LDkgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTE0NTAsOSArMTQ3NSwxMCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiBDT05GSUdfTElCQ1JDMzJDPW0KQEAgLTE0NjksNiArMTQ5NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ3OSw2ICsxNTA2LDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTQ5Miw2ICsxNTIwLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE1MDMsNiArMTUzMiw3IEBACiAjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTUxMyw1MiArMTU0Myw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IQVNIPXkKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogQ09ORklHX0NSWVBUT19ITUFDPXkKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19TSEExPW0KICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2MF9hZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKaW5kZXggODUxYWM5MS4uZTE5NTkyYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MjcgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjMzIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMTYsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUzLDYgKzE1Nyw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDEgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM4LDYgKzI0NSw3IEBACiBDT05GSUdfUENJX0RFQlVHPXkKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0NywxMSArMjU1LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTksOCArMzA4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ2Miw3ICs0NjksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00ODIsNiArNDg4LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDg5LDYgKzQ5Niw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTUzNSw2ICs1NDMsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU3MiwxMiArNTgxLDcgQEAKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC02MTAsMTIgKzYxNCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjQ2LDYgKzY2MCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTY1NCwxNCArNjcwLDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY4MSw3ICs2OTQsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC03MzgsNyArNzUwLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTc3Nyw2ICs3ODgsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzg3LDYgKzc5OSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc5NCw2ICs4MDcsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTgwNCw2ICs4MTgsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC04MTYsNiArODMxLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtODI3LDYgKzg0Myw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTgzNyw0OSArODU0LDc5IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2OG1kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NjhtZHNfZGVmY29uZmlnCmluZGV4IDJiODY2YjMuLjI4MDA0ZTkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2OG1kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTY4bWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzowNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzQgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSwxMiArMTE0LDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMTU2LDYgKzE2MSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODV4eF9NRFM9eQogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxMiwxMSArMjE4LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDAsNiArMjQ4LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDksMTEgKzI1OCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAxLDggKzMxMSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTgsNiArMzY2LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjUsNyArNTM0LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTQ2LDYgKzU1NCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1Myw2ICs1NjIsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02MDAsNiArNjEwLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjksNyArNjQwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC02NDAsMTMgKzY1MCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC02NzIsNiArNjc1LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY4MSwxOSArNjg1LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NzYsMTIgKzc3NCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODEyLDYgKzgyMCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTgyMCw2ICs4MzAsNyBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTg3MSwxMSArODgyLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC04OTUsNyArOTAzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTUzLDcgKzk2MCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTk5NCw2ICsxMDAwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEwMDQsNiArMTAxMSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEwMTEsNiArMTAxOSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTAyMSw2ICsxMDMwLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTAzMyw2ICsxMDQzLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtMTA0NSw2ICsxMDU2LDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdHRVI9eQogIyBDT05GSUdfWE1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0VBUkxZX0RFQlVHPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVR19MUEFSIGlzIG5vdCBzZXQKQEAgLTEwNjYsNTIgKzEwNzgsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU3Ml9kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NzJfZHNfZGVmY29uZmlnCmluZGV4IDUzYWE2ZjMuLjAzNjI3Y2ZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NzJfZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU3Ml9kc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM3Ci0jIE1vbiBNYXIgMzEgMTE6Mzc6MDYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjM1IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTkwLDYgKzkyLDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQpAQCAtMTE3LDEyICsxMjAsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CiBDT05GSUdfTU9EVkVSU0lPTlM9eQpAQCAtMTYyLDYgKzE2Nyw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODV4eF9EUz15CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxNywxMSArMjIzLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDYsNiArMjU0LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTUsMTEgKzI2NCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzMwLDggKzM0MCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM5Myw2ICs0MDUsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQ5OSw3ICs1MTIsMTEgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC01MDksMTMgKzUyNiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAogQ09ORklHX1BBVEFfQUxJPXkKICMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldApAQCAtNTU1LDYgKzU3MCw3IEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCkBAIC02MjAsNyArNjM2LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjQwLDYgKzY1NSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTY0Nyw2ICs2NjMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTcxMSw2ICs3MjgsNyBAQAogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQogIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NDIsNyArNzYwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAogQ09ORklHX05WUkFNPXkKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NTMsMTMgKzc3MCw2IEBACiAjIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTc4Niw2ICs3OTYsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNzk1LDE5ICs4MDYsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtODI0LDEzICs4MjksMzMgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogQ09ORklHX0RWQl9DT1JFPW0KLSMgQ09ORklHX0RWQl9DT1JFX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fTUVESUE9bQorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfTUVESUFfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUj1tCisjIENPTkZJR19NRURJQV9UVU5FUl9DVVNUT01JWkUgaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT1tCitDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD1tCitDT05GSUdfTUVESUFfVFVORVJfVERBOTg4Nz1tCitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2MT1tCitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2Nz1tCitDT05GSUdfTUVESUFfVFVORVJfTVQyMFhYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9bQorQ09ORklHX01FRElBX1RVTkVSX1hDNTAwMD1tCiBDT05GSUdfRFZCX0NBUFRVUkVfRFJJVkVSUz15CiAKICMKQEAgLTg3MywxNCArODk4LDE3IEBACiAjCiAjIERWQi1TIChzYXRlbGxpdGUpIGZyb250ZW5kcwogIwotIyBDT05GSUdfRFZCX1NUVjAyOTkgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NYMjQxMTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NYMjQxMjMgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgwODMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX01UMzEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9WRVMxWDkzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9UREExMDA4NiBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVFVORVJfSVREMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVFVBNjEwMCBpcyBub3Qgc2V0CiAKICMKICMgRFZCLVQgKHRlcnJlc3RyaWFsKSBmcm9udGVuZHMKQEAgLTg5OCw2ICs5MjYsNyBAQAogIyBDT05GSUdfRFZCX0RJQjMwMDBNQyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfRElCNzAwME0gaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREExMDA0OCBpcyBub3Qgc2V0CiAKICMKICMgRFZCLUMgKGNhYmxlKSBmcm9udGVuZHMKQEAgLTkxNiwyNyArOTQ1LDIxIEBACiAjIENPTkZJR19EVkJfQkNNMzUxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfTEdEVDMzMFggaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1M1SDE0MDkgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0FVODUyMiBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfUzVIMTQxMSBpcyBub3Qgc2V0CiAKICMKLSMgVHVuZXJzL1BMTCBzdXBwb3J0CisjIERpZ2l0YWwgdGVycmVzdHJpYWwgb25seSB0dW5lcnMvUExMCiAjCiAjIENPTkZJR19EVkJfUExMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MjZYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MjdYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREExODI3MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfUVQxMDEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIwNjAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjI2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMTMxIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9UVU5FUl9ESUIwMDcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9YQzUwMDAgaXMgbm90IHNldAogCiAjCi0jIE1pc2NlbGxhbmVvdXMgZGV2aWNlcworIyBTRUMgY29udHJvbCBkZXZpY2VzIGZvciBEVkItUwogIwogIyBDT05GSUdfRFZCX0xOQlAyMSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfSVNMNjQwNSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfSVNMNjQyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVBNjEwMCBpcyBub3Qgc2V0CiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC0xMDAzLDYgKzEwMjYsNyBAQAogIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FXMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVpUMzMyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQlQ4N1ggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0NBMDEwNiBpcyBub3Qgc2V0CkBAIC0xMDc3LDExICsxMTAxLDExIEBACiAjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKIAogIwotIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcwogIwogCiAjCi0jIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCiAjCiAKICMKQEAgLTExMTYsMTYgKzExNDAsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEX1BQQ19PRj15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0Y9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0ZfQkU9eQpAQCAtMTE0Myw2ICsxMTcxLDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTE2Miw3ICsxMTkxLDkgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC0xMjAwLDEwICsxMjMxLDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtMTI1NSwxMSArMTI4OCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTI3OSw3ICsxMzA5LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTM0OSwxMCArMTM3OCw5IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogQ09ORklHX05GU0Q9eQogIyBDT05GSUdfTkZTRF9WMyBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQorIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xNDM2LDkgKzE0NjQsMTAgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfSVRVX1Q9bQogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAogQ09ORklHX0xJQkNSQzMyQz1tCkBAIC0xNDQ3LDYgKzE0NzYsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xNDU0LDYgKzE0ODQsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTE0NjQsNiArMTQ5NSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTE0NzcsNiArMTUwOSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xNDg4LDYgKzE1MjEsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE0OTgsNTIgKzE1MzIsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fU0hBMT1tCiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1eHhfY2RzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCmluZGV4IGE0NjlmZTkuLmIwOWYwMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjMwIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Nyw2ICs4OSw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTMsNiArMTE2LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1Myw2ICsxNTcsNyBAQAogQ09ORklHX01QQzg1eHhfQ0RTPXkKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDgsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM2LDYgKzI0Myw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ1LDExICsyNTMsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Nyw4ICszMDYsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtNDM3LDcgKzQ0NCw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01MTUsNyArNTIyLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTM1LDYgKzU0MSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU0Miw2ICs1NDksNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC01ODgsNiArNTk2LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjQsMTIgKzYzMyw3IEBACiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIENPTkZJR19ERVZQT1JUPXkKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNjYyLDEyICs2NjYsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTY5OCw2ICs3MTIsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC03MDYsMTQgKzcyMiwxMSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03MzMsNyArNzQ2LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNzkwLDcgKzgwMiw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC04MjksNiArODQwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgzOSw2ICs4NTEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04NDYsNiArODU5LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NTYsNiArODcwLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtODY4LDYgKzg4Myw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTg3OCw2ICs4OTQsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTg4OCw0OCArOTA1LDc4IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc2JjODU0OF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NDhfZGVmY29uZmlnCmluZGV4IDY3ZjY3OTcuLjI0ZjdmNDQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc2JjODU0OF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTQ4X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODozOSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzcgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CkBAIC0xMTEsNiArMTE0LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1MSw2ICsxNTUsNyBAQAogIyBDT05GSUdfTVBDODV4eF9DRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9NRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIwNiwxMSArMjExLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzMsNiArMjQwLDcgQEAKIENPTkZJR19QQ0lfTEVHQUNZPXkKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MiwxMSArMjUwLDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTQsOCArMzAzLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ0OSw3ICs0NTYsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00NjksNiArNDc1LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDc2LDYgKzQ4Myw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTUyMiw2ICs1MzAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU1OCwxMiArNTY3LDcgQEAKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC01OTYsMTIgKzYwMCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjI4LDE0ICs2NDIsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjQ4LDcgKzY1OSw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTcwNSw3ICs3MTUsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzMyLDYgKzc0MSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03NDIsNiArNzUyLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzQ5LDYgKzc2MCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzU2LDYgKzc2OCw3IEBACiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC03NjUsNDggKzc3OCw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NjBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTYwX2RlZmNvbmZpZwppbmRleCBmZWY2MDU1Li42NTU1MThkYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTYwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NjBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjM5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozOCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Nyw2ICs4OSw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTIsNiArMTE1LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1Miw2ICsxNTYsNyBAQAogIyBDT05GSUdfTVBDODV4eF9DRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9NRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIwNywxMSArMjEyLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMjgsNiArMjM1LDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTIzNywxMSArMjQ1LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yODksOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQxOCw2ICs0MjUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNDYyLDYgKzQ3MCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC00ODcsMTcgKzQ5NiwxMSBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTUyNiwxMiArNTI5LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01NTksNiArNTcyLDggQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC01NjcsNiArNTgyLDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CkBAIC02MDIsMTEgKzYxOCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE5LDcgKzYzMiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTY3Niw3ICs2ODgsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzE1LDYgKzcyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03MjUsNiArNzM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzMyLDYgKzc0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc0Miw2ICs3NTYsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKQEAgLTc1Myw2ICs3NjgsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NjMsNiArNzc5LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0VBUkxZX0RFQlVHPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVR19MUEFSIGlzIG5vdCBzZXQKQEAgLTc4NCw0NyArODAxLDc3IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc3R4X2dwM19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3N0eF9ncDNfZGVmY29uZmlnCmluZGV4IDFkMzAzYzQuLjc4MDRjYTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc3R4X2dwM19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zdHhfZ3AzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODo0MiAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzggMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtMTE0LDEyICsxMTcsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RVTEVfVU5MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RWRVJTSU9OUz15CiAjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldApAQCAtMTU4LDYgKzE2Myw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogQ09ORklHX1NUWF9HUDM9eQogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxNSwxMSArMjIxLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDMsNiArMjUxLDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTIsMTEgKzI2MSwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzA0LDggKzMxNCw2IEBACiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSPXkKICMgQ09ORklHX05FVEZJTFRFUl9ERUJVRyBpcyBub3Qgc2V0CkBAIC00MTgsNiArNDI2LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPW0KIENPTkZJR19QQVJQT1JUPW0KIENPTkZJR19QQVJQT1JUX1BDPW0KICMgQ09ORklHX1BBUlBPUlRfUENfRklGTyBpcyBub3Qgc2V0CkBAIC01MDUsNyArNTE0LDcgQEAKICMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02NTMsNyArNjYyLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjczLDYgKzY4MSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTY4MCw2ICs2ODksNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC03NTMsNiArNzYzLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03OTYsMTMgKzgwNyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9bQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi1DT05GSUdfSTJDX0FMR09CSVQ9bQotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODI5LDYgKzgzMyw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04MzgsMTkgKzg0MywxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtOTIwLDEyICs5MTksMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTk3Myw2ICs5ODIsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC05ODEsMTUgKzk5MiwxMiBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVWERJU1BMQVkgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMDksNyArMTAxNyw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTEwNzMsNyArMTA4MCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTE0MSw5ICsxMTQ3LDEwIEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogQ09ORklHX0NSQ19DQ0lUVD15CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiAjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldApAQCAtMTE1Miw2ICsxMTU5LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTE1OSw2ICsxMTY3LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMTY5LDYgKzExNzgsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMTgyLDYgKzExOTIsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMTk0LDYgKzEyMDUsNyBAQAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX0JESV9TV0lUQ0g9eQogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTIwNCw1MCArMTIxNiw4MCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTQwX2RlZmNvbmZpZwppbmRleCBkMzllZTNiLi5lMGI1NTU5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjM5IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiBDT05GSUdfVFFNODU0MD15CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTE3MSw3ICsxNzYsNiBAQAogIyBDT05GSUdfR0VORVJJQ19JT01BUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRlJFUSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUE0yIGlzIG5vdCBzZXQKLUNPTkZJR19QUENfQ1BNX05FV19CSU5ESU5HPXkKICMgQ09ORklHX0ZTTF9VTEkxNTc1IGlzIG5vdCBzZXQKIAogIwpAQCAtMjA4LDExICsyMTIsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjMzLDYgKzIzOSw3IEBACiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogIyBDT05GSUdfUENJX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MiwxMSArMjQ5LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTQsOCArMzAyLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Miw2ICszNTgsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDIzLDYgKzQzMCw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTA2LDcgKzUxNCw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MDAsNyArNjA4LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjIwLDYgKzYyNyw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTYyNyw2ICs2MzUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02NzMsNiArNjgyLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03MTMsMTMgKzcyMyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03NDQsNiArNzQ3LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc1MywxOSArNzU3LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC04MzUsMTIgKzgzMywyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODcxLDYgKzg3OSw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTg3OSwxNCArODg5LDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTkwNiw3ICs5MTMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05NzQsNyArOTgwLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMTMsNiArMTAxOCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDI1LDYgKzEwMzEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDMyLDYgKzEwMzksNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwNDEsNiArMTA0OSw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA1MCw0OCArMTA1OSw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDFfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTQxX2RlZmNvbmZpZwppbmRleCBjYmY2YWQyLi42ZjkwNjdiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDFfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDQgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjQwIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKIENPTkZJR19UUU04NTQxPXkKQEAgLTIwOSwxMSArMjE0LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiAjIENPTkZJR19QUk9DX0RFVklDRVRSRUUgaXMgbm90IHNldAogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNCw2ICsyNDEsNyBAQAogQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJPXkKICMgQ09ORklHX1BDSV9NU0kgaXMgbm90IHNldAogQ09ORklHX1BDSV9MRUdBQ1k9eQorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDMsMTEgKzI1MSwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk1LDggKzMwNCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTMsNiArMzYwLDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfT0ZfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQyNCw2ICs0MzIsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwNyw3ICs1MTYsNyBAQAogQ09ORklHX0JMS19ERVZfVklBODJDWFhYPXkKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLUNPTkZJR19JREVfQVJDSF9PQlNPTEVURV9JTklUPXkKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNjAyLDcgKzYxMSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTYyMiw2ICs2MzAsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02MjksNiArNjM4LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNjc1LDYgKzY4NSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzIzLDEzICs3MzQsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzU0LDYgKzc1OCw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03NjMsMTkgKzc2OCwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtODQ1LDEyICs4NDQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTg4MSw2ICs4OTAsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC04ODksMTQgKzkwMCwxMSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC05MTYsNyArOTI0LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTg0LDcgKzk5MSw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMDIzLDYgKzEwMjksNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTAzNSw2ICsxMDQyLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTA0Miw2ICsxMDUwLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMDUyLDYgKzEwNjEsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA2MSw0OSArMTA3MSw3OSBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTU1X2RlZmNvbmZpZwppbmRleCBiYmZmOTYyLi4wMzEyMGI1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU1NV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDQgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjQxIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDEgaXMgbm90IHNldApAQCAtMjA5LDExICsyMTQsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzI0MSw3IEBACiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogIyBDT05GSUdfUENJX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MywxMSArMjUxLDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTUsOCArMzA0LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNjAsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDI0LDYgKzQzMiw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTA3LDcgKzUxNiw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MDIsNyArNjExLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjIyLDYgKzYzMCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTYyOSw2ICs2MzgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02NzUsNiArNjg1LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03MjMsMTMgKzczNCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03NTQsNiArNzU4LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc2MywxOSArNzY4LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC04NDUsMTIgKzg0NCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODgxLDYgKzg5MCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTg4OSwxNCArOTAwLDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTkxNiw3ICs5MjQsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05ODQsNyArOTkxLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMjMsNiArMTAyOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDM1LDYgKzEwNDIsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDQyLDYgKzEwNTAsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwNTIsNiArMTA2MSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMDYxLDQ5ICsxMDcxLDc5IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NjBfZGVmY29uZmlnCmluZGV4IDYzYzVlYzguLjMxMTMyNTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTYwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODo0NSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6NDIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHIGlzIG5vdCBzZXQKIENPTkZJR19QUklOVEs9eQpAQCAtMTExLDYgKzExNCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xNTEsNiArMTU1LDcgQEAKICMgQ09ORklHX01QQzg1eHhfQ0RTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDksMTEgKzIxNCwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzQsNiArMjQxLDcgQEAKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiAjIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQzLDExICsyNTEsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5NSw4ICszMDQsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUzLDYgKzM2MCw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQogIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MjQsNiArNDMyLDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MDcsNyArNTE2LDcgQEAKIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWD15CiAjIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lERURNQT15Ci1DT05GSUdfSURFX0FSQ0hfT0JTT0xFVEVfSU5JVD15CisjIENPTkZJR19CTEtfREVWX0hEX09OTFkgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CiAKICMKQEAgLTYwMiw3ICs2MTEsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MjIsNiArNjMwLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjI5LDYgKzYzOCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTY3NSw2ICs2ODUsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTcyMywxMyArNzM0LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTc1NCw2ICs3NTgsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNzYzLDE5ICs3NjgsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTg0NSwxMiArODQ0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC04ODEsNiArODkwLDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODg5LDE0ICs5MDAsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTE2LDcgKzkyNCw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTk4NCw3ICs5OTEsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTAyMyw2ICsxMDI5LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEwMzUsNiArMTA0Miw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEwNDIsNiArMTA1MCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTA1Miw2ICsxMDYxLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjEsNDkgKzEwNzEsNzkgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvYWRkZXI4NzVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvYWRkZXI4NzVfZGVmY29uZmlnCmluZGV4IGEzY2M5NGEuLjY3NDBmMmEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2FkZGVyODc1X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9hZGRlcjg3NV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmMyCi0jIFdlZCBGZWIgMjAgMTI6MjY6MDcgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjA4IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTc1LDYgKzc3LDcgQEAKIENPTkZJR19VU0VSX1NDSEVEPXkKICMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKQEAgLTEwNyw2ICsxMTAsOCBAQAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKQEAgLTEzMSw3ICsxMzYsNiBAQAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImRlYWRsaW5lIgogQ09ORklHX0NMQVNTSUNfUkNVPXkKLSMgQ09ORklHX1BSRUVNUFRfUkNVIGlzIG5vdCBzZXQKIAogIwogIyBQbGF0Zm9ybSBzdXBwb3J0CkBAIC0xOTQsNyArMTk4LDYgQEAKIENPTkZJR19QUkVFTVBUX05PTkU9eQogIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUkNVX1RSQUNFPXkKIENPTkZJR19CSU5GTVRfRUxGPXkKICMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX01BVEhfRU1VTEFUSU9OIGlzIG5vdCBzZXQKQEAgLTIxMywxMSArMjE2LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiAjIENPTkZJR19QUk9DX0RFVklDRVRSRUUgaXMgbm90IHNldAogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNSw2ICsyNDAsNyBAQAogIyBDT05GSUdfUENJX1FTUEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0NCwxMyArMjUwLDEzIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4ODAwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NUQVJUPTB4ZmQwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NJWkU9MHgwMDIwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjkzLDggKzI5OSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00ODIsNiArNDg2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTU0OCw2ICs1NTMsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTgwLDEyICs1ODYsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC02MDIsMTIgKzYwMywyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjMyLDEyICs2NDMsMTAgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCisjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY1MCw3ICs2NTksNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldApAQCAtNzA4LDcgKzcxNiw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzUxLDYgKzc1OCw3IEBACiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03NjEsNiArNzY5LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzY4LDYgKzc3Nyw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15CkBAIC03NzgsNiArNzg4LDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKQEAgLTc4OCw2ICs3OTksNyBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTc5OCw2ICs4MTAsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSVJRX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKQEAgLTgxMSwzICs4MjQsNCBAQAogIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDgyNDhlX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCmluZGV4IDJiMTUwNGUuLmJhMmE0NjMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjA5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjowOSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMwLDYgKzMwLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC03MCwxOCArNzIsMTYgQEAKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19HUk9VUF9TQ0hFRD15Ci1DT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15Ci1DT05GSUdfVVNFUl9TQ0hFRD15Ci0jIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTEwNyw2ICsxMDcsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTk0LDExICsxOTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIxNSw2ICsyMTgsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjI0LDExICsyMjgsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjgzLDYgKzI4Nyw3IEBACiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD15CiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSPXkKQEAgLTQ5OCw2ICs1MDMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTIxLDYgKzUyNyw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NTIsMTIgKzU1OSw3IEBACiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC01NzQsMTIgKzU3NiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjAzLDEyICs2MTUsOSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY3NSw3ICs2ODQsNiBAQAogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03NTIsNiArNzYwLDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTc2Myw2ICs3NzIsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03NzAsNiArNzgwLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzgwLDYgKzc5MSw3IEBACiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CkBAIC03OTEsNiArODAzLDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC04MDIsNiArODE1LDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKIENPTkZJR19CRElfU1dJVENIPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTgxMSw0NSArODI1LDc1IEBACiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15Ci0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9eQorQ09ORklHX0NSWVBUT19QQ0JDPXkKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj15Ci1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9eQotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDg4eGNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZXA4OHhjX2RlZmNvbmZpZwppbmRleCAxMjViNDc2Li5hYzcyYjQ4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDg4eGNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODh4Y19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MTAgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjA5IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTEwOCw2ICsxMTAsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CkBAIC0yMTIsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzIzOSw3IEBACiAjIENPTkZJR19QQ0lfUVNQQU4gaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQzLDEzICsyNDksMTMgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHg4MDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU1RBUlQ9MHhmZDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU0laRT0weDAwMjAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA0MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTIsOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ4MSw2ICs0ODUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTA1LDYgKzUxMCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01MzcsMTIgKzU0Myw3IEBACiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTU1OSwxMiArNTYwLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01ODgsMTMgKzU5OSwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjA3LDcgKzYxNSw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CkBAIC02NjUsNyArNjcyLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03MDgsNiArNzE0LDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcxOCw2ICs3MjUsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MjUsNiArNzMzLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzM1LDYgKzc0NCw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC03NDUsNiArNzU1LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NTUsNiArNzY2LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC03NjcsMyArNzc5LDQgQEAKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnCmluZGV4IGRiMzQ5MDkuLjBjY2M2ZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCi0jIFR1ZSBNYXkgMjAgMjA6MDE6MTggMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNgorIyBNb24gSnVuIDE2IDIxOjA4OjMxIDIwMDgKICMKIENPTkZJR19QUEM2ND15CiAKQEAgLTU5Nyw3ICs1OTcsNjEgQEAKIENPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFfU0ZGIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKK0NPTkZJR19TQVRBX1NWVz15CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAorIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMk4gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QRENfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUkFESVNZUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDMTIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NFUlZFUldPUktTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDMjAyN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSUw2ODAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogQ09ORklHX01EPXkKIENPTkZJR19CTEtfREVWX01EPXkKIENPTkZJR19NRF9MSU5FQVI9eQpAQCAtMTIzMCw2ICsxMjg0LDcgQEAKICMKIENPTkZJR19VU0JfQUNNPW0KIENPTkZJR19VU0JfUFJJTlRFUj15CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMzQ1LDYgKzE0MDAsNyBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZwppbmRleCAyMmE5NDNhLi40ODQzNGMyYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbGlua3N0YXRpb25fZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxMCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTAgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtOTEsNiArOTMsNyBAQAogQ09ORklHX1NZU0NUTD15CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTgsMTIgKzEyMSwxNCBAQAogIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjIzLDExICsyMjgsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTI1MSw2ICsyNTgsNyBAQAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI2MCwxMSArMjY4LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMxMyw4ICszMjEsNiBAQAogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9WUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CiAjIENPTkZJR19ORVRGSUxURVJfREVCVUcgaXMgbm90IHNldApAQCAtMzI5LDYgKzMzNSw3IEBACiAjIENPTkZJR19ORl9DVF9BQ0NUIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX0NPTk5UUkFDS19NQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX0NPTk5UUkFDS19FVkVOVFMgaXMgbm90IHNldAorIyBDT05GSUdfTkZfQ1RfUFJPVE9fRENDUCBpcyBub3Qgc2V0CiBDT05GSUdfTkZfQ1RfUFJPVE9fR1JFPW0KIENPTkZJR19ORl9DVF9QUk9UT19TQ1RQPW0KICMgQ09ORklHX05GX0NUX1BST1RPX1VEUExJVEUgaXMgbm90IHNldApAQCAtNDA3LDYgKzQxNCw3IEBACiAjIENPTkZJR19JUF9ORl9UQVJHRVRfTkVUTUFQIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX05BVF9TTk1QX0JBU0lDIGlzIG5vdCBzZXQKIENPTkZJR19ORl9OQVRfUFJPVE9fR1JFPW0KK0NPTkZJR19ORl9OQVRfUFJPVE9fU0NUUD1tCiBDT05GSUdfTkZfTkFUX0ZUUD1tCiBDT05GSUdfTkZfTkFUX0lSQz1tCiBDT05GSUdfTkZfTkFUX1RGVFA9bQpAQCAtNDU5LDggKzQ2Nyw2IEBACiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQogQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQPW0KLUNPTkZJR19JRUVFODAyMTFfU09GVE1BQz1tCi1DT05GSUdfSUVFRTgwMjExX1NPRlRNQUNfREVCVUc9eQogIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CiAKQEAgLTQ4Niw2ICs0OTIsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC01NjUsNiArNTcyLDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC02NzAsNyArNjc4LDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC02ODAsMTMgKzY5MiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC03MjYsNiArNzM2LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTc4NSw3ICs3OTYsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC04MDUsNiArODE1LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtODEyLDYgKzgyMyw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtODg2LDYgKzg5OCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTkxMyw3ICs5MjYsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQogIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTkyNCwxMyArOTM2LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTk1Nyw2ICs5NjIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtOTY2LDE5ICs5NzIsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTEwNDgsMTIgKzEwNDgsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtMTExNSwxMiArMTEyNSwxNCBAQAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMTM4LDYgKzExNTAsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1BSSU5URVI9bQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTE1OSw2ICsxMTcyLDcgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEyMDIsOSArMTIxNiwxMSBAQAogIyBDT05GSUdfVVNCX1NFUklBTF9NQ1RfVTIzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX01PUzc3MjAgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9NT1M3ODQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTU9UT1JPTEEgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9OQVZNQU4gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9QTDIzMDMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9PVEk2ODU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU1BDUDhYNSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX0hQNFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9TQUZFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TRVJJQUxfU0lFUlJBV0lSRUxFU1MgaXMgbm90IHNldApAQCAtMTIzOCwxMCArMTI1NCwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyOTMsMTEgKzEzMTEsOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEzMTgsMTAgKzEzMzMsOSBAQAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiBDT05GSUdfWEZTX0ZTPW0KICMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfUlQgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTM4OCwxMiArMTQwMiwxMCBAQAogQ09ORklHX05GU19WMz15CiBDT05GSUdfTkZTX1YzX0FDTD15CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xNDY3LDkgKzE0NzksMTAgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQpAQCAtMTQ4MSw2ICsxNDk0LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTQ4OCw2ICsxNTAyLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ5OCw2ICsxNTEzLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTUxMCw2ICsxNTI2LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE1MjEsNiArMTUzOCw3IEBACiAjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfQk9PVFhfVEVYVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldApAQCAtMTUzMiw1MiArMTU1MCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworQ09ORklHX0NSWVBUT19DUkMzMkM9bQogQ09ORklHX0NSWVBUT19NRDQ9bQogQ09ORklHX0NSWVBUT19NRDU9eQorQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0KLUNPTkZJR19DUllQVE9fVFdPRklTSD1tCi1DT05GSUdfQ1JZUFRPX1RXT0ZJU0hfQ09NTU9OPW0KLUNPTkZJR19DUllQVE9fU0VSUEVOVD1tCisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKIENPTkZJR19DUllQVE9fQUVTPW0KKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PW0KK0NPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FSQzQ9bQorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TRVJQRU5UPW0KKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19UV09GSVNIPW0KK0NPTkZJR19DUllQVE9fVFdPRklTSF9DT01NT049bQorCisjCisjIENvbXByZXNzaW9uCisjCiBDT05GSUdfQ1JZUFRPX0RFRkxBVEU9bQotQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCi1DT05GSUdfQ1JZUFRPX0NSQzMyQz1tCi0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM3NDQ4X2hwYzJfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjNzQ0OF9ocGMyX2RlZmNvbmZpZwppbmRleCBhM2Q1MmUzLi4wNjZjNTgzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM3NDQ4X2hwYzJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzc0NDhfaHBjMl9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MTEgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjExIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDYgKzExNCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0yMDksMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM1LDYgKzI0MSw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDQsMTEgKzI1MSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTYsOCArMzAzLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ1NCw3ICs0NTksMTAgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiBDT05GSUdfU0FUQV9NVj15CkBAIC00NjQsNyArNDcyLDYgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKQEAgLTUwOSw2ICs1MTYsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNTk2LDcgKzYwNCw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTYxNiw2ICs2MjMsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02MjMsNiArNjMxLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNjcwLDYgKzY3OSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzA1LDEyICs3MTUsNyBAQAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTc0MywxMiArNzQ4LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC03NzksNiArNzk0LDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtNzg3LDE0ICs4MDQsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODE0LDcgKzgyOCw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTg3MSw3ICs4ODQsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtOTE0LDYgKzkyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC05MjQsNiArOTM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtOTMxLDYgKzk0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtOTQwLDYgKzk1NSw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVFhfVEVYVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC05NTAsNDggKzk2Niw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4MjcyX2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4MjcyX2Fkc19kZWZjb25maWcKaW5kZXggMDI2NGM1Ny4uMzBkNzgzNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODI3Ml9hZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzgyNzJfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxMyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMCw2ICszMCw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtNzAsMTggKzcyLDE2IEBACiBDT05GSUdfSUtDT05GSUdfUFJPQz15CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAogIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0Ci1DT05GSUdfR1JPVVBfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNFUl9TQ0hFRD15Ci0jIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTEwOCw2ICsxMDgsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTk2LDExICsxOTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIyNCw2ICsyMjcsNyBAQAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTIzMywxMSArMjM3LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDQwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Miw2ICsyOTYsNyBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9eQogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CkBAIC01MzYsNyArNTQxLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTU0LDYgKzU1OCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU2MSw2ICs1NjYsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiBDT05GSUdfUFBQPXkKQEAgLTYzNCw2ICs2NDAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNjY4LDEyICs2NzUsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtNjkwLDEyICs2OTIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTcyMiwxMyArNzM0LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03OTgsNyArODA3LDYgQEAKIENPTkZJR19ORlNfRlM9eQogQ09ORklHX05GU19WMz15CiBDT05GSUdfTkZTX1YzX0FDTD15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTg3Nyw2ICs4ODUsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTg4OSw2ICs4OTgsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04OTYsNiArOTA2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtOTA2LDYgKzkxNyw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTkxOCw2ICs5MzAsNyBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTkyOSw2ICs5NDIsNyBAQAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX0JESV9TV0lUQ0g9eQogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtOTM4LDQ1ICs5NTIsNzUgQEAKICMgQ09ORklHX0tFWVMgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKLSMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj15CitDT05GSUdfQ1JZUFRPX1BDQkM9eQorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPXkKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz15Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzgzeHhfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKaW5kZXggOWUwZGQ4Mi4uNDI5M2M4YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM5Ci0jIFR1ZSBBcHIgMTUgMTg6MDc6MzYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjE0IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDEyICsxMTQsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTIwMSw3ICsyMDYsNiBAQAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CiBDT05GSUdfQklORk1UX0VMRj15CiAjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci1DT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX01BVEhfRU1VTEFUSU9OPXkKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQpAQCAtMjE3LDExICsyMjEsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTI0MCw2ICsyNDYsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ5LDExICsyNTYsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAxLDggKzMwOCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNjEsNiArMzY2LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfT0ZfUEFSVFM9eQorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQzOSw2ICs0NDUsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwMSw4ICs1MDgsMTAgQEAKICMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfRlNMPXkKK0NPTkZJR19BVEFfU0ZGPXkKKyMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUyBpcyBub3Qgc2V0CkBAIC01NTQsNiArNTYzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC02MDcsNiArNjE3LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAKICMKQEAgLTY0MiwxMyArNjUzLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKIENPTkZJR19JMkNfTVBDPXkKQEAgLTY1OCw2ICs2NjIsNyBAQAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY2NywxOSArNjcyLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NTcsMTIgKzc1NiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC04MTAsMTYgKzgxOSwyMCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAogCkBAIC04MjgsNiArODQxLDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODczLDE3ICs4ODcsMTUgQEAKICMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC05MDMsNyArOTE1LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTYyLDcgKzk3Myw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMDksNiArMTAxOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDI3LDYgKzEwMzgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwMzQsNiArMTA0Niw3IEBACiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMDQzLDUxICsxMDU2LDgxIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NXh4X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCmluZGV4IDIwNzU3MjIuLjNlZmFiNzEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjA4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwOTowMzo0NiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC05MCw2ICs5Miw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExNywxMiArMTIwLDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTE2Miw2ICsxNjcsNyBAQAogQ09ORklHX01QQzg1eHhfQ0RTPXkKIENPTkZJR19NUEM4NXh4X01EUz15CiBDT05GSUdfTVBDODV4eF9EUz15CitDT05GSUdfS1NJODU2MD15CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKIENPTkZJR19UUU04NTQwPXkKIENPTkZJR19UUU04NTQxPXkKQEAgLTIyMSwxMSArMjI3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNTAsNiArMjU4LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTksMTEgKzI2OCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzM0LDggKzM0NCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM5Nyw2ICs0MDksNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwMyw3ICs1MTYsMTEgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfRlNMPXkKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldApAQCAtNTEzLDEzICs1MzAsMTEgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX0FMST15CiAjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKQEAgLTU1OSw2ICs1NzQsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNjI1LDcgKzY0MSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY0Niw2ICs2NjEsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NTMsNiArNjY5LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MTcsNiArNzM0LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKICMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzUwLDcgKzc2OCw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKIENPTkZJR19OVlJBTT15Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNzYxLDEzICs3NzgsNiBAQAogIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTQsNiArODA0LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwMywxOSArODE0LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTgzMiwxMyArODM3LDMzIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKIENPTkZJR19EVkJfQ09SRT1tCi0jIENPTkZJR19EVkJfQ09SRV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPW0KKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVI9bQorIyBDT05GSUdfTUVESUFfVFVORVJfQ1VTVE9NSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD1tCitDT05GSUdfTUVESUFfVFVORVJfWEMyMDI4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQogQ09ORklHX0RWQl9DQVBUVVJFX0RSSVZFUlM9eQogCiAjCkBAIC04ODEsMTQgKzkwNiwxNyBAQAogIwogIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKICMKLSMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTIzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9NVDMxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQyMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVERBMTAwODYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVTkVSX0lURDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogCiAjCiAjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCkBAIC05MDYsNiArOTM0LDcgQEAKICMgQ09ORklHX0RWQl9ESUIzMDAwTUMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwUCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBMTAwNDggaXMgbm90IHNldAogCiAjCiAjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCkBAIC05MjQsMjcgKzk1MywyMSBAQAogIyBDT05GSUdfRFZCX0JDTTM1MTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0xHRFQzMzBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9BVTg1MjIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1M1SDE0MTEgaXMgbm90IHNldAogCiAjCi0jIFR1bmVycy9QTEwgc3VwcG9ydAorIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAogIwogIyBDT05GSUdfRFZCX1BMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI3WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBMTgyNzEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1FUMTAxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMDYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIyNjYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjEzMSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVFVORVJfRElCMDA3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfWEM1MDAwIGlzIG5vdCBzZXQKIAogIwotIyBNaXNjZWxsYW5lb3VzIGRldmljZXMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKICMKICMgQ09ORklHX0RWQl9MTkJQMjEgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0lTTDY0MDUgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0lTTDY0MjEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtMTAxMSw2ICsxMDM0LDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA4NSwxMSArMTEwOSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTI0LDE2ICsxMTQ4LDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15Ci0jIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0VIQ0lfRlNMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExNTEsNiArMTE3OSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNzAsNyArMTE5OSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTIwOCwxMiArMTIzOSwyMSBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19FREFDPXkKKworIworIyBSZXBvcnRpbmcgc3Vic3lzdGVtcworIworIyBDT05GSUdfRURBQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRURBQ19NTV9FREFDPXkKK0NPTkZJR19FREFDX01QQzg1WFg9eQogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtMTI2MywxMSArMTMwMywxOSBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKLSMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAorQ09ORklHX0RNQURFVklDRVM9eQogCiAjCi0jIFVzZXJzcGFjZSBJL08KKyMgRE1BIERldmljZXMKICMKK0NPTkZJR19GU0xfRE1BPXkKK0NPTkZJR19ETUFfRU5HSU5FPXkKKworIworIyBETUEgQ2xpZW50cworIworIyBDT05GSUdfTkVUX0RNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjg3LDcgKzEzMzUsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMzU3LDEwICsxNDA0LDkgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTE0NDQsOSArMTQ5MCwxMCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiBDT05GSUdfTElCQ1JDMzJDPW0KQEAgLTE0NTUsNiArMTUwMiw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTE0NjIsNiArMTUxMCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ3Miw2ICsxNTIxLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTQ4NSw2ICsxNTM1LDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE0OTcsNiArMTU0OCw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE1MDcsNTMgKzE1NTksODMgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fU0hBMT1tCiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjEwX2hwY2RfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODYxMF9ocGNkX2RlZmNvbmZpZwppbmRleCA3ZTViOWNlLi41NjEyZDQwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjEwX2hwY2RfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg2MTBfaHBjZF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MzMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUwOjI0IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTYwLDkgKzYyLDEwIEBACiBDT05GSUdfQlJPS0VOX09OX1NNUD15CiBDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCi0jIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWSVBDIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldApAQCAtODYsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExMCwxNCArMTE0LDIyIEBACiAjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAotIyBDT05GSUdfTU9EVUxFUyBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CiBDT05GSUdfQkxPQ0s9eQogIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldApAQCAtMTUxLDYgKzE2Myw3IEBACiAjIENPTkZJR19QUENfQ0VMTF9OQVRJVkUgaXMgbm90IHNldAogIyBDT05GSUdfUFEyQURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg2NDFfSFBDTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQkM4NjQxRCBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODYxMF9IUENEPXkKIENPTkZJR19NUEM4NjEwPXkKICMgQ09ORklHX0lQSUMgaXMgbm90IHNldApAQCAtMTk5LDExICsyMTIsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTIKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIyMywxMiArMjM4LDE0IEBACiBDT05GSUdfUENJX1NZU0NBTEw9eQogQ09ORklHX1BDSUVQT1JUQlVTPXkKIENPTkZJR19QQ0lFQUVSPXkKKyMgQ09ORklHX1BDSUVBU1BNIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiAjIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZPXkKIENPTkZJR19QQ0lfREVCVUc9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjM4LDExICsyNTUsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAzLDggKzMyMCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ0Niw2ICs0NjUsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwNCw2ICs1MjQsNyBAQAogIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQogCiAjCiAjIFNDU0kgVHJhbnNwb3J0cwpAQCAtNTUzLDcgKzU3NCwxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTU2MywxMyArNTg4LDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfUEFUQV9BTEk9eQogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC02MDksNiArNjMyLDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTYyOCwyNSArNjUyLDkgQEAKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0Ci1DT05GSUdfUEhZTElCPXkKLQotIwotIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAotIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JFQUxURUtfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQotQ09ORklHX01JST15CisjIENPTkZJR19NSUkgaXMgbm90IHNldAogIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CiAjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKQEAgLTY2Myw2NCArNjcxLDEwIEBACiAjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAogIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAotQ09ORklHX05FVF9QQ0k9eQotIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QQ0kgaXMgbm90IHNldAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlDUCBpcyBub3Qgc2V0Ci1DT05GSUdfODEzOVRPTz15Ci1DT05GSUdfODEzOVRPT19QSU89eQotIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1I2MDQwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVklBX1JISU5FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDOTIwMzEgaXMgbm90IHNldAotQ09ORklHX05FVERFVl8xMDAwPXkKLSMgQ09ORklHX0FDRU5JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETDJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUDEwMDAgaXMgbm90IHNldAotIyBDT05GSUdfSUdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAotIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAotIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAotIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLR0UgaXMgbm90IHNldAotIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19USUdPTjMgaXMgbm90IHNldAotIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19HSUFORkFSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAotIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWXzEwMDAwPXkKLSMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MySU8gaXMgbm90IHNldAotIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OSVUgaXMgbm90IHNldAotIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC03MjgsNiArNjgyLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNzgzLDYgKzczOCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTgyNCwxMyArNzgwLDYgQEAKICMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODUyLDkgKzgwMSwxMSBAQAogIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04NjQsMTkgKzgxNSwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC04OTMsMTIgKzgzOCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtOTA4LDcgKzg2Myw1NiBAQAogIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTD15Ci0jIENPTkZJR19GQiBpcyBub3Qgc2V0CitDT05GSUdfRkI9eQorIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKK0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01PREVfSEVMUEVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9USUxFQkxJVFRJTkcgaXMgbm90IHNldAorCisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9PRiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DVDY1NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZHQTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorQ09ORklHX0ZCX0ZTTF9ESVU9eQorIyBDT05GSUdfRkJfSUJNX0dYVDQ1MDAgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCkBAIC05MjIsNiArOTI2LDggQEAKIENPTkZJR19WR0FfQ09OU09MRT15CiAjIENPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLIGlzIG5vdCBzZXQKIENPTkZJR19EVU1NWV9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CiAKICMKICMgU291bmQKQEAgLTkzOCw3ICs5NDQsNyBAQAogQ09ORklHX1NORF9PU1NFTVVMPXkKIENPTkZJR19TTkRfTUlYRVJfT1NTPXkKIENPTkZJR19TTkRfUENNX09TUz15Ci0jIENPTkZJR19TTkRfUENNX09TU19QTFVHSU5TIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKICMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJIGlzIG5vdCBzZXQKIENPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQpAQCAtOTY1LDYgKzk3MSw3IEBACiAjIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BVTg4MjAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVcyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKQEAgLTEwMzEsMTQgKzEwMzgsMTQgQEAKIENPTkZJR19TTkRfU09DPXkKIAogIwotIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICi0jCi0KLSMKICMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCiAjCiBDT05GSUdfU05EX1NPQ19NUEM4NjEwPXkKIENPTkZJR19TTkRfU09DX01QQzg2MTBfSFBDRD15CisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAorIwogQ09ORklHX1NORF9TT0NfQ1M0MjcwPXkKIENPTkZJR19TTkRfU09DX0NTNDI3MF9WRDMzX0VSUkFUQT15CiAKQEAgLTEwNTUsNiArMTA2Miw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTEwNjMsMTQgKzEwNzIsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA5MCw3ICsxMDk2LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTk9USUZZIGlzIG5vdCBzZXQKQEAgLTExMzQsNiArMTEzOSw3IEBACiAjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldApAQCAtMTE0NywxMCArMTE1Myw5IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTEyMzQsNiArMTIzOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMjQ0LDYgKzEyNTAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMjUxLDYgKzEyNTgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEyNjEsNiArMTI2OSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTEyNzQsOSArMTI4MywxMSBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CkBAIC0xMjg0LDYgKzEyOTUsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTEyOTQsNDggKzEzMDYsODAgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY0MV9ocGNuX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg2NDFfaHBjbl9kZWZjb25maWcKaW5kZXggZDAxZGNkYi4uNGE4MTcxNSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY0MV9ocGNuX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjQxX2hwY25fZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjExIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoxNSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC05MCw2ICs5Miw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExNywxMiArMTIwLDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTE2Miw2ICsxNjcsNyBAQAogIyBDT05GSUdfUFBDX0NFTExfTkFUSVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX1BRMkFEUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODY0MV9IUENOPXkKKyMgQ09ORklHX1NCQzg2NDFEIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg2MTBfSFBDRCBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODY0MT15CiAjIENPTkZJR19JUElDIGlzIG5vdCBzZXQKQEAgLTIxMSwxMSArMjE3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDAsNiArMjQ4LDggQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorQ09ORklHX0hBU19SQVBJRElPPXkKKyMgQ09ORklHX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDksMTEgKzI1OSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMjQsOCArMzM0LDEwIEBACiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRFT1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzg3LDYgKzM5OSw3IEBACiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNDkzLDcgKzUwNiwxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTUwMywxMyArNTIwLDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfUEFUQV9BTEk9eQogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC01NDksNiArNTY0LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTYxNCw3ICs2MzAsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MzQsNiArNjQ5LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjQxLDYgKzY1Nyw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNzA1LDYgKzcyMiw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTczNiw3ICs3NTQsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiBDT05GSUdfTlZSQU09eQotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTc0NywxMyArNzY0LDYgQEAKICMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzgwLDYgKzc5MCw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03ODksMTkgKzgwMCwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC04MTgsMTMgKzgyMywzMyBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiBDT05GSUdfRFZCX0NPUkU9bQotIyBDT05GSUdfRFZCX0NPUkVfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19NRURJQT1tCisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19NRURJQV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSPW0KKyMgQ09ORklHX01FRElBX1RVTkVSX0NVU1RPTUlaRSBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVJfU0lNUExFPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE4MjkwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzYxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzY3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIwWFg9bQorQ09ORklHX01FRElBX1RVTkVSX1hDMjAyOD1tCitDT05GSUdfTUVESUFfVFVORVJfWEM1MDAwPW0KIENPTkZJR19EVkJfQ0FQVFVSRV9EUklWRVJTPXkKIAogIwpAQCAtODY3LDE0ICs4OTIsMTcgQEAKICMKICMgRFZCLVMgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCiAjCi0jIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ1gyNDExMCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ1gyNDEyMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfTVQzMTIgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1M1SDE0MjAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1NUVjAyOTkgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgwODMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1REQTEwMDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9WRVMxWDkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UVU5FUl9JVEQxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREE4MjZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UVUE2MTAwIGlzIG5vdCBzZXQKIAogIwogIyBEVkItVCAodGVycmVzdHJpYWwpIGZyb250ZW5kcwpAQCAtODkyLDYgKzkyMCw3IEBACiAjIENPTkZJR19EVkJfRElCMzAwME1DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwTSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfRElCNzAwMFAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTEwMDQ4IGlzIG5vdCBzZXQKIAogIwogIyBEVkItQyAoY2FibGUpIGZyb250ZW5kcwpAQCAtOTEwLDI3ICs5MzksMjEgQEAKICMgQ09ORklHX0RWQl9CQ00zNTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9MR0RUMzMwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQwOSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQVU4NTIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9TNUgxNDExIGlzIG5vdCBzZXQKIAogIwotIyBUdW5lcnMvUExMIHN1cHBvcnQKKyMgRGlnaXRhbCB0ZXJyZXN0cmlhbCBvbmx5IHR1bmVycy9QTEwKICMKICMgQ09ORklHX0RWQl9QTEwgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgyN1ggaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTE4MjcxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9RVDEwMTAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjA2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMjY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIxMzEgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1RVTkVSX0RJQjAwNzAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1hDNTAwMCBpcyBub3Qgc2V0CiAKICMKLSMgTWlzY2VsbGFuZW91cyBkZXZpY2VzCisjIFNFQyBjb250cm9sIGRldmljZXMgZm9yIERWQi1TCiAjCiAjIENPTkZJR19EVkJfTE5CUDIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9JU0w2NDA1IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9JU0w2NDIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVUE2MTAwIGlzIG5vdCBzZXQKIENPTkZJR19EQUI9eQogIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKQEAgLTk5Nyw2ICsxMDIwLDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA3MSwxMSArMTA5NSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTEwLDE2ICsxMTM0LDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9GU0wgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExMzcsNiArMTE2NSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNTYsNyArMTE4NSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE5NCwxMCArMTIyNSwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyNDksMTEgKzEyODIsOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEyNzMsNyArMTMwMyw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTEzNDMsMTAgKzEzNzIsOSBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKIENPTkZJR19ORlNEPXkKICMgQ09ORklHX05GU0RfVjMgaXMgbm90IHNldAotQ09ORklHX05GU0RfVENQPXkKKyMgQ09ORklHX05GU0RfVjQgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CiBDT05GSUdfTE9DS0RfVjQ9eQpAQCAtMTQzMCw5ICsxNDU4LDEwIEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQpAQCAtMTQ0MSw2ICsxNDcwLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTQ0OCw2ICsxNDc4LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xNDU4LDYgKzE0ODksNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xNDcxLDYgKzE1MDMsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfSU5GTz15CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtMTQ4Miw2ICsxNTE1LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC0xNDkyLDUyICsxNTI2LDgyIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hBU0g9eQogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiBDT05GSUdfQ1JZUFRPX0hNQUM9eQogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY2X2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZwppbmRleCAyZDgzMWRiLi40NmZmZmJjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODozNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTYgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0yOCw2ICsyOCw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtMTA2LDYgKzEwOCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0yMTAsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzEsNiArMjM2LDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9RU1BBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MCwxMyArMjQ2LDEzIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4ODAwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NUQVJUPTB4ZmQwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NJWkU9MHgwMDIwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk0LDggKzMwMCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MTksNiArNDIzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTQ4NSw2ICs0OTAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTE3LDEyICs1MjMsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNTUxLDEyICs1NTIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTU4NCw2ICs1OTUsOCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTU5MiwxMyArNjA1LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC02MjAsNyArNjMwLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNjc4LDcgKzY4Nyw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzIyLDYgKzczMCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogQ09ORklHX0NSQ19DQ0lUVD15CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzMzLDYgKzc0Miw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc0MCw2ICs3NTAsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc0OCw2ICs3NTksNyBAQAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTc1Nyw0OCArNzY5LDc4IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg4NV9hZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKaW5kZXggODIxNTFiOS4uOWRmNzg5NyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MzUgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjE3IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTEwOCw2ICsxMTAsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CkBAIC0yMTksMTEgKzIyMiwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjQxLDYgKzI0Niw3IEBACiAjIENPTkZJR19QQ0lfUVNQQU4gaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjUwLDEzICsyNTYsMTMgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHg4MDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU1RBUlQ9MHhmZDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU0laRT0weDAwMjAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA0MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTksOCArMzA1LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ5Miw2ICs0OTYsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTE2LDYgKzUyMSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NDgsMTIgKzU1NCw3IEBACiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTU3MCwxMiArNTcxLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01OTksMTMgKzYxMCwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE4LDcgKzYyNiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CkBAIC02NzYsNyArNjgzLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03MTksNiArNzI1LDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcyOSw2ICs3MzYsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MzYsNiArNzQ0LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzQ2LDYgKzc1NSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC03NTYsNiArNzY2LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NjYsNiArNzc3LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC03NzgsMyArNzkwLDQgQEAKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnCmluZGV4IDQwZjg0ZmEuLmNlMjUwYmMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCi0jIFR1ZSBNYXkgMjAgMjA6MDM6MDIgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNgorIyBNb24gSnVuIDE2IDIxOjExOjE5IDIwMDgKICMKIENPTkZJR19QUEM2ND15CiAKQEAgLTc2Myw3ICs3NjMsNjMgQEAKIENPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAogQ09ORklHX1NBVEFfU0lMMjQ9eQotIyBDT05GSUdfQVRBX1NGRiBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CitDT05GSUdfU0FUQV9TVlc9eQorIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUENNQ0lBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CiBDT05GSUdfTURfTElORUFSPXkKQEAgLTE0NzgsNiArMTUzNCw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTE1MzcsNiArMTU5NCw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldApAQCAtMTU5Nyw2ICsxNjU1LDcgQEAKICMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9GTTMxMzAgaXMgbm90IHNldAogCiAjCiAjIFNQSSBSVEMgZHJpdmVycwpAQCAtMTYxNyw2ICsxNjc2LDcgQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCitDT05GSUdfUlRDX0RSVl9QUEM9eQogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcTJmYWRzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BxMmZhZHNfZGVmY29uZmlnCmluZGV4IDEzODNlYjYuLmJjM2JmNjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BxMmZhZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BxMmZhZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjM2IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoxOCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMwLDYgKzMwLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC03MCwxOSArNzIsMTcgQEAKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19HUk9VUF9TQ0hFRD15Ci0jIENPTkZJR19GQUlSX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKLUNPTkZJR19VU0VSX1NDSEVEPXkKLSMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMDksNiArMTA5LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE5NiwxMSArMTk3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMjUsNiArMjI4LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yMzQsMTEgKzIzOCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA0MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTMsNiArMjk3LDcgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfVFVOTkVMPXkKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKIENPTkZJR19ORVRGSUxURVI9eQpAQCAtNTEzLDcgKzUxOCw3IEBACiAjIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSURFRE1BIGlzIG5vdCBzZXQKLUNPTkZJR19JREVfQVJDSF9PQlNPTEVURV9JTklUPXkKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTkzLDcgKzU5OCw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTYxMSw2ICs2MTUsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02MTgsNiArNjIzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogQ09ORklHX1BQUD15CkBAIC02OTIsNiArNjk4LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAKICMKQEAgLTcyNiwxMiArNzMzLDcgQEAKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTc0OCwxMiArNzUwLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC03ODEsMTEgKzc5MywxNCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCiAjCiBDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKQEAgLTc5NSw2ICs4MTAsNyBAQAogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVRfTTY2NTkyPXkKIENPTkZJR19VU0JfTTY2NTkyPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfUFhBMjdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfR09LVSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0xIN0E0MFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9PTUFQIGlzIG5vdCBzZXQKQEAgLTgwNCw2ICs4MjAsNyBAQAogQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEPXkKICMgQ09ORklHX1VTQl9aRVJPIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRVRIPXkKK0NPTkZJR19VU0JfRVRIX1JORElTPXkKICMgQ09ORklHX1VTQl9HQURHRVRGUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HX1NFUklBTCBpcyBub3Qgc2V0CkBAIC04MTIsMTMgKzgyOSwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODg4LDcgKzkwMiw2IEBACiBDT05GSUdfTkZTX0ZTPXkKIENPTkZJR19ORlNfVjM9eQogQ09ORklHX05GU19WM19BQ0w9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC05NjcsNiArOTgwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPXkKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC05NzksNiArOTkzLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtOTg2LDYgKzEwMDEsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKIENPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC05OTYsNiArMTAxMiw3IEBACiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTAwOCw2ICsxMDI1LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMDE5LDYgKzEwMzcsNyBAQAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX0JESV9TV0lUQ0g9eQogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTAyOCw0NiArMTA0Nyw3NiBAQAogIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQotIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPXkKK0NPTkZJR19DUllQVE9fUENCQz15CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9eQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPXkKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BycG1jMjgwMF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcnBtYzI4MDBfZGVmY29uZmlnCmluZGV4IGY5MTIxNjguLmM2YjgzNTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BycG1jMjgwMF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHJwbWMyODAwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzoxNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTggMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMyw2ICszMyw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtOTIsNiArOTQsNyBAQAogQ09ORklHX1NZU0NUTD15CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKQEAgLTExNyw2ICsxMjAsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMjE1LDExICsyMTksMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTI0MSw2ICsyNDcsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjUwLDEzICsyNTcsMTMgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU1RBUlQ9MHhmZjEwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU0laRT0weDAwMjAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDQsOCArMzExLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM2NCw2ICszNjksNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MzUsNiArNDQxLDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MTksNyArNTI2LDcgQEAKICMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLUNPTkZJR19JREVfQVJDSF9PQlNPTEVURV9JTklUPXkKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTk4LDcgKzYwNSwxMCBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX01WPXkKQEAgLTYwOCw3ICs2MTgsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldApAQCAtNjUzLDYgKzY2Miw3IEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCkBAIC03NDQsNyArNzU0LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNzYzLDYgKzc3Miw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTc3MCw2ICs3ODAsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTgzMiw2ICs4NDMsNyBAQAogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQogIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC04NTUsNyArODY3LDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAogIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTg2NiwxMyArODc3LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTg5OCw2ICs5MDIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogQ09ORklHX0kyQ19NVjY0WFhYPXkKIAogIwpAQCAtOTA4LDE5ICs5MTMsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTk5MCwxMiArOTg5LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNTUsMTEgKzEwNjQsMTMgQEAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CkBAIC0xMDc0LDYgKzEwODUsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMTIwLDEwICsxMTMyLDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtMTE3NSwxMSArMTE4OSw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE5OSw3ICsxMjEwLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTI1Nyw3ICsxMjY3LDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEzMDAsNiArMTMwOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMzEwLDYgKzEzMjAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMzE3LDYgKzEzMjgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEzMjYsNiArMTMzOCw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RYX1RFWFQgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTMzNiw0OCArMTM0OSw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9zYmM4NjQxZF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9zYmM4NjQxZF9kZWZjb25maWcKaW5kZXggMzE4MDEyNS4uODIyNzUxMCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2JjODY0MWRfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3NiYzg2NDFkX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgVGh1IEFwciAxMCAxODowMzoyNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTkgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfR0VORVJJQ19MT0NLQlJFQUs9eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CkBAIC05MCw2ICs5Miw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTYsMTIgKzExOSwxNCBAQAogIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMTk3LDcgKzIwMiw2IEBACiAjIENPTkZJR19QUkVFTVBUX1JDVSBpcyBub3Qgc2V0CiBDT05GSUdfQklORk1UX0VMRj15CiBDT05GSUdfQklORk1UX01JU0M9bQotQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQogQ09ORklHX0FSQ0hfSEFTX1dBTEtfTUVNT1JZPXkKQEAgLTIxMywxMSArMjE3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiAjIENPTkZJR19QUk9DX0RFVklDRVRSRUUgaXMgbm90IHNldAogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNywxMiArMjQzLDE0IEBACiBDT05GSUdfUENJX1NZU0NBTEw9eQogQ09ORklHX1BDSUVQT1JUQlVTPXkKIENPTkZJR19QQ0lFQUVSPXkKKyMgQ09ORklHX1BDSUVBU1BNIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiAjIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZPXkKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTIsMTEgKzI2MCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMjgsOCArMzM2LDEwIEBACiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9bQogIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRFT1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2X1NJVD1tCitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiBDT05GSUdfSVBWNl9UVU5ORUw9bQogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUTEFCRUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKIENPTkZJR19ORVRGSUxURVI9eQpAQCAtNTM0LDYgKzU0NCw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfQ01ETElORV9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT0ZfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTYxMCw2ICs2MjEsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTcyNyw3ICs3MzksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC03NDMsNiArNzU0LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKIENPTkZJR19BVE1fRFJJVkVSUz15CiAjIENPTkZJR19BVE1fRFVNTVkgaXMgbm90IHNldApAQCAtODI1LDYgKzgzNyw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTg2MywxMyArODc2LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTg5NSw2ICs5MDEsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtOTA0LDE5ICs5MTEsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTk5OCwxMiArOTk5LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC0xMDQxLDYgKzEwNTIsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMDQ5LDE0ICsxMDYyLDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwODQsOCArMTA5NCw4IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfT0NGUzJfRlM9bQorQ09ORklHX09DRlMyX0ZTX08yQ0I9bQogQ09ORklHX09DRlMyX0RFQlVHX01BU0tMT0c9eQogIyBDT05GSUdfT0NGUzJfREVCVUdfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQpAQCAtMTE0NSw3ICsxMTU1LDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLUNPTkZJR19ORlNfRElSRUNUSU89eQogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEyMjEsNiArMTIzMCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogQ09ORklHX0NSQ19DQ0lUVD1tCiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTI0MSw2ICsxMjUxLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0ZTPXkKQEAgLTEyNTEsNiArMTI2Miw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldApAQCAtMTI2Miw2ICsxMjc0LDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTEyNzQsNiArMTI4Nyw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogQ09ORklHX0RFQlVHR0VSPXkKICMgQ09ORklHX1hNT04gaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJUlFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldApAQCAtMTI4OSw1NCArMTMwMyw4NCBAQAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX1NFQ1VSSVRZX0RFRkFVTFRfTU1BUF9NSU5fQUREUj0wCiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQUVBRD1tCiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IQVNIPXkKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19OVUxMPW0KKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPW0KK0NPTkZJR19DUllQVE9fVEVTVD1tCisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX05VTEw9bQorCisjCisjIERpZ2VzdAorIworQ09ORklHX0NSWVBUT19DUkMzMkM9bQogQ09ORklHX0NSWVBUT19NRDQ9bQogQ09ORklHX0NSWVBUT19NRDU9eQorQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogQ09ORklHX0NSWVBUT19TSEEyNTY9bQogQ09ORklHX0NSWVBUT19TSEE1MTI9bQotQ09ORklHX0NSWVBUT19XUDUxMj1tCiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0KLUNPTkZJR19DUllQVE9fVFdPRklTSD1tCi1DT05GSUdfQ1JZUFRPX1RXT0ZJU0hfQ09NTU9OPW0KLUNPTkZJR19DUllQVE9fU0VSUEVOVD1tCitDT05GSUdfQ1JZUFRPX1dQNTEyPW0KKworIworIyBDaXBoZXJzCisjCiBDT05GSUdfQ1JZUFRPX0FFUz1tCitDT05GSUdfQ1JZUFRPX0FOVUJJUz1tCitDT05GSUdfQ1JZUFRPX0FSQzQ9bQorQ09ORklHX0NSWVBUT19CTE9XRklTSD1tCisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19DQVNUNT1tCiBDT05GSUdfQ1JZUFRPX0NBU1Q2PW0KLUNPTkZJR19DUllQVE9fVEVBPW0KLUNPTkZJR19DUllQVE9fQVJDND1tCitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fS0hBWkFEPW0KLUNPTkZJR19DUllQVE9fQU5VQklTPW0KLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fU0VSUEVOVD1tCitDT05GSUdfQ1JZUFRPX1RFQT1tCitDT05GSUdfQ1JZUFRPX1RXT0ZJU0g9bQorQ09ORklHX0NSWVBUT19UV09GSVNIX0NPTU1PTj1tCisKKyMKKyMgQ29tcHJlc3Npb24KKyMKIENPTkZJR19DUllQVE9fREVGTEFURT1tCi1DT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDPW0KLUNPTkZJR19DUllQVE9fQ1JDMzJDPW0KLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX1RFU1Q9bQotQ09ORklHX0NSWVBUT19BVVRIRU5DPW0KICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc3RvcmNlbnRlcl9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9zdG9yY2VudGVyX2RlZmNvbmZpZwppbmRleCBmZGJmZDM5Li44OGY2YWE4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9zdG9yY2VudGVyX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9zdG9yY2VudGVyX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzoxOSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjAgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODUsNiArODcsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTEwOSwxMiArMTEyLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjE0LDExICsyMTksMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogQ09ORklHX0NNRExJTkVfQk9PTD15CiBDT05GSUdfQ01ETElORT0iY29uc29sZT10dHlTMCwxMTUyMDAiCkBAIC0yNDIsNiArMjQ5LDcgQEAKIENPTkZJR19QQ0lfTEVHQUNZPXkKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI1MSwxMSArMjU5LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5OCw4ICszMDYsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzU4LDYgKzM2NCw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfQ01ETElORV9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT0ZfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQzMyw2ICs0NDAsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUxMyw3ICs1MjEsNyBAQAogQ09ORklHX0JMS19ERVZfVklBODJDWFhYPXkKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLUNPTkZJR19JREVfQVJDSF9PQlNPTEVURV9JTklUPXkKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNjM4LDcgKzY0Niw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY1NCw2ICs2NjEsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTY5MCw2ICs2OTgsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTcxNyw3ICs3MjYsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009bQogQ09ORklHX05WUkFNPXkKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03MjgsMTMgKzczNiw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03NjEsNiArNzYyLDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc3MCwxOSArNzcyLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTc5OSwxMiArNzk1LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKQEAgLTg0MSwxNiArODQ3LDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9GU0wgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKICMgQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0YgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKQEAgLTg2NSw2ICs4NzUsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC04ODUsNiArODk2LDcgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTkyMiwxMCArOTM0LDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtOTc3LDExICs5OTEsOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMDIsMTAgKzEwMTMsOSBAQAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19YRlNfRlM9bQogIyBDT05GSUdfWEZTX1FVT1RBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGU19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMTM4LDYgKzExNDgsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTE1MCw2ICsxMTYxLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTE1Nyw2ICsxMTY5LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKICMgQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQgaXMgbm90IHNldAogIyBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTE2Niw2ICsxMTc5LDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UWF9URVhUIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTExODEsMyArMTE5NSw0IEBACiBDT05GSUdfQVNZTkNfWE9SPXkKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvTWFrZWZpbGUKaW5kZXggMjM0NmQyNy4uZjNmNWUyNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlCkBAIC0xMiw2ICsxMiwxOCBAQAogQ0ZMQUdTX2J0ZXh0Lm8JCSs9IC1mUElDCiBlbmRpZgogCitpZmRlZiBDT05GSUdfRlRSQUNFCisjIERvIG5vdCB0cmFjZSBlYXJseSBib290IGNvZGUKK0NGTEFHU19SRU1PVkVfY3B1dGFibGUubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9wcm9tX2luaXQubyA9IC1wZworCitpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKyMgZHluYW1pYyBmdHJhY2Ugc2V0dXAuCitDRkxBR1NfUkVNT1ZFX2Z0cmFjZS5vID0gLXBnCitlbmRpZgorCitlbmRpZgorCiBvYmoteQkJCQk6PSBjcHV0YWJsZS5vIHB0cmFjZS5vIHN5c2NhbGxzLm8gXAogCQkJCSAgIGlycS5vIGFsaWduLm8gc2lnbmFsXzMyLm8gcG1jLm8gdmRzby5vIFwKIAkJCQkgICBpbml0X3Rhc2subyBwcm9jZXNzLm8gc3lzdGJsLm8gaWRsZS5vIFwKQEAgLTc4LDYgKzkwLDggQEAKIG9iai0kKENPTkZJR19BVURJVCkJCSs9IGF1ZGl0Lm8KIG9iajY0LSQoQ09ORklHX0FVRElUKQkJKz0gY29tcGF0X2F1ZGl0Lm8KIAorb2JqLSQoQ09ORklHX0RZTkFNSUNfRlRSQUNFKQkrPSBmdHJhY2UubworCiBvYmotJChDT05GSUdfOFhYX01JTklNQUxfRlBFTVUpICs9IHNvZnRlbXU4eHgubwogCiBpZm5lcSAoJChDT05GSUdfUFBDX0lORElSRUNUX0lPKSx5KQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TCmluZGV4IDBjODYxNGQuLjcyMzFhNzAgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfMzIuUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxhc20vcHBjX2FzbS5oPgogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKICN1bmRlZiBTSE9XX1NZU0NBTExTCiAjdW5kZWYgU0hPV19TWVNDQUxMU19UQVNLCkBAIC0xMDM1LDMgKzEwMzYsMTI5IEBACiAJLyogWFhYIGxvYWQgdXAgQkFUcyBhbmQgcGFuaWMgKi8KIAogI2VuZGlmIC8qIENPTkZJR19QUENfUlRBUyAqLworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorX0dMT0JBTChtY291bnQpCitfR0xPQkFMKF9tY291bnQpCisJc3R3dQlyMSwtNDgocjEpCisJc3R3CXIzLCAxMihyMSkKKwlzdHcJcjQsIDE2KHIxKQorCXN0dwlyNSwgMjAocjEpCisJc3R3CXI2LCAyNChyMSkKKwltZmxyCXIzCisJc3R3CXI3LCAyOChyMSkKKwltZmNyCXI1CisJc3R3CXI4LCAzMihyMSkKKwlzdHcJcjksIDM2KHIxKQorCXN0dwlyMTAsNDAocjEpCisJc3R3CXIzLCA0NChyMSkKKwlzdHcJcjUsIDgocjEpCisJc3ViaQlyMywgcjMsIE1DT1VOVF9JTlNOX1NJWkUKKwkuZ2xvYmwgbWNvdW50X2NhbGwKK21jb3VudF9jYWxsOgorCWJsCWZ0cmFjZV9zdHViCisJbm9wCisJbHd6CXI2LCA4KHIxKQorCWx3eglyMCwgNDQocjEpCisJbHd6CXIzLCAxMihyMSkKKwltdGN0cglyMAorCWx3eglyNCwgMTYocjEpCisJbXRjcglyNgorCWx3eglyNSwgMjAocjEpCisJbHd6CXI2LCAyNChyMSkKKwlsd3oJcjAsIDUyKHIxKQorCWx3eglyNywgMjgocjEpCisJbHd6CXI4LCAzMihyMSkKKwltdGxyCXIwCisJbHd6CXI5LCAzNihyMSkKKwlsd3oJcjEwLDQwKHIxKQorCWFkZGkJcjEsIHIxLCA0OAorCWJjdHIKKworX0dMT0JBTChmdHJhY2VfY2FsbGVyKQorCS8qIEJhc2VkIG9mZiBvZiBvYmpkdW1wIG9wdHB1dCBmcm9tIGdsaWJjICovCisJc3R3dQlyMSwtNDgocjEpCisJc3R3CXIzLCAxMihyMSkKKwlzdHcJcjQsIDE2KHIxKQorCXN0dwlyNSwgMjAocjEpCisJc3R3CXI2LCAyNChyMSkKKwltZmxyCXIzCisJbHd6CXI0LCA1MihyMSkKKwltZmNyCXI1CisJc3R3CXI3LCAyOChyMSkKKwlzdHcJcjgsIDMyKHIxKQorCXN0dwlyOSwgMzYocjEpCisJc3R3CXIxMCw0MChyMSkKKwlzdHcJcjMsIDQ0KHIxKQorCXN0dwlyNSwgOChyMSkKKwlzdWJpCXIzLCByMywgTUNPVU5UX0lOU05fU0laRQorLmdsb2JsIGZ0cmFjZV9jYWxsCitmdHJhY2VfY2FsbDoKKwlibAlmdHJhY2Vfc3R1YgorCW5vcAorCWx3eglyNiwgOChyMSkKKwlsd3oJcjAsIDQ0KHIxKQorCWx3eglyMywgMTIocjEpCisJbXRjdHIJcjAKKwlsd3oJcjQsIDE2KHIxKQorCW10Y3IJcjYKKwlsd3oJcjUsIDIwKHIxKQorCWx3eglyNiwgMjQocjEpCisJbHd6CXIwLCA1MihyMSkKKwlsd3oJcjcsIDI4KHIxKQorCWx3eglyOCwgMzIocjEpCisJbXRscglyMAorCWx3eglyOSwgMzYocjEpCisJbHd6CXIxMCw0MChyMSkKKwlhZGRpCXIxLCByMSwgNDgKKwliY3RyCisjZWxzZQorX0dMT0JBTChtY291bnQpCitfR0xPQkFMKF9tY291bnQpCisJc3R3dQlyMSwtNDgocjEpCisJc3R3CXIzLCAxMihyMSkKKwlzdHcJcjQsIDE2KHIxKQorCXN0dwlyNSwgMjAocjEpCisJc3R3CXI2LCAyNChyMSkKKwltZmxyCXIzCisJbHd6CXI0LCA1MihyMSkKKwltZmNyCXI1CisJc3R3CXI3LCAyOChyMSkKKwlzdHcJcjgsIDMyKHIxKQorCXN0dwlyOSwgMzYocjEpCisJc3R3CXIxMCw0MChyMSkKKwlzdHcJcjMsIDQ0KHIxKQorCXN0dwlyNSwgOChyMSkKKworCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisJTE9BRF9SRUdfQUREUihyNSwgZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKQorCWx3eglyNSwwKHI1KQorCisJbXRjdHIJcjUKKwliY3RybAorCisJbm9wCisKKwlsd3oJcjYsIDgocjEpCisJbHd6CXIwLCA0NChyMSkKKwlsd3oJcjMsIDEyKHIxKQorCW10Y3RyCXIwCisJbHd6CXI0LCAxNihyMSkKKwltdGNyCXI2CisJbHd6CXI1LCAyMChyMSkKKwlsd3oJcjYsIDI0KHIxKQorCWx3eglyMCwgNTIocjEpCisJbHd6CXI3LCAyOChyMSkKKwlsd3oJcjgsIDMyKHIxKQorCW10bHIJcjAKKwlsd3oJcjksIDM2KHIxKQorCWx3eglyMTAsNDAocjEpCisJYWRkaQlyMSwgcjEsIDQ4CisJYmN0cgorI2VuZGlmCisKK19HTE9CQUwoZnRyYWNlX3N0dWIpCisJYmxyCisKKyNlbmRpZiAvKiBDT05GSUdfTUNPVU5UICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzY0LlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzY0LlMKaW5kZXggYzBkYjViNy4uMmY1MTFhOSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGFzbS9idWcuaD4KICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CiAjaW5jbHVkZSA8YXNtL2lycWZsYWdzLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiAvKgogICogU3lzdGVtIGNhbGxzLgpAQCAtODcwLDMgKzg3MSw2NyBAQAogCWxkCXIwLDE2KHIxKQogCW10bHIgICAgcjAKICAgICAgICAgYmxyCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitfR0xPQkFMKG1jb3VudCkKK19HTE9CQUwoX21jb3VudCkKKwkvKiBUYWtlbiBmcm9tIG91dHB1dCBvZiBvYmpkdW1wIGZyb20gbGliNjQvZ2xpYmMgKi8KKwltZmxyCXIzCisJc3RkdQlyMSwgLTExMihyMSkKKwlzdGQJcjMsIDEyOChyMSkKKwlzdWJpCXIzLCByMywgTUNPVU5UX0lOU05fU0laRQorCS5nbG9ibCBtY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJYmwJZnRyYWNlX3N0dWIKKwlub3AKKwlsZAlyMCwgMTI4KHIxKQorCW10bHIJcjAKKwlhZGRpCXIxLCByMSwgMTEyCisJYmxyCisKK19HTE9CQUwoZnRyYWNlX2NhbGxlcikKKwkvKiBUYWtlbiBmcm9tIG91dHB1dCBvZiBvYmpkdW1wIGZyb20gbGliNjQvZ2xpYmMgKi8KKwltZmxyCXIzCisJbGQJcjExLCAwKHIxKQorCXN0ZHUJcjEsIC0xMTIocjEpCisJc3RkCXIzLCAxMjgocjEpCisJbGQJcjQsIDE2KHIxMSkKKwlzdWJpCXIzLCByMywgTUNPVU5UX0lOU05fU0laRQorLmdsb2JsIGZ0cmFjZV9jYWxsCitmdHJhY2VfY2FsbDoKKwlibAlmdHJhY2Vfc3R1YgorCW5vcAorCWxkCXIwLCAxMjgocjEpCisJbXRscglyMAorCWFkZGkJcjEsIHIxLCAxMTIKK19HTE9CQUwoZnRyYWNlX3N0dWIpCisJYmxyCisjZWxzZQorX0dMT0JBTChtY291bnQpCisJYmxyCisKK19HTE9CQUwoX21jb3VudCkKKwkvKiBUYWtlbiBmcm9tIG91dHB1dCBvZiBvYmpkdW1wIGZyb20gbGliNjQvZ2xpYmMgKi8KKwltZmxyCXIzCisJbGQJcjExLCAwKHIxKQorCXN0ZHUJcjEsIC0xMTIocjEpCisJc3RkCXIzLCAxMjgocjEpCisJbGQJcjQsIDE2KHIxMSkKKworCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisJTE9BRF9SRUdfQUREUihyNSxmdHJhY2VfdHJhY2VfZnVuY3Rpb24pCisJbGQJcjUsMChyNSkKKwlsZAlyNSwwKHI1KQorCW10Y3RyCXI1CisJYmN0cmwKKworCW5vcAorCWxkCXIwLCAxMjgocjEpCisJbXRscglyMAorCWFkZGkJcjEsIHIxLCAxMTIKK19HTE9CQUwoZnRyYWNlX3N0dWIpCisJYmxyCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9mdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODU1Y2ViCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9mdHJhY2UuYwpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvZGUgZm9yIHJlcGxhY2luZyBmdHJhY2UgY2FsbHMgd2l0aCBqdW1wcy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGFua3MgZ29lcyBvdXQgdG8gUC5BLiBTZW1pLCBJbmMgZm9yIHN1cHBseWluZyBtZSB3aXRoIGEgUFBDNjQgYm94LgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9oYXJkaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZnRyYWNlX25vcCA9IDB4NjAwMDAwMDA7CisKKyNpZmRlZiBDT05GSUdfUFBDMzIKKyMgZGVmaW5lIEdFVF9BRERSKGFkZHIpIGFkZHIKKyNlbHNlCisvKiBQb3dlclBDNjQncyBmdW5jdGlvbnMgYXJlIGRhdGEgdGhhdCBwb2ludHMgdG8gdGhlIGZ1bmN0aW9ucyAqLworIyBkZWZpbmUgR0VUX0FERFIoYWRkcikgKih1bnNpZ25lZCBsb25nICopYWRkcgorI2VuZGlmCisKKworc3RhdGljIHVuc2lnbmVkIGludCBub3RyYWNlIGZ0cmFjZV9jYWxjX29mZnNldChsb25nIGlwLCBsb25nIGFkZHIpCit7CisJcmV0dXJuIChpbnQpKGFkZHIgLSBpcCk7Cit9CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpCit7CisJcmV0dXJuIChjaGFyICopJmZ0cmFjZV9ub3A7Cit9CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX2NhbGxfcmVwbGFjZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RhdGljIHVuc2lnbmVkIGludCBvcDsKKworCS8qCisJICogSXQgd291bGQgYmUgbmljZSB0byBqdXN0IHVzZSBjcmVhdGVfZnVuY3Rpb25fY2FsbCwgYnV0IHRoYXQgd2lsbAorCSAqIHVwZGF0ZSB0aGUgY29kZSBpdHNlbGYuIEhlcmUgd2UgbmVlZCB0byBqdXN0IHJldHVybiB0aGUKKwkgKiBpbnN0cnVjdGlvbiB0aGF0IGlzIGdvaW5nIHRvIGJlIG1vZGlmaWVkLCB3aXRob3V0IG1vZGlmeWluZyB0aGUKKwkgKiBjb2RlLgorCSAqLworCWFkZHIgPSBHRVRfQUREUihhZGRyKTsKKworCS8qIFNldCB0byAiYmwgYWRkciIgKi8KKwlvcCA9IDB4NDgwMDAwMDEgfCAoZnRyYWNlX2NhbGNfb2Zmc2V0KGlwLCBhZGRyKSAmIDB4MDNmZmZmZmMpOworCisJLyoKKwkgKiBObyBsb2NraW5nIG5lZWRlZCwgdGhpcyBtdXN0IGJlIGNhbGxlZCB2aWEga3N0b3BfbWFjaGluZQorCSAqIHdoaWNoIGluIGVzc2VuY2UgaXMgbGlrZSBydW5uaW5nIG9uIGEgdW5pcHJvY2Vzc29yIG1hY2hpbmUuCisJICovCisJcmV0dXJuICh1bnNpZ25lZCBjaGFyICopJm9wOworfQorCisjaWZkZWYgQ09ORklHX1BQQzY0CisjIGRlZmluZSBfQVNNX0FMSUdOCSIgLmFsaWduIDMgIgorIyBkZWZpbmUgX0FTTV9QVFIJIiAubGxvbmcgIgorI2Vsc2UKKyMgZGVmaW5lIF9BU01fQUxJR04JIiAuYWxpZ24gMiAiCisjIGRlZmluZSBfQVNNX1BUUgkiIC5sb25nICIKKyNlbmRpZgorCitub3RyYWNlIGludAorZnRyYWNlX21vZGlmeV9jb2RlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGNoYXIgKm9sZF9jb2RlLAorCQkgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSkKK3sKKwl1bnNpZ25lZCByZXBsYWNlZDsKKwl1bnNpZ25lZCBvbGQgPSAqKHVuc2lnbmVkICopb2xkX2NvZGU7CisJdW5zaWduZWQgbmV3ID0gKih1bnNpZ25lZCAqKW5ld19jb2RlOworCWludCBmYXVsdGVkID0gMDsKKworCS8qCisJICogTm90ZTogRHVlIHRvIG1vZHVsZXMgYW5kIF9faW5pdCwgY29kZSBjYW4KKwkgKiAgZGlzYXBwZWFyIGFuZCBjaGFuZ2UsIHdlIG5lZWQgdG8gcHJvdGVjdCBhZ2FpbnN0IGZhdWx0aW5nCisJICogIGFzIHdlbGwgYXMgY29kZSBjaGFuZ2luZy4KKwkgKgorCSAqIE5vIHJlYWwgbG9ja2luZyBuZWVkZWQsIHRoaXMgY29kZSBpcyBydW4gdGhyb3VnaAorCSAqIGtzdG9wX21hY2hpbmUuCisJICovCisJYXNtIHZvbGF0aWxlICgKKwkJIjE6IGx3egkJJTEsIDAoJTIpXG4iCisJCSIgICBjbXB3CSUxLCAlNVxuIgorCQkiICAgYm5lCQkyZlxuIgorCQkiICAgc3R3dQklMywgMCglMilcbiIKKwkJIjI6XG4iCisJCSIuc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuIgorCQkiMzoJbGkgJTAsIDFcbiIKKwkJIgliIDJiXG4iCisJCSIucHJldmlvdXNcbiIKKwkJIi5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCJcbiIKKwkJX0FTTV9BTElHTiAiXG4iCisJCV9BU01fUFRSICIxYiwgM2JcbiIKKwkJIi5wcmV2aW91cyIKKwkJOiAiPXIiKGZhdWx0ZWQpLCAiPXIiKHJlcGxhY2VkKQorCQk6ICJyIihpcCksICJyIihuZXcpLAorCQkgICIwIihmYXVsdGVkKSwgInIiKG9sZCkKKwkJOiAibWVtb3J5Iik7CisKKwlpZiAocmVwbGFjZWQgIT0gb2xkICYmIHJlcGxhY2VkICE9IG5ldykKKwkJZmF1bHRlZCA9IDI7CisKKwlpZiAoIWZhdWx0ZWQpCisJCWZsdXNoX2ljYWNoZV9yYW5nZShpcCwgaXAgKyA4KTsKKworCXJldHVybiBmYXVsdGVkOworfQorCitub3RyYWNlIGludCBmdHJhY2VfdXBkYXRlX2Z0cmFjZV9mdW5jKGZ0cmFjZV9mdW5jX3QgZnVuYykKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKHVuc2lnbmVkIGxvbmcpKCZmdHJhY2VfY2FsbCk7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisJaW50IHJldDsKKworCW1lbWNweShvbGQsICZmdHJhY2VfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKHVuc2lnbmVkIGxvbmcpZnVuYyk7CisJcmV0ID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7CisKKwlyZXR1cm4gcmV0OworfQorCitub3RyYWNlIGludCBmdHJhY2VfbWNvdW50X3NldCh1bnNpZ25lZCBsb25nICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAobG9uZykoJm1jb3VudF9jYWxsKTsKKwl1bnNpZ25lZCBsb25nICphZGRyID0gZGF0YTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKworCS8qCisJICogUmVwbGFjZSB0aGUgbWNvdW50IHN0dWIgd2l0aCBhIHBvaW50ZXIgdG8gdGhlCisJICogaXAgcmVjb3JkZXIgZnVuY3Rpb24uCisJICovCisJbWVtY3B5KG9sZCwgJm1jb3VudF9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAqYWRkcik7CisJKmFkZHIgPSBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKKworCXJldHVybiAwOworfQorCitpbnQgX19pbml0IGZ0cmFjZV9keW5fYXJjaF9pbml0KHZvaWQgKmRhdGEpCit7CisJLyogVGhpcyBpcyBydW5uaW5nIGluIGtzdG9wX21hY2hpbmUgKi8KKworCWZ0cmFjZV9tY291bnRfc2V0KGRhdGEpOworCisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF80NHguUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF80NHguUwppbmRleCBjMmI5ZGM0Li4yMmI1ZDJjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfNDR4LlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzQ0eC5TCkBAIC0zNjgsNyArMzY4LDEyIEBACiAKIAlybHdpbWkJcjExLHIxMywwLDI2LDMxCQkvKiBJbnNlcnQgc3RhdGljIHBlcm1zICovCiAKLQlybHdpbm0JcjExLHIxMSwwLDIwLDE1CQkvKiBDbGVhciBVMC1VMyAqLworCS8qCisJICogQ2xlYXIgVTAtVTMgYW5kIFdMMSBJTDFJIElMMUQgSUwySSBJTDJEIGJpdHMgd2hpY2ggYXJlIGFkZGVkCisJICogb24gbmV3ZXIgNDQwIGNvcmVzIGxpa2UgdGhlIDQ0MHg2IHVzZWQgb24gQU1DQyA0NjBFWC80NjBHVCAoc2VlCisJICogaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzMyLmggZm9yIGRldGFpbHMpLgorCSAqLworCXJsd2lubQlyMTEscjExLDAsMjAsMTAKIAogCS8qIGZpbmQgdGhlIFRMQiBpbmRleCB0aGF0IGNhdXNlZCB0aGUgZmF1bHQuICBJdCBoYXMgdG8gYmUgaGVyZS4gKi8KIAl0bGJzeAlyMTAsIDAsIHIxMApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jCmluZGV4IGUzMWFjYTkyLi4xODgyYmY0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2lvLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jCkBAIC0xMjAsNyArMTIwLDggQEAKIAogI2RlZmluZSBJT19DSEVDS19BTElHTih2LGEpICgoKCh1bnNpZ25lZCBsb25nKSh2KSkgJiAoKGEpIC0gMSkpID09IDApCiAKLXZvaWQgX21lbXNldF9pbyh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIsIGludCBjLCB1bnNpZ25lZCBsb25nIG4pCitub3RyYWNlIHZvaWQKK19tZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCBpbnQgYywgdW5zaWduZWQgbG9uZyBuKQogewogCXZvaWQgKnAgPSAodm9pZCBfX2ZvcmNlICopYWRkcjsKIAl1MzIgbGMgPSBjOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMKaW5kZXggMmY3M2Y3MC4uZGNjOTQ2ZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lycS5jCkBAIC05OCw3ICs5OCw3IEBACiAKIGludCBkaXN0cmlidXRlX2lycXMgPSAxOwogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2hhcmRfZW5hYmxlZCh2b2lkKQorc3RhdGljIGlubGluZSBub3RyYWNlIHVuc2lnbmVkIGxvbmcgZ2V0X2hhcmRfZW5hYmxlZCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgZW5hYmxlZDsKIApAQCAtMTA4LDEzICsxMDgsMTMgQEAKIAlyZXR1cm4gZW5hYmxlZDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNldF9zb2Z0X2VuYWJsZWQodW5zaWduZWQgbG9uZyBlbmFibGUpCitzdGF0aWMgaW5saW5lIG5vdHJhY2Ugdm9pZCBzZXRfc29mdF9lbmFibGVkKHVuc2lnbmVkIGxvbmcgZW5hYmxlKQogewogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzdGIgJTAsJTEoMTMpIgogCTogOiAiciIgKGVuYWJsZSksICJpIiAob2Zmc2V0b2Yoc3RydWN0IHBhY2Ffc3RydWN0LCBzb2Z0X2VuYWJsZWQpKSk7CiB9CiAKLXZvaWQgcmF3X2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZW4pCitub3RyYWNlIHZvaWQgcmF3X2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZW4pCiB7CiAJLyoKIAkgKiBnZXRfcGFjYSgpLT5zb2Z0X2VuYWJsZWQgPSBlbjsKQEAgLTEwNzMsNyArMTA3Myw3IEBACiBzdGF0aWMgaW50IF9faW5pdCBpcnFfZGVidWdmc19pbml0KHZvaWQpCiB7CiAJaWYgKGRlYnVnZnNfY3JlYXRlX2ZpbGUoInZpcnFfbWFwcGluZyIsIFNfSVJVR08sIHBvd2VycGNfZGVidWdmc19yb290LAotCQkJCSBOVUxMLCAmdmlycV9kZWJ1Z19mb3BzKSkKKwkJCQkgTlVMTCwgJnZpcnFfZGVidWdfZm9wcykgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvbGVnYWN5X3NlcmlhbC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKaW5kZXggNjFkZDE3NC4uNGQ5NmUxZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKQEAgLTMzLDEzICszMywxNCBAQAogCXBoeXNfYWRkcl90CQkJdGFkZHI7CiB9IGxlZ2FjeV9zZXJpYWxfaW5mb3NbTUFYX0xFR0FDWV9TRVJJQUxfUE9SVFNdOwogCi1zdGF0aWMgc3RydWN0IF9faW5pdGRhdGEgb2ZfZGV2aWNlX2lkIHBhcmVudHNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgX19pbml0ZGF0YSBvZl9kZXZpY2VfaWQgbGVnYWN5X3NlcmlhbF9wYXJlbnRzW10gPSB7CiAJey50eXBlID0gInNvYyIsfSwKIAl7LnR5cGUgPSAidHNpLWJyaWRnZSIsfSwKIAl7LnR5cGUgPSAib3BiIiwgfSwKIAl7LmNvbXBhdGlibGUgPSAiaWJtLG9wYiIsfSwKIAl7LmNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyIsfSwKIAl7LmNvbXBhdGlibGUgPSAid3JzLGVwbGQtbG9jYWxidXMiLH0sCisJe30sCiB9OwogCiBzdGF0aWMgdW5zaWduZWQgaW50IGxlZ2FjeV9zZXJpYWxfY291bnQ7CkBAIC0xMzYsNiArMTM3LDExIEBACiAJaWYgKG9mX2dldF9wcm9wZXJ0eShucCwgImNsb2NrLWZyZXF1ZW5jeSIsIE5VTEwpID09IE5VTEwpCiAJCXJldHVybiAtMTsKIAorCS8qIGlmIHJlZy1zaGlmdCBvciBvZmZzZXQsIGRvbid0IHRyeSB0byB1c2UgaXQgKi8KKwlpZiAoKG9mX2dldF9wcm9wZXJ0eShucCwgInJlZy1zaGlmdCIsIE5VTEwpICE9IE5VTEwpIHx8CisJCShvZl9nZXRfcHJvcGVydHkobnAsICJyZWctb2Zmc2V0IiwgTlVMTCkgIT0gTlVMTCkpCisJCXJldHVybiAtMTsKKwogCS8qIGlmIHJ0YXMgdXNlcyB0aGlzIGRldmljZSwgZG9uJ3QgdHJ5IHRvIHVzZSBpdCBhcyB3ZWxsICovCiAJaWYgKG9mX2dldF9wcm9wZXJ0eShucCwgInVzZWQtYnktcnRhcyIsIE5VTEwpICE9IE5VTEwpCiAJCXJldHVybiAtMTsKQEAgLTMyMiw3ICszMjgsNyBAQAogCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCA9IG9mX2dldF9wYXJlbnQobnApOwogCQlpZiAoIXBhcmVudCkKIAkJCWNvbnRpbnVlOwotCQlpZiAob2ZfbWF0Y2hfbm9kZShwYXJlbnRzLCBwYXJlbnQpICE9IE5VTEwpIHsKKwkJaWYgKG9mX21hdGNoX25vZGUobGVnYWN5X3NlcmlhbF9wYXJlbnRzLCBwYXJlbnQpICE9IE5VTEwpIHsKIAkJCWluZGV4ID0gYWRkX2xlZ2FjeV9zb2NfcG9ydChucCwgbnApOwogCQkJaWYgKGluZGV4ID49IDAgJiYgbnAgPT0gc3Rkb3V0KQogCQkJCWxlZ2FjeV9zZXJpYWxfY29uc29sZSA9IGluZGV4OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jCmluZGV4IGU3OWFkOGEuLjNmMzdhNmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfcGxhdGZvcm0uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL29mX3BsYXRmb3JtLmMKQEAgLTc2LDYgKzc2LDggQEAKIAkJcmV0dXJuIE5VTEw7CiAKIAlkZXYtPmRtYV9tYXNrID0gMHhmZmZmZmZmZlVMOworCWRldi0+ZGV2LmNvaGVyZW50X2RtYV9tYXNrID0gRE1BXzMyQklUX01BU0s7CisKIAlkZXYtPmRldi5idXMgPSAmb2ZfcGxhdGZvcm1fYnVzX3R5cGU7CiAKIAkvKiBXZSBkbyBub3QgZmlsbCB0aGUgRE1BIG9wcyBmb3IgcGxhdGZvcm0gZGV2aWNlcyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfNjQuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzY0LmMKaW5kZXggNTI3NTA3NC4uMzBlZWRmYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfNjQuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV82NC5jCkBAIC0xODksNyArMTg5LDcgQEAKIAogCWRldi0+Y2ZnX3NpemUgPSBwY2lfY2ZnX3NwYWNlX3NpemUoZGV2KTsKIAotCXNwcmludGYocGNpX25hbWUoZGV2KSwgIiUwNHg6JTAyeDolMDJ4LiVkIiwgcGNpX2RvbWFpbl9ucihidXMpLAorCWRldl9zZXRfbmFtZSgmZGV2LT5kZXYsICIlMDR4OiUwMng6JTAyeC4lZCIsIHBjaV9kb21haW5fbnIoYnVzKSwKIAkJZGV2LT5idXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwogCWRldi0+Y2xhc3MgPSBnZXRfaW50X3Byb3Aobm9kZSwgImNsYXNzLWNvZGUiLCAwKTsKIAlkZXYtPnJldmlzaW9uID0gZ2V0X2ludF9wcm9wKG5vZGUsICJyZXZpc2lvbi1pZCIsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcGNfa3N5bXMuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHBjX2tzeW1zLmMKaW5kZXggY2Y2YjVhNy4uYThkMDI1MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcGNfa3N5bXMuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BwY19rc3ltcy5jCkBAIC04LDcgKzgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3NjcmVlbl9pbmZvLmg+CiAjaW5jbHVkZSA8bGludXgvdnRfa2Vybi5oPgogI2luY2x1ZGUgPGxpbnV4L252cmFtLmg+Ci0jaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC00Myw2ICs0Miw3IEBACiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CiAjaW5jbHVkZSA8YXNtL3NpZ25hbC5oPgogI2luY2x1ZGUgPGFzbS9kY3IuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKICNpZmRlZiBDT05GSUdfUFBDMzIKIGV4dGVybiB2b2lkIHRyYW5zZmVyX3RvX2hhbmRsZXIodm9pZCk7CkBAIC02OCw2ICs2OCwxMCBAQAogRVhQT1JUX1NZTUJPTChzeXNfc2lncmV0dXJuKTsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorRVhQT1JUX1NZTUJPTChfbWNvdW50KTsKKyNlbmRpZgorCiBFWFBPUlRfU1lNQk9MKHN0cmNweSk7CiBFWFBPUlRfU1lNQk9MKHN0cm5jcHkpOwogRVhQT1JUX1NZTUJPTChzdHJjYXQpOwpAQCAtMTYwLDcgKzE2NCw2IEBACiBFWFBPUlRfU1lNQk9MKHRpbWVyX2ludGVycnVwdCk7CiBFWFBPUlRfU1lNQk9MKGlycV9kZXNjKTsKIEVYUE9SVF9TWU1CT0wodGJfdGlja3NfcGVyX2ppZmZ5KTsKLUVYUE9SVF9TWU1CT0woY29uc29sZV9kcml2ZXJzKTsKIEVYUE9SVF9TWU1CT0woY2FjaGVhYmxlX21lbWNweSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tX2luaXRfY2hlY2suc2ggYi9hcmNoL3Bvd2VycGMva2VybmVsL3Byb21faW5pdF9jaGVjay5zaAppbmRleCAzMTcyOWE5Li4yYzdlOGU4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3Byb21faW5pdF9jaGVjay5zaAorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Byb21faW5pdF9jaGVjay5zaApAQCAtNDgsNiArNDgsMjAgQEAKIAkJZmkKIAlkb25lCiAKKwkjIGlnbm9yZSByZWdpc3RlciBzYXZlL3Jlc3RvcmUgZnVuY2l0b25zCisJaWYgWyAiJHtVTkRFRjowOjl9IiA9ICJfcmVzdGdwcl8iIF07IHRoZW4KKwkJT0s9MQorCWZpCisJaWYgWyAiJHtVTkRFRjowOjExfSIgPSAiX3Jlc3QzMmdwcl8iIF07IHRoZW4KKwkJT0s9MQorCWZpCisJaWYgWyAiJHtVTkRFRjowOjl9IiA9ICJfc2F2ZWdwcl8iIF07IHRoZW4KKwkJT0s9MQorCWZpCisJaWYgWyAiJHtVTkRFRjowOjExfSIgPSAiX3NhdmUzMmdwcl8iIF07IHRoZW4KKwkJT0s9MQorCWZpCisKIAlpZiBbICRPSyAtZXEgMCBdOyB0aGVuCiAJCUVSUk9SPTEKIAkJZWNobyAiRXJyb3I6IEV4dGVybmFsIHN5bWJvbCAnJFVOREVGJyByZWZlcmVuY2VkIiBcCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMKaW5kZXggNTExMmE0YS4uMTllOGZjYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfMzIuYwpAQCAtODEsNyArODEsNyBAQAogICogZnJvbSB0aGUgYWRkcmVzcyB0aGF0IGl0IHdhcyBsaW5rZWQgYXQsIHNvIHdlIG11c3QgdXNlIFJFTE9DL1BUUlJFTE9DCiAgKiB0byBhY2Nlc3Mgc3RhdGljIGRhdGEgKGluY2x1ZGluZyBzdHJpbmdzKS4gIC0tIHBhdWx1cwogICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBlYXJseV9pbml0KHVuc2lnbmVkIGxvbmcgZHRfcHRyKQorbm90cmFjZSB1bnNpZ25lZCBsb25nIF9faW5pdCBlYXJseV9pbml0KHVuc2lnbmVkIGxvbmcgZHRfcHRyKQogewogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gcmVsb2Nfb2Zmc2V0KCk7CiAJc3RydWN0IGNwdV9zcGVjICpzcGVjOwpAQCAtMTExLDcgKzExMSw3IEBACiAgKiBUaGlzIGlzIGNhbGxlZCB2ZXJ5IGVhcmx5IG9uIHRoZSBib290IHByb2Nlc3MsIGFmdGVyIGEgbWluaW1hbAogICogTU1VIGVudmlyb25tZW50IGhhcyBiZWVuIHNldCB1cCBidXQgYmVmb3JlIE1NVV9pbml0IGlzIGNhbGxlZC4KICAqLwotdm9pZCBfX2luaXQgbWFjaGluZV9pbml0KHVuc2lnbmVkIGxvbmcgZHRfcHRyLCB1bnNpZ25lZCBsb25nIHBoeXMpCitub3RyYWNlIHZvaWQgX19pbml0IG1hY2hpbmVfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0ciwgdW5zaWduZWQgbG9uZyBwaHlzKQogewogCS8qIEVuYWJsZSBlYXJseSBkZWJ1Z2dpbmcgaWYgYW55IHNwZWNpZmllZCAoc2VlIHVkYmcuaCkgKi8KIAl1ZGJnX2Vhcmx5X2luaXQoKTsKQEAgLTEzMyw3ICsxMzMsNyBAQAogCiAjaWZkZWYgQ09ORklHX0JPT0tFX1dEVAogLyogQ2hlY2tzIHdkdD14IGFuZCB3ZHRfcGVyaW9kPXh4IGNvbW1hbmQtbGluZSBvcHRpb24gKi8KLWludCBfX2luaXQgZWFybHlfcGFyc2Vfd2R0KGNoYXIgKnApCitub3RyYWNlIGludCBfX2luaXQgZWFybHlfcGFyc2Vfd2R0KGNoYXIgKnApCiB7CiAJaWYgKHAgJiYgc3RybmNtcChwLCAiMCIsIDEpICE9IDApCiAJICAgICAgIGJvb2tlX3dkdF9lbmFibGVkID0gMTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2lnbmFsXzY0LmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NpZ25hbF82NC5jCmluZGV4IGZhZWI4ZjIuLmRhN2MwNTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2lnbmFsXzY0LmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zaWduYWxfNjQuYwpAQCAtODcsNiArODcsNyBAQAogI2lmZGVmIENPTkZJR19BTFRJVkVDCiAJZWxmX3ZycmVnX3QgX191c2VyICp2X3JlZ3MgPSAoZWxmX3ZycmVnX3QgX191c2VyICopKCgodW5zaWduZWQgbG9uZylzYy0+dm14X3Jlc2VydmUgKyAxNSkgJiB+MHhmdWwpOwogI2VuZGlmCisJdW5zaWduZWQgbG9uZyBtc3IgPSByZWdzLT5tc3I7CiAJbG9uZyBlcnIgPSAwOwogCiAJZmx1c2hfZnBfdG9fdGhyZWFkKGN1cnJlbnQpOwpAQCAtMTAyLDcgKzEwMyw3IEBACiAJCS8qIHNldCBNU1JfVkVDIGluIHRoZSBNU1IgdmFsdWUgaW4gdGhlIGZyYW1lIHRvIGluZGljYXRlIHRoYXQgc2MtPnZfcmVnKQogCQkgKiBjb250YWlucyB2YWxpZCBkYXRhLgogCQkgKi8KLQkJcmVncy0+bXNyIHw9IE1TUl9WRUM7CisJCW1zciB8PSBNU1JfVkVDOwogCX0KIAkvKiBXZSBhbHdheXMgY29weSB0by9mcm9tIHZyc2F2ZSwgaXQncyAwIGlmIHdlIGRvbid0IGhhdmUgb3IgZG9uJ3QKIAkgKiB1c2UgYWx0aXZlYy4KQEAgLTExNCw2ICsxMTUsNyBAQAogCWVyciB8PSBfX3B1dF91c2VyKCZzYy0+Z3BfcmVncywgJnNjLT5yZWdzKTsKIAlXQVJOX09OKCFGVUxMX1JFR1MocmVncykpOwogCWVyciB8PSBfX2NvcHlfdG9fdXNlcigmc2MtPmdwX3JlZ3MsIHJlZ3MsIEdQX1JFR1NfU0laRSk7CisJZXJyIHw9IF9fcHV0X3VzZXIobXNyLCAmc2MtPmdwX3JlZ3NbUFRfTVNSXSk7CiAJZXJyIHw9IF9fY29weV90b191c2VyKCZzYy0+ZnBfcmVncywgJmN1cnJlbnQtPnRocmVhZC5mcHIsIEZQX1JFR1NfU0laRSk7CiAJZXJyIHw9IF9fcHV0X3VzZXIoc2lnbnIsICZzYy0+c2lnbmFsKTsKIAllcnIgfD0gX19wdXRfdXNlcihoYW5kbGVyLCAmc2MtPmhhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCA5NjI5NDQwLi4zY2YwZDk0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtMTIsNiArMTIsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zdGFja3RyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgogCiAvKgpAQCAtNDQsMyArNDUsNCBAQAogCQlzcCA9IG5ld3NwOwogCX0KIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHNhdmVfc3RhY2tfdHJhY2UpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28uYwppbmRleCBjMjFhNjI2Li5jZTI0NWE4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Zkc28uYwpAQCAtMTQyLDcgKzE0Miw3IEBACiAJcHJpbnRrKCJrcGc6ICVwIChjOiVkLGY6JTA4bHgpIiwgX192YShwYWdlX3RvX3BmbihwZykgPDwgUEFHRV9TSElGVCksCiAJICAgICAgIHBhZ2VfY291bnQocGcpLAogCSAgICAgICBwZy0+ZmxhZ3MpOwotCWlmICh1cGcvKiAmJiBwZyAhPSB1cGcqLykgeworCWlmICh1cGcgJiYgIUlTX0VSUih1cGcpIC8qICYmIHBnICE9IHVwZyovKSB7CiAJCXByaW50aygiIHVwZzogJXAgKGM6JWQsZjolMDhseCkiLCBfX3ZhKHBhZ2VfdG9fcGZuKHVwZykKIAkJCQkJCSAgICAgICA8PCBQQUdFX1NISUZUKSwKIAkJICAgICAgIHBhZ2VfY291bnQodXBnKSwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCAwYzMwMDBiLi41M2Q1N2QxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC02NCw4ICs2NCw2IEBACiAKIAlOT1RFUwogCi0JQlVHX1RBQkxFCi0KIC8qCiAgKiBJbml0IHNlY3Rpb25zIGRpc2NhcmRlZCBhdCBydW50aW1lCiAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vNDR4X3RsYi5jIGIvYXJjaC9wb3dlcnBjL2t2bS80NHhfdGxiLmMKaW5kZXggZjVkN2E1ZS4uNzVkZmY3YyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2t2bS80NHhfdGxiLmMKKysrIGIvYXJjaC9wb3dlcnBjL2t2bS80NHhfdGxiLmMKQEAgLTExNiw4ICsxMTYsNiBAQAogCXN0cnVjdCB0bGJlICpzdGxiZSA9ICZ2Y3B1LT5hcmNoLnNoYWRvd190bGJbaW5kZXhdOwogCXN0cnVjdCBwYWdlICpwYWdlID0gdmNwdS0+YXJjaC5zaGFkb3dfcGFnZXNbaW5kZXhdOwogCi0Ja3VubWFwKHZjcHUtPmFyY2guc2hhZG93X3BhZ2VzW2luZGV4XSk7Ci0KIAlpZiAoZ2V0X3RsYl92KHN0bGJlKSkgewogCQlpZiAoa3ZtcHBjXzQ0eF90bGJlX2lzX3dyaXRhYmxlKHN0bGJlKSkKIAkJCWt2bV9yZWxlYXNlX3BhZ2VfZGlydHkocGFnZSk7CkBAIC0xNDQsMTggKzE0MiwxOSBAQAogCXN0bGJlID0gJnZjcHUtPmFyY2guc2hhZG93X3RsYlt2aWN0aW1dOwogCiAJLyogR2V0IHJlZmVyZW5jZSB0byBuZXcgcGFnZS4gKi8KLQlkb3duX3dyaXRlKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOworCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAluZXdfcGFnZSA9IGdmbl90b19wYWdlKHZjcHUtPmt2bSwgZ2ZuKTsKIAlpZiAoaXNfZXJyb3JfcGFnZShuZXdfcGFnZSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZG4ndCBnZXQgZ3Vlc3QgcGFnZSFcbiIpOworCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkbid0IGdldCBndWVzdCBwYWdlIGZvciBnZm4gJWx4IVxuIiwgZ2ZuKTsKIAkJa3ZtX3JlbGVhc2VfcGFnZV9jbGVhbihuZXdfcGFnZSk7CisJCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CiAJCXJldHVybjsKIAl9CiAJaHBhZGRyID0gcGFnZV90b19waHlzKG5ld19wYWdlKTsKIAogCS8qIERyb3AgcmVmZXJlbmNlIHRvIG9sZCBwYWdlLiAqLwogCWt2bXBwY180NHhfc2hhZG93X3JlbGVhc2UodmNwdSwgdmljdGltKTsKLQl1cF93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKKwl1cF9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCiAJdmNwdS0+YXJjaC5zaGFkb3dfcGFnZXNbdmljdGltXSA9IG5ld19wYWdlOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2tlX2d1ZXN0LmMgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2tlX2d1ZXN0LmMKaW5kZXggNzEyZDg5YS4uOWM4YWQ4NSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rZV9ndWVzdC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9va2VfZ3Vlc3QuYwpAQCAtMjI3LDM5ICsyMjcsNiBAQAogCX0KIH0KIAotc3RhdGljIGludCBrdm1wcGNfZW11bGF0ZV9tbWlvKHN0cnVjdCBrdm1fcnVuICpydW4sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKLXsKLQllbnVtIGVtdWxhdGlvbl9yZXN1bHQgZXI7Ci0JaW50IHI7Ci0KLQllciA9IGt2bXBwY19lbXVsYXRlX2luc3RydWN0aW9uKHJ1biwgdmNwdSk7Ci0Jc3dpdGNoIChlcikgewotCWNhc2UgRU1VTEFURV9ET05FOgotCQkvKiBGdXR1cmUgb3B0aW1pemF0aW9uOiBvbmx5IHJlbG9hZCBub24tdm9sYXRpbGVzIGlmIHRoZXkgd2VyZQotCQkgKiBhY3R1YWxseSBtb2RpZmllZC4gKi8KLQkJciA9IFJFU1VNRV9HVUVTVF9OVjsKLQkJYnJlYWs7Ci0JY2FzZSBFTVVMQVRFX0RPX01NSU86Ci0JCXJ1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9NTUlPOwotCQkvKiBXZSBtdXN0IHJlbG9hZCBub252b2xhdGlsZXMgYmVjYXVzZSAidXBkYXRlIiBsb2FkL3N0b3JlCi0JCSAqIGluc3RydWN0aW9ucyBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUuICovCi0JCS8qIEZ1dHVyZSBvcHRpbWl6YXRpb246IG9ubHkgcmVsb2FkIG5vbi12b2xhdGlsZXMgaWYgdGhleSB3ZXJlCi0JCSAqIGFjdHVhbGx5IG1vZGlmaWVkLiAqLwotCQlyID0gUkVTVU1FX0hPU1RfTlY7Ci0JCWJyZWFrOwotCWNhc2UgRU1VTEFURV9GQUlMOgotCQkvKiBYWFggRGVsaXZlciBQcm9ncmFtIGludGVycnVwdCB0byBndWVzdC4gKi8KLQkJcHJpbnRrKEtFUk5fRU1FUkcgIiVzOiBlbXVsYXRpb24gZmFpbGVkICglMDh4KVxuIiwgX19mdW5jX18sCi0JCSAgICAgICB2Y3B1LT5hcmNoLmxhc3RfaW5zdCk7Ci0JCXIgPSBSRVNVTUVfSE9TVDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJQlVHKCk7Ci0JfQotCi0JcmV0dXJuIHI7Ci19Ci0KIC8qKgogICoga3ZtcHBjX2hhbmRsZV9leGl0CiAgKgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMgYi9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYwppbmRleCBhMDNmZTBjLi4wMDAwOTc0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYworKysgYi9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYwpAQCAtMjQ2LDYgKzI0NiwxMSBAQAogCWNhc2UgMzE6CiAJCXN3aXRjaCAoZ2V0X3hvcChpbnN0KSkgewogCisJCWNhc2UgMjM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGx3enggKi8KKwkJCXJ0ID0gZ2V0X3J0KGluc3QpOworCQkJZW11bGF0ZWQgPSBrdm1wcGNfaGFuZGxlX2xvYWQocnVuLCB2Y3B1LCBydCwgNCwgMSk7CisJCQlicmVhazsKKwogCQljYXNlIDgzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtZm1zciAqLwogCQkJcnQgPSBnZXRfcnQoaW5zdCk7CiAJCQl2Y3B1LT5hcmNoLmdwcltydF0gPSB2Y3B1LT5hcmNoLm1zcjsKQEAgLTI2Nyw2ICsyNzIsMTMgQEAKIAkJCWt2bXBwY19zZXRfbXNyKHZjcHUsIHZjcHUtPmFyY2guZ3ByW3JzXSk7CiAJCQlicmVhazsKIAorCQljYXNlIDE1MTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdHd4ICovCisJCQlycyA9IGdldF9ycyhpbnN0KTsKKwkJCWVtdWxhdGVkID0ga3ZtcHBjX2hhbmRsZV9zdG9yZShydW4sIHZjcHUsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmNwdS0+YXJjaC5ncHJbcnNdLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDEpOworCQkJYnJlYWs7CisKIAkJY2FzZSAxNjM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd3J0ZWVpICovCiAJCQl2Y3B1LT5hcmNoLm1zciA9ICh2Y3B1LT5hcmNoLm1zciAmIH5NU1JfRUUpCiAJCQkgICAgICAgICAgICAgICAgIHwgKGluc3QgJiBNU1JfRUUpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2xpYi9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9saWIvTWFrZWZpbGUKaW5kZXggYzcxZDM3ZC4uZTUyMmIwNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2xpYi9NYWtlZmlsZQorKysgYi9hcmNoL3Bvd2VycGMvbGliL01ha2VmaWxlCkBAIC05LDcgKzksNyBAQAogaWZlcSAoJChDT05GSUdfUFBDX01FUkdFKSx5KQogb2JqLXkJCQk6PSBzdHJpbmcubyBhbGxvYy5vIFwKIAkJCSAgIGNoZWNrc3VtXyQoQ09ORklHX1dPUkRfU0laRSkubwotb2JqLSQoQ09ORklHX1BQQzMyKQkrPSBkaXY2NC5vIGNvcHlfMzIubworb2JqLSQoQ09ORklHX1BQQzMyKQkrPSBkaXY2NC5vIGNvcHlfMzIubyBjcnRzYXZyZXMubwogb2JqLSQoQ09ORklHX0hBU19JT01FTSkJKz0gZGV2cmVzLm8KIGVuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9saWIvY3J0c2F2cmVzLlMgYi9hcmNoL3Bvd2VycGMvbGliL2NydHNhdnJlcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYTljZDgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMvbGliL2NydHNhdnJlcy5TCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogU3BlY2lhbCBzdXBwb3J0IGZvciBlYWJpIGFuZCBTVlI0CisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTUsIDE5OTYsIDE5OTgsIDIwMDAsIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKiAgIENvcHlyaWdodCAyMDA4IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKiAgIFdyaXR0ZW4gQnkgTWljaGFlbCBNZWlzc25lcgorICoKKyAqIEJhc2VkIG9uIGdjYy9jb25maWcvcnM2MDAwL2NydHNhdnJlcy5hc20gZnJvbSBnY2MKKyAqCisgKiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBwZXJtaXNzaW9ucyBpbiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzIHlvdSB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBsaW5rIHRoZQorICogY29tcGlsZWQgdmVyc2lvbiBvZiB0aGlzIGZpbGUgd2l0aCBvdGhlciBwcm9ncmFtcywgYW5kIHRvIGRpc3RyaWJ1dGUKKyAqIHRob3NlIHByb2dyYW1zIHdpdGhvdXQgYW55IHJlc3RyaWN0aW9uIGNvbWluZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcworICogZmlsZS4gIChUaGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSByZXN0cmljdGlvbnMgZG8gYXBwbHkgaW4gb3RoZXIKKyAqIHJlc3BlY3RzOyBmb3IgZXhhbXBsZSwgdGhleSBjb3ZlciBtb2RpZmljYXRpb24gb2YgdGhlIGZpbGUsIGFuZAorICogZGlzdHJpYnV0aW9uIHdoZW4gbm90IGxpbmtlZCBpbnRvIGFub3RoZXIgcHJvZ3JhbS4pCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqICAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIHlvdSBsaW5rIHRoaXMgbGlicmFyeSB3aXRoIGZpbGVzCisgKiAgICBjb21waWxlZCB3aXRoIEdDQyB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIHRoaXMgZG9lcyBub3QgY2F1c2UKKyAqICAgIHRoZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqICAgIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkKKyAqICAgIHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFzbS9wcGNfYXNtLmg+CisKKwkuZmlsZQkiY3J0c2F2cmVzLlMiCisJLnNlY3Rpb24gIi50ZXh0IgorCisjaWZkZWYgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFCisKKy8qIFJvdXRpbmVzIGZvciBzYXZpbmcgaW50ZWdlciByZWdpc3RlcnMsIGNhbGxlZCBieSB0aGUgY29tcGlsZXIuICAqLworLyogQ2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVyIG9mIHRoZSAqLworLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgc2F2ZSBhcmVhLiAgKi8KKworX0dMT0JBTChfc2F2ZWdwcl8xNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNCkKKwlzdHcJMTQsLTcyKDExKQkvKiBzYXZlIGdwIHJlZ2lzdGVycyAqLworX0dMT0JBTChfc2F2ZWdwcl8xNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNSkKKwlzdHcJMTUsLTY4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNikKK19HTE9CQUwoX3NhdmUzMmdwcl8xNikKKwlzdHcJMTYsLTY0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNykKK19HTE9CQUwoX3NhdmUzMmdwcl8xNykKKwlzdHcJMTcsLTYwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOCkKKwlzdHcJMTgsLTU2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOSkKKwlzdHcJMTksLTUyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMCkKKwlzdHcJMjAsLTQ4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMSkKKwlzdHcJMjEsLTQ0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMikKK19HTE9CQUwoX3NhdmUzMmdwcl8yMikKKwlzdHcJMjIsLTQwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMykKK19HTE9CQUwoX3NhdmUzMmdwcl8yMykKKwlzdHcJMjMsLTM2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNCkKKwlzdHcJMjQsLTMyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNSkKKwlzdHcJMjUsLTI4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNikKK19HTE9CQUwoX3NhdmUzMmdwcl8yNikKKwlzdHcJMjYsLTI0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNykKK19HTE9CQUwoX3NhdmUzMmdwcl8yNykKKwlzdHcJMjcsLTIwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOCkKKwlzdHcJMjgsLTE2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOSkKKwlzdHcJMjksLTEyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8zMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8zMCkKKwlzdHcJMzAsLTgoMTEpCitfR0xPQkFMKF9zYXZlZ3ByXzMxKQorX0dMT0JBTChfc2F2ZTMyZ3ByXzMxKQorCXN0dwkzMSwtNCgxMSkKKwlibHIKKworLyogUm91dGluZXMgZm9yIHJlc3RvcmluZyBpbnRlZ2VyIHJlZ2lzdGVycywgY2FsbGVkIGJ5IHRoZSBjb21waWxlci4gICovCisvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCisvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciByZXN0b3JlIGFyZWEuICAqLworCitfR0xPQkFMKF9yZXN0Z3ByXzE0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE0KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE1KQorCWx3egkxNSwtNjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2KQorCWx3egkxNiwtNjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE3KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE4KQorCWx3egkxOCwtNTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5KQorCWx3egkxOSwtNTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIwKQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIxKQorCWx3egkyMSwtNDQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIyKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyKQorCWx3egkyMiwtNDAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIzKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIzKQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI0KQorCWx3egkyNCwtMzIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1KQorCWx3egkyNSwtMjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI2KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI3KQorCWx3egkyNywtMjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4KQorCWx3egkyOCwtMTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI5KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzMwKQorCWx3egkzMCwtOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMzEpCitfR0xPQkFMKF9yZXN0MzJncHJfMzEpCisJbHd6CTMxLC00KDExKQorCWJscgorCisvKiBSb3V0aW5lcyBmb3IgcmVzdG9yaW5nIGludGVnZXIgcmVnaXN0ZXJzLCBjYWxsZWQgYnkgdGhlIGNvbXBpbGVyLiAgKi8KKy8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBvZiB0aGUgKi8KKy8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHJlc3RvcmUgYXJlYS4gICovCisKK19HTE9CQUwoX3Jlc3RncHJfMTRfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNF94KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMTVfeCkKKwlsd3oJMTUsLTY4KDExKQorX0dMT0JBTChfcmVzdGdwcl8xNl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2X3gpCisJbHd6CTE2LC02NCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMTdfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xN194KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMThfeCkKKwlsd3oJMTgsLTU2KDExKQorX0dMT0JBTChfcmVzdGdwcl8xOV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5X3gpCisJbHd6CTE5LC01MigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjBfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMF94KQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjFfeCkKKwlsd3oJMjEsLTQ0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyX3gpCisJbHd6CTIyLC00MCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjNfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yM194KQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjRfeCkKKwlsd3oJMjQsLTMyKDExKQorX0dMT0JBTChfcmVzdGdwcl8yNV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1X3gpCisJbHd6CTI1LC0yOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjZfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNl94KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjdfeCkKKwlsd3oJMjcsLTIwKDExKQorX0dMT0JBTChfcmVzdGdwcl8yOF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4X3gpCisJbHd6CTI4LC0xNigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjlfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOV94KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzBfeCkKKwlsd3oJMzAsLTgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzFfeCkKKwlsd3oJMCw0KDExKQorCWx3egkzMSwtNCgxMSkKKwltdGxyCTAKKwltcgkxLDExCisJYmxyCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9oYXNoX2xvd182NC5TIGIvYXJjaC9wb3dlcnBjL21tL2hhc2hfbG93XzY0LlMKaW5kZXggMjFkMjQ4NC4uNzBmNGM4MyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL2hhc2hfbG93XzY0LlMKKysrIGIvYXJjaC9wb3dlcnBjL21tL2hhc2hfbG93XzY0LlMKQEAgLTU2OCw2ICs1NjgsMTAgQEAKIAlsZAlyNyxTVEtfUEFSTShyOSkocjEpCS8qIHNzaXplICovCiAJbGQJcjgsU1RLX1BBUk0ocjgpKHIxKQkvKiBsb2NhbCAqLwogCWJsCS5mbHVzaF9oYXNoX3BhZ2UKKwkvKiBDbGVhciBvdXQgX1BBR0VfSFBURV9TVUIgYml0cyBpbiB0aGUgbmV3IGxpbnV4IFBURSAqLworCWxpcwlyMCxfUEFHRV9IUFRFX1NVQkBoCisJb3JpCXIwLHIwLF9QQUdFX0hQVEVfU1VCQGwKKwlhbmRjCXIzMCxyMzAscjAKIAliCWh0YWJfaW5zZXJ0X3B0ZQogCQogaHRhYl9iYWlsX29rOgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL21lbS5jIGIvYXJjaC9wb3dlcnBjL21tL21lbS5jCmluZGV4IGY2N2UxMTguLjUxZjgyZDggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9tZW0uYworKysgYi9hcmNoL3Bvd2VycGMvbW0vbWVtLmMKQEAgLTE1MSw2ICsxNTEsNyBAQAogCXJldHVybiByZXQ7CiB9CiAjZW5kaWYgLyogQ09ORklHX01FTU9SWV9IT1RSRU1PVkUgKi8KKyNlbmRpZiAvKiBDT05GSUdfTUVNT1JZX0hPVFBMVUcgKi8KIAogLyoKICAqIHdhbGtfbWVtb3J5X3Jlc291cmNlKCkgbmVlZHMgdG8gbWFrZSBzdXJlIHRoZXJlIGlzIG5vIGhvbGVzIGluIGEgZ2l2ZW4KQEAgLTE4NCw4ICsxODUsNiBAQAogfQogRVhQT1JUX1NZTUJPTF9HUEwod2Fsa19tZW1vcnlfcmVzb3VyY2UpOwogCi0jZW5kaWYgLyogQ09ORklHX01FTU9SWV9IT1RQTFVHICovCi0KIHZvaWQgc2hvd19tZW0odm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsID0gMCwgcmVzZXJ2ZWQgPSAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81Mnh4L2xpdGU1MjAwX3BtLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYwppbmRleCA0MWM3ZmQ5Li5mZTkyZTY1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYwpAQCAtMTQsNiArMTQsNyBAQAogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X3hsYiBfX2lvbWVtICp4bGI7CiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfZ3BpbyBfX2lvbWVtICpncHM7CiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwIF9faW9tZW0gKmdwdzsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKnBjaTsKIHN0YXRpYyB2b2lkIF9faW9tZW0gKnNyYW07CiBzdGF0aWMgY29uc3QgaW50IHNyYW1fc2l6ZSA9IDB4NDAwMDsJLyogMTYga0J5dGVzICovCiBzdGF0aWMgdm9pZCBfX2lvbWVtICptYmFyOwpAQCAtNTAsNiArNTEsOCBAQAogCQl7IC50eXBlID0gImJ1aWx0aW4iLCAuY29tcGF0aWJsZSA9ICJtcGM1MjAwIiwgfSwgLyogZWZpa2EgKi8KIAkJe30KIAl9OworCXU2NCByZWdhZGRyNjQgPSAwOworCWNvbnN0IHUzMiAqcmVnYWRkcl9wOwogCiAJLyogZGVlcCBzbGVlcD8gbGV0IG1wYzUyeHggY29kZSBoYW5kbGUgdGhhdCAqLwogCWlmIChsaXRlNTIwMF9wbV90YXJnZXRfc3RhdGUgPT0gUE1fU1VTUEVORF9TVEFOREJZKQpAQCAtNjAsOCArNjMsMTIgQEAKIAogCS8qIG1hcCByZWdpc3RlcnMgKi8KIAlucCA9IG9mX2ZpbmRfbWF0Y2hpbmdfbm9kZShOVUxMLCBpbW1yX2lkcyk7Ci0JbWJhciA9IG9mX2lvbWFwKG5wLCAwKTsKKwlyZWdhZGRyX3AgPSBvZl9nZXRfYWRkcmVzcyhucCwgMCwgTlVMTCwgTlVMTCk7CisJaWYgKHJlZ2FkZHJfcCkKKwkJcmVnYWRkcjY0ID0gb2ZfdHJhbnNsYXRlX2FkZHJlc3MobnAsIHJlZ2FkZHJfcCk7CiAJb2Zfbm9kZV9wdXQobnApOworCisJbWJhciA9IGlvcmVtYXAoKHUzMikgcmVnYWRkcjY0LCAweEMwMDApOwogCWlmICghbWJhcikgewogCQlwcmludGsoS0VSTl9FUlIgIiVzOiVpIEVycm9yIG1hcHBpbmcgcmVnaXN0ZXJzXG4iLCBfX2Z1bmNfXywgX19MSU5FX18pOwogCQlyZXR1cm4gLUVOT1NZUzsKQEAgLTcxLDYgKzc4LDcgQEAKIAlwaWMgPSBtYmFyICsgMHg1MDA7CiAJZ3BzID0gbWJhciArIDB4YjAwOwogCWdwdyA9IG1iYXIgKyAweGMwMDsKKwlwY2kgPSBtYmFyICsgMHhkMDA7CiAJYmVzID0gbWJhciArIDB4MTIwMDsKIAl4bGIgPSBtYmFyICsgMHgxZjAwOwogCXNyYW0gPSBtYmFyICsgMHg4MDAwOwpAQCAtODUsNiArOTMsNyBAQAogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X3hsYiBzeGxiOwogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X2dwaW8gc2dwczsKIHN0YXRpYyBzdHJ1Y3QgbXBjNTJ4eF9ncGlvX3drdXAgc2dwdzsKK3N0YXRpYyBjaGFyIHNwY2lbMHgyMDBdOwogCiBzdGF0aWMgdm9pZCBsaXRlNTIwMF9zYXZlX3JlZ3Modm9pZCkKIHsKQEAgLTk0LDYgKzEwMyw3IEBACiAJX21lbWNweV9mcm9taW8oJnN4bGIsIHhsYiwgc2l6ZW9mKCp4bGIpKTsKIAlfbWVtY3B5X2Zyb21pbygmc2dwcywgZ3BzLCBzaXplb2YoKmdwcykpOwogCV9tZW1jcHlfZnJvbWlvKCZzZ3B3LCBncHcsIHNpemVvZigqZ3B3KSk7CisJX21lbWNweV9mcm9taW8oc3BjaSwgcGNpLCAweDIwMCk7CiAKIAlfbWVtY3B5X2Zyb21pbyhzYXZlZF9zcmFtLCBzcmFtLCBzcmFtX3NpemUpOwogfQpAQCAtMTAzLDYgKzExMyw4IEBACiAJaW50IGk7CiAJX21lbWNweV90b2lvKHNyYW0sIHNhdmVkX3NyYW0sIHNyYW1fc2l6ZSk7CiAKKwkvKiBQQ0kgQ29uZmlndXJhdGlvbiAqLworCV9tZW1jcHlfdG9pbyhwY2ksIHNwY2ksIDB4MjAwKTsKIAogCS8qCiAJICogR1BJT3MuIEludGVycnVwdCBNYXN0ZXIgRW5hYmxlIGhhcyBoaWdoZXIgYWRkcmVzcyB0aGVuIG90aGVyCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9LY29uZmlnCmluZGV4IDdmZjI5ZDUuLmVjYmU1ODAgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9LY29uZmlnCkBAIC0zNCw2ICszNCw3IEBACiAJYm9vbCAiRnJlZXNjYWxlIE1QQzg1eHggTURTIgogCXNlbGVjdCBERUZBVUxUX1VJTUFHRQogCXNlbGVjdCBRVUlDQ19FTkdJTkUKKwlzZWxlY3QgUEhZTElCCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgTVBDODV4eCBNRFMgYm9hcmQKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdV9iYXNlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1X2Jhc2UuYwppbmRleCA3MGM2NjAxLi43OGY5MDViIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1X2Jhc2UuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1X2Jhc2UuYwpAQCAtMjE5LDE1ICsyMTksMjUgQEAKIGV4dGVybiBpbnQgaGFzaF9wYWdlKHVuc2lnbmVkIGxvbmcgZWEsIHVuc2lnbmVkIGxvbmcgYWNjZXNzLCB1bnNpZ25lZCBsb25nIHRyYXApOyAvL1hYWAogc3RhdGljIGludCBfX3NwdV90cmFwX2RhdGFfbWFwKHN0cnVjdCBzcHUgKnNwdSwgdW5zaWduZWQgbG9uZyBlYSwgdTY0IGRzaXNyKQogeworCWludCByZXQ7CisKIAlwcl9kZWJ1ZygiJXMsICVseCwgJWx4XG4iLCBfX2Z1bmNfXywgZHNpc3IsIGVhKTsKIAotCS8qIEhhbmRsZSBrZXJuZWwgc3BhY2UgaGFzaCBmYXVsdHMgaW1tZWRpYXRlbHkuCi0JICAgVXNlciBoYXNoIGZhdWx0cyBuZWVkIHRvIGJlIGRlZmVycmVkIHRvIHByb2Nlc3MgY29udGV4dC4gKi8KLQlpZiAoKGRzaXNyICYgTUZDX0RTSVNSX1BURV9OT1RfRk9VTkQpCi0JICAgICYmIFJFR0lPTl9JRChlYSkgIT0gVVNFUl9SRUdJT05fSUQKLQkgICAgJiYgaGFzaF9wYWdlKGVhLCBfUEFHRV9QUkVTRU5ULCAweDMwMCkgPT0gMCkgewotCQlzcHVfcmVzdGFydF9kbWEoc3B1KTsKLQkJcmV0dXJuIDA7CisJLyoKKwkgKiBIYW5kbGUga2VybmVsIHNwYWNlIGhhc2ggZmF1bHRzIGltbWVkaWF0ZWx5LiBVc2VyIGhhc2gKKwkgKiBmYXVsdHMgbmVlZCB0byBiZSBkZWZlcnJlZCB0byBwcm9jZXNzIGNvbnRleHQuCisJICovCisJaWYgKChkc2lzciAmIE1GQ19EU0lTUl9QVEVfTk9UX0ZPVU5EKSAmJgorCSAgICAoUkVHSU9OX0lEKGVhKSAhPSBVU0VSX1JFR0lPTl9JRCkpIHsKKworCQlzcGluX3VubG9jaygmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKKwkJcmV0ID0gaGFzaF9wYWdlKGVhLCBfUEFHRV9QUkVTRU5ULCAweDMwMCk7CisJCXNwaW5fbG9jaygmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKKworCQlpZiAoIXJldCkgeworCQkJc3B1X3Jlc3RhcnRfZG1hKHNwdSk7CisJCQlyZXR1cm4gMDsKKwkJfQogCX0KIAogCXNwdS0+Y2xhc3NfMV9kYXIgPSBlYTsKQEAgLTMyNCwxNyArMzM0LDEzIEBACiAJc3RhdCA9IHNwdV9pbnRfc3RhdF9nZXQoc3B1LCAwKSAmIG1hc2s7CiAKIAlzcHUtPmNsYXNzXzBfcGVuZGluZyB8PSBzdGF0OwotCXNwdS0+Y2xhc3NfMF9kc2lzciA9IHNwdV9tZmNfZHNpc3JfZ2V0KHNwdSk7CiAJc3B1LT5jbGFzc18wX2RhciA9IHNwdV9tZmNfZGFyX2dldChzcHUpOwotCXNwaW5fdW5sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOwotCiAJc3B1LT5zdG9wX2NhbGxiYWNrKHNwdSwgMCk7Ci0KIAlzcHUtPmNsYXNzXzBfcGVuZGluZyA9IDA7Ci0Jc3B1LT5jbGFzc18wX2RzaXNyID0gMDsKIAlzcHUtPmNsYXNzXzBfZGFyID0gMDsKIAogCXNwdV9pbnRfc3RhdF9jbGVhcihzcHUsIDAsIHN0YXQpOworCXNwaW5fdW5sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOwogCiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQpAQCAtMzU3LDEzICszNjMsMTIgQEAKIAkJc3B1X21mY19kc2lzcl9zZXQoc3B1LCAwdWwpOwogCXNwdV9pbnRfc3RhdF9jbGVhcihzcHUsIDEsIHN0YXQpOwogCi0JaWYgKHN0YXQgJiBDTEFTUzFfU0VHTUVOVF9GQVVMVF9JTlRSKQotCQlfX3NwdV90cmFwX2RhdGFfc2VnKHNwdSwgZGFyKTsKLQotCXNwaW5fdW5sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOwogCXByX2RlYnVnKCIlczogJWx4ICVseCAlbHggJWx4XG4iLCBfX2Z1bmNfXywgbWFzaywgc3RhdCwKIAkJCWRhciwgZHNpc3IpOwogCisJaWYgKHN0YXQgJiBDTEFTUzFfU0VHTUVOVF9GQVVMVF9JTlRSKQorCQlfX3NwdV90cmFwX2RhdGFfc2VnKHNwdSwgZGFyKTsKKwogCWlmIChzdGF0ICYgQ0xBU1MxX1NUT1JBR0VfRkFVTFRfSU5UUikKIAkJX19zcHVfdHJhcF9kYXRhX21hcChzcHUsIGRhciwgZHNpc3IpOwogCkBAIC0zNzYsNiArMzgxLDggQEAKIAlzcHUtPmNsYXNzXzFfZHNpc3IgPSAwOwogCXNwdS0+Y2xhc3NfMV9kYXIgPSAwOwogCisJc3Bpbl91bmxvY2soJnNwdS0+cmVnaXN0ZXJfbG9jayk7CisKIAlyZXR1cm4gc3RhdCA/IElSUV9IQU5ETEVEIDogSVJRX05PTkU7CiB9CiAKQEAgLTM5NCwxNCArNDAxLDEyIEBACiAJbWFzayA9IHNwdV9pbnRfbWFza19nZXQoc3B1LCAyKTsKIAkvKiBpZ25vcmUgaW50ZXJydXB0cyB3ZSdyZSBub3Qgd2FpdGluZyBmb3IgKi8KIAlzdGF0ICY9IG1hc2s7Ci0KIAkvKiBtYWlsYm94IGludGVycnVwdHMgYXJlIGxldmVsIHRyaWdnZXJlZC4gbWFzayB0aGVtIG5vdyBiZWZvcmUKIAkgKiBhY2tub3dsZWRnaW5nICovCiAJaWYgKHN0YXQgJiBtYWlsYm94X2ludHJzKQogCQlzcHVfaW50X21hc2tfYW5kKHNwdSwgMiwgfihzdGF0ICYgbWFpbGJveF9pbnRycykpOwogCS8qIGFja25vd2xlZGdlIGFsbCBpbnRlcnJ1cHRzIGJlZm9yZSB0aGUgY2FsbGJhY2tzICovCiAJc3B1X2ludF9zdGF0X2NsZWFyKHNwdSwgMiwgc3RhdCk7Ci0Jc3Bpbl91bmxvY2soJnNwdS0+cmVnaXN0ZXJfbG9jayk7CiAKIAlwcl9kZWJ1ZygiY2xhc3MgMiBpbnRlcnJ1cHQgJWQsICVseCwgJWx4XG4iLCBpcnEsIHN0YXQsIG1hc2spOwogCkBAIC00MjEsNiArNDI2LDkgQEAKIAkJc3B1LT53Ym94X2NhbGxiYWNrKHNwdSk7CiAKIAlzcHUtPnN0YXRzLmNsYXNzMl9pbnRyKys7CisKKwlzcGluX3VubG9jaygmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKKwogCXJldHVybiBzdGF0ID8gSVJRX0hBTkRMRUQgOiBJUlFfTk9ORTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL3J1bi5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL3J1bi5jCmluZGV4IGI3NDkzYjguLmY3ZWRiYTYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9ydW4uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvcnVuLmMKQEAgLTI3LDcgKzI3LDYgQEAKIAkJc3dpdGNoKGlycSkgewogCQljYXNlIDAgOgogCQkJY3R4LT5jc2EuY2xhc3NfMF9wZW5kaW5nID0gc3B1LT5jbGFzc18wX3BlbmRpbmc7Ci0JCQljdHgtPmNzYS5jbGFzc18wX2RzaXNyID0gc3B1LT5jbGFzc18wX2RzaXNyOwogCQkJY3R4LT5jc2EuY2xhc3NfMF9kYXIgPSBzcHUtPmNsYXNzXzBfZGFyOwogCQkJYnJlYWs7CiAJCWNhc2UgMSA6CkBAIC01MSwxOCArNTAsMjIgQEAKIAl1NjQgZHNpc3I7CiAJdTMyIHN0b3BwZWQ7CiAKLQkqc3RhdCA9IGN0eC0+b3BzLT5zdGF0dXNfcmVhZChjdHgpOwotCi0JaWYgKHRlc3RfYml0KFNQVV9TQ0hFRF9OT1RJRllfQUNUSVZFLCAmY3R4LT5zY2hlZF9mbGFncykpCi0JCXJldHVybiAxOwotCiAJc3RvcHBlZCA9IFNQVV9TVEFUVVNfSU5WQUxJRF9JTlNUUiB8IFNQVV9TVEFUVVNfU0lOR0xFX1NURVAgfAogCQlTUFVfU1RBVFVTX1NUT1BQRURfQllfSEFMVCB8IFNQVV9TVEFUVVNfU1RPUFBFRF9CWV9TVE9QOwotCWlmICghKCpzdGF0ICYgU1BVX1NUQVRVU19SVU5OSU5HKSAmJiAoKnN0YXQgJiBzdG9wcGVkKSkKLQkJcmV0dXJuIDE7CiAKLQlkc2lzciA9IGN0eC0+Y3NhLmNsYXNzXzBfZHNpc3I7Ci0JaWYgKGRzaXNyICYgKE1GQ19EU0lTUl9QVEVfTk9UX0ZPVU5EIHwgTUZDX0RTSVNSX0FDQ0VTU19ERU5JRUQpKQordG9wOgorCSpzdGF0ID0gY3R4LT5vcHMtPnN0YXR1c19yZWFkKGN0eCk7CisJaWYgKCpzdGF0ICYgc3RvcHBlZCkgeworCQkvKgorCQkgKiBJZiB0aGUgc3B1IGhhc24ndCBmaW5pc2hlZCBzdG9wcGluZywgd2UgbmVlZCB0bworCQkgKiByZS1yZWFkIHRoZSByZWdpc3RlciB0byBnZXQgdGhlIHN0b3BwZWQgdmFsdWUuCisJCSAqLworCQlpZiAoKnN0YXQgJiBTUFVfU1RBVFVTX1JVTk5JTkcpCisJCQlnb3RvIHRvcDsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHRlc3RfYml0KFNQVV9TQ0hFRF9OT1RJRllfQUNUSVZFLCAmY3R4LT5zY2hlZF9mbGFncykpCiAJCXJldHVybiAxOwogCiAJZHNpc3IgPSBjdHgtPmNzYS5jbGFzc18xX2RzaXNyOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL3NjaGVkLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvc2NoZWQuYwppbmRleCA3NDVkZDUxLi5lOTI5ZTcwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvc2NoZWQuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvc2NoZWQuYwpAQCAtMjMwLDE5ICsyMzAsMjMgQEAKIAljdHgtPnN0YXRzLnNsYl9mbHRfYmFzZSA9IHNwdS0+c3RhdHMuc2xiX2ZsdDsKIAljdHgtPnN0YXRzLmNsYXNzMl9pbnRyX2Jhc2UgPSBzcHUtPnN0YXRzLmNsYXNzMl9pbnRyOwogCisJc3B1X2Fzc29jaWF0ZV9tbShzcHUsIGN0eC0+b3duZXIpOworCisJc3Bpbl9sb2NrX2lycSgmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKIAlzcHUtPmN0eCA9IGN0eDsKIAlzcHUtPmZsYWdzID0gMDsKIAljdHgtPnNwdSA9IHNwdTsKIAljdHgtPm9wcyA9ICZzcHVfaHdfb3BzOwogCXNwdS0+cGlkID0gY3VycmVudC0+cGlkOwogCXNwdS0+dGdpZCA9IGN1cnJlbnQtPnRnaWQ7Ci0Jc3B1X2Fzc29jaWF0ZV9tbShzcHUsIGN0eC0+b3duZXIpOwogCXNwdS0+aWJveF9jYWxsYmFjayA9IHNwdWZzX2lib3hfY2FsbGJhY2s7CiAJc3B1LT53Ym94X2NhbGxiYWNrID0gc3B1ZnNfd2JveF9jYWxsYmFjazsKIAlzcHUtPnN0b3BfY2FsbGJhY2sgPSBzcHVmc19zdG9wX2NhbGxiYWNrOwogCXNwdS0+bWZjX2NhbGxiYWNrID0gc3B1ZnNfbWZjX2NhbGxiYWNrOwotCW1iKCk7CisJc3Bpbl91bmxvY2tfaXJxKCZzcHUtPnJlZ2lzdGVyX2xvY2spOworCiAJc3B1X3VubWFwX21hcHBpbmdzKGN0eCk7CisKIAlzcHVfc3dpdGNoX2xvZ19ub3RpZnkoc3B1LCBjdHgsIFNXSVRDSF9MT0dfU1RBUlQsIDApOwogCXNwdV9yZXN0b3JlKCZjdHgtPmNzYSwgc3B1KTsKIAlzcHUtPnRpbWVzdGFtcCA9IGppZmZpZXM7CkBAIC00MDMsNiArNDA3LDggQEAKICAqLwogc3RhdGljIHZvaWQgc3B1X3VuYmluZF9jb250ZXh0KHN0cnVjdCBzcHUgKnNwdSwgc3RydWN0IHNwdV9jb250ZXh0ICpjdHgpCiB7CisJdTMyIHN0YXR1czsKKwogCXNwdV9jb250ZXh0X3RyYWNlKHNwdV91bmJpbmRfY29udGV4dF9fZW50ZXIsIGN0eCwgc3B1KTsKIAogCXNwdWN0eF9zd2l0Y2hfc3RhdGUoY3R4LCBTUFVfVVRJTF9TWVNURU0pOwpAQCAtNDIzLDE4ICs0MjksMjIgQEAKIAlzcHVfdW5tYXBfbWFwcGluZ3MoY3R4KTsKIAlzcHVfc2F2ZSgmY3R4LT5jc2EsIHNwdSk7CiAJc3B1X3N3aXRjaF9sb2dfbm90aWZ5KHNwdSwgY3R4LCBTV0lUQ0hfTE9HX1NUT1AsIDApOworCisJc3Bpbl9sb2NrX2lycSgmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKIAlzcHUtPnRpbWVzdGFtcCA9IGppZmZpZXM7CiAJY3R4LT5zdGF0ZSA9IFNQVV9TVEFURV9TQVZFRDsKIAlzcHUtPmlib3hfY2FsbGJhY2sgPSBOVUxMOwogCXNwdS0+d2JveF9jYWxsYmFjayA9IE5VTEw7CiAJc3B1LT5zdG9wX2NhbGxiYWNrID0gTlVMTDsKIAlzcHUtPm1mY19jYWxsYmFjayA9IE5VTEw7Ci0Jc3B1X2Fzc29jaWF0ZV9tbShzcHUsIE5VTEwpOwogCXNwdS0+cGlkID0gMDsKIAlzcHUtPnRnaWQgPSAwOwogCWN0eC0+b3BzID0gJnNwdV9iYWNraW5nX29wczsKIAlzcHUtPmZsYWdzID0gMDsKIAlzcHUtPmN0eCA9IE5VTEw7CisJc3Bpbl91bmxvY2tfaXJxKCZzcHUtPnJlZ2lzdGVyX2xvY2spOworCisJc3B1X2Fzc29jaWF0ZV9tbShzcHUsIE5VTEwpOwogCiAJY3R4LT5zdGF0cy5zbGJfZmx0ICs9CiAJCShzcHUtPnN0YXRzLnNsYl9mbHQgLSBjdHgtPnN0YXRzLnNsYl9mbHRfYmFzZSk7CkBAIC00NDQsNiArNDU0LDkgQEAKIAkvKiBUaGlzIG1hcHMgdGhlIHVuZGVybHlpbmcgc3B1IHN0YXRlIHRvIGlkbGUgKi8KIAlzcHVjdHhfc3dpdGNoX3N0YXRlKGN0eCwgU1BVX1VUSUxfSURMRV9MT0FERUQpOwogCWN0eC0+c3B1ID0gTlVMTDsKKworCWlmIChzcHVfc3RvcHBlZChjdHgsICZzdGF0dXMpKQorCQl3YWtlX3VwX2FsbCgmY3R4LT5zdG9wX3dxKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9NYWtlZmlsZQppbmRleCA0ZDcyYzhmLi44OTc3NDE3IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvTWFrZWZpbGUKQEAgLTEsNSArMSwxMCBAQAogQ0ZMQUdTX2Jvb3R4X2luaXQubyAgCQkrPSAtZlBJQwogCitpZmRlZiBDT05GSUdfRlRSQUNFCisjIERvIG5vdCB0cmFjZSBlYXJseSBib290IGNvZGUKK0NGTEFHU19SRU1PVkVfYm9vdHhfaW5pdC5vID0gLXBnCitlbmRpZgorCiBvYmoteQkJCQkrPSBwaWMubyBzZXR1cC5vIHRpbWUubyBmZWF0dXJlLm8gcGNpLm8gXAogCQkJCSAgIHNsZWVwLm8gbG93X2kyYy5vIGNhY2hlLm8gcGZ1bmNfY29yZS5vIFwKIAkJCQkgICBwZnVuY19iYXNlLm8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9lZWhfZHJpdmVyLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZWVoX2RyaXZlci5jCmluZGV4IDY4ZWE1ZWUuLjhjMWNhNDcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9lZWhfZHJpdmVyLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaF9kcml2ZXIuYwpAQCAtNDIsMTcgKzQyLDIwIEBACiB9CiAKICNpZmRlZiBERUJVRwotc3RhdGljIHZvaWQgcHJpbnRfZGV2aWNlX25vZGVfdHJlZSAoc3RydWN0IHBjaV9kbiAqcGRuLCBpbnQgZGVudCkKK3N0YXRpYyB2b2lkIHByaW50X2RldmljZV9ub2RlX3RyZWUoc3RydWN0IHBjaV9kbiAqcGRuLCBpbnQgZGVudCkKIHsKIAlpbnQgaTsKLQlpZiAoIXBkbikgcmV0dXJuOwotCWZvciAoaT0wO2k8ZGVudDsgaSsrKQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGM7CisKKwlpZiAoIXBkbikKKwkJcmV0dXJuOworCWZvciAoaSA9IDA7IGkgPCBkZW50OyBpKyspCiAJCXByaW50aygiICIpOwogCXByaW50aygiZG49JXMgbW9kZT0leCBcdGNmZ19hZGRyPSV4IHBlX2FkZHI9JXggXHRmdWxsPSVzXG4iLAogCQlwZG4tPm5vZGUtPm5hbWUsIHBkbi0+ZWVoX21vZGUsIHBkbi0+ZWVoX2NvbmZpZ19hZGRyLAogCQlwZG4tPmVlaF9wZV9jb25maWdfYWRkciwgcGRuLT5ub2RlLT5mdWxsX25hbWUpOwogCWRlbnQgKz0gMzsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBjID0gcGRuLT5ub2RlLT5jaGlsZDsKKwlwYyA9IHBkbi0+bm9kZS0+Y2hpbGQ7CiAJd2hpbGUgKHBjKSB7CiAJCXByaW50X2RldmljZV9ub2RlX3RyZWUoUENJX0ROKHBjKSwgZGVudCk7CiAJCXBjID0gcGMtPnNpYmxpbmc7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbnZyYW0uYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCmluZGV4IGY2ODkwM2UuLjQyZjdlMzggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCkBAIC0xMzEsOCArMTMxLDEwIEBACiAJCXJldHVybiAtRU5PREVWOwogCiAJbmJ5dGVzX3AgPSBvZl9nZXRfcHJvcGVydHkobnZyYW0sICIjYnl0ZXMiLCAmcHJvcGxlbik7Ci0JaWYgKG5ieXRlc19wID09IE5VTEwgfHwgcHJvcGxlbiAhPSBzaXplb2YodW5zaWduZWQgaW50KSkKKwlpZiAobmJ5dGVzX3AgPT0gTlVMTCB8fCBwcm9wbGVuICE9IHNpemVvZih1bnNpZ25lZCBpbnQpKSB7CisJCW9mX25vZGVfcHV0KG52cmFtKTsKIAkJcmV0dXJuIC1FSU87CisJfQogCiAJbnZyYW1fc2l6ZSA9ICpuYnl0ZXNfcDsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3htb24veG1vbi5jIGIvYXJjaC9wb3dlcnBjL3htb24veG1vbi5jCmluZGV4IDE3MDJkZTkuLmJmY2Y3MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy94bW9uL3htb24uYworKysgYi9hcmNoL3Bvd2VycGMveG1vbi94bW9uLmMKQEAgLTI4NDQsNyArMjg0NCw2IEBACiAJRFVNUF9GSUVMRChzcHUsICIweCVseCIsIGZsYWdzKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIiVkIiwgY2xhc3NfMF9wZW5kaW5nKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgY2xhc3NfMF9kYXIpOwotCURVTVBfRklFTEQoc3B1LCAiMHglbHgiLCBjbGFzc18wX2RzaXNyKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgY2xhc3NfMV9kYXIpOwogCURVTVBfRklFTEQoc3B1LCAiMHglbHgiLCBjbGFzc18xX2RzaXNyKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgaXJxc1swXSk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvS2NvbmZpZyBiL2FyY2gvczM5MC9LY29uZmlnCmluZGV4IDkzYWNiM2MuLjVkYzhmODAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9LY29uZmlnCisrKyBiL2FyY2gvczM5MC9LY29uZmlnCkBAIC0xNDYsNiArMTQ2LDcgQEAKIGNvbmZpZyBDT01QQVQKIAlib29sICJLZXJuZWwgc3VwcG9ydCBmb3IgMzEgYml0IGVtdWxhdGlvbiIKIAlkZXBlbmRzIG9uIDY0QklUCisJc2VsZWN0IENPTVBBVF9CSU5GTVRfRUxGCiAJaGVscAogCSAgU2VsZWN0IHRoaXMgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGVuYWJsZSB5b3VyIHN5c3RlbSBrZXJuZWwgdG8KIAkgIGhhbmRsZSBzeXN0ZW0tY2FsbHMgZnJvbSBFTEYgYmluYXJpZXMgZm9yIDMxIGJpdCBFU0EuICBUaGlzIG9wdGlvbgpAQCAtMzA0LDYgKzMwNSw3IEBACiAJZGVmX2Jvb2wgeQogCXNlbGVjdCBTUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUKIAlzZWxlY3QgU1BBUlNFTUVNX1ZNRU1NQVAKKwlzZWxlY3QgU1BBUlNFTUVNX1NUQVRJQyBpZiAhNjRCSVQKIAogY29uZmlnIEFSQ0hfU1BBUlNFTUVNX0RFRkFVTFQKIAlkZWZfYm9vbCB5CkBAIC0zMTEsNiArMzEzLDEwIEBACiBjb25maWcgQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMCiAgICAgICAgZGVmX2Jvb2wgeQogCitjb25maWcgQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUcKKwlkZWZfYm9vbCB5CisJZGVwZW5kcyBvbiBTUEFSU0VNRU0KKwogc291cmNlICJtbS9LY29uZmlnIgogCiBjb21tZW50ICJJL08gc3Vic3lzdGVtIGNvbmZpZ3VyYXRpb24iCkBAIC0zNDMsNiArMzQ5LDIyIEBACiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBDSFNDX1NDSAorCXRyaXN0YXRlICJTdXBwb3J0IGZvciBDSFNDIHN1YmNoYW5uZWxzIgorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIGFsbG93cyB1c2FnZSBvZiBDSFNDIHN1YmNoYW5uZWxzLiBBIENIU0Mgc3ViY2hhbm5lbAorCSAgaXMgdXN1YWxseSBwcmVzZW50IG9uIExQQVIgb25seS4KKwkgIFRoZSBkcml2ZXIgY3JlYXRlcyBhIGRldmljZSAvZGV2L2Noc2MsIHdoaWNoIG1heSBiZSB1c2VkIHRvCisJICBvYnRhaW4gSS9PIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1hY2hpbmUgYW5kCisJICB0byBpc3N1ZSBhc3luY2hyb25vdXMgY2hzYyBjb21tYW5kcyAoREFOR0VST1VTKS4KKwkgIFlvdSB3aWxsIHVzdWFsbHkgb25seSB3YW50IHRvIHVzZSB0aGlzIGludGVyZmFjZSBvbiBhIHNwZWNpYWwKKwkgIExQQVIgZGVzaWduYXRlZCBmb3Igc3lzdGVtIG1hbmFnZW1lbnQuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGNoc2Nfc2NoLgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCiBjb21tZW50ICJNaXNjIgogCiBjb25maWcgSVBMCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGEuaCBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oCmluZGV4IGRiM2FlODUuLjE3YTI2MzYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oCkBAIC0zLDEzICszLDExIEBACiAgKgogICogRGVmaW5pdGlvbnMgYW5kIGludGVyZmFjZSBmb3IgTGludXggLSB6L1ZNIE1vbml0b3IgU3RyZWFtLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwMywyMDA2IElCTSBDb3Jwb3JhdGlvbiwgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkguCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDMsIDIwMDgKICAqCiAgKiBBdXRob3I6IEdlcmFsZCBTY2hhZWZlciA8Z2VyYWxkLnNjaGFlZmVyQGRlLmlibS5jb20+CiAgKi8KIAotLy8jZGVmaW5lIEFQUExEQVRBX0RFQlVHCQkJLyogRGVidWcgbWVzc2FnZXMgb24vb2ZmICovCi0KICNkZWZpbmUgQVBQTERBVEFfTUFYX1JFQ19TSVpFCSAgNDAyNAkvKiBNYXhpbXVtIHNpemUgb2YgdGhlICovCiAJCQkJCS8qIGRhdGEgYnVmZmVyICovCiAjZGVmaW5lIEFQUExEQVRBX01BWF9QUk9DUyAxMDAKQEAgLTMyLDEyICszMCw2IEBACiAjZGVmaW5lIFBfRVJST1IoeC4uLikJcHJpbnRrKEtFUk5fRVJSIE1ZX1BSSU5UX05BTUUgIiBlcnJvcjogIiB4KQogI2RlZmluZSBQX1dBUk5JTkcoeC4uLikJcHJpbnRrKEtFUk5fV0FSTklORyBNWV9QUklOVF9OQU1FICIgc3RhdHVzOiAiIHgpCiAKLSNpZmRlZiBBUFBMREFUQV9ERUJVRwotI2RlZmluZSBQX0RFQlVHKHguLi4pICAgcHJpbnRrKEtFUk5fREVCVUcgTVlfUFJJTlRfTkFNRSAiIGRlYnVnOiAiIHgpCi0jZWxzZQotI2RlZmluZSBQX0RFQlVHKHguLi4pICAgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLQogc3RydWN0IGFwcGxkYXRhX29wcyB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogCXN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpzeXNjdGxfaGVhZGVyOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9iYXNlLmMKaW5kZXggYWQ0MDcyOS4uOWNiM2Q5MiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCkBAIC01LDcgKzUsNyBAQAogICogRXhwb3J0cyBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoKSBhbmQgYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMoKSBmb3IgdGhlCiAgKiBkYXRhIGdhdGhlcmluZyBtb2R1bGVzLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwMywyMDA2IElCTSBDb3Jwb3JhdGlvbiwgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkguCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDMsIDIwMDgKICAqCiAgKiBBdXRob3I6IEdlcmFsZCBTY2hhZWZlciA8Z2VyYWxkLnNjaGFlZmVyQGRlLmlibS5jb20+CiAgKi8KQEAgLTEwOCw5ICsxMDgsNiBAQAogICovCiBzdGF0aWMgdm9pZCBhcHBsZGF0YV90aW1lcl9mdW5jdGlvbih1bnNpZ25lZCBsb25nIGRhdGEpCiB7Ci0JUF9ERUJVRygiICAgLT0gVGltZXIgPS1cbiIpOwotCVBfREVCVUcoIkNQVTogJWksIGV4cGlyZV9jb3VudDogJWlcbiIsIHNtcF9wcm9jZXNzb3JfaWQoKSwKLQkJYXRvbWljX3JlYWQoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCkpOwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcHBsZGF0YV9leHBpcmVfY291bnQpKSB7CiAJCWF0b21pY19zZXQoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCwgbnVtX29ubGluZV9jcHVzKCkpOwogCQlxdWV1ZV93b3JrKGFwcGxkYXRhX3dxLCAoc3RydWN0IHdvcmtfc3RydWN0ICopIGRhdGEpOwpAQCAtMTI4LDE0ICsxMjUsMTEgQEAKIAlzdHJ1Y3QgYXBwbGRhdGFfb3BzICpvcHM7CiAJaW50IGk7CiAKLQlQX0RFQlVHKCIgIC09IFdvcmsgUXVldWUgPS1cbiIpOwogCWkgPSAwOwogCWdldF9vbmxpbmVfY3B1cygpOwogCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCWxpc3RfZm9yX2VhY2gobGgsICZhcHBsZGF0YV9vcHNfbGlzdCkgewogCQlvcHMgPSBsaXN0X2VudHJ5KGxoLCBzdHJ1Y3QgYXBwbGRhdGFfb3BzLCBsaXN0KTsKLQkJUF9ERUJVRygibGlzdF9mb3JfZWFjaCBsb29wOiAlaSkgYWN0aXZlID0gJXUsIG5hbWUgPSAlc1xuIiwKLQkJCSsraSwgb3BzLT5hY3RpdmUsIG9wcy0+bmFtZSk7CiAJCWlmIChvcHMtPmFjdGl2ZSA9PSAxKSB7CiAJCQlvcHMtPmNhbGxiYWNrKG9wcy0+ZGF0YSk7CiAJCX0KQEAgLTIxMiw3ICsyMDYsNiBAQAogCQkJCQkJIDAsIDEpOwogCQl9CiAJCWFwcGxkYXRhX3RpbWVyX2FjdGl2ZSA9IDE7Ci0JCVBfSU5GTygiTW9uaXRvcmluZyB0aW1lciBzdGFydGVkLlxuIik7CiAJCWJyZWFrOwogCWNhc2UgQVBQTERBVEFfREVMX1RJTUVSOgogCQlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpCkBAIC0yMjEsNyArMjE0LDYgQEAKIAkJCWJyZWFrOwogCQlhcHBsZGF0YV90aW1lcl9hY3RpdmUgPSAwOwogCQlhdG9taWNfc2V0KCZhcHBsZGF0YV9leHBpcmVfY291bnQsIG51bV9vbmxpbmVfY3B1cygpKTsKLQkJUF9JTkZPKCJNb25pdG9yaW5nIHRpbWVyIHN0b3BwZWQuXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBBUFBMREFUQV9NT0RfVElNRVI6CiAJCXBlcl9jcHVfaW50ZXJ2YWwgPSAodTY0KSAoYXBwbGRhdGFfaW50ZXJ2YWwqMTAwMCAvCkBAIC0zMTMsMTAgKzMwNSw4IEBACiAJfQogCWludGVydmFsID0gMDsKIAlzc2NhbmYoYnVmLCAiJWkiLCAmaW50ZXJ2YWwpOwotCWlmIChpbnRlcnZhbCA8PSAwKSB7Ci0JCVBfRVJST1IoIlRpbWVyIENQVSBpbnRlcnZhbCBoYXMgdG8gYmUgPiAwIVxuIik7CisJaWYgKGludGVydmFsIDw9IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWdldF9vbmxpbmVfY3B1cygpOwogCXNwaW5fbG9jaygmYXBwbGRhdGFfdGltZXJfbG9jayk7CkBAIC0zMjQsOSArMzE0LDYgQEAKIAlfX2FwcGxkYXRhX3Z0aW1lcl9zZXR1cChBUFBMREFUQV9NT0RfVElNRVIpOwogCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV90aW1lcl9sb2NrKTsKIAlwdXRfb25saW5lX2NwdXMoKTsKLQotCVBfSU5GTygiTW9uaXRvcmluZyBDUFUgaW50ZXJ2YWwgc2V0IHRvICV1IG1pbGxpc2Vjb25kcy5cbiIsCi0JCSBpbnRlcnZhbCk7CiBvdXQ6CiAJKmxlbnAgPSBsZW47CiAJKnBwb3MgKz0gbGVuOwpAQCAtNDA2LDIzICszOTMsMTYgQEAKIAkJCVBfRVJST1IoIlNUQVJUIERJQUcgMHhEQyBmb3IgJXMgZmFpbGVkLCAiCiAJCQkJInJldHVybiBjb2RlOiAlZFxuIiwgb3BzLT5uYW1lLCByYyk7CiAJCQltb2R1bGVfcHV0KG9wcy0+b3duZXIpOwotCQl9IGVsc2UgewotCQkJUF9JTkZPKCJNb25pdG9yaW5nICVzIGRhdGEgZW5hYmxlZCwgIgotCQkJCSJESUFHIDB4REMgc3RhcnRlZC5cbiIsIG9wcy0+bmFtZSk7CisJCX0gZWxzZQogCQkJb3BzLT5hY3RpdmUgPSAxOwotCQl9CiAJfSBlbHNlIGlmICgoYnVmWzBdID09ICcwJykgJiYgKG9wcy0+YWN0aXZlID09IDEpKSB7CiAJCW9wcy0+YWN0aXZlID0gMDsKIAkJcmMgPSBhcHBsZGF0YV9kaWFnKG9wcy0+cmVjb3JkX25yLCBBUFBMREFUQV9TVE9QX1JFQywKIAkJCQkodW5zaWduZWQgbG9uZykgb3BzLT5kYXRhLCBvcHMtPnNpemUsCiAJCQkJb3BzLT5tb2RfbHZsKTsKLQkJaWYgKHJjICE9IDApIHsKKwkJaWYgKHJjICE9IDApCiAJCQlQX0VSUk9SKCJTVE9QIERJQUcgMHhEQyBmb3IgJXMgZmFpbGVkLCAiCiAJCQkJInJldHVybiBjb2RlOiAlZFxuIiwgb3BzLT5uYW1lLCByYyk7Ci0JCX0gZWxzZSB7Ci0JCQlQX0lORk8oIk1vbml0b3JpbmcgJXMgZGF0YSBkaXNhYmxlZCwgIgotCQkJCSJESUFHIDB4REMgc3RvcHBlZC5cbiIsIG9wcy0+bmFtZSk7Ci0JCX0KIAkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKIAl9CiAJc3Bpbl91bmxvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKQEAgLTQ2OCw3ICs0NDgsNiBAQAogCW9wcy0+c3lzY3RsX2hlYWRlciA9IHJlZ2lzdGVyX3N5c2N0bF90YWJsZShvcHMtPmN0bF90YWJsZSk7CiAJaWYgKCFvcHMtPnN5c2N0bF9oZWFkZXIpCiAJCWdvdG8gb3V0OwotCVBfSU5GTygiJXMtb3BzIHJlZ2lzdGVyZWQhXG4iLCBvcHMtPm5hbWUpOwogCXJldHVybiAwOwogb3V0OgogCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwpAQCAtNDkwLDcgKzQ2OSw2IEBACiAJc3Bpbl91bmxvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShvcHMtPnN5c2N0bF9oZWFkZXIpOwogCWtmcmVlKG9wcy0+Y3RsX3RhYmxlKTsKLQlQX0lORk8oIiVzLW9wcyB1bnJlZ2lzdGVyZWQhXG4iLCBvcHMtPm5hbWUpOwogfQogLyoqKioqKioqKioqKioqKioqKioqKiogbW9kdWxlLW9wcyBtYW5hZ2VtZW50IDxFTkQ+ICoqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC01NTMsMTQgKzUzMSw5IEBACiB7CiAJaW50IGk7CiAKLQlQX0RFQlVHKCJzaXplb2YocGFyYW1ldGVyX2xpc3QpID0gJWx1XG4iLAotCQlzaXplb2Yoc3RydWN0IGFwcGxkYXRhX3BhcmFtZXRlcl9saXN0KSk7Ci0KIAlhcHBsZGF0YV93cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJhcHBsZGF0YSIpOwotCWlmICghYXBwbGRhdGFfd3EpIHsKLQkJUF9FUlJPUigiQ291bGQgbm90IGNyZWF0ZSB3b3JrIHF1ZXVlXG4iKTsKKwlpZiAoIWFwcGxkYXRhX3dxKQogCQlyZXR1cm4gLUVOT01FTTsKLQl9CiAKIAlnZXRfb25saW5lX2NwdXMoKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpCkBAIC01NzEsOCArNTQ0LDYgQEAKIAlyZWdpc3Rlcl9ob3RjcHVfbm90aWZpZXIoJmFwcGxkYXRhX25iKTsKIAogCWFwcGxkYXRhX3N5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUoYXBwbGRhdGFfZGlyX3RhYmxlKTsKLQotCVBfREVCVUcoIkJhc2UgaW50ZXJmYWNlIGluaXRpYWxpemVkLlxuIik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU4NCw3ICs1NTUsOSBAQAogRVhQT1JUX1NZTUJPTF9HUEwoYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMpOwogRVhQT1JUX1NZTUJPTF9HUEwoYXBwbGRhdGFfZGlhZyk7CiAKKyNpZmRlZiBDT05GSUdfU1dBUAogRVhQT1JUX1NZTUJPTF9HUEwoc2lfc3dhcGluZm8pOworI2VuZGlmCiBFWFBPUlRfU1lNQk9MX0dQTChucl90aHJlYWRzKTsKIEVYUE9SVF9TWU1CT0xfR1BMKG5yX3J1bm5pbmcpOwogRVhQT1JUX1NZTUJPTF9HUEwobnJfaW93YWl0KTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYwppbmRleCA1MTE4MWNjLi4zZWQ1NmI3IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbWVtLmMKKysrIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX21lbS5jCkBAIC0xNCwxNCArMTQsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpbmNsdWRlICJhcHBsZGF0YS5oIgogCiAKLSNkZWZpbmUgTVlfUFJJTlRfTkFNRSAiYXBwbGRhdGFfbWVtIgkJLyogZm9yIGRlYnVnIG1lc3NhZ2VzLCBldGMuICovCiAjZGVmaW5lIFAySyh4KSAoKHgpIDw8IChQQUdFX1NISUZUIC0gMTApKQkvKiBDb252ZXJ0cyAjUGFnZXMgdG8gS0IgKi8KIAogLyoKQEAgLTcwLDMwICs2OSw2IEBACiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGFwcGxkYXRhX21lbV9kYXRhOwogCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBsZGF0YV9kZWJ1Z19wcmludChzdHJ1Y3QgYXBwbGRhdGFfbWVtX2RhdGEgKm1lbV9kYXRhKQotewotCVBfREVCVUcoIi0tLSBNRU0gLSBSRUNPUkQgLS0tXG4iKTsKLQlQX0RFQlVHKCJwZ3BnaW4gICAgID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnBncGdpbik7Ci0JUF9ERUJVRygicGdwZ291dCAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5wZ3Bnb3V0KTsKLQlQX0RFQlVHKCJwc3dwaW4gICAgID0gJThsdSBQYWdlc1xuIiwgbWVtX2RhdGEtPnBzd3Bpbik7Ci0JUF9ERUJVRygicHN3cG91dCAgICA9ICU4bHUgUGFnZXNcbiIsIG1lbV9kYXRhLT5wc3dwb3V0KTsKLQlQX0RFQlVHKCJwZ2FsbG9jICAgID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ2FsbG9jKTsKLQlQX0RFQlVHKCJwZ2ZhdWx0ICAgID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ2ZhdWx0KTsKLQlQX0RFQlVHKCJwZ21hamZhdWx0ID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ21hamZhdWx0KTsKLQlQX0RFQlVHKCJzaGFyZWRyYW0gID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnNoYXJlZHJhbSk7Ci0JUF9ERUJVRygidG90YWxyYW0gICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT50b3RhbHJhbSk7Ci0JUF9ERUJVRygiZnJlZXJhbSAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlcmFtKTsKLQlQX0RFQlVHKCJ0b3RhbGhpZ2ggID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnRvdGFsaGlnaCk7Ci0JUF9ERUJVRygiZnJlZWhpZ2ggICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlaGlnaCk7Ci0JUF9ERUJVRygiYnVmZmVycmFtICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5idWZmZXJyYW0pOwotCVBfREVCVUcoImNhY2hlZCAgICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+Y2FjaGVkKTsKLQlQX0RFQlVHKCJ0b3RhbHN3YXAgID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnRvdGFsc3dhcCk7Ci0JUF9ERUJVRygiZnJlZXN3YXAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlc3dhcCk7Ci0JUF9ERUJVRygic3luY19jb3VudF8xID0gJXVcbiIsIG1lbV9kYXRhLT5zeW5jX2NvdW50XzEpOwotCVBfREVCVUcoInN5bmNfY291bnRfMiA9ICV1XG4iLCBtZW1fZGF0YS0+c3luY19jb3VudF8yKTsKLQlQX0RFQlVHKCJ0aW1lc3RhbXAgICAgPSAlbFhcbiIsIG1lbV9kYXRhLT50aW1lc3RhbXApOwotfQotCiAvKgogICogYXBwbGRhdGFfZ2V0X21lbV9kYXRhKCkKICAqCkBAIC0xNDAsOSArMTE1LDYgQEAKIAogCW1lbV9kYXRhLT50aW1lc3RhbXAgPSBnZXRfY2xvY2soKTsKIAltZW1fZGF0YS0+c3luY19jb3VudF8yKys7Ci0jaWZkZWYgQVBQTERBVEFfREVCVUcKLQlhcHBsZGF0YV9kZWJ1Z19wcmludChtZW1fZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0xNjQsMTcgKzEzNiw3IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IGFwcGxkYXRhX21lbV9pbml0KHZvaWQpCiB7Ci0JaW50IHJjOwotCi0JUF9ERUJVRygic2l6ZW9mKG1lbSkgPSAlbHVcbiIsIHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfbWVtX2RhdGEpKTsKLQotCXJjID0gYXBwbGRhdGFfcmVnaXN0ZXJfb3BzKCZvcHMpOwotCWlmIChyYyAhPSAwKSB7Ci0JCVBfRVJST1IoIkVycm9yIHJlZ2lzdGVyaW5nIG9wcywgcmMgPSAlaVxuIiwgcmMpOwotCX0gZWxzZSB7Ci0JCVBfREVCVUcoIiVzLW9wcyByZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwotCX0KLQlyZXR1cm4gcmM7CisJcmV0dXJuIGFwcGxkYXRhX3JlZ2lzdGVyX29wcygmb3BzKTsKIH0KIAogLyoKQEAgLTE4NSw3ICsxNDcsNiBAQAogc3RhdGljIHZvaWQgX19leGl0IGFwcGxkYXRhX21lbV9leGl0KHZvaWQpCiB7CiAJYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMoJm9wcyk7Ci0JUF9ERUJVRygiJXMtb3BzIHVucmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX25ldF9zdW0uYwppbmRleCA0ZDgzNDQzLi4zYjc0NjU1IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9uZXRfc3VtLmMKQEAgLTIxLDkgKzIxLDYgQEAKICNpbmNsdWRlICJhcHBsZGF0YS5oIgogCiAKLSNkZWZpbmUgTVlfUFJJTlRfTkFNRQkiYXBwbGRhdGFfbmV0X3N1bSIJLyogZm9yIGRlYnVnIG1lc3NhZ2VzLCBldGMuICovCi0KLQogLyoKICAqIE5ldHdvcmsgZGF0YQogICoKQEAgLTYwLDI2ICs1Nyw2IEBACiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGFwcGxkYXRhX25ldF9zdW1fZGF0YTsKIAogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXBwbGRhdGFfcHJpbnRfZGVidWcoc3RydWN0IGFwcGxkYXRhX25ldF9zdW1fZGF0YSAqbmV0X2RhdGEpCi17Ci0JUF9ERUJVRygiLS0tIE5FVCAtIFJFQ09SRCAtLS1cbiIpOwotCi0JUF9ERUJVRygibnJfaW50ZXJmYWNlcyA9ICV1XG4iLCBuZXRfZGF0YS0+bnJfaW50ZXJmYWNlcyk7Ci0JUF9ERUJVRygicnhfcGFja2V0cyAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT5yeF9wYWNrZXRzKTsKLQlQX0RFQlVHKCJ0eF9wYWNrZXRzICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X3BhY2tldHMpOwotCVBfREVCVUcoInJ4X2J5dGVzICAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfYnl0ZXMpOwotCVBfREVCVUcoInR4X2J5dGVzICAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+dHhfYnl0ZXMpOwotCVBfREVCVUcoInJ4X2Vycm9ycyAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfZXJyb3JzKTsKLQlQX0RFQlVHKCJ0eF9lcnJvcnMgICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X2Vycm9ycyk7Ci0JUF9ERUJVRygicnhfZHJvcHBlZCAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT5yeF9kcm9wcGVkKTsKLQlQX0RFQlVHKCJ0eF9kcm9wcGVkICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X2Ryb3BwZWQpOwotCVBfREVCVUcoImNvbGxpc2lvbnMgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+Y29sbGlzaW9ucyk7Ci0KLQlQX0RFQlVHKCJzeW5jX2NvdW50XzEgPSAldVxuIiwgbmV0X2RhdGEtPnN5bmNfY291bnRfMSk7Ci0JUF9ERUJVRygic3luY19jb3VudF8yID0gJXVcbiIsIG5ldF9kYXRhLT5zeW5jX2NvdW50XzIpOwotCVBfREVCVUcoInRpbWVzdGFtcCAgICA9ICVsWFxuIiwgbmV0X2RhdGEtPnRpbWVzdGFtcCk7Ci19Ci0KIC8qCiAgKiBhcHBsZGF0YV9nZXRfbmV0X3N1bV9kYXRhKCkKICAqCkBAIC0xMzUsOSArMTEyLDYgQEAKIAogCW5ldF9kYXRhLT50aW1lc3RhbXAgPSBnZXRfY2xvY2soKTsKIAluZXRfZGF0YS0+c3luY19jb3VudF8yKys7Ci0jaWZkZWYgQVBQTERBVEFfREVCVUcKLQlhcHBsZGF0YV9wcmludF9kZWJ1ZyhuZXRfZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0xNTksMTcgKzEzMyw3IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IGFwcGxkYXRhX25ldF9pbml0KHZvaWQpCiB7Ci0JaW50IHJjOwotCi0JUF9ERUJVRygic2l6ZW9mKG5ldCkgPSAlbHVcbiIsIHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfbmV0X3N1bV9kYXRhKSk7Ci0KLQlyYyA9IGFwcGxkYXRhX3JlZ2lzdGVyX29wcygmb3BzKTsKLQlpZiAocmMgIT0gMCkgewotCQlQX0VSUk9SKCJFcnJvciByZWdpc3RlcmluZyBvcHMsIHJjID0gJWlcbiIsIHJjKTsKLQl9IGVsc2UgewotCQlQX0RFQlVHKCIlcy1vcHMgcmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKLQl9Ci0JcmV0dXJuIHJjOworCXJldHVybiBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7CiB9CiAKIC8qCkBAIC0xODAsNyArMTQ0LDYgQEAKIHN0YXRpYyB2b2lkIF9fZXhpdCBhcHBsZGF0YV9uZXRfZXhpdCh2b2lkKQogewogCWFwcGxkYXRhX3VucmVnaXN0ZXJfb3BzKCZvcHMpOwotCVBfREVCVUcoIiVzLW9wcyB1bnJlZ2lzdGVyZWQhXG4iLCBvcHMubmFtZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwppbmRleCA2YjNlYWZlLi5lYjQ0ZjlmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwpAQCAtODksNDQgKzg5LDYgQEAKIH07CiAKIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGxkYXRhX3ByaW50X2RlYnVnKHN0cnVjdCBhcHBsZGF0YV9vc19kYXRhICpvc19kYXRhKQotewotCWludCBhMCwgYTEsIGEyLCBpOwotCi0JUF9ERUJVRygiLS0tIE9TIC0gUkVDT1JEIC0tLVxuIik7Ci0JUF9ERUJVRygibnJfdGhyZWFkcyAgID0gJXVcbiIsIG9zX2RhdGEtPm5yX3RocmVhZHMpOwotCVBfREVCVUcoIm5yX3J1bm5pbmcgICA9ICV1XG4iLCBvc19kYXRhLT5ucl9ydW5uaW5nKTsKLQlQX0RFQlVHKCJucl9pb3dhaXQgICAgPSAldVxuIiwgb3NfZGF0YS0+bnJfaW93YWl0KTsKLQlQX0RFQlVHKCJhdmVucnVuKGludCkgPSAlOHggLyAlOHggLyAlOHhcbiIsIG9zX2RhdGEtPmF2ZW5ydW5bMF0sCi0JCW9zX2RhdGEtPmF2ZW5ydW5bMV0sIG9zX2RhdGEtPmF2ZW5ydW5bMl0pOwotCWEwID0gb3NfZGF0YS0+YXZlbnJ1blswXTsKLQlhMSA9IG9zX2RhdGEtPmF2ZW5ydW5bMV07Ci0JYTIgPSBvc19kYXRhLT5hdmVucnVuWzJdOwotCVBfREVCVUcoImF2ZW5ydW4oZmxvYXQpID0gJWQuJTAyZCAvICVkLiUwMmQgLyAlZC4lMDJkXG4iLAotCQlMT0FEX0lOVChhMCksIExPQURfRlJBQyhhMCksIExPQURfSU5UKGExKSwgTE9BRF9GUkFDKGExKSwKLQkJTE9BRF9JTlQoYTIpLCBMT0FEX0ZSQUMoYTIpKTsKLQotCVBfREVCVUcoIm5yX2NwdXMgPSAldVxuIiwgb3NfZGF0YS0+bnJfY3B1cyk7Ci0JZm9yIChpID0gMDsgaSA8IG9zX2RhdGEtPm5yX2NwdXM7IGkrKykgewotCQlQX0RFQlVHKCJjcHUldSA6IHVzZXIgPSAldSwgbmljZSA9ICV1LCBzeXN0ZW0gPSAldSwgIgotCQkJImlkbGUgPSAldSwgaXJxID0gJXUsIHNvZnRpcnEgPSAldSwgaW93YWl0ID0gJXUsICIKLQkJCSJzdGVhbCA9ICV1XG4iLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5jcHVfaWQsCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfdXNlciwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9uaWNlLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X3N5c3RlbSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9pZGxlLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X2lycSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9zb2Z0aXJxLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X2lvd2FpdCwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9zdGVhbCk7Ci0JfQotCi0JUF9ERUJVRygic3luY19jb3VudF8xID0gJXVcbiIsIG9zX2RhdGEtPnN5bmNfY291bnRfMSk7Ci0JUF9ERUJVRygic3luY19jb3VudF8yID0gJXVcbiIsIG9zX2RhdGEtPnN5bmNfY291bnRfMik7Ci0JUF9ERUJVRygidGltZXN0YW1wICAgID0gJWxYXG4iLCBvc19kYXRhLT50aW1lc3RhbXApOwotfQotCiAvKgogICogYXBwbGRhdGFfZ2V0X29zX2RhdGEoKQogICoKQEAgLTE4MCwxMyArMTQyLDEwIEBACiAJCQkJCSAgIEFQUExEQVRBX1NUQVJUX0lOVEVSVkFMX1JFQywKIAkJCQkJICAgKHVuc2lnbmVkIGxvbmcpIG9wcy5kYXRhLCBuZXdfc2l6ZSwKIAkJCQkJICAgb3BzLm1vZF9sdmwpOwotCQkJaWYgKHJjICE9IDApIHsKKwkJCWlmIChyYyAhPSAwKQogCQkJCVBfRVJST1IoIm9zOiBTVEFSVCBORVcgRElBRyAweERDIGZhaWxlZCwgIgogCQkJCQkicmV0dXJuIGNvZGU6ICVkLCBuZXcgc2l6ZSA9ICVpXG4iLCByYywKIAkJCQkJbmV3X3NpemUpOwotCQkJCVBfSU5GTygib3M6IHN0b3BwaW5nIG9sZCByZWNvcmQgbm93XG4iKTsKLQkJCX0gZWxzZQotCQkJCVBfSU5GTygib3M6IG5ldyByZWNvcmQgc2l6ZSA9ICVpXG4iLCBuZXdfc2l6ZSk7CiAKIAkJCXJjID0gYXBwbGRhdGFfZGlhZyhBUFBMREFUQV9SRUNPUkRfT1NfSUQsCiAJCQkJCSAgIEFQUExEQVRBX1NUT1BfUkVDLApAQCAtMjA0LDkgKzE2Myw2IEBACiAJfQogCW9zX2RhdGEtPnRpbWVzdGFtcCA9IGdldF9jbG9jaygpOwogCW9zX2RhdGEtPnN5bmNfY291bnRfMisrOwotI2lmZGVmIEFQUExEQVRBX0RFQlVHCi0JYXBwbGRhdGFfcHJpbnRfZGVidWcob3NfZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0yMjcsMTIgKzE4Myw5IEBACiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CiAJfQotCVBfREVCVUcoIm1heC4gc2l6ZW9mKG9zKSA9ICVpLCBzaXplb2Yob3NfY3B1KSA9ICVsdVxuIiwgbWF4X3NpemUsCi0JCXNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfb3NfcGVyX2NwdSkpOwogCiAJYXBwbGRhdGFfb3NfZGF0YSA9IGt6YWxsb2MobWF4X3NpemUsIEdGUF9ETUEpOwogCWlmIChhcHBsZGF0YV9vc19kYXRhID09IE5VTEwpIHsKLQkJUF9FUlJPUigiTm8gbWVtb3J5IGZvciAlcyFcbiIsIG9wcy5uYW1lKTsKIAkJcmMgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9CkBAIC0yNDAsMTcgKzE5MywxMiBAQAogCWFwcGxkYXRhX29zX2RhdGEtPnBlcl9jcHVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfb3NfcGVyX2NwdSk7CiAJYXBwbGRhdGFfb3NfZGF0YS0+Y3B1X29mZnNldCAgID0gb2Zmc2V0b2Yoc3RydWN0IGFwcGxkYXRhX29zX2RhdGEsCiAJCQkJCQkJb3NfY3B1KTsKLQlQX0RFQlVHKCJjcHUgb2Zmc2V0ID0gJXVcbiIsIGFwcGxkYXRhX29zX2RhdGEtPmNwdV9vZmZzZXQpOwogCiAJb3BzLmRhdGEgPSBhcHBsZGF0YV9vc19kYXRhOwogCW9wcy5jYWxsYmFjayAgPSAmYXBwbGRhdGFfZ2V0X29zX2RhdGE7CiAJcmMgPSBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7Ci0JaWYgKHJjICE9IDApIHsKLQkJUF9FUlJPUigiRXJyb3IgcmVnaXN0ZXJpbmcgb3BzLCByYyA9ICVpXG4iLCByYyk7CisJaWYgKHJjICE9IDApCiAJCWtmcmVlKGFwcGxkYXRhX29zX2RhdGEpOwotCX0gZWxzZSB7Ci0JCVBfREVCVUcoIiVzLW9wcyByZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwotCX0KIG91dDoKIAlyZXR1cm4gcmM7CiB9CkBAIC0yNjQsNyArMjEyLDYgQEAKIHsKIAlhcHBsZGF0YV91bnJlZ2lzdGVyX29wcygmb3BzKTsKIAlrZnJlZShhcHBsZGF0YV9vc19kYXRhKTsKLQlQX0RFQlVHKCIlcy1vcHMgdW5yZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlwdG8vY3J5cHRfczM5MC5oIGIvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKaW5kZXggOTk5MmY5NS4uMGVmOTgyOSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKKysrIGIvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKQEAgLTI5Niw2ICsyOTYsMTAgQEAKIAl1bnNpZ25lZCBjaGFyIHN0YXR1c1sxNl07CiAJaW50IHJldDsKIAorCS8qIGNoZWNrIGlmIENQQUNGIGZhY2lsaXR5IChiaXQgMTcpIGlzIGF2YWlsYWJsZSAqLworCWlmICghKHN0ZmwoKSAmIDFVTEwgPDwgKDMxIC0gMTcpKSkKKwkJcmV0dXJuIDA7CisKIAlzd2l0Y2ggKGZ1bmMgJiBDUllQVF9TMzkwX09QX01BU0spIHsKIAljYXNlIENSWVBUX1MzOTBfS006CiAJCXJldCA9IGNyeXB0X3MzOTBfa20oS01fUVVFUlksICZzdGF0dXMsIE5VTEwsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9wcm5nLmMgYi9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYwppbmRleCAwY2ZlZmRkLi5lY2E3MjRkIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYworKysgYi9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgpAQCAtNDgsNiArNDksNyBAQAogCiBzdGF0aWMgaW50IHBybmdfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIH0KIApAQCAtMTg1LDExICsxODcsOCBAQAogCXBybmdfc2VlZCgxNik7CiAKIAlyZXQgPSBtaXNjX3JlZ2lzdGVyKCZwcm5nX2Rldik7Ci0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCSAgICAgICAiQ291bGQgbm90IHJlZ2lzdGVyIG1pc2MgZGV2aWNlIGZvciBQUk5HLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfYnVmOwotCX0KIAlyZXR1cm4gMDsKIAogb3V0X2J1ZjoKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKaW5kZXggNGIwMTBmZi4uNzM4Mzc4MSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKKysrIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKQEAgLTE1MCwzMyArMTUwLDI0IEBACiAJCQkgICAgICB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsIGxvZmZfdCBvZmZzZXQpCiB7CiAJY2hhciAqZGF0YTsKLQlzaXplX3QgbGVuOworCXNzaXplX3QgcmV0OwogCXN0cnVjdCBmaWxlICpmaWxwID0gaW9jYi0+a2lfZmlscDsKIAkvKiBYWFg6IHRlbXBvcmFyeSAqLwogCWNoYXIgX191c2VyICpidWYgPSBpb3ZbMF0uaW92X2Jhc2U7CiAJc2l6ZV90IGNvdW50ID0gaW92WzBdLmlvdl9sZW47CiAKLQlpZiAobnJfc2VncyAhPSAxKSB7Ci0JCWNvdW50ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChucl9zZWdzICE9IDEpCisJCXJldHVybiAtRUlOVkFMOwogCiAJZGF0YSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlsZW4gPSBzdHJsZW4oZGF0YSk7Ci0JaWYgKG9mZnNldCA+IGxlbikgewotCQljb3VudCA9IDA7Ci0JCWdvdG8gb3V0OwotCX0KLQlpZiAoY291bnQgPiBsZW4gLSBvZmZzZXQpCi0JCWNvdW50ID0gbGVuIC0gb2Zmc2V0OwotCWlmIChjb3B5X3RvX3VzZXIoYnVmLCBkYXRhICsgb2Zmc2V0LCBjb3VudCkpIHsKLQkJY291bnQgPSAtRUZBVUxUOwotCQlnb3RvIG91dDsKLQl9Ci0JaW9jYi0+a2lfcG9zICs9IGNvdW50OworCXJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsICZvZmZzZXQsIGRhdGEsIHN0cmxlbihkYXRhKSk7CisJaWYgKHJldCA8PSAwKQorCQlyZXR1cm4gcmV0OworCisJaW9jYi0+a2lfcG9zICs9IHJldDsKIAlmaWxlX2FjY2Vzc2VkKGZpbHApOwotb3V0OgotCXJldHVybiBjb3VudDsKKworCXJldHVybiByZXQ7CiB9CiBzdGF0aWMgc3NpemVfdCBoeXBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbnJfc2VncywgbG9mZl90IG9mZnNldCkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlCmluZGV4IDYzMDJmNTAuLjUwZjY1N2UgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZQpAQCAtNyw5ICs3LDE0IEBACiAjCiBDRkxBR1Nfc21wLm8JOj0gLVduby1ub25udWxsCiAKKyMKKyMgUGFzcyBVVFNfTUFDSElORSBmb3IgdXNlcl9yZWdzZXQgZGVmaW5pdGlvbgorIworQ0ZMQUdTX3B0cmFjZS5vCQkrPSAtRFVUU19NQUNISU5FPSciJChVVFNfTUFDSElORSkiJworCiBvYmoteQk6PSAgYml0bWFwLm8gdHJhcHMubyB0aW1lLm8gcHJvY2Vzcy5vIGJhc2UubyBlYXJseS5vIFwKICAgICAgICAgICAgIHNldHVwLm8gc3lzX3MzOTAubyBwdHJhY2UubyBzaWduYWwubyBjcGNtZC5vIGViY2RpYy5vIFwKLQkgICAgczM5MF9leHQubyBkZWJ1Zy5vIGlycS5vIGlwbC5vIGRpcy5vIGRpYWcubworCSAgICBzMzkwX2V4dC5vIGRlYnVnLm8gaXJxLm8gaXBsLm8gZGlzLm8gZGlhZy5vIG1lbV9kZXRlY3QubwogCiBvYmoteQkrPSAkKGlmICQoQ09ORklHXzY0QklUKSxlbnRyeTY0Lm8sZW50cnkubykKIG9iai15CSs9ICQoaWYgJChDT05GSUdfNjRCSVQpLHJlaXBsNjQubyxyZWlwbC5vKQpAQCAtMjMsNyArMjgsNyBAQAogY29tcGF0LW9iai0kKENPTkZJR19BVURJVCkJKz0gY29tcGF0X2F1ZGl0Lm8KIG9iai0kKENPTkZJR19DT01QQVQpCQkrPSBjb21wYXRfbGludXgubyBjb21wYXRfc2lnbmFsLm8gXAogCQkJCQljb21wYXRfd3JhcHBlci5vIGNvbXBhdF9leGVjX2RvbWFpbi5vIFwKLQkJCQkJYmluZm10X2VsZjMyLm8gJChjb21wYXQtb2JqLXkpCisJCQkJCSQoY29tcGF0LW9iai15KQogCiBvYmotJChDT05GSUdfVklSVF9USU1FUikJKz0gdnRpbWUubwogb2JqLSQoQ09ORklHX1NUQUNLVFJBQ0UpCSs9IHN0YWNrdHJhY2UubwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9iaW5mbXRfZWxmMzIuYyBiL2FyY2gvczM5MC9rZXJuZWwvYmluZm10X2VsZjMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMWMzMTUuLjAwMDAwMDAKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9iaW5mbXRfZWxmMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBACi0vKgotICogU3VwcG9ydCBmb3IgMzItYml0IExpbnV4IGZvciBTMzkwIEVMRiBiaW5hcmllcy4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDAgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgotICogQXV0aG9yKHMpOiBHZXJoYXJkIFRvbm4gKHRvbkBkZS5pYm0uY29tKQotICoKLSAqIEhlYXZpbHkgaW5zcGlyZWQgYnkgdGhlIDMyLWJpdCBTcGFyYyBjb21wYXQgY29kZSB3aGljaCBpcwotICogQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4IERhdmlkIFMuIE1pbGxlciAoZGF2ZW1AcmVkaGF0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCBKYWt1YiBKZWxpbmVrICAgKGpqQHVsdHJhLmxpbnV4LmN6KQotICovCi0KLSNkZWZpbmUgX19BU01TMzkwX0VMRl9ICi0KLSNpbmNsdWRlIDxsaW51eC90aW1lLmg+Ci0KLS8qCi0gKiBUaGVzZSBhcmUgdXNlZCB0byBzZXQgcGFyYW1ldGVycyBpbiB0aGUgY29yZSBkdW1wcy4KLSAqLwotI2RlZmluZSBFTEZfQ0xBU1MJRUxGQ0xBU1MzMgotI2RlZmluZSBFTEZfREFUQQlFTEZEQVRBMk1TQgotI2RlZmluZSBFTEZfQVJDSAlFTV9TMzkwCi0KLS8qCi0gKiBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHdlIGRvbid0IGxvYWQgc29tZXRoaW5nIGZvciB0aGUgd3JvbmcgYXJjaGl0ZWN0dXJlLgotICovCi0jZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpIFwKLQkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKLSAgICAgICAgICYmICh4KS0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGX0NMQVNTKQotCi0vKiBFTEYgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgTlVNX0dQUlMgICAgICAxNgotI2RlZmluZSBOVU1fRlBSUyAgICAgIDE2Ci0jZGVmaW5lIE5VTV9BQ1JTICAgICAgMTYgICAgCi0KLS8qIEZvciBTVlI0L1MzOTAgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoIGBhdGV4aXRgIGlzCi0gICBwYXNzZWQgaW4gUjE0LiAqLwotI2RlZmluZSBFTEZfUExBVF9JTklUKF9yLCBsb2FkX2FkZHIpIFwKLQlkbyB7IFwKLQkJX3ItPmdwcnNbMTRdID0gMDsgXAotCX0gd2hpbGUoMCkKLQotI2RlZmluZSBVU0VfRUxGX0NPUkVfRFVNUAotI2RlZmluZSBFTEZfRVhFQ19QQUdFU0laRSAgICAgICA0MDk2Ci0KLS8qIFRoaXMgaXMgdGhlIGxvY2F0aW9uIHRoYXQgYW4gRVRfRFlOIHByb2dyYW0gaXMgbG9hZGVkIGlmIGV4ZWMnZWQuICBUeXBpY2FsCi0gICB1c2Ugb2YgdGhpcyBpcyB0byBpbnZva2UgIi4vbGQuc28gc29tZXByb2ciIHRvIHRlc3Qgb3V0IGEgbmV3IHZlcnNpb24gb2YKLSAgIHRoZSBsb2FkZXIuICBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGl0IGlzIG91dCBvZiB0aGUgd2F5IG9mIHRoZSBwcm9ncmFtCi0gICB0aGF0IGl0IHdpbGwgImV4ZWMiLCBhbmQgdGhhdCB0aGVyZSBpcyBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBicmsuICAqLwotCi0jZGVmaW5lIEVMRl9FVF9EWU5fQkFTRSAgICAgICAgIChUQVNLX1NJWkUgLyAzICogMikKLQotLyogV293LCB0aGUgIm1haW4iIGFyY2ggbmVlZHMgYXJjaCBkZXBlbmRlbnQgZnVuY3Rpb25zIHRvby4uIDopICovCi0KLS8qIHJlZ3MgaXMgc3RydWN0IHB0X3JlZ3MsIHByX3JlZyBpcyBlbGZfZ3JlZ3NldF90ICh3aGljaCBpcwotICAgbm93IHN0cnVjdF91c2VyX3JlZ3MsIHRoZXkgYXJlIGRpZmZlcmVudCkgKi8KLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX1JFR1MocHJfcmVnLCByZWdzKSBkdW1wX3JlZ3MzMihyZWdzLCAmcHJfcmVnKTsKLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX1RBU0tfUkVHUyh0c2ssIHJlZ3MpIGR1bXBfdGFza19yZWdzMzIodHNrLCByZWdzKQotCi0jZGVmaW5lIEVMRl9DT1JFX0NPUFlfRlBSRUdTKHRzaywgZnByZWdzKSBkdW1wX3Rhc2tfZnB1KHRzaywgZnByZWdzKQotCi0vKiBUaGlzIHlpZWxkcyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0Ci0gICBpbnN0cnVjdGlvbiBzZXQgdGhpcyBDUFUgc3VwcG9ydHMuICovCi0KLSNkZWZpbmUgRUxGX0hXQ0FQICgwKQotCi0vKiBUaGlzIHlpZWxkcyBhIHN0cmluZyB0aGF0IGxkLnNvIHdpbGwgdXNlIHRvIGxvYWQgaW1wbGVtZW50YXRpb24KLSAgIHNwZWNpZmljIGxpYnJhcmllcyBmb3Igb3B0aW1pemF0aW9uLiAgVGhpcyBpcyBtb3JlIHNwZWNpZmljIGluCi0gICBpbnRlbnQgdGhhbiBwb2tpbmcgYXQgdW5hbWUgb3IgL3Byb2MvY3B1aW5mby4KLQotICAgRm9yIHRoZSBtb21lbnQsIHdlIGhhdmUgb25seSBvcHRpbWl6YXRpb25zIGZvciB0aGUgSW50ZWwgZ2VuZXJhdGlvbnMsCi0gICBidXQgdGhhdCBjb3VsZCBjaGFuZ2UuLi4gKi8KLQotI2RlZmluZSBFTEZfUExBVEZPUk0gKE5VTEwpCi0KLSNkZWZpbmUgU0VUX1BFUlNPTkFMSVRZKGV4LCBpYmNzMikJCQlcCi1kbyB7CQkJCQkJCVwKLQlpZiAoaWJjczIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JCXNldF9wZXJzb25hbGl0eShQRVJfU1ZSNCk7ICAgICAgICAgICAgICBcCi0JZWxzZSBpZiAoY3VycmVudC0+cGVyc29uYWxpdHkgIT0gUEVSX0xJTlVYMzIpICAgXAotCQlzZXRfcGVyc29uYWxpdHkoUEVSX0xJTlVYKTsgICAgICAgICAgICAgXAotCXNldF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJCVwKLX0gd2hpbGUgKDApCi0KLSNpbmNsdWRlICJjb21wYXRfbGludXguaCIKLQotdHlwZWRlZiBfczM5MF9mcF9yZWdzMzIgZWxmX2ZwcmVnc2V0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0Ci17Ci0JCi0JX3Bzd190MzIJcHN3OwotCV9fdTMyCQlncHJzW19fTlVNX0dQUlNdOyAKLQlfX3UzMgkJYWNyc1tfX05VTV9BQ1JTXTsgCi0JX191MzIJCW9yaWdfZ3ByMjsKLX0gczM5MF9yZWdzMzI7Ci10eXBlZGVmIHMzOTBfcmVnczMyIGVsZl9ncmVnc2V0X3Q7Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfcmVnczMyKHN0cnVjdCBwdF9yZWdzICpwdHJlZ3MsIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0JaW50IGk7Ci0KLQltZW1jcHkoJnJlZ3MtPnBzdy5tYXNrLCAmcHRyZWdzLT5wc3cubWFzaywgNCk7Ci0JbWVtY3B5KCZyZWdzLT5wc3cuYWRkciwgKGNoYXIgKikmcHRyZWdzLT5wc3cuYWRkciArIDQsIDQpOwotCWZvciAoaSA9IDA7IGkgPCBOVU1fR1BSUzsgaSsrKQotCQlyZWdzLT5ncHJzW2ldID0gcHRyZWdzLT5ncHJzW2ldOwotCXNhdmVfYWNjZXNzX3JlZ3MocmVncy0+YWNycyk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19yZWdzMzIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0Jc3RydWN0IHB0X3JlZ3MgKnB0cmVncyA9IHRhc2tfcHRfcmVncyh0c2spOwotCWludCBpOwotCi0JbWVtY3B5KCZyZWdzLT5wc3cubWFzaywgJnB0cmVncy0+cHN3Lm1hc2ssIDQpOwotCW1lbWNweSgmcmVncy0+cHN3LmFkZHIsIChjaGFyICopJnB0cmVncy0+cHN3LmFkZHIgKyA0LCA0KTsKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX0dQUlM7IGkrKykKLQkJcmVncy0+Z3Byc1tpXSA9IHB0cmVncy0+Z3Byc1tpXTsKLQltZW1jcHkocmVncy0+YWNycywgdHNrLT50aHJlYWQuYWNycywgc2l6ZW9mKHJlZ3MtPmFjcnMpKTsKLQlyZWdzLT5vcmlnX2dwcjIgPSBwdHJlZ3MtPm9yaWdfZ3ByMjsKLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF90YXNrX2ZwdShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgZWxmX2ZwcmVnc2V0X3QgKmZwcmVncykKLXsKLQlpZiAodHNrID09IGN1cnJlbnQpCi0JCXNhdmVfZnBfcmVncygoczM5MF9mcF9yZWdzICopIGZwcmVncyk7Ci0JZWxzZQotCQltZW1jcHkoZnByZWdzLCAmdHNrLT50aHJlYWQuZnBfcmVncywgc2l6ZW9mKGVsZl9mcHJlZ3NldF90KSk7Ci0JcmV0dXJuIDE7Ci19Ci0KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9lbGZjb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgotCi0jZGVmaW5lIGVsZl9wcnN0YXR1cyBlbGZfcHJzdGF0dXMzMgotc3RydWN0IGVsZl9wcnN0YXR1czMyCi17Ci0Jc3RydWN0IGVsZl9zaWdpbmZvIHByX2luZm87CS8qIEluZm8gYXNzb2NpYXRlZCB3aXRoIHNpZ25hbCAqLwotCXNob3J0CXByX2N1cnNpZzsJCS8qIEN1cnJlbnQgc2lnbmFsICovCi0JdTMyCXByX3NpZ3BlbmQ7CS8qIFNldCBvZiBwZW5kaW5nIHNpZ25hbHMgKi8KLQl1MzIJcHJfc2lnaG9sZDsJLyogU2V0IG9mIGhlbGQgc2lnbmFscyAqLwotCXBpZF90CXByX3BpZDsKLQlwaWRfdAlwcl9wcGlkOwotCXBpZF90CXByX3BncnA7Ci0JcGlkX3QJcHJfc2lkOwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl91dGltZTsJLyogVXNlciB0aW1lICovCi0Jc3RydWN0IGNvbXBhdF90aW1ldmFsIHByX3N0aW1lOwkvKiBTeXN0ZW0gdGltZSAqLwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl9jdXRpbWU7CS8qIEN1bXVsYXRpdmUgdXNlciB0aW1lICovCi0Jc3RydWN0IGNvbXBhdF90aW1ldmFsIHByX2NzdGltZTsJLyogQ3VtdWxhdGl2ZSBzeXN0ZW0gdGltZSAqLwotCWVsZl9ncmVnc2V0X3QgcHJfcmVnOwkvKiBHUCByZWdpc3RlcnMgKi8KLQlpbnQgcHJfZnB2YWxpZDsJCS8qIFRydWUgaWYgbWF0aCBjby1wcm9jZXNzb3IgYmVpbmcgdXNlZC4gICovCi19OwotCi0jZGVmaW5lIGVsZl9wcnBzaW5mbyBlbGZfcHJwc2luZm8zMgotc3RydWN0IGVsZl9wcnBzaW5mbzMyCi17Ci0JY2hhcglwcl9zdGF0ZTsJLyogbnVtZXJpYyBwcm9jZXNzIHN0YXRlICovCi0JY2hhcglwcl9zbmFtZTsJLyogY2hhciBmb3IgcHJfc3RhdGUgKi8KLQljaGFyCXByX3pvbWI7CS8qIHpvbWJpZSAqLwotCWNoYXIJcHJfbmljZTsJLyogbmljZSB2YWwgKi8KLQl1MzIJcHJfZmxhZzsJLyogZmxhZ3MgKi8KLQl1MTYJcHJfdWlkOwotCXUxNglwcl9naWQ7Ci0JcGlkX3QJcHJfcGlkLCBwcl9wcGlkLCBwcl9wZ3JwLCBwcl9zaWQ7Ci0JLyogTG90cyBtaXNzaW5nICovCi0JY2hhcglwcl9mbmFtZVsxNl07CS8qIGZpbGVuYW1lIG9mIGV4ZWN1dGFibGUgKi8KLQljaGFyCXByX3BzYXJnc1tFTEZfUFJBUkdTWl07CS8qIGluaXRpYWwgcGFydCBvZiBhcmcgbGlzdCAqLwotfTsKLQotI2luY2x1ZGUgPGxpbnV4L2hpZ2h1aWQuaD4KLQotLyoKLSNkZWZpbmUgaW5pdF9lbGZfYmluZm10IGluaXRfZWxmMzJfYmluZm10Ci0qLwotCi0jdW5kZWYgc3RhcnRfdGhyZWFkCi0jZGVmaW5lIHN0YXJ0X3RocmVhZCAgICAgICAgICAgICAgICAgICAgc3RhcnRfdGhyZWFkMzEgCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzdGFydF90aHJlYWQzMShzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBuZXdfcHN3LAotCQkJCSAgdW5zaWduZWQgbG9uZyBuZXdfc3RhY2twKQotewotCXNldF9mcyhVU0VSX0RTKTsKLQlyZWdzLT5wc3cubWFzawk9IHBzd191c2VyMzJfYml0czsKLQlyZWdzLT5wc3cuYWRkcgk9IG5ld19wc3c7Ci0JcmVncy0+Z3Byc1sxNV0JPSBuZXdfc3RhY2twOwotCWNyc3RfdGFibGVfZG93bmdyYWRlKGN1cnJlbnQtPm1tLCAxVUwgPDwgMzEpOwotfQotCi1NT0RVTEVfREVTQ1JJUFRJT04oIkJpbmFyeSBmb3JtYXQgbG9hZGVyIGZvciBjb21wYXRpYmlsaXR5IHdpdGggMzJiaXQgTGludXggZm9yIFMzOTAgYmluYXJpZXMsIgotICAgICAgICAgICAgICAgICAgICIgQ29weXJpZ2h0IDIwMDAgSUJNIENvcnBvcmF0aW9uIik7IAotTU9EVUxFX0FVVEhPUigiR2VyaGFyZCBUb25uIDx0b25AZGUuaWJtLmNvbT4iKTsKLQotI3VuZGVmIE1PRFVMRV9ERVNDUklQVElPTgotI3VuZGVmIE1PRFVMRV9BVVRIT1IKLQotI3VuZGVmIGNwdXRpbWVfdG9fdGltZXZhbAotI2RlZmluZSBjcHV0aW1lX3RvX3RpbWV2YWwgY3B1dGltZV90b19jb21wYXRfdGltZXZhbAotc3RhdGljIGlubGluZSB2b2lkCi1jcHV0aW1lX3RvX2NvbXBhdF90aW1ldmFsKGNvbnN0IGNwdXRpbWVfdCBjcHV0aW1lLCBzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgKnZhbHVlKQotewotCXZhbHVlLT50dl91c2VjID0gY3B1dGltZSAlIDEwMDAwMDA7Ci0JdmFsdWUtPnR2X3NlYyA9IGNwdXRpbWUgLyAxMDAwMDAwOwotfQotCi0jaW5jbHVkZSAiLi4vLi4vLi4vZnMvYmluZm10X2VsZi5jIgotCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9wdHJhY2UuaCBiL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCmluZGV4IDQxOWFlZjkuLmNkZTgxZmEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCkBAIC0xLDcgKzEsNyBAQAogI2lmbmRlZiBfUFRSQUNFMzJfSAogI2RlZmluZSBfUFRSQUNFMzJfSAogCi0jaW5jbHVkZSAiY29tcGF0X2xpbnV4LmgiICAvKiBuZWVkZWQgZm9yIF9wc3dfdDMyICovCisjaW5jbHVkZSAiY29tcGF0X2xpbnV4LmgiICAvKiBuZWVkZWQgZm9yIHBzd19jb21wYXRfdCAqLwogCiB0eXBlZGVmIHN0cnVjdCB7CiAJX191MzIgY3JbM107CkBAIC0zOCw3ICszOCw3IEBACiAKIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0MzIKIHsKLQlfcHN3X3QzMiBwc3c7CisJcHN3X2NvbXBhdF90IHBzdzsKIAl1MzIgZ3Byc1tOVU1fR1BSU107CiAJdTMyIGFjcnNbTlVNX0FDUlNdOwogCXUzMiBvcmlnX2dwcjI7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2RlYnVnLmMgYi9hcmNoL3MzOTAva2VybmVsL2RlYnVnLmMKaW5kZXggYzkzZDEyOS4uZDgwZmNkNCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9kZWJ1Zy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYwpAQCAtMTA3OSw3ICsxMDc5LDYgQEAKIAlzMzkwZGJmX3N5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUoczM5MGRiZl9kaXJfdGFibGUpOwogCW11dGV4X2xvY2soJmRlYnVnX211dGV4KTsKIAlkZWJ1Z19kZWJ1Z2ZzX3Jvb3RfZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoREVCVUdfRElSX1JPT1QsTlVMTCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGVidWc6IEluaXRpYWxpemF0aW9uIGNvbXBsZXRlXG4iKTsKIAlpbml0aWFsaXplZCA9IDE7CiAJbXV0ZXhfdW5sb2NrKCZkZWJ1Z19tdXRleCk7CiAKQEAgLTExOTMsNyArMTE5Miw2IEBACiAJZm9yKDsgaXNzcGFjZSgqYnVmKTsgYnVmKyspOwogCXJjID0gc2ltcGxlX3N0cnRvdWwoYnVmLCAmYnVmLCAxMCk7CiAJaWYoKmJ1Zil7Ci0JCXByaW50aygiZGVidWc6IG5vIGludGVnZXIgc3BlY2lmaWVkIVxuIik7CiAJCXJjID0gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIHJjOwpAQCAtMTM0MCwxOSArMTMzOCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgCW1lbXNldChpZC0+YXJlYXNbaV1bal0sIDAsIFBBR0VfU0laRSk7CiAJCQl9CiAJCX0KLSAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICJkZWJ1ZzogJXM6IGFsbCBhcmVhcyBmbHVzaGVkXG4iLGlkLT5uYW1lKTsKICAgICAgICAgfSBlbHNlIGlmKGFyZWEgPj0gMCAmJiBhcmVhIDwgaWQtPm5yX2FyZWFzKSB7CiAgICAgICAgICAgICAgICAgaWQtPmFjdGl2ZV9lbnRyaWVzW2FyZWFdID0gMDsKIAkJaWQtPmFjdGl2ZV9wYWdlc1thcmVhXSA9IDA7CiAJCWZvcihpID0gMDsgaSA8IGlkLT5wYWdlc19wZXJfYXJlYTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgCW1lbXNldChpZC0+YXJlYXNbYXJlYV1baV0sMCxQQUdFX1NJWkUpOwogCQl9Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiZGVidWc6ICVzOiBhcmVhICVpIGhhcyBiZWVuIGZsdXNoZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBpZC0+bmFtZSwgYXJlYSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTwotICAgICAgICAgICAgICAgICAgICAgICJkZWJ1ZzogJXM6IGFyZWEgJWkgY2Fubm90IGJlIGZsdXNoZWQgKHJhbmdlOiAlaSAtICVpKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkLT5uYW1lLCBhcmVhLCAwLCBpZC0+bnJfYXJlYXMtMSk7CiAgICAgICAgIH0KICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaWQtPmxvY2ssZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jCmluZGV4IGQwZTA5NjguLjJhMmNhMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZWFybHkuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2Vhcmx5LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgPGFzbS9pcGwuaD4KICNpbmNsdWRlIDxhc20vbG93Y29yZS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KQEAgLTI2LDEyICsyNyw0MCBAQAogLyoKICAqIENyZWF0ZSBhIEtlcm5lbCBOU1MgaWYgdGhlIFNBVkVTWVM9IHBhcmFtZXRlciBpcyBkZWZpbmVkCiAgKi8KLSNkZWZpbmUgREVGU1lTX0NNRF9TSVpFCQk5NgorI2RlZmluZSBERUZTWVNfQ01EX1NJWkUJCTEyOAogI2RlZmluZSBTQVZFU1lTX0NNRF9TSVpFCTMyCiAKIGNoYXIga2VybmVsX25zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXTsKIAorc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2Jvb3RfY29tbWFuZF9saW5lKHZvaWQpOworCisKICNpZmRlZiBDT05GSUdfU0hBUkVEX0tFUk5FTAoraW50IF9faW5pdCBzYXZlc3lzX2lwbF9uc3MoY2hhciAqY21kLCBjb25zdCBpbnQgY21kbGVuKTsKKworYXNtKAorCSIJLnNlY3Rpb24gLmluaXQudGV4dCxcImF4XCIsQHByb2diaXRzXG4iCisJIgkuYWxpZ24JNFxuIgorCSIJLnR5cGUJc2F2ZXN5c19pcGxfbnNzLCBAZnVuY3Rpb25cbiIKKwkic2F2ZXN5c19pcGxfbnNzOlxuIgorI2lmZGVmIENPTkZJR182NEJJVAorCSIJc3RtZwk2LDE1LDQ4KDE1KVxuIgorCSIJbGdyCTE0LDNcbiIKKwkiCXNhbTMxXG4iCisJIglkaWFnCTIsMTQsMHg4XG4iCisJIglzYW02NFxuIgorCSIJbGdyCTIsMTRcbiIKKwkiCWxtZwk2LDE1LDQ4KDE1KVxuIgorI2Vsc2UKKwkiCXN0bQk2LDE1LDI0KDE1KVxuIgorCSIJbHIJMTQsM1xuIgorCSIJZGlhZwkyLDE0LDB4OFxuIgorCSIJbHIJMiwxNFxuIgorCSIJbG0JNiwxNSwyNCgxNSlcbiIKKyNlbmRpZgorCSIJYnIJMTRcbiIKKwkiCS5zaXplCXNhdmVzeXNfaXBsX25zcywgLi1zYXZlc3lzX2lwbF9uc3NcbiIpOworCiBzdGF0aWMgbm9pbmxpbmUgX19pbml0IHZvaWQgY3JlYXRlX2tlcm5lbF9uc3Modm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgaSwgc3RleHRfcGZuLCBlc2hhcmVkX3BmbiwgZW5kX3BmbiwgbWluX3NpemU7CkBAIC0zOSw2ICs2OCw3IEBACiAJdW5zaWduZWQgaW50IHNpbml0cmRfcGZuLCBlaW5pdHJkX3BmbjsKICNlbmRpZgogCWludCByZXNwb25zZTsKKwlzaXplX3QgbGVuOwogCWNoYXIgKnNhdmVzeXNfcHRyOwogCWNoYXIgdXBwZXJfY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKIAljaGFyIGRlZnN5c19jbWRbREVGU1lTX0NNRF9TSVpFXTsKQEAgLTQ5LDggKzc5LDggQEAKIAkJcmV0dXJuOwogCiAJLyogQ29udmVydCBDT01NQU5EX0xJTkUgdG8gdXBwZXIgY2FzZSAqLwotCWZvciAoaSA9IDA7IGkgPCBzdHJsZW4oQ09NTUFORF9MSU5FKTsgaSsrKQotCQl1cHBlcl9jb21tYW5kX2xpbmVbaV0gPSB0b3VwcGVyKENPTU1BTkRfTElORVtpXSk7CisJZm9yIChpID0gMDsgaSA8IHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7IGkrKykKKwkJdXBwZXJfY29tbWFuZF9saW5lW2ldID0gdG91cHBlcihib290X2NvbW1hbmRfbGluZVtpXSk7CiAKIAlzYXZlc3lzX3B0ciA9IHN0cnN0cih1cHBlcl9jb21tYW5kX2xpbmUsICJTQVZFU1lTPSIpOwogCkBAIC04Myw3ICsxMTMsOCBAQAogCX0KICNlbmRpZgogCi0Jc3ByaW50ZihkZWZzeXNfY21kLCAiJXMgRVcgTUlOU0laRT0lLjdpSyIsIGRlZnN5c19jbWQsIG1pbl9zaXplKTsKKwlzcHJpbnRmKGRlZnN5c19jbWQsICIlcyBFVyBNSU5TSVpFPSUuN2lLIFBBUk1SRUdTPTAtMTMiLAorCQlkZWZzeXNfY21kLCBtaW5fc2l6ZSk7CiAJc3ByaW50ZihzYXZlc3lzX2NtZCwgIlNBVkVTWVMgJXMgXG4gSVBMICVzIiwKIAkJa2VybmVsX25zc19uYW1lLCBrZXJuZWxfbnNzX25hbWUpOwogCkBAIC05NCwxMyArMTI1LDI0IEBACiAJCXJldHVybjsKIAl9CiAKLQlfX2NwY21kKHNhdmVzeXNfY21kLCBOVUxMLCAwLCAmcmVzcG9uc2UpOworCWxlbiA9IHN0cmxlbihzYXZlc3lzX2NtZCk7CisJQVNDRUJDKHNhdmVzeXNfY21kLCBsZW4pOworCXJlc3BvbnNlID0gc2F2ZXN5c19pcGxfbnNzKHNhdmVzeXNfY21kLCBsZW4pOwogCi0JaWYgKHJlc3BvbnNlICE9IHN0cmxlbihzYXZlc3lzX2NtZCkpIHsKKwkvKiBPbiBzdWNjZXNzOiByZXNwb25zZSBpcyBlcXVhbCB0byB0aGUgY29tbWFuZCBzaXplLAorCSAqCSAgICAgICBtYXggU0FWRVNZU19DTURfU0laRQorCSAqIE9uIGVycm9yOiByZXNwb25zZSBjb250YWlucyB0aGUgbnVtZXJpYyBwb3J0aW9uIG9mIGNwIGVycm9yIG1lc3NhZ2UuCisJICoJICAgICBmb3IgU0FWRVNZUyBpdCB3aWxsIGJlID49IDI2MworCSAqLworCWlmIChyZXNwb25zZSA+IFNBVkVTWVNfQ01EX1NJWkUpIHsKIAkJa2VybmVsX25zc19uYW1lWzBdID0gJ1wwJzsKIAkJcmV0dXJuOwogCX0KIAorCS8qIHJlLXNldHVwIGJvb3QgY29tbWFuZCBsaW5lIHdpdGggbmV3IGlwbCB2bSBwYXJtcyAqLworCWlwbF91cGRhdGVfcGFyYW1ldGVycygpOworCXNldHVwX2Jvb3RfY29tbWFuZF9saW5lKCk7CisKIAlpcGxfZmxhZ3MgPSBJUExfTlNTX1ZBTElEOwogfQogCkBAIC0xNDEsMTA5ICsxODMsMTEgQEAKIAlpZiAoY3B1aW5mby0+Y3B1X2lkLnZlcnNpb24gPT0gMHhmZikKIAkJbWFjaGluZV9mbGFncyB8PSBNQUNISU5FX0ZMQUdfVk07CiAKLQkvKiBSdW5uaW5nIG9uIGEgUC8zOTAgPyAqLwotCWlmIChjcHVpbmZvLT5jcHVfaWQubWFjaGluZSA9PSAweDc0OTApCi0JCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX1AzOTA7Ci0KIAkvKiBSdW5uaW5nIHVuZGVyIEtWTSA/ICovCiAJaWYgKGNwdWluZm8tPmNwdV9pZC52ZXJzaW9uID09IDB4ZmUpCiAJCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX0tWTTsKIH0KIAotI2lmZGVmIENPTkZJR182NEJJVAotc3RhdGljIG5vaW5saW5lIF9faW5pdCBpbnQgbWVtb3J5X2Zhc3RfZGV0ZWN0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB2YWwwID0gMDsKLQl1bnNpZ25lZCBsb25nIHZhbDEgPSAweGM7Ci0JaW50IHJldCA9IC1FTk9TWVM7Ci0KLQlpZiAoaXBsX2ZsYWdzICYgSVBMX05TU19WQUxJRCkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJZGlhZwklMSwlMiwweDI2MFxuIgotCQkiMDoJbGhpCSUwLDBcbiIKLQkJIjE6XG4iCi0JCUVYX1RBQkxFKDBiLDFiKQotCQk6ICIrZCIgKHJldCksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7Ci0KLQlpZiAocmV0IHx8IHZhbDAgIT0gdmFsMSkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQltZW1vcnlfY2h1bmtbMF0uc2l6ZSA9IHZhbDAgKyAxOwotCXJldHVybiAwOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IG1lbW9yeV9mYXN0X2RldGVjdCh2b2lkKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgX19pbml0IHVuc2lnbmVkIGxvbmcgX190cHJvdCh1bnNpZ25lZCBsb25nIGFkZHIpCi17Ci0JaW50IGNjID0gLTE7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJdHByb3QJMCglMSksMFxuIgotCQkiMDoJaXBtCSUwXG4iCi0JCSIJc3JsCSUwLDI4XG4iCi0JCSIxOlxuIgotCQlFWF9UQUJMRSgwYiwxYikKLQkJOiAiK2QiIChjYykgOiAiYSIgKGFkZHIpIDogImNjIik7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWNjOwotfQotCi0vKiBDaGVja2luZyBtZW1vcnkgaW4gMTI4S0IgaW5jcmVtZW50cy4gKi8KLSNkZWZpbmUgQ0hVTktfSU5DUgkoMVVMIDw8IDE3KQotI2RlZmluZSBBRERSMkcJCSgxVUwgPDwgMzEpCi0KLXN0YXRpYyBub2lubGluZSBfX2luaXQgdm9pZCBmaW5kX21lbW9yeV9jaHVua3ModW5zaWduZWQgbG9uZyBtZW1zaXplKQotewotCXVuc2lnbmVkIGxvbmcgYWRkciA9IDAsIG9sZF9hZGRyID0gMDsKLQl1bnNpZ25lZCBsb25nIG9sZF9jYyA9IENIVU5LX1JFQURfV1JJVEU7Ci0JdW5zaWduZWQgbG9uZyBjYzsKLQlpbnQgY2h1bmsgPSAwOwotCi0Jd2hpbGUgKGNodW5rIDwgTUVNT1JZX0NIVU5LUykgewotCQljYyA9IF9fdHByb3QoYWRkcik7Ci0JCXdoaWxlIChjYyA9PSBvbGRfY2MpIHsKLQkJCWFkZHIgKz0gQ0hVTktfSU5DUjsKLQkJCWlmIChtZW1zaXplICYmIGFkZHIgPj0gbWVtc2l6ZSkKLQkJCQlicmVhazsKLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCQlpZiAoYWRkciA9PSBBRERSMkcpCi0JCQkJYnJlYWs7Ci0jZW5kaWYKLQkJCWNjID0gX190cHJvdChhZGRyKTsKLQkJfQotCi0JCWlmIChvbGRfYWRkciAhPSBhZGRyICYmCi0JCSAgICAob2xkX2NjID09IENIVU5LX1JFQURfV1JJVEUgfHwgb2xkX2NjID09IENIVU5LX1JFQURfT05MWSkpIHsKLQkJCW1lbW9yeV9jaHVua1tjaHVua10uYWRkciA9IG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS5zaXplID0gYWRkciAtIG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS50eXBlID0gb2xkX2NjOwotCQkJY2h1bmsrKzsKLQkJfQotCi0JCW9sZF9hZGRyID0gYWRkcjsKLQkJb2xkX2NjID0gY2M7Ci0KLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCWlmIChhZGRyID09IEFERFIyRykKLQkJCWJyZWFrOwotI2VuZGlmCi0JCS8qCi0JCSAqIEZpbmlzaCBtZW1vcnkgZGV0ZWN0aW9uIGF0IHRoZSBmaXJzdCBob2xlCi0JCSAqIGlmIHN0b3JhZ2Ugc2l6ZSBpcyB1bmtub3duLgotCQkgKi8KLQkJaWYgKGNjID09IC0xVUwgJiYgIW1lbXNpemUpCi0JCQlicmVhazsKLQkJaWYgKG1lbXNpemUgJiYgYWRkciA+PSBtZW1zaXplKQotCQkJYnJlYWs7Ci0JfQotfQotCiBzdGF0aWMgX19pbml0IHZvaWQgZWFybHlfcGdtX2NoZWNrX2hhbmRsZXIodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CkBAIC0zODAsMjMgKzMyNCw2MSBAQAogI2VuZGlmCiB9CiAKK3N0YXRpYyBfX2luaXQgdm9pZCByZXNjdWVfaW5pdHJkKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECisJLyoKKwkgKiBNb3ZlIHRoZSBpbml0cmQgcmlnaHQgYmVoaW5kIHRoZSBic3Mgc2VjdGlvbiBpbiBjYXNlIGl0IHN0YXJ0cworCSAqIHdpdGhpbiB0aGUgYnNzIHNlY3Rpb24uIFNvIHdlIGRvbid0IG92ZXJ3cml0ZSBpdCB3aGVuIHRoZSBic3MKKwkgKiBzZWN0aW9uIGdldHMgY2xlYXJlZC4KKwkgKi8KKwlpZiAoIUlOSVRSRF9TVEFSVCB8fCAhSU5JVFJEX1NJWkUpCisJCXJldHVybjsKKwlpZiAoSU5JVFJEX1NUQVJUID49ICh1bnNpZ25lZCBsb25nKSBfX2Jzc19zdG9wKQorCQlyZXR1cm47CisJbWVtbW92ZShfX2Jzc19zdG9wLCAodm9pZCAqKSBJTklUUkRfU1RBUlQsIElOSVRSRF9TSVpFKTsKKwlJTklUUkRfU1RBUlQgPSAodW5zaWduZWQgbG9uZykgX19ic3Nfc3RvcDsKKyNlbmRpZgorfQorCisvKiBTZXQgdXAgYm9vdCBjb21tYW5kIGxpbmUgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ib290X2NvbW1hbmRfbGluZSh2b2lkKQoreworCWNoYXIgKnBhcm0gPSBOVUxMOworCisJLyogY29weSBhcmNoIGNvbW1hbmQgbGluZSAqLworCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQVJDSF9DT01NQU5EX0xJTkVfU0laRSk7CisJYm9vdF9jb21tYW5kX2xpbmVbQVJDSF9DT01NQU5EX0xJTkVfU0laRSAtIDFdID0gMDsKKworCS8qIGFwcGVuZCBJUEwgUEFSTSBkYXRhIHRvIHRoZSBib290IGNvbW1hbmQgbGluZSAqLworCWlmIChNQUNISU5FX0lTX1ZNKSB7CisJCXBhcm0gPSBib290X2NvbW1hbmRfbGluZSArIHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7CisJCSpwYXJtKysgPSAnICc7CisJCWdldF9pcGxfdm1wYXJtKHBhcm0pOworCQlpZiAocGFybVswXSA9PSAnPScpCisJCQltZW1tb3ZlKGJvb3RfY29tbWFuZF9saW5lLCBwYXJtICsgMSwgc3RybGVuKHBhcm0pKTsKKwl9Cit9CisKKwogLyoKICAqIFNhdmUgaXBsIHBhcmFtZXRlcnMsIGNsZWFyIGJzcyBtZW1vcnksIGluaXRpYWxpemUgc3RvcmFnZSBrZXlzCiAgKiBhbmQgY3JlYXRlIGEga2VybmVsIE5TUyBhdCBzdGFydHVwIGlmIHRoZSBTQVZFU1lTPSBwYXJtIGlzIGRlZmluZWQKICAqLwogdm9pZCBfX2luaXQgc3RhcnR1cF9pbml0KHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIG1lbXNpemU7Ci0KIAlpcGxfc2F2ZV9wYXJhbWV0ZXJzKCk7CisJcmVzY3VlX2luaXRyZCgpOwogCWNsZWFyX2Jzc19zZWN0aW9uKCk7CiAJaW5pdF9rZXJuZWxfc3RvcmFnZV9rZXkoKTsKIAlsb2NrZGVwX2luaXQoKTsKIAlsb2NrZGVwX29mZigpOwotCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKLQljcmVhdGVfa2VybmVsX25zcygpOwogCXNvcnRfbWFpbl9leHRhYmxlKCk7CiAJc2V0dXBfbG93Y29yZV9lYXJseSgpOworCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKKwlpcGxfdXBkYXRlX3BhcmFtZXRlcnMoKTsKKwlzZXR1cF9ib290X2NvbW1hbmRfbGluZSgpOworCWNyZWF0ZV9rZXJuZWxfbnNzKCk7CiAJZGV0ZWN0X212cGcoKTsKIAlkZXRlY3RfaWVlZSgpOwogCWRldGVjdF9jc3AoKTsKQEAgLTQwNCwxOCArMzg2LDcgQEAKIAlkZXRlY3RfZGlhZzQ0KCk7CiAJZGV0ZWN0X21hY2hpbmVfZmFjaWxpdGllcygpOwogCXNldHVwX2hwYWdlKCk7Ci0Jc2NscF9yZWFkX2luZm9fZWFybHkoKTsKIAlzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KCk7Ci0JbWVtc2l6ZSA9IHNjbHBfbWVtb3J5X2RldGVjdCgpOwotI2lmbmRlZiBDT05GSUdfNjRCSVQKLQkvKgotCSAqIENhbid0IGRlYWwgd2l0aCBtb3JlIHRoYW4gMkcgaW4gMzEgYml0IGFkZHJlc3NpbmcgbW9kZSwgc28KLQkgKiBsaW1pdCB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgc3RyYW5nZSBzaWRlIGVmZmVjdHMuCi0JICovCi0JaWYgKG1lbXNpemUgPiBBRERSMkcpCi0JCW1lbXNpemUgPSBBRERSMkc7Ci0jZW5kaWYKLQlpZiAobWVtb3J5X2Zhc3RfZGV0ZWN0KCkgPCAwKQotCQlmaW5kX21lbW9yeV9jaHVua3MoKHVuc2lnbmVkIGxvbmcpIG1lbXNpemUpOworCWRldGVjdF9tZW1vcnlfbGF5b3V0KG1lbW9yeV9jaHVuayk7CiAJbG9ja2RlcF9vbigpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYyBiL2FyY2gvczM5MC9rZXJuZWwvaXBsLmMKaW5kZXggNTMyNTQyNC4uNTRiMjc3OSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2lwbC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8YXNtL2lwbC5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KQEAgLTIyLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxhc20vZWJjZGljLmg+CiAjaW5jbHVkZSA8YXNtL3Jlc2V0Lmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2RlZmluZSBJUExfUEFSTV9CTE9DS19WRVJTSU9OIDAKIApAQCAtMTIxLDYgKzEyMyw3IEBACiAJUkVJUExfTUVUSE9EX0ZDUF9ST19WTSwKIAlSRUlQTF9NRVRIT0RfRkNQX0RVTVAsCiAJUkVJUExfTUVUSE9EX05TUywKKwlSRUlQTF9NRVRIT0RfTlNTX0RJQUcsCiAJUkVJUExfTUVUSE9EX0RFRkFVTFQsCiB9OwogCkBAIC0xMzQsMTQgKzEzNywxNSBAQAogCiBzdGF0aWMgaW50IGRpYWczMDhfc2V0X3dvcmtzID0gMDsKIAorc3RhdGljIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIGlwbF9ibG9jazsKKwogc3RhdGljIGludCByZWlwbF9jYXBhYmlsaXRpZXMgPSBJUExfVFlQRV9VTktOT1dOOwogCiBzdGF0aWMgZW51bSBpcGxfdHlwZSByZWlwbF90eXBlID0gSVBMX1RZUEVfVU5LTk9XTjsKIHN0YXRpYyBlbnVtIGlwbF9tZXRob2QgcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CiBzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX2ZjcDsKIHN0YXRpYyBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqcmVpcGxfYmxvY2tfY2N3OwotCi1zdGF0aWMgY2hhciByZWlwbF9uc3NfbmFtZVtOU1NfTkFNRV9TSVpFICsgMV07CitzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX25zczsKIAogc3RhdGljIGludCBkdW1wX2NhcGFiaWxpdGllcyA9IERVTVBfVFlQRV9OT05FOwogc3RhdGljIGVudW0gZHVtcF90eXBlIGR1bXBfdHlwZSA9IERVTVBfVFlQRV9OT05FOwpAQCAtMjYzLDYgKzI2Nyw1NiBAQAogCiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfdHlwZV9hdHRyID0gX19BVFRSX1JPKGlwbF90eXBlKTsKIAorLyogVk0gSVBMIFBBUk0gcm91dGluZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV92bXBhcm0oY2hhciAqZGVzdCwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCWludCBpOworCWludCBsZW4gPSAwOworCWNoYXIgaGFzX2xvd2VyY2FzZSA9IDA7CisKKwlpZiAoKGlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkgJiYKKwkgICAgKGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID4gMCkpIHsKKworCQlsZW4gPSBpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbjsKKwkJbWVtY3B5KGRlc3QsIGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIGxlbik7CisJCS8qIElmIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaXMgbG93ZXJjYXNlLCB3ZSBhc3N1bWUgbWl4ZWQKKwkJICogY2FzZTsgb3RoZXJ3aXNlIHdlIGNvbnZlcnQgZXZlcnl0aGluZyB0byBsb3dlcmNhc2UuCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCisJCQlpZiAoKGRlc3RbaV0gPiAweDgwICYmIGRlc3RbaV0gPCAweDhhKSB8fCAvKiBhLWkgKi8KKwkJCSAgICAoZGVzdFtpXSA+IDB4OTAgJiYgZGVzdFtpXSA8IDB4OWEpIHx8IC8qIGotciAqLworCQkJICAgIChkZXN0W2ldID4gMHhhMSAmJiBkZXN0W2ldIDwgMHhhYSkpIHsgLyogcy16ICovCisJCQkJaGFzX2xvd2VyY2FzZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCWlmICghaGFzX2xvd2VyY2FzZSkKKwkJCUVCQ19UT0xPV0VSKGRlc3QsIGxlbik7CisJCUVCQ0FTQyhkZXN0LCBsZW4pOworCX0KKwlkZXN0W2xlbl0gPSAwOworfQorCit2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKmRlc3QpCit7CisJaWYgKGRpYWczMDhfc2V0X3dvcmtzICYmIChpcGxfYmxvY2suaGRyLnBidCA9PSBESUFHMzA4X0lQTF9UWVBFX0NDVykpCisJCXJlaXBsX2dldF9hc2NpaV92bXBhcm0oZGVzdCwgJmlwbF9ibG9jayk7CisJZWxzZQorCQlkZXN0WzBdID0gMDsKK30KKworc3RhdGljIHNzaXplX3QgaXBsX3ZtX3Bhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJY2hhciBwYXJtW0RJQUczMDhfVk1QQVJNX1NJWkUgKyAxXSA9IHt9OworCisJZ2V0X2lwbF92bXBhcm0ocGFybSk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBwYXJtKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfaXBsX3ZtX3Bhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08sIGlwbF92bV9wYXJtX3Nob3csIE5VTEwpOworCiBzdGF0aWMgc3NpemVfdCBzeXNfaXBsX2RldmljZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKQEAgLTI4NSwxNCArMzM5LDggQEAKIHN0YXRpYyBzc2l6ZV90IGlwbF9wYXJhbWV0ZXJfcmVhZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJICBjaGFyICpidWYsIGxvZmZfdCBvZmYsIHNpemVfdCBjb3VudCkKIHsKLQl1bnNpZ25lZCBpbnQgc2l6ZSA9IElQTF9QQVJNQkxPQ0tfU0laRTsKLQotCWlmIChvZmYgPiBzaXplKQotCQlyZXR1cm4gMDsKLQlpZiAob2ZmICsgY291bnQgPiBzaXplKQotCQljb3VudCA9IHNpemUgLSBvZmY7Ci0JbWVtY3B5KGJ1ZiwgKHZvaWQgKilJUExfUEFSTUJMT0NLX1NUQVJUICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBJUExfUEFSTUJMT0NLX1NUQVJULAorCQkJCQlJUExfUEFSTUJMT0NLX1NJWkUpOwogfQogCiBzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgaXBsX3BhcmFtZXRlcl9hdHRyID0gewpAQCAtMzEwLDEyICszNTgsNyBAQAogCXVuc2lnbmVkIGludCBzaXplID0gSVBMX1BBUk1CTE9DS19TVEFSVC0+aXBsX2luZm8uZmNwLnNjcF9kYXRhX2xlbjsKIAl2b2lkICpzY3BfZGF0YSA9ICZJUExfUEFSTUJMT0NLX1NUQVJULT5pcGxfaW5mby5mY3Auc2NwX2RhdGE7CiAKLQlpZiAob2ZmID4gc2l6ZSkKLQkJcmV0dXJuIDA7Ci0JaWYgKG9mZiArIGNvdW50ID4gc2l6ZSkKLQkJY291bnQgPSBzaXplIC0gb2ZmOwotCW1lbWNweShidWYsIHNjcF9kYXRhICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBzY3BfZGF0YSwgc2l6ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBpcGxfc2NwX2RhdGFfYXR0ciA9IHsKQEAgLTM3MCwxNSArNDEzLDI3IEBACiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQogCV9fQVRUUihsb2FkcGFybSwgMDQ0NCwgaXBsX2Njd19sb2FkcGFybV9zaG93LCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfY2N3X2F0dHJzX3ZtW10gPSB7CisJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCisJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKKwkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfaXBsX3ZtX3Bhcm1fYXR0ci5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXBsX2Njd19hdHRyc19scGFyW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKIAkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBpcGxfY2N3X2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gaXBsX2Njd19hdHRycywKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlwbF9jY3dfYXR0cl9ncm91cF92bSA9IHsKKwkuYXR0cnMgPSBpcGxfY2N3X2F0dHJzX3ZtLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaXBsX2Njd19hdHRyX2dyb3VwX2xwYXIgPSB7CisJLmF0dHJzID0gaXBsX2Njd19hdHRyc19scGFyCiB9OwogCiAvKiBOU1MgaXBsIGRldmljZSBhdHRyaWJ1dGVzICovCkBAIC0zODgsNiArNDQzLDggQEAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfbnNzX2F0dHJzW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfbnNzX25hbWVfYXR0ci5hdHRyLAorCSZzeXNfaXBsX2Njd19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19pcGxfdm1fcGFybV9hdHRyLmF0dHIsCiAJTlVMTCwKIH07CiAKQEAgLTQ1MCw3ICs1MDcsMTIgQEAKIAl9CiAJc3dpdGNoIChpcGxfaW5mby50eXBlKSB7CiAJY2FzZSBJUExfVFlQRV9DQ1c6Ci0JCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwgJmlwbF9jY3dfYXR0cl9ncm91cCk7CisJCWlmIChNQUNISU5FX0lTX1ZNKQorCQkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmlwbF9rc2V0LT5rb2JqLAorCQkJCQkJJmlwbF9jY3dfYXR0cl9ncm91cF92bSk7CisJCWVsc2UKKwkJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwKKwkJCQkJCSZpcGxfY2N3X2F0dHJfZ3JvdXBfbHBhcik7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfRkNQOgogCWNhc2UgSVBMX1RZUEVfRkNQX0RVTVA6CkBAIC00ODEsNiArNTQzLDgzIEBACiAgKiByZWlwbCBzaHV0ZG93biBhY3Rpb246IFJlYm9vdCBMaW51eCBvbiBzaHV0ZG93bi4KICAqLwogCisvKiBWTSBJUEwgUEFSTSBhdHRyaWJ1dGVzICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX3ZtcGFybV9zaG93KHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgY2hhciAqcGFnZSkKK3sKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKworCXJlaXBsX2dldF9hc2NpaV92bXBhcm0odm1wYXJtLCBpcGIpOworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlc1xuIiwgdm1wYXJtKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfZ2VuZXJpY192bXBhcm1fc3RvcmUoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCQkJICBzaXplX3Qgdm1wYXJtX21heCwKKwkJCQkJICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IGksIGlwX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJaXBfbGVuID0gbGVuOworCWlmICgobGVuID4gMCkgJiYgKGJ1ZltsZW4gLSAxXSA9PSAnXG4nKSkKKwkJaXBfbGVuLS07CisKKwlpZiAoaXBfbGVuID4gdm1wYXJtX21heCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBwYXJtIGlzIHVzZWQgdG8gc3RvcmUga2VybmVsIG9wdGlvbnMsIGNoZWNrIGZvciBjb21tb24gY2hhcnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgaXBfbGVuOyBpKyspCisJCWlmICghKGlzYWxudW0oYnVmW2ldKSB8fCBpc2FzY2lpKGJ1ZltpXSkgfHwgaXNwcmludChidWZbaV0pKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIDAsIERJQUczMDhfVk1QQVJNX1NJWkUpOworCWlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID0gaXBfbGVuOworCWlmIChpcF9sZW4gPiAwKSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzIHw9IERJQUczMDhfVk1fRkxBR1NfVlBfVkFMSUQ7CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBidWYsIGlwX2xlbik7CisJCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBpcF9sZW4pOworCX0gZWxzZSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9IH5ESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCX0KKworCXJldHVybiBsZW47Cit9CisKKy8qIE5TUyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9uc3Nfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfbnNzLCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19uc3MsIDU2LCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIDY0LCBidWYsIGxlbik7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3Nfdm1wYXJtX3Nob3csCisJCQkJCXJlaXBsX25zc192bXBhcm1fc3RvcmUpOworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyID0KKwlfX0FUVFIocGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd192bXBhcm1fc2hvdywKKwkJCQkJcmVpcGxfY2N3X3ZtcGFybV9zdG9yZSk7CisKIC8qIEZDUCByZWlwbCBkZXZpY2UgYXR0cmlidXRlcyAqLwogCiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfZmNwLCB3d3BuLCAiMHglMDE2bGx4XG4iLCAiJTAxNmxseFxuIiwKQEAgLTUxMywyNyArNjUyLDI2IEBACiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfY2N3LCBkZXZpY2UsICIwLjAuJTA0bGx4XG4iLCAiMC4wLiVsbHhcbiIsCiAJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwogCi1zdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0pCitzdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0sCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaWJwKQogewotCW1lbWNweShsb2FkcGFybSwgJnJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JICAgICAgIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGxvYWRwYXJtLCBpYnAtPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJRUJDQVNDKGxvYWRwYXJtLCBMT0FEUEFSTV9MRU4pOwogCWxvYWRwYXJtW0xPQURQQVJNX0xFTl0gPSAwOwogCXN0cnN0cmlwKGxvYWRwYXJtKTsKIH0KIAotc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCi0JCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc2hvdyhzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiLAorCQkJCQkgICBjaGFyICpwYWdlKQogewogCWNoYXIgYnVmW0xPQURQQVJNX0xFTiArIDFdOwogCi0JcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1Zik7CisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1ZiwgaXBiKTsKIAlyZXR1cm4gc3ByaW50ZihwYWdlLCAiJXNcbiIsIGJ1Zik7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKLQkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAotCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCiB7CiAJaW50IGksIGxwX2xlbjsKIApAQCAtNTUyLDM1ICs2OTAsMTI4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAkvKiBpbml0aWFsaXplIGxvYWRwYXJtIHdpdGggYmxhbmtzICovCi0JbWVtc2V0KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAnICcsIExPQURQQVJNX0xFTik7CisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgJyAnLCBMT0FEUEFSTV9MRU4pOwogCS8qIGNvcHkgYW5kIGNvbnZlcnQgdG8gZWJjZGljICovCi0JbWVtY3B5KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCBidWYsIGxwX2xlbik7Ci0JQVNDRUJDKHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgYnVmLCBscF9sZW4pOworCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJcmV0dXJuIGxlbjsKIH0KIAotc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQotCV9fQVRUUihsb2FkcGFybSwgMDY0NCwgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3csCi0JICAgICAgIHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZSk7CisvKiBOU1Mgd3JhcHBlciAqLworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zaG93KHJlaXBsX2Jsb2NrX25zcywgcGFnZSk7Cit9CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAorCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc3RvcmUocmVpcGxfYmxvY2tfbnNzLCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfbG9hZHBhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIGJ1ZiwgbGVuKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQorCV9fQVRUUihsb2FkcGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd19sb2FkcGFybV9zaG93LAorCQkJCQkgICAgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnJlaXBsX2Njd19hdHRyc192bVtdID0geworCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNfbHBhcltdID0gewogCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCiAJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cCA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtID0gewogCS5uYW1lICA9IElQTF9DQ1dfU1RSLAotCS5hdHRycyA9IHJlaXBsX2Njd19hdHRycywKKwkuYXR0cnMgPSByZWlwbF9jY3dfYXR0cnNfdm0sCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyID0geworCS5uYW1lICA9IElQTF9DQ1dfU1RSLAorCS5hdHRycyA9IHJlaXBsX2Njd19hdHRyc19scGFyLAogfTsKIAogCiAvKiBOU1MgcmVpcGwgZGV2aWNlIGF0dHJpYnV0ZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShjaGFyICpkc3QsCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCW1lbWNweShkc3QsIGlwYi0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwlFQkNBU0MoZHN0LCBOU1NfTkFNRV9TSVpFKTsKKwlkc3RbTlNTX05BTUVfU0laRV0gPSAwOworfQogCi1ERUZJTkVfSVBMX0FUVFJfU1RSX1JXKHJlaXBsX25zcywgbmFtZSwgIiVzXG4iLCAiJXNcbiIsIHJlaXBsX25zc19uYW1lKTsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCWNoYXIgbnNzX25hbWVbTlNTX05BTUVfU0laRSArIDFdID0ge307CisKKwlyZWlwbF9nZXRfYXNjaWlfbnNzX25hbWUobnNzX25hbWUsIHJlaXBsX2Jsb2NrX25zcyk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBuc3NfbmFtZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgbnNzX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJbnNzX2xlbiA9IGxlbjsKKwlpZiAoKGxlbiA+IDApICYmIChidWZbbGVuIC0gMV0gPT0gJ1xuJykpCisJCW5zc19sZW4tLTsKKworCWlmIChuc3NfbGVuID4gTlNTX05BTUVfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIDB4NDAsIE5TU19OQU1FX1NJWkUpOworCWlmIChuc3NfbGVuID4gMCkgeworCQlyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PQorCQkJRElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJCW1lbWNweShyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy5uc3NfbmFtZSwgYnVmLCBuc3NfbGVuKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBuc3NfbGVuKTsKKwkJRUJDX1RPVVBQRVIocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIG5zc19sZW4pOworCX0gZWxzZSB7CisJCXJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9CisJCQl+RElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfbnNzX25hbWVfYXR0ciA9CisJX19BVFRSKG5hbWUsIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbmFtZV9zaG93LAorCQkJCQlyZWlwbF9uc3NfbmFtZV9zdG9yZSk7CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyID0KKwlfX0FUVFIobG9hZHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbG9hZHBhcm1fc2hvdywKKwkJCQkJICAgIHJlaXBsX25zc19sb2FkcGFybV9zdG9yZSk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9uc3NfYXR0cnNbXSA9IHsKIAkmc3lzX3JlaXBsX25zc19uYW1lX2F0dHIuYXR0ciwKKwkmc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9uc3Nfdm1wYXJtX2F0dHIuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNjE3LDcgKzg0OCwxMCBAQAogCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfRkNQX0RVTVA7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfTlNTOgotCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTOworCQlpZiAoZGlhZzMwOF9zZXRfd29ya3MpCisJCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc7CisJCWVsc2UKKwkJCXJlaXBsX21ldGhvZCA9IFJFSVBMX01FVEhPRF9OU1M7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfVU5LTk9XTjoKIAkJcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CkBAIC02NTUsMTEgKzg4OSwzOCBAQAogCiBzdGF0aWMgc3RydWN0IGtzZXQgKnJlaXBsX2tzZXQ7CiAKK3N0YXRpYyB2b2lkIGdldF9pcGxfc3RyaW5nKGNoYXIgKmRzdCwgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCSAgIGNvbnN0IGVudW0gaXBsX21ldGhvZCBtKQoreworCWNoYXIgbG9hZHBhcm1bTE9BRFBBUk1fTEVOICsgMV0gPSB7fTsKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKwljaGFyIG5zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXSA9IHt9OworCXNpemVfdCBwb3MgPSAwOworCisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGxvYWRwYXJtLCBpcGIpOworCXJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShuc3NfbmFtZSwgaXBiKTsKKwlyZWlwbF9nZXRfYXNjaWlfdm1wYXJtKHZtcGFybSwgaXBiKTsKKworCXN3aXRjaCAobSkgeworCWNhc2UgUkVJUExfTUVUSE9EX0NDV19WTToKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJVggQ0xFQVIiLCBpcGItPmlwbF9pbmZvLmNjdy5kZXZubyk7CisJCWJyZWFrOworCWNhc2UgUkVJUExfTUVUSE9EX05TUzoKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJXMiLCBuc3NfbmFtZSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlpZiAoc3RybGVuKGxvYWRwYXJtKSA+IDApCisJCXBvcyArPSBzcHJpbnRmKGRzdCArIHBvcywgIiBMT0FEUEFSTSAnJXMnIiwgbG9hZHBhcm0pOworCWlmIChzdHJsZW4odm1wYXJtKSA+IDApCisJCXNwcmludGYoZHN0ICsgcG9zLCAiIFBBUk0gJXMiLCB2bXBhcm0pOworfQorCiBzdGF0aWMgdm9pZCByZWlwbF9ydW4oc3RydWN0IHNodXRkb3duX3RyaWdnZXIgKnRyaWdnZXIpCiB7CiAJc3RydWN0IGNjd19kZXZfaWQgZGV2aWQ7Ci0Jc3RhdGljIGNoYXIgYnVmWzEwMF07Ci0JY2hhciBsb2FkcGFybVtMT0FEUEFSTV9MRU4gKyAxXTsKKwlzdGF0aWMgY2hhciBidWZbMTI4XTsKIAogCXN3aXRjaCAocmVpcGxfbWV0aG9kKSB7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0NJTzoKQEAgLTY2OCwxMyArOTI5LDcgQEAKIAkJcmVpcGxfY2N3X2RldigmZGV2aWQpOwogCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9DQ1dfVk06Ci0JCXJlaXBsX2dldF9hc2NpaV9sb2FkcGFybShsb2FkcGFybSk7Ci0JCWlmIChzdHJsZW4obG9hZHBhcm0pID09IDApCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiIsCi0JCQkJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwotCQllbHNlCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiBMT0FEUEFSTSAnJXMnIiwKLQkJCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubywgbG9hZHBhcm0pOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX2NjdywgUkVJUExfTUVUSE9EX0NDV19WTSk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0RJQUc6CkBAIC02OTEsOCArOTQ2LDEyIEBACiAJY2FzZSBSRUlQTF9NRVRIT0RfRkNQX1JPX1ZNOgogCQlfX2NwY21kKCJJUEwiLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CisJY2FzZSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc6CisJCWRpYWczMDgoRElBRzMwOF9TRVQsIHJlaXBsX2Jsb2NrX25zcyk7CisJCWRpYWczMDgoRElBRzMwOF9JUEwsIE5VTEwpOworCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9OU1M6Ci0JCXNwcmludGYoYnVmLCAiSVBMICVzIiwgcmVpcGxfbnNzX25hbWUpOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX25zcywgUkVJUExfTUVUSE9EX05TUyk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfREVGQVVMVDoKQEAgLTcwNywxNiArOTY2LDM2IEBACiAJZGlzYWJsZWRfd2FpdCgodW5zaWduZWQgbG9uZykgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IHJlaXBsX3Byb2JlKHZvaWQpCitzdGF0aWMgdm9pZCByZWlwbF9ibG9ja19jY3dfaW5pdChzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQogewotCXZvaWQgKmJ1ZmZlcjsKKwlpcGItPmhkci5sZW4gPSBJUExfUEFSTV9CTEtfQ0NXX0xFTjsKKwlpcGItPmhkci52ZXJzaW9uID0gSVBMX1BBUk1fQkxPQ0tfVkVSU0lPTjsKKwlpcGItPmhkci5ibGswX2xlbiA9IElQTF9QQVJNX0JMSzBfQ0NXX0xFTjsKKwlpcGItPmhkci5wYnQgPSBESUFHMzA4X0lQTF9UWVBFX0NDVzsKK30KIAotCWJ1ZmZlciA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuOwotCWlmIChkaWFnMzA4KERJQUczMDhfU1RPUkUsIGJ1ZmZlcikgPT0gRElBRzMwOF9SQ19PSykKLQkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOwotCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylidWZmZXIpOworc3RhdGljIHZvaWQgcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYikKK3sKKwkvKiBMT0FEUEFSTSAqLworCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KKwlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKKwkJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwKKwkJCQkmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKKwllbHNlCisJCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCisJCW1lbXNldChpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIDB4NDAsIExPQURQQVJNX0xFTik7CisJaXBiLT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOworCisJLyogVk0gUEFSTSAqLworCWlmIChNQUNISU5FX0lTX1ZNICYmIGRpYWczMDhfc2V0X3dvcmtzICYmCisJICAgIChpcGxfYmxvY2suaXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkpIHsKKworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PSBESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbiA9CisJCQkJCWlwbF9ibG9jay5pcGxfaW5mby5jY3cudm1fcGFybV9sZW47CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLAorCQkgICAgICAgaXBsX2Jsb2NrLmlwbF9pbmZvLmNjdy52bV9wYXJtLCBESUFHMzA4X1ZNUEFSTV9TSVpFKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IHJlaXBsX25zc19pbml0KHZvaWQpCkBAIC03MjUsMTAgKzEwMDQsMzEgQEAKIAogCWlmICghTUFDSElORV9JU19WTSkKIAkJcmV0dXJuIDA7CisKKwlyZWlwbF9ibG9ja19uc3MgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFyZWlwbF9ibG9ja19uc3MpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKCFkaWFnMzA4X3NldF93b3JrcykKKwkJc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCiAJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9uc3NfYXR0cl9ncm91cCk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0Jc3RybmNweShyZWlwbF9uc3NfbmFtZSwga2VybmVsX25zc19uYW1lLCBOU1NfTkFNRV9TSVpFICsgMSk7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19uc3MpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX05TUykgeworCQltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQknICcsIE5TU19OQU1FX1NJWkUpOworCQltZW1jcHkocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQlrZXJuZWxfbnNzX25hbWUsIHN0cmxlbihrZXJuZWxfbnNzX25hbWUpKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwkJcmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cudm1fZmxhZ3MgfD0KKwkJCURJQUczMDhfVk1fRkxBR1NfTlNTX1ZBTElEOworCisJCXJlaXBsX2Jsb2NrX2Njd19maWxsX3Bhcm1zKHJlaXBsX2Jsb2NrX25zcyk7CisJfQorCiAJcmVpcGxfY2FwYWJpbGl0aWVzIHw9IElQTF9UWVBFX05TUzsKIAlyZXR1cm4gMDsKIH0KQEAgLTc0MCwyOCArMTA0MCwyNyBAQAogCXJlaXBsX2Jsb2NrX2NjdyA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKIAlpZiAoIXJlaXBsX2Jsb2NrX2NjdykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9jY3dfYXR0cl9ncm91cCk7Ci0JaWYgKHJjKSB7Ci0JCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylyZWlwbF9ibG9ja19jY3cpOwotCQlyZXR1cm4gcmM7CisKKwlpZiAoTUFDSElORV9JU19WTSkgeworCQlpZiAoIWRpYWczMDhfc2V0X3dvcmtzKQorCQkJc3lzX3JlaXBsX2Njd192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCQlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcmVpcGxfa3NldC0+a29iaiwKKwkJCQkJJnJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtKTsKKwl9IGVsc2UgeworCQlpZighZGlhZzMwOF9zZXRfd29ya3MpCisJCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKKwkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosCisJCQkJCSZyZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyKTsKIAl9Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIubGVuID0gSVBMX1BBUk1fQkxLX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIudmVyc2lvbiA9IElQTF9QQVJNX0JMT0NLX1ZFUlNJT047Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuYmxrMF9sZW4gPSBJUExfUEFSTV9CTEswX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIucGJ0ID0gRElBRzMwOF9JUExfVFlQRV9DQ1c7Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOwotCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KLQlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKLQkJbWVtY3B5KHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JCSAgICAgICAmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKLQllbHNlCi0JCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCi0JCW1lbXNldChyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAweDQwLAotCQkgICAgICAgTE9BRFBBUk1fTEVOKTsKLQlpZiAoIU1BQ0hJTkVfSVNfVk0gJiYgIWRpYWczMDhfc2V0X3dvcmtzKQotCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKLQlpZiAoaXBsX2luZm8udHlwZSA9PSBJUExfVFlQRV9DQ1cpCisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19jY3cpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX0NDVykgewogCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubyA9IGlwbF9kZXZubzsKKwkJcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMocmVpcGxfYmxvY2tfY2N3KTsKKwl9CisKIAlyZWlwbF9jYXBhYmlsaXRpZXMgfD0gSVBMX1RZUEVfQ0NXOwogCXJldHVybiAwOwogfQpAQCAtMTI5OCw3ICsxNTk3LDYgQEAKIAogc3RhdGljIGludCBfX2luaXQgczM5MF9pcGxfaW5pdCh2b2lkKQogewotCXJlaXBsX3Byb2JlKCk7CiAJc2NscF9nZXRfaXBsX2luZm8oJnNjbHBfaXBsX2luZm8pOwogCXNodXRkb3duX2FjdGlvbnNfaW5pdCgpOwogCXNodXRkb3duX3RyaWdnZXJzX2luaXQoKTsKQEAgLTE0MDUsNiArMTcwMywxMiBAQAogCWF0b21pY19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmcGFuaWNfbm90aWZpZXJfbGlzdCwgJm9uX3BhbmljX25iKTsKIH0KIAordm9pZCBfX2luaXQgaXBsX3VwZGF0ZV9wYXJhbWV0ZXJzKHZvaWQpCit7CisJaWYgKGRpYWczMDgoRElBRzMwOF9TVE9SRSwgJmlwbF9ibG9jaykgPT0gRElBRzMwOF9SQ19PSykKKwkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOworfQorCiB2b2lkIF9faW5pdCBpcGxfc2F2ZV9wYXJhbWV0ZXJzKHZvaWQpCiB7CiAJc3RydWN0IGNpb19pcGxpbmZvIGlwbGluZm87CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2twcm9iZXMuYyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IGVkMDRkMTMuLjI4OGFkNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCkBAIC00MSwxMCArNDEsOCBAQAogCWlmIChpc19wcm9oaWJpdGVkX29wY29kZSgoa3Byb2JlX29wY29kZV90ICopIHAtPmFkZHIpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICgodW5zaWduZWQgbG9uZylwLT5hZGRyICYgMHgwMSkgewotCQlwcmludGsoIkF0dGVtcHQgdG8gcmVnaXN0ZXIga3Byb2JlIGF0IGFuIHVuYWxpZ25lZCBhZGRyZXNzXG4iKTsKKwlpZiAoKHVuc2lnbmVkIGxvbmcpcC0+YWRkciAmIDB4MDEpCiAJCXJldHVybiAtRUlOVkFMOwotCQl9CiAKIAkvKiBVc2UgdGhlIGdldF9pbnNuX3Nsb3QoKSBmYWNpbGl0eSBmb3IgY29ycmVjdG5lc3MgKi8KIAlpZiAoIShwLT5haW5zbi5pbnNuID0gZ2V0X2luc25fc2xvdCgpKSkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvbWFjaGluZV9rZXhlYy5jIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKaW5kZXggM2M3N2RkMy4uMTMxZDdlZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKQEAgLTUyLDcgKzUyLDYgQEAKIAogdm9pZCBtYWNoaW5lX3NodXRkb3duKHZvaWQpCiB7Ci0JcHJpbnRrKEtFUk5fSU5GTyAia2V4ZWM6IG1hY2hpbmVfc2h1dGRvd24gY2FsbGVkXG4iKTsKIH0KIAogdm9pZCBtYWNoaW5lX2tleGVjKHN0cnVjdCBraW1hZ2UgKmltYWdlKQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMgYi9hcmNoL3MzOTAva2VybmVsL21lbV9kZXRlY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGVkN2FiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9pcGwuaD4KKyNpbmNsdWRlIDxhc20vc2NscC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorCitzdGF0aWMgaW50IG1lbW9yeV9mYXN0X2RldGVjdChzdHJ1Y3QgbWVtX2NodW5rICpjaHVuaykKK3sKKwl1bnNpZ25lZCBsb25nIHZhbDAgPSAwOworCXVuc2lnbmVkIGxvbmcgdmFsMSA9IDB4YzsKKwlpbnQgcmMgPSAtRU9QTk9UU1VQUDsKKworCWlmIChpcGxfZmxhZ3MgJiBJUExfTlNTX1ZBTElEKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJYXNtIHZvbGF0aWxlKAorCQkiCWRpYWcJJTEsJTIsMHgyNjBcbiIKKwkJIjA6CWxoaQklMCwwXG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYyksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7CisKKwlpZiAocmMgfHwgdmFsMCAhPSB2YWwxKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2h1bmstPnNpemUgPSB2YWwwICsgMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgdHByb3QodW5zaWduZWQgbG9uZyBhZGRyKQoreworCWludCByYyA9IC1FRkFVTFQ7CisKKwlhc20gdm9sYXRpbGUoCisJCSIJdHByb3QJMCglMSksMFxuIgorCQkiMDoJaXBtCSUwXG4iCisJCSIJc3JsCSUwLDI4XG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYykgOiAiYSIgKGFkZHIpIDogImNjIik7CisJcmV0dXJuIHJjOworfQorCisjZGVmaW5lIEFERFIyRyAoMVVMTCA8PCAzMSkKKworc3RhdGljIHZvaWQgZmluZF9tZW1vcnlfY2h1bmtzKHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgbWVtc2l6ZSwgcm5tYXgsIHJ6bTsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSAwLCBzaXplOworCWludCBpID0gMCwgdHlwZTsKKworCXJ6bSA9IHNjbHBfZ2V0X3J6bSgpOworCXJubWF4ID0gc2NscF9nZXRfcm5tYXgoKTsKKwltZW1zaXplID0gcnptICogcm5tYXg7CisJaWYgKCFyem0pCisJCXJ6bSA9IDFVTEwgPDwgMTc7CisJaWYgKHNpemVvZihsb25nKSA9PSA0KSB7CisJCXJ6bSA9IG1pbihBRERSMkcsIHJ6bSk7CisJCW1lbXNpemUgPSBtZW1zaXplID8gbWluKEFERFIyRywgbWVtc2l6ZSkgOiBBRERSMkc7CisJfQorCWRvIHsKKwkJc2l6ZSA9IDA7CisJCXR5cGUgPSB0cHJvdChhZGRyKTsKKwkJZG8geworCQkJc2l6ZSArPSByem07CisJCQlpZiAobWVtc2l6ZSAmJiBhZGRyICsgc2l6ZSA+PSBtZW1zaXplKQorCQkJCWJyZWFrOworCQl9IHdoaWxlICh0eXBlID09IHRwcm90KGFkZHIgKyBzaXplKSk7CisJCWlmICh0eXBlID09IENIVU5LX1JFQURfV1JJVEUgfHwgdHlwZSA9PSBDSFVOS19SRUFEX09OTFkpIHsKKwkJCWNodW5rW2ldLmFkZHIgPSBhZGRyOworCQkJY2h1bmtbaV0uc2l6ZSA9IHNpemU7CisJCQljaHVua1tpXS50eXBlID0gdHlwZTsKKwkJCWkrKzsKKwkJfQorCQlhZGRyICs9IHNpemU7CisJfSB3aGlsZSAoYWRkciA8IG1lbXNpemUgJiYgaSA8IE1FTU9SWV9DSFVOS1MpOworfQorCit2b2lkIGRldGVjdF9tZW1vcnlfbGF5b3V0KHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBjcjA7CisKKwltZW1zZXQoY2h1bmssIDAsIE1FTU9SWV9DSFVOS1MgKiBzaXplb2Yoc3RydWN0IG1lbV9jaHVuaykpOworCWlmIChtZW1vcnlfZmFzdF9kZXRlY3QoJmNodW5rWzBdKSA9PSAwKQorCQlyZXR1cm47CisJLyogRGlzYWJsZSBJUlFzLCBEQVQgYW5kIGxvdyBhZGRyZXNzIHByb3RlY3Rpb24gc28gdHByb3QgZG9lcyB0aGUKKwkgKiByaWdodCB0aGluZyBhbmQgd2UgZG9uJ3QgZ2V0IHNjaGVkdWxlZCBhd2F5IHdpdGggbG93IGFkZHJlc3MKKwkgKiBwcm90ZWN0aW9uIGRpc2FibGVkLgorCSAqLworCWZsYWdzID0gX19yYXdfbG9jYWxfaXJxX3N0bnNtKDB4ZjgpOworCV9fY3RsX3N0b3JlKGNyMCwgMCwgMCk7CisJX19jdGxfY2xlYXJfYml0KDAsIDI4KTsKKwlmaW5kX21lbW9yeV9jaHVua3MoY2h1bmspOworCV9fY3RsX2xvYWQoY3IwLCAwLCAwKTsKKwlfX3Jhd19sb2NhbF9pcnFfc3NtKGZsYWdzKTsKK30KK0VYUE9SVF9TWU1CT0woZGV0ZWN0X21lbW9yeV9sYXlvdXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwppbmRleCA3OTIwODYxLi44NWRlZmQwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzUsNDYgKzc1LDE5IEBACiAJcmV0dXJuIHNmLT5ncHJzWzhdOwogfQogCi0vKgotICogTmVlZCB0byBrbm93IGFib3V0IENQVXMgZ29pbmcgaWRsZT8KLSAqLwotc3RhdGljIEFUT01JQ19OT1RJRklFUl9IRUFEKGlkbGVfY2hhaW4pOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHMzOTBfaWRsZV9kYXRhLCBzMzkwX2lkbGUpOwogCi1pbnQgcmVnaXN0ZXJfaWRsZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKQotewotCXJldHVybiBhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wocmVnaXN0ZXJfaWRsZV9ub3RpZmllcik7Ci0KLWludCB1bnJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKLXsKLQlyZXR1cm4gYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKTsKLQogc3RhdGljIGludCBzMzkwX2lkbGVfZW50ZXIodm9pZCkKIHsKIAlzdHJ1Y3QgczM5MF9pZGxlX2RhdGEgKmlkbGU7Ci0JaW50IG5yX2NhbGxzID0gMDsKLQl2b2lkICpoY3B1OwotCWludCByYzsKIAotCWhjcHUgPSAodm9pZCAqKShsb25nKXNtcF9wcm9jZXNzb3JfaWQoKTsKLQlyYyA9IF9fYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmlkbGVfY2hhaW4sIFMzOTBfQ1BVX0lETEUsIGhjcHUsIC0xLAotCQkJCQkgICZucl9jYWxscyk7Ci0JaWYgKHJjID09IE5PVElGWV9CQUQpIHsKLQkJbnJfY2FsbHMtLTsKLQkJX19hdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJCSAgICAgaGNwdSwgbnJfY2FsbHMsIE5VTEwpOwotCQlyZXR1cm4gcmM7Ci0JfQogCWlkbGUgPSAmX19nZXRfY3B1X3ZhcihzMzkwX2lkbGUpOwogCXNwaW5fbG9jaygmaWRsZS0+bG9jayk7CiAJaWRsZS0+aWRsZV9jb3VudCsrOwogCWlkbGUtPmluX2lkbGUgPSAxOwogCWlkbGUtPmlkbGVfZW50ZXIgPSBnZXRfY2xvY2soKTsKIAlzcGluX3VubG9jaygmaWRsZS0+bG9jayk7CisJdnRpbWVfc3RvcF9jcHVfdGltZXIoKTsKIAlyZXR1cm4gTk9USUZZX09LOwogfQogCkBAIC0xMjIsMTMgKzk1LDEyIEBACiB7CiAJc3RydWN0IHMzOTBfaWRsZV9kYXRhICppZGxlOwogCisJdnRpbWVfc3RhcnRfY3B1X3RpbWVyKCk7CiAJaWRsZSA9ICZfX2dldF9jcHVfdmFyKHMzOTBfaWRsZSk7CiAJc3Bpbl9sb2NrKCZpZGxlLT5sb2NrKTsKIAlpZGxlLT5pZGxlX3RpbWUgKz0gZ2V0X2Nsb2NrKCkgLSBpZGxlLT5pZGxlX2VudGVyOwogCWlkbGUtPmluX2lkbGUgPSAwOwogCXNwaW5fdW5sb2NrKCZpZGxlLT5sb2NrKTsKLQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJICAgKHZvaWQgKikobG9uZykgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIH0KIAogZXh0ZXJuIHZvaWQgczM5MF9oYW5kbGVfbWNjayh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL3MzOTAva2VybmVsL3B0cmFjZS5jCmluZGV4IDM1ODI3YjkuLjI4MTViZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9wdHJhY2UuYwpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lbGYuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdzZXQuaD4KIAogI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KQEAgLTQ3LDYgKzQ5LDExIEBACiAjaW5jbHVkZSAiY29tcGF0X3B0cmFjZS5oIgogI2VuZGlmCiAKK2VudW0gczM5MF9yZWdzZXQgeworCVJFR1NFVF9HRU5FUkFMLAorCVJFR1NFVF9GUCwKK307CisKIHN0YXRpYyB2b2lkCiBGaXhQZXJSZWdpc3RlcnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQogewpAQCAtMTI2LDI0ICsxMzMsMTAgQEAKICAqIHN0cnVjdCB1c2VyIGNvbnRhaW4gcGFkIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgYXMgemVyb2VzLgogICogTG92ZWx5Li4uCiAgKi8KLXN0YXRpYyBpbnQKLXBlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3BlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkcikKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIHRtcCwgbWFzazsKLQotCS8qCi0JICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwuLi4KLQkgKi8KLQltYXNrID0gX19BRERSX01BU0s7Ci0jaWZkZWYgQ09ORklHXzY0QklUCi0JaWYgKGFkZHIgPj0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMgJiYKLQkgICAgYWRkciA8IChhZGRyX3QpICZkdW1teS0+cmVncy5vcmlnX2dwcjIpCi0JCW1hc2sgPSAzOwotI2VuZGlmCi0JaWYgKChhZGRyICYgbWFzaykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSBfX0FERFJfTUFTSykKLQkJcmV0dXJuIC1FSU87CisJYWRkcl90IG9mZnNldCwgdG1wOwogCiAJaWYgKGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3MuYWNycykgewogCQkvKgpAQCAtMTk3LDI0ICsxOTAsMTggQEAKIAl9IGVsc2UKIAkJdG1wID0gMDsKIAotCXJldHVybiBwdXRfdXNlcih0bXAsIChhZGRyX3QgX191c2VyICopIGRhdGEpOworCXJldHVybiB0bXA7CiB9CiAKLS8qCi0gKiBXcml0ZSBhIHdvcmQgdG8gdGhlIHVzZXIgYXJlYSBvZiBhIHByb2Nlc3MgYXQgbG9jYXRpb24gYWRkci4gVGhpcwotICogb3BlcmF0aW9uIGRvZXMgaGF2ZSBhbiBhZGRpdGlvbmFsIHByb2JsZW0gY29tcGFyZWQgdG8gcGVla191c2VyLgotICogU3RvcmVzIHRvIHRoZSBwcm9ncmFtIHN0YXR1cyB3b3JkIGFuZCBvbiB0aGUgZmxvYXRpbmcgcG9pbnQKLSAqIGNvbnRyb2wgcmVnaXN0ZXIgbmVlZHMgdG8gZ2V0IGNoZWNrZWQgZm9yIHZhbGlkaXR5LgotICovCiBzdGF0aWMgaW50Ci1wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorcGVla191c2VyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIG1hc2s7CisJYWRkcl90IHRtcCwgbWFzazsKIAogCS8qCiAJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICogYW4gYWxpZ25tZW50IG9mIDQuIFByb2dyYW1tZXJzIGZyb20gaGVsbC4uLgogCSAqLwogCW1hc2sgPSBfX0FERFJfTUFTSzsKICNpZmRlZiBDT05GSUdfNjRCSVQKQEAgLTIyNSw2ICsyMTIsMjEgQEAKIAlpZiAoKGFkZHIgJiBtYXNrKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyKSAtIF9fQUREUl9NQVNLKQogCQlyZXR1cm4gLUVJTzsKIAorCXRtcCA9IF9fcGVla191c2VyKGNoaWxkLCBhZGRyKTsKKwlyZXR1cm4gcHV0X3VzZXIodG1wLCAoYWRkcl90IF9fdXNlciAqKSBkYXRhKTsKK30KKworLyoKKyAqIFdyaXRlIGEgd29yZCB0byB0aGUgdXNlciBhcmVhIG9mIGEgcHJvY2VzcyBhdCBsb2NhdGlvbiBhZGRyLiBUaGlzCisgKiBvcGVyYXRpb24gZG9lcyBoYXZlIGFuIGFkZGl0aW9uYWwgcHJvYmxlbSBjb21wYXJlZCB0byBwZWVrX3VzZXIuCisgKiBTdG9yZXMgdG8gdGhlIHByb2dyYW0gc3RhdHVzIHdvcmQgYW5kIG9uIHRoZSBmbG9hdGluZyBwb2ludAorICogY29udHJvbCByZWdpc3RlciBuZWVkcyB0byBnZXQgY2hlY2tlZCBmb3IgdmFsaWRpdHkuCisgKi8KK3N0YXRpYyBpbnQgX19wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCXN0cnVjdCB1c2VyICpkdW1teSA9IE5VTEw7CisJYWRkcl90IG9mZnNldDsKKwogCWlmIChhZGRyIDwgKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC0yOTIsNiArMjk0LDI4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK3Bva2VfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCit7CisJc3RydWN0IHVzZXIgKmR1bW15ID0gTlVMTDsKKwlhZGRyX3QgbWFzazsKKworCS8qCisJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAorCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICovCisJbWFzayA9IF9fQUREUl9NQVNLOworI2lmZGVmIENPTkZJR182NEJJVAorCWlmIChhZGRyID49IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzICYmCisJICAgIGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3Mub3JpZ19ncHIyKQorCQltYXNrID0gMzsKKyNlbmRpZgorCWlmICgoYWRkciAmIG1hc2spIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gX19BRERSX01BU0spCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyKGNoaWxkLCBhZGRyLCBkYXRhKTsKK30KKwogbG9uZyBhcmNoX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVlc3QsIGxvbmcgYWRkciwgbG9uZyBkYXRhKQogewogCXB0cmFjZV9hcmVhIHBhcmVhOyAKQEAgLTM2NywxOCArMzkxLDEzIEBACiAvKgogICogU2FtZSBhcyBwZWVrX3VzZXIgYnV0IGZvciBhIDMxIGJpdCBwcm9ncmFtLgogICovCi1zdGF0aWMgaW50Ci1wZWVrX3VzZXJfZW11MzEoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorc3RhdGljIHUzMiBfX3BlZWtfdXNlcl9jb21wYXQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CiAJYWRkcl90IG9mZnNldDsKIAlfX3UzMiB0bXA7CiAKLQlpZiAoIXRlc3RfdGhyZWFkX2ZsYWcoVElGXzMxQklUKSB8fAotCSAgICAoYWRkciAmIDMpIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC00MzUsMjUgKzQ1NCwzMiBAQAogCX0gZWxzZQogCQl0bXAgPSAwOwogCisJcmV0dXJuIHRtcDsKK30KKworc3RhdGljIGludCBwZWVrX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCV9fdTMyIHRtcDsKKworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSAzKQorCQlyZXR1cm4gLUVJTzsKKworCXRtcCA9IF9fcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkcik7CiAJcmV0dXJuIHB1dF91c2VyKHRtcCwgKF9fdTMyIF9fdXNlciAqKSBkYXRhKTsKIH0KIAogLyoKICAqIFNhbWUgYXMgcG9rZV91c2VyIGJ1dCBmb3IgYSAzMSBiaXQgcHJvZ3JhbS4KICAqLwotc3RhdGljIGludAotcG9rZV91c2VyX2VtdTMxKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKK3N0YXRpYyBpbnQgX19wb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgICBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CisJX191MzIgdG1wID0gKF9fdTMyKSBkYXRhOwogCWFkZHJfdCBvZmZzZXQ7Ci0JX191MzIgdG1wOwotCi0JaWYgKCF0ZXN0X3RocmVhZF9mbGFnKFRJRl8zMUJJVCkgfHwKLQkgICAgKGFkZHIgJiAzKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyMzIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KLQl0bXAgPSAoX191MzIpIGRhdGE7CiAKIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKQEAgLTUyOCw2ICs1NTQsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcjMyKSAtIDMpCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7Cit9CisKIGxvbmcgY29tcGF0X2FyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGNvbXBhdF9sb25nX3QgcmVxdWVzdCwKIAkJCWNvbXBhdF91bG9uZ190IGNhZGRyLCBjb21wYXRfdWxvbmdfdCBjZGF0YSkKIHsKQEAgLTUzOSwxMSArNTc1LDExIEBACiAJc3dpdGNoIChyZXF1ZXN0KSB7CiAJY2FzZSBQVFJBQ0VfUEVFS1VTUjoKIAkJLyogcmVhZCB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEuICovCi0JCXJldHVybiBwZWVrX3VzZXJfZW11MzEoY2hpbGQsIGFkZHIsIGRhdGEpOworCQlyZXR1cm4gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAKIAljYXNlIFBUUkFDRV9QT0tFVVNSOgogCQkvKiB3cml0ZSB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEgKi8KLQkJcmV0dXJuIHBva2VfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCXJldHVybiBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCBkYXRhKTsKIAogCWNhc2UgUFRSQUNFX1BFRUtVU1JfQVJFQToKIAljYXNlIFBUUkFDRV9QT0tFVVNSX0FSRUE6CkBAIC01NTUsMTMgKzU5MSwxMyBAQAogCQljb3BpZWQgPSAwOwogCQl3aGlsZSAoY29waWVkIDwgcGFyZWEubGVuKSB7CiAJCQlpZiAocmVxdWVzdCA9PSBQVFJBQ0VfUEVFS1VTUl9BUkVBKQotCQkJCXJldCA9IHBlZWtfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCQkJcmV0ID0gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAJCQllbHNlIHsKIAkJCQlfX3UzMiB1dG1wOwogCQkJCWlmIChnZXRfdXNlcih1dG1wLAogCQkJCQkgICAgIChfX3UzMiBfX2ZvcmNlIF9fdXNlciAqKSBkYXRhKSkKIAkJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQkJcmV0ID0gcG9rZV91c2VyX2VtdTMxKGNoaWxkLCBhZGRyLCB1dG1wKTsKKwkJCQlyZXQgPSBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCB1dG1wKTsKIAkJCX0KIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKQEAgLTYxMCwzICs2NDYsMjQwIEBACiAJCQkJICAgIHJlZ3MtPmdwcnNbMl0sIHJlZ3MtPm9yaWdfZ3ByMiwgcmVncy0+Z3Byc1szXSwKIAkJCQkgICAgcmVncy0+Z3Byc1s0XSwgcmVncy0+Z3Byc1s1XSk7CiB9CisKKy8qCisgKiB1c2VyX3JlZ3NldCBkZWZpbml0aW9ucy4KKyAqLworCitzdGF0aWMgaW50IHMzOTBfcmVnc19nZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkgdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJIHZvaWQgKmtidWYsIHZvaWQgX191c2VyICp1YnVmKQoreworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCXVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXIodGFyZ2V0LCBwb3MpOworCQkJY291bnQgLT0gc2l6ZW9mKCprKTsKKwkJCXBvcyArPSBzaXplb2YoKmspOworCQl9CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQlpZiAoX19wdXRfdXNlcihfX3BlZWtfdXNlcih0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9yZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCSB1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkgY29uc3Qgdm9pZCAqa2J1ZiwgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJcmMgPSBfX3Bva2VfdXNlcih0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCB1bnNpZ25lZCBsb25nICBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJdW5zaWduZWQgbG9uZyB3b3JkOworCQkJcmMgPSBfX2dldF91c2VyKHdvcmQsIHUrKyk7CisJCQlpZiAocmMpCisJCQkJYnJlYWs7CisJCQlyYyA9IF9fcG9rZV91c2VyKHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCB2b2lkICprYnVmLCB2b2lkIF9fdXNlciAqdWJ1ZikKK3sKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfZnBfcmVncygmdGFyZ2V0LT50aHJlYWQuZnBfcmVncyk7CisKKwlyZXR1cm4gdXNlcl9yZWdzZXRfY29weW91dCgmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkgICAmdGFyZ2V0LT50aHJlYWQuZnBfcmVncywgMCwgLTEpOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCBjb25zdCB2b2lkICprYnVmLAorCQkJICAgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCS8qIElmIHNldHRpbmcgRlBDLCBtdXN0IHZhbGlkYXRlIGl0IGZpcnN0LiAqLworCWlmIChjb3VudCA+IDAgJiYgcG9zIDwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSkgeworCQl1MzIgZnBjWzJdID0geyB0YXJnZXQtPnRocmVhZC5mcF9yZWdzLmZwYywgMCB9OworCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwgJmZwYywKKwkJCQkJMCwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJaWYgKChmcGNbMF0gJiB+RlBDX1ZBTElEX01BU0spICE9IDAgfHwgZnBjWzFdICE9IDApCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcGMgPSBmcGNbMF07CisJfQorCisJaWYgKHJjID09IDAgJiYgY291bnQgPiAwKQorCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcHJzLAorCQkJCQlvZmZzZXRvZihzMzkwX2ZwX3JlZ3MsIGZwcnMpLCAtMSk7CisKKwlpZiAocmMgPT0gMCAmJiB0YXJnZXQgPT0gY3VycmVudCkKKwkJcmVzdG9yZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCBzMzkwX3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9yZWdzKSAvIHNpemVvZihsb25nKSwKKwkJLnNpemUgPSBzaXplb2YobG9uZyksCisJCS5hbGlnbiA9IHNpemVvZihsb25nKSwKKwkJLmdldCA9IHMzOTBfcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YobG9uZyksCisJCS5zaXplID0gc2l6ZW9mKGxvbmcpLAorCQkuYWxpZ24gPSBzaXplb2YobG9uZyksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfdmlldyA9IHsKKwkubmFtZSA9IFVUU19NQUNISU5FLAorCS5lX21hY2hpbmUgPSBFTV9TMzkwLAorCS5yZWdzZXRzID0gczM5MF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX3JlZ3NldHMpCit9OworCisjaWZkZWYgQ09ORklHX0NPTVBBVAorc3RhdGljIGludCBzMzkwX2NvbXBhdF9yZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCQljb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCQl1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkJdm9pZCAqa2J1Ziwgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaWYgKHRhcmdldCA9PSBjdXJyZW50KQorCQlzYXZlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJaWYgKGtidWYpIHsKKwkJY29tcGF0X3Vsb25nX3QgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zKTsKKwkJCWNvdW50IC09IHNpemVvZigqayk7CisJCQlwb3MgKz0gc2l6ZW9mKCprKTsKKwkJfQorCX0gZWxzZSB7CisJCWNvbXBhdF91bG9uZ190IF9fdXNlciAqdSA9IHVidWY7CisJCXdoaWxlIChjb3VudCA+IDApIHsKKwkJCWlmIChfX3B1dF91c2VyKF9fcGVla191c2VyX2NvbXBhdCh0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9jb21wYXRfcmVnc19zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkJY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkJdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJCWNvbnN0IHZvaWQgKmtidWYsIGNvbnN0IHZvaWQgX191c2VyICp1YnVmKQoreworCWludCByYyA9IDA7CisKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfYWNjZXNzX3JlZ3ModGFyZ2V0LT50aHJlYWQuYWNycyk7CisKKwlpZiAoa2J1ZikgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAqayA9IGtidWY7CisJCXdoaWxlIChjb3VudCA+IDAgJiYgIXJjKSB7CisJCQlyYyA9IF9fcG9rZV91c2VyX2NvbXBhdCh0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAgX191c2VyICp1ID0gdWJ1ZjsKKwkJd2hpbGUgKGNvdW50ID4gMCAmJiAhcmMpIHsKKwkJCWNvbXBhdF91bG9uZ190IHdvcmQ7CisJCQlyYyA9IF9fZ2V0X3VzZXIod29yZCwgdSsrKTsKKwkJCWlmIChyYykKKwkJCQlicmVhazsKKwkJCXJjID0gX19wb2tlX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0IHMzOTBfY29tcGF0X3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9jb21wYXRfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2NvbXBhdF9yZWdzX2dldCwKKwkJLnNldCA9IHMzOTBfY29tcGF0X3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfY29tcGF0X3ZpZXcgPSB7CisJLm5hbWUgPSAiczM5MCIsCisJLmVfbWFjaGluZSA9IEVNX1MzOTAsCisJLnJlZ3NldHMgPSBzMzkwX2NvbXBhdF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX2NvbXBhdF9yZWdzZXRzKQorfTsKKyNlbmRpZgorCitjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyAqdGFza191c2VyX3JlZ3NldF92aWV3KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKK3sKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisJaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRhc2ssIFRJRl8zMUJJVCkpCisJCXJldHVybiAmdXNlcl9zMzkwX2NvbXBhdF92aWV3OworI2VuZGlmCisJcmV0dXJuICZ1c2VyX3MzOTBfdmlldzsKK30KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYwppbmRleCAyYmM3MGI2Li5iMzU4ZTE4IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9zZXR1cC5jCkBAIC03Nyw3ICs3Nyw3IEBACiB1bnNpZ25lZCBsb25nIGVsZl9od2NhcCA9IDA7CiBjaGFyIGVsZl9wbGF0Zm9ybVtFTEZfUExBVEZPUk1fU0laRV07CiAKLXN0cnVjdCBtZW1fY2h1bmsgX19tZW1pbml0ZGF0YSBtZW1vcnlfY2h1bmtbTUVNT1JZX0NIVU5LU107CitzdHJ1Y3QgbWVtX2NodW5rIF9faW5pdGRhdGEgbWVtb3J5X2NodW5rW01FTU9SWV9DSFVOS1NdOwogdm9sYXRpbGUgaW50IF9fY3B1X2xvZ2ljYWxfbWFwW05SX0NQVVNdOyAvKiBsb2dpY2FsIGNwdSB0byBjcHUgYWRkcmVzcyAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBtZW1vcnlfZW5kOwogCkBAIC0yMDUsMTIgKzIwNSw2IEBACiAJCQlTRVRfQ09OU09MRV9TQ0xQOwogI2VuZGlmCiAJCX0KLSAgICAgICAgfSBlbHNlIGlmIChNQUNISU5FX0lTX1AzOTApIHsKLSNpZiBkZWZpbmVkKENPTkZJR19UTjMyMTVfQ09OU09MRSkKLQkJU0VUX0NPTlNPTEVfMzIxNTsKLSNlbGlmIGRlZmluZWQoQ09ORklHX1ROMzI3MF9DT05TT0xFKQotCQlTRVRfQ09OU09MRV8zMjcwOwotI2VuZGlmCiAJfSBlbHNlIHsKICNpZiBkZWZpbmVkKENPTkZJR19TQ0xQX0NPTlNPTEUpIHx8IGRlZmluZWQoQ09ORklHX1NDTFBfVlQyMjBfQ09OU09MRSkKIAkJU0VUX0NPTlNPTEVfU0NMUDsKQEAgLTIyMSwxOCArMjE1LDE3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfWkZDUERVTVApIHx8IGRlZmluZWQoQ09ORklHX1pGQ1BEVU1QX01PRFVMRSkKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF96ZmNwZHVtcCh1bnNpZ25lZCBpbnQgY29uc29sZV9kZXZubykKIHsKLQlzdGF0aWMgY2hhciBzdHJbNjRdOworCXN0YXRpYyBjaGFyIHN0cls0MV07CiAKIAlpZiAoaXBsX2luZm8udHlwZSAhPSBJUExfVFlQRV9GQ1BfRFVNUCkKIAkJcmV0dXJuOwogCWlmIChjb25zb2xlX2Rldm5vICE9IC0xKQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCwhMC4wLiUwNHgiLAorCQlzcHJpbnRmKHN0ciwgIiBjaW9faWdub3JlPWFsbCwhMC4wLiUwNHgsITAuMC4lMDR4IiwKIAkJCWlwbF9pbmZvLmRhdGEuZmNwLmRldl9pZC5kZXZubywgY29uc29sZV9kZXZubyk7CiAJZWxzZQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCisJCXNwcmludGYoc3RyLCAiIGNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCiAJCQlpcGxfaW5mby5kYXRhLmZjcC5kZXZfaWQuZGV2bm8pOwotCXN0cmNhdChDT01NQU5EX0xJTkUsICIgIik7Ci0Jc3RyY2F0KENPTU1BTkRfTElORSwgc3RyKTsKKwlzdHJjYXQoYm9vdF9jb21tYW5kX2xpbmUsIHN0cik7CiAJY29uc29sZV9sb2dsZXZlbCA9IDI7CiB9CiAjZWxzZQpAQCAtMjg5LDMyICsyODIsNiBAQAogfQogZWFybHlfcGFyYW0oIm1lbSIsIGVhcmx5X3BhcnNlX21lbSk7CiAKLS8qCi0gKiAiaXBsZGVsYXk9WFhYW3NtXSIgc2V0cyBpcGwgZGVsYXkgaW4gc2Vjb25kcyBvciBtaW51dGVzCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3BhcnNlX2lwbGRlbGF5KGNoYXIgKnApCi17Ci0JdW5zaWduZWQgbG9uZyBkZWxheSA9IDA7Ci0KLQlkZWxheSA9IHNpbXBsZV9zdHJ0b3VsKHAsICZwLCAwKTsKLQotCXN3aXRjaCAoKnApIHsKLQljYXNlICdzJzoKLQljYXNlICdTJzoKLQkJZGVsYXkgKj0gMTAwMDAwMDsKLQkJYnJlYWs7Ci0JY2FzZSAnbSc6Ci0JY2FzZSAnTSc6Ci0JCWRlbGF5ICo9IDYwICogMTAwMDAwMDsKLQl9Ci0KLQkvKiBub3cgd2FpdCBmb3IgdGhlIHJlcXVlc3RlZCBhbW91bnQgb2YgdGltZSAqLwotCXVkZWxheShkZWxheSk7Ci0KLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJpcGxkZWxheSIsIGVhcmx5X3BhcnNlX2lwbGRlbGF5KTsKLQogI2lmZGVmIENPTkZJR19TMzkwX1NXSVRDSF9BTU9ERQogI2lmZGVmIENPTkZJR19QR1NURQogdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZSA9IDE7CkBAIC04MDQsMTEgKzc3MSw5IEBACiAJCXByaW50aygiV2UgYXJlIHJ1bm5pbmcgbmF0aXZlICg2NCBiaXQgbW9kZSlcbiIpOwogI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwogCi0JLyogU2F2ZSB1bnBhcnNlZCBjb21tYW5kIGxpbmUgY29weSBmb3IgL3Byb2MvY21kbGluZSAqLwotCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQ09NTUFORF9MSU5FX1NJWkUpOwotCi0JKmNtZGxpbmVfcCA9IENPTU1BTkRfTElORTsKLQkqKCpjbWRsaW5lX3AgKyBDT01NQU5EX0xJTkVfU0laRSAtIDEpID0gJ1wwJzsKKwkvKiBIYXZlIG9uZSBjb21tYW5kIGxpbmUgdGhhdCBpcyBwYXJzZWQgYW5kIHNhdmVkIGluIC9wcm9jL2NtZGxpbmUgKi8KKwkvKiBib290X2NvbW1hbmRfbGluZSBoYXMgYmVlbiBhbHJlYWR5IHNldCB1cCBpbiBlYXJseS5jICovCisJKmNtZGxpbmVfcCA9IGJvb3RfY29tbWFuZF9saW5lOwogCiAgICAgICAgIFJPT1RfREVWID0gUm9vdF9SQU0wOwogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9zbXAuYwppbmRleCA0MmIxZDEyLi41ZDRmYTRiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvc21wLmMKQEAgLTcxMSw3ICs3MTEsNyBAQAogCW1lbXNldChzZiwgMCwgc2l6ZW9mKHN0cnVjdCBzdGFja19mcmFtZSkpOwogCXNmLT5ncHJzWzldID0gKHVuc2lnbmVkIGxvbmcpIHNmOwogCWNwdV9sb3djb3JlLT5zYXZlX2FyZWFbMTVdID0gKHVuc2lnbmVkIGxvbmcpIHNmOwotCV9fY3RsX3N0b3JlKGNwdV9sb3djb3JlLT5jcmVnc19zYXZlX2FyZWFbMF0sIDAsIDE1KTsKKwlfX2N0bF9zdG9yZShjcHVfbG93Y29yZS0+Y3JlZ3Nfc2F2ZV9hcmVhLCAwLCAxNSk7CiAJYXNtIHZvbGF0aWxlKAogCQkiCXN0YW0JMCwxNSwwKCUwKSIKIAkJOiA6ICJhIiAoJmNwdV9sb3djb3JlLT5hY2Nlc3NfcmVnc19zYXZlX2FyZWEpIDogIm1lbW9yeSIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL3MzOTAva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCA4NWU0NmE1Li41NzU3MWYxIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtODEsNiArODEsNyBAQAogCQkJICAgUzM5MF9sb3djb3JlLnRocmVhZF9pbmZvLAogCQkJICAgUzM5MF9sb3djb3JlLnRocmVhZF9pbmZvICsgVEhSRUFEX1NJWkUsIDEpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CiAKIHZvaWQgc2F2ZV9zdGFja190cmFjZV90c2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCiB7CkBAIC05MywzICs5NCw0IEBACiAJaWYgKHRyYWNlLT5ucl9lbnRyaWVzIDwgdHJhY2UtPm1heF9lbnRyaWVzKQogCQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IFVMT05HX01BWDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHNhdmVfc3RhY2tfdHJhY2VfdHNrKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdGltZS5jIGIvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKaW5kZXggN2FlYzY3Ni4uNzQxOGJlYiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKQEAgLTMsNyArMyw3IEBACiAgKiAgICBUaW1lIG9mIGRheSBiYXNlZCB0aW1lciBmdW5jdGlvbnMuCiAgKgogICogIFMzOTAgdmVyc2lvbgotICogICAgQ29weXJpZ2h0IChDKSAxOTk5IElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILCBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OSwgMjAwOAogICogICAgQXV0aG9yKHMpOiBIYXJ0bXV0IFBlbm5lciAoaHBAZGUuaWJtLmNvbSksCiAgKiAgICAgICAgICAgICAgIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSksCiAgKiAgICAgICAgICAgICAgIERlbmlzIEpvc2VwaCBCYXJyb3cgKGRqYmFycm93QGRlLmlibS5jb20sYmFycm93X2RqQHlhaG9vLmNvbSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kZWxheS5oPgogI2luY2x1ZGUgPGFzbS9zMzkwX2V4dC5oPgpAQCAtMTYyLDcgKzE2Myw3IEBACiAJLyogRW5hYmxlIGNsb2NrIGNvbXBhcmF0b3IgdGltZXIgaW50ZXJydXB0LiAqLwogCV9fY3RsX3NldF9iaXQoMCwxMSk7CiAKLQkvKiBBbHdheXMgYWxsb3cgRVRSIGV4dGVybmFsIGludGVycnVwdHMsIGV2ZW4gd2l0aG91dCBhbiBFVFIuICovCisJLyogQWx3YXlzIGFsbG93IHRoZSB0aW1pbmcgYWxlcnQgZXh0ZXJuYWwgaW50ZXJydXB0LiAqLwogCV9fY3RsX3NldF9iaXQoMCwgNCk7CiB9CiAKQEAgLTE3MCw4ICsxNzEsMjEgQEAKIHsKIH0KIAorc3RhdGljIHZvaWQgZXRyX3RpbWluZ19hbGVydChzdHJ1Y3QgZXRyX2lycV9wYXJtICopOworc3RhdGljIHZvaWQgc3RwX3RpbWluZ19hbGVydChzdHJ1Y3Qgc3RwX2lycV9wYXJtICopOworCitzdGF0aWMgdm9pZCB0aW1pbmdfYWxlcnRfaW50ZXJydXB0KF9fdTE2IGNvZGUpCit7CisJaWYgKFMzOTBfbG93Y29yZS5leHRfcGFyYW1zICYgMHgwMGM0MDAwMCkKKwkJZXRyX3RpbWluZ19hbGVydCgoc3RydWN0IGV0cl9pcnFfcGFybSAqKQorCQkJCSAmUzM5MF9sb3djb3JlLmV4dF9wYXJhbXMpOworCWlmIChTMzkwX2xvd2NvcmUuZXh0X3BhcmFtcyAmIDB4MDAwMzgwMDApCisJCXN0cF90aW1pbmdfYWxlcnQoKHN0cnVjdCBzdHBfaXJxX3Bhcm0gKikKKwkJCQkgJlMzOTBfbG93Y29yZS5leHRfcGFyYW1zKTsKK30KKwogc3RhdGljIHZvaWQgZXRyX3Jlc2V0KHZvaWQpOwotc3RhdGljIHZvaWQgZXRyX2V4dF9oYW5kbGVyKF9fdTE2KTsKK3N0YXRpYyB2b2lkIHN0cF9yZXNldCh2b2lkKTsKIAogLyoKICAqIEdldCB0aGUgVE9EIGNsb2NrIHJ1bm5pbmcuCkBAIC0xODEsNiArMTk1LDcgQEAKIAl1NjQgdGltZTsKIAogCWV0cl9yZXNldCgpOworCXN0cF9yZXNldCgpOwogCWlmIChzdG9yZV9jbG9jaygmdGltZSkgPT0gMCkKIAkJcmV0dXJuIHRpbWU7CiAJLyogVE9EIGNsb2NrIG5vdCBydW5uaW5nLiBTZXQgdGhlIGNsb2NrIHRvIFVuaXggRXBvY2guICovCkBAIC0yMzEsOCArMjQ2LDkgQEAKIAlpZiAoY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3RvZCkgIT0gMCkKIAkJcGFuaWMoIkNvdWxkIG5vdCByZWdpc3RlciBUT0QgY2xvY2sgc291cmNlIik7CiAKLQkvKiByZXF1ZXN0IHRoZSBldHIgZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0JaWYgKHJlZ2lzdGVyX2Vhcmx5X2V4dGVybmFsX2ludGVycnVwdCgweDE0MDYsIGV0cl9leHRfaGFuZGxlciwKKwkvKiByZXF1ZXN0IHRoZSB0aW1pbmcgYWxlcnQgZXh0ZXJuYWwgaW50ZXJydXB0ICovCisJaWYgKHJlZ2lzdGVyX2Vhcmx5X2V4dGVybmFsX2ludGVycnVwdCgweDE0MDYsCisJCQkJCSAgICAgIHRpbWluZ19hbGVydF9pbnRlcnJ1cHQsCiAJCQkJCSAgICAgICZleHRfaW50X2V0cl9jYykgIT0gMCkKIAkJcGFuaWMoIkNvdWxkbid0IHJlcXVlc3QgZXh0ZXJuYWwgaW50ZXJydXB0IDB4MTQwNiIpOwogCkBAIC0yNDUsMTAgKzI2MSwxMTIgQEAKIH0KIAogLyoKKyAqIFRoZSB0aW1lIGlzICJjbG9jayIuIG9sZCBpcyB3aGF0IHdlIHRoaW5rIHRoZSB0aW1lIGlzLgorICogQWRqdXN0IHRoZSB2YWx1ZSBieSBhIG11bHRpcGxlIG9mIGppZmZpZXMgYW5kIGFkZCB0aGUgZGVsdGEgdG8gbnRwLgorICogImRlbGF5IiBpcyBhbiBhcHByb3hpbWF0aW9uIGhvdyBsb25nIHRoZSBzeW5jaHJvbml6YXRpb24gdG9vay4gSWYKKyAqIHRoZSB0aW1lIGNvcnJlY3Rpb24gaXMgcG9zaXRpdmUsIHRoZW4gImRlbGF5IiBpcyBzdWJ0cmFjdGVkIGZyb20KKyAqIHRoZSB0aW1lIGRpZmZlcmVuY2UgYW5kIG9ubHkgdGhlIHJlbWFpbmluZyBwYXJ0IGlzIHBhc3NlZCB0byBudHAuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYWRqdXN0X3RpbWUodW5zaWduZWQgbG9uZyBsb25nIG9sZCwKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2ssCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRlbGF5KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSwgdGlja3M7CisJc3RydWN0IHRpbWV4IGFkanVzdDsKKworCWlmIChjbG9jayA+IG9sZCkgeworCQkvKiBJdCBpcyBsYXRlciB0aGFuIHdlIHRob3VnaHQuICovCisJCWRlbHRhID0gdGlja3MgPSBjbG9jayAtIG9sZDsKKwkJZGVsdGEgPSB0aWNrcyA9IChkZWx0YSA8IGRlbGF5KSA/IDAgOiBkZWx0YSAtIGRlbGF5OworCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOworCQlhZGp1c3Qub2Zmc2V0ID0gdGlja3MgKiAoMTAwMDAwMCAvIEhaKTsKKwl9IGVsc2UgeworCQkvKiBJdCBpcyBlYXJsaWVyIHRoYW4gd2UgdGhvdWdodC4gKi8KKwkJZGVsdGEgPSB0aWNrcyA9IG9sZCAtIGNsb2NrOworCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOworCQlkZWx0YSA9IC1kZWx0YTsKKwkJYWRqdXN0Lm9mZnNldCA9IC10aWNrcyAqICgxMDAwMDAwIC8gSFopOworCX0KKwlqaWZmaWVzX3RpbWVyX2NjICs9IGRlbHRhOworCWlmIChhZGp1c3Qub2Zmc2V0ICE9IDApIHsKKwkJcHJpbnRrKEtFUk5fTk9USUNFICJldHI6IHRpbWUgYWRqdXN0ZWQgYnkgJWxpIG1pY3JvLXNlY29uZHNcbiIsCisJCSAgICAgICBhZGp1c3Qub2Zmc2V0KTsKKwkJYWRqdXN0Lm1vZGVzID0gQURKX09GRlNFVF9TSU5HTEVTSE9UOworCQlkb19hZGp0aW1leCgmYWRqdXN0KTsKKwl9CisJcmV0dXJuIGRlbHRhOworfQorCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoYXRvbWljX3QsIGNsb2NrX3N5bmNfd29yZCk7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbG9ja19zeW5jX2ZsYWdzOworCisjZGVmaW5lIENMT0NLX1NZTkNfSEFTX0VUUgkwCisjZGVmaW5lIENMT0NLX1NZTkNfSEFTX1NUUAkxCisjZGVmaW5lIENMT0NLX1NZTkNfRVRSCQkyCisjZGVmaW5lIENMT0NLX1NZTkNfU1RQCQkzCisKKy8qCisgKiBUaGUgc3luY2hyb25vdXMgZ2V0X2Nsb2NrIGZ1bmN0aW9uLiBJdCB3aWxsIHdyaXRlIHRoZSBjdXJyZW50IGNsb2NrCisgKiB2YWx1ZSB0byB0aGUgY2xvY2sgcG9pbnRlciBhbmQgcmV0dXJuIDAgaWYgdGhlIGNsb2NrIGlzIGluIHN5bmMgd2l0aAorICogdGhlIGV4dGVybmFsIHRpbWUgc291cmNlLiBJZiB0aGUgY2xvY2sgbW9kZSBpcyBsb2NhbCBpdCB3aWxsIHJldHVybgorICogLUVOT1NZUyBhbmQgLUVBR0FJTiBpZiB0aGUgY2xvY2sgaXMgbm90IGluIHN5bmMgd2l0aCB0aGUgZXh0ZXJuYWwKKyAqIHJlZmVyZW5jZS4KKyAqLworaW50IGdldF9zeW5jX2Nsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqY2xvY2spCit7CisJYXRvbWljX3QgKnN3X3B0cjsKKwl1bnNpZ25lZCBpbnQgc3cwLCBzdzE7CisKKwlzd19wdHIgPSAmZ2V0X2NwdV92YXIoY2xvY2tfc3luY193b3JkKTsKKwlzdzAgPSBhdG9taWNfcmVhZChzd19wdHIpOworCSpjbG9jayA9IGdldF9jbG9jaygpOworCXN3MSA9IGF0b21pY19yZWFkKHN3X3B0cik7CisJcHV0X2NwdV92YXIoY2xvY2tfc3luY19zeW5jKTsKKwlpZiAoc3cwID09IHN3MSAmJiAoc3cwICYgMHg4MDAwMDAwMFUpKQorCQkvKiBTdWNjZXNzOiB0aW1lIGlzIGluIHN5bmMuICovCisJCXJldHVybiAwOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfRVRSLCAmY2xvY2tfc3luY19mbGFncykgJiYKKwkgICAgIXRlc3RfYml0KENMT0NLX1NZTkNfSEFTX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm4gLUVOT1NZUzsKKwlpZiAoIXRlc3RfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncykgJiYKKwkgICAgIXRlc3RfYml0KENMT0NLX1NZTkNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRUFDQ0VTOworCXJldHVybiAtRUFHQUlOOworfQorRVhQT1JUX1NZTUJPTChnZXRfc3luY19jbG9jayk7CisKKy8qCisgKiBNYWtlIGdldF9zeW5jX2Nsb2NrIHJldHVybiAtRUFHQUlOLgorICovCitzdGF0aWMgdm9pZCBkaXNhYmxlX3N5bmNfY2xvY2sodm9pZCAqZHVtbXkpCit7CisJYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGNsb2NrX3N5bmNfd29yZCk7CisJLyoKKwkgKiBDbGVhciB0aGUgaW4tc3luYyBiaXQgMl4zMS4gQWxsIGdldF9zeW5jX2Nsb2NrIGNhbGxzIHdpbGwKKwkgKiBmYWlsIHVudGlsIHRoZSBzeW5jIGJpdCBpcyB0dXJuZWQgYmFjayBvbi4gSW4gYWRkaXRpb24KKwkgKiBpbmNyZWFzZSB0aGUgInNlcXVlbmNlIiBjb3VudGVyIHRvIGF2b2lkIHRoZSByYWNlIG9mIGFuCisJICogZXRyIGV2ZW50IGFuZCB0aGUgY29tcGxldGUgcmVjb3ZlcnkgYWdhaW5zdCBnZXRfc3luY19jbG9jay4KKwkgKi8KKwlhdG9taWNfY2xlYXJfbWFzaygweDgwMDAwMDAwLCBzd19wdHIpOworCWF0b21pY19pbmMoc3dfcHRyKTsKK30KKworLyoKKyAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIDAgYWdhaW4uCisgKiBOZWVkcyB0byBiZSBjYWxsZWQgZnJvbSBhIGNvbnRleHQgZGlzYWJsZWQgZm9yIHByZWVtcHRpb24uCisgKi8KK3N0YXRpYyB2b2lkIGVuYWJsZV9zeW5jX2Nsb2NrKHZvaWQpCit7CisJYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGNsb2NrX3N5bmNfd29yZCk7CisJYXRvbWljX3NldF9tYXNrKDB4ODAwMDAwMDAsIHN3X3B0cik7Cit9CisKKy8qCiAgKiBFeHRlcm5hbCBUaW1lIFJlZmVyZW5jZSAoRVRSKSBjb2RlLgogICovCiBzdGF0aWMgaW50IGV0cl9wb3J0MF9vbmxpbmU7CiBzdGF0aWMgaW50IGV0cl9wb3J0MV9vbmxpbmU7CitzdGF0aWMgaW50IGV0cl9zdGVhaV9hdmFpbGFibGU7CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3BhcnNlX2V0cihjaGFyICpwKQogewpAQCAtMjczLDEyICszOTEsNiBAQAogCUVUUl9FVkVOVF9VUERBVEUsCiB9OwogCi1lbnVtIGV0cl9mbGFncyB7Ci0JRVRSX0ZMQUdfRU5PU1lTLAotCUVUUl9GTEFHX0VBQ0NFUywKLQlFVFJfRkxBR19TVEVBSSwKLX07Ci0KIC8qCiAgKiBWYWxpZCBiaXQgY29tYmluYXRpb25zIG9mIHRoZSBlYWNyIHJlZ2lzdGVyIGFyZSAoeCA9IGRvbid0IGNhcmUpOgogICogZTAgZTEgZHAgcDAgcDEgZWEgZXMgc2wKQEAgLTMwNSw3NCArNDE3LDE4IEBACiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZXRyX2VhY3IgZXRyX2VhY3I7CiBzdGF0aWMgdTY0IGV0cl90b2xlYzsJCQkvKiB0aW1lIG9mIGxhc3QgZWFjciB1cGRhdGUgKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGV0cl9mbGFnczsKIHN0YXRpYyBzdHJ1Y3QgZXRyX2FpYiBldHJfcG9ydDA7CiBzdGF0aWMgaW50IGV0cl9wb3J0MF91cHRvZGF0ZTsKIHN0YXRpYyBzdHJ1Y3QgZXRyX2FpYiBldHJfcG9ydDE7CiBzdGF0aWMgaW50IGV0cl9wb3J0MV91cHRvZGF0ZTsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGV0cl9ldmVudHM7CiBzdGF0aWMgc3RydWN0IHRpbWVyX2xpc3QgZXRyX3RpbWVyOwotc3RhdGljIERFRklORV9QRVJfQ1BVKGF0b21pY190LCBldHJfc3luY193b3JkKTsKIAogc3RhdGljIHZvaWQgZXRyX3RpbWVvdXQodW5zaWduZWQgbG9uZyBkdW1teSk7CiBzdGF0aWMgdm9pZCBldHJfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogc3RhdGljIERFQ0xBUkVfV09SSyhldHJfd29yaywgZXRyX3dvcmtfZm4pOwogCiAvKgotICogVGhlIGV0ciBnZXRfY2xvY2sgZnVuY3Rpb24uIEl0IHdpbGwgd3JpdGUgdGhlIGN1cnJlbnQgY2xvY2sgdmFsdWUKLSAqIHRvIHRoZSBjbG9jayBwb2ludGVyIGFuZCByZXR1cm4gMCBpZiB0aGUgY2xvY2sgaXMgaW4gc3luYyB3aXRoIHRoZQotICogZXh0ZXJuYWwgdGltZSBzb3VyY2UuIElmIHRoZSBjbG9jayBtb2RlIGlzIGxvY2FsIGl0IHdpbGwgcmV0dXJuCi0gKiAtRU5PU1lTIGFuZCAtRUFHQUlOIGlmIHRoZSBjbG9jayBpcyBub3QgaW4gc3luYyB3aXRoIHRoZSBleHRlcm5hbAotICogcmVmZXJlbmNlLiBUaGlzIGZ1bmN0aW9uIGlzIHdoYXQgRVRSIGlzIGFsbCBhYm91dC4uCi0gKi8KLWludCBnZXRfc3luY19jbG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKmNsb2NrKQotewotCWF0b21pY190ICpzd19wdHI7Ci0JdW5zaWduZWQgaW50IHN3MCwgc3cxOwotCi0Jc3dfcHRyID0gJmdldF9jcHVfdmFyKGV0cl9zeW5jX3dvcmQpOwotCXN3MCA9IGF0b21pY19yZWFkKHN3X3B0cik7Ci0JKmNsb2NrID0gZ2V0X2Nsb2NrKCk7Ci0Jc3cxID0gYXRvbWljX3JlYWQoc3dfcHRyKTsKLQlwdXRfY3B1X3ZhcihldHJfc3luY19zeW5jKTsKLQlpZiAoc3cwID09IHN3MSAmJiAoc3cwICYgMHg4MDAwMDAwMFUpKQotCQkvKiBTdWNjZXNzOiB0aW1lIGlzIGluIHN5bmMuICovCi0JCXJldHVybiAwOwotCWlmICh0ZXN0X2JpdChFVFJfRkxBR19FTk9TWVMsICZldHJfZmxhZ3MpKQotCQlyZXR1cm4gLUVOT1NZUzsKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKSkKLQkJcmV0dXJuIC1FQUNDRVM7Ci0JcmV0dXJuIC1FQUdBSU47Ci19Ci1FWFBPUlRfU1lNQk9MKGdldF9zeW5jX2Nsb2NrKTsKLQotLyoKLSAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIC1FQUdBSU4uCi0gKi8KLXN0YXRpYyB2b2lkIGV0cl9kaXNhYmxlX3N5bmNfY2xvY2sodm9pZCAqZHVtbXkpCi17Ci0JYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGV0cl9zeW5jX3dvcmQpOwotCS8qCi0JICogQ2xlYXIgdGhlIGluLXN5bmMgYml0IDJeMzEuIEFsbCBnZXRfc3luY19jbG9jayBjYWxscyB3aWxsCi0JICogZmFpbCB1bnRpbCB0aGUgc3luYyBiaXQgaXMgdHVybmVkIGJhY2sgb24uIEluIGFkZGl0aW9uCi0JICogaW5jcmVhc2UgdGhlICJzZXF1ZW5jZSIgY291bnRlciB0byBhdm9pZCB0aGUgcmFjZSBvZiBhbgotCSAqIGV0ciBldmVudCBhbmQgdGhlIGNvbXBsZXRlIHJlY292ZXJ5IGFnYWluc3QgZ2V0X3N5bmNfY2xvY2suCi0JICovCi0JYXRvbWljX2NsZWFyX21hc2soMHg4MDAwMDAwMCwgc3dfcHRyKTsKLQlhdG9taWNfaW5jKHN3X3B0cik7Ci19Ci0KLS8qCi0gKiBNYWtlIGdldF9zeW5jX2Nsb2NrIHJldHVybiAwIGFnYWluLgotICogTmVlZHMgdG8gYmUgY2FsbGVkIGZyb20gYSBjb250ZXh0IGRpc2FibGVkIGZvciBwcmVlbXB0aW9uLgotICovCi1zdGF0aWMgdm9pZCBldHJfZW5hYmxlX3N5bmNfY2xvY2sodm9pZCkKLXsKLQlhdG9taWNfdCAqc3dfcHRyID0gJl9fZ2V0X2NwdV92YXIoZXRyX3N5bmNfd29yZCk7Ci0JYXRvbWljX3NldF9tYXNrKDB4ODAwMDAwMDAsIHN3X3B0cik7Ci19Ci0KLS8qCiAgKiBSZXNldCBFVFIgYXR0YWNobWVudC4KICAqLwogc3RhdGljIHZvaWQgZXRyX3Jlc2V0KHZvaWQpCkBAIC0zODEsMTUgKzQzNywxMyBAQAogCQkuZTAgPSAwLCAuZTEgPSAwLCAuX3BhZDAgPSA0LCAuZHAgPSAwLAogCQkucDAgPSAwLCAucDEgPSAwLCAuX3BhZDEgPSAwLCAuZWEgPSAwLAogCQkuZXMgPSAwLCAuc2wgPSAwIH07Ci0JaWYgKGV0cl9zZXRyKCZldHJfZWFjcikgPT0gMCkKKwlpZiAoZXRyX3NldHIoJmV0cl9lYWNyKSA9PSAwKSB7CiAJCWV0cl90b2xlYyA9IGdldF9jbG9jaygpOwotCWVsc2UgewotCQlzZXRfYml0KEVUUl9GTEFHX0VOT1NZUywgJmV0cl9mbGFncyk7Ci0JCWlmIChldHJfcG9ydDBfb25saW5lIHx8IGV0cl9wb3J0MV9vbmxpbmUpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlJ1bm5pbmcgb24gbm9uIEVUUiBjYXBhYmxlICIKLQkJCSAgICAgICAibWFjaGluZSwgb25seSBsb2NhbCBtb2RlIGF2YWlsYWJsZS5cbiIpOwotCQkJZXRyX3BvcnQwX29ubGluZSA9IGV0cl9wb3J0MV9vbmxpbmUgPSAwOwotCQl9CisJCXNldF9iaXQoQ0xPQ0tfU1lOQ19IQVNfRVRSLCAmY2xvY2tfc3luY19mbGFncyk7CisJfSBlbHNlIGlmIChldHJfcG9ydDBfb25saW5lIHx8IGV0cl9wb3J0MV9vbmxpbmUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gRVRSIGNhcGFibGUgIgorCQkgICAgICAgIm1hY2hpbmUsIG9ubHkgbG9jYWwgbW9kZSBhdmFpbGFibGUuXG4iKTsKKwkJZXRyX3BvcnQwX29ubGluZSA9IGV0cl9wb3J0MV9vbmxpbmUgPSAwOwogCX0KIH0KIApAQCAtMzk3LDE0ICs0NTEsMTIgQEAKIHsKIAlzdHJ1Y3QgZXRyX2FpYiBhaWI7CiAKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KENMT0NLX1NZTkNfSEFTX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpKQogCQlyZXR1cm4gMDsKIAkvKiBDaGVjayBpZiB0aGlzIG1hY2hpbmUgaGFzIHRoZSBzdGVhaSBpbnN0cnVjdGlvbi4gKi8KIAlpZiAoZXRyX3N0ZWFpKCZhaWIsIEVUUl9TVEVBSV9TVEVQUElOR19QT1JUKSA9PSAwKQotCQlzZXRfYml0KEVUUl9GTEFHX1NURUFJLCAmZXRyX2ZsYWdzKTsKKwkJZXRyX3N0ZWFpX2F2YWlsYWJsZSA9IDE7CiAJc2V0dXBfdGltZXIoJmV0cl90aW1lciwgZXRyX3RpbWVvdXQsIDBVTCk7Ci0JaWYgKCFldHJfcG9ydDBfb25saW5lICYmICFldHJfcG9ydDFfb25saW5lKQotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJaWYgKGV0cl9wb3J0MF9vbmxpbmUpIHsKIAkJc2V0X2JpdChFVFJfRVZFTlRfUE9SVDBfQ0hBTkdFLCAmZXRyX2V2ZW50cyk7CiAJCXNjaGVkdWxlX3dvcmsoJmV0cl93b3JrKTsKQEAgLTQzNSw3ICs0ODcsOCBAQAogewogCWlmICghZXRyX2VhY3Iuc2wpCiAJCXJldHVybjsKLQlldHJfZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlkaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CiAJc2V0X2JpdChFVFJfRVZFTlRfU1dJVENIX0xPQ0FMLCAmZXRyX2V2ZW50cyk7CiAJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOwogfQpAQCAtNDUwLDIzICs1MDMsMjEgQEAKIHsKIAlpZiAoIWV0cl9lYWNyLmVzKQogCQlyZXR1cm47Ci0JZXRyX2Rpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwlpZiAodGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCXNldF9iaXQoRVRSX0VWRU5UX1NZTkNfQ0hFQ0ssICZldHJfZXZlbnRzKTsKIAlzY2hlZHVsZV93b3JrKCZldHJfd29yayk7CiB9CiAKIC8qCi0gKiBFVFIgZXh0ZXJuYWwgaW50ZXJydXB0LiBUaGVyZSBhcmUgdHdvIGNhdXNlczoKKyAqIEVUUiB0aW1pbmcgYWxlcnQuIFRoZXJlIGFyZSB0d28gY2F1c2VzOgogICogMSkgcG9ydCBzdGF0ZSBjaGFuZ2UsIGNoZWNrIHRoZSB1c2FiaWxpdHkgb2YgdGhlIHBvcnQKICAqIDIpIHBvcnQgYWxlcnQsIG9uZSBvZiB0aGUgRVRSLWRhdGEtdmFsaWRpdHkgYml0cyAodjEtdjIgYml0cyBvZiB0aGUKICAqICAgIHNsZHItc3RhdHVzIHdvcmQpIG9yIEVUUi1kYXRhIHdvcmQgMSAoZWRmMSkgb3IgRVRSLWRhdGEgd29yZCAzIChlZGYzKQogICogICAgb3IgRVRSLWRhdGEgd29yZCA0IChlZGY0KSBoYXMgY2hhbmdlZC4KICAqLwotc3RhdGljIHZvaWQgZXRyX2V4dF9oYW5kbGVyKF9fdTE2IGNvZGUpCitzdGF0aWMgdm9pZCBldHJfdGltaW5nX2FsZXJ0KHN0cnVjdCBldHJfaXJxX3Bhcm0gKmludHBhcm0pCiB7Ci0Jc3RydWN0IGV0cl9pbnRlcnJ1cHRpb25fcGFyYW1ldGVyICppbnRwYXJtID0KLQkJKHN0cnVjdCBldHJfaW50ZXJydXB0aW9uX3BhcmFtZXRlciAqKSAmUzM5MF9sb3djb3JlLmV4dF9wYXJhbXM7Ci0KIAlpZiAoaW50cGFybS0+cGMwKQogCQkvKiBFVFIgcG9ydCAwIHN0YXRlIGNoYW5nZS4gKi8KIAkJc2V0X2JpdChFVFJfRVZFTlRfUE9SVDBfQ0hBTkdFLCAmZXRyX2V2ZW50cyk7CkBAIC01OTEsNTggKzY0MiwyMyBAQAogCXJldHVybiAxOwogfQogCi0vKgotICogVGhlIHRpbWUgaXMgImNsb2NrIi4gb2xkIGlzIHdoYXQgd2UgdGhpbmsgdGhlIHRpbWUgaXMuCi0gKiBBZGp1c3QgdGhlIHZhbHVlIGJ5IGEgbXVsdGlwbGUgb2YgamlmZmllcyBhbmQgYWRkIHRoZSBkZWx0YSB0byBudHAuCi0gKiAiZGVsYXkiIGlzIGFuIGFwcHJveGltYXRpb24gaG93IGxvbmcgdGhlIHN5bmNocm9uaXphdGlvbiB0b29rLiBJZgotICogdGhlIHRpbWUgY29ycmVjdGlvbiBpcyBwb3NpdGl2ZSwgdGhlbiAiZGVsYXkiIGlzIHN1YnRyYWN0ZWQgZnJvbQotICogdGhlIHRpbWUgZGlmZmVyZW5jZSBhbmQgb25seSB0aGUgcmVtYWluaW5nIHBhcnQgaXMgcGFzc2VkIHRvIG50cC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBldHJfYWRqdXN0X3RpbWUodW5zaWduZWQgbG9uZyBsb25nIG9sZCwKLQkJCQkJICB1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2ssCi0JCQkJCSAgdW5zaWduZWQgbG9uZyBsb25nIGRlbGF5KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSwgdGlja3M7Ci0Jc3RydWN0IHRpbWV4IGFkanVzdDsKLQotCWlmIChjbG9jayA+IG9sZCkgewotCQkvKiBJdCBpcyBsYXRlciB0aGFuIHdlIHRob3VnaHQuICovCi0JCWRlbHRhID0gdGlja3MgPSBjbG9jayAtIG9sZDsKLQkJZGVsdGEgPSB0aWNrcyA9IChkZWx0YSA8IGRlbGF5KSA/IDAgOiBkZWx0YSAtIGRlbGF5OwotCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOwotCQlhZGp1c3Qub2Zmc2V0ID0gdGlja3MgKiAoMTAwMDAwMCAvIEhaKTsKLQl9IGVsc2UgewotCQkvKiBJdCBpcyBlYXJsaWVyIHRoYW4gd2UgdGhvdWdodC4gKi8KLQkJZGVsdGEgPSB0aWNrcyA9IG9sZCAtIGNsb2NrOwotCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOwotCQlkZWx0YSA9IC1kZWx0YTsKLQkJYWRqdXN0Lm9mZnNldCA9IC10aWNrcyAqICgxMDAwMDAwIC8gSFopOwotCX0KLQlqaWZmaWVzX3RpbWVyX2NjICs9IGRlbHRhOwotCWlmIChhZGp1c3Qub2Zmc2V0ICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fTk9USUNFICJldHI6IHRpbWUgYWRqdXN0ZWQgYnkgJWxpIG1pY3JvLXNlY29uZHNcbiIsCi0JCSAgICAgICBhZGp1c3Qub2Zmc2V0KTsKLQkJYWRqdXN0Lm1vZGVzID0gQURKX09GRlNFVF9TSU5HTEVTSE9UOwotCQlkb19hZGp0aW1leCgmYWRqdXN0KTsKLQl9Ci0JcmV0dXJuIGRlbHRhOwotfQotCi1zdGF0aWMgc3RydWN0IHsKK3N0cnVjdCBjbG9ja19zeW5jX2RhdGEgewogCWludCBpbl9zeW5jOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBmaXh1cF9jYzsKLX0gZXRyX3N5bmM7Cit9OwogCi1zdGF0aWMgdm9pZCBldHJfc3luY19jcHVfc3RhcnQodm9pZCAqZHVtbXkpCitzdGF0aWMgdm9pZCBjbG9ja19zeW5jX2NwdV9zdGFydCh2b2lkICpkdW1teSkKIHsKLQlldHJfZW5hYmxlX3N5bmNfY2xvY2soKTsKKwlzdHJ1Y3QgY2xvY2tfc3luY19kYXRhICpzeW5jID0gZHVtbXk7CisKKwllbmFibGVfc3luY19jbG9jaygpOwogCS8qCiAJICogVGhpcyBsb29rcyBsaWtlIGEgYnVzeSB3YWl0IGxvb3AgYnV0IGl0IGlzbid0LiBldHJfc3luY19jcHVzCiAJICogaXMgY2FsbGVkIG9uIGFsbCBvdGhlciBjcHVzIHdoaWxlIHRoZSBUT0QgY2xvY2tzIGlzIHN0b3BwZWQuCiAJICogX191ZGVsYXkgd2lsbCBzdG9wIHRoZSBjcHUgb24gYW4gZW5hYmxlZCB3YWl0IHBzdyB1bnRpbCB0aGUKIAkgKiBUT0QgaXMgcnVubmluZyBhZ2Fpbi4KIAkgKi8KLQl3aGlsZSAoZXRyX3N5bmMuaW5fc3luYyA9PSAwKSB7CisJd2hpbGUgKHN5bmMtPmluX3N5bmMgPT0gMCkgewogCQlfX3VkZWxheSgxKTsKIAkJLyoKIAkJICogQSBkaWZmZXJlbnQgY3B1IGNoYW5nZXMgKmluX3N5bmMuIFRoZXJlZm9yZSB1c2UKQEAgLTY1MCwxNyArNjY2LDE3IEBACiAJCSAqLwogCQliYXJyaWVyKCk7CiAJfQotCWlmIChldHJfc3luYy5pbl9zeW5jICE9IDEpCisJaWYgKHN5bmMtPmluX3N5bmMgIT0gMSkKIAkJLyogRGlkbid0IHdvcmsuIENsZWFyIHBlci1jcHUgaW4gc3luYyBiaXQgYWdhaW4uICovCi0JCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKIAkvKgogCSAqIFRoaXMgcm91bmQgb2YgVE9EIHN5bmNpbmcgaXMgZG9uZS4gU2V0IHRoZSBjbG9jayBjb21wYXJhdG9yCiAJICogdG8gdGhlIG5leHQgdGljayBhbmQgbGV0IHRoZSBwcm9jZXNzb3IgY29udGludWUuCiAJICovCi0JZml4dXBfY2xvY2tfY29tcGFyYXRvcihldHJfc3luYy5maXh1cF9jYyk7CisJZml4dXBfY2xvY2tfY29tcGFyYXRvcihzeW5jLT5maXh1cF9jYyk7CiB9CiAKLXN0YXRpYyB2b2lkIGV0cl9zeW5jX2NwdV9lbmQodm9pZCAqZHVtbXkpCitzdGF0aWMgdm9pZCBjbG9ja19zeW5jX2NwdV9lbmQodm9pZCAqZHVtbXkpCiB7CiB9CiAKQEAgLTY3Miw2ICs2ODgsNyBAQAogc3RhdGljIGludCBldHJfc3luY19jbG9jayhzdHJ1Y3QgZXRyX2FpYiAqYWliLCBpbnQgcG9ydCkKIHsKIAlzdHJ1Y3QgZXRyX2FpYiAqc3luY19wb3J0OworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgZXRyX3N5bmM7CiAJdW5zaWduZWQgbG9uZyBsb25nIGNsb2NrLCBvbGRfY2xvY2ssIGRlbGF5LCBkZWx0YTsKIAlpbnQgZm9sbG93czsKIAlpbnQgcmM7CkBAIC02OTAsOSArNzA3LDkgQEAKIAkgKi8KIAltZW1zZXQoJmV0cl9zeW5jLCAwLCBzaXplb2YoZXRyX3N5bmMpKTsKIAlwcmVlbXB0X2Rpc2FibGUoKTsKLQlzbXBfY2FsbF9mdW5jdGlvbihldHJfc3luY19jcHVfc3RhcnQsIE5VTEwsIDAsIDApOworCXNtcF9jYWxsX2Z1bmN0aW9uKGNsb2NrX3N5bmNfY3B1X3N0YXJ0LCAmZXRyX3N5bmMsIDAsIDApOwogCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JZXRyX2VuYWJsZV9zeW5jX2Nsb2NrKCk7CisJZW5hYmxlX3N5bmNfY2xvY2soKTsKIAogCS8qIFNldCBjbG9jayB0byBuZXh0IE9URS4gKi8KIAlfX2N0bF9zZXRfYml0KDE0LCAyMSk7CkBAIC03MDcsMTMgKzcyNCwxMyBAQAogCQkvKiBBZGp1c3QgTGludXggdGltaW5nIHZhcmlhYmxlcy4gKi8KIAkJZGVsYXkgPSAodW5zaWduZWQgbG9uZyBsb25nKQogCQkJKGFpYi0+ZWRmMi5ldHYgLSBzeW5jX3BvcnQtPmVkZjIuZXR2KSA8PCAzMjsKLQkJZGVsdGEgPSBldHJfYWRqdXN0X3RpbWUob2xkX2Nsb2NrLCBjbG9jaywgZGVsYXkpOworCQlkZWx0YSA9IGFkanVzdF90aW1lKG9sZF9jbG9jaywgY2xvY2ssIGRlbGF5KTsKIAkJZXRyX3N5bmMuZml4dXBfY2MgPSBkZWx0YTsKIAkJZml4dXBfY2xvY2tfY29tcGFyYXRvcihkZWx0YSk7CiAJCS8qIFZlcmlmeSB0aGF0IHRoZSBjbG9jayBpcyBwcm9wZXJseSBzZXQuICovCiAJCWlmICghZXRyX2FpYl9mb2xsb3dzKHN5bmNfcG9ydCwgYWliLCBwb3J0KSkgewogCQkJLyogRGlkbid0IHdvcmsuICovCi0JCQlldHJfZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCQkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCQkJZXRyX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CiAJCQlyYyA9IC1FQUdBSU47CiAJCX0gZWxzZSB7CkBAIC03MjQsMTIgKzc0MSwxMiBAQAogCQkvKiBDb3VsZCBub3Qgc2V0IHRoZSBjbG9jayA/IT8gKi8KIAkJX19jdGxfY2xlYXJfYml0KDAsIDI5KTsKIAkJX19jdGxfY2xlYXJfYml0KDE0LCAyMSk7Ci0JCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKIAkJZXRyX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CiAJCXJjID0gLUVBR0FJTjsKIAl9CiAJbG9jYWxfaXJxX2VuYWJsZSgpOwotCXNtcF9jYWxsX2Z1bmN0aW9uKGV0cl9zeW5jX2NwdV9lbmQsTlVMTCwwLDApOworCXNtcF9jYWxsX2Z1bmN0aW9uKGNsb2NrX3N5bmNfY3B1X2VuZCwgTlVMTCwgMCwgMCk7CiAJcHJlZW1wdF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CiB9CkBAIC04MzIsNyArODQ5LDcgQEAKIAkgKiBEbyBub3QgdHJ5IHRvIGdldCB0aGUgYWx0ZXJuYXRlIHBvcnQgYWliIGlmIHRoZSBjbG9jawogCSAqIGlzIG5vdCBpbiBzeW5jIHlldC4KIAkgKi8KLQlpZiAoIWVhY3IuZXMpCisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpICYmICFlYWNyLmVzKQogCQlyZXR1cm4gZWFjcjsKIAogCS8qCkBAIC04NDAsNyArODU3LDcgQEAKIAkgKiB0aGUgb3RoZXIgcG9ydCBpbW1lZGlhdGVseS4gSWYgb25seSBzdGV0ciBpcyBhdmFpbGFibGUgdGhlCiAJICogZGF0YS1wb3J0IGJpdCB0b2dnbGUgaGFzIHRvIGJlIHVzZWQuCiAJICovCi0JaWYgKHRlc3RfYml0KEVUUl9GTEFHX1NURUFJLCAmZXRyX2ZsYWdzKSkgeworCWlmIChldHJfc3RlYWlfYXZhaWxhYmxlKSB7CiAJCWlmIChlYWNyLnAwICYmICFldHJfcG9ydDBfdXB0b2RhdGUpIHsKIAkJCWV0cl9zdGVhaV9jdigmZXRyX3BvcnQwLCBFVFJfU1RFQUlfUE9SVF8wKTsKIAkJCWV0cl9wb3J0MF91cHRvZGF0ZSA9IDE7CkBAIC05MDksMTAgKzkyNiwxMCBAQAogCWlmICghZWFjci5lYSkgewogCQkvKiBCb3RoIHBvcnRzIG9mZmxpbmUuIFJlc2V0IGV2ZXJ5dGhpbmcuICovCiAJCWVhY3IuZHAgPSBlYWNyLmVzID0gZWFjci5zbCA9IDA7Ci0JCW9uX2VhY2hfY3B1KGV0cl9kaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDAsIDEpOworCQlvbl9lYWNoX2NwdShkaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDAsIDEpOwogCQlkZWxfdGltZXJfc3luYygmZXRyX3RpbWVyKTsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCQlyZXR1cm47CiAJfQogCkBAIC05NTMsNyArOTcwLDYgQEAKIAkJCWVhY3IuZTEgPSAxOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQwX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDAsIDApKSA/IDAgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAxICYmIGFpYi5lc3cucHNjMSA9PSBldHJfbHBzY19wcHNfbW9kZSkgewogCQllYWNyLnNsID0gMDsKIAkJZWFjci5lMCA9IDA7CkBAIC05NjIsNyArOTc4LDYgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAwICYmIGFpYi5lc3cucHNjMCA9PSBldHJfbHBzY19vcGVyYXRpb25hbF9zdGVwKSB7CiAJCWVhY3Iuc2wgPSAxOwogCQllYWNyLmUwID0gMTsKQEAgLTk3Niw3ICs5OTEsNiBAQAogCQkJZWFjci5lMSA9IDE7CiAJCXN5bmNfcG9ydCA9IChldHJfcG9ydDBfdXB0b2RhdGUgJiYKIAkJCSAgICAgZXRyX3BvcnRfdmFsaWQoJmV0cl9wb3J0MCwgMCkpID8gMCA6IC0xOwotCQljbGVhcl9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKTsKIAl9IGVsc2UgaWYgKGVhY3IucDEgJiYgYWliLmVzdy5wc2MxID09IGV0cl9scHNjX29wZXJhdGlvbmFsX3N0ZXApIHsKIAkJZWFjci5zbCA9IDE7CiAJCWVhY3IuZTAgPSAwOwpAQCAtOTg1LDE5ICs5OTksMjIgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIHsKIAkJLyogQm90aCBwb3J0cyBub3QgdXNhYmxlLiAqLwogCQllYWNyLmVzID0gZWFjci5zbCA9IDA7CiAJCXN5bmNfcG9ydCA9IC0xOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCX0KIAorCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJZWFjci5lcyA9IDA7CisKIAkvKgogCSAqIElmIHRoZSBjbG9jayBpcyBpbiBzeW5jIGp1c3QgdXBkYXRlIHRoZSBlYWNyIGFuZCByZXR1cm4uCiAJICogSWYgdGhlcmUgaXMgbm8gdmFsaWQgc3luYyBwb3J0IHdhaXQgZm9yIGEgcG9ydCB1cGRhdGUuCiAJICovCi0JaWYgKGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgeworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpIHx8CisJICAgIGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgewogCQlldHJfdXBkYXRlX2VhY3IoZWFjcik7CiAJCWV0cl9zZXRfdG9sZWNfdGltZW91dChub3cpOwogCQlyZXR1cm47CkBAIC0xMDE4LDExICsxMDM1LDEzIEBACiAJICogYW5kIHNldCB1cCBhIHRpbWVyIHRvIHRyeSBhZ2FpbiBhZnRlciAwLjUgc2Vjb25kcwogCSAqLwogCWV0cl91cGRhdGVfZWFjcihlYWNyKTsKKwlzZXRfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncyk7CiAJaWYgKG5vdyA8IGV0cl90b2xlYyArICgxNjAwMDAwIDw8IDEyKSB8fAogCSAgICBldHJfc3luY19jbG9jaygmYWliLCBzeW5jX3BvcnQpICE9IDApIHsKIAkJLyogU3luYyBmYWlsZWQuIFRyeSBhZ2FpbiBpbiAxLzIgc2Vjb25kLiAqLwogCQllYWNyLmVzID0gMDsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOworCQljbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKTsKIAkJZXRyX3NldF9zeW5jX3RpbWVvdXQoKTsKIAl9IGVsc2UKIAkJZXRyX3NldF90b2xlY190aW1lb3V0KG5vdyk7CkBAIC0xMDk3LDggKzExMTYsOCBAQAogCXZhbHVlID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAwKTsKIAlpZiAodmFsdWUgIT0gMCAmJiB2YWx1ZSAhPSAxKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKSkKLQkJcmV0dXJuIC1FTk9TWVM7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX0hBU19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmIChkZXYgPT0gJmV0cl9wb3J0MF9kZXYpIHsKIAkJaWYgKGV0cl9wb3J0MF9vbmxpbmUgPT0gdmFsdWUpCiAJCQlyZXR1cm4gY291bnQ7CS8qIE5vdGhpbmcgdG8gZG8uICovCkBAIC0xMjkyLDMgKzEzMTEsMzE4IEBACiB9CiAKIGRldmljZV9pbml0Y2FsbChldHJfaW5pdF9zeXNmcyk7CisKKy8qCisgKiBTZXJ2ZXIgVGltZSBQcm90b2NvbCAoU1RQKSBjb2RlLgorICovCitzdGF0aWMgaW50IHN0cF9vbmxpbmU7CitzdGF0aWMgc3RydWN0IHN0cF9zc3RwaSBzdHBfaW5mbzsKK3N0YXRpYyB2b2lkICpzdHBfcGFnZTsKKworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0YXRpYyBERUNMQVJFX1dPUksoc3RwX3dvcmssIHN0cF93b3JrX2ZuKTsKKworc3RhdGljIGludCBfX2luaXQgZWFybHlfcGFyc2Vfc3RwKGNoYXIgKnApCit7CisJaWYgKHN0cm5jbXAocCwgIm9mZiIsIDMpID09IDApCisJCXN0cF9vbmxpbmUgPSAwOworCWVsc2UgaWYgKHN0cm5jbXAocCwgIm9uIiwgMikgPT0gMCkKKwkJc3RwX29ubGluZSA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgic3RwIiwgZWFybHlfcGFyc2Vfc3RwKTsKKworLyoKKyAqIFJlc2V0IFNUUCBhdHRhY2htZW50LgorICovCitzdGF0aWMgdm9pZCBzdHBfcmVzZXQodm9pZCkKK3sKKwlpbnQgcmM7CisKKwlzdHBfcGFnZSA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwlyYyA9IGNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCWlmIChyYyA9PSAxKQorCQlzZXRfYml0KENMT0NLX1NZTkNfSEFTX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWVsc2UgaWYgKHN0cF9vbmxpbmUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gU1RQIGNhcGFibGUgbWFjaGluZS5cbiIpOworCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHN0cF9wYWdlLCBQQUdFX1NJWkUpOworCQlzdHBfcGFnZSA9IE5VTEw7CisJCXN0cF9vbmxpbmUgPSAwOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgc3RwX2luaXQodm9pZCkKK3sKKwlpZiAodGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykgJiYgc3RwX29ubGluZSkKKwkJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiAwOworfQorCithcmNoX2luaXRjYWxsKHN0cF9pbml0KTsKKworLyoKKyAqIFNUUCB0aW1pbmcgYWxlcnQuIFRoZXJlIGFyZSB0aHJlZSBjYXVzZXM6CisgKiAxKSB0aW1pbmcgc3RhdHVzIGNoYW5nZQorICogMikgbGluayBhdmFpbGFiaWxpdHkgY2hhbmdlCisgKiAzKSB0aW1lIGNvbnRyb2wgcGFyYW1ldGVyIGNoYW5nZQorICogSW4gYWxsIHRocmVlIGNhc2VzIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGNsb2NrIHNvdXJjZSBzdGF0ZS4KKyAqIElmIGEgU1RQIGNsb2NrIHNvdXJjZSBpcyBub3cgYXZhaWxhYmxlIHVzZSBpdC4KKyAqLworc3RhdGljIHZvaWQgc3RwX3RpbWluZ19hbGVydChzdHJ1Y3Qgc3RwX2lycV9wYXJtICppbnRwYXJtKQoreworCWlmIChpbnRwYXJtLT50c2MgfHwgaW50cGFybS0+bGFjIHx8IGludHBhcm0tPnRjcGMpCisJCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBzeW5jIGNoZWNrIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWluZyBzdGF0ZQorICogY2hhbmdlcyBmcm9tIHRoZSBzeW5jaHJvbml6ZWQgc3RhdGUgdG8gdGhlIHVuc3luY2hyb25pemVkIHN0YXRlLgorICogQWZ0ZXIgYSBTVFAgc3luYyBjaGVjayB0aGUgY2xvY2sgaXMgbm90IGluIHN5bmMuIFRoZSBtYWNoaW5lIGNoZWNrCisgKiBpcyBicm9hZGNhc3RlZCB0byBhbGwgY3B1cyBhdCB0aGUgc2FtZSB0aW1lLgorICovCit2b2lkIHN0cF9zeW5jX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBpc2xhbmQgY29uZGl0aW9uIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gYW4gYXR0YWNoZWQKKyAqIHNlcnZlciAgYXR0ZW1wdHMgdG8gY29tbXVuaWNhdGUgb3ZlciBhbiBTVFAgbGluayBhbmQgdGhlIHNlcnZlcnMKKyAqIGhhdmUgbWF0Y2hpbmcgQ1ROIGlkcyBhbmQgaGF2ZSBhIHZhbGlkIHN0cmF0dW0tMSBjb25maWd1cmF0aW9uCisgKiBidXQgdGhlIGNvbmZpZ3VyYXRpb25zIGRvIG5vdCBtYXRjaC4KKyAqLwordm9pZCBzdHBfaXNsYW5kX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCB0YXNrbGV0LiBDaGVjayBmb3IgdGhlIFNUUCBzdGF0ZSBhbmQgdGFrZSBvdmVyIHRoZSBjbG9jaworICogc3luY2hyb25pemF0aW9uIGlmIHRoZSBTVFAgY2xvY2sgc291cmNlIGlzIHVzYWJsZS4KKyAqLworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgc3RwX3N5bmM7CisJdW5zaWduZWQgbG9uZyBsb25nIG9sZF9jbG9jaywgZGVsdGE7CisJaW50IHJjOworCisJaWYgKCFzdHBfb25saW5lKSB7CisJCWNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCQlyZXR1cm47CisJfQorCisJcmMgPSBjaHNjX3NzdHBjKHN0cF9wYWdlLCBTVFBfT1BfQ1RSTCwgMHhiMGUwKTsKKwlpZiAocmMpCisJCXJldHVybjsKKworCXJjID0gY2hzY19zc3RwaShzdHBfcGFnZSwgJnN0cF9pbmZvLCBzaXplb2Yoc3RydWN0IHN0cF9zc3RwaSkpOworCWlmIChyYyB8fCBzdHBfaW5mby5jID09IDApCisJCXJldHVybjsKKworCS8qCisJICogQ2F0Y2ggYWxsIG90aGVyIGNwdXMgYW5kIG1ha2UgdGhlbSB3YWl0IHVudGlsIHdlIGhhdmUKKwkgKiBzdWNjZXNzZnVsbHkgc3luY2VkIHRoZSBjbG9jay4gc21wX2NhbGxfZnVuY3Rpb24gd2lsbAorCSAqIHJldHVybiBhZnRlciBhbGwgb3RoZXIgY3B1cyBhcmUgaW4gY2xvY2tfc3luY19jcHVfc3RhcnQuCisJICovCisJbWVtc2V0KCZzdHBfc3luYywgMCwgc2l6ZW9mKHN0cF9zeW5jKSk7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJc21wX2NhbGxfZnVuY3Rpb24oY2xvY2tfc3luY19jcHVfc3RhcnQsICZzdHBfc3luYywgMCwgMCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwllbmFibGVfc3luY19jbG9jaygpOworCisJc2V0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCisJcmMgPSAwOworCWlmIChzdHBfaW5mby50b2RvZmZbMF0gfHwgc3RwX2luZm8udG9kb2ZmWzFdIHx8CisJICAgIHN0cF9pbmZvLnRvZG9mZlsyXSB8fCBzdHBfaW5mby50b2RvZmZbM10gfHwKKwkgICAgc3RwX2luZm8udG1kICE9IDIpIHsKKwkJb2xkX2Nsb2NrID0gZ2V0X2Nsb2NrKCk7CisJCXJjID0gY2hzY19zc3RwYyhzdHBfcGFnZSwgU1RQX09QX1NZTkMsIDApOworCQlpZiAocmMgPT0gMCkgeworCQkJZGVsdGEgPSBhZGp1c3RfdGltZShvbGRfY2xvY2ssIGdldF9jbG9jaygpLCAwKTsKKwkJCWZpeHVwX2Nsb2NrX2NvbXBhcmF0b3IoZGVsdGEpOworCQkJcmMgPSBjaHNjX3NzdHBpKHN0cF9wYWdlLCAmc3RwX2luZm8sCisJCQkJCXNpemVvZihzdHJ1Y3Qgc3RwX3NzdHBpKSk7CisJCQlpZiAocmMgPT0gMCAmJiBzdHBfaW5mby50bWQgIT0gMikKKwkJCQlyYyA9IC1FQUdBSU47CisJCX0KKwl9CisJaWYgKHJjKSB7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwkJc3RwX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCQlpZiAoZXRyX3BvcnQwX29ubGluZSB8fCBldHJfcG9ydDFfb25saW5lKQorCQkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCX0gZWxzZQorCQlzdHBfc3luYy5pbl9zeW5jID0gMTsKKworCWxvY2FsX2lycV9lbmFibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbihjbG9ja19zeW5jX2NwdV9lbmQsIE5VTEwsIDAsIDApOworCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKKy8qCisgKiBTVFAgY2xhc3Mgc3lzZnMgaW50ZXJmYWNlIGZ1bmN0aW9ucworICovCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBzdHBfc3lzY2xhc3MgPSB7CisJLm5hbWUJPSAic3RwIiwKK307CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5faWRfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiUwMTZsbHhcbiIsCisJCSAgICAgICAqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBzdHBfaW5mby5jdG5pZCk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5faWQsIDA0MDAsIHN0cF9jdG5faWRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5fdHlwZV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIHN0cF9pbmZvLmN0bik7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5fdHlwZSwgMDQwMCwgc3RwX2N0bl90eXBlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfZHN0X29mZnNldF9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDIwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uZHN0byk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihkc3Rfb2Zmc2V0LCAwNDAwLCBzdHBfZHN0X29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX2xlYXBfc2Vjb25kc19zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDgwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8ubGVhcHMpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIobGVhcF9zZWNvbmRzLCAwNDAwLCBzdHBfbGVhcF9zZWNvbmRzX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfc3RyYXR1bV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uc3RyYXR1bSk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihzdHJhdHVtLCAwNDAwLCBzdHBfc3RyYXR1bV9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4MDgwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkgc3RwX2luZm8udHRvKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWVfb2Zmc2V0LCAwNDAwLCBzdHBfdGltZV9vZmZzZXRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1lX3pvbmVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4NDAwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkoczE2KSBzdHBfaW5mby50em8pOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltZV96b25lX29mZnNldCwgMDQwMCwKKwkJCSBzdHBfdGltZV96b25lX29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWluZ19tb2RlX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX2luZm8udG1kKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWluZ19tb2RlLCAwNDAwLCBzdHBfdGltaW5nX21vZGVfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1pbmdfc3RhdGVfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVpXG4iLCBzdHBfaW5mby50c3QpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltaW5nX3N0YXRlLCAwNDAwLCBzdHBfdGltaW5nX3N0YXRlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfb25saW5lX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX29ubGluZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9vbmxpbmVfc3RvcmUoc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsCisJCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJdW5zaWduZWQgaW50IHZhbHVlOworCisJdmFsdWUgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDApOworCWlmICh2YWx1ZSAhPSAwICYmIHZhbHVlICE9IDEpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlzdHBfb25saW5lID0gdmFsdWU7CisJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIENhbid0IHVzZSBTWVNERVZfQ0xBU1NfQVRUUiBiZWNhdXNlIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIGJlIG5hbWVkCisgKiBzdHAvb25saW5lIGJ1dCBhdHRyX29ubGluZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGZpbGUgLi4KKyAqLworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3NfYXR0cmlidXRlIGF0dHJfc3RwX29ubGluZSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAib25saW5lIiwgLm1vZGUgPSAwNjAwIH0sCisJLnNob3cJPSBzdHBfb25saW5lX3Nob3csCisJLnN0b3JlCT0gc3RwX29ubGluZV9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzX2F0dHJpYnV0ZSAqc3RwX2F0dHJpYnV0ZXNbXSA9IHsKKwkmYXR0cl9jdG5faWQsCisJJmF0dHJfY3RuX3R5cGUsCisJJmF0dHJfZHN0X29mZnNldCwKKwkmYXR0cl9sZWFwX3NlY29uZHMsCisJJmF0dHJfc3RwX29ubGluZSwKKwkmYXR0cl9zdHJhdHVtLAorCSZhdHRyX3RpbWVfb2Zmc2V0LAorCSZhdHRyX3RpbWVfem9uZV9vZmZzZXQsCisJJmF0dHJfdGltaW5nX21vZGUsCisJJmF0dHJfdGltaW5nX3N0YXRlLAorCU5VTEwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHN0cF9pbml0X3N5c2ZzKHZvaWQpCit7CisJc3RydWN0IHN5c2Rldl9jbGFzc19hdHRyaWJ1dGUgKiphdHRyOworCWludCByYzsKKworCXJjID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZzdHBfc3lzY2xhc3MpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisJZm9yIChhdHRyID0gc3RwX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspIHsKKwkJcmMgPSBzeXNkZXZfY2xhc3NfY3JlYXRlX2ZpbGUoJnN0cF9zeXNjbGFzcywgKmF0dHIpOworCQlpZiAocmMpCisJCQlnb3RvIG91dF91bnJlZzsKKwl9CisJcmV0dXJuIDA7CitvdXRfdW5yZWc6CisJZm9yICg7IGF0dHIgPj0gc3RwX2F0dHJpYnV0ZXM7IGF0dHItLSkKKwkJc3lzZGV2X2NsYXNzX3JlbW92ZV9maWxlKCZzdHBfc3lzY2xhc3MsICphdHRyKTsKKwlzeXNkZXZfY2xhc3NfdW5yZWdpc3Rlcigmc3RwX3N5c2NsYXNzKTsKK291dDoKKwlyZXR1cm4gcmM7Cit9CisKK2RldmljZV9pbml0Y2FsbChzdHBfaW5pdF9zeXNmcyk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMKaW5kZXggNjYxYTA3Mi4uMjEyZDYxOCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwpAQCAtMzEzLDggKzMxMyw2IEBACiAJCW1hY2hpbmVfaGFzX3RvcG9sb2d5X2lycSA9IDE7CiAKIAl0bF9pbmZvID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwotCWlmICghdGxfaW5mbykKLQkJZ290byBlcnJvcjsKIAlpbmZvID0gdGxfaW5mbzsKIAlzdHNpKGluZm8sIDE1LCAxLCAyKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGI0NjA3MTUuLjc2YzFlNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3MzOTAva2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTQwLDcgKzQwLDYgQEAKIAlfZXRleHQgPSAuOwkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCiAJTk9URVMgOnRleHQgOm5vdGUKLQlCVUdfVEFCTEUgOnRleHQKIAogCVJPREFUQQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMgYi9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMKaW5kZXggY2E5MGVlMy4uMGZhNWRjNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC92dGltZS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdnRpbWUuYwpAQCAtMTM2LDcgKzEzNiw3IEBACiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgc3RhcnRfY3B1X3RpbWVyKHZvaWQpCit2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQAogCQlzZXRfdnRpbWVyKHZ0X2xpc3QtPmlkbGUpOwogfQogCi1zdGF0aWMgdm9pZCBzdG9wX2NwdV90aW1lcih2b2lkKQordm9pZCB2dGltZV9zdG9wX2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTMxOCw4ICszMTgsNyBAQAogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgdGltZXItPmNwdSk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIAotCWlmICh0aW1lci0+Y3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkKLQkJcHJpbnRrKCJpbnRlcm5hbF9hZGRfdnRpbWVyOiBCVUcsIHJ1bm5pbmcgb24gd3JvbmcgQ1BVIik7CisJQlVHX09OKHRpbWVyLT5jcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAogCS8qIGlmIGxpc3QgaXMgZW1wdHkgd2Ugb25seSBoYXZlIHRvIHNldCB0aGUgdGltZXIgKi8KIAlpZiAobGlzdF9lbXB0eSgmdnRfbGlzdC0+bGlzdCkpIHsKQEAgLTM1MywyNSArMzUyLDEyIEBACiAJcHV0X2NwdSgpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBwcmVwYXJlX3Z0aW1lcihzdHJ1Y3QgdnRpbWVyX2xpc3QgKnRpbWVyKQorc3RhdGljIGlubGluZSB2b2lkIHByZXBhcmVfdnRpbWVyKHN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXIpCiB7Ci0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICghdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKSB7Ci0JCXByaW50aygiYWRkX3ZpcnRfdGltZXI6IGludmFsaWQgdGltZXIgZXhwaXJlIHZhbHVlIVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICh2dGltZXJfcGVuZGluZyh0aW1lcikpIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdGltZXIgcGVuZGluZ1xuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCisJQlVHX09OKCF0aW1lci0+ZnVuY3Rpb24pOworCUJVR19PTighdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKKwlCVUdfT04odnRpbWVyX3BlbmRpbmcodGltZXIpKTsKIAl0aW1lci0+Y3B1ID0gZ2V0X2NwdSgpOwotCXJldHVybiAwOwogfQogCiAvKgpAQCAtMzgyLDEwICszNjgsNyBAQAogCXN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXI7CiAKIAl0aW1lciA9IChzdHJ1Y3QgdnRpbWVyX2xpc3QgKiluZXc7Ci0KLQlpZiAocHJlcGFyZV92dGltZXIodGltZXIpIDwgMCkKLQkJcmV0dXJuOwotCisJcHJlcGFyZV92dGltZXIodGltZXIpOwogCXRpbWVyLT5pbnRlcnZhbCA9IDA7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC0zOTksMTAgKzM4Miw3IEBACiAJc3RydWN0IHZ0aW1lcl9saXN0ICp0aW1lcjsKIAogCXRpbWVyID0gKHN0cnVjdCB2dGltZXJfbGlzdCAqKW5ldzsKLQotCWlmIChwcmVwYXJlX3Z0aW1lcih0aW1lcikgPCAwKQotCQlyZXR1cm47Ci0KKwlwcmVwYXJlX3Z0aW1lcih0aW1lcik7CiAJdGltZXItPmludGVydmFsID0gdGltZXItPmV4cGlyZXM7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC00MjMsMTUgKzQwMyw4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgY3B1OwogCi0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJtb2RfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybgktRUlOVkFMOwotCX0KLQotCWlmICghZXhwaXJlcyB8fCBleHBpcmVzID4gVlRJTUVSX01BWF9TTElDRSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBpbnZhbGlkIGV4cGlyZSByYW5nZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlCVUdfT04oIXRpbWVyLT5mdW5jdGlvbik7CisJQlVHX09OKCFleHBpcmVzIHx8IGV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKIAogCS8qCiAJICogVGhpcyBpcyBhIGNvbW1vbiBvcHRpbWl6YXRpb24gdHJpZ2dlcmVkIGJ5IHRoZQpAQCAtNDQ0LDYgKzQxNyw5IEBACiAJY3B1ID0gZ2V0X2NwdSgpOwogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgY3B1KTsKIAorCS8qIGNoZWNrIGlmIHdlIHJ1biBvbiB0aGUgcmlnaHQgQ1BVICovCisJQlVHX09OKHRpbWVyLT5jcHUgIT0gY3B1KTsKKwogCS8qIGRpc2FibGUgaW50ZXJydXB0cyBiZWZvcmUgdGVzdCBpZiB0aW1lciBpcyBwZW5kaW5nICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIApAQCAtNDU4LDE0ICs0MzQsNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQkvKiBjaGVjayBpZiB3ZSBydW4gb24gdGhlIHJpZ2h0IENQVSAqLwotCWlmICh0aW1lci0+Y3B1ICE9IGNwdSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBydW5uaW5nIG9uIHdyb25nIENQVSwgY2hlY2sgeW91ciBjb2RlXG4iKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdnRfbGlzdC0+bG9jaywgZmxhZ3MpOwotCQlwdXRfY3B1KCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWxpc3RfZGVsX2luaXQoJnRpbWVyLT5lbnRyeSk7CiAJdGltZXItPmV4cGlyZXMgPSBleHBpcmVzOwogCkBAIC01MzYsMjQgKzUwNCw2IEBACiAKIH0KIAotc3RhdGljIGludCB2dGltZXJfaWRsZV9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmhjcHUpCi17Ci0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIFMzOTBfQ1BVX0lETEU6Ci0JCXN0b3BfY3B1X3RpbWVyKCk7Ci0JCWJyZWFrOwotCWNhc2UgUzM5MF9DUFVfTk9UX0lETEU6Ci0JCXN0YXJ0X2NwdV90aW1lcigpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIE5PVElGWV9PSzsKLX0KLQotc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayB2dGltZXJfaWRsZV9uYiA9IHsKLQkubm90aWZpZXJfY2FsbCA9IHZ0aW1lcl9pZGxlX25vdGlmeSwKLX07Ci0KIHZvaWQgX19pbml0IHZ0aW1lX2luaXQodm9pZCkKIHsKIAkvKiByZXF1ZXN0IHRoZSBjcHUgdGltZXIgZXh0ZXJuYWwgaW50ZXJydXB0ICovCkBAIC01NjEsOSArNTExLDYgQEAKIAkJCQkJICAgICAgJmV4dF9pbnRfaW5mb190aW1lcikgIT0gMCkKIAkJcGFuaWMoIkNvdWxkbid0IHJlcXVlc3QgZXh0ZXJuYWwgaW50ZXJydXB0IDB4MTAwNSIpOwogCi0JaWYgKHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoJnZ0aW1lcl9pZGxlX25iKSkKLQkJcGFuaWMoIkNvdWxkbid0IHJlZ2lzdGVyIGlkbGUgbm90aWZpZXIiKTsKLQogCS8qIEVuYWJsZSBjcHUgdGltZXIgaW50ZXJydXB0cyBvbiB0aGUgYm9vdCBjcHUuICovCiAJaW5pdF9jcHVfdnRpbWVyKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva3ZtL2RpYWcuYyBiL2FyY2gvczM5MC9rdm0vZGlhZy5jCmluZGV4IGY2MzlhMTUuLmEwNzc1ZTEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rdm0vZGlhZy5jCisrKyBiL2FyY2gvczM5MC9rdm0vZGlhZy5jCkBAIC0yMCw3ICsyMCw3IEBACiAJVkNQVV9FVkVOVCh2Y3B1LCA1LCAiJXMiLCAiZGlhZyB0aW1lIHNsaWNlIGVuZCIpOwogCXZjcHUtPnN0YXQuZGlhZ25vc2VfNDQrKzsKIAl2Y3B1X3B1dCh2Y3B1KTsKLQlzY2hlZHVsZSgpOworCXlpZWxkKCk7CiAJdmNwdV9sb2FkKHZjcHUpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYyBiL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMKaW5kZXggZmNkMWVkOC4uODRhN2ZlZCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYworKysgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jCkBAIC0zMzksNiArMzM5LDExIEBACiAJaWYgKGt2bV9jcHVfaGFzX2ludGVycnVwdCh2Y3B1KSkKIAkJcmV0dXJuIDA7CiAKKwlfX3NldF9jcHVfaWRsZSh2Y3B1KTsKKwlzcGluX2xvY2tfYmgoJnZjcHUtPmFyY2gubG9jYWxfaW50LmxvY2spOworCXZjcHUtPmFyY2gubG9jYWxfaW50LnRpbWVyX2R1ZSA9IDA7CisJc3Bpbl91bmxvY2tfYmgoJnZjcHUtPmFyY2gubG9jYWxfaW50LmxvY2spOworCiAJaWYgKHBzd19pbnRlcnJ1cHRzX2Rpc2FibGVkKHZjcHUpKSB7CiAJCVZDUFVfRVZFTlQodmNwdSwgMywgIiVzIiwgImRpc2FibGVkIHdhaXQiKTsKIAkJX191bnNldF9jcHVfaWRsZSh2Y3B1KTsKQEAgLTM2Niw4ICszNzEsNiBAQAogbm9fdGltZXI6CiAJc3Bpbl9sb2NrX2JoKCZ2Y3B1LT5hcmNoLmxvY2FsX2ludC5mbG9hdF9pbnQtPmxvY2spOwogCXNwaW5fbG9ja19iaCgmdmNwdS0+YXJjaC5sb2NhbF9pbnQubG9jayk7Ci0JX19zZXRfY3B1X2lkbGUodmNwdSk7Ci0JdmNwdS0+YXJjaC5sb2NhbF9pbnQudGltZXJfZHVlID0gMDsKIAlhZGRfd2FpdF9xdWV1ZSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQud3EsICZ3YWl0KTsKIAl3aGlsZSAobGlzdF9lbXB0eSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQubGlzdCkgJiYKIAkJbGlzdF9lbXB0eSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQuZmxvYXRfaW50LT5saXN0KSAmJgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jIGIvYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jCmluZGV4IDBhYzM2YTYuLjY1NThiMDkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYworKysgYi9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMKQEAgLTQyMyw2ICs0MjMsOCBAQAogCXJldHVybiAtRUlOVkFMOyAvKiBub3QgaW1wbGVtZW50ZWQgeWV0ICovCiB9CiAKK2V4dGVybiB2b2lkIHMzOTBfaGFuZGxlX21jY2sodm9pZCk7CisKIHN0YXRpYyB2b2lkIF9fdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCW1lbWNweSgmdmNwdS0+YXJjaC5zaWVfYmxvY2stPmdnMTQsICZ2Y3B1LT5hcmNoLmd1ZXN0X2dwcnNbMTRdLCAxNik7CkBAIC00MzAsMTMgKzQzMiwyMSBAQAogCWlmIChuZWVkX3Jlc2NoZWQoKSkKIAkJc2NoZWR1bGUoKTsKIAorCWlmICh0ZXN0X3RocmVhZF9mbGFnKFRJRl9NQ0NLX1BFTkRJTkcpKQorCQlzMzkwX2hhbmRsZV9tY2NrKCk7CisKKwlrdm1fczM5MF9kZWxpdmVyX3BlbmRpbmdfaW50ZXJydXB0cyh2Y3B1KTsKKwogCXZjcHUtPmFyY2guc2llX2Jsb2NrLT5pY3B0Y29kZSA9IDA7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAlrdm1fZ3Vlc3RfZW50ZXIoKTsKIAlsb2NhbF9pcnFfZW5hYmxlKCk7CiAJVkNQVV9FVkVOVCh2Y3B1LCA2LCAiZW50ZXJpbmcgc2llIGZsYWdzICV4IiwKIAkJICAgYXRvbWljX3JlYWQoJnZjcHUtPmFyY2guc2llX2Jsb2NrLT5jcHVmbGFncykpOwotCXNpZTY0YSh2Y3B1LT5hcmNoLnNpZV9ibG9jaywgdmNwdS0+YXJjaC5ndWVzdF9ncHJzKTsKKwlpZiAoc2llNjRhKHZjcHUtPmFyY2guc2llX2Jsb2NrLCB2Y3B1LT5hcmNoLmd1ZXN0X2dwcnMpKSB7CisJCVZDUFVfRVZFTlQodmNwdSwgMywgIiVzIiwgImZhdWx0IGluIHNpZSBpbnN0cnVjdGlvbiIpOworCQlrdm1fczM5MF9pbmplY3RfcHJvZ3JhbV9pbnQodmNwdSwgUEdNX0FERFJFU1NJTkcpOworCX0KIAlWQ1BVX0VWRU5UKHZjcHUsIDYsICJleGl0IHNpZSBpY3B0Y29kZSAlZCIsCiAJCSAgIHZjcHUtPmFyY2guc2llX2Jsb2NrLT5pY3B0Y29kZSk7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKQEAgLTQ3NSw3ICs0ODUsNiBAQAogCW1pZ2h0X3NsZWVwKCk7CiAKIAlkbyB7Ci0JCWt2bV9zMzkwX2RlbGl2ZXJfcGVuZGluZ19pbnRlcnJ1cHRzKHZjcHUpOwogCQlfX3ZjcHVfcnVuKHZjcHUpOwogCQlyYyA9IGt2bV9oYW5kbGVfc2llX2ludGVyY2VwdCh2Y3B1KTsKIAl9IHdoaWxlICghc2lnbmFsX3BlbmRpbmcoY3VycmVudCkgJiYgIXJjKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9pbml0LmMgYi9hcmNoL3MzOTAvbW0vaW5pdC5jCmluZGV4IDA1NTk4NjQuLjM4OGNjNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9pbml0LmMKKysrIGIvYXJjaC9zMzkwL21tL2luaXQuYwpAQCAtMjAyLDMgKzIwMiwyMiBAQAogICAgICAgICB9CiB9CiAjZW5kaWYKKworI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRworaW50IGFyY2hfYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2NCBzaXplKQoreworCXN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQ7CisJc3RydWN0IHpvbmUgKnpvbmU7CisJaW50IHJjOworCisJcGdkYXQgPSBOT0RFX0RBVEEobmlkKTsKKwl6b25lID0gcGdkYXQtPm5vZGVfem9uZXMgKyBaT05FX05PUk1BTDsKKwlyYyA9IHZtZW1fYWRkX21hcHBpbmcoc3RhcnQsIHNpemUpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCXJjID0gX19hZGRfcGFnZXMoem9uZSwgUEZOX0RPV04oc3RhcnQpLCBQRk5fRE9XTihzaXplKSk7CisJaWYgKHJjKQorCQl2bWVtX3JlbW92ZV9tYXBwaW5nKHN0YXJ0LCBzaXplKTsKKwlyZXR1cm4gcmM7Cit9CisjZW5kaWYgLyogQ09ORklHX01FTU9SWV9IT1RQTFVHICovCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vcGd0YWJsZS5jIGIvYXJjaC9zMzkwL21tL3BndGFibGUuYwppbmRleCA1YzFhZWE5Li4zZDk4YmE4IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vcGd0YWJsZS5jCisrKyBiL2FyY2gvczM5MC9tbS9wZ3RhYmxlLmMKQEAgLTI1NCwzNiArMjU0LDQ2IEBACiBpbnQgczM5MF9lbmFibGVfc2llKHZvaWQpCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OwotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwotCWludCByYzsKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSwgKm9sZF9tbTsKIAotCXRhc2tfbG9jayh0c2spOwotCi0JcmMgPSAwOworCS8qIERvIHdlIGhhdmUgcGdzdGVzPyBpZiB5ZXMsIHdlIGFyZSBkb25lICovCiAJaWYgKHRzay0+bW0tPmNvbnRleHQucGdzdGVzKQotCQlnb3RvIHVubG9jazsKKwkJcmV0dXJuIDA7CiAKLQlyYyA9IC1FSU5WQUw7CisJLyogbGV0cyBjaGVjayBpZiB3ZSBhcmUgYWxsb3dlZCB0byByZXBsYWNlIHRoZSBtbSAqLworCXRhc2tfbG9jayh0c2spOwogCWlmICghdHNrLT5tbSB8fCBhdG9taWNfcmVhZCgmdHNrLT5tbS0+bW1fdXNlcnMpID4gMSB8fAotCSAgICB0c2stPm1tICE9IHRzay0+YWN0aXZlX21tIHx8IHRzay0+bW0tPmlvY3R4X2xpc3QpCi0JCWdvdG8gdW5sb2NrOworCSAgICB0c2stPm1tICE9IHRzay0+YWN0aXZlX21tIHx8IHRzay0+bW0tPmlvY3R4X2xpc3QpIHsKKwkJdGFza191bmxvY2sodHNrKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXRhc2tfdW5sb2NrKHRzayk7CiAKLQl0c2stPm1tLT5jb250ZXh0LnBnc3RlcyA9IDE7CS8qIGRpcnR5IGxpdHRsZSB0cmlja3MgLi4gKi8KKwkvKiB3ZSBjb3B5IHRoZSBtbSB3aXRoIHBnc3RlcyBlbmFibGVkICovCisJdHNrLT5tbS0+Y29udGV4dC5wZ3N0ZXMgPSAxOwogCW1tID0gZHVwX21tKHRzayk7CiAJdHNrLT5tbS0+Y29udGV4dC5wZ3N0ZXMgPSAwOwotCi0JcmMgPSAtRU5PTUVNOwogCWlmICghbW0pCi0JCWdvdG8gdW5sb2NrOwotCW1tcHV0KHRzay0+bW0pOworCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIE5vdyBsZXRzIGNoZWNrIGFnYWluIGlmIHNvbWVib2R5IGF0dGFjaGVkIHB0cmFjZSBldGMgKi8KKwl0YXNrX2xvY2sodHNrKTsKKwlpZiAoIXRzay0+bW0gfHwgYXRvbWljX3JlYWQoJnRzay0+bW0tPm1tX3VzZXJzKSA+IDEgfHwKKwkgICAgdHNrLT5tbSAhPSB0c2stPmFjdGl2ZV9tbSB8fCB0c2stPm1tLT5pb2N0eF9saXN0KSB7CisJCW1tcHV0KG1tKTsKKwkJdGFza191bmxvY2sodHNrKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogb2ssIHdlIGFyZSBhbG9uZS4gTm8gcHRyYWNlLCBubyB0aHJlYWRzLCBldGMuICovCisJb2xkX21tID0gdHNrLT5tbTsKIAl0c2stPm1tID0gdHNrLT5hY3RpdmVfbW0gPSBtbTsKIAlwcmVlbXB0X2Rpc2FibGUoKTsKIAl1cGRhdGVfbW0obW0sIHRzayk7CiAJY3B1X3NldChzbXBfcHJvY2Vzc29yX2lkKCksIG1tLT5jcHVfdm1fbWFzayk7CiAJcHJlZW1wdF9lbmFibGUoKTsKLQlyYyA9IDA7Ci11bmxvY2s6CiAJdGFza191bmxvY2sodHNrKTsKLQlyZXR1cm4gcmM7CisJbW1wdXQob2xkX21tKTsKKwlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHMzOTBfZW5hYmxlX3NpZSk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vdm1lbS5jIGIvYXJjaC9zMzkwL21tL3ZtZW0uYwppbmRleCBmNTkxMTg4Li5lNDg2OGJmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vdm1lbS5jCisrKyBiL2FyY2gvczM5MC9tbS92bWVtLmMKQEAgLTIzNiw3ICsyMzYsNyBAQAogewogCXN0cnVjdCBtZW1vcnlfc2VnbWVudCAqdG1wOwogCi0JaWYgKHNlZy0+c3RhcnQgKyBzZWctPnNpemUgPj0gVk1FTV9NQVhfUEhZUyB8fAorCWlmIChzZWctPnN0YXJ0ICsgc2VnLT5zaXplID4gVk1FTV9NQVhfUEhZUyB8fAogCSAgICBzZWctPnN0YXJ0ICsgc2VnLT5zaXplIDwgc2VnLT5zdGFydCkKIAkJcmV0dXJuIC1FUkFOR0U7CiAKZGlmZiAtLWdpdCBhL2FyY2gvc2gvTWFrZWZpbGUgYi9hcmNoL3NoL01ha2VmaWxlCmluZGV4IDgwNTBiMDMuLmZiN2IxYjEgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvTWFrZWZpbGUKKysrIGIvYXJjaC9zaC9NYWtlZmlsZQpAQCAtNDEsNiArNDEsOCBAQAogY2ZsYWdzLSQoQ09ORklHX0NQVV9CSUdfRU5ESUFOKQkJKz0gLW1iCiBjZmxhZ3MtJChDT05GSUdfQ1BVX0xJVFRMRV9FTkRJQU4pCSs9IC1tbAogCitjZmxhZ3MteQkrPSAkKGNhbGwgY2Mtb3B0aW9uLC1tbm8tZmRwaWMpCisKICMKICMgLVdhLC1pc2E9IHR1bmluZyBpbXBsaWVzIC1XYSwtZHNwIGZvciB0aGUgdmVyc2lvbnMgb2YgYmludXRpbHMgdGhhdAogIyBzdXBwb3J0IGl0LCB3aGlsZSAtV2EsLWRzcCBieSBpdHNlbGYgbGltaXRzIHRoZSByYW5nZSBvZiB1c2FibGUgb3Bjb2RlcwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYyBiL2FyY2gvc2gvYm9hcmRzL2xhbmRpc2svZ2lvLmMKaW5kZXggMTcwMjUwOC4uMGMxNWIwYSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYworKysgYi9hcmNoL3NoL2JvYXJkcy9sYW5kaXNrL2dpby5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9rZGV2X3QuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTMyLDE3ICszMywyMCBAQAogc3RhdGljIGludCBnaW9fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3I7CisJaW50IHJldCA9IC1FTk9FTlQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gTUlOT1IoaW5vZGUtPmlfcmRldik7CiAJaWYgKG1pbm9yIDwgREVWQ09VTlQpIHsKIAkJaWYgKG9wZW5DbnQgPiAwKSB7Ci0JCQlyZXR1cm4gLUVBTFJFQURZOworCQkJcmV0ID0gLUVBTFJFQURZOwogCQl9IGVsc2UgewogCQkJb3BlbkNudCsrOwotCQkJcmV0dXJuIDA7CisJCQlyZXQgPSAwOwogCQl9CiAJfQotCXJldHVybiAtRU5PRU5UOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGdpb19jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZwppbmRleCBmNTJkYjEyLi4zOGY5MzRhIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xhbmRpc2tfZGVmY29uZmlnCkBAIC0yMjYsNyArMjI2LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZwppbmRleCA5ZmE2NmQ5Li5iNjhiNmNkIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGJveHJlMl9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xib3hyZTJfZGVmY29uZmlnCkBAIC0yMzEsNyArMjMxLDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTQwMDAwMDAwCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9zZTc3MDVfZGVmY29uZmlnIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKaW5kZXggODQ3MTdkOC4uNDkwZGNiYyAxMDA2NDQKLS0tIGEvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKQEAgLTIzOSw3ICsyMzksNiBAQAogIwogQ09ORklHX1NIX1RNVT15CiBDT05GSUdfU0hfVElNRVJfSVJRPTE2Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19TSF9QQ0xLX0ZSRVE9MzMzMzMzMzMKIAogIwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9jb25maWdzL3NlNzcxMl9kZWZjb25maWcgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwppbmRleCAyNDBhMWNlLi4yZGQ4M2FmIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZworKysgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwpAQCAtMjM2LDcgKzIzNiw2IEBACiAjCiBDT05GSUdfU0hfVE1VPXkKIENPTkZJR19TSF9USU1FUl9JUlE9MTYKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX1NIX1BDTEtfRlJFUT02NjY2NjY2NgogCiAjCmRpZmYgLS1naXQgYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzUwX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCmluZGV4IGM2MGI2ZmQuLjE2Nzc4NmYgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCisrKyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCkBAIC0yMzUsNyArMjM1LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzcyMy5jIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKaW5kZXggNTY2Y2U3OS4uYTA0NzBmMiAxMDA2NDQKLS0tIGEvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKQEAgLTE2LDYgKzE2LDIxIEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdF9zY2lfcG9ydCBzY2lfcGxhdGZvcm1fZGF0YVtdID0gewogCXsKKwkJLm1hcGJhc2UgICAgICAgID0gMHhmZmUwMDAwMCwKKwkJLmZsYWdzICAgICAgICAgID0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCS50eXBlICAgICAgICAgICA9IFBPUlRfU0NJRiwKKwkJLmlycXMgICAgICAgICAgID0geyA4MCwgODAsIDgwLCA4MCB9LAorCX0seworCQkubWFwYmFzZSAgICAgICAgPSAweGZmZTEwMDAwLAorCQkuZmxhZ3MgICAgICAgICAgPSBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLnR5cGUgICAgICAgICAgID0gUE9SVF9TQ0lGLAorCQkuaXJxcyAgICAgICAgICAgPSB7IDgxLCA4MSwgODEsIDgxIH0sCisJfSx7CisJCS5tYXBiYXNlICAgICAgICA9IDB4ZmZlMjAwMDAsCisJCS5mbGFncyAgICAgICAgICA9IFVQRl9CT09UX0FVVE9DT05GLAorCQkudHlwZSAgICAgICAgICAgPSBQT1JUX1NDSUYsCisJCS5pcnFzICAgICAgICAgICA9IHsgODIsIDgyLCA4MiwgODIgfSwKKwl9LHsKIAkJLm1hcGJhc2UJPSAweGE0ZTMwMDAwLAogCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCiAJCS50eXBlCQk9IFBPUlRfU0NJLApAQCAtNzMsOSArODgsMzUgQEAKIAkucmVzb3VyY2UJPSBydGNfcmVzb3VyY2VzLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzaDc3MjNfdXNiX2hvc3RfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkubmFtZQk9ICJyOGE2NjU5N19oY2QiLAorCQkuc3RhcnQJPSAweGE0ZDgwMDAwLAorCQkuZW5kCT0gMHhhNGQ4MDBmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydAk9IDY1LAorCQkuZW5kCT0gNjUsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBzaDc3MjNfdXNiX2hvc3RfZGV2aWNlID0geworCS5uYW1lCQk9ICJyOGE2NjU5N19oY2QiLAorCS5pZAkJPSAwLAorCS5kZXYgPSB7CisJCS5kbWFfbWFzawkJPSBOVUxMLCAgICAgICAgIC8qICBub3QgdXNlIGRtYSAqLworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHNoNzcyM191c2JfaG9zdF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQk9IHNoNzcyM191c2JfaG9zdF9yZXNvdXJjZXMsCit9OworCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqc2g3NzIzX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzY2lfZGV2aWNlLAogCSZydGNfZGV2aWNlLAorCSZzaDc3MjNfdXNiX2hvc3RfZGV2aWNlLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgc2g3NzIzX2RldmljZXNfc2V0dXAodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzc2My5jIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzYzLmMKaW5kZXggYWUyYjIyMi4uZjE4OWE1NSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzYzLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzYzLmMKQEAgLTI5MSw4ICsyOTEsOSBAQAogfTsKIAogc3RhdGljIERFQ0xBUkVfSU5UQ19ERVNDKGludGNfaXJxX2Rlc2MsICJzaDc3NjMtaXJxIiwgaXJxX3ZlY3RvcnMsCi0JCQkgTlVMTCwgTlVMTCwgaXJxX21hc2tfcmVnaXN0ZXJzLCBpcnFfcHJpb19yZWdpc3RlcnMsCi0JCQkgaXJxX3NlbnNlX3JlZ2lzdGVycyk7CisJCQlOVUxMLCBpcnFfbWFza19yZWdpc3RlcnMsIGlycV9wcmlvX3JlZ2lzdGVycywKKwkJCWlycV9zZW5zZV9yZWdpc3RlcnMpOworCiAKIC8qIEV4dGVybmFsIGludGVycnVwdCBwaW5zIGluIElSTCBtb2RlICovCiBzdGF0aWMgc3RydWN0IGludGNfdmVjdCBpcmxfdmVjdG9yc1tdIF9faW5pdGRhdGEgPSB7CkBAIC0zMjQsMTAgKzMyNSwxMCBAQAogfTsKIAogc3RhdGljIERFQ0xBUkVfSU5UQ19ERVNDKGludGNfaXJsNzY1NF9kZXNjLCAic2g3NzYzLWlybDc2NTQiLCBpcmxfdmVjdG9ycywKLQkJCSBOVUxMLCBOVUxMLCBpcmw3NjU0X21hc2tfcmVnaXN0ZXJzLCBOVUxMLCBOVUxMKTsKKwkJCU5VTEwsIGlybDc2NTRfbWFza19yZWdpc3RlcnMsIE5VTEwsIE5VTEwpOwogCiBzdGF0aWMgREVDTEFSRV9JTlRDX0RFU0MoaW50Y19pcmwzMjEwX2Rlc2MsICJzaDc3NjMtaXJsMzIxMCIsIGlybF92ZWN0b3JzLAotCQkJIE5VTEwsIE5VTEwsIGlybDMyMTBfbWFza19yZWdpc3RlcnMsIE5VTEwsIE5VTEwpOworCQkJTlVMTCwgaXJsMzIxMF9tYXNrX3JlZ2lzdGVycywgTlVMTCwgTlVMTCk7CiAKICNkZWZpbmUgSU5UQ19JQ1IwCTB4ZmZkMDAwMDAKICNkZWZpbmUgSU5UQ19JTlRNU0swCTB4ZmZkMDAwNDQKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvc2gva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCBkNDFlNTYxLi4xYjJhZTM1IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC0zNCwzICszNCw0IEBACiAJCX0KIAl9CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMgYi9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzMyLmxkcy5TCmluZGV4IGM3MTEzNzguLjdiNGI4MmIgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMKKysrIGIvYXJjaC9zaC9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwpAQCAtNDQsNyArNDQsNiBAQAogCiAJX2V0ZXh0ID0gLjsJCQkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAKLQlCVUdfVEFCTEUKIAlOT1RFUwogCVJPX0RBVEEoUEFHRV9TSVpFKQogCmRpZmYgLS1naXQgYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TIGIvYXJjaC9zaC9rZXJuZWwvdm1saW51eF82NC5sZHMuUwppbmRleCBkMWUxNzcwLi4zM2ZhNDY0IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCisrKyBiL2FyY2gvc2gva2VybmVsL3ZtbGludXhfNjQubGRzLlMKQEAgLTY1LDcgKzY1LDYgQEAKIAogCV9ldGV4dCA9IC47CQkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCi0JQlVHX1RBQkxFCiAJTk9URVMgCiAJUk9fREFUQShQQUdFX1NJWkUpCiAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL2FwYy5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKaW5kZXggZDA2YTQwNS4uNjcwNzQyMiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wbS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC03NSw2ICs3Niw3IEBACiAKIHN0YXRpYyBpbnQgYXBjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L0tjb25maWcgYi9hcmNoL3NwYXJjNjQvS2NvbmZpZwppbmRleCBlYjM2ZjNiLi5mY2E5MjQ2IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQvS2NvbmZpZworKysgYi9hcmNoL3NwYXJjNjQvS2NvbmZpZwpAQCAtMTEsNiArMTEsOCBAQAogY29uZmlnIFNQQVJDNjQKIAlib29sCiAJZGVmYXVsdCB5CisJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0UKKwlzZWxlY3QgSEFWRV9GVFJBQ0UKIAlzZWxlY3QgSEFWRV9JREUKIAlzZWxlY3QgSEFWRV9MTUIKIAlzZWxlY3QgSEFWRV9BUkNIX0tHREIKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9LY29uZmlnLmRlYnVnIGIvYXJjaC9zcGFyYzY0L0tjb25maWcuZGVidWcKaW5kZXggNmE0ZDI4YS4uZDZkMzJkMSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L0tjb25maWcuZGVidWcKKysrIGIvYXJjaC9zcGFyYzY0L0tjb25maWcuZGVidWcKQEAgLTMzLDcgKzMzLDcgQEAKIAogY29uZmlnIE1DT1VOVAogCWJvb2wKLQlkZXBlbmRzIG9uIFNUQUNLX0RFQlVHCisJZGVwZW5kcyBvbiBTVEFDS19ERUJVRyB8fCBGVFJBQ0UKIAlkZWZhdWx0IHkKIAogY29uZmlnIEZSQU1FX1BPSU5URVIKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3NwYXJjNjQva2VybmVsL01ha2VmaWxlCmluZGV4IGVjNGY1ZWIuLjQxOGI1NzggMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9NYWtlZmlsZQpAQCAtMTQsNiArMTQsNyBAQAogCQkgICBwb3dlci5vIHNidXMubyBzcGFyYzY0X2tzeW1zLm8gY2htYy5vIFwKIAkJICAgdmlzZW11bC5vIHByb20ubyBvZl9kZXZpY2UubyBodmFwaS5vIHNzdGF0ZS5vIG1kZXNjLm8KIAorb2JqLSQoQ09ORklHX0RZTkFNSUNfRlRSQUNFKSArPSBmdHJhY2Uubwogb2JqLSQoQ09ORklHX1NUQUNLVFJBQ0UpICs9IHN0YWNrdHJhY2Uubwogb2JqLSQoQ09ORklHX1BDSSkJICs9IGVidXMubyBwY2lfY29tbW9uLm8gXAogCQkJICAgIHBjaV9wc3ljaG8ubyBwY2lfc2FicmUubyBwY2lfc2NoaXpvLm8gXApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9mdHJhY2UuYyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvZnRyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI5OGQwYQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvZnRyYWNlLmMKQEAgLTAsMCArMSw5NCBAQAorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKK3N0YXRpYyBjb25zdCB1MzIgZnRyYWNlX25vcCA9IDB4MDEwMDAwMDA7CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpCit7CisJcmV0dXJuIChjaGFyICopJmZ0cmFjZV9ub3A7Cit9CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX2NhbGxfcmVwbGFjZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RhdGljIHUzMiBjYWxsOworCXMzMiBvZmY7CisKKwlvZmYgPSAoKHMzMilhZGRyIC0gKHMzMilpcCk7CisJY2FsbCA9IDB4NDAwMDAwMDAgfCAoKHUzMilvZmYgPj4gMik7CisKKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIgKikgJmNhbGw7Cit9CisKK25vdHJhY2UgaW50CitmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCSAgIHVuc2lnbmVkIGNoYXIgKm5ld19jb2RlKQoreworCXUzMiBvbGQgPSAqKHUzMiAqKW9sZF9jb2RlOworCXUzMiBuZXcgPSAqKHUzMiAqKW5ld19jb2RlOworCXUzMiByZXBsYWNlZDsKKwlpbnQgZmF1bHRlZDsKKworCV9fYXNtX18gX192b2xhdGlsZV9fKAorCSIxOgljYXMJWyVbaXBdXSwgJVtvbGRdLCAlW25ld11cbiIKKwkiCWZsdXNoCSVbaXBdXG4iCisJIgltb3YJMCwgJVtmYXVsdGVkXVxuIgorCSIyOlxuIgorCSIJLnNlY3Rpb24gLmZpeHVwLCNhbGxvYywjZXhlY2luc3RyXG4iCisJIgkuYWxpZ24JNFxuIgorCSIzOglzZXRoaQklJWhpKDJiKSwgJVtmYXVsdGVkXVxuIgorCSIJam1wbAklW2ZhdWx0ZWRdICsgJSVsbygyYiksICUlZzBcbiIKKwkiCSBtb3YJMSwgJVtmYXVsdGVkXVxuIgorCSIJLnByZXZpb3VzXG4iCisJIgkuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iCisJIgkuYWxpZ24JNFxuIgorCSIJLndvcmQJMWIsIDNiXG4iCisJIgkucHJldmlvdXNcbiIKKwk6ICI9ciIgKHJlcGxhY2VkKSwgW2ZhdWx0ZWRdICI9ciIgKGZhdWx0ZWQpCisJOiBbbmV3XSAiMCIgKG5ldyksIFtvbGRdICJyIiAob2xkKSwgW2lwXSAiciIgKGlwKQorCTogIm1lbW9yeSIpOworCisJaWYgKHJlcGxhY2VkICE9IG9sZCAmJiByZXBsYWNlZCAhPSBuZXcpCisJCWZhdWx0ZWQgPSAyOworCisJcmV0dXJuIGZhdWx0ZWQ7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV91cGRhdGVfZnRyYWNlX2Z1bmMoZnRyYWNlX2Z1bmNfdCBmdW5jKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAodW5zaWduZWQgbG9uZykoJmZ0cmFjZV9jYWxsKTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKworCW1lbWNweShvbGQsICZmdHJhY2VfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKHVuc2lnbmVkIGxvbmcpZnVuYyk7CisJcmV0dXJuIGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworfQorCitub3RyYWNlIGludCBmdHJhY2VfbWNvdW50X3NldCh1bnNpZ25lZCBsb25nICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAobG9uZykoJm1jb3VudF9jYWxsKTsKKwl1bnNpZ25lZCBsb25nICphZGRyID0gZGF0YTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKworCS8qCisJICogUmVwbGFjZSB0aGUgbWNvdW50IHN0dWIgd2l0aCBhIHBvaW50ZXIgdG8gdGhlCisJICogaXAgcmVjb3JkZXIgZnVuY3Rpb24uCisJICovCisJbWVtY3B5KG9sZCwgJm1jb3VudF9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAqYWRkcik7CisJKmFkZHIgPSBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKKworCXJldHVybiAwOworfQorCisKK2ludCBfX2luaXQgZnRyYWNlX2R5bl9hcmNoX2luaXQodm9pZCAqZGF0YSkKK3sKKwlmdHJhY2VfbWNvdW50X3NldChkYXRhKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3BhcmM2NF9rc3ltcy5jIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9zcGFyYzY0X2tzeW1zLmMKaW5kZXggOGFjMGI5OS4uNDlkM2VhNTAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3BhcmM2NF9rc3ltcy5jCisrKyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3BhcmM2NF9rc3ltcy5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8YXNtL25zODczMDMuaD4KICNpbmNsdWRlIDxhc20vdGltZXIuaD4KICNpbmNsdWRlIDxhc20vY3B1ZGF0YS5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KIAogc3RydWN0IHBvbGwgewogCWludCBmZDsKQEAgLTExMSw4ICsxMTIsNyBAQAogRVhQT1JUX1NZTUJPTChzbXBfY2FsbF9mdW5jdGlvbik7CiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfTUNPVU5UKQotZXh0ZXJuIHZvaWQgX21jb3VudCh2b2lkKTsKKyNpZmRlZiBDT05GSUdfTUNPVU5UCiBFWFBPUlRfU1lNQk9MKF9tY291bnQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3RhY2t0cmFjZS5jIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9zdGFja3RyYWNlLmMKaW5kZXggYzczY2UzZi4uYjNlMzczNyAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9zdGFja3RyYWNlLmMKQEAgLTEsNiArMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zdGFja3RyYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CiAjaW5jbHVkZSA8YXNtL3N0YWNrdHJhY2UuaD4KIApAQCAtNDcsMyArNDgsNCBAQAogCQkJdHJhY2UtPmVudHJpZXNbdHJhY2UtPm5yX2VudHJpZXMrK10gPSBwYzsKIAl9IHdoaWxlICh0cmFjZS0+bnJfZW50cmllcyA8IHRyYWNlLT5tYXhfZW50cmllcyk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvdGltZS5jIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC90aW1lLmMKaW5kZXggZTVkMjM4OS4uYmVkYzRjMSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC90aW1lLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9wYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpAQCAtMTY1OSwxMCArMTY2MCwxNCBAQAogCiBzdGF0aWMgaW50IG1pbmlfcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKG1pbmlfcnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKG1pbmlfcnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAKIAltaW5pX3J0Y19zdGF0dXMgfD0gUlRDX0lTX09QRU47CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQvbGliL21jb3VudC5TIGIvYXJjaC9zcGFyYzY0L2xpYi9tY291bnQuUwppbmRleCA5ZTQ1MzRiLi43NzM1YTdhIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQvbGliL21jb3VudC5TCisrKyBiL2FyY2gvc3BhcmM2NC9saWIvbWNvdW50LlMKQEAgLTI4LDEwICsyOCwxMyBAQAogCS5za2lwCQlPVlNUQUNLU0laRQogI2VuZGlmCiAJLnRleHQKLQkuYWxpZ24gMzIKLQkuZ2xvYmwgbWNvdW50LCBfbWNvdW50Ci1tY291bnQ6CisJLmFsaWduCQkzMgorCS5nbG9ibAkJX21jb3VudAorCS50eXBlCQlfbWNvdW50LCNmdW5jdGlvbgorCS5nbG9ibAkJbWNvdW50CisJLnR5cGUJCW1jb3VudCwjZnVuY3Rpb24KIF9tY291bnQ6CittY291bnQ6CiAjaWZkZWYgQ09ORklHX1NUQUNLX0RFQlVHCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyICVzcCBpcyBkYW5nZXJvdXNseSBsb3cuCkBAIC01NSw2ICs1OCw1MyBAQAogCSBvcgkJJWczLCAlbG8ocGFuaWNzdHJpbmcpLCAlbzAKIAljYWxsCQlwcm9tX2hhbHQKIAkgbm9wCisxOgogI2VuZGlmCi0xOglyZXRsCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCW1vdgkJJW83LCAlbzAKKwkuZ2xvYmwJCW1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwljYWxsCQlmdHJhY2Vfc3R1YgorCSBtb3YJCSVvMCwgJW83CisjZWxzZQorCXNldGhpCQklaGkoZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKSwgJWcxCisJc2V0aGkJCSVoaShmdHJhY2Vfc3R1YiksICVnMgorCWxkeAkJWyVnMSArICVsbyhmdHJhY2VfdHJhY2VfZnVuY3Rpb24pXSwgJWcxCisJb3IJCSVnMiwgJWxvKGZ0cmFjZV9zdHViKSwgJWcyCisJY21wCQklZzEsICVnMgorCWJlLHBuCQklaWNjLCAxZgorCSBtb3YJCSVpNywgJW8xCisJam1wbAkJJWcxLCAlZzAKKwkgbW92CQklbzcsICVvMAorCS8qIG5vdCByZWFjaGVkICovCisxOgorI2VuZGlmCisjZW5kaWYKKwlyZXRsCiAJIG5vcAorCS5zaXplCQlfbWNvdW50LC4tX21jb3VudAorCS5zaXplCQltY291bnQsLi1tY291bnQKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKwkuZ2xvYmwJCWZ0cmFjZV9zdHViCisJLnR5cGUJCWZ0cmFjZV9zdHViLCNmdW5jdGlvbgorZnRyYWNlX3N0dWI6CisJcmV0bAorCSBub3AKKwkuc2l6ZQkJZnRyYWNlX3N0dWIsLi1mdHJhY2Vfc3R1YgorI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCS5nbG9ibAkJZnRyYWNlX2NhbGxlcgorCS50eXBlCQlmdHJhY2VfY2FsbGVyLCNmdW5jdGlvbgorZnRyYWNlX2NhbGxlcjoKKwltb3YJCSVpNywgJW8xCisJbW92CQklbzcsICVvMAorCS5nbG9ibAkJZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWNhbGwJCWZ0cmFjZV9zdHViCisJIG1vdgkJJW8wLCAlbzcKKwlyZXRsCisJIG5vcAorCS5zaXplCQlmdHJhY2VfY2FsbGVyLC4tZnRyYWNlX2NhbGxlcgorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvdW0vTWFrZWZpbGUgYi9hcmNoL3VtL01ha2VmaWxlCmluZGV4IGRiZWFiMTUuLmNhNDAzOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vTWFrZWZpbGUKKysrIGIvYXJjaC91bS9NYWtlZmlsZQpAQCAtNzcsNyArNzcsNiBAQAogS0VSTkVMX0RFRklORVMgPSAkKHN0cmlwIC1EZXJybm89a2VybmVsX2Vycm5vIC1Ec2lncHJvY21hc2s9a2VybmVsX3NpZ3Byb2NtYXNrIFwKIAkJCSAtRG1rdGltZT1rZXJuZWxfbWt0aW1lICQoQVJDSF9LRVJORUxfREVGSU5FUykpCiBLQlVJTERfQ0ZMQUdTICs9ICQoS0VSTkVMX0RFRklORVMpCi1LQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sLWZuby11bml0LWF0LWEtdGltZSwpCiAKIFBIT05ZICs9IGxpbnV4CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vTWFrZWZpbGUtaTM4NiBiL2FyY2gvdW0vTWFrZWZpbGUtaTM4NgppbmRleCA1NjFlMzczLi4zMDJjYmU1IDEwMDY0NAotLS0gYS9hcmNoL3VtL01ha2VmaWxlLWkzODYKKysrIGIvYXJjaC91bS9NYWtlZmlsZS1pMzg2CkBAIC0zMiw0ICszMiwxMSBAQAogIyBhbiB1bnJlc29sdmVkIHJlZmVyZW5jZS4KIGNmbGFncy15ICs9IC1mZnJlZXN0YW5kaW5nCiAKKyMgRGlzYWJsZSB1bml0LWF0LWEtdGltZSBtb2RlIG9uIHByZS1nY2MtNC4wIGNvbXBpbGVycywgaXQgbWFrZXMgZ2NjIHVzZQorIyBhIGxvdCBtb3JlIHN0YWNrIGR1ZSB0byB0aGUgbGFjayBvZiBzaGFyaW5nIG9mIHN0YWNrbG90cy4gIEFsc28sIGdjYworIyA0LjMuMCBuZWVkcyAtZnVuaXQtYXQtYS10aW1lIGZvciBleHRlcm4gaW5saW5lIGZ1bmN0aW9ucy4KK0tCVUlMRF9DRkxBR1MgKz0gJChzaGVsbCBpZiBbICQoY2FsbCBjYy12ZXJzaW9uKSAtbHQgMDQwMCBdIDsgdGhlbiBcCisJCQllY2hvICQoY2FsbCBjYy1vcHRpb24sLWZuby11bml0LWF0LWEtdGltZSk7IFwKKwkJCWVsc2UgZWNobyAkKGNhbGwgY2Mtb3B0aW9uLC1mdW5pdC1hdC1hLXRpbWUpOyBmaSA7KQorCiBLQlVJTERfQ0ZMQUdTICs9ICQoY2ZsYWdzLXkpCmRpZmYgLS1naXQgYS9hcmNoL3VtL01ha2VmaWxlLXg4Nl82NCBiL2FyY2gvdW0vTWFrZWZpbGUteDg2XzY0CmluZGV4IDhlZDM2MmYuLmE5Y2Q3ZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vTWFrZWZpbGUteDg2XzY0CisrKyBiL2FyY2gvdW0vTWFrZWZpbGUteDg2XzY0CkBAIC0yMSwzICsyMSw2IEBACiAKIExJTkstJChDT05GSUdfTERfU0NSSVBUX0RZTikgKz0gLVdsLC1ycGF0aCwvbGliNjQKIExJTksteSArPSAtbTY0CisKKyMgRG8gdW5pdC1hdC1hLXRpbWUgdW5jb25kaXRpb25hbGx5IG9uIHg4Nl82NCwgZm9sbG93aW5nIHRoZSBob3N0CitLQlVJTERfQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sLWZ1bml0LWF0LWEtdGltZSkKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9oYXJkZG9nX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9oYXJkZG9nX2tlcm4uYwppbmRleCBhOWFkNGJkLi5kMzMyNTAzIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ19rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL2hhcmRkb2dfa2Vybi5jCkBAIC02Niw2ICs2Niw3IEBACiAJaW50IGVyciA9IC1FQlVTWTsKIAljaGFyICpzb2NrID0gTlVMTDsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZsb2NrKTsKIAlpZih0aW1lcl9hbGl2ZSkKIAkJZ290byBlcnI7CkBAIC04Miw5ICs4MywxMSBAQAogCiAJdGltZXJfYWxpdmUgPSAxOwogCXNwaW5fdW5sb2NrKCZsb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogZXJyOgogCXNwaW5fdW5sb2NrKCZsb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jCmluZGV4IDY3YjJmNTUuLmViMjQwMzIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9tbWFwcGVyX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvbW1hcHBlcl9rZXJuLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAibWVtX3VzZXIuaCIKIApAQCAtNzcsNiArNzgsNyBAQAogCiBzdGF0aWMgaW50IG1tYXBwZXJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvcmFuZG9tLmMgYi9hcmNoL3VtL2RyaXZlcnMvcmFuZG9tLmMKaW5kZXggNDk0OTA0NC4uNmVhYmI3MCAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3JhbmRvbS5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9yYW5kb20uYwpAQCAtNyw2ICs3LDcgQEAKICAqIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaW5jb3Jwb3JhdGVkIGhlcmVpbiBieSByZWZlcmVuY2UuCiAgKi8KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KQEAgLTMzLDYgKzM0LDggQEAKIAogc3RhdGljIGludCBybmdfZGV2X29wZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisKIAkvKiBlbmZvcmNlIHJlYWQtb25seSBhY2Nlc3MgdG8gdGhpcyBjaHJkZXYgKi8KIAlpZiAoKGZpbHAtPmZfbW9kZSAmIEZNT0RFX1JFQUQpID09IDApCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zdGFydF91cC5jIGIvYXJjaC91bS9vcy1MaW51eC9zdGFydF91cC5jCmluZGV4IGI0YjM2ZTAuLjE4M2RiMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0X3VwLmMKQEAgLTEyMSw4ICsxMjEsMTAgQEAKIHsKIAlpbnQgc3RhdHVzLCBuLCByZXQgPSAwOwogCi0JaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgcGlkLCAwLCAwKSA8IDApCi0JCWZhdGFsX3BlcnJvcigic3RvcF9wdHJhY2VkX2NoaWxkIDogcHRyYWNlIGZhaWxlZCIpOworCWlmIChwdHJhY2UoUFRSQUNFX0NPTlQsIHBpZCwgMCwgMCkgPCAwKSB7CisJCXBlcnJvcigic3RvcF9wdHJhY2VkX2NoaWxkIDogcHRyYWNlIGZhaWxlZCIpOworCQlyZXR1cm4gLTE7CisJfQogCUNBVENIX0VJTlRSKG4gPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCkpOwogCWlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgKFdFWElUU1RBVFVTKHN0YXR1cykgIT0gZXhpdGNvZGUpKSB7CiAJCWludCBleGl0X3dpdGggPSBXRVhJVFNUQVRVUyhzdGF0dXMpOwpAQCAtMjEyLDcgKzIxNCw3IEBACiAJaWYgKG4gPCAwKQogCQlmYXRhbF9wZXJyb3IoImNoZWNrX3N5c2VtdSA6IHdhaXQgZmFpbGVkIik7CiAJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykgfHwgKFdTVE9QU0lHKHN0YXR1cykgIT0gU0lHVFJBUCkpCi0JCWZhdGFsKCJjaGVja19zeXNlbXUgOiBleHBlY3RlZCBTSUdUUkFQLCBnb3Qgc3RhdHVzID0gJWQiLAorCQlmYXRhbCgiY2hlY2tfc3lzZW11IDogZXhwZWN0ZWQgU0lHVFJBUCwgZ290IHN0YXR1cyA9ICVkXG4iLAogCQkgICAgICBzdGF0dXMpOwogCiAJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgcGlkLCAwLCByZWdzKSA8IDApCkBAIC0yNTQsOSArMjU2LDExIEBACiAKIAkJaWYgKFdJRlNUT1BQRUQoc3RhdHVzKSAmJgogCQkgICAgKFdTVE9QU0lHKHN0YXR1cykgPT0gKFNJR1RSQVB8MHg4MCkpKSB7Ci0JCQlpZiAoIWNvdW50KQotCQkJCWZhdGFsKCJjaGVja19wdHJhY2UgOiBTWVNFTVVfU0lOR0xFU1RFUCAiCi0JCQkJICAgICAgImRvZXNuJ3Qgc2luZ2xlc3RlcCIpOworCQkJaWYgKCFjb3VudCkgeworCQkJCW5vbl9mYXRhbCgiY2hlY2tfcHRyYWNlIDogU1lTRU1VX1NJTkdMRVNURVAgIgorCQkJCQkgICJkb2Vzbid0IHNpbmdsZXN0ZXAiKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CiAJCQluID0gcHRyYWNlKFBUUkFDRV9QT0tFVVNSLCBwaWQsIFBUX1NZU0NBTExfUkVUX09GRlNFVCwKIAkJCQkgICBvc19nZXRwaWQoKSk7CiAJCQlpZiAobiA8IDApCkBAIC0yNjYsOSArMjcwLDEyIEBACiAJCX0KIAkJZWxzZSBpZiAoV0lGU1RPUFBFRChzdGF0dXMpICYmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1RSQVApKQogCQkJY291bnQrKzsKLQkJZWxzZQotCQkJZmF0YWwoImNoZWNrX3B0cmFjZSA6IGV4cGVjdGVkIFNJR1RSQVAgb3IgIgotCQkJICAgICAgIihTSUdUUkFQIHwgMHg4MCksIGdvdCBzdGF0dXMgPSAlZCIsIHN0YXR1cyk7CisJCWVsc2UgeworCQkJbm9uX2ZhdGFsKCJjaGVja19wdHJhY2UgOiBleHBlY3RlZCBTSUdUUkFQIG9yICIKKwkJCQkgICIoU0lHVFJBUCB8IDB4ODApLCBnb3Qgc3RhdHVzID0gJWRcbiIsCisJCQkJICBzdGF0dXMpOworCQkJZ290byBmYWlsOworCQl9CiAJfQogCWlmIChzdG9wX3B0cmFjZWRfY2hpbGQocGlkLCAwLCAwKSA8IDApCiAJCWdvdG8gZmFpbF9zdG9wcGVkOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni9yZWdpc3RlcnMuYyBiL2FyY2gvdW0vb3MtTGludXgvc3lzLWkzODYvcmVnaXN0ZXJzLmMKaW5kZXggYjQ4N2NiZS4uMjI5ZjdhNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni9yZWdpc3RlcnMuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N5cy1pMzg2L3JlZ2lzdGVycy5jCkBAIC02LDcgKzYsNyBAQAogCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8YXNtL3VzZXIuaD4KKyNpbmNsdWRlIDxzeXMvdXNlci5oPgogI2luY2x1ZGUgImtlcm5fY29uc3RhbnRzLmgiCiAjaW5jbHVkZSAibG9uZ2ptcC5oIgogI2luY2x1ZGUgInVzZXIuaCIKQEAgLTc2LDcgKzc2LDcgQEAKIAogdm9pZCBhcmNoX2luaXRfcmVnaXN0ZXJzKGludCBwaWQpCiB7Ci0Jc3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QgZnB4X3JlZ3M7CisJc3RydWN0IHVzZXJfZnB4cmVnc19zdHJ1Y3QgZnB4X3JlZ3M7CiAJaW50IGVycjsKIAogCWVyciA9IHB0cmFjZShQVFJBQ0VfR0VURlBYUkVHUywgcGlkLCAwLCAmZnB4X3JlZ3MpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggNTJlMThlNi4uMjY0MmI0YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZworKysgYi9hcmNoL3g4Ni9LY29uZmlnCkBAIC0yMyw2ICsyMyw4IEBACiAJc2VsZWN0IEhBVkVfT1BST0ZJTEUKIAlzZWxlY3QgSEFWRV9LUFJPQkVTCiAJc2VsZWN0IEhBVkVfS1JFVFBST0JFUworCXNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFCisJc2VsZWN0IEhBVkVfRlRSQUNFCiAJc2VsZWN0IEhBVkVfS1ZNIGlmICgoWDg2XzMyICYmICFYODZfVk9ZQUdFUiAmJiAhWDg2X1ZJU1dTICYmICFYODZfTlVNQVEpIHx8IFg4Nl82NCkKIAlzZWxlY3QgSEFWRV9BUkNIX0tHREIgaWYgIVg4Nl9WT1lBR0VSCiAKQEAgLTEyMSw3ICsxMjMsNyBAQAogCWRlZl9ib29sIHkKIAogY29uZmlnIEhBVkVfU0VUVVBfUEVSX0NQVV9BUkVBCi0JZGVmX2Jvb2wgWDg2XzY0IHx8IChYODZfU01QICYmICFYODZfVk9ZQUdFUikKKwlkZWZfYm9vbCBYODZfNjRfU01QIHx8IChYODZfU01QICYmICFYODZfVk9ZQUdFUikKIAogY29uZmlnIEhBVkVfQ1BVTUFTS19PRl9DUFVfTUFQCiAJZGVmX2Jvb2wgWDg2XzY0X1NNUApAQCAtMTgxLDEyICsxODMsMTIgQEAKIGNvbmZpZyBYODZfSFQKIAlib29sCiAJZGVwZW5kcyBvbiBTTVAKLQlkZXBlbmRzIG9uIChYODZfMzIgJiYgIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpKSB8fCBYODZfNjQKKwlkZXBlbmRzIG9uIChYODZfMzIgJiYgIVg4Nl9WT1lBR0VSKSB8fCBYODZfNjQKIAlkZWZhdWx0IHkKIAogY29uZmlnIFg4Nl9CSU9TX1JFQk9PVAogCWJvb2wKLQlkZXBlbmRzIG9uICFYODZfVklTV1MgJiYgIVg4Nl9WT1lBR0VSCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAlkZWZhdWx0IHkKIAogY29uZmlnIFg4Nl9UUkFNUE9MSU5FCkBAIC0yMzAsNiArMjMyLDI2IEBACiAKIAkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVyZSwgc2F5IE4uCiAKK2NvbmZpZyBYODZfRklORF9TTVBfQ09ORklHCisJZGVmX2Jvb2wgeQorCWRlcGVuZHMgb24gWDg2X01QUEFSU0UgfHwgWDg2X1ZPWUFHRVIKKworaWYgQUNQSQorY29uZmlnIFg4Nl9NUFBBUlNFCisJZGVmX2Jvb2wgeQorCWJvb2wgIkVuYWJsZSBNUFMgdGFibGUiCisJZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQworCWhlbHAKKwkgIEZvciBvbGQgc21wIHN5c3RlbXMgdGhhdCBkbyBub3QgaGF2ZSBwcm9wZXIgYWNwaSBzdXBwb3J0LiBOZXdlciBzeXN0ZW1zCisJICAoZXNwIHdpdGggNjRiaXQgY3B1cykgd2l0aCBhY3BpIHN1cHBvcnQsIE1BRFQgYW5kIERTRFQgd2lsbCBvdmVycmlkZSBpdAorZW5kaWYKKworaWYgIUFDUEkKK2NvbmZpZyBYODZfTVBQQVJTRQorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl9MT0NBTF9BUElDCitlbmRpZgorCiBjaG9pY2UKIAlwcm9tcHQgIlN1YmFyY2hpdGVjdHVyZSBUeXBlIgogCWRlZmF1bHQgWDg2X1BDCkBAIC0yNTEsNyArMjczLDcgQEAKIAogY29uZmlnIFg4Nl9WT1lBR0VSCiAJYm9vbCAiVm95YWdlciAoTkNSKSIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAoU01QIHx8IEJST0tFTikKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAoU01QIHx8IEJST0tFTikgJiYgIVBDSQogCWhlbHAKIAkgIFZveWFnZXIgaXMgYW4gTUNBLWJhc2VkIDMyLXdheSBjYXBhYmxlIFNNUCBhcmNoaXRlY3R1cmUgcHJvcHJpZXRhcnkKIAkgIHRvIE5DUiBDb3JwLiAgTWFjaGluZSBjbGFzc2VzIDM0NXgvMzV4eC80MTAwLzUxeHggYXJlIFZveWFnZXItYmFzZWQuCkBAIC0yNjEsMTYgKzI4MywyNyBAQAogCSAgSWYgeW91IGRvIG5vdCBzcGVjaWZpY2FsbHkga25vdyB5b3UgaGF2ZSBhIFZveWFnZXIgYmFzZWQgbWFjaGluZSwKIAkgIHNheSBOIGhlcmUsIG90aGVyd2lzZSB0aGUga2VybmVsIHlvdSBidWlsZCB3aWxsIG5vdCBiZSBib290YWJsZS4KIAorY29uZmlnIFg4Nl9HRU5FUklDQVJDSAorICAgICAgIGJvb2wgIkdlbmVyaWMgYXJjaGl0ZWN0dXJlIgorCWRlcGVuZHMgb24gWDg2XzMyCisgICAgICAgaGVscAorICAgICAgICAgIFRoaXMgb3B0aW9uIGNvbXBpbGVzIGluIHRoZSBOVU1BUSwgU3VtbWl0LCBiaWdzbXAsIEVTNzAwMCwgZGVmYXVsdAorCSAgc3ViYXJjaGl0ZWN0dXJlcy4gIEl0IGlzIGludGVuZGVkIGZvciBhIGdlbmVyaWMgYmluYXJ5IGtlcm5lbC4KKwkgIGlmIHlvdSBzZWxlY3QgdGhlbSBhbGwsIGtlcm5lbCB3aWxsIHByb2JlIGl0IG9uZSBieSBvbmUuIGFuZCB3aWxsCisJICBmYWxsYmFjayB0byBkZWZhdWx0LgorCitpZiBYODZfR0VORVJJQ0FSQ0gKKwogY29uZmlnIFg4Nl9OVU1BUQogCWJvb2wgIk5VTUFRIChJQk0vU2VxdWVudCkiCi0JZGVwZW5kcyBvbiBTTVAgJiYgWDg2XzMyCisJZGVwZW5kcyBvbiBTTVAgJiYgWDg2XzMyICYmIFBDSSAmJiBYODZfTVBQQVJTRQogCXNlbGVjdCBOVU1BCiAJaGVscAotCSAgVGhpcyBvcHRpb24gaXMgdXNlZCBmb3IgZ2V0dGluZyBMaW51eCB0byBydW4gb24gYSAoSUJNL1NlcXVlbnQpIE5VTUEKLQkgIG11bHRpcXVhZCBib3guIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoYXQgcHJvY2Vzc29ycyBhcmUgYm9vdHN0cmFwcGVkLAotCSAgYW5kIHVzZXMgQ2x1c3RlcmVkIExvZ2ljYWwgQVBJQyBhZGRyZXNzaW5nIG1vZGUgaW5zdGVhZCBvZiBGbGF0IExvZ2ljYWwuCi0JICBZb3Ugd2lsbCBuZWVkIGEgbmV3IGx5bnhlci5lbGYgZmlsZSB0byBmbGFzaCB5b3VyIGZpcm13YXJlIHdpdGggLSBzZW5kCi0JICBlbWFpbCB0byA8TWFydGluLkJsaWdoQHVzLmlibS5jb20+LgorCSAgVGhpcyBvcHRpb24gaXMgdXNlZCBmb3IgZ2V0dGluZyBMaW51eCB0byBydW4gb24gYSBOVU1BUSAoSUJNL1NlcXVlbnQpCisJICBOVU1BIG11bHRpcXVhZCBib3guIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoYXQgcHJvY2Vzc29ycyBhcmUKKwkgIGJvb3RzdHJhcHBlZCwgYW5kIHVzZXMgQ2x1c3RlcmVkIExvZ2ljYWwgQVBJQyBhZGRyZXNzaW5nIG1vZGUgaW5zdGVhZAorCSAgb2YgRmxhdCBMb2dpY2FsLiAgWW91IHdpbGwgbmVlZCBhIG5ldyBseW54ZXIuZWxmIGZpbGUgdG8gZmxhc2ggeW91cgorCSAgZmlybXdhcmUgd2l0aCAtIHNlbmQgZW1haWwgdG8gPE1hcnRpbi5CbGlnaEB1cy5pYm0uY29tPi4KIAogY29uZmlnIFg4Nl9TVU1NSVQKIAlib29sICJTdW1taXQvRVhBIChJQk0geDQ0MCkiCkBAIC0yNzksNDYgKzMxMiwyMSBAQAogCSAgVGhpcyBvcHRpb24gaXMgbmVlZGVkIGZvciBJQk0gc3lzdGVtcyB0aGF0IHVzZSB0aGUgU3VtbWl0L0VYQSBjaGlwc2V0LgogCSAgSW4gcGFydGljdWxhciwgaXQgaXMgbmVlZGVkIGZvciB0aGUgeDQ0MC4KIAotCSAgSWYgeW91IGRvbid0IGhhdmUgb25lIG9mIHRoZXNlIGNvbXB1dGVycywgeW91IHNob3VsZCBzYXkgTiBoZXJlLgotCSAgSWYgeW91IHdhbnQgdG8gYnVpbGQgYSBOVU1BIGtlcm5lbCwgeW91IG11c3Qgc2VsZWN0IEFDUEkuCi0KLWNvbmZpZyBYODZfQklHU01QCi0JYm9vbCAiU3VwcG9ydCBmb3Igb3RoZXIgc3ViLWFyY2ggU01QIHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gOCBDUFVzIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFNNUAotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGlzIG5lZWRlZCBmb3IgdGhlIHN5c3RlbXMgdGhhdCBoYXZlIG1vcmUgdGhhbiA4IENQVXMKLQkgIGFuZCBpZiB0aGUgc3lzdGVtIGlzIG5vdCBvZiBhbnkgc3ViLWFyY2ggdHlwZSBhYm92ZS4KLQotCSAgSWYgeW91IGRvbid0IGhhdmUgc3VjaCBhIHN5c3RlbSwgeW91IHNob3VsZCBzYXkgTiBoZXJlLgotCi1jb25maWcgWDg2X1ZJU1dTCi0JYm9vbCAiU0dJIDMyMC81NDAgKFZpc3VhbCBXb3Jrc3RhdGlvbikiCi0JZGVwZW5kcyBvbiBYODZfMzIKLQloZWxwCi0JICBUaGUgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBzZXJpZXMgaXMgYW4gSUEzMi1iYXNlZCB3b3Jrc3RhdGlvbgotCSAgYmFzZWQgb24gU0dJIHN5c3RlbXMgY2hpcHMgd2l0aCBzb21lIGxlZ2FjeSBQQyBoYXJkd2FyZSBhdHRhY2hlZC4KLQotCSAgU2F5IFkgaGVyZSB0byBjcmVhdGUgYSBrZXJuZWwgdG8gcnVuIG9uIHRoZSBTR0kgMzIwIG9yIDU0MC4KLQotCSAgQSBrZXJuZWwgY29tcGlsZWQgZm9yIHRoZSBWaXN1YWwgV29ya3N0YXRpb24gd2lsbCBub3QgcnVuIG9uIFBDcwotCSAgYW5kIHZpY2UgdmVyc2EuIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL3NnaS12aXN3cy50eHQ+IGZvciBkZXRhaWxzLgotCi1jb25maWcgWDg2X0dFTkVSSUNBUkNICi0gICAgICAgYm9vbCAiR2VuZXJpYyBhcmNoaXRlY3R1cmUgKFN1bW1pdCwgYmlnc21wLCBFUzcwMDAsIGRlZmF1bHQpIgotCWRlcGVuZHMgb24gWDg2XzMyCi0gICAgICAgaGVscAotICAgICAgICAgIFRoaXMgb3B0aW9uIGNvbXBpbGVzIGluIHRoZSBTdW1taXQsIGJpZ3NtcCwgRVM3MDAwLCBkZWZhdWx0IHN1YmFyY2hpdGVjdHVyZXMuCi0JICBJdCBpcyBpbnRlbmRlZCBmb3IgYSBnZW5lcmljIGJpbmFyeSBrZXJuZWwuCi0JICBJZiB5b3Ugd2FudCBhIE5VTUEga2VybmVsLCBzZWxlY3QgQUNQSS4gICBXZSBuZWVkIFNSQVQgZm9yIE5VTUEuCi0KIGNvbmZpZyBYODZfRVM3MDAwCiAJYm9vbCAiU3VwcG9ydCBmb3IgVW5pc3lzIEVTNzAwMCBJQTMyIHNlcmllcyIKIAlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBTTVAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBVbmlzeXMgRVM3MDAwIHN5c3RlbXMuICBTYXkgJ1knIGhlcmUgaWYgdGhpcyBrZXJuZWwgaXMKIAkgIHN1cHBvc2VkIHRvIHJ1biBvbiBhbiBJQTMyLWJhc2VkIFVuaXN5cyBFUzcwMDAgc3lzdGVtLgotCSAgT25seSBjaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgc3VjaCBhIHN5c3RlbSwgb3RoZXJ3aXNlIHlvdQotCSAgc2hvdWxkIHNheSBOIGhlcmUuCisKK2NvbmZpZyBYODZfQklHU01QCisJYm9vbCAiU3VwcG9ydCBmb3IgYmlnIFNNUCBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDggQ1BVcyIKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBTTVAKKwloZWxwCisJICBUaGlzIG9wdGlvbiBpcyBuZWVkZWQgZm9yIHRoZSBzeXN0ZW1zIHRoYXQgaGF2ZSBtb3JlIHRoYW4gOCBDUFVzCisJICBhbmQgaWYgdGhlIHN5c3RlbSBpcyBub3Qgb2YgYW55IHN1Yi1hcmNoIHR5cGUgYWJvdmUuCisKK2VuZGlmCiAKIGNvbmZpZyBYODZfUkRDMzIxWAogCWJvb2wgIlJEQyBSLTMyMXggU29DIgpAQCAtMzM3LDcgKzM0NSw3IEBACiBjb25maWcgWDg2X1ZTTVAKIAlib29sICJTdXBwb3J0IGZvciBTY2FsZU1QIHZTTVAiCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiBYODZfNjQKKwlkZXBlbmRzIG9uIFg4Nl82NCAmJiBQQ0kKIAloZWxwCiAJICBTdXBwb3J0IGZvciBTY2FsZU1QIHZTTVAgc3lzdGVtcy4gIFNheSAnWScgaGVyZSBpZiB0aGlzIGtlcm5lbCBpcwogCSAgc3VwcG9zZWQgdG8gcnVuIG9uIHRoZXNlIEVNNjRULWJhc2VkIG1hY2hpbmVzLiAgT25seSBjaG9vc2UgdGhpcyBvcHRpb24KQEAgLTM0NSw2ICszNTMsMTggQEAKIAogZW5kY2hvaWNlCiAKK2NvbmZpZyBYODZfVklTV1MKKwlib29sICJTR0kgMzIwLzU0MCAoVmlzdWFsIFdvcmtzdGF0aW9uKSIKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQQ0kgJiYgIVg4Nl9WT1lBR0VSICYmIFg4Nl9NUFBBUlNFICYmIFBDSV9HT0RJUkVDVAorCWhlbHAKKwkgIFRoZSBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIHNlcmllcyBpcyBhbiBJQTMyLWJhc2VkIHdvcmtzdGF0aW9uCisJICBiYXNlZCBvbiBTR0kgc3lzdGVtcyBjaGlwcyB3aXRoIHNvbWUgbGVnYWN5IFBDIGhhcmR3YXJlIGF0dGFjaGVkLgorCisJICBTYXkgWSBoZXJlIHRvIGNyZWF0ZSBhIGtlcm5lbCB0byBydW4gb24gdGhlIFNHSSAzMjAgb3IgNTQwLgorCisJICBBIGtlcm5lbCBjb21waWxlZCBmb3IgdGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiB3aWxsIHJ1biBvbiBnZW5lcmFsCisJICBQQ3MgYXMgd2VsbC4gU2VlIDxmaWxlOkRvY3VtZW50YXRpb24vc2dpLXZpc3dzLnR4dD4gZm9yIGRldGFpbHMuCisKIGNvbmZpZyBTQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVIKIAlkZWZfYm9vbCB5CiAJcHJvbXB0ICJTaW5nbGUtZGVwdGggV0NIQU4gb3V0cHV0IgpAQCAtMzczLDcgKzM5Myw3IEBACiAJYm9vbCAiVk1JIEd1ZXN0IHN1cHBvcnQiCiAJc2VsZWN0IFBBUkFWSVJUCiAJZGVwZW5kcyBvbiBYODZfMzIKLQlkZXBlbmRzIG9uICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQorCWRlcGVuZHMgb24gIVg4Nl9WT1lBR0VSCiAJaGVscAogCSAgVk1JIHByb3ZpZGVzIGEgcGFyYXZpcnR1YWxpemVkIGludGVyZmFjZSB0byB0aGUgVk13YXJlIEVTWCBzZXJ2ZXIKIAkgIChpdCBjb3VsZCBiZSB1c2VkIGJ5IG90aGVyIGh5cGVydmlzb3JzIGluIHRoZW9yeSB0b28sIGJ1dCBpcyBub3QKQEAgLTM4Myw3ICs0MDMsOCBAQAogY29uZmlnIEtWTV9DTE9DSwogCWJvb2wgIktWTSBwYXJhdmlydHVhbGl6ZWQgY2xvY2siCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlzZWxlY3QgUEFSQVZJUlRfQ0xPQ0sKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgIFR1cm5pbmcgb24gdGhpcyBvcHRpb24gd2lsbCBhbGxvdyB5b3UgdG8gcnVuIGEgcGFyYXZpcnR1YWxpemVkIGNsb2NrCiAJICB3aGVuIHJ1bm5pbmcgb3ZlciB0aGUgS1ZNIGh5cGVydmlzb3IuIEluc3RlYWQgb2YgcmVseWluZyBvbiBhIFBJVApAQCAtMzk0LDcgKzQxNSw3IEBACiBjb25maWcgS1ZNX0dVRVNUCiAJYm9vbCAiS1ZNIEd1ZXN0IHN1cHBvcnQiCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgVGhpcyBvcHRpb24gZW5hYmxlcyB2YXJpb3VzIG9wdGltaXphdGlvbnMgZm9yIHJ1bm5pbmcgdW5kZXIgdGhlIEtWTQogCSBoeXBlcnZpc29yLgpAQCAtNDAzLDYwICs0MjQsNDUgQEAKIAogY29uZmlnIFBBUkFWSVJUCiAJYm9vbCAiRW5hYmxlIHBhcmF2aXJ0dWFsaXphdGlvbiBjb2RlIgotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBUaGlzIGNoYW5nZXMgdGhlIGtlcm5lbCBzbyBpdCBjYW4gbW9kaWZ5IGl0c2VsZiB3aGVuIGl0IGlzIHJ1bgogCSAgdW5kZXIgYSBoeXBlcnZpc29yLCBwb3RlbnRpYWxseSBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseQogCSAgb3ZlciBmdWxsIHZpcnR1YWxpemF0aW9uLiAgSG93ZXZlciwgd2hlbiBydW4gd2l0aG91dCBhIGh5cGVydmlzb3IKIAkgIHRoZSBrZXJuZWwgaXMgdGhlb3JldGljYWxseSBzbG93ZXIgYW5kIHNsaWdodGx5IGxhcmdlci4KIAorY29uZmlnIFBBUkFWSVJUX0NMT0NLCisJYm9vbAorCWRlZmF1bHQgbgorCiBlbmRpZgogCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU0KLQlib29sICJNZW10ZXN0IGJvb3QgcGFyYW1ldGVyIgorY29uZmlnIFBBUkFWSVJUX0RFQlVHCisgICAgICAgYm9vbCAicGFyYXZpcnQtb3BzIGRlYnVnZ2luZyIKKyAgICAgICBkZXBlbmRzIG9uIFBBUkFWSVJUICYmIERFQlVHX0tFUk5FTAorICAgICAgIGhlbHAKKyAgICAgICAgIEVuYWJsZSB0byBkZWJ1ZyBwYXJhdmlydF9vcHMgaW50ZXJuYWxzLiAgU3BlY2lmaWNhbGx5LCBCVUcgaWYKKwkgYSBwYXJhdmlydF9vcCBpcyBtaXNzaW5nIHdoZW4gaXQgaXMgY2FsbGVkLgorCitjb25maWcgTUVNVEVTVAorCWJvb2wgIk1lbXRlc3QiCiAJZGVwZW5kcyBvbiBYODZfNjQKLQlkZWZhdWx0IHkKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBhZGRzIGEga2VybmVsIHBhcmFtZXRlciAnbWVtdGVzdCcsIHdoaWNoIGFsbG93cyBtZW10ZXN0Ci0JICB0byBiZSBkaXNhYmxlZCBhdCBib290LiAgSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIG1lbXRlc3QKLQkgIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIGRpc2FibGVkIHdpdGggbWVtdGVzdD0wIG9uIHRoZSBrZXJuZWwKLQkgIGNvbW1hbmQgbGluZS4gIFRoZSBwdXJwb3NlIG9mIHRoaXMgb3B0aW9uIGlzIHRvIGFsbG93IGEgc2luZ2xlCi0JICBrZXJuZWwgaW1hZ2UgdG8gYmUgZGlzdHJpYnV0ZWQgd2l0aCBtZW10ZXN0IGJ1aWx0IGluLCBidXQgbm90Ci0JICBuZWNlc3NhcmlseSBlbmFibGVkLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBZLgotCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU1fVkFMVUUKLQlpbnQgIk1lbXRlc3QgYm9vdCBwYXJhbWV0ZXIgZGVmYXVsdCB2YWx1ZSAoMC00KSIKLQlkZXBlbmRzIG9uIE1FTVRFU1RfQk9PVFBBUkFNCi0JcmFuZ2UgMCA0Ci0JZGVmYXVsdCAwCi0JaGVscAotCSAgVGhpcyBvcHRpb24gc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGtlcm5lbCBwYXJhbWV0ZXIKLQkgICdtZW10ZXN0Jywgd2hpY2ggYWxsb3dzIG1lbXRlc3QgdG8gYmUgZGlzYWJsZWQgYXQgYm9vdC4gIElmIHRoaXMKLQkgIG9wdGlvbiBpcyBzZXQgdG8gMCAoemVybyksIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbAotCSAgZGVmYXVsdCB0byAwLCBkaXNhYmxpbmcgbWVtdGVzdCBhdCBib290dXAuICBJZiB0aGlzIG9wdGlvbiBpcwotCSAgc2V0IHRvIDQsIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbCBkZWZhdWx0IHRvIDQsCi0JICBlbmFibGluZyBtZW10ZXN0IGF0IGJvb3R1cCwgYW5kIHVzZSB0aGF0IGFzIHBhdHRlcm4gbnVtYmVyLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciAwLgotCi1jb25maWcgQUNQSV9TUkFUCi0JZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIEFDUEkgJiYgTlVNQSAmJiAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpCi0Jc2VsZWN0IEFDUElfTlVNQQotCi1jb25maWcgSEFWRV9BUkNIX1BBUlNFX1NSQVQKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBBQ1BJX1NSQVQKKwkgIHRvIGJlIHNldC4KKwkJbWVtdGVzdD0wLCBtZWFuIGRpc2FibGVkOyAtLSBkZWZhdWx0CisJCW1lbXRlc3Q9MSwgbWVhbiBkbyAxIHRlc3QgcGF0dGVybjsKKwkJLi4uCisJCW1lbXRlc3Q9NCwgbWVhbiBkbyA0IHRlc3QgcGF0dGVybnMuCisJICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLgogCiBjb25maWcgWDg2X1NVTU1JVF9OVU1BCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgKFg4Nl9TVU1NSVQgfHwgWDg2X0dFTkVSSUNBUkNIKQorCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBYODZfQ1lDTE9ORV9USU1FUgogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfU1VNTUlUIHx8IFg4Nl9HRU5FUklDQVJDSAorCWRlcGVuZHMgb24gWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBFUzcwMDBfQ0xVU1RFUkVEX0FQSUMKIAlkZWZfYm9vbCB5CkBAIC01NDQsNiArNTUwLDIxIEBACiAJICBDYWxnYXJ5IGFueXdheSwgcGFzcyAnaW9tbXU9Y2FsZ2FyeScgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCiAJICBJZiB1bnN1cmUsIHNheSBZLgogCitjb25maWcgQU1EX0lPTU1VCisJYm9vbCAiQU1EIElPTU1VIHN1cHBvcnQiCisJc2VsZWN0IFNXSU9UTEIKKwlkZXBlbmRzIG9uIFg4Nl82NCAmJiBQQ0kgJiYgQUNQSQorCWhlbHAKKwkgIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBlbmFibGUgc3VwcG9ydCBmb3IgQU1EIElPTU1VIGhhcmR3YXJlIGluCisJICB5b3VyIHN5c3RlbS4gQW4gSU9NTVUgaXMgYSBoYXJkd2FyZSBjb21wb25lbnQgd2hpY2ggcHJvdmlkZXMKKwkgIHJlbWFwcGluZyBvZiBETUEgbWVtb3J5IGFjY2Vzc2VzIGZyb20gZGV2aWNlcy4gV2l0aCBhbiBBTUQgSU9NTVUgeW91CisJICBjYW4gaXNvbGF0ZSB0aGUgdGhlIERNQSBtZW1vcnkgb2YgZGlmZmVyZW50IGRldmljZXMgYW5kIHByb3RlY3QgdGhlCisJICBzeXN0ZW0gZnJvbSBtaXNiZWhhdmluZyBkZXZpY2UgZHJpdmVycyBvciBoYXJkd2FyZS4KKworCSAgWW91IGNhbiBmaW5kIG91dCBpZiB5b3VyIHN5c3RlbSBoYXMgYW4gQU1EIElPTU1VIGlmIHlvdSBsb29rIGludG8KKwkgIHlvdXIgQklPUyBmb3IgYW4gb3B0aW9uIHRvIGVuYWJsZSBpdCBvciBpZiB5b3UgaGF2ZSBhbiBJVlJTIEFDUEkKKwkgIHRhYmxlLgorCiAjIG5lZWQgdGhpcyBhbHdheXMgc2VsZWN0ZWQgYnkgSU9NTVUgZm9yIHRoZSBWSUEgd29ya2Fyb3VuZAogY29uZmlnIFNXSU9UTEIKIAlib29sCkBAIC01NTUsMjEgKzU3NiwzNiBAQAogCSAgMyBHQiBvZiBtZW1vcnkuIElmIHVuc3VyZSwgc2F5IFkuCiAKIGNvbmZpZyBJT01NVV9IRUxQRVIKLQlkZWZfYm9vbCAoQ0FMR0FSWV9JT01NVSB8fCBHQVJUX0lPTU1VIHx8IFNXSU9UTEIpCisJZGVmX2Jvb2wgKENBTEdBUllfSU9NTVUgfHwgR0FSVF9JT01NVSB8fCBTV0lPVExCIHx8IEFNRF9JT01NVSkKK2NvbmZpZyBNQVhTTVAKKwlib29sICJDb25maWd1cmUgTWF4aW11bSBudW1iZXIgb2YgU01QIFByb2Nlc3NvcnMgYW5kIE5VTUEgTm9kZXMiCisJZGVwZW5kcyBvbiBYODZfNjQgJiYgU01QCisJZGVmYXVsdCBuCisJaGVscAorCSAgQ29uZmlndXJlIG1heGltdW0gbnVtYmVyIG9mIENQVVMgYW5kIE5VTUEgTm9kZXMgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgorCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAoraWYgTUFYU01QCiBjb25maWcgTlJfQ1BVUwotCWludCAiTWF4aW11bSBudW1iZXIgb2YgQ1BVcyAoMi0yNTUpIgotCXJhbmdlIDIgMjU1CisJaW50CisJZGVmYXVsdCAiNDA5NiIKK2VuZGlmCisKK2lmICFNQVhTTVAKK2NvbmZpZyBOUl9DUFVTCisJaW50ICJNYXhpbXVtIG51bWJlciBvZiBDUFVzICgyLTQwOTYpIgorCXJhbmdlIDIgNDA5NgogCWRlcGVuZHMgb24gU01QCiAJZGVmYXVsdCAiMzIiIGlmIFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUIHx8IFg4Nl9CSUdTTVAgfHwgWDg2X0VTNzAwMAogCWRlZmF1bHQgIjgiCiAJaGVscAogCSAgVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIENQVXMgd2hpY2ggdGhpcwotCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyAyNTUgYW5kIHRoZQorCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyA0MDk2IGFuZCB0aGUKIAkgIG1pbmltdW0gdmFsdWUgd2hpY2ggbWFrZXMgc2Vuc2UgaXMgMi4KIAogCSAgVGhpcyBpcyBwdXJlbHkgdG8gc2F2ZSBtZW1vcnkgLSBlYWNoIHN1cHBvcnRlZCBDUFUgYWRkcwogCSAgYXBwcm94aW1hdGVseSBlaWdodCBraWxvYnl0ZXMgdG8gdGhlIGtlcm5lbCBpbWFnZS4KK2VuZGlmCiAKIGNvbmZpZyBTQ0hFRF9TTVQKIAlib29sICJTTVQgKEh5cGVydGhyZWFkaW5nKSBzY2hlZHVsZXIgc3VwcG9ydCIKQEAgLTU5Myw3ICs2MjksNyBAQAogCiBjb25maWcgWDg2X1VQX0FQSUMKIAlib29sICJMb2NhbCBBUElDIHN1cHBvcnQgb24gdW5pcHJvY2Vzc29ycyIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSIHx8IFg4Nl9HRU5FUklDQVJDSCkKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZPWUFHRVIgfHwgWDg2X0dFTkVSSUNBUkNIKQogCWhlbHAKIAkgIEEgbG9jYWwgQVBJQyAoQWR2YW5jZWQgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyKSBpcyBhbgogCSAgaW50ZWdyYXRlZCBpbnRlcnJ1cHQgY29udHJvbGxlciBpbiB0aGUgQ1BVLiBJZiB5b3UgaGF2ZSBhIHNpbmdsZS1DUFUKQEAgLTYxOCwxMSArNjU0LDExIEBACiAKIGNvbmZpZyBYODZfTE9DQUxfQVBJQwogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoKFg4Nl9WSVNXUyB8fCBTTVApICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9JT19BUElDCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzY0IHx8IChYODZfMzIgJiYgKFg4Nl9VUF9JT0FQSUMgfHwgKFNNUCAmJiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikpIHx8IFg4Nl9HRU5FUklDQVJDSCkpCisJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiAoWDg2X1VQX0lPQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9WSVNXU19BUElDCiAJZGVmX2Jvb2wgeQpAQCAtNjc2LDcgKzcxMiw3IEBACiAKIGNvbmZpZyBYODZfTUNFX1A0VEhFUk1BTAogCWJvb2wgImNoZWNrIGZvciBQNCB0aGVybWFsIHRocm90dGxpbmcgaW50ZXJydXB0LiIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApCiAJaGVscAogCSAgRW5hYmxpbmcgdGhpcyBmZWF0dXJlIHdpbGwgY2F1c2UgYSBtZXNzYWdlIHRvIGJlIHByaW50ZWQgd2hlbiB0aGUgUDQKIAkgIGVudGVycyB0aGVybWFsIHRocm90dGxpbmcuCkBAIC05MDYsOSArOTQyLDkgQEAKIGNvbmZpZyBOVU1BCiAJYm9vbCAiTnVtYSBNZW1vcnkgQWxsb2NhdGlvbiBhbmQgU2NoZWR1bGVyIFN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiCiAJZGVwZW5kcyBvbiBTTVAKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpICYmIEFDUEkpICYmIEVYUEVSSU1FTlRBTCkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCBYODZfQklHU01QIHx8IFg4Nl9TVU1NSVQgJiYgQUNQSSkgJiYgRVhQRVJJTUVOVEFMKQogCWRlZmF1bHQgbiBpZiBYODZfUEMKLQlkZWZhdWx0IHkgaWYgKFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUKQorCWRlZmF1bHQgeSBpZiAoWDg2X05VTUFRIHx8IFg4Nl9TVU1NSVQgfHwgWDg2X0JJR1NNUCkKIAloZWxwCiAJICBFbmFibGUgTlVNQSAoTm9uIFVuaWZvcm0gTWVtb3J5IEFjY2Vzcykgc3VwcG9ydC4KIAkgIFRoZSBrZXJuZWwgd2lsbCB0cnkgdG8gYWxsb2NhdGUgbWVtb3J5IHVzZWQgYnkgYSBDUFUgb24gdGhlCkBAIC05NjAsMTMgKzk5NiwyNSBAQAogCSAgaW50byB2aXJ0dWFsIG5vZGVzIHdoZW4gYm9vdGVkIHdpdGggIm51bWE9ZmFrZT1OIiwgd2hlcmUgTiBpcyB0aGUKIAkgIG51bWJlciBvZiBub2Rlcy4gVGhpcyBpcyBvbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nLgogCitpZiBNQVhTTVAKKwogY29uZmlnIE5PREVTX1NISUZUCi0JaW50ICJNYXggbnVtIG5vZGVzIHNoaWZ0KDEtMTUpIgotCXJhbmdlIDEgMTUgIGlmIFg4Nl82NAorCWludAorCWRlZmF1bHQgIjkiCitlbmRpZgorCitpZiAhTUFYU01QCitjb25maWcgTk9ERVNfU0hJRlQKKwlpbnQgIk1heGltdW0gTlVNQSBOb2RlcyAoYXMgYSBwb3dlciBvZiAyKSIKKwlyYW5nZSAxIDkgICBpZiBYODZfNjQKIAlkZWZhdWx0ICI2IiBpZiBYODZfNjQKIAlkZWZhdWx0ICI0IiBpZiBYODZfTlVNQVEKIAlkZWZhdWx0ICIzIgogCWRlcGVuZHMgb24gTkVFRF9NVUxUSVBMRV9OT0RFUworCWhlbHAKKwkgIFNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIE5VTUEgTm9kZXMgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQKKwkgIHN5c3RlbS4gIEluY3JlYXNlcyBtZW1vcnkgcmVzZXJ2ZWQgdG8gYWNjb21vZGF0ZSB2YXJpb3VzIHRhYmxlcy4KK2VuZGlmCiAKIGNvbmZpZyBIQVZFX0FSQ0hfQk9PVE1FTV9OT0RFCiAJZGVmX2Jvb2wgeQpAQCAtMTA4NSw2ICsxMTMzLDM3IEBACiAKIAkgIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL210cnIudHh0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorY29uZmlnIE1UUlJfU0FOSVRJWkVSCisJYm9vbAorCXByb21wdCAiTVRSUiBjbGVhbnVwIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBNVFJSCisJaGVscAorCSAgQ29udmVydCBNVFJSIGxheW91dCBmcm9tIGNvbnRpbnVvdXMgdG8gZGlzY3JldGUsIHNvIFggZHJpdmVycyBjYW4KKwkgIGFkZCB3cml0ZWJhY2sgZW50cmllcy4KKworCSAgQ2FuIGJlIGRpc2FibGVkIHdpdGggZGlzYWJsZV9tdHJyX2NsZWFudXAgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCisJICBUaGUgbGFyZ2VzdCBtdHJyIGVudHJ5IHNpemUgZm9yIGEgY29udGlub3VzIGJsb2NrIGNhbiBiZSBzZXQgd2l0aAorCSAgbXRycl9jaHVua19zaXplLgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCitjb25maWcgTVRSUl9TQU5JVElaRVJfRU5BQkxFX0RFRkFVTFQKKwlpbnQgIk1UUlIgY2xlYW51cCBlbmFibGUgdmFsdWUgKDAtMSkiCisJcmFuZ2UgMCAxCisJZGVmYXVsdCAiMCIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgRW5hYmxlIG10cnIgY2xlYW51cCBkZWZhdWx0IHZhbHVlCisKK2NvbmZpZyBNVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJfREVGQVVMVAorCWludCAiTVRSUiBjbGVhbnVwIHNwYXJlIHJlZyBudW0gKDAtNykiCisJcmFuZ2UgMCA3CisJZGVmYXVsdCAiMSIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgbXRyciBjbGVhbnVwIHNwYXJlIGVudHJpZXMgZGVmYXVsdCwgaXQgY2FuIGJlIGNoYW5nZWQgdmlhCisJICBtdHJyX3NwYXJlX3JlZ19ucj1OIG9uIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgorCiBjb25maWcgWDg2X1BBVAogCWJvb2wKIAlwcm9tcHQgIng4NiBQQVQgc3VwcG9ydCIKQEAgLTExODUsNyArMTI2NCw2IEBACiAKIGNvbmZpZyBDUkFTSF9EVU1QCiAJYm9vbCAia2VybmVsIGNyYXNoIGR1bXBzIChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiBISUdITUVNKQogCWhlbHAKIAkgIEdlbmVyYXRlIGNyYXNoIGR1bXAgYWZ0ZXIgYmVpbmcgc3RhcnRlZCBieSBrZXhlYy4KQEAgLTEzMzQsNyArMTQxMiw3IEBACiAKIG1lbnVjb25maWcgQVBNCiAJdHJpc3RhdGUgIkFQTSAoQWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudCkgQklPUyBzdXBwb3J0IgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBNX1NMRUVQICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQTV9TTEVFUAogCS0tLWhlbHAtLS0KIAkgIEFQTSBpcyBhIEJJT1Mgc3BlY2lmaWNhdGlvbiBmb3Igc2F2aW5nIHBvd2VyIHVzaW5nIHNldmVyYWwgZGlmZmVyZW50CiAJICB0ZWNobmlxdWVzLiBUaGlzIGlzIG1vc3RseSB1c2VmdWwgZm9yIGJhdHRlcnkgcG93ZXJlZCBsYXB0b3BzIHdpdGgKQEAgLTE0NzAsOCArMTU0OCw3IEBACiBtZW51ICJCdXMgb3B0aW9ucyAoUENJIGV0Yy4pIgogCiBjb25maWcgUENJCi0JYm9vbCAiUENJIHN1cHBvcnQiIGlmICFYODZfVklTV1MgJiYgIVg4Nl9WU01QCi0JZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKKwlib29sICJQQ0kgc3VwcG9ydCIKIAlkZWZhdWx0IHkKIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19NU0kgaWYgKFg4Nl9MT0NBTF9BUElDICYmIFg4Nl9JT19BUElDKQogCWhlbHAKQEAgLTE0ODIsNyArMTU1OSw3IEBACiAKIGNob2ljZQogCXByb21wdCAiUENJIGFjY2VzcyBtb2RlIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBDSSAmJiAhWDg2X1ZJU1dTCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgUENJCiAJZGVmYXVsdCBQQ0lfR09BTlkKIAktLS1oZWxwLS0tCiAJICBPbiBQQ0kgc3lzdGVtcywgdGhlIEJJT1MgY2FuIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBQQ0kgZGV2aWNlcyBhbmQKQEAgLTE1MTksMTIgKzE1OTYsMTIgQEAKIAogY29uZmlnIFBDSV9CSU9TCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmICFYODZfVklTV1MgJiYgUENJICYmIChQQ0lfR09CSU9TIHx8IFBDSV9HT0FOWSkKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQQ0kgJiYgKFBDSV9HT0JJT1MgfHwgUENJX0dPQU5ZKQogCiAjIHg4Ni02NCBkb2Vzbid0IHN1cHBvcnQgUENJIEJJT1MgYWNjZXNzIGZyb20gbG9uZyBtb2RlIHNvIGFsd2F5cyBnbyBkaXJlY3QuCiBjb25maWcgUENJX0RJUkVDVAogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFBDSSAmJiAoWDg2XzY0IHx8IChQQ0lfR09ESVJFQ1QgfHwgUENJX0dPQU5ZIHx8IFBDSV9HT09MUEMpIHx8IFg4Nl9WSVNXUykKKwlkZXBlbmRzIG9uIFBDSSAmJiAoWDg2XzY0IHx8IChQQ0lfR09ESVJFQ1QgfHwgUENJX0dPQU5ZIHx8IFBDSV9HT09MUEMpKQogCiBjb25maWcgUENJX01NQ09ORklHCiAJZGVmX2Jvb2wgeQpAQCAtMTU4NCw3ICsxNjYxLDcgQEAKIAogY29uZmlnIElTQQogCWJvb2wgIklTQSBzdXBwb3J0IgotCWRlcGVuZHMgb24gIShYODZfVk9ZQUdFUiB8fCBYODZfVklTV1MpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBGaW5kIG91dCB3aGV0aGVyIHlvdSBoYXZlIElTQSBzbG90cyBvbiB5b3VyIG1vdGhlcmJvYXJkLiAgSVNBIGlzIHRoZQogCSAgbmFtZSBvZiBhIGJ1cyBzeXN0ZW0sIGkuZS4gdGhlIHdheSB0aGUgQ1BVIHRhbGtzIHRvIHRoZSBvdGhlciBzdHVmZgpAQCAtMTYxMSw3ICsxNjg4LDcgQEAKIHNvdXJjZSAiZHJpdmVycy9laXNhL0tjb25maWciCiAKIGNvbmZpZyBNQ0EKLQlib29sICJNQ0Egc3VwcG9ydCIgaWYgIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJYm9vbCAiTUNBIHN1cHBvcnQiIGlmICFYODZfVk9ZQUdFUgogCWRlZmF1bHQgeSBpZiBYODZfVk9ZQUdFUgogCWhlbHAKIAkgIE1pY3JvQ2hhbm5lbCBBcmNoaXRlY3R1cmUgaXMgZm91bmQgaW4gc29tZSBJQk0gUFMvMiBtYWNoaW5lcyBhbmQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcuY3B1IGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKaW5kZXggMmFkNjMwMS4uYWJmZjFiOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5jcHUKKysrIGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKQEAgLTM0NCw3ICszNDQsNyBAQAogCiBjb25maWcgWDg2X1dQX1dPUktTX09LCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmICFNMzg2CisJZGVwZW5kcyBvbiAhTTM4NgogCiBjb25maWcgWDg2X0lOVkxQRwogCWRlZl9ib29sIHkKQEAgLTM5OSw2ICszOTksMTAgQEAKIAlkZWZfYm9vbCB5CiAJZGVwZW5kcyBvbiAoKE1XSU5DSElQM0QgfHwgTVdJTkNISVAyIHx8IE1DUlVTT0UgfHwgTUVGRklDRU9OIHx8IE1DWVJJWElJSSB8fCBNSzcgfHwgTUs2IHx8IE1QRU5USVVNNCB8fCBNUEVOVElVTU0gfHwgTVBFTlRJVU1JSUkgfHwgTVBFTlRJVU1JSSB8fCBNNjg2IHx8IE01ODZNTVggfHwgTTU4NlRTQyB8fCBNSzggfHwgTVZJQUMzXzIgfHwgTVZJQUM3IHx8IE1HRU9ERUdYMSB8fCBNR0VPREVfTFggfHwgTUNPUkUyKSAmJiAhWDg2X05VTUFRKSB8fCBYODZfNjQKIAorY29uZmlnIFg4Nl9DTVBYQ0hHNjQKKwlkZWZfYm9vbCB5CisJZGVwZW5kcyBvbiBYODZfUEFFIHx8IFg4Nl82NAorCiAjIHRoaXMgc2hvdWxkIGJlIHNldCBmb3IgYWxsIC1tYXJjaD0uLiBvcHRpb25zIHdoZXJlIHRoZSBjb21waWxlcgogIyBnZW5lcmF0ZXMgY21vdi4KIGNvbmZpZyBYODZfQ01PVgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZyBiL2FyY2gveDg2L0tjb25maWcuZGVidWcKaW5kZXggMTgzNjMzNy4uYWUzNmJmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZworKysgYi9hcmNoL3g4Ni9LY29uZmlnLmRlYnVnCkBAIC0yMCw2ICsyMCwxNCBAQAogCiAJICBJZiBpbiBkb3VidCwgc2F5IFkuCiAKK2NvbmZpZyBYODZfVkVSQk9TRV9CT09UVVAKKwlib29sICJFbmFibGUgdmVyYm9zZSB4ODYgYm9vdHVwIGluZm8gbWVzc2FnZXMiCisJZGVmYXVsdCB5CisJaGVscAorCSAgRW5hYmxlcyB0aGUgaW5mb3JtYXRpb25hbCBvdXRwdXQgZnJvbSB0aGUgZGVjb21wcmVzc2lvbiBzdGFnZQorCSAgKGUuZy4gYnpJbWFnZSkgb2YgdGhlIGJvb3QuIElmIHlvdSBkaXNhYmxlIHRoaXMgeW91IHdpbGwgc3RpbGwKKwkgIHNlZSBlcnJvcnMuIERpc2FibGUgdGhpcyBpZiB5b3Ugd2FudCBzaWxlbnQgYm9vdHVwLgorCiBjb25maWcgRUFSTFlfUFJJTlRLCiAJYm9vbCAiRWFybHkgcHJpbnRrIiBpZiBFTUJFRERFRAogCWRlZmF1bHQgeQpAQCAtNjAsNyArNjgsNyBAQAogY29uZmlnIERFQlVHX1BFUl9DUFVfTUFQUwogCWJvb2wgIkRlYnVnIGFjY2VzcyB0byBwZXJfY3B1IG1hcHMiCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKLQlkZXBlbmRzIG9uIFg4Nl82NF9TTVAKKwlkZXBlbmRzIG9uIFg4Nl9TTVAKIAlkZWZhdWx0IG4KIAloZWxwCiAJICBTYXkgWSB0byB2ZXJpZnkgdGhhdCB0aGUgcGVyX2NwdSBtYXAgYmVpbmcgYWNjZXNzZWQgaGFzCkBAIC0xMjksMTUgKzEzNyw2IEBACiAJICBvbiB0aGUgVk0gc3Vic3lzdGVtIGZvciBoaWdoZXIgb3JkZXIgYWxsb2NhdGlvbnMuIFRoaXMgb3B0aW9uCiAJICB3aWxsIGFsc28gdXNlIElSUSBzdGFja3MgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIHJlZHVjZWQgc3RhY2tzcGFjZS4KIAotY29uZmlnIFg4Nl9GSU5EX1NNUF9DT05GSUcKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQyB8fCBYODZfVk9ZQUdFUgotCWRlcGVuZHMgb24gWDg2XzMyCi0KLWNvbmZpZyBYODZfTVBQQVJTRQotCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIChYODZfMzIgJiYgKFg4Nl9MT0NBTF9BUElDICYmICFYODZfVklTV1MpKSB8fCBYODZfNjQKLQogY29uZmlnIERPVUJMRUZBVUxUCiAJZGVmYXVsdCB5CiAJYm9vbCAiRW5hYmxlIGRvdWJsZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyIiBpZiBFTUJFRERFRApAQCAtMTcyLDYgKzE3MSwzMyBAQAogCSAgQWRkIGEgc2ltcGxlIGxlYWsgdHJhY2VyIHRvIHRoZSBJT01NVSBjb2RlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdQogCSAgYXJlIGRlYnVnZ2luZyBhIGJ1Z2d5IGRldmljZSBkcml2ZXIgdGhhdCBsZWFrcyBJT01NVSBtYXBwaW5ncy4KIAorY29uZmlnIE1NSU9UUkFDRV9IT09LUworCWJvb2wKKworY29uZmlnIE1NSU9UUkFDRQorCWJvb2wgIk1lbW9yeSBtYXBwZWQgSU8gdHJhY2luZyIKKwlkZXBlbmRzIG9uIERFQlVHX0tFUk5FTCAmJiBQQ0kKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBNTUlPVFJBQ0VfSE9PS1MKKwloZWxwCisJICBNbWlvdHJhY2UgdHJhY2VzIE1lbW9yeSBNYXBwZWQgSS9PIGFjY2VzcyBhbmQgaXMgbWVhbnQgZm9yCisJICBkZWJ1Z2dpbmcgYW5kIHJldmVyc2UgZW5naW5lZXJpbmcuIEl0IGlzIGNhbGxlZCBmcm9tIHRoZSBpb3JlbWFwCisJICBpbXBsZW1lbnRhdGlvbiBhbmQgd29ya3MgdmlhIHBhZ2UgZmF1bHRzLiBUcmFjaW5nIGlzIGRpc2FibGVkIGJ5CisJICBkZWZhdWx0IGFuZCBjYW4gYmUgZW5hYmxlZCBhdCBydW4tdGltZS4KKworCSAgU2VlIERvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0LgorCSAgSWYgeW91IGFyZSBub3QgaGVscGluZyB0byBkZXZlbG9wIGRyaXZlcnMsIHNheSBOLgorCitjb25maWcgTU1JT1RSQUNFX1RFU1QKKwl0cmlzdGF0ZSAiVGVzdCBtb2R1bGUgZm9yIG1taW90cmFjZSIKKwlkZXBlbmRzIG9uIE1NSU9UUkFDRSAmJiBtCisJaGVscAorCSAgVGhpcyBpcyBhIGR1bWIgbW9kdWxlIGZvciB0ZXN0aW5nIG1taW90cmFjZS4gSXQgaXMgdmVyeSBkYW5nZXJvdXMKKwkgIGFzIGl0IHdpbGwgd3JpdGUgZ2FyYmFnZSB0byBJTyBtZW1vcnkgc3RhcnRpbmcgYXQgYSBnaXZlbiBhZGRyZXNzLgorCSAgSG93ZXZlciwgaXQgc2hvdWxkIGJlIHNhZmUgdG8gdXNlIG9uIGUuZy4gdW51c2VkIHBvcnRpb24gb2YgVlJBTS4KKworCSAgU2F5IE4sIHVubGVzcyB5b3UgYWJzb2x1dGVseSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4KKwogIwogIyBJTyBkZWxheSB0eXBlczoKICMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggM2NmZjNjOC4uOTE5Y2UyMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvTWFrZWZpbGUKQEAgLTExMywzMyArMTEzLDExIEBACiBtZmxhZ3MtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdm95YWdlcgogbWNvcmUtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IGFyY2gveDg2L21hY2gtdm95YWdlci8KIAotIyBWSVNXUyBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfVklTV1MpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MKLW1jb3JlLSQoQ09ORklHX1g4Nl9WSVNXUykJOj0gYXJjaC94ODYvbWFjaC12aXN3cy8KLQotIyBOVU1BUSBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfTlVNQVEpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEKLW1jb3JlLSQoQ09ORklHX1g4Nl9OVU1BUSkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jIEJJR1NNUCBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfQklHU01QKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcAotbWNvcmUtJChDT05GSUdfWDg2X0JJR1NNUCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jU3VtbWl0IHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9TVU1NSVQpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtc3VtbWl0Ci1tY29yZS0kKENPTkZJR19YODZfU1VNTUlUKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCi0KICMgZ2VuZXJpYyBzdWJhcmNoaXRlY3R1cmUKIG1mbGFncy0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpOj0gLUlpbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljCiBmY29yZS0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpCSs9IGFyY2gveDg2L21hY2gtZ2VuZXJpYy8KIG1jb3JlLSQoQ09ORklHX1g4Nl9HRU5FUklDQVJDSCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwogCi0KLSMgRVM3MDAwIHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtZXM3MDAwCi1mY29yZS0kKENPTkZJR19YODZfRVM3MDAwKQk6PSBhcmNoL3g4Ni9tYWNoLWVzNzAwMC8KLW1jb3JlLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IGFyY2gveDg2L21hY2gtZGVmYXVsdC8KLQogIyBSREMgUi0zMjF4IHN1YmFyY2ggc3VwcG9ydAogbWZsYWdzLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLXJkYzMyMXgKIG1jb3JlLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCkBAIC0xNjAsNiArMTM4LDcgQEAKIAogaGVhZC15IDo9IGFyY2gveDg2L2tlcm5lbC9oZWFkXyQoQklUUykubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9oZWFkJChCSVRTKS5vCitoZWFkLXkgKz0gYXJjaC94ODYva2VybmVsL2hlYWQubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9pbml0X3Rhc2subwogCiBsaWJzLXkgICs9IGFyY2gveDg2L2xpYi8KQEAgLTIxMCwxMiArMTg5LDEyIEBACiAKICMgS0JVSUxEX0lNQUdFIHNwZWNpZnkgdGFyZ2V0IGltYWdlIGJlaW5nIGJ1aWx0CiAgICAgICAgICAgICAgICAgICAgIEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL2J6SW1hZ2UKLXpJbWFnZSB6bGlsbyB6ZGlzazogS0JVSUxEX0lNQUdFIDo9IGFyY2gveDg2L2Jvb3QvekltYWdlCit6SW1hZ2UgemxpbG8gemRpc2s6IEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL3pJbWFnZQogCiB6SW1hZ2UgYnpJbWFnZTogdm1saW51eAogCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYm9vdCkgJChLQlVJTERfSU1BR0UpCiAJJChRKW1rZGlyIC1wICQob2JqdHJlZSkvYXJjaC8kKFVUU19NQUNISU5FKS9ib290Ci0JJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC9iekltYWdlCisJJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC8kQAogCiBjb21wcmVzc2VkOiB6SW1hZ2UKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9hMjAuYyBiL2FyY2gveDg2L2Jvb3QvYTIwLmMKaW5kZXggOTA5NDNmOC4uNDA2M2Q2MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9hMjAuYworKysgYi9hcmNoL3g4Ni9ib290L2EyMC5jCkBAIC0xLDcgKzEsNyBAQAogLyogLSotIGxpbnV4LWMgLSotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgogICoKICAqICAgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTkyIExpbnVzIFRvcnZhbGRzCi0gKiAgIENvcHlyaWdodCAyMDA3IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICogICBDb3B5cmlnaHQgMjAwNy0yMDA4IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAogICoKICAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpbnV4IGtlcm5lbCwgYW5kIGlzIG1hZGUgYXZhaWxhYmxlIHVuZGVyCiAgKiAgIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLgpAQCAtOTUsNiArOTUsOSBAQAogCiAJb3V0YigweGRmLCAweDYwKTsJLyogQTIwIG9uICovCiAJZW1wdHlfODA0MigpOworCisJb3V0YigweGZmLCAweDY0KTsJLyogTnVsbCBjb21tYW5kLCBidXQgVUhDSSB3YW50cyBpdCAqLworCWVtcHR5XzgwNDIoKTsKIH0KIAogc3RhdGljIHZvaWQgZW5hYmxlX2EyMF9mYXN0KHZvaWQpCkBAIC0xMTUsOCArMTE4LDYgQEAKIAogaW50IGVuYWJsZV9hMjAodm9pZCkKIHsKLQlpbnQgbG9vcHMgPSBBMjBfRU5BQkxFX0xPT1BTOwotCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X0VMQU4pCiAJLyogRWxhbiBjcm9ha3MgaWYgd2UgdHJ5IHRvIHRvdWNoIHRoZSBLQkMgKi8KIAllbmFibGVfYTIwX2Zhc3QoKTsKQEAgLTEyOCw2ICsxMjksNyBAQAogCWVuYWJsZV9hMjBfa2JjKCk7CiAJcmV0dXJuIDA7CiAjZWxzZQorICAgICAgIGludCBsb29wcyA9IEEyMF9FTkFCTEVfTE9PUFM7CiAJd2hpbGUgKGxvb3BzLS0pIHsKIAkJLyogRmlyc3QsIGNoZWNrIHRvIHNlZSBpZiBBMjAgaXMgYWxyZWFkeSBlbmFibGVkCiAJCSAgIChsZWdhY3kgZnJlZSwgZXRjLikgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TCmluZGV4IGQ4ODE5ZWYuLjFkNWRmZjQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9oZWFkXzY0LlMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL2hlYWRfNjQuUwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogCiAuc2VjdGlvbiAiLnRleHQuaGVhZCIKQEAgLTEwOSw3ICsxMTAsNyBAQAogCiAJLyogRW5hYmxlIFBBRSBtb2RlICovCiAJeG9ybAklZWF4LCAlZWF4Ci0Jb3JsCSQoMSA8PCA1KSwgJWVheAorCW9ybAkkKFg4Nl9DUjRfUEFFKSwgJWVheAogCW1vdmwJJWVheCwgJWNyNAogCiAgLyoKQEAgLTE3MCw3ICsxNzEsNyBAQAogCXB1c2hsCSVlYXgKIAogCS8qIEVudGVyIHBhZ2VkIHByb3RlY3RlZCBNb2RlLCBhY3RpdmF0aW5nIExvbmcgTW9kZSAqLwotCW1vdmwJJDB4ODAwMDAwMDEsICVlYXggLyogRW5hYmxlIFBhZ2luZyBhbmQgUHJvdGVjdGVkIG1vZGUgKi8KKwltb3ZsCSQoWDg2X0NSMF9QRyB8IFg4Nl9DUjBfUEUpLCAlZWF4IC8qIEVuYWJsZSBQYWdpbmcgYW5kIFByb3RlY3RlZCBtb2RlICovCiAJbW92bAklZWF4LCAlY3IwCiAKIAkvKiBKdW1wIGZyb20gMzJiaXQgY29tcGF0aWJpbGl0eSBtb2RlIGludG8gNjRiaXQgbW9kZS4gKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWlzYy5jCmluZGV4IDkwNDU2Y2UuLmJjNTU1M2IgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL21pc2MuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KKyNpbmNsdWRlIDxhc20vYm9vdHBhcmFtLmg+CiAKIC8qIFdBUk5JTkchIQogICogVGhpcyBjb2RlIGlzIGNvbXBpbGVkIHdpdGggLWZQSUMgYW5kIGl0IGlzIHJlbG9jYXRlZCBkeW5hbWljYWxseQpAQCAtMTg3LDEzICsxODgsOCBAQAogLyoKICAqIFRoaXMgaXMgc2V0IHVwIGJ5IHRoZSBzZXR1cC1yb3V0aW5lIGF0IGJvb3QtdGltZQogICovCi1zdGF0aWMgdW5zaWduZWQgY2hhciAqcmVhbF9tb2RlOyAvKiBQb2ludGVyIHRvIHJlYWwtbW9kZSBkYXRhICovCi0KLSNkZWZpbmUgUk1fRVhUX01FTV9LICAgKCoodW5zaWduZWQgc2hvcnQgKikocmVhbF9tb2RlICsgMHgyKSkKLSNpZm5kZWYgU1RBTkRBUkRfTUVNT1JZX0JJT1NfQ0FMTAotI2RlZmluZSBSTV9BTFRfTUVNX0sgICAoKih1bnNpZ25lZCBsb25nICopKHJlYWxfbW9kZSArIDB4MWUwKSkKLSNlbmRpZgotI2RlZmluZSBSTV9TQ1JFRU5fSU5GTyAoKihzdHJ1Y3Qgc2NyZWVuX2luZm8gKikocmVhbF9tb2RlKzApKQorc3RhdGljIHN0cnVjdCBib290X3BhcmFtcyAqcmVhbF9tb2RlOwkJLyogUG9pbnRlciB0byByZWFsLW1vZGUgZGF0YSAqLworc3RhdGljIGludCBxdWlldDsKIAogZXh0ZXJuIHVuc2lnbmVkIGNoYXIgaW5wdXRfZGF0YVtdOwogZXh0ZXJuIGludCBpbnB1dF9sZW47CkBAIC0yMDYsNyArMjAyLDggQEAKIHN0YXRpYyB2b2lkICptZW1zZXQodm9pZCAqcywgaW50IGMsIHVuc2lnbmVkIG4pOwogc3RhdGljIHZvaWQgKm1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIG4pOwogCi1zdGF0aWMgdm9pZCBwdXRzdHIoY29uc3QgY2hhciAqKTsKK3N0YXRpYyB2b2lkIF9fcHV0c3RyKGludCwgY29uc3QgY2hhciAqKTsKKyNkZWZpbmUgcHV0c3RyKF9feCkgIF9fcHV0c3RyKDAsIF9feCkKIAogI2lmZGVmIENPTkZJR19YODZfNjQKICNkZWZpbmUgbWVtcHRyIGxvbmcKQEAgLTIyMSwxMCArMjE4LDYgQEAKIHN0YXRpYyBpbnQgdmlkcG9ydDsKIHN0YXRpYyBpbnQgbGluZXMsIGNvbHM7CiAKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRCi12b2lkICp4cXVhZF9wb3J0aW87Ci0jZW5kaWYKLQogI2luY2x1ZGUgIi4uLy4uLy4uLy4uL2xpYi9pbmZsYXRlLmMiCiAKIHN0YXRpYyB2b2lkICptYWxsb2MoaW50IHNpemUpCkBAIC0yNzAsMTggKzI2MywyNCBAQAogCQl2aWRtZW1baV0gPSAnICc7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dHN0cihjb25zdCBjaGFyICpzKQorc3RhdGljIHZvaWQgX19wdXRzdHIoaW50IGVycm9yLCBjb25zdCBjaGFyICpzKQogewogCWludCB4LCB5LCBwb3M7CiAJY2hhciBjOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCWlmIChSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX21vZGUgPT0gMCAmJiBsaW5lcyA9PSAwICYmIGNvbHMgPT0gMCkKKyNpZm5kZWYgQ09ORklHX1g4Nl9WRVJCT1NFX0JPT1RVUAorCWlmICghZXJyb3IpCiAJCXJldHVybjsKICNlbmRpZgogCi0JeCA9IFJNX1NDUkVFTl9JTkZPLm9yaWdfeDsKLQl5ID0gUk1fU0NSRUVOX0lORk8ub3JpZ195OworI2lmZGVmIENPTkZJR19YODZfMzIKKwlpZiAocmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX21vZGUgPT0gMCAmJgorCSAgICBsaW5lcyA9PSAwICYmIGNvbHMgPT0gMCkKKwkJcmV0dXJuOworI2VuZGlmCisKKwl4ID0gcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3g7CisJeSA9IHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ195OwogCiAJd2hpbGUgKChjID0gKnMrKykgIT0gJ1wwJykgewogCQlpZiAoYyA9PSAnXG4nKSB7CkBAIC0zMDIsOCArMzAxLDggQEAKIAkJfQogCX0KIAotCVJNX1NDUkVFTl9JTkZPLm9yaWdfeCA9IHg7Ci0JUk1fU0NSRUVOX0lORk8ub3JpZ195ID0geTsKKwlyZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfeCA9IHg7CisJcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3kgPSB5OwogCiAJcG9zID0gKHggKyBjb2xzICogeSkgKiAyOwkvKiBVcGRhdGUgY3Vyc29yIHBvc2l0aW9uICovCiAJb3V0YigxNCwgdmlkcG9ydCk7CkBAIC0zNjYsOSArMzY1LDkgQEAKIAogc3RhdGljIHZvaWQgZXJyb3IoY2hhciAqeCkKIHsKLQlwdXRzdHIoIlxuXG4iKTsKLQlwdXRzdHIoeCk7Ci0JcHV0c3RyKCJcblxuIC0tIFN5c3RlbSBoYWx0ZWQiKTsKKwlfX3B1dHN0cigxLCAiXG5cbiIpOworCV9fcHV0c3RyKDEsIHgpOworCV9fcHV0c3RyKDEsICJcblxuIC0tIFN5c3RlbSBoYWx0ZWQiKTsKIAogCXdoaWxlICgxKQogCQlhc20oImhsdCIpOwpAQCAtMzk1LDcgKzM5NCw4IEBACiAJCXJldHVybjsKIAl9CiAKLQlwdXRzdHIoIlBhcnNpbmcgRUxGLi4uICIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiUGFyc2luZyBFTEYuLi4gIik7CiAKIAlwaGRycyA9IG1hbGxvYyhzaXplb2YoKnBoZHJzKSAqIGVoZHIuZV9waG51bSk7CiAJaWYgKCFwaGRycykKQEAgLTQzMCw3ICs0MzAsMTAgQEAKIHsKIAlyZWFsX21vZGUgPSBybW9kZTsKIAotCWlmIChSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX21vZGUgPT0gNykgeworCWlmIChyZWFsX21vZGUtPmhkci5sb2FkZmxhZ3MgJiBRVUlFVF9GTEFHKQorCQlxdWlldCA9IDE7CisKKwlpZiAocmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX21vZGUgPT0gNykgewogCQl2aWRtZW0gPSAoY2hhciAqKSAweGIwMDAwOwogCQl2aWRwb3J0ID0gMHgzYjQ7CiAJfSBlbHNlIHsKQEAgLTQzOCw4ICs0NDEsOCBAQAogCQl2aWRwb3J0ID0gMHgzZDQ7CiAJfQogCi0JbGluZXMgPSBSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX2xpbmVzOwotCWNvbHMgPSBSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX2NvbHM7CisJbGluZXMgPSByZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfdmlkZW9fbGluZXM7CisJY29scyA9IHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ192aWRlb19jb2xzOwogCiAJd2luZG93ID0gb3V0cHV0OwkJLyogT3V0cHV0IGJ1ZmZlciAoTm9ybWFsbHkgYXQgMU0pICovCiAJZnJlZV9tZW1fcHRyICAgICA9IGhlYXA7CS8qIEhlYXAgKi8KQEAgLTQ2NSw5ICs0NjgsMTEgQEAKICNlbmRpZgogCiAJbWFrZWNyYygpOwotCXB1dHN0cigiXG5EZWNvbXByZXNzaW5nIExpbnV4Li4uICIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiXG5EZWNvbXByZXNzaW5nIExpbnV4Li4uICIpOwogCWd1bnppcCgpOwogCXBhcnNlX2VsZihvdXRwdXQpOwotCXB1dHN0cigiZG9uZS5cbkJvb3RpbmcgdGhlIGtlcm5lbC5cbiIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiZG9uZS5cbkJvb3RpbmcgdGhlIGtlcm5lbC5cbiIpOwogCXJldHVybjsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9yZWxvY3MuYyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9yZWxvY3MuYwppbmRleCBlZGFhZGVhLi5hMTMxMGM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvcmVsb2NzLmMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL3JlbG9jcy5jCkBAIC0xMCwxNiArMTAsMjAgQEAKICNkZWZpbmUgVVNFX0JTRAogI2luY2x1ZGUgPGVuZGlhbi5oPgogCi0jZGVmaW5lIE1BWF9TSERSUyAxMDAKICNkZWZpbmUgQVJSQVlfU0laRSh4KSAoc2l6ZW9mKHgpIC8gc2l6ZW9mKCh4KVswXSkpCiBzdGF0aWMgRWxmMzJfRWhkciBlaGRyOwotc3RhdGljIEVsZjMyX1NoZHIgc2hkcltNQVhfU0hEUlNdOwotc3RhdGljIEVsZjMyX1N5bSAgKnN5bXRhYltNQVhfU0hEUlNdOwotc3RhdGljIEVsZjMyX1JlbCAgKnJlbHRhYltNQVhfU0hEUlNdOwotc3RhdGljIGNoYXIgKnN0cnRhYltNQVhfU0hEUlNdOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgcmVsb2NfY291bnQsIHJlbG9jX2lkeDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nICpyZWxvY3M7CiAKK3N0cnVjdCBzZWN0aW9uIHsKKwlFbGYzMl9TaGRyICAgICBzaGRyOworCXN0cnVjdCBzZWN0aW9uICpsaW5rOworCUVsZjMyX1N5bSAgICAgICpzeW10YWI7CisJRWxmMzJfUmVsICAgICAgKnJlbHRhYjsKKwljaGFyICAgICAgICAgICAqc3RydGFiOworfTsKK3N0YXRpYyBzdHJ1Y3Qgc2VjdGlvbiAqc2VjczsKKwogLyoKICAqIEZvbGxvd2luZyBzeW1ib2xzIGhhdmUgYmVlbiBhdWRpdGVkLiBUaGVyZSB2YWx1ZXMgYXJlIGNvbnN0YW50IGFuZCBkbwogICogbm90IGNoYW5nZSBpZiBiekltYWdlIGlzIGxvYWRlZCBhdCBhIGRpZmZlcmVudCBwaHlzaWNhbCBhZGRyZXNzIHRoYW4KQEAgLTM1LDcgKzM5LDcgQEAKIHsKIAlpbnQgaTsKIAotCWZvcihpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2FmZV9hYnNfcmVsb2NzKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2FmZV9hYnNfcmVsb2NzKTsgaSsrKSB7CiAJCWlmICghc3RyY21wKHN5bV9uYW1lLCBzYWZlX2Fic19yZWxvY3NbaV0pKQogCQkJLyogTWF0Y2ggZm91bmQgKi8KIAkJCXJldHVybiAxOwpAQCAtMTM3LDEwICsxNDEsMTAgQEAKIHsKIAljb25zdCBjaGFyICpzZWNfc3RydGFiOwogCWNvbnN0IGNoYXIgKm5hbWU7Ci0Jc2VjX3N0cnRhYiA9IHN0cnRhYltlaGRyLmVfc2hzdHJuZHhdOworCXNlY19zdHJ0YWIgPSBzZWNzW2VoZHIuZV9zaHN0cm5keF0uc3RydGFiOwogCW5hbWUgPSAiPG5vbmFtZT4iOwogCWlmIChzaG5keCA8IGVoZHIuZV9zaG51bSkgewotCQluYW1lID0gc2VjX3N0cnRhYiArIHNoZHJbc2huZHhdLnNoX25hbWU7CisJCW5hbWUgPSBzZWNfc3RydGFiICsgc2Vjc1tzaG5keF0uc2hkci5zaF9uYW1lOwogCX0KIAllbHNlIGlmIChzaG5keCA9PSBTSE5fQUJTKSB7CiAJCW5hbWUgPSAiQUJTT0xVVEUiOwpAQCAtMTU5LDcgKzE2Myw3IEBACiAJCW5hbWUgPSBzeW1fc3RydGFiICsgc3ltLT5zdF9uYW1lOwogCX0KIAllbHNlIHsKLQkJbmFtZSA9IHNlY19uYW1lKHNoZHJbc3ltLT5zdF9zaG5keF0uc2hfbmFtZSk7CisJCW5hbWUgPSBzZWNfbmFtZShzZWNzW3N5bS0+c3Rfc2huZHhdLnNoZHIuc2hfbmFtZSk7CiAJfQogCXJldHVybiBuYW1lOwogfQpAQCAtMjQ0LDI5ICsyNDgsMzQgQEAKIHN0YXRpYyB2b2lkIHJlYWRfc2hkcnMoRklMRSAqZnApCiB7CiAJaW50IGk7Ci0JaWYgKGVoZHIuZV9zaG51bSA+IE1BWF9TSERSUykgewotCQlkaWUoIiVkIHNlY3Rpb24gaGVhZGVycyBzdXBwb3J0ZWQ6ICVkXG4iLAotCQkJZWhkci5lX3NobnVtLCBNQVhfU0hEUlMpOworCUVsZjMyX1NoZHIgc2hkcjsKKworCXNlY3MgPSBjYWxsb2MoZWhkci5lX3NobnVtLCBzaXplb2Yoc3RydWN0IHNlY3Rpb24pKTsKKwlpZiAoIXNlY3MpIHsKKwkJZGllKCJVbmFibGUgdG8gYWxsb2NhdGUgJWQgc2VjdGlvbiBoZWFkZXJzXG4iLAorCQkgICAgZWhkci5lX3NobnVtKTsKIAl9CiAJaWYgKGZzZWVrKGZwLCBlaGRyLmVfc2hvZmYsIFNFRUtfU0VUKSA8IDApIHsKIAkJZGllKCJTZWVrIHRvICVkIGZhaWxlZDogJXNcbiIsCiAJCQllaGRyLmVfc2hvZmYsIHN0cmVycm9yKGVycm5vKSk7CiAJfQotCWlmIChmcmVhZCgmc2hkciwgc2l6ZW9mKHNoZHJbMF0pLCBlaGRyLmVfc2hudW0sIGZwKSAhPSBlaGRyLmVfc2hudW0pIHsKLQkJZGllKCJDYW5ub3QgcmVhZCBFTEYgc2VjdGlvbiBoZWFkZXJzOiAlc1xuIiwKLQkJCXN0cmVycm9yKGVycm5vKSk7Ci0JfQotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7Ci0JCXNoZHJbaV0uc2hfbmFtZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfbmFtZSk7Ci0JCXNoZHJbaV0uc2hfdHlwZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfdHlwZSk7Ci0JCXNoZHJbaV0uc2hfZmxhZ3MgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfZmxhZ3MpOwotCQlzaGRyW2ldLnNoX2FkZHIgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2FkZHIpOwotCQlzaGRyW2ldLnNoX29mZnNldCAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX29mZnNldCk7Ci0JCXNoZHJbaV0uc2hfc2l6ZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfc2l6ZSk7Ci0JCXNoZHJbaV0uc2hfbGluayAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfbGluayk7Ci0JCXNoZHJbaV0uc2hfaW5mbyAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfaW5mbyk7Ci0JCXNoZHJbaV0uc2hfYWRkcmFsaWduID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfYWRkcmFsaWduKTsKLQkJc2hkcltpXS5zaF9lbnRzaXplICAgPSBlbGYzMl90b19jcHUoc2hkcltpXS5zaF9lbnRzaXplKTsKKwlmb3IgKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCQlpZiAoZnJlYWQoJnNoZHIsIHNpemVvZiBzaGRyLCAxLCBmcCkgIT0gMSkKKwkJCWRpZSgiQ2Fubm90IHJlYWQgRUxGIHNlY3Rpb24gaGVhZGVycyAlZC8lZDogJXNcbiIsCisJCQkgICAgaSwgZWhkci5lX3NobnVtLCBzdHJlcnJvcihlcnJubykpOworCQlzZWMtPnNoZHIuc2hfbmFtZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfbmFtZSk7CisJCXNlYy0+c2hkci5zaF90eXBlICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF90eXBlKTsKKwkJc2VjLT5zaGRyLnNoX2ZsYWdzICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2ZsYWdzKTsKKwkJc2VjLT5zaGRyLnNoX2FkZHIgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2FkZHIpOworCQlzZWMtPnNoZHIuc2hfb2Zmc2V0ICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfb2Zmc2V0KTsKKwkJc2VjLT5zaGRyLnNoX3NpemUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX3NpemUpOworCQlzZWMtPnNoZHIuc2hfbGluayAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfbGluayk7CisJCXNlYy0+c2hkci5zaF9pbmZvICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9pbmZvKTsKKwkJc2VjLT5zaGRyLnNoX2FkZHJhbGlnbiA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2FkZHJhbGlnbik7CisJCXNlYy0+c2hkci5zaF9lbnRzaXplICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9lbnRzaXplKTsKKwkJaWYgKHNlYy0+c2hkci5zaF9saW5rIDwgZWhkci5lX3NobnVtKQorCQkJc2VjLT5saW5rID0gJnNlY3Nbc2VjLT5zaGRyLnNoX2xpbmtdOwogCX0KIAogfQpAQCAtMjc0LDIwICsyODMsMjIgQEAKIHN0YXRpYyB2b2lkIHJlYWRfc3RydGFicyhGSUxFICpmcCkKIHsKIAlpbnQgaTsKLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgewotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9TVFJUQUIpIHsKKwlmb3IgKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1NUUlRBQikgewogCQkJY29udGludWU7CiAJCX0KLQkJc3RydGFiW2ldID0gbWFsbG9jKHNoZHJbaV0uc2hfc2l6ZSk7Ci0JCWlmICghc3RydGFiW2ldKSB7CisJCXNlYy0+c3RydGFiID0gbWFsbG9jKHNlYy0+c2hkci5zaF9zaXplKTsKKwkJaWYgKCFzZWMtPnN0cnRhYikgewogCQkJZGllKCJtYWxsb2Mgb2YgJWQgYnl0ZXMgZm9yIHN0cnRhYiBmYWlsZWRcbiIsCi0JCQkJc2hkcltpXS5zaF9zaXplKTsKKwkJCQlzZWMtPnNoZHIuc2hfc2l6ZSk7CiAJCX0KLQkJaWYgKGZzZWVrKGZwLCBzaGRyW2ldLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgeworCQlpZiAoZnNlZWsoZnAsIHNlYy0+c2hkci5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKIAkJCWRpZSgiU2VlayB0byAlZCBmYWlsZWQ6ICVzXG4iLAotCQkJCXNoZHJbaV0uc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOworCQkJCXNlYy0+c2hkci5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJaWYgKGZyZWFkKHN0cnRhYltpXSwgMSwgc2hkcltpXS5zaF9zaXplLCBmcCkgIT0gc2hkcltpXS5zaF9zaXplKSB7CisJCWlmIChmcmVhZChzZWMtPnN0cnRhYiwgMSwgc2VjLT5zaGRyLnNoX3NpemUsIGZwKQorCQkgICAgIT0gc2VjLT5zaGRyLnNoX3NpemUpIHsKIAkJCWRpZSgiQ2Fubm90IHJlYWQgc3ltYm9sIHRhYmxlOiAlc1xuIiwKIAkJCQlzdHJlcnJvcihlcnJubykpOwogCQl9CkBAIC0yOTcsMjggKzMwOCwzMSBAQAogc3RhdGljIHZvaWQgcmVhZF9zeW10YWJzKEZJTEUgKmZwKQogewogCWludCBpLGo7Ci0JZm9yKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfU1lNVEFCKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9TWU1UQUIpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXN5bXRhYltpXSA9IG1hbGxvYyhzaGRyW2ldLnNoX3NpemUpOwotCQlpZiAoIXN5bXRhYltpXSkgeworCQlzZWMtPnN5bXRhYiA9IG1hbGxvYyhzZWMtPnNoZHIuc2hfc2l6ZSk7CisJCWlmICghc2VjLT5zeW10YWIpIHsKIAkJCWRpZSgibWFsbG9jIG9mICVkIGJ5dGVzIGZvciBzeW10YWIgZmFpbGVkXG4iLAotCQkJCXNoZHJbaV0uc2hfc2l6ZSk7CisJCQkJc2VjLT5zaGRyLnNoX3NpemUpOwogCQl9Ci0JCWlmIChmc2VlayhmcCwgc2hkcltpXS5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKKwkJaWYgKGZzZWVrKGZwLCBzZWMtPnNoZHIuc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CiAJCQlkaWUoIlNlZWsgdG8gJWQgZmFpbGVkOiAlc1xuIiwKLQkJCQlzaGRyW2ldLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlzZWMtPnNoZHIuc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOwogCQl9Ci0JCWlmIChmcmVhZChzeW10YWJbaV0sIDEsIHNoZHJbaV0uc2hfc2l6ZSwgZnApICE9IHNoZHJbaV0uc2hfc2l6ZSkgeworCQlpZiAoZnJlYWQoc2VjLT5zeW10YWIsIDEsIHNlYy0+c2hkci5zaF9zaXplLCBmcCkKKwkJICAgICE9IHNlYy0+c2hkci5zaF9zaXplKSB7CiAJCQlkaWUoIkNhbm5vdCByZWFkIHN5bWJvbCB0YWJsZTogJXNcbiIsCiAJCQkJc3RyZXJyb3IoZXJybm8pKTsKIAkJfQotCQlmb3IoaiA9IDA7IGogPCBzaGRyW2ldLnNoX3NpemUvc2l6ZW9mKHN5bXRhYltpXVswXSk7IGorKykgewotCQkJc3ltdGFiW2ldW2pdLnN0X25hbWUgID0gZWxmMzJfdG9fY3B1KHN5bXRhYltpXVtqXS5zdF9uYW1lKTsKLQkJCXN5bXRhYltpXVtqXS5zdF92YWx1ZSA9IGVsZjMyX3RvX2NwdShzeW10YWJbaV1bal0uc3RfdmFsdWUpOwotCQkJc3ltdGFiW2ldW2pdLnN0X3NpemUgID0gZWxmMzJfdG9fY3B1KHN5bXRhYltpXVtqXS5zdF9zaXplKTsKLQkJCXN5bXRhYltpXVtqXS5zdF9zaG5keCA9IGVsZjE2X3RvX2NwdShzeW10YWJbaV1bal0uc3Rfc2huZHgpOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1N5bSk7IGorKykgeworCQkJRWxmMzJfU3ltICpzeW0gPSAmc2VjLT5zeW10YWJbal07CisJCQlzeW0tPnN0X25hbWUgID0gZWxmMzJfdG9fY3B1KHN5bS0+c3RfbmFtZSk7CisJCQlzeW0tPnN0X3ZhbHVlID0gZWxmMzJfdG9fY3B1KHN5bS0+c3RfdmFsdWUpOworCQkJc3ltLT5zdF9zaXplICA9IGVsZjMyX3RvX2NwdShzeW0tPnN0X3NpemUpOworCQkJc3ltLT5zdF9zaG5keCA9IGVsZjE2X3RvX2NwdShzeW0tPnN0X3NobmR4KTsKIAkJfQogCX0KIH0KQEAgLTMyNywyNiArMzQxLDI5IEBACiBzdGF0aWMgdm9pZCByZWFkX3JlbG9jcyhGSUxFICpmcCkKIHsKIAlpbnQgaSxqOwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1JFTCkgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfUkVMKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlyZWx0YWJbaV0gPSBtYWxsb2Moc2hkcltpXS5zaF9zaXplKTsKLQkJaWYgKCFyZWx0YWJbaV0pIHsKKwkJc2VjLT5yZWx0YWIgPSBtYWxsb2Moc2VjLT5zaGRyLnNoX3NpemUpOworCQlpZiAoIXNlYy0+cmVsdGFiKSB7CiAJCQlkaWUoIm1hbGxvYyBvZiAlZCBieXRlcyBmb3IgcmVsb2NzIGZhaWxlZFxuIiwKLQkJCQlzaGRyW2ldLnNoX3NpemUpOworCQkJCXNlYy0+c2hkci5zaF9zaXplKTsKIAkJfQotCQlpZiAoZnNlZWsoZnAsIHNoZHJbaV0uc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CisJCWlmIChmc2VlayhmcCwgc2VjLT5zaGRyLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgewogCQkJZGllKCJTZWVrIHRvICVkIGZhaWxlZDogJXNcbiIsCi0JCQkJc2hkcltpXS5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CisJCQkJc2VjLT5zaGRyLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKIAkJfQotCQlpZiAoZnJlYWQocmVsdGFiW2ldLCAxLCBzaGRyW2ldLnNoX3NpemUsIGZwKSAhPSBzaGRyW2ldLnNoX3NpemUpIHsKKwkJaWYgKGZyZWFkKHNlYy0+cmVsdGFiLCAxLCBzZWMtPnNoZHIuc2hfc2l6ZSwgZnApCisJCSAgICAhPSBzZWMtPnNoZHIuc2hfc2l6ZSkgewogCQkJZGllKCJDYW5ub3QgcmVhZCBzeW1ib2wgdGFibGU6ICVzXG4iLAogCQkJCXN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJZm9yKGogPSAwOyBqIDwgc2hkcltpXS5zaF9zaXplL3NpemVvZihyZWx0YWJbMF1bMF0pOyBqKyspIHsKLQkJCXJlbHRhYltpXVtqXS5yX29mZnNldCA9IGVsZjMyX3RvX2NwdShyZWx0YWJbaV1bal0ucl9vZmZzZXQpOwotCQkJcmVsdGFiW2ldW2pdLnJfaW5mbyAgID0gZWxmMzJfdG9fY3B1KHJlbHRhYltpXVtqXS5yX2luZm8pOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1JlbCk7IGorKykgeworCQkJRWxmMzJfUmVsICpyZWwgPSAmc2VjLT5yZWx0YWJbal07CisJCQlyZWwtPnJfb2Zmc2V0ID0gZWxmMzJfdG9fY3B1KHJlbC0+cl9vZmZzZXQpOworCQkJcmVsLT5yX2luZm8gICA9IGVsZjMyX3RvX2NwdShyZWwtPnJfaW5mbyk7CiAJCX0KIAl9CiB9CkBAIC0zNTcsMTkgKzM3NCwyMSBAQAogCWludCBpOwogCXByaW50ZigiQWJzb2x1dGUgc3ltYm9sc1xuIik7CiAJcHJpbnRmKCIgTnVtOiAgICBWYWx1ZSBTaXplICBUeXBlICAgICAgIEJpbmQgICAgICAgIFZpc2liaWxpdHkgIE5hbWVcbiIpOwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKIAkJY2hhciAqc3ltX3N0cnRhYjsKIAkJRWxmMzJfU3ltICpzaF9zeW10YWI7CiAJCWludCBqOwotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9TWU1UQUIpIHsKKworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1NZTVRBQikgewogCQkJY29udGludWU7CiAJCX0KLQkJc2hfc3ltdGFiID0gc3ltdGFiW2ldOwotCQlzeW1fc3RydGFiID0gc3RydGFiW3NoZHJbaV0uc2hfbGlua107Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2Yoc3ltdGFiWzBdWzBdKTsgaisrKSB7CisJCXNoX3N5bXRhYiA9IHNlYy0+c3ltdGFiOworCQlzeW1fc3RydGFiID0gc2VjLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfU3ltKTsgaisrKSB7CiAJCQlFbGYzMl9TeW0gKnN5bTsKIAkJCWNvbnN0IGNoYXIgKm5hbWU7Ci0JCQlzeW0gPSAmc3ltdGFiW2ldW2pdOworCQkJc3ltID0gJnNlYy0+c3ltdGFiW2pdOwogCQkJbmFtZSA9IHN5bV9uYW1lKHN5bV9zdHJ0YWIsIHN5bSk7CiAJCQlpZiAoc3ltLT5zdF9zaG5keCAhPSBTSE5fQUJTKSB7CiAJCQkJY29udGludWU7CkBAIC0zODksMjYgKzQwOCwyNyBAQAogewogCWludCBpLCBwcmludGVkID0gMDsKIAotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJc3RydWN0IHNlY3Rpb24gKnNlY19hcHBsaWVzLCAqc2VjX3N5bXRhYjsKIAkJY2hhciAqc3ltX3N0cnRhYjsKIAkJRWxmMzJfU3ltICpzaF9zeW10YWI7Ci0JCXVuc2lnbmVkIHNlY19hcHBsaWVzLCBzZWNfc3ltdGFiOwogCQlpbnQgajsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfUkVMKSB7CisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfUkVMKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzZWNfc3ltdGFiICA9IHNoZHJbaV0uc2hfbGluazsKLQkJc2VjX2FwcGxpZXMgPSBzaGRyW2ldLnNoX2luZm87Ci0JCWlmICghKHNoZHJbc2VjX2FwcGxpZXNdLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgeworCQlzZWNfc3ltdGFiICA9IHNlYy0+bGluazsKKwkJc2VjX2FwcGxpZXMgPSAmc2Vjc1tzZWMtPnNoZHIuc2hfaW5mb107CisJCWlmICghKHNlY19hcHBsaWVzLT5zaGRyLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgewogCQkJY29udGludWU7CiAJCX0KLQkJc2hfc3ltdGFiID0gc3ltdGFiW3NlY19zeW10YWJdOwotCQlzeW1fc3RydGFiID0gc3RydGFiW3NoZHJbc2VjX3N5bXRhYl0uc2hfbGlua107Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2YocmVsdGFiWzBdWzBdKTsgaisrKSB7CisJCXNoX3N5bXRhYiAgPSBzZWNfc3ltdGFiLT5zeW10YWI7CisJCXN5bV9zdHJ0YWIgPSBzZWNfc3ltdGFiLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfUmVsKTsgaisrKSB7CiAJCQlFbGYzMl9SZWwgKnJlbDsKIAkJCUVsZjMyX1N5bSAqc3ltOwogCQkJY29uc3QgY2hhciAqbmFtZTsKLQkJCXJlbCA9ICZyZWx0YWJbaV1bal07CisJCQlyZWwgPSAmc2VjLT5yZWx0YWJbal07CiAJCQlzeW0gPSAmc2hfc3ltdGFiW0VMRjMyX1JfU1lNKHJlbC0+cl9pbmZvKV07CiAJCQluYW1lID0gc3ltX25hbWUoc3ltX3N0cnRhYiwgc3ltKTsKIAkJCWlmIChzeW0tPnN0X3NobmR4ICE9IFNITl9BQlMpIHsKQEAgLTQ1NiwyNiArNDc2LDI4IEBACiB7CiAJaW50IGk7CiAJLyogV2FsayB0aHJvdWdoIHRoZSByZWxvY2F0aW9ucyAqLwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CiAJCWNoYXIgKnN5bV9zdHJ0YWI7CiAJCUVsZjMyX1N5bSAqc2hfc3ltdGFiOwotCQl1bnNpZ25lZCBzZWNfYXBwbGllcywgc2VjX3N5bXRhYjsKKwkJc3RydWN0IHNlY3Rpb24gKnNlY19hcHBsaWVzLCAqc2VjX3N5bXRhYjsKIAkJaW50IGo7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1JFTCkgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9SRUwpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXNlY19zeW10YWIgID0gc2hkcltpXS5zaF9saW5rOwotCQlzZWNfYXBwbGllcyA9IHNoZHJbaV0uc2hfaW5mbzsKLQkJaWYgKCEoc2hkcltzZWNfYXBwbGllc10uc2hfZmxhZ3MgJiBTSEZfQUxMT0MpKSB7CisJCXNlY19zeW10YWIgID0gc2VjLT5saW5rOworCQlzZWNfYXBwbGllcyA9ICZzZWNzW3NlYy0+c2hkci5zaF9pbmZvXTsKKwkJaWYgKCEoc2VjX2FwcGxpZXMtPnNoZHIuc2hfZmxhZ3MgJiBTSEZfQUxMT0MpKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzaF9zeW10YWIgPSBzeW10YWJbc2VjX3N5bXRhYl07Ci0JCXN5bV9zdHJ0YWIgPSBzdHJ0YWJbc2hkcltzZWNfc3ltdGFiXS5zaF9saW5rXTsKLQkJZm9yKGogPSAwOyBqIDwgc2hkcltpXS5zaF9zaXplL3NpemVvZihyZWx0YWJbMF1bMF0pOyBqKyspIHsKKwkJc2hfc3ltdGFiID0gc2VjX3N5bXRhYi0+c3ltdGFiOworCQlzeW1fc3RydGFiID0gc2VjLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfUmVsKTsgaisrKSB7CiAJCQlFbGYzMl9SZWwgKnJlbDsKIAkJCUVsZjMyX1N5bSAqc3ltOwogCQkJdW5zaWduZWQgcl90eXBlOwotCQkJcmVsID0gJnJlbHRhYltpXVtqXTsKKwkJCXJlbCA9ICZzZWMtPnJlbHRhYltqXTsKIAkJCXN5bSA9ICZzaF9zeW10YWJbRUxGMzJfUl9TWU0ocmVsLT5yX2luZm8pXTsKIAkJCXJfdHlwZSA9IEVMRjMyX1JfVFlQRShyZWwtPnJfaW5mbyk7CiAJCQkvKiBEb24ndCB2aXNpdCByZWxvY2F0aW9ucyB0byBhYnNvbHV0ZSBzeW1ib2xzICovCkBAIC01MzksNyArNTYxLDcgQEAKIAkJICovCiAJCXByaW50ZigiLnNlY3Rpb24gXCIuZGF0YS5yZWxvY1wiLFwiYVwiXG4iKTsKIAkJcHJpbnRmKCIuYmFsaWduIDRcbiIpOwotCQlmb3IoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CiAJCQlwcmludGYoIlx0IC5sb25nIDB4JTA4bHhcbiIsIHJlbG9jc1tpXSk7CiAJCX0KIAkJcHJpbnRmKCJcbiIpOwpAQCAtNTUwLDcgKzU3Miw3IEBACiAJCS8qIFByaW50IGEgc3RvcCAqLwogCQlwcmludGYoIiVjJWMlYyVjIiwgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdKTsKIAkJLyogTm93IHByaW50IGVhY2ggcmVsb2NhdGlvbiAqLwotCQlmb3IoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CiAJCQlidWZbMF0gPSAocmVsb2NzW2ldID4+ICAwKSAmIDB4ZmY7CiAJCQlidWZbMV0gPSAocmVsb2NzW2ldID4+ICA4KSAmIDB4ZmY7CiAJCQlidWZbMl0gPSAocmVsb2NzW2ldID4+IDE2KSAmIDB4ZmY7CkBAIC01NzcsNyArNTk5LDcgQEAKIAlzaG93X2Fic29sdXRlX3JlbG9jcyA9IDA7CiAJYXNfdGV4dCA9IDA7CiAJZm5hbWUgPSBOVUxMOwotCWZvcihpID0gMTsgaSA8IGFyZ2M7IGkrKykgeworCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKIAkJY2hhciAqYXJnID0gYXJndltpXTsKIAkJaWYgKCphcmcgPT0gJy0nKSB7CiAJCQlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLWFicy1zeW1zIikgPT0gMCkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9jcHUuYyBiL2FyY2gveDg2L2Jvb3QvY3B1LmMKaW5kZXggMDBlMTllZC4uOTJkNmZkNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9jcHUuYworKysgYi9hcmNoL3g4Ni9ib290L2NwdS5jCkBAIC0yOCw2ICsyOCw4IEBACiAJaWYgKGxldmVsID09IDY0KSB7CiAJCXJldHVybiAieDg2LTY0IjsKIAl9IGVsc2UgeworCQlpZiAobGV2ZWwgPT0gMTUpCisJCQlsZXZlbCA9IDY7CiAJCXNwcmludGYoYnVmLCAiaSVkODYiLCBsZXZlbCk7CiAJCXJldHVybiBidWY7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9tYWluLmMgYi9hcmNoL3g4Ni9ib290L21haW4uYwppbmRleCA3NzU2OWE0Li4yMjk2MTY0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L21haW4uYworKysgYi9hcmNoL3g4Ni9ib290L21haW4uYwpAQCAtMTY1LDYgKzE2NSwxMCBAQAogCS8qIFNldCB0aGUgdmlkZW8gbW9kZSAqLwogCXNldF92aWRlbygpOwogCisJLyogUGFyc2UgY29tbWFuZCBsaW5lIGZvciAncXVpZXQnIGFuZCBwYXNzIGl0IHRvIGRlY29tcHJlc3Nvci4gKi8KKwlpZiAoY21kbGluZV9maW5kX29wdGlvbl9ib29sKCJxdWlldCIpKQorCQlib290X3BhcmFtcy5oZHIubG9hZGZsYWdzIHw9IFFVSUVUX0ZMQUc7CisKIAkvKiBEbyB0aGUgbGFzdCB0aGluZ3MgYW5kIGludm9rZSBwcm90ZWN0ZWQgbW9kZSAqLwogCWdvX3RvX3Byb3RlY3RlZF9tb2RlKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L21lbW9yeS5jIGIvYXJjaC94ODYvYm9vdC9tZW1vcnkuYwppbmRleCBhY2FkMzJlLi41MzE2NWM5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L21lbW9yeS5jCisrKyBiL2FyY2gveDg2L2Jvb3QvbWVtb3J5LmMKQEAgLTEzLDYgKzEzLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiYm9vdC5oIgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCiAjZGVmaW5lIFNNQVAJMHg1MzRkNDE1MAkvKiBBU0NJSSAiU01BUCIgKi8KIApAQCAtNTMsNyArNTQsNyBAQAogCiAJCWNvdW50Kys7CiAJCWRlc2MrKzsKLQl9IHdoaWxlIChuZXh0ICYmIGNvdW50IDwgRTgyME1BWCk7CisJfSB3aGlsZSAobmV4dCAmJiBjb3VudCA8IEFSUkFZX1NJWkUoYm9vdF9wYXJhbXMuZTgyMF9tYXApKTsKIAogCXJldHVybiBib290X3BhcmFtcy5lODIwX2VudHJpZXMgPSBjb3VudDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvcG1qdW1wLlMgYi9hcmNoL3g4Ni9ib290L3BtanVtcC5TCmluZGV4IGFiMDQ5ZDQuLjE0MWI2ZTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvcG1qdW1wLlMKKysrIGIvYXJjaC94ODYvYm9vdC9wbWp1bXAuUwpAQCAtMzMsNiArMzMsOCBAQAogCW1vdncJJWNzLCAlYngKIAlzaGxsCSQ0LCAlZWJ4CiAJYWRkbAklZWJ4LCAyZgorCWptcAkxZgkJCSMgU2hvcnQganVtcCB0byBzZXJpYWxpemUgb24gMzg2LzQ4NgorMToKIAogCW1vdncJJF9fQk9PVF9EUywgJWN4CiAJbW92dwkkX19CT09UX1RTUywgJWRpCkBAIC00MCw4ICs0Miw2IEBACiAJbW92bAklY3IwLCAlZWR4CiAJb3JiCSRYODZfQ1IwX1BFLCAlZGwJIyBQcm90ZWN0ZWQgbW9kZQogCW1vdmwJJWVkeCwgJWNyMAotCWptcAkxZgkJCSMgU2hvcnQganVtcCB0byBzZXJpYWxpemUgb24gMzg2LzQ4NgotMToKIAogCSMgVHJhbnNpdGlvbiB0byAzMi1iaXQgbW9kZQogCS5ieXRlCTB4NjYsIDB4ZWEJCSMgbGptcGwgb3Bjb2RlCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3ZpZGVvLXZnYS5jIGIvYXJjaC94ODYvYm9vdC92aWRlby12Z2EuYwppbmRleCA0MGVjYjhkLi5iOTM5Y2I0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L3ZpZGVvLXZnYS5jCisrKyBiL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmdhLmMKQEAgLTI1OSw4ICsyNTksNyBAQAogCXJldHVybiBtb2RlX2NvdW50W2FkYXB0ZXJdOwogfQogCi1fX3ZpZGVvY2FyZCB2aWRlb192Z2EgPQoteworX192aWRlb2NhcmQgdmlkZW9fdmdhID0gewogCS5jYXJkX25hbWUJPSAiVkdBIiwKIAkucHJvYmUJCT0gdmdhX3Byb2JlLAogCS5zZXRfbW9kZQk9IHZnYV9zZXRfbW9kZSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWcgYi9hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnCmluZGV4IGFkN2RkYWEuLjliYzM0ZTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWcKKysrIGIvYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZwpAQCAtMSw1NCArMSwxMDMgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMi1naXQxNAotIyBGcmkgSnVsIDIwIDA5OjUzOjE1IDIwMDcKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzEKKyMgU3VuIE1heSAgNCAxOTo1OTowMiAyMDA4CiAjCisjIENPTkZJR182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWDg2XzMyPXkKKyMgQ09ORklHX1g4Nl82NCBpcyBub3Qgc2V0CitDT05GSUdfWDg2PXkKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZyIKKyMgQ09ORklHX0dFTkVSSUNfTE9DS0JSRUFLIGlzIG5vdCBzZXQKIENPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQogQ09ORklHX0NMT0NLU09VUkNFX1dBVENIRE9HPXkKIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVD15CiBDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQotQ09ORklHX1NFTUFQSE9SRV9TTEVFUEVSUz15Ci1DT05GSUdfWDg2PXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfRkFTVF9DTVBYQ0hHX0xPQ0FMPXkKIENPTkZJR19NTVU9eQogQ09ORklHX1pPTkVfRE1BPXkKLUNPTkZJR19RVUlDS0xJU1Q9eQogQ09ORklHX0dFTkVSSUNfSVNBX0RNQT15CiBDT05GSUdfR0VORVJJQ19JT01BUD15CiBDT05GSUdfR0VORVJJQ19CVUc9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfTUFZX0hBVkVfUENfRkRDPXkKLUNPTkZJR19ETUk9eQotQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKLQotIwotIyBDb2RlIG1hdHVyaXR5IGxldmVsIG9wdGlvbnMKLSMKLUNPTkZJR19FWFBFUklNRU5UQUw9eQotQ09ORklHX0xPQ0tfS0VSTkVMPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKKyMgQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0sgaXMgbm90IHNldAorQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0NQVV9JRExFX1dBSVQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKKyMgQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FMTCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfQ1BVX1JFTEFYPXkKK0NPTkZJR19BUkNIX0hBU19DQUNIRV9MSU5FX1NJWkU9eQorQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBPXkKKyMgQ09ORklHX0hBVkVfQ1BVTUFTS19PRl9DUFVfTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hJQkVSTkFUSU9OX1BPU1NJQkxFPXkKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorIyBDT05GSUdfWk9ORV9ETUEzMiBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQorIyBDT05GSUdfQVVESVRfQVJDSCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QVElNSVpFRF9JTkxJTklORz15CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX0dFTkVSSUNfUEVORElOR19JUlE9eQorQ09ORklHX1g4Nl9TTVA9eQorQ09ORklHX1g4Nl8zMl9TTVA9eQorQ09ORklHX1g4Nl9IVD15CitDT05GSUdfWDg2X0JJT1NfUkVCT09UPXkKK0NPTkZJR19YODZfVFJBTVBPTElORT15CitDT05GSUdfS1RJTUVfU0NBTEFSPXkKIAogIwogIyBHZW5lcmFsIHNldHVwCiAjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCi1DT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQogQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKIENPTkZJR19QT1NJWF9NUVVFVUU9eQotIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVURJVCBpcyBub3Qgc2V0Ci1DT05GSUdfSUtDT05GSUc9eQotQ09ORklHX0lLQ09ORklHX1BST0M9eQotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTgKLSMgQ09ORklHX0NQVVNFVFMgaXMgbm90IHNldAotQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVF9WMyBpcyBub3Qgc2V0CitDT05GSUdfVEFTS1NUQVRTPXkKK0NPTkZJR19UQVNLX0RFTEFZX0FDQ1Q9eQorQ09ORklHX1RBU0tfWEFDQ1Q9eQorQ09ORklHX1RBU0tfSU9fQUNDT1VOVElORz15CitDT05GSUdfQVVESVQ9eQorQ09ORklHX0FVRElUU1lTQ0FMTD15CitDT05GSUdfQVVESVRfVFJFRT15CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNworQ09ORklHX0NHUk9VUFM9eQorIyBDT05GSUdfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DR1JPVVBfTlM9eQorIyBDT05GSUdfQ0dST1VQX0RFVklDRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVU0VUUz15CitDT05GSUdfR1JPVVBfU0NIRUQ9eQorQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQ9eQorIyBDT05GSUdfUlRfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNFUl9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfQ0dST1VQX1NDSEVEPXkKK0NPTkZJR19DR1JPVVBfQ1BVQUNDVD15CitDT05GSUdfUkVTT1VSQ0VfQ09VTlRFUlM9eQorIyBDT05GSUdfQ0dST1VQX01FTV9SRVNfQ1RMUiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BJRF9DUFVTRVQ9eQogQ09ORklHX1JFTEFZPXkKK0NPTkZJR19OQU1FU1BBQ0VTPXkKK0NPTkZJR19VVFNfTlM9eQorQ09ORklHX0lQQ19OUz15CitDT05GSUdfVVNFUl9OUz15CitDT05GSUdfUElEX05TPXkKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKQEAgLTU2LDEzICsxMDUsMTUgQEAKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19VSUQxNj15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKLSMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CkBAIC03Niw2ICsxMjcsMTcgQEAKICMgQ09ORklHX1NMQUIgaXMgbm90IHNldAogQ09ORklHX1NMVUI9eQogIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKK0NPTkZJR19NQVJLRVJTPXkKKyMgQ09ORklHX09QUk9GSUxFIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MApAQCAtODcsMTAgKzE0OSwxMCBAQAogIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CiBDT05GSUdfU1RPUF9NQUNISU5FPXkKIENPTkZJR19CTE9DSz15Ci1DT05GSUdfTEJEPXkKLSMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lPX1RSQUNFPXkKICMgQ09ORklHX0xTRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9CU0c9eQogCiAjCiAjIElPIFNjaGVkdWxlcnMKQEAgLTEwMyw3ICsxNjUsOCBAQAogIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9DRlE9eQogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKLUNPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgUHJvY2Vzc29yIHR5cGUgYW5kIGZlYXR1cmVzCkBAIC0xMTEsMTggKzE3NCwyMSBAQAogQ09ORklHX1RJQ0tfT05FU0hPVD15CiBDT05GSUdfTk9fSFo9eQogQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiBDT05GSUdfU01QPXkKLSMgQ09ORklHX1g4Nl9QQyBpcyBub3Qgc2V0CitDT05GSUdfWDg2X1BDPXkKICMgQ09ORklHX1g4Nl9FTEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9WT1lBR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9OVU1BUSBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfU1VNTUlUIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9CSUdTTVAgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1ZJU1dTIGlzIG5vdCBzZXQKLUNPTkZJR19YODZfR0VORVJJQ0FSQ0g9eQorIyBDT05GSUdfWDg2X0dFTkVSSUNBUkNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9FUzcwMDAgaXMgbm90IHNldAotIyBDT05GSUdfUEFSQVZJUlQgaXMgbm90IHNldAotQ09ORklHX1g4Nl9DWUNMT05FX1RJTUVSPXkKKyMgQ09ORklHX1g4Nl9SREMzMjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9WU01QIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfUEFSQVZJUlRfR1VFU1QgaXMgbm90IHNldAogIyBDT05GSUdfTTM4NiBpcyBub3Qgc2V0CiAjIENPTkZJR19NNDg2IGlzIG5vdCBzZXQKICMgQ09ORklHX001ODYgaXMgbm90IHNldApAQCAtMTMwLDkgKzE5Niw4IEBACiAjIENPTkZJR19NNTg2TU1YIGlzIG5vdCBzZXQKICMgQ09ORklHX002ODYgaXMgbm90IHNldAogIyBDT05GSUdfTVBFTlRJVU1JSSBpcyBub3Qgc2V0Ci1DT05GSUdfTVBFTlRJVU1JSUk9eQorIyBDT05GSUdfTVBFTlRJVU1JSUkgaXMgbm90IHNldAogIyBDT05GSUdfTVBFTlRJVU1NIGlzIG5vdCBzZXQKLSMgQ09ORklHX01DT1JFMiBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEVOVElVTTQgaXMgbm90IHNldAogIyBDT05GSUdfTUs2IGlzIG5vdCBzZXQKICMgQ09ORklHX01LNyBpcyBub3Qgc2V0CkBAIC0xNDcsMTQgKzIxMiwxNCBAQAogIyBDT05GSUdfTUNZUklYSUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX01WSUFDM18yIGlzIG5vdCBzZXQKICMgQ09ORklHX01WSUFDNyBpcyBub3Qgc2V0Ci1DT05GSUdfWDg2X0dFTkVSSUM9eQorIyBDT05GSUdfTVBTQyBpcyBub3Qgc2V0CitDT05GSUdfTUNPUkUyPXkKKyMgQ09ORklHX0dFTkVSSUNfQ1BVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9HRU5FUklDIGlzIG5vdCBzZXQKK0NPTkZJR19YODZfQ1BVPXkKIENPTkZJR19YODZfQ01QWENIRz15Ci1DT05GSUdfWDg2X0wxX0NBQ0hFX1NISUZUPTcKK0NPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NgogQ09ORklHX1g4Nl9YQUREPXkKLUNPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15Ci0jIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CiBDT05GSUdfWDg2X1dQX1dPUktTX09LPXkKIENPTkZJR19YODZfSU5WTFBHPXkKIENPTkZJR19YODZfQlNXQVA9eQpAQCAtMTYyLDEwNiArMjI3LDEyMCBAQAogQ09ORklHX1g4Nl9HT09EX0FQSUM9eQogQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWT15CiBDT05GSUdfWDg2X1VTRV9QUFJPX0NIRUNLU1VNPXkKK0NPTkZJR19YODZfUDZfTk9QPXkKIENPTkZJR19YODZfVFNDPXkKLUNPTkZJR19YODZfQ01PVj15Ci1DT05GSUdfWDg2X01JTklNVU1fQ1BVX0ZBTUlMWT00CitDT05GSUdfWDg2X01JTklNVU1fQ1BVX0ZBTUlMWT02CitDT05GSUdfWDg2X0RFQlVHQ1RMTVNSPXkKIENPTkZJR19IUEVUX1RJTUVSPXkKIENPTkZJR19IUEVUX0VNVUxBVEVfUlRDPXkKLUNPTkZJR19OUl9DUFVTPTMyCi1DT05GSUdfU0NIRURfU01UPXkKK0NPTkZJR19ETUk9eQorIyBDT05GSUdfSU9NTVVfSEVMUEVSIGlzIG5vdCBzZXQKK0NPTkZJR19OUl9DUFVTPTQKKyMgQ09ORklHX1NDSEVEX1NNVCBpcyBub3Qgc2V0CiBDT05GSUdfU0NIRURfTUM9eQogIyBDT05GSUdfUFJFRU1QVF9OT05FIGlzIG5vdCBzZXQKIENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWT15CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLUNPTkZJR19QUkVFTVBUX0JLTD15CiBDT05GSUdfWDg2X0xPQ0FMX0FQSUM9eQogQ09ORklHX1g4Nl9JT19BUElDPXkKLUNPTkZJR19YODZfTUNFPXkKLUNPTkZJR19YODZfTUNFX05PTkZBVEFMPXkKLUNPTkZJR19YODZfTUNFX1A0VEhFUk1BTD15CisjIENPTkZJR19YODZfTUNFIGlzIG5vdCBzZXQKIENPTkZJR19WTTg2PXkKICMgQ09ORklHX1RPU0hJQkEgaXMgbm90IHNldAogIyBDT05GSUdfSThLIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9SRUJPT1RGSVhVUFMgaXMgbm90IHNldAotQ09ORklHX01JQ1JPQ09ERT15Ci1DT05GSUdfTUlDUk9DT0RFX09MRF9JTlRFUkZBQ0U9eQorIyBDT05GSUdfTUlDUk9DT0RFIGlzIG5vdCBzZXQKIENPTkZJR19YODZfTVNSPXkKIENPTkZJR19YODZfQ1BVSUQ9eQotCi0jCi0jIEZpcm13YXJlIERyaXZlcnMKLSMKLSMgQ09ORklHX0VERCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUxMX1JCVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EQ0RCQVMgaXMgbm90IHNldAotQ09ORklHX0RNSUlEPXkKICMgQ09ORklHX05PSElHSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfSElHSE1FTTRHPXkKICMgQ09ORklHX0hJR0hNRU02NEcgaXMgbm90IHNldAogQ09ORklHX1BBR0VfT0ZGU0VUPTB4QzAwMDAwMDAKIENPTkZJR19ISUdITUVNPXkKLUNPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CitDT05GSUdfTkVFRF9OT0RFX01FTU1BUF9TSVpFPXkKK0NPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1NQQVJTRU1FTV9FTkFCTEU9eQorQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15Ci1DT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRkxBVE1FTV9NQU5VQUwgaXMgbm90IHNldAogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLUNPTkZJR19GTEFUTUVNPXkKLUNPTkZJR19GTEFUX05PREVfTUVNX01BUD15Ci0jIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKK0NPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkKK0NPTkZJR19TUEFSU0VNRU09eQorQ09ORklHX0hBVkVfTUVNT1JZX1BSRVNFTlQ9eQorQ09ORklHX1NQQVJTRU1FTV9TVEFUSUM9eQorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKKworIworIyBNZW1vcnkgaG90cGx1ZyBpcyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU29mdHdhcmUgU3VzcGVuZAorIworQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogQ09ORklHX1JFU09VUkNFU182NEJJVD15CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKLUNPTkZJR19OUl9RVUlDSz0xCiBDT05GSUdfVklSVF9UT19CVVM9eQogIyBDT05GSUdfSElHSFBURSBpcyBub3Qgc2V0CiAjIENPTkZJR19NQVRIX0VNVUxBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfTVRSUj15Ci0jIENPTkZJR19FRkkgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1BBVCBpcyBub3Qgc2V0CitDT05GSUdfRUZJPXkKICMgQ09ORklHX0lSUUJBTEFOQ0UgaXMgbm90IHNldAogQ09ORklHX1NFQ0NPTVA9eQogIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKLUNPTkZJR19IWl8yNTA9eQorIyBDT05GSUdfSFpfMjUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKLUNPTkZJR19IWj0yNTAKLSMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQVNIX0RVTVAgaXMgbm90IHNldAotQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MTAwMDAwCi0jIENPTkZJR19SRUxPQ0FUQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAKLSMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKLUNPTkZJR19DT01QQVRfVkRTTz15CitDT05GSUdfSFpfMTAwMD15CitDT05GSUdfSFo9MTAwMAorQ09ORklHX1NDSEVEX0hSVElDSz15CitDT05GSUdfS0VYRUM9eQorQ09ORklHX0NSQVNIX0RVTVA9eQorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MTAwMDAwMAorQ09ORklHX1JFTE9DQVRBQkxFPXkKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDIwMDAwMAorQ09ORklHX0hPVFBMVUdfQ1BVPXkKKyMgQ09ORklHX0NPTVBBVF9WRFNPIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRz15CiAKICMKLSMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zIChBQ1BJLCBBUE0pCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwogIwogQ09ORklHX1BNPXkKLUNPTkZJR19QTV9MRUdBQ1k9eQotIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAotCi0jCi0jIEFDUEkgKEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIEludGVyZmFjZSkgU3VwcG9ydAotIworQ09ORklHX1BNX0RFQlVHPXkKKyMgQ09ORklHX1BNX1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0NBTl9QTV9UUkFDRT15CitDT05GSUdfUE1fVFJBQ0U9eQorQ09ORklHX1BNX1RSQUNFX1JUQz15CitDT05GSUdfUE1fU0xFRVBfU01QPXkKK0NPTkZJR19QTV9TTEVFUD15CitDT05GSUdfU1VTUEVORD15CitDT05GSUdfU1VTUEVORF9GUkVFWkVSPXkKK0NPTkZJR19ISUJFUk5BVElPTj15CitDT05GSUdfUE1fU1REX1BBUlRJVElPTj0iIgogQ09ORklHX0FDUEk9eQorQ09ORklHX0FDUElfU0xFRVA9eQogQ09ORklHX0FDUElfUFJPQ0ZTPXkKK0NPTkZJR19BQ1BJX1BST0NGU19QT1dFUj15CitDT05GSUdfQUNQSV9TWVNGU19QT1dFUj15CitDT05GSUdfQUNQSV9QUk9DX0VWRU5UPXkKIENPTkZJR19BQ1BJX0FDPXkKIENPTkZJR19BQ1BJX0JBVFRFUlk9eQogQ09ORklHX0FDUElfQlVUVE9OPXkKIENPTkZJR19BQ1BJX0ZBTj15Ci0jIENPTkZJR19BQ1BJX0RPQ0sgaXMgbm90IHNldAorQ09ORklHX0FDUElfRE9DSz15CisjIENPTkZJR19BQ1BJX0JBWSBpcyBub3Qgc2V0CiBDT05GSUdfQUNQSV9QUk9DRVNTT1I9eQorQ09ORklHX0FDUElfSE9UUExVR19DUFU9eQogQ09ORklHX0FDUElfVEhFUk1BTD15CisjIENPTkZJR19BQ1BJX1dNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BQ1BJX0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfQUNQSV9UT1NISUJBIGlzIG5vdCBzZXQKLUNPTkZJR19BQ1BJX0JMQUNLTElTVF9ZRUFSPTIwMDEKLUNPTkZJR19BQ1BJX0RFQlVHPXkKKyMgQ09ORklHX0FDUElfQ1VTVE9NX0RTRFQgaXMgbm90IHNldAorQ09ORklHX0FDUElfQkxBQ0tMSVNUX1lFQVI9MAorIyBDT05GSUdfQUNQSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQUNQSV9FQz15CiBDT05GSUdfQUNQSV9QT1dFUj15CiBDT05GSUdfQUNQSV9TWVNURU09eQogQ09ORklHX1g4Nl9QTV9USU1FUj15Ci0jIENPTkZJR19BQ1BJX0NPTlRBSU5FUiBpcyBub3Qgc2V0CitDT05GSUdfQUNQSV9DT05UQUlORVI9eQogIyBDT05GSUdfQUNQSV9TQlMgaXMgbm90IHNldAogIyBDT05GSUdfQVBNIGlzIG5vdCBzZXQKIApAQCAtMjcxLDE1ICszNTAsMTcgQEAKIENPTkZJR19DUFVfRlJFUT15CiBDT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQogQ09ORklHX0NQVV9GUkVRX0RFQlVHPXkKLUNPTkZJR19DUFVfRlJFUV9TVEFUPXkKLSMgQ09ORklHX0NQVV9GUkVRX1NUQVRfREVUQUlMUyBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfUEVSRk9STUFOQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfR09WX1VTRVJTUEFDRT15CiBDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EPXkKLUNPTkZJR19DUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogCiAjCiAjIENQVUZyZXEgcHJvY2Vzc29yIGRyaXZlcnMKQEAgLTI4Nyw4ICszNjgsNyBAQAogQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVE9eQogIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s2IGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9QT1dFUk5PV19LNyBpcyBub3Qgc2V0Ci1DT05GSUdfWDg2X1BPV0VSTk9XX0s4PXkKLUNPTkZJR19YODZfUE9XRVJOT1dfSzhfQUNQST15CisjIENPTkZJR19YODZfUE9XRVJOT1dfSzggaXMgbm90IHNldAogIyBDT05GSUdfWDg2X0dYX1NVU1BNT0QgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9DRU5UUklOTyBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfU1BFRURTVEVQX0lDSCBpcyBub3Qgc2V0CkBAIC0zMDIsNDMgKzM4Miw3MiBAQAogIwogIyBzaGFyZWQgb3B0aW9ucwogIwotQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVFfUFJPQ19JTlRGPXkKKyMgQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVFfUFJPQ19JTlRGIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9TUEVFRFNURVBfTElCIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfSURMRT15CitDT05GSUdfQ1BVX0lETEVfR09WX0xBRERFUj15CitDT05GSUdfQ1BVX0lETEVfR09WX01FTlU9eQogCiAjCi0jIEJ1cyBvcHRpb25zIChQQ0ksIFBDTUNJQSwgRUlTQSwgTUNBLCBJU0EpCisjIEJ1cyBvcHRpb25zIChQQ0kgZXRjLikKICMKIENPTkZJR19QQ0k9eQogIyBDT05GSUdfUENJX0dPQklPUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0lfR09NTUNPTkZJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0lfR09ESVJFQ1QgaXMgbm90IHNldAogQ09ORklHX1BDSV9HT0FOWT15CisjIENPTkZJR19QQ0lfR09PTFBDIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfQklPUz15CiBDT05GSUdfUENJX0RJUkVDVD15CiBDT05GSUdfUENJX01NQ09ORklHPXkKLSMgQ09ORklHX1BDSUVQT1JUQlVTIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfRE9NQUlOUz15CitDT05GSUdfUENJRVBPUlRCVVM9eQorIyBDT05GSUdfSE9UUExVR19QQ0lfUENJRSBpcyBub3Qgc2V0CitDT05GSUdfUENJRUFFUj15CisjIENPTkZJR19QQ0lFQVNQTSBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogQ09ORklHX1BDSV9NU0k9eQorIyBDT05GSUdfUENJX0xFR0FDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfSFRfSVJRIGlzIG5vdCBzZXQKK0NPTkZJR19IVF9JUlE9eQogQ09ORklHX0lTQV9ETUFfQVBJPXkKICMgQ09ORklHX0lTQSBpcyBub3Qgc2V0CiAjIENPTkZJR19NQ0EgaXMgbm90IHNldAogIyBDT05GSUdfU0N4MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX09MUEMgaXMgbm90IHNldAogQ09ORklHX0s4X05CPXkKK0NPTkZJR19QQ0NBUkQ9eQorIyBDT05GSUdfUENNQ0lBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUE9eQorQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfUENNQ0lBX0lPQ1RMPXkKK0NPTkZJR19DQVJEQlVTPXkKIAogIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0CisjIFBDLWNhcmQgYnJpZGdlcwogIwotIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19ZRU5UQT15CitDT05GSUdfWUVOVEFfTzI9eQorQ09ORklHX1lFTlRBX1JJQ09IPXkKK0NPTkZJR19ZRU5UQV9UST15CitDT05GSUdfWUVOVEFfRU5FX1RVTkU9eQorQ09ORklHX1lFTlRBX1RPU0hJQkE9eQorIyBDT05GSUdfUEQ2NzI5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0k4MjA5MiBpcyBub3Qgc2V0CitDT05GSUdfUENDQVJEX05PTlNUQVRJQz15CitDT05GSUdfSE9UUExVR19QQ0k9eQorIyBDT05GSUdfSE9UUExVR19QQ0lfRkFLRSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9JQk0gaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfQUNQSSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9DUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX1NIUEMgaXMgbm90IHNldAogCiAjCi0jIEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzCisjIEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzIC8gRW11bGF0aW9ucwogIwogQ09ORklHX0JJTkZNVF9FTEY9eQogIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAotIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorQ09ORklHX0JJTkZNVF9NSVNDPXkKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zNDksNTkgKzQ1OCwxNDIgQEAKICMgTmV0d29ya2luZyBvcHRpb25zCiAjCiBDT05GSUdfUEFDS0VUPXkKLSMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19QQUNLRVRfTU1BUD15CiBDT05GSUdfVU5JWD15CiBDT05GSUdfWEZSTT15Ci0jIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorQ09ORklHX1hGUk1fVVNFUj15CiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKIENPTkZJR19JUF9NVUxUSUNBU1Q9eQotIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorQ09ORklHX0FTS19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9GSUJfVFJJRSBpcyBub3Qgc2V0CiBDT05GSUdfSVBfRklCX0hBU0g9eQotQ09ORklHX0lQX1BOUD15Ci1DT05GSUdfSVBfUE5QX0RIQ1A9eQotIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSD15CitDT05GSUdfSVBfUk9VVEVfVkVSQk9TRT15CisjIENPTkZJR19JUF9QTlAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX01ST1VURSBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVJPVVRFPXkKK0NPTkZJR19JUF9QSU1TTV9WMT15CitDT05GSUdfSVBfUElNU01fVjI9eQogIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CitDT05GSUdfU1lOX0NPT0tJRVM9eQogIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUX1RVTk5FTD15Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUX0RJQUc9eQotQ09ORklHX0lORVRfVENQX0RJQUc9eQotIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX0lORVRfTFJPPXkKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQURWQU5DRUQ9eQorIyBDT05GSUdfVENQX0NPTkdfQklDIGlzIG5vdCBzZXQKIENPTkZJR19UQ1BfQ09OR19DVUJJQz15CisjIENPTkZJR19UQ1BfQ09OR19XRVNUV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hTVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hZQkxBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1ZFR0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1NDQUxBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0xQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1ZFTk8gaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfWUVBSCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19JTExJTk9JUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0JJQyBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DVUJJQz15CisjIENPTkZJR19ERUZBVUxUX0hUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9WRUdBUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1dFU1RXT09EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfUkVOTyBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCi0jIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfTUQ1U0lHPXkKKyMgQ09ORklHX0lQX1ZTIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2PXkKICMgQ09ORklHX0lQVjZfUFJJVkFDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfT1BUSU1JU1RJQ19EQUQgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfQUggaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfRVNQIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9BSD15CitDT05GSUdfSU5FVDZfRVNQPXkKICMgQ09ORklHX0lORVQ2X0lQQ09NUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01JUDYgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUNl9YRlJNX01PREVfVFJBTlNQT1JUPXkKIENPTkZJR19JTkVUNl9YRlJNX01PREVfVFVOTkVMPXkKLSMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAorQ09ORklHX05FVExBQkVMPXkKK0NPTkZJR19ORVRXT1JLX1NFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUj15CisjIENPTkZJR19ORVRGSUxURVJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSX0FEVkFOQ0VEIGlzIG5vdCBzZXQKKworIworIyBDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkVURklMVEVSX05FVExJTks9eQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0xPRz15CitDT05GSUdfTkZfQ09OTlRSQUNLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0VDTUFSSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX0ZUUD15CitDT05GSUdfTkZfQ09OTlRSQUNLX0lSQz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1NJUD15CitDT05GSUdfTkZfQ1RfTkVUTElOSz15CitDT05GSUdfTkVURklMVEVSX1hUQUJMRVM9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NPTk5TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE1TUz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NPTk5UUkFDSz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QT0xJQ1k9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFURT15CisKKyMKKyMgSVA6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfQ09OTlRSQUNLX0lQVjQ9eQorQ09ORklHX05GX0NPTk5UUkFDS19QUk9DX0NPTVBBVD15CitDT05GSUdfSVBfTkZfSVBUQUJMRVM9eQorQ09ORklHX0lQX05GX0ZJTFRFUj15CitDT05GSUdfSVBfTkZfVEFSR0VUX1JFSkVDVD15CitDT05GSUdfSVBfTkZfVEFSR0VUX0xPRz15CitDT05GSUdfSVBfTkZfVEFSR0VUX1VMT0c9eQorQ09ORklHX05GX05BVD15CitDT05GSUdfTkZfTkFUX05FRURFRD15CitDT05GSUdfSVBfTkZfVEFSR0VUX01BU1FVRVJBREU9eQorQ09ORklHX05GX05BVF9GVFA9eQorQ09ORklHX05GX05BVF9JUkM9eQorIyBDT05GSUdfTkZfTkFUX1RGVFAgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX0FNQU5EQSBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfUFBUUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfSDMyMyBpcyBub3Qgc2V0CitDT05GSUdfTkZfTkFUX1NJUD15CitDT05GSUdfSVBfTkZfTUFOR0xFPXkKKworIworIyBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0NPTk5UUkFDS19JUFY2PXkKK0NPTkZJR19JUDZfTkZfSVBUQUJMRVM9eQorQ09ORklHX0lQNl9ORl9NQVRDSF9JUFY2SEVBREVSPXkKK0NPTkZJR19JUDZfTkZfRklMVEVSPXkKK0NPTkZJR19JUDZfTkZfVEFSR0VUX0xPRz15CitDT05GSUdfSVA2X05GX1RBUkdFVF9SRUpFQ1Q9eQorQ09ORklHX0lQNl9ORl9NQU5HTEU9eQogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJUEMgaXMgbm90IHNldApAQCAtNDA5LDYgKzYwMSw3IEBACiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldAogIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorQ09ORklHX0xMQz15CiAjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CkBAIC00MTYsMjggKzYwOSw5OSBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSEVEPXkKIAogIwotIyBRb1MgYW5kL29yIGZhaXIgcXVldWVpbmcKKyMgUXVldWVpbmcvU2NoZWR1bGluZwogIwotIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfQ0JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSFRCIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSEZTQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1BSSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9SUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1JFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1RFUUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9UQkYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9HUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfRFNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfTkVURU0gaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9JTkdSRVNTIGlzIG5vdCBzZXQKKworIworIyBDbGFzc2lmaWNhdGlvbgorIworQ09ORklHX05FVF9DTFM9eQorIyBDT05GSUdfTkVUX0NMU19CQVNJQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1RDSU5ERVggaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19ST1VURTQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19GVyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JTVlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19SU1ZQNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX0ZMT1cgaXMgbm90IHNldAorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05FVF9FTUFUQ0hfU1RBQ0s9MzIKKyMgQ09ORklHX05FVF9FTUFUQ0hfQ01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfTkJZVEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9NRVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfVEVYVCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0NMU19BQ1Q9eQorIyBDT05GSUdfTkVUX0FDVF9QT0xJQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9HQUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfTUlSUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfSVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfTkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfUEVESVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9TSU1QIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfU0NIX0ZJRk89eQogCiAjCiAjIE5ldHdvcmsgdGVzdGluZwogIwogIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAotIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorQ09ORklHX0hBTVJBRElPPXkKKworIworIyBQYWNrZXQgUmFkaW8gcHJvdG9jb2xzCisjCisjIENPTkZJR19BWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKK0NPTkZJR19GSUJfUlVMRVM9eQogCiAjCiAjIFdpcmVsZXNzCiAjCi0jIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAotIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorQ09ORklHX0NGRzgwMjExPXkKK0NPTkZJR19OTDgwMjExPXkKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX01BQzgwMjExPXkKKworIworIyBSYXRlIGNvbnRyb2wgYWxnb3JpdGhtIHNlbGVjdGlvbgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfTk9ORSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZWN0aW5nICd5JyBmb3IgYW4gYWxnb3JpdGhtIHdpbGwKKyMKKworIworIyBidWlsZCB0aGUgYWxnb3JpdGhtIGludG8gbWFjODAyMTEuCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0icGlkIgorQ09ORklHX01BQzgwMjExX1JDX1BJRD15CisjIENPTkZJR19NQUM4MDIxMV9NRVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NQUM4MDIxMV9MRURTPXkKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfUEFDS0VUX0FMSUdOTUVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CkBAIC00NDksMTMgKzcxMywxNSBAQAogIwogIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiAjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgogQ09ORklHX1NUQU5EQUxPTkU9eQogQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQogQ09ORklHX0ZXX0xPQURFUj15CiAjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19ERVZSRVM9eQogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19DT05ORUNUT1I9eQorQ09ORklHX1BST0NfRVZFTlRTPXkKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19QTlA9eQpAQCAtNDY2LDcgKzczMiw3IEBACiAjCiBDT05GSUdfUE5QQUNQST15CiBDT05GSUdfQkxLX0RFVj15Ci1DT05GSUdfQkxLX0RFVl9GRD15CisjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKQEAgLTQ3OSw4ICs3NDUsOCBAQAogIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2Ci1DT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1JBTV9TSVpFPTE2Mzg0CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiBDT05GSUdfTUlTQ19ERVZJQ0VTPXkKQEAgLTQ4OSw3MyArNzU1LDE3IEBACiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAogIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDRVJfV01JIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FTVVNfTEFQVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVSklUU1VfTEFQVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDMTEwMF9XTUkgaXMgbm90IHNldAorIyBDT05GSUdfTVNJX0xBUFRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TT05ZX0xBUFRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19USElOS1BBRF9BQ1BJIGlzIG5vdCBzZXQKLUNPTkZJR19JREU9eQotQ09ORklHX0JMS19ERVZfSURFPXkKLQotIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKLSMKLSMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IRF9JREUgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRElTSz15Ci1DT05GSUdfSURFRElTS19NVUxUSV9NT0RFPXkKLUNPTkZJR19CTEtfREVWX0lERUNEPXkKLSMgQ09ORklHX0JMS19ERVZfSURFVEFQRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERUZMT1BQWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERVNDU0kgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFQUNQST15Ci0jIENPTkZJR19JREVfVEFTS19JT0NUTCBpcyBub3Qgc2V0Ci1DT05GSUdfSURFX1BST0NfRlM9eQotCi0jCi0jIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKLSMKLUNPTkZJR19JREVfR0VORVJJQz15Ci0jIENPTkZJR19CTEtfREVWX0NNRDY0MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERVBOUCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVQQ0k9eQotIyBDT05GSUdfSURFUENJX1NIQVJFX0lSUSBpcyBub3Qgc2V0Ci1DT05GSUdfSURFUENJX1BDSUJVU19PUkRFUj15Ci0jIENPTkZJR19CTEtfREVWX09GRkJPQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfR0VORVJJQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX09QVEk2MjEgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9SWjEwMDAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRE1BX1BDST15Ci0jIENPTkZJR19CTEtfREVWX0lERURNQV9GT1JDRUQgaXMgbm90IHNldAotIyBDT05GSUdfSURFRE1BX09OTFlESVNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQUVDNjJYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0FMSTE1WDMgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfQU1ENzRYWD15Ci0jIENPTkZJR19CTEtfREVWX0FUSUlYUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NNRDY0WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RSSUZMRVggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DWTgyQzY5MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NTNTUyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NTNTUzMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NTNTUzNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hQVDM0WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hQVDM2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0pNSUNST04gaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TQzEyMDAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfUElJWD15Ci0jIENPTkZJR19CTEtfREVWX0lUODIxMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lUODIxWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX05TODc0MTUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9PTEQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9ORVcgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TVldLUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NJSU1BR0UgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TSVM1NTEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0xDOTBFNjYgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UUk0yOTAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURNQT15Ci0jIENPTkZJR19JREVETUFfSVZCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAorIyBDT05GSUdfSU5URUxfTUVOTE9XIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKIAogIwogIyBTQ1NJIGRldmljZSBzdXBwb3J0CkBAIC01NjQsOCArNzc0LDggQEAKIENPTkZJR19TQ1NJPXkKIENPTkZJR19TQ1NJX0RNQT15CiAjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9ORVRMSU5LPXkKLSMgQ09ORklHX1NDU0lfUFJPQ19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CiAKICMKICMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKQEAgLTU3NCw3ICs3ODQsNyBAQAogIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfU1I9eQotIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1JfVkVORE9SPXkKIENPTkZJR19DSFJfREVWX1NHPXkKICMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKIApAQCAtNTgyLDcgKzc5Miw3IEBACiAjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcwogIwogIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfQ09OU1RBTlRTPXkKICMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAogQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KQEAgLTU5MSw4MSArODAxLDM3IEBACiAjIFNDU0kgVHJhbnNwb3J0cwogIwogQ09ORklHX1NDU0lfU1BJX0FUVFJTPXkKLUNPTkZJR19TQ1NJX0ZDX0FUVFJTPXkKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NBU19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgbG93LWxldmVsIGRyaXZlcnMKLSMKLSMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQ9eQotIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX0FJQzdYWFg9eQotQ09ORklHX0FJQzdYWFhfQ01EU19QRVJfREVWSUNFPTMyCi1DT05GSUdfQUlDN1hYWF9SRVNFVF9ERUxBWV9NUz01MDAwCi1DT05GSUdfQUlDN1hYWF9ERUJVR19FTkFCTEU9eQotQ09ORklHX0FJQzdYWFhfREVCVUdfTUFTSz0wCi1DT05GSUdfQUlDN1hYWF9SRUdfUFJFVFRZX1BSSU5UPXkKLSMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAotQ09ORklHX1NDU0lfQUlDNzlYWD15Ci1DT05GSUdfQUlDNzlYWF9DTURTX1BFUl9ERVZJQ0U9MzIKLUNPTkZJR19BSUM3OVhYX1JFU0VUX0RFTEFZX01TPTQwMDAKLSMgQ09ORklHX0FJQzc5WFhfREVCVUdfRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19BSUM3OVhYX0RFQlVHX01BU0s9MAotIyBDT05GSUdfQUlDNzlYWF9SRUdfUFJFVFRZX1BSSU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDOTRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RQVF9JMk8gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BRFZBTlNZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FSQ01TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0hQVElPUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0JVU0xPR0lDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9FQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0dEVEggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUxfUENNQ0lBIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfQUNQST15CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfQUhDST15Ci1DT05GSUdfU0FUQV9TVlc9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX1BJSVg9eQogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9OVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKICMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX1NJTD15Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX1ZJQT15CisjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FDUEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAotIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorQ09ORklHX1BBVEFfQU1EPXkKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKQEAgLTY3Myw2ICs4MzksNyBAQAogIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9DUzU1MzUgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzYgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CkBAIC02ODYsMTEgKzg1MywxNCBAQAogIyBDT05GSUdfUEFUQV9UUklGTEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTUFSVkVMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CitDT05GSUdfUEFUQV9PTERQSUlYPXkKICMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUENNQ0lBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldApAQCAtNzAyLDY1ICs4NzIsNDIgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiBDT05GSUdfTUQ9eQotIyBDT05GSUdfQkxLX0RFVl9NRCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9NRD15CisjIENPTkZJR19NRF9MSU5FQVIgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDAgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDEgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQ0NTYgaXMgbm90IHNldAorIyBDT05GSUdfTURfTVVMVElQQVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX0ZBVUxUWSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9ETT15CiAjIENPTkZJR19ETV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9DUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9TTkFQU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETV9NSVJST1IgaXMgbm90IHNldAotIyBDT05GSUdfRE1fWkVSTyBpcyBub3Qgc2V0CitDT05GSUdfRE1fTUlSUk9SPXkKK0NPTkZJR19ETV9aRVJPPXkKICMgQ09ORklHX0RNX01VTFRJUEFUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9ERUxBWSBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX0ZVU0lPTj15Ci1DT05GSUdfRlVTSU9OX1NQST15Ci0jIENPTkZJR19GVVNJT05fRkMgaXMgbm90IHNldAotIyBDT05GSUdfRlVTSU9OX1NBUyBpcyBub3Qgc2V0Ci1DT05GSUdfRlVTSU9OX01BWF9TR0U9MTI4Ci0jIENPTkZJR19GVVNJT05fQ1RMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNX1VFVkVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCiAjCiAjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKICMKICMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFMTM5ND15Ci0KLSMKLSMgU3Vic3lzdGVtIE9wdGlvbnMKLSMKLSMgQ09ORklHX0lFRUUxMzk0X1ZFUkJPU0VERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgQ29udHJvbGxlcnMKLSMKLQotIwotIyBUZXhhcyBJbnN0cnVtZW50cyBQQ0lMeW54IHJlcXVpcmVzIEkyQwotIwotQ09ORklHX0lFRUUxMzk0X09IQ0kxMzk0PXkKLQotIwotIyBQcm90b2NvbHMKLSMKLSMgQ09ORklHX0lFRUUxMzk0X1ZJREVPMTM5NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9TQlAyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0VUSDEzOTRfUk9NX0VOVFJZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0VUSDEzOTQgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRFYxMzk0IGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFMTM5NF9SQVdJTz15CisjIENPTkZJR19JRUVFMTM5NCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMk8gaXMgbm90IHNldAogQ09ORklHX01BQ0lOVE9TSF9EUklWRVJTPXkKLSMgQ09ORklHX01BQ19FTVVNT1VTRUJUTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDX0VNVU1PVVNFQlROPXkKIENPTkZJR19ORVRERVZJQ0VTPXkKLUNPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUU9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lGQiBpcyBub3Qgc2V0CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9TQjEwMDAgaXMgbm90IHNldAogIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CkBAIC03NzAsMzggKzkxNyw0MCBAQAogIyBDT05GSUdfU1VOR0VNIGlzIG5vdCBzZXQKICMgQ09ORklHX0NBU1NJTkkgaXMgbm90IHNldAogQ09ORklHX05FVF9WRU5ET1JfM0NPTT15Ci1DT05GSUdfVk9SVEVYPXkKKyMgQ09ORklHX1ZPUlRFWCBpcyBub3Qgc2V0CiAjIENPTkZJR19UWVBIT09OIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfVFVMSVA9eQogIyBDT05GSUdfREUyMTA0WCBpcyBub3Qgc2V0Ci1DT05GSUdfVFVMSVA9eQotIyBDT05GSUdfVFVMSVBfTVdJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RVTElQX01NSU8gaXMgbm90IHNldAotIyBDT05GSUdfVFVMSVBfTkFQSSBpcyBub3Qgc2V0CisjIENPTkZJR19UVUxJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERTRYNSBpcyBub3Qgc2V0CiAjIENPTkZJR19XSU5CT05EXzg0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETTkxMDIgaXMgbm90IHNldAogIyBDT05GSUdfVUxJNTI2WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfWElSQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FEQVBURUNfU1RBUkZJUkUgaXMgbm90IHNldAotQ09ORklHX0I0ND15CisjIENPTkZJR19CNDQgaXMgbm90IHNldAogQ09ORklHX0ZPUkNFREVUSD15CiAjIENPTkZJR19GT1JDRURFVEhfTkFQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ER1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKIENPTkZJR19FMTAwPXkKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CiAjIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKICMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKLUNPTkZJR184MTM5Q1A9eQorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKIENPTkZJR184MTM5VE9PPXkKLSMgQ09ORklHXzgxMzlUT09fUElPIGlzIG5vdCBzZXQKK0NPTkZJR184MTM5VE9PX1BJTz15CiAjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5VE9PXzgxMjkgaXMgbm90IHNldAogIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtODE0LDM0ICs5NjMsNzUgQEAKIENPTkZJR19FMTAwMD15CiAjIENPTkZJR19FMTAwMF9OQVBJIGlzIG5vdCBzZXQKICMgQ09ORklHX0UxMDAwX0RJU0FCTEVfUEFDS0VUX1NQTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CisjIENPTkZJR19JUDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUdCIGlzIG5vdCBzZXQKICMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAogIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0CiAjIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAotQ09ORklHX1I4MTY5PXkKLSMgQ09ORklHX1I4MTY5X05BUEkgaXMgbm90IHNldAorIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogQ09ORklHX1NLWTI9eQorIyBDT05GSUdfU0tZMl9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogQ09ORklHX1RJR09OMz15Ci1DT05GSUdfQk5YMj15CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKICMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0CiBDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAogIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0CisjIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKICMgQ09ORklHX1MySU8gaXMgbm90IHNldAogIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAogIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0CisjIENPTkZJR19OSVUgaXMgbm90IHNldAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAorQ09ORklHX1RSPXkKKyMgQ09ORklHX0lCTU9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTUxTIGlzIG5vdCBzZXQKKyMgQ09ORklHXzNDMzU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RNUzM4MFRSIGlzIG5vdCBzZXQKIAogIwogIyBXaXJlbGVzcyBMQU4KICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl84MDIxMT15CisjIENPTkZJR19QQ01DSUFfUkFZQ1MgaXMgbm90IHNldAorIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkVSVEFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FJUk8gaXMgbm90IHNldAorIyBDT05GSUdfSEVSTUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTUVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FJUk9fQ1MgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1dMMzUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19QUklTTTU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRDEyMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVF9STkRJU19XTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4NyBpcyBub3Qgc2V0CisjIENPTkZJR19BRE04MjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1A1NF9DT01NT04gaXMgbm90IHNldAorQ09ORklHX0FUSDVLPXkKKyMgQ09ORklHX0FUSDVLX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRkkgaXMgbm90IHNldAorIyBDT05GSUdfSVdMQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSVdMNDk2NSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0wzOTQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDMgaXMgbm90IHNldAorIyBDT05GSUdfQjQzTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pEMTIxMVJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMCBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTg1MCwxNiArMTA0MCwyNyBAQAogIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUX01JSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENNQ0lBPXkKKyMgQ09ORklHX1BDTUNJQV8zQzU4OSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfM0M1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX0ZNVkoxOFggaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1BDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9OTUNMQU4gaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1NNQzkxQzkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9YSVJDMlBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9BWE5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfSUJNVFIgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorQ09ORklHX0ZEREk9eQorIyBDT05GSUdfREVGWFggaXMgbm90IHNldAorIyBDT05GSUdfU0tGUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKIENPTkZJR19ORVRDT05TT0xFPXkKKyMgQ09ORklHX05FVENPTlNPTEVfRFlOQU1JQyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUUE9MTD15CiAjIENPTkZJR19ORVRQT0xMX1RSQVAgaXMgbm90IHNldAogQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVI9eQpAQCAtODcwLDE4ICsxMDcxLDE3IEBACiAjIElucHV0IGRldmljZSBzdXBwb3J0CiAjCiBDT05GSUdfSU5QVVQ9eQotIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9GRl9NRU1MRVNTPXkKK0NPTkZJR19JTlBVVF9QT0xMREVWPXkKIAogIwogIyBVc2VybGFuZCBpbnRlcmZhY2VzCiAjCiBDT05GSUdfSU5QVVRfTU9VU0VERVY9eQotQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiAjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAogQ09ORklHX0lOUFVUX0VWREVWPXkKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtOTA2LDE3ICsxMTA2LDYzIEBACiAjIENPTkZJR19NT1VTRV9TRVJJQUwgaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9WU1hYWEFBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9KT1lTVElDSz15CisjIENPTkZJR19KT1lTVElDS19BTkFMT0cgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQTNEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0FESSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19DT0JSQSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HRjJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dSSVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1JJUF9NUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HVUlMTEVNT1QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSU5URVJBQ1QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU0lERVdJTkRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19UTURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0lGT1JDRSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX01BR0VMTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NQQUNFT1JCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NQQUNFQkFMTCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TVElOR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1RXSURKT1kgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfWkhFTkhVQSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19KT1lEVU1QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1hQQUQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RBQkxFVD15CisjIENPTkZJR19UQUJMRVRfVVNCX0FDRUNBRCBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0FJUFRFSyBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0dUQ08gaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9LQlRBQiBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX1dBQ09NIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CisjIENPTkZJR19UT1VDSFNDUkVFTl9GVUpJVFNVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0VMTyBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTUs3MTIgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01JU0M9eQorIyBDT05GSUdfSU5QVVRfUENTUEtSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FQQU5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9XSVNUUk9OX0JUTlMgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRMQVNfQlROUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVElfUkVNT1RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUSV9SRU1PVEUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPV0VSTUFURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9ZRUFMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1VJTlBVVCBpcyBub3Qgc2V0CiAKICMKICMgSGFyZHdhcmUgSS9PIHBvcnRzCiAjCiBDT05GSUdfU0VSSU89eQogQ09ORklHX1NFUklPX0k4MDQyPXkKLSMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAorQ09ORklHX1NFUklPX1NFUlBPUlQ9eQogIyBDT05GSUdfU0VSSU9fQ1Q4MkM3MTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VSSU9fUENJUFMyIGlzIG5vdCBzZXQKIENPTkZJR19TRVJJT19MSUJQUzI9eQpAQCAtOTI5LDggKzExNzUsMjYgQEAKIENPTkZJR19WVD15CiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkc9eQorQ09ORklHX0RFVktNRU09eQorQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CisjIENPTkZJR19DT01QVVRPTkUgaXMgbm90IHNldAorIyBDT05GSUdfUk9DS0VUUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19DWUNMQURFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ESUdJRVBDQSBpcyBub3Qgc2V0CisjIENPTkZJR19NT1hBX0lOVEVMTElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PWEFfU01BUlRJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JU0kgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTksgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTktNUCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOS19HVCBpcyBub3Qgc2V0CisjIENPTkZJR19OX0hETEMgaXMgbm90IHNldAorIyBDT05GSUdfUklTQ09NOCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldAorIyBDT05GSUdfU1ggaXMgbm90IHNldAorIyBDT05GSUdfUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUQUxEUlYgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIAogIwogIyBTZXJpYWwgZHJpdmVycwpAQCAtOTQwLDkgKzEyMDQsMTQgQEAKIENPTkZJR19GSVhfRUFSTFlDT05fTUVNPXkKIENPTkZJR19TRVJJQUxfODI1MF9QQ0k9eQogQ09ORklHX1NFUklBTF84MjUwX1BOUD15Ci1DT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAorIyBDT05GSUdfU0VSSUFMXzgyNTBfQ1MgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTMyCiBDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz00Ci0jIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQ9eQorQ09ORklHX1NFUklBTF84MjUwX01BTllfUE9SVFM9eQorQ09ORklHX1NFUklBTF84MjUwX1NIQVJFX0lSUT15CitDT05GSUdfU0VSSUFMXzgyNTBfREVURUNUX0lSUT15CitDT05GSUdfU0VSSUFMXzgyNTBfUlNBPXkKIAogIwogIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CkBAIC05NTEsMjAgKzEyMjAsMTY4IEBACiBDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CiAjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKIENPTkZJR19VTklYOThfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15Ci1DT05GSUdfSFdfUkFORE9NX0lOVEVMPXkKLUNPTkZJR19IV19SQU5ET01fQU1EPXkKKyMgQ09ORklHX0hXX1JBTkRPTV9JTlRFTCBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET01fQU1EIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET01fR0VPREU9eQogQ09ORklHX0hXX1JBTkRPTV9WSUE9eQotIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotQ09ORklHX1JUQz15CitDT05GSUdfTlZSQU09eQogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfU09OWVBJIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKKyMKKyMgQ09ORklHX1NZTkNMSU5LX0NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19DQVJETUFOXzQwNDAgaXMgbm90IHNldAorIyBDT05GSUdfSVBXSVJFTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19NV0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQzg3MzZ4X0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfTlNDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfQ1M1NTM1X0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CitDT05GSUdfSFBFVD15CisjIENPTkZJR19IUEVUX1JUQ19JUlEgaXMgbm90IHNldAorIyBDT05GSUdfSFBFVF9NTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTkdDSEVDS19USU1FUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFTENMT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZQT1JUPXkKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1NjMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDc1NiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1EODExMSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX0k4MDE9eQorIyBDT05GSUdfSTJDX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDeDIwMF9BQ0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzU1OTUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfRFMxNjgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKK0NPTkZJR19QT1dFUl9TVVBQTFk9eQorIyBDT05GSUdfUE9XRVJfU1VQUExZX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQV9QT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19CQVRURVJZX0RTMjc2MCBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfVEhFUk1BTD15CitDT05GSUdfV0FUQ0hET0c9eQorIyBDT05GSUdfV0FUQ0hET0dfTk9XQVlPVVQgaXMgbm90IHNldAorCisjCisjIFdhdGNoZG9nIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19TT0ZUX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDUVVJUkVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FEVkFOVEVDSF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQUxJTTE1MzVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FMSU03MTAxX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQzUyMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfRVVST1RFQ0hfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCNzAwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1BU1IgaXMgbm90IHNldAorIyBDT05GSUdfV0FGRVJfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0k2MzAwRVNCX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JVENPX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JVDg3MTJGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19IUF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQzEyMDBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDODc0MTNfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHXzYwWFhfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NCQzgzNjBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NCQzcyNDBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVTVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0MzN0I3ODdfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4MzYyN0hGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM2OTdIRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzODc3Rl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzOTc3Rl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSFpfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NCQ19FUFhfQzNfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFBDSS1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfUENJUENXQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19XRFRQQ0kgaXMgbm90IHNldAorCisjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworQ09ORklHX0RBQj15CisjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCiBDT05GSUdfQUdQPXkKICMgQ09ORklHX0FHUF9BTEkgaXMgbm90IHNldAogIyBDT05GSUdfQUdQX0FUSSBpcyBub3Qgc2V0CkBAIC05NzYsNjQgKzEzOTMsMTAyIEBACiAjIENPTkZJR19BR1BfU1dPUktTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FHUF9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfQUdQX0VGRklDRU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NV0FWRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQzg3MzZ4X0dQSU8gaXMgbm90IHNldAotIyBDT05GSUdfTlNDX0dQSU8gaXMgbm90IHNldAotIyBDT05GSUdfQ1M1NTM1X0dQSU8gaXMgbm90IHNldAotQ09ORklHX1JBV19EUklWRVI9eQotQ09ORklHX01BWF9SQVdfREVWUz0yNTYKLUNPTkZJR19IUEVUPXkKLSMgQ09ORklHX0hQRVRfUlRDX0lSUSBpcyBub3Qgc2V0Ci1DT05GSUdfSFBFVF9NTUFQPXkKLSMgQ09ORklHX0hBTkdDSEVDS19USU1FUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RFTENMT0NLIGlzIG5vdCBzZXQKLUNPTkZJR19ERVZQT1JUPXkKLSMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfRFJNPXkKKyMgQ09ORklHX0RSTV9UREZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9SMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRFJNX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX0k4MzAgaXMgbm90IHNldAorQ09ORklHX0RSTV9JOTE1PXkKKyMgQ09ORklHX0RSTV9NR0EgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CitDT05GSUdfRkJfREVGRVJSRURfSU89eQorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorQ09ORklHX0ZCX01PREVfSEVMUEVSUz15CitDT05GSUdfRkJfVElMRUJMSVRUSU5HPXkKIAogIwotIyBTUEkgc3VwcG9ydAorIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycwogIwotIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfVzEgaXMgbm90IHNldAotIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKLQotIwotIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAotCi0jCi0jIE11bHRpbWVkaWEgZGV2aWNlcwotIwotIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKLUNPTkZJR19EQUI9eQotIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0Ci0KLSMKLSMgR3JhcGhpY3Mgc3VwcG9ydAotIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WR0ExNiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9VVkVTQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WRVNBIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9FRkk9eQorIyBDT05GSUdfRkJfSU1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9ONDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0hHQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0xFODA1NzggaXMgbm90IHNldAorIyBDT05GSUdfRkJfSU5URUwgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFUUk9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkxMjggaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTkVPTUFHSUMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfS1lSTyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl8zREZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZPT0RPTzEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVlQ4NjIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkxBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1BNMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9HRU9ERSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQ9eQorIyBDT05GSUdfTENEX0NMQVNTX0RFVklDRSBpcyBub3Qgc2V0CitDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRT15CisjIENPTkZJR19CQUNLTElHSFRfQ09SR0kgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX1BST0dFQVIgaXMgbm90IHNldAogCiAjCiAjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKICMKICMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQiBpcyBub3Qgc2V0CiAKICMKICMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CiAjCiBDT05GSUdfVkdBX0NPTlNPTEU9eQogQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0s9eQotQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0tfU0laRT0xMjgKK0NPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLX1NJWkU9NjQKIENPTkZJR19WSURFT19TRUxFQ1Q9eQogQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfTE9HTz15CisjIENPTkZJR19MT0dPX0xJTlVYX01PTk8gaXMgbm90IHNldAorIyBDT05GSUdfTE9HT19MSU5VWF9WR0ExNiBpcyBub3Qgc2V0CitDT05GSUdfTE9HT19MSU5VWF9DTFVUMjI0PXkKIAogIwogIyBTb3VuZApAQCAtMTA0MywzMyArMTQ5OCwxNjcgQEAKICMKICMgQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlCiAjCi0jIENPTkZJR19TTkQgaXMgbm90IHNldAorQ09ORklHX1NORD15CitDT05GSUdfU05EX1RJTUVSPXkKK0NPTkZJR19TTkRfUENNPXkKK0NPTkZJR19TTkRfSFdERVA9eQorQ09ORklHX1NORF9TRVFVRU5DRVI9eQorQ09ORklHX1NORF9TRVFfRFVNTVk9eQorQ09ORklHX1NORF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPXkKK0NPTkZJR19TTkRfUENNX09TUz15CitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CitDT05GSUdfU05EX1NFUVVFTkNFUl9PU1M9eQorQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUz15CitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CitDT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZTPXkKKyMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NORF9WTUFTVEVSPXkKKworIworIyBHZW5lcmljIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9QQ1NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklSTUlESSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVRQQVYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NFUklBTF9VMTY1NTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01QVTQwMSBpcyBub3Qgc2V0CisKKyMKKyMgUENJIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9BRDE4ODkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMUzMwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxTNDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxJNTQ1MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVElJWFBfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FXMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVpUMzMyOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQlQ4N1ggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NBMDEwNiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ01JUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9PWFlHRU4gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDI4MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M0NlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNTUzNUFVRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RBUkxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0dJTkEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTEFZTEEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTU9OQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUlBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FQ0hPM0cgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPSU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0RKIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTVUxMEsxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTVUxMEsxWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU5TMTM3MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU5TMTM3MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTM4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FUzE5NjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0ZNODAxIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfSERBX0lOVEVMPXkKK0NPTkZJR19TTkRfSERBX0hXREVQPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1JFQUxURUs9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQU5BTE9HPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1NJR01BVEVMPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1ZJQT15CitDT05GSUdfU05EX0hEQV9DT0RFQ19BVElIRE1JPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NPTkVYQU5UPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NNRURJQT15CitDT05GSUdfU05EX0hEQV9DT0RFQ19TSTMwNTQ9eQorQ09ORklHX1NORF9IREFfR0VORVJJQz15CisjIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hEU1AgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hEU1BNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ISUZJRVIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lDRTE3MTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lDRTE3MjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lOVEVMOFgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYME0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0tPUkcxMjEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NQUVTVFJPMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUlYQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9OTTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUENYSFIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JJUFRJREUgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUU5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTY1MiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU0lTNzAxOSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09OSUNWSUJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVFJJREVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklBODJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklBODJYWF9NT0RFTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklSVFVPU08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZYMjIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ZTUZQQ0kgaXMgbm90IHNldAorCisjCisjIFVTQiBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfVVNCX0FVRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9VU0JfVVNYMlkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0CisKKyMKKyMgUENNQ0lBIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9WWFBPQ0tFVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUERBVURJT0NGIGlzIG5vdCBzZXQKKworIworIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0CisjCisjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKKworIworIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMKKworIworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCisjCiAKICMKICMgT3BlbiBTb3VuZCBTeXN0ZW0KICMKLUNPTkZJR19TT1VORF9QUklNRT15Ci0jIENPTkZJR19TT1VORF9UUklERU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX01TTkRDTEFTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX01TTkRQSU4gaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfT1NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKIENPTkZJR19ISURfU1VQUE9SVD15CiBDT05GSUdfSElEPXkKLSMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSElEX0RFQlVHPXkKK0NPTkZJR19ISURSQVc9eQogCiAjCiAjIFVTQiBJbnB1dCBEZXZpY2VzCiAjCiBDT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LPXkKK0NPTkZJR19ISURfRkY9eQorQ09ORklHX0hJRF9QSUQ9eQorQ09ORklHX0xPR0lURUNIX0ZGPXkKKyMgQ09ORklHX0xPR0lSVU1CTEVQQUQyX0ZGIGlzIG5vdCBzZXQKK0NPTkZJR19QQU5USEVSTE9SRF9GRj15CitDT05GSUdfVEhSVVNUTUFTVEVSX0ZGPXkKK0NPTkZJR19aRVJPUExVU19GRj15CitDT05GSUdfVVNCX0hJRERFVj15CiBDT05GSUdfVVNCX1NVUFBPUlQ9eQogQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiBDT05GSUdfVVNCPXkKLSMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0RFQlVHPXkKK0NPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVM9eQogCiAjCiAjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKQEAgLTEwNzcsMTggKzE2NjYsMTggQEAKIENPTkZJR19VU0JfREVWSUNFRlM9eQogIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVNQRU5EPXkKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15Ci0jIENPTkZJR19VU0JfRUhDSV9TUExJVF9JU08gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldApAQCAtMTEyMSw4ICsxNzEwLDEwIEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTElCVVNVQUw9eQogCiAjCiAjIFVTQiBJbWFnaW5nIGRldmljZXMKQEAgLTExMzQsMTAgKzE3MjUsNiBAQAogIwogIyBVU0IgcG9ydCBkcml2ZXJzCiAjCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwogIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTExNjMsOTAgKzE3NTAsMTI1IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERTTCBtb2RlbSBzdXBwb3J0Ci0jCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0Ci0KLSMKLSMgTEVEIGRldmljZXMKLSMKLSMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CiAKICMKICMgTEVEIGRyaXZlcnMKICMKKyMgQ09ORklHX0xFRFNfQ0xFVk9fTUFJTCBpcyBub3Qgc2V0CiAKICMKICMgTEVEIFRyaWdnZXJzCiAjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorIyBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVCBpcyBub3Qgc2V0CisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAotIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CitDT05GSUdfRURBQz15CiAKICMKLSMgUmVhbCBUaW1lIENsb2NrCisjIFJlcG9ydGluZyBzdWJzeXN0ZW1zCiAjCi0jIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfRURBQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19FREFDX01NX0VEQUMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CisjIENPTkZJR19SVENfSENUT1NZUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAogCiAjCi0jIERNQSBFbmdpbmUgc3VwcG9ydAorIyBSVEMgaW50ZXJmYWNlcwogIwotIyBDT05GSUdfRE1BX0VOR0lORSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKIAogIwotIyBETUEgQ2xpZW50cworIyBJMkMgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9DTU9TPXkKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfRE1BREVWSUNFUz15CiAKICMKICMgRE1BIERldmljZXMKICMKLUNPTkZJR19WSVJUVUFMSVpBVElPTj15Ci0jIENPTkZJR19LVk0gaXMgbm90IHNldAorIyBDT05GSUdfSU5URUxfSU9BVERNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCi0jIFVzZXJzcGFjZSBJL08KKyMgRmlybXdhcmUgRHJpdmVycwogIwotIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VERCBpcyBub3Qgc2V0CitDT05GSUdfRUZJX1ZBUlM9eQorIyBDT05GSUdfREVMTF9SQlUgaXMgbm90IHNldAorIyBDT05GSUdfRENEQkFTIGlzIG5vdCBzZXQKK0NPTkZJR19ETUlJRD15CisjIENPTkZJR19JU0NTSV9JQkZUX0ZJTkQgaXMgbm90IHNldAogCiAjCiAjIEZpbGUgc3lzdGVtcwogIwotQ09ORklHX0VYVDJfRlM9eQotQ09ORklHX0VYVDJfRlNfWEFUVFI9eQotQ09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX0VYVDJfRlNfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRVhUM19GUz15CiBDT05GSUdfRVhUM19GU19YQVRUUj15CiBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GU19TRUNVUklUWT15CiAjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19KQkQ9eQogIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19GU19NQkNBQ0hFPXkKLUNPTkZJR19SRUlTRVJGU19GUz15Ci0jIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRUlTRVJGU19QUk9DX0lORk8gaXMgbm90IHNldAotQ09ORklHX1JFSVNFUkZTX0ZTX1hBVFRSPXkKLUNPTkZJR19SRUlTRVJGU19GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfUkVJU0VSRlNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CitDT05GSUdfUVVPVEE9eQorQ09ORklHX1FVT1RBX05FVExJTktfSU5URVJGQUNFPXkKKyMgQ09ORklHX1BSSU5UX1FVT1RBX1dBUk5JTkcgaXMgbm90IHNldAorIyBDT05GSUdfUUZNVF9WMSBpcyBub3Qgc2V0CitDT05GSUdfUUZNVF9WMj15CitDT05GSUdfUVVPVEFDVEw9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtMTI1Niw4ICsxODc4LDggQEAKICMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwogIwogQ09ORklHX0lTTzk2NjBfRlM9eQotIyBDT05GSUdfSk9MSUVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfSk9MSUVUPXkKK0NPTkZJR19aSVNPRlM9eQogIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtMTI3NSwxMyArMTg5NywxMyBAQAogIwogQ09ORklHX1BST0NfRlM9eQogQ09ORklHX1BST0NfS0NPUkU9eQorQ09ORklHX1BST0NfVk1DT1JFPXkKIENPTkZJR19QUk9DX1NZU0NUTD15CiBDT05GSUdfU1lTRlM9eQogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogQ09ORklHX0hVR0VUTEJGUz15CiBDT05GSUdfSFVHRVRMQl9QQUdFPXkKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTEyODksNiArMTkxMSw3IEBACiAjCiAjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUNSWVBUX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldApAQCAtMTI5NiwzMyArMTkxOSwxNSBAQAogIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIwotQ09ORklHX05GU19GUz15Ci1DT05GSUdfTkZTX1YzPXkKLSMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRD15Ci1DT05GSUdfTkZTRF9WMz15Ci0jIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfRVhQT1JURlM9eQotQ09ORklHX05GU19DT01NT049eQotQ09ORklHX1NVTlJQQz15Ci0jIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKKyMgQ09ORklHX05GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKICMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CkBAIC0xMzMyLDE0ICsxOTM3LDI2IEBACiAjCiAjIFBhcnRpdGlvbiBUeXBlcwogIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJUSVRJT05fQURWQU5DRUQ9eQorIyBDT05GSUdfQUNPUk5fUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19PU0ZfUEFSVElUSU9OPXkKK0NPTkZJR19BTUlHQV9QQVJUSVRJT049eQorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNfUEFSVElUSU9OPXkKIENPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCitDT05GSUdfQlNEX0RJU0tMQUJFTD15CitDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKK0NPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CisjIENPTkZJR19MRE1fUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TR0lfUEFSVElUSU9OPXkKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX1NVTl9QQVJUSVRJT049eQorQ09ORklHX0tBUk1BX1BBUlRJVElPTj15CitDT05GSUdfRUZJX1BBUlRJVElPTj15CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19OTFM9eQotQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0RFRkFVTFQ9InV0ZjgiCiBDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CiAjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldApAQCAtMTM3NCwzNyArMTk5MSwzMyBAQAogIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMTU9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKIENPTkZJR19OTFNfVVRGOD15Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAotQ09ORklHX0lOU1RSVU1FTlRBVElPTj15Ci1DT05GSUdfUFJPRklMSU5HPXkKLUNPTkZJR19PUFJPRklMRT15Ci1DT05GSUdfS1BST0JFUz15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKICMKIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQgaXMgbm90IHNldAogIyBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MjA0OAogQ09ORklHX01BR0lDX1NZU1JRPXkKLUNPTkZJR19VTlVTRURfU1lNQk9MUz15Ci0jIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfRlM9eQogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKICMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKLUNPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CisjIENPTkZJR19ERVRFQ1RfU09GVExPQ0tVUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0hFRFNUQVRTPXkKIENPTkZJR19USU1FUl9TVEFUUz15CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC0xNDE5LDQ4ICsyMDMyLDE3NCBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAotIyBDT05GSUdfRlJBTUVfUE9JTlRFUiBpcyBub3Qgc2V0Ci1DT05GSUdfT1BUSU1JWkVfSU5MSU5JTkc9eQorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAogIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQ9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19LR0RCIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hfS0dEQj15CisjIENPTkZJR19OT05QUk9NSVNDX0RFVk1FTSBpcyBub3Qgc2V0CiBDT05GSUdfRUFSTFlfUFJJTlRLPXkKIENPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XPXkKLSMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JPREFUQSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0U9eQorIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9QVERVTVAgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1JPREFUQT15CisjIENPTkZJR19ERUJVR19ST0RBVEFfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTlhfVEVTVD1tCiAjIENPTkZJR180S1NUQUNLUyBpcyBub3Qgc2V0CiBDT05GSUdfWDg2X0ZJTkRfU01QX0NPTkZJRz15CiBDT05GSUdfWDg2X01QUEFSU0U9eQogQ09ORklHX0RPVUJMRUZBVUxUPXkKK0NPTkZJR19JT19ERUxBWV9UWVBFXzBYODA9MAorQ09ORklHX0lPX0RFTEFZX1RZUEVfMFhFRD0xCitDT05GSUdfSU9fREVMQVlfVFlQRV9VREVMQVk9MgorQ09ORklHX0lPX0RFTEFZX1RZUEVfTk9ORT0zCitDT05GSUdfSU9fREVMQVlfMFg4MD15CisjIENPTkZJR19JT19ERUxBWV8wWEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPX0RFTEFZX1VERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19JT19ERUxBWV9OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPX0RFTEFZX1RZUEU9MAorQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TPXkKKyMgQ09ORklHX0NQQV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKICMgU2VjdXJpdHkgb3B0aW9ucwogIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorQ09ORklHX0tFWVM9eQorQ09ORklHX0tFWVNfREVCVUdfUFJPQ19LRVlTPXkKK0NPTkZJR19TRUNVUklUWT15CitDT05GSUdfU0VDVVJJVFlfTkVUV09SSz15CisjIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0NBUEFCSUxJVElFUz15CitDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVM9eQorIyBDT05GSUdfU0VDVVJJVFlfUk9PVFBMVUcgaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0RFRkFVTFRfTU1BUF9NSU5fQUREUj02NTUzNgorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVg9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQk9PVFBBUkFNPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0JPT1RQQVJBTV9WQUxVRT0xCitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9ESVNBQkxFPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0RFVkVMT1A9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQVZDX1NUQVRTPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0NIRUNLUkVRUFJPVF9WQUxVRT0xCisjIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX0VOQUJMRV9TRUNNQVJLX0RFRkFVTFQgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9QT0xJQ1lEQl9WRVJTSU9OX01BWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TTUFDSyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQUVBRD15CitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX0hBU0g9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVVUSEVOQz15CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPXkKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworQ09ORklHX0NSWVBUT19ITUFDPXkKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TSEExPXkKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworQ09ORklHX0NSWVBUT19BRVM9eQorIyBDT05GSUdfQ1JZUFRPX0FFU181ODYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FSQzQ9eQorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMF81ODYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSF81ODYgaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorIyBDT05GSUdfQ1JZUFRPX0RFVl9QQURMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVZfR0VPREUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1ZNPXkKK0NPTkZJR19WSVJUVUFMSVpBVElPTj15CisjIENPTkZJR19LVk0gaXMgbm90IHNldAorIyBDT05GSUdfTEdVRVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRJT19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVklSVElPX0JBTExPT04gaXMgbm90IHNldAogCiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKK0NPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUPXkKK0NPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiAjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX0FVRElUX0dFTkVSSUM9eQogQ09ORklHX1pMSUJfSU5GTEFURT15CiBDT05GSUdfUExJU1Q9eQogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX0dFTkVSSUNfUEVORElOR19JUlE9eQotQ09ORklHX1g4Nl9TTVA9eQotQ09ORklHX1g4Nl9IVD15Ci1DT05GSUdfWDg2X0JJT1NfUkVCT09UPXkKLUNPTkZJR19YODZfVFJBTVBPTElORT15Ci1DT05GSUdfS1RJTUVfU0NBTEFSPXkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZyBiL2FyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZwppbmRleCAyZDZmNWIyLi5hZTUxMjRlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWcKKysrIGIvYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnCkBAIC0xLDY0ICsxLDEwMyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIyLWdpdDE0Ci0jIEZyaSBKdWwgMjAgMDk6NTM6MTUgMjAwNworIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMQorIyBTdW4gTWF5ICA0IDE5OjU5OjU3IDIwMDgKICMKLUNPTkZJR19YODZfNjQ9eQogQ09ORklHXzY0QklUPXkKKyMgQ09ORklHX1g4Nl8zMiBpcyBub3Qgc2V0CitDT05GSUdfWDg2XzY0PXkKIENPTkZJR19YODY9eQorQ09ORklHX0RFRkNPTkZJR19MSVNUPSJhcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWciCisjIENPTkZJR19HRU5FUklDX0xPQ0tCUkVBSyBpcyBub3Qgc2V0CiBDT05GSUdfR0VORVJJQ19USU1FPXkKLUNPTkZJR19HRU5FUklDX1RJTUVfVlNZU0NBTEw9eQogQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQotQ09ORklHX1pPTkVfRE1BMzI9eQorQ09ORklHX0NMT0NLU09VUkNFX1dBVENIRE9HPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVD15CiBDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQotQ09ORklHX1NFTUFQSE9SRV9TTEVFUEVSUz15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0ZBU1RfQ01QWENIR19MT0NBTD15CiBDT05GSUdfTU1VPXkKIENPTkZJR19aT05FX0RNQT15Ci1DT05GSUdfUVVJQ0tMSVNUPXkKLUNPTkZJR19OUl9RVUlDSz0yCi1DT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15Ci1DT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15Ci1DT05GSUdfWDg2X0NNUFhDSEc9eQotQ09ORklHX0VBUkxZX1BSSU5USz15CiBDT05GSUdfR0VORVJJQ19JU0FfRE1BPXkKIENPTkZJR19HRU5FUklDX0lPTUFQPXkKLUNPTkZJR19BUkNIX01BWV9IQVZFX1BDX0ZEQz15Ci1DT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQotQ09ORklHX0RNST15Ci1DT05GSUdfQVVESVRfQVJDSD15CiBDT05GSUdfR0VORVJJQ19CVUc9eQorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTUFZX0hBVkVfUENfRkRDPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAotQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKLQotIwotIyBDb2RlIG1hdHVyaXR5IGxldmVsIG9wdGlvbnMKLSMKLUNPTkZJR19FWFBFUklNRU5UQUw9eQotQ09ORklHX0xPQ0tfS0VSTkVMPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19BUkNIX0hBU19DUFVfSURMRV9XQUlUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfR0VORVJJQ19USU1FX1ZTWVNDQUxMPXkKK0NPTkZJR19BUkNIX0hBU19DUFVfUkVMQVg9eQorQ09ORklHX0FSQ0hfSEFTX0NBQ0hFX0xJTkVfU0laRT15CitDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUE9eQorQ09ORklHX0hBVkVfQ1BVTUFTS19PRl9DUFVfTUFQPXkKK0NPTkZJR19BUkNIX0hJQkVSTkFUSU9OX1BPU1NJQkxFPXkKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorQ09ORklHX1pPTkVfRE1BMzI9eQorQ09ORklHX0FSQ0hfUE9QVUxBVEVTX05PREVfTUFQPXkKK0NPTkZJR19BVURJVF9BUkNIPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfT1BUSU1JWkVEX0lOTElOSU5HPXkKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfR0VORVJJQ19QRU5ESU5HX0lSUT15CitDT05GSUdfWDg2X1NNUD15CitDT05GSUdfWDg2XzY0X1NNUD15CitDT05GSUdfWDg2X0hUPXkKK0NPTkZJR19YODZfQklPU19SRUJPT1Q9eQorQ09ORklHX1g4Nl9UUkFNUE9MSU5FPXkKKyMgQ09ORklHX0tUSU1FX1NDQUxBUiBpcyBub3Qgc2V0CiAKICMKICMgR2VuZXJhbCBzZXR1cAogIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgotQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKIENPTkZJR19TV0FQPXkKIENPTkZJR19TWVNWSVBDPXkKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiBDT05GSUdfUE9TSVhfTVFVRVVFPXkKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAotQ09ORklHX0lLQ09ORklHPXkKLUNPTkZJR19JS0NPTkZJR19QUk9DPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE4Ci0jIENPTkZJR19DUFVTRVRTIGlzIG5vdCBzZXQKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjMgaXMgbm90IHNldAorQ09ORklHX1RBU0tTVEFUUz15CitDT05GSUdfVEFTS19ERUxBWV9BQ0NUPXkKK0NPTkZJR19UQVNLX1hBQ0NUPXkKK0NPTkZJR19UQVNLX0lPX0FDQ09VTlRJTkc9eQorQ09ORklHX0FVRElUPXkKK0NPTkZJR19BVURJVFNZU0NBTEw9eQorQ09ORklHX0FVRElUX1RSRUU9eQorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKK0NPTkZJR19DR1JPVVBTPXkKKyMgQ09ORklHX0NHUk9VUF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ0dST1VQX05TPXkKKyMgQ09ORklHX0NHUk9VUF9ERVZJQ0UgaXMgbm90IHNldAorQ09ORklHX0NQVVNFVFM9eQorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9TQ0hFRD15CitDT05GSUdfQ0dST1VQX0NQVUFDQ1Q9eQorQ09ORklHX1JFU09VUkNFX0NPVU5URVJTPXkKKyMgQ09ORklHX0NHUk9VUF9NRU1fUkVTX0NUTFIgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMiBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QSURfQ1BVU0VUPXkKIENPTkZJR19SRUxBWT15CitDT05GSUdfTkFNRVNQQUNFUz15CitDT05GSUdfVVRTX05TPXkKK0NPTkZJR19JUENfTlM9eQorQ09ORklHX1VTRVJfTlM9eQorQ09ORklHX1BJRF9OUz15CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkBAIC02NiwxMyArMTA1LDE1IEBACiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfVUlEMTY9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15Ci0jIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpAQCAtODIsOSArMTIzLDIxIEBACiBDT05GSUdfRVZFTlRGRD15CiBDT05GSUdfU0hNRU09eQogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKLUNPTkZJR19TTEFCPXkKLSMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorQ09ORklHX1NMVUJfREVCVUc9eQorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CiAjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorQ09ORklHX01BUktFUlM9eQorIyBDT05GSUdfT1BST0ZJTEUgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCkBAIC05NiwxNCArMTQ5LDE1IEBACiAjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKIENPTkZJR19TVE9QX01BQ0hJTkU9eQogQ09ORklHX0JMT0NLPXkKLSMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfSU9fVFJBQ0U9eQorQ09ORklHX0JMS19ERVZfQlNHPXkKK0NPTkZJR19CTE9DS19DT01QQVQ9eQogCiAjCiAjIElPIFNjaGVkdWxlcnMKICMKIENPTkZJR19JT1NDSEVEX05PT1A9eQotIyBDT05GSUdfSU9TQ0hFRF9BUyBpcyBub3Qgc2V0CitDT05GSUdfSU9TQ0hFRF9BUz15CiBDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CiBDT05GSUdfSU9TQ0hFRF9DRlE9eQogIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CkBAIC0xMTEsMTA3ICsxNjUsMTc3IEBACiBDT05GSUdfREVGQVVMVF9DRlE9eQogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgUHJvY2Vzc29yIHR5cGUgYW5kIGZlYXR1cmVzCiAjCi1DT05GSUdfWDg2X1BDPXkKLSMgQ09ORklHX1g4Nl9WU01QIGlzIG5vdCBzZXQKLSMgQ09ORklHX01LOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NUFNDIGlzIG5vdCBzZXQKLSMgQ09ORklHX01DT1JFMiBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19DUFU9eQotQ09ORklHX1g4Nl9MMV9DQUNIRV9CWVRFUz0xMjgKLUNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NwotQ09ORklHX1g4Nl9JTlRFUk5PREVfQ0FDSEVfQllURVM9MTI4Ci1DT05GSUdfWDg2X1RTQz15Ci1DT05GSUdfWDg2X0dPT0RfQVBJQz15Ci0jIENPTkZJR19NSUNST0NPREUgaXMgbm90IHNldAotQ09ORklHX1g4Nl9NU1I9eQotQ09ORklHX1g4Nl9DUFVJRD15Ci1DT05GSUdfWDg2X0hUPXkKLUNPTkZJR19YODZfSU9fQVBJQz15Ci1DT05GSUdfWDg2X0xPQ0FMX0FQSUM9eQotQ09ORklHX01UUlI9eQorQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiBDT05GSUdfU01QPXkKLUNPTkZJR19TQ0hFRF9TTVQ9eQorQ09ORklHX1g4Nl9QQz15CisjIENPTkZJR19YODZfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfVk9ZQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfTlVNQVEgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1NVTU1JVCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfQklHU01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9WSVNXUyBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfR0VORVJJQ0FSQ0ggaXMgbm90IHNldAorIyBDT05GSUdfWDg2X0VTNzAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfUkRDMzIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfVlNNUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJBVklSVF9HVUVTVCBpcyBub3Qgc2V0CitDT05GSUdfTUVNVEVTVF9CT09UUEFSQU09eQorQ09ORklHX01FTVRFU1RfQk9PVFBBUkFNX1ZBTFVFPTAKKyMgQ09ORklHX00zODYgaXMgbm90IHNldAorIyBDT05GSUdfTTQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NNTg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX001ODZUU0MgaXMgbm90IHNldAorIyBDT05GSUdfTTU4Nk1NWCBpcyBub3Qgc2V0CisjIENPTkZJR19NNjg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01QRU5USVVNSUkgaXMgbm90IHNldAorIyBDT05GSUdfTVBFTlRJVU1JSUkgaXMgbm90IHNldAorIyBDT05GSUdfTVBFTlRJVU1NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01QRU5USVVNNCBpcyBub3Qgc2V0CisjIENPTkZJR19NSzYgaXMgbm90IHNldAorIyBDT05GSUdfTUs3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01LOCBpcyBub3Qgc2V0CisjIENPTkZJR19NQ1JVU09FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FRkZJQ0VPTiBpcyBub3Qgc2V0CisjIENPTkZJR19NV0lOQ0hJUEM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01XSU5DSElQMiBpcyBub3Qgc2V0CisjIENPTkZJR19NV0lOQ0hJUDNEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01HRU9ERUdYMSBpcyBub3Qgc2V0CisjIENPTkZJR19NR0VPREVfTFggaXMgbm90IHNldAorIyBDT05GSUdfTUNZUklYSUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01WSUFDM18yIGlzIG5vdCBzZXQKKyMgQ09ORklHX01WSUFDNyBpcyBub3Qgc2V0CisjIENPTkZJR19NUFNDIGlzIG5vdCBzZXQKK0NPTkZJR19NQ09SRTI9eQorIyBDT05GSUdfR0VORVJJQ19DUFUgaXMgbm90IHNldAorQ09ORklHX1g4Nl9DUFU9eQorQ09ORklHX1g4Nl9MMV9DQUNIRV9CWVRFUz02NAorQ09ORklHX1g4Nl9JTlRFUk5PREVfQ0FDSEVfQllURVM9NjQKK0NPTkZJR19YODZfQ01QWENIRz15CitDT05GSUdfWDg2X0wxX0NBQ0hFX1NISUZUPTYKK0NPTkZJR19YODZfR09PRF9BUElDPXkKK0NPTkZJR19YODZfSU5URUxfVVNFUkNPUFk9eQorQ09ORklHX1g4Nl9VU0VfUFBST19DSEVDS1NVTT15CitDT05GSUdfWDg2X1A2X05PUD15CitDT05GSUdfWDg2X1RTQz15CitDT05GSUdfWDg2X0NNT1Y9eQorQ09ORklHX1g4Nl9NSU5JTVVNX0NQVV9GQU1JTFk9NjQKK0NPTkZJR19YODZfREVCVUdDVExNU1I9eQorQ09ORklHX0hQRVRfVElNRVI9eQorQ09ORklHX0hQRVRfRU1VTEFURV9SVEM9eQorQ09ORklHX0RNST15CitDT05GSUdfR0FSVF9JT01NVT15CitDT05GSUdfQ0FMR0FSWV9JT01NVT15CitDT05GSUdfQ0FMR0FSWV9JT01NVV9FTkFCTEVEX0JZX0RFRkFVTFQ9eQorQ09ORklHX1NXSU9UTEI9eQorQ09ORklHX0lPTU1VX0hFTFBFUj15CitDT05GSUdfTlJfQ1BVUz00CisjIENPTkZJR19TQ0hFRF9TTVQgaXMgbm90IHNldAogQ09ORklHX1NDSEVEX01DPXkKICMgQ09ORklHX1BSRUVNUFRfTk9ORSBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlk9eQogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUFJFRU1QVF9CS0w9eQorQ09ORklHX1g4Nl9MT0NBTF9BUElDPXkKK0NPTkZJR19YODZfSU9fQVBJQz15CisjIENPTkZJR19YODZfTUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0k4SyBpcyBub3Qgc2V0CisjIENPTkZJR19NSUNST0NPREUgaXMgbm90IHNldAorQ09ORklHX1g4Nl9NU1I9eQorQ09ORklHX1g4Nl9DUFVJRD15CiBDT05GSUdfTlVNQT15CiBDT05GSUdfSzhfTlVNQT15Ci1DT05GSUdfTk9ERVNfU0hJRlQ9NgogQ09ORklHX1g4Nl82NF9BQ1BJX05VTUE9eQotQ09ORklHX05VTUFfRU1VPXkKK0NPTkZJR19OT0RFU19TUEFOX09USEVSX05PREVTPXkKKyMgQ09ORklHX05VTUFfRU1VIGlzIG5vdCBzZXQKK0NPTkZJR19OT0RFU19TSElGVD02CitDT05GSUdfQVJDSF9TUEFSU0VNRU1fREVGQVVMVD15CitDT05GSUdfQVJDSF9TUEFSU0VNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorIyBDT05GSUdfRkxBVE1FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfU1BBUlNFTUVNX01BTlVBTD15CitDT05GSUdfU1BBUlNFTUVNPXkKIENPTkZJR19ORUVEX01VTFRJUExFX05PREVTPXkKK0NPTkZJR19IQVZFX01FTU9SWV9QUkVTRU5UPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorQ09ORklHX1NQQVJTRU1FTV9FWFRSRU1FPXkKK0NPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEU9eQorQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQPXkKKworIworIyBNZW1vcnkgaG90cGx1ZyBpcyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU29mdHdhcmUgU3VzcGVuZAorIworQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogQ09ORklHX01JR1JBVElPTj15CiBDT05GSUdfUkVTT1VSQ0VTXzY0QklUPXkKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKLUNPTkZJR19IQVZFX0FSQ0hfRUFSTFlfUEZOX1RPX05JRD15Ci1DT05GSUdfT1VUX09GX0xJTkVfUEZOX1RPX1BBR0U9eQotQ09ORklHX05SX0NQVVM9MzIKK0NPTkZJR19NVFJSPXkKKyMgQ09ORklHX1g4Nl9QQVQgaXMgbm90IHNldAorQ09ORklHX0VGST15CitDT05GSUdfU0VDQ09NUD15CisjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAorIyBDT05GSUdfSFpfMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CitDT05GSUdfSFpfMTAwMD15CitDT05GSUdfSFo9MTAwMAorQ09ORklHX1NDSEVEX0hSVElDSz15CitDT05GSUdfS0VYRUM9eQorQ09ORklHX0NSQVNIX0RVTVA9eQorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MTAwMDAwMAorQ09ORklHX1JFTE9DQVRBQkxFPXkKIENPTkZJR19QSFlTSUNBTF9BTElHTj0weDIwMDAwMAogQ09ORklHX0hPVFBMVUdfQ1BVPXkKKyMgQ09ORklHX0NPTVBBVF9WRFNPIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRz15Ci1DT05GSUdfSFBFVF9USU1FUj15Ci1DT05GSUdfSFBFVF9FTVVMQVRFX1JUQz15Ci1DT05GSUdfR0FSVF9JT01NVT15Ci0jIENPTkZJR19DQUxHQVJZX0lPTU1VIGlzIG5vdCBzZXQKLUNPTkZJR19TV0lPVExCPXkKLUNPTkZJR19YODZfTUNFPXkKLUNPTkZJR19YODZfTUNFX0lOVEVMPXkKLUNPTkZJR19YODZfTUNFX0FNRD15Ci0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFTSF9EVU1QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JFTE9DQVRBQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19QSFlTSUNBTF9TVEFSVD0weDIwMDAwMAotQ09ORklHX1NFQ0NPTVA9eQotIyBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IgaXMgbm90IHNldAotIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKLUNPTkZJR19IWl8yNTA9eQotIyBDT05GSUdfSFpfMzAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0haXzEwMDAgaXMgbm90IHNldAotQ09ORklHX0haPTI1MAotQ09ORklHX0s4X05CPXkKLUNPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKLUNPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15Ci1DT05GSUdfSVNBX0RNQV9BUEk9eQotQ09ORklHX0dFTkVSSUNfUEVORElOR19JUlE9eQorQ09ORklHX0hBVkVfQVJDSF9FQVJMWV9QRk5fVE9fTklEPXkKIAogIwogIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKICMKK0NPTkZJR19BUkNIX0hJQkVSTkFUSU9OX0hFQURFUj15CiBDT05GSUdfUE09eQotIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QTV9ERUJVRz15CisjIENPTkZJR19QTV9WRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fUE1fVFJBQ0U9eQorQ09ORklHX1BNX1RSQUNFPXkKK0NPTkZJR19QTV9UUkFDRV9SVEM9eQorQ09ORklHX1BNX1NMRUVQX1NNUD15CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CiBDT05GSUdfSElCRVJOQVRJT049eQogQ09ORklHX1BNX1NURF9QQVJUSVRJT049IiIKLQotIwotIyBBQ1BJIChBZHZhbmNlZCBDb25maWd1cmF0aW9uIGFuZCBQb3dlciBJbnRlcmZhY2UpIFN1cHBvcnQKLSMKIENPTkZJR19BQ1BJPXkKIENPTkZJR19BQ1BJX1NMRUVQPXkKLUNPTkZJR19BQ1BJX1NMRUVQX1BST0NfRlM9eQotQ09ORklHX0FDUElfU0xFRVBfUFJPQ19TTEVFUD15CiBDT05GSUdfQUNQSV9QUk9DRlM9eQorQ09ORklHX0FDUElfUFJPQ0ZTX1BPV0VSPXkKK0NPTkZJR19BQ1BJX1NZU0ZTX1BPV0VSPXkKK0NPTkZJR19BQ1BJX1BST0NfRVZFTlQ9eQogQ09ORklHX0FDUElfQUM9eQogQ09ORklHX0FDUElfQkFUVEVSWT15CiBDT05GSUdfQUNQSV9CVVRUT049eQogQ09ORklHX0FDUElfRkFOPXkKLSMgQ09ORklHX0FDUElfRE9DSyBpcyBub3Qgc2V0CitDT05GSUdfQUNQSV9ET0NLPXkKKyMgQ09ORklHX0FDUElfQkFZIGlzIG5vdCBzZXQKIENPTkZJR19BQ1BJX1BST0NFU1NPUj15CiBDT05GSUdfQUNQSV9IT1RQTFVHX0NQVT15CiBDT05GSUdfQUNQSV9USEVSTUFMPXkKIENPTkZJR19BQ1BJX05VTUE9eQorIyBDT05GSUdfQUNQSV9XTUkgaXMgbm90IHNldAogIyBDT05GSUdfQUNQSV9BU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FDUElfVE9TSElCQSBpcyBub3Qgc2V0CisjIENPTkZJR19BQ1BJX0NVU1RPTV9EU0RUIGlzIG5vdCBzZXQKIENPTkZJR19BQ1BJX0JMQUNLTElTVF9ZRUFSPTAKICMgQ09ORklHX0FDUElfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0FDUElfRUM9eQpAQCAtMjI3LDI5ICszNTEsMzQgQEAKIENPTkZJR19DUFVfRlJFUT15CiBDT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQogQ09ORklHX0NQVV9GUkVRX0RFQlVHPXkKLUNPTkZJR19DUFVfRlJFUV9TVEFUPXkKLSMgQ09ORklHX0NQVV9GUkVRX1NUQVRfREVUQUlMUyBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfUEVSRk9STUFOQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfR09WX1VTRVJTUEFDRT15CiBDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EPXkKLUNPTkZJR19DUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogCiAjCiAjIENQVUZyZXEgcHJvY2Vzc29yIGRyaXZlcnMKICMKLUNPTkZJR19YODZfUE9XRVJOT1dfSzg9eQotQ09ORklHX1g4Nl9QT1dFUk5PV19LOF9BQ1BJPXkKLSMgQ09ORklHX1g4Nl9TUEVFRFNURVBfQ0VOVFJJTk8gaXMgbm90IHNldAogQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVE9eQorIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9TUEVFRFNURVBfQ0VOVFJJTk8gaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1A0X0NMT0NLTU9EIGlzIG5vdCBzZXQKIAogIwogIyBzaGFyZWQgb3B0aW9ucwogIwotQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVFfUFJPQ19JTlRGPXkKKyMgQ09ORklHX1g4Nl9BQ1BJX0NQVUZSRVFfUFJPQ19JTlRGIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9TUEVFRFNURVBfTElCIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfSURMRT15CitDT05GSUdfQ1BVX0lETEVfR09WX0xBRERFUj15CitDT05GSUdfQ1BVX0lETEVfR09WX01FTlU9eQogCiAjCiAjIEJ1cyBvcHRpb25zIChQQ0kgZXRjLikKQEAgLTI1NywyNyArMzg2LDU2IEBACiBDT05GSUdfUENJPXkKIENPTkZJR19QQ0lfRElSRUNUPXkKIENPTkZJR19QQ0lfTU1DT05GSUc9eQorQ09ORklHX1BDSV9ET01BSU5TPXkKK0NPTkZJR19ETUFSPXkKK0NPTkZJR19ETUFSX0dGWF9XQT15CitDT05GSUdfRE1BUl9GTE9QUFlfV0E9eQogQ09ORklHX1BDSUVQT1JUQlVTPXkKKyMgQ09ORklHX0hPVFBMVUdfUENJX1BDSUUgaXMgbm90IHNldAogQ09ORklHX1BDSUVBRVI9eQorIyBDT05GSUdfUENJRUFTUE0gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJPXkKIENPTkZJR19QQ0lfTVNJPXkKKyMgQ09ORklHX1BDSV9MRUdBQ1kgaXMgbm90IHNldAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hUX0lSUSBpcyBub3Qgc2V0CitDT05GSUdfSFRfSVJRPXkKK0NPTkZJR19JU0FfRE1BX0FQST15CitDT05GSUdfSzhfTkI9eQorQ09ORklHX1BDQ0FSRD15CisjIENPTkZJR19QQ01DSUFfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BDTUNJQT15CitDT05GSUdfUENNQ0lBX0xPQURfQ0lTPXkKK0NPTkZJR19QQ01DSUFfSU9DVEw9eQorQ09ORklHX0NBUkRCVVM9eQogCiAjCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKKyMgUEMtY2FyZCBicmlkZ2VzCiAjCi0jIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAotIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorQ09ORklHX1lFTlRBPXkKK0NPTkZJR19ZRU5UQV9PMj15CitDT05GSUdfWUVOVEFfUklDT0g9eQorQ09ORklHX1lFTlRBX1RJPXkKK0NPTkZJR19ZRU5UQV9FTkVfVFVORT15CitDT05GSUdfWUVOVEFfVE9TSElCQT15CisjIENPTkZJR19QRDY3MjkgaXMgbm90IHNldAorIyBDT05GSUdfSTgyMDkyIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0NBUkRfTk9OU1RBVElDPXkKK0NPTkZJR19IT1RQTFVHX1BDST15CisjIENPTkZJR19IT1RQTFVHX1BDSV9GQUtFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX0FDUEkgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfQ1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9TSFBDIGlzIG5vdCBzZXQKIAogIwogIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cyAvIEVtdWxhdGlvbnMKICMKIENPTkZJR19CSU5GTVRfRUxGPXkKLSMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQklORk1UX0VMRj15CitDT05GSUdfQklORk1UX01JU0M9eQogQ09ORklHX0lBMzJfRU1VTEFUSU9OPXkKLUNPTkZJR19JQTMyX0FPVVQ9eQorIyBDT05GSUdfSUEzMl9BT1VUIGlzIG5vdCBzZXQKIENPTkZJR19DT01QQVQ9eQorQ09ORklHX0NPTVBBVF9GT1JfVTY0X0FMSUdOTUVOVD15CiBDT05GSUdfU1lTVklQQ19DT01QQVQ9eQogCiAjCkBAIC0yODksMjIgKzQ0NywzMSBAQAogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKIENPTkZJR19QQUNLRVQ9eQotIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1BBQ0tFVF9NTUFQPXkKIENPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKK0NPTkZJR19YRlJNX1VTRVI9eQorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVD15CiBDT05GSUdfSVBfTVVMVElDQVNUPXkKLSMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAogQ09ORklHX0lQX0ZJQl9IQVNIPXkKLUNPTkZJR19JUF9QTlA9eQotQ09ORklHX0lQX1BOUF9ESENQPXkKLSMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVVMVElQTEVfVEFCTEVTPXkKK0NPTkZJR19JUF9ST1VURV9NVUxUSVBBVEg9eQorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorIyBDT05GSUdfSVBfUE5QIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKICMgQ09ORklHX0FSUEQgaXMgbm90IHNldAotIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorQ09ORklHX1NZTl9DT09LSUVTPXkKICMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldApAQCAtMzEzLDMxICs0ODAsMTA5IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAotQ09ORklHX0lORVRfRElBRz15Ci1DT05GSUdfSU5FVF9UQ1BfRElBRz15Ci0jIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9MUk89eQorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19BRFZBTkNFRD15CisjIENPTkZJR19UQ1BfQ09OR19CSUMgaXMgbm90IHNldAogQ09ORklHX1RDUF9DT05HX0NVQklDPXkKKyMgQ09ORklHX1RDUF9DT05HX1dFU1RXT09EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFNUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFlCTEEgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfVkVHQVMgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfU0NBTEFCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfTFAgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfVkVOTyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19ZRUFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0lMTElOT0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQklDIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NVQklDPXkKKyMgQ09ORklHX0RFRkFVTFRfSFRDUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1ZFR0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfV0VTVFdPT0QgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9SRU5PIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKLSMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorQ09ORklHX1RDUF9NRDVTSUc9eQorIyBDT05GSUdfSVBfVlMgaXMgbm90IHNldAogQ09ORklHX0lQVjY9eQogIyBDT05GSUdfSVBWNl9QUklWQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfUk9VVEVSX1BSRUYgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9PUFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9BSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9FU1AgaXMgbm90IHNldAorQ09ORklHX0lORVQ2X0FIPXkKK0NPTkZJR19JTkVUNl9FU1A9eQogIyBDT05GSUdfSU5FVDZfSVBDT01QIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTUlQNiBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9YRlJNX01PREVfVFJBTlNQT1JUPXkKK0NPTkZJR19JTkVUNl9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAorQ09ORklHX05FVExBQkVMPXkKK0NPTkZJR19ORVRXT1JLX1NFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUj15CisjIENPTkZJR19ORVRGSUxURVJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSX0FEVkFOQ0VEIGlzIG5vdCBzZXQKKworIworIyBDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkVURklMVEVSX05FVExJTks9eQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0xPRz15CitDT05GSUdfTkZfQ09OTlRSQUNLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0VDTUFSSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX0ZUUD15CitDT05GSUdfTkZfQ09OTlRSQUNLX0lSQz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1NJUD15CitDT05GSUdfTkZfQ1RfTkVUTElOSz15CitDT05GSUdfTkVURklMVEVSX1hUQUJMRVM9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NPTk5TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE1TUz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NPTk5UUkFDSz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QT0xJQ1k9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFURT15CisKKyMKKyMgSVA6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfQ09OTlRSQUNLX0lQVjQ9eQorQ09ORklHX05GX0NPTk5UUkFDS19QUk9DX0NPTVBBVD15CitDT05GSUdfSVBfTkZfSVBUQUJMRVM9eQorQ09ORklHX0lQX05GX0ZJTFRFUj15CitDT05GSUdfSVBfTkZfVEFSR0VUX1JFSkVDVD15CitDT05GSUdfSVBfTkZfVEFSR0VUX0xPRz15CitDT05GSUdfSVBfTkZfVEFSR0VUX1VMT0c9eQorQ09ORklHX05GX05BVD15CitDT05GSUdfTkZfTkFUX05FRURFRD15CitDT05GSUdfSVBfTkZfVEFSR0VUX01BU1FVRVJBREU9eQorQ09ORklHX05GX05BVF9GVFA9eQorQ09ORklHX05GX05BVF9JUkM9eQorIyBDT05GSUdfTkZfTkFUX1RGVFAgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX0FNQU5EQSBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfUFBUUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfSDMyMyBpcyBub3Qgc2V0CitDT05GSUdfTkZfTkFUX1NJUD15CitDT05GSUdfSVBfTkZfTUFOR0xFPXkKKworIworIyBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0NPTk5UUkFDS19JUFY2PXkKK0NPTkZJR19JUDZfTkZfSVBUQUJMRVM9eQorQ09ORklHX0lQNl9ORl9NQVRDSF9JUFY2SEVBREVSPXkKK0NPTkZJR19JUDZfTkZfRklMVEVSPXkKK0NPTkZJR19JUDZfTkZfVEFSR0VUX0xPRz15CitDT05GSUdfSVA2X05GX1RBUkdFVF9SRUpFQ1Q9eQorQ09ORklHX0lQNl9ORl9NQU5HTEU9eQogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJUEMgaXMgbm90IHNldApAQCAtMzQ1LDYgKzU5MCw3IEBACiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldAogIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorQ09ORklHX0xMQz15CiAjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CkBAIC0zNTIsMjggKzU5OCw5OSBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSEVEPXkKIAogIwotIyBRb1MgYW5kL29yIGZhaXIgcXVldWVpbmcKKyMgUXVldWVpbmcvU2NoZWR1bGluZwogIwotIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfQ0JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSFRCIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSEZTQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1BSSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9SUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1JFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1RFUUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9UQkYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9HUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfRFNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfTkVURU0gaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9JTkdSRVNTIGlzIG5vdCBzZXQKKworIworIyBDbGFzc2lmaWNhdGlvbgorIworQ09ORklHX05FVF9DTFM9eQorIyBDT05GSUdfTkVUX0NMU19CQVNJQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1RDSU5ERVggaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19ST1VURTQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19GVyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JTVlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19SU1ZQNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX0ZMT1cgaXMgbm90IHNldAorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05FVF9FTUFUQ0hfU1RBQ0s9MzIKKyMgQ09ORklHX05FVF9FTUFUQ0hfQ01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfTkJZVEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9NRVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfVEVYVCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0NMU19BQ1Q9eQorIyBDT05GSUdfTkVUX0FDVF9QT0xJQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9HQUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfTUlSUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfSVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfTkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfUEVESVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9TSU1QIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfU0NIX0ZJRk89eQogCiAjCiAjIE5ldHdvcmsgdGVzdGluZwogIwogIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAotIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorQ09ORklHX0hBTVJBRElPPXkKKworIworIyBQYWNrZXQgUmFkaW8gcHJvdG9jb2xzCisjCisjIENPTkZJR19BWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKK0NPTkZJR19GSUJfUlVMRVM9eQogCiAjCiAjIFdpcmVsZXNzCiAjCi0jIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAotIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorQ09ORklHX0NGRzgwMjExPXkKK0NPTkZJR19OTDgwMjExPXkKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX01BQzgwMjExPXkKKworIworIyBSYXRlIGNvbnRyb2wgYWxnb3JpdGhtIHNlbGVjdGlvbgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfTk9ORSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZWN0aW5nICd5JyBmb3IgYW4gYWxnb3JpdGhtIHdpbGwKKyMKKworIworIyBidWlsZCB0aGUgYWxnb3JpdGhtIGludG8gbWFjODAyMTEuCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0icGlkIgorQ09ORklHX01BQzgwMjExX1JDX1BJRD15CisjIENPTkZJR19NQUM4MDIxMV9NRVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NQUM4MDIxMV9MRURTPXkKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfUEFDS0VUX0FMSUdOTUVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CkBAIC0zODUsMTMgKzcwMiwxNSBAQAogIwogIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiAjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgogQ09ORklHX1NUQU5EQUxPTkU9eQogQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQogQ09ORklHX0ZXX0xPQURFUj15CiAjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19ERVZSRVM9eQogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19DT05ORUNUT1I9eQorQ09ORklHX1BST0NfRVZFTlRTPXkKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19QTlA9eQpAQCAtNDAyLDcgKzcyMSw3IEBACiAjCiBDT05GSUdfUE5QQUNQST15CiBDT05GSUdfQkxLX0RFVj15Ci1DT05GSUdfQkxLX0RFVl9GRD15CisjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKQEAgLTQxNSw4ICs3MzQsOCBAQAogIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2Ci1DT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1JBTV9TSVpFPTE2Mzg0CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiBDT05GSUdfTUlTQ19ERVZJQ0VTPXkKQEAgLTQyNSw3MiArNzQ0LDE2IEBACiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAogIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDRVJfV01JIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FTVVNfTEFQVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVSklUU1VfTEFQVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX01TSV9MQVBUT1AgaXMgbm90IHNldAogIyBDT05GSUdfU09OWV9MQVBUT1AgaXMgbm90IHNldAogIyBDT05GSUdfVEhJTktQQURfQUNQSSBpcyBub3Qgc2V0Ci1DT05GSUdfSURFPXkKLUNPTkZJR19CTEtfREVWX0lERT15Ci0KLSMKLSMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS50eHQgZm9yIGhlbHAvaW5mbyBvbiBJREUgZHJpdmVzCi0jCi0jIENPTkZJR19CTEtfREVWX0lERV9TQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSERfSURFIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURJU0s9eQotQ09ORklHX0lERURJU0tfTVVMVElfTU9ERT15Ci1DT05GSUdfQkxLX0RFVl9JREVDRD15Ci0jIENPTkZJR19CTEtfREVWX0lERVRBUEUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFkgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVTQ1NJIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERUFDUEk9eQotIyBDT05GSUdfSURFX1RBU0tfSU9DVEwgaXMgbm90IHNldAotQ09ORklHX0lERV9QUk9DX0ZTPXkKLQotIwotIyBJREUgY2hpcHNldCBzdXBwb3J0L2J1Z2ZpeGVzCi0jCi1DT05GSUdfSURFX0dFTkVSSUM9eQotIyBDT05GSUdfQkxLX0RFVl9DTUQ2NDAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVQTlAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFUENJPXkKLSMgQ09ORklHX0lERVBDSV9TSEFSRV9JUlEgaXMgbm90IHNldAotQ09ORklHX0lERVBDSV9QQ0lCVVNfT1JERVI9eQotIyBDT05GSUdfQkxLX0RFVl9PRkZCT0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0dFTkVSSUMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9PUFRJNjIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfUloxMDAwIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURNQV9QQ0k9eQotIyBDT05GSUdfQkxLX0RFVl9JREVETUFfRk9SQ0VEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERURNQV9PTkxZRElTSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0FFQzYyWFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9BTEkxNVgzIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0FNRDc0WFg9eQotQ09ORklHX0JMS19ERVZfQVRJSVhQPXkKLSMgQ09ORklHX0JMS19ERVZfQ01ENjRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVFJJRkxFWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NZODJDNjkzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1M1NTIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1M1NTMwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSFBUMzRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSFBUMzY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSk1JQ1JPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NDMTIwMCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9QSUlYPXkKLSMgQ09ORklHX0JMS19ERVZfSVQ4MjEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSVQ4MjFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfTlM4NzQxNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1BEQzIwMlhYX09MRCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9QREMyMDJYWF9ORVc9eQotIyBDT05GSUdfQkxLX0RFVl9TVldLUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NJSU1BR0UgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TSVM1NTEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0xDOTBFNjYgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UUk0yOTAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURNQT15Ci0jIENPTkZJR19JREVETUFfSVZCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAorIyBDT05GSUdfSU5URUxfTUVOTE9XIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKIAogIwogIyBTQ1NJIGRldmljZSBzdXBwb3J0CkBAIC00OTksOCArNzYyLDggQEAKIENPTkZJR19TQ1NJPXkKIENPTkZJR19TQ1NJX0RNQT15CiAjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9ORVRMSU5LPXkKLSMgQ09ORklHX1NDU0lfUFJPQ19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CiAKICMKICMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKQEAgLTUwOSw3ICs3NzIsNyBAQAogIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfU1I9eQotIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1JfVkVORE9SPXkKIENPTkZJR19DSFJfREVWX1NHPXkKICMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKIApAQCAtNTI2LDczICs3ODksMzcgQEAKICMgU0NTSSBUcmFuc3BvcnRzCiAjCiBDT05GSUdfU0NTSV9TUElfQVRUUlM9eQotQ09ORklHX1NDU0lfRkNfQVRUUlM9eQorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX1NBU19BVFRSUz15CisjIENPTkZJR19TQ1NJX1NBU19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgbG93LWxldmVsIGRyaXZlcnMKLSMKLSMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWXzNXX1hYWFhfUkFJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJXzNXXzlYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BQ0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FBQ1JBSUQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAotQ09ORklHX1NDU0lfQUlDNzlYWD15Ci1DT05GSUdfQUlDNzlYWF9DTURTX1BFUl9ERVZJQ0U9MzIKLUNPTkZJR19BSUM3OVhYX1JFU0VUX0RFTEFZX01TPTQwMDAKLSMgQ09ORklHX0FJQzc5WFhfREVCVUdfRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19BSUM3OVhYX0RFQlVHX01BU0s9MAotIyBDT05GSUdfQUlDNzlYWF9SRUdfUFJFVFRZX1BSSU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDOTRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FSQ01TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0hQVElPUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0JVU0xPR0lDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9FQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0dEVEggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQSBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX0FDUEk9eQorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQotQ09ORklHX1NBVEFfU1ZXPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogQ09ORklHX0FUQV9QSUlYPXkKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldAotQ09ORklHX1NBVEFfTlY9eQorIyBDT05GSUdfU0FUQV9OViBpcyBub3Qgc2V0CiAjIENPTkZJR19QRENfQURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1FTVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9TSUw9eQotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9WSUE9eQorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BQ1BJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX0FNRD15CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVRJSVhQIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQ01ENjQwX1BDSSBpcyBub3Qgc2V0CkBAIC02MTIsMTEgKzgzOSwxNCBAQAogIyBDT05GSUdfUEFUQV9UUklGTEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTUFSVkVMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CitDT05GSUdfUEFUQV9PTERQSUlYPXkKICMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUENNQ0lBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldApAQCAtNjI4LDY1ICs4NTgsNDIgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiBDT05GSUdfTUQ9eQotIyBDT05GSUdfQkxLX0RFVl9NRCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9NRD15CisjIENPTkZJR19NRF9MSU5FQVIgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDAgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDEgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQ0NTYgaXMgbm90IHNldAorIyBDT05GSUdfTURfTVVMVElQQVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX0ZBVUxUWSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9ETT15CiAjIENPTkZJR19ETV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9DUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9TTkFQU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETV9NSVJST1IgaXMgbm90IHNldAotIyBDT05GSUdfRE1fWkVSTyBpcyBub3Qgc2V0CitDT05GSUdfRE1fTUlSUk9SPXkKK0NPTkZJR19ETV9aRVJPPXkKICMgQ09ORklHX0RNX01VTFRJUEFUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETV9ERUxBWSBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX0ZVU0lPTj15Ci1DT05GSUdfRlVTSU9OX1NQST15Ci0jIENPTkZJR19GVVNJT05fRkMgaXMgbm90IHNldAotIyBDT05GSUdfRlVTSU9OX1NBUyBpcyBub3Qgc2V0Ci1DT05GSUdfRlVTSU9OX01BWF9TR0U9MTI4Ci0jIENPTkZJR19GVVNJT05fQ1RMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNX1VFVkVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCiAjCiAjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKICMKICMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFMTM5ND15Ci0KLSMKLSMgU3Vic3lzdGVtIE9wdGlvbnMKLSMKLSMgQ09ORklHX0lFRUUxMzk0X1ZFUkJPU0VERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgQ29udHJvbGxlcnMKLSMKLQotIwotIyBUZXhhcyBJbnN0cnVtZW50cyBQQ0lMeW54IHJlcXVpcmVzIEkyQwotIwotQ09ORklHX0lFRUUxMzk0X09IQ0kxMzk0PXkKLQotIwotIyBQcm90b2NvbHMKLSMKLSMgQ09ORklHX0lFRUUxMzk0X1ZJREVPMTM5NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9TQlAyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0VUSDEzOTRfUk9NX0VOVFJZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0VUSDEzOTQgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRFYxMzk0IGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFMTM5NF9SQVdJTz15CisjIENPTkZJR19JRUVFMTM5NCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMk8gaXMgbm90IHNldAogQ09ORklHX01BQ0lOVE9TSF9EUklWRVJTPXkKLSMgQ09ORklHX01BQ19FTVVNT1VTRUJUTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDX0VNVU1PVVNFQlROPXkKIENPTkZJR19ORVRERVZJQ0VTPXkKLUNPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUU9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lGQiBpcyBub3Qgc2V0CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKLUNPTkZJR19UVU49eQorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1NCMTAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAogIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKQEAgLTY5NiwzOSArOTAzLDQwIEBACiAjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAogIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NPXkKLUNPTkZJR19WT1JURVg9eQorIyBDT05GSUdfVk9SVEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1RZUEhPT04gaXMgbm90IHNldAogQ09ORklHX05FVF9UVUxJUD15CiAjIENPTkZJR19ERTIxMDRYIGlzIG5vdCBzZXQKLUNPTkZJR19UVUxJUD15Ci0jIENPTkZJR19UVUxJUF9NV0kgaXMgbm90IHNldAotIyBDT05GSUdfVFVMSVBfTU1JTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVUxJUF9OQVBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFNFg1IGlzIG5vdCBzZXQKICMgQ09ORklHX1dJTkJPTkRfODQwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNOTEwMiBpcyBub3Qgc2V0CiAjIENPTkZJR19VTEk1MjZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9YSVJDT00gaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUENJPXkKICMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAotQ09ORklHX0FNRDgxMTFfRVRIPXkKLSMgQ09ORklHX0FNRDgxMTFFX05BUEkgaXMgbm90IHNldAorIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAogIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0Ci1DT05GSUdfQjQ0PXkKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiBDT05GSUdfRk9SQ0VERVRIPXkKICMgQ09ORklHX0ZPUkNFREVUSF9OQVBJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQogIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKICMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAogIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAotQ09ORklHXzgxMzlDUD15CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAogQ09ORklHXzgxMzlUT089eQotIyBDT05GSUdfODEzOVRPT19QSU8gaXMgbm90IHNldAorQ09ORklHXzgxMzlUT09fUElPPXkKICMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAogIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CkBAIC03NDAsMzQgKzk0OCw3NCBAQAogQ09ORklHX0UxMDAwPXkKICMgQ09ORklHX0UxMDAwX05BUEkgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAogIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKICMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKK0NPTkZJR19TS1kyPXkKKyMgQ09ORklHX1NLWTJfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKIENPTkZJR19USUdPTjM9eQotQ09ORklHX0JOWDI9eQorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CiAjIENPTkZJR19RTEEzWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTDEgaXMgbm90IHNldAogQ09ORklHX05FVERFVl8xMDAwMD15CiAjIENPTkZJR19DSEVMU0lPX1QxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NIRUxTSU9fVDMgaXMgbm90IHNldAorIyBDT05GSUdfSVhHQkUgaXMgbm90IHNldAogIyBDT05GSUdfSVhHQiBpcyBub3Qgc2V0Ci1DT05GSUdfUzJJTz1tCi0jIENPTkZJR19TMklPX05BUEkgaXMgbm90IHNldAorIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05JVSBpcyBub3Qgc2V0CiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfVFIgaXMgbm90IHNldAorIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CitDT05GSUdfVFI9eQorIyBDT05GSUdfSUJNT0wgaXMgbm90IHNldAorIyBDT05GSUdfM0MzNTkgaXMgbm90IHNldAorIyBDT05GSUdfVE1TMzgwVFIgaXMgbm90IHNldAogCiAjCiAjIFdpcmVsZXNzIExBTgogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOXzgwMjExPXkKKyMgQ09ORklHX1BDTUNJQV9SQVlDUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIyMDAgaXMgbm90IHNldAorIyBDT05GSUdfTElCRVJUQVMgaXMgbm90IHNldAorIyBDT05GSUdfQUlSTyBpcyBub3Qgc2V0CisjIENPTkZJR19IRVJNRVMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNRUwgaXMgbm90IHNldAorIyBDT05GSUdfQUlST19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfV0wzNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSSVNNNTQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pEMTIwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVUX1JORElTX1dMQU4gaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVEw4MTg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FETTgyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUDU0X0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQVRINUs9eQorIyBDT05GSUdfQVRINUtfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xDT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0w0OTY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTDM5NDUgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVEFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0MyBpcyBub3Qgc2V0CisjIENPTkZJR19CNDNMRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWkQxMjExUlcgaXMgbm90IHNldAorIyBDT05GSUdfUlQyWDAwIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNzc2LDE2ICsxMDI0LDI2IEBACiAjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ01DSUE9eQorIyBDT05GSUdfUENNQ0lBXzNDNTg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV8zQzU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfRk1WSjE4WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfUENORVQgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX05NQ0xBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfU01DOTFDOTIgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1hJUkMyUFMgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX0FYTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GRERJIGlzIG5vdCBzZXQKK0NPTkZJR19GRERJPXkKKyMgQ09ORklHX0RFRlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLRlAgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUQ09OU09MRT15CisjIENPTkZJR19ORVRDT05TT0xFX0RZTkFNSUMgaXMgbm90IHNldAogQ09ORklHX05FVFBPTEw9eQogIyBDT05GSUdfTkVUUE9MTF9UUkFQIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSPXkKQEAgLTc5NiwxOCArMTA1NCwxNyBAQAogIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAogIwogQ09ORklHX0lOUFVUPXkKLSMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRkZfTUVNTEVTUz15CitDT05GSUdfSU5QVVRfUE9MTERFVj15CiAKICMKICMgVXNlcmxhbmQgaW50ZXJmYWNlcwogIwogQ09ORklHX0lOUFVUX01PVVNFREVWPXkKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CisjIENPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWCBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKIENPTkZJR19JTlBVVF9FVkRFVj15CiAjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CiAKQEAgLTgzMiwxNyArMTA4OSw2MiBAQAogIyBDT05GSUdfTU9VU0VfU0VSSUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX0FQUExFVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfSk9ZU1RJQ0s9eQorIyBDT05GSUdfSk9ZU1RJQ0tfQU5BTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0EzRCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19BREkgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQ09CUkEgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR0YySyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HUklQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dSSVBfTVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1VJTExFTU9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0lOVEVSQUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NJREVXSU5ERVIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfVE1EQyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19JRk9SQ0UgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19NQUdFTExBTiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TUEFDRU9SQiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TUEFDRUJBTEwgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1RJTkdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19UV0lESk9ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1pIRU5IVUEgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSk9ZRFVNUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19YUEFEIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UQUJMRVQ9eQorIyBDT05GSUdfVEFCTEVUX1VTQl9BQ0VDQUQgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9BSVBURUsgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9HVENPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfS0JUQUIgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9XQUNPTSBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NSVNDPXkKKyMgQ09ORklHX0lOUFVUX1BDU1BLUiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BUEFORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRMQVNfQlROUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVElfUkVNT1RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUSV9SRU1PVEUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPV0VSTUFURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9ZRUFMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1VJTlBVVCBpcyBub3Qgc2V0CiAKICMKICMgSGFyZHdhcmUgSS9PIHBvcnRzCiAjCiBDT05GSUdfU0VSSU89eQogQ09ORklHX1NFUklPX0k4MDQyPXkKLSMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAorQ09ORklHX1NFUklPX1NFUlBPUlQ9eQogIyBDT05GSUdfU0VSSU9fQ1Q4MkM3MTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VSSU9fUENJUFMyIGlzIG5vdCBzZXQKIENPTkZJR19TRVJJT19MSUJQUzI9eQpAQCAtODU1LDggKzExNTcsMjYgQEAKIENPTkZJR19WVD15CiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkc9eQorQ09ORklHX0RFVktNRU09eQorQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CisjIENPTkZJR19DT01QVVRPTkUgaXMgbm90IHNldAorIyBDT05GSUdfUk9DS0VUUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19DWUNMQURFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ESUdJRVBDQSBpcyBub3Qgc2V0CisjIENPTkZJR19NT1hBX0lOVEVMTElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PWEFfU01BUlRJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JU0kgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTksgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTktNUCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOS19HVCBpcyBub3Qgc2V0CisjIENPTkZJR19OX0hETEMgaXMgbm90IHNldAorIyBDT05GSUdfUklTQ09NOCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldAorIyBDT05GSUdfU1ggaXMgbm90IHNldAorIyBDT05GSUdfUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUQUxEUlYgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIAogIwogIyBTZXJpYWwgZHJpdmVycwpAQCAtODY2LDkgKzExODYsMTQgQEAKIENPTkZJR19GSVhfRUFSTFlDT05fTUVNPXkKIENPTkZJR19TRVJJQUxfODI1MF9QQ0k9eQogQ09ORklHX1NFUklBTF84MjUwX1BOUD15Ci1DT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAorIyBDT05GSUdfU0VSSUFMXzgyNTBfQ1MgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTMyCiBDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz00Ci0jIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQ9eQorQ09ORklHX1NFUklBTF84MjUwX01BTllfUE9SVFM9eQorQ09ORklHX1NFUklBTF84MjUwX1NIQVJFX0lSUT15CitDT05GSUdfU0VSSUFMXzgyNTBfREVURUNUX0lSUT15CitDT05GSUdfU0VSSUFMXzgyNTBfUlNBPXkKIAogIwogIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CkBAIC04NzcsNzggKzEyMDIsMjYwIEBACiBDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CiAjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKIENPTkZJR19VTklYOThfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15Ci1DT05GSUdfSFdfUkFORE9NX0lOVEVMPXkKLUNPTkZJR19IV19SQU5ET01fQU1EPXkKLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLUNPTkZJR19SVEM9eQorIyBDT05GSUdfSFdfUkFORE9NX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTV9BTUQgaXMgbm90IHNldAorQ09ORklHX05WUkFNPXkKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKLUNPTkZJR19BR1A9eQotQ09ORklHX0FHUF9BTUQ2ND15Ci1DT05GSUdfQUdQX0lOVEVMPXkKLSMgQ09ORklHX0FHUF9TSVMgaXMgbm90IHNldAotIyBDT05GSUdfQUdQX1ZJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBjaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFdJUkVMRVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX01XQVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDODczNnhfR1BJTyBpcyBub3Qgc2V0Ci1DT05GSUdfUkFXX0RSSVZFUj15Ci1DT05GSUdfTUFYX1JBV19ERVZTPTI1NgorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFBFVD15CiAjIENPTkZJR19IUEVUX1JUQ19JUlEgaXMgbm90IHNldAotQ09ORklHX0hQRVRfTU1BUD15CisjIENPTkZJR19IUEVUX01NQVAgaXMgbm90IHNldAogIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfVEVMQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQotIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAogCiAjCi0jIFNQSSBzdXBwb3J0CisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIworIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1NjMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDc1NiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1EODExMSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX0k4MDE9eQorIyBDT05GSUdfSTJDX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CitDT05GSUdfUE9XRVJfU1VQUExZPXkKKyMgQ09ORklHX1BPV0VSX1NVUFBMWV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QREFfUE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfQkFUVEVSWV9EUzI3NjAgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUw9eQorQ09ORklHX1dBVENIRE9HPXkKKyMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ1FVSVJFX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRFZBTlRFQ0hfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FMSU0xNTM1X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BTElNNzEwMV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0M1MjBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VVUk9URUNIX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JQjcwMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSUJNQVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBRkVSX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JNjMwMEVTQl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSVRDT19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSVQ4NzEyRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSFBfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfU0MxMjAwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19QQzg3NDEzX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR182MFhYX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQkM4MzYwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFU1X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDMzdCNzg3X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM2MjdIRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzNjk3SEZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4Mzg3N0ZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4Mzk3N0ZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0haX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQkNfRVBYX0MzX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBQQ0ktYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKKyMgQ09ORklHX1BDSVBDV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfV0RUUENJIGlzIG5vdCBzZXQKKworIworIyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKKyMgQ09ORklHX1VTQlBDV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAogCiAjCiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19BR1A9eQorQ09ORklHX0FHUF9BTUQ2ND15CitDT05GSUdfQUdQX0lOVEVMPXkKKyMgQ09ORklHX0FHUF9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfQUdQX1ZJQSBpcyBub3Qgc2V0CitDT05GSUdfRFJNPXkKKyMgQ09ORklHX0RSTV9UREZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9SMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRFJNX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX0k4MzAgaXMgbm90IHNldAorQ09ORklHX0RSTV9JOTE1PXkKKyMgQ09ORklHX0RSTV9NR0EgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CitDT05GSUdfRkJfREVGRVJSRURfSU89eQorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorQ09ORklHX0ZCX01PREVfSEVMUEVSUz15CitDT05GSUdfRkJfVElMRUJMSVRUSU5HPXkKKworIworIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfQ0lSUlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1BNMiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DWUJFUjIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZHQTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1VWRVNBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZFU0EgaXMgbm90IHNldAorQ09ORklHX0ZCX0VGST15CisjIENPTkZJR19GQl9JTUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX040MTEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSEdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0xFODA1NzggaXMgbm90IHNldAorIyBDT05GSUdfRkJfSU5URUwgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFUUk9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkxMjggaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTkVPTUFHSUMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfS1lSTyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl8zREZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZPT0RPTzEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVlQ4NjIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1BNMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9HRU9ERSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQ9eQorIyBDT05GSUdfTENEX0NMQVNTX0RFVklDRSBpcyBub3Qgc2V0CitDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRT15CisjIENPTkZJR19CQUNLTElHSFRfQ09SR0kgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX1BST0dFQVIgaXMgbm90IHNldAogCiAjCiAjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKICMKICMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQiBpcyBub3Qgc2V0CiAKICMKICMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CiAjCiBDT05GSUdfVkdBX0NPTlNPTEU9eQogQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0s9eQotQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0tfU0laRT0yNTYKK0NPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLX1NJWkU9NjQKIENPTkZJR19WSURFT19TRUxFQ1Q9eQogQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfTE9HTz15CisjIENPTkZJR19MT0dPX0xJTlVYX01PTk8gaXMgbm90IHNldAorIyBDT05GSUdfTE9HT19MSU5VWF9WR0ExNiBpcyBub3Qgc2V0CitDT05GSUdfTE9HT19MSU5VWF9DTFVUMjI0PXkKIAogIwogIyBTb3VuZApAQCAtOTU4LDMzICsxNDY1LDE2NSBAQAogIwogIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKICMKLSMgQ09ORklHX1NORCBpcyBub3Qgc2V0CitDT05GSUdfU05EPXkKK0NPTkZJR19TTkRfVElNRVI9eQorQ09ORklHX1NORF9QQ009eQorQ09ORklHX1NORF9IV0RFUD15CitDT05GSUdfU05EX1NFUVVFTkNFUj15CitDT05GSUdfU05EX1NFUV9EVU1NWT15CitDT05GSUdfU05EX09TU0VNVUw9eQorQ09ORklHX1NORF9NSVhFUl9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTPXkKK0NPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKK0NPTkZJR19TTkRfU0VRVUVOQ0VSX09TUz15CitDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTPXkKK0NPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJPXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU05EX1ZNQVNURVI9eQorCisjCisjIEdlbmVyaWMgZGV2aWNlcworIworIyBDT05GSUdfU05EX1BDU1AgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJNSURJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVBVNDAxIGlzIG5vdCBzZXQKKworIworIyBQQ0kgZGV2aWNlcworIworIyBDT05GSUdfU05EX0FEMTg4OSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxTMzAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFM0MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTEk1NDUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUF9NT0RFTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DTUlQQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU05EX09YWUdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M0MjgxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNTUzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01PTkEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRUNITzNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0lPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09ESiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTkzOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9GTTgwMSBpcyBub3Qgc2V0CitDT05GSUdfU05EX0hEQV9JTlRFTD15CitDT05GSUdfU05EX0hEQV9IV0RFUD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19SRUFMVEVLPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0FOQUxPRz15CitDT05GSUdfU05EX0hEQV9DT0RFQ19TSUdNQVRFTD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19WSUE9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQVRJSERNST15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DT05FWEFOVD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DTUVESUE9eQorQ09ORklHX1NORF9IREFfQ09ERUNfU0kzMDU0PXkKK0NPTkZJR19TTkRfSERBX0dFTkVSSUM9eQorIyBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSElGSUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9LT1JHMTIxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUFFU1RSTzMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JWEFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTk0yNTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BDWEhSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9SSVBUSURFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2NTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUlRVT1NPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WWDIyMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfWU1GUENJIGlzIG5vdCBzZXQKKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX1VTWDJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9VU0JfQ0FJQVEgaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfVlhQT0NLRVQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BEQVVESU9DRiBpcyBub3Qgc2V0CisKKyMKKyMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAorIworIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CisKKyMKKyMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCisjCisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAorIwogCiAjCiAjIE9wZW4gU291bmQgU3lzdGVtCiAjCi1DT05GSUdfU09VTkRfUFJJTUU9eQotIyBDT05GSUdfU09VTkRfVFJJREVOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9NU05EQ0xBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9NU05EUElOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX09TUyBpcyBub3Qgc2V0CisjIENPTkZJR19TT1VORF9QUklNRSBpcyBub3Qgc2V0CiBDT05GSUdfSElEX1NVUFBPUlQ9eQogQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0hJRF9ERUJVRz15CitDT05GSUdfSElEUkFXPXkKIAogIwogIyBVU0IgSW5wdXQgRGV2aWNlcwogIwogQ09ORklHX1VTQl9ISUQ9eQotIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ISURfRkYgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSz15CitDT05GSUdfSElEX0ZGPXkKK0NPTkZJR19ISURfUElEPXkKK0NPTkZJR19MT0dJVEVDSF9GRj15CisjIENPTkZJR19MT0dJUlVNQkxFUEFEMl9GRiBpcyBub3Qgc2V0CitDT05GSUdfUEFOVEhFUkxPUkRfRkY9eQorQ09ORklHX1RIUlVTVE1BU1RFUl9GRj15CitDT05GSUdfWkVST1BMVVNfRkY9eQorQ09ORklHX1VTQl9ISURERVY9eQogQ09ORklHX1VTQl9TVVBQT1JUPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogQ09ORklHX1VTQj15Ci0jIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9ERUJVRz15CitDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTPXkKIAogIwogIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCkBAIC05OTIsMTggKzE2MzEsMTggQEAKIENPTkZJR19VU0JfREVWSUNFRlM9eQogIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVNQRU5EPXkKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15Ci0jIENPTkZJR19VU0JfRUhDSV9TUExJVF9JU08gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldApAQCAtMTAzNiw4ICsxNjc1LDEwIEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTElCVVNVQUw9eQogCiAjCiAjIFVTQiBJbWFnaW5nIGRldmljZXMKQEAgLTEwNDksMTAgKzE2OTAsNiBAQAogIwogIyBVU0IgcG9ydCBkcml2ZXJzCiAjCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwogIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNzgsOTggKzE3MTUsMTI2IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERTTCBtb2RlbSBzdXBwb3J0Ci0jCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0Ci0KLSMKLSMgTEVEIGRldmljZXMKLSMKLSMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CiAKICMKICMgTEVEIGRyaXZlcnMKICMKKyMgQ09ORklHX0xFRFNfQ0xFVk9fTUFJTCBpcyBub3Qgc2V0CiAKICMKICMgTEVEIFRyaWdnZXJzCiAjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorIyBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVCBpcyBub3Qgc2V0CisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAotIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CitDT05GSUdfRURBQz15CiAKICMKLSMgUmVhbCBUaW1lIENsb2NrCisjIFJlcG9ydGluZyBzdWJzeXN0ZW1zCiAjCi0jIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfRURBQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19FREFDX01NX0VEQUMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CisjIENPTkZJR19SVENfSENUT1NZUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAogCiAjCi0jIERNQSBFbmdpbmUgc3VwcG9ydAorIyBSVEMgaW50ZXJmYWNlcwogIwotIyBDT05GSUdfRE1BX0VOR0lORSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKIAogIwotIyBETUEgQ2xpZW50cworIyBJMkMgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9DTU9TPXkKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfRE1BREVWSUNFUz15CiAKICMKICMgRE1BIERldmljZXMKICMKLUNPTkZJR19WSVJUVUFMSVpBVElPTj15Ci0jIENPTkZJR19LVk0gaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKKyMgQ09ORklHX0lOVEVMX0lPQVRETUEgaXMgbm90IHNldAogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwogIyBGaXJtd2FyZSBEcml2ZXJzCiAjCiAjIENPTkZJR19FREQgaXMgbm90IHNldAorQ09ORklHX0VGSV9WQVJTPXkKICMgQ09ORklHX0RFTExfUkJVIGlzIG5vdCBzZXQKICMgQ09ORklHX0RDREJBUyBpcyBub3Qgc2V0CiBDT05GSUdfRE1JSUQ9eQorIyBDT05GSUdfSVNDU0lfSUJGVF9GSU5EIGlzIG5vdCBzZXQKIAogIwogIyBGaWxlIHN5c3RlbXMKICMKLUNPTkZJR19FWFQyX0ZTPXkKLUNPTkZJR19FWFQyX0ZTX1hBVFRSPXkKLUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAogQ09ORklHX0VYVDNfRlM9eQogQ09ORklHX0VYVDNfRlNfWEFUVFI9eQogQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlNfU0VDVVJJVFk9eQogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKICMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15Ci1DT05GSUdfUkVJU0VSRlNfRlM9eQotIyBDT05GSUdfUkVJU0VSRlNfQ0hFQ0sgaXMgbm90IHNldAotIyBDT05GSUdfUkVJU0VSRlNfUFJPQ19JTkZPIGlzIG5vdCBzZXQKLUNPTkZJR19SRUlTRVJGU19GU19YQVRUUj15Ci1DT05GSUdfUkVJU0VSRlNfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQotIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX1FVT1RBPXkKK0NPTkZJR19RVU9UQV9ORVRMSU5LX0lOVEVSRkFDRT15CisjIENPTkZJR19QUklOVF9RVU9UQV9XQVJOSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FGTVRfVjEgaXMgbm90IHNldAorQ09ORklHX1FGTVRfVjI9eQorQ09ORklHX1FVT1RBQ1RMPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQVVUT0ZTNF9GUz15CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTExODAsNyArMTg0NSw3IEBACiAjCiBDT05GSUdfSVNPOTY2MF9GUz15CiBDT05GSUdfSk9MSUVUPXkKLSMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfWklTT0ZTPXkKICMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTExOTgsMTMgKzE4NjMsMTMgQEAKICMKIENPTkZJR19QUk9DX0ZTPXkKIENPTkZJR19QUk9DX0tDT1JFPXkKK0NPTkZJR19QUk9DX1ZNQ09SRT15CiBDT05GSUdfUFJPQ19TWVNDVEw9eQogQ09ORklHX1NZU0ZTPXkKIENPTkZJR19UTVBGUz15CiBDT05GSUdfVE1QRlNfUE9TSVhfQUNMPXkKIENPTkZJR19IVUdFVExCRlM9eQogQ09ORklHX0hVR0VUTEJfUEFHRT15Ci1DT05GSUdfUkFNRlM9eQogIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAogCiAjCkBAIC0xMjEyLDYgKzE4NzcsNyBAQAogIwogIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDUllQVF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKQEAgLTEyMTksMzMgKzE4ODUsMTUgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotQ09ORklHX05GU0Q9eQotQ09ORklHX05GU0RfVjM9eQotIyBDT05GSUdfTkZTRF9WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQotQ09ORklHX1JPT1RfTkZTPXkKLUNPTkZJR19MT0NLRD15Ci1DT05GSUdfTE9DS0RfVjQ9eQotQ09ORklHX0VYUE9SVEZTPXkKLUNPTkZJR19ORlNfQ09NTU9OPXkKLUNPTkZJR19TVU5SUEM9eQotIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CisjIENPTkZJR19ORlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CiAjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldApAQCAtMTI1NSwxNCArMTkwMywyNiBAQAogIwogIyBQYXJ0aXRpb24gVHlwZXMKICMKLSMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfT1NGX1BBUlRJVElPTj15CitDT05GSUdfQU1JR0FfUEFSVElUSU9OPXkKKyMgQ09ORklHX0FUQVJJX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDX1BBUlRJVElPTj15CiBDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIworQ09ORklHX0JTRF9ESVNLTEFCRUw9eQorQ09ORklHX01JTklYX1NVQlBBUlRJVElPTj15CitDT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OPXkKK0NPTkZJR19VTklYV0FSRV9ESVNLTEFCRUw9eQorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfU0dJX1BBUlRJVElPTj15CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TVU5fUEFSVElUSU9OPXkKK0NPTkZJR19LQVJNQV9QQVJUSVRJT049eQorQ09ORklHX0VGSV9QQVJUSVRJT049eQorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19ERUZBVUxUPSJ1dGY4IgogQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQogIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKQEAgLTEyOTcsNDAgKzE5NTcsMzMgQEAKICMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAotQ09ORklHX05MU19JU084ODU5XzE1PXkKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CiBDT05GSUdfTkxTX1VURjg9eQotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwogIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKIAogIwotIyBJbnN0cnVtZW50YXRpb24gU3VwcG9ydAotIwotQ09ORklHX1BST0ZJTElORz15Ci1DT05GSUdfT1BST0ZJTEU9eQotQ09ORklHX0tQUk9CRVM9eQotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9XQVJOPTIwNDgKIENPTkZJR19NQUdJQ19TWVNSUT15Ci1DT05GSUdfVU5VU0VEX1NZTUJPTFM9eQorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0ZTPXkKICMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0tFUk5FTD15CiAjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0Ci1DT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorIyBDT05GSUdfREVURUNUX1NPRlRMT0NLVVAgaXMgbm90IHNldAogIyBDT05GSUdfU0NIRURfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CitDT05GSUdfU0NIRURTVEFUUz15CiBDT05GSUdfVElNRVJfU1RBVFM9eQotIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC0xMzQ0LDI4ICsxOTk3LDE2MiBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAotIyBDT05GSUdfRlJBTUVfUE9JTlRFUiBpcyBub3Qgc2V0Ci1DT05GSUdfT1BUSU1JWkVfSU5MSU5JTkc9eQorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAogIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JPREFUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JT01NVV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19MQVRFTkNZVE9QIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfS0dEQiBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9BUkNIX0tHREI9eQorIyBDT05GSUdfTk9OUFJPTUlTQ19ERVZNRU0gaXMgbm90IHNldAorQ09ORklHX0VBUkxZX1BSSU5USz15CiBDT05GSUdfREVCVUdfU1RBQ0tPVkVSRkxPVz15Ci0jIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0U9eQorIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUyBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfUFREVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19ST0RBVEE9eQorIyBDT05GSUdfRElSRUNUX0dCUEFHRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUk9EQVRBX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX05YX1RFU1Q9bQorQ09ORklHX1g4Nl9NUFBBUlNFPXkKKyMgQ09ORklHX0lPTU1VX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JT19ERUxBWV9UWVBFXzBYODA9MAorQ09ORklHX0lPX0RFTEFZX1RZUEVfMFhFRD0xCitDT05GSUdfSU9fREVMQVlfVFlQRV9VREVMQVk9MgorQ09ORklHX0lPX0RFTEFZX1RZUEVfTk9ORT0zCitDT05GSUdfSU9fREVMQVlfMFg4MD15CisjIENPTkZJR19JT19ERUxBWV8wWEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPX0RFTEFZX1VERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19JT19ERUxBWV9OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPX0RFTEFZX1RZUEU9MAorQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TPXkKKyMgQ09ORklHX0NQQV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKICMgU2VjdXJpdHkgb3B0aW9ucwogIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorQ09ORklHX0tFWVM9eQorQ09ORklHX0tFWVNfREVCVUdfUFJPQ19LRVlTPXkKK0NPTkZJR19TRUNVUklUWT15CitDT05GSUdfU0VDVVJJVFlfTkVUV09SSz15CisjIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0NBUEFCSUxJVElFUz15CitDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVM9eQorIyBDT05GSUdfU0VDVVJJVFlfUk9PVFBMVUcgaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0RFRkFVTFRfTU1BUF9NSU5fQUREUj02NTUzNgorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVg9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQk9PVFBBUkFNPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0JPT1RQQVJBTV9WQUxVRT0xCitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9ESVNBQkxFPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0RFVkVMT1A9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQVZDX1NUQVRTPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0NIRUNLUkVRUFJPVF9WQUxVRT0xCisjIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX0VOQUJMRV9TRUNNQVJLX0RFRkFVTFQgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9QT0xJQ1lEQl9WRVJTSU9OX01BWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TTUFDSyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQUVBRD15CitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX0hBU0g9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVVUSEVOQz15CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPXkKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworQ09ORklHX0NSWVBUT19ITUFDPXkKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TSEExPXkKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworQ09ORklHX0NSWVBUT19BRVM9eQorIyBDT05GSUdfQ1JZUFRPX0FFU19YODZfNjQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FSQzQ9eQorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMF9YODZfNjQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSF9YODZfNjQgaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1ZNPXkKK0NPTkZJR19WSVJUVUFMSVpBVElPTj15CisjIENPTkZJR19LVk0gaXMgbm90IHNldAorIyBDT05GSUdfVklSVElPX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUSU9fQkFMTE9PTiBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQ9eQorQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVD15CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2lhMzIvaWEzMmVudHJ5LlMgYi9hcmNoL3g4Ni9pYTMyL2lhMzJlbnRyeS5TCmluZGV4IGI1ZTMyOWQuLjIwMzcxZDAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2lhMzIvaWEzMmVudHJ5LlMKKysrIGIvYXJjaC94ODYvaWEzMi9pYTMyZW50cnkuUwpAQCAtNjEsNiArNjEsMTkgQEAKIAlDRklfVU5ERUZJTkVECXIxNQogCS5lbmRtCiAKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlQKK0VOVFJZKG5hdGl2ZV91c2VyZ3Nfc3lzcmV0MzIpCisJc3dhcGdzCisJc3lzcmV0bAorRU5EUFJPQyhuYXRpdmVfdXNlcmdzX3N5c3JldDMyKQorCitFTlRSWShuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KQorCXN3YXBncworCXN0aQorCXN5c2V4aXQKK0VORFBST0MobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKKyNlbmRpZgorCiAvKgogICogMzJiaXQgU1lTRU5URVIgaW5zdHJ1Y3Rpb24gZW50cnkuCiAgKgpAQCAtODUsMTQgKzk4LDE0IEBACiAJQ0ZJX1NJR05BTF9GUkFNRQogCUNGSV9ERUZfQ0ZBCXJzcCwwCiAJQ0ZJX1JFR0lTVEVSCXJzcCxyYnAKLQlzd2FwZ3MKKwlTV0FQR1NfVU5TQUZFX1NUQUNLCiAJbW92cQklZ3M6cGRhX2tlcm5lbHN0YWNrLCAlcnNwCiAJYWRkcQkkKFBEQV9TVEFDS09GRlNFVCksJXJzcAkKIAkvKgogCSAqIE5vIG5lZWQgdG8gZm9sbG93IHRoaXMgaXJxcyBvbi9vZmYgc2VjdGlvbjogdGhlIHN5c2NhbGwKIAkgKiBkaXNhYmxlZCBpcnFzLCBoZXJlIHdlIGVuYWJsZSBpdCBzdHJhaWdodCBhZnRlciBlbnRyeToKIAkgKi8KLQlzdGkJCisJRU5BQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogIAltb3ZsCSVlYnAsJWVicAkJLyogemVybyBleHRlbnNpb24gKi8KIAlwdXNocQkkX19VU0VSMzJfRFMKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOApAQCAtMTAzLDcgKzExNiw3IEBACiAJcHVzaGZxCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKIAkvKkNGSV9SRUxfT0ZGU0VUIHJmbGFncywwKi8KLQltb3ZsCTgqMy1USFJFQURfU0laRSt0aHJlYWRpbmZvX3N5c2VudGVyX3JldHVybiglcnNwKSwgJXIxMGQKKwltb3ZsCTgqMy1USFJFQURfU0laRStUSV9zeXNlbnRlcl9yZXR1cm4oJXJzcCksICVyMTBkCiAJQ0ZJX1JFR0lTVEVSIHJpcCxyMTAKIAlwdXNocQkkX19VU0VSMzJfQ1MKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOApAQCAtMTIzLDggKzEzNiw5IEBACiAgCS5xdWFkIDFiLGlhMzJfYmFkYXJnCiAgCS5wcmV2aW91cwkKIAlHRVRfVEhSRUFEX0lORk8oJXIxMCkKLQlvcmwgICAgJFRTX0NPTVBBVCx0aHJlYWRpbmZvX3N0YXR1cyglcjEwKQotCXRlc3RsICAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSx0aHJlYWRpbmZvX2ZsYWdzKCVyMTApCisJb3JsICAgICRUU19DT01QQVQsVElfc3RhdHVzKCVyMTApCisJdGVzdGwgICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLCBcCisJCSBUSV9mbGFncyglcjEwKQogCUNGSV9SRU1FTUJFUl9TVEFURQogCWpueiAgc3lzZW50ZXJfdHJhY2VzeXMKIHN5c2VudGVyX2RvX2NhbGw6CQpAQCAtMTM0LDExICsxNDgsMTEgQEAKIAljYWxsCSppYTMyX3N5c19jYWxsX3RhYmxlKCwlcmF4LDgpCiAJbW92cQklcmF4LFJBWC1BUkdPRkZTRVQoJXJzcCkKIAlHRVRfVEhSRUFEX0lORk8oJXIxMCkKLQljbGkKKwlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLHRocmVhZGluZm9fZmxhZ3MoJXIxMCkKKwl0ZXN0bAkkX1RJRl9BTExXT1JLX01BU0ssVElfZmxhZ3MoJXIxMCkKIAlqbnoJaW50X3JldF9mcm9tX3N5c19jYWxsCi0JYW5kbCAgICAkflRTX0NPTVBBVCx0aHJlYWRpbmZvX3N0YXR1cyglcjEwKQorCWFuZGwgICAgJH5UU19DT01QQVQsVElfc3RhdHVzKCVyMTApCiAJLyogY2xlYXIgSUYsIHRoYXQgcG9wZnEgZG9lc24ndCBlbmFibGUgaW50ZXJydXB0cyBlYXJseSAqLwogCWFuZGwgICR+MHgyMDAsRUZMQUdTLVIxMSglcnNwKSAKIAltb3ZsCVJJUC1SMTEoJXJzcCksJWVkeAkJLyogVXNlciAlZWlwICovCkBAIC0xNTEsMTAgKzE2NSw3IEBACiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC04CiAJQ0ZJX1JFR0lTVEVSIHJzcCxyY3gKIAlUUkFDRV9JUlFTX09OCi0Jc3dhcGdzCi0Jc3RpCQkvKiBzdGkgb25seSB0YWtlcyBlZmZlY3QgYWZ0ZXIgdGhlIG5leHQgaW5zdHJ1Y3Rpb24gKi8KLQkvKiBzeXNleGl0ICovCi0JLmJ5dGUJMHhmLCAweDM1CisJRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVDMyCiAKIHN5c2VudGVyX3RyYWNlc3lzOgogCUNGSV9SRVNUT1JFX1NUQVRFCkBAIC0yMDAsNyArMjExLDcgQEAKIAlDRklfREVGX0NGQQlyc3AsUERBX1NUQUNLT0ZGU0VUCiAJQ0ZJX1JFR0lTVEVSCXJpcCxyY3gKIAkvKkNGSV9SRUdJU1RFUglyZmxhZ3MscjExKi8KLQlzd2FwZ3MKKwlTV0FQR1NfVU5TQUZFX1NUQUNLCiAJbW92bAklZXNwLCVyOGQKIAlDRklfUkVHSVNURVIJcnNwLHI4CiAJbW92cQklZ3M6cGRhX2tlcm5lbHN0YWNrLCVyc3AKQEAgLTIwOCw3ICsyMTksNyBAQAogCSAqIE5vIG5lZWQgdG8gZm9sbG93IHRoaXMgaXJxcyBvbi9vZmYgc2VjdGlvbjogdGhlIHN5c2NhbGwKIAkgKiBkaXNhYmxlZCBpcnFzIGFuZCBoZXJlIHdlIGVuYWJsZSBpdCBzdHJhaWdodCBhZnRlciBlbnRyeToKIAkgKi8KLQlzdGkKKwlFTkFCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJU0FWRV9BUkdTIDgsMSwxCiAJbW92bCAJJWVheCwlZWF4CS8qIHplcm8gZXh0ZW5zaW9uICovCiAJbW92cQklcmF4LE9SSUdfUkFYLUFSR09GRlNFVCglcnNwKQpAQCAtMjMwLDggKzI0MSw5IEBACiAJLnF1YWQgMWIsaWEzMl9iYWRhcmcKIAkucHJldmlvdXMJCiAJR0VUX1RIUkVBRF9JTkZPKCVyMTApCi0Jb3JsICAgJFRTX0NPTVBBVCx0aHJlYWRpbmZvX3N0YXR1cyglcjEwKQotCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLHRocmVhZGluZm9fZmxhZ3MoJXIxMCkKKwlvcmwgICAkVFNfQ09NUEFULFRJX3N0YXR1cyglcjEwKQorCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLCBcCisJCVRJX2ZsYWdzKCVyMTApCiAJQ0ZJX1JFTUVNQkVSX1NUQVRFCiAJam56ICAgY3N0YXJfdHJhY2VzeXMKIGNzdGFyX2RvX2NhbGw6CQpAQCAtMjQxLDExICsyNTMsMTEgQEAKIAljYWxsICppYTMyX3N5c19jYWxsX3RhYmxlKCwlcmF4LDgpCiAJbW92cSAlcmF4LFJBWC1BUkdPRkZTRVQoJXJzcCkKIAlHRVRfVEhSRUFEX0lORk8oJXIxMCkKLQljbGkKKwlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JdGVzdGwgJF9USUZfQUxMV09SS19NQVNLLHRocmVhZGluZm9fZmxhZ3MoJXIxMCkKKwl0ZXN0bCAkX1RJRl9BTExXT1JLX01BU0ssVElfZmxhZ3MoJXIxMCkKIAlqbnogIGludF9yZXRfZnJvbV9zeXNfY2FsbAotCWFuZGwgJH5UU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXIxMCkKKwlhbmRsICR+VFNfQ09NUEFULFRJX3N0YXR1cyglcjEwKQogCVJFU1RPUkVfQVJHUyAxLC1BUkdfU0tJUCwxLDEsMQogCW1vdmwgUklQLUFSR09GRlNFVCglcnNwKSwlZWN4CiAJQ0ZJX1JFR0lTVEVSIHJpcCxyY3gKQEAgLTI1NCw4ICsyNjYsNyBAQAogCVRSQUNFX0lSUVNfT04KIAltb3ZsIFJTUC1BUkdPRkZTRVQoJXJzcCksJWVzcAogCUNGSV9SRVNUT1JFIHJzcAotCXN3YXBncwotCXN5c3JldGwKKwlVU0VSR1NfU1lTUkVUMzIKIAkKIGNzdGFyX3RyYWNlc3lzOgkKIAlDRklfUkVTVE9SRV9TVEFURQpAQCAtMzEwLDEyICszMjEsMTIgQEAKIAkvKkNGSV9SRUxfT0ZGU0VUCXJmbGFncyxFRkxBR1MtUklQKi8KIAkvKkNGSV9SRUxfT0ZGU0VUCWNzLENTLVJJUCovCiAJQ0ZJX1JFTF9PRkZTRVQJcmlwLFJJUC1SSVAKLQlzd2FwZ3MKKwlTV0FQR1MKIAkvKgogCSAqIE5vIG5lZWQgdG8gZm9sbG93IHRoaXMgaXJxcyBvbi9vZmYgc2VjdGlvbjogdGhlIHN5c2NhbGwKIAkgKiBkaXNhYmxlZCBpcnFzIGFuZCBoZXJlIHdlIGVuYWJsZSBpdCBzdHJhaWdodCBhZnRlciBlbnRyeToKIAkgKi8KLQlzdGkKKwlFTkFCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJbW92bCAlZWF4LCVlYXgKIAlwdXNocSAlcmF4CiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKQEAgLTMyNCw4ICszMzUsOSBAQAogCSAgIHRoaXMgY291bGQgYmUgYSBwcm9ibGVtLiAqLwogCVNBVkVfQVJHUyAwLDAsMQogCUdFVF9USFJFQURfSU5GTyglcjEwKQotCW9ybCAgICRUU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXIxMCkKLQl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSx0aHJlYWRpbmZvX2ZsYWdzKCVyMTApCisJb3JsICAgJFRTX0NPTVBBVCxUSV9zdGF0dXMoJXIxMCkKKwl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSwgXAorCQlUSV9mbGFncyglcjEwKQogCWpueiBpYTMyX3RyYWNlc3lzCiBpYTMyX2RvX3N5c2NhbGw6CQogCWNtcGwgJChJQTMyX05SX3N5c2NhbGxzLTEpLCVlYXgKQEAgLTM3MCwxMyArMzgyLDExIEBACiAJUFRSRUdTQ0FMTCBzdHViMzJfcnRfc2lncmV0dXJuLCBzeXMzMl9ydF9zaWdyZXR1cm4sICVyZGkKIAlQVFJFR1NDQUxMIHN0dWIzMl9zaWdyZXR1cm4sIHN5czMyX3NpZ3JldHVybiwgJXJkaQogCVBUUkVHU0NBTEwgc3R1YjMyX3NpZ2FsdHN0YWNrLCBzeXMzMl9zaWdhbHRzdGFjaywgJXJkeAotCVBUUkVHU0NBTEwgc3R1YjMyX3NpZ3N1c3BlbmQsIHN5czMyX3NpZ3N1c3BlbmQsICVyY3gKIAlQVFJFR1NDQUxMIHN0dWIzMl9leGVjdmUsIHN5czMyX2V4ZWN2ZSwgJXJjeAogCVBUUkVHU0NBTEwgc3R1YjMyX2ZvcmssIHN5c19mb3JrLCAlcmRpCiAJUFRSRUdTQ0FMTCBzdHViMzJfY2xvbmUsIHN5czMyX2Nsb25lLCAlcmR4CiAJUFRSRUdTQ0FMTCBzdHViMzJfdmZvcmssIHN5c192Zm9yaywgJXJkaQogCVBUUkVHU0NBTEwgc3R1YjMyX2lvcGwsIHN5c19pb3BsLCAlcnNpCi0JUFRSRUdTQ0FMTCBzdHViMzJfcnRfc2lnc3VzcGVuZCwgc3lzX3J0X3NpZ3N1c3BlbmQsICVyZHgKIAogRU5UUlkoaWEzMl9wdHJlZ3NfY29tbW9uKQogCXBvcHEgJXIxMQpAQCAtNDc2LDcgKzQ4Niw3IEBACiAJLnF1YWQgc3lzX3NzZXRtYXNrCiAJLnF1YWQgc3lzX3NldHJldWlkMTYJLyogNzAgKi8KIAkucXVhZCBzeXNfc2V0cmVnaWQxNgotCS5xdWFkIHN0dWIzMl9zaWdzdXNwZW5kCisJLnF1YWQgc3lzMzJfc2lnc3VzcGVuZAogCS5xdWFkIGNvbXBhdF9zeXNfc2lncGVuZGluZwogCS5xdWFkIHN5c19zZXRob3N0bmFtZQogCS5xdWFkIGNvbXBhdF9zeXNfc2V0cmxpbWl0CS8qIDc1ICovCkBAIC01ODMsNyArNTkzLDcgQEAKIAkucXVhZCBzeXMzMl9ydF9zaWdwZW5kaW5nCiAJLnF1YWQgY29tcGF0X3N5c19ydF9zaWd0aW1lZHdhaXQKIAkucXVhZCBzeXMzMl9ydF9zaWdxdWV1ZWluZm8KLQkucXVhZCBzdHViMzJfcnRfc2lnc3VzcGVuZAorCS5xdWFkIHN5c19ydF9zaWdzdXNwZW5kCiAJLnF1YWQgc3lzMzJfcHJlYWQJCS8qIDE4MCAqLwogCS5xdWFkIHN5czMyX3B3cml0ZQogCS5xdWFkIHN5c19jaG93bjE2CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvLmdpdGlnbm9yZSBiL2FyY2gveDg2L2tlcm5lbC8uZ2l0aWdub3JlCmluZGV4IDRlYTM4YTMuLjA4ZjRmZDcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC8uZ2l0aWdub3JlCisrKyBiL2FyY2gveDg2L2tlcm5lbC8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMyBAQAogdnN5c2NhbGwubGRzCiB2c3lzY2FsbF8zMi5sZHMKK3ZtbGludXgubGRzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKaW5kZXggNWU2MThjMy4uNTExMmM4NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQpAQCAtMiwxMCArMiwxNyBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIGxpbnV4IGtlcm5lbC4KICMKIAotZXh0cmEteSAgICAgICAgICAgICAgICA6PSBoZWFkXyQoQklUUykubyBoZWFkJChCSVRTKS5vIGluaXRfdGFzay5vIHZtbGludXgubGRzCitleHRyYS15ICAgICAgICAgICAgICAgIDo9IGhlYWRfJChCSVRTKS5vIGhlYWQkKEJJVFMpLm8gaGVhZC5vIGluaXRfdGFzay5vIHZtbGludXgubGRzCiAKIENQUEZMQUdTX3ZtbGludXgubGRzICs9IC1VJChVVFNfTUFDSElORSkKIAoraWZkZWYgQ09ORklHX0ZUUkFDRQorIyBEbyBub3QgcHJvZmlsZSBkZWJ1ZyB1dGlsaXRpZXMKK0NGTEFHU19SRU1PVkVfdHNjXzY0Lm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfdHNjXzMyLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfcnRjLm8gPSAtcGcKK2VuZGlmCisKICMKICMgdnN5c2NhbGxzICh3aGljaCB3b3JrIG9uIHRoZSB1c2VyIHN0YWNrKSBzaG91bGQgaGF2ZQogIyBubyBzdGFjay1wcm90ZWN0b3IgY2hlY2tzOgpAQCAtMTMsMjAgKzIwLDIxIEBACiBub3N0YWNrcCA6PSAkKGNhbGwgY2Mtb3B0aW9uLCAtZm5vLXN0YWNrLXByb3RlY3RvcikKIENGTEFHU192c3lzY2FsbF82NC5vCTo9ICQoUFJPRklMSU5HKSAtZzAgJChub3N0YWNrcCkKIENGTEFHU19ocGV0Lm8JCTo9ICQobm9zdGFja3ApCi1DRkxBR1NfdHNjXzY0Lm8JCTo9ICQobm9zdGFja3ApCitDRkxBR1NfdHNjLm8JCTo9ICQobm9zdGFja3ApCiAKIG9iai15CQkJOj0gcHJvY2Vzc18kKEJJVFMpLm8gc2lnbmFsXyQoQklUUykubyBlbnRyeV8kKEJJVFMpLm8KIG9iai15CQkJKz0gdHJhcHNfJChCSVRTKS5vIGlycV8kKEJJVFMpLm8KIG9iai15CQkJKz0gdGltZV8kKEJJVFMpLm8gaW9wb3J0Lm8gbGR0Lm8KLW9iai15CQkJKz0gc2V0dXBfJChCSVRTKS5vIGk4MjU5XyQoQklUUykubyBzZXR1cC5vCitvYmoteQkJCSs9IHNldHVwLm8gaTgyNTkubyBpcnFpbml0XyQoQklUUykubyBzZXR1cF9wZXJjcHUubworb2JqLSQoQ09ORklHX1g4Nl9WSVNXUykJKz0gdmlzd3NfcXVpcmtzLm8KK29iai0kKENPTkZJR19YODZfMzIpCSs9IHByb2JlX3JvbXNfMzIubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gc3lzX2kzODZfMzIubyBpMzg2X2tzeW1zXzMyLm8KIG9iai0kKENPTkZJR19YODZfNjQpCSs9IHN5c194ODZfNjQubyB4ODY2NF9rc3ltc182NC5vCi1vYmotJChDT05GSUdfWDg2XzY0KQkrPSBzeXNjYWxsXzY0Lm8gdnN5c2NhbGxfNjQubyBzZXR1cDY0Lm8KLW9iai15CQkJKz0gYm9vdGZsYWcubyBlODIwXyQoQklUUykubworb2JqLSQoQ09ORklHX1g4Nl82NCkJKz0gc3lzY2FsbF82NC5vIHZzeXNjYWxsXzY0Lm8KK29iai15CQkJKz0gYm9vdGZsYWcubyBlODIwLm8KIG9iai15CQkJKz0gcGNpLWRtYS5vIHF1aXJrcy5vIGk4MjM3Lm8gdG9wb2xvZ3kubyBrZGVidWdmcy5vCiBvYmoteQkJCSs9IGFsdGVybmF0aXZlLm8gaTgyNTMubyBwY2ktbm9tbXUubwotb2JqLSQoQ09ORklHX1g4Nl82NCkJKz0gYnVnc182NC5vCi1vYmoteQkJCSs9IHRzY18kKEJJVFMpLm8gaW9fZGVsYXkubyBydGMubworb2JqLXkJCQkrPSB0c2MubyBpb19kZWxheS5vIHJ0Yy5vCiAKIG9iai0kKENPTkZJR19YODZfVFJBTVBPTElORSkJKz0gdHJhbXBvbGluZS5vCiBvYmoteQkJCQkrPSBwcm9jZXNzLm8KQEAgLTUzLDkgKzYxLDEwIEBACiBvYmotJChDT05GSUdfWDg2XzY0X1NNUCkJKz0gdHNjX3N5bmMubyBzbXBjb21tb24ubwogb2JqLSQoQ09ORklHX1g4Nl9UUkFNUE9MSU5FKQkrPSB0cmFtcG9saW5lXyQoQklUUykubwogb2JqLSQoQ09ORklHX1g4Nl9NUFBBUlNFKQkrPSBtcHBhcnNlLm8KLW9iai0kKENPTkZJR19YODZfTE9DQUxfQVBJQykJKz0gYXBpY18kKEJJVFMpLm8gbm1pXyQoQklUUykubworb2JqLSQoQ09ORklHX1g4Nl9MT0NBTF9BUElDKQkrPSBhcGljXyQoQklUUykubyBubWkubwogb2JqLSQoQ09ORklHX1g4Nl9JT19BUElDKQkrPSBpb19hcGljXyQoQklUUykubwogb2JqLSQoQ09ORklHX1g4Nl9SRUJPT1RGSVhVUFMpCSs9IHJlYm9vdF9maXh1cHNfMzIubworb2JqLSQoQ09ORklHX0RZTkFNSUNfRlRSQUNFKQkrPSBmdHJhY2Uubwogb2JqLSQoQ09ORklHX0tFWEVDKQkJKz0gbWFjaGluZV9rZXhlY18kKEJJVFMpLm8KIG9iai0kKENPTkZJR19LRVhFQykJCSs9IHJlbG9jYXRlX2tlcm5lbF8kKEJJVFMpLm8gY3Jhc2gubwogb2JqLSQoQ09ORklHX0NSQVNIX0RVTVApCSs9IGNyYXNoX2R1bXBfJChCSVRTKS5vCkBAIC02NCw3ICs3Myw2IEBACiBvYmoteQkJCQkrPSB2c21wXzY0Lm8KIG9iai0kKENPTkZJR19LUFJPQkVTKQkJKz0ga3Byb2Jlcy5vCiBvYmotJChDT05GSUdfTU9EVUxFUykJCSs9IG1vZHVsZV8kKEJJVFMpLm8KLW9iai0kKENPTkZJR19BQ1BJX1NSQVQpIAkrPSBzcmF0XzMyLm8KIG9iai0kKENPTkZJR19FRkkpIAkJKz0gZWZpLm8gZWZpXyQoQklUUykubyBlZmlfc3R1Yl8kKEJJVFMpLm8KIG9iai0kKENPTkZJR19ET1VCTEVGQVVMVCkgCSs9IGRvdWJsZWZhdWx0XzMyLm8KIG9iai0kKENPTkZJR19LR0RCKQkJKz0ga2dkYi5vCkBAIC04Miw2ICs5MCw3IEBACiBvYmotJChDT05GSUdfS1ZNX0dVRVNUKQkJKz0ga3ZtLm8KIG9iai0kKENPTkZJR19LVk1fQ0xPQ0spCQkrPSBrdm1jbG9jay5vCiBvYmotJChDT05GSUdfUEFSQVZJUlQpCQkrPSBwYXJhdmlydC5vIHBhcmF2aXJ0X3BhdGNoXyQoQklUUykubworb2JqLSQoQ09ORklHX1BBUkFWSVJUX0NMT0NLKQkrPSBwdmNsb2NrLm8KIAogb2JqLSQoQ09ORklHX1BDU1BLUl9QTEFURk9STSkJKz0gcGNzcGVha2VyLm8KIApAQCAtOTMsMTIgKzEwMiwxMyBAQAogIyMjCiAjIDY0IGJpdCBzcGVjaWZpYyBmaWxlcwogaWZlcSAoJChDT05GSUdfWDg2XzY0KSx5KQotICAgICAgICBvYmoteQkJCQkrPSBnZW5hcGljXzY0Lm8gZ2VuYXBpY19mbGF0XzY0Lm8gZ2VueDJhcGljX3V2X3gubworICAgICAgICBvYmoteQkJCQkrPSBnZW5hcGljXzY0Lm8gZ2VuYXBpY19mbGF0XzY0Lm8gZ2VueDJhcGljX3V2X3gubyB0bGJfdXYubwogICAgICAgICBvYmotJChDT05GSUdfWDg2X1BNX1RJTUVSKQkrPSBwbXRpbWVyXzY0Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX0FVRElUKQkJKz0gYXVkaXRfNjQubwogCiAgICAgICAgIG9iai0kKENPTkZJR19HQVJUX0lPTU1VKQkrPSBwY2ktZ2FydF82NC5vIGFwZXJ0dXJlXzY0Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX0NBTEdBUllfSU9NTVUpCSs9IHBjaS1jYWxnYXJ5XzY0Lm8gdGNlXzY0Lm8KKyAgICAgICAgb2JqLSQoQ09ORklHX0FNRF9JT01NVSkJCSs9IGFtZF9pb21tdV9pbml0Lm8gYW1kX2lvbW11Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX1NXSU9UTEIpCQkrPSBwY2ktc3dpb3RsYl82NC5vCiAKICAgICAgICAgb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykJKz0gbW1jb25mLWZhbTEwaF82NC5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMKaW5kZXggMzNjNTIxNi4uZjQ4OWQ3YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL2Jvb3QuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KICNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KQEAgLTEwNiwyMSArMTA3LDYgQEAKICAqLwogZW51bSBhY3BpX2lycV9tb2RlbF9pZCBhY3BpX2lycV9tb2RlbCA9IEFDUElfSVJRX01PREVMX1BJQzsKIAotI2lmZGVmCUNPTkZJR19YODZfNjQKLQotLyogcmVseSBvbiBhbGwgQUNQSSB0YWJsZXMgYmVpbmcgaW4gdGhlIGRpcmVjdCBtYXBwaW5nICovCi1jaGFyICpfX2luaXQgX19hY3BpX21hcF90YWJsZSh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCWlmICghcGh5c19hZGRyIHx8ICFzaXplKQotCQlyZXR1cm4gTlVMTDsKLQotCWlmIChwaHlzX2FkZHIrc2l6ZSA8PSAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkgKyBQQUdFX1NJWkUpCi0JCXJldHVybiBfX3ZhKHBoeXNfYWRkcik7Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotI2Vsc2UKIAogLyoKICAqIFRlbXBvcmFyaWx5IHVzZSB0aGUgdmlydHVhbCBhcmVhIHN0YXJ0aW5nIGZyb20gRklYX0lPX0FQSUNfQkFTRV9FTkQsCkBAIC0xMzksMTEgKzEyNSwxNSBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZSwgb2Zmc2V0LCBtYXBwZWRfc2l6ZTsKIAlpbnQgaWR4OwogCi0JaWYgKHBoeXMgKyBzaXplIDwgOCAqIDEwMjQgKiAxMDI0KQorCWlmICghcGh5cyB8fCAhc2l6ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAocGh5cytzaXplIDw9IChtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCiAJCXJldHVybiBfX3ZhKHBoeXMpOwogCiAJb2Zmc2V0ID0gcGh5cyAmIChQQUdFX1NJWkUgLSAxKTsKIAltYXBwZWRfc2l6ZSA9IFBBR0VfU0laRSAtIG9mZnNldDsKKwljbGVhcl9maXhtYXAoRklYX0FDUElfRU5EKTsKIAlzZXRfZml4bWFwKEZJWF9BQ1BJX0VORCwgcGh5cyk7CiAJYmFzZSA9IGZpeF90b192aXJ0KEZJWF9BQ1BJX0VORCk7CiAKQEAgLTE1NSwxMyArMTQ1LDEzIEBACiAJCWlmICgtLWlkeCA8IEZJWF9BQ1BJX0JFR0lOKQogCQkJcmV0dXJuIE5VTEw7CS8qIGNhbm5vdCBoYW5kbGUgdGhpcyAqLwogCQlwaHlzICs9IFBBR0VfU0laRTsKKwkJY2xlYXJfZml4bWFwKGlkeCk7CiAJCXNldF9maXhtYXAoaWR4LCBwaHlzKTsKIAkJbWFwcGVkX3NpemUgKz0gUEFHRV9TSVpFOwogCX0KIAogCXJldHVybiAoKHVuc2lnbmVkIGNoYXIgKiliYXNlICsgb2Zmc2V0KTsKIH0KLSNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BDSV9NTUNPTkZJRwogLyogVGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIE1NQ09ORklHIGFwZXJ0dXJlLiAgU2V0IGZyb20gQUNQSSB0YWJsZXMuICovCkBAIC0zMzgsOCArMzI4LDYgQEAKIAogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCi1zdHJ1Y3QgbXBfaW9hcGljX3JvdXRpbmcgbXBfaW9hcGljX3JvdXRpbmdbTUFYX0lPX0FQSUNTXTsKLQogc3RhdGljIGludCBfX2luaXQKIGFjcGlfcGFyc2VfaW9hcGljKHN0cnVjdCBhY3BpX3N1YnRhYmxlX2hlYWRlciAqIGhlYWRlciwgY29uc3QgdW5zaWduZWQgbG9uZyBlbmQpCiB7CkBAIC01MTQsOCArNTAyLDYgQEAKIAkgKiBNYWtlIHN1cmUgYWxsIChsZWdhY3kpIFBDSSBJUlFzIGFyZSBzZXQgYXMgbGV2ZWwtdHJpZ2dlcmVkLgogCSAqLwogCWlmIChhY3BpX2lycV9tb2RlbCA9PSBBQ1BJX0lSUV9NT0RFTF9QSUMpIHsKLQkJZXh0ZXJuIHZvaWQgZWlzYV9zZXRfbGV2ZWxfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotCiAJCWlmICh0cmlnZ2VyaW5nID09IEFDUElfTEVWRUxfU0VOU0lUSVZFKQogCQkJZWlzYV9zZXRfbGV2ZWxfaXJxKGdzaSk7CiAJfQpAQCAtODYwLDYgKzg0NiwzNjQgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmCUNPTkZJR19YODZfSU9fQVBJQworI2RlZmluZSBNUF9JU0FfQlVTCQkwCisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorZXh0ZXJuIGludCBlczcwMDBfcGxhdDsKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHsKKwlpbnQgYXBpY19pZDsKKwlpbnQgZ3NpX2Jhc2U7CisJaW50IGdzaV9lbmQ7CisJREVDTEFSRV9CSVRNQVAocGluX3Byb2dyYW1tZWQsIE1QX01BWF9JT0FQSUNfUElOICsgMSk7Cit9IG1wX2lvYXBpY19yb3V0aW5nW01BWF9JT19BUElDU107CisKK3N0YXRpYyBpbnQgbXBfZmluZF9pb2FwaWMoaW50IGdzaSkKK3sKKwlpbnQgaSA9IDA7CisKKwkvKiBGaW5kIHRoZSBJT0FQSUMgdGhhdCBtYW5hZ2VzIHRoaXMgR1NJLiAqLworCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspIHsKKwkJaWYgKChnc2kgPj0gbXBfaW9hcGljX3JvdXRpbmdbaV0uZ3NpX2Jhc2UpCisJCSAgICAmJiAoZ3NpIDw9IG1wX2lvYXBpY19yb3V0aW5nW2ldLmdzaV9lbmQpKQorCQkJcmV0dXJuIGk7CisJfQorCisJcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogVW5hYmxlIHRvIGxvY2F0ZSBJT0FQSUMgZm9yIEdTSSAlZFxuIiwgZ3NpKTsKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB1OCBfX2luaXQgdW5pcV9pb2FwaWNfaWQodTggaWQpCit7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpICYmCisJICAgICFBUElDX1hBUElDKGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdKSkKKwkJcmV0dXJuIGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChucl9pb2FwaWNzLCBpZCk7CisJZWxzZQorCQlyZXR1cm4gaWQ7CisjZWxzZQorCWludCBpOworCURFQ0xBUkVfQklUTUFQKHVzZWQsIDI1Nik7CisJYml0bWFwX3plcm8odXNlZCwgMjU2KTsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCXN0cnVjdCBtcF9jb25maWdfaW9hcGljICppYSA9ICZtcF9pb2FwaWNzW2ldOworCQlfX3NldF9iaXQoaWEtPm1wX2FwaWNpZCwgdXNlZCk7CisJfQorCWlmICghdGVzdF9iaXQoaWQsIHVzZWQpKQorCQlyZXR1cm4gaWQ7CisJcmV0dXJuIGZpbmRfZmlyc3RfemVyb19iaXQodXNlZCwgMjU2KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IGJhZF9pb2FwaWModW5zaWduZWQgbG9uZyBhZGRyZXNzKQoreworCWlmIChucl9pb2FwaWNzID49IE1BWF9JT19BUElDUykgeworCQlwcmludGsoS0VSTl9FUlIgIkVSUk9SOiBNYXggIyBvZiBJL08gQVBJQ3MgKCVkKSBleGNlZWRlZCAiCisJCSAgICAgICAiKGZvdW5kICVkKVxuIiwgTUFYX0lPX0FQSUNTLCBucl9pb2FwaWNzKTsKKwkJcGFuaWMoIlJlY29tcGlsZSBrZXJuZWwgd2l0aCBiaWdnZXIgTUFYX0lPX0FQSUNTIVxuIik7CisJfQorCWlmICghYWRkcmVzcykgeworCQlwcmludGsoS0VSTl9FUlIgIldBUk5JTkc6IEJvZ3VzICh6ZXJvKSBJL08gQVBJQyBhZGRyZXNzIgorCQkgICAgICAgIiBmb3VuZCBpbiB0YWJsZSwgc2tpcHBpbmchXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBtcF9yZWdpc3Rlcl9pb2FwaWMoaW50IGlkLCB1MzIgYWRkcmVzcywgdTMyIGdzaV9iYXNlKQoreworCWludCBpZHggPSAwOworCisJaWYgKGJhZF9pb2FwaWMoYWRkcmVzcykpCisJCXJldHVybjsKKworCWlkeCA9IG5yX2lvYXBpY3M7CisKKwltcF9pb2FwaWNzW2lkeF0ubXBfdHlwZSA9IE1QX0lPQVBJQzsKKwltcF9pb2FwaWNzW2lkeF0ubXBfZmxhZ3MgPSBNUENfQVBJQ19VU0FCTEU7CisJbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyID0gYWRkcmVzczsKKworCXNldF9maXhtYXBfbm9jYWNoZShGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgsIGFkZHJlc3MpOworCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljaWQgPSB1bmlxX2lvYXBpY19pZChpZCk7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljdmVyID0gaW9fYXBpY19nZXRfdmVyc2lvbihpZHgpOworI2Vsc2UKKwltcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciA9IDA7CisjZW5kaWYKKwkvKgorCSAqIEJ1aWxkIGJhc2ljIEdTSSBsb29rdXAgdGFibGUgdG8gZmFjaWxpdGF0ZSBnc2ktPmlvX2FwaWMgbG9va3VwcworCSAqIGFuZCB0byBwcmV2ZW50IHJlcHJvZ3JhbW1pbmcgb2YgSU9BUElDIHBpbnMgKFBDSSBHU0lzKS4KKwkgKi8KKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmFwaWNfaWQgPSBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkOworCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UgPSBnc2lfYmFzZTsKKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQgPSBnc2lfYmFzZSArCisJICAgIGlvX2FwaWNfZ2V0X3JlZGlyX2VudHJpZXMoaWR4KTsKKworCXByaW50ayhLRVJOX0lORk8gIklPQVBJQ1slZF06IGFwaWNfaWQgJWQsIHZlcnNpb24gJWQsIGFkZHJlc3MgMHglbHgsICIKKwkgICAgICAgIkdTSSAlZC0lZFxuIiwgaWR4LCBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkLAorCSAgICAgICBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciwgbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyLAorCSAgICAgICBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9iYXNlLCBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQpOworCisJbnJfaW9hcGljcysrOworfQorCitzdGF0aWMgdm9pZCBhc3NpZ25fdG9fbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptLAorCQkJCSAgICBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCW1lbWNweShtcF9pcnEsIG0sIHNpemVvZihzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYykpOworfQorCitzdGF0aWMgaW50IG1wX2lycV9jbXAoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbSkKK3sKKwlyZXR1cm4gbWVtY21wKG1wX2lycSwgbSwgc2l6ZW9mKHN0cnVjdCBtcF9jb25maWdfaW50c3JjKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNhdmVfbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKCFtcF9pcnFfY21wKCZtcF9pcnFzW2ldLCBtKSkKKwkJCXJldHVybjsKKwl9CisKKwlhc3NpZ25fdG9fbXBfaXJxKG0sICZtcF9pcnFzW21wX2lycV9lbnRyaWVzXSk7CisJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQorCQlwYW5pYygiTWF4ICMgb2YgaXJxIHNvdXJjZXMgZXhjZWVkZWQhIVxuIik7Cit9CisKK3ZvaWQgX19pbml0IG1wX292ZXJyaWRlX2xlZ2FjeV9pcnEodTggYnVzX2lycSwgdTggcG9sYXJpdHksIHU4IHRyaWdnZXIsIHUzMiBnc2kpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgcGluOworCXN0cnVjdCBtcF9jb25maWdfaW50c3JjIG1wX2lycTsKKworCS8qCisJICogQ29udmVydCAnZ3NpJyB0byAnaW9hcGljLnBpbicuCisJICovCisJaW9hcGljID0gbXBfZmluZF9pb2FwaWMoZ3NpKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCXBpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7CisKKwkvKgorCSAqIFRCRDogVGhpcyBjaGVjayBpcyBmb3IgZmF1bHR5IHRpbWVyIGVudHJpZXMsIHdoZXJlIHRoZSBvdmVycmlkZQorCSAqICAgICAgZXJyb25lb3VzbHkgc2V0cyB0aGUgdHJpZ2dlciB0byBsZXZlbCwgcmVzdWx0aW5nIGluIGEgSFVHRQorCSAqICAgICAgaW5jcmVhc2Ugb2YgdGltZXIgaW50ZXJydXB0cyEKKwkgKi8KKwlpZiAoKGJ1c19pcnEgPT0gMCkgJiYgKHRyaWdnZXIgPT0gMykpCisJCXRyaWdnZXIgPSAxOworCisJbXBfaXJxLm1wX3R5cGUgPSBNUF9JTlRTUkM7CisJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJbXBfaXJxLm1wX2lycWZsYWcgPSAodHJpZ2dlciA8PCAyKSB8IHBvbGFyaXR5OworCW1wX2lycS5tcF9zcmNidXMgPSBNUF9JU0FfQlVTOworCW1wX2lycS5tcF9zcmNidXNpcnEgPSBidXNfaXJxOwkvKiBJUlEgKi8KKwltcF9pcnEubXBfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcF9hcGljaWQ7IC8qIEFQSUMgSUQgKi8KKwltcF9pcnEubXBfZHN0aXJxID0gcGluOwkvKiBJTlRJTiMgKi8KKworCXNhdmVfbXBfaXJxKCZtcF9pcnEpOworfQorCit2b2lkIF9faW5pdCBtcF9jb25maWdfYWNwaV9sZWdhY3lfaXJxcyh2b2lkKQoreworCWludCBpOworCWludCBpb2FwaWM7CisJdW5zaWduZWQgaW50IGRzdGFwaWM7CisJc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgbXBfaXJxOworCisjaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCisJLyoKKwkgKiBGYWJyaWNhdGUgdGhlIGxlZ2FjeSBJU0EgYnVzIChidXMgIzMxKS4KKwkgKi8KKwltcF9idXNfaWRfdG9fdHlwZVtNUF9JU0FfQlVTXSA9IE1QX0JVU19JU0E7CisjZW5kaWYKKwlzZXRfYml0KE1QX0lTQV9CVVMsIG1wX2J1c19ub3RfcGNpKTsKKwlEcHJpbnRrKCJCdXMgIyVkIGlzIElTQVxuIiwgTVBfSVNBX0JVUyk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorCS8qCisJICogT2xkZXIgZ2VuZXJhdGlvbnMgb2YgRVM3MDAwIGhhdmUgbm8gbGVnYWN5IGlkZW50aXR5IG1hcHBpbmdzCisJICovCisJaWYgKGVzNzAwMF9wbGF0ID09IDEpCisJCXJldHVybjsKKyNlbmRpZgorCisJLyoKKwkgKiBMb2NhdGUgdGhlIElPQVBJQyB0aGF0IG1hbmFnZXMgdGhlIElTQSBJUlFzICgwLTE1KS4KKwkgKi8KKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYygwKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCWRzdGFwaWMgPSBtcF9pb2FwaWNzW2lvYXBpY10ubXBfYXBpY2lkOworCisJLyoKKwkgKiBVc2UgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIElSUXMgMC0xNS4gIFVubGVzcworCSAqIG92ZXJyaWRkZW4gYnkgKE1BRFQpIGludGVycnVwdCBzb3VyY2Ugb3ZlcnJpZGUgZW50cmllcy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlpbnQgaWR4OworCisJCWZvciAoaWR4ID0gMDsgaWR4IDwgbXBfaXJxX2VudHJpZXM7IGlkeCsrKSB7CisJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqaXJxID0gbXBfaXJxcyArIGlkeDsKKworCQkJLyogRG8gd2UgYWxyZWFkeSBoYXZlIGEgbWFwcGluZyBmb3IgdGhpcyBJU0EgSVJRPyAqLworCQkJaWYgKGlycS0+bXBfc3JjYnVzID09IE1QX0lTQV9CVVMKKwkJCSAgICAmJiBpcnEtPm1wX3NyY2J1c2lycSA9PSBpKQorCQkJCWJyZWFrOworCisJCQkvKiBEbyB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZvciB0aGlzIElPQVBJQyBwaW4gKi8KKwkJCWlmIChpcnEtPm1wX2RzdGFwaWMgPT0gZHN0YXBpYyAmJgorCQkJICAgIGlycS0+bXBfZHN0aXJxID09IGkpCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaWR4ICE9IG1wX2lycV9lbnRyaWVzKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRyAiQUNQSTogSVJRJWQgdXNlZCBieSBvdmVycmlkZS5cbiIsIGkpOworCQkJY29udGludWU7CS8qIElSUSBhbHJlYWR5IHVzZWQgKi8KKwkJfQorCisJCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCQltcF9pcnEubXBfaXJxZmxhZyA9IDA7CS8qIENvbmZvcm1pbmcgKi8KKwkJbXBfaXJxLm1wX3NyY2J1cyA9IE1QX0lTQV9CVVM7CisJCW1wX2lycS5tcF9kc3RhcGljID0gZHN0YXBpYzsKKwkJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJCW1wX2lycS5tcF9zcmNidXNpcnEgPSBpOyAvKiBJZGVudGl0eSBtYXBwZWQgKi8KKwkJbXBfaXJxLm1wX2RzdGlycSA9IGk7CisKKwkJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisJfQorfQorCitpbnQgbXBfcmVnaXN0ZXJfZ3NpKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgaW9hcGljX3BpbjsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIE1BWF9HU0lfTlVNCTQwOTYKKyNkZWZpbmUgSVJRX0NPTVBSRVNTSU9OX1NUQVJUCTY0CisKKwlzdGF0aWMgaW50IHBjaV9pcnEgPSBJUlFfQ09NUFJFU1NJT05fU1RBUlQ7CisJLyoKKwkgKiBNYXBwaW5nIGJldHdlZW4gR2xvYmFsIFN5c3RlbSBJbnRlcnJ1cHRzLCB3aGljaAorCSAqIHJlcHJlc2VudCBhbGwgcG9zc2libGUgaW50ZXJydXB0cywgYW5kIElSUXMKKwkgKiBhc3NpZ25lZCB0byBhY3R1YWwgZGV2aWNlcy4KKwkgKi8KKwlzdGF0aWMgaW50IGdzaV90b19pcnFbTUFYX0dTSV9OVU1dOworI2Vsc2UKKworCWlmIChhY3BpX2lycV9tb2RlbCAhPSBBQ1BJX0lSUV9NT0RFTF9JT0FQSUMpCisJCXJldHVybiBnc2k7CisjZW5kaWYKKworCS8qIERvbid0IHNldCB1cCB0aGUgQUNQSSBTQ0kgYmVjYXVzZSBpdCdzIGFscmVhZHkgc2V0IHVwICovCisJaWYgKGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCA9PSBnc2kpCisJCXJldHVybiBnc2k7CisKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCWlmIChpb2FwaWMgPCAwKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk5vIElPQVBJQyBmb3IgR1NJICV1XG4iLCBnc2kpOworCQlyZXR1cm4gZ3NpOworCX0KKworCWlvYXBpY19waW4gPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmIChpb2FwaWNfcmVudW1iZXJfaXJxKQorCQlnc2kgPSBpb2FwaWNfcmVudW1iZXJfaXJxKGlvYXBpYywgZ3NpKTsKKyNlbmRpZgorCisJLyoKKwkgKiBBdm9pZCBwaW4gcmVwcm9ncmFtbWluZy4gIFBSVHMgdHlwaWNhbGx5IGluY2x1ZGUgZW50cmllcworCSAqIHdpdGggcmVkdW5kYW50IHBpbi0+Z3NpIG1hcHBpbmdzIChidXQgdW5pcXVlIFBDSSBkZXZpY2VzKTsKKwkgKiB3ZSBvbmx5IHByb2dyYW0gdGhlIElPQVBJQyBvbiB0aGUgZmlyc3QuCisJICovCisJaWYgKGlvYXBpY19waW4gPiBNUF9NQVhfSU9BUElDX1BJTikgeworCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgcmVmZXJlbmNlIHRvIElPQVBJQyBwaW4gIgorCQkgICAgICAgIiVkLSVkXG4iLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmFwaWNfaWQsCisJCSAgICAgICBpb2FwaWNfcGluKTsKKwkJcmV0dXJuIGdzaTsKKwl9CisJaWYgKHRlc3RfYml0KGlvYXBpY19waW4sIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10ucGluX3Byb2dyYW1tZWQpKSB7CisJCURwcmludGsoS0VSTl9ERUJVRyAiUGluICVkLSVkIGFscmVhZHkgcHJvZ3JhbW1lZFxuIiwKKwkJCW1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwgaW9hcGljX3Bpbik7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCQlyZXR1cm4gKGdzaSA8IElSUV9DT01QUkVTU0lPTl9TVEFSVCA/IGdzaSA6IGdzaV90b19pcnFbZ3NpXSk7CisjZWxzZQorCQlyZXR1cm4gZ3NpOworI2VuZGlmCisJfQorCisJc2V0X2JpdChpb2FwaWNfcGluLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLnBpbl9wcm9ncmFtbWVkKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJLyoKKwkgKiBGb3IgR1NJID49IDY0LCB1c2UgSVJRIGNvbXByZXNzaW9uCisJICovCisJaWYgKChnc2kgPj0gSVJRX0NPTVBSRVNTSU9OX1NUQVJUKQorCSAgICAmJiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkpIHsKKwkJLyoKKwkJICogRm9yIFBDSSBkZXZpY2VzIGFzc2lnbiBJUlFzIGluIG9yZGVyLCBhdm9pZGluZyBnYXBzCisJCSAqIGR1ZSB0byB1bnVzZWQgSS9PIEFQSUMgcGlucy4KKwkJICovCisJCWludCBpcnEgPSBnc2k7CisJCWlmIChnc2kgPCBNQVhfR1NJX05VTSkgeworCQkJLyoKKwkJCSAqIFJldGFpbiB0aGUgVklBIGNoaXBzZXQgd29yay1hcm91bmQgKGdzaSA+IDE1KSwgYnV0CisJCQkgKiBhdm9pZCBhIHByb2JsZW0gd2hlcmUgdGhlIDgyNTQgdGltZXIgKElSUTApIGlzIHNldHVwCisJCQkgKiB2aWEgYW4gb3ZlcnJpZGUgKHNvIGl0J3Mgbm90IG9uIHBpbiAwIG9mIHRoZSBpb2FwaWMpLAorCQkJICogYW5kIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBwaW4gMCBpbnRlcnJ1cHQgaXMgYSBQQ0kKKwkJCSAqIHR5cGUuICBUaGUgZ3NpID4gMTUgdGVzdCBjb3VsZCBjYXVzZSB0aGVzZSB0d28gcGlucworCQkJICogdG8gYmUgc2hhcmVkIGFzIElSUTAsIGFuZCB0aGV5IGFyZSBub3Qgc2hhcmVhYmxlLgorCQkJICogU28gdGVzdCBmb3IgdGhpcyBjb25kaXRpb24sIGFuZCBpZiBuZWNlc3NhcnksIGF2b2lkCisJCQkgKiB0aGUgcGluIGNvbGxpc2lvbi4KKwkJCSAqLworCQkJZ3NpID0gcGNpX2lycSsrOworCQkJLyoKKwkJCSAqIERvbid0IGFzc2lnbiBJUlEgdXNlZCBieSBBQ1BJIFNDSQorCQkJICovCisJCQlpZiAoZ3NpID09IGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCkKKwkJCQlnc2kgPSBwY2lfaXJxKys7CisJCQlnc2lfdG9faXJxW2lycV0gPSBnc2k7CisJCX0gZWxzZSB7CisJCQlwcmludGsoS0VSTl9FUlIgIkdTSSAldSBpcyB0b28gaGlnaFxuIiwgZ3NpKTsKKwkJCXJldHVybiBnc2k7CisJCX0KKwl9CisjZW5kaWYKKwlpb19hcGljX3NldF9wY2lfcm91dGluZyhpb2FwaWMsIGlvYXBpY19waW4sIGdzaSwKKwkJCQl0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSwKKwkJCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9ISUdIID8gMCA6IDEpOworCXJldHVybiBnc2k7Cit9CisKK2ludCBtcF9jb25maWdfYWNwaV9nc2kodW5zaWduZWQgY2hhciBudW1iZXIsIHVuc2lnbmVkIGludCBkZXZmbiwgdTggcGluLAorCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSkKK3sKKyNpZmRlZiBDT05GSUdfWDg2X01QUEFSU0UKKwlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnE7CisJaW50IGlvYXBpYzsKKworCWlmICghYWNwaV9pb2FwaWMpCisJCXJldHVybiAwOworCisJLyogcHJpbnQgdGhlIGVudHJ5IHNob3VsZCBoYXBwZW4gb24gbXB0YWJsZSBpZGVudGljYWxseSAqLworCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCW1wX2lycS5tcF9pcnF0eXBlID0gbXBfSU5UOworCW1wX2lycS5tcF9pcnFmbGFnID0gKHRyaWdnZXJpbmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDQgOiAweDBjKSB8CisJCQkJKHBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAxIDogMyk7CisJbXBfaXJxLm1wX3NyY2J1cyA9IG51bWJlcjsKKwltcF9pcnEubXBfc3JjYnVzaXJxID0gKCgoZGV2Zm4gPj4gMykgJiAweDFmKSA8PCAyKSB8ICgocGluIC0gMSkgJiAzKTsKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCW1wX2lycS5tcF9kc3RhcGljID0gbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5hcGljX2lkOworCW1wX2lycS5tcF9kc3RpcnEgPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIFBhcnNlIElPQVBJQyByZWxhdGVkIGVudHJpZXMgaW4gTUFEVAogICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDwgMCBvbiBlcnJvcgpAQCAtMTAwOSw4ICsxMzUzLDYgQEAKIAlyZXR1cm47CiB9CiAKLSNpZmRlZiBfX2kzODZfXwotCiBzdGF0aWMgaW50IF9faW5pdCBkaXNhYmxlX2FjcGlfaXJxKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQogewogCWlmICghYWNwaV9mb3JjZSkgewpAQCAtMTA2MSw2ICsxNDAzLDE2IEBACiB9CiAKIC8qCisgKiBGb3JjZSBpZ25vcmluZyBCSU9TIElSUTAgcGluMiBvdmVycmlkZQorICovCitzdGF0aWMgaW50IF9faW5pdCBkbWlfaWdub3JlX2lycTBfdGltZXJfb3ZlcnJpZGUoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCit7CisJcHJfbm90aWNlKCIlcyBkZXRlY3RlZDogSWdub3JpbmcgQklPUyBJUlEwIHBpbjIgb3ZlcnJpZGVcbiIsIGQtPmlkZW50KTsKKwlhY3BpX3NraXBfdGltZXJfb3ZlcnJpZGUgPSAxOworCXJldHVybiAwOworfQorCisvKgogICogSWYgeW91ciBzeXN0ZW0gaXMgYmxhY2tsaXN0ZWQgaGVyZSwgYnV0IHlvdSBmaW5kIHRoYXQgYWNwaT1mb3JjZQogICogd29ya3MgZm9yIHlvdSwgcGxlYXNlIGNvbnRhY3QgYWNwaS1kZXZlbEBzb3VyY2Vmb3JnZS5uZXQKICAqLwpAQCAtMTIyNywxMSArMTU3OSwzNSBAQAogCQkgICAgIERNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVHJhdmVsTWF0ZSAzNjAiKSwKIAkJICAgICB9LAogCSB9LAorCS8qCisJICogSFAgbGFwdG9wcyB3aGljaCB1c2UgYSBEU0RUIHJlcG9ydGluZyBhcyBIUC9TQjQwMC8xMDAwMCwKKwkgKiB3aGljaCBpbmNsdWRlcyBzb21lIGNvZGUgd2hpY2ggb3ZlcnJpZGVzIGFsbCB0ZW1wZXJhdHVyZQorCSAqIHRyaXAgcG9pbnRzIHRvIDE2QyBpZiB0aGUgSU5USU4yIGlucHV0IG9mIHRoZSBJL08gQVBJQworCSAqIGlzIGVuYWJsZWQuICBUaGlzIGlucHV0IGlzIGluY29ycmVjdGx5IGRlc2lnbmF0ZWQgdGhlCisJICogSVNBIElSUSAwIHZpYSBhbiBpbnRlcnJ1cHQgc291cmNlIG92ZXJyaWRlIGV2ZW4gdGhvdWdoCisJICogaXQgaXMgd2lyZWQgdG8gdGhlIG91dHB1dCBvZiB0aGUgbWFzdGVyIDgyNTlBIGFuZCBJTlRJTjAKKwkgKiBpcyBub3QgY29ubmVjdGVkIGF0IGFsbC4gIEZvcmNlIGlnbm9yaW5nIEJJT1MgSVJRMCBwaW4yCisJICogb3ZlcnJpZGUgaW4gdGhhdCBjYXNlcy4KKwkgKi8KKwl7CisJIC5jYWxsYmFjayA9IGRtaV9pZ25vcmVfaXJxMF90aW1lcl9vdmVycmlkZSwKKwkgLmlkZW50ID0gIkhQIE5YNjEyNSBsYXB0b3AiLAorCSAubWF0Y2hlcyA9IHsKKwkJICAgICBETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJIZXdsZXR0LVBhY2thcmQiKSwKKwkJICAgICBETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkhQIENvbXBhcSBueDYxMjUiKSwKKwkJICAgICB9LAorCSB9LAorCXsKKwkgLmNhbGxiYWNrID0gZG1pX2lnbm9yZV9pcnEwX3RpbWVyX292ZXJyaWRlLAorCSAuaWRlbnQgPSAiSFAgTlg2MzI1IGxhcHRvcCIsCisJIC5tYXRjaGVzID0geworCQkgICAgIERNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkhld2xldHQtUGFja2FyZCIpLAorCQkgICAgIERNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSFAgQ29tcGFxIG54NjMyNSIpLAorCQkgICAgIH0sCisJIH0sCiAJe30KIH07CiAKLSNlbmRpZgkJCQkvKiBfX2kzODZfXyAqLwotCiAvKgogICogYWNwaV9ib290X3RhYmxlX2luaXQoKSBhbmQgYWNwaV9ib290X2luaXQoKQogICogIGNhbGxlZCBmcm9tIHNldHVwX2FyY2goKSwgYWx3YXlzLgpAQCAtMTI1OSw5ICsxNjM1LDcgQEAKIHsKIAlpbnQgZXJyb3I7CiAKLSNpZmRlZiBfX2kzODZfXwogCWRtaV9jaGVja19zeXN0ZW0oYWNwaV9kbWlfdGFibGUpOwotI2VuZGlmCiAKIAkvKgogCSAqIElmIGFjcGlfZGlzYWJsZWQsIGJhaWwgb3V0CkBAIC0xMzg2LDYgKzE3NjAsMjAgQEAKIH0KIGVhcmx5X3BhcmFtKCJwY2kiLCBwYXJzZV9wY2kpOwogCitpbnQgX19pbml0IGFjcGlfbXBzX2NoZWNrKHZvaWQpCit7CisjaWYgZGVmaW5lZChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpICYmICFkZWZpbmVkKENPTkZJR19YODZfTVBQQVJTRSkKKy8qIG1wdGFibGUgY29kZSBpcyBub3QgYnVpbHQtaW4qLworCWlmIChhY3BpX2Rpc2FibGVkIHx8IGFjcGlfbm9pcnEpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiTVBTIHN1cHBvcnQgY29kZSBpcyBub3QgYnVpbHQtaW4uXG4iCisJCSAgICAgICAiVXNpbmcgYWNwaT1vZmYgb3IgYWNwaT1ub2lycSBvciBwY2k9bm9hY3BpICIKKwkJICAgICAgICJtYXkgaGF2ZSBwcm9ibGVtXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorI2VuZGlmCisJcmV0dXJuIDA7Cit9CisKICNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2FjcGlfc2tpcF90aW1lcl9vdmVycmlkZShjaGFyICphcmcpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuUyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCmluZGV4IGY5Yjc3ZmIuLjMzNTU5NzMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgPGFzbS9tc3ItaW5kZXguaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCiAJLmNvZGUxNgogCS5zZWN0aW9uICIuaGVhZGVyIiwgImEiCkBAIC0yNCw2ICsyNSwxMSBAQAogcmVhbG1vZGVfZmxhZ3M6CS5sb25nCTAKIHJlYWxfbWFnaWM6CS5sb25nCTAKIHRyYW1wb2xpbmVfc2VnbWVudDoJLndvcmQgMAorX3BhZDE6CQkuYnl0ZQkwCit3YWtldXBfam1wOgkuYnl0ZQkweGVhCS8qIGxqbXB3ICovCit3YWtldXBfam1wX29mZjoJLndvcmQJM2YKK3dha2V1cF9qbXBfc2VnOgkud29yZAkwCit3YWtldXBfZ2R0OgkucXVhZAkwLCAwLCAwCiBzaWduYXR1cmU6CS5sb25nCTB4NTFlZTExMTEKIAogCS50ZXh0CkBAIC0zNCwxMSArNDAsMzQgQEAKIAljbGkKIAljbGQKIAorCS8qIEFwcGFyZW50bHkgc29tZSBkaW13aXQgQklPUyBwcm9ncmFtbWVycyBkb24ndCBrbm93IGhvdyB0bworCSAgIHByb2dyYW0gYSBQTSB0byBSTSB0cmFuc2l0aW9uLCBhbmQgd2UgbWlnaHQgZW5kIHVwIGhlcmUgd2l0aAorCSAgIGp1bmsgaW4gdGhlIGRhdGEgc2VnbWVudCBkZXNjcmlwdG9yIHJlZ2lzdGVycy4gIFRoZSBvbmx5IHdheQorCSAgIHRvIHJlcGFpciB0aGF0IGlzIHRvIGdvIGludG8gUE0gYW5kIGZpeCBpdCBvdXJzZWx2ZXMuLi4gKi8KKwltb3Z3CSQxNiwgJWN4CisJbGdkdGwJJWNzOndha2V1cF9nZHQKKwltb3ZsCSVjcjAsICVlYXgKKwlvcmIJJFg4Nl9DUjBfUEUsICVhbAorCW1vdmwJJWVheCwgJWNyMAorCWptcAkxZgorMToJbGptcHcJJDgsICQyZgorMjoKKwltb3Z3CSVjeCwgJWRzCisJbW92dwklY3gsICVlcworCW1vdncJJWN4LCAlc3MKKwltb3Z3CSVjeCwgJWZzCisJbW92dwklY3gsICVncworCisJYW5kYgkkflg4Nl9DUjBfUEUsICVhbAorCW1vdmwJJWVheCwgJWNyMAorCWptcAl3YWtldXBfam1wCiszOgogCS8qIFNldCB1cCBzZWdtZW50cyAqLwogCW1vdncJJWNzLCAlYXgKIAltb3Z3CSVheCwgJWRzCiAJbW92dwklYXgsICVlcwogCW1vdncJJWF4LCAlc3MKKwlsaWR0bAl3YWtldXBfaWR0CiAKIAltb3ZsCSR3YWtldXBfc3RhY2tfZW5kLCAlZXNwCiAKQEAgLTk4LDcgKzEyNywxNCBAQAogCWptcAkxYgogCiAJLmRhdGEKLQkuYmFsaWduCTQKKwkuYmFsaWduCTgKKworCS8qIFRoaXMgaXMgdGhlIHN0YW5kYXJkIHJlYWwtbW9kZSBJRFQgKi8KK3dha2V1cF9pZHQ6CisJLndvcmQJMHhmZmZmCQkvKiBsaW1pdCAqLworCS5sb25nCTAJCS8qIGFkZHJlc3MgKi8KKwkud29yZAkwCisKIAkuZ2xvYmwJSEVBUCwgaGVhcF9lbmQKIEhFQVA6CiAJLmxvbmcJd2FrZXVwX2hlYXAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5oIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKaW5kZXggZWY4MTY2Zi4uNjlkMzhkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKQEAgLTI0LDYgKzI0LDExIEBACiAJdTMyIHJlYWxtb2RlX2ZsYWdzOwogCXUzMiByZWFsX21hZ2ljOwogCXUxNiB0cmFtcG9saW5lX3NlZ21lbnQ7CS8qIHNlZ21lbnQgd2l0aCB0cmFtcG9saW5lIGNvZGUsIDY0LWJpdCBvbmx5ICovCisJdTggIF9wYWQxOworCXU4ICB3YWtldXBfam1wOworCXUxNiB3YWtldXBfam1wX29mZjsKKwl1MTYgd2FrZXVwX2ptcF9zZWc7CisJdTY0IHdha2V1cF9nZHRbM107CiAJdTMyIHNpZ25hdHVyZTsJCS8qIFRvIGNoZWNrIHdlIGhhdmUgY29ycmVjdCBzdHJ1Y3R1cmUgKi8KIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jIGIvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAuYwppbmRleCBhZmMyNWVlLi43OTNhZDIwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKQEAgLTIzLDYgKzIzLDE1IEBACiBzdGF0aWMgY2hhciB0ZW1wX3N0YWNrWzEwMjQwXTsKICNlbmRpZgogCisvKiBYWFg6IHRoaXMgbWFjcm8gc2hvdWxkIG1vdmUgdG8gYXNtLXg4Ni9zZWdtZW50LmggYW5kIGJlIHNoYXJlZCB3aXRoIHRoZQorICAgYm9vdCBjb2RlLi4uICovCisjZGVmaW5lIEdEVF9FTlRSWShmbGFncywgYmFzZSwgbGltaXQpCQlcCisJKCgodTY0KShiYXNlICYgMHhmZjAwMDAwMCkgPDwgMzIpIHwJXAorCSAoKHU2NClmbGFncyA8PCA0MCkgfAkJCVwKKwkgKCh1NjQpKGxpbWl0ICYgMHgwMGZmMDAwMCkgPDwgMzIpIHwJXAorCSAoKHU2NCkoYmFzZSAmIDB4MDBmZmZmZmYpIDw8IDE2KSB8CVwKKwkgKCh1NjQpKGxpbWl0ICYgMHgwMDAwZmZmZikpKQorCiAvKioKICAqIGFjcGlfc2F2ZV9zdGF0ZV9tZW0gLSBzYXZlIGtlcm5lbCBzdGF0ZQogICoKQEAgLTUwLDYgKzU5LDI5IEBACiAKIAloZWFkZXItPnZpZGVvX21vZGUgPSBzYXZlZF92aWRlb19tb2RlOwogCisJaGVhZGVyLT53YWtldXBfam1wX3NlZyA9IGFjcGlfd2FrZXVwX2FkZHJlc3MgPj4gNDsKKworCS8qCisJICogU2V0IHVwIHRoZSB3YWtldXAgR0RULiAgV2Ugc2V0IHRoZXNlIHVwIGFzIEJpZyBSZWFsIE1vZGUsCisJICogdGhhdCBpcywgd2l0aCBsaW1pdHMgc2V0IHRvIDQgR0IuICBBdCBsZWFzdCB0aGUgTGVub3ZvCisJICogVGhpbmtwYWQgWDYxIGlzIGtub3duIHRvIG5lZWQgdGhpcyBmb3IgdGhlIHZpZGVvIEJJT1MKKwkgKiBpbml0aWFsaXphdGlvbiBxdWlyayB0byB3b3JrOyB0aGlzIGlzIGxpa2VseSB0byBhbHNvCisJICogYmUgdGhlIGNhc2UgZm9yIG90aGVyIGxhcHRvcHMgb3IgaW50ZWdyYXRlZCB2aWRlbyBkZXZpY2VzLgorCSAqLworCisJLyogR0RUWzBdOiBHRFQgc2VsZi1wb2ludGVyICovCisJaGVhZGVyLT53YWtldXBfZ2R0WzBdID0KKwkJKHU2NCkoc2l6ZW9mKGhlYWRlci0+d2FrZXVwX2dkdCkgLSAxKSArCisJCSgodTY0KShhY3BpX3dha2V1cF9hZGRyZXNzICsKKwkJCSgoY2hhciAqKSZoZWFkZXItPndha2V1cF9nZHQgLSAoY2hhciAqKWFjcGlfcmVhbG1vZGUpKQorCQkJCTw8IDE2KTsKKwkvKiBHRFRbMV06IGJpZyByZWFsIG1vZGUtbGlrZSBjb2RlIHNlZ21lbnQgKi8KKwloZWFkZXItPndha2V1cF9nZHRbMV0gPQorCQlHRFRfRU5UUlkoMHg4MDliLCBhY3BpX3dha2V1cF9hZGRyZXNzLCAweGZmZmZmKTsKKwkvKiBHRFRbMl06IGJpZyByZWFsIG1vZGUtbGlrZSBkYXRhIHNlZ21lbnQgKi8KKwloZWFkZXItPndha2V1cF9nZHRbMl0gPQorCQlHRFRfRU5UUlkoMHg4MDkzLCBhY3BpX3dha2V1cF9hZGRyZXNzLCAweGZmZmZmKTsKKwogI2lmbmRlZiBDT05GSUdfNjRCSVQKIAlzdG9yZV9nZHQoKHN0cnVjdCBkZXNjX3B0ciAqKSZoZWFkZXItPnBtb2RlX2dkdCk7CiAKQEAgLTcyLDcgKzEwNCw5IEBACiAJc2F2ZWRfbWFnaWMgPSAweDEyMzQ1Njc4OwogI2Vsc2UgLyogQ09ORklHXzY0QklUICovCiAJaGVhZGVyLT50cmFtcG9saW5lX3NlZ21lbnQgPSBzZXR1cF90cmFtcG9saW5lKCkgPj4gNDsKLQlpbml0X3JzcCA9ICh1bnNpZ25lZCBsb25nKXRlbXBfc3RhY2sgKyA0MDk2OworI2lmZGVmIENPTkZJR19TTVAKKwlzdGFja19zdGFydC5zcCA9IHRlbXBfc3RhY2sgKyA0MDk2OworI2VuZGlmCiAJaW5pdGlhbF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpd2FrZXVwX2xvbmc2NDsKIAlzYXZlZF9tYWdpYyA9IDB4MTIzNDU2Nzg5YWJjZGVmMDsKICNlbmRpZiAvKiBDT05GSUdfNjRCSVQgKi8KQEAgLTExMSw3ICsxNDUsNyBAQAogCQlyZXR1cm47CiAJfQogCi0JYWNwaV93YWtldXBfYWRkcmVzcyA9IGFjcGlfcmVhbG1vZGU7CisJYWNwaV93YWtldXBfYWRkcmVzcyA9IHZpcnRfdG9fcGh5cygodm9pZCAqKWFjcGlfcmVhbG1vZGUpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hbHRlcm5hdGl2ZS5jIGIvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKaW5kZXggNjVjNzg1Ny4uMjc2M2NiMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKQEAgLTEsNiArMSw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgpAQCAtMTQzLDcgKzE0Myw3IEBACiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCiBleHRlcm4gY2hhciBfX3ZzeXNjYWxsXzA7Ci1zdGF0aWMgaW5saW5lIGNvbnN0IHVuc2lnbmVkIGNoYXIqY29uc3QgKiBmaW5kX25vcF90YWJsZSh2b2lkKQorY29uc3QgdW5zaWduZWQgY2hhciAqY29uc3QgKmZpbmRfbm9wX3RhYmxlKHZvaWQpCiB7CiAJcmV0dXJuIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0lOVEVMIHx8CiAJICAgICAgIGJvb3RfY3B1X2RhdGEueDg2IDwgNiA/IGs4X25vcHMgOiBwNl9ub3BzOwpAQCAtMTYyLDcgKzE2Miw3IEBACiAJeyAtMSwgTlVMTCB9CiB9OwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhcipjb25zdCAqIGZpbmRfbm9wX3RhYmxlKHZvaWQpCitjb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqZmluZF9ub3BfdGFibGUodm9pZCkKIHsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqbm9wdGFibGUgPSBpbnRlbF9ub3BzOwogCWludCBpOwpAQCAtMjc5LDcgKzI3OSw3IEBACiAJc3RydWN0IGxpc3RfaGVhZCBuZXh0OwogfTsKIHN0YXRpYyBMSVNUX0hFQUQoc21wX2FsdF9tb2R1bGVzKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soc21wX2FsdCk7CitzdGF0aWMgREVGSU5FX01VVEVYKHNtcF9hbHQpOwogc3RhdGljIGludCBzbXBfbW9kZSA9IDE7CS8qIHByb3RlY3RlZCBieSBzbXBfYWx0ICovCiAKIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVfYWRkKHN0cnVjdCBtb2R1bGUgKm1vZCwgY2hhciAqbmFtZSwKQEAgLTMxMiwxMiArMzEyLDEyIEBACiAJCV9fZnVuY19fLCBzbXAtPmxvY2tzLCBzbXAtPmxvY2tzX2VuZCwKIAkJc21wLT50ZXh0LCBzbXAtPnRleHRfZW5kLCBzbXAtPm5hbWUpOwogCi0Jc3Bpbl9sb2NrKCZzbXBfYWx0KTsKKwltdXRleF9sb2NrKCZzbXBfYWx0KTsKIAlsaXN0X2FkZF90YWlsKCZzbXAtPm5leHQsICZzbXBfYWx0X21vZHVsZXMpOwogCWlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVVApKQogCQlhbHRlcm5hdGl2ZXNfc21wX3VubG9jayhzbXAtPmxvY2tzLCBzbXAtPmxvY2tzX2VuZCwKIAkJCQkJc21wLT50ZXh0LCBzbXAtPnRleHRfZW5kKTsKLQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJbXV0ZXhfdW5sb2NrKCZzbXBfYWx0KTsKIH0KIAogdm9pZCBhbHRlcm5hdGl2ZXNfc21wX21vZHVsZV9kZWwoc3RydWN0IG1vZHVsZSAqbW9kKQpAQCAtMzI3LDE3ICszMjcsMTcgQEAKIAlpZiAoc21wX2FsdF9vbmNlIHx8IG5vcmVwbGFjZV9zbXApCiAJCXJldHVybjsKIAotCXNwaW5fbG9jaygmc21wX2FsdCk7CisJbXV0ZXhfbG9jaygmc21wX2FsdCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVtLCAmc21wX2FsdF9tb2R1bGVzLCBuZXh0KSB7CiAJCWlmIChtb2QgIT0gaXRlbS0+bW9kKQogCQkJY29udGludWU7CiAJCWxpc3RfZGVsKCZpdGVtLT5uZXh0KTsKLQkJc3Bpbl91bmxvY2soJnNtcF9hbHQpOworCQltdXRleF91bmxvY2soJnNtcF9hbHQpOwogCQlEUFJJTlRLKCIlczogJXNcbiIsIF9fZnVuY19fLCBpdGVtLT5uYW1lKTsKIAkJa2ZyZWUoaXRlbSk7CiAJCXJldHVybjsKIAl9Ci0Jc3Bpbl91bmxvY2soJnNtcF9hbHQpOworCW11dGV4X3VubG9jaygmc21wX2FsdCk7CiB9CiAKIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9zd2l0Y2goaW50IHNtcCkKQEAgLTM1OSw3ICszNTksNyBAQAogCQlyZXR1cm47CiAJQlVHX09OKCFzbXAgJiYgKG51bV9vbmxpbmVfY3B1cygpID4gMSkpOwogCi0Jc3Bpbl9sb2NrKCZzbXBfYWx0KTsKKwltdXRleF9sb2NrKCZzbXBfYWx0KTsKIAogCS8qCiAJICogQXZvaWQgdW5uZWNlc3Nhcnkgc3dpdGNoZXMgYmVjYXVzZSBpdCBmb3JjZXMgSklUIGJhc2VkIFZNcyB0bwpAQCAtMzgzLDcgKzM4Myw3IEBACiAJCQkJCQltb2QtPnRleHQsIG1vZC0+dGV4dF9lbmQpOwogCX0KIAlzbXBfbW9kZSA9IHNtcDsKLQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJbXV0ZXhfdW5sb2NrKCZzbXBfYWx0KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI3NjZkOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hbWRfaW9tbXUuYwpAQCAtMCwwICsxLDk2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9pb21tdS1oZWxwZXIuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vZ2FydC5oPgorI2luY2x1ZGUgPGFzbS9hbWRfaW9tbXVfdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11Lmg+CisKKyNkZWZpbmUgQ01EX1NFVF9UWVBFKGNtZCwgdCkgKChjbWQpLT5kYXRhWzFdIHw9ICgodCkgPDwgMjgpKQorCisjZGVmaW5lIHRvX3BhZ2VzKGFkZHIsIHNpemUpIFwKKwkgKHJvdW5kX3VwKCgoYWRkcikgJiB+UEFHRV9NQVNLKSArIChzaXplKSwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUKQorCitzdGF0aWMgREVGSU5FX1JXTE9DSyhhbWRfaW9tbXVfZGV2dGFibGVfbG9jayk7CisKK3N0cnVjdCBjb21tYW5kIHsKKwl1MzIgZGF0YVs0XTsKK307CisKK3N0YXRpYyBpbnQgZG1hX29wc191bml0eV9tYXAoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgICBzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplKTsKKworc3RhdGljIGludCBpb21tdV9oYXNfbnBjYWNoZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlyZXR1cm4gaW9tbXUtPmNhcCAmIElPTU1VX0NBUF9OUENBQ0hFOworfQorCitzdGF0aWMgaW50IF9faW9tbXVfcXVldWVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgc3RydWN0IGNvbW1hbmQgKmNtZCkKK3sKKwl1MzIgdGFpbCwgaGVhZDsKKwl1OCAqdGFyZ2V0OworCisJdGFpbCA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9UQUlMX09GRlNFVCk7CisJdGFyZ2V0ID0gKGlvbW11LT5jbWRfYnVmICsgdGFpbCk7CisJbWVtY3B5X3RvaW8odGFyZ2V0LCBjbWQsIHNpemVvZigqY21kKSk7CisJdGFpbCA9ICh0YWlsICsgc2l6ZW9mKCpjbWQpKSAlIGlvbW11LT5jbWRfYnVmX3NpemU7CisJaGVhZCA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9IRUFEX09GRlNFVCk7CisJaWYgKHRhaWwgPT0gaGVhZCkKKwkJcmV0dXJuIC1FTk9NRU07CisJd3JpdGVsKHRhaWwsIGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9UQUlMX09GRlNFVCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgY29tbWFuZCAqY21kKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworCXJldCA9IF9faW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgY21kKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBpb21tdV9jb21wbGV0aW9uX3dhaXQoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgY29tbWFuZCBjbWQ7CisJdm9sYXRpbGUgdTY0IHJlYWR5ID0gMDsKKwl1bnNpZ25lZCBsb25nIHJlYWR5X3BoeXMgPSB2aXJ0X3RvX3BoeXMoJnJlYWR5KTsKKworCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJY21kLmRhdGFbMF0gPSBMT1dfVTMyKHJlYWR5X3BoeXMpIHwgQ01EX0NPTVBMX1dBSVRfU1RPUkVfTUFTSzsKKwljbWQuZGF0YVsxXSA9IEhJR0hfVTMyKHJlYWR5X3BoeXMpOworCWNtZC5kYXRhWzJdID0gMTsgLyogdmFsdWUgd3JpdHRlbiB0byAncmVhZHknICovCisJQ01EX1NFVF9UWVBFKCZjbWQsIENNRF9DT01QTF9XQUlUKTsKKworCWlvbW11LT5uZWVkX3N5bmMgPSAwOworCisJcmV0ID0gaW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgJmNtZCk7CisKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJd2hpbGUgKCFyZWFkeSkKKwkJY3B1X3JlbGF4KCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9pbnZfZGV2X2VudHJ5KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MTYgZGV2aWQpCit7CisJc3RydWN0IGNvbW1hbmQgY21kOworCisJQlVHX09OKGlvbW11ID09IE5VTEwpOworCisJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihjbWQpKTsKKwlDTURfU0VUX1RZUEUoJmNtZCwgQ01EX0lOVl9ERVZfRU5UUlkpOworCWNtZC5kYXRhWzBdID0gZGV2aWQ7CisKKwlpb21tdS0+bmVlZF9zeW5jID0gMTsKKworCXJldHVybiBpb21tdV9xdWV1ZV9jb21tYW5kKGlvbW11LCAmY21kKTsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9pbnZfaW9tbXVfcGFnZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCXU2NCBhZGRyZXNzLCB1MTYgZG9taWQsIGludCBwZGUsIGludCBzKQoreworCXN0cnVjdCBjb21tYW5kIGNtZDsKKworCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJYWRkcmVzcyAmPSBQQUdFX01BU0s7CisJQ01EX1NFVF9UWVBFKCZjbWQsIENNRF9JTlZfSU9NTVVfUEFHRVMpOworCWNtZC5kYXRhWzFdIHw9IGRvbWlkOworCWNtZC5kYXRhWzJdID0gTE9XX1UzMihhZGRyZXNzKTsKKwljbWQuZGF0YVszXSA9IEhJR0hfVTMyKGFkZHJlc3MpOworCWlmIChzKQorCQljbWQuZGF0YVsyXSB8PSBDTURfSU5WX0lPTU1VX1BBR0VTX1NJWkVfTUFTSzsKKwlpZiAocGRlKQorCQljbWQuZGF0YVsyXSB8PSBDTURfSU5WX0lPTU1VX1BBR0VTX1BERV9NQVNLOworCisJaW9tbXUtPm5lZWRfc3luYyA9IDE7CisKKwlyZXR1cm4gaW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgJmNtZCk7Cit9CisKK3N0YXRpYyBpbnQgaW9tbXVfZmx1c2hfcGFnZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHUxNiBkb21pZCwKKwkJdTY0IGFkZHJlc3MsIHNpemVfdCBzaXplKQoreworCWludCBzID0gMDsKKwl1bnNpZ25lZCBwYWdlcyA9IHRvX3BhZ2VzKGFkZHJlc3MsIHNpemUpOworCisJYWRkcmVzcyAmPSBQQUdFX01BU0s7CisKKwlpZiAocGFnZXMgPiAxKSB7CisJCS8qCisJCSAqIElmIHdlIGhhdmUgdG8gZmx1c2ggbW9yZSB0aGFuIG9uZSBwYWdlLCBmbHVzaCBhbGwKKwkJICogVExCIGVudHJpZXMgZm9yIHRoaXMgZG9tYWluCisJCSAqLworCQlhZGRyZXNzID0gQ01EX0lOVl9JT01NVV9BTExfUEFHRVNfQUREUkVTUzsKKwkJcyA9IDE7CisJfQorCisJaW9tbXVfcXVldWVfaW52X2lvbW11X3BhZ2VzKGlvbW11LCBhZGRyZXNzLCBkb21pZCwgMCwgcyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9tYXAoc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb20sCisJCSAgICAgdW5zaWduZWQgbG9uZyBidXNfYWRkciwKKwkJICAgICB1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwKKwkJICAgICBpbnQgcHJvdCkKK3sKKwl1NjQgX19wdGUsICpwdGUsICpwYWdlOworCisJYnVzX2FkZHIgID0gUEFHRV9BTElHTihidXNfYWRkcik7CisJcGh5c19hZGRyID0gUEFHRV9BTElHTihidXNfYWRkcik7CisKKwkvKiBvbmx5IHN1cHBvcnQgNTEyR0IgYWRkcmVzcyBzcGFjZXMgZm9yIG5vdyAqLworCWlmIChidXNfYWRkciA+IElPTU1VX01BUF9TSVpFX0wzIHx8ICEocHJvdCAmIElPTU1VX1BST1RfTUFTSykpCisJCXJldHVybiAtRUlOVkFMOworCisJcHRlID0gJmRvbS0+cHRfcm9vdFtJT01NVV9QVEVfTDJfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmICghSU9NTVVfUFRFX1BSRVNFTlQoKnB0ZSkpIHsKKwkJcGFnZSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghcGFnZSkKKwkJCXJldHVybiAtRU5PTUVNOworCQkqcHRlID0gSU9NTVVfTDJfUERFKHZpcnRfdG9fcGh5cyhwYWdlKSk7CisJfQorCisJcHRlID0gSU9NTVVfUFRFX1BBR0UoKnB0ZSk7CisJcHRlID0gJnB0ZVtJT01NVV9QVEVfTDFfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmICghSU9NTVVfUFRFX1BSRVNFTlQoKnB0ZSkpIHsKKwkJcGFnZSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghcGFnZSkKKwkJCXJldHVybiAtRU5PTUVNOworCQkqcHRlID0gSU9NTVVfTDFfUERFKHZpcnRfdG9fcGh5cyhwYWdlKSk7CisJfQorCisJcHRlID0gSU9NTVVfUFRFX1BBR0UoKnB0ZSk7CisJcHRlID0gJnB0ZVtJT01NVV9QVEVfTDBfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmIChJT01NVV9QVEVfUFJFU0VOVCgqcHRlKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCV9fcHRlID0gcGh5c19hZGRyIHwgSU9NTVVfUFRFX1A7CisJaWYgKHByb3QgJiBJT01NVV9QUk9UX0lSKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVI7CisJaWYgKHByb3QgJiBJT01NVV9QUk9UX0lXKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVc7CisKKwkqcHRlID0gX19wdGU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9mb3JfdW5pdHlfbWFwKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgICAgIHN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmVudHJ5KQoreworCXUxNiBiZGYsIGk7CisKKwlmb3IgKGkgPSBlbnRyeS0+ZGV2aWRfc3RhcnQ7IGkgPD0gZW50cnktPmRldmlkX2VuZDsgKytpKSB7CisJCWJkZiA9IGFtZF9pb21tdV9hbGlhc190YWJsZVtpXTsKKwkJaWYgKGFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2JkZl0gPT0gaW9tbXUpCisJCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9pbml0X3VuaXR5X21hcHBpbmdzKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmVudHJ5OworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmYW1kX2lvbW11X3VuaXR5X21hcCwgbGlzdCkgeworCQlpZiAoIWlvbW11X2Zvcl91bml0eV9tYXAoaW9tbXUsIGVudHJ5KSkKKwkJCWNvbnRpbnVlOworCQlyZXQgPSBkbWFfb3BzX3VuaXR5X21hcChpb21tdS0+ZGVmYXVsdF9kb20sIGVudHJ5KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG1hX29wc191bml0eV9tYXAoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgICBzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplKQoreworCXU2NCBhZGRyOworCWludCByZXQ7CisKKwlmb3IgKGFkZHIgPSBlLT5hZGRyZXNzX3N0YXJ0OyBhZGRyIDwgZS0+YWRkcmVzc19lbmQ7CisJICAgICBhZGRyICs9IFBBR0VfU0laRSkgeworCQlyZXQgPSBpb21tdV9tYXAoJmRtYV9kb20tPmRvbWFpbiwgYWRkciwgYWRkciwgZS0+cHJvdCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCQkvKgorCQkgKiBpZiB1bml0eSBtYXBwaW5nIGlzIGluIGFwZXJ0dXJlIHJhbmdlIG1hcmsgdGhlIHBhZ2UKKwkJICogYXMgYWxsb2NhdGVkIGluIHRoZSBhcGVydHVyZQorCQkgKi8KKwkJaWYgKGFkZHIgPCBkbWFfZG9tLT5hcGVydHVyZV9zaXplKQorCQkJX19zZXRfYml0KGFkZHIgPj4gUEFHRV9TSElGVCwgZG1hX2RvbS0+Yml0bWFwKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbml0X3VuaXR5X21hcHBpbmdzX2Zvcl9kZXZpY2Uoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJCQkgIHUxNiBkZXZpZCkKK3sKKwlzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplOworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGUsICZhbWRfaW9tbXVfdW5pdHlfbWFwLCBsaXN0KSB7CisJCWlmICghKGRldmlkID49IGUtPmRldmlkX3N0YXJ0ICYmIGRldmlkIDw9IGUtPmRldmlkX2VuZCkpCisJCQljb250aW51ZTsKKwkJcmV0ID0gZG1hX29wc191bml0eV9tYXAoZG1hX2RvbSwgZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkbWFfbWFza190b19wYWdlcyh1bnNpZ25lZCBsb25nIG1hc2spCit7CisJcmV0dXJuIChtYXNrID4+IFBBR0VfU0hJRlQpICsKKwkJKFBBR0VfQUxJR04obWFzayAmIH5QQUdFX01BU0spID4+IFBBR0VfU0hJRlQpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkbWFfb3BzX2FsbG9jX2FkZHJlc3NlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCSAgICAgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJCSAgICAgdW5zaWduZWQgaW50IHBhZ2VzKQoreworCXVuc2lnbmVkIGxvbmcgbGltaXQgPSBkbWFfbWFza190b19wYWdlcygqZGV2LT5kbWFfbWFzayk7CisJdW5zaWduZWQgbG9uZyBhZGRyZXNzOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IGRvbS0+YXBlcnR1cmVfc2l6ZSA+PiBQQUdFX1NISUZUOworCXVuc2lnbmVkIGxvbmcgYm91bmRhcnlfc2l6ZTsKKworCWJvdW5kYXJ5X3NpemUgPSBBTElHTihkbWFfZ2V0X3NlZ19ib3VuZGFyeShkZXYpICsgMSwKKwkJCVBBR0VfU0laRSkgPj4gUEFHRV9TSElGVDsKKwlsaW1pdCA9IGxpbWl0IDwgc2l6ZSA/IGxpbWl0IDogc2l6ZTsKKworCWlmIChkb20tPm5leHRfYml0ID49IGxpbWl0KQorCQlkb20tPm5leHRfYml0ID0gMDsKKworCWFkZHJlc3MgPSBpb21tdV9hcmVhX2FsbG9jKGRvbS0+Yml0bWFwLCBsaW1pdCwgZG9tLT5uZXh0X2JpdCwgcGFnZXMsCisJCQkwICwgYm91bmRhcnlfc2l6ZSwgMCk7CisJaWYgKGFkZHJlc3MgPT0gLTEpCisJCWFkZHJlc3MgPSBpb21tdV9hcmVhX2FsbG9jKGRvbS0+Yml0bWFwLCBsaW1pdCwgMCwgcGFnZXMsCisJCQkJMCwgYm91bmRhcnlfc2l6ZSwgMCk7CisKKwlpZiAobGlrZWx5KGFkZHJlc3MgIT0gLTEpKSB7CisJCWRvbS0+bmV4dF9iaXQgPSBhZGRyZXNzICsgcGFnZXM7CisJCWFkZHJlc3MgPDw9IFBBR0VfU0hJRlQ7CisJfSBlbHNlCisJCWFkZHJlc3MgPSBiYWRfZG1hX2FkZHJlc3M7CisKKwlXQVJOX09OKChhZGRyZXNzICsgKFBBR0VfU0laRSpwYWdlcykpID4gZG9tLT5hcGVydHVyZV9zaXplKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX2ZyZWVfYWRkcmVzc2VzKHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJCQkgICB1bnNpZ25lZCBpbnQgcGFnZXMpCit7CisJYWRkcmVzcyA+Pj0gUEFHRV9TSElGVDsKKwlpb21tdV9hcmVhX2ZyZWUoZG9tLT5iaXRtYXAsIGFkZHJlc3MsIHBhZ2VzKTsKK30KKworc3RhdGljIHUxNiBkb21haW5faWRfYWxsb2Modm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBpZDsKKworCXdyaXRlX2xvY2tfaXJxc2F2ZSgmYW1kX2lvbW11X2RldnRhYmxlX2xvY2ssIGZsYWdzKTsKKwlpZCA9IGZpbmRfZmlyc3RfemVyb19iaXQoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCwgTUFYX0RPTUFJTl9JRCk7CisJQlVHX09OKGlkID09IDApOworCWlmIChpZCA+IDAgJiYgaWQgPCBNQVhfRE9NQUlOX0lEKQorCQlfX3NldF9iaXQoaWQsIGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXApOworCWVsc2UKKwkJaWQgPSAwOworCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIGlkOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX3Jlc2VydmVfYWRkcmVzc2VzKHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGFnZSwKKwkJCQkgICAgICB1bnNpZ25lZCBpbnQgcGFnZXMpCit7CisJdW5zaWduZWQgaW50IGxhc3RfcGFnZSA9IGRvbS0+YXBlcnR1cmVfc2l6ZSA+PiBQQUdFX1NISUZUOworCisJaWYgKHN0YXJ0X3BhZ2UgKyBwYWdlcyA+IGxhc3RfcGFnZSkKKwkJcGFnZXMgPSBsYXN0X3BhZ2UgLSBzdGFydF9wYWdlOworCisJc2V0X2JpdF9zdHJpbmcoZG9tLT5iaXRtYXAsIHN0YXJ0X3BhZ2UsIHBhZ2VzKTsKK30KKworc3RhdGljIHZvaWQgZG1hX29wc19mcmVlX3BhZ2V0YWJsZShzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20pCit7CisJaW50IGksIGo7CisJdTY0ICpwMSwgKnAyLCAqcDM7CisKKwlwMSA9IGRtYV9kb20tPmRvbWFpbi5wdF9yb290OworCisJaWYgKCFwMSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IDUxMjsgKytpKSB7CisJCWlmICghSU9NTVVfUFRFX1BSRVNFTlQocDFbaV0pKQorCQkJY29udGludWU7CisKKwkJcDIgPSBJT01NVV9QVEVfUEFHRShwMVtpXSk7CisJCWZvciAoaiA9IDA7IGogPCA1MTI7ICsraSkgeworCQkJaWYgKCFJT01NVV9QVEVfUFJFU0VOVChwMltqXSkpCisJCQkJY29udGludWU7CisJCQlwMyA9IElPTU1VX1BURV9QQUdFKHAyW2pdKTsKKwkJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwMyk7CisJCX0KKworCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcDIpOworCX0KKworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwMSk7Cit9CisKK3N0YXRpYyB2b2lkIGRtYV9vcHNfZG9tYWluX2ZyZWUoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20pCit7CisJaWYgKCFkb20pCisJCXJldHVybjsKKworCWRtYV9vcHNfZnJlZV9wYWdldGFibGUoZG9tKTsKKworCWtmcmVlKGRvbS0+cHRlX3BhZ2VzKTsKKworCWtmcmVlKGRvbS0+Yml0bWFwKTsKKworCWtmcmVlKGRvbSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9vcHNfZG9tYWluX2FsbG9jKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJCQkJICAgdW5zaWduZWQgb3JkZXIpCit7CisJc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tOworCXVuc2lnbmVkIGksIG51bV9wdGVfcGFnZXM7CisJdTY0ICpsMl9wZGU7CisJdTY0IGFkZHJlc3M7CisKKwkvKgorCSAqIEN1cnJlbnRseSB0aGUgRE1BIGFwZXJ0dXJlIG11c3QgYmUgYmV0d2VlbiAzMiBNQiBhbmQgMUdCIGluIHNpemUKKwkgKi8KKwlpZiAoKG9yZGVyIDwgMjUpIHx8IChvcmRlciA+IDMwKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlkbWFfZG9tID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRtYV9vcHNfZG9tYWluKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkbWFfZG9tKQorCQlyZXR1cm4gTlVMTDsKKworCXNwaW5fbG9ja19pbml0KCZkbWFfZG9tLT5kb21haW4ubG9jayk7CisKKwlkbWFfZG9tLT5kb21haW4uaWQgPSBkb21haW5faWRfYWxsb2MoKTsKKwlpZiAoZG1hX2RvbS0+ZG9tYWluLmlkID09IDApCisJCWdvdG8gZnJlZV9kbWFfZG9tOworCWRtYV9kb20tPmRvbWFpbi5tb2RlID0gUEFHRV9NT0RFXzNfTEVWRUw7CisJZG1hX2RvbS0+ZG9tYWluLnB0X3Jvb3QgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwlkbWFfZG9tLT5kb21haW4ucHJpdiA9IGRtYV9kb207CisJaWYgKCFkbWFfZG9tLT5kb21haW4ucHRfcm9vdCkKKwkJZ290byBmcmVlX2RtYV9kb207CisJZG1hX2RvbS0+YXBlcnR1cmVfc2l6ZSA9ICgxVUxMIDw8IG9yZGVyKTsKKwlkbWFfZG9tLT5iaXRtYXAgPSBremFsbG9jKGRtYV9kb20tPmFwZXJ0dXJlX3NpemUgLyAoUEFHRV9TSVpFICogOCksCisJCQkJICBHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9kb20tPmJpdG1hcCkKKwkJZ290byBmcmVlX2RtYV9kb207CisJLyoKKwkgKiBtYXJrIHRoZSBmaXJzdCBwYWdlIGFzIGFsbG9jYXRlZCBzbyB3ZSBuZXZlciByZXR1cm4gMCBhcworCSAqIGEgdmFsaWQgZG1hLWFkZHJlc3MuIFNvIHdlIGNhbiB1c2UgMCBhcyBlcnJvciB2YWx1ZQorCSAqLworCWRtYV9kb20tPmJpdG1hcFswXSA9IDE7CisJZG1hX2RvbS0+bmV4dF9iaXQgPSAwOworCisJaWYgKGlvbW11LT5leGNsdXNpb25fc3RhcnQgJiYKKwkgICAgaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCA8IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFydHBhZ2UgPSBpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJCWludCBwYWdlcyA9IHRvX3BhZ2VzKGlvbW11LT5leGNsdXNpb25fc3RhcnQsCisJCQkJaW9tbXUtPmV4Y2x1c2lvbl9sZW5ndGgpOworCQlkbWFfb3BzX3Jlc2VydmVfYWRkcmVzc2VzKGRtYV9kb20sIHN0YXJ0cGFnZSwgcGFnZXMpOworCX0KKworCW51bV9wdGVfcGFnZXMgPSBkbWFfZG9tLT5hcGVydHVyZV9zaXplIC8gKFBBR0VfU0laRSAqIDUxMik7CisJZG1hX2RvbS0+cHRlX3BhZ2VzID0ga3phbGxvYyhudW1fcHRlX3BhZ2VzICogc2l6ZW9mKHZvaWQgKiksCisJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9kb20tPnB0ZV9wYWdlcykKKwkJZ290byBmcmVlX2RtYV9kb207CisKKwlsMl9wZGUgPSAodTY0ICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCWlmIChsMl9wZGUgPT0gTlVMTCkKKwkJZ290byBmcmVlX2RtYV9kb207CisKKwlkbWFfZG9tLT5kb21haW4ucHRfcm9vdFswXSA9IElPTU1VX0wyX1BERSh2aXJ0X3RvX3BoeXMobDJfcGRlKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3B0ZV9wYWdlczsgKytpKSB7CisJCWRtYV9kb20tPnB0ZV9wYWdlc1tpXSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghZG1hX2RvbS0+cHRlX3BhZ2VzW2ldKQorCQkJZ290byBmcmVlX2RtYV9kb207CisJCWFkZHJlc3MgPSB2aXJ0X3RvX3BoeXMoZG1hX2RvbS0+cHRlX3BhZ2VzW2ldKTsKKwkJbDJfcGRlW2ldID0gSU9NTVVfTDFfUERFKGFkZHJlc3MpOworCX0KKworCXJldHVybiBkbWFfZG9tOworCitmcmVlX2RtYV9kb206CisJZG1hX29wc19kb21haW5fZnJlZShkbWFfZG9tKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW5fZm9yX2RldmljZSh1MTYgZGV2aWQpCit7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb207CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXJlYWRfbG9ja19pcnFzYXZlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCWRvbSA9IGFtZF9pb21tdV9wZF90YWJsZVtkZXZpZF07CisJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmYW1kX2lvbW11X2RldnRhYmxlX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiBkb207Cit9CisKK3N0YXRpYyB2b2lkIHNldF9kZXZpY2VfZG9tYWluKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgICAgc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4sCisJCQkgICAgICB1MTYgZGV2aWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXU2NCBwdGVfcm9vdCA9IHZpcnRfdG9fcGh5cyhkb21haW4tPnB0X3Jvb3QpOworCisJcHRlX3Jvb3QgfD0gKGRvbWFpbi0+bW9kZSAmIDB4MDcpIDw8IDk7CisJcHRlX3Jvb3QgfD0gSU9NTVVfUFRFX0lSIHwgSU9NTVVfUFRFX0lXIHwgSU9NTVVfUFRFX1AgfCAyOworCisJd3JpdGVfbG9ja19pcnFzYXZlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCWFtZF9pb21tdV9kZXZfdGFibGVbZGV2aWRdLmRhdGFbMF0gPSBwdGVfcm9vdDsKKwlhbWRfaW9tbXVfZGV2X3RhYmxlW2RldmlkXS5kYXRhWzFdID0gcHRlX3Jvb3QgPj4gMzI7CisJYW1kX2lvbW11X2Rldl90YWJsZVtkZXZpZF0uZGF0YVsyXSA9IGRvbWFpbi0+aWQ7CisKKwlhbWRfaW9tbXVfcGRfdGFibGVbZGV2aWRdID0gZG9tYWluOworCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCisJaW9tbXVfcXVldWVfaW52X2Rldl9lbnRyeShpb21tdSwgZGV2aWQpOworCisJaW9tbXUtPm5lZWRfc3luYyA9IDE7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X2RldmljZV9yZXNvdXJjZXMoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBhbWRfaW9tbXUgKippb21tdSwKKwkJCQlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKipkb21haW4sCisJCQkJdTE2ICpiZGYpCit7CisJc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tOworCXN0cnVjdCBwY2lfZGV2ICpwY2lkZXY7CisJdTE2IF9iZGY7CisKKwlCVUdfT04oIWRldiB8fCBkZXYtPmJ1cyAhPSAmcGNpX2J1c190eXBlIHx8ICFkZXYtPmRtYV9tYXNrKTsKKworCXBjaWRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKwlfYmRmID0gKHBjaWRldi0+YnVzLT5udW1iZXIgPDwgOCkgfCBwY2lkZXYtPmRldmZuOworCisJaWYgKF9iZGYgPj0gYW1kX2lvbW11X2xhc3RfYmRmKSB7CisJCSppb21tdSA9IE5VTEw7CisJCSpkb21haW4gPSBOVUxMOworCQkqYmRmID0gMHhmZmZmOworCQlyZXR1cm4gMDsKKwl9CisKKwkqYmRmID0gYW1kX2lvbW11X2FsaWFzX3RhYmxlW19iZGZdOworCisJKmlvbW11ID0gYW1kX2lvbW11X3Jsb29rdXBfdGFibGVbKmJkZl07CisJaWYgKCppb21tdSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKwlkbWFfZG9tID0gKCppb21tdSktPmRlZmF1bHRfZG9tOworCSpkb21haW4gPSBkb21haW5fZm9yX2RldmljZSgqYmRmKTsKKwlpZiAoKmRvbWFpbiA9PSBOVUxMKSB7CisJCSpkb21haW4gPSAmZG1hX2RvbS0+ZG9tYWluOworCQlzZXRfZGV2aWNlX2RvbWFpbigqaW9tbXUsICpkb21haW4sICpiZGYpOworCQlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVU6IFVzaW5nIHByb3RlY3Rpb24gZG9tYWluICVkIGZvciAiCisJCQkJImRldmljZSAiLCAoKmRvbWFpbiktPmlkKTsKKwkJcHJpbnRfZGV2aWQoX2JkZiwgMSk7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBkbWFfYWRkcl90IGRtYV9vcHNfZG9tYWluX21hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCQkgICAgIHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAorCQkJCSAgICAgcGh5c19hZGRyX3QgcGFkZHIsCisJCQkJICAgICBpbnQgZGlyZWN0aW9uKQoreworCXU2NCAqcHRlLCBfX3B0ZTsKKworCVdBUk5fT04oYWRkcmVzcyA+IGRvbS0+YXBlcnR1cmVfc2l6ZSk7CisKKwlwYWRkciAmPSBQQUdFX01BU0s7CisKKwlwdGUgID0gZG9tLT5wdGVfcGFnZXNbSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpXTsKKwlwdGUgKz0gSU9NTVVfUFRFX0wwX0lOREVYKGFkZHJlc3MpOworCisJX19wdGUgPSBwYWRkciB8IElPTU1VX1BURV9QIHwgSU9NTVVfUFRFX0ZDOworCisJaWYgKGRpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVI7CisJZWxzZSBpZiAoZGlyZWN0aW9uID09IERNQV9GUk9NX0RFVklDRSkKKwkJX19wdGUgfD0gSU9NTVVfUFRFX0lXOworCWVsc2UgaWYgKGRpcmVjdGlvbiA9PSBETUFfQklESVJFQ1RJT05BTCkKKwkJX19wdGUgfD0gSU9NTVVfUFRFX0lSIHwgSU9NTVVfUFRFX0lXOworCisJV0FSTl9PTigqcHRlKTsKKworCSpwdGUgPSBfX3B0ZTsKKworCXJldHVybiAoZG1hX2FkZHJfdClhZGRyZXNzOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX2RvbWFpbl91bm1hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCQkgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKK3sKKwl1NjQgKnB0ZTsKKworCWlmIChhZGRyZXNzID49IGRvbS0+YXBlcnR1cmVfc2l6ZSkKKwkJcmV0dXJuOworCisJV0FSTl9PTihhZGRyZXNzICYgMHhmZmZVTEwgfHwgYWRkcmVzcyA+IGRvbS0+YXBlcnR1cmVfc2l6ZSk7CisKKwlwdGUgID0gZG9tLT5wdGVfcGFnZXNbSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpXTsKKwlwdGUgKz0gSU9NTVVfUFRFX0wwX0lOREVYKGFkZHJlc3MpOworCisJV0FSTl9PTighKnB0ZSk7CisKKwkqcHRlID0gMFVMTDsKK30KKworc3RhdGljIGRtYV9hZGRyX3QgX19tYXBfc2luZ2xlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCSAgICAgICBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkgICAgICAgcGh5c19hZGRyX3QgcGFkZHIsCisJCQkgICAgICAgc2l6ZV90IHNpemUsCisJCQkgICAgICAgaW50IGRpcikKK3sKKwlkbWFfYWRkcl90IG9mZnNldCA9IHBhZGRyICYgflBBR0VfTUFTSzsKKwlkbWFfYWRkcl90IGFkZHJlc3MsIHN0YXJ0OworCXVuc2lnbmVkIGludCBwYWdlczsKKwlpbnQgaTsKKworCXBhZ2VzID0gdG9fcGFnZXMocGFkZHIsIHNpemUpOworCXBhZGRyICY9IFBBR0VfTUFTSzsKKworCWFkZHJlc3MgPSBkbWFfb3BzX2FsbG9jX2FkZHJlc3NlcyhkZXYsIGRtYV9kb20sIHBhZ2VzKTsKKwlpZiAodW5saWtlbHkoYWRkcmVzcyA9PSBiYWRfZG1hX2FkZHJlc3MpKQorCQlnb3RvIG91dDsKKworCXN0YXJ0ID0gYWRkcmVzczsKKwlmb3IgKGkgPSAwOyBpIDwgcGFnZXM7ICsraSkgeworCQlkbWFfb3BzX2RvbWFpbl9tYXAoaW9tbXUsIGRtYV9kb20sIHN0YXJ0LCBwYWRkciwgZGlyKTsKKwkJcGFkZHIgKz0gUEFHRV9TSVpFOworCQlzdGFydCArPSBQQUdFX1NJWkU7CisJfQorCWFkZHJlc3MgKz0gb2Zmc2V0OworCitvdXQ6CisJcmV0dXJuIGFkZHJlc3M7Cit9CisKK3N0YXRpYyB2b2lkIF9fdW5tYXBfc2luZ2xlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgZG1hX2FkZHJfdCBkbWFfYWRkciwKKwkJCSAgIHNpemVfdCBzaXplLAorCQkJICAgaW50IGRpcikKK3sKKwlkbWFfYWRkcl90IGksIHN0YXJ0OworCXVuc2lnbmVkIGludCBwYWdlczsKKworCWlmICgoZG1hX2FkZHIgPT0gMCkgfHwgKGRtYV9hZGRyICsgc2l6ZSA+IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUpKQorCQlyZXR1cm47CisKKwlwYWdlcyA9IHRvX3BhZ2VzKGRtYV9hZGRyLCBzaXplKTsKKwlkbWFfYWRkciAmPSBQQUdFX01BU0s7CisJc3RhcnQgPSBkbWFfYWRkcjsKKworCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgKytpKSB7CisJCWRtYV9vcHNfZG9tYWluX3VubWFwKGlvbW11LCBkbWFfZG9tLCBzdGFydCk7CisJCXN0YXJ0ICs9IFBBR0VfU0laRTsKKwl9CisKKwlkbWFfb3BzX2ZyZWVfYWRkcmVzc2VzKGRtYV9kb20sIGRtYV9hZGRyLCBwYWdlcyk7Cit9CisKK3N0YXRpYyBkbWFfYWRkcl90IG1hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqZGV2LCBwaHlzX2FkZHJfdCBwYWRkciwKKwkJCSAgICAgc2l6ZV90IHNpemUsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisJZG1hX2FkZHJfdCBhZGRyOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoaW9tbXUgPT0gTlVMTCB8fCBkb21haW4gPT0gTlVMTCkKKwkJcmV0dXJuIChkbWFfYWRkcl90KXBhZGRyOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCWFkZHIgPSBfX21hcF9zaW5nbGUoZGV2LCBpb21tdSwgZG9tYWluLT5wcml2LCBwYWRkciwgc2l6ZSwgZGlyKTsKKwlpZiAoYWRkciA9PSBiYWRfZG1hX2FkZHJlc3MpCisJCWdvdG8gb3V0OworCisJaWYgKGlvbW11X2hhc19ucGNhY2hlKGlvbW11KSkKKwkJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsIGFkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiBhZGRyOworfQorCitzdGF0aWMgdm9pZCB1bm1hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRtYV9hZGRyLAorCQkJIHNpemVfdCBzaXplLCBpbnQgZGlyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJdTE2IGRldmlkOworCisJaWYgKCFnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJX191bm1hcF9zaW5nbGUoaW9tbXUsIGRvbWFpbi0+cHJpdiwgZG1hX2FkZHIsIHNpemUsIGRpcik7CisKKwlpb21tdV9mbHVzaF9wYWdlcyhpb21tdSwgZG9tYWluLT5pZCwgZG1hX2FkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIGludCBtYXBfc2dfbm9faW9tbXUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKKwkJCSAgIGludCBuZWxlbXMsIGludCBkaXIpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCWludCBpOworCisJZm9yX2VhY2hfc2coc2dsaXN0LCBzLCBuZWxlbXMsIGkpIHsKKwkJcy0+ZG1hX2FkZHJlc3MgPSAoZG1hX2FkZHJfdClzZ19waHlzKHMpOworCQlzLT5kbWFfbGVuZ3RoICA9IHMtPmxlbmd0aDsKKwl9CisKKwlyZXR1cm4gbmVsZW1zOworfQorCitzdGF0aWMgaW50IG1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsaXN0LAorCQkgIGludCBuZWxlbXMsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisJaW50IGk7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCXBoeXNfYWRkcl90IHBhZGRyOworCWludCBtYXBwZWRfZWxlbXMgPSAwOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoIWlvbW11IHx8ICFkb21haW4pCisJCXJldHVybiBtYXBfc2dfbm9faW9tbXUoZGV2LCBzZ2xpc3QsIG5lbGVtcywgZGlyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbmVsZW1zLCBpKSB7CisJCXBhZGRyID0gc2dfcGh5cyhzKTsKKworCQlzLT5kbWFfYWRkcmVzcyA9IF9fbWFwX3NpbmdsZShkZXYsIGlvbW11LCBkb21haW4tPnByaXYsCisJCQkJCSAgICAgIHBhZGRyLCBzLT5sZW5ndGgsIGRpcik7CisKKwkJaWYgKHMtPmRtYV9hZGRyZXNzKSB7CisJCQlzLT5kbWFfbGVuZ3RoID0gcy0+bGVuZ3RoOworCQkJbWFwcGVkX2VsZW1zKys7CisJCX0gZWxzZQorCQkJZ290byB1bm1hcDsKKwkJaWYgKGlvbW11X2hhc19ucGNhY2hlKGlvbW11KSkKKwkJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBzLT5kbWFfYWRkcmVzcywKKwkJCQkJICBzLT5kbWFfbGVuZ3RoKTsKKwl9CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIG1hcHBlZF9lbGVtczsKK3VubWFwOgorCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbWFwcGVkX2VsZW1zLCBpKSB7CisJCWlmIChzLT5kbWFfYWRkcmVzcykKKwkJCV9fdW5tYXBfc2luZ2xlKGlvbW11LCBkb21haW4tPnByaXYsIHMtPmRtYV9hZGRyZXNzLAorCQkJCSAgICAgICBzLT5kbWFfbGVuZ3RoLCBkaXIpOworCQlzLT5kbWFfYWRkcmVzcyA9IHMtPmRtYV9sZW5ndGggPSAwOworCX0KKworCW1hcHBlZF9lbGVtcyA9IDA7CisKKwlnb3RvIG91dDsKK30KKworc3RhdGljIHZvaWQgdW5tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKKwkJICAgICBpbnQgbmVsZW1zLCBpbnQgZGlyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCXUxNiBkZXZpZDsKKwlpbnQgaTsKKworCWlmICghZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCkpCisJCXJldHVybjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbmVsZW1zLCBpKSB7CisJCV9fdW5tYXBfc2luZ2xlKGlvbW11LCBkb21haW4tPnByaXYsIHMtPmRtYV9hZGRyZXNzLAorCQkJICAgICAgIHMtPmRtYV9sZW5ndGgsIGRpcik7CisJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBzLT5kbWFfYWRkcmVzcywKKwkJCQkgIHMtPmRtYV9sZW5ndGgpOworCQlzLT5kbWFfYWRkcmVzcyA9IHMtPmRtYV9sZW5ndGggPSAwOworCX0KKworCWlmIChpb21tdS0+bmVlZF9zeW5jKQorCQlpb21tdV9jb21wbGV0aW9uX3dhaXQoaW9tbXUpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkICphbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJICAgIGRtYV9hZGRyX3QgKmRtYV9hZGRyLCBnZnBfdCBmbGFnKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdm9pZCAqdmlydF9hZGRyOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluOworCXUxNiBkZXZpZDsKKwlwaHlzX2FkZHJfdCBwYWRkcjsKKworCXZpcnRfYWRkciA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhmbGFnLCBnZXRfb3JkZXIoc2l6ZSkpOworCWlmICghdmlydF9hZGRyKQorCQlyZXR1cm4gMDsKKworCW1lbXNldCh2aXJ0X2FkZHIsIDAsIHNpemUpOworCXBhZGRyID0gdmlydF90b19waHlzKHZpcnRfYWRkcik7CisKKwlnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKTsKKworCWlmICghaW9tbXUgfHwgIWRvbWFpbikgeworCQkqZG1hX2FkZHIgPSAoZG1hX2FkZHJfdClwYWRkcjsKKwkJcmV0dXJuIHZpcnRfYWRkcjsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwkqZG1hX2FkZHIgPSBfX21hcF9zaW5nbGUoZGV2LCBpb21tdSwgZG9tYWluLT5wcml2LCBwYWRkciwKKwkJCQkgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOworCisJaWYgKCpkbWFfYWRkciA9PSBiYWRfZG1hX2FkZHJlc3MpIHsKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZyl2aXJ0X2FkZHIsIGdldF9vcmRlcihzaXplKSk7CisJCXZpcnRfYWRkciA9IE5VTEw7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChpb21tdV9oYXNfbnBjYWNoZShpb21tdSkpCisJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCAqZG1hX2FkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiB2aXJ0X2FkZHI7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJCSAgdm9pZCAqdmlydF9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJdTE2IGRldmlkOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoIWlvbW11IHx8ICFkb21haW4pCisJCWdvdG8gZnJlZV9tZW07CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwlfX3VubWFwX3NpbmdsZShpb21tdSwgZG9tYWluLT5wcml2LCBkbWFfYWRkciwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOworCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBkbWFfYWRkciwgc2l6ZSk7CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCitmcmVlX21lbToKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKXZpcnRfYWRkciwgZ2V0X29yZGVyKHNpemUpKTsKK30KKworLyoKKyAqIElmIHRoZSBkcml2ZXIgY29yZSBpbmZvcm1zIHRoZSBETUEgbGF5ZXIgaWYgYSBkcml2ZXIgZ3JhYnMgYSBkZXZpY2UKKyAqIHdlIGRvbid0IG5lZWQgdG8gcHJlYWxsb2NhdGUgdGhlIHByb3RlY3Rpb24gZG9tYWlucyBhbnltb3JlLgorICogRm9yIG5vdyB3ZSBoYXZlIHRvLgorICovCit2b2lkIHByZWFsbG9jX3Byb3RlY3Rpb25fZG9tYWlucyh2b2lkKQoreworCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBOVUxMOworCXN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG1hX2RvbTsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlpbnQgb3JkZXIgPSBhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXI7CisJdTE2IGRldmlkOworCisJd2hpbGUgKChkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBkZXYpKSAhPSBOVUxMKSB7CisJCWRldmlkID0gKGRldi0+YnVzLT5udW1iZXIgPDwgOCkgfCBkZXYtPmRldmZuOworCQlpZiAoZGV2aWQgPj0gYW1kX2lvbW11X2xhc3RfYmRmKQorCQkJY29udGludWU7CisJCWRldmlkID0gYW1kX2lvbW11X2FsaWFzX3RhYmxlW2RldmlkXTsKKwkJaWYgKGRvbWFpbl9mb3JfZGV2aWNlKGRldmlkKSkKKwkJCWNvbnRpbnVlOworCQlpb21tdSA9IGFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2RldmlkXTsKKwkJaWYgKCFpb21tdSkKKwkJCWNvbnRpbnVlOworCQlkbWFfZG9tID0gZG1hX29wc19kb21haW5fYWxsb2MoaW9tbXUsIG9yZGVyKTsKKwkJaWYgKCFkbWFfZG9tKQorCQkJY29udGludWU7CisJCWluaXRfdW5pdHlfbWFwcGluZ3NfZm9yX2RldmljZShkbWFfZG9tLCBkZXZpZCk7CisJCXNldF9kZXZpY2VfZG9tYWluKGlvbW11LCAmZG1hX2RvbS0+ZG9tYWluLCBkZXZpZCk7CisJCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogQWxsb2NhdGVkIGRvbWFpbiAlZCBmb3IgZGV2aWNlICIsCisJCSAgICAgICBkbWFfZG9tLT5kb21haW4uaWQpOworCQlwcmludF9kZXZpZChkZXZpZCwgMSk7CisJfQorfQorCitzdGF0aWMgc3RydWN0IGRtYV9tYXBwaW5nX29wcyBhbWRfaW9tbXVfZG1hX29wcyA9IHsKKwkuYWxsb2NfY29oZXJlbnQgPSBhbGxvY19jb2hlcmVudCwKKwkuZnJlZV9jb2hlcmVudCA9IGZyZWVfY29oZXJlbnQsCisJLm1hcF9zaW5nbGUgPSBtYXBfc2luZ2xlLAorCS51bm1hcF9zaW5nbGUgPSB1bm1hcF9zaW5nbGUsCisJLm1hcF9zZyA9IG1hcF9zZywKKwkudW5tYXBfc2cgPSB1bm1hcF9zZywKK307CisKK2ludCBfX2luaXQgYW1kX2lvbW11X2luaXRfZG1hX29wcyh2b2lkKQoreworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCWludCBvcmRlciA9IGFtZF9pb21tdV9hcGVydHVyZV9vcmRlcjsKKwlpbnQgcmV0OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpb21tdSwgJmFtZF9pb21tdV9saXN0LCBsaXN0KSB7CisJCWlvbW11LT5kZWZhdWx0X2RvbSA9IGRtYV9vcHNfZG9tYWluX2FsbG9jKGlvbW11LCBvcmRlcik7CisJCWlmIChpb21tdS0+ZGVmYXVsdF9kb20gPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSBpb21tdV9pbml0X3VuaXR5X21hcHBpbmdzKGlvbW11KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZnJlZV9kb21haW5zOworCX0KKworCWlmIChhbWRfaW9tbXVfaXNvbGF0ZSkKKwkJcHJlYWxsb2NfcHJvdGVjdGlvbl9kb21haW5zKCk7CisKKwlpb21tdV9kZXRlY3RlZCA9IDE7CisJZm9yY2VfaW9tbXUgPSAxOworCWJhZF9kbWFfYWRkcmVzcyA9IDA7CisjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKKwlnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkID0gMTsKKwlnYXJ0X2lvbW11X2FwZXJ0dXJlID0gMDsKKyNlbmRpZgorCisJZG1hX29wcyA9ICZhbWRfaW9tbXVfZG1hX29wczsKKworCXJldHVybiAwOworCitmcmVlX2RvbWFpbnM6CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvbW11LCAmYW1kX2lvbW11X2xpc3QsIGxpc3QpIHsKKwkJaWYgKGlvbW11LT5kZWZhdWx0X2RvbSkKKwkJCWRtYV9vcHNfZG9tYWluX2ZyZWUoaW9tbXUtPmRlZmF1bHRfZG9tKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FtZF9pb21tdV9pbml0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11X2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTEzZTQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FtZF9pb21tdV9pbml0LmMKQEAgLTAsMCArMSw4NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBdXRob3I6IEpvZXJnIFJvZWRlbCA8am9lcmcucm9lZGVsQGFtZC5jb20+CisgKiAgICAgICAgIExlbyBEdXJhbiA8bGVvLmR1cmFuQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11X3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2FtZF9pb21tdS5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CisKKy8qCisgKiBkZWZpbml0aW9ucyBmb3IgdGhlIEFDUEkgc2Nhbm5pbmcgY29kZQorICovCisjZGVmaW5lIFVQREFURV9MQVNUX0JERih4KSBkbyB7XAorCWlmICgoeCkgPiBhbWRfaW9tbXVfbGFzdF9iZGYpIFwKKwkJYW1kX2lvbW11X2xhc3RfYmRmID0gKHgpOyBcCisJfSB3aGlsZSAoMCk7CisKKyNkZWZpbmUgREVWSUQoYnVzLCBkZXZmbikgKCgoYnVzKSA8PCA4KSB8IChkZXZmbikpCisjZGVmaW5lIFBDSV9CVVMoeCkgKCgoeCkgPj4gOCkgJiAweGZmKQorI2RlZmluZSBJVlJTX0hFQURFUl9MRU5HVEggNDgKKyNkZWZpbmUgVEJMX1NJWkUoeCkgKDEgPDwgKFBBR0VfU0hJRlQgKyBnZXRfb3JkZXIoYW1kX2lvbW11X2xhc3RfYmRmICogKHgpKSkpCisKKyNkZWZpbmUgQUNQSV9JVkhEX1RZUEUgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFDUElfSVZNRF9UWVBFX0FMTCAgICAgICAgICAgICAgMHgyMAorI2RlZmluZSBBQ1BJX0lWTURfVFlQRSAgICAgICAgICAgICAgICAgIDB4MjEKKyNkZWZpbmUgQUNQSV9JVk1EX1RZUEVfUkFOR0UgICAgICAgICAgICAweDIyCisKKyNkZWZpbmUgSVZIRF9ERVZfQUxMICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIElWSERfREVWX1NFTEVDVCAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBJVkhEX0RFVl9TRUxFQ1RfUkFOR0VfU1RBUlQgICAgIDB4MDMKKyNkZWZpbmUgSVZIRF9ERVZfUkFOR0VfRU5EICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIElWSERfREVWX0FMSUFTICAgICAgICAgICAgICAgICAgMHg0MgorI2RlZmluZSBJVkhEX0RFVl9BTElBU19SQU5HRSAgICAgICAgICAgIDB4NDMKKyNkZWZpbmUgSVZIRF9ERVZfRVhUX1NFTEVDVCAgICAgICAgICAgICAweDQ2CisjZGVmaW5lIElWSERfREVWX0VYVF9TRUxFQ1RfUkFOR0UgICAgICAgMHg0NworCisjZGVmaW5lIElWSERfRkxBR19IVF9UVU5fRU4gICAgICAgICAgICAgMHgwMAorI2RlZmluZSBJVkhEX0ZMQUdfUEFTU1BXX0VOICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgSVZIRF9GTEFHX1JFU1BBU1NQV19FTiAgICAgICAgICAweDAyCisjZGVmaW5lIElWSERfRkxBR19JU09DX0VOICAgICAgICAgICAgICAgMHgwMworCisjZGVmaW5lIElWTURfRkxBR19FWENMX1JBTkdFICAgICAgICAgICAgMHgwOAorI2RlZmluZSBJVk1EX0ZMQUdfVU5JVFlfTUFQICAgICAgICAgICAgIDB4MDEKKworI2RlZmluZSBBQ1BJX0RFVkZMQUdfSU5JVFBBU1MgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX0VYVElOVCAgICAgICAgICAgICAweDAyCisjZGVmaW5lIEFDUElfREVWRkxBR19OTUkgICAgICAgICAgICAgICAgMHgwNAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfU1lTTUdUMSAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX1NZU01HVDIgICAgICAgICAgICAweDIwCisjZGVmaW5lIEFDUElfREVWRkxBR19MSU5UMCAgICAgICAgICAgICAgMHg0MAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfTElOVDEgICAgICAgICAgICAgIDB4ODAKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX0FUU0RJUyAgICAgICAgICAgICAweDEwMDAwMDAwCisKK3N0cnVjdCBpdmhkX2hlYWRlciB7CisJdTggdHlwZTsKKwl1OCBmbGFnczsKKwl1MTYgbGVuZ3RoOworCXUxNiBkZXZpZDsKKwl1MTYgY2FwX3B0cjsKKwl1NjQgbW1pb19waHlzOworCXUxNiBwY2lfc2VnOworCXUxNiBpbmZvOworCXUzMiByZXNlcnZlZDsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBpdmhkX2VudHJ5IHsKKwl1OCB0eXBlOworCXUxNiBkZXZpZDsKKwl1OCBmbGFnczsKKwl1MzIgZXh0OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGl2bWRfaGVhZGVyIHsKKwl1OCB0eXBlOworCXU4IGZsYWdzOworCXUxNiBsZW5ndGg7CisJdTE2IGRldmlkOworCXUxNiBhdXg7CisJdTY0IHJlc3Y7CisJdTY0IHJhbmdlX3N0YXJ0OworCXU2NCByYW5nZV9sZW5ndGg7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IF9faW5pdGRhdGEgYW1kX2lvbW11X2RldGVjdGVkOworCit1MTYgYW1kX2lvbW11X2xhc3RfYmRmOworc3RydWN0IGxpc3RfaGVhZCBhbWRfaW9tbXVfdW5pdHlfbWFwOwordW5zaWduZWQgYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjY7CitpbnQgYW1kX2lvbW11X2lzb2xhdGU7CisKK3N0cnVjdCBsaXN0X2hlYWQgYW1kX2lvbW11X2xpc3Q7CitzdHJ1Y3QgZGV2X3RhYmxlX2VudHJ5ICphbWRfaW9tbXVfZGV2X3RhYmxlOwordTE2ICphbWRfaW9tbXVfYWxpYXNfdGFibGU7CitzdHJ1Y3QgYW1kX2lvbW11ICoqYW1kX2lvbW11X3Jsb29rdXBfdGFibGU7CitzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKiphbWRfaW9tbXVfcGRfdGFibGU7Cit1bnNpZ25lZCBsb25nICphbWRfaW9tbXVfcGRfYWxsb2NfYml0bWFwOworCitzdGF0aWMgdTMyIGRldl90YWJsZV9zaXplOworc3RhdGljIHUzMiBhbGlhc190YWJsZV9zaXplOworc3RhdGljIHUzMiBybG9va3VwX3RhYmxlX3NpemU7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9zZXRfZXhjbHVzaW9uX3JhbmdlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXU2NCBzdGFydCA9IGlvbW11LT5leGNsdXNpb25fc3RhcnQgJiBQQUdFX01BU0s7CisJdTY0IGxpbWl0ID0gKHN0YXJ0ICsgaW9tbXUtPmV4Y2x1c2lvbl9sZW5ndGgpICYgUEFHRV9NQVNLOworCXU2NCBlbnRyeTsKKworCWlmICghaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCkKKwkJcmV0dXJuOworCisJZW50cnkgPSBzdGFydCB8IE1NSU9fRVhDTF9FTkFCTEVfTUFTSzsKKwltZW1jcHlfdG9pbyhpb21tdS0+bW1pb19iYXNlICsgTU1JT19FWENMX0JBU0VfT0ZGU0VULAorCQkJJmVudHJ5LCBzaXplb2YoZW50cnkpKTsKKworCWVudHJ5ID0gbGltaXQ7CisJbWVtY3B5X3RvaW8oaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fRVhDTF9MSU1JVF9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW9tbXVfc2V0X2RldmljZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwl1MzIgZW50cnk7CisKKwlCVUdfT04oaW9tbXUtPm1taW9fYmFzZSA9PSBOVUxMKTsKKworCWVudHJ5ID0gdmlydF90b19waHlzKGFtZF9pb21tdV9kZXZfdGFibGUpOworCWVudHJ5IHw9IChkZXZfdGFibGVfc2l6ZSA+PiAxMikgLSAxOworCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0RFVl9UQUJMRV9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW9tbXVfZmVhdHVyZV9lbmFibGUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHU4IGJpdCkKK3sKKwl1MzIgY3RybDsKKworCWN0cmwgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7CisJY3RybCB8PSAoMSA8PCBiaXQpOworCXdyaXRlbChjdHJsLCBpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9mZWF0dXJlX2Rpc2FibGUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHU4IGJpdCkKK3sKKwl1MzIgY3RybDsKKworCWN0cmwgPSAodTY0KXJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NPTlRST0xfT0ZGU0VUKTsKKwljdHJsICY9IH4oMSA8PCBiaXQpOworCXdyaXRlbChjdHJsLCBpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7Cit9CisKK3ZvaWQgX19pbml0IGlvbW11X2VuYWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVU6IEVuYWJsaW5nIElPTU1VIGF0ICIpOworCXByaW50X2RldmlkKGlvbW11LT5kZXZpZCwgMCk7CisJcHJpbnRrKCIgY2FwIDB4JWh4XG4iLCBpb21tdS0+Y2FwX3B0cik7CisKKwlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9JT01NVV9FTik7Cit9CisKK3N0YXRpYyB1OCAqIF9faW5pdCBpb21tdV9tYXBfbW1pb19zcGFjZSh1NjQgYWRkcmVzcykKK3sKKwl1OCAqcmV0OworCisJaWYgKCFyZXF1ZXN0X21lbV9yZWdpb24oYWRkcmVzcywgTU1JT19SRUdJT05fTEVOR1RILCAiYW1kX2lvbW11IikpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gaW9yZW1hcF9ub2NhY2hlKGFkZHJlc3MsIE1NSU9fUkVHSU9OX0xFTkdUSCk7CisJaWYgKHJldCAhPSBOVUxMKQorCQlyZXR1cm4gcmV0OworCisJcmVsZWFzZV9tZW1fcmVnaW9uKGFkZHJlc3MsIE1NSU9fUkVHSU9OX0xFTkdUSCk7CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGlvbW11X3VubWFwX21taW9fc3BhY2Uoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaWYgKGlvbW11LT5tbWlvX2Jhc2UpCisJCWlvdW5tYXAoaW9tbXUtPm1taW9fYmFzZSk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKGlvbW11LT5tbWlvX3BoeXMsIE1NSU9fUkVHSU9OX0xFTkdUSCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGZpbmRfbGFzdF9kZXZpZF9vbl9wY2koaW50IGJ1cywgaW50IGRldiwgaW50IGZuLCBpbnQgY2FwX3B0cikKK3sKKwl1MzIgY2FwOworCisJY2FwID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgZGV2LCBmbiwgY2FwX3B0citNTUlPX1JBTkdFX09GRlNFVCk7CisJVVBEQVRFX0xBU1RfQkRGKERFVklEKE1NSU9fR0VUX0JVUyhjYXApLCBNTUlPX0dFVF9MRChjYXApKSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZmluZF9sYXN0X2RldmlkX2Zyb21faXZoZChzdHJ1Y3QgaXZoZF9oZWFkZXIgKmgpCit7CisJdTggKnAgPSAodm9pZCAqKWgsICplbmQgPSAodm9pZCAqKWg7CisJc3RydWN0IGl2aGRfZW50cnkgKmRldjsKKworCXAgKz0gc2l6ZW9mKCpoKTsKKwllbmQgKz0gaC0+bGVuZ3RoOworCisJZmluZF9sYXN0X2RldmlkX29uX3BjaShQQ0lfQlVTKGgtPmRldmlkKSwKKwkJCVBDSV9TTE9UKGgtPmRldmlkKSwKKwkJCVBDSV9GVU5DKGgtPmRldmlkKSwKKwkJCWgtPmNhcF9wdHIpOworCisJd2hpbGUgKHAgPCBlbmQpIHsKKwkJZGV2ID0gKHN0cnVjdCBpdmhkX2VudHJ5ICopcDsKKwkJc3dpdGNoIChkZXYtPnR5cGUpIHsKKwkJY2FzZSBJVkhEX0RFVl9TRUxFQ1Q6CisJCWNhc2UgSVZIRF9ERVZfUkFOR0VfRU5EOgorCQljYXNlIElWSERfREVWX0FMSUFTOgorCQljYXNlIElWSERfREVWX0VYVF9TRUxFQ1Q6CisJCQlVUERBVEVfTEFTVF9CREYoZGV2LT5kZXZpZCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXAgKz0gMHgwNCA8PCAoKnAgPj4gNik7CisJfQorCisJV0FSTl9PTihwICE9IGVuZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZmluZF9sYXN0X2RldmlkX2FjcGkoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZSkKK3sKKwlpbnQgaTsKKwl1OCBjaGVja3N1bSA9IDAsICpwID0gKHU4ICopdGFibGUsICplbmQgPSAodTggKil0YWJsZTsKKwlzdHJ1Y3QgaXZoZF9oZWFkZXIgKmg7CisKKwkvKgorCSAqIFZhbGlkYXRlIGNoZWNrc3VtIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBpdCB3aGVuCisJICogd2UgYWN0dWFsbHkgcGFyc2UgdGhlIHRhYmxlCisJICovCisJZm9yIChpID0gMDsgaSA8IHRhYmxlLT5sZW5ndGg7ICsraSkKKwkJY2hlY2tzdW0gKz0gcFtpXTsKKwlpZiAoY2hlY2tzdW0gIT0gMCkKKwkJLyogQUNQSSB0YWJsZSBjb3JydXB0ICovCisJCXJldHVybiAtRU5PREVWOworCisJcCArPSBJVlJTX0hFQURFUl9MRU5HVEg7CisKKwllbmQgKz0gdGFibGUtPmxlbmd0aDsKKwl3aGlsZSAocCA8IGVuZCkgeworCQloID0gKHN0cnVjdCBpdmhkX2hlYWRlciAqKXA7CisJCXN3aXRjaCAoaC0+dHlwZSkgeworCQljYXNlIEFDUElfSVZIRF9UWVBFOgorCQkJZmluZF9sYXN0X2RldmlkX2Zyb21faXZoZChoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJcCArPSBoLT5sZW5ndGg7CisJfQorCVdBUk5fT04ocCAhPSBlbmQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1OCAqIF9faW5pdCBhbGxvY19jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwl1OCAqY21kX2J1ZiA9ICh1OCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCWdldF9vcmRlcihDTURfQlVGRkVSX1NJWkUpKTsKKwl1NjQgZW50cnkgPSAwOworCisJaWYgKGNtZF9idWYgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpb21tdS0+Y21kX2J1Zl9zaXplID0gQ01EX0JVRkZFUl9TSVpFOworCisJbWVtc2V0KGNtZF9idWYsIDAsIENNRF9CVUZGRVJfU0laRSk7CisKKwllbnRyeSA9ICh1NjQpdmlydF90b19waHlzKGNtZF9idWYpOworCWVudHJ5IHw9IE1NSU9fQ01EX1NJWkVfNTEyOworCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9CVUZfT0ZGU0VULAorCQkJJmVudHJ5LCBzaXplb2YoZW50cnkpKTsKKworCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0NNREJVRl9FTik7CisKKwlyZXR1cm4gY21kX2J1ZjsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGZyZWVfY29tbWFuZF9idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaWYgKGlvbW11LT5jbWRfYnVmKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWlvbW11LT5jbWRfYnVmLAorCQkJCWdldF9vcmRlcihDTURfQlVGRkVSX1NJWkUpKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2Rldl9lbnRyeV9iaXQodTE2IGRldmlkLCB1OCBiaXQpCit7CisJaW50IGkgPSAoYml0ID4+IDUpICYgMHgwNzsKKwlpbnQgX2JpdCA9IGJpdCAmIDB4MWY7CisKKwlhbWRfaW9tbXVfZGV2X3RhYmxlW2RldmlkXS5kYXRhW2ldIHw9ICgxIDw8IF9iaXQpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkodTE2IGRldmlkLCB1MzIgZmxhZ3MsIHUzMiBleHRfZmxhZ3MpCit7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX0lOSVRQQVNTKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX0lOSVRfUEFTUyk7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX0VYVElOVCkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9FSU5UX1BBU1MpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19OTUkpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfTk1JX1BBU1MpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19TWVNNR1QxKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX1NZU01HVDEpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19TWVNNR1QyKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX1NZU01HVDIpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19MSU5UMCkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9MSU5UMF9QQVNTKTsKKwlpZiAoZmxhZ3MgJiBBQ1BJX0RFVkZMQUdfTElOVDEpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfTElOVDFfUEFTUyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXRfaW9tbXVfZm9yX2RldmljZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTE2IGRldmlkKQoreworCWFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2RldmlkXSA9IGlvbW11OworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2RldmljZV9leGNsdXNpb25fcmFuZ2UodTE2IGRldmlkLCBzdHJ1Y3QgaXZtZF9oZWFkZXIgKm0pCit7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXUgPSBhbWRfaW9tbXVfcmxvb2t1cF90YWJsZVtkZXZpZF07CisKKwlpZiAoIShtLT5mbGFncyAmIElWTURfRkxBR19FWENMX1JBTkdFKSkKKwkJcmV0dXJuOworCisJaWYgKGlvbW11KSB7CisJCXNldF9kZXZfZW50cnlfYml0KG0tPmRldmlkLCBERVZfRU5UUllfRVgpOworCQlpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0ID0gbS0+cmFuZ2Vfc3RhcnQ7CisJCWlvbW11LT5leGNsdXNpb25fbGVuZ3RoID0gbS0+cmFuZ2VfbGVuZ3RoOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGluaXRfaW9tbXVfZnJvbV9wY2koc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaW50IGJ1cyA9IFBDSV9CVVMoaW9tbXUtPmRldmlkKTsKKwlpbnQgZGV2ID0gUENJX1NMT1QoaW9tbXUtPmRldmlkKTsKKwlpbnQgZm4gID0gUENJX0ZVTkMoaW9tbXUtPmRldmlkKTsKKwlpbnQgY2FwX3B0ciA9IGlvbW11LT5jYXBfcHRyOworCXUzMiByYW5nZTsKKworCWlvbW11LT5jYXAgPSByZWFkX3BjaV9jb25maWcoYnVzLCBkZXYsIGZuLCBjYXBfcHRyK01NSU9fQ0FQX0hEUl9PRkZTRVQpOworCisJcmFuZ2UgPSByZWFkX3BjaV9jb25maWcoYnVzLCBkZXYsIGZuLCBjYXBfcHRyK01NSU9fUkFOR0VfT0ZGU0VUKTsKKwlpb21tdS0+Zmlyc3RfZGV2aWNlID0gREVWSUQoTU1JT19HRVRfQlVTKHJhbmdlKSwgTU1JT19HRVRfRkQocmFuZ2UpKTsKKwlpb21tdS0+bGFzdF9kZXZpY2UgPSBERVZJRChNTUlPX0dFVF9CVVMocmFuZ2UpLCBNTUlPX0dFVF9MRChyYW5nZSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9pb21tdV9mcm9tX2FjcGkoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkJCXN0cnVjdCBpdmhkX2hlYWRlciAqaCkKK3sKKwl1OCAqcCA9ICh1OCAqKWg7CisJdTggKmVuZCA9IHAsIGZsYWdzID0gMDsKKwl1MTYgZGV2X2ksIGRldmlkID0gMCwgZGV2aWRfc3RhcnQgPSAwLCBkZXZpZF90byA9IDA7CisJdTMyIGV4dF9mbGFncyA9IDA7CisJYm9vbCBhbGlhcyA9IDA7CisJc3RydWN0IGl2aGRfZW50cnkgKmU7CisKKwkvKgorCSAqIEZpcnN0IHNldCB0aGUgcmVjb21tZW5kZWQgZmVhdHVyZSBlbmFibGUgYml0cyBmcm9tIEFDUEkKKwkgKiBpbnRvIHRoZSBJT01NVSBjb250cm9sIHJlZ2lzdGVycworCSAqLworCWgtPmZsYWdzICYgSVZIRF9GTEFHX0hUX1RVTl9FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0hUX1RVTl9FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfSFRfVFVOX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX1BBU1NQV19FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX1BBU1NQV19FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfUEFTU1BXX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX1JFU1BBU1NQV19FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX1JFU1BBU1NQV19FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfUkVTUEFTU1BXX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX0lTT0NfRU4gPworCQlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9JU09DX0VOKSA6CisJCWlvbW11X2ZlYXR1cmVfZGlzYWJsZShpb21tdSwgQ09OVFJPTF9JU09DX0VOKTsKKworCS8qCisJICogbWFrZSBJT01NVSBtZW1vcnkgYWNjZXNzZXMgY2FjaGUgY29oZXJlbnQKKwkgKi8KKwlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9DT0hFUkVOVF9FTik7CisKKwkvKgorCSAqIERvbmUuIE5vdyBwYXJzZSB0aGUgZGV2aWNlIGVudHJpZXMKKwkgKi8KKwlwICs9IHNpemVvZihzdHJ1Y3QgaXZoZF9oZWFkZXIpOworCWVuZCArPSBoLT5sZW5ndGg7CisKKwl3aGlsZSAocCA8IGVuZCkgeworCQllID0gKHN0cnVjdCBpdmhkX2VudHJ5ICopcDsKKwkJc3dpdGNoIChlLT50eXBlKSB7CisJCWNhc2UgSVZIRF9ERVZfQUxMOgorCQkJZm9yIChkZXZfaSA9IGlvbW11LT5maXJzdF9kZXZpY2U7CisJCQkJCWRldl9pIDw9IGlvbW11LT5sYXN0X2RldmljZTsgKytkZXZfaSkKKwkJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaShkZXZfaSwgZS0+ZmxhZ3MsIDApOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfU0VMRUNUOgorCQkJZGV2aWQgPSBlLT5kZXZpZDsKKwkJCXNldF9kZXZfZW50cnlfZnJvbV9hY3BpKGRldmlkLCBlLT5mbGFncywgMCk7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9TRUxFQ1RfUkFOR0VfU1RBUlQ6CisJCQlkZXZpZF9zdGFydCA9IGUtPmRldmlkOworCQkJZmxhZ3MgPSBlLT5mbGFnczsKKwkJCWV4dF9mbGFncyA9IDA7CisJCQlhbGlhcyA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9BTElBUzoKKwkJCWRldmlkID0gZS0+ZGV2aWQ7CisJCQlkZXZpZF90byA9IGUtPmV4dCA+PiA4OworCQkJc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkoZGV2aWQsIGUtPmZsYWdzLCAwKTsKKwkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZpZF0gPSBkZXZpZF90bzsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX0FMSUFTX1JBTkdFOgorCQkJZGV2aWRfc3RhcnQgPSBlLT5kZXZpZDsKKwkJCWZsYWdzID0gZS0+ZmxhZ3M7CisJCQlkZXZpZF90byA9IGUtPmV4dCA+PiA4OworCQkJZXh0X2ZsYWdzID0gMDsKKwkJCWFsaWFzID0gMTsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX0VYVF9TRUxFQ1Q6CisJCQlkZXZpZCA9IGUtPmRldmlkOworCQkJc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkoZGV2aWQsIGUtPmZsYWdzLCBlLT5leHQpOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfRVhUX1NFTEVDVF9SQU5HRToKKwkJCWRldmlkX3N0YXJ0ID0gZS0+ZGV2aWQ7CisJCQlmbGFncyA9IGUtPmZsYWdzOworCQkJZXh0X2ZsYWdzID0gZS0+ZXh0OworCQkJYWxpYXMgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfUkFOR0VfRU5EOgorCQkJZGV2aWQgPSBlLT5kZXZpZDsKKwkJCWZvciAoZGV2X2kgPSBkZXZpZF9zdGFydDsgZGV2X2kgPD0gZGV2aWQ7ICsrZGV2X2kpIHsKKwkJCQlpZiAoYWxpYXMpCisJCQkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZfaV0gPSBkZXZpZF90bzsKKwkJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaSgKKwkJCQkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZfaV0sCisJCQkJCQlmbGFncywgZXh0X2ZsYWdzKTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKworCQlwICs9IDB4MDQgPDwgKGUtPnR5cGUgPj4gNik7CisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X2lvbW11X2RldmljZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJdTE2IGk7CisKKwlmb3IgKGkgPSBpb21tdS0+Zmlyc3RfZGV2aWNlOyBpIDw9IGlvbW11LT5sYXN0X2RldmljZTsgKytpKQorCQlzZXRfaW9tbXVfZm9yX2RldmljZShpb21tdSwgaSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGZyZWVfaW9tbXVfb25lKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCWZyZWVfY29tbWFuZF9idWZmZXIoaW9tbXUpOworCWlvbW11X3VubWFwX21taW9fc3BhY2UoaW9tbXUpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnJlZV9pb21tdV9hbGwodm9pZCkKK3sKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaW9tbXUsIG5leHQsICZhbWRfaW9tbXVfbGlzdCwgbGlzdCkgeworCQlsaXN0X2RlbCgmaW9tbXUtPmxpc3QpOworCQlmcmVlX2lvbW11X29uZShpb21tdSk7CisJCWtmcmVlKGlvbW11KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfaW9tbXVfb25lKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgaXZoZF9oZWFkZXIgKmgpCit7CisJc3Bpbl9sb2NrX2luaXQoJmlvbW11LT5sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZpb21tdS0+bGlzdCwgJmFtZF9pb21tdV9saXN0KTsKKworCS8qCisJICogQ29weSBkYXRhIGZyb20gQUNQSSB0YWJsZSBlbnRyeSB0byB0aGUgaW9tbXUgc3RydWN0CisJICovCisJaW9tbXUtPmRldmlkID0gaC0+ZGV2aWQ7CisJaW9tbXUtPmNhcF9wdHIgPSBoLT5jYXBfcHRyOworCWlvbW11LT5tbWlvX3BoeXMgPSBoLT5tbWlvX3BoeXM7CisJaW9tbXUtPm1taW9fYmFzZSA9IGlvbW11X21hcF9tbWlvX3NwYWNlKGgtPm1taW9fcGh5cyk7CisJaWYgKCFpb21tdS0+bW1pb19iYXNlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlvbW11X3NldF9kZXZpY2VfdGFibGUoaW9tbXUpOworCWlvbW11LT5jbWRfYnVmID0gYWxsb2NfY29tbWFuZF9idWZmZXIoaW9tbXUpOworCWlmICghaW9tbXUtPmNtZF9idWYpCisJCXJldHVybiAtRU5PTUVNOworCisJaW5pdF9pb21tdV9mcm9tX3BjaShpb21tdSk7CisJaW5pdF9pb21tdV9mcm9tX2FjcGkoaW9tbXUsIGgpOworCWluaXRfaW9tbXVfZGV2aWNlcyhpb21tdSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF9pb21tdV9hbGwoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZSkKK3sKKwl1OCAqcCA9ICh1OCAqKXRhYmxlLCAqZW5kID0gKHU4ICopdGFibGU7CisJc3RydWN0IGl2aGRfaGVhZGVyICpoOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCWludCByZXQ7CisKKwlJTklUX0xJU1RfSEVBRCgmYW1kX2lvbW11X2xpc3QpOworCisJZW5kICs9IHRhYmxlLT5sZW5ndGg7CisJcCArPSBJVlJTX0hFQURFUl9MRU5HVEg7CisKKwl3aGlsZSAocCA8IGVuZCkgeworCQloID0gKHN0cnVjdCBpdmhkX2hlYWRlciAqKXA7CisJCXN3aXRjaCAoKnApIHsKKwkJY2FzZSBBQ1BJX0lWSERfVFlQRToKKwkJCWlvbW11ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZF9pb21tdSksIEdGUF9LRVJORUwpOworCQkJaWYgKGlvbW11ID09IE5VTEwpCisJCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXQgPSBpbml0X2lvbW11X29uZShpb21tdSwgaCk7CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXAgKz0gaC0+bGVuZ3RoOworCisJfQorCVdBUk5fT04ocCAhPSBlbmQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmcmVlX3VuaXR5X21hcHModm9pZCkKK3sKKwlzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplbnRyeSwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIG5leHQsICZhbWRfaW9tbXVfdW5pdHlfbWFwLCBsaXN0KSB7CisJCWxpc3RfZGVsKCZlbnRyeS0+bGlzdCk7CisJCWtmcmVlKGVudHJ5KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfZXhjbHVzaW9uX3JhbmdlKHN0cnVjdCBpdm1kX2hlYWRlciAqbSkKK3sKKwlpbnQgaTsKKworCXN3aXRjaCAobS0+dHlwZSkgeworCWNhc2UgQUNQSV9JVk1EX1RZUEU6CisJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKG0tPmRldmlkLCBtKTsKKwkJYnJlYWs7CisJY2FzZSBBQ1BJX0lWTURfVFlQRV9BTEw6CisJCWZvciAoaSA9IDA7IGkgPCBhbWRfaW9tbXVfbGFzdF9iZGY7ICsraSkKKwkJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKGksIG0pOworCQlicmVhazsKKwljYXNlIEFDUElfSVZNRF9UWVBFX1JBTkdFOgorCQlmb3IgKGkgPSBtLT5kZXZpZDsgaSA8PSBtLT5hdXg7ICsraSkKKwkJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKGksIG0pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF91bml0eV9tYXBfcmFuZ2Uoc3RydWN0IGl2bWRfaGVhZGVyICptKQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmUgPSAwOworCisJZSA9IGt6YWxsb2Moc2l6ZW9mKCplKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzd2l0Y2ggKG0tPnR5cGUpIHsKKwlkZWZhdWx0OgorCWNhc2UgQUNQSV9JVk1EX1RZUEU6CisJCWUtPmRldmlkX3N0YXJ0ID0gZS0+ZGV2aWRfZW5kID0gbS0+ZGV2aWQ7CisJCWJyZWFrOworCWNhc2UgQUNQSV9JVk1EX1RZUEVfQUxMOgorCQllLT5kZXZpZF9zdGFydCA9IDA7CisJCWUtPmRldmlkX2VuZCA9IGFtZF9pb21tdV9sYXN0X2JkZjsKKwkJYnJlYWs7CisJY2FzZSBBQ1BJX0lWTURfVFlQRV9SQU5HRToKKwkJZS0+ZGV2aWRfc3RhcnQgPSBtLT5kZXZpZDsKKwkJZS0+ZGV2aWRfZW5kID0gbS0+YXV4OworCQlicmVhazsKKwl9CisJZS0+YWRkcmVzc19zdGFydCA9IFBBR0VfQUxJR04obS0+cmFuZ2Vfc3RhcnQpOworCWUtPmFkZHJlc3NfZW5kID0gZS0+YWRkcmVzc19zdGFydCArIFBBR0VfQUxJR04obS0+cmFuZ2VfbGVuZ3RoKTsKKwllLT5wcm90ID0gbS0+ZmxhZ3MgPj4gMTsKKworCWxpc3RfYWRkX3RhaWwoJmUtPmxpc3QsICZhbWRfaW9tbXVfdW5pdHlfbWFwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X21lbW9yeV9kZWZpbml0aW9ucyhzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCXU4ICpwID0gKHU4ICopdGFibGUsICplbmQgPSAodTggKil0YWJsZTsKKwlzdHJ1Y3QgaXZtZF9oZWFkZXIgKm07CisKKwlJTklUX0xJU1RfSEVBRCgmYW1kX2lvbW11X3VuaXR5X21hcCk7CisKKwllbmQgKz0gdGFibGUtPmxlbmd0aDsKKwlwICs9IElWUlNfSEVBREVSX0xFTkdUSDsKKworCXdoaWxlIChwIDwgZW5kKSB7CisJCW0gPSAoc3RydWN0IGl2bWRfaGVhZGVyICopcDsKKwkJaWYgKG0tPmZsYWdzICYgSVZNRF9GTEFHX0VYQ0xfUkFOR0UpCisJCQlpbml0X2V4Y2x1c2lvbl9yYW5nZShtKTsKKwkJZWxzZSBpZiAobS0+ZmxhZ3MgJiBJVk1EX0ZMQUdfVU5JVFlfTUFQKQorCQkJaW5pdF91bml0eV9tYXBfcmFuZ2UobSk7CisKKwkJcCArPSBtLT5sZW5ndGg7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfaW9tbXVzKHZvaWQpCit7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvbW11LCAmYW1kX2lvbW11X2xpc3QsIGxpc3QpIHsKKwkJaW9tbXVfc2V0X2V4Y2x1c2lvbl9yYW5nZShpb21tdSk7CisJCWlvbW11X2VuYWJsZShpb21tdSk7CisJfQorfQorCisvKgorICogU3VzcGVuZC9SZXN1bWUgc3VwcG9ydAorICogZGlzYWJsZSBzdXNwZW5kIHVudGlsIHJlYWwgcmVzdW1lIGltcGxlbWVudGVkCisgKi8KKworc3RhdGljIGludCBhbWRfaW9tbXVfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYW1kX2lvbW11X3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBhbWRfaW9tbXVfc3lzZGV2X2NsYXNzID0geworCS5uYW1lID0gImFtZF9pb21tdSIsCisJLnN1c3BlbmQgPSBhbWRfaW9tbXVfc3VzcGVuZCwKKwkucmVzdW1lID0gYW1kX2lvbW11X3Jlc3VtZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBkZXZpY2VfYW1kX2lvbW11ID0geworCS5pZCA9IDAsCisJLmNscyA9ICZhbWRfaW9tbXVfc3lzZGV2X2NsYXNzLAorfTsKKworaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQoreworCWludCBpLCByZXQgPSAwOworCisKKwlpZiAobm9faW9tbXUpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VIGRpc2FibGVkIGJ5IGtlcm5lbCBjb21tYW5kIGxpbmVcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIWFtZF9pb21tdV9kZXRlY3RlZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwkvKgorCSAqIEZpcnN0IHBhcnNlIEFDUEkgdGFibGVzIHRvIGZpbmQgdGhlIGxhcmdlc3QgQnVzL0Rldi9GdW5jCisJICogd2UgbmVlZCB0byBoYW5kbGUuIFVwb24gdGhpcyBpbmZvcm1hdGlvbiB0aGUgc2hhcmVkIGRhdGEKKwkgKiBzdHJ1Y3R1cmVzIGZvciB0aGUgSU9NTVVzIGluIHRoZSBzeXN0ZW0gd2lsbCBiZSBhbGxvY2F0ZWQKKwkgKi8KKwlpZiAoYWNwaV90YWJsZV9wYXJzZSgiSVZSUyIsIGZpbmRfbGFzdF9kZXZpZF9hY3BpKSAhPSAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRldl90YWJsZV9zaXplICAgICA9IFRCTF9TSVpFKERFVl9UQUJMRV9FTlRSWV9TSVpFKTsKKwlhbGlhc190YWJsZV9zaXplICAgPSBUQkxfU0laRShBTElBU19UQUJMRV9FTlRSWV9TSVpFKTsKKwlybG9va3VwX3RhYmxlX3NpemUgPSBUQkxfU0laRShSTE9PS1VQX1RBQkxFX0VOVFJZX1NJWkUpOworCisJcmV0ID0gLUVOT01FTTsKKworCS8qIERldmljZSB0YWJsZSAtIGRpcmVjdGx5IHVzZWQgYnkgYWxsIElPTU1VcyAqLworCWFtZF9pb21tdV9kZXZfdGFibGUgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkgICAgICBnZXRfb3JkZXIoZGV2X3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X2Rldl90YWJsZSA9PSBOVUxMKQorCQlnb3RvIG91dDsKKworCS8qCisJICogQWxpYXMgdGFibGUgLSBtYXAgUENJIEJ1cy9EZXYvRnVuYyB0byBCdXMvRGV2L0Z1bmMgdGhlCisJICogSU9NTVUgc2VlIGZvciB0aGF0IGRldmljZQorCSAqLworCWFtZF9pb21tdV9hbGlhc190YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJZ2V0X29yZGVyKGFsaWFzX3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X2FsaWFzX3RhYmxlID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCS8qIElPTU1VIHJsb29rdXAgdGFibGUgLSBmaW5kIHRoZSBJT01NVSBmb3IgYSBzcGVjaWZpYyBkZXZpY2UgKi8KKwlhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJZ2V0X29yZGVyKHJsb29rdXBfdGFibGVfc2l6ZSkpOworCWlmIChhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSA9PSBOVUxMKQorCQlnb3RvIGZyZWU7CisKKwkvKgorCSAqIFByb3RlY3Rpb24gRG9tYWluIHRhYmxlIC0gbWFwcyBkZXZpY2VzIHRvIHByb3RlY3Rpb24gZG9tYWlucworCSAqIFRoaXMgdGFibGUgaGFzIHRoZSBzYW1lIHNpemUgYXMgdGhlIHJsb29rdXBfdGFibGUKKwkgKi8KKwlhbWRfaW9tbXVfcGRfdGFibGUgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkgICAgIGdldF9vcmRlcihybG9va3VwX3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X3BkX3RhYmxlID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCWFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXAgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkJICAgIGdldF9vcmRlcihNQVhfRE9NQUlOX0lELzgpKTsKKwlpZiAoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCA9PSBOVUxMKQorCQlnb3RvIGZyZWU7CisKKwkvKgorCSAqIG1lbW9yeSBpcyBhbGxvY2F0ZWQgbm93OyBpbml0aWFsaXplIHRoZSBkZXZpY2UgdGFibGUgd2l0aCBhbGwgemVyb2VzCisJICogYW5kIGxldCBhbGwgYWxpYXMgZW50cmllcyBwb2ludCB0byBpdHNlbGYKKwkgKi8KKwltZW1zZXQoYW1kX2lvbW11X2Rldl90YWJsZSwgMCwgZGV2X3RhYmxlX3NpemUpOworCWZvciAoaSA9IDA7IGkgPCBhbWRfaW9tbXVfbGFzdF9iZGY7ICsraSkKKwkJYW1kX2lvbW11X2FsaWFzX3RhYmxlW2ldID0gaTsKKworCW1lbXNldChhbWRfaW9tbXVfcGRfdGFibGUsIDAsIHJsb29rdXBfdGFibGVfc2l6ZSk7CisJbWVtc2V0KGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXAsIDAsIE1BWF9ET01BSU5fSUQgLyA4KTsKKworCS8qCisJICogbmV2ZXIgYWxsb2NhdGUgZG9tYWluIDAgYmVjYXVzZSBpdHMgdXNlZCBhcyB0aGUgbm9uLWFsbG9jYXRlZCBhbmQKKwkgKiBlcnJvciB2YWx1ZSBwbGFjZWhvbGRlcgorCSAqLworCWFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXBbMF0gPSAxOworCisJLyoKKwkgKiBub3cgdGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgYWxsb2NhdGVkIGFuZCBiYXNpY2FsbHkgaW5pdGlhbGl6ZWQKKwkgKiBzdGFydCB0aGUgcmVhbCBhY3BpIHRhYmxlIHNjYW4KKwkgKi8KKwlyZXQgPSAtRU5PREVWOworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgaW5pdF9pb21tdV9hbGwpICE9IDApCisJCWdvdG8gZnJlZTsKKworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgaW5pdF9tZW1vcnlfZGVmaW5pdGlvbnMpICE9IDApCisJCWdvdG8gZnJlZTsKKworCXJldCA9IGFtZF9pb21tdV9pbml0X2RtYV9vcHMoKTsKKwlpZiAocmV0KQorCQlnb3RvIGZyZWU7CisKKwlyZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmFtZF9pb21tdV9zeXNkZXZfY2xhc3MpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZTsKKworCXJldCA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2FtZF9pb21tdSk7CisJaWYgKHJldCkKKwkJZ290byBmcmVlOworCisJZW5hYmxlX2lvbW11cygpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VOiBhcGVydHVyZSBzaXplIGlzICVkIE1CXG4iLAorCQkJKDEgPDwgKGFtZF9pb21tdV9hcGVydHVyZV9vcmRlci0yMCkpKTsKKworCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogZGV2aWNlIGlzb2xhdGlvbiAiKTsKKwlpZiAoYW1kX2lvbW11X2lzb2xhdGUpCisJCXByaW50aygiZW5hYmxlZFxuIik7CisJZWxzZQorCQlwcmludGsoImRpc2FibGVkXG4iKTsKKworb3V0OgorCXJldHVybiByZXQ7CisKK2ZyZWU6CisJaWYgKGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXApCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCwgMSk7CisKKwlpZiAoYW1kX2lvbW11X3BkX3RhYmxlKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWFtZF9pb21tdV9wZF90YWJsZSwKKwkJCQlnZXRfb3JkZXIocmxvb2t1cF90YWJsZV9zaXplKSk7CisKKwlpZiAoYW1kX2lvbW11X3Jsb29rdXBfdGFibGUpCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X3Jsb29rdXBfdGFibGUsCisJCQkJZ2V0X29yZGVyKHJsb29rdXBfdGFibGVfc2l6ZSkpOworCisJaWYgKGFtZF9pb21tdV9hbGlhc190YWJsZSkKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZylhbWRfaW9tbXVfYWxpYXNfdGFibGUsCisJCQkJZ2V0X29yZGVyKGFsaWFzX3RhYmxlX3NpemUpKTsKKworCWlmIChhbWRfaW9tbXVfZGV2X3RhYmxlKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWFtZF9pb21tdV9kZXZfdGFibGUsCisJCQkJZ2V0X29yZGVyKGRldl90YWJsZV9zaXplKSk7CisKKwlmcmVlX2lvbW11X2FsbCgpOworCisJZnJlZV91bml0eV9tYXBzKCk7CisKKwlnb3RvIG91dDsKK30KKworc3RhdGljIGludCBfX2luaXQgZWFybHlfYW1kX2lvbW11X2RldGVjdChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0KHZvaWQpCit7CisJaWYgKHN3aW90bGIgfHwgbm9faW9tbXUgfHwgaW9tbXVfZGV0ZWN0ZWQpCisJCXJldHVybjsKKworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgZWFybHlfYW1kX2lvbW11X2RldGVjdCkgPT0gMCkgeworCQlpb21tdV9kZXRlY3RlZCA9IDE7CisJCWFtZF9pb21tdV9kZXRlY3RlZCA9IDE7CisjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKKwkJZ2FydF9pb21tdV9hcGVydHVyZV9kaXNhYmxlZCA9IDE7CisJCWdhcnRfaW9tbXVfYXBlcnR1cmUgPSAwOworI2VuZGlmCisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9hbWRfaW9tbXVfb3B0aW9ucyhjaGFyICpzdHIpCit7CisJZm9yICg7ICpzdHI7ICsrc3RyKSB7CisJCWlmIChzdHJjbXAoc3RyLCAiaXNvbGF0ZSIpID09IDApCisJCQlhbWRfaW9tbXVfaXNvbGF0ZSA9IDE7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX2FtZF9pb21tdV9zaXplX29wdGlvbnMoY2hhciAqc3RyKQoreworCWZvciAoOyAqc3RyOyArK3N0cikgeworCQlpZiAoc3RyY21wKHN0ciwgIjMyTSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNTsKKwkJaWYgKHN0cmNtcChzdHIsICI2NE0iKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjY7CisJCWlmIChzdHJjbXAoc3RyLCAiMTI4TSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNzsKKwkJaWYgKHN0cmNtcChzdHIsICIyNTZNIikgPT0gMCkKKwkJCWFtZF9pb21tdV9hcGVydHVyZV9vcmRlciA9IDI4OworCQlpZiAoc3RyY21wKHN0ciwgIjUxMk0iKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjk7CisJCWlmIChzdHJjbXAoc3RyLCAiMUciKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMzA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK19fc2V0dXAoImFtZF9pb21tdT0iLCBwYXJzZV9hbWRfaW9tbXVfb3B0aW9ucyk7CitfX3NldHVwKCJhbWRfaW9tbXVfc2l6ZT0iLCBwYXJzZV9hbWRfaW9tbXVfc2l6ZV9vcHRpb25zKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGVydHVyZV82NC5jIGIvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKaW5kZXggNDc5OTI2ZC4uOWY5MDc4MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKQEAgLTM1LDYgKzM1LDE4IEBACiAKIGludCBmaXhfYXBlcnR1cmUgX19pbml0ZGF0YSA9IDE7CiAKK3N0cnVjdCBidXNfZGV2X3JhbmdlIHsKKwlpbnQgYnVzOworCWludCBkZXZfYmFzZTsKKwlpbnQgZGV2X2xpbWl0OworfTsKKworc3RhdGljIHN0cnVjdCBidXNfZGV2X3JhbmdlIGJ1c19kZXZfcmFuZ2VzW10gX19pbml0ZGF0YSA9IHsKKwl7IDB4MDAsIDB4MTgsIDB4MjB9LAorCXsgMHhmZiwgMHgwMCwgMHgyMH0sCisJeyAweGZlLCAweDAwLCAweDIwfQorfTsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBnYXJ0X3Jlc291cmNlID0gewogCS5uYW1lCT0gIkdBUlQiLAogCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLApAQCAtNTUsOCArNjcsOSBAQAogCXUzMiBhcGVyX3NpemU7CiAJdm9pZCAqcDsKIAotCWlmIChmYWxsYmFja19hcGVyX29yZGVyID4gNykKLQkJZmFsbGJhY2tfYXBlcl9vcmRlciA9IDc7CisJLyogYXBlcl9zaXplIHNob3VsZCA8PSAxRyAqLworCWlmIChmYWxsYmFja19hcGVyX29yZGVyID4gNSkKKwkJZmFsbGJhY2tfYXBlcl9vcmRlciA9IDU7CiAJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGZhbGxiYWNrX2FwZXJfb3JkZXI7CiAKIAkvKgpAQCAtNjUsNyArNzgsMjAgQEAKIAkgKiBtZW1vcnkuIFVuZm9ydHVuYXRlbHkgd2UgY2Fubm90IG1vdmUgaXQgdXAgYmVjYXVzZSB0aGF0IHdvdWxkCiAJICogbWFrZSB0aGUgSU9NTVUgdXNlbGVzcy4KIAkgKi8KLQlwID0gX19hbGxvY19ib290bWVtX25vcGFuaWMoYXBlcl9zaXplLCBhcGVyX3NpemUsIDApOworCS8qCisJICogdXNpbmcgNTEyTSBhcyBnb2FsLCBpbiBjYXNlIGtleGVjIHdpbGwgbG9hZCBrZXJuZWxfYmlnCisJICogdGhhdCB3aWxsIGRvIHRoZSBvbiBwb3NpdGlvbiBkZWNvbXByZXNzLCBhbmQgIGNvdWxkIG92ZXJsYXAgd2l0aAorCSAqIHRoYXQgcG9zaXRvbiB3aXRoIGdhcnQgdGhhdCBpcyB1c2VkLgorCSAqIHNlcXVlbmRlOgorCSAqIGtlcm5lbF9zbWFsbAorCSAqID09PiBrZXhlYyAod2l0aCBrZHVtcCB0cmlnZ2VyIHBhdGggb3IgcHJldmlvdXMgZG9lc24ndCBzaHV0ZG93biBnYXJ0KQorCSAqID09PiBrZXJuZWxfc21hbGwoZ2FydCBhcmVhIGJlY29tZSBlODIwX3Jlc2VydmVkKQorCSAqID09PiBrZXhlYyAod2l0aCBrZHVtcCB0cmlnZ2VyIHBhdGggb3IgcHJldmlvdXMgZG9lc24ndCBzaHV0ZG93biBnYXJ0KQorCSAqID09PiBrZXJuZV9iaWcgKHVuY29tcHJlc3NlZCBzaXplIHdpbGwgYmUgYmlnIHRoYW4gNjRNIG9yIDEyOE0pCisJICogc28gZG9uJ3QgdXNlIDUxMk0gYmVsb3cgYXMgZ2FydCBpb21tdSwgbGVhdmUgdGhlIHNwYWNlIGZvciBrZXJuZWwKKwkgKiBjb2RlIGZvciBzYWZlCisJICovCisJcCA9IF9fYWxsb2NfYm9vdG1lbV9ub3BhbmljKGFwZXJfc2l6ZSwgYXBlcl9zaXplLCA1MTJVTEw8PDIwKTsKIAlpZiAoIXAgfHwgX19wYShwKSthcGVyX3NpemUgPiAweGZmZmZmZmZmKSB7CiAJCXByaW50ayhLRVJOX0VSUgogCQkJIkNhbm5vdCBhbGxvY2F0ZSBhcGVydHVyZSBtZW1vcnkgaG9sZSAoJXAsJXVLKVxuIiwKQEAgLTgzLDY5ICsxMDksNTMgQEAKIAlyZXR1cm4gKHUzMilfX3BhKHApOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBhcGVydHVyZV92YWxpZCh1NjQgYXBlcl9iYXNlLCB1MzIgYXBlcl9zaXplKQotewotCWlmICghYXBlcl9iYXNlKQotCQlyZXR1cm4gMDsKLQotCWlmIChhcGVyX2Jhc2UgKyBhcGVyX3NpemUgPiAweDEwMDAwMDAwMFVMKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgYmV5b25kIDRHQi4gSWdub3JpbmcuXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChlODIwX2FueV9tYXBwZWQoYXBlcl9iYXNlLCBhcGVyX2Jhc2UgKyBhcGVyX3NpemUsIEU4MjBfUkFNKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHBvaW50aW5nIHRvIGU4MjAgUkFNLiBJZ25vcmluZy5cbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKGFwZXJfc2l6ZSA8IDY0KjEwMjQqMTAyNCkgewotCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHRvbyBzbWFsbCAoJWQgTUIpXG4iLCBhcGVyX3NpemU+PjIwKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmV0dXJuIDE7Ci19CiAKIC8qIEZpbmQgYSBQQ0kgY2FwYWJpbGl0eSAqLwotc3RhdGljIF9fdTMyIF9faW5pdCBmaW5kX2NhcChpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsIGludCBjYXApCitzdGF0aWMgdTMyIF9faW5pdCBmaW5kX2NhcChpbnQgYnVzLCBpbnQgc2xvdCwgaW50IGZ1bmMsIGludCBjYXApCiB7CiAJaW50IGJ5dGVzOwogCXU4IHBvczsKIAotCWlmICghKHJlYWRfcGNpX2NvbmZpZ18xNihudW0sIHNsb3QsIGZ1bmMsIFBDSV9TVEFUVVMpICYKKwlpZiAoIShyZWFkX3BjaV9jb25maWdfMTYoYnVzLCBzbG90LCBmdW5jLCBQQ0lfU1RBVFVTKSAmCiAJCQkJCQlQQ0lfU1RBVFVTX0NBUF9MSVNUKSkKIAkJcmV0dXJuIDA7CiAKLQlwb3MgPSByZWFkX3BjaV9jb25maWdfYnl0ZShudW0sIHNsb3QsIGZ1bmMsIFBDSV9DQVBBQklMSVRZX0xJU1QpOworCXBvcyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKGJ1cywgc2xvdCwgZnVuYywgUENJX0NBUEFCSUxJVFlfTElTVCk7CiAJZm9yIChieXRlcyA9IDA7IGJ5dGVzIDwgNDggJiYgcG9zID49IDB4NDA7IGJ5dGVzKyspIHsKIAkJdTggaWQ7CiAKIAkJcG9zICY9IH4zOwotCQlpZCA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKG51bSwgc2xvdCwgZnVuYywgcG9zK1BDSV9DQVBfTElTVF9JRCk7CisJCWlkID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoYnVzLCBzbG90LCBmdW5jLCBwb3MrUENJX0NBUF9MSVNUX0lEKTsKIAkJaWYgKGlkID09IDB4ZmYpCiAJCQlicmVhazsKIAkJaWYgKGlkID09IGNhcCkKIAkJCXJldHVybiBwb3M7Ci0JCXBvcyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKG51bSwgc2xvdCwgZnVuYywKKwkJcG9zID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoYnVzLCBzbG90LCBmdW5jLAogCQkJCQkJcG9zK1BDSV9DQVBfTElTVF9ORVhUKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIC8qIFJlYWQgYSBzdGFuZGFyZCBBR1B2MyBicmlkZ2UgaGVhZGVyICovCi1zdGF0aWMgX191MzIgX19pbml0IHJlYWRfYWdwKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCwgdTMyICpvcmRlcikKK3N0YXRpYyB1MzIgX19pbml0IHJlYWRfYWdwKGludCBidXMsIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCwgdTMyICpvcmRlcikKIHsKIAl1MzIgYXBzaXplOwogCXUzMiBhcHNpemVyZWc7CiAJaW50IG5iaXRzOwogCXUzMiBhcGVyX2xvdywgYXBlcl9oaTsKIAl1NjQgYXBlcjsKKwl1MzIgb2xkX29yZGVyOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiQUdQIGJyaWRnZSBhdCAlMDJ4OiUwMng6JTAyeFxuIiwgbnVtLCBzbG90LCBmdW5jKTsKLQlhcHNpemVyZWcgPSByZWFkX3BjaV9jb25maWdfMTYobnVtLCBzbG90LCBmdW5jLCBjYXAgKyAweDE0KTsKKwlwcmludGsoS0VSTl9JTkZPICJBR1AgYnJpZGdlIGF0ICUwMng6JTAyeDolMDJ4XG4iLCBidXMsIHNsb3QsIGZ1bmMpOworCWFwc2l6ZXJlZyA9IHJlYWRfcGNpX2NvbmZpZ18xNihidXMsIHNsb3QsIGZ1bmMsIGNhcCArIDB4MTQpOwogCWlmIChhcHNpemVyZWcgPT0gMHhmZmZmZmZmZikgewogCQlwcmludGsoS0VSTl9FUlIgIkFQU0laRSBpbiBBR1AgYnJpZGdlIHVucmVhZGFibGVcbiIpOwogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKiBvbGRfb3JkZXIgY291bGQgYmUgdGhlIHZhbHVlIGZyb20gTkIgZ2FydCBzZXR0aW5nICovCisJb2xkX29yZGVyID0gKm9yZGVyOworCiAJYXBzaXplID0gYXBzaXplcmVnICYgMHhmZmY7CiAJLyogU29tZSBCSU9TIHVzZSB3ZWlyZCBlbmNvZGluZ3Mgbm90IGluIHRoZSBBR1B2MyB0YWJsZS4gKi8KIAlpZiAoYXBzaXplICYgMHhmZikKQEAgLTE1NSwxNCArMTY1LDI2IEBACiAJaWYgKChpbnQpKm9yZGVyIDwgMCkgLyogPCAzMk1CICovCiAJCSpvcmRlciA9IDA7CiAKLQlhcGVyX2xvdyA9IHJlYWRfcGNpX2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsIDB4MTApOwotCWFwZXJfaGkgPSByZWFkX3BjaV9jb25maWcobnVtLCBzbG90LCBmdW5jLCAweDE0KTsKKwlhcGVyX2xvdyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIGZ1bmMsIDB4MTApOworCWFwZXJfaGkgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCBmdW5jLCAweDE0KTsKIAlhcGVyID0gKGFwZXJfbG93ICYgfigoMTw8MjIpLTEpKSB8ICgodTY0KWFwZXJfaGkgPDwgMzIpOwogCisJLyoKKwkgKiBPbiBzb21lIHNpY2sgY2hpcHMsIEFQU0laRSBpcyAwLiBJdCBtZWFucyBpdCB3YW50cyA0RworCSAqIHNvIGxldCBkb3VibGUgY2hlY2sgdGhhdCBvcmRlciwgYW5kIGxldHMgdHJ1c3QgQU1EIE5CIHNldHRpbmdzOgorCSAqLworCXByaW50ayhLRVJOX0lORk8gIkFwZXJ0dXJlIGZyb20gQUdQIEAgJUx4IG9sZCBzaXplICV1IE1CXG4iLAorCQkJYXBlciwgMzIgPDwgb2xkX29yZGVyKTsKKwlpZiAoYXBlciArICgzMlVMTDw8KDIwICsgKm9yZGVyKSkgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBzaXplICV1IE1CIChBUFNJWkUgJXgpIGlzIG5vdCByaWdodCwgdXNpbmcgc2V0dGluZ3MgZnJvbSBOQlxuIiwKKwkJCQkzMiA8PCAqb3JkZXIsIGFwc2l6ZXJlZyk7CisJCSpvcmRlciA9IG9sZF9vcmRlcjsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBmcm9tIEFHUCBAICVMeCBzaXplICV1IE1CIChBUFNJWkUgJXgpXG4iLAogCQkJYXBlciwgMzIgPDwgKm9yZGVyLCBhcHNpemVyZWcpOwogCi0JaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCAoMzIqMTAyNCoxMDI0KSA8PCAqb3JkZXIpKQorCWlmICghYXBlcnR1cmVfdmFsaWQoYXBlciwgKDMyKjEwMjQqMTAyNCkgPDwgKm9yZGVyLCAzMjw8MjApKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gKHUzMilhcGVyOwogfQpAQCAtMTgwLDE3ICsyMDIsMTcgQEAKICAqIHRoZSBBR1AgYnJpZGdlcyBzaG91bGQgYmUgYWx3YXlzIGFuIG93biBidXMgb24gdGhlIEhUIGhpZXJhcmNoeSwKICAqIGJ1dCBkbyBpdCBoZXJlIGZvciBmdXR1cmUgc2FmZXR5LgogICovCi1zdGF0aWMgX191MzIgX19pbml0IHNlYXJjaF9hZ3BfYnJpZGdlKHUzMiAqb3JkZXIsIGludCAqdmFsaWRfYWdwKQorc3RhdGljIHUzMiBfX2luaXQgc2VhcmNoX2FncF9icmlkZ2UodTMyICpvcmRlciwgaW50ICp2YWxpZF9hZ3ApCiB7Ci0JaW50IG51bSwgc2xvdCwgZnVuYzsKKwlpbnQgYnVzLCBzbG90LCBmdW5jOwogCiAJLyogUG9vciBtYW4ncyBQQ0kgZGlzY292ZXJ5ICovCi0JZm9yIChudW0gPSAwOyBudW0gPCAyNTY7IG51bSsrKSB7CisJZm9yIChidXMgPSAwOyBidXMgPCAyNTY7IGJ1cysrKSB7CiAJCWZvciAoc2xvdCA9IDA7IHNsb3QgPCAzMjsgc2xvdCsrKSB7CiAJCQlmb3IgKGZ1bmMgPSAwOyBmdW5jIDwgODsgZnVuYysrKSB7CiAJCQkJdTMyIGNsYXNzLCBjYXA7CiAJCQkJdTggdHlwZTsKLQkJCQljbGFzcyA9IHJlYWRfcGNpX2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsCisJCQkJY2xhc3MgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCBmdW5jLAogCQkJCQkJCVBDSV9DTEFTU19SRVZJU0lPTik7CiAJCQkJaWYgKGNsYXNzID09IDB4ZmZmZmZmZmYpCiAJCQkJCWJyZWFrOwpAQCAtMTk5LDE3ICsyMjEsMTcgQEAKIAkJCQljYXNlIFBDSV9DTEFTU19CUklER0VfSE9TVDoKIAkJCQljYXNlIFBDSV9DTEFTU19CUklER0VfT1RIRVI6IC8qIG5lZWRlZD8gKi8KIAkJCQkJLyogQUdQIGJyaWRnZT8gKi8KLQkJCQkJY2FwID0gZmluZF9jYXAobnVtLCBzbG90LCBmdW5jLAorCQkJCQljYXAgPSBmaW5kX2NhcChidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQkJUENJX0NBUF9JRF9BR1ApOwogCQkJCQlpZiAoIWNhcCkKIAkJCQkJCWJyZWFrOwogCQkJCQkqdmFsaWRfYWdwID0gMTsKLQkJCQkJcmV0dXJuIHJlYWRfYWdwKG51bSwgc2xvdCwgZnVuYywgY2FwLAorCQkJCQlyZXR1cm4gcmVhZF9hZ3AoYnVzLCBzbG90LCBmdW5jLCBjYXAsCiAJCQkJCQkJb3JkZXIpOwogCQkJCX0KIAogCQkJCS8qIE5vIG11bHRpLWZ1bmN0aW9uIGRldmljZT8gKi8KLQkJCQl0eXBlID0gcmVhZF9wY2lfY29uZmlnX2J5dGUobnVtLCBzbG90LCBmdW5jLAorCQkJCXR5cGUgPSByZWFkX3BjaV9jb25maWdfYnl0ZShidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQkJICAgICAgIFBDSV9IRUFERVJfVFlQRSk7CiAJCQkJaWYgKCEodHlwZSAmIDB4ODApKQogCQkJCQlicmVhazsKQEAgLTI0OSwzNiArMjcxLDUwIEBACiAJICogb3IgQklPUyBmb3JnZXQgdG8gcHV0IHRoYXQgaW4gcmVzZXJ2ZWQuCiAJICogdHJ5IHRvIHVwZGF0ZSBlODIwIHRvIG1ha2UgdGhhdCByZWdpb24gYXMgcmVzZXJ2ZWQuCiAJICovCi0JaW50IGZpeCwgbnVtOworCWludCBpLCBmaXgsIHNsb3Q7CiAJdTMyIGN0bDsKIAl1MzIgYXBlcl9zaXplID0gMCwgYXBlcl9vcmRlciA9IDAsIGxhc3RfYXBlcl9vcmRlciA9IDA7CiAJdTY0IGFwZXJfYmFzZSA9IDAsIGxhc3RfYXBlcl9iYXNlID0gMDsKLQlpbnQgYXBlcl9lbmFibGVkID0gMCwgbGFzdF9hcGVyX2VuYWJsZWQgPSAwOworCWludCBhcGVyX2VuYWJsZWQgPSAwLCBsYXN0X2FwZXJfZW5hYmxlZCA9IDAsIGxhc3RfdmFsaWQgPSAwOwogCiAJaWYgKCFlYXJseV9wY2lfYWxsb3dlZCgpKQogCQlyZXR1cm47CiAKKwkvKiBUaGlzIGlzIG1vc3RseSBkdXBsaWNhdGUgb2YgaW9tbXVfaG9sZV9pbml0ICovCiAJZml4ID0gMDsKLQlmb3IgKG51bSA9IDI0OyBudW0gPCAzMjsgbnVtKyspIHsKLQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDAwKSkpCi0JCQljb250aW51ZTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShidXNfZGV2X3Jhbmdlcyk7IGkrKykgeworCQlpbnQgYnVzOworCQlpbnQgZGV2X2Jhc2UsIGRldl9saW1pdDsKIAotCQljdGwgPSByZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDkwKTsKLQkJYXBlcl9lbmFibGVkID0gY3RsICYgMTsKLQkJYXBlcl9vcmRlciA9IChjdGwgPj4gMSkgJiA3OwotCQlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgYXBlcl9vcmRlcjsKLQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5NCkgJiAweDdmZmY7Ci0JCWFwZXJfYmFzZSA8PD0gMjU7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OwogCi0JCWlmICgobGFzdF9hcGVyX29yZGVyICYmIGFwZXJfb3JkZXIgIT0gbGFzdF9hcGVyX29yZGVyKSB8fAotCQkgICAgKGxhc3RfYXBlcl9iYXNlICYmIGFwZXJfYmFzZSAhPSBsYXN0X2FwZXJfYmFzZSkgfHwKLQkJICAgIChsYXN0X2FwZXJfZW5hYmxlZCAmJiBhcGVyX2VuYWJsZWQgIT0gbGFzdF9hcGVyX2VuYWJsZWQpKSB7Ci0JCQlmaXggPSAxOwotCQkJYnJlYWs7CisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOworCisJCQljdGwgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpOworCQkJYXBlcl9lbmFibGVkID0gY3RsICYgQU1ENjRfR0FSVEVOOworCQkJYXBlcl9vcmRlciA9IChjdGwgPj4gMSkgJiA3OworCQkJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGFwZXJfb3JkZXI7CisJCQlhcGVyX2Jhc2UgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFKSAmIDB4N2ZmZjsKKwkJCWFwZXJfYmFzZSA8PD0gMjU7CisKKwkJCWlmIChsYXN0X3ZhbGlkKSB7CisJCQkJaWYgKChhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKKwkJCQkgICAgKGFwZXJfYmFzZSAhPSBsYXN0X2FwZXJfYmFzZSkgfHwKKwkJCQkgICAgKGFwZXJfZW5hYmxlZCAhPSBsYXN0X2FwZXJfZW5hYmxlZCkpIHsKKwkJCQkJZml4ID0gMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCisJCQlsYXN0X2FwZXJfb3JkZXIgPSBhcGVyX29yZGVyOworCQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CisJCQlsYXN0X2FwZXJfZW5hYmxlZCA9IGFwZXJfZW5hYmxlZDsKKwkJCWxhc3RfdmFsaWQgPSAxOwogCQl9Ci0JCWxhc3RfYXBlcl9vcmRlciA9IGFwZXJfb3JkZXI7Ci0JCWxhc3RfYXBlcl9iYXNlID0gYXBlcl9iYXNlOwotCQlsYXN0X2FwZXJfZW5hYmxlZCA9IGFwZXJfZW5hYmxlZDsKIAl9CiAKIAlpZiAoIWZpeCAmJiAhYXBlcl9lbmFibGVkKQpAQCAtMjkwLDMyICszMjYsNDYgQEAKIAlpZiAoZ2FydF9maXhfZTgyMCAmJiAhZml4ICYmIGFwZXJfZW5hYmxlZCkgewogCQlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXJfYmFzZSwgYXBlcl9iYXNlICsgYXBlcl9zaXplLAogCQkJCSAgICBFODIwX1JBTSkpIHsKLQkJCS8qIHJlc2VydmVkIGl0LCBzbyB3ZSBjYW4gcmVzdXNlIGl0IGluIHNlY29uZCBrZXJuZWwgKi8KKwkJCS8qIHJlc2VydmUgaXQsIHNvIHdlIGNhbiByZXVzZSBpdCBpbiBzZWNvbmQga2VybmVsICovCiAJCQlwcmludGsoS0VSTl9JTkZPICJ1cGRhdGUgZTgyMCBmb3IgR0FSVFxuIik7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihhcGVyX2Jhc2UsIGFwZXJfc2l6ZSwgRTgyMF9SRVNFUlZFRCk7CisJCQllODIwX2FkZF9yZWdpb24oYXBlcl9iYXNlLCBhcGVyX3NpemUsIEU4MjBfUkVTRVJWRUQpOwogCQkJdXBkYXRlX2U4MjAoKTsKIAkJfQotCQlyZXR1cm47CiAJfQogCi0JLyogZGlmZmVyZW50IG5vZGVzIGhhdmUgZGlmZmVyZW50IHNldHRpbmcsIGRpc2FibGUgdGhlbSBhbGwgYXQgZmlyc3QqLwotCWZvciAobnVtID0gMjQ7IG51bSA8IDMyOyBudW0rKykgewotCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4MDApKSkKLQkJCWNvbnRpbnVlOworCWlmICghZml4KQorCQlyZXR1cm47CiAKLQkJY3RsID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCk7Ci0JCWN0bCAmPSB+MTsKLQkJd3JpdGVfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4OTAsIGN0bCk7CisJLyogZGlmZmVyZW50IG5vZGVzIGhhdmUgZGlmZmVyZW50IHNldHRpbmcsIGRpc2FibGUgdGhlbSBhbGwgYXQgZmlyc3QqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c19kZXZfcmFuZ2VzKTsgaSsrKSB7CisJCWludCBidXM7CisJCWludCBkZXZfYmFzZSwgZGV2X2xpbWl0OworCisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OworCisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOworCisJCQljdGwgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpOworCQkJY3RsICY9IH5BTUQ2NF9HQVJURU47CisJCQl3cml0ZV9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCBjdGwpOworCQl9CiAJfQogCiB9CiAKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBwcmludGVkX2dhcnRfc2l6ZV9tc2c7CisKIHZvaWQgX19pbml0IGdhcnRfaW9tbXVfaG9sZV9pbml0KHZvaWQpCiB7CisJdTMyIGFncF9hcGVyX2Jhc2UgPSAwLCBhZ3BfYXBlcl9vcmRlciA9IDA7CiAJdTMyIGFwZXJfc2l6ZSwgYXBlcl9hbGxvYyA9IDAsIGFwZXJfb3JkZXIgPSAwLCBsYXN0X2FwZXJfb3JkZXIgPSAwOwogCXU2NCBhcGVyX2Jhc2UsIGxhc3RfYXBlcl9iYXNlID0gMDsKLQlpbnQgZml4LCBudW0sIHZhbGlkX2FncCA9IDA7Ci0JaW50IG5vZGU7CisJaW50IGZpeCwgc2xvdCwgdmFsaWRfYWdwID0gMDsKKwlpbnQgaSwgbm9kZTsKIAogCWlmIChnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkIHx8ICFmaXhfYXBlcnR1cmUgfHwKIAkgICAgIWVhcmx5X3BjaV9hbGxvd2VkKCkpCkBAIC0zMjMsMzggKzM3Myw2NSBAQAogCiAJcHJpbnRrKEtFUk5fSU5GTyAgIkNoZWNraW5nIGFwZXJ0dXJlLi4uXG4iKTsKIAorCWlmICghZmFsbGJhY2tfYXBlcl9mb3JjZSkKKwkJYWdwX2FwZXJfYmFzZSA9IHNlYXJjaF9hZ3BfYnJpZGdlKCZhZ3BfYXBlcl9vcmRlciwgJnZhbGlkX2FncCk7CisKIAlmaXggPSAwOwogCW5vZGUgPSAwOwotCWZvciAobnVtID0gMjQ7IG51bSA8IDMyOyBudW0rKykgewotCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4MDApKSkKLQkJCWNvbnRpbnVlOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c19kZXZfcmFuZ2VzKTsgaSsrKSB7CisJCWludCBidXM7CisJCWludCBkZXZfYmFzZSwgZGV2X2xpbWl0OwogCi0JCWlvbW11X2RldGVjdGVkID0gMTsKLQkJZ2FydF9pb21tdV9hcGVydHVyZSA9IDE7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OwogCi0JCWFwZXJfb3JkZXIgPSAocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCkgPj4gMSkgJiA3OwotCQlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgYXBlcl9vcmRlcjsKLQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5NCkgJiAweDdmZmY7Ci0JCWFwZXJfYmFzZSA8PD0gMjU7CisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOwogCi0JCXByaW50ayhLRVJOX0lORk8gIk5vZGUgJWQ6IGFwZXJ0dXJlIEAgJUx4IHNpemUgJXUgTUJcbiIsCi0JCQkJbm9kZSwgYXBlcl9iYXNlLCBhcGVyX3NpemUgPj4gMjApOwotCQlub2RlKys7CisJCQlpb21tdV9kZXRlY3RlZCA9IDE7CisJCQlnYXJ0X2lvbW11X2FwZXJ0dXJlID0gMTsKIAotCQlpZiAoIWFwZXJ0dXJlX3ZhbGlkKGFwZXJfYmFzZSwgYXBlcl9zaXplKSkgewotCQkJZml4ID0gMTsKLQkJCWJyZWFrOworCQkJYXBlcl9vcmRlciA9IChyZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpID4+IDEpICYgNzsKKwkJCWFwZXJfc2l6ZSA9ICgzMiAqIDEwMjQgKiAxMDI0KSA8PCBhcGVyX29yZGVyOworCQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSkgJiAweDdmZmY7CisJCQlhcGVyX2Jhc2UgPDw9IDI1OworCisJCQlwcmludGsoS0VSTl9JTkZPICJOb2RlICVkOiBhcGVydHVyZSBAICVMeCBzaXplICV1IE1CXG4iLAorCQkJCQlub2RlLCBhcGVyX2Jhc2UsIGFwZXJfc2l6ZSA+PiAyMCk7CisJCQlub2RlKys7CisKKwkJCWlmICghYXBlcnR1cmVfdmFsaWQoYXBlcl9iYXNlLCBhcGVyX3NpemUsIDY0PDwyMCkpIHsKKwkJCQlpZiAodmFsaWRfYWdwICYmIGFncF9hcGVyX2Jhc2UgJiYKKwkJCQkgICAgYWdwX2FwZXJfYmFzZSA9PSBhcGVyX2Jhc2UgJiYKKwkJCQkgICAgYWdwX2FwZXJfb3JkZXIgPT0gYXBlcl9vcmRlcikgeworCQkJCQkvKiB0aGUgc2FtZSBiZXR3ZWVuIHR3byBzZXR0aW5nIGZyb20gTkIgYW5kIGFncCAqLworCQkJCQlpZiAoIW5vX2lvbW11ICYmCisJCQkJCSAgICBtYXhfcGZuID4gTUFYX0RNQTMyX1BGTiAmJgorCQkJCQkgICAgIXByaW50ZWRfZ2FydF9zaXplX21zZykgeworCQkJCQkJcHJpbnRrKEtFUk5fRVJSICJ5b3UgYXJlIHVzaW5nIGlvbW11IHdpdGggYWdwLCBidXQgR0FSVCBzaXplIGlzIGxlc3MgdGhhbiA2NE1cbiIpOworCQkJCQkJcHJpbnRrKEtFUk5fRVJSICJwbGVhc2UgaW5jcmVhc2UgR0FSVCBzaXplIGluIHlvdXIgQklPUyBzZXR1cFxuIik7CisJCQkJCQlwcmludGsoS0VSTl9FUlIgImlmIEJJT1MgZG9lc24ndCBoYXZlIHRoYXQgb3B0aW9uLCBjb250YWN0IHlvdXIgSFcgdmVuZG9yIVxuIik7CisJCQkJCQlwcmludGVkX2dhcnRfc2l6ZV9tc2cgPSAxOworCQkJCQl9CisJCQkJfSBlbHNlIHsKKwkJCQkJZml4ID0gMTsKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCQkJfQorCisJCQlpZiAoKGxhc3RfYXBlcl9vcmRlciAmJiBhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKKwkJCSAgICAobGFzdF9hcGVyX2Jhc2UgJiYgYXBlcl9iYXNlICE9IGxhc3RfYXBlcl9iYXNlKSkgeworCQkJCWZpeCA9IDE7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCQlsYXN0X2FwZXJfb3JkZXIgPSBhcGVyX29yZGVyOworCQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CiAJCX0KLQotCQlpZiAoKGxhc3RfYXBlcl9vcmRlciAmJiBhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKLQkJICAgIChsYXN0X2FwZXJfYmFzZSAmJiBhcGVyX2Jhc2UgIT0gbGFzdF9hcGVyX2Jhc2UpKSB7Ci0JCQlmaXggPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJbGFzdF9hcGVyX29yZGVyID0gYXBlcl9vcmRlcjsKLQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CiAJfQogCitvdXQ6CiAJaWYgKCFmaXggJiYgIWZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKIAkJaWYgKGxhc3RfYXBlcl9iYXNlKSB7CiAJCQl1bnNpZ25lZCBsb25nIG4gPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgbGFzdF9hcGVyX29yZGVyOwpAQCAtMzY0LDE0ICs0NDEsMTYgQEAKIAkJcmV0dXJuOwogCX0KIAotCWlmICghZmFsbGJhY2tfYXBlcl9mb3JjZSkKLQkJYXBlcl9hbGxvYyA9IHNlYXJjaF9hZ3BfYnJpZGdlKCZhcGVyX29yZGVyLCAmdmFsaWRfYWdwKTsKKwlpZiAoIWZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKKwkJYXBlcl9hbGxvYyA9IGFncF9hcGVyX2Jhc2U7CisJCWFwZXJfb3JkZXIgPSBhZ3BfYXBlcl9vcmRlcjsKKwl9CiAKIAlpZiAoYXBlcl9hbGxvYykgewogCQkvKiBHb3QgdGhlIGFwZXJ0dXJlIGZyb20gdGhlIEFHUCBicmlkZ2UgKi8KIAl9IGVsc2UgaWYgKHN3aW90bGIgJiYgIXZhbGlkX2FncCkgewogCQkvKiBEbyBub3RoaW5nICovCi0JfSBlbHNlIGlmICgoIW5vX2lvbW11ICYmIGVuZF9wZm4gPiBNQVhfRE1BMzJfUEZOKSB8fAorCX0gZWxzZSBpZiAoKCFub19pb21tdSAmJiBtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikgfHwKIAkJICAgZm9yY2VfaW9tbXUgfHwKIAkJICAgdmFsaWRfYWdwIHx8CiAJCSAgIGZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKQEAgLTQwMSwxNiArNDgwLDI0IEBACiAJfQogCiAJLyogRml4IHVwIHRoZSBub3J0aCBicmlkZ2VzICovCi0JZm9yIChudW0gPSAyNDsgbnVtIDwgMzI7IG51bSsrKSB7Ci0JCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHgwMCkpKQotCQkJY29udGludWU7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYnVzX2Rldl9yYW5nZXMpOyBpKyspIHsKKwkJaW50IGJ1czsKKwkJaW50IGRldl9iYXNlLCBkZXZfbGltaXQ7CiAKLQkJLyoKLQkJICogRG9uJ3QgZW5hYmxlIHRyYW5zbGF0aW9uIHlldC4gVGhhdCBpcyBkb25lIGxhdGVyLgotCQkgKiBBc3N1bWUgdGhpcyBCSU9TIGRpZG4ndCBpbml0aWFsaXNlIHRoZSBHQVJUIHNvCi0JCSAqIGp1c3Qgb3ZlcndyaXRlIGFsbCBwcmV2aW91cyBiaXRzCi0JCSAqLwotCQl3cml0ZV9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCwgYXBlcl9vcmRlcjw8MSk7Ci0JCXdyaXRlX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDk0LCBhcGVyX2FsbG9jPj4yNSk7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OworCQlmb3IgKHNsb3QgPSBkZXZfYmFzZTsgc2xvdCA8IGRldl9saW1pdDsgc2xvdCsrKSB7CisJCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIDB4MDApKSkKKwkJCQljb250aW51ZTsKKworCQkJLyogRG9uJ3QgZW5hYmxlIHRyYW5zbGF0aW9uIHlldC4gVGhhdCBpcyBkb25lIGxhdGVyLgorCQkJICAgQXNzdW1lIHRoaXMgQklPUyBkaWRuJ3QgaW5pdGlhbGlzZSB0aGUgR0FSVCBzbworCQkJICAganVzdCBvdmVyd3JpdGUgYWxsIHByZXZpb3VzIGJpdHMgKi8KKwkJCXdyaXRlX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIGFwZXJfb3JkZXIgPDwgMSk7CisJCQl3cml0ZV9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgYXBlcl9hbGxvYyA+PiAyNSk7CisJCX0KIAl9CisKKwlzZXRfdXBfZ2FydF9yZXN1bWUoYXBlcl9vcmRlciwgYXBlcl9hbGxvYyk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY18zMi5jIGIvYXJjaC94ODYva2VybmVsL2FwaWNfMzIuYwppbmRleCA0Yjk5YjFiLi4zZTU4YjY3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljXzMyLmMKQEAgLTUyLDMwICs1Miw0MSBAQAogCiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKLURFRklORV9QRVJfQ1BVKHUxNiwgeDg2X2Jpb3NfY3B1X2FwaWNpZCkgPSBCQURfQVBJQ0lEOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwotCiAvKgogICogS25vYiB0byBjb250cm9sIG91ciB3aWxsaW5nbmVzcyB0byBlbmFibGUgdGhlIGxvY2FsIEFQSUMuCiAgKgotICogLTE9Zm9yY2UtZGlzYWJsZSwgKzE9Zm9yY2UtZW5hYmxlCisgKiArMT1mb3JjZS1lbmFibGUKICAqLwotc3RhdGljIGludCBlbmFibGVfbG9jYWxfYXBpYyBfX2luaXRkYXRhOworc3RhdGljIGludCBmb3JjZV9lbmFibGVfbG9jYWxfYXBpYzsKK2ludCBkaXNhYmxlX2FwaWM7CiAKIC8qIExvY2FsIEFQSUMgdGltZXIgdmVyaWZpY2F0aW9uIG9rICovCiBzdGF0aWMgaW50IGxvY2FsX2FwaWNfdGltZXJfdmVyaWZ5X29rOwotLyogRGlzYWJsZSBsb2NhbCBBUElDIHRpbWVyIGZyb20gdGhlIGtlcm5lbCBjb21tYW5kbGluZSBvciB2aWEgZG1pIHF1aXJrCi0gICBvciB1c2luZyBDUFUgTVNSIGNoZWNrICovCi1pbnQgbG9jYWxfYXBpY190aW1lcl9kaXNhYmxlZDsKKy8qIERpc2FibGUgbG9jYWwgQVBJQyB0aW1lciBmcm9tIHRoZSBrZXJuZWwgY29tbWFuZGxpbmUgb3IgdmlhIGRtaSBxdWlyayAqLworc3RhdGljIGludCBsb2NhbF9hcGljX3RpbWVyX2Rpc2FibGVkOwogLyogTG9jYWwgQVBJQyB0aW1lciB3b3JrcyBpbiBDMiAqLwogaW50IGxvY2FsX2FwaWNfdGltZXJfYzJfb2s7CiBFWFBPUlRfU1lNQk9MX0dQTChsb2NhbF9hcGljX3RpbWVyX2MyX29rKTsKIAoraW50IGZpcnN0X3N5c3RlbV92ZWN0b3IgPSAweGZlOworCitjaGFyIHN5c3RlbV92ZWN0b3JzW05SX1ZFQ1RPUlNdID0geyBbMCAuLi4gTlJfVkVDVE9SUy0xXSA9IFNZU19WRUNUT1JfRlJFRX07CisKIC8qCiAgKiBEZWJ1ZyBsZXZlbCwgZXhwb3J0ZWQgZm9yIGlvX2FwaWMuYwogICovCiBpbnQgYXBpY192ZXJib3NpdHk7CiAKK2ludCBwaWNfbW9kZTsKKworLyogSGF2ZSB3ZSBmb3VuZCBhbiBNUCB0YWJsZSAqLworaW50IHNtcF9mb3VuZF9jb25maWc7CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbGFwaWNfcmVzb3VyY2UgPSB7CisJLm5hbWUgPSAiTG9jYWwgQVBJQyIsCisJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1ksCit9OworCiBzdGF0aWMgdW5zaWduZWQgaW50IGNhbGlicmF0aW9uX3Jlc3VsdDsKIAogc3RhdGljIGludCBsYXBpY19uZXh0X2V2ZW50KHVuc2lnbmVkIGxvbmcgZGVsdGEsCkBAIC01NDUsNyArNTU2LDcgQEAKIAkJCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgJj0gfkNMT0NLX0VWVF9GRUFUX0RVTU1ZOwogCQllbHNlCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJBUElDIHRpbWVyIHJlZ2lzdGVyZWQgYXMgZHVtbXksIgotCQkJICAgICAgICIgZHVlIHRvIG5taV93YXRjaGRvZz0xIVxuIik7CisJCQkJIiBkdWUgdG8gbm1pX3dhdGNoZG9nPSVkIVxuIiwgbm1pX3dhdGNoZG9nKTsKIAl9CiAKIAkvKiBTZXR1cCB0aGUgbGFwaWMgb3IgcmVxdWVzdCB0aGUgYnJvYWRjYXN0ICovCkBAIC05NjMsNyArOTc0LDcgQEAKIAkgKiBEb3VibGUtY2hlY2sgd2hldGhlciB0aGlzIEFQSUMgaXMgcmVhbGx5IHJlZ2lzdGVyZWQuCiAJICovCiAJaWYgKCFhcGljX2lkX3JlZ2lzdGVyZWQoKSkKLQkJQlVHKCk7CisJCVdBUk5fT05fT05DRSgxKTsKIAogCS8qCiAJICogSW50ZWwgcmVjb21tZW5kcyB0byBzZXQgREZSLCBMRFIgYW5kIFRQUiBiZWZvcmUgZW5hYmxpbmcKQEAgLTEwOTQsNyArMTEwNSw3IEBACiAJdTMyIGgsIGwsIGZlYXR1cmVzOwogCiAJLyogRGlzYWJsZWQgYnkga2VybmVsIG9wdGlvbj8gKi8KLQlpZiAoZW5hYmxlX2xvY2FsX2FwaWMgPCAwKQorCWlmIChkaXNhYmxlX2FwaWMpCiAJCXJldHVybiAtMTsKIAogCXN3aXRjaCAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yKSB7CkBAIC0xMTE3LDcgKzExMjgsNyBAQAogCQkgKiBPdmVyLXJpZGUgQklPUyBhbmQgdHJ5IHRvIGVuYWJsZSB0aGUgbG9jYWwgQVBJQyBvbmx5IGlmCiAJCSAqICJsYXBpYyIgc3BlY2lmaWVkLgogCQkgKi8KLQkJaWYgKGVuYWJsZV9sb2NhbF9hcGljIDw9IDApIHsKKwkJaWYgKCFmb3JjZV9lbmFibGVfbG9jYWxfYXBpYykgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAiTG9jYWwgQVBJQyBkaXNhYmxlZCBieSBCSU9TIC0tICIKIAkJCSAgICAgICAieW91IGNhbiBlbmFibGUgaXQgd2l0aCBcImxhcGljXCJcbiIpOwogCQkJcmV0dXJuIC0xOwpAQCAtMTE1NCw5ICsxMTY1LDYgQEAKIAlpZiAobCAmIE1TUl9JQTMyX0FQSUNCQVNFX0VOQUJMRSkKIAkJbXBfbGFwaWNfYWRkciA9IGwgJiBNU1JfSUEzMl9BUElDQkFTRV9CQVNFOwogCi0JaWYgKG5taV93YXRjaGRvZyAhPSBOTUlfTk9ORSAmJiBubWlfd2F0Y2hkb2cgIT0gTk1JX0RJU0FCTEVEKQotCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKLQogCXByaW50ayhLRVJOX0lORk8gIkZvdW5kIGFuZCBlbmFibGVkIGxvY2FsIEFQSUMhXG4iKTsKIAogCWFwaWNfcG1fYWN0aXZhdGUoKTsKQEAgLTExOTUsMzYgKzEyMDMsNiBAQAogCWlmIChib290X2NwdV9waHlzaWNhbF9hcGljaWQgPT0gLTFVKQogCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBHRVRfQVBJQ19JRChyZWFkX2FwaWNfaWQoKSk7CiAKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKLQl7Ci0JCXVuc2lnbmVkIGxvbmcgaW9hcGljX3BoeXMsIGlkeCA9IEZJWF9JT19BUElDX0JBU0VfMDsKLQkJaW50IGk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgewotCQkJaWYgKHNtcF9mb3VuZF9jb25maWcpIHsKLQkJCQlpb2FwaWNfcGh5cyA9IG1wX2lvYXBpY3NbaV0ubXBjX2FwaWNhZGRyOwotCQkJCWlmICghaW9hcGljX3BoeXMpIHsKLQkJCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkJCSAgICAgICAiV0FSTklORzogYm9ndXMgemVybyBJTy1BUElDICIKLQkJCQkJICAgICAgICJhZGRyZXNzIGZvdW5kIGluIE1QVEFCTEUsICIKLQkJCQkJICAgICAgICJkaXNhYmxpbmcgSU8vQVBJQyBzdXBwb3J0IVxuIik7Ci0JCQkJCXNtcF9mb3VuZF9jb25maWcgPSAwOwotCQkJCQlza2lwX2lvYXBpY19zZXR1cCA9IDE7Ci0JCQkJCWdvdG8gZmFrZV9pb2FwaWNfcGFnZTsKLQkJCQl9Ci0JCQl9IGVsc2UgewotZmFrZV9pb2FwaWNfcGFnZToKLQkJCQlpb2FwaWNfcGh5cyA9ICh1bnNpZ25lZCBsb25nKQotCQkJCQkgICAgICBhbGxvY19ib290bWVtX3BhZ2VzKFBBR0VfU0laRSk7Ci0JCQkJaW9hcGljX3BoeXMgPSBfX3BhKGlvYXBpY19waHlzKTsKLQkJCX0KLQkJCXNldF9maXhtYXBfbm9jYWNoZShpZHgsIGlvYXBpY19waHlzKTsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJtYXBwZWQgSU9BUElDIHRvICUwOGx4ICglMDhseClcbiIsCi0JCQkgICAgICAgX19maXhfdG9fdmlydChpZHgpLCBpb2FwaWNfcGh5cyk7Ci0JCQlpZHgrKzsKLQkJfQotCX0KLSNlbmRpZgogfQogCiAvKgpAQCAtMTIzNiw3ICsxMjE0LDcgQEAKIAogaW50IF9faW5pdCBBUElDX2luaXRfdW5pcHJvY2Vzc29yKHZvaWQpCiB7Ci0JaWYgKGVuYWJsZV9sb2NhbF9hcGljIDwgMCkKKwlpZiAoZGlzYWJsZV9hcGljKQogCQljbGVhcl9jcHVfY2FwKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9BUElDKTsKIAogCWlmICghc21wX2ZvdW5kX2NvbmZpZyAmJiAhY3B1X2hhc19hcGljKQpAQCAtMTI2NSwxMCArMTI0MywxNCBAQAogI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QCiAJYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpOwogI2VuZGlmCi0JcGh5c19jcHVfcHJlc2VudF9tYXAgPSBwaHlzaWRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKKwlwaHlzaWRfc2V0X21hc2tfb2ZfcGh5c2lkKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgJnBoeXNfY3B1X3ByZXNlbnRfbWFwKTsKIAogCXNldHVwX2xvY2FsX0FQSUMoKTsKIAorI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCWlmICghc21wX2ZvdW5kX2NvbmZpZyB8fCBza2lwX2lvYXBpY19zZXR1cCB8fCAhbnJfaW9hcGljcykKKyNlbmRpZgorCQlsb2NhbGlzZV9ubWlfd2F0Y2hkb2coKTsKIAllbmRfbG9jYWxfQVBJQ19zZXR1cCgpOwogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCWlmIChzbXBfZm91bmRfY29uZmlnKQpAQCAtMTM1MSwxMyArMTMzMywxMyBAQAogCSAqIFRoZSByZXNjaGVkdWxlIGludGVycnVwdCBpcyBhIENQVS10by1DUFUgcmVzY2hlZHVsZS1oZWxwZXIKIAkgKiBJUEksIGRyaXZlbiBieSB3YWtldXAuCiAJICovCi0Jc2V0X2ludHJfZ2F0ZShSRVNDSEVEVUxFX1ZFQ1RPUiwgcmVzY2hlZHVsZV9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShSRVNDSEVEVUxFX1ZFQ1RPUiwgcmVzY2hlZHVsZV9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIGZvciBpbnZhbGlkYXRpb24gKi8KLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1IsIGludmFsaWRhdGVfaW50ZXJydXB0KTsKIAogCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOwogfQogI2VuZGlmCiAKQEAgLTEzNzAsMTUgKzEzNTIsMTUgQEAKIAlzbXBfaW50cl9pbml0KCk7CiAjZW5kaWYKIAkvKiBzZWxmIGdlbmVyYXRlZCBJUEkgZm9yIGxvY2FsIEFQSUMgdGltZXIgKi8KLQlzZXRfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShMT0NBTF9USU1FUl9WRUNUT1IsIGFwaWNfdGltZXJfaW50ZXJydXB0KTsKIAogCS8qIElQSSB2ZWN0b3JzIGZvciBBUElDIHNwdXJpb3VzIGFuZCBlcnJvciBpbnRlcnJ1cHRzICovCi0Jc2V0X2ludHJfZ2F0ZShTUFVSSU9VU19BUElDX1ZFQ1RPUiwgc3B1cmlvdXNfaW50ZXJydXB0KTsKLQlzZXRfaW50cl9nYXRlKEVSUk9SX0FQSUNfVkVDVE9SLCBlcnJvcl9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShTUFVSSU9VU19BUElDX1ZFQ1RPUiwgc3B1cmlvdXNfaW50ZXJydXB0KTsKKwlhbGxvY19pbnRyX2dhdGUoRVJST1JfQVBJQ19WRUNUT1IsIGVycm9yX2ludGVycnVwdCk7CiAKIAkvKiB0aGVybWFsIG1vbml0b3IgTFZUIGludGVycnVwdCAqLwogI2lmZGVmIENPTkZJR19YODZfTUNFX1A0VEhFUk1BTAotCXNldF9pbnRyX2dhdGUoVEhFUk1BTF9BUElDX1ZFQ1RPUiwgdGhlcm1hbF9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShUSEVSTUFMX0FQSUNfVkVDVE9SLCB0aGVybWFsX2ludGVycnVwdCk7CiAjZW5kaWYKIH0KIApAQCAtMTUxMyw2ICsxNDk1LDkgQEAKIAkJICovCiAJCWNwdSA9IDA7CiAKKwlpZiAoYXBpY2lkID4gbWF4X3BoeXNpY2FsX2FwaWNpZCkKKwkJbWF4X3BoeXNpY2FsX2FwaWNpZCA9IGFwaWNpZDsKKwogCS8qCiAJICogV291bGQgYmUgcHJlZmVyYWJsZSB0byBzd2l0Y2ggdG8gYmlnc21wIHdoZW4gQ09ORklHX0hPVFBMVUdfQ1BVPXkKIAkgKiBidXQgd2UgbmVlZCB0byB3b3JrIG90aGVyIGRlcGVuZGVuY2llcyBsaWtlIFNNUF9TVVNQRU5EIGV0YwpAQCAtMTUyMCw3ICsxNTA1LDcgQEAKIAkgKiBpZiAoQ1BVX0hPVFBMVUdfRU5BQkxFRCB8fCBudW1fcHJvY2Vzc29ycyA+IDgpCiAJICogICAgICAgLSBBc2hvayBSYWogPGFzaG9rLnJhakBpbnRlbC5jb20+CiAJICovCi0JaWYgKG51bV9wcm9jZXNzb3JzID4gOCkgeworCWlmIChtYXhfcGh5c2ljYWxfYXBpY2lkID49IDgpIHsKIAkJc3dpdGNoIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IpIHsKIAkJY2FzZSBYODZfVkVORE9SX0lOVEVMOgogCQkJaWYgKCFBUElDX1hBUElDKHZlcnNpb24pKSB7CkBAIC0xNTM0LDkgKzE1MTksOSBAQAogCX0KICNpZmRlZiBDT05GSUdfU01QCiAJLyogYXJlIHdlIGJlaW5nIGNhbGxlZCBlYXJseSBpbiBrZXJuZWwgc3RhcnR1cD8gKi8KLQlpZiAoeDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyKSB7Ci0JCXUxNiAqY3B1X3RvX2FwaWNpZCA9IHg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0cjsKLQkJdTE2ICpiaW9zX2NwdV9hcGljaWQgPSB4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0cjsKKwlpZiAoZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpKSB7CisJCXUxNiAqY3B1X3RvX2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fYXBpY2lkKTsKKwkJdTE2ICpiaW9zX2NwdV9hcGljaWQgPSBlYXJseV9wZXJfY3B1X3B0cih4ODZfYmlvc19jcHVfYXBpY2lkKTsKIAogCQljcHVfdG9fYXBpY2lkW2NwdV0gPSBhcGljaWQ7CiAJCWJpb3NfY3B1X2FwaWNpZFtjcHVdID0gYXBpY2lkOwpAQCAtMTcwMywxNCArMTY4OCwxNCBAQAogICovCiBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9sYXBpYyhjaGFyICphcmcpCiB7Ci0JZW5hYmxlX2xvY2FsX2FwaWMgPSAxOworCWZvcmNlX2VuYWJsZV9sb2NhbF9hcGljID0gMTsKIAlyZXR1cm4gMDsKIH0KIGVhcmx5X3BhcmFtKCJsYXBpYyIsIHBhcnNlX2xhcGljKTsKIAogc3RhdGljIGludCBfX2luaXQgcGFyc2Vfbm9sYXBpYyhjaGFyICphcmcpCiB7Ci0JZW5hYmxlX2xvY2FsX2FwaWMgPSAtMTsKKwlkaXNhYmxlX2FwaWMgPSAxOwogCWNsZWFyX2NwdV9jYXAoJmJvb3RfY3B1X2RhdGEsIFg4Nl9GRUFUVVJFX0FQSUMpOwogCXJldHVybiAwOwogfQpAQCAtMTc0MCwzICsxNzI1LDIxIEBACiB9CiBfX3NldHVwKCJhcGljPSIsIGFwaWNfc2V0X3ZlcmJvc2l0eSk7CiAKK3N0YXRpYyBpbnQgX19pbml0IGxhcGljX2luc2VydF9yZXNvdXJjZSh2b2lkKQoreworCWlmICghYXBpY19waHlzKQorCQlyZXR1cm4gLTE7CisKKwkvKiBQdXQgbG9jYWwgQVBJQyBpbnRvIHRoZSByZXNvdXJjZSBtYXAuICovCisJbGFwaWNfcmVzb3VyY2Uuc3RhcnQgPSBhcGljX3BoeXM7CisJbGFwaWNfcmVzb3VyY2UuZW5kID0gbGFwaWNfcmVzb3VyY2Uuc3RhcnQgKyBQQUdFX1NJWkUgLSAxOworCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZsYXBpY19yZXNvdXJjZSk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIG5lZWQgY2FsbCBpbnNlcnQgYWZ0ZXIgZTgyMF9yZXNlcnZlX3Jlc291cmNlcygpCisgKiB0aGF0IGlzIHVzaW5nIHJlcXVlc3RfcmVzb3VyY2UKKyAqLworbGF0ZV9pbml0Y2FsbChsYXBpY19pbnNlcnRfcmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FwaWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljXzY0LmMKaW5kZXggMDYzM2NmZC4uMWUzZDMyZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FwaWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXBpY182NC5jCkBAIC00Myw3ICs0Myw3IEBACiAjaW5jbHVkZSA8bWFjaF9pcGkuaD4KICNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KIAotaW50IGRpc2FibGVfYXBpY190aW1lciBfX2NwdWluaXRkYXRhOworc3RhdGljIGludCBkaXNhYmxlX2FwaWNfdGltZXIgX19jcHVpbml0ZGF0YTsKIHN0YXRpYyBpbnQgYXBpY19jYWxpYnJhdGVfcG10bXIgX19pbml0ZGF0YTsKIGludCBkaXNhYmxlX2FwaWM7CiAKQEAgLTU2LDYgKzU2LDkgQEAKICAqLwogaW50IGFwaWNfdmVyYm9zaXR5OwogCisvKiBIYXZlIHdlIGZvdW5kIGFuIE1QIHRhYmxlICovCitpbnQgc21wX2ZvdW5kX2NvbmZpZzsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsYXBpY19yZXNvdXJjZSA9IHsKIAkubmFtZSA9ICJMb2NhbCBBUElDIiwKIAkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVTT1VSQ0VfQlVTWSwKQEAgLTg3LDkgKzkwLDYgQEAKIAogdW5zaWduZWQgbG9uZyBtcF9sYXBpY19hZGRyOwogCi1ERUZJTkVfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQpID0gQkFEX0FQSUNJRDsKLUVYUE9SVF9QRVJfQ1BVX1NZTUJPTCh4ODZfYmlvc19jcHVfYXBpY2lkKTsKLQogdW5zaWduZWQgaW50IF9fY3B1aW5pdGRhdGEgbWF4Y3B1cyA9IE5SX0NQVVM7CiAvKgogICogR2V0IHRoZSBMQVBJQyB2ZXJzaW9uCkBAIC00MTcsMzcgKzQxNywxMyBAQAogCQlsYXBpY19jbG9ja2V2ZW50LmZlYXR1cmVzICY9IH5DTE9DS19FVlRfRkVBVF9EVU1NWTsKIAllbHNlCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIkFQSUMgdGltZXIgcmVnaXN0ZXJlZCBhcyBkdW1teSwiCi0JCSAgICAgICAiIGR1ZSB0byBubWlfd2F0Y2hkb2c9MSFcbiIpOworCQkJIiBkdWUgdG8gbm1pX3dhdGNoZG9nPSVkIVxuIiwgbm1pX3dhdGNoZG9nKTsKIAogCXNldHVwX0FQSUNfdGltZXIoKTsKIH0KIAotLyoKLSAqIEFNRCBDMUUgZW5hYmxlZCBDUFVzIGhhdmUgYSByZWFsIG5hc3R5IHByb2JsZW06IFNvbWUgQklPU2VzIHNldCB0aGUKLSAqIEMxRSBmbGFnIG9ubHkgaW4gdGhlIHNlY29uZGFyeSBDUFUsIHNvIHdoZW4gd2UgZGV0ZWN0IHRoZSB3cmVja2FnZQotICogd2UgYWxyZWFkeSBoYXZlIGVuYWJsZWQgdGhlIGJvb3QgQ1BVIGxvY2FsIGFwaWMgdGltZXIuIENoZWNrLCBpZgotICogZGlzYWJsZV9hcGljX3RpbWVyIGlzIHNldCBhbmQgdGhlIERVTU1ZIGZsYWcgaXMgY2xlYXJlZC4gSWYgeWVzLAotICogc2V0IHRoZSBEVU1NWSBmbGFnIGFnYWluIGFuZCBmb3JjZSB0aGUgYnJvYWRjYXN0IG1vZGUgaW4gdGhlCi0gKiBjbG9ja2V2ZW50cyBsYXllci4KLSAqLwotc3RhdGljIHZvaWQgX19jcHVpbml0IGNoZWNrX2Jvb3RfYXBpY190aW1lcl9icm9hZGNhc3Qodm9pZCkKLXsKLQlpZiAoIWRpc2FibGVfYXBpY190aW1lciB8fAotCSAgICAobGFwaWNfY2xvY2tldmVudC5mZWF0dXJlcyAmIENMT0NLX0VWVF9GRUFUX0RVTU1ZKSkKLQkJcmV0dXJuOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQU1EIEMxRSBkZXRlY3RlZCBsYXRlLiBGb3JjZSB0aW1lciBicm9hZGNhc3QuXG4iKTsKLQlsYXBpY19jbG9ja2V2ZW50LmZlYXR1cmVzIHw9IENMT0NLX0VWVF9GRUFUX0RVTU1ZOwotCi0JbG9jYWxfaXJxX2VuYWJsZSgpOwotCWNsb2NrZXZlbnRzX25vdGlmeShDTE9DS19FVlRfTk9USUZZX0JST0FEQ0FTVF9GT1JDRSwKLQkJCSAgICZib290X2NwdV9waHlzaWNhbF9hcGljaWQpOwotCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci19Ci0KIHZvaWQgX19jcHVpbml0IHNldHVwX3NlY29uZGFyeV9BUElDX2Nsb2NrKHZvaWQpCiB7Ci0JY2hlY2tfYm9vdF9hcGljX3RpbWVyX2Jyb2FkY2FzdCgpOwogCXNldHVwX0FQSUNfdGltZXIoKTsKIH0KIApAQCAtODUwLDcgKzgyNiw2IEBACiB2b2lkIF9fY3B1aW5pdCBlbmRfbG9jYWxfQVBJQ19zZXR1cCh2b2lkKQogewogCWxhcGljX3NldHVwX2VzcigpOwotCW5taV93YXRjaGRvZ19kZWZhdWx0KCk7CiAJc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2coTlVMTCk7CiAJYXBpY19wbV9hY3RpdmF0ZSgpOwogfQpAQCAtODc1LDcgKzg1MCw3IEBACiAKIHZvaWQgX19pbml0IGVhcmx5X2luaXRfbGFwaWNfbWFwcGluZyh2b2lkKQogewotCXVuc2lnbmVkIGxvbmcgYXBpY19waHlzOworCXVuc2lnbmVkIGxvbmcgcGh5c19hZGRyOwogCiAJLyoKIAkgKiBJZiBubyBsb2NhbCBBUElDIGNhbiBiZSBmb3VuZCB0aGVuIGdvIG91dApAQCAtODg0LDExICs4NTksMTEgQEAKIAlpZiAoIXNtcF9mb3VuZF9jb25maWcpCiAJCXJldHVybjsKIAotCWFwaWNfcGh5cyA9IG1wX2xhcGljX2FkZHI7CisJcGh5c19hZGRyID0gbXBfbGFwaWNfYWRkcjsKIAotCXNldF9maXhtYXBfbm9jYWNoZShGSVhfQVBJQ19CQVNFLCBhcGljX3BoeXMpOworCXNldF9maXhtYXBfbm9jYWNoZShGSVhfQVBJQ19CQVNFLCBwaHlzX2FkZHIpOwogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIm1hcHBlZCBBUElDIHRvICUxNmx4ICglMTZseClcbiIsCi0JCQkJIEFQSUNfQkFTRSwgYXBpY19waHlzKTsKKwkJICAgIEFQSUNfQkFTRSwgcGh5c19hZGRyKTsKIAogCS8qCiAJICogRmV0Y2ggdGhlIEFQSUMgSUQgb2YgdGhlIEJTUCBpbiBjYXNlIHdlIGhhdmUgYQpAQCAtOTQyLDcgKzkxNyw5IEBACiAKIAl2ZXJpZnlfbG9jYWxfQVBJQygpOwogCi0JcGh5c19jcHVfcHJlc2VudF9tYXAgPSBwaHlzaWRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKKwljb25uZWN0X2JzcF9BUElDKCk7CisKKwlwaHlzaWRfc2V0X21hc2tfb2ZfcGh5c2lkKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgJnBoeXNfY3B1X3ByZXNlbnRfbWFwKTsKIAlhcGljX3dyaXRlKEFQSUNfSUQsIFNFVF9BUElDX0lEKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCkpOwogCiAJc2V0dXBfbG9jYWxfQVBJQygpOwpAQCAtOTU0LDYgKzkzMSw4IEBACiAJaWYgKCFza2lwX2lvYXBpY19zZXR1cCAmJiBucl9pb2FwaWNzKQogCQllbmFibGVfSU9fQVBJQygpOwogCisJaWYgKCFzbXBfZm91bmRfY29uZmlnIHx8IHNraXBfaW9hcGljX3NldHVwIHx8ICFucl9pb2FwaWNzKQorCQlsb2NhbGlzZV9ubWlfd2F0Y2hkb2coKTsKIAllbmRfbG9jYWxfQVBJQ19zZXR1cCgpOwogCiAJaWYgKHNtcF9mb3VuZF9jb25maWcgJiYgIXNraXBfaW9hcGljX3NldHVwICYmIG5yX2lvYXBpY3MpCkBAIC0xMDIxLDYgKzEwMDAsMTQgQEAKIAlpcnFfZXhpdCgpOwogfQogCisvKioKKyAqICAqIGNvbm5lY3RfYnNwX0FQSUMgLSBhdHRhY2ggdGhlIEFQSUMgdG8gdGhlIGludGVycnVwdCBzeXN0ZW0KKyAqICAgKi8KK3ZvaWQgX19pbml0IGNvbm5lY3RfYnNwX0FQSUModm9pZCkKK3sKKwllbmFibGVfYXBpY19tb2RlKCk7Cit9CisKIHZvaWQgZGlzY29ubmVjdF9ic3BfQVBJQyhpbnQgdmlydF93aXJlX3NldHVwKQogewogCS8qIEdvIGJhY2sgdG8gVmlydHVhbCBXaXJlIGNvbXBhdGliaWxpdHkgbW9kZSAqLwpAQCAtMTA5MCwxMCArMTA3NywxMyBAQAogCQkgKi8KIAkJY3B1ID0gMDsKIAl9CisJaWYgKGFwaWNpZCA+IG1heF9waHlzaWNhbF9hcGljaWQpCisJCW1heF9waHlzaWNhbF9hcGljaWQgPSBhcGljaWQ7CisKIAkvKiBhcmUgd2UgYmVpbmcgY2FsbGVkIGVhcmx5IGluIGtlcm5lbCBzdGFydHVwPyAqLwotCWlmICh4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIpIHsKLQkJdTE2ICpjcHVfdG9fYXBpY2lkID0geDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyOwotCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IHg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyOworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCkpIHsKKwkJdTE2ICpjcHVfdG9fYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpOworCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwogCiAJCWNwdV90b19hcGljaWRbY3B1XSA9IGFwaWNpZDsKIAkJYmlvc19jcHVfYXBpY2lkW2NwdV0gPSBhcGljaWQ7CkBAIC0xMjY5LDcgKzEyNTksNyBAQAogCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSAmJiAhaXNfdnNtcF9ib3goKSkKIAkJcmV0dXJuIDA7CiAKLQliaW9zX2NwdV9hcGljaWQgPSB4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0cjsKKwliaW9zX2NwdV9hcGljaWQgPSBlYXJseV9wZXJfY3B1X3B0cih4ODZfYmlvc19jcHVfYXBpY2lkKTsKIAliaXRtYXBfemVybyhjbHVzdGVybWFwLCBOVU1fQVBJQ19DTFVTVEVSUyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTlJfQ1BVUzsgaSsrKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMKaW5kZXggYmY5MjkwZS4uNzVjYjVkYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FwbV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYwpAQCAtMjA0LDYgKzIwNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CkBAIC0yMjgsNiArMjI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CkBAIC0xMTQ5LDcgKzExNTEsNyBAQAogCQkJCWFzLT5ldmVudF90YWlsID0gMDsKIAkJfQogCQlhcy0+ZXZlbnRzW2FzLT5ldmVudF9oZWFkXSA9IGV2ZW50OwotCQlpZiAoKCFhcy0+c3VzZXIpIHx8ICghYXMtPndyaXRlcikpCisJCWlmICghYXMtPnN1c2VyIHx8ICFhcy0+d3JpdGVyKQogCQkJY29udGludWU7CiAJCXN3aXRjaCAoZXZlbnQpIHsKIAkJY2FzZSBBUE1fU1lTX1NVU1BFTkQ6CkBAIC0xMzk2LDcgKzEzOTgsNyBAQAogCiBzdGF0aWMgaW50IGNoZWNrX2FwbV91c2VyKHN0cnVjdCBhcG1fdXNlciAqYXMsIGNvbnN0IGNoYXIgKmZ1bmMpCiB7Ci0JaWYgKChhcyA9PSBOVUxMKSB8fCAoYXMtPm1hZ2ljICE9IEFQTV9CSU9TX01BR0lDKSkgeworCWlmIChhcyA9PSBOVUxMIHx8IGFzLT5tYWdpYyAhPSBBUE1fQklPU19NQUdJQykgewogCQlwcmludGsoS0VSTl9FUlIgImFwbTogJXMgcGFzc2VkIGJhZCBmaWxwXG4iLCBmdW5jKTsKIAkJcmV0dXJuIDE7CiAJfQpAQCAtMTQ1OSwxOCArMTQ2MSwxOSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAotCQkgICAgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQorc3RhdGljIGxvbmcgZG9faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVfaW50IGNtZCwgdV9sb25nIGFyZykKIHsKIAlzdHJ1Y3QgYXBtX3VzZXIgKmFzOworCWludCByZXQ7CiAKIAlhcyA9IGZpbHAtPnByaXZhdGVfZGF0YTsKIAlpZiAoY2hlY2tfYXBtX3VzZXIoYXMsICJpb2N0bCIpKQogCQlyZXR1cm4gLUVJTzsKLQlpZiAoKCFhcy0+c3VzZXIpIHx8ICghYXMtPndyaXRlcikpCisJaWYgKCFhcy0+c3VzZXIgfHwgIWFzLT53cml0ZXIpCiAJCXJldHVybiAtRVBFUk07CiAJc3dpdGNoIChjbWQpIHsKIAljYXNlIEFQTV9JT0NfU1RBTkRCWToKKwkJbG9ja19rZXJuZWwoKTsKIAkJaWYgKGFzLT5zdGFuZGJ5c19yZWFkID4gMCkgewogCQkJYXMtPnN0YW5kYnlzX3JlYWQtLTsKIAkJCWFzLT5zdGFuZGJ5c19wZW5kaW5nLS07CkBAIC0xNDc5LDggKzE0ODIsMTAgQEAKIAkJCXF1ZXVlX2V2ZW50KEFQTV9VU0VSX1NUQU5EQlksIGFzKTsKIAkJaWYgKHN0YW5kYnlzX3BlbmRpbmcgPD0gMCkKIAkJCXN0YW5kYnkoKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlicmVhazsKIAljYXNlIEFQTV9JT0NfU1VTUEVORDoKKwkJbG9ja19rZXJuZWwoKTsKIAkJaWYgKGFzLT5zdXNwZW5kc19yZWFkID4gMCkgewogCQkJYXMtPnN1c3BlbmRzX3JlYWQtLTsKIAkJCWFzLT5zdXNwZW5kc19wZW5kaW5nLS07CkBAIC0xNDg4LDE2ICsxNDkzLDE3IEBACiAJCX0gZWxzZQogCQkJcXVldWVfZXZlbnQoQVBNX1VTRVJfU1VTUEVORCwgYXMpOwogCQlpZiAoc3VzcGVuZHNfcGVuZGluZyA8PSAwKSB7Ci0JCQlyZXR1cm4gc3VzcGVuZCgxKTsKKwkJCXJldCA9IHN1c3BlbmQoMSk7CiAJCX0gZWxzZSB7CiAJCQlhcy0+c3VzcGVuZF93YWl0ID0gMTsKIAkJCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShhcG1fc3VzcGVuZF93YWl0cXVldWUsCiAJCQkJCWFzLT5zdXNwZW5kX3dhaXQgPT0gMCk7Ci0JCQlyZXR1cm4gYXMtPnN1c3BlbmRfcmVzdWx0OworCQkJcmV0ID0gYXMtPnN1c3BlbmRfcmVzdWx0OwogCQl9Ci0JCWJyZWFrOworCQl1bmxvY2tfa2VybmVsKCk7CisJCXJldHVybiByZXQ7CiAJZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiAtRU5PVFRZOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTE1NDQsMTAgKzE1NTAsMTIgQEAKIHsKIAlzdHJ1Y3QgYXBtX3VzZXIgKmFzOwogCisJbG9ja19rZXJuZWwoKTsKIAlhcyA9IGttYWxsb2Moc2l6ZW9mKCphcyksIEdGUF9LRVJORUwpOwogCWlmIChhcyA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiYXBtOiBjYW5ub3QgYWxsb2NhdGUgc3RydWN0IG9mIHNpemUgJWQgYnl0ZXNcbiIsCiAJCSAgICAgICBzaXplb2YoKmFzKSk7CisJCSAgICAgICB1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAlhcy0+bWFnaWMgPSBBUE1fQklPU19NQUdJQzsKQEAgLTE1NjksNiArMTU3Nyw3IEBACiAJdXNlcl9saXN0ID0gYXM7CiAJc3Bpbl91bmxvY2soJnVzZXJfbGlzdF9sb2NrKTsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBhczsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE4NjAsNyArMTg2OSw3IEBACiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5yZWFkCQk9IGRvX3JlYWQsCiAJLnBvbGwJCT0gZG9fcG9sbCwKLQkuaW9jdGwJCT0gZG9faW9jdGwsCisJLnVubG9ja2VkX2lvY3RsCT0gZG9faW9jdGwsCiAJLm9wZW4JCT0gZG9fb3BlbiwKIAkucmVsZWFzZQk9IGRvX3JlbGVhc2UsCiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYwppbmRleCA5MjU4ODA4Li42NjQ5ZDA5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYwpAQCAtMTExLDcgKzExMSw3IEBACiAJT0ZGU0VUKFBWX0lSUV9pcnFfZGlzYWJsZSwgcHZfaXJxX29wcywgaXJxX2Rpc2FibGUpOwogCU9GRlNFVChQVl9JUlFfaXJxX2VuYWJsZSwgcHZfaXJxX29wcywgaXJxX2VuYWJsZSk7CiAJT0ZGU0VUKFBWX0NQVV9pcmV0LCBwdl9jcHVfb3BzLCBpcmV0KTsKLQlPRkZTRVQoUFZfQ1BVX2lycV9lbmFibGVfc3lzY2FsbF9yZXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQpOworCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0LCBwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOwogCU9GRlNFVChQVl9DUFVfcmVhZF9jcjAsIHB2X2NwdV9vcHMsIHJlYWRfY3IwKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCmluZGV4IGYxMjZjMDUuLmJhY2Y1ZGUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCkBAIC0zNCw3ICszNCw3IEBACiAJRU5UUlkocGlkKTsKIAlCTEFOSygpOwogI3VuZGVmIEVOVFJZCi0jZGVmaW5lIEVOVFJZKGVudHJ5KSBERUZJTkUodGhyZWFkaW5mb18gIyMgZW50cnksIG9mZnNldG9mKHN0cnVjdCB0aHJlYWRfaW5mbywgZW50cnkpKQorI2RlZmluZSBFTlRSWShlbnRyeSkgREVGSU5FKFRJXyAjIyBlbnRyeSwgb2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBlbnRyeSkpCiAJRU5UUlkoZmxhZ3MpOwogCUVOVFJZKGFkZHJfbGltaXQpOwogCUVOVFJZKHByZWVtcHRfY291bnQpOwpAQCAtNjEsOCArNjEsMTEgQEAKIAlPRkZTRVQoUEFSQVZJUlRfUEFUQ0hfcHZfaXJxX29wcywgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIHB2X2lycV9vcHMpOwogCU9GRlNFVChQVl9JUlFfaXJxX2Rpc2FibGUsIHB2X2lycV9vcHMsIGlycV9kaXNhYmxlKTsKIAlPRkZTRVQoUFZfSVJRX2lycV9lbmFibGUsIHB2X2lycV9vcHMsIGlycV9lbmFibGUpOworCU9GRlNFVChQVl9JUlFfYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSwgcHZfaXJxX29wcywgYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSk7CiAJT0ZGU0VUKFBWX0NQVV9pcmV0LCBwdl9jcHVfb3BzLCBpcmV0KTsKLQlPRkZTRVQoUFZfQ1BVX2lycV9lbmFibGVfc3lzY2FsbF9yZXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQpOworCU9GRlNFVChQVl9DUFVfdXNlcmdzX3N5c3JldDMyLCBwdl9jcHVfb3BzLCB1c2VyZ3Nfc3lzcmV0MzIpOworCU9GRlNFVChQVl9DUFVfdXNlcmdzX3N5c3JldDY0LCBwdl9jcHVfb3BzLCB1c2VyZ3Nfc3lzcmV0NjQpOworCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0LCBwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOwogCU9GRlNFVChQVl9DUFVfc3dhcGdzLCBwdl9jcHVfb3BzLCBzd2FwZ3MpOwogCU9GRlNFVChQVl9NTVVfcmVhZF9jcjIsIHB2X21tdV9vcHMsIHJlYWRfY3IyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9NYWtlZmlsZSBiL2FyY2gveDg2L2tlcm5lbC9jcHUvTWFrZWZpbGUKaW5kZXggYTBjNmY4MS4uZWU3NmVhYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L01ha2VmaWxlCkBAIC02LDExICs2LDE1IEBACiBvYmoteQkJCSs9IHByb2MubyBmZWF0dXJlX25hbWVzLm8KIAogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gY29tbW9uLm8gYnVncy5vCitvYmotJChDT05GSUdfWDg2XzY0KQkrPSBjb21tb25fNjQubyBidWdzXzY0Lm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IGFtZC5vCitvYmotJChDT05GSUdfWDg2XzY0KQkrPSBhbWRfNjQubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gY3lyaXgubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gY2VudGF1ci5vCitvYmotJChDT05GSUdfWDg2XzY0KQkrPSBjZW50YXVyXzY0Lm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IHRyYW5zbWV0YS5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBpbnRlbC5vCitvYmotJChDT05GSUdfWDg2XzY0KQkrPSBpbnRlbF82NC5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSB1bWMubwogCiBvYmotJChDT05GSUdfWDg2X01DRSkJKz0gbWNoZWNrLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9hZGRvbl9jcHVpZF9mZWF0dXJlcy5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9hZGRvbl9jcHVpZF9mZWF0dXJlcy5jCmluZGV4IGMyZTFjZTMuLjg0YTgyMjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYWRkb25fY3B1aWRfZmVhdHVyZXMuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FkZG9uX2NwdWlkX2ZlYXR1cmVzLmMKQEAgLTEsOSArMSw3IEBACi0KIC8qCiAgKglSb3V0aW5lcyB0byBpbmRlbnRpZnkgYWRkaXRpb25hbCBjcHUgZmVhdHVyZXMgdGhhdCBhcmUgc2NhdHRlcmVkIGluCiAgKgljcHVpZCBzcGFjZS4KICAqLwotCiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CiAKICNpbmNsdWRlIDxhc20vcGF0Lmg+CkBAIC01MywxOSArNTEsMjAgQEAKICNpZmRlZiBDT05GSUdfWDg2X1BBVAogdm9pZCBfX2NwdWluaXQgdmFsaWRhdGVfcGF0X3N1cHBvcnQoc3RydWN0IGNwdWluZm9feDg2ICpjKQogeworCWlmICghY3B1X2hhc19wYXQpCisJCXBhdF9kaXNhYmxlKCJQQVQgbm90IHN1cHBvcnRlZCBieSBDUFUuIik7CisKIAlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsKLQljYXNlIFg4Nl9WRU5ET1JfQU1EOgotCQlpZiAoYy0+eDg2ID49IDB4ZiAmJiBjLT54ODYgPD0gMHgxMSkKLQkJCXJldHVybjsKLQkJYnJlYWs7CiAJY2FzZSBYODZfVkVORE9SX0lOVEVMOgogCQlpZiAoYy0+eDg2ID09IDB4RiB8fCAoYy0+eDg2ID09IDYgJiYgYy0+eDg2X21vZGVsID49IDE1KSkKIAkJCXJldHVybjsKIAkJYnJlYWs7CisJY2FzZSBYODZfVkVORE9SX0FNRDoKKwljYXNlIFg4Nl9WRU5ET1JfQ0VOVEFVUjoKKwljYXNlIFg4Nl9WRU5ET1JfVFJBTlNNRVRBOgorCQlyZXR1cm47CiAJfQogCi0JcGF0X2Rpc2FibGUoY3B1X2hhc19wYXQgPwotCQkgICAgIlBBVCBkaXNhYmxlZC4gTm90IHlldCB2ZXJpZmllZCBvbiB0aGlzIENQVSB0eXBlLiIgOgotCQkgICAgIlBBVCBub3Qgc3VwcG9ydGVkIGJ5IENQVS4iKTsKKwlwYXRfZGlzYWJsZSgiUEFUIGRpc2FibGVkLiBOb3QgeWV0IHZlcmlmaWVkIG9uIHRoaXMgQ1BVIHR5cGUuIik7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jCmluZGV4IDI0NTg2NjguLjgxYTA3Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYwpAQCAtMjQsNDMgKzI0LDYgQEAKIGV4dGVybiB2b2lkIHZpZGUodm9pZCk7CiBfX2FzbV9fKCIuYWxpZ24gNFxudmlkZTogcmV0Iik7CiAKLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLSNkZWZpbmUgRU5BQkxFX0MxRV9NQVNLICAgICAgICAgMHgxODAwMDAwMAotI2RlZmluZSBDUFVJRF9QUk9DRVNTT1JfU0lHTkFUVVJFICAgICAgIDEKLSNkZWZpbmUgQ1BVSURfWEZBTSAgICAgICAgICAgICAgMHgwZmYwMDAwMAotI2RlZmluZSBDUFVJRF9YRkFNX0s4ICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENQVUlEX1hGQU1fMTBIICAgICAgICAgIDB4MDAxMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMUggICAgICAgICAgMHgwMDIwMDAwMAotI2RlZmluZSBDUFVJRF9YTU9EICAgICAgICAgICAgICAweDAwMGYwMDAwCi0jZGVmaW5lIENQVUlEX1hNT0RfUkVWX0YgICAgICAgIDB4MDAwNDAwMDAKLQotLyogQU1EIHN5c3RlbXMgd2l0aCBDMUUgZG9uJ3QgaGF2ZSBhIHdvcmtpbmcgbEFQSUMgdGltZXIuIENoZWNrIGZvciB0aGF0LiAqLwotc3RhdGljIF9fY3B1aW5pdCBpbnQgYW1kX2FwaWNfdGltZXJfYnJva2VuKHZvaWQpCi17Ci0JdTMyIGxvLCBoaTsKLQl1MzIgZWF4ID0gY3B1aWRfZWF4KENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUpOwotCXN3aXRjaCAoZWF4ICYgQ1BVSURfWEZBTSkgewotCWNhc2UgQ1BVSURfWEZBTV9LODoKLQkJaWYgKChlYXggJiBDUFVJRF9YTU9EKSA8IENQVUlEX1hNT0RfUkVWX0YpCi0JCQlicmVhazsKLQljYXNlIENQVUlEX1hGQU1fMTBIOgotCWNhc2UgQ1BVSURfWEZBTV8xMUg6Ci0JCXJkbXNyKE1TUl9LOF9FTkFCTEVfQzFFLCBsbywgaGkpOwotCQlpZiAobG8gJiBFTkFCTEVfQzFFX01BU0spIHsKLQkJCWlmIChzbXBfcHJvY2Vzc29yX2lkKCkgIT0gYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKQotCQkJCXByaW50ayhLRVJOX0lORk8gIkFNRCBDMUUgZGV0ZWN0ZWQgbGF0ZS4gIgotCQkJCSAgICAgICAiCUZvcmNlIHRpbWVyIGJyb2FkY2FzdC5cbiIpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJLyogZXJyIG9uIHRoZSBzaWRlIG9mIGNhdXRpb24gKi8KLQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotI2VuZGlmCi0KIGludCBmb3JjZV9td2FpdCBfX2NwdWluaXRkYXRhOwogCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9hbWQoc3RydWN0IGNwdWluZm9feDg2ICpjKQpAQCAtMjk3LDExICsyNjAsNiBAQAogCQkJbnVtX2NhY2hlX2xlYXZlcyA9IDM7CiAJfQogCi0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi0JaWYgKGFtZF9hcGljX3RpbWVyX2Jyb2tlbigpKQotCQlsb2NhbF9hcGljX3RpbWVyX2Rpc2FibGVkID0gMTsKLSNlbmRpZgotCiAJLyogSzZzIHJlcG9ydHMgTUNFcyBidXQgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhbGwgdGhlIE1TUnMgKi8KIAlpZiAoYy0+eDg2IDwgNikKIAkJY2xlYXJfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9NQ0UpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWRfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kXzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MzNmZiOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kXzY0LmMKQEAgLTAsMCArMSwyMjIgQEAKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKworI2luY2x1ZGUgPGFzbS9udW1hXzY0Lmg+CisjaW5jbHVkZSA8YXNtL21tY29uZmlnLmg+CisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKworI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKK2ludCBmb3JjZV9td2FpdCBfX2NwdWluaXRkYXRhOworCisjaWZkZWYgQ09ORklHX05VTUEKK3N0YXRpYyBpbnQgX19jcHVpbml0IG5lYXJieV9ub2RlKGludCBhcGljaWQpCit7CisJaW50IGksIG5vZGU7CisKKwlmb3IgKGkgPSBhcGljaWQgLSAxOyBpID49IDA7IGktLSkgeworCQlub2RlID0gYXBpY2lkX3RvX25vZGVbaV07CisJCWlmIChub2RlICE9IE5VTUFfTk9fTk9ERSAmJiBub2RlX29ubGluZShub2RlKSkKKwkJCXJldHVybiBub2RlOworCX0KKwlmb3IgKGkgPSBhcGljaWQgKyAxOyBpIDwgTUFYX0xPQ0FMX0FQSUM7IGkrKykgeworCQlub2RlID0gYXBpY2lkX3RvX25vZGVbaV07CisJCWlmIChub2RlICE9IE5VTUFfTk9fTk9ERSAmJiBub2RlX29ubGluZShub2RlKSkKKwkJCXJldHVybiBub2RlOworCX0KKwlyZXR1cm4gZmlyc3Rfbm9kZShub2RlX29ubGluZV9tYXApOyAvKiBTaG91bGRuJ3QgaGFwcGVuICovCit9CisjZW5kaWYKKworLyoKKyAqIE9uIGEgQU1EIGR1YWwgY29yZSBzZXR1cCB0aGUgbG93ZXIgYml0cyBvZiB0aGUgQVBJQyBpZCBkaXN0aW5ndXNoIHRoZSBjb3Jlcy4KKyAqIEFzc3VtZXMgbnVtYmVyIG9mIGNvcmVzIGlzIGEgcG93ZXIgb2YgdHdvLgorICovCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgYW1kX2RldGVjdF9jbXAoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworI2lmZGVmIENPTkZJR19TTVAKKwl1bnNpZ25lZCBiaXRzOworI2lmZGVmIENPTkZJR19OVU1BCisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgbm9kZSA9IDA7CisJdW5zaWduZWQgYXBpY2lkID0gaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCk7CisjZW5kaWYKKwliaXRzID0gYy0+eDg2X2NvcmVpZF9iaXRzOworCisJLyogTG93IG9yZGVyIGJpdHMgZGVmaW5lIHRoZSBjb3JlIGlkIChpbmRleCBvZiBjb3JlIGluIHNvY2tldCkgKi8KKwljLT5jcHVfY29yZV9pZCA9IGMtPmluaXRpYWxfYXBpY2lkICYgKCgxIDw8IGJpdHMpLTEpOworCS8qIENvbnZlcnQgdGhlIGluaXRpYWwgQVBJQyBJRCBpbnRvIHRoZSBzb2NrZXQgSUQgKi8KKwljLT5waHlzX3Byb2NfaWQgPSBjLT5pbml0aWFsX2FwaWNpZCA+PiBiaXRzOworCisjaWZkZWYgQ09ORklHX05VTUEKKwlub2RlID0gYy0+cGh5c19wcm9jX2lkOworCWlmIChhcGljaWRfdG9fbm9kZVthcGljaWRdICE9IE5VTUFfTk9fTk9ERSkKKwkJbm9kZSA9IGFwaWNpZF90b19ub2RlW2FwaWNpZF07CisJaWYgKCFub2RlX29ubGluZShub2RlKSkgeworCQkvKiBUd28gcG9zc2liaWxpdGllcyBoZXJlOgorCQkgICAtIFRoZSBDUFUgaXMgbWlzc2luZyBtZW1vcnkgYW5kIG5vIG5vZGUgd2FzIGNyZWF0ZWQuCisJCSAgIEluIHRoYXQgY2FzZSB0cnkgcGlja2luZyBvbmUgZnJvbSBhIG5lYXJieSBDUFUKKwkJICAgLSBUaGUgQVBJQyBJRHMgZGlmZmVyIGZyb20gdGhlIEh5cGVyVHJhbnNwb3J0IG5vZGUgSURzCisJCSAgIHdoaWNoIHRoZSBLOCBub3J0aGJyaWRnZSBwYXJzaW5nIGZpbGxzIGluLgorCQkgICBBc3N1bWUgdGhleSBhcmUgYWxsIGluY3JlYXNlZCBieSBhIGNvbnN0YW50IG9mZnNldCwKKwkJICAgYnV0IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBIVCBub2RlaWRzLgorCQkgICBJZiB0aGF0IGRvZXNuJ3QgcmVzdWx0IGluIGEgdXNhYmxlIG5vZGUgZmFsbCBiYWNrIHRvIHRoZQorCQkgICBwYXRoIGZvciB0aGUgcHJldmlvdXMgY2FzZS4gICovCisKKwkJaW50IGh0X25vZGVpZCA9IGMtPmluaXRpYWxfYXBpY2lkOworCisJCWlmIChodF9ub2RlaWQgPj0gMCAmJgorCQkgICAgYXBpY2lkX3RvX25vZGVbaHRfbm9kZWlkXSAhPSBOVU1BX05PX05PREUpCisJCQlub2RlID0gYXBpY2lkX3RvX25vZGVbaHRfbm9kZWlkXTsKKwkJLyogUGljayBhIG5lYXJieSBub2RlICovCisJCWlmICghbm9kZV9vbmxpbmUobm9kZSkpCisJCQlub2RlID0gbmVhcmJ5X25vZGUoYXBpY2lkKTsKKwl9CisJbnVtYV9zZXRfbm9kZShjcHUsIG5vZGUpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVICVkLyV4IC0+IE5vZGUgJWRcbiIsIGNwdSwgYXBpY2lkLCBub2RlKTsKKyNlbmRpZgorI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZF9tYyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisjaWZkZWYgQ09ORklHX1NNUAorCXVuc2lnbmVkIGJpdHMsIGVjeDsKKworCS8qIE11bHRpIGNvcmUgQ1BVPyAqLworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA8IDB4ODAwMDAwMDgpCisJCXJldHVybjsKKworCWVjeCA9IGNwdWlkX2VjeCgweDgwMDAwMDA4KTsKKworCWMtPng4Nl9tYXhfY29yZXMgPSAoZWN4ICYgMHhmZikgKyAxOworCisJLyogQ1BVIHRlbGxpbmcgdXMgdGhlIGNvcmUgaWQgYml0cyBzaGlmdD8gKi8KKwliaXRzID0gKGVjeCA+PiAxMikgJiAweEY7CisKKwkvKiBPdGhlcndpc2UgcmVjb21wdXRlICovCisJaWYgKGJpdHMgPT0gMCkgeworCQl3aGlsZSAoKDEgPDwgYml0cykgPCBjLT54ODZfbWF4X2NvcmVzKQorCQkJYml0cysrOworCX0KKworCWMtPng4Nl9jb3JlaWRfYml0cyA9IGJpdHM7CisKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9hbWQoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWVhcmx5X2luaXRfYW1kX21jKGMpOworCisJLyogYy0+eDg2X3Bvd2VyIGlzIDgwMDBfMDAwNyBlZHguIEJpdCA4IGlzIGNvbnN0YW50IFRTQyAqLworCWlmIChjLT54ODZfcG93ZXIgJiAoMTw8OCkpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJdW5zaWduZWQgbGV2ZWw7CisKKyNpZmRlZiBDT05GSUdfU01QCisJdW5zaWduZWQgbG9uZyB2YWx1ZTsKKworCS8qCisJICogRGlzYWJsZSBUTEIgZmx1c2ggZmlsdGVyIGJ5IHNldHRpbmcgSFdDUi5GRkRJUyBvbiBLOAorCSAqIGJpdCA2IG9mIG1zciBDMDAxXzAwMTUKKwkgKgorCSAqIEVycmF0YSA2MyBmb3IgU0gtQjMgc3RlcHBpbmdzCisJICogRXJyYXRhIDEyMiBmb3IgYWxsIHN0ZXBwaW5ncyAoRisgaGF2ZSBpdCBkaXNhYmxlZCBieSBkZWZhdWx0KQorCSAqLworCWlmIChjLT54ODYgPT0gMHhmKSB7CisJCXJkbXNybChNU1JfSzhfSFdDUiwgdmFsdWUpOworCQl2YWx1ZSB8PSAxIDw8IDY7CisJCXdybXNybChNU1JfSzhfSFdDUiwgdmFsdWUpOworCX0KKyNlbmRpZgorCisJLyogQml0IDMxIGluIG5vcm1hbCBDUFVJRCB1c2VkIGZvciBub25zdGFuZGFyZCAzRE5vdyBJRDsKKwkgICAzRE5vdyBpcyBJRGQgYnkgYml0IDMxIGluIGV4dGVuZGVkIENQVUlEICgxKjMyKzMxKSBhbnl3YXkgKi8KKwljbGVhcl9jcHVfY2FwKGMsIDAqMzIrMzEpOworCisJLyogT24gQysgc3RlcHBpbmcgSzggcmVwIG1pY3JvY29kZSB3b3JrcyB3ZWxsIGZvciBjb3B5L21lbXNldCAqLworCWlmIChjLT54ODYgPT0gMHhmKSB7CisJCWxldmVsID0gY3B1aWRfZWF4KDEpOworCQlpZigobGV2ZWwgPj0gMHgwZjQ4ICYmIGxldmVsIDwgMHgwZjUwKSB8fCBsZXZlbCA+PSAweDBmNTgpCisJCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7CisJfQorCWlmIChjLT54ODYgPT0gMHgxMCB8fCBjLT54ODYgPT0gMHgxMSkKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOworCisJLyogRW5hYmxlIHdvcmthcm91bmQgZm9yIEZYU0FWRSBsZWFrICovCisJaWYgKGMtPng4NiA+PSA2KQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9GWFNBVkVfTEVBSyk7CisKKwlsZXZlbCA9IGdldF9tb2RlbF9uYW1lKGMpOworCWlmICghbGV2ZWwpIHsKKwkJc3dpdGNoIChjLT54ODYpIHsKKwkJY2FzZSAweGY6CisJCQkvKiBTaG91bGQgZGlzdGluZ3Vpc2ggTW9kZWxzIGhlcmUsIGJ1dCB0aGlzIGlzIG9ubHkKKwkJCSAgIGEgZmFsbGJhY2sgYW55d2F5cy4gKi8KKwkJCXN0cmNweShjLT54ODZfbW9kZWxfaWQsICJIYW1tZXIiKTsKKwkJCWJyZWFrOworCQl9CisJfQorCWRpc3BsYXlfY2FjaGVpbmZvKGMpOworCisJLyogTXVsdGkgY29yZSBDUFU/ICovCisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDgpCisJCWFtZF9kZXRlY3RfY21wKGMpOworCisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDYgJiYKKwkJKGNwdWlkX2VkeCgweDgwMDAwMDA2KSAmIDB4ZjAwMCkpCisJCW51bV9jYWNoZV9sZWF2ZXMgPSA0OworCWVsc2UKKwkJbnVtX2NhY2hlX2xlYXZlcyA9IDM7CisKKwlpZiAoYy0+eDg2ID49IDB4ZiAmJiBjLT54ODYgPD0gMHgxMSkKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfSzgpOworCisJLyogTUZFTkNFIHN0b3BzIFJEVFNDIHNwZWN1bGF0aW9uICovCisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfTUZFTkNFX1JEVFNDKTsKKworCWlmIChjLT54ODYgPT0gMHgxMCkgeworCQkvKiBkbyB0aGlzIGZvciBib290IGNwdSAqLworCQlpZiAoYyA9PSAmYm9vdF9jcHVfZGF0YSkKKwkJCWNoZWNrX2VuYWJsZV9hbWRfbW1jb25mX2RtaSgpOworCisJCWZhbTEwaF9jaGVja19lbmFibGVfbW1jZmcoKTsKKwl9CisKKwlpZiAoYyA9PSAmYm9vdF9jcHVfZGF0YSAmJiBjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKSB7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2VnOworCisJCS8qCisJCSAqIFNwbGl0IHVwIGRpcmVjdCBtYXBwaW5nIGFyb3VuZCB0aGUgVFNFRyBTTU0gYXJlYS4KKwkJICogRG9uJ3QgZG8gaXQgZm9yIGdicGFnZXMgYmVjYXVzZSB0aGVyZSBzZWVtcyB2ZXJ5IGxpdHRsZQorCQkgKiBiZW5lZml0IGluIGRvaW5nIHNvLgorCQkgKi8KKwkJaWYgKCFyZG1zcmxfc2FmZShNU1JfSzhfVFNFR19BRERSLCAmdHNlZykpIHsKKwkJICAgIHByaW50ayhLRVJOX0RFQlVHICJ0c2VnOiAlMDEwbGx4XG4iLCB0c2VnKTsKKwkJICAgIGlmICgodHNlZz4+UE1EX1NISUZUKSA8CisJCQkJKG1heF9sb3dfcGZuX21hcHBlZD4+KFBNRF9TSElGVC1QQUdFX1NISUZUKSkgfHwKKwkJCSgodHNlZz4+UE1EX1NISUZUKSA8CisJCQkJKG1heF9wZm5fbWFwcGVkPj4oUE1EX1NISUZULVBBR0VfU0hJRlQpKSAmJgorCQkJICh0c2VnPj5QTURfU0hJRlQpID49ICgxVUxMPDwoMzIgLSBQTURfU0hJRlQpKSkpCisJCQlzZXRfbWVtb3J5XzRrKCh1bnNpZ25lZCBsb25nKV9fdmEodHNlZyksIDEpOworCQl9CisJfQorfQorCitzdGF0aWMgc3RydWN0IGNwdV9kZXYgYW1kX2NwdV9kZXYgX19jcHVpbml0ZGF0YSA9IHsKKwkuY192ZW5kb3IJPSAiQU1EIiwKKwkuY19pZGVudAk9IHsgIkF1dGhlbnRpY0FNRCIgfSwKKwkuY19lYXJseV9pbml0ICAgPSBlYXJseV9pbml0X2FtZCwKKwkuY19pbml0CQk9IGluaXRfYW1kLAorfTsKKworY3B1X3ZlbmRvcl9kZXZfcmVnaXN0ZXIoWDg2X1ZFTkRPUl9BTUQsICZhbWRfY3B1X2Rldik7CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMKaW5kZXggMTcwZDJmNS4uMWIxYzU2YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMKQEAgLTU5LDggKzU5LDEyIEBACiAJCXJldHVybjsKIAl9CiAKLS8qIHRyYXBfaW5pdCgpIGVuYWJsZWQgRlhTUiBhbmQgY29tcGFueSBfYmVmb3JlXyB0ZXN0aW5nIGZvciBGUCBwcm9ibGVtcyBoZXJlLiAqLwotCS8qIFRlc3QgZm9yIHRoZSBkaXZsIGJ1Zy4uICovCisJLyoKKwkgKiB0cmFwX2luaXQoKSBlbmFibGVkIEZYU1IgYW5kIGNvbXBhbnkgX2JlZm9yZV8gdGVzdGluZyBmb3IgRlAKKwkgKiBwcm9ibGVtcyBoZXJlLgorCSAqCisJICogVGVzdCBmb3IgdGhlIGRpdmwgYnVnLi4KKwkgKi8KIAlfX2FzbV9fKCJmbmluaXRcblx0IgogCQkiZmxkbCAlMVxuXHQiCiAJCSJmZGl2bCAlMlxuXHQiCkBAIC0xMDgsMTAgKzExMiwxNSBAQAogCSAgIm1vdmwgJDEyMzQ1Njc4LCUlZWF4OyBtb3ZsICQwLCUlZWRpOyBwdXNoYTsgcG9wYTsgbW92bCAoJSVlZHgsJSVlZGkpLCUlZWN4ICIKIAkgIDogIj0mYSIgKHJlcykKIAkgIDogImQiIChpbnApCi0JICA6ICJlY3giLCAiZWRpIiApOwotCS8qIElmIHRoaXMgZmFpbHMsIGl0IG1lYW5zIHRoYXQgYW55IHVzZXIgcHJvZ3JhbSBtYXkgbG9jayB0aGUgQ1BVIGhhcmQuIFRvbyBiYWQuICovCi0JaWYgKHJlcyAhPSAxMjM0NTY3OCkgcHJpbnRrKCAiQnVnZ3kuXG4iICk7Ci0JCSAgICAgICAgZWxzZSBwcmludGsoICJPSy5cbiIgKTsKKwkgIDogImVjeCIsICJlZGkiKTsKKwkvKgorCSAqIElmIHRoaXMgZmFpbHMsIGl0IG1lYW5zIHRoYXQgYW55IHVzZXIgcHJvZ3JhbSBtYXkgbG9jayB0aGUKKwkgKiBDUFUgaGFyZC4gVG9vIGJhZC4KKwkgKi8KKwlpZiAocmVzICE9IDEyMzQ1Njc4KQorCQlwcmludGsoIkJ1Z2d5LlxuIik7CisJZWxzZQorCQlwcmludGsoIk9LLlxuIik7CiAjZW5kaWYKIH0KIApAQCAtMTM3LDcgKzE0Niw4IEBACiAgKiBpNDg2KyBvbmx5IGZlYXR1cmVzISAoV1Agd29ya3MgaW4gc3VwZXJ2aXNvciBtb2RlIGFuZCB0aGUKICAqIG5ldyAiaW52bHBnIiBhbmQgImJzd2FwIiBpbnN0cnVjdGlvbnMpCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19YODZfV1BfV09SS1NfT0spIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9JTlZMUEcpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9CU1dBUCkKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfV1BfV09SS1NfT0spIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9JTlZMUEcpIHx8IFwKKwlkZWZpbmVkKENPTkZJR19YODZfQlNXQVApCiAJaWYgKGJvb3RfY3B1X2RhdGEueDg2ID09IDMpCiAJCXBhbmljKCJLZXJuZWwgcmVxdWlyZXMgaTQ4NisgZm9yICdpbnZscGcnIGFuZCBvdGhlciBmZWF0dXJlcyIpOwogI2VuZGlmCkBAIC0xNzAsNiArMTgwLDcgQEAKIAljaGVja19mcHUoKTsKIAljaGVja19obHQoKTsKIAljaGVja19wb3BhZCgpOwotCWluaXRfdXRzbmFtZSgpLT5tYWNoaW5lWzFdID0gJzAnICsgKGJvb3RfY3B1X2RhdGEueDg2ID4gNiA/IDYgOiBib290X2NwdV9kYXRhLng4Nik7CisJaW5pdF91dHNuYW1lKCktPm1hY2hpbmVbMV0gPQorCQknMCcgKyAoYm9vdF9jcHVfZGF0YS54ODYgPiA2ID8gNiA6IGJvb3RfY3B1X2RhdGEueDg2KTsKIAlhbHRlcm5hdGl2ZV9pbnN0cnVjdGlvbnMoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9idWdzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3NfNjQuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gYXJjaC94ODYva2VybmVsL2J1Z3NfNjQuYwpyZW5hbWUgdG8gYXJjaC94ODYva2VybmVsL2NwdS9idWdzXzY0LmMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY2VudGF1cl82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jZW50YXVyXzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQxODFjNAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY2VudGF1cl82NC5jCkBAIC0wLDAgKzEsMzUgQEAKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKworI2luY2x1ZGUgImNwdS5oIgorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9jZW50YXVyKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlpZiAoYy0+eDg2ID09IDB4NiAmJiBjLT54ODZfbW9kZWwgPj0gMHhmKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOworCisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfU1lTRU5URVIzMik7Cit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpIHsKKwkJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemUgKiAyOworCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOworCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7CisJfQorCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3B1X2RldiBjZW50YXVyX2NwdV9kZXYgX19jcHVpbml0ZGF0YSA9IHsKKwkuY192ZW5kb3IJPSAiQ2VudGF1ciIsCisJLmNfaWRlbnQJPSB7ICJDZW50YXVySGF1bHMiIH0sCisJLmNfZWFybHlfaW5pdAk9IGVhcmx5X2luaXRfY2VudGF1ciwKKwkuY19pbml0CQk9IGluaXRfY2VudGF1ciwKK307CisKK2NwdV92ZW5kb3JfZGV2X3JlZ2lzdGVyKFg4Nl9WRU5ET1JfQ0VOVEFVUiwgJmNlbnRhdXJfY3B1X2Rldik7CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCmluZGV4IGQwNDYzYTkuLjgwYWIyMGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwpAQCAtNDI3LDcgKzQyNyw3IEBACiAvKgogICogVGhpcyBkb2VzIHRoZSBoYXJkIHdvcmsgb2YgYWN0dWFsbHkgcGlja2luZyBhcGFydCB0aGUgQ1BVIHN0dWZmLi4uCiAgKi8KLXZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIHsKIAlpbnQgaTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb25fNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uXzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I4Y2M3MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uXzY0LmMKQEAgLTAsMCArMSw2ODEgQEAKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2dkYi5oPgorI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL2kzODcuaD4KKyNpbmNsdWRlIDxhc20vbXNyLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CisjaW5jbHVkZSA8YXNtL210cnIuaD4KKyNpbmNsdWRlIDxhc20vbWNlLmg+CisjaW5jbHVkZSA8YXNtL3BhdC5oPgorI2luY2x1ZGUgPGFzbS9udW1hLmg+CisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8bWFjaF9hcGljLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxhc20vcGRhLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KKworI2luY2x1ZGUgImNwdS5oIgorCisvKiBXZSBuZWVkIHZhbGlkIGtlcm5lbCBzZWdtZW50cyBmb3IgZGF0YSBhbmQgY29kZSBpbiBsb25nIG1vZGUgdG9vCisgKiBJUkVUIHdpbGwgY2hlY2sgdGhlIHNlZ21lbnQgdHlwZXMgIGtrZWlsIDIwMDAvMTAvMjgKKyAqIEFsc28gc3lzcmV0IG1hbmRhdGVzIGEgc3BlY2lhbCBHRFQgbGF5b3V0CisgKi8KKy8qIFRoZSBUTFMgZGVzY3JpcHRvcnMgYXJlIGN1cnJlbnRseSBhdCBhIGRpZmZlcmVudCBwbGFjZSBjb21wYXJlZCB0byBpMzg2LgorICAgSG9wZWZ1bGx5IG5vYm9keSBleHBlY3RzIHRoZW0gYXQgYSBmaXhlZCBwbGFjZSAoV2luZT8pICovCitERUZJTkVfUEVSX0NQVShzdHJ1Y3QgZ2R0X3BhZ2UsIGdkdF9wYWdlKSA9IHsgLmdkdCA9IHsKKwlbR0RUX0VOVFJZX0tFUk5FTDMyX0NTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBjZjliMDAgfSB9IH0sCisJW0dEVF9FTlRSWV9LRVJORUxfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGFmOWIwMCB9IH0gfSwKKwlbR0RUX0VOVFJZX0tFUk5FTF9EU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwY2Y5MzAwIH0gfSB9LAorCVtHRFRfRU5UUllfREVGQVVMVF9VU0VSMzJfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGNmZmIwMCB9IH0gfSwKKwlbR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwY2ZmMzAwIH0gfSB9LAorCVtHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBhZmZiMDAgfSB9IH0sCit9IH07CitFWFBPUlRfUEVSX0NQVV9TWU1CT0xfR1BMKGdkdF9wYWdlKTsKKworX191MzIgY2xlYXJlZF9jcHVfY2Fwc1tOQ0FQSU5UU10gX19jcHVpbml0ZGF0YTsKKworLyogQ3VycmVudCBnZHQgcG9pbnRzICVmcyBhdCB0aGUgIm1hc3RlciIgcGVyLWNwdSBhcmVhOiBhZnRlciB0aGlzLAorICogaXQncyBvbiB0aGUgcmVhbCBvbmUuICovCit2b2lkIHN3aXRjaF90b19uZXdfZ2R0KHZvaWQpCit7CisJc3RydWN0IGRlc2NfcHRyIGdkdF9kZXNjcjsKKworCWdkdF9kZXNjci5hZGRyZXNzID0gKGxvbmcpZ2V0X2NwdV9nZHRfdGFibGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwlnZHRfZGVzY3Iuc2l6ZSA9IEdEVF9TSVpFIC0gMTsKKwlsb2FkX2dkdCgmZ2R0X2Rlc2NyKTsKK30KKworc3RydWN0IGNwdV9kZXYgKmNwdV9kZXZzW1g4Nl9WRU5ET1JfTlVNXSA9IHt9OworCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZGVmYXVsdF9pbml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlkaXNwbGF5X2NhY2hlaW5mbyhjKTsKK30KKworc3RhdGljIHN0cnVjdCBjcHVfZGV2IF9fY3B1aW5pdGRhdGEgZGVmYXVsdF9jcHUgPSB7CisJLmNfaW5pdAk9IGRlZmF1bHRfaW5pdCwKKwkuY192ZW5kb3IgPSAiVW5rbm93biIsCit9Oworc3RhdGljIHN0cnVjdCBjcHVfZGV2ICp0aGlzX2NwdSBfX2NwdWluaXRkYXRhID0gJmRlZmF1bHRfY3B1OworCitpbnQgX19jcHVpbml0IGdldF9tb2RlbF9uYW1lKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBpbnQgKnY7CisKKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPCAweDgwMDAwMDA0KQorCQlyZXR1cm4gMDsKKworCXYgPSAodW5zaWduZWQgaW50ICopIGMtPng4Nl9tb2RlbF9pZDsKKwljcHVpZCgweDgwMDAwMDAyLCAmdlswXSwgJnZbMV0sICZ2WzJdLCAmdlszXSk7CisJY3B1aWQoMHg4MDAwMDAwMywgJnZbNF0sICZ2WzVdLCAmdls2XSwgJnZbN10pOworCWNwdWlkKDB4ODAwMDAwMDQsICZ2WzhdLCAmdls5XSwgJnZbMTBdLCAmdlsxMV0pOworCWMtPng4Nl9tb2RlbF9pZFs0OF0gPSAwOworCXJldHVybiAxOworfQorCisKK3ZvaWQgX19jcHVpbml0IGRpc3BsYXlfY2FjaGVpbmZvKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBpbnQgbiwgZHVtbXksIGVieCwgZWN4LCBlZHg7CisKKwluID0gYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWw7CisKKwlpZiAobiA+PSAweDgwMDAwMDA1KSB7CisJCWNwdWlkKDB4ODAwMDAwMDUsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7CisJCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDEgSSBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKSwgIgorCQkgICAgICAgIkQgY2FjaGUgJWRLICglZCBieXRlcy9saW5lKVxuIiwKKwkJICAgICAgIGVkeD4+MjQsIGVkeCYweEZGLCBlY3g+PjI0LCBlY3gmMHhGRik7CisJCWMtPng4Nl9jYWNoZV9zaXplID0gKGVjeD4+MjQpICsgKGVkeD4+MjQpOworCQkvKiBPbiBLOCBMMSBUTEIgaXMgaW5jbHVzaXZlLCBzbyBkb24ndCBjb3VudCBpdCAqLworCQljLT54ODZfdGxic2l6ZSA9IDA7CisJfQorCisJaWYgKG4gPj0gMHg4MDAwMDAwNikgeworCQljcHVpZCgweDgwMDAwMDA2LCAmZHVtbXksICZlYngsICZlY3gsICZlZHgpOworCQllY3ggPSBjcHVpZF9lY3goMHg4MDAwMDAwNik7CisJCWMtPng4Nl9jYWNoZV9zaXplID0gZWN4ID4+IDE2OworCQljLT54ODZfdGxic2l6ZSArPSAoKGVieCA+PiAxNikgJiAweGZmZikgKyAoZWJ4ICYgMHhmZmYpOworCisJCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDIgQ2FjaGU6ICVkSyAoJWQgYnl0ZXMvbGluZSlcbiIsCisJCWMtPng4Nl9jYWNoZV9zaXplLCBlY3ggJiAweEZGKTsKKwl9Cit9CisKK3ZvaWQgX19jcHVpbml0IGRldGVjdF9odChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisjaWZkZWYgQ09ORklHX1NNUAorCXUzMiBlYXgsIGVieCwgZWN4LCBlZHg7CisJaW50IGluZGV4X21zYiwgY29yZV9iaXRzOworCisJY3B1aWQoMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7CisKKworCWlmICghY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9IVCkpCisJCXJldHVybjsKKwlpZiAoY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9DTVBfTEVHQUNZKSkKKwkJZ290byBvdXQ7CisKKwlzbXBfbnVtX3NpYmxpbmdzID0gKGVieCAmIDB4ZmYwMDAwKSA+PiAxNjsKKworCWlmIChzbXBfbnVtX3NpYmxpbmdzID09IDEpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogSHlwZXItVGhyZWFkaW5nIGlzIGRpc2FibGVkXG4iKTsKKwl9IGVsc2UgaWYgKHNtcF9udW1fc2libGluZ3MgPiAxKSB7CisKKwkJaWYgKHNtcF9udW1fc2libGluZ3MgPiBOUl9DUFVTKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJDUFU6IFVuc3VwcG9ydGVkIG51bWJlciBvZiAiCisJCQkgICAgICAgInNpYmxpbmdzICVkIiwgc21wX251bV9zaWJsaW5ncyk7CisJCQlzbXBfbnVtX3NpYmxpbmdzID0gMTsKKwkJCXJldHVybjsKKwkJfQorCisJCWluZGV4X21zYiA9IGdldF9jb3VudF9vcmRlcihzbXBfbnVtX3NpYmxpbmdzKTsKKwkJYy0+cGh5c19wcm9jX2lkID0gcGh5c19wa2dfaWQoaW5kZXhfbXNiKTsKKworCQlzbXBfbnVtX3NpYmxpbmdzID0gc21wX251bV9zaWJsaW5ncyAvIGMtPng4Nl9tYXhfY29yZXM7CisKKwkJaW5kZXhfbXNiID0gZ2V0X2NvdW50X29yZGVyKHNtcF9udW1fc2libGluZ3MpOworCisJCWNvcmVfYml0cyA9IGdldF9jb3VudF9vcmRlcihjLT54ODZfbWF4X2NvcmVzKTsKKworCQljLT5jcHVfY29yZV9pZCA9IHBoeXNfcGtnX2lkKGluZGV4X21zYikgJgorCQkJCQkgICAgICAgKCgxIDw8IGNvcmVfYml0cykgLSAxKTsKKwl9CitvdXQ6CisJaWYgKChjLT54ODZfbWF4X2NvcmVzICogc21wX251bV9zaWJsaW5ncykgPiAxKSB7CisJCXByaW50ayhLRVJOX0lORk8gICJDUFU6IFBoeXNpY2FsIFByb2Nlc3NvciBJRDogJWRcbiIsCisJCSAgICAgICBjLT5waHlzX3Byb2NfaWQpOworCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBQcm9jZXNzb3IgQ29yZSBJRDogJWRcbiIsCisJCSAgICAgICBjLT5jcHVfY29yZV9pZCk7CisJfQorCisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGdldF9jcHVfdmVuZG9yKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwljaGFyICp2ID0gYy0+eDg2X3ZlbmRvcl9pZDsKKwlpbnQgaTsKKwlzdGF0aWMgaW50IHByaW50ZWQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgWDg2X1ZFTkRPUl9OVU07IGkrKykgeworCQlpZiAoY3B1X2RldnNbaV0pIHsKKwkJCWlmICghc3RyY21wKHYsIGNwdV9kZXZzW2ldLT5jX2lkZW50WzBdKSB8fAorCQkJICAgIChjcHVfZGV2c1tpXS0+Y19pZGVudFsxXSAmJgorCQkJICAgICFzdHJjbXAodiwgY3B1X2RldnNbaV0tPmNfaWRlbnRbMV0pKSkgeworCQkJCWMtPng4Nl92ZW5kb3IgPSBpOworCQkJCXRoaXNfY3B1ID0gY3B1X2RldnNbaV07CisJCQkJcmV0dXJuOworCQkJfQorCQl9CisJfQorCWlmICghcHJpbnRlZCkgeworCQlwcmludGVkKys7CisJCXByaW50ayhLRVJOX0VSUiAiQ1BVOiBWZW5kb3IgdW5rbm93biwgdXNpbmcgZ2VuZXJpYyBpbml0LlxuIik7CisJCXByaW50ayhLRVJOX0VSUiAiQ1BVOiBZb3VyIHN5c3RlbSBtYXkgYmUgdW5zdGFibGUuXG4iKTsKKwl9CisJYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X2NwdV9zdXBwb3J0X3ByaW50KHZvaWQpCit7CisJaW50IGksajsKKwlzdHJ1Y3QgY3B1X2RldiAqY3B1X2Rldng7CisKKwlwcmludGsoIktFUk5FTCBzdXBwb3J0ZWQgY3B1czpcbiIpOworCWZvciAoaSA9IDA7IGkgPCBYODZfVkVORE9SX05VTTsgaSsrKSB7CisJCWNwdV9kZXZ4ID0gY3B1X2RldnNbaV07CisJCWlmICghY3B1X2RldngpCisJCQljb250aW51ZTsKKwkJZm9yIChqID0gMDsgaiA8IDI7IGorKykgeworCQkJaWYgKCFjcHVfZGV2eC0+Y19pZGVudFtqXSkKKwkJCQljb250aW51ZTsKKwkJCXByaW50aygiICAlcyAlc1xuIiwgY3B1X2RldngtPmNfdmVuZG9yLAorCQkJCWNwdV9kZXZ4LT5jX2lkZW50W2pdKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2lkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOworCit2b2lkIF9faW5pdCBlYXJseV9jcHVfaW5pdCh2b2lkKQoreworICAgICAgICBzdHJ1Y3QgY3B1X3ZlbmRvcl9kZXYgKmN2ZGV2OworCisgICAgICAgIGZvciAoY3ZkZXYgPSBfX3g4NmNwdXZlbmRvcl9zdGFydCA7CisgICAgICAgICAgICAgY3ZkZXYgPCBfX3g4NmNwdXZlbmRvcl9lbmQgICA7CisgICAgICAgICAgICAgY3ZkZXYrKykKKyAgICAgICAgICAgICAgICBjcHVfZGV2c1tjdmRldi0+dmVuZG9yXSA9IGN2ZGV2LT5jcHVfZGV2OworCWVhcmx5X2NwdV9zdXBwb3J0X3ByaW50KCk7CisJZWFybHlfaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKK30KKworLyogRG8gc29tZSBlYXJseSBjcHVpZCBvbiB0aGUgYm9vdCBDUFUgdG8gZ2V0IHNvbWUgcGFyYW1ldGVyIHRoYXQgYXJlCisgICBuZWVkZWQgYmVmb3JlIGNoZWNrX2J1Z3MuIEV2ZXJ5dGhpbmcgYWR2YW5jZWQgaXMgaW4gaWRlbnRpZnlfY3B1CisgICBiZWxvdy4gKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXUzMiB0Zm1zLCB4bHZsOworCisJYy0+bG9vcHNfcGVyX2ppZmZ5ID0gbG9vcHNfcGVyX2ppZmZ5OworCWMtPng4Nl9jYWNoZV9zaXplID0gLTE7CisJYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKKwljLT54ODZfbW9kZWwgPSBjLT54ODZfbWFzayA9IDA7CS8qIFNvIGZhciB1bmtub3duLi4uICovCisJYy0+eDg2X3ZlbmRvcl9pZFswXSA9ICdcMCc7IC8qIFVuc2V0ICovCisJYy0+eDg2X21vZGVsX2lkWzBdID0gJ1wwJzsgIC8qIFVuc2V0ICovCisJYy0+eDg2X2NsZmx1c2hfc2l6ZSA9IDY0OworCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplOworCWMtPng4Nl9tYXhfY29yZXMgPSAxOworCWMtPng4Nl9jb3JlaWRfYml0cyA9IDA7CisJYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSAwOworCW1lbXNldCgmYy0+eDg2X2NhcGFiaWxpdHksIDAsIHNpemVvZiBjLT54ODZfY2FwYWJpbGl0eSk7CisKKwkvKiBHZXQgdmVuZG9yIG5hbWUgKi8KKwljcHVpZCgweDAwMDAwMDAwLCAodW5zaWduZWQgaW50ICopJmMtPmNwdWlkX2xldmVsLAorCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFswXSwKKwkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbOF0sCisJICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzRdKTsKKworCWdldF9jcHVfdmVuZG9yKGMpOworCisJLyogSW5pdGlhbGl6ZSB0aGUgc3RhbmRhcmQgc2V0IG9mIGNhcGFiaWxpdGllcyAqLworCS8qIE5vdGUgdGhhdCB0aGUgdmVuZG9yLXNwZWNpZmljIGNvZGUgYmVsb3cgbWlnaHQgb3ZlcnJpZGUgKi8KKworCS8qIEludGVsLWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4MDAwMDAwMDEgKi8KKwlpZiAoYy0+Y3B1aWRfbGV2ZWwgPj0gMHgwMDAwMDAwMSkgeworCQlfX3UzMiBtaXNjOworCQljcHVpZCgweDAwMDAwMDAxLCAmdGZtcywgJm1pc2MsICZjLT54ODZfY2FwYWJpbGl0eVs0XSwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5WzBdKTsKKwkJYy0+eDg2ID0gKHRmbXMgPj4gOCkgJiAweGY7CisJCWMtPng4Nl9tb2RlbCA9ICh0Zm1zID4+IDQpICYgMHhmOworCQljLT54ODZfbWFzayA9IHRmbXMgJiAweGY7CisJCWlmIChjLT54ODYgPT0gMHhmKQorCQkJYy0+eDg2ICs9ICh0Zm1zID4+IDIwKSAmIDB4ZmY7CisJCWlmIChjLT54ODYgPj0gMHg2KQorCQkJYy0+eDg2X21vZGVsICs9ICgodGZtcyA+PiAxNikgJiAweEYpIDw8IDQ7CisJCWlmICh0ZXN0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ0xGTFNIKSkKKwkJCWMtPng4Nl9jbGZsdXNoX3NpemUgPSAoKG1pc2MgPj4gOCkgJiAweGZmKSAqIDg7CisJfSBlbHNlIHsKKwkJLyogSGF2ZSBDUFVJRCBsZXZlbCAwIG9ubHkgLSB1bmhlYXJkIG9mICovCisJCWMtPng4NiA9IDQ7CisJfQorCisJYy0+aW5pdGlhbF9hcGljaWQgPSAoY3B1aWRfZWJ4KDEpID4+IDI0KSAmIDB4ZmY7CisjaWZkZWYgQ09ORklHX1NNUAorCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkOworI2VuZGlmCisJLyogQU1ELWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4ODAwMDAwMDEgKi8KKwl4bHZsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOworCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0geGx2bDsKKwlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwMDAwMDAwKSB7CisJCWlmICh4bHZsID49IDB4ODAwMDAwMDEpIHsKKwkJCWMtPng4Nl9jYXBhYmlsaXR5WzFdID0gY3B1aWRfZWR4KDB4ODAwMDAwMDEpOworCQkJYy0+eDg2X2NhcGFiaWxpdHlbNl0gPSBjcHVpZF9lY3goMHg4MDAwMDAwMSk7CisJCX0KKwkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwNCkKKwkJCWdldF9tb2RlbF9uYW1lKGMpOyAvKiBEZWZhdWx0IG5hbWUgKi8KKwl9CisKKwkvKiBUcmFuc21ldGEtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDg2MDAwMSAqLworCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDg2MDAwMCk7CisJaWYgKCh4bHZsICYgMHhmZmZmMDAwMCkgPT0gMHg4MDg2MDAwMCkgeworCQkvKiBEb24ndCBzZXQgeDg2X2NwdWlkX2xldmVsIGhlcmUgZm9yIG5vdyB0byBub3QgY29uZnVzZS4gKi8KKwkJaWYgKHhsdmwgPj0gMHg4MDg2MDAwMSkKKwkJCWMtPng4Nl9jYXBhYmlsaXR5WzJdID0gY3B1aWRfZWR4KDB4ODA4NjAwMDEpOworCX0KKworCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA3KQorCQljLT54ODZfcG93ZXIgPSBjcHVpZF9lZHgoMHg4MDAwMDAwNyk7CisKKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkgeworCQl1MzIgZWF4ID0gY3B1aWRfZWF4KDB4ODAwMDAwMDgpOworCisJCWMtPng4Nl92aXJ0X2JpdHMgPSAoZWF4ID4+IDgpICYgMHhmZjsKKwkJYy0+eDg2X3BoeXNfYml0cyA9IGVheCAmIDB4ZmY7CisJfQorCisJLyogQXNzdW1lIGFsbCA2NC1iaXQgQ1BVcyBzdXBwb3J0IDMyLWJpdCBzeXNjYWxsICovCisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfU1lTQ0FMTDMyKTsKKworCWlmIChjLT54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfVU5LTk9XTiAmJgorCSAgICBjcHVfZGV2c1tjLT54ODZfdmVuZG9yXS0+Y19lYXJseV9pbml0KQorCQljcHVfZGV2c1tjLT54ODZfdmVuZG9yXS0+Y19lYXJseV9pbml0KGMpOworCisJdmFsaWRhdGVfcGF0X3N1cHBvcnQoYyk7CisKKwkvKiBlYXJseV9wYXJhbSBjb3VsZCBjbGVhciB0aGF0LCBidXQgcmVjYWxsIGdldCBpdCBzZXQgYWdhaW4gKi8KKwlpZiAoZGlzYWJsZV9hcGljKQorCQljbGVhcl9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0FQSUMpOworfQorCisvKgorICogVGhpcyBkb2VzIHRoZSBoYXJkIHdvcmsgb2YgYWN0dWFsbHkgcGlja2luZyBhcGFydCB0aGUgQ1BVIHN0dWZmLi4uCisgKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWludCBpOworCisJZWFybHlfaWRlbnRpZnlfY3B1KGMpOworCisJaW5pdF9zY2F0dGVyZWRfY3B1aWRfZmVhdHVyZXMoYyk7CisKKwljLT5hcGljaWQgPSBwaHlzX3BrZ19pZCgwKTsKKworCS8qCisJICogVmVuZG9yLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLiAgSW4gdGhpcyBzZWN0aW9uIHdlCisJICogY2Fub25pY2FsaXplIHRoZSBmZWF0dXJlIGZsYWdzLCBtZWFuaW5nIGlmIHRoZXJlIGFyZQorCSAqIGZlYXR1cmVzIGEgY2VydGFpbiBDUFUgc3VwcG9ydHMgd2hpY2ggQ1BVSUQgZG9lc24ndAorCSAqIHRlbGwgdXMsIENQVUlEIGNsYWltaW5nIGluY29ycmVjdCBmbGFncywgb3Igb3RoZXIgYnVncywKKwkgKiB3ZSBoYW5kbGUgdGhlbSBoZXJlLgorCSAqCisJICogQXQgdGhlIGVuZCBvZiB0aGlzIHNlY3Rpb24sIGMtPng4Nl9jYXBhYmlsaXR5IGJldHRlcgorCSAqIGluZGljYXRlIHRoZSBmZWF0dXJlcyB0aGlzIENQVSBnZW51aW5lbHkgc3VwcG9ydHMhCisJICovCisJaWYgKHRoaXNfY3B1LT5jX2luaXQpCisJCXRoaXNfY3B1LT5jX2luaXQoYyk7CisKKwlkZXRlY3RfaHQoYyk7CisKKwkvKgorCSAqIE9uIFNNUCwgYm9vdF9jcHVfZGF0YSBob2xkcyB0aGUgY29tbW9uIGZlYXR1cmUgc2V0IGJldHdlZW4KKwkgKiBhbGwgQ1BVczsgc28gbWFrZSBzdXJlIHRoYXQgd2UgaW5kaWNhdGUgd2hpY2ggZmVhdHVyZXMgYXJlCisJICogY29tbW9uIGJldHdlZW4gdGhlIENQVXMuICBUaGUgZmlyc3QgdGltZSB0aGlzIHJvdXRpbmUgZ2V0cworCSAqIGV4ZWN1dGVkLCBjID09ICZib290X2NwdV9kYXRhLgorCSAqLworCWlmIChjICE9ICZib290X2NwdV9kYXRhKSB7CisJCS8qIEFORCB0aGUgYWxyZWFkeSBhY2N1bXVsYXRlZCBmbGFncyB3aXRoIHRoZXNlICovCisJCWZvciAoaSA9IDA7IGkgPCBOQ0FQSU5UUzsgaSsrKQorCQkJYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eVtpXSAmPSBjLT54ODZfY2FwYWJpbGl0eVtpXTsKKwl9CisKKwkvKiBDbGVhciBhbGwgZmxhZ3Mgb3ZlcnJpZGVuIGJ5IG9wdGlvbnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgTkNBUElOVFM7IGkrKykKKwkJYy0+eDg2X2NhcGFiaWxpdHlbaV0gJj0gfmNsZWFyZWRfY3B1X2NhcHNbaV07CisKKyNpZmRlZiBDT05GSUdfWDg2X01DRQorCW1jaGVja19pbml0KGMpOworI2VuZGlmCisJc2VsZWN0X2lkbGVfcm91dGluZShjKTsKKworI2lmZGVmIENPTkZJR19OVU1BCisJbnVtYV9hZGRfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSk7CisjZW5kaWYKKworfQorCit2b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9ib290X2NwdSh2b2lkKQoreworCWlkZW50aWZ5X2NwdSgmYm9vdF9jcHVfZGF0YSk7Cit9CisKK3ZvaWQgX19jcHVpbml0IGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCUJVR19PTihjID09ICZib290X2NwdV9kYXRhKTsKKwlpZGVudGlmeV9jcHUoYyk7CisJbXRycl9hcF9pbml0KCk7Cit9CisKK3N0YXRpYyBfX2luaXQgaW50IHNldHVwX25vY2xmbHVzaChjaGFyICphcmcpCit7CisJc2V0dXBfY2xlYXJfY3B1X2NhcChYODZfRkVBVFVSRV9DTEZMU0gpOworCXJldHVybiAxOworfQorX19zZXR1cCgibm9jbGZsdXNoIiwgc2V0dXBfbm9jbGZsdXNoKTsKKwordm9pZCBfX2NwdWluaXQgcHJpbnRfY3B1X2luZm8oc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWlmIChjLT54ODZfbW9kZWxfaWRbMF0pCisJCXByaW50ayhLRVJOX0NPTlQgIiVzIiwgYy0+eDg2X21vZGVsX2lkKTsKKworCWlmIChjLT54ODZfbWFzayB8fCBjLT5jcHVpZF9sZXZlbCA+PSAwKQorCQlwcmludGsoS0VSTl9DT05UICIgc3RlcHBpbmcgJTAyeFxuIiwgYy0+eDg2X21hc2spOworCWVsc2UKKwkJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKK30KKworc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfZGlzYWJsZWNwdWlkKGNoYXIgKmFyZykKK3sKKwlpbnQgYml0OworCWlmIChnZXRfb3B0aW9uKCZhcmcsICZiaXQpICYmIGJpdCA8IE5DQVBJTlRTKjMyKQorCQlzZXR1cF9jbGVhcl9jcHVfY2FwKGJpdCk7CisJZWxzZQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoImNsZWFyY3B1aWQ9Iiwgc2V0dXBfZGlzYWJsZWNwdWlkKTsKKworY3B1bWFza190IGNwdV9pbml0aWFsaXplZCBfX2NwdWluaXRkYXRhID0gQ1BVX01BU0tfTk9ORTsKKworc3RydWN0IHg4NjY0X3BkYSAqKl9jcHVfcGRhIF9fcmVhZF9tb3N0bHk7CitFWFBPUlRfU1lNQk9MKF9jcHVfcGRhKTsKKworc3RydWN0IGRlc2NfcHRyIGlkdF9kZXNjciA9IHsgMjU2ICogMTYgLSAxLCAodW5zaWduZWQgbG9uZykgaWR0X3RhYmxlIH07CisKK2NoYXIgYm9vdF9jcHVfc3RhY2tbSVJRU1RBQ0tTSVpFXSBfX3BhZ2VfYWxpZ25lZF9ic3M7CisKK3Vuc2lnbmVkIGxvbmcgX19zdXBwb3J0ZWRfcHRlX21hc2sgX19yZWFkX21vc3RseSA9IH4wVUw7CitFWFBPUlRfU1lNQk9MX0dQTChfX3N1cHBvcnRlZF9wdGVfbWFzayk7CisKK3N0YXRpYyBpbnQgZG9fbm90X254IF9fY3B1aW5pdGRhdGE7CisKKy8qIG5vZXhlYz1vbnxvZmYKK0NvbnRyb2wgbm9uIGV4ZWN1dGFibGUgbWFwcGluZ3MgZm9yIDY0Yml0IHByb2Nlc3Nlcy4KKworb24JRW5hYmxlKGRlZmF1bHQpCitvZmYJRGlzYWJsZQorKi8KK3N0YXRpYyBpbnQgX19pbml0IG5vbnhfc2V0dXAoY2hhciAqc3RyKQoreworCWlmICghc3RyKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIXN0cm5jbXAoc3RyLCAib24iLCAyKSkgeworCQlfX3N1cHBvcnRlZF9wdGVfbWFzayB8PSBfUEFHRV9OWDsKKwkJZG9fbm90X254ID0gMDsKKwl9IGVsc2UgaWYgKCFzdHJuY21wKHN0ciwgIm9mZiIsIDMpKSB7CisJCWRvX25vdF9ueCA9IDE7CisJCV9fc3VwcG9ydGVkX3B0ZV9tYXNrICY9IH5fUEFHRV9OWDsKKwl9CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgibm9leGVjIiwgbm9ueF9zZXR1cCk7CisKK2ludCBmb3JjZV9wZXJzb25hbGl0eTMyOworCisvKiBub2V4ZWMzMj1vbnxvZmYKK0NvbnRyb2wgbm9uIGV4ZWN1dGFibGUgaGVhcCBmb3IgMzJiaXQgcHJvY2Vzc2VzLgorVG8gY29udHJvbCB0aGUgc3RhY2sgdG9vIHVzZSBub2V4ZWM9b2ZmCisKK29uCVBST1RfUkVBRCBkb2VzIG5vdCBpbXBseSBQUk9UX0VYRUMgZm9yIDMyYml0IHByb2Nlc3NlcyAoZGVmYXVsdCkKK29mZglQUk9UX1JFQUQgaW1wbGllcyBQUk9UX0VYRUMKKyovCitzdGF0aWMgaW50IF9faW5pdCBub254MzJfc2V0dXAoY2hhciAqc3RyKQoreworCWlmICghc3RyY21wKHN0ciwgIm9uIikpCisJCWZvcmNlX3BlcnNvbmFsaXR5MzIgJj0gflJFQURfSU1QTElFU19FWEVDOworCWVsc2UgaWYgKCFzdHJjbXAoc3RyLCAib2ZmIikpCisJCWZvcmNlX3BlcnNvbmFsaXR5MzIgfD0gUkVBRF9JTVBMSUVTX0VYRUM7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJub2V4ZWMzMj0iLCBub254MzJfc2V0dXApOworCit2b2lkIHBkYV9pbml0KGludCBjcHUpCit7CisJc3RydWN0IHg4NjY0X3BkYSAqcGRhID0gY3B1X3BkYShjcHUpOworCisJLyogU2V0dXAgdXAgZGF0YSB0aGF0IG1heSBiZSBuZWVkZWQgaW4gX19nZXRfZnJlZV9wYWdlcyBlYXJseSAqLworCWxvYWRzZWdtZW50KGZzLCAwKTsKKwlsb2Fkc2VnbWVudChncywgMCk7CisJLyogTWVtb3J5IGNsb2JiZXJzIHVzZWQgdG8gb3JkZXIgUERBIGFjY2Vzc2VkICovCisJbWIoKTsKKwl3cm1zcmwoTVNSX0dTX0JBU0UsIHBkYSk7CisJbWIoKTsKKworCXBkYS0+Y3B1bnVtYmVyID0gY3B1OworCXBkYS0+aXJxY291bnQgPSAtMTsKKwlwZGEtPmtlcm5lbHN0YWNrID0gKHVuc2lnbmVkIGxvbmcpc3RhY2tfdGhyZWFkX2luZm8oKSAtCisJCQkJIFBEQV9TVEFDS09GRlNFVCArIFRIUkVBRF9TSVpFOworCXBkYS0+YWN0aXZlX21tID0gJmluaXRfbW07CisJcGRhLT5tbXVfc3RhdGUgPSAwOworCisJaWYgKGNwdSA9PSAwKSB7CisJCS8qIG90aGVycyBhcmUgaW5pdGlhbGl6ZWQgaW4gc21wYm9vdC5jICovCisJCXBkYS0+cGN1cnJlbnQgPSAmaW5pdF90YXNrOworCQlwZGEtPmlycXN0YWNrcHRyID0gYm9vdF9jcHVfc3RhY2s7CisJfSBlbHNlIHsKKwkJcGRhLT5pcnFzdGFja3B0ciA9IChjaGFyICopCisJCQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMsIElSUVNUQUNLX09SREVSKTsKKwkJaWYgKCFwZGEtPmlycXN0YWNrcHRyKQorCQkJcGFuaWMoImNhbm5vdCBhbGxvY2F0ZSBpcnFzdGFjayBmb3IgY3B1ICVkIiwgY3B1KTsKKworCQlpZiAocGRhLT5ub2RlbnVtYmVyID09IDAgJiYgY3B1X3RvX25vZGUoY3B1KSAhPSBOVU1BX05PX05PREUpCisJCQlwZGEtPm5vZGVudW1iZXIgPSBjcHVfdG9fbm9kZShjcHUpOworCX0KKworCXBkYS0+aXJxc3RhY2twdHIgKz0gSVJRU1RBQ0tTSVpFLTY0OworfQorCitjaGFyIGJvb3RfZXhjZXB0aW9uX3N0YWNrc1soTl9FWENFUFRJT05fU1RBQ0tTIC0gMSkgKiBFWENFUFRJT05fU1RLU1ogKworCQkJICAgREVCVUdfU1RLU1pdCitfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgaWdub3JlX3N5c3JldCh2b2lkKTsKKworLyogTWF5IG5vdCBiZSBtYXJrZWQgX19pbml0OiB1c2VkIGJ5IHNvZnR3YXJlIHN1c3BlbmQgKi8KK3ZvaWQgc3lzY2FsbF9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBMU1RBUiBhbmQgU1RBUiBsaXZlIGluIGEgYml0IHN0cmFuZ2Ugc3ltYmlvc2lzLgorCSAqIFRoZXkgYm90aCB3cml0ZSB0byB0aGUgc2FtZSBpbnRlcm5hbCByZWdpc3Rlci4gU1RBUiBhbGxvd3MgdG8KKwkgKiBzZXQgQ1MvRFMgYnV0IG9ubHkgYSAzMmJpdCB0YXJnZXQuIExTVEFSIHNldHMgdGhlIDY0Yml0IHJpcC4KKwkgKi8KKwl3cm1zcmwoTVNSX1NUQVIsICAoKHU2NClfX1VTRVIzMl9DUyk8PDQ4ICB8ICgodTY0KV9fS0VSTkVMX0NTKTw8MzIpOworCXdybXNybChNU1JfTFNUQVIsIHN5c3RlbV9jYWxsKTsKKwl3cm1zcmwoTVNSX0NTVEFSLCBpZ25vcmVfc3lzcmV0KTsKKworI2lmZGVmIENPTkZJR19JQTMyX0VNVUxBVElPTgorCXN5c2NhbGwzMl9jcHVfaW5pdCgpOworI2VuZGlmCisKKwkvKiBGbGFncyB0byBjbGVhciBvbiBzeXNjYWxsICovCisJd3Jtc3JsKE1TUl9TWVNDQUxMX01BU0ssCisJICAgICAgIFg4Nl9FRkxBR1NfVEZ8WDg2X0VGTEFHU19ERnxYODZfRUZMQUdTX0lGfFg4Nl9FRkxBR1NfSU9QTCk7Cit9CisKK3ZvaWQgX19jcHVpbml0IGNoZWNrX2VmZXIodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGVmZXI7CisKKwlyZG1zcmwoTVNSX0VGRVIsIGVmZXIpOworCWlmICghKGVmZXIgJiBFRkVSX05YKSB8fCBkb19ub3RfbngpCisJCV9fc3VwcG9ydGVkX3B0ZV9tYXNrICY9IH5fUEFHRV9OWDsKK30KKwordW5zaWduZWQgbG9uZyBrZXJuZWxfZWZsYWdzOworCisvKgorICogQ29waWVzIG9mIHRoZSBvcmlnaW5hbCBpc3QgdmFsdWVzIGZyb20gdGhlIHRzcyBhcmUgb25seSBhY2Nlc3NlZCBkdXJpbmcKKyAqIGRlYnVnZ2luZywgbm8gc3BlY2lhbCBhbGlnbm1lbnQgcmVxdWlyZWQuCisgKi8KK0RFRklORV9QRVJfQ1BVKHN0cnVjdCBvcmlnX2lzdCwgb3JpZ19pc3QpOworCisvKgorICogY3B1X2luaXQoKSBpbml0aWFsaXplcyBzdGF0ZSB0aGF0IGlzIHBlci1DUFUuIFNvbWUgZGF0YSBpcyBhbHJlYWR5CisgKiBpbml0aWFsaXplZCAobmF0dXJhbGx5KSBpbiB0aGUgYm9vdHN0cmFwIHByb2Nlc3MsIHN1Y2ggYXMgdGhlIEdEVAorICogYW5kIElEVC4gV2UgcmVsb2FkIHRoZW0gbmV2ZXJ0aGVsZXNzLCB0aGlzIGZ1bmN0aW9uIGFjdHMgYXMgYQorICogJ0NQVSBzdGF0ZSBiYXJyaWVyJywgbm90aGluZyBzaG91bGQgZ2V0IGFjcm9zcy4KKyAqIEEgbG90IG9mIHN0YXRlIGlzIGFscmVhZHkgc2V0IHVwIGluIFBEQSBpbml0LgorICovCit2b2lkIF9fY3B1aW5pdCBjcHVfaW5pdCh2b2lkKQoreworCWludCBjcHUgPSBzdGFja19zbXBfcHJvY2Vzc29yX2lkKCk7CisJc3RydWN0IHRzc19zdHJ1Y3QgKnQgPSAmcGVyX2NwdShpbml0X3RzcywgY3B1KTsKKwlzdHJ1Y3Qgb3JpZ19pc3QgKm9yaWdfaXN0ID0gJnBlcl9jcHUob3JpZ19pc3QsIGNwdSk7CisJdW5zaWduZWQgbG9uZyB2OworCWNoYXIgKmVzdGFja3MgPSBOVUxMOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqbWU7CisJaW50IGk7CisKKwkvKiBDUFUgMCBpcyBpbml0aWFsaXNlZCBpbiBoZWFkNjQuYyAqLworCWlmIChjcHUgIT0gMCkKKwkJcGRhX2luaXQoY3B1KTsKKwllbHNlCisJCWVzdGFja3MgPSBib290X2V4Y2VwdGlvbl9zdGFja3M7CisKKwltZSA9IGN1cnJlbnQ7CisKKwlpZiAoY3B1X3Rlc3RfYW5kX3NldChjcHUsIGNwdV9pbml0aWFsaXplZCkpCisJCXBhbmljKCJDUFUjJWQgYWxyZWFkeSBpbml0aWFsaXplZCFcbiIsIGNwdSk7CisKKwlwcmludGsoS0VSTl9JTkZPICJJbml0aWFsaXppbmcgQ1BVIyVkXG4iLCBjcHUpOworCisJY2xlYXJfaW5fY3I0KFg4Nl9DUjRfVk1FfFg4Nl9DUjRfUFZJfFg4Nl9DUjRfVFNEfFg4Nl9DUjRfREUpOworCisJLyoKKwkgKiBJbml0aWFsaXplIHRoZSBwZXItQ1BVIEdEVCB3aXRoIHRoZSBib290IEdEVCwKKwkgKiBhbmQgc2V0IHVwIHRoZSBHRFQgZGVzY3JpcHRvcjoKKwkgKi8KKworCXN3aXRjaF90b19uZXdfZ2R0KCk7CisJbG9hZF9pZHQoKGNvbnN0IHN0cnVjdCBkZXNjX3B0ciAqKSZpZHRfZGVzY3IpOworCisJbWVtc2V0KG1lLT50aHJlYWQudGxzX2FycmF5LCAwLCBHRFRfRU5UUllfVExTX0VOVFJJRVMgKiA4KTsKKwlzeXNjYWxsX2luaXQoKTsKKworCXdybXNybChNU1JfRlNfQkFTRSwgMCk7CisJd3Jtc3JsKE1TUl9LRVJORUxfR1NfQkFTRSwgMCk7CisJYmFycmllcigpOworCisJY2hlY2tfZWZlcigpOworCisJLyoKKwkgKiBzZXQgdXAgYW5kIGxvYWQgdGhlIHBlci1DUFUgVFNTCisJICovCisJZm9yICh2ID0gMDsgdiA8IE5fRVhDRVBUSU9OX1NUQUNLUzsgdisrKSB7CisJCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgb3JkZXJbTl9FWENFUFRJT05fU1RBQ0tTXSA9IHsKKwkJCVswIC4uLiBOX0VYQ0VQVElPTl9TVEFDS1MgLSAxXSA9IEVYQ0VQVElPTl9TVEFDS19PUkRFUiwKKwkJCVtERUJVR19TVEFDSyAtIDFdID0gREVCVUdfU1RBQ0tfT1JERVIKKwkJfTsKKwkJaWYgKGNwdSkgeworCQkJZXN0YWNrcyA9IChjaGFyICopX19nZXRfZnJlZV9wYWdlcyhHRlBfQVRPTUlDLCBvcmRlclt2XSk7CisJCQlpZiAoIWVzdGFja3MpCisJCQkJcGFuaWMoIkNhbm5vdCBhbGxvY2F0ZSBleGNlcHRpb24gc3RhY2sgJWxkICVkXG4iLAorCQkJCSAgICAgIHYsIGNwdSk7CisJCX0KKwkJZXN0YWNrcyArPSBQQUdFX1NJWkUgPDwgb3JkZXJbdl07CisJCW9yaWdfaXN0LT5pc3Rbdl0gPSB0LT54ODZfdHNzLmlzdFt2XSA9ICh1bnNpZ25lZCBsb25nKWVzdGFja3M7CisJfQorCisJdC0+eDg2X3Rzcy5pb19iaXRtYXBfYmFzZSA9IG9mZnNldG9mKHN0cnVjdCB0c3Nfc3RydWN0LCBpb19iaXRtYXApOworCS8qCisJICogPD0gaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUgQ1BVIHdpbGwgYWNjZXNzIHVwIHRvCisJICogOCBiaXRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBJTyBwZXJtaXNzaW9uIGJpdG1hcC4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDw9IElPX0JJVE1BUF9MT05HUzsgaSsrKQorCQl0LT5pb19iaXRtYXBbaV0gPSB+MFVMOworCisJYXRvbWljX2luYygmaW5pdF9tbS5tbV9jb3VudCk7CisJbWUtPmFjdGl2ZV9tbSA9ICZpbml0X21tOworCWlmIChtZS0+bW0pCisJCUJVRygpOworCWVudGVyX2xhenlfdGxiKCZpbml0X21tLCBtZSk7CisKKwlsb2FkX3NwMCh0LCAmY3VycmVudC0+dGhyZWFkKTsKKwlzZXRfdHNzX2Rlc2MoY3B1LCB0KTsKKwlsb2FkX1RSX2Rlc2MoKTsKKwlsb2FkX0xEVCgmaW5pdF9tbS5jb250ZXh0KTsKKworI2lmZGVmIENPTkZJR19LR0RCCisJLyoKKwkgKiBJZiB0aGUga2dkYiBpcyBjb25uZWN0ZWQgbm8gZGVidWcgcmVncyBzaG91bGQgYmUgYWx0ZXJlZC4gIFRoaXMKKwkgKiBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiBLR0RCIGFuZCBhIEtHREIgSS9PIG1vZHVsZSBhcmUgYnVpbHQKKwkgKiBpbnRvIHRoZSBrZXJuZWwgYW5kIHlvdSBhcmUgdXNpbmcgZWFybHkgZGVidWdnaW5nIHdpdGgKKwkgKiBrZ2Rid2FpdC4gS0dEQiB3aWxsIGNvbnRyb2wgdGhlIGtlcm5lbCBIVyBicmVha3BvaW50IHJlZ2lzdGVycy4KKwkgKi8KKwlpZiAoa2dkYl9jb25uZWN0ZWQgJiYgYXJjaF9rZ2RiX29wcy5jb3JyZWN0X2h3X2JyZWFrKQorCQlhcmNoX2tnZGJfb3BzLmNvcnJlY3RfaHdfYnJlYWsoKTsKKwllbHNlIHsKKyNlbmRpZgorCS8qCisJICogQ2xlYXIgYWxsIDYgZGVidWcgcmVnaXN0ZXJzOgorCSAqLworCisJc2V0X2RlYnVncmVnKDBVTCwgMCk7CisJc2V0X2RlYnVncmVnKDBVTCwgMSk7CisJc2V0X2RlYnVncmVnKDBVTCwgMik7CisJc2V0X2RlYnVncmVnKDBVTCwgMyk7CisJc2V0X2RlYnVncmVnKDBVTCwgNik7CisJc2V0X2RlYnVncmVnKDBVTCwgNyk7CisjaWZkZWYgQ09ORklHX0tHREIKKwkvKiBJZiB0aGUga2dkYiBpcyBjb25uZWN0ZWQgbm8gZGVidWcgcmVncyBzaG91bGQgYmUgYWx0ZXJlZC4gKi8KKwl9CisjZW5kaWYKKworCWZwdV9pbml0KCk7CisKKwlyYXdfbG9jYWxfc2F2ZV9mbGFncyhrZXJuZWxfZWZsYWdzKTsKKworCWlmIChpc191dl9zeXN0ZW0oKSkKKwkJdXZfY3B1X2luaXQoKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1LmggYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdS5oCmluZGV4IDc4MzY5MWIuLjRkODk0ZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1LmgKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaApAQCAtMSwzICsxLDYgQEAKKyNpZm5kZWYgQVJDSF9YODZfQ1BVX0gKKworI2RlZmluZSBBUkNIX1g4Nl9DUFVfSAogCiBzdHJ1Y3QgY3B1X21vZGVsX2luZm8gewogCWludCB2ZW5kb3I7CkBAIC0zNiwzICszOSw1IEBACiAKIGV4dGVybiBpbnQgZ2V0X21vZGVsX25hbWUoc3RydWN0IGNwdWluZm9feDg2ICpjKTsKIGV4dGVybiB2b2lkIGRpc3BsYXlfY2FjaGVpbmZvKHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL2NwdWZyZXEtbmZvcmNlMi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL2NwdWZyZXEtbmZvcmNlMi5jCmluZGV4IGYwM2U5MTUzLi45NjVlYTUyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL2NwdWZyZXEtbmZvcmNlMi5jCkBAIC0yNiw5ICsyNiwxMCBAQAogI2RlZmluZSBORk9SQ0UyX1NBRkVfRElTVEFOQ0UgNTAKIAogLyogRGVsYXkgaW4gbXMgYmV0d2VlbiBGU0IgY2hhbmdlcyAqLwotLy8jZGVmaW5lIE5GT1JDRTJfREVMQVkgMTAKKy8qICNkZWZpbmUgTkZPUkNFMl9ERUxBWSAxMCAqLwogCi0vKiBuZm9yY2UyX2NoaXBzZXQ6CisvKgorICogbmZvcmNlMl9jaGlwc2V0OgogICogRlNCIGlzIGNoYW5nZWQgdXNpbmcgdGhlIGNoaXBzZXQKICAqLwogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpuZm9yY2UyX2NoaXBzZXRfZGV2OwpAQCAtMzYsMTMgKzM3LDEzIEBACiAvKiBmaWQ6CiAgKiBtdWx0aXBsaWVyICogMTAKICAqLwotc3RhdGljIGludCBmaWQgPSAwOworc3RhdGljIGludCBmaWQ7CiAKIC8qIG1pbl9mc2IsIG1heF9mc2I6CiAgKiBtaW5pbXVtIGFuZCBtYXhpbXVtIEZTQiAoPSBGU0IgYXQgYm9vdCB0aW1lKQogICovCi1zdGF0aWMgaW50IG1pbl9mc2IgPSAwOwotc3RhdGljIGludCBtYXhfZnNiID0gMDsKK3N0YXRpYyBpbnQgbWluX2ZzYjsKK3N0YXRpYyBpbnQgbWF4X2ZzYjsKIAogTU9EVUxFX0FVVEhPUigiU2ViYXN0aWFuIFdpdHQgPHNlLndpdHRAZ214Lm5ldD4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigibkZvcmNlMiBGU0IgY2hhbmdpbmcgY3B1ZnJlcSBkcml2ZXIiKTsKQEAgLTUzLDcgKzU0LDcgQEAKIAogTU9EVUxFX1BBUk1fREVTQyhmaWQsICJDUFUgbXVsdGlwbGllciB0byB1c2UgKDExLjUgPSAxMTUpIik7CiBNT0RVTEVfUEFSTV9ERVNDKG1pbl9mc2IsCi0gICAgICAgICAgICAgICAgICJNaW5pbXVtIEZTQiB0byB1c2UsIGlmIG5vdCBkZWZpbmVkOiBjdXJyZW50IEZTQiAtIDUwIik7CisJCSJNaW5pbXVtIEZTQiB0byB1c2UsIGlmIG5vdCBkZWZpbmVkOiBjdXJyZW50IEZTQiAtIDUwIik7CiAKICNkZWZpbmUgZHByaW50ayhtc2cuLi4pIGNwdWZyZXFfZGVidWdfcHJpbnRrKENQVUZSRVFfREVCVUdfRFJJVkVSLCAiY3B1ZnJlcS1uZm9yY2UyIiwgbXNnKQogCkBAIC0xMzksNyArMTQwLDcgQEAKIAogCS8qIEdldCBjaGlwc2V0IGJvb3QgRlNCIGZyb20gc3ViZGV2aWNlIDUgKEZTQiBhdCBib290LXRpbWUpICovCiAJbmZvcmNlMl9zdWI1ID0gcGNpX2dldF9zdWJzeXMoUENJX1ZFTkRPUl9JRF9OVklESUEsCi0JCQkJCQkweDAxRUYsUENJX0FOWV9JRCxQQ0lfQU5ZX0lELE5VTEwpOworCQkJCQkJMHgwMUVGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBOVUxMKTsKIAlpZiAoIW5mb3JjZTJfc3ViNSkKIAkJcmV0dXJuIDA7CiAKQEAgLTE0NywxMyArMTQ4LDEzIEBACiAJZnNiIC89IDEwMDAwMDA7CiAKIAkvKiBDaGVjayBpZiBQTEwgcmVnaXN0ZXIgaXMgYWxyZWFkeSBzZXQgKi8KLQlwY2lfcmVhZF9jb25maWdfYnl0ZShuZm9yY2UyX2NoaXBzZXRfZGV2LE5GT1JDRTJfUExMRU5BQkxFLCAodTggKikmdGVtcCk7CisJcGNpX3JlYWRfY29uZmlnX2J5dGUobmZvcmNlMl9jaGlwc2V0X2RldiwgTkZPUkNFMl9QTExFTkFCTEUsICh1OCAqKSZ0ZW1wKTsKIAotCWlmKGJvb3Rmc2IgfHwgIXRlbXApCisJaWYgKGJvb3Rmc2IgfHwgIXRlbXApCiAJCXJldHVybiBmc2I7Ci0JCQorCiAJLyogVXNlIFBMTCByZWdpc3RlciBGU0IgdmFsdWUgKi8KLQlwY2lfcmVhZF9jb25maWdfZHdvcmQobmZvcmNlMl9jaGlwc2V0X2RldixORk9SQ0UyX1BMTFJFRywgJnRlbXApOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuZm9yY2UyX2NoaXBzZXRfZGV2LCBORk9SQ0UyX1BMTFJFRywgJnRlbXApOwogCWZzYiA9IG5mb3JjZTJfY2FsY19mc2IodGVtcCk7CiAKIAlyZXR1cm4gZnNiOwpAQCAtMTg0LDcgKzE4NSw3IEBACiAJfQogCiAJLyogRmlyc3Qgd3JpdGU/IFRoZW4gc2V0IGFjdHVhbCB2YWx1ZSAqLwotCXBjaV9yZWFkX2NvbmZpZ19ieXRlKG5mb3JjZTJfY2hpcHNldF9kZXYsTkZPUkNFMl9QTExFTkFCTEUsICh1OCAqKSZ0ZW1wKTsKKwlwY2lfcmVhZF9jb25maWdfYnl0ZShuZm9yY2UyX2NoaXBzZXRfZGV2LCBORk9SQ0UyX1BMTEVOQUJMRSwgKHU4ICopJnRlbXApOwogCWlmICghdGVtcCkgewogCQlwbGwgPSBuZm9yY2UyX2NhbGNfcGxsKHRmc2IpOwogCkBAIC0yMTAsNyArMjExLDggQEAKIAkJCXRmc2ItLTsKIAogCQkvKiBDYWxjdWxhdGUgdGhlIFBMTCByZWcuIHZhbHVlICovCi0JCWlmICgocGxsID0gbmZvcmNlMl9jYWxjX3BsbCh0ZnNiKSkgPT0gLTEpCisJCXBsbCA9IG5mb3JjZTJfY2FsY19wbGwodGZzYik7CisJCWlmIChwbGwgPT0gLTEpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQluZm9yY2UyX3dyaXRlX3BsbChwbGwpOwpAQCAtMjQ5LDcgKzI1MSw3IEBACiBzdGF0aWMgaW50IG5mb3JjZTJfdGFyZ2V0KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LAogCQkJICB1bnNpZ25lZCBpbnQgdGFyZ2V0X2ZyZXEsIHVuc2lnbmVkIGludCByZWxhdGlvbikKIHsKLS8vICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgZmxhZ3M7CisvKiAgICAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgIGZsYWdzOyAqLwogCXN0cnVjdCBjcHVmcmVxX2ZyZXFzIGZyZXFzOwogCXVuc2lnbmVkIGludCB0YXJnZXRfZnNiOwogCkBAIC0yNzEsMTcgKzI3MywxNyBAQAogCWNwdWZyZXFfbm90aWZ5X3RyYW5zaXRpb24oJmZyZXFzLCBDUFVGUkVRX1BSRUNIQU5HRSk7CiAKIAkvKiBEaXNhYmxlIElSUXMgKi8KLQkvL2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkvKiBsb2NhbF9pcnFfc2F2ZShmbGFncyk7ICovCiAKIAlpZiAobmZvcmNlMl9zZXRfZnNiKHRhcmdldF9mc2IpIDwgMCkKIAkJcHJpbnRrKEtFUk5fRVJSICJjcHVmcmVxOiBDaGFuZ2luZyBGU0IgdG8gJWQgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZnNiKTsKKwkJCXRhcmdldF9mc2IpOwogCWVsc2UKIAkJZHByaW50aygiQ2hhbmdlZCBGU0Igc3VjY2Vzc2Z1bGx5IHRvICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZnNiKTsKKwkJCXRhcmdldF9mc2IpOwogCiAJLyogRW5hYmxlIElSUXMgKi8KLQkvL2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwkvKiBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7ICovCiAKIAljcHVmcmVxX25vdGlmeV90cmFuc2l0aW9uKCZmcmVxcywgQ1BVRlJFUV9QT1NUQ0hBTkdFKTsKIApAQCAtMzAyLDggKzMwNCw4IEBACiAJCXBvbGljeS0+bWF4ID0gKGZzYl9wb2xfbWF4ICsgMSkgKiBmaWQgKiAxMDA7CiAKIAljcHVmcmVxX3ZlcmlmeV93aXRoaW5fbGltaXRzKHBvbGljeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3ktPmNwdWluZm8ubWluX2ZyZXEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LT5jcHVpbmZvLm1heF9mcmVxKTsKKwkJCQkgICAgIHBvbGljeS0+Y3B1aW5mby5taW5fZnJlcSwKKwkJCQkgICAgIHBvbGljeS0+Y3B1aW5mby5tYXhfZnJlcSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM0Nyw3ICszNDksNyBAQAogCS8qIFNldCBtYXhpbXVtIEZTQiB0byBGU0IgYXQgYm9vdCB0aW1lICovCiAJbWF4X2ZzYiA9IG5mb3JjZTJfZnNiX3JlYWQoMSk7CiAKLQlpZighbWF4X2ZzYikKKwlpZiAoIW1heF9mc2IpCiAJCXJldHVybiAtRUlPOwogCiAJaWYgKCFtaW5fZnNiKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbC5jCmluZGV4IGZlOTIyNGMuLjcwNjA5ZWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWwuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsLmMKQEAgLTIyNiw2ICsyMjYsMTAgQEAKIAogCWlmIChjcHVfaGFzX2J0cykKIAkJZHNfaW5pdF9pbnRlbChjKTsKKworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwludW1hcV90c2NfZGlzYWJsZSgpOworI2VuZGlmCiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19jcHVpbml0IGludGVsX3NpemVfY2FjaGUoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1bnNpZ25lZCBpbnQgc2l6ZSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDE5YzU4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF82NC5jCkBAIC0wLDAgKzEsOTUgQEAKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyNpbmNsdWRlIDxhc20vdG9wb2xvZ3kuaD4KKyNpbmNsdWRlIDxhc20vbnVtYV82NC5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2ludGVsKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlpZiAoKGMtPng4NiA9PSAweGYgJiYgYy0+eDg2X21vZGVsID49IDB4MDMpIHx8CisJICAgIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweDBlKSkKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKKworCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1NZU0VOVEVSMzIpOworfQorCisvKgorICogZmluZCBvdXQgdGhlIG51bWJlciBvZiBwcm9jZXNzb3IgY29yZXMgb24gdGhlIGRpZQorICovCitzdGF0aWMgaW50IF9fY3B1aW5pdCBpbnRlbF9udW1fY3B1X2NvcmVzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBpbnQgZWF4LCB0OworCisJaWYgKGMtPmNwdWlkX2xldmVsIDwgNCkKKwkJcmV0dXJuIDE7CisKKwljcHVpZF9jb3VudCg0LCAwLCAmZWF4LCAmdCwgJnQsICZ0KTsKKworCWlmIChlYXggJiAweDFmKQorCQlyZXR1cm4gKChlYXggPj4gMjYpICsgMSk7CisJZWxzZQorCQlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IHNyYXRfZGV0ZWN0X25vZGUodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfTlVNQQorCXVuc2lnbmVkIG5vZGU7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgYXBpY2lkID0gaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCk7CisKKwkvKiBEb24ndCBkbyB0aGUgZnVua3kgZmFsbGJhY2sgaGV1cmlzdGljcyB0aGUgQU1EIHZlcnNpb24gZW1wbG95cworCSAgIGZvciBub3cuICovCisJbm9kZSA9IGFwaWNpZF90b19ub2RlW2FwaWNpZF07CisJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFIHx8ICFub2RlX29ubGluZShub2RlKSkKKwkJbm9kZSA9IGZpcnN0X25vZGUobm9kZV9vbmxpbmVfbWFwKTsKKwludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7CisKKwlwcmludGsoS0VSTl9JTkZPICJDUFUgJWQvJXggLT4gTm9kZSAlZFxuIiwgY3B1LCBhcGljaWQsIG5vZGUpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2ludGVsKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlpbml0X2ludGVsX2NhY2hlaW5mbyhjKTsKKwlpZiAoYy0+Y3B1aWRfbGV2ZWwgPiA5KSB7CisJCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgxMCk7CisJCS8qIENoZWNrIGZvciB2ZXJzaW9uIGFuZCB0aGUgbnVtYmVyIG9mIGNvdW50ZXJzICovCisJCWlmICgoZWF4ICYgMHhmZikgJiYgKCgoZWF4Pj44KSAmIDB4ZmYpID4gMSkpCisJCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pOworCX0KKworCWlmIChjcHVfaGFzX2RzKSB7CisJCXVuc2lnbmVkIGludCBsMSwgbDI7CisJCXJkbXNyKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsMSwgbDIpOworCQlpZiAoIShsMSAmICgxPDwxMSkpKQorCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQlRTKTsKKwkJaWYgKCEobDEgJiAoMTw8MTIpKSkKKwkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1BFQlMpOworCX0KKworCisJaWYgKGNwdV9oYXNfYnRzKQorCQlkc19pbml0X2ludGVsKGMpOworCisJaWYgKGMtPng4NiA9PSAxNSkKKwkJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemUgKiAyOworCWlmIChjLT54ODYgPT0gNikKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOworCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyk7CisJYy0+eDg2X21heF9jb3JlcyA9IGludGVsX251bV9jcHVfY29yZXMoYyk7CisKKwlzcmF0X2RldGVjdF9ub2RlKCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3B1X2RldiBpbnRlbF9jcHVfZGV2IF9fY3B1aW5pdGRhdGEgPSB7CisJLmNfdmVuZG9yCT0gIkludGVsIiwKKwkuY19pZGVudAk9IHsgIkdlbnVpbmVJbnRlbCIgfSwKKwkuY19lYXJseV9pbml0ICAgPSBlYXJseV9pbml0X2ludGVsLAorCS5jX2luaXQJCT0gaW5pdF9pbnRlbCwKK307CitjcHVfdmVuZG9yX2Rldl9yZWdpc3RlcihYODZfVkVORE9SX0lOVEVMLCAmaW50ZWxfY3B1X2Rldik7CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVpbmZvLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX2NhY2hlaW5mby5jCmluZGV4IDI2ZDYxNWQuLjJjOGFmYWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVpbmZvLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF9jYWNoZWluZm8uYwpAQCAtNjIsNiArNjIsNyBAQAogCXsgMHg0YiwgTFZMXzMsICAgICAgODE5MiB9LAkvKiAxNi13YXkgc2V0IGFzc29jLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwogCXsgMHg0YywgTFZMXzMsICAgICAxMjI4OCB9LAkvKiAxMi13YXkgc2V0IGFzc29jLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwogCXsgMHg0ZCwgTFZMXzMsICAgICAxNjM4NCB9LAkvKiAxNi13YXkgc2V0IGFzc29jLCA2NCBieXRlIGxpbmUgc2l6ZSAqLworCXsgMHg0ZSwgTFZMXzIsICAgICAgNjE0NCB9LAkvKiAyNC13YXkgc2V0IGFzc29jLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwogCXsgMHg2MCwgTFZMXzFfREFUQSwgMTYgfSwJLyogOC13YXkgc2V0IGFzc29jLCBzZWN0b3JlZCBjYWNoZSwgNjQgYnl0ZSBsaW5lIHNpemUgKi8KIAl7IDB4NjYsIExWTF8xX0RBVEEsIDggfSwJLyogNC13YXkgc2V0IGFzc29jLCBzZWN0b3JlZCBjYWNoZSwgNjQgYnl0ZSBsaW5lIHNpemUgKi8KIAl7IDB4NjcsIExWTF8xX0RBVEEsIDE2IH0sCS8qIDQtd2F5IHNldCBhc3NvYywgc2VjdG9yZWQgY2FjaGUsIDY0IGJ5dGUgbGluZSBzaXplICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9rNy5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svazcuYwppbmRleCBlNjMzYzljLi5mMzkwYzlmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9rNy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL2s3LmMKQEAgLTksMjMgKzksMjMgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KIAotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4gCisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CiAKICNpbmNsdWRlICJtY2UuaCIKIAogLyogTWFjaGluZSBDaGVjayBIYW5kbGVyIEZvciBBTUQgQXRobG9uL0R1cm9uICovCi1zdGF0aWMgdm9pZCBrN19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQorc3RhdGljIHZvaWQgazdfbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogewotCWludCByZWNvdmVyPTE7CisJaW50IHJlY292ZXIgPSAxOwogCXUzMiBhbG93LCBhaGlnaCwgaGlnaCwgbG93OwogCXUzMiBtY2dzdGwsIG1jZ3N0aDsKIAlpbnQgaTsKIAotCXJkbXNyIChNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOwogCWlmIChtY2dzdGwgJiAoMTw8MCkpCS8qIFJlY292ZXJhYmxlID8gKi8KLQkJcmVjb3Zlcj0wOworCQlyZWNvdmVyID0gMDsKIAogCXByaW50ayhLRVJOX0VNRVJHICJDUFUgJWQ6IE1hY2hpbmUgQ2hlY2sgRXhjZXB0aW9uOiAlMDh4JTA4eFxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBtY2dzdGgsIG1jZ3N0bCk7CkBAIC02MCwxMiArNjAsMTIgQEAKIAl9CiAKIAlpZiAocmVjb3ZlciYyKQotCQlwYW5pYyAoIkNQVSBjb250ZXh0IGNvcnJ1cHQiKTsKKwkJcGFuaWMoIkNQVSBjb250ZXh0IGNvcnJ1cHQiKTsKIAlpZiAocmVjb3ZlciYxKQotCQlwYW5pYyAoIlVuYWJsZSB0byBjb250aW51ZSIpOwotCXByaW50ayAoS0VSTl9FTUVSRyAiQXR0ZW1wdGluZyB0byBjb250aW51ZS5cbiIpOworCQlwYW5pYygiVW5hYmxlIHRvIGNvbnRpbnVlIik7CisJcHJpbnRrKEtFUk5fRU1FUkcgIkF0dGVtcHRpbmcgdG8gY29udGludWUuXG4iKTsKIAltY2dzdGwgJj0gfigxPDwyKTsKLQl3cm1zciAoTVNSX0lBMzJfTUNHX1NUQVRVUyxtY2dzdGwsIG1jZ3N0aCk7CisJd3Jtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOwogfQogCiAKQEAgLTgxLDI1ICs4MSwyNSBAQAogCW1hY2hpbmVfY2hlY2tfdmVjdG9yID0gazdfbWFjaGluZV9jaGVjazsKIAl3bWIoKTsKIAotCXByaW50ayAoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQuXG4iKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLlxuIik7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CiAJaWYgKGwgJiAoMTw8OCkpCS8qIENvbnRyb2wgcmVnaXN0ZXIgcHJlc2VudCA/ICovCi0JCXdybXNyIChNU1JfSUEzMl9NQ0dfQ1RMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKKwkJd3Jtc3IoTVNSX0lBMzJfTUNHX0NUTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CiAJbnJfbWNlX2JhbmtzID0gbCAmIDB4ZmY7CiAKIAkvKiBDbGVhciBzdGF0dXMgZm9yIE1DIGluZGV4IDAgc2VwYXJhdGVseSwgd2UgZG9uJ3QgdG91Y2ggQ1RMLAogCSAqIGFzIHNvbWUgSzcgQXRobG9ucyBjYXVzZSBzcHVyaW91cyBNQ0VzIHdoZW4gaXRzIGVuYWJsZWQuICovCiAJaWYgKGJvb3RfY3B1X2RhdGEueDg2ID09IDYpIHsKLQkJd3Jtc3IgKE1TUl9JQTMyX01DMF9TVEFUVVMsIDB4MCwgMHgwKTsKKwkJd3Jtc3IoTVNSX0lBMzJfTUMwX1NUQVRVUywgMHgwLCAweDApOwogCQlpID0gMTsKIAl9IGVsc2UKIAkJaSA9IDA7Ci0JZm9yICg7IGk8bnJfbWNlX2JhbmtzOyBpKyspIHsKLQkJd3Jtc3IgKE1TUl9JQTMyX01DMF9DVEwrNCppLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKLQkJd3Jtc3IgKE1TUl9JQTMyX01DMF9TVEFUVVMrNCppLCAweDAsIDB4MCk7CisJZm9yICg7IGkgPCBucl9tY2VfYmFua3M7IGkrKykgeworCQl3cm1zcihNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CisJCXdybXNyKE1TUl9JQTMyX01DMF9TVEFUVVMrNCppLCAweDAsIDB4MCk7CiAJfQogCi0Jc2V0X2luX2NyNCAoWDg2X0NSNF9NQ0UpOwotCXByaW50ayAoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFibGVkIG9uIENQVSMlZC5cbiIsCisJc2V0X2luX2NyNChYODZfQ1I0X01DRSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjJWQuXG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCkpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2VfNjQuYwppbmRleCBlMDdlOGMwLi45ODc0MTA3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2VfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2VfNjQuYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CkBAIC0zMSw3ICszMiw3IEBACiAjaW5jbHVkZSA8YXNtL2lkbGUuaD4KIAogI2RlZmluZSBNSVNDX01DRUxPR19NSU5PUiAyMjcKLSNkZWZpbmUgTlJfQkFOS1MgNgorI2RlZmluZSBOUl9TWVNGU19CQU5LUyA2CiAKIGF0b21pY190IG1jZV9lbnRyeTsKIApAQCAtNDYsNyArNDcsNyBAQAogICovCiBzdGF0aWMgaW50IHRvbGVyYW50ID0gMTsKIHN0YXRpYyBpbnQgYmFua3M7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBiYW5rW05SX0JBTktTXSA9IHsgWzAgLi4uIE5SX0JBTktTLTFdID0gfjBVTCB9Oworc3RhdGljIHVuc2lnbmVkIGxvbmcgYmFua1tOUl9TWVNGU19CQU5LU10gPSB7IFswIC4uLiBOUl9TWVNGU19CQU5LUy0xXSA9IH4wVUwgfTsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG5vdGlmeV91c2VyOwogc3RhdGljIGludCByaXBfbXNyOwogc3RhdGljIGludCBtY2VfYm9vdGxvZyA9IC0xOwpAQCAtMjA5LDcgKzIxMCw3IEBACiAJYmFycmllcigpOwogCiAJZm9yIChpID0gMDsgaSA8IGJhbmtzOyBpKyspIHsKLQkJaWYgKCFiYW5rW2ldKQorCQlpZiAoaSA8IE5SX1NZU0ZTX0JBTktTICYmICFiYW5rW2ldKQogCQkJY29udGludWU7CiAKIAkJbS5taXNjID0gMDsKQEAgLTQ0NCw5ICs0NDUsMTAgQEAKIAogCXJkbXNybChNU1JfSUEzMl9NQ0dfQ0FQLCBjYXApOwogCWJhbmtzID0gY2FwICYgMHhmZjsKLQlpZiAoYmFua3MgPiBOUl9CQU5LUykgewotCQlwcmludGsoS0VSTl9JTkZPICJNQ0U6IHdhcm5pbmc6IHVzaW5nIG9ubHkgJWQgYmFua3NcbiIsIGJhbmtzKTsKLQkJYmFua3MgPSBOUl9CQU5LUzsKKwlpZiAoYmFua3MgPiBNQ0VfRVhURU5ERURfQkFOSykgeworCQliYW5rcyA9IE1DRV9FWFRFTkRFRF9CQU5LOworCQlwcmludGsoS0VSTl9JTkZPICJNQ0U6IHdhcm5pbmc6IHVzaW5nIG9ubHkgJWQgYmFua3NcbiIsCisJCSAgICAgICBNQ0VfRVhURU5ERURfQkFOSyk7CiAJfQogCS8qIFVzZSBhY2N1cmF0ZSBSSVAgcmVwb3J0aW5nIGlmIGF2YWlsYWJsZS4gKi8KIAlpZiAoKGNhcCAmICgxPDw5KSkgJiYgKChjYXAgPj4gMTYpICYgMHhmZikgPj0gOSkKQEAgLTQ2Miw3ICs0NjQsMTEgQEAKIAkJd3Jtc3IoTVNSX0lBMzJfTUNHX0NUTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYmFua3M7IGkrKykgewotCQl3cm1zcmwoTVNSX0lBMzJfTUMwX0NUTCs0KmksIGJhbmtbaV0pOworCQlpZiAoaSA8IE5SX1NZU0ZTX0JBTktTKQorCQkJd3Jtc3JsKE1TUl9JQTMyX01DMF9DVEwrNCppLCBiYW5rW2ldKTsKKwkJZWxzZQorCQkJd3Jtc3JsKE1TUl9JQTMyX01DMF9DVEwrNCppLCB+MFVMKTsKKwogCQl3cm1zcmwoTVNSX0lBMzJfTUMwX1NUQVRVUys0KmksIDApOwogCX0KIH0KQEAgLTUyNywxMCArNTMzLDEyIEBACiAKIHN0YXRpYyBpbnQgbWNlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJm1jZV9zdGF0ZV9sb2NrKTsKIAogCWlmIChvcGVuX2V4Y2x1IHx8IChvcGVuX2NvdW50ICYmIChmaWxlLT5mX2ZsYWdzICYgT19FWENMKSkpIHsKIAkJc3Bpbl91bmxvY2soJm1jZV9zdGF0ZV9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIApAQCAtNTM5LDYgKzU0Nyw3IEBACiAJb3Blbl9jb3VudCsrOwogCiAJc3Bpbl91bmxvY2soJm1jZV9zdGF0ZV9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiB9CkBAIC03NjYsNyArNzc1LDEwIEBACiAJfQkJCQkJCQkJXAogCXN0YXRpYyBTWVNERVZfQVRUUihuYW1lLCAwNjQ0LCBzaG93XyAjIyBuYW1lLCBzZXRfICMjIG5hbWUpOwogCi0vKiBUQkQgc2hvdWxkIGdlbmVyYXRlIHRoZXNlIGR5bmFtaWNhbGx5IGJhc2VkIG9uIG51bWJlciBvZiBhdmFpbGFibGUgYmFua3MgKi8KKy8qCisgKiBUQkQgc2hvdWxkIGdlbmVyYXRlIHRoZXNlIGR5bmFtaWNhbGx5IGJhc2VkIG9uIG51bWJlciBvZiBhdmFpbGFibGUgYmFua3MuCisgKiBIYXZlIG9ubHkgNiBjb250b2wgYmFua3MgaW4gL3N5c2ZzIHVudGlsIHRoZW4uCisgKi8KIEFDQ0VTU09SKGJhbmswY3RsLGJhbmtbMF0sbWNlX3Jlc3RhcnQoKSkKIEFDQ0VTU09SKGJhbmsxY3RsLGJhbmtbMV0sbWNlX3Jlc3RhcnQoKSkKIEFDQ0VTU09SKGJhbmsyY3RsLGJhbmtbMl0sbWNlX3Jlc3RhcnQoKSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3A0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9wNC5jCmluZGV4IGNiMDMzNDUuLmVlZjAwMWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3A0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDQuYwpAQCAtOCw3ICs4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KIAotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4gCisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KQEAgLTMyLDEyICszMiwxMiBAQAogCS8qIHUzMiAqcmVzZXJ2ZWRbXTsgKi8KIH07CiAKLXN0YXRpYyBpbnQgbWNlX251bV9leHRlbmRlZF9tc3JzID0gMDsKK3N0YXRpYyBpbnQgbWNlX251bV9leHRlbmRlZF9tc3JzOwogCiAKICNpZmRlZiBDT05GSUdfWDg2X01DRV9QNFRIRVJNQUwKIHN0YXRpYyB2b2lkIHVuZXhwZWN0ZWRfdGhlcm1hbF9pbnRlcnJ1cHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17CQorewogCXByaW50ayhLRVJOX0VSUiAiQ1BVJWQ6IFVuZXhwZWN0ZWQgTFZUIFRNUiBpbnRlcnJ1cHQhXG4iLAogCQkJc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAlhZGRfdGFpbnQoVEFJTlRfTUFDSElORV9DSEVDSyk7CkBAIC04Myw3ICs4Myw3IEBACiAJICogYmUgc29tZSBTTU0gZ29vIHdoaWNoIGhhbmRsZXMgaXQsIHNvIHdlIGNhbid0IGV2ZW4gcHV0IGEgaGFuZGxlcgogCSAqIHNpbmNlIGl0IG1pZ2h0IGJlIGRlbGl2ZXJlZCB2aWEgU01JIGFscmVhZHkgLXp3YW5lbS4KIAkgKi8KLQlyZG1zciAoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwsIGgpOworCXJkbXNyKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsLCBoKTsKIAloID0gYXBpY19yZWFkKEFQSUNfTFZUVEhNUik7CiAJaWYgKChsICYgKDE8PDMpKSAmJiAoaCAmIEFQSUNfRE1fU01JKSkgewogCQlwcmludGsoS0VSTl9ERUJVRyAiQ1BVJWQ6IFRoZXJtYWwgbW9uaXRvcmluZyBoYW5kbGVkIGJ5IFNNSVxuIiwKQEAgLTkxLDcgKzkxLDcgQEAKIAkJcmV0dXJuOyAvKiAtRUJVU1kgKi8KIAl9CiAKLQkvKiBjaGVjayB3aGV0aGVyIGEgdmVjdG9yIGFscmVhZHkgZXhpc3RzLCB0ZW1wb3JhcmlseSBtYXNrZWQ/ICovCQorCS8qIGNoZWNrIHdoZXRoZXIgYSB2ZWN0b3IgYWxyZWFkeSBleGlzdHMsIHRlbXBvcmFyaWx5IG1hc2tlZD8gKi8KIAlpZiAoaCAmIEFQSUNfVkVDVE9SX01BU0spIHsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIkNQVSVkOiBUaGVybWFsIExWVCB2ZWN0b3IgKCUjeCkgYWxyZWFkeSAiCiAJCQkJImluc3RhbGxlZFxuIiwKQEAgLTEwNCwxOCArMTA0LDE4IEBACiAJaCB8PSAoQVBJQ19ETV9GSVhFRCB8IEFQSUNfTFZUX01BU0tFRCk7CS8qIHdlJ2xsIG1hc2sgdGlsbCB3ZSdyZSByZWFkeSAqLwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUVEhNUiwgaCk7CiAKLQlyZG1zciAoTVNSX0lBMzJfVEhFUk1fSU5URVJSVVBULCBsLCBoKTsKLQl3cm1zciAoTVNSX0lBMzJfVEhFUk1fSU5URVJSVVBULCBsIHwgMHgwMyAsIGgpOworCXJkbXNyKE1TUl9JQTMyX1RIRVJNX0lOVEVSUlVQVCwgbCwgaCk7CisJd3Jtc3IoTVNSX0lBMzJfVEhFUk1fSU5URVJSVVBULCBsIHwgMHgwMyAsIGgpOwogCiAJLyogb2sgd2UncmUgZ29vZCB0byBnby4uLiAqLwogCXZlbmRvcl90aGVybWFsX2ludGVycnVwdCA9IGludGVsX3RoZXJtYWxfaW50ZXJydXB0OwotCQotCXJkbXNyIChNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCwgaCk7Ci0Jd3Jtc3IgKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsIHwgKDE8PDMpLCBoKTsKIAotCWwgPSBhcGljX3JlYWQgKEFQSUNfTFZUVEhNUik7Ci0JYXBpY193cml0ZV9hcm91bmQgKEFQSUNfTFZUVEhNUiwgbCAmIH5BUElDX0xWVF9NQVNLRUQpOwotCXByaW50ayAoS0VSTl9JTkZPICJDUFUlZDogVGhlcm1hbCBtb25pdG9yaW5nIGVuYWJsZWRcbiIsIGNwdSk7CisJcmRtc3IoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwsIGgpOworCXdybXNyKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsIHwgKDE8PDMpLCBoKTsKKworCWwgPSBhcGljX3JlYWQoQVBJQ19MVlRUSE1SKTsKKwlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVFRITVIsIGwgJiB+QVBJQ19MVlRfTUFTS0VEKTsKKwlwcmludGsoS0VSTl9JTkZPICJDUFUlZDogVGhlcm1hbCBtb25pdG9yaW5nIGVuYWJsZWRcbiIsIGNwdSk7CiAKIAkvKiBlbmFibGUgdGhlcm1hbCB0aHJvdHRsZSBwcm9jZXNzaW5nICovCiAJYXRvbWljX3NldCgmdGhlcm1fdGhyb3RfZW4sIDEpOwpAQCAtMTI5LDI4ICsxMjksMjggQEAKIHsKIAl1MzIgaDsKIAotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUFYLCByLT5lYXgsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUJYLCByLT5lYngsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUNYLCByLT5lY3gsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRURYLCByLT5lZHgsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRVNJLCByLT5lc2ksIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRURJLCByLT5lZGksIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUJQLCByLT5lYnAsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRVNQLCByLT5lc3AsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUZMQUdTLCByLT5lZmxhZ3MsIGgpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfRUlQLCByLT5laXAsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FQVgsIHItPmVheCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VCWCwgci0+ZWJ4LCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUNYLCByLT5lY3gsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FRFgsIHItPmVkeCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VTSSwgci0+ZXNpLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRURJLCByLT5lZGksIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FQlAsIHItPmVicCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VTUCwgci0+ZXNwLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUZMQUdTLCByLT5lZmxhZ3MsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FSVAsIHItPmVpcCwgaCk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUpCitzdGF0aWMgdm9pZCBpbnRlbF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7Ci0JaW50IHJlY292ZXI9MTsKKwlpbnQgcmVjb3ZlciA9IDE7CiAJdTMyIGFsb3csIGFoaWdoLCBoaWdoLCBsb3c7CiAJdTMyIG1jZ3N0bCwgbWNnc3RoOwogCWludCBpOwogCi0JcmRtc3IgKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CiAJaWYgKG1jZ3N0bCAmICgxPDwwKSkJLyogUmVjb3ZlcmFibGUgPyAqLwotCQlyZWNvdmVyPTA7CisJCXJlY292ZXIgPSAwOwogCiAJcHJpbnRrKEtFUk5fRU1FUkcgIkNQVSAlZDogTWFjaGluZSBDaGVjayBFeGNlcHRpb246ICUwOHglMDh4XG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCksIG1jZ3N0aCwgbWNnc3RsKTsKQEAgLTE5MSwyMCArMTkxLDIwIEBACiAJfQogCiAJaWYgKHJlY292ZXIgJiAyKQotCQlwYW5pYyAoIkNQVSBjb250ZXh0IGNvcnJ1cHQiKTsKKwkJcGFuaWMoIkNQVSBjb250ZXh0IGNvcnJ1cHQiKTsKIAlpZiAocmVjb3ZlciAmIDEpCi0JCXBhbmljICgiVW5hYmxlIHRvIGNvbnRpbnVlIik7CisJCXBhbmljKCJVbmFibGUgdG8gY29udGludWUiKTsKIAogCXByaW50ayhLRVJOX0VNRVJHICJBdHRlbXB0aW5nIHRvIGNvbnRpbnVlLlxuIik7Ci0JLyogCi0JICogRG8gbm90IGNsZWFyIHRoZSBNU1JfSUEzMl9NQ2lfU1RBVFVTIGlmIHRoZSBlcnJvciBpcyBub3QgCisJLyoKKwkgKiBEbyBub3QgY2xlYXIgdGhlIE1TUl9JQTMyX01DaV9TVEFUVVMgaWYgdGhlIGVycm9yIGlzIG5vdAogCSAqIHJlY292ZXJhYmxlL2NvbnRpbnVhYmxlLlRoaXMgd2lsbCBhbGxvdyBCSU9TIHRvIGxvb2sgYXQgdGhlIE1TUnMKIAkgKiBmb3IgZXJyb3JzIGlmIHRoZSBPUyBjb3VsZCBub3QgbG9nIHRoZSBlcnJvci4KIAkgKi8KLQlmb3IgKGk9MDsgaTxucl9tY2VfYmFua3M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9tY2VfYmFua3M7IGkrKykgewogCQl1MzIgbXNyOwogCQltc3IgPSBNU1JfSUEzMl9NQzBfU1RBVFVTK2kqNDsKLQkJcmRtc3IgKG1zciwgbG93LCBoaWdoKTsKKwkJcmRtc3IobXNyLCBsb3csIGhpZ2gpOwogCQlpZiAoaGlnaCYoMTw8MzEpKSB7CiAJCQkvKiBDbGVhciBpdCAqLwogCQkJd3Jtc3IobXNyLCAwVUwsIDBVTCk7CkBAIC0yMTQsNyArMjE0LDcgQEAKIAkJfQogCX0KIAltY2dzdGwgJj0gfigxPDwyKTsKLQl3cm1zciAoTVNSX0lBMzJfTUNHX1NUQVRVUyxtY2dzdGwsIG1jZ3N0aCk7CisJd3Jtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOwogfQogCiAKQEAgLTIyMiwzMCArMjIyLDMwIEBACiB7CiAJdTMyIGwsIGg7CiAJaW50IGk7Ci0JCisKIAltYWNoaW5lX2NoZWNrX3ZlY3RvciA9IGludGVsX21hY2hpbmVfY2hlY2s7CiAJd21iKCk7CiAKLQlwcmludGsgKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLlxuIik7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOworCXByaW50ayhLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC5cbiIpOworCXJkbXNyKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOwogCWlmIChsICYgKDE8PDgpKQkvKiBDb250cm9sIHJlZ2lzdGVyIHByZXNlbnQgPyAqLwotCQl3cm1zciAoTVNSX0lBMzJfTUNHX0NUTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CisJCXdybXNyKE1TUl9JQTMyX01DR19DVEwsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwogCW5yX21jZV9iYW5rcyA9IGwgJiAweGZmOwogCi0JZm9yIChpPTA7IGk8bnJfbWNlX2JhbmtzOyBpKyspIHsKLQkJd3Jtc3IgKE1TUl9JQTMyX01DMF9DVEwrNCppLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKLQkJd3Jtc3IgKE1TUl9JQTMyX01DMF9TVEFUVVMrNCppLCAweDAsIDB4MCk7CisJZm9yIChpID0gMDsgaSA8IG5yX21jZV9iYW5rczsgaSsrKSB7CisJCXdybXNyKE1TUl9JQTMyX01DMF9DVEwrNCppLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKKwkJd3Jtc3IoTVNSX0lBMzJfTUMwX1NUQVRVUys0KmksIDB4MCwgMHgwKTsKIAl9CiAKLQlzZXRfaW5fY3I0IChYODZfQ1I0X01DRSk7Ci0JcHJpbnRrIChLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQgb24gQ1BVIyVkLlxuIiwKKwlzZXRfaW5fY3I0KFg4Nl9DUjRfTUNFKTsKKwlwcmludGsoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFibGVkIG9uIENQVSMlZC5cbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSk7CiAKIAkvKiBDaGVjayBmb3IgUDQvWGVvbiBleHRlbmRlZCBNQ0UgTVNScyAqLwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKIAlpZiAobCAmICgxPDw5KSkJey8qIE1DR19FWFRfUCAqLwogCQltY2VfbnVtX2V4dGVuZGVkX21zcnMgPSAobCA+PiAxNikgJiAweGZmOwotCQlwcmludGsgKEtFUk5fSU5GTyAiQ1BVJWQ6IEludGVsIFA0L1hlb24gRXh0ZW5kZWQgTUNFIE1TUnMgKCVkKSIKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVJWQ6IEludGVsIFA0L1hlb24gRXh0ZW5kZWQgTUNFIE1TUnMgKCVkKSIKIAkJCQkiIGF2YWlsYWJsZVxuIiwKIAkJCXNtcF9wcm9jZXNzb3JfaWQoKSwgbWNlX251bV9leHRlbmRlZF9tc3JzKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL2dlbmVyaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9nZW5lcmljLmMKaW5kZXggNWQyNDFjZS4uNTA5YmQzZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL2dlbmVyaWMuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvZ2VuZXJpYy5jCkBAIC0zNyw3ICszNyw3IEBACiBzdGF0aWMgdW5zaWduZWQgbG9uZyBzbXBfY2hhbmdlc19tYXNrOwogc3RhdGljIHN0cnVjdCBtdHJyX3N0YXRlIG10cnJfc3RhdGUgPSB7fTsKIHN0YXRpYyBpbnQgbXRycl9zdGF0ZV9zZXQ7Ci1zdGF0aWMgdTY0IHRvbTI7Cit1NjQgbXRycl90b20yOwogCiAjdW5kZWYgTU9EVUxFX1BBUkFNX1BSRUZJWAogI2RlZmluZSBNT0RVTEVfUEFSQU1fUFJFRklYICJtdHJyLiIKQEAgLTEzOSw4ICsxMzksOCBAQAogCQl9CiAJfQogCi0JaWYgKHRvbTIpIHsKLQkJaWYgKHN0YXJ0ID49ICgxVUxMPDwzMikgJiYgKGVuZCA8IHRvbTIpKQorCWlmIChtdHJyX3RvbTIpIHsKKwkJaWYgKHN0YXJ0ID49ICgxVUxMPDwzMikgJiYgKGVuZCA8IG10cnJfdG9tMikpCiAJCQlyZXR1cm4gTVRSUl9UWVBFX1dSQkFDSzsKIAl9CiAKQEAgLTE1OCw2ICsxNTgsMjAgQEAKIAlyZG1zcihNVFJScGh5c01hc2tfTVNSKGluZGV4KSwgdnItPm1hc2tfbG8sIHZyLT5tYXNrX2hpKTsKIH0KIAorLyogIGZpbGwgdGhlIE1TUiBwYWlyIHJlbGF0aW5nIHRvIGEgdmFyIHJhbmdlICAqLwordm9pZCBmaWxsX210cnJfdmFyX3JhbmdlKHVuc2lnbmVkIGludCBpbmRleCwKKwkJdTMyIGJhc2VfbG8sIHUzMiBiYXNlX2hpLCB1MzIgbWFza19sbywgdTMyIG1hc2tfaGkpCit7CisJc3RydWN0IG10cnJfdmFyX3JhbmdlICp2cjsKKworCXZyID0gbXRycl9zdGF0ZS52YXJfcmFuZ2VzOworCisJdnJbaW5kZXhdLmJhc2VfbG8gPSBiYXNlX2xvOworCXZyW2luZGV4XS5iYXNlX2hpID0gYmFzZV9oaTsKKwl2cltpbmRleF0ubWFza19sbyA9IG1hc2tfbG87CisJdnJbaW5kZXhdLm1hc2tfaGkgPSBtYXNrX2hpOworfQorCiBzdGF0aWMgdm9pZAogZ2V0X2ZpeGVkX3JhbmdlcyhtdHJyX3R5cGUgKiBmcnMpCiB7CkBAIC0yMTMsMTMgKzIyNywxMyBAQAogCW10cnJfc3RhdGUuZW5hYmxlZCA9IChsbyAmIDB4YzAwKSA+PiAxMDsKIAogCWlmIChhbWRfc3BlY2lhbF9kZWZhdWx0X210cnIoKSkgewotCQl1bnNpZ25lZCBsbywgaGk7CisJCXVuc2lnbmVkIGxvdywgaGlnaDsKIAkJLyogVE9QX01FTTIgKi8KLQkJcmRtc3IoTVNSX0s4X1RPUF9NRU0yLCBsbywgaGkpOwotCQl0b20yID0gaGk7Ci0JCXRvbTIgPDw9IDMyOwotCQl0b20yIHw9IGxvOwotCQl0b20yICY9IDB4ZmZmZmZmODAwMDAwMFVMTDsKKwkJcmRtc3IoTVNSX0s4X1RPUF9NRU0yLCBsb3csIGhpZ2gpOworCQltdHJyX3RvbTIgPSBoaWdoOworCQltdHJyX3RvbTIgPDw9IDMyOworCQltdHJyX3RvbTIgfD0gbG93OworCQltdHJyX3RvbTIgJj0gMHhmZmZmZmY4MDAwMDBVTEw7CiAJfQogCWlmIChtdHJyX3Nob3cpIHsKIAkJaW50IGhpZ2hfd2lkdGg7CkBAIC0yNTEsOSArMjY1LDkgQEAKIAkJCWVsc2UKIAkJCQlwcmludGsoS0VSTl9JTkZPICJNVFJSICV1IGRpc2FibGVkXG4iLCBpKTsKIAkJfQotCQlpZiAodG9tMikgeworCQlpZiAobXRycl90b20yKSB7CiAJCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bGx4IGFrYSAlbGxkTVxuIiwKLQkJCQkJICB0b20yLCB0b20yPj4yMCk7CisJCQkJCSAgbXRycl90b20yLCBtdHJyX3RvbTI+PjIwKTsKIAkJfQogCX0KIAltdHJyX3N0YXRlX3NldCA9IDE7CkBAIC0zMjgsNyArMzQyLDcgQEAKIAogCWlmIChsbyAhPSBtc3J3b3Jkc1swXSB8fCBoaSAhPSBtc3J3b3Jkc1sxXSkgewogCQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EICYmCi0JCSAgICBib290X2NwdV9kYXRhLng4NiA9PSAxNSAmJgorCQkgICAgKGJvb3RfY3B1X2RhdGEueDg2ID49IDB4MGYgJiYgYm9vdF9jcHVfZGF0YS54ODYgPD0gMHgxMSkgJiYKIAkJICAgICgobXNyd29yZHNbMF0gfCBtc3J3b3Jkc1sxXSkgJiBLOF9NVFJSX1JETUVNX1dSTUVNX01BU0spKQogCQkJazhfZW5hYmxlX2ZpeGVkX2lvcnJzKCk7CiAJCW10cnJfd3Jtc3IobXNyLCBtc3J3b3Jkc1swXSwgbXNyd29yZHNbMV0pOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL21haW4uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tYWluLmMKaW5kZXggNmExZTI3OC4uMTA1YWZlMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL21haW4uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbWFpbi5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zb3J0Lmg+CiAKICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+CkBAIC02MDksNiArNjEwLDc4NyBAQAogCS5yZXN1bWUJCT0gbXRycl9yZXN0b3JlLAogfTsKIAorLyogc2hvdWxkIGJlIHJlbGF0ZWQgdG8gTVRSUl9WQVJfUkFOR0VTIG51bXMgKi8KKyNkZWZpbmUgUkFOR0VfTlVNIDI1NgorCitzdHJ1Y3QgcmVzX3JhbmdlIHsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0OworCXVuc2lnbmVkIGxvbmcgZW5kOworfTsKKworc3RhdGljIGludCBfX2luaXQKK2FkZF9yYW5nZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgaW50IG5yX3JhbmdlLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJLyogb3V0IG9mIHNsb3RzICovCisJaWYgKG5yX3JhbmdlID49IFJBTkdFX05VTSkKKwkJcmV0dXJuIG5yX3JhbmdlOworCisJcmFuZ2VbbnJfcmFuZ2VdLnN0YXJ0ID0gc3RhcnQ7CisJcmFuZ2VbbnJfcmFuZ2VdLmVuZCA9IGVuZDsKKworCW5yX3JhbmdlKys7CisKKwlyZXR1cm4gbnJfcmFuZ2U7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0CithZGRfcmFuZ2Vfd2l0aF9tZXJnZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgaW50IG5yX3JhbmdlLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJaW50IGk7CisKKwkvKiB0cnkgdG8gbWVyZ2UgaXQgd2l0aCBvbGQgb25lICovCisJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspIHsKKwkJdW5zaWduZWQgbG9uZyBmaW5hbF9zdGFydCwgZmluYWxfZW5kOworCQl1bnNpZ25lZCBsb25nIGNvbW1vbl9zdGFydCwgY29tbW9uX2VuZDsKKworCQlpZiAoIXJhbmdlW2ldLmVuZCkKKwkJCWNvbnRpbnVlOworCisJCWNvbW1vbl9zdGFydCA9IG1heChyYW5nZVtpXS5zdGFydCwgc3RhcnQpOworCQljb21tb25fZW5kID0gbWluKHJhbmdlW2ldLmVuZCwgZW5kKTsKKwkJaWYgKGNvbW1vbl9zdGFydCA+IGNvbW1vbl9lbmQgKyAxKQorCQkJY29udGludWU7CisKKwkJZmluYWxfc3RhcnQgPSBtaW4ocmFuZ2VbaV0uc3RhcnQsIHN0YXJ0KTsKKwkJZmluYWxfZW5kID0gbWF4KHJhbmdlW2ldLmVuZCwgZW5kKTsKKworCQlyYW5nZVtpXS5zdGFydCA9IGZpbmFsX3N0YXJ0OworCQlyYW5nZVtpXS5lbmQgPSAgZmluYWxfZW5kOworCQlyZXR1cm4gbnJfcmFuZ2U7CisJfQorCisJLyogbmVlZCB0byBhZGQgdGhhdCAqLworCXJldHVybiBhZGRfcmFuZ2UocmFuZ2UsIG5yX3JhbmdlLCBzdGFydCwgZW5kKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzdWJ0cmFjdF9yYW5nZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJaW50IGksIGo7CisKKwlmb3IgKGogPSAwOyBqIDwgUkFOR0VfTlVNOyBqKyspIHsKKwkJaWYgKCFyYW5nZVtqXS5lbmQpCisJCQljb250aW51ZTsKKworCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kID49IHJhbmdlW2pdLmVuZCkgeworCQkJcmFuZ2Vbal0uc3RhcnQgPSAwOworCQkJcmFuZ2Vbal0uZW5kID0gMDsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKHN0YXJ0IDw9IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCAmJgorCQkgICAgcmFuZ2Vbal0uc3RhcnQgPCBlbmQgKyAxKSB7CisJCQlyYW5nZVtqXS5zdGFydCA9IGVuZCArIDE7CisJCQljb250aW51ZTsKKwkJfQorCisKKwkJaWYgKHN0YXJ0ID4gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kID49IHJhbmdlW2pdLmVuZCAmJgorCQkgICAgcmFuZ2Vbal0uZW5kID4gc3RhcnQgLSAxKSB7CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCkgeworCQkJLyogZmluZCB0aGUgbmV3IHNwYXJlICovCisJCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCQlpZiAocmFuZ2VbaV0uZW5kID09IDApCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGkgPCBSQU5HRV9OVU0pIHsKKwkJCQlyYW5nZVtpXS5lbmQgPSByYW5nZVtqXS5lbmQ7CisJCQkJcmFuZ2VbaV0uc3RhcnQgPSBlbmQgKyAxOworCQkJfSBlbHNlIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgInJ1biBvZiBzbG90IGluIHJhbmdlc1xuIik7CisJCQl9CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCX0KK30KKworc3RhdGljIGludCBfX2luaXQgY21wX3JhbmdlKGNvbnN0IHZvaWQgKngxLCBjb25zdCB2b2lkICp4MikKK3sKKwljb25zdCBzdHJ1Y3QgcmVzX3JhbmdlICpyMSA9IHgxOworCWNvbnN0IHN0cnVjdCByZXNfcmFuZ2UgKnIyID0geDI7CisJbG9uZyBzdGFydDEsIHN0YXJ0MjsKKworCXN0YXJ0MSA9IHIxLT5zdGFydDsKKwlzdGFydDIgPSByMi0+c3RhcnQ7CisKKwlyZXR1cm4gc3RhcnQxIC0gc3RhcnQyOworfQorCitzdHJ1Y3QgdmFyX210cnJfcmFuZ2Vfc3RhdGUgeworCXVuc2lnbmVkIGxvbmcgYmFzZV9wZm47CisJdW5zaWduZWQgbG9uZyBzaXplX3BmbjsKKwltdHJyX3R5cGUgdHlwZTsKK307CisKK3N0cnVjdCB2YXJfbXRycl9yYW5nZV9zdGF0ZSBfX2luaXRkYXRhIHJhbmdlX3N0YXRlW1JBTkdFX05VTV07CitzdGF0aWMgaW50IF9faW5pdGRhdGEgZGVidWdfcHJpbnQ7CisKK3N0YXRpYyBpbnQgX19pbml0Cit4ODZfZ2V0X210cnJfbWVtX3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIGV4dHJhX3JlbW92ZV9iYXNlLAorCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHRyYV9yZW1vdmVfc2l6ZSkKK3sKKwl1bnNpZ25lZCBsb25nIGksIGJhc2UsIHNpemU7CisJbXRycl90eXBlIHR5cGU7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbaV0udHlwZTsKKwkJaWYgKHR5cGUgIT0gTVRSUl9UWVBFX1dSQkFDSykKKwkJCWNvbnRpbnVlOworCQliYXNlID0gcmFuZ2Vfc3RhdGVbaV0uYmFzZV9wZm47CisJCXNpemUgPSByYW5nZV9zdGF0ZVtpXS5zaXplX3BmbjsKKwkJbnJfcmFuZ2UgPSBhZGRfcmFuZ2Vfd2l0aF9tZXJnZShyYW5nZSwgbnJfcmFuZ2UsIGJhc2UsCisJCQkJCQliYXNlICsgc2l6ZSAtIDEpOworCX0KKwlpZiAoZGVidWdfcHJpbnQpIHsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIkFmdGVyIFdCIGNoZWNraW5nXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCQlwcmludGsoS0VSTl9ERUJVRyAiTVRSUiBNQVAgUEZOOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQgKyAxKTsKKwl9CisKKwkvKiB0YWtlIG91dCBVQyByYW5nZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbaV0udHlwZTsKKwkJaWYgKHR5cGUgIT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpCisJCQljb250aW51ZTsKKwkJc2l6ZSA9IHJhbmdlX3N0YXRlW2ldLnNpemVfcGZuOworCQlpZiAoIXNpemUpCisJCQljb250aW51ZTsKKwkJYmFzZSA9IHJhbmdlX3N0YXRlW2ldLmJhc2VfcGZuOworCQlzdWJ0cmFjdF9yYW5nZShyYW5nZSwgYmFzZSwgYmFzZSArIHNpemUgLSAxKTsKKwl9CisJaWYgKGV4dHJhX3JlbW92ZV9zaXplKQorCQlzdWJ0cmFjdF9yYW5nZShyYW5nZSwgZXh0cmFfcmVtb3ZlX2Jhc2UsCisJCQkJIGV4dHJhX3JlbW92ZV9iYXNlICsgZXh0cmFfcmVtb3ZlX3NpemUgIC0gMSk7CisKKwkvKiBnZXQgbmV3IHJhbmdlIG51bSAqLworCW5yX3JhbmdlID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJaWYgKCFyYW5nZVtpXS5lbmQpCisJCQljb250aW51ZTsKKwkJbnJfcmFuZ2UrKzsKKwl9CisJaWYgIChkZWJ1Z19wcmludCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiQWZ0ZXIgVUMgY2hlY2tpbmdcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJCXByaW50ayhLRVJOX0RFQlVHICJNVFJSIE1BUCBQRk46ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQkgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCArIDEpOworCX0KKworCS8qIHNvcnQgdGhlIHJhbmdlcyAqLworCXNvcnQocmFuZ2UsIG5yX3JhbmdlLCBzaXplb2Yoc3RydWN0IHJlc19yYW5nZSksIGNtcF9yYW5nZSwgTlVMTCk7CisJaWYgIChkZWJ1Z19wcmludCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiQWZ0ZXIgc29ydGluZ1xuIik7CisJCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQkJcHJpbnRrKEtFUk5fREVCVUcgIk1UUlIgTUFQIFBGTjogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCSByYW5nZVtpXS5zdGFydCwgcmFuZ2VbaV0uZW5kICsgMSk7CisJfQorCisJLyogY2xlYXIgdGhvc2UgaXMgbm90IHVzZWQgKi8KKwlmb3IgKGkgPSBucl9yYW5nZTsgaSA8IFJBTkdFX05VTTsgaSsrKQorCQltZW1zZXQoJnJhbmdlW2ldLCAwLCBzaXplb2YocmFuZ2VbaV0pKTsKKworCXJldHVybiBucl9yYW5nZTsKK30KKworc3RhdGljIHN0cnVjdCByZXNfcmFuZ2UgX19pbml0ZGF0YSByYW5nZVtSQU5HRV9OVU1dOworCisjaWZkZWYgQ09ORklHX01UUlJfU0FOSVRJWkVSCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBzdW1fcmFuZ2VzKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UpCit7CisJdW5zaWduZWQgbG9uZyBzdW07CisJaW50IGk7CisKKwlzdW0gPSAwOworCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQlzdW0gKz0gcmFuZ2VbaV0uZW5kICsgMSAtIHJhbmdlW2ldLnN0YXJ0OworCisJcmV0dXJuIHN1bTsKK30KKworc3RhdGljIGludCBlbmFibGVfbXRycl9jbGVhbnVwIF9faW5pdGRhdGEgPQorCUNPTkZJR19NVFJSX1NBTklUSVpFUl9FTkFCTEVfREVGQVVMVDsKKworc3RhdGljIGludCBfX2luaXQgZGlzYWJsZV9tdHJyX2NsZWFudXBfc2V0dXAoY2hhciAqc3RyKQoreworCWlmIChlbmFibGVfbXRycl9jbGVhbnVwICE9IC0xKQorCQllbmFibGVfbXRycl9jbGVhbnVwID0gMDsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJkaXNhYmxlX210cnJfY2xlYW51cCIsIGRpc2FibGVfbXRycl9jbGVhbnVwX3NldHVwKTsKKworc3RhdGljIGludCBfX2luaXQgZW5hYmxlX210cnJfY2xlYW51cF9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKGVuYWJsZV9tdHJyX2NsZWFudXAgIT0gLTEpCisJCWVuYWJsZV9tdHJyX2NsZWFudXAgPSAxOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oImVuYmxlX210cnJfY2xlYW51cCIsIGVuYWJsZV9tdHJyX2NsZWFudXBfc2V0dXApOworCitzdHJ1Y3QgdmFyX210cnJfc3RhdGUgeworCXVuc2lnbmVkIGxvbmcJcmFuZ2Vfc3RhcnRrOworCXVuc2lnbmVkIGxvbmcJcmFuZ2Vfc2l6ZWs7CisJdW5zaWduZWQgbG9uZwljaHVua19zaXplazsKKwl1bnNpZ25lZCBsb25nCWdyYW5fc2l6ZWs7CisJdW5zaWduZWQgaW50CXJlZzsKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdAorc2V0X3Zhcl9tdHJyKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgYmFzZWssIHVuc2lnbmVkIGxvbmcgc2l6ZWssCisJCXVuc2lnbmVkIGNoYXIgdHlwZSwgdW5zaWduZWQgaW50IGFkZHJlc3NfYml0cykKK3sKKwl1MzIgYmFzZV9sbywgYmFzZV9oaSwgbWFza19sbywgbWFza19oaTsKKwl1NjQgYmFzZSwgbWFzazsKKworCWlmICghc2l6ZWspIHsKKwkJZmlsbF9tdHJyX3Zhcl9yYW5nZShyZWcsIDAsIDAsIDAsIDApOworCQlyZXR1cm47CisJfQorCisJbWFzayA9ICgxVUxMIDw8IGFkZHJlc3NfYml0cykgLSAxOworCW1hc2sgJj0gfigoKCh1NjQpc2l6ZWspIDw8IDEwKSAtIDEpOworCisJYmFzZSAgPSAoKHU2NCliYXNlaykgPDwgMTA7CisKKwliYXNlIHw9IHR5cGU7CisJbWFzayB8PSAweDgwMDsKKworCWJhc2VfbG8gPSBiYXNlICYgKCgxVUxMPDwzMikgLSAxKTsKKwliYXNlX2hpID0gYmFzZSA+PiAzMjsKKworCW1hc2tfbG8gPSBtYXNrICYgKCgxVUxMPDwzMikgLSAxKTsKKwltYXNrX2hpID0gbWFzayA+PiAzMjsKKworCWZpbGxfbXRycl92YXJfcmFuZ2UocmVnLCBiYXNlX2xvLCBiYXNlX2hpLCBtYXNrX2xvLCBtYXNrX2hpKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzYXZlX3Zhcl9tdHJyKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgYmFzZWssIHVuc2lnbmVkIGxvbmcgc2l6ZWssCisJCXVuc2lnbmVkIGNoYXIgdHlwZSkKK3sKKwlyYW5nZV9zdGF0ZVtyZWddLmJhc2VfcGZuID0gYmFzZWsgPj4gKFBBR0VfU0hJRlQgLSAxMCk7CisJcmFuZ2Vfc3RhdGVbcmVnXS5zaXplX3BmbiA9IHNpemVrID4+IChQQUdFX1NISUZUIC0gMTApOworCXJhbmdlX3N0YXRlW3JlZ10udHlwZSA9IHR5cGU7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAorc2V0X3Zhcl9tdHJyX2FsbCh1bnNpZ25lZCBpbnQgYWRkcmVzc19iaXRzKQoreworCXVuc2lnbmVkIGxvbmcgYmFzZWssIHNpemVrOworCXVuc2lnbmVkIGNoYXIgdHlwZTsKKwl1bnNpZ25lZCBpbnQgcmVnOworCisJZm9yIChyZWcgPSAwOyByZWcgPCBudW1fdmFyX3JhbmdlczsgcmVnKyspIHsKKwkJYmFzZWsgPSByYW5nZV9zdGF0ZVtyZWddLmJhc2VfcGZuIDw8IChQQUdFX1NISUZUIC0gMTApOworCQlzaXplayA9IHJhbmdlX3N0YXRlW3JlZ10uc2l6ZV9wZm4gPDwgKFBBR0VfU0hJRlQgLSAxMCk7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtyZWddLnR5cGU7CisKKwkJc2V0X3Zhcl9tdHJyKHJlZywgYmFzZWssIHNpemVrLCB0eXBlLCBhZGRyZXNzX2JpdHMpOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGludCBfX2luaXQKK3JhbmdlX3RvX210cnIodW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyByYW5nZV9zdGFydGssCisJICAgICAgdW5zaWduZWQgbG9uZyByYW5nZV9zaXplaywgdW5zaWduZWQgY2hhciB0eXBlKQoreworCWlmICghcmFuZ2Vfc2l6ZWsgfHwgKHJlZyA+PSBudW1fdmFyX3JhbmdlcykpCisJCXJldHVybiByZWc7CisKKwl3aGlsZSAocmFuZ2Vfc2l6ZWspIHsKKwkJdW5zaWduZWQgbG9uZyBtYXhfYWxpZ24sIGFsaWduOworCQl1bnNpZ25lZCBsb25nIHNpemVrOworCisJCS8qIENvbXB1dGUgdGhlIG1heGltdW0gc2l6ZSBJIGNhbiBtYWtlIGEgcmFuZ2UgKi8KKwkJaWYgKHJhbmdlX3N0YXJ0aykKKwkJCW1heF9hbGlnbiA9IGZmcyhyYW5nZV9zdGFydGspIC0gMTsKKwkJZWxzZQorCQkJbWF4X2FsaWduID0gMzI7CisJCWFsaWduID0gZmxzKHJhbmdlX3NpemVrKSAtIDE7CisJCWlmIChhbGlnbiA+IG1heF9hbGlnbikKKwkJCWFsaWduID0gbWF4X2FsaWduOworCisJCXNpemVrID0gMSA8PCBhbGlnbjsKKwkJaWYgKGRlYnVnX3ByaW50KQorCQkJcHJpbnRrKEtFUk5fREVCVUcgIlNldHRpbmcgdmFyaWFibGUgTVRSUiAlZCwgIgorCQkJCSJiYXNlOiAlbGRNQiwgcmFuZ2U6ICVsZE1CLCB0eXBlICVzXG4iLAorCQkJCXJlZywgcmFuZ2Vfc3RhcnRrID4+IDEwLCBzaXplayA+PiAxMCwKKwkJCQkodHlwZSA9PSBNVFJSX1RZUEVfVU5DQUNIQUJMRSk/IlVDIjoKKwkJCQkgICAgKCh0eXBlID09IE1UUlJfVFlQRV9XUkJBQ0spPyJXQiI6Ik90aGVyIikKKwkJCQkpOworCQlzYXZlX3Zhcl9tdHJyKHJlZysrLCByYW5nZV9zdGFydGssIHNpemVrLCB0eXBlKTsKKwkJcmFuZ2Vfc3RhcnRrICs9IHNpemVrOworCQlyYW5nZV9zaXplayAtPSBzaXplazsKKwkJaWYgKHJlZyA+PSBudW1fdmFyX3JhbmdlcykKKwkJCWJyZWFrOworCX0KKwlyZXR1cm4gcmVnOworfQorCitzdGF0aWMgdW5zaWduZWQgX19pbml0CityYW5nZV90b19tdHJyX3dpdGhfaG9sZShzdHJ1Y3QgdmFyX210cnJfc3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBsb25nIGJhc2VrLAorCQkJdW5zaWduZWQgbG9uZyBzaXplaykKK3sKKwl1bnNpZ25lZCBsb25nIGhvbGVfYmFzZWssIGhvbGVfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBzZWNvbmRfYmFzZWssIHNlY29uZF9zaXplazsKKwl1bnNpZ25lZCBsb25nIHJhbmdlMF9iYXNlaywgcmFuZ2UwX3NpemVrOworCXVuc2lnbmVkIGxvbmcgcmFuZ2VfYmFzZWssIHJhbmdlX3NpemVrOworCXVuc2lnbmVkIGxvbmcgY2h1bmtfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBncmFuX3NpemVrOworCisJaG9sZV9iYXNlayA9IDA7CisJaG9sZV9zaXplayA9IDA7CisJc2Vjb25kX2Jhc2VrID0gMDsKKwlzZWNvbmRfc2l6ZWsgPSAwOworCWNodW5rX3NpemVrID0gc3RhdGUtPmNodW5rX3NpemVrOworCWdyYW5fc2l6ZWsgPSBzdGF0ZS0+Z3Jhbl9zaXplazsKKworCS8qIGFsaWduIHdpdGggZ3JhbiBzaXplLCBwcmV2ZW50IHNtYWxsIGJsb2NrIHVzZWQgdXAgTVRSUnMgKi8KKwlyYW5nZV9iYXNlayA9IEFMSUdOKHN0YXRlLT5yYW5nZV9zdGFydGssIGdyYW5fc2l6ZWspOworCWlmICgocmFuZ2VfYmFzZWsgPiBiYXNlaykgJiYgYmFzZWspCisJCXJldHVybiBzZWNvbmRfc2l6ZWs7CisJc3RhdGUtPnJhbmdlX3NpemVrIC09IChyYW5nZV9iYXNlayAtIHN0YXRlLT5yYW5nZV9zdGFydGspOworCXJhbmdlX3NpemVrID0gQUxJR04oc3RhdGUtPnJhbmdlX3NpemVrLCBncmFuX3NpemVrKTsKKworCXdoaWxlIChyYW5nZV9zaXplayA+IHN0YXRlLT5yYW5nZV9zaXplaykgeworCQlyYW5nZV9zaXplayAtPSBncmFuX3NpemVrOworCQlpZiAoIXJhbmdlX3NpemVrKQorCQkJcmV0dXJuIDA7CisJfQorCXN0YXRlLT5yYW5nZV9zaXplayA9IHJhbmdlX3NpemVrOworCisJLyogdHJ5IHRvIGFwcGVuZCBzb21lIHNtYWxsIGhvbGUgKi8KKwlyYW5nZTBfYmFzZWsgPSBzdGF0ZS0+cmFuZ2Vfc3RhcnRrOworCXJhbmdlMF9zaXplayA9IEFMSUdOKHN0YXRlLT5yYW5nZV9zaXplaywgY2h1bmtfc2l6ZWspOworCWlmIChyYW5nZTBfc2l6ZWsgPT0gc3RhdGUtPnJhbmdlX3NpemVrKSB7CisJCWlmIChkZWJ1Z19wcmludCkKKwkJCXByaW50ayhLRVJOX0RFQlVHICJyYW5nZVg6ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQlyYW5nZTBfYmFzZWs8PDEwLAorCQkJCShyYW5nZTBfYmFzZWsgKyBzdGF0ZS0+cmFuZ2Vfc2l6ZWspPDwxMCk7CisJCXN0YXRlLT5yZWcgPSByYW5nZV90b19tdHJyKHN0YXRlLT5yZWcsIHJhbmdlMF9iYXNlaywKKwkJCQlzdGF0ZS0+cmFuZ2Vfc2l6ZWssIE1UUlJfVFlQRV9XUkJBQ0spOworCQlyZXR1cm4gMDsKKwl9CisKKwlyYW5nZTBfc2l6ZWsgLT0gY2h1bmtfc2l6ZWs7CisJaWYgKHJhbmdlMF9zaXplayAmJiBzaXplaykgeworCSAgICB3aGlsZSAocmFuZ2UwX2Jhc2VrICsgcmFuZ2UwX3NpemVrID4gKGJhc2VrICsgc2l6ZWspKSB7CisJCXJhbmdlMF9zaXplayAtPSBjaHVua19zaXplazsKKwkJaWYgKCFyYW5nZTBfc2l6ZWspCisJCQlicmVhazsKKwkgICAgfQorCX0KKworCWlmIChyYW5nZTBfc2l6ZWspIHsKKwkJaWYgKGRlYnVnX3ByaW50KQorCQkJcHJpbnRrKEtFUk5fREVCVUcgInJhbmdlMDogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCXJhbmdlMF9iYXNlazw8MTAsCisJCQkJKHJhbmdlMF9iYXNlayArIHJhbmdlMF9zaXplayk8PDEwKTsKKwkJc3RhdGUtPnJlZyA9IHJhbmdlX3RvX210cnIoc3RhdGUtPnJlZywgcmFuZ2UwX2Jhc2VrLAorCQkJCXJhbmdlMF9zaXplaywgTVRSUl9UWVBFX1dSQkFDSyk7CisKKwl9CisKKwlyYW5nZV9iYXNlayA9IHJhbmdlMF9iYXNlayArIHJhbmdlMF9zaXplazsKKwlyYW5nZV9zaXplayA9IGNodW5rX3NpemVrOworCisJaWYgKHJhbmdlX2Jhc2VrICsgcmFuZ2Vfc2l6ZWsgPiBiYXNlayAmJgorCSAgICByYW5nZV9iYXNlayArIHJhbmdlX3NpemVrIDw9IChiYXNlayArIHNpemVrKSkgeworCQkvKiBvbmUgaG9sZSAqLworCQlzZWNvbmRfYmFzZWsgPSBiYXNlazsKKwkJc2Vjb25kX3NpemVrID0gcmFuZ2VfYmFzZWsgKyByYW5nZV9zaXplayAtIGJhc2VrOworCX0KKworCS8qIGlmIGxhc3QgcGllY2UsIG9ubHkgY291bGQgb25lIGhvbGUgbmVhciBlbmQgKi8KKwlpZiAoKHNlY29uZF9iYXNlayB8fCAhYmFzZWspICYmCisJICAgIHJhbmdlX3NpemVrIC0gKHN0YXRlLT5yYW5nZV9zaXplayAtIHJhbmdlMF9zaXplaykgLSBzZWNvbmRfc2l6ZWsgPAorCSAgICAoY2h1bmtfc2l6ZWsgPj4gMSkpIHsKKwkJLyoKKwkJICogb25lIGhvbGUgaW4gbWlkZGxlIChzZWNvbmRfc2l6ZWsgaXMgMCkgb3IgYXQgZW5kCisJCSAqIChzZWNvbmRfc2l6ZWsgaXMgMCApCisJCSAqLworCQlob2xlX3NpemVrID0gcmFuZ2Vfc2l6ZWsgLSAoc3RhdGUtPnJhbmdlX3NpemVrIC0gcmFuZ2UwX3NpemVrKQorCQkJCSAtIHNlY29uZF9zaXplazsKKwkJaG9sZV9iYXNlayA9IHJhbmdlX2Jhc2VrICsgcmFuZ2Vfc2l6ZWsgLSBob2xlX3NpemVrCisJCQkJIC0gc2Vjb25kX3NpemVrOworCX0gZWxzZSB7CisJCS8qIGZhbGxiYWNrIGZvciBiaWcgaG9sZSwgb3Igc2V2ZXJhbCBob2xlcyAqLworCQlyYW5nZV9zaXplayA9IHN0YXRlLT5yYW5nZV9zaXplayAtIHJhbmdlMF9zaXplazsKKwkJc2Vjb25kX2Jhc2VrID0gMDsKKwkJc2Vjb25kX3NpemVrID0gMDsKKwl9CisKKwlpZiAoZGVidWdfcHJpbnQpCisJCXByaW50ayhLRVJOX0RFQlVHICJyYW5nZTogJTAxNmx4IC0gJTAxNmx4XG4iLCByYW5nZV9iYXNlazw8MTAsCisJCQkgKHJhbmdlX2Jhc2VrICsgcmFuZ2Vfc2l6ZWspPDwxMCk7CisJc3RhdGUtPnJlZyA9IHJhbmdlX3RvX210cnIoc3RhdGUtPnJlZywgcmFuZ2VfYmFzZWssIHJhbmdlX3NpemVrLAorCQkJCQkgTVRSUl9UWVBFX1dSQkFDSyk7CisJaWYgKGhvbGVfc2l6ZWspIHsKKwkJaWYgKGRlYnVnX3ByaW50KQorCQkJcHJpbnRrKEtFUk5fREVCVUcgImhvbGU6ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQkgaG9sZV9iYXNlazw8MTAsIChob2xlX2Jhc2VrICsgaG9sZV9zaXplayk8PDEwKTsKKwkJc3RhdGUtPnJlZyA9IHJhbmdlX3RvX210cnIoc3RhdGUtPnJlZywgaG9sZV9iYXNlaywgaG9sZV9zaXplaywKKwkJCQkJCSBNVFJSX1RZUEVfVU5DQUNIQUJMRSk7CisKKwl9CisKKwlyZXR1cm4gc2Vjb25kX3NpemVrOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK3NldF92YXJfbXRycl9yYW5nZShzdHJ1Y3QgdmFyX210cnJfc3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBsb25nIGJhc2VfcGZuLAorCQkgICB1bnNpZ25lZCBsb25nIHNpemVfcGZuKQoreworCXVuc2lnbmVkIGxvbmcgYmFzZWssIHNpemVrOworCXVuc2lnbmVkIGxvbmcgc2Vjb25kX3NpemVrID0gMDsKKworCWlmIChzdGF0ZS0+cmVnID49IG51bV92YXJfcmFuZ2VzKQorCQlyZXR1cm47CisKKwliYXNlayA9IGJhc2VfcGZuIDw8IChQQUdFX1NISUZUIC0gMTApOworCXNpemVrID0gc2l6ZV9wZm4gPDwgKFBBR0VfU0hJRlQgLSAxMCk7CisKKwkvKiBTZWUgaWYgSSBjYW4gbWVyZ2Ugd2l0aCB0aGUgbGFzdCByYW5nZSAqLworCWlmICgoYmFzZWsgPD0gMTAyNCkgfHwKKwkgICAgKHN0YXRlLT5yYW5nZV9zdGFydGsgKyBzdGF0ZS0+cmFuZ2Vfc2l6ZWsgPT0gYmFzZWspKSB7CisJCXVuc2lnbmVkIGxvbmcgZW5kayA9IGJhc2VrICsgc2l6ZWs7CisJCXN0YXRlLT5yYW5nZV9zaXplayA9IGVuZGsgLSBzdGF0ZS0+cmFuZ2Vfc3RhcnRrOworCQlyZXR1cm47CisJfQorCS8qIFdyaXRlIHRoZSByYW5nZSBtdHJycyAqLworCWlmIChzdGF0ZS0+cmFuZ2Vfc2l6ZWsgIT0gMCkKKwkJc2Vjb25kX3NpemVrID0gcmFuZ2VfdG9fbXRycl93aXRoX2hvbGUoc3RhdGUsIGJhc2VrLCBzaXplayk7CisKKwkvKiBBbGxvY2F0ZSBhbiBtc3IgKi8KKwlzdGF0ZS0+cmFuZ2Vfc3RhcnRrID0gYmFzZWsgKyBzZWNvbmRfc2l6ZWs7CisJc3RhdGUtPnJhbmdlX3NpemVrICA9IHNpemVrIC0gc2Vjb25kX3NpemVrOworfQorCisvKiBtaW5pbnVtIHNpemUgb2YgbXRyciBibG9jayB0aGF0IGNhbiB0YWtlIGhvbGUgKi8KK3N0YXRpYyB1NjQgbXRycl9jaHVua19zaXplIF9faW5pdGRhdGEgPSAoMjU2VUxMPDwyMCk7CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX210cnJfY2h1bmtfc2l6ZV9vcHQoY2hhciAqcCkKK3sKKwlpZiAoIXApCisJCXJldHVybiAtRUlOVkFMOworCW10cnJfY2h1bmtfc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJtdHJyX2NodW5rX3NpemUiLCBwYXJzZV9tdHJyX2NodW5rX3NpemVfb3B0KTsKKworLyogZ3Jhbml0eSBvZiBtdHJyIG9mIGJsb2NrICovCitzdGF0aWMgdTY0IG10cnJfZ3Jhbl9zaXplIF9faW5pdGRhdGE7CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX210cnJfZ3Jhbl9zaXplX29wdChjaGFyICpwKQoreworCWlmICghcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJbXRycl9ncmFuX3NpemUgPSBtZW1wYXJzZShwLCAmcCk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgibXRycl9ncmFuX3NpemUiLCBwYXJzZV9tdHJyX2dyYW5fc2l6ZV9vcHQpOworCitzdGF0aWMgaW50IG5yX210cnJfc3BhcmVfcmVnIF9faW5pdGRhdGEgPQorCQkJCSBDT05GSUdfTVRSUl9TQU5JVElaRVJfU1BBUkVfUkVHX05SX0RFRkFVTFQ7CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX210cnJfc3BhcmVfcmVnKGNoYXIgKmFyZykKK3sKKwlpZiAoYXJnKQorCQlucl9tdHJyX3NwYXJlX3JlZyA9IHNpbXBsZV9zdHJ0b3VsKGFyZywgTlVMTCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK2Vhcmx5X3BhcmFtKCJtdHJyX3NwYXJlX3JlZ19uciIsIHBhcnNlX210cnJfc3BhcmVfcmVnKTsKKworc3RhdGljIGludCBfX2luaXQKK3g4Nl9zZXR1cF92YXJfbXRycnMoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIGludCBucl9yYW5nZSwKKwkJICAgIHU2NCBjaHVua19zaXplLCB1NjQgZ3Jhbl9zaXplKQoreworCXN0cnVjdCB2YXJfbXRycl9zdGF0ZSB2YXJfc3RhdGU7CisJaW50IGk7CisJaW50IG51bV9yZWc7CisKKwl2YXJfc3RhdGUucmFuZ2Vfc3RhcnRrCT0gMDsKKwl2YXJfc3RhdGUucmFuZ2Vfc2l6ZWsJPSAwOworCXZhcl9zdGF0ZS5yZWcJCT0gMDsKKwl2YXJfc3RhdGUuY2h1bmtfc2l6ZWsJPSBjaHVua19zaXplID4+IDEwOworCXZhcl9zdGF0ZS5ncmFuX3NpemVrCT0gZ3Jhbl9zaXplID4+IDEwOworCisJbWVtc2V0KHJhbmdlX3N0YXRlLCAwLCBzaXplb2YocmFuZ2Vfc3RhdGUpKTsKKworCS8qIFdyaXRlIHRoZSByYW5nZSBldGMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJc2V0X3Zhcl9tdHJyX3JhbmdlKCZ2YXJfc3RhdGUsIHJhbmdlW2ldLnN0YXJ0LAorCQkJCSAgIHJhbmdlW2ldLmVuZCAtIHJhbmdlW2ldLnN0YXJ0ICsgMSk7CisKKwkvKiBXcml0ZSB0aGUgbGFzdCByYW5nZSAqLworCWlmICh2YXJfc3RhdGUucmFuZ2Vfc2l6ZWsgIT0gMCkKKwkJcmFuZ2VfdG9fbXRycl93aXRoX2hvbGUoJnZhcl9zdGF0ZSwgMCwgMCk7CisKKwludW1fcmVnID0gdmFyX3N0YXRlLnJlZzsKKwkvKiBDbGVhciBvdXQgdGhlIGV4dHJhIE1UUlIncyAqLworCXdoaWxlICh2YXJfc3RhdGUucmVnIDwgbnVtX3Zhcl9yYW5nZXMpIHsKKwkJc2F2ZV92YXJfbXRycih2YXJfc3RhdGUucmVnLCAwLCAwLCAwKTsKKwkJdmFyX3N0YXRlLnJlZysrOworCX0KKworCXJldHVybiBudW1fcmVnOworfQorCitzdHJ1Y3QgbXRycl9jbGVhbnVwX3Jlc3VsdCB7CisJdW5zaWduZWQgbG9uZyBncmFuX3NpemVrOworCXVuc2lnbmVkIGxvbmcgY2h1bmtfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBsb3NlX2NvdmVyX3NpemVrOworCXVuc2lnbmVkIGludCBudW1fcmVnOworCWludCBiYWQ7Cit9OworCisvKgorICogZ3Jhbl9zaXplOiAxTSwgMk0sIC4uLiwgMkcKKyAqIGNodW5rIHNpemU6IGdyYW5fc2l6ZSwgLi4uLCA0RworICogc28gd2UgbmVlZCAoMisxMykqNgorICovCisjZGVmaW5lIE5VTV9SRVNVTFQJOTAKKyNkZWZpbmUgUFNISUZUCQkoUEFHRV9TSElGVCAtIDEwKQorCitzdGF0aWMgc3RydWN0IG10cnJfY2xlYW51cF9yZXN1bHQgX19pbml0ZGF0YSByZXN1bHRbTlVNX1JFU1VMVF07CitzdGF0aWMgc3RydWN0IHJlc19yYW5nZSBfX2luaXRkYXRhIHJhbmdlX25ld1tSQU5HRV9OVU1dOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBtaW5fbG9zc19wZm5bUkFOR0VfTlVNXTsKKworc3RhdGljIGludCBfX2luaXQgbXRycl9jbGVhbnVwKHVuc2lnbmVkIGFkZHJlc3NfYml0cykKK3sKKwl1bnNpZ25lZCBsb25nIGV4dHJhX3JlbW92ZV9iYXNlLCBleHRyYV9yZW1vdmVfc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGksIGJhc2UsIHNpemUsIGRlZiwgZHVtbXk7CisJbXRycl90eXBlIHR5cGU7CisJaW50IG5yX3JhbmdlLCBucl9yYW5nZV9uZXc7CisJdTY0IGNodW5rX3NpemUsIGdyYW5fc2l6ZTsKKwl1bnNpZ25lZCBsb25nIHJhbmdlX3N1bXMsIHJhbmdlX3N1bXNfbmV3OworCWludCBpbmRleF9nb29kOworCWludCBudW1fcmVnX2dvb2Q7CisKKwkvKiBleHRyYSBvbmUgZm9yIGFsbCAwICovCisJaW50IG51bVtNVFJSX05VTV9UWVBFUyArIDFdOworCisJaWYgKCFpc19jcHUoSU5URUwpIHx8IGVuYWJsZV9tdHJyX2NsZWFudXAgPCAxKQorCQlyZXR1cm4gMDsKKwlyZG1zcihNVFJSZGVmVHlwZV9NU1IsIGRlZiwgZHVtbXkpOworCWRlZiAmPSAweGZmOworCWlmIChkZWYgIT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpCisJCXJldHVybiAwOworCisJLyogZ2V0IGl0IGFuZCBzdG9yZSBpdCBhc2lkZSAqLworCW1lbXNldChyYW5nZV9zdGF0ZSwgMCwgc2l6ZW9mKHJhbmdlX3N0YXRlKSk7CisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJbXRycl9pZi0+Z2V0KGksICZiYXNlLCAmc2l6ZSwgJnR5cGUpOworCQlyYW5nZV9zdGF0ZVtpXS5iYXNlX3BmbiA9IGJhc2U7CisJCXJhbmdlX3N0YXRlW2ldLnNpemVfcGZuID0gc2l6ZTsKKwkJcmFuZ2Vfc3RhdGVbaV0udHlwZSA9IHR5cGU7CisJfQorCisJLyogY2hlY2sgZW50cmllcyBudW1iZXIgKi8KKwltZW1zZXQobnVtLCAwLCBzaXplb2YobnVtKSk7CisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW2ldLnR5cGU7CisJCXNpemUgPSByYW5nZV9zdGF0ZVtpXS5zaXplX3BmbjsKKwkJaWYgKHR5cGUgPj0gTVRSUl9OVU1fVFlQRVMpCisJCQljb250aW51ZTsKKwkJaWYgKCFzaXplKQorCQkJdHlwZSA9IE1UUlJfTlVNX1RZUEVTOworCQludW1bdHlwZV0rKzsKKwl9CisKKwkvKiBjaGVjayBpZiB3ZSBnb3QgVUMgZW50cmllcyAqLworCWlmICghbnVtW01UUlJfVFlQRV9VTkNBQ0hBQkxFXSkKKwkJcmV0dXJuIDA7CisKKwkvKiBjaGVjayBpZiB3ZSBvbmx5IGhhZCBXQiBhbmQgVUMgKi8KKwlpZiAobnVtW01UUlJfVFlQRV9XUkJBQ0tdICsgbnVtW01UUlJfVFlQRV9VTkNBQ0hBQkxFXSAhPQorCQludW1fdmFyX3JhbmdlcyAtIG51bVtNVFJSX05VTV9UWVBFU10pCisJCXJldHVybiAwOworCisJbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKKwlleHRyYV9yZW1vdmVfc2l6ZSA9IDA7CisJaWYgKG10cnJfdG9tMikgeworCQlleHRyYV9yZW1vdmVfYmFzZSA9IDEgPDwgKDMyIC0gUEFHRV9TSElGVCk7CisJCWV4dHJhX3JlbW92ZV9zaXplID0KKwkJCShtdHJyX3RvbTIgPj4gUEFHRV9TSElGVCkgLSBleHRyYV9yZW1vdmVfYmFzZTsKKwl9CisJbnJfcmFuZ2UgPSB4ODZfZ2V0X210cnJfbWVtX3JhbmdlKHJhbmdlLCAwLCBleHRyYV9yZW1vdmVfYmFzZSwKKwkJCQkJICBleHRyYV9yZW1vdmVfc2l6ZSk7CisJcmFuZ2Vfc3VtcyA9IHN1bV9yYW5nZXMocmFuZ2UsIG5yX3JhbmdlKTsKKwlwcmludGsoS0VSTl9JTkZPICJ0b3RhbCBSQU0gY292ZXJyZWQ6ICVsZE1cbiIsCisJICAgICAgIHJhbmdlX3N1bXMgPj4gKDIwIC0gUEFHRV9TSElGVCkpOworCisJaWYgKG10cnJfY2h1bmtfc2l6ZSAmJiBtdHJyX2dyYW5fc2l6ZSkgeworCQlpbnQgbnVtX3JlZzsKKworCQlkZWJ1Z19wcmludCA9IDE7CisJCS8qIGNvbnZlcnQgcmFuZ2VzIHRvIHZhciByYW5nZXMgc3RhdGUgKi8KKwkJbnVtX3JlZyA9IHg4Nl9zZXR1cF92YXJfbXRycnMocmFuZ2UsIG5yX3JhbmdlLCBtdHJyX2NodW5rX3NpemUsCisJCQkJCSAgICAgIG10cnJfZ3Jhbl9zaXplKTsKKworCQkvKiB3ZSBnb3QgbmV3IHNldHRpbmcgaW4gcmFuZ2Vfc3RhdGUsIGNoZWNrIGl0ICovCisJCW1lbXNldChyYW5nZV9uZXcsIDAsIHNpemVvZihyYW5nZV9uZXcpKTsKKwkJbnJfcmFuZ2VfbmV3ID0geDg2X2dldF9tdHJyX21lbV9yYW5nZShyYW5nZV9uZXcsIDAsCisJCQkJCQkgICAgICBleHRyYV9yZW1vdmVfYmFzZSwKKwkJCQkJCSAgICAgIGV4dHJhX3JlbW92ZV9zaXplKTsKKwkJcmFuZ2Vfc3Vtc19uZXcgPSBzdW1fcmFuZ2VzKHJhbmdlX25ldywgbnJfcmFuZ2VfbmV3KTsKKworCQlpID0gMDsKKwkJcmVzdWx0W2ldLmNodW5rX3NpemVrID0gbXRycl9jaHVua19zaXplID4+IDEwOworCQlyZXN1bHRbaV0uZ3Jhbl9zaXplayA9IG10cnJfZ3Jhbl9zaXplID4+IDEwOworCQlyZXN1bHRbaV0ubnVtX3JlZyA9IG51bV9yZWc7CisJCWlmIChyYW5nZV9zdW1zIDwgcmFuZ2Vfc3Vtc19uZXcpIHsKKwkJCXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID0KKwkJCQkocmFuZ2Vfc3Vtc19uZXcgLSByYW5nZV9zdW1zKSA8PCBQU0hJRlQ7CisJCQlyZXN1bHRbaV0uYmFkID0gMTsKKwkJfSBlbHNlCisJCQlyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA9CisJCQkJKHJhbmdlX3N1bXMgLSByYW5nZV9zdW1zX25ldykgPDwgUFNISUZUOworCisJCXByaW50ayhLRVJOX0lORk8gIiVzZ3Jhbl9zaXplOiAlbGRNIFx0Y2h1bmtfc2l6ZTogJWxkTSBcdCIsCisJCQkgcmVzdWx0W2ldLmJhZD8iKkJBRCoiOiIgIiwgcmVzdWx0W2ldLmdyYW5fc2l6ZWsgPj4gMTAsCisJCQkgcmVzdWx0W2ldLmNodW5rX3NpemVrID4+IDEwKTsKKwkJcHJpbnRrKEtFUk5fQ09OVCAibnVtX3JlZzogJWQgIFx0bG9zZSBjb3ZlciBSQU06ICVzJWxkTSBcbiIsCisJCQkgcmVzdWx0W2ldLm51bV9yZWcsIHJlc3VsdFtpXS5iYWQ/Ii0iOiIiLAorCQkJIHJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID4+IDEwKTsKKwkJaWYgKCFyZXN1bHRbaV0uYmFkKSB7CisJCQlzZXRfdmFyX210cnJfYWxsKGFkZHJlc3NfYml0cyk7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlwcmludGsoS0VSTl9JTkZPICJpbnZhbGlkIG10cnJfZ3Jhbl9zaXplIG9yIG10cnJfY2h1bmtfc2l6ZSwgIgorCQkgICAgICAgIndpbGwgZmluZCBvcHRpbWFsIG9uZVxuIik7CisJCWRlYnVnX3ByaW50ID0gMDsKKwkJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdFswXSkpOworCX0KKworCWkgPSAwOworCW1lbXNldChtaW5fbG9zc19wZm4sIDB4ZmYsIHNpemVvZihtaW5fbG9zc19wZm4pKTsKKwltZW1zZXQocmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CisJZm9yIChncmFuX3NpemUgPSAoMVVMTDw8MjApOyBncmFuX3NpemUgPCAoMVVMTDw8MzIpOyBncmFuX3NpemUgPDw9IDEpIHsKKwkJZm9yIChjaHVua19zaXplID0gZ3Jhbl9zaXplOyBjaHVua19zaXplIDwgKDFVTEw8PDMzKTsKKwkJICAgICBjaHVua19zaXplIDw8PSAxKSB7CisJCQlpbnQgbnVtX3JlZzsKKworCQkJaWYgKGRlYnVnX3ByaW50KQorCQkJCXByaW50ayhLRVJOX0lORk8KKwkJCSAgICAgICAiXG5ncmFuX3NpemU6ICVsbGRNICAgY2h1bmtfc2l6ZV9zaXplOiAlbGxkTVxuIiwKKwkJCQkgICAgICAgZ3Jhbl9zaXplID4+IDIwLCBjaHVua19zaXplID4+IDIwKTsKKwkJCWlmIChpID49IE5VTV9SRVNVTFQpCisJCQkJY29udGludWU7CisKKwkJCS8qIGNvbnZlcnQgcmFuZ2VzIHRvIHZhciByYW5nZXMgc3RhdGUgKi8KKwkJCW51bV9yZWcgPSB4ODZfc2V0dXBfdmFyX210cnJzKHJhbmdlLCBucl9yYW5nZSwKKwkJCQkJCQkgY2h1bmtfc2l6ZSwgZ3Jhbl9zaXplKTsKKworCQkJLyogd2UgZ290IG5ldyBzZXR0aW5nIGluIHJhbmdlX3N0YXRlLCBjaGVjayBpdCAqLworCQkJbWVtc2V0KHJhbmdlX25ldywgMCwgc2l6ZW9mKHJhbmdlX25ldykpOworCQkJbnJfcmFuZ2VfbmV3ID0geDg2X2dldF9tdHJyX21lbV9yYW5nZShyYW5nZV9uZXcsIDAsCisJCQkJCSBleHRyYV9yZW1vdmVfYmFzZSwgZXh0cmFfcmVtb3ZlX3NpemUpOworCQkJcmFuZ2Vfc3Vtc19uZXcgPSBzdW1fcmFuZ2VzKHJhbmdlX25ldywgbnJfcmFuZ2VfbmV3KTsKKworCQkJcmVzdWx0W2ldLmNodW5rX3NpemVrID0gY2h1bmtfc2l6ZSA+PiAxMDsKKwkJCXJlc3VsdFtpXS5ncmFuX3NpemVrID0gZ3Jhbl9zaXplID4+IDEwOworCQkJcmVzdWx0W2ldLm51bV9yZWcgPSBudW1fcmVnOworCQkJaWYgKHJhbmdlX3N1bXMgPCByYW5nZV9zdW1zX25ldykgeworCQkJCXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID0KKwkJCQkJKHJhbmdlX3N1bXNfbmV3IC0gcmFuZ2Vfc3VtcykgPDwgUFNISUZUOworCQkJCXJlc3VsdFtpXS5iYWQgPSAxOworCQkJfSBlbHNlCisJCQkJcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPQorCQkJCQkocmFuZ2Vfc3VtcyAtIHJhbmdlX3N1bXNfbmV3KSA8PCBQU0hJRlQ7CisKKwkJCS8qIGRvdWJsZSBjaGVjayBpdCAqLworCQkJaWYgKCFyZXN1bHRbaV0uYmFkICYmICFyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplaykgeworCQkJCWlmIChucl9yYW5nZV9uZXcgIT0gbnJfcmFuZ2UgfHwKKwkJCQkJbWVtY21wKHJhbmdlLCByYW5nZV9uZXcsIHNpemVvZihyYW5nZSkpKQorCQkJCQkJcmVzdWx0W2ldLmJhZCA9IDE7CisJCQl9CisKKwkJCWlmICghcmVzdWx0W2ldLmJhZCAmJiAocmFuZ2Vfc3VtcyAtIHJhbmdlX3N1bXNfbmV3IDwKKwkJCQkJICAgICAgIG1pbl9sb3NzX3BmbltudW1fcmVnXSkpIHsKKwkJCQltaW5fbG9zc19wZm5bbnVtX3JlZ10gPQorCQkJCQlyYW5nZV9zdW1zIC0gcmFuZ2Vfc3Vtc19uZXc7CisJCQl9CisJCQlpKys7CisJCX0KKwl9CisKKwkvKiBwcmludCBvdXQgYWxsICovCisJZm9yIChpID0gMDsgaSA8IE5VTV9SRVNVTFQ7IGkrKykgeworCQlwcmludGsoS0VSTl9JTkZPICIlc2dyYW5fc2l6ZTogJWxkTSBcdGNodW5rX3NpemU6ICVsZE0gXHQiLAorCQkgICAgICAgcmVzdWx0W2ldLmJhZD8iKkJBRCogIjoiICIsIHJlc3VsdFtpXS5ncmFuX3NpemVrID4+IDEwLAorCQkgICAgICAgcmVzdWx0W2ldLmNodW5rX3NpemVrID4+IDEwKTsKKwkJcHJpbnRrKEtFUk5fQ09OVCAibnVtX3JlZzogJWQgXHRsb3NlIFJBTTogJXMlbGRNXG4iLAorCQkgICAgICAgcmVzdWx0W2ldLm51bV9yZWcsIHJlc3VsdFtpXS5iYWQ/Ii0iOiIiLAorCQkgICAgICAgcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPj4gMTApOworCX0KKworCS8qIHRyeSB0byBmaW5kIHRoZSBvcHRpbWFsIGluZGV4ICovCisJaWYgKG5yX210cnJfc3BhcmVfcmVnID49IG51bV92YXJfcmFuZ2VzKQorCQlucl9tdHJyX3NwYXJlX3JlZyA9IG51bV92YXJfcmFuZ2VzIC0gMTsKKwludW1fcmVnX2dvb2QgPSAtMTsKKwlmb3IgKGkgPSBudW1fdmFyX3JhbmdlcyAtIG5yX210cnJfc3BhcmVfcmVnOyBpID4gMDsgaS0tKSB7CisJCWlmICghbWluX2xvc3NfcGZuW2ldKSB7CisJCQludW1fcmVnX2dvb2QgPSBpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpbmRleF9nb29kID0gLTE7CisJaWYgKG51bV9yZWdfZ29vZCAhPSAtMSkgeworCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1JFU1VMVDsgaSsrKSB7CisJCQlpZiAoIXJlc3VsdFtpXS5iYWQgJiYKKwkJCSAgICByZXN1bHRbaV0ubnVtX3JlZyA9PSBudW1fcmVnX2dvb2QgJiYKKwkJCSAgICAhcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWspIHsKKwkJCQlpbmRleF9nb29kID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCWlmIChpbmRleF9nb29kICE9IC0xKSB7CisJCXByaW50ayhLRVJOX0lORk8gIkZvdW5kIG9wdGltYWwgc2V0dGluZyBmb3IgbXRyciBjbGVhbiB1cFxuIik7CisJCWkgPSBpbmRleF9nb29kOworCQlwcmludGsoS0VSTl9JTkZPICJncmFuX3NpemU6ICVsZE0gXHRjaHVua19zaXplOiAlbGRNIFx0IiwKKwkJCQlyZXN1bHRbaV0uZ3Jhbl9zaXplayA+PiAxMCwKKwkJCQlyZXN1bHRbaV0uY2h1bmtfc2l6ZWsgPj4gMTApOworCQlwcmludGsoS0VSTl9DT05UICJudW1fcmVnOiAlZCBcdGxvc2UgUkFNOiAlbGRNXG4iLAorCQkJCXJlc3VsdFtpXS5udW1fcmVnLAorCQkJCXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID4+IDEwKTsKKwkJLyogY29udmVydCByYW5nZXMgdG8gdmFyIHJhbmdlcyBzdGF0ZSAqLworCQljaHVua19zaXplID0gcmVzdWx0W2ldLmNodW5rX3NpemVrOworCQljaHVua19zaXplIDw8PSAxMDsKKwkJZ3Jhbl9zaXplID0gcmVzdWx0W2ldLmdyYW5fc2l6ZWs7CisJCWdyYW5fc2l6ZSA8PD0gMTA7CisJCWRlYnVnX3ByaW50ID0gMTsKKwkJeDg2X3NldHVwX3Zhcl9tdHJycyhyYW5nZSwgbnJfcmFuZ2UsIGNodW5rX3NpemUsIGdyYW5fc2l6ZSk7CisJCXNldF92YXJfbXRycl9hbGwoYWRkcmVzc19iaXRzKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcHJpbnRrKEtFUk5fSU5GTyAibXRycl9jbGVhbnVwOiBjYW4gbm90IGZpbmQgb3B0aW1hbCB2YWx1ZVxuIik7CisJcHJpbnRrKEtFUk5fSU5GTyAicGxlYXNlIHNwZWNpZnkgbXRycl9ncmFuX3NpemUvbXRycl9jaHVua19zaXplXG4iKTsKKworCXJldHVybiAwOworfQorI2Vsc2UKK3N0YXRpYyBpbnQgX19pbml0IG10cnJfY2xlYW51cCh1bnNpZ25lZCBhZGRyZXNzX2JpdHMpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworc3RhdGljIGludCBfX2luaXRkYXRhIGNoYW5nZWRfYnlfbXRycl9jbGVhbnVwOworCiBzdGF0aWMgaW50IGRpc2FibGVfbXRycl90cmltOwogCiBzdGF0aWMgaW50IF9faW5pdCBkaXNhYmxlX210cnJfdHJpbV9zZXR1cChjaGFyICpzdHIpCkBAIC02NDgsNiArMTQzMCwxOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTY0IF9faW5pdCByZWFsX3RyaW1fbWVtb3J5KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCSAgIHVuc2lnbmVkIGxvbmcgbGltaXRfcGZuKQoreworCXU2NCB0cmltX3N0YXJ0LCB0cmltX3NpemU7CisJdHJpbV9zdGFydCA9IHN0YXJ0X3BmbjsKKwl0cmltX3N0YXJ0IDw8PSBQQUdFX1NISUZUOworCXRyaW1fc2l6ZSA9IGxpbWl0X3BmbjsKKwl0cmltX3NpemUgPDw9IFBBR0VfU0hJRlQ7CisJdHJpbV9zaXplIC09IHRyaW1fc3RhcnQ7CisKKwlyZXR1cm4gZTgyMF91cGRhdGVfcmFuZ2UodHJpbV9zdGFydCwgdHJpbV9zaXplLCBFODIwX1JBTSwKKwkJCQlFODIwX1JFU0VSVkVEKTsKK30KIC8qKgogICogbXRycl90cmltX3VuY2FjaGVkX21lbW9yeSAtIHRyaW0gUkFNIG5vdCBjb3ZlcmVkIGJ5IE1UUlJzCiAgKiBAZW5kX3BmbjogZW5kaW5nIHBhZ2UgZnJhbWUgbnVtYmVyCkBAIC02NjMsOCArMTQ1OCwxMSBAQAogewogCXVuc2lnbmVkIGxvbmcgaSwgYmFzZSwgc2l6ZSwgaGlnaGVzdF9wZm4gPSAwLCBkZWYsIGR1bW15OwogCW10cnJfdHlwZSB0eXBlOwotCXU2NCB0cmltX3N0YXJ0LCB0cmltX3NpemU7CisJaW50IG5yX3JhbmdlOworCXU2NCB0b3RhbF90cmltX3NpemU7CiAKKwkvKiBleHRyYSBvbmUgZm9yIGFsbCAwICovCisJaW50IG51bVtNVFJSX05VTV9UWVBFUyArIDFdOwogCS8qCiAJICogTWFrZSBzdXJlIHdlIG9ubHkgdHJpbSB1bmNhY2hhYmxlIG1lbW9yeSBvbiBtYWNoaW5lcyB0aGF0CiAJICogc3VwcG9ydCB0aGUgSW50ZWwgTVRSUiBhcmNoaXRlY3R1cmU6CkBAIC02NzYsMTQgKzE0NzQsMjIgQEAKIAlpZiAoZGVmICE9IE1UUlJfVFlQRV9VTkNBQ0hBQkxFKQogCQlyZXR1cm4gMDsKIAotCWlmIChhbWRfc3BlY2lhbF9kZWZhdWx0X210cnIoKSkKLQkJcmV0dXJuIDA7CisJLyogZ2V0IGl0IGFuZCBzdG9yZSBpdCBhc2lkZSAqLworCW1lbXNldChyYW5nZV9zdGF0ZSwgMCwgc2l6ZW9mKHJhbmdlX3N0YXRlKSk7CisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJbXRycl9pZi0+Z2V0KGksICZiYXNlLCAmc2l6ZSwgJnR5cGUpOworCQlyYW5nZV9zdGF0ZVtpXS5iYXNlX3BmbiA9IGJhc2U7CisJCXJhbmdlX3N0YXRlW2ldLnNpemVfcGZuID0gc2l6ZTsKKwkJcmFuZ2Vfc3RhdGVbaV0udHlwZSA9IHR5cGU7CisJfQogCiAJLyogRmluZCBoaWdoZXN0IGNhY2hlZCBwZm4gKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgewotCQltdHJyX2lmLT5nZXQoaSwgJmJhc2UsICZzaXplLCAmdHlwZSk7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtpXS50eXBlOwogCQlpZiAodHlwZSAhPSBNVFJSX1RZUEVfV1JCQUNLKQogCQkJY29udGludWU7CisJCWJhc2UgPSByYW5nZV9zdGF0ZVtpXS5iYXNlX3BmbjsKKwkJc2l6ZSA9IHJhbmdlX3N0YXRlW2ldLnNpemVfcGZuOwogCQlpZiAoaGlnaGVzdF9wZm4gPCBiYXNlICsgc2l6ZSkKIAkJCWhpZ2hlc3RfcGZuID0gYmFzZSArIHNpemU7CiAJfQpAQCAtNjk4LDIyICsxNTA0LDY1IEBACiAJCXJldHVybiAwOwogCX0KIAotCWlmIChoaWdoZXN0X3BmbiA8IGVuZF9wZm4pIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiV0FSTklORzogQklPUyBidWc6IENQVSBNVFJScyBkb24ndCBjb3ZlciIKLQkJCSIgYWxsIG9mIG1lbW9yeSwgbG9zaW5nICVsdU1CIG9mIFJBTS5cbiIsCi0JCQkoZW5kX3BmbiAtIGhpZ2hlc3RfcGZuKSA+PiAoMjAgLSBQQUdFX1NISUZUKSk7CisJLyogY2hlY2sgZW50cmllcyBudW1iZXIgKi8KKwltZW1zZXQobnVtLCAwLCBzaXplb2YobnVtKSk7CisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW2ldLnR5cGU7CisJCWlmICh0eXBlID49IE1UUlJfTlVNX1RZUEVTKQorCQkJY29udGludWU7CisJCXNpemUgPSByYW5nZV9zdGF0ZVtpXS5zaXplX3BmbjsKKwkJaWYgKCFzaXplKQorCQkJdHlwZSA9IE1UUlJfTlVNX1RZUEVTOworCQludW1bdHlwZV0rKzsKKwl9CiAKLQkJV0FSTl9PTigxKTsKKwkvKiBubyBlbnRyeSBmb3IgV0I/ICovCisJaWYgKCFudW1bTVRSUl9UWVBFX1dSQkFDS10pCisJCXJldHVybiAwOworCisJLyogY2hlY2sgaWYgd2Ugb25seSBoYWQgV0IgYW5kIFVDICovCisJaWYgKG51bVtNVFJSX1RZUEVfV1JCQUNLXSArIG51bVtNVFJSX1RZUEVfVU5DQUNIQUJMRV0gIT0KKwkJbnVtX3Zhcl9yYW5nZXMgLSBudW1bTVRSUl9OVU1fVFlQRVNdKQorCQlyZXR1cm4gMDsKKworCW1lbXNldChyYW5nZSwgMCwgc2l6ZW9mKHJhbmdlKSk7CisJbnJfcmFuZ2UgPSAwOworCWlmIChtdHJyX3RvbTIpIHsKKwkJcmFuZ2VbbnJfcmFuZ2VdLnN0YXJ0ID0gKDFVTEw8PCgzMiAtIFBBR0VfU0hJRlQpKTsKKwkJcmFuZ2VbbnJfcmFuZ2VdLmVuZCA9IChtdHJyX3RvbTIgPj4gUEFHRV9TSElGVCkgLSAxOworCQlpZiAoaGlnaGVzdF9wZm4gPCByYW5nZVtucl9yYW5nZV0uZW5kICsgMSkKKwkJCWhpZ2hlc3RfcGZuID0gcmFuZ2VbbnJfcmFuZ2VdLmVuZCArIDE7CisJCW5yX3JhbmdlKys7CisJfQorCW5yX3JhbmdlID0geDg2X2dldF9tdHJyX21lbV9yYW5nZShyYW5nZSwgbnJfcmFuZ2UsIDAsIDApOworCisJdG90YWxfdHJpbV9zaXplID0gMDsKKwkvKiBjaGVjayB0aGUgaGVhZCAqLworCWlmIChyYW5nZVswXS5zdGFydCkKKwkJdG90YWxfdHJpbV9zaXplICs9IHJlYWxfdHJpbV9tZW1vcnkoMCwgcmFuZ2VbMF0uc3RhcnQpOworCS8qIGNoZWNrIHRoZSBob2xlcyAqLworCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZSAtIDE7IGkrKykgeworCQlpZiAocmFuZ2VbaV0uZW5kICsgMSA8IHJhbmdlW2krMV0uc3RhcnQpCisJCQl0b3RhbF90cmltX3NpemUgKz0gcmVhbF90cmltX21lbW9yeShyYW5nZVtpXS5lbmQgKyAxLAorCQkJCQkJCSAgICByYW5nZVtpKzFdLnN0YXJ0KTsKKwl9CisJLyogY2hlY2sgdGhlIHRvcCAqLworCWkgPSBucl9yYW5nZSAtIDE7CisJaWYgKHJhbmdlW2ldLmVuZCArIDEgPCBlbmRfcGZuKQorCQl0b3RhbF90cmltX3NpemUgKz0gcmVhbF90cmltX21lbW9yeShyYW5nZVtpXS5lbmQgKyAxLAorCQkJCQkJCSBlbmRfcGZuKTsKKworCWlmICh0b3RhbF90cmltX3NpemUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiV0FSTklORzogQklPUyBidWc6IENQVSBNVFJScyBkb24ndCBjb3ZlciIKKwkJCSIgYWxsIG9mIG1lbW9yeSwgbG9zaW5nICVsbHVNQiBvZiBSQU0uXG4iLAorCQkJdG90YWxfdHJpbV9zaXplID4+IDIwKTsKKworCQlpZiAoIWNoYW5nZWRfYnlfbXRycl9jbGVhbnVwKQorCQkJV0FSTl9PTigxKTsKIAogCQlwcmludGsoS0VSTl9JTkZPICJ1cGRhdGUgZTgyMCBmb3IgbXRyclxuIik7Ci0JCXRyaW1fc3RhcnQgPSBoaWdoZXN0X3BmbjsKLQkJdHJpbV9zdGFydCA8PD0gUEFHRV9TSElGVDsKLQkJdHJpbV9zaXplID0gZW5kX3BmbjsKLQkJdHJpbV9zaXplIDw8PSBQQUdFX1NISUZUOwotCQl0cmltX3NpemUgLT0gdHJpbV9zdGFydDsKLQkJdXBkYXRlX21lbW9yeV9yYW5nZSh0cmltX3N0YXJ0LCB0cmltX3NpemUsIEU4MjBfUkFNLAotCQkJCQlFODIwX1JFU0VSVkVEKTsKIAkJdXBkYXRlX2U4MjAoKTsKKwogCQlyZXR1cm4gMTsKIAl9CiAKQEAgLTcyOSwxOCArMTU3OCwyMSBAQAogICovCiB2b2lkIF9faW5pdCBtdHJyX2JwX2luaXQodm9pZCkKIHsKKwl1MzIgcGh5c19hZGRyOwogCWluaXRfaWZzKCk7CiAKKwlwaHlzX2FkZHIgPSAzMjsKKwogCWlmIChjcHVfaGFzX210cnIpIHsKIAkJbXRycl9pZiA9ICZnZW5lcmljX210cnJfb3BzOwogCQlzaXplX29yX21hc2sgPSAweGZmMDAwMDAwOwkvKiAzNiBiaXRzICovCiAJCXNpemVfYW5kX21hc2sgPSAweDAwZjAwMDAwOworCQlwaHlzX2FkZHIgPSAzNjsKIAogCQkvKiBUaGlzIGlzIGFuIEFNRCBzcGVjaWZpYyBNU1IsIGJ1dCB3ZSBhc3N1bWUoaG9wZT8pIHRoYXQKIAkJICAgSW50ZWwgd2lsbCBpbXBsZW1lbnQgaXQgdG8gd2hlbiB0aGV5IGV4dGVuZCB0aGUgYWRkcmVzcwogCQkgICBidXMgb2YgdGhlIFhlb24uICovCiAJCWlmIChjcHVpZF9lYXgoMHg4MDAwMDAwMCkgPj0gMHg4MDAwMDAwOCkgewotCQkJdTMyIHBoeXNfYWRkcjsKIAkJCXBoeXNfYWRkciA9IGNwdWlkX2VheCgweDgwMDAwMDA4KSAmIDB4ZmY7CiAJCQkvKiBDUFVJRCB3b3JrYXJvdW5kIGZvciBJbnRlbCAwRjMzLzBGMzQgQ1BVICovCiAJCQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgJiYKQEAgLTc1OCw2ICsxNjEwLDcgQEAKIAkJCSAgIGRvbid0IHN1cHBvcnQgUEFFICovCiAJCQlzaXplX29yX21hc2sgPSAweGZmZjAwMDAwOwkvKiAzMiBiaXRzICovCiAJCQlzaXplX2FuZF9tYXNrID0gMDsKKwkJCXBoeXNfYWRkciA9IDMyOwogCQl9CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IpIHsKQEAgLTc5MSw4ICsxNjQ0LDE1IEBACiAJaWYgKG10cnJfaWYpIHsKIAkJc2V0X251bV92YXJfcmFuZ2VzKCk7CiAJCWluaXRfdGFibGUoKTsKLQkJaWYgKHVzZV9pbnRlbCgpKQorCQlpZiAodXNlX2ludGVsKCkpIHsKIAkJCWdldF9tdHJyX3N0YXRlKCk7CisKKwkJCWlmIChtdHJyX2NsZWFudXAocGh5c19hZGRyKSkgeworCQkJCWNoYW5nZWRfYnlfbXRycl9jbGVhbnVwID0gMTsKKwkJCQltdHJyX2lmLT5zZXRfYWxsKCk7CisJCQl9CisKKwkJfQogCX0KIH0KIApAQCAtODI5LDkgKzE2ODksMTAgQEAKIHsKIAlpZiAoIW10cnJfaWYpCiAJCXJldHVybiAwOwotCWlmICh1c2VfaW50ZWwoKSkKLQkJbXRycl9zdGF0ZV93YXJuKCk7Ci0JZWxzZSB7CisJaWYgKHVzZV9pbnRlbCgpKSB7CisJCWlmICghY2hhbmdlZF9ieV9tdHJyX2NsZWFudXApCisJCQltdHJyX3N0YXRlX3dhcm4oKTsKKwl9IGVsc2UgewogCQkvKiBUaGUgQ1BVcyBoYXZlbid0IE1UUlIgYW5kIHNlZW0gdG8gbm90IHN1cHBvcnQgU01QLiBUaGV5IGhhdmUKIAkJICogc3BlY2lmaWMgZHJpdmVycywgd2UgdXNlIGEgdHJpY2t5IG1ldGhvZCB0byBzdXBwb3J0CiAJCSAqIHN1c3BlbmQvcmVzdW1lIGZvciB0aGVtLgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL210cnIuaCBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tdHJyLmgKaW5kZXggMmNjNzdlYi4uMmRjNGVjNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL210cnIuaAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbXRyci5oCkBAIC04MSw2ICs4MSw4IEBACiB2b2lkIHNldF9tdHJyX2NhY2hlX2Rpc2FibGUoc3RydWN0IHNldF9tdHJyX2NvbnRleHQgKmN0eHQpOwogdm9pZCBzZXRfbXRycl9wcmVwYXJlX3NhdmUoc3RydWN0IHNldF9tdHJyX2NvbnRleHQgKmN0eHQpOwogCit2b2lkIGZpbGxfbXRycl92YXJfcmFuZ2UodW5zaWduZWQgaW50IGluZGV4LAorCQl1MzIgYmFzZV9sbywgdTMyIGJhc2VfaGksIHUzMiBtYXNrX2xvLCB1MzIgbWFza19oaSk7CiB2b2lkIGdldF9tdHJyX3N0YXRlKHZvaWQpOwogCiBleHRlcm4gdm9pZCBzZXRfbXRycl9vcHMoc3RydWN0IG10cnJfb3BzICogb3BzKTsKQEAgLTkyLDYgKzk0LDcgQEAKICNkZWZpbmUgdXNlX2ludGVsKCkJKG10cnJfaWYgJiYgbXRycl9pZi0+dXNlX2ludGVsX2lmID09IDEpCiAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbnVtX3Zhcl9yYW5nZXM7CitleHRlcm4gdTY0IG10cnJfdG9tMjsKIAogdm9pZCBtdHJyX3N0YXRlX3dhcm4odm9pZCk7CiBjb25zdCBjaGFyICptdHJyX2F0dHJpYl90b19zdHIoaW50IHgpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmY3RyLXdhdGNoZG9nLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZjdHItd2F0Y2hkb2cuYwppbmRleCBmOWFlOTNhLi4yZTliZWY2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZjdHItd2F0Y2hkb2cuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZjdHItd2F0Y2hkb2cuYwpAQCAtMSwxMSArMSwxNSBAQAotLyogbG9jYWwgYXBpYyBiYXNlZCBOTUkgd2F0Y2hkb2cgZm9yIHZhcmlvdXMgQ1BVcy4KLSAgIFRoaXMgZmlsZSBhbHNvIGhhbmRsZXMgcmVzZXJ2YXRpb24gb2YgcGVyZm9ybWFuY2UgY291bnRlcnMgZm9yIGNvb3JkaW5hdGlvbgotICAgd2l0aCBvdGhlciB1c2VycyAobGlrZSBvcHJvZmlsZSkuCi0KLSAgIE5vdGUgdGhhdCB0aGVzZSBldmVudHMgbm9ybWFsbHkgZG9uJ3QgdGljayB3aGVuIHRoZSBDUFUgaWRsZXMuIFRoaXMgbWVhbnMKLSAgIHRoZSBmcmVxdWVuY3kgdmFyaWVzIHdpdGggQ1BVIGxvYWQuCi0KLSAgIE9yaWdpbmFsIGNvZGUgZm9yIEs3L1A2IHdyaXR0ZW4gYnkgS2VpdGggT3dlbnMgKi8KKy8qCisgKiBsb2NhbCBhcGljIGJhc2VkIE5NSSB3YXRjaGRvZyBmb3IgdmFyaW91cyBDUFVzLgorICoKKyAqIFRoaXMgZmlsZSBhbHNvIGhhbmRsZXMgcmVzZXJ2YXRpb24gb2YgcGVyZm9ybWFuY2UgY291bnRlcnMgZm9yIGNvb3JkaW5hdGlvbgorICogd2l0aCBvdGhlciB1c2VycyAobGlrZSBvcHJvZmlsZSkuCisgKgorICogTm90ZSB0aGF0IHRoZXNlIGV2ZW50cyBub3JtYWxseSBkb24ndCB0aWNrIHdoZW4gdGhlIENQVSBpZGxlcy4gVGhpcyBtZWFucworICogdGhlIGZyZXF1ZW5jeSB2YXJpZXMgd2l0aCBDUFUgbG9hZC4KKyAqCisgKiBPcmlnaW5hbCBjb2RlIGZvciBLNy9QNiB3cml0dGVuIGJ5IEtlaXRoIE93ZW5zCisgKgorICovCiAKICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTM2LDEyICs0MCwxNiBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdkX29wcyAqd2Rfb3BzOwogCi0vKiB0aGlzIG51bWJlciBpcyBjYWxjdWxhdGVkIGZyb20gSW50ZWwncyBNU1JfUDRfQ1JVX0VTQ1I1IHJlZ2lzdGVyIGFuZCBpdCdzCi0gKiBvZmZzZXQgZnJvbSBNU1JfUDRfQlNVX0VTQ1IwLiAgSXQgd2lsbCBiZSB0aGUgbWF4IGZvciBhbGwgcGxhdGZvcm1zIChmb3Igbm93KQorLyoKKyAqIHRoaXMgbnVtYmVyIGlzIGNhbGN1bGF0ZWQgZnJvbSBJbnRlbCdzIE1TUl9QNF9DUlVfRVNDUjUgcmVnaXN0ZXIgYW5kIGl0J3MKKyAqIG9mZnNldCBmcm9tIE1TUl9QNF9CU1VfRVNDUjAuCisgKgorICogSXQgd2lsbCBiZSB0aGUgbWF4IGZvciBhbGwgcGxhdGZvcm1zIChmb3Igbm93KQogICovCiAjZGVmaW5lIE5NSV9NQVhfQ09VTlRFUl9CSVRTIDY2CiAKLS8qIHBlcmZjdHJfbm1pX293bmVyIHRyYWNrcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBwZXJmY3RyIHJlZ2lzdGVyczoKKy8qCisgKiBwZXJmY3RyX25taV9vd25lciB0cmFja3MgdGhlIG93bmVyc2hpcCBvZiB0aGUgcGVyZmN0ciByZWdpc3RlcnM6CiAgKiBldnRzZWxfbm1pX293bmVyIHRyYWNrcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBldmVudCBzZWxlY3Rpb24KICAqIC0gZGlmZmVyZW50IHBlcmZvcm1hbmNlIGNvdW50ZXJzLyBldmVudCBzZWxlY3Rpb24gbWF5IGJlIHJlc2VydmVkIGZvcgogICogICBkaWZmZXJlbnQgc3Vic3lzdGVtcyB0aGlzIHJlc2VydmF0aW9uIHN5c3RlbSBqdXN0IHRyaWVzIHRvIGNvb3JkaW5hdGUKQEAgLTczLDggKzgxLDEwIEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qIGNvbnZlcnRzIGFuIG1zciB0byBhbiBhcHByb3ByaWF0ZSByZXNlcnZhdGlvbiBiaXQgKi8KLS8qIHJldHVybnMgdGhlIGJpdCBvZmZzZXQgb2YgdGhlIGV2ZW50IHNlbGVjdGlvbiByZWdpc3RlciAqLworLyoKKyAqIGNvbnZlcnRzIGFuIG1zciB0byBhbiBhcHByb3ByaWF0ZSByZXNlcnZhdGlvbiBiaXQKKyAqIHJldHVybnMgdGhlIGJpdCBvZmZzZXQgb2YgdGhlIGV2ZW50IHNlbGVjdGlvbiByZWdpc3RlcgorICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBubWlfZXZudHNlbF9tc3JfdG9fYml0KHVuc2lnbmVkIGludCBtc3IpCiB7CiAJLyogcmV0dXJucyB0aGUgYml0IG9mZnNldCBvZiB0aGUgZXZlbnQgc2VsZWN0aW9uIHJlZ2lzdGVyICovCkBAIC0xMTQsNiArMTI0LDcgQEAKIAogCXJldHVybiAoIXRlc3RfYml0KGNvdW50ZXIsIHBlcmZjdHJfbm1pX293bmVyKSk7CiB9CitFWFBPUlRfU1lNQk9MKGF2YWlsX3RvX3Jlc3J2X3BlcmZjdHJfbm1pX2JpdCk7CiAKIGludCByZXNlcnZlX3BlcmZjdHJfbm1pKHVuc2lnbmVkIGludCBtc3IpCiB7CkBAIC0xMjgsNiArMTM5LDcgQEAKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKHJlc2VydmVfcGVyZmN0cl9ubWkpOwogCiB2b2lkIHJlbGVhc2VfcGVyZmN0cl9ubWkodW5zaWduZWQgaW50IG1zcikKIHsKQEAgLTE0MCw2ICsxNTIsNyBAQAogCiAJY2xlYXJfYml0KGNvdW50ZXIsIHBlcmZjdHJfbm1pX293bmVyKTsKIH0KK0VYUE9SVF9TWU1CT0wocmVsZWFzZV9wZXJmY3RyX25taSk7CiAKIGludCByZXNlcnZlX2V2bnRzZWxfbm1pKHVuc2lnbmVkIGludCBtc3IpCiB7CkBAIC0xNTQsNiArMTY3LDcgQEAKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKHJlc2VydmVfZXZudHNlbF9ubWkpOwogCiB2b2lkIHJlbGVhc2VfZXZudHNlbF9ubWkodW5zaWduZWQgaW50IG1zcikKIHsKQEAgLTE2NiwxMSArMTgwLDYgQEAKIAogCWNsZWFyX2JpdChjb3VudGVyLCBldm50c2VsX25taV9vd25lcik7CiB9Ci0KLUVYUE9SVF9TWU1CT0woYXZhaWxfdG9fcmVzcnZfcGVyZmN0cl9ubWlfYml0KTsKLUVYUE9SVF9TWU1CT0wocmVzZXJ2ZV9wZXJmY3RyX25taSk7Ci1FWFBPUlRfU1lNQk9MKHJlbGVhc2VfcGVyZmN0cl9ubWkpOwotRVhQT1JUX1NZTUJPTChyZXNlcnZlX2V2bnRzZWxfbm1pKTsKIEVYUE9SVF9TWU1CT0wocmVsZWFzZV9ldm50c2VsX25taSk7CiAKIHZvaWQgZGlzYWJsZV9sYXBpY19ubWlfd2F0Y2hkb2codm9pZCkKQEAgLTE4MSw3ICsxOTAsOSBAQAogCQlyZXR1cm47CiAKIAlvbl9lYWNoX2NwdShzdG9wX2FwaWNfbm1pX3dhdGNoZG9nLCBOVUxMLCAwLCAxKTsKLQl3ZF9vcHMtPnVucmVzZXJ2ZSgpOworCisJaWYgKHdkX29wcykKKwkJd2Rfb3BzLT51bnJlc2VydmUoKTsKIAogCUJVR19PTihhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgIT0gMCk7CiB9CkBAIC0yMzIsOCArMjQzLDggQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgdm9pZAotd3JpdGVfd2F0Y2hkb2dfY291bnRlcih1bnNpZ25lZCBpbnQgcGVyZmN0cl9tc3IsIGNvbnN0IGNoYXIgKmRlc2NyLCB1bnNpZ25lZCBubWlfaHopCitzdGF0aWMgdm9pZCB3cml0ZV93YXRjaGRvZ19jb3VudGVyKHVuc2lnbmVkIGludCBwZXJmY3RyX21zciwKKwkJCQljb25zdCBjaGFyICpkZXNjciwgdW5zaWduZWQgbm1pX2h6KQogewogCXU2NCBjb3VudCA9ICh1NjQpY3B1X2toeiAqIDEwMDA7CiAKQEAgLTI0NCw3ICsyNTUsNyBAQAogfQogCiBzdGF0aWMgdm9pZCB3cml0ZV93YXRjaGRvZ19jb3VudGVyMzIodW5zaWduZWQgaW50IHBlcmZjdHJfbXNyLAotCQljb25zdCBjaGFyICpkZXNjciwgdW5zaWduZWQgbm1pX2h6KQorCQkJCWNvbnN0IGNoYXIgKmRlc2NyLCB1bnNpZ25lZCBubWlfaHopCiB7CiAJdTY0IGNvdW50ID0gKHU2NCljcHVfa2h6ICogMTAwMDsKIApAQCAtMjU0LDkgKzI2NSwxMCBAQAogCXdybXNyKHBlcmZjdHJfbXNyLCAodTMyKSgtY291bnQpLCAwKTsKIH0KIAotLyogQU1EIEs3L0s4L0ZhbWlseTEwaC9GYW1pbHkxMWggc3VwcG9ydC4gQU1EIGtlZXBzIHRoaXMgaW50ZXJmYWNlCi0gICBuaWNlbHkgc3RhYmxlIHNvIHRoZXJlIGlzIG5vdCBtdWNoIHZhcmlldHkgKi8KLQorLyoKKyAqIEFNRCBLNy9LOC9GYW1pbHkxMGgvRmFtaWx5MTFoIHN1cHBvcnQuCisgKiBBTUQga2VlcHMgdGhpcyBpbnRlcmZhY2UgbmljZWx5IHN0YWJsZSBzbyB0aGVyZSBpcyBub3QgbXVjaCB2YXJpZXR5CisgKi8KICNkZWZpbmUgSzdfRVZOVFNFTF9FTkFCTEUJKDEgPDwgMjIpCiAjZGVmaW5lIEs3X0VWTlRTRUxfSU5UCQkoMSA8PCAyMCkKICNkZWZpbmUgSzdfRVZOVFNFTF9PUwkJKDEgPDwgMTcpCkBAIC0yODksNyArMzAxLDcgQEAKIAogCXdkLT5wZXJmY3RyX21zciA9IHBlcmZjdHJfbXNyOwogCXdkLT5ldm50c2VsX21zciA9IGV2bnRzZWxfbXNyOwotCXdkLT5jY2NyX21zciA9IDA7ICAvL3VudXNlZAorCXdkLT5jY2NyX21zciA9IDA7ICAvKiB1bnVzZWQgKi8KIAlyZXR1cm4gMTsKIH0KIApAQCAtMzI1LDE4ICszMzcsMTkgQEAKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB3ZF9vcHMgazdfd2Rfb3BzID0gewotCS5yZXNlcnZlID0gc2luZ2xlX21zcl9yZXNlcnZlLAotCS51bnJlc2VydmUgPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKLQkuc2V0dXAgPSBzZXR1cF9rN193YXRjaGRvZywKLQkucmVhcm0gPSBzaW5nbGVfbXNyX3JlYXJtLAotCS5zdG9wID0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAotCS5wZXJmY3RyID0gTVNSX0s3X1BFUkZDVFIwLAotCS5ldm50c2VsID0gTVNSX0s3X0VWTlRTRUwwLAotCS5jaGVja2JpdCA9IDFVTEw8PDQ3LAorCS5yZXNlcnZlCT0gc2luZ2xlX21zcl9yZXNlcnZlLAorCS51bnJlc2VydmUJPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKKwkuc2V0dXAJCT0gc2V0dXBfazdfd2F0Y2hkb2csCisJLnJlYXJtCQk9IHNpbmdsZV9tc3JfcmVhcm0sCisJLnN0b3AJCT0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAorCS5wZXJmY3RyCT0gTVNSX0s3X1BFUkZDVFIwLAorCS5ldm50c2VsCT0gTVNSX0s3X0VWTlRTRUwwLAorCS5jaGVja2JpdAk9IDFVTEwgPDwgNDcsCiB9OwogCi0vKiBJbnRlbCBNb2RlbCA2IChQUHJvKyxQMixQMyxQLU0sQ29yZTEpICovCi0KKy8qCisgKiBJbnRlbCBNb2RlbCA2IChQUHJvKyxQMixQMyxQLU0sQ29yZTEpCisgKi8KICNkZWZpbmUgUDZfRVZOVFNFTDBfRU5BQkxFCSgxIDw8IDIyKQogI2RlZmluZSBQNl9FVk5UU0VMX0lOVAkJKDEgPDwgMjApCiAjZGVmaW5lIFA2X0VWTlRTRUxfT1MJCSgxIDw8IDE3KQpAQCAtMzcyLDUyICszODUsNTggQEAKIAogCXdkLT5wZXJmY3RyX21zciA9IHBlcmZjdHJfbXNyOwogCXdkLT5ldm50c2VsX21zciA9IGV2bnRzZWxfbXNyOwotCXdkLT5jY2NyX21zciA9IDA7ICAvL3VudXNlZAorCXdkLT5jY2NyX21zciA9IDA7ICAvKiB1bnVzZWQgKi8KIAlyZXR1cm4gMTsKIH0KIAogc3RhdGljIHZvaWQgcDZfcmVhcm0oc3RydWN0IG5taV93YXRjaGRvZ19jdGxibGsgKndkLCB1bnNpZ25lZCBubWlfaHopCiB7Ci0JLyogUDYgYmFzZWQgUGVudGl1bSBNIG5lZWQgdG8gcmUtdW5tYXNrCisJLyoKKwkgKiBQNiBiYXNlZCBQZW50aXVtIE0gbmVlZCB0byByZS11bm1hc2sKIAkgKiB0aGUgYXBpYyB2ZWN0b3IgYnV0IGl0IGRvZXNuJ3QgaHVydAogCSAqIG90aGVyIFA2IHZhcmlhbnQuCi0JICogQXJjaFBlcmZvbS9Db3JlIER1byBhbHNvIG5lZWRzIHRoaXMgKi8KKwkgKiBBcmNoUGVyZm9tL0NvcmUgRHVvIGFsc28gbmVlZHMgdGhpcworCSAqLwogCWFwaWNfd3JpdGUoQVBJQ19MVlRQQywgQVBJQ19ETV9OTUkpOworCiAJLyogUDYvQVJDSF9QRVJGTU9OIGhhcyAzMiBiaXQgY291bnRlciB3cml0ZSAqLwogCXdyaXRlX3dhdGNoZG9nX2NvdW50ZXIzMih3ZC0+cGVyZmN0cl9tc3IsIE5VTEwsbm1pX2h6KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB3ZF9vcHMgcDZfd2Rfb3BzID0gewotCS5yZXNlcnZlID0gc2luZ2xlX21zcl9yZXNlcnZlLAotCS51bnJlc2VydmUgPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKLQkuc2V0dXAgPSBzZXR1cF9wNl93YXRjaGRvZywKLQkucmVhcm0gPSBwNl9yZWFybSwKLQkuc3RvcCA9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKLQkucGVyZmN0ciA9IE1TUl9QNl9QRVJGQ1RSMCwKLQkuZXZudHNlbCA9IE1TUl9QNl9FVk5UU0VMMCwKLQkuY2hlY2tiaXQgPSAxVUxMPDwzOSwKKwkucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKKwkudW5yZXNlcnZlCT0gc2luZ2xlX21zcl91bnJlc2VydmUsCisJLnNldHVwCQk9IHNldHVwX3A2X3dhdGNoZG9nLAorCS5yZWFybQkJPSBwNl9yZWFybSwKKwkuc3RvcAkJPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCisJLnBlcmZjdHIJPSBNU1JfUDZfUEVSRkNUUjAsCisJLmV2bnRzZWwJPSBNU1JfUDZfRVZOVFNFTDAsCisJLmNoZWNrYml0CT0gMVVMTCA8PCAzOSwKIH07CiAKLS8qIEludGVsIFA0IHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBCeSBmYXIgdGhlIG1vc3QgY29tcGxpY2F0ZWQgb2YgYWxsLiAqLworLyoKKyAqIEludGVsIFA0IHBlcmZvcm1hbmNlIGNvdW50ZXJzLgorICogQnkgZmFyIHRoZSBtb3N0IGNvbXBsaWNhdGVkIG9mIGFsbC4KKyAqLworI2RlZmluZSBNU1JfUDRfTUlTQ19FTkFCTEVfUEVSRl9BVkFJTAkoMSA8PCA3KQorI2RlZmluZSBQNF9FU0NSX0VWRU5UX1NFTEVDVChOKQkoKE4pIDw8IDI1KQorI2RlZmluZSBQNF9FU0NSX09TCQkoMSA8PCAzKQorI2RlZmluZSBQNF9FU0NSX1VTUgkJKDEgPDwgMikKKyNkZWZpbmUgUDRfQ0NDUl9PVkZfUE1JMAkoMSA8PCAyNikKKyNkZWZpbmUgUDRfQ0NDUl9PVkZfUE1JMQkoMSA8PCAyNykKKyNkZWZpbmUgUDRfQ0NDUl9USFJFU0hPTEQoTikJKChOKSA8PCAyMCkKKyNkZWZpbmUgUDRfQ0NDUl9DT01QTEVNRU5UCSgxIDw8IDE5KQorI2RlZmluZSBQNF9DQ0NSX0NPTVBBUkUJCSgxIDw8IDE4KQorI2RlZmluZSBQNF9DQ0NSX1JFUVVJUkVECSgzIDw8IDE2KQorI2RlZmluZSBQNF9DQ0NSX0VTQ1JfU0VMRUNUKE4pCSgoTikgPDwgMTMpCisjZGVmaW5lIFA0X0NDQ1JfRU5BQkxFCQkoMSA8PCAxMikKKyNkZWZpbmUgUDRfQ0NDUl9PVkYgCQkoMSA8PCAzMSkKIAotI2RlZmluZSBNU1JfUDRfTUlTQ19FTkFCTEVfUEVSRl9BVkFJTAkoMTw8NykKLSNkZWZpbmUgUDRfRVNDUl9FVkVOVF9TRUxFQ1QoTikJKChOKTw8MjUpCi0jZGVmaW5lIFA0X0VTQ1JfT1MJCSgxPDwzKQotI2RlZmluZSBQNF9FU0NSX1VTUgkJKDE8PDIpCi0jZGVmaW5lIFA0X0NDQ1JfT1ZGX1BNSTAJKDE8PDI2KQotI2RlZmluZSBQNF9DQ0NSX09WRl9QTUkxCSgxPDwyNykKLSNkZWZpbmUgUDRfQ0NDUl9USFJFU0hPTEQoTikJKChOKTw8MjApCi0jZGVmaW5lIFA0X0NDQ1JfQ09NUExFTUVOVAkoMTw8MTkpCi0jZGVmaW5lIFA0X0NDQ1JfQ09NUEFSRQkJKDE8PDE4KQotI2RlZmluZSBQNF9DQ0NSX1JFUVVJUkVECSgzPDwxNikKLSNkZWZpbmUgUDRfQ0NDUl9FU0NSX1NFTEVDVChOKQkoKE4pPDwxMykKLSNkZWZpbmUgUDRfQ0NDUl9FTkFCTEUJCSgxPDwxMikKLSNkZWZpbmUgUDRfQ0NDUl9PVkYgCQkoMTw8MzEpCi0KLS8qIFNldCB1cCBJUV9DT1VOVEVSMCB0byBiZWhhdmUgbGlrZSBhIGNsb2NrLCBieSBoYXZpbmcgSVFfQ0NDUjAgZmlsdGVyCi0gICBDUlVfRVNDUjAgKHdpdGggYW55IG5vbi1udWxsIGV2ZW50IHNlbGVjdG9yKSB0aHJvdWdoIGEgY29tcGxlbWVudGVkCi0gICBtYXggdGhyZXNob2xkLiBbSUEzMi1Wb2wzLCBTZWN0aW9uIDE0LjkuOV0gKi8KLQorLyoKKyAqIFNldCB1cCBJUV9DT1VOVEVSMCB0byBiZWhhdmUgbGlrZSBhIGNsb2NrLCBieSBoYXZpbmcgSVFfQ0NDUjAgZmlsdGVyCisgKiBDUlVfRVNDUjAgKHdpdGggYW55IG5vbi1udWxsIGV2ZW50IHNlbGVjdG9yKSB0aHJvdWdoIGEgY29tcGxlbWVudGVkCisgKiBtYXggdGhyZXNob2xkLiBbSUEzMi1Wb2wzLCBTZWN0aW9uIDE0LjkuOV0KKyAqLwogc3RhdGljIGludCBzZXR1cF9wNF93YXRjaGRvZyh1bnNpZ25lZCBubWlfaHopCiB7CiAJdW5zaWduZWQgaW50IHBlcmZjdHJfbXNyLCBldm50c2VsX21zciwgY2Njcl9tc3I7CkBAIC00NDIsNyArNDYxLDggQEAKICNlbmRpZgogCQlodF9udW0gPSAwOwogCi0JLyogcGVyZm9ybWFuY2UgY291bnRlcnMgYXJlIHNoYXJlZCByZXNvdXJjZXMKKwkvKgorCSAqIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGFyZSBzaGFyZWQgcmVzb3VyY2VzCiAJICogYXNzaWduIGVhY2ggaHlwZXJ0aHJlYWQgaXRzIG93biBzZXQKIAkgKiAocmUtdXNlIHRoZSBFU0NSMCByZWdpc3Rlciwgc2VlbXMgc2FmZQogCSAqIGFuZCBrZWVwcyB0aGUgY2Njcl92YWwgdGhlIHNhbWUpCkBAIC01NDAsMjAgKzU2MCwyMSBAQAogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdkX29wcyBwNF93ZF9vcHMgPSB7Ci0JLnJlc2VydmUgPSBwNF9yZXNlcnZlLAotCS51bnJlc2VydmUgPSBwNF91bnJlc2VydmUsCi0JLnNldHVwID0gc2V0dXBfcDRfd2F0Y2hkb2csCi0JLnJlYXJtID0gcDRfcmVhcm0sCi0JLnN0b3AgPSBzdG9wX3A0X3dhdGNoZG9nLAorCS5yZXNlcnZlCT0gcDRfcmVzZXJ2ZSwKKwkudW5yZXNlcnZlCT0gcDRfdW5yZXNlcnZlLAorCS5zZXR1cAkJPSBzZXR1cF9wNF93YXRjaGRvZywKKwkucmVhcm0JCT0gcDRfcmVhcm0sCisJLnN0b3AJCT0gc3RvcF9wNF93YXRjaGRvZywKIAkvKiBSRUQtUEVOIHRoaXMgaXMgd3JvbmcgZm9yIHRoZSBvdGhlciBzaWJsaW5nICovCi0JLnBlcmZjdHIgPSBNU1JfUDRfQlBVX1BFUkZDVFIwLAotCS5ldm50c2VsID0gTVNSX1A0X0JTVV9FU0NSMCwKLQkuY2hlY2tiaXQgPSAxVUxMPDwzOSwKKwkucGVyZmN0cgk9IE1TUl9QNF9CUFVfUEVSRkNUUjAsCisJLmV2bnRzZWwJPSBNU1JfUDRfQlNVX0VTQ1IwLAorCS5jaGVja2JpdAk9IDFVTEwgPDwgMzksCiB9OwogCi0vKiBXYXRjaGRvZyB1c2luZyB0aGUgSW50ZWwgYXJjaGl0ZWN0ZWQgUGVyZk1vbi4gVXNlZCBmb3IgQ29yZTIgYW5kIGhvcGVmdWxseQotICAgYWxsIGZ1dHVyZSBJbnRlbCBDUFVzLiAqLwotCisvKgorICogV2F0Y2hkb2cgdXNpbmcgdGhlIEludGVsIGFyY2hpdGVjdGVkIFBlcmZNb24uCisgKiBVc2VkIGZvciBDb3JlMiBhbmQgaG9wZWZ1bGx5IGFsbCBmdXR1cmUgSW50ZWwgQ1BVcy4KKyAqLwogI2RlZmluZSBBUkNIX1BFUkZNT05fTk1JX0VWRU5UX1NFTAlBUkNIX1BFUkZNT05fVU5IQUxURURfQ09SRV9DWUNMRVNfU0VMCiAjZGVmaW5lIEFSQ0hfUEVSRk1PTl9OTUlfRVZFTlRfVU1BU0sJQVJDSF9QRVJGTU9OX1VOSEFMVEVEX0NPUkVfQ1lDTEVTX1VNQVNLCiAKQEAgLTU5OSwxOSArNjIwLDE5IEBACiAKIAl3ZC0+cGVyZmN0cl9tc3IgPSBwZXJmY3RyX21zcjsKIAl3ZC0+ZXZudHNlbF9tc3IgPSBldm50c2VsX21zcjsKLQl3ZC0+Y2Njcl9tc3IgPSAwOyAgLy91bnVzZWQKKwl3ZC0+Y2Njcl9tc3IgPSAwOyAgLyogdW51c2VkICovCiAJaW50ZWxfYXJjaF93ZF9vcHMuY2hlY2tiaXQgPSAxVUxMIDw8IChlYXguc3BsaXQuYml0X3dpZHRoIC0gMSk7CiAJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgd2Rfb3BzIGludGVsX2FyY2hfd2Rfb3BzIF9fcmVhZF9tb3N0bHkgPSB7Ci0JLnJlc2VydmUgPSBzaW5nbGVfbXNyX3Jlc2VydmUsCi0JLnVucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAotCS5zZXR1cCA9IHNldHVwX2ludGVsX2FyY2hfd2F0Y2hkb2csCi0JLnJlYXJtID0gcDZfcmVhcm0sCi0JLnN0b3AgPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCi0JLnBlcmZjdHIgPSBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIxLAotCS5ldm50c2VsID0gTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDEsCisJLnJlc2VydmUJPSBzaW5nbGVfbXNyX3Jlc2VydmUsCisJLnVucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAorCS5zZXR1cAkJPSBzZXR1cF9pbnRlbF9hcmNoX3dhdGNoZG9nLAorCS5yZWFybQkJPSBwNl9yZWFybSwKKwkuc3RvcAkJPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCisJLnBlcmZjdHIJPSBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIxLAorCS5ldm50c2VsCT0gTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDEsCiB9OwogCiBzdGF0aWMgdm9pZCBwcm9iZV9ubWlfd2F0Y2hkb2codm9pZCkKQEAgLTYyNCw4ICs2NDUsMTAgQEAKIAkJd2Rfb3BzID0gJms3X3dkX29wczsKIAkJYnJlYWs7CiAJY2FzZSBYODZfVkVORE9SX0lOVEVMOgotCQkvKiBXb3JrIGFyb3VuZCBDb3JlIER1byAoWW9uYWgpIGVycmF0YSBBRTQ5IHdoZXJlIHBlcmZjdHIxCi0JCSAgIGRvZXNuJ3QgaGF2ZSBhIHdvcmtpbmcgZW5hYmxlIGJpdC4gKi8KKwkJLyoKKwkJICogV29yayBhcm91bmQgQ29yZSBEdW8gKFlvbmFoKSBlcnJhdGEgQUU0OSB3aGVyZSBwZXJmY3RyMQorCQkgKiBkb2Vzbid0IGhhdmUgYSB3b3JraW5nIGVuYWJsZSBiaXQuCisJCSAqLwogCQlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gNiAmJiBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSAxNCkgewogCQkJaW50ZWxfYXJjaF93ZF9vcHMucGVyZmN0ciA9IE1TUl9BUkNIX1BFUkZNT05fUEVSRkNUUjA7CiAJCQlpbnRlbF9hcmNoX3dkX29wcy5ldm50c2VsID0gTVNSX0FSQ0hfUEVSRk1PTl9FVkVOVFNFTDA7CkBAIC02MzYsNyArNjU5LDcgQEAKIAkJfQogCQlzd2l0Y2ggKGJvb3RfY3B1X2RhdGEueDg2KSB7CiAJCWNhc2UgNjoKLQkJCWlmIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA+IDB4ZCkKKwkJCWlmIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA+IDEzKQogCQkJCXJldHVybjsKIAogCQkJd2Rfb3BzID0gJnA2X3dkX29wczsKQEAgLTY5NywxMCArNzIwLDExIEBACiB7CiAJc3RydWN0IG5taV93YXRjaGRvZ19jdGxibGsgKndkID0gJl9fZ2V0X2NwdV92YXIobm1pX3dhdGNoZG9nX2N0bGJsayk7CiAJdTY0IGN0cjsKKwogCXJkbXNybCh3ZC0+cGVyZmN0cl9tc3IsIGN0cik7Ci0JaWYgKGN0ciAmIHdkX29wcy0+Y2hlY2tiaXQpIHsgLyogcGVyZmN0ciBzdGlsbCBydW5uaW5nPyAqLworCWlmIChjdHIgJiB3ZF9vcHMtPmNoZWNrYml0KSAvKiBwZXJmY3RyIHN0aWxsIHJ1bm5pbmc/ICovCiAJCXJldHVybiAwOwotCX0KKwogCXdkX29wcy0+cmVhcm0od2QsIG5taV9oeik7CiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1aWQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHVpZC5jCmluZGV4IGRhZmY1MmEuLjcxZjFjMjYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHVpZC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHVpZC5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgpAQCAtMTA3LDE1ICsxMDgsMjMgQEAKIAogc3RhdGljIGludCBjcHVpZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCXVuc2lnbmVkIGludCBjcHUgPSBpbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7Ci0Jc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRhKGNwdSk7CisJdW5zaWduZWQgaW50IGNwdTsKKwlzdHJ1Y3QgY3B1aW5mb194ODYgKmM7CisJaW50IHJldCA9IDA7CisJCisJbG9ja19rZXJuZWwoKTsKIAotCWlmIChjcHUgPj0gTlJfQ1BVUyB8fCAhY3B1X29ubGluZShjcHUpKQotCQlyZXR1cm4gLUVOWElPOwkvKiBObyBzdWNoIENQVSAqLworCWNwdSA9IGltaW5vcihmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKKwlpZiAoY3B1ID49IE5SX0NQVVMgfHwgIWNwdV9vbmxpbmUoY3B1KSkgeworCQlyZXQgPSAtRU5YSU87CS8qIE5vIHN1Y2ggQ1BVICovCisJCWdvdG8gb3V0OworCX0KKwljID0gJmNwdV9kYXRhKGNwdSk7CiAJaWYgKGMtPmNwdWlkX2xldmVsIDwgMCkKLQkJcmV0dXJuIC1FSU87CS8qIENQVUlEIG5vdCBzdXBwb3J0ZWQgKi8KLQotCXJldHVybiAwOworCQlyZXQgPSAtRUlPOwkvKiBDUFVJRCBub3Qgc3VwcG9ydGVkICovCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMC5jIGIvYXJjaC94ODYva2VybmVsL2U4MjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGMyOTE4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2U4MjAuYwpAQCAtMCwwICsxLDEzOTAgQEAKKy8qCisgKiBIYW5kbGUgdGhlIG1lbW9yeSBtYXAuCisgKiBUaGUgZnVuY3Rpb25zIGhlcmUgZG8gdGhlIGpvYiB1bnRpbCBib290bWVtIHRha2VzIG92ZXIuCisgKgorICogIEdldHRpbmcgc2FuaXRpemVfZTgyMF9tYXAoKSBpbiBzeW5jIHdpdGggaTM4NiB2ZXJzaW9uIGJ5IGFwcGx5aW5nIGNoYW5nZToKKyAqICAtICBQcm92aXNpb25zIGZvciBlbXB0eSBFODIwIG1lbW9yeSByZWdpb25zIChyZXBvcnRlZCBieSBjZXJ0YWluIEJJT1NlcykuCisgKiAgICAgQWxleCBBY2hlbmJhY2ggPHhlbGFAc2xpdC5kZT4sIERlY2VtYmVyIDIwMDIuCisgKiAgVmVua2F0ZXNoIFBhbGxpcGFkaSA8dmVua2F0ZXNoLnBhbGxpcGFkaUBpbnRlbC5jb20+CisgKgorICovCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wZm4uaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUtbWFwLmg+CisKKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgorCisvKgorICogVGhlIGU4MjAgbWFwIGlzIHRoZSBtYXAgdGhhdCBnZXRzIG1vZGlmaWVkIGUuZy4gd2l0aCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycworICogYW5kIHRoYXQgaXMgYWxzbyByZWdpc3RlcmVkIHdpdGggbW9kaWZpY2F0aW9ucyBpbiB0aGUga2VybmVsIHJlc291cmNlIHRyZWUKKyAqIHdpdGggdGhlIGlvbWVtX3Jlc291cmNlIGFzIHBhcmVudC4KKyAqCisgKiBUaGUgZTgyMF9zYXZlZCBpcyBkaXJlY3RseSBzYXZlZCBhZnRlciB0aGUgQklPUy1wcm92aWRlZCBtZW1vcnkgbWFwIGlzCisgKiBjb3BpZWQuIEl0IGRvZXNuJ3QgZ2V0IG1vZGlmaWVkIGFmdGVyd2FyZHMuIEl0J3MgcmVnaXN0ZXJlZCBmb3IgdGhlCisgKiAvc3lzL2Zpcm13YXJlL21lbW1hcCBpbnRlcmZhY2UuCisgKgorICogVGhhdCBtZW1vcnkgbWFwIGlzIG5vdCBtb2RpZmllZCBhbmQgaXMgdXNlZCBhcyBiYXNlIGZvciBrZXhlYy4gVGhlIGtleGVjJ2QKKyAqIGtlcm5lbCBzaG91bGQgZ2V0IHRoZSBzYW1lIG1lbW9yeSBtYXAgYXMgdGhlIGZpcm13YXJlIHByb3ZpZGVzLiBUaGVuIHRoZQorICogdXNlciBjYW4gZS5nLiBib290IHRoZSBvcmlnaW5hbCBrZXJuZWwgd2l0aCBtZW09MUcgd2hpbGUgc3RpbGwgYm9vdGluZyB0aGUKKyAqIG5leHQga2VybmVsIHdpdGggZnVsbCBtZW1vcnkuCisgKi8KK3N0cnVjdCBlODIwbWFwIGU4MjA7CitzdHJ1Y3QgZTgyMG1hcCBlODIwX3NhdmVkOworCisvKiBGb3IgUENJIG9yIG90aGVyIG1lbW9yeS1tYXBwZWQgcmVzb3VyY2VzICovCit1bnNpZ25lZCBsb25nIHBjaV9tZW1fc3RhcnQgPSAweGFlZWRiYWJlOworI2lmZGVmIENPTkZJR19QQ0kKK0VYUE9SVF9TWU1CT0wocGNpX21lbV9zdGFydCk7CisjZW5kaWYKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGFueSBwYXJ0IG9mIHRoZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQKKyAqIHdpdGggdHlwZS4KKyAqLworaW50CitlODIwX2FueV9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisKKwkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCisJCQljb250aW51ZTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZTgyMF9hbnlfbWFwcGVkKTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBlbnRpcmUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkIHdpdGggdHlwZS4KKyAqCisgKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIG9ubHkgd29ya3MgY29ycmVjdCBpZiB0aGUgZTgyMCB0YWJsZSBpcyBzb3J0ZWQgYW5kCisgKiBub3Qtb3ZlcmxhcHBpbmcsIHdoaWNoIGlzIHRoZSBjYXNlCisgKi8KK2ludCBfX2luaXQgZTgyMF9hbGxfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCisJCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCisJCQljb250aW51ZTsKKwkJLyogaXMgdGhlIHJlZ2lvbiAocGFydCkgaW4gb3ZlcmxhcCB3aXRoIHRoZSBjdXJyZW50IHJlZ2lvbiA/Ki8KKwkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQorCQkJY29udGludWU7CisKKwkJLyogaWYgdGhlIHJlZ2lvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIDxzdGFydCxlbmQ+IHdlIG1vdmUKKwkJICogc3RhcnQgdG8gdGhlIGVuZCBvZiB0aGUgcmVnaW9uIHNpbmNlIGl0J3Mgb2sgdW50aWwgdGhlcmUKKwkJICovCisJCWlmIChlaS0+YWRkciA8PSBzdGFydCkKKwkJCXN0YXJ0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKKwkJLyoKKwkJICogaWYgc3RhcnQgaXMgbm93IGF0IG9yIGJleW9uZCBlbmQsIHdlJ3JlIGRvbmUsIGZ1bGwKKwkJICogY292ZXJhZ2UKKwkJICovCisJCWlmIChzdGFydCA+PSBlbmQpCisJCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBBZGQgYSBtZW1vcnkgcmVnaW9uIHRvIHRoZSBrZXJuZWwgZTgyMCBtYXAuCisgKi8KK3ZvaWQgX19pbml0IGU4MjBfYWRkX3JlZ2lvbih1NjQgc3RhcnQsIHU2NCBzaXplLCBpbnQgdHlwZSkKK3sKKwlpbnQgeCA9IGU4MjAubnJfbWFwOworCisJaWYgKHggPT0gQVJSQVlfU0laRShlODIwLm1hcCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJPb29wcyEgVG9vIG1hbnkgZW50cmllcyBpbiB0aGUgbWVtb3J5IG1hcCFcbiIpOworCQlyZXR1cm47CisJfQorCisJZTgyMC5tYXBbeF0uYWRkciA9IHN0YXJ0OworCWU4MjAubWFwW3hdLnNpemUgPSBzaXplOworCWU4MjAubWFwW3hdLnR5cGUgPSB0eXBlOworCWU4MjAubnJfbWFwKys7Cit9CisKK3ZvaWQgX19pbml0IGU4MjBfcHJpbnRfbWFwKGNoYXIgKndobykKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiAlczogJTAxNkx4IC0gJTAxNkx4ICIsIHdobywKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGU4MjAubWFwW2ldLmFkZHIsCisJCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKQorCQkgICAgICAgKGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplKSk7CisJCXN3aXRjaCAoZTgyMC5tYXBbaV0udHlwZSkgeworCQljYXNlIEU4MjBfUkFNOgorCQljYXNlIEU4MjBfUkVTRVJWRURfS0VSTjoKKwkJCXByaW50ayhLRVJOX0NPTlQgIih1c2FibGUpXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIEU4MjBfUkVTRVJWRUQ6CisJCQlwcmludGsoS0VSTl9DT05UICIocmVzZXJ2ZWQpXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIEU4MjBfQUNQSToKKwkJCXByaW50ayhLRVJOX0NPTlQgIihBQ1BJIGRhdGEpXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIEU4MjBfTlZTOgorCQkJcHJpbnRrKEtFUk5fQ09OVCAiKEFDUEkgTlZTKVxuIik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXByaW50ayhLRVJOX0NPTlQgInR5cGUgJXVcbiIsIGU4MjAubWFwW2ldLnR5cGUpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKy8qCisgKiBTYW5pdGl6ZSB0aGUgQklPUyBlODIwIG1hcC4KKyAqCisgKiBTb21lIGU4MjAgcmVzcG9uc2VzIGluY2x1ZGUgb3ZlcmxhcHBpbmcgZW50cmllcy4gVGhlIGZvbGxvd2luZworICogcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGU4MjAgbWFwIHdpdGggYSBuZXcgb25lLCByZW1vdmluZyBvdmVybGFwcywKKyAqIGFuZCByZXNvbHZpbmcgY29uZmxpY3RpbmcgbWVtb3J5IHR5cGVzIGluIGZhdm9yIG9mIGhpZ2hlc3QKKyAqIG51bWJlcmVkIHR5cGUuCisgKgorICogVGhlIGlucHV0IHBhcmFtZXRlciBiaW9zbWFwIHBvaW50cyB0byBhbiBhcnJheSBvZiAnc3RydWN0CisgKiBlODIwZW50cnknIHdoaWNoIG9uIGVudHJ5IGhhcyBlbGVtZW50cyBpbiB0aGUgcmFuZ2UgWzAsICpwbnJfbWFwKQorICogdmFsaWQsIGFuZCB3aGljaCBoYXMgc3BhY2UgZm9yIHVwIHRvIG1heF9ucl9tYXAgZW50cmllcy4KKyAqIE9uIHJldHVybiwgdGhlIHJlc3VsdGluZyBzYW5pdGl6ZWQgZTgyMCBtYXAgZW50cmllcyB3aWxsIGJlIGluCisgKiBvdmVyd3JpdHRlbiBpbiB0aGUgc2FtZSBsb2NhdGlvbiwgc3RhcnRpbmcgYXQgYmlvc21hcC4KKyAqCisgKiBUaGUgaW50ZWdlciBwb2ludGVkIHRvIGJ5IHBucl9tYXAgbXVzdCBiZSB2YWxpZCBvbiBlbnRyeSAodGhlCisgKiBjdXJyZW50IG51bWJlciBvZiB2YWxpZCBlbnRyaWVzIGxvY2F0ZWQgYXQgYmlvc21hcCkgYW5kIHdpbGwKKyAqIGJlIHVwZGF0ZWQgb24gcmV0dXJuLCB3aXRoIHRoZSBuZXcgbnVtYmVyIG9mIHZhbGlkIGVudHJpZXMKKyAqIChzb21ldGhpbmcgbm8gbW9yZSB0aGFuIG1heF9ucl9tYXAuKQorICoKKyAqIFRoZSByZXR1cm4gdmFsdWUgZnJvbSBzYW5pdGl6ZV9lODIwX21hcCgpIGlzIHplcm8gaWYgaXQKKyAqIHN1Y2Nlc3NmdWxseSAnc2FuaXRpemVkJyB0aGUgbWFwIGVudHJpZXMgcGFzc2VkIGluLCBhbmQgaXMgLTEKKyAqIGlmIGl0IGRpZCBub3RoaW5nLCB3aGljaCBjYW4gaGFwcGVuIGlmIGVpdGhlciBvZiAoMSkgaXQgd2FzCisgKiBvbmx5IHBhc3NlZCBvbmUgbWFwIGVudHJ5LCBvciAoMikgYW55IG9mIHRoZSBpbnB1dCBtYXAgZW50cmllcworICogd2VyZSBpbnZhbGlkIChzdGFydCArIHNpemUgPCBzdGFydCwgbWVhbmluZyB0aGF0IHRoZSBzaXplIHdhcworICogc28gYmlnIHRoZSBkZXNjcmliZWQgbWVtb3J5IHJhbmdlIHdyYXBwZWQgYXJvdW5kIHRocm91Z2ggemVyby4pCisgKgorICoJVmlzdWFsbHkgd2UncmUgcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nCisgKgkoMSwyLDMsNCA9IG1lbW9yeSB0eXBlcykuLi4KKyAqCisgKglTYW1wbGUgbWVtb3J5IG1hcCAody9vdmVybGFwcyk6CisgKgkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX19fX180XworICoJICAgX19fXzExMTFfX19fX19fX19fX19fX19fCisgKgkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KKyAqCSAgIDExMTExMTExX19fX19fX19fX19fX19fXworICoJICAgX19fX19fX19fX19fX19fX19fX18zM19fCisgKgkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX18zMzMzM19fX19fX19fXworICoJICAgX19fX19fX19fX19fX18yMl9fX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fMjIyMl8KKyAqCSAgIF9fX19fX19fXzExMTExMTExMV9fX19fXworICoJICAgX19fX19fX19fX19fX19fX19fX19fMTFfCisgKgkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KKyAqCisgKglTYW5pdGl6ZWQgZXF1aXZhbGVudCAobm8gb3ZlcmxhcCk6CisgKgkgICAxX19fX19fX19fX19fX19fX19fX19fX18KKyAqCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXworICoJICAgX19fMV9fX19fX19fX19fX19fX19fX19fCisgKgkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KKyAqCSAgIF9fX19fXzExX19fX19fX19fX19fX19fXworICoJICAgX19fX19fX19fMV9fX19fX19fX19fX19fCisgKgkgICBfX19fX19fX19fM19fX19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXworICoJICAgX19fX19fX19fX19fXzMzX19fX19fX19fCisgKgkgICBfX19fX19fX19fX19fX18yX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX18xX19fX19fXworICoJICAgX19fX19fX19fX19fX19fX180X19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fMl9fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXworICoJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCisgKi8KKworaW50IF9faW5pdCBzYW5pdGl6ZV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbWF4X25yX21hcCwKKwkJCQlpbnQgKnBucl9tYXApCit7CisJc3RydWN0IGNoYW5nZV9tZW1iZXIgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICpwYmlvczsgLyogcG9pbnRlciB0byBvcmlnaW5hbCBiaW9zIGVudHJ5ICovCisJCXVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyOyAvKiBhZGRyZXNzIGZvciB0aGlzIGNoYW5nZSBwb2ludCAqLworCX07CisJc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyIGNoYW5nZV9wb2ludF9saXN0WzIqRTgyMF9YX01BWF0gX19pbml0ZGF0YTsKKwlzdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV9wb2ludFsyKkU4MjBfWF9NQVhdIF9faW5pdGRhdGE7CisJc3RhdGljIHN0cnVjdCBlODIwZW50cnkgKm92ZXJsYXBfbGlzdFtFODIwX1hfTUFYXSBfX2luaXRkYXRhOworCXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5IG5ld19iaW9zW0U4MjBfWF9NQVhdIF9faW5pdGRhdGE7CisJc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV90bXA7CisJdW5zaWduZWQgbG9uZyBjdXJyZW50X3R5cGUsIGxhc3RfdHlwZTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF9hZGRyOworCWludCBjaGdpZHgsIHN0aWxsX2NoYW5naW5nOworCWludCBvdmVybGFwX2VudHJpZXM7CisJaW50IG5ld19iaW9zX2VudHJ5OworCWludCBvbGRfbnIsIG5ld19uciwgY2hnX25yOworCWludCBpOworCisJLyogaWYgdGhlcmUncyBvbmx5IG9uZSBtZW1vcnkgcmVnaW9uLCBkb24ndCBib3RoZXIgKi8KKwlpZiAoKnBucl9tYXAgPCAyKQorCQlyZXR1cm4gLTE7CisKKwlvbGRfbnIgPSAqcG5yX21hcDsKKwlCVUdfT04ob2xkX25yID4gbWF4X25yX21hcCk7CisKKwkvKiBiYWlsIG91dCBpZiB3ZSBmaW5kIGFueSB1bnJlYXNvbmFibGUgYWRkcmVzc2VzIGluIGJpb3MgbWFwICovCisJZm9yIChpID0gMDsgaSA8IG9sZF9ucjsgaSsrKQorCQlpZiAoYmlvc21hcFtpXS5hZGRyICsgYmlvc21hcFtpXS5zaXplIDwgYmlvc21hcFtpXS5hZGRyKQorCQkJcmV0dXJuIC0xOworCisJLyogY3JlYXRlIHBvaW50ZXJzIGZvciBpbml0aWFsIGNoYW5nZS1wb2ludCBpbmZvcm1hdGlvbiAoZm9yIHNvcnRpbmcpICovCisJZm9yIChpID0gMDsgaSA8IDIgKiBvbGRfbnI7IGkrKykKKwkJY2hhbmdlX3BvaW50W2ldID0gJmNoYW5nZV9wb2ludF9saXN0W2ldOworCisJLyogcmVjb3JkIGFsbCBrbm93biBjaGFuZ2UtcG9pbnRzIChzdGFydGluZyBhbmQgZW5kaW5nIGFkZHJlc3NlcyksCisJICAgb21pdHRpbmcgdGhvc2UgdGhhdCBhcmUgZm9yIGVtcHR5IG1lbW9yeSByZWdpb25zICovCisJY2hnaWR4ID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgb2xkX25yOyBpKyspCXsKKwkJaWYgKGJpb3NtYXBbaV0uc2l6ZSAhPSAwKSB7CisJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkcjsKKwkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07CisJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkciArCisJCQkJYmlvc21hcFtpXS5zaXplOworCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKKwkJfQorCX0KKwljaGdfbnIgPSBjaGdpZHg7CisKKwkvKiBzb3J0IGNoYW5nZS1wb2ludCBsaXN0IGJ5IG1lbW9yeSBhZGRyZXNzZXMgKGxvdyAtPiBoaWdoKSAqLworCXN0aWxsX2NoYW5naW5nID0gMTsKKwl3aGlsZSAoc3RpbGxfY2hhbmdpbmcpCXsKKwkJc3RpbGxfY2hhbmdpbmcgPSAwOworCQlmb3IgKGkgPSAxOyBpIDwgY2hnX25yOyBpKyspICB7CisJCQl1bnNpZ25lZCBsb25nIGxvbmcgY3VyYWRkciwgbGFzdGFkZHI7CisJCQl1bnNpZ25lZCBsb25nIGxvbmcgY3VycGJhZGRyLCBsYXN0cGJhZGRyOworCisJCQljdXJhZGRyID0gY2hhbmdlX3BvaW50W2ldLT5hZGRyOworCQkJbGFzdGFkZHIgPSBjaGFuZ2VfcG9pbnRbaSAtIDFdLT5hZGRyOworCQkJY3VycGJhZGRyID0gY2hhbmdlX3BvaW50W2ldLT5wYmlvcy0+YWRkcjsKKwkJCWxhc3RwYmFkZHIgPSBjaGFuZ2VfcG9pbnRbaSAtIDFdLT5wYmlvcy0+YWRkcjsKKworCQkJLyoKKwkJCSAqIHN3YXAgZW50cmllcywgd2hlbjoKKwkJCSAqCisJCQkgKiBjdXJhZGRyID4gbGFzdGFkZHIgb3IKKwkJCSAqIGN1cmFkZHIgPT0gbGFzdGFkZHIgYW5kIGN1cmFkZHIgPT0gY3VycGJhZGRyIGFuZAorCQkJICogbGFzdGFkZHIgIT0gbGFzdHBiYWRkcgorCQkJICovCisJCQlpZiAoY3VyYWRkciA8IGxhc3RhZGRyIHx8CisJCQkgICAgKGN1cmFkZHIgPT0gbGFzdGFkZHIgJiYgY3VyYWRkciA9PSBjdXJwYmFkZHIgJiYKKwkJCSAgICAgbGFzdGFkZHIgIT0gbGFzdHBiYWRkcikpIHsKKwkJCQljaGFuZ2VfdG1wID0gY2hhbmdlX3BvaW50W2ldOworCQkJCWNoYW5nZV9wb2ludFtpXSA9IGNoYW5nZV9wb2ludFtpLTFdOworCQkJCWNoYW5nZV9wb2ludFtpLTFdID0gY2hhbmdlX3RtcDsKKwkJCQlzdGlsbF9jaGFuZ2luZyA9IDE7CisJCQl9CisJCX0KKwl9CisKKwkvKiBjcmVhdGUgYSBuZXcgYmlvcyBtZW1vcnkgbWFwLCByZW1vdmluZyBvdmVybGFwcyAqLworCW92ZXJsYXBfZW50cmllcyA9IDA7CSAvKiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgb3ZlcmxhcCB0YWJsZSAqLworCW5ld19iaW9zX2VudHJ5ID0gMDsJIC8qIGluZGV4IGZvciBjcmVhdGluZyBuZXcgYmlvcyBtYXAgZW50cmllcyAqLworCWxhc3RfdHlwZSA9IDA7CQkgLyogc3RhcnQgd2l0aCB1bmRlZmluZWQgbWVtb3J5IHR5cGUgKi8KKwlsYXN0X2FkZHIgPSAwOwkJIC8qIHN0YXJ0IHdpdGggMCBhcyBsYXN0IHN0YXJ0aW5nIGFkZHJlc3MgKi8KKworCS8qIGxvb3AgdGhyb3VnaCBjaGFuZ2UtcG9pbnRzLCBkZXRlcm1pbmluZyBhZmZlY3Qgb24gdGhlIG5ldyBiaW9zIG1hcCAqLworCWZvciAoY2hnaWR4ID0gMDsgY2hnaWR4IDwgY2hnX25yOyBjaGdpZHgrKykgeworCQkvKiBrZWVwIHRyYWNrIG9mIGFsbCBvdmVybGFwcGluZyBiaW9zIGVudHJpZXMgKi8KKwkJaWYgKGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID09CisJCSAgICBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MtPmFkZHIpIHsKKwkJCS8qCisJCQkgKiBhZGQgbWFwIGVudHJ5IHRvIG92ZXJsYXAgbGlzdCAoPiAxIGVudHJ5CisJCQkgKiBpbXBsaWVzIGFuIG92ZXJsYXApCisJCQkgKi8KKwkJCW92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMrK10gPQorCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvczsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiByZW1vdmUgZW50cnkgZnJvbSBsaXN0IChvcmRlciBpbmRlcGVuZGVudCwKKwkJCSAqIHNvIHN3YXAgd2l0aCBsYXN0KQorCQkJICovCisJCQlmb3IgKGkgPSAwOyBpIDwgb3ZlcmxhcF9lbnRyaWVzOyBpKyspIHsKKwkJCQlpZiAob3ZlcmxhcF9saXN0W2ldID09CisJCQkJICAgIGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcykKKwkJCQkJb3ZlcmxhcF9saXN0W2ldID0KKwkJCQkJCW92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMtMV07CisJCQl9CisJCQlvdmVybGFwX2VudHJpZXMtLTsKKwkJfQorCQkvKgorCQkgKiBpZiB0aGVyZSBhcmUgb3ZlcmxhcHBpbmcgZW50cmllcywgZGVjaWRlIHdoaWNoCisJCSAqICJ0eXBlIiB0byB1c2UgKGxhcmdlciB2YWx1ZSB0YWtlcyBwcmVjZWRlbmNlIC0tCisJCSAqIDE9dXNhYmxlLCAyLDMsNCw0Kz11bnVzYWJsZSkKKwkJICovCisJCWN1cnJlbnRfdHlwZSA9IDA7CisJCWZvciAoaSA9IDA7IGkgPCBvdmVybGFwX2VudHJpZXM7IGkrKykKKwkJCWlmIChvdmVybGFwX2xpc3RbaV0tPnR5cGUgPiBjdXJyZW50X3R5cGUpCisJCQkJY3VycmVudF90eXBlID0gb3ZlcmxhcF9saXN0W2ldLT50eXBlOworCQkvKgorCQkgKiBjb250aW51ZSBidWlsZGluZyB1cCBuZXcgYmlvcyBtYXAgYmFzZWQgb24gdGhpcworCQkgKiBpbmZvcm1hdGlvbgorCQkgKi8KKwkJaWYgKGN1cnJlbnRfdHlwZSAhPSBsYXN0X3R5cGUpCXsKKwkJCWlmIChsYXN0X3R5cGUgIT0gMCkJIHsKKwkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSA9CisJCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyIC0gbGFzdF9hZGRyOworCQkJCS8qCisJCQkJICogbW92ZSBmb3J3YXJkIG9ubHkgaWYgdGhlIG5ldyBzaXplCisJCQkJICogd2FzIG5vbi16ZXJvCisJCQkJICovCisJCQkJaWYgKG5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplICE9IDApCisJCQkJCS8qCisJCQkJCSAqIG5vIG1vcmUgc3BhY2UgbGVmdCBmb3IgbmV3CisJCQkJCSAqIGJpb3MgZW50cmllcyA/CisJCQkJCSAqLworCQkJCQlpZiAoKytuZXdfYmlvc19lbnRyeSA+PSBtYXhfbnJfbWFwKQorCQkJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoY3VycmVudF90eXBlICE9IDApCXsKKwkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uYWRkciA9CisJCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOworCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS50eXBlID0gY3VycmVudF90eXBlOworCQkJCWxhc3RfYWRkciA9IGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOworCQkJfQorCQkJbGFzdF90eXBlID0gY3VycmVudF90eXBlOworCQl9CisJfQorCS8qIHJldGFpbiBjb3VudCBmb3IgbmV3IGJpb3MgZW50cmllcyAqLworCW5ld19uciA9IG5ld19iaW9zX2VudHJ5OworCisJLyogY29weSBuZXcgYmlvcyBtYXBwaW5nIGludG8gb3JpZ2luYWwgbG9jYXRpb24gKi8KKwltZW1jcHkoYmlvc21hcCwgbmV3X2Jpb3MsIG5ld19uciAqIHNpemVvZihzdHJ1Y3QgZTgyMGVudHJ5KSk7CisJKnBucl9tYXAgPSBuZXdfbnI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgX19hcHBlbmRfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCkKK3sKKwl3aGlsZSAobnJfbWFwKSB7CisJCXU2NCBzdGFydCA9IGJpb3NtYXAtPmFkZHI7CisJCXU2NCBzaXplID0gYmlvc21hcC0+c2l6ZTsKKwkJdTY0IGVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwkJdTMyIHR5cGUgPSBiaW9zbWFwLT50eXBlOworCisJCS8qIE92ZXJmbG93IGluIDY0IGJpdHM/IElnbm9yZSB0aGUgbWVtb3J5IG1hcC4gKi8KKwkJaWYgKHN0YXJ0ID4gZW5kKQorCQkJcmV0dXJuIC0xOworCisJCWU4MjBfYWRkX3JlZ2lvbihzdGFydCwgc2l6ZSwgdHlwZSk7CisKKwkJYmlvc21hcCsrOworCQlucl9tYXAtLTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDb3B5IHRoZSBCSU9TIGU4MjAgbWFwIGludG8gYSBzYWZlIHBsYWNlLgorICoKKyAqIFNhbml0eS1jaGVjayBpdCB3aGlsZSB3ZSdyZSBhdCBpdC4uCisgKgorICogSWYgd2UncmUgbHVja3kgYW5kIGxpdmUgb24gYSBtb2Rlcm4gc3lzdGVtLCB0aGUgc2V0dXAgY29kZQorICogd2lsbCBoYXZlIGdpdmVuIHVzIGEgbWVtb3J5IG1hcCB0aGF0IHdlIGNhbiB1c2UgdG8gcHJvcGVybHkKKyAqIHNldCB1cCBtZW1vcnkuICBJZiB3ZSBhcmVuJ3QsIHdlJ2xsIGZha2UgYSBtZW1vcnkgbWFwLgorICovCitzdGF0aWMgaW50IF9faW5pdCBhcHBlbmRfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCkKK3sKKwkvKiBPbmx5IG9uZSBtZW1vcnkgcmVnaW9uIChvciBuZWdhdGl2ZSk/IElnbm9yZSBpdCAqLworCWlmIChucl9tYXAgPCAyKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gX19hcHBlbmRfZTgyMF9tYXAoYmlvc21hcCwgbnJfbWFwKTsKK30KKworc3RhdGljIHU2NCBfX2luaXQgZTgyMF91cGRhdGVfcmFuZ2VfbWFwKHN0cnVjdCBlODIwbWFwICplODIweCwgdTY0IHN0YXJ0LAorCQkJCQl1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCisJCQkJCXVuc2lnbmVkIG5ld190eXBlKQoreworCWludCBpOworCXU2NCByZWFsX3VwZGF0ZWRfc2l6ZSA9IDA7CisKKwlCVUdfT04ob2xkX3R5cGUgPT0gbmV3X3R5cGUpOworCisJaWYgKHNpemUgPiAoVUxMT05HX01BWCAtIHN0YXJ0KSkKKwkJc2l6ZSA9IFVMTE9OR19NQVggLSBzdGFydDsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjB4LT5tYXBbaV07CisJCXU2NCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOworCQlpZiAoZWktPnR5cGUgIT0gb2xkX3R5cGUpCisJCQljb250aW51ZTsKKwkJLyogdG90YWxseSBjb3ZlcmVkPyAqLworCQlpZiAoZWktPmFkZHIgPj0gc3RhcnQgJiYKKwkJICAgIChlaS0+YWRkciArIGVpLT5zaXplKSA8PSAoc3RhcnQgKyBzaXplKSkgeworCQkJZWktPnR5cGUgPSBuZXdfdHlwZTsKKwkJCXJlYWxfdXBkYXRlZF9zaXplICs9IGVpLT5zaXplOworCQkJY29udGludWU7CisJCX0KKwkJLyogcGFydGlhbGx5IGNvdmVyZWQgKi8KKwkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIGVpLT5hZGRyKTsKKwkJZmluYWxfZW5kID0gbWluKHN0YXJ0ICsgc2l6ZSwgZWktPmFkZHIgKyBlaS0+c2l6ZSk7CisJCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpCisJCQljb250aW51ZTsKKwkJZTgyMF9hZGRfcmVnaW9uKGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydCwKKwkJCQkJIG5ld190eXBlKTsKKwkJcmVhbF91cGRhdGVkX3NpemUgKz0gZmluYWxfZW5kIC0gZmluYWxfc3RhcnQ7CisKKwkJZWktPnNpemUgLT0gZmluYWxfZW5kIC0gZmluYWxfc3RhcnQ7CisJCWlmIChlaS0+YWRkciA8IGZpbmFsX3N0YXJ0KQorCQkJY29udGludWU7CisJCWVpLT5hZGRyID0gZmluYWxfZW5kOworCX0KKwlyZXR1cm4gcmVhbF91cGRhdGVkX3NpemU7Cit9CisKK3U2NCBfX2luaXQgZTgyMF91cGRhdGVfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCisJCQkgICAgIHVuc2lnbmVkIG5ld190eXBlKQoreworCXJldHVybiBlODIwX3VwZGF0ZV9yYW5nZV9tYXAoJmU4MjAsIHN0YXJ0LCBzaXplLCBvbGRfdHlwZSwgbmV3X3R5cGUpOworfQorCitzdGF0aWMgdTY0IF9faW5pdCBlODIwX3VwZGF0ZV9yYW5nZV9zYXZlZCh1NjQgc3RhcnQsIHU2NCBzaXplLAorCQkJCQkgIHVuc2lnbmVkIG9sZF90eXBlLCB1bnNpZ25lZCBuZXdfdHlwZSkKK3sKKwlyZXR1cm4gZTgyMF91cGRhdGVfcmFuZ2VfbWFwKCZlODIwX3NhdmVkLCBzdGFydCwgc2l6ZSwgb2xkX3R5cGUsCisJCQkJICAgICBuZXdfdHlwZSk7Cit9CisKKy8qIG1ha2UgZTgyMCBub3QgY292ZXIgdGhlIHJhbmdlICovCit1NjQgX19pbml0IGU4MjBfcmVtb3ZlX3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAorCQkJICAgICBpbnQgY2hlY2t0eXBlKQoreworCWludCBpOworCXU2NCByZWFsX3JlbW92ZWRfc2l6ZSA9IDA7CisKKwlpZiAoc2l6ZSA+IChVTExPTkdfTUFYIC0gc3RhcnQpKQorCQlzaXplID0gVUxMT05HX01BWCAtIHN0YXJ0OworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisJCXU2NCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOworCisJCWlmIChjaGVja3R5cGUgJiYgZWktPnR5cGUgIT0gb2xkX3R5cGUpCisJCQljb250aW51ZTsKKwkJLyogdG90YWxseSBjb3ZlcmVkPyAqLworCQlpZiAoZWktPmFkZHIgPj0gc3RhcnQgJiYKKwkJICAgIChlaS0+YWRkciArIGVpLT5zaXplKSA8PSAoc3RhcnQgKyBzaXplKSkgeworCQkJcmVhbF9yZW1vdmVkX3NpemUgKz0gZWktPnNpemU7CisJCQltZW1zZXQoZWksIDAsIHNpemVvZihzdHJ1Y3QgZTgyMGVudHJ5KSk7CisJCQljb250aW51ZTsKKwkJfQorCQkvKiBwYXJ0aWFsbHkgY292ZXJlZCAqLworCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgZWktPmFkZHIpOworCQlmaW5hbF9lbmQgPSBtaW4oc3RhcnQgKyBzaXplLCBlaS0+YWRkciArIGVpLT5zaXplKTsKKwkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkKKwkJCWNvbnRpbnVlOworCQlyZWFsX3JlbW92ZWRfc2l6ZSArPSBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydDsKKworCQllaS0+c2l6ZSAtPSBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydDsKKwkJaWYgKGVpLT5hZGRyIDwgZmluYWxfc3RhcnQpCisJCQljb250aW51ZTsKKwkJZWktPmFkZHIgPSBmaW5hbF9lbmQ7CisJfQorCXJldHVybiByZWFsX3JlbW92ZWRfc2l6ZTsKK30KKwordm9pZCBfX2luaXQgdXBkYXRlX2U4MjAodm9pZCkKK3sKKwlpbnQgbnJfbWFwOworCisJbnJfbWFwID0gZTgyMC5ucl9tYXA7CisJaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJm5yX21hcCkpCisJCXJldHVybjsKKwllODIwLm5yX21hcCA9IG5yX21hcDsKKwlwcmludGsoS0VSTl9JTkZPICJtb2RpZmllZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJZTgyMF9wcmludF9tYXAoIm1vZGlmaWVkIik7Cit9CitzdGF0aWMgdm9pZCBfX2luaXQgdXBkYXRlX2U4MjBfc2F2ZWQodm9pZCkKK3sKKwlpbnQgbnJfbWFwOworCisJbnJfbWFwID0gZTgyMF9zYXZlZC5ucl9tYXA7CisJaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjBfc2F2ZWQubWFwLCBBUlJBWV9TSVpFKGU4MjBfc2F2ZWQubWFwKSwgJm5yX21hcCkpCisJCXJldHVybjsKKwllODIwX3NhdmVkLm5yX21hcCA9IG5yX21hcDsKK30KKyNkZWZpbmUgTUFYX0dBUF9FTkQgMHgxMDAwMDAwMDB1bGwKKy8qCisgKiBTZWFyY2ggZm9yIGEgZ2FwIGluIHRoZSBlODIwIG1lbW9yeSBzcGFjZSBmcm9tIHN0YXJ0X2FkZHIgdG8gZW5kX2FkZHIuCisgKi8KK19faW5pdCBpbnQgZTgyMF9zZWFyY2hfZ2FwKHVuc2lnbmVkIGxvbmcgKmdhcHN0YXJ0LCB1bnNpZ25lZCBsb25nICpnYXBzaXplLAorCQl1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHIsIHVuc2lnbmVkIGxvbmcgbG9uZyBlbmRfYWRkcikKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgbGFzdDsKKwlpbnQgaSA9IGU4MjAubnJfbWFwOworCWludCBmb3VuZCA9IDA7CisKKwlsYXN0ID0gKGVuZF9hZGRyICYmIGVuZF9hZGRyIDwgTUFYX0dBUF9FTkQpID8gZW5kX2FkZHIgOiBNQVhfR0FQX0VORDsKKworCXdoaWxlICgtLWkgPj0gMCkgeworCQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOworCQl1bnNpZ25lZCBsb25nIGxvbmcgZW5kID0gc3RhcnQgKyBlODIwLm1hcFtpXS5zaXplOworCisJCWlmIChlbmQgPCBzdGFydF9hZGRyKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJICogU2luY2UgImxhc3QiIGlzIGF0IG1vc3QgNEdCLCB3ZSBrbm93IHdlJ2xsCisJCSAqIGZpdCBpbiAzMiBiaXRzIGlmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUKKwkJICovCisJCWlmIChsYXN0ID4gZW5kKSB7CisJCQl1bnNpZ25lZCBsb25nIGdhcCA9IGxhc3QgLSBlbmQ7CisKKwkJCWlmIChnYXAgPj0gKmdhcHNpemUpIHsKKwkJCQkqZ2Fwc2l6ZSA9IGdhcDsKKwkJCQkqZ2Fwc3RhcnQgPSBlbmQ7CisJCQkJZm91bmQgPSAxOworCQkJfQorCQl9CisJCWlmIChzdGFydCA8IGxhc3QpCisJCQlsYXN0ID0gc3RhcnQ7CisJfQorCXJldHVybiBmb3VuZDsKK30KKworLyoKKyAqIFNlYXJjaCBmb3IgdGhlIGJpZ2dlc3QgZ2FwIGluIHRoZSBsb3cgMzIgYml0cyBvZiB0aGUgZTgyMAorICogbWVtb3J5IHNwYWNlLiAgV2UgcGFzcyB0aGlzIHNwYWNlIHRvIFBDSSB0byBhc3NpZ24gTU1JTyByZXNvdXJjZXMKKyAqIGZvciBob3RwbHVnIG9yIHVuY29uZmlndXJlZCBkZXZpY2VzIGluLgorICogSG9wZWZ1bGx5IHRoZSBCSU9TIGxldCBlbm91Z2ggc3BhY2UgbGVmdC4KKyAqLworX19pbml0IHZvaWQgZTgyMF9zZXR1cF9nYXAodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGdhcHN0YXJ0LCBnYXBzaXplLCByb3VuZDsKKwlpbnQgZm91bmQ7CisKKwlnYXBzdGFydCA9IDB4MTAwMDAwMDA7CisJZ2Fwc2l6ZSA9IDB4NDAwMDAwOworCWZvdW5kICA9IGU4MjBfc2VhcmNoX2dhcCgmZ2Fwc3RhcnQsICZnYXBzaXplLCAwLCBNQVhfR0FQX0VORCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaWYgKCFmb3VuZCkgeworCQlnYXBzdGFydCA9IChtYXhfcGZuIDw8IFBBR0VfU0hJRlQpICsgMTAyNCoxMDI0OworCQlwcmludGsoS0VSTl9FUlIgIlBDSTogV2FybmluZzogQ2Fubm90IGZpbmQgYSBnYXAgaW4gdGhlIDMyYml0ICIKKwkJICAgICAgICJhZGRyZXNzIHJhbmdlXG4iCisJCSAgICAgICBLRVJOX0VSUiAiUENJOiBVbmFzc2lnbmVkIGRldmljZXMgd2l0aCAzMmJpdCByZXNvdXJjZSAiCisJCSAgICAgICAicmVnaXN0ZXJzIG1heSBicmVhayFcbiIpOworCX0KKyNlbmRpZgorCisJLyoKKwkgKiBTZWUgaG93IG11Y2ggd2Ugd2FudCB0byByb3VuZCB1cDogc3RhcnQgb2ZmIHdpdGgKKwkgKiByb3VuZGluZyB0byB0aGUgbmV4dCAxTUIgYXJlYS4KKwkgKi8KKwlyb3VuZCA9IDB4MTAwMDAwOworCXdoaWxlICgoZ2Fwc2l6ZSA+PiA0KSA+IHJvdW5kKQorCQlyb3VuZCArPSByb3VuZDsKKwkvKiBGdW4gd2l0aCB0d28ncyBjb21wbGVtZW50ICovCisJcGNpX21lbV9zdGFydCA9IChnYXBzdGFydCArIHJvdW5kKSAmIC1yb3VuZDsKKworCXByaW50ayhLRVJOX0lORk8KKwkgICAgICAgIkFsbG9jYXRpbmcgUENJIHJlc291cmNlcyBzdGFydGluZyBhdCAlbHggKGdhcDogJWx4OiVseClcbiIsCisJICAgICAgIHBjaV9tZW1fc3RhcnQsIGdhcHN0YXJ0LCBnYXBzaXplKTsKK30KKworLyoqCisgKiBCZWNhdXNlIG9mIHRoZSBzaXplIGxpbWl0YXRpb24gb2Ygc3RydWN0IGJvb3RfcGFyYW1zLCBvbmx5IGZpcnN0CisgKiAxMjggRTgyMCBtZW1vcnkgZW50cmllcyBhcmUgcGFzc2VkIHRvIGtlcm5lbCB2aWEKKyAqIGJvb3RfcGFyYW1zLmU4MjBfbWFwLCBvdGhlcnMgYXJlIHBhc3NlZCB2aWEgU0VUVVBfRTgyMF9FWFQgbm9kZSBvZgorICogbGlua2VkIGxpc3Qgb2Ygc3RydWN0IHNldHVwX2RhdGEsIHdoaWNoIGlzIHBhcnNlZCBoZXJlLgorICovCit2b2lkIF9faW5pdCBwYXJzZV9lODIwX2V4dChzdHJ1Y3Qgc2V0dXBfZGF0YSAqc2RhdGEsIHVuc2lnbmVkIGxvbmcgcGFfZGF0YSkKK3sKKwl1MzIgbWFwX2xlbjsKKwlpbnQgZW50cmllczsKKwlzdHJ1Y3QgZTgyMGVudHJ5ICpleHRtYXA7CisKKwllbnRyaWVzID0gc2RhdGEtPmxlbiAvIHNpemVvZihzdHJ1Y3QgZTgyMGVudHJ5KTsKKwltYXBfbGVuID0gc2RhdGEtPmxlbiArIHNpemVvZihzdHJ1Y3Qgc2V0dXBfZGF0YSk7CisJaWYgKG1hcF9sZW4gPiBQQUdFX1NJWkUpCisJCXNkYXRhID0gZWFybHlfaW9yZW1hcChwYV9kYXRhLCBtYXBfbGVuKTsKKwlleHRtYXAgPSAoc3RydWN0IGU4MjBlbnRyeSAqKShzZGF0YS0+ZGF0YSk7CisJX19hcHBlbmRfZTgyMF9tYXAoZXh0bWFwLCBlbnRyaWVzKTsKKwlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7CisJaWYgKG1hcF9sZW4gPiBQQUdFX1NJWkUpCisJCWVhcmx5X2lvdW5tYXAoc2RhdGEsIG1hcF9sZW4pOworCXByaW50ayhLRVJOX0lORk8gImV4dGVuZGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwllODIwX3ByaW50X21hcCgiZXh0ZW5kZWQiKTsKK30KKworI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgfHwgXAorCShkZWZpbmVkKENPTkZJR19YODZfMzIpICYmIGRlZmluZWQoQ09ORklHX0hJQkVSTkFUSU9OKSkKKy8qKgorICogRmluZCB0aGUgcmFuZ2VzIG9mIHBoeXNpY2FsIGFkZHJlc3NlcyB0aGF0IGRvIG5vdCBjb3JyZXNwb25kIHRvCisgKiBlODIwIFJBTSBhcmVhcyBhbmQgbWFyayB0aGUgY29ycmVzcG9uZGluZyBwYWdlcyBhcyBub3NhdmUgZm9yCisgKiBoaWJlcm5hdGlvbiAoMzIgYml0KSBvciBzb2Z0d2FyZSBzdXNwZW5kIGFuZCBzdXNwZW5kIHRvIFJBTSAoNjQgYml0KS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHRoZSBlODIwIG1hcCB0byBiZSBzb3J0ZWQgYW5kIHdpdGhvdXQgYW55CisgKiBvdmVybGFwcGluZyBlbnRyaWVzIGFuZCBhc3N1bWVzIHRoZSBmaXJzdCBlODIwIGFyZWEgdG8gYmUgUkFNLgorICovCit2b2lkIF9faW5pdCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModW5zaWduZWQgbG9uZyBsaW1pdF9wZm4pCit7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBwZm47CisKKwlwZm4gPSBQRk5fRE9XTihlODIwLm1hcFswXS5hZGRyICsgZTgyMC5tYXBbMF0uc2l6ZSk7CisJZm9yIChpID0gMTsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisKKwkJaWYgKHBmbiA8IFBGTl9VUChlaS0+YWRkcikpCisJCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKHBmbiwgUEZOX1VQKGVpLT5hZGRyKSk7CisKKwkJcGZuID0gUEZOX0RPV04oZWktPmFkZHIgKyBlaS0+c2l6ZSk7CisJCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSAmJiBlaS0+dHlwZSAhPSBFODIwX1JFU0VSVkVEX0tFUk4pCisJCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKFBGTl9VUChlaS0+YWRkciksIHBmbik7CisKKwkJaWYgKHBmbiA+PSBsaW1pdF9wZm4pCisJCQlicmVhazsKKwl9Cit9CisjZW5kaWYKKworLyoKKyAqIEVhcmx5IHJlc2VydmVkIG1lbW9yeSBhcmVhcy4KKyAqLworI2RlZmluZSBNQVhfRUFSTFlfUkVTIDIwCisKK3N0cnVjdCBlYXJseV9yZXMgeworCXU2NCBzdGFydCwgZW5kOworCWNoYXIgbmFtZVsxNl07CisJY2hhciBvdmVybGFwX29rOworfTsKK3N0YXRpYyBzdHJ1Y3QgZWFybHlfcmVzIGVhcmx5X3Jlc1tNQVhfRUFSTFlfUkVTXSBfX2luaXRkYXRhID0geworCXsgMCwgUEFHRV9TSVpFLCAiQklPUyBkYXRhIHBhZ2UiIH0sCS8qIEJJT1MgZGF0YSBwYWdlICovCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSAmJiBkZWZpbmVkKENPTkZJR19YODZfVFJBTVBPTElORSkKKwl7IFRSQU1QT0xJTkVfQkFTRSwgVFJBTVBPTElORV9CQVNFICsgMiAqIFBBR0VfU0laRSwgIlRSQU1QT0xJTkUiIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfMzIpICYmIGRlZmluZWQoQ09ORklHX1NNUCkKKwkvKgorCSAqIEJ1dCBmaXJzdCBwaW5jaCBhIGZldyBmb3IgdGhlIHN0YWNrL3RyYW1wb2xpbmUgc3R1ZmYKKwkgKiBGSVhNRTogRG9uJ3QgbmVlZCB0aGUgZXh0cmEgcGFnZSBhdCA0SywgYnV0IG5lZWQgdG8gZml4CisJICogdHJhbXBvbGluZSBiZWZvcmUgcmVtb3ZpbmcgaXQuIChzZWUgdGhlIEdEVCBzdHVmZikKKwkgKi8KKwl7IFBBR0VfU0laRSwgUEFHRV9TSVpFICsgUEFHRV9TSVpFLCAiRVggVFJBTVBPTElORSIgfSwKKwkvKgorCSAqIEhhcyB0byBiZSBpbiB2ZXJ5IGxvdyBtZW1vcnkgc28gd2UgY2FuIGV4ZWN1dGUKKwkgKiByZWFsLW1vZGUgQVAgY29kZS4KKwkgKi8KKwl7IFRSQU1QT0xJTkVfQkFTRSwgVFJBTVBPTElORV9CQVNFICsgUEFHRV9TSVpFLCAiVFJBTVBPTElORSIgfSwKKyNlbmRpZgorCXt9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBmaW5kX292ZXJsYXBwZWRfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kKQoreworCWludCBpOworCXN0cnVjdCBlYXJseV9yZXMgKnI7CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKKwkJciA9ICZlYXJseV9yZXNbaV07CisJCWlmIChlbmQgPiByLT5zdGFydCAmJiBzdGFydCA8IHItPmVuZCkKKwkJCWJyZWFrOworCX0KKworCXJldHVybiBpOworfQorCisvKgorICogRHJvcCB0aGUgaS10aCByYW5nZSBmcm9tIHRoZSBlYXJseSByZXNlcnZhdGlvbiBtYXAsCisgKiBieSBjb3B5aW5nIGFueSBoaWdoZXIgcmFuZ2VzIGRvd24gb25lIG92ZXIgaXQsIGFuZAorICogY2xlYXJpbmcgd2hhdCBoYWQgYmVlbiB0aGUgbGFzdCBzbG90LgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgZHJvcF9yYW5nZShpbnQgaSkKK3sKKwlpbnQgajsKKworCWZvciAoaiA9IGkgKyAxOyBqIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbal0uZW5kOyBqKyspCisJCTsKKworCW1lbW1vdmUoJmVhcmx5X3Jlc1tpXSwgJmVhcmx5X3Jlc1tpICsgMV0sCisJICAgICAgIChqIC0gMSAtIGkpICogc2l6ZW9mKHN0cnVjdCBlYXJseV9yZXMpKTsKKworCWVhcmx5X3Jlc1tqIC0gMV0uZW5kID0gMDsKK30KKworLyoKKyAqIFNwbGl0IGFueSBleGlzdGluZyByYW5nZXMgdGhhdDoKKyAqICAxKSBhcmUgbWFya2VkICdvdmVybGFwX29rJywgYW5kCisgKiAgMikgb3ZlcmxhcCB3aXRoIHRoZSBzdGF0ZWQgcmFuZ2UgW3N0YXJ0LCBlbmQpCisgKiBpbnRvIHdoYXRldmVyIHBvcnRpb24gKGlmIGFueSkgb2YgdGhlIGV4aXN0aW5nIHJhbmdlIGlzIGVudGlyZWx5CisgKiBiZWxvdyBvciBlbnRpcmVseSBhYm92ZSB0aGUgc3RhdGVkIHJhbmdlLiAgRHJvcCB0aGUgcG9ydGlvbgorICogb2YgdGhlIGV4aXN0aW5nIHJhbmdlIHRoYXQgb3ZlcmxhcHMgd2l0aCB0aGUgc3RhdGVkIHJhbmdlLAorICogd2hpY2ggd2lsbCBhbGxvdyB0aGUgY2FsbGVyIG9mIHRoaXMgcm91dGluZSB0byB0aGVuIGFkZCB0aGF0CisgKiBzdGF0ZWQgcmFuZ2Ugd2l0aG91dCBjb25mbGljdGluZyB3aXRoIGFueSBleGlzdGluZyByYW5nZS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IGRyb3Bfb3ZlcmxhcHNfdGhhdF9hcmVfb2sodTY0IHN0YXJ0LCB1NjQgZW5kKQoreworCWludCBpOworCXN0cnVjdCBlYXJseV9yZXMgKnI7CisJdTY0IGxvd2VyX3N0YXJ0LCBsb3dlcl9lbmQ7CisJdTY0IHVwcGVyX3N0YXJ0LCB1cHBlcl9lbmQ7CisJY2hhciBuYW1lWzE2XTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgeworCQlyID0gJmVhcmx5X3Jlc1tpXTsKKworCQkvKiBDb250aW51ZSBwYXN0IG5vbi1vdmVybGFwcGluZyByYW5nZXMgKi8KKwkJaWYgKGVuZCA8PSByLT5zdGFydCB8fCBzdGFydCA+PSByLT5lbmQpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBMZWF2ZSBub24tb2sgb3ZlcmxhcHMgYXMgaXM7IGxldCBjYWxsZXIKKwkJICogcGFuaWMgIk92ZXJsYXBwaW5nIGVhcmx5IHJlc2VydmF0aW9ucyIKKwkJICogd2hlbiBpdCBoaXRzIHRoaXMgb3ZlcmxhcC4KKwkJICovCisJCWlmICghci0+b3ZlcmxhcF9vaykKKwkJCXJldHVybjsKKworCQkvKgorCQkgKiBXZSBoYXZlIGFuIG9rIG92ZXJsYXAuICBXZSB3aWxsIGRyb3AgaXQgZnJvbSB0aGUgZWFybHkKKwkJICogcmVzZXJ2YXRpb24gbWFwLCBhbmQgYWRkIGJhY2sgaW4gYW55IG5vbi1vdmVybGFwcGluZworCQkgKiBwb3J0aW9ucyAobG93ZXIgb3IgdXBwZXIpIGFzIHNlcGFyYXRlLCBvdmVybGFwX29rLAorCQkgKiBub24tb3ZlcmxhcHBpbmcgcmFuZ2VzLgorCQkgKi8KKworCQkvKiAxLiBOb3RlIGFueSBub24tb3ZlcmxhcHBpbmcgKGxvd2VyIG9yIHVwcGVyKSByYW5nZXMuICovCisJCXN0cm5jcHkobmFtZSwgci0+bmFtZSwgc2l6ZW9mKG5hbWUpIC0gMSk7CisKKwkJbG93ZXJfc3RhcnQgPSBsb3dlcl9lbmQgPSAwOworCQl1cHBlcl9zdGFydCA9IHVwcGVyX2VuZCA9IDA7CisJCWlmIChyLT5zdGFydCA8IHN0YXJ0KSB7CisJCSAJbG93ZXJfc3RhcnQgPSByLT5zdGFydDsKKwkJCWxvd2VyX2VuZCA9IHN0YXJ0OworCQl9CisJCWlmIChyLT5lbmQgPiBlbmQpIHsKKwkJCXVwcGVyX3N0YXJ0ID0gZW5kOworCQkJdXBwZXJfZW5kID0gci0+ZW5kOworCQl9CisKKwkJLyogMi4gRHJvcCB0aGUgb3JpZ2luYWwgb2sgb3ZlcmxhcHBpbmcgcmFuZ2UgKi8KKwkJZHJvcF9yYW5nZShpKTsKKworCQlpLS07CQkvKiByZXN1bWUgZm9yLWxvb3Agb24gY29waWVkIGRvd24gZW50cnkgKi8KKworCQkvKiAzLiBBZGQgYmFjayBpbiBhbnkgbm9uLW92ZXJsYXBwaW5nIHJhbmdlcy4gKi8KKwkJaWYgKGxvd2VyX2VuZCkKKwkJCXJlc2VydmVfZWFybHlfb3ZlcmxhcF9vayhsb3dlcl9zdGFydCwgbG93ZXJfZW5kLCBuYW1lKTsKKwkJaWYgKHVwcGVyX2VuZCkKKwkJCXJlc2VydmVfZWFybHlfb3ZlcmxhcF9vayh1cHBlcl9zdGFydCwgdXBwZXJfZW5kLCBuYW1lKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBfX3Jlc2VydmVfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kLCBjaGFyICpuYW1lLAorCQkJCQkJaW50IG92ZXJsYXBfb2spCit7CisJaW50IGk7CisJc3RydWN0IGVhcmx5X3JlcyAqcjsKKworCWkgPSBmaW5kX292ZXJsYXBwZWRfZWFybHkoc3RhcnQsIGVuZCk7CisJaWYgKGkgPj0gTUFYX0VBUkxZX1JFUykKKwkJcGFuaWMoIlRvbyBtYW55IGVhcmx5IHJlc2VydmF0aW9ucyIpOworCXIgPSAmZWFybHlfcmVzW2ldOworCWlmIChyLT5lbmQpCisJCXBhbmljKCJPdmVybGFwcGluZyBlYXJseSByZXNlcnZhdGlvbnMgIgorCQkgICAgICAiJWxseC0lbGx4ICVzIHRvICVsbHgtJWxseCAlc1xuIiwKKwkJICAgICAgc3RhcnQsIGVuZCAtIDEsIG5hbWU/bmFtZToiIiwgci0+c3RhcnQsCisJCSAgICAgIHItPmVuZCAtIDEsIHItPm5hbWUpOworCXItPnN0YXJ0ID0gc3RhcnQ7CisJci0+ZW5kID0gZW5kOworCXItPm92ZXJsYXBfb2sgPSBvdmVybGFwX29rOworCWlmIChuYW1lKQorCQlzdHJuY3B5KHItPm5hbWUsIG5hbWUsIHNpemVvZihyLT5uYW1lKSAtIDEpOworfQorCisvKgorICogQSBmZXcgZWFybHkgcmVzZXJ2dGF0aW9ucyBjb21lIGhlcmUuCisgKgorICogVGhlICdvdmVybGFwX29rJyBpbiB0aGUgbmFtZSBvZiB0aGlzIHJvdXRpbmUgZG9lcyAtbm90LSBtZWFuIGl0CisgKiBpcyBvayBmb3IgdGhlc2UgcmVzZXJ2YXRpb25zIHRvIG92ZXJsYXAgYW4gZWFybGllciByZXNlcnZhdGlvbi4KKyAqIFJhdGhlciBpdCBtZWFucyB0aGF0IGl0IGlzIG9rIGZvciBzdWJzZXF1ZW50IHJlc2VydmF0aW9ucyB0bworICogb3ZlcmxhcCB0aGlzIG9uZS4KKyAqCisgKiBVc2UgdGhpcyBlbnRyeSBwb2ludCB0byByZXNlcnZlIGVhcmx5IHJhbmdlcyB3aGVuIHlvdSBhcmUgZG9pbmcKKyAqIHNvIG91dCBvZiAiUGFyYW5vaWEiLCByZXNlcnZpbmcgcGVyaGFwcyBtb3JlIG1lbW9yeSB0aGFuIHlvdSBuZWVkLAorICoganVzdCBpbiBjYXNlLCBhbmQgZG9uJ3QgbWluZCBhIHN1YnNlcXVlbnQgb3ZlcmxhcHBpbmcgcmVzZXJ2YXRpb24KKyAqIHRoYXQgaXMga25vd24gdG8gYmUgbmVlZGVkLgorICoKKyAqIFRoZSBkcm9wX292ZXJsYXBzX3RoYXRfYXJlX29rKCkgY2FsbCBoZXJlIGlzbid0IHJlYWxseSBuZWVkZWQuCisgKiBJdCB3b3VsZCBiZSBuZWVkZWQgaWYgd2UgaGFkIHR3byBjb2xsaWRpbmcgJ292ZXJsYXBfb2snCisgKiByZXNlcnZhdGlvbnMsIHNvIHRoYXQgdGhlIHNlY29uZCBzdWNoIHdvdWxkIG5vdCBwYW5pYyBvbiB0aGUKKyAqIG92ZXJsYXAgd2l0aCB0aGUgZmlyc3QuICBXZSBkb24ndCBoYXZlIGFueSBzdWNoIGFzIG9mIHRoaXMKKyAqIHdyaXRpbmcsIGJ1dCBtaWdodCBhcyB3ZWxsIHRvbGVyYXRlIHN1Y2ggaWYgaXQgaGFwcGVucyBpbgorICogdGhlIGZ1dHVyZS4KKyAqLwordm9pZCBfX2luaXQgcmVzZXJ2ZV9lYXJseV9vdmVybGFwX29rKHU2NCBzdGFydCwgdTY0IGVuZCwgY2hhciAqbmFtZSkKK3sKKwlkcm9wX292ZXJsYXBzX3RoYXRfYXJlX29rKHN0YXJ0LCBlbmQpOworCV9fcmVzZXJ2ZV9lYXJseShzdGFydCwgZW5kLCBuYW1lLCAxKTsKK30KKworLyoKKyAqIE1vc3QgZWFybHkgcmVzZXJ2YXRpb25zIGNvbWUgaGVyZS4KKyAqCisgKiBXZSBmaXJzdCBoYXZlIGRyb3Bfb3ZlcmxhcHNfdGhhdF9hcmVfb2soKSBkcm9wIGFueSBwcmUtZXhpc3RpbmcKKyAqICdvdmVybGFwX29rJyByYW5nZXMsIHNvIHRoYXQgd2UgY2FuIHRoZW4gcmVzZXJ2ZSB0aGlzIG1lbW9yeQorICogcmFuZ2Ugd2l0aG91dCByaXNrIG9mIHBhbmljJ2luZyBvbiBhbiBvdmVybGFwcGluZyBvdmVybGFwX29rCisgKiBlYXJseSByZXNlcnZhdGlvbi4KKyAqLwordm9pZCBfX2luaXQgcmVzZXJ2ZV9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQsIGNoYXIgKm5hbWUpCit7CisJZHJvcF9vdmVybGFwc190aGF0X2FyZV9vayhzdGFydCwgZW5kKTsKKwlfX3Jlc2VydmVfZWFybHkoc3RhcnQsIGVuZCwgbmFtZSwgMCk7Cit9CisKK3ZvaWQgX19pbml0IGZyZWVfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kKQoreworCXN0cnVjdCBlYXJseV9yZXMgKnI7CisJaW50IGk7CisKKwlpID0gZmluZF9vdmVybGFwcGVkX2Vhcmx5KHN0YXJ0LCBlbmQpOworCXIgPSAmZWFybHlfcmVzW2ldOworCWlmIChpID49IE1BWF9FQVJMWV9SRVMgfHwgci0+ZW5kICE9IGVuZCB8fCByLT5zdGFydCAhPSBzdGFydCkKKwkJcGFuaWMoImZyZWVfZWFybHkgb24gbm90IHJlc2VydmVkIGFyZWE6ICVsbHgtJWxseCEiLAorCQkJIHN0YXJ0LCBlbmQgLSAxKTsKKworCWRyb3BfcmFuZ2UoaSk7Cit9CisKK3ZvaWQgX19pbml0IGVhcmx5X3Jlc190b19ib290bWVtKHU2NCBzdGFydCwgdTY0IGVuZCkKK3sKKwlpbnQgaSwgY291bnQ7CisJdTY0IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7CisKKwljb3VudCAgPSAwOworCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykKKwkJY291bnQrKzsKKworCXByaW50ayhLRVJOX0lORk8gIiglZCBlYXJseSByZXNlcnZhdGlvbnMpID09PiBib290bWVtXG4iLCBjb3VudCk7CisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJc3RydWN0IGVhcmx5X3JlcyAqciA9ICZlYXJseV9yZXNbaV07CisJCXByaW50ayhLRVJOX0lORk8gIiAgIyVkIFslMDEwbGx4IC0gJTAxMGxseF0gJTE2cyIsIGksCisJCQlyLT5zdGFydCwgci0+ZW5kLCByLT5uYW1lKTsKKwkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIHItPnN0YXJ0KTsKKwkJZmluYWxfZW5kID0gbWluKGVuZCwgci0+ZW5kKTsKKwkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkgeworCQkJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCXByaW50ayhLRVJOX0NPTlQgIiA9PT4gWyUwMTBsbHggLSAlMDEwbGx4XVxuIiwKKwkJCWZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQpOworCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gZmluYWxfc3RhcnQsCisJCQkJQk9PVE1FTV9ERUZBVUxUKTsKKwl9Cit9CisKKy8qIENoZWNrIGZvciBhbHJlYWR5IHJlc2VydmVkIGFyZWFzICovCitzdGF0aWMgaW5saW5lIGludCBfX2luaXQgYmFkX2FkZHIodTY0ICphZGRycCwgdTY0IHNpemUsIHU2NCBhbGlnbikKK3sKKwlpbnQgaTsKKwl1NjQgYWRkciA9ICphZGRycDsKKwlpbnQgY2hhbmdlZCA9IDA7CisJc3RydWN0IGVhcmx5X3JlcyAqcjsKK2FnYWluOgorCWkgPSBmaW5kX292ZXJsYXBwZWRfZWFybHkoYWRkciwgYWRkciArIHNpemUpOworCXIgPSAmZWFybHlfcmVzW2ldOworCWlmIChpIDwgTUFYX0VBUkxZX1JFUyAmJiByLT5lbmQpIHsKKwkJKmFkZHJwID0gYWRkciA9IHJvdW5kX3VwKHItPmVuZCwgYWxpZ24pOworCQljaGFuZ2VkID0gMTsKKwkJZ290byBhZ2FpbjsKKwl9CisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKKy8qIENoZWNrIGZvciBhbHJlYWR5IHJlc2VydmVkIGFyZWFzICovCitzdGF0aWMgaW5saW5lIGludCBfX2luaXQgYmFkX2FkZHJfc2l6ZSh1NjQgKmFkZHJwLCB1NjQgKnNpemVwLCB1NjQgYWxpZ24pCit7CisJaW50IGk7CisJdTY0IGFkZHIgPSAqYWRkcnAsIGxhc3Q7CisJdTY0IHNpemUgPSAqc2l6ZXA7CisJaW50IGNoYW5nZWQgPSAwOworYWdhaW46CisJbGFzdCA9IGFkZHIgKyBzaXplOworCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgeworCQlzdHJ1Y3QgZWFybHlfcmVzICpyID0gJmVhcmx5X3Jlc1tpXTsKKwkJaWYgKGxhc3QgPiByLT5zdGFydCAmJiBhZGRyIDwgci0+c3RhcnQpIHsKKwkJCXNpemUgPSByLT5zdGFydCAtIGFkZHI7CisJCQljaGFuZ2VkID0gMTsKKwkJCWdvdG8gYWdhaW47CisJCX0KKwkJaWYgKGxhc3QgPiByLT5lbmQgJiYgYWRkciA8IHItPmVuZCkgeworCQkJYWRkciA9IHJvdW5kX3VwKHItPmVuZCwgYWxpZ24pOworCQkJc2l6ZSA9IGxhc3QgLSBhZGRyOworCQkJY2hhbmdlZCA9IDE7CisJCQlnb3RvIGFnYWluOworCQl9CisJCWlmIChsYXN0IDw9IHItPmVuZCAmJiBhZGRyID49IHItPnN0YXJ0KSB7CisJCQkoKnNpemVwKSsrOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisJaWYgKGNoYW5nZWQpIHsKKwkJKmFkZHJwID0gYWRkcjsKKwkJKnNpemVwID0gc2l6ZTsKKwl9CisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKKy8qCisgKiBGaW5kIGEgZnJlZSBhcmVhIHdpdGggc3BlY2lmaWVkIGFsaWdubWVudCBpbiBhIHNwZWNpZmljIHJhbmdlLgorICovCit1NjQgX19pbml0IGZpbmRfZTgyMF9hcmVhKHU2NCBzdGFydCwgdTY0IGVuZCwgdTY0IHNpemUsIHU2NCBhbGlnbikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCQl1NjQgYWRkciwgbGFzdDsKKwkJdTY0IGVpX2xhc3Q7CisKKwkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQorCQkJY29udGludWU7CisJCWFkZHIgPSByb3VuZF91cChlaS0+YWRkciwgYWxpZ24pOworCQllaV9sYXN0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKKwkJaWYgKGFkZHIgPCBzdGFydCkKKwkJCWFkZHIgPSByb3VuZF91cChzdGFydCwgYWxpZ24pOworCQlpZiAoYWRkciA+PSBlaV9sYXN0KQorCQkJY29udGludWU7CisJCXdoaWxlIChiYWRfYWRkcigmYWRkciwgc2l6ZSwgYWxpZ24pICYmIGFkZHIrc2l6ZSA8PSBlaV9sYXN0KQorCQkJOworCQlsYXN0ID0gYWRkciArIHNpemU7CisJCWlmIChsYXN0ID4gZWlfbGFzdCkKKwkJCWNvbnRpbnVlOworCQlpZiAobGFzdCA+IGVuZCkKKwkJCWNvbnRpbnVlOworCQlyZXR1cm4gYWRkcjsKKwl9CisJcmV0dXJuIC0xVUxMOworfQorCisvKgorICogRmluZCBuZXh0IGZyZWUgcmFuZ2UgYWZ0ZXIgKnN0YXJ0CisgKi8KK3U2NCBfX2luaXQgZmluZF9lODIwX2FyZWFfc2l6ZSh1NjQgc3RhcnQsIHU2NCAqc2l6ZXAsIHU2NCBhbGlnbikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCQl1NjQgYWRkciwgbGFzdDsKKwkJdTY0IGVpX2xhc3Q7CisKKwkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQorCQkJY29udGludWU7CisJCWFkZHIgPSByb3VuZF91cChlaS0+YWRkciwgYWxpZ24pOworCQllaV9sYXN0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKKwkJaWYgKGFkZHIgPCBzdGFydCkKKwkJCWFkZHIgPSByb3VuZF91cChzdGFydCwgYWxpZ24pOworCQlpZiAoYWRkciA+PSBlaV9sYXN0KQorCQkJY29udGludWU7CisJCSpzaXplcCA9IGVpX2xhc3QgLSBhZGRyOworCQl3aGlsZSAoYmFkX2FkZHJfc2l6ZSgmYWRkciwgc2l6ZXAsIGFsaWduKSAmJgorCQkJYWRkciArICpzaXplcCA8PSBlaV9sYXN0KQorCQkJOworCQlsYXN0ID0gYWRkciArICpzaXplcDsKKwkJaWYgKGxhc3QgPiBlaV9sYXN0KQorCQkJY29udGludWU7CisJCXJldHVybiBhZGRyOworCX0KKwlyZXR1cm4gLTFVTDsKKworfQorCisvKgorICogcHJlIGFsbG9jYXRlZCA0ayBhbmQgcmVzZXJ2ZWQgaXQgaW4gZTgyMAorICovCit1NjQgX19pbml0IGVhcmx5X3Jlc2VydmVfZTgyMCh1NjQgc3RhcnR0LCB1NjQgc2l6ZXQsIHU2NCBhbGlnbikKK3sKKwl1NjQgc2l6ZSA9IDA7CisJdTY0IGFkZHI7CisJdTY0IHN0YXJ0OworCisJc3RhcnQgPSBzdGFydHQ7CisJd2hpbGUgKHNpemUgPCBzaXpldCkKKwkJc3RhcnQgPSBmaW5kX2U4MjBfYXJlYV9zaXplKHN0YXJ0LCAmc2l6ZSwgYWxpZ24pOworCisJaWYgKHNpemUgPCBzaXpldCkKKwkJcmV0dXJuIDA7CisKKwlhZGRyID0gcm91bmRfZG93bihzdGFydCArIHNpemUgLSBzaXpldCwgYWxpZ24pOworCWU4MjBfdXBkYXRlX3JhbmdlKGFkZHIsIHNpemV0LCBFODIwX1JBTSwgRTgyMF9SRVNFUlZFRCk7CisJZTgyMF91cGRhdGVfcmFuZ2Vfc2F2ZWQoYWRkciwgc2l6ZXQsIEU4MjBfUkFNLCBFODIwX1JFU0VSVkVEKTsKKwlwcmludGsoS0VSTl9JTkZPICJ1cGRhdGUgZTgyMCBmb3IgZWFybHlfcmVzZXJ2ZV9lODIwXG4iKTsKKwl1cGRhdGVfZTgyMCgpOworCXVwZGF0ZV9lODIwX3NhdmVkKCk7CisKKwlyZXR1cm4gYWRkcjsKK30KKworI2lmZGVmIENPTkZJR19YODZfMzIKKyMgaWZkZWYgQ09ORklHX1g4Nl9QQUUKKyMgIGRlZmluZSBNQVhfQVJDSF9QRk4JCSgxVUxMPDwoMzYtUEFHRV9TSElGVCkpCisjIGVsc2UKKyMgIGRlZmluZSBNQVhfQVJDSF9QRk4JCSgxVUxMPDwoMzItUEFHRV9TSElGVCkpCisjIGVuZGlmCisjZWxzZSAvKiBDT05GSUdfWDg2XzMyICovCisjIGRlZmluZSBNQVhfQVJDSF9QRk4gTUFYTUVNPj5QQUdFX1NISUZUCisjZW5kaWYKKworLyoKKyAqIEZpbmQgdGhlIGhpZ2hlc3QgcGFnZSBmcmFtZSBudW1iZXIgd2UgaGF2ZSBhdmFpbGFibGUKKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IGU4MjBfZW5kX3Bmbih1bnNpZ25lZCBsb25nIGxpbWl0X3BmbiwgdW5zaWduZWQgdHlwZSkKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIGxhc3RfcGZuID0gMDsKKwl1bnNpZ25lZCBsb25nIG1heF9hcmNoX3BmbiA9IE1BWF9BUkNIX1BGTjsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbjsKKwkJdW5zaWduZWQgbG9uZyBlbmRfcGZuOworCisJCWlmIChlaS0+dHlwZSAhPSB0eXBlKQorCQkJY29udGludWU7CisKKwkJc3RhcnRfcGZuID0gZWktPmFkZHIgPj4gUEFHRV9TSElGVDsKKwkJZW5kX3BmbiA9IChlaS0+YWRkciArIGVpLT5zaXplKSA+PiBQQUdFX1NISUZUOworCisJCWlmIChzdGFydF9wZm4gPj0gbGltaXRfcGZuKQorCQkJY29udGludWU7CisJCWlmIChlbmRfcGZuID4gbGltaXRfcGZuKSB7CisJCQlsYXN0X3BmbiA9IGxpbWl0X3BmbjsKKwkJCWJyZWFrOworCQl9CisJCWlmIChlbmRfcGZuID4gbGFzdF9wZm4pCisJCQlsYXN0X3BmbiA9IGVuZF9wZm47CisJfQorCisJaWYgKGxhc3RfcGZuID4gbWF4X2FyY2hfcGZuKQorCQlsYXN0X3BmbiA9IG1heF9hcmNoX3BmbjsKKworCXByaW50ayhLRVJOX0lORk8gImxhc3RfcGZuID0gJSNseCBtYXhfYXJjaF9wZm4gPSAlI2x4XG4iLAorCQkJIGxhc3RfcGZuLCBtYXhfYXJjaF9wZm4pOworCXJldHVybiBsYXN0X3BmbjsKK30KK3Vuc2lnbmVkIGxvbmcgX19pbml0IGU4MjBfZW5kX29mX3JhbV9wZm4odm9pZCkKK3sKKwlyZXR1cm4gZTgyMF9lbmRfcGZuKE1BWF9BUkNIX1BGTiwgRTgyMF9SQU0pOworfQorCit1bnNpZ25lZCBsb25nIF9faW5pdCBlODIwX2VuZF9vZl9sb3dfcmFtX3Bmbih2b2lkKQoreworCXJldHVybiBlODIwX2VuZF9wZm4oMVVMPDwoMzIgLSBQQUdFX1NISUZUKSwgRTgyMF9SQU0pOworfQorLyoKKyAqIEZpbmRzIGFuIGFjdGl2ZSByZWdpb24gaW4gdGhlIGFkZHJlc3MgcmFuZ2UgZnJvbSBzdGFydF9wZm4gdG8gbGFzdF9wZm4gYW5kCisgKiByZXR1cm5zIGl0cyByYW5nZSBpbiBlaV9zdGFydHBmbiBhbmQgZWlfZW5kcGZuIGZvciB0aGUgZTgyMCBlbnRyeS4KKyAqLworaW50IF9faW5pdCBlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbihjb25zdCBzdHJ1Y3QgZTgyMGVudHJ5ICplaSwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyBsYXN0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX3N0YXJ0cGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfZW5kcGZuKQoreworCXU2NCBhbGlnbiA9IFBBR0VfU0laRTsKKworCSplaV9zdGFydHBmbiA9IHJvdW5kX3VwKGVpLT5hZGRyLCBhbGlnbikgPj4gUEFHRV9TSElGVDsKKwkqZWlfZW5kcGZuID0gcm91bmRfZG93bihlaS0+YWRkciArIGVpLT5zaXplLCBhbGlnbikgPj4gUEFHRV9TSElGVDsKKworCS8qIFNraXAgbWFwIGVudHJpZXMgc21hbGxlciB0aGFuIGEgcGFnZSAqLworCWlmICgqZWlfc3RhcnRwZm4gPj0gKmVpX2VuZHBmbikKKwkJcmV0dXJuIDA7CisKKwkvKiBTa2lwIGlmIG1hcCBpcyBvdXRzaWRlIHRoZSBub2RlICovCisJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNIHx8ICplaV9lbmRwZm4gPD0gc3RhcnRfcGZuIHx8CisJCQkJICAgICplaV9zdGFydHBmbiA+PSBsYXN0X3BmbikKKwkJcmV0dXJuIDA7CisKKwkvKiBDaGVjayBmb3Igb3ZlcmxhcHMgKi8KKwlpZiAoKmVpX3N0YXJ0cGZuIDwgc3RhcnRfcGZuKQorCQkqZWlfc3RhcnRwZm4gPSBzdGFydF9wZm47CisJaWYgKCplaV9lbmRwZm4gPiBsYXN0X3BmbikKKwkJKmVpX2VuZHBmbiA9IGxhc3RfcGZuOworCisJcmV0dXJuIDE7Cit9CisKKy8qIFdhbGsgdGhlIGU4MjAgbWFwIGFuZCByZWdpc3RlciBhY3RpdmUgcmVnaW9ucyB3aXRoaW4gYSBub2RlICovCit2b2lkIF9faW5pdCBlODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBsYXN0X3BmbikKK3sKKwl1bnNpZ25lZCBsb25nIGVpX3N0YXJ0cGZuOworCXVuc2lnbmVkIGxvbmcgZWlfZW5kcGZuOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspCisJCWlmIChlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbigmZTgyMC5tYXBbaV0sCisJCQkJCSAgICBzdGFydF9wZm4sIGxhc3RfcGZuLAorCQkJCQkgICAgJmVpX3N0YXJ0cGZuLCAmZWlfZW5kcGZuKSkKKwkJCWFkZF9hY3RpdmVfcmFuZ2UobmlkLCBlaV9zdGFydHBmbiwgZWlfZW5kcGZuKTsKK30KKworLyoKKyAqIEZpbmQgdGhlIGhvbGUgc2l6ZSAoaW4gYnl0ZXMpIGluIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAc3RhcnQ6IHN0YXJ0aW5nIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSByYW5nZSB0byBzY2FuCisgKiBAZW5kOiBlbmRpbmcgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IHJhbmdlIHRvIHNjYW4KKyAqLwordTY0IF9faW5pdCBlODIwX2hvbGVfc2l6ZSh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOworCXVuc2lnbmVkIGxvbmcgbGFzdF9wZm4gPSBlbmQgPj4gUEFHRV9TSElGVDsKKwl1bnNpZ25lZCBsb25nIGVpX3N0YXJ0cGZuLCBlaV9lbmRwZm4sIHJhbSA9IDA7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlpZiAoZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oJmU4MjAubWFwW2ldLAorCQkJCQkgICAgc3RhcnRfcGZuLCBsYXN0X3BmbiwKKwkJCQkJICAgICZlaV9zdGFydHBmbiwgJmVpX2VuZHBmbikpCisJCQlyYW0gKz0gZWlfZW5kcGZuIC0gZWlfc3RhcnRwZm47CisJfQorCXJldHVybiBlbmQgLSBzdGFydCAtICgodTY0KXJhbSA8PCBQQUdFX1NISUZUKTsKK30KKworc3RhdGljIHZvaWQgZWFybHlfcGFuaWMoY2hhciAqbXNnKQoreworCWVhcmx5X3ByaW50ayhtc2cpOworCXBhbmljKG1zZyk7Cit9CisKK3N0YXRpYyBpbnQgdXNlcmRlZiBfX2luaXRkYXRhOworCisvKiAibWVtPW5vcGVudGl1bSIgZGlzYWJsZXMgdGhlIDRNQiBwYWdlIHRhYmxlcy4gKi8KK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbW9wdChjaGFyICpwKQoreworCXU2NCBtZW1fc2l6ZTsKKworCWlmICghcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJaWYgKCFzdHJjbXAocCwgIm5vcGVudGl1bSIpKSB7CisJCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfUFNFKTsKKwkJcmV0dXJuIDA7CisJfQorI2VuZGlmCisKKwl1c2VyZGVmID0gMTsKKwltZW1fc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKKwllODIwX3JlbW92ZV9yYW5nZShtZW1fc2l6ZSwgVUxMT05HX01BWCAtIG1lbV9zaXplLCBFODIwX1JBTSwgMSk7CisKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJtZW0iLCBwYXJzZV9tZW1vcHQpOworCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW1tYXBfb3B0KGNoYXIgKnApCit7CisJY2hhciAqb2xkcDsKKwl1NjQgc3RhcnRfYXQsIG1lbV9zaXplOworCisJaWYgKCFwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghc3RyY21wKHAsICJleGFjdG1hcCIpKSB7CisjaWZkZWYgQ09ORklHX0NSQVNIX0RVTVAKKwkJLyoKKwkJICogSWYgd2UgYXJlIGRvaW5nIGEgY3Jhc2ggZHVtcCwgd2Ugc3RpbGwgbmVlZCB0byBrbm93CisJCSAqIHRoZSByZWFsIG1lbSBzaXplIGJlZm9yZSBvcmlnaW5hbCBtZW1vcnkgbWFwIGlzCisJCSAqIHJlc2V0LgorCQkgKi8KKwkJc2F2ZWRfbWF4X3BmbiA9IGU4MjBfZW5kX29mX3JhbV9wZm4oKTsKKyNlbmRpZgorCQllODIwLm5yX21hcCA9IDA7CisJCXVzZXJkZWYgPSAxOworCQlyZXR1cm4gMDsKKwl9CisKKwlvbGRwID0gcDsKKwltZW1fc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKKwlpZiAocCA9PSBvbGRwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXVzZXJkZWYgPSAxOworCWlmICgqcCA9PSAnQCcpIHsKKwkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKKwkJZTgyMF9hZGRfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SQU0pOworCX0gZWxzZSBpZiAoKnAgPT0gJyMnKSB7CisJCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7CisJCWU4MjBfYWRkX3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfQUNQSSk7CisJfSBlbHNlIGlmICgqcCA9PSAnJCcpIHsKKwkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKKwkJZTgyMF9hZGRfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SRVNFUlZFRCk7CisJfSBlbHNlCisJCWU4MjBfcmVtb3ZlX3JhbmdlKG1lbV9zaXplLCBVTExPTkdfTUFYIC0gbWVtX3NpemUsIEU4MjBfUkFNLCAxKTsKKworCXJldHVybiAqcCA9PSAnXDAnID8gMCA6IC1FSU5WQUw7Cit9CitlYXJseV9wYXJhbSgibWVtbWFwIiwgcGFyc2VfbWVtbWFwX29wdCk7CisKK3ZvaWQgX19pbml0IGZpbmlzaF9lODIwX3BhcnNpbmcodm9pZCkKK3sKKwlpZiAodXNlcmRlZikgeworCQlpbnQgbnIgPSBlODIwLm5yX21hcDsKKworCQlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmbnIpIDwgMCkKKwkJCWVhcmx5X3BhbmljKCJJbnZhbGlkIHVzZXIgc3VwcGxpZWQgbWVtb3J5IG1hcCIpOworCQllODIwLm5yX21hcCA9IG5yOworCisJCXByaW50ayhLRVJOX0lORk8gInVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJCWU4MjBfcHJpbnRfbWFwKCJ1c2VyIik7CisJfQorfQorCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmU4MjBfdHlwZV90b19zdHJpbmcoaW50IGU4MjBfdHlwZSkKK3sKKwlzd2l0Y2ggKGU4MjBfdHlwZSkgeworCWNhc2UgRTgyMF9SRVNFUlZFRF9LRVJOOgorCWNhc2UgRTgyMF9SQU06CXJldHVybiAiU3lzdGVtIFJBTSI7CisJY2FzZSBFODIwX0FDUEk6CXJldHVybiAiQUNQSSBUYWJsZXMiOworCWNhc2UgRTgyMF9OVlM6CXJldHVybiAiQUNQSSBOb24tdm9sYXRpbGUgU3RvcmFnZSI7CisJZGVmYXVsdDoJcmV0dXJuICJyZXNlcnZlZCI7CisJfQorfQorCisvKgorICogTWFyayBlODIwIHJlc2VydmVkIGFyZWFzIGFzIGJ1c3kgZm9yIHRoZSByZXNvdXJjZSBtYW5hZ2VyLgorICovCit2b2lkIF9faW5pdCBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKHZvaWQpCit7CisJaW50IGk7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJdTY0IGVuZDsKKworCXJlcyA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogZTgyMC5ucl9tYXApOworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCWVuZCA9IGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplIC0gMTsKKyNpZm5kZWYgQ09ORklHX1JFU09VUkNFU182NEJJVAorCQlpZiAoZW5kID4gMHgxMDAwMDAwMDBVTEwpIHsKKwkJCXJlcysrOworCQkJY29udGludWU7CisJCX0KKyNlbmRpZgorCQlyZXMtPm5hbWUgPSBlODIwX3R5cGVfdG9fc3RyaW5nKGU4MjAubWFwW2ldLnR5cGUpOworCQlyZXMtPnN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKKwkJcmVzLT5lbmQgPSBlbmQ7CisKKwkJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZOworCQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCByZXMpOworCQlyZXMrKzsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMF9zYXZlZC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplbnRyeSA9ICZlODIwX3NhdmVkLm1hcFtpXTsKKwkJZmlybXdhcmVfbWFwX2FkZF9lYXJseShlbnRyeS0+YWRkciwKKwkJCWVudHJ5LT5hZGRyICsgZW50cnktPnNpemUgLSAxLAorCQkJZTgyMF90eXBlX3RvX3N0cmluZyhlbnRyeS0+dHlwZSkpOworCX0KK30KKworLyoKKyAqIE5vbi1zdGFuZGFyZCBtZW1vcnkgc2V0dXAgY2FuIGJlIHNwZWNpZmllZCB2aWEgdGhpcyBxdWlyazoKKyAqLworY2hhciAqICgqYXJjaF9tZW1vcnlfc2V0dXBfcXVpcmspKHZvaWQpOworCitjaGFyICpfX2luaXQgZGVmYXVsdF9tYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQoreworCWNoYXIgKndobyA9ICJCSU9TLWU4MjAiOworCWludCBuZXdfbnI7CisJLyoKKwkgKiBUcnkgdG8gY29weSB0aGUgQklPUy1zdXBwbGllZCBFODIwLW1hcC4KKwkgKgorCSAqIE90aGVyd2lzZSBmYWtlIGEgbWVtb3J5IG1hcDsgb25lIHNlY3Rpb24gZnJvbSAway0+NjQwaywKKwkgKiB0aGUgbmV4dCBzZWN0aW9uIGZyb20gMW1iLT5hcHByb3ByaWF0ZV9tZW1faworCSAqLworCW5ld19uciA9IGJvb3RfcGFyYW1zLmU4MjBfZW50cmllczsKKwlzYW5pdGl6ZV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwKKwkJCUFSUkFZX1NJWkUoYm9vdF9wYXJhbXMuZTgyMF9tYXApLAorCQkJJm5ld19ucik7CisJYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzID0gbmV3X25yOworCWlmIChhcHBlbmRfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsIGJvb3RfcGFyYW1zLmU4MjBfZW50cmllcykKKwkgIDwgMCkgeworCQl1NjQgbWVtX3NpemU7CisKKwkJLyogY29tcGFyZSByZXN1bHRzIGZyb20gb3RoZXIgbWV0aG9kcyBhbmQgdGFrZSB0aGUgZ3JlYXRlciAqLworCQlpZiAoYm9vdF9wYXJhbXMuYWx0X21lbV9rCisJCSAgICA8IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1faykgeworCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2s7CisJCQl3aG8gPSAiQklPUy04OCI7CisJCX0gZWxzZSB7CisJCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLmFsdF9tZW1fazsKKwkJCXdobyA9ICJCSU9TLWU4MDEiOworCQl9CisKKwkJZTgyMC5ucl9tYXAgPSAwOworCQllODIwX2FkZF9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7CisJCWU4MjBfYWRkX3JlZ2lvbihISUdIX01FTU9SWSwgbWVtX3NpemUgPDwgMTAsIEU4MjBfUkFNKTsKKwl9CisKKwkvKiBJbiBjYXNlIHNvbWVvbmUgY2FyZXMuLi4gKi8KKwlyZXR1cm4gd2hvOworfQorCitjaGFyICpfX2luaXQgX19hdHRyaWJ1dGVfXygod2VhaykpIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCit7CisJaWYgKGFyY2hfbWVtb3J5X3NldHVwX3F1aXJrKSB7CisJCWNoYXIgKndobyA9IGFyY2hfbWVtb3J5X3NldHVwX3F1aXJrKCk7CisKKwkJaWYgKHdobykKKwkJCXJldHVybiB3aG87CisJfQorCXJldHVybiBkZWZhdWx0X21hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKCk7Cit9CisKKy8qIE92ZXJyaWRkZW4gaW4gcGFyYXZpcnQuYyBpZiBDT05GSUdfUEFSQVZJUlQgKi8KK2NoYXIgKiBfX2luaXQgX19hdHRyaWJ1dGVfXygod2VhaykpIG1lbW9yeV9zZXR1cCh2b2lkKQoreworCXJldHVybiBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCgpOworfQorCit2b2lkIF9faW5pdCBzZXR1cF9tZW1vcnlfbWFwKHZvaWQpCit7CisJY2hhciAqd2hvOworCisJd2hvID0gbWVtb3J5X3NldHVwKCk7CisJbWVtY3B5KCZlODIwX3NhdmVkLCAmZTgyMCwgc2l6ZW9mKHN0cnVjdCBlODIwbWFwKSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJZTgyMF9wcmludF9tYXAod2hvKTsKK30KKworI2lmZGVmIENPTkZJR19YODZfNjQKK2ludCBfX2luaXQgYXJjaF9nZXRfcmFtX3JhbmdlKGludCBzbG90LCB1NjQgKmFkZHIsIHU2NCAqc2l6ZSkKK3sKKwlpbnQgaTsKKworCWlmIChzbG90IDwgMCB8fCBzbG90ID49IGU4MjAubnJfbWFwKQorCQlyZXR1cm4gLTE7CisJZm9yIChpID0gc2xvdDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJaWYgKGU4MjAubWFwW2ldLnR5cGUgIT0gRTgyMF9SQU0pCisJCQljb250aW51ZTsKKwkJYnJlYWs7CisJfQorCWlmIChpID09IGU4MjAubnJfbWFwIHx8IGU4MjAubWFwW2ldLmFkZHIgPiAobWF4X3BmbiA8PCBQQUdFX1NISUZUKSkKKwkJcmV0dXJuIC0xOworCSphZGRyID0gZTgyMC5tYXBbaV0uYWRkcjsKKwkqc2l6ZSA9IG1pbl90KHU2NCwgZTgyMC5tYXBbaV0uc2l6ZSArIGU4MjAubWFwW2ldLmFkZHIsCisJCW1heF9wZm4gPDwgUEFHRV9TSElGVCkgLSAqYWRkcjsKKwlyZXR1cm4gaSArIDE7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lODIwXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZTgyMF8zMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDczM2U3Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9lODIwXzMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3NzUgKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvcGZuLmg+Ci0jaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KLQotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRlIDxhc20vZTgyMC5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgotCi1zdHJ1Y3QgZTgyMG1hcCBlODIwOwotc3RydWN0IGNoYW5nZV9tZW1iZXIgewotCXN0cnVjdCBlODIwZW50cnkgKnBiaW9zOyAvKiBwb2ludGVyIHRvIG9yaWdpbmFsIGJpb3MgZW50cnkgKi8KLQl1bnNpZ25lZCBsb25nIGxvbmcgYWRkcjsgLyogYWRkcmVzcyBmb3IgdGhpcyBjaGFuZ2UgcG9pbnQgKi8KLX07Ci1zdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgY2hhbmdlX3BvaW50X2xpc3RbMipFODIwTUFYXSBfX2luaXRkYXRhOwotc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfcG9pbnRbMipFODIwTUFYXSBfX2luaXRkYXRhOwotc3RhdGljIHN0cnVjdCBlODIwZW50cnkgKm92ZXJsYXBfbGlzdFtFODIwTUFYXSBfX2luaXRkYXRhOwotc3RhdGljIHN0cnVjdCBlODIwZW50cnkgbmV3X2Jpb3NbRTgyME1BWF0gX19pbml0ZGF0YTsKLS8qIEZvciBQQ0kgb3Igb3RoZXIgbWVtb3J5LW1hcHBlZCByZXNvdXJjZXMgKi8KLXVuc2lnbmVkIGxvbmcgcGNpX21lbV9zdGFydCA9IDB4MTAwMDAwMDA7Ci0jaWZkZWYgQ09ORklHX1BDSQotRVhQT1JUX1NZTUJPTChwY2lfbWVtX3N0YXJ0KTsKLSNlbmRpZgotZXh0ZXJuIGludCB1c2VyX2RlZmluZWRfbWVtbWFwOwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHN5c3RlbV9yb21fcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiU3lzdGVtIFJPTSIsCi0JLnN0YXJ0CT0gMHhmMDAwMCwKLQkuZW5kCT0gMHhmZmZmZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJFeHRlbnNpb24gUk9NIiwKLQkuc3RhcnQJPSAweGUwMDAwLAotCS5lbmQJPSAweGVmZmZmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbXSA9IHsgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMHhjODAwMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0sIHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19LCB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSwgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0sIHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19LCB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSB9OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHZpZGVvX3JvbV9yZXNvdXJjZSA9IHsKLQkubmFtZSAJPSAiVmlkZW8gUk9NIiwKLQkuc3RhcnQJPSAweGMwMDAwLAotCS5lbmQJPSAweGM3ZmZmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfTsKLQotI2RlZmluZSBST01TSUdOQVRVUkUgMHhhYTU1Ci0KLXN0YXRpYyBpbnQgX19pbml0IHJvbXNpZ25hdHVyZShjb25zdCB1bnNpZ25lZCBjaGFyICpyb20pCi17Ci0JY29uc3QgdW5zaWduZWQgc2hvcnQgKiBjb25zdCBwdHIgPSAoY29uc3QgdW5zaWduZWQgc2hvcnQgKilyb207Ci0JdW5zaWduZWQgc2hvcnQgc2lnOwotCi0JcmV0dXJuIHByb2JlX2tlcm5lbF9hZGRyZXNzKHB0ciwgc2lnKSA9PSAwICYmIHNpZyA9PSBST01TSUdOQVRVUkU7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHJvbWNoZWNrc3VtKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbSwgdW5zaWduZWQgbG9uZyBsZW5ndGgpCi17Ci0JdW5zaWduZWQgY2hhciBzdW0sIGM7Ci0KLQlmb3IgKHN1bSA9IDA7IGxlbmd0aCAmJiBwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20rKywgYykgPT0gMDsgbGVuZ3RoLS0pCi0JCXN1bSArPSBjOwotCXJldHVybiAhbGVuZ3RoICYmICFzdW07Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBwcm9iZV9yb21zKHZvaWQpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqcm9tOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGxlbmd0aCwgdXBwZXI7Ci0JdW5zaWduZWQgY2hhciBjOwotCWludCBpOwotCi0JLyogdmlkZW8gcm9tICovCi0JdXBwZXIgPSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbMF0uc3RhcnQ7Ci0JZm9yIChzdGFydCA9IHZpZGVvX3JvbV9yZXNvdXJjZS5zdGFydDsgc3RhcnQgPCB1cHBlcjsgc3RhcnQgKz0gMjA0OCkgewotCQlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoc3RhcnQpOwotCQlpZiAoIXJvbXNpZ25hdHVyZShyb20pKQotCQkJY29udGludWU7Ci0KLQkJdmlkZW9fcm9tX3Jlc291cmNlLnN0YXJ0ID0gc3RhcnQ7Ci0KLQkJaWYgKHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSArIDIsIGMpICE9IDApCi0JCQljb250aW51ZTsKLQotCQkvKiAwIDwgbGVuZ3RoIDw9IDB4N2YgKiA1MTIsIGhpc3RvcmljYWxseSAqLwotCQlsZW5ndGggPSBjICogNTEyOwotCi0JCS8qIGlmIGNoZWNrc3VtIG9rYXksIHRydXN0IGxlbmd0aCBieXRlICovCi0JCWlmIChsZW5ndGggJiYgcm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKQotCQkJdmlkZW9fcm9tX3Jlc291cmNlLmVuZCA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKLQotCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnZpZGVvX3JvbV9yZXNvdXJjZSk7Ci0JCWJyZWFrOwotCX0KLQotCXN0YXJ0ID0gKHZpZGVvX3JvbV9yZXNvdXJjZS5lbmQgKyAxICsgMjA0NykgJiB+MjA0N1VMOwotCWlmIChzdGFydCA8IHVwcGVyKQotCQlzdGFydCA9IHVwcGVyOwotCi0JLyogc3lzdGVtIHJvbSAqLwotCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmc3lzdGVtX3JvbV9yZXNvdXJjZSk7Ci0JdXBwZXIgPSBzeXN0ZW1fcm9tX3Jlc291cmNlLnN0YXJ0OwotCi0JLyogY2hlY2sgZm9yIGV4dGVuc2lvbiByb20gKGlnbm9yZSBsZW5ndGggYnl0ZSEpICovCi0Jcm9tID0gaXNhX2J1c190b192aXJ0KGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQpOwotCWlmIChyb21zaWduYXR1cmUocm9tKSkgewotCQlsZW5ndGggPSBleHRlbnNpb25fcm9tX3Jlc291cmNlLmVuZCAtIGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQgKyAxOwotCQlpZiAocm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKSB7Ci0JCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmV4dGVuc2lvbl9yb21fcmVzb3VyY2UpOwotCQkJdXBwZXIgPSBleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0OwotCQl9Ci0JfQotCi0JLyogY2hlY2sgZm9yIGFkYXB0ZXIgcm9tcyBvbiAyayBib3VuZGFyaWVzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWRhcHRlcl9yb21fcmVzb3VyY2VzKSAmJiBzdGFydCA8IHVwcGVyOyBzdGFydCArPSAyMDQ4KSB7Ci0JCXJvbSA9IGlzYV9idXNfdG9fdmlydChzdGFydCk7Ci0JCWlmICghcm9tc2lnbmF0dXJlKHJvbSkpCi0JCQljb250aW51ZTsKLQotCQlpZiAocHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tICsgMiwgYykgIT0gMCkKLQkJCWNvbnRpbnVlOwotCi0JCS8qIDAgPCBsZW5ndGggPD0gMHg3ZiAqIDUxMiwgaGlzdG9yaWNhbGx5ICovCi0JCWxlbmd0aCA9IGMgKiA1MTI7Ci0KLQkJLyogYnV0IGFjY2VwdCBhbnkgbGVuZ3RoIHRoYXQgZml0cyBpZiBjaGVja3N1bSBva2F5ICovCi0JCWlmICghbGVuZ3RoIHx8IHN0YXJ0ICsgbGVuZ3RoID4gdXBwZXIgfHwgIXJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkKLQkJCWNvbnRpbnVlOwotCi0JCWFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXS5zdGFydCA9IHN0YXJ0OwotCQlhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0uZW5kID0gc3RhcnQgKyBsZW5ndGggLSAxOwotCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXSk7Ci0KLQkJc3RhcnQgPSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaSsrXS5lbmQgJiB+MjA0N1VMOwotCX0KLX0KLQotLyoKLSAqIFJlcXVlc3QgYWRkcmVzcyBzcGFjZSBmb3IgYWxsIHN0YW5kYXJkIFJBTSBhbmQgUk9NIHJlc291cmNlcwotICogYW5kIGFsc28gZm9yIHJlZ2lvbnMgcmVwb3J0ZWQgYXMgcmVzZXJ2ZWQgYnkgdGhlIGU4MjAuCi0gKi8KLXZvaWQgX19pbml0IGluaXRfaW9tZW1fcmVzb3VyY2VzKHN0cnVjdCByZXNvdXJjZSAqY29kZV9yZXNvdXJjZSwKLQkJc3RydWN0IHJlc291cmNlICpkYXRhX3Jlc291cmNlLAotCQlzdHJ1Y3QgcmVzb3VyY2UgKmJzc19yZXNvdXJjZSkKLXsKLQlpbnQgaTsKLQotCXByb2JlX3JvbXMoKTsKLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLSNpZm5kZWYgQ09ORklHX1JFU09VUkNFU182NEJJVAotCQlpZiAoZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUgPiAweDEwMDAwMDAwMFVMTCkKLQkJCWNvbnRpbnVlOwotI2VuZGlmCi0JCXJlcyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSksIEdGUF9BVE9NSUMpOwotCQlzd2l0Y2ggKGU4MjAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBFODIwX1JBTToJcmVzLT5uYW1lID0gIlN5c3RlbSBSQU0iOyBicmVhazsKLQkJY2FzZSBFODIwX0FDUEk6CXJlcy0+bmFtZSA9ICJBQ1BJIFRhYmxlcyI7IGJyZWFrOwotCQljYXNlIEU4MjBfTlZTOglyZXMtPm5hbWUgPSAiQUNQSSBOb24tdm9sYXRpbGUgU3RvcmFnZSI7IGJyZWFrOwotCQlkZWZhdWx0OglyZXMtPm5hbWUgPSAicmVzZXJ2ZWQiOwotCQl9Ci0JCXJlcy0+c3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOwotCQlyZXMtPmVuZCA9IHJlcy0+c3RhcnQgKyBlODIwLm1hcFtpXS5zaXplIC0gMTsKLQkJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZOwotCQlpZiAocmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsIHJlcykpIHsKLQkJCWtmcmVlKHJlcyk7Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAoZTgyMC5tYXBbaV0udHlwZSA9PSBFODIwX1JBTSkgewotCQkJLyoKLQkJCSAqICBXZSBkb24ndCBrbm93IHdoaWNoIFJBTSByZWdpb24gY29udGFpbnMga2VybmVsIGRhdGEsCi0JCQkgKiAgc28gd2UgdHJ5IGl0IHJlcGVhdGVkbHkgYW5kIGxldCB0aGUgcmVzb3VyY2UgbWFuYWdlcgotCQkJICogIHRlc3QgaXQuCi0JCQkgKi8KLQkJCXJlcXVlc3RfcmVzb3VyY2UocmVzLCBjb2RlX3Jlc291cmNlKTsKLQkJCXJlcXVlc3RfcmVzb3VyY2UocmVzLCBkYXRhX3Jlc291cmNlKTsKLQkJCXJlcXVlc3RfcmVzb3VyY2UocmVzLCBic3NfcmVzb3VyY2UpOwotI2lmZGVmIENPTkZJR19LRVhFQwotCQkJaWYgKGNyYXNoa19yZXMuc3RhcnQgIT0gY3Jhc2hrX3Jlcy5lbmQpCi0JCQkJcmVxdWVzdF9yZXNvdXJjZShyZXMsICZjcmFzaGtfcmVzKTsKLSNlbmRpZgotCQl9Ci0JfQotfQotCi0jaWYgZGVmaW5lZChDT05GSUdfUE0pICYmIGRlZmluZWQoQ09ORklHX0hJQkVSTkFUSU9OKQotLyoqCi0gKiBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnMgLSBGaW5kIHRoZSByYW5nZXMgb2YgcGh5c2ljYWwgYWRkcmVzc2VzIHRoYXQgZG8gbm90Ci0gKiBjb3JyZXNwb25kIHRvIGU4MjAgUkFNIGFyZWFzIGFuZCBtYXJrIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2VzIGFzIG5vc2F2ZSBmb3IKLSAqIGhpYmVybmF0aW9uLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIGU4MjAgbWFwIHRvIGJlIHNvcnRlZCBhbmQgd2l0aG91dCBhbnkKLSAqIG92ZXJsYXBwaW5nIGVudHJpZXMgYW5kIGFzc3VtZXMgdGhlIGZpcnN0IGU4MjAgYXJlYSB0byBiZSBSQU0uCi0gKi8KLXZvaWQgX19pbml0IGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh2b2lkKQotewotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgcGZuOwotCi0JcGZuID0gUEZOX0RPV04oZTgyMC5tYXBbMF0uYWRkciArIGU4MjAubWFwWzBdLnNpemUpOwotCWZvciAoaSA9IDE7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCi0JCWlmIChwZm4gPCBQRk5fVVAoZWktPmFkZHIpKQotCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihwZm4sIFBGTl9VUChlaS0+YWRkcikpOwotCi0JCXBmbiA9IFBGTl9ET1dOKGVpLT5hZGRyICsgZWktPnNpemUpOwotCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCi0JCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKFBGTl9VUChlaS0+YWRkciksIHBmbik7Ci0KLQkJaWYgKHBmbiA+PSBtYXhfbG93X3BmbikKLQkJCWJyZWFrOwotCX0KLX0KLSNlbmRpZgotCi12b2lkIF9faW5pdCBhZGRfbWVtb3J5X3JlZ2lvbih1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgaW50IHR5cGUpCi17Ci0JaW50IHg7Ci0KLQl4ID0gZTgyMC5ucl9tYXA7Ci0KLQlpZiAoeCA9PSBFODIwTUFYKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiT29vcHMhIFRvbyBtYW55IGVudHJpZXMgaW4gdGhlIG1lbW9yeSBtYXAhXG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWU4MjAubWFwW3hdLmFkZHIgPSBzdGFydDsKLQllODIwLm1hcFt4XS5zaXplID0gc2l6ZTsKLQllODIwLm1hcFt4XS50eXBlID0gdHlwZTsKLQllODIwLm5yX21hcCsrOwotfSAvKiBhZGRfbWVtb3J5X3JlZ2lvbiAqLwotCi0vKgotICogU2FuaXRpemUgdGhlIEJJT1MgZTgyMCBtYXAuCi0gKgotICogU29tZSBlODIwIHJlc3BvbnNlcyBpbmNsdWRlIG92ZXJsYXBwaW5nIGVudHJpZXMuICBUaGUgZm9sbG93aW5nCi0gKiByZXBsYWNlcyB0aGUgb3JpZ2luYWwgZTgyMCBtYXAgd2l0aCBhIG5ldyBvbmUsIHJlbW92aW5nIG92ZXJsYXBzLgotICoKLSAqLwotaW50IF9faW5pdCBzYW5pdGl6ZV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICogYmlvc21hcCwgY2hhciAqIHBucl9tYXApCi17Ci0Jc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV90bXA7Ci0JdW5zaWduZWQgbG9uZyBjdXJyZW50X3R5cGUsIGxhc3RfdHlwZTsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF9hZGRyOwotCWludCBjaGdpZHgsIHN0aWxsX2NoYW5naW5nOwotCWludCBvdmVybGFwX2VudHJpZXM7Ci0JaW50IG5ld19iaW9zX2VudHJ5OwotCWludCBvbGRfbnIsIG5ld19uciwgY2hnX25yOwotCWludCBpOwotCi0JLyoKLQkJVmlzdWFsbHkgd2UncmUgcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nICgxLDIsMyw0ID0gbWVtb3J5IHR5cGVzKS4uLgotCi0JCVNhbXBsZSBtZW1vcnkgbWFwICh3L292ZXJsYXBzKToKLQkJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fX180XwotCQkgICBfX19fMTExMV9fX19fX19fX19fX19fX18KLQkJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCi0JCSAgIDExMTExMTExX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KLQkJICAgX19fX19fX19fX180NF9fX19fX19fX19fCi0JCSAgIF9fX19fX19fX18zMzMzM19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fXzIyX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fXzIyMjJfCi0JCSAgIF9fX19fX19fXzExMTExMTExMV9fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fX18xMV8KLQkJICAgX19fX19fX19fX19fX19fX180X19fX19fCi0KLQkJU2FuaXRpemVkIGVxdWl2YWxlbnQgKG5vIG92ZXJsYXApOgotCQkgICAxX19fX19fX19fX19fX19fX19fX19fX18KLQkJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fXzFfX19fX19fX19fX19fX19fX19fXwotCQkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KLQkJICAgX19fX19fMTFfX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fXzFfX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fM19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX180NF9fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX18zM19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX18yX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fXzFfX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fMl9fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX18zM19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fX180XwotCSovCi0JLyogaWYgdGhlcmUncyBvbmx5IG9uZSBtZW1vcnkgcmVnaW9uLCBkb24ndCBib3RoZXIgKi8KLQlpZiAoKnBucl9tYXAgPCAyKSB7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlvbGRfbnIgPSAqcG5yX21hcDsKLQotCS8qIGJhaWwgb3V0IGlmIHdlIGZpbmQgYW55IHVucmVhc29uYWJsZSBhZGRyZXNzZXMgaW4gYmlvcyBtYXAgKi8KLQlmb3IgKGk9MDsgaTxvbGRfbnI7IGkrKykKLQkJaWYgKGJpb3NtYXBbaV0uYWRkciArIGJpb3NtYXBbaV0uc2l6ZSA8IGJpb3NtYXBbaV0uYWRkcikgewotCQkJcmV0dXJuIC0xOwotCQl9Ci0KLQkvKiBjcmVhdGUgcG9pbnRlcnMgZm9yIGluaXRpYWwgY2hhbmdlLXBvaW50IGluZm9ybWF0aW9uIChmb3Igc29ydGluZykgKi8KLQlmb3IgKGk9MDsgaSA8IDIqb2xkX25yOyBpKyspCi0JCWNoYW5nZV9wb2ludFtpXSA9ICZjaGFuZ2VfcG9pbnRfbGlzdFtpXTsKLQotCS8qIHJlY29yZCBhbGwga25vd24gY2hhbmdlLXBvaW50cyAoc3RhcnRpbmcgYW5kIGVuZGluZyBhZGRyZXNzZXMpLAotCSAgIG9taXR0aW5nIHRob3NlIHRoYXQgYXJlIGZvciBlbXB0eSBtZW1vcnkgcmVnaW9ucyAqLwotCWNoZ2lkeCA9IDA7Ci0JZm9yIChpPTA7IGkgPCBvbGRfbnI7IGkrKykJewotCQlpZiAoYmlvc21hcFtpXS5zaXplICE9IDApIHsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyICsgYmlvc21hcFtpXS5zaXplOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKLQkJfQotCX0KLQljaGdfbnIgPSBjaGdpZHg7ICAgIAkvKiB0cnVlIG51bWJlciBvZiBjaGFuZ2UtcG9pbnRzICovCi0KLQkvKiBzb3J0IGNoYW5nZS1wb2ludCBsaXN0IGJ5IG1lbW9yeSBhZGRyZXNzZXMgKGxvdyAtPiBoaWdoKSAqLwotCXN0aWxsX2NoYW5naW5nID0gMTsKLQl3aGlsZSAoc3RpbGxfY2hhbmdpbmcpCXsKLQkJc3RpbGxfY2hhbmdpbmcgPSAwOwotCQlmb3IgKGk9MTsgaSA8IGNoZ19ucjsgaSsrKSAgewotCQkJLyogaWYgPGN1cnJlbnRfYWRkcj4gPiA8bGFzdF9hZGRyPiwgc3dhcCAqLwotCQkJLyogb3IsIGlmIGN1cnJlbnQ9PHN0YXJ0X2FkZHI+ICYgbGFzdD08ZW5kX2FkZHI+LCBzd2FwICovCi0JCQlpZiAoKGNoYW5nZV9wb2ludFtpXS0+YWRkciA8IGNoYW5nZV9wb2ludFtpLTFdLT5hZGRyKSB8fAotCQkJCSgoY2hhbmdlX3BvaW50W2ldLT5hZGRyID09IGNoYW5nZV9wb2ludFtpLTFdLT5hZGRyKSAmJgotCQkJCSAoY2hhbmdlX3BvaW50W2ldLT5hZGRyID09IGNoYW5nZV9wb2ludFtpXS0+cGJpb3MtPmFkZHIpICYmCi0JCQkJIChjaGFuZ2VfcG9pbnRbaS0xXS0+YWRkciAhPSBjaGFuZ2VfcG9pbnRbaS0xXS0+cGJpb3MtPmFkZHIpKQotCQkJICAgKQotCQkJewotCQkJCWNoYW5nZV90bXAgPSBjaGFuZ2VfcG9pbnRbaV07Ci0JCQkJY2hhbmdlX3BvaW50W2ldID0gY2hhbmdlX3BvaW50W2ktMV07Ci0JCQkJY2hhbmdlX3BvaW50W2ktMV0gPSBjaGFuZ2VfdG1wOwotCQkJCXN0aWxsX2NoYW5naW5nPTE7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQkvKiBjcmVhdGUgYSBuZXcgYmlvcyBtZW1vcnkgbWFwLCByZW1vdmluZyBvdmVybGFwcyAqLwotCW92ZXJsYXBfZW50cmllcz0wOwkgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG92ZXJsYXAgdGFibGUgKi8KLQluZXdfYmlvc19lbnRyeT0wOwkgLyogaW5kZXggZm9yIGNyZWF0aW5nIG5ldyBiaW9zIG1hcCBlbnRyaWVzICovCi0JbGFzdF90eXBlID0gMDsJCSAvKiBzdGFydCB3aXRoIHVuZGVmaW5lZCBtZW1vcnkgdHlwZSAqLwotCWxhc3RfYWRkciA9IDA7CQkgLyogc3RhcnQgd2l0aCAwIGFzIGxhc3Qgc3RhcnRpbmcgYWRkcmVzcyAqLwotCS8qIGxvb3AgdGhyb3VnaCBjaGFuZ2UtcG9pbnRzLCBkZXRlcm1pbmluZyBhZmZlY3Qgb24gdGhlIG5ldyBiaW9zIG1hcCAqLwotCWZvciAoY2hnaWR4PTA7IGNoZ2lkeCA8IGNoZ19ucjsgY2hnaWR4KyspCi0JewotCQkvKiBrZWVwIHRyYWNrIG9mIGFsbCBvdmVybGFwcGluZyBiaW9zIGVudHJpZXMgKi8KLQkJaWYgKGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID09IGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcy0+YWRkcikKLQkJewotCQkJLyogYWRkIG1hcCBlbnRyeSB0byBvdmVybGFwIGxpc3QgKD4gMSBlbnRyeSBpbXBsaWVzIGFuIG92ZXJsYXApICovCi0JCQlvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzKytdPWNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvczsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qIHJlbW92ZSBlbnRyeSBmcm9tIGxpc3QgKG9yZGVyIGluZGVwZW5kZW50LCBzbyBzd2FwIHdpdGggbGFzdCkgKi8KLQkJCWZvciAoaT0wOyBpPG92ZXJsYXBfZW50cmllczsgaSsrKQotCQkJewotCQkJCWlmIChvdmVybGFwX2xpc3RbaV0gPT0gY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zKQotCQkJCQlvdmVybGFwX2xpc3RbaV0gPSBvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzLTFdOwotCQkJfQotCQkJb3ZlcmxhcF9lbnRyaWVzLS07Ci0JCX0KLQkJLyogaWYgdGhlcmUgYXJlIG92ZXJsYXBwaW5nIGVudHJpZXMsIGRlY2lkZSB3aGljaCAidHlwZSIgdG8gdXNlICovCi0JCS8qIChsYXJnZXIgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZSAtLSAxPXVzYWJsZSwgMiwzLDQsNCs9dW51c2FibGUpICovCi0JCWN1cnJlbnRfdHlwZSA9IDA7Ci0JCWZvciAoaT0wOyBpPG92ZXJsYXBfZW50cmllczsgaSsrKQotCQkJaWYgKG92ZXJsYXBfbGlzdFtpXS0+dHlwZSA+IGN1cnJlbnRfdHlwZSkKLQkJCQljdXJyZW50X3R5cGUgPSBvdmVybGFwX2xpc3RbaV0tPnR5cGU7Ci0JCS8qIGNvbnRpbnVlIGJ1aWxkaW5nIHVwIG5ldyBiaW9zIG1hcCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uICovCi0JCWlmIChjdXJyZW50X3R5cGUgIT0gbGFzdF90eXBlKQl7Ci0JCQlpZiAobGFzdF90eXBlICE9IDApCSB7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgPQotCQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciAtIGxhc3RfYWRkcjsKLQkJCQkvKiBtb3ZlIGZvcndhcmQgb25seSBpZiB0aGUgbmV3IHNpemUgd2FzIG5vbi16ZXJvICovCi0JCQkJaWYgKG5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplICE9IDApCi0JCQkJCWlmICgrK25ld19iaW9zX2VudHJ5ID49IEU4MjBNQVgpCi0JCQkJCQlicmVhazsgCS8qIG5vIG1vcmUgc3BhY2UgbGVmdCBmb3IgbmV3IGJpb3MgZW50cmllcyAqLwotCQkJfQotCQkJaWYgKGN1cnJlbnRfdHlwZSAhPSAwKQl7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLmFkZHIgPSBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0udHlwZSA9IGN1cnJlbnRfdHlwZTsKLQkJCQlsYXN0X2FkZHI9Y2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7Ci0JCQl9Ci0JCQlsYXN0X3R5cGUgPSBjdXJyZW50X3R5cGU7Ci0JCX0KLQl9Ci0JbmV3X25yID0gbmV3X2Jpb3NfZW50cnk7ICAgLyogcmV0YWluIGNvdW50IGZvciBuZXcgYmlvcyBlbnRyaWVzICovCi0KLQkvKiBjb3B5IG5ldyBiaW9zIG1hcHBpbmcgaW50byBvcmlnaW5hbCBsb2NhdGlvbiAqLwotCW1lbWNweShiaW9zbWFwLCBuZXdfYmlvcywgbmV3X25yKnNpemVvZihzdHJ1Y3QgZTgyMGVudHJ5KSk7Ci0JKnBucl9tYXAgPSBuZXdfbnI7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIENvcHkgdGhlIEJJT1MgZTgyMCBtYXAgaW50byBhIHNhZmUgcGxhY2UuCi0gKgotICogU2FuaXR5LWNoZWNrIGl0IHdoaWxlIHdlJ3JlIGF0IGl0Li4KLSAqCi0gKiBJZiB3ZSdyZSBsdWNreSBhbmQgbGl2ZSBvbiBhIG1vZGVybiBzeXN0ZW0sIHRoZSBzZXR1cCBjb2RlCi0gKiB3aWxsIGhhdmUgZ2l2ZW4gdXMgYSBtZW1vcnkgbWFwIHRoYXQgd2UgY2FuIHVzZSB0byBwcm9wZXJseQotICogc2V0IHVwIG1lbW9yeS4gIElmIHdlIGFyZW4ndCwgd2UnbGwgZmFrZSBhIG1lbW9yeSBtYXAuCi0gKgotICogV2UgY2hlY2sgdG8gc2VlIHRoYXQgdGhlIG1lbW9yeSBtYXAgY29udGFpbnMgYXQgbGVhc3QgMiBlbGVtZW50cwotICogYmVmb3JlIHdlJ2xsIHVzZSBpdCwgYmVjYXVzZSB0aGUgZGV0ZWN0aW9uIGNvZGUgaW4gc2V0dXAuUyBtYXkKLSAqIG5vdCBiZSBwZXJmZWN0IGFuZCBtb3N0IGV2ZXJ5IFBDIGtub3duIHRvIG1hbiBoYXMgdHdvIG1lbW9yeQotICogcmVnaW9uczogb25lIGZyb20gMCB0byA2NDBrLCBhbmQgb25lIGZyb20gMW1iIHVwLiAgKFRoZSBJQk0KLSAqIHRoaW5rcGFkIDU2MHgsIGZvciBleGFtcGxlLCBkb2VzIG5vdCBjb29wZXJhdGUgd2l0aCB0aGUgbWVtb3J5Ci0gKiBkZXRlY3Rpb24gY29kZS4pCi0gKi8KLWludCBfX2luaXQgY29weV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbnJfbWFwKQotewotCS8qIE9ubHkgb25lIG1lbW9yeSByZWdpb24gKG9yIG5lZ2F0aXZlKT8gSWdub3JlIGl0ICovCi0JaWYgKG5yX21hcCA8IDIpCi0JCXJldHVybiAtMTsKLQotCWRvIHsKLQkJdTY0IHN0YXJ0ID0gYmlvc21hcC0+YWRkcjsKLQkJdTY0IHNpemUgPSBiaW9zbWFwLT5zaXplOwotCQl1NjQgZW5kID0gc3RhcnQgKyBzaXplOwotCQl1MzIgdHlwZSA9IGJpb3NtYXAtPnR5cGU7Ci0KLQkJLyogT3ZlcmZsb3cgaW4gNjQgYml0cz8gSWdub3JlIHRoZSBtZW1vcnkgbWFwLiAqLwotCQlpZiAoc3RhcnQgPiBlbmQpCi0JCQlyZXR1cm4gLTE7Ci0KLQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnQsIHNpemUsIHR5cGUpOwotCX0gd2hpbGUgKGJpb3NtYXArKywgLS1ucl9tYXApOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBGaW5kIHRoZSBoaWdoZXN0IHBhZ2UgZnJhbWUgbnVtYmVyIHdlIGhhdmUgYXZhaWxhYmxlCi0gKi8KLXZvaWQgX19pbml0IHByb3BhZ2F0ZV9lODIwX21hcCh2b2lkKQotewotCWludCBpOwotCi0JbWF4X3BmbiA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7Ci0JCS8qIFJBTT8gKi8KLQkJaWYgKGU4MjAubWFwW2ldLnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQkJc3RhcnQgPSBQRk5fVVAoZTgyMC5tYXBbaV0uYWRkcik7Ci0JCWVuZCA9IFBGTl9ET1dOKGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplKTsKLQkJaWYgKHN0YXJ0ID49IGVuZCkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZW5kID4gbWF4X3BmbikKLQkJCW1heF9wZm4gPSBlbmQ7Ci0JCW1lbW9yeV9wcmVzZW50KDAsIHN0YXJ0LCBlbmQpOwotCX0KLX0KLQotLyoKLSAqIFJlZ2lzdGVyIGZ1bGx5IGF2YWlsYWJsZSBsb3cgUkFNIHBhZ2VzIHdpdGggdGhlIGJvb3RtZW0gYWxsb2NhdG9yLgotICovCi12b2lkIF9faW5pdCByZWdpc3Rlcl9ib290bWVtX2xvd19wYWdlcyh1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBjdXJyX3BmbiwgbGFzdF9wZm4sIHNpemU7Ci0JCS8qCi0JCSAqIFJlc2VydmUgdXNhYmxlIGxvdyBtZW1vcnkKLQkJICovCi0JCWlmIChlODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0JCS8qCi0JCSAqIFdlIGFyZSByb3VuZGluZyB1cCB0aGUgc3RhcnQgYWRkcmVzcyBvZiB1c2FibGUgbWVtb3J5OgotCQkgKi8KLQkJY3Vycl9wZm4gPSBQRk5fVVAoZTgyMC5tYXBbaV0uYWRkcik7Ci0JCWlmIChjdXJyX3BmbiA+PSBtYXhfbG93X3BmbikKLQkJCWNvbnRpbnVlOwotCQkvKgotCQkgKiAuLi4gYW5kIGF0IHRoZSBlbmQgb2YgdGhlIHVzYWJsZSByYW5nZSBkb3dud2FyZHM6Ci0JCSAqLwotCQlsYXN0X3BmbiA9IFBGTl9ET1dOKGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplKTsKLQotCQlpZiAobGFzdF9wZm4gPiBtYXhfbG93X3BmbikKLQkJCWxhc3RfcGZuID0gbWF4X2xvd19wZm47Ci0KLQkJLyoKLQkJICogLi4gZmluYWxseSwgZGlkIGFsbCB0aGUgcm91bmRpbmcgYW5kIHBsYXlpbmcKLQkJICogYXJvdW5kIGp1c3QgbWFrZSB0aGUgYXJlYSBnbyBhd2F5PwotCQkgKi8KLQkJaWYgKGxhc3RfcGZuIDw9IGN1cnJfcGZuKQotCQkJY29udGludWU7Ci0KLQkJc2l6ZSA9IGxhc3RfcGZuIC0gY3Vycl9wZm47Ci0JCWZyZWVfYm9vdG1lbShQRk5fUEhZUyhjdXJyX3BmbiksIFBGTl9QSFlTKHNpemUpKTsKLQl9Ci19Ci0KLXZvaWQgX19pbml0IGU4MjBfcmVnaXN0ZXJfbWVtb3J5KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBnYXBzdGFydCwgZ2Fwc2l6ZSwgcm91bmQ7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxhc3Q7Ci0JaW50IGk7Ci0KLQkvKgotCSAqIFNlYXJjaCBmb3IgdGhlIGJpZ2dlc3QgZ2FwIGluIHRoZSBsb3cgMzIgYml0cyBvZiB0aGUgZTgyMAotCSAqIG1lbW9yeSBzcGFjZS4KLQkgKi8KLQlsYXN0ID0gMHgxMDAwMDAwMDB1bGw7Ci0JZ2Fwc3RhcnQgPSAweDEwMDAwMDAwOwotCWdhcHNpemUgPSAweDQwMDAwMDsKLQlpID0gZTgyMC5ucl9tYXA7Ci0Jd2hpbGUgKC0taSA+PSAwKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyBlbmQgPSBzdGFydCArIGU4MjAubWFwW2ldLnNpemU7Ci0KLQkJLyoKLQkJICogU2luY2UgImxhc3QiIGlzIGF0IG1vc3QgNEdCLCB3ZSBrbm93IHdlJ2xsCi0JCSAqIGZpdCBpbiAzMiBiaXRzIGlmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUKLQkJICovCi0JCWlmIChsYXN0ID4gZW5kKSB7Ci0JCQl1bnNpZ25lZCBsb25nIGdhcCA9IGxhc3QgLSBlbmQ7Ci0KLQkJCWlmIChnYXAgPiBnYXBzaXplKSB7Ci0JCQkJZ2Fwc2l6ZSA9IGdhcDsKLQkJCQlnYXBzdGFydCA9IGVuZDsKLQkJCX0KLQkJfQotCQlpZiAoc3RhcnQgPCBsYXN0KQotCQkJbGFzdCA9IHN0YXJ0OwotCX0KLQotCS8qCi0JICogU2VlIGhvdyBtdWNoIHdlIHdhbnQgdG8gcm91bmQgdXA6IHN0YXJ0IG9mZiB3aXRoCi0JICogcm91bmRpbmcgdG8gdGhlIG5leHQgMU1CIGFyZWEuCi0JICovCi0Jcm91bmQgPSAweDEwMDAwMDsKLQl3aGlsZSAoKGdhcHNpemUgPj4gNCkgPiByb3VuZCkKLQkJcm91bmQgKz0gcm91bmQ7Ci0JLyogRnVuIHdpdGggdHdvJ3MgY29tcGxlbWVudCAqLwotCXBjaV9tZW1fc3RhcnQgPSAoZ2Fwc3RhcnQgKyByb3VuZCkgJiAtcm91bmQ7Ci0KLQlwcmludGsoIkFsbG9jYXRpbmcgUENJIHJlc291cmNlcyBzdGFydGluZyBhdCAlMDhseCAoZ2FwOiAlMDhseDolMDhseClcbiIsCi0JCXBjaV9tZW1fc3RhcnQsIGdhcHN0YXJ0LCBnYXBzaXplKTsKLX0KLQotdm9pZCBfX2luaXQgcHJpbnRfbWVtb3J5X21hcChjaGFyICp3aG8pCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlwcmludGsoIiAlczogJTAxNkx4IC0gJTAxNkx4ICIsIHdobywKLQkJCWU4MjAubWFwW2ldLmFkZHIsCi0JCQllODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSk7Ci0JCXN3aXRjaCAoZTgyMC5tYXBbaV0udHlwZSkgewotCQljYXNlIEU4MjBfUkFNOglwcmludGsoIih1c2FibGUpXG4iKTsKLQkJCQlicmVhazsKLQkJY2FzZSBFODIwX1JFU0VSVkVEOgotCQkJCXByaW50aygiKHJlc2VydmVkKVxuIik7Ci0JCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9BQ1BJOgotCQkJCXByaW50aygiKEFDUEkgZGF0YSlcbiIpOwotCQkJCWJyZWFrOwotCQljYXNlIEU4MjBfTlZTOgotCQkJCXByaW50aygiKEFDUEkgTlZTKVxuIik7Ci0JCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6CXByaW50aygidHlwZSAldVxuIiwgZTgyMC5tYXBbaV0udHlwZSk7Ci0JCQkJYnJlYWs7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgX19pbml0IGxpbWl0X3JlZ2lvbnModW5zaWduZWQgbG9uZyBsb25nIHNpemUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRfYWRkcjsKLQlpbnQgaTsKLQotCXByaW50X21lbW9yeV9tYXAoImxpbWl0X3JlZ2lvbnMgc3RhcnQiKTsKLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQljdXJyZW50X2FkZHIgPSBlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZTsKLQkJaWYgKGN1cnJlbnRfYWRkciA8IHNpemUpCi0JCQljb250aW51ZTsKLQotCQlpZiAoZTgyMC5tYXBbaV0udHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChlODIwLm1hcFtpXS5hZGRyID49IHNpemUpIHsKLQkJCS8qCi0JCQkgKiBUaGlzIHJlZ2lvbiBzdGFydHMgcGFzdCB0aGUgZW5kIG9mIHRoZQotCQkJICogcmVxdWVzdGVkIHNpemUsIHNraXAgaXQgY29tcGxldGVseS4KLQkJCSAqLwotCQkJZTgyMC5ucl9tYXAgPSBpOwotCQl9IGVsc2UgewotCQkJZTgyMC5ucl9tYXAgPSBpICsgMTsKLQkJCWU4MjAubWFwW2ldLnNpemUgLT0gY3VycmVudF9hZGRyIC0gc2l6ZTsKLQkJfQotCQlwcmludF9tZW1vcnlfbWFwKCJsaW1pdF9yZWdpb25zIGVuZGZvciIpOwotCQlyZXR1cm47Ci0JfQotCXByaW50X21lbW9yeV9tYXAoImxpbWl0X3JlZ2lvbnMgZW5kZnVuYyIpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYW55IHBhcnQgb2YgdGhlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZAotICogd2l0aCB0eXBlLgotICovCi1pbnQKLWU4MjBfYW55X21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpCi17Ci0JaW50IGk7Ci0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJY29uc3Qgc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCi0JCQljb250aW51ZTsKLQkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQotCQkJY29udGludWU7Ci0JCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGU4MjBfYW55X21hcHBlZCk7Ci0KLSAvKgotICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBlbnRpcmUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkIHdpdGggdHlwZS4KLSAgKgotICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gb25seSB3b3JrcyBjb3JyZWN0IGlmIHRoZSBlODIwIHRhYmxlIGlzIHNvcnRlZCBhbmQKLSAgKiBub3Qtb3ZlcmxhcHBpbmcsIHdoaWNoIGlzIHRoZSBjYXNlCi0gICovCi1pbnQgX19pbml0Ci1lODIwX2FsbF9tYXBwZWQodW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIHR5cGUpCi17Ci0JdTY0IHN0YXJ0ID0gczsKLQl1NjQgZW5kID0gZTsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKLQkJCWNvbnRpbnVlOwotCQkvKiBpcyB0aGUgcmVnaW9uIChwYXJ0KSBpbiBvdmVybGFwIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uID8qLwotCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCi0JCQljb250aW51ZTsKLQkJLyogaWYgdGhlIHJlZ2lvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIDxzdGFydCxlbmQ+IHdlIG1vdmUKLQkJICogc3RhcnQgdG8gdGhlIGVuZCBvZiB0aGUgcmVnaW9uIHNpbmNlIGl0J3Mgb2sgdW50aWwgdGhlcmUKLQkJICovCi0JCWlmIChlaS0+YWRkciA8PSBzdGFydCkKLQkJCXN0YXJ0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKLQkJLyogaWYgc3RhcnQgaXMgbm93IGF0IG9yIGJleW9uZCBlbmQsIHdlJ3JlIGRvbmUsIGZ1bGwKLQkJICogY292ZXJhZ2UgKi8KLQkJaWYgKHN0YXJ0ID49IGVuZCkKLQkJCXJldHVybiAxOyAvKiB3ZSdyZSBkb25lICovCi0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW1tYXAoY2hhciAqYXJnKQotewotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChzdHJjbXAoYXJnLCAiZXhhY3RtYXAiKSA9PSAwKSB7Ci0jaWZkZWYgQ09ORklHX0NSQVNIX0RVTVAKLQkJLyogSWYgd2UgYXJlIGRvaW5nIGEgY3Jhc2ggZHVtcCwgd2UKLQkJICogc3RpbGwgbmVlZCB0byBrbm93IHRoZSByZWFsIG1lbQotCQkgKiBzaXplIGJlZm9yZSBvcmlnaW5hbCBtZW1vcnkgbWFwIGlzCi0JCSAqIHJlc2V0LgotCQkgKi8KLQkJcHJvcGFnYXRlX2U4MjBfbWFwKCk7Ci0JCXNhdmVkX21heF9wZm4gPSBtYXhfcGZuOwotI2VuZGlmCi0JCWU4MjAubnJfbWFwID0gMDsKLQkJdXNlcl9kZWZpbmVkX21lbW1hcCA9IDE7Ci0JfSBlbHNlIHsKLQkJLyogSWYgdGhlIHVzZXIgc3BlY2lmaWVzIG1lbW9yeSBzaXplLCB3ZQotCQkgKiBsaW1pdCB0aGUgQklPUy1wcm92aWRlZCBtZW1vcnkgbWFwIHRvCi0JCSAqIHRoYXQgc2l6ZS4gZXhhY3RtYXAgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQotCQkgKiB0aGUgZXhhY3QgbWFwLiBtZW09bnVtYmVyIGNhbiBiZSB1c2VkIHRvCi0JCSAqIHRyaW0gdGhlIGV4aXN0aW5nIG1lbW9yeSBtYXAuCi0JCSAqLwotCQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnRfYXQsIG1lbV9zaXplOwotCi0JCW1lbV9zaXplID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKLQkJaWYgKCphcmcgPT0gJ0AnKSB7Ci0JCQlzdGFydF9hdCA9IG1lbXBhcnNlKGFyZysxLCAmYXJnKTsKLQkJCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SQU0pOwotCQl9IGVsc2UgaWYgKCphcmcgPT0gJyMnKSB7Ci0JCQlzdGFydF9hdCA9IG1lbXBhcnNlKGFyZysxLCAmYXJnKTsKLQkJCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9BQ1BJKTsKLQkJfSBlbHNlIGlmICgqYXJnID09ICckJykgewotCQkJc3RhcnRfYXQgPSBtZW1wYXJzZShhcmcrMSwgJmFyZyk7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkVTRVJWRUQpOwotCQl9IGVsc2UgewotCQkJbGltaXRfcmVnaW9ucyhtZW1fc2l6ZSk7Ci0JCQl1c2VyX2RlZmluZWRfbWVtbWFwID0gMTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJtZW1tYXAiLCBwYXJzZV9tZW1tYXApOwotdm9pZCBfX2luaXQgdXBkYXRlX21lbW9yeV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKLQkJCQl1bnNpZ25lZCBuZXdfdHlwZSkKLXsKLQlpbnQgaTsKLQotCUJVR19PTihvbGRfdHlwZSA9PSBuZXdfdHlwZSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJdTY0IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7Ci0JCWlmIChlaS0+dHlwZSAhPSBvbGRfdHlwZSkKLQkJCWNvbnRpbnVlOwotCQkvKiB0b3RhbGx5IGNvdmVyZWQ/ICovCi0JCWlmIChlaS0+YWRkciA+PSBzdGFydCAmJiBlaS0+c2l6ZSA8PSBzaXplKSB7Ci0JCQllaS0+dHlwZSA9IG5ld190eXBlOwotCQkJY29udGludWU7Ci0JCX0KLQkJLyogcGFydGlhbGx5IGNvdmVyZWQgKi8KLQkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIGVpLT5hZGRyKTsKLQkJZmluYWxfZW5kID0gbWluKHN0YXJ0ICsgc2l6ZSwgZWktPmFkZHIgKyBlaS0+c2l6ZSk7Ci0JCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpCi0JCQljb250aW51ZTsKLQkJYWRkX21lbW9yeV9yZWdpb24oZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0LAotCQkJCQkgbmV3X3R5cGUpOwotCX0KLX0KLXZvaWQgX19pbml0IHVwZGF0ZV9lODIwKHZvaWQpCi17Ci0JdTggbnJfbWFwOwotCi0JbnJfbWFwID0gZTgyMC5ucl9tYXA7Ci0JaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCAmbnJfbWFwKSkKLQkJcmV0dXJuOwotCWU4MjAubnJfbWFwID0gbnJfbWFwOwotCXByaW50ayhLRVJOX0lORk8gIm1vZGlmaWVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQlwcmludF9tZW1vcnlfbWFwKCJtb2RpZmllZCIpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2U4MjBfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9lODIwXzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNDQ4MGMuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL2U4MjBfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDk1MiArMCwwIEBACi0vKgotICogSGFuZGxlIHRoZSBtZW1vcnkgbWFwLgotICogVGhlIGZ1bmN0aW9ucyBoZXJlIGRvIHRoZSBqb2IgdW50aWwgYm9vdG1lbSB0YWtlcyBvdmVyLgotICoKLSAqICBHZXR0aW5nIHNhbml0aXplX2U4MjBfbWFwKCkgaW4gc3luYyB3aXRoIGkzODYgdmVyc2lvbiBieSBhcHBseWluZyBjaGFuZ2U6Ci0gKiAgLSAgUHJvdmlzaW9ucyBmb3IgZW1wdHkgRTgyMCBtZW1vcnkgcmVnaW9ucyAocmVwb3J0ZWQgYnkgY2VydGFpbiBCSU9TZXMpLgotICogICAgIEFsZXggQWNoZW5iYWNoIDx4ZWxhQHNsaXQuZGU+LCBEZWNlbWJlciAyMDAyLgotICogIFZlbmthdGVzaCBQYWxsaXBhZGkgPHZlbmthdGVzaC5wYWxsaXBhZGlAaW50ZWwuY29tPgotICoKLSAqLwotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgotI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgotCi0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9lODIwLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+Ci0jaW5jbHVkZSA8YXNtL2tkZWJ1Zy5oPgotI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+Ci0KLXN0cnVjdCBlODIwbWFwIGU4MjA7Ci0KLS8qCi0gKiBQRk4gb2YgbGFzdCBtZW1vcnkgcGFnZS4KLSAqLwotdW5zaWduZWQgbG9uZyBlbmRfcGZuOwotCi0vKgotICogZW5kX3BmbiBvbmx5IGluY2x1ZGVzIFJBTSwgd2hpbGUgbWF4X3Bmbl9tYXBwZWQgaW5jbHVkZXMgYWxsIGU4MjAgZW50cmllcy4KLSAqIFRoZSBkaXJlY3QgbWFwcGluZyBleHRlbmRzIHRvIG1heF9wZm5fbWFwcGVkLCBzbyB0aGF0IHdlIGNhbiBkaXJlY3RseSBhY2Nlc3MKLSAqIGFwZXJ0dXJlcywgQUNQSSBhbmQgb3RoZXIgdGFibGVzIHdpdGhvdXQgaGF2aW5nIHRvIHBsYXkgd2l0aCBmaXhtYXBzLgotICovCi11bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwotCi0vKgotICogTGFzdCBwZm4gd2hpY2ggdGhlIHVzZXIgd2FudHMgdG8gdXNlLgotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIGVuZF91c2VyX3BmbiA9IE1BWE1FTT4+UEFHRV9TSElGVDsKLQotLyoKLSAqIEVhcmx5IHJlc2VydmVkIG1lbW9yeSBhcmVhcy4KLSAqLwotI2RlZmluZSBNQVhfRUFSTFlfUkVTIDIwCi0KLXN0cnVjdCBlYXJseV9yZXMgewotCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKLQljaGFyIG5hbWVbMTZdOwotfTsKLXN0YXRpYyBzdHJ1Y3QgZWFybHlfcmVzIGVhcmx5X3Jlc1tNQVhfRUFSTFlfUkVTXSBfX2luaXRkYXRhID0gewotCXsgMCwgUEFHRV9TSVpFLCAiQklPUyBkYXRhIHBhZ2UiIH0sCQkJLyogQklPUyBkYXRhIHBhZ2UgKi8KLSNpZmRlZiBDT05GSUdfWDg2X1RSQU1QT0xJTkUKLQl7IFRSQU1QT0xJTkVfQkFTRSwgVFJBTVBPTElORV9CQVNFICsgMiAqIFBBR0VfU0laRSwgIlRSQU1QT0xJTkUiIH0sCi0jZW5kaWYKLQl7fQotfTsKLQotdm9pZCBfX2luaXQgcmVzZXJ2ZV9lYXJseSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwgY2hhciAqbmFtZSkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgZWFybHlfcmVzICpyOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgewotCQlyID0gJmVhcmx5X3Jlc1tpXTsKLQkJaWYgKGVuZCA+IHItPnN0YXJ0ICYmIHN0YXJ0IDwgci0+ZW5kKQotCQkJcGFuaWMoIk92ZXJsYXBwaW5nIGVhcmx5IHJlc2VydmF0aW9ucyAlbHgtJWx4ICVzIHRvICVseC0lbHggJXNcbiIsCi0JCQkgICAgICBzdGFydCwgZW5kIC0gMSwgbmFtZT9uYW1lOiIiLCByLT5zdGFydCwgci0+ZW5kIC0gMSwgci0+bmFtZSk7Ci0JfQotCWlmIChpID49IE1BWF9FQVJMWV9SRVMpCi0JCXBhbmljKCJUb28gbWFueSBlYXJseSByZXNlcnZhdGlvbnMiKTsKLQlyID0gJmVhcmx5X3Jlc1tpXTsKLQlyLT5zdGFydCA9IHN0YXJ0OwotCXItPmVuZCA9IGVuZDsKLQlpZiAobmFtZSkKLQkJc3RybmNweShyLT5uYW1lLCBuYW1lLCBzaXplb2Yoci0+bmFtZSkgLSAxKTsKLX0KLQotdm9pZCBfX2luaXQgZnJlZV9lYXJseSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKLXsKLQlzdHJ1Y3QgZWFybHlfcmVzICpyOwotCWludCBpLCBqOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7Ci0JCXIgPSAmZWFybHlfcmVzW2ldOwotCQlpZiAoc3RhcnQgPT0gci0+c3RhcnQgJiYgZW5kID09IHItPmVuZCkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaSA+PSBNQVhfRUFSTFlfUkVTIHx8ICFlYXJseV9yZXNbaV0uZW5kKQotCQlwYW5pYygiZnJlZV9lYXJseSBvbiBub3QgcmVzZXJ2ZWQgYXJlYTogJWx4LSVseCEiLCBzdGFydCwgZW5kKTsKLQotCWZvciAoaiA9IGkgKyAxOyBqIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbal0uZW5kOyBqKyspCi0JCTsKLQotCW1lbW1vdmUoJmVhcmx5X3Jlc1tpXSwgJmVhcmx5X3Jlc1tpICsgMV0sCi0JICAgICAgIChqIC0gMSAtIGkpICogc2l6ZW9mKHN0cnVjdCBlYXJseV9yZXMpKTsKLQotCWVhcmx5X3Jlc1tqIC0gMV0uZW5kID0gMDsKLX0KLQotdm9pZCBfX2luaXQgZWFybHlfcmVzX3RvX2Jvb3RtZW0odW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBmaW5hbF9zdGFydCwgZmluYWxfZW5kOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgewotCQlzdHJ1Y3QgZWFybHlfcmVzICpyID0gJmVhcmx5X3Jlc1tpXTsKLQkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIHItPnN0YXJ0KTsKLQkJZmluYWxfZW5kID0gbWluKGVuZCwgci0+ZW5kKTsKLQkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkKLQkJCWNvbnRpbnVlOwotCQlwcmludGsoS0VSTl9JTkZPICIgIGVhcmx5IHJlczogJWQgWyVseC0lbHhdICVzXG4iLCBpLAotCQkJZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIDEsIHItPm5hbWUpOwotCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gZmluYWxfc3RhcnQpOwotCX0KLX0KLQotLyogQ2hlY2sgZm9yIGFscmVhZHkgcmVzZXJ2ZWQgYXJlYXMgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9faW5pdAotYmFkX2FkZHIodW5zaWduZWQgbG9uZyAqYWRkcnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbikKLXsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIGFkZHIgPSAqYWRkcnAsIGxhc3Q7Ci0JaW50IGNoYW5nZWQgPSAwOwotYWdhaW46Ci0JbGFzdCA9IGFkZHIgKyBzaXplOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgewotCQlzdHJ1Y3QgZWFybHlfcmVzICpyID0gJmVhcmx5X3Jlc1tpXTsKLQkJaWYgKGxhc3QgPj0gci0+c3RhcnQgJiYgYWRkciA8IHItPmVuZCkgewotCQkJKmFkZHJwID0gYWRkciA9IHJvdW5kX3VwKHItPmVuZCwgYWxpZ24pOwotCQkJY2hhbmdlZCA9IDE7Ci0JCQlnb3RvIGFnYWluOwotCQl9Ci0JfQotCXJldHVybiBjaGFuZ2VkOwotfQotCi0vKiBDaGVjayBmb3IgYWxyZWFkeSByZXNlcnZlZCBhcmVhcyAqLwotc3RhdGljIGlubGluZSBpbnQgX19pbml0Ci1iYWRfYWRkcl9zaXplKHVuc2lnbmVkIGxvbmcgKmFkZHJwLCB1bnNpZ25lZCBsb25nICpzaXplcCwgdW5zaWduZWQgbG9uZyBhbGlnbikKLXsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIGFkZHIgPSAqYWRkcnAsIGxhc3Q7Ci0JdW5zaWduZWQgbG9uZyBzaXplID0gKnNpemVwOwotCWludCBjaGFuZ2VkID0gMDsKLWFnYWluOgotCWxhc3QgPSBhZGRyICsgc2l6ZTsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKLQkJc3RydWN0IGVhcmx5X3JlcyAqciA9ICZlYXJseV9yZXNbaV07Ci0JCWlmIChsYXN0ID4gci0+c3RhcnQgJiYgYWRkciA8IHItPnN0YXJ0KSB7Ci0JCQlzaXplID0gci0+c3RhcnQgLSBhZGRyOwotCQkJY2hhbmdlZCA9IDE7Ci0JCQlnb3RvIGFnYWluOwotCQl9Ci0JCWlmIChsYXN0ID4gci0+ZW5kICYmIGFkZHIgPCByLT5lbmQpIHsKLQkJCWFkZHIgPSByb3VuZF91cChyLT5lbmQsIGFsaWduKTsKLQkJCXNpemUgPSBsYXN0IC0gYWRkcjsKLQkJCWNoYW5nZWQgPSAxOwotCQkJZ290byBhZ2FpbjsKLQkJfQotCQlpZiAobGFzdCA8PSByLT5lbmQgJiYgYWRkciA+PSByLT5zdGFydCkgewotCQkJKCpzaXplcCkrKzsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCWlmIChjaGFuZ2VkKSB7Ci0JCSphZGRycCA9IGFkZHI7Ci0JCSpzaXplcCA9IHNpemU7Ci0JfQotCXJldHVybiBjaGFuZ2VkOwotfQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGFueSBwYXJ0IG9mIHRoZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQKLSAqIHdpdGggdHlwZS4KLSAqLwotaW50Ci1lODIwX2FueV9tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsIHVuc2lnbmVkIHR5cGUpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQotCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQotCQkJY29udGludWU7Ci0JCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChlODIwX2FueV9tYXBwZWQpOwotCi0vKgotICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVudGlyZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQgd2l0aCB0eXBlLgotICoKLSAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gb25seSB3b3JrcyBjb3JyZWN0IGlmIHRoZSBlODIwIHRhYmxlIGlzIHNvcnRlZCBhbmQKLSAqIG5vdC1vdmVybGFwcGluZywgd2hpY2ggaXMgdGhlIGNhc2UKLSAqLwotaW50IF9faW5pdCBlODIwX2FsbF9tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB1bnNpZ25lZCB0eXBlKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0KLQkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKLQkJCWNvbnRpbnVlOwotCQkvKiBpcyB0aGUgcmVnaW9uIChwYXJ0KSBpbiBvdmVybGFwIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uID8qLwotCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCi0JCQljb250aW51ZTsKLQotCQkvKiBpZiB0aGUgcmVnaW9uIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgPHN0YXJ0LGVuZD4gd2UgbW92ZQotCQkgKiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSByZWdpb24gc2luY2UgaXQncyBvayB1bnRpbCB0aGVyZQotCQkgKi8KLQkJaWYgKGVpLT5hZGRyIDw9IHN0YXJ0KQotCQkJc3RhcnQgPSBlaS0+YWRkciArIGVpLT5zaXplOwotCQkvKgotCQkgKiBpZiBzdGFydCBpcyBub3cgYXQgb3IgYmV5b25kIGVuZCwgd2UncmUgZG9uZSwgZnVsbAotCQkgKiBjb3ZlcmFnZQotCQkgKi8KLQkJaWYgKHN0YXJ0ID49IGVuZCkKLQkJCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIEZpbmQgYSBmcmVlIGFyZWEgd2l0aCBzcGVjaWZpZWQgYWxpZ25tZW50IGluIGEgc3BlY2lmaWMgcmFuZ2UuCi0gKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGZpbmRfZTgyMF9hcmVhKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJCSAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24pCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJdW5zaWduZWQgbG9uZyBhZGRyLCBsYXN0OwotCQl1bnNpZ25lZCBsb25nIGVpX2xhc3Q7Ci0KLQkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0JCWFkZHIgPSByb3VuZF91cChlaS0+YWRkciwgYWxpZ24pOwotCQllaV9sYXN0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKLQkJaWYgKGFkZHIgPCBzdGFydCkKLQkJCWFkZHIgPSByb3VuZF91cChzdGFydCwgYWxpZ24pOwotCQlpZiAoYWRkciA+PSBlaV9sYXN0KQotCQkJY29udGludWU7Ci0JCXdoaWxlIChiYWRfYWRkcigmYWRkciwgc2l6ZSwgYWxpZ24pICYmIGFkZHIrc2l6ZSA8PSBlaV9sYXN0KQotCQkJOwotCQlsYXN0ID0gYWRkciArIHNpemU7Ci0JCWlmIChsYXN0ID4gZWlfbGFzdCkKLQkJCWNvbnRpbnVlOwotCQlpZiAobGFzdCA+IGVuZCkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gYWRkcjsKLQl9Ci0JcmV0dXJuIC0xVUw7Ci19Ci0KLS8qCi0gKiBGaW5kIG5leHQgZnJlZSByYW5nZSBhZnRlciAqc3RhcnQKLSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZmluZF9lODIwX2FyZWFfc2l6ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJCQkgdW5zaWduZWQgbG9uZyAqc2l6ZXAsCi0JCQkJCSB1bnNpZ25lZCBsb25nIGFsaWduKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCXVuc2lnbmVkIGxvbmcgYWRkciwgbGFzdDsKLQkJdW5zaWduZWQgbG9uZyBlaV9sYXN0OwotCi0JCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCQlhZGRyID0gcm91bmRfdXAoZWktPmFkZHIsIGFsaWduKTsKLQkJZWlfbGFzdCA9IGVpLT5hZGRyICsgZWktPnNpemU7Ci0JCWlmIChhZGRyIDwgc3RhcnQpCi0JCQlhZGRyID0gcm91bmRfdXAoc3RhcnQsIGFsaWduKTsKLQkJaWYgKGFkZHIgPj0gZWlfbGFzdCkKLQkJCWNvbnRpbnVlOwotCQkqc2l6ZXAgPSBlaV9sYXN0IC0gYWRkcjsKLQkJd2hpbGUgKGJhZF9hZGRyX3NpemUoJmFkZHIsIHNpemVwLCBhbGlnbikgJiYKLQkJCWFkZHIgKyAqc2l6ZXAgPD0gZWlfbGFzdCkKLQkJCTsKLQkJbGFzdCA9IGFkZHIgKyAqc2l6ZXA7Ci0JCWlmIChsYXN0ID4gZWlfbGFzdCkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gYWRkcjsKLQl9Ci0JcmV0dXJuIC0xVUw7Ci0KLX0KLS8qCi0gKiBGaW5kIHRoZSBoaWdoZXN0IHBhZ2UgZnJhbWUgbnVtYmVyIHdlIGhhdmUgYXZhaWxhYmxlCi0gKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGU4MjBfZW5kX29mX3JhbSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZW5kX3BmbjsKLQotCWVuZF9wZm4gPSBmaW5kX21heF9wZm5fd2l0aF9hY3RpdmVfcmVnaW9ucygpOwotCi0JaWYgKGVuZF9wZm4gPiBtYXhfcGZuX21hcHBlZCkKLQkJbWF4X3Bmbl9tYXBwZWQgPSBlbmRfcGZuOwotCWlmIChtYXhfcGZuX21hcHBlZCA+IE1BWE1FTT4+UEFHRV9TSElGVCkKLQkJbWF4X3Bmbl9tYXBwZWQgPSBNQVhNRU0+PlBBR0VfU0hJRlQ7Ci0JaWYgKGVuZF9wZm4gPiBlbmRfdXNlcl9wZm4pCi0JCWVuZF9wZm4gPSBlbmRfdXNlcl9wZm47Ci0JaWYgKGVuZF9wZm4gPiBtYXhfcGZuX21hcHBlZCkKLQkJZW5kX3BmbiA9IG1heF9wZm5fbWFwcGVkOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAibWF4X3Bmbl9tYXBwZWQgPSAlbHVcbiIsIG1heF9wZm5fbWFwcGVkKTsKLQlyZXR1cm4gZW5kX3BmbjsKLX0KLQotLyoKLSAqIE1hcmsgZTgyMCByZXNlcnZlZCBhcmVhcyBhcyBidXN5IGZvciB0aGUgcmVzb3VyY2UgbWFuYWdlci4KLSAqLwotdm9pZCBfX2luaXQgZTgyMF9yZXNlcnZlX3Jlc291cmNlcyh2b2lkKQotewotCWludCBpOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCi0JcmVzID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKiBlODIwLm5yX21hcCk7Ci0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3dpdGNoIChlODIwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgRTgyMF9SQU06CXJlcy0+bmFtZSA9ICJTeXN0ZW0gUkFNIjsgYnJlYWs7Ci0JCWNhc2UgRTgyMF9BQ1BJOglyZXMtPm5hbWUgPSAiQUNQSSBUYWJsZXMiOyBicmVhazsKLQkJY2FzZSBFODIwX05WUzoJcmVzLT5uYW1lID0gIkFDUEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UiOyBicmVhazsKLQkJZGVmYXVsdDoJcmVzLT5uYW1lID0gInJlc2VydmVkIjsKLQkJfQotCQlyZXMtPnN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKLQkJcmVzLT5lbmQgPSByZXMtPnN0YXJ0ICsgZTgyMC5tYXBbaV0uc2l6ZSAtIDE7Ci0JCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVTT1VSQ0VfQlVTWTsKLQkJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgcmVzKTsKLQkJcmVzKys7Ci0JfQotfQotCi0vKgotICogRmluZCB0aGUgcmFuZ2VzIG9mIHBoeXNpY2FsIGFkZHJlc3NlcyB0aGF0IGRvIG5vdCBjb3JyZXNwb25kIHRvCi0gKiBlODIwIFJBTSBhcmVhcyBhbmQgbWFyayB0aGUgY29ycmVzcG9uZGluZyBwYWdlcyBhcyBub3NhdmUgZm9yIHNvZnR3YXJlCi0gKiBzdXNwZW5kIGFuZCBzdXNwZW5kIHRvIFJBTS4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHRoZSBlODIwIG1hcCB0byBiZSBzb3J0ZWQgYW5kIHdpdGhvdXQgYW55Ci0gKiBvdmVybGFwcGluZyBlbnRyaWVzIGFuZCBhc3N1bWVzIHRoZSBmaXJzdCBlODIwIGFyZWEgdG8gYmUgUkFNLgotICovCi12b2lkIF9faW5pdCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModm9pZCkKLXsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIHBhZGRyOwotCi0JcGFkZHIgPSByb3VuZF9kb3duKGU4MjAubWFwWzBdLmFkZHIgKyBlODIwLm1hcFswXS5zaXplLCBQQUdFX1NJWkUpOwotCWZvciAoaSA9IDE7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCi0JCWlmIChwYWRkciA8IGVpLT5hZGRyKQotCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihQRk5fRE9XTihwYWRkciksCi0JCQkJCQlQRk5fVVAoZWktPmFkZHIpKTsKLQotCQlwYWRkciA9IHJvdW5kX2Rvd24oZWktPmFkZHIgKyBlaS0+c2l6ZSwgUEFHRV9TSVpFKTsKLQkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQotCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihQRk5fVVAoZWktPmFkZHIpLAotCQkJCQkJUEZOX0RPV04ocGFkZHIpKTsKLQotCQlpZiAocGFkZHIgPj0gKGVuZF9wZm4gPDwgUEFHRV9TSElGVCkpCi0JCQlicmVhazsKLQl9Ci19Ci0KLS8qCi0gKiBGaW5kcyBhbiBhY3RpdmUgcmVnaW9uIGluIHRoZSBhZGRyZXNzIHJhbmdlIGZyb20gc3RhcnRfcGZuIHRvIGVuZF9wZm4gYW5kCi0gKiByZXR1cm5zIGl0cyByYW5nZSBpbiBlaV9zdGFydHBmbiBhbmQgZWlfZW5kcGZuIGZvciB0aGUgZTgyMCBlbnRyeS4KLSAqLwotc3RhdGljIGludCBfX2luaXQgZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oY29uc3Qgc3RydWN0IGU4MjBlbnRyeSAqZWksCi0JCQkJCSAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCi0JCQkJCSAgdW5zaWduZWQgbG9uZyBlbmRfcGZuLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX3N0YXJ0cGZuLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX2VuZHBmbikKLXsKLQkqZWlfc3RhcnRwZm4gPSByb3VuZF91cChlaS0+YWRkciwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUOwotCSplaV9lbmRwZm4gPSByb3VuZF9kb3duKGVpLT5hZGRyICsgZWktPnNpemUsIFBBR0VfU0laRSkgPj4gUEFHRV9TSElGVDsKLQotCS8qIFNraXAgbWFwIGVudHJpZXMgc21hbGxlciB0aGFuIGEgcGFnZSAqLwotCWlmICgqZWlfc3RhcnRwZm4gPj0gKmVpX2VuZHBmbikKLQkJcmV0dXJuIDA7Ci0KLQkvKiBDaGVjayBpZiBtYXhfcGZuX21hcHBlZCBzaG91bGQgYmUgdXBkYXRlZCAqLwotCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSAmJiAqZWlfZW5kcGZuID4gbWF4X3Bmbl9tYXBwZWQpCi0JCW1heF9wZm5fbWFwcGVkID0gKmVpX2VuZHBmbjsKLQotCS8qIFNraXAgaWYgbWFwIGlzIG91dHNpZGUgdGhlIG5vZGUgKi8KLQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0gfHwgKmVpX2VuZHBmbiA8PSBzdGFydF9wZm4gfHwKLQkJCQkgICAgKmVpX3N0YXJ0cGZuID49IGVuZF9wZm4pCi0JCXJldHVybiAwOwotCi0JLyogQ2hlY2sgZm9yIG92ZXJsYXBzICovCi0JaWYgKCplaV9zdGFydHBmbiA8IHN0YXJ0X3BmbikKLQkJKmVpX3N0YXJ0cGZuID0gc3RhcnRfcGZuOwotCWlmICgqZWlfZW5kcGZuID4gZW5kX3BmbikKLQkJKmVpX2VuZHBmbiA9IGVuZF9wZm47Ci0KLQkvKiBPYmV5IGVuZF91c2VyX3BmbiB0byBzYXZlIG9uIG1lbW1hcCAqLwotCWlmICgqZWlfc3RhcnRwZm4gPj0gZW5kX3VzZXJfcGZuKQotCQlyZXR1cm4gMDsKLQlpZiAoKmVpX2VuZHBmbiA+IGVuZF91c2VyX3BmbikKLQkJKmVpX2VuZHBmbiA9IGVuZF91c2VyX3BmbjsKLQotCXJldHVybiAxOwotfQotCi0vKiBXYWxrIHRoZSBlODIwIG1hcCBhbmQgcmVnaXN0ZXIgYWN0aXZlIHJlZ2lvbnMgd2l0aGluIGEgbm9kZSAqLwotdm9pZCBfX2luaXQKLWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCi0JCQkJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuKQotewotCXVuc2lnbmVkIGxvbmcgZWlfc3RhcnRwZm47Ci0JdW5zaWduZWQgbG9uZyBlaV9lbmRwZm47Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykKLQkJaWYgKGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKCZlODIwLm1hcFtpXSwKLQkJCQkJICAgIHN0YXJ0X3BmbiwgZW5kX3BmbiwKLQkJCQkJICAgICZlaV9zdGFydHBmbiwgJmVpX2VuZHBmbikpCi0JCQlhZGRfYWN0aXZlX3JhbmdlKG5pZCwgZWlfc3RhcnRwZm4sIGVpX2VuZHBmbik7Ci19Ci0KLS8qCi0gKiBBZGQgYSBtZW1vcnkgcmVnaW9uIHRvIHRoZSBrZXJuZWwgZTgyMCBtYXAuCi0gKi8KLXZvaWQgX19pbml0IGFkZF9tZW1vcnlfcmVnaW9uKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IHR5cGUpCi17Ci0JaW50IHggPSBlODIwLm5yX21hcDsKLQotCWlmICh4ID09IEU4MjBNQVgpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJPb29wcyEgVG9vIG1hbnkgZW50cmllcyBpbiB0aGUgbWVtb3J5IG1hcCFcbiIpOwotCQlyZXR1cm47Ci0JfQotCi0JZTgyMC5tYXBbeF0uYWRkciA9IHN0YXJ0OwotCWU4MjAubWFwW3hdLnNpemUgPSBzaXplOwotCWU4MjAubWFwW3hdLnR5cGUgPSB0eXBlOwotCWU4MjAubnJfbWFwKys7Ci19Ci0KLS8qCi0gKiBGaW5kIHRoZSBob2xlIHNpemUgKGluIGJ5dGVzKSBpbiB0aGUgbWVtb3J5IHJhbmdlLgotICogQHN0YXJ0OiBzdGFydGluZyBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcmFuZ2UgdG8gc2NhbgotICogQGVuZDogZW5kaW5nIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSByYW5nZSB0byBzY2FuCi0gKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGU4MjBfaG9sZV9zaXplKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQotewotCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIGVuZF9wZm4gPSBlbmQgPj4gUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIGVpX3N0YXJ0cGZuLCBlaV9lbmRwZm4sIHJhbSA9IDA7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlpZiAoZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oJmU4MjAubWFwW2ldLAotCQkJCQkgICAgc3RhcnRfcGZuLCBlbmRfcGZuLAotCQkJCQkgICAgJmVpX3N0YXJ0cGZuLCAmZWlfZW5kcGZuKSkKLQkJCXJhbSArPSBlaV9lbmRwZm4gLSBlaV9zdGFydHBmbjsKLQl9Ci0JcmV0dXJuIGVuZCAtIHN0YXJ0IC0gKHJhbSA8PCBQQUdFX1NISUZUKTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IGU4MjBfcHJpbnRfbWFwKGNoYXIgKndobykKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIiAlczogJTAxNkx4IC0gJTAxNkx4ICIsIHdobywKLQkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGU4MjAubWFwW2ldLmFkZHIsCi0JCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKQotCQkgICAgICAgKGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplKSk7Ci0JCXN3aXRjaCAoZTgyMC5tYXBbaV0udHlwZSkgewotCQljYXNlIEU4MjBfUkFNOgotCQkJcHJpbnRrKEtFUk5fQ09OVCAiKHVzYWJsZSlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9SRVNFUlZFRDoKLQkJCXByaW50ayhLRVJOX0NPTlQgIihyZXNlcnZlZClcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9BQ1BJOgotCQkJcHJpbnRrKEtFUk5fQ09OVCAiKEFDUEkgZGF0YSlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9OVlM6Ci0JCQlwcmludGsoS0VSTl9DT05UICIoQUNQSSBOVlMpXG4iKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcHJpbnRrKEtFUk5fQ09OVCAidHlwZSAldVxuIiwgZTgyMC5tYXBbaV0udHlwZSk7Ci0JCQlicmVhazsKLQkJfQotCX0KLX0KLQotLyoKLSAqIFNhbml0aXplIHRoZSBCSU9TIGU4MjAgbWFwLgotICoKLSAqIFNvbWUgZTgyMCByZXNwb25zZXMgaW5jbHVkZSBvdmVybGFwcGluZyBlbnRyaWVzLiBUaGUgZm9sbG93aW5nCi0gKiByZXBsYWNlcyB0aGUgb3JpZ2luYWwgZTgyMCBtYXAgd2l0aCBhIG5ldyBvbmUsIHJlbW92aW5nIG92ZXJsYXBzLgotICoKLSAqLwotc3RhdGljIGludCBfX2luaXQgc2FuaXRpemVfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgY2hhciAqcG5yX21hcCkKLXsKLQlzdHJ1Y3QgY2hhbmdlX21lbWJlciB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKnBiaW9zOyAvKiBwb2ludGVyIHRvIG9yaWdpbmFsIGJpb3MgZW50cnkgKi8KLQkJdW5zaWduZWQgbG9uZyBsb25nIGFkZHI7IC8qIGFkZHJlc3MgZm9yIHRoaXMgY2hhbmdlIHBvaW50ICovCi0JfTsKLQlzdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgY2hhbmdlX3BvaW50X2xpc3RbMipFODIwTUFYXSBfX2luaXRkYXRhOwotCXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3BvaW50WzIqRTgyME1BWF0gX19pbml0ZGF0YTsKLQlzdGF0aWMgc3RydWN0IGU4MjBlbnRyeSAqb3ZlcmxhcF9saXN0W0U4MjBNQVhdIF9faW5pdGRhdGE7Ci0Jc3RhdGljIHN0cnVjdCBlODIwZW50cnkgbmV3X2Jpb3NbRTgyME1BWF0gX19pbml0ZGF0YTsKLQlzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3RtcDsKLQl1bnNpZ25lZCBsb25nIGN1cnJlbnRfdHlwZSwgbGFzdF90eXBlOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0X2FkZHI7Ci0JaW50IGNoZ2lkeCwgc3RpbGxfY2hhbmdpbmc7Ci0JaW50IG92ZXJsYXBfZW50cmllczsKLQlpbnQgbmV3X2Jpb3NfZW50cnk7Ci0JaW50IG9sZF9uciwgbmV3X25yLCBjaGdfbnI7Ci0JaW50IGk7Ci0KLQkvKgotCQlWaXN1YWxseSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcKLQkJKDEsMiwzLDQgPSBtZW1vcnkgdHlwZXMpLi4uCi0KLQkJU2FtcGxlIG1lbW9yeSBtYXAgKHcvb3ZlcmxhcHMpOgotCQkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCi0JCSAgIF9fX18xMTExX19fX19fX19fX19fX19fXwotCQkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KLQkJICAgMTExMTExMTFfX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXwotCQkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KLQkJICAgX19fX19fX19fXzMzMzMzX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fMjJfX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fMjIyMl8KLQkJICAgX19fX19fX19fMTExMTExMTExX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fXzExXwotCQkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KLQotCQlTYW5pdGl6ZWQgZXF1aXZhbGVudCAobm8gb3ZlcmxhcCk6Ci0JCSAgIDFfX19fX19fX19fX19fX19fX19fX19fXwotCQkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KLQkJICAgX19fMV9fX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXwotCQkgICBfX19fX18xMV9fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fMV9fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX18zX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fXzMzX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fXzJfX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fMV9fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX180X19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX18yX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCi0JKi8KLQotCS8qIGlmIHRoZXJlJ3Mgb25seSBvbmUgbWVtb3J5IHJlZ2lvbiwgZG9uJ3QgYm90aGVyICovCi0JaWYgKCpwbnJfbWFwIDwgMikKLQkJcmV0dXJuIC0xOwotCi0Jb2xkX25yID0gKnBucl9tYXA7Ci0KLQkvKiBiYWlsIG91dCBpZiB3ZSBmaW5kIGFueSB1bnJlYXNvbmFibGUgYWRkcmVzc2VzIGluIGJpb3MgbWFwICovCi0JZm9yIChpID0gMDsgaSA8IG9sZF9ucjsgaSsrKQotCQlpZiAoYmlvc21hcFtpXS5hZGRyICsgYmlvc21hcFtpXS5zaXplIDwgYmlvc21hcFtpXS5hZGRyKQotCQkJcmV0dXJuIC0xOwotCi0JLyogY3JlYXRlIHBvaW50ZXJzIGZvciBpbml0aWFsIGNoYW5nZS1wb2ludCBpbmZvcm1hdGlvbiAoZm9yIHNvcnRpbmcpICovCi0JZm9yIChpID0gMDsgaSA8IDIgKiBvbGRfbnI7IGkrKykKLQkJY2hhbmdlX3BvaW50W2ldID0gJmNoYW5nZV9wb2ludF9saXN0W2ldOwotCi0JLyogcmVjb3JkIGFsbCBrbm93biBjaGFuZ2UtcG9pbnRzIChzdGFydGluZyBhbmQgZW5kaW5nIGFkZHJlc3NlcyksCi0JICAgb21pdHRpbmcgdGhvc2UgdGhhdCBhcmUgZm9yIGVtcHR5IG1lbW9yeSByZWdpb25zICovCi0JY2hnaWR4ID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgb2xkX25yOyBpKyspCXsKLQkJaWYgKGJpb3NtYXBbaV0uc2l6ZSAhPSAwKSB7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkcjsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkciArCi0JCQkJYmlvc21hcFtpXS5zaXplOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKLQkJfQotCX0KLQljaGdfbnIgPSBjaGdpZHg7Ci0KLQkvKiBzb3J0IGNoYW5nZS1wb2ludCBsaXN0IGJ5IG1lbW9yeSBhZGRyZXNzZXMgKGxvdyAtPiBoaWdoKSAqLwotCXN0aWxsX2NoYW5naW5nID0gMTsKLQl3aGlsZSAoc3RpbGxfY2hhbmdpbmcpCXsKLQkJc3RpbGxfY2hhbmdpbmcgPSAwOwotCQlmb3IgKGkgPSAxOyBpIDwgY2hnX25yOyBpKyspICB7Ci0JCQl1bnNpZ25lZCBsb25nIGxvbmcgY3VyYWRkciwgbGFzdGFkZHI7Ci0JCQl1bnNpZ25lZCBsb25nIGxvbmcgY3VycGJhZGRyLCBsYXN0cGJhZGRyOwotCi0JCQljdXJhZGRyID0gY2hhbmdlX3BvaW50W2ldLT5hZGRyOwotCQkJbGFzdGFkZHIgPSBjaGFuZ2VfcG9pbnRbaSAtIDFdLT5hZGRyOwotCQkJY3VycGJhZGRyID0gY2hhbmdlX3BvaW50W2ldLT5wYmlvcy0+YWRkcjsKLQkJCWxhc3RwYmFkZHIgPSBjaGFuZ2VfcG9pbnRbaSAtIDFdLT5wYmlvcy0+YWRkcjsKLQotCQkJLyoKLQkJCSAqIHN3YXAgZW50cmllcywgd2hlbjoKLQkJCSAqCi0JCQkgKiBjdXJhZGRyID4gbGFzdGFkZHIgb3IKLQkJCSAqIGN1cmFkZHIgPT0gbGFzdGFkZHIgYW5kIGN1cmFkZHIgPT0gY3VycGJhZGRyIGFuZAotCQkJICogbGFzdGFkZHIgIT0gbGFzdHBiYWRkcgotCQkJICovCi0JCQlpZiAoY3VyYWRkciA8IGxhc3RhZGRyIHx8Ci0JCQkgICAgKGN1cmFkZHIgPT0gbGFzdGFkZHIgJiYgY3VyYWRkciA9PSBjdXJwYmFkZHIgJiYKLQkJCSAgICAgbGFzdGFkZHIgIT0gbGFzdHBiYWRkcikpIHsKLQkJCQljaGFuZ2VfdG1wID0gY2hhbmdlX3BvaW50W2ldOwotCQkJCWNoYW5nZV9wb2ludFtpXSA9IGNoYW5nZV9wb2ludFtpLTFdOwotCQkJCWNoYW5nZV9wb2ludFtpLTFdID0gY2hhbmdlX3RtcDsKLQkJCQlzdGlsbF9jaGFuZ2luZyA9IDE7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQkvKiBjcmVhdGUgYSBuZXcgYmlvcyBtZW1vcnkgbWFwLCByZW1vdmluZyBvdmVybGFwcyAqLwotCW92ZXJsYXBfZW50cmllcyA9IDA7CSAvKiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgb3ZlcmxhcCB0YWJsZSAqLwotCW5ld19iaW9zX2VudHJ5ID0gMDsJIC8qIGluZGV4IGZvciBjcmVhdGluZyBuZXcgYmlvcyBtYXAgZW50cmllcyAqLwotCWxhc3RfdHlwZSA9IDA7CQkgLyogc3RhcnQgd2l0aCB1bmRlZmluZWQgbWVtb3J5IHR5cGUgKi8KLQlsYXN0X2FkZHIgPSAwOwkJIC8qIHN0YXJ0IHdpdGggMCBhcyBsYXN0IHN0YXJ0aW5nIGFkZHJlc3MgKi8KLQotCS8qIGxvb3AgdGhyb3VnaCBjaGFuZ2UtcG9pbnRzLCBkZXRlcm1pbmluZyBhZmZlY3Qgb24gdGhlIG5ldyBiaW9zIG1hcCAqLwotCWZvciAoY2hnaWR4ID0gMDsgY2hnaWR4IDwgY2hnX25yOyBjaGdpZHgrKykgewotCQkvKiBrZWVwIHRyYWNrIG9mIGFsbCBvdmVybGFwcGluZyBiaW9zIGVudHJpZXMgKi8KLQkJaWYgKGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID09Ci0JCSAgICBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MtPmFkZHIpIHsKLQkJCS8qCi0JCQkgKiBhZGQgbWFwIGVudHJ5IHRvIG92ZXJsYXAgbGlzdCAoPiAxIGVudHJ5Ci0JCQkgKiBpbXBsaWVzIGFuIG92ZXJsYXApCi0JCQkgKi8KLQkJCW92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMrK10gPQotCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvczsKLQkJfSBlbHNlIHsKLQkJCS8qCi0JCQkgKiByZW1vdmUgZW50cnkgZnJvbSBsaXN0IChvcmRlciBpbmRlcGVuZGVudCwKLQkJCSAqIHNvIHN3YXAgd2l0aCBsYXN0KQotCQkJICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgb3ZlcmxhcF9lbnRyaWVzOyBpKyspIHsKLQkJCQlpZiAob3ZlcmxhcF9saXN0W2ldID09Ci0JCQkJICAgIGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcykKLQkJCQkJb3ZlcmxhcF9saXN0W2ldID0KLQkJCQkJCW92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMtMV07Ci0JCQl9Ci0JCQlvdmVybGFwX2VudHJpZXMtLTsKLQkJfQotCQkvKgotCQkgKiBpZiB0aGVyZSBhcmUgb3ZlcmxhcHBpbmcgZW50cmllcywgZGVjaWRlIHdoaWNoCi0JCSAqICJ0eXBlIiB0byB1c2UgKGxhcmdlciB2YWx1ZSB0YWtlcyBwcmVjZWRlbmNlIC0tCi0JCSAqIDE9dXNhYmxlLCAyLDMsNCw0Kz11bnVzYWJsZSkKLQkJICovCi0JCWN1cnJlbnRfdHlwZSA9IDA7Ci0JCWZvciAoaSA9IDA7IGkgPCBvdmVybGFwX2VudHJpZXM7IGkrKykKLQkJCWlmIChvdmVybGFwX2xpc3RbaV0tPnR5cGUgPiBjdXJyZW50X3R5cGUpCi0JCQkJY3VycmVudF90eXBlID0gb3ZlcmxhcF9saXN0W2ldLT50eXBlOwotCQkvKgotCQkgKiBjb250aW51ZSBidWlsZGluZyB1cCBuZXcgYmlvcyBtYXAgYmFzZWQgb24gdGhpcwotCQkgKiBpbmZvcm1hdGlvbgotCQkgKi8KLQkJaWYgKGN1cnJlbnRfdHlwZSAhPSBsYXN0X3R5cGUpCXsKLQkJCWlmIChsYXN0X3R5cGUgIT0gMCkJIHsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSA9Ci0JCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyIC0gbGFzdF9hZGRyOwotCQkJCS8qCi0JCQkJICogbW92ZSBmb3J3YXJkIG9ubHkgaWYgdGhlIG5ldyBzaXplCi0JCQkJICogd2FzIG5vbi16ZXJvCi0JCQkJICovCi0JCQkJaWYgKG5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplICE9IDApCi0JCQkJCS8qCi0JCQkJCSAqIG5vIG1vcmUgc3BhY2UgbGVmdCBmb3IgbmV3Ci0JCQkJCSAqIGJpb3MgZW50cmllcyA/Ci0JCQkJCSAqLwotCQkJCQlpZiAoKytuZXdfYmlvc19lbnRyeSA+PSBFODIwTUFYKQotCQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAoY3VycmVudF90eXBlICE9IDApCXsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uYWRkciA9Ci0JCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOwotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS50eXBlID0gY3VycmVudF90eXBlOwotCQkJCWxhc3RfYWRkciA9IGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOwotCQkJfQotCQkJbGFzdF90eXBlID0gY3VycmVudF90eXBlOwotCQl9Ci0JfQotCS8qIHJldGFpbiBjb3VudCBmb3IgbmV3IGJpb3MgZW50cmllcyAqLwotCW5ld19uciA9IG5ld19iaW9zX2VudHJ5OwotCi0JLyogY29weSBuZXcgYmlvcyBtYXBwaW5nIGludG8gb3JpZ2luYWwgbG9jYXRpb24gKi8KLQltZW1jcHkoYmlvc21hcCwgbmV3X2Jpb3MsIG5ld19uciAqIHNpemVvZihzdHJ1Y3QgZTgyMGVudHJ5KSk7Ci0JKnBucl9tYXAgPSBuZXdfbnI7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIENvcHkgdGhlIEJJT1MgZTgyMCBtYXAgaW50byBhIHNhZmUgcGxhY2UuCi0gKgotICogU2FuaXR5LWNoZWNrIGl0IHdoaWxlIHdlJ3JlIGF0IGl0Li4KLSAqCi0gKiBJZiB3ZSdyZSBsdWNreSBhbmQgbGl2ZSBvbiBhIG1vZGVybiBzeXN0ZW0sIHRoZSBzZXR1cCBjb2RlCi0gKiB3aWxsIGhhdmUgZ2l2ZW4gdXMgYSBtZW1vcnkgbWFwIHRoYXQgd2UgY2FuIHVzZSB0byBwcm9wZXJseQotICogc2V0IHVwIG1lbW9yeS4gIElmIHdlIGFyZW4ndCwgd2UnbGwgZmFrZSBhIG1lbW9yeSBtYXAuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IGNvcHlfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCkKLXsKLQkvKiBPbmx5IG9uZSBtZW1vcnkgcmVnaW9uIChvciBuZWdhdGl2ZSk/IElnbm9yZSBpdCAqLwotCWlmIChucl9tYXAgPCAyKQotCQlyZXR1cm4gLTE7Ci0KLQlkbyB7Ci0JCXU2NCBzdGFydCA9IGJpb3NtYXAtPmFkZHI7Ci0JCXU2NCBzaXplID0gYmlvc21hcC0+c2l6ZTsKLQkJdTY0IGVuZCA9IHN0YXJ0ICsgc2l6ZTsKLQkJdTMyIHR5cGUgPSBiaW9zbWFwLT50eXBlOwotCi0JCS8qIE92ZXJmbG93IGluIDY0IGJpdHM/IElnbm9yZSB0aGUgbWVtb3J5IG1hcC4gKi8KLQkJaWYgKHN0YXJ0ID4gZW5kKQotCQkJcmV0dXJuIC0xOwotCi0JCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0LCBzaXplLCB0eXBlKTsKLQl9IHdoaWxlIChiaW9zbWFwKyssIC0tbnJfbWFwKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZWFybHlfcGFuaWMoY2hhciAqbXNnKQotewotCWVhcmx5X3ByaW50ayhtc2cpOwotCXBhbmljKG1zZyk7Ci19Ci0KLS8qIFdlJ3JlIG5vdCB2b2lkIG9ubHkgZm9yIHg4NiAzMi1iaXQgY29tcGF0ICovCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCi17Ci0JY2hhciAqd2hvID0gIkJJT1MtZTgyMCI7Ci0JLyoKLQkgKiBUcnkgdG8gY29weSB0aGUgQklPUy1zdXBwbGllZCBFODIwLW1hcC4KLQkgKgotCSAqIE90aGVyd2lzZSBmYWtlIGEgbWVtb3J5IG1hcDsgb25lIHNlY3Rpb24gZnJvbSAway0+NjQwaywKLQkgKiB0aGUgbmV4dCBzZWN0aW9uIGZyb20gMW1iLT5hcHByb3ByaWF0ZV9tZW1fawotCSAqLwotCXNhbml0aXplX2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCAmYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKTsKLQlpZiAoY29weV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKSA8IDApCi0JCWVhcmx5X3BhbmljKCJDYW5ub3QgZmluZCBhIHZhbGlkIG1lbW9yeSBtYXAiKTsKLQlwcmludGsoS0VSTl9JTkZPICJCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQllODIwX3ByaW50X21hcCh3aG8pOwotCi0JLyogSW4gY2FzZSBzb21lb25lIGNhcmVzLi4uICovCi0JcmV0dXJuIHdobzsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtb3B0KGNoYXIgKnApCi17Ci0JaWYgKCFwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQllbmRfdXNlcl9wZm4gPSBtZW1wYXJzZShwLCAmcCk7Ci0JZW5kX3VzZXJfcGZuID4+PSBQQUdFX1NISUZUOwotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oIm1lbSIsIHBhcnNlX21lbW9wdCk7Ci0KLXN0YXRpYyBpbnQgdXNlcmRlZiBfX2luaXRkYXRhOwotCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW1tYXBfb3B0KGNoYXIgKnApCi17Ci0JY2hhciAqb2xkcDsKLQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnRfYXQsIG1lbV9zaXplOwotCi0JaWYgKCFzdHJjbXAocCwgImV4YWN0bWFwIikpIHsKLSNpZmRlZiBDT05GSUdfQ1JBU0hfRFVNUAotCQkvKgotCQkgKiBJZiB3ZSBhcmUgZG9pbmcgYSBjcmFzaCBkdW1wLCB3ZSBzdGlsbCBuZWVkIHRvIGtub3cKLQkJICogdGhlIHJlYWwgbWVtIHNpemUgYmVmb3JlIG9yaWdpbmFsIG1lbW9yeSBtYXAgaXMKLQkJICogcmVzZXQuCi0JCSAqLwotCQllODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKDAsIDAsIC0xVUwpOwotCQlzYXZlZF9tYXhfcGZuID0gZTgyMF9lbmRfb2ZfcmFtKCk7Ci0JCXJlbW92ZV9hbGxfYWN0aXZlX3JhbmdlcygpOwotI2VuZGlmCi0JCW1heF9wZm5fbWFwcGVkID0gMDsKLQkJZTgyMC5ucl9tYXAgPSAwOwotCQl1c2VyZGVmID0gMTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0Jb2xkcCA9IHA7Ci0JbWVtX3NpemUgPSBtZW1wYXJzZShwLCAmcCk7Ci0JaWYgKHAgPT0gb2xkcCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQl1c2VyZGVmID0gMTsKLQlpZiAoKnAgPT0gJ0AnKSB7Ci0JCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SQU0pOwotCX0gZWxzZSBpZiAoKnAgPT0gJyMnKSB7Ci0JCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9BQ1BJKTsKLQl9IGVsc2UgaWYgKCpwID09ICckJykgewotCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkVTRVJWRUQpOwotCX0gZWxzZSB7Ci0JCWVuZF91c2VyX3BmbiA9IChtZW1fc2l6ZSA+PiBQQUdFX1NISUZUKTsKLQl9Ci0JcmV0dXJuICpwID09ICdcMCcgPyAwIDogLUVJTlZBTDsKLX0KLWVhcmx5X3BhcmFtKCJtZW1tYXAiLCBwYXJzZV9tZW1tYXBfb3B0KTsKLQotdm9pZCBfX2luaXQgZmluaXNoX2U4MjBfcGFyc2luZyh2b2lkKQotewotCWlmICh1c2VyZGVmKSB7Ci0JCWNoYXIgbnIgPSBlODIwLm5yX21hcDsKLQotCQlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsICZucikgPCAwKQotCQkJZWFybHlfcGFuaWMoIkludmFsaWQgdXNlciBzdXBwbGllZCBtZW1vcnkgbWFwIik7Ci0JCWU4MjAubnJfbWFwID0gbnI7Ci0KLQkJcHJpbnRrKEtFUk5fSU5GTyAidXNlci1kZWZpbmVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQkJZTgyMF9wcmludF9tYXAoInVzZXIiKTsKLQl9Ci19Ci0KLXZvaWQgX19pbml0IHVwZGF0ZV9tZW1vcnlfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCi0JCQkJdW5zaWduZWQgbmV3X3R5cGUpCi17Ci0JaW50IGk7Ci0KLQlCVUdfT04ob2xkX3R5cGUgPT0gbmV3X3R5cGUpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCXU2NCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOwotCQlpZiAoZWktPnR5cGUgIT0gb2xkX3R5cGUpCi0JCQljb250aW51ZTsKLQkJLyogdG90YWxseSBjb3ZlcmVkPyAqLwotCQlpZiAoZWktPmFkZHIgPj0gc3RhcnQgJiYgZWktPnNpemUgPD0gc2l6ZSkgewotCQkJZWktPnR5cGUgPSBuZXdfdHlwZTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCS8qIHBhcnRpYWxseSBjb3ZlcmVkICovCi0JCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCBlaS0+YWRkcik7Ci0JCWZpbmFsX2VuZCA9IG1pbihzdGFydCArIHNpemUsIGVpLT5hZGRyICsgZWktPnNpemUpOwotCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKQotCQkJY29udGludWU7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydCwKLQkJCQkJIG5ld190eXBlKTsKLQl9Ci19Ci0KLXZvaWQgX19pbml0IHVwZGF0ZV9lODIwKHZvaWQpCi17Ci0JdTggbnJfbWFwOwotCi0JbnJfbWFwID0gZTgyMC5ucl9tYXA7Ci0JaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCAmbnJfbWFwKSkKLQkJcmV0dXJuOwotCWU4MjAubnJfbWFwID0gbnJfbWFwOwotCXByaW50ayhLRVJOX0lORk8gIm1vZGlmaWVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQllODIwX3ByaW50X21hcCgibW9kaWZpZWQiKTsKLX0KLQotdW5zaWduZWQgbG9uZyBwY2lfbWVtX3N0YXJ0ID0gMHhhZWVkYmFiZTsKLUVYUE9SVF9TWU1CT0wocGNpX21lbV9zdGFydCk7Ci0KLS8qCi0gKiBTZWFyY2ggZm9yIHRoZSBiaWdnZXN0IGdhcCBpbiB0aGUgbG93IDMyIGJpdHMgb2YgdGhlIGU4MjAKLSAqIG1lbW9yeSBzcGFjZS4gIFdlIHBhc3MgdGhpcyBzcGFjZSB0byBQQ0kgdG8gYXNzaWduIE1NSU8gcmVzb3VyY2VzCi0gKiBmb3IgaG90cGx1ZyBvciB1bmNvbmZpZ3VyZWQgZGV2aWNlcyBpbi4KLSAqIEhvcGVmdWxseSB0aGUgQklPUyBsZXQgZW5vdWdoIHNwYWNlIGxlZnQuCi0gKi8KLV9faW5pdCB2b2lkIGU4MjBfc2V0dXBfZ2FwKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBnYXBzdGFydCwgZ2Fwc2l6ZSwgcm91bmQ7Ci0JdW5zaWduZWQgbG9uZyBsYXN0OwotCWludCBpOwotCWludCBmb3VuZCA9IDA7Ci0KLQlsYXN0ID0gMHgxMDAwMDAwMDB1bGw7Ci0JZ2Fwc3RhcnQgPSAweDEwMDAwMDAwOwotCWdhcHNpemUgPSAweDQwMDAwMDsKLQlpID0gZTgyMC5ucl9tYXA7Ci0Jd2hpbGUgKC0taSA+PSAwKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyBlbmQgPSBzdGFydCArIGU4MjAubWFwW2ldLnNpemU7Ci0KLQkJLyoKLQkJICogU2luY2UgImxhc3QiIGlzIGF0IG1vc3QgNEdCLCB3ZSBrbm93IHdlJ2xsCi0JCSAqIGZpdCBpbiAzMiBiaXRzIGlmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUKLQkJICovCi0JCWlmIChsYXN0ID4gZW5kKSB7Ci0JCQl1bnNpZ25lZCBsb25nIGdhcCA9IGxhc3QgLSBlbmQ7Ci0KLQkJCWlmIChnYXAgPiBnYXBzaXplKSB7Ci0JCQkJZ2Fwc2l6ZSA9IGdhcDsKLQkJCQlnYXBzdGFydCA9IGVuZDsKLQkJCQlmb3VuZCA9IDE7Ci0JCQl9Ci0JCX0KLQkJaWYgKHN0YXJ0IDwgbGFzdCkKLQkJCWxhc3QgPSBzdGFydDsKLQl9Ci0KLQlpZiAoIWZvdW5kKSB7Ci0JCWdhcHN0YXJ0ID0gKGVuZF9wZm4gPDwgUEFHRV9TSElGVCkgKyAxMDI0KjEwMjQ7Ci0JCXByaW50ayhLRVJOX0VSUiAiUENJOiBXYXJuaW5nOiBDYW5ub3QgZmluZCBhIGdhcCBpbiB0aGUgMzJiaXQgIgotCQkgICAgICAgImFkZHJlc3MgcmFuZ2VcbiIKLQkJICAgICAgIEtFUk5fRVJSICJQQ0k6IFVuYXNzaWduZWQgZGV2aWNlcyB3aXRoIDMyYml0IHJlc291cmNlICIKLQkJICAgICAgICJyZWdpc3RlcnMgbWF5IGJyZWFrIVxuIik7Ci0JfQotCi0JLyoKLQkgKiBTZWUgaG93IG11Y2ggd2Ugd2FudCB0byByb3VuZCB1cDogc3RhcnQgb2ZmIHdpdGgKLQkgKiByb3VuZGluZyB0byB0aGUgbmV4dCAxTUIgYXJlYS4KLQkgKi8KLQlyb3VuZCA9IDB4MTAwMDAwOwotCXdoaWxlICgoZ2Fwc2l6ZSA+PiA0KSA+IHJvdW5kKQotCQlyb3VuZCArPSByb3VuZDsKLQkvKiBGdW4gd2l0aCB0d28ncyBjb21wbGVtZW50ICovCi0JcGNpX21lbV9zdGFydCA9IChnYXBzdGFydCArIHJvdW5kKSAmIC1yb3VuZDsKLQotCXByaW50ayhLRVJOX0lORk8KLQkgICAgICAgIkFsbG9jYXRpbmcgUENJIHJlc291cmNlcyBzdGFydGluZyBhdCAlbHggKGdhcDogJWx4OiVseClcbiIsCi0JICAgICAgIHBjaV9tZW1fc3RhcnQsIGdhcHN0YXJ0LCBnYXBzaXplKTsKLX0KLQotaW50IF9faW5pdCBhcmNoX2dldF9yYW1fcmFuZ2UoaW50IHNsb3QsIHU2NCAqYWRkciwgdTY0ICpzaXplKQotewotCWludCBpOwotCi0JaWYgKHNsb3QgPCAwIHx8IHNsb3QgPj0gZTgyMC5ucl9tYXApCi0JCXJldHVybiAtMTsKLQlmb3IgKGkgPSBzbG90OyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlpZiAoZTgyMC5tYXBbaV0udHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCQlicmVhazsKLQl9Ci0JaWYgKGkgPT0gZTgyMC5ucl9tYXAgfHwgZTgyMC5tYXBbaV0uYWRkciA+IChtYXhfcGZuIDw8IFBBR0VfU0hJRlQpKQotCQlyZXR1cm4gLTE7Ci0JKmFkZHIgPSBlODIwLm1hcFtpXS5hZGRyOwotCSpzaXplID0gbWluX3QodTY0LCBlODIwLm1hcFtpXS5zaXplICsgZTgyMC5tYXBbaV0uYWRkciwKLQkJbWF4X3BmbiA8PCBQQUdFX1NISUZUKSAtICphZGRyOwotCXJldHVybiBpICsgMTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYyBiL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYwppbmRleCA5ZjUxZTFlLi5hNDY2NWYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCkBAIC01MCw3ICs1MCw3IEBACiBzdGF0aWMgdm9pZCBfX2luaXQgdmlhX2J1Z3MoaW50ICBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKICNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQotCWlmICgoZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4gfHwgIGZvcmNlX2lvbW11KSAmJgorCWlmICgobWF4X3BmbiA+IE1BWF9ETUEzMl9QRk4gfHwgIGZvcmNlX2lvbW11KSAmJgogCSAgICAhZ2FydF9pb21tdV9hcGVydHVyZV9hbGxvd2VkKSB7CiAJCXByaW50ayhLRVJOX0lORk8KIAkJICAgICAgICJMb29rcyBsaWtlIGEgVklBIGNoaXBzZXQuIERpc2FibGluZyBJT01NVS4iCkBAIC05OCwxNyArOTgsNiBAQAogCiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBhdGlfYnVncyhpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCi17Ci0jaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCi0JaWYgKHRpbWVyX292ZXJfODI1NCA9PSAxKSB7Ci0JCXRpbWVyX292ZXJfODI1NCA9IDA7Ci0JCXByaW50ayhLRVJOX0lORk8KLQkJIkFUSSBib2FyZCBkZXRlY3RlZC4gRGlzYWJsaW5nIHRpbWVyIHJvdXRpbmcgb3ZlciA4MjU0LlxuIik7Ci0JfQotI2VuZGlmCi19Ci0KICNkZWZpbmUgUUZMQUdfQVBQTFlfT05DRSAJMHgxCiAjZGVmaW5lIFFGTEFHX0FQUExJRUQJCTB4MgogI2RlZmluZSBRRkxBR19ET05FCQkoUUZMQUdfQVBQTFlfT05DRXxRRkxBR19BUFBMSUVEKQpAQCAtMTI2LDggKzExNSw2IEBACiAJICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgUENJX0FOWV9JRCwgUUZMQUdfQVBQTFlfT05DRSwgbnZpZGlhX2J1Z3MgfSwKIAl7IFBDSV9WRU5ET1JfSURfVklBLCBQQ0lfQU5ZX0lELAogCSAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIFBDSV9BTllfSUQsIFFGTEFHX0FQUExZX09OQ0UsIHZpYV9idWdzIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0FOWV9JRCwKLQkgIFBDSV9DTEFTU19CUklER0VfUENJLCBQQ0lfQU5ZX0lELCBRRkxBR19BUFBMWV9PTkNFLCBhdGlfYnVncyB9LAogCXsgUENJX1ZFTkRPUl9JRF9BTUQsIFBDSV9ERVZJQ0VfSURfQU1EX0s4X05CLAogCSAgUENJX0NMQVNTX0JSSURHRV9IT1NULCBQQ0lfQU5ZX0lELCAwLCBmaXhfaHlwZXJ0cmFuc3BvcnRfY29uZmlnIH0sCiAJe30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lYXJseV9wcmludGsuYyBiL2FyY2gveDg2L2tlcm5lbC9lYXJseV9wcmludGsuYwppbmRleCA2NDNmZDg2Li5mZjllNzM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHlfcHJpbnRrLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2Vhcmx5X3ByaW50ay5jCkBAIC0xOTYsNyArMTk2LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgY29uc29sZSAqZWFybHlfY29uc29sZSA9ICZlYXJseV92Z2FfY29uc29sZTsKIHN0YXRpYyBpbnQgZWFybHlfY29uc29sZV9pbml0aWFsaXplZDsKIAotdm9pZCBlYXJseV9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pCithc21saW5rYWdlIHZvaWQgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWNoYXIgYnVmWzUxMl07CiAJaW50IG47CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWZpLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpLmMKaW5kZXggNzdkNDI0Yy4uMDZjYzhkNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2VmaS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lZmkuYwpAQCAtNjQsNiArNjQsMTcgQEAKIH0KIGVhcmx5X3BhcmFtKCJub2VmaSIsIHNldHVwX25vZWZpKTsKIAoraW50IGFkZF9lZmlfbWVtbWFwOworRVhQT1JUX1NZTUJPTChhZGRfZWZpX21lbW1hcCk7CisKK3N0YXRpYyBpbnQgX19pbml0IHNldHVwX2FkZF9lZmlfbWVtbWFwKGNoYXIgKmFyZykKK3sKKwlhZGRfZWZpX21lbW1hcCA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiYWRkX2VmaV9tZW1tYXAiLCBzZXR1cF9hZGRfZWZpX21lbW1hcCk7CisKKwogc3RhdGljIGVmaV9zdGF0dXNfdCB2aXJ0X2VmaV9nZXRfdGltZShlZmlfdGltZV90ICp0bSwgZWZpX3RpbWVfY2FwX3QgKnRjKQogewogCXJldHVybiBlZmlfY2FsbF92aXJ0MihnZXRfdGltZSwgdG0sIHRjKTsKQEAgLTIxMyw2ICsyMjQsNTAgQEAKIAkJICAgICAgZWZ0Lm1pbnV0ZSwgZWZ0LnNlY29uZCk7CiB9CiAKKy8qCisgKiBUZWxsIHRoZSBrZXJuZWwgYWJvdXQgdGhlIEVGSSBtZW1vcnkgbWFwLiAgVGhpcyBtaWdodCBpbmNsdWRlCisgKiBtb3JlIHRoYW4gdGhlIG1heCAxMjggZW50cmllcyB0aGF0IGNhbiBmaXQgaW4gdGhlIGU4MjAgbGVnYWN5CisgKiAoemVyb3BhZ2UpIG1lbW9yeSBtYXAuCisgKi8KKworc3RhdGljIHZvaWQgX19pbml0IGRvX2FkZF9lZmlfbWVtbWFwKHZvaWQpCit7CisJdm9pZCAqcDsKKworCWZvciAocCA9IG1lbW1hcC5tYXA7IHAgPCBtZW1tYXAubWFwX2VuZDsgcCArPSBtZW1tYXAuZGVzY19zaXplKSB7CisJCWVmaV9tZW1vcnlfZGVzY190ICptZCA9IHA7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCA9IG1kLT5waHlzX2FkZHI7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzaXplID0gbWQtPm51bV9wYWdlcyA8PCBFRklfUEFHRV9TSElGVDsKKwkJaW50IGU4MjBfdHlwZTsKKworCQlpZiAobWQtPmF0dHJpYnV0ZSAmIEVGSV9NRU1PUllfV0IpCisJCQllODIwX3R5cGUgPSBFODIwX1JBTTsKKwkJZWxzZQorCQkJZTgyMF90eXBlID0gRTgyMF9SRVNFUlZFRDsKKwkJZTgyMF9hZGRfcmVnaW9uKHN0YXJ0LCBzaXplLCBlODIwX3R5cGUpOworCX0KKwlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7Cit9CisKK3ZvaWQgX19pbml0IGVmaV9yZXNlcnZlX2Vhcmx5KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBwbWFwOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCXBtYXAgPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwOworI2Vsc2UKKwlwbWFwID0gKGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXAgfAorCQkoKF9fdTY0KWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXBfaGk8PDMyKSk7CisjZW5kaWYKKwltZW1tYXAucGh5c19tYXAgPSAodm9pZCAqKXBtYXA7CisJbWVtbWFwLm5yX21hcCA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXBfc2l6ZSAvCisJCWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3NpemU7CisJbWVtbWFwLmRlc2NfdmVyc2lvbiA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3ZlcnNpb247CisJbWVtbWFwLmRlc2Nfc2l6ZSA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3NpemU7CisJcmVzZXJ2ZV9lYXJseShwbWFwLCBwbWFwICsgbWVtbWFwLm5yX21hcCAqIG1lbW1hcC5kZXNjX3NpemUsCisJCSAgICAgICJFRkkgbWVtbWFwIik7Cit9CisKICNpZiBFRklfREVCVUcKIHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9lZmlfbWVtbWFwKHZvaWQpCiB7CkBAIC0yNDQsMTkgKzI5OSwxMSBAQAogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogCWVmaV9waHlzLnN5c3RhYiA9IChlZmlfc3lzdGVtX3RhYmxlX3QgKilib290X3BhcmFtcy5lZmlfaW5mby5lZmlfc3lzdGFiOwotCW1lbW1hcC5waHlzX21hcCA9ICh2b2lkICopYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcDsKICNlbHNlCiAJZWZpX3BoeXMuc3lzdGFiID0gKGVmaV9zeXN0ZW1fdGFibGVfdCAqKQogCQkoYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX3N5c3RhYiB8CiAJCSAoKF9fdTY0KWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9zeXN0YWJfaGk8PDMyKSk7Ci0JbWVtbWFwLnBoeXNfbWFwID0gKHZvaWQgKikKLQkJKGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXAgfAotCQkgKChfX3U2NClib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwX2hpPDwzMikpOwogI2VuZGlmCi0JbWVtbWFwLm5yX21hcCA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXBfc2l6ZSAvCi0JCWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3NpemU7Ci0JbWVtbWFwLmRlc2NfdmVyc2lvbiA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3ZlcnNpb247Ci0JbWVtbWFwLmRlc2Nfc2l6ZSA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1kZXNjX3NpemU7CiAKIAllZmkuc3lzdGFiID0gZWFybHlfaW9yZW1hcCgodW5zaWduZWQgbG9uZyllZmlfcGh5cy5zeXN0YWIsCiAJCQkJICAgc2l6ZW9mKGVmaV9zeXN0ZW1fdGFibGVfdCkpOwpAQCAtMzcwLDYgKzQxNyw4IEBACiAJaWYgKG1lbW1hcC5kZXNjX3NpemUgIT0gc2l6ZW9mKGVmaV9tZW1vcnlfZGVzY190KSkKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiS2VybmVsLWRlZmluZWQgbWVtZGVzYyIKIAkJICAgICAgICJkb2Vzbid0IG1hdGNoIHRoZSBvbmUgZnJvbSBFRkkhXG4iKTsKKwlpZiAoYWRkX2VmaV9tZW1tYXApCisJCWRvX2FkZF9lZmlfbWVtbWFwKCk7CiAKIAkvKiBTZXR1cCBmb3IgRUZJIHJ1bnRpbWUgc2VydmljZSAqLwogCXJlYm9vdF90eXBlID0gQk9PVF9FRkk7CkBAIC00MjQsNyArNDczLDcgQEAKIAkJc2l6ZSA9IG1kLT5udW1fcGFnZXMgPDwgRUZJX1BBR0VfU0hJRlQ7CiAJCWVuZCA9IG1kLT5waHlzX2FkZHIgKyBzaXplOwogCi0JCWlmIChQRk5fVVAoZW5kKSA8PSBtYXhfcGZuX21hcHBlZCkKKwkJaWYgKFBGTl9VUChlbmQpIDw9IG1heF9sb3dfcGZuX21hcHBlZCkKIAkJCXZhID0gX192YShtZC0+cGh5c19hZGRyKTsKIAkJZWxzZQogCQkJdmEgPSBlZmlfaW9yZW1hcChtZC0+cGh5c19hZGRyLCBzaXplKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lZmlfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9lZmlfMzIuYwppbmRleCA1ZDIzZDg1Li40YjYzYzhlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWZpXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2VmaV8zMi5jCkBAIC00OSwxMyArNDksMTMgQEAKIAlsb2NhbF9pcnFfc2F2ZShlZmlfcnRfZWZsYWdzKTsKIAogCS8qCi0JICogSWYgSSBkb24ndCBoYXZlIFBTRSwgSSBzaG91bGQganVzdCBkdXBsaWNhdGUgdHdvIGVudHJpZXMgaW4gcGFnZQotCSAqIGRpcmVjdG9yeS4gSWYgSSBoYXZlIFBTRSwgSSBqdXN0IG5lZWQgdG8gZHVwbGljYXRlIG9uZSBlbnRyeSBpbgorCSAqIElmIEkgZG9uJ3QgaGF2ZSBQQUUsIEkgc2hvdWxkIGp1c3QgZHVwbGljYXRlIHR3byBlbnRyaWVzIGluIHBhZ2UKKwkgKiBkaXJlY3RvcnkuIElmIEkgaGF2ZSBQQUUsIEkganVzdCBuZWVkIHRvIGR1cGxpY2F0ZSBvbmUgZW50cnkgaW4KIAkgKiBwYWdlIGRpcmVjdG9yeS4KIAkgKi8KIAljcjQgPSByZWFkX2NyNCgpOwogCi0JaWYgKGNyNCAmIFg4Nl9DUjRfUFNFKSB7CisJaWYgKGNyNCAmIFg4Nl9DUjRfUEFFKSB7CiAJCWVmaV9iYWtfcGdfZGlyX3BvaW50ZXJbMF0ucGdkID0KIAkJICAgIHN3YXBwZXJfcGdfZGlyW3BnZF9pbmRleCgwKV0ucGdkOwogCQlzd2FwcGVyX3BnX2RpclswXS5wZ2QgPQpAQCAtOTMsNyArOTMsNyBAQAogCiAJY3I0ID0gcmVhZF9jcjQoKTsKIAotCWlmIChjcjQgJiBYODZfQ1I0X1BTRSkgeworCWlmIChjcjQgJiBYODZfQ1I0X1BBRSkgewogCQlzd2FwcGVyX3BnX2RpcltwZ2RfaW5kZXgoMCldLnBnZCA9CiAJCSAgICBlZmlfYmFrX3BnX2Rpcl9wb2ludGVyWzBdLnBnZDsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VmaV82NC5jIGIvYXJjaC94ODYva2VybmVsL2VmaV82NC5jCmluZGV4IGQwMDYwZmQuLjY1MmM1MjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lZmlfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpXzY0LmMKQEAgLTk3LDEzICs5Nyw3IEBACiAJZWFybHlfcnVudGltZV9jb2RlX21hcHBpbmdfc2V0X2V4ZWMoMCk7CiB9CiAKLXZvaWQgX19pbml0IGVmaV9yZXNlcnZlX2Jvb3RtZW0odm9pZCkKLXsKLQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYygodW5zaWduZWQgbG9uZyltZW1tYXAucGh5c19tYXAsCi0JCQkJbWVtbWFwLm5yX21hcCAqIG1lbW1hcC5kZXNjX3NpemUpOwotfQotCi12b2lkIF9faW9tZW0gKiBfX2luaXQgZWZpX2lvcmVtYXAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3ZvaWQgX19pb21lbSAqX19pbml0IGVmaV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCiB7CiAJc3RhdGljIHVuc2lnbmVkIHBhZ2VzX21hcHBlZCBfX2luaXRkYXRhOwogCXVuc2lnbmVkIGksIHBhZ2VzOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUwppbmRleCAyYTYwOWRjLi42YmMwN2YwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUwpAQCAtNTEsMTQgKzUxLDE1IEBACiAjaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgogI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLWZsYWdzLmg+Ci0jaW5jbHVkZSAiaXJxX3ZlY3RvcnMuaCIKKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisjaW5jbHVkZSA8YXNtL2lycV92ZWN0b3JzLmg+CiAKIC8qCiAgKiBXZSB1c2UgbWFjcm9zIGZvciBsb3ctbGV2ZWwgb3BlcmF0aW9ucyB3aGljaCBuZWVkIHRvIGJlIG92ZXJyaWRkZW4KICAqIGZvciBwYXJhdmlydHVhbGl6YXRpb24uICBUaGUgZm9sbG93aW5nIHdpbGwgbmV2ZXIgY2xvYmJlciBhbnkgcmVnaXN0ZXJzOgogICogICBJTlRFUlJVUFRfUkVUVVJOIChha2EuICJpcmV0IikKICAqICAgR0VUX0NSMF9JTlRPX0VBWCAoYWthLiAibW92bCAlY3IwLCAlZWF4IikKLSAqICAgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQgKGFrYSAic3RpOyBzeXNleGl0IikuCisgKiAgIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQgKGFrYSAic3RpOyBzeXNleGl0IikuCiAgKgogICogRm9yIERJU0FCTEVfSU5URVJSVVBUUy9FTkFCTEVfSU5URVJSVVBUUyAoYWthICJjbGkiLyJzdGkiKSwgeW91IG11c3QKICAqIHNwZWNpZnkgd2hhdCByZWdpc3RlcnMgY2FuIGJlIG92ZXJ3cml0dGVuIChDTEJSX05PTkUsIENMQlJfRUFYL0VEWC9FQ1gvQU5ZKS4KQEAgLTI0OCw2ICsyNDksNyBAQAogIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9BTlkpCSMgbWFrZSBzdXJlIHdlIGRvbid0IG1pc3MgYW4gaW50ZXJydXB0CiAJCQkJCSMgc2V0dGluZyBuZWVkX3Jlc2NoZWQgb3Igc2lncGVuZGluZwogCQkJCQkjIGJldHdlZW4gc2FtcGxpbmcgYW5kIHRoZSBpcmV0CisJVFJBQ0VfSVJRU19PRkYKIAltb3ZsIFRJX2ZsYWdzKCVlYnApLCAlZWN4CiAJYW5kbCAkX1RJRl9XT1JLX01BU0ssICVlY3gJIyBpcyB0aGVyZSBhbnkgd29yayB0byBiZSBkb25lIG9uCiAJCQkJCSMgaW50L2V4Y2VwdGlvbiByZXR1cm4/CkBAIC0zNDgsNyArMzUwLDcgQEAKIAl4b3JsICVlYnAsJWVicAogCVRSQUNFX0lSUVNfT04KIDE6CW1vdiAgUFRfRlMoJWVzcCksICVmcwotCUVOQUJMRV9JTlRFUlJVUFRTX1NZU0NBTExfUkVUCisJRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVAogCUNGSV9FTkRQUk9DCiAucHVzaHNlY3Rpb24gLmZpeHVwLCJheCIKIDI6CW1vdmwgJDAsUFRfRlMoJWVzcCkKQEAgLTg3MywxMCArODc1LDEwIEBACiAucHJldmlvdXMKIEVORChuYXRpdmVfaXJldCkKIAotRU5UUlkobmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQpCitFTlRSWShuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KQogCXN0aQogCXN5c2V4aXQKLUVORChuYXRpdmVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCkKK0VORChuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KQogI2VuZGlmCiAKIEtQUk9CRV9FTlRSWShpbnQzKQpAQCAtMTAyMyw2ICsxMDI1LDcgQEAKIAlSSU5HMF9JTlRfRlJBTUUKIAlhZGRsICQ1KjQsICVlc3AJCS8qIHJlbW92ZSB4ZW4tcHJvdmlkZWQgZnJhbWUgKi8KIAlqbXAgc3lzZW50ZXJfcGFzdF9lc3AKKwlDRklfRU5EUFJPQwogCiBFTlRSWSh4ZW5faHlwZXJ2aXNvcl9jYWxsYmFjaykKIAlDRklfU1RBUlRQUk9DCkBAIC0xMTA5LDYgKzExMTIsNzcgQEAKIAogI2VuZGlmCS8qIENPTkZJR19YRU4gKi8KIAorI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKworRU5UUlkobWNvdW50KQorCXB1c2hsICVlYXgKKwlwdXNobCAlZWN4CisJcHVzaGwgJWVkeAorCW1vdmwgMHhjKCVlc3ApLCAlZWF4CisJc3VibCAkTUNPVU5UX0lOU05fU0laRSwgJWVheAorCisuZ2xvYmwgbWNvdW50X2NhbGwKK21jb3VudF9jYWxsOgorCWNhbGwgZnRyYWNlX3N0dWIKKworCXBvcGwgJWVkeAorCXBvcGwgJWVjeAorCXBvcGwgJWVheAorCisJcmV0CitFTkQobWNvdW50KQorCitFTlRSWShmdHJhY2VfY2FsbGVyKQorCXB1c2hsICVlYXgKKwlwdXNobCAlZWN4CisJcHVzaGwgJWVkeAorCW1vdmwgMHhjKCVlc3ApLCAlZWF4CisJbW92bCAweDQoJWVicCksICVlZHgKKwlzdWJsICRNQ09VTlRfSU5TTl9TSVpFLCAlZWF4CisKKy5nbG9ibCBmdHJhY2VfY2FsbAorZnRyYWNlX2NhbGw6CisJY2FsbCBmdHJhY2Vfc3R1YgorCisJcG9wbCAlZWR4CisJcG9wbCAlZWN4CisJcG9wbCAlZWF4CisKKy5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJcmV0CitFTkQoZnRyYWNlX2NhbGxlcikKKworI2Vsc2UgLyogISBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKworRU5UUlkobWNvdW50KQorCWNtcGwgJGZ0cmFjZV9zdHViLCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24KKwlqbnogdHJhY2UKKy5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJcmV0CisKKwkvKiB0YWtlbiBmcm9tIGdsaWJjICovCit0cmFjZToKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwltb3ZsIDB4YyglZXNwKSwgJWVheAorCW1vdmwgMHg0KCVlYnApLCAlZWR4CisJc3VibCAkTUNPVU5UX0lOU05fU0laRSwgJWVheAorCisJY2FsbCAqZnRyYWNlX3RyYWNlX2Z1bmN0aW9uCisKKwlwb3BsICVlZHgKKwlwb3BsICVlY3gKKwlwb3BsICVlYXgKKworCWptcCBmdHJhY2Vfc3R1YgorRU5EKG1jb3VudCkKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKIC5zZWN0aW9uIC5yb2RhdGEsImEiCiAjaW5jbHVkZSAic3lzY2FsbF90YWJsZV8zMi5TIgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCmluZGV4IDU1NmE4ZGYuLmJhNDFiZjQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCkBAIC01MSwxNiArNTEsMTIxIEBACiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vaXJxZmxhZ3MuaD4KICNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKIAkuY29kZTY0CiAKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitFTlRSWShtY291bnQpCisKKwlzdWJxICQweDM4LCAlcnNwCisJbW92cSAlcmF4LCAoJXJzcCkKKwltb3ZxICVyY3gsIDgoJXJzcCkKKwltb3ZxICVyZHgsIDE2KCVyc3ApCisJbW92cSAlcnNpLCAyNCglcnNwKQorCW1vdnEgJXJkaSwgMzIoJXJzcCkKKwltb3ZxICVyOCwgNDAoJXJzcCkKKwltb3ZxICVyOSwgNDgoJXJzcCkKKworCW1vdnEgMHgzOCglcnNwKSwgJXJkaQorCXN1YnEgJE1DT1VOVF9JTlNOX1NJWkUsICVyZGkKKworLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwljYWxsIGZ0cmFjZV9zdHViCisKKwltb3ZxIDQ4KCVyc3ApLCAlcjkKKwltb3ZxIDQwKCVyc3ApLCAlcjgKKwltb3ZxIDMyKCVyc3ApLCAlcmRpCisJbW92cSAyNCglcnNwKSwgJXJzaQorCW1vdnEgMTYoJXJzcCksICVyZHgKKwltb3ZxIDgoJXJzcCksICVyY3gKKwltb3ZxICglcnNwKSwgJXJheAorCWFkZHEgJDB4MzgsICVyc3AKKworCXJldHEKK0VORChtY291bnQpCisKK0VOVFJZKGZ0cmFjZV9jYWxsZXIpCisKKwkvKiB0YWtlbiBmcm9tIGdsaWJjICovCisJc3VicSAkMHgzOCwgJXJzcAorCW1vdnEgJXJheCwgKCVyc3ApCisJbW92cSAlcmN4LCA4KCVyc3ApCisJbW92cSAlcmR4LCAxNiglcnNwKQorCW1vdnEgJXJzaSwgMjQoJXJzcCkKKwltb3ZxICVyZGksIDMyKCVyc3ApCisJbW92cSAlcjgsIDQwKCVyc3ApCisJbW92cSAlcjksIDQ4KCVyc3ApCisKKwltb3ZxIDB4MzgoJXJzcCksICVyZGkKKwltb3ZxIDgoJXJicCksICVyc2kKKwlzdWJxICRNQ09VTlRfSU5TTl9TSVpFLCAlcmRpCisKKy5nbG9ibCBmdHJhY2VfY2FsbAorZnRyYWNlX2NhbGw6CisJY2FsbCBmdHJhY2Vfc3R1YgorCisJbW92cSA0OCglcnNwKSwgJXI5CisJbW92cSA0MCglcnNwKSwgJXI4CisJbW92cSAzMiglcnNwKSwgJXJkaQorCW1vdnEgMjQoJXJzcCksICVyc2kKKwltb3ZxIDE2KCVyc3ApLCAlcmR4CisJbW92cSA4KCVyc3ApLCAlcmN4CisJbW92cSAoJXJzcCksICVyYXgKKwlhZGRxICQweDM4LCAlcnNwCisKKy5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJcmV0cQorRU5EKGZ0cmFjZV9jYWxsZXIpCisKKyNlbHNlIC8qICEgQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCitFTlRSWShtY291bnQpCisJY21wcSAkZnRyYWNlX3N0dWIsIGZ0cmFjZV90cmFjZV9mdW5jdGlvbgorCWpueiB0cmFjZQorLmdsb2JsIGZ0cmFjZV9zdHViCitmdHJhY2Vfc3R1YjoKKwlyZXRxCisKK3RyYWNlOgorCS8qIHRha2VuIGZyb20gZ2xpYmMgKi8KKwlzdWJxICQweDM4LCAlcnNwCisJbW92cSAlcmF4LCAoJXJzcCkKKwltb3ZxICVyY3gsIDgoJXJzcCkKKwltb3ZxICVyZHgsIDE2KCVyc3ApCisJbW92cSAlcnNpLCAyNCglcnNwKQorCW1vdnEgJXJkaSwgMzIoJXJzcCkKKwltb3ZxICVyOCwgNDAoJXJzcCkKKwltb3ZxICVyOSwgNDgoJXJzcCkKKworCW1vdnEgMHgzOCglcnNwKSwgJXJkaQorCW1vdnEgOCglcmJwKSwgJXJzaQorCXN1YnEgJE1DT1VOVF9JTlNOX1NJWkUsICVyZGkKKworCWNhbGwgICAqZnRyYWNlX3RyYWNlX2Z1bmN0aW9uCisKKwltb3ZxIDQ4KCVyc3ApLCAlcjkKKwltb3ZxIDQwKCVyc3ApLCAlcjgKKwltb3ZxIDMyKCVyc3ApLCAlcmRpCisJbW92cSAyNCglcnNwKSwgJXJzaQorCW1vdnEgMTYoJXJzcCksICVyZHgKKwltb3ZxIDgoJXJzcCksICVyY3gKKwltb3ZxICglcnNwKSwgJXJheAorCWFkZHEgJDB4MzgsICVyc3AKKworCWptcCBmdHJhY2Vfc3R1YgorRU5EKG1jb3VudCkKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKICNpZm5kZWYgQ09ORklHX1BSRUVNUFQKICNkZWZpbmUgcmV0aW50X2tlcm5lbCByZXRpbnRfcmVzdG9yZV9hcmdzCiAjZW5kaWYJCiAKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLUVOVFJZKG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KQotCW1vdnEJJWdzOnBkYV9vbGRyc3AsJXJzcAorRU5UUlkobmF0aXZlX3VzZXJnc19zeXNyZXQ2NCkKIAlzd2FwZ3MKIAlzeXNyZXRxCiAjZW5kaWYgLyogQ09ORklHX1BBUkFWSVJUICovCkBAIC0xMDQsNyArMjA5LDcgQEAKIAkubWFjcm8gRkFLRV9TVEFDS19GUkFNRSBjaGlsZF9yaXAKIAkvKiBwdXNoIGluIG9yZGVyIHNzLCByc3AsIGVmbGFncywgY3MsIHJpcCAqLwogCXhvcmwgJWVheCwgJWVheAotCXB1c2hxICVyYXggLyogc3MgKi8KKwlwdXNocSAkX19LRVJORUxfRFMgLyogc3MgKi8KIAlDRklfQURKVVNUX0NGQV9PRkZTRVQJOAogCS8qQ0ZJX1JFTF9PRkZTRVQJc3MsMCovCiAJcHVzaHEgJXJheCAvKiByc3AgKi8KQEAgLTE2OSwxMyArMjc0LDEzIEBACiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC00CiAJY2FsbCBzY2hlZHVsZV90YWlsCiAJR0VUX1RIUkVBRF9JTkZPKCVyY3gpCi0JdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUKSx0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpCisJdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUKSxUSV9mbGFncyglcmN4KQogCWpueiByZmZfdHJhY2UKIHJmZl9hY3Rpb246CQogCVJFU1RPUkVfUkVTVAogCXRlc3RsICQzLENTLUFSR09GRlNFVCglcnNwKQkjIGZyb20ga2VybmVsX3RocmVhZD8KIAlqZSAgIGludF9yZXRfZnJvbV9zeXNfY2FsbAotCXRlc3RsICRfVElGX0lBMzIsdGhyZWFkaW5mb19mbGFncyglcmN4KQorCXRlc3RsICRfVElGX0lBMzIsVElfZmxhZ3MoJXJjeCkKIAlqbnogIGludF9yZXRfZnJvbV9zeXNfY2FsbAogCVJFU1RPUkVfVE9QX09GX1NUQUNLICVyZGksQVJHT0ZGU0VUCiAJam1wIHJldF9mcm9tX3N5c19jYWxsCkBAIC0yNDQsNyArMzQ5LDggQEAKIAltb3ZxICAlcmN4LFJJUC1BUkdPRkZTRVQoJXJzcCkKIAlDRklfUkVMX09GRlNFVCByaXAsUklQLUFSR09GRlNFVAogCUdFVF9USFJFQURfSU5GTyglcmN4KQotCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLHRocmVhZGluZm9fZmxhZ3MoJXJjeCkKKwl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSwgXAorCQlUSV9mbGFncyglcmN4KQogCWpueiB0cmFjZXN5cwogCWNtcHEgJF9fTlJfc3lzY2FsbF9tYXgsJXJheAogCWphIGJhZHN5cwpAQCAtMjYzLDcgKzM2OSw3IEBACiAJR0VUX1RIUkVBRF9JTkZPKCVyY3gpCiAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlUUkFDRV9JUlFTX09GRgotCW1vdmwgdGhyZWFkaW5mb19mbGFncyglcmN4KSwlZWR4CisJbW92bCBUSV9mbGFncyglcmN4KSwlZWR4CiAJYW5kbCAlZWRpLCVlZHgKIAlqbnogIHN5c3JldF9jYXJlZnVsIAogCUNGSV9SRU1FTUJFUl9TVEFURQpAQCAtMjc1LDcgKzM4MSw4IEBACiAJQ0ZJX1JFR0lTVEVSCXJpcCxyY3gKIAlSRVNUT1JFX0FSR1MgMCwtQVJHX1NLSVAsMQogCS8qQ0ZJX1JFR0lTVEVSCXJmbGFncyxyMTEqLwotCUVOQUJMRV9JTlRFUlJVUFRTX1NZU0NBTExfUkVUCisJbW92cQklZ3M6cGRhX29sZHJzcCwgJXJzcAorCVVTRVJHU19TWVNSRVQ2NAogCiAJQ0ZJX1JFU1RPUkVfU1RBVEUKIAkvKiBIYW5kbGUgcmVzY2hlZHVsZXMgKi8KQEAgLTMwNSw3ICs0MTIsNyBAQAogCWxlYXEgLUFSR09GRlNFVCglcnNwKSwlcmRpICMgJnB0X3JlZ3MgLT4gYXJnMQogCXhvcmwgJWVzaSwlZXNpICMgb2xkc2V0IC0+IGFyZzIKIAljYWxsIHB0cmVnc2NhbGxfY29tbW9uCi0xOgltb3ZsICRfVElGX05FRURfUkVTQ0hFRCwlZWRpCisxOgltb3ZsICRfVElGX1dPUktfTUFTSywlZWRpCiAJLyogVXNlIElSRVQgYmVjYXVzZSB1c2VyIGNvdWxkIGhhdmUgY2hhbmdlZCBmcmFtZS4gVGhpcwogCSAgIHdvcmtzIGJlY2F1c2UgcHRyZWdzY2FsbF9jb21tb24gaGFzIGNhbGxlZCBGSVhVUF9UT1BfT0ZfU1RBQ0suICovCiAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKQEAgLTM0NywxMCArNDU0LDEwIEBACiBpbnRfd2l0aF9jaGVjazoKIAlMT0NLREVQX1NZU19FWElUX0lSUQogCUdFVF9USFJFQURfSU5GTyglcmN4KQotCW1vdmwgdGhyZWFkaW5mb19mbGFncyglcmN4KSwlZWR4CisJbW92bCBUSV9mbGFncyglcmN4KSwlZWR4CiAJYW5kbCAlZWRpLCVlZHgKIAlqbnogICBpbnRfY2FyZWZ1bAotCWFuZGwgICAgJH5UU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXJjeCkKKwlhbmRsICAgICR+VFNfQ09NUEFULFRJX3N0YXR1cyglcmN4KQogCWptcCAgIHJldGludF9zd2FwZ3MKIAogCS8qIEVpdGhlciByZXNjaGVkdWxlIG9yIHNpZ25hbCBvciBzeXNjYWxsIGV4aXQgdHJhY2tpbmcgbmVlZGVkLiAqLwpAQCAtMzkzLDcgKzUwMCw3IEBACiAJbW92cSAlcnNwLCVyZGkJCSMgJnB0cmVncyAtPiBhcmcxCiAJeG9ybCAlZXNpLCVlc2kJCSMgb2xkc2V0IC0+IGFyZzIKIAljYWxsIGRvX25vdGlmeV9yZXN1bWUKLTE6CW1vdmwgJF9USUZfTkVFRF9SRVNDSEVELCVlZGkJCisxOgltb3ZsICRfVElGX1dPUktfTUFTSywlZWRpCiBpbnRfcmVzdG9yZV9yZXN0OgogCVJFU1RPUkVfUkVTVAogCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCkBAIC00MjAsNyArNTI3LDYgQEAKIAlQVFJFR1NDQUxMIHN0dWJfY2xvbmUsIHN5c19jbG9uZSwgJXI4CiAJUFRSRUdTQ0FMTCBzdHViX2ZvcmssIHN5c19mb3JrLCAlcmRpCiAJUFRSRUdTQ0FMTCBzdHViX3Zmb3JrLCBzeXNfdmZvcmssICVyZGkKLQlQVFJFR1NDQUxMIHN0dWJfcnRfc2lnc3VzcGVuZCwgc3lzX3J0X3NpZ3N1c3BlbmQsICVyZHgKIAlQVFJFR1NDQUxMIHN0dWJfc2lnYWx0c3RhY2ssIHN5c19zaWdhbHRzdGFjaywgJXJkeAogCVBUUkVHU0NBTEwgc3R1Yl9pb3BsLCBzeXNfaW9wbCwgJXJzaQogCkBAIC01NTksNyArNjY1LDcgQEAKIAltb3ZsICRfVElGX1dPUktfTUFTSywlZWRpCiByZXRpbnRfY2hlY2s6CiAJTE9DS0RFUF9TWVNfRVhJVF9JUlEKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVkeAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVkeAogCWFuZGwgJWVkaSwlZWR4CiAJQ0ZJX1JFTUVNQkVSX1NUQVRFCiAJam56ICByZXRpbnRfY2FyZWZ1bApAQCAtNjQ3LDE3ICs3NTMsMTYgQEAKIAlSRVNUT1JFX1JFU1QKIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JbW92bCAkX1RJRl9ORUVEX1JFU0NIRUQsJWVkaQogCUdFVF9USFJFQURfSU5GTyglcmN4KQotCWptcCByZXRpbnRfY2hlY2sKKwlqbXAgcmV0aW50X3dpdGhfcmVzY2hlZHVsZQogCiAjaWZkZWYgQ09ORklHX1BSRUVNUFQKIAkvKiBSZXR1cm5pbmcgdG8ga2VybmVsIHNwYWNlLiBDaGVjayBpZiB3ZSBuZWVkIHByZWVtcHRpb24gKi8KIAkvKiByY3g6CSB0aHJlYWRpbmZvLiBpbnRlcnJ1cHRzIG9mZi4gKi8KIEVOVFJZKHJldGludF9rZXJuZWwpCi0JY21wbCAkMCx0aHJlYWRpbmZvX3ByZWVtcHRfY291bnQoJXJjeCkKKwljbXBsICQwLFRJX3ByZWVtcHRfY291bnQoJXJjeCkKIAlqbnogIHJldGludF9yZXN0b3JlX2FyZ3MKLQlidCAgJFRJRl9ORUVEX1JFU0NIRUQsdGhyZWFkaW5mb19mbGFncyglcmN4KQorCWJ0ICAkVElGX05FRURfUkVTQ0hFRCxUSV9mbGFncyglcmN4KQogCWpuYyAgcmV0aW50X3Jlc3RvcmVfYXJncwogCWJ0ICAgJDksRUZMQUdTLUFSR09GRlNFVCglcnNwKQkvKiBpbnRlcnJ1cHRzIG9mZj8gKi8KIAlqbmMgIHJldGludF9yZXN0b3JlX2FyZ3MKQEAgLTcyMCw2ICs4MjUsMTAgQEAKIAlhcGljaW50ZXJydXB0IExPQ0FMX1RJTUVSX1ZFQ1RPUixzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQKIEVORChhcGljX3RpbWVyX2ludGVycnVwdCkKIAorRU5UUlkodXZfYmF1X21lc3NhZ2VfaW50cjEpCisJYXBpY2ludGVycnVwdCAyMjAsdXZfYmF1X21lc3NhZ2VfaW50ZXJydXB0CitFTkQodXZfYmF1X21lc3NhZ2VfaW50cjEpCisKIEVOVFJZKGVycm9yX2ludGVycnVwdCkKIAlhcGljaW50ZXJydXB0IEVSUk9SX0FQSUNfVkVDVE9SLHNtcF9lcnJvcl9pbnRlcnJ1cHQKIEVORChlcnJvcl9pbnRlcnJ1cHQpCkBAIC03MzMsNiArODQyLDcgQEAKICAqLyAJCQogCS5tYWNybyB6ZXJvZW50cnkgc3ltCiAJSU5UUl9GUkFNRQorCVBBUkFWSVJUX0FESlVTVF9FWENFUFRJT05fRlJBTUUKIAlwdXNocSAkMAkvKiBwdXNoIGVycm9yIGNvZGUvb2xkcmF4ICovIAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CiAJcHVzaHEgJXJheAkvKiBwdXNoIHJlYWwgb2xkcmF4IHRvIHRoZSByZGkgc2xvdCAqLyAKQEAgLTc0NSw2ICs4NTUsNyBAQAogCiAJLm1hY3JvIGVycm9yZW50cnkgc3ltCiAJWENQVF9GUkFNRQorCVBBUkFWSVJUX0FESlVTVF9FWENFUFRJT05fRlJBTUUKIAlwdXNocSAlcmF4CiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKIAlDRklfUkVMX09GRlNFVCByYXgsMApAQCAtODE0LDcgKzkyNSw3IEBACiAJam1wIGlycV9yZXR1cm4KIHBhcmFub2lkX3VzZXJzcGFjZVx0cmFjZToKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVieAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVieAogCWFuZGwgJF9USUZfV09SS19NQVNLLCVlYngKIAlqeiBwYXJhbm9pZF9zd2FwZ3NcdHJhY2UKIAltb3ZxICVyc3AsJXJkaQkJCS8qICZwdF9yZWdzICovCkBAIC05MTIsNyArMTAyMyw3IEBACiAJdGVzdGwgJWVheCwlZWF4CiAJam5lICByZXRpbnRfa2VybmVsCiAJTE9DS0RFUF9TWVNfRVhJVF9JUlEKLQltb3ZsICB0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpLCVlZHgKKwltb3ZsICBUSV9mbGFncyglcmN4KSwlZWR4CiAJbW92bCAgJF9USUZfV09SS19NQVNLLCVlZGkKIAlhbmRsICAlZWRpLCVlZHgKIAlqbnogIHJldGludF9jYXJlZnVsCkBAIC05MjYsMTEgKzEwMzcsMTEgQEAKIAkgICBpcmV0IHJ1biB3aXRoIGtlcm5lbCBncyBhZ2Fpbiwgc28gZG9uJ3Qgc2V0IHRoZSB1c2VyIHNwYWNlIGZsYWcuCiAJICAgQiBzdGVwcGluZyBLOHMgc29tZXRpbWVzIHJlcG9ydCBhbiB0cnVuY2F0ZWQgUklQIGZvciBJUkVUIAogCSAgIGV4Y2VwdGlvbnMgcmV0dXJuaW5nIHRvIGNvbXBhdCBtb2RlLiBDaGVjayBmb3IgdGhlc2UgaGVyZSB0b28uICovCi0JbGVhcSBpcnFfcmV0dXJuKCVyaXApLCVyYnAKLQljbXBxICVyYnAsUklQKCVyc3ApIAorCWxlYXEgaXJxX3JldHVybiglcmlwKSwlcmN4CisJY21wcSAlcmN4LFJJUCglcnNwKQogCWplICAgZXJyb3Jfc3dhcGdzCi0JbW92bCAlZWJwLCVlYnAJLyogemVybyBleHRlbmQgKi8KLQljbXBxICVyYnAsUklQKCVyc3ApIAorCW1vdmwgJWVjeCwlZWN4CS8qIHplcm8gZXh0ZW5kICovCisJY21wcSAlcmN4LFJJUCglcnNwKQogCWplICAgZXJyb3Jfc3dhcGdzCiAJY21wcSAkZ3NfY2hhbmdlLFJJUCglcnNwKQogICAgICAgICBqZSAgIGVycm9yX3N3YXBncwpAQCAtOTM5LDcgKzEwNTAsNyBAQAogCQogICAgICAgIC8qIFJlbG9hZCBncyBzZWxlY3RvciB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZyAqLwogICAgICAgIC8qIGVkaTogIG5ldyBzZWxlY3RvciAqLyAKLUVOVFJZKGxvYWRfZ3NfaW5kZXgpCitFTlRSWShuYXRpdmVfbG9hZF9nc19pbmRleCkKIAlDRklfU1RBUlRQUk9DCiAJcHVzaGYKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOApAQCAtOTUzLDcgKzEwNjQsNyBAQAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAogICAgICAgICByZXQKIAlDRklfRU5EUFJPQwotRU5EUFJPQyhsb2FkX2dzX2luZGV4KQorRU5EUFJPQyhuYXRpdmVfbG9hZF9nc19pbmRleCkKICAgICAgICAKICAgICAgICAgLnNlY3Rpb24gX19leF90YWJsZSwiYSIKICAgICAgICAgLmFsaWduIDgKQEAgLTExMjAsMTAgKzEyMzEsNiBAQAogCXplcm9lbnRyeSBkb19jb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4KIEVORChjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pCiAKLUVOVFJZKHJlc2VydmVkKQotCXplcm9lbnRyeSBkb19yZXNlcnZlZAotRU5EKHJlc2VydmVkKQotCiAJLyogcnVucyBvbiBleGNlcHRpb24gc3RhY2sgKi8KIEVOVFJZKGRvdWJsZV9mYXVsdCkKIAlYQ1BUX0ZSQU1FCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIxMTVjZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9mdHJhY2UuYwpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvZGUgZm9yIHJlcGxhY2luZyBmdHJhY2UgY2FsbHMgd2l0aCBqdW1wcy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGFua3MgZ29lcyB0byBJbmdvIE1vbG5hciwgZm9yIHN1Z2dlc3RpbmcgdGhlIGlkZWEuCisgKiBNYXRoaWV1IERlc25veWVycywgZm9yIHN1Z2dlc3RpbmcgcG9zdHBvbmluZyB0aGUgbW9kaWZpY2F0aW9ucy4KKyAqIEFyamFuIHZhbiBkZSBWZW4sIGZvciBrZWVwaW5nIG1lIHN0cmFpZ2h0LCBhbmQgZXhwbGFpbmluZyB0byBtZQorICogdGhlIGRhbmdlcnMgb2YgbW9kaWZ5aW5nIGNvZGUgb24gdGhlIHJ1bi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9oYXJkaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworCisvKiBMb25nIGlzIGZpbmUsIGV2ZW4gaWYgaXQgaXMgb25seSA0IGJ5dGVzIDstKSAqLworc3RhdGljIGxvbmcgKmZ0cmFjZV9ub3A7CisKK3VuaW9uIGZ0cmFjZV9jb2RlX3VuaW9uIHsKKwljaGFyIGNvZGVbTUNPVU5UX0lOU05fU0laRV07CisJc3RydWN0IHsKKwkJY2hhciBlODsKKwkJaW50IG9mZnNldDsKKwl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworfTsKKworCitzdGF0aWMgaW50IG5vdHJhY2UgZnRyYWNlX2NhbGNfb2Zmc2V0KGxvbmcgaXAsIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKGludCkoYWRkciAtIGlwKTsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKilmdHJhY2Vfbm9wOworfQorCitub3RyYWNlIHVuc2lnbmVkIGNoYXIgKmZ0cmFjZV9jYWxsX3JlcGxhY2UodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0YXRpYyB1bmlvbiBmdHJhY2VfY29kZV91bmlvbiBjYWxjOworCisJY2FsYy5lOAkJPSAweGU4OworCWNhbGMub2Zmc2V0CT0gZnRyYWNlX2NhbGNfb2Zmc2V0KGlwICsgTUNPVU5UX0lOU05fU0laRSwgYWRkcik7CisKKwkvKgorCSAqIE5vIGxvY2tpbmcgbmVlZGVkLCB0aGlzIG11c3QgYmUgY2FsbGVkIHZpYSBrc3RvcF9tYWNoaW5lCisJICogd2hpY2ggaW4gZXNzZW5jZSBpcyBsaWtlIHJ1bm5pbmcgb24gYSB1bmlwcm9jZXNzb3IgbWFjaGluZS4KKwkgKi8KKwlyZXR1cm4gY2FsYy5jb2RlOworfQorCitub3RyYWNlIGludAorZnRyYWNlX21vZGlmeV9jb2RlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGNoYXIgKm9sZF9jb2RlLAorCQkgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSkKK3sKKwl1bnNpZ25lZCByZXBsYWNlZDsKKwl1bnNpZ25lZCBvbGQgPSAqKHVuc2lnbmVkICopb2xkX2NvZGU7IC8qIDQgYnl0ZXMgKi8KKwl1bnNpZ25lZCBuZXcgPSAqKHVuc2lnbmVkICopbmV3X2NvZGU7IC8qIDQgYnl0ZXMgKi8KKwl1bnNpZ25lZCBjaGFyIG5ld2NoID0gbmV3X2NvZGVbNF07CisJaW50IGZhdWx0ZWQgPSAwOworCisJLyoKKwkgKiBOb3RlOiBEdWUgdG8gbW9kdWxlcyBhbmQgX19pbml0LCBjb2RlIGNhbgorCSAqICBkaXNhcHBlYXIgYW5kIGNoYW5nZSwgd2UgbmVlZCB0byBwcm90ZWN0IGFnYWluc3QgZmF1bHRpbmcKKwkgKiAgYXMgd2VsbCBhcyBjb2RlIGNoYW5naW5nLgorCSAqCisJICogTm8gcmVhbCBsb2NraW5nIG5lZWRlZCwgdGhpcyBjb2RlIGlzIHJ1biB0aHJvdWdoCisJICoga3N0b3BfbWFjaGluZS4KKwkgKi8KKwlhc20gdm9sYXRpbGUgKAorCQkiMTogbG9ja1xuIgorCQkiICAgY21weGNoZyAlMywgKCUyKVxuIgorCQkiICAgam56IDJmXG4iCisJCSIgICBtb3ZiICViNCwgNCglMilcbiIKKwkJIjI6XG4iCisJCSIuc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuIgorCQkiMzoJbW92bCAkMSwgJTBcbiIKKwkJIglqbXAgMmJcbiIKKwkJIi5wcmV2aW91c1xuIgorCQlfQVNNX0VYVEFCTEUoMWIsIDNiKQorCQk6ICI9ciIoZmF1bHRlZCksICI9YSIocmVwbGFjZWQpCisJCTogInIiKGlwKSwgInIiKG5ldyksICJjIihuZXdjaCksCisJCSAgIjAiKGZhdWx0ZWQpLCAiYSIob2xkKQorCQk6ICJtZW1vcnkiKTsKKwlzeW5jX2NvcmUoKTsKKworCWlmIChyZXBsYWNlZCAhPSBvbGQgJiYgcmVwbGFjZWQgIT0gbmV3KQorCQlmYXVsdGVkID0gMjsKKworCXJldHVybiBmYXVsdGVkOworfQorCitub3RyYWNlIGludCBmdHJhY2VfdXBkYXRlX2Z0cmFjZV9mdW5jKGZ0cmFjZV9mdW5jX3QgZnVuYykKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKHVuc2lnbmVkIGxvbmcpKCZmdHJhY2VfY2FsbCk7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisJaW50IHJldDsKKworCW1lbWNweShvbGQsICZmdHJhY2VfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKHVuc2lnbmVkIGxvbmcpZnVuYyk7CisJcmV0ID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7CisKKwlyZXR1cm4gcmV0OworfQorCitub3RyYWNlIGludCBmdHJhY2VfbWNvdW50X3NldCh1bnNpZ25lZCBsb25nICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAobG9uZykoJm1jb3VudF9jYWxsKTsKKwl1bnNpZ25lZCBsb25nICphZGRyID0gZGF0YTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKworCS8qCisJICogUmVwbGFjZSB0aGUgbWNvdW50IHN0dWIgd2l0aCBhIHBvaW50ZXIgdG8gdGhlCisJICogaXAgcmVjb3JkZXIgZnVuY3Rpb24uCisJICovCisJbWVtY3B5KG9sZCwgJm1jb3VudF9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAqYWRkcik7CisJKmFkZHIgPSBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKKworCXJldHVybiAwOworfQorCitpbnQgX19pbml0IGZ0cmFjZV9keW5fYXJjaF9pbml0KHZvaWQgKmRhdGEpCit7CisJY29uc3QgdW5zaWduZWQgY2hhciAqY29uc3QgKm5vcHRhYmxlID0gZmluZF9ub3BfdGFibGUoKTsKKworCS8qIFRoaXMgaXMgcnVubmluZyBpbiBrc3RvcF9tYWNoaW5lICovCisKKwlmdHJhY2VfbWNvdW50X3NldChkYXRhKTsKKworCWZ0cmFjZV9ub3AgPSAodW5zaWduZWQgbG9uZyAqKW5vcHRhYmxlW01DT1VOVF9JTlNOX1NJWkVdOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZ2VuYXBpY182NC5jIGIvYXJjaC94ODYva2VybmVsL2dlbmFwaWNfNjQuYwppbmRleCBjYmFhZjY5Li4xZmE4YmU1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZ2VuYXBpY182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9nZW5hcGljXzY0LmMKQEAgLTUxLDcgKzUxLDcgQEAKIAllbHNlCiAjZW5kaWYKIAotCWlmIChudW1fcG9zc2libGVfY3B1cygpIDw9IDgpCisJaWYgKG1heF9waHlzaWNhbF9hcGljaWQgPCA4KQogCQlnZW5hcGljID0gJmFwaWNfZmxhdDsKIAllbHNlCiAJCWdlbmFwaWMgPSAmYXBpY19waHlzZmxhdDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jIGIvYXJjaC94ODYva2VybmVsL2dlbngyYXBpY191dl94LmMKaW5kZXggZWJmMTM5MC4uNzExZjExYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2dlbngyYXBpY191dl94LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2dlbngyYXBpY191dl94LmMKQEAgLTUsOSArNSwxMCBAQAogICoKICAqIFNHSSBVViBBUElDIGZ1bmN0aW9ucyAobm90ZTogbm90IGFuIEludGVsIGNvbXBhdGlibGUgQVBJQykKICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpAQCAtMjAsNiArMjEsNyBAQAogI2luY2x1ZGUgPGFzbS9zbXAuaD4KICNpbmNsdWRlIDxhc20vaXBpLmg+CiAjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS91di91dl9tbXJzLmg+CiAjaW5jbHVkZSA8YXNtL3V2L3V2X2h1Yi5oPgogCkBAIC01NSwzNyArNTcsMzcgQEAKIGludCB1dl93YWtldXBfc2Vjb25kYXJ5KGludCBwaHlzX2FwaWNpZCwgdW5zaWduZWQgaW50IHN0YXJ0X3JpcCkKIHsKIAl1bnNpZ25lZCBsb25nIHZhbDsKLQlpbnQgbmFzaWQ7CisJaW50IHBub2RlOwogCi0JbmFzaWQgPSB1dl9hcGljaWRfdG9fbmFzaWQocGh5c19hcGljaWQpOworCXBub2RlID0gdXZfYXBpY2lkX3RvX3Bub2RlKHBoeXNfYXBpY2lkKTsKIAl2YWwgPSAoMVVMIDw8IFVWSF9JUElfSU5UX1NFTkRfU0hGVCkgfAogCSAgICAocGh5c19hcGljaWQgPDwgVVZIX0lQSV9JTlRfQVBJQ19JRF9TSEZUKSB8CiAJICAgICgoKGxvbmcpc3RhcnRfcmlwIDw8IFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUKSA+PiAxMikgfAogCSAgICBBUElDX0RNX0lOSVQ7Ci0JdXZfd3JpdGVfZ2xvYmFsX21tcjY0KG5hc2lkLCBVVkhfSVBJX0lOVCwgdmFsKTsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsIFVWSF9JUElfSU5ULCB2YWwpOwogCW1kZWxheSgxMCk7CiAKIAl2YWwgPSAoMVVMIDw8IFVWSF9JUElfSU5UX1NFTkRfU0hGVCkgfAogCSAgICAocGh5c19hcGljaWQgPDwgVVZIX0lQSV9JTlRfQVBJQ19JRF9TSEZUKSB8CiAJICAgICgoKGxvbmcpc3RhcnRfcmlwIDw8IFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUKSA+PiAxMikgfAogCSAgICBBUElDX0RNX1NUQVJUVVA7Ci0JdXZfd3JpdGVfZ2xvYmFsX21tcjY0KG5hc2lkLCBVVkhfSVBJX0lOVCwgdmFsKTsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsIFVWSF9JUElfSU5ULCB2YWwpOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCB1dl9zZW5kX0lQSV9vbmUoaW50IGNwdSwgaW50IHZlY3RvcikKIHsKIAl1bnNpZ25lZCBsb25nIHZhbCwgYXBpY2lkLCBsYXBpY2lkOwotCWludCBuYXNpZDsKKwlpbnQgcG5vZGU7CiAKIAlhcGljaWQgPSBwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpOyAvKiBaWlogLSBjYWNoZSBub2RlLWxvY2FsID8gKi8KIAlsYXBpY2lkID0gYXBpY2lkICYgMHgzZjsJCS8qIFpaWiBtYWNybyBuZWVkZWQgKi8KLQluYXNpZCA9IHV2X2FwaWNpZF90b19uYXNpZChhcGljaWQpOworCXBub2RlID0gdXZfYXBpY2lkX3RvX3Bub2RlKGFwaWNpZCk7CiAJdmFsID0KIAkgICAgKDFVTCA8PCBVVkhfSVBJX0lOVF9TRU5EX1NIRlQpIHwgKGxhcGljaWQgPDwKIAkJCQkJICAgICAgVVZIX0lQSV9JTlRfQVBJQ19JRF9TSEZUKSB8CiAJICAgICh2ZWN0b3IgPDwgVVZIX0lQSV9JTlRfVkVDVE9SX1NIRlQpOwotCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChuYXNpZCwgVVZIX0lQSV9JTlQsIHZhbCk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfSVBJX0lOVCwgdmFsKTsKIH0KIAogc3RhdGljIHZvaWQgdXZfc2VuZF9JUElfbWFzayhjcHVtYXNrX3QgbWFzaywgaW50IHZlY3RvcikKQEAgLTE1OSwzOSArMTYxLDE0NiBAQAogCS5waHlzX3BrZ19pZCA9IHBoeXNfcGtnX2lkLAkvKiBGaXhtZSBaWlogKi8KIH07CiAKLXN0YXRpYyBfX2NwdWluaXQgdm9pZCBzZXRfeDJhcGljX2V4dHJhX2JpdHMoaW50IG5hc2lkKQorc3RhdGljIF9fY3B1aW5pdCB2b2lkIHNldF94MmFwaWNfZXh0cmFfYml0cyhpbnQgcG5vZGUpCiB7Ci0JX19nZXRfY3B1X3Zhcih4MmFwaWNfZXh0cmFfYml0cykgPSAoKG5hc2lkID4+IDEpIDw8IDYpOworCV9fZ2V0X2NwdV92YXIoeDJhcGljX2V4dHJhX2JpdHMpID0gKHBub2RlIDw8IDYpOwogfQogCiAvKgogICogQ2FsbGVkIG9uIGJvb3QgY3B1LgogICovCitzdGF0aWMgX19pbml0IGludCBib290X3Bub2RlX3RvX2JsYWRlKGludCBwbm9kZSkKK3sKKwlpbnQgYmxhZGU7CisKKwlmb3IgKGJsYWRlID0gMDsgYmxhZGUgPCB1dl9udW1fcG9zc2libGVfYmxhZGVzKCk7IGJsYWRlKyspCisJCWlmIChwbm9kZSA9PSB1dl9ibGFkZV9pbmZvW2JsYWRlXS5wbm9kZSkKKwkJCXJldHVybiBibGFkZTsKKwlCVUcoKTsKK30KKworc3RydWN0IHJlZGlyX2FkZHIgeworCXVuc2lnbmVkIGxvbmcgcmVkaXJlY3Q7CisJdW5zaWduZWQgbG9uZyBhbGlhczsKK307CisKKyNkZWZpbmUgREVTVF9TSElGVCBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18wX01NUl9ERVNUX0JBU0VfU0hGVAorCitzdGF0aWMgX19pbml0ZGF0YSBzdHJ1Y3QgcmVkaXJfYWRkciByZWRpcl9hZGRyc1tdID0geworCXtVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18wX01NUiwgVVZIX1NJX0FMSUFTMF9PVkVSTEFZX0NPTkZJR30sCisJe1VWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzFfTU1SLCBVVkhfU0lfQUxJQVMxX09WRVJMQVlfQ09ORklHfSwKKwl7VVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVIsIFVWSF9TSV9BTElBUzJfT1ZFUkxBWV9DT05GSUd9LAorfTsKKworc3RhdGljIF9faW5pdCB2b2lkIGdldF9sb3dtZW1fcmVkaXJlY3QodW5zaWduZWQgbG9uZyAqYmFzZSwgdW5zaWduZWQgbG9uZyAqc2l6ZSkKK3sKKwl1bmlvbiB1dmhfc2lfYWxpYXMwX292ZXJsYXlfY29uZmlnX3UgYWxpYXM7CisJdW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMl9tbXJfdSByZWRpcmVjdDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJlZGlyX2FkZHJzKTsgaSsrKSB7CisJCWFsaWFzLnYgPSB1dl9yZWFkX2xvY2FsX21tcihyZWRpcl9hZGRyc1tpXS5hbGlhcyk7CisJCWlmIChhbGlhcy5zLmJhc2UgPT0gMCkgeworCQkJKnNpemUgPSAoMVVMIDw8IGFsaWFzLnMubV9hbGlhcyk7CisJCQlyZWRpcmVjdC52ID0gdXZfcmVhZF9sb2NhbF9tbXIocmVkaXJfYWRkcnNbaV0ucmVkaXJlY3QpOworCQkJKmJhc2UgPSAodW5zaWduZWQgbG9uZylyZWRpcmVjdC5zLmRlc3RfYmFzZSA8PCBERVNUX1NISUZUOworCQkJcmV0dXJuOworCQl9CisJfQorCUJVRygpOworfQorCitzdGF0aWMgX19pbml0IHZvaWQgbWFwX2xvd19tbXJzKHZvaWQpCit7CisJaW5pdF9leHRyYV9tYXBwaW5nX3VjKFVWX0dMT0JBTF9NTVIzMl9CQVNFLCBVVl9HTE9CQUxfTU1SMzJfU0laRSk7CisJaW5pdF9leHRyYV9tYXBwaW5nX3VjKFVWX0xPQ0FMX01NUl9CQVNFLCBVVl9MT0NBTF9NTVJfU0laRSk7Cit9CisKK2VudW0gbWFwX3R5cGUge21hcF93YiwgbWFwX3VjfTsKKworc3RhdGljIHZvaWQgbWFwX2hpZ2goY2hhciAqaWQsIHVuc2lnbmVkIGxvbmcgYmFzZSwgaW50IHNoaWZ0LCBlbnVtIG1hcF90eXBlIG1hcF90eXBlKQoreworCXVuc2lnbmVkIGxvbmcgYnl0ZXMsIHBhZGRyOworCisJcGFkZHIgPSBiYXNlIDw8IHNoaWZ0OworCWJ5dGVzID0gKDFVTCA8PCBzaGlmdCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiVVY6IE1hcCAlc19ISSAweCVseCAtIDB4JWx4XG4iLCBpZCwgcGFkZHIsCisJICAgICAgIAkJCQkJcGFkZHIgKyBieXRlcyk7CisJaWYgKG1hcF90eXBlID09IG1hcF91YykKKwkJaW5pdF9leHRyYV9tYXBwaW5nX3VjKHBhZGRyLCBieXRlcyk7CisJZWxzZQorCQlpbml0X2V4dHJhX21hcHBpbmdfd2IocGFkZHIsIGJ5dGVzKTsKKworfQorc3RhdGljIF9faW5pdCB2b2lkIG1hcF9ncnVfaGlnaChpbnQgbWF4X3Bub2RlKQoreworCXVuaW9uIHV2aF9yaF9nYW1fZ3J1X292ZXJsYXlfY29uZmlnX21tcl91IGdydTsKKwlpbnQgc2hpZnQgPSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUOworCisJZ3J1LnYgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVIpOworCWlmIChncnUucy5lbmFibGUpCisJCW1hcF9oaWdoKCJHUlUiLCBncnUucy5iYXNlLCBzaGlmdCwgbWFwX3diKTsKK30KKworc3RhdGljIF9faW5pdCB2b2lkIG1hcF9jb25maWdfaGlnaChpbnQgbWF4X3Bub2RlKQoreworCXVuaW9uIHV2aF9yaF9nYW1fY2ZnX292ZXJsYXlfY29uZmlnX21tcl91IGNmZzsKKwlpbnQgc2hpZnQgPSBVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUOworCisJY2ZnLnYgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVIpOworCWlmIChjZmcucy5lbmFibGUpCisJCW1hcF9oaWdoKCJDT05GSUciLCBjZmcucy5iYXNlLCBzaGlmdCwgbWFwX3VjKTsKK30KKworc3RhdGljIF9faW5pdCB2b2lkIG1hcF9tbXJfaGlnaChpbnQgbWF4X3Bub2RlKQoreworCXVuaW9uIHV2aF9yaF9nYW1fbW1yX292ZXJsYXlfY29uZmlnX21tcl91IG1tcjsKKwlpbnQgc2hpZnQgPSBVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUOworCisJbW1yLnYgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVIpOworCWlmIChtbXIucy5lbmFibGUpCisJCW1hcF9oaWdoKCJNTVIiLCBtbXIucy5iYXNlLCBzaGlmdCwgbWFwX3VjKTsKK30KKworc3RhdGljIF9faW5pdCB2b2lkIG1hcF9tbWlvaF9oaWdoKGludCBtYXhfcG5vZGUpCit7CisJdW5pb24gdXZoX3JoX2dhbV9tbWlvaF9vdmVybGF5X2NvbmZpZ19tbXJfdSBtbWlvaDsKKwlpbnQgc2hpZnQgPSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX1NIRlQ7CisKKwltbWlvaC52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVIpOworCWlmIChtbWlvaC5zLmVuYWJsZSkKKwkJbWFwX2hpZ2goIk1NSU9IIiwgbW1pb2gucy5iYXNlLCBzaGlmdCwgbWFwX3VjKTsKK30KKwogc3RhdGljIF9faW5pdCB2b2lkIHV2X3N5c3RlbV9pbml0KHZvaWQpCiB7CiAJdW5pb24gdXZoX3NpX2FkZHJfbWFwX2NvbmZpZ191IG1fbl9jb25maWc7Ci0JaW50IGJ5dGVzLCBuaWQsIGNwdSwgbGNwdSwgbmFzaWQsIGxhc3RfbmFzaWQsIGJsYWRlOwotCXVuc2lnbmVkIGxvbmcgbW1yX2Jhc2U7CisJdW5pb24gdXZoX25vZGVfaWRfdSBub2RlX2lkOworCXVuc2lnbmVkIGxvbmcgZ25vZGVfdXBwZXIsIGxvd21lbV9yZWRpcl9iYXNlLCBsb3dtZW1fcmVkaXJfc2l6ZTsKKwlpbnQgYnl0ZXMsIG5pZCwgY3B1LCBsY3B1LCBwbm9kZSwgYmxhZGUsIGksIGosIG1fdmFsLCBuX3ZhbDsKKwlpbnQgbWF4X3Bub2RlID0gMDsKKwl1bnNpZ25lZCBsb25nIG1tcl9iYXNlLCBwcmVzZW50OworCisJbWFwX2xvd19tbXJzKCk7CiAKIAltX25fY29uZmlnLnYgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfU0lfQUREUl9NQVBfQ09ORklHKTsKKwltX3ZhbCA9IG1fbl9jb25maWcucy5tX3NrdDsKKwluX3ZhbCA9IG1fbl9jb25maWcucy5uX3NrdDsKIAltbXJfYmFzZSA9CiAJICAgIHV2X3JlYWRfbG9jYWxfbW1yKFVWSF9SSF9HQU1fTU1SX09WRVJMQVlfQ09ORklHX01NUikgJgogCSAgICB+VVZfTU1SX0VOQUJMRTsKIAlwcmludGsoS0VSTl9ERUJVRyAiVVY6IGdsb2JhbCBNTVIgYmFzZSAweCVseFxuIiwgbW1yX2Jhc2UpOwogCi0JbGFzdF9uYXNpZCA9IC0xOwotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKLQkJbmlkID0gY3B1X3RvX25vZGUoY3B1KTsKLQkJbmFzaWQgPSB1dl9hcGljaWRfdG9fbmFzaWQocGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSk7Ci0JCWlmIChuYXNpZCAhPSBsYXN0X25hc2lkKQotCQkJdXZfcG9zc2libGVfYmxhZGVzKys7Ci0JCWxhc3RfbmFzaWQgPSBuYXNpZDsKLQl9CisJZm9yKGkgPSAwOyBpIDwgVVZIX05PREVfUFJFU0VOVF9UQUJMRV9ERVBUSDsgaSsrKQorCQl1dl9wb3NzaWJsZV9ibGFkZXMgKz0KKwkJICBod2VpZ2h0NjQodXZfcmVhZF9sb2NhbF9tbXIoIFVWSF9OT0RFX1BSRVNFTlRfVEFCTEUgKyBpICogOCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJVVjogRm91bmQgJWQgYmxhZGVzXG4iLCB1dl9udW1fcG9zc2libGVfYmxhZGVzKCkpOwogCiAJYnl0ZXMgPSBzaXplb2Yoc3RydWN0IHV2X2JsYWRlX2luZm8pICogdXZfbnVtX3Bvc3NpYmxlX2JsYWRlcygpOwogCXV2X2JsYWRlX2luZm8gPSBhbGxvY19ib290bWVtX3BhZ2VzKGJ5dGVzKTsKIAorCWdldF9sb3dtZW1fcmVkaXJlY3QoJmxvd21lbV9yZWRpcl9iYXNlLCAmbG93bWVtX3JlZGlyX3NpemUpOworCiAJYnl0ZXMgPSBzaXplb2YodXZfbm9kZV90b19ibGFkZVswXSkgKiBudW1fcG9zc2libGVfbm9kZXMoKTsKIAl1dl9ub2RlX3RvX2JsYWRlID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhieXRlcyk7CiAJbWVtc2V0KHV2X25vZGVfdG9fYmxhZGUsIDI1NSwgYnl0ZXMpOwpAQCAtMjAwLDQzICszMDksNjIgQEAKIAl1dl9jcHVfdG9fYmxhZGUgPSBhbGxvY19ib290bWVtX3BhZ2VzKGJ5dGVzKTsKIAltZW1zZXQodXZfY3B1X3RvX2JsYWRlLCAyNTUsIGJ5dGVzKTsKIAotCWxhc3RfbmFzaWQgPSAtMTsKLQlibGFkZSA9IC0xOwotCWxjcHUgPSAtMTsKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0JCW5pZCA9IGNwdV90b19ub2RlKGNwdSk7Ci0JCW5hc2lkID0gdXZfYXBpY2lkX3RvX25hc2lkKHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkpOwotCQlpZiAobmFzaWQgIT0gbGFzdF9uYXNpZCkgewotCQkJYmxhZGUrKzsKLQkJCWxjcHUgPSAtMTsKLQkJCXV2X2JsYWRlX2luZm9bYmxhZGVdLm5yX3Bvc2libGVfY3B1cyA9IDA7CisJYmxhZGUgPSAwOworCWZvciAoaSA9IDA7IGkgPCBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX0RFUFRIOyBpKyspIHsKKwkJcHJlc2VudCA9IHV2X3JlYWRfbG9jYWxfbW1yKFVWSF9OT0RFX1BSRVNFTlRfVEFCTEUgKyBpICogOCk7CisJCWZvciAoaiA9IDA7IGogPCA2NDsgaisrKSB7CisJCQlpZiAoIXRlc3RfYml0KGosICZwcmVzZW50KSkKKwkJCQljb250aW51ZTsKKwkJCXV2X2JsYWRlX2luZm9bYmxhZGVdLnBub2RlID0gKGkgKiA2NCArIGopOworCQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubnJfcG9zc2libGVfY3B1cyA9IDA7CiAJCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9vbmxpbmVfY3B1cyA9IDA7CisJCQlibGFkZSsrOwogCQl9Ci0JCWxhc3RfbmFzaWQgPSBuYXNpZDsKLQkJbGNwdSsrOworCX0KIAotCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bV92YWwgPSBtX25fY29uZmlnLnMubV9za3Q7Ci0JCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5uX3ZhbCA9IG1fbl9jb25maWcucy5uX3NrdDsKKwlub2RlX2lkLnYgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfTk9ERV9JRCk7CisJZ25vZGVfdXBwZXIgPSAoKCh1bnNpZ25lZCBsb25nKW5vZGVfaWQucy5ub2RlX2lkKSAmCisJCSAgICAgICB+KCgxIDw8IG5fdmFsKSAtIDEpKSA8PCBtX3ZhbDsKKworCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgeworCQluaWQgPSBjcHVfdG9fbm9kZShjcHUpOworCQlwbm9kZSA9IHV2X2FwaWNpZF90b19wbm9kZShwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpKTsKKwkJYmxhZGUgPSBib290X3Bub2RlX3RvX2JsYWRlKHBub2RlKTsKKwkJbGNwdSA9IHV2X2JsYWRlX2luZm9bYmxhZGVdLm5yX3Bvc3NpYmxlX2NwdXM7CisJCXV2X2JsYWRlX2luZm9bYmxhZGVdLm5yX3Bvc3NpYmxlX2NwdXMrKzsKKworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bG93bWVtX3JlbWFwX2Jhc2UgPSBsb3dtZW1fcmVkaXJfYmFzZTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmxvd21lbV9yZW1hcF90b3AgPQorCQkJCQlsb3dtZW1fcmVkaXJfYmFzZSArIGxvd21lbV9yZWRpcl9zaXplOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bV92YWwgPSBtX3ZhbDsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm5fdmFsID0gbV92YWw7CiAJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5udW1hX2JsYWRlX2lkID0gYmxhZGU7CiAJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5ibGFkZV9wcm9jZXNzb3JfaWQgPSBsY3B1OwotCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bG9jYWxfbmFzaWQgPSBuYXNpZDsKLQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmdub2RlX3VwcGVyID0KLQkJICAgIG5hc2lkICYgfigoMSA8PCB1dl9odWJfaW5mby0+bl92YWwpIC0gMSk7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5wbm9kZSA9IHBub2RlOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+cG5vZGVfbWFzayA9ICgxIDw8IG5fdmFsKSAtIDE7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5ncGFfbWFzayA9ICgxIDw8IChtX3ZhbCArIG5fdmFsKSkgLSAxOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+Z25vZGVfdXBwZXIgPSBnbm9kZV91cHBlcjsKIAkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmdsb2JhbF9tbXJfYmFzZSA9IG1tcl9iYXNlOwogCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+Y29oZXJlbmN5X2RvbWFpbl9udW1iZXIgPSAwOy8qIFpaWiAqLwotCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5uYXNpZCA9IG5hc2lkOwotCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NpYmxlX2NwdXMrKzsKIAkJdXZfbm9kZV90b19ibGFkZVtuaWRdID0gYmxhZGU7CiAJCXV2X2NwdV90b19ibGFkZVtjcHVdID0gYmxhZGU7CisJCW1heF9wbm9kZSA9IG1heChwbm9kZSwgbWF4X3Bub2RlKTsKIAotCQlwcmludGsoS0VSTl9ERUJVRyAiVVYgY3B1ICVkLCBhcGljaWQgMHgleCwgbmFzaWQgJWQsIG5pZCAlZFxuIiwKLQkJICAgICAgIGNwdSwgcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSwgbmFzaWQsIG5pZCk7Ci0JCXByaW50ayhLRVJOX0RFQlVHICJVViAgIGxjcHUgJWQsIGJsYWRlICVkXG4iLCBsY3B1LCBibGFkZSk7CisJCXByaW50ayhLRVJOX0RFQlVHICJVVjogY3B1ICVkLCBhcGljaWQgMHgleCwgcG5vZGUgJWQsIG5pZCAlZCwgIgorCQkJImxjcHUgJWQsIGJsYWRlICVkXG4iLAorCQkJY3B1LCBwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpLCBwbm9kZSwgbmlkLAorCQkJbGNwdSwgYmxhZGUpOwogCX0KKworCW1hcF9ncnVfaGlnaChtYXhfcG5vZGUpOworCW1hcF9tbXJfaGlnaChtYXhfcG5vZGUpOworCW1hcF9jb25maWdfaGlnaChtYXhfcG5vZGUpOworCW1hcF9tbWlvaF9oaWdoKG1heF9wbm9kZSk7CiB9CiAKIC8qCiAgKiBDYWxsZWQgb24gZWFjaCBjcHUgdG8gaW5pdGlhbGl6ZSB0aGUgcGVyX2NwdSBVViBkYXRhIGFyZWEuCisgKiAJWlpaIGhvdHBsdWcgbm90IHN1cHBvcnRlZCB5ZXQKICAqLwogdm9pZCBfX2NwdWluaXQgdXZfY3B1X2luaXQodm9pZCkKIHsKQEAgLTI0Niw1ICszNzQsNSBAQAogCXV2X2JsYWRlX2luZm9bdXZfbnVtYV9ibGFkZV9pZCgpXS5ucl9vbmxpbmVfY3B1cysrOwogCiAJaWYgKGdldF91dl9zeXN0ZW1fdHlwZSgpID09IFVWX05PTl9VTklRVUVfQVBJQykKLQkJc2V0X3gyYXBpY19leHRyYV9iaXRzKHV2X2h1Yl9pbmZvLT5sb2NhbF9uYXNpZCk7CisJCXNldF94MmFwaWNfZXh0cmFfYml0cyh1dl9odWJfaW5mby0+cG5vZGUpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2dlb2RlXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZ2VvZGVfMzIuYwppbmRleCBlOGVkZDYzLi45YjA4ZTg1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZ2VvZGVfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZ2VvZGVfMzIuYwpAQCAtMTY2LDYgKzE2Niw4IEBACiAJc3RhdGljIGludCBoYXNfdnNhMiA9IC0xOwogCiAJaWYgKGhhc192c2EyID09IC0xKSB7CisJCXUxNiB2YWw7CisKIAkJLyoKIAkJICogVGhlIFZTQSBoYXMgdmlydHVhbCByZWdpc3RlcnMgdGhhdCB3ZSBjYW4gcXVlcnkgZm9yIGEKIAkJICogc2lnbmF0dXJlLgpAQCAtMTczLDcgKzE3NSw4IEBACiAJCW91dHcoVlNBX1ZSX1VOTE9DSywgVlNBX1ZSQ19JTkRFWCk7CiAJCW91dHcoVlNBX1ZSX1NJR05BVFVSRSwgVlNBX1ZSQ19JTkRFWCk7CiAKLQkJaGFzX3ZzYTIgPSAoaW53KFZTQV9WUkNfREFUQSkgPT0gVlNBX1NJRyk7CisJCXZhbCA9IGludyhWU0FfVlJDX0RBVEEpOworCQloYXNfdnNhMiA9ICh2YWwgPT0gQU1EX1ZTQV9TSUcgfHwgdmFsID09IEdTV19WU0FfU0lHKTsKIAl9CiAKIAlyZXR1cm4gaGFzX3ZzYTI7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZC5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTY2YmQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQuYwpAQCAtMCwwICsxLDU1IEBACisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorCisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL2Jpb3NfZWJkYS5oPgorCisjZGVmaW5lIEJJT1NfTE9XTUVNX0tJTE9CWVRFUyAweDQxMworCisvKgorICogVGhlIEJJT1MgcGxhY2VzIHRoZSBFQkRBL1hCREEgYXQgdGhlIHRvcCBvZiBjb252ZW50aW9uYWwKKyAqIG1lbW9yeSwgYW5kIHVzdWFsbHkgZGVjcmVhc2VzIHRoZSByZXBvcnRlZCBhbW91bnQgb2YKKyAqIGNvbnZlbnRpb25hbCBtZW1vcnkgKGludCAweDEyKSB0b28uIFRoaXMgYWxzbyBjb250YWlucyBhCisgKiB3b3JrYXJvdW5kIGZvciBEZWxsIHN5c3RlbXMgdGhhdCBuZWdsZWN0IHRvIHJlc2VydmUgRUJEQS4KKyAqIFRoZSBzYW1lIHdvcmthcm91bmQgYWxzbyBhdm9pZHMgYSBwcm9ibGVtIHdpdGggdGhlIEFNRDc2OE1QWAorICogY2hpcHNldDogcmVzZXJ2ZSBhIHBhZ2UgYmVmb3JlIFZHQSB0byBwcmV2ZW50IFBDSSBwcmVmZXRjaAorICogaW50byBpdCAoZXJyYXRhICM1NikuIFVzdWFsbHkgdGhlIHBhZ2UgaXMgcmVzZXJ2ZWQgYW55d2F5cywKKyAqIHVubGVzcyB5b3UgaGF2ZSBubyBQUy8yIG1vdXNlIHBsdWdnZWQgaW4uCisgKi8KK3ZvaWQgX19pbml0IHJlc2VydmVfZWJkYV9yZWdpb24odm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgbG93bWVtLCBlYmRhX2FkZHI7CisKKwkvKiBUbyBkZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSBFQkRBIGFuZCB0aGUgKi8KKwkvKiBlbmQgb2YgY29udmVudGlvbmFsIG1lbW9yeSwgd2UgbmVlZCB0byBsb29rIGF0ICovCisJLyogdGhlIEJJT1MgZGF0YSBhcmVhLiBJbiBhIHBhcmF2aXJ0dWFsIGVudmlyb25tZW50ICovCisJLyogdGhhdCBhcmVhIGlzIGFic2VudC4gV2UnbGwganVzdCBoYXZlIHRvIGFzc3VtZSAqLworCS8qIHRoYXQgdGhlIHBhcmF2aXJ0IGNhc2UgY2FuIGhhbmRsZSBtZW1vcnkgc2V0dXAgKi8KKwkvKiBjb3JyZWN0bHksIHdpdGhvdXQgb3VyIGhlbHAuICovCisJaWYgKHBhcmF2aXJ0X2VuYWJsZWQoKSkKKwkJcmV0dXJuOworCisJLyogZW5kIG9mIGxvdyAoY29udmVudGlvbmFsKSBtZW1vcnkgKi8KKwlsb3dtZW0gPSAqKHVuc2lnbmVkIHNob3J0ICopX192YShCSU9TX0xPV01FTV9LSUxPQllURVMpOworCWxvd21lbSA8PD0gMTA7CisKKwkvKiBzdGFydCBvZiBFQkRBIGFyZWEgKi8KKwllYmRhX2FkZHIgPSBnZXRfYmlvc19lYmRhKCk7CisKKwkvKiBGaXh1cDogYmlvcyBwdXRzIGFuIEVCREEgaW4gdGhlIHRvcCA2NEsgc2VnbWVudCAqLworCS8qIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIGJ1dCBkb2VzIG5vdCBhZGp1c3QgbG93bWVtLiAqLworCWlmICgobG93bWVtIC0gZWJkYV9hZGRyKSA8PSAweDEwMDAwKQorCQlsb3dtZW0gPSBlYmRhX2FkZHI7CisKKwkvKiBGaXh1cDogYmlvcyBkb2VzIG5vdCByZXBvcnQgYW4gRUJEQSBhdCBhbGwuICovCisJLyogU29tZSBvbGQgRGVsbHMgc2VlbSB0byBuZWVkIDRrIGFueWhvdyAoYnVnemlsbGEgMjk5MCkgKi8KKwlpZiAoKGViZGFfYWRkciA9PSAwKSAmJiAobG93bWVtID49IDB4OWYwMDApKQorCQlsb3dtZW0gPSAweDlmMDAwOworCisJLyogUGFyYW5vaWE6IHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dC4uLiAqLworCWlmICgobG93bWVtID09IDApIHx8IChsb3dtZW0gPj0gMHgxMDAwMDApKQorCQlsb3dtZW0gPSAweDlmMDAwOworCisJLyogcmVzZXJ2ZSBhbGwgbWVtb3J5IGJldHdlZW4gbG93bWVtIGFuZCB0aGUgMU1CIG1hcmsgKi8KKwlyZXNlcnZlX2Vhcmx5X292ZXJsYXBfb2sobG93bWVtLCAweDEwMDAwMCwgIkJJT1MgcmVzZXJ2ZWQiKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkMzIuYwppbmRleCAzZGIwNTkwLi5mYTFkMjVkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQzMi5jCkBAIC04LDcgKzgsMzQgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3RhcnRfa2VybmVsLmg+CiAKKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKwogdm9pZCBfX2luaXQgaTM4Nl9zdGFydF9rZXJuZWwodm9pZCkKIHsKKwlyZXNlcnZlX2Vhcmx5KF9fcGFfc3ltYm9sKCZfdGV4dCksIF9fcGFfc3ltYm9sKCZfZW5kKSwgIlRFWFQgREFUQSBCU1MiKTsKKworI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAorCS8qIFJlc2VydmUgSU5JVFJEICovCisJaWYgKGJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlciAmJiBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZSkgeworCQl1NjQgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOworCQl1NjQgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7CisJCXU2NCByYW1kaXNrX2VuZCAgID0gcmFtZGlza19pbWFnZSArIHJhbWRpc2tfc2l6ZTsKKwkJcmVzZXJ2ZV9lYXJseShyYW1kaXNrX2ltYWdlLCByYW1kaXNrX2VuZCwgIlJBTURJU0siKTsKKwl9CisjZW5kaWYKKwlyZXNlcnZlX2Vhcmx5KGluaXRfcGdfdGFibGVzX3N0YXJ0LCBpbml0X3BnX3RhYmxlc19lbmQsCisJCQkiSU5JVF9QR19UQUJMRSIpOworCisJcmVzZXJ2ZV9lYmRhX3JlZ2lvbigpOworCisJLyoKKwkgKiBBdCB0aGlzIHBvaW50IGV2ZXJ5dGhpbmcgc3RpbGwgbmVlZGVkIGZyb20gdGhlIGJvb3QgbG9hZGVyCisJICogb3IgQklPUyBvciBrZXJuZWwgdGV4dCBzaG91bGQgYmUgZWFybHkgcmVzZXJ2ZWQgb3IgbWFya2VkIG5vdAorCSAqIFJBTSBpbiBlODIwLiBBbGwgb3RoZXIgbWVtb3J5IGlzIGZyZWUgZ2FtZS4KKwkgKi8KKwogCXN0YXJ0X2tlcm5lbCgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCmluZGV4IGUyNWM1N2IuLmM5NzgxOTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKQEAgLTI1LDYgKzI1LDIwIEBACiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CiAKKy8qIGJvb3QgY3B1IHBkYSAqLworc3RhdGljIHN0cnVjdCB4ODY2NF9wZGEgX2Jvb3RfY3B1X3BkYSBfX3JlYWRfbW9zdGx5OworCisjaWZkZWYgQ09ORklHX1NNUAorLyoKKyAqIFdlIGluc3RhbGwgYW4gZW1wdHkgY3B1X3BkYSBwb2ludGVyIHRhYmxlIHRvIGluZGljYXRlIHRvIGVhcmx5IHVzZXJzCisgKiAobnVtYV9zZXRfbm9kZSkgdGhhdCB0aGUgY3B1X3BkYSBwb2ludGVyIHRhYmxlIGZvciBjcHVzIG90aGVyIHRoYW4KKyAqIHRoZSBib290IGNwdSBpcyBub3QgeWV0IHNldHVwLgorICovCitzdGF0aWMgc3RydWN0IHg4NjY0X3BkYSAqX19jcHVfcGRhW05SX0NQVVNdIF9faW5pdGRhdGE7CisjZWxzZQorc3RhdGljIHN0cnVjdCB4ODY2NF9wZGEgKl9fY3B1X3BkYVtOUl9DUFVTXSBfX3JlYWRfbW9zdGx5OworI2VuZGlmCisKIHN0YXRpYyB2b2lkIF9faW5pdCB6YXBfaWRlbnRpdHlfbWFwcGluZ3Modm9pZCkKIHsKIAlwZ2RfdCAqcGdkID0gcGdkX29mZnNldF9rKDBVTCk7CkBAIC01MSw3NCArNjUsNiBAQAogCX0KIH0KIAotI2RlZmluZSBCSU9TX0xPV01FTV9LSUxPQllURVMgMHg0MTMKLQotLyoKLSAqIFRoZSBCSU9TIHBsYWNlcyB0aGUgRUJEQS9YQkRBIGF0IHRoZSB0b3Agb2YgY29udmVudGlvbmFsCi0gKiBtZW1vcnksIGFuZCB1c3VhbGx5IGRlY3JlYXNlcyB0aGUgcmVwb3J0ZWQgYW1vdW50IG9mCi0gKiBjb252ZW50aW9uYWwgbWVtb3J5IChpbnQgMHgxMikgdG9vLiBUaGlzIGFsc28gY29udGFpbnMgYQotICogd29ya2Fyb3VuZCBmb3IgRGVsbCBzeXN0ZW1zIHRoYXQgbmVnbGVjdCB0byByZXNlcnZlIEVCREEuCi0gKiBUaGUgc2FtZSB3b3JrYXJvdW5kIGFsc28gYXZvaWRzIGEgcHJvYmxlbSB3aXRoIHRoZSBBTUQ3NjhNUFgKLSAqIGNoaXBzZXQ6IHJlc2VydmUgYSBwYWdlIGJlZm9yZSBWR0EgdG8gcHJldmVudCBQQ0kgcHJlZmV0Y2gKLSAqIGludG8gaXQgKGVycmF0YSAjNTYpLiBVc3VhbGx5IHRoZSBwYWdlIGlzIHJlc2VydmVkIGFueXdheXMsCi0gKiB1bmxlc3MgeW91IGhhdmUgbm8gUFMvMiBtb3VzZSBwbHVnZ2VkIGluLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKQotewotCXVuc2lnbmVkIGludCBsb3dtZW0sIGViZGFfYWRkcjsKLQotCS8qIFRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gb2YgdGhlIEVCREEgYW5kIHRoZSAqLwotCS8qIGVuZCBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCB3ZSBuZWVkIHRvIGxvb2sgYXQgKi8KLQkvKiB0aGUgQklPUyBkYXRhIGFyZWEuIEluIGEgcGFyYXZpcnR1YWwgZW52aXJvbm1lbnQgKi8KLQkvKiB0aGF0IGFyZWEgaXMgYWJzZW50LiBXZSdsbCBqdXN0IGhhdmUgdG8gYXNzdW1lICovCi0JLyogdGhhdCB0aGUgcGFyYXZpcnQgY2FzZSBjYW4gaGFuZGxlIG1lbW9yeSBzZXR1cCAqLwotCS8qIGNvcnJlY3RseSwgd2l0aG91dCBvdXIgaGVscC4gKi8KLQlpZiAocGFyYXZpcnRfZW5hYmxlZCgpKQotCQlyZXR1cm47Ci0KLQkvKiBlbmQgb2YgbG93IChjb252ZW50aW9uYWwpIG1lbW9yeSAqLwotCWxvd21lbSA9ICoodW5zaWduZWQgc2hvcnQgKilfX3ZhKEJJT1NfTE9XTUVNX0tJTE9CWVRFUyk7Ci0JbG93bWVtIDw8PSAxMDsKLQotCS8qIHN0YXJ0IG9mIEVCREEgYXJlYSAqLwotCWViZGFfYWRkciA9IGdldF9iaW9zX2ViZGEoKTsKLQotCS8qIEZpeHVwOiBiaW9zIHB1dHMgYW4gRUJEQSBpbiB0aGUgdG9wIDY0SyBzZWdtZW50ICovCi0JLyogb2YgY29udmVudGlvbmFsIG1lbW9yeSwgYnV0IGRvZXMgbm90IGFkanVzdCBsb3dtZW0uICovCi0JaWYgKChsb3dtZW0gLSBlYmRhX2FkZHIpIDw9IDB4MTAwMDApCi0JCWxvd21lbSA9IGViZGFfYWRkcjsKLQotCS8qIEZpeHVwOiBiaW9zIGRvZXMgbm90IHJlcG9ydCBhbiBFQkRBIGF0IGFsbC4gKi8KLQkvKiBTb21lIG9sZCBEZWxscyBzZWVtIHRvIG5lZWQgNGsgYW55aG93IChidWd6aWxsYSAyOTkwKSAqLwotCWlmICgoZWJkYV9hZGRyID09IDApICYmIChsb3dtZW0gPj0gMHg5ZjAwMCkpCi0JCWxvd21lbSA9IDB4OWYwMDA7Ci0KLQkvKiBQYXJhbm9pYTogc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0Li4uICovCi0JaWYgKChsb3dtZW0gPT0gMCkgfHwgKGxvd21lbSA+PSAweDEwMDAwMCkpCi0JCWxvd21lbSA9IDB4OWYwMDA7Ci0KLQkvKiByZXNlcnZlIGFsbCBtZW1vcnkgYmV0d2VlbiBsb3dtZW0gYW5kIHRoZSAxTUIgbWFyayAqLwotCXJlc2VydmVfZWFybHkobG93bWVtLCAweDEwMDAwMCwgIkJJT1MgcmVzZXJ2ZWQiKTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfc2V0dXBfZGF0YSh2b2lkKQotewotCXN0cnVjdCBzZXR1cF9kYXRhICpkYXRhOwotCXVuc2lnbmVkIGxvbmcgcGFfZGF0YTsKLQljaGFyIGJ1ZlszMl07Ci0KLQlpZiAoYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPCAweDAyMDkpCi0JCXJldHVybjsKLQlwYV9kYXRhID0gYm9vdF9wYXJhbXMuaGRyLnNldHVwX2RhdGE7Ci0Jd2hpbGUgKHBhX2RhdGEpIHsKLQkJZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgc2l6ZW9mKCpkYXRhKSk7Ci0JCXNwcmludGYoYnVmLCAic2V0dXAgZGF0YSAleCIsIGRhdGEtPnR5cGUpOwotCQlyZXNlcnZlX2Vhcmx5KHBhX2RhdGEsIHBhX2RhdGErc2l6ZW9mKCpkYXRhKStkYXRhLT5sZW4sIGJ1Zik7Ci0JCXBhX2RhdGEgPSBkYXRhLT5uZXh0OwotCQllYXJseV9pb3VubWFwKGRhdGEsIHNpemVvZigqZGF0YSkpOwotCX0KLX0KLQogdm9pZCBfX2luaXQgeDg2XzY0X3N0YXJ0X2tlcm5lbChjaGFyICogcmVhbF9tb2RlX2RhdGEpCiB7CiAJaW50IGk7CkBAIC0xNTYsMTAgKzEwMiwxNyBAQAogCiAJZWFybHlfcHJpbnRrKCJLZXJuZWwgYWxpdmVcbiIpOwogCi0gCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspCi0gCQljcHVfcGRhKGkpID0gJmJvb3RfY3B1X3BkYVtpXTsKLQorCV9jcHVfcGRhID0gX19jcHVfcGRhOworCWNwdV9wZGEoMCkgPSAmX2Jvb3RfY3B1X3BkYTsKIAlwZGFfaW5pdCgwKTsKKworCWVhcmx5X3ByaW50aygiS2VybmVsIHJlYWxseSBhbGl2ZVxuIik7CisKKwl4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKHJlYWxfbW9kZV9kYXRhKTsKK30KKwordm9pZCBfX2luaXQgeDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucyhjaGFyICpyZWFsX21vZGVfZGF0YSkKK3sKIAljb3B5X2Jvb3RkYXRhKF9fdmEocmVhbF9tb2RlX2RhdGEpKTsKIAogCXJlc2VydmVfZWFybHkoX19wYV9zeW1ib2woJl90ZXh0KSwgX19wYV9zeW1ib2woJl9lbmQpLCAiVEVYVCBEQVRBIEJTUyIpOwpAQCAtMTc1LDcgKzEyOCw2IEBACiAjZW5kaWYKIAogCXJlc2VydmVfZWJkYV9yZWdpb24oKTsKLQlyZXNlcnZlX3NldHVwX2RhdGEoKTsKIAogCS8qCiAJICogQXQgdGhpcyBwb2ludCBldmVyeXRoaW5nIHN0aWxsIG5lZWRlZCBmcm9tIHRoZSBib290IGxvYWRlcgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKaW5kZXggYjJjYzczNy4uZjY3ZTkzNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCkBAIC0xODksMTEgKzE4OSwxMiBAQAogCSAqIHRoaXMgc3RhZ2UuCiAJICovCiAKLSNkZWZpbmUgS1BNRFMgKCgweDEwMDAwMDAwMC1fX1BBR0VfT0ZGU0VUKSA+PiAzMCkgLyogTnVtYmVyIG9mIGtlcm5lbCBQTURzICovCisjZGVmaW5lIEtQTURTICgoKC1fX1BBR0VfT0ZGU0VUKSA+PiAzMCkgJiAzKSAvKiBOdW1iZXIgb2Yga2VybmVsIFBNRHMgKi8KIAogCXhvcmwgJWVieCwlZWJ4CQkJCS8qICVlYnggaXMga2VwdCBhdCB6ZXJvICovCiAKIAltb3ZsICRwYShwZzApLCAlZWRpCisJbW92bCAlZWRpLCBwYShpbml0X3BnX3RhYmxlc19zdGFydCkKIAltb3ZsICRwYShzd2FwcGVyX3BnX3BtZCksICVlZHgKIAltb3ZsICRQVEVfQVRUUiwgJWVheAogMTA6CkBAIC0yMTksNiArMjIwLDggQEAKIAlqYiAxMGIKIDE6CiAJbW92bCAlZWRpLHBhKGluaXRfcGdfdGFibGVzX2VuZCkKKwlzaHJsICQxMiwgJWVheAorCW1vdmwgJWVheCwgcGEobWF4X3Bmbl9tYXBwZWQpCiAKIAkvKiBEbyBlYXJseSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZml4bWFwIGFyZWEgKi8KIAltb3ZsICRwYShzd2FwcGVyX3BnX2ZpeG1hcCkrUERFX0FUVFIsJWVheApAQCAtMjI4LDYgKzIzMSw3IEBACiBwYWdlX3BkZV9vZmZzZXQgPSAoX19QQUdFX09GRlNFVCA+PiAyMCk7CiAKIAltb3ZsICRwYShwZzApLCAlZWRpCisJbW92bCAlZWRpLCBwYShpbml0X3BnX3RhYmxlc19zdGFydCkKIAltb3ZsICRwYShzd2FwcGVyX3BnX2RpciksICVlZHgKIAltb3ZsICRQVEVfQVRUUiwgJWVheAogMTA6CkBAIC0yNDksNiArMjUzLDggQEAKIAljbXBsICVlYnAsJWVheAogCWpiIDEwYgogCW1vdmwgJWVkaSxwYShpbml0X3BnX3RhYmxlc19lbmQpCisJc2hybCAkMTIsICVlYXgKKwltb3ZsICVlYXgsIHBhKG1heF9wZm5fbWFwcGVkKQogCiAJLyogRG8gZWFybHkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGZpeG1hcCBhcmVhICovCiAJbW92bCAkcGEoc3dhcHBlcl9wZ19maXhtYXApK1BERV9BVFRSLCVlYXgKQEAgLTQ0NiwxMCArNDUyLDEzIEBACiAJamUgICAxZgogCW1vdmwgJChfX0tFUk5FTF9QRVJDUFUpLCAlZWF4CiAJbW92bCAlZWF4LCVmcwkJIyBzZXQgdGhpcyBjcHUncyBwZXJjcHUKLQlqbXAgaW5pdGlhbGl6ZV9zZWNvbmRhcnkgIyBhbGwgb3RoZXIgQ1BVcyBjYWxsIGluaXRpYWxpemVfc2Vjb25kYXJ5CisJbW92bCAoc3RhY2tfc3RhcnQpLCAlZXNwCiAxOgogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KLQlqbXAgaTM4Nl9zdGFydF9rZXJuZWwKKwlqbXAgKihpbml0aWFsX2NvZGUpCisuYWxpZ24gNAorRU5UUlkoaW5pdGlhbF9jb2RlKQorCS5sb25nIGkzODZfc3RhcnRfa2VybmVsCiAKIC8qCiAgKiBXZSBkZXBlbmQgb24gRVQgdG8gYmUgY29ycmVjdC4gVGhpcyBjaGVja3MgZm9yIDI4Ny8zODcuCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUwppbmRleCAxMGExOTU1Li5iMDdhYzdiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLWZsYWdzLmg+CiAKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKICNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KQEAgLTMxLDYgKzMyLDEzIEBACiAgKgogICovCiAKKyNkZWZpbmUgcHVkX2luZGV4KHgpCSgoKHgpID4+IFBVRF9TSElGVCkgJiAoUFRSU19QRVJfUFVELTEpKQorCitMNF9QQUdFX09GRlNFVCA9IHBnZF9pbmRleChfX1BBR0VfT0ZGU0VUKQorTDNfUEFHRV9PRkZTRVQgPSBwdWRfaW5kZXgoX19QQUdFX09GRlNFVCkKK0w0X1NUQVJUX0tFUk5FTCA9IHBnZF9pbmRleChfX1NUQVJUX0tFUk5FTF9tYXApCitMM19TVEFSVF9LRVJORUwgPSBwdWRfaW5kZXgoX19TVEFSVF9LRVJORUxfbWFwKQorCiAJLnRleHQKIAkuc2VjdGlvbiAudGV4dC5oZWFkCiAJLmNvZGU2NApAQCAtNzYsOCArODQsOCBAQAogCS8qIEZpeHVwIHRoZSBwaHlzaWNhbCBhZGRyZXNzZXMgaW4gdGhlIHBhZ2UgdGFibGUKIAkgKi8KIAlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArIDAoJXJpcCkKLQlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArICgyNTgqOCkoJXJpcCkKLQlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArICg1MTEqOCkoJXJpcCkKKwlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArIChMNF9QQUdFX09GRlNFVCo4KSglcmlwKQorCWFkZHEJJXJicCwgaW5pdF9sZXZlbDRfcGd0ICsgKEw0X1NUQVJUX0tFUk5FTCo4KSglcmlwKQogCiAJYWRkcQklcmJwLCBsZXZlbDNfaWRlbnRfcGd0ICsgMCglcmlwKQogCkBAIC0xMjgsNyArMTM2LDcgQEAKIAkvKiBGaXh1cCBwaHlzX2Jhc2UgKi8KIAlhZGRxCSVyYnAsIHBoeXNfYmFzZSglcmlwKQogCi0jaWZkZWYgQ09ORklHX1NNUAorI2lmZGVmIENPTkZJR19YODZfVFJBTVBPTElORQogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgMCglcmlwKQogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgKDUxMSo4KSglcmlwKQogI2VuZGlmCkBAIC0xNTQsOSArMTYyLDcgQEAKIAkgKi8KIAogCS8qIEVuYWJsZSBQQUUgbW9kZSBhbmQgUEdFICovCi0JeG9ycQklcmF4LCAlcmF4Ci0JYnRzcQkkNSwgJXJheAotCWJ0c3EJJDcsICVyYXgKKwltb3ZsCSQoWDg2X0NSNF9QQUUgfCBYODZfQ1I0X1BHRSksICVlYXgKIAltb3ZxCSVyYXgsICVjcjQKIAogCS8qIFNldHVwIGVhcmx5IGJvb3Qgc3RhZ2UgNCBsZXZlbCBwYWdldGFibGVzLiAqLwpAQCAtMTg0LDE5ICsxOTAsMTUgQEAKIDE6CXdybXNyCQkJCS8qIE1ha2UgY2hhbmdlcyBlZmZlY3RpdmUgKi8KIAogCS8qIFNldHVwIGNyMCAqLwotI2RlZmluZSBDUjBfUE0JCQkJMQkJLyogcHJvdGVjdGVkIG1vZGUgKi8KLSNkZWZpbmUgQ1IwX01QCQkJCSgxPDwxKQotI2RlZmluZSBDUjBfRVQJCQkJKDE8PDQpCi0jZGVmaW5lIENSMF9ORQkJCQkoMTw8NSkKLSNkZWZpbmUgQ1IwX1dQCQkJCSgxPDwxNikKLSNkZWZpbmUgQ1IwX0FNCQkJCSgxPDwxOCkKLSNkZWZpbmUgQ1IwX1BBR0lORyAJCQkoMTw8MzEpCi0JbW92bCAkQ1IwX1BNfENSMF9NUHxDUjBfRVR8Q1IwX05FfENSMF9XUHxDUjBfQU18Q1IwX1BBR0lORywlZWF4CisjZGVmaW5lIENSMF9TVEFURQkoWDg2X0NSMF9QRSB8IFg4Nl9DUjBfTVAgfCBYODZfQ1IwX0VUIHwgXAorCQkJIFg4Nl9DUjBfTkUgfCBYODZfQ1IwX1dQIHwgWDg2X0NSMF9BTSB8IFwKKwkJCSBYODZfQ1IwX1BHKQorCW1vdmwJJENSMF9TVEFURSwgJWVheAogCS8qIE1ha2UgY2hhbmdlcyBlZmZlY3RpdmUgKi8KIAltb3ZxCSVyYXgsICVjcjAKIAogCS8qIFNldHVwIGEgYm9vdCB0aW1lIHN0YWNrICovCi0JbW92cSBpbml0X3JzcCglcmlwKSwlcnNwCisJbW92cSBzdGFja19zdGFydCglcmlwKSwlcnNwCiAKIAkvKiB6ZXJvIEVGTEFHUyBhZnRlciBzZXR0aW5nIHJzcCAqLwogCXB1c2hxICQwCkBAIC0yMDgsNyArMjEwLDcgQEAKIAkgKiBhZGRyZXNzZXMgd2hlcmUgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgb24uIFdlIGhhdmUgdG8gZG8gdGhhdCBoZXJlCiAJICogYmVjYXVzZSBpbiAzMmJpdCB3ZSBjb3VsZG4ndCBsb2FkIGEgNjRiaXQgbGluZWFyIGFkZHJlc3MuCiAJICovCi0JbGdkdAljcHVfZ2R0X2Rlc2NyKCVyaXApCisJbGdkdAllYXJseV9nZHRfZGVzY3IoJXJpcCkKIAogCS8qIHNldCB1cCBkYXRhIHNlZ21lbnRzLiBhY3R1YWxseSAwIHdvdWxkIGRvIHRvbyAqLwogCW1vdmwgJF9fS0VSTkVMX0RTLCVlYXgKQEAgLTI1Nyw4ICsyNTksOSBAQAogCS5xdWFkCXg4Nl82NF9zdGFydF9rZXJuZWwKIAlfX0ZJTklUREFUQQogCi0JRU5UUlkoaW5pdF9yc3ApCisJRU5UUlkoc3RhY2tfc3RhcnQpCiAJLnF1YWQgIGluaXRfdGhyZWFkX3VuaW9uK1RIUkVBRF9TSVpFLTgKKwkud29yZCAgMAogCiBiYWRfYWRkcmVzczoKIAlqbXAgYmFkX2FkZHJlc3MKQEAgLTMyNywxMSArMzMwLDExIEBACiBFTlRSWShuYW1lKQogCiAvKiBBdXRvbWF0ZSB0aGUgY3JlYXRpb24gb2YgMSB0byAxIG1hcHBpbmcgcG1kIGVudHJpZXMgKi8KLSNkZWZpbmUgUE1EUyhTVEFSVCwgUEVSTSwgQ09VTlQpCQlcCi0JaSA9IDAgOwkJCQkJXAotCS5yZXB0IChDT1VOVCkgOwkJCQlcCi0JLnF1YWQJKFNUQVJUKSArIChpIDw8IDIxKSArIChQRVJNKSA7CVwKLQlpID0gaSArIDEgOwkJCQlcCisjZGVmaW5lIFBNRFMoU1RBUlQsIFBFUk0sIENPVU5UKQkJCVwKKwlpID0gMCA7CQkJCQkJXAorCS5yZXB0IChDT1VOVCkgOwkJCQkJXAorCS5xdWFkCShTVEFSVCkgKyAoaSA8PCBQTURfU0hJRlQpICsgKFBFUk0pIDsJXAorCWkgPSBpICsgMSA7CQkJCQlcCiAJLmVuZHIKIAogCS8qCkBAIC0zNDIsOSArMzQ1LDkgQEAKIAkgKi8KIE5FWFRfUEFHRShpbml0X2xldmVsNF9wZ3QpCiAJLnF1YWQJbGV2ZWwzX2lkZW50X3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKLQkuZmlsbAkyNTcsOCwwCisJLm9yZwlpbml0X2xldmVsNF9wZ3QgKyBMNF9QQUdFX09GRlNFVCo4LCAwCiAJLnF1YWQJbGV2ZWwzX2lkZW50X3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKLQkuZmlsbAkyNTIsOCwwCisJLm9yZwlpbml0X2xldmVsNF9wZ3QgKyBMNF9TVEFSVF9LRVJORUwqOCwgMAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KSkvKDJeMzkpID0gNTExICovCiAJLnF1YWQJbGV2ZWwzX2tlcm5lbF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfUEFHRV9UQUJMRQogCkBAIC0zNTMsNyArMzU2LDcgQEAKIAkuZmlsbAk1MTEsOCwwCiAKIE5FWFRfUEFHRShsZXZlbDNfa2VybmVsX3BndCkKLQkuZmlsbAk1MTAsOCwwCisJLmZpbGwJTDNfU1RBUlRfS0VSTkVMLDgsMAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KS0oKDJeMzkpKjUxMSkpLygyXjMwKSA9IDUxMCAqLwogCS5xdWFkCWxldmVsMl9rZXJuZWxfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX0tFUk5QR19UQUJMRQogCS5xdWFkCWxldmVsMl9maXhtYXBfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX1BBR0VfVEFCTEUKQEAgLTM4NCw3ICszODcsNyBAQAogCSAqICBJZiB5b3Ugd2FudCB0byBpbmNyZWFzZSB0aGlzIHRoZW4gaW5jcmVhc2UgTU9EVUxFU19WQUREUgogCSAqICB0b28uKQogCSAqLwotCVBNRFMoMCwgX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDfF9QQUdFX0dMT0JBTCwKKwlQTURTKDAsIF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQywKIAkJS0VSTkVMX0lNQUdFX1NJWkUvUE1EX1NJWkUpCiAKIE5FWFRfUEFHRShsZXZlbDJfc3BhcmVfcGd0KQpAQCAtMzk1LDU0ICszOTgsMTYgQEAKIAogCS5kYXRhCiAJLmFsaWduIDE2Ci0JLmdsb2JsIGNwdV9nZHRfZGVzY3IKLWNwdV9nZHRfZGVzY3I6Ci0JLndvcmQJZ2R0X2VuZC1jcHVfZ2R0X3RhYmxlLTEKLWdkdDoKLQkucXVhZAljcHVfZ2R0X3RhYmxlCi0jaWZkZWYgQ09ORklHX1NNUAotCS5yZXB0CU5SX0NQVVMtMQotCS53b3JkCTAKLQkucXVhZAkwCi0JLmVuZHIKLSNlbmRpZgorCS5nbG9ibCBlYXJseV9nZHRfZGVzY3IKK2Vhcmx5X2dkdF9kZXNjcjoKKwkud29yZAlHRFRfRU5UUklFUyo4LTEKKwkucXVhZCAgIHBlcl9jcHVfX2dkdF9wYWdlCiAKIEVOVFJZKHBoeXNfYmFzZSkKIAkvKiBUaGlzIG11c3QgbWF0Y2ggdGhlIGZpcnN0IGVudHJ5IGluIGxldmVsMl9rZXJuZWxfcGd0ICovCiAJLnF1YWQgICAweDAwMDAwMDAwMDAwMDAwMDAKIAotLyogV2UgbmVlZCB2YWxpZCBrZXJuZWwgc2VnbWVudHMgZm9yIGRhdGEgYW5kIGNvZGUgaW4gbG9uZyBtb2RlIHRvbwotICogSVJFVCB3aWxsIGNoZWNrIHRoZSBzZWdtZW50IHR5cGVzICBra2VpbCAyMDAwLzEwLzI4Ci0gKiBBbHNvIHN5c3JldCBtYW5kYXRlcyBhIHNwZWNpYWwgR0RUIGxheW91dCAKLSAqLwotCQkgCQkKLQkuc2VjdGlvbiAuZGF0YS5wYWdlX2FsaWduZWQsICJhdyIKLQkuYWxpZ24gUEFHRV9TSVpFCi0KLS8qIFRoZSBUTFMgZGVzY3JpcHRvcnMgYXJlIGN1cnJlbnRseSBhdCBhIGRpZmZlcmVudCBwbGFjZSBjb21wYXJlZCB0byBpMzg2LgotICAgSG9wZWZ1bGx5IG5vYm9keSBleHBlY3RzIHRoZW0gYXQgYSBmaXhlZCBwbGFjZSAoV2luZT8pICovCiAJCi1FTlRSWShjcHVfZ2R0X3RhYmxlKQotCS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMAkvKiBOVUxMIGRlc2NyaXB0b3IgKi8KLQkucXVhZAkweDAwY2Y5YjAwMDAwMGZmZmYJLyogX19LRVJORUwzMl9DUyAqLwotCS5xdWFkCTB4MDBhZjliMDAwMDAwZmZmZgkvKiBfX0tFUk5FTF9DUyAqLwotCS5xdWFkCTB4MDBjZjkzMDAwMDAwZmZmZgkvKiBfX0tFUk5FTF9EUyAqLwotCS5xdWFkCTB4MDBjZmZiMDAwMDAwZmZmZgkvKiBfX1VTRVIzMl9DUyAqLwotCS5xdWFkCTB4MDBjZmYzMDAwMDAwZmZmZgkvKiBfX1VTRVJfRFMsIF9fVVNFUjMyX0RTICAqLwotCS5xdWFkCTB4MDBhZmZiMDAwMDAwZmZmZgkvKiBfX1VTRVJfQ1MgKi8KLQkucXVhZAkweDAJCQkvKiB1bnVzZWQgKi8KLQkucXVhZAkwLDAJCQkvKiBUU1MgKi8KLQkucXVhZAkwLDAJCQkvKiBMRFQgKi8KLQkucXVhZCAgIDAsMCwwCQkJLyogdGhyZWUgVExTIGRlc2NyaXB0b3JzICovIAotCS5xdWFkCTB4MDAwMGY0MDAwMDAwMDAwMAkvKiBub2RlL0NQVSBzdG9yZWQgaW4gbGltaXQgKi8KLWdkdF9lbmQ6CQotCS8qIGFzbS9zZWdtZW50Lmg6R0RUX0VOVFJJRVMgbXVzdCBtYXRjaCB0aGlzICovCQotCS8qIFRoaXMgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgdGhlIGNhY2hlIGxpbmUgc2l6ZSAqLwotCS8qIEdEVHMgb2Ygb3RoZXIgQ1BVcyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCAqLwotCi0JLyogemVybyB0aGUgcmVtYWluaW5nIHBhZ2UgKi8KLQkuZmlsbCBQQUdFX1NJWkUgLyA4IC0gR0RUX0VOVFJJRVMsOCwwCi0KIAkuc2VjdGlvbiAuYnNzLCAiYXciLCBAbm9iaXRzCiAJLmFsaWduIEwxX0NBQ0hFX0JZVEVTCiBFTlRSWShpZHRfdGFibGUpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jIGIvYXJjaC94ODYva2VybmVsL2hwZXQuYwppbmRleCA5YjVjZmNkLi4wZWE2YTE5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9ocGV0LmMKQEAgLTE3LDcgKzE3LDcgQEAKIAogLyogRlNFQyA9IDEwXi0xNQogICAgTlNFQyA9IDEwXi05ICovCi0jZGVmaW5lIEZTRUNfUEVSX05TRUMJMTAwMDAwMAorI2RlZmluZSBGU0VDX1BFUl9OU0VDCTEwMDAwMDBMCiAKIC8qCiAgKiBIUEVUIGFkZHJlc3MgaXMgc2V0IGluIGFjcGkvYm9vdC5jLCB3aGVuIGFuIEFDUEkgZW50cnkgZXhpc3RzCkBAIC0zNiwyNiArMzYsMTUgQEAKIH0KIAogI2lmZGVmIENPTkZJR19YODZfNjQKLQogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X3NldF9tYXBwaW5nKHZvaWQpCi17Ci0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9IUEVUX0JBU0UsIGhwZXRfYWRkcmVzcyk7Ci0JX19zZXRfZml4bWFwKFZTWVNDQUxMX0hQRVQsIGhwZXRfYWRkcmVzcywgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSk7Ci0JaHBldF92aXJ0X2FkZHJlc3MgPSAodm9pZCBfX2lvbWVtICopZml4X3RvX3ZpcnQoRklYX0hQRVRfQkFTRSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X2NsZWFyX21hcHBpbmcodm9pZCkKLXsKLQlocGV0X3ZpcnRfYWRkcmVzcyA9IE5VTEw7Ci19Ci0KLSNlbHNlCisjZW5kaWYKIAogc3RhdGljIGlubGluZSB2b2lkIGhwZXRfc2V0X21hcHBpbmcodm9pZCkKIHsKIAlocGV0X3ZpcnRfYWRkcmVzcyA9IGlvcmVtYXBfbm9jYWNoZShocGV0X2FkZHJlc3MsIEhQRVRfTU1BUF9TSVpFKTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJX19zZXRfZml4bWFwKFZTWVNDQUxMX0hQRVQsIGhwZXRfYWRkcmVzcywgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSk7CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGhwZXRfY2xlYXJfbWFwcGluZyh2b2lkKQpAQCAtNjMsNyArNTIsNiBAQAogCWlvdW5tYXAoaHBldF92aXJ0X2FkZHJlc3MpOwogCWhwZXRfdmlydF9hZGRyZXNzID0gTlVMTDsKIH0KLSNlbmRpZgogCiAvKgogICogSFBFVCBjb21tYW5kIGxpbmUgZW5hYmxlIC8gZGlzYWJsZQpAQCAtMjA2LDIwICsxOTQsMTkgQEAKIAogc3RhdGljIHZvaWQgaHBldF9sZWdhY3lfY2xvY2tldmVudF9yZWdpc3Rlcih2b2lkKQogewotCXVpbnQ2NF90IGhwZXRfZnJlcTsKLQogCS8qIFN0YXJ0IEhQRVQgbGVnYWN5IGludGVycnVwdHMgKi8KIAlocGV0X2VuYWJsZV9sZWdhY3lfaW50KCk7CiAKIAkvKgotCSAqIFRoZSBwZXJpb2QgaXMgYSBmZW10byBzZWNvbmRzIHZhbHVlLiBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUKLQkgKiBzY2FsZWQgbWF0aCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgZm9yIG5hbm9zZWNvbmQgdG8gaHBldCB0aWNrCi0JICogY29udmVyc2lvbi4KKwkgKiBUaGUgbXVsdCBmYWN0b3IgaXMgZGVmaW5lZCBhcyAoaW5jbHVkZS9saW51eC9jbG9ja2NoaXBzLmgpCisJICogIG11bHQvMl5zaGlmdCA9IGN5Yy9ucyAoaW4gY29udHJhc3QgdG8gbnMvY3ljIGluIGNsb2Nrc291cmNlLmgpCisJICogaHBldF9wZXJpb2QgaXMgaW4gdW5pdHMgb2YgZmVtdG9zZWNvbmRzIChwZXIgY3ljbGUpLCBzbworCSAqICBtdWx0LzJec2hpZnQgPSBjeWMvbnMgPSAxMF42L2hwZXRfcGVyaW9kCisJICogIG11bHQgPSAoMTBeNiAqIDJec2hpZnQpL2hwZXRfcGVyaW9kCisJICogIG11bHQgPSAoRlNFQ19QRVJfTlNFQyA8PCBocGV0X2Nsb2NrZXZlbnQuc2hpZnQpL2hwZXRfcGVyaW9kCiAJICovCi0JaHBldF9mcmVxID0gMTAwMDAwMDAwMDAwMDAwMFVMTDsKLQlkb19kaXYoaHBldF9mcmVxLCBocGV0X3BlcmlvZCk7Ci0JaHBldF9jbG9ja2V2ZW50Lm11bHQgPSBkaXZfc2MoKHVuc2lnbmVkIGxvbmcpIGhwZXRfZnJlcSwKLQkJCQkgICAgICBOU0VDX1BFUl9TRUMsIGhwZXRfY2xvY2tldmVudC5zaGlmdCk7CisJaHBldF9jbG9ja2V2ZW50Lm11bHQgPSBkaXZfc2MoKHVuc2lnbmVkIGxvbmcpIEZTRUNfUEVSX05TRUMsCisJCQkJICAgICAgaHBldF9wZXJpb2QsIGhwZXRfY2xvY2tldmVudC5zaGlmdCk7CiAJLyogQ2FsY3VsYXRlIHRoZSBtaW4gLyBtYXggZGVsdGEgKi8KIAlocGV0X2Nsb2NrZXZlbnQubWF4X2RlbHRhX25zID0gY2xvY2tldmVudF9kZWx0YTJucygweDdGRkZGRkZGLAogCQkJCQkJCSAgICZocGV0X2Nsb2NrZXZlbnQpOwpAQCAtMzI0LDcgKzMxMSw3IEBACiAKIHN0YXRpYyBpbnQgaHBldF9jbG9ja3NvdXJjZV9yZWdpc3Rlcih2b2lkKQogewotCXU2NCB0bXAsIHN0YXJ0LCBub3c7CisJdTY0IHN0YXJ0LCBub3c7CiAJY3ljbGVfdCB0MTsKIAogCS8qIFN0YXJ0IHRoZSBjb3VudGVyICovCkBAIC0zNTEsMjEgKzMzOCwxNSBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQkvKiBJbml0aWFsaXplIGFuZCByZWdpc3RlciBIUEVUIGNsb2Nrc291cmNlCi0JICoKLQkgKiBocGV0IHBlcmlvZCBpcyBpbiBmZW10byBzZWNvbmRzIHBlciBjeWNsZQotCSAqIHNvIHdlIG5lZWQgdG8gY29udmVydCB0aGlzIHRvIG5zL2N5YyB1bml0cwotCSAqIGFwcHJveGltYXRlZCBieSBtdWx0LzJec2hpZnQKLQkgKgotCSAqICBmc2VjL2N5YyAqIDFuc2VjLzEwMDAwMDBmc2VjID0gbnNlYy9jeWMgPSBtdWx0LzJec2hpZnQKLQkgKiAgZnNlYy9jeWMgKiAxbnMvMTAwMDAwMGZzZWMgKiAyXnNoaWZ0ID0gbXVsdAotCSAqICBmc2VjL2N5YyAqIDJec2hpZnQgKiAxbnNlYy8xMDAwMDAwZnNlYyA9IG11bHQKLQkgKiAgKGZzZWMvY3ljIDw8IHNoaWZ0KS8xMDAwMDAwID0gbXVsdAotCSAqICAoaHBldF9wZXJpb2QgPDwgc2hpZnQpL0ZTRUNfUEVSX05TRUMgPSBtdWx0CisJLyoKKwkgKiBUaGUgZGVmaW5pdGlvbiBvZiBtdWx0IGlzIChpbmNsdWRlL2xpbnV4L2Nsb2Nrc291cmNlLmgpCisJICogbXVsdC8yXnNoaWZ0ID0gbnMvY3ljIGFuZCBocGV0X3BlcmlvZCBpcyBpbiB1bml0cyBvZiBmc2VjL2N5YworCSAqIHNvIHdlIGZpcnN0IG5lZWQgdG8gY29udmVydCBocGV0X3BlcmlvZCB0byBucy9jeWMgdW5pdHM6CisJICogIG11bHQvMl5zaGlmdCA9IG5zL2N5YyA9IGhwZXRfcGVyaW9kLzEwXjYKKwkgKiAgbXVsdCA9IChocGV0X3BlcmlvZCAqIDJec2hpZnQpLzEwXjYKKwkgKiAgbXVsdCA9IChocGV0X3BlcmlvZCA8PCBzaGlmdCkvRlNFQ19QRVJfTlNFQwogCSAqLwotCXRtcCA9ICh1NjQpaHBldF9wZXJpb2QgPDwgSFBFVF9TSElGVDsKLQlkb19kaXYodG1wLCBGU0VDX1BFUl9OU0VDKTsKLQljbG9ja3NvdXJjZV9ocGV0Lm11bHQgPSAodTMyKXRtcDsKKwljbG9ja3NvdXJjZV9ocGV0Lm11bHQgPSBkaXZfc2MoaHBldF9wZXJpb2QsIEZTRUNfUEVSX05TRUMsIEhQRVRfU0hJRlQpOwogCiAJY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX2hwZXQpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaTM4Nl9rc3ltc18zMi5jIGIvYXJjaC94ODYva2VybmVsL2kzODZfa3N5bXNfMzIuYwppbmRleCBkZWI0Mzc4Li5kZDdlYmVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaTM4Nl9rc3ltc18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pMzg2X2tzeW1zXzMyLmMKQEAgLTEsNyArMSwxNCBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCiAjaW5jbHVkZSA8YXNtL2NoZWNrc3VtLmg+Ci0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyogbWNvdW50IGlzIGRlZmluZWQgaW4gYXNzZW1ibHkgKi8KK0VYUE9SVF9TWU1CT0wobWNvdW50KTsKKyNlbmRpZgogCiAvKiBOZXR3b3JraW5nIGhlbHBlciByb3V0aW5lcy4gKi8KIEVYUE9SVF9TWU1CT0woY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYyBiL2FyY2gveDg2L2tlcm5lbC9pODI1OS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjOTJiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYwpAQCAtMCwwICsxLDMzNyBAQAorI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisKKyNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisjaW5jbHVkZSA8YXNtL2h3X2lycS5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKy8qCisgKiBUaGlzIGlzIHRoZSAnbGVnYWN5JyA4MjU5QSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIsCisgKiBwcmVzZW50IGluIHRoZSBtYWpvcml0eSBvZiBQQy9BVCBib3hlcy4KKyAqIHBsdXMgc29tZSBnZW5lcmljIHg4NiBzcGVjaWZpYyB0aGluZ3MgaWYgZ2VuZXJpYyBzcGVjaWZpY3MgbWFrZXMKKyAqIGFueSBzZW5zZSBhdCBhbGwuCisgKi8KKworc3RhdGljIGludCBpODI1OUFfYXV0b19lb2k7CitERUZJTkVfU1BJTkxPQ0soaTgyNTlBX2xvY2spOworc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCk7CisKK3N0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKKwkubmFtZQkJPSAiWFQtUElDIiwKKwkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKKwkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAorCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKKwkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCit9OworCisvKgorICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6CisgKi8KKworLyoKKyAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKKyAqLwordW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKKworLyoKKyAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKKyAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKKyAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgorICoKKyAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgorICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAorICogYXQgSVJRIHNldHVwIHRpbWUuCisgKi8KK3Vuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOworCit2b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7CisJaWYgKGlycSAmIDgpCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCWVsc2UKKwkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworfQorCit2b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKKwlpZiAoaXJxICYgOCkKKwkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CisJZWxzZQorCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Cit9CisKK2ludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwlpZiAoaXJxIDwgOCkKKwkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7CisJZWxzZQorCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOworCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCisJCQkJICAgICAgIlhUIik7CisJZW5hYmxlX2lycShpcnEpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCisgKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KKyAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKKyAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQoreworCWludCB2YWx1ZTsKKwlpbnQgaXJxbWFzayA9IDE8PGlycTsKKworCWlmIChpcnEgPCA4KSB7CisJCW91dGIoMHgwQiwgUElDX01BU1RFUl9DTUQpOwkvKiBJU1IgcmVnaXN0ZXIgKi8KKwkJdmFsdWUgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgaXJxbWFzazsKKwkJb3V0YigweDBBLCBQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLworCQlyZXR1cm4gdmFsdWU7CisJfQorCW91dGIoMHgwQiwgUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLworCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7CisJb3V0YigweDBBLCBQSUNfU0xBVkVfQ01EKTsJLyogYmFjayB0byB0aGUgSVJSIHJlZ2lzdGVyICovCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogQ2FyZWZ1bCEgVGhlIDgyNTlBIGlzIGEgZnJhZ2lsZSBiZWFzdCwgaXQgcHJldHR5CisgKiBtdWNoIF9oYXNfIHRvIGJlIGRvbmUgZXhhY3RseSBsaWtlIHRoaXMgKG1hc2sgaXQKKyAqIGZpcnN0LCBfdGhlbl8gc2VuZCB0aGUgRU9JLCBhbmQgdGhlIG9yZGVyIG9mIEVPSQorICogdG8gdGhlIHR3byA4MjU5cyBpcyBpbXBvcnRhbnQhCisgKi8KK3N0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGludCBpcnFtYXNrID0gMSA8PCBpcnE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCS8qCisJICogTGlnaHR3ZWlnaHQgc3B1cmlvdXMgSVJRIGRldGVjdGlvbi4gV2UgZG8gbm90IHdhbnQKKwkgKiB0byBvdmVyZG8gc3B1cmlvdXMgSVJRIGhhbmRsaW5nIC0gaXQncyB1c3VhbGx5IGEgc2lnbgorCSAqIG9mIGhhcmR3YXJlIHByb2JsZW1zLCBzbyB3ZSBvbmx5IGRvIHRoZSBjaGVja3Mgd2UgY2FuCisJICogZG8gd2l0aG91dCBzbG93aW5nIGRvd24gZ29vZCBoYXJkd2FyZSB1bm5lY2Vzc2FyaWx5LgorCSAqCisJICogTm90ZSB0aGF0IElSUTcgYW5kIElSUTE1ICh0aGUgdHdvIHNwdXJpb3VzIElSUXMKKwkgKiB1c3VhbGx5IHJlc3VsdGluZyBmcm9tIHRoZSA4MjU5QS0xfDIgUElDcykgb2NjdXIKKwkgKiBldmVuIGlmIHRoZSBJUlEgaXMgbWFza2VkIGluIHRoZSA4MjU5QS4gVGh1cyB3ZQorCSAqIGNhbiBjaGVjayBzcHVyaW91cyA4MjU5QSBJUlFzIHdpdGhvdXQgZG9pbmcgdGhlCisJICogcXVpdGUgc2xvdyBpODI1OUFfaXJxX3JlYWwoKSBjYWxsIGZvciBldmVyeSBJUlEuCisJICogVGhpcyBkb2VzIG5vdCBjb3ZlciAxMDAlIG9mIHNwdXJpb3VzIGludGVycnVwdHMsCisJICogYnV0IHNob3VsZCBiZSBlbm91Z2ggdG8gd2FybiB0aGUgdXNlciB0aGF0IHRoZXJlCisJICogaXMgc29tZXRoaW5nIGJhZCBnb2luZyBvbiAuLi4KKwkgKi8KKwlpZiAoY2FjaGVkX2lycV9tYXNrICYgaXJxbWFzaykKKwkJZ290byBzcHVyaW91c184MjU5QV9pcnE7CisJY2FjaGVkX2lycV9tYXNrIHw9IGlycW1hc2s7CisKK2hhbmRsZV9yZWFsX2lycToKKwlpZiAoaXJxICYgOCkgeworCQlpbmIoUElDX1NMQVZFX0lNUik7CS8qIERVTU1ZIC0gKGRvIHdlIG5lZWQgdGhpcz8pICovCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBzbGF2ZSAqLworCQlvdXRiKDB4NjArKGlycSY3KSwgUElDX1NMQVZFX0NNRCk7CisJCSAvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXItSVJRMiAqLworCQlvdXRiKDB4NjArUElDX0NBU0NBREVfSVIsIFBJQ19NQVNURVJfQ01EKTsKKwl9IGVsc2UgeworCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLworCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCQlvdXRiKDB4NjAraXJxLCBQSUNfTUFTVEVSX0NNRCk7CS8qICdTcGVjaWZpYyBFT0kgdG8gbWFzdGVyICovCisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJcmV0dXJuOworCitzcHVyaW91c184MjU5QV9pcnE6CisJLyoKKwkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KKwkgKi8KKwlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCisJCS8qCisJCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKKwkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KKwkJICovCisJCWdvdG8gaGFuZGxlX3JlYWxfaXJxOworCisJeworCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOworCQkvKgorCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCisJCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCisJCSAqLworCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRworCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKKwkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7CisJCX0KKwkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7CisJCS8qCisJCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAorCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKKwkJICogc2ltcGxlciBmb3IgdXMuCisJCSAqLworCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKKwl9Cit9CisKK3N0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOworLyoqCisgKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCisgKi8KK3N0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQoreworCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOworCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOworfQorCitzdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKK3sKKwkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCisJdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OworCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKK30KKworc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOworCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0CisJICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKKwkgKiBvdXQgb2YuCisJICovCisJb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KKwlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKKwkubmFtZSA9ICJpODI1OSIsCisJLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKKwkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKKwkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCit9OworCitzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKKwkuaWQJPSAwLAorCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKK3sKKwlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOworCXJldHVybiBlcnJvcjsKK30KKworZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKKwordm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKworCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLworCisJLyoKKwkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgorCSAqLworCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMSBJUjAtNyBtYXBwZWQgdG8gMHgzMC0weDM3IG9uIHg4Ni02NCwKKwkgICAgICAgICAgICAgICAgICAgICAgIHRvIDB4MjAtMHgyNyBvbiBpMzg2ICovCisJb3V0Yl9waWMoSVJRMF9WRUNUT1IsIFBJQ19NQVNURVJfSU1SKTsKKworCS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLworCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CisKKwlpZiAoYXV0b19lb2kpCS8qIG1hc3RlciBkb2VzIEF1dG8gRU9JICovCisJCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQgfCBQSUNfSUNXNF9BRU9JLCBQSUNfTUFTVEVSX0lNUik7CisJZWxzZQkJLyogbWFzdGVyIGV4cGVjdHMgbm9ybWFsIEVPSSAqLworCQlvdXRiX3BpYyhNQVNURVJfSUNXNF9ERUZBVUxULCBQSUNfTUFTVEVSX0lNUik7CisKKwlvdXRiX3BpYygweDExLCBQSUNfU0xBVkVfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTIgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gSVJROF9WRUNUT1IgKi8KKwlvdXRiX3BpYyhJUlE4X1ZFQ1RPUiwgUElDX1NMQVZFX0lNUik7CisJLyogODI1OUEtMiBpcyBhIHNsYXZlIG9uIG1hc3RlcidzIElSMiAqLworCW91dGJfcGljKFBJQ19DQVNDQURFX0lSLCBQSUNfU0xBVkVfSU1SKTsKKwkvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCisJb3V0Yl9waWMoU0xBVkVfSUNXNF9ERUZBVUxULCBQSUNfU0xBVkVfSU1SKTsKKworCWlmIChhdXRvX2VvaSkKKwkJLyoKKwkJICogSW4gQUVPSSBtb2RlIHdlIGp1c3QgaGF2ZSB0byBtYXNrIHRoZSBpbnRlcnJ1cHQKKwkJICogd2hlbiBhY2tpbmcuCisJCSAqLworCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IGRpc2FibGVfODI1OUFfaXJxOworCWVsc2UKKwkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBtYXNrX2FuZF9hY2tfODI1OUE7CisKKwl1ZGVsYXkoMTAwKTsJCS8qIHdhaXQgZm9yIDgyNTlBIHRvIGluaXRpYWxpemUgKi8KKworCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7IC8qIHJlc3RvcmUgbWFzdGVyIElSUSBtYXNrICovCisJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CSAgLyogcmVzdG9yZSBzbGF2ZSBJUlEgbWFzayAqLworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2k4MjU5XzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNjMxOTY3Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNDA5ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotCi0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9pODI1OS5oPgotCi0vKgotICogVGhpcyBpcyB0aGUgJ2xlZ2FjeScgODI1OUEgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyLAotICogcHJlc2VudCBpbiB0aGUgbWFqb3JpdHkgb2YgUEMvQVQgYm94ZXMuCi0gKiBwbHVzIHNvbWUgZ2VuZXJpYyB4ODYgc3BlY2lmaWMgdGhpbmdzIGlmIGdlbmVyaWMgc3BlY2lmaWNzIG1ha2VzCi0gKiBhbnkgc2Vuc2UgYXQgYWxsLgotICovCi0KLXN0YXRpYyBpbnQgaTgyNTlBX2F1dG9fZW9pOwotREVGSU5FX1NQSU5MT0NLKGk4MjU5QV9sb2NrKTsKLXN0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQpOwotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIGk4MjU5QV9jaGlwID0gewotCS5uYW1lCQk9ICJYVC1QSUMiLAotCS5tYXNrCQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS5kaXNhYmxlCT0gZGlzYWJsZV84MjU5QV9pcnEsCi0JLnVubWFzawkJPSBlbmFibGVfODI1OUFfaXJxLAotCS5tYXNrX2Fjawk9IG1hc2tfYW5kX2Fja184MjU5QSwKLX07Ci0KLS8qCi0gKiA4MjU5QSBQSUMgZnVuY3Rpb25zIHRvIGhhbmRsZSBJU0EgZGV2aWNlczoKLSAqLwotCi0vKgotICogVGhpcyBjb250YWlucyB0aGUgaXJxIG1hc2sgZm9yIGJvdGggODI1OUEgaXJxIGNvbnRyb2xsZXJzLAotICovCi11bnNpZ25lZCBpbnQgY2FjaGVkX2lycV9tYXNrID0gMHhmZmZmOwotCi0vKgotICogTm90IGFsbCBJUlFzIGNhbiBiZSByb3V0ZWQgdGhyb3VnaCB0aGUgSU8tQVBJQywgZWcuIG9uIGNlcnRhaW4gKG9sZGVyKQotICogYm9hcmRzIHRoZSB0aW1lciBpbnRlcnJ1cHQgaXMgbm90IHJlYWxseSBjb25uZWN0ZWQgdG8gYW55IElPLUFQSUMgcGluLAotICogaXQncyBmZWQgdG8gdGhlIG1hc3RlciA4MjU5QSdzIElSMCBsaW5lIG9ubHkuCi0gKgotICogQW55ICcxJyBiaXQgaW4gdGhpcyBtYXNrIG1lYW5zIHRoZSBJUlEgaXMgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMuCi0gKiB0aGlzICdtaXhlZCBtb2RlJyBJUlEgaGFuZGxpbmcgY29zdHMgbm90aGluZyBiZWNhdXNlIGl0J3Mgb25seSB1c2VkCi0gKiBhdCBJUlEgc2V0dXAgdGltZS4KLSAqLwotdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7Ci0KLXZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgfD0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLXZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gfigxIDw8IGlycSk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWNhY2hlZF9pcnFfbWFzayAmPSBtYXNrOwotCWlmIChpcnEgJiA4KQotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQllbHNlCi0JCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLX0KLQotaW50IGk4MjU5QV9pcnFfcGVuZGluZyh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gMTw8aXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWlmIChpcnEgPCA4KQotCQlyZXQgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgbWFzazsKLQllbHNlCi0JCXJldCA9IGluYihQSUNfU0xBVkVfQ01EKSAmIChtYXNrID4+IDgpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JZGlzYWJsZV9pcnFfbm9zeW5jKGlycSk7Ci0JaW9fYXBpY19pcnFzICY9IH4oMTw8aXJxKTsKLQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZpODI1OUFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSwKLQkJCQkgICAgICAiWFQiKTsKLQllbmFibGVfaXJxKGlycSk7Ci19Ci0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdG8gYmUgY2FsbGVkIHJhcmVseS4gU3dpdGNoaW5nIGJldHdlZW4KLSAqIDgyNTlBIHJlZ2lzdGVycyBpcyBzbG93LgotICogVGhpcyBoYXMgdG8gYmUgcHJvdGVjdGVkIGJ5IHRoZSBpcnEgY29udHJvbGxlciBzcGlubG9jawotICogYmVmb3JlIGJlaW5nIGNhbGxlZC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgaTgyNTlBX2lycV9yZWFsKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaW50IHZhbHVlOwotCWludCBpcnFtYXNrID0gMTw8aXJxOwotCi0JaWYgKGlycSA8IDgpIHsKLQkJb3V0YigweDBCLFBJQ19NQVNURVJfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JCXZhbHVlID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIGlycW1hc2s7Ci0JCW91dGIoMHgwQSxQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCQlyZXR1cm4gdmFsdWU7Ci0JfQotCW91dGIoMHgwQixQSUNfU0xBVkVfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JdmFsdWUgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAoaXJxbWFzayA+PiA4KTsKLQlvdXRiKDB4MEEsUElDX1NMQVZFX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCXJldHVybiB2YWx1ZTsKLX0KLQotLyoKLSAqIENhcmVmdWwhIFRoZSA4MjU5QSBpcyBhIGZyYWdpbGUgYmVhc3QsIGl0IHByZXR0eQotICogbXVjaCBfaGFzXyB0byBiZSBkb25lIGV4YWN0bHkgbGlrZSB0aGlzIChtYXNrIGl0Ci0gKiBmaXJzdCwgX3RoZW5fIHNlbmQgdGhlIEVPSSwgYW5kIHRoZSBvcmRlciBvZiBFT0kKLSAqIHRvIHRoZSB0d28gODI1OXMgaXMgaW1wb3J0YW50IQotICovCi1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgaXJxbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQkvKgotCSAqIExpZ2h0d2VpZ2h0IHNwdXJpb3VzIElSUSBkZXRlY3Rpb24uIFdlIGRvIG5vdCB3YW50Ci0JICogdG8gb3ZlcmRvIHNwdXJpb3VzIElSUSBoYW5kbGluZyAtIGl0J3MgdXN1YWxseSBhIHNpZ24KLQkgKiBvZiBoYXJkd2FyZSBwcm9ibGVtcywgc28gd2Ugb25seSBkbyB0aGUgY2hlY2tzIHdlIGNhbgotCSAqIGRvIHdpdGhvdXQgc2xvd2luZyBkb3duIGdvb2QgaGFyZHdhcmUgdW5uZWNlc3NhcmlseS4KLQkgKgotCSAqIE5vdGUgdGhhdCBJUlE3IGFuZCBJUlExNSAodGhlIHR3byBzcHVyaW91cyBJUlFzCi0JICogdXN1YWxseSByZXN1bHRpbmcgZnJvbSB0aGUgODI1OUEtMXwyIFBJQ3MpIG9jY3VyCi0JICogZXZlbiBpZiB0aGUgSVJRIGlzIG1hc2tlZCBpbiB0aGUgODI1OUEuIFRodXMgd2UKLQkgKiBjYW4gY2hlY2sgc3B1cmlvdXMgODI1OUEgSVJRcyB3aXRob3V0IGRvaW5nIHRoZQotCSAqIHF1aXRlIHNsb3cgaTgyNTlBX2lycV9yZWFsKCkgY2FsbCBmb3IgZXZlcnkgSVJRLgotCSAqIFRoaXMgZG9lcyBub3QgY292ZXIgMTAwJSBvZiBzcHVyaW91cyBpbnRlcnJ1cHRzLAotCSAqIGJ1dCBzaG91bGQgYmUgZW5vdWdoIHRvIHdhcm4gdGhlIHVzZXIgdGhhdCB0aGVyZQotCSAqIGlzIHNvbWV0aGluZyBiYWQgZ29pbmcgb24gLi4uCi0JICovCi0JaWYgKGNhY2hlZF9pcnFfbWFzayAmIGlycW1hc2spCi0JCWdvdG8gc3B1cmlvdXNfODI1OUFfaXJxOwotCWNhY2hlZF9pcnFfbWFzayB8PSBpcnFtYXNrOwotCi1oYW5kbGVfcmVhbF9pcnE6Ci0JaWYgKGlycSAmIDgpIHsKLQkJaW5iKFBJQ19TTEFWRV9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQkJb3V0YigweDYwKyhpcnEmNyksUElDX1NMQVZFX0NNRCk7LyogJ1NwZWNpZmljIEVPSScgdG8gc2xhdmUgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQlvdXRiKDB4NjAraXJxLFBJQ19NQVNURVJfQ01EKTsJLyogJ1NwZWNpZmljIEVPSSB0byBtYXN0ZXIgKi8KLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlyZXR1cm47Ci0KLXNwdXJpb3VzXzgyNTlBX2lycToKLQkvKgotCSAqIHRoaXMgaXMgdGhlIHNsb3cgcGF0aCAtIHNob3VsZCBoYXBwZW4gcmFyZWx5LgotCSAqLwotCWlmIChpODI1OUFfaXJxX3JlYWwoaXJxKSkKLQkJLyoKLQkJICogb29wcywgdGhlIElSUSBfaXNfIGluIHNlcnZpY2UgYWNjb3JkaW5nIHRvIHRoZQotCQkgKiA4MjU5QSAtIG5vdCBzcHVyaW91cywgZ28gaGFuZGxlIGl0LgotCQkgKi8KLQkJZ290byBoYW5kbGVfcmVhbF9pcnE7Ci0KLQl7Ci0JCXN0YXRpYyBpbnQgc3B1cmlvdXNfaXJxX21hc2s7Ci0JCS8qCi0JCSAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIGJlIHN1cmUgdGhlIElSUSBpcyBzcHVyaW91cywKLQkJICogbGV0cyBBQ0sgYW5kIHJlcG9ydCBpdC4gW29uY2UgcGVyIElSUV0KLQkJICovCi0JCWlmICghKHNwdXJpb3VzX2lycV9tYXNrICYgaXJxbWFzaykpIHsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCW91dGJfcGljKDB4MjAgKyAwLCBQSUNfTUFTVEVSX0lNUik7CS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MjAtMHgyNyAqLwotCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0Jb3V0Yl9waWMoMHgyMCArIDgsIFBJQ19TTEFWRV9JTVIpOwkvKiBJQ1cyOiA4MjU5QS0yIElSMC03IG1hcHBlZCB0byAweDI4LTB4MmYgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7CS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhTTEFWRV9JQ1c0X0RFRkFVTFQsIFBJQ19TTEFWRV9JTVIpOyAvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCi0JaWYgKGF1dG9fZW9pKQotCQkvKgotCQkgKiBJbiBBRU9JIG1vZGUgd2UganVzdCBoYXZlIHRvIG1hc2sgdGhlIGludGVycnVwdAotCQkgKiB3aGVuIGFja2luZy4KLQkJICovCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gZGlzYWJsZV84MjU5QV9pcnE7Ci0JZWxzZQotCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IG1hc2tfYW5kX2Fja184MjU5QTsKLQotCXVkZWxheSgxMDApOwkJLyogd2FpdCBmb3IgODI1OUEgdG8gaW5pdGlhbGl6ZSAqLwotCi0Jb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsgLyogcmVzdG9yZSBtYXN0ZXIgSVJRIG1hc2sgKi8KLQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsJICAvKiByZXN0b3JlIHNsYXZlIElSUSBtYXNrICovCi0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi0vKgotICogTm90ZSB0aGF0IG9uIGEgNDg2LCB3ZSBkb24ndCB3YW50IHRvIGRvIGEgU0lHRlBFIG9uIGFuIGlycTEzCi0gKiBhcyB0aGUgaXJxIGlzIHVucmVsaWFibGUsIGFuZCBleGNlcHRpb24gMTYgd29ya3MgY29ycmVjdGx5Ci0gKiAoaWUgYXMgZXhwbGFpbmVkIGluIHRoZSBpbnRlbCBsaXRlcmF0dXJlKS4gT24gYSAzODYsIHlvdQotICogY2FuJ3QgdXNlIGV4Y2VwdGlvbiAxNiBkdWUgdG8gYmFkIElCTSBkZXNpZ24sIHNvIHdlIGhhdmUgdG8KLSAqIHJlbHkgb24gdGhlIGxlc3MgZXhhY3QgaXJxMTMuCi0gKgotICogQ2FyZWZ1bC4uIE5vdCBvbmx5IGlzIElSUTEzIHVucmVsaWFibGUsIGJ1dCBpdCBpcyBhbHNvCi0gKiBsZWFkcyB0byByYWNlcy4gSUJNIGRlc2lnbmVycyB3aG8gY2FtZSB1cCB3aXRoIGl0IHNob3VsZAotICogYmUgc2hvdC4KLSAqLwotIAotCi1zdGF0aWMgaXJxcmV0dXJuX3QgbWF0aF9lcnJvcl9pcnEoaW50IGNwbCwgdm9pZCAqZGV2X2lkKQotewotCWV4dGVybiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKik7Ci0Jb3V0YigwLDB4RjApOwotCWlmIChpZ25vcmVfZnB1X2lycSB8fCAhYm9vdF9jcHVfZGF0YS5oYXJkX21hdGgpCi0JCXJldHVybiBJUlFfTk9ORTsKLQltYXRoX2Vycm9yKCh2b2lkIF9fdXNlciAqKWdldF9pcnFfcmVncygpLT5pcCk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKgotICogTmV3IG1vdGhlcmJvYXJkcyBzb21ldGltZXMgbWFrZSBJUlEgMTMgYmUgYSBQQ0kgaW50ZXJydXB0LAotICogc28gYWxsb3cgaW50ZXJydXB0IHNoYXJpbmcuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGZwdV9pcnEgPSB7Ci0JLmhhbmRsZXIgPSBtYXRoX2Vycm9yX2lycSwKLQkubWFzayA9IENQVV9NQVNLX05PTkUsCi0JLm5hbWUgPSAiZnB1IiwKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlpbml0X2JzcF9BUElDKCk7Ci0jZW5kaWYKLQlpbml0XzgyNTlBKDApOwotCi0JLyoKLQkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7Ci0JfQotfQotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgKi8KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JLyogYWxsIHRoZSBzZXQgdXAgYmVmb3JlIHRoZSBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAqLwotCXByZV9pbnRyX2luaXRfaG9vaygpOwotCi0JLyoKLQkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQotCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQotCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKLQkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7Ci0JCWlmIChpID49IE5SX0lSUVMpCi0JCQlicmVhazsKLQkJLyogU1lTQ0FMTF9WRUNUT1Igd2FzIHJlc2VydmVkIGluIHRyYXBfaW5pdC4gKi8KLQkJaWYgKCF0ZXN0X2JpdCh2ZWN0b3IsIHVzZWRfdmVjdG9ycykpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLQkvKiBzZXR1cCBhZnRlciBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAodXN1YWxseSBhZGQgaW4KLQkgKiB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGdhdGVzKQotCSAqLwotCWludHJfaW5pdF9ob29rKCk7Ci0KLQkvKgotCSAqIEV4dGVybmFsIEZQVT8gU2V0IHVwIGlycTEzIGlmIHNvLCBmb3IKLQkgKiBvcmlnaW5hbCBicmFpbmRhbWFnZWQgSUJNIEZFUlIgY291cGxpbmcuCi0JICovCi0JaWYgKGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICYmICFjcHVfaGFzX2ZwdSkKLQkJc2V0dXBfaXJxKEZQVV9JUlEsICZmcHVfaXJxKTsKLQotCWlycV9jdHhfaW5pdChzbXBfcHJvY2Vzc29yX2lkKCkpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2k4MjU5XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE1N2ExNS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDUxMiArMCwwIEBACi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KLQotI2luY2x1ZGUgPGFzbS9hY3BpLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vaHdfaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vZGVzYy5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2k4MjU5Lmg+Ci0KLS8qCi0gKiBDb21tb24gcGxhY2UgdG8gZGVmaW5lIGFsbCB4ODYgSVJRIHZlY3RvcnMKLSAqCi0gKiBUaGlzIGJ1aWxkcyB1cCB0aGUgSVJRIGhhbmRsZXIgc3R1YnMgdXNpbmcgc29tZSB1Z2x5IG1hY3JvcyBpbiBpcnEuaAotICoKLSAqIFRoZXNlIG1hY3JvcyBjcmVhdGUgdGhlIGxvdy1sZXZlbCBhc3NlbWJseSBJUlEgcm91dGluZXMgdGhhdCBzYXZlCi0gKiByZWdpc3RlciBjb250ZXh0IGFuZCBjYWxsIGRvX0lSUSgpLiBkb19JUlEoKSB0aGVuIGRvZXMgYWxsIHRoZQotICogb3BlcmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgdG8ga2VlcCB0aGUgQVQgKG9yIFNNUCBJT0FQSUMpCi0gKiBpbnRlcnJ1cHQtY29udHJvbGxlciBoYXBweS4KLSAqLwotCi0jZGVmaW5lIEJJKHgseSkgXAotCUJVSUxEX0lSUSh4IyN5KQotCi0jZGVmaW5lIEJVSUxEXzE2X0lSUVMoeCkgXAotCUJJKHgsMCkgQkkoeCwxKSBCSSh4LDIpIEJJKHgsMykgXAotCUJJKHgsNCkgQkkoeCw1KSBCSSh4LDYpIEJJKHgsNykgXAotCUJJKHgsOCkgQkkoeCw5KSBCSSh4LGEpIEJJKHgsYikgXAotCUJJKHgsYykgQkkoeCxkKSBCSSh4LGUpIEJJKHgsZikKLQotLyoKLSAqIElTQSBQSUMgb3IgbG93IElPLUFQSUMgdHJpZ2dlcmVkIChJTlRBLWN5Y2xlIG9yIEFQSUMpIGludGVycnVwdHM6Ci0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIHRvIHZlY3RvcnMgMHgzMC0weDNmKQotICovCi0KLS8qCi0gKiBUaGUgSU8tQVBJQyBnaXZlcyB1cyBtYW55IG1vcmUgaW50ZXJydXB0IHNvdXJjZXMuIE1vc3Qgb2YgdGhlc2UKLSAqIGFyZSB1bnVzZWQgYnV0IGFuIFNNUCBzeXN0ZW0gaXMgc3VwcG9zZWQgdG8gaGF2ZSBlbm91Z2ggbWVtb3J5IC4uLgotICogc29tZXRpbWVzIChtb3N0bHkgd3J0LiBodyBidWdzKSB3ZSBnZXQgY29ycnVwdGVkIHZlY3RvcnMgYWxsCi0gKiBhY3Jvc3MgdGhlIHNwZWN0cnVtLCBzbyB3ZSByZWFsbHkgd2FudCB0byBiZSBwcmVwYXJlZCB0byBnZXQgYWxsCi0gKiBvZiB0aGVzZS4gUGx1cywgbW9yZSBwb3dlcmZ1bCBzeXN0ZW1zIG1pZ2h0IGhhdmUgbW9yZSB0aGFuIDY0Ci0gKiBJTy1BUElDIHJlZ2lzdGVycy4KLSAqCi0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIGludG8gdGhlIDB4MzAtMHhmZiB2ZWN0b3IgcmFuZ2UpCi0gKi8KLQkJCQkgICAgICBCVUlMRF8xNl9JUlFTKDB4MikgQlVJTERfMTZfSVJRUygweDMpCi1CVUlMRF8xNl9JUlFTKDB4NCkgQlVJTERfMTZfSVJRUygweDUpIEJVSUxEXzE2X0lSUVMoMHg2KSBCVUlMRF8xNl9JUlFTKDB4NykKLUJVSUxEXzE2X0lSUVMoMHg4KSBCVUlMRF8xNl9JUlFTKDB4OSkgQlVJTERfMTZfSVJRUygweGEpIEJVSUxEXzE2X0lSUVMoMHhiKQotQlVJTERfMTZfSVJRUygweGMpIEJVSUxEXzE2X0lSUVMoMHhkKSBCVUlMRF8xNl9JUlFTKDB4ZSkgQlVJTERfMTZfSVJRUygweGYpCi0KLSN1bmRlZiBCVUlMRF8xNl9JUlFTCi0jdW5kZWYgQkkKLQotCi0jZGVmaW5lIElSUSh4LHkpIFwKLQlJUlEjI3gjI3kjI19pbnRlcnJ1cHQKLQotI2RlZmluZSBJUlFMSVNUXzE2KHgpIFwKLQlJUlEoeCwwKSwgSVJRKHgsMSksIElSUSh4LDIpLCBJUlEoeCwzKSwgXAotCUlSUSh4LDQpLCBJUlEoeCw1KSwgSVJRKHgsNiksIElSUSh4LDcpLCBcCi0JSVJRKHgsOCksIElSUSh4LDkpLCBJUlEoeCxhKSwgSVJRKHgsYiksIFwKLQlJUlEoeCxjKSwgSVJRKHgsZCksIElSUSh4LGUpLCBJUlEoeCxmKQotCi0vKiBmb3IgdGhlIGlycSB2ZWN0b3JzICovCi1zdGF0aWMgdm9pZCAoKl9faW5pdGRhdGEgaW50ZXJydXB0W05SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1JdKSh2b2lkKSA9IHsKLQkJCQkJICBJUlFMSVNUXzE2KDB4MiksIElSUUxJU1RfMTYoMHgzKSwKLQlJUlFMSVNUXzE2KDB4NCksIElSUUxJU1RfMTYoMHg1KSwgSVJRTElTVF8xNigweDYpLCBJUlFMSVNUXzE2KDB4NyksCi0JSVJRTElTVF8xNigweDgpLCBJUlFMSVNUXzE2KDB4OSksIElSUUxJU1RfMTYoMHhhKSwgSVJRTElTVF8xNigweGIpLAotCUlSUUxJU1RfMTYoMHhjKSwgSVJRTElTVF8xNigweGQpLCBJUlFMSVNUXzE2KDB4ZSksIElSUUxJU1RfMTYoMHhmKQotfTsKLQotI3VuZGVmIElSUQotI3VuZGVmIElSUUxJU1RfMTYKLQotLyoKLSAqIFRoaXMgaXMgdGhlICdsZWdhY3knIDgyNTlBIFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlciwKLSAqIHByZXNlbnQgaW4gdGhlIG1ham9yaXR5IG9mIFBDL0FUIGJveGVzLgotICogcGx1cyBzb21lIGdlbmVyaWMgeDg2IHNwZWNpZmljIHRoaW5ncyBpZiBnZW5lcmljIHNwZWNpZmljcyBtYWtlcwotICogYW55IHNlbnNlIGF0IGFsbC4KLSAqIHRoaXMgZmlsZSBzaG91bGQgYmVjb21lIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmMgd2hlbiB0aGUgb2xkIGlycS5jCi0gKiBtb3ZlcyB0byBhcmNoIGluZGVwZW5kZW50IGxhbmQKLSAqLwotCi1zdGF0aWMgaW50IGk4MjU5QV9hdXRvX2VvaTsKLURFRklORV9TUElOTE9DSyhpODI1OUFfbG9jayk7Ci1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50KTsKLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKLQkubmFtZQkJPSAiWFQtUElDIiwKLQkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKLQkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKLQkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCi19OwotCi0vKgotICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6Ci0gKi8KLQotLyoKLSAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKLSAqLwotdW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKLQotLyoKLSAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKLSAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKLSAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgotICoKLSAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgotICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAotICogYXQgSVJRIHNldHVwIHRpbWUuCi0gKi8KLXVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi12b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7Ci0JaWYgKGlycSAmIDgpCi0JCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwotCWVsc2UKLQkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi12b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLWludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQ7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlpZiAoaXJxIDwgOCkKLQkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7Ci0JZWxzZQotCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOwotCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7Ci0Jc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCi0JCQkJICAgICAgIlhUIik7Ci0JZW5hYmxlX2lycShpcnEpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCi0gKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KLSAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKLSAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQotewotCWludCB2YWx1ZTsKLQlpbnQgaXJxbWFzayA9IDE8PGlycTsKLQotCWlmIChpcnEgPCA4KSB7Ci0JCW91dGIoMHgwQixQSUNfTUFTVEVSX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCQl2YWx1ZSA9IGluYihQSUNfTUFTVEVSX0NNRCkgJiBpcnFtYXNrOwotCQlvdXRiKDB4MEEsUElDX01BU1RFUl9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQkJcmV0dXJuIHZhbHVlOwotCX0KLQlvdXRiKDB4MEIsUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7Ci0Jb3V0YigweDBBLFBJQ19TTEFWRV9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQlyZXR1cm4gdmFsdWU7Ci19Ci0KLS8qCi0gKiBDYXJlZnVsISBUaGUgODI1OUEgaXMgYSBmcmFnaWxlIGJlYXN0LCBpdCBwcmV0dHkKLSAqIG11Y2ggX2hhc18gdG8gYmUgZG9uZSBleGFjdGx5IGxpa2UgdGhpcyAobWFzayBpdAotICogZmlyc3QsIF90aGVuXyBzZW5kIHRoZSBFT0ksIGFuZCB0aGUgb3JkZXIgb2YgRU9JCi0gKiB0byB0aGUgdHdvIDgyNTlzIGlzIGltcG9ydGFudCEKLSAqLwotc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IGlycW1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JLyoKLQkgKiBMaWdodHdlaWdodCBzcHVyaW91cyBJUlEgZGV0ZWN0aW9uLiBXZSBkbyBub3Qgd2FudAotCSAqIHRvIG92ZXJkbyBzcHVyaW91cyBJUlEgaGFuZGxpbmcgLSBpdCdzIHVzdWFsbHkgYSBzaWduCi0JICogb2YgaGFyZHdhcmUgcHJvYmxlbXMsIHNvIHdlIG9ubHkgZG8gdGhlIGNoZWNrcyB3ZSBjYW4KLQkgKiBkbyB3aXRob3V0IHNsb3dpbmcgZG93biBnb29kIGhhcmR3YXJlIHVubmVjZXNzYXJpbHkuCi0JICoKLQkgKiBOb3RlIHRoYXQgSVJRNyBhbmQgSVJRMTUgKHRoZSB0d28gc3B1cmlvdXMgSVJRcwotCSAqIHVzdWFsbHkgcmVzdWx0aW5nIGZyb20gdGhlIDgyNTlBLTF8MiBQSUNzKSBvY2N1cgotCSAqIGV2ZW4gaWYgdGhlIElSUSBpcyBtYXNrZWQgaW4gdGhlIDgyNTlBLiBUaHVzIHdlCi0JICogY2FuIGNoZWNrIHNwdXJpb3VzIDgyNTlBIElSUXMgd2l0aG91dCBkb2luZyB0aGUKLQkgKiBxdWl0ZSBzbG93IGk4MjU5QV9pcnFfcmVhbCgpIGNhbGwgZm9yIGV2ZXJ5IElSUS4KLQkgKiBUaGlzIGRvZXMgbm90IGNvdmVyIDEwMCUgb2Ygc3B1cmlvdXMgaW50ZXJydXB0cywKLQkgKiBidXQgc2hvdWxkIGJlIGVub3VnaCB0byB3YXJuIHRoZSB1c2VyIHRoYXQgdGhlcmUKLQkgKiBpcyBzb21ldGhpbmcgYmFkIGdvaW5nIG9uIC4uLgotCSAqLwotCWlmIChjYWNoZWRfaXJxX21hc2sgJiBpcnFtYXNrKQotCQlnb3RvIHNwdXJpb3VzXzgyNTlBX2lycTsKLQljYWNoZWRfaXJxX21hc2sgfD0gaXJxbWFzazsKLQotaGFuZGxlX3JlYWxfaXJxOgotCWlmIChpcnEgJiA4KSB7Ci0JCWluYihQSUNfU0xBVkVfSU1SKTsJLyogRFVNTVkgLSAoZG8gd2UgbmVlZCB0aGlzPykgKi8KLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JCS8qICdTcGVjaWZpYyBFT0knIHRvIHNsYXZlICovCi0JCW91dGIoMHg2MCsoaXJxJjcpLFBJQ19TTEFWRV9DTUQpOwotCQkgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsKLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXIgKi8KLQkJb3V0YigweDYwK2lycSxQSUNfTUFTVEVSX0NNRCk7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JcmV0dXJuOwotCi1zcHVyaW91c184MjU5QV9pcnE6Ci0JLyoKLQkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KLQkgKi8KLQlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCi0JCS8qCi0JCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKLQkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KLQkJICovCi0JCWdvdG8gaGFuZGxlX3JlYWxfaXJxOwotCi0JewotCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOwotCQkvKgotCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCi0JCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCi0JCSAqLwotCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7Ci0JCQlwcmludGsoS0VSTl9ERUJVRwotCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MzAtMHgzNyAqLwotCW91dGJfcGljKElSUTBfVkVDVE9SLCBQSUNfTUFTVEVSX0lNUik7Ci0JLyogODI1OUEtMSAodGhlIG1hc3RlcikgaGFzIGEgc2xhdmUgb24gSVIyICovCi0Jb3V0Yl9waWMoMHgwNCwgUElDX01BU1RFUl9JTVIpOwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0JLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gMHgzOC0weDNmICovCi0Jb3V0Yl9waWMoSVJROF9WRUNUT1IsIFBJQ19TTEFWRV9JTVIpOwotCS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7Ci0JLyogKHNsYXZlJ3Mgc3VwcG9ydCBmb3IgQUVPSSBpbiBmbGF0IG1vZGUgaXMgdG8gYmUgaW52ZXN0aWdhdGVkKSAqLwotCW91dGJfcGljKFNMQVZFX0lDVzRfREVGQVVMVCwgUElDX1NMQVZFX0lNUik7Ci0KLQlpZiAoYXV0b19lb2kpCi0JCS8qCi0JCSAqIEluIEFFT0kgbW9kZSB3ZSBqdXN0IGhhdmUgdG8gbWFzayB0aGUgaW50ZXJydXB0Ci0JCSAqIHdoZW4gYWNraW5nLgotCQkgKi8KLQkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBkaXNhYmxlXzgyNTlBX2lycTsKLQllbHNlCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gbWFza19hbmRfYWNrXzgyNTlBOwotCi0JdWRlbGF5KDEwMCk7CQkvKiB3YWl0IGZvciA4MjU5QSB0byBpbml0aWFsaXplICovCi0KLQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOyAvKiByZXN0b3JlIG1hc3RlciBJUlEgbWFzayAqLwotCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwkgIC8qIHJlc3RvcmUgc2xhdmUgSVJRIG1hc2sgKi8KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLQotCi0KLS8qCi0gKiBJUlEyIGlzIGNhc2NhZGUgaW50ZXJydXB0IHRvIHNlY29uZCBpbnRlcnJ1cHQgY29udHJvbGxlcgotICovCi0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTIgPSB7Ci0JLmhhbmRsZXIgPSBub19hY3Rpb24sCi0JLm1hc2sgPSBDUFVfTUFTS19OT05FLAotCS5uYW1lID0gImNhc2NhZGUiLAotfTsKLURFRklORV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSkgPSB7Ci0JWzAgLi4uIElSUTBfVkVDVE9SIC0gMV0gPSAtMSwKLQlbSVJRMF9WRUNUT1JdID0gMCwKLQlbSVJRMV9WRUNUT1JdID0gMSwKLQlbSVJRMl9WRUNUT1JdID0gMiwKLQlbSVJRM19WRUNUT1JdID0gMywKLQlbSVJRNF9WRUNUT1JdID0gNCwKLQlbSVJRNV9WRUNUT1JdID0gNSwKLQlbSVJRNl9WRUNUT1JdID0gNiwKLQlbSVJRN19WRUNUT1JdID0gNywKLQlbSVJROF9WRUNUT1JdID0gOCwKLQlbSVJROV9WRUNUT1JdID0gOSwKLQlbSVJRMTBfVkVDVE9SXSA9IDEwLAotCVtJUlExMV9WRUNUT1JdID0gMTEsCi0JW0lSUTEyX1ZFQ1RPUl0gPSAxMiwKLQlbSVJRMTNfVkVDVE9SXSA9IDEzLAotCVtJUlExNF9WRUNUT1JdID0gMTQsCi0JW0lSUTE1X1ZFQ1RPUl0gPSAxNSwKLQlbSVJRMTVfVkVDVE9SICsgMSAuLi4gTlJfVkVDVE9SUyAtIDFdID0gLTEKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlpbml0X2JzcF9BUElDKCk7Ci0JaW5pdF84MjU5QSgwKTsKLQotCWZvciAoaSA9IDA7IGkgPCBOUl9JUlFTOyBpKyspIHsKLQkJaXJxX2Rlc2NbaV0uc3RhdHVzID0gSVJRX0RJU0FCTEVEOwotCQlpcnFfZGVzY1tpXS5hY3Rpb24gPSBOVUxMOwotCQlpcnFfZGVzY1tpXS5kZXB0aCA9IDE7Ci0KLQkJaWYgKGkgPCAxNikgewotCQkJLyoKLQkJCSAqIDE2IG9sZC1zdHlsZSBJTlRBLWN5Y2xlIGludGVycnVwdHM6Ci0JCQkgKi8KLQkJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJCSAgICAgIGhhbmRsZV9sZXZlbF9pcnEsICJYVCIpOwotCQl9IGVsc2UgewotCQkJLyoKLQkJCSAqICdoaWdoJyBQQ0kgSVJRcyBmaWxsZWQgaW4gb24gZGVtYW5kCi0JCQkgKi8KLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmbm9faXJxX2NoaXA7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JaW5pdF9JU0FfaXJxcygpOwotCS8qCi0JICogQ292ZXIgdGhlIHdob2xlIHZlY3RvciBzcGFjZSwgbm8gdmVjdG9yIGNhbiBlc2NhcGUKLQkgKiB1cy4gKHNvbWUgb2YgdGhlc2Ugd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBiZWNvbWUKLQkgKiAnc3BlY2lhbCcgU01QIGludGVycnVwdHMpCi0JICovCi0JZm9yIChpID0gMDsgaSA8IChOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SKTsgaSsrKSB7Ci0JCWludCB2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyBpOwotCQlpZiAodmVjdG9yICE9IElBMzJfU1lTQ0FMTF9WRUNUT1IpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JLyoKLQkgKiBUaGUgcmVzY2hlZHVsZSBpbnRlcnJ1cHQgaXMgYSBDUFUtdG8tQ1BVIHJlc2NoZWR1bGUtaGVscGVyCi0JICogSVBJLCBkcml2ZW4gYnkgd2FrZXVwLgotCSAqLwotCXNldF9pbnRyX2dhdGUoUkVTQ0hFRFVMRV9WRUNUT1IsIHJlc2NoZWR1bGVfaW50ZXJydXB0KTsKLQotCS8qIElQSXMgZm9yIGludmFsaWRhdGlvbiAqLwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzAsIGludmFsaWRhdGVfaW50ZXJydXB0MCk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMSwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQxKTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsyLCBpbnZhbGlkYXRlX2ludGVycnVwdDIpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzMsIGludmFsaWRhdGVfaW50ZXJydXB0Myk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNCwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ0KTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs1LCBpbnZhbGlkYXRlX2ludGVycnVwdDUpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzYsIGludmFsaWRhdGVfaW50ZXJydXB0Nik7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNywgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ3KTsKLQotCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOwotCi0JLyogTG93IHByaW9yaXR5IElQSSB0byBjbGVhbnVwIGFmdGVyIG1vdmluZyBhbiBpcnEgKi8KLQlzZXRfaW50cl9nYXRlKElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SLCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCk7Ci0jZW5kaWYKLQlzZXRfaW50cl9nYXRlKFRIRVJNQUxfQVBJQ19WRUNUT1IsIHRoZXJtYWxfaW50ZXJydXB0KTsKLQlzZXRfaW50cl9nYXRlKFRIUkVTSE9MRF9BUElDX1ZFQ1RPUiwgdGhyZXNob2xkX2ludGVycnVwdCk7Ci0KLQkvKiBzZWxmIGdlbmVyYXRlZCBJUEkgZm9yIGxvY2FsIEFQSUMgdGltZXIgKi8KLQlzZXRfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOwotCi0JLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KLQlzZXRfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOwotCXNldF9pbnRyX2dhdGUoRVJST1JfQVBJQ19WRUNUT1IsIGVycm9yX2ludGVycnVwdCk7Ci0KLQlpZiAoIWFjcGlfaW9hcGljKQotCQlzZXR1cF9pcnEoMiwgJmlycTIpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzMyLmMKaW5kZXggYTQwZDU0Zi4uNjAzMjYxYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY18zMi5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KQEAgLTU4LDcgKzU5LDcgQEAKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaW9hcGljX2xvY2spOwogc3RhdGljIERFRklORV9TUElOTE9DSyh2ZWN0b3JfbG9jayk7CiAKLWludCB0aW1lcl9vdmVyXzgyNTQgX19pbml0ZGF0YSA9IDE7CitpbnQgdGltZXJfdGhyb3VnaF84MjU5IF9faW5pdGRhdGE7CiAKIC8qCiAgKglJcyB0aGUgU2lTIEFQSUMgcm13IGJ1ZyBwcmVzZW50ID8KQEAgLTcyLDE1ICs3MywyMSBAQAogaW50IG5yX2lvYXBpY19yZWdpc3RlcnNbTUFYX0lPX0FQSUNTXTsKIAogLyogSS9PIEFQSUMgZW50cmllcyAqLwotc3RydWN0IG1wY19jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKK3N0cnVjdCBtcF9jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKIGludCBucl9pb2FwaWNzOwogCiAvKiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KLXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CitzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CiAKIC8qICMgb2YgTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCiBpbnQgbXBfaXJxX2VudHJpZXM7CiAKKyNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKK2ludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKKyNlbmRpZgorCitERUNMQVJFX0JJVE1BUChtcF9idXNfbm90X3BjaSwgTUFYX01QX0JVU1NFUyk7CisKIHN0YXRpYyBpbnQgZGlzYWJsZV90aW1lcl9waW5fMSBfX2luaXRkYXRhOwogCiAvKgpAQCAtMTEwLDcgKzExNyw3IEBACiBzdGF0aWMgX19hdHRyaWJ1dGVfY29uc3RfXyBzdHJ1Y3QgaW9fYXBpYyBfX2lvbWVtICppb19hcGljX2Jhc2UoaW50IGlkeCkKIHsKIAlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSBfX2ZpeF90b192aXJ0KEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCkKLQkJKyAobXBfaW9hcGljc1tpZHhdLm1wY19hcGljYWRkciAmIH5QQUdFX01BU0spOworCQkrIChtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW9fYXBpY19yZWFkKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKQpAQCAtMjM5LDcgKzI0Niw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBfX21vZGlmeV9JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSwgdW5zaWduZWQgbG9uZyBlbmFibGUsIHVuc2lnbmVkIGxvbmcgZGlzYWJsZSkKK3N0YXRpYyB2b2lkIF9fbW9kaWZ5X0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEsIHVuc2lnbmVkIGxvbmcgZW5hYmxlLCB1bnNpZ25lZCBsb25nIGRpc2FibGUpCiB7CiAJc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnkgPSBpcnFfMl9waW4gKyBpcnE7CiAJdW5zaWduZWQgaW50IHBpbiwgcmVnOwpAQCAtMjU5LDMwICsyNjYsMzIgQEAKIH0KIAogLyogbWFzayA9IDEgKi8KLXN0YXRpYyB2b2lkIF9fbWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIF9fbWFza19JT19BUElDX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewotCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgMHgwMDAxMDAwMCwgMCk7CisJX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCBJT19BUElDX1JFRElSX01BU0tFRCwgMCk7CiB9CiAKIC8qIG1hc2sgPSAwICovCi1zdGF0aWMgdm9pZCBfX3VubWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIF9fdW5tYXNrX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCAwLCAweDAwMDEwMDAwKTsKKwlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDAsIElPX0FQSUNfUkVESVJfTUFTS0VEKTsKIH0KIAogLyogbWFzayA9IDEsIHRyaWdnZXIgPSAwICovCi1zdGF0aWMgdm9pZCBfX21hc2tfYW5kX2VkZ2VfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX21hc2tfYW5kX2VkZ2VfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDB4MDAwMTAwMDAsIDB4MDAwMDgwMDApOworCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgSU9fQVBJQ19SRURJUl9NQVNLRUQsCisJCQkJSU9fQVBJQ19SRURJUl9MRVZFTF9UUklHR0VSKTsKIH0KIAogLyogbWFzayA9IDAsIHRyaWdnZXIgPSAxICovCi1zdGF0aWMgdm9pZCBfX3VubWFza19hbmRfbGV2ZWxfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX3VubWFza19hbmRfbGV2ZWxfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDB4MDAwMDgwMDAsIDB4MDAwMTAwMDApOworCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgSU9fQVBJQ19SRURJUl9MRVZFTF9UUklHR0VSLAorCQkJCUlPX0FQSUNfUkVESVJfTUFTS0VEKTsKIH0KIAotc3RhdGljIHZvaWQgbWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIG1hc2tfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0yOTEsNyArMzAwLDcgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCB1bm1hc2tfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0zMDMsNyArMzEyLDcgQEAKIHN0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUNfcGluKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcGluKQogewogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5OwotCQorCiAJLyogQ2hlY2sgZGVsaXZlcnlfbW9kZSB0byBiZSBzdXJlIHdlJ3JlIG5vdCBjbGVhcmluZyBhbiBTTUkgcGluICovCiAJZW50cnkgPSBpb2FwaWNfcmVhZF9lbnRyeShhcGljLCBwaW4pOwogCWlmIChlbnRyeS5kZWxpdmVyeV9tb2RlID09IGRlc3RfU01JKQpAQCAtMzE1LDcgKzMyNCw3IEBACiAJaW9hcGljX21hc2tfZW50cnkoYXBpYywgcGluKTsKIH0KIAotc3RhdGljIHZvaWQgY2xlYXJfSU9fQVBJQyAodm9pZCkKK3N0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUModm9pZCkKIHsKIAlpbnQgYXBpYywgcGluOwogCkBAIC0zMzIsNyArMzQxLDcgQEAKIAlzdHJ1Y3QgaXJxX3Bpbl9saXN0ICplbnRyeSA9IGlycV8yX3BpbiArIGlycTsKIAl1bnNpZ25lZCBpbnQgYXBpY2lkX3ZhbHVlOwogCWNwdW1hc2tfdCB0bXA7Ci0JCisKIAljcHVzX2FuZCh0bXAsIGNwdW1hc2ssIGNwdV9vbmxpbmVfbWFwKTsKIAlpZiAoY3B1c19lbXB0eSh0bXApKQogCQl0bXAgPSBUQVJHRVRfQ1BVUzsKQEAgLTM2MSw3ICszNzAsNyBAQAogIyBpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgkvKiBrc3RhdCAqLwogIyBpbmNsdWRlIDxsaW51eC9zbGFiLmg+CQkvKiBrbWFsbG9jKCkgKi8KICMgaW5jbHVkZSA8bGludXgvdGltZXIuaD4KLSAKKwogI2RlZmluZSBJUlFCQUxBTkNFX0NIRUNLX0FSQ0ggLTk5OQogI2RlZmluZSBNQVhfQkFMQU5DRURfSVJRX0lOVEVSVkFMCSg1KkhaKQogI2RlZmluZSBNSU5fQkFMQU5DRURfSVJRX0lOVEVSVkFMCShIWi8yKQpAQCAtMzczLDE0ICszODIsMTQgQEAKIHN0YXRpYyBsb25nIGJhbGFuY2VkX2lycV9pbnRlcnZhbCBfX3JlYWRfbW9zdGx5ID0gTUFYX0JBTEFOQ0VEX0lSUV9JTlRFUlZBTDsKIAogc3RhdGljIHN0cnVjdCBpcnFfY3B1X2luZm8gewotCXVuc2lnbmVkIGxvbmcgKiBsYXN0X2lycTsKLQl1bnNpZ25lZCBsb25nICogaXJxX2RlbHRhOworCXVuc2lnbmVkIGxvbmcgKmxhc3RfaXJxOworCXVuc2lnbmVkIGxvbmcgKmlycV9kZWx0YTsKIAl1bnNpZ25lZCBsb25nIGlycTsKIH0gaXJxX2NwdV9kYXRhW05SX0NQVVNdOwogCiAjZGVmaW5lIENQVV9JUlEoY3B1KQkJKGlycV9jcHVfZGF0YVtjcHVdLmlycSkKLSNkZWZpbmUgTEFTVF9DUFVfSVJRKGNwdSxpcnEpICAgKGlycV9jcHVfZGF0YVtjcHVdLmxhc3RfaXJxW2lycV0pCi0jZGVmaW5lIElSUV9ERUxUQShjcHUsaXJxKSAJKGlycV9jcHVfZGF0YVtjcHVdLmlycV9kZWx0YVtpcnFdKQorI2RlZmluZSBMQVNUX0NQVV9JUlEoY3B1LCBpcnEpICAgKGlycV9jcHVfZGF0YVtjcHVdLmxhc3RfaXJxW2lycV0pCisjZGVmaW5lIElSUV9ERUxUQShjcHUsIGlycSkgCShpcnFfY3B1X2RhdGFbY3B1XS5pcnFfZGVsdGFbaXJxXSkKIAogI2RlZmluZSBJRExFX0VOT1VHSChjcHUsbm93KSBcCiAJKGlkbGVfY3B1KGNwdSkgJiYgKChub3cpIC0gcGVyX2NwdShpcnFfc3RhdCwgKGNwdSkpLmlkbGVfdGltZXN0YW1wID4gMSkpCkBAIC00MTksOCArNDI4LDggQEAKIAkJCWlmIChjcHUgPT0gLTEpCiAJCQkJY3B1ID0gTlJfQ1BVUy0xOwogCQl9Ci0JfSB3aGlsZSAoIWNwdV9vbmxpbmUoY3B1KSB8fCAhSVJRX0FMTE9XRUQoY3B1LGFsbG93ZWRfbWFzaykgfHwKLQkJCShzZWFyY2hfaWRsZSAmJiAhSURMRV9FTk9VR0goY3B1LG5vdykpKTsKKwl9IHdoaWxlICghY3B1X29ubGluZShjcHUpIHx8ICFJUlFfQUxMT1dFRChjcHUsIGFsbG93ZWRfbWFzaykgfHwKKwkJCShzZWFyY2hfaWRsZSAmJiAhSURMRV9FTk9VR0goY3B1LCBub3cpKSk7CiAKIAlyZXR1cm4gY3B1OwogfQpAQCAtNDMwLDE1ICs0MzksMTQgQEAKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7CiAJY3B1bWFza190IGFsbG93ZWRfbWFzazsKIAl1bnNpZ25lZCBpbnQgbmV3X2NwdTsKLQkJCisKIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCkKLQkJcmV0dXJuOyAKKwkJcmV0dXJuOwogCiAJY3B1c19hbmQoYWxsb3dlZF9tYXNrLCBjcHVfb25saW5lX21hcCwgYmFsYW5jZV9pcnFfYWZmaW5pdHlbaXJxXSk7CiAJbmV3X2NwdSA9IG1vdmUoY3B1LCBhbGxvd2VkX21hc2ssIG5vdywgMSk7Ci0JaWYgKGNwdSAhPSBuZXdfY3B1KSB7CisJaWYgKGNwdSAhPSBuZXdfY3B1KQogCQlzZXRfcGVuZGluZ19pcnEoaXJxLCBjcHVtYXNrX29mX2NwdShuZXdfY3B1KSk7Ci0JfQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcm90YXRlX2lycXNfYW1vbmdfY3B1cyh1bnNpZ25lZCBsb25nIHVzZWZ1bF9sb2FkX3RocmVzaG9sZCkKQEAgLTQ1MCwxNCArNDU4LDE0IEBACiAJCQlpZiAoIWlycV9kZXNjW2pdLmFjdGlvbikKIAkJCQljb250aW51ZTsKIAkJCS8qIElzIGl0IGEgc2lnbmlmaWNhbnQgbG9hZCA/ICAqLwotCQkJaWYgKElSUV9ERUxUQShDUFVfVE9fUEFDS0FHRUlOREVYKGkpLGopIDwKKwkJCWlmIChJUlFfREVMVEEoQ1BVX1RPX1BBQ0tBR0VJTkRFWChpKSwgaikgPAogCQkJCQkJdXNlZnVsX2xvYWRfdGhyZXNob2xkKQogCQkJCWNvbnRpbnVlOwogCQkJYmFsYW5jZV9pcnEoaSwgaik7CiAJCX0KIAl9CiAJYmFsYW5jZWRfaXJxX2ludGVydmFsID0gbWF4KChsb25nKU1JTl9CQUxBTkNFRF9JUlFfSU5URVJWQUwsCi0JCWJhbGFuY2VkX2lycV9pbnRlcnZhbCAtIEJBTEFOQ0VEX0lSUV9MRVNTX0RFTFRBKTsJCisJCWJhbGFuY2VkX2lycV9pbnRlcnZhbCAtIEJBTEFOQ0VEX0lSUV9MRVNTX0RFTFRBKTsKIAlyZXR1cm47CiB9CiAKQEAgLTQ4NiwyMiArNDk0LDIyIEBACiAJCQkvKiBJcyB0aGlzIGFuIGFjdGl2ZSBJUlEgb3IgYmFsYW5jaW5nIGRpc2FibGVkID8gKi8KIAkJCWlmICghaXJxX2Rlc2Nbal0uYWN0aW9uIHx8IGlycV9iYWxhbmNpbmdfZGlzYWJsZWQoaikpCiAJCQkJY29udGludWU7Ci0JCQlpZiAoIHBhY2thZ2VfaW5kZXggPT0gaSApCi0JCQkJSVJRX0RFTFRBKHBhY2thZ2VfaW5kZXgsaikgPSAwOworCQkJaWYgKHBhY2thZ2VfaW5kZXggPT0gaSkKKwkJCQlJUlFfREVMVEEocGFja2FnZV9pbmRleCwgaikgPSAwOwogCQkJLyogRGV0ZXJtaW5lIHRoZSB0b3RhbCBjb3VudCBwZXIgcHJvY2Vzc29yIHBlciBJUlEgKi8KIAkJCXZhbHVlX25vdyA9ICh1bnNpZ25lZCBsb25nKSBrc3RhdF9jcHUoaSkuaXJxc1tqXTsKIAogCQkJLyogRGV0ZXJtaW5lIHRoZSBhY3Rpdml0eSBwZXIgcHJvY2Vzc29yIHBlciBJUlEgKi8KLQkJCWRlbHRhID0gdmFsdWVfbm93IC0gTEFTVF9DUFVfSVJRKGksaik7CisJCQlkZWx0YSA9IHZhbHVlX25vdyAtIExBU1RfQ1BVX0lSUShpLCBqKTsKIAogCQkJLyogVXBkYXRlIGxhc3RfY3B1X2lycVtdW10gZm9yIHRoZSBuZXh0IHRpbWUgKi8KLQkJCUxBU1RfQ1BVX0lSUShpLGopID0gdmFsdWVfbm93OworCQkJTEFTVF9DUFVfSVJRKGksIGopID0gdmFsdWVfbm93OwogCiAJCQkvKiBJZ25vcmUgSVJRcyB3aG9zZSByYXRlIGlzIGxlc3MgdGhhbiB0aGUgY2xvY2sgKi8KIAkJCWlmIChkZWx0YSA8IHVzZWZ1bF9sb2FkX3RocmVzaG9sZCkKIAkJCQljb250aW51ZTsKIAkJCS8qIHVwZGF0ZSB0aGUgbG9hZCBmb3IgdGhlIHByb2Nlc3NvciBvciBwYWNrYWdlIHRvdGFsICovCi0JCQlJUlFfREVMVEEocGFja2FnZV9pbmRleCxqKSArPSBkZWx0YTsKKwkJCUlSUV9ERUxUQShwYWNrYWdlX2luZGV4LCBqKSArPSBkZWx0YTsKIAogCQkJLyogS2VlcCB0cmFjayBvZiB0aGUgaGlnaGVyIG51bWJlcmVkIHNpYmxpbmcgYXMgd2VsbCAqLwogCQkJaWYgKGkgIT0gcGFja2FnZV9pbmRleCkKQEAgLTUyNyw3ICs1MzUsOCBAQAogCW1heF9jcHVfaXJxID0gVUxPTkdfTUFYOwogCiB0cnlhbm90aGVyY3B1OgotCS8qIExvb2sgZm9yIGhlYXZpZXN0IGxvYWRlZCBwcm9jZXNzb3IuCisJLyoKKwkgKiBMb29rIGZvciBoZWF2aWVzdCBsb2FkZWQgcHJvY2Vzc29yLgogCSAqIFdlIG1heSBjb21lIGJhY2sgdG8gZ2V0IHRoZSBuZXh0IGhlYXZpZXN0IGxvYWRlZCBwcm9jZXNzb3IuCiAJICogU2tpcCBwcm9jZXNzb3JzIHdpdGggdHJpdmlhbCBsb2Fkcy4KIAkgKi8KQEAgLTUzNiw3ICs1NDUsNyBAQAogCWZvcl9lYWNoX29ubGluZV9jcHUoaSkgewogCQlpZiAoaSAhPSBDUFVfVE9fUEFDS0FHRUlOREVYKGkpKQogCQkJY29udGludWU7Ci0JCWlmIChtYXhfY3B1X2lycSA8PSBDUFVfSVJRKGkpKSAKKwkJaWYgKG1heF9jcHVfaXJxIDw9IENQVV9JUlEoaSkpCiAJCQljb250aW51ZTsKIAkJaWYgKHRtcF9jcHVfaXJxIDwgQ1BVX0lSUShpKSkgewogCQkJdG1wX2NwdV9pcnEgPSBDUFVfSVJRKGkpOwpAQCAtNTQ1LDggKzU1NCw5IEBACiAJfQogCiAJaWYgKHRtcF9sb2FkZWQgPT0gLTEpIHsKLSAJIC8qIEluIHRoZSBjYXNlIG9mIHNtYWxsIG51bWJlciBvZiBoZWF2eSBpbnRlcnJ1cHQgc291cmNlcywgCi0JICAqIGxvYWRpbmcgc29tZSBvZiB0aGUgY3B1cyB0b28gbXVjaC4gV2UgdXNlIEluZ28ncyBvcmlnaW5hbCAKKwkgLyoKKwkgICogSW4gdGhlIGNhc2Ugb2Ygc21hbGwgbnVtYmVyIG9mIGhlYXZ5IGludGVycnVwdCBzb3VyY2VzLAorCSAgKiBsb2FkaW5nIHNvbWUgb2YgdGhlIGNwdXMgdG9vIG11Y2guIFdlIHVzZSBJbmdvJ3Mgb3JpZ2luYWwKIAkgICogYXBwcm9hY2ggdG8gcm90YXRlIHRoZW0gYXJvdW5kLgogCSAgKi8KIAkJaWYgKCFmaXJzdF9hdHRlbXB0ICYmIGltYmFsYW5jZSA+PSB1c2VmdWxfbG9hZF90aHJlc2hvbGQpIHsKQEAgLTU1NSwxMyArNTY1LDE0IEBACiAJCX0KIAkJZ290byBub3Rfd29ydGhfdGhlX2VmZm9ydDsKIAl9Ci0JCisKIAlmaXJzdF9hdHRlbXB0ID0gMDsJCS8qIGhlYXZpZXN0IHNlYXJjaCAqLwogCW1heF9jcHVfaXJxID0gdG1wX2NwdV9pcnE7CS8qIGxvYWQgKi8KIAltYXhfbG9hZGVkID0gdG1wX2xvYWRlZDsJLyogcHJvY2Vzc29yICovCiAJaW1iYWxhbmNlID0gKG1heF9jcHVfaXJxIC0gbWluX2NwdV9pcnEpIC8gMjsKLQkKLQkvKiBpZiBpbWJhbGFuY2UgaXMgbGVzcyB0aGFuIGFwcHJveCAxMCUgb2YgbWF4IGxvYWQsIHRoZW4KKworCS8qCisJICogaWYgaW1iYWxhbmNlIGlzIGxlc3MgdGhhbiBhcHByb3ggMTAlIG9mIG1heCBsb2FkLCB0aGVuCiAJICogb2JzZXJ2ZSBkaW1pbmlzaGluZyByZXR1cm5zIGFjdGlvbi4gLSBxdWl0CiAJICovCiAJaWYgKGltYmFsYW5jZSA8IChtYXhfY3B1X2lycSA+PiAzKSkKQEAgLTU3NywyNiArNTg4LDI1IEBACiAJCS8qIElzIHRoaXMgYW4gYWN0aXZlIElSUT8gKi8KIAkJaWYgKCFpcnFfZGVzY1tqXS5hY3Rpb24pCiAJCQljb250aW51ZTsKLQkJaWYgKGltYmFsYW5jZSA8PSBJUlFfREVMVEEobWF4X2xvYWRlZCxqKSkKKwkJaWYgKGltYmFsYW5jZSA8PSBJUlFfREVMVEEobWF4X2xvYWRlZCwgaikpCiAJCQljb250aW51ZTsKIAkJLyogVHJ5IHRvIGZpbmQgdGhlIElSUSB0aGF0IGlzIGNsb3Nlc3QgdG8gdGhlIGltYmFsYW5jZQogCQkgKiB3aXRob3V0IGdvaW5nIG92ZXIuCiAJCSAqLwotCQlpZiAobW92ZV90aGlzX2xvYWQgPCBJUlFfREVMVEEobWF4X2xvYWRlZCxqKSkgewotCQkJbW92ZV90aGlzX2xvYWQgPSBJUlFfREVMVEEobWF4X2xvYWRlZCxqKTsKKwkJaWYgKG1vdmVfdGhpc19sb2FkIDwgSVJRX0RFTFRBKG1heF9sb2FkZWQsIGopKSB7CisJCQltb3ZlX3RoaXNfbG9hZCA9IElSUV9ERUxUQShtYXhfbG9hZGVkLCBqKTsKIAkJCXNlbGVjdGVkX2lycSA9IGo7CiAJCX0KIAl9Ci0JaWYgKHNlbGVjdGVkX2lycSA9PSAtMSkgeworCWlmIChzZWxlY3RlZF9pcnEgPT0gLTEpCiAJCWdvdG8gdHJ5YW5vdGhlcmNwdTsKLQl9CiAKIAlpbWJhbGFuY2UgPSBtb3ZlX3RoaXNfbG9hZDsKLQkKKwogCS8qIEZvciBwaHlzaWNhbF9iYWxhbmNlIGNhc2UsIHdlIGFjY3VtdWxhdGVkIGJvdGggbG9hZAogCSAqIHZhbHVlcyBpbiB0aGUgb25lIG9mIHRoZSBzaWJsaW5ncyBjcHVfaXJxW10sCiAJICogdG8gdXNlIHRoZSBzYW1lIGNvZGUgZm9yIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHByb2Nlc3NvcnMKLQkgKiBhcyBtdWNoIGFzIHBvc3NpYmxlLiAKKwkgKiBhcyBtdWNoIGFzIHBvc3NpYmxlLgogCSAqCiAJICogTk9URTogdGhlIGNwdV9pcnFbXSBhcnJheSBob2xkcyB0aGUgc3VtIG9mIHRoZSBsb2FkIGZvcgogCSAqIHNpYmxpbmcgQSBhbmQgc2libGluZyBCIGluIHRoZSBzbG90IGZvciB0aGUgbG93ZXN0IG51bWJlcmVkCkBAIC02MjUsMTEgKzYzNSwxMSBAQAogCQkvKiBtYXJrIGZvciBjaGFuZ2UgZGVzdGluYXRpb24gKi8KIAkJc2V0X3BlbmRpbmdfaXJxKHNlbGVjdGVkX2lycSwgY3B1bWFza19vZl9jcHUobWluX2xvYWRlZCkpOwogCi0JCS8qIFNpbmNlIHdlIG1hZGUgYSBjaGFuZ2UsIGNvbWUgYmFjayBzb29uZXIgdG8gCisJCS8qIFNpbmNlIHdlIG1hZGUgYSBjaGFuZ2UsIGNvbWUgYmFjayBzb29uZXIgdG8KIAkJICogY2hlY2sgZm9yIG1vcmUgdmFyaWF0aW9uLgogCQkgKi8KIAkJYmFsYW5jZWRfaXJxX2ludGVydmFsID0gbWF4KChsb25nKU1JTl9CQUxBTkNFRF9JUlFfSU5URVJWQUwsCi0JCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgLSBCQUxBTkNFRF9JUlFfTEVTU19ERUxUQSk7CQorCQkJYmFsYW5jZWRfaXJxX2ludGVydmFsIC0gQkFMQU5DRURfSVJRX0xFU1NfREVMVEEpOwogCQlyZXR1cm47CiAJfQogCWdvdG8gdHJ5YW5vdGhlcmlycTsKQEAgLTY0MCw3ICs2NTAsNyBAQAogCSAqIHVwd2FyZAogCSAqLwogCWJhbGFuY2VkX2lycV9pbnRlcnZhbCA9IG1pbigobG9uZylNQVhfQkFMQU5DRURfSVJRX0lOVEVSVkFMLAotCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgKyBCQUxBTkNFRF9JUlFfTU9SRV9ERUxUQSk7CQorCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgKyBCQUxBTkNFRF9JUlFfTU9SRV9ERUxUQSk7CiAJcmV0dXJuOwogfQogCkBAIC02NzksMTMgKzY4OSwxMyBAQAogCWNwdW1hc2tfdCB0bXA7CiAKIAljcHVzX3NoaWZ0X3JpZ2h0KHRtcCwgY3B1X29ubGluZV9tYXAsIDIpOwotICAgICAgICBjID0gJmJvb3RfY3B1X2RhdGE7CisJYyA9ICZib290X2NwdV9kYXRhOwogCS8qIFdoZW4gbm90IG92ZXJ3cml0dGVuIGJ5IHRoZSBjb21tYW5kIGxpbmUgYXNrIHN1YmFyY2hpdGVjdHVyZS4gKi8KIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCA9PSBJUlFCQUxBTkNFX0NIRUNLX0FSQ0gpCiAJCWlycWJhbGFuY2VfZGlzYWJsZWQgPSBOT19CQUxBTkNFX0lSUTsKIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCkKIAkJcmV0dXJuIDA7Ci0JCisKIAkgLyogZGlzYWJsZSBpcnFiYWxhbmNlIGNvbXBsZXRlbHkgaWYgdGhlcmUgaXMgb25seSBvbmUgcHJvY2Vzc29yIG9ubGluZSAqLwogCWlmIChudW1fb25saW5lX2NwdXMoKSA8IDIpIHsKIAkJaXJxYmFsYW5jZV9kaXNhYmxlZCA9IDE7CkBAIC02OTksMTYgKzcwOSwxNCBAQAogCQlwaHlzaWNhbF9iYWxhbmNlID0gMTsKIAogCWZvcl9lYWNoX29ubGluZV9jcHUoaSkgewotCQlpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhID0ga21hbGxvYyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTLCBHRlBfS0VSTkVMKTsKLQkJaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxID0ga21hbGxvYyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTLCBHRlBfS0VSTkVMKTsKKwkJaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSA9IGt6YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7CisJCWlycV9jcHVfZGF0YVtpXS5sYXN0X2lycSA9IGt6YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7CiAJCWlmIChpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhID09IE5VTEwgfHwgaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxID09IE5VTEwpIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiYmFsYW5jZWRfaXJxX2luaXQ6IG91dCBvZiBtZW1vcnkiKTsKIAkJCWdvdG8gZmFpbGVkOwogCQl9Ci0JCW1lbXNldChpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhLDAsc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUyk7Ci0JCW1lbXNldChpcnFfY3B1X2RhdGFbaV0ubGFzdF9pcnEsMCxzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTKTsKIAl9Ci0JCisKIAlwcmludGsoS0VSTl9JTkZPICJTdGFydGluZyBiYWxhbmNlZF9pcnFcbiIpOwogCWlmICghSVNfRVJSKGt0aHJlYWRfcnVuKGJhbGFuY2VkX2lycSwgTlVMTCwgImtpcnFkIikpKQogCQlyZXR1cm4gMDsKQEAgLTgwMSwxMCArODA5LDEwIEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykKLQkJaWYgKG1wX2lycXNbaV0ubXBjX2lycXR5cGUgPT0gdHlwZSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkIHx8Ci0JCSAgICAgbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkgJiYKLQkJICAgIG1wX2lycXNbaV0ubXBjX2RzdGlycSA9PSBwaW4pCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gdHlwZSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCB8fAorCQkgICAgIG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkgJiYKKwkJICAgIG1wX2lycXNbaV0ubXBfZHN0aXJxID09IHBpbikKIAkJCXJldHVybiBpOwogCiAJcmV0dXJuIC0xOwpAQCAtODE4LDEzICs4MjYsMTMgQEAKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWlmICh0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGlycSkpCisJCSAgICAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUpICYmCisJCSAgICAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gaXJxKSkKIAotCQkJcmV0dXJuIG1wX2lycXNbaV0ubXBjX2RzdGlycTsKKwkJCXJldHVybiBtcF9pcnFzW2ldLm1wX2RzdGlycTsKIAl9CiAJcmV0dXJuIC0xOwogfQpAQCAtODM0LDE3ICs4NDIsMTcgQEAKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWlmICh0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGlycSkpCisJCSAgICAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUpICYmCisJCSAgICAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gaXJxKSkKIAkJCWJyZWFrOwogCX0KIAlpZiAoaSA8IG1wX2lycV9lbnRyaWVzKSB7CiAJCWludCBhcGljOwotCQlmb3IoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKLQkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQgPT0gbXBfaXJxc1tpXS5tcGNfZHN0YXBpYykKKwkJZm9yIChhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykgeworCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID09IG1wX2lycXNbaV0ubXBfZHN0YXBpYykKIAkJCQlyZXR1cm4gYXBpYzsKIAkJfQogCX0KQEAgLTg2NCwyOCArODcyLDI4IEBACiAKIAlhcGljX3ByaW50ayhBUElDX0RFQlVHLCAicXVlcnlpbmcgUENJIC0+IElSUSBtYXBwaW5nIGJ1czolZCwgIgogCQkic2xvdDolZCwgcGluOiVkLlxuIiwgYnVzLCBzbG90LCBwaW4pOwotCWlmIChtcF9idXNfaWRfdG9fcGNpX2J1c1tidXNdID09IC0xKSB7CisJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlBDSSBCSU9TIHBhc3NlZCBub25leGlzdGVudCBQQ0kgYnVzICVkIVxuIiwgYnVzKTsKIAkJcmV0dXJuIC0xOwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlmb3IgKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKQotCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wY19kc3RhcGljIHx8Ci0JCQkgICAgbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkKKwkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgfHwKKwkJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpCiAJCQkJYnJlYWs7CiAKIAkJaWYgKCF0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgICFtcF9pcnFzW2ldLm1wY19pcnF0eXBlICYmCisJCSAgICAhbXBfaXJxc1tpXS5tcF9pcnF0eXBlICYmCiAJCSAgICAoYnVzID09IGxidXMpICYmCi0JCSAgICAoc2xvdCA9PSAoKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA+PiAyKSAmIDB4MWYpKSkgewotCQkJaW50IGlycSA9IHBpbl8yX2lycShpLGFwaWMsbXBfaXJxc1tpXS5tcGNfZHN0aXJxKTsKKwkJICAgIChzbG90ID09ICgobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPj4gMikgJiAweDFmKSkpIHsKKwkJCWludCBpcnEgPSBwaW5fMl9pcnEoaSwgYXBpYywgbXBfaXJxc1tpXS5tcF9kc3RpcnEpOwogCiAJCQlpZiAoIShhcGljIHx8IElPX0FQSUNfSVJRKGlycSkpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgJiAzKSkKKwkJCWlmIChwaW4gPT0gKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxICYgMykpCiAJCQkJcmV0dXJuIGlycTsKIAkJCS8qCiAJCQkgKiBVc2UgdGhlIGZpcnN0IGFsbC1idXQtcGluIG1hdGNoaW5nIGVudHJ5IGFzIGEKQEAgLTkwMCw3ICs5MDgsNyBAQAogRVhQT1JUX1NZTUJPTChJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3Rvcik7CiAKIC8qCi0gKiBUaGlzIGZ1bmN0aW9uIGN1cnJlbnRseSBpcyBvbmx5IGEgaGVscGVyIGZvciB0aGUgaTM4NiBzbXAgYm9vdCBwcm9jZXNzIHdoZXJlIAorICogVGhpcyBmdW5jdGlvbiBjdXJyZW50bHkgaXMgb25seSBhIGhlbHBlciBmb3IgdGhlIGkzODYgc21wIGJvb3QgcHJvY2VzcyB3aGVyZQogICogd2UgbmVlZCB0byByZXByb2dyYW0gdGhlIGlvcmVkdGJscyB0byBjYXRlciBmb3IgdGhlIGNwdXMgd2hpY2ggaGF2ZSBjb21lIG9ubGluZQogICogc28gbWFzayBpbiBhbGwgY2FzZXMgc2hvdWxkIHNpbXBseSBiZSBUQVJHRVRfQ1BVUwogICovCkBAIC05NTIsNyArOTYwLDcgQEAKICAqIEVJU0EgY29uZm9ybWluZyBpbiB0aGUgTVAgdGFibGUsIHRoYXQgbWVhbnMgaXRzIHRyaWdnZXIgdHlwZSBtdXN0CiAgKiBiZSByZWFkIGluIGZyb20gdGhlIEVMQ1IgKi8KIAotI2RlZmluZSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpCShFSVNBX0VMQ1IobXBfaXJxc1tpZHhdLm1wY19zcmNidXNpcnEpKQorI2RlZmluZSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpCShFSVNBX0VMQ1IobXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycSkpCiAjZGVmaW5lIGRlZmF1bHRfRUlTQV9wb2xhcml0eShpZHgpCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCkKIAogLyogUENJIGludGVycnVwdHMgYXJlIGFsd2F5cyBwb2xhcml0eSBvbmUgbGV2ZWwgdHJpZ2dlcmVkLApAQCAtOTY5LDExNyArOTc3LDExNCBAQAogCiBzdGF0aWMgaW50IE1QQklPU19wb2xhcml0eShpbnQgaWR4KQogewotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAlpbnQgcG9sYXJpdHk7CiAKIAkvKgogCSAqIERldGVybWluZSBJUlEgbGluZSBwb2xhcml0eSAoaGlnaCBhY3RpdmUgb3IgbG93IGFjdGl2ZSk6CiAJICovCi0Jc3dpdGNoIChtcF9pcnFzW2lkeF0ubXBjX2lycWZsYWcgJiAzKQorCXN3aXRjaCAobXBfaXJxc1tpZHhdLm1wX2lycWZsYWcgJiAzKSB7CisJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCBwb2xhcml0eSAqLwogCXsKLQkJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCBwb2xhcml0eSAqLwotCQl7Ci0JCQlwb2xhcml0eSA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPwotCQkJCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCk6Ci0JCQkJZGVmYXVsdF9QQ0lfcG9sYXJpdHkoaWR4KTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMTogLyogaGlnaCBhY3RpdmUgKi8KLQkJewotCQkJcG9sYXJpdHkgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAyOiAvKiByZXNlcnZlZCAqLwotCQl7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCXBvbGFyaXR5ID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMzogLyogbG93IGFjdGl2ZSAqLwotCQl7Ci0JCQlwb2xhcml0eSA9IDE7Ci0JCQlicmVhazsKLQkJfQotCQlkZWZhdWx0OiAvKiBpbnZhbGlkICovCi0JCXsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOwotCQkJcG9sYXJpdHkgPSAxOwotCQkJYnJlYWs7Ci0JCX0KKwkJcG9sYXJpdHkgPSB0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKT8KKwkJCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCk6CisJCQlkZWZhdWx0X1BDSV9wb2xhcml0eShpZHgpOworCQlicmVhazsKKwl9CisJY2FzZSAxOiAvKiBoaWdoIGFjdGl2ZSAqLworCXsKKwkJcG9sYXJpdHkgPSAwOworCQlicmVhazsKKwl9CisJY2FzZSAyOiAvKiByZXNlcnZlZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXBvbGFyaXR5ID0gMTsKKwkJYnJlYWs7CisJfQorCWNhc2UgMzogLyogbG93IGFjdGl2ZSAqLworCXsKKwkJcG9sYXJpdHkgPSAxOworCQlicmVhazsKKwl9CisJZGVmYXVsdDogLyogaW52YWxpZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXBvbGFyaXR5ID0gMTsKKwkJYnJlYWs7CisJfQogCX0KIAlyZXR1cm4gcG9sYXJpdHk7CiB9CiAKIHN0YXRpYyBpbnQgTVBCSU9TX3RyaWdnZXIoaW50IGlkeCkKIHsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAJaW50IHRyaWdnZXI7CiAKIAkvKgogCSAqIERldGVybWluZSBJUlEgdHJpZ2dlciBtb2RlIChlZGdlIG9yIGxldmVsIHNlbnNpdGl2ZSk6CiAJICovCi0Jc3dpdGNoICgobXBfaXJxc1tpZHhdLm1wY19pcnFmbGFnPj4yKSAmIDMpCisJc3dpdGNoICgobXBfaXJxc1tpZHhdLm1wX2lycWZsYWc+PjIpICYgMykgeworCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgKi8KIAl7Ci0JCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgKi8KLQkJewotCQkJdHJpZ2dlciA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPwotCQkJCQlkZWZhdWx0X0lTQV90cmlnZ2VyKGlkeCk6Ci0JCQkJCWRlZmF1bHRfUENJX3RyaWdnZXIoaWR4KTsKKwkJdHJpZ2dlciA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPworCQkJCWRlZmF1bHRfSVNBX3RyaWdnZXIoaWR4KToKKwkJCQlkZWZhdWx0X1BDSV90cmlnZ2VyKGlkeCk7CiAjaWYgZGVmaW5lZChDT05GSUdfRUlTQSkgfHwgZGVmaW5lZChDT05GSUdfTUNBKQotCQkJc3dpdGNoIChtcF9idXNfaWRfdG9fdHlwZVtidXNdKQotCQkJewotCQkJCWNhc2UgTVBfQlVTX0lTQTogLyogSVNBIHBpbiAqLwotCQkJCXsKLQkJCQkJLyogc2V0IGJlZm9yZSB0aGUgc3dpdGNoICovCi0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljYXNlIE1QX0JVU19FSVNBOiAvKiBFSVNBIHBpbiAqLwotCQkJCXsKLQkJCQkJdHJpZ2dlciA9IGRlZmF1bHRfRUlTQV90cmlnZ2VyKGlkeCk7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljYXNlIE1QX0JVU19QQ0k6IC8qIFBDSSBwaW4gKi8KLQkJCQl7Ci0JCQkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJY2FzZSBNUF9CVVNfTUNBOiAvKiBNQ0EgcGluICovCi0JCQkJewotCQkJCQl0cmlnZ2VyID0gZGVmYXVsdF9NQ0FfdHJpZ2dlcihpZHgpOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJZGVmYXVsdDoKLQkJCQl7Ci0JCQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOwotCQkJCQl0cmlnZ2VyID0gMTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQorCQlzd2l0Y2ggKG1wX2J1c19pZF90b190eXBlW2J1c10pIHsKKwkJY2FzZSBNUF9CVVNfSVNBOiAvKiBJU0EgcGluICovCisJCXsKKwkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBNUF9CVVNfRUlTQTogLyogRUlTQSBwaW4gKi8KKwkJeworCQkJdHJpZ2dlciA9IGRlZmF1bHRfRUlTQV90cmlnZ2VyKGlkeCk7CisJCQlicmVhazsKKwkJfQorCQljYXNlIE1QX0JVU19QQ0k6IC8qIFBDSSBwaW4gKi8KKwkJeworCQkJLyogc2V0IGJlZm9yZSB0aGUgc3dpdGNoICovCisJCQlicmVhazsKKwkJfQorCQljYXNlIE1QX0JVU19NQ0E6IC8qIE1DQSBwaW4gKi8KKwkJeworCQkJdHJpZ2dlciA9IGRlZmF1bHRfTUNBX3RyaWdnZXIoaWR4KTsKKwkJCWJyZWFrOworCQl9CisJCWRlZmF1bHQ6CisJCXsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOworCQkJdHJpZ2dlciA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KICNlbmRpZgotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAxOiAvKiBlZGdlICovCi0JCXsKLQkJCXRyaWdnZXIgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAyOiAvKiByZXNlcnZlZCAqLwotCQl7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCXRyaWdnZXIgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAzOiAvKiBsZXZlbCAqLwotCQl7Ci0JCQl0cmlnZ2VyID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWRlZmF1bHQ6IC8qIGludmFsaWQgKi8KLQkJewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7Ci0JCQl0cmlnZ2VyID0gMDsKLQkJCWJyZWFrOwotCQl9CisJCWJyZWFrOworCX0KKwljYXNlIDE6IC8qIGVkZ2UgKi8KKwl7CisJCXRyaWdnZXIgPSAwOworCQlicmVhazsKKwl9CisJY2FzZSAyOiAvKiByZXNlcnZlZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXRyaWdnZXIgPSAxOworCQlicmVhazsKKwl9CisJY2FzZSAzOiAvKiBsZXZlbCAqLworCXsKKwkJdHJpZ2dlciA9IDE7CisJCWJyZWFrOworCX0KKwlkZWZhdWx0OiAvKiBpbnZhbGlkICovCisJeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKKwkJdHJpZ2dlciA9IDA7CisJCWJyZWFrOworCX0KIAl9CiAJcmV0dXJuIHRyaWdnZXI7CiB9CkBAIC0xMDk3LDE2ICsxMTAyLDE2IEBACiBzdGF0aWMgaW50IHBpbl8yX2lycShpbnQgaWR4LCBpbnQgYXBpYywgaW50IHBpbikKIHsKIAlpbnQgaXJxLCBpOwotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAogCS8qCiAJICogRGVidWdnaW5nIGNoZWNrLCB3ZSBhcmUgaW4gYmlnIHRyb3VibGUgaWYgdGhpcyBtZXNzYWdlIHBvcHMgdXAhCiAJICovCi0JaWYgKG1wX2lycXNbaWR4XS5tcGNfZHN0aXJxICE9IHBpbikKKwlpZiAobXBfaXJxc1tpZHhdLm1wX2RzdGlycSAhPSBwaW4pCiAJCXByaW50ayhLRVJOX0VSUiAiYnJva2VuIEJJT1Mgb3IgTVBUQUJMRSBwYXJzZXIsIGF5aWVlISFcbiIpOwogCiAJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKQotCQlpcnEgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1c2lycTsKKwkJaXJxID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycTsKIAllbHNlIHsKIAkJLyoKIAkJICogUENJIElSUXMgYXJlIG1hcHBlZCBpbiBvcmRlcgpAQCAtMTE0OCw4ICsxMTUzLDggQEAKIAogCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKIAkJZm9yIChwaW4gPSAwOyBwaW4gPCBucl9pb2FwaWNfcmVnaXN0ZXJzW2FwaWNdOyBwaW4rKykgewotCQkJaWR4ID0gZmluZF9pcnFfZW50cnkoYXBpYyxwaW4sbXBfSU5UKTsKLQkJCWlmICgoaWR4ICE9IC0xKSAmJiAoaXJxID09IHBpbl8yX2lycShpZHgsYXBpYyxwaW4pKSkKKwkJCWlkeCA9IGZpbmRfaXJxX2VudHJ5KGFwaWMsIHBpbiwgbXBfSU5UKTsKKwkJCWlmICgoaWR4ICE9IC0xKSAmJiAoaXJxID09IHBpbl8yX2lycShpZHgsIGFwaWMsIHBpbikpKQogCQkJCXJldHVybiBpcnFfdHJpZ2dlcihpZHgpOwogCQl9CiAJfQpAQCAtMTE2NCw3ICsxMTY5LDcgQEAKIAogc3RhdGljIGludCBfX2Fzc2lnbl9pcnFfdmVjdG9yKGludCBpcnEpCiB7Ci0Jc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IsIGN1cnJlbnRfb2Zmc2V0ID0gMDsKKwlzdGF0aWMgaW50IGN1cnJlbnRfdmVjdG9yID0gRklSU1RfREVWSUNFX1ZFQ1RPUiwgY3VycmVudF9vZmZzZXQ7CiAJaW50IHZlY3Rvciwgb2Zmc2V0OwogCiAJQlVHX09OKCh1bnNpZ25lZClpcnEgPj0gTlJfSVJRX1ZFQ1RPUlMpOwpAQCAtMTE3Niw3ICsxMTgxLDcgQEAKIAlvZmZzZXQgPSBjdXJyZW50X29mZnNldDsKIG5leHQ6CiAJdmVjdG9yICs9IDg7Ci0JaWYgKHZlY3RvciA+PSBGSVJTVF9TWVNURU1fVkVDVE9SKSB7CisJaWYgKHZlY3RvciA+PSBmaXJzdF9zeXN0ZW1fdmVjdG9yKSB7CiAJCW9mZnNldCA9IChvZmZzZXQgKyAxKSAlIDg7CiAJCXZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IgKyBvZmZzZXQ7CiAJfQpAQCAtMTIwMyw2ICsxMjA4LDExIEBACiAKIAlyZXR1cm4gdmVjdG9yOwogfQorCit2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSkKK3sKK30KKwogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpb2FwaWNfY2hpcDsKIAogI2RlZmluZSBJT0FQSUNfQVVUTwktMQpAQCAtMTIzNywyNSArMTI0NywyNSBAQAogCQkvKgogCQkgKiBhZGQgaXQgdG8gdGhlIElPLUFQSUMgaXJxLXJvdXRpbmcgdGFibGU6CiAJCSAqLwotCQltZW1zZXQoJmVudHJ5LDAsc2l6ZW9mKGVudHJ5KSk7CisJCW1lbXNldCgmZW50cnksIDAsIHNpemVvZihlbnRyeSkpOwogCiAJCWVudHJ5LmRlbGl2ZXJ5X21vZGUgPSBJTlRfREVMSVZFUllfTU9ERTsKIAkJZW50cnkuZGVzdF9tb2RlID0gSU5UX0RFU1RfTU9ERTsKIAkJZW50cnkubWFzayA9IDA7CQkJCS8qIGVuYWJsZSBJUlEgKi8KLQkJZW50cnkuZGVzdC5sb2dpY2FsLmxvZ2ljYWxfZGVzdCA9IAorCQllbnRyeS5kZXN0LmxvZ2ljYWwubG9naWNhbF9kZXN0ID0KIAkJCQkJY3B1X21hc2tfdG9fYXBpY2lkKFRBUkdFVF9DUFVTKTsKIAotCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLHBpbixtcF9JTlQpOworCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLCBwaW4sIG1wX0lOVCk7CiAJCWlmIChpZHggPT0gLTEpIHsKIAkJCWlmIChmaXJzdF9ub3Rjb24pIHsKIAkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcKIAkJCQkJCSIgSU8tQVBJQyAoYXBpY2lkLXBpbikgJWQtJWQiLAotCQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLAorCQkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQsCiAJCQkJCQlwaW4pOwogCQkJCWZpcnN0X25vdGNvbiA9IDA7CiAJCQl9IGVsc2UKIAkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIsICVkLSVkIiwKLQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLCBwaW4pOworCQkJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTEyODksNyArMTI5OSw3IEBACiAJCQl2ZWN0b3IgPSBhc3NpZ25faXJxX3ZlY3RvcihpcnEpOwogCQkJZW50cnkudmVjdG9yID0gdmVjdG9yOwogCQkJaW9hcGljX3JlZ2lzdGVyX2ludHIoaXJxLCB2ZWN0b3IsIElPQVBJQ19BVVRPKTsKLQkJCisKIAkJCWlmICghYXBpYyAmJiAoaXJxIDwgMTYpKQogCQkJCWRpc2FibGVfODI1OUFfaXJxKGlycSk7CiAJCX0KQEAgLTEzMDIsMjUgKzEzMTIsMjEgQEAKIH0KIAogLyoKLSAqIFNldCB1cCB0aGUgODI1OUEtbWFzdGVyIG91dHB1dCBwaW46CisgKiBTZXQgdXAgdGhlIHRpbWVyIHBpbiwgcG9zc2libHkgd2l0aCB0aGUgODI1OUEtbWFzdGVyIGJlaGluZC4KICAqLwotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX0V4dElOVF9JUlEwX3Bpbih1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHBpbiwgaW50IHZlY3RvcikKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF90aW1lcl9JUlEwX3Bpbih1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHBpbiwKKwkJCQkJaW50IHZlY3RvcikKIHsKIAlzdHJ1Y3QgSU9fQVBJQ19yb3V0ZV9lbnRyeSBlbnRyeTsKIAotCW1lbXNldCgmZW50cnksMCxzaXplb2YoZW50cnkpKTsKLQotCWRpc2FibGVfODI1OUFfaXJxKDApOwotCi0JLyogbWFzayBMVlQwICovCi0JYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7CisJbWVtc2V0KCZlbnRyeSwgMCwgc2l6ZW9mKGVudHJ5KSk7CiAKIAkvKgogCSAqIFdlIHVzZSBsb2dpY2FsIGRlbGl2ZXJ5IHRvIGdldCB0aGUgdGltZXIgSVJRCiAJICogdG8gdGhlIGZpcnN0IENQVS4KIAkgKi8KIAllbnRyeS5kZXN0X21vZGUgPSBJTlRfREVTVF9NT0RFOwotCWVudHJ5Lm1hc2sgPSAwOwkJCQkJLyogdW5tYXNrIElSUSBub3cgKi8KKwllbnRyeS5tYXNrID0gMTsJCQkJCS8qIG1hc2sgSVJRIG5vdyAqLwogCWVudHJ5LmRlc3QubG9naWNhbC5sb2dpY2FsX2Rlc3QgPSBjcHVfbWFza190b19hcGljaWQoVEFSR0VUX0NQVVMpOwogCWVudHJ5LmRlbGl2ZXJ5X21vZGUgPSBJTlRfREVMSVZFUllfTU9ERTsKIAllbnRyeS5wb2xhcml0eSA9IDA7CkBAIC0xMzI5LDE3ICsxMzM1LDE0IEBACiAKIAkvKgogCSAqIFRoZSB0aW1lciBJUlEgZG9lc24ndCBoYXZlIHRvIGtub3cgdGhhdCBiZWhpbmQgdGhlCi0JICogc2NlbmUgd2UgaGF2ZSBhIDgyNTlBLW1hc3RlciBpbiBBRU9JIG1vZGUgLi4uCisJICogc2NlbmUgd2UgbWF5IGhhdmUgYSA4MjU5QS1tYXN0ZXIgaW4gQUVPSSBtb2RlIC4uLgogCSAqLwotCWlycV9kZXNjWzBdLmNoaXAgPSAmaW9hcGljX2NoaXA7Ci0Jc2V0X2lycV9oYW5kbGVyKDAsIGhhbmRsZV9lZGdlX2lycSk7CisJaW9hcGljX3JlZ2lzdGVyX2ludHIoMCwgdmVjdG9yLCBJT0FQSUNfRURHRSk7CiAKIAkvKgogCSAqIEFkZCBpdCB0byB0aGUgSU8tQVBJQyBpcnEtcm91dGluZyB0YWJsZToKIAkgKi8KIAlpb2FwaWNfd3JpdGVfZW50cnkoYXBpYywgcGluLCBlbnRyeSk7Ci0KLQllbmFibGVfODI1OUFfaXJxKDApOwogfQogCiB2b2lkIF9faW5pdCBwcmludF9JT19BUElDKHZvaWQpCkBAIC0xMzU0LDEwICsxMzU3LDEwIEBACiAJaWYgKGFwaWNfdmVyYm9zaXR5ID09IEFQSUNfUVVJRVQpCiAJCXJldHVybjsKIAotIAlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIE1QIElSUSBzb3VyY2VzOiAlZC5cbiIsIG1wX2lycV9lbnRyaWVzKTsKKwlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIE1QIElSUSBzb3VyY2VzOiAlZC5cbiIsIG1wX2lycV9lbnRyaWVzKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKQogCQlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIElPLUFQSUMgIyVkIHJlZ2lzdGVyczogJWQuXG4iLAotCQkgICAgICAgbXBfaW9hcGljc1tpXS5tcGNfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKKwkJICAgICAgIG1wX2lvYXBpY3NbaV0ubXBfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKIAogCS8qCiAJICogV2UgYXJlIGEgYml0IGNvbnNlcnZhdGl2ZSBhYm91dCB3aGF0IHdlIGV4cGVjdC4gIFdlIGhhdmUgdG8KQEAgLTEzNzYsNyArMTM3OSw3IEBACiAJCXJlZ18wMy5yYXcgPSBpb19hcGljX3JlYWQoYXBpYywgMyk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAotCXByaW50ayhLRVJOX0RFQlVHICJJTyBBUElDICMlZC4uLi4uLlxuIiwgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiSU8gQVBJQyAjJWQuLi4uLi5cbiIsIG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLiByZWdpc3RlciAjMDA6ICUwOFhcbiIsIHJlZ18wMC5yYXcpOwogCXByaW50ayhLRVJOX0RFQlVHICIuLi4uLi4uICAgIDogcGh5c2ljYWwgQVBJQyBpZDogJTAyWFxuIiwgcmVnXzAwLmJpdHMuSUQpOwogCXByaW50ayhLRVJOX0RFQlVHICIuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogJVhcbiIsIHJlZ18wMC5iaXRzLmRlbGl2ZXJ5X3R5cGUpOwpAQCAtMTQ1OSw3ICsxNDYyLDcgQEAKIAogI2lmIDAKIAotc3RhdGljIHZvaWQgcHJpbnRfQVBJQ19iaXRmaWVsZCAoaW50IGJhc2UpCitzdGF0aWMgdm9pZCBwcmludF9BUElDX2JpdGZpZWxkKGludCBiYXNlKQogewogCXVuc2lnbmVkIGludCB2OwogCWludCBpLCBqOwpAQCAtMTQ4MCw3ICsxNDgzLDcgQEAKIAl9CiB9CiAKLXZvaWQgLypfX2luaXQqLyBwcmludF9sb2NhbF9BUElDKHZvaWQgKiBkdW1teSkKK3ZvaWQgLypfX2luaXQqLyBwcmludF9sb2NhbF9BUElDKHZvaWQgKmR1bW15KQogewogCXVuc2lnbmVkIGludCB2LCB2ZXIsIG1heGx2dDsKIApAQCAtMTQ4OSw2ICsxNDkyLDcgQEAKIAogCXByaW50aygiXG4iIEtFUk5fREVCVUcgInByaW50aW5nIGxvY2FsIEFQSUMgY29udGVudHMgb24gQ1BVIyVkLyVkOlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJdiA9IGFwaWNfcmVhZChBUElDX0lEKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBJRDogICAgICAlMDh4ICglMDF4KVxuIiwgdiwKIAkJCUdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKSk7CiAJdiA9IGFwaWNfcmVhZChBUElDX0xWUik7CkBAIC0xNTYzLDcgKzE1NjcsNyBAQAogCXByaW50aygiXG4iKTsKIH0KIAotdm9pZCBwcmludF9hbGxfbG9jYWxfQVBJQ3MgKHZvaWQpCit2b2lkIHByaW50X2FsbF9sb2NhbF9BUElDcyh2b2lkKQogewogCW9uX2VhY2hfY3B1KHByaW50X2xvY2FsX0FQSUMsIE5VTEwsIDEsIDEpOwogfQpAQCAtMTU4NiwxMSArMTU5MCwxMSBAQAogCXYgPSBpbmIoMHhhMCkgPDwgOCB8IGluYigweDIwKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uIFBJQyAgSVJSOiAlMDR4XG4iLCB2KTsKIAotCW91dGIoMHgwYiwweGEwKTsKLQlvdXRiKDB4MGIsMHgyMCk7CisJb3V0YigweDBiLCAweGEwKTsKKwlvdXRiKDB4MGIsIDB4MjApOwogCXYgPSBpbmIoMHhhMCkgPDwgOCB8IGluYigweDIwKTsKLQlvdXRiKDB4MGEsMHhhMCk7Ci0Jb3V0YigweDBhLDB4MjApOworCW91dGIoMHgwYSwgMHhhMCk7CisJb3V0YigweDBhLCAweDIwKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CiAKQEAgLTE2MjYsNyArMTYzMCw3IEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCW5yX2lvYXBpY19yZWdpc3RlcnNbYXBpY10gPSByZWdfMDEuYml0cy5lbnRyaWVzKzE7CiAJfQotCWZvcihhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykgeworCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKIAkJaW50IHBpbjsKIAkJLyogU2VlIGlmIGFueSBvZiB0aGUgcGlucyBpcyBpbiBFeHRJTlQgbW9kZSAqLwogCQlmb3IgKHBpbiA9IDA7IHBpbiA8IG5yX2lvYXBpY19yZWdpc3RlcnNbYXBpY107IHBpbisrKSB7CkBAIC0xNzE2LDcgKzE3MjAsNiBAQAogICogYnkgTWF0dCBEb21zY2ggPE1hdHRfRG9tc2NoQGRlbGwuY29tPiAgVHVlIERlYyAyMSAxMjoyNTowNSBDU1QgMTk5OQogICovCiAKLSNpZm5kZWYgQ09ORklHX1g4Nl9OVU1BUQogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2lvYXBpY19pZHNfZnJvbV9tcGModm9pZCkKIHsKIAl1bmlvbiBJT19BUElDX3JlZ18wMCByZWdfMDA7CkBAIC0xNzI2LDYgKzE3MjksMTEgQEAKIAl1bnNpZ25lZCBjaGFyIG9sZF9pZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCWlmIChmb3VuZF9udW1hcSkKKwkJcmV0dXJuOworI2VuZGlmCisKIAkvKgogCSAqIERvbid0IGNoZWNrIEkvTyBBUElDIElEcyBmb3IgeEFQSUMgc3lzdGVtcy4gIFRoZXkgaGF2ZQogCSAqIG5vIG1lYW5pbmcgd2l0aG91dCB0aGUgc2VyaWFsIEFQSUMgYnVzLgpAQCAtMTc0OCwxNSArMTc1NiwxNSBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAkJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChhcGljLCAwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKLQkJCi0JCW9sZF9pZCA9IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZDsKIAotCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID49IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkgeworCQlvbGRfaWQgPSBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZDsKKworCQlpZiAobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPj0gZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCgpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBJTy1BUElDIyVkIElEIGlzICVkIGluIHRoZSBNUEMgdGFibGUhLi4uXG4iLAotCQkJCWFwaWMsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQkJYXBpYywgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZml4aW5nIHVwIHRvICVkLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCiAJCQkJcmVnXzAwLmJpdHMuSUQpOwotCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID0gcmVnXzAwLmJpdHMuSUQ7CisJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9IHJlZ18wMC5iaXRzLklEOwogCQl9CiAKIAkJLyoKQEAgLTE3NjUsOSArMTc3Myw5IEBACiAJCSAqICdzdHVjayBvbiBzbXBfaW52YWxpZGF0ZV9uZWVkZWQgSVBJIHdhaXQnIG1lc3NhZ2VzLgogCQkgKi8KIAkJaWYgKGNoZWNrX2FwaWNpZF91c2VkKHBoeXNfaWRfcHJlc2VudF9tYXAsCi0JCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCkpIHsKKwkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBJTy1BUElDIyVkIElEICVkIGlzIGFscmVhZHkgdXNlZCEuLi5cbiIsCi0JCQkJYXBpYywgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwkJCQlhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAJCQlmb3IgKGkgPSAwOyBpIDwgZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCgpOyBpKyspCiAJCQkJaWYgKCFwaHlzaWRfaXNzZXQoaSwgcGh5c19pZF9wcmVzZW50X21hcCkpCiAJCQkJCWJyZWFrOwpAQCAtMTc3NiwxMyArMTc4NCwxMyBAQAogCQkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZml4aW5nIHVwIHRvICVkLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCiAJCQkJaSk7CiAJCQlwaHlzaWRfc2V0KGksIHBoeXNfaWRfcHJlc2VudF9tYXApOwotCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID0gaTsKKwkJCW1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID0gaTsKIAkJfSBlbHNlIHsKIAkJCXBoeXNpZF9tYXNrX3QgdG1wOwotCQkJdG1wID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQl0bXAgPSBhcGljaWRfdG9fY3B1X3ByZXNlbnQobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiU2V0dGluZyAlZCBpbiB0aGUgIgogCQkJCQkicGh5c19pZF9wcmVzZW50X21hcFxuIiwKLQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJcGh5c2lkc19vcihwaHlzX2lkX3ByZXNlbnRfbWFwLCBwaHlzX2lkX3ByZXNlbnRfbWFwLCB0bXApOwogCQl9CiAKQEAgLTE3OTEsMjEgKzE3OTksMjEgQEAKIAkJICogV2UgbmVlZCB0byBhZGp1c3QgdGhlIElSUSByb3V0aW5nIHRhYmxlCiAJCSAqIGlmIHRoZSBJRCBjaGFuZ2VkLgogCQkgKi8KLQkJaWYgKG9sZF9pZCAhPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpCisJCWlmIChvbGRfaWQgIT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpCiAJCQlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykKLQkJCQlpZiAobXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBvbGRfaWQpCi0JCQkJCW1wX2lycXNbaV0ubXBjX2RzdGFwaWMKLQkJCQkJCT0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkOworCQkJCWlmIChtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gb2xkX2lkKQorCQkJCQltcF9pcnFzW2ldLm1wX2RzdGFwaWMKKwkJCQkJCT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQ7CiAKIAkJLyoKIAkJICogUmVhZCB0aGUgcmlnaHQgdmFsdWUgZnJvbSB0aGUgTVBDIHRhYmxlIGFuZAogCQkgKiB3cml0ZSBpdCBpbnRvIHRoZSBJRCByZWdpc3Rlci4KLQkgCSAqLworCQkgKi8KIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0lORk8KIAkJCSIuLi5jaGFuZ2luZyBJTy1BUElDIHBoeXNpY2FsIEFQSUMgSUQgdG8gJWQgLi4uIiwKLQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAKLQkJcmVnXzAwLmJpdHMuSUQgPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQ7CisJCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQ7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogCQlpb19hcGljX3dyaXRlKGFwaWMsIDAsIHJlZ18wMC5yYXcpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwpAQCAtMTgxNiwxNSArMTgyNCwxMiBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAkJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChhcGljLCAwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKLQkJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCkKKwkJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKQogCQkJcHJpbnRrKCJjb3VsZCBub3Qgc2V0IElEIVxuIik7CiAJCWVsc2UKIAkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIiBvay5cbiIpOwogCX0KIH0KLSNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfaW9hcGljX2lkc19mcm9tX21wYyh2b2lkKSB7IH0KLSNlbmRpZgogCiBpbnQgbm9fdGltZXJfY2hlY2sgX19pbml0ZGF0YTsKIApAQCAtMjAxNSwxMiArMjAyMCwxMiBAQAogICogVGhlIGxvY2FsIEFQSUMgaXJxLWNoaXAgaW1wbGVtZW50YXRpb246CiAgKi8KIAotc3RhdGljIHZvaWQgYWNrX2FwaWModW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIGFja19sYXBpY19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAlhY2tfQVBJQ19pcnEoKTsKIH0KIAotc3RhdGljIHZvaWQgbWFza19sYXBpY19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBtYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMjAyOCw3ICsyMDMzLDcgQEAKIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIHYgfCBBUElDX0xWVF9NQVNLRUQpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hc2tfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgdW5tYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMjAzNywyMyArMjA0MiwzMSBAQAogfQogCiBzdGF0aWMgc3RydWN0IGlycV9jaGlwIGxhcGljX2NoaXAgX19yZWFkX21vc3RseSA9IHsKLQkubmFtZQkJPSAibG9jYWwtQVBJQy1lZGdlIiwKKwkubmFtZQkJPSAibG9jYWwtQVBJQyIsCiAJLm1hc2sJCT0gbWFza19sYXBpY19pcnEsCiAJLnVubWFzawkJPSB1bm1hc2tfbGFwaWNfaXJxLAotCS5lb2kJCT0gYWNrX2FwaWMsCisJLmFjawkJPSBhY2tfbGFwaWNfaXJxLAogfTsKIAorc3RhdGljIHZvaWQgbGFwaWNfcmVnaXN0ZXJfaW50cihpbnQgaXJxLCBpbnQgdmVjdG9yKQoreworCWlycV9kZXNjW2lycV0uc3RhdHVzICY9IH5JUlFfTEVWRUw7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmbGFwaWNfY2hpcCwgaGFuZGxlX2VkZ2VfaXJxLAorCQkJCSAgICAgICJlZGdlIik7CisJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFtpcnFdKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25taSh2b2lkKQogewogCS8qCi0gCSAqIERpcnR5IHRyaWNrIHRvIGVuYWJsZSB0aGUgTk1JIHdhdGNoZG9nIC4uLgorCSAqIERpcnR5IHRyaWNrIHRvIGVuYWJsZSB0aGUgTk1JIHdhdGNoZG9nIC4uLgogCSAqIFdlIHB1dCB0aGUgODI1OUEgbWFzdGVyIGludG8gQUVPSSBtb2RlIGFuZAogCSAqIHVubWFzayBvbiBhbGwgbG9jYWwgQVBJQ3MgTFZUMCBhcyBOTUkuCiAJICoKIAkgKiBUaGUgaWRlYSB0byB1c2UgdGhlIDgyNTlBIGluIEFFT0kgbW9kZSAoJzgyNTlBIFZpcnR1YWwgV2lyZScpCiAJICogaXMgZnJvbSBNYWNpZWogVy4gUm96eWNraSAtIHNvIHdlIGRvIG5vdCBoYXZlIHRvIEVPSSBmcm9tCiAJICogdGhlIE5NSSBoYW5kbGVyIG9yIHRoZSB0aW1lciBpbnRlcnJ1cHQuCi0JICovIAorCSAqLwogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgS0VSTl9JTkZPICJhY3RpdmF0aW5nIE5NSSBXYXRjaGRvZyAuLi4iKTsKIAogCWVuYWJsZV9OTUlfdGhyb3VnaF9MVlQwKCk7CkBAIC0yMTI5LDYgKzIxNDIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBjaGVja190aW1lcih2b2lkKQogewogCWludCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjI7CisJaW50IG5vX3BpbjEgPSAwOwogCWludCB2ZWN0b3I7CiAJdW5zaWduZWQgaW50IHZlcjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjE0NiwyMSArMjE2MCwxNyBAQAogCXNldF9pbnRyX2dhdGUodmVjdG9yLCBpbnRlcnJ1cHRbMF0pOwogCiAJLyoKLQkgKiBTdWJ0bGUsIGNvZGUgaW4gZG9fdGltZXJfaW50ZXJydXB0KCkgZXhwZWN0cyBhbiBBRU9JCi0JICogbW9kZSBmb3IgdGhlIDgyNTlBIHdoZW5ldmVyIGludGVycnVwdHMgYXJlIHJvdXRlZAotCSAqIHRocm91Z2ggSS9PIEFQSUNzLiAgQWxzbyBJUlEwIGhhcyB0byBiZSBlbmFibGVkIGluCi0JICogdGhlIDgyNTlBIHdoaWNoIGltcGxpZXMgdGhlIHZpcnR1YWwgd2lyZSBoYXMgdG8gYmUKLQkgKiBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4gIEZpbmFsbHkgdGltZXIgaW50ZXJydXB0cwotCSAqIG5lZWQgdG8gYmUgYWNrbm93bGVkZ2VkIG1hbnVhbGx5IGluIHRoZSA4MjU5QSBmb3IKLQkgKiB0aW1lcl9pbnRlcnJ1cHQoKSBhbmQgZm9yIHRoZSBpODI0ODlEWCB3aGVuIHVzaW5nCi0JICogdGhlIE5NSSB3YXRjaGRvZy4KKwkgKiBBcyBJUlEwIGlzIHRvIGJlIGVuYWJsZWQgaW4gdGhlIDgyNTlBLCB0aGUgdmlydHVhbAorCSAqIHdpcmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIHRoZSBsb2NhbCBBUElDLiAgQWxzbworCSAqIHRpbWVyIGludGVycnVwdHMgbmVlZCB0byBiZSBhY2tub3dsZWRnZWQgbWFudWFsbHkgaW4KKwkgKiB0aGUgODI1OUEgZm9yIHRoZSBpODI0ODlEWCB3aGVuIHVzaW5nIHRoZSBOTUkKKwkgKiB3YXRjaGRvZyBhcyB0aGF0IEFQSUMgdHJlYXRzIE5NSXMgYXMgbGV2ZWwtdHJpZ2dlcmVkLgorCSAqIFRoZSBBRU9JIG1vZGUgd2lsbCBmaW5pc2ggdGhlbSBpbiB0aGUgODI1OUEKKwkgKiBhdXRvbWF0aWNhbGx5LgogCSAqLwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOwogCWluaXRfODI1OUEoMSk7Ci0JdGltZXJfYWNrID0gIWNwdV9oYXNfdHNjOwotCXRpbWVyX2FjayB8PSAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDICYmICFBUElDX0lOVEVHUkFURUQodmVyKSk7Ci0JaWYgKHRpbWVyX292ZXJfODI1NCA+IDApCi0JCWVuYWJsZV84MjU5QV9pcnEoMCk7CisJdGltZXJfYWNrID0gKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQyAmJiAhQVBJQ19JTlRFR1JBVEVEKHZlcikpOwogCiAJcGluMSAgPSBmaW5kX2lzYV9pcnFfcGluKDAsIG1wX0lOVCk7CiAJYXBpYzEgPSBmaW5kX2lzYV9pcnFfYXBpYygwLCBtcF9JTlQpOwpAQCAtMjE3MCwxNCArMjE4MCwzMyBAQAogCXByaW50ayhLRVJOX0lORk8gIi4uVElNRVI6IHZlY3Rvcj0weCUwMlggYXBpYzE9JWQgcGluMT0lZCBhcGljMj0lZCBwaW4yPSVkXG4iLAogCQl2ZWN0b3IsIGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMik7CiAKKwkvKgorCSAqIFNvbWUgQklPUyB3cml0ZXJzIGFyZSBjbHVlbGVzcyBhbmQgcmVwb3J0IHRoZSBFeHRJTlRBCisJICogSS9PIEFQSUMgaW5wdXQgZnJvbSB0aGUgY2FzY2FkZWQgODI1OUEgYXMgdGhlIHRpbWVyCisJICogaW50ZXJydXB0IGlucHV0LiAgU28ganVzdCBpbiBjYXNlLCBpZiBvbmx5IG9uZSBwaW4KKwkgKiB3YXMgZm91bmQgYWJvdmUsIHRyeSBpdCBib3RoIGRpcmVjdGx5IGFuZCB0aHJvdWdoIHRoZQorCSAqIDgyNTlBLgorCSAqLworCWlmIChwaW4xID09IC0xKSB7CisJCXBpbjEgPSBwaW4yOworCQlhcGljMSA9IGFwaWMyOworCQlub19waW4xID0gMTsKKwl9IGVsc2UgaWYgKHBpbjIgPT0gLTEpIHsKKwkJcGluMiA9IHBpbjE7CisJCWFwaWMyID0gYXBpYzE7CisJfQorCiAJaWYgKHBpbjEgIT0gLTEpIHsKIAkJLyoKIAkJICogT2ssIGRvZXMgSVJRMCB0aHJvdWdoIHRoZSBJT0FQSUMgd29yaz8KIAkJICovCisJCWlmIChub19waW4xKSB7CisJCQlhZGRfcGluX3RvX2lycSgwLCBhcGljMSwgcGluMSk7CisJCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMSwgcGluMSwgdmVjdG9yKTsKKwkJfQogCQl1bm1hc2tfSU9fQVBJQ19pcnEoMCk7CiAJCWlmICh0aW1lcl9pcnFfd29ya3MoKSkgewogCQkJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykgewotCQkJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQkJCXNldHVwX25taSgpOwogCQkJCWVuYWJsZV84MjU5QV9pcnEoMCk7CiAJCQl9CkBAIC0yMTg2LDQ1ICsyMjE1LDQ3IEBACiAJCQlnb3RvIG91dDsKIAkJfQogCQljbGVhcl9JT19BUElDX3BpbihhcGljMSwgcGluMSk7Ci0JCXByaW50ayhLRVJOX0VSUiAiLi5NUC1CSU9TIGJ1ZzogODI1NCB0aW1lciBub3QgY29ubmVjdGVkIHRvICIKLQkJCQkiSU8tQVBJQ1xuIik7Ci0JfQorCQlpZiAoIW5vX3BpbjEpCisJCQlwcmludGsoS0VSTl9FUlIgIi4uTVAtQklPUyBidWc6ICIKKwkJCSAgICAgICAiODI1NCB0aW1lciBub3QgY29ubmVjdGVkIHRvIElPLUFQSUNcbiIpOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciAoSVJRMCkgdGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwotCWlmIChwaW4yICE9IC0xKSB7CisJCXByaW50ayhLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgKElSUTApICIKKwkJICAgICAgICJ0aHJvdWdoIHRoZSA4MjU5QSAuLi4gIik7CiAJCXByaW50aygiXG4uLi4uLiAoZm91bmQgcGluICVkKSAuLi4iLCBwaW4yKTsKIAkJLyoKIAkJICogbGVnYWN5IGRldmljZXMgc2hvdWxkIGJlIGNvbm5lY3RlZCB0byBJTyBBUElDICMwCiAJCSAqLwotCQlzZXR1cF9FeHRJTlRfSVJRMF9waW4oYXBpYzIsIHBpbjIsIHZlY3Rvcik7CisJCXJlcGxhY2VfcGluX2F0X2lycSgwLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOworCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMiwgcGluMiwgdmVjdG9yKTsKKwkJdW5tYXNrX0lPX0FQSUNfaXJxKDApOworCQllbmFibGVfODI1OUFfaXJxKDApOwogCQlpZiAodGltZXJfaXJxX3dvcmtzKCkpIHsKIAkJCXByaW50aygid29ya3MuXG4iKTsKLQkJCWlmIChwaW4xICE9IC0xKQotCQkJCXJlcGxhY2VfcGluX2F0X2lycSgwLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOwotCQkJZWxzZQotCQkJCWFkZF9waW5fdG9faXJxKDAsIGFwaWMyLCBwaW4yKTsKKwkJCXRpbWVyX3Rocm91Z2hfODI1OSA9IDE7CiAJCQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKSB7CisJCQkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCQkJc2V0dXBfbm1pKCk7CisJCQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJCX0KIAkJCWdvdG8gb3V0OwogCQl9CiAJCS8qCiAJCSAqIENsZWFudXAsIGp1c3QgaW4gY2FzZSAuLi4KIAkJICovCisJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQljbGVhcl9JT19BUElDX3BpbihhcGljMiwgcGluMik7CisJCXByaW50aygiIGZhaWxlZC5cbiIpOwogCX0KLQlwcmludGsoIiBmYWlsZWQuXG4iKTsKIAogCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAidGltZXIgZG9lc24ndCB3b3JrIHRocm91Z2ggdGhlIElPLUFQSUMgLSBkaXNhYmxpbmcgTk1JIFdhdGNoZG9nIVxuIik7Ci0JCW5taV93YXRjaGRvZyA9IDA7CisJCW5taV93YXRjaGRvZyA9IE5NSV9OT05FOwogCX0KKwl0aW1lcl9hY2sgPSAwOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciBhcyBWaXJ0dWFsIFdpcmUgSVJRLi4uIik7CiAKLQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKLQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZSgwLCAmbGFwaWNfY2hpcCwgaGFuZGxlX2Zhc3Rlb2lfaXJxLAotCQkJCSAgICAgICJmYXN0ZW9pIik7CisJbGFwaWNfcmVnaXN0ZXJfaW50cigwLCB2ZWN0b3IpOwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9GSVhFRCB8IHZlY3Rvcik7CS8qIEZpeGVkIG1vZGUgKi8KIAllbmFibGVfODI1OUFfaXJxKDApOwogCkBAIC0yMjMyLDEyICsyMjYzLDEyIEBACiAJCXByaW50aygiIHdvcmtzLlxuIik7CiAJCWdvdG8gb3V0OwogCX0KKwlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCB8IEFQSUNfRE1fRklYRUQgfCB2ZWN0b3IpOwogCXByaW50aygiIGZhaWxlZC5cbiIpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciBhcyBFeHRJTlQgSVJRLi4uIik7CiAKLQl0aW1lcl9hY2sgPSAwOwogCWluaXRfODI1OUEoMCk7CiAJbWFrZV84MjU5QV9pcnEoMCk7CiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX0VYVElOVCk7CkBAIC0yMjU2LDExICsyMjg3LDIxIEBACiB9CiAKIC8qCi0gKgotICogSVJRJ3MgdGhhdCBhcmUgaGFuZGxlZCBieSB0aGUgUElDIGluIHRoZSBNUFMgSU9BUElDIGNhc2UuCi0gKiAtIElSUTIgaXMgdGhlIGNhc2NhZGUgSVJRLCBhbmQgY2Fubm90IGJlIGEgaW8tYXBpYyBJUlEuCi0gKiAgIExpbnV4IGRvZXNuJ3QgcmVhbGx5IGNhcmUsIGFzIGl0J3Mgbm90IGFjdHVhbGx5IHVzZWQKLSAqICAgZm9yIGFueSBpbnRlcnJ1cHQgaGFuZGxpbmcgYW55d2F5LgorICogVHJhZGl0aW9uYWxseSBJU0EgSVJRMiBpcyB0aGUgY2FzY2FkZSBJUlEsIGFuZCBpcyBub3QgYXZhaWxhYmxlCisgKiB0byBkZXZpY2VzLiAgSG93ZXZlciB0aGVyZSBtYXkgYmUgYW4gSS9PIEFQSUMgcGluIGF2YWlsYWJsZSBmb3IKKyAqIHRoaXMgaW50ZXJydXB0IHJlZ2FyZGxlc3MuICBUaGUgcGluIG1heSBiZSBsZWZ0IHVuY29ubmVjdGVkLCBidXQKKyAqIHR5cGljYWxseSBpdCB3aWxsIGJlIHJldXNlZCBhcyBhbiBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgZm9yCisgKiB0aGUgbWFzdGVyIDgyNTlBLiAgSW4gdGhlIE1QUyBjYXNlIHN1Y2ggYSBwaW4gd2lsbCBub3JtYWxseSBiZQorICogcmVwb3J0ZWQgYXMgYW4gRXh0SU5UIGludGVycnVwdCBpbiB0aGUgTVAgdGFibGUuICBXaXRoIEFDUEkKKyAqIHRoZXJlIGlzIG5vIHByb3Zpc2lvbiBmb3IgRXh0SU5UIGludGVycnVwdHMsIGFuZCBpbiB0aGUgYWJzZW5jZQorICogb2YgYW4gb3ZlcnJpZGUgaXQgd291bGQgYmUgdHJlYXRlZCBhcyBhbiBvcmRpbmFyeSBJU0EgSS9PIEFQSUMKKyAqIGludGVycnVwdCwgdGhhdCBpcyBlZGdlLXRyaWdnZXJlZCBhbmQgdW5tYXNrZWQgYnkgZGVmYXVsdC4gIFdlCisgKiB1c2VkIHRvIGRvIHRoaXMsIGJ1dCBpdCBjYXVzZWQgcHJvYmxlbXMgb24gc29tZSBzeXN0ZW1zIGJlY2F1c2UKKyAqIG9mIHRoZSBOTUkgd2F0Y2hkb2cgYW5kIHNvbWV0aW1lcyBJUlEwIG9mIHRoZSA4MjU0IHRpbWVyIHVzaW5nCisgKiB0aGUgc2FtZSBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgdG8gZHJpdmUgdGhlIGxvY2FsIEFQSUMgb2YgdGhlCisgKiBib290c3RyYXAgcHJvY2Vzc29yLiAgVGhlcmVmb3JlIHdlIHJlZnJhaW4gZnJvbSByb3V0aW5nIElSUTIgdG8KKyAqIHRoZSBJL08gQVBJQyBpbiBhbGwgY2FzZXMgbm93LiAgTm8gYWN0dWFsIGRldmljZSBzaG91bGQgcmVxdWVzdAorICogaXQgYW55d2F5LiAgLS1tYWNybwogICovCiAjZGVmaW5lIFBJQ19JUlFTCSgxIDw8IFBJQ19DQVNDQURFX0lSKQogCkBAIC0yMjY5LDE1ICsyMzEwLDEyIEBACiAJaW50IGk7CiAKIAkvKiBSZXNlcnZlIGFsbCB0aGUgc3lzdGVtIHZlY3RvcnMuICovCi0JZm9yIChpID0gRklSU1RfU1lTVEVNX1ZFQ1RPUjsgaSA8IE5SX1ZFQ1RPUlM7IGkrKykKKwlmb3IgKGkgPSBmaXJzdF9zeXN0ZW1fdmVjdG9yOyBpIDwgTlJfVkVDVE9SUzsgaSsrKQogCQlzZXRfYml0KGksIHVzZWRfdmVjdG9ycyk7CiAKIAllbmFibGVfSU9fQVBJQygpOwogCi0JaWYgKGFjcGlfaW9hcGljKQotCQlpb19hcGljX2lycXMgPSB+MDsJLyogYWxsIElSUXMgZ28gdGhyb3VnaCBJT0FQSUMgKi8KLQllbHNlCi0JCWlvX2FwaWNfaXJxcyA9IH5QSUNfSVJRUzsKKwlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CiAKIAlwcmludGsoIkVOQUJMSU5HIElPLUFQSUMgSVJRc1xuIik7CiAKQEAgLTIyOTQsMjggKzIzMzIsMTQgQEAKIAkJcHJpbnRfSU9fQVBJQygpOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9kaXNhYmxlXzgyNTRfdGltZXIoY2hhciAqcykKLXsKLQl0aW1lcl9vdmVyXzgyNTQgPSAtMTsKLQlyZXR1cm4gMTsKLX0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gMjsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZGlzYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKTsKLV9fc2V0dXAoImVuYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZW5hYmxlXzgyNTRfdGltZXIpOwotCiAvKgogICoJQ2FsbGVkIGFmdGVyIGFsbCB0aGUgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4gSWYgd2UgZGlkbnQgZmluZCBhbnkKICAqCUFQSUMgYnVncyB0aGVuIHdlIGNhbiBhbGxvdyB0aGUgbW9kaWZ5IGZhc3QgcGF0aAogICovCi0gCisKIHN0YXRpYyBpbnQgX19pbml0IGlvX2FwaWNfYnVnX2ZpbmFsaXplKHZvaWQpCiB7Ci0JaWYoc2lzX2FwaWNfYnVnID09IC0xKQorCWlmIChzaXNfYXBpY19idWcgPT0gLTEpCiAJCXNpc19hcGljX2J1ZyA9IDA7CiAJcmV0dXJuIDA7CiB9CkBAIC0yMzI2LDE3ICsyMzUwLDE3IEBACiAJc3RydWN0IHN5c19kZXZpY2UgZGV2OwogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5WzBdOwogfTsKLXN0YXRpYyBzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEgKiBtcF9pb2FwaWNfZGF0YVtNQVhfSU9fQVBJQ1NdOworc3RhdGljIHN0cnVjdCBzeXNmc19pb2FwaWNfZGF0YSAqbXBfaW9hcGljX2RhdGFbTUFYX0lPX0FQSUNTXTsKIAogc3RhdGljIGludCBpb2FwaWNfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgKmVudHJ5OwogCXN0cnVjdCBzeXNmc19pb2FwaWNfZGF0YSAqZGF0YTsKIAlpbnQgaTsKLQkKKwogCWRhdGEgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEsIGRldik7CiAJZW50cnkgPSBkYXRhLT5lbnRyeTsKLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljX3JlZ2lzdGVyc1tkZXYtPmlkXTsgaSArKykKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljX3JlZ2lzdGVyc1tkZXYtPmlkXTsgaSsrKQogCQllbnRyeVtpXSA9IGlvYXBpY19yZWFkX2VudHJ5KGRldi0+aWQsIGkpOwogCiAJcmV0dXJuIDA7CkBAIC0yMzQ5LDE4ICsyMzczLDE4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bmlvbiBJT19BUElDX3JlZ18wMCByZWdfMDA7CiAJaW50IGk7Ci0JCisKIAlkYXRhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHN5c2ZzX2lvYXBpY19kYXRhLCBkZXYpOwogCWVudHJ5ID0gZGF0YS0+ZW50cnk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAlyZWdfMDAucmF3ID0gaW9fYXBpY19yZWFkKGRldi0+aWQsIDApOwotCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wY19hcGljaWQpIHsKLQkJcmVnXzAwLmJpdHMuSUQgPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wY19hcGljaWQ7CisJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBfYXBpY2lkKSB7CisJCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcF9hcGljaWQ7CiAJCWlvX2FwaWNfd3JpdGUoZGV2LT5pZCwgMCwgcmVnXzAwLnJhdyk7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7Ci0JZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkgKyspCisJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkrKykKIAkJaW9hcGljX3dyaXRlX2VudHJ5KGRldi0+aWQsIGksIGVudHJ5W2ldKTsKIAogCXJldHVybiAwOwpAQCAtMjM3NCwyNCArMjM5OCwyMyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBpb2FwaWNfaW5pdF9zeXNmcyh2b2lkKQogewotCXN0cnVjdCBzeXNfZGV2aWNlICogZGV2OworCXN0cnVjdCBzeXNfZGV2aWNlICpkZXY7CiAJaW50IGksIHNpemUsIGVycm9yID0gMDsKIAogCWVycm9yID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZpb2FwaWNfc3lzZGV2X2NsYXNzKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKysgKSB7Ci0JCXNpemUgPSBzaXplb2Yoc3RydWN0IHN5c19kZXZpY2UpICsgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXSAKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCXNpemUgPSBzaXplb2Yoc3RydWN0IHN5c19kZXZpY2UpICsgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXQogCQkJKiBzaXplb2Yoc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkpOwotCQltcF9pb2FwaWNfZGF0YVtpXSA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCW1wX2lvYXBpY19kYXRhW2ldID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFtcF9pb2FwaWNfZGF0YVtpXSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDYW4ndCBzdXNwZW5kL3Jlc3VtZSBJT0FQSUMgJWRcbiIsIGkpOwogCQkJY29udGludWU7CiAJCX0KLQkJbWVtc2V0KG1wX2lvYXBpY19kYXRhW2ldLCAwLCBzaXplKTsKIAkJZGV2ID0gJm1wX2lvYXBpY19kYXRhW2ldLT5kZXY7Ci0JCWRldi0+aWQgPSBpOyAKKwkJZGV2LT5pZCA9IGk7CiAJCWRldi0+Y2xzID0gJmlvYXBpY19zeXNkZXZfY2xhc3M7CiAJCWVycm9yID0gc3lzZGV2X3JlZ2lzdGVyKGRldik7CiAJCWlmIChlcnJvcikgewpAQCAtMjQ2Niw3ICsyNDg5LDcgQEAKIAkJbXNnLT5hZGRyZXNzX2xvID0KIAkJCU1TSV9BRERSX0JBU0VfTE8gfAogCQkJKChJTlRfREVTVF9NT0RFID09IDApID8KLQkJCQlNU0lfQUREUl9ERVNUX01PREVfUEhZU0lDQUw6CitNU0lfQUREUl9ERVNUX01PREVfUEhZU0lDQUw6CiAJCQkJTVNJX0FERFJfREVTVF9NT0RFX0xPR0lDQUwpIHwKIAkJCSgoSU5UX0RFTElWRVJZX01PREUgIT0gZGVzdF9Mb3dlc3RQcmlvKSA/CiAJCQkJTVNJX0FERFJfUkVESVJFQ1RJT05fQ1BVOgpAQCAtMjQ3Nyw3ICsyNTAwLDcgQEAKIAkJCU1TSV9EQVRBX1RSSUdHRVJfRURHRSB8CiAJCQlNU0lfREFUQV9MRVZFTF9BU1NFUlQgfAogCQkJKChJTlRfREVMSVZFUllfTU9ERSAhPSBkZXN0X0xvd2VzdFByaW8pID8KLQkJCQlNU0lfREFUQV9ERUxJVkVSWV9GSVhFRDoKK01TSV9EQVRBX0RFTElWRVJZX0ZJWEVEOgogCQkJCU1TSV9EQVRBX0RFTElWRVJZX0xPV1BSSSkgfAogCQkJTVNJX0RBVEFfVkVDVE9SKHZlY3Rvcik7CiAJfQpAQCAtMjY0OCwxMiArMjY3MSwxMiBAQAogI2VuZGlmIC8qIENPTkZJR19IVF9JUlEgKi8KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSS1iYXNlZCBJT0FQSUMgQ29uZmlndXJhdGlvbgorCQkJQUNQSS1iYXNlZCBJT0FQSUMgQ29uZmlndXJhdGlvbgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmZGVmIENPTkZJR19BQ1BJCiAKLWludCBfX2luaXQgaW9fYXBpY19nZXRfdW5pcXVlX2lkIChpbnQgaW9hcGljLCBpbnQgYXBpY19pZCkKK2ludCBfX2luaXQgaW9fYXBpY19nZXRfdW5pcXVlX2lkKGludCBpb2FwaWMsIGludCBhcGljX2lkKQogewogCXVuaW9uIElPX0FQSUNfcmVnXzAwIHJlZ18wMDsKIAlzdGF0aWMgcGh5c2lkX21hc2tfdCBhcGljX2lkX21hcCA9IFBIWVNJRF9NQVNLX05PTkU7CkBAIC0yNjYyLDEwICsyNjg1LDEwIEBACiAJaW50IGkgPSAwOwogCiAJLyoKLQkgKiBUaGUgUDQgcGxhdGZvcm0gc3VwcG9ydHMgdXAgdG8gMjU2IEFQSUMgSURzIG9uIHR3byBzZXBhcmF0ZSBBUElDIAotCSAqIGJ1c2VzIChvbmUgZm9yIExBUElDcywgb25lIGZvciBJT0FQSUNzKSwgd2hlcmUgcHJlZGVjZXNzb3JzIG9ubHkgCisJICogVGhlIFA0IHBsYXRmb3JtIHN1cHBvcnRzIHVwIHRvIDI1NiBBUElDIElEcyBvbiB0d28gc2VwYXJhdGUgQVBJQworCSAqIGJ1c2VzIChvbmUgZm9yIExBUElDcywgb25lIGZvciBJT0FQSUNzKSwgd2hlcmUgcHJlZGVjZXNzb3JzIG9ubHkKIAkgKiBzdXBwb3J0cyB1cCB0byAxNiBvbiBvbmUgc2hhcmVkIEFQSUMgYnVzLgotCSAqIAorCSAqCiAJICogVEJEOiBFeHBhbmQgTEFQSUMvSU9BUElDIHN1cHBvcnQgb24gUDQtY2xhc3Mgc3lzdGVtcyB0byB0YWtlIGZ1bGwKIAkgKiAgICAgIGFkdmFudGFnZSBvZiBuZXcgQVBJQyBidXMgYXJjaGl0ZWN0dXJlLgogCSAqLwpAQCAtMjY4NCw3ICsyNzA3LDcgQEAKIAl9CiAKIAkvKgotCSAqIEV2ZXJ5IEFQSUMgaW4gYSBzeXN0ZW0gbXVzdCBoYXZlIGEgdW5pcXVlIElEIG9yIHdlIGdldCBsb3RzIG9mIG5pY2UgCisJICogRXZlcnkgQVBJQyBpbiBhIHN5c3RlbSBtdXN0IGhhdmUgYSB1bmlxdWUgSUQgb3Igd2UgZ2V0IGxvdHMgb2YgbmljZQogCSAqICdzdHVjayBvbiBzbXBfaW52YWxpZGF0ZV9uZWVkZWQgSVBJIHdhaXQnIG1lc3NhZ2VzLgogCSAqLwogCWlmIChjaGVja19hcGljaWRfdXNlZChhcGljX2lkX21hcCwgYXBpY19pZCkpIHsKQEAgLTI3MDEsNyArMjcyNCw3IEBACiAJCQkidHJ5aW5nICVkXG4iLCBpb2FwaWMsIGFwaWNfaWQsIGkpOwogCiAJCWFwaWNfaWQgPSBpOwotCX0gCisJfQogCiAJdG1wID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KGFwaWNfaWQpOwogCXBoeXNpZHNfb3IoYXBpY19pZF9tYXAsIGFwaWNfaWRfbWFwLCB0bXApOwpAQCAtMjcyOCw3ICsyNzUxLDcgQEAKIH0KIAogCi1pbnQgX19pbml0IGlvX2FwaWNfZ2V0X3ZlcnNpb24gKGludCBpb2FwaWMpCitpbnQgX19pbml0IGlvX2FwaWNfZ2V0X3ZlcnNpb24oaW50IGlvYXBpYykKIHsKIAl1bmlvbiBJT19BUElDX3JlZ18wMQlyZWdfMDE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTI3NDEsNyArMjc2NCw3IEBACiB9CiAKIAotaW50IF9faW5pdCBpb19hcGljX2dldF9yZWRpcl9lbnRyaWVzIChpbnQgaW9hcGljKQoraW50IF9faW5pdCBpb19hcGljX2dldF9yZWRpcl9lbnRyaWVzKGludCBpb2FwaWMpCiB7CiAJdW5pb24gSU9fQVBJQ19yZWdfMDEJcmVnXzAxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yNzU0LDcgKzI3NzcsNyBAQAogfQogCiAKLWludCBpb19hcGljX3NldF9wY2lfcm91dGluZyAoaW50IGlvYXBpYywgaW50IHBpbiwgaW50IGlycSwgaW50IGVkZ2VfbGV2ZWwsIGludCBhY3RpdmVfaGlnaF9sb3cpCitpbnQgaW9fYXBpY19zZXRfcGNpX3JvdXRpbmcoaW50IGlvYXBpYywgaW50IHBpbiwgaW50IGlycSwgaW50IGVkZ2VfbGV2ZWwsIGludCBhY3RpdmVfaGlnaF9sb3cpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgZW50cnk7CiAKQEAgLTI3NzAsNyArMjc5Myw3IEBACiAJICogY29ycmVzcG9uZGluZyBkZXZpY2UgZHJpdmVyIHJlZ2lzdGVycyBmb3IgdGhpcyBJUlEuCiAJICovCiAKLQltZW1zZXQoJmVudHJ5LDAsc2l6ZW9mKGVudHJ5KSk7CisJbWVtc2V0KCZlbnRyeSwgMCwgc2l6ZW9mKGVudHJ5KSk7CiAKIAllbnRyeS5kZWxpdmVyeV9tb2RlID0gSU5UX0RFTElWRVJZX01PREU7CiAJZW50cnkuZGVzdF9tb2RlID0gSU5UX0RFU1RfTU9ERTsKQEAgLTI3ODksNyArMjgxMiw3IEBACiAKIAlhcGljX3ByaW50ayhBUElDX0RFQlVHLCBLRVJOX0RFQlVHICJJT0FQSUNbJWRdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgIgogCQkiKCVkLSVkIC0+IDB4JXggLT4gSVJRICVkIE1vZGU6JWkgQWN0aXZlOiVpKVxuIiwgaW9hcGljLAotCQltcF9pb2FwaWNzW2lvYXBpY10ubXBjX2FwaWNpZCwgcGluLCBlbnRyeS52ZWN0b3IsIGlycSwKKwkJbXBfaW9hcGljc1tpb2FwaWNdLm1wX2FwaWNpZCwgcGluLCBlbnRyeS52ZWN0b3IsIGlycSwKIAkJZWRnZV9sZXZlbCwgYWN0aXZlX2hpZ2hfbG93KTsKIAogCWlvYXBpY19yZWdpc3Rlcl9pbnRyKGlycSwgZW50cnkudmVjdG9yLCBlZGdlX2xldmVsKTsKQEAgLTI4MTAsOCArMjgzMyw4IEBACiAJCXJldHVybiAtMTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKQotCQlpZiAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSBtcF9JTlQgJiYKLQkJICAgIG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBidXNfaXJxKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IG1wX0lOVCAmJgorCQkgICAgbXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gYnVzX2lycSkKIAkJCWJyZWFrOwogCWlmIChpID49IG1wX2lycV9lbnRyaWVzKQogCQlyZXR1cm4gLTE7CkBAIC0yODQ0LDMgKzI4NjcsMzQgQEAKIAlyZXR1cm4gMDsKIH0KIGVhcmx5X3BhcmFtKCJub2FwaWMiLCBwYXJzZV9ub2FwaWMpOworCit2b2lkIF9faW5pdCBpb2FwaWNfaW5pdF9tYXBwaW5ncyh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgaW9hcGljX3BoeXMsIGlkeCA9IEZJWF9JT19BUElDX0JBU0VfMDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspIHsKKwkJaWYgKHNtcF9mb3VuZF9jb25maWcpIHsKKwkJCWlvYXBpY19waHlzID0gbXBfaW9hcGljc1tpXS5tcF9hcGljYWRkcjsKKwkJCWlmICghaW9hcGljX3BoeXMpIHsKKwkJCQlwcmludGsoS0VSTl9FUlIKKwkJCQkgICAgICAgIldBUk5JTkc6IGJvZ3VzIHplcm8gSU8tQVBJQyAiCisJCQkJICAgICAgICJhZGRyZXNzIGZvdW5kIGluIE1QVEFCTEUsICIKKwkJCQkgICAgICAgImRpc2FibGluZyBJTy9BUElDIHN1cHBvcnQhXG4iKTsKKwkJCQlzbXBfZm91bmRfY29uZmlnID0gMDsKKwkJCQlza2lwX2lvYXBpY19zZXR1cCA9IDE7CisJCQkJZ290byBmYWtlX2lvYXBpY19wYWdlOworCQkJfQorCQl9IGVsc2UgeworZmFrZV9pb2FwaWNfcGFnZToKKwkJCWlvYXBpY19waHlzID0gKHVuc2lnbmVkIGxvbmcpCisJCQkJICAgICAgYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOworCQkJaW9hcGljX3BoeXMgPSBfX3BhKGlvYXBpY19waHlzKTsKKwkJfQorCQlzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBpb2FwaWNfcGh5cyk7CisJCXByaW50ayhLRVJOX0RFQlVHICJtYXBwZWQgSU9BUElDIHRvICUwOGx4ICglMDhseClcbiIsCisJCSAgICAgICBfX2ZpeF90b192aXJ0KGlkeCksIGlvYXBpY19waHlzKTsKKwkJaWR4Kys7CisJfQorfQorCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY182NC5jIGIvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfNjQuYwppbmRleCBlZjFhOGRmLi5iMTZlZjAyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzY0LmMKQEAgLTYxLDcgKzYxLDcgQEAKIH07CiAKIC8qIGlycV9jZmcgaXMgaW5kZXhlZCBieSB0aGUgc3VtIG9mIGFsbCBSVEVzIGluIGFsbCBJL08gQVBJQ3MuICovCi1zdHJ1Y3QgaXJxX2NmZyBpcnFfY2ZnW05SX0lSUVNdIF9fcmVhZF9tb3N0bHkgPSB7CitzdGF0aWMgc3RydWN0IGlycV9jZmcgaXJxX2NmZ1tOUl9JUlFTXSBfX3JlYWRfbW9zdGx5ID0gewogCVswXSAgPSB7IC5kb21haW4gPSBDUFVfTUFTS19BTEwsIC52ZWN0b3IgPSBJUlEwX1ZFQ1RPUiwgIH0sCiAJWzFdICA9IHsgLmRvbWFpbiA9IENQVV9NQVNLX0FMTCwgLnZlY3RvciA9IElSUTFfVkVDVE9SLCAgfSwKIAlbMl0gID0geyAuZG9tYWluID0gQ1BVX01BU0tfQUxMLCAudmVjdG9yID0gSVJRMl9WRUNUT1IsICB9LApAQCAtODIsNiArODIsMTAgQEAKIAogc3RhdGljIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjcHVtYXNrX3QgbWFzayk7CiAKK2ludCBmaXJzdF9zeXN0ZW1fdmVjdG9yID0gMHhmZTsKKworY2hhciBzeXN0ZW1fdmVjdG9yc1tOUl9WRUNUT1JTXSA9IHsgWzAgLi4uIE5SX1ZFQ1RPUlMtMV0gPSBTWVNfVkVDVE9SX0ZSRUV9OworCiAjZGVmaW5lIF9fYXBpY2RlYnVnaW5pdCAgX19pbml0CiAKIGludCBzaXNfYXBpY19idWc7IC8qIG5vdCBhY3R1YWxseSBzdXBwb3J0ZWQsIGR1bW15IGZvciBjb21waWxlICovCkBAIC05MCw3ICs5NCw3IEBACiAKIHN0YXRpYyBpbnQgZGlzYWJsZV90aW1lcl9waW5fMSBfX2luaXRkYXRhOwogCi1pbnQgdGltZXJfb3Zlcl84MjU0IF9faW5pdGRhdGEgPSAxOworaW50IHRpbWVyX3Rocm91Z2hfODI1OSBfX2luaXRkYXRhOwogCiAvKiBXaGVyZSBpZiBhbnl3aGVyZSBpcyB0aGUgaTgyNTkgY29ubmVjdCBpbiBleHRlcm5hbCBpbnQgbW9kZSAqLwogc3RhdGljIHN0cnVjdCB7IGludCBwaW4sIGFwaWM7IH0gaW9hcGljX2k4MjU5ID0geyAtMSwgLTEgfTsKQEAgLTEwNCwxNSArMTA4LDE3IEBACiBpbnQgbnJfaW9hcGljX3JlZ2lzdGVyc1tNQVhfSU9fQVBJQ1NdOwogCiAvKiBJL08gQVBJQyBlbnRyaWVzICovCi1zdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOworc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOwogaW50IG5yX2lvYXBpY3M7CiAKIC8qIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwotc3RydWN0IG1wY19jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKK3N0cnVjdCBtcF9jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKIAogLyogIyBvZiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KIGludCBtcF9pcnFfZW50cmllczsKIAorREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOworCiAvKgogICogUm91Z2ggZXN0aW1hdGlvbiBvZiBob3cgbWFueSBzaGFyZWQgSVJRcyB0aGVyZSBhcmUsIGNhbgogICogYmUgY2hhbmdlZCBhbnl0aW1lLgpAQCAtMTQwLDcgKzE0Niw3IEBACiBzdGF0aWMgX19hdHRyaWJ1dGVfY29uc3RfXyBzdHJ1Y3QgaW9fYXBpYyBfX2lvbWVtICppb19hcGljX2Jhc2UoaW50IGlkeCkKIHsKIAlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSBfX2ZpeF90b192aXJ0KEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCkKLQkJKyAobXBfaW9hcGljc1tpZHhdLm1wY19hcGljYWRkciAmIH5QQUdFX01BU0spOworCQkrIChtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW9fYXBpY19yZWFkKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKQpAQCAtMTgzLDcgKzE4OSw3IEBACiAJCQlicmVhazsKIAkJcmVnID0gaW9fYXBpY19yZWFkKGVudHJ5LT5hcGljLCAweDEwICsgcGluKjIpOwogCQkvKiBJcyB0aGUgcmVtb3RlIElSUiBiaXQgc2V0PyAqLwotCQlpZiAoKHJlZyA+PiAxNCkgJiAxKSB7CisJCWlmIChyZWcgJiBJT19BUElDX1JFRElSX1JFTU9URV9JUlIpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gdHJ1ZTsKIAkJfQpAQCAtMjk4LDcgKzMwNCw3IEBACiAJCQlicmVhazsKIAkJaW9fYXBpY193cml0ZShhcGljLCAweDExICsgcGluKjIsIGRlc3QpOwogCQlyZWcgPSBpb19hcGljX3JlYWQoYXBpYywgMHgxMCArIHBpbioyKTsKLQkJcmVnICY9IH4weDAwMDAwMGZmOworCQlyZWcgJj0gfklPX0FQSUNfUkVESVJfVkVDVE9SX01BU0s7CiAJCXJlZyB8PSB2ZWN0b3I7CiAJCWlvX2FwaWNfbW9kaWZ5KGFwaWMsIHJlZyk7CiAJCWlmICghZW50cnktPm5leHQpCkBAIC0zNjAsMTYgKzM2NiwzNyBAQAogCWVudHJ5LT5waW4gPSBwaW47CiB9CiAKKy8qCisgKiBSZXJvdXRlIGFuIElSUSB0byBhIGRpZmZlcmVudCBwaW4uCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCByZXBsYWNlX3Bpbl9hdF9pcnEodW5zaWduZWQgaW50IGlycSwKKwkJCQkgICAgICBpbnQgb2xkYXBpYywgaW50IG9sZHBpbiwKKwkJCQkgICAgICBpbnQgbmV3YXBpYywgaW50IG5ld3BpbikKK3sKKwlzdHJ1Y3QgaXJxX3Bpbl9saXN0ICplbnRyeSA9IGlycV8yX3BpbiArIGlycTsKKworCXdoaWxlICgxKSB7CisJCWlmIChlbnRyeS0+YXBpYyA9PSBvbGRhcGljICYmIGVudHJ5LT5waW4gPT0gb2xkcGluKSB7CisJCQllbnRyeS0+YXBpYyA9IG5ld2FwaWM7CisJCQllbnRyeS0+cGluID0gbmV3cGluOworCQl9CisJCWlmICghZW50cnktPm5leHQpCisJCQlicmVhazsKKwkJZW50cnkgPSBpcnFfMl9waW4gKyBlbnRyeS0+bmV4dDsKKwl9Cit9CisKIAogI2RlZmluZSBET19BQ1RJT04obmFtZSxSLEFDVElPTiwgRklOQUwpCQkJCQlcCiAJCQkJCQkJCQlcCiAJc3RhdGljIHZvaWQgbmFtZSMjX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQkJXAogCV9fRE9fQUNUSU9OKFIsIEFDVElPTiwgRklOQUwpCiAKLURPX0FDVElPTiggX19tYXNrLCAgICAgICAgICAgICAwLCB8PSAweDAwMDEwMDAwLCBpb19hcGljX3N5bmMoZW50cnktPmFwaWMpICkKLQkJCQkJCS8qIG1hc2sgPSAxICovCi1ET19BQ1RJT04oIF9fdW5tYXNrLCAgICAgICAgICAgMCwgJj0gMHhmZmZlZmZmZiwgKQotCQkJCQkJLyogbWFzayA9IDAgKi8KKy8qIG1hc2sgPSAxICovCitET19BQ1RJT04oX19tYXNrLAkwLCB8PSBJT19BUElDX1JFRElSX01BU0tFRCwgaW9fYXBpY19zeW5jKGVudHJ5LT5hcGljKSkKKworLyogbWFzayA9IDAgKi8KK0RPX0FDVElPTihfX3VubWFzaywJMCwgJj0gfklPX0FQSUNfUkVESVJfTUFTS0VELCApCiAKIHN0YXRpYyB2b2lkIG1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCiB7CkBAIC00MzAsMjAgKzQ1Nyw2IEBACiB9CiBfX3NldHVwKCJkaXNhYmxlX3RpbWVyX3Bpbl8xIiwgZGlzYWJsZV90aW1lcl9waW5fc2V0dXApOwogCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9kaXNhYmxlXzgyNTRfdGltZXIoY2hhciAqcykKLXsKLQl0aW1lcl9vdmVyXzgyNTQgPSAtMTsKLQlyZXR1cm4gMTsKLX0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gMjsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZGlzYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKTsKLV9fc2V0dXAoImVuYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZW5hYmxlXzgyNTRfdGltZXIpOwotCiAKIC8qCiAgKiBGaW5kIHRoZSBJUlEgZW50cnkgbnVtYmVyIG9mIGEgY2VydGFpbiBwaW4uCkBAIC00NTMsMTAgKzQ2NiwxMCBAQAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCWlmIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCB8fAotCQkgICAgIG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCi0JCSAgICBtcF9pcnFzW2ldLm1wY19kc3RpcnEgPT0gcGluKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUgJiYKKwkJICAgIChtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgfHwKKwkJICAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCisJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGlycSA9PSBwaW4pCiAJCQlyZXR1cm4gaTsKIAogCXJldHVybiAtMTsKQEAgLTQ3MCwxMyArNDgzLDEzIEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAKLQkJCXJldHVybiBtcF9pcnFzW2ldLm1wY19kc3RpcnE7CisJCQlyZXR1cm4gbXBfaXJxc1tpXS5tcF9kc3RpcnE7CiAJfQogCXJldHVybiAtMTsKIH0KQEAgLTQ4NiwxNyArNDk5LDE3IEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAJCQlicmVhazsKIAl9CiAJaWYgKGkgPCBtcF9pcnFfZW50cmllcykgewogCQlpbnQgYXBpYzsKIAkJZm9yKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKSB7Ci0JCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID09IG1wX2lycXNbaV0ubXBjX2RzdGFwaWMpCisJCQlpZiAobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPT0gbXBfaXJxc1tpXS5tcF9kc3RhcGljKQogCQkJCXJldHVybiBhcGljOwogCQl9CiAJfQpAQCAtNTE2LDI4ICs1MjksMjggQEAKIAogCWFwaWNfcHJpbnRrKEFQSUNfREVCVUcsICJxdWVyeWluZyBQQ0kgLT4gSVJRIG1hcHBpbmcgYnVzOiVkLCBzbG90OiVkLCBwaW46JWQuXG4iLAogCQlidXMsIHNsb3QsIHBpbik7Ci0JaWYgKG1wX2J1c19pZF90b19wY2lfYnVzW2J1c10gPT0gLTEpIHsKKwlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpIHsKIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiUENJIEJJT1MgcGFzc2VkIG5vbmV4aXN0ZW50IFBDSSBidXMgJWQhXG4iLCBidXMpOwogCQlyZXR1cm4gLTE7CiAJfQogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspCi0JCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID09IG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgfHwKLQkJCSAgICBtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IE1QX0FQSUNfQUxMKQorCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID09IG1wX2lycXNbaV0ubXBfZHN0YXBpYyB8fAorCQkJICAgIG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkKIAkJCQlicmVhazsKIAogCQlpZiAoIXRlc3RfYml0KGxidXMsIG1wX2J1c19ub3RfcGNpKSAmJgotCQkgICAgIW1wX2lycXNbaV0ubXBjX2lycXR5cGUgJiYKKwkJICAgICFtcF9pcnFzW2ldLm1wX2lycXR5cGUgJiYKIAkJICAgIChidXMgPT0gbGJ1cykgJiYKLQkJICAgIChzbG90ID09ICgobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID4+IDIpICYgMHgxZikpKSB7Ci0JCQlpbnQgaXJxID0gcGluXzJfaXJxKGksYXBpYyxtcF9pcnFzW2ldLm1wY19kc3RpcnEpOworCQkgICAgKHNsb3QgPT0gKChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA+PiAyKSAmIDB4MWYpKSkgeworCQkJaW50IGlycSA9IHBpbl8yX2lycShpLGFwaWMsbXBfaXJxc1tpXS5tcF9kc3RpcnEpOwogCiAJCQlpZiAoIShhcGljIHx8IElPX0FQSUNfSVJRKGlycSkpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgJiAzKSkKKwkJCWlmIChwaW4gPT0gKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxICYgMykpCiAJCQkJcmV0dXJuIGlycTsKIAkJCS8qCiAJCQkgKiBVc2UgdGhlIGZpcnN0IGFsbC1idXQtcGluIG1hdGNoaW5nIGVudHJ5IGFzIGEKQEAgLTU2NSwxMyArNTc4LDEzIEBACiAKIHN0YXRpYyBpbnQgTVBCSU9TX3BvbGFyaXR5KGludCBpZHgpCiB7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCWludCBwb2xhcml0eTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIElSUSBsaW5lIHBvbGFyaXR5IChoaWdoIGFjdGl2ZSBvciBsb3cgYWN0aXZlKToKIAkgKi8KLQlzd2l0Y2ggKG1wX2lycXNbaWR4XS5tcGNfaXJxZmxhZyAmIDMpCisJc3dpdGNoIChtcF9pcnFzW2lkeF0ubXBfaXJxZmxhZyAmIDMpCiAJewogCQljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50IHBvbGFyaXR5ICovCiAJCQlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpCkBAIC02MDcsMTMgKzYyMCwxMyBAQAogCiBzdGF0aWMgaW50IE1QQklPU190cmlnZ2VyKGludCBpZHgpCiB7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCWludCB0cmlnZ2VyOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgSVJRIHRyaWdnZXIgbW9kZSAoZWRnZSBvciBsZXZlbCBzZW5zaXRpdmUpOgogCSAqLwotCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcGNfaXJxZmxhZz4+MikgJiAzKQorCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcF9pcnFmbGFnPj4yKSAmIDMpCiAJewogCQljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50ICovCiAJCQlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpCkBAIC02NjAsMTYgKzY3MywxNiBAQAogc3RhdGljIGludCBwaW5fMl9pcnEoaW50IGlkeCwgaW50IGFwaWMsIGludCBwaW4pCiB7CiAJaW50IGlycSwgaTsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAKIAkvKgogCSAqIERlYnVnZ2luZyBjaGVjaywgd2UgYXJlIGluIGJpZyB0cm91YmxlIGlmIHRoaXMgbWVzc2FnZSBwb3BzIHVwIQogCSAqLwotCWlmIChtcF9pcnFzW2lkeF0ubXBjX2RzdGlycSAhPSBwaW4pCisJaWYgKG1wX2lycXNbaWR4XS5tcF9kc3RpcnEgIT0gcGluKQogCQlwcmludGsoS0VSTl9FUlIgImJyb2tlbiBCSU9TIG9yIE1QVEFCTEUgcGFyc2VyLCBheWllZSEhXG4iKTsKIAogCWlmICh0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKSkgewotCQlpcnEgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1c2lycTsKKwkJaXJxID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBQQ0kgSVJRcyBhcmUgbWFwcGVkIGluIG9yZGVyCkBAIC03MzAsNyArNzQzLDcgQEAKIAkJb2Zmc2V0ID0gY3VycmVudF9vZmZzZXQ7CiBuZXh0OgogCQl2ZWN0b3IgKz0gODsKLQkJaWYgKHZlY3RvciA+PSBGSVJTVF9TWVNURU1fVkVDVE9SKSB7CisJCWlmICh2ZWN0b3IgPj0gZmlyc3Rfc3lzdGVtX3ZlY3RvcikgewogCQkJLyogSWYgd2UgcnVuIG91dCBvZiB2ZWN0b3JzIG9uIGxhcmdlIGJveGVuLCBtdXN0IHNoYXJlIHRoZW0uICovCiAJCQlvZmZzZXQgPSAob2Zmc2V0ICsgMSkgJSA4OwogCQkJdmVjdG9yID0gRklSU1RfREVWSUNFX1ZFQ1RPUiArIG9mZnNldDsKQEAgLTc4OCw3ICs4MDEsNyBAQAogCWNwdXNfY2xlYXIoY2ZnLT5kb21haW4pOwogfQogCi12b2lkIF9fc2V0dXBfdmVjdG9yX2lycShpbnQgY3B1KQorc3RhdGljIHZvaWQgX19zZXR1cF92ZWN0b3JfaXJxKGludCBjcHUpCiB7CiAJLyogSW5pdGlhbGl6ZSB2ZWN0b3JfaXJxIG9uIGEgbmV3IGNwdSAqLwogCS8qIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgd2l0aCB2ZWN0b3JfbG9jayBoZWxkICovCkBAIC04MTEsNiArODI0LDEzIEBACiAJfQogfQogCit2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSkKK3sKKwlzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsKKwlfX3NldHVwX3ZlY3Rvcl9pcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwlzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworfQorCiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgaW9hcGljX2NoaXA7CiAKQEAgLTg0Niw3ICs4NjYsNyBAQAogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0RFQlVHCiAJCSAgICAiSU9BUElDWyVkXTogU2V0IHJvdXRpbmcgZW50cnkgKCVkLSVkIC0+IDB4JXggLT4gIgogCQkgICAgIklSUSAlZCBNb2RlOiVpIEFjdGl2ZTolaSlcbiIsCi0JCSAgICBhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQsIHBpbiwgY2ZnLT52ZWN0b3IsCisJCSAgICBhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluLCBjZmctPnZlY3RvciwKIAkJICAgIGlycSwgdHJpZ2dlciwgcG9sYXJpdHkpOwogCiAJLyoKQEAgLTg4NywxMCArOTA3LDEwIEBACiAJCWlkeCA9IGZpbmRfaXJxX2VudHJ5KGFwaWMscGluLG1wX0lOVCk7CiAJCWlmIChpZHggPT0gLTEpIHsKIAkJCWlmIChmaXJzdF9ub3Rjb24pIHsKLQkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcgIiBJTy1BUElDIChhcGljaWQtcGluKSAlZC0lZCIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCwgcGluKTsKKwkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcgIiBJTy1BUElDIChhcGljaWQtcGluKSAlZC0lZCIsIG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkLCBwaW4pOwogCQkJCWZpcnN0X25vdGNvbiA9IDA7CiAJCQl9IGVsc2UKLQkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIsICVkLSVkIiwgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLCBwaW4pOworCQkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIiwgJWQtJWQiLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmICghZmlyc3Rfbm90Y29uKSB7CkBAIC05MTEsMjYgKzkzMSwyMSBAQAogfQogCiAvKgotICogU2V0IHVwIHRoZSA4MjU5QS1tYXN0ZXIgb3V0cHV0IHBpbiBhcyBicm9hZGNhc3QgdG8gYWxsCi0gKiBDUFVzLgorICogU2V0IHVwIHRoZSB0aW1lciBwaW4sIHBvc3NpYmx5IHdpdGggdGhlIDgyNTlBLW1hc3RlciBiZWhpbmQuCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9FeHRJTlRfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sIGludCB2ZWN0b3IpCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfdGltZXJfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sCisJCQkJCWludCB2ZWN0b3IpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgZW50cnk7CiAKIAltZW1zZXQoJmVudHJ5LCAwLCBzaXplb2YoZW50cnkpKTsKIAotCWRpc2FibGVfODI1OUFfaXJxKDApOwotCi0JLyogbWFzayBMVlQwICovCi0JYXBpY193cml0ZShBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCB8IEFQSUNfRE1fRVhUSU5UKTsKLQogCS8qCiAJICogV2UgdXNlIGxvZ2ljYWwgZGVsaXZlcnkgdG8gZ2V0IHRoZSB0aW1lciBJUlEKIAkgKiB0byB0aGUgZmlyc3QgQ1BVLgogCSAqLwogCWVudHJ5LmRlc3RfbW9kZSA9IElOVF9ERVNUX01PREU7Ci0JZW50cnkubWFzayA9IDA7CQkJCQkvKiB1bm1hc2sgSVJRIG5vdyAqLworCWVudHJ5Lm1hc2sgPSAxOwkJCQkJLyogbWFzayBJUlEgbm93ICovCiAJZW50cnkuZGVzdCA9IGNwdV9tYXNrX3RvX2FwaWNpZChUQVJHRVRfQ1BVUyk7CiAJZW50cnkuZGVsaXZlcnlfbW9kZSA9IElOVF9ERUxJVkVSWV9NT0RFOwogCWVudHJ5LnBvbGFyaXR5ID0gMDsKQEAgLTkzOSw3ICs5NTQsNyBAQAogCiAJLyoKIAkgKiBUaGUgdGltZXIgSVJRIGRvZXNuJ3QgaGF2ZSB0byBrbm93IHRoYXQgYmVoaW5kIHRoZQotCSAqIHNjZW5lIHdlIGhhdmUgYSA4MjU5QS1tYXN0ZXIgaW4gQUVPSSBtb2RlIC4uLgorCSAqIHNjZW5lIHdlIG1heSBoYXZlIGEgODI1OUEtbWFzdGVyIGluIEFFT0kgbW9kZSAuLi4KIAkgKi8KIAlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZSgwLCAmaW9hcGljX2NoaXAsIGhhbmRsZV9lZGdlX2lycSwgImVkZ2UiKTsKIApAQCAtOTQ3LDggKzk2Miw2IEBACiAJICogQWRkIGl0IHRvIHRoZSBJTy1BUElDIGlycS1yb3V0aW5nIHRhYmxlOgogCSAqLwogCWlvYXBpY193cml0ZV9lbnRyeShhcGljLCBwaW4sIGVudHJ5KTsKLQotCWVuYWJsZV84MjU5QV9pcnEoMCk7CiB9CiAKIHZvaWQgX19hcGljZGVidWdpbml0IHByaW50X0lPX0FQSUModm9pZCkKQEAgLTk2NSw3ICs5NzgsNyBAQAogCXByaW50ayhLRVJOX0RFQlVHICJudW1iZXIgb2YgTVAgSVJRIHNvdXJjZXM6ICVkLlxuIiwgbXBfaXJxX2VudHJpZXMpOwogCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspCiAJCXByaW50ayhLRVJOX0RFQlVHICJudW1iZXIgb2YgSU8tQVBJQyAjJWQgcmVnaXN0ZXJzOiAlZC5cbiIsCi0JCSAgICAgICBtcF9pb2FwaWNzW2ldLm1wY19hcGljaWQsIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0pOworCQkgICAgICAgbXBfaW9hcGljc1tpXS5tcF9hcGljaWQsIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0pOwogCiAJLyoKIAkgKiBXZSBhcmUgYSBiaXQgY29uc2VydmF0aXZlIGFib3V0IHdoYXQgd2UgZXhwZWN0LiAgV2UgaGF2ZSB0bwpAQCAtOTgzLDcgKzk5Niw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAogCXByaW50aygiXG4iKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiSU8gQVBJQyAjJWQuLi4uLi5cbiIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJcHJpbnRrKEtFUk5fREVCVUcgIklPIEFQSUMgIyVkLi4uLi4uXG4iLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIi4uLi4gcmVnaXN0ZXIgIzAwOiAlMDhYXG4iLCByZWdfMDAucmF3KTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6ICUwMlhcbiIsIHJlZ18wMC5iaXRzLklEKTsKIApAQCAtMTA3Nyw2ICsxMDkwLDcgQEAKIAogCXByaW50aygiXG4iIEtFUk5fREVCVUcgInByaW50aW5nIGxvY2FsIEFQSUMgY29udGVudHMgb24gQ1BVIyVkLyVkOlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJdiA9IGFwaWNfcmVhZChBUElDX0lEKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBJRDogICAgICAlMDh4ICglMDF4KVxuIiwgdiwgR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpKTsKIAl2ID0gYXBpY19yZWFkKEFQSUNfTFZSKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBWRVJTSU9OOiAlMDh4XG4iLCB2KTsKQEAgLTE1NDAsNyArMTU1NCw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBlbmFibGVfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgdW5tYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMTU0OCw3ICsxNTYyLDcgQEAKIAlhcGljX3dyaXRlKEFQSUNfTFZUMCwgdiAmIH5BUElDX0xWVF9NQVNLRUQpOwogfQogCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2xhcGljX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIG1hc2tfbGFwaWNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7CiAJdW5zaWduZWQgbG9uZyB2OwogCkBAIC0xNTYxLDE5ICsxNTc1LDIwIEBACiAJYWNrX0FQSUNfaXJxKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuZF9sYXBpY19pcnEgKHVuc2lnbmVkIGludCBpKSB7IC8qIG5vdGhpbmcgKi8gfQotCi1zdGF0aWMgc3RydWN0IGh3X2ludGVycnVwdF90eXBlIGxhcGljX2lycV90eXBlIF9fcmVhZF9tb3N0bHkgPSB7Ci0JLm5hbWUgPSAibG9jYWwtQVBJQyIsCi0JLnR5cGVuYW1lID0gImxvY2FsLUFQSUMtZWRnZSIsCi0JLnN0YXJ0dXAgPSBOVUxMLCAvKiBzdGFydHVwX2lycSgpIG5vdCB1c2VkIGZvciBJUlEwICovCi0JLnNodXRkb3duID0gTlVMTCwgLyogc2h1dGRvd25faXJxKCkgbm90IHVzZWQgZm9yIElSUTAgKi8KLQkuZW5hYmxlID0gZW5hYmxlX2xhcGljX2lycSwKLQkuZGlzYWJsZSA9IGRpc2FibGVfbGFwaWNfaXJxLAotCS5hY2sgPSBhY2tfbGFwaWNfaXJxLAotCS5lbmQgPSBlbmRfbGFwaWNfaXJxLAorc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBsYXBpY19jaGlwIF9fcmVhZF9tb3N0bHkgPSB7CisJLm5hbWUJCT0gImxvY2FsLUFQSUMiLAorCS5tYXNrCQk9IG1hc2tfbGFwaWNfaXJxLAorCS51bm1hc2sJCT0gdW5tYXNrX2xhcGljX2lycSwKKwkuYWNrCQk9IGFja19sYXBpY19pcnEsCiB9OwogCitzdGF0aWMgdm9pZCBsYXBpY19yZWdpc3Rlcl9pbnRyKGludCBpcnEpCit7CisJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJj0gfklSUV9MRVZFTDsKKwlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZsYXBpY19jaGlwLCBoYW5kbGVfZWRnZV9pcnEsCisJCQkJICAgICAgImVkZ2UiKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25taSh2b2lkKQogewogCS8qCkBAIC0xNjU5LDYgKzE2NzQsNyBAQAogCXN0cnVjdCBpcnFfY2ZnICpjZmcgPSBpcnFfY2ZnICsgMDsKIAlpbnQgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IG5vX3BpbjEgPSAwOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCkBAIC0xNjY5LDE2ICsxNjg1LDExIEBACiAJYXNzaWduX2lycV92ZWN0b3IoMCwgVEFSR0VUX0NQVVMpOwogCiAJLyoKLQkgKiBTdWJ0bGUsIGNvZGUgaW4gZG9fdGltZXJfaW50ZXJydXB0KCkgZXhwZWN0cyBhbiBBRU9JCi0JICogbW9kZSBmb3IgdGhlIDgyNTlBIHdoZW5ldmVyIGludGVycnVwdHMgYXJlIHJvdXRlZAotCSAqIHRocm91Z2ggSS9PIEFQSUNzLiAgQWxzbyBJUlEwIGhhcyB0byBiZSBlbmFibGVkIGluCi0JICogdGhlIDgyNTlBIHdoaWNoIGltcGxpZXMgdGhlIHZpcnR1YWwgd2lyZSBoYXMgdG8gYmUKLQkgKiBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4KKwkgKiBBcyBJUlEwIGlzIHRvIGJlIGVuYWJsZWQgaW4gdGhlIDgyNTlBLCB0aGUgdmlydHVhbAorCSAqIHdpcmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIHRoZSBsb2NhbCBBUElDLgogCSAqLwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7CiAJaW5pdF84MjU5QSgxKTsKLQlpZiAodGltZXJfb3Zlcl84MjU0ID4gMCkKLQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAogCXBpbjEgID0gZmluZF9pc2FfaXJxX3BpbigwLCBtcF9JTlQpOwogCWFwaWMxID0gZmluZF9pc2FfaXJxX2FwaWMoMCwgbXBfSU5UKTsKQEAgLTE2ODgsMTUgKzE2OTksMzMgQEAKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsS0VSTl9JTkZPICIuLlRJTUVSOiB2ZWN0b3I9MHglMDJYIGFwaWMxPSVkIHBpbjE9JWQgYXBpYzI9JWQgcGluMj0lZFxuIiwKIAkJY2ZnLT52ZWN0b3IsIGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMik7CiAKKwkvKgorCSAqIFNvbWUgQklPUyB3cml0ZXJzIGFyZSBjbHVlbGVzcyBhbmQgcmVwb3J0IHRoZSBFeHRJTlRBCisJICogSS9PIEFQSUMgaW5wdXQgZnJvbSB0aGUgY2FzY2FkZWQgODI1OUEgYXMgdGhlIHRpbWVyCisJICogaW50ZXJydXB0IGlucHV0LiAgU28ganVzdCBpbiBjYXNlLCBpZiBvbmx5IG9uZSBwaW4KKwkgKiB3YXMgZm91bmQgYWJvdmUsIHRyeSBpdCBib3RoIGRpcmVjdGx5IGFuZCB0aHJvdWdoIHRoZQorCSAqIDgyNTlBLgorCSAqLworCWlmIChwaW4xID09IC0xKSB7CisJCXBpbjEgPSBwaW4yOworCQlhcGljMSA9IGFwaWMyOworCQlub19waW4xID0gMTsKKwl9IGVsc2UgaWYgKHBpbjIgPT0gLTEpIHsKKwkJcGluMiA9IHBpbjE7CisJCWFwaWMyID0gYXBpYzE7CisJfQorCiAJaWYgKHBpbjEgIT0gLTEpIHsKIAkJLyoKIAkJICogT2ssIGRvZXMgSVJRMCB0aHJvdWdoIHRoZSBJT0FQSUMgd29yaz8KIAkJICovCisJCWlmIChub19waW4xKSB7CisJCQlhZGRfcGluX3RvX2lycSgwLCBhcGljMSwgcGluMSk7CisJCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMSwgcGluMSwgY2ZnLT52ZWN0b3IpOworCQl9CiAJCXVubWFza19JT19BUElDX2lycSgwKTsKIAkJaWYgKCFub190aW1lcl9jaGVjayAmJiB0aW1lcl9pcnFfd29ya3MoKSkgewotCQkJbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKIAkJCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKLQkJCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJCQlzZXR1cF9ubWkoKTsKIAkJCQllbmFibGVfODI1OUFfaXJxKDApOwogCQkJfQpAQCAtMTcwNSw0MyArMTczNCw0OCBAQAogCQkJZ290byBvdXQ7CiAJCX0KIAkJY2xlYXJfSU9fQVBJQ19waW4oYXBpYzEsIHBpbjEpOwotCQlhcGljX3ByaW50ayhBUElDX1FVSUVULEtFUk5fRVJSICIuLk1QLUJJT1MgYnVnOiA4MjU0IHRpbWVyIG5vdCAiCi0JCQkJImNvbm5lY3RlZCB0byBJTy1BUElDXG4iKTsKLQl9CisJCWlmICghbm9fcGluMSkKKwkJCWFwaWNfcHJpbnRrKEFQSUNfUVVJRVQsS0VSTl9FUlIgIi4uTVAtQklPUyBidWc6ICIKKwkJCQkgICAgIjgyNTQgdGltZXIgbm90IGNvbm5lY3RlZCB0byBJTy1BUElDXG4iKTsKIAotCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgKElSUTApICIKLQkJCQkidGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwotCWlmIChwaW4yICE9IC0xKSB7CisJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0lORk8KKwkJCSIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIChJUlEwKSAiCisJCQkidGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwogCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIlxuLi4uLi4gKGZvdW5kIGFwaWMgJWQgcGluICVkKSAuLi4iLAogCQkJYXBpYzIsIHBpbjIpOwogCQkvKgogCQkgKiBsZWdhY3kgZGV2aWNlcyBzaG91bGQgYmUgY29ubmVjdGVkIHRvIElPIEFQSUMgIzAKIAkJICovCi0JCXNldHVwX0V4dElOVF9JUlEwX3BpbihhcGljMiwgcGluMiwgY2ZnLT52ZWN0b3IpOworCQlyZXBsYWNlX3Bpbl9hdF9pcnEoMCwgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yKTsKKwkJc2V0dXBfdGltZXJfSVJRMF9waW4oYXBpYzIsIHBpbjIsIGNmZy0+dmVjdG9yKTsKKwkJdW5tYXNrX0lPX0FQSUNfaXJxKDApOworCQllbmFibGVfODI1OUFfaXJxKDApOwogCQlpZiAodGltZXJfaXJxX3dvcmtzKCkpIHsKIAkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIHdvcmtzLlxuIik7Ci0JCQlubWlfd2F0Y2hkb2dfZGVmYXVsdCgpOworCQkJdGltZXJfdGhyb3VnaF84MjU5ID0gMTsKIAkJCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKKwkJCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJCQlzZXR1cF9ubWkoKTsKKwkJCQllbmFibGVfODI1OUFfaXJxKDApOwogCQkJfQogCQkJZ290byBvdXQ7CiAJCX0KIAkJLyoKIAkJICogQ2xlYW51cCwganVzdCBpbiBjYXNlIC4uLgogCQkgKi8KKwkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCWNsZWFyX0lPX0FQSUNfcGluKGFwaWMyLCBwaW4yKTsKKwkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCIgZmFpbGVkLlxuIik7CiAJfQotCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIGZhaWxlZC5cbiIpOwogCiAJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJ0aW1lciBkb2Vzbid0IHdvcmsgdGhyb3VnaCB0aGUgSU8tQVBJQyAtIGRpc2FibGluZyBOTUkgV2F0Y2hkb2chXG4iKTsKLQkJbm1pX3dhdGNoZG9nID0gMDsKKwkJbm1pX3dhdGNoZG9nID0gTk1JX05PTkU7CiAJfQogCiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgYXMgVmlydHVhbCBXaXJlIElSUS4uLiIpOwogCi0JZGlzYWJsZV84MjU5QV9pcnEoMCk7Ci0JaXJxX2Rlc2NbMF0uY2hpcCA9ICZsYXBpY19pcnFfdHlwZTsKKwlsYXBpY19yZWdpc3Rlcl9pbnRyKDApOwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0RNX0ZJWEVEIHwgY2ZnLT52ZWN0b3IpOwkvKiBGaXhlZCBtb2RlICovCiAJZW5hYmxlXzgyNTlBX2lycSgwKTsKIApAQCAtMTc0OSw2ICsxNzgzLDcgQEAKIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCIgd29ya3MuXG4iKTsKIAkJZ290byBvdXQ7CiAJfQorCWRpc2FibGVfODI1OUFfaXJxKDApOwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0ZJWEVEIHwgY2ZnLT52ZWN0b3IpOwogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIGZhaWxlZC5cbiIpOwogCkBAIC0xNzc4LDExICsxODEzLDIxIEBACiBfX3NldHVwKCJub190aW1lcl9jaGVjayIsIG5vdGltZXJjaGVjayk7CiAKIC8qCi0gKgotICogSVJRcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHRoZSBQSUMgaW4gdGhlIE1QUyBJT0FQSUMgY2FzZS4KLSAqIC0gSVJRMiBpcyB0aGUgY2FzY2FkZSBJUlEsIGFuZCBjYW5ub3QgYmUgYSBpby1hcGljIElSUS4KLSAqICAgTGludXggZG9lc24ndCByZWFsbHkgY2FyZSwgYXMgaXQncyBub3QgYWN0dWFsbHkgdXNlZAotICogICBmb3IgYW55IGludGVycnVwdCBoYW5kbGluZyBhbnl3YXkuCisgKiBUcmFkaXRpb25hbGx5IElTQSBJUlEyIGlzIHRoZSBjYXNjYWRlIElSUSwgYW5kIGlzIG5vdCBhdmFpbGFibGUKKyAqIHRvIGRldmljZXMuICBIb3dldmVyIHRoZXJlIG1heSBiZSBhbiBJL08gQVBJQyBwaW4gYXZhaWxhYmxlIGZvcgorICogdGhpcyBpbnRlcnJ1cHQgcmVnYXJkbGVzcy4gIFRoZSBwaW4gbWF5IGJlIGxlZnQgdW5jb25uZWN0ZWQsIGJ1dAorICogdHlwaWNhbGx5IGl0IHdpbGwgYmUgcmV1c2VkIGFzIGFuIEV4dElOVCBjYXNjYWRlIGludGVycnVwdCBmb3IKKyAqIHRoZSBtYXN0ZXIgODI1OUEuICBJbiB0aGUgTVBTIGNhc2Ugc3VjaCBhIHBpbiB3aWxsIG5vcm1hbGx5IGJlCisgKiByZXBvcnRlZCBhcyBhbiBFeHRJTlQgaW50ZXJydXB0IGluIHRoZSBNUCB0YWJsZS4gIFdpdGggQUNQSQorICogdGhlcmUgaXMgbm8gcHJvdmlzaW9uIGZvciBFeHRJTlQgaW50ZXJydXB0cywgYW5kIGluIHRoZSBhYnNlbmNlCisgKiBvZiBhbiBvdmVycmlkZSBpdCB3b3VsZCBiZSB0cmVhdGVkIGFzIGFuIG9yZGluYXJ5IElTQSBJL08gQVBJQworICogaW50ZXJydXB0LCB0aGF0IGlzIGVkZ2UtdHJpZ2dlcmVkIGFuZCB1bm1hc2tlZCBieSBkZWZhdWx0LiAgV2UKKyAqIHVzZWQgdG8gZG8gdGhpcywgYnV0IGl0IGNhdXNlZCBwcm9ibGVtcyBvbiBzb21lIHN5c3RlbXMgYmVjYXVzZQorICogb2YgdGhlIE5NSSB3YXRjaGRvZyBhbmQgc29tZXRpbWVzIElSUTAgb2YgdGhlIDgyNTQgdGltZXIgdXNpbmcKKyAqIHRoZSBzYW1lIEV4dElOVCBjYXNjYWRlIGludGVycnVwdCB0byBkcml2ZSB0aGUgbG9jYWwgQVBJQyBvZiB0aGUKKyAqIGJvb3RzdHJhcCBwcm9jZXNzb3IuICBUaGVyZWZvcmUgd2UgcmVmcmFpbiBmcm9tIHJvdXRpbmcgSVJRMiB0bworICogdGhlIEkvTyBBUElDIGluIGFsbCBjYXNlcyBub3cuICBObyBhY3R1YWwgZGV2aWNlIHNob3VsZCByZXF1ZXN0CisgKiBpdCBhbnl3YXkuICAtLW1hY3JvCiAgKi8KICNkZWZpbmUgUElDX0lSUVMJKDE8PDIpCiAKQEAgLTE3OTMsMTAgKzE4MzgsNyBAQAogCSAqIGNhbGxpbmcgZW5hYmxlX0lPX0FQSUMoKSBpcyBtb3ZlZCB0byBzZXR1cF9sb2NhbF9BUElDIGZvciBCUAogCSAqLwogCi0JaWYgKGFjcGlfaW9hcGljKQotCQlpb19hcGljX2lycXMgPSB+MDsJLyogYWxsIElSUXMgZ28gdGhyb3VnaCBJT0FQSUMgKi8KLQllbHNlCi0JCWlvX2FwaWNfaXJxcyA9IH5QSUNfSVJRUzsKKwlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CiAKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICJFTkFCTElORyBJTy1BUElDIElSUXNcbiIpOwogCkBAIC0xODQxLDggKzE4ODMsOCBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChkZXYtPmlkLCAwKTsKLQlpZiAocmVnXzAwLmJpdHMuSUQgIT0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkKSB7Ci0JCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkOworCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wX2FwaWNpZCkgeworCQlyZWdfMDAuYml0cy5JRCA9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBfYXBpY2lkOwogCQlpb19hcGljX3dyaXRlKGRldi0+aWQsIDAsIHJlZ18wMC5yYXcpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwpAQCAtMjI0Miw4ICsyMjg0LDggQEAKIAkJcmV0dXJuIC0xOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCWlmIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IG1wX0lOVCAmJgotCQkgICAgbXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGJ1c19pcnEpCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gbXBfSU5UICYmCisJCSAgICBtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA9PSBidXNfaXJxKQogCQkJYnJlYWs7CiAJaWYgKGkgPj0gbXBfaXJxX2VudHJpZXMpCiAJCXJldHVybiAtMTsKQEAgLTIzMzYsNyArMjM3OCw3IEBACiAJaW9hcGljX3JlcyA9IGlvYXBpY19zZXR1cF9yZXNvdXJjZXMoKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CiAJCWlmIChzbXBfZm91bmRfY29uZmlnKSB7Ci0JCQlpb2FwaWNfcGh5cyA9IG1wX2lvYXBpY3NbaV0ubXBjX2FwaWNhZGRyOworCQkJaW9hcGljX3BoeXMgPSBtcF9pb2FwaWNzW2ldLm1wX2FwaWNhZGRyOwogCQl9IGVsc2UgewogCQkJaW9hcGljX3BoeXMgPSAodW5zaWduZWQgbG9uZykKIAkJCQlhbGxvY19ib290bWVtX3BhZ2VzKFBBR0VfU0laRSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXBpLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaXBpLmMKaW5kZXggYzBkZjdiOC4uOWQ5OGNkYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lwaS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcGkuYwpAQCAtOCw3ICs4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CiAjaW5jbHVkZSA8bGludXgvY2FjaGUuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCmluZGV4IDE0NzM1MmQuLjQ3YTZmNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9pcnFfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxXzMyLmMKQEAgLTQ4LDYgKzQ4LDI5IEBACiAjZW5kaWYKIH0KIAorI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XCisvKiBEZWJ1Z2dpbmcgY2hlY2sgZm9yIHN0YWNrIG92ZXJmbG93OiBpcyB0aGVyZSBsZXNzIHRoYW4gMUtCIGZyZWU/ICovCitzdGF0aWMgaW50IGNoZWNrX3N0YWNrX292ZXJmbG93KHZvaWQpCit7CisJbG9uZyBzcDsKKworCV9fYXNtX18gX192b2xhdGlsZV9fKCJhbmRsICUlZXNwLCUwIiA6CisJCQkgICAgICI9ciIgKHNwKSA6ICIwIiAoVEhSRUFEX1NJWkUgLSAxKSk7CisKKwlyZXR1cm4gc3AgPCAoc2l6ZW9mKHN0cnVjdCB0aHJlYWRfaW5mbykgKyBTVEFDS19XQVJOKTsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfc3RhY2tfb3ZlcmZsb3codm9pZCkKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICJsb3cgc3RhY2sgZGV0ZWN0ZWQgYnkgaXJxIGhhbmRsZXJcbiIpOworCWR1bXBfc3RhY2soKTsKK30KKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGNoZWNrX3N0YWNrX292ZXJmbG93KHZvaWQpIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9zdGFja19vdmVyZmxvdyh2b2lkKSB7IH0KKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHXzRLU1RBQ0tTCiAvKgogICogcGVyLUNQVSBJUlEgaGFuZGxpbmcgY29udGV4dHMgKHRocmVhZCBpbmZvcm1hdGlvbiBhbmQgc3RhY2spCkBAIC01OSw0OCArODIsMjkgQEAKIAogc3RhdGljIHVuaW9uIGlycV9jdHggKmhhcmRpcnFfY3R4W05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7CiBzdGF0aWMgdW5pb24gaXJxX2N0eCAqc29mdGlycV9jdHhbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKLSNlbmRpZgogCi0vKgotICogZG9fSVJRIGhhbmRsZXMgYWxsIG5vcm1hbCBkZXZpY2UgSVJRJ3MgKHRoZSBzcGVjaWFsCi0gKiBTTVAgY3Jvc3MtQ1BVIGludGVycnVwdHMgaGF2ZSB0aGVpciBvd24gc3BlY2lmaWMKLSAqIGhhbmRsZXJzKS4KLSAqLwotdW5zaWduZWQgaW50IGRvX0lSUShzdHJ1Y3QgcHRfcmVncyAqcmVncykKLXsJCi0Jc3RydWN0IHB0X3JlZ3MgKm9sZF9yZWdzOwotCS8qIGhpZ2ggYml0IHVzZWQgaW4gcmV0X2Zyb21fIGNvZGUgKi8KLQlpbnQgaXJxID0gfnJlZ3MtPm9yaWdfYXg7Ci0Jc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX2Rlc2MgKyBpcnE7Ci0jaWZkZWYgQ09ORklHXzRLU1RBQ0tTCitzdGF0aWMgY2hhciBzb2Z0aXJxX3N0YWNrW05SX0NQVVMgKiBUSFJFQURfU0laRV0KKwkJX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKKworc3RhdGljIGNoYXIgaGFyZGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCisJCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyB2b2lkIGNhbGxfb25fc3RhY2sodm9pZCAqZnVuYywgdm9pZCAqc3RhY2spCit7CisJYXNtIHZvbGF0aWxlKCJ4Y2hnbAklJWVieCwlJWVzcAlcbiIKKwkJICAgICAiY2FsbAkqJSVlZGkJCVxuIgorCQkgICAgICJtb3ZsCSUlZWJ4LCUlZXNwCVxuIgorCQkgICAgIDogIj1iIiAoc3RhY2spCisJCSAgICAgOiAiMCIgKHN0YWNrKSwKKwkJICAgICAgICJEIihmdW5jKQorCQkgICAgIDogIm1lbW9yeSIsICJjYyIsICJlZHgiLCAiZWN4IiwgImVheCIpOworfQorCitzdGF0aWMgaW5saW5lIGludAorZXhlY3V0ZV9vbl9pcnFfc3RhY2soaW50IG92ZXJmbG93LCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGludCBpcnEpCit7CiAJdW5pb24gaXJxX2N0eCAqY3VyY3R4LCAqaXJxY3R4OwotCXUzMiAqaXNwOwotI2VuZGlmCi0KLQlpZiAodW5saWtlbHkoKHVuc2lnbmVkKWlycSA+PSBOUl9JUlFTKSkgewotCQlwcmludGsoS0VSTl9FTUVSRyAiJXM6IGNhbm5vdCBoYW5kbGUgSVJRICVkXG4iLAotCQkJCQlfX2Z1bmNfXywgaXJxKTsKLQkJQlVHKCk7Ci0JfQotCi0Jb2xkX3JlZ3MgPSBzZXRfaXJxX3JlZ3MocmVncyk7Ci0JaXJxX2VudGVyKCk7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX1NUQUNLT1ZFUkZMT1cKLQkvKiBEZWJ1Z2dpbmcgY2hlY2sgZm9yIHN0YWNrIG92ZXJmbG93OiBpcyB0aGVyZSBsZXNzIHRoYW4gMUtCIGZyZWU/ICovCi0JewotCQlsb25nIHNwOwotCi0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJhbmRsICUlZXNwLCUwIiA6Ci0JCQkJCSI9ciIgKHNwKSA6ICIwIiAoVEhSRUFEX1NJWkUgLSAxKSk7Ci0JCWlmICh1bmxpa2VseShzcCA8IChzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArIFNUQUNLX1dBUk4pKSkgewotCQkJcHJpbnRrKCJkb19JUlE6IHN0YWNrIG92ZXJmbG93OiAlbGRcbiIsCi0JCQkJc3AgLSBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSk7Ci0JCQlkdW1wX3N0YWNrKCk7Ci0JCX0KLQl9Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR180S1NUQUNLUworCXUzMiAqaXNwLCBhcmcxLCBhcmcyOwogCiAJY3VyY3R4ID0gKHVuaW9uIGlycV9jdHggKikgY3VycmVudF90aHJlYWRfaW5mbygpOwogCWlycWN0eCA9IGhhcmRpcnFfY3R4W3NtcF9wcm9jZXNzb3JfaWQoKV07CkBAIC0xMTEsNTIgKzExNSwzOSBAQAogCSAqIGhhbmRsZXIpIHdlIGNhbid0IGRvIHRoYXQgYW5kIGp1c3QgaGF2ZSB0byBrZWVwIHVzaW5nIHRoZQogCSAqIGN1cnJlbnQgc3RhY2sgKHdoaWNoIGlzIHRoZSBpcnEgc3RhY2sgYWxyZWFkeSBhZnRlciBhbGwpCiAJICovCi0JaWYgKGN1cmN0eCAhPSBpcnFjdHgpIHsKLQkJaW50IGFyZzEsIGFyZzIsIGJ4OworCWlmICh1bmxpa2VseShjdXJjdHggPT0gaXJxY3R4KSkKKwkJcmV0dXJuIDA7CiAKLQkJLyogYnVpbGQgdGhlIHN0YWNrIGZyYW1lIG9uIHRoZSBJUlEgc3RhY2sgKi8KLQkJaXNwID0gKHUzMiopICgoY2hhciopaXJxY3R4ICsgc2l6ZW9mKCppcnFjdHgpKTsKLQkJaXJxY3R4LT50aW5mby50YXNrID0gY3VyY3R4LT50aW5mby50YXNrOwotCQlpcnFjdHgtPnRpbmZvLnByZXZpb3VzX2VzcCA9IGN1cnJlbnRfc3RhY2tfcG9pbnRlcjsKKwkvKiBidWlsZCB0aGUgc3RhY2sgZnJhbWUgb24gdGhlIElSUSBzdGFjayAqLworCWlzcCA9ICh1MzIgKikgKChjaGFyKilpcnFjdHggKyBzaXplb2YoKmlycWN0eCkpOworCWlycWN0eC0+dGluZm8udGFzayA9IGN1cmN0eC0+dGluZm8udGFzazsKKwlpcnFjdHgtPnRpbmZvLnByZXZpb3VzX2VzcCA9IGN1cnJlbnRfc3RhY2tfcG9pbnRlcjsKIAotCQkvKgotCQkgKiBDb3B5IHRoZSBzb2Z0aXJxIGJpdHMgaW4gcHJlZW1wdF9jb3VudCBzbyB0aGF0IHRoZQotCQkgKiBzb2Z0aXJxIGNoZWNrcyB3b3JrIGluIHRoZSBoYXJkaXJxIGNvbnRleHQuCi0JCSAqLwotCQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgPQotCQkJKGlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIH5TT0ZUSVJRX01BU0spIHwKLQkJCShjdXJjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgJiBTT0ZUSVJRX01BU0spOworCS8qCisJICogQ29weSB0aGUgc29mdGlycSBiaXRzIGluIHByZWVtcHRfY291bnQgc28gdGhhdCB0aGUKKwkgKiBzb2Z0aXJxIGNoZWNrcyB3b3JrIGluIHRoZSBoYXJkaXJxIGNvbnRleHQuCisJICovCisJaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ID0KKwkJKGlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIH5TT0ZUSVJRX01BU0spIHwKKwkJKGN1cmN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIFNPRlRJUlFfTUFTSyk7CiAKLQkJYXNtIHZvbGF0aWxlKAotCQkJIiAgICAgICB4Y2hnbCAgJSVlYngsJSVlc3AgICAgXG4iCi0JCQkiICAgICAgIGNhbGwgICAqJSVlZGkgICAgICAgICBcbiIKLQkJCSIgICAgICAgbW92bCAgICUlZWJ4LCUlZXNwICAgIFxuIgotCQkJOiAiPWEiIChhcmcxKSwgIj1kIiAoYXJnMiksICI9YiIgKGJ4KQotCQkJOiAgIjAiIChpcnEpLCAgICIxIiAoZGVzYyksICAiMiIgKGlzcCksCi0JCQkgICAiRCIgKGRlc2MtPmhhbmRsZV9pcnEpCi0JCQk6ICJtZW1vcnkiLCAiY2MiLCAiZWN4IgotCQkpOwotCX0gZWxzZQotI2VuZGlmCi0JCWRlc2MtPmhhbmRsZV9pcnEoaXJxLCBkZXNjKTsKKwlpZiAodW5saWtlbHkob3ZlcmZsb3cpKQorCQljYWxsX29uX3N0YWNrKHByaW50X3N0YWNrX292ZXJmbG93LCBpc3ApOwogCi0JaXJxX2V4aXQoKTsKLQlzZXRfaXJxX3JlZ3Mob2xkX3JlZ3MpOworCWFzbSB2b2xhdGlsZSgieGNoZ2wJJSVlYngsJSVlc3AJXG4iCisJCSAgICAgImNhbGwJKiUlZWRpCQlcbiIKKwkJICAgICAibW92bAklJWVieCwlJWVzcAlcbiIKKwkJICAgICA6ICI9YSIgKGFyZzEpLCAiPWQiIChhcmcyKSwgIj1iIiAoaXNwKQorCQkgICAgIDogICIwIiAoaXJxKSwgICAiMSIgKGRlc2MpLCAgIjIiIChpc3ApLAorCQkJIkQiIChkZXNjLT5oYW5kbGVfaXJxKQorCQkgICAgIDogIm1lbW9yeSIsICJjYyIsICJlY3giKTsKIAlyZXR1cm4gMTsKIH0KIAotI2lmZGVmIENPTkZJR180S1NUQUNLUwotCi1zdGF0aWMgY2hhciBzb2Z0aXJxX3N0YWNrW05SX0NQVVMgKiBUSFJFQURfU0laRV0KLQkJX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKLQotc3RhdGljIGNoYXIgaGFyZGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCi0JCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7Ci0KIC8qCiAgKiBhbGxvY2F0ZSBwZXItY3B1IHN0YWNrcyBmb3IgaGFyZGlycSBhbmQgZm9yIHNvZnRpcnEgcHJvY2Vzc2luZwogICovCi12b2lkIGlycV9jdHhfaW5pdChpbnQgY3B1KQordm9pZCBfX2NwdWluaXQgaXJxX2N0eF9pbml0KGludCBjcHUpCiB7CiAJdW5pb24gaXJxX2N0eCAqaXJxY3R4OwogCkBAIC0xNjQsMjUgKzE1NSwyNSBAQAogCQlyZXR1cm47CiAKIAlpcnFjdHggPSAodW5pb24gaXJxX2N0eCopICZoYXJkaXJxX3N0YWNrW2NwdSpUSFJFQURfU0laRV07Ci0JaXJxY3R4LT50aW5mby50YXNrICAgICAgICAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbiAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5jcHUgICAgICAgICAgICAgICA9IGNwdTsKLQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgICAgID0gSEFSRElSUV9PRkZTRVQ7Ci0JaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0ICAgICAgICA9IE1BS0VfTU1fU0VHKDApOworCWlycWN0eC0+dGluZm8udGFzawkJPSBOVUxMOworCWlycWN0eC0+dGluZm8uZXhlY19kb21haW4JPSBOVUxMOworCWlycWN0eC0+dGluZm8uY3B1CQk9IGNwdTsKKwlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQJPSBIQVJESVJRX09GRlNFVDsKKwlpcnFjdHgtPnRpbmZvLmFkZHJfbGltaXQJPSBNQUtFX01NX1NFRygwKTsKIAogCWhhcmRpcnFfY3R4W2NwdV0gPSBpcnFjdHg7CiAKIAlpcnFjdHggPSAodW5pb24gaXJxX2N0eCopICZzb2Z0aXJxX3N0YWNrW2NwdSpUSFJFQURfU0laRV07Ci0JaXJxY3R4LT50aW5mby50YXNrICAgICAgICAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbiAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5jcHUgICAgICAgICAgICAgICA9IGNwdTsKLQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgICAgID0gMDsKLQlpcnFjdHgtPnRpbmZvLmFkZHJfbGltaXQgICAgICAgID0gTUFLRV9NTV9TRUcoMCk7CisJaXJxY3R4LT50aW5mby50YXNrCQk9IE5VTEw7CisJaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbgk9IE5VTEw7CisJaXJxY3R4LT50aW5mby5jcHUJCT0gY3B1OworCWlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudAk9IDA7CisJaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0CT0gTUFLRV9NTV9TRUcoMCk7CiAKIAlzb2Z0aXJxX2N0eFtjcHVdID0gaXJxY3R4OwogCi0JcHJpbnRrKCJDUFUgJXUgaXJxc3RhY2tzLCBoYXJkPSVwIHNvZnQ9JXBcbiIsCi0JCWNwdSxoYXJkaXJxX2N0eFtjcHVdLHNvZnRpcnFfY3R4W2NwdV0pOworCXByaW50ayhLRVJOX0RFQlVHICJDUFUgJXUgaXJxc3RhY2tzLCBoYXJkPSVwIHNvZnQ9JXBcbiIsCisJICAgICAgIGNwdSxoYXJkaXJxX2N0eFtjcHVdLHNvZnRpcnFfY3R4W2NwdV0pOwogfQogCiB2b2lkIGlycV9jdHhfZXhpdChpbnQgY3B1KQpAQCAtMjExLDI1ICsyMDIsNTYgQEAKIAkJLyogYnVpbGQgdGhlIHN0YWNrIGZyYW1lIG9uIHRoZSBzb2Z0aXJxIHN0YWNrICovCiAJCWlzcCA9ICh1MzIqKSAoKGNoYXIqKWlycWN0eCArIHNpemVvZigqaXJxY3R4KSk7CiAKLQkJYXNtIHZvbGF0aWxlKAotCQkJIiAgICAgICB4Y2hnbCAgICUlZWJ4LCUlZXNwICAgICBcbiIKLQkJCSIgICAgICAgY2FsbCAgICBfX2RvX3NvZnRpcnEgICAgXG4iCi0JCQkiICAgICAgIG1vdmwgICAgJSVlYngsJSVlc3AgICAgIFxuIgotCQkJOiAiPWIiKGlzcCkKLQkJCTogIjAiKGlzcCkKLQkJCTogIm1lbW9yeSIsICJjYyIsICJlZHgiLCAiZWN4IiwgImVheCIKLQkJKTsKKwkJY2FsbF9vbl9zdGFjayhfX2RvX3NvZnRpcnEsIGlzcCk7CiAJCS8qCiAJCSAqIFNob3VsZG50IGhhcHBlbiwgd2UgcmV0dXJuZWQgYWJvdmUgaWYgaW5faW50ZXJydXB0KCk6Ci0JIAkgKi8KKwkJICovCiAJCVdBUk5fT05fT05DRShzb2Z0aXJxX2NvdW50KCkpOwogCX0KIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50CitleGVjdXRlX29uX2lycV9zdGFjayhpbnQgb3ZlcmZsb3csIHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgaW50IGlycSkgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKIC8qCisgKiBkb19JUlEgaGFuZGxlcyBhbGwgbm9ybWFsIGRldmljZSBJUlEncyAodGhlIHNwZWNpYWwKKyAqIFNNUCBjcm9zcy1DUFUgaW50ZXJydXB0cyBoYXZlIHRoZWlyIG93biBzcGVjaWZpYworICogaGFuZGxlcnMpLgorICovCit1bnNpZ25lZCBpbnQgZG9fSVJRKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCBwdF9yZWdzICpvbGRfcmVnczsKKwkvKiBoaWdoIGJpdCB1c2VkIGluIHJldF9mcm9tXyBjb2RlICovCisJaW50IG92ZXJmbG93LCBpcnEgPSB+cmVncy0+b3JpZ19heDsKKwlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfZGVzYyArIGlycTsKKworCWlmICh1bmxpa2VseSgodW5zaWduZWQpaXJxID49IE5SX0lSUVMpKSB7CisJCXByaW50ayhLRVJOX0VNRVJHICIlczogY2Fubm90IGhhbmRsZSBJUlEgJWRcbiIsCisJCQkJCV9fZnVuY19fLCBpcnEpOworCQlCVUcoKTsKKwl9CisKKwlvbGRfcmVncyA9IHNldF9pcnFfcmVncyhyZWdzKTsKKwlpcnFfZW50ZXIoKTsKKworCW92ZXJmbG93ID0gY2hlY2tfc3RhY2tfb3ZlcmZsb3coKTsKKworCWlmICghZXhlY3V0ZV9vbl9pcnFfc3RhY2sob3ZlcmZsb3csIGRlc2MsIGlycSkpIHsKKwkJaWYgKHVubGlrZWx5KG92ZXJmbG93KSkKKwkJCXByaW50X3N0YWNrX292ZXJmbG93KCk7CisJCWRlc2MtPmhhbmRsZV9pcnEoaXJxLCBkZXNjKTsKKwl9CisKKwlpcnFfZXhpdCgpOworCXNldF9pcnFfcmVncyhvbGRfcmVncyk7CisJcmV0dXJuIDE7Cit9CisKKy8qCiAgKiBJbnRlcnJ1cHQgc3RhdGlzdGljczoKICAqLwogCkBAIC0zMTMsMTYgKzMzNSwyMCBAQAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3RsYl9jb3VudCk7CiAJCXNlcV9wcmludGYocCwgIiAgVExCIHNob290ZG93bnNcbiIpOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9NQ0UKIAkJc2VxX3ByaW50ZihwLCAiVFJNOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3RoZXJtYWxfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRoZXJtYWwgZXZlbnQgaW50ZXJydXB0c1xuIik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAkJc2VxX3ByaW50ZihwLCAiU1BVOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3NwdXJpb3VzX2NvdW50KTsKIAkJc2VxX3ByaW50ZihwLCAiICBTcHVyaW91cyBpbnRlcnJ1cHRzXG4iKTsKKyNlbmRpZgogCQlzZXFfcHJpbnRmKHAsICJFUlI6ICUxMHVcbiIsIGF0b21pY19yZWFkKCZpcnFfZXJyX2NvdW50KSk7CiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X0lPX0FQSUMpCiAJCXNlcV9wcmludGYocCwgIk1JUzogJTEwdVxuIiwgYXRvbWljX3JlYWQoJmlycV9taXNfY291bnQpKTsKQEAgLTMzMSw2ICszNTcsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIC9wcm9jL3N0YXQgaGVscGVycworICovCit1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50IGNwdSkKK3sKKwl1NjQgc3VtID0gbm1pX2NvdW50KGNwdSk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzdW0gKz0gcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5hcGljX3RpbWVyX2lycXM7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU01QCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3Jlc2NoZWRfY291bnQ7CisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX2NhbGxfY291bnQ7CisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3RsYl9jb3VudDsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3RoZXJtYWxfY291bnQ7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzdW0gKz0gcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5pcnFfc3B1cmlvdXNfY291bnQ7CisjZW5kaWYKKwlyZXR1cm4gc3VtOworfQorCit1NjQgYXJjaF9pcnFfc3RhdCh2b2lkKQoreworCXU2NCBzdW0gPSBhdG9taWNfcmVhZCgmaXJxX2Vycl9jb3VudCk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKKwlzdW0gKz0gYXRvbWljX3JlYWQoJmlycV9taXNfY291bnQpOworI2VuZGlmCisJcmV0dXJuIHN1bTsKK30KKwogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXJxXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxXzY0LmMKaW5kZXggM2FhYzE1NC4uMWY3OGIyMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lycV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtMTM1LDYgKzEzNSw3IEBACiAJCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGNwdV9wZGEoaiktPmlycV90bGJfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRMQiBzaG9vdGRvd25zXG4iKTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCiAJCXNlcV9wcmludGYocCwgIlRSTTogIik7CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgY3B1X3BkYShqKS0+aXJxX3RoZXJtYWxfY291bnQpOwpAQCAtMTQzLDYgKzE0NCw3IEBACiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgY3B1X3BkYShqKS0+aXJxX3RocmVzaG9sZF9jb3VudCk7CiAJCXNlcV9wcmludGYocCwgIiAgVGhyZXNob2xkIEFQSUMgaW50ZXJydXB0c1xuIik7CisjZW5kaWYKIAkJc2VxX3ByaW50ZihwLCAiU1BVOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLCBjcHVfcGRhKGopLT5pcnFfc3B1cmlvdXNfY291bnQpOwpAQCAtMTUzLDYgKzE1NSwzMiBAQAogfQogCiAvKgorICogL3Byb2Mvc3RhdCBoZWxwZXJzCisgKi8KK3U2NCBhcmNoX2lycV9zdGF0X2NwdSh1bnNpZ25lZCBpbnQgY3B1KQoreworCXU2NCBzdW0gPSBjcHVfcGRhKGNwdSktPl9fbm1pX2NvdW50OworCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+YXBpY190aW1lcl9pcnFzOworI2lmZGVmIENPTkZJR19TTVAKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfcmVzY2hlZF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfY2FsbF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGxiX2NvdW50OworI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9NQ0UKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGhlcm1hbF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGhyZXNob2xkX2NvdW50OworI2VuZGlmCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3NwdXJpb3VzX2NvdW50OworCXJldHVybiBzdW07Cit9CisKK3U2NCBhcmNoX2lycV9zdGF0KHZvaWQpCit7CisJcmV0dXJuIGF0b21pY19yZWFkKCZpcnFfZXJyX2NvdW50KTsKK30KKworLyoKICAqIGRvX0lSUSBoYW5kbGVzIGFsbCBub3JtYWwgZGV2aWNlIElSUSdzICh0aGUgc3BlY2lhbAogICogU01QIGNyb3NzLUNQVSBpbnRlcnJ1cHRzIGhhdmUgdGhlaXIgb3duIHNwZWNpZmljCiAgKiBoYW5kbGVycykuCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXJxaW5pdF8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycWluaXRfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjY5MTQyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2lycWluaXRfMzIuYwpAQCAtMCwwICsxLDExNCBAQAorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisKKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS90aW1lci5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKworCisvKgorICogTm90ZSB0aGF0IG9uIGEgNDg2LCB3ZSBkb24ndCB3YW50IHRvIGRvIGEgU0lHRlBFIG9uIGFuIGlycTEzCisgKiBhcyB0aGUgaXJxIGlzIHVucmVsaWFibGUsIGFuZCBleGNlcHRpb24gMTYgd29ya3MgY29ycmVjdGx5CisgKiAoaWUgYXMgZXhwbGFpbmVkIGluIHRoZSBpbnRlbCBsaXRlcmF0dXJlKS4gT24gYSAzODYsIHlvdQorICogY2FuJ3QgdXNlIGV4Y2VwdGlvbiAxNiBkdWUgdG8gYmFkIElCTSBkZXNpZ24sIHNvIHdlIGhhdmUgdG8KKyAqIHJlbHkgb24gdGhlIGxlc3MgZXhhY3QgaXJxMTMuCisgKgorICogQ2FyZWZ1bC4uIE5vdCBvbmx5IGlzIElSUTEzIHVucmVsaWFibGUsIGJ1dCBpdCBpcyBhbHNvCisgKiBsZWFkcyB0byByYWNlcy4gSUJNIGRlc2lnbmVycyB3aG8gY2FtZSB1cCB3aXRoIGl0IHNob3VsZAorICogYmUgc2hvdC4KKyAqLworIAorCitzdGF0aWMgaXJxcmV0dXJuX3QgbWF0aF9lcnJvcl9pcnEoaW50IGNwbCwgdm9pZCAqZGV2X2lkKQoreworCWV4dGVybiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKik7CisJb3V0YigwLDB4RjApOworCWlmIChpZ25vcmVfZnB1X2lycSB8fCAhYm9vdF9jcHVfZGF0YS5oYXJkX21hdGgpCisJCXJldHVybiBJUlFfTk9ORTsKKwltYXRoX2Vycm9yKCh2b2lkIF9fdXNlciAqKWdldF9pcnFfcmVncygpLT5pcCk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisvKgorICogTmV3IG1vdGhlcmJvYXJkcyBzb21ldGltZXMgbWFrZSBJUlEgMTMgYmUgYSBQQ0kgaW50ZXJydXB0LAorICogc28gYWxsb3cgaW50ZXJydXB0IHNoYXJpbmcuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGZwdV9pcnEgPSB7CisJLmhhbmRsZXIgPSBtYXRoX2Vycm9yX2lycSwKKwkubWFzayA9IENQVV9NQVNLX05PTkUsCisJLm5hbWUgPSAiZnB1IiwKK307CisKK3ZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCit7CisJaW50IGk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlpbml0X2JzcF9BUElDKCk7CisjZW5kaWYKKwlpbml0XzgyNTlBKDApOworCisJLyoKKwkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgorCSAqLworCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKKwkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7CisJfQorfQorCisvKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgKi8KK3ZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7CisKK3ZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQoreworCWludCBpOworCisJLyogYWxsIHRoZSBzZXQgdXAgYmVmb3JlIHRoZSBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAqLworCXByZV9pbnRyX2luaXRfaG9vaygpOworCisJLyoKKwkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQorCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQorCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKKwkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7CisJCWlmIChpID49IE5SX0lSUVMpCisJCQlicmVhazsKKwkJLyogU1lTQ0FMTF9WRUNUT1Igd2FzIHJlc2VydmVkIGluIHRyYXBfaW5pdC4gKi8KKwkJaWYgKCF0ZXN0X2JpdCh2ZWN0b3IsIHVzZWRfdmVjdG9ycykpCisJCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKKwl9CisKKwkvKiBzZXR1cCBhZnRlciBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAodXN1YWxseSBhZGQgaW4KKwkgKiB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGdhdGVzKQorCSAqLworCWludHJfaW5pdF9ob29rKCk7CisKKwkvKgorCSAqIEV4dGVybmFsIEZQVT8gU2V0IHVwIGlycTEzIGlmIHNvLCBmb3IKKwkgKiBvcmlnaW5hbCBicmFpbmRhbWFnZWQgSUJNIEZFUlIgY291cGxpbmcuCisJICovCisJaWYgKGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICYmICFjcHVfaGFzX2ZwdSkKKwkJc2V0dXBfaXJxKEZQVV9JUlEsICZmcHVfaXJxKTsKKworCWlycV9jdHhfaW5pdChzbXBfcHJvY2Vzc29yX2lkKCkpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycWluaXRfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmNDllOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzY0LmMKQEAgLTAsMCArMSwyMTcgQEAKKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorCisjaW5jbHVkZSA8YXNtL2FjcGkuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9od19pcnEuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9kZWxheS5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vaTgyNTkuaD4KKworLyoKKyAqIENvbW1vbiBwbGFjZSB0byBkZWZpbmUgYWxsIHg4NiBJUlEgdmVjdG9ycworICoKKyAqIFRoaXMgYnVpbGRzIHVwIHRoZSBJUlEgaGFuZGxlciBzdHVicyB1c2luZyBzb21lIHVnbHkgbWFjcm9zIGluIGlycS5oCisgKgorICogVGhlc2UgbWFjcm9zIGNyZWF0ZSB0aGUgbG93LWxldmVsIGFzc2VtYmx5IElSUSByb3V0aW5lcyB0aGF0IHNhdmUKKyAqIHJlZ2lzdGVyIGNvbnRleHQgYW5kIGNhbGwgZG9fSVJRKCkuIGRvX0lSUSgpIHRoZW4gZG9lcyBhbGwgdGhlCisgKiBvcGVyYXRpb25zIHRoYXQgYXJlIG5lZWRlZCB0byBrZWVwIHRoZSBBVCAob3IgU01QIElPQVBJQykKKyAqIGludGVycnVwdC1jb250cm9sbGVyIGhhcHB5LgorICovCisKKyNkZWZpbmUgSVJRX05BTUUyKG5yKSBuciMjX2ludGVycnVwdCh2b2lkKQorI2RlZmluZSBJUlFfTkFNRShucikgSVJRX05BTUUyKElSUSMjbnIpCisKKy8qCisgKglTTVAgaGFzIGEgZmV3IHNwZWNpYWwgaW50ZXJydXB0cyBmb3IgSVBJIG1lc3NhZ2VzCisgKi8KKworI2RlZmluZSBCVUlMRF9JUlEobnIpCQkJCVwKKwlhc21saW5rYWdlIHZvaWQgSVJRX05BTUUobnIpOwkJXAorCWFzbSgiXG4ucDJhbGlnblxuIgkJCVwKKwkgICAgIklSUSIgI25yICJfaW50ZXJydXB0OlxuXHQiCQlcCisJICAgICJwdXNoICR+KCIgI25yICIpIDsgIgkJXAorCSAgICAiam1wIGNvbW1vbl9pbnRlcnJ1cHQiKTsKKworI2RlZmluZSBCSSh4LHkpIFwKKwlCVUlMRF9JUlEoeCMjeSkKKworI2RlZmluZSBCVUlMRF8xNl9JUlFTKHgpIFwKKwlCSSh4LDApIEJJKHgsMSkgQkkoeCwyKSBCSSh4LDMpIFwKKwlCSSh4LDQpIEJJKHgsNSkgQkkoeCw2KSBCSSh4LDcpIFwKKwlCSSh4LDgpIEJJKHgsOSkgQkkoeCxhKSBCSSh4LGIpIFwKKwlCSSh4LGMpIEJJKHgsZCkgQkkoeCxlKSBCSSh4LGYpCisKKy8qCisgKiBJU0EgUElDIG9yIGxvdyBJTy1BUElDIHRyaWdnZXJlZCAoSU5UQS1jeWNsZSBvciBBUElDKSBpbnRlcnJ1cHRzOgorICogKHRoZXNlIGFyZSB1c3VhbGx5IG1hcHBlZCB0byB2ZWN0b3JzIDB4MzAtMHgzZikKKyAqLworCisvKgorICogVGhlIElPLUFQSUMgZ2l2ZXMgdXMgbWFueSBtb3JlIGludGVycnVwdCBzb3VyY2VzLiBNb3N0IG9mIHRoZXNlCisgKiBhcmUgdW51c2VkIGJ1dCBhbiBTTVAgc3lzdGVtIGlzIHN1cHBvc2VkIHRvIGhhdmUgZW5vdWdoIG1lbW9yeSAuLi4KKyAqIHNvbWV0aW1lcyAobW9zdGx5IHdydC4gaHcgYnVncykgd2UgZ2V0IGNvcnJ1cHRlZCB2ZWN0b3JzIGFsbAorICogYWNyb3NzIHRoZSBzcGVjdHJ1bSwgc28gd2UgcmVhbGx5IHdhbnQgdG8gYmUgcHJlcGFyZWQgdG8gZ2V0IGFsbAorICogb2YgdGhlc2UuIFBsdXMsIG1vcmUgcG93ZXJmdWwgc3lzdGVtcyBtaWdodCBoYXZlIG1vcmUgdGhhbiA2NAorICogSU8tQVBJQyByZWdpc3RlcnMuCisgKgorICogKHRoZXNlIGFyZSB1c3VhbGx5IG1hcHBlZCBpbnRvIHRoZSAweDMwLTB4ZmYgdmVjdG9yIHJhbmdlKQorICovCisJCQkJICAgICAgQlVJTERfMTZfSVJRUygweDIpIEJVSUxEXzE2X0lSUVMoMHgzKQorQlVJTERfMTZfSVJRUygweDQpIEJVSUxEXzE2X0lSUVMoMHg1KSBCVUlMRF8xNl9JUlFTKDB4NikgQlVJTERfMTZfSVJRUygweDcpCitCVUlMRF8xNl9JUlFTKDB4OCkgQlVJTERfMTZfSVJRUygweDkpIEJVSUxEXzE2X0lSUVMoMHhhKSBCVUlMRF8xNl9JUlFTKDB4YikKK0JVSUxEXzE2X0lSUVMoMHhjKSBCVUlMRF8xNl9JUlFTKDB4ZCkgQlVJTERfMTZfSVJRUygweGUpIEJVSUxEXzE2X0lSUVMoMHhmKQorCisjdW5kZWYgQlVJTERfMTZfSVJRUworI3VuZGVmIEJJCisKKworI2RlZmluZSBJUlEoeCx5KSBcCisJSVJRIyN4IyN5IyNfaW50ZXJydXB0CisKKyNkZWZpbmUgSVJRTElTVF8xNih4KSBcCisJSVJRKHgsMCksIElSUSh4LDEpLCBJUlEoeCwyKSwgSVJRKHgsMyksIFwKKwlJUlEoeCw0KSwgSVJRKHgsNSksIElSUSh4LDYpLCBJUlEoeCw3KSwgXAorCUlSUSh4LDgpLCBJUlEoeCw5KSwgSVJRKHgsYSksIElSUSh4LGIpLCBcCisJSVJRKHgsYyksIElSUSh4LGQpLCBJUlEoeCxlKSwgSVJRKHgsZikKKworLyogZm9yIHRoZSBpcnEgdmVjdG9ycyAqLworc3RhdGljIHZvaWQgKCpfX2luaXRkYXRhIGludGVycnVwdFtOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SXSkodm9pZCkgPSB7CisJCQkJCSAgSVJRTElTVF8xNigweDIpLCBJUlFMSVNUXzE2KDB4MyksCisJSVJRTElTVF8xNigweDQpLCBJUlFMSVNUXzE2KDB4NSksIElSUUxJU1RfMTYoMHg2KSwgSVJRTElTVF8xNigweDcpLAorCUlSUUxJU1RfMTYoMHg4KSwgSVJRTElTVF8xNigweDkpLCBJUlFMSVNUXzE2KDB4YSksIElSUUxJU1RfMTYoMHhiKSwKKwlJUlFMSVNUXzE2KDB4YyksIElSUUxJU1RfMTYoMHhkKSwgSVJRTElTVF8xNigweGUpLCBJUlFMSVNUXzE2KDB4ZikKK307CisKKyN1bmRlZiBJUlEKKyN1bmRlZiBJUlFMSVNUXzE2CisKKworCisKKy8qCisgKiBJUlEyIGlzIGNhc2NhZGUgaW50ZXJydXB0IHRvIHNlY29uZCBpbnRlcnJ1cHQgY29udHJvbGxlcgorICovCisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTIgPSB7CisJLmhhbmRsZXIgPSBub19hY3Rpb24sCisJLm1hc2sgPSBDUFVfTUFTS19OT05FLAorCS5uYW1lID0gImNhc2NhZGUiLAorfTsKK0RFRklORV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSkgPSB7CisJWzAgLi4uIElSUTBfVkVDVE9SIC0gMV0gPSAtMSwKKwlbSVJRMF9WRUNUT1JdID0gMCwKKwlbSVJRMV9WRUNUT1JdID0gMSwKKwlbSVJRMl9WRUNUT1JdID0gMiwKKwlbSVJRM19WRUNUT1JdID0gMywKKwlbSVJRNF9WRUNUT1JdID0gNCwKKwlbSVJRNV9WRUNUT1JdID0gNSwKKwlbSVJRNl9WRUNUT1JdID0gNiwKKwlbSVJRN19WRUNUT1JdID0gNywKKwlbSVJROF9WRUNUT1JdID0gOCwKKwlbSVJROV9WRUNUT1JdID0gOSwKKwlbSVJRMTBfVkVDVE9SXSA9IDEwLAorCVtJUlExMV9WRUNUT1JdID0gMTEsCisJW0lSUTEyX1ZFQ1RPUl0gPSAxMiwKKwlbSVJRMTNfVkVDVE9SXSA9IDEzLAorCVtJUlExNF9WRUNUT1JdID0gMTQsCisJW0lSUTE1X1ZFQ1RPUl0gPSAxNSwKKwlbSVJRMTVfVkVDVE9SICsgMSAuLi4gTlJfVkVDVE9SUyAtIDFdID0gLTEKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X0lTQV9pcnFzICh2b2lkKQoreworCWludCBpOworCisJaW5pdF9ic3BfQVBJQygpOworCWluaXRfODI1OUEoMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlJfSVJRUzsgaSsrKSB7CisJCWlycV9kZXNjW2ldLnN0YXR1cyA9IElSUV9ESVNBQkxFRDsKKwkJaXJxX2Rlc2NbaV0uYWN0aW9uID0gTlVMTDsKKwkJaXJxX2Rlc2NbaV0uZGVwdGggPSAxOworCisJCWlmIChpIDwgMTYpIHsKKwkJCS8qCisJCQkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgorCQkJICovCisJCQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpLCAmaTgyNTlBX2NoaXAsCisJCQkJCQkgICAgICBoYW5kbGVfbGV2ZWxfaXJxLCAiWFQiKTsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiAnaGlnaCcgUENJIElSUXMgZmlsbGVkIGluIG9uIGRlbWFuZAorCQkJICovCisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJm5vX2lycV9jaGlwOworCQl9CisJfQorfQorCit2b2lkIGluaXRfSVJRKHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJuYXRpdmVfaW5pdF9JUlEiKSkpOworCit2b2lkIF9faW5pdCBuYXRpdmVfaW5pdF9JUlEodm9pZCkKK3sKKwlpbnQgaTsKKworCWluaXRfSVNBX2lycXMoKTsKKwkvKgorCSAqIENvdmVyIHRoZSB3aG9sZSB2ZWN0b3Igc3BhY2UsIG5vIHZlY3RvciBjYW4gZXNjYXBlCisJICogdXMuIChzb21lIG9mIHRoZXNlIHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgYmVjb21lCisJICogJ3NwZWNpYWwnIFNNUCBpbnRlcnJ1cHRzKQorCSAqLworCWZvciAoaSA9IDA7IGkgPCAoTlJfVkVDVE9SUyAtIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUik7IGkrKykgeworCQlpbnQgdmVjdG9yID0gRklSU1RfRVhURVJOQUxfVkVDVE9SICsgaTsKKwkJaWYgKHZlY3RvciAhPSBJQTMyX1NZU0NBTExfVkVDVE9SKQorCQkJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFtpXSk7CisJfQorCisjaWZkZWYgQ09ORklHX1NNUAorCS8qCisJICogVGhlIHJlc2NoZWR1bGUgaW50ZXJydXB0IGlzIGEgQ1BVLXRvLUNQVSByZXNjaGVkdWxlLWhlbHBlcgorCSAqIElQSSwgZHJpdmVuIGJ5IHdha2V1cC4KKwkgKi8KKwlhbGxvY19pbnRyX2dhdGUoUkVTQ0hFRFVMRV9WRUNUT1IsIHJlc2NoZWR1bGVfaW50ZXJydXB0KTsKKworCS8qIElQSXMgZm9yIGludmFsaWRhdGlvbiAqLworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMCwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQwKTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzEsIGludmFsaWRhdGVfaW50ZXJydXB0MSk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsyLCBpbnZhbGlkYXRlX2ludGVycnVwdDIpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMywgaW52YWxpZGF0ZV9pbnRlcnJ1cHQzKTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzQsIGludmFsaWRhdGVfaW50ZXJydXB0NCk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs1LCBpbnZhbGlkYXRlX2ludGVycnVwdDUpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ2KTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzcsIGludmFsaWRhdGVfaW50ZXJydXB0Nyk7CisKKwkvKiBJUEkgZm9yIGdlbmVyaWMgZnVuY3Rpb24gY2FsbCAqLworCWFsbG9jX2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOworCisJLyogTG93IHByaW9yaXR5IElQSSB0byBjbGVhbnVwIGFmdGVyIG1vdmluZyBhbiBpcnEgKi8KKwlzZXRfaW50cl9nYXRlKElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SLCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCk7CisjZW5kaWYKKwlhbGxvY19pbnRyX2dhdGUoVEhFUk1BTF9BUElDX1ZFQ1RPUiwgdGhlcm1hbF9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShUSFJFU0hPTERfQVBJQ19WRUNUT1IsIHRocmVzaG9sZF9pbnRlcnJ1cHQpOworCisJLyogc2VsZiBnZW5lcmF0ZWQgSVBJIGZvciBsb2NhbCBBUElDIHRpbWVyICovCisJYWxsb2NfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOworCisJLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KKwlhbGxvY19pbnRyX2dhdGUoU1BVUklPVVNfQVBJQ19WRUNUT1IsIHNwdXJpb3VzX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKEVSUk9SX0FQSUNfVkVDVE9SLCBlcnJvcl9pbnRlcnJ1cHQpOworCisJaWYgKCFhY3BpX2lvYXBpYykKKwkJc2V0dXBfaXJxKDIsICZpcnEyKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rdm1jbG9jay5jIGIvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKaW5kZXggMDhhMzA5OC4uODdlZGYxYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KKyNpbmNsdWRlIDxhc20vcHZjbG9jay5oPgogI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CkBAIC0zNiwxOCArMzcsOSBAQAogZWFybHlfcGFyYW0oIm5vLWt2bWNsb2NrIiwgcGFyc2Vfbm9fa3ZtY2xvY2spOwogCiAvKiBUaGUgaHlwZXJ2aXNvciB3aWxsIHB1dCBpbmZvcm1hdGlvbiBhYm91dCB0aW1lIHBlcmlvZGljYWxseSBoZXJlICovCi1zdGF0aWMgREVGSU5FX1BFUl9DUFVfU0hBUkVEX0FMSUdORUQoc3RydWN0IGt2bV92Y3B1X3RpbWVfaW5mbywgaHZfY2xvY2spOwotI2RlZmluZSBnZXRfY2xvY2soY3B1LCBmaWVsZCkgcGVyX2NwdShodl9jbG9jaywgY3B1KS5maWVsZAorc3RhdGljIERFRklORV9QRVJfQ1BVX1NIQVJFRF9BTElHTkVEKHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvLCBodl9jbG9jayk7CitzdGF0aWMgc3RydWN0IHB2Y2xvY2tfd2FsbF9jbG9jayB3YWxsX2Nsb2NrOwogCi1zdGF0aWMgaW5saW5lIHU2NCBrdm1fZ2V0X2RlbHRhKHU2NCBsYXN0X3RzYykKLXsKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCXU2NCBkZWx0YSA9IG5hdGl2ZV9yZWFkX3RzYygpIC0gbGFzdF90c2M7Ci0JcmV0dXJuIChkZWx0YSAqIGdldF9jbG9jayhjcHUsIHRzY190b19zeXN0ZW1fbXVsKSkgPj4gS1ZNX1NDQUxFOwotfQotCi1zdGF0aWMgc3RydWN0IGt2bV93YWxsX2Nsb2NrIHdhbGxfY2xvY2s7Ci1zdGF0aWMgY3ljbGVfdCBrdm1fY2xvY2tfcmVhZCh2b2lkKTsKIC8qCiAgKiBUaGUgd2FsbGNsb2NrIGlzIHRoZSB0aW1lIG9mIGRheSB3aGVuIHdlIGJvb3RlZC4gU2luY2UgdGhlbiwgc29tZSB0aW1lIG1heQogICogaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBoeXBlcnZpc29yIHdyb3RlIHRoZSBkYXRhLiBTbyB3ZSB0cnkgdG8gYWNjb3VudCBmb3IKQEAgLTU1LDY0ICs0NywzNyBAQAogICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBrdm1fZ2V0X3dhbGxjbG9jayh2b2lkKQogewotCXUzMiB3Y19zZWMsIHdjX25zZWM7Ci0JdTY0IGRlbHRhOworCXN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICp2Y3B1X3RpbWU7CiAJc3RydWN0IHRpbWVzcGVjIHRzOwotCWludCB2ZXJzaW9uLCBuc2VjOwogCWludCBsb3csIGhpZ2g7CiAKIAlsb3cgPSAoaW50KV9fcGEoJndhbGxfY2xvY2spOwogCWhpZ2ggPSAoKHU2NClfX3BhKCZ3YWxsX2Nsb2NrKSA+PiAzMik7Ci0KLQlkZWx0YSA9IGt2bV9jbG9ja19yZWFkKCk7Ci0KIAluYXRpdmVfd3JpdGVfbXNyKE1TUl9LVk1fV0FMTF9DTE9DSywgbG93LCBoaWdoKTsKLQlkbyB7Ci0JCXZlcnNpb24gPSB3YWxsX2Nsb2NrLndjX3ZlcnNpb247Ci0JCXJtYigpOwotCQl3Y19zZWMgPSB3YWxsX2Nsb2NrLndjX3NlYzsKLQkJd2NfbnNlYyA9IHdhbGxfY2xvY2sud2NfbnNlYzsKLQkJcm1iKCk7Ci0JfSB3aGlsZSAoKHdhbGxfY2xvY2sud2NfdmVyc2lvbiAhPSB2ZXJzaW9uKSB8fCAodmVyc2lvbiAmIDEpKTsKIAotCWRlbHRhID0ga3ZtX2Nsb2NrX3JlYWQoKSAtIGRlbHRhOwotCWRlbHRhICs9IHdjX25zZWM7Ci0JbnNlYyA9IGRvX2RpdihkZWx0YSwgTlNFQ19QRVJfU0VDKTsKLQlzZXRfbm9ybWFsaXplZF90aW1lc3BlYygmdHMsIHdjX3NlYyArIGRlbHRhLCBuc2VjKTsKLQkvKgotCSAqIE9mIGFsbCBtZWNoYW5pc21zIG9mIHRpbWUgYWRqdXN0bWVudCBJJ3ZlIHRlc3RlZCwgdGhpcyBvbmUKLQkgKiB3YXMgdGhlIGNoYW1waW9uIQotCSAqLwotCXJldHVybiB0cy50dl9zZWMgKyAxOworCXZjcHVfdGltZSA9ICZnZXRfY3B1X3Zhcihodl9jbG9jayk7CisJcHZjbG9ja19yZWFkX3dhbGxjbG9jaygmd2FsbF9jbG9jaywgdmNwdV90aW1lLCAmdHMpOworCXB1dF9jcHVfdmFyKGh2X2Nsb2NrKTsKKworCXJldHVybiB0cy50dl9zZWM7CiB9CiAKIHN0YXRpYyBpbnQga3ZtX3NldF93YWxsY2xvY2sodW5zaWduZWQgbG9uZyBub3cpCiB7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIC0xOwogfQogCi0vKgotICogVGhpcyBpcyBvdXIgcmVhZF9jbG9jayBmdW5jdGlvbi4gVGhlIGhvc3QgcHV0cyBhbiB0c2MgdGltZXN0YW1wIGVhY2ggdGltZQotICogaXQgdXBkYXRlcyBhIG5ldyB0aW1lLiBXaXRob3V0IHRoZSB0c2MgYWRqdXN0bWVudCwgd2UgY2FuIGhhdmUgYSBzaXR1YXRpb24KLSAqIGluIHdoaWNoIGEgdmNwdSBzdGFydHMgdG8gcnVuIGVhcmxpZXIgKHNtYWxsZXIgc3lzdGVtX3RpbWUpLCBidXQgcHJvYmVzCi0gKiB0aW1lIGxhdGVyIChjb21wYXJlZCB0byBhbm90aGVyIHZjcHUpLCBsZWFkaW5nIHRvIGJhY2t3YXJkcyB0aW1lCi0gKi8KIHN0YXRpYyBjeWNsZV90IGt2bV9jbG9ja19yZWFkKHZvaWQpCiB7Ci0JdTY0IGxhc3RfdHNjLCBub3c7Ci0JaW50IGNwdTsKKwlzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjOworCWN5Y2xlX3QgcmV0OwogCi0JcHJlZW1wdF9kaXNhYmxlKCk7Ci0JY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCi0JbGFzdF90c2MgPSBnZXRfY2xvY2soY3B1LCB0c2NfdGltZXN0YW1wKTsKLQlub3cgPSBnZXRfY2xvY2soY3B1LCBzeXN0ZW1fdGltZSk7Ci0KLQlub3cgKz0ga3ZtX2dldF9kZWx0YShsYXN0X3RzYyk7Ci0JcHJlZW1wdF9lbmFibGUoKTsKLQotCXJldHVybiBub3c7CisJc3JjID0gJmdldF9jcHVfdmFyKGh2X2Nsb2NrKTsKKwlyZXQgPSBwdmNsb2NrX2Nsb2Nrc291cmNlX3JlYWQoc3JjKTsKKwlwdXRfY3B1X3Zhcihodl9jbG9jayk7CisJcmV0dXJuIHJldDsKIH0KKwogc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBrdm1fY2xvY2sgPSB7CiAJLm5hbWUgPSAia3ZtLWNsb2NrIiwKIAkucmVhZCA9IGt2bV9jbG9ja19yZWFkLApAQCAtMTIzLDEzICs4OCwxNCBAQAogCS5mbGFncyA9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTLAogfTsKIAotc3RhdGljIGludCBrdm1fcmVnaXN0ZXJfY2xvY2sodm9pZCkKK3N0YXRpYyBpbnQga3ZtX3JlZ2lzdGVyX2Nsb2NrKGNoYXIgKnR4dCkKIHsKIAlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCWludCBsb3csIGhpZ2g7CiAJbG93ID0gKGludClfX3BhKCZwZXJfY3B1KGh2X2Nsb2NrLCBjcHUpKSB8IDE7CiAJaGlnaCA9ICgodTY0KV9fcGEoJnBlcl9jcHUoaHZfY2xvY2ssIGNwdSkpID4+IDMyKTsKLQorCXByaW50ayhLRVJOX0lORk8gImt2bS1jbG9jazogY3B1ICVkLCBtc3IgJXg6JXgsICVzXG4iLAorCSAgICAgICBjcHUsIGhpZ2gsIGxvdywgdHh0KTsKIAlyZXR1cm4gbmF0aXZlX3dyaXRlX21zcl9zYWZlKE1TUl9LVk1fU1lTVEVNX1RJTUUsIGxvdywgaGlnaCk7CiB9CiAKQEAgLTE0MCwxMiArMTA2LDIwIEBACiAJICogTm93IHRoYXQgdGhlIGZpcnN0IGNwdSBhbHJlYWR5IGhhZCB0aGlzIGNsb2Nrc291cmNlIGluaXRpYWxpemVkLAogCSAqIHdlIHNob3VsZG4ndCBmYWlsLgogCSAqLwotCVdBUk5fT04oa3ZtX3JlZ2lzdGVyX2Nsb2NrKCkpOworCVdBUk5fT04oa3ZtX3JlZ2lzdGVyX2Nsb2NrKCJzZWNvbmRhcnkgY3B1IGNsb2NrIikpOwogCS8qIG9rLCBkb25lIHdpdGggb3VyIHRyaWNrZXJ5LCBjYWxsIG5hdGl2ZSAqLwogCXNldHVwX3NlY29uZGFyeV9BUElDX2Nsb2NrKCk7CiB9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19TTVAKK3ZvaWQgX19pbml0IGt2bV9zbXBfcHJlcGFyZV9ib290X2NwdSh2b2lkKQoreworCVdBUk5fT04oa3ZtX3JlZ2lzdGVyX2Nsb2NrKCJwcmltYXJ5IGNwdSBjbG9jayIpKTsKKwluYXRpdmVfc21wX3ByZXBhcmVfYm9vdF9jcHUoKTsKK30KKyNlbmRpZgorCiAvKgogICogQWZ0ZXIgdGhlIGNsb2NrIGlzIHJlZ2lzdGVyZWQsIHRoZSBob3N0IHdpbGwga2VlcCB3cml0aW5nIHRvIHRoZQogICogcmVnaXN0ZXJlZCBtZW1vcnkgbG9jYXRpb24uIElmIHRoZSBndWVzdCBoYXBwZW5zIHRvIHNodXRkb3duLCB0aGlzIG1lbW9yeQpAQCAtMTc0LDcgKzE0OCw3IEBACiAJCXJldHVybjsKIAogCWlmIChrdm1jbG9jayAmJiBrdm1fcGFyYV9oYXNfZmVhdHVyZShLVk1fRkVBVFVSRV9DTE9DS1NPVVJDRSkpIHsKLQkJaWYgKGt2bV9yZWdpc3Rlcl9jbG9jaygpKQorCQlpZiAoa3ZtX3JlZ2lzdGVyX2Nsb2NrKCJib290IGNsb2NrIikpCiAJCQlyZXR1cm47CiAJCXB2X3RpbWVfb3BzLmdldF93YWxsY2xvY2sgPSBrdm1fZ2V0X3dhbGxjbG9jazsKIAkJcHZfdGltZV9vcHMuc2V0X3dhbGxjbG9jayA9IGt2bV9zZXRfd2FsbGNsb2NrOwpAQCAtMTgyLDYgKzE1Niw5IEBACiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAJCXB2X2FwaWNfb3BzLnNldHVwX3NlY29uZGFyeV9jbG9jayA9IGt2bV9zZXR1cF9zZWNvbmRhcnlfY2xvY2s7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfU01QCisJCXNtcF9vcHMuc21wX3ByZXBhcmVfYm9vdF9jcHUgPSBrdm1fc21wX3ByZXBhcmVfYm9vdF9jcHU7CisjZW5kaWYKIAkJbWFjaGluZV9vcHMuc2h1dGRvd24gID0ga3ZtX3NodXRkb3duOwogI2lmZGVmIENPTkZJR19LRVhFQwogCQltYWNoaW5lX29wcy5jcmFzaF9zaHV0ZG93biAgPSBrdm1fY3Jhc2hfc2h1dGRvd247CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMKaW5kZXggMDIyNGMzNi4uMjFmMmJhZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2xkdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYwpAQCAtMjAsOSArMjAsOSBAQAogI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgogCiAjaWZkZWYgQ09ORklHX1NNUAotc3RhdGljIHZvaWQgZmx1c2hfbGR0KHZvaWQgKm51bGwpCitzdGF0aWMgdm9pZCBmbHVzaF9sZHQodm9pZCAqY3VycmVudF9tbSkKIHsKLQlpZiAoY3VycmVudC0+YWN0aXZlX21tKQorCWlmIChjdXJyZW50LT5hY3RpdmVfbW0gPT0gY3VycmVudF9tbSkKIAkJbG9hZF9MRFQoJmN1cnJlbnQtPmFjdGl2ZV9tbS0+Y29udGV4dCk7CiB9CiAjZW5kaWYKQEAgLTY4LDcgKzY4LDcgQEAKIAkJbG9hZF9MRFQocGMpOwogCQltYXNrID0gY3B1bWFza19vZl9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAkJaWYgKCFjcHVzX2VxdWFsKGN1cnJlbnQtPm1tLT5jcHVfdm1fbWFzaywgbWFzaykpCi0JCQlzbXBfY2FsbF9mdW5jdGlvbihmbHVzaF9sZHQsIE5VTEwsIDEsIDEpOworCQkJc21wX2NhbGxfZnVuY3Rpb24oZmx1c2hfbGR0LCBjdXJyZW50LT5tbSwgMSwgMSk7CiAJCXByZWVtcHRfZW5hYmxlKCk7CiAjZWxzZQogCQlsb2FkX0xEVChwYyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY18zMi5jIGIvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfMzIuYwppbmRleCBkMGIyMzRjLi44ODY0MjMwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzMyLmMKQEAgLTExLDYgKzExLDggQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9udW1hLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CkBAIC0zOSw3ICs0MSw3IEBACiAJY3VyaWR0LmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZyluZXdpZHQ7CiAKIAlsb2FkX2lkdCgmY3VyaWR0KTsKLX07Cit9CiAKIAogc3RhdGljIHZvaWQgc2V0X2dkdCh2b2lkICpuZXdnZHQsIF9fdTE2IGxpbWl0KQpAQCAtNTEsNyArNTMsNyBAQAogCWN1cmdkdC5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpbmV3Z2R0OwogCiAJbG9hZF9nZHQoJmN1cmdkdCk7Ci19OworfQogCiBzdGF0aWMgdm9pZCBsb2FkX3NlZ21lbnRzKHZvaWQpCiB7CkBAIC0xMDcsNiArMTA5LDggQEAKIAl1bnNpZ25lZCBsb25nIHBhZ2VfbGlzdFtQQUdFU19OUl07CiAJdm9pZCAqY29udHJvbF9wYWdlOwogCisJdHJhY2VyX2Rpc2FibGUoKTsKKwogCS8qIEludGVycnVwdHMgYXJlbid0IGFjY2VwdGFibGUgd2hpbGUgd2UgcmVib290ICovCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMKaW5kZXggNTc2YTAzZC4uOWRkOTI2MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCkBAIC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CiAjaW5jbHVkZSA8bGludXgvbnVtYS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KQEAgLTExMCw3ICsxMTIsNyBAQAogewogCXBnZF90ICpsZXZlbDRwOwogCWxldmVsNHAgPSAocGdkX3QgKilfX3ZhKHN0YXJ0X3BndGFibGUpOwotIAlyZXR1cm4gaW5pdF9sZXZlbDRfcGFnZShpbWFnZSwgbGV2ZWw0cCwgMCwgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKKwlyZXR1cm4gaW5pdF9sZXZlbDRfcGFnZShpbWFnZSwgbGV2ZWw0cCwgMCwgbWF4X3BmbiA8PCBQQUdFX1NISUZUKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0X2lkdCh2b2lkICpuZXdpZHQsIHUxNiBsaW1pdCkKQEAgLTE4NCw2ICsxODYsOCBAQAogCXVuc2lnbmVkIGxvbmcgcGFnZV9saXN0W1BBR0VTX05SXTsKIAl2b2lkICpjb250cm9sX3BhZ2U7CiAKKwl0cmFjZXJfZGlzYWJsZSgpOworCiAJLyogSW50ZXJydXB0cyBhcmVuJ3QgYWNjZXB0YWJsZSB3aGlsZSB3ZSByZWJvb3QgKi8KIAlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWZncHRfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9tZmdwdF8zMi5jCmluZGV4IDNjYWQxN2YuLjA3YzBmODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9tZmdwdF8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tZmdwdF8zMi5jCkBAIC0xNTUsNiArMTU1LDcgQEAKIAl3cm1zcihtc3IsIHZhbHVlLCBkdW1teSk7CiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChnZW9kZV9tZmdwdF90b2dnbGVfZXZlbnQpOwogCiBpbnQgZ2VvZGVfbWZncHRfc2V0X2lycShpbnQgdGltZXIsIGludCBjbXAsIGludCBpcnEsIGludCBlbmFibGUpCiB7CkBAIC0yMjIsNiArMjIzLDcgQEAKIAkvKiBObyB0aW1lcnMgYXZhaWxhYmxlIC0gdG9vIGJhZCAqLwogCXJldHVybiAtMTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGdlb2RlX21mZ3B0X2FsbG9jX3RpbWVyKTsKIAogCiAjaWZkZWYgQ09ORklHX0dFT0RFX01GR1BUX1RJTUVSCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlLmMKaW5kZXggNjk3MjllMy4uNTZiOTMzMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21pY3JvY29kZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGUuYwpAQCAtNSwxMyArNSwxNCBAQAogICoJCSAgICAgIDIwMDYJU2hhb2h1YSBMaSA8c2hhb2h1YS5saUBpbnRlbC5jb20+CiAgKgogICoJVGhpcyBkcml2ZXIgYWxsb3dzIHRvIHVwZ3JhZGUgbWljcm9jb2RlIG9uIEludGVsIHByb2Nlc3NvcnMKLSAqCWJlbG9uZ2luZyB0byBJQS0zMiBmYW1pbHkgLSBQZW50aXVtUHJvLCBQZW50aXVtIElJLCAKKyAqCWJlbG9uZ2luZyB0byBJQS0zMiBmYW1pbHkgLSBQZW50aXVtUHJvLCBQZW50aXVtIElJLAogICoJUGVudGl1bSBJSUksIFhlb24sIFBlbnRpdW0gNCwgZXRjLgogICoKLSAqCVJlZmVyZW5jZTogU2VjdGlvbiA4LjEwIG9mIFZvbHVtZSBJSUksIEludGVsIFBlbnRpdW0gNCBNYW51YWwsIAotICoJT3JkZXIgTnVtYmVyIDI0NTQ3MiBvciBmcmVlIGRvd25sb2FkIGZyb206Ci0gKgkJCi0gKglodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vcGVudGl1bTQvbWFudWFscy8yNDU0NzIuaHRtCisgKglSZWZlcmVuY2U6IFNlY3Rpb24gOC4xMSBvZiBWb2x1bWUgM2EsIElBLTMyIEludGVsPyBBcmNoaXRlY3R1cmUKKyAqCVNvZnR3YXJlIERldmVsb3BlcidzIE1hbnVhbAorICoJT3JkZXIgTnVtYmVyIDI1MzY2OCBvciBmcmVlIGRvd25sb2FkIGZyb206CisgKgorICoJaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3BlbnRpdW00L21hbnVhbHMvMjUzNjY4Lmh0bQogICoKICAqCUZvciBtb3JlIGluZm9ybWF0aW9uLCBnbyB0byBodHRwOi8vd3d3LnVyYmFubXl0aC5vcmcvbWljcm9jb2RlCiAgKgpAQCAtNTgsMTIgKzU5LDEyIEBACiAgKgkJbmF0dXJlIG9mIGltcGxlbWVudGF0aW9uLgogICoJMS4xMQkyMiBNYXIgMjAwMiBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlGaXggdGhlIHBhbmljIHdoZW4gd3JpdGluZyB6ZXJvLWxlbmd0aCBtaWNyb2NvZGUgY2h1bmsuCi0gKgkxLjEyCTI5IFNlcCAyMDAzIE5pdGluIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPiwgCisgKgkxLjEyCTI5IFNlcCAyMDAzIE5pdGluIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPiwKICAqCQlKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CiAgKgkJU3VwcG9ydCBmb3IgdGhlIG1pY3JvY29kZSB1cGRhdGVzIGluIHRoZSBuZXcgZm9ybWF0LgogICoJMS4xMwkxMCBPY3QgMjAwMyBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlSZW1vdmVkIC0+cmVhZCgpIG1ldGhvZCBhbmQgb2Jzb2xldGVkIE1JQ1JPQ09ERV9JT0NGUkVFIGlvY3RsCi0gKgkJYmVjYXVzZSB3ZSBubyBsb25nZXIgaG9sZCBhIGNvcHkgb2YgYXBwbGllZCBtaWNyb2NvZGUgCisgKgkJYmVjYXVzZSB3ZSBubyBsb25nZXIgaG9sZCBhIGNvcHkgb2YgYXBwbGllZCBtaWNyb2NvZGUKICAqCQlpbiBrZXJuZWwgbWVtb3J5LgogICoJMS4xNAkyNSBKdW4gMjAwNCBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlGaXggc2lnbWF0Y2goKSBtYWNybyB0byBoYW5kbGUgb2xkIENQVXMgd2l0aCBwZiA9PSAwLgpAQCAtNzUsNiArNzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTMyMCwxMSArMzIyLDExIEBACiAJCXJldHVybjsKIAogCS8qIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gdGhlIHBoeXNpY2FsIHdyaXRlIHRvIE1TUiAweDc5ICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOyAgICAgICAgICAKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7CiAKIAkvKiB3cml0ZSBtaWNyb2NvZGUgdmlhIE1TUiAweDc5ICovCiAJd3Jtc3IoTVNSX0lBMzJfVUNPREVfV1JJVEUsCi0JCSh1bnNpZ25lZCBsb25nKSB1Y2ktPm1jLT5iaXRzLCAKKwkJKHVuc2lnbmVkIGxvbmcpIHVjaS0+bWMtPmJpdHMsCiAJCSh1bnNpZ25lZCBsb25nKSB1Y2ktPm1jLT5iaXRzID4+IDE2ID4+IDE2KTsKIAl3cm1zcihNU1JfSUEzMl9VQ09ERV9SRVYsIDAsIDApOwogCkBAIC0zNDEsNyArMzQzLDcgQEAKIAkJcmV0dXJuOwogCX0KIAlwcmludGsoS0VSTl9JTkZPICJtaWNyb2NvZGU6IENQVSVkIHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAiCi0JICAgICAgICIweCV4IHRvIDB4JXgsIGRhdGUgPSAlMDh4IFxuIiwgCisJICAgICAgICIweCV4IHRvIDB4JXgsIGRhdGUgPSAlMDh4IFxuIiwKIAkgICAgICAgY3B1X251bSwgdWNpLT5yZXYsIHZhbFsxXSwgdWNpLT5tYy0+aGRyLmRhdGUpOwogCXVjaS0+cmV2ID0gdmFsWzFdOwogfQpAQCAtNDIyLDYgKzQyNCw3IEBACiAKIHN0YXRpYyBpbnQgbWljcm9jb2RlX29wZW4gKHN0cnVjdCBpbm9kZSAqdW51c2VkMSwgc3RydWN0IGZpbGUgKnVudXNlZDIpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gY2FwYWJsZShDQVBfU1lTX1JBV0lPKSA/IDAgOiAtRVBFUk07CiB9CiAKQEAgLTQ4OCw3ICs0OTEsNyBAQAogI2RlZmluZSBtaWNyb2NvZGVfZGV2X2V4aXQoKSBkbyB7IH0gd2hpbGUoMCkKICNlbmRpZgogCi1zdGF0aWMgbG9uZyBnZXRfbmV4dF91Y29kZV9mcm9tX2J1ZmZlcih2b2lkICoqbWMsIHZvaWQgKmJ1ZiwKK3N0YXRpYyBsb25nIGdldF9uZXh0X3Vjb2RlX2Zyb21fYnVmZmVyKHZvaWQgKiptYywgY29uc3QgdTggKmJ1ZiwKIAl1bnNpZ25lZCBsb25nIHNpemUsIGxvbmcgb2Zmc2V0KQogewogCW1pY3JvY29kZV9oZWFkZXJfdCAqbWNfaGVhZGVyOwpAQCAtNTIyLDcgKzUyNSw3IEBACiAJY2hhciBuYW1lWzMwXTsKIAlzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmY3B1X2RhdGEoY3B1KTsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlOwotCXZvaWQgKmJ1ZjsKKwljb25zdCB1OCAqYnVmOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlsb25nIG9mZnNldCA9IDA7CiAJaW50IGVycm9yOwpAQCAtNTM0LDcgKzUzNyw3IEBACiAJCWMtPng4NiwgYy0+eDg2X21vZGVsLCBjLT54ODZfbWFzayk7CiAJZXJyb3IgPSByZXF1ZXN0X2Zpcm13YXJlKCZmaXJtd2FyZSwgbmFtZSwgJm1pY3JvY29kZV9wZGV2LT5kZXYpOwogCWlmIChlcnJvcikgewotCQlwcl9kZWJ1ZygibWljcm9jb2RlOiB1Y29kZSBkYXRhIGZpbGUgJXMgbG9hZCBmYWlsZWRcbiIsIG5hbWUpOworCQlwcl9kZWJ1ZygibWljcm9jb2RlOiBkYXRhIGZpbGUgJXMgbG9hZCBmYWlsZWRcbiIsIG5hbWUpOwogCQlyZXR1cm4gZXJyb3I7CiAJfQogCWJ1ZiA9IGZpcm13YXJlLT5kYXRhOwpAQCAtODA1LDYgKzgwOCw5IEBACiB7CiAJaW50IGVycm9yOwogCisJcHJpbnRrKEtFUk5fSU5GTworCQkiSUEtMzIgTWljcm9jb2RlIFVwZGF0ZSBEcml2ZXI6IHYiIE1JQ1JPQ09ERV9WRVJTSU9OICIgPHRpZ3JhbkBhaXZhemlhbi5mc25ldC5jby51az5cbiIpOworCiAJZXJyb3IgPSBtaWNyb2NvZGVfZGV2X2luaXQoKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKQEAgLTgyNSw5ICs4MzEsNiBAQAogCX0KIAogCXJlZ2lzdGVyX2hvdGNwdV9ub3RpZmllcigmbWNfY3B1X25vdGlmaWVyKTsKLQotCXByaW50ayhLRVJOX0lORk8gCi0JCSJJQS0zMiBNaWNyb2NvZGUgVXBkYXRlIERyaXZlcjogdiIgTUlDUk9DT0RFX1ZFUlNJT04gIiA8dGlncmFuQGFpdmF6aWFuLmZzbmV0LmNvLnVrPlxuIik7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tbWNvbmYtZmFtMTBoXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbW1jb25mLWZhbTEwaF82NC5jCmluZGV4IGVkYzVmYmYuLmZkZmRjNTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9tbWNvbmYtZmFtMTBoXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL21tY29uZi1mYW0xMGhfNjQuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1ZGUgPGFzbS9tbWNvbmZpZy5oPgogCiAjaW5jbHVkZSAiLi4vcGNpL3BjaS5oIgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbXBwYXJzZS5jIGIvYXJjaC94ODYva2VybmVsL21wcGFyc2UuYwppbmRleCA0MDQ2ODNiLi4zYjI1ZTQ5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbXBwYXJzZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tcHBhcnNlLmMKQEAgLTI1LDYgKzI1LDggQEAKICNpbmNsdWRlIDxhc20vcHJvdG8uaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CiAKICNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KICNpZmRlZiBDT05GSUdfWDg2XzMyCkBAIC0zMiwyOCArMzQsNiBAQAogI2luY2x1ZGUgPG1hY2hfbXBwYXJzZS5oPgogI2VuZGlmCiAKLS8qIEhhdmUgd2UgZm91bmQgYW4gTVAgdGFibGUgKi8KLWludCBzbXBfZm91bmRfY29uZmlnOwotCi0vKgotICogVmFyaW91cyBMaW51eC1pbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgY3JlYXRlZCBmcm9tIHRoZQotICogTVAtdGFibGUuCi0gKi8KLSNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKLWludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKLSNlbmRpZgotCi1ERUNMQVJFX0JJVE1BUChtcF9idXNfbm90X3BjaSwgTUFYX01QX0JVU1NFUyk7Ci1pbnQgbXBfYnVzX2lkX3RvX3BjaV9idXNbTUFYX01QX0JVU1NFU10gPSB7WzAgLi4uIE1BWF9NUF9CVVNTRVMgLSAxXSA9IC0xIH07Ci0KLXN0YXRpYyBpbnQgbXBfY3VycmVudF9wY2lfaWQ7Ci0KLWludCBwaWNfbW9kZTsKLQotLyoKLSAqIEludGVsIE1QIEJJT1MgdGFibGUgcGFyc2luZyByb3V0aW5lczoKLSAqLwotCiAvKgogICogQ2hlY2tzdW0gYW4gTVAgY29uZmlndXJhdGlvbiBibG9jay4KICAqLwpAQCAtNjksMTUgKzQ5LDczIEBACiB9CiAKICNpZmRlZiBDT05GSUdfWDg2X05VTUFRCitpbnQgZm91bmRfbnVtYXE7CiAvKgogICogSGF2ZSB0byBtYXRjaCB0cmFuc2xhdGlvbiB0YWJsZSBlbnRyaWVzIHRvIG1haW4gdGFibGUgZW50cmllcyBieSBjb3VudGVyCiAgKiBoZW5jZSB0aGUgbXBjX3JlY29yZCB2YXJpYWJsZSAuLi4uIGNhbid0IHNlZSBhIGxlc3MgZGlzZ3VzdGluZyB3YXkgb2YKICAqIGRvaW5nIHRoaXMgLi4uLgogICovCitzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiB7CisJdW5zaWduZWQgY2hhciBtcGNfdHlwZTsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX2xlbjsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX3R5cGU7CisJdW5zaWduZWQgY2hhciB0cmFuc19xdWFkOworCXVuc2lnbmVkIGNoYXIgdHJhbnNfZ2xvYmFsOworCXVuc2lnbmVkIGNoYXIgdHJhbnNfbG9jYWw7CisJdW5zaWduZWQgc2hvcnQgdHJhbnNfcmVzZXJ2ZWQ7Cit9OworCiAKIHN0YXRpYyBpbnQgbXBjX3JlY29yZDsKIHN0YXRpYyBzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb25fdGFibGVbTUFYX01QQ19FTlRSWV0KICAgICBfX2NwdWluaXRkYXRhOworCitzdGF0aWMgaW5saW5lIGludCBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChpbnQgcXVhZCwgaW50IHBoeXNfYXBpY2lkKQoreworCXJldHVybiAocXVhZCA8PCA0KSArIChwaHlzX2FwaWNpZCA/IHBoeXNfYXBpY2lkIDw8IDEgOiAxKTsKK30KKworCitzdGF0aWMgaW5saW5lIGludCBtcGNfYXBpY19pZChzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0sCisJCQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb25fcmVjb3JkKQoreworCWludCBxdWFkID0gdHJhbnNsYXRpb25fcmVjb3JkLT50cmFuc19xdWFkOworCWludCBsb2dpY2FsX2FwaWNpZCA9IGdlbmVyYXRlX2xvZ2ljYWxfYXBpY2lkKHF1YWQsIG0tPm1wY19hcGljaWQpOworCisJcHJpbnRrKEtFUk5fREVCVUcgIlByb2Nlc3NvciAjJWQgJXU6JXUgQVBJQyB2ZXJzaW9uICVkIChxdWFkICVkLCBhcGljICVkKVxuIiwKKwkgICAgICAgbS0+bXBjX2FwaWNpZCwKKwkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX0ZBTUlMWV9NQVNLKSA+PiA4LAorCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfTU9ERUxfTUFTSykgPj4gNCwKKwkgICAgICAgbS0+bXBjX2FwaWN2ZXIsIHF1YWQsIGxvZ2ljYWxfYXBpY2lkKTsKKwlyZXR1cm4gbG9naWNhbF9hcGljaWQ7Cit9CisKK2ludCBtcF9idXNfaWRfdG9fbm9kZVtNQVhfTVBfQlVTU0VTXTsKKworaW50IG1wX2J1c19pZF90b19sb2NhbFtNQVhfTVBfQlVTU0VTXTsKKworc3RhdGljIHZvaWQgbXBjX29lbV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0sIGNoYXIgKm5hbWUsCisJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uKQoreworCWludCBxdWFkID0gdHJhbnNsYXRpb24tPnRyYW5zX3F1YWQ7CisJaW50IGxvY2FsID0gdHJhbnNsYXRpb24tPnRyYW5zX2xvY2FsOworCisJbXBfYnVzX2lkX3RvX25vZGVbbS0+bXBjX2J1c2lkXSA9IHF1YWQ7CisJbXBfYnVzX2lkX3RvX2xvY2FsW20tPm1wY19idXNpZF0gPSBsb2NhbDsKKwlwcmludGsoS0VSTl9JTkZPICJCdXMgIyVkIGlzICVzIChub2RlICVkKVxuIiwKKwkgICAgICAgbS0+bXBjX2J1c2lkLCBuYW1lLCBxdWFkKTsKK30KKworaW50IHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkIFtOUl9DUFVTLzRdWzRdOworc3RhdGljIHZvaWQgbXBjX29lbV9wY2lfYnVzKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwKKwlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pCit7CisJaW50IHF1YWQgPSB0cmFuc2xhdGlvbi0+dHJhbnNfcXVhZDsKKwlpbnQgbG9jYWwgPSB0cmFuc2xhdGlvbi0+dHJhbnNfbG9jYWw7CisKKwlxdWFkX2xvY2FsX3RvX21wX2J1c19pZFtxdWFkXVtsb2NhbF0gPSBtLT5tcGNfYnVzaWQ7Cit9CisKICNlbmRpZgogCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgTVBfcHJvY2Vzc29yX2luZm8oc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptKQpAQCAtOTAsNyArMTI4LDEwIEBACiAJCXJldHVybjsKIAl9CiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCWFwaWNpZCA9IG1wY19hcGljX2lkKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKKwlpZiAoZm91bmRfbnVtYXEpCisJCWFwaWNpZCA9IG1wY19hcGljX2lkKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKKwllbHNlCisJCWFwaWNpZCA9IG0tPm1wY19hcGljaWQ7CiAjZWxzZQogCWFwaWNpZCA9IG0tPm1wY19hcGljaWQ7CiAjZW5kaWYKQEAgLTEwMywxNyArMTQ0LDE4IEBACiAJZ2VuZXJpY19wcm9jZXNzb3JfaW5mbyhhcGljaWQsIG0tPm1wY19hcGljdmVyKTsKIH0KIAorI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogc3RhdGljIHZvaWQgX19pbml0IE1QX2J1c19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSkKIHsKIAljaGFyIHN0cls3XTsKLQogCW1lbWNweShzdHIsIG0tPm1wY19idXN0eXBlLCA2KTsKIAlzdHJbNl0gPSAwOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCW1wY19vZW1fYnVzX2luZm8obSwgc3RyLCB0cmFuc2xhdGlvbl90YWJsZVttcGNfcmVjb3JkXSk7CisJaWYgKGZvdW5kX251bWFxKQorCQltcGNfb2VtX2J1c19pbmZvKG0sIHN0ciwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOwogI2Vsc2UKLQlEcHJpbnRrKCJCdXMgIyVkIGlzICVzXG4iLCBtLT5tcGNfYnVzaWQsIHN0cik7CisJcHJpbnRrKEtFUk5fSU5GTyAiQnVzICMlZCBpcyAlc1xuIiwgbS0+bXBjX2J1c2lkLCBzdHIpOwogI2VuZGlmCiAKICNpZiBNQVhfTVBfQlVTU0VTIDwgMjU2CkBAIC0xMzIsMTEgKzE3NCwxMCBAQAogI2VuZGlmCiAJfSBlbHNlIGlmIChzdHJuY21wKHN0ciwgQlVTVFlQRV9QQ0ksIHNpemVvZihCVVNUWVBFX1BDSSkgLSAxKSA9PSAwKSB7CiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCQltcGNfb2VtX3BjaV9idXMobSwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOworCQlpZiAoZm91bmRfbnVtYXEpCisJCQltcGNfb2VtX3BjaV9idXMobSwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOwogI2VuZGlmCiAJCWNsZWFyX2JpdChtLT5tcGNfYnVzaWQsIG1wX2J1c19ub3RfcGNpKTsKLQkJbXBfYnVzX2lkX3RvX3BjaV9idXNbbS0+bXBjX2J1c2lkXSA9IG1wX2N1cnJlbnRfcGNpX2lkOwotCQltcF9jdXJyZW50X3BjaV9pZCsrOwogI2lmIGRlZmluZWQoQ09ORklHX0VJU0EpIHx8IGRlZmluZWQgKENPTkZJR19NQ0EpCiAJCW1wX2J1c19pZF90b190eXBlW20tPm1wY19idXNpZF0gPSBNUF9CVVNfUENJOwogCX0gZWxzZSBpZiAoc3RybmNtcChzdHIsIEJVU1RZUEVfRUlTQSwgc2l6ZW9mKEJVU1RZUEVfRUlTQSkgLSAxKSA9PSAwKSB7CkBAIC0xNDcsNiArMTg4LDcgQEAKIAl9IGVsc2UKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiVW5rbm93biBidXN0eXBlICVzIC0gaWdub3JpbmdcbiIsIHN0cik7CiB9CisjZW5kaWYKIAogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCkBAIC0xNzYsMTggKzIxOCw4OSBAQAogCWlmIChiYWRfaW9hcGljKG0tPm1wY19hcGljYWRkcikpCiAJCXJldHVybjsKIAotCW1wX2lvYXBpY3NbbnJfaW9hcGljc10gPSAqbTsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2FwaWNhZGRyID0gbS0+bXBjX2FwaWNhZGRyOworCW1wX2lvYXBpY3NbbnJfaW9hcGljc10ubXBfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX3R5cGUgPSBtLT5tcGNfdHlwZTsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2FwaWN2ZXIgPSBtLT5tcGNfYXBpY3ZlcjsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2ZsYWdzID0gbS0+bXBjX2ZsYWdzOwogCW5yX2lvYXBpY3MrKzsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IE1QX2ludHNyY19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKK3N0YXRpYyB2b2lkIHByaW50X01QX2ludHNyY19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKIHsKLQltcF9pcnFzW21wX2lycV9lbnRyaWVzXSA9ICptOwotCURwcmludGsoIkludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJWQsIgorCXByaW50ayhLRVJOX0NPTlQgIkludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJTAyeCwiCiAJCSIgSVJRICUwMngsIEFQSUMgSUQgJXgsIEFQSUMgSU5UICUwMnhcbiIsCiAJCW0tPm1wY19pcnF0eXBlLCBtLT5tcGNfaXJxZmxhZyAmIDMsCiAJCShtLT5tcGNfaXJxZmxhZyA+PiAyKSAmIDMsIG0tPm1wY19zcmNidXMsCiAJCW0tPm1wY19zcmNidXNpcnEsIG0tPm1wY19kc3RhcGljLCBtLT5tcGNfZHN0aXJxKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHByaW50X21wX2lycV9pbmZvKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptcF9pcnEpCit7CisJcHJpbnRrKEtFUk5fQ09OVCAiSW50OiB0eXBlICVkLCBwb2wgJWQsIHRyaWcgJWQsIGJ1cyAlMDJ4LCIKKwkJIiBJUlEgJTAyeCwgQVBJQyBJRCAleCwgQVBJQyBJTlQgJTAyeFxuIiwKKwkJbXBfaXJxLT5tcF9pcnF0eXBlLCBtcF9pcnEtPm1wX2lycWZsYWcgJiAzLAorCQkobXBfaXJxLT5tcF9pcnFmbGFnID4+IDIpICYgMywgbXBfaXJxLT5tcF9zcmNidXMsCisJCW1wX2lycS0+bXBfc3JjYnVzaXJxLCBtcF9pcnEtPm1wX2RzdGFwaWMsIG1wX2lycS0+bXBfZHN0aXJxKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGFzc2lnbl90b19tcF9pcnEoc3RydWN0IG1wY19jb25maWdfaW50c3JjICptLAorCQkJCSAgICBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCW1wX2lycS0+bXBfZHN0YXBpYyA9IG0tPm1wY19kc3RhcGljOworCW1wX2lycS0+bXBfdHlwZSA9IG0tPm1wY190eXBlOworCW1wX2lycS0+bXBfaXJxdHlwZSA9IG0tPm1wY19pcnF0eXBlOworCW1wX2lycS0+bXBfaXJxZmxhZyA9IG0tPm1wY19pcnFmbGFnOworCW1wX2lycS0+bXBfc3JjYnVzID0gbS0+bXBjX3NyY2J1czsKKwltcF9pcnEtPm1wX3NyY2J1c2lycSA9IG0tPm1wY19zcmNidXNpcnE7CisJbXBfaXJxLT5tcF9kc3RpcnEgPSBtLT5tcGNfZHN0aXJxOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgYXNzaWduX3RvX21wY19pbnRzcmMoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQoreworCW0tPm1wY19kc3RhcGljID0gbXBfaXJxLT5tcF9kc3RhcGljOworCW0tPm1wY190eXBlID0gbXBfaXJxLT5tcF90eXBlOworCW0tPm1wY19pcnF0eXBlID0gbXBfaXJxLT5tcF9pcnF0eXBlOworCW0tPm1wY19pcnFmbGFnID0gbXBfaXJxLT5tcF9pcnFmbGFnOworCW0tPm1wY19zcmNidXMgPSBtcF9pcnEtPm1wX3NyY2J1czsKKwltLT5tcGNfc3JjYnVzaXJxID0gbXBfaXJxLT5tcF9zcmNidXNpcnE7CisJbS0+bXBjX2RzdGlycSA9IG1wX2lycS0+bXBfZHN0aXJxOworfQorCitzdGF0aWMgaW50IF9faW5pdCBtcF9pcnFfbXBjX2ludHNyY19jbXAoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQoreworCWlmIChtcF9pcnEtPm1wX2RzdGFwaWMgIT0gbS0+bXBjX2RzdGFwaWMpCisJCXJldHVybiAxOworCWlmIChtcF9pcnEtPm1wX3R5cGUgIT0gbS0+bXBjX3R5cGUpCisJCXJldHVybiAyOworCWlmIChtcF9pcnEtPm1wX2lycXR5cGUgIT0gbS0+bXBjX2lycXR5cGUpCisJCXJldHVybiAzOworCWlmIChtcF9pcnEtPm1wX2lycWZsYWcgIT0gbS0+bXBjX2lycWZsYWcpCisJCXJldHVybiA0OworCWlmIChtcF9pcnEtPm1wX3NyY2J1cyAhPSBtLT5tcGNfc3JjYnVzKQorCQlyZXR1cm4gNTsKKwlpZiAobXBfaXJxLT5tcF9zcmNidXNpcnEgIT0gbS0+bXBjX3NyY2J1c2lycSkKKwkJcmV0dXJuIDY7CisJaWYgKG1wX2lycS0+bXBfZHN0aXJxICE9IG0tPm1wY19kc3RpcnEpCisJCXJldHVybiA3OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBNUF9pbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCit7CisJaW50IGk7CisKKwlwcmludF9NUF9pbnRzcmNfaW5mbyhtKTsKKworCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7CisJCWlmICghbXBfaXJxX21wY19pbnRzcmNfY21wKCZtcF9pcnFzW2ldLCBtKSkKKwkJCXJldHVybjsKKwl9CisKKwlhc3NpZ25fdG9fbXBfaXJxKG0sICZtcF9pcnFzW21wX2lycV9lbnRyaWVzXSk7CiAJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQogCQlwYW5pYygiTWF4ICMgb2YgaXJxIHNvdXJjZXMgZXhjZWVkZWQhIVxuIik7CiB9CkBAIC0xOTYsNyArMzA5LDcgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IE1QX2xpbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjICptKQogewotCURwcmludGsoIkxpbnQ6IHR5cGUgJWQsIHBvbCAlZCwgdHJpZyAlZCwgYnVzICVkLCIKKwlwcmludGsoS0VSTl9JTkZPICJMaW50OiB0eXBlICVkLCBwb2wgJWQsIHRyaWcgJWQsIGJ1cyAlMDJ4LCIKIAkJIiBJUlEgJTAyeCwgQVBJQyBJRCAleCwgQVBJQyBMSU5UICUwMnhcbiIsCiAJCW0tPm1wY19pcnF0eXBlLCBtLT5tcGNfaXJxZmxhZyAmIDMsCiAJCShtLT5tcGNfaXJxZmxhZyA+PiAyKSAmIDMsIG0tPm1wY19zcmNidXNpZCwKQEAgLTI2NiwxMSArMzc5LDE0IEBACiAJfQogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKK3ZvaWQgbnVtYXFfbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKIAkJCQkgY2hhciAqcHJvZHVjdGlkKQogewogCWlmIChzdHJuY21wKG9lbSwgIklCTSBOVU1BIiwgOCkpCi0JCXByaW50aygiV2FybmluZyEgIE1heSBub3QgYmUgYSBOVU1BLVEgc3lzdGVtIVxuIik7CisJCXByaW50aygiV2FybmluZyEgIE5vdCBhIE5VTUEtUSBzeXN0ZW0hXG4iKTsKKwllbHNlCisJCWZvdW5kX251bWFxID0gMTsKKwogCWlmIChtcGMtPm1wY19vZW1wdHIpCiAJCXNtcF9yZWFkX21wY19vZW0oKHN0cnVjdCBtcF9jb25maWdfb2VtdGFibGUgKiltcGMtPm1wY19vZW1wdHIsCiAJCQkJIG1wYy0+bXBjX29lbXNpemUpOwpAQCAtMjgxLDEyICszOTcsOSBAQAogICogUmVhZC9wYXJzZSB0aGUgTVBDCiAgKi8KIAotc3RhdGljIGludCBfX2luaXQgc21wX3JlYWRfbXBjKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgdW5zaWduZWQgZWFybHkpCitzdGF0aWMgaW50IF9faW5pdCBzbXBfY2hlY2tfbXBjKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLAorCQkJCWNoYXIgKnN0cikKIHsKLQljaGFyIHN0clsxNl07Ci0JY2hhciBvZW1bMTBdOwotCWludCBjb3VudCA9IHNpemVvZigqbXBjKTsKLQl1bnNpZ25lZCBjaGFyICptcHQgPSAoKHVuc2lnbmVkIGNoYXIgKiltcGMpICsgY291bnQ7CiAKIAlpZiAobWVtY21wKG1wYy0+bXBjX3NpZ25hdHVyZSwgTVBDX1NJR05BVFVSRSwgNCkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJNUFRBQkxFOiBiYWQgc2lnbmF0dXJlIFslYyVjJWMlY10hXG4iLApAQCAtMzA5LDE5ICs0MjIsNDIgQEAKIAl9CiAJbWVtY3B5KG9lbSwgbXBjLT5tcGNfb2VtLCA4KTsKIAlvZW1bOF0gPSAwOwotCXByaW50ayhLRVJOX0lORk8gIk1QVEFCTEU6IE9FTSBJRDogJXMgIiwgb2VtKTsKKwlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBPRU0gSUQ6ICVzXG4iLCBvZW0pOwogCiAJbWVtY3B5KHN0ciwgbXBjLT5tcGNfcHJvZHVjdGlkLCAxMik7CiAJc3RyWzEyXSA9IDA7Ci0JcHJpbnRrKCJQcm9kdWN0IElEOiAlcyAiLCBzdHIpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCW1wc19vZW1fY2hlY2sobXBjLCBvZW0sIHN0cik7Ci0jZW5kaWYKLQlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBQcm9kdWN0IElEOiAlcyAiLCBzdHIpOworCXByaW50ayhLRVJOX0lORk8gIk1QVEFCTEU6IFByb2R1Y3QgSUQ6ICVzXG4iLCBzdHIpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiTVBUQUJMRTogQVBJQyBhdDogMHglWFxuIiwgbXBjLT5tcGNfbGFwaWMpOwogCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHNtcF9yZWFkX21wYyhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIHVuc2lnbmVkIGVhcmx5KQoreworCWNoYXIgc3RyWzE2XTsKKwljaGFyIG9lbVsxMF07CisKKwlpbnQgY291bnQgPSBzaXplb2YoKm1wYyk7CisJdW5zaWduZWQgY2hhciAqbXB0ID0gKCh1bnNpZ25lZCBjaGFyICopbXBjKSArIGNvdW50OworCisJaWYgKCFzbXBfY2hlY2tfbXBjKG1wYywgb2VtLCBzdHIpKQorCQlyZXR1cm4gMDsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwkvKgorCSAqIG5lZWQgdG8gbWFrZSBzdXJlIHN1bW1pdCBhbmQgZXM3MDAwJ3MgbXBzX29lbV9jaGVjayBpcyBzYWZlIHRvIGJlCisJICogY2FsbGVkIGVhcmx5IHZpYSBnZW5lcmljYXJjaCAncyBtcHNfb2VtX2NoZWNrCisJICovCisJaWYgKGVhcmx5KSB7CisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCQludW1hcV9tcHNfb2VtX2NoZWNrKG1wYywgb2VtLCBzdHIpOworI2VuZGlmCisJfSBlbHNlCisJCW1wc19vZW1fY2hlY2sobXBjLCBvZW0sIHN0cik7CisjZW5kaWYKKwogCS8qIHNhdmUgdGhlIGxvY2FsIEFQSUMgYWRkcmVzcywgaXQgbWlnaHQgYmUgbm9uLWRlZmF1bHQgKi8KIAlpZiAoIWFjcGlfbGFwaWMpCiAJCW1wX2xhcGljX2FkZHIgPSBtcGMtPm1wY19sYXBpYzsKQEAgLTM1Miw3ICs0ODgsOSBAQAogCQkJewogCQkJCXN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSA9CiAJCQkJICAgIChzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKiltcHQ7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJCQkJTVBfYnVzX2luZm8obSk7CisjZW5kaWYKIAkJCQltcHQgKz0gc2l6ZW9mKCptKTsKIAkJCQljb3VudCArPSBzaXplb2YoKm0pOwogCQkJCWJyZWFrOwpAQCAtNDAyLDYgKzU0MCwxMSBAQAogCQkrK21wY19yZWNvcmQ7CiAjZW5kaWYKIAl9CisKKyNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICisgICAgICAgZ2VuZXJpY19iaWdzbXBfcHJvYmUoKTsKKyNlbmRpZgorCiAJc2V0dXBfYXBpY19yb3V0aW5nKCk7CiAJaWYgKCFudW1fcHJvY2Vzc29ycykKIAkJcHJpbnRrKEtFUk5fRVJSICJNUFRBQkxFOiBubyBwcm9jZXNzb3JzIHJlZ2lzdGVyZWQhXG4iKTsKQEAgLTQyNyw3ICs1NzAsNyBAQAogCWludHNyYy5tcGNfdHlwZSA9IE1QX0lOVFNSQzsKIAlpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBjb25mb3JtaW5nICovCiAJaW50c3JjLm1wY19zcmNidXMgPSAwOwotCWludHNyYy5tcGNfZHN0YXBpYyA9IG1wX2lvYXBpY3NbMF0ubXBjX2FwaWNpZDsKKwlpbnRzcmMubXBjX2RzdGFwaWMgPSBtcF9pb2FwaWNzWzBdLm1wX2FwaWNpZDsKIAogCWludHNyYy5tcGNfaXJxdHlwZSA9IG1wX0lOVDsKIApAQCAtNDg4LDQwICs2MzEsMTEgQEAKIAlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKIH0KIAotI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpCitzdGF0aWMgdm9pZCBjb25zdHJ1Y3RfaW9hcGljX3RhYmxlKGludCBtcGNfZGVmYXVsdF90eXBlKQogewotCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciBwcm9jZXNzb3I7Ci0Jc3RydWN0IG1wY19jb25maWdfYnVzIGJ1czsKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlzdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgaW9hcGljOwotI2VuZGlmCi0Jc3RydWN0IG1wY19jb25maWdfbGludHNyYyBsaW50c3JjOwotCWludCBsaW50dHlwZXNbMl0gPSB7IG1wX0V4dElOVCwgbXBfTk1JIH07Ci0JaW50IGk7Ci0KLQkvKgotCSAqIGxvY2FsIEFQSUMgaGFzIGRlZmF1bHQgYWRkcmVzcwotCSAqLwotCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOwotCi0JLyoKLQkgKiAyIENQVXMsIG51bWJlcmVkIDAgJiAxLgotCSAqLwotCXByb2Nlc3Nvci5tcGNfdHlwZSA9IE1QX1BST0NFU1NPUjsKLQkvKiBFaXRoZXIgYW4gaW50ZWdyYXRlZCBBUElDIG9yIGEgZGlzY3JldGUgODI0ODlEWC4gKi8KLQlwcm9jZXNzb3IubXBjX2FwaWN2ZXIgPSBtcGNfZGVmYXVsdF90eXBlID4gNCA/IDB4MTAgOiAweDAxOwotCXByb2Nlc3Nvci5tcGNfY3B1ZmxhZyA9IENQVV9FTkFCTEVEOwotCXByb2Nlc3Nvci5tcGNfY3B1ZmVhdHVyZSA9IChib290X2NwdV9kYXRhLng4NiA8PCA4KSB8Ci0JICAgIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA8PCA0KSB8IGJvb3RfY3B1X2RhdGEueDg2X21hc2s7Ci0JcHJvY2Vzc29yLm1wY19mZWF0dXJlZmxhZyA9IGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHlbMF07Ci0JcHJvY2Vzc29yLm1wY19yZXNlcnZlZFswXSA9IDA7Ci0JcHJvY2Vzc29yLm1wY19yZXNlcnZlZFsxXSA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewotCQlwcm9jZXNzb3IubXBjX2FwaWNpZCA9IGk7Ci0JCU1QX3Byb2Nlc3Nvcl9pbmZvKCZwcm9jZXNzb3IpOwotCX0KKwlzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgYnVzOwogCiAJYnVzLm1wY190eXBlID0gTVBfQlVTOwogCWJ1cy5tcGNfYnVzaWQgPSAwOwpAQCAtNTUwLDcgKzY2NCw2IEBACiAJCU1QX2J1c19pbmZvKCZidXMpOwogCX0KIAotI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCWlvYXBpYy5tcGNfdHlwZSA9IE1QX0lPQVBJQzsKIAlpb2FwaWMubXBjX2FwaWNpZCA9IDI7CiAJaW9hcGljLm1wY19hcGljdmVyID0gbXBjX2RlZmF1bHRfdHlwZSA+IDQgPyAweDEwIDogMHgwMTsKQEAgLTU2Miw3ICs2NzUsNDIgQEAKIAkgKiBXZSBzZXQgdXAgbW9zdCBvZiB0aGUgbG93IDE2IElPLUFQSUMgcGlucyBhY2NvcmRpbmcgdG8gTVBTIHJ1bGVzLgogCSAqLwogCWNvbnN0cnVjdF9kZWZhdWx0X2lvaXJxX21wdGFibGUobXBjX2RlZmF1bHRfdHlwZSk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGNvbnN0cnVjdF9pb2FwaWNfdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpIHsgfQogI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpCit7CisJc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yIHByb2Nlc3NvcjsKKwlzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjIGxpbnRzcmM7CisJaW50IGxpbnR0eXBlc1syXSA9IHsgbXBfRXh0SU5ULCBtcF9OTUkgfTsKKwlpbnQgaTsKKworCS8qCisJICogbG9jYWwgQVBJQyBoYXMgZGVmYXVsdCBhZGRyZXNzCisJICovCisJbXBfbGFwaWNfYWRkciA9IEFQSUNfREVGQVVMVF9QSFlTX0JBU0U7CisKKwkvKgorCSAqIDIgQ1BVcywgbnVtYmVyZWQgMCAmIDEuCisJICovCisJcHJvY2Vzc29yLm1wY190eXBlID0gTVBfUFJPQ0VTU09SOworCS8qIEVpdGhlciBhbiBpbnRlZ3JhdGVkIEFQSUMgb3IgYSBkaXNjcmV0ZSA4MjQ4OURYLiAqLworCXByb2Nlc3Nvci5tcGNfYXBpY3ZlciA9IG1wY19kZWZhdWx0X3R5cGUgPiA0ID8gMHgxMCA6IDB4MDE7CisJcHJvY2Vzc29yLm1wY19jcHVmbGFnID0gQ1BVX0VOQUJMRUQ7CisJcHJvY2Vzc29yLm1wY19jcHVmZWF0dXJlID0gKGJvb3RfY3B1X2RhdGEueDg2IDw8IDgpIHwKKwkgICAgKGJvb3RfY3B1X2RhdGEueDg2X21vZGVsIDw8IDQpIHwgYm9vdF9jcHVfZGF0YS54ODZfbWFzazsKKwlwcm9jZXNzb3IubXBjX2ZlYXR1cmVmbGFnID0gYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eVswXTsKKwlwcm9jZXNzb3IubXBjX3Jlc2VydmVkWzBdID0gMDsKKwlwcm9jZXNzb3IubXBjX3Jlc2VydmVkWzFdID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisJCXByb2Nlc3Nvci5tcGNfYXBpY2lkID0gaTsKKwkJTVBfcHJvY2Vzc29yX2luZm8oJnByb2Nlc3Nvcik7CisJfQorCisJY29uc3RydWN0X2lvYXBpY190YWJsZShtcGNfZGVmYXVsdF90eXBlKTsKKwogCWxpbnRzcmMubXBjX3R5cGUgPSBNUF9MSU5UU1JDOwogCWxpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBjb25mb3JtaW5nICovCiAJbGludHNyYy5tcGNfc3JjYnVzaWQgPSAwOwpAQCAtNTc4LDEyICs3MjYsMjIgQEAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfbXBfZmxvYXRpbmcgKm1wZl9mb3VuZDsKIAogLyoKKyAqIE1hY2hpbmUgc3BlY2lmaWMgcXVpcmsgZm9yIGZpbmRpbmcgdGhlIFNNUCBjb25maWcgYmVmb3JlIG90aGVyIHNldHVwCisgKiBhY3Rpdml0aWVzIGRlc3Ryb3kgdGhlIHRhYmxlOgorICovCitpbnQgKCptYWNoX2dldF9zbXBfY29uZmlnX3F1aXJrKSh1bnNpZ25lZCBpbnQgZWFybHkpOworCisvKgogICogU2NhbiB0aGUgbWVtb3J5IGJsb2NrcyBmb3IgYW4gU01QIGNvbmZpZ3VyYXRpb24gYmxvY2suCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBfX2dldF9zbXBfY29uZmlnKHVuc2lnbmVkIGVhcmx5KQorc3RhdGljIHZvaWQgX19pbml0IF9fZ2V0X3NtcF9jb25maWcodW5zaWduZWQgaW50IGVhcmx5KQogewogCXN0cnVjdCBpbnRlbF9tcF9mbG9hdGluZyAqbXBmID0gbXBmX2ZvdW5kOwogCisJaWYgKG1hY2hfZ2V0X3NtcF9jb25maWdfcXVpcmspIHsKKwkJaWYgKG1hY2hfZ2V0X3NtcF9jb25maWdfcXVpcmsoZWFybHkpKQorCQkJcmV0dXJuOworCX0KIAlpZiAoYWNwaV9sYXBpYyAmJiBlYXJseSkKIAkJcmV0dXJuOwogCS8qCkBAIC02MDAsNyArNzU4LDcgQEAKIAogCXByaW50ayhLRVJOX0lORk8gIkludGVsIE11bHRpUHJvY2Vzc29yIFNwZWNpZmljYXRpb24gdjEuJWRcbiIsCiAJICAgICAgIG1wZi0+bXBmX3NwZWNpZmljYXRpb24pOwotI2lmZGVmIENPTkZJR19YODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfTE9DQUxfQVBJQykgJiYgZGVmaW5lZChDT05GSUdfWDg2XzMyKQogCWlmIChtcGYtPm1wZl9mZWF0dXJlMiAmICgxIDw8IDcpKSB7CiAJCXByaW50ayhLRVJOX0lORk8gIiAgICBJTUNSIGFuZCBQSUMgY29tcGF0aWJpbGl0eSBtb2RlLlxuIik7CiAJCXBpY19tb2RlID0gMTsKQEAgLTYzMiw3ICs3OTAsOSBAQAogCQkgKiBvdmVycmlkZSB0aGUgZGVmYXVsdHMuCiAJCSAqLwogCQlpZiAoIXNtcF9yZWFkX21wYyhwaHlzX3RvX3ZpcnQobXBmLT5tcGZfcGh5c3B0ciksIGVhcmx5KSkgeworI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDA7CisjZW5kaWYKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAgICAgICJCSU9TIGJ1ZywgTVAgdGFibGUgZXJyb3JzIGRldGVjdGVkIS4uLlxuIik7CiAJCQlwcmludGsoS0VSTl9FUlIgIi4uLiBkaXNhYmxpbmcgU01QIHN1cHBvcnQuICIKQEAgLTY4OSw3ICs4NDksNyBAQAogCXVuc2lnbmVkIGludCAqYnAgPSBwaHlzX3RvX3ZpcnQoYmFzZSk7CiAJc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGY7CiAKLQlEcHJpbnRrKCJTY2FuIFNNUCBmcm9tICVwIGZvciAlbGQgYnl0ZXMuXG4iLCBicCwgbGVuZ3RoKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiU2NhbiBTTVAgZnJvbSAlcCBmb3IgJWxkIGJ5dGVzLlxuIiwgYnAsIGxlbmd0aCk7CiAJQlVJTERfQlVHX09OKHNpemVvZigqbXBmKSAhPSAxNik7CiAKIAl3aGlsZSAobGVuZ3RoID4gMCkgewpAQCAtNjk5LDE1ICs4NTksMjEgQEAKIAkJICAgICFtcGZfY2hlY2tzdW0oKHVuc2lnbmVkIGNoYXIgKilicCwgMTYpICYmCiAJCSAgICAoKG1wZi0+bXBmX3NwZWNpZmljYXRpb24gPT0gMSkKIAkJICAgICB8fCAobXBmLT5tcGZfc3BlY2lmaWNhdGlvbiA9PSA0KSkpIHsKLQorI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDE7CisjZW5kaWYKIAkJCW1wZl9mb3VuZCA9IG1wZjsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCisKIAkJCXByaW50ayhLRVJOX0lORk8gImZvdW5kIFNNUCBNUC10YWJsZSBhdCBbJXBdICUwOGx4XG4iLAogCQkJICAgICAgIG1wZiwgdmlydF90b19waHlzKG1wZikpOwotCQkJcmVzZXJ2ZV9ib290bWVtKHZpcnRfdG9fcGh5cyhtcGYpLCBQQUdFX1NJWkUsCisKKwkJCWlmICghcmVzZXJ2ZSkKKwkJCQlyZXR1cm4gMTsKKwkJCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHZpcnRfdG9fcGh5cyhtcGYpLCBQQUdFX1NJWkUsCiAJCQkJCUJPT1RNRU1fREVGQVVMVCk7CiAJCQlpZiAobXBmLT5tcGZfcGh5c3B0cikgeworCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBBR0VfU0laRTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCiAJCQkJLyoKIAkJCQkgKiBXZSBjYW5ub3QgYWNjZXNzIHRvIE1QQyB0YWJsZSB0byBjb21wdXRlCiAJCQkJICogdGFibGUgc2l6ZSB5ZXQsIGFzIG9ubHkgZmV3IG1lZ2FieXRlcyBmcm9tCkBAIC03MTcsMjQgKzg4MywxNSBAQAogCQkJCSAqIFBBR0VfU0laRSBmcm9tIG1wZy0+bXBmX3BoeXNwdHIgeWllbGRzIEJVRygpCiAJCQkJICogaW4gcmVzZXJ2ZV9ib290bWVtLgogCQkJCSAqLwotCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBBR0VfU0laRTsKIAkJCQl1bnNpZ25lZCBsb25nIGVuZCA9IG1heF9sb3dfcGZuICogUEFHRV9TSVpFOwogCQkJCWlmIChtcGYtPm1wZl9waHlzcHRyICsgc2l6ZSA+IGVuZCkKIAkJCQkJc2l6ZSA9IGVuZCAtIG1wZi0+bXBmX3BoeXNwdHI7Ci0JCQkJcmVzZXJ2ZV9ib290bWVtKG1wZi0+bXBmX3BoeXNwdHIsIHNpemUsCisjZW5kaWYKKwkJCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhtcGYtPm1wZl9waHlzcHRyLCBzaXplLAogCQkJCQkJQk9PVE1FTV9ERUZBVUxUKTsKIAkJCX0KIAotI2Vsc2UKLQkJCWlmICghcmVzZXJ2ZSkKLQkJCQlyZXR1cm4gMTsKLQotCQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModmlydF90b19waHlzKG1wZiksIFBBR0VfU0laRSk7Ci0JCQlpZiAobXBmLT5tcGZfcGh5c3B0cikKLQkJCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhtcGYtPm1wZl9waHlzcHRyLAotCQkJCQkJCVBBR0VfU0laRSk7Ci0jZW5kaWYKLQkJcmV0dXJuIDE7CisJCQlyZXR1cm4gMTsKIAkJfQogCQlicCArPSA0OwogCQlsZW5ndGggLT0gMTY7CkBAIC03NDIsMTAgKzg5OSwxNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgX19maW5kX3NtcF9jb25maWcodW5zaWduZWQgcmVzZXJ2ZSkKK2ludCAoKm1hY2hfZmluZF9zbXBfY29uZmlnX3F1aXJrKSh1bnNpZ25lZCBpbnQgcmVzZXJ2ZSk7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBfX2ZpbmRfc21wX2NvbmZpZyh1bnNpZ25lZCBpbnQgcmVzZXJ2ZSkKIHsKIAl1bnNpZ25lZCBpbnQgYWRkcmVzczsKIAorCWlmIChtYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykgeworCQlpZiAobWFjaF9maW5kX3NtcF9jb25maWdfcXVpcmsocmVzZXJ2ZSkpCisJCQlyZXR1cm47CisJfQogCS8qCiAJICogRklYTUU6IExpbnV4IGFzc3VtZXMgeW91IGhhdmUgNjQwSyBvZiBiYXNlIHJhbS4uCiAJICogdGhpcyBjb250aW51ZXMgdGhlIGVycm9yLi4uCkBAIC03OTAsMjk4ICs5NTMsMjk0IEBACiAJX19maW5kX3NtcF9jb25maWcoMSk7CiB9CiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSS1iYXNlZCBNUCBDb25maWd1cmF0aW9uCi0gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworc3RhdGljIHU4IF9faW5pdGRhdGEgaXJxX3VzZWRbTUFYX0lSUV9TT1VSQ0VTXTsKIAotLyoKLSAqIEtlZXAgdGhpcyBvdXRzaWRlIGFuZCBpbml0aWFsaXplZCB0byAwLCBmb3IgIUNPTkZJR19BQ1BJIGJ1aWxkczoKLSAqLwotaW50IGVzNzAwMF9wbGF0OwotCi0jaWZkZWYgQ09ORklHX0FDUEkKLQotI2lmZGVmCUNPTkZJR19YODZfSU9fQVBJQwotCi0jZGVmaW5lIE1QX0lTQV9CVVMJCTAKLQotZXh0ZXJuIHN0cnVjdCBtcF9pb2FwaWNfcm91dGluZyBtcF9pb2FwaWNfcm91dGluZ1tNQVhfSU9fQVBJQ1NdOwotCi1zdGF0aWMgaW50IG1wX2ZpbmRfaW9hcGljKGludCBnc2kpCitzdGF0aWMgaW50ICBfX2luaXQgZ2V0X01QX2ludHNyY19pbmRleChzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCiB7Ci0JaW50IGkgPSAwOworCWludCBpOwogCi0JLyogRmluZCB0aGUgSU9BUElDIHRoYXQgbWFuYWdlcyB0aGlzIEdTSS4gKi8KLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7Ci0JCWlmICgoZ3NpID49IG1wX2lvYXBpY19yb3V0aW5nW2ldLmdzaV9iYXNlKQotCQkgICAgJiYgKGdzaSA8PSBtcF9pb2FwaWNfcm91dGluZ1tpXS5nc2lfZW5kKSkKLQkJCXJldHVybiBpOworCWlmIChtLT5tcGNfaXJxdHlwZSAhPSBtcF9JTlQpCisJCXJldHVybiAwOworCisJaWYgKG0tPm1wY19pcnFmbGFnICE9IDB4MGYpCisJCXJldHVybiAwOworCisJLyogbm90IGxlZ2FjeSAqLworCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSAhPSBtcF9JTlQpCisJCQljb250aW51ZTsKKworCQlpZiAobXBfaXJxc1tpXS5tcF9pcnFmbGFnICE9IDB4MGYpCisJCQljb250aW51ZTsKKworCQlpZiAobXBfaXJxc1tpXS5tcF9zcmNidXMgIT0gbS0+bXBjX3NyY2J1cykKKwkJCWNvbnRpbnVlOworCQlpZiAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgIT0gbS0+bXBjX3NyY2J1c2lycSkKKwkJCWNvbnRpbnVlOworCQlpZiAoaXJxX3VzZWRbaV0pIHsKKwkJCS8qIGFscmVhZHkgY2xhaW1lZCAqLworCQkJcmV0dXJuIC0yOworCQl9CisJCWlycV91c2VkW2ldID0gMTsKKwkJcmV0dXJuIGk7CiAJfQogCi0JcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogVW5hYmxlIHRvIGxvY2F0ZSBJT0FQSUMgZm9yIEdTSSAlZFxuIiwgZ3NpKTsKKwkvKiBub3QgZm91bmQgKi8KIAlyZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyB1OCBfX2luaXQgdW5pcV9pb2FwaWNfaWQodTggaWQpCi17Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpICYmCi0JICAgICFBUElDX1hBUElDKGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdKSkKLQkJcmV0dXJuIGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChucl9pb2FwaWNzLCBpZCk7Ci0JZWxzZQotCQlyZXR1cm4gaWQ7Ci0jZWxzZQotCWludCBpOwotCURFQ0xBUkVfQklUTUFQKHVzZWQsIDI1Nik7Ci0JYml0bWFwX3plcm8odXNlZCwgMjU2KTsKLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7Ci0JCXN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyAqaWEgPSAmbXBfaW9hcGljc1tpXTsKLQkJX19zZXRfYml0KGlhLT5tcGNfYXBpY2lkLCB1c2VkKTsKLQl9Ci0JaWYgKCF0ZXN0X2JpdChpZCwgdXNlZCkpCi0JCXJldHVybiBpZDsKLQlyZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdCh1c2VkLCAyNTYpOworI2RlZmluZSBTUEFSRV9TTE9UX05VTSAyMAorCitzdGF0aWMgc3RydWN0IG1wY19jb25maWdfaW50c3JjIF9faW5pdGRhdGEgKm1fc3BhcmVbU1BBUkVfU0xPVF9OVU1dOwogI2VuZGlmCi19CiAKLXZvaWQgX19pbml0IG1wX3JlZ2lzdGVyX2lvYXBpYyhpbnQgaWQsIHUzMiBhZGRyZXNzLCB1MzIgZ3NpX2Jhc2UpCitzdGF0aWMgaW50ICBfX2luaXQgcmVwbGFjZV9pbnRzcmNfYWxsKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywKKwkJCQkJdW5zaWduZWQgbG9uZyBtcGNfbmV3X3BoeXMsCisJCQkJCXVuc2lnbmVkIGxvbmcgbXBjX25ld19sZW5ndGgpCiB7Ci0JaW50IGlkeCA9IDA7Ci0KLQlpZiAoYmFkX2lvYXBpYyhhZGRyZXNzKSkKLQkJcmV0dXJuOwotCi0JaWR4ID0gbnJfaW9hcGljczsKLQotCW1wX2lvYXBpY3NbaWR4XS5tcGNfdHlwZSA9IE1QX0lPQVBJQzsKLQltcF9pb2FwaWNzW2lkeF0ubXBjX2ZsYWdzID0gTVBDX0FQSUNfVVNBQkxFOwotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIgPSBhZGRyZXNzOwotCi0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCwgYWRkcmVzcyk7Ci0JbXBfaW9hcGljc1tpZHhdLm1wY19hcGljaWQgPSB1bmlxX2lvYXBpY19pZChpZCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY3ZlciA9IGlvX2FwaWNfZ2V0X3ZlcnNpb24oaWR4KTsKLSNlbHNlCi0JbXBfaW9hcGljc1tpZHhdLm1wY19hcGljdmVyID0gMDsKLSNlbmRpZgotCS8qCi0JICogQnVpbGQgYmFzaWMgR1NJIGxvb2t1cCB0YWJsZSB0byBmYWNpbGl0YXRlIGdzaS0+aW9fYXBpYyBsb29rdXBzCi0JICogYW5kIHRvIHByZXZlbnQgcmVwcm9ncmFtbWluZyBvZiBJT0FQSUMgcGlucyAoUENJIEdTSXMpLgotCSAqLwotCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uYXBpY19pZCA9IG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2lkOwotCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UgPSBnc2lfYmFzZTsKLQltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQgPSBnc2lfYmFzZSArCi0JICAgIGlvX2FwaWNfZ2V0X3JlZGlyX2VudHJpZXMoaWR4KTsKLQotCXByaW50ayhLRVJOX0lORk8gIklPQVBJQ1slZF06IGFwaWNfaWQgJWQsIHZlcnNpb24gJWQsIGFkZHJlc3MgMHgleCwgIgotCSAgICAgICAiR1NJICVkLSVkXG4iLCBpZHgsIG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2lkLAotCSAgICAgICBtcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWN2ZXIsIG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIsCi0JICAgICAgIG1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UsIG1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2VuZCk7Ci0KLQlucl9pb2FwaWNzKys7Ci19Ci0KLXZvaWQgX19pbml0IG1wX292ZXJyaWRlX2xlZ2FjeV9pcnEodTggYnVzX2lycSwgdTggcG9sYXJpdHksIHU4IHRyaWdnZXIsIHUzMiBnc2kpCi17Ci0Jc3RydWN0IG1wY19jb25maWdfaW50c3JjIGludHNyYzsKLQlpbnQgaW9hcGljID0gLTE7Ci0JaW50IHBpbiA9IC0xOwotCi0JLyoKLQkgKiBDb252ZXJ0ICdnc2knIHRvICdpb2FwaWMucGluJy4KLQkgKi8KLQlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOwotCWlmIChpb2FwaWMgPCAwKQotCQlyZXR1cm47Ci0JcGluID0gZ3NpIC0gbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5nc2lfYmFzZTsKLQotCS8qCi0JICogVEJEOiBUaGlzIGNoZWNrIGlzIGZvciBmYXVsdHkgdGltZXIgZW50cmllcywgd2hlcmUgdGhlIG92ZXJyaWRlCi0JICogICAgICBlcnJvbmVvdXNseSBzZXRzIHRoZSB0cmlnZ2VyIHRvIGxldmVsLCByZXN1bHRpbmcgaW4gYSBIVUdFCi0JICogICAgICBpbmNyZWFzZSBvZiB0aW1lciBpbnRlcnJ1cHRzIQotCSAqLwotCWlmICgoYnVzX2lycSA9PSAwKSAmJiAodHJpZ2dlciA9PSAzKSkKLQkJdHJpZ2dlciA9IDE7Ci0KLQlpbnRzcmMubXBjX3R5cGUgPSBNUF9JTlRTUkM7Ci0JaW50c3JjLm1wY19pcnF0eXBlID0gbXBfSU5UOwotCWludHNyYy5tcGNfaXJxZmxhZyA9ICh0cmlnZ2VyIDw8IDIpIHwgcG9sYXJpdHk7Ci0JaW50c3JjLm1wY19zcmNidXMgPSBNUF9JU0FfQlVTOwotCWludHNyYy5tcGNfc3JjYnVzaXJxID0gYnVzX2lycTsJLyogSVJRICovCi0JaW50c3JjLm1wY19kc3RhcGljID0gbXBfaW9hcGljc1tpb2FwaWNdLm1wY19hcGljaWQ7CS8qIEFQSUMgSUQgKi8KLQlpbnRzcmMubXBjX2RzdGlycSA9IHBpbjsJLyogSU5USU4jICovCi0KLQlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKLX0KLQotdm9pZCBfX2luaXQgbXBfY29uZmlnX2FjcGlfbGVnYWN5X2lycXModm9pZCkKLXsKLQlzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgaW50c3JjOwotCWludCBpID0gMDsKLQlpbnQgaW9hcGljID0gLTE7Ci0KLSNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKLQkvKgotCSAqIEZhYnJpY2F0ZSB0aGUgbGVnYWN5IElTQSBidXMgKGJ1cyAjMzEpLgotCSAqLwotCW1wX2J1c19pZF90b190eXBlW01QX0lTQV9CVVNdID0gTVBfQlVTX0lTQTsKLSNlbmRpZgotCXNldF9iaXQoTVBfSVNBX0JVUywgbXBfYnVzX25vdF9wY2kpOwotCURwcmludGsoIkJ1cyAjJWQgaXMgSVNBXG4iLCBNUF9JU0FfQlVTKTsKLQotCS8qCi0JICogT2xkZXIgZ2VuZXJhdGlvbnMgb2YgRVM3MDAwIGhhdmUgbm8gbGVnYWN5IGlkZW50aXR5IG1hcHBpbmdzCi0JICovCi0JaWYgKGVzNzAwMF9wbGF0ID09IDEpCi0JCXJldHVybjsKLQotCS8qCi0JICogTG9jYXRlIHRoZSBJT0FQSUMgdGhhdCBtYW5hZ2VzIHRoZSBJU0EgSVJRcyAoMC0xNSkuCi0JICovCi0JaW9hcGljID0gbXBfZmluZF9pb2FwaWMoMCk7Ci0JaWYgKGlvYXBpYyA8IDApCi0JCXJldHVybjsKLQotCWludHNyYy5tcGNfdHlwZSA9IE1QX0lOVFNSQzsKLQlpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBDb25mb3JtaW5nICovCi0JaW50c3JjLm1wY19zcmNidXMgPSBNUF9JU0FfQlVTOwogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwotCWludHNyYy5tcGNfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcGNfYXBpY2lkOworCWludCBpOworCWludCBucl9tX3NwYXJlID0gMDsKICNlbmRpZgotCS8qCi0JICogVXNlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBJUlFzIDAtMTUuICBVbmxlc3MKLQkgKiBvdmVycmlkZGVuIGJ5IChNQURUKSBpbnRlcnJ1cHQgc291cmNlIG92ZXJyaWRlIGVudHJpZXMuCi0JICovCi0JZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKLQkJaW50IGlkeDsKIAotCQlmb3IgKGlkeCA9IDA7IGlkeCA8IG1wX2lycV9lbnRyaWVzOyBpZHgrKykgewotCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICppcnEgPSBtcF9pcnFzICsgaWR4OworCWludCBjb3VudCA9IHNpemVvZigqbXBjKTsKKwl1bnNpZ25lZCBjaGFyICptcHQgPSAoKHVuc2lnbmVkIGNoYXIgKiltcGMpICsgY291bnQ7CiAKLQkJCS8qIERvIHdlIGFscmVhZHkgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoaXMgSVNBIElSUT8gKi8KLQkJCWlmIChpcnEtPm1wY19zcmNidXMgPT0gTVBfSVNBX0JVUwotCQkJICAgICYmIGlycS0+bXBjX3NyY2J1c2lycSA9PSBpKQorCXByaW50ayhLRVJOX0lORk8gIm1wY19sZW5ndGggJXhcbiIsIG1wYy0+bXBjX2xlbmd0aCk7CisJd2hpbGUgKGNvdW50IDwgbXBjLT5tcGNfbGVuZ3RoKSB7CisJCXN3aXRjaCAoKm1wdCkgeworCQljYXNlIE1QX1BST0NFU1NPUjoKKwkJCXsKKwkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICopbXB0OworCQkJCW1wdCArPSBzaXplb2YoKm0pOworCQkJCWNvdW50ICs9IHNpemVvZigqbSk7CiAJCQkJYnJlYWs7Ci0KLQkJCS8qIERvIHdlIGFscmVhZHkgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoaXMgSU9BUElDIHBpbiAqLwotCQkJaWYgKChpcnEtPm1wY19kc3RhcGljID09IGludHNyYy5tcGNfZHN0YXBpYykgJiYKLQkJCSAgICAoaXJxLT5tcGNfZHN0aXJxID09IGkpKQorCQkJfQorCQljYXNlIE1QX0JVUzoKKwkJCXsKKwkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfYnVzICopbXB0OworCQkJCW1wdCArPSBzaXplb2YoKm0pOworCQkJCWNvdW50ICs9IHNpemVvZigqbSk7CiAJCQkJYnJlYWs7CisJCQl9CisJCWNhc2UgTVBfSU9BUElDOgorCQkJeworCQkJCW1wdCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW9hcGljKTsKKwkJCQljb3VudCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW9hcGljKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJY2FzZSBNUF9JTlRTUkM6CisJCQl7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptID0KKwkJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqKW1wdDsKKworCQkJCXByaW50ayhLRVJOX0lORk8gIk9MRCAiKTsKKwkJCQlwcmludF9NUF9pbnRzcmNfaW5mbyhtKTsKKwkJCQlpID0gZ2V0X01QX2ludHNyY19pbmRleChtKTsKKwkJCQlpZiAoaSA+IDApIHsKKwkJCQkJYXNzaWduX3RvX21wY19pbnRzcmMoJm1wX2lycXNbaV0sIG0pOworCQkJCQlwcmludGsoS0VSTl9JTkZPICJORVcgIik7CisJCQkJCXByaW50X21wX2lycV9pbmZvKCZtcF9pcnFzW2ldKTsKKwkJCQl9IGVsc2UgaWYgKCFpKSB7CisJCQkJCS8qIGxlZ2FjeSwgZG8gbm90aGluZyAqLworCQkJCX0gZWxzZSBpZiAobnJfbV9zcGFyZSA8IFNQQVJFX1NMT1RfTlVNKSB7CisJCQkJCS8qCisJCQkJCSAqIG5vdCBmb3VuZCAoLTEpLCBvciBkdXBsaWNhdGVkICgtMikKKwkJCQkJICogYXJlIGludmFsaWQgZW50cmllcywKKwkJCQkJICogd2UgbmVlZCB0byB1c2UgdGhlIHNsb3QgIGxhdGVyCisJCQkJCSAqLworCQkJCQltX3NwYXJlW25yX21fc3BhcmVdID0gbTsKKwkJCQkJbnJfbV9zcGFyZSsrOworCQkJCX0KKyNlbmRpZgorCQkJCW1wdCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW50c3JjKTsKKwkJCQljb3VudCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW50c3JjKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJY2FzZSBNUF9MSU5UU1JDOgorCQkJeworCQkJCXN0cnVjdCBtcGNfY29uZmlnX2xpbnRzcmMgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfbGludHNyYyAqKW1wdDsKKwkJCQltcHQgKz0gc2l6ZW9mKCptKTsKKwkJCQljb3VudCArPSBzaXplb2YoKm0pOworCQkJCWJyZWFrOworCQkJfQorCQlkZWZhdWx0OgorCQkJLyogd3JvbmcgbXB0YWJsZSAqLworCQkJcHJpbnRrKEtFUk5fRVJSICJZb3VyIG1wdGFibGUgaXMgd3JvbmcsIGNvbnRhY3QgeW91ciBIVyB2ZW5kb3IhXG4iKTsKKwkJCXByaW50ayhLRVJOX0VSUiAidHlwZSAleFxuIiwgKm1wdCk7CisJCQlwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgIiAgIiwgRFVNUF9QUkVGSVhfQUREUkVTUywgMTYsCisJCQkJCTEsIG1wYywgbXBjLT5tcGNfbGVuZ3RoLCAxKTsKKwkJCWdvdG8gb3V0OwogCQl9Ci0KLQkJaWYgKGlkeCAhPSBtcF9pcnFfZW50cmllcykgewotCQkJcHJpbnRrKEtFUk5fREVCVUcgIkFDUEk6IElSUSVkIHVzZWQgYnkgb3ZlcnJpZGUuXG4iLCBpKTsKLQkJCWNvbnRpbnVlOwkvKiBJUlEgYWxyZWFkeSB1c2VkICovCi0JCX0KLQotCQlpbnRzcmMubXBjX2lycXR5cGUgPSBtcF9JTlQ7Ci0JCWludHNyYy5tcGNfc3JjYnVzaXJxID0gaTsJLyogSWRlbnRpdHkgbWFwcGVkICovCi0JCWludHNyYy5tcGNfZHN0aXJxID0gaTsKLQotCQlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKLQl9Ci19Ci0KLWludCBtcF9yZWdpc3Rlcl9nc2kodTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSkKLXsKLQlpbnQgaW9hcGljOwotCWludCBpb2FwaWNfcGluOwotI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgTUFYX0dTSV9OVU0JNDA5NgotI2RlZmluZSBJUlFfQ09NUFJFU1NJT05fU1RBUlQJNjQKLQotCXN0YXRpYyBpbnQgcGNpX2lycSA9IElSUV9DT01QUkVTU0lPTl9TVEFSVDsKLQkvKgotCSAqIE1hcHBpbmcgYmV0d2VlbiBHbG9iYWwgU3lzdGVtIEludGVycnVwdHMsIHdoaWNoCi0JICogcmVwcmVzZW50IGFsbCBwb3NzaWJsZSBpbnRlcnJ1cHRzLCBhbmQgSVJRcwotCSAqIGFzc2lnbmVkIHRvIGFjdHVhbCBkZXZpY2VzLgotCSAqLwotCXN0YXRpYyBpbnQgZ3NpX3RvX2lycVtNQVhfR1NJX05VTV07Ci0jZWxzZQotCi0JaWYgKGFjcGlfaXJxX21vZGVsICE9IEFDUElfSVJRX01PREVMX0lPQVBJQykKLQkJcmV0dXJuIGdzaTsKLSNlbmRpZgotCi0JLyogRG9uJ3Qgc2V0IHVwIHRoZSBBQ1BJIFNDSSBiZWNhdXNlIGl0J3MgYWxyZWFkeSBzZXQgdXAgKi8KLQlpZiAoYWNwaV9nYmxfRkFEVC5zY2lfaW50ZXJydXB0ID09IGdzaSkKLQkJcmV0dXJuIGdzaTsKLQotCWlvYXBpYyA9IG1wX2ZpbmRfaW9hcGljKGdzaSk7Ci0JaWYgKGlvYXBpYyA8IDApIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiTm8gSU9BUElDIGZvciBHU0kgJXVcbiIsIGdzaSk7Ci0JCXJldHVybiBnc2k7CiAJfQogCi0JaW9hcGljX3BpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKGlycV91c2VkW2ldKQorCQkJY29udGludWU7CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JaWYgKGlvYXBpY19yZW51bWJlcl9pcnEpCi0JCWdzaSA9IGlvYXBpY19yZW51bWJlcl9pcnEoaW9hcGljLCBnc2kpOwotI2VuZGlmCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgIT0gbXBfSU5UKQorCQkJY29udGludWU7CiAKLQkvKgotCSAqIEF2b2lkIHBpbiByZXByb2dyYW1taW5nLiAgUFJUcyB0eXBpY2FsbHkgaW5jbHVkZSBlbnRyaWVzCi0JICogd2l0aCByZWR1bmRhbnQgcGluLT5nc2kgbWFwcGluZ3MgKGJ1dCB1bmlxdWUgUENJIGRldmljZXMpOwotCSAqIHdlIG9ubHkgcHJvZ3JhbSB0aGUgSU9BUElDIG9uIHRoZSBmaXJzdC4KLQkgKi8KLQlpZiAoaW9hcGljX3BpbiA+IE1QX01BWF9JT0FQSUNfUElOKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCByZWZlcmVuY2UgdG8gSU9BUElDIHBpbiAiCi0JCSAgICAgICAiJWQtJWRcbiIsIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwKLQkJICAgICAgIGlvYXBpY19waW4pOwotCQlyZXR1cm4gZ3NpOwotCX0KLQlpZiAodGVzdF9iaXQoaW9hcGljX3BpbiwgbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5waW5fcHJvZ3JhbW1lZCkpIHsKLQkJRHByaW50ayhLRVJOX0RFQlVHICJQaW4gJWQtJWQgYWxyZWFkeSBwcm9ncmFtbWVkXG4iLAotCQkJbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5hcGljX2lkLCBpb2FwaWNfcGluKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JCXJldHVybiAoZ3NpIDwgSVJRX0NPTVBSRVNTSU9OX1NUQVJUID8gZ3NpIDogZ3NpX3RvX2lycVtnc2ldKTsKLSNlbHNlCi0JCXJldHVybiBnc2k7Ci0jZW5kaWYKLQl9CisJCWlmIChtcF9pcnFzW2ldLm1wX2lycWZsYWcgIT0gMHgwZikKKwkJCWNvbnRpbnVlOwogCi0Jc2V0X2JpdChpb2FwaWNfcGluLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLnBpbl9wcm9ncmFtbWVkKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JLyoKLQkgKiBGb3IgR1NJID49IDY0LCB1c2UgSVJRIGNvbXByZXNzaW9uCi0JICovCi0JaWYgKChnc2kgPj0gSVJRX0NPTVBSRVNTSU9OX1NUQVJUKQotCSAgICAmJiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkpIHsKLQkJLyoKLQkJICogRm9yIFBDSSBkZXZpY2VzIGFzc2lnbiBJUlFzIGluIG9yZGVyLCBhdm9pZGluZyBnYXBzCi0JCSAqIGR1ZSB0byB1bnVzZWQgSS9PIEFQSUMgcGlucy4KLQkJICovCi0JCWludCBpcnEgPSBnc2k7Ci0JCWlmIChnc2kgPCBNQVhfR1NJX05VTSkgewotCQkJLyoKLQkJCSAqIFJldGFpbiB0aGUgVklBIGNoaXBzZXQgd29yay1hcm91bmQgKGdzaSA+IDE1KSwgYnV0Ci0JCQkgKiBhdm9pZCBhIHByb2JsZW0gd2hlcmUgdGhlIDgyNTQgdGltZXIgKElSUTApIGlzIHNldHVwCi0JCQkgKiB2aWEgYW4gb3ZlcnJpZGUgKHNvIGl0J3Mgbm90IG9uIHBpbiAwIG9mIHRoZSBpb2FwaWMpLAotCQkJICogYW5kIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBwaW4gMCBpbnRlcnJ1cHQgaXMgYSBQQ0kKLQkJCSAqIHR5cGUuICBUaGUgZ3NpID4gMTUgdGVzdCBjb3VsZCBjYXVzZSB0aGVzZSB0d28gcGlucwotCQkJICogdG8gYmUgc2hhcmVkIGFzIElSUTAsIGFuZCB0aGV5IGFyZSBub3Qgc2hhcmVhYmxlLgotCQkJICogU28gdGVzdCBmb3IgdGhpcyBjb25kaXRpb24sIGFuZCBpZiBuZWNlc3NhcnksIGF2b2lkCi0JCQkgKiB0aGUgcGluIGNvbGxpc2lvbi4KLQkJCSAqLwotCQkJZ3NpID0gcGNpX2lycSsrOwotCQkJLyoKLQkJCSAqIERvbid0IGFzc2lnbiBJUlEgdXNlZCBieSBBQ1BJIFNDSQotCQkJICovCi0JCQlpZiAoZ3NpID09IGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCkKLQkJCQlnc2kgPSBwY2lfaXJxKys7Ci0JCQlnc2lfdG9faXJxW2lycV0gPSBnc2k7CisJCWlmIChucl9tX3NwYXJlID4gMCkgeworCQkJcHJpbnRrKEtFUk5fSU5GTyAiKk5FVyogZm91bmQgIik7CisJCQlucl9tX3NwYXJlLS07CisJCQlhc3NpZ25fdG9fbXBjX2ludHNyYygmbXBfaXJxc1tpXSwgbV9zcGFyZVtucl9tX3NwYXJlXSk7CisJCQltX3NwYXJlW25yX21fc3BhcmVdID0gTlVMTDsKIAkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiR1NJICV1IGlzIHRvbyBoaWdoXG4iLCBnc2kpOwotCQkJcmV0dXJuIGdzaTsKKwkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSA9CisJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqKW1wdDsKKwkJCWNvdW50ICs9IHNpemVvZihzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMpOworCQkJaWYgKCFtcGNfbmV3X3BoeXMpIHsKKwkJCQlwcmludGsoS0VSTl9JTkZPICJObyBzcGFyZSBzbG90cywgdHJ5IHRvIGFwcGVuZC4uLnRha2UgeW91ciByaXNrLCBuZXcgbXBjX2xlbmd0aCAleFxuIiwgY291bnQpOworCQkJfSBlbHNlIHsKKwkJCQlpZiAoY291bnQgPD0gbXBjX25ld19sZW5ndGgpCisJCQkJCXByaW50ayhLRVJOX0lORk8gIk5vIHNwYXJlIHNsb3RzLCB0cnkgdG8gYXBwZW5kLi4uLCBuZXcgbXBjX2xlbmd0aCAleFxuIiwgY291bnQpOworCQkJCWVsc2UgeworCQkJCQlwcmludGsoS0VSTl9FUlIgIm1wY19uZXdfbGVuZ3RoICVseCBpcyB0b28gc21hbGxcbiIsIG1wY19uZXdfbGVuZ3RoKTsKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCQkJfQorCQkJYXNzaWduX3RvX21wY19pbnRzcmMoJm1wX2lycXNbaV0sIG0pOworCQkJbXBjLT5tcGNfbGVuZ3RoID0gY291bnQ7CisJCQltcHQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyk7CiAJCX0KKwkJcHJpbnRfbXBfaXJxX2luZm8oJm1wX2lycXNbaV0pOwogCX0KICNlbmRpZgotCWlvX2FwaWNfc2V0X3BjaV9yb3V0aW5nKGlvYXBpYywgaW9hcGljX3BpbiwgZ3NpLAotCQkJCXRyaWdnZXJpbmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDAgOiAxLAotCQkJCXBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAwIDogMSk7Ci0JcmV0dXJuIGdzaTsKK291dDoKKwkvKiB1cGRhdGUgY2hlY2tzdW0gKi8KKwltcGMtPm1wY19jaGVja3N1bSA9IDA7CisJbXBjLT5tcGNfY2hlY2tzdW0gLT0gbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopbXBjLAorCQkJCQkgICBtcGMtPm1wY19sZW5ndGgpOworCisJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfWDg2X0lPX0FQSUMgKi8KLSNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLworc3RhdGljIGludCBfX2luaXRkYXRhIGVuYWJsZV91cGRhdGVfbXB0YWJsZTsKKworc3RhdGljIGludCBfX2luaXQgdXBkYXRlX21wdGFibGVfc2V0dXAoY2hhciAqc3RyKQoreworCWVuYWJsZV91cGRhdGVfbXB0YWJsZSA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgidXBkYXRlX21wdGFibGUiLCB1cGRhdGVfbXB0YWJsZV9zZXR1cCk7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbXBjX25ld19waHlzOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbXBjX25ld19sZW5ndGggX19pbml0ZGF0YSA9IDQwOTY7CisKKy8qIGFsbG9jX21wdGFibGUgb3IgYWxsb2NfbXB0YWJsZT00ayAqLworc3RhdGljIGludCBfX2luaXRkYXRhIGFsbG9jX21wdGFibGU7CitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9hbGxvY19tcHRhYmxlX29wdChjaGFyICpwKQoreworCWVuYWJsZV91cGRhdGVfbXB0YWJsZSA9IDE7CisJYWxsb2NfbXB0YWJsZSA9IDE7CisJaWYgKCFwKQorCQlyZXR1cm4gMDsKKwltcGNfbmV3X2xlbmd0aCA9IG1lbXBhcnNlKHAsICZwKTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJhbGxvY19tcHRhYmxlIiwgcGFyc2VfYWxsb2NfbXB0YWJsZV9vcHQpOworCit2b2lkIF9faW5pdCBlYXJseV9yZXNlcnZlX2U4MjBfbXBjX25ldyh2b2lkKQoreworCWlmIChlbmFibGVfdXBkYXRlX21wdGFibGUgJiYgYWxsb2NfbXB0YWJsZSkgeworCQl1NjQgc3RhcnR0ID0gMDsKKyNpZmRlZiBDT05GSUdfWDg2X1RSQU1QT0xJTkUKKwkJc3RhcnR0ID0gVFJBTVBPTElORV9CQVNFOworI2VuZGlmCisJCW1wY19uZXdfcGh5cyA9IGVhcmx5X3Jlc2VydmVfZTgyMChzdGFydHQsIG1wY19uZXdfbGVuZ3RoLCA0KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHVwZGF0ZV9tcF90YWJsZSh2b2lkKQoreworCWNoYXIgc3RyWzE2XTsKKwljaGFyIG9lbVsxMF07CisJc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGY7CisJc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjOworCXN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wY19uZXc7CisKKwlpZiAoIWVuYWJsZV91cGRhdGVfbXB0YWJsZSkKKwkJcmV0dXJuIDA7CisKKwltcGYgPSBtcGZfZm91bmQ7CisJaWYgKCFtcGYpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBOb3cgc2VlIGlmIHdlIG5lZWQgdG8gZ28gZnVydGhlci4KKwkgKi8KKwlpZiAobXBmLT5tcGZfZmVhdHVyZTEgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIW1wZi0+bXBmX3BoeXNwdHIpCisJCXJldHVybiAwOworCisJbXBjID0gcGh5c190b192aXJ0KG1wZi0+bXBmX3BoeXNwdHIpOworCisJaWYgKCFzbXBfY2hlY2tfbXBjKG1wYywgb2VtLCBzdHIpKQorCQlyZXR1cm4gMDsKKworCXByaW50ayhLRVJOX0lORk8gIm1wZjogJWx4XG4iLCB2aXJ0X3RvX3BoeXMobXBmKSk7CisJcHJpbnRrKEtFUk5fSU5GTyAibXBmX3BoeXNwdHI6ICV4XG4iLCBtcGYtPm1wZl9waHlzcHRyKTsKKworCWlmIChtcGNfbmV3X3BoeXMgJiYgbXBjLT5tcGNfbGVuZ3RoID4gbXBjX25ld19sZW5ndGgpIHsKKwkJbXBjX25ld19waHlzID0gMDsKKwkJcHJpbnRrKEtFUk5fSU5GTyAibXBjX25ld19sZW5ndGggaXMgJWxkLCBwbGVhc2UgdXNlIGFsbG9jX21wdGFibGU9OGtcbiIsCisJCQkgbXBjX25ld19sZW5ndGgpOworCX0KKworCWlmICghbXBjX25ld19waHlzKSB7CisJCXVuc2lnbmVkIGNoYXIgb2xkLCBuZXc7CisJCS8qIGNoZWNrIGlmIHdlIGNhbiBjaGFuZ2UgdGhlIHBvc3Rpb24gKi8KKwkJbXBjLT5tcGNfY2hlY2tzdW0gPSAwOworCQlvbGQgPSBtcGZfY2hlY2tzdW0oKHVuc2lnbmVkIGNoYXIgKiltcGMsIG1wYy0+bXBjX2xlbmd0aCk7CisJCW1wYy0+bXBjX2NoZWNrc3VtID0gMHhmZjsKKwkJbmV3ID0gbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopbXBjLCBtcGMtPm1wY19sZW5ndGgpOworCQlpZiAob2xkID09IG5ldykgeworCQkJcHJpbnRrKEtFUk5fSU5GTyAibXBjIGlzIHJlYWRvbmx5LCBwbGVhc2UgdHJ5IGFsbG9jX21wdGFibGUgaW5zdGVhZFxuIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlwcmludGsoS0VSTl9JTkZPICJ1c2UgaW4tcG9zaXRvbiByZXBsYWNpbmdcbiIpOworCX0gZWxzZSB7CisJCW1wZi0+bXBmX3BoeXNwdHIgPSBtcGNfbmV3X3BoeXM7CisJCW1wY19uZXcgPSBwaHlzX3RvX3ZpcnQobXBjX25ld19waHlzKTsKKwkJbWVtY3B5KG1wY19uZXcsIG1wYywgbXBjLT5tcGNfbGVuZ3RoKTsKKwkJbXBjID0gbXBjX25ldzsKKwkJLyogY2hlY2sgaWYgd2UgY2FuIG1vZGlmeSB0aGF0ICovCisJCWlmIChtcGNfbmV3X3BoeXMgLSBtcGYtPm1wZl9waHlzcHRyKSB7CisJCQlzdHJ1Y3QgaW50ZWxfbXBfZmxvYXRpbmcgKm1wZl9uZXc7CisJCQkvKiBzdGVhbCAxNiBieXRlcyBmcm9tIFswLCAxaykgKi8KKwkJCXByaW50ayhLRVJOX0lORk8gIm1wZiBuZXc6ICV4XG4iLCAweDQwMCAtIDE2KTsKKwkJCW1wZl9uZXcgPSBwaHlzX3RvX3ZpcnQoMHg0MDAgLSAxNik7CisJCQltZW1jcHkobXBmX25ldywgbXBmLCAxNik7CisJCQltcGYgPSBtcGZfbmV3OworCQkJbXBmLT5tcGZfcGh5c3B0ciA9IG1wY19uZXdfcGh5czsKKwkJfQorCQltcGYtPm1wZl9jaGVja3N1bSA9IDA7CisJCW1wZi0+bXBmX2NoZWNrc3VtIC09IG1wZl9jaGVja3N1bSgodW5zaWduZWQgY2hhciAqKW1wZiwgMTYpOworCQlwcmludGsoS0VSTl9JTkZPICJtcGZfcGh5c3B0ciBuZXc6ICV4XG4iLCBtcGYtPm1wZl9waHlzcHRyKTsKKwl9CisKKwkvKgorCSAqIG9ubHkgcmVwbGFjZSB0aGUgb25lIHdpdGggbXBfSU5UIGFuZAorCSAqCSBNUF9JUlFfVFJJR0dFUl9MRVZFTHxNUF9JUlFfUE9MQVJJVFlfTE9XLAorCSAqIGFscmVhZHkgaW4gbXBfaXJxcyAsIHN0b3JlZCBieSAuLi4gYW5kIG1wX2NvbmZpZ19hY3BpX2dzaSwKKwkgKiBtYXkgbmVlZCBwY2k9cm91dGVpcnEgZm9yIGFsbCBjb3ZlcmFnZQorCSAqLworCXJlcGxhY2VfaW50c3JjX2FsbChtcGMsIG1wY19uZXdfcGh5cywgbXBjX25ld19sZW5ndGgpOworCisJcmV0dXJuIDA7Cit9CisKK2xhdGVfaW5pdGNhbGwodXBkYXRlX21wX3RhYmxlKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tc3IuYyBiL2FyY2gveDg2L2tlcm5lbC9tc3IuYwppbmRleCAxZjNhYmUwLi5hMTUzYjM5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL21zci5jCkBAIC0xMTcsMTIgKzExNywyMCBAQAogewogCXVuc2lnbmVkIGludCBjcHUgPSBpbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRhKGNwdSk7CisJaW50IHJldCA9IDA7CiAKLQlpZiAoY3B1ID49IE5SX0NQVVMgfHwgIWNwdV9vbmxpbmUoY3B1KSkKLQkJcmV0dXJuIC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwlsb2NrX2tlcm5lbCgpOworCWNwdSA9IGltaW5vcihmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKKworCWlmIChjcHUgPj0gTlJfQ1BVUyB8fCAhY3B1X29ubGluZShjcHUpKSB7CisJCXJldCA9IC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwkJZ290byBvdXQ7CisJfQorCWMgPSAmY3B1X2RhdGEoY3B1KTsKIAlpZiAoIWNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfTVNSKSkKLQkJcmV0dXJuIC1FSU87CS8qIE1TUiBub3Qgc3VwcG9ydGVkICovCi0KKwkJcmV0ID0gLUVJTzsJLyogTVNSIG5vdCBzdXBwb3J0ZWQgKi8KK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9ubWkuYyBiL2FyY2gveDg2L2tlcm5lbC9ubWkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTZiODkyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL25taS5jCkBAIC0wLDAgKzEsNTE2IEBACisvKgorICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcworICoKKyAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqICBGaXhlczoKKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgorICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUGVudGl1bSA0IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgorICogIFBhdmVsIE1hY2hlayBhbmQKKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKworI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9rcHJvYmVzLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vaTgyNTkuaD4KKyNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vbm1pLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisKKyNpbmNsdWRlIDxhc20vbWNlLmg+CisKKyNpbmNsdWRlIDxtYWNoX3RyYXBzLmg+CisKK2ludCB1bmtub3duX25taV9wYW5pYzsKK2ludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKKworc3RhdGljIGNwdW1hc2tfdCBiYWNrdHJhY2VfbWFzayA9IENQVV9NQVNLX05PTkU7CisKKy8qIG5taV9hY3RpdmU6CisgKiA+MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBhY3RpdmUsIGJ1dCBjYW4gYmUgZGlzYWJsZWQKKyAqIDwwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGhhcyBub3QgYmVlbiBzZXQgdXAsIGFuZCBjYW5ub3QKKyAqICAgICBiZSBlbmFibGVkCisgKiAgMDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBkaXNhYmxlZCwgYnV0IGNhbiBiZSBlbmFibGVkCisgKi8KK2F0b21pY190IG5taV9hY3RpdmUgPSBBVE9NSUNfSU5JVCgwKTsJCS8qIG9wcm9maWxlIHVzZXMgdGhpcyAqLworRVhQT1JUX1NZTUJPTChubWlfYWN0aXZlKTsKKwordW5zaWduZWQgaW50IG5taV93YXRjaGRvZyA9IE5NSV9OT05FOworRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOworCitzdGF0aWMgaW50IHBhbmljX29uX3RpbWVvdXQ7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbm1pX2h6ID0gSFo7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc2hvcnQsIHdkX2VuYWJsZWQpOworc3RhdGljIGludCBlbmRmbGFnIF9faW5pdGRhdGE7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF9ubWlfY291bnQoaW50IGNwdSkKK3sKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJcmV0dXJuIGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQ7CisjZWxzZQorCXJldHVybiBubWlfY291bnQoY3B1KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW5saW5lIGludCBtY2VfaW5fcHJvZ3Jlc3Modm9pZCkKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9NQ0UpCisJcmV0dXJuIGF0b21pY19yZWFkKCZtY2VfZW50cnkpID4gMDsKKyNlbmRpZgorCXJldHVybiAwOworfQorCisvKgorICogVGFrZSB0aGUgbG9jYWwgYXBpYyB0aW1lciBhbmQgUElUL0hQRVQgaW50byBhY2NvdW50LiBXZSBkb24ndAorICoga25vdyB3aGljaCBvbmUgaXMgYWN0aXZlLCB3aGVuIHdlIGhhdmUgaGlnaHJlcy9keW50aWNrIG9uCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF90aW1lcl9pcnFzKGludCBjcHUpCit7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCXJldHVybiByZWFkX3BkYShhcGljX3RpbWVyX2lycXMpICsgcmVhZF9wZGEoaXJxMF9pcnFzKTsKKyNlbHNlCisJcmV0dXJuIHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuYXBpY190aW1lcl9pcnFzICsKKwkJcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5pcnEwX2lycXM7CisjZW5kaWYKK30KKworI2lmZGVmIENPTkZJR19TTVAKKy8qCisgKiBUaGUgcGVyZm9ybWFuY2UgY291bnRlcnMgdXNlZCBieSBOTUlfTE9DQUxfQVBJQyBkb24ndCB0cmlnZ2VyIHdoZW4KKyAqIHRoZSBDUFUgaXMgaWRsZS4gVG8gbWFrZSBzdXJlIHRoZSBOTUkgd2F0Y2hkb2cgcmVhbGx5IHRpY2tzIG9uIGFsbAorICogQ1BVcyBkdXJpbmcgdGhlIHRlc3QgbWFrZSB0aGVtIGJ1c3kuCisgKi8KK3N0YXRpYyBfX2luaXQgdm9pZCBubWlfY3B1X2J1c3kodm9pZCAqZGF0YSkKK3sKKwlsb2NhbF9pcnFfZW5hYmxlX2luX2hhcmRpcnEoKTsKKwkvKgorCSAqIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCisJICogdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAorCSAqIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCisJICogcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCisJICogYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0CisJICogY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4KKwkgKi8KKwl3aGlsZSAoZW5kZmxhZyA9PSAwKQorCQltYigpOworfQorI2VuZGlmCisKK2ludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCit7CisJdW5zaWduZWQgaW50ICpwcmV2X25taV9jb3VudDsKKwlpbnQgY3B1OworCisJaWYgKCFubWlfd2F0Y2hkb2dfYWN0aXZlKCkgfHwgIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKKwkJcmV0dXJuIDA7CisKKwlwcmV2X25taV9jb3VudCA9IGttYWxsb2MobnJfY3B1X2lkcyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByZXZfbm1pX2NvdW50KQorCQlnb3RvIGVycm9yOworCisJcHJpbnRrKEtFUk5fSU5GTyAiVGVzdGluZyBOTUkgd2F0Y2hkb2cgLi4uICIpOworCisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCisJCXNtcF9jYWxsX2Z1bmN0aW9uKG5taV9jcHVfYnVzeSwgKHZvaWQgKikmZW5kZmxhZywgMCwgMCk7CisjZW5kaWYKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCisJCXByZXZfbm1pX2NvdW50W2NwdV0gPSBnZXRfbm1pX2NvdW50KGNwdSk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworCW1kZWxheSgoMjAgKiAxMDAwKSAvIG5taV9oeik7IC8qIHdhaXQgMjAgdGlja3MgKi8KKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCWlmICghcGVyX2NwdSh3ZF9lbmFibGVkLCBjcHUpKQorCQkJY29udGludWU7CisJCWlmIChnZXRfbm1pX2NvdW50KGNwdSkgLSBwcmV2X25taV9jb3VudFtjcHVdIDw9IDUpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IENQVSMlZDogTk1JICIKKwkJCQkiYXBwZWFycyB0byBiZSBzdHVjayAoJWQtPiVkKSFcbiIsCisJCQkJY3B1LAorCQkJCXByZXZfbm1pX2NvdW50W2NwdV0sCisJCQkJZ2V0X25taV9jb3VudChjcHUpKTsKKwkJCXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSA9IDA7CisJCQlhdG9taWNfZGVjKCZubWlfYWN0aXZlKTsKKwkJfQorCX0KKwllbmRmbGFnID0gMTsKKwlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkgeworCQlrZnJlZShwcmV2X25taV9jb3VudCk7CisJCWF0b21pY19zZXQoJm5taV9hY3RpdmUsIC0xKTsKKwkJZ290byBlcnJvcjsKKwl9CisJcHJpbnRrKCJPSy5cbiIpOworCisJLyoKKwkgKiBub3cgdGhhdCB3ZSBrbm93IGl0IHdvcmtzIHdlIGNhbiByZWR1Y2UgTk1JIGZyZXF1ZW5jeSB0bworCSAqIHNvbWV0aGluZyBtb3JlIHJlYXNvbmFibGU7IG1ha2VzIGEgZGlmZmVyZW5jZSBpbiBzb21lIGNvbmZpZ3MKKwkgKi8KKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQorCQlubWlfaHogPSBsYXBpY19hZGp1c3Rfbm1pX2h6KDEpOworCisJa2ZyZWUocHJldl9ubWlfY291bnQpOworCXJldHVybiAwOworZXJyb3I6CisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQyAmJiAhdGltZXJfdGhyb3VnaF84MjU5KQorCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJdGltZXJfYWNrID0gMDsKKyNlbmRpZgorCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBfX2luaXQgc2V0dXBfbm1pX3dhdGNoZG9nKGNoYXIgKnN0cikKK3sKKwl1bnNpZ25lZCBpbnQgbm1pOworCisJaWYgKCFzdHJuY21wKHN0ciwgInBhbmljIiwgNSkpIHsKKwkJcGFuaWNfb25fdGltZW91dCA9IDE7CisJCXN0ciA9IHN0cmNocihzdHIsICcsJyk7CisJCWlmICghc3RyKQorCQkJcmV0dXJuIDE7CisJCSsrc3RyOworCX0KKworCWdldF9vcHRpb24oJnN0ciwgJm5taSk7CisKKwlpZiAobm1pID49IE5NSV9JTlZBTElEKQorCQlyZXR1cm4gMDsKKworCW5taV93YXRjaGRvZyA9IG5taTsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoIm5taV93YXRjaGRvZz0iLCBzZXR1cF9ubWlfd2F0Y2hkb2cpOworCisvKgorICogU3VzcGVuZC9yZXN1bWUgc3VwcG9ydAorICovCisjaWZkZWYgQ09ORklHX1BNCisKK3N0YXRpYyBpbnQgbm1pX3BtX2FjdGl2ZTsgLyogbm1pX2FjdGl2ZSBiZWZvcmUgc3VzcGVuZCAqLworCitzdGF0aWMgaW50IGxhcGljX25taV9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCisJbm1pX3BtX2FjdGl2ZSA9IGF0b21pY19yZWFkKCZubWlfYWN0aXZlKTsKKwlzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOworCUJVR19PTihhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgIT0gMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbGFwaWNfbm1pX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQoreworCS8qIG9ubHkgQ1BVMCBnb2VzIGhlcmUsIG90aGVyIENQVXMgc2hvdWxkIGJlIG9mZmxpbmUgKi8KKwlpZiAobm1pX3BtX2FjdGl2ZSA+IDApIHsKKwkJc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2coTlVMTCk7CisJCXRvdWNoX25taV93YXRjaGRvZygpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgbm1pX3N5c2NsYXNzID0geworCS5uYW1lCQk9ICJsYXBpY19ubWkiLAorCS5yZXN1bWUJCT0gbGFwaWNfbm1pX3Jlc3VtZSwKKwkuc3VzcGVuZAk9IGxhcGljX25taV9zdXNwZW5kLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9sYXBpY19ubWkgPSB7CisJLmlkCT0gMCwKKwkuY2xzCT0gJm5taV9zeXNjbGFzcywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfbGFwaWNfbm1pX3N5c2ZzKHZvaWQpCit7CisJaW50IGVycm9yOworCisJLyoKKwkgKiBzaG91bGQgcmVhbGx5IGJlIGEgQlVHX09OIGJ1dCBiL2MgdGhpcyBpcyBhbgorCSAqIGluaXQgY2FsbCwgaXQganVzdCBkb2Vzbid0IHdvcmsuICAtZGN6CisJICovCisJaWYgKG5taV93YXRjaGRvZyAhPSBOTUlfTE9DQUxfQVBJQykKKwkJcmV0dXJuIDA7CisKKwlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCkKKwkJcmV0dXJuIDA7CisKKwllcnJvciA9IHN5c2Rldl9jbGFzc19yZWdpc3Rlcigmbm1pX3N5c2NsYXNzKTsKKwlpZiAoIWVycm9yKQorCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2xhcGljX25taSk7CisJcmV0dXJuIGVycm9yOworfQorCisvKiBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGxvY2FsIEFQSUMncyBkZXZpY2VfaW5pdGNhbGwoKSAqLworbGF0ZV9pbml0Y2FsbChpbml0X2xhcGljX25taV9zeXNmcyk7CisKKyNlbmRpZgkvKiBDT05GSUdfUE0gKi8KKworc3RhdGljIHZvaWQgX19hY3BpX25taV9lbmFibGUodm9pZCAqX191bnVzZWQpCit7CisJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX05NSSk7Cit9CisKKy8qCisgKiBFbmFibGUgdGltZXIgYmFzZWQgTk1JcyBvbiBhbGwgQ1BVczoKKyAqLwordm9pZCBhY3BpX25taV9lbmFibGUodm9pZCkKK3sKKwlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKKwkJb25fZWFjaF9jcHUoX19hY3BpX25taV9lbmFibGUsIE5VTEwsIDAsIDEpOworfQorCitzdGF0aWMgdm9pZCBfX2FjcGlfbm1pX2Rpc2FibGUodm9pZCAqX191bnVzZWQpCit7CisJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX05NSSB8IEFQSUNfTFZUX01BU0tFRCk7Cit9CisKKy8qCisgKiBEaXNhYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6CisgKi8KK3ZvaWQgYWNwaV9ubWlfZGlzYWJsZSh2b2lkKQoreworCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2Rpc2FibGUsIE5VTEwsIDAsIDEpOworfQorCit2b2lkIHNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKK3sKKwlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKKwkJcmV0dXJuOworCisJLyogY2hlYXAgaGFjayB0byBzdXBwb3J0IHN1c3BlbmQvcmVzdW1lICovCisJLyogaWYgY3B1MCBpcyBub3QgYWN0aXZlIG5laXRoZXIgc2hvdWxkIHRoZSBvdGhlciBjcHVzICovCisJaWYgKHNtcF9wcm9jZXNzb3JfaWQoKSAhPSAwICYmIGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8PSAwKQorCQlyZXR1cm47CisKKwlzd2l0Y2ggKG5taV93YXRjaGRvZykgeworCWNhc2UgTk1JX0xPQ0FMX0FQSUM6CisJCSAvKiBlbmFibGUgaXQgYmVmb3JlIHRvIGF2b2lkIHJhY2Ugd2l0aCBoYW5kbGVyICovCisJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOworCQlpZiAobGFwaWNfd2F0Y2hkb2dfaW5pdChubWlfaHopIDwgMCkgeworCQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7CisJCQlyZXR1cm47CisJCX0KKwkJLyogRkFMTCBUSFJPVUdIICovCisJY2FzZSBOTUlfSU9fQVBJQzoKKwkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7CisJCWF0b21pY19pbmMoJm5taV9hY3RpdmUpOworCX0KK30KKwordm9pZCBzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKK3sKKwkvKiBvbmx5IHN1cHBvcnQgTE9DQUwgYW5kIElPIEFQSUNzIGZvciBub3cgKi8KKwlpZiAoIW5taV93YXRjaGRvZ19hY3RpdmUoKSkKKwkJcmV0dXJuOworCWlmIChfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID09IDApCisJCXJldHVybjsKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQorCQlsYXBpY193YXRjaGRvZ19zdG9wKCk7CisJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7CisJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Cit9CisKKy8qCisgKiB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgYSBDUFUgaGFzIGEgJ2hhcmQgbG9ja3VwJyBwcm9ibGVtCisgKiBpcyB0byBjaGVjayBpdCdzIGxvY2FsIEFQSUMgdGltZXIgSVJRIGNvdW50cy4gSWYgdGhleSBhcmUgbm90CisgKiBjaGFuZ2luZyB0aGVuIHRoYXQgQ1BVIGhhcyBzb21lIHByb2JsZW0uCisgKgorICogYXMgdGhlc2Ugd2F0Y2hkb2cgTk1JIElSUXMgYXJlIGdlbmVyYXRlZCBvbiBldmVyeSBDUFUsIHdlIG9ubHkKKyAqIGhhdmUgdG8gY2hlY2sgdGhlIGN1cnJlbnQgcHJvY2Vzc29yLgorICoKKyAqIHNpbmNlIE5NSXMgZG9uJ3QgbGlzdGVuIHRvIF9hbnlfIGxvY2tzLCB3ZSBoYXZlIHRvIGJlIGV4dHJlbWVseQorICogY2FyZWZ1bCBub3QgdG8gcmVseSBvbiB1bnNhZmUgdmFyaWFibGVzLiBUaGUgcHJpbnRrIG1pZ2h0IGxvY2sKKyAqIHVwIHRob3VnaCwgc28gd2UgaGF2ZSB0byBicmVhayB1cCBhbnkgY29uc29sZSBsb2NrcyBmaXJzdCAuLi4KKyAqIFt3aGVuIHRoZXJlIHdpbGwgYmUgbW9yZSB0dHktcmVsYXRlZCBsb2NrcywgYnJlYWsgdGhlbSB1cCBoZXJlIHRvbyFdCisgKi8KKworc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkLCBsYXN0X2lycV9zdW0pOworc3RhdGljIERFRklORV9QRVJfQ1BVKGxvY2FsX3QsIGFsZXJ0X2NvdW50ZXIpOworc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgbm1pX3RvdWNoKTsKKwordm9pZCB0b3VjaF9ubWlfd2F0Y2hkb2codm9pZCkKK3sKKwlpZiAobm1pX3dhdGNoZG9nX2FjdGl2ZSgpKSB7CisJCXVuc2lnbmVkIGNwdTsKKworCQkvKgorCQkgKiBUZWxsIG90aGVyIENQVXMgdG8gcmVzZXQgdGhlaXIgYWxlcnQgY291bnRlcnMuIFdlIGNhbm5vdAorCQkgKiBkbyBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxlcnQgY291bnQgaW5jcmVhc2UgaXMgbm90CisJCSAqIGF0b21pYy4KKwkJICovCisJCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgeworCQkJaWYgKHBlcl9jcHUobm1pX3RvdWNoLCBjcHUpICE9IDEpCisJCQkJcGVyX2NwdShubWlfdG91Y2gsIGNwdSkgPSAxOworCQl9CisJfQorCisJLyoKKwkgKiBUaWNrbGUgdGhlIHNvZnRsb2NrdXAgZGV0ZWN0b3IgdG9vOgorCSAqLworCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKK30KK0VYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKKworbm90cmFjZSBfX2twcm9iZXMgaW50CitubWlfd2F0Y2hkb2dfdGljayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgcmVhc29uKQoreworCS8qCisJICogU2luY2UgY3VycmVudF90aHJlYWRfaW5mbygpLT4gaXMgYWx3YXlzIG9uIHRoZSBzdGFjaywgYW5kIHdlCisJICogYWx3YXlzIHN3aXRjaCB0aGUgc3RhY2sgTk1JLWF0b21pY2FsbHksIGl0J3Mgc2FmZSB0byB1c2UKKwkgKiBzbXBfcHJvY2Vzc29yX2lkKCkuCisJICovCisJdW5zaWduZWQgaW50IHN1bTsKKwlpbnQgdG91Y2hlZCA9IDA7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgcmMgPSAwOworCisJLyogY2hlY2sgZm9yIG90aGVyIHVzZXJzIGZpcnN0ICovCisJaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKQorCQkJPT0gTk9USUZZX1NUT1ApIHsKKwkJcmMgPSAxOworCQl0b3VjaGVkID0gMTsKKwl9CisKKwlzdW0gPSBnZXRfdGltZXJfaXJxcyhjcHUpOworCisJaWYgKF9fZ2V0X2NwdV92YXIobm1pX3RvdWNoKSkgeworCQlfX2dldF9jcHVfdmFyKG5taV90b3VjaCkgPSAwOworCQl0b3VjaGVkID0gMTsKKwl9CisKKwlpZiAoY3B1X2lzc2V0KGNwdSwgYmFja3RyYWNlX21hc2spKSB7CisJCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CS8qIFNlcmlhbGlzZSB0aGUgcHJpbnRrcyAqLworCisJCXNwaW5fbG9jaygmbG9jayk7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk5NSSBiYWNrdHJhY2UgZm9yIGNwdSAlZFxuIiwgY3B1KTsKKwkJZHVtcF9zdGFjaygpOworCQlzcGluX3VubG9jaygmbG9jayk7CisJCWNwdV9jbGVhcihjcHUsIGJhY2t0cmFjZV9tYXNrKTsKKwl9CisKKwkvKiBDb3VsZCBjaGVjayBvb3BzX2luX3Byb2dyZXNzIGhlcmUgdG9vLCBidXQgaXQncyBzYWZlciBub3QgdG8gKi8KKwlpZiAobWNlX2luX3Byb2dyZXNzKCkpCisJCXRvdWNoZWQgPSAxOworCisJLyogaWYgdGhlIG5vbmUgb2YgdGhlIHRpbWVycyBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KKwlpZiAoIXRvdWNoZWQgJiYgX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID09IHN1bSkgeworCQkvKgorCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KKwkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KKwkJICovCisJCWxvY2FsX2luYygmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSk7CisJCWlmIChsb2NhbF9yZWFkKCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpKSA9PSA1ICogbm1pX2h6KQorCQkJLyoKKwkJCSAqIGRpZV9ubWkgd2lsbCByZXR1cm4gT05MWSBpZiBOT1RJRllfU1RPUCBoYXBwZW5zLi4KKwkJCSAqLworCQkJZGllX25taSgiQlVHOiBOTUkgV2F0Y2hkb2cgZGV0ZWN0ZWQgTE9DS1VQIiwKKwkJCQlyZWdzLCBwYW5pY19vbl90aW1lb3V0KTsKKwl9IGVsc2UgeworCQlfX2dldF9jcHVfdmFyKGxhc3RfaXJxX3N1bSkgPSBzdW07CisJCWxvY2FsX3NldCgmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSwgMCk7CisJfQorCisJLyogc2VlIGlmIHRoZSBubWkgd2F0Y2hkb2cgd2VudCBvZmYgKi8KKwlpZiAoIV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCisJCXJldHVybiByYzsKKwlzd2l0Y2ggKG5taV93YXRjaGRvZykgeworCWNhc2UgTk1JX0xPQ0FMX0FQSUM6CisJCXJjIHw9IGxhcGljX3dkX2V2ZW50KG5taV9oeik7CisJCWJyZWFrOworCWNhc2UgTk1JX0lPX0FQSUM6CisJCS8qCisJCSAqIGRvbid0IGtub3cgaG93IHRvIGFjY3VyYXRlbHkgY2hlY2sgZm9yIHRoaXMuCisJCSAqIGp1c3QgYXNzdW1lIGl0IHdhcyBhIHdhdGNoZG9nIHRpbWVyIGludGVycnVwdAorCQkgKiBUaGlzIG1hdGNoZXMgdGhlIG9sZCBiZWhhdmlvdXIuCisJCSAqLworCQlyYyA9IDE7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gcmM7Cit9CisKKyNpZmRlZiBDT05GSUdfU1lTQ1RMCisKK3N0YXRpYyBpbnQgdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBjcHUpCit7CisJdW5zaWduZWQgY2hhciByZWFzb24gPSBnZXRfbm1pX3JlYXNvbigpOworCWNoYXIgYnVmWzY0XTsKKworCXNwcmludGYoYnVmLCAiTk1JIHJlY2VpdmVkIGZvciB1bmtub3duIHJlYXNvbiAlMDJ4XG4iLCByZWFzb24pOworCWRpZV9ubWkoYnVmLCByZWdzLCAxKTsgLyogQWx3YXlzIHBhbmljIGhlcmUgKi8KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIHByb2MgaGFuZGxlciBmb3IgL3Byb2Mvc3lzL2tlcm5lbC9ubWkKKyAqLworaW50IHByb2Nfbm1pX2VuYWJsZWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQl2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQoreworCWludCBvbGRfc3RhdGU7CisKKwlubWlfd2F0Y2hkb2dfZW5hYmxlZCA9IChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPiAwKSA/IDEgOiAwOworCW9sZF9zdGF0ZSA9IG5taV93YXRjaGRvZ19lbmFibGVkOworCXByb2NfZG9pbnR2ZWModGFibGUsIHdyaXRlLCBmaWxlLCBidWZmZXIsIGxlbmd0aCwgcHBvcyk7CisJaWYgKCEhb2xkX3N0YXRlID09ICEhbm1pX3dhdGNoZG9nX2VuYWJsZWQpCisJCXJldHVybiAwOworCisJaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDAgfHwgIW5taV93YXRjaGRvZ19hY3RpdmUoKSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiTk1JIHdhdGNoZG9nIGlzIHBlcm1hbmVudGx5IGRpc2FibGVkXG4iKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykgeworCQlpZiAobm1pX3dhdGNoZG9nX2VuYWJsZWQpCisJCQllbmFibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7CisJCWVsc2UKKwkJCWRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIk5NSSB3YXRjaGRvZyBkb2Vzbid0IGtub3cgd2hhdCBoYXJkd2FyZSB0byB0b3VjaFxuIik7CisJCXJldHVybiAtRUlPOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIENPTkZJR19TWVNDVEwgKi8KKworaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKK3sKKyNpZmRlZiBDT05GSUdfU1lTQ1RMCisJaWYgKHVua25vd25fbm1pX3BhbmljKQorCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCit2b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQoreworCWludCBpOworCisJYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKKwkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCisJZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7CisJCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKKwkJCWJyZWFrOworCQltZGVsYXkoMSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL25taV8zMi5jIGIvYXJjaC94ODYva2VybmVsL25taV8zMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWIxNGJiLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9ubWlfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDQ3MiArMCwwIEBACi0vKgotICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcwotICoKLSAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgotICoKLSAqICBGaXhlczoKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUGVudGl1bSA0IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIFBhdmVsIE1hY2hlayBhbmQKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9ubWkuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KLSNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLSNpbmNsdWRlIDxsaW51eC9rcHJvYmVzLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2RlYnVnLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotCi0jaW5jbHVkZSA8YXNtL3NtcC5oPgotI2luY2x1ZGUgPGFzbS9ubWkuaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLQotI2luY2x1ZGUgIm1hY2hfdHJhcHMuaCIKLQotaW50IHVua25vd25fbm1pX3BhbmljOwotaW50IG5taV93YXRjaGRvZ19lbmFibGVkOwotCi1zdGF0aWMgY3B1bWFza190IGJhY2t0cmFjZV9tYXNrID0gQ1BVX01BU0tfTk9ORTsKLQotLyogbm1pX2FjdGl2ZToKLSAqID4wOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGFjdGl2ZSwgYnV0IGNhbiBiZSBkaXNhYmxlZAotICogPDA6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaGFzIG5vdCBiZWVuIHNldCB1cCwgYW5kIGNhbm5vdAotICogICAgIGJlIGVuYWJsZWQKLSAqICAwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGRpc2FibGVkLCBidXQgY2FuIGJlIGVuYWJsZWQKLSAqLwotYXRvbWljX3Qgbm1pX2FjdGl2ZSA9IEFUT01JQ19JTklUKDApOwkJLyogb3Byb2ZpbGUgdXNlcyB0aGlzICovCi0KLXVuc2lnbmVkIGludCBubWlfd2F0Y2hkb2cgPSBOTUlfREVGQVVMVDsKLXN0YXRpYyB1bnNpZ25lZCBpbnQgbm1pX2h6ID0gSFo7Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzaG9ydCwgd2RfZW5hYmxlZCk7Ci0KLXN0YXRpYyBpbnQgZW5kZmxhZyBfX2luaXRkYXRhID0gMDsKLQotI2lmZGVmIENPTkZJR19TTVAKLS8qIFRoZSBwZXJmb3JtYW5jZSBjb3VudGVycyB1c2VkIGJ5IE5NSV9MT0NBTF9BUElDIGRvbid0IHRyaWdnZXIgd2hlbgotICogdGhlIENQVSBpcyBpZGxlLiBUbyBtYWtlIHN1cmUgdGhlIE5NSSB3YXRjaGRvZyByZWFsbHkgdGlja3Mgb24gYWxsCi0gKiBDUFVzIGR1cmluZyB0aGUgdGVzdCBtYWtlIHRoZW0gYnVzeS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5taV9jcHVfYnVzeSh2b2lkICpkYXRhKQotewotCWxvY2FsX2lycV9lbmFibGVfaW5faGFyZGlycSgpOwotCS8qIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCi0JICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAotCSAgIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCi0JICAgcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCi0JICAgYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0Ci0JICAgY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4gKi8KLQl3aGlsZSAoZW5kZmxhZyA9PSAwKQotCQltYigpOwotfQotI2VuZGlmCi0KLWludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50ICpwcmV2X25taV9jb3VudDsKLQlpbnQgY3B1OwotCi0JaWYgKChubWlfd2F0Y2hkb2cgPT0gTk1JX05PTkUpIHx8IChubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKLQkJcmV0dXJuIDA7Ci0KLQlwcmV2X25taV9jb3VudCA9IGttYWxsb2MoTlJfQ1BVUyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXByZXZfbm1pX2NvdW50KQotCQlnb3RvIGVycm9yOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiVGVzdGluZyBOTUkgd2F0Y2hkb2cgLi4uICIpOwotCi0jaWZkZWYgQ09ORklHX1NNUAotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCi0JCXNtcF9jYWxsX2Z1bmN0aW9uKG5taV9jcHVfYnVzeSwgKHZvaWQgKikmZW5kZmxhZywgMCwgMCk7Ci0jZW5kaWYKLQotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCi0JCXByZXZfbm1pX2NvdW50W2NwdV0gPSBubWlfY291bnQoY3B1KTsKLQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JbWRlbGF5KCgyMCoxMDAwKS9ubWlfaHopOyAvLyB3YWl0IDIwIHRpY2tzCi0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0jaWZkZWYgQ09ORklHX1NNUAotCQkvKiBDaGVjayBjcHVfY2FsbGluX21hcCBoZXJlIGJlY2F1c2UgdGhhdCBpcyBzZXQKLQkJICAgYWZ0ZXIgdGhlIHRpbWVyIGlzIHN0YXJ0ZWQuICovCi0JCWlmICghY3B1X2lzc2V0KGNwdSwgY3B1X2NhbGxpbl9tYXApKQotCQkJY29udGludWU7Ci0jZW5kaWYKLQkJaWYgKCFwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkpCi0JCQljb250aW51ZTsKLQkJaWYgKG5taV9jb3VudChjcHUpIC0gcHJldl9ubWlfY291bnRbY3B1XSA8PSA1KSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBDUFUjJWQ6IE5NSSAiCi0JCQkJImFwcGVhcnMgdG8gYmUgc3R1Y2sgKCVkLT4lZCkhXG4iLAotCQkJCWNwdSwKLQkJCQlwcmV2X25taV9jb3VudFtjcHVdLAotCQkJCW5taV9jb3VudChjcHUpKTsKLQkJCXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSA9IDA7Ci0JCQlhdG9taWNfZGVjKCZubWlfYWN0aXZlKTsKLQkJfQotCX0KLQllbmRmbGFnID0gMTsKLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkgewotCQlrZnJlZShwcmV2X25taV9jb3VudCk7Ci0JCWF0b21pY19zZXQoJm5taV9hY3RpdmUsIC0xKTsKLQkJZ290byBlcnJvcjsKLQl9Ci0JcHJpbnRrKCJPSy5cbiIpOwotCi0JLyogbm93IHRoYXQgd2Uga25vdyBpdCB3b3JrcyB3ZSBjYW4gcmVkdWNlIE5NSSBmcmVxdWVuY3kgdG8KLQkgICBzb21ldGhpbmcgbW9yZSByZWFzb25hYmxlOyBtYWtlcyBhIGRpZmZlcmVuY2UgaW4gc29tZSBjb25maWdzICovCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJbm1pX2h6ID0gbGFwaWNfYWRqdXN0X25taV9oeigxKTsKLQotCWtmcmVlKHByZXZfbm1pX2NvdW50KTsKLQlyZXR1cm4gMDsKLWVycm9yOgotCXRpbWVyX2FjayA9ICFjcHVfaGFzX3RzYzsKLQotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgc2V0dXBfbm1pX3dhdGNoZG9nKGNoYXIgKnN0cikKLXsKLQlpbnQgbm1pOwotCi0JZ2V0X29wdGlvbigmc3RyLCAmbm1pKTsKLQotCWlmICgobm1pID49IE5NSV9JTlZBTElEKSB8fCAobm1pIDwgTk1JX05PTkUpKQotCQlyZXR1cm4gMDsKLQotCW5taV93YXRjaGRvZyA9IG5taTsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgibm1pX3dhdGNoZG9nPSIsIHNldHVwX25taV93YXRjaGRvZyk7Ci0KLQotLyogU3VzcGVuZC9yZXN1bWUgc3VwcG9ydCAqLwotCi0jaWZkZWYgQ09ORklHX1BNCi0KLXN0YXRpYyBpbnQgbm1pX3BtX2FjdGl2ZTsgLyogbm1pX2FjdGl2ZSBiZWZvcmUgc3VzcGVuZCAqLwotCi1zdGF0aWMgaW50IGxhcGljX25taV9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0Jbm1pX3BtX2FjdGl2ZSA9IGF0b21pY19yZWFkKCZubWlfYWN0aXZlKTsKLQlzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCUJVR19PTihhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgIT0gMCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbGFwaWNfbm1pX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQotewotCS8qIG9ubHkgQ1BVMCBnb2VzIGhlcmUsIG90aGVyIENQVXMgc2hvdWxkIGJlIG9mZmxpbmUgKi8KLQlpZiAobm1pX3BtX2FjdGl2ZSA+IDApIHsKLQkJc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2coTlVMTCk7Ci0JCXRvdWNoX25taV93YXRjaGRvZygpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBubWlfc3lzY2xhc3MgPSB7Ci0JLm5hbWUJCT0gImxhcGljX25taSIsCi0JLnJlc3VtZQkJPSBsYXBpY19ubWlfcmVzdW1lLAotCS5zdXNwZW5kCT0gbGFwaWNfbm1pX3N1c3BlbmQsCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2xhcGljX25taSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmbm1pX3N5c2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaW5pdF9sYXBpY19ubWlfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3I7Ci0KLQkvKiBzaG91bGQgcmVhbGx5IGJlIGEgQlVHX09OIGJ1dCBiL2MgdGhpcyBpcyBhbgotCSAqIGluaXQgY2FsbCwgaXQganVzdCBkb2Vzbid0IHdvcmsuICAtZGN6Ci0JICovCi0JaWYgKG5taV93YXRjaGRvZyAhPSBOTUlfTE9DQUxfQVBJQykKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCkKLQkJcmV0dXJuIDA7Ci0KLQllcnJvciA9IHN5c2Rldl9jbGFzc19yZWdpc3Rlcigmbm1pX3N5c2NsYXNzKTsKLQlpZiAoIWVycm9yKQotCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2xhcGljX25taSk7Ci0JcmV0dXJuIGVycm9yOwotfQotLyogbXVzdCBjb21lIGFmdGVyIHRoZSBsb2NhbCBBUElDJ3MgZGV2aWNlX2luaXRjYWxsKCkgKi8KLWxhdGVfaW5pdGNhbGwoaW5pdF9sYXBpY19ubWlfc3lzZnMpOwotCi0jZW5kaWYJLyogQ09ORklHX1BNICovCi0KLXN0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZW5hYmxlKHZvaWQgKl9fdW51c2VkKQotewotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkpOwotfQotCi0vKgotICogRW5hYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6Ci0gKi8KLXZvaWQgYWNwaV9ubWlfZW5hYmxlKHZvaWQpCi17Ci0JaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSAmJiBubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpCi0JCW9uX2VhY2hfY3B1KF9fYWNwaV9ubWlfZW5hYmxlLCBOVUxMLCAwLCAxKTsKLX0KLQotc3RhdGljIHZvaWQgX19hY3BpX25taV9kaXNhYmxlKHZvaWQgKl9fdW51c2VkKQotewotCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0RNX05NSSB8IEFQSUNfTFZUX01BU0tFRCk7Ci19Ci0KLS8qCi0gKiBEaXNhYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6Ci0gKi8KLXZvaWQgYWNwaV9ubWlfZGlzYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2Rpc2FibGUsIE5VTEwsIDAsIDEpOwotfQotCi12b2lkIHNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKLXsKLQlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuOwotCi0JLyogY2hlYXAgaGFjayB0byBzdXBwb3J0IHN1c3BlbmQvcmVzdW1lICovCi0JLyogaWYgY3B1MCBpcyBub3QgYWN0aXZlIG5laXRoZXIgc2hvdWxkIHRoZSBvdGhlciBjcHVzICovCi0JaWYgKChzbXBfcHJvY2Vzc29yX2lkKCkgIT0gMCkgJiYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8PSAwKSkKLQkJcmV0dXJuOwotCi0Jc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKLQljYXNlIE5NSV9MT0NBTF9BUElDOgotCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMTsgLyogZW5hYmxlIGl0IGJlZm9yZSB0byBhdm9pZCByYWNlIHdpdGggaGFuZGxlciAqLwotCQlpZiAobGFwaWNfd2F0Y2hkb2dfaW5pdChubWlfaHopIDwgMCkgewotCQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJLyogRkFMTCBUSFJPVUdIICovCi0JY2FzZSBOTUlfSU9fQVBJQzoKLQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7Ci0JCWF0b21pY19pbmMoJm5taV9hY3RpdmUpOwotCX0KLX0KLQotdm9pZCBzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKLXsKLQkvKiBvbmx5IHN1cHBvcnQgTE9DQUwgYW5kIElPIEFQSUNzIGZvciBub3cgKi8KLQlpZiAoKG5taV93YXRjaGRvZyAhPSBOTUlfTE9DQUxfQVBJQykgJiYKLQkgICAgKG5taV93YXRjaGRvZyAhPSBOTUlfSU9fQVBJQykpCi0JICAgIAlyZXR1cm47Ci0JaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPT0gMCkKLQkJcmV0dXJuOwotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCi0JCWxhcGljX3dhdGNoZG9nX3N0b3AoKTsKLQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMDsKLQlhdG9taWNfZGVjKCZubWlfYWN0aXZlKTsKLX0KLQotLyoKLSAqIHRoZSBiZXN0IHdheSB0byBkZXRlY3Qgd2hldGhlciBhIENQVSBoYXMgYSAnaGFyZCBsb2NrdXAnIHByb2JsZW0KLSAqIGlzIHRvIGNoZWNrIGl0J3MgbG9jYWwgQVBJQyB0aW1lciBJUlEgY291bnRzLiBJZiB0aGV5IGFyZSBub3QKLSAqIGNoYW5naW5nIHRoZW4gdGhhdCBDUFUgaGFzIHNvbWUgcHJvYmxlbS4KLSAqCi0gKiBhcyB0aGVzZSB3YXRjaGRvZyBOTUkgSVJRcyBhcmUgZ2VuZXJhdGVkIG9uIGV2ZXJ5IENQVSwgd2Ugb25seQotICogaGF2ZSB0byBjaGVjayB0aGUgY3VycmVudCBwcm9jZXNzb3IuCi0gKgotICogc2luY2UgTk1JcyBkb24ndCBsaXN0ZW4gdG8gX2FueV8gbG9ja3MsIHdlIGhhdmUgdG8gYmUgZXh0cmVtZWx5Ci0gKiBjYXJlZnVsIG5vdCB0byByZWx5IG9uIHVuc2FmZSB2YXJpYWJsZXMuIFRoZSBwcmludGsgbWlnaHQgbG9jawotICogdXAgdGhvdWdoLCBzbyB3ZSBoYXZlIHRvIGJyZWFrIHVwIGFueSBjb25zb2xlIGxvY2tzIGZpcnN0IC4uLgotICogW3doZW4gdGhlcmUgd2lsbCBiZSBtb3JlIHR0eS1yZWxhdGVkIGxvY2tzLCBicmVhayB0aGVtIHVwCi0gKiAgaGVyZSB0b28hXQotICovCi0KLXN0YXRpYyB1bnNpZ25lZCBpbnQKLQlsYXN0X2lycV9zdW1zIFtOUl9DUFVTXSwKLQlhbGVydF9jb3VudGVyIFtOUl9DUFVTXTsKLQotdm9pZCB0b3VjaF9ubWlfd2F0Y2hkb2codm9pZCkKLXsKLQlpZiAobm1pX3dhdGNoZG9nID4gMCkgewotCQl1bnNpZ25lZCBjcHU7Ci0KLQkJLyoKLQkJICogSnVzdCByZXNldCB0aGUgYWxlcnQgY291bnRlcnMsIChvdGhlciBDUFVzIG1pZ2h0IGJlCi0JCSAqIHNwaW5uaW5nIG9uIGxvY2tzIHdlIGhvbGQpOgotCQkgKi8KLQkJZm9yX2VhY2hfcHJlc2VudF9jcHUoY3B1KSB7Ci0JCQlpZiAoYWxlcnRfY291bnRlcltjcHVdKQotCQkJCWFsZXJ0X2NvdW50ZXJbY3B1XSA9IDA7Ci0JCX0KLQl9Ci0KLQkvKgotCSAqIFRpY2tsZSB0aGUgc29mdGxvY2t1cCBkZXRlY3RvciB0b286Ci0JICovCi0JdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwotfQotRVhQT1JUX1NZTUJPTCh0b3VjaF9ubWlfd2F0Y2hkb2cpOwotCi1leHRlcm4gdm9pZCBkaWVfbm1pKHN0cnVjdCBwdF9yZWdzICosIGNvbnN0IGNoYXIgKm1zZyk7Ci0KLW5vdHJhY2UgX19rcHJvYmVzIGludAotbm1pX3dhdGNoZG9nX3RpY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIHJlYXNvbikKLXsKLQotCS8qCi0JICogU2luY2UgY3VycmVudF90aHJlYWRfaW5mbygpLT4gaXMgYWx3YXlzIG9uIHRoZSBzdGFjaywgYW5kIHdlCi0JICogYWx3YXlzIHN3aXRjaCB0aGUgc3RhY2sgTk1JLWF0b21pY2FsbHksIGl0J3Mgc2FmZSB0byB1c2UKLQkgKiBzbXBfcHJvY2Vzc29yX2lkKCkuCi0JICovCi0JdW5zaWduZWQgaW50IHN1bTsKLQlpbnQgdG91Y2hlZCA9IDA7Ci0JaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQlpbnQgcmMgPSAwOwotCi0JLyogY2hlY2sgZm9yIG90aGVyIHVzZXJzIGZpcnN0ICovCi0JaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKQotCQkJPT0gTk9USUZZX1NUT1ApIHsKLQkJcmMgPSAxOwotCQl0b3VjaGVkID0gMTsKLQl9Ci0KLQlpZiAoY3B1X2lzc2V0KGNwdSwgYmFja3RyYWNlX21hc2spKSB7Ci0JCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CS8qIFNlcmlhbGlzZSB0aGUgcHJpbnRrcyAqLwotCi0JCXNwaW5fbG9jaygmbG9jayk7Ci0JCXByaW50aygiTk1JIGJhY2t0cmFjZSBmb3IgY3B1ICVkXG4iLCBjcHUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXNwaW5fdW5sb2NrKCZsb2NrKTsKLQkJY3B1X2NsZWFyKGNwdSwgYmFja3RyYWNlX21hc2spOwotCX0KLQotCS8qCi0JICogVGFrZSB0aGUgbG9jYWwgYXBpYyB0aW1lciBhbmQgUElUL0hQRVQgaW50byBhY2NvdW50LiBXZSBkb24ndAotCSAqIGtub3cgd2hpY2ggb25lIGlzIGFjdGl2ZSwgd2hlbiB3ZSBoYXZlIGhpZ2hyZXMvZHludGljayBvbgotCSAqLwotCXN1bSA9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuYXBpY190aW1lcl9pcnFzICsKLQkJcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5pcnEwX2lycXM7Ci0KLQkvKiBpZiB0aGUgbm9uZSBvZiB0aGUgdGltZXJzIGlzbid0IGZpcmluZywgdGhpcyBjcHUgaXNuJ3QgZG9pbmcgbXVjaCAqLwotCWlmICghdG91Y2hlZCAmJiBsYXN0X2lycV9zdW1zW2NwdV0gPT0gc3VtKSB7Ci0JCS8qCi0JCSAqIEF5aWVlLCBsb29rcyBsaWtlIHRoaXMgQ1BVIGlzIHN0dWNrIC4uLgotCQkgKiB3YWl0IGEgZmV3IElSUXMgKDUgc2Vjb25kcykgYmVmb3JlIGRvaW5nIHRoZSBvb3BzIC4uLgotCQkgKi8KLQkJYWxlcnRfY291bnRlcltjcHVdKys7Ci0JCWlmIChhbGVydF9jb3VudGVyW2NwdV0gPT0gNSpubWlfaHopCi0JCQkvKgotCQkJICogZGllX25taSB3aWxsIHJldHVybiBPTkxZIGlmIE5PVElGWV9TVE9QIGhhcHBlbnMuLgotCQkJICovCi0JCQlkaWVfbm1pKHJlZ3MsICJCVUc6IE5NSSBXYXRjaGRvZyBkZXRlY3RlZCBMT0NLVVAiKTsKLQl9IGVsc2UgewotCQlsYXN0X2lycV9zdW1zW2NwdV0gPSBzdW07Ci0JCWFsZXJ0X2NvdW50ZXJbY3B1XSA9IDA7Ci0JfQotCS8qIHNlZSBpZiB0aGUgbm1pIHdhdGNoZG9nIHdlbnQgb2ZmICovCi0JaWYgKCFfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpKQotCQlyZXR1cm4gcmM7Ci0Jc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKLQljYXNlIE5NSV9MT0NBTF9BUElDOgotCQlyYyB8PSBsYXBpY193ZF9ldmVudChubWlfaHopOwotCQlicmVhazsKLQljYXNlIE5NSV9JT19BUElDOgotCQkvKiBkb24ndCBrbm93IGhvdyB0byBhY2N1cmF0ZWx5IGNoZWNrIGZvciB0aGlzLgotCQkgKiBqdXN0IGFzc3VtZSBpdCB3YXMgYSB3YXRjaGRvZyB0aW1lciBpbnRlcnJ1cHQKLQkJICogVGhpcyBtYXRjaGVzIHRoZSBvbGQgYmVoYXZpb3VyLgotCQkgKi8KLQkJcmMgPSAxOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIHJjOwotfQotCi0jaWZkZWYgQ09ORklHX1NZU0NUTAotCi1zdGF0aWMgaW50IHVua25vd25fbm1pX3BhbmljX2NhbGxiYWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQotewotCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKLQljaGFyIGJ1Zls2NF07Ci0KLQlzcHJpbnRmKGJ1ZiwgIk5NSSByZWNlaXZlZCBmb3IgdW5rbm93biByZWFzb24gJTAyeFxuIiwgcmVhc29uKTsKLQlkaWVfbm1pKHJlZ3MsIGJ1Zik7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBwcm9jIGhhbmRsZXIgZm9yIC9wcm9jL3N5cy9rZXJuZWwvbm1pCi0gKi8KLWludCBwcm9jX25taV9lbmFibGVkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxlLAotCQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKLXsKLQlpbnQgb2xkX3N0YXRlOwotCi0Jbm1pX3dhdGNoZG9nX2VuYWJsZWQgPSAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpID4gMCkgPyAxIDogMDsKLQlvbGRfc3RhdGUgPSBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLQlwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlsZSwgYnVmZmVyLCBsZW5ndGgsIHBwb3MpOwotCWlmICghIW9sZF9zdGF0ZSA9PSAhIW5taV93YXRjaGRvZ19lbmFibGVkKQotCQlyZXR1cm4gMDsKLQotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPCAwIHx8IG5taV93YXRjaGRvZyA9PSBOTUlfRElTQUJMRUQpIHsKLQkJcHJpbnRrKCBLRVJOX1dBUk5JTkcgIk5NSSB3YXRjaGRvZyBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZFxuIik7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0RFRkFVTFQpIHsKLQkJaWYgKGxhcGljX3dhdGNoZG9nX29rKCkpCi0JCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKLQkJZWxzZQotCQkJbm1pX3dhdGNoZG9nID0gTk1JX0lPX0FQSUM7Ci0JfQotCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykgewotCQlpZiAobm1pX3dhdGNoZG9nX2VuYWJsZWQpCi0JCQllbmFibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7Ci0JCWVsc2UKLQkJCWRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7Ci0JfSBlbHNlIHsKLQkJcHJpbnRrKCBLRVJOX1dBUk5JTkcKLQkJCSJOTUkgd2F0Y2hkb2cgZG9lc24ndCBrbm93IHdoYXQgaGFyZHdhcmUgdG8gdG91Y2hcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgotCi1pbnQgZG9fbm1pX2NhbGxiYWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQotewotI2lmZGVmIENPTkZJR19TWVNDVEwKLQlpZiAodW5rbm93bl9ubWlfcGFuaWMpCi0JCXJldHVybiB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhyZWdzLCBjcHUpOwotI2VuZGlmCi0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgX190cmlnZ2VyX2FsbF9jcHVfYmFja3RyYWNlKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQliYWNrdHJhY2VfbWFzayA9IGNwdV9vbmxpbmVfbWFwOwotCS8qIFdhaXQgZm9yIHVwIHRvIDEwIHNlY29uZHMgZm9yIGFsbCBDUFVzIHRvIGRvIHRoZSBiYWNrdHJhY2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgMTAgKiAxMDAwOyBpKyspIHsKLQkJaWYgKGNwdXNfZW1wdHkoYmFja3RyYWNlX21hc2spKQotCQkJYnJlYWs7Ci0JCW1kZWxheSgxKTsKLQl9Ci19Ci0KLUVYUE9SVF9TWU1CT0wobm1pX2FjdGl2ZSk7Ci1FWFBPUlRfU1lNQk9MKG5taV93YXRjaGRvZyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbm1pXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbm1pXzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhMjlkZWQuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL25taV82NC5jCisrKyAvZGV2L251bGwKQEAgLTEsNDgyICswLDAgQEAKLS8qCi0gKiAgTk1JIHdhdGNoZG9nIHN1cHBvcnQgb24gQVBJQyBzeXN0ZW1zCi0gKgotICogIFN0YXJ0ZWQgYnkgSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+Ci0gKgotICogIEZpeGVzOgotICogIE1pa2FlbCBQZXR0ZXJzc29uCTogQU1EIEs3IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUG93ZXIgTWFuYWdlbWVudCBmb3IgbG9jYWwgQVBJQyBOTUkgd2F0Y2hkb2cuCi0gKiAgUGF2ZWwgTWFjaGVrIGFuZAotICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUE0gY29udmVydGVkIHRvIGRyaXZlciBtb2RlbC4gRGlzYWJsZS9lbmFibGUgQVBJLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9ubWkuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KLSNpbmNsdWRlIDxsaW51eC9rZGVidWcuaD4KLQotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vbm1pLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+Ci0jaW5jbHVkZSA8YXNtL21jZS5oPgotCi0jaW5jbHVkZSA8bWFjaF90cmFwcy5oPgotCi1pbnQgdW5rbm93bl9ubWlfcGFuaWM7Ci1pbnQgbm1pX3dhdGNoZG9nX2VuYWJsZWQ7Ci1pbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOwotCi1zdGF0aWMgY3B1bWFza190IGJhY2t0cmFjZV9tYXNrID0gQ1BVX01BU0tfTk9ORTsKLQotLyogbm1pX2FjdGl2ZToKLSAqID4wOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGFjdGl2ZSwgYnV0IGNhbiBiZSBkaXNhYmxlZAotICogPDA6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaGFzIG5vdCBiZWVuIHNldCB1cCwgYW5kIGNhbm5vdAotICogICAgIGJlIGVuYWJsZWQKLSAqICAwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGRpc2FibGVkLCBidXQgY2FuIGJlIGVuYWJsZWQKLSAqLwotYXRvbWljX3Qgbm1pX2FjdGl2ZSA9IEFUT01JQ19JTklUKDApOwkJLyogb3Byb2ZpbGUgdXNlcyB0aGlzICovCi1zdGF0aWMgaW50IHBhbmljX29uX3RpbWVvdXQ7Ci0KLXVuc2lnbmVkIGludCBubWlfd2F0Y2hkb2cgPSBOTUlfREVGQVVMVDsKLXN0YXRpYyB1bnNpZ25lZCBpbnQgbm1pX2h6ID0gSFo7Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzaG9ydCwgd2RfZW5hYmxlZCk7Ci0KLS8qIFJ1biBhZnRlciBjb21tYW5kIGxpbmUgYW5kIGNwdV9pbml0IGluaXQsIGJ1dCBiZWZvcmUgYWxsIG90aGVyIGNoZWNrcyAqLwotdm9pZCBubWlfd2F0Y2hkb2dfZGVmYXVsdCh2b2lkKQotewotCWlmIChubWlfd2F0Y2hkb2cgIT0gTk1JX0RFRkFVTFQpCi0JCXJldHVybjsKLQlubWlfd2F0Y2hkb2cgPSBOTUlfTk9ORTsKLX0KLQotc3RhdGljIGludCBlbmRmbGFnIF9faW5pdGRhdGEgPSAwOwotCi0jaWZkZWYgQ09ORklHX1NNUAotLyogVGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzIHVzZWQgYnkgTk1JX0xPQ0FMX0FQSUMgZG9uJ3QgdHJpZ2dlciB3aGVuCi0gKiB0aGUgQ1BVIGlzIGlkbGUuIFRvIG1ha2Ugc3VyZSB0aGUgTk1JIHdhdGNoZG9nIHJlYWxseSB0aWNrcyBvbiBhbGwKLSAqIENQVXMgZHVyaW5nIHRoZSB0ZXN0IG1ha2UgdGhlbSBidXN5LgotICovCi1zdGF0aWMgX19pbml0IHZvaWQgbm1pX2NwdV9idXN5KHZvaWQgKmRhdGEpCi17Ci0JbG9jYWxfaXJxX2VuYWJsZV9pbl9oYXJkaXJxKCk7Ci0JLyogSW50ZW50aW9uYWxseSBkb24ndCB1c2UgY3B1X3JlbGF4IGhlcmUuIFRoaXMgaXMKLQkgICB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGVyZm9ybWFuY2UgY291bnRlciByZWFsbHkgdGlja3MsCi0JICAgZXZlbiBpZiB0aGVyZSBpcyBhIHNpbXVsYXRvciBvciBzaW1pbGFyIHRoYXQgY2F0Y2hlcyB0aGUKLQkgICBwYXVzZSBpbnN0cnVjdGlvbi4gT24gYSByZWFsIEhUIG1hY2hpbmUgdGhpcyBpcyBmaW5lIGJlY2F1c2UKLQkgICBhbGwgb3RoZXIgQ1BVcyBhcmUgYnVzeSB3aXRoICJ1c2VsZXNzIiBkZWxheSBsb29wcyBhbmQgZG9uJ3QKLQkgICBjYXJlIGlmIHRoZXkgZ2V0IHNvbWV3aGF0IGxlc3MgY3ljbGVzLiAqLwotCXdoaWxlIChlbmRmbGFnID09IDApCi0JCW1iKCk7Ci19Ci0jZW5kaWYKLQotaW50IF9faW5pdCBjaGVja19ubWlfd2F0Y2hkb2codm9pZCkKLXsKLQlpbnQgKnByZXZfbm1pX2NvdW50OwotCWludCBjcHU7Ci0KLQlpZiAoKG5taV93YXRjaGRvZyA9PSBOTUlfTk9ORSkgfHwgKG5taV93YXRjaGRvZyA9PSBOTUlfRElTQUJMRUQpKQotCQlyZXR1cm4gMDsKLQotCWlmICghYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpKQotCQlyZXR1cm4gMDsKLQotCXByZXZfbm1pX2NvdW50ID0ga21hbGxvYyhOUl9DUFVTICogc2l6ZW9mKGludCksIEdGUF9LRVJORUwpOwotCWlmICghcHJldl9ubWlfY291bnQpCi0JCXJldHVybiAtMTsKLQotCXByaW50ayhLRVJOX0lORk8gIlRlc3RpbmcgTk1JIHdhdGNoZG9nIC4uLiAiKTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlzbXBfY2FsbF9mdW5jdGlvbihubWlfY3B1X2J1c3ksICh2b2lkICopJmVuZGZsYWcsIDAsIDApOwotI2VuZGlmCi0KLQlmb3IgKGNwdSA9IDA7IGNwdSA8IE5SX0NQVVM7IGNwdSsrKQotCQlwcmV2X25taV9jb3VudFtjcHVdID0gY3B1X3BkYShjcHUpLT5fX25taV9jb3VudDsKLQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JbWRlbGF5KCgyMCoxMDAwKS9ubWlfaHopOyAvLyB3YWl0IDIwIHRpY2tzCi0KLQlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewotCQlpZiAoIXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoY3B1X3BkYShjcHUpLT5fX25taV9jb3VudCAtIHByZXZfbm1pX2NvdW50W2NwdV0gPD0gNSkgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiV0FSTklORzogQ1BVIyVkOiBOTUkgIgotCQkJICAgICAgICJhcHBlYXJzIHRvIGJlIHN0dWNrICglZC0+JWQpIVxuIiwKLQkJCQljcHUsCi0JCQkJcHJldl9ubWlfY291bnRbY3B1XSwKLQkJCQljcHVfcGRhKGNwdSktPl9fbm1pX2NvdW50KTsKLQkJCXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSA9IDA7Ci0JCQlhdG9taWNfZGVjKCZubWlfYWN0aXZlKTsKLQkJfQotCX0KLQllbmRmbGFnID0gMTsKLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkgewotCQlrZnJlZShwcmV2X25taV9jb3VudCk7Ci0JCWF0b21pY19zZXQoJm5taV9hY3RpdmUsIC0xKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlwcmludGsoIk9LLlxuIik7Ci0KLQkvKiBub3cgdGhhdCB3ZSBrbm93IGl0IHdvcmtzIHdlIGNhbiByZWR1Y2UgTk1JIGZyZXF1ZW5jeSB0bwotCSAgIHNvbWV0aGluZyBtb3JlIHJlYXNvbmFibGU7IG1ha2VzIGEgZGlmZmVyZW5jZSBpbiBzb21lIGNvbmZpZ3MgKi8KLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlubWlfaHogPSBsYXBpY19hZGp1c3Rfbm1pX2h6KDEpOwotCi0Ja2ZyZWUocHJldl9ubWlfY291bnQpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9ubWlfd2F0Y2hkb2coY2hhciAqc3RyKQotewotCWludCBubWk7Ci0KLQlpZiAoIXN0cm5jbXAoc3RyLCJwYW5pYyIsNSkpIHsKLQkJcGFuaWNfb25fdGltZW91dCA9IDE7Ci0JCXN0ciA9IHN0cmNocihzdHIsICcsJyk7Ci0JCWlmICghc3RyKQotCQkJcmV0dXJuIDE7Ci0JCSsrc3RyOwotCX0KLQotCWdldF9vcHRpb24oJnN0ciwgJm5taSk7Ci0KLQlpZiAoKG5taSA+PSBOTUlfSU5WQUxJRCkgfHwgKG5taSA8IE5NSV9OT05FKSkKLQkJcmV0dXJuIDA7Ci0KLQlubWlfd2F0Y2hkb2cgPSBubWk7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoIm5taV93YXRjaGRvZz0iLCBzZXR1cF9ubWlfd2F0Y2hkb2cpOwotCi0jaWZkZWYgQ09ORklHX1BNCi0KLXN0YXRpYyBpbnQgbm1pX3BtX2FjdGl2ZTsgLyogbm1pX2FjdGl2ZSBiZWZvcmUgc3VzcGVuZCAqLwotCi1zdGF0aWMgaW50IGxhcGljX25taV9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0Jbm1pX3BtX2FjdGl2ZSA9IGF0b21pY19yZWFkKCZubWlfYWN0aXZlKTsKLQlzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCUJVR19PTihhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgIT0gMCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbGFwaWNfbm1pX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQotewotCS8qIG9ubHkgQ1BVMCBnb2VzIGhlcmUsIG90aGVyIENQVXMgc2hvdWxkIGJlIG9mZmxpbmUgKi8KLQlpZiAobm1pX3BtX2FjdGl2ZSA+IDApIHsKLQkJc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2coTlVMTCk7Ci0JCXRvdWNoX25taV93YXRjaGRvZygpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgbm1pX3N5c2NsYXNzID0gewotCS5uYW1lCQk9ICJsYXBpY19ubWkiLAotCS5yZXN1bWUJCT0gbGFwaWNfbm1pX3Jlc3VtZSwKLQkuc3VzcGVuZAk9IGxhcGljX25taV9zdXNwZW5kLAotfTsKLQotc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9sYXBpY19ubWkgPSB7Ci0JLmlkCT0gMCwKLQkuY2xzCT0gJm5taV9zeXNjbGFzcywKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGluaXRfbGFwaWNfbm1pX3N5c2ZzKHZvaWQpCi17Ci0JaW50IGVycm9yOwotCi0JLyogc2hvdWxkIHJlYWxseSBiZSBhIEJVR19PTiBidXQgYi9jIHRoaXMgaXMgYW4KLQkgKiBpbml0IGNhbGwsIGl0IGp1c3QgZG9lc24ndCB3b3JrLiAgLWRjegotCSAqLwotCWlmIChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpCi0JCXJldHVybiAwOwotCi0JaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDApCi0JCXJldHVybiAwOwotCi0JZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJm5taV9zeXNjbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9sYXBpY19ubWkpOwotCXJldHVybiBlcnJvcjsKLX0KLS8qIG11c3QgY29tZSBhZnRlciB0aGUgbG9jYWwgQVBJQydzIGRldmljZV9pbml0Y2FsbCgpICovCi1sYXRlX2luaXRjYWxsKGluaXRfbGFwaWNfbm1pX3N5c2ZzKTsKLQotI2VuZGlmCS8qIENPTkZJR19QTSAqLwotCi1zdGF0aWMgdm9pZCBfX2FjcGlfbm1pX2VuYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkpOwotfQotCi0vKgotICogRW5hYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6Ci0gKi8KLXZvaWQgYWNwaV9ubWlfZW5hYmxlKHZvaWQpCi17Ci0JaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSAmJiBubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpCi0JCW9uX2VhY2hfY3B1KF9fYWNwaV9ubWlfZW5hYmxlLCBOVUxMLCAwLCAxKTsKLX0KLQotc3RhdGljIHZvaWQgX19hY3BpX25taV9kaXNhYmxlKHZvaWQgKl9fdW51c2VkKQotewotCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0RNX05NSSB8IEFQSUNfTFZUX01BU0tFRCk7Ci19Ci0KLS8qCi0gKiBEaXNhYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6Ci0gKi8KLXZvaWQgYWNwaV9ubWlfZGlzYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2Rpc2FibGUsIE5VTEwsIDAsIDEpOwotfQotCi12b2lkIHNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKLXsKLQlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuOwotCi0JLyogY2hlYXAgaGFjayB0byBzdXBwb3J0IHN1c3BlbmQvcmVzdW1lICovCi0JLyogaWYgY3B1MCBpcyBub3QgYWN0aXZlIG5laXRoZXIgc2hvdWxkIHRoZSBvdGhlciBjcHVzICovCi0JaWYgKChzbXBfcHJvY2Vzc29yX2lkKCkgIT0gMCkgJiYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8PSAwKSkKLQkJcmV0dXJuOwotCi0Jc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKLQljYXNlIE5NSV9MT0NBTF9BUElDOgotCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMTsKLQkJaWYgKGxhcGljX3dhdGNoZG9nX2luaXQobm1pX2h6KSA8IDApIHsKLQkJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOwotCQkJcmV0dXJuOwotCQl9Ci0JCS8qIEZBTEwgVEhST1VHSCAqLwotCWNhc2UgTk1JX0lPX0FQSUM6Ci0JCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOwotCQlhdG9taWNfaW5jKCZubWlfYWN0aXZlKTsKLQl9Ci19Ci0KLXZvaWQgc3RvcF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JLyogb25seSBzdXBwb3J0IExPQ0FMIGFuZCBJTyBBUElDcyBmb3Igbm93ICovCi0JaWYgKChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpICYmCi0JICAgIChubWlfd2F0Y2hkb2cgIT0gTk1JX0lPX0FQSUMpKQotCSAgICAJcmV0dXJuOwotCWlmIChfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID09IDApCi0JCXJldHVybjsKLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlsYXBpY193YXRjaGRvZ19zdG9wKCk7Ci0JX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7Ci0JYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci19Ci0KLS8qCi0gKiB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgYSBDUFUgaGFzIGEgJ2hhcmQgbG9ja3VwJyBwcm9ibGVtCi0gKiBpcyB0byBjaGVjayBpdCdzIGxvY2FsIEFQSUMgdGltZXIgSVJRIGNvdW50cy4gSWYgdGhleSBhcmUgbm90Ci0gKiBjaGFuZ2luZyB0aGVuIHRoYXQgQ1BVIGhhcyBzb21lIHByb2JsZW0uCi0gKgotICogYXMgdGhlc2Ugd2F0Y2hkb2cgTk1JIElSUXMgYXJlIGdlbmVyYXRlZCBvbiBldmVyeSBDUFUsIHdlIG9ubHkKLSAqIGhhdmUgdG8gY2hlY2sgdGhlIGN1cnJlbnQgcHJvY2Vzc29yLgotICovCi0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCwgbGFzdF9pcnFfc3VtKTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShsb2NhbF90LCBhbGVydF9jb3VudGVyKTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIG5taV90b3VjaCk7Ci0KLXZvaWQgdG91Y2hfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JaWYgKG5taV93YXRjaGRvZyA+IDApIHsKLQkJdW5zaWduZWQgY3B1OwotCi0JCS8qCi0gCQkgKiBUZWxsIG90aGVyIENQVXMgdG8gcmVzZXQgdGhlaXIgYWxlcnQgY291bnRlcnMuIFdlIGNhbm5vdAotCQkgKiBkbyBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxlcnQgY291bnQgaW5jcmVhc2UgaXMgbm90Ci0JCSAqIGF0b21pYy4KLQkJICovCi0JCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgewotCQkJaWYgKHBlcl9jcHUobm1pX3RvdWNoLCBjcHUpICE9IDEpCi0JCQkJcGVyX2NwdShubWlfdG91Y2gsIGNwdSkgPSAxOwotCQl9Ci0JfQotCi0JdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwotfQotRVhQT1JUX1NZTUJPTCh0b3VjaF9ubWlfd2F0Y2hkb2cpOwotCi1ub3RyYWNlIF9fa3Byb2JlcyBpbnQKLW5taV93YXRjaGRvZ190aWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCByZWFzb24pCi17Ci0JaW50IHN1bTsKLQlpbnQgdG91Y2hlZCA9IDA7Ci0JaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQlpbnQgcmMgPSAwOwotCi0JLyogY2hlY2sgZm9yIG90aGVyIHVzZXJzIGZpcnN0ICovCi0JaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKQotCQkJPT0gTk9USUZZX1NUT1ApIHsKLQkJcmMgPSAxOwotCQl0b3VjaGVkID0gMTsKLQl9Ci0KLQlzdW0gPSByZWFkX3BkYShhcGljX3RpbWVyX2lycXMpICsgcmVhZF9wZGEoaXJxMF9pcnFzKTsKLQlpZiAoX19nZXRfY3B1X3ZhcihubWlfdG91Y2gpKSB7Ci0JCV9fZ2V0X2NwdV92YXIobm1pX3RvdWNoKSA9IDA7Ci0JCXRvdWNoZWQgPSAxOwotCX0KLQotCWlmIChjcHVfaXNzZXQoY3B1LCBiYWNrdHJhY2VfbWFzaykpIHsKLQkJc3RhdGljIERFRklORV9TUElOTE9DSyhsb2NrKTsJLyogU2VyaWFsaXNlIHRoZSBwcmludGtzICovCi0KLQkJc3Bpbl9sb2NrKCZsb2NrKTsKLQkJcHJpbnRrKCJOTUkgYmFja3RyYWNlIGZvciBjcHUgJWRcbiIsIGNwdSk7Ci0JCWR1bXBfc3RhY2soKTsKLQkJc3Bpbl91bmxvY2soJmxvY2spOwotCQljcHVfY2xlYXIoY3B1LCBiYWNrdHJhY2VfbWFzayk7Ci0JfQotCi0jaWZkZWYgQ09ORklHX1g4Nl9NQ0UKLQkvKiBDb3VsZCBjaGVjayBvb3BzX2luX3Byb2dyZXNzIGhlcmUgdG9vLCBidXQgaXQncyBzYWZlcgotCSAgIG5vdCB0b28gKi8KLQlpZiAoYXRvbWljX3JlYWQoJm1jZV9lbnRyeSkgPiAwKQotCQl0b3VjaGVkID0gMTsKLSNlbmRpZgotCS8qIGlmIHRoZSBhcGljIHRpbWVyIGlzbid0IGZpcmluZywgdGhpcyBjcHUgaXNuJ3QgZG9pbmcgbXVjaCAqLwotCWlmICghdG91Y2hlZCAmJiBfX2dldF9jcHVfdmFyKGxhc3RfaXJxX3N1bSkgPT0gc3VtKSB7Ci0JCS8qCi0JCSAqIEF5aWVlLCBsb29rcyBsaWtlIHRoaXMgQ1BVIGlzIHN0dWNrIC4uLgotCQkgKiB3YWl0IGEgZmV3IElSUXMgKDUgc2Vjb25kcykgYmVmb3JlIGRvaW5nIHRoZSBvb3BzIC4uLgotCQkgKi8KLQkJbG9jYWxfaW5jKCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpKTsKLQkJaWYgKGxvY2FsX3JlYWQoJl9fZ2V0X2NwdV92YXIoYWxlcnRfY291bnRlcikpID09IDUqbm1pX2h6KQotCQkJZGllX25taSgiTk1JIFdhdGNoZG9nIGRldGVjdGVkIExPQ0tVUCBvbiBDUFUgJWRcbiIsIHJlZ3MsCi0JCQkJcGFuaWNfb25fdGltZW91dCk7Ci0JfSBlbHNlIHsKLQkJX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID0gc3VtOwotCQlsb2NhbF9zZXQoJl9fZ2V0X2NwdV92YXIoYWxlcnRfY291bnRlciksIDApOwotCX0KLQotCS8qIHNlZSBpZiB0aGUgbm1pIHdhdGNoZG9nIHdlbnQgb2ZmICovCi0JaWYgKCFfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpKQotCQlyZXR1cm4gcmM7Ci0Jc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKLQljYXNlIE5NSV9MT0NBTF9BUElDOgotCQlyYyB8PSBsYXBpY193ZF9ldmVudChubWlfaHopOwotCQlicmVhazsKLQljYXNlIE5NSV9JT19BUElDOgotCQkvKiBkb24ndCBrbm93IGhvdyB0byBhY2N1cmF0ZWx5IGNoZWNrIGZvciB0aGlzLgotCQkgKiBqdXN0IGFzc3VtZSBpdCB3YXMgYSB3YXRjaGRvZyB0aW1lciBpbnRlcnJ1cHQKLQkJICogVGhpcyBtYXRjaGVzIHRoZSBvbGQgYmVoYXZpb3VyLgotCQkgKi8KLQkJcmMgPSAxOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIHJjOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaWdub3JlX25taXM7Ci0KLWFzbWxpbmthZ2Ugbm90cmFjZSBfX2twcm9iZXMgdm9pZAotZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCi17Ci0Jbm1pX2VudGVyKCk7Ci0JYWRkX3BkYShfX25taV9jb3VudCwxKTsKLQlpZiAoIWlnbm9yZV9ubWlzKQotCQlkZWZhdWx0X2RvX25taShyZWdzKTsKLQlubWlfZXhpdCgpOwotfQotCi12b2lkIHN0b3Bfbm1pKHZvaWQpCi17Ci0JYWNwaV9ubWlfZGlzYWJsZSgpOwotCWlnbm9yZV9ubWlzKys7Ci19Ci0KLXZvaWQgcmVzdGFydF9ubWkodm9pZCkKLXsKLQlpZ25vcmVfbm1pcy0tOwotCWFjcGlfbm1pX2VuYWJsZSgpOwotfQotCi0jaWZkZWYgQ09ORklHX1NZU0NUTAotCi1zdGF0aWMgaW50IHVua25vd25fbm1pX3BhbmljX2NhbGxiYWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQotewotCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKLQljaGFyIGJ1Zls2NF07Ci0KLQlzcHJpbnRmKGJ1ZiwgIk5NSSByZWNlaXZlZCBmb3IgdW5rbm93biByZWFzb24gJTAyeFxuIiwgcmVhc29uKTsKLQlkaWVfbm1pKGJ1ZiwgcmVncywgMSk7CS8qIEFsd2F5cyBwYW5pYyBoZXJlICovCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBwcm9jIGhhbmRsZXIgZm9yIC9wcm9jL3N5cy9rZXJuZWwvbm1pCi0gKi8KLWludCBwcm9jX25taV9lbmFibGVkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxlLAotCQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKLXsKLQlpbnQgb2xkX3N0YXRlOwotCi0Jbm1pX3dhdGNoZG9nX2VuYWJsZWQgPSAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpID4gMCkgPyAxIDogMDsKLQlvbGRfc3RhdGUgPSBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLQlwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlsZSwgYnVmZmVyLCBsZW5ndGgsIHBwb3MpOwotCWlmICghIW9sZF9zdGF0ZSA9PSAhIW5taV93YXRjaGRvZ19lbmFibGVkKQotCQlyZXR1cm4gMDsKLQotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPCAwIHx8IG5taV93YXRjaGRvZyA9PSBOTUlfRElTQUJMRUQpIHsKLQkJcHJpbnRrKCBLRVJOX1dBUk5JTkcgIk5NSSB3YXRjaGRvZyBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZFxuIik7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCS8qIGlmIG5taV93YXRjaGRvZyBpcyBub3Qgc2V0IHlldCwgdGhlbiBzZXQgaXQgKi8KLQlubWlfd2F0Y2hkb2dfZGVmYXVsdCgpOwotCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykgewotCQlpZiAobm1pX3dhdGNoZG9nX2VuYWJsZWQpCi0JCQllbmFibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7Ci0JCWVsc2UKLQkJCWRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7Ci0JfSBlbHNlIHsKLQkJcHJpbnRrKCBLRVJOX1dBUk5JTkcKLQkJCSJOTUkgd2F0Y2hkb2cgZG9lc24ndCBrbm93IHdoYXQgaGFyZHdhcmUgdG8gdG91Y2hcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgotCi1pbnQgZG9fbm1pX2NhbGxiYWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQotewotI2lmZGVmIENPTkZJR19TWVNDVEwKLQlpZiAodW5rbm93bl9ubWlfcGFuaWMpCi0JCXJldHVybiB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhyZWdzLCBjcHUpOwotI2VuZGlmCi0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgX190cmlnZ2VyX2FsbF9jcHVfYmFja3RyYWNlKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQliYWNrdHJhY2VfbWFzayA9IGNwdV9vbmxpbmVfbWFwOwotCS8qIFdhaXQgZm9yIHVwIHRvIDEwIHNlY29uZHMgZm9yIGFsbCBDUFVzIHRvIGRvIHRoZSBiYWNrdHJhY2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgMTAgKiAxMDAwOyBpKyspIHsKLQkJaWYgKGNwdXNfZW1wdHkoYmFja3RyYWNlX21hc2spKQotCQkJYnJlYWs7Ci0JCW1kZWxheSgxKTsKLQl9Ci19Ci0KLUVYUE9SVF9TWU1CT0wobm1pX2FjdGl2ZSk7Ci1FWFBPUlRfU1lNQk9MKG5taV93YXRjaGRvZyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9udW1hcV8zMi5jCmluZGV4IGU2NTI4MWIuLjViMjBhNWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9udW1hcV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9udW1hcV8zMi5jCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8YXNtL251bWFxLmg+CiAjaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgogCiAjZGVmaW5lCU1CX1RPX1BBR0VTKGFkZHIpICgoYWRkcikgPDwgKDIwIC0gUEFHRV9TSElGVCkpCiAKQEAgLTU4LDYgKzYwLDggQEAKIAkJCW5vZGVfZW5kX3Bmbltub2RlXSA9IE1CX1RPX1BBR0VTKAogCQkJCWVxLT5oaV9zaHJkX21lbV9zdGFydCArIGVxLT5oaV9zaHJkX21lbV9zaXplKTsKIAorCQkJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucyhub2RlLCBub2RlX3N0YXJ0X3Bmbltub2RlXSwKKwkJCQkJCQlub2RlX2VuZF9wZm5bbm9kZV0pOwogCQkJbWVtb3J5X3ByZXNlbnQobm9kZSwKIAkJCQlub2RlX3N0YXJ0X3Bmbltub2RlXSwgbm9kZV9lbmRfcGZuW25vZGVdKTsKIAkJCW5vZGVfcmVtYXBfc2l6ZVtub2RlXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobm9kZSwKQEAgLTY3LDIzICs3MSwzNSBAQAogCX0KIH0KIAotLyoKLSAqIFVubGlrZSBTdW1taXQsIHdlIGRvbid0IHJlYWxseSBjYXJlIHRvIGxldCB0aGUgTlVNQS1RCi0gKiBmYWxsIGJhY2sgdG8gZmxhdCBtb2RlLiAgRG9uJ3QgY29tcGlsZSBmb3IgTlVNQS1RCi0gKiB1bmxlc3MgeW91IHJlYWxseSBuZWVkIGl0IQotICovCitzdGF0aWMgX19pbml0IHZvaWQgZWFybHlfY2hlY2tfbnVtYXEodm9pZCkKK3sKKwkvKgorCSAqIEZpbmQgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgorCSAqLworCWVhcmx5X2ZpbmRfc21wX2NvbmZpZygpOworCS8qCisJICogZ2V0IGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKKwkgKi8KKwlpZiAoc21wX2ZvdW5kX2NvbmZpZykKKwkJZWFybHlfZ2V0X3NtcF9jb25maWcoKTsKK30KKwogaW50IF9faW5pdCBnZXRfbWVtY2ZnX251bWFxKHZvaWQpCiB7CisJZWFybHlfY2hlY2tfbnVtYXEoKTsKKwlpZiAoIWZvdW5kX251bWFxKQorCQlyZXR1cm4gMDsKIAlzbXBfZHVtcF9xY3QoKTsKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgbnVtYXFfdHNjX2Rpc2FibGUodm9pZCkKK3ZvaWQgX19pbml0IG51bWFxX3RzY19kaXNhYmxlKHZvaWQpCiB7CisJaWYgKCFmb3VuZF9udW1hcSkKKwkJcmV0dXJuIC0xOworCiAJaWYgKG51bV9vbmxpbmVfbm9kZXMoKSA+IDEpIHsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIk5VTUFROiBkaXNhYmxpbmcgVFNDXG4iKTsKIAkJc2V0dXBfY2xlYXJfY3B1X2NhcChYODZfRkVBVFVSRV9UU0MpOwogCX0KLQlyZXR1cm4gMDsKIH0KLWFyY2hfaW5pdGNhbGwobnVtYXFfdHNjX2Rpc2FibGUpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYwppbmRleCA3NGYwYzVlLi5lMGY1NzFkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CiAjaW5jbHVkZSA8YXNtL3RpbWUuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vZGVsYXkuaD4KICNpbmNsdWRlIDxhc20vZml4bWFwLmg+CkBAIC0xMzksNyArMTQwLDkgQEAKIAkJLyogSWYgdGhlIG9wZXJhdGlvbiBpcyBhIG5vcCwgdGhlbiBub3AgdGhlIGNhbGxzaXRlICovCiAJCXJldCA9IHBhcmF2aXJ0X3BhdGNoX25vcCgpOwogCWVsc2UgaWYgKHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcmV0KSB8fAotCQkgdHlwZSA9PSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzY2FsbF9yZXQpKQorCQkgdHlwZSA9PSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzZXhpdCkgfHwKKwkJIHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy51c2VyZ3Nfc3lzcmV0MzIpIHx8CisJCSB0eXBlID09IFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMudXNlcmdzX3N5c3JldDY0KSkKIAkJLyogSWYgb3BlcmF0aW9uIHJlcXVpcmVzIGEgam1wLCB0aGVuIGptcCAqLwogCQlyZXQgPSBwYXJhdmlydF9wYXRjaF9qbXAoaW5zbmJ1Ziwgb3BmdW5jLCBhZGRyLCBsZW4pOwogCWVsc2UKQEAgLTE5MCw3ICsxOTMsOSBAQAogCiAvKiBUaGVzZSBhcmUgaW4gZW50cnkuUyAqLwogZXh0ZXJuIHZvaWQgbmF0aXZlX2lyZXQodm9pZCk7Ci1leHRlcm4gdm9pZCBuYXRpdmVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCh2b2lkKTsKK2V4dGVybiB2b2lkIG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2V4aXQodm9pZCk7CitleHRlcm4gdm9pZCBuYXRpdmVfdXNlcmdzX3N5c3JldDMyKHZvaWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX3VzZXJnc19zeXNyZXQ2NCh2b2lkKTsKIAogc3RhdGljIGludCBfX2luaXQgcHJpbnRfYmFubmVyKHZvaWQpCiB7CkBAIC0yODAsNyArMjg1LDcgQEAKIAkuZ2V0X3dhbGxjbG9jayA9IG5hdGl2ZV9nZXRfd2FsbGNsb2NrLAogCS5zZXRfd2FsbGNsb2NrID0gbmF0aXZlX3NldF93YWxsY2xvY2ssCiAJLnNjaGVkX2Nsb2NrID0gbmF0aXZlX3NjaGVkX2Nsb2NrLAotCS5nZXRfY3B1X2toeiA9IG5hdGl2ZV9jYWxjdWxhdGVfY3B1X2toeiwKKwkuZ2V0X3RzY19raHogPSBuYXRpdmVfY2FsaWJyYXRlX3RzYywKIH07CiAKIHN0cnVjdCBwdl9pcnFfb3BzIHB2X2lycV9vcHMgPSB7CkBAIC0yOTEsNiArMjk2LDkgQEAKIAkuaXJxX2VuYWJsZSA9IG5hdGl2ZV9pcnFfZW5hYmxlLAogCS5zYWZlX2hhbHQgPSBuYXRpdmVfc2FmZV9oYWx0LAogCS5oYWx0ID0gbmF0aXZlX2hhbHQsCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCS5hZGp1c3RfZXhjZXB0aW9uX2ZyYW1lID0gcGFyYXZpcnRfbm9wLAorI2VuZGlmCiB9OwogCiBzdHJ1Y3QgcHZfY3B1X29wcyBwdl9jcHVfb3BzID0gewpAQCAtMzIxLDEyICszMjksMjMgQEAKIAkuc3RvcmVfaWR0ID0gbmF0aXZlX3N0b3JlX2lkdCwKIAkuc3RvcmVfdHIgPSBuYXRpdmVfc3RvcmVfdHIsCiAJLmxvYWRfdGxzID0gbmF0aXZlX2xvYWRfdGxzLAorI2lmZGVmIENPTkZJR19YODZfNjQKKwkubG9hZF9nc19pbmRleCA9IG5hdGl2ZV9sb2FkX2dzX2luZGV4LAorI2VuZGlmCiAJLndyaXRlX2xkdF9lbnRyeSA9IG5hdGl2ZV93cml0ZV9sZHRfZW50cnksCiAJLndyaXRlX2dkdF9lbnRyeSA9IG5hdGl2ZV93cml0ZV9nZHRfZW50cnksCiAJLndyaXRlX2lkdF9lbnRyeSA9IG5hdGl2ZV93cml0ZV9pZHRfZW50cnksCiAJLmxvYWRfc3AwID0gbmF0aXZlX2xvYWRfc3AwLAogCi0JLmlycV9lbmFibGVfc3lzY2FsbF9yZXQgPSBuYXRpdmVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfMzIpIHx8IGRlZmluZWQoQ09ORklHX0lBMzJfRU1VTEFUSU9OKQorCS5pcnFfZW5hYmxlX3N5c2V4aXQgPSBuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0LAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl82NAorI2lmZGVmIENPTkZJR19JQTMyX0VNVUxBVElPTgorCS51c2VyZ3Nfc3lzcmV0MzIgPSBuYXRpdmVfdXNlcmdzX3N5c3JldDMyLAorI2VuZGlmCisJLnVzZXJnc19zeXNyZXQ2NCA9IG5hdGl2ZV91c2VyZ3Nfc3lzcmV0NjQsCisjZW5kaWYKIAkuaXJldCA9IG5hdGl2ZV9pcmV0LAogCS5zd2FwZ3MgPSBuYXRpdmVfc3dhcGdzLAogCkBAIC0zNjYsNiArMzg1LDkgQEAKIAkuZmx1c2hfdGxiX3NpbmdsZSA9IG5hdGl2ZV9mbHVzaF90bGJfc2luZ2xlLAogCS5mbHVzaF90bGJfb3RoZXJzID0gbmF0aXZlX2ZsdXNoX3RsYl9vdGhlcnMsCiAKKwkucGdkX2FsbG9jID0gX19wYXJhdmlydF9wZ2RfYWxsb2MsCisJLnBnZF9mcmVlID0gcGFyYXZpcnRfbm9wLAorCiAJLmFsbG9jX3B0ZSA9IHBhcmF2aXJ0X25vcCwKIAkuYWxsb2NfcG1kID0gcGFyYXZpcnRfbm9wLAogCS5hbGxvY19wbWRfY2xvbmUgPSBwYXJhdmlydF9ub3AsCkBAIC0zODAsNiArNDAyLDkgQEAKIAkucHRlX3VwZGF0ZSA9IHBhcmF2aXJ0X25vcCwKIAkucHRlX3VwZGF0ZV9kZWZlciA9IHBhcmF2aXJ0X25vcCwKIAorCS5wdGVwX21vZGlmeV9wcm90X3N0YXJ0ID0gX19wdGVwX21vZGlmeV9wcm90X3N0YXJ0LAorCS5wdGVwX21vZGlmeV9wcm90X2NvbW1pdCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQsCisKICNpZmRlZiBDT05GSUdfSElHSFBURQogCS5rbWFwX2F0b21pY19wdGUgPSBrbWFwX2F0b21pYywKICNlbmRpZgpAQCAtNDAzLDYgKzQyOCw3IEBACiAjZW5kaWYgLyogUEFHRVRBQkxFX0xFVkVMUyA+PSAzICovCiAKIAkucHRlX3ZhbCA9IG5hdGl2ZV9wdGVfdmFsLAorCS5wdGVfZmxhZ3MgPSBuYXRpdmVfcHRlX3ZhbCwKIAkucGdkX3ZhbCA9IG5hdGl2ZV9wZ2RfdmFsLAogCiAJLm1ha2VfcHRlID0gbmF0aXZlX21ha2VfcHRlLApAQCAtNDE2LDYgKzQ0Miw4IEBACiAJCS5lbnRlciA9IHBhcmF2aXJ0X25vcCwKIAkJLmxlYXZlID0gcGFyYXZpcnRfbm9wLAogCX0sCisKKwkuc2V0X2ZpeG1hcCA9IG5hdGl2ZV9zZXRfZml4bWFwLAogfTsKIAogRVhQT1JUX1NZTUJPTF9HUEwocHZfdGltZV9vcHMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfMzIuYwppbmRleCA4MmZjNWZjLi41ODI2MjIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfMzIuYwpAQCAtNSw3ICs1LDcgQEAKIERFRl9OQVRJVkUocHZfaXJxX29wcywgcmVzdG9yZV9mbCwgInB1c2ggJWVheDsgcG9wZiIpOwogREVGX05BVElWRShwdl9pcnFfb3BzLCBzYXZlX2ZsLCAicHVzaGY7IHBvcCAlZWF4Iik7CiBERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlyZXQsICJpcmV0Iik7Ci1ERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQsICJzdGk7IHN5c2V4aXQiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNleGl0LCAic3RpOyBzeXNleGl0Iik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHJlYWRfY3IyLCAibW92ICVjcjIsICVlYXgiKTsKIERFRl9OQVRJVkUocHZfbW11X29wcywgd3JpdGVfY3IzLCAibW92ICVlYXgsICVjcjMiKTsKIERFRl9OQVRJVkUocHZfbW11X29wcywgcmVhZF9jcjMsICJtb3YgJWNyMywgJWVheCIpOwpAQCAtMjksNyArMjksNyBAQAogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMsIHJlc3RvcmVfZmwpOwogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMsIHNhdmVfZmwpOwogCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIGlyZXQpOwotCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQpOworCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCk7CiAJCVBBVENIX1NJVEUocHZfbW11X29wcywgcmVhZF9jcjIpOwogCQlQQVRDSF9TSVRFKHB2X21tdV9vcHMsIHJlYWRfY3IzKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCB3cml0ZV9jcjMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfNjQuYwppbmRleCA3ZDkwNGUxLi4wNjFkMDFkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfNjQuYwpAQCAtMTQsOCArMTQsOSBAQAogREVGX05BVElWRShwdl9jcHVfb3BzLCBjbHRzLCAiY2x0cyIpOwogREVGX05BVElWRShwdl9jcHVfb3BzLCB3YmludmQsICJ3YmludmQiKTsKIAotLyogdGhlIHRocmVlIGNvbW1hbmRzIGdpdmUgdXMgbW9yZSBjb250cm9sIHRvIGhvdyB0byByZXR1cm4gZnJvbSBhIHN5c2NhbGwgKi8KLURFRl9OQVRJVkUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwgIm1vdnEgJWdzOiIgX19zdHJpbmdpZnkocGRhX29sZHJzcCkgIiwgJXJzcDsgc3dhcGdzOyBzeXNyZXRxOyIpOworREVGX05BVElWRShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQsICJzd2FwZ3M7IHN0aTsgc3lzZXhpdCIpOworREVGX05BVElWRShwdl9jcHVfb3BzLCB1c2VyZ3Nfc3lzcmV0NjQsICJzd2FwZ3M7IHN5c3JldHEiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgdXNlcmdzX3N5c3JldDMyLCAic3dhcGdzOyBzeXNyZXRsIik7CiBERUZfTkFUSVZFKHB2X2NwdV9vcHMsIHN3YXBncywgInN3YXBncyIpOwogCiB1bnNpZ25lZCBuYXRpdmVfcGF0Y2godTggdHlwZSwgdTE2IGNsb2JiZXJzLCB2b2lkICppYnVmLApAQCAtMzUsNyArMzYsOSBAQAogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMsIGlycV9lbmFibGUpOwogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMsIGlycV9kaXNhYmxlKTsKIAkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcmV0KTsKLQkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2NhbGxfcmV0KTsKKwkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOworCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMik7CisJCVBBVENIX1NJVEUocHZfY3B1X29wcywgdXNlcmdzX3N5c3JldDY0KTsKIAkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBzd2FwZ3MpOwogCQlQQVRDSF9TSVRFKHB2X21tdV9vcHMsIHJlYWRfY3IyKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCByZWFkX2NyMyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCmluZGV4IGUyOGVjNDkuLjY5NTliNWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktY2FsZ2FyeV82NC5jCkBAIC0xMzk0LDcgKzEzOTQsNyBAQAogCQlyZXR1cm47CiAJfQogCi0Jc3BlY2lmaWVkX3RhYmxlX3NpemUgPSBkZXRlcm1pbmVfdGNlX3RhYmxlX3NpemUoZW5kX3BmbiAqIFBBR0VfU0laRSk7CisJc3BlY2lmaWVkX3RhYmxlX3NpemUgPSBkZXRlcm1pbmVfdGNlX3RhYmxlX3NpemUobWF4X3BmbiAqIFBBR0VfU0laRSk7CiAKIAlmb3IgKGJ1cyA9IDA7IGJ1cyA8IE1BWF9QSEJfQlVTX05VTTsgYnVzKyspIHsKIAkJc3RydWN0IGNhbGdhcnlfYnVzX2luZm8gKmluZm8gPSAmYnVzX2luZm9bYnVzXTsKQEAgLTE0NTksNyArMTQ1OSw3IEBACiAJaWYgKHJldCkgewogCQlwcmludGsoS0VSTl9FUlIgIlBDSS1ETUE6IENhbGdhcnkgaW5pdCBmYWlsZWQgJWQsICIKIAkJICAgICAgICJmYWxsaW5nIGJhY2sgdG8gbm9faW9tbXVcbiIsIHJldCk7Ci0JCWlmIChlbmRfcGZuID4gTUFYX0RNQTMyX1BGTikKKwkJaWYgKG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOKQogCQkJcHJpbnRrKEtFUk5fRVJSICJXQVJOSU5HIG1vcmUgdGhhbiA0R0Igb2YgbWVtb3J5LCAiCiAJCQkJCSIzMmJpdCBQQ0kgbWF5IG1hbGZ1bmN0aW9uLlxuIik7CiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5jIGIvYXJjaC94ODYva2VybmVsL3BjaS1kbWEuYwppbmRleCBjNWVmMWFmLi44NDY3ZWMyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZG1hLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8YXNtL2RtYS5oPgogI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CiAjaW5jbHVkZSA8YXNtL2NhbGdhcnkuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11Lmg+CiAKIGludCBmb3JiaWRfZGFjIF9fcmVhZF9tb3N0bHk7CiBFWFBPUlRfU1lNQk9MKGZvcmJpZF9kYWMpOwpAQCAtNzQsMTMgKzc1LDE3IEBACiB2b2lkIF9faW5pdCBkbWEzMl9yZXNlcnZlX2Jvb3RtZW0odm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHNpemUsIGFsaWduOwotCWlmIChlbmRfcGZuIDw9IE1BWF9ETUEzMl9QRk4pCisJaWYgKG1heF9wZm4gPD0gTUFYX0RNQTMyX1BGTikKIAkJcmV0dXJuOwogCisJLyoKKwkgKiBjaGVjayBhcGVydHVyZV82NC5jIGFsbG9jYXRlX2FwZXJ0dXJlKCkgZm9yIHJlYXNvbiBhYm91dAorCSAqIHVzaW5nIDUxMk0gYXMgZ29hbAorCSAqLwogCWFsaWduID0gNjRVTEw8PDIwOwogCXNpemUgPSByb3VuZF91cChkbWEzMl9ib290bWVtX3NpemUsIGFsaWduKTsKIAlkbWEzMl9ib290bWVtX3B0ciA9IF9fYWxsb2NfYm9vdG1lbV9ub3BhbmljKHNpemUsIGFsaWduLAotCQkJCSBfX3BhKE1BWF9ETUFfQUREUkVTUykpOworCQkJCSA1MTJVTEw8PDIwKTsKIAlpZiAoZG1hMzJfYm9vdG1lbV9wdHIpCiAJCWRtYTMyX2Jvb3RtZW1fc2l6ZSA9IHNpemU7CiAJZWxzZQpAQCAtODgsMTcgKzkzLDE0IEBACiB9CiBzdGF0aWMgdm9pZCBfX2luaXQgZG1hMzJfZnJlZV9ib290bWVtKHZvaWQpCiB7Ci0JaW50IG5vZGU7CiAKLQlpZiAoZW5kX3BmbiA8PSBNQVhfRE1BMzJfUEZOKQorCWlmIChtYXhfcGZuIDw9IE1BWF9ETUEzMl9QRk4pCiAJCXJldHVybjsKIAogCWlmICghZG1hMzJfYm9vdG1lbV9wdHIpCiAJCXJldHVybjsKIAotCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpCi0JCWZyZWVfYm9vdG1lbV9ub2RlKE5PREVfREFUQShub2RlKSwgX19wYShkbWEzMl9ib290bWVtX3B0ciksCi0JCQkJICBkbWEzMl9ib290bWVtX3NpemUpOworCWZyZWVfYm9vdG1lbShfX3BhKGRtYTMyX2Jvb3RtZW1fcHRyKSwgZG1hMzJfYm9vdG1lbV9zaXplKTsKIAogCWRtYTMyX2Jvb3RtZW1fcHRyID0gTlVMTDsKIAlkbWEzMl9ib290bWVtX3NpemUgPSAwOwpAQCAtMTIyLDYgKzEyNCw4IEBACiAKIAlkZXRlY3RfaW50ZWxfaW9tbXUoKTsKIAorCWFtZF9pb21tdV9kZXRlY3QoKTsKKwogI2lmZGVmIENPTkZJR19TV0lPVExCCiAJcGNpX3N3aW90bGJfaW5pdCgpOwogI2VuZGlmCkBAIC0zNTcsNyArMzYxLDcgQEAKIEVYUE9SVF9TWU1CT0woZG1hX3N1cHBvcnRlZCk7CiAKIC8qIEFsbG9jYXRlIERNQSBtZW1vcnkgb24gbm9kZSBuZWFyIGRldmljZSAqLwotbm9pbmxpbmUgc3RydWN0IHBhZ2UgKgorc3RhdGljIG5vaW5saW5lIHN0cnVjdCBwYWdlICoKIGRtYV9hbGxvY19wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGdmcF90IGdmcCwgdW5zaWduZWQgb3JkZXIpCiB7CiAJaW50IG5vZGU7CkBAIC0zNzgsNiArMzgyLDcgQEAKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAl1bnNpZ25lZCBsb25nIGRtYV9tYXNrID0gMDsKIAlkbWFfYWRkcl90IGJ1czsKKwlpbnQgbm9yZXRyeSA9IDA7CiAKIAkvKiBpZ25vcmUgcmVnaW9uIHNwZWNpZmllcnMgKi8KIAlnZnAgJj0gfihfX0dGUF9ETUEgfCBfX0dGUF9ISUdITUVNIHwgX19HRlBfRE1BMzIpOwpAQCAtMzk3LDIwICs0MDIsMjUgQEAKIAlpZiAoZGV2LT5kbWFfbWFzayA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAotCS8qIERvbid0IGludm9rZSBPT00ga2lsbGVyICovCi0JZ2ZwIHw9IF9fR0ZQX05PUkVUUlk7CisJLyogRG9uJ3QgaW52b2tlIE9PTSBraWxsZXIgb3IgcmV0cnkgaW4gbG93ZXIgMTZNQiBETUEgem9uZSAqLworCWlmIChnZnAgJiBfX0dGUF9ETUEpCisJCW5vcmV0cnkgPSAxOwogCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCS8qIFdoeSA8PT8gRXZlbiB3aGVuIHRoZSBtYXNrIGlzIHNtYWxsZXIgdGhhbiA0R0IgaXQgaXMgb2Z0ZW4KIAkgICBsYXJnZXIgdGhhbiAxNk1CIGFuZCBpbiB0aGlzIGNhc2Ugd2UgaGF2ZSBhIGNoYW5jZSBvZgogCSAgIGZpbmRpbmcgZml0dGluZyBtZW1vcnkgaW4gdGhlIG5leHQgaGlnaGVyIHpvbmUgZmlyc3QuIElmCiAJICAgbm90IHJldHJ5IHdpdGggdHJ1ZSBHRlBfRE1BLiAtQUsgKi8KLQlpZiAoZG1hX21hc2sgPD0gRE1BXzMyQklUX01BU0sgJiYgIShnZnAgJiBHRlBfRE1BKSkKKwlpZiAoZG1hX21hc2sgPD0gRE1BXzMyQklUX01BU0sgJiYgIShnZnAgJiBHRlBfRE1BKSkgewogCQlnZnAgfD0gR0ZQX0RNQTMyOworCQlpZiAoZG1hX21hc2sgPCBETUFfMzJCSVRfTUFTSykKKwkJCW5vcmV0cnkgPSAxOworCX0KICNlbmRpZgogCiAgYWdhaW46Ci0JcGFnZSA9IGRtYV9hbGxvY19wYWdlcyhkZXYsIGdmcCwgZ2V0X29yZGVyKHNpemUpKTsKKwlwYWdlID0gZG1hX2FsbG9jX3BhZ2VzKGRldiwKKwkJbm9yZXRyeSA/IGdmcCB8IF9fR0ZQX05PUkVUUlkgOiBnZnAsIGdldF9vcmRlcihzaXplKSk7CiAJaWYgKHBhZ2UgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTQ5Niw2ICs1MDYsOCBAQAogCiAJaW50ZWxfaW9tbXVfaW5pdCgpOwogCisJYW1kX2lvbW11X2luaXQoKTsKKwogI2lmZGVmIENPTkZJR19HQVJUX0lPTU1VCiAJZ2FydF9pb21tdV9pbml0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wY2ktZ2FydF82NC5jIGIvYXJjaC94ODYva2VybmVsL3BjaS1nYXJ0XzY0LmMKaW5kZXggYWE4ZWM5Mi4uYzNmZTc4NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BjaS1nYXJ0XzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BjaS1nYXJ0XzY0LmMKQEAgLTEwNCw3ICsxMDQsNiBAQAogCQkJCQkgIHNpemUsIGJhc2VfaW5kZXgsIGJvdW5kYXJ5X3NpemUsIDApOwogCX0KIAlpZiAob2Zmc2V0ICE9IC0xKSB7Ci0JCXNldF9iaXRfc3RyaW5nKGlvbW11X2dhcnRfYml0bWFwLCBvZmZzZXQsIHNpemUpOwogCQluZXh0X2JpdCA9IG9mZnNldCtzaXplOwogCQlpZiAobmV4dF9iaXQgPj0gaW9tbXVfcGFnZXMpIHsKIAkJCW5leHRfYml0ID0gMDsKQEAgLTUzNCw4ICs1MzMsOCBAQAogCXVuc2lnbmVkIGFwZXJfc2l6ZSA9IDAsIGFwZXJfYmFzZV8zMiwgYXBlcl9vcmRlcjsKIAl1NjQgYXBlcl9iYXNlOwogCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5NCwgJmFwZXJfYmFzZV8zMik7Ci0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgJmFwZXJfb3JkZXIpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUJBU0UsICZhcGVyX2Jhc2VfMzIpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJmFwZXJfb3JkZXIpOwogCWFwZXJfb3JkZXIgPSAoYXBlcl9vcmRlciA+PiAxKSAmIDc7CiAKIAlhcGVyX2Jhc2UgPSBhcGVyX2Jhc2VfMzIgJiAweDdmZmY7CkBAIC01NDksMTQgKzU0OCw2MyBAQAogCXJldHVybiBhcGVyX2Jhc2U7CiB9CiAKK3N0YXRpYyB2b2lkIGVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9ucyh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9rOF9ub3J0aGJyaWRnZXM7IGkrKykgeworCQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOworCisJCWVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9uKGRldiwgX19wYShhZ3BfZ2F0dF90YWJsZSkpOworCX0KK30KKworLyoKKyAqIElmIGZpeF91cF9ub3J0aF9icmlkZ2VzIGlzIHNldCwgdGhlIG5vcnRoIGJyaWRnZXMgaGF2ZSB0byBiZSBmaXhlZCB1cCBvbgorICogcmVzdW1lIGluIHRoZSBzYW1lIHdheSBhcyB0aGV5IGFyZSBoYW5kbGVkIGluIGdhcnRfaW9tbXVfaG9sZV9pbml0KCkuCisgKi8KK3N0YXRpYyBib29sIGZpeF91cF9ub3J0aF9icmlkZ2VzOworc3RhdGljIHUzMiBhcGVydHVyZV9vcmRlcjsKK3N0YXRpYyB1MzIgYXBlcnR1cmVfYWxsb2M7CisKK3ZvaWQgc2V0X3VwX2dhcnRfcmVzdW1lKHUzMiBhcGVyX29yZGVyLCB1MzIgYXBlcl9hbGxvYykKK3sKKwlmaXhfdXBfbm9ydGhfYnJpZGdlcyA9IHRydWU7CisJYXBlcnR1cmVfb3JkZXIgPSBhcGVyX29yZGVyOworCWFwZXJ0dXJlX2FsbG9jID0gYXBlcl9hbGxvYzsKK30KKwogc3RhdGljIGludCBnYXJ0X3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQogeworCXByaW50ayhLRVJOX0lORk8gIlBDSS1ETUE6IFJlc3VtaW5nIEdBUlQgSU9NTVVcbiIpOworCisJaWYgKGZpeF91cF9ub3J0aF9icmlkZ2VzKSB7CisJCWludCBpOworCisJCXByaW50ayhLRVJOX0lORk8gIlBDSS1ETUE6IFJlc3RvcmluZyBHQVJUIGFwZXJ0dXJlIHNldHRpbmdzXG4iKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbnVtX2s4X25vcnRoYnJpZGdlczsgaSsrKSB7CisJCQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOworCisJCQkvKgorCQkJICogRG9uJ3QgZW5hYmxlIHRyYW5zbGF0aW9ucyBqdXN0IHlldC4gIFRoYXQgaXMgdGhlIG5leHQKKwkJCSAqIHN0ZXAuICBSZXN0b3JlIHRoZSBwcmUtc3VzcGVuZCBhcGVydHVyZSBzZXR0aW5ncy4KKwkJCSAqLworCQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwKKwkJCQkJCWFwZXJ0dXJlX29yZGVyIDw8IDEpOworCQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUJBU0UsCisJCQkJCQlhcGVydHVyZV9hbGxvYyA+PiAyNSk7CisJCX0KKwl9CisKKwllbmFibGVfZ2FydF90cmFuc2xhdGlvbnMoKTsKKwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGdhcnRfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7Ci0JcmV0dXJuIC1FSU5WQUw7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGdhcnRfc3lzZGV2X2NsYXNzID0gewpAQCAtNTgyLDYgKzYzMCw3IEBACiAJc3RydWN0IHBjaV9kZXYgKmRldjsKIAl2b2lkICpnYXR0OwogCWludCBpLCBlcnJvcjsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbjsKIAogCXByaW50ayhLRVJOX0lORk8gIlBDSS1ETUE6IERpc2FibGluZyBBR1AuXG4iKTsKIAlhcGVyX3NpemUgPSBhcGVyX2Jhc2UgPSBpbmZvLT5hcGVyX3NpemUgPSAwOwpAQCAtNjE0LDMxICs2NjMsMjUgQEAKIAltZW1zZXQoZ2F0dCwgMCwgZ2F0dF9zaXplKTsKIAlhZ3BfZ2F0dF90YWJsZSA9IGdhdHQ7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX2s4X25vcnRoYnJpZGdlczsgaSsrKSB7Ci0JCXUzMiBnYXR0X3JlZzsKLQkJdTMyIGN0bDsKLQotCQlkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07Ci0JCWdhdHRfcmVnID0gX19wYShnYXR0KSA+PiAxMjsKLQkJZ2F0dF9yZWcgPDw9IDQ7Ci0JCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCAweDk4LCBnYXR0X3JlZyk7Ci0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIDB4OTAsICZjdGwpOwotCi0JCWN0bCB8PSAxOwotCQljdGwgJj0gfigoMTw8NCkgfCAoMTw8NSkpOwotCi0JCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCAweDkwLCBjdGwpOwotCX0KKwllbmFibGVfZ2FydF90cmFuc2xhdGlvbnMoKTsKIAogCWVycm9yID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZnYXJ0X3N5c2Rldl9jbGFzcyk7CiAJaWYgKCFlcnJvcikKIAkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9nYXJ0KTsKIAlpZiAoZXJyb3IpCiAJCXBhbmljKCJDb3VsZCBub3QgcmVnaXN0ZXIgZ2FydF9zeXNkZXYgLS0gd291bGQgY29ycnVwdCBkYXRhIG9uIG5leHQgc3VzcGVuZCIpOworCiAJZmx1c2hfZ2FydCgpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogYXBlcnR1cmUgYmFzZSBAICV4IHNpemUgJXUgS0JcbiIsCiAJICAgICAgIGFwZXJfYmFzZSwgYXBlcl9zaXplPj4xMCk7CisKKwkvKiBuZWVkIHRvIG1hcCB0aGF0IHJhbmdlICovCisJZW5kX3BmbiA9IChhcGVyX2Jhc2U+PlBBR0VfU0hJRlQpICsgKGFwZXJfc2l6ZT4+UEFHRV9TSElGVCk7CisJaWYgKGVuZF9wZm4gPiBtYXhfbG93X3Bmbl9tYXBwZWQpIHsKKwkJc3RhcnRfcGZuID0gKGFwZXJfYmFzZT4+UEFHRV9TSElGVCk7CisJCWluaXRfbWVtb3J5X21hcHBpbmcoc3RhcnRfcGZuPDxQQUdFX1NISUZULCBlbmRfcGZuPDxQQUdFX1NISUZUKTsKKwl9CiAJcmV0dXJuIDA7CiAKICBub21tdToKQEAgLTY3NywxMSArNzIwLDExIEBACiAJCXUzMiBjdGw7CiAKIAkJZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOwotCQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCAweDkwLCAmY3RsKTsKKwkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmY3RsKTsKIAotCQljdGwgJj0gfjE7CisJCWN0bCAmPSB+R0FSVEVOOwogCi0JCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCAweDkwLCBjdGwpOworCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCBjdGwpOwogCX0KIH0KIApAQCAtNzE2LDEwICs3NTksMTAgQEAKIAkJcmV0dXJuOwogCiAJaWYgKG5vX2lvbW11IHx8Ci0JICAgICghZm9yY2VfaW9tbXUgJiYgZW5kX3BmbiA8PSBNQVhfRE1BMzJfUEZOKSB8fAorCSAgICAoIWZvcmNlX2lvbW11ICYmIG1heF9wZm4gPD0gTUFYX0RNQTMyX1BGTikgfHwKIAkgICAgIWdhcnRfaW9tbXVfYXBlcnR1cmUgfHwKIAkgICAgKG5vX2FncCAmJiBpbml0X2s4X2dhdHQoJmluZm8pIDwgMCkpIHsKLQkJaWYgKGVuZF9wZm4gPiBNQVhfRE1BMzJfUEZOKSB7CisJCWlmIChtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikgewogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiTW9yZSB0aGFuIDRHQiBvZiBtZW1vcnkgIgogCQkJICAgICAgIAkgICAgICAgICAgImJ1dCBHQVJUIElPTU1VIG5vdCBhdmFpbGFibGUuXG4iCiAJCQkgICAgICAgS0VSTl9XQVJOSU5HICJmYWxsaW5nIGJhY2sgdG8gaW9tbXU9c29mdC5cbiIpOwpAQCAtNzg4LDEwICs4MzEsMTAgQEAKIAl3YmludmQoKTsKIAogCS8qCi0JICogVHJ5IHRvIHdvcmthcm91bmQgYSBidWcgKHRoYW5rcyB0byBCZW5IKQorCSAqIFRyeSB0byB3b3JrYXJvdW5kIGEgYnVnICh0aGFua3MgdG8gQmVuSCk6CiAJICogU2V0IHVubWFwcGVkIGVudHJpZXMgdG8gYSBzY3JhdGNoIHBhZ2UgaW5zdGVhZCBvZiAwLgogCSAqIEFueSBwcmVmZXRjaGVzIHRoYXQgaGl0IHVubWFwcGVkIGVudHJpZXMgd29uJ3QgZ2V0IGFuIGJ1cyBhYm9ydAotCSAqIHRoZW4uCisJICogdGhlbi4gKFAyUCBicmlkZ2UgbWF5IGJlIHByZWZldGNoaW5nIG9uIERNQSByZWFkcykuCiAJICovCiAJc2NyYXRjaCA9IGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKIAlpZiAoIXNjcmF0Y2gpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLXN3aW90bGJfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYl82NC5jCmluZGV4IDQ5MGRhN2YuLjgyMjk5Y2QgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYl82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYl82NC5jCkBAIC0zOCw3ICszOCw3IEBACiB2b2lkIF9faW5pdCBwY2lfc3dpb3RsYl9pbml0KHZvaWQpCiB7CiAJLyogZG9uJ3QgaW5pdGlhbGl6ZSBzd2lvdGxiIGlmIGlvbW11PW9mZiAobm9faW9tbXU9MSkgKi8KLQlpZiAoIWlvbW11X2RldGVjdGVkICYmICFub19pb21tdSAmJiBlbmRfcGZuID4gTUFYX0RNQTMyX1BGTikKKwlpZiAoIWlvbW11X2RldGVjdGVkICYmICFub19pb21tdSAmJiBtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikKIAkgICAgICAgc3dpb3RsYiA9IDE7CiAJaWYgKHN3aW90bGJfZm9yY2UpCiAJCXN3aW90bGIgPSAxOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2JlX3JvbXNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9iZV9yb21zXzMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc1YTQ4YwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9iZV9yb21zXzMyLmMKQEAgLTAsMCArMSwxNjYgQEAKKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9lZGQuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9wZm4uaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgorCisKKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9tbXpvbmUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxzZXR1cF9hcmNoLmg+CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc3lzdGVtX3JvbV9yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJTeXN0ZW0gUk9NIiwKKwkuc3RhcnQJPSAweGYwMDAwLAorCS5lbmQJPSAweGZmZmZmLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBleHRlbnNpb25fcm9tX3Jlc291cmNlID0geworCS5uYW1lCT0gIkV4dGVuc2lvbiBST00iLAorCS5zdGFydAk9IDB4ZTAwMDAsCisJLmVuZAk9IDB4ZWZmZmYsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGFkYXB0ZXJfcm9tX3Jlc291cmNlc1tdID0geyB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAweGM4MDAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSwgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30sIHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9LCB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSwgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30sIHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9IH07CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdmlkZW9fcm9tX3Jlc291cmNlID0geworCS5uYW1lIAk9ICJWaWRlbyBST00iLAorCS5zdGFydAk9IDB4YzAwMDAsCisJLmVuZAk9IDB4YzdmZmYsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCisjZGVmaW5lIFJPTVNJR05BVFVSRSAweGFhNTUKKworc3RhdGljIGludCBfX2luaXQgcm9tc2lnbmF0dXJlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbSkKK3sKKwljb25zdCB1bnNpZ25lZCBzaG9ydCAqIGNvbnN0IHB0ciA9IChjb25zdCB1bnNpZ25lZCBzaG9ydCAqKXJvbTsKKwl1bnNpZ25lZCBzaG9ydCBzaWc7CisKKwlyZXR1cm4gcHJvYmVfa2VybmVsX2FkZHJlc3MocHRyLCBzaWcpID09IDAgJiYgc2lnID09IFJPTVNJR05BVFVSRTsKK30KKworc3RhdGljIGludCBfX2luaXQgcm9tY2hlY2tzdW0oY29uc3QgdW5zaWduZWQgY2hhciAqcm9tLCB1bnNpZ25lZCBsb25nIGxlbmd0aCkKK3sKKwl1bnNpZ25lZCBjaGFyIHN1bSwgYzsKKworCWZvciAoc3VtID0gMDsgbGVuZ3RoICYmIHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSsrLCBjKSA9PSAwOyBsZW5ndGgtLSkKKwkJc3VtICs9IGM7CisJcmV0dXJuICFsZW5ndGggJiYgIXN1bTsKK30KKwordm9pZCBfX2luaXQgcHJvYmVfcm9tcyh2b2lkKQoreworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbTsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0LCBsZW5ndGgsIHVwcGVyOworCXVuc2lnbmVkIGNoYXIgYzsKKwlpbnQgaTsKKworCS8qIHZpZGVvIHJvbSAqLworCXVwcGVyID0gYWRhcHRlcl9yb21fcmVzb3VyY2VzWzBdLnN0YXJ0OworCWZvciAoc3RhcnQgPSB2aWRlb19yb21fcmVzb3VyY2Uuc3RhcnQ7IHN0YXJ0IDwgdXBwZXI7IHN0YXJ0ICs9IDIwNDgpIHsKKwkJcm9tID0gaXNhX2J1c190b192aXJ0KHN0YXJ0KTsKKwkJaWYgKCFyb21zaWduYXR1cmUocm9tKSkKKwkJCWNvbnRpbnVlOworCisJCXZpZGVvX3JvbV9yZXNvdXJjZS5zdGFydCA9IHN0YXJ0OworCisJCWlmIChwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20gKyAyLCBjKSAhPSAwKQorCQkJY29udGludWU7CisKKwkJLyogMCA8IGxlbmd0aCA8PSAweDdmICogNTEyLCBoaXN0b3JpY2FsbHkgKi8KKwkJbGVuZ3RoID0gYyAqIDUxMjsKKworCQkvKiBpZiBjaGVja3N1bSBva2F5LCB0cnVzdCBsZW5ndGggYnl0ZSAqLworCQlpZiAobGVuZ3RoICYmIHJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkKKwkJCXZpZGVvX3JvbV9yZXNvdXJjZS5lbmQgPSBzdGFydCArIGxlbmd0aCAtIDE7CisKKwkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZ2aWRlb19yb21fcmVzb3VyY2UpOworCQlicmVhazsKKwl9CisKKwlzdGFydCA9ICh2aWRlb19yb21fcmVzb3VyY2UuZW5kICsgMSArIDIwNDcpICYgfjIwNDdVTDsKKwlpZiAoc3RhcnQgPCB1cHBlcikKKwkJc3RhcnQgPSB1cHBlcjsKKworCS8qIHN5c3RlbSByb20gKi8KKwlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnN5c3RlbV9yb21fcmVzb3VyY2UpOworCXVwcGVyID0gc3lzdGVtX3JvbV9yZXNvdXJjZS5zdGFydDsKKworCS8qIGNoZWNrIGZvciBleHRlbnNpb24gcm9tIChpZ25vcmUgbGVuZ3RoIGJ5dGUhKSAqLworCXJvbSA9IGlzYV9idXNfdG9fdmlydChleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0KTsKKwlpZiAocm9tc2lnbmF0dXJlKHJvbSkpIHsKKwkJbGVuZ3RoID0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5lbmQgLSBleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0ICsgMTsKKwkJaWYgKHJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkgeworCQkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZleHRlbnNpb25fcm9tX3Jlc291cmNlKTsKKwkJCXVwcGVyID0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydDsKKwkJfQorCX0KKworCS8qIGNoZWNrIGZvciBhZGFwdGVyIHJvbXMgb24gMmsgYm91bmRhcmllcyAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFkYXB0ZXJfcm9tX3Jlc291cmNlcykgJiYgc3RhcnQgPCB1cHBlcjsgc3RhcnQgKz0gMjA0OCkgeworCQlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoc3RhcnQpOworCQlpZiAoIXJvbXNpZ25hdHVyZShyb20pKQorCQkJY29udGludWU7CisKKwkJaWYgKHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSArIDIsIGMpICE9IDApCisJCQljb250aW51ZTsKKworCQkvKiAwIDwgbGVuZ3RoIDw9IDB4N2YgKiA1MTIsIGhpc3RvcmljYWxseSAqLworCQlsZW5ndGggPSBjICogNTEyOworCisJCS8qIGJ1dCBhY2NlcHQgYW55IGxlbmd0aCB0aGF0IGZpdHMgaWYgY2hlY2tzdW0gb2theSAqLworCQlpZiAoIWxlbmd0aCB8fCBzdGFydCArIGxlbmd0aCA+IHVwcGVyIHx8ICFyb21jaGVja3N1bShyb20sIGxlbmd0aCkpCisJCQljb250aW51ZTsKKworCQlhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0uc3RhcnQgPSBzdGFydDsKKwkJYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldLmVuZCA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKKwkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0pOworCisJCXN0YXJ0ID0gYWRhcHRlcl9yb21fcmVzb3VyY2VzW2krK10uZW5kICYgfjIwNDdVTDsKKwl9Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IGJhMzcwZGMuLjQwNjFkNjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgogCiBzdHJ1Y3Qga21lbV9jYWNoZSAqdGFza194c3RhdGVfY2FjaGVwOwogCkBAIC00NSw2ICs0Niw3NiBAQAogCQkJCSAgU0xBQl9QQU5JQywgTlVMTCk7CiB9CiAKKy8qCisgKiBJZGxlIHJlbGF0ZWQgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMKKyAqLwordW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKK0VYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7CisKKy8qCisgKiBQb3dlcm1hbmFnZW1lbnQgaWRsZSBmdW5jdGlvbiwgaWYgYW55Li4KKyAqLwordm9pZCAoKnBtX2lkbGUpKHZvaWQpOworRVhQT1JUX1NZTUJPTChwbV9pZGxlKTsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qCisgKiBUaGlzIGhhbHQgbWFnaWMgd2FzIGEgd29ya2Fyb3VuZCBmb3IgYW5jaWVudCBmbG9wcHkgRE1BCisgKiB3cmVja2FnZS4gSXQgc2hvdWxkIGJlIHNhZmUgdG8gcmVtb3ZlLgorICovCitzdGF0aWMgaW50IGhsdF9jb3VudGVyOwordm9pZCBkaXNhYmxlX2hsdCh2b2lkKQoreworCWhsdF9jb3VudGVyKys7Cit9CitFWFBPUlRfU1lNQk9MKGRpc2FibGVfaGx0KTsKKwordm9pZCBlbmFibGVfaGx0KHZvaWQpCit7CisJaGx0X2NvdW50ZXItLTsKK30KK0VYUE9SVF9TWU1CT0woZW5hYmxlX2hsdCk7CisKK3N0YXRpYyBpbmxpbmUgaW50IGhsdF91c2VfaGFsdCh2b2lkKQoreworCXJldHVybiAoIWhsdF9jb3VudGVyICYmIGJvb3RfY3B1X2RhdGEuaGx0X3dvcmtzX29rKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBobHRfdXNlX2hhbHQodm9pZCkKK3sKKwlyZXR1cm4gMTsKK30KKyNlbmRpZgorCisvKgorICogV2UgdXNlIHRoaXMgaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgYmV0dGVyCisgKiBpZGxlIHJvdXRpbmUuLgorICovCit2b2lkIGRlZmF1bHRfaWRsZSh2b2lkKQoreworCWlmIChobHRfdXNlX2hhbHQoKSkgeworCQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyAmPSB+VFNfUE9MTElORzsKKwkJLyoKKwkJICogVFNfUE9MTElORy1jbGVhcmVkIHN0YXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgd2UKKwkJICogdGVzdCBORUVEX1JFU0NIRUQ6CisJCSAqLworCQlzbXBfbWIoKTsKKworCQlpZiAoIW5lZWRfcmVzY2hlZCgpKQorCQkJc2FmZV9oYWx0KCk7CS8qIGVuYWJsZXMgaW50ZXJydXB0cyByYWNlbGVzc2x5ICovCisJCWVsc2UKKwkJCWxvY2FsX2lycV9lbmFibGUoKTsKKwkJY3VycmVudF90aHJlYWRfaW5mbygpLT5zdGF0dXMgfD0gVFNfUE9MTElORzsKKwl9IGVsc2UgeworCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisJCS8qIGxvb3AgaXMgZG9uZSBieSB0aGUgY2FsbGVyICovCisJCWNwdV9yZWxheCgpOworCX0KK30KKyNpZmRlZiBDT05GSUdfQVBNX01PRFVMRQorRVhQT1JUX1NZTUJPTChkZWZhdWx0X2lkbGUpOworI2VuZGlmCisKIHN0YXRpYyB2b2lkIGRvX25vdGhpbmcodm9pZCAqdW51c2VkKQogewogfQpAQCAtMTIyLDQ0ICsxOTMsMTI5IEBACiAgKgogICogaWRsZT1td2FpdCBvdmVycmlkZXMgdGhpcyBkZWNpc2lvbiBhbmQgZm9yY2VzIHRoZSB1c2FnZSBvZiBtd2FpdC4KICAqLworCisjZGVmaW5lIE1XQUlUX0lORk8JCQkweDA1CisjZGVmaW5lIE1XQUlUX0VDWF9FWFRFTkRFRF9JTkZPCQkweDAxCisjZGVmaW5lIE1XQUlUX0VEWF9DMQkJCTB4ZjAKKwogc3RhdGljIGludCBfX2NwdWluaXQgbXdhaXRfdXNhYmxlKGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIHsKKwl1MzIgZWF4LCBlYngsIGVjeCwgZWR4OworCiAJaWYgKGZvcmNlX213YWl0KQogCQlyZXR1cm4gMTsKIAotCWlmIChjLT54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSB7Ci0JCXN3aXRjaChjLT54ODYpIHsKLQkJY2FzZSAweDEwOgotCQljYXNlIDB4MTE6Ci0JCQlyZXR1cm4gMDsKKwlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCBNV0FJVF9JTkZPKQorCQlyZXR1cm4gMDsKKworCWNwdWlkKE1XQUlUX0lORk8sICZlYXgsICZlYngsICZlY3gsICZlZHgpOworCS8qIENoZWNrLCB3aGV0aGVyIEVEWCBoYXMgZXh0ZW5kZWQgaW5mbyBhYm91dCBNV0FJVCAqLworCWlmICghKGVjeCAmIE1XQUlUX0VDWF9FWFRFTkRFRF9JTkZPKSkKKwkJcmV0dXJuIDE7CisKKwkvKgorCSAqIGVkeCBlbnVtZXJhdGlvcyBNT05JVE9SL01XQUlUIGV4dGVuc2lvbnMuIENoZWNrLCB3aGV0aGVyCisJICogQzEgIHN1cHBvcnRzIE1XQUlUCisJICovCisJcmV0dXJuIChlZHggJiBNV0FJVF9FRFhfQzEpOworfQorCisvKgorICogQ2hlY2sgZm9yIEFNRCBDUFVzLCB3aGljaCBoYXZlIHBvdGVudGlhbGx5IEMxRSBzdXBwb3J0CisgKi8KK3N0YXRpYyBpbnQgX19jcHVpbml0IGNoZWNrX2MxZV9pZGxlKGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlpZiAoYy0+eDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0FNRCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYy0+eDg2IDwgMHgwRikKKwkJcmV0dXJuIDA7CisKKwkvKiBGYW1pbHkgMHgwZiBtb2RlbHMgPCByZXYgRiBkbyBub3QgaGF2ZSBDMUUgKi8KKwlpZiAoYy0+eDg2ID09IDB4MGYgJiYgYy0+eDg2X21vZGVsIDwgMHg0MCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIEMxRSBhd2FyZSBpZGxlIHJvdXRpbmUuIFdlIGNoZWNrIGZvciBDMUUgYWN0aXZlIGluIHRoZSBpbnRlcnJ1cHQKKyAqIHBlbmRpbmcgbWVzc2FnZSBNU1IuIElmIHdlIGRldGVjdCBDMUUsIHRoZW4gd2UgaGFuZGxlIGl0IHRoZSBzYW1lCisgKiB3YXkgYXMgQzMgcG93ZXIgc3RhdGVzIChsb2NhbCBhcGljIHRpbWVyIGFuZCBUU0Mgc3RvcCkKKyAqLworc3RhdGljIHZvaWQgYzFlX2lkbGUodm9pZCkKK3sKKwlzdGF0aWMgY3B1bWFza190IGMxZV9tYXNrID0gQ1BVX01BU0tfTk9ORTsKKwlzdGF0aWMgaW50IGMxZV9kZXRlY3RlZDsKKworCWlmIChuZWVkX3Jlc2NoZWQoKSkKKwkJcmV0dXJuOworCisJaWYgKCFjMWVfZGV0ZWN0ZWQpIHsKKwkJdTMyIGxvLCBoaTsKKworCQlyZG1zcihNU1JfSzhfSU5UX1BFTkRJTkdfTVNHLCBsbywgaGkpOworCQlpZiAobG8gJiBLOF9JTlRQX0MxRV9BQ1RJVkVfTUFTSykgeworCQkJYzFlX2RldGVjdGVkID0gMTsKKwkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0MgaGFsdCBpbiBDMUUiKTsKKwkJCXByaW50ayhLRVJOX0lORk8gIlN5c3RlbSBoYXMgQzFFIGVuYWJsZWRcbiIpOwogCQl9CiAJfQotCXJldHVybiAxOworCisJaWYgKGMxZV9kZXRlY3RlZCkgeworCQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJCWlmICghY3B1X2lzc2V0KGNwdSwgYzFlX21hc2spKSB7CisJCQljcHVfc2V0KGNwdSwgYzFlX21hc2spOworCQkJLyoKKwkJCSAqIEZvcmNlIGJyb2FkY2FzdCBzbyBBQ1BJIGNhbiBub3QgaW50ZXJmZXJlLiBOZWVkcworCQkJICogdG8gcnVuIHdpdGggaW50ZXJydXB0cyBlbmFibGVkIGFzIGl0IHVzZXMKKwkJCSAqIHNtcF9mdW5jdGlvbl9jYWxsLgorCQkJICovCisJCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisJCQljbG9ja2V2ZW50c19ub3RpZnkoQ0xPQ0tfRVZUX05PVElGWV9CUk9BRENBU1RfRk9SQ0UsCisJCQkJCSAgICZjcHUpOworCQkJcHJpbnRrKEtFUk5fSU5GTyAiU3dpdGNoIHRvIGJyb2FkY2FzdCBtb2RlIG9uIENQVSVkXG4iLAorCQkJICAgICAgIGNwdSk7CisJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOworCQl9CisJCWNsb2NrZXZlbnRzX25vdGlmeShDTE9DS19FVlRfTk9USUZZX0JST0FEQ0FTVF9FTlRFUiwgJmNwdSk7CisKKwkJZGVmYXVsdF9pZGxlKCk7CisKKwkJLyoKKwkJICogVGhlIHN3aXRjaCBiYWNrIGZyb20gYnJvYWRjYXN0IG1vZGUgbmVlZHMgdG8gYmUKKwkJICogY2FsbGVkIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZC4KKwkJICovCisJCSBsb2NhbF9pcnFfZGlzYWJsZSgpOworCQkgY2xvY2tldmVudHNfbm90aWZ5KENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0VYSVQsICZjcHUpOworCQkgbG9jYWxfaXJxX2VuYWJsZSgpOworCX0gZWxzZQorCQlkZWZhdWx0X2lkbGUoKTsKIH0KIAogdm9pZCBfX2NwdWluaXQgc2VsZWN0X2lkbGVfcm91dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7Ci0Jc3RhdGljIGludCBzZWxlY3RlZDsKLQotCWlmIChzZWxlY3RlZCkKLQkJcmV0dXJuOwogI2lmZGVmIENPTkZJR19YODZfU01QCiAJaWYgKHBtX2lkbGUgPT0gcG9sbF9pZGxlICYmIHNtcF9udW1fc2libGluZ3MgPiAxKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IHBvbGxpbmcgaWRsZSBhbmQgSFQgZW5hYmxlZCwiCiAJCQkiIHBlcmZvcm1hbmNlIG1heSBkZWdyYWRlLlxuIik7CiAJfQogI2VuZGlmCisJaWYgKHBtX2lkbGUpCisJCXJldHVybjsKKwogCWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX01XQUlUKSAmJiBtd2FpdF91c2FibGUoYykpIHsKIAkJLyoKLQkJICogU2tpcCwgaWYgc2V0dXAgaGFzIG92ZXJyaWRkZW4gaWRsZS4KIAkJICogT25lIENQVSBzdXBwb3J0cyBtd2FpdCA9PiBBbGwgQ1BVcyBzdXBwb3J0cyBtd2FpdAogCQkgKi8KLQkJaWYgKCFwbV9pZGxlKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJ1c2luZyBtd2FpdCBpbiBpZGxlIHRocmVhZHMuXG4iKTsKLQkJCXBtX2lkbGUgPSBtd2FpdF9pZGxlOwotCQl9Ci0JfQotCXNlbGVjdGVkID0gMTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNpbmcgbXdhaXQgaW4gaWRsZSB0aHJlYWRzLlxuIik7CisJCXBtX2lkbGUgPSBtd2FpdF9pZGxlOworCX0gZWxzZSBpZiAoY2hlY2tfYzFlX2lkbGUoYykpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNpbmcgQzFFIGF3YXJlIGlkbGUgcm91dGluZVxuIik7CisJCXBtX2lkbGUgPSBjMWVfaWRsZTsKKwl9IGVsc2UKKwkJcG1faWRsZSA9IGRlZmF1bHRfaWRsZTsKIH0KIAogc3RhdGljIGludCBfX2luaXQgaWRsZV9zZXR1cChjaGFyICpzdHIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfMzIuYwppbmRleCA2ZDU0ODMzLi4wYzM5MjdhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzMyLmMKQEAgLTU4LDExICs1OCw2IEBACiAKIGFzbWxpbmthZ2Ugdm9pZCByZXRfZnJvbV9mb3JrKHZvaWQpIF9fYXNtX18oInJldF9mcm9tX2ZvcmsiKTsKIAotc3RhdGljIGludCBobHRfY291bnRlcjsKLQotdW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKLUVYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7Ci0KIERFRklORV9QRVJfQ1BVKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBjdXJyZW50X3Rhc2spID0gJmluaXRfdGFzazsKIEVYUE9SVF9QRVJfQ1BVX1NZTUJPTChjdXJyZW50X3Rhc2spOwogCkBAIC03Nyw1NyArNzIsMjQgQEAKIAlyZXR1cm4gKCh1bnNpZ25lZCBsb25nICopdHNrLT50aHJlYWQuc3ApWzNdOwogfQogCi0vKgotICogUG93ZXJtYW5hZ2VtZW50IGlkbGUgZnVuY3Rpb24sIGlmIGFueS4uCi0gKi8KLXZvaWQgKCpwbV9pZGxlKSh2b2lkKTsKLUVYUE9SVF9TWU1CT0wocG1faWRsZSk7Ci0KLXZvaWQgZGlzYWJsZV9obHQodm9pZCkKLXsKLQlobHRfY291bnRlcisrOwotfQotCi1FWFBPUlRfU1lNQk9MKGRpc2FibGVfaGx0KTsKLQotdm9pZCBlbmFibGVfaGx0KHZvaWQpCi17Ci0JaGx0X2NvdW50ZXItLTsKLX0KLQotRVhQT1JUX1NZTUJPTChlbmFibGVfaGx0KTsKLQotLyoKLSAqIFdlIHVzZSB0aGlzIGlmIHdlIGRvbid0IGhhdmUgYW55IGJldHRlcgotICogaWRsZSByb3V0aW5lLi4KLSAqLwotdm9pZCBkZWZhdWx0X2lkbGUodm9pZCkKLXsKLQlpZiAoIWhsdF9jb3VudGVyICYmIGJvb3RfY3B1X2RhdGEuaGx0X3dvcmtzX29rKSB7Ci0JCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzICY9IH5UU19QT0xMSU5HOwotCQkvKgotCQkgKiBUU19QT0xMSU5HLWNsZWFyZWQgc3RhdGUgbXVzdCBiZSB2aXNpYmxlIGJlZm9yZSB3ZQotCQkgKiB0ZXN0IE5FRURfUkVTQ0hFRDoKLQkJICovCi0JCXNtcF9tYigpOwotCi0JCWlmICghbmVlZF9yZXNjaGVkKCkpCi0JCQlzYWZlX2hhbHQoKTsJLyogZW5hYmxlcyBpbnRlcnJ1cHRzIHJhY2VsZXNzbHkgKi8KLQkJZWxzZQotCQkJbG9jYWxfaXJxX2VuYWJsZSgpOwotCQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyB8PSBUU19QT0xMSU5HOwotCX0gZWxzZSB7Ci0JCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJLyogbG9vcCBpcyBkb25lIGJ5IHRoZSBjYWxsZXIgKi8KLQkJY3B1X3JlbGF4KCk7Ci0JfQotfQotI2lmZGVmIENPTkZJR19BUE1fTU9EVUxFCi1FWFBPUlRfU1lNQk9MKGRlZmF1bHRfaWRsZSk7Ci0jZW5kaWYKLQogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogI2luY2x1ZGUgPGFzbS9ubWkuaD4KKworc3RhdGljIHZvaWQgY3B1X2V4aXRfY2xlYXIodm9pZCkKK3sKKwlpbnQgY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKworCWlkbGVfdGFza19leGl0KCk7CisKKwljcHVfdW5pbml0KCk7CisJaXJxX2N0eF9leGl0KGNwdSk7CisKKwljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbG91dF9tYXApOworCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsaW5fbWFwKTsKKworCW51bWFfcmVtb3ZlX2NwdShjcHUpOworfQorCiAvKiBXZSBkb24ndCBhY3R1YWxseSB0YWtlIENQVSBkb3duLCBqdXN0IHNwaW4gd2l0aG91dCBpbnRlcnJ1cHRzLiAqLwogc3RhdGljIGlubGluZSB2b2lkIHBsYXlfZGVhZCh2b2lkKQogewpAQCAtMTY4LDI0ICsxMzAsMjIgQEAKIAl3aGlsZSAoMSkgewogCQl0aWNrX25vaHpfc3RvcF9zY2hlZF90aWNrKCk7CiAJCXdoaWxlICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJCXZvaWQgKCppZGxlKSh2b2lkKTsKIAogCQkJY2hlY2tfcGd0X2NhY2hlKCk7CiAJCQlybWIoKTsKLQkJCWlkbGUgPSBwbV9pZGxlOwogCiAJCQlpZiAocmN1X3BlbmRpbmcoY3B1KSkKIAkJCQlyY3VfY2hlY2tfY2FsbGJhY2tzKGNwdSwgMCk7CiAKLQkJCWlmICghaWRsZSkKLQkJCQlpZGxlID0gZGVmYXVsdF9pZGxlOwotCiAJCQlpZiAoY3B1X2lzX29mZmxpbmUoY3B1KSkKIAkJCQlwbGF5X2RlYWQoKTsKIAogCQkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAkJCV9fZ2V0X2NwdV92YXIoaXJxX3N0YXQpLmlkbGVfdGltZXN0YW1wID0gamlmZmllczsKLQkJCWlkbGUoKTsKKwkJCS8qIERvbid0IHRyYWNlIGlycXMgb2ZmIGZvciBpZGxlICovCisJCQlzdG9wX2NyaXRpY2FsX3RpbWluZ3MoKTsKKwkJCXBtX2lkbGUoKTsKKwkJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKTsKIAkJfQogCQl0aWNrX25vaHpfcmVzdGFydF9zY2hlZF90aWNrKCk7CiAJCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKQEAgLTMzMyw2ICsyOTMsNyBAQAogCS8qCiAJICogRm9yZ2V0IGNvcHJvY2Vzc29yIHN0YXRlLi4KIAkgKi8KKwl0c2stPmZwdV9jb3VudGVyID0gMDsKIAljbGVhcl9mcHUodHNrKTsKIAljbGVhcl91c2VkX21hdGgoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc182NC5jCmluZGV4IGFjNTRmZjUuLmE4ZTUzNjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYwpAQCAtNTYsMTUgKzU2LDYgQEAKIAogdW5zaWduZWQgbG9uZyBrZXJuZWxfdGhyZWFkX2ZsYWdzID0gQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRDsKIAotdW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKLUVYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7Ci0KLS8qCi0gKiBQb3dlcm1hbmFnZW1lbnQgaWRsZSBmdW5jdGlvbiwgaWYgYW55Li4KLSAqLwotdm9pZCAoKnBtX2lkbGUpKHZvaWQpOwotRVhQT1JUX1NZTUJPTChwbV9pZGxlKTsKLQogc3RhdGljIEFUT01JQ19OT1RJRklFUl9IRUFEKGlkbGVfbm90aWZpZXIpOwogCiB2b2lkIGlkbGVfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuKQpAQCAtOTQsMjUgKzg1LDYgQEAKIAlfX2V4aXRfaWRsZSgpOwogfQogCi0vKgotICogV2UgdXNlIHRoaXMgaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgYmV0dGVyCi0gKiBpZGxlIHJvdXRpbmUuLgotICovCi12b2lkIGRlZmF1bHRfaWRsZSh2b2lkKQotewotCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzICY9IH5UU19QT0xMSU5HOwotCS8qCi0JICogVFNfUE9MTElORy1jbGVhcmVkIHN0YXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgd2UKLQkgKiB0ZXN0IE5FRURfUkVTQ0hFRDoKLQkgKi8KLQlzbXBfbWIoKTsKLQlpZiAoIW5lZWRfcmVzY2hlZCgpKQotCQlzYWZlX2hhbHQoKTsJLyogZW5hYmxlcyBpbnRlcnJ1cHRzIHJhY2VsZXNzbHkgKi8KLQllbHNlCi0JCWxvY2FsX2lycV9lbmFibGUoKTsKLQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyB8PSBUU19QT0xMSU5HOwotfQotCiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiBERUNMQVJFX1BFUl9DUFUoaW50LCBjcHVfc3RhdGUpOwogCkBAIC0xNTAsMTIgKzEyMiw5IEBACiAJd2hpbGUgKDEpIHsKIAkJdGlja19ub2h6X3N0b3Bfc2NoZWRfdGljaygpOwogCQl3aGlsZSAoIW5lZWRfcmVzY2hlZCgpKSB7Ci0JCQl2b2lkICgqaWRsZSkodm9pZCk7CiAKIAkJCXJtYigpOwotCQkJaWRsZSA9IHBtX2lkbGU7Ci0JCQlpZiAoIWlkbGUpCi0JCQkJaWRsZSA9IGRlZmF1bHRfaWRsZTsKKwogCQkJaWYgKGNwdV9pc19vZmZsaW5lKHNtcF9wcm9jZXNzb3JfaWQoKSkpCiAJCQkJcGxheV9kZWFkKCk7CiAJCQkvKgpAQCAtMTY1LDcgKzEzNCwxMCBAQAogCQkJICovCiAJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCQkJZW50ZXJfaWRsZSgpOwotCQkJaWRsZSgpOworCQkJLyogRG9uJ3QgdHJhY2UgaXJxcyBvZmYgZm9yIGlkbGUgKi8KKwkJCXN0b3BfY3JpdGljYWxfdGltaW5ncygpOworCQkJcG1faWRsZSgpOworCQkJc3RhcnRfY3JpdGljYWxfdGltaW5ncygpOwogCQkJLyogSW4gbWFueSBjYXNlcyB0aGUgaW50ZXJydXB0IHRoYXQgZW5kZWQgaWRsZQogCQkJICAgaGFzIGFscmVhZHkgY2FsbGVkIGV4aXRfaWRsZS4gQnV0IHNvbWUgaWRsZQogCQkJICAgbG9vcHMgY2FuIGJlIHdva2VuIHVwIHdpdGhvdXQgaW50ZXJydXB0LiAqLwpAQCAtMjk0LDYgKzI2Niw3IEBACiAJLyoKIAkgKiBGb3JnZXQgY29wcm9jZXNzb3Igc3RhdGUuLgogCSAqLworCXRzay0+ZnB1X2NvdW50ZXIgPSAwOwogCWNsZWFyX2ZwdSh0c2spOwogCWNsZWFyX3VzZWRfbWF0aCgpOwogfQpAQCAtMzY1LDEwICszMzgsMTAgQEAKIAlwLT50aHJlYWQuZnMgPSBtZS0+dGhyZWFkLmZzOwogCXAtPnRocmVhZC5ncyA9IG1lLT50aHJlYWQuZ3M7CiAKLQlhc20oIm1vdiAlJWdzLCUwIiA6ICI9bSIgKHAtPnRocmVhZC5nc2luZGV4KSk7Ci0JYXNtKCJtb3YgJSVmcywlMCIgOiAiPW0iIChwLT50aHJlYWQuZnNpbmRleCkpOwotCWFzbSgibW92ICUlZXMsJTAiIDogIj1tIiAocC0+dGhyZWFkLmVzKSk7Ci0JYXNtKCJtb3YgJSVkcywlMCIgOiAiPW0iIChwLT50aHJlYWQuZHMpKTsKKwlzYXZlc2VnbWVudChncywgcC0+dGhyZWFkLmdzaW5kZXgpOworCXNhdmVzZWdtZW50KGZzLCBwLT50aHJlYWQuZnNpbmRleCk7CisJc2F2ZXNlZ21lbnQoZXMsIHAtPnRocmVhZC5lcyk7CisJc2F2ZXNlZ21lbnQoZHMsIHAtPnRocmVhZC5kcyk7CiAKIAlpZiAodW5saWtlbHkodGVzdF90c2tfdGhyZWFkX2ZsYWcobWUsIFRJRl9JT19CSVRNQVApKSkgewogCQlwLT50aHJlYWQuaW9fYml0bWFwX3B0ciA9IGttYWxsb2MoSU9fQklUTUFQX0JZVEVTLCBHRlBfS0VSTkVMKTsKQEAgLTQwNyw3ICszODAsOSBAQAogdm9pZAogc3RhcnRfdGhyZWFkKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIG5ld19pcCwgdW5zaWduZWQgbG9uZyBuZXdfc3ApCiB7Ci0JYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCAlJWZzOyBtb3ZsICUwLCAlJWVzOyBtb3ZsICUwLCAlJWRzIiA6OiAiciIoMCkpOworCWxvYWRzZWdtZW50KGZzLCAwKTsKKwlsb2Fkc2VnbWVudChlcywgMCk7CisJbG9hZHNlZ21lbnQoZHMsIDApOwogCWxvYWRfZ3NfaW5kZXgoMCk7CiAJcmVncy0+aXAJCT0gbmV3X2lwOwogCXJlZ3MtPnNwCQk9IG5ld19zcDsKQEAgLTU2Niw2ICs1NDEsNyBAQAogCQkJCSAqbmV4dCA9ICZuZXh0X3AtPnRocmVhZDsKIAlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCXN0cnVjdCB0c3Nfc3RydWN0ICp0c3MgPSAmcGVyX2NwdShpbml0X3RzcywgY3B1KTsKKwl1bnNpZ25lZCBmc2luZGV4LCBnc2luZGV4OwogCiAJLyogd2UncmUgZ29pbmcgdG8gdXNlIHRoaXMgc29vbiwgYWZ0ZXIgYSBmZXcgZXhwZW5zaXZlIHRoaW5ncyAqLwogCWlmIChuZXh0X3AtPmZwdV9jb3VudGVyPjUpCkBAIC01ODAsMjIgKzU1NiwzOCBAQAogCSAqIFN3aXRjaCBEUyBhbmQgRVMuCiAJICogVGhpcyB3b24ndCBwaWNrIHVwIHRocmVhZCBzZWxlY3RvciBjaGFuZ2VzLCBidXQgSSBndWVzcyB0aGF0IGlzIG9rLgogCSAqLwotCWFzbSB2b2xhdGlsZSgibW92ICUlZXMsJTAiIDogIj1tIiAocHJldi0+ZXMpKTsKKwlzYXZlc2VnbWVudChlcywgcHJldi0+ZXMpOwogCWlmICh1bmxpa2VseShuZXh0LT5lcyB8IHByZXYtPmVzKSkKIAkJbG9hZHNlZ21lbnQoZXMsIG5leHQtPmVzKTsgCi0JCi0JYXNtIHZvbGF0aWxlICgibW92ICUlZHMsJTAiIDogIj1tIiAocHJldi0+ZHMpKTsKKworCXNhdmVzZWdtZW50KGRzLCBwcmV2LT5kcyk7CiAJaWYgKHVubGlrZWx5KG5leHQtPmRzIHwgcHJldi0+ZHMpKQogCQlsb2Fkc2VnbWVudChkcywgbmV4dC0+ZHMpOwogCisKKwkvKiBXZSBtdXN0IHNhdmUgJWZzIGFuZCAlZ3MgYmVmb3JlIGxvYWRfVExTKCkgYmVjYXVzZQorCSAqICVmcyBhbmQgJWdzIG1heSBiZSBjbGVhcmVkIGJ5IGxvYWRfVExTKCkuCisJICoKKwkgKiAoZS5nLiB4ZW5fbG9hZF90bHMoKSkKKwkgKi8KKwlzYXZlc2VnbWVudChmcywgZnNpbmRleCk7CisJc2F2ZXNlZ21lbnQoZ3MsIGdzaW5kZXgpOworCiAJbG9hZF9UTFMobmV4dCwgY3B1KTsKIAorCS8qCisJICogTGVhdmUgbGF6eSBtb2RlLCBmbHVzaGluZyBhbnkgaHlwZXJjYWxscyBtYWRlIGhlcmUuCisJICogVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHJlc3RvcmluZyBUTFMgc2VnbWVudHMgc28KKwkgKiB0aGUgR0RUIGFuZCBMRFQgYXJlIHByb3Blcmx5IHVwZGF0ZWQsIGFuZCBtdXN0IGJlCisJICogZG9uZSBiZWZvcmUgbWF0aF9zdGF0ZV9yZXN0b3JlLCBzbyB0aGUgVFMgYml0IGlzIHVwCisJICogdG8gZGF0ZS4KKwkgKi8KKwlhcmNoX2xlYXZlX2xhenlfY3B1X21vZGUoKTsKKwogCS8qIAogCSAqIFN3aXRjaCBGUyBhbmQgR1MuCiAJICovCiAJeyAKLQkJdW5zaWduZWQgZnNpbmRleDsKLQkJYXNtIHZvbGF0aWxlKCJtb3ZsICUlZnMsJTAiIDogIj1yIiAoZnNpbmRleCkpOyAKIAkJLyogc2VnbWVudCByZWdpc3RlciAhPSAwIGFsd2F5cyByZXF1aXJlcyBhIHJlbG9hZC4gCiAJCSAgIGFsc28gcmVsb2FkIHdoZW4gaXQgaGFzIGNoYW5nZWQuIAogCQkgICB3aGVuIHByZXYgcHJvY2VzcyB1c2VkIDY0Yml0IGJhc2UgYWx3YXlzIHJlbG9hZApAQCAtNjEzLDEwICs2MDUsNyBAQAogCQlpZiAobmV4dC0+ZnMpIAogCQkJd3Jtc3JsKE1TUl9GU19CQVNFLCBuZXh0LT5mcyk7IAogCQlwcmV2LT5mc2luZGV4ID0gZnNpbmRleDsKLQl9Ci0JeyAKLQkJdW5zaWduZWQgZ3NpbmRleDsKLQkJYXNtIHZvbGF0aWxlKCJtb3ZsICUlZ3MsJTAiIDogIj1yIiAoZ3NpbmRleCkpOyAKKwogCQlpZiAodW5saWtlbHkoZ3NpbmRleCB8IG5leHQtPmdzaW5kZXggfCBwcmV2LT5ncykpIHsKIAkJCWxvYWRfZ3NfaW5kZXgobmV4dC0+Z3NpbmRleCk7CiAJCQlpZiAoZ3NpbmRleCkKQEAgLTc5Nyw3ICs3ODYsNyBAQAogCQkJc2V0XzMyYml0X3Rscyh0YXNrLCBGU19UTFMsIGFkZHIpOwogCQkJaWYgKGRvaXQpIHsKIAkJCQlsb2FkX1RMUygmdGFzay0+dGhyZWFkLCBjcHUpOwotCQkJCWFzbSB2b2xhdGlsZSgibW92bCAlMCwlJWZzIiA6OiAiciIoRlNfVExTX1NFTCkpOworCQkJCWxvYWRzZWdtZW50KGZzLCBGU19UTFNfU0VMKTsKIAkJCX0KIAkJCXRhc2stPnRocmVhZC5mc2luZGV4ID0gRlNfVExTX1NFTDsKIAkJCXRhc2stPnRocmVhZC5mcyA9IDA7CkBAIC04MDcsNyArNzk2LDcgQEAKIAkJCWlmIChkb2l0KSB7CiAJCQkJLyogc2V0IHRoZSBzZWxlY3RvciB0byAwIHRvIG5vdCBjb25mdXNlCiAJCQkJICAgX19zd2l0Y2hfdG8gKi8KLQkJCQlhc20gdm9sYXRpbGUoIm1vdmwgJTAsJSVmcyIgOjogInIiICgwKSk7CisJCQkJbG9hZHNlZ21lbnQoZnMsIDApOwogCQkJCXJldCA9IGNoZWNraW5nX3dybXNybChNU1JfRlNfQkFTRSwgYWRkcik7CiAJCQl9CiAJCX0KQEAgLTgzMCw3ICs4MTksNyBAQAogCQlpZiAodGFzay0+dGhyZWFkLmdzaW5kZXggPT0gR1NfVExTX1NFTCkKIAkJCWJhc2UgPSByZWFkXzMyYml0X3Rscyh0YXNrLCBHU19UTFMpOwogCQllbHNlIGlmIChkb2l0KSB7Ci0JCQlhc20oIm1vdmwgJSVncywlMCIgOiAiPXIiIChnc2luZGV4KSk7CisJCQlzYXZlc2VnbWVudChncywgZ3NpbmRleCk7CiAJCQlpZiAoZ3NpbmRleCkKIAkJCQlyZG1zcmwoTVNSX0tFUk5FTF9HU19CQVNFLCBiYXNlKTsKIAkJCWVsc2UKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYwppbmRleCBhNzgzNWYyLi43NzA0MGI2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3B0cmFjZS5jCkBAIC05NDMsMTMgKzk0MywxMyBAQAogCQlyZXR1cm4gY29weV9yZWdzZXRfdG9fdXNlcihjaGlsZCwgJnVzZXJfeDg2XzMyX3ZpZXcsCiAJCQkJCSAgIFJFR1NFVF9YRlAsCiAJCQkJCSAgIDAsIHNpemVvZihzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCksCi0JCQkJCSAgIGRhdGFwKTsKKwkJCQkJICAgZGF0YXApID8gLUVJTyA6IDA7CiAKIAljYXNlIFBUUkFDRV9TRVRGUFhSRUdTOgkvKiBTZXQgdGhlIGNoaWxkIGV4dGVuZGVkIEZQVSBzdGF0ZS4gKi8KIAkJcmV0dXJuIGNvcHlfcmVnc2V0X2Zyb21fdXNlcihjaGlsZCwgJnVzZXJfeDg2XzMyX3ZpZXcsCiAJCQkJCSAgICAgUkVHU0VUX1hGUCwKIAkJCQkJICAgICAwLCBzaXplb2Yoc3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QpLAotCQkJCQkgICAgIGRhdGFwKTsKKwkJCQkJICAgICBkYXRhcCkgPyAtRUlPIDogMDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZCBDT05GSUdfWDg2XzMyIHx8IGRlZmluZWQgQ09ORklHX0lBMzJfRU1VTEFUSU9OCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHZjbG9jay5jIGIvYXJjaC94ODYva2VybmVsL3B2Y2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZiZTlhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3B2Y2xvY2suYwpAQCAtMCwwICsxLDE0MSBAQAorLyogIHBhcmF2aXJ0dWFsIGNsb2NrIC0tIGNvbW1vbiBjb2RlIHVzZWQgYnkga3ZtL3hlbgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxhc20vcHZjbG9jay5oPgorCisvKgorICogVGhlc2UgYXJlIHBlcm9kaWNhbGx5IHVwZGF0ZWQKKyAqICAgIHhlbjogbWFnaWMgc2hhcmVkX2luZm8gcGFnZQorICogICAga3ZtOiBncGEgcmVnaXN0ZXJlZCB2aWEgbXNyCisgKiBhbmQgdGhlbiBjb3BpZWQgaGVyZS4KKyAqLworc3RydWN0IHB2Y2xvY2tfc2hhZG93X3RpbWUgeworCXU2NCB0c2NfdGltZXN0YW1wOyAgICAgLyogVFNDIGF0IGxhc3QgdXBkYXRlIG9mIHRpbWUgdmFscy4gICovCisJdTY0IHN5c3RlbV90aW1lc3RhbXA7ICAvKiBUaW1lLCBpbiBuYW5vc2Vjcywgc2luY2UgYm9vdC4gICAgKi8KKwl1MzIgdHNjX3RvX25zZWNfbXVsOworCWludCB0c2Nfc2hpZnQ7CisJdTMyIHZlcnNpb247Cit9OworCisvKgorICogU2NhbGUgYSA2NC1iaXQgZGVsdGEgYnkgc2NhbGluZyBhbmQgbXVsdGlwbHlpbmcgYnkgYSAzMi1iaXQgZnJhY3Rpb24sCisgKiB5aWVsZGluZyBhIDY0LWJpdCByZXN1bHQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdTY0IHNjYWxlX2RlbHRhKHU2NCBkZWx0YSwgdTMyIG11bF9mcmFjLCBpbnQgc2hpZnQpCit7CisJdTY0IHByb2R1Y3Q7CisjaWZkZWYgX19pMzg2X18KKwl1MzIgdG1wMSwgdG1wMjsKKyNlbmRpZgorCisJaWYgKHNoaWZ0IDwgMCkKKwkJZGVsdGEgPj49IC1zaGlmdDsKKwllbHNlCisJCWRlbHRhIDw8PSBzaGlmdDsKKworI2lmZGVmIF9faTM4Nl9fCisJX19hc21fXyAoCisJCSJtdWwgICU1ICAgICAgIDsgIgorCQkibW92ICAlNCwlJWVheCA7ICIKKwkJIm1vdiAgJSVlZHgsJTQgOyAiCisJCSJtdWwgICU1ICAgICAgIDsgIgorCQkieG9yICAlNSwlNSAgICA7ICIKKwkJImFkZCAgJTQsJSVlYXggOyAiCisJCSJhZGMgICU1LCUlZWR4IDsgIgorCQk6ICI9QSIgKHByb2R1Y3QpLCAiPXIiICh0bXAxKSwgIj1yIiAodG1wMikKKwkJOiAiYSIgKCh1MzIpZGVsdGEpLCAiMSIgKCh1MzIpKGRlbHRhID4+IDMyKSksICIyIiAobXVsX2ZyYWMpICk7CisjZWxpZiBfX3g4Nl82NF9fCisJX19hc21fXyAoCisJCSJtdWwgJSVyZHggOyBzaHJkICQzMiwlJXJkeCwlJXJheCIKKwkJOiAiPWEiIChwcm9kdWN0KSA6ICIwIiAoZGVsdGEpLCAiZCIgKCh1NjQpbXVsX2ZyYWMpICk7CisjZWxzZQorI2Vycm9yIGltcGxlbWVudCBtZSEKKyNlbmRpZgorCisJcmV0dXJuIHByb2R1Y3Q7Cit9CisKK3N0YXRpYyB1NjQgcHZjbG9ja19nZXRfbnNlY19vZmZzZXQoc3RydWN0IHB2Y2xvY2tfc2hhZG93X3RpbWUgKnNoYWRvdykKK3sKKwl1NjQgZGVsdGEgPSBuYXRpdmVfcmVhZF90c2MoKSAtIHNoYWRvdy0+dHNjX3RpbWVzdGFtcDsKKwlyZXR1cm4gc2NhbGVfZGVsdGEoZGVsdGEsIHNoYWRvdy0+dHNjX3RvX25zZWNfbXVsLCBzaGFkb3ctPnRzY19zaGlmdCk7Cit9CisKKy8qCisgKiBSZWFkcyBhIGNvbnNpc3RlbnQgc2V0IG9mIHRpbWUtYmFzZSB2YWx1ZXMgZnJvbSBoeXBlcnZpc29yLAorICogaW50byBhIHNoYWRvdyBkYXRhIGFyZWEuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBwdmNsb2NrX2dldF90aW1lX3ZhbHVlcyhzdHJ1Y3QgcHZjbG9ja19zaGFkb3dfdGltZSAqZHN0LAorCQkJCQlzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjKQoreworCWRvIHsKKwkJZHN0LT52ZXJzaW9uID0gc3JjLT52ZXJzaW9uOworCQlybWIoKTsJCS8qIGZldGNoIHZlcnNpb24gYmVmb3JlIGRhdGEgKi8KKwkJZHN0LT50c2NfdGltZXN0YW1wICAgICA9IHNyYy0+dHNjX3RpbWVzdGFtcDsKKwkJZHN0LT5zeXN0ZW1fdGltZXN0YW1wICA9IHNyYy0+c3lzdGVtX3RpbWU7CisJCWRzdC0+dHNjX3RvX25zZWNfbXVsICAgPSBzcmMtPnRzY190b19zeXN0ZW1fbXVsOworCQlkc3QtPnRzY19zaGlmdCAgICAgICAgID0gc3JjLT50c2Nfc2hpZnQ7CisJCXJtYigpOwkJLyogdGVzdCB2ZXJzaW9uIGFmdGVyIGZldGNoaW5nIGRhdGEgKi8KKwl9IHdoaWxlICgoc3JjLT52ZXJzaW9uICYgMSkgfHwgKGRzdC0+dmVyc2lvbiAhPSBzcmMtPnZlcnNpb24pKTsKKworCXJldHVybiBkc3QtPnZlcnNpb247Cit9CisKK2N5Y2xlX3QgcHZjbG9ja19jbG9ja3NvdXJjZV9yZWFkKHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICpzcmMpCit7CisJc3RydWN0IHB2Y2xvY2tfc2hhZG93X3RpbWUgc2hhZG93OworCXVuc2lnbmVkIHZlcnNpb247CisJY3ljbGVfdCByZXQsIG9mZnNldDsKKworCWRvIHsKKwkJdmVyc2lvbiA9IHB2Y2xvY2tfZ2V0X3RpbWVfdmFsdWVzKCZzaGFkb3csIHNyYyk7CisJCWJhcnJpZXIoKTsKKwkJb2Zmc2V0ID0gcHZjbG9ja19nZXRfbnNlY19vZmZzZXQoJnNoYWRvdyk7CisJCXJldCA9IHNoYWRvdy5zeXN0ZW1fdGltZXN0YW1wICsgb2Zmc2V0OworCQliYXJyaWVyKCk7CisJfSB3aGlsZSAodmVyc2lvbiAhPSBzcmMtPnZlcnNpb24pOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCBwdmNsb2NrX3JlYWRfd2FsbGNsb2NrKHN0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgKndhbGxfY2xvY2ssCisJCQkgICAgc3RydWN0IHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gKnZjcHVfdGltZSwKKwkJCSAgICBzdHJ1Y3QgdGltZXNwZWMgKnRzKQoreworCXUzMiB2ZXJzaW9uOworCXU2NCBkZWx0YTsKKwlzdHJ1Y3QgdGltZXNwZWMgbm93OworCisJLyogZ2V0IHdhbGxjbG9jayBhdCBzeXN0ZW0gYm9vdCAqLworCWRvIHsKKwkJdmVyc2lvbiA9IHdhbGxfY2xvY2stPnZlcnNpb247CisJCXJtYigpOwkJLyogZmV0Y2ggdmVyc2lvbiBiZWZvcmUgdGltZSAqLworCQlub3cudHZfc2VjICA9IHdhbGxfY2xvY2stPnNlYzsKKwkJbm93LnR2X25zZWMgPSB3YWxsX2Nsb2NrLT5uc2VjOworCQlybWIoKTsJCS8qIGZldGNoIHRpbWUgYmVmb3JlIGNoZWNraW5nIHZlcnNpb24gKi8KKwl9IHdoaWxlICgod2FsbF9jbG9jay0+dmVyc2lvbiAmIDEpIHx8ICh2ZXJzaW9uICE9IHdhbGxfY2xvY2stPnZlcnNpb24pKTsKKworCWRlbHRhID0gcHZjbG9ja19jbG9ja3NvdXJjZV9yZWFkKHZjcHVfdGltZSk7CS8qIHRpbWUgc2luY2Ugc3lzdGVtIGJvb3QgKi8KKwlkZWx0YSArPSBub3cudHZfc2VjICogKHU2NClOU0VDX1BFUl9TRUMgKyBub3cudHZfbnNlYzsKKworCW5vdy50dl9uc2VjID0gZG9fZGl2KGRlbHRhLCBOU0VDX1BFUl9TRUMpOworCW5vdy50dl9zZWMgPSBkZWx0YTsKKworCXNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHRzLCBub3cudHZfc2VjLCBub3cudHZfbnNlYyk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMKaW5kZXggZDg5YTY0OC4uNzliZGNkMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3F1aXJrcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9xdWlya3MuYwpAQCAtNjUsNiArNjUsNyBAQAogCUlDSF9GT1JDRV9IUEVUX1JFU1VNRSwKIAlWVDgyMzdfRk9SQ0VfSFBFVF9SRVNVTUUsCiAJTlZJRElBX0ZPUkNFX0hQRVRfUkVTVU1FLAorCUFUSV9GT1JDRV9IUEVUX1JFU1VNRSwKIH0gZm9yY2VfaHBldF9yZXN1bWVfdHlwZTsKIAogc3RhdGljIHZvaWQgX19pb21lbSAqcmNiYV9iYXNlOwpAQCAtMTU4LDYgKzE1OSw4IEBACiAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQjJfMCwKIAkJCSBpY2hfZm9yY2VfZW5hYmxlX2hwZXQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8wLAorCQkJIGljaF9mb3JjZV9lbmFibGVfaHBldCk7CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzEsCiAJCQkgaWNoX2ZvcmNlX2VuYWJsZV9ocGV0KTsKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMCwKQEAgLTE3NCw2ICsxNzcsMTIgQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpjYWNoZWRfZGV2OwogCitzdGF0aWMgdm9pZCBocGV0X3ByaW50X2ZvcmNlX2luZm8odm9pZCkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJIUEVUIG5vdCBlbmFibGVkIGluIEJJT1MuICIKKwkgICAgICAgIllvdSBtaWdodCB0cnkgaHBldD1mb3JjZSBib290IG9wdGlvblxuIik7Cit9CisKIHN0YXRpYyB2b2lkIG9sZF9pY2hfZm9yY2VfaHBldF9yZXN1bWUodm9pZCkKIHsKIAl1MzIgdmFsOwpAQCAtMjUzLDYgKzI2Miw4IEBACiB7CiAJaWYgKGhwZXRfZm9yY2VfdXNlcikKIAkJb2xkX2ljaF9mb3JjZV9lbmFibGVfaHBldChkZXYpOworCWVsc2UKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CiB9CiAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMCwKQEAgLTI5MCw5ICszMDEsMTQgQEAKIHsKIAl1MzIgdW5pbml0aWFsaXplZF92YXIodmFsKTsKIAotCWlmICghaHBldF9mb3JjZV91c2VyIHx8IGhwZXRfYWRkcmVzcyB8fCBmb3JjZV9ocGV0X2FkZHJlc3MpCisJaWYgKGhwZXRfYWRkcmVzcyB8fCBmb3JjZV9ocGV0X2FkZHJlc3MpCiAJCXJldHVybjsKIAorCWlmICghaHBldF9mb3JjZV91c2VyKSB7CisJCWhwZXRfcHJpbnRfZm9yY2VfaW5mbygpOworCQlyZXR1cm47CisJfQorCiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg2OCwgJnZhbCk7CiAJLyoKIAkgKiBCaXQgNyBpcyBIUEVUIGVuYWJsZSBiaXQuCkBAIC0zMzAsNiArMzQ2LDM2IEBACiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9WSUEsIFBDSV9ERVZJQ0VfSURfVklBXzgyMzcsCiAJCQkgdnQ4MjM3X2ZvcmNlX2VuYWJsZV9ocGV0KTsKIAorc3RhdGljIHZvaWQgYXRpX2ZvcmNlX2hwZXRfcmVzdW1lKHZvaWQpCit7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChjYWNoZWRfZGV2LCAweDE0LCAweGZlZDAwMDAwKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiRm9yY2UgZW5hYmxlZCBIUEVUIGF0IHJlc3VtZVxuIik7Cit9CisKK3N0YXRpYyB2b2lkIGF0aV9mb3JjZV9lbmFibGVfaHBldChzdHJ1Y3QgcGNpX2RldiAqZGV2KQoreworCXUzMiB1bmluaXRpYWxpemVkX3Zhcih2YWwpOworCisJaWYgKGhwZXRfYWRkcmVzcyB8fCBmb3JjZV9ocGV0X2FkZHJlc3MpCisJCXJldHVybjsKKworCWlmICghaHBldF9mb3JjZV91c2VyKSB7CisJCWhwZXRfcHJpbnRfZm9yY2VfaW5mbygpOworCQlyZXR1cm47CisJfQorCisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4MTQsIDB4ZmVkMDAwMDApOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIDB4MTQsICZ2YWwpOworCWZvcmNlX2hwZXRfYWRkcmVzcyA9IHZhbDsKKwlmb3JjZV9ocGV0X3Jlc3VtZV90eXBlID0gQVRJX0ZPUkNFX0hQRVRfUkVTVU1FOworCWRldl9wcmludGsoS0VSTl9ERUJVRywgJmRldi0+ZGV2LCAiRm9yY2UgZW5hYmxlZCBIUEVUIGF0IDB4JWx4XG4iLAorCQkgICBmb3JjZV9ocGV0X2FkZHJlc3MpOworCWNhY2hlZF9kZXYgPSBkZXY7CisJcmV0dXJuOworfQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9JWFA0MDBfU01CVVMsCisJCQkgYXRpX2ZvcmNlX2VuYWJsZV9ocGV0KTsKKwogLyoKICAqIFVuZG9jdW1lbnRlZCBjaGlwc2V0IGZlYXR1cmUgdGFrZW4gZnJvbSBMaW51eEJJT1MuCiAgKi8KQEAgLTM0Myw5ICszODksMTQgQEAKIHsKIAl1MzIgdW5pbml0aWFsaXplZF92YXIodmFsKTsKIAotCWlmICghaHBldF9mb3JjZV91c2VyIHx8IGhwZXRfYWRkcmVzcyB8fCBmb3JjZV9ocGV0X2FkZHJlc3MpCisJaWYgKGhwZXRfYWRkcmVzcyB8fCBmb3JjZV9ocGV0X2FkZHJlc3MpCiAJCXJldHVybjsKIAorCWlmICghaHBldF9mb3JjZV91c2VyKSB7CisJCWhwZXRfcHJpbnRfZm9yY2VfaW5mbygpOworCQlyZXR1cm47CisJfQorCiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4NDQsIDB4ZmVkMDAwMDEpOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIDB4NDQsICZ2YWwpOwogCWZvcmNlX2hwZXRfYWRkcmVzcyA9IHZhbCAmIDB4ZmZmZmZmZmU7CkBAIC0zOTcsNiArNDQ4LDkgQEAKIAljYXNlIE5WSURJQV9GT1JDRV9IUEVUX1JFU1VNRToKIAkJbnZpZGlhX2ZvcmNlX2hwZXRfcmVzdW1lKCk7CiAJCXJldHVybjsKKwljYXNlIEFUSV9GT1JDRV9IUEVUX1JFU1VNRToKKwkJYXRpX2ZvcmNlX2hwZXRfcmVzdW1lKCk7CisJCXJldHVybjsKIAlkZWZhdWx0OgogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMKaW5kZXggZjZiZTdkNS4uZjhhNjIxNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3JlYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYwpAQCAtMjcsNyArMjcsNyBAQAogdm9pZCAoKnBtX3Bvd2VyX29mZikodm9pZCk7CiBFWFBPUlRfU1lNQk9MKHBtX3Bvd2VyX29mZik7CiAKLXN0YXRpYyBsb25nIG5vX2lkdFszXTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGVzY19wdHIgbm9faWR0ID0ge307CiBzdGF0aWMgaW50IHJlYm9vdF9tb2RlOwogZW51bSByZWJvb3RfdHlwZSByZWJvb3RfdHlwZSA9IEJPT1RfS0JEOwogaW50IHJlYm9vdF9mb3JjZTsKQEAgLTIwMSwxNSArMjAxLDE1IEBACiAgICBjb250cm9sbGVyIHRvIHB1bHNlIHRoZSBDUFUgcmVzZXQgbGluZSwgd2hpY2ggaXMgbW9yZSB0aG9yb3VnaCwgYnV0CiAgICBkb2Vzbid0IHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgdHlwZSBvZiA0ODYgbW90aGVyYm9hcmQuICBJdCBpcyBlYXN5CiAgICB0byBzdG9wIHRoaXMgY29kZSB3b3JraW5nOyBoZW5jZSB0aGUgY29waW91cyBjb21tZW50cy4gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcKIHJlYWxfbW9kZV9nZHRfZW50cmllcyBbM10gPQogewogCTB4MDAwMDAwMDAwMDAwMDAwMFVMTCwJLyogTnVsbCBkZXNjcmlwdG9yICovCi0JMHgwMDAwOWEwMDAwMDBmZmZmVUxMLAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBjb2RlIGF0IDB4MDAwMDAwMDAgKi8KLQkweDAwMDA5MjAwMDEwMGZmZmZVTEwJLyogMTYtYml0IHJlYWwtbW9kZSA2NGsgZGF0YSBhdCAweDAwMDAwMTAwICovCisJMHgwMDAwOWIwMDAwMDBmZmZmVUxMLAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBjb2RlIGF0IDB4MDAwMDAwMDAgKi8KKwkweDAwMDA5MzAwMDEwMGZmZmZVTEwJLyogMTYtYml0IHJlYWwtbW9kZSA2NGsgZGF0YSBhdCAweDAwMDAwMTAwICovCiB9OwogCi1zdGF0aWMgc3RydWN0IGRlc2NfcHRyCitzdGF0aWMgY29uc3Qgc3RydWN0IGRlc2NfcHRyCiByZWFsX21vZGVfZ2R0ID0geyBzaXplb2YgKHJlYWxfbW9kZV9nZHRfZW50cmllcykgLSAxLCAobG9uZylyZWFsX21vZGVfZ2R0X2VudHJpZXMgfSwKIHJlYWxfbW9kZV9pZHQgPSB7IDB4M2ZmLCAwIH07CiAKQEAgLTIzMSw3ICsyMzEsNyBAQAogCiAgICBNb3JlIGNvdWxkIGJlIGRvbmUgaGVyZSB0byBzZXQgdXAgdGhlIHJlZ2lzdGVycyBhcyBpZiBhIENQVSByZXNldCBoYWQKICAgIG9jY3VycmVkOyBob3BlZnVsbHkgcmVhbCBCSU9TcyBkb24ndCBhc3N1bWUgbXVjaC4gKi8KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJlYWxfbW9kZV9zd2l0Y2ggW10gPQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmVhbF9tb2RlX3N3aXRjaCBbXSA9CiB7CiAJMHg2NiwgMHgwZiwgMHgyMCwgMHhjMCwJCQkvKiAgICBtb3ZsICAlY3IwLCVlYXggICAgICAgICovCiAJMHg2NiwgMHg4MywgMHhlMCwgMHgxMSwJCQkvKiAgICBhbmRsICAkMHgwMDAwMDAxMSwlZWF4ICovCkBAIC0yNDUsNyArMjQ1LDcgQEAKIAkweDI0LCAweDEwLAkJCQkvKiBmOiBhbmRiICAkMHgxMCxhbCAgICAgICAgICovCiAJMHg2NiwgMHgwZiwgMHgyMiwgMHhjMAkJCS8qICAgIG1vdmwgICVlYXgsJWNyMCAgICAgICAgKi8KIH07Ci1zdGF0aWMgdW5zaWduZWQgY2hhciBqdW1wX3RvX2Jpb3MgW10gPQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIganVtcF90b19iaW9zIFtdID0KIHsKIAkweGVhLCAweDAwLCAweDAwLCAweGZmLCAweGZmCQkvKiAgICBsam1wICAkMHhmZmZmLCQweDAwMDAgICovCiB9OwpAQCAtMjU1LDcgKzI1NSw3IEBACiAgKiBzcGVjaWZpZWQgYnkgdGhlIGNvZGUgYW5kIGxlbmd0aCBwYXJhbWV0ZXJzLgogICogV2UgYXNzdW1lIHRoYXQgbGVuZ3RoIHdpbGwgYXdheXMgYmUgbGVzcyB0aGF0IDEwMCEKICAqLwotdm9pZCBtYWNoaW5lX3JlYWxfcmVzdGFydCh1bnNpZ25lZCBjaGFyICpjb2RlLCBpbnQgbGVuZ3RoKQordm9pZCBtYWNoaW5lX3JlYWxfcmVzdGFydChjb25zdCB1bnNpZ25lZCBjaGFyICpjb2RlLCBpbnQgbGVuZ3RoKQogewogCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKQEAgLTM2OCw3ICszNjgsNyBAQAogCQkJfQogCiAJCWNhc2UgQk9PVF9UUklQTEU6Ci0JCQlsb2FkX2lkdCgoY29uc3Qgc3RydWN0IGRlc2NfcHRyICopJm5vX2lkdCk7CisJCQlsb2FkX2lkdCgmbm9faWR0KTsKIAkJCV9fYXNtX18gX192b2xhdGlsZV9fKCJpbnQzIik7CiAKIAkJCXJlYm9vdF90eXBlID0gQk9PVF9LQkQ7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290X2ZpeHVwc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdF9maXh1cHNfMzIuYwppbmRleCBkZWMwYjVlLi42MWE4Mzc3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290X2ZpeHVwc18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3RfZml4dXBzXzMyLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIAl2b2lkICgqcmVib290X2ZpeHVwKShzdHJ1Y3QgcGNpX2RldiAqKTsKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2ZpeHVwIGZpeHVwc190YWJsZVtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfZml4dXAgZml4dXBzX3RhYmxlW10gPSB7CiB7IFBDSV9WRU5ET1JfSURfQ1lSSVgsIFBDSV9ERVZJQ0VfSURfQ1lSSVhfNTUzMF9MRUdBQ1ksIGNzNTUzMGFfd2FybV9yZXNldCB9LAogeyBQQ0lfVkVORE9SX0lEX0FNRCwgUENJX0RFVklDRV9JRF9BTURfQ1M1NTM2X0lTQSwgY3M1NTM2X3dhcm1fcmVzZXQgfSwKIHsgUENJX1ZFTkRPUl9JRF9OUywgUENJX0RFVklDRV9JRF9OU19TQzExMDBfQlJJREdFLCBjczU1MzBhX3dhcm1fcmVzZXQgfSwKQEAgLTY0LDcgKzY0LDcgQEAKICAqLwogdm9pZCBtYWNoX3JlYm9vdF9maXh1cHModm9pZCkKIHsKLQlzdHJ1Y3QgZGV2aWNlX2ZpeHVwICpjdXI7CisJY29uc3Qgc3RydWN0IGRldmljZV9maXh1cCAqY3VyOwogCXN0cnVjdCBwY2lfZGV2ICpkZXY7CiAJaW50IGk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9ydGMuYyBiL2FyY2gveDg2L2tlcm5lbC9ydGMuYwppbmRleCA5NjE1ZWVlLi4wNTE5MWJiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcnRjLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3J0Yy5jCkBAIC00LDYgKzQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxsaW51eC9iY2QuaD4KICNpbmNsdWRlIDxsaW51eC9tYzE0NjgxOHJ0Yy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BucC5oPgogCiAjaW5jbHVkZSA8YXNtL3RpbWUuaD4KICNpbmNsdWRlIDxhc20vdnN5c2NhbGwuaD4KQEAgLTE5NywzICsxOTksMzUgQEAKIH0KIEVYUE9SVF9TWU1CT0wobmF0aXZlX3JlYWRfdHNjKTsKIAorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHJ0Y19yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IFJUQ19QT1JUKDApLAorCQkuZW5kCT0gUlRDX1BPUlQoMSksCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSU8sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydAk9IFJUQ19JUlEsCisJCS5lbmQJPSBSVENfSVJRLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBydGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJydGNfY21vcyIsCisJLmlkCQk9IC0xLAorCS5yZXNvdXJjZQk9IHJ0Y19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHJ0Y19yZXNvdXJjZXMpLAorfTsKKworc3RhdGljIF9faW5pdCBpbnQgYWRkX3J0Y19jbW9zKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX1BOUAorCWlmICghcG5wX3BsYXRmb3JtX2RldmljZXMpCisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcnRjX2RldmljZSk7CisjZWxzZQorCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcnRjX2RldmljZSk7CisjZW5kaWYgLyogQ09ORklHX1BOUCAqLworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKGFkZF9ydGNfY21vcyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jCmluZGV4IDZmODBiODUuLjM2YzU0MGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jCkBAIC0xLDEzOSArMSw4ODkgQEAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisvKgorICogIENvcHlyaWdodCAoQykgMTk5NSAgTGludXMgVG9ydmFsZHMKKyAqCisgKiAgU3VwcG9ydCBvZiBCSUdNRU0gYWRkZWQgYnkgR2VyaGFyZCBXaWNoZXJ0LCBTaWVtZW5zIEFHLCBKdWx5IDE5OTkKKyAqCisgKiAgTWVtb3J5IHJlZ2lvbiBzdXBwb3J0CisgKglEYXZpZCBQYXJzb25zIDxvcmNAcGVsbC5jaGkuaWwudXM+LCBKdWx5LUF1Z3VzdCAxOTk5CisgKgorICogIEFkZGVkIEU4MjAgc2FuaXRpemF0aW9uIHJvdXRpbmUgKHJlbW92ZXMgb3ZlcmxhcHBpbmcgbWVtb3J5IHJlZ2lvbnMpOworICogIEJyaWFuIE1veWxlIDxibW95bGVAbXZpc3RhLmNvbT4sIEZlYnJ1YXJ5IDIwMDEKKyAqCisgKiBNb3ZlZCBDUFUgZGV0ZWN0aW9uIGNvZGUgdG8gY3B1LyR7Y3B1fS5jCisgKiAgICBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPiwgTWFyY2ggMjAwMgorICoKKyAqICBQcm92aXNpb25zIGZvciBlbXB0eSBFODIwIG1lbW9yeSByZWdpb25zIChyZXBvcnRlZCBieSBjZXJ0YWluIEJJT1NlcykuCisgKiAgQWxleCBBY2hlbmJhY2ggPHhlbGFAc2xpdC5kZT4sIERlY2VtYmVyIDIwMDIuCisgKgorICovCisKKy8qCisgKiBUaGlzIGZpbGUgaGFuZGxlcyB0aGUgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBwYXJ0cyBvZiBpbml0aWFsaXphdGlvbgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW16b25lLmg+CisjaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvYXBtX2Jpb3MuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CisjaW5jbHVkZSA8bGludXgvbWNhLmg+CisjaW5jbHVkZSA8bGludXgvcm9vdF9kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZWZpLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgorI2luY2x1ZGUgPGxpbnV4L2lzY3NpX2liZnQuaD4KKyNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgorI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CisjaW5jbHVkZSA8bGludXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0X29oY2kxMzk0X2RtYS5oPgorI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+CisKKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgorI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC91c2VyLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisKKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgorI2luY2x1ZGUgPGxpbnV4L2lzY3NpX2liZnQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorCiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgorCisjaW5jbHVkZSA8dmlkZW8vZWRpZC5oPgorCisjaW5jbHVkZSA8YXNtL210cnIuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2VmaS5oPgorI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgorI2luY2x1ZGUgPGFzbS9kbWkuaD4KKyNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9pc3QuaD4KKyNpbmNsdWRlIDxhc20vdm1pLmg+CisjaW5jbHVkZSA8c2V0dXBfYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vYnVncy5oPgorCisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vZGVzYy5oPgorI2luY2x1ZGUgPGFzbS9kbWEuaD4KKyNpbmNsdWRlIDxhc20vZ2FydC5oPgorI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgorI2luY2x1ZGUgPGFzbS9wcm90by5oPgorCisjaW5jbHVkZSA8bWFjaF9hcGljLmg+CisjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisKICNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgotI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KICNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgotCi0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi11bnNpZ25lZCBpbnQgbnVtX3Byb2Nlc3NvcnM7Ci11bnNpZ25lZCBkaXNhYmxlZF9jcHVzIF9fY3B1aW5pdGRhdGE7Ci0vKiBQcm9jZXNzb3IgdGhhdCBpcyBkb2luZyB0aGUgYm9vdCB1cCAqLwotdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCA9IC0xVTsKLUVYUE9SVF9TWU1CT0woYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKLQotREVGSU5FX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCkgPSBCQURfQVBJQ0lEOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9jcHVfdG9fYXBpY2lkKTsKLQotLyogQml0bWFzayBvZiBwaHlzaWNhbGx5IGV4aXN0aW5nIENQVXMgKi8KLXBoeXNpZF9tYXNrX3QgcGh5c19jcHVfcHJlc2VudF9tYXA7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorI2luY2x1ZGUgPGFzbS9udW1hXzY0Lmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBKSAmJiBkZWZpbmVkKENPTkZJR19YODZfU01QKQorI2lmbmRlZiBBUkNIX1NFVFVQCisjZGVmaW5lIEFSQ0hfU0VUVVAKKyNlbmRpZgorCisjaWZuZGVmIENPTkZJR19ERUJVR19CT09UX1BBUkFNUworc3RydWN0IGJvb3RfcGFyYW1zIF9faW5pdGRhdGEgYm9vdF9wYXJhbXM7CisjZWxzZQorc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOworI2VuZGlmCisKIC8qCi0gKiBDb3B5IGRhdGEgdXNlZCBpbiBlYXJseSBpbml0IHJvdXRpbmVzIGZyb20gdGhlIGluaXRpYWwgYXJyYXlzIHRvIHRoZQotICogcGVyIGNwdSBkYXRhIGFyZWFzLiAgVGhlc2UgYXJyYXlzIHRoZW4gYmVjb21lIGV4cGVuZGFibGUgYW5kIHRoZQotICogKl9lYXJseV9wdHIncyBhcmUgemVyb2VkIGluZGljYXRpbmcgdGhhdCB0aGUgc3RhdGljIGFycmF5cyBhcmUgZ29uZS4KKyAqIE1hY2hpbmUgc2V0dXAuLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfcGVyX2NwdV9tYXBzKHZvaWQpCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGRhdGFfcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiS2VybmVsIGRhdGEiLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgY29kZV9yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJLZXJuZWwgY29kZSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBic3NfcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiS2VybmVsIGJzcyIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQorfTsKKworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorLyogVGhpcyB2YWx1ZSBpcyBzZXQgdXAgYnkgdGhlIGVhcmx5IGJvb3QgY29kZSB0byBwb2ludCB0byB0aGUgdmFsdWUKKyAgIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBib290IHRpbWUgcGFnZSB0YWJsZXMuICBJdCBjb250YWlucyBhICpwaHlzaWNhbCoKKyAgIGFkZHJlc3MsIGFuZCBtdXN0IG5vdCBiZSBpbiB0aGUgLmJzcyBzZWdtZW50ISAqLwordW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19zdGFydCBfX2luaXRkYXRhID0gfjBVTDsKK3Vuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfZW5kIF9faW5pdGRhdGEgPSB+MFVMOworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHZpZGVvX3JhbV9yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJWaWRlbyBSQU0gYXJlYSIsCisJLnN0YXJ0CT0gMHhhMDAwMCwKKwkuZW5kCT0gMHhiZmZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQorfTsKKworLyogY3B1IGRhdGEgYXMgZGV0ZWN0ZWQgYnkgdGhlIGFzc2VtYmx5IGNvZGUgaW4gaGVhZC5TICovCitzdHJ1Y3QgY3B1aW5mb194ODYgbmV3X2NwdV9kYXRhIF9fY3B1aW5pdGRhdGEgPSB7MCwgMCwgMCwgMCwgLTEsIDEsIDAsIDAsIC0xfTsKKy8qIGNvbW1vbiBjcHUgZGF0YSBmb3IgYWxsIGNwdXMgKi8KK3N0cnVjdCBjcHVpbmZvX3g4NiBib290X2NwdV9kYXRhIF9fcmVhZF9tb3N0bHkgPSB7MCwgMCwgMCwgMCwgLTEsIDEsIDAsIDAsIC0xfTsKK0VYUE9SVF9TWU1CT0woYm9vdF9jcHVfZGF0YSk7CitzdGF0aWMgdm9pZCBzZXRfbWNhX2J1cyhpbnQgeCkKIHsKLQlpbnQgY3B1OwotCi0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQlwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpID0geDg2X2NwdV90b19hcGljaWRfaW5pdFtjcHVdOwotCQlwZXJfY3B1KHg4Nl9iaW9zX2NwdV9hcGljaWQsIGNwdSkgPQotCQkJCQkJeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0W2NwdV07Ci0jaWZkZWYgQ09ORklHX05VTUEKLQkJcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpID0KLQkJCQkJCXg4Nl9jcHVfdG9fbm9kZV9tYXBfaW5pdFtjcHVdOwotI2VuZGlmCi0JfQotCi0JLyogaW5kaWNhdGUgdGhlIGVhcmx5IHN0YXRpYyBhcnJheXMgd2lsbCBzb29uIGJlIGdvbmUgKi8KLQl4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIgPSBOVUxMOwotCXg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyID0gTlVMTDsKLSNpZmRlZiBDT05GSUdfTlVNQQotCXg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyID0gTlVMTDsKKyNpZmRlZiBDT05GSUdfTUNBCisJTUNBX2J1cyA9IHg7CiAjZW5kaWYKIH0KIAotI2lmZGVmIENPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUAotY3B1bWFza190ICpjcHVtYXNrX29mX2NwdV9tYXAgX19yZWFkX21vc3RseTsKLUVYUE9SVF9TWU1CT0woY3B1bWFza19vZl9jcHVfbWFwKTsKK3Vuc2lnbmVkIGludCBkZWZfdG9fYmlnc21wOwogCi0vKiByZXF1aXJlcyBucl9jcHVfaWRzIHRvIGJlIGluaXRpYWxpemVkICovCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1bWFza19vZl9jcHUodm9pZCkKKy8qIGZvciBNQ0EsIGJ1dCBhbnlvbmUgZWxzZSBjYW4gdXNlIGl0IGlmIHRoZXkgd2FudCAqLwordW5zaWduZWQgaW50IG1hY2hpbmVfaWQ7Cit1bnNpZ25lZCBpbnQgbWFjaGluZV9zdWJtb2RlbF9pZDsKK3Vuc2lnbmVkIGludCBCSU9TX3JldmlzaW9uOworCitzdHJ1Y3QgYXBtX2luZm8gYXBtX2luZm87CitFWFBPUlRfU1lNQk9MKGFwbV9pbmZvKTsKKworI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9TUEVFRFNURVBfU01JKSB8fCBcCisJZGVmaW5lZChDT05GSUdfWDg2X1NQRUVEU1RFUF9TTUlfTU9EVUxFKQorc3RydWN0IGlzdF9pbmZvIGlzdF9pbmZvOworRVhQT1JUX1NZTUJPTChpc3RfaW5mbyk7CisjZWxzZQorc3RydWN0IGlzdF9pbmZvIGlzdF9pbmZvOworI2VuZGlmCisKKyNlbHNlCitzdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVfZGF0YSBfX3JlYWRfbW9zdGx5OworRVhQT1JUX1NZTUJPTChib290X2NwdV9kYXRhKTsKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChDT05GSUdfWDg2X1BBRSkgfHwgZGVmaW5lZChDT05GSUdfWDg2XzY0KQordW5zaWduZWQgbG9uZyBtbXVfY3I0X2ZlYXR1cmVzOworI2Vsc2UKK3Vuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlcyA9IFg4Nl9DUjRfUEFFOworI2VuZGlmCisKKy8qIEJvb3QgbG9hZGVyIElEIGFzIGFuIGludGVnZXIsIGZvciB0aGUgYmVuZWZpdCBvZiBwcm9jX2RvaW50dmVjICovCitpbnQgYm9vdGxvYWRlcl90eXBlOworCisvKgorICogRWFybHkgRE1JIG1lbW9yeQorICovCitpbnQgZG1pX2FsbG9jX2luZGV4OworY2hhciBkbWlfYWxsb2NfZGF0YVtETUlfTUFYX0RBVEFdOworCisvKgorICogU2V0dXAgb3B0aW9ucworICovCitzdHJ1Y3Qgc2NyZWVuX2luZm8gc2NyZWVuX2luZm87CitFWFBPUlRfU1lNQk9MKHNjcmVlbl9pbmZvKTsKK3N0cnVjdCBlZGlkX2luZm8gZWRpZF9pbmZvOworRVhQT1JUX1NZTUJPTF9HUEwoZWRpZF9pbmZvKTsKKworZXh0ZXJuIGludCByb290X21vdW50ZmxhZ3M7CisKK3Vuc2lnbmVkIGxvbmcgc2F2ZWRfdmlkZW9fbW9kZTsKKworI2RlZmluZSBSQU1ESVNLX0lNQUdFX1NUQVJUX01BU0sJMHgwN0ZGCisjZGVmaW5lIFJBTURJU0tfUFJPTVBUX0ZMQUcJCTB4ODAwMAorI2RlZmluZSBSQU1ESVNLX0xPQURfRkxBRwkJMHg0MDAwCisKK3N0YXRpYyBjaGFyIF9faW5pdGRhdGEgY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKKworI2lmIGRlZmluZWQoQ09ORklHX0VERCkgfHwgZGVmaW5lZChDT05GSUdfRUREX01PRFVMRSkKK3N0cnVjdCBlZGQgZWRkOworI2lmZGVmIENPTkZJR19FRERfTU9EVUxFCitFWFBPUlRfU1lNQk9MKGVkZCk7CisjZW5kaWYKKy8qKgorICogY29weV9lZGQoKSAtIENvcHkgdGhlIEJJT1MgRUREIGluZm9ybWF0aW9uCisgKiAgICAgICAgICAgICAgZnJvbSBib290X3BhcmFtcyBpbnRvIGEgc2FmZSBwbGFjZS4KKyAqCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2VkZCh2b2lkKQoreworICAgICBtZW1jcHkoZWRkLm1icl9zaWduYXR1cmUsIGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1ZmZlciwKKwkgICAgc2l6ZW9mKGVkZC5tYnJfc2lnbmF0dXJlKSk7CisgICAgIG1lbWNweShlZGQuZWRkX2luZm8sIGJvb3RfcGFyYW1zLmVkZGJ1Ziwgc2l6ZW9mKGVkZC5lZGRfaW5mbykpOworICAgICBlZGQubWJyX3NpZ25hdHVyZV9uciA9IGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1Zl9lbnRyaWVzOworICAgICBlZGQuZWRkX2luZm9fbnIgPSBib290X3BhcmFtcy5lZGRidWZfZW50cmllczsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKK3sKK30KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisKKyNkZWZpbmUgTUFYX01BUF9DSFVOSwkoTlJfRklYX0JUTUFQUyA8PCBQQUdFX1NISUZUKQorc3RhdGljIHZvaWQgX19pbml0IHJlbG9jYXRlX2luaXRyZCh2b2lkKQoreworCisJdTY0IHJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKKwl1NjQgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7CisJdTY0IGVuZF9vZl9sb3dtZW0gPSBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUOworCXU2NCByYW1kaXNrX2hlcmU7CisJdW5zaWduZWQgbG9uZyBzbG9wLCBjbGVuLCBtYXBhZGRyOworCWNoYXIgKnAsICpxOworCisJLyogV2UgbmVlZCB0byBtb3ZlIHRoZSBpbml0cmQgZG93biBpbnRvIGxvd21lbSAqLworCXJhbWRpc2tfaGVyZSA9IGZpbmRfZTgyMF9hcmVhKDAsIGVuZF9vZl9sb3dtZW0sIHJhbWRpc2tfc2l6ZSwKKwkJCQkJIFBBR0VfU0laRSk7CisKKwlpZiAocmFtZGlza19oZXJlID09IC0xVUxMKQorCQlwYW5pYygiQ2Fubm90IGZpbmQgcGxhY2UgZm9yIG5ldyBSQU1ESVNLIG9mIHNpemUgJWxsZFxuIiwKKwkJCSByYW1kaXNrX3NpemUpOworCisJLyogTm90ZTogdGhpcyBpbmNsdWRlcyBhbGwgdGhlIGxvd21lbSBjdXJyZW50bHkgb2NjdXBpZWQgYnkKKwkgICB0aGUgaW5pdHJkLCB3ZSByZWx5IG9uIHRoYXQgZmFjdCB0byBrZWVwIHRoZSBkYXRhIGludGFjdC4gKi8KKwlyZXNlcnZlX2Vhcmx5KHJhbWRpc2tfaGVyZSwgcmFtZGlza19oZXJlICsgcmFtZGlza19zaXplLAorCQkJICJORVcgUkFNRElTSyIpOworCWluaXRyZF9zdGFydCA9IHJhbWRpc2tfaGVyZSArIFBBR0VfT0ZGU0VUOworCWluaXRyZF9lbmQgICA9IGluaXRyZF9zdGFydCArIHJhbWRpc2tfc2l6ZTsKKwlwcmludGsoS0VSTl9JTkZPICJBbGxvY2F0ZWQgbmV3IFJBTURJU0s6ICUwOGxseCAtICUwOGxseFxuIiwKKwkJCSByYW1kaXNrX2hlcmUsIHJhbWRpc2tfaGVyZSArIHJhbWRpc2tfc2l6ZSk7CisKKwlxID0gKGNoYXIgKilpbml0cmRfc3RhcnQ7CisKKwkvKiBDb3B5IGFueSBsb3dtZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCisJaWYgKHJhbWRpc2tfaW1hZ2UgPCBlbmRfb2ZfbG93bWVtKSB7CisJCWNsZW4gPSBlbmRfb2ZfbG93bWVtIC0gcmFtZGlza19pbWFnZTsKKwkJcCA9IChjaGFyICopX192YShyYW1kaXNrX2ltYWdlKTsKKwkJbWVtY3B5KHEsIHAsIGNsZW4pOworCQlxICs9IGNsZW47CisJCXJhbWRpc2tfaW1hZ2UgKz0gY2xlbjsKKwkJcmFtZGlza19zaXplICAtPSBjbGVuOworCX0KKworCS8qIENvcHkgdGhlIGhpZ2htZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCisJd2hpbGUgKHJhbWRpc2tfc2l6ZSkgeworCQlzbG9wID0gcmFtZGlza19pbWFnZSAmIH5QQUdFX01BU0s7CisJCWNsZW4gPSByYW1kaXNrX3NpemU7CisJCWlmIChjbGVuID4gTUFYX01BUF9DSFVOSy1zbG9wKQorCQkJY2xlbiA9IE1BWF9NQVBfQ0hVTkstc2xvcDsKKwkJbWFwYWRkciA9IHJhbWRpc2tfaW1hZ2UgJiBQQUdFX01BU0s7CisJCXAgPSBlYXJseV9pb3JlbWFwKG1hcGFkZHIsIGNsZW4rc2xvcCk7CisJCW1lbWNweShxLCBwK3Nsb3AsIGNsZW4pOworCQllYXJseV9pb3VubWFwKHAsIGNsZW4rc2xvcCk7CisJCXEgKz0gY2xlbjsKKwkJcmFtZGlza19pbWFnZSArPSBjbGVuOworCQlyYW1kaXNrX3NpemUgIC09IGNsZW47CisJfQorCS8qIGhpZ2ggcGFnZXMgaXMgbm90IGNvbnZlcnRlZCBieSBlYXJseV9yZXNfdG9fYm9vdG1lbSAqLworCXJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKKwlyYW1kaXNrX3NpemUgID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZTsKKwlwcmludGsoS0VSTl9JTkZPICJNb3ZlIFJBTURJU0sgZnJvbSAlMDE2bGx4IC0gJTAxNmxseCB0byIKKwkJIiAlMDhsbHggLSAlMDhsbHhcbiIsCisJCXJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemUgLSAxLAorCQlyYW1kaXNrX2hlcmUsIHJhbWRpc2tfaGVyZSArIHJhbWRpc2tfc2l6ZSAtIDEpOworfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2luaXRyZCh2b2lkKQoreworCXU2NCByYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7CisJdTY0IHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOworCXU2NCByYW1kaXNrX2VuZCAgID0gcmFtZGlza19pbWFnZSArIHJhbWRpc2tfc2l6ZTsKKwl1NjQgZW5kX29mX2xvd21lbSA9IG1heF9sb3dfcGZuIDw8IFBBR0VfU0hJRlQ7CisKKwlpZiAoIWJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlciB8fAorCSAgICAhcmFtZGlza19pbWFnZSB8fCAhcmFtZGlza19zaXplKQorCQlyZXR1cm47CQkvKiBObyBpbml0cmQgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciAqLworCisJaW5pdHJkX3N0YXJ0ID0gMDsKKworCWlmIChyYW1kaXNrX3NpemUgPj0gKGVuZF9vZl9sb3dtZW0+PjEpKSB7CisJCWZyZWVfZWFybHkocmFtZGlza19pbWFnZSwgcmFtZGlza19lbmQpOworCQlwcmludGsoS0VSTl9FUlIgImluaXRyZCB0b28gbGFyZ2UgdG8gaGFuZGxlLCAiCisJCSAgICAgICAiZGlzYWJsaW5nIGluaXRyZFxuIik7CisJCXJldHVybjsKKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJSQU1ESVNLOiAlMDhsbHggLSAlMDhsbHhcbiIsIHJhbWRpc2tfaW1hZ2UsCisJCQlyYW1kaXNrX2VuZCk7CisKKworCWlmIChyYW1kaXNrX2VuZCA8PSBlbmRfb2ZfbG93bWVtKSB7CisJCS8qIEFsbCBpbiBsb3dtZW0sIGVhc3kgY2FzZSAqLworCQkvKgorCQkgKiBkb24ndCBuZWVkIHRvIHJlc2VydmUgYWdhaW4sIGFscmVhZHkgcmVzZXJ2ZWQgZWFybHkKKwkJICogaW4gaTM4Nl9zdGFydF9rZXJuZWwKKwkJICovCisJCWluaXRyZF9zdGFydCA9IHJhbWRpc2tfaW1hZ2UgKyBQQUdFX09GRlNFVDsKKwkJaW5pdHJkX2VuZCA9IGluaXRyZF9zdGFydCArIHJhbWRpc2tfc2l6ZTsKKwkJcmV0dXJuOworCX0KKworI2lmZGVmIENPTkZJR19YODZfMzIKKwlyZWxvY2F0ZV9pbml0cmQoKTsKKyNlbHNlCisJcHJpbnRrKEtFUk5fRVJSICJpbml0cmQgZXh0ZW5kcyBiZXlvbmQgZW5kIG9mIG1lbW9yeSAiCisJICAgICAgICIoMHglMDhsbHggPiAweCUwOGxseClcbmRpc2FibGluZyBpbml0cmRcbiIsCisJICAgICAgIHJhbWRpc2tfZW5kLCBlbmRfb2ZfbG93bWVtKTsKKwlpbml0cmRfc3RhcnQgPSAwOworI2VuZGlmCisJZnJlZV9lYXJseShyYW1kaXNrX2ltYWdlLCByYW1kaXNrX2VuZCk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfaW5pdHJkKHZvaWQpCit7Cit9CisjZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5JVFJEICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9zZXR1cF9kYXRhKHZvaWQpCit7CisJc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7CisJdTY0IHBhX2RhdGE7CisKKwlpZiAoYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPCAweDAyMDkpCisJCXJldHVybjsKKwlwYV9kYXRhID0gYm9vdF9wYXJhbXMuaGRyLnNldHVwX2RhdGE7CisJd2hpbGUgKHBhX2RhdGEpIHsKKwkJZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgUEFHRV9TSVpFKTsKKwkJc3dpdGNoIChkYXRhLT50eXBlKSB7CisJCWNhc2UgU0VUVVBfRTgyMF9FWFQ6CisJCQlwYXJzZV9lODIwX2V4dChkYXRhLCBwYV9kYXRhKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7CisJCWVhcmx5X2lvdW5tYXAoZGF0YSwgUEFHRV9TSVpFKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlODIwX3Jlc2VydmVfc2V0dXBfZGF0YSh2b2lkKQoreworCXN0cnVjdCBzZXR1cF9kYXRhICpkYXRhOworCXU2NCBwYV9kYXRhOworCWludCBmb3VuZCA9IDA7CisKKwlpZiAoYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPCAweDAyMDkpCisJCXJldHVybjsKKwlwYV9kYXRhID0gYm9vdF9wYXJhbXMuaGRyLnNldHVwX2RhdGE7CisJd2hpbGUgKHBhX2RhdGEpIHsKKwkJZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CisJCWU4MjBfdXBkYXRlX3JhbmdlKHBhX2RhdGEsIHNpemVvZigqZGF0YSkrZGF0YS0+bGVuLAorCQkJIEU4MjBfUkFNLCBFODIwX1JFU0VSVkVEX0tFUk4pOworCQlmb3VuZCA9IDE7CisJCXBhX2RhdGEgPSBkYXRhLT5uZXh0OworCQllYXJseV9pb3VubWFwKGRhdGEsIHNpemVvZigqZGF0YSkpOworCX0KKwlpZiAoIWZvdW5kKQorCQlyZXR1cm47CisKKwlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7CisJbWVtY3B5KCZlODIwX3NhdmVkLCAmZTgyMCwgc2l6ZW9mKHN0cnVjdCBlODIwbWFwKSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiZXh0ZW5kZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCWU4MjBfcHJpbnRfbWFwKCJyZXNlcnZlIHNldHVwX2RhdGEiKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfZWFybHlfc2V0dXBfZGF0YSh2b2lkKQoreworCXN0cnVjdCBzZXR1cF9kYXRhICpkYXRhOworCXU2NCBwYV9kYXRhOworCWNoYXIgYnVmWzMyXTsKKworCWlmIChib290X3BhcmFtcy5oZHIudmVyc2lvbiA8IDB4MDIwOSkKKwkJcmV0dXJuOworCXBhX2RhdGEgPSBib290X3BhcmFtcy5oZHIuc2V0dXBfZGF0YTsKKwl3aGlsZSAocGFfZGF0YSkgeworCQlkYXRhID0gZWFybHlfaW9yZW1hcChwYV9kYXRhLCBzaXplb2YoKmRhdGEpKTsKKwkJc3ByaW50ZihidWYsICJzZXR1cCBkYXRhICV4IiwgZGF0YS0+dHlwZSk7CisJCXJlc2VydmVfZWFybHkocGFfZGF0YSwgcGFfZGF0YStzaXplb2YoKmRhdGEpK2RhdGEtPmxlbiwgYnVmKTsKKwkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7CisJCWVhcmx5X2lvdW5tYXAoZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CisJfQorfQorCisvKgorICogLS0tLS0tLS0tIENyYXNoa2VybmVsIHJlc2VydmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZmRlZiBDT05GSUdfS0VYRUMKKworLyoqCisgKiBSZXNlcnZlIEBzaXplIGJ5dGVzIG9mIGNyYXNoa2VybmVsIG1lbW9yeSBhdCBhbnkgc3VpdGFibGUgb2Zmc2V0LgorICoKKyAqIEBzaXplOiBTaXplIG9mIHRoZSBjcmFzaGtlcm5lbCBtZW1vcnkgdG8gcmVzZXJ2ZS4KKyAqIFJldHVybnMgdGhlIGJhc2UgYWRkcmVzcyBvbiBzdWNjZXNzLCBhbmQgLTFVTEwgb24gZmFpbHVyZS4KKyAqLwordW5zaWduZWQgbG9uZyBsb25nIGZpbmRfYW5kX3Jlc2VydmVfY3Jhc2hrZXJuZWwodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCit7CisJY29uc3QgdW5zaWduZWQgbG9uZyBsb25nIGFsaWdubWVudCA9IDE2PDwyMDsgCS8qIDE2TSAqLworCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCA9IDBMTDsKKworCXdoaWxlICgxKSB7CisJCWludCByZXQ7CisKKwkJc3RhcnQgPSBmaW5kX2U4MjBfYXJlYShzdGFydCwgVUxPTkdfTUFYLCBzaXplLCBhbGlnbm1lbnQpOworCQlpZiAoc3RhcnQgPT0gLTFVTEwpCisJCQlyZXR1cm4gc3RhcnQ7CisKKwkJLyogdHJ5IHRvIHJlc2VydmUgaXQgKi8KKwkJcmV0ID0gcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMoc3RhcnQsIHNpemUsIEJPT1RNRU1fRVhDTFVTSVZFKTsKKwkJaWYgKHJldCA+PSAwKQorCQkJcmV0dXJuIHN0YXJ0OworCisJCXN0YXJ0ICs9IGFsaWdubWVudDsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIGdldF90b3RhbF9tZW0odm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWw7CisKKwl0b3RhbCA9IG1heF9sb3dfcGZuIC0gbWluX2xvd19wZm47CisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKwl0b3RhbCArPSBoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm47CisjZW5kaWYKKworCXJldHVybiB0b3RhbCA8PCBQQUdFX1NISUZUOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9tZW07CisJdW5zaWduZWQgbG9uZyBsb25nIGNyYXNoX3NpemUsIGNyYXNoX2Jhc2U7CisJaW50IHJldDsKKworCXRvdGFsX21lbSA9IGdldF90b3RhbF9tZW0oKTsKKworCXJldCA9IHBhcnNlX2NyYXNoa2VybmVsKGJvb3RfY29tbWFuZF9saW5lLCB0b3RhbF9tZW0sCisJCQkmY3Jhc2hfc2l6ZSwgJmNyYXNoX2Jhc2UpOworCWlmIChyZXQgIT0gMCB8fCBjcmFzaF9zaXplIDw9IDApCisJCXJldHVybjsKKworCS8qIDAgbWVhbnM6IGZpbmQgdGhlIGFkZHJlc3MgYXV0b21hdGljYWxseSAqLworCWlmIChjcmFzaF9iYXNlIDw9IDApIHsKKwkJY3Jhc2hfYmFzZSA9IGZpbmRfYW5kX3Jlc2VydmVfY3Jhc2hrZXJuZWwoY3Jhc2hfc2l6ZSk7CisJCWlmIChjcmFzaF9iYXNlID09IC0xVUxMKSB7CisJCQlwcl9pbmZvKCJjcmFzaGtlcm5lbCByZXNlcnZhdGlvbiBmYWlsZWQuICIKKwkJCQkiTm8gc3VpdGFibGUgYXJlYSBmb3VuZC5cbiIpOworCQkJcmV0dXJuOworCQl9CisJfSBlbHNlIHsKKwkJcmV0ID0gcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMoY3Jhc2hfYmFzZSwgY3Jhc2hfc2l6ZSwKKwkJCQkJQk9PVE1FTV9FWENMVVNJVkUpOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJfaW5mbygiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgorCQkJCSJtZW1vcnkgaXMgaW4gdXNlXG4iKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCXByaW50ayhLRVJOX0lORk8gIlJlc2VydmluZyAlbGRNQiBvZiBtZW1vcnkgYXQgJWxkTUIgIgorCQkJImZvciBjcmFzaGtlcm5lbCAoU3lzdGVtIFJBTTogJWxkTUIpXG4iLAorCQkJKHVuc2lnbmVkIGxvbmcpKGNyYXNoX3NpemUgPj4gMjApLAorCQkJKHVuc2lnbmVkIGxvbmcpKGNyYXNoX2Jhc2UgPj4gMjApLAorCQkJKHVuc2lnbmVkIGxvbmcpKHRvdGFsX21lbSA+PiAyMCkpOworCisJY3Jhc2hrX3Jlcy5zdGFydCA9IGNyYXNoX2Jhc2U7CisJY3Jhc2hrX3Jlcy5lbmQgICA9IGNyYXNoX2Jhc2UgKyBjcmFzaF9zaXplIC0gMTsKKwlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmY3Jhc2hrX3Jlcyk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKK3sKK30KKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHN0YW5kYXJkX2lvX3Jlc291cmNlc1tdID0geworCXsgLm5hbWUgPSAiZG1hMSIsIC5zdGFydCA9IDB4MDAsIC5lbmQgPSAweDFmLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJwaWMxIiwgLnN0YXJ0ID0gMHgyMCwgLmVuZCA9IDB4MjEsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gInRpbWVyMCIsIC5zdGFydCA9IDB4NDAsIC5lbmQgPSAweDQzLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJ0aW1lcjEiLCAuc3RhcnQgPSAweDUwLCAuZW5kID0gMHg1MywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAia2V5Ym9hcmQiLCAuc3RhcnQgPSAweDYwLCAuZW5kID0gMHg2MCwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAia2V5Ym9hcmQiLCAuc3RhcnQgPSAweDY0LCAuZW5kID0gMHg2NCwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAiZG1hIHBhZ2UgcmVnIiwgLnN0YXJ0ID0gMHg4MCwgLmVuZCA9IDB4OGYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gInBpYzIiLCAuc3RhcnQgPSAweGEwLCAuZW5kID0gMHhhMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAiZG1hMiIsIC5zdGFydCA9IDB4YzAsIC5lbmQgPSAweGRmLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJmcHUiLCAuc3RhcnQgPSAweGYwLCAuZW5kID0gMHhmZiwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9zdGFuZGFyZF9pb19yZXNvdXJjZXModm9pZCkKIHsKIAlpbnQgaTsKIAotCS8qIGFsbG9jX2Jvb3RtZW0gemVyb2VzIG1lbW9yeSAqLwotCWNwdW1hc2tfb2ZfY3B1X21hcCA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihjcHVtYXNrX3QpICogbnJfY3B1X2lkcyk7Ci0JZm9yIChpID0gMDsgaSA8IG5yX2NwdV9pZHM7IGkrKykKLQkJY3B1X3NldChpLCBjcHVtYXNrX29mX2NwdV9tYXBbaV0pOworCS8qIHJlcXVlc3QgSS9PIHNwYWNlIGZvciBkZXZpY2VzIHVzZWQgb24gYWxsIGlbMzQ1XTg2IFBDcyAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN0YW5kYXJkX2lvX3Jlc291cmNlcyk7IGkrKykKKwkJcmVxdWVzdF9yZXNvdXJjZSgmaW9wb3J0X3Jlc291cmNlLCAmc3RhbmRhcmRfaW9fcmVzb3VyY2VzW2ldKTsKKwogfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9jcHVtYXNrX29mX2NwdSh2b2lkKSB7IH0KLSNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotLyoKLSAqIEdyZWF0IGZ1dHVyZSBub3Qtc28tZnV0dXJpc3RpYyBwbGFuOiBtYWtlIGkzODYgYW5kIHg4Nl82NCBkbyBpdAotICogdGhlIHNhbWUgd2F5CisjaWZkZWYgQ09ORklHX1BST0NfVk1DT1JFCisvKiBlbGZjb3JlaGRyPSBzcGVjaWZpZXMgdGhlIGxvY2F0aW9uIG9mIGVsZiBjb3JlIGhlYWRlcgorICogc3RvcmVkIGJ5IHRoZSBjcmFzaGVkIGtlcm5lbC4gVGhpcyBvcHRpb24gd2lsbCBiZSBwYXNzZWQKKyAqIGJ5IGtleGVjIGxvYWRlciB0byB0aGUgY2FwdHVyZSBrZXJuZWwuCiAgKi8KLXVuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29mZnNldFtOUl9DUFVTXSBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChfX3Blcl9jcHVfb2Zmc2V0KTsKLSNlbmRpZgotCi0vKgotICogR3JlYXQgZnV0dXJlIHBsYW46Ci0gKiBEZWNsYXJlIFBEQSBpdHNlbGYgYW5kIHN1cHBvcnQgKGlycXN0YWNrLHRzcyxwZ2QpIGFzIHBlciBjcHUgZGF0YS4KLSAqIEFsd2F5cyBwb2ludCAlZ3MgdG8gaXRzIGJlZ2lubmluZwotICovCi12b2lkIF9faW5pdCBzZXR1cF9wZXJfY3B1X2FyZWFzKHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lbGZjb3JlaGRyKGNoYXIgKmFyZykKIHsKLQlpbnQgaSwgaGlnaGVzdF9jcHUgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZTsKLQotI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQotCXByZWZpbGxfcG9zc2libGVfbWFwKCk7CisJY2hhciAqZW5kOworCWlmICghYXJnKQorCQlyZXR1cm4gLUVJTlZBTDsKKwllbGZjb3JlaGRyX2FkZHIgPSBtZW1wYXJzZShhcmcsICZlbmQpOworCXJldHVybiBlbmQgPiBhcmcgPyAwIDogLUVJTlZBTDsKK30KK2Vhcmx5X3BhcmFtKCJlbGZjb3JlaGRyIiwgc2V0dXBfZWxmY29yZWhkcik7CiAjZW5kaWYKIAotCS8qIENvcHkgc2VjdGlvbiBmb3IgZWFjaCBDUFUgKHdlIGRpc2NhcmQgdGhlIG9yaWdpbmFsKSAqLwotCXNpemUgPSBQRVJDUFVfRU5PVUdIX1JPT007Ci0JcHJpbnRrKEtFUk5fSU5GTyAiUEVSQ1BVOiBBbGxvY2F0aW5nICVsdSBieXRlcyBvZiBwZXIgY3B1IGRhdGFcbiIsCi0JCQkgIHNpemUpOworLyoKKyAqIERldGVybWluZSBpZiB3ZSB3ZXJlIGxvYWRlZCBieSBhbiBFRkkgbG9hZGVyLiAgSWYgc28sIHRoZW4gd2UgaGF2ZSBhbHNvIGJlZW4KKyAqIHBhc3NlZCB0aGUgZWZpIG1lbW1hcCwgc3lzdGFiLCBldGMuLCBzbyB3ZSBzaG91bGQgdXNlIHRoZXNlIGRhdGEgc3RydWN0dXJlcworICogZm9yIGluaXRpYWxpemF0aW9uLiAgTm90ZSwgdGhlIGVmaSBpbml0IGNvZGUgcGF0aCBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICogZ2xvYmFsIGVmaV9lbmFibGVkLiBUaGlzIGFsbG93cyB0aGUgc2FtZSBrZXJuZWwgaW1hZ2UgdG8gYmUgdXNlZCBvbiBleGlzdGluZworICogc3lzdGVtcyAod2l0aCBhIHRyYWRpdGlvbmFsIEJJT1MpIGFzIHdlbGwgYXMgb24gRUZJIHN5c3RlbXMuCisgKi8KKy8qCisgKiBzZXR1cF9hcmNoIC0gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbnMKKyAqCisgKiBOb3RlOiBPbiB4ODZfNjQsIGZpeG1hcHMgYXJlIHJlYWR5IGZvciB1c2UgZXZlbiBiZWZvcmUgdGhpcyBpcyBjYWxsZWQuCisgKi8KIAotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShpKSB7Ci0JCWNoYXIgKnB0cjsKLSNpZm5kZWYgQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVMKLQkJcHRyID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhzaXplKTsKK3ZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKK3sKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJbWVtY3B5KCZib290X2NwdV9kYXRhLCAmbmV3X2NwdV9kYXRhLCBzaXplb2YobmV3X2NwdV9kYXRhKSk7CisJdmlzd3NfZWFybHlfZGV0ZWN0KCk7CisJcHJlX3NldHVwX2FyY2hfaG9vaygpOworCWVhcmx5X2NwdV9pbml0KCk7CiAjZWxzZQotCQlpbnQgbm9kZSA9IGVhcmx5X2NwdV90b19ub2RlKGkpOwotCQlpZiAoIW5vZGVfb25saW5lKG5vZGUpIHx8ICFOT0RFX0RBVEEobm9kZSkpIHsKLQkJCXB0ciA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoc2l6ZSk7Ci0JCQlwcmludGsoS0VSTl9JTkZPCi0JCQkgICAgICAgImNwdSAlZCBoYXMgbm8gbm9kZSBvciBub2RlLWxvY2FsIG1lbW9yeVxuIiwgaSk7Ci0JCX0KLQkJZWxzZQotCQkJcHRyID0gYWxsb2NfYm9vdG1lbV9wYWdlc19ub2RlKE5PREVfREFUQShub2RlKSwgc2l6ZSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiQ29tbWFuZCBsaW5lOiAlc1xuIiwgYm9vdF9jb21tYW5kX2xpbmUpOwogI2VuZGlmCi0JCWlmICghcHRyKQotCQkJcGFuaWMoIkNhbm5vdCBhbGxvY2F0ZSBjcHUgZGF0YSBmb3IgQ1BVICVkXG4iLCBpKTsKKworCWVhcmx5X2lvcmVtYXBfaW5pdCgpOworCisJUk9PVF9ERVYgPSBvbGRfZGVjb2RlX2Rldihib290X3BhcmFtcy5oZHIucm9vdF9kZXYpOworCXNjcmVlbl9pbmZvID0gYm9vdF9wYXJhbXMuc2NyZWVuX2luZm87CisJZWRpZF9pbmZvID0gYm9vdF9wYXJhbXMuZWRpZF9pbmZvOworI2lmZGVmIENPTkZJR19YODZfMzIKKwlhcG1faW5mby5iaW9zID0gYm9vdF9wYXJhbXMuYXBtX2Jpb3NfaW5mbzsKKwlpc3RfaW5mbyA9IGJvb3RfcGFyYW1zLmlzdF9pbmZvOworCWlmIChib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS5sZW5ndGggIT0gMCkgeworCQlzZXRfbWNhX2J1cyhib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVszXSAmIDB4Mik7CisJCW1hY2hpbmVfaWQgPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVswXTsKKwkJbWFjaGluZV9zdWJtb2RlbF9pZCA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzFdOworCQlCSU9TX3JldmlzaW9uID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMl07CisJfQorI2VuZGlmCisJc2F2ZWRfdmlkZW9fbW9kZSA9IGJvb3RfcGFyYW1zLmhkci52aWRfbW9kZTsKKwlib290bG9hZGVyX3R5cGUgPSBib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXI7CisKKyNpZmRlZiBDT05GSUdfQkxLX0RFVl9SQU0KKwlyZF9pbWFnZV9zdGFydCA9IGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSzsKKwlyZF9wcm9tcHQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfUFJPTVBUX0ZMQUcpICE9IDApOworCXJkX2RvbG9hZCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19MT0FEX0ZMQUcpICE9IDApOworI2VuZGlmCisjaWZkZWYgQ09ORklHX0VGSQorCWlmICghc3RybmNtcCgoY2hhciAqKSZib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbG9hZGVyX3NpZ25hdHVyZSwKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJCSAgICAgIkVMMzIiLAorI2Vsc2UKKwkJICAgICAiRUw2NCIsCisjZW5kaWYKKwkgNCkpIHsKKwkJZWZpX2VuYWJsZWQgPSAxOworCQllZmlfcmVzZXJ2ZV9lYXJseSgpOworCX0KKyNlbmRpZgorCisJQVJDSF9TRVRVUAorCisJc2V0dXBfbWVtb3J5X21hcCgpOworCXBhcnNlX3NldHVwX2RhdGEoKTsKKwkvKiB1cGRhdGUgdGhlIGU4MjBfc2F2ZWQgdG9vICovCisJZTgyMF9yZXNlcnZlX3NldHVwX2RhdGEoKTsKKworCWNvcHlfZWRkKCk7CisKKwlpZiAoIWJvb3RfcGFyYW1zLmhkci5yb290X2ZsYWdzKQorCQlyb290X21vdW50ZmxhZ3MgJj0gfk1TX1JET05MWTsKKwlpbml0X21tLnN0YXJ0X2NvZGUgPSAodW5zaWduZWQgbG9uZykgX3RleHQ7CisJaW5pdF9tbS5lbmRfY29kZSA9ICh1bnNpZ25lZCBsb25nKSBfZXRleHQ7CisJaW5pdF9tbS5lbmRfZGF0YSA9ICh1bnNpZ25lZCBsb25nKSBfZWRhdGE7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWluaXRfbW0uYnJrID0gaW5pdF9wZ190YWJsZXNfZW5kICsgUEFHRV9PRkZTRVQ7CisjZWxzZQorCWluaXRfbW0uYnJrID0gKHVuc2lnbmVkIGxvbmcpICZfZW5kOworI2VuZGlmCisKKwljb2RlX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKF90ZXh0KTsKKwljb2RlX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpLTE7CisJZGF0YV9yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpOworCWRhdGFfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKF9lZGF0YSktMTsKKwlic3NfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0YXJ0KTsKKwlic3NfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfX2Jzc19zdG9wKS0xOworCiAjaWZkZWYgQ09ORklHX1g4Nl82NAotCQljcHVfcGRhKGkpLT5kYXRhX29mZnNldCA9IHB0ciAtIF9fcGVyX2NwdV9zdGFydDsKLSNlbHNlCi0JCV9fcGVyX2NwdV9vZmZzZXRbaV0gPSBwdHIgLSBfX3Blcl9jcHVfc3RhcnQ7CisJZWFybHlfY3B1X2luaXQoKTsKICNlbmRpZgotCQltZW1jcHkocHRyLCBfX3Blcl9jcHVfc3RhcnQsIF9fcGVyX2NwdV9lbmQgLSBfX3Blcl9jcHVfc3RhcnQpOworCXN0cmxjcHkoY29tbWFuZF9saW5lLCBib290X2NvbW1hbmRfbGluZSwgQ09NTUFORF9MSU5FX1NJWkUpOworCSpjbWRsaW5lX3AgPSBjb21tYW5kX2xpbmU7CiAKLQkJaGlnaGVzdF9jcHUgPSBpOworCXBhcnNlX2Vhcmx5X3BhcmFtKCk7CisKKwkvKiBhZnRlciBlYXJseSBwYXJhbSwgc28gY291bGQgZ2V0IHBhbmljIGZyb20gc2VyaWFsICovCisJcmVzZXJ2ZV9lYXJseV9zZXR1cF9kYXRhKCk7CisKKwlpZiAoYWNwaV9tcHNfY2hlY2soKSkgeworI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQworCQlkaXNhYmxlX2FwaWMgPSAxOworI2VuZGlmCisJCWNsZWFyX2NwdV9jYXAoJmJvb3RfY3B1X2RhdGEsIFg4Nl9GRUFUVVJFX0FQSUMpOwogCX0KIAotCW5yX2NwdV9pZHMgPSBoaWdoZXN0X2NwdSArIDE7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk5SX0NQVVM6ICVkLCBucl9jcHVfaWRzOiAlZFxuIiwgTlJfQ1BVUywgbnJfY3B1X2lkcyk7CisJZmluaXNoX2U4MjBfcGFyc2luZygpOwogCi0JLyogU2V0dXAgcGVyY3B1IGRhdGEgbWFwcyAqLwotCXNldHVwX3Blcl9jcHVfbWFwcygpOwotCi0JLyogU2V0dXAgY3B1bWFza19vZl9jcHUgbWFwICovCi0Jc2V0dXBfY3B1bWFza19vZl9jcHUoKTsKLX0KLQorI2lmZGVmIENPTkZJR19YODZfMzIKKwlwcm9iZV9yb21zKCk7CiAjZW5kaWYKKworCS8qIGFmdGVyIHBhcnNlX2Vhcmx5X3BhcmFtLCBzbyBjb3VsZCBkZWJ1ZyBpdCAqLworCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZjb2RlX3Jlc291cmNlKTsKKwlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmZGF0YV9yZXNvdXJjZSk7CisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmJzc19yZXNvdXJjZSk7CisKKwlpZiAoZWZpX2VuYWJsZWQpCisJCWVmaV9pbml0KCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJaWYgKHBwcm9fd2l0aF9yYW1fYnVnKCkpIHsKKwkJZTgyMF91cGRhdGVfcmFuZ2UoMHg3MDAwMDAwMFVMTCwgMHg0MDAwMFVMTCwgRTgyMF9SQU0sCisJCQkJICBFODIwX1JFU0VSVkVEKTsKKwkJc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmZTgyMC5ucl9tYXApOworCQlwcmludGsoS0VSTl9JTkZPICJmaXhlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJCWU4MjBfcHJpbnRfbWFwKCJiYWRfcHBybyIpOworCX0KKyNlbHNlCisJZWFybHlfZ2FydF9pb21tdV9jaGVjaygpOworI2VuZGlmCisKKwkvKgorCSAqIHBhcnRpYWxseSB1c2VkIHBhZ2VzIGFyZSBub3QgdXNhYmxlIC0gdGh1cworCSAqIHdlIGFyZSByb3VuZGluZyB1cHdhcmRzOgorCSAqLworCW1heF9wZm4gPSBlODIwX2VuZF9vZl9yYW1fcGZuKCk7CisKKwkvKiBwcmVhbGxvY2F0ZSA0ayBmb3IgbXB0YWJsZSBtcGMgKi8KKwllYXJseV9yZXNlcnZlX2U4MjBfbXBjX25ldygpOworCS8qIHVwZGF0ZSBlODIwIGZvciBtZW1vcnkgbm90IGNvdmVyZWQgYnkgV0IgTVRSUnMgKi8KKwltdHJyX2JwX2luaXQoKTsKKwlpZiAobXRycl90cmltX3VuY2FjaGVkX21lbW9yeShtYXhfcGZuKSkKKwkJbWF4X3BmbiA9IGU4MjBfZW5kX29mX3JhbV9wZm4oKTsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwkvKiBtYXhfbG93X3BmbiBnZXQgdXBkYXRlZCBoZXJlICovCisJZmluZF9sb3dfcGZuX3JhbmdlKCk7CisjZWxzZQorCW51bV9waHlzcGFnZXMgPSBtYXhfcGZuOworCisJY2hlY2tfZWZlcigpOworCisJLyogSG93IG1hbnkgZW5kLW9mLW1lbW9yeSB2YXJpYWJsZXMgeW91IGhhdmUsIGdyYW5kbWEhICovCisJLyogbmVlZCB0aGlzIGJlZm9yZSBjYWxsaW5nIHJlc2VydmVfaW5pdHJkICovCisJaWYgKG1heF9wZm4gPiAoMVVMPDwoMzIgLSBQQUdFX1NISUZUKSkpCisJCW1heF9sb3dfcGZuID0gZTgyMF9lbmRfb2ZfbG93X3JhbV9wZm4oKTsKKwllbHNlCisJCW1heF9sb3dfcGZuID0gbWF4X3BmbjsKKworCWhpZ2hfbWVtb3J5ID0gKHZvaWQgKilfX3ZhKG1heF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CisjZW5kaWYKKworCS8qIG1heF9wZm5fbWFwcGVkIGlzIHVwZGF0ZWQgaGVyZSAqLworCW1heF9sb3dfcGZuX21hcHBlZCA9IGluaXRfbWVtb3J5X21hcHBpbmcoMCwgbWF4X2xvd19wZm48PFBBR0VfU0hJRlQpOworCW1heF9wZm5fbWFwcGVkID0gbWF4X2xvd19wZm5fbWFwcGVkOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChtYXhfcGZuID4gbWF4X2xvd19wZm4pIHsKKwkJbWF4X3Bmbl9tYXBwZWQgPSBpbml0X21lbW9yeV9tYXBwaW5nKDFVTDw8MzIsCisJCQkJCQkgICAgIG1heF9wZm48PFBBR0VfU0hJRlQpOworCQkvKiBjYW4gd2UgcHJlc2V2ZSBtYXhfbG93X3BmbiA/Ki8KKwkJbWF4X2xvd19wZm4gPSBtYXhfcGZuOworCX0KKyNlbmRpZgorCisJLyoKKwkgKiBOT1RFOiBPbiB4ODYtMzIsIG9ubHkgZnJvbSB0aGlzIHBvaW50IG9uLCBmaXhtYXBzIGFyZSByZWFkeSBmb3IgdXNlLgorCSAqLworCisjaWZkZWYgQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKKwlpZiAoaW5pdF9vaGNpMTM5NF9kbWFfZWFybHkpCisJCWluaXRfb2hjaTEzOTRfZG1hX29uX2FsbF9jb250cm9sbGVycygpOworI2VuZGlmCisKKwlyZXNlcnZlX2luaXRyZCgpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCXZzbXBfaW5pdCgpOworI2VuZGlmCisKKwlkbWlfc2Nhbl9tYWNoaW5lKCk7CisKKwlpb19kZWxheV9pbml0KCk7CisKKwkvKgorCSAqIFBhcnNlIHRoZSBBQ1BJIHRhYmxlcyBmb3IgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uLgorCSAqLworCWFjcGlfYm9vdF90YWJsZV9pbml0KCk7CisKKyNpZmRlZiBDT05GSUdfQUNQSV9OVU1BCisJLyoKKwkgKiBQYXJzZSBTUkFUIHRvIGRpc2NvdmVyIG5vZGVzLgorCSAqLworCWFjcGlfbnVtYV9pbml0KCk7CisjZW5kaWYKKworCWluaXRtZW1faW5pdCgwLCBtYXhfcGZuKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwlkbWEzMl9yZXNlcnZlX2Jvb3RtZW0oKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FDUElfU0xFRVAKKwkvKgorCSAqIFJlc2VydmUgbG93IG1lbW9yeSByZWdpb24gZm9yIHNsZWVwIHN1cHBvcnQuCisJICovCisJYWNwaV9yZXNlcnZlX2Jvb3RtZW0oKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfRklORF9TTVBfQ09ORklHCisJLyoKKwkgKiBGaW5kIGFuZCByZXNlcnZlIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKKwkgKi8KKwlmaW5kX3NtcF9jb25maWcoKTsKKyNlbmRpZgorCXJlc2VydmVfY3Jhc2hrZXJuZWwoKTsKKworCXJlc2VydmVfaWJmdF9yZWdpb24oKTsKKworI2lmZGVmIENPTkZJR19LVk1fQ0xPQ0sKKwlrdm1jbG9ja19pbml0KCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX1ZNSSkgJiYgZGVmaW5lZChDT05GSUdfWDg2XzMyKQorCS8qCisJICogTXVzdCBiZSBhZnRlciBtYXhfbG93X3BmbiBpcyBkZXRlcm1pbmVkLCBhbmQgYmVmb3JlIGtlcm5lbAorCSAqIHBhZ2V0YWJsZXMgYXJlIHNldHVwLgorCSAqLworCXZtaV9pbml0KCk7CisjZW5kaWYKKworCXBhZ2luZ19pbml0KCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJbWFwX3ZzeXNjYWxsKCk7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfR0VORVJJQ0FSQ0gKKwlnZW5lcmljX2FwaWNfcHJvYmUoKTsKKyNlbmRpZgorCisJZWFybHlfcXVpcmtzKCk7CisKKwkvKgorCSAqIFJlYWQgQVBJQyBhbmQgc29tZSBvdGhlciBlYXJseSBpbmZvcm1hdGlvbiBmcm9tIEFDUEkgdGFibGVzLgorCSAqLworCWFjcGlfYm9vdF9pbml0KCk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfTVBQQVJTRSkgfHwgZGVmaW5lZChDT05GSUdfWDg2X1ZJU1dTKQorCS8qCisJICogZ2V0IGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKKwkgKi8KKwlpZiAoc21wX2ZvdW5kX2NvbmZpZykKKwkJZ2V0X3NtcF9jb25maWcoKTsKKyNlbmRpZgorCisJcHJlZmlsbF9wb3NzaWJsZV9tYXAoKTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaW5pdF9jcHVfdG9fbm9kZSgpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCisJLyoKKwkgKiBuZWVkIHRvIGNoZWNrIG9ubGluZSBub2RlcyBudW0sIGNhbGwgaXQKKwkgKiBoZXJlIGJlZm9yZSB0aW1lX2luaXQvdHNjX2luaXQKKwkgKi8KKwludW1hcV90c2NfZGlzYWJsZSgpOworI2VuZGlmCisKKwlpbml0X2FwaWNfbWFwcGluZ3MoKTsKKwlpb2FwaWNfaW5pdF9tYXBwaW5ncygpOworCisjaWYgZGVmaW5lZChDT05GSUdfU01QKSAmJiBkZWZpbmVkKENPTkZJR19YODZfUEMpICYmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikKKwlpZiAoZGVmX3RvX2JpZ3NtcCkKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiTW9yZSB0aGFuIDggQ1BVcyBkZXRlY3RlZCBhbmQgIgorCQkJIkNPTkZJR19YODZfUEMgY2Fubm90IGhhbmRsZSBpdC5cblVzZSAiCisJCQkiQ09ORklHX1g4Nl9HRU5FUklDQVJDSCBvciBDT05GSUdfWDg2X0JJR1NNUC5cbiIpOworI2VuZGlmCisJa3ZtX2d1ZXN0X2luaXQoKTsKKworCWU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXMoKTsKKwllODIwX21hcmtfbm9zYXZlX3JlZ2lvbnMobWF4X2xvd19wZm4pOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmdmlkZW9fcmFtX3Jlc291cmNlKTsKKyNlbmRpZgorCXJlc2VydmVfc3RhbmRhcmRfaW9fcmVzb3VyY2VzKCk7CisKKwllODIwX3NldHVwX2dhcCgpOworCisjaWZkZWYgQ09ORklHX1ZUCisjaWYgZGVmaW5lZChDT05GSUdfVkdBX0NPTlNPTEUpCisJaWYgKCFlZmlfZW5hYmxlZCB8fCAoZWZpX21lbV90eXBlKDB4YTAwMDApICE9IEVGSV9DT05WRU5USU9OQUxfTUVNT1JZKSkKKwkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOworI2VsaWYgZGVmaW5lZChDT05GSUdfRFVNTVlfQ09OU09MRSkKKwljb25zd2l0Y2hwID0gJmR1bW15X2NvbjsKKyNlbmRpZgorI2VuZGlmCit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXA2NC5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWVlMGU4Mi4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXA2NC5jCisrKyAvZGV2L251bGwKQEAgLTEsMjg3ICswLDAgQEAKLS8qIAotICogWDg2LTY0IHNwZWNpZmljIENQVSBzZXR1cC4KLSAqIENvcHlyaWdodCAoQykgMTk5NSAgTGludXMgVG9ydmFsZHMKLSAqIENvcHlyaWdodCAyMDAxLCAyMDAyLCAyMDAzIFN1U0UgTGFicyAvIEFuZGkgS2xlZW4uCi0gKiBTZWUgc2V0dXAuYyBmb3Igb2xkZXIgY2hhbmdlbG9nLgotICovIAotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZ2RiLmg+Ci0jaW5jbHVkZSA8YXNtL3BkYS5oPgotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vaTM4Ny5oPgotI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KLSNpbmNsdWRlIDxhc20vcHJvdG8uaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgotCi0jaWZuZGVmIENPTkZJR19ERUJVR19CT09UX1BBUkFNUwotc3RydWN0IGJvb3RfcGFyYW1zIF9faW5pdGRhdGEgYm9vdF9wYXJhbXM7Ci0jZWxzZQotc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwotI2VuZGlmCi0KLWNwdW1hc2tfdCBjcHVfaW5pdGlhbGl6ZWQgX19jcHVpbml0ZGF0YSA9IENQVV9NQVNLX05PTkU7Ci0KLXN0cnVjdCB4ODY2NF9wZGEgKl9jcHVfcGRhW05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKF9jcHVfcGRhKTsKLXN0cnVjdCB4ODY2NF9wZGEgYm9vdF9jcHVfcGRhW05SX0NQVVNdIF9fY2FjaGVsaW5lX2FsaWduZWQ7Ci0KLXN0cnVjdCBkZXNjX3B0ciBpZHRfZGVzY3IgPSB7IDI1NiAqIDE2IC0gMSwgKHVuc2lnbmVkIGxvbmcpIGlkdF90YWJsZSB9OwotCi1jaGFyIGJvb3RfY3B1X3N0YWNrW0lSUVNUQUNLU0laRV0gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSkpOwotCi11bnNpZ25lZCBsb25nIF9fc3VwcG9ydGVkX3B0ZV9tYXNrIF9fcmVhZF9tb3N0bHkgPSB+MFVMOwotRVhQT1JUX1NZTUJPTF9HUEwoX19zdXBwb3J0ZWRfcHRlX21hc2spOwotCi1zdGF0aWMgaW50IGRvX25vdF9ueCBfX2NwdWluaXRkYXRhID0gMDsKLQotLyogbm9leGVjPW9ufG9mZgotQ29udHJvbCBub24gZXhlY3V0YWJsZSBtYXBwaW5ncyBmb3IgNjRiaXQgcHJvY2Vzc2VzLgotCi1vbglFbmFibGUoZGVmYXVsdCkKLW9mZglEaXNhYmxlCi0qLyAKLXN0YXRpYyBpbnQgX19pbml0IG5vbnhfc2V0dXAoY2hhciAqc3RyKQotewotCWlmICghc3RyKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAoIXN0cm5jbXAoc3RyLCAib24iLCAyKSkgewotICAgICAgICAgICAgICAgIF9fc3VwcG9ydGVkX3B0ZV9tYXNrIHw9IF9QQUdFX05YOyAKLSAJCWRvX25vdF9ueCA9IDA7IAotCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3RyLCAib2ZmIiwgMykpIHsKLQkJZG9fbm90X254ID0gMTsKLQkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOwotICAgICAgICB9Ci0JcmV0dXJuIDA7Ci19IAotZWFybHlfcGFyYW0oIm5vZXhlYyIsIG5vbnhfc2V0dXApOwotCi1pbnQgZm9yY2VfcGVyc29uYWxpdHkzMiA9IDA7IAotCi0vKiBub2V4ZWMzMj1vbnxvZmYKLUNvbnRyb2wgbm9uIGV4ZWN1dGFibGUgaGVhcCBmb3IgMzJiaXQgcHJvY2Vzc2VzLgotVG8gY29udHJvbCB0aGUgc3RhY2sgdG9vIHVzZSBub2V4ZWM9b2ZmCi0KLW9uCVBST1RfUkVBRCBkb2VzIG5vdCBpbXBseSBQUk9UX0VYRUMgZm9yIDMyYml0IHByb2Nlc3NlcyAoZGVmYXVsdCkKLW9mZglQUk9UX1JFQUQgaW1wbGllcyBQUk9UX0VYRUMKLSovCi1zdGF0aWMgaW50IF9faW5pdCBub254MzJfc2V0dXAoY2hhciAqc3RyKQotewotCWlmICghc3RyY21wKHN0ciwgIm9uIikpCi0JCWZvcmNlX3BlcnNvbmFsaXR5MzIgJj0gflJFQURfSU1QTElFU19FWEVDOwotCWVsc2UgaWYgKCFzdHJjbXAoc3RyLCAib2ZmIikpCi0JCWZvcmNlX3BlcnNvbmFsaXR5MzIgfD0gUkVBRF9JTVBMSUVTX0VYRUM7Ci0JcmV0dXJuIDE7Ci19Ci1fX3NldHVwKCJub2V4ZWMzMj0iLCBub254MzJfc2V0dXApOwotCi12b2lkIHBkYV9pbml0KGludCBjcHUpCi17IAotCXN0cnVjdCB4ODY2NF9wZGEgKnBkYSA9IGNwdV9wZGEoY3B1KTsKLQotCS8qIFNldHVwIHVwIGRhdGEgdGhhdCBtYXkgYmUgbmVlZGVkIGluIF9fZ2V0X2ZyZWVfcGFnZXMgZWFybHkgKi8KLQlhc20gdm9sYXRpbGUoIm1vdmwgJTAsJSVmcyA7IG1vdmwgJTAsJSVncyIgOjogInIiICgwKSk7IAotCS8qIE1lbW9yeSBjbG9iYmVycyB1c2VkIHRvIG9yZGVyIFBEQSBhY2Nlc3NlZCAqLwotCW1iKCk7Ci0Jd3Jtc3JsKE1TUl9HU19CQVNFLCBwZGEpOwotCW1iKCk7Ci0KLQlwZGEtPmNwdW51bWJlciA9IGNwdTsgCi0JcGRhLT5pcnFjb3VudCA9IC0xOwotCXBkYS0+a2VybmVsc3RhY2sgPSAKLQkJKHVuc2lnbmVkIGxvbmcpc3RhY2tfdGhyZWFkX2luZm8oKSAtIFBEQV9TVEFDS09GRlNFVCArIFRIUkVBRF9TSVpFOyAKLQlwZGEtPmFjdGl2ZV9tbSA9ICZpbml0X21tOwotCXBkYS0+bW11X3N0YXRlID0gMDsKLQotCWlmIChjcHUgPT0gMCkgewotCQkvKiBvdGhlcnMgYXJlIGluaXRpYWxpemVkIGluIHNtcGJvb3QuYyAqLwotCQlwZGEtPnBjdXJyZW50ID0gJmluaXRfdGFzazsKLQkJcGRhLT5pcnFzdGFja3B0ciA9IGJvb3RfY3B1X3N0YWNrOyAKLQl9IGVsc2UgewotCQlwZGEtPmlycXN0YWNrcHRyID0gKGNoYXIgKikKLQkJCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0FUT01JQywgSVJRU1RBQ0tfT1JERVIpOwotCQlpZiAoIXBkYS0+aXJxc3RhY2twdHIpCi0JCQlwYW5pYygiY2Fubm90IGFsbG9jYXRlIGlycXN0YWNrIGZvciBjcHUgJWQiLCBjcHUpOyAKLQl9Ci0KLQotCXBkYS0+aXJxc3RhY2twdHIgKz0gSVJRU1RBQ0tTSVpFLTY0OwotfSAKLQotY2hhciBib290X2V4Y2VwdGlvbl9zdGFja3NbKE5fRVhDRVBUSU9OX1NUQUNLUyAtIDEpICogRVhDRVBUSU9OX1NUS1NaICsgREVCVUdfU1RLU1pdCi1fX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7Ci0KLWV4dGVybiBhc21saW5rYWdlIHZvaWQgaWdub3JlX3N5c3JldCh2b2lkKTsKLQotLyogTWF5IG5vdCBiZSBtYXJrZWQgX19pbml0OiB1c2VkIGJ5IHNvZnR3YXJlIHN1c3BlbmQgKi8KLXZvaWQgc3lzY2FsbF9pbml0KHZvaWQpCi17Ci0JLyogCi0JICogTFNUQVIgYW5kIFNUQVIgbGl2ZSBpbiBhIGJpdCBzdHJhbmdlIHN5bWJpb3Npcy4KLQkgKiBUaGV5IGJvdGggd3JpdGUgdG8gdGhlIHNhbWUgaW50ZXJuYWwgcmVnaXN0ZXIuIFNUQVIgYWxsb3dzIHRvIHNldCBDUy9EUwotCSAqIGJ1dCBvbmx5IGEgMzJiaXQgdGFyZ2V0LiBMU1RBUiBzZXRzIHRoZSA2NGJpdCByaXAuIAkgCi0JICovIAotCXdybXNybChNU1JfU1RBUiwgICgodTY0KV9fVVNFUjMyX0NTKTw8NDggIHwgKCh1NjQpX19LRVJORUxfQ1MpPDwzMik7IAotCXdybXNybChNU1JfTFNUQVIsIHN5c3RlbV9jYWxsKTsgCi0Jd3Jtc3JsKE1TUl9DU1RBUiwgaWdub3JlX3N5c3JldCk7Ci0KLSNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04gICAJCQotCXN5c2NhbGwzMl9jcHVfaW5pdCAoKTsKLSNlbmRpZgotCi0JLyogRmxhZ3MgdG8gY2xlYXIgb24gc3lzY2FsbCAqLwotCXdybXNybChNU1JfU1lTQ0FMTF9NQVNLLAotCSAgICAgICBYODZfRUZMQUdTX1RGfFg4Nl9FRkxBR1NfREZ8WDg2X0VGTEFHU19JRnxYODZfRUZMQUdTX0lPUEwpOwotfQotCi12b2lkIF9fY3B1aW5pdCBjaGVja19lZmVyKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBlZmVyOwotCi0JcmRtc3JsKE1TUl9FRkVSLCBlZmVyKTsgCi0gICAgICAgIGlmICghKGVmZXIgJiBFRkVSX05YKSB8fCBkb19ub3RfbngpIHsgCi0gICAgICAgICAgICAgICAgX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOyAKLSAgICAgICAgfSAgICAgICAKLX0KLQotdW5zaWduZWQgbG9uZyBrZXJuZWxfZWZsYWdzOwotCi0vKgotICogQ29waWVzIG9mIHRoZSBvcmlnaW5hbCBpc3QgdmFsdWVzIGZyb20gdGhlIHRzcyBhcmUgb25seSBhY2Nlc3NlZCBkdXJpbmcKLSAqIGRlYnVnZ2luZywgbm8gc3BlY2lhbCBhbGlnbm1lbnQgcmVxdWlyZWQuCi0gKi8KLURFRklORV9QRVJfQ1BVKHN0cnVjdCBvcmlnX2lzdCwgb3JpZ19pc3QpOwotCi0vKgotICogY3B1X2luaXQoKSBpbml0aWFsaXplcyBzdGF0ZSB0aGF0IGlzIHBlci1DUFUuIFNvbWUgZGF0YSBpcyBhbHJlYWR5Ci0gKiBpbml0aWFsaXplZCAobmF0dXJhbGx5KSBpbiB0aGUgYm9vdHN0cmFwIHByb2Nlc3MsIHN1Y2ggYXMgdGhlIEdEVAotICogYW5kIElEVC4gV2UgcmVsb2FkIHRoZW0gbmV2ZXJ0aGVsZXNzLCB0aGlzIGZ1bmN0aW9uIGFjdHMgYXMgYQotICogJ0NQVSBzdGF0ZSBiYXJyaWVyJywgbm90aGluZyBzaG91bGQgZ2V0IGFjcm9zcy4KLSAqIEEgbG90IG9mIHN0YXRlIGlzIGFscmVhZHkgc2V0IHVwIGluIFBEQSBpbml0LgotICovCi12b2lkIF9fY3B1aW5pdCBjcHVfaW5pdCAodm9pZCkKLXsKLQlpbnQgY3B1ID0gc3RhY2tfc21wX3Byb2Nlc3Nvcl9pZCgpOwotCXN0cnVjdCB0c3Nfc3RydWN0ICp0ID0gJnBlcl9jcHUoaW5pdF90c3MsIGNwdSk7Ci0Jc3RydWN0IG9yaWdfaXN0ICpvcmlnX2lzdCA9ICZwZXJfY3B1KG9yaWdfaXN0LCBjcHUpOwotCXVuc2lnbmVkIGxvbmcgdjsgCi0JY2hhciAqZXN0YWNrcyA9IE5VTEw7IAotCXN0cnVjdCB0YXNrX3N0cnVjdCAqbWU7Ci0JaW50IGk7Ci0KLQkvKiBDUFUgMCBpcyBpbml0aWFsaXNlZCBpbiBoZWFkNjQuYyAqLwotCWlmIChjcHUgIT0gMCkgewotCQlwZGFfaW5pdChjcHUpOwotCX0gZWxzZSAKLQkJZXN0YWNrcyA9IGJvb3RfZXhjZXB0aW9uX3N0YWNrczsgCi0KLQltZSA9IGN1cnJlbnQ7Ci0KLQlpZiAoY3B1X3Rlc3RfYW5kX3NldChjcHUsIGNwdV9pbml0aWFsaXplZCkpCi0JCXBhbmljKCJDUFUjJWQgYWxyZWFkeSBpbml0aWFsaXplZCFcbiIsIGNwdSk7Ci0KLQlwcmludGsoIkluaXRpYWxpemluZyBDUFUjJWRcbiIsIGNwdSk7Ci0KLQljbGVhcl9pbl9jcjQoWDg2X0NSNF9WTUV8WDg2X0NSNF9QVkl8WDg2X0NSNF9UU0R8WDg2X0NSNF9ERSk7Ci0KLQkvKgotCSAqIEluaXRpYWxpemUgdGhlIHBlci1DUFUgR0RUIHdpdGggdGhlIGJvb3QgR0RULAotCSAqIGFuZCBzZXQgdXAgdGhlIEdEVCBkZXNjcmlwdG9yOgotCSAqLwotCWlmIChjcHUpCi0JCW1lbWNweShnZXRfY3B1X2dkdF90YWJsZShjcHUpLCBjcHVfZ2R0X3RhYmxlLCBHRFRfU0laRSk7Ci0KLQljcHVfZ2R0X2Rlc2NyW2NwdV0uc2l6ZSA9IEdEVF9TSVpFOwotCWxvYWRfZ2R0KChjb25zdCBzdHJ1Y3QgZGVzY19wdHIgKikmY3B1X2dkdF9kZXNjcltjcHVdKTsKLQlsb2FkX2lkdCgoY29uc3Qgc3RydWN0IGRlc2NfcHRyICopJmlkdF9kZXNjcik7Ci0KLQltZW1zZXQobWUtPnRocmVhZC50bHNfYXJyYXksIDAsIEdEVF9FTlRSWV9UTFNfRU5UUklFUyAqIDgpOwotCXN5c2NhbGxfaW5pdCgpOwotCi0Jd3Jtc3JsKE1TUl9GU19CQVNFLCAwKTsKLQl3cm1zcmwoTVNSX0tFUk5FTF9HU19CQVNFLCAwKTsKLQliYXJyaWVyKCk7IAotCi0JY2hlY2tfZWZlcigpOwotCi0JLyoKLQkgKiBzZXQgdXAgYW5kIGxvYWQgdGhlIHBlci1DUFUgVFNTCi0JICovCi0JZm9yICh2ID0gMDsgdiA8IE5fRVhDRVBUSU9OX1NUQUNLUzsgdisrKSB7Ci0JCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgb3JkZXJbTl9FWENFUFRJT05fU1RBQ0tTXSA9IHsKLQkJCVswIC4uLiBOX0VYQ0VQVElPTl9TVEFDS1MgLSAxXSA9IEVYQ0VQVElPTl9TVEFDS19PUkRFUiwKLQkJCVtERUJVR19TVEFDSyAtIDFdID0gREVCVUdfU1RBQ0tfT1JERVIKLQkJfTsKLQkJaWYgKGNwdSkgewotCQkJZXN0YWNrcyA9IChjaGFyICopX19nZXRfZnJlZV9wYWdlcyhHRlBfQVRPTUlDLCBvcmRlclt2XSk7Ci0JCQlpZiAoIWVzdGFja3MpCi0JCQkJcGFuaWMoIkNhbm5vdCBhbGxvY2F0ZSBleGNlcHRpb24gc3RhY2sgJWxkICVkXG4iLAotCQkJCSAgICAgIHYsIGNwdSk7IAotCQl9Ci0JCWVzdGFja3MgKz0gUEFHRV9TSVpFIDw8IG9yZGVyW3ZdOwotCQlvcmlnX2lzdC0+aXN0W3ZdID0gdC0+eDg2X3Rzcy5pc3Rbdl0gPSAodW5zaWduZWQgbG9uZyllc3RhY2tzOwotCX0KLQotCXQtPng4Nl90c3MuaW9fYml0bWFwX2Jhc2UgPSBvZmZzZXRvZihzdHJ1Y3QgdHNzX3N0cnVjdCwgaW9fYml0bWFwKTsKLQkvKgotCSAqIDw9IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIENQVSB3aWxsIGFjY2VzcyB1cCB0bwotCSAqIDggYml0cyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgSU8gcGVybWlzc2lvbiBiaXRtYXAuCi0JICovCi0JZm9yIChpID0gMDsgaSA8PSBJT19CSVRNQVBfTE9OR1M7IGkrKykKLQkJdC0+aW9fYml0bWFwW2ldID0gfjBVTDsKLQotCWF0b21pY19pbmMoJmluaXRfbW0ubW1fY291bnQpOwotCW1lLT5hY3RpdmVfbW0gPSAmaW5pdF9tbTsKLQlpZiAobWUtPm1tKQotCQlCVUcoKTsKLQllbnRlcl9sYXp5X3RsYigmaW5pdF9tbSwgbWUpOwotCi0Jc2V0X3Rzc19kZXNjKGNwdSwgdCk7Ci0JbG9hZF9UUl9kZXNjKCk7Ci0JbG9hZF9MRFQoJmluaXRfbW0uY29udGV4dCk7Ci0KLSNpZmRlZiBDT05GSUdfS0dEQgotCS8qCi0JICogSWYgdGhlIGtnZGIgaXMgY29ubmVjdGVkIG5vIGRlYnVnIHJlZ3Mgc2hvdWxkIGJlIGFsdGVyZWQuICBUaGlzCi0JICogaXMgb25seSBhcHBsaWNhYmxlIHdoZW4gS0dEQiBhbmQgYSBLR0RCIEkvTyBtb2R1bGUgYXJlIGJ1aWx0Ci0JICogaW50byB0aGUga2VybmVsIGFuZCB5b3UgYXJlIHVzaW5nIGVhcmx5IGRlYnVnZ2luZyB3aXRoCi0JICoga2dkYndhaXQuIEtHREIgd2lsbCBjb250cm9sIHRoZSBrZXJuZWwgSFcgYnJlYWtwb2ludCByZWdpc3RlcnMuCi0JICovCi0JaWYgKGtnZGJfY29ubmVjdGVkICYmIGFyY2hfa2dkYl9vcHMuY29ycmVjdF9od19icmVhaykKLQkJYXJjaF9rZ2RiX29wcy5jb3JyZWN0X2h3X2JyZWFrKCk7Ci0JZWxzZSB7Ci0jZW5kaWYKLQkvKgotCSAqIENsZWFyIGFsbCA2IGRlYnVnIHJlZ2lzdGVyczoKLQkgKi8KLQotCXNldF9kZWJ1Z3JlZygwVUwsIDApOwotCXNldF9kZWJ1Z3JlZygwVUwsIDEpOwotCXNldF9kZWJ1Z3JlZygwVUwsIDIpOwotCXNldF9kZWJ1Z3JlZygwVUwsIDMpOwotCXNldF9kZWJ1Z3JlZygwVUwsIDYpOwotCXNldF9kZWJ1Z3JlZygwVUwsIDcpOwotI2lmZGVmIENPTkZJR19LR0RCCi0JLyogSWYgdGhlIGtnZGIgaXMgY29ubmVjdGVkIG5vIGRlYnVnIHJlZ3Mgc2hvdWxkIGJlIGFsdGVyZWQuICovCi0JfQotI2VuZGlmCi0KLQlmcHVfaW5pdCgpOyAKLQotCXJhd19sb2NhbF9zYXZlX2ZsYWdzKGtlcm5lbF9lZmxhZ3MpOwotCi0JaWYgKGlzX3V2X3N5c3RlbSgpKQotCQl1dl9jcHVfaW5pdCgpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM1ZjhiMi4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDk1OCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMTk5NSAgTGludXMgVG9ydmFsZHMKLSAqCi0gKiAgU3VwcG9ydCBvZiBCSUdNRU0gYWRkZWQgYnkgR2VyaGFyZCBXaWNoZXJ0LCBTaWVtZW5zIEFHLCBKdWx5IDE5OTkKLSAqCi0gKiAgTWVtb3J5IHJlZ2lvbiBzdXBwb3J0Ci0gKglEYXZpZCBQYXJzb25zIDxvcmNAcGVsbC5jaGkuaWwudXM+LCBKdWx5LUF1Z3VzdCAxOTk5Ci0gKgotICogIEFkZGVkIEU4MjAgc2FuaXRpemF0aW9uIHJvdXRpbmUgKHJlbW92ZXMgb3ZlcmxhcHBpbmcgbWVtb3J5IHJlZ2lvbnMpOwotICogIEJyaWFuIE1veWxlIDxibW95bGVAbXZpc3RhLmNvbT4sIEZlYnJ1YXJ5IDIwMDEKLSAqCi0gKiBNb3ZlZCBDUFUgZGV0ZWN0aW9uIGNvZGUgdG8gY3B1LyR7Y3B1fS5jCi0gKiAgICBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPiwgTWFyY2ggMjAwMgotICoKLSAqICBQcm92aXNpb25zIGZvciBlbXB0eSBFODIwIG1lbW9yeSByZWdpb25zIChyZXBvcnRlZCBieSBjZXJ0YWluIEJJT1NlcykuCi0gKiAgQWxleCBBY2hlbmJhY2ggPHhlbGFAc2xpdC5kZT4sIERlY2VtYmVyIDIwMDIuCi0gKgotICovCi0KLS8qCi0gKiBUaGlzIGZpbGUgaGFuZGxlcyB0aGUgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBwYXJ0cyBvZiBpbml0aWFsaXphdGlvbgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvbW16b25lLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvYXBtX2Jpb3MuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KLSNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWNhLmg+Ci0jaW5jbHVkZSA8bGludXgvcm9vdF9kZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvZWZpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgotI2luY2x1ZGUgPGxpbnV4L2lzY3NpX2liZnQuaD4KLSNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgotI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgotI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXRfb2hjaTEzOTRfZG1hLmg+Ci0jaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KLQotI2luY2x1ZGUgPHZpZGVvL2VkaWQuaD4KLQotI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vZTgyMC5oPgotI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KLSNpbmNsdWRlIDxhc20vbW16b25lLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgotI2luY2x1ZGUgPGFzbS9pc3QuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdm1pLmg+Ci0jaW5jbHVkZSA8c2V0dXBfYXJjaC5oPgotI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KLSNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLQotLyogVGhpcyB2YWx1ZSBpcyBzZXQgdXAgYnkgdGhlIGVhcmx5IGJvb3QgY29kZSB0byBwb2ludCB0byB0aGUgdmFsdWUKLSAgIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBib290IHRpbWUgcGFnZSB0YWJsZXMuICBJdCBjb250YWlucyBhICpwaHlzaWNhbCoKLSAgIGFkZHJlc3MsIGFuZCBtdXN0IG5vdCBiZSBpbiB0aGUgLmJzcyBzZWdtZW50ISAqLwotdW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19lbmQgX19pbml0ZGF0YSA9IH4wVUw7Ci0KLS8qCi0gKiBNYWNoaW5lIHNldHVwLi4KLSAqLwotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBkYXRhX3Jlc291cmNlID0gewotCS5uYW1lCT0gIktlcm5lbCBkYXRhIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGNvZGVfcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiS2VybmVsIGNvZGUiLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYnNzX3Jlc291cmNlID0gewotCS5uYW1lCT0gIktlcm5lbCBic3MiLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdmlkZW9fcmFtX3Jlc291cmNlID0gewotCS5uYW1lCT0gIlZpZGVvIFJBTSBhcmVhIiwKLQkuc3RhcnQJPSAweGEwMDAwLAotCS5lbmQJPSAweGJmZmZmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHN0YW5kYXJkX2lvX3Jlc291cmNlc1tdID0geyB7Ci0JLm5hbWUJPSAiZG1hMSIsCi0JLnN0YXJ0CT0gMHgwMDAwLAotCS5lbmQJPSAweDAwMWYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gInBpYzEiLAotCS5zdGFydAk9IDB4MDAyMCwKLQkuZW5kCT0gMHgwMDIxLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZSAgID0gInRpbWVyMCIsCi0JLnN0YXJ0CT0gMHgwMDQwLAotCS5lbmQgICAgPSAweDAwNDMsCi0JLmZsYWdzICA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZSAgID0gInRpbWVyMSIsCi0JLnN0YXJ0ICA9IDB4MDA1MCwKLQkuZW5kICAgID0gMHgwMDUzLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJrZXlib2FyZCIsCi0JLnN0YXJ0CT0gMHgwMDYwLAotCS5lbmQJPSAweDAwNjAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gImtleWJvYXJkIiwKLQkuc3RhcnQJPSAweDAwNjQsCi0JLmVuZAk9IDB4MDA2NCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAiZG1hIHBhZ2UgcmVnIiwKLQkuc3RhcnQJPSAweDAwODAsCi0JLmVuZAk9IDB4MDA4ZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAicGljMiIsCi0JLnN0YXJ0CT0gMHgwMGEwLAotCS5lbmQJPSAweDAwYTEsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gImRtYTIiLAotCS5zdGFydAk9IDB4MDBjMCwKLQkuZW5kCT0gMHgwMGRmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJmcHUiLAotCS5zdGFydAk9IDB4MDBmMCwKLQkuZW5kCT0gMHgwMGZmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0gfTsKLQotLyogY3B1IGRhdGEgYXMgZGV0ZWN0ZWQgYnkgdGhlIGFzc2VtYmx5IGNvZGUgaW4gaGVhZC5TICovCi1zdHJ1Y3QgY3B1aW5mb194ODYgbmV3X2NwdV9kYXRhIF9fY3B1aW5pdGRhdGEgPSB7IDAsIDAsIDAsIDAsIC0xLCAxLCAwLCAwLCAtMSB9OwotLyogY29tbW9uIGNwdSBkYXRhIGZvciBhbGwgY3B1cyAqLwotc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGEgX19yZWFkX21vc3RseSA9IHsgMCwgMCwgMCwgMCwgLTEsIDEsIDAsIDAsIC0xIH07Ci1FWFBPUlRfU1lNQk9MKGJvb3RfY3B1X2RhdGEpOwotCi11bnNpZ25lZCBpbnQgZGVmX3RvX2JpZ3NtcDsKLQotI2lmbmRlZiBDT05GSUdfWDg2X1BBRQotdW5zaWduZWQgbG9uZyBtbXVfY3I0X2ZlYXR1cmVzOwotI2Vsc2UKLXVuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlcyA9IFg4Nl9DUjRfUEFFOwotI2VuZGlmCi0KLS8qIGZvciBNQ0EsIGJ1dCBhbnlvbmUgZWxzZSBjYW4gdXNlIGl0IGlmIHRoZXkgd2FudCAqLwotdW5zaWduZWQgaW50IG1hY2hpbmVfaWQ7Ci11bnNpZ25lZCBpbnQgbWFjaGluZV9zdWJtb2RlbF9pZDsKLXVuc2lnbmVkIGludCBCSU9TX3JldmlzaW9uOwotCi0vKiBCb290IGxvYWRlciBJRCBhcyBhbiBpbnRlZ2VyLCBmb3IgdGhlIGJlbmVmaXQgb2YgcHJvY19kb2ludHZlYyAqLwotaW50IGJvb3Rsb2FkZXJfdHlwZTsKLQotLyogdXNlci1kZWZpbmVkIGhpZ2htZW0gc2l6ZSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBoaWdobWVtX3BhZ2VzID0gLTE7Ci0KLS8qCi0gKiBTZXR1cCBvcHRpb25zCi0gKi8KLXN0cnVjdCBzY3JlZW5faW5mbyBzY3JlZW5faW5mbzsKLUVYUE9SVF9TWU1CT0woc2NyZWVuX2luZm8pOwotc3RydWN0IGFwbV9pbmZvIGFwbV9pbmZvOwotRVhQT1JUX1NZTUJPTChhcG1faW5mbyk7Ci1zdHJ1Y3QgZWRpZF9pbmZvIGVkaWRfaW5mbzsKLUVYUE9SVF9TWU1CT0xfR1BMKGVkaWRfaW5mbyk7Ci1zdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87Ci0jaWYgZGVmaW5lZChDT05GSUdfWDg2X1NQRUVEU1RFUF9TTUkpIHx8IFwKLQlkZWZpbmVkKENPTkZJR19YODZfU1BFRURTVEVQX1NNSV9NT0RVTEUpCi1FWFBPUlRfU1lNQk9MKGlzdF9pbmZvKTsKLSNlbmRpZgotCi1leHRlcm4gdm9pZCBlYXJseV9jcHVfaW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOwotCi11bnNpZ25lZCBsb25nIHNhdmVkX3ZpZGVvX21vZGU7Ci0KLSNkZWZpbmUgUkFNRElTS19JTUFHRV9TVEFSVF9NQVNLCTB4MDdGRgotI2RlZmluZSBSQU1ESVNLX1BST01QVF9GTEFHCQkweDgwMDAKLSNkZWZpbmUgUkFNRElTS19MT0FEX0ZMQUcJCTB4NDAwMAotCi1zdGF0aWMgY2hhciBfX2luaXRkYXRhIGNvbW1hbmRfbGluZVtDT01NQU5EX0xJTkVfU0laRV07Ci0KLSNpZm5kZWYgQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TCi1zdHJ1Y3QgYm9vdF9wYXJhbXMgX19pbml0ZGF0YSBib290X3BhcmFtczsKLSNlbHNlCi1zdHJ1Y3QgYm9vdF9wYXJhbXMgYm9vdF9wYXJhbXM7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoQ09ORklHX0VERCkgfHwgZGVmaW5lZChDT05GSUdfRUREX01PRFVMRSkKLXN0cnVjdCBlZGQgZWRkOwotI2lmZGVmIENPTkZJR19FRERfTU9EVUxFCi1FWFBPUlRfU1lNQk9MKGVkZCk7Ci0jZW5kaWYKLS8qKgotICogY29weV9lZGQoKSAtIENvcHkgdGhlIEJJT1MgRUREIGluZm9ybWF0aW9uCi0gKiAgICAgICAgICAgICAgZnJvbSBib290X3BhcmFtcyBpbnRvIGEgc2FmZSBwbGFjZS4KLSAqCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2VkZCh2b2lkKQotewotICAgICBtZW1jcHkoZWRkLm1icl9zaWduYXR1cmUsIGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1ZmZlciwKLQkgICAgc2l6ZW9mKGVkZC5tYnJfc2lnbmF0dXJlKSk7Ci0gICAgIG1lbWNweShlZGQuZWRkX2luZm8sIGJvb3RfcGFyYW1zLmVkZGJ1Ziwgc2l6ZW9mKGVkZC5lZGRfaW5mbykpOwotICAgICBlZGQubWJyX3NpZ25hdHVyZV9uciA9IGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1Zl9lbnRyaWVzOwotICAgICBlZGQuZWRkX2luZm9fbnIgPSBib290X3BhcmFtcy5lZGRidWZfZW50cmllczsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKLXsKLX0KLSNlbmRpZgotCi1pbnQgX19pbml0ZGF0YSB1c2VyX2RlZmluZWRfbWVtbWFwOwotCi0vKgotICogIm1lbT1ub3BlbnRpdW0iIGRpc2FibGVzIHRoZSA0TUIgcGFnZSB0YWJsZXMuCi0gKiAibWVtPVhYWFtrS21NXSIgZGVmaW5lcyBhIG1lbW9yeSByZWdpb24gZnJvbSBISUdIX01FTQotICogdG8gPG1lbT4sIG92ZXJyaWRpbmcgdGhlIGJpb3Mgc2l6ZS4KLSAqICJtZW1tYXA9WFhYW0trbU1dQFhYWFtLa21NXSIgZGVmaW5lcyBhIG1lbW9yeSByZWdpb24gZnJvbQotICogPHN0YXJ0PiB0byA8c3RhcnQ+KzxtZW0+LCBvdmVycmlkaW5nIHRoZSBiaW9zIHNpemUuCi0gKgotICogSFBBIHRlbGxzIG1lIGJvb3Rsb2FkZXJzIG5lZWQgdG8gcGFyc2UgbWVtPSwgc28gbm8gbmV3Ci0gKiBvcHRpb24gc2hvdWxkIGJlIG1lbT0gIFthbHNvIHNlZSBEb2N1bWVudGF0aW9uL2kzODYvYm9vdC50eHRdCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbShjaGFyICphcmcpCi17Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaWYgKHN0cmNtcChhcmcsICJub3BlbnRpdW0iKSA9PSAwKSB7Ci0JCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfUFNFKTsKLQl9IGVsc2UgewotCQkvKiBJZiB0aGUgdXNlciBzcGVjaWZpZXMgbWVtb3J5IHNpemUsIHdlCi0JCSAqIGxpbWl0IHRoZSBCSU9TLXByb3ZpZGVkIG1lbW9yeSBtYXAgdG8KLQkJICogdGhhdCBzaXplLiBleGFjdG1hcCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5Ci0JCSAqIHRoZSBleGFjdCBtYXAuIG1lbT1udW1iZXIgY2FuIGJlIHVzZWQgdG8KLQkJICogdHJpbSB0aGUgZXhpc3RpbmcgbWVtb3J5IG1hcC4KLQkJICovCi0JCXVuc2lnbmVkIGxvbmcgbG9uZyBtZW1fc2l6ZTsKLQotCQltZW1fc2l6ZSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7Ci0JCWxpbWl0X3JlZ2lvbnMobWVtX3NpemUpOwotCQl1c2VyX2RlZmluZWRfbWVtbWFwID0gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgibWVtIiwgcGFyc2VfbWVtKTsKLQotI2lmZGVmIENPTkZJR19QUk9DX1ZNQ09SRQotLyogZWxmY29yZWhkcj0gc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiBlbGYgY29yZSBoZWFkZXIKLSAqIHN0b3JlZCBieSB0aGUgY3Jhc2hlZCBrZXJuZWwuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2VsZmNvcmVoZHIoY2hhciAqYXJnKQotewotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWVsZmNvcmVoZHJfYWRkciA9IG1lbXBhcnNlKGFyZywgJmFyZyk7Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgiZWxmY29yZWhkciIsIHBhcnNlX2VsZmNvcmVoZHIpOwotI2VuZGlmIC8qIENPTkZJR19QUk9DX1ZNQ09SRSAqLwotCi0vKgotICogaGlnaG1lbT1zaXplIGZvcmNlcyBoaWdobWVtIHRvIGJlIGV4YWN0bHkgJ3NpemUnIGJ5dGVzLgotICogVGhpcyB3b3JrcyBldmVuIG9uIGJveGVzIHRoYXQgaGF2ZSBubyBoaWdobWVtIG90aGVyd2lzZS4KLSAqIFRoaXMgYWxzbyB3b3JrcyB0byByZWR1Y2UgaGlnaG1lbSBzaXplIG9uIGJpZ2dlciBib3hlcy4KLSAqLwotc3RhdGljIGludCBfX2luaXQgcGFyc2VfaGlnaG1lbShjaGFyICphcmcpCi17Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaGlnaG1lbV9wYWdlcyA9IG1lbXBhcnNlKGFyZywgJmFyZykgPj4gUEFHRV9TSElGVDsKLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJoaWdobWVtIiwgcGFyc2VfaGlnaG1lbSk7Ci0KLS8qCi0gKiB2bWFsbG9jPXNpemUgZm9yY2VzIHRoZSB2bWFsbG9jIGFyZWEgdG8gYmUgZXhhY3RseSAnc2l6ZScKLSAqIGJ5dGVzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIChvciBkZWNyZWFzZSkgdGhlCi0gKiB2bWFsbG9jIGFyZWEgLSB0aGUgZGVmYXVsdCBpcyAxMjhtLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV92bWFsbG9jKGNoYXIgKmFyZykKLXsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlfX1ZNQUxMT0NfUkVTRVJWRSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgidm1hbGxvYyIsIHBhcnNlX3ZtYWxsb2MpOwotCi0vKgotICogcmVzZXJ2ZXRvcD1zaXplIHJlc2VydmVzIGEgaG9sZSBhdCB0aGUgdG9wIG9mIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSB3aGljaAotICogYSBoeXBlcnZpc29yIGNhbiBsb2FkIGludG8gbGF0ZXIuICBOZWVkZWQgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCBoeXBlcnZpc29ycywKLSAqIHNvIHJlbG9jYXRpbmcgdGhlIGZpeG1hcCBjYW4gYmUgZG9uZSBiZWZvcmUgcGFnaW5nIGluaXRpYWxpemF0aW9uLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9yZXNlcnZldG9wKGNoYXIgKmFyZykKLXsKLQl1bnNpZ25lZCBsb25nIGFkZHJlc3M7Ci0KLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlhZGRyZXNzID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKLQlyZXNlcnZlX3RvcF9hZGRyZXNzKGFkZHJlc3MpOwotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oInJlc2VydmV0b3AiLCBwYXJzZV9yZXNlcnZldG9wKTsKLQotLyoKLSAqIERldGVybWluZSBsb3cgYW5kIGhpZ2ggbWVtb3J5IHJhbmdlczoKLSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZmluZF9tYXhfbG93X3Bmbih2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm47Ci0KLQltYXhfbG93X3BmbiA9IG1heF9wZm47Ci0JaWYgKG1heF9sb3dfcGZuID4gTUFYTUVNX1BGTikgewotCQlpZiAoaGlnaG1lbV9wYWdlcyA9PSAtMSkKLQkJCWhpZ2htZW1fcGFnZXMgPSBtYXhfcGZuIC0gTUFYTUVNX1BGTjsKLQkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOIDwgbWF4X3BmbikKLQkJCW1heF9wZm4gPSBNQVhNRU1fUEZOICsgaGlnaG1lbV9wYWdlczsKLQkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOID4gbWF4X3BmbikgewotCQkJcHJpbnRrKCJvbmx5ICVsdU1CIGhpZ2htZW0gcGFnZXMgYXZhaWxhYmxlLCBpZ25vcmluZyBoaWdobWVtIHNpemUgb2YgJXVNQi5cbiIsIHBhZ2VzX3RvX21iKG1heF9wZm4gLSBNQVhNRU1fUEZOKSwgcGFnZXNfdG9fbWIoaGlnaG1lbV9wYWdlcykpOwotCQkJaGlnaG1lbV9wYWdlcyA9IDA7Ci0JCX0KLQkJbWF4X2xvd19wZm4gPSBNQVhNRU1fUEZOOwotI2lmbmRlZiBDT05GSUdfSElHSE1FTQotCQkvKiBNYXhpbXVtIG1lbW9yeSB1c2FibGUgaXMgd2hhdCBpcyBkaXJlY3RseSBhZGRyZXNzYWJsZSAqLwotCQlwcmludGsoS0VSTl9XQVJOSU5HICJXYXJuaW5nIG9ubHkgJWxkTUIgd2lsbCBiZSB1c2VkLlxuIiwKLQkJCQkJTUFYTUVNPj4yMCk7Ci0JCWlmIChtYXhfcGZuID4gTUFYX05PTlBBRV9QRk4pCi0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJVc2UgYSBISUdITUVNNjRHIGVuYWJsZWQga2VybmVsLlxuIik7Ci0JCWVsc2UKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVzZSBhIEhJR0hNRU0gZW5hYmxlZCBrZXJuZWwuXG4iKTsKLQkJbWF4X3BmbiA9IE1BWE1FTV9QRk47Ci0jZWxzZSAvKiAhQ09ORklHX0hJR0hNRU0gKi8KLSNpZm5kZWYgQ09ORklHX0hJR0hNRU02NEcKLQkJaWYgKG1heF9wZm4gPiBNQVhfTk9OUEFFX1BGTikgewotCQkJbWF4X3BmbiA9IE1BWF9OT05QQUVfUEZOOwotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiV2FybmluZyBvbmx5IDRHQiB3aWxsIGJlIHVzZWQuXG4iKTsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVzZSBhIEhJR0hNRU02NEcgZW5hYmxlZCBrZXJuZWwuXG4iKTsKLQkJfQotI2VuZGlmIC8qICFDT05GSUdfSElHSE1FTTY0RyAqLwotI2VuZGlmIC8qICFDT05GSUdfSElHSE1FTSAqLwotCX0gZWxzZSB7Ci0JCWlmIChoaWdobWVtX3BhZ2VzID09IC0xKQotCQkJaGlnaG1lbV9wYWdlcyA9IDA7Ci0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQkJaWYgKGhpZ2htZW1fcGFnZXMgPj0gbWF4X3BmbikgewotCQkJcHJpbnRrKEtFUk5fRVJSICJoaWdobWVtIHNpemUgc3BlY2lmaWVkICgldU1CKSBpcyBiaWdnZXIgdGhhbiBwYWdlcyBhdmFpbGFibGUgKCVsdU1CKSEuXG4iLCBwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSwgcGFnZXNfdG9fbWIobWF4X3BmbikpOwotCQkJaGlnaG1lbV9wYWdlcyA9IDA7Ci0JCX0KLQkJaWYgKGhpZ2htZW1fcGFnZXMpIHsKLQkJCWlmIChtYXhfbG93X3Bmbi1oaWdobWVtX3BhZ2VzIDwgNjQqMTAyNCoxMDI0L1BBR0VfU0laRSl7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSICJoaWdobWVtIHNpemUgJXVNQiByZXN1bHRzIGluIHNtYWxsZXIgdGhhbiA2NE1CIGxvd21lbSwgaWdub3JpbmcgaXQuXG4iLCBwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSk7Ci0JCQkJaGlnaG1lbV9wYWdlcyA9IDA7Ci0JCQl9Ci0JCQltYXhfbG93X3BmbiAtPSBoaWdobWVtX3BhZ2VzOwotCQl9Ci0jZWxzZQotCQlpZiAoaGlnaG1lbV9wYWdlcykKLQkJCXByaW50ayhLRVJOX0VSUiAiaWdub3JpbmcgaGlnaG1lbSBzaXplIG9uIG5vbi1oaWdobWVtIGtlcm5lbCFcbiIpOwotI2VuZGlmCi0JfQotCXJldHVybiBtYXhfbG93X3BmbjsKLX0KLQotI2RlZmluZSBCSU9TX0xPV01FTV9LSUxPQllURVMgMHg0MTMKLQotLyoKLSAqIFRoZSBCSU9TIHBsYWNlcyB0aGUgRUJEQS9YQkRBIGF0IHRoZSB0b3Agb2YgY29udmVudGlvbmFsCi0gKiBtZW1vcnksIGFuZCB1c3VhbGx5IGRlY3JlYXNlcyB0aGUgcmVwb3J0ZWQgYW1vdW50IG9mCi0gKiBjb252ZW50aW9uYWwgbWVtb3J5IChpbnQgMHgxMikgdG9vLiBUaGlzIGFsc28gY29udGFpbnMgYQotICogd29ya2Fyb3VuZCBmb3IgRGVsbCBzeXN0ZW1zIHRoYXQgbmVnbGVjdCB0byByZXNlcnZlIEVCREEuCi0gKiBUaGUgc2FtZSB3b3JrYXJvdW5kIGFsc28gYXZvaWRzIGEgcHJvYmxlbSB3aXRoIHRoZSBBTUQ3NjhNUFgKLSAqIGNoaXBzZXQ6IHJlc2VydmUgYSBwYWdlIGJlZm9yZSBWR0EgdG8gcHJldmVudCBQQ0kgcHJlZmV0Y2gKLSAqIGludG8gaXQgKGVycmF0YSAjNTYpLiBVc3VhbGx5IHRoZSBwYWdlIGlzIHJlc2VydmVkIGFueXdheXMsCi0gKiB1bmxlc3MgeW91IGhhdmUgbm8gUFMvMiBtb3VzZSBwbHVnZ2VkIGluLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKQotewotCXVuc2lnbmVkIGludCBsb3dtZW0sIGViZGFfYWRkcjsKLQotCS8qIFRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gb2YgdGhlIEVCREEgYW5kIHRoZSAqLwotCS8qIGVuZCBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCB3ZSBuZWVkIHRvIGxvb2sgYXQgKi8KLQkvKiB0aGUgQklPUyBkYXRhIGFyZWEuIEluIGEgcGFyYXZpcnR1YWwgZW52aXJvbm1lbnQgKi8KLQkvKiB0aGF0IGFyZWEgaXMgYWJzZW50LiBXZSdsbCBqdXN0IGhhdmUgdG8gYXNzdW1lICovCi0JLyogdGhhdCB0aGUgcGFyYXZpcnQgY2FzZSBjYW4gaGFuZGxlIG1lbW9yeSBzZXR1cCAqLwotCS8qIGNvcnJlY3RseSwgd2l0aG91dCBvdXIgaGVscC4gKi8KLQlpZiAocGFyYXZpcnRfZW5hYmxlZCgpKQotCQlyZXR1cm47Ci0KLQkvKiBlbmQgb2YgbG93IChjb252ZW50aW9uYWwpIG1lbW9yeSAqLwotCWxvd21lbSA9ICoodW5zaWduZWQgc2hvcnQgKilfX3ZhKEJJT1NfTE9XTUVNX0tJTE9CWVRFUyk7Ci0JbG93bWVtIDw8PSAxMDsKLQotCS8qIHN0YXJ0IG9mIEVCREEgYXJlYSAqLwotCWViZGFfYWRkciA9IGdldF9iaW9zX2ViZGEoKTsKLQotCS8qIEZpeHVwOiBiaW9zIHB1dHMgYW4gRUJEQSBpbiB0aGUgdG9wIDY0SyBzZWdtZW50ICovCi0JLyogb2YgY29udmVudGlvbmFsIG1lbW9yeSwgYnV0IGRvZXMgbm90IGFkanVzdCBsb3dtZW0uICovCi0JaWYgKChsb3dtZW0gLSBlYmRhX2FkZHIpIDw9IDB4MTAwMDApCi0JCWxvd21lbSA9IGViZGFfYWRkcjsKLQotCS8qIEZpeHVwOiBiaW9zIGRvZXMgbm90IHJlcG9ydCBhbiBFQkRBIGF0IGFsbC4gKi8KLQkvKiBTb21lIG9sZCBEZWxscyBzZWVtIHRvIG5lZWQgNGsgYW55aG93IChidWd6aWxsYSAyOTkwKSAqLwotCWlmICgoZWJkYV9hZGRyID09IDApICYmIChsb3dtZW0gPj0gMHg5ZjAwMCkpCi0JCWxvd21lbSA9IDB4OWYwMDA7Ci0KLQkvKiBQYXJhbm9pYTogc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0Li4uICovCi0JaWYgKChsb3dtZW0gPT0gMCkgfHwgKGxvd21lbSA+PSAweDEwMDAwMCkpCi0JCWxvd21lbSA9IDB4OWYwMDA7Ci0KLQkvKiByZXNlcnZlIGFsbCBtZW1vcnkgYmV0d2VlbiBsb3dtZW0gYW5kIHRoZSAxTUIgbWFyayAqLwotCXJlc2VydmVfYm9vdG1lbShsb3dtZW0sIDB4MTAwMDAwIC0gbG93bWVtLCBCT09UTUVNX0RFRkFVTFQpOwotfQotCi0jaWZuZGVmIENPTkZJR19ORUVEX01VTFRJUExFX05PREVTCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCk7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgc2V0dXBfbWVtb3J5KHZvaWQpCi17Ci0JLyoKLQkgKiBwYXJ0aWFsbHkgdXNlZCBwYWdlcyBhcmUgbm90IHVzYWJsZSAtIHRodXMKLQkgKiB3ZSBhcmUgcm91bmRpbmcgdXB3YXJkczoKLQkgKi8KLQltaW5fbG93X3BmbiA9IFBGTl9VUChpbml0X3BnX3RhYmxlc19lbmQpOwotCi0JbWF4X2xvd19wZm4gPSBmaW5kX21heF9sb3dfcGZuKCk7Ci0KLSNpZmRlZiBDT05GSUdfSElHSE1FTQotCWhpZ2hzdGFydF9wZm4gPSBoaWdoZW5kX3BmbiA9IG1heF9wZm47Ci0JaWYgKG1heF9wZm4gPiBtYXhfbG93X3BmbikgewotCQloaWdoc3RhcnRfcGZuID0gbWF4X2xvd19wZm47Ci0JfQotCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgSElHSE1FTSBhdmFpbGFibGUuXG4iLAotCQlwYWdlc190b19tYihoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm4pKTsKLQludW1fcGh5c3BhZ2VzID0gaGlnaGVuZF9wZm47Ci0JaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7Ci0jZWxzZQotCW51bV9waHlzcGFnZXMgPSBtYXhfbG93X3BmbjsKLQloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEobWF4X2xvd19wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfRkxBVE1FTQotCW1heF9tYXBuciA9IG51bV9waHlzcGFnZXM7Ci0jZW5kaWYKLQlwcmludGsoS0VSTl9OT1RJQ0UgIiVsZE1CIExPV01FTSBhdmFpbGFibGUuXG4iLAotCQkJcGFnZXNfdG9fbWIobWF4X2xvd19wZm4pKTsKLQotCXNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKCk7Ci0KLQlyZXR1cm4gbWF4X2xvd19wZm47Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIG1heF96b25lX3BmbnNbTUFYX05SX1pPTkVTXTsKLQltZW1zZXQobWF4X3pvbmVfcGZucywgMCwgc2l6ZW9mKG1heF96b25lX3BmbnMpKTsKLQltYXhfem9uZV9wZm5zW1pPTkVfRE1BXSA9Ci0JCXZpcnRfdG9fcGh5cygoY2hhciAqKU1BWF9ETUFfQUREUkVTUykgPj4gUEFHRV9TSElGVDsKLQltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IG1heF9sb3dfcGZuOwotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JbWF4X3pvbmVfcGZuc1taT05FX0hJR0hNRU1dID0gaGlnaGVuZF9wZm47Ci0JYWRkX2FjdGl2ZV9yYW5nZSgwLCAwLCBoaWdoZW5kX3Bmbik7Ci0jZWxzZQotCWFkZF9hY3RpdmVfcmFuZ2UoMCwgMCwgbWF4X2xvd19wZm4pOwotI2VuZGlmCi0KLQlmcmVlX2FyZWFfaW5pdF9ub2RlcyhtYXhfem9uZV9wZm5zKTsKLX0KLSNlbHNlCi1leHRlcm4gdW5zaWduZWQgbG9uZyBfX2luaXQgc2V0dXBfbWVtb3J5KHZvaWQpOwotZXh0ZXJuIHZvaWQgem9uZV9zaXplc19pbml0KHZvaWQpOwotI2VuZGlmIC8qICFDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUyAqLwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBnZXRfdG90YWxfbWVtKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsOwotCi0JdG90YWwgPSBtYXhfbG93X3BmbiAtIG1pbl9sb3dfcGZuOwotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JdG90YWwgKz0gaGlnaGVuZF9wZm4gLSBoaWdoc3RhcnRfcGZuOwotI2VuZGlmCi0KLQlyZXR1cm4gdG90YWwgPDwgUEFHRV9TSElGVDsKLX0KLQotI2lmZGVmIENPTkZJR19LRVhFQwotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfbWVtOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBjcmFzaF9zaXplLCBjcmFzaF9iYXNlOwotCWludCByZXQ7Ci0KLQl0b3RhbF9tZW0gPSBnZXRfdG90YWxfbWVtKCk7Ci0KLQlyZXQgPSBwYXJzZV9jcmFzaGtlcm5lbChib290X2NvbW1hbmRfbGluZSwgdG90YWxfbWVtLAotCQkJJmNyYXNoX3NpemUsICZjcmFzaF9iYXNlKTsKLQlpZiAocmV0ID09IDAgJiYgY3Jhc2hfc2l6ZSA+IDApIHsKLQkJaWYgKGNyYXNoX2Jhc2UgPiAwKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgJWxkTUIgb2YgbWVtb3J5IGF0ICVsZE1CICIKLQkJCQkJImZvciBjcmFzaGtlcm5lbCAoU3lzdGVtIFJBTTogJWxkTUIpXG4iLAotCQkJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfc2l6ZSA+PiAyMCksCi0JCQkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9iYXNlID4+IDIwKSwKLQkJCQkJKHVuc2lnbmVkIGxvbmcpKHRvdGFsX21lbSA+PiAyMCkpOwotCQkJY3Jhc2hrX3Jlcy5zdGFydCA9IGNyYXNoX2Jhc2U7Ci0JCQljcmFzaGtfcmVzLmVuZCAgID0gY3Jhc2hfYmFzZSArIGNyYXNoX3NpemUgLSAxOwotCQkJcmVzZXJ2ZV9ib290bWVtKGNyYXNoX2Jhc2UsIGNyYXNoX3NpemUsCi0JCQkJCUJPT1RNRU1fREVGQVVMVCk7Ci0JCX0gZWxzZQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgotCQkJCQkieW91IGhhdmUgdG8gc3BlY2lmeSBhIGJhc2UgYWRkcmVzc1xuIik7Ci0JfQotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQote30KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0KLXN0YXRpYyBib29sIGRvX3JlbG9jYXRlX2luaXRyZCA9IGZhbHNlOwotCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9pbml0cmQodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19lbmQgICA9IHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemU7Ci0JdW5zaWduZWQgbG9uZyBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaGVyZTsKLQotCWluaXRyZF9zdGFydCA9IDA7Ci0KLQlpZiAoIWJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlciB8fAotCSAgICAhcmFtZGlza19pbWFnZSB8fCAhcmFtZGlza19zaXplKQotCQlyZXR1cm47CQkvKiBObyBpbml0cmQgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciAqLwotCi0JaWYgKHJhbWRpc2tfZW5kIDwgcmFtZGlza19pbWFnZSkgewotCQlwcmludGsoS0VSTl9FUlIgImluaXRyZCB3cmFwcyBhcm91bmQgZW5kIG9mIG1lbW9yeSwgIgotCQkgICAgICAgImRpc2FibGluZyBpbml0cmRcbiIpOwotCQlyZXR1cm47Ci0JfQotCWlmIChyYW1kaXNrX3NpemUgPj0gZW5kX29mX2xvd21lbS8yKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIHRvbyBsYXJnZSB0byBoYW5kbGUsICIKLQkJICAgICAgICJkaXNhYmxpbmcgaW5pdHJkXG4iKTsKLQkJcmV0dXJuOwotCX0KLQlpZiAocmFtZGlza19lbmQgPD0gZW5kX29mX2xvd21lbSkgewotCQkvKiBBbGwgaW4gbG93bWVtLCBlYXN5IGNhc2UgKi8KLQkJcmVzZXJ2ZV9ib290bWVtKHJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfc2l6ZSwgQk9PVE1FTV9ERUZBVUxUKTsKLQkJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19pbWFnZSArIFBBR0VfT0ZGU0VUOwotCQlpbml0cmRfZW5kID0gaW5pdHJkX3N0YXJ0K3JhbWRpc2tfc2l6ZTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIFdlIG5lZWQgdG8gbW92ZSB0aGUgaW5pdHJkIGRvd24gaW50byBsb3dtZW0gKi8KLQlyYW1kaXNrX2hlcmUgPSAoZW5kX29mX2xvd21lbSAtIHJhbWRpc2tfc2l6ZSkgJiBQQUdFX01BU0s7Ci0KLQkvKiBOb3RlOiB0aGlzIGluY2x1ZGVzIGFsbCB0aGUgbG93bWVtIGN1cnJlbnRseSBvY2N1cGllZCBieQotCSAgIHRoZSBpbml0cmQsIHdlIHJlbHkgb24gdGhhdCBmYWN0IHRvIGtlZXAgdGhlIGRhdGEgaW50YWN0LiAqLwotCXJlc2VydmVfYm9vdG1lbShyYW1kaXNrX2hlcmUsIHJhbWRpc2tfc2l6ZSwgQk9PVE1FTV9ERUZBVUxUKTsKLQlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2hlcmUgKyBQQUdFX09GRlNFVDsKLQlpbml0cmRfZW5kICAgPSBpbml0cmRfc3RhcnQgKyByYW1kaXNrX3NpemU7Ci0KLQlkb19yZWxvY2F0ZV9pbml0cmQgPSB0cnVlOwotfQotCi0jZGVmaW5lIE1BWF9NQVBfQ0hVTksJKE5SX0ZJWF9CVE1BUFMgPDwgUEFHRV9TSElGVCkKLQotc3RhdGljIHZvaWQgX19pbml0IHJlbG9jYXRlX2luaXRyZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7Ci0JdW5zaWduZWQgbG9uZyBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaGVyZTsKLQl1bnNpZ25lZCBsb25nIHNsb3AsIGNsZW4sIG1hcGFkZHI7Ci0JY2hhciAqcCwgKnE7Ci0KLQlpZiAoIWRvX3JlbG9jYXRlX2luaXRyZCkKLQkJcmV0dXJuOwotCi0JcmFtZGlza19oZXJlID0gaW5pdHJkX3N0YXJ0IC0gUEFHRV9PRkZTRVQ7Ci0KLQlxID0gKGNoYXIgKilpbml0cmRfc3RhcnQ7Ci0KLQkvKiBDb3B5IGFueSBsb3dtZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCi0JaWYgKHJhbWRpc2tfaW1hZ2UgPCBlbmRfb2ZfbG93bWVtKSB7Ci0JCWNsZW4gPSBlbmRfb2ZfbG93bWVtIC0gcmFtZGlza19pbWFnZTsKLQkJcCA9IChjaGFyICopX192YShyYW1kaXNrX2ltYWdlKTsKLQkJbWVtY3B5KHEsIHAsIGNsZW4pOwotCQlxICs9IGNsZW47Ci0JCXJhbWRpc2tfaW1hZ2UgKz0gY2xlbjsKLQkJcmFtZGlza19zaXplICAtPSBjbGVuOwotCX0KLQotCS8qIENvcHkgdGhlIGhpZ2htZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCi0Jd2hpbGUgKHJhbWRpc2tfc2l6ZSkgewotCQlzbG9wID0gcmFtZGlza19pbWFnZSAmIH5QQUdFX01BU0s7Ci0JCWNsZW4gPSByYW1kaXNrX3NpemU7Ci0JCWlmIChjbGVuID4gTUFYX01BUF9DSFVOSy1zbG9wKQotCQkJY2xlbiA9IE1BWF9NQVBfQ0hVTkstc2xvcDsKLQkJbWFwYWRkciA9IHJhbWRpc2tfaW1hZ2UgJiBQQUdFX01BU0s7Ci0JCXAgPSBlYXJseV9pb3JlbWFwKG1hcGFkZHIsIGNsZW4rc2xvcCk7Ci0JCW1lbWNweShxLCBwK3Nsb3AsIGNsZW4pOwotCQllYXJseV9pb3VubWFwKHAsIGNsZW4rc2xvcCk7Ci0JCXEgKz0gY2xlbjsKLQkJcmFtZGlza19pbWFnZSArPSBjbGVuOwotCQlyYW1kaXNrX3NpemUgIC09IGNsZW47Ci0JfQotfQotCi0jZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5JVFJEICovCi0KLXZvaWQgX19pbml0IHNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBib290bWFwX3NpemU7Ci0JLyoKLQkgKiBJbml0aWFsaXplIHRoZSBib290LXRpbWUgYWxsb2NhdG9yICh3aXRoIGxvdyBtZW1vcnkgb25seSk6Ci0JICovCi0JYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtKG1pbl9sb3dfcGZuLCBtYXhfbG93X3Bmbik7Ci0KLQlyZWdpc3Rlcl9ib290bWVtX2xvd19wYWdlcyhtYXhfbG93X3Bmbik7Ci0KLQkvKgotCSAqIFJlc2VydmUgdGhlIGJvb3RtZW0gYml0bWFwIGl0c2VsZiBhcyB3ZWxsLiBXZSBkbyB0aGlzIGluIHR3bwotCSAqIHN0ZXBzIChmaXJzdCBzdGVwIHdhcyBpbml0X2Jvb3RtZW0oKSkgYmVjYXVzZSB0aGlzIGNhdGNoZXMKLQkgKiB0aGUgKHZlcnkgdW5saWtlbHkpIGNhc2Ugb2YgdXMgYWNjaWRlbnRhbGx5IGluaXRpYWxpemluZyB0aGUKLQkgKiBib290bWVtIGFsbG9jYXRvciB3aXRoIGFuIGludmFsaWQgUkFNIGFyZWEuCi0JICovCi0JcmVzZXJ2ZV9ib290bWVtKF9fcGFfc3ltYm9sKF90ZXh0KSwgKFBGTl9QSFlTKG1pbl9sb3dfcGZuKSArCi0JCQkgYm9vdG1hcF9zaXplICsgUEFHRV9TSVpFLTEpIC0gX19wYV9zeW1ib2woX3RleHQpLAotCQkJIEJPT1RNRU1fREVGQVVMVCk7Ci0KLQkvKgotCSAqIHJlc2VydmUgcGh5c2ljYWwgcGFnZSAwIC0gaXQncyBhIHNwZWNpYWwgQklPUyBwYWdlIG9uIG1hbnkgYm94ZXMsCi0JICogZW5hYmxpbmcgY2xlYW4gcmVib290cywgU01QIG9wZXJhdGlvbiwgbGFwdG9wIGZ1bmN0aW9ucy4KLQkgKi8KLQlyZXNlcnZlX2Jvb3RtZW0oMCwgUEFHRV9TSVpFLCBCT09UTUVNX0RFRkFVTFQpOwotCi0JLyogcmVzZXJ2ZSBFQkRBIHJlZ2lvbiAqLwotCXJlc2VydmVfZWJkYV9yZWdpb24oKTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQkvKgotCSAqIEJ1dCBmaXJzdCBwaW5jaCBhIGZldyBmb3IgdGhlIHN0YWNrL3RyYW1wb2xpbmUgc3R1ZmYKLQkgKiBGSVhNRTogRG9uJ3QgbmVlZCB0aGUgZXh0cmEgcGFnZSBhdCA0SywgYnV0IG5lZWQgdG8gZml4Ci0JICogdHJhbXBvbGluZSBiZWZvcmUgcmVtb3ZpbmcgaXQuIChzZWUgdGhlIEdEVCBzdHVmZikKLQkgKi8KLQlyZXNlcnZlX2Jvb3RtZW0oUEFHRV9TSVpFLCBQQUdFX1NJWkUsIEJPT1RNRU1fREVGQVVMVCk7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQUNQSV9TTEVFUAotCS8qCi0JICogUmVzZXJ2ZSBsb3cgbWVtb3J5IHJlZ2lvbiBmb3Igc2xlZXAgc3VwcG9ydC4KLQkgKi8KLQlhY3BpX3Jlc2VydmVfYm9vdG1lbSgpOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX1g4Nl9GSU5EX1NNUF9DT05GSUcKLQkvKgotCSAqIEZpbmQgYW5kIHJlc2VydmUgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgotCSAqLwotCWZpbmRfc21wX2NvbmZpZygpOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0JcmVzZXJ2ZV9pbml0cmQoKTsKLSNlbmRpZgotCW51bWFfa3ZhX3Jlc2VydmUoKTsKLQlyZXNlcnZlX2NyYXNoa2VybmVsKCk7Ci0KLQlyZXNlcnZlX2liZnRfcmVnaW9uKCk7Ci19Ci0KLS8qCi0gKiBUaGUgbm9kZSAwIHBnZGF0IGlzIGluaXRpYWxpemVkIGJlZm9yZSBhbGwgb2YgdGhlc2UgYmVjYXVzZQotICogaXQncyBuZWVkZWQgZm9yIGJvb3RtZW0uICBub2RlPjAgcGdkYXRzIGhhdmUgdGhlaXIgdmlydHVhbAotICogc3BhY2UgYWxsb2NhdGVkIGJlZm9yZSB0aGUgcGFnZXRhYmxlcyBhcmUgaW4gcGxhY2UgdG8gYWNjZXNzCi0gKiB0aGVtLCBzbyB0aGV5IGNhbid0IGJlIGNsZWFyZWQgdGhlbi4KLSAqCi0gKiBUaGlzIHNob3VsZCBhbGwgY29tcGlsZSBkb3duIHRvIG5vdGhpbmcgd2hlbiBOVU1BIGlzIG9mZi4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHJlbWFwcGVkX3BnZGF0X2luaXQodm9pZCkKLXsKLQlpbnQgbmlkOwotCi0JZm9yX2VhY2hfb25saW5lX25vZGUobmlkKSB7Ci0JCWlmIChuaWQgIT0gMCkKLQkJCW1lbXNldChOT0RFX0RBVEEobmlkKSwgMCwgc2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSkpOwotCX0KLX0KLQotI2lmZGVmIENPTkZJR19NQ0EKLXN0YXRpYyB2b2lkIHNldF9tY2FfYnVzKGludCB4KQotewotCU1DQV9idXMgPSB4OwotfQotI2Vsc2UKLXN0YXRpYyB2b2lkIHNldF9tY2FfYnVzKGludCB4KSB7IH0KLSNlbmRpZgotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgaWYgQ09ORklHX1BBUkFWSVJUICovCi1jaGFyICogX19pbml0IF9fYXR0cmlidXRlX18oKHdlYWspKSBtZW1vcnlfc2V0dXAodm9pZCkKLXsKLQlyZXR1cm4gbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKLX0KLQotI2lmZGVmIENPTkZJR19OVU1BCi0vKgotICogSW4gdGhlIGdvbGRlbiBkYXksIHdoZW4gZXZlcnl0aGluZyBhbW9uZyBpMzg2IGFuZCB4ODZfNjQgd2lsbCBiZQotICogaW50ZWdyYXRlZCwgdGhpcyB3aWxsIG5vdCBsaXZlIGhlcmUKLSAqLwotdm9pZCAqeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci1pbnQgeDg2X2NwdV90b19ub2RlX21hcF9pbml0W05SX0NQVVNdID0gewotCVswIC4uLiBOUl9DUFVTLTFdID0gTlVNQV9OT19OT0RFCi19OwotREVGSU5FX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTUFfTk9fTk9ERTsKLSNlbmRpZgotCi0vKgotICogRGV0ZXJtaW5lIGlmIHdlIHdlcmUgbG9hZGVkIGJ5IGFuIEVGSSBsb2FkZXIuICBJZiBzbywgdGhlbiB3ZSBoYXZlIGFsc28gYmVlbgotICogcGFzc2VkIHRoZSBlZmkgbWVtbWFwLCBzeXN0YWIsIGV0Yy4sIHNvIHdlIHNob3VsZCB1c2UgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzCi0gKiBmb3IgaW5pdGlhbGl6YXRpb24uICBOb3RlLCB0aGUgZWZpIGluaXQgY29kZSBwYXRoIGlzIGRldGVybWluZWQgYnkgdGhlCi0gKiBnbG9iYWwgZWZpX2VuYWJsZWQuIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGtlcm5lbCBpbWFnZSB0byBiZSB1c2VkIG9uIGV4aXN0aW5nCi0gKiBzeXN0ZW1zICh3aXRoIGEgdHJhZGl0aW9uYWwgQklPUykgYXMgd2VsbCBhcyBvbiBFRkkgc3lzdGVtcy4KLSAqLwotdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQotewotCXVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm47Ci0KLQltZW1jcHkoJmJvb3RfY3B1X2RhdGEsICZuZXdfY3B1X2RhdGEsIHNpemVvZihuZXdfY3B1X2RhdGEpKTsKLQlwcmVfc2V0dXBfYXJjaF9ob29rKCk7Ci0JZWFybHlfY3B1X2luaXQoKTsKLQllYXJseV9pb3JlbWFwX2luaXQoKTsKLQotI2lmZGVmIENPTkZJR19FRkkKLQlpZiAoIXN0cm5jbXAoKGNoYXIgKikmYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX2xvYWRlcl9zaWduYXR1cmUsCi0JCSAgICAgIkVMMzIiLCA0KSkKLQkJZWZpX2VuYWJsZWQgPSAxOwotI2VuZGlmCi0KLQlST09UX0RFViA9IG9sZF9kZWNvZGVfZGV2KGJvb3RfcGFyYW1zLmhkci5yb290X2Rldik7Ci0Jc2NyZWVuX2luZm8gPSBib290X3BhcmFtcy5zY3JlZW5faW5mbzsKLQllZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87Ci0JYXBtX2luZm8uYmlvcyA9IGJvb3RfcGFyYW1zLmFwbV9iaW9zX2luZm87Ci0JaXN0X2luZm8gPSBib290X3BhcmFtcy5pc3RfaW5mbzsKLQlzYXZlZF92aWRlb19tb2RlID0gYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlOwotCWlmKCBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS5sZW5ndGggIT0gMCApIHsKLQkJc2V0X21jYV9idXMoYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbM10gJiAweDIpOwotCQltYWNoaW5lX2lkID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMF07Ci0JCW1hY2hpbmVfc3VibW9kZWxfaWQgPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVsxXTsKLQkJQklPU19yZXZpc2lvbiA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzJdOwotCX0KLQlib290bG9hZGVyX3R5cGUgPSBib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXI7Ci0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9SQU0KLQlyZF9pbWFnZV9zdGFydCA9IGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSzsKLQlyZF9wcm9tcHQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfUFJPTVBUX0ZMQUcpICE9IDApOwotCXJkX2RvbG9hZCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19MT0FEX0ZMQUcpICE9IDApOwotI2VuZGlmCi0JQVJDSF9TRVRVUAotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JcHJpbnRfbWVtb3J5X21hcChtZW1vcnlfc2V0dXAoKSk7Ci0KLQljb3B5X2VkZCgpOwotCi0JaWYgKCFib290X3BhcmFtcy5oZHIucm9vdF9mbGFncykKLQkJcm9vdF9tb3VudGZsYWdzICY9IH5NU19SRE9OTFk7Ci0JaW5pdF9tbS5zdGFydF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpIF90ZXh0OwotCWluaXRfbW0uZW5kX2NvZGUgPSAodW5zaWduZWQgbG9uZykgX2V0ZXh0OwotCWluaXRfbW0uZW5kX2RhdGEgPSAodW5zaWduZWQgbG9uZykgX2VkYXRhOwotCWluaXRfbW0uYnJrID0gaW5pdF9wZ190YWJsZXNfZW5kICsgUEFHRV9PRkZTRVQ7Ci0KLQljb2RlX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKF90ZXh0KTsKLQljb2RlX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpLTE7Ci0JZGF0YV9yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpOwotCWRhdGFfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKF9lZGF0YSktMTsKLQlic3NfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0YXJ0KTsKLQlic3NfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfX2Jzc19zdG9wKS0xOwotCi0JcGFyc2VfZWFybHlfcGFyYW0oKTsKLQotCWlmICh1c2VyX2RlZmluZWRfbWVtbWFwKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gInVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JCXByaW50X21lbW9yeV9tYXAoInVzZXIiKTsKLQl9Ci0KLQlzdHJsY3B5KGNvbW1hbmRfbGluZSwgYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKLQkqY21kbGluZV9wID0gY29tbWFuZF9saW5lOwotCi0JaWYgKGVmaV9lbmFibGVkKQotCQllZmlfaW5pdCgpOwotCi0JLyogdXBkYXRlIGU4MjAgZm9yIG1lbW9yeSBub3QgY292ZXJlZCBieSBXQiBNVFJScyAqLwotCXByb3BhZ2F0ZV9lODIwX21hcCgpOwotCW10cnJfYnBfaW5pdCgpOwotCWlmIChtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5KG1heF9wZm4pKQotCQlwcm9wYWdhdGVfZTgyMF9tYXAoKTsKLQotCW1heF9sb3dfcGZuID0gc2V0dXBfbWVtb3J5KCk7Ci0KLSNpZmRlZiBDT05GSUdfS1ZNX0NMT0NLCi0Ja3ZtY2xvY2tfaW5pdCgpOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVk1JCi0JLyoKLQkgKiBNdXN0IGJlIGFmdGVyIG1heF9sb3dfcGZuIGlzIGRldGVybWluZWQsIGFuZCBiZWZvcmUga2VybmVsCi0JICogcGFnZXRhYmxlcyBhcmUgc2V0dXAuCi0JICovCi0Jdm1pX2luaXQoKTsKLSNlbmRpZgotCWt2bV9ndWVzdF9pbml0KCk7Ci0KLQkvKgotCSAqIE5PVEU6IGJlZm9yZSB0aGlzIHBvaW50IF9ub2JvZHlfIGlzIGFsbG93ZWQgdG8gYWxsb2NhdGUKLQkgKiBhbnkgbWVtb3J5IHVzaW5nIHRoZSBib290bWVtIGFsbG9jYXRvci4gIEFsdGhvdWdoIHRoZQotCSAqIGFsbG9jYXRvciBpcyBub3cgaW5pdGlhbGlzZWQgb25seSB0aGUgZmlyc3QgOE1iIG9mIHRoZSBrZXJuZWwKLQkgKiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgaGFzIGJlZW4gbWFwcGVkLiAgQWxsIGFsbG9jYXRpb25zIGJlZm9yZQotCSAqIHBhZ2luZ19pbml0KCkgaGFzIGNvbXBsZXRlZCBtdXN0IHVzZSB0aGUgYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoKQotCSAqIHZhcmlhbnQgKHdoaWNoIGFsbG9jYXRlcyBETUEnYWJsZSBtZW1vcnkpIGFuZCBjYXJlIG11c3QgYmUgdGFrZW4KLQkgKiBub3QgdG8gZXhjZWVkIHRoZSA4TWIgbGltaXQuCi0JICovCi0KLSNpZmRlZiBDT05GSUdfU01QCi0Jc21wX2FsbG9jX21lbW9yeSgpOyAvKiBBUCBwcm9jZXNzb3IgcmVhbG1vZGUgc3RhY2tzIGluIGxvdyBtZW1vcnkqLwotI2VuZGlmCi0JcGFnaW5nX2luaXQoKTsKLQotCS8qCi0JICogTk9URTogT24geDg2LTMyLCBvbmx5IGZyb20gdGhpcyBwb2ludCBvbiwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZS4KLQkgKi8KLQotI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCi0JaWYgKGluaXRfb2hjaTEzOTRfZG1hX2Vhcmx5KQotCQlpbml0X29oY2kxMzk0X2RtYV9vbl9hbGxfY29udHJvbGxlcnMoKTsKLSNlbmRpZgotCi0JcmVtYXBwZWRfcGdkYXRfaW5pdCgpOwotCXNwYXJzZV9pbml0KCk7Ci0Jem9uZV9zaXplc19pbml0KCk7Ci0KLQkvKgotCSAqIE5PVEU6IGF0IHRoaXMgcG9pbnQgdGhlIGJvb3RtZW0gYWxsb2NhdG9yIGlzIGZ1bGx5IGF2YWlsYWJsZS4KLQkgKi8KLQotI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAotCXJlbG9jYXRlX2luaXRyZCgpOwotI2VuZGlmCi0KLQlwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCk7Ci0KLQlkbWlfc2Nhbl9tYWNoaW5lKCk7Ci0KLQlpb19kZWxheV9pbml0KCk7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X1NNUAotCS8qCi0JICogc2V0dXAgdG8gdXNlIHRoZSBlYXJseSBzdGF0aWMgaW5pdCB0YWJsZXMgZHVyaW5nIGtlcm5lbCBzdGFydHVwCi0JICogWDg2X1NNUCB3aWxsIGV4Y2x1ZGUgc3ViLWFyY2hlcyB0aGF0IGRvbid0IGRlYWwgd2VsbCB3aXRoIGl0LgotCSAqLwotCXg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19hcGljaWRfaW5pdDsKLQl4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0OwotI2lmZGVmIENPTkZJR19OVU1BCi0JeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIgPSAodm9pZCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfaW5pdDsKLSNlbmRpZgotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICi0JZ2VuZXJpY19hcGljX3Byb2JlKCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JLyoKLQkgKiBQYXJzZSB0aGUgQUNQSSB0YWJsZXMgZm9yIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbi4KLQkgKi8KLQlhY3BpX2Jvb3RfdGFibGVfaW5pdCgpOwotI2VuZGlmCi0KLQllYXJseV9xdWlya3MoKTsKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JYWNwaV9ib290X2luaXQoKTsKLQotI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1BDKQotCWlmIChkZWZfdG9fYmlnc21wKQotCQlwcmludGsoS0VSTl9XQVJOSU5HICJNb3JlIHRoYW4gOCBDUFVzIGRldGVjdGVkIGFuZCAiCi0JCQkiQ09ORklHX1g4Nl9QQyBjYW5ub3QgaGFuZGxlIGl0LlxuVXNlICIKLQkJCSJDT05GSUdfWDg2X0dFTkVSSUNBUkNIIG9yIENPTkZJR19YODZfQklHU01QLlxuIik7Ci0jZW5kaWYKLSNlbmRpZgotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotCWlmIChzbXBfZm91bmRfY29uZmlnKQotCQlnZXRfc21wX2NvbmZpZygpOwotI2VuZGlmCi0KLQllODIwX3JlZ2lzdGVyX21lbW9yeSgpOwotCWU4MjBfbWFya19ub3NhdmVfcmVnaW9ucygpOwotCi0jaWZkZWYgQ09ORklHX1ZUCi0jaWYgZGVmaW5lZChDT05GSUdfVkdBX0NPTlNPTEUpCi0JaWYgKCFlZmlfZW5hYmxlZCB8fCAoZWZpX21lbV90eXBlKDB4YTAwMDApICE9IEVGSV9DT05WRU5USU9OQUxfTUVNT1JZKSkKLQkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOwotI2VsaWYgZGVmaW5lZChDT05GSUdfRFVNTVlfQ09OU09MRSkKLQljb25zd2l0Y2hwID0gJmR1bW15X2NvbjsKLSNlbmRpZgotI2VuZGlmCi19Ci0KLS8qCi0gKiBSZXF1ZXN0IGFkZHJlc3Mgc3BhY2UgZm9yIGFsbCBzdGFuZGFyZCByZXNvdXJjZXMKLSAqCi0gKiBUaGlzIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSBwY2liaW9zX2luaXQoKSwgd2hpY2ggaXMgYWxzbyBhCi0gKiBzdWJzeXNfaW5pdGNhbGwsIGJ1dCBpcyBsaW5rZWQgaW4gbGF0ZXIgKGluIGFyY2gvaTM4Ni9wY2kvY29tbW9uLmMpLgotICovCi1zdGF0aWMgaW50IF9faW5pdCByZXF1ZXN0X3N0YW5kYXJkX3Jlc291cmNlcyh2b2lkKQotewotCWludCBpOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiU2V0dGluZyB1cCBzdGFuZGFyZCBQQ0kgcmVzb3VyY2VzXG4iKTsKLQlpbml0X2lvbWVtX3Jlc291cmNlcygmY29kZV9yZXNvdXJjZSwgJmRhdGFfcmVzb3VyY2UsICZic3NfcmVzb3VyY2UpOwotCi0JcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZ2aWRlb19yYW1fcmVzb3VyY2UpOwotCi0JLyogcmVxdWVzdCBJL08gc3BhY2UgZm9yIGRldmljZXMgdXNlZCBvbiBhbGwgaVszNDVdODYgUENzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3RhbmRhcmRfaW9fcmVzb3VyY2VzKTsgaSsrKQotCQlyZXF1ZXN0X3Jlc291cmNlKCZpb3BvcnRfcmVzb3VyY2UsICZzdGFuZGFyZF9pb19yZXNvdXJjZXNbaV0pOwotCXJldHVybiAwOwotfQotCi1zdWJzeXNfaW5pdGNhbGwocmVxdWVzdF9zdGFuZGFyZF9yZXNvdXJjZXMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRmZjEyOC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDExOTQgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTUgIExpbnVzIFRvcnZhbGRzCi0gKi8KLQotLyoKLSAqIFRoaXMgZmlsZSBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IHBhcnRzIG9mIGluaXRpYWxpemF0aW9uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgotI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC91c2VyLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+Ci0jaW5jbHVkZSA8bGludXgvcm9vdF9kZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgotI2luY2x1ZGUgPGxpbnV4L2VmaS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgotI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgotI2luY2x1ZGUgPGxpbnV4L2lzY3NpX2liZnQuaD4KLSNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgotI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWkuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+Ci0jaW5jbHVkZSA8bGludXgvc29ydC5oPgotI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0X29oY2kxMzk0X2RtYS5oPgotI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+Ci0KLSNpbmNsdWRlIDxhc20vbXRyci5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vbXNyLmg+Ci0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDx2aWRlby9lZGlkLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2dhcnQuaD4KLSNpbmNsdWRlIDxhc20vbXBzcGVjLmg+Ci0jaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL251bWEuaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20vZG1pLmg+Ci0jaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vbWNlLmg+Ci0jaW5jbHVkZSA8YXNtL2RzLmg+Ci0jaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+Ci0jaW5jbHVkZSA8YXNtL3RyYW1wb2xpbmUuaD4KLSNpbmNsdWRlIDxhc20vcGF0Lmg+Ci0KLSNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLSNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KLSNlbHNlCi0jZGVmaW5lIEFSQ0hfU0VUVVAKLSNlbmRpZgotCi0vKgotICogTWFjaGluZSBzZXR1cC4uCi0gKi8KLQotc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGEgX19yZWFkX21vc3RseTsKLUVYUE9SVF9TWU1CT0woYm9vdF9jcHVfZGF0YSk7Ci0KLV9fdTMyIGNsZWFyZWRfY3B1X2NhcHNbTkNBUElOVFNdIF9fY3B1aW5pdGRhdGE7Ci0KLXVuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlczsKLQotLyogQm9vdCBsb2FkZXIgSUQgYXMgYW4gaW50ZWdlciwgZm9yIHRoZSBiZW5lZml0IG9mIHByb2NfZG9pbnR2ZWMgKi8KLWludCBib290bG9hZGVyX3R5cGU7Ci0KLXVuc2lnbmVkIGxvbmcgc2F2ZWRfdmlkZW9fbW9kZTsKLQotaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7Ci0KLS8qCi0gKiBFYXJseSBETUkgbWVtb3J5Ci0gKi8KLWludCBkbWlfYWxsb2NfaW5kZXg7Ci1jaGFyIGRtaV9hbGxvY19kYXRhW0RNSV9NQVhfREFUQV07Ci0KLS8qCi0gKiBTZXR1cCBvcHRpb25zCi0gKi8KLXN0cnVjdCBzY3JlZW5faW5mbyBzY3JlZW5faW5mbzsKLUVYUE9SVF9TWU1CT0woc2NyZWVuX2luZm8pOwotc3RydWN0IHN5c19kZXNjX3RhYmxlX3N0cnVjdCB7Ci0JdW5zaWduZWQgc2hvcnQgbGVuZ3RoOwotCXVuc2lnbmVkIGNoYXIgdGFibGVbMF07Ci19OwotCi1zdHJ1Y3QgZWRpZF9pbmZvIGVkaWRfaW5mbzsKLUVYUE9SVF9TWU1CT0xfR1BMKGVkaWRfaW5mbyk7Ci0KLWV4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOwotCi1jaGFyIF9faW5pdGRhdGEgY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzdGFuZGFyZF9pb19yZXNvdXJjZXNbXSA9IHsKLQl7IC5uYW1lID0gImRtYTEiLCAuc3RhcnQgPSAweDAwLCAuZW5kID0gMHgxZiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAicGljMSIsIC5zdGFydCA9IDB4MjAsIC5lbmQgPSAweDIxLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJ0aW1lcjAiLCAuc3RhcnQgPSAweDQwLCAuZW5kID0gMHg0MywKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAidGltZXIxIiwgLnN0YXJ0ID0gMHg1MCwgLmVuZCA9IDB4NTMsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2MCwgLmVuZCA9IDB4NjAsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2NCwgLmVuZCA9IDB4NjQsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImRtYSBwYWdlIHJlZyIsIC5zdGFydCA9IDB4ODAsIC5lbmQgPSAweDhmLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJwaWMyIiwgLnN0YXJ0ID0gMHhhMCwgLmVuZCA9IDB4YTEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImRtYTIiLCAuc3RhcnQgPSAweGMwLCAuZW5kID0gMHhkZiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAiZnB1IiwgLnN0YXJ0ID0gMHhmMCwgLmVuZCA9IDB4ZmYsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfQotfTsKLQotI2RlZmluZSBJT1JFU09VUkNFX1JBTSAoSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0pCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZGF0YV9yZXNvdXJjZSA9IHsKLQkubmFtZSA9ICJLZXJuZWwgZGF0YSIsCi0JLnN0YXJ0ID0gMCwKLQkuZW5kID0gMCwKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX1JBTSwKLX07Ci1zdGF0aWMgc3RydWN0IHJlc291cmNlIGNvZGVfcmVzb3VyY2UgPSB7Ci0JLm5hbWUgPSAiS2VybmVsIGNvZGUiLAotCS5zdGFydCA9IDAsCi0JLmVuZCA9IDAsCi0JLmZsYWdzID0gSU9SRVNPVVJDRV9SQU0sCi19Owotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBic3NfcmVzb3VyY2UgPSB7Ci0JLm5hbWUgPSAiS2VybmVsIGJzcyIsCi0JLnN0YXJ0ID0gMCwKLQkuZW5kID0gMCwKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX1JBTSwKLX07Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKTsKLQotI2lmZGVmIENPTkZJR19QUk9DX1ZNQ09SRQotLyogZWxmY29yZWhkcj0gc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiBlbGYgY29yZSBoZWFkZXIKLSAqIHN0b3JlZCBieSB0aGUgY3Jhc2hlZCBrZXJuZWwuIFRoaXMgb3B0aW9uIHdpbGwgYmUgcGFzc2VkCi0gKiBieSBrZXhlYyBsb2FkZXIgdG8gdGhlIGNhcHR1cmUga2VybmVsLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lbGZjb3JlaGRyKGNoYXIgKmFyZykKLXsKLQljaGFyICplbmQ7Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCWVsZmNvcmVoZHJfYWRkciA9IG1lbXBhcnNlKGFyZywgJmVuZCk7Ci0JcmV0dXJuIGVuZCA+IGFyZyA/IDAgOiAtRUlOVkFMOwotfQotZWFybHlfcGFyYW0oImVsZmNvcmVoZHIiLCBzZXR1cF9lbGZjb3JlaGRyKTsKLSNlbmRpZgotCi0jaWZuZGVmIENPTkZJR19OVU1BCi1zdGF0aWMgdm9pZCBfX2luaXQKLWNvbnRpZ19pbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKLXsKLQl1bnNpZ25lZCBsb25nIGJvb3RtYXBfc2l6ZSwgYm9vdG1hcDsKLQotCWJvb3RtYXBfc2l6ZSA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhlbmRfcGZuKTw8UEFHRV9TSElGVDsKLQlib290bWFwID0gZmluZF9lODIwX2FyZWEoMCwgZW5kX3Bmbjw8UEFHRV9TSElGVCwgYm9vdG1hcF9zaXplLAotCQkJCSBQQUdFX1NJWkUpOwotCWlmIChib290bWFwID09IC0xTCkKLQkJcGFuaWMoIkNhbm5vdCBmaW5kIGJvb3RtZW0gbWFwIG9mIHNpemUgJWxkXG4iLCBib290bWFwX3NpemUpOwotCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbShib290bWFwID4+IFBBR0VfU0hJRlQsIGVuZF9wZm4pOwotCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgc3RhcnRfcGZuLCBlbmRfcGZuKTsKLQlmcmVlX2Jvb3RtZW1fd2l0aF9hY3RpdmVfcmVnaW9ucygwLCBlbmRfcGZuKTsKLQllYXJseV9yZXNfdG9fYm9vdG1lbSgwLCBlbmRfcGZuPDxQQUdFX1NISUZUKTsKLQlyZXNlcnZlX2Jvb3RtZW0oYm9vdG1hcCwgYm9vdG1hcF9zaXplLCBCT09UTUVNX0RFRkFVTFQpOwotfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19FREQpIHx8IGRlZmluZWQoQ09ORklHX0VERF9NT0RVTEUpCi1zdHJ1Y3QgZWRkIGVkZDsKLSNpZmRlZiBDT05GSUdfRUREX01PRFVMRQotRVhQT1JUX1NZTUJPTChlZGQpOwotI2VuZGlmCi0vKioKLSAqIGNvcHlfZWRkKCkgLSBDb3B5IHRoZSBCSU9TIEVERCBpbmZvcm1hdGlvbgotICogICAgICAgICAgICAgIGZyb20gYm9vdF9wYXJhbXMgaW50byBhIHNhZmUgcGxhY2UuCi0gKgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKLXsKLSAgICAgbWVtY3B5KGVkZC5tYnJfc2lnbmF0dXJlLCBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZmZXIsCi0JICAgIHNpemVvZihlZGQubWJyX3NpZ25hdHVyZSkpOwotICAgICBtZW1jcHkoZWRkLmVkZF9pbmZvLCBib290X3BhcmFtcy5lZGRidWYsIHNpemVvZihlZGQuZWRkX2luZm8pKTsKLSAgICAgZWRkLm1icl9zaWduYXR1cmVfbnIgPSBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZfZW50cmllczsKLSAgICAgZWRkLmVkZF9pbmZvX25yID0gYm9vdF9wYXJhbXMuZWRkYnVmX2VudHJpZXM7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19LRVhFQwotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfbWVtOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBjcmFzaF9zaXplLCBjcmFzaF9iYXNlOwotCWludCByZXQ7Ci0KLQl0b3RhbF9tZW0gPSAoKHVuc2lnbmVkIGxvbmcgbG9uZyltYXhfbG93X3BmbiAtIG1pbl9sb3dfcGZuKSA8PCBQQUdFX1NISUZUOwotCi0JcmV0ID0gcGFyc2VfY3Jhc2hrZXJuZWwoYm9vdF9jb21tYW5kX2xpbmUsIHRvdGFsX21lbSwKLQkJCSZjcmFzaF9zaXplLCAmY3Jhc2hfYmFzZSk7Ci0JaWYgKHJldCA9PSAwICYmIGNyYXNoX3NpemUpIHsKLQkJaWYgKGNyYXNoX2Jhc2UgPD0gMCkgewotCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgotCQkJCQkieW91IGhhdmUgdG8gc3BlY2lmeSBhIGJhc2UgYWRkcmVzc1xuIik7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQlpZiAocmVzZXJ2ZV9ib290bWVtKGNyYXNoX2Jhc2UsIGNyYXNoX3NpemUsCi0JCQkJCUJPT1RNRU1fRVhDTFVTSVZFKSA8IDApIHsKLQkJCXByaW50ayhLRVJOX0lORk8gImNyYXNoa2VybmVsIHJlc2VydmF0aW9uIGZhaWxlZCAtICIKLQkJCQkJIm1lbW9yeSBpcyBpbiB1c2VcbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2aW5nICVsZE1CIG9mIG1lbW9yeSBhdCAlbGRNQiAiCi0JCQkJImZvciBjcmFzaGtlcm5lbCAoU3lzdGVtIFJBTTogJWxkTUIpXG4iLAotCQkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9zaXplID4+IDIwKSwKLQkJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfYmFzZSA+PiAyMCksCi0JCQkJKHVuc2lnbmVkIGxvbmcpKHRvdGFsX21lbSA+PiAyMCkpOwotCQljcmFzaGtfcmVzLnN0YXJ0ID0gY3Jhc2hfYmFzZTsKLQkJY3Jhc2hrX3Jlcy5lbmQgICA9IGNyYXNoX2Jhc2UgKyBjcmFzaF9zaXplIC0gMTsKLQkJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNyYXNoa19yZXMpOwotCX0KLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKLXt9Ci0jZW5kaWYKLQotLyogT3ZlcnJpZGRlbiBpbiBwYXJhdmlydC5jIGlmIENPTkZJR19QQVJBVklSVCAqLwotdm9pZCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgX19pbml0IG1lbW9yeV9zZXR1cCh2b2lkKQotewotICAgICAgIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9zZXR1cF9kYXRhKHZvaWQpCi17Ci0Jc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7Ci0JdW5zaWduZWQgbG9uZyBwYV9kYXRhOwotCi0JaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQotCQlyZXR1cm47Ci0JcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOwotCXdoaWxlIChwYV9kYXRhKSB7Ci0JCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIFBBR0VfU0laRSk7Ci0JCXN3aXRjaCAoZGF0YS0+dHlwZSkgewotCQlkZWZhdWx0OgotCQkJYnJlYWs7Ci0JCX0KLSNpZm5kZWYgQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TCi0JCWZyZWVfZWFybHkocGFfZGF0YSwgcGFfZGF0YStzaXplb2YoKmRhdGEpK2RhdGEtPmxlbik7Ci0jZW5kaWYKLQkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7Ci0JCWVhcmx5X2lvdW5tYXAoZGF0YSwgUEFHRV9TSVpFKTsKLQl9Ci19Ci0KLSNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCi1leHRlcm4gdm9pZCBfX2NwdWluaXQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKTsKLWV4dGVybiB2b2lkIF9faW5pdCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCk7Ci0jZWxzZQotdm9pZCBfX2NwdWluaXQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKQotewotfQotdm9pZCBfX2luaXQgY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotLyoKLSAqIHNldHVwX2FyY2ggLSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYm9vdC10aW1lIGluaXRpYWxpemF0aW9ucwotICoKLSAqIE5vdGU6IE9uIHg4Nl82NCwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZSBldmVuIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC4KLSAqLwotdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQotewotCXVuc2lnbmVkIGk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJDb21tYW5kIGxpbmU6ICVzXG4iLCBib290X2NvbW1hbmRfbGluZSk7Ci0KLQlST09UX0RFViA9IG9sZF9kZWNvZGVfZGV2KGJvb3RfcGFyYW1zLmhkci5yb290X2Rldik7Ci0Jc2NyZWVuX2luZm8gPSBib290X3BhcmFtcy5zY3JlZW5faW5mbzsKLQllZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87Ci0Jc2F2ZWRfdmlkZW9fbW9kZSA9IGJvb3RfcGFyYW1zLmhkci52aWRfbW9kZTsKLQlib290bG9hZGVyX3R5cGUgPSBib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXI7Ci0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9SQU0KLQlyZF9pbWFnZV9zdGFydCA9IGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSzsKLQlyZF9wcm9tcHQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfUFJPTVBUX0ZMQUcpICE9IDApOwotCXJkX2RvbG9hZCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19MT0FEX0ZMQUcpICE9IDApOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0VGSQotCWlmICghc3RybmNtcCgoY2hhciAqKSZib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbG9hZGVyX3NpZ25hdHVyZSwKLQkJICAgICAiRUw2NCIsIDQpKQotCQllZmlfZW5hYmxlZCA9IDE7Ci0jZW5kaWYKLQotCUFSQ0hfU0VUVVAKLQotCW1lbW9yeV9zZXR1cCgpOwotCWNvcHlfZWRkKCk7Ci0KLQlpZiAoIWJvb3RfcGFyYW1zLmhkci5yb290X2ZsYWdzKQotCQlyb290X21vdW50ZmxhZ3MgJj0gfk1TX1JET05MWTsKLQlpbml0X21tLnN0YXJ0X2NvZGUgPSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwotCWluaXRfbW0uZW5kX2NvZGUgPSAodW5zaWduZWQgbG9uZykgJl9ldGV4dDsKLQlpbml0X21tLmVuZF9kYXRhID0gKHVuc2lnbmVkIGxvbmcpICZfZWRhdGE7Ci0JaW5pdF9tbS5icmsgPSAodW5zaWduZWQgbG9uZykgJl9lbmQ7Ci0KLQljb2RlX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfdGV4dCk7Ci0JY29kZV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoJl9ldGV4dCktMTsKLQlkYXRhX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfZXRleHQpOwotCWRhdGFfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfZWRhdGEpLTE7Ci0JYnNzX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfX2Jzc19zdGFydCk7Ci0JYnNzX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cygmX19ic3Nfc3RvcCktMTsKLQotCWVhcmx5X2lkZW50aWZ5X2NwdSgmYm9vdF9jcHVfZGF0YSk7Ci0KLQlzdHJsY3B5KGNvbW1hbmRfbGluZSwgYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKLQkqY21kbGluZV9wID0gY29tbWFuZF9saW5lOwotCi0JcGFyc2Vfc2V0dXBfZGF0YSgpOwotCi0JcGFyc2VfZWFybHlfcGFyYW0oKTsKLQotI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCi0JaWYgKGluaXRfb2hjaTEzOTRfZG1hX2Vhcmx5KQotCQlpbml0X29oY2kxMzk0X2RtYV9vbl9hbGxfY29udHJvbGxlcnMoKTsKLSNlbmRpZgotCi0JZmluaXNoX2U4MjBfcGFyc2luZygpOwotCi0JLyogYWZ0ZXIgcGFyc2VfZWFybHlfcGFyYW0sIHNvIGNvdWxkIGRlYnVnIGl0ICovCi0JaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNvZGVfcmVzb3VyY2UpOwotCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZkYXRhX3Jlc291cmNlKTsKLQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYnNzX3Jlc291cmNlKTsKLQotCWVhcmx5X2dhcnRfaW9tbXVfY2hlY2soKTsKLQotCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgLTFVTCk7Ci0JLyoKLQkgKiBwYXJ0aWFsbHkgdXNlZCBwYWdlcyBhcmUgbm90IHVzYWJsZSAtIHRodXMKLQkgKiB3ZSBhcmUgcm91bmRpbmcgdXB3YXJkczoKLQkgKi8KLQllbmRfcGZuID0gZTgyMF9lbmRfb2ZfcmFtKCk7Ci0JLyogdXBkYXRlIGU4MjAgZm9yIG1lbW9yeSBub3QgY292ZXJlZCBieSBXQiBNVFJScyAqLwotCW10cnJfYnBfaW5pdCgpOwotCWlmIChtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5KGVuZF9wZm4pKSB7Ci0JCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgLTFVTCk7Ci0JCWVuZF9wZm4gPSBlODIwX2VuZF9vZl9yYW0oKTsKLQl9Ci0KLQludW1fcGh5c3BhZ2VzID0gZW5kX3BmbjsKLQotCWNoZWNrX2VmZXIoKTsKLQotCW1heF9wZm5fbWFwcGVkID0gaW5pdF9tZW1vcnlfbWFwcGluZygwLCAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpOwotCWlmIChlZmlfZW5hYmxlZCkKLQkJZWZpX2luaXQoKTsKLQotCXZzbXBfaW5pdCgpOwotCi0JZG1pX3NjYW5fbWFjaGluZSgpOwotCi0JaW9fZGVsYXlfaW5pdCgpOwotCi0jaWZkZWYgQ09ORklHX0tWTV9DTE9DSwotCWt2bWNsb2NrX2luaXQoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NNUAotCS8qIHNldHVwIHRvIHVzZSB0aGUgZWFybHkgc3RhdGljIGluaXQgdGFibGVzIGR1cmluZyBrZXJuZWwgc3RhcnR1cCAqLwotCXg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19hcGljaWRfaW5pdDsKLQl4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0OwotI2lmZGVmIENPTkZJR19OVU1BCi0JeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIgPSAodm9pZCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfaW5pdDsKLSNlbmRpZgotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQUNQSQotCS8qCi0JICogSW5pdGlhbGl6ZSB0aGUgQUNQSSBib290LXRpbWUgdGFibGUgcGFyc2VyIChnZXRzIHRoZSBSU0RQIGFuZCBTRFQpLgotCSAqIENhbGwgdGhpcyBlYXJseSBmb3IgU1JBVCBub2RlIHNldHVwLgotCSAqLwotCWFjcGlfYm9vdF90YWJsZV9pbml0KCk7Ci0jZW5kaWYKLQotCS8qIEhvdyBtYW55IGVuZC1vZi1tZW1vcnkgdmFyaWFibGVzIHlvdSBoYXZlLCBncmFuZG1hISAqLwotCW1heF9sb3dfcGZuID0gZW5kX3BmbjsKLQltYXhfcGZuID0gZW5kX3BmbjsKLQloaWdoX21lbW9yeSA9ICh2b2lkICopX192YShlbmRfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwotCi0JLyogUmVtb3ZlIGFjdGl2ZSByYW5nZXMgc28gcmVkaXNjb3Zlcnkgd2l0aCBOVU1BLWF3YXJlbmVzcyBoYXBwZW5zICovCi0JcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7Ci0KLSNpZmRlZiBDT05GSUdfQUNQSV9OVU1BCi0JLyoKLQkgKiBQYXJzZSBTUkFUIHRvIGRpc2NvdmVyIG5vZGVzLgotCSAqLwotCWFjcGlfbnVtYV9pbml0KCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19OVU1BCi0JbnVtYV9pbml0bWVtX2luaXQoMCwgZW5kX3Bmbik7Ci0jZWxzZQotCWNvbnRpZ19pbml0bWVtX2luaXQoMCwgZW5kX3Bmbik7Ci0jZW5kaWYKLQotCWRtYTMyX3Jlc2VydmVfYm9vdG1lbSgpOwotCi0jaWZkZWYgQ09ORklHX0FDUElfU0xFRVAKLQkvKgotCSAqIFJlc2VydmUgbG93IG1lbW9yeSByZWdpb24gZm9yIHNsZWVwIHN1cHBvcnQuCi0JICovCi0gICAgICAgYWNwaV9yZXNlcnZlX2Jvb3RtZW0oKTsKLSNlbmRpZgotCi0JaWYgKGVmaV9lbmFibGVkKQotCQllZmlfcmVzZXJ2ZV9ib290bWVtKCk7Ci0KLSAgICAgICAvKgotCSogRmluZCBhbmQgcmVzZXJ2ZSBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246Ci0JKi8KLQlmaW5kX3NtcF9jb25maWcoKTsKLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKLQlpZiAoYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyICYmIGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlKSB7Ci0JCXVuc2lnbmVkIGxvbmcgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOwotCQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOwotCQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfZW5kICAgPSByYW1kaXNrX2ltYWdlICsgcmFtZGlza19zaXplOwotCQl1bnNpZ25lZCBsb25nIGVuZF9vZl9tZW0gICAgPSBlbmRfcGZuIDw8IFBBR0VfU0hJRlQ7Ci0KLQkJaWYgKHJhbWRpc2tfZW5kIDw9IGVuZF9vZl9tZW0pIHsKLQkJCS8qCi0JCQkgKiBkb24ndCBuZWVkIHRvIHJlc2VydmUgYWdhaW4sIGFscmVhZHkgcmVzZXJ2ZWQgZWFybHkKLQkJCSAqIGluIHg4Nl82NF9zdGFydF9rZXJuZWwsIGFuZCBlYXJseV9yZXNfdG9fYm9vdG1lbQotCQkJICogY29udmVydCB0aGF0IHRvIHJlc2VydmVkIGluIGJvb3RtZW0KLQkJCSAqLwotCQkJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19pbWFnZSArIFBBR0VfT0ZGU0VUOwotCQkJaW5pdHJkX2VuZCA9IGluaXRyZF9zdGFydCtyYW1kaXNrX3NpemU7Ci0JCX0gZWxzZSB7Ci0JCQlmcmVlX2Jvb3RtZW0ocmFtZGlza19pbWFnZSwgcmFtZGlza19zaXplKTsKLQkJCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIGV4dGVuZHMgYmV5b25kIGVuZCBvZiBtZW1vcnkgIgotCQkJICAgICAgICIoMHglMDhseCA+IDB4JTA4bHgpXG5kaXNhYmxpbmcgaW5pdHJkXG4iLAotCQkJICAgICAgIHJhbWRpc2tfZW5kLCBlbmRfb2ZfbWVtKTsKLQkJCWluaXRyZF9zdGFydCA9IDA7Ci0JCX0KLQl9Ci0jZW5kaWYKLQlyZXNlcnZlX2NyYXNoa2VybmVsKCk7Ci0KLQlyZXNlcnZlX2liZnRfcmVnaW9uKCk7Ci0KLQlwYWdpbmdfaW5pdCgpOwotCW1hcF92c3lzY2FsbCgpOwotCi0JZWFybHlfcXVpcmtzKCk7Ci0KLSNpZmRlZiBDT05GSUdfQUNQSQotCS8qCi0JICogUmVhZCBBUElDIGFuZCBzb21lIG90aGVyIGVhcmx5IGluZm9ybWF0aW9uIGZyb20gQUNQSSB0YWJsZXMuCi0JICovCi0JYWNwaV9ib290X2luaXQoKTsKLSNlbmRpZgotCi0JaW5pdF9jcHVfdG9fbm9kZSgpOwotCi0JLyoKLQkgKiBnZXQgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgotCSAqLwotCWlmIChzbXBfZm91bmRfY29uZmlnKQotCQlnZXRfc21wX2NvbmZpZygpOwotCWluaXRfYXBpY19tYXBwaW5ncygpOwotCWlvYXBpY19pbml0X21hcHBpbmdzKCk7Ci0KLQlrdm1fZ3Vlc3RfaW5pdCgpOwotCi0JLyoKLQkgKiBXZSB0cnVzdCBlODIwIGNvbXBsZXRlbHkuIE5vIGV4cGxpY2l0IFJPTSBwcm9iaW5nIGluIG1lbW9yeS4KLQkgKi8KLQllODIwX3Jlc2VydmVfcmVzb3VyY2VzKCk7Ci0JZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKCk7Ci0KLQkvKiByZXF1ZXN0IEkvTyBzcGFjZSBmb3IgZGV2aWNlcyB1c2VkIG9uIGFsbCBpWzM0NV04NiBQQ3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGFuZGFyZF9pb19yZXNvdXJjZXMpOyBpKyspCi0JCXJlcXVlc3RfcmVzb3VyY2UoJmlvcG9ydF9yZXNvdXJjZSwgJnN0YW5kYXJkX2lvX3Jlc291cmNlc1tpXSk7Ci0KLQllODIwX3NldHVwX2dhcCgpOwotCi0jaWZkZWYgQ09ORklHX1ZUCi0jaWYgZGVmaW5lZChDT05GSUdfVkdBX0NPTlNPTEUpCi0JaWYgKCFlZmlfZW5hYmxlZCB8fCAoZWZpX21lbV90eXBlKDB4YTAwMDApICE9IEVGSV9DT05WRU5USU9OQUxfTUVNT1JZKSkKLQkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOwotI2VsaWYgZGVmaW5lZChDT05GSUdfRFVNTVlfQ09OU09MRSkKLQljb25zd2l0Y2hwID0gJmR1bW15X2NvbjsKLSNlbmRpZgotI2VuZGlmCi0KLQkvKiBkbyB0aGlzIGJlZm9yZSBpZGVudGlmeV9jcHUgZm9yIGJvb3QgY3B1ICovCi0JY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKCk7Ci19Ci0KLXN0YXRpYyBpbnQgX19jcHVpbml0IGdldF9tb2RlbF9uYW1lKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQl1bnNpZ25lZCBpbnQgKnY7Ci0KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPCAweDgwMDAwMDA0KQotCQlyZXR1cm4gMDsKLQotCXYgPSAodW5zaWduZWQgaW50ICopIGMtPng4Nl9tb2RlbF9pZDsKLQljcHVpZCgweDgwMDAwMDAyLCAmdlswXSwgJnZbMV0sICZ2WzJdLCAmdlszXSk7Ci0JY3B1aWQoMHg4MDAwMDAwMywgJnZbNF0sICZ2WzVdLCAmdls2XSwgJnZbN10pOwotCWNwdWlkKDB4ODAwMDAwMDQsICZ2WzhdLCAmdls5XSwgJnZbMTBdLCAmdlsxMV0pOwotCWMtPng4Nl9tb2RlbF9pZFs0OF0gPSAwOwotCXJldHVybiAxOwotfQotCi0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBkaXNwbGF5X2NhY2hlaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdW5zaWduZWQgaW50IG4sIGR1bW15LCBlYXgsIGVieCwgZWN4LCBlZHg7Ci0KLQluID0gYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWw7Ci0KLQlpZiAobiA+PSAweDgwMDAwMDA1KSB7Ci0JCWNwdWlkKDB4ODAwMDAwMDUsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7Ci0JCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDEgSSBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKSwgIgotCQkgICAgICAgIkQgY2FjaGUgJWRLICglZCBieXRlcy9saW5lKVxuIiwKLQkJICAgICAgIGVkeD4+MjQsIGVkeCYweEZGLCBlY3g+PjI0LCBlY3gmMHhGRik7Ci0JCWMtPng4Nl9jYWNoZV9zaXplID0gKGVjeD4+MjQpICsgKGVkeD4+MjQpOwotCQkvKiBPbiBLOCBMMSBUTEIgaXMgaW5jbHVzaXZlLCBzbyBkb24ndCBjb3VudCBpdCAqLwotCQljLT54ODZfdGxic2l6ZSA9IDA7Ci0JfQotCi0JaWYgKG4gPj0gMHg4MDAwMDAwNikgewotCQljcHVpZCgweDgwMDAwMDA2LCAmZHVtbXksICZlYngsICZlY3gsICZlZHgpOwotCQllY3ggPSBjcHVpZF9lY3goMHg4MDAwMDAwNik7Ci0JCWMtPng4Nl9jYWNoZV9zaXplID0gZWN4ID4+IDE2OwotCQljLT54ODZfdGxic2l6ZSArPSAoKGVieCA+PiAxNikgJiAweGZmZikgKyAoZWJ4ICYgMHhmZmYpOwotCi0JCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDIgQ2FjaGU6ICVkSyAoJWQgYnl0ZXMvbGluZSlcbiIsCi0JCWMtPng4Nl9jYWNoZV9zaXplLCBlY3ggJiAweEZGKTsKLQl9Ci0JaWYgKG4gPj0gMHg4MDAwMDAwOCkgewotCQljcHVpZCgweDgwMDAwMDA4LCAmZWF4LCAmZHVtbXksICZkdW1teSwgJmR1bW15KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQl9Ci19Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotc3RhdGljIGludCBfX2NwdWluaXQgbmVhcmJ5X25vZGUoaW50IGFwaWNpZCkKLXsKLQlpbnQgaSwgbm9kZTsKLQotCWZvciAoaSA9IGFwaWNpZCAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0JCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKLQkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQotCQkJcmV0dXJuIG5vZGU7Ci0JfQotCWZvciAoaSA9IGFwaWNpZCArIDE7IGkgPCBNQVhfTE9DQUxfQVBJQzsgaSsrKSB7Ci0JCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKLQkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQotCQkJcmV0dXJuIG5vZGU7Ci0JfQotCXJldHVybiBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7IC8qIFNob3VsZG4ndCBoYXBwZW4gKi8KLX0KLSNlbmRpZgotCi0vKgotICogT24gYSBBTUQgZHVhbCBjb3JlIHNldHVwIHRoZSBsb3dlciBiaXRzIG9mIHRoZSBBUElDIGlkIGRpc3Rpbmd1c2ggdGhlIGNvcmVzLgotICogQXNzdW1lcyBudW1iZXIgb2YgY29yZXMgaXMgYSBwb3dlciBvZiB0d28uCi0gKi8KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBhbWRfZGV0ZWN0X2NtcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0jaWZkZWYgQ09ORklHX1NNUAotCXVuc2lnbmVkIGJpdHM7Ci0jaWZkZWYgQ09ORklHX05VTUEKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCWludCBub2RlID0gMDsKLQl1bnNpZ25lZCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKLSNlbmRpZgotCWJpdHMgPSBjLT54ODZfY29yZWlkX2JpdHM7Ci0KLQkvKiBMb3cgb3JkZXIgYml0cyBkZWZpbmUgdGhlIGNvcmUgaWQgKGluZGV4IG9mIGNvcmUgaW4gc29ja2V0KSAqLwotCWMtPmNwdV9jb3JlX2lkID0gYy0+aW5pdGlhbF9hcGljaWQgJiAoKDEgPDwgYml0cyktMSk7Ci0JLyogQ29udmVydCB0aGUgaW5pdGlhbCBBUElDIElEIGludG8gdGhlIHNvY2tldCBJRCAqLwotCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkID4+IGJpdHM7Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCW5vZGUgPSBjLT5waHlzX3Byb2NfaWQ7Ci0JaWYgKGFwaWNpZF90b19ub2RlW2FwaWNpZF0gIT0gTlVNQV9OT19OT0RFKQotCQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKLQlpZiAoIW5vZGVfb25saW5lKG5vZGUpKSB7Ci0JCS8qIFR3byBwb3NzaWJpbGl0aWVzIGhlcmU6Ci0JCSAgIC0gVGhlIENQVSBpcyBtaXNzaW5nIG1lbW9yeSBhbmQgbm8gbm9kZSB3YXMgY3JlYXRlZC4KLQkJICAgSW4gdGhhdCBjYXNlIHRyeSBwaWNraW5nIG9uZSBmcm9tIGEgbmVhcmJ5IENQVQotCQkgICAtIFRoZSBBUElDIElEcyBkaWZmZXIgZnJvbSB0aGUgSHlwZXJUcmFuc3BvcnQgbm9kZSBJRHMKLQkJICAgd2hpY2ggdGhlIEs4IG5vcnRoYnJpZGdlIHBhcnNpbmcgZmlsbHMgaW4uCi0JCSAgIEFzc3VtZSB0aGV5IGFyZSBhbGwgaW5jcmVhc2VkIGJ5IGEgY29uc3RhbnQgb2Zmc2V0LAotCQkgICBidXQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEhUIG5vZGVpZHMuCi0JCSAgIElmIHRoYXQgZG9lc24ndCByZXN1bHQgaW4gYSB1c2FibGUgbm9kZSBmYWxsIGJhY2sgdG8gdGhlCi0JCSAgIHBhdGggZm9yIHRoZSBwcmV2aW91cyBjYXNlLiAgKi8KLQotCQlpbnQgaHRfbm9kZWlkID0gYy0+aW5pdGlhbF9hcGljaWQ7Ci0KLQkJaWYgKGh0X25vZGVpZCA+PSAwICYmCi0JCSAgICBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdICE9IE5VTUFfTk9fTk9ERSkKLQkJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdOwotCQkvKiBQaWNrIGEgbmVhcmJ5IG5vZGUgKi8KLQkJaWYgKCFub2RlX29ubGluZShub2RlKSkKLQkJCW5vZGUgPSBuZWFyYnlfbm9kZShhcGljaWQpOwotCX0KLQludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJDUFUgJWQvJXggLT4gTm9kZSAlZFxuIiwgY3B1LCBhcGljaWQsIG5vZGUpOwotI2VuZGlmCi0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfYW1kX21jKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLSNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgYml0cywgZWN4OwotCi0JLyogTXVsdGkgY29yZSBDUFU/ICovCi0JaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsIDwgMHg4MDAwMDAwOCkKLQkJcmV0dXJuOwotCi0JZWN4ID0gY3B1aWRfZWN4KDB4ODAwMDAwMDgpOwotCi0JYy0+eDg2X21heF9jb3JlcyA9IChlY3ggJiAweGZmKSArIDE7Ci0KLQkvKiBDUFUgdGVsbGluZyB1cyB0aGUgY29yZSBpZCBiaXRzIHNoaWZ0PyAqLwotCWJpdHMgPSAoZWN4ID4+IDEyKSAmIDB4RjsKLQotCS8qIE90aGVyd2lzZSByZWNvbXB1dGUgKi8KLQlpZiAoYml0cyA9PSAwKSB7Ci0JCXdoaWxlICgoMSA8PCBiaXRzKSA8IGMtPng4Nl9tYXhfY29yZXMpCi0JCQliaXRzKys7Ci0JfQotCi0JYy0+eDg2X2NvcmVpZF9iaXRzID0gYml0czsKLQotI2VuZGlmCi19Ci0KLSNkZWZpbmUgRU5BQkxFX0MxRV9NQVNLCQkweDE4MDAwMDAwCi0jZGVmaW5lIENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUJMQotI2RlZmluZSBDUFVJRF9YRkFNCQkweDBmZjAwMDAwCi0jZGVmaW5lIENQVUlEX1hGQU1fSzgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMEgJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMUgJCTB4MDAyMDAwMDAKLSNkZWZpbmUgQ1BVSURfWE1PRAkJMHgwMDBmMDAwMAotI2RlZmluZSBDUFVJRF9YTU9EX1JFVl9GCTB4MDAwNDAwMDAKLQotLyogQU1EIHN5c3RlbXMgd2l0aCBDMUUgZG9uJ3QgaGF2ZSBhIHdvcmtpbmcgbEFQSUMgdGltZXIuIENoZWNrIGZvciB0aGF0LiAqLwotc3RhdGljIF9fY3B1aW5pdCBpbnQgYW1kX2FwaWNfdGltZXJfYnJva2VuKHZvaWQpCi17Ci0JdTMyIGxvLCBoaSwgZWF4ID0gY3B1aWRfZWF4KENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUpOwotCi0Jc3dpdGNoIChlYXggJiBDUFVJRF9YRkFNKSB7Ci0JY2FzZSBDUFVJRF9YRkFNX0s4OgotCQlpZiAoKGVheCAmIENQVUlEX1hNT0QpIDwgQ1BVSURfWE1PRF9SRVZfRikKLQkJCWJyZWFrOwotCWNhc2UgQ1BVSURfWEZBTV8xMEg6Ci0JY2FzZSBDUFVJRF9YRkFNXzExSDoKLQkJcmRtc3IoTVNSX0s4X0VOQUJMRV9DMUUsIGxvLCBoaSk7Ci0JCWlmIChsbyAmIEVOQUJMRV9DMUVfTUFTSykKLQkJCXJldHVybiAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBlcnIgb24gdGhlIHNpZGUgb2YgY2F1dGlvbiAqLwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JZWFybHlfaW5pdF9hbWRfbWMoYyk7Ci0KLSAJLyogYy0+eDg2X3Bvd2VyIGlzIDgwMDBfMDAwNyBlZHguIEJpdCA4IGlzIGNvbnN0YW50IFRTQyAqLwotCWlmIChjLT54ODZfcG93ZXIgJiAoMTw8OCkpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdW5zaWduZWQgbGV2ZWw7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgbG9uZyB2YWx1ZTsKLQotCS8qCi0JICogRGlzYWJsZSBUTEIgZmx1c2ggZmlsdGVyIGJ5IHNldHRpbmcgSFdDUi5GRkRJUyBvbiBLOAotCSAqIGJpdCA2IG9mIG1zciBDMDAxXzAwMTUKLQkgKgotCSAqIEVycmF0YSA2MyBmb3IgU0gtQjMgc3RlcHBpbmdzCi0JICogRXJyYXRhIDEyMiBmb3IgYWxsIHN0ZXBwaW5ncyAoRisgaGF2ZSBpdCBkaXNhYmxlZCBieSBkZWZhdWx0KQotCSAqLwotCWlmIChjLT54ODYgPT0gMTUpIHsKLQkJcmRtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7Ci0JCXZhbHVlIHw9IDEgPDwgNjsKLQkJd3Jtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7Ci0JfQotI2VuZGlmCi0KLQkvKiBCaXQgMzEgaW4gbm9ybWFsIENQVUlEIHVzZWQgZm9yIG5vbnN0YW5kYXJkIDNETm93IElEOwotCSAgIDNETm93IGlzIElEZCBieSBiaXQgMzEgaW4gZXh0ZW5kZWQgQ1BVSUQgKDEqMzIrMzEpIGFueXdheSAqLwotCWNsZWFyX2NwdV9jYXAoYywgMCozMiszMSk7Ci0KLQkvKiBPbiBDKyBzdGVwcGluZyBLOCByZXAgbWljcm9jb2RlIHdvcmtzIHdlbGwgZm9yIGNvcHkvbWVtc2V0ICovCi0JbGV2ZWwgPSBjcHVpZF9lYXgoMSk7Ci0JaWYgKGMtPng4NiA9PSAxNSAmJiAoKGxldmVsID49IDB4MGY0OCAmJiBsZXZlbCA8IDB4MGY1MCkgfHwKLQkJCSAgICAgbGV2ZWwgPj0gMHgwZjU4KSkKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCWlmIChjLT54ODYgPT0gMHgxMCB8fCBjLT54ODYgPT0gMHgxMSkKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCi0JLyogRW5hYmxlIHdvcmthcm91bmQgZm9yIEZYU0FWRSBsZWFrICovCi0JaWYgKGMtPng4NiA+PSA2KQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9GWFNBVkVfTEVBSyk7Ci0KLQlsZXZlbCA9IGdldF9tb2RlbF9uYW1lKGMpOwotCWlmICghbGV2ZWwpIHsKLQkJc3dpdGNoIChjLT54ODYpIHsKLQkJY2FzZSAxNToKLQkJCS8qIFNob3VsZCBkaXN0aW5ndWlzaCBNb2RlbHMgaGVyZSwgYnV0IHRoaXMgaXMgb25seQotCQkJICAgYSBmYWxsYmFjayBhbnl3YXlzLiAqLwotCQkJc3RyY3B5KGMtPng4Nl9tb2RlbF9pZCwgIkhhbW1lciIpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JZGlzcGxheV9jYWNoZWluZm8oYyk7Ci0KLQkvKiBNdWx0aSBjb3JlIENQVT8gKi8KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKLQkJYW1kX2RldGVjdF9jbXAoYyk7Ci0KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwNiAmJgotCQkoY3B1aWRfZWR4KDB4ODAwMDAwMDYpICYgMHhmMDAwKSkKLQkJbnVtX2NhY2hlX2xlYXZlcyA9IDQ7Ci0JZWxzZQotCQludW1fY2FjaGVfbGVhdmVzID0gMzsKLQotCWlmIChjLT54ODYgPT0gMHhmIHx8IGMtPng4NiA9PSAweDEwIHx8IGMtPng4NiA9PSAweDExKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9LOCk7Ci0KLQkvKiBNRkVOQ0Ugc3RvcHMgUkRUU0Mgc3BlY3VsYXRpb24gKi8KLQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MpOwotCi0JaWYgKGMtPng4NiA9PSAweDEwKQotCQlmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKCk7Ci0KLQlpZiAoYW1kX2FwaWNfdGltZXJfYnJva2VuKCkpCi0JCWRpc2FibGVfYXBpY190aW1lciA9IDE7Ci0KLQlpZiAoYyA9PSAmYm9vdF9jcHVfZGF0YSAmJiBjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2VnOwotCi0JCS8qCi0JCSAqIFNwbGl0IHVwIGRpcmVjdCBtYXBwaW5nIGFyb3VuZCB0aGUgVFNFRyBTTU0gYXJlYS4KLQkJICogRG9uJ3QgZG8gaXQgZm9yIGdicGFnZXMgYmVjYXVzZSB0aGVyZSBzZWVtcyB2ZXJ5IGxpdHRsZQotCQkgKiBiZW5lZml0IGluIGRvaW5nIHNvLgotCQkgKi8KLQkJaWYgKCFyZG1zcmxfc2FmZShNU1JfSzhfVFNFR19BRERSLCAmdHNlZykgJiYKLQkJKHRzZWcgPj4gUE1EX1NISUZUKSA8IChtYXhfcGZuX21hcHBlZCA+PiAoUE1EX1NISUZULVBBR0VfU0hJRlQpKSkKLQkJCXNldF9tZW1vcnlfNGsoKHVuc2lnbmVkIGxvbmcpX192YSh0c2VnKSwgMSk7Ci0JfQotfQotCi12b2lkIF9fY3B1aW5pdCBkZXRlY3RfaHQoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotI2lmZGVmIENPTkZJR19TTVAKLQl1MzIgZWF4LCBlYngsIGVjeCwgZWR4OwotCWludCBpbmRleF9tc2IsIGNvcmVfYml0czsKLQotCWNwdWlkKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpOwotCi0KLQlpZiAoIWNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfSFQpKQotCQlyZXR1cm47Ci0JaWYgKGNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSkpCi0JCWdvdG8gb3V0OwotCi0Jc21wX251bV9zaWJsaW5ncyA9IChlYnggJiAweGZmMDAwMCkgPj4gMTY7Ci0KLQlpZiAoc21wX251bV9zaWJsaW5ncyA9PSAxKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gICJDUFU6IEh5cGVyLVRocmVhZGluZyBpcyBkaXNhYmxlZFxuIik7Ci0JfSBlbHNlIGlmIChzbXBfbnVtX3NpYmxpbmdzID4gMSkgewotCi0JCWlmIChzbXBfbnVtX3NpYmxpbmdzID4gTlJfQ1BVUykgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ1BVOiBVbnN1cHBvcnRlZCBudW1iZXIgb2YgIgotCQkJICAgICAgICJzaWJsaW5ncyAlZCIsIHNtcF9udW1fc2libGluZ3MpOwotCQkJc21wX251bV9zaWJsaW5ncyA9IDE7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQlpbmRleF9tc2IgPSBnZXRfY291bnRfb3JkZXIoc21wX251bV9zaWJsaW5ncyk7Ci0JCWMtPnBoeXNfcHJvY19pZCA9IHBoeXNfcGtnX2lkKGluZGV4X21zYik7Ci0KLQkJc21wX251bV9zaWJsaW5ncyA9IHNtcF9udW1fc2libGluZ3MgLyBjLT54ODZfbWF4X2NvcmVzOwotCi0JCWluZGV4X21zYiA9IGdldF9jb3VudF9vcmRlcihzbXBfbnVtX3NpYmxpbmdzKTsKLQotCQljb3JlX2JpdHMgPSBnZXRfY291bnRfb3JkZXIoYy0+eDg2X21heF9jb3Jlcyk7Ci0KLQkJYy0+Y3B1X2NvcmVfaWQgPSBwaHlzX3BrZ19pZChpbmRleF9tc2IpICYKLQkJCQkJICAgICAgICgoMSA8PCBjb3JlX2JpdHMpIC0gMSk7Ci0JfQotb3V0OgotCWlmICgoYy0+eDg2X21heF9jb3JlcyAqIHNtcF9udW1fc2libGluZ3MpID4gMSkgewotCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBQaHlzaWNhbCBQcm9jZXNzb3IgSUQ6ICVkXG4iLAotCQkgICAgICAgYy0+cGh5c19wcm9jX2lkKTsKLQkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogUHJvY2Vzc29yIENvcmUgSUQ6ICVkXG4iLAotCQkgICAgICAgYy0+Y3B1X2NvcmVfaWQpOwotCX0KLQotI2VuZGlmCi19Ci0KLS8qCi0gKiBmaW5kIG91dCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvciBjb3JlcyBvbiB0aGUgZGllCi0gKi8KLXN0YXRpYyBpbnQgX19jcHVpbml0IGludGVsX251bV9jcHVfY29yZXMoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCXVuc2lnbmVkIGludCBlYXgsIHQ7Ci0KLQlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCA0KQotCQlyZXR1cm4gMTsKLQotCWNwdWlkX2NvdW50KDQsIDAsICZlYXgsICZ0LCAmdCwgJnQpOwotCi0JaWYgKGVheCAmIDB4MWYpCi0JCXJldHVybiAoKGVheCA+PiAyNikgKyAxKTsKLQllbHNlCi0JCXJldHVybiAxOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgc3JhdF9kZXRlY3Rfbm9kZSh2b2lkKQotewotI2lmZGVmIENPTkZJR19OVU1BCi0JdW5zaWduZWQgbm9kZTsKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCWludCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKLQotCS8qIERvbid0IGRvIHRoZSBmdW5reSBmYWxsYmFjayBoZXVyaXN0aWNzIHRoZSBBTUQgdmVyc2lvbiBlbXBsb3lzCi0JICAgZm9yIG5vdy4gKi8KLQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKLQlpZiAobm9kZSA9PSBOVU1BX05PX05PREUgfHwgIW5vZGVfb25saW5lKG5vZGUpKQotCQlub2RlID0gZmlyc3Rfbm9kZShub2RlX29ubGluZV9tYXApOwotCW51bWFfc2V0X25vZGUoY3B1LCBub2RlKTsKLQotCXByaW50ayhLRVJOX0lORk8gIkNQVSAlZC8leCAtPiBOb2RlICVkXG4iLCBjcHUsIGFwaWNpZCwgbm9kZSk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfaW50ZWwoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWlmICgoYy0+eDg2ID09IDB4ZiAmJiBjLT54ODZfbW9kZWwgPj0gMHgwMykgfHwKLQkgICAgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4MGUpKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgaW5pdF9pbnRlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JLyogQ2FjaGUgc2l6ZXMgKi8KLQl1bnNpZ25lZCBuOwotCi0JaW5pdF9pbnRlbF9jYWNoZWluZm8oYyk7Ci0JaWYgKGMtPmNwdWlkX2xldmVsID4gOSkgewotCQl1bnNpZ25lZCBlYXggPSBjcHVpZF9lYXgoMTApOwotCQkvKiBDaGVjayBmb3IgdmVyc2lvbiBhbmQgdGhlIG51bWJlciBvZiBjb3VudGVycyAqLwotCQlpZiAoKGVheCAmIDB4ZmYpICYmICgoKGVheD4+OCkgJiAweGZmKSA+IDEpKQotCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQVJDSF9QRVJGTU9OKTsKLQl9Ci0KLQlpZiAoY3B1X2hhc19kcykgewotCQl1bnNpZ25lZCBpbnQgbDEsIGwyOwotCQlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbDEsIGwyKTsKLQkJaWYgKCEobDEgJiAoMTw8MTEpKSkKLQkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0JUUyk7Ci0JCWlmICghKGwxICYgKDE8PDEyKSkpCi0JCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9QRUJTKTsKLQl9Ci0KLQotCWlmIChjcHVfaGFzX2J0cykKLQkJZHNfaW5pdF9pbnRlbChjKTsKLQotCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKLQlpZiAobiA+PSAweDgwMDAwMDA4KSB7Ci0JCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgweDgwMDAwMDA4KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQkJLyogQ1BVSUQgd29ya2Fyb3VuZCBmb3IgSW50ZWwgMEYzNCBDUFUgKi8KLQkJaWYgKGMtPng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJgotCQkgICAgYy0+eDg2ID09IDB4RiAmJiBjLT54ODZfbW9kZWwgPT0gMHgzICYmCi0JCSAgICBjLT54ODZfbWFzayA9PSAweDQpCi0JCQljLT54ODZfcGh5c19iaXRzID0gMzY7Ci0JfQotCi0JaWYgKGMtPng4NiA9PSAxNSkKLQkJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemUgKiAyOwotCWlmIChjLT54ODYgPT0gNikKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyk7Ci0JYy0+eDg2X21heF9jb3JlcyA9IGludGVsX251bV9jcHVfY29yZXMoYyk7Ci0KLQlzcmF0X2RldGVjdF9ub2RlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCS8qIENhY2hlIHNpemVzICovCi0JdW5zaWduZWQgbjsKLQotCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKLQlpZiAobiA+PSAweDgwMDAwMDA4KSB7Ci0JCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgweDgwMDAwMDA4KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQl9Ci0KLQlpZiAoYy0+eDg2ID09IDB4NiAmJiBjLT54ODZfbW9kZWwgPj0gMHhmKSB7Ci0JCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplICogMjsKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCX0KLQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9MRkVOQ0VfUkRUU0MpOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgZ2V0X2NwdV92ZW5kb3Ioc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWNoYXIgKnYgPSBjLT54ODZfdmVuZG9yX2lkOwotCi0JaWYgKCFzdHJjbXAodiwgIkF1dGhlbnRpY0FNRCIpKQotCQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9BTUQ7Ci0JZWxzZSBpZiAoIXN0cmNtcCh2LCAiR2VudWluZUludGVsIikpCi0JCWMtPng4Nl92ZW5kb3IgPSBYODZfVkVORE9SX0lOVEVMOwotCWVsc2UgaWYgKCFzdHJjbXAodiwgIkNlbnRhdXJIYXVscyIpKQotCQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9DRU5UQVVSOwotCWVsc2UKLQkJYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKLX0KLQotLyogRG8gc29tZSBlYXJseSBjcHVpZCBvbiB0aGUgYm9vdCBDUFUgdG8gZ2V0IHNvbWUgcGFyYW1ldGVyIHRoYXQgYXJlCi0gICBuZWVkZWQgYmVmb3JlIGNoZWNrX2J1Z3MuIEV2ZXJ5dGhpbmcgYWR2YW5jZWQgaXMgaW4gaWRlbnRpZnlfY3B1Ci0gICBiZWxvdy4gKi8KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCXUzMiB0Zm1zLCB4bHZsOwotCi0JYy0+bG9vcHNfcGVyX2ppZmZ5ID0gbG9vcHNfcGVyX2ppZmZ5OwotCWMtPng4Nl9jYWNoZV9zaXplID0gLTE7Ci0JYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKLQljLT54ODZfbW9kZWwgPSBjLT54ODZfbWFzayA9IDA7CS8qIFNvIGZhciB1bmtub3duLi4uICovCi0JYy0+eDg2X3ZlbmRvcl9pZFswXSA9ICdcMCc7IC8qIFVuc2V0ICovCi0JYy0+eDg2X21vZGVsX2lkWzBdID0gJ1wwJzsgIC8qIFVuc2V0ICovCi0JYy0+eDg2X2NsZmx1c2hfc2l6ZSA9IDY0OwotCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplOwotCWMtPng4Nl9tYXhfY29yZXMgPSAxOwotCWMtPng4Nl9jb3JlaWRfYml0cyA9IDA7Ci0JYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSAwOwotCW1lbXNldCgmYy0+eDg2X2NhcGFiaWxpdHksIDAsIHNpemVvZiBjLT54ODZfY2FwYWJpbGl0eSk7Ci0KLQkvKiBHZXQgdmVuZG9yIG5hbWUgKi8KLQljcHVpZCgweDAwMDAwMDAwLCAodW5zaWduZWQgaW50ICopJmMtPmNwdWlkX2xldmVsLAotCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFswXSwKLQkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbOF0sCi0JICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzRdKTsKLQotCWdldF9jcHVfdmVuZG9yKGMpOwotCi0JLyogSW5pdGlhbGl6ZSB0aGUgc3RhbmRhcmQgc2V0IG9mIGNhcGFiaWxpdGllcyAqLwotCS8qIE5vdGUgdGhhdCB0aGUgdmVuZG9yLXNwZWNpZmljIGNvZGUgYmVsb3cgbWlnaHQgb3ZlcnJpZGUgKi8KLQotCS8qIEludGVsLWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4MDAwMDAwMDEgKi8KLQlpZiAoYy0+Y3B1aWRfbGV2ZWwgPj0gMHgwMDAwMDAwMSkgewotCQlfX3UzMiBtaXNjOwotCQljcHVpZCgweDAwMDAwMDAxLCAmdGZtcywgJm1pc2MsICZjLT54ODZfY2FwYWJpbGl0eVs0XSwKLQkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5WzBdKTsKLQkJYy0+eDg2ID0gKHRmbXMgPj4gOCkgJiAweGY7Ci0JCWMtPng4Nl9tb2RlbCA9ICh0Zm1zID4+IDQpICYgMHhmOwotCQljLT54ODZfbWFzayA9IHRmbXMgJiAweGY7Ci0JCWlmIChjLT54ODYgPT0gMHhmKQotCQkJYy0+eDg2ICs9ICh0Zm1zID4+IDIwKSAmIDB4ZmY7Ci0JCWlmIChjLT54ODYgPj0gMHg2KQotCQkJYy0+eDg2X21vZGVsICs9ICgodGZtcyA+PiAxNikgJiAweEYpIDw8IDQ7Ci0JCWlmICh0ZXN0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ0xGTFNIKSkKLQkJCWMtPng4Nl9jbGZsdXNoX3NpemUgPSAoKG1pc2MgPj4gOCkgJiAweGZmKSAqIDg7Ci0JfSBlbHNlIHsKLQkJLyogSGF2ZSBDUFVJRCBsZXZlbCAwIG9ubHkgLSB1bmhlYXJkIG9mICovCi0JCWMtPng4NiA9IDQ7Ci0JfQotCi0JYy0+aW5pdGlhbF9hcGljaWQgPSAoY3B1aWRfZWJ4KDEpID4+IDI0KSAmIDB4ZmY7Ci0jaWZkZWYgQ09ORklHX1NNUAotCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkOwotI2VuZGlmCi0JLyogQU1ELWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4ODAwMDAwMDEgKi8KLQl4bHZsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOwotCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0geGx2bDsKLQlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwMDAwMDAwKSB7Ci0JCWlmICh4bHZsID49IDB4ODAwMDAwMDEpIHsKLQkJCWMtPng4Nl9jYXBhYmlsaXR5WzFdID0gY3B1aWRfZWR4KDB4ODAwMDAwMDEpOwotCQkJYy0+eDg2X2NhcGFiaWxpdHlbNl0gPSBjcHVpZF9lY3goMHg4MDAwMDAwMSk7Ci0JCX0KLQkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwNCkKLQkJCWdldF9tb2RlbF9uYW1lKGMpOyAvKiBEZWZhdWx0IG5hbWUgKi8KLQl9Ci0KLQkvKiBUcmFuc21ldGEtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDg2MDAwMSAqLwotCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDg2MDAwMCk7Ci0JaWYgKCh4bHZsICYgMHhmZmZmMDAwMCkgPT0gMHg4MDg2MDAwMCkgewotCQkvKiBEb24ndCBzZXQgeDg2X2NwdWlkX2xldmVsIGhlcmUgZm9yIG5vdyB0byBub3QgY29uZnVzZS4gKi8KLQkJaWYgKHhsdmwgPj0gMHg4MDg2MDAwMSkKLQkJCWMtPng4Nl9jYXBhYmlsaXR5WzJdID0gY3B1aWRfZWR4KDB4ODA4NjAwMDEpOwotCX0KLQotCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOwotCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA3KQotCQljLT54ODZfcG93ZXIgPSBjcHVpZF9lZHgoMHg4MDAwMDAwNyk7Ci0KLQlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsKLQljYXNlIFg4Nl9WRU5ET1JfQU1EOgotCQllYXJseV9pbml0X2FtZChjKTsKLQkJYnJlYWs7Ci0JY2FzZSBYODZfVkVORE9SX0lOVEVMOgotCQllYXJseV9pbml0X2ludGVsKGMpOwotCQlicmVhazsKLQljYXNlIFg4Nl9WRU5ET1JfQ0VOVEFVUjoKLQkJZWFybHlfaW5pdF9jZW50YXVyKGMpOwotCQlicmVhazsKLQl9Ci0KLQl2YWxpZGF0ZV9wYXRfc3VwcG9ydChjKTsKLX0KLQotLyoKLSAqIFRoaXMgZG9lcyB0aGUgaGFyZCB3b3JrIG9mIGFjdHVhbGx5IHBpY2tpbmcgYXBhcnQgdGhlIENQVSBzdHVmZi4uLgotICovCi12b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWludCBpOwotCi0JZWFybHlfaWRlbnRpZnlfY3B1KGMpOwotCi0JaW5pdF9zY2F0dGVyZWRfY3B1aWRfZmVhdHVyZXMoYyk7Ci0KLQljLT5hcGljaWQgPSBwaHlzX3BrZ19pZCgwKTsKLQotCS8qCi0JICogVmVuZG9yLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLiAgSW4gdGhpcyBzZWN0aW9uIHdlCi0JICogY2Fub25pY2FsaXplIHRoZSBmZWF0dXJlIGZsYWdzLCBtZWFuaW5nIGlmIHRoZXJlIGFyZQotCSAqIGZlYXR1cmVzIGEgY2VydGFpbiBDUFUgc3VwcG9ydHMgd2hpY2ggQ1BVSUQgZG9lc24ndAotCSAqIHRlbGwgdXMsIENQVUlEIGNsYWltaW5nIGluY29ycmVjdCBmbGFncywgb3Igb3RoZXIgYnVncywKLQkgKiB3ZSBoYW5kbGUgdGhlbSBoZXJlLgotCSAqCi0JICogQXQgdGhlIGVuZCBvZiB0aGlzIHNlY3Rpb24sIGMtPng4Nl9jYXBhYmlsaXR5IGJldHRlcgotCSAqIGluZGljYXRlIHRoZSBmZWF0dXJlcyB0aGlzIENQVSBnZW51aW5lbHkgc3VwcG9ydHMhCi0JICovCi0Jc3dpdGNoIChjLT54ODZfdmVuZG9yKSB7Ci0JY2FzZSBYODZfVkVORE9SX0FNRDoKLQkJaW5pdF9hbWQoYyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBYODZfVkVORE9SX0lOVEVMOgotCQlpbml0X2ludGVsKGMpOwotCQlicmVhazsKLQotCWNhc2UgWDg2X1ZFTkRPUl9DRU5UQVVSOgotCQlpbml0X2NlbnRhdXIoYyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBYODZfVkVORE9SX1VOS05PV046Ci0JZGVmYXVsdDoKLQkJZGlzcGxheV9jYWNoZWluZm8oYyk7Ci0JCWJyZWFrOwotCX0KLQotCWRldGVjdF9odChjKTsKLQotCS8qCi0JICogT24gU01QLCBib290X2NwdV9kYXRhIGhvbGRzIHRoZSBjb21tb24gZmVhdHVyZSBzZXQgYmV0d2VlbgotCSAqIGFsbCBDUFVzOyBzbyBtYWtlIHN1cmUgdGhhdCB3ZSBpbmRpY2F0ZSB3aGljaCBmZWF0dXJlcyBhcmUKLQkgKiBjb21tb24gYmV0d2VlbiB0aGUgQ1BVcy4gIFRoZSBmaXJzdCB0aW1lIHRoaXMgcm91dGluZSBnZXRzCi0JICogZXhlY3V0ZWQsIGMgPT0gJmJvb3RfY3B1X2RhdGEuCi0JICovCi0JaWYgKGMgIT0gJmJvb3RfY3B1X2RhdGEpIHsKLQkJLyogQU5EIHRoZSBhbHJlYWR5IGFjY3VtdWxhdGVkIGZsYWdzIHdpdGggdGhlc2UgKi8KLQkJZm9yIChpID0gMDsgaSA8IE5DQVBJTlRTOyBpKyspCi0JCQlib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5W2ldICY9IGMtPng4Nl9jYXBhYmlsaXR5W2ldOwotCX0KLQotCS8qIENsZWFyIGFsbCBmbGFncyBvdmVycmlkZW4gYnkgb3B0aW9ucyAqLwotCWZvciAoaSA9IDA7IGkgPCBOQ0FQSU5UUzsgaSsrKQotCQljLT54ODZfY2FwYWJpbGl0eVtpXSAmPSB+Y2xlYXJlZF9jcHVfY2Fwc1tpXTsKLQotI2lmZGVmIENPTkZJR19YODZfTUNFCi0JbWNoZWNrX2luaXQoYyk7Ci0jZW5kaWYKLQlzZWxlY3RfaWRsZV9yb3V0aW5lKGMpOwotCi0jaWZkZWYgQ09ORklHX05VTUEKLQludW1hX2FkZF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLSNlbmRpZgotCi19Ci0KLXZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2Jvb3RfY3B1KHZvaWQpCi17Ci0JaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKLX0KLQotdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfc2Vjb25kYXJ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JQlVHX09OKGMgPT0gJmJvb3RfY3B1X2RhdGEpOwotCWlkZW50aWZ5X2NwdShjKTsKLQltdHJyX2FwX2luaXQoKTsKLX0KLQotc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfbm9jbGZsdXNoKGNoYXIgKmFyZykKLXsKLQlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX0NMRkxTSCk7Ci0JcmV0dXJuIDE7Ci19Ci1fX3NldHVwKCJub2NsZmx1c2giLCBzZXR1cF9ub2NsZmx1c2gpOwotCi12b2lkIF9fY3B1aW5pdCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JaWYgKGMtPng4Nl9tb2RlbF9pZFswXSkKLQkJcHJpbnRrKEtFUk5fQ09OVCAiJXMiLCBjLT54ODZfbW9kZWxfaWQpOwotCi0JaWYgKGMtPng4Nl9tYXNrIHx8IGMtPmNwdWlkX2xldmVsID49IDApCi0JCXByaW50ayhLRVJOX0NPTlQgIiBzdGVwcGluZyAlMDJ4XG4iLCBjLT54ODZfbWFzayk7Ci0JZWxzZQotCQlwcmludGsoS0VSTl9DT05UICJcbiIpOwotfQotCi1zdGF0aWMgX19pbml0IGludCBzZXR1cF9kaXNhYmxlY3B1aWQoY2hhciAqYXJnKQotewotCWludCBiaXQ7Ci0JaWYgKGdldF9vcHRpb24oJmFyZywgJmJpdCkgJiYgYml0IDwgTkNBUElOVFMqMzIpCi0JCXNldHVwX2NsZWFyX2NwdV9jYXAoYml0KTsKLQllbHNlCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotX19zZXR1cCgiY2xlYXJjcHVpZD0iLCBzZXR1cF9kaXNhYmxlY3B1aWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYzY4NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMKQEAgLTAsMCArMSwzOTkgQEAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KKyNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgorI2luY2x1ZGUgPGFzbS9oaWdobWVtLmg+CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKK3Vuc2lnbmVkIGludCBudW1fcHJvY2Vzc29yczsKK3Vuc2lnbmVkIGRpc2FibGVkX2NwdXMgX19jcHVpbml0ZGF0YTsKKy8qIFByb2Nlc3NvciB0aGF0IGlzIGRvaW5nIHRoZSBib290IHVwICovCit1bnNpZ25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gLTFVOwordW5zaWduZWQgaW50IG1heF9waHlzaWNhbF9hcGljaWQ7CitFWFBPUlRfU1lNQk9MKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7CisKKy8qIEJpdG1hc2sgb2YgcGh5c2ljYWxseSBleGlzdGluZyBDUFVzICovCitwaHlzaWRfbWFza190IHBoeXNfY3B1X3ByZXNlbnRfbWFwOworI2VuZGlmCisKKy8qIG1hcCBjcHUgaW5kZXggdG8gcGh5c2ljYWwgQVBJQyBJRCAqLworREVGSU5FX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCwgQkFEX0FQSUNJRCk7CitERUZJTkVfRUFSTFlfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQsIEJBRF9BUElDSUQpOworRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKHg4Nl9jcHVfdG9fYXBpY2lkKTsKK0VYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTCh4ODZfYmlvc19jcHVfYXBpY2lkKTsKKworI2lmIGRlZmluZWQoQ09ORklHX05VTUEpICYmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkKKyNkZWZpbmUJWDg2XzY0X05VTUEJMQorCisvKiBtYXAgY3B1IGluZGV4IHRvIG5vZGUgaW5kZXggKi8KK0RFRklORV9FQVJMWV9QRVJfQ1BVKGludCwgeDg2X2NwdV90b19ub2RlX21hcCwgTlVNQV9OT19OT0RFKTsKK0VYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTCh4ODZfY3B1X3RvX25vZGVfbWFwKTsKKworLyogd2hpY2ggbG9naWNhbCBDUFVzIGFyZSBvbiB3aGljaCBub2RlcyAqLworY3B1bWFza190ICpub2RlX3RvX2NwdW1hc2tfbWFwOworRVhQT1JUX1NZTUJPTChub2RlX3RvX2NwdW1hc2tfbWFwKTsKKworLyogc2V0dXAgbm9kZV90b19jcHVtYXNrX21hcCAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25vZGVfdG9fY3B1bWFza19tYXAodm9pZCk7CisKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfbm9kZV90b19jcHVtYXNrX21hcCh2b2lkKSB7IH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9TTVApCisvKgorICogQ29weSBkYXRhIHVzZWQgaW4gZWFybHkgaW5pdCByb3V0aW5lcyBmcm9tIHRoZSBpbml0aWFsIGFycmF5cyB0byB0aGUKKyAqIHBlciBjcHUgZGF0YSBhcmVhcy4gIFRoZXNlIGFycmF5cyB0aGVuIGJlY29tZSBleHBlbmRhYmxlIGFuZCB0aGUKKyAqICpfZWFybHlfcHRyJ3MgYXJlIHplcm9lZCBpbmRpY2F0aW5nIHRoYXQgdGhlIHN0YXRpYyBhcnJheXMgYXJlIGdvbmUuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9wZXJfY3B1X21hcHModm9pZCkKK3sKKwlpbnQgY3B1OworCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworCQlwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpID0KKwkJCQllYXJseV9wZXJfY3B1X21hcCh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KTsKKwkJcGVyX2NwdSh4ODZfYmlvc19jcHVfYXBpY2lkLCBjcHUpID0KKwkJCQllYXJseV9wZXJfY3B1X21hcCh4ODZfYmlvc19jcHVfYXBpY2lkLCBjcHUpOworI2lmZGVmIFg4Nl82NF9OVU1BCisJCXBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KSA9CisJCQkJZWFybHlfcGVyX2NwdV9tYXAoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKKyNlbmRpZgorCX0KKworCS8qIGluZGljYXRlIHRoZSBlYXJseSBzdGF0aWMgYXJyYXlzIHdpbGwgc29vbiBiZSBnb25lICovCisJZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpID0gTlVMTDsKKwllYXJseV9wZXJfY3B1X3B0cih4ODZfYmlvc19jcHVfYXBpY2lkKSA9IE5VTEw7CisjaWZkZWYgWDg2XzY0X05VTUEKKwllYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTEw7CisjZW5kaWYKK30KKworI2lmZGVmIENPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUAorY3B1bWFza190ICpjcHVtYXNrX29mX2NwdV9tYXAgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woY3B1bWFza19vZl9jcHVfbWFwKTsKKworLyogcmVxdWlyZXMgbnJfY3B1X2lkcyB0byBiZSBpbml0aWFsaXplZCAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdW1hc2tfb2ZfY3B1KHZvaWQpCit7CisJaW50IGk7CisKKwkvKiBhbGxvY19ib290bWVtIHplcm9lcyBtZW1vcnkgKi8KKwljcHVtYXNrX29mX2NwdV9tYXAgPSBhbGxvY19ib290bWVtX2xvdyhzaXplb2YoY3B1bWFza190KSAqIG5yX2NwdV9pZHMpOworCWZvciAoaSA9IDA7IGkgPCBucl9jcHVfaWRzOyBpKyspCisJCWNwdV9zZXQoaSwgY3B1bWFza19vZl9jcHVfbWFwW2ldKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1bWFza19vZl9jcHUodm9pZCkgeyB9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qCisgKiBHcmVhdCBmdXR1cmUgbm90LXNvLWZ1dHVyaXN0aWMgcGxhbjogbWFrZSBpMzg2IGFuZCB4ODZfNjQgZG8gaXQKKyAqIHRoZSBzYW1lIHdheQorICovCit1bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX19wZXJfY3B1X29mZnNldCk7CitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1X3BkYV9tYXAodm9pZCkgeyB9CisKKyNlbGlmICFkZWZpbmVkKENPTkZJR19TTVApCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1X3BkYV9tYXAodm9pZCkgeyB9CisKKyNlbHNlIC8qIENPTkZJR19TTVAgJiYgQ09ORklHX1g4Nl82NCAqLworCisvKgorICogQWxsb2NhdGUgY3B1X3BkYSBwb2ludGVyIHRhYmxlIGFuZCBhcnJheSB2aWEgYWxsb2NfYm9vdG1lbS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV9wZGFfbWFwKHZvaWQpCit7CisJY2hhciAqcGRhOworCXN0cnVjdCB4ODY2NF9wZGEgKipuZXdfY3B1X3BkYTsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisJaW50IGNwdTsKKworCXNpemUgPSByb3VuZHVwKHNpemVvZihzdHJ1Y3QgeDg2NjRfcGRhKSwgY2FjaGVfbGluZV9zaXplKCkpOworCisJLyogYWxsb2NhdGUgY3B1X3BkYSBhcnJheSBhbmQgcG9pbnRlciB0YWJsZSAqLworCXsKKwkJdW5zaWduZWQgbG9uZyB0c2l6ZSA9IG5yX2NwdV9pZHMgKiBzaXplb2Yodm9pZCAqKTsKKwkJdW5zaWduZWQgbG9uZyBhc2l6ZSA9IHNpemUgKiAobnJfY3B1X2lkcyAtIDEpOworCisJCXRzaXplID0gcm91bmR1cCh0c2l6ZSwgY2FjaGVfbGluZV9zaXplKCkpOworCQluZXdfY3B1X3BkYSA9IGFsbG9jX2Jvb3RtZW0odHNpemUgKyBhc2l6ZSk7CisJCXBkYSA9IChjaGFyICopbmV3X2NwdV9wZGEgKyB0c2l6ZTsKKwl9CisKKwkvKiBpbml0aWFsaXplIHBvaW50ZXIgdGFibGUgdG8gc3RhdGljIHBkYSdzICovCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworCQlpZiAoY3B1ID09IDApIHsKKwkJCS8qIGxlYXZlIGJvb3QgY3B1IHBkYSBpbiBwbGFjZSAqLworCQkJbmV3X2NwdV9wZGFbMF0gPSBjcHVfcGRhKDApOworCQkJY29udGludWU7CisJCX0KKwkJbmV3X2NwdV9wZGFbY3B1XSA9IChzdHJ1Y3QgeDg2NjRfcGRhICopcGRhOworCQluZXdfY3B1X3BkYVtjcHVdLT5pbl9ib290bWVtID0gMTsKKwkJcGRhICs9IHNpemU7CisJfQorCisJLyogcG9pbnQgdG8gbmV3IHBvaW50ZXIgdGFibGUgKi8KKwlfY3B1X3BkYSA9IG5ld19jcHVfcGRhOworfQorI2VuZGlmCisKKy8qCisgKiBHcmVhdCBmdXR1cmUgcGxhbjoKKyAqIERlY2xhcmUgUERBIGl0c2VsZiBhbmQgc3VwcG9ydCAoaXJxc3RhY2ssdHNzLHBnZCkgYXMgcGVyIGNwdSBkYXRhLgorICogQWx3YXlzIHBvaW50ICVncyB0byBpdHMgYmVnaW5uaW5nCisgKi8KK3ZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfYXJlYXModm9pZCkKK3sKKwlzc2l6ZV90IHNpemUgPSBQRVJDUFVfRU5PVUdIX1JPT007CisJY2hhciAqcHRyOworCWludCBjcHU7CisKKwkvKiBTZXR1cCBjcHVfcGRhIG1hcCAqLworCXNldHVwX2NwdV9wZGFfbWFwKCk7CisKKwkvKiBDb3B5IHNlY3Rpb24gZm9yIGVhY2ggQ1BVICh3ZSBkaXNjYXJkIHRoZSBvcmlnaW5hbCkgKi8KKwlzaXplID0gUEVSQ1BVX0VOT1VHSF9ST09NOworCXByaW50ayhLRVJOX0lORk8gIlBFUkNQVTogQWxsb2NhdGluZyAlemQgYnl0ZXMgb2YgcGVyIGNwdSBkYXRhXG4iLAorCQkJICBzaXplKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKyNpZm5kZWYgQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVMKKwkJcHRyID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhzaXplKTsKKyNlbHNlCisJCWludCBub2RlID0gZWFybHlfY3B1X3RvX25vZGUoY3B1KTsKKwkJaWYgKCFub2RlX29ubGluZShub2RlKSB8fCAhTk9ERV9EQVRBKG5vZGUpKSB7CisJCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzKHNpemUpOworCQkJcHJpbnRrKEtFUk5fSU5GTworCQkJICAgICAgICJjcHUgJWQgaGFzIG5vIG5vZGUgJWQgb3Igbm9kZS1sb2NhbCBtZW1vcnlcbiIsCisJCQkJY3B1LCBub2RlKTsKKwkJfQorCQllbHNlCisJCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzX25vZGUoTk9ERV9EQVRBKG5vZGUpLCBzaXplKTsKKyNlbmRpZgorCQlwZXJfY3B1X29mZnNldChjcHUpID0gcHRyIC0gX19wZXJfY3B1X3N0YXJ0OworCQltZW1jcHkocHRyLCBfX3Blcl9jcHVfc3RhcnQsIF9fcGVyX2NwdV9lbmQgLSBfX3Blcl9jcHVfc3RhcnQpOworCisJfQorCisJcHJpbnRrKEtFUk5fREVCVUcgIk5SX0NQVVM6ICVkLCBucl9jcHVfaWRzOiAlZCwgbnJfbm9kZV9pZHMgJWRcbiIsCisJCU5SX0NQVVMsIG5yX2NwdV9pZHMsIG5yX25vZGVfaWRzKTsKKworCS8qIFNldHVwIHBlcmNwdSBkYXRhIG1hcHMgKi8KKwlzZXR1cF9wZXJfY3B1X21hcHMoKTsKKworCS8qIFNldHVwIG5vZGUgdG8gY3B1bWFzayBtYXAgKi8KKwlzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKCk7CisKKwkvKiBTZXR1cCBjcHVtYXNrX29mX2NwdSBtYXAgKi8KKwlzZXR1cF9jcHVtYXNrX29mX2NwdSgpOworfQorCisjZW5kaWYKKworI2lmZGVmIFg4Nl82NF9OVU1BCisKKy8qCisgKiBBbGxvY2F0ZSBub2RlX3RvX2NwdW1hc2tfbWFwIGJhc2VkIG9uIG51bWJlciBvZiBhdmFpbGFibGUgbm9kZXMKKyAqIFJlcXVpcmVzIG5vZGVfcG9zc2libGVfbWFwIHRvIGJlIHZhbGlkLgorICoKKyAqIE5vdGU6IG5vZGVfdG9fY3B1bWFzaygpIGlzIG5vdCB2YWxpZCB1bnRpbCBhZnRlciB0aGlzIGlzIGRvbmUuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKHZvaWQpCit7CisJdW5zaWduZWQgaW50IG5vZGUsIG51bSA9IDA7CisJY3B1bWFza190ICptYXA7CisKKwkvKiBzZXR1cCBucl9ub2RlX2lkcyBpZiBub3QgZG9uZSB5ZXQgKi8KKwlpZiAobnJfbm9kZV9pZHMgPT0gTUFYX05VTU5PREVTKSB7CisJCWZvcl9lYWNoX25vZGVfbWFzayhub2RlLCBub2RlX3Bvc3NpYmxlX21hcCkKKwkJCW51bSA9IG5vZGU7CisJCW5yX25vZGVfaWRzID0gbnVtICsgMTsKKwl9CisKKwkvKiBhbGxvY2F0ZSB0aGUgbWFwICovCisJbWFwID0gYWxsb2NfYm9vdG1lbV9sb3cobnJfbm9kZV9pZHMgKiBzaXplb2YoY3B1bWFza190KSk7CisKKwlEcHJpbnRrKEtFUk5fREVCVUcgIk5vZGUgdG8gY3B1bWFzayBtYXAgYXQgJXAgZm9yICVkIG5vZGVzXG4iLAorCQltYXAsIG5yX25vZGVfaWRzKTsKKworCS8qIG5vZGVfdG9fY3B1bWFzaygpIHdpbGwgbm93IHdvcmsgKi8KKwlub2RlX3RvX2NwdW1hc2tfbWFwID0gbWFwOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKQoreworCWludCAqY3B1X3RvX25vZGVfbWFwID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19ub2RlX21hcCk7CisKKwlpZiAoY3B1X3BkYShjcHUpICYmIG5vZGUgIT0gTlVNQV9OT19OT0RFKQorCQljcHVfcGRhKGNwdSktPm5vZGVudW1iZXIgPSBub2RlOworCisJaWYgKGNwdV90b19ub2RlX21hcCkKKwkJY3B1X3RvX25vZGVfbWFwW2NwdV0gPSBub2RlOworCisJZWxzZSBpZiAocGVyX2NwdV9vZmZzZXQoY3B1KSkKKwkJcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpID0gbm9kZTsKKworCWVsc2UKKwkJRHByaW50ayhLRVJOX0lORk8gIlNldHRpbmcgbm9kZSBmb3Igbm9uLXByZXNlbnQgY3B1ICVkXG4iLCBjcHUpOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX2NsZWFyX25vZGUoaW50IGNwdSkKK3sKKwludW1hX3NldF9ub2RlKGNwdSwgTlVNQV9OT19OT0RFKTsKK30KKworI2lmbmRlZiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTCisKK3ZvaWQgX19jcHVpbml0IG51bWFfYWRkX2NwdShpbnQgY3B1KQoreworCWNwdV9zZXQoY3B1LCBub2RlX3RvX2NwdW1hc2tfbWFwW2Vhcmx5X2NwdV90b19ub2RlKGNwdSldKTsKK30KKwordm9pZCBfX2NwdWluaXQgbnVtYV9yZW1vdmVfY3B1KGludCBjcHUpCit7CisJY3B1X2NsZWFyKGNwdSwgbm9kZV90b19jcHVtYXNrX21hcFtjcHVfdG9fbm9kZShjcHUpXSk7Cit9CisKKyNlbHNlIC8qIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgKi8KKworLyoKKyAqIC0tLS0tLS0tLSBkZWJ1ZyB2ZXJzaW9ucyBvZiB0aGUgbnVtYSBmdW5jdGlvbnMgLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9jcHVtYXNrKGludCBjcHUsIGludCBlbmFibGUpCit7CisJaW50IG5vZGUgPSBjcHVfdG9fbm9kZShjcHUpOworCWNwdW1hc2tfdCAqbWFzazsKKwljaGFyIGJ1Zls2NF07CisKKwlpZiAobm9kZV90b19jcHVtYXNrX21hcCA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0VSUiAibm9kZV90b19jcHVtYXNrX21hcCBOVUxMXG4iKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm47CisJfQorCisJbWFzayA9ICZub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworCWlmIChlbmFibGUpCisJCWNwdV9zZXQoY3B1LCAqbWFzayk7CisJZWxzZQorCQljcHVfY2xlYXIoY3B1LCAqbWFzayk7CisKKwljcHVsaXN0X3NjbnByaW50ZihidWYsIHNpemVvZihidWYpLCAqbWFzayk7CisJcHJpbnRrKEtFUk5fREVCVUcgIiVzIGNwdSAlZCBub2RlICVkOiBtYXNrIG5vdyAlc1xuIiwKKwkJZW5hYmxlPyAibnVtYV9hZGRfY3B1IjoibnVtYV9yZW1vdmVfY3B1IiwgY3B1LCBub2RlLCBidWYpOworIH0KKwordm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpCit7CisJbnVtYV9zZXRfY3B1bWFzayhjcHUsIDEpOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX3JlbW92ZV9jcHUoaW50IGNwdSkKK3sKKwludW1hX3NldF9jcHVtYXNrKGNwdSwgMCk7Cit9CisKK2ludCBjcHVfdG9fbm9kZShpbnQgY3B1KQoreworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiY3B1X3RvX25vZGUoJWQpOiB1c2FnZSB0b28gZWFybHkhXG4iLCBjcHUpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKVtjcHVdOworCX0KKwlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworfQorRVhQT1JUX1NZTUJPTChjcHVfdG9fbm9kZSk7CisKKy8qCisgKiBTYW1lIGZ1bmN0aW9uIGFzIGNwdV90b19ub2RlKCkgYnV0IHVzZWQgaWYgY2FsbGVkIGJlZm9yZSB0aGUKKyAqIHBlcl9jcHUgYXJlYXMgYXJlIHNldHVwLgorICovCitpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSkKK3sKKwlpZiAoZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19ub2RlX21hcCkpCisJCXJldHVybiBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKVtjcHVdOworCisJaWYgKCFwZXJfY3B1X29mZnNldChjcHUpKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJlYXJseV9jcHVfdG9fbm9kZSglZCk6IG5vIHBlcl9jcHUgYXJlYSFcbiIsIGNwdSk7CisJCWR1bXBfc3RhY2soKTsKKwkJcmV0dXJuIE5VTUFfTk9fTk9ERTsKKwl9CisJcmV0dXJuIHBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKK30KKworCisvKiBlbXB0eSBjcHVtYXNrICovCitzdGF0aWMgY29uc3QgY3B1bWFza190IGNwdV9tYXNrX25vbmU7CisKKy8qCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgYml0bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLgorICovCitjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCWlmIChub2RlX3RvX2NwdW1hc2tfbWFwID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIl9ub2RlX3RvX2NwdW1hc2tfcHRyKCVkKTogbm8gbm9kZV90b19jcHVtYXNrX21hcCFcbiIsCisJCQlub2RlKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gKGNvbnN0IGNwdW1hc2tfdCAqKSZjcHVfb25saW5lX21hcDsKKwl9CisJaWYgKG5vZGUgPj0gbnJfbm9kZV9pZHMpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIl9ub2RlX3RvX2NwdW1hc2tfcHRyKCVkKTogbm9kZSA+IG5yX25vZGVfaWRzKCVkKVxuIiwKKwkJCW5vZGUsIG5yX25vZGVfaWRzKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gJmNwdV9tYXNrX25vbmU7CisJfQorCXJldHVybiAmbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KK0VYUE9SVF9TWU1CT0woX25vZGVfdG9fY3B1bWFza19wdHIpOworCisvKgorICogUmV0dXJucyBhIGJpdG1hc2sgb2YgQ1BVcyBvbiBOb2RlICdub2RlJy4KKyAqCisgKiBTaWRlIG5vdGU6IHRoaXMgZnVuY3Rpb24gY3JlYXRlcyB0aGUgcmV0dXJuZWQgY3B1bWFzayBvbiB0aGUgc3RhY2sKKyAqIHNvIHdpdGggYSBoaWdoIE5SX0NQVVMgY291bnQsIGV4Y2Vzc2l2ZSBzdGFjayBzcGFjZSBpcyB1c2VkLiAgVGhlCisgKiBub2RlX3RvX2NwdW1hc2tfcHRyIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHdoZW5ldmVyIHBvc3NpYmxlLgorICovCitjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQoreworCWlmIChub2RlX3RvX2NwdW1hc2tfbWFwID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIm5vZGVfdG9fY3B1bWFzayglZCk6IG5vIG5vZGVfdG9fY3B1bWFza19tYXAhXG4iLCBub2RlKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gY3B1X29ubGluZV9tYXA7CisJfQorCWlmIChub2RlID49IG5yX25vZGVfaWRzKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJub2RlX3RvX2NwdW1hc2soJWQpOiBub2RlID4gbnJfbm9kZV9pZHMoJWQpXG4iLAorCQkJbm9kZSwgbnJfbm9kZV9pZHMpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiBjcHVfbWFza19ub25lOworCX0KKwlyZXR1cm4gbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KK0VYUE9SVF9TWU1CT0wobm9kZV90b19jcHVtYXNrKTsKKworLyoKKyAqIC0tLS0tLS0tLSBlbmQgb2YgZGVidWcgdmVyc2lvbnMgb2YgdGhlIG51bWEgZnVuY3Rpb25zIC0tLS0tLS0tLQorICovCisKKyNlbmRpZiAvKiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKyNlbmRpZiAvKiBYODZfNjRfTlVNQSAqLworCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwppbmRleCA1NjA3OGQ2Li5mMzVjMmQ4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKQEAgLTU5LDcgKzU5LDYgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jaW5jbHVkZSA8YXNtL25taS5oPgogI2luY2x1ZGUgPGFzbS92bWkuaD4KICNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CkBAIC02OCwyMiArNjcsNiBAQAogI2luY2x1ZGUgPG1hY2hfd2FrZWNwdS5oPgogI2luY2x1ZGUgPHNtcGJvb3RfaG9va3MuaD4KIAotLyoKLSAqIEZJWE1FOiBGb3IgeDg2XzY0LCB0aG9zZSBhcmUgZGVmaW5lZCBpbiBvdGhlciBmaWxlcy4gQnV0IG1vdmluZyB0aGVtIGhlcmUsCi0gKiB3b3VsZCBtYWtlIHRoZSBzZXR1cCBhcmVhcyBkZXBlbmRlbnQgb24gc21wLCB3aGljaCBpcyBhIGxvc3MuIFdoZW4gd2UKLSAqIGludGVncmF0ZSBhcGljIGJldHdlZW4gYXJjaGVzLCB3ZSBjYW4gcHJvYmFibHkgZG8gYSBiZXR0ZXIgam9iLCBidXQKLSAqIHJpZ2h0IG5vdywgdGhleSdsbCBzdGF5IGhlcmUgLS0gZ2xvbW1lcgotICovCi0KLS8qIHdoaWNoIGxvZ2ljYWwgQ1BVIG51bWJlciBtYXBzIHRvIHdoaWNoIENQVSAocGh5c2ljYWwgQVBJQyBJRCkgKi8KLXUxNiB4ODZfY3B1X3RvX2FwaWNpZF9pbml0W05SX0NQVVNdIF9faW5pdGRhdGEgPQotCQkJeyBbMCAuLi4gTlJfQ1BVUy0xXSA9IEJBRF9BUElDSUQgfTsKLXZvaWQgKng4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0cjsKLQotdTE2IHg4Nl9iaW9zX2NwdV9hcGljaWRfaW5pdFtOUl9DUFVTXSBfX2luaXRkYXRhCi0JCQkJPSB7IFswIC4uLiBOUl9DUFVTLTFdID0gQkFEX0FQSUNJRCB9Owotdm9pZCAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7Ci0KICNpZmRlZiBDT05GSUdfWDg2XzMyCiB1OCBhcGljaWRfMl9ub2RlW01BWF9BUElDSURdOwogc3RhdGljIGludCBsb3dfbWFwcGluZ3M7CkBAIC0xOTgsMTMgKzE4MSwxMiBAQAogCW1hcF9jcHVfdG9fbm9kZShjcHUsIG5vZGUpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoaW50IGNwdSkKK3ZvaWQgbnVtYV9yZW1vdmVfY3B1KGludCBjcHUpCiB7CiAJY3B1XzJfbG9naWNhbF9hcGljaWRbY3B1XSA9IEJBRF9BUElDSUQ7CiAJdW5tYXBfY3B1X3RvX25vZGUoY3B1KTsKIH0KICNlbHNlCi0jZGVmaW5lIHVubWFwX2NwdV90b19sb2dpY2FsX2FwaWNpZChjcHUpIGRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBtYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKCkgIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKQEAgLTM0NiwxNSArMzI4LDggQEAKIAkgKiBzbXBfY2FsbF9mdW5jdGlvbigpLgogCSAqLwogCWxvY2tfaXBpX2NhbGxfbG9jaygpOwotI2lmZGVmIENPTkZJR19YODZfNjQKLQlzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsKLQotCS8qIFNldHVwIHRoZSBwZXIgY3B1IGlycSBoYW5kbGluZyBkYXRhIHN0cnVjdHVyZXMgKi8KLQlfX3NldHVwX3ZlY3Rvcl9pcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLQkvKgotCSAqIEFsbG93IHRoZSBtYXN0ZXIgdG8gY29udGludWUuCi0JICovCi0Jc3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKKwlzZXR1cF92ZWN0b3JfaXJxKHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAjZW5kaWYKIAljcHVfc2V0KHNtcF9wcm9jZXNzb3JfaWQoKSwgY3B1X29ubGluZV9tYXApOwogCXVubG9ja19pcGlfY2FsbF9sb2NrKCk7CkBAIC0zNjYsMzEgKzM0MSw4IEBACiAJY3B1X2lkbGUoKTsKIH0KIAotI2lmZGVmIENPTkZJR19YODZfMzIKLS8qCi0gKiBFdmVyeXRoaW5nIGhhcyBiZWVuIHNldCB1cCBmb3IgdGhlIHNlY29uZGFyeQotICogQ1BVcyAtIHRoZXkganVzdCBuZWVkIHRvIHJlbG9hZCBldmVyeXRoaW5nCi0gKiBmcm9tIHRoZSB0YXNrIHN0cnVjdHVyZQotICogVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4uCi0gKi8KLXZvaWQgX19kZXZpbml0IGluaXRpYWxpemVfc2Vjb25kYXJ5KHZvaWQpCi17Ci0JLyoKLQkgKiBXZSBkb24ndCBhY3R1YWxseSBuZWVkIHRvIGxvYWQgdGhlIGZ1bGwgVFNTLAotCSAqIGJhc2ljYWxseSBqdXN0IHRoZSBzdGFjayBwb2ludGVyIGFuZCB0aGUgaXAuCi0JICovCi0KLQlhc20gdm9sYXRpbGUoCi0JCSJtb3ZsICUwLCUlZXNwXG5cdCIKLQkJImptcCAqJTEiCi0JCToKLQkJOiJtIiAoY3VycmVudC0+dGhyZWFkLnNwKSwgIm0iIChjdXJyZW50LT50aHJlYWQuaXApKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgc21wX2FwcGx5X3F1aXJrcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgogCS8qCiAJICogTWFzayBCLCBQZW50aXVtLCBidXQgbm90IFBlbnRpdW0gTU1YCiAJICovCkBAIC00NDAsNyArMzkyLDYgQEAKIAogdmFsaWRfazc6CiAJOwotI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBzbXBfY2hlY2tzKHZvaWQpCkBAIC01NTUsMjMgKzUwNiw2IEBACiAJCXJldHVybiBjLT5sbGNfc2hhcmVkX21hcDsKIH0KIAotI2lmZGVmIENPTkZJR19YODZfMzIKLS8qCi0gKiBXZSBhcmUgY2FsbGVkIHZlcnkgZWFybHkgdG8gZ2V0IHRoZSBsb3cgbWVtb3J5IGZvciB0aGUKLSAqIFNNUCBib290dXAgdHJhbXBvbGluZSBwYWdlLgotICovCi12b2lkIF9faW5pdCBzbXBfYWxsb2NfbWVtb3J5KHZvaWQpCi17Ci0JdHJhbXBvbGluZV9iYXNlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKLQkvKgotCSAqIEhhcyB0byBiZSBpbiB2ZXJ5IGxvdyBtZW1vcnkgc28gd2UgY2FuIGV4ZWN1dGUKLQkgKiByZWFsLW1vZGUgQVAgY29kZS4KLQkgKi8KLQlpZiAoX19wYSh0cmFtcG9saW5lX2Jhc2UpID49IDB4OUYwMDApCi0JCUJVRygpOwotfQotI2VuZGlmCi0KIHN0YXRpYyB2b2lkIGltcHJlc3NfZnJpZW5kcyh2b2lkKQogewogCWludCBjcHU7CkBAIC03NDgsMTEgKzY4Miw3IEBACiAJICogdGFyZ2V0IHByb2Nlc3NvciBzdGF0ZS4KIAkgKi8KIAlzdGFydHVwX2lwaV9ob29rKHBoeXNfYXBpY2lkLCAodW5zaWduZWQgbG9uZykgc3RhcnRfc2Vjb25kYXJ5LAotI2lmZGVmIENPTkZJR19YODZfNjQKLQkJCSAodW5zaWduZWQgbG9uZylpbml0X3JzcCk7Ci0jZWxzZQogCQkJICh1bnNpZ25lZCBsb25nKXN0YWNrX3N0YXJ0LnNwKTsKLSNlbmRpZgogCiAJLyoKIAkgKiBSdW4gU1RBUlRVUCBJUEkgbG9vcC4KQEAgLTgzMiw2ICs3NjIsNDUgQEAKIAljb21wbGV0ZSgmY19pZGxlLT5kb25lKTsKIH0KIAorI2lmZGVmIENPTkZJR19YODZfNjQKKy8qCisgKiBBbGxvY2F0ZSBub2RlIGxvY2FsIG1lbW9yeSBmb3IgdGhlIEFQIHBkYS4KKyAqCisgKiBNdXN0IGJlIGNhbGxlZCBhZnRlciB0aGUgX2NwdV9wZGEgcG9pbnRlciB0YWJsZSBpcyBpbml0aWFsaXplZC4KKyAqLworc3RhdGljIGludCBfX2NwdWluaXQgZ2V0X2xvY2FsX3BkYShpbnQgY3B1KQoreworCXN0cnVjdCB4ODY2NF9wZGEgKm9sZHBkYSwgKm5ld3BkYTsKKwl1bnNpZ25lZCBsb25nIHNpemUgPSBzaXplb2Yoc3RydWN0IHg4NjY0X3BkYSk7CisJaW50IG5vZGUgPSBjcHVfdG9fbm9kZShjcHUpOworCisJaWYgKGNwdV9wZGEoY3B1KSAmJiAhY3B1X3BkYShjcHUpLT5pbl9ib290bWVtKQorCQlyZXR1cm4gMDsKKworCW9sZHBkYSA9IGNwdV9wZGEoY3B1KTsKKwluZXdwZGEgPSBrbWFsbG9jX25vZGUoc2l6ZSwgR0ZQX0FUT01JQywgbm9kZSk7CisJaWYgKCFuZXdwZGEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgYWxsb2NhdGUgbm9kZSBsb2NhbCBQREEgIgorCQkJImZvciBDUFUgJWQgb24gbm9kZSAlZFxuIiwgY3B1LCBub2RlKTsKKworCQlpZiAob2xkcGRhKQorCQkJcmV0dXJuIDA7CS8qIGhhdmUgYSB1c2FibGUgcGRhICovCisJCWVsc2UKKwkJCXJldHVybiAtMTsKKwl9CisKKwlpZiAob2xkcGRhKSB7CisJCW1lbWNweShuZXdwZGEsIG9sZHBkYSwgc2l6ZSk7CisJCWlmICghYWZ0ZXJfYm9vdG1lbSkKKwkJCWZyZWVfYm9vdG1lbSgodW5zaWduZWQgbG9uZylvbGRwZGEsIHNpemUpOworCX0KKworCW5ld3BkYS0+aW5fYm9vdG1lbSA9IDA7CisJY3B1X3BkYShjcHUpID0gbmV3cGRhOworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19YODZfNjQgKi8KKwogc3RhdGljIGludCBfX2NwdWluaXQgZG9fYm9vdF9jcHUoaW50IGFwaWNpZCwgaW50IGNwdSkKIC8qCiAgKiBOT1RFIC0gb24gbW9zdCBzeXN0ZW1zIHRoaXMgaXMgYSBQSFlTSUNBTCBhcGljIElELCBidXQgb24gbXVsdGlxdWFkCkBAIC04NDgsMjggKzgxNywxNCBAQAogCQkuZG9uZSA9IENPTVBMRVRJT05fSU5JVElBTElaRVJfT05TVEFDSyhjX2lkbGUuZG9uZSksCiAJfTsKIAlJTklUX1dPUksoJmNfaWRsZS53b3JrLCBkb19mb3JrX2lkbGUpOwotI2lmZGVmIENPTkZJR19YODZfNjQKLQkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIGdkdHMgb2Ygc2Vjb25kYXJ5IGNwdXMuIEhvdHBsdWcgaXMgY29uc2lkZXJlZCAqLwotCWlmICghY3B1X2dkdF9kZXNjcltjcHVdLmFkZHJlc3MgJiYKLQkJIShjcHVfZ2R0X2Rlc2NyW2NwdV0uYWRkcmVzcyA9IGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gYWxsb2NhdGUgR0RUIGZvciBDUFUgJWRcbiIsIGNwdSk7Ci0JCXJldHVybiAtMTsKLQl9CiAKKyNpZmRlZiBDT05GSUdfWDg2XzY0CiAJLyogQWxsb2NhdGUgbm9kZSBsb2NhbCBtZW1vcnkgZm9yIEFQIHBkYXMgKi8KLQlpZiAoY3B1X3BkYShjcHUpID09ICZib290X2NwdV9wZGFbY3B1XSkgewotCQlzdHJ1Y3QgeDg2NjRfcGRhICpuZXdwZGEsICpwZGE7Ci0JCWludCBub2RlID0gY3B1X3RvX25vZGUoY3B1KTsKLQkJcGRhID0gY3B1X3BkYShjcHUpOwotCQluZXdwZGEgPSBrbWFsbG9jX25vZGUoc2l6ZW9mKHN0cnVjdCB4ODY2NF9wZGEpLCBHRlBfQVRPTUlDLAotCQkJCSAgICAgIG5vZGUpOwotCQlpZiAobmV3cGRhKSB7Ci0JCQltZW1jcHkobmV3cGRhLCBwZGEsIHNpemVvZihzdHJ1Y3QgeDg2NjRfcGRhKSk7Ci0JCQljcHVfcGRhKGNwdSkgPSBuZXdwZGE7Ci0JCX0gZWxzZQotCQkJcHJpbnRrKEtFUk5fRVJSCi0JCSJDb3VsZCBub3QgYWxsb2NhdGUgbm9kZSBsb2NhbCBQREEgZm9yIENQVSAlZCBvbiBub2RlICVkXG4iLAotCQkJCWNwdSwgbm9kZSk7CisJaWYgKGNwdSA+IDApIHsKKwkJYm9vdF9lcnJvciA9IGdldF9sb2NhbF9wZGEoY3B1KTsKKwkJaWYgKGJvb3RfZXJyb3IpCisJCQlnb3RvIHJlc3RvcmVfc3RhdGU7CisJCQkvKiBpZiBjYW4ndCBnZXQgcGRhIG1lbW9yeSwgY2FuJ3Qgc3RhcnQgY3B1ICovCiAJfQogI2VuZGlmCiAKQEAgLTkwNSwxOCArODYwLDE1IEBACiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogCXBlcl9jcHUoY3VycmVudF90YXNrLCBjcHUpID0gY19pZGxlLmlkbGU7CiAJaW5pdF9nZHQoY3B1KTsKLQllYXJseV9nZHRfZGVzY3IuYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKWdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7Ci0JY19pZGxlLmlkbGUtPnRocmVhZC5pcCA9ICh1bnNpZ25lZCBsb25nKSBzdGFydF9zZWNvbmRhcnk7CiAJLyogU3RhY2sgZm9yIHN0YXJ0dXBfMzIgY2FuIGJlIGp1c3QgYXMgZm9yIHN0YXJ0X3NlY29uZGFyeSBvbndhcmRzICovCi0Jc3RhY2tfc3RhcnQuc3AgPSAodm9pZCAqKSBjX2lkbGUuaWRsZS0+dGhyZWFkLnNwOwogCWlycV9jdHhfaW5pdChjcHUpOwogI2Vsc2UKIAljcHVfcGRhKGNwdSktPnBjdXJyZW50ID0gY19pZGxlLmlkbGU7Ci0JaW5pdF9yc3AgPSBjX2lkbGUuaWRsZS0+dGhyZWFkLnNwOwotCWxvYWRfc3AwKCZwZXJfY3B1KGluaXRfdHNzLCBjcHUpLCAmY19pZGxlLmlkbGUtPnRocmVhZCk7Ci0JaW5pdGlhbF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpc3RhcnRfc2Vjb25kYXJ5OwogCWNsZWFyX3Rza190aHJlYWRfZmxhZyhjX2lkbGUuaWRsZSwgVElGX0ZPUkspOwogI2VuZGlmCisJZWFybHlfZ2R0X2Rlc2NyLmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF90YWJsZShjcHUpOworCWluaXRpYWxfY29kZSA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0X3NlY29uZGFyeTsKKwlzdGFja19zdGFydC5zcCA9ICh2b2lkICopIGNfaWRsZS5pZGxlLT50aHJlYWQuc3A7CiAKIAkvKiBzdGFydF9pcCBoYWQgYmV0dGVyIGJlIHBhZ2UtYWxpZ25lZCEgKi8KIAlzdGFydF9pcCA9IHNldHVwX3RyYW1wb2xpbmUoKTsKQEAgLTk4NywxNiArOTM5LDE0IEBACiAJCQkJaW5xdWlyZV9yZW1vdGVfYXBpYyhhcGljaWQpOwogCQl9CiAJfQotCisjaWZkZWYgQ09ORklHX1g4Nl82NAorcmVzdG9yZV9zdGF0ZToKKyNlbmRpZgogCWlmIChib290X2Vycm9yKSB7CiAJCS8qIFRyeSB0byBwdXQgdGhpbmdzIGJhY2sgdGhlIHdheSB0aGV5IHdlcmUgYmVmb3JlIC4uLiAqLwotCQl1bm1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoY3B1KTsKLSNpZmRlZiBDT05GSUdfWDg2XzY0Ci0JCWNsZWFyX25vZGVfY3B1bWFzayhjcHUpOyAvKiB3YXMgc2V0IGJ5IG51bWFfYWRkX2NwdSAqLwotI2VuZGlmCisJCW51bWFfcmVtb3ZlX2NwdShjcHUpOyAvKiB3YXMgc2V0IGJ5IG51bWFfYWRkX2NwdSAqLwogCQljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbG91dF9tYXApOyAvKiB3YXMgc2V0IGJ5IGRvX2Jvb3RfY3B1KCkgKi8KIAkJY3B1X2NsZWFyKGNwdSwgY3B1X2luaXRpYWxpemVkKTsgLyogd2FzIHNldCBieSBjcHVfaW5pdCgpICovCi0JCWNwdV9jbGVhcihjcHUsIGNwdV9wb3NzaWJsZV9tYXApOwogCQljcHVfY2xlYXIoY3B1LCBjcHVfcHJlc2VudF9tYXApOwogCQlwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpID0gQkFEX0FQSUNJRDsKIAl9CkBAIC0xMDg4LDE0ICsxMDM4LDEyIEBACiB7CiAJY3B1X3ByZXNlbnRfbWFwID0gY3B1bWFza19vZl9jcHUoMCk7CiAJY3B1X3Bvc3NpYmxlX21hcCA9IGNwdW1hc2tfb2ZfY3B1KDApOwotI2lmZGVmIENPTkZJR19YODZfMzIKIAlzbXBib290X2NsZWFyX2lvX2FwaWNfaXJxcygpOwotI2VuZGlmCisKIAlpZiAoc21wX2ZvdW5kX2NvbmZpZykKLQkJcGh5c19jcHVfcHJlc2VudF9tYXAgPQotCQkJCXBoeXNpZF9tYXNrX29mX3BoeXNpZChib290X2NwdV9waHlzaWNhbF9hcGljaWQpOworCQlwaHlzaWRfc2V0X21hc2tfb2ZfcGh5c2lkKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgJnBoeXNfY3B1X3ByZXNlbnRfbWFwKTsKIAllbHNlCi0JCXBoeXNfY3B1X3ByZXNlbnRfbWFwID0gcGh5c2lkX21hc2tfb2ZfcGh5c2lkKDApOworCQlwaHlzaWRfc2V0X21hc2tfb2ZfcGh5c2lkKDAsICZwaHlzX2NwdV9wcmVzZW50X21hcCk7CiAJbWFwX2NwdV90b19sb2dpY2FsX2FwaWNpZCgpOwogCWNwdV9zZXQoMCwgcGVyX2NwdShjcHVfc2libGluZ19tYXAsIDApKTsKIAljcHVfc2V0KDAsIHBlcl9jcHUoY3B1X2NvcmVfbWFwLCAwKSk7CkBAIC0xMTU4LDEyICsxMTA2LDEyIEBACiAJICogSWYgU01QIHNob3VsZCBiZSBkaXNhYmxlZCwgdGhlbiByZWFsbHkgZGlzYWJsZSBpdCEKIAkgKi8KIAlpZiAoIW1heF9jcHVzKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlNNUCBtb2RlIGRlYWN0aXZhdGVkLCIKLQkJCQkgImZvcmNpbmcgdXNlIG9mIGR1bW15IEFQSUMgZW11bGF0aW9uLlxuIik7CisJCXByaW50ayhLRVJOX0lORk8gIlNNUCBtb2RlIGRlYWN0aXZhdGVkLlxuIik7CiAJCXNtcGJvb3RfY2xlYXJfaW9fYXBpYygpOwotI2lmZGVmIENPTkZJR19YODZfMzIKKworCQlsb2NhbGlzZV9ubWlfd2F0Y2hkb2coKTsKKwogCQljb25uZWN0X2JzcF9BUElDKCk7Ci0jZW5kaWYKIAkJc2V0dXBfbG9jYWxfQVBJQygpOwogCQllbmRfbG9jYWxfQVBJQ19zZXR1cCgpOwogCQlyZXR1cm4gLTE7CkBAIC0xMTkxLDcgKzExMzksNiBAQAogdm9pZCBfX2luaXQgbmF0aXZlX3NtcF9wcmVwYXJlX2NwdXModW5zaWduZWQgaW50IG1heF9jcHVzKQogewogCXByZWVtcHRfZGlzYWJsZSgpOwotCW5taV93YXRjaGRvZ19kZWZhdWx0KCk7CiAJc21wX2NwdV9pbmRleF9kZWZhdWx0KCk7CiAJY3VycmVudF9jcHVfZGF0YSA9IGJvb3RfY3B1X2RhdGE7CiAJY3B1X2NhbGxpbl9tYXAgPSBjcHVtYXNrX29mX2NwdSgwKTsKQEAgLTEyMTgsOSArMTE2NSw4IEBACiAJfQogCXByZWVtcHRfZW5hYmxlKCk7CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCiAJY29ubmVjdF9ic3BfQVBJQygpOwotI2VuZGlmCisKIAkvKgogCSAqIFN3aXRjaCBmcm9tIFBJQyB0byBBUElDIG1vZGUuCiAJICovCkBAIC0xMjU4LDggKzEyMDQsOCBAQAogCWludCBtZSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICNpZmRlZiBDT05GSUdfWDg2XzMyCiAJaW5pdF9nZHQobWUpOwotCXN3aXRjaF90b19uZXdfZ2R0KCk7CiAjZW5kaWYKKwlzd2l0Y2hfdG9fbmV3X2dkdCgpOwogCS8qIGFscmVhZHkgc2V0IG1lIGluIGNwdV9vbmxpbmVfbWFwIGluIGJvb3RfY3B1X2luaXQoKSAqLwogCWNwdV9zZXQobWUsIGNwdV9jYWxsb3V0X21hcCk7CiAJcGVyX2NwdShjcHVfc3RhdGUsIG1lKSA9IENQVV9PTkxJTkU7CkBAIC0xMjc5LDIzICsxMjI1LDYgQEAKIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogCi0jICBpZmRlZiBDT05GSUdfWDg2XzMyCi12b2lkIGNwdV9leGl0X2NsZWFyKHZvaWQpCi17Ci0JaW50IGNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7Ci0KLQlpZGxlX3Rhc2tfZXhpdCgpOwotCi0JY3B1X3VuaW5pdCgpOwotCWlycV9jdHhfZXhpdChjcHUpOwotCi0JY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxvdXRfbWFwKTsKLQljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbGluX21hcCk7Ci0KLQl1bm1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoY3B1KTsKLX0KLSMgIGVuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KLQogc3RhdGljIHZvaWQgcmVtb3ZlX3NpYmxpbmdpbmZvKGludCBjcHUpCiB7CiAJaW50IHNpYmxpbmc7CkBAIC0xMzQ5LDEyICsxMjc4LDIwIEBACiAJaW50IGk7CiAJaW50IHBvc3NpYmxlOwogCisJLyogbm8gcHJvY2Vzc29yIGZyb20gbXB0YWJsZSBvciBtYWR0ICovCisJaWYgKCFudW1fcHJvY2Vzc29ycykKKwkJbnVtX3Byb2Nlc3NvcnMgPSAxOworCisjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiAJaWYgKGFkZGl0aW9uYWxfY3B1cyA9PSAtMSkgewogCQlpZiAoZGlzYWJsZWRfY3B1cyA+IDApCiAJCQlhZGRpdGlvbmFsX2NwdXMgPSBkaXNhYmxlZF9jcHVzOwogCQllbHNlCiAJCQlhZGRpdGlvbmFsX2NwdXMgPSAwOwogCX0KKyNlbHNlCisJYWRkaXRpb25hbF9jcHVzID0gMDsKKyNlbmRpZgogCXBvc3NpYmxlID0gbnVtX3Byb2Nlc3NvcnMgKyBhZGRpdGlvbmFsX2NwdXM7CiAJaWYgKHBvc3NpYmxlID4gTlJfQ1BVUykKIAkJcG9zc2libGUgPSBOUl9DUFVTOwpAQCAtMTM2NCwxOCArMTMwMSwxOCBAQAogCiAJZm9yIChpID0gMDsgaSA8IHBvc3NpYmxlOyBpKyspCiAJCWNwdV9zZXQoaSwgY3B1X3Bvc3NpYmxlX21hcCk7CisKKwlucl9jcHVfaWRzID0gcG9zc2libGU7CiB9CiAKIHN0YXRpYyB2b2lkIF9fcmVmIHJlbW92ZV9jcHVfZnJvbV9tYXBzKGludCBjcHUpCiB7CiAJY3B1X2NsZWFyKGNwdSwgY3B1X29ubGluZV9tYXApOwotI2lmZGVmIENPTkZJR19YODZfNjQKIAljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbG91dF9tYXApOwogCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsaW5fbWFwKTsKIAkvKiB3YXMgc2V0IGJ5IGNwdV9pbml0KCkgKi8KIAljbGVhcl9iaXQoY3B1LCAodW5zaWduZWQgbG9uZyAqKSZjcHVfaW5pdGlhbGl6ZWQpOwotCWNsZWFyX25vZGVfY3B1bWFzayhjcHUpOwotI2VuZGlmCisJbnVtYV9yZW1vdmVfY3B1KGNwdSk7CiB9CiAKIGludCBfX2NwdV9kaXNhYmxlKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3JhdF8zMi5jIGIvYXJjaC94ODYva2VybmVsL3NyYXRfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBlNGEzNy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3JhdF8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsMzU4ICswLDAgQEAKLS8qCi0gKiBTb21lIG9mIHRoZSBjb2RlIGluIHRoaXMgZmlsZSBoYXMgYmVlbiBnbGVhbmVkIGZyb20gdGhlIDY0IGJpdCAKLSAqIGRpc2NvbnRpZ21lbSBzdXBwb3J0IGNvZGUgYmFzZS4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDIsIElCTSBDb3JwLgotICoKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgIAotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAotICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBHT09EIFRJVExFIG9yCi0gKiBOT04gSU5GUklOR0VNRU5ULiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQotICogZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotICoKLSAqIFNlbmQgZmVlZGJhY2sgdG8gUGF0IEdhdWdoZW4gPGdvbmVAdXMuaWJtLmNvbT4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgotI2luY2x1ZGUgPGFzbS9zcmF0Lmg+Ci0jaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotCi0vKgotICogcHJveGltaXR5IG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMKLSAqLwotI2RlZmluZSBOT0RFX0FSUkFZX0lOREVYKHgpCSgoeCkgLyA4KQkvKiA4IGJpdHMvY2hhciAqLwotI2RlZmluZSBOT0RFX0FSUkFZX09GRlNFVCh4KQkoKHgpICUgOCkJLyogOCBiaXRzL2NoYXIgKi8KLSNkZWZpbmUgQk1BUF9TRVQoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gfD0gMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKQotI2RlZmluZSBCTUFQX1RFU1QoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gJiAoMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKSkKLS8qIGJpdG1hcCBsZW5ndGg7IF9QWE0gaXMgYXQgbW9zdCAyNTUgKi8KLSNkZWZpbmUgUFhNX0JJVE1BUF9MRU4gKE1BWF9QWE1fRE9NQUlOUyAvIDgpIAotc3RhdGljIHU4IHB4bV9iaXRtYXBbUFhNX0JJVE1BUF9MRU5dOwkvKiBiaXRtYXAgb2YgcHJveGltaXR5IGRvbWFpbnMgKi8KLQotI2RlZmluZSBNQVhfQ0hVTktTX1BFUl9OT0RFCTMKLSNkZWZpbmUgTUFYQ0hVTktTCQkoTUFYX0NIVU5LU19QRVJfTk9ERSAqIE1BWF9OVU1OT0RFUykKLXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zIHsKLQl1bnNpZ25lZCBsb25nCXN0YXJ0X3BmbjsKLQl1bnNpZ25lZCBsb25nCWVuZF9wZm47Ci0JdTgJcHhtOwkJLy8gcHJveGltaXR5IGRvbWFpbiBvZiBub2RlCi0JdTgJbmlkOwkJLy8gd2hpY2ggY25vZGUgY29udGFpbnMgdGhpcyBjaHVuaz8KLQl1OAliYW5rOwkJLy8gd2hpY2ggbWVtIGJhbmsgb24gdGhpcyBub2RlCi19Owotc3RhdGljIHN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zIG5vZGVfbWVtb3J5X2NodW5rW01BWENIVU5LU107Ci0KLXN0YXRpYyBpbnQgbnVtX21lbW9yeV9jaHVua3M7CQkvKiB0b3RhbCBudW1iZXIgb2YgbWVtb3J5IGNodW5rcyAqLwotc3RhdGljIHU4IF9faW5pdGRhdGEgYXBpY2lkX3RvX3B4bVtNQVhfQVBJQ0lEXTsKLQotLyogSWRlbnRpZnkgQ1BVIHByb3hpbWl0eSBkb21haW5zICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfY3B1X2FmZmluaXR5X3N0cnVjdHVyZShjaGFyICpwKQotewotCXN0cnVjdCBhY3BpX3NyYXRfY3B1X2FmZmluaXR5ICpjcHVfYWZmaW5pdHkgPQotCQkJCShzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqKSBwOwotCi0JaWYgKChjcHVfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX0NQVV9FTkFCTEVEKSA9PSAwKQotCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLwotCi0JLyogbWFyayB0aGlzIG5vZGUgYXMgInNlZW4iIGluIG5vZGUgYml0bWFwICovCi0JQk1BUF9TRVQocHhtX2JpdG1hcCwgY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvKTsKLQotCWFwaWNpZF90b19weG1bY3B1X2FmZmluaXR5LT5hcGljX2lkXSA9IGNwdV9hZmZpbml0eS0+cHJveGltaXR5X2RvbWFpbl9sbzsKLQotCXByaW50aygiQ1BVIDB4JTAyWCBpbiBwcm94aW1pdHkgZG9tYWluIDB4JTAyWFxuIiwKLQkJY3B1X2FmZmluaXR5LT5hcGljX2lkLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOwotfQotCi0vKgotICogSWRlbnRpZnkgbWVtb3J5IHByb3hpbWl0eSBkb21haW5zIGFuZCBob3QtcmVtb3ZlIGNhcGFiaWxpdGllcy4KLSAqIEZpbGwgbm9kZSBtZW1vcnkgY2h1bmsgbGlzdCBzdHJ1Y3R1cmUuCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9tZW1vcnlfYWZmaW5pdHlfc3RydWN0dXJlIChjaGFyICpzcmF0cCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgcGFkZHIsIHNpemU7Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47Ci0JdTggcHhtOwotCXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zICpwLCAqcSwgKnBlbmQ7Ci0Jc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1lbW9yeV9hZmZpbml0eSA9Ci0JCQkoc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKikgc3JhdHA7Ci0KLQlpZiAoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0VOQUJMRUQpID09IDApCi0JCXJldHVybjsJCS8qIGVtcHR5IGVudHJ5ICovCi0KLQlweG0gPSBtZW1vcnlfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW4gJiAweGZmOwotCi0JLyogbWFyayB0aGlzIG5vZGUgYXMgInNlZW4iIGluIG5vZGUgYml0bWFwICovCi0JQk1BUF9TRVQocHhtX2JpdG1hcCwgcHhtKTsKLQotCS8qIGNhbGN1bGF0ZSBpbmZvIGZvciBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCi0JcGFkZHIgPSBtZW1vcnlfYWZmaW5pdHktPmJhc2VfYWRkcmVzczsKLQlzaXplID0gbWVtb3J5X2FmZmluaXR5LT5sZW5ndGg7Ci0KLQlzdGFydF9wZm4gPSBwYWRkciA+PiBQQUdFX1NISUZUOwotCWVuZF9wZm4gPSAocGFkZHIgKyBzaXplKSA+PiBQQUdFX1NISUZUOwotCi0KLQlpZiAobnVtX21lbW9yeV9jaHVua3MgPj0gTUFYQ0hVTktTKSB7Ci0JCXByaW50aygiVG9vIG1hbnkgbWVtIGNodW5rcyBpbiBTUkFULiBJZ25vcmluZyAlbGxkIE1CeXRlcyBhdCAlbGx4XG4iLAotCQkJc2l6ZS8oMTAyNCoxMDI0KSwgcGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCi0JLyogSW5zZXJ0aW9uIHNvcnQgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCi0JcGVuZCA9ICZub2RlX21lbW9yeV9jaHVua1tudW1fbWVtb3J5X2NodW5rc107Ci0JZm9yIChwID0gJm5vZGVfbWVtb3J5X2NodW5rWzBdOyBwIDwgcGVuZDsgcCsrKSB7Ci0JCWlmIChzdGFydF9wZm4gPCBwLT5zdGFydF9wZm4pCi0JCQlicmVhazsKLQl9Ci0JaWYgKHAgPCBwZW5kKSB7Ci0JCWZvciAocSA9IHBlbmQ7IHEgPj0gcDsgcS0tKQotCQkJKihxICsgMSkgPSAqcTsKLQl9Ci0JcC0+c3RhcnRfcGZuID0gc3RhcnRfcGZuOwotCXAtPmVuZF9wZm4gPSBlbmRfcGZuOwotCXAtPnB4bSA9IHB4bTsKLQotCW51bV9tZW1vcnlfY2h1bmtzKys7Ci0KLQlwcmludGsoIk1lbW9yeSByYW5nZSAweCVsWCB0byAweCVsWCAodHlwZSAweCVYKSBpbiBwcm94aW1pdHkgZG9tYWluIDB4JTAyWCAlc1xuIiwKLQkJc3RhcnRfcGZuLCBlbmRfcGZuLAotCQltZW1vcnlfYWZmaW5pdHktPm1lbW9yeV90eXBlLAotCQlweG0sCi0JCSgobWVtb3J5X2FmZmluaXR5LT5mbGFncyAmIEFDUElfU1JBVF9NRU1fSE9UX1BMVUdHQUJMRSkgPwotCQkgImVuYWJsZWQgYW5kIHJlbW92YWJsZSIgOiAiZW5hYmxlZCIgKSApOwotfQotCi0vKgotICogVGhlIFNSQVQgdGFibGUgYWx3YXlzIGxpc3RzIGFzY2VuZGluZyBhZGRyZXNzZXMsIHNvIGNhbiBhbHdheXMKLSAqIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCAic3RhcnQiIGFkZHJlc3MgdGhhdCB5b3Ugc2VlIGlzIHRoZSByZWFsCi0gKiBzdGFydCBvZiB0aGUgbm9kZSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgImVuZCIgYWRkcmVzcyBpcyBhZnRlcgotICogdGhlIHByZXZpb3VzIG9uZS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5vZGVfcmVhZF9jaHVuayhpbnQgbmlkLCBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqbWVtb3J5X2NodW5rKQotewotCS8qCi0JICogT25seSBhZGQgcHJlc2VudCBtZW1vcnkgYXMgdG9sZCBieSB0aGUgZTgyMC4KLQkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgZnJvbSB0aGUgU1JBVCB0aGF0IHRoZSBtZW1vcnkgaXQKLQkgKiBlbnVtZXJhdGVzIGlzIHByZXNlbnQgYXQgYm9vdCB0aW1lIGJlY2F1c2UgaXQgcmVwcmVzZW50cwotCSAqICpwb3NzaWJsZSogbWVtb3J5IGhvdHBsdWcgYXJlYXMgdGhlIHNhbWUgYXMgbm9ybWFsIFJBTS4KLQkgKi8KLQlpZiAobWVtb3J5X2NodW5rLT5zdGFydF9wZm4gPj0gbWF4X3BmbikgewotCQlwcmludGsgKEtFUk5fSU5GTyAiSWdub3JpbmcgU1JBVCBwZm5zOiAweCUwOGx4IC0+ICUwOGx4XG4iLAotCQkJbWVtb3J5X2NodW5rLT5zdGFydF9wZm4sIG1lbW9yeV9jaHVuay0+ZW5kX3Bmbik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKG1lbW9yeV9jaHVuay0+bmlkICE9IG5pZCkKLQkJcmV0dXJuOwotCi0JaWYgKCFub2RlX2hhc19vbmxpbmVfbWVtKG5pZCkpCi0JCW5vZGVfc3RhcnRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbjsKLQotCWlmIChub2RlX3N0YXJ0X3BmbltuaWRdID4gbWVtb3J5X2NodW5rLT5zdGFydF9wZm4pCi0JCW5vZGVfc3RhcnRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbjsKLQotCWlmIChub2RlX2VuZF9wZm5bbmlkXSA8IG1lbW9yeV9jaHVuay0+ZW5kX3BmbikKLQkJbm9kZV9lbmRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPmVuZF9wZm47Ci19Ci0KLS8qIFBhcnNlIHRoZSBBQ1BJIFN0YXRpYyBSZXNvdXJjZSBBZmZpbml0eSBUYWJsZSAqLwotc3RhdGljIGludCBfX2luaXQgYWNwaTIwX3BhcnNlX3NyYXQoc3RydWN0IGFjcGlfdGFibGVfc3JhdCAqc3JhdHApCi17Ci0JdTggKnN0YXJ0LCAqZW5kLCAqcDsKLQlpbnQgaSwgaiwgbmlkOwotCi0Jc3RhcnQgPSAodTggKikoJihzcmF0cC0+cmVzZXJ2ZWQpICsgMSk7CS8qIHNraXAgaGVhZGVyICovCi0JcCA9IHN0YXJ0OwotCWVuZCA9ICh1OCAqKXNyYXRwICsgc3JhdHAtPmhlYWRlci5sZW5ndGg7Ci0KLQltZW1zZXQocHhtX2JpdG1hcCwgMCwgc2l6ZW9mKHB4bV9iaXRtYXApKTsJLyogaW5pdCBwcm94aW1pdHkgZG9tYWluIGJpdG1hcCAqLwotCW1lbXNldChub2RlX21lbW9yeV9jaHVuaywgMCwgc2l6ZW9mKG5vZGVfbWVtb3J5X2NodW5rKSk7Ci0KLQludW1fbWVtb3J5X2NodW5rcyA9IDA7Ci0Jd2hpbGUgKHAgPCBlbmQpIHsKLQkJc3dpdGNoICgqcCkgewotCQljYXNlIEFDUElfU1JBVF9UWVBFX0NQVV9BRkZJTklUWToKLQkJCXBhcnNlX2NwdV9hZmZpbml0eV9zdHJ1Y3R1cmUocCk7Ci0JCQlicmVhazsKLQkJY2FzZSBBQ1BJX1NSQVRfVFlQRV9NRU1PUllfQUZGSU5JVFk6Ci0JCQlwYXJzZV9tZW1vcnlfYWZmaW5pdHlfc3RydWN0dXJlKHApOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlwcmludGsoIkFDUEkgMi4wIFNSQVQ6IHVua25vd24gZW50cnkgc2tpcHBlZDogdHlwZT0weCUwMlgsIGxlbj0lZFxuIiwgcFswXSwgcFsxXSk7Ci0JCQlicmVhazsKLQkJfQotCQlwICs9IHBbMV07Ci0JCWlmIChwWzFdID09IDApIHsKLQkJCXByaW50aygiYWNwaTIwX3BhcnNlX3NyYXQ6IEVudHJ5IGxlbmd0aCB2YWx1ZSBpcyB6ZXJvOyIKLQkJCQkiIGNhbid0IHBhcnNlIGFueSBmdXJ0aGVyIVxuIik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmIChudW1fbWVtb3J5X2NodW5rcyA9PSAwKSB7Ci0JCXByaW50aygiY291bGQgbm90IGZpbnkgYW55IEFDUEkgU1JBVCBtZW1vcnkgYXJlYXMuXG4iKTsKLQkJZ290byBvdXRfZmFpbDsKLQl9Ci0KLQkvKiBDYWxjdWxhdGUgdG90YWwgbnVtYmVyIG9mIG5vZGVzIGluIHN5c3RlbSBmcm9tIFBYTSBiaXRtYXAgYW5kIGNyZWF0ZQotCSAqIGEgc2V0IG9mIHNlcXVlbnRpYWwgbm9kZSBJRHMgc3RhcnRpbmcgYXQgemVyby4gIChBQ1BJIGRvZXNuJ3Qgc2VlbQotCSAqIHRvIHNwZWNpZnkgdGhlIHJhbmdlIG9mIF9QWE0gdmFsdWVzLikKLQkgKi8KLQkvKgotCSAqIE1DRCAtIHdlIG5vIGxvbmdlciBIQVZFIHRvIG51bWJlciBub2RlcyBzZXF1ZW50aWFsbHkuICBQWE0gZG9tYWluCi0JICogbnVtYmVycyBjb3VsZCBnbyBhcyBoaWdoIGFzIDI1NiwgYW5kIE1BWF9OVU1OT0RFUyBmb3IgaTM4NiBpcyB0eXBpY2FsbHkKLQkgKiAzMiwgc28gd2Ugd2lsbCBjb250aW51ZSBudW1iZXJpbmcgdGhlbSBpbiB0aGlzIG1hbm5lciB1bnRpbCBNQVhfTlVNTk9ERVMKLQkgKiBhcHByb2FjaGVzIE1BWF9QWE1fRE9NQUlOUyBmb3IgaTM4Ni4KLQkgKi8KLQlub2Rlc19jbGVhcihub2RlX29ubGluZV9tYXApOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfUFhNX0RPTUFJTlM7IGkrKykgewotCQlpZiAoQk1BUF9URVNUKHB4bV9iaXRtYXAsIGkpKSB7Ci0JCQlpbnQgbmlkID0gYWNwaV9tYXBfcHhtX3RvX25vZGUoaSk7Ci0JCQlub2RlX3NldF9vbmxpbmUobmlkKTsKLQkJfQotCX0KLQlCVUdfT04obnVtX29ubGluZV9ub2RlcygpID09IDApOwotCi0JLyogc2V0IGNub2RlIGlkIGluIG1lbW9yeSBjaHVuayBzdHJ1Y3R1cmUgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbnVtX21lbW9yeV9jaHVua3M7IGkrKykKLQkJbm9kZV9tZW1vcnlfY2h1bmtbaV0ubmlkID0gcHhtX3RvX25vZGUobm9kZV9tZW1vcnlfY2h1bmtbaV0ucHhtKTsKLQotCXByaW50aygicHhtIGJpdG1hcDogIik7Ci0JZm9yIChpID0gMDsgaSA8IHNpemVvZihweG1fYml0bWFwKTsgaSsrKSB7Ci0JCXByaW50aygiJTAyWCAiLCBweG1fYml0bWFwW2ldKTsKLQl9Ci0JcHJpbnRrKCJcbiIpOwotCXByaW50aygiTnVtYmVyIG9mIGxvZ2ljYWwgbm9kZXMgaW4gc3lzdGVtID0gJWRcbiIsIG51bV9vbmxpbmVfbm9kZXMoKSk7Ci0JcHJpbnRrKCJOdW1iZXIgb2YgbWVtb3J5IGNodW5rcyBpbiBzeXN0ZW0gPSAlZFxuIiwgbnVtX21lbW9yeV9jaHVua3MpOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9BUElDSUQ7IGkrKykKLQkJYXBpY2lkXzJfbm9kZVtpXSA9IHB4bV90b19ub2RlKGFwaWNpZF90b19weG1baV0pOwotCi0JZm9yIChqID0gMDsgaiA8IG51bV9tZW1vcnlfY2h1bmtzOyBqKyspewotCQlzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqIGNodW5rID0gJm5vZGVfbWVtb3J5X2NodW5rW2pdOwotCQlwcmludGsoImNodW5rICVkIG5pZCAlZCBzdGFydF9wZm4gJTA4bHggZW5kX3BmbiAlMDhseFxuIiwKLQkJICAgICAgIGosIGNodW5rLT5uaWQsIGNodW5rLT5zdGFydF9wZm4sIGNodW5rLT5lbmRfcGZuKTsKLQkJbm9kZV9yZWFkX2NodW5rKGNodW5rLT5uaWQsIGNodW5rKTsKLQkJYWRkX2FjdGl2ZV9yYW5nZShjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7Ci0JfQotIAotCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewotCQl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gbm9kZV9zdGFydF9wZm5bbmlkXTsKLQkJdW5zaWduZWQgbG9uZyBlbmQgPSBub2RlX2VuZF9wZm5bbmlkXTsKLQotCQltZW1vcnlfcHJlc2VudChuaWQsIHN0YXJ0LCBlbmQpOwotCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobmlkLCBzdGFydCwgZW5kKTsKLQl9Ci0JcmV0dXJuIDE7Ci1vdXRfZmFpbDoKLQlyZXR1cm4gMDsKLX0KLQotc3RydWN0IGFjcGlfc3RhdGljX3JzZHQgewotCXN0cnVjdCBhY3BpX3RhYmxlX3JzZHQgdGFibGU7Ci0JdTMyIHBhZGRpbmdbN107IC8qIEFsbG93IGZvciA3IG1vcmUgdGFibGUgZW50cmllcyAqLwotfTsKLQotaW50IF9faW5pdCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQotewotCXN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqaGVhZGVyID0gTlVMTDsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwICpyc2RwID0gTlVMTDsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0ICpyc2R0ID0gTlVMTDsKLQlhY3BpX25hdGl2ZV91aW50IHJzZHBfYWRkcmVzcyA9IDA7Ci0Jc3RydWN0IGFjcGlfc3RhdGljX3JzZHQgc2F2ZWRfcnNkdDsKLQlpbnQgdGFibGVzID0gMDsKLQlpbnQgaSA9IDA7Ci0KLQlyc2RwX2FkZHJlc3MgPSBhY3BpX29zX2dldF9yb290X3BvaW50ZXIoKTsKLQlpZiAoIXJzZHBfYWRkcmVzcykgewotCQlwcmludGsoIiVzOiBTeXN0ZW0gZGVzY3JpcHRpb24gdGFibGVzIG5vdCBmb3VuZFxuIiwKLQkJICAgICAgIF9fZnVuY19fKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXByaW50aygiJXM6IGFzc2lnbmluZyBhZGRyZXNzIHRvIHJzZHBcbiIsIF9fZnVuY19fKTsKLQlyc2RwID0gKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHAgKikodTMyKXJzZHBfYWRkcmVzczsKLQlpZiAoIXJzZHApIHsKLQkJcHJpbnRrKCIlczogRGlkbid0IGZpbmQgQUNQSSByb290IVxuIiwgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JcHJpbnRrKEtFUk5fSU5GTyAiJS44cyB2JWQgWyUuNnNdXG4iLCByc2RwLT5zaWduYXR1cmUsIHJzZHAtPnJldmlzaW9uLAotCQlyc2RwLT5vZW1faWQpOwotCi0JaWYgKHN0cm5jbXAocnNkcC0+c2lnbmF0dXJlLCBBQ1BJX1NJR19SU0RQLHN0cmxlbihBQ1BJX1NJR19SU0RQKSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IFJTRFAgdGFibGUgc2lnbmF0dXJlIGluY29ycmVjdFxuIiwgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JcnNkdCA9IChzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0ICopCi0JICAgIGVhcmx5X2lvcmVtYXAocnNkcC0+cnNkdF9waHlzaWNhbF9hZGRyZXNzLCBzaXplb2Yoc3RydWN0IGFjcGlfdGFibGVfcnNkdCkpOwotCi0JaWYgKCFyc2R0KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcKLQkJICAgICAgICIlczogQUNQSTogSW52YWxpZCByb290IHN5c3RlbSBkZXNjcmlwdGlvbiB0YWJsZXMgKFJTRFQpXG4iLAotCQkgICAgICAgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JaGVhZGVyID0gJnJzZHQtPmhlYWRlcjsKLQotCWlmIChzdHJuY21wKGhlYWRlci0+c2lnbmF0dXJlLCBBQ1BJX1NJR19SU0RULCBzdHJsZW4oQUNQSV9TSUdfUlNEVCkpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkFDUEk6IFJTRFQgc2lnbmF0dXJlIGluY29ycmVjdFxuIik7Ci0JCWdvdG8gb3V0X2VycjsKLQl9Ci0KLQkvKiAKLQkgKiBUaGUgbnVtYmVyIG9mIHRhYmxlcyBpcyBjb21wdXRlZCBieSB0YWtpbmcgdGhlIAotCSAqIHNpemUgb2YgYWxsIGVudHJpZXMgKGhlYWRlciBzaXplIG1pbnVzIHRvdGFsIAotCSAqIHNpemUgb2YgUlNEVCkgZGl2aWRlZCBieSB0aGUgc2l6ZSBvZiBlYWNoIGVudHJ5Ci0JICogKDQtYnl0ZSB0YWJsZSBwb2ludGVycykuCi0JICovCi0JdGFibGVzID0gKGhlYWRlci0+bGVuZ3RoIC0gc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpIC8gNDsKLQotCWlmICghdGFibGVzKQotCQlnb3RvIG91dF9lcnI7Ci0KLQltZW1jcHkoJnNhdmVkX3JzZHQsIHJzZHQsIHNpemVvZihzYXZlZF9yc2R0KSk7Ci0KLQlpZiAoc2F2ZWRfcnNkdC50YWJsZS5oZWFkZXIubGVuZ3RoID4gc2l6ZW9mKHNhdmVkX3JzZHQpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkFDUEk6IFRvbyBiaWcgbGVuZ3RoIGluIFJTRFQ6ICVkXG4iLAotCQkgICAgICAgc2F2ZWRfcnNkdC50YWJsZS5oZWFkZXIubGVuZ3RoKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXByaW50aygiQmVnaW4gU1JBVCB0YWJsZSBzY2FuLi4uLlxuIik7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgdGFibGVzOyBpKyspIHsKLQkJLyogTWFwIGluIGhlYWRlciwgdGhlbiBtYXAgaW4gZnVsbCB0YWJsZSBsZW5ndGguICovCi0JCWhlYWRlciA9IChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKikKLQkJCWVhcmx5X2lvcmVtYXAoc2F2ZWRfcnNkdC50YWJsZS50YWJsZV9vZmZzZXRfZW50cnlbaV0sIHNpemVvZihzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIpKTsKLQkJaWYgKCFoZWFkZXIpCi0JCQlicmVhazsKLQkJaGVhZGVyID0gKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqKQotCQkJZWFybHlfaW9yZW1hcChzYXZlZF9yc2R0LnRhYmxlLnRhYmxlX29mZnNldF9lbnRyeVtpXSwgaGVhZGVyLT5sZW5ndGgpOwotCQlpZiAoIWhlYWRlcikKLQkJCWJyZWFrOwotCi0JCWlmIChzdHJuY21wKChjaGFyICopICZoZWFkZXItPnNpZ25hdHVyZSwgQUNQSV9TSUdfU1JBVCwgNCkpCi0JCQljb250aW51ZTsKLQotCQkvKiB3ZSd2ZSBmb3VuZCB0aGUgc3JhdCB0YWJsZS4gZG9uJ3QgbmVlZCB0byBsb29rIGF0IGFueSBtb3JlIHRhYmxlcyAqLwotCQlyZXR1cm4gYWNwaTIwX3BhcnNlX3NyYXQoKHN0cnVjdCBhY3BpX3RhYmxlX3NyYXQgKiloZWFkZXIpOwotCX0KLW91dF9lcnI6Ci0JcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7Ci0JcHJpbnRrKCJmYWlsZWQgdG8gZ2V0IE5VTUEgbWVtb3J5IGluZm9ybWF0aW9uIGZyb20gU1JBVCB0YWJsZVxuIik7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3RhY2t0cmFjZS5jIGIvYXJjaC94ODYva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCBjMjhjMzQyLi5hMDNlN2Y2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zdGFja3RyYWNlLmMKQEAgLTc0LDYgKzc0LDcgQEAKIAlpZiAodHJhY2UtPm5yX2VudHJpZXMgPCB0cmFjZS0+bWF4X2VudHJpZXMpCiAJCXRyYWNlLT5lbnRyaWVzW3RyYWNlLT5ucl9lbnRyaWVzKytdID0gVUxPTkdfTUFYOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CiAKIHZvaWQgc2F2ZV9zdGFja190cmFjZV90c2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCiB7CkBAIC04MSwzICs4Miw0IEBACiAJaWYgKHRyYWNlLT5ucl9lbnRyaWVzIDwgdHJhY2UtPm1heF9lbnRyaWVzKQogCQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IFVMT05HX01BWDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHNhdmVfc3RhY2tfdHJhY2VfdHNrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zdW1taXRfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9zdW1taXRfMzIuYwppbmRleCBhZTc1MTA5Li5kNjdjZTVmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3VtbWl0XzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3N1bW1pdF8zMi5jCkBAIC0zNiw3ICszNiw5IEBACiBzdGF0aWMgc3RydWN0IHNjYWxfZGV0YWlsICAgKnNjYWxfZGV2c1tNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7CiBzdGF0aWMgc3RydWN0IHJpb19kZXRhaWwgICAgKnJpb19kZXZzW01BWF9OVU1OT0RFUyo0XSBfX2luaXRkYXRhOwogCisjaWZuZGVmIENPTkZJR19YODZfTlVNQVEKIHN0YXRpYyBpbnQgbXBfYnVzX2lkX3RvX25vZGVbTUFYX01QX0JVU1NFU10gX19pbml0ZGF0YTsKKyNlbmRpZgogCiBzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9wY2lfbm9kZV9tYXBfZm9yX3dwZWcoaW50IHdwZWdfbnVtLCBpbnQgbGFzdF9idXMpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9zeXNfaTM4Nl8zMi5jCmluZGV4IGQyYWI1MmMuLjcwNjZjYjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zeXNfaTM4Nl8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zeXNfaTM4Nl8zMi5jCkBAIC0xOSw4ICsxOSw4IEBACiAjaW5jbHVkZSA8bGludXgvdXRzbmFtZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lwYy5oPgogCi0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPgogCiBhc21saW5rYWdlIGxvbmcgc3lzX21tYXAyKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sCiAJCQkgIHVuc2lnbmVkIGxvbmcgcHJvdCwgdW5zaWduZWQgbG9uZyBmbGFncywKQEAgLTEwMyw3ICsxMDMsNyBAQAogICoKICAqIFRoaXMgaXMgcmVhbGx5IGhvcnJpYmx5IHVnbHkuCiAgKi8KLWFzbWxpbmthZ2UgaW50IHN5c19pcGMgKHVpbnQgY2FsbCwgaW50IGZpcnN0LCBpbnQgc2Vjb25kLAorYXNtbGlua2FnZSBpbnQgc3lzX2lwYyh1aW50IGNhbGwsIGludCBmaXJzdCwgaW50IHNlY29uZCwKIAkJCWludCB0aGlyZCwgdm9pZCBfX3VzZXIgKnB0ciwgbG9uZyBmaWZ0aCkKIHsKIAlpbnQgdmVyc2lvbiwgcmV0OwpAQCAtMTEzLDI0ICsxMTMsMjQgQEAKIAogCXN3aXRjaCAoY2FsbCkgewogCWNhc2UgU0VNT1A6Ci0JCXJldHVybiBzeXNfc2VtdGltZWRvcCAoZmlyc3QsIChzdHJ1Y3Qgc2VtYnVmIF9fdXNlciAqKXB0ciwgc2Vjb25kLCBOVUxMKTsKKwkJcmV0dXJuIHN5c19zZW10aW1lZG9wKGZpcnN0LCAoc3RydWN0IHNlbWJ1ZiBfX3VzZXIgKilwdHIsIHNlY29uZCwgTlVMTCk7CiAJY2FzZSBTRU1USU1FRE9QOgogCQlyZXR1cm4gc3lzX3NlbXRpbWVkb3AoZmlyc3QsIChzdHJ1Y3Qgc2VtYnVmIF9fdXNlciAqKXB0ciwgc2Vjb25kLAogCQkJCQkoY29uc3Qgc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqKWZpZnRoKTsKIAogCWNhc2UgU0VNR0VUOgotCQlyZXR1cm4gc3lzX3NlbWdldCAoZmlyc3QsIHNlY29uZCwgdGhpcmQpOworCQlyZXR1cm4gc3lzX3NlbWdldChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CiAJY2FzZSBTRU1DVEw6IHsKIAkJdW5pb24gc2VtdW4gZm91cnRoOwogCQlpZiAoIXB0cikKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAoZ2V0X3VzZXIoZm91cnRoLl9fcGFkLCAodm9pZCBfX3VzZXIgKiBfX3VzZXIgKikgcHRyKSkKIAkJCXJldHVybiAtRUZBVUxUOwotCQlyZXR1cm4gc3lzX3NlbWN0bCAoZmlyc3QsIHNlY29uZCwgdGhpcmQsIGZvdXJ0aCk7CisJCXJldHVybiBzeXNfc2VtY3RsKGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgpOwogCX0KIAogCWNhc2UgTVNHU05EOgotCQlyZXR1cm4gc3lzX21zZ3NuZCAoZmlyc3QsIChzdHJ1Y3QgbXNnYnVmIF9fdXNlciAqKSBwdHIsIAorCQlyZXR1cm4gc3lzX21zZ3NuZChmaXJzdCwgKHN0cnVjdCBtc2didWYgX191c2VyICopIHB0ciwKIAkJCQkgICBzZWNvbmQsIHRoaXJkKTsKIAljYXNlIE1TR1JDVjoKIAkJc3dpdGNoICh2ZXJzaW9uKSB7CkBAIC0xMzgsNDUgKzEzOCw0NSBAQAogCQkJc3RydWN0IGlwY19rbHVkZ2UgdG1wOwogCQkJaWYgKCFwdHIpCiAJCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQkKKwogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZ0bXAsCi0JCQkJCSAgIChzdHJ1Y3QgaXBjX2tsdWRnZSBfX3VzZXIgKikgcHRyLCAKLQkJCQkJICAgc2l6ZW9mICh0bXApKSkKKwkJCQkJICAgKHN0cnVjdCBpcGNfa2x1ZGdlIF9fdXNlciAqKSBwdHIsCisJCQkJCSAgIHNpemVvZih0bXApKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCXJldHVybiBzeXNfbXNncmN2IChmaXJzdCwgdG1wLm1zZ3AsIHNlY29uZCwKKwkJCXJldHVybiBzeXNfbXNncmN2KGZpcnN0LCB0bXAubXNncCwgc2Vjb25kLAogCQkJCQkgICB0bXAubXNndHlwLCB0aGlyZCk7CiAJCX0KIAkJZGVmYXVsdDoKLQkJCXJldHVybiBzeXNfbXNncmN2IChmaXJzdCwKKwkJCXJldHVybiBzeXNfbXNncmN2KGZpcnN0LAogCQkJCQkgICAoc3RydWN0IG1zZ2J1ZiBfX3VzZXIgKikgcHRyLAogCQkJCQkgICBzZWNvbmQsIGZpZnRoLCB0aGlyZCk7CiAJCX0KIAljYXNlIE1TR0dFVDoKLQkJcmV0dXJuIHN5c19tc2dnZXQgKChrZXlfdCkgZmlyc3QsIHNlY29uZCk7CisJCXJldHVybiBzeXNfbXNnZ2V0KChrZXlfdCkgZmlyc3QsIHNlY29uZCk7CiAJY2FzZSBNU0dDVEw6Ci0JCXJldHVybiBzeXNfbXNnY3RsIChmaXJzdCwgc2Vjb25kLCAoc3RydWN0IG1zcWlkX2RzIF9fdXNlciAqKSBwdHIpOworCQlyZXR1cm4gc3lzX21zZ2N0bChmaXJzdCwgc2Vjb25kLCAoc3RydWN0IG1zcWlkX2RzIF9fdXNlciAqKSBwdHIpOwogCiAJY2FzZSBTSE1BVDoKIAkJc3dpdGNoICh2ZXJzaW9uKSB7CiAJCWRlZmF1bHQ6IHsKIAkJCXVsb25nIHJhZGRyOwotCQkJcmV0ID0gZG9fc2htYXQgKGZpcnN0LCAoY2hhciBfX3VzZXIgKikgcHRyLCBzZWNvbmQsICZyYWRkcik7CisJCQlyZXQgPSBkb19zaG1hdChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAmcmFkZHIpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwotCQkJcmV0dXJuIHB1dF91c2VyIChyYWRkciwgKHVsb25nIF9fdXNlciAqKSB0aGlyZCk7CisJCQlyZXR1cm4gcHV0X3VzZXIocmFkZHIsICh1bG9uZyBfX3VzZXIgKikgdGhpcmQpOwogCQl9CiAJCWNhc2UgMToJLyogaUJDUzIgZW11bGF0b3IgZW50cnkgcG9pbnQgKi8KIAkJCWlmICghc2VnbWVudF9lcShnZXRfZnMoKSwgZ2V0X2RzKCkpKQogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJLyogVGhlICIodWxvbmcgKikgdGhpcmQiIGlzIHZhbGlkIF9vbmx5XyBiZWNhdXNlIG9mIHRoZSBrZXJuZWwgc2VnbWVudCB0aGluZyAqLwotCQkJcmV0dXJuIGRvX3NobWF0IChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAodWxvbmcgKikgdGhpcmQpOworCQkJcmV0dXJuIGRvX3NobWF0KGZpcnN0LCAoY2hhciBfX3VzZXIgKikgcHRyLCBzZWNvbmQsICh1bG9uZyAqKSB0aGlyZCk7CiAJCX0KLQljYXNlIFNITURUOiAKLQkJcmV0dXJuIHN5c19zaG1kdCAoKGNoYXIgX191c2VyICopcHRyKTsKKwljYXNlIFNITURUOgorCQlyZXR1cm4gc3lzX3NobWR0KChjaGFyIF9fdXNlciAqKXB0cik7CiAJY2FzZSBTSE1HRVQ6Ci0JCXJldHVybiBzeXNfc2htZ2V0IChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CisJCXJldHVybiBzeXNfc2htZ2V0KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKIAljYXNlIFNITUNUTDoKLQkJcmV0dXJuIHN5c19zaG1jdGwgKGZpcnN0LCBzZWNvbmQsCisJCXJldHVybiBzeXNfc2htY3RsKGZpcnN0LCBzZWNvbmQsCiAJCQkJICAgKHN0cnVjdCBzaG1pZF9kcyBfX3VzZXIgKikgcHRyKTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT1NZUzsKQEAgLTE4NiwyOCArMTg2LDI4IEBACiAvKgogICogT2xkIGNydWZ0CiAgKi8KLWFzbWxpbmthZ2UgaW50IHN5c191bmFtZShzdHJ1Y3Qgb2xkX3V0c25hbWUgX191c2VyICogbmFtZSkKK2FzbWxpbmthZ2UgaW50IHN5c191bmFtZShzdHJ1Y3Qgb2xkX3V0c25hbWUgX191c2VyICpuYW1lKQogewogCWludCBlcnI7CiAJaWYgKCFuYW1lKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlkb3duX3JlYWQoJnV0c19zZW0pOwotCWVyciA9IGNvcHlfdG9fdXNlcihuYW1lLCB1dHNuYW1lKCksIHNpemVvZiAoKm5hbWUpKTsKKwllcnIgPSBjb3B5X3RvX3VzZXIobmFtZSwgdXRzbmFtZSgpLCBzaXplb2YoKm5hbWUpKTsKIAl1cF9yZWFkKCZ1dHNfc2VtKTsKLQlyZXR1cm4gZXJyPy1FRkFVTFQ6MDsKKwlyZXR1cm4gZXJyPyAtRUZBVUxUOjA7CiB9CiAKLWFzbWxpbmthZ2UgaW50IHN5c19vbGR1bmFtZShzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUgX191c2VyICogbmFtZSkKK2FzbWxpbmthZ2UgaW50IHN5c19vbGR1bmFtZShzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUgX191c2VyICpuYW1lKQogewogCWludCBlcnJvcjsKIAogCWlmICghbmFtZSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLG5hbWUsc2l6ZW9mKHN0cnVjdCBvbGRvbGRfdXRzbmFtZSkpKQorCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSwgbmFtZSwgc2l6ZW9mKHN0cnVjdCBvbGRvbGRfdXRzbmFtZSkpKQogCQlyZXR1cm4gLUVGQVVMVDsKLSAgCi0gIAlkb3duX3JlYWQoJnV0c19zZW0pOwotCQorCisJZG93bl9yZWFkKCZ1dHNfc2VtKTsKKwogCWVycm9yID0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPnN5c25hbWUsICZ1dHNuYW1lKCktPnN5c25hbWUsCiAJCQkgICAgICAgX19PTERfVVRTX0xFTik7CiAJZXJyb3IgfD0gX19wdXRfdXNlcigwLCBuYW1lLT5zeXNuYW1lICsgX19PTERfVVRTX0xFTik7CkBAIC0yMjMsOSArMjIzLDkgQEAKIAllcnJvciB8PSBfX2NvcHlfdG9fdXNlcigmbmFtZS0+bWFjaGluZSwgJnV0c25hbWUoKS0+bWFjaGluZSwKIAkJCQlfX09MRF9VVFNfTEVOKTsKIAllcnJvciB8PSBfX3B1dF91c2VyKDAsIG5hbWUtPm1hY2hpbmUgKyBfX09MRF9VVFNfTEVOKTsKLQkKKwogCXVwX3JlYWQoJnV0c19zZW0pOwotCQorCiAJZXJyb3IgPSBlcnJvciA/IC1FRkFVTFQgOiAwOwogCiAJcmV0dXJuIGVycm9yOwpAQCAtMjQxLDYgKzI0MSw2IEBACiAJbG9uZyBfX3JlczsKIAlhc20gdm9sYXRpbGUgKCJwdXNoICUlZWJ4IDsgbW92bCAlMiwlJWVieCA7IGludCAkMHg4MCA7IHBvcCAlJWVieCIKIAk6ICI9YSIgKF9fcmVzKQotCTogIjAiIChfX05SX2V4ZWN2ZSksInJpIiAoZmlsZW5hbWUpLCJjIiAoYXJndiksICJkIiAoZW52cCkgOiAibWVtb3J5Iik7CisJOiAiMCIgKF9fTlJfZXhlY3ZlKSwgInJpIiAoZmlsZW5hbWUpLCAiYyIgKGFyZ3YpLCAiZCIgKGVudnApIDogIm1lbW9yeSIpOwogCXJldHVybiBfX3JlczsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90aW1lXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdGltZV8zMi5jCmluZGV4IDJmZjIxZjMuLjA1OWNhNmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90aW1lXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RpbWVfMzIuYwpAQCAtMzksOSArMzksNiBAQAogCiAjaW5jbHVkZSAiZG9fdGltZXIuaCIKIAotdW5zaWduZWQgaW50IGNwdV9raHo7CS8qIERldGVjdGVkIGFzIHdlIGNhbGlicmF0ZSB0aGUgVFNDICovCi1FWFBPUlRfU1lNQk9MKGNwdV9raHopOwotCiBpbnQgdGltZXJfYWNrOwogCiB1bnNpZ25lZCBsb25nIHByb2ZpbGVfcGMoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCkBAIC04NCw4ICs4MSw3IEBACiAJaWYgKHRpbWVyX2FjaykgewogCQkvKgogCQkgKiBTdWJ0bGUsIHdoZW4gSS9PIEFQSUNzIGFyZSB1c2VkIHdlIGhhdmUgdG8gYWNrIHRpbWVyIElSUQotCQkgKiBtYW51YWxseSB0byByZXNldCB0aGUgSVJSIGJpdCBmb3IgZG9fc2xvd19nZXR0aW1lb2Zmc2V0KCkuCi0JCSAqIFRoaXMgd2lsbCBhbHNvIGRlYXNzZXJ0IE5NSSBsaW5lcyBmb3IgdGhlIHdhdGNoZG9nIGlmIHJ1bgorCQkgKiBtYW51YWxseSB0byBkZWFzc2VydCBOTUkgbGluZXMgZm9yIHRoZSB3YXRjaGRvZyBpZiBydW4KIAkJICogb24gYW4gODI0ODlEWC1iYXNlZCBzeXN0ZW0uCiAJCSAqLwogCQlzcGluX2xvY2soJmk4MjU5QV9sb2NrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90aW1lXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdGltZV82NC5jCmluZGV4IGM3Mzc4NDkuLmUzZDQ5YzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90aW1lXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RpbWVfNjQuYwpAQCAtNTYsNyArNTYsNyBAQAogLyogY2FsaWJyYXRlX2NwdSBpcyB1c2VkIG9uIHN5c3RlbXMgd2l0aCBmaXhlZCByYXRlIFRTQ3MgdG8gZGV0ZXJtaW5lCiAgKiBwcm9jZXNzb3IgZnJlcXVlbmN5ICovCiAjZGVmaW5lIFRJQ0tfQ09VTlQgMTAwMDAwMDAwCi11bnNpZ25lZCBsb25nIF9faW5pdCBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHoodm9pZCkKK3Vuc2lnbmVkIGxvbmcgX19pbml0IGNhbGlicmF0ZV9jcHUodm9pZCkKIHsKIAlpbnQgdHNjX3N0YXJ0LCB0c2Nfbm93OwogCWludCBpLCBub19jdHJfZnJlZTsKQEAgLTExNiwyMyArMTE2LDExIEBACiAKIHZvaWQgX19pbml0IHRpbWVfaW5pdCh2b2lkKQogewotCXRzY19jYWxpYnJhdGUoKTsKLQotCWNwdV9raHogPSB0c2Nfa2h6OwotCWlmIChjcHVfaGFzKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpICYmCi0JCShib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpKQotCQljcHVfa2h6ID0gY2FsY3VsYXRlX2NwdV9raHooKTsKLQotCWlmICh1bnN5bmNocm9uaXplZF90c2MoKSkKLQkJbWFya190c2NfdW5zdGFibGUoIlRTQ3MgdW5zeW5jaHJvbml6ZWQiKTsKLQorCXRzY19pbml0KCk7CiAJaWYgKGNwdV9oYXMoJmJvb3RfY3B1X2RhdGEsIFg4Nl9GRUFUVVJFX1JEVFNDUCkpCiAJCXZnZXRjcHVfbW9kZSA9IFZHRVRDUFVfUkRUU0NQOwogCWVsc2UKIAkJdmdldGNwdV9tb2RlID0gVkdFVENQVV9MU0w7CiAKLQlwcmludGsoS0VSTl9JTkZPICJ0aW1lLmM6IERldGVjdGVkICVkLiUwM2QgTUh6IHByb2Nlc3Nvci5cbiIsCi0JCWNwdV9raHogLyAxMDAwLCBjcHVfa2h6ICUgMTAwMCk7Ci0JaW5pdF90c2NfY2xvY2tzb3VyY2UoKTsKIAlsYXRlX3RpbWVfaW5pdCA9IGNob29zZV90aW1lX2luaXQoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90bGJfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC90bGJfNjQuYwppbmRleCBhMWYwN2Q3Li41MDM5ZDBmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdGxiXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RsYl82NC5jCkBAIC0xNSw2ICsxNSw4IEBACiAjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KICNpbmNsdWRlIDxhc20vaWRsZS5oPgorI2luY2x1ZGUgPGFzbS91di91dl9odWIuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfYmF1Lmg+CiAKICNpbmNsdWRlIDxtYWNoX2lwaS5oPgogLyoKQEAgLTE2Miw2ICsxNjQsOSBAQAogCXVuaW9uIHNtcF9mbHVzaF9zdGF0ZSAqZjsKIAljcHVtYXNrX3QgY3B1bWFzayA9ICpjcHVtYXNrcDsKIAorCWlmIChpc191dl9zeXN0ZW0oKSAmJiB1dl9mbHVzaF90bGJfb3RoZXJzKCZjcHVtYXNrLCBtbSwgdmEpKQorCQlyZXR1cm47CisKIAkvKiBDYWxsZXIgaGFzIGRpc2FibGVkIHByZWVtcHRpb24gKi8KIAlzZW5kZXIgPSBzbXBfcHJvY2Vzc29yX2lkKCkgJSBOVU1fSU5WQUxJREFURV9UTEJfVkVDVE9SUzsKIAlmID0gJnBlcl9jcHUoZmx1c2hfc3RhdGUsIHNlbmRlcik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGxiX3V2LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdGxiX3V2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmYmI3NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC90bGJfdXYuYwpAQCAtMCwwICsxLDc5MiBAQAorLyoKKyAqCVNHSSBVbHRyYVZpb2xldCBUTEIgZmx1c2ggcm91dGluZXMuCisgKgorICoJKGMpIDIwMDggQ2xpZmYgV2lja21hbiA8Y3B3QHNnaS5jb20+LCBTR0kuCisgKgorICoJVGhpcyBjb2RlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgb3IKKyAqCWxhdGVyLgorICovCisjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisKKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfbW1ycy5oPgorI2luY2x1ZGUgPGFzbS91di91dl9odWIuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfYmF1Lmg+CisjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KKyNpbmNsdWRlIDxhc20vaWRsZS5oPgorI2luY2x1ZGUgPGFzbS90c2MuaD4KKworI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgorCitzdGF0aWMgc3RydWN0IGJhdV9jb250cm9sCSoqdXZfYmF1X3RhYmxlX2Jhc2VzIF9fcmVhZF9tb3N0bHk7CitzdGF0aWMgaW50CQkJdXZfYmF1X3JldHJ5X2xpbWl0IF9fcmVhZF9tb3N0bHk7CisKKy8qIHBvc2l0aW9uIG9mIHBub2RlICh3aGljaCBpcyBuYXNpZD4+MSk6ICovCitzdGF0aWMgaW50CQkJdXZfbnNoaWZ0IF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCQl1dl9tbWFzayBfX3JlYWRfbW9zdGx5OworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHB0Y19zdGF0cywgcHRjc3RhdHMpOworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBiYXVfY29udHJvbCwgYmF1X2NvbnRyb2wpOworCisvKgorICogRnJlZSBhIHNvZnR3YXJlIGFja25vd2xlZGdlIGhhcmR3YXJlIHJlc291cmNlIGJ5IGNsZWFyaW5nIGl0cyBQZW5kaW5nCisgKiBiaXQuIFRoaXMgd2lsbCByZXR1cm4gYSByZXBseSB0byB0aGUgc2VuZGVyLgorICogSWYgdGhlIG1lc3NhZ2UgaGFzIHRpbWVkIG91dCwgYSByZXBseSBoYXMgYWxyZWFkeSBiZWVuIHNlbnQgYnkgdGhlCisgKiBoYXJkd2FyZSBidXQgdGhlIHJlc291cmNlIGhhcyBub3QgYmVlbiByZWxlYXNlZC4gSW4gdGhhdCBjYXNlIG91cgorICogY2xlYXIgb2YgdGhlIFRpbWVvdXQgYml0IChhcyB3ZWxsKSB3aWxsIGZyZWUgdGhlIHJlc291cmNlLiBObyByZXBseSB3aWxsCisgKiBiZSBzZW50ICh0aGUgaGFyZHdhcmUgd2lsbCBvbmx5IGRvIG9uZSByZXBseSBwZXIgbWVzc2FnZSkuCisgKi8KK3N0YXRpYyB2b2lkIHV2X3JlcGx5X3RvX21lc3NhZ2UoaW50IHJlc291cmNlLAorCQkJCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqbXNnLAorCQkJCXN0cnVjdCBiYXVfbXNnX3N0YXR1cyAqbXNwKQoreworCXVuc2lnbmVkIGxvbmcgZHc7CisKKwlkdyA9ICgxIDw8IChyZXNvdXJjZSArIFVWX1NXX0FDS19OUEVORElORykpIHwgKDEgPDwgcmVzb3VyY2UpOworCW1zZy0+cmVwbGllZF90byA9IDE7CisJbXNnLT5zd19hY2tfdmVjdG9yID0gMDsKKwlpZiAobXNwKQorCQltc3AtPnNlZW5fYnkuYml0cyA9IDA7CisJdXZfd3JpdGVfbG9jYWxfbW1yKFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRV9BTElBUywgZHcpOworfQorCisvKgorICogRG8gYWxsIHRoZSB0aGluZ3MgYSBjcHUgc2hvdWxkIGRvIGZvciBhIFRMQiBzaG9vdGRvd24gbWVzc2FnZS4KKyAqIE90aGVyIGNwdSdzIG1heSBjb21lIGhlcmUgYXQgdGhlIHNhbWUgdGltZSBmb3IgdGhpcyBtZXNzYWdlLgorICovCitzdGF0aWMgdm9pZCB1dl9iYXVfcHJvY2Vzc19tZXNzYWdlKHN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqbXNnLAorCQkJCSAgIGludCBtc2dfc2xvdCwgaW50IHN3X2Fja19zbG90KQoreworCXVuc2lnbmVkIGxvbmcgdGhpc19jcHVfbWFzazsKKwlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zcDsKKwlpbnQgY3B1OworCisJbXNwID0gX19nZXRfY3B1X3ZhcihiYXVfY29udHJvbCkubXNnX3N0YXR1c2VzICsgbXNnX3Nsb3Q7CisJY3B1ID0gdXZfYmxhZGVfcHJvY2Vzc29yX2lkKCk7CisJbXNnLT5udW1iZXJfb2ZfY3B1cyA9CisJICAgIHV2X2JsYWRlX25yX29ubGluZV9jcHVzKHV2X25vZGVfdG9fYmxhZGVfaWQobnVtYV9ub2RlX2lkKCkpKTsKKwl0aGlzX2NwdV9tYXNrID0gMVVMIDw8IGNwdTsKKwlpZiAobXNwLT5zZWVuX2J5LmJpdHMgJiB0aGlzX2NwdV9tYXNrKQorCQlyZXR1cm47CisJYXRvbWljX29yX2xvbmcoJm1zcC0+c2Vlbl9ieS5iaXRzLCB0aGlzX2NwdV9tYXNrKTsKKworCWlmIChtc2ctPnJlcGxpZWRfdG8gPT0gMSkKKwkJcmV0dXJuOworCisJaWYgKG1zZy0+YWRkcmVzcyA9PSBUTEJfRkxVU0hfQUxMKSB7CisJCWxvY2FsX2ZsdXNoX3RsYigpOworCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5hbGx0bGIrKzsKKwl9IGVsc2UgeworCQlfX2ZsdXNoX3RsYl9vbmUobXNnLT5hZGRyZXNzKTsKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykub25ldGxiKys7CisJfQorCisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykucmVxdWVzdGVlKys7CisKKwlhdG9taWNfaW5jX3Nob3J0KCZtc2ctPmFja25vd2xlZGdlX2NvdW50KTsKKwlpZiAobXNnLT5udW1iZXJfb2ZfY3B1cyA9PSBtc2ctPmFja25vd2xlZGdlX2NvdW50KQorCQl1dl9yZXBseV90b19tZXNzYWdlKHN3X2Fja19zbG90LCBtc2csIG1zcCk7Cit9CisKKy8qCisgKiBFeGFtaW5lIHRoZSBwYXlsb2FkIHF1ZXVlIG9uIG9uZSBkaXN0cmlidXRpb24gbm9kZSB0byBzZWUKKyAqIHdoaWNoIG1lc3NhZ2VzIGhhdmUgbm90IGJlZW4gc2VlbiwgYW5kIHdoaWNoIGNwdShzKSBoYXZlIG5vdCBzZWVuIHRoZW0uCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNwdSdzIHRoYXQgaGF2ZSBub3QgcmVzcG9uZGVkLgorICovCitzdGF0aWMgaW50IHV2X2V4YW1pbmVfZGVzdGluYXRpb24oc3RydWN0IGJhdV9jb250cm9sICpiYXVfdGFibGVzcCwgaW50IHNlbmRlcikKK3sKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZzsKKwlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zcDsKKwlpbnQgY291bnQgPSAwOworCWludCBpOworCWludCBqOworCisJZm9yIChtc2cgPSBiYXVfdGFibGVzcC0+dmFfcXVldWVfZmlyc3QsIGkgPSAwOyBpIDwgREVTVF9RX1NJWkU7CisJICAgICBtc2crKywgaSsrKSB7CisJCWlmICgobXNnLT5zZW5kaW5nX2NwdSA9PSBzZW5kZXIpICYmICghbXNnLT5yZXBsaWVkX3RvKSkgeworCQkJbXNwID0gYmF1X3RhYmxlc3AtPm1zZ19zdGF0dXNlcyArIGk7CisJCQlwcmludGsoS0VSTl9ERUJVRworCQkJICAgICAgICJibGFkZSAlZDogYWRkcmVzczolI2x4ICVkIG9mICVkLCBub3QgY3B1KHMpOiAiLAorCQkJICAgICAgIGksIG1zZy0+YWRkcmVzcywgbXNnLT5hY2tub3dsZWRnZV9jb3VudCwKKwkJCSAgICAgICBtc2ctPm51bWJlcl9vZl9jcHVzKTsKKwkJCWZvciAoaiA9IDA7IGogPCBtc2ctPm51bWJlcl9vZl9jcHVzOyBqKyspIHsKKwkJCQlpZiAoISgoMUwgPDwgaikgJiBtc3AtPnNlZW5fYnkuYml0cykpIHsKKwkJCQkJY291bnQrKzsKKwkJCQkJcHJpbnRrKCIlZCAiLCBqKTsKKwkJCQl9CisJCQl9CisJCQlwcmludGsoIlxuIik7CisJCX0KKwl9CisJcmV0dXJuIGNvdW50OworfQorCisvKgorICogRXhhbWluZSB0aGUgcGF5bG9hZCBxdWV1ZSBvbiBhbGwgdGhlIGRpc3RyaWJ1dGlvbiBub2RlcyB0byBzZWUKKyAqIHdoaWNoIG1lc3NhZ2VzIGhhdmUgbm90IGJlZW4gc2VlbiwgYW5kIHdoaWNoIGNwdShzKSBoYXZlIG5vdCBzZWVuIHRoZW0uCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNwdSdzIHRoYXQgaGF2ZSBub3QgcmVzcG9uZGVkLgorICovCitzdGF0aWMgaW50IHV2X2V4YW1pbmVfZGVzdGluYXRpb25zKHN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrICpkaXN0cmlidXRpb24pCit7CisJaW50IHNlbmRlcjsKKwlpbnQgaTsKKwlpbnQgY291bnQgPSAwOworCisJc2VuZGVyID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2spICogQklUU1BFUkJZVEU7IGkrKykgeworCQlpZiAoIWJhdV9ub2RlX2lzc2V0KGksIGRpc3RyaWJ1dGlvbikpCisJCQljb250aW51ZTsKKwkJY291bnQgKz0gdXZfZXhhbWluZV9kZXN0aW5hdGlvbih1dl9iYXVfdGFibGVfYmFzZXNbaV0sIHNlbmRlcik7CisJfQorCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIHdhaXQgZm9yIGNvbXBsZXRpb24gb2YgYSBicm9hZGNhc3QgbWVzc2FnZQorICoKKyAqIHJldHVybiBDT01QTEVURSwgUkVUUlkgb3IgR0lWRVVQCisgKi8KK3N0YXRpYyBpbnQgdXZfd2FpdF9jb21wbGV0aW9uKHN0cnVjdCBiYXVfZGVzYyAqYmF1X2Rlc2MsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIG1tcl9vZmZzZXQsIGludCByaWdodF9zaGlmdCkKK3sKKwlpbnQgZXhhbXMgPSAwOworCWxvbmcgZGVzdGluYXRpb25fdGltZW91dHMgPSAwOworCWxvbmcgc291cmNlX3RpbWVvdXRzID0gMDsKKwl1bnNpZ25lZCBsb25nIGRlc2NyaXB0b3Jfc3RhdHVzOworCisJd2hpbGUgKChkZXNjcmlwdG9yX3N0YXR1cyA9ICgoKHVuc2lnbmVkIGxvbmcpCisJCXV2X3JlYWRfbG9jYWxfbW1yKG1tcl9vZmZzZXQpID4+CisJCQlyaWdodF9zaGlmdCkgJiBVVl9BQ1RfU1RBVFVTX01BU0spKSAhPQorCQkJREVTQ19TVEFUVVNfSURMRSkgeworCQlpZiAoZGVzY3JpcHRvcl9zdGF0dXMgPT0gREVTQ19TVEFUVVNfU09VUkNFX1RJTUVPVVQpIHsKKwkJCXNvdXJjZV90aW1lb3V0cysrOworCQkJaWYgKHNvdXJjZV90aW1lb3V0cyA+IFNPVVJDRV9USU1FT1VUX0xJTUlUKQorCQkJCXNvdXJjZV90aW1lb3V0cyA9IDA7CisJCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5zX3JldHJ5Kys7CisJCQlyZXR1cm4gRkxVU0hfUkVUUlk7CisJCX0KKwkJLyoKKwkJICogc3BpbiBoZXJlIGxvb2tpbmcgZm9yIHByb2dyZXNzIGF0IHRoZSBkZXN0aW5hdGlvbnMKKwkJICovCisJCWlmIChkZXNjcmlwdG9yX3N0YXR1cyA9PSBERVNDX1NUQVRVU19ERVNUSU5BVElPTl9USU1FT1VUKSB7CisJCQlkZXN0aW5hdGlvbl90aW1lb3V0cysrOworCQkJaWYgKGRlc3RpbmF0aW9uX3RpbWVvdXRzID4gREVTVElOQVRJT05fVElNRU9VVF9MSU1JVCkgeworCQkJCS8qCisJCQkJICogcmV0dXJucyBudW1iZXIgb2YgY3B1cyBub3QgcmVzcG9uZGluZworCQkJCSAqLworCQkJCWlmICh1dl9leGFtaW5lX2Rlc3RpbmF0aW9ucworCQkJCSAgICAoJmJhdV9kZXNjLT5kaXN0cmlidXRpb24pID09IDApIHsKKwkJCQkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuZF9yZXRyeSsrOworCQkJCQlyZXR1cm4gRkxVU0hfUkVUUlk7CisJCQkJfQorCQkJCWV4YW1zKys7CisJCQkJaWYgKGV4YW1zID49IHV2X2JhdV9yZXRyeV9saW1pdCkgeworCQkJCQlwcmludGsoS0VSTl9ERUJVRworCQkJCQkgICAgICAgInV2X2ZsdXNoX3RsYl9vdGhlcnMiKTsKKwkJCQkJcHJpbnRrKCJnaXZpbmcgdXAgb24gY3B1ICVkXG4iLAorCQkJCQkgICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwkJCQkJcmV0dXJuIEZMVVNIX0dJVkVVUDsKKwkJCQl9CisJCQkJLyoKKwkJCQkgKiBkZWxheXMgY2FuIGhhbmcgdGhlIHNpbXVsYXRvcgorCQkJCSAgIHVkZWxheSgxMDAwKTsKKwkJCQkgKi8KKwkJCQlkZXN0aW5hdGlvbl90aW1lb3V0cyA9IDA7CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIEZMVVNIX0NPTVBMRVRFOworfQorCisvKioKKyAqIHV2X2ZsdXNoX3NlbmRfYW5kX3dhaXQKKyAqCisgKiBTZW5kIGEgYnJvYWRjYXN0IGFuZCB3YWl0IGZvciBhIGJyb2FkY2FzdCBtZXNzYWdlIHRvIGNvbXBsZXRlLgorICoKKyAqIFRoZSBjcHVtYXNrcCBtYXNrIGNvbnRhaW5zIHRoZSBjcHVzIHRoZSBicm9hZGNhc3Qgd2FzIHNlbnQgdG8uCisgKgorICogUmV0dXJucyAxIGlmIGFsbCByZW1vdGUgZmx1c2hpbmcgd2FzIGRvbmUuIFRoZSBtYXNrIGlzIHplcm9lZC4KKyAqIFJldHVybnMgMCBpZiBzb21lIHJlbW90ZSBmbHVzaGluZyByZW1haW5zIHRvIGJlIGRvbmUuIFRoZSBtYXNrIGlzIGxlZnQKKyAqIHVuY2hhbmdlZC4KKyAqLworaW50IHV2X2ZsdXNoX3NlbmRfYW5kX3dhaXQoaW50IGNwdSwgaW50IHRoaXNfYmxhZGUsIHN0cnVjdCBiYXVfZGVzYyAqYmF1X2Rlc2MsCisJCQkgICBjcHVtYXNrX3QgKmNwdW1hc2twKQoreworCWludCBjb21wbGV0aW9uX3N0YXR1cyA9IDA7CisJaW50IHJpZ2h0X3NoaWZ0OworCWludCB0cmllcyA9IDA7CisJaW50IGJsYWRlOworCWludCBiaXQ7CisJdW5zaWduZWQgbG9uZyBtbXJfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgaW5kZXg7CisJY3ljbGVzX3QgdGltZTE7CisJY3ljbGVzX3QgdGltZTI7CisKKwlpZiAoY3B1IDwgVVZfQ1BVU19QRVJfQUNUX1NUQVRVUykgeworCQltbXJfb2Zmc2V0ID0gVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wOworCQlyaWdodF9zaGlmdCA9IGNwdSAqIFVWX0FDVF9TVEFUVVNfU0laRTsKKwl9IGVsc2UgeworCQltbXJfb2Zmc2V0ID0gVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xOworCQlyaWdodF9zaGlmdCA9CisJCSAgICAoKGNwdSAtIFVWX0NQVVNfUEVSX0FDVF9TVEFUVVMpICogVVZfQUNUX1NUQVRVU19TSVpFKTsKKwl9CisJdGltZTEgPSBnZXRfY3ljbGVzKCk7CisJZG8geworCQl0cmllcysrOworCQlpbmRleCA9ICgxVUwgPDwgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0xfUFVTSF9TSEZUKSB8CisJCQljcHU7CisJCXV2X3dyaXRlX2xvY2FsX21tcihVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTCwgaW5kZXgpOworCQljb21wbGV0aW9uX3N0YXR1cyA9IHV2X3dhaXRfY29tcGxldGlvbihiYXVfZGVzYywgbW1yX29mZnNldCwKKwkJCQkJcmlnaHRfc2hpZnQpOworCX0gd2hpbGUgKGNvbXBsZXRpb25fc3RhdHVzID09IEZMVVNIX1JFVFJZKTsKKwl0aW1lMiA9IGdldF9jeWNsZXMoKTsKKwlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5zZmx1c2ggKz0gKHRpbWUyIC0gdGltZTEpOworCWlmICh0cmllcyA+IDEpCisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLnJldHJpZXNvaysrOworCisJaWYgKGNvbXBsZXRpb25fc3RhdHVzID09IEZMVVNIX0dJVkVVUCkgeworCQkvKgorCQkgKiBDYXVzZSB0aGUgY2FsbGVyIHRvIGRvIGFuIElQSS1zdHlsZSBUTEIgc2hvb3Rkb3duIG9uCisJCSAqIHRoZSBjcHUncywgYWxsIG9mIHdoaWNoIGFyZSBzdGlsbCBpbiB0aGUgbWFzay4KKwkJICovCisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLnB0Y19pKys7CisJCXJldHVybiAwOworCX0KKworCS8qCisJICogU3VjY2Vzcywgc28gY2xlYXIgdGhlIHJlbW90ZSBjcHUncyBmcm9tIHRoZSBtYXNrIHNvIHdlIGRvbid0CisJICogdXNlIHRoZSBJUEkgbWV0aG9kIG9mIHNob290ZG93biBvbiB0aGVtLgorCSAqLworCWZvcl9lYWNoX2NwdV9tYXNrKGJpdCwgKmNwdW1hc2twKSB7CisJCWJsYWRlID0gdXZfY3B1X3RvX2JsYWRlX2lkKGJpdCk7CisJCWlmIChibGFkZSA9PSB0aGlzX2JsYWRlKQorCQkJY29udGludWU7CisJCWNwdV9jbGVhcihiaXQsICpjcHVtYXNrcCk7CisJfQorCWlmICghY3B1c19lbXB0eSgqY3B1bWFza3ApKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworLyoqCisgKiB1dl9mbHVzaF90bGJfb3RoZXJzIC0gZ2xvYmFsbHkgcHVyZ2UgdHJhbnNsYXRpb24gY2FjaGUgb2YgYSB2aXJ0dWFsCisgKiBhZGRyZXNzIG9yIGFsbCBUTEIncworICogQGNwdW1hc2twOiBtYXNrIG9mIGFsbCBjcHUncyBpbiB3aGljaCB0aGUgYWRkcmVzcyBpcyB0byBiZSByZW1vdmVkCisgKiBAbW06IG1tX3N0cnVjdCBjb250YWluaW5nIHZpcnR1YWwgYWRkcmVzcyByYW5nZQorICogQHZhOiB2aXJ0dWFsIGFkZHJlc3MgdG8gYmUgcmVtb3ZlZCAob3IgVExCX0ZMVVNIX0FMTCBmb3IgYWxsIFRMQidzIG9uIGNwdSkKKyAqCisgKiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgaW5pdGlhdGluZyBhbnkgVVYgZ2xvYmFsIFRMQiBzaG9vdGRvd24uCisgKgorICogUHVyZ2VzIHRoZSB0cmFuc2xhdGlvbiBjYWNoZXMgb2YgYWxsIHNwZWNpZmllZCBwcm9jZXNzb3JzIG9mIHRoZSBnaXZlbgorICogdmlydHVhbCBhZGRyZXNzLCBvciBwdXJnZXMgYWxsIFRMQidzIG9uIHNwZWNpZmllZCBwcm9jZXNzb3JzLgorICoKKyAqIFRoZSBjYWxsZXIgaGFzIGRlcml2ZWQgdGhlIGNwdW1hc2twIGZyb20gdGhlIG1tX3N0cnVjdCBhbmQgaGFzIHN1YnRyYWN0ZWQKKyAqIHRoZSBsb2NhbCBjcHUgZnJvbSB0aGUgbWFzay4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgaWYgdGhlcmUKKyAqIGFyZSBiaXRzIHNldCBpbiB0aGUgbWFzay4gKGUuZy4gZmx1c2hfdGxiX3BhZ2UoKSkKKyAqCisgKiBUaGUgY3B1bWFza3AgaXMgY29udmVydGVkIGludG8gYSBub2RlbWFzayBvZiB0aGUgbm9kZXMgY29udGFpbmluZworICogdGhlIGNwdXMuCisgKgorICogUmV0dXJucyAxIGlmIGFsbCByZW1vdGUgZmx1c2hpbmcgd2FzIGRvbmUuCisgKiBSZXR1cm5zIDAgaWYgc29tZSByZW1vdGUgZmx1c2hpbmcgcmVtYWlucyB0byBiZSBkb25lLgorICovCitpbnQgdXZfZmx1c2hfdGxiX290aGVycyhjcHVtYXNrX3QgKmNwdW1hc2twLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCXVuc2lnbmVkIGxvbmcgdmEpCit7CisJaW50IGk7CisJaW50IGJpdDsKKwlpbnQgYmxhZGU7CisJaW50IGNwdTsKKwlpbnQgdGhpc19ibGFkZTsKKwlpbnQgbG9jYWxzID0gMDsKKwlzdHJ1Y3QgYmF1X2Rlc2MgKmJhdV9kZXNjOworCisJY3B1ID0gdXZfYmxhZGVfcHJvY2Vzc29yX2lkKCk7CisJdGhpc19ibGFkZSA9IHV2X251bWFfYmxhZGVfaWQoKTsKKwliYXVfZGVzYyA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLmRlc2NyaXB0b3JfYmFzZTsKKwliYXVfZGVzYyArPSBVVl9JVEVNU19QRVJfREVTQ1JJUFRPUiAqIGNwdTsKKworCWJhdV9ub2Rlc19jbGVhcigmYmF1X2Rlc2MtPmRpc3RyaWJ1dGlvbiwgVVZfRElTVFJJQlVUSU9OX1NJWkUpOworCisJaSA9IDA7CisJZm9yX2VhY2hfY3B1X21hc2soYml0LCAqY3B1bWFza3ApIHsKKwkJYmxhZGUgPSB1dl9jcHVfdG9fYmxhZGVfaWQoYml0KTsKKwkJQlVHX09OKGJsYWRlID4gKFVWX0RJU1RSSUJVVElPTl9TSVpFIC0gMSkpOworCQlpZiAoYmxhZGUgPT0gdGhpc19ibGFkZSkgeworCQkJbG9jYWxzKys7CisJCQljb250aW51ZTsKKwkJfQorCQliYXVfbm9kZV9zZXQoYmxhZGUsICZiYXVfZGVzYy0+ZGlzdHJpYnV0aW9uKTsKKwkJaSsrOworCX0KKwlpZiAoaSA9PSAwKSB7CisJCS8qCisJCSAqIG5vIG9mZl9ub2RlIGZsdXNoaW5nOyByZXR1cm4gc3RhdHVzIGZvciBsb2NhbCBub2RlCisJCSAqLworCQlpZiAobG9jYWxzKQorCQkJcmV0dXJuIDA7CisJCWVsc2UKKwkJCXJldHVybiAxOworCX0KKwlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5yZXF1ZXN0b3IrKzsKKwlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5udGFyZ2V0ZWQgKz0gaTsKKworCWJhdV9kZXNjLT5wYXlsb2FkLmFkZHJlc3MgPSB2YTsKKwliYXVfZGVzYy0+cGF5bG9hZC5zZW5kaW5nX2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKworCXJldHVybiB1dl9mbHVzaF9zZW5kX2FuZF93YWl0KGNwdSwgdGhpc19ibGFkZSwgYmF1X2Rlc2MsIGNwdW1hc2twKTsKK30KKworLyoKKyAqIFRoZSBCQVUgbWVzc2FnZSBpbnRlcnJ1cHQgY29tZXMgaGVyZS4gKHJlZ2lzdGVyZWQgYnkgc2V0X2ludHJfZ2F0ZSkKKyAqIFNlZSBlbnRyeV82NC5TCisgKgorICogV2UgcmVjZWl2ZWQgYSBicm9hZGNhc3QgYXNzaXN0IG1lc3NhZ2UuCisgKgorICogSW50ZXJydXB0cyBtYXkgaGF2ZSBiZWVuIGRpc2FibGVkOyB0aGlzIGludGVycnVwdCBjb3VsZCByZXByZXNlbnQKKyAqIHRoZSByZWNlaXB0IG9mIHNldmVyYWwgbWVzc2FnZXMuCisgKgorICogQWxsIGNvcmVzL3RocmVhZHMgb24gdGhpcyBub2RlIGdldCB0aGlzIGludGVycnVwdC4KKyAqIFRoZSBsYXN0IG9uZSB0byBzZWUgaXQgZG9lcyB0aGUgcy93IGFjay4KKyAqICh0aGUgcmVzb3VyY2Ugd2lsbCBub3QgYmUgZnJlZWQgdW50aWwgbm9uaW50ZXJydXB0YWJsZSBjcHVzIHNlZSB0aGlzCisgKiAgaW50ZXJydXB0OyBoYXJkd2FyZSB3aWxsIHRpbWVvdXQgdGhlIHMvdyBhY2sgYW5kIHJlcGx5IEVSUk9SKQorICovCit2b2lkIHV2X2JhdV9tZXNzYWdlX2ludGVycnVwdChzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKnZhX3F1ZXVlX2ZpcnN0OworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqdmFfcXVldWVfbGFzdDsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZzsKKwlzdHJ1Y3QgcHRfcmVncyAqb2xkX3JlZ3MgPSBzZXRfaXJxX3JlZ3MocmVncyk7CisJY3ljbGVzX3QgdGltZTE7CisJY3ljbGVzX3QgdGltZTI7CisJaW50IG1zZ19zbG90OworCWludCBzd19hY2tfc2xvdDsKKwlpbnQgZnc7CisJaW50IGNvdW50ID0gMDsKKwl1bnNpZ25lZCBsb25nIGxvY2FsX3Bub2RlOworCisJYWNrX0FQSUNfaXJxKCk7CisJZXhpdF9pZGxlKCk7CisJaXJxX2VudGVyKCk7CisKKwl0aW1lMSA9IGdldF9jeWNsZXMoKTsKKworCWxvY2FsX3Bub2RlID0gdXZfYmxhZGVfdG9fcG5vZGUodXZfbnVtYV9ibGFkZV9pZCgpKTsKKworCXZhX3F1ZXVlX2ZpcnN0ID0gX19nZXRfY3B1X3ZhcihiYXVfY29udHJvbCkudmFfcXVldWVfZmlyc3Q7CisJdmFfcXVldWVfbGFzdCA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLnZhX3F1ZXVlX2xhc3Q7CisKKwltc2cgPSBfX2dldF9jcHVfdmFyKGJhdV9jb250cm9sKS5iYXVfbXNnX2hlYWQ7CisJd2hpbGUgKG1zZy0+c3dfYWNrX3ZlY3RvcikgeworCQljb3VudCsrOworCQlmdyA9IG1zZy0+c3dfYWNrX3ZlY3RvcjsKKwkJbXNnX3Nsb3QgPSBtc2cgLSB2YV9xdWV1ZV9maXJzdDsKKwkJc3dfYWNrX3Nsb3QgPSBmZnMoZncpIC0gMTsKKworCQl1dl9iYXVfcHJvY2Vzc19tZXNzYWdlKG1zZywgbXNnX3Nsb3QsIHN3X2Fja19zbG90KTsKKworCQltc2crKzsKKwkJaWYgKG1zZyA+IHZhX3F1ZXVlX2xhc3QpCisJCQltc2cgPSB2YV9xdWV1ZV9maXJzdDsKKwkJX19nZXRfY3B1X3ZhcihiYXVfY29udHJvbCkuYmF1X21zZ19oZWFkID0gbXNnOworCX0KKwlpZiAoIWNvdW50KQorCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5ub21zZysrOworCWVsc2UgaWYgKGNvdW50ID4gMSkKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykubXVsdG1zZysrOworCisJdGltZTIgPSBnZXRfY3ljbGVzKCk7CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuZGZsdXNoICs9ICh0aW1lMiAtIHRpbWUxKTsKKworCWlycV9leGl0KCk7CisJc2V0X2lycV9yZWdzKG9sZF9yZWdzKTsKK30KKworc3RhdGljIHZvaWQgdXZfZW5hYmxlX3RpbWVvdXRzKHZvaWQpCit7CisJaW50IGk7CisJaW50IGJsYWRlOworCWludCBsYXN0X2JsYWRlOworCWludCBwbm9kZTsKKwlpbnQgY3VyX2NwdSA9IDA7CisJdW5zaWduZWQgbG9uZyBhcGljaWQ7CisKKwlsYXN0X2JsYWRlID0gLTE7CisJZm9yX2VhY2hfb25saW5lX25vZGUoaSkgeworCQlibGFkZSA9IHV2X25vZGVfdG9fYmxhZGVfaWQoaSk7CisJCWlmIChibGFkZSA9PSBsYXN0X2JsYWRlKQorCQkJY29udGludWU7CisJCWxhc3RfYmxhZGUgPSBibGFkZTsKKwkJYXBpY2lkID0gcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3VyX2NwdSk7CisJCXBub2RlID0gdXZfYmxhZGVfdG9fcG5vZGUoYmxhZGUpOworCQljdXJfY3B1ICs9IHV2X2JsYWRlX25yX3Bvc3NpYmxlX2NwdXMoaSk7CisJfQorfQorCitzdGF0aWMgdm9pZCAqdXZfcHRjX3NlcV9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGxvZmZfdCAqb2Zmc2V0KQoreworCWlmICgqb2Zmc2V0IDwgbnVtX3Bvc3NpYmxlX2NwdXMoKSkKKwkJcmV0dXJuIG9mZnNldDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgKnV2X3B0Y19zZXFfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEsIGxvZmZfdCAqb2Zmc2V0KQoreworCSgqb2Zmc2V0KSsrOworCWlmICgqb2Zmc2V0IDwgbnVtX3Bvc3NpYmxlX2NwdXMoKSkKKwkJcmV0dXJuIG9mZnNldDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgdXZfcHRjX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSkKK3sKK30KKworLyoKKyAqIERpc3BsYXkgdGhlIHN0YXRpc3RpY3MgdGhydSAvcHJvYworICogZGF0YSBwb2ludHMgdG8gdGhlIGNwdSBudW1iZXIKKyAqLworc3RhdGljIGludCB1dl9wdGNfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBwdGNfc3RhdHMgKnN0YXQ7CisJaW50IGNwdTsKKworCWNwdSA9ICoobG9mZl90ICopZGF0YTsKKworCWlmICghY3B1KSB7CisJCXNlcV9wcmludGYoZmlsZSwKKwkJIiMgY3B1IHJlcXVlc3RvciByZXF1ZXN0ZWUgb25lIGFsbCBzcmV0cnkgZHJldHJ5IHB0Y19pICIpOworCQlzZXFfcHJpbnRmKGZpbGUsCisJCSJzd19hY2sgc2ZsdXNoIGRmbHVzaCBzb2sgZG5vbXNnIGRtdWx0IHN0YXJnZXRcbiIpOworCX0KKwlpZiAoY3B1IDwgbnVtX3Bvc3NpYmxlX2NwdXMoKSAmJiBjcHVfb25saW5lKGNwdSkpIHsKKwkJc3RhdCA9ICZwZXJfY3B1KHB0Y3N0YXRzLCBjcHUpOworCQlzZXFfcHJpbnRmKGZpbGUsICJjcHUgJWQgJWxkICVsZCAlbGQgJWxkICVsZCAlbGQgJWxkICIsCisJCQkgICBjcHUsIHN0YXQtPnJlcXVlc3RvciwKKwkJCSAgIHN0YXQtPnJlcXVlc3RlZSwgc3RhdC0+b25ldGxiLCBzdGF0LT5hbGx0bGIsCisJCQkgICBzdGF0LT5zX3JldHJ5LCBzdGF0LT5kX3JldHJ5LCBzdGF0LT5wdGNfaSk7CisJCXNlcV9wcmludGYoZmlsZSwgIiVseCAlbGQgJWxkICVsZCAlbGQgJWxkICVsZFxuIiwKKwkJCSAgIHV2X3JlYWRfZ2xvYmFsX21tcjY0KHV2X2JsYWRlX3RvX3Bub2RlCisJCQkJCSh1dl9jcHVfdG9fYmxhZGVfaWQoY3B1KSksCisJCQkJCVVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRSksCisJCQkgICBzdGF0LT5zZmx1c2gsIHN0YXQtPmRmbHVzaCwKKwkJCSAgIHN0YXQtPnJldHJpZXNvaywgc3RhdC0+bm9tc2csCisJCQkgICBzdGF0LT5tdWx0bXNnLCBzdGF0LT5udGFyZ2V0ZWQpOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogIDA6IGRpc3BsYXkgbWVhbmluZyBvZiB0aGUgc3RhdGlzdGljcworICogPjA6IHJldHJ5IGxpbWl0CisgKi8KK3N0YXRpYyBzc2l6ZV90IHV2X3B0Y19wcm9jX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlciwKKwkJCQkgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKmRhdGEpCit7CisJbG9uZyBuZXdtb2RlOworCWNoYXIgb3B0c3RyWzY0XTsKKworCWlmIChjb3VudCA9PSAwIHx8IGNvdW50ID4gc2l6ZW9mKG9wdHN0cikpCisJCXJldHVybiAtRUlOVkFMOworCWlmIChjb3B5X2Zyb21fdXNlcihvcHRzdHIsIHVzZXIsIGNvdW50KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJb3B0c3RyW2NvdW50IC0gMV0gPSAnXDAnOworCWlmIChzdHJpY3Rfc3RydG91bChvcHRzdHIsIDEwLCAmbmV3bW9kZSkgPCAwKSB7CisJCXByaW50ayhLRVJOX0RFQlVHICIlcyBpcyBpbnZhbGlkXG4iLCBvcHRzdHIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAobmV3bW9kZSA9PSAwKSB7CisJCXByaW50ayhLRVJOX0RFQlVHICIjIGNwdTogICAgICBjcHUgbnVtYmVyXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJInJlcXVlc3RvcjogIHRpbWVzIHRoaXMgY3B1IHdhcyB0aGUgZmx1c2ggcmVxdWVzdG9yXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJInJlcXVlc3RlZTogIHRpbWVzIHRoaXMgY3B1IHdhcyByZXF1ZXN0ZWQgdG8gZmx1c2ggaXRzIFRMQnNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkib25lOiAgICAgICAgdGltZXMgcmVxdWVzdGVkIHRvIGZsdXNoIGEgc2luZ2xlIGFkZHJlc3NcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkiYWxsOiAgICAgICAgdGltZXMgcmVxdWVzdGVkIHRvIGZsdXNoIGFsbCBUTEInc1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJzcmV0cnk6ICAgICBudW1iZXIgb2YgcmV0cmllcyBvZiBzb3VyY2Utc2lkZSB0aW1lb3V0c1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJkcmV0cnk6ICAgICBudW1iZXIgb2YgcmV0cmllcyBvZiBkZXN0aW5hdGlvbi1zaWRlIHRpbWVvdXRzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJInB0Y19pOiAgICAgIHRpbWVzIFVWIGZlbGwgdGhyb3VnaCB0byBJUEktc3R5bGUgZmx1c2hlc1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJzd19hY2s6ICAgICBpbWFnZSBvZiBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkic2ZsdXNoX3VzOiAgY3ljbGVzIHNwZW50IGluIHV2X2ZsdXNoX3RsYl9vdGhlcnMoKVxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJkZmx1c2hfdXM6ICBjeWNsZXMgc3BlbnQgaW4gaGFuZGxpbmcgZmx1c2ggcmVxdWVzdHNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRyAic29rOiAgICAgICAgc3VjY2Vzc2VzIG9uIHJldHJ5XG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImRub21zZzogICAgIGludGVycnVwdHMgd2l0aCBubyBtZXNzYWdlXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJImRtdWx0OiAgICAgIGludGVycnVwdHMgd2l0aCBtdWx0aXBsZSBtZXNzYWdlc1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHICJzdGFyZ2V0OiAgICBub2RlcyB0YXJnZXRlZFxuIik7CisJfSBlbHNlIHsKKwkJdXZfYmF1X3JldHJ5X2xpbWl0ID0gbmV3bW9kZTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgInRpbWVvdXQgcmV0cnkgbGltaXQ6JWRcbiIsCisJCSAgICAgICB1dl9iYXVfcmV0cnlfbGltaXQpOworCX0KKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyB1dl9wdGNfc2VxX29wcyA9IHsKKwkuc3RhcnQJCT0gdXZfcHRjX3NlcV9zdGFydCwKKwkubmV4dAkJPSB1dl9wdGNfc2VxX25leHQsCisJLnN0b3AJCT0gdXZfcHRjX3NlcV9zdG9wLAorCS5zaG93CQk9IHV2X3B0Y19zZXFfc2hvdworfTsKKworc3RhdGljIGludCB1dl9wdGNfcHJvY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzZXFfb3BlbihmaWxlLCAmdXZfcHRjX3NlcV9vcHMpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwcm9jX3V2X3B0Y19vcGVyYXRpb25zID0geworCS5vcGVuCQk9IHV2X3B0Y19wcm9jX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLndyaXRlCQk9IHV2X3B0Y19wcm9jX3dyaXRlLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gc2VxX3JlbGVhc2UsCit9OworCitzdGF0aWMgaW50IF9faW5pdCB1dl9wdGNfaW5pdCh2b2lkKQoreworCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcHJvY191dl9wdGM7CisKKwlpZiAoIWlzX3V2X3N5c3RlbSgpKQorCQlyZXR1cm4gMDsKKworCWlmICghcHJvY19ta2Rpcigic2dpX3V2IiwgTlVMTCkpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJvY191dl9wdGMgPSBjcmVhdGVfcHJvY19lbnRyeShVVl9QVENfQkFTRU5BTUUsIDA0NDQsIE5VTEwpOworCWlmICghcHJvY191dl9wdGMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ1bmFibGUgdG8gY3JlYXRlICVzIHByb2MgZW50cnlcbiIsCisJCSAgICAgICBVVl9QVENfQkFTRU5BTUUpOworCQlyZW1vdmVfcHJvY19lbnRyeSgic2dpX3V2IiwgTlVMTCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlwcm9jX3V2X3B0Yy0+cHJvY19mb3BzID0gJnByb2NfdXZfcHRjX29wZXJhdGlvbnM7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBiZWdpbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBlci1ibGFkZSBjb250cm9sIHN0cnVjdHVyZXMKKyAqLworc3RhdGljIHN0cnVjdCBiYXVfY29udHJvbCAqIF9faW5pdCB1dl90YWJsZV9iYXNlc19pbml0KGludCBibGFkZSwgaW50IG5vZGUpCit7CisJaW50IGk7CisJaW50ICppcDsKKwlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zcDsKKwlzdHJ1Y3QgYmF1X2NvbnRyb2wgKmJhdV90YWJwOworCisJYmF1X3RhYnAgPQorCSAgICBrbWFsbG9jX25vZGUoc2l6ZW9mKHN0cnVjdCBiYXVfY29udHJvbCksIEdGUF9LRVJORUwsIG5vZGUpOworCUJVR19PTighYmF1X3RhYnApOworCisJYmF1X3RhYnAtPm1zZ19zdGF0dXNlcyA9CisJICAgIGttYWxsb2Nfbm9kZShzaXplb2Yoc3RydWN0IGJhdV9tc2dfc3RhdHVzKSAqCisJCQkgREVTVF9RX1NJWkUsIEdGUF9LRVJORUwsIG5vZGUpOworCUJVR19PTighYmF1X3RhYnAtPm1zZ19zdGF0dXNlcyk7CisKKwlmb3IgKGkgPSAwLCBtc3AgPSBiYXVfdGFicC0+bXNnX3N0YXR1c2VzOyBpIDwgREVTVF9RX1NJWkU7IGkrKywgbXNwKyspCisJCWJhdV9jcHViaXRzX2NsZWFyKCZtc3AtPnNlZW5fYnksIChpbnQpCisJCQkJICB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGJsYWRlKSk7CisKKwliYXVfdGFicC0+d2F0Y2hpbmcgPQorCSAgICBrbWFsbG9jX25vZGUoc2l6ZW9mKGludCkgKiBERVNUX05VTV9SRVNPVVJDRVMsIEdGUF9LRVJORUwsIG5vZGUpOworCUJVR19PTighYmF1X3RhYnAtPndhdGNoaW5nKTsKKworCWZvciAoaSA9IDAsIGlwID0gYmF1X3RhYnAtPndhdGNoaW5nOyBpIDwgREVTVF9RX1NJWkU7IGkrKywgaXArKykKKwkJKmlwID0gMDsKKworCXV2X2JhdV90YWJsZV9iYXNlc1tibGFkZV0gPSBiYXVfdGFicDsKKworCXJldHVybiBiYXVfdGFicDsKK30KKworLyoKKyAqIGZpbmlzaCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBlci1ibGFkZSBjb250cm9sIHN0cnVjdHVyZXMKKyAqLworc3RhdGljIHZvaWQgX19pbml0Cit1dl90YWJsZV9iYXNlc19maW5pc2goaW50IGJsYWRlLCBpbnQgbm9kZSwgaW50IGN1cl9jcHUsCisJCSAgICAgIHN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3AsCisJCSAgICAgIHN0cnVjdCBiYXVfZGVzYyAqYWRwKQoreworCXN0cnVjdCBiYXVfY29udHJvbCAqYmNwOworCWludCBpOworCisJZm9yIChpID0gY3VyX2NwdTsgaSA8IGN1cl9jcHUgKyB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGJsYWRlKTsgaSsrKSB7CisJCWJjcCA9IChzdHJ1Y3QgYmF1X2NvbnRyb2wgKikmcGVyX2NwdShiYXVfY29udHJvbCwgaSk7CisKKwkJYmNwLT5iYXVfbXNnX2hlYWQJPSBiYXVfdGFibGVzcC0+dmFfcXVldWVfZmlyc3Q7CisJCWJjcC0+dmFfcXVldWVfZmlyc3QJPSBiYXVfdGFibGVzcC0+dmFfcXVldWVfZmlyc3Q7CisJCWJjcC0+dmFfcXVldWVfbGFzdAk9IGJhdV90YWJsZXNwLT52YV9xdWV1ZV9sYXN0OworCQliY3AtPndhdGNoaW5nCQk9IGJhdV90YWJsZXNwLT53YXRjaGluZzsKKwkJYmNwLT5tc2dfc3RhdHVzZXMJPSBiYXVfdGFibGVzcC0+bXNnX3N0YXR1c2VzOworCQliY3AtPmRlc2NyaXB0b3JfYmFzZQk9IGFkcDsKKwl9Cit9CisKKy8qCisgKiBpbml0aWFsaXplIHRoZSBzZW5kaW5nIHNpZGUncyBzZW5kaW5nIGJ1ZmZlcnMKKyAqLworc3RhdGljIHN0cnVjdCBiYXVfZGVzYyAqIF9faW5pdAordXZfYWN0aXZhdGlvbl9kZXNjcmlwdG9yX2luaXQoaW50IG5vZGUsIGludCBwbm9kZSkKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIHBhOworCXVuc2lnbmVkIGxvbmcgbTsKKwl1bnNpZ25lZCBsb25nIG47CisJdW5zaWduZWQgbG9uZyBtbXJfaW1hZ2U7CisJc3RydWN0IGJhdV9kZXNjICphZHA7CisJc3RydWN0IGJhdV9kZXNjICphZDI7CisKKwlhZHAgPSAoc3RydWN0IGJhdV9kZXNjICopCisJICAgIGttYWxsb2Nfbm9kZSgxNjM4NCwgR0ZQX0tFUk5FTCwgbm9kZSk7CisJQlVHX09OKCFhZHApOworCisJcGEgPSBfX3BhKCh1bnNpZ25lZCBsb25nKWFkcCk7CisJbiA9IHBhID4+IHV2X25zaGlmdDsKKwltID0gcGEgJiB1dl9tbWFzazsKKworCW1tcl9pbWFnZSA9IHV2X3JlYWRfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRSk7CisJaWYgKG1tcl9pbWFnZSkgeworCQl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsICh1bnNpZ25lZCBsb25nKQorCQkJCSAgICAgIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFLAorCQkJCSAgICAgIChuIDw8IFVWX0RFU0NfQkFTRV9QTk9ERV9TSElGVCB8IG0pKTsKKwl9CisKKwlmb3IgKGkgPSAwLCBhZDIgPSBhZHA7IGkgPCBVVl9BQ1RJVkFUSU9OX0RFU0NSSVBUT1JfU0laRTsgaSsrLCBhZDIrKykgeworCQltZW1zZXQoYWQyLCAwLCBzaXplb2Yoc3RydWN0IGJhdV9kZXNjKSk7CisJCWFkMi0+aGVhZGVyLnN3X2Fja19mbGFnID0gMTsKKwkJYWQyLT5oZWFkZXIuYmFzZV9kZXN0X25vZGVpZCA9CisJCSAgICB1dl9ibGFkZV90b19wbm9kZSh1dl9jcHVfdG9fYmxhZGVfaWQoMCkpOworCQlhZDItPmhlYWRlci5jb21tYW5kID0gVVZfTkVUX0VORFBPSU5UX0lOVEQ7CisJCWFkMi0+aGVhZGVyLmludF9ib3RoID0gMTsKKwkJLyoKKwkJICogYWxsIG90aGVycyBuZWVkIHRvIGJlIHNldCB0byB6ZXJvOgorCQkgKiAgIGZhaXJuZXNzIGNoYWluaW5nIG11bHRpbGV2ZWwgY291bnQgcmVwbGllZF90bworCQkgKi8KKwl9CisJcmV0dXJuIGFkcDsKK30KKworLyoKKyAqIGluaXRpYWxpemUgdGhlIGRlc3RpbmF0aW9uIHNpZGUncyByZWNlaXZpbmcgYnVmZmVycworICovCitzdGF0aWMgc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICogX19pbml0Cit1dl9wYXlsb2FkX3F1ZXVlX2luaXQoaW50IG5vZGUsIGludCBwbm9kZSwgc3RydWN0IGJhdV9jb250cm9sICpiYXVfdGFibGVzcCkKK3sKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKnBxcDsKKwljaGFyICpjcDsKKworCXBxcCA9IChzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKikga21hbGxvY19ub2RlKAorCQkoREVTVF9RX1NJWkUgKyAxKSAqIHNpemVvZihzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkpLAorCQlHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIXBxcCk7CisKKwljcCA9IChjaGFyICopcHFwICsgMzE7CisJcHFwID0gKHN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqKSgoKHVuc2lnbmVkIGxvbmcpY3AgPj4gNSkgPDwgNSk7CisJYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0ID0gcHFwOworCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChwbm9kZSwKKwkJCSAgICAgIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNULAorCQkJICAgICAgKCh1bnNpZ25lZCBsb25nKXBub2RlIDw8CisJCQkgICAgICAgVVZfUEFZTE9BRFFfUE5PREVfU0hJRlQpIHwKKwkJCSAgICAgIHV2X3BoeXNub2RlYWRkcihwcXApKTsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUwsCisJCQkgICAgICB1dl9waHlzbm9kZWFkZHIocHFwKSk7CisJYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2xhc3QgPSBwcXAgKyAoREVTVF9RX1NJWkUgLSAxKTsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1QsCisJCQkgICAgICAodW5zaWduZWQgbG9uZykKKwkJCSAgICAgIHV2X3BoeXNub2RlYWRkcihiYXVfdGFibGVzcC0+dmFfcXVldWVfbGFzdCkpOworCW1lbXNldChwcXAsIDAsIHNpemVvZihzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkpICogREVTVF9RX1NJWkUpOworCisJcmV0dXJuIHBxcDsKK30KKworLyoKKyAqIEluaXRpYWxpemF0aW9uIG9mIGVhY2ggVVYgYmxhZGUncyBzdHJ1Y3R1cmVzCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IHV2X2luaXRfYmxhZGUoaW50IGJsYWRlLCBpbnQgbm9kZSwgaW50IGN1cl9jcHUpCit7CisJaW50IHBub2RlOworCXVuc2lnbmVkIGxvbmcgcGE7CisJdW5zaWduZWQgbG9uZyBhcGljaWQ7CisJc3RydWN0IGJhdV9kZXNjICphZHA7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICpwcXA7CisJc3RydWN0IGJhdV9jb250cm9sICpiYXVfdGFibGVzcDsKKworCWJhdV90YWJsZXNwID0gdXZfdGFibGVfYmFzZXNfaW5pdChibGFkZSwgbm9kZSk7CisJcG5vZGUgPSB1dl9ibGFkZV90b19wbm9kZShibGFkZSk7CisJYWRwID0gdXZfYWN0aXZhdGlvbl9kZXNjcmlwdG9yX2luaXQobm9kZSwgcG5vZGUpOworCXBxcCA9IHV2X3BheWxvYWRfcXVldWVfaW5pdChub2RlLCBwbm9kZSwgYmF1X3RhYmxlc3ApOworCXV2X3RhYmxlX2Jhc2VzX2ZpbmlzaChibGFkZSwgbm9kZSwgY3VyX2NwdSwgYmF1X3RhYmxlc3AsIGFkcCk7CisJLyoKKwkgKiB0aGUgYmVsb3cgaW5pdGlhbGl6YXRpb24gY2FuJ3QgYmUgaW4gZmlybXdhcmUgYmVjYXVzZSB0aGUKKwkgKiBtZXNzYWdpbmcgSVJRIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgT1MKKwkgKi8KKwlhcGljaWQgPSBwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjdXJfY3B1KTsKKwlwYSA9IHV2X3JlYWRfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfQkFVX0RBVEFfQ09ORklHKTsKKwlpZiAoKHBhICYgMHhmZikgIT0gVVZfQkFVX01FU1NBR0UpIHsKKwkJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfQkFVX0RBVEFfQ09ORklHLAorCQkJCSAgICAgICgoYXBpY2lkIDw8IDMyKSB8IFVWX0JBVV9NRVNTQUdFKSk7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogSW5pdGlhbGl6YXRpb24gb2YgQkFVLXJlbGF0ZWQgc3RydWN0dXJlcworICovCitzdGF0aWMgaW50IF9faW5pdCB1dl9iYXVfaW5pdCh2b2lkKQoreworCWludCBibGFkZTsKKwlpbnQgbm9kZTsKKwlpbnQgbmJsYWRlczsKKwlpbnQgbGFzdF9ibGFkZTsKKwlpbnQgY3VyX2NwdSA9IDA7CisKKwlpZiAoIWlzX3V2X3N5c3RlbSgpKQorCQlyZXR1cm4gMDsKKworCXV2X2JhdV9yZXRyeV9saW1pdCA9IDE7CisJdXZfbnNoaWZ0ID0gdXZfaHViX2luZm8tPm5fdmFsOworCXV2X21tYXNrID0gKDFVTCA8PCB1dl9odWJfaW5mby0+bl92YWwpIC0gMTsKKwluYmxhZGVzID0gMDsKKwlsYXN0X2JsYWRlID0gLTE7CisJZm9yX2VhY2hfb25saW5lX25vZGUobm9kZSkgeworCQlibGFkZSA9IHV2X25vZGVfdG9fYmxhZGVfaWQobm9kZSk7CisJCWlmIChibGFkZSA9PSBsYXN0X2JsYWRlKQorCQkJY29udGludWU7CisJCWxhc3RfYmxhZGUgPSBibGFkZTsKKwkJbmJsYWRlcysrOworCX0KKwl1dl9iYXVfdGFibGVfYmFzZXMgPSAoc3RydWN0IGJhdV9jb250cm9sICoqKQorCSAgICBrbWFsbG9jKG5ibGFkZXMgKiBzaXplb2Yoc3RydWN0IGJhdV9jb250cm9sICopLCBHRlBfS0VSTkVMKTsKKwlCVUdfT04oIXV2X2JhdV90YWJsZV9iYXNlcyk7CisKKwlsYXN0X2JsYWRlID0gLTE7CisJZm9yX2VhY2hfb25saW5lX25vZGUobm9kZSkgeworCQlibGFkZSA9IHV2X25vZGVfdG9fYmxhZGVfaWQobm9kZSk7CisJCWlmIChibGFkZSA9PSBsYXN0X2JsYWRlKQorCQkJY29udGludWU7CisJCWxhc3RfYmxhZGUgPSBibGFkZTsKKwkJdXZfaW5pdF9ibGFkZShibGFkZSwgbm9kZSwgY3VyX2NwdSk7CisJCWN1cl9jcHUgKz0gdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhibGFkZSk7CisJfQorCXNldF9pbnRyX2dhdGUoVVZfQkFVX01FU1NBR0UsIHV2X2JhdV9tZXNzYWdlX2ludHIxKTsKKwl1dl9lbmFibGVfdGltZW91dHMoKTsKKworCXJldHVybiAwOworfQorX19pbml0Y2FsbCh1dl9iYXVfaW5pdCk7CitfX2luaXRjYWxsKHV2X3B0Y19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90cmFtcG9saW5lLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhbXBvbGluZS5jCmluZGV4IGFiYmYxOTkuLjExMDZmYWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90cmFtcG9saW5lLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RyYW1wb2xpbmUuYwpAQCAtMiw3ICsyLDcgQEAKIAogI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CiAKLS8qIHJlYWR5IGZvciB4ODZfNjQsIG5vIGhhcm0gZm9yIHg4Niwgc2luY2UgaXQgd2lsbCBvdmVyd3JpdGUgYWZ0ZXIgYWxsb2MgKi8KKy8qIHJlYWR5IGZvciB4ODZfNjQgYW5kIHg4NiAqLwogdW5zaWduZWQgY2hhciAqdHJhbXBvbGluZV9iYXNlID0gX192YShUUkFNUE9MSU5FX0JBU0UpOwogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfMzIuYwppbmRleCBiZGU2ZjYzLi44YTc2ODk3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfMzIuYwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTkyICBMaW51cyBUb3J2YWxkcworICogIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiBBbmRpIEtsZWVuLCBTdVNFIExhYnMKICAqCiAgKiAgUGVudGl1bSBJSUkgRlhTUiwgU1NFIHN1cHBvcnQKICAqCUdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4sIE1heSAyMDAwCkBAIC02MCw4ICs2MSw2IEBACiAKICNpbmNsdWRlICJtYWNoX3RyYXBzLmgiCiAKLWludCBwYW5pY19vbl91bnJlY292ZXJlZF9ubWk7Ci0KIERFQ0xBUkVfQklUTUFQKHVzZWRfdmVjdG9ycywgTlJfVkVDVE9SUyk7CiBFWFBPUlRfU1lNQk9MX0dQTCh1c2VkX3ZlY3RvcnMpOwogCkBAIC05OCwxOSArOTcsMjIgQEAKIGFzbWxpbmthZ2Ugdm9pZCBzcHVyaW91c19pbnRlcnJ1cHRfYnVnKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIG1hY2hpbmVfY2hlY2sodm9pZCk7CiAKK2ludCBwYW5pY19vbl91bnJlY292ZXJlZF9ubWk7CiBpbnQga3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gMjQ7CiBzdGF0aWMgdW5zaWduZWQgaW50IGNvZGVfYnl0ZXMgPSA2NDsKK3N0YXRpYyBpbnQgaWdub3JlX25taXM7CitzdGF0aWMgaW50IGRpZV9jb3VudGVyOwogCiB2b2lkIHByaW50a19hZGRyZXNzKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgaW50IHJlbGlhYmxlKQogewogI2lmZGVmIENPTkZJR19LQUxMU1lNUwotCWNoYXIgbmFtZWJ1ZltLU1lNX05BTUVfTEVOXTsKIAl1bnNpZ25lZCBsb25nIG9mZnNldCA9IDA7CiAJdW5zaWduZWQgbG9uZyBzeW1zaXplOwogCWNvbnN0IGNoYXIgKnN5bW5hbWU7Ci0JY2hhciByZWxpYWJbNF0gPSAiIjsKLQljaGFyICpkZWxpbSA9ICI6IjsKIAljaGFyICptb2RuYW1lOworCWNoYXIgKmRlbGltID0gIjoiOworCWNoYXIgbmFtZWJ1ZltLU1lNX05BTUVfTEVOXTsKKwljaGFyIHJlbGlhYls0XSA9ICIiOwogCiAJc3ltbmFtZSA9IGthbGxzeW1zX2xvb2t1cChhZGRyZXNzLCAmc3ltc2l6ZSwgJm9mZnNldCwKIAkJCQkJJm1vZG5hbWUsIG5hbWVidWYpOwpAQCAtMTMwLDIyICsxMzIsMjMgQEAKICNlbmRpZgogfQogCi1zdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFja19wdHIoc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywgdm9pZCAqcCwgdW5zaWduZWQgc2l6ZSkKK3N0YXRpYyBpbmxpbmUgaW50IHZhbGlkX3N0YWNrX3B0cihzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpbmZvLAorCQkJdm9pZCAqcCwgdW5zaWduZWQgaW50IHNpemUpCiB7Ci0JcmV0dXJuCXAgPiAodm9pZCAqKXRpbmZvICYmCi0JCXAgPD0gKHZvaWQgKil0aW5mbyArIFRIUkVBRF9TSVpFIC0gc2l6ZTsKKwl2b2lkICp0ID0gdGluZm87CisJcmV0dXJuCXAgPiB0ICYmIHAgPD0gdCArIFRIUkVBRF9TSVpFIC0gc2l6ZTsKIH0KIAogLyogVGhlIGZvcm0gb2YgdGhlIHRvcCBvZiB0aGUgZnJhbWUgb24gdGhlIHN0YWNrICovCiBzdHJ1Y3Qgc3RhY2tfZnJhbWUgewotCXN0cnVjdCBzdGFja19mcmFtZQkqbmV4dF9mcmFtZTsKLQl1bnNpZ25lZCBsb25nCQlyZXR1cm5fYWRkcmVzczsKKwlzdHJ1Y3Qgc3RhY2tfZnJhbWUgKm5leHRfZnJhbWU7CisJdW5zaWduZWQgbG9uZyByZXR1cm5fYWRkcmVzczsKIH07CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZwogcHJpbnRfY29udGV4dF9zdGFjayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpbmZvLAotCQkgICAgdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnAsCi0JCSAgICBjb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSkKKwkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnAsCisJCWNvbnN0IHN0cnVjdCBzdGFja3RyYWNlX29wcyAqb3BzLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzdGFja19mcmFtZSAqZnJhbWUgPSAoc3RydWN0IHN0YWNrX2ZyYW1lICopYnA7CiAKQEAgLTE2Nyw4ICsxNzAsNiBAQAogCXJldHVybiBicDsKIH0KIAotI2RlZmluZSBNU0cobXNnKQkJb3BzLT53YXJuaW5nKGRhdGEsIG1zZykKLQogdm9pZCBkdW1wX3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAogCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSkKQEAgLTE3OCw3ICsxNzksNiBAQAogCiAJaWYgKCFzdGFjaykgewogCQl1bnNpZ25lZCBsb25nIGR1bW15OwotCiAJCXN0YWNrID0gJmR1bW15OwogCQlpZiAodGFzayAhPSBjdXJyZW50KQogCQkJc3RhY2sgPSAodW5zaWduZWQgbG9uZyAqKXRhc2stPnRocmVhZC5zcDsKQEAgLTE5Niw3ICsxOTYsNyBAQAogCX0KICNlbmRpZgogCi0Jd2hpbGUgKDEpIHsKKwlmb3IgKDs7KSB7CiAJCXN0cnVjdCB0aHJlYWRfaW5mbyAqY29udGV4dDsKIAogCQljb250ZXh0ID0gKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQpAQCAtMjQ4LDEwICsyNDgsMTAgQEAKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzdGFja3RyYWNlX29wcyBwcmludF90cmFjZV9vcHMgPSB7Ci0JLndhcm5pbmcJCT0gcHJpbnRfdHJhY2Vfd2FybmluZywKLQkud2FybmluZ19zeW1ib2wJCT0gcHJpbnRfdHJhY2Vfd2FybmluZ19zeW1ib2wsCi0JLnN0YWNrCQkJPSBwcmludF90cmFjZV9zdGFjaywKLQkuYWRkcmVzcwkJPSBwcmludF90cmFjZV9hZGRyZXNzLAorCS53YXJuaW5nID0gcHJpbnRfdHJhY2Vfd2FybmluZywKKwkud2FybmluZ19zeW1ib2wgPSBwcmludF90cmFjZV93YXJuaW5nX3N5bWJvbCwKKwkuc3RhY2sgPSBwcmludF90cmFjZV9zdGFjaywKKwkuYWRkcmVzcyA9IHByaW50X3RyYWNlX2FkZHJlc3MsCiB9OwogCiBzdGF0aWMgdm9pZApAQCAtMzUxLDE1ICszNTEsMTQgQEAKIAkJcHJpbnRrKEtFUk5fRU1FUkcgIkNvZGU6ICIpOwogCiAJCWlwID0gKHU4ICopcmVncy0+aXAgLSBjb2RlX3Byb2xvZ3VlOwotCQlpZiAoaXAgPCAodTggKilQQUdFX09GRlNFVCB8fAotCQkJcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CisJCWlmIChpcCA8ICh1OCAqKVBBR0VfT0ZGU0VUIHx8IHByb2JlX2tlcm5lbF9hZGRyZXNzKGlwLCBjKSkgewogCQkJLyogdHJ5IHN0YXJ0aW5nIGF0IEVJUCAqLwogCQkJaXAgPSAodTggKilyZWdzLT5pcDsKIAkJCWNvZGVfbGVuID0gY29kZV9sZW4gLSBjb2RlX3Byb2xvZ3VlICsgMTsKIAkJfQogCQlmb3IgKGkgPSAwOyBpIDwgY29kZV9sZW47IGkrKywgaXArKykgewogCQkJaWYgKGlwIDwgKHU4ICopUEFHRV9PRkZTRVQgfHwKLQkJCQlwcm9iZV9rZXJuZWxfYWRkcmVzcyhpcCwgYykpIHsKKwkJCQkJcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CiAJCQkJcHJpbnRrKCIgQmFkIEVJUCB2YWx1ZS4iKTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTM4NCw4ICszODMsNiBAQAogCXJldHVybiB1ZDIgPT0gMHgwYjBmOwogfQogCi1zdGF0aWMgaW50IGRpZV9jb3VudGVyOwotCiBpbnQgX19rcHJvYmVzIF9fZGllKGNvbnN0IGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyKQogewogCXVuc2lnbmVkIHNob3J0IHNzOwpAQCAtNDAyLDI2ICszOTksMjIgQEAKIAlwcmludGsoIkRFQlVHX1BBR0VBTExPQyIpOwogI2VuZGlmCiAJcHJpbnRrKCJcbiIpOwotCiAJaWYgKG5vdGlmeV9kaWUoRElFX09PUFMsIHN0ciwgcmVncywgZXJyLAotCQkJY3VycmVudC0+dGhyZWFkLnRyYXBfbm8sIFNJR1NFR1YpICE9IE5PVElGWV9TVE9QKSB7CisJCQljdXJyZW50LT50aHJlYWQudHJhcF9ubywgU0lHU0VHVikgPT0gTk9USUZZX1NUT1ApCisJCXJldHVybiAxOwogCi0JCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwotCQkvKiBFeGVjdXRpdmUgc3VtbWFyeSBpbiBjYXNlIHRoZSBvb3BzIHNjcm9sbGVkIGF3YXkgKi8KLQkJc3AgPSAodW5zaWduZWQgbG9uZykgKCZyZWdzLT5zcCk7Ci0JCXNhdmVzZWdtZW50KHNzLCBzcyk7Ci0JCWlmICh1c2VyX21vZGUocmVncykpIHsKLQkJCXNwID0gcmVncy0+c3A7Ci0JCQlzcyA9IHJlZ3MtPnNzICYgMHhmZmZmOwotCQl9Ci0JCXByaW50ayhLRVJOX0VNRVJHICJFSVA6IFs8JTA4bHg+XSAiLCByZWdzLT5pcCk7Ci0JCXByaW50X3N5bWJvbCgiJXMiLCByZWdzLT5pcCk7Ci0JCXByaW50aygiIFNTOkVTUCAlMDR4OiUwOGx4XG4iLCBzcywgc3ApOwotCi0JCXJldHVybiAwOworCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOworCS8qIEV4ZWN1dGl2ZSBzdW1tYXJ5IGluIGNhc2UgdGhlIG9vcHMgc2Nyb2xsZWQgYXdheSAqLworCXNwID0gKHVuc2lnbmVkIGxvbmcpICgmcmVncy0+c3ApOworCXNhdmVzZWdtZW50KHNzLCBzcyk7CisJaWYgKHVzZXJfbW9kZShyZWdzKSkgeworCQlzcCA9IHJlZ3MtPnNwOworCQlzcyA9IHJlZ3MtPnNzICYgMHhmZmZmOwogCX0KLQotCXJldHVybiAxOworCXByaW50ayhLRVJOX0VNRVJHICJFSVA6IFs8JTA4bHg+XSAiLCByZWdzLT5pcCk7CisJcHJpbnRfc3ltYm9sKCIlcyIsIHJlZ3MtPmlwKTsKKwlwcmludGsoIiBTUzpFU1AgJTA0eDolMDhseFxuIiwgc3MsIHNwKTsKKwlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTU0NCw4ICs1MzcsOSBAQAogI2RlZmluZSBET19FUlJPUih0cmFwbnIsIHNpZ25yLCBzdHIsIG5hbWUpCQkJCVwKIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCQkJXAogewkJCQkJCQkJCVwKKwl0cmFjZV9oYXJkaXJxc19maXh1cCgpOwkJCQkJCVwKIAlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCi0JCQkJCQk9PSBOT1RJRllfU1RPUCkJCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAogCQlyZXR1cm47CQkJCQkJCVwKIAlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgMCwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CQlcCiB9CkBAIC01NjEsNyArNTU1LDcgQEAKIAlpbmZvLnNpX2NvZGUgPSBzaWNvZGU7CQkJCQkJXAogCWluZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKXNpYWRkcjsJCQkJXAogCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpCVwKLQkJCQkJCT09IE5PVElGWV9TVE9QKQkJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCiAJCXJldHVybjsJCQkJCQkJXAogCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCAwLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CVwKIH0KQEAgLTU3MCw3ICs1NjQsNyBAQAogdm9pZCBkb18jI25hbWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkJCQlcCiB7CQkJCQkJCQkJXAogCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpCVwKLQkJCQkJCT09IE5PVElGWV9TVE9QKQkJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCiAJCXJldHVybjsJCQkJCQkJXAogCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCAxLCByZWdzLCBlcnJvcl9jb2RlLCBOVUxMKTsJCVwKIH0KQEAgLTU4NSwyNyArNTc5LDI5IEBACiAJaW5mby5zaV9hZGRyID0gKHZvaWQgX191c2VyICopc2lhZGRyOwkJCQlcCiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsJCQkJCQlcCiAJaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikJXAotCQkJCQkJPT0gTk9USUZZX1NUT1ApCQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKIAkJcmV0dXJuOwkJCQkJCQlcCiAJZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIDEsIHJlZ3MsIGVycm9yX2NvZGUsICZpbmZvKTsJXAogfQogCi1ET19WTTg2X0VSUk9SX0lORk8oMCwgU0lHRlBFLCAgImRpdmlkZSBlcnJvciIsIGRpdmlkZV9lcnJvciwgRlBFX0lOVERJViwgcmVncy0+aXApCitET19WTTg2X0VSUk9SX0lORk8oMCwgU0lHRlBFLCAiZGl2aWRlIGVycm9yIiwgZGl2aWRlX2Vycm9yLCBGUEVfSU5URElWLCByZWdzLT5pcCkKICNpZm5kZWYgQ09ORklHX0tQUk9CRVMKIERPX1ZNODZfRVJST1IoMywgU0lHVFJBUCwgImludDMiLCBpbnQzKQogI2VuZGlmCiBET19WTTg2X0VSUk9SKDQsIFNJR1NFR1YsICJvdmVyZmxvdyIsIG92ZXJmbG93KQogRE9fVk04Nl9FUlJPUig1LCBTSUdTRUdWLCAiYm91bmRzIiwgYm91bmRzKQotRE9fRVJST1JfSU5GTyg2LCBTSUdJTEwsICAiaW52YWxpZCBvcGNvZGUiLCBpbnZhbGlkX29wLCBJTExfSUxMT1BOLCByZWdzLT5pcCwgMCkKLURPX0VSUk9SKDksIFNJR0ZQRSwgICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJydW4iLCBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pCitET19FUlJPUl9JTkZPKDYsIFNJR0lMTCwgImludmFsaWQgb3Bjb2RlIiwgaW52YWxpZF9vcCwgSUxMX0lMTE9QTiwgcmVncy0+aXAsIDApCitET19FUlJPUig5LCBTSUdGUEUsICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJydW4iLCBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pCiBET19FUlJPUigxMCwgU0lHU0VHViwgImludmFsaWQgVFNTIiwgaW52YWxpZF9UU1MpCi1ET19FUlJPUigxMSwgU0lHQlVTLCAgInNlZ21lbnQgbm90IHByZXNlbnQiLCBzZWdtZW50X25vdF9wcmVzZW50KQotRE9fRVJST1IoMTIsIFNJR0JVUywgICJzdGFjayBzZWdtZW50Iiwgc3RhY2tfc2VnbWVudCkKK0RPX0VSUk9SKDExLCBTSUdCVVMsICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKK0RPX0VSUk9SKDEyLCBTSUdCVVMsICJzdGFjayBzZWdtZW50Iiwgc3RhY2tfc2VnbWVudCkKIERPX0VSUk9SX0lORk8oMTcsIFNJR0JVUywgImFsaWdubWVudCBjaGVjayIsIGFsaWdubWVudF9jaGVjaywgQlVTX0FEUkFMTiwgMCwgMCkKIERPX0VSUk9SX0lORk8oMzIsIFNJR0lMTCwgImlyZXQgZXhjZXB0aW9uIiwgaXJldF9lcnJvciwgSUxMX0JBRFNUSywgMCwgMSkKIAotdm9pZCBfX2twcm9iZXMgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCit2b2lkIF9fa3Byb2JlcworZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0c2s7CiAJc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnRocmVhZDsKIAlzdHJ1Y3QgdHNzX3N0cnVjdCAqdHNzOwogCWludCBjcHU7CkBAIC02NDYsMjMgKzY0MiwyNCBAQAogCWlmIChyZWdzLT5mbGFncyAmIFg4Nl9WTV9NQVNLKQogCQlnb3RvIGdwX2luX3ZtODY7CiAKKwl0c2sgPSBjdXJyZW50OwogCWlmICghdXNlcl9tb2RlKHJlZ3MpKQogCQlnb3RvIGdwX2luX2tlcm5lbDsKIAotCWN1cnJlbnQtPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKLQljdXJyZW50LT50aHJlYWQudHJhcF9ubyA9IDEzOworCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOworCXRzay0+dGhyZWFkLnRyYXBfbm8gPSAxMzsKIAotCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwoY3VycmVudCwgU0lHU0VHVikgJiYKLQkgICAgcHJpbnRrX3JhdGVsaW1pdCgpKSB7CisJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIFNJR1NFR1YpICYmCisJCQlwcmludGtfcmF0ZWxpbWl0KCkpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTwotCQkgICAgIiVzWyVkXSBnZW5lcmFsIHByb3RlY3Rpb24gaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAotCQkgICAgY3VycmVudC0+Y29tbSwgdGFza19waWRfbnIoY3VycmVudCksCi0JCSAgICByZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOworCQkJIiVzWyVkXSBnZW5lcmFsIHByb3RlY3Rpb24gaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAorCQkJdHNrLT5jb21tLCB0YXNrX3BpZF9ucih0c2spLAorCQkJcmVncy0+aXAsIHJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKIAkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7CiAJCXByaW50aygiXG4iKTsKIAl9CiAKLQlmb3JjZV9zaWcoU0lHU0VHViwgY3VycmVudCk7CisJZm9yY2Vfc2lnKFNJR1NFR1YsIHRzayk7CiAJcmV0dXJuOwogCiBncF9pbl92bTg2OgpAQCAtNjcxLDE0ICs2NjgsMTUgQEAKIAlyZXR1cm47CiAKIGdwX2luX2tlcm5lbDoKLQlpZiAoIWZpeHVwX2V4Y2VwdGlvbihyZWdzKSkgewotCQljdXJyZW50LT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7Ci0JCWN1cnJlbnQtPnRocmVhZC50cmFwX25vID0gMTM7Ci0JCWlmIChub3RpZnlfZGllKERJRV9HUEYsICJnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQiLCByZWdzLAorCWlmIChmaXh1cF9leGNlcHRpb24ocmVncykpCisJCXJldHVybjsKKworCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOworCXRzay0+dGhyZWFkLnRyYXBfbm8gPSAxMzsKKwlpZiAobm90aWZ5X2RpZShESUVfR1BGLCAiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywKIAkJCQllcnJvcl9jb2RlLCAxMywgU0lHU0VHVikgPT0gTk9USUZZX1NUT1ApCi0JCQlyZXR1cm47Ci0JCWRpZSgiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywgZXJyb3JfY29kZSk7Ci0JfQorCQlyZXR1cm47CisJZGllKCJnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQiLCByZWdzLCBlcnJvcl9jb2RlKTsKIH0KIAogc3RhdGljIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKQEAgLTc1NSw5ICs3NTMsOSBAQAogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG5taV9wcmludF9sb2NrKTsKIAotdm9pZCBub3RyYWNlIF9fa3Byb2JlcyBkaWVfbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBjb25zdCBjaGFyICptc2cpCit2b2lkIG5vdHJhY2UgX19rcHJvYmVzIGRpZV9ubWkoY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGRvX3BhbmljKQogewotCWlmIChub3RpZnlfZGllKERJRV9OTUlXQVRDSERPRywgbXNnLCByZWdzLCAwLCAyLCBTSUdJTlQpID09IE5PVElGWV9TVE9QKQorCWlmIChub3RpZnlfZGllKERJRV9OTUlXQVRDSERPRywgc3RyLCByZWdzLCAwLCAyLCBTSUdJTlQpID09IE5PVElGWV9TVE9QKQogCQlyZXR1cm47CiAKIAlzcGluX2xvY2soJm5taV9wcmludF9sb2NrKTsKQEAgLTc2NiwxMCArNzY0LDEyIEBACiAJKiB0byBnZXQgYSBtZXNzYWdlIG91dDoKIAkqLwogCWJ1c3Rfc3BpbmxvY2tzKDEpOwotCXByaW50ayhLRVJOX0VNRVJHICIlcyIsIG1zZyk7CisJcHJpbnRrKEtFUk5fRU1FUkcgIiVzIiwgc3RyKTsKIAlwcmludGsoIiBvbiBDUFUlZCwgaXAgJTA4bHgsIHJlZ2lzdGVyczpcbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSwgcmVncy0+aXApOwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOworCWlmIChkb19wYW5pYykKKwkJcGFuaWMoIk5vbiBtYXNrYWJsZSBpbnRlcnJ1cHQiKTsKIAljb25zb2xlX3NpbGVudCgpOwogCXNwaW5fdW5sb2NrKCZubWlfcHJpbnRfbG9jayk7CiAJYnVzdF9zcGlubG9ja3MoMCk7CkBAIC03ODksMTQgKzc4OSwxNyBAQAogc3RhdGljIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQgZGVmYXVsdF9kb19ubWkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJdW5zaWduZWQgY2hhciByZWFzb24gPSAwOworCWludCBjcHU7CiAKLQkvKiBPbmx5IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20gdGhlIHN5c3RlbTogKi8KLQlpZiAoIXNtcF9wcm9jZXNzb3JfaWQoKSkKKwljcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisKKwkvKiBPbmx5IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20gdGhlIHN5c3RlbS4gKi8KKwlpZiAoIWNwdSkKIAkJcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKIAogCWlmICghKHJlYXNvbiAmIDB4YzApKSB7CiAJCWlmIChub3RpZnlfZGllKERJRV9OTUlfSVBJLCAibm1pX2lwaSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKQotCQkJCQkJCT09IE5PVElGWV9TVE9QKQorCQkJCQkJCQk9PSBOT1RJRllfU1RPUCkKIAkJCXJldHVybjsKICNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAkJLyoKQEAgLTgwNSw3ICs4MDgsNyBAQAogCQkgKi8KIAkJaWYgKG5taV93YXRjaGRvZ190aWNrKHJlZ3MsIHJlYXNvbikpCiAJCQlyZXR1cm47Ci0JCWlmICghZG9fbm1pX2NhbGxiYWNrKHJlZ3MsIHNtcF9wcm9jZXNzb3JfaWQoKSkpCisJCWlmICghZG9fbm1pX2NhbGxiYWNrKHJlZ3MsIGNwdSkpCiAJCQl1bmtub3duX25taV9lcnJvcihyZWFzb24sIHJlZ3MpOwogI2Vsc2UKIAkJdW5rbm93bl9ubWlfZXJyb3IocmVhc29uLCByZWdzKTsKQEAgLTgxNSw2ICs4MTgsOCBAQAogCX0KIAlpZiAobm90aWZ5X2RpZShESUVfTk1JLCAibm1pIiwgcmVncywgcmVhc29uLCAyLCBTSUdJTlQpID09IE5PVElGWV9TVE9QKQogCQlyZXR1cm47CisKKwkvKiBBSzogZm9sbG93aW5nIGNoZWNrcyBzZWVtIHRvIGJlIGJyb2tlbiBvbiBtb2Rlcm4gY2hpcHNldHMuIEZJWE1FICovCiAJaWYgKHJlYXNvbiAmIDB4ODApCiAJCW1lbV9wYXJpdHlfZXJyb3IocmVhc29uLCByZWdzKTsKIAlpZiAocmVhc29uICYgMHg0MCkKQEAgLTgyNiw4ICs4MzEsNiBAQAogCXJlYXNzZXJ0X25taSgpOwogfQogCi1zdGF0aWMgaW50IGlnbm9yZV9ubWlzOwotCiBub3RyYWNlIF9fa3Byb2JlcyB2b2lkIGRvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogewogCWludCBjcHU7CkBAIC05MTIsNyArOTE1LDcgQEAKIAl0c2stPnRocmVhZC5kZWJ1Z2N0bG1zciA9IDA7CiAKIAlpZiAobm90aWZ5X2RpZShESUVfREVCVUcsICJkZWJ1ZyIsIHJlZ3MsIGNvbmRpdGlvbiwgZXJyb3JfY29kZSwKLQkJCQkJU0lHVFJBUCkgPT0gTk9USUZZX1NUT1ApCisJCQkJCQlTSUdUUkFQKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOwogCS8qIEl0J3Mgc2FmZSB0byBhbGxvdyBpcnEncyBhZnRlciBEUjYgaGFzIGJlZW4gc2F2ZWQgKi8KIAlpZiAocmVncy0+ZmxhZ3MgJiBYODZfRUZMQUdTX0lGKQpAQCAtOTczLDkgKzk3Niw4IEBACiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKmlwKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKLQl1bnNpZ25lZCBzaG9ydCBjd2Q7Ci0JdW5zaWduZWQgc2hvcnQgc3dkOwogCXNpZ2luZm9fdCBpbmZvOworCXVuc2lnbmVkIHNob3J0IGN3ZCwgc3dkOwogCiAJLyoKIAkgKiBTYXZlIHRoZSBpbmZvIGZvciB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgYW5kIGNsZWFyIHRoZSBlcnJvci4KQEAgLTk5NCw3ICs5OTYsNyBAQAogCSAqIEMxIHJlZyB5b3UgbmVlZCBpbiBjYXNlIG9mIGEgc3RhY2sgZmF1bHQsIDB4MDQwIGlzIHRoZSBzdGFjawogCSAqIGZhdWx0IGJpdC4gIFdlIHNob3VsZCBvbmx5IGJlIHRha2luZyBvbmUgZXhjZXB0aW9uIGF0IGEgdGltZSwKIAkgKiBzbyBpZiB0aGlzIGNvbWJpbmF0aW9uIGRvZXNuJ3QgcHJvZHVjZSBhbnkgc2luZ2xlIGV4Y2VwdGlvbiwKLQkgKiB0aGVuIHdlIGhhdmUgYSBiYWQgcHJvZ3JhbSB0aGF0IGlzbid0IHN5bmNyb25pemluZyBpdHMgRlBVIHVzYWdlCisJICogdGhlbiB3ZSBoYXZlIGEgYmFkIHByb2dyYW0gdGhhdCBpc24ndCBzeW5jaHJvbml6aW5nIGl0cyBGUFUgdXNhZ2UKIAkgKiBhbmQgaXQgd2lsbCBzdWZmZXIgdGhlIGNvbnNlcXVlbmNlcyBzaW5jZSB3ZSB3b24ndCBiZSBhYmxlIHRvCiAJICogZnVsbHkgcmVwcm9kdWNlIHRoZSBjb250ZXh0IG9mIHRoZSBleGNlcHRpb24KIAkgKi8KQEAgLTEwMDMsNyArMTAwNSw3IEBACiAJc3dpdGNoIChzd2QgJiB+Y3dkICYgMHgzZikgewogCWNhc2UgMHgwMDA6IC8qIE5vIHVubWFza2VkIGV4Y2VwdGlvbiAqLwogCQlyZXR1cm47Ci0JZGVmYXVsdDogICAgLyogTXVsdGlwbGUgZXhjZXB0aW9ucyAqLworCWRlZmF1bHQ6IC8qIE11bHRpcGxlIGV4Y2VwdGlvbnMgKi8KIAkJYnJlYWs7CiAJY2FzZSAweDAwMTogLyogSW52YWxpZCBPcCAqLwogCQkvKgpAQCAtMTAzOSw4ICsxMDQxLDggQEAKIHN0YXRpYyB2b2lkIHNpbWRfbWF0aF9lcnJvcih2b2lkIF9fdXNlciAqaXApCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwotCXVuc2lnbmVkIHNob3J0IG14Y3NyOwogCXNpZ2luZm9fdCBpbmZvOworCXVuc2lnbmVkIHNob3J0IG14Y3NyOwogCiAJLyoKIAkgKiBTYXZlIHRoZSBpbmZvIGZvciB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgYW5kIGNsZWFyIHRoZSBlcnJvci4KQEAgLTExMTYsNyArMTExOCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgcGF0Y2hfZXNwZml4X2Rlc2ModW5zaWduZWQgbG9uZyB1ZXNwLCB1bnNpZ25lZCBsb25nIGtlc3ApCiB7Ci0Jc3RydWN0IGRlc2Nfc3RydWN0ICpnZHQgPSBfX2dldF9jcHVfdmFyKGdkdF9wYWdlKS5nZHQ7CisJc3RydWN0IGRlc2Nfc3RydWN0ICpnZHQgPSBnZXRfY3B1X2dkdF90YWJsZShzbXBfcHJvY2Vzc29yX2lkKCkpOwogCXVuc2lnbmVkIGxvbmcgYmFzZSA9IChrZXNwIC0gdWVzcCkgJiAtVEhSRUFEX1NJWkU7CiAJdW5zaWduZWQgbG9uZyBuZXdfa2VzcCA9IGtlc3AgLSBiYXNlOwogCXVuc2lnbmVkIGxvbmcgbGltX3BhZ2VzID0gKG5ld19rZXNwIHwgKFRIUkVBRF9TSVpFIC0gMSkpID4+IFBBR0VfU0hJRlQ7CkBAIC0xMTk1LDE5ICsxMTk3LDE2IEBACiAJZWFybHlfaW91bm1hcChwLCA0KTsKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi0JaW5pdF9hcGljX21hcHBpbmdzKCk7Ci0jZW5kaWYKLQlzZXRfdHJhcF9nYXRlKDAsICAmZGl2aWRlX2Vycm9yKTsKLQlzZXRfaW50cl9nYXRlKDEsICAmZGVidWcpOwotCXNldF9pbnRyX2dhdGUoMiwgICZubWkpOwotCXNldF9zeXN0ZW1faW50cl9nYXRlKDMsICZpbnQzKTsgLyogaW50My80IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KLQlzZXRfc3lzdGVtX2dhdGUoNCwgJm92ZXJmbG93KTsKLQlzZXRfdHJhcF9nYXRlKDUsICAmYm91bmRzKTsKLQlzZXRfdHJhcF9nYXRlKDYsICAmaW52YWxpZF9vcCk7Ci0Jc2V0X3RyYXBfZ2F0ZSg3LCAgJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKLQlzZXRfdGFza19nYXRlKDgsICBHRFRfRU5UUllfRE9VQkxFRkFVTFRfVFNTKTsKLQlzZXRfdHJhcF9nYXRlKDksICAmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsKKwlzZXRfdHJhcF9nYXRlKDAsICZkaXZpZGVfZXJyb3IpOworCXNldF9pbnRyX2dhdGUoMSwgJmRlYnVnKTsKKwlzZXRfaW50cl9nYXRlKDIsICZubWkpOworCXNldF9zeXN0ZW1faW50cl9nYXRlKDMsICZpbnQzKTsgLyogaW50MyBjYW4gYmUgY2FsbGVkIGZyb20gYWxsICovCisJc2V0X3N5c3RlbV9nYXRlKDQsICZvdmVyZmxvdyk7IC8qIGludDQgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF90cmFwX2dhdGUoNSwgJmJvdW5kcyk7CisJc2V0X3RyYXBfZ2F0ZSg2LCAmaW52YWxpZF9vcCk7CisJc2V0X3RyYXBfZ2F0ZSg3LCAmZGV2aWNlX25vdF9hdmFpbGFibGUpOworCXNldF90YXNrX2dhdGUoOCwgR0RUX0VOVFJZX0RPVUJMRUZBVUxUX1RTUyk7CisJc2V0X3RyYXBfZ2F0ZSg5LCAmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsKIAlzZXRfdHJhcF9nYXRlKDEwLCAmaW52YWxpZF9UU1MpOwogCXNldF90cmFwX2dhdGUoMTEsICZzZWdtZW50X25vdF9wcmVzZW50KTsKIAlzZXRfdHJhcF9nYXRlKDEyLCAmc3RhY2tfc2VnbWVudCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC90cmFwc182NC5jCmluZGV4IGFkZmY3NmUuLjI2OTZhNjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90cmFwc182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90cmFwc182NC5jCkBAIC0xMCw0OSArMTAsNDkgQEAKICAqICdUcmFwcy5jJyBoYW5kbGVzIGhhcmR3YXJlIHRyYXBzIGFuZCBmYXVsdHMgYWZ0ZXIgd2UgaGF2ZSBzYXZlZCBzb21lCiAgKiBzdGF0ZSBpbiAnZW50cnkuUycuCiAgKi8KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+Ci0jaW5jbHVkZSA8bGludXgvbm1pLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9rcHJvYmVzLmg+Ci0jaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KLSNpbmNsdWRlIDxsaW51eC91bndpbmQuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8bGludXgvYnVnLmg+Ci0jaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvdXRzbmFtZS5oPgotCi0jaW5jbHVkZSA8bWFjaF90cmFwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tkZWJ1Zy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3Vud2luZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYnVnLmg+CisjaW5jbHVkZSA8bGludXgvbm1pLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KIAogI2lmIGRlZmluZWQoQ09ORklHX0VEQUMpCiAjaW5jbHVkZSA8bGludXgvZWRhYy5oPgogI2VuZGlmCiAKLSNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL3Vud2luZC5oPgogI2luY2x1ZGUgPGFzbS9kZXNjLmg+CiAjaW5jbHVkZSA8YXNtL2kzODcuaD4KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL3Vud2luZC5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLSNpbmNsdWRlIDxhc20vcHJvdG8uaD4KICNpbmNsdWRlIDxhc20vbm1pLmg+Ci0jaW5jbHVkZSA8YXNtL3N0YWNrdHJhY2UuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vcGRhLmg+CisKKyNpbmNsdWRlIDxtYWNoX3RyYXBzLmg+CiAKIGFzbWxpbmthZ2Ugdm9pZCBkaXZpZGVfZXJyb3Iodm9pZCk7CiBhc21saW5rYWdlIHZvaWQgZGVidWcodm9pZCk7CkBAIC03MSwxMiArNzEsMTUgQEAKIGFzbWxpbmthZ2Ugdm9pZCBwYWdlX2ZhdWx0KHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIGNvcHJvY2Vzc29yX2Vycm9yKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIHNpbWRfY29wcm9jZXNzb3JfZXJyb3Iodm9pZCk7Ci1hc21saW5rYWdlIHZvaWQgcmVzZXJ2ZWQodm9pZCk7CiBhc21saW5rYWdlIHZvaWQgYWxpZ25tZW50X2NoZWNrKHZvaWQpOwotYXNtbGlua2FnZSB2b2lkIG1hY2hpbmVfY2hlY2sodm9pZCk7CiBhc21saW5rYWdlIHZvaWQgc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyh2b2lkKTsKK2FzbWxpbmthZ2Ugdm9pZCBtYWNoaW5lX2NoZWNrKHZvaWQpOwogCitpbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOworaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDEyOwogc3RhdGljIHVuc2lnbmVkIGludCBjb2RlX2J5dGVzID0gNjQ7CitzdGF0aWMgaW50IGlnbm9yZV9ubWlzOworc3RhdGljIGludCBkaWVfY291bnRlcjsKIAogc3RhdGljIGlubGluZSB2b2lkIGNvbmRpdGlvbmFsX3N0aShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKQEAgLTEwMCwzNCArMTAzLDkgQEAKIAlkZWNfcHJlZW1wdF9jb3VudCgpOwogfQogCi1pbnQga3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gMTI7Ci0KIHZvaWQgcHJpbnRrX2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgcmVsaWFibGUpCiB7Ci0jaWZkZWYgQ09ORklHX0tBTExTWU1TCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwLCBzeW1zaXplOwotCWNvbnN0IGNoYXIgKnN5bW5hbWU7Ci0JY2hhciAqbW9kbmFtZTsKLQljaGFyICpkZWxpbSA9ICI6IjsKLQljaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTl07Ci0JY2hhciByZWxpYWJbNF0gPSAiIjsKLQotCXN5bW5hbWUgPSBrYWxsc3ltc19sb29rdXAoYWRkcmVzcywgJnN5bXNpemUsICZvZmZzZXQsCi0JCQkJCSZtb2RuYW1lLCBuYW1lYnVmKTsKLQlpZiAoIXN5bW5hbWUpIHsKLQkJcHJpbnRrKCIgWzwlMDE2bHg+XVxuIiwgYWRkcmVzcyk7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKCFyZWxpYWJsZSkKLQkJc3RyY3B5KHJlbGlhYiwgIj8gIik7Ci0KLQlpZiAoIW1vZG5hbWUpCi0JCW1vZG5hbWUgPSBkZWxpbSA9ICIiOwotCXByaW50aygiIFs8JTAxNmx4Pl0gJXMlcyVzJXMlcysweCVseC8weCVseFxuIiwKLQkJYWRkcmVzcywgcmVsaWFiLCBkZWxpbSwgbW9kbmFtZSwgZGVsaW0sIHN5bW5hbWUsIG9mZnNldCwgc3ltc2l6ZSk7Ci0jZWxzZQotCXByaW50aygiIFs8JTAxNmx4Pl1cbiIsIGFkZHJlc3MpOwotI2VuZGlmCisJcHJpbnRrKCIgWzwlMDE2bHg+XSAlcyVwU1xuIiwgYWRkcmVzcywgcmVsaWFibGUgPyAiIjogIj8gIiwgKHZvaWQgKikgYWRkcmVzcyk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nICppbl9leGNlcHRpb25fc3RhY2sodW5zaWduZWQgY3B1LCB1bnNpZ25lZCBsb25nIHN0YWNrLApAQCAtMjA0LDggKzE4Miw2IEBACiAJcmV0dXJuIE5VTEw7CiB9CiAKLSNkZWZpbmUgTVNHKHR4dCkgb3BzLT53YXJuaW5nKGRhdGEsIHR4dCkKLQogLyoKICAqIHg4Ni02NCBjYW4gaGF2ZSB1cCB0byB0aHJlZSBrZXJuZWwgc3RhY2tzOiAKICAqIHByb2Nlc3Mgc3RhY2sKQEAgLTIzMiwxMSArMjA4LDExIEBACiAJdW5zaWduZWQgbG9uZyByZXR1cm5fYWRkcmVzczsKIH07CiAKLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHByaW50X2NvbnRleHRfc3RhY2soc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKLQkJCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCwKLQkJCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSwKLQkJCQl1bnNpZ25lZCBsb25nICplbmQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKK3ByaW50X2NvbnRleHRfc3RhY2soc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKKwkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnAsCisJCWNvbnN0IHN0cnVjdCBzdGFja3RyYWNlX29wcyAqb3BzLCB2b2lkICpkYXRhLAorCQl1bnNpZ25lZCBsb25nICplbmQpCiB7CiAJc3RydWN0IHN0YWNrX2ZyYW1lICpmcmFtZSA9IChzdHJ1Y3Qgc3RhY2tfZnJhbWUgKilicDsKIApAQCAtMjU4LDcgKzIzNCw3IEBACiAJcmV0dXJuIGJwOwogfQogCi12b2lkIGR1bXBfdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAordm9pZCBkdW1wX3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAogCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSkKIHsKQEAgLTI2NywzNiArMjQzLDM0IEBACiAJdW5zaWduZWQgdXNlZCA9IDA7CiAJc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbzsKIAotCWlmICghdHNrKQotCQl0c2sgPSBjdXJyZW50OwotCXRpbmZvID0gdGFza190aHJlYWRfaW5mbyh0c2spOworCWlmICghdGFzaykKKwkJdGFzayA9IGN1cnJlbnQ7CiAKIAlpZiAoIXN0YWNrKSB7CiAJCXVuc2lnbmVkIGxvbmcgZHVtbXk7CiAJCXN0YWNrID0gJmR1bW15OwotCQlpZiAodHNrICYmIHRzayAhPSBjdXJyZW50KQotCQkJc3RhY2sgPSAodW5zaWduZWQgbG9uZyAqKXRzay0+dGhyZWFkLnNwOworCQlpZiAodGFzayAmJiB0YXNrICE9IGN1cnJlbnQpCisJCQlzdGFjayA9ICh1bnNpZ25lZCBsb25nICopdGFzay0+dGhyZWFkLnNwOwogCX0KIAogI2lmZGVmIENPTkZJR19GUkFNRV9QT0lOVEVSCiAJaWYgKCFicCkgewotCQlpZiAodHNrID09IGN1cnJlbnQpIHsKKwkJaWYgKHRhc2sgPT0gY3VycmVudCkgewogCQkJLyogR3JhYiBicCByaWdodCBmcm9tIG91ciByZWdzICovCi0JCQlhc20oIm1vdnEgJSVyYnAsICUwIiA6ICI9ciIgKGJwKTopOworCQkJYXNtKCJtb3ZxICUlcmJwLCAlMCIgOiAiPXIiIChicCkgOik7CiAJCX0gZWxzZSB7CiAJCQkvKiBicCBpcyB0aGUgbGFzdCByZWcgcHVzaGVkIGJ5IHN3aXRjaF90byAqLwotCQkJYnAgPSAqKHVuc2lnbmVkIGxvbmcgKikgdHNrLT50aHJlYWQuc3A7CisJCQlicCA9ICoodW5zaWduZWQgbG9uZyAqKSB0YXNrLT50aHJlYWQuc3A7CiAJCX0KIAl9CiAjZW5kaWYKIAotCi0KIAkvKgogCSAqIFByaW50IGZ1bmN0aW9uIGNhbGwgZW50cmllcyBpbiBhbGwgc3RhY2tzLCBzdGFydGluZyBhdCB0aGUKIAkgKiBjdXJyZW50IHN0YWNrIGFkZHJlc3MuIElmIHRoZSBzdGFja3MgY29uc2lzdCBvZiBuZXN0ZWQKIAkgKiBleGNlcHRpb25zCiAJICovCisJdGluZm8gPSB0YXNrX3RocmVhZF9pbmZvKHRhc2spOwogCWZvciAoOzspIHsKIAkJY2hhciAqaWQ7CiAJCXVuc2lnbmVkIGxvbmcgKmVzdGFja19lbmQ7CkBAIC0zODEsMTggKzM1NSwxNyBAQAogCS5hZGRyZXNzID0gcHJpbnRfdHJhY2VfYWRkcmVzcywKIH07CiAKLXZvaWQKLXNob3dfdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nICpzdGFjaywKLQkJdW5zaWduZWQgbG9uZyBicCkKK3ZvaWQgc2hvd190cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCkKIHsKIAlwcmludGsoIlxuQ2FsbCBUcmFjZTpcbiIpOwotCWR1bXBfdHJhY2UodHNrLCByZWdzLCBzdGFjaywgYnAsICZwcmludF90cmFjZV9vcHMsIE5VTEwpOworCWR1bXBfdHJhY2UodGFzaywgcmVncywgc3RhY2ssIGJwLCAmcHJpbnRfdHJhY2Vfb3BzLCBOVUxMKTsKIAlwcmludGsoIlxuIik7CiB9CiAKIHN0YXRpYyB2b2lkCi1fc2hvd19zdGFjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgKnNwLAotCQkJCQkJCXVuc2lnbmVkIGxvbmcgYnApCitfc2hvd19zdGFjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCQl1bnNpZ25lZCBsb25nICpzcCwgdW5zaWduZWQgbG9uZyBicCkKIHsKIAl1bnNpZ25lZCBsb25nICpzdGFjazsKIAlpbnQgaTsKQEAgLTQwNCwxNCArMzc3LDE0IEBACiAJLy8gYmFjayB0cmFjZSBmb3IgdGhpcyBjcHUuCiAKIAlpZiAoc3AgPT0gTlVMTCkgewotCQlpZiAodHNrKQotCQkJc3AgPSAodW5zaWduZWQgbG9uZyAqKXRzay0+dGhyZWFkLnNwOworCQlpZiAodGFzaykKKwkJCXNwID0gKHVuc2lnbmVkIGxvbmcgKil0YXNrLT50aHJlYWQuc3A7CiAJCWVsc2UKIAkJCXNwID0gKHVuc2lnbmVkIGxvbmcgKikmc3A7CiAJfQogCiAJc3RhY2sgPSBzcDsKLQlmb3IoaT0wOyBpIDwga3N0YWNrX2RlcHRoX3RvX3ByaW50OyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwga3N0YWNrX2RlcHRoX3RvX3ByaW50OyBpKyspIHsKIAkJaWYgKHN0YWNrID49IGlycXN0YWNrICYmIHN0YWNrIDw9IGlycXN0YWNrX2VuZCkgewogCQkJaWYgKHN0YWNrID09IGlycXN0YWNrX2VuZCkgewogCQkJCXN0YWNrID0gKHVuc2lnbmVkIGxvbmcgKikgKGlycXN0YWNrX2VuZFstMV0pOwpAQCAtNDI2LDEyICszOTksMTIgQEAKIAkJcHJpbnRrKCIgJTAxNmx4IiwgKnN0YWNrKyspOwogCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKIAl9Ci0Jc2hvd190cmFjZSh0c2ssIHJlZ3MsIHNwLCBicCk7CisJc2hvd190cmFjZSh0YXNrLCByZWdzLCBzcCwgYnApOwogfQogCi12b2lkIHNob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVuc2lnbmVkIGxvbmcgKiBzcCkKK3ZvaWQgc2hvd19zdGFjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGxvbmcgKnNwKQogewotCV9zaG93X3N0YWNrKHRzaywgTlVMTCwgc3AsIDApOworCV9zaG93X3N0YWNrKHRhc2ssIE5VTEwsIHNwLCAwKTsKIH0KIAogLyoKQEAgLTQzOSw4ICs0MTIsOCBAQAogICovCiB2b2lkIGR1bXBfc3RhY2sodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGR1bW15OwogCXVuc2lnbmVkIGxvbmcgYnAgPSAwOworCXVuc2lnbmVkIGxvbmcgc3RhY2s7CiAKICNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgogCWlmICghYnApCkBAIC00NTIsNyArNDI1LDcgQEAKIAkJaW5pdF91dHNuYW1lKCktPnJlbGVhc2UsCiAJCShpbnQpc3RyY3Nwbihpbml0X3V0c25hbWUoKS0+dmVyc2lvbiwgIiAiKSwKIAkJaW5pdF91dHNuYW1lKCktPnZlcnNpb24pOwotCXNob3dfdHJhY2UoTlVMTCwgTlVMTCwgJmR1bW15LCBicCk7CisJc2hvd190cmFjZShOVUxMLCBOVUxMLCAmc3RhY2ssIGJwKTsKIH0KIAogRVhQT1JUX1NZTUJPTChkdW1wX3N0YWNrKTsKQEAgLTQ2MywxMiArNDM2LDggQEAKIAl1bnNpZ25lZCBsb25nIHNwOwogCWNvbnN0IGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpjdXIgPSBjcHVfcGRhKGNwdSktPnBjdXJyZW50OwotCXU4ICppcDsKLQl1bnNpZ25lZCBpbnQgY29kZV9wcm9sb2d1ZSA9IGNvZGVfYnl0ZXMgKiA0MyAvIDY0OwotCXVuc2lnbmVkIGludCBjb2RlX2xlbiA9IGNvZGVfYnl0ZXM7CiAKIAlzcCA9IHJlZ3MtPnNwOwotCWlwID0gKHU4ICopIHJlZ3MtPmlwIC0gY29kZV9wcm9sb2d1ZTsKIAlwcmludGsoIkNQVSAlZCAiLCBjcHUpOwogCV9fc2hvd19yZWdzKHJlZ3MpOwogCXByaW50aygiUHJvY2VzcyAlcyAocGlkOiAlZCwgdGhyZWFkaW5mbyAlcCwgdGFzayAlcClcbiIsCkBAIC00NzksMTUgKzQ0OCwyMSBAQAogCSAqIHRpbWUgb2YgdGhlIGZhdWx0Li4KIAkgKi8KIAlpZiAoIXVzZXJfbW9kZShyZWdzKSkgeworCQl1bnNpZ25lZCBpbnQgY29kZV9wcm9sb2d1ZSA9IGNvZGVfYnl0ZXMgKiA0MyAvIDY0OworCQl1bnNpZ25lZCBpbnQgY29kZV9sZW4gPSBjb2RlX2J5dGVzOwogCQl1bnNpZ25lZCBjaGFyIGM7CisJCXU4ICppcDsKKwogCQlwcmludGsoIlN0YWNrOiAiKTsKIAkJX3Nob3dfc3RhY2soTlVMTCwgcmVncywgKHVuc2lnbmVkIGxvbmcgKilzcCwgcmVncy0+YnApOwogCQlwcmludGsoIlxuIik7CiAKIAkJcHJpbnRrKEtFUk5fRU1FUkcgIkNvZGU6ICIpOworCisJCWlwID0gKHU4ICopcmVncy0+aXAgLSBjb2RlX3Byb2xvZ3VlOwogCQlpZiAoaXAgPCAodTggKilQQUdFX09GRlNFVCB8fCBwcm9iZV9rZXJuZWxfYWRkcmVzcyhpcCwgYykpIHsKIAkJCS8qIHRyeSBzdGFydGluZyBhdCBSSVAgKi8KLQkJCWlwID0gKHU4ICopIHJlZ3MtPmlwOworCQkJaXAgPSAodTggKilyZWdzLT5pcDsKIAkJCWNvZGVfbGVuID0gY29kZV9sZW4gLSBjb2RlX3Byb2xvZ3VlICsgMTsKIAkJfQogCQlmb3IgKGkgPSAwOyBpIDwgY29kZV9sZW47IGkrKywgaXArKykgewpAQCAtNTAzLDcgKzQ3OCw3IEBACiAJCX0KIAl9CiAJcHJpbnRrKCJcbiIpOwotfQkKK30KIAogaW50IGlzX3ZhbGlkX2J1Z2FkZHIodW5zaWduZWQgbG9uZyBpcCkKIHsKQEAgLTU2MSwxMCArNTM2LDkgQEAKIAlkb19leGl0KHNpZ25yKTsKIH0KIAotaW50IF9fa3Byb2JlcyBfX2RpZShjb25zdCBjaGFyICogc3RyLCBzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyKQoraW50IF9fa3Byb2JlcyBfX2RpZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycikKIHsKLQlzdGF0aWMgaW50IGRpZV9jb3VudGVyOwotCXByaW50ayhLRVJOX0VNRVJHICIlczogJTA0bHggWyV1XSAiLCBzdHIsIGVyciAmIDB4ZmZmZiwrK2RpZV9jb3VudGVyKTsKKwlwcmludGsoS0VSTl9FTUVSRyAiJXM6ICUwNGx4IFsldV0gIiwgc3RyLCBlcnIgJiAweGZmZmYsICsrZGllX2NvdW50ZXIpOwogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAJcHJpbnRrKCJQUkVFTVBUICIpOwogI2VuZGlmCkBAIC01NzUsOCArNTQ5LDEwIEBACiAJcHJpbnRrKCJERUJVR19QQUdFQUxMT0MiKTsKICNlbmRpZgogCXByaW50aygiXG4iKTsKLQlpZiAobm90aWZ5X2RpZShESUVfT09QUywgc3RyLCByZWdzLCBlcnIsIGN1cnJlbnQtPnRocmVhZC50cmFwX25vLCBTSUdTRUdWKSA9PSBOT1RJRllfU1RPUCkKKwlpZiAobm90aWZ5X2RpZShESUVfT09QUywgc3RyLCByZWdzLCBlcnIsCisJCQljdXJyZW50LT50aHJlYWQudHJhcF9ubywgU0lHU0VHVikgPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybiAxOworCiAJc2hvd19yZWdpc3RlcnMocmVncyk7CiAJYWRkX3RhaW50KFRBSU5UX0RJRSk7CiAJLyogRXhlY3V0aXZlIHN1bW1hcnkgaW4gY2FzZSB0aGUgb29wcyBzY3JvbGxlZCBhd2F5ICovCkBAIC01ODgsNyArNTY0LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBkaWUoY29uc3QgY2hhciAqIHN0ciwgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycikKK3ZvaWQgZGllKGNvbnN0IGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBvb3BzX2JlZ2luKCk7CiAKQEAgLTYwNSw4ICs1ODEsNyBAQAogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIHN0ciwgcmVncywgMCwgMiwgU0lHSU5UKSA9PQotCSAgICBOT1RJRllfU1RPUCkKKwlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIHN0ciwgcmVncywgMCwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOwogCiAJZmxhZ3MgPSBvb3BzX2JlZ2luKCk7CkBAIC02MTQsNyArNTg5LDkgQEAKIAkgKiBXZSBhcmUgaW4gdHJvdWJsZSBhbnl3YXksIGxldHMgYXQgbGVhc3QgdHJ5CiAJICogdG8gZ2V0IGEgbWVzc2FnZSBvdXQuCiAJICovCi0JcHJpbnRrKHN0ciwgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwlwcmludGsoS0VSTl9FTUVSRyAiJXMiLCBzdHIpOworCXByaW50aygiIG9uIENQVSVkLCBpcCAlMDhseCwgcmVnaXN0ZXJzOlxuIiwKKwkJc21wX3Byb2Nlc3Nvcl9pZCgpLCByZWdzLT5pcCk7CiAJc2hvd19yZWdpc3RlcnMocmVncyk7CiAJaWYgKGtleGVjX3Nob3VsZF9jcmFzaChjdXJyZW50KSkKIAkJY3Jhc2hfa2V4ZWMocmVncyk7CkBAIC02MjYsNDQgKzYwMyw0NCBAQAogCWRvX2V4aXQoU0lHQlVTKTsKIH0KIAotc3RhdGljIHZvaWQgX19rcHJvYmVzIGRvX3RyYXAoaW50IHRyYXBuciwgaW50IHNpZ25yLCBjaGFyICpzdHIsCi0JCQkgICAgICBzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSwKLQkJCSAgICAgIHNpZ2luZm9fdCAqaW5mbykKK3N0YXRpYyB2b2lkIF9fa3Byb2JlcworZG9fdHJhcChpbnQgdHJhcG5yLCBpbnQgc2lnbnIsIGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCisJbG9uZyBlcnJvcl9jb2RlLCBzaWdpbmZvX3QgKmluZm8pCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OwogCi0JaWYgKHVzZXJfbW9kZShyZWdzKSkgewotCQkvKgotCQkgKiBXZSB3YW50IGVycm9yX2NvZGUgYW5kIHRyYXBfbm8gc2V0IGZvciB1c2Vyc3BhY2UKLQkJICogZmF1bHRzIGFuZCBrZXJuZWxzcGFjZSBmYXVsdHMgd2hpY2ggcmVzdWx0IGluCi0JCSAqIGRpZSgpLCBidXQgbm90IGtlcm5lbHNwYWNlIGZhdWx0cyB3aGljaCBhcmUgZml4ZWQKLQkJICogdXAuICBkaWUoKSBnaXZlcyB0aGUgcHJvY2VzcyBubyBjaGFuY2UgdG8gaGFuZGxlCi0JCSAqIHRoZSBzaWduYWwgYW5kIG5vdGljZSB0aGUga2VybmVsIGZhdWx0IGluZm9ybWF0aW9uLAotCQkgKiBzbyB0aGF0IHdvbid0IHJlc3VsdCBpbiBwb2xsdXRpbmcgdGhlIGluZm9ybWF0aW9uCi0JCSAqIGFib3V0IHByZXZpb3VzbHkgcXVldWVkLCBidXQgbm90IHlldCBkZWxpdmVyZWQsCi0JCSAqIGZhdWx0cy4gIFNlZSBhbHNvIGRvX2dlbmVyYWxfcHJvdGVjdGlvbiBiZWxvdy4KLQkJICovCi0JCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOwotCQl0c2stPnRocmVhZC50cmFwX25vID0gdHJhcG5yOworCWlmICghdXNlcl9tb2RlKHJlZ3MpKQorCQlnb3RvIGtlcm5lbF90cmFwOwogCi0JCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBzaWducikgJiYKLQkJICAgIHByaW50a19yYXRlbGltaXQoKSkgewotCQkJcHJpbnRrKEtFUk5fSU5GTwotCQkJICAgICAgICIlc1slZF0gdHJhcCAlcyBpcDolbHggc3A6JWx4IGVycm9yOiVseCIsCi0JCQkgICAgICAgdHNrLT5jb21tLCB0c2stPnBpZCwgc3RyLAotCQkJICAgICAgIHJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7Ci0JCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKLQkJCXByaW50aygiXG4iKTsKLQkJfQorCS8qCisJICogV2Ugd2FudCBlcnJvcl9jb2RlIGFuZCB0cmFwX25vIHNldCBmb3IgdXNlcnNwYWNlIGZhdWx0cyBhbmQKKwkgKiBrZXJuZWxzcGFjZSBmYXVsdHMgd2hpY2ggcmVzdWx0IGluIGRpZSgpLCBidXQgbm90CisJICoga2VybmVsc3BhY2UgZmF1bHRzIHdoaWNoIGFyZSBmaXhlZCB1cC4gIGRpZSgpIGdpdmVzIHRoZQorCSAqIHByb2Nlc3Mgbm8gY2hhbmNlIHRvIGhhbmRsZSB0aGUgc2lnbmFsIGFuZCBub3RpY2UgdGhlCisJICoga2VybmVsIGZhdWx0IGluZm9ybWF0aW9uLCBzbyB0aGF0IHdvbid0IHJlc3VsdCBpbiBwb2xsdXRpbmcKKwkgKiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgcHJldmlvdXNseSBxdWV1ZWQsIGJ1dCBub3QgeWV0CisJICogZGVsaXZlcmVkLCBmYXVsdHMuICBTZWUgYWxzbyBkb19nZW5lcmFsX3Byb3RlY3Rpb24gYmVsb3cuCisJICovCisJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7CisJdHNrLT50aHJlYWQudHJhcF9ubyA9IHRyYXBucjsKIAotCQlpZiAoaW5mbykKLQkJCWZvcmNlX3NpZ19pbmZvKHNpZ25yLCBpbmZvLCB0c2spOwotCQllbHNlCi0JCQlmb3JjZV9zaWcoc2lnbnIsIHRzayk7Ci0JCXJldHVybjsKKwlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKHRzaywgc2lnbnIpICYmCisJICAgIHByaW50a19yYXRlbGltaXQoKSkgeworCQlwcmludGsoS0VSTl9JTkZPCisJCSAgICAgICAiJXNbJWRdIHRyYXAgJXMgaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAorCQkgICAgICAgdHNrLT5jb21tLCB0c2stPnBpZCwgc3RyLAorCQkgICAgICAgcmVncy0+aXAsIHJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKKwkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7CisJCXByaW50aygiXG4iKTsKIAl9CiAKKwlpZiAoaW5mbykKKwkJZm9yY2Vfc2lnX2luZm8oc2lnbnIsIGluZm8sIHRzayk7CisJZWxzZQorCQlmb3JjZV9zaWcoc2lnbnIsIHRzayk7CisJcmV0dXJuOwogCitrZXJuZWxfdHJhcDoKIAlpZiAoIWZpeHVwX2V4Y2VwdGlvbihyZWdzKSkgewogCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKIAkJdHNrLT50aHJlYWQudHJhcF9ubyA9IHRyYXBucjsKQEAgLTY3Myw0MSArNjUwLDM5IEBACiB9CiAKICNkZWZpbmUgRE9fRVJST1IodHJhcG5yLCBzaWduciwgc3RyLCBuYW1lKSBcCi1hc21saW5rYWdlIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKSBcCi17IFwKLQlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKSBcCi0JCQkJCQkJPT0gTk9USUZZX1NUT1ApIFwKLQkJcmV0dXJuOyBcCithc21saW5rYWdlIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQlcCit7CQkJCQkJCQkJXAorCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAorCQlyZXR1cm47CQkJCQkJCVwKIAljb25kaXRpb25hbF9zdGkocmVncyk7CQkJCQkJXAotCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCBOVUxMKTsgXAorCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCBOVUxMKTsJCVwKIH0KIAotI2RlZmluZSBET19FUlJPUl9JTkZPKHRyYXBuciwgc2lnbnIsIHN0ciwgbmFtZSwgc2ljb2RlLCBzaWFkZHIpIFwKLWFzbWxpbmthZ2Ugdm9pZCBkb18jI25hbWUoc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUpIFwKLXsgXAotCXNpZ2luZm9fdCBpbmZvOyBcCi0JaW5mby5zaV9zaWdubyA9IHNpZ25yOyBcCi0JaW5mby5zaV9lcnJubyA9IDA7IFwKLQlpbmZvLnNpX2NvZGUgPSBzaWNvZGU7IFwKLQlpbmZvLnNpX2FkZHIgPSAodm9pZCBfX3VzZXIgKilzaWFkZHI7IFwKLQl0cmFjZV9oYXJkaXJxc19maXh1cCgpOyBcCi0JaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikgXAotCQkJCQkJCT09IE5PVElGWV9TVE9QKSBcCi0JCXJldHVybjsgXAorI2RlZmluZSBET19FUlJPUl9JTkZPKHRyYXBuciwgc2lnbnIsIHN0ciwgbmFtZSwgc2ljb2RlLCBzaWFkZHIpCQlcCithc21saW5rYWdlIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQlcCit7CQkJCQkJCQkJXAorCXNpZ2luZm9fdCBpbmZvOwkJCQkJCQlcCisJaW5mby5zaV9zaWdubyA9IHNpZ25yOwkJCQkJCVwKKwlpbmZvLnNpX2Vycm5vID0gMDsJCQkJCQlcCisJaW5mby5zaV9jb2RlID0gc2ljb2RlOwkJCQkJCVwKKwlpbmZvLnNpX2FkZHIgPSAodm9pZCBfX3VzZXIgKilzaWFkZHI7CQkJCVwKKwl0cmFjZV9oYXJkaXJxc19maXh1cCgpOwkJCQkJCVwKKwlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKKwkJcmV0dXJuOwkJCQkJCQlcCiAJY29uZGl0aW9uYWxfc3RpKHJlZ3MpOwkJCQkJCVwKLQlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgJmluZm8pOyBcCisJZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsICZpbmZvKTsJCVwKIH0KIAotRE9fRVJST1JfSU5GTyggMCwgU0lHRlBFLCAgImRpdmlkZSBlcnJvciIsIGRpdmlkZV9lcnJvciwgRlBFX0lOVERJViwgcmVncy0+aXApCi1ET19FUlJPUiggNCwgU0lHU0VHViwgIm92ZXJmbG93Iiwgb3ZlcmZsb3cpCi1ET19FUlJPUiggNSwgU0lHU0VHViwgImJvdW5kcyIsIGJvdW5kcykKLURPX0VSUk9SX0lORk8oIDYsIFNJR0lMTCwgICJpbnZhbGlkIG9wY29kZSIsIGludmFsaWRfb3AsIElMTF9JTExPUE4sIHJlZ3MtPmlwKQotRE9fRVJST1IoIDcsIFNJR1NFR1YsICJkZXZpY2Ugbm90IGF2YWlsYWJsZSIsIGRldmljZV9ub3RfYXZhaWxhYmxlKQotRE9fRVJST1IoIDksIFNJR0ZQRSwgICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJydW4iLCBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pCitET19FUlJPUl9JTkZPKDAsIFNJR0ZQRSwgImRpdmlkZSBlcnJvciIsIGRpdmlkZV9lcnJvciwgRlBFX0lOVERJViwgcmVncy0+aXApCitET19FUlJPUig0LCBTSUdTRUdWLCAib3ZlcmZsb3ciLCBvdmVyZmxvdykKK0RPX0VSUk9SKDUsIFNJR1NFR1YsICJib3VuZHMiLCBib3VuZHMpCitET19FUlJPUl9JTkZPKDYsIFNJR0lMTCwgImludmFsaWQgb3Bjb2RlIiwgaW52YWxpZF9vcCwgSUxMX0lMTE9QTiwgcmVncy0+aXApCitET19FUlJPUig5LCBTSUdGUEUsICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJydW4iLCBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pCiBET19FUlJPUigxMCwgU0lHU0VHViwgImludmFsaWQgVFNTIiwgaW52YWxpZF9UU1MpCi1ET19FUlJPUigxMSwgU0lHQlVTLCAgInNlZ21lbnQgbm90IHByZXNlbnQiLCBzZWdtZW50X25vdF9wcmVzZW50KQorRE9fRVJST1IoMTEsIFNJR0JVUywgInNlZ21lbnQgbm90IHByZXNlbnQiLCBzZWdtZW50X25vdF9wcmVzZW50KQogRE9fRVJST1JfSU5GTygxNywgU0lHQlVTLCAiYWxpZ25tZW50IGNoZWNrIiwgYWxpZ25tZW50X2NoZWNrLCBCVVNfQURSQUxOLCAwKQotRE9fRVJST1IoMTgsIFNJR1NFR1YsICJyZXNlcnZlZCIsIHJlc2VydmVkKQogCiAvKiBSdW5zIG9uIElTVCBzdGFjayAqLwogYXNtbGlua2FnZSB2b2lkIGRvX3N0YWNrX3NlZ21lbnQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKQEAgLTczNywzMSArNzEyLDM0IEBACiAJCWRpZShzdHIsIHJlZ3MsIGVycm9yX2NvZGUpOwogfQogCi1hc21saW5rYWdlIHZvaWQgX19rcHJvYmVzIGRvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsCi0JCQkJCQlsb25nIGVycm9yX2NvZGUpCithc21saW5rYWdlIHZvaWQgX19rcHJvYmVzCitkb19nZW5lcmFsX3Byb3RlY3Rpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0c2s7CiAKIAljb25kaXRpb25hbF9zdGkocmVncyk7CiAKLQlpZiAodXNlcl9tb2RlKHJlZ3MpKSB7Ci0JCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOwotCQl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CisJdHNrID0gY3VycmVudDsKKwlpZiAoIXVzZXJfbW9kZShyZWdzKSkKKwkJZ290byBncF9pbl9rZXJuZWw7CiAKLQkJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIFNJR1NFR1YpICYmCi0JCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKLQkJCXByaW50ayhLRVJOX0lORk8KLQkJICAgICAgICIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKLQkJCSAgICAgICB0c2stPmNvbW0sIHRzay0+cGlkLAotCQkJICAgICAgIHJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7Ci0JCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKLQkJCXByaW50aygiXG4iKTsKLQkJfQorCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOworCXRzay0+dGhyZWFkLnRyYXBfbm8gPSAxMzsKIAotCQlmb3JjZV9zaWcoU0lHU0VHViwgdHNrKTsKLQkJcmV0dXJuOwotCX0gCisJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIFNJR1NFR1YpICYmCisJCQlwcmludGtfcmF0ZWxpbWl0KCkpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkJIiVzWyVkXSBnZW5lcmFsIHByb3RlY3Rpb24gaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAorCQkJdHNrLT5jb21tLCB0c2stPnBpZCwKKwkJCXJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7CisJCXByaW50X3ZtYV9hZGRyKCIgaW4gIiwgcmVncy0+aXApOworCQlwcmludGsoIlxuIik7CisJfQogCisJZm9yY2Vfc2lnKFNJR1NFR1YsIHRzayk7CisJcmV0dXJuOworCitncF9pbl9rZXJuZWw6CiAJaWYgKGZpeHVwX2V4Y2VwdGlvbihyZWdzKSkKIAkJcmV0dXJuOwogCkBAIC03NzQsMTQgKzc1MiwxNCBAQAogfQogCiBzdGF0aWMgbm90cmFjZSBfX2twcm9iZXMgdm9pZAotbWVtX3Bhcml0eV9lcnJvcih1bnNpZ25lZCBjaGFyIHJlYXNvbiwgc3RydWN0IHB0X3JlZ3MgKiByZWdzKQorbWVtX3Bhcml0eV9lcnJvcih1bnNpZ25lZCBjaGFyIHJlYXNvbiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJcHJpbnRrKEtFUk5fRU1FUkcgIlVoaHVoLiBOTUkgcmVjZWl2ZWQgZm9yIHVua25vd24gcmVhc29uICUwMnguXG4iLAogCQlyZWFzb24pOwogCXByaW50ayhLRVJOX0VNRVJHICJZb3UgaGF2ZSBzb21lIGhhcmR3YXJlIHByb2JsZW0sIGxpa2VseSBvbiB0aGUgUENJIGJ1cy5cbiIpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRURBQykKLQlpZihlZGFjX2hhbmRsZXJfc2V0KCkpIHsKKwlpZiAoZWRhY19oYW5kbGVyX3NldCgpKSB7CiAJCWVkYWNfYXRvbWljX2Fzc2VydF9lcnJvcigpOwogCQlyZXR1cm47CiAJfQpAQCAtNzk4LDcgKzc3Niw3IEBACiB9CiAKIHN0YXRpYyBub3RyYWNlIF9fa3Byb2JlcyB2b2lkCi1pb19jaGVja19lcnJvcih1bnNpZ25lZCBjaGFyIHJlYXNvbiwgc3RydWN0IHB0X3JlZ3MgKiByZWdzKQoraW9fY2hlY2tfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXByaW50aygiTk1JOiBJT0NLIGVycm9yIChkZWJ1ZyBpbnRlcnJ1cHQ/KVxuIik7CiAJc2hvd19yZWdpc3RlcnMocmVncyk7CkBAIC04MjgsMTQgKzgwNiwxNCBAQAogCiAvKiBSdW5zIG9uIElTVCBzdGFjay4gVGhpcyBjb2RlIG11c3Qga2VlcCBpbnRlcnJ1cHRzIG9mZiBhbGwgdGhlIHRpbWUuCiAgICBOZXN0ZWQgTk1JcyBhcmUgcHJldmVudGVkIGJ5IHRoZSBDUFUuICovCi1hc21saW5rYWdlIG5vdHJhY2UgIF9fa3Byb2JlcyB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzKQorYXNtbGlua2FnZSBub3RyYWNlIF9fa3Byb2JlcyB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gMDsKIAlpbnQgY3B1OwogCiAJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCi0JLyogT25seSB0aGUgQlNQIGdldHMgZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW0uICAqLworCS8qIE9ubHkgdGhlIEJTUCBnZXRzIGV4dGVybmFsIE5NSXMgZnJvbSB0aGUgc3lzdGVtLiAqLwogCWlmICghY3B1KQogCQlyZWFzb24gPSBnZXRfbm1pX3JlYXNvbigpOwogCkBAIC04NDcsMzIgKzgyNSw1NyBAQAogCQkgKiBPaywgc28gdGhpcyBpcyBub25lIG9mIHRoZSBkb2N1bWVudGVkIE5NSSBzb3VyY2VzLAogCQkgKiBzbyBpdCBtdXN0IGJlIHRoZSBOTUkgd2F0Y2hkb2cuCiAJCSAqLwotCQlpZiAobm1pX3dhdGNoZG9nX3RpY2socmVncyxyZWFzb24pKQorCQlpZiAobm1pX3dhdGNoZG9nX3RpY2socmVncywgcmVhc29uKSkKIAkJCXJldHVybjsKLQkJaWYgKCFkb19ubWlfY2FsbGJhY2socmVncyxjcHUpKQorCQlpZiAoIWRvX25taV9jYWxsYmFjayhyZWdzLCBjcHUpKQogCQkJdW5rbm93bl9ubWlfZXJyb3IocmVhc29uLCByZWdzKTsKIAogCQlyZXR1cm47CiAJfQogCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkgPT0gTk9USUZZX1NUT1ApCi0JCXJldHVybjsgCisJCXJldHVybjsKIAogCS8qIEFLOiBmb2xsb3dpbmcgY2hlY2tzIHNlZW0gdG8gYmUgYnJva2VuIG9uIG1vZGVybiBjaGlwc2V0cy4gRklYTUUgKi8KLQogCWlmIChyZWFzb24gJiAweDgwKQogCQltZW1fcGFyaXR5X2Vycm9yKHJlYXNvbiwgcmVncyk7CiAJaWYgKHJlYXNvbiAmIDB4NDApCiAJCWlvX2NoZWNrX2Vycm9yKHJlYXNvbiwgcmVncyk7CiB9CiAKK2FzbWxpbmthZ2Ugbm90cmFjZSBfX2twcm9iZXMgdm9pZAorZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCit7CisJbm1pX2VudGVyKCk7CisKKwlhZGRfcGRhKF9fbm1pX2NvdW50LCAxKTsKKworCWlmICghaWdub3JlX25taXMpCisJCWRlZmF1bHRfZG9fbm1pKHJlZ3MpOworCisJbm1pX2V4aXQoKTsKK30KKwordm9pZCBzdG9wX25taSh2b2lkKQoreworCWFjcGlfbm1pX2Rpc2FibGUoKTsKKwlpZ25vcmVfbm1pcysrOworfQorCit2b2lkIHJlc3RhcnRfbm1pKHZvaWQpCit7CisJaWdub3JlX25taXMtLTsKKwlhY3BpX25taV9lbmFibGUoKTsKK30KKwogLyogcnVucyBvbiBJU1Qgc3RhY2suICovCi1hc21saW5rYWdlIHZvaWQgX19rcHJvYmVzIGRvX2ludDMoc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUpCithc21saW5rYWdlIHZvaWQgX19rcHJvYmVzIGRvX2ludDMoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKIAl0cmFjZV9oYXJkaXJxc19maXh1cCgpOwogCi0JaWYgKG5vdGlmeV9kaWUoRElFX0lOVDMsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgMywgU0lHVFJBUCkgPT0gTk9USUZZX1NUT1ApIHsKKwlpZiAobm90aWZ5X2RpZShESUVfSU5UMywgImludDMiLCByZWdzLCBlcnJvcl9jb2RlLCAzLCBTSUdUUkFQKQorCQkJPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybjsKLQl9CisKIAlwcmVlbXB0X2NvbmRpdGlvbmFsX3N0aShyZWdzKTsKIAlkb190cmFwKDMsIFNJR1RSQVAsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CiAJcHJlZW1wdF9jb25kaXRpb25hbF9jbGkocmVncyk7CkBAIC05MDMsOCArOTA2LDggQEAKIGFzbWxpbmthZ2Ugdm9pZCBfX2twcm9iZXMgZG9fZGVidWcoc3RydWN0IHB0X3JlZ3MgKiByZWdzLAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29kZSkKIHsKLQl1bnNpZ25lZCBsb25nIGNvbmRpdGlvbjsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7CisJdW5zaWduZWQgbG9uZyBjb25kaXRpb247CiAJc2lnaW5mb190IGluZm87CiAKIAl0cmFjZV9oYXJkaXJxc19maXh1cCgpOwpAQCAtOTI1LDIxICs5MjgsMTkgQEAKIAogCS8qIE1hc2sgb3V0IHNwdXJpb3VzIGRlYnVnIHRyYXBzIGR1ZSB0byBsYXp5IERSNyBzZXR0aW5nICovCiAJaWYgKGNvbmRpdGlvbiAmIChEUl9UUkFQMHxEUl9UUkFQMXxEUl9UUkFQMnxEUl9UUkFQMykpIHsKLQkJaWYgKCF0c2stPnRocmVhZC5kZWJ1Z3JlZzcpIHsgCisJCWlmICghdHNrLT50aHJlYWQuZGVidWdyZWc3KQogCQkJZ290byBjbGVhcl9kcjc7Ci0JCX0KIAl9CiAKIAl0c2stPnRocmVhZC5kZWJ1Z3JlZzYgPSBjb25kaXRpb247CiAKLQogCS8qCiAJICogU2luZ2xlLXN0ZXBwaW5nIHRocm91Z2ggVEY6IG1ha2Ugc3VyZSB3ZSBpZ25vcmUgYW55IGV2ZW50cyBpbgogCSAqIGtlcm5lbCBzcGFjZSAoYnV0IHJlLWVuYWJsZSBURiB3aGVuIHJldHVybmluZyB0byB1c2VyIG1vZGUpLgogCSAqLwogCWlmIChjb25kaXRpb24gJiBEUl9TVEVQKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF1c2VyX21vZGUocmVncykpCi0gICAgICAgICAgICAgICAgICAgICAgIGdvdG8gY2xlYXJfVEZfcmVlbmFibGU7CisJCWlmICghdXNlcl9tb2RlKHJlZ3MpKQorCQkJZ290byBjbGVhcl9URl9yZWVuYWJsZTsKIAl9CiAKIAkvKiBPaywgZmluYWxseSBzb21ldGhpbmcgd2UgY2FuIGhhbmRsZSAqLwpAQCAtOTUyLDcgKzk1Myw3IEBACiAJZm9yY2Vfc2lnX2luZm8oU0lHVFJBUCwgJmluZm8sIHRzayk7CiAKIGNsZWFyX2RyNzoKLQlzZXRfZGVidWdyZWcoMFVMLCA3KTsKKwlzZXRfZGVidWdyZWcoMCwgNyk7CiAJcHJlZW1wdF9jb25kaXRpb25hbF9jbGkocmVncyk7CiAJcmV0dXJuOwogCkBAIC05NjAsNiArOTYxLDcgQEAKIAlzZXRfdHNrX3RocmVhZF9mbGFnKHRzaywgVElGX1NJTkdMRVNURVApOwogCXJlZ3MtPmZsYWdzICY9IH5YODZfRUZMQUdTX1RGOwogCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOworCXJldHVybjsKIH0KIAogc3RhdGljIGludCBrZXJuZWxfbWF0aF9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hhciAqc3RyLCBpbnQgdHJhcG5yKQpAQCAtOTgyLDcgKzk4NCw3IEBACiBhc21saW5rYWdlIHZvaWQgZG9fY29wcm9jZXNzb3JfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJdm9pZCBfX3VzZXIgKmlwID0gKHZvaWQgX191c2VyICopKHJlZ3MtPmlwKTsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKiB0YXNrOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKIAlzaWdpbmZvX3QgaW5mbzsKIAl1bnNpZ25lZCBzaG9ydCBjd2QsIHN3ZDsKIApAQCAtMTAxNSwzMCArMTAxNywzMCBAQAogCWN3ZCA9IGdldF9mcHVfY3dkKHRhc2spOwogCXN3ZCA9IGdldF9mcHVfc3dkKHRhc2spOwogCXN3aXRjaCAoc3dkICYgfmN3ZCAmIDB4M2YpIHsKLQkJY2FzZSAweDAwMDoKLQkJZGVmYXVsdDoKLQkJCWJyZWFrOwotCQljYXNlIDB4MDAxOiAvKiBJbnZhbGlkIE9wICovCi0JCQkvKgotCQkJICogc3dkICYgMHgyNDAgPT0gMHgwNDA6IFN0YWNrIFVuZGVyZmxvdwotCQkJICogc3dkICYgMHgyNDAgPT0gMHgyNDA6IFN0YWNrIE92ZXJmbG93Ci0JCQkgKiBVc2VyIG11c3QgY2xlYXIgdGhlIFNGIGJpdCAoMHg0MCkgaWYgc2V0Ci0JCQkgKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRJTlY7Ci0JCQlicmVhazsKLQkJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KLQkJY2FzZSAweDAxMDogLyogVW5kZXJmbG93ICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUVU5EOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDQ6IC8qIFplcm8gRGl2aWRlICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxURElWOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDg6IC8qIE92ZXJmbG93ICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUT1ZGOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMjA6IC8qIFByZWNpc2lvbiAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFJFUzsKLQkJCWJyZWFrOworCWNhc2UgMHgwMDA6IC8qIE5vIHVubWFza2VkIGV4Y2VwdGlvbiAqLworCWRlZmF1bHQ6IC8qIE11bHRpcGxlIGV4Y2VwdGlvbnMgKi8KKwkJYnJlYWs7CisJY2FzZSAweDAwMTogLyogSW52YWxpZCBPcCAqLworCQkvKgorCQkgKiBzd2QgJiAweDI0MCA9PSAweDA0MDogU3RhY2sgVW5kZXJmbG93CisJCSAqIHN3ZCAmIDB4MjQwID09IDB4MjQwOiBTdGFjayBPdmVyZmxvdworCQkgKiBVc2VyIG11c3QgY2xlYXIgdGhlIFNGIGJpdCAoMHg0MCkgaWYgc2V0CisJCSAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOworCQlicmVhazsKKwljYXNlIDB4MDAyOiAvKiBEZW5vcm1hbGl6ZSAqLworCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUVU5EOworCQlicmVhazsKKwljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxURElWOworCQlicmVhazsKKwljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUT1ZGOworCQlicmVhazsKKwljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFJFUzsKKwkJYnJlYWs7CiAJfQogCWZvcmNlX3NpZ19pbmZvKFNJR0ZQRSwgJmluZm8sIHRhc2spOwogfQpAQCAtMTA1MSw3ICsxMDUzLDcgQEAKIGFzbWxpbmthZ2Ugdm9pZCBkb19zaW1kX2NvcHJvY2Vzc29yX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXZvaWQgX191c2VyICppcCA9ICh2b2lkIF9fdXNlciAqKShyZWdzLT5pcCk7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICogdGFzazsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAJc2lnaW5mb190IGluZm87CiAJdW5zaWduZWQgc2hvcnQgbXhjc3I7CiAKQEAgLTEwNzksMjUgKzEwODEsMjUgQEAKIAkgKi8KIAlteGNzciA9IGdldF9mcHVfbXhjc3IodGFzayk7CiAJc3dpdGNoICh+KChteGNzciAmIDB4MWY4MCkgPj4gNykgJiAobXhjc3IgJiAweDNmKSkgewotCQljYXNlIDB4MDAwOgotCQlkZWZhdWx0OgotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRJTlY7Ci0JCQlicmVhazsKLQkJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KLQkJY2FzZSAweDAxMDogLyogVW5kZXJmbG93ICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUVU5EOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDQ6IC8qIFplcm8gRGl2aWRlICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxURElWOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDg6IC8qIE92ZXJmbG93ICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUT1ZGOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMjA6IC8qIFByZWNpc2lvbiAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFJFUzsKLQkJCWJyZWFrOworCWNhc2UgMHgwMDA6CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJY2FzZSAweDAwMTogLyogSW52YWxpZCBPcCAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOworCQlicmVhazsKKwljYXNlIDB4MDAyOiAvKiBEZW5vcm1hbGl6ZSAqLworCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUVU5EOworCQlicmVhazsKKwljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxURElWOworCQlicmVhazsKKwljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLworCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUT1ZGOworCQlicmVhazsKKwljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFJFUzsKKwkJYnJlYWs7CiAJfQogCWZvcmNlX3NpZ19pbmZvKFNJR0ZQRSwgJmluZm8sIHRhc2spOwogfQpAQCAtMTExNSw3ICsxMTE3LDcgQEAKIH0KIAogLyoKLSAqICAnbWF0aF9zdGF0ZV9yZXN0b3JlKCknIHNhdmVzIHRoZSBjdXJyZW50IG1hdGggaW5mb3JtYXRpb24gaW4gdGhlCisgKiAnbWF0aF9zdGF0ZV9yZXN0b3JlKCknIHNhdmVzIHRoZSBjdXJyZW50IG1hdGggaW5mb3JtYXRpb24gaW4gdGhlCiAgKiBvbGQgbWF0aCBzdGF0ZSBhcnJheSwgYW5kIGdldHMgdGhlIG5ldyBvbmVzIGZyb20gdGhlIGN1cnJlbnQgdGFzawogICoKICAqIENhcmVmdWwuLiBUaGVyZSBhcmUgcHJvYmxlbXMgd2l0aCBJQk0tZGVzaWduZWQgSVJRMTMgYmVoYXZpb3VyLgpAQCAtMTE0MCw3ICsxMTQyLDcgQEAKIAkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAl9CiAKLQljbHRzKCk7CQkJLyogQWxsb3cgbWF0aHMgb3BzIChvciB3ZSByZWN1cnNlKSAqLworCWNsdHMoKTsJCQkJLyogQWxsb3cgbWF0aHMgb3BzIChvciB3ZSByZWN1cnNlKSAqLwogCXJlc3RvcmVfZnB1X2NoZWNraW5nKCZtZS0+dGhyZWFkLnhzdGF0ZS0+ZnhzYXZlKTsKIAl0YXNrX3RocmVhZF9pbmZvKG1lKS0+c3RhdHVzIHw9IFRTX1VTRURGUFU7CiAJbWUtPmZwdV9jb3VudGVyKys7CkBAIC0xMTQ5LDY0ICsxMTUxLDYxIEBACiAKIHZvaWQgX19pbml0IHRyYXBfaW5pdCh2b2lkKQogewotCXNldF9pbnRyX2dhdGUoMCwmZGl2aWRlX2Vycm9yKTsKLQlzZXRfaW50cl9nYXRlX2lzdCgxLCZkZWJ1ZyxERUJVR19TVEFDSyk7Ci0Jc2V0X2ludHJfZ2F0ZV9pc3QoMiwmbm1pLE5NSV9TVEFDSyk7Ci0gCXNldF9zeXN0ZW1fZ2F0ZV9pc3QoMywmaW50MyxERUJVR19TVEFDSyk7IC8qIGludDMgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLwotCXNldF9zeXN0ZW1fZ2F0ZSg0LCZvdmVyZmxvdyk7CS8qIGludDQgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLwotCXNldF9pbnRyX2dhdGUoNSwmYm91bmRzKTsKLQlzZXRfaW50cl9nYXRlKDYsJmludmFsaWRfb3ApOwotCXNldF9pbnRyX2dhdGUoNywmZGV2aWNlX25vdF9hdmFpbGFibGUpOwotCXNldF9pbnRyX2dhdGVfaXN0KDgsJmRvdWJsZV9mYXVsdCwgRE9VQkxFRkFVTFRfU1RBQ0spOwotCXNldF9pbnRyX2dhdGUoOSwmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsKLQlzZXRfaW50cl9nYXRlKDEwLCZpbnZhbGlkX1RTUyk7Ci0Jc2V0X2ludHJfZ2F0ZSgxMSwmc2VnbWVudF9ub3RfcHJlc2VudCk7Ci0Jc2V0X2ludHJfZ2F0ZV9pc3QoMTIsJnN0YWNrX3NlZ21lbnQsU1RBQ0tGQVVMVF9TVEFDSyk7Ci0Jc2V0X2ludHJfZ2F0ZSgxMywmZ2VuZXJhbF9wcm90ZWN0aW9uKTsKLQlzZXRfaW50cl9nYXRlKDE0LCZwYWdlX2ZhdWx0KTsKLQlzZXRfaW50cl9nYXRlKDE1LCZzcHVyaW91c19pbnRlcnJ1cHRfYnVnKTsKLQlzZXRfaW50cl9nYXRlKDE2LCZjb3Byb2Nlc3Nvcl9lcnJvcik7Ci0Jc2V0X2ludHJfZ2F0ZSgxNywmYWxpZ25tZW50X2NoZWNrKTsKKwlzZXRfaW50cl9nYXRlKDAsICZkaXZpZGVfZXJyb3IpOworCXNldF9pbnRyX2dhdGVfaXN0KDEsICZkZWJ1ZywgREVCVUdfU1RBQ0spOworCXNldF9pbnRyX2dhdGVfaXN0KDIsICZubWksIE5NSV9TVEFDSyk7CisgCXNldF9zeXN0ZW1fZ2F0ZV9pc3QoMywgJmludDMsIERFQlVHX1NUQUNLKTsgLyogaW50MyBjYW4gYmUgY2FsbGVkIGZyb20gYWxsICovCisJc2V0X3N5c3RlbV9nYXRlKDQsICZvdmVyZmxvdyk7IC8qIGludDQgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF9pbnRyX2dhdGUoNSwgJmJvdW5kcyk7CisJc2V0X2ludHJfZ2F0ZSg2LCAmaW52YWxpZF9vcCk7CisJc2V0X2ludHJfZ2F0ZSg3LCAmZGV2aWNlX25vdF9hdmFpbGFibGUpOworCXNldF9pbnRyX2dhdGVfaXN0KDgsICZkb3VibGVfZmF1bHQsIERPVUJMRUZBVUxUX1NUQUNLKTsKKwlzZXRfaW50cl9nYXRlKDksICZjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pOworCXNldF9pbnRyX2dhdGUoMTAsICZpbnZhbGlkX1RTUyk7CisJc2V0X2ludHJfZ2F0ZSgxMSwgJnNlZ21lbnRfbm90X3ByZXNlbnQpOworCXNldF9pbnRyX2dhdGVfaXN0KDEyLCAmc3RhY2tfc2VnbWVudCwgU1RBQ0tGQVVMVF9TVEFDSyk7CisJc2V0X2ludHJfZ2F0ZSgxMywgJmdlbmVyYWxfcHJvdGVjdGlvbik7CisJc2V0X2ludHJfZ2F0ZSgxNCwgJnBhZ2VfZmF1bHQpOworCXNldF9pbnRyX2dhdGUoMTUsICZzcHVyaW91c19pbnRlcnJ1cHRfYnVnKTsKKwlzZXRfaW50cl9nYXRlKDE2LCAmY29wcm9jZXNzb3JfZXJyb3IpOworCXNldF9pbnRyX2dhdGUoMTcsICZhbGlnbm1lbnRfY2hlY2spOwogI2lmZGVmIENPTkZJR19YODZfTUNFCi0Jc2V0X2ludHJfZ2F0ZV9pc3QoMTgsJm1hY2hpbmVfY2hlY2ssIE1DRV9TVEFDSyk7IAorCXNldF9pbnRyX2dhdGVfaXN0KDE4LCAmbWFjaGluZV9jaGVjaywgTUNFX1NUQUNLKTsKICNlbmRpZgotCXNldF9pbnRyX2dhdGUoMTksJnNpbWRfY29wcm9jZXNzb3JfZXJyb3IpOworCXNldF9pbnRyX2dhdGUoMTksICZzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKTsKIAogI2lmZGVmIENPTkZJR19JQTMyX0VNVUxBVElPTgogCXNldF9zeXN0ZW1fZ2F0ZShJQTMyX1NZU0NBTExfVkVDVE9SLCBpYTMyX3N5c2NhbGwpOwogI2VuZGlmCi0gICAgICAgCiAJLyoKIAkgKiBpbml0aWFsaXplIHRoZSBwZXIgdGhyZWFkIGV4dGVuZGVkIHN0YXRlOgogCSAqLwotICAgICAgICBpbml0X3RocmVhZF94c3RhdGUoKTsKKwlpbml0X3RocmVhZF94c3RhdGUoKTsKIAkvKgotCSAqIFNob3VsZCBiZSBhIGJhcnJpZXIgZm9yIGFueSBleHRlcm5hbCBDUFUgc3RhdGUuCisJICogU2hvdWxkIGJlIGEgYmFycmllciBmb3IgYW55IGV4dGVybmFsIENQVSBzdGF0ZToKIAkgKi8KIAljcHVfaW5pdCgpOwogfQogCi0KIHN0YXRpYyBpbnQgX19pbml0IG9vcHNfc2V0dXAoY2hhciAqcykKLXsgCit7CiAJaWYgKCFzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoIXN0cmNtcChzLCAicGFuaWMiKSkKIAkJcGFuaWNfb25fb29wcyA9IDE7CiAJcmV0dXJuIDA7Ci19IAorfQogZWFybHlfcGFyYW0oIm9vcHMiLCBvb3BzX3NldHVwKTsKIAogc3RhdGljIGludCBfX2luaXQga3N0YWNrX3NldHVwKGNoYXIgKnMpCiB7CiAJaWYgKCFzKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlrc3RhY2tfZGVwdGhfdG9fcHJpbnQgPSBzaW1wbGVfc3RydG91bChzLE5VTEwsMCk7CisJa3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gc2ltcGxlX3N0cnRvdWwocywgTlVMTCwgMCk7CiAJcmV0dXJuIDA7CiB9CiBlYXJseV9wYXJhbSgia3N0YWNrIiwga3N0YWNrX3NldHVwKTsKIAotCiBzdGF0aWMgaW50IF9faW5pdCBjb2RlX2J5dGVzX3NldHVwKGNoYXIgKnMpCiB7CiAJY29kZV9ieXRlcyA9IHNpbXBsZV9zdHJ0b3VsKHMsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RzYy5jIGIvYXJjaC94ODYva2VybmVsL3RzYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMzZmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvdHNjLmMKQEAgLTAsMCArMSw1MzMgQEAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGlfcG10bXIuaD4KKyNpbmNsdWRlIDxsaW51eC9jcHVmcmVxLmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorCisjaW5jbHVkZSA8YXNtL2hwZXQuaD4KKyNpbmNsdWRlIDxhc20vdGltZXIuaD4KKyNpbmNsdWRlIDxhc20vdmd0b2QuaD4KKyNpbmNsdWRlIDxhc20vdGltZS5oPgorI2luY2x1ZGUgPGFzbS9kZWxheS5oPgorCit1bnNpZ25lZCBpbnQgY3B1X2toejsgICAgICAgICAgIC8qIFRTQyBjbG9ja3MgLyB1c2VjLCBub3QgdXNlZCBoZXJlICovCitFWFBPUlRfU1lNQk9MKGNwdV9raHopOwordW5zaWduZWQgaW50IHRzY19raHo7CitFWFBPUlRfU1lNQk9MKHRzY19raHopOworCisvKgorICogVFNDIGNhbiBiZSB1bnN0YWJsZSBkdWUgdG8gY3B1ZnJlcSBvciBkdWUgdG8gdW5zeW5jZWQgVFNDcworICovCitzdGF0aWMgaW50IHRzY191bnN0YWJsZTsKKworLyogbmF0aXZlX3NjaGVkX2Nsb2NrKCkgaXMgY2FsbGVkIGJlZm9yZSB0c2NfaW5pdCgpLCBzbworICAgd2UgbXVzdCBzdGFydCB3aXRoIHRoZSBUU0Mgc29mdCBkaXNhYmxlZCB0byBwcmV2ZW50CisgICBlcnJvbmVvdXMgcmR0c2MgdXNhZ2Ugb24gIWNwdV9oYXNfdHNjIHByb2Nlc3NvcnMgKi8KK3N0YXRpYyBpbnQgdHNjX2Rpc2FibGVkID0gLTE7CisKKy8qCisgKiBTY2hlZHVsZXIgY2xvY2sgLSByZXR1cm5zIGN1cnJlbnQgdGltZSBpbiBuYW5vc2VjIHVuaXRzLgorICovCit1NjQgbmF0aXZlX3NjaGVkX2Nsb2NrKHZvaWQpCit7CisJdTY0IHRoaXNfb2Zmc2V0OworCisJLyoKKwkgKiBGYWxsIGJhY2sgdG8gamlmZmllcyBpZiB0aGVyZSdzIG5vIFRTQyBhdmFpbGFibGU6CisJICogKCBCdXQgbm90ZSB0aGF0IHdlIHN0aWxsIHVzZSBpdCBpZiB0aGUgVFNDIGlzIG1hcmtlZAorCSAqICAgdW5zdGFibGUuIFdlIGRvIHRoaXMgYmVjYXVzZSB1bmxpa2UgVGltZSBPZiBEYXksCisJICogICB0aGUgc2NoZWR1bGVyIGNsb2NrIHRvbGVyYXRlcyBzbWFsbCBlcnJvcnMgYW5kIGl0J3MKKwkgKiAgIHZlcnkgaW1wb3J0YW50IGZvciBpdCB0byBiZSBhcyBmYXN0IGFzIHRoZSBwbGF0Zm9ybQorCSAqICAgY2FuIGFjaGl2ZSBpdC4gKQorCSAqLworCWlmICh1bmxpa2VseSh0c2NfZGlzYWJsZWQpKSB7CisJCS8qIE5vIGxvY2tpbmcgYnV0IGEgcmFyZSB3cm9uZyB2YWx1ZSBpcyBub3QgYSBiaWcgZGVhbDogKi8KKwkJcmV0dXJuIChqaWZmaWVzXzY0IC0gSU5JVElBTF9KSUZGSUVTKSAqICgxMDAwMDAwMDAwIC8gSFopOworCX0KKworCS8qIHJlYWQgdGhlIFRpbWUgU3RhbXAgQ291bnRlcjogKi8KKwlyZHRzY2xsKHRoaXNfb2Zmc2V0KTsKKworCS8qIHJldHVybiB0aGUgdmFsdWUgaW4gbnMgKi8KKwlyZXR1cm4gY3ljbGVzXzJfbnModGhpc19vZmZzZXQpOworfQorCisvKiBXZSBuZWVkIHRvIGRlZmluZSBhIHJlYWwgZnVuY3Rpb24gZm9yIHNjaGVkX2Nsb2NrLCB0byBvdmVycmlkZSB0aGUKKyAgIHdlYWsgZGVmYXVsdCB2ZXJzaW9uICovCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUCit1bnNpZ25lZCBsb25nIGxvbmcgc2NoZWRfY2xvY2sodm9pZCkKK3sKKwlyZXR1cm4gcGFyYXZpcnRfc2NoZWRfY2xvY2soKTsKK30KKyNlbHNlCit1bnNpZ25lZCBsb25nIGxvbmcKK3NjaGVkX2Nsb2NrKHZvaWQpIF9fYXR0cmlidXRlX18oKGFsaWFzKCJuYXRpdmVfc2NoZWRfY2xvY2siKSkpOworI2VuZGlmCisKK2ludCBjaGVja190c2NfdW5zdGFibGUodm9pZCkKK3sKKwlyZXR1cm4gdHNjX3Vuc3RhYmxlOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY2hlY2tfdHNjX3Vuc3RhYmxlKTsKKworI2lmZGVmIENPTkZJR19YODZfVFNDCitpbnQgX19pbml0IG5vdHNjX3NldHVwKGNoYXIgKnN0cikKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICJub3RzYzogS2VybmVsIGNvbXBpbGVkIHdpdGggQ09ORklHX1g4Nl9UU0MsICIKKwkJCSJjYW5ub3QgZGlzYWJsZSBUU0MgY29tcGxldGVseS5cbiIpOworCXRzY19kaXNhYmxlZCA9IDE7CisJcmV0dXJuIDE7Cit9CisjZWxzZQorLyoKKyAqIGRpc2FibGUgZmxhZyBmb3IgdHNjLiBUYWtlcyBlZmZlY3QgYnkgY2xlYXJpbmcgdGhlIFRTQyBjcHUgZmxhZworICogaW4gY3B1L2NvbW1vbi5jCisgKi8KK2ludCBfX2luaXQgbm90c2Nfc2V0dXAoY2hhciAqc3RyKQoreworCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDKTsKKwlyZXR1cm4gMTsKK30KKyNlbmRpZgorCitfX3NldHVwKCJub3RzYyIsIG5vdHNjX3NldHVwKTsKKworI2RlZmluZSBNQVhfUkVUUklFUyAgICAgNQorI2RlZmluZSBTTUlfVFJFU0hPTEQgICAgNTAwMDAKKworLyoKKyAqIFJlYWQgVFNDIGFuZCB0aGUgcmVmZXJlbmNlIGNvdW50ZXJzLiBUYWtlIGNhcmUgb2YgU01JIGRpc3R1cmJhbmNlCisgKi8KK3N0YXRpYyB1NjQgX19pbml0IHRzY19yZWFkX3JlZnModTY0ICpwbSwgdTY0ICpocGV0KQoreworCXU2NCB0MSwgdDI7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1JFVFJJRVM7IGkrKykgeworCQl0MSA9IGdldF9jeWNsZXMoKTsKKwkJaWYgKGhwZXQpCisJCQkqaHBldCA9IGhwZXRfcmVhZGwoSFBFVF9DT1VOVEVSKSAmIDB4RkZGRkZGRkY7CisJCWVsc2UKKwkJCSpwbSA9IGFjcGlfcG1fcmVhZF9lYXJseSgpOworCQl0MiA9IGdldF9jeWNsZXMoKTsKKwkJaWYgKCh0MiAtIHQxKSA8IFNNSV9UUkVTSE9MRCkKKwkJCXJldHVybiB0MjsKKwl9CisJcmV0dXJuIFVMTE9OR19NQVg7Cit9CisKKy8qKgorICogbmF0aXZlX2NhbGlicmF0ZV90c2MgLSBjYWxpYnJhdGUgdGhlIHRzYyBvbiBib290CisgKi8KK3Vuc2lnbmVkIGxvbmcgbmF0aXZlX2NhbGlicmF0ZV90c2Modm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXU2NCB0c2MxLCB0c2MyLCB0cjEsIHRyMiwgZGVsdGEsIHBtMSwgcG0yLCBocGV0MSwgaHBldDI7CisJaW50IGhwZXQgPSBpc19ocGV0X2VuYWJsZWQoKTsKKwl1bnNpZ25lZCBpbnQgdHNjX2toel92YWwgPSAwOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdHNjMSA9IHRzY19yZWFkX3JlZnMoJnBtMSwgaHBldCA/ICZocGV0MSA6IE5VTEwpOworCisJb3V0YigoaW5iKDB4NjEpICYgfjB4MDIpIHwgMHgwMSwgMHg2MSk7CisKKwlvdXRiKDB4YjAsIDB4NDMpOworCW91dGIoKENMT0NLX1RJQ0tfUkFURSAvICgxMDAwIC8gNTApKSAmIDB4ZmYsIDB4NDIpOworCW91dGIoKENMT0NLX1RJQ0tfUkFURSAvICgxMDAwIC8gNTApKSA+PiA4LCAweDQyKTsKKwl0cjEgPSBnZXRfY3ljbGVzKCk7CisJd2hpbGUgKChpbmIoMHg2MSkgJiAweDIwKSA9PSAwKTsKKwl0cjIgPSBnZXRfY3ljbGVzKCk7CisKKwl0c2MyID0gdHNjX3JlYWRfcmVmcygmcG0yLCBocGV0ID8gJmhwZXQyIDogTlVMTCk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwkvKgorCSAqIFByZXNldCB0aGUgcmVzdWx0IHdpdGggdGhlIHJhdyBhbmQgaW5hY2N1cmF0ZSBQSVQKKwkgKiBjYWxpYnJhdGlvbiB2YWx1ZQorCSAqLworCWRlbHRhID0gKHRyMiAtIHRyMSk7CisJZG9fZGl2KGRlbHRhLCA1MCk7CisJdHNjX2toel92YWwgPSBkZWx0YTsKKworCS8qIGhwZXQgb3IgcG10aW1lciBhdmFpbGFibGUgPyAqLworCWlmICghaHBldCAmJiAhcG0xICYmICFwbTIpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBQSVRcbiIpOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiBDaGVjaywgd2hldGhlciB0aGUgc2FtcGxpbmcgd2FzIGRpc3R1cmJlZCBieSBhbiBTTUkgKi8KKwlpZiAodHNjMSA9PSBVTExPTkdfTUFYIHx8IHRzYzIgPT0gVUxMT05HX01BWCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJUU0MgY2FsaWJyYXRpb24gZGlzdHVyYmVkIGJ5IFNNSSwgIgorCQkJCSJ1c2luZyBQSVQgY2FsaWJyYXRpb24gcmVzdWx0XG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJdHNjMiA9ICh0c2MyIC0gdHNjMSkgKiAxMDAwMDAwTEw7CisKKwlpZiAoaHBldCkgeworCQlwcmludGsoS0VSTl9JTkZPICJUU0MgY2FsaWJyYXRlZCBhZ2FpbnN0IEhQRVRcbiIpOworCQlpZiAoaHBldDIgPCBocGV0MSkKKwkJCWhwZXQyICs9IDB4MTAwMDAwMDAwVUxMOworCQlocGV0MiAtPSBocGV0MTsKKwkJdHNjMSA9ICgodTY0KWhwZXQyICogaHBldF9yZWFkbChIUEVUX1BFUklPRCkpOworCQlkb19kaXYodHNjMSwgMTAwMDAwMCk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBQTV9USU1FUlxuIik7CisJCWlmIChwbTIgPCBwbTEpCisJCQlwbTIgKz0gKHU2NClBQ1BJX1BNX09WUlJVTjsKKwkJcG0yIC09IHBtMTsKKwkJdHNjMSA9IHBtMiAqIDEwMDAwMDAwMDBMTDsKKwkJZG9fZGl2KHRzYzEsIFBNVE1SX1RJQ0tTX1BFUl9TRUMpOworCX0KKworCWRvX2Rpdih0c2MyLCB0c2MxKTsKKwl0c2Nfa2h6X3ZhbCA9IHRzYzI7CisKK291dDoKKwlyZXR1cm4gdHNjX2toel92YWw7Cit9CisKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qIE9ubHkgY2FsbGVkIGZyb20gdGhlIFBvd2Vybm93IEs3IGNwdSBmcmVxIGRyaXZlciAqLworaW50IHJlY2FsaWJyYXRlX2NwdV9raHoodm9pZCkKK3sKKyNpZm5kZWYgQ09ORklHX1NNUAorCXVuc2lnbmVkIGxvbmcgY3B1X2toel9vbGQgPSBjcHVfa2h6OworCisJaWYgKGNwdV9oYXNfdHNjKSB7CisJCXRzY19raHogPSBjYWxpYnJhdGVfdHNjKCk7CisJCWNwdV9raHogPSB0c2Nfa2h6OworCQljcHVfZGF0YSgwKS5sb29wc19wZXJfamlmZnkgPQorCQkJY3B1ZnJlcV9zY2FsZShjcHVfZGF0YSgwKS5sb29wc19wZXJfamlmZnksCisJCQkJCWNwdV9raHpfb2xkLCBjcHVfa2h6KTsKKwkJcmV0dXJuIDA7CisJfSBlbHNlCisJCXJldHVybiAtRU5PREVWOworI2Vsc2UKKwlyZXR1cm4gLUVOT0RFVjsKKyNlbmRpZgorfQorCitFWFBPUlRfU1lNQk9MKHJlY2FsaWJyYXRlX2NwdV9raHopOworCisjZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLworCisvKiBBY2NlbGVyYXRvcnMgZm9yIHNjaGVkX2Nsb2NrKCkKKyAqIGNvbnZlcnQgZnJvbSBjeWNsZXMoNjRiaXRzKSA9PiBuYW5vc2Vjb25kcyAoNjRiaXRzKQorICogIGJhc2ljIGVxdWF0aW9uOgorICogICAgICAgICAgICAgIG5zID0gY3ljbGVzIC8gKGZyZXEgLyBuc19wZXJfc2VjKQorICogICAgICAgICAgICAgIG5zID0gY3ljbGVzICogKG5zX3Blcl9zZWMgLyBmcmVxKQorICogICAgICAgICAgICAgIG5zID0gY3ljbGVzICogKDEwXjkgLyAoY3B1X2toeiAqIDEwXjMpKQorICogICAgICAgICAgICAgIG5zID0gY3ljbGVzICogKDEwXjYgLyBjcHVfa2h6KQorICoKKyAqICAgICAgVGhlbiB3ZSB1c2Ugc2NhbGluZyBtYXRoIChzdWdnZXN0ZWQgYnkgZ2VvcmdlQG12aXN0YS5jb20pIHRvIGdldDoKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqICgxMF42ICogU0MgLyBjcHVfa2h6KSAvIFNDCisgKiAgICAgICAgICAgICAgbnMgPSBjeWNsZXMgKiBjeWMybnNfc2NhbGUgLyBTQworICoKKyAqICAgICAgQW5kIHNpbmNlIFNDIGlzIGEgY29uc3RhbnQgcG93ZXIgb2YgdHdvLCB3ZSBjYW4gY29udmVydCB0aGUgZGl2CisgKiAgaW50byBhIHNoaWZ0LgorICoKKyAqICBXZSBjYW4gdXNlIGtoeiBkaXZpc29yIGluc3RlYWQgb2YgbWh6IHRvIGtlZXAgYSBiZXR0ZXIgcHJlY2lzaW9uLCBzaW5jZQorICogIGN5YzJuc19zY2FsZSBpcyBsaW1pdGVkIHRvIDEwXjYgKiAyXjEwLCB3aGljaCBmaXRzIGluIDMyIGJpdHMuCisgKiAgKG1hdGhpZXUuZGVzbm95ZXJzQHBvbHltdGwuY2EpCisgKgorICogICAgICAgICAgICAgICAgICAgICAgLWpvaG5zdHVsQHVzLmlibS5jb20gIm1hdGggaXMgaGFyZCwgbGV0cyBnbyBzaG9wcGluZyEiCisgKi8KKworREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgY3ljMm5zKTsKKworc3RhdGljIHZvaWQgc2V0X2N5YzJuc19zY2FsZSh1bnNpZ25lZCBsb25nIGNwdV9raHosIGludCBjcHUpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIHRzY19ub3csIG5zX25vdzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCAqc2NhbGU7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCgpOworCisJc2NhbGUgPSAmcGVyX2NwdShjeWMybnMsIGNwdSk7CisKKwlyZHRzY2xsKHRzY19ub3cpOworCW5zX25vdyA9IF9fY3ljbGVzXzJfbnModHNjX25vdyk7CisKKwlpZiAoY3B1X2toeikKKwkJKnNjYWxlID0gKE5TRUNfUEVSX01TRUMgPDwgQ1lDMk5TX1NDQUxFX0ZBQ1RPUikvY3B1X2toejsKKworCXNjaGVkX2Nsb2NrX2lkbGVfd2FrZXVwX2V2ZW50KDApOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworI2lmZGVmIENPTkZJR19DUFVfRlJFUQorCisvKiBGcmVxdWVuY3kgc2NhbGluZyBzdXBwb3J0LiBBZGp1c3QgdGhlIFRTQyBiYXNlZCB0aW1lciB3aGVuIHRoZSBjcHUgZnJlcXVlbmN5CisgKiBjaGFuZ2VzLgorICoKKyAqIFJFRC1QRU46IE9uIFNNUCB3ZSBhc3N1bWUgYWxsIENQVXMgcnVuIHdpdGggdGhlIHNhbWUgZnJlcXVlbmN5LiAgSXQncworICogbm90IHRoYXQgaW1wb3J0YW50IGJlY2F1c2UgY3VycmVudCBPcHRlcm9uIHNldHVwcyBkbyBub3Qgc3VwcG9ydAorICogc2NhbGluZyBvbiBTTVAgYW55cm9hZHMuCisgKgorICogU2hvdWxkIGZpeCB1cCBsYXN0X3RzYyB0b28uIEN1cnJlbnRseSBnZXR0aW1lb2ZkYXkgaW4gdGhlCisgKiBmaXJzdCB0aWNrIGFmdGVyIHRoZSBjaGFuZ2Ugd2lsbCBiZSBzbGlnaHRseSB3cm9uZy4KKyAqLworCitzdGF0aWMgdW5zaWduZWQgaW50ICByZWZfZnJlcTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvb3BzX3Blcl9qaWZmeV9yZWY7CitzdGF0aWMgdW5zaWduZWQgbG9uZyB0c2Nfa2h6X3JlZjsKKworc3RhdGljIGludCB0aW1lX2NwdWZyZXFfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCisJCQkJdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgY3B1ZnJlcV9mcmVxcyAqZnJlcSA9IGRhdGE7CisJdW5zaWduZWQgbG9uZyAqbHBqLCBkdW1teTsKKworCWlmIChjcHVfaGFzKCZjcHVfZGF0YShmcmVxLT5jcHUpLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpKQorCQlyZXR1cm4gMDsKKworCWxwaiA9ICZkdW1teTsKKwlpZiAoIShmcmVxLT5mbGFncyAmIENQVUZSRVFfQ09OU1RfTE9PUFMpKQorI2lmZGVmIENPTkZJR19TTVAKKwkJbHBqID0gJmNwdV9kYXRhKGZyZXEtPmNwdSkubG9vcHNfcGVyX2ppZmZ5OworI2Vsc2UKKwlscGogPSAmYm9vdF9jcHVfZGF0YS5sb29wc19wZXJfamlmZnk7CisjZW5kaWYKKworCWlmICghcmVmX2ZyZXEpIHsKKwkJcmVmX2ZyZXEgPSBmcmVxLT5vbGQ7CisJCWxvb3BzX3Blcl9qaWZmeV9yZWYgPSAqbHBqOworCQl0c2Nfa2h6X3JlZiA9IHRzY19raHo7CisJfQorCWlmICgodmFsID09IENQVUZSRVFfUFJFQ0hBTkdFICAmJiBmcmVxLT5vbGQgPCBmcmVxLT5uZXcpIHx8CisJCQkodmFsID09IENQVUZSRVFfUE9TVENIQU5HRSAmJiBmcmVxLT5vbGQgPiBmcmVxLT5uZXcpIHx8CisJCQkodmFsID09IENQVUZSRVFfUkVTVU1FQ0hBTkdFKSkgeworCQkqbHBqID0gCWNwdWZyZXFfc2NhbGUobG9vcHNfcGVyX2ppZmZ5X3JlZiwgcmVmX2ZyZXEsIGZyZXEtPm5ldyk7CisKKwkJdHNjX2toeiA9IGNwdWZyZXFfc2NhbGUodHNjX2toel9yZWYsIHJlZl9mcmVxLCBmcmVxLT5uZXcpOworCQlpZiAoIShmcmVxLT5mbGFncyAmIENQVUZSRVFfQ09OU1RfTE9PUFMpKQorCQkJbWFya190c2NfdW5zdGFibGUoImNwdWZyZXEgY2hhbmdlcyIpOworCX0KKworCXNldF9jeWMybnNfc2NhbGUodHNjX2toel9yZWYsIGZyZXEtPmNwdSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayB0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2sgPSB7CisJLm5vdGlmaWVyX2NhbGwgID0gdGltZV9jcHVmcmVxX25vdGlmaWVyCit9OworCitzdGF0aWMgaW50IF9faW5pdCBjcHVmcmVxX3RzYyh2b2lkKQoreworCWNwdWZyZXFfcmVnaXN0ZXJfbm90aWZpZXIoJnRpbWVfY3B1ZnJlcV9ub3RpZmllcl9ibG9jaywKKwkJCQlDUFVGUkVRX1RSQU5TSVRJT05fTk9USUZJRVIpOworCXJldHVybiAwOworfQorCitjb3JlX2luaXRjYWxsKGNwdWZyZXFfdHNjKTsKKworI2VuZGlmIC8qIENPTkZJR19DUFVfRlJFUSAqLworCisvKiBjbG9ja3NvdXJjZSBjb2RlICovCisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjOworCisvKgorICogV2UgY29tcGFyZSB0aGUgVFNDIHRvIHRoZSBjeWNsZV9sYXN0IHZhbHVlIGluIHRoZSBjbG9ja3NvdXJjZQorICogc3RydWN0dXJlIHRvIGF2b2lkIGEgbmFzdHkgdGltZS13YXJwLiBUaGlzIGNhbiBiZSBvYnNlcnZlZCBpbiBhCisgKiB2ZXJ5IHNtYWxsIHdpbmRvdyByaWdodCBhZnRlciBvbmUgQ1BVIHVwZGF0ZWQgY3ljbGVfbGFzdCB1bmRlcgorICogeHRpbWUvdnN5c2NhbGxfZ3RvZCBsb2NrIGFuZCB0aGUgb3RoZXIgQ1BVIHJlYWRzIGEgVFNDIHZhbHVlIHdoaWNoCisgKiBpcyBzbWFsbGVyIHRoYW4gdGhlIGN5Y2xlX2xhc3QgcmVmZXJlbmNlIHZhbHVlIGR1ZSB0byBhIFRTQyB3aGljaAorICogaXMgc2xpZ2h0eSBiZWhpbmQuIFRoaXMgZGVsdGEgaXMgbm93aGVyZSBlbHNlIG9ic2VydmFibGUsIGJ1dCBpbgorICogdGhhdCBjYXNlIGl0IHJlc3VsdHMgaW4gYSBmb3J3YXJkIHRpbWUganVtcCBpbiB0aGUgcmFuZ2Ugb2YgaG91cnMKKyAqIGR1ZSB0byB0aGUgdW5zaWduZWQgZGVsdGEgY2FsY3VsYXRpb24gb2YgdGhlIHRpbWUga2VlcGluZyBjb3JlCisgKiBjb2RlLCB3aGljaCBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCB3cmFwcGluZyBjbG9ja3NvdXJjZXMgbGlrZSBwbQorICogdGltZXIuCisgKi8KK3N0YXRpYyBjeWNsZV90IHJlYWRfdHNjKHZvaWQpCit7CisJY3ljbGVfdCByZXQgPSAoY3ljbGVfdClnZXRfY3ljbGVzKCk7CisKKwlyZXR1cm4gcmV0ID49IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0ID8KKwkJcmV0IDogY2xvY2tzb3VyY2VfdHNjLmN5Y2xlX2xhc3Q7Cit9CisKK3N0YXRpYyBjeWNsZV90IF9fdnN5c2NhbGxfZm4gdnJlYWRfdHNjKHZvaWQpCit7CisJY3ljbGVfdCByZXQgPSAoY3ljbGVfdCl2Z2V0X2N5Y2xlcygpOworCisJcmV0dXJuIHJldCA+PSBfX3ZzeXNjYWxsX2d0b2RfZGF0YS5jbG9jay5jeWNsZV9sYXN0ID8KKwkJcmV0IDogX192c3lzY2FsbF9ndG9kX2RhdGEuY2xvY2suY3ljbGVfbGFzdDsKK30KKworc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV90c2MgPSB7CisJLm5hbWUgICAgICAgICAgICAgICAgICAgPSAidHNjIiwKKwkucmF0aW5nICAgICAgICAgICAgICAgICA9IDMwMCwKKwkucmVhZCAgICAgICAgICAgICAgICAgICA9IHJlYWRfdHNjLAorCS5tYXNrICAgICAgICAgICAgICAgICAgID0gQ0xPQ0tTT1VSQ0VfTUFTSyg2NCksCisJLnNoaWZ0ICAgICAgICAgICAgICAgICAgPSAyMiwKKwkuZmxhZ3MgICAgICAgICAgICAgICAgICA9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTIHwKKwkJCQkgIENMT0NLX1NPVVJDRV9NVVNUX1ZFUklGWSwKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJLnZyZWFkICAgICAgICAgICAgICAgICAgPSB2cmVhZF90c2MsCisjZW5kaWYKK307CisKK3ZvaWQgbWFya190c2NfdW5zdGFibGUoY2hhciAqcmVhc29uKQoreworCWlmICghdHNjX3Vuc3RhYmxlKSB7CisJCXRzY191bnN0YWJsZSA9IDE7CisJCXByaW50aygiTWFya2luZyBUU0MgdW5zdGFibGUgZHVlIHRvICVzXG4iLCByZWFzb24pOworCQkvKiBDaGFuZ2Ugb25seSB0aGUgcmF0aW5nLCB3aGVuIG5vdCByZWdpc3RlcmVkICovCisJCWlmIChjbG9ja3NvdXJjZV90c2MubXVsdCkKKwkJCWNsb2Nrc291cmNlX2NoYW5nZV9yYXRpbmcoJmNsb2Nrc291cmNlX3RzYywgMCk7CisJCWVsc2UKKwkJCWNsb2Nrc291cmNlX3RzYy5yYXRpbmcgPSAwOworCX0KK30KKworRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2NfdW5zdGFibGUpOworCitzdGF0aWMgaW50IF9faW5pdCBkbWlfbWFya190c2NfdW5zdGFibGUoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCit7CisJcHJpbnRrKEtFUk5fTk9USUNFICIlcyBkZXRlY3RlZDogbWFya2luZyBUU0MgdW5zdGFibGUuXG4iLAorCQkJZC0+aWRlbnQpOworCXRzY191bnN0YWJsZSA9IDE7CisJcmV0dXJuIDA7Cit9CisKKy8qIExpc3Qgb2Ygc3lzdGVtcyB0aGF0IGhhdmUga25vd24gVFNDIHByb2JsZW1zICovCitzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0ZGF0YSBiYWRfdHNjX2RtaV90YWJsZVtdID0geworCXsKKwkJLmNhbGxiYWNrID0gZG1pX21hcmtfdHNjX3Vuc3RhYmxlLAorCQkuaWRlbnQgPSAiSUJNIFRoaW5rcGFkIDM4MFhEIiwKKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIklCTSIpLAorCQkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAiMjYzNUZBMCIpLAorCQl9LAorCX0sCisJe30KK307CisKKy8qCisgKiBHZW9kZV9MWCAtIHRoZSBPTFBDIENQVSBoYXMgYSBwb3NzaWJseSBhIHZlcnkgcmVsaWFibGUgVFNDCisgKi8KKyNpZmRlZiBDT05GSUdfTUdFT0RFX0xYCisvKiBSVFNDIGNvdW50cyBkdXJpbmcgc3VzcGVuZCAqLworI2RlZmluZSBSVFNDX1NVU1AgMHgxMDAKKworc3RhdGljIHZvaWQgX19pbml0IGNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgcmVzX2xvdywgcmVzX2hpZ2g7CisKKwlyZG1zcl9zYWZlKE1TUl9HRU9ERV9CVVNDT05UX0NPTkYwLCAmcmVzX2xvdywgJnJlc19oaWdoKTsKKwlpZiAocmVzX2xvdyAmIFJUU0NfU1VTUCkKKwkJY2xvY2tzb3VyY2VfdHNjLmZsYWdzICY9IH5DTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSh2b2lkKSB7IH0KKyNlbmRpZgorCisvKgorICogTWFrZSBhbiBlZHVjYXRlZCBndWVzcyBpZiB0aGUgVFNDIGlzIHRydXN0d29ydGh5IGFuZCBzeW5jaHJvbml6ZWQKKyAqIG92ZXIgYWxsIENQVXMuCisgKi8KK19fY3B1aW5pdCBpbnQgdW5zeW5jaHJvbml6ZWRfdHNjKHZvaWQpCit7CisJaWYgKCFjcHVfaGFzX3RzYyB8fCB0c2NfdW5zdGFibGUpCisJCXJldHVybiAxOworCisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChhcGljX2lzX2NsdXN0ZXJlZF9ib3goKSkKKwkJcmV0dXJuIDE7CisjZW5kaWYKKworCWlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKKwkJcmV0dXJuIDA7CisJLyoKKwkgKiBJbnRlbCBzeXN0ZW1zIGFyZSBub3JtYWxseSBhbGwgc3luY2hyb25pemVkLgorCSAqIEV4Y2VwdGlvbnMgbXVzdCBtYXJrIFRTQyBhcyB1bnN0YWJsZToKKwkgKi8KKwlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfSU5URUwpIHsKKwkJLyogYXNzdW1lIG11bHRpIHNvY2tldCBzeXN0ZW1zIGFyZSBub3Qgc3luY2hyb25pemVkOiAqLworCQlpZiAobnVtX3Bvc3NpYmxlX2NwdXMoKSA+IDEpCisJCQl0c2NfdW5zdGFibGUgPSAxOworCX0KKworCXJldHVybiB0c2NfdW5zdGFibGU7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X3RzY19jbG9ja3NvdXJjZSh2b2lkKQoreworCWNsb2Nrc291cmNlX3RzYy5tdWx0ID0gY2xvY2tzb3VyY2Vfa2h6Mm11bHQodHNjX2toeiwKKwkJCWNsb2Nrc291cmNlX3RzYy5zaGlmdCk7CisJLyogbG93ZXIgdGhlIHJhdGluZyBpZiB3ZSBhbHJlYWR5IGtub3cgaXRzIHVuc3RhYmxlOiAqLworCWlmIChjaGVja190c2NfdW5zdGFibGUoKSkgeworCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKKwkJY2xvY2tzb3VyY2VfdHNjLmZsYWdzICY9IH5DTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUzsKKwl9CisJY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3RzYyk7Cit9CisKK3ZvaWQgX19pbml0IHRzY19pbml0KHZvaWQpCit7CisJdTY0IGxwajsKKwlpbnQgY3B1OworCisJaWYgKCFjcHVfaGFzX3RzYykKKwkJcmV0dXJuOworCisJdHNjX2toeiA9IGNhbGlicmF0ZV90c2MoKTsKKwljcHVfa2h6ID0gdHNjX2toejsKKworCWlmICghdHNjX2toeikgeworCQltYXJrX3RzY191bnN0YWJsZSgiY291bGQgbm90IGNhbGN1bGF0ZSBUU0Mga2h6Iik7CisJCXJldHVybjsKKwl9CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaWYgKGNwdV9oYXMoJmJvb3RfY3B1X2RhdGEsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykgJiYKKwkJCShib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpKQorCQljcHVfa2h6ID0gY2FsaWJyYXRlX2NwdSgpOworI2VuZGlmCisKKwlscGogPSAoKHU2NCl0c2Nfa2h6ICogMTAwMCk7CisJZG9fZGl2KGxwaiwgSFopOworCWxwal9maW5lID0gbHBqOworCisJcHJpbnRrKCJEZXRlY3RlZCAlbHUuJTAzbHUgTUh6IHByb2Nlc3Nvci5cbiIsCisJCQkodW5zaWduZWQgbG9uZyljcHVfa2h6IC8gMTAwMCwKKwkJCSh1bnNpZ25lZCBsb25nKWNwdV9raHogJSAxMDAwKTsKKworCS8qCisJICogU2Vjb25kYXJ5IENQVXMgZG8gbm90IHJ1biB0aHJvdWdoIHRzY19pbml0KCksIHNvIHNldCB1cAorCSAqIGFsbCB0aGUgc2NhbGUgZmFjdG9ycyBmb3IgYWxsIENQVXMsIGFzc3VtaW5nIHRoZSBzYW1lCisJICogc3BlZWQgYXMgdGhlIGJvb3R1cCBDUFUuIChjcHVmcmVxIG5vdGlmaWVycyB3aWxsIGZpeCB0aGlzCisJICogdXAgaWYgdGhlaXIgc3BlZWQgZGl2ZXJnZXMpCisJICovCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkKKwkJc2V0X2N5YzJuc19zY2FsZShjcHVfa2h6LCBjcHUpOworCisJaWYgKHRzY19kaXNhYmxlZCA+IDApCisJCXJldHVybjsKKworCS8qIG5vdyBhbGxvdyBuYXRpdmVfc2NoZWRfY2xvY2soKSB0byB1c2UgcmR0c2MgKi8KKwl0c2NfZGlzYWJsZWQgPSAwOworCisJdXNlX3RzY19kZWxheSgpOworCS8qIENoZWNrIGFuZCBpbnN0YWxsIHRoZSBUU0MgY2xvY2tzb3VyY2UgKi8KKwlkbWlfY2hlY2tfc3lzdGVtKGJhZF90c2NfZG1pX3RhYmxlKTsKKworCWlmICh1bnN5bmNocm9uaXplZF90c2MoKSkKKwkJbWFya190c2NfdW5zdGFibGUoIlRTQ3MgdW5zeW5jaHJvbml6ZWQiKTsKKworCWNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSgpOworCWluaXRfdHNjX2Nsb2Nrc291cmNlKCk7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90c2NfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC90c2NfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY4NzU5ZC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NTMgKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KLSNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVmcmVxLmg+Ci0jaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWkuaD4KLSNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLQotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS90c2MuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLQotI2luY2x1ZGUgIm1hY2hfdGltZXIuaCIKLQotc3RhdGljIGludCB0c2NfZGlzYWJsZWQ7Ci0KLS8qCi0gKiBPbiBzb21lIHN5c3RlbXMgdGhlIFRTQyBmcmVxdWVuY3kgZG9lcyBub3QKLSAqIGNoYW5nZSB3aXRoIHRoZSBjcHUgZnJlcXVlbmN5LiBTbyB3ZSBuZWVkCi0gKiBhbiBleHRyYSB2YWx1ZSB0byBzdG9yZSB0aGUgVFNDIGZyZXEKLSAqLwotdW5zaWduZWQgaW50IHRzY19raHo7Ci1FWFBPUlRfU1lNQk9MX0dQTCh0c2Nfa2h6KTsKLQotI2lmZGVmIENPTkZJR19YODZfVFNDCi1zdGF0aWMgaW50IF9faW5pdCB0c2Nfc2V0dXAoY2hhciAqc3RyKQotewotCXByaW50ayhLRVJOX1dBUk5JTkcgIm5vdHNjOiBLZXJuZWwgY29tcGlsZWQgd2l0aCBDT05GSUdfWDg2X1RTQywgIgotCSAgICAgICAiY2Fubm90IGRpc2FibGUgVFNDIGNvbXBsZXRlbHkuXG4iKTsKLQl0c2NfZGlzYWJsZWQgPSAxOwotCXJldHVybiAxOwotfQotI2Vsc2UKLS8qCi0gKiBkaXNhYmxlIGZsYWcgZm9yIHRzYy4gVGFrZXMgZWZmZWN0IGJ5IGNsZWFyaW5nIHRoZSBUU0MgY3B1IGZsYWcKLSAqIGluIGNwdS9jb21tb24uYwotICovCi1zdGF0aWMgaW50IF9faW5pdCB0c2Nfc2V0dXAoY2hhciAqc3RyKQotewotCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDKTsKLQlyZXR1cm4gMTsKLX0KLSNlbmRpZgotCi1fX3NldHVwKCJub3RzYyIsIHRzY19zZXR1cCk7Ci0KLS8qCi0gKiBjb2RlIHRvIG1hcmsgYW5kIGNoZWNrIGlmIHRoZSBUU0MgaXMgdW5zdGFibGUKLSAqIGR1ZSB0byBjcHVmcmVxIG9yIGR1ZSB0byB1bnN5bmNlZCBUU0NzCi0gKi8KLXN0YXRpYyBpbnQgdHNjX3Vuc3RhYmxlOwotCi1pbnQgY2hlY2tfdHNjX3Vuc3RhYmxlKHZvaWQpCi17Ci0JcmV0dXJuIHRzY191bnN0YWJsZTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGNoZWNrX3RzY191bnN0YWJsZSk7Ci0KLS8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQotICogY29udmVydCBmcm9tIGN5Y2xlcyg2NGJpdHMpID0+IG5hbm9zZWNvbmRzICg2NGJpdHMpCi0gKiAgYmFzaWMgZXF1YXRpb246Ci0gKgkJbnMgPSBjeWNsZXMgLyAoZnJlcSAvIG5zX3Blcl9zZWMpCi0gKgkJbnMgPSBjeWNsZXMgKiAobnNfcGVyX3NlYyAvIGZyZXEpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeOSAvIChjcHVfa2h6ICogMTBeMykpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeNiAvIGNwdV9raHopCi0gKgotICoJVGhlbiB3ZSB1c2Ugc2NhbGluZyBtYXRoIChzdWdnZXN0ZWQgYnkgZ2VvcmdlQG12aXN0YS5jb20pIHRvIGdldDoKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF42ICogU0MgLyBjcHVfa2h6KSAvIFNDCi0gKgkJbnMgPSBjeWNsZXMgKiBjeWMybnNfc2NhbGUgLyBTQwotICoKLSAqCUFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgotICogIGludG8gYSBzaGlmdC4KLSAqCi0gKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKLSAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgotICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQotICoKLSAqCQkJLWpvaG5zdHVsQHVzLmlibS5jb20gIm1hdGggaXMgaGFyZCwgbGV0cyBnbyBzaG9wcGluZyEiCi0gKi8KLQotREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgY3ljMm5zKTsKLQotc3RhdGljIHZvaWQgc2V0X2N5YzJuc19zY2FsZSh1bnNpZ25lZCBsb25nIGNwdV9raHosIGludCBjcHUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRzY19ub3csIG5zX25vdzsKLQl1bnNpZ25lZCBsb25nIGZsYWdzLCAqc2NhbGU7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0Jc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCgpOwotCi0Jc2NhbGUgPSAmcGVyX2NwdShjeWMybnMsIGNwdSk7Ci0KLQlyZHRzY2xsKHRzY19ub3cpOwotCW5zX25vdyA9IF9fY3ljbGVzXzJfbnModHNjX25vdyk7Ci0KLQlpZiAoY3B1X2toeikKLQkJKnNjYWxlID0gKE5TRUNfUEVSX01TRUMgPDwgQ1lDMk5TX1NDQUxFX0ZBQ1RPUikvY3B1X2toejsKLQotCS8qCi0JICogU3RhcnQgc21vb3RobHkgd2l0aCB0aGUgbmV3IGZyZXF1ZW5jeToKLQkgKi8KLQlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLS8qCi0gKiBTY2hlZHVsZXIgY2xvY2sgLSByZXR1cm5zIGN1cnJlbnQgdGltZSBpbiBuYW5vc2VjIHVuaXRzLgotICovCi11bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3NjaGVkX2Nsb2NrKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRoaXNfb2Zmc2V0OwotCi0JLyoKLQkgKiBGYWxsIGJhY2sgdG8gamlmZmllcyBpZiB0aGVyZSdzIG5vIFRTQyBhdmFpbGFibGU6Ci0JICogKCBCdXQgbm90ZSB0aGF0IHdlIHN0aWxsIHVzZSBpdCBpZiB0aGUgVFNDIGlzIG1hcmtlZAotCSAqICAgdW5zdGFibGUuIFdlIGRvIHRoaXMgYmVjYXVzZSB1bmxpa2UgVGltZSBPZiBEYXksCi0JICogICB0aGUgc2NoZWR1bGVyIGNsb2NrIHRvbGVyYXRlcyBzbWFsbCBlcnJvcnMgYW5kIGl0J3MKLQkgKiAgIHZlcnkgaW1wb3J0YW50IGZvciBpdCB0byBiZSBhcyBmYXN0IGFzIHRoZSBwbGF0Zm9ybQotCSAqICAgY2FuIGFjaGl2ZSBpdC4gKQotCSAqLwotCWlmICh1bmxpa2VseSh0c2NfZGlzYWJsZWQpKQotCQkvKiBObyBsb2NraW5nIGJ1dCBhIHJhcmUgd3JvbmcgdmFsdWUgaXMgbm90IGEgYmlnIGRlYWw6ICovCi0JCXJldHVybiAoamlmZmllc182NCAtIElOSVRJQUxfSklGRklFUykgKiAoMTAwMDAwMDAwMCAvIEhaKTsKLQotCS8qIHJlYWQgdGhlIFRpbWUgU3RhbXAgQ291bnRlcjogKi8KLQlyZHRzY2xsKHRoaXNfb2Zmc2V0KTsKLQotCS8qIHJldHVybiB0aGUgdmFsdWUgaW4gbnMgKi8KLQlyZXR1cm4gY3ljbGVzXzJfbnModGhpc19vZmZzZXQpOwotfQotCi0vKiBXZSBuZWVkIHRvIGRlZmluZSBhIHJlYWwgZnVuY3Rpb24gZm9yIHNjaGVkX2Nsb2NrLCB0byBvdmVycmlkZSB0aGUKLSAgIHdlYWsgZGVmYXVsdCB2ZXJzaW9uICovCi0jaWZkZWYgQ09ORklHX1BBUkFWSVJUCi11bnNpZ25lZCBsb25nIGxvbmcgc2NoZWRfY2xvY2sodm9pZCkKLXsKLQlyZXR1cm4gcGFyYXZpcnRfc2NoZWRfY2xvY2soKTsKLX0KLSNlbHNlCi11bnNpZ25lZCBsb25nIGxvbmcgc2NoZWRfY2xvY2sodm9pZCkKLQlfX2F0dHJpYnV0ZV9fKChhbGlhcygibmF0aXZlX3NjaGVkX2Nsb2NrIikpKTsKLSNlbmRpZgotCi11bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxjdWxhdGVfY3B1X2toeih2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwgZW5kOwotCXVuc2lnbmVkIGxvbmcgY291bnQ7Ci0JdTY0IGRlbHRhNjQgPSAodTY0KVVMTE9OR19NQVg7Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCS8qIHJ1biAzIHRpbWVzIHRvIGVuc3VyZSB0aGUgY2FjaGUgaXMgd2FybSBhbmQgdG8gZ2V0IGFuIGFjY3VyYXRlIHJlYWRpbmcgKi8KLQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7Ci0JCW1hY2hfcHJlcGFyZV9jb3VudGVyKCk7Ci0JCXJkdHNjbGwoc3RhcnQpOwotCQltYWNoX2NvdW50dXAoJmNvdW50KTsKLQkJcmR0c2NsbChlbmQpOwotCi0JCS8qCi0JCSAqIEVycm9yOiBFQ1RDTkVWRVJTRVQKLQkJICogVGhlIENUQyB3YXNuJ3QgcmVsaWFibGU6IHdlIGdvdCBhIGhpdCBvbiB0aGUgdmVyeSBmaXJzdCByZWFkLAotCQkgKiBvciB0aGUgQ1BVIHdhcyBzbyBmYXN0L3Nsb3cgdGhhdCB0aGUgcXVvdGllbnQgd291bGRuJ3QgZml0IGluCi0JCSAqIDMyIGJpdHMuLgotCQkgKi8KLQkJaWYgKGNvdW50IDw9IDEpCi0JCQljb250aW51ZTsKLQotCQkvKiBjcHUgZnJlcSB0b28gc2xvdzogKi8KLQkJaWYgKChlbmQgLSBzdGFydCkgPD0gQ0FMSUJSQVRFX1RJTUVfTVNFQykKLQkJCWNvbnRpbnVlOwotCi0JCS8qCi0JCSAqIFdlIHdhbnQgdGhlIG1pbmltdW0gdGltZSBvZiBhbGwgcnVucyBpbiBjYXNlIG9uZSBvZiB0aGVtCi0JCSAqIGlzIGluYWNjdXJhdGUgZHVlIHRvIFNNSSBvciBvdGhlciBkZWxheQotCQkgKi8KLQkJZGVsdGE2NCA9IG1pbihkZWx0YTY0LCAoZW5kIC0gc3RhcnQpKTsKLQl9Ci0KLQkvKiBjcHUgZnJlcSB0b28gZmFzdCAob3IgZXZlcnkgcnVuIHdhcyBiYWQpOiAqLwotCWlmIChkZWx0YTY0ID4gKDFVTEw8PDMyKSkKLQkJZ290byBlcnI7Ci0KLQlkZWx0YTY0ICs9IENBTElCUkFURV9USU1FX01TRUMvMjsgLyogcm91bmQgZm9yIGRvX2RpdiAqLwotCWRvX2RpdihkZWx0YTY0LENBTElCUkFURV9USU1FX01TRUMpOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCXJldHVybiAodW5zaWduZWQgbG9uZylkZWx0YTY0OwotZXJyOgotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotaW50IHJlY2FsaWJyYXRlX2NwdV9raHoodm9pZCkKLXsKLSNpZm5kZWYgQ09ORklHX1NNUAotCXVuc2lnbmVkIGxvbmcgY3B1X2toel9vbGQgPSBjcHVfa2h6OwotCi0JaWYgKGNwdV9oYXNfdHNjKSB7Ci0JCWNwdV9raHogPSBjYWxjdWxhdGVfY3B1X2toeigpOwotCQl0c2Nfa2h6ID0gY3B1X2toejsKLQkJY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5ID0KLQkJCWNwdWZyZXFfc2NhbGUoY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5LAotCQkJCQljcHVfa2h6X29sZCwgY3B1X2toeik7Ci0JCXJldHVybiAwOwotCX0gZWxzZQotCQlyZXR1cm4gLUVOT0RFVjsKLSNlbHNlCi0JcmV0dXJuIC1FTk9ERVY7Ci0jZW5kaWYKLX0KLQotRVhQT1JUX1NZTUJPTChyZWNhbGlicmF0ZV9jcHVfa2h6KTsKLQotI2lmZGVmIENPTkZJR19DUFVfRlJFUQotCi0vKgotICogaWYgdGhlIENQVSBmcmVxdWVuY3kgaXMgc2NhbGVkLCBUU0MtYmFzZWQgZGVsYXlzIHdpbGwgbmVlZCBhIGRpZmZlcmVudAotICogbG9vcHNfcGVyX2ppZmZ5IHZhbHVlIHRvIGZ1bmN0aW9uIHByb3Blcmx5LgotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHJlZl9mcmVxOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9vcHNfcGVyX2ppZmZ5X3JlZjsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGNwdV9raHpfcmVmOwotCi1zdGF0aWMgaW50Ci10aW1lX2NwdWZyZXFfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGNwdWZyZXFfZnJlcXMgKmZyZXEgPSBkYXRhOwotCi0JaWYgKCFyZWZfZnJlcSkgewotCQlpZiAoIWZyZXEtPm9sZCl7Ci0JCQlyZWZfZnJlcSA9IGZyZXEtPm5ldzsKLQkJCXJldHVybiAwOwotCQl9Ci0JCXJlZl9mcmVxID0gZnJlcS0+b2xkOwotCQlsb29wc19wZXJfamlmZnlfcmVmID0gY3B1X2RhdGEoZnJlcS0+Y3B1KS5sb29wc19wZXJfamlmZnk7Ci0JCWNwdV9raHpfcmVmID0gY3B1X2toejsKLQl9Ci0KLQlpZiAoKHZhbCA9PSBDUFVGUkVRX1BSRUNIQU5HRSAgJiYgZnJlcS0+b2xkIDwgZnJlcS0+bmV3KSB8fAotCSAgICAodmFsID09IENQVUZSRVFfUE9TVENIQU5HRSAmJiBmcmVxLT5vbGQgPiBmcmVxLT5uZXcpIHx8Ci0JICAgICh2YWwgPT0gQ1BVRlJFUV9SRVNVTUVDSEFOR0UpKSB7Ci0JCWlmICghKGZyZXEtPmZsYWdzICYgQ1BVRlJFUV9DT05TVF9MT09QUykpCi0JCQljcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeSA9Ci0JCQkJY3B1ZnJlcV9zY2FsZShsb29wc19wZXJfamlmZnlfcmVmLAotCQkJCQkJcmVmX2ZyZXEsIGZyZXEtPm5ldyk7Ci0KLQkJaWYgKGNwdV9raHopIHsKLQotCQkJaWYgKG51bV9vbmxpbmVfY3B1cygpID09IDEpCi0JCQkJY3B1X2toeiA9IGNwdWZyZXFfc2NhbGUoY3B1X2toel9yZWYsCi0JCQkJCQlyZWZfZnJlcSwgZnJlcS0+bmV3KTsKLQkJCWlmICghKGZyZXEtPmZsYWdzICYgQ1BVRlJFUV9DT05TVF9MT09QUykpIHsKLQkJCQl0c2Nfa2h6ID0gY3B1X2toejsKLQkJCQlzZXRfY3ljMm5zX3NjYWxlKGNwdV9raHosIGZyZXEtPmNwdSk7Ci0JCQkJLyoKLQkJCQkgKiBUU0MgYmFzZWQgc2NoZWRfY2xvY2sgdHVybnMKLQkJCQkgKiB0byBqdW5rIHcvIGNwdWZyZXEKLQkJCQkgKi8KLQkJCQltYXJrX3RzY191bnN0YWJsZSgiY3B1ZnJlcSBjaGFuZ2VzIik7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayB0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2sgPSB7Ci0JLm5vdGlmaWVyX2NhbGwJPSB0aW1lX2NwdWZyZXFfbm90aWZpZXIKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNwdWZyZXFfdHNjKHZvaWQpCi17Ci0JcmV0dXJuIGNwdWZyZXFfcmVnaXN0ZXJfbm90aWZpZXIoJnRpbWVfY3B1ZnJlcV9ub3RpZmllcl9ibG9jaywKLQkJCQkJIENQVUZSRVFfVFJBTlNJVElPTl9OT1RJRklFUik7Ci19Ci1jb3JlX2luaXRjYWxsKGNwdWZyZXFfdHNjKTsKLQotI2VuZGlmCi0KLS8qIGNsb2NrIHNvdXJjZSBjb2RlICovCi0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGN1cnJlbnRfdHNjX2toejsKLXN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjOwotCi0vKgotICogV2UgY29tcGFyZSB0aGUgVFNDIHRvIHRoZSBjeWNsZV9sYXN0IHZhbHVlIGluIHRoZSBjbG9ja3NvdXJjZQotICogc3RydWN0dXJlIHRvIGF2b2lkIGEgbmFzdHkgdGltZS13YXJwIGlzc3VlLiBUaGlzIGNhbiBiZSBvYnNlcnZlZCBpbgotICogYSB2ZXJ5IHNtYWxsIHdpbmRvdyByaWdodCBhZnRlciBvbmUgQ1BVIHVwZGF0ZWQgY3ljbGVfbGFzdCB1bmRlcgotICogeHRpbWUgbG9jayBhbmQgdGhlIG90aGVyIENQVSByZWFkcyBhIFRTQyB2YWx1ZSB3aGljaCBpcyBzbWFsbGVyCi0gKiB0aGFuIHRoZSBjeWNsZV9sYXN0IHJlZmVyZW5jZSB2YWx1ZSBkdWUgdG8gYSBUU0Mgd2hpY2ggaXMgc2xpZ2h0eQotICogYmVoaW5kLiBUaGlzIGRlbHRhIGlzIG5vd2hlcmUgZWxzZSBvYnNlcnZhYmxlLCBidXQgaW4gdGhhdCBjYXNlIGl0Ci0gKiByZXN1bHRzIGluIGEgZm9yd2FyZCB0aW1lIGp1bXAgaW4gdGhlIHJhbmdlIG9mIGhvdXJzIGR1ZSB0byB0aGUKLSAqIHVuc2lnbmVkIGRlbHRhIGNhbGN1bGF0aW9uIG9mIHRoZSB0aW1lIGtlZXBpbmcgY29yZSBjb2RlLCB3aGljaCBpcwotICogbmVjZXNzYXJ5IHRvIHN1cHBvcnQgd3JhcHBpbmcgY2xvY2tzb3VyY2VzIGxpa2UgcG0gdGltZXIuCi0gKi8KLXN0YXRpYyBjeWNsZV90IHJlYWRfdHNjKHZvaWQpCi17Ci0JY3ljbGVfdCByZXQ7Ci0KLQlyZHRzY2xsKHJldCk7Ci0KLQlyZXR1cm4gcmV0ID49IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0ID8KLQkJcmV0IDogY2xvY2tzb3VyY2VfdHNjLmN5Y2xlX2xhc3Q7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0gewotCS5uYW1lCQkJPSAidHNjIiwKLQkucmF0aW5nCQkJPSAzMDAsCi0JLnJlYWQJCQk9IHJlYWRfdHNjLAotCS5tYXNrCQkJPSBDTE9DS1NPVVJDRV9NQVNLKDY0KSwKLQkubXVsdAkJCT0gMCwgLyogdG8gYmUgc2V0ICovCi0JLnNoaWZ0CQkJPSAyMiwKLQkuZmxhZ3MJCQk9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTIHwKLQkJCQkgIENMT0NLX1NPVVJDRV9NVVNUX1ZFUklGWSwKLX07Ci0KLXZvaWQgbWFya190c2NfdW5zdGFibGUoY2hhciAqcmVhc29uKQotewotCWlmICghdHNjX3Vuc3RhYmxlKSB7Ci0JCXRzY191bnN0YWJsZSA9IDE7Ci0JCXByaW50aygiTWFya2luZyBUU0MgdW5zdGFibGUgZHVlIHRvOiAlcy5cbiIsIHJlYXNvbik7Ci0JCS8qIENhbiBiZSBjYWxsZWQgYmVmb3JlIHJlZ2lzdHJhdGlvbiAqLwotCQlpZiAoY2xvY2tzb3VyY2VfdHNjLm11bHQpCi0JCQljbG9ja3NvdXJjZV9jaGFuZ2VfcmF0aW5nKCZjbG9ja3NvdXJjZV90c2MsIDApOwotCQllbHNlCi0JCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKLQl9Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChtYXJrX3RzY191bnN0YWJsZSk7Ci0KLXN0YXRpYyBpbnQgX19pbml0IGRtaV9tYXJrX3RzY191bnN0YWJsZShjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZCkKLXsKLQlwcmludGsoS0VSTl9OT1RJQ0UgIiVzIGRldGVjdGVkOiBtYXJraW5nIFRTQyB1bnN0YWJsZS5cbiIsCi0JICAgICAgIGQtPmlkZW50KTsKLQl0c2NfdW5zdGFibGUgPSAxOwotCXJldHVybiAwOwotfQotCi0vKiBMaXN0IG9mIHN5c3RlbXMgdGhhdCBoYXZlIGtub3duIFRTQyBwcm9ibGVtcyAqLwotc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgYmFkX3RzY19kbWlfdGFibGVbXSA9IHsKLQl7Ci0JIC5jYWxsYmFjayA9IGRtaV9tYXJrX3RzY191bnN0YWJsZSwKLQkgLmlkZW50ID0gIklCTSBUaGlua3BhZCAzODBYRCIsCi0JIC5tYXRjaGVzID0gewotCQkgICAgIERNSV9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiSUJNIiksCi0JCSAgICAgRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAiMjYzNUZBMCIpLAotCQkgICAgIH0sCi0JIH0sCi0JIHt9Ci19OwotCi0vKgotICogTWFrZSBhbiBlZHVjYXRlZCBndWVzcyBpZiB0aGUgVFNDIGlzIHRydXN0d29ydGh5IGFuZCBzeW5jaHJvbml6ZWQKLSAqIG92ZXIgYWxsIENQVXMuCi0gKi8KLV9fY3B1aW5pdCBpbnQgdW5zeW5jaHJvbml6ZWRfdHNjKHZvaWQpCi17Ci0JaWYgKCFjcHVfaGFzX3RzYyB8fCB0c2NfdW5zdGFibGUpCi0JCXJldHVybiAxOwotCi0JLyogQW55dGhpbmcgd2l0aCBjb25zdGFudCBUU0Mgc2hvdWxkIGJlIHN5bmNocm9uaXplZCAqLwotCWlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKLQkJcmV0dXJuIDA7Ci0KLQkvKgotCSAqIEludGVsIHN5c3RlbXMgYXJlIG5vcm1hbGx5IGFsbCBzeW5jaHJvbml6ZWQuCi0JICogRXhjZXB0aW9ucyBtdXN0IG1hcmsgVFNDIGFzIHVuc3RhYmxlOgotCSAqLwotCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9JTlRFTCkgewotCQkvKiBhc3N1bWUgbXVsdGkgc29ja2V0IHN5c3RlbXMgYXJlIG5vdCBzeW5jaHJvbml6ZWQ6ICovCi0JCWlmIChudW1fcG9zc2libGVfY3B1cygpID4gMSkKLQkJCXRzY191bnN0YWJsZSA9IDE7Ci0JfQotCXJldHVybiB0c2NfdW5zdGFibGU7Ci19Ci0KLS8qCi0gKiBHZW9kZV9MWCAtIHRoZSBPTFBDIENQVSBoYXMgYSBwb3NzaWJseSBhIHZlcnkgcmVsaWFibGUgVFNDCi0gKi8KLSNpZmRlZiBDT05GSUdfTUdFT0RFX0xYCi0vKiBSVFNDIGNvdW50cyBkdXJpbmcgc3VzcGVuZCAqLwotI2RlZmluZSBSVFNDX1NVU1AgMHgxMDAKLQotc3RhdGljIHZvaWQgX19pbml0IGNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcmVzX2xvdywgcmVzX2hpZ2g7Ci0KLQlyZG1zcl9zYWZlKE1TUl9HRU9ERV9CVVNDT05UX0NPTkYwLCAmcmVzX2xvdywgJnJlc19oaWdoKTsKLQlpZiAocmVzX2xvdyAmIFJUU0NfU1VTUCkKLQkJY2xvY2tzb3VyY2VfdHNjLmZsYWdzICY9IH5DTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlk7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSh2b2lkKSB7IH0KLSNlbmRpZgotCi0KLXZvaWQgX19pbml0IHRzY19pbml0KHZvaWQpCi17Ci0JaW50IGNwdTsKLQotCWlmICghY3B1X2hhc190c2MgfHwgdHNjX2Rpc2FibGVkKSB7Ci0JCS8qIERpc2FibGUgdGhlIFRTQyBpbiBjYXNlIG9mICFjcHVfaGFzX3RzYyAqLwotCQl0c2NfZGlzYWJsZWQgPSAxOwotCQlyZXR1cm47Ci0JfQotCi0JY3B1X2toeiA9IGNhbGN1bGF0ZV9jcHVfa2h6KCk7Ci0JdHNjX2toeiA9IGNwdV9raHo7Ci0KLQlpZiAoIWNwdV9raHopIHsKLQkJbWFya190c2NfdW5zdGFibGUoImNvdWxkIG5vdCBjYWxjdWxhdGUgVFNDIGtoeiIpOwotCQkvKgotCQkgKiBXZSBuZWVkIHRvIGRpc2FibGUgdGhlIFRTQyBjb21wbGV0ZWx5IGluIHRoaXMgY2FzZQotCQkgKiB0byBwcmV2ZW50IHNjaGVkX2Nsb2NrKCkgZnJvbSB1c2luZyBpdC4KLQkJICovCi0JCXRzY19kaXNhYmxlZCA9IDE7Ci0JCXJldHVybjsKLQl9Ci0KLQlwcmludGsoIkRldGVjdGVkICVsdS4lMDNsdSBNSHogcHJvY2Vzc29yLlxuIiwKLQkJCQkodW5zaWduZWQgbG9uZyljcHVfa2h6IC8gMTAwMCwKLQkJCQkodW5zaWduZWQgbG9uZyljcHVfa2h6ICUgMTAwMCk7Ci0KLQkvKgotCSAqIFNlY29uZGFyeSBDUFVzIGRvIG5vdCBydW4gdGhyb3VnaCB0c2NfaW5pdCgpLCBzbyBzZXQgdXAKLQkgKiBhbGwgdGhlIHNjYWxlIGZhY3RvcnMgZm9yIGFsbCBDUFVzLCBhc3N1bWluZyB0aGUgc2FtZQotCSAqIHNwZWVkIGFzIHRoZSBib290dXAgQ1BVLiAoY3B1ZnJlcSBub3RpZmllcnMgd2lsbCBmaXggdGhpcwotCSAqIHVwIGlmIHRoZWlyIHNwZWVkIGRpdmVyZ2VzKQotCSAqLwotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCi0JCXNldF9jeWMybnNfc2NhbGUoY3B1X2toeiwgY3B1KTsKLQotCXVzZV90c2NfZGVsYXkoKTsKLQotCS8qIENoZWNrIGFuZCBpbnN0YWxsIHRoZSBUU0MgY2xvY2tzb3VyY2UgKi8KLQlkbWlfY2hlY2tfc3lzdGVtKGJhZF90c2NfZG1pX3RhYmxlKTsKLQotCXVuc3luY2hyb25pemVkX3RzYygpOwotCWNoZWNrX2dlb2RlX3RzY19yZWxpYWJsZSgpOwotCWN1cnJlbnRfdHNjX2toeiA9IHRzY19raHo7Ci0JY2xvY2tzb3VyY2VfdHNjLm11bHQgPSBjbG9ja3NvdXJjZV9raHoybXVsdChjdXJyZW50X3RzY19raHosCi0JCQkJCQkJY2xvY2tzb3VyY2VfdHNjLnNoaWZ0KTsKLQkvKiBsb3dlciB0aGUgcmF0aW5nIGlmIHdlIGFscmVhZHkga25vdyBpdHMgdW5zdGFibGU6ICovCi0JaWYgKGNoZWNrX3RzY191bnN0YWJsZSgpKSB7Ci0JCWNsb2Nrc291cmNlX3RzYy5yYXRpbmcgPSAwOwotCQljbG9ja3NvdXJjZV90c2MuZmxhZ3MgJj0gfkNMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTOwotCX0KLQljbG9ja3NvdXJjZV9yZWdpc3RlcigmY2xvY2tzb3VyY2VfdHNjKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90c2NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC90c2NfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc4NGI4MC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNTcgKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVmcmVxLmg+Ci0jaW5jbHVkZSA8bGludXgvYWNwaV9wbXRtci5oPgotCi0jaW5jbHVkZSA8YXNtL2hwZXQuaD4KLSNpbmNsdWRlIDxhc20vdGltZXguaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLSNpbmNsdWRlIDxhc20vdmd0b2QuaD4KLQotc3RhdGljIGludCBub3RzYyBfX2luaXRkYXRhID0gMDsKLQotdW5zaWduZWQgaW50IGNwdV9raHo7CQkvKiBUU0MgY2xvY2tzIC8gdXNlYywgbm90IHVzZWQgaGVyZSAqLwotRVhQT1JUX1NZTUJPTChjcHVfa2h6KTsKLXVuc2lnbmVkIGludCB0c2Nfa2h6OwotRVhQT1JUX1NZTUJPTCh0c2Nfa2h6KTsKLQotLyogQWNjZWxlcmF0b3JzIGZvciBzY2hlZF9jbG9jaygpCi0gKiBjb252ZXJ0IGZyb20gY3ljbGVzKDY0Yml0cykgPT4gbmFub3NlY29uZHMgKDY0Yml0cykKLSAqICBiYXNpYyBlcXVhdGlvbjoKLSAqCQlucyA9IGN5Y2xlcyAvIChmcmVxIC8gbnNfcGVyX3NlYykKLSAqCQlucyA9IGN5Y2xlcyAqIChuc19wZXJfc2VjIC8gZnJlcSkKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF45IC8gKGNwdV9raHogKiAxMF4zKSkKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF42IC8gY3B1X2toeikKLSAqCi0gKglUaGVuIHdlIHVzZSBzY2FsaW5nIG1hdGggKHN1Z2dlc3RlZCBieSBnZW9yZ2VAbXZpc3RhLmNvbSkgdG8gZ2V0OgotICoJCW5zID0gY3ljbGVzICogKDEwXjYgKiBTQyAvIGNwdV9raHopIC8gU0MKLSAqCQlucyA9IGN5Y2xlcyAqIGN5YzJuc19zY2FsZSAvIFNDCi0gKgotICoJQW5kIHNpbmNlIFNDIGlzIGEgY29uc3RhbnQgcG93ZXIgb2YgdHdvLCB3ZSBjYW4gY29udmVydCB0aGUgZGl2Ci0gKiAgaW50byBhIHNoaWZ0LgotICoKLSAqICBXZSBjYW4gdXNlIGtoeiBkaXZpc29yIGluc3RlYWQgb2YgbWh6IHRvIGtlZXAgYSBiZXR0ZXIgcHJlY2lzaW9uLCBzaW5jZQotICogIGN5YzJuc19zY2FsZSBpcyBsaW1pdGVkIHRvIDEwXjYgKiAyXjEwLCB3aGljaCBmaXRzIGluIDMyIGJpdHMuCi0gKiAgKG1hdGhpZXUuZGVzbm95ZXJzQHBvbHltdGwuY2EpCi0gKgotICoJCQktam9obnN0dWxAdXMuaWJtLmNvbSAibWF0aCBpcyBoYXJkLCBsZXRzIGdvIHNob3BwaW5nISIKLSAqLwotREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgY3ljMm5zKTsKLQotc3RhdGljIHZvaWQgc2V0X2N5YzJuc19zY2FsZSh1bnNpZ25lZCBsb25nIGNwdV9raHosIGludCBjcHUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRzY19ub3csIG5zX25vdzsKLQl1bnNpZ25lZCBsb25nIGZsYWdzLCAqc2NhbGU7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0Jc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCgpOwotCi0Jc2NhbGUgPSAmcGVyX2NwdShjeWMybnMsIGNwdSk7Ci0KLQlyZHRzY2xsKHRzY19ub3cpOwotCW5zX25vdyA9IF9fY3ljbGVzXzJfbnModHNjX25vdyk7Ci0KLQlpZiAoY3B1X2toeikKLQkJKnNjYWxlID0gKE5TRUNfUEVSX01TRUMgPDwgQ1lDMk5TX1NDQUxFX0ZBQ1RPUikvY3B1X2toejsKLQotCXNjaGVkX2Nsb2NrX2lkbGVfd2FrZXVwX2V2ZW50KDApOwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLX0KLQotdW5zaWduZWQgbG9uZyBsb25nIG5hdGl2ZV9zY2hlZF9jbG9jayh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgYSA9IDA7Ci0KLQkvKiBDb3VsZCBkbyBDUFUgY29yZSBzeW5jIGhlcmUuIE9wdGVyb24gY2FuIGV4ZWN1dGUgcmR0c2Mgc3BlY3VsYXRpdmVseSwKLQkgKiB3aGljaCBtZWFucyBpdCBpcyBub3QgY29tcGxldGVseSBleGFjdCBhbmQgbWF5IG5vdCBiZSBtb25vdG9ub3VzCi0JICogYmV0d2VlbiBDUFVzLiBCdXQgdGhlIGVycm9ycyBzaG91bGQgYmUgdG9vIHNtYWxsIHRvIG1hdHRlciBmb3IKLQkgKiBzY2hlZHVsaW5nIHB1cnBvc2VzLgotCSAqLwotCi0JcmR0c2NsbChhKTsKLQlyZXR1cm4gY3ljbGVzXzJfbnMoYSk7Ci19Ci0KLS8qIFdlIG5lZWQgdG8gZGVmaW5lIGEgcmVhbCBmdW5jdGlvbiBmb3Igc2NoZWRfY2xvY2ssIHRvIG92ZXJyaWRlIHRoZQotICAgd2VhayBkZWZhdWx0IHZlcnNpb24gKi8KLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLXVuc2lnbmVkIGxvbmcgbG9uZyBzY2hlZF9jbG9jayh2b2lkKQotewotCXJldHVybiBwYXJhdmlydF9zY2hlZF9jbG9jaygpOwotfQotI2Vsc2UKLXVuc2lnbmVkIGxvbmcgbG9uZwotc2NoZWRfY2xvY2sodm9pZCkgX19hdHRyaWJ1dGVfXygoYWxpYXMoIm5hdGl2ZV9zY2hlZF9jbG9jayIpKSk7Ci0jZW5kaWYKLQotCi1zdGF0aWMgaW50IHRzY191bnN0YWJsZTsKLQotaW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKQotewotCXJldHVybiB0c2NfdW5zdGFibGU7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChjaGVja190c2NfdW5zdGFibGUpOwotCi0jaWZkZWYgQ09ORklHX0NQVV9GUkVRCi0KLS8qIEZyZXF1ZW5jeSBzY2FsaW5nIHN1cHBvcnQuIEFkanVzdCB0aGUgVFNDIGJhc2VkIHRpbWVyIHdoZW4gdGhlIGNwdSBmcmVxdWVuY3kKLSAqIGNoYW5nZXMuCi0gKgotICogUkVELVBFTjogT24gU01QIHdlIGFzc3VtZSBhbGwgQ1BVcyBydW4gd2l0aCB0aGUgc2FtZSBmcmVxdWVuY3kuICBJdCdzCi0gKiBub3QgdGhhdCBpbXBvcnRhbnQgYmVjYXVzZSBjdXJyZW50IE9wdGVyb24gc2V0dXBzIGRvIG5vdCBzdXBwb3J0Ci0gKiBzY2FsaW5nIG9uIFNNUCBhbnlyb2Fkcy4KLSAqCi0gKiBTaG91bGQgZml4IHVwIGxhc3RfdHNjIHRvby4gQ3VycmVudGx5IGdldHRpbWVvZmRheSBpbiB0aGUKLSAqIGZpcnN0IHRpY2sgYWZ0ZXIgdGhlIGNoYW5nZSB3aWxsIGJlIHNsaWdodGx5IHdyb25nLgotICovCi0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgIHJlZl9mcmVxOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9vcHNfcGVyX2ppZmZ5X3JlZjsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHRzY19raHpfcmVmOwotCi1zdGF0aWMgaW50IHRpbWVfY3B1ZnJlcV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwKLQkJCQkgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgY3B1ZnJlcV9mcmVxcyAqZnJlcSA9IGRhdGE7Ci0JdW5zaWduZWQgbG9uZyAqbHBqLCBkdW1teTsKLQotCWlmIChjcHVfaGFzKCZjcHVfZGF0YShmcmVxLT5jcHUpLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpKQotCQlyZXR1cm4gMDsKLQotCWxwaiA9ICZkdW1teTsKLQlpZiAoIShmcmVxLT5mbGFncyAmIENQVUZSRVFfQ09OU1RfTE9PUFMpKQotI2lmZGVmIENPTkZJR19TTVAKLQkJbHBqID0gJmNwdV9kYXRhKGZyZXEtPmNwdSkubG9vcHNfcGVyX2ppZmZ5OwotI2Vsc2UKLQkJbHBqID0gJmJvb3RfY3B1X2RhdGEubG9vcHNfcGVyX2ppZmZ5OwotI2VuZGlmCi0KLQlpZiAoIXJlZl9mcmVxKSB7Ci0JCXJlZl9mcmVxID0gZnJlcS0+b2xkOwotCQlsb29wc19wZXJfamlmZnlfcmVmID0gKmxwajsKLQkJdHNjX2toel9yZWYgPSB0c2Nfa2h6OwotCX0KLQlpZiAoKHZhbCA9PSBDUFVGUkVRX1BSRUNIQU5HRSAgJiYgZnJlcS0+b2xkIDwgZnJlcS0+bmV3KSB8fAotCQkodmFsID09IENQVUZSRVFfUE9TVENIQU5HRSAmJiBmcmVxLT5vbGQgPiBmcmVxLT5uZXcpIHx8Ci0JCSh2YWwgPT0gQ1BVRlJFUV9SRVNVTUVDSEFOR0UpKSB7Ci0JCSpscGogPQotCQljcHVmcmVxX3NjYWxlKGxvb3BzX3Blcl9qaWZmeV9yZWYsIHJlZl9mcmVxLCBmcmVxLT5uZXcpOwotCi0JCXRzY19raHogPSBjcHVmcmVxX3NjYWxlKHRzY19raHpfcmVmLCByZWZfZnJlcSwgZnJlcS0+bmV3KTsKLQkJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKLQkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJjcHVmcmVxIGNoYW5nZXMiKTsKLQl9Ci0KLQlzZXRfY3ljMm5zX3NjYWxlKHRzY19raHpfcmVmLCBmcmVxLT5jcHUpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrID0gewotCS5ub3RpZmllcl9jYWxsICA9IHRpbWVfY3B1ZnJlcV9ub3RpZmllcgotfTsKLQotc3RhdGljIGludCBfX2luaXQgY3B1ZnJlcV90c2Modm9pZCkKLXsKLQljcHVmcmVxX3JlZ2lzdGVyX25vdGlmaWVyKCZ0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2ssCi0JCQkJICBDUFVGUkVRX1RSQU5TSVRJT05fTk9USUZJRVIpOwotCXJldHVybiAwOwotfQotCi1jb3JlX2luaXRjYWxsKGNwdWZyZXFfdHNjKTsKLQotI2VuZGlmCi0KLSNkZWZpbmUgTUFYX1JFVFJJRVMJNQotI2RlZmluZSBTTUlfVFJFU0hPTEQJNTAwMDAKLQotLyoKLSAqIFJlYWQgVFNDIGFuZCB0aGUgcmVmZXJlbmNlIGNvdW50ZXJzLiBUYWtlIGNhcmUgb2YgU01JIGRpc3R1cmJhbmNlCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCB0c2NfcmVhZF9yZWZzKHVuc2lnbmVkIGxvbmcgKnBtLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgKmhwZXQpCi17Ci0JdW5zaWduZWQgbG9uZyB0MSwgdDI7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX1JFVFJJRVM7IGkrKykgewotCQl0MSA9IGdldF9jeWNsZXMoKTsKLQkJaWYgKGhwZXQpCi0JCQkqaHBldCA9IGhwZXRfcmVhZGwoSFBFVF9DT1VOVEVSKSAmIDB4RkZGRkZGRkY7Ci0JCWVsc2UKLQkJCSpwbSA9IGFjcGlfcG1fcmVhZF9lYXJseSgpOwotCQl0MiA9IGdldF9jeWNsZXMoKTsKLQkJaWYgKCh0MiAtIHQxKSA8IFNNSV9UUkVTSE9MRCkKLQkJCXJldHVybiB0MjsKLQl9Ci0JcmV0dXJuIFVMT05HX01BWDsKLX0KLQotLyoqCi0gKiB0c2NfY2FsaWJyYXRlIC0gY2FsaWJyYXRlIHRoZSB0c2Mgb24gYm9vdAotICovCi12b2lkIF9faW5pdCB0c2NfY2FsaWJyYXRlKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgdHNjMSwgdHNjMiwgdHIxLCB0cjIsIHBtMSwgcG0yLCBocGV0MSwgaHBldDI7Ci0JaW50IGhwZXQgPSBpc19ocGV0X2VuYWJsZWQoKSwgY3B1OwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JdHNjMSA9IHRzY19yZWFkX3JlZnMoJnBtMSwgaHBldCA/ICZocGV0MSA6IE5VTEwpOwotCi0Jb3V0YigoaW5iKDB4NjEpICYgfjB4MDIpIHwgMHgwMSwgMHg2MSk7Ci0KLQlvdXRiKDB4YjAsIDB4NDMpOwotCW91dGIoKENMT0NLX1RJQ0tfUkFURSAvICgxMDAwIC8gNTApKSAmIDB4ZmYsIDB4NDIpOwotCW91dGIoKENMT0NLX1RJQ0tfUkFURSAvICgxMDAwIC8gNTApKSA+PiA4LCAweDQyKTsKLQl0cjEgPSBnZXRfY3ljbGVzKCk7Ci0Jd2hpbGUgKChpbmIoMHg2MSkgJiAweDIwKSA9PSAwKTsKLQl0cjIgPSBnZXRfY3ljbGVzKCk7Ci0KLQl0c2MyID0gdHNjX3JlYWRfcmVmcygmcG0yLCBocGV0ID8gJmhwZXQyIDogTlVMTCk7Ci0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQkvKgotCSAqIFByZXNldCB0aGUgcmVzdWx0IHdpdGggdGhlIHJhdyBhbmQgaW5hY2N1cmF0ZSBQSVQKLQkgKiBjYWxpYnJhdGlvbiB2YWx1ZQotCSAqLwotCXRzY19raHogPSAodHIyIC0gdHIxKSAvIDUwOwotCi0JLyogaHBldCBvciBwbXRpbWVyIGF2YWlsYWJsZSA/ICovCi0JaWYgKCFocGV0ICYmICFwbTEgJiYgIXBtMikgewotCQlwcmludGsoS0VSTl9JTkZPICJUU0MgY2FsaWJyYXRlZCBhZ2FpbnN0IFBJVFxuIik7Ci0JCWdvdG8gb3V0OwotCX0KLQotCS8qIENoZWNrLCB3aGV0aGVyIHRoZSBzYW1wbGluZyB3YXMgZGlzdHVyYmVkIGJ5IGFuIFNNSSAqLwotCWlmICh0c2MxID09IFVMT05HX01BWCB8fCB0c2MyID09IFVMT05HX01BWCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJUU0MgY2FsaWJyYXRpb24gZGlzdHVyYmVkIGJ5IFNNSSwgIgotCQkgICAgICAgInVzaW5nIFBJVCBjYWxpYnJhdGlvbiByZXN1bHRcbiIpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQl0c2MyID0gKHRzYzIgLSB0c2MxKSAqIDEwMDAwMDBMOwotCi0JaWYgKGhwZXQpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBIUEVUXG4iKTsKLQkJaWYgKGhwZXQyIDwgaHBldDEpCi0JCQlocGV0MiArPSAweDEwMDAwMDAwMDsKLQkJaHBldDIgLT0gaHBldDE7Ci0JCXRzYzEgPSAoaHBldDIgKiBocGV0X3JlYWRsKEhQRVRfUEVSSU9EKSkgLyAxMDAwMDAwOwotCX0gZWxzZSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUE1fVElNRVJcbiIpOwotCQlpZiAocG0yIDwgcG0xKQotCQkJcG0yICs9IEFDUElfUE1fT1ZSUlVOOwotCQlwbTIgLT0gcG0xOwotCQl0c2MxID0gKHBtMiAqIDEwMDAwMDAwMDApIC8gUE1UTVJfVElDS1NfUEVSX1NFQzsKLQl9Ci0KLQl0c2Nfa2h6ID0gdHNjMiAvIHRzYzE7Ci0KLW91dDoKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlzZXRfY3ljMm5zX3NjYWxlKHRzY19raHosIGNwdSk7Ci19Ci0KLS8qCi0gKiBNYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGlmIHRoZSBUU0MgaXMgdHJ1c3R3b3J0aHkgYW5kIHN5bmNocm9uaXplZAotICogb3ZlciBhbGwgQ1BVcy4KLSAqLwotX19jcHVpbml0IGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCkKLXsKLQlpZiAodHNjX3Vuc3RhYmxlKQotCQlyZXR1cm4gMTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAoYXBpY19pc19jbHVzdGVyZWRfYm94KCkpCi0JCXJldHVybiAxOwotI2VuZGlmCi0KLQlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykpCi0JCXJldHVybiAwOwotCi0JLyogQXNzdW1lIG11bHRpIHNvY2tldCBzeXN0ZW1zIGFyZSBub3Qgc3luY2hyb25pemVkICovCi0JcmV0dXJuIG51bV9wcmVzZW50X2NwdXMoKSA+IDE7Ci19Ci0KLWludCBfX2luaXQgbm90c2Nfc2V0dXAoY2hhciAqcykKLXsKLQlub3RzYyA9IDE7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoIm5vdHNjIiwgbm90c2Nfc2V0dXApOwotCi1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYzsKLQotLyoKLSAqIFdlIGNvbXBhcmUgdGhlIFRTQyB0byB0aGUgY3ljbGVfbGFzdCB2YWx1ZSBpbiB0aGUgY2xvY2tzb3VyY2UKLSAqIHN0cnVjdHVyZSB0byBhdm9pZCBhIG5hc3R5IHRpbWUtd2FycC4gVGhpcyBjYW4gYmUgb2JzZXJ2ZWQgaW4gYQotICogdmVyeSBzbWFsbCB3aW5kb3cgcmlnaHQgYWZ0ZXIgb25lIENQVSB1cGRhdGVkIGN5Y2xlX2xhc3QgdW5kZXIKLSAqIHh0aW1lL3ZzeXNjYWxsX2d0b2QgbG9jayBhbmQgdGhlIG90aGVyIENQVSByZWFkcyBhIFRTQyB2YWx1ZSB3aGljaAotICogaXMgc21hbGxlciB0aGFuIHRoZSBjeWNsZV9sYXN0IHJlZmVyZW5jZSB2YWx1ZSBkdWUgdG8gYSBUU0Mgd2hpY2gKLSAqIGlzIHNsaWdodHkgYmVoaW5kLiBUaGlzIGRlbHRhIGlzIG5vd2hlcmUgZWxzZSBvYnNlcnZhYmxlLCBidXQgaW4KLSAqIHRoYXQgY2FzZSBpdCByZXN1bHRzIGluIGEgZm9yd2FyZCB0aW1lIGp1bXAgaW4gdGhlIHJhbmdlIG9mIGhvdXJzCi0gKiBkdWUgdG8gdGhlIHVuc2lnbmVkIGRlbHRhIGNhbGN1bGF0aW9uIG9mIHRoZSB0aW1lIGtlZXBpbmcgY29yZQotICogY29kZSwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgd3JhcHBpbmcgY2xvY2tzb3VyY2VzIGxpa2UgcG0KLSAqIHRpbWVyLgotICovCi1zdGF0aWMgY3ljbGVfdCByZWFkX3RzYyh2b2lkKQotewotCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpZ2V0X2N5Y2xlcygpOwotCi0JcmV0dXJuIHJldCA+PSBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdCA/Ci0JCXJldCA6IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0OwotfQotCi1zdGF0aWMgY3ljbGVfdCBfX3ZzeXNjYWxsX2ZuIHZyZWFkX3RzYyh2b2lkKQotewotCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpdmdldF9jeWNsZXMoKTsKLQotCXJldHVybiByZXQgPj0gX192c3lzY2FsbF9ndG9kX2RhdGEuY2xvY2suY3ljbGVfbGFzdCA/Ci0JCXJldCA6IF9fdnN5c2NhbGxfZ3RvZF9kYXRhLmNsb2NrLmN5Y2xlX2xhc3Q7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0gewotCS5uYW1lCQkJPSAidHNjIiwKLQkucmF0aW5nCQkJPSAzMDAsCi0JLnJlYWQJCQk9IHJlYWRfdHNjLAotCS5tYXNrCQkJPSBDTE9DS1NPVVJDRV9NQVNLKDY0KSwKLQkuc2hpZnQJCQk9IDIyLAotCS5mbGFncwkJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMgfAotCQkJCSAgQ0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZLAotCS52cmVhZAkJCT0gdnJlYWRfdHNjLAotfTsKLQotdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pCi17Ci0JaWYgKCF0c2NfdW5zdGFibGUpIHsKLQkJdHNjX3Vuc3RhYmxlID0gMTsKLQkJcHJpbnRrKCJNYXJraW5nIFRTQyB1bnN0YWJsZSBkdWUgdG8gJXNcbiIsIHJlYXNvbik7Ci0JCS8qIENoYW5nZSBvbmx5IHRoZSByYXRpbmcsIHdoZW4gbm90IHJlZ2lzdGVyZWQgKi8KLQkJaWYgKGNsb2Nrc291cmNlX3RzYy5tdWx0KQotCQkJY2xvY2tzb3VyY2VfY2hhbmdlX3JhdGluZygmY2xvY2tzb3VyY2VfdHNjLCAwKTsKLQkJZWxzZQotCQkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7Ci0JfQotfQotRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2NfdW5zdGFibGUpOwotCi12b2lkIF9faW5pdCBpbml0X3RzY19jbG9ja3NvdXJjZSh2b2lkKQotewotCWlmICghbm90c2MpIHsKLQkJY2xvY2tzb3VyY2VfdHNjLm11bHQgPSBjbG9ja3NvdXJjZV9raHoybXVsdCh0c2Nfa2h6LAotCQkJCQkJCWNsb2Nrc291cmNlX3RzYy5zaGlmdCk7Ci0JCWlmIChjaGVja190c2NfdW5zdGFibGUoKSkKLQkJCWNsb2Nrc291cmNlX3RzYy5yYXRpbmcgPSAwOwotCi0JCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV90c2MpOwotCX0KLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92aXN3c19xdWlya3MuYyBiL2FyY2gveDg2L2tlcm5lbC92aXN3c19xdWlya3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTRiZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3Zpc3dzX3F1aXJrcy5jCkBAIC0wLDAgKzEsNzA5IEBACisvKgorICogIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gc3VwcG9ydCBhbmQgcXVpcmtzLCB1bm1haW50YWluZWQuCisgKgorICogIFNwbGl0IG91dCBmcm9tIHNldHVwLmMgYnkgZGF2ZWpAc3VzZS5kZQorICoKKyAqCUNvcHlyaWdodCAoQykgMTk5OSBCZW50IEhhZ2VtYXJrLCBJbmdvIE1vbG5hcgorICoKKyAqICBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIGludGVycnVwdCBjb250cm9sbGVyCisgKgorICogIFRoZSBDb2JhbHQgc3lzdGVtIEFTSUMgaW4gdGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiBjb250YWlucyBhICJDb2JhbHQiIEFQSUMKKyAqICB3aGljaCBzZXJ2ZXMgYXMgdGhlIG1haW4gaW50ZXJydXB0IGNvbnRyb2xsZXIgaW4gdGhlIHN5c3RlbS4gIE5vbi1sZWdhY3kKKyAqICBoYXJkd2FyZSBpbiB0aGUgc3lzdGVtIHVzZXMgdGhpcyBjb250cm9sbGVyIGRpcmVjdGx5LiAgTGVnYWN5IGRldmljZXMKKyAqICBhcmUgY29ubmVjdGVkIHRvIHRoZSBQSUlYNCB3aGljaCBpbiB0dXJuIGhhcyBpdHMgODI1OShzKSBjb25uZWN0ZWQgdG8KKyAqICBhIG9mIHRoZSBDb2JhbHQgQVBJQyBlbnRyeS4KKyAqCisgKiAgMDkvMDIvMjAwMCAtIFVwZGF0ZWQgZm9yIDIuNCBieSBqYmFybmVzQHNnaS5jb20KKyAqCisgKiAgMjUvMTEvMjAwMiAtIFVwZGF0ZWQgZm9yIDIuNSBieSBBbmRyZXkgUGFuaW4gPHBhemtlQG9yYml0YTEucnU+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL3BpaXg0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CisjaW5jbHVkZSA8YXNtL3JlYm9vdC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorCisjaW5jbHVkZSA8bWFjaF9pcGkuaD4KKworI2luY2x1ZGUgIm1hY2hfYXBpYy5oIgorCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9pODI1OS5oPgorI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9jb2JhbHQuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvbGl0aGl1bS5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9waWl4NC5oPgorCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpX2lkcy5oPgorCitleHRlcm4gaW50IG5vX2Jyb2FkY2FzdDsKKworI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2xpdGhpdW0uaD4KKworY2hhciB2aXN3c19ib2FyZF90eXBlCT0gLTE7CitjaGFyIHZpc3dzX2JvYXJkX3Jldgk9IC0xOworCitpbnQgaXNfdmlzd3NfYm94KHZvaWQpCit7CisJcmV0dXJuIHZpc3dzX2JvYXJkX3R5cGUgPj0gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgdmlzd3NfdGltZV9pbml0X3F1aXJrKHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiU3RhcnRpbmcgQ29iYWx0IFRpbWVyIHN5c3RlbSBjbG9ja1xuIik7CisKKwkvKiBTZXQgdGhlIGNvdW50ZG93biB2YWx1ZSAqLworCWNvX2NwdV93cml0ZShDT19DUFVfVElNRVZBTCwgQ09fVElNRV9IWi9IWik7CisKKwkvKiBTdGFydCB0aGUgdGltZXIgKi8KKwljb19jcHVfd3JpdGUoQ09fQ1BVX0NUUkwsIGNvX2NwdV9yZWFkKENPX0NQVV9DVFJMKSB8IENPX0NUUkxfVElNRVJVTik7CisKKwkvKiBFbmFibGUgKHVubWFzaykgdGhlIHRpbWVyIGludGVycnVwdCAqLworCWNvX2NwdV93cml0ZShDT19DUFVfQ1RSTCwgY29fY3B1X3JlYWQoQ09fQ1BVX0NUUkwpICYgfkNPX0NUUkxfVElNRU1BU0spOworCisJLyoKKwkgKiBaZXJvIHJldHVybiBtZWFucyB0aGUgZ2VuZXJpYyB0aW1lciBzZXR1cCBjb2RlIHdpbGwgc2V0IHVwCisJICogdGhlIHN0YW5kYXJkIHZlY3RvcjoKKwkgKi8KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgdmlzd3NfcHJlX2ludHJfaW5pdF9xdWlyayh2b2lkKQoreworCWluaXRfVklTV1NfQVBJQ19pcnFzKCk7CisKKwkvKgorCSAqIFdlIGRvbnQgd2FudCBJU0EgaXJxcyB0byBiZSBzZXQgdXAgYnkgdGhlIGdlbmVyaWMgY29kZToKKwkgKi8KKwlyZXR1cm4gMTsKK30KKworLyogUXVpcmsgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLiAqLworCisjZGVmaW5lIE1CICgxMDI0ICogMTAyNCkKKwordW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOwordW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOworRVhQT1JUX1NZTUJPTChzZ2l2d2ZiX21lbV9waHlzKTsKK0VYUE9SVF9TWU1CT0woc2dpdndmYl9tZW1fc2l6ZSk7CisKK2xvbmcgbG9uZyBtZW1fc2l6ZSBfX2luaXRkYXRhID0gMDsKKworc3RhdGljIGNoYXIgKiBfX2luaXQgdmlzd3NfbWVtb3J5X3NldHVwX3F1aXJrKHZvaWQpCit7CisJbG9uZyBsb25nIGdmeF9tZW1fc2l6ZSA9IDggKiBNQjsKKworCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOworCisJaWYgKCFtZW1fc2l6ZSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJCb290bG9hZGVyIGRpZG4ndCBzZXQgbWVtb3J5IHNpemUsIHVwZ3JhZGUgaXQgIVxuIik7CisJCW1lbV9zaXplID0gMTI4ICogTUI7CisJfQorCisJLyoKKwkgKiB0aGlzIGhhcmRjb2RlcyB0aGUgZ3JhcGhpY3MgbWVtb3J5IHRvIDggTUIKKwkgKiBpdCByZWFsbHkgc2hvdWxkIGJlIHNpemVkIGR5bmFtaWNhbGx5IChvciBhdCBsZWFzdAorCSAqIHNldCBhcyBhIGJvb3QgcGFyYW0pCisJICovCisJaWYgKCFzZ2l2d2ZiX21lbV9zaXplKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIkRlZmF1bHRpbmcgdG8gOCBNQiBmcmFtZWJ1ZmZlciBzaXplXG4iKTsKKwkJc2dpdndmYl9tZW1fc2l6ZSA9IDggKiBNQjsKKwl9CisKKwkvKgorCSAqIFRyaW0gdG8gbmVhcmVzdCBNQgorCSAqLworCXNnaXZ3ZmJfbWVtX3NpemUgJj0gfigoMSA8PCAyMCkgLSAxKTsKKwlzZ2l2d2ZiX21lbV9waHlzID0gbWVtX3NpemUgLSBnZnhfbWVtX3NpemU7CisKKwllODIwX2FkZF9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7CisJZTgyMF9hZGRfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSAtIHNnaXZ3ZmJfbWVtX3NpemUgLSBISUdIX01FTU9SWSwgRTgyMF9SQU0pOworCWU4MjBfYWRkX3JlZ2lvbihzZ2l2d2ZiX21lbV9waHlzLCBzZ2l2d2ZiX21lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKKworCXJldHVybiAiUFJPTSI7Cit9CisKK3N0YXRpYyB2b2lkIHZpc3dzX21hY2hpbmVfZW1lcmdlbmN5X3Jlc3RhcnQodm9pZCkKK3sKKwkvKgorCSAqIFZpc3VhbCBXb3Jrc3RhdGlvbnMgcmVzdGFydCBhZnRlciB0aGlzCisJICogcmVnaXN0ZXIgaXMgcG9rZWQgb24gdGhlIFBJSVg0CisJICovCisJb3V0YihQSUlYNF9SRVNFVF9WQUwsIFBJSVg0X1JFU0VUX1BPUlQpOworfQorCitzdGF0aWMgdm9pZCB2aXN3c19tYWNoaW5lX3Bvd2VyX29mZih2b2lkKQoreworCXVuc2lnbmVkIHNob3J0IHBtX3N0YXR1czsKKy8qCWV4dGVybiB1bnNpZ25lZCBpbnQgcGNpX2J1czA7ICovCisKKwl3aGlsZSAoKHBtX3N0YXR1cyA9IGludyhQTVNUU19QT1JUKSkgJiAweDEwMCkKKwkJb3V0dyhwbV9zdGF0dXMsIFBNU1RTX1BPUlQpOworCisJb3V0dyhQTV9TVVNQRU5EX0VOQUJMRSwgUE1DTlRSTF9QT1JUKTsKKworCW1kZWxheSgxMCk7CisKKyNkZWZpbmUgUENJX0NPTkYxX0FERFJFU1MoYnVzLCBkZXZmbiwgcmVnKSBcCisJKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXZmbiA8PCA4KSB8IChyZWcgJiB+MykpCisKKy8qCW91dGwoUENJX0NPTkYxX0FERFJFU1MocGNpX2J1czAsIFNQRUNJQUxfREVWLCBTUEVDSUFMX1JFRyksIDB4Q0Y4KTsgKi8KKwlvdXRsKFBJSVhfU1BFQ0lBTF9TVE9QLCAweENGQyk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHZpc3dzX2dldF9zbXBfY29uZmlnX3F1aXJrKHVuc2lnbmVkIGludCBlYXJseSkKK3sKKwkvKgorCSAqIFByZXZlbnQgTVAtdGFibGUgcGFyc2luZyBieSB0aGUgZ2VuZXJpYyBjb2RlOgorCSAqLworCXJldHVybiAxOworfQorCitleHRlcm4gdW5zaWduZWQgaW50IF9fY3B1aW5pdGRhdGEgbWF4Y3B1czsKKworLyoKKyAqIFRoZSBWaXN1YWwgV29ya3N0YXRpb24gaXMgSW50ZWwgTVAgY29tcGxpYW50IGluIHRoZSBoYXJkd2FyZQorICogc2Vuc2UsIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYSBCSU9TKC1jb25maWd1cmF0aW9uIHRhYmxlKS4KKyAqIE5vIHByb2JsZW0gZm9yIExpbnV4LgorICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCBNUF9wcm9jZXNzb3JfaW5mbyAoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptKQoreworCWludCB2ZXIsIGxvZ2ljYWxfYXBpY2lkOworCXBoeXNpZF9tYXNrX3QgYXBpY19jcHVzOworCisJaWYgKCEobS0+bXBjX2NwdWZsYWcgJiBDUFVfRU5BQkxFRCkpCisJCXJldHVybjsKKworCWxvZ2ljYWxfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKKwlwcmludGsoS0VSTl9JTkZPICIlc0NQVSAjJWQgJXU6JXUgQVBJQyB2ZXJzaW9uICVkXG4iLAorCSAgICAgICBtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SID8gIkJvb3R1cCAiIDogIiIsCisJICAgICAgIG0tPm1wY19hcGljaWQsCisJICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9GQU1JTFlfTUFTSykgPj4gOCwKKwkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX01PREVMX01BU0spID4+IDQsCisJICAgICAgIG0tPm1wY19hcGljdmVyKTsKKworCWlmIChtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SKQorCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBtLT5tcGNfYXBpY2lkOworCisJdmVyID0gbS0+bXBjX2FwaWN2ZXI7CisJaWYgKCh2ZXIgPj0gMHgxNCAmJiBtLT5tcGNfYXBpY2lkID49IDB4ZmYpIHx8IG0tPm1wY19hcGljaWQgPj0gMHhmKSB7CisJCXByaW50ayhLRVJOX0VSUiAiUHJvY2Vzc29yICMlZCBJTlZBTElELiAoTWF4IElEOiAlZCkuXG4iLAorCQkJbS0+bXBjX2FwaWNpZCwgTUFYX0FQSUNTKTsKKwkJcmV0dXJuOworCX0KKworCWFwaWNfY3B1cyA9IGFwaWNpZF90b19jcHVfcHJlc2VudChtLT5tcGNfYXBpY2lkKTsKKwlwaHlzaWRzX29yKHBoeXNfY3B1X3ByZXNlbnRfbWFwLCBwaHlzX2NwdV9wcmVzZW50X21hcCwgYXBpY19jcHVzKTsKKwkvKgorCSAqIFZhbGlkYXRlIHZlcnNpb24KKwkgKi8KKwlpZiAodmVyID09IDB4MCkgeworCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBBUElDIHZlcnNpb24gaXMgMCBmb3IgQ1BVIyVkISAiCisJCQkiZml4aW5nIHVwIHRvIDB4MTAuICh0ZWxsIHlvdXIgaHcgdmVuZG9yKVxuIiwKKwkJCW0tPm1wY19hcGljaWQpOworCQl2ZXIgPSAweDEwOworCX0KKwlhcGljX3ZlcnNpb25bbS0+bXBjX2FwaWNpZF0gPSB2ZXI7Cit9CisKK2ludCBfX2luaXQgdmlzd3NfZmluZF9zbXBfY29uZmlnX3F1aXJrKHVuc2lnbmVkIGludCByZXNlcnZlKQoreworCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbXAgPSBwaHlzX3RvX3ZpcnQoQ09fQ1BVX1RBQl9QSFlTKTsKKwl1bnNpZ25lZCBzaG9ydCBuY3B1cyA9IHJlYWR3KHBoeXNfdG9fdmlydChDT19DUFVfTlVNX1BIWVMpKTsKKworCWlmIChuY3B1cyA+IENPX0NQVV9NQVgpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiZmluZF92aXN3c19zbXA6IGdvdCBjcHUgY291bnQgb2YgJWQgYXQgJXBcbiIsCisJCQluY3B1cywgbXApOworCisJCW5jcHVzID0gQ09fQ1BVX01BWDsKKwl9CisKKwlpZiAobmNwdXMgPiBtYXhjcHVzKQorCQluY3B1cyA9IG1heGNwdXM7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzbXBfZm91bmRfY29uZmlnID0gMTsKKyNlbmRpZgorCXdoaWxlIChuY3B1cy0tKQorCQlNUF9wcm9jZXNzb3JfaW5mbyhtcCsrKTsKKworCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOworCisJcmV0dXJuIDE7Cit9CisKK2V4dGVybiBpbnQgdmlzd3NfdHJhcF9pbml0X3F1aXJrKHZvaWQpOworCit2b2lkIF9faW5pdCB2aXN3c19lYXJseV9kZXRlY3Qodm9pZCkKK3sKKwlpbnQgcmF3OworCisJdmlzd3NfYm9hcmRfdHlwZSA9IChjaGFyKShpbmJfcChQSUlYX0dQSV9CRF9SRUcpICYgUElJWF9HUElfQkRfUkVHKQorCQkJCQkJCSA+PiBQSUlYX0dQSV9CRF9TSElGVDsKKworCWlmICh2aXN3c19ib2FyZF90eXBlIDwgMCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJbnN0YWxsIHNwZWNpYWwgcXVpcmtzIGZvciB0aW1lciwgaW50ZXJydXB0IGFuZCBtZW1vcnkgc2V0dXA6CisJICovCisJYXJjaF90aW1lX2luaXRfcXVpcmsJCT0gdmlzd3NfdGltZV9pbml0X3F1aXJrOworCWFyY2hfcHJlX2ludHJfaW5pdF9xdWlyawk9IHZpc3dzX3ByZV9pbnRyX2luaXRfcXVpcms7CisJYXJjaF9tZW1vcnlfc2V0dXBfcXVpcmsJCT0gdmlzd3NfbWVtb3J5X3NldHVwX3F1aXJrOworCisJLyoKKwkgKiBGYWxsIGJhY2sgdG8gZ2VuZXJpYyBiZWhhdmlvciBmb3IgdHJhcHM6CisJICovCisJYXJjaF9pbnRyX2luaXRfcXVpcmsJCT0gTlVMTDsKKwlhcmNoX3RyYXBfaW5pdF9xdWlyawkJPSB2aXN3c190cmFwX2luaXRfcXVpcms7CisKKwkvKgorCSAqIEluc3RhbGwgcmVib290IHF1aXJrczoKKwkgKi8KKwlwbV9wb3dlcl9vZmYJCQk9IHZpc3dzX21hY2hpbmVfcG93ZXJfb2ZmOworCW1hY2hpbmVfb3BzLmVtZXJnZW5jeV9yZXN0YXJ0CT0gdmlzd3NfbWFjaGluZV9lbWVyZ2VuY3lfcmVzdGFydDsKKworCS8qCisJICogRG8gbm90IHVzZSBicm9hZGNhc3QgSVBJczoKKwkgKi8KKwlub19icm9hZGNhc3QgPSAwOworCisJLyoKKwkgKiBPdmVycmlkZSBnZW5lcmljIE1QLXRhYmxlIHBhcnNpbmc6CisJICovCisJbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyawk9IHZpc3dzX2dldF9zbXBfY29uZmlnX3F1aXJrOworCW1hY2hfZmluZF9zbXBfY29uZmlnX3F1aXJrCT0gdmlzd3NfZmluZF9zbXBfY29uZmlnX3F1aXJrOworCisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJLyoKKwkgKiBUdXJuIG9mZiBJTy1BUElDIGRldGVjdGlvbiBhbmQgaW5pdGlhbGl6YXRpb246CisJICovCisJc2tpcF9pb2FwaWNfc2V0dXAJCT0gMTsKKyNlbmRpZgorCisJLyoKKwkgKiBHZXQgQm9hcmQgcmV2LgorCSAqIEZpcnN0LCB3ZSBoYXZlIHRvIGluaXRpYWxpemUgdGhlIDMwNyBwYXJ0IHRvIGFsbG93IHVzIGFjY2VzcworCSAqIHRvIHRoZSBHUElPIHJlZ2lzdGVycy4gIExldCdzIG1hcCB0aGVtIGF0IDB4MGZjMCB3aGljaCBpcyByaWdodAorCSAqIGFmdGVyIHRoZSBQSUlYNCBQTSBzZWN0aW9uLgorCSAqLworCW91dGJfcChTSU9fREVWX1NFTCwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX0RFViwgU0lPX0RBVEEpOwkvKiBUYWxrIHRvIEdQSU8gcmVncy4gKi8KKworCW91dGJfcChTSU9fREVWX01TQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0VOQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyogRW5hYmxlIEdQSU8gcmVnaXN0ZXJzLiAqLworCisJLyoKKwkgKiBOb3csIHdlIGhhdmUgdG8gbWFwIHRoZSBwb3dlciBtYW5hZ2VtZW50IHNlY3Rpb24gdG8gd3JpdGUKKwkgKiBhIGJpdCB3aGljaCBlbmFibGVzIGFjY2VzcyB0byB0aGUgR1BJTyByZWdpc3RlcnMuCisJICogV2hhdCBsdW5hdGljIGNhbWUgdXAgd2l0aCB0aGlzIHNoaXQ/CisJICovCisJb3V0Yl9wKFNJT19ERVZfU0VMLCBTSU9fSU5ERVgpOworCW91dGJfcChTSU9fUE1fREVWLCBTSU9fREFUQSk7CS8qIFRhbGsgdG8gR1BJTyByZWdzLiAqLworCisJb3V0Yl9wKFNJT19ERVZfTVNCLCBTSU9fSU5ERVgpOworCW91dGJfcChTSU9fUE1fTVNCLCBTSU9fREFUQSk7CS8qIE1TQiBvZiBQTSBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgUE0gYmFzZSBhZGRyZXNzICovCisKKwlvdXRiX3AoU0lPX0RFVl9FTkIsIFNJT19JTkRFWCk7CisJb3V0Yl9wKDEsIFNJT19EQVRBKTsJCS8qIEVuYWJsZSBQTSByZWdpc3RlcnMuICovCisKKwkvKgorCSAqIE5vdywgd3JpdGUgdGhlIFBNIHJlZ2lzdGVyIHdoaWNoIGVuYWJsZXMgdGhlIEdQSU8gcmVnaXN0ZXJzLgorCSAqLworCW91dGJfcChTSU9fUE1fRkVSMiwgU0lPX1BNX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX0dQX0VOLCBTSU9fUE1fREFUQSk7CisKKwkvKgorCSAqIE5vdywgaW5pdGlhbGl6ZSB0aGUgR1BJTyByZWdpc3RlcnMuCisJICogV2Ugd2FudCB0aGVtIGFsbCB0byBiZSBpbnB1dHMgd2hpY2ggaXMgdGhlCisJICogcG93ZXIgb24gZGVmYXVsdCwgc28gbGV0J3MgbGVhdmUgdGhlbSBhbG9uZS4KKwkgKiBTbywgbGV0J3MganVzdCByZWFkIHRoZSBib2FyZCByZXYhCisJICovCisJcmF3ID0gaW5iX3AoU0lPX0dQX0RBVEExKTsKKwlyYXcgJj0gMHg3ZjsJLyogNyBiaXRzIG9mIHZhbGlkIGJvYXJkIHJldmlzaW9uIElELiAqLworCisJaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwKSB7CisJCWlmIChyYXcgPCAweDYpIHsKKwkJCXZpc3dzX2JvYXJkX3JldiA9IDQ7CisJCX0gZWxzZSBpZiAocmF3IDwgMHhjKSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSA1OworCQl9IGVsc2UgeworCQkJdmlzd3NfYm9hcmRfcmV2ID0gNjsKKwkJfQorCX0gZWxzZSBpZiAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU181NDApIHsKKwkJCXZpc3dzX2JvYXJkX3JldiA9IDI7CisJCX0gZWxzZSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSByYXc7CisJCX0KKworCXByaW50ayhLRVJOX0lORk8gIlNpbGljb24gR3JhcGhpY3MgVmlzdWFsIFdvcmtzdGF0aW9uICVzIChyZXYgJWQpIGRldGVjdGVkXG4iLAorCSAgICAgICAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU18zMjAgPyAiMzIwIiA6CisJICAgICAgICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzU0MCA/ICI1NDAiIDoKKwkJInVua25vd24iKSksIHZpc3dzX2JvYXJkX3Jldik7Cit9CisKKyNkZWZpbmUgQTAxMjM0IChMSV9JTlRBXzAgfCBMSV9JTlRBXzEgfCBMSV9JTlRBXzIgfCBMSV9JTlRBXzMgfCBMSV9JTlRBXzQpCisjZGVmaW5lIEJDRCAoTElfSU5UQiB8IExJX0lOVEMgfCBMSV9JTlREKQorI2RlZmluZSBBTExERVZTIChBMDEyMzQgfCBCQ0QpCisKK3N0YXRpYyBfX2luaXQgdm9pZCBsaXRoaXVtX2luaXQodm9pZCkKK3sKKwlzZXRfZml4bWFwKEZJWF9MSV9QQ0lBLCBMSV9QQ0lfQV9QSFlTKTsKKwlzZXRfZml4bWFwKEZJWF9MSV9QQ0lCLCBMSV9QQ0lfQl9QSFlTKTsKKworCWlmICgobGlfcGNpYV9yZWFkMTYoUENJX1ZFTkRPUl9JRCkgIT0gUENJX1ZFTkRPUl9JRF9TR0kpIHx8CisJICAgIChsaV9wY2lhX3JlYWQxNihQQ0lfREVWSUNFX0lEKSAhPSBQQ0lfREVWSUNFX0lEX1NHSV9MSVRISVVNKSkgeworCQlwcmludGsoS0VSTl9FTUVSRyAiTGl0aGl1bSBob3N0YnJpZGdlICVjIG5vdCBmb3VuZFxuIiwgJ0EnKTsKKy8qCQlwYW5pYygiVGhpcyBtYWNoaW5lIGlzIG5vdCBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIDMyMC81NDAiKTsgKi8KKwl9CisKKwlpZiAoKGxpX3BjaWJfcmVhZDE2KFBDSV9WRU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfU0dJKSB8fAorCSAgICAobGlfcGNpYl9yZWFkMTYoUENJX0RFVklDRV9JRCkgIT0gUENJX0RFVklDRV9JRF9TR0lfTElUSElVTSkpIHsKKwkJcHJpbnRrKEtFUk5fRU1FUkcgIkxpdGhpdW0gaG9zdGJyaWRnZSAlYyBub3QgZm91bmRcbiIsICdCJyk7CisvKgkJcGFuaWMoIlRoaXMgbWFjaGluZSBpcyBub3QgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiAzMjAvNTQwIik7ICovCisJfQorCisJbGlfcGNpYV93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7CisJbGlfcGNpYl93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBjb2JhbHRfaW5pdCh2b2lkKQoreworCS8qCisJICogT24gbm9ybWFsIFNNUCBQQyB0aGlzIGlzIHVzZWQgb25seSB3aXRoIFNNUCwgYnV0IHdlIGhhdmUgdG8KKwkgKiB1c2UgaXQgYW5kIHNldCBpdCB1cCBoZXJlIHRvIHN0YXJ0IHRoZSBDb2JhbHQgY2xvY2sKKwkgKi8KKwlzZXRfZml4bWFwKEZJWF9BUElDX0JBU0UsIEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpOworCXNldHVwX2xvY2FsX0FQSUMoKTsKKwlwcmludGsoS0VSTl9JTkZPICJMb2NhbCBBUElDIFZlcnNpb24gJSN4LCBJRCAlI3hcbiIsCisJCSh1bnNpZ25lZCBpbnQpYXBpY19yZWFkKEFQSUNfTFZSKSwKKwkJKHVuc2lnbmVkIGludClhcGljX3JlYWQoQVBJQ19JRCkpOworCisJc2V0X2ZpeG1hcChGSVhfQ09fQ1BVLCBDT19DUFVfUEhZUyk7CisJc2V0X2ZpeG1hcChGSVhfQ09fQVBJQywgQ09fQVBJQ19QSFlTKTsKKwlwcmludGsoS0VSTl9JTkZPICJDb2JhbHQgUmV2aXNpb24gJSNseCwgQVBJQyBJRCAlI2x4XG4iLAorCQljb19jcHVfcmVhZChDT19DUFVfUkVWKSwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpKTsKKworCS8qIEVuYWJsZSBDb2JhbHQgQVBJQyBiZWluZyBjYXJlZnVsIHRvIE5PVCBjaGFuZ2UgdGhlIElEISAqLworCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19JRCwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpIHwgQ09fQVBJQ19FTkFCTEUpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQ29iYWx0IEFQSUMgZW5hYmxlZDogSUQgcmVnICUjbHhcbiIsCisJCWNvX2FwaWNfcmVhZChDT19BUElDX0lEKSk7Cit9CisKK2ludCBfX2luaXQgdmlzd3NfdHJhcF9pbml0X3F1aXJrKHZvaWQpCit7CisJbGl0aGl1bV9pbml0KCk7CisJY29iYWx0X2luaXQoKTsKKworCXJldHVybiAxOworfQorCisvKgorICogSVJRIGNvbnRyb2xsZXIgLyBBUElDIHN1cHBvcnQ6CisgKi8KKworc3RhdGljIERFRklORV9TUElOTE9DSyhjb2JhbHRfbG9jayk7CisKKy8qCisgKiBTZXQgdGhlIGdpdmVuIENvYmFsdCBBUElDIFJlZGlyZWN0aW9uIFRhYmxlIGVudHJ5IHRvIHBvaW50CisgKiB0byB0aGUgZ2l2ZW4gSURUIHZlY3Rvci9pbmRleC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGNvX2FwaWNfc2V0KGludCBlbnRyeSwgaW50IGlycSkKK3sKKwljb19hcGljX3dyaXRlKENPX0FQSUNfTE8oZW50cnkpLCBDT19BUElDX0xFVkVMIHwgKGlycSArIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUikpOworCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19ISShlbnRyeSksIDApOworfQorCisvKgorICogQ29iYWx0IChJTyktQVBJQyBmdW5jdGlvbnMgdG8gaGFuZGxlIFBDSSBkZXZpY2VzLgorICovCitzdGF0aWMgaW5saW5lIGludCBjb19hcGljX2lkZTBfaGFjayh2b2lkKQoreworCWV4dGVybiBjaGFyIHZpc3dzX2JvYXJkX3R5cGU7CisJZXh0ZXJuIGNoYXIgdmlzd3NfYm9hcmRfcmV2OworCisJaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwICYmIHZpc3dzX2JvYXJkX3JldiA9PSA1KQorCQlyZXR1cm4gNTsKKwlyZXR1cm4gQ09fQVBJQ19JREUwOworfQorCitzdGF0aWMgaW50IGlzX2NvX2FwaWModW5zaWduZWQgaW50IGlycSkKK3sKKwlpZiAoSVNfQ09fQVBJQyhpcnEpKQorCQlyZXR1cm4gQ09fQVBJQyhpcnEpOworCisJc3dpdGNoIChpcnEpIHsKKwkJY2FzZSAwOiByZXR1cm4gQ09fQVBJQ19DUFU7CisJCWNhc2UgQ09fSVJRX0lERTA6IHJldHVybiBjb19hcGljX2lkZTBfaGFjaygpOworCQljYXNlIENPX0lSUV9JREUxOiByZXR1cm4gQ09fQVBJQ19JREUxOworCQlkZWZhdWx0OiByZXR1cm4gLTE7CisJfQorfQorCisKKy8qCisgKiBUaGlzIGlzIHRoZSBTR0kgQ29iYWx0IChJTy0pQVBJQzoKKyAqLworCitzdGF0aWMgdm9pZCBlbmFibGVfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWNvX2FwaWNfc2V0KGlzX2NvX2FwaWMoaXJxKSwgaXJxKTsKK30KKworc3RhdGljIHZvaWQgZGlzYWJsZV9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJaW50IGVudHJ5ID0gaXNfY29fYXBpYyhpcnEpOworCisJY29fYXBpY193cml0ZShDT19BUElDX0xPKGVudHJ5KSwgQ09fQVBJQ19NQVNLKTsKKwljb19hcGljX3JlYWQoQ09fQVBJQ19MTyhlbnRyeSkpOworfQorCisvKgorICogImlycSIgcmVhbGx5IGp1c3Qgc2VydmVzIHRvIGlkZW50aWZ5IHRoZSBkZXZpY2UuICBIZXJlIGlzIHdoZXJlIHdlCisgKiBtYXAgdGhpcyB0byB0aGUgQ29iYWx0IEFQSUMgZW50cnkgd2hlcmUgaXQncyBwaHlzaWNhbGx5IHdpcmVkLgorICogVGhpcyBpcyBjYWxsZWQgdmlhIHJlcXVlc3RfaXJxIC0+IHNldHVwX2lycSAtPiBpcnFfZGVzYy0+c3RhcnR1cCgpCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnR1cF9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworCWlmICgoaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJiAoSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MgfCBJUlFfV0FJVElORykpKQorCQlpcnFfZGVzY1tpcnFdLnN0YXR1cyAmPSB+KElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTIHwgSVJRX1dBSVRJTkcpOworCWVuYWJsZV9jb2JhbHRfaXJxKGlycSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYWNrX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7CisJZGlzYWJsZV9jb2JhbHRfaXJxKGlycSk7CisJYXBpY193cml0ZShBUElDX0VPSSwgQVBJQ19FSU9fQUNLKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBlbmRfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwlpZiAoIShpcnFfZGVzY1tpcnFdLnN0YXR1cyAmIChJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUykpKQorCQllbmFibGVfY29iYWx0X2lycShpcnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgY29iYWx0X2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJDb2JhbHQtQVBJQyIsCisJLnN0YXJ0dXAgPQlzdGFydHVwX2NvYmFsdF9pcnEsCisJLnNodXRkb3duID0JZGlzYWJsZV9jb2JhbHRfaXJxLAorCS5lbmFibGUgPQllbmFibGVfY29iYWx0X2lycSwKKwkuZGlzYWJsZSA9CWRpc2FibGVfY29iYWx0X2lycSwKKwkuYWNrID0JCWFja19jb2JhbHRfaXJxLAorCS5lbmQgPQkJZW5kX2NvYmFsdF9pcnEsCit9OworCisKKy8qCisgKiBUaGlzIGlzIHRoZSBQSUlYNC1iYXNlZCA4MjU5IHRoYXQgaXMgd2lyZWQgdXAgaW5kaXJlY3RseSB0byBDb2JhbHQKKyAqIC0tIG5vdCB0aGUgbWFubmVyIGV4cGVjdGVkIGJ5IHRoZSBjb2RlIGluIGk4MjU5LmMuCisgKgorICogdGhlcmUgaXMgYSAnbWFzdGVyJyBwaHlzaWNhbCBpbnRlcnJ1cHQgc291cmNlIHRoYXQgZ2V0cyBzZW50IHRvCisgKiB0aGUgQ1BVLiBCdXQgaW4gdGhlIGNoaXBzZXQgdGhlcmUgYXJlIHZhcmlvdXMgJ3ZpcnR1YWwnIGludGVycnVwdHMKKyAqIHdhaXRpbmcgdG8gYmUgaGFuZGxlZC4gV2UgcmVwcmVzZW50IHRoaXMgdG8gTGludXggdGhyb3VnaCBhICdtYXN0ZXInCisgKiBpbnRlcnJ1cHQgY29udHJvbGxlciB0eXBlLCBhbmQgdGhyb3VnaCBhIHNwZWNpYWwgdmlydHVhbCBpbnRlcnJ1cHQtCisgKiBjb250cm9sbGVyLiBEZXZpY2UgZHJpdmVycyBvbmx5IHNlZSB0aGUgdmlydHVhbCBpbnRlcnJ1cHQgc291cmNlcy4KKyAqLworc3RhdGljIHVuc2lnbmVkIGludCBzdGFydHVwX3BpaXg0X21hc3Rlcl9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwlpbml0XzgyNTlBKDApOworCisJcmV0dXJuIHN0YXJ0dXBfY29iYWx0X2lycShpcnEpOworfQorCitzdGF0aWMgdm9pZCBlbmRfcGlpeDRfbWFzdGVyX2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwllbmFibGVfY29iYWx0X2lycShpcnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcGlpeDRfbWFzdGVyX2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJQSUlYNC1tYXN0ZXIiLAorCS5zdGFydHVwID0Jc3RhcnR1cF9waWl4NF9tYXN0ZXJfaXJxLAorCS5hY2sgPQkJYWNrX2NvYmFsdF9pcnEsCisJLmVuZCA9CQllbmRfcGlpeDRfbWFzdGVyX2lycSwKK307CisKKworc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBwaWl4NF92aXJ0dWFsX2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJQSUlYNC12aXJ0dWFsIiwKKwkuc2h1dGRvd24gPQlkaXNhYmxlXzgyNTlBX2lycSwKKwkuZW5hYmxlID0JZW5hYmxlXzgyNTlBX2lycSwKKwkuZGlzYWJsZSA9CWRpc2FibGVfODI1OUFfaXJxLAorfTsKKworCisvKgorICogUElJWDQtODI1OSBtYXN0ZXIvdmlydHVhbCBmdW5jdGlvbnMgdG8gaGFuZGxlIGludGVycnVwdCByZXF1ZXN0cworICogZnJvbSBsZWdhY3kgZGV2aWNlczogZmxvcHB5LCBwYXJhbGxlbCwgc2VyaWFsLCBydGMuCisgKgorICogTm9uZSBvZiB0aGVzZSBnZXQgQ29iYWx0IEFQSUMgZW50cmllcywgbmVpdGhlciBkbyB0aGV5IGhhdmUgSURUCisgKiBlbnRyaWVzLiBUaGVzZSBpbnRlcnJ1cHRzIGFyZSBwdXJlbHkgdmlydHVhbCBhbmQgZGlzdHJpYnV0ZWQgZnJvbQorICogdGhlICdtYXN0ZXInIGludGVycnVwdCBzb3VyY2U6IENPX0lSUV84MjU5LgorICoKKyAqIFdoZW4gdGhlIDgyNTkgaW50ZXJydXB0cyBpdHMgaGFuZGxlciBmaWd1cmVzIG91dCB3aGljaCBvZiB0aGVzZQorICogZGV2aWNlcyBpcyBpbnRlcnJ1cHRpbmcgYW5kIGRpc3BhdGNoZXMgdG8gaXRzIGhhbmRsZXIuCisgKgorICogQ0FSRUZVTDogZGV2aWNlcyBzZWUgdGhlICd2aXJ0dWFsJyBpbnRlcnJ1cHQgb25seS4gVGh1cyBkaXNhYmxlLworICogZW5hYmxlX2lycSBnZXRzIHRoZSByaWdodCBpcnEuIFRoaXMgJ21hc3RlcicgaXJxIGlzIG5ldmVyIGRpcmVjdGx5CisgKiBtYW5pcHVsYXRlZCBieSBhbnkgZHJpdmVyLgorICovCitzdGF0aWMgaXJxcmV0dXJuX3QgcGlpeDRfbWFzdGVyX2ludHIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCWludCByZWFsaXJxOworCWlycV9kZXNjX3QgKmRlc2M7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJLyogRmluZCBvdXQgd2hhdCdzIGludGVycnVwdGluZyBpbiB0aGUgUElJWDQgbWFzdGVyIDgyNTkgKi8KKwlvdXRiKDB4MGMsIDB4MjApOwkJLyogT0NXMyBQb2xsIGNvbW1hbmQgKi8KKwlyZWFsaXJxID0gaW5iKDB4MjApOworCisJLyoKKwkgKiBCaXQgNyA9PSAwIG1lYW5zIGludmFsaWQvc3B1cmlvdXMKKwkgKi8KKwlpZiAodW5saWtlbHkoIShyZWFsaXJxICYgMHg4MCkpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlyZWFsaXJxICY9IDc7CisKKwlpZiAodW5saWtlbHkocmVhbGlycSA9PSAyKSkgeworCQlvdXRiKDB4MGMsIDB4YTApOworCQlyZWFsaXJxID0gaW5iKDB4YTApOworCisJCWlmICh1bmxpa2VseSghKHJlYWxpcnEgJiAweDgwKSkpCisJCQlnb3RvIG91dF91bmxvY2s7CisKKwkJcmVhbGlycSA9IChyZWFsaXJxICYgNykgKyA4OworCX0KKworCS8qIG1hc2sgYW5kIGFjayBpbnRlcnJ1cHQgKi8KKwljYWNoZWRfaXJxX21hc2sgfD0gMSA8PCByZWFsaXJxOworCWlmICh1bmxpa2VseShyZWFsaXJxID4gNykpIHsKKwkJaW5iKDB4YTEpOworCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCAweGExKTsKKwkJb3V0YigweDYwICsgKHJlYWxpcnEgJiA3KSwgMHhhMCk7CisJCW91dGIoMHg2MCArIDIsIDB4MjApOworCX0gZWxzZSB7CisJCWluYigweDIxKTsKKwkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIDB4MjEpOworCQlvdXRiKDB4NjAgKyByZWFsaXJxLCAweDIwKTsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJZGVzYyA9IGlycV9kZXNjICsgcmVhbGlycTsKKworCS8qCisJICogaGFuZGxlIHRoaXMgJ3ZpcnR1YWwgaW50ZXJydXB0JyBhcyBhIENvYmFsdCBvbmUgbm93LgorCSAqLworCWtzdGF0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCkpLmlycXNbcmVhbGlycV0rKzsKKworCWlmIChsaWtlbHkoZGVzYy0+YWN0aW9uICE9IE5VTEwpKQorCQloYW5kbGVfSVJRX2V2ZW50KHJlYWxpcnEsIGRlc2MtPmFjdGlvbik7CisKKwlpZiAoIShkZXNjLT5zdGF0dXMgJiBJUlFfRElTQUJMRUQpKQorCQllbmFibGVfODI1OUFfaXJxKHJlYWxpcnEpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworCitvdXRfdW5sb2NrOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJcmV0dXJuIElSUV9OT05FOworfQorCitzdGF0aWMgc3RydWN0IGlycWFjdGlvbiBtYXN0ZXJfYWN0aW9uID0geworCS5oYW5kbGVyID0JcGlpeDRfbWFzdGVyX2ludHIsCisJLm5hbWUgPQkJIlBJSVg0LTgyNTkiLAorfTsKKworc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gY2FzY2FkZV9hY3Rpb24gPSB7CisJLmhhbmRsZXIgPSAJbm9fYWN0aW9uLAorCS5uYW1lID0JCSJjYXNjYWRlIiwKK307CisKKwordm9pZCBpbml0X1ZJU1dTX0FQSUNfaXJxcyh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IENPX0lSUV9BUElDMCArIENPX0FQSUNfTEFTVCArIDE7IGkrKykgeworCQlpcnFfZGVzY1tpXS5zdGF0dXMgPSBJUlFfRElTQUJMRUQ7CisJCWlycV9kZXNjW2ldLmFjdGlvbiA9IDA7CisJCWlycV9kZXNjW2ldLmRlcHRoID0gMTsKKworCQlpZiAoaSA9PSAwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV9JREUwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV9JREUxKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV84MjU5KSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X21hc3Rlcl9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpIDwgQ09fSVJRX0FQSUMwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X3ZpcnR1YWxfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoSVNfQ09fQVBJQyhpKSkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7CisJCX0KKwl9CisKKwlzZXR1cF9pcnEoQ09fSVJRXzgyNTksICZtYXN0ZXJfYWN0aW9uKTsKKwlzZXR1cF9pcnEoMiwgJmNhc2NhZGVfYWN0aW9uKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92bWlfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC92bWlfMzIuYwppbmRleCA5NTZmMzg5Li5iMTUzNDYwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdm1pXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3ZtaV8zMi5jCkBAIC0xNTEsNyArMTUxLDcgQEAKIAkJCQkJICAgICAgaW5zbnMsIGlwKTsKIAkJY2FzZSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlyZXQpOgogCQkJcmV0dXJuIHBhdGNoX2ludGVybmFsKFZNSV9DQUxMX0lSRVQsIGxlbiwgaW5zbnMsIGlwKTsKLQkJY2FzZSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzY2FsbF9yZXQpOgorCQljYXNlIFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMuaXJxX2VuYWJsZV9zeXNleGl0KToKIAkJCXJldHVybiBwYXRjaF9pbnRlcm5hbChWTUlfQ0FMTF9TWVNFWElULCBsZW4sIGluc25zLCBpcCk7CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKQEAgLTg5Niw3ICs4OTYsNyBAQAogCSAqIHRoZSBiYWNrZW5kLiAgVGhleSBhcmUgcGVyZm9ybWFuY2UgY3JpdGljYWwgYW55d2F5LCBzbyByZXF1aXJpbmcKIAkgKiBhIHBhdGNoIGlzIG5vdCBhIGJpZyBwcm9ibGVtLgogCSAqLwotCXB2X2NwdV9vcHMuaXJxX2VuYWJsZV9zeXNjYWxsX3JldCA9ICh2b2lkICopMHhmZWVkYmFiMDsKKwlwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzZXhpdCA9ICh2b2lkICopMHhmZWVkYmFiMDsKIAlwdl9jcHVfb3BzLmlyZXQgPSAodm9pZCAqKTB4YmFkYmFiMDsKIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTkzMiw3ICs5MzIsNyBAQAogCQlwdl9hcGljX29wcy5zZXR1cF9zZWNvbmRhcnlfY2xvY2sgPSB2bWlfdGltZV9hcF9pbml0OwogI2VuZGlmCiAJCXB2X3RpbWVfb3BzLnNjaGVkX2Nsb2NrID0gdm1pX3NjaGVkX2Nsb2NrOwotIAkJcHZfdGltZV9vcHMuZ2V0X2NwdV9raHogPSB2bWlfY3B1X2toejsKKwkJcHZfdGltZV9vcHMuZ2V0X3RzY19raHogPSB2bWlfdHNjX2toejsKIAogCQkvKiBXZSBoYXZlIHRydWUgd2FsbGNsb2NrIGZ1bmN0aW9uczsgZGlzYWJsZSBDTU9TIGNsb2NrIHN5bmMgKi8KIAkJbm9fc3luY19jbW9zX2Nsb2NrID0gMTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92bWljbG9ja18zMi5jIGIvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKaW5kZXggYTJiMDMwNy4uNjk1Mzg1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKQEAgLTMzLDggKzMzLDcgQEAKICNpbmNsdWRlIDxhc20vYXBpYy5oPgogI2luY2x1ZGUgPGFzbS90aW1lci5oPgogI2luY2x1ZGUgPGFzbS9pODI1My5oPgotCi0jaW5jbHVkZSA8aXJxX3ZlY3RvcnMuaD4KKyNpbmNsdWRlIDxhc20vaXJxX3ZlY3RvcnMuaD4KIAogI2RlZmluZSBWTUlfT05FU0hPVCAgKFZNSV9BTEFSTV9JU19PTkVTSE9UICB8IFZNSV9DWUNMRVNfUkVBTCB8IHZtaV9nZXRfYWxhcm1fd2lyaW5nKCkpCiAjZGVmaW5lIFZNSV9QRVJJT0RJQyAoVk1JX0FMQVJNX0lTX1BFUklPRElDIHwgVk1JX0NZQ0xFU19SRUFMIHwgdm1pX2dldF9hbGFybV93aXJpbmcoKSkKQEAgLTcwLDggKzY5LDggQEAKIAlyZXR1cm4gY3ljbGVzXzJfbnModm1pX3RpbWVyX29wcy5nZXRfY3ljbGVfY291bnRlcihWTUlfQ1lDTEVTX0FWQUlMQUJMRSkpOwogfQogCi0vKiBwYXJhdmlydF9vcHMuZ2V0X2NwdV9raHogPSB2bWlfY3B1X2toeiAqLwotdW5zaWduZWQgbG9uZyB2bWlfY3B1X2toeih2b2lkKQorLyogcGFyYXZpcnRfb3BzLmdldF90c2Nfa2h6ID0gdm1pX3RzY19raHogKi8KK3Vuc2lnbmVkIGxvbmcgdm1pX3RzY19raHoodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcga2h6OwogCWtoeiA9IHZtaV90aW1lcl9vcHMuZ2V0X2N5Y2xlX2ZyZXF1ZW5jeSgpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZtbGludXhfMzIubGRzLlMgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwppbmRleCBjZTVlZDA4Li5jZGIyMzYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwpAQCAtNDksMjMgKzQ5LDE0IEBACiAgIAlfZXRleHQgPSAuOwkJCS8qIEVuZCBvZiB0ZXh0IHNlY3Rpb24gKi8KICAgfSA6dGV4dCA9IDB4OTA5MAogCisgIE5PVEVTIDp0ZXh0IDpub3RlCisKICAgLiA9IEFMSUdOKDE2KTsJCS8qIEV4Y2VwdGlvbiB0YWJsZSAqLwogICBfX2V4X3RhYmxlIDogQVQoQUREUihfX2V4X3RhYmxlKSAtIExPQURfT0ZGU0VUKSB7CiAgIAlfX3N0YXJ0X19fZXhfdGFibGUgPSAuOwogCSAqKF9fZXhfdGFibGUpCiAgIAlfX3N0b3BfX19leF90YWJsZSA9IC47Ci0gIH0KLQotICBOT1RFUyA6dGV4dCA6bm90ZQotCi0gIEJVR19UQUJMRSA6dGV4dAotCi0gIC4gPSBBTElHTig0KTsKLSAgLnRyYWNlZGF0YSA6IEFUKEFERFIoLnRyYWNlZGF0YSkgLSBMT0FEX09GRlNFVCkgewotICAJX190cmFjZWRhdGFfc3RhcnQgPSAuOwotCSooLnRyYWNlZGF0YSkKLSAgCV9fdHJhY2VkYXRhX2VuZCA9IC47Ci0gIH0KKyAgfSA6dGV4dCA9IDB4OTA5MAogCiAgIFJPREFUQQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF82NC5sZHMuUyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCmluZGV4IGZhZDM2NzQuLjYzZTVjMWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCkBAIC0xOSw3ICsxOSw3IEBACiAJZGF0YSBQVF9MT0FEIEZMQUdTKDcpOwkvKiBSV0UgKi8KIAl1c2VyIFBUX0xPQUQgRkxBR1MoNyk7CS8qIFJXRSAqLwogCWRhdGEuaW5pdCBQVF9MT0FEIEZMQUdTKDcpOwkvKiBSV0UgKi8KLQlub3RlIFBUX05PVEUgRkxBR1MoNCk7CS8qIFJfXyAqLworCW5vdGUgUFRfTk9URSBGTEFHUygwKTsJLyogX19fICovCiB9CiBTRUNUSU9OUwogewpAQCAtNDAsMjYgKzQwLDE3IEBACiAJX2V0ZXh0ID0gLjsJCS8qIEVuZCBvZiB0ZXh0IHNlY3Rpb24gKi8KICAgfSA6dGV4dCA9IDB4OTA5MAogCisgIE5PVEVTIDp0ZXh0IDpub3RlCisKICAgLiA9IEFMSUdOKDE2KTsJCS8qIEV4Y2VwdGlvbiB0YWJsZSAqLwogICBfX2V4X3RhYmxlIDogQVQoQUREUihfX2V4X3RhYmxlKSAtIExPQURfT0ZGU0VUKSB7CiAgIAlfX3N0YXJ0X19fZXhfdGFibGUgPSAuOwogCSAqKF9fZXhfdGFibGUpCiAgIAlfX3N0b3BfX19leF90YWJsZSA9IC47Ci0gIH0KLQotICBOT1RFUyA6dGV4dCA6bm90ZQotCi0gIEJVR19UQUJMRSA6dGV4dAorICB9IDp0ZXh0ID0gMHg5MDkwCiAKICAgUk9EQVRBCiAKLSAgLiA9IEFMSUdOKDQpOwotICAudHJhY2VkYXRhIDogQVQoQUREUigudHJhY2VkYXRhKSAtIExPQURfT0ZGU0VUKSB7Ci0gIAlfX3RyYWNlZGF0YV9zdGFydCA9IC47Ci0JKigudHJhY2VkYXRhKQotICAJX190cmFjZWRhdGFfZW5kID0gLjsKLSAgfQotCiAgIC4gPSBBTElHTihQQUdFX1NJWkUpOwkJLyogQWxpZ24gZGF0YSBzZWdtZW50IHRvIHBhZ2Ugc2l6ZSBib3VuZGFyeSAqLwogCQkJCS8qIERhdGEgKi8KICAgLmRhdGEgOiBBVChBRERSKC5kYXRhKSAtIExPQURfT0ZGU0VUKSB7CkBAIC0xNzcsNiArMTY4LDcgQEAKIAkqKC5jb25faW5pdGNhbGwuaW5pdCkKICAgfQogICBfX2Nvbl9pbml0Y2FsbF9lbmQgPSAuOworICAuID0gQUxJR04oMTYpOwogICBfX3g4NmNwdXZlbmRvcl9zdGFydCA9IC47CiAgIC54ODZjcHV2ZW5kb3IuaW5pdCA6IEFUKEFERFIoLng4NmNwdXZlbmRvci5pbml0KSAtIExPQURfT0ZGU0VUKSB7CiAJKigueDg2Y3B1dmVuZG9yLmluaXQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jIGIvYXJjaC94ODYva2VybmVsL3ZzbXBfNjQuYwppbmRleCBiYThjMGI3Li4wYzAyOWU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC92c21wXzY0LmMKQEAgLTE1LDkgKzE1LDEyIEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaV9pZHMuaD4KICNpbmNsdWRlIDxsaW51eC9wY2lfcmVncy5oPgorCisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCiAjaWYgZGVmaW5lZCBDT05GSUdfUENJICYmIGRlZmluZWQgQ09ORklHX1BBUkFWSVJUCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZzeXNjYWxsXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYwppbmRleCA2MWVmYTJmLi5lNTA3NDBkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYwpAQCAtNDIsNyArNDIsOCBAQAogI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgogI2luY2x1ZGUgPGFzbS92Z3RvZC5oPgogCi0jZGVmaW5lIF9fdnN5c2NhbGwobnIpIF9fYXR0cmlidXRlX18gKCh1bnVzZWQsX19zZWN0aW9uX18oIi52c3lzY2FsbF8iICNucikpKQorI2RlZmluZSBfX3ZzeXNjYWxsKG5yKSBcCisJCV9fYXR0cmlidXRlX18gKCh1bnVzZWQsIF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfIiAjbnIpKSkgbm90cmFjZQogI2RlZmluZSBfX3N5c2NhbGxfY2xvYmJlciAicjExIiwiY3giLCJtZW1vcnkiCiAKIC8qCkBAIC0yNDksNyArMjUwLDcgQEAKICAgIGRvZXNuJ3QgdmlvbGF0ZSB0aGF0LiBXZSdsbCBmaW5kIG91dCBpZiBpdCBkb2VzLiAqLwogc3RhdGljIHZvaWQgX19jcHVpbml0IHZzeXNjYWxsX3NldF9jcHUoaW50IGNwdSkKIHsKLQl1bnNpZ25lZCBsb25nICpkOworCXVuc2lnbmVkIGxvbmcgZDsKIAl1bnNpZ25lZCBsb25nIG5vZGUgPSAwOwogI2lmZGVmIENPTkZJR19OVU1BCiAJbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7CkBAIC0yNjAsMTEgKzI2MSwxMSBAQAogCS8qIFN0b3JlIGNwdSBudW1iZXIgaW4gbGltaXQgc28gdGhhdCBpdCBjYW4gYmUgbG9hZGVkIHF1aWNrbHkKIAkgICBpbiB1c2VyIHNwYWNlIGluIHZnZXRjcHUuCiAJICAgMTIgYml0cyBmb3IgdGhlIENQVSBhbmQgOCBiaXRzIGZvciB0aGUgbm9kZS4gKi8KLQlkID0gKHVuc2lnbmVkIGxvbmcgKikoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSArIEdEVF9FTlRSWV9QRVJfQ1BVKTsKLQkqZCA9IDB4MGY0MDAwMDAwMDAwMFVMTDsKLQkqZCB8PSBjcHU7Ci0JKmQgfD0gKG5vZGUgJiAweGYpIDw8IDEyOwotCSpkIHw9IChub2RlID4+IDQpIDw8IDQ4OworCWQgPSAweDBmNDAwMDAwMDAwMDBVTEw7CisJZCB8PSBjcHU7CisJZCB8PSAobm9kZSAmIDB4ZikgPDwgMTI7CisJZCB8PSAobm9kZSA+PiA0KSA8PCA0ODsKKwl3cml0ZV9nZHRfZW50cnkoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSwgR0RUX0VOVFJZX1BFUl9DUFUsICZkLCBERVNDVFlQRV9TKTsKIH0KIAogc3RhdGljIHZvaWQgX19jcHVpbml0IGNwdV92c3lzY2FsbF9pbml0KHZvaWQgKmFyZykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC94ODY2NF9rc3ltc182NC5jIGIvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKaW5kZXggZjZjMDVkMC4uYjU0NWYzNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKQEAgLTIsMTMgKzIsMjAgQEAKICAgIEFsbCBDIGV4cG9ydHMgc2hvdWxkIGdvIGluIHRoZSByZXNwZWN0aXZlIEMgZmlsZXMuICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxuZXQvY2hlY2tzdW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KIAorI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPgorCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyogbWNvdW50IGlzIGRlZmluZWQgaW4gYXNzZW1ibHkgKi8KK0VYUE9SVF9TWU1CT0wobWNvdW50KTsKKyNlbmRpZgogCiBFWFBPUlRfU1lNQk9MKGtlcm5lbF90aHJlYWQpOwogCkBAIC01Myw4ICs2MCwzIEBACiBFWFBPUlRfU1lNQk9MKGxvYWRfZ3NfaW5kZXgpOwogCiBFWFBPUlRfU1lNQk9MKF9wcm94eV9wZGEpOwotCi0jaWZkZWYgQ09ORklHX1BBUkFWSVJUCi0vKiBWaXJ0dWFsaXplZCBndWVzdHMgbWF5IHdhbnQgdG8gdXNlIGl0ICovCi1FWFBPUlRfU1lNQk9MX0dQTChjcHVfZ2R0X2Rlc2NyKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2k4MjU0LmMgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwppbmRleCA3YzA3N2E5Li4zODI5YWE3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYworKysgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwpAQCAtMjAwLDEwICsyMDAsMTIgQEAKIAogCWF0b21pY19pbmMoJnB0LT5wZW5kaW5nKTsKIAlzbXBfbWJfX2FmdGVyX2F0b21pY19pbmMoKTsKLQkvKiBGSVhNRTogaGFuZGxlIGNhc2Ugd2hlcmUgdGhlIGd1ZXN0IGlzIGluIGd1ZXN0IG1vZGUgKi8KLQlpZiAodmNwdTAgJiYgd2FpdHF1ZXVlX2FjdGl2ZSgmdmNwdTAtPndxKSkgewotCQl2Y3B1MC0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKLQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZ2Y3B1MC0+d3EpOworCWlmICh2Y3B1MCkgeworCQlzZXRfYml0KEtWTV9SRVFfUEVORElOR19USU1FUiwgJnZjcHUwLT5yZXF1ZXN0cyk7CisJCWlmICh3YWl0cXVldWVfYWN0aXZlKCZ2Y3B1MC0+d3EpKSB7CisJCQl2Y3B1MC0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKKwkJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdmNwdTAtPndxKTsKKwkJfQogCX0KIAogCXB0LT50aW1lci5leHBpcmVzID0ga3RpbWVfYWRkX25zKHB0LT50aW1lci5leHBpcmVzLCBwdC0+cGVyaW9kKTsKQEAgLTIzNyw2ICsyMzksMTkgQEAKIAkJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOwogfQogCit2b2lkIF9fa3ZtX21pZ3JhdGVfcGl0X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1Y3Qga3ZtX3BpdCAqcGl0ID0gdmNwdS0+a3ZtLT5hcmNoLnZwaXQ7CisJc3RydWN0IGhydGltZXIgKnRpbWVyOworCisJaWYgKHZjcHUtPnZjcHVfaWQgIT0gMCB8fCAhcGl0KQorCQlyZXR1cm47CisKKwl0aW1lciA9ICZwaXQtPnBpdF9zdGF0ZS5waXRfdGltZXIudGltZXI7CisJaWYgKGhydGltZXJfY2FuY2VsKHRpbWVyKSkKKwkJaHJ0aW1lcl9zdGFydCh0aW1lciwgdGltZXItPmV4cGlyZXMsIEhSVElNRVJfTU9ERV9BQlMpOworfQorCiBzdGF0aWMgdm9pZCBkZXN0cm95X3BpdF90aW1lcihzdHJ1Y3Qga3ZtX2twaXRfdGltZXIgKnB0KQogewogCXByX2RlYnVnKCJwaXQ6IGV4ZWN1dGUgZGVsIHRpbWVyIVxuIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaXJxLmMgYi9hcmNoL3g4Ni9rdm0vaXJxLmMKaW5kZXggY2UxZjU4My4uNzZkNzM2YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2lycS5jCisrKyBiL2FyY2gveDg2L2t2bS9pcnEuYwpAQCAtOTQsMyArOTQsOSBAQAogCS8qIFRPRE86IFBJVCwgUlRDIGV0Yy4gKi8KIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV90aW1lcl9pbnRyX3Bvc3QpOworCit2b2lkIF9fa3ZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlfX2t2bV9taWdyYXRlX2FwaWNfdGltZXIodmNwdSk7CisJX19rdm1fbWlncmF0ZV9waXRfdGltZXIodmNwdSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaXJxLmggYi9hcmNoL3g4Ni9rdm0vaXJxLmgKaW5kZXggMTgwMjEzNC4uMmExNWJlMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2lycS5oCisrKyBiL2FyY2gveDg2L2t2bS9pcnEuaApAQCAtODQsNiArODQsOCBAQAogdm9pZCBrdm1faW5qZWN0X3BlbmRpbmdfdGltZXJfaXJxcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCBrdm1faW5qZWN0X2FwaWNfdGltZXJfaXJxcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCBfX2t2bV9taWdyYXRlX2FwaWNfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKK3ZvaWQgX19rdm1fbWlncmF0ZV9waXRfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKK3ZvaWQgX19rdm1fbWlncmF0ZV90aW1lcnMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAogaW50IHBpdF9oYXNfcGVuZGluZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogaW50IGFwaWNfaGFzX3BlbmRpbmdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggYzI5N2M1MC4uZWJjMDNmNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKQEAgLTk0MCw2ICs5NDAsNyBAQAogCXdhaXRfcXVldWVfaGVhZF90ICpxID0gJmFwaWMtPnZjcHUtPndxOwogCiAJYXRvbWljX2luYygmYXBpYy0+dGltZXIucGVuZGluZyk7CisJc2V0X2JpdChLVk1fUkVRX1BFTkRJTkdfVElNRVIsICZhcGljLT52Y3B1LT5yZXF1ZXN0cyk7CiAJaWYgKHdhaXRxdWV1ZV9hY3RpdmUocSkpIHsKIAkJYXBpYy0+dmNwdS0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKHEpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL21tdS5jIGIvYXJjaC94ODYva3ZtL21tdS5jCmluZGV4IDcyNDZiNjAuLjdlN2MzOTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9tbXUuYworKysgYi9hcmNoL3g4Ni9rdm0vbW11LmMKQEAgLTY0MCw2ICs2NDAsNyBAQAogCQkJcm1hcF9yZW1vdmUoa3ZtLCBzcHRlKTsKIAkJCS0ta3ZtLT5zdGF0LmxwYWdlczsKIAkJCXNldF9zaGFkb3dfcHRlKHNwdGUsIHNoYWRvd190cmFwX25vbnByZXNlbnRfcHRlKTsKKwkJCXNwdGUgPSBOVUxMOwogCQkJd3JpdGVfcHJvdGVjdGVkID0gMTsKIAkJfQogCQlzcHRlID0gcm1hcF9uZXh0KGt2bSwgcm1hcHAsIHNwdGUpOwpAQCAtNjU4LDcgKzY1OSw3IEBACiAJdTY0ICplbmQ7CiAKIAlmb3IgKHBvcyA9IHNwdCwgZW5kID0gcG9zICsgUEFHRV9TSVpFIC8gc2l6ZW9mKHU2NCk7IHBvcyAhPSBlbmQ7IHBvcysrKQotCQlpZiAoKnBvcyAhPSBzaGFkb3dfdHJhcF9ub25wcmVzZW50X3B0ZSkgeworCQlpZiAoaXNfc2hhZG93X3ByZXNlbnRfcHRlKCpwb3MpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcCAlbGx4XG4iLCBfX2Z1bmNfXywKIAkJCSAgICAgICBwb3MsICpwb3MpOwogCQkJcmV0dXJuIDA7CkBAIC0xMDgyLDEwICsxMDgzLDYgQEAKIAkJc3RydWN0IGt2bV9tbXVfcGFnZSAqc2hhZG93OwogCiAJCXNwdGUgfD0gUFRfV1JJVEFCTEVfTUFTSzsKLQkJaWYgKHVzZXJfZmF1bHQpIHsKLQkJCW1tdV91bnNoYWRvdyh2Y3B1LT5rdm0sIGdmbik7Ci0JCQlnb3RvIHVuc2hhZG93ZWQ7Ci0JCX0KIAogCQlzaGFkb3cgPSBrdm1fbW11X2xvb2t1cF9wYWdlKHZjcHUtPmt2bSwgZ2ZuKTsKIAkJaWYgKHNoYWRvdyB8fApAQCAtMTEwMiw4ICsxMDk5LDYgQEAKIAkJfQogCX0KIAotdW5zaGFkb3dlZDoKLQogCWlmIChwdGVfYWNjZXNzICYgQUNDX1dSSVRFX01BU0spCiAJCW1hcmtfcGFnZV9kaXJ0eSh2Y3B1LT5rdm0sIGdmbik7CiAKQEAgLTE1ODAsMTEgKzE1NzUsMTMgQEAKIAkJCQkgIHU2NCAqc3B0ZSwKIAkJCQkgIGNvbnN0IHZvaWQgKm5ldykKIHsKLQlpZiAoKHNwLT5yb2xlLmxldmVsICE9IFBUX1BBR0VfVEFCTEVfTEVWRUwpCi0JICAgICYmICF2Y3B1LT5hcmNoLnVwZGF0ZV9wdGUubGFyZ2VwYWdlKSB7Ci0JCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wZGVfemFwcGVkOwotCQlyZXR1cm47Ci0JfQorCWlmIChzcC0+cm9sZS5sZXZlbCAhPSBQVF9QQUdFX1RBQkxFX0xFVkVMKSB7CisJCWlmICghdmNwdS0+YXJjaC51cGRhdGVfcHRlLmxhcmdlcGFnZSB8fAorCQkgICAgc3AtPnJvbGUuZ2xldmVscyA9PSBQVDMyX1JPT1RfTEVWRUwpIHsKKwkJCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wZGVfemFwcGVkOworCQkJcmV0dXJuOworCQl9CisgICAgICAgIH0KIAogCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wdGVfdXBkYXRlZDsKIAlpZiAoc3AtPnJvbGUuZ2xldmVscyA9PSBQVDMyX1JPT1RfTEVWRUwpCkBAIC0xODU4LDYgKzE4NTUsNyBAQAogCQlzcCA9IGNvbnRhaW5lcl9vZih2Y3B1LT5rdm0tPmFyY2guYWN0aXZlX21tdV9wYWdlcy5uZXh0LAogCQkJCSAgc3RydWN0IGt2bV9tbXVfcGFnZSwgbGluayk7CiAJCWt2bV9tbXVfemFwX3BhZ2UodmNwdS0+a3ZtLCBzcCk7CisJCWNvbmRfcmVzY2hlZCgpOwogCX0KIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpdmNwdS0+YXJjaC5tbXUucGFlX3Jvb3QpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BhZ2luZ190bXBsLmggYi9hcmNoL3g4Ni9rdm0vcGFnaW5nX3RtcGwuaAppbmRleCAxNTZmZTEwLi45MzRjN2I2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vcGFnaW5nX3RtcGwuaAorKysgYi9hcmNoL3g4Ni9rdm0vcGFnaW5nX3RtcGwuaApAQCAtNDE4LDcgKzQxOCw3IEBACiAKIAkvKiBtbWlvICovCiAJaWYgKGlzX2Vycm9yX3BmbihwZm4pKSB7Ci0JCXBncHJpbnRrKCJnZm4gJXggaXMgbW1pb1xuIiwgd2Fsa2VyLmdmbik7CisJCXBncHJpbnRrKCJnZm4gJWx4IGlzIG1taW9cbiIsIHdhbGtlci5nZm4pOwogCQlrdm1fcmVsZWFzZV9wZm5fY2xlYW4ocGZuKTsKIAkJcmV0dXJuIDE7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3N2bS5jIGIvYXJjaC94ODYva3ZtL3N2bS5jCmluZGV4IGFiMjI2MTUuLjZiMGQ1ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9zdm0uYworKysgYi9hcmNoL3g4Ni9rdm0vc3ZtLmMKQEAgLTY4OCw3ICs2ODgsNyBAQAogCQlkZWx0YSA9IHZjcHUtPmFyY2guaG9zdF90c2MgLSB0c2NfdGhpczsKIAkJc3ZtLT52bWNiLT5jb250cm9sLnRzY19vZmZzZXQgKz0gZGVsdGE7CiAJCXZjcHUtPmNwdSA9IGNwdTsKLQkJa3ZtX21pZ3JhdGVfYXBpY190aW1lcih2Y3B1KTsKKwkJa3ZtX21pZ3JhdGVfdGltZXJzKHZjcHUpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBOUl9IT1NUX1NBVkVfVVNFUl9NU1JTOyBpKyspCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14LmMKaW5kZXggYmZlNGRiMS4uNTQwZTk1MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC5jCisrKyBiL2FyY2gveDg2L2t2bS92bXguYwpAQCAtNTY2LDcgKzU2Niw3IEBACiAJbG9hZF90cmFuc2l0aW9uX2VmZXIodm14KTsKIH0KIAotc3RhdGljIHZvaWQgdm14X2xvYWRfaG9zdF9zdGF0ZShzdHJ1Y3QgdmNwdV92bXggKnZteCkKK3N0YXRpYyB2b2lkIF9fdm14X2xvYWRfaG9zdF9zdGF0ZShzdHJ1Y3QgdmNwdV92bXggKnZteCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC01OTYsNiArNTk2LDEzIEBACiAJcmVsb2FkX2hvc3RfZWZlcih2bXgpOwogfQogCitzdGF0aWMgdm9pZCB2bXhfbG9hZF9ob3N0X3N0YXRlKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQoreworCXByZWVtcHRfZGlzYWJsZSgpOworCV9fdm14X2xvYWRfaG9zdF9zdGF0ZSh2bXgpOworCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKIC8qCiAgKiBTd2l0Y2hlcyB0byBzcGVjaWZpZWQgdmNwdSwgdW50aWwgYSBtYXRjaGluZyB2Y3B1X3B1dCgpLCBidXQgYXNzdW1lcwogICogdmNwdSBtdXRleCBpcyBhbHJlYWR5IHRha2VuLgpAQCAtNjA4LDcgKzYxNSw3IEBACiAKIAlpZiAodmNwdS0+Y3B1ICE9IGNwdSkgewogCQl2Y3B1X2NsZWFyKHZteCk7Ci0JCWt2bV9taWdyYXRlX2FwaWNfdGltZXIodmNwdSk7CisJCWt2bV9taWdyYXRlX3RpbWVycyh2Y3B1KTsKIAkJdnBpZF9zeW5jX3ZjcHVfYWxsKHZteCk7CiAJfQogCkBAIC02NTQsNyArNjYxLDcgQEAKIAogc3RhdGljIHZvaWQgdm14X3ZjcHVfcHV0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKLQl2bXhfbG9hZF9ob3N0X3N0YXRlKHRvX3ZteCh2Y3B1KSk7CisJX192bXhfbG9hZF9ob3N0X3N0YXRlKHRvX3ZteCh2Y3B1KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHZteF9mcHVfYWN0aXZhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQpAQCAtODg0LDExICs4OTEsOCBAQAogCXN3aXRjaCAobXNyX2luZGV4KSB7CiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCWNhc2UgTVNSX0VGRVI6CisJCXZteF9sb2FkX2hvc3Rfc3RhdGUodm14KTsKIAkJcmV0ID0ga3ZtX3NldF9tc3JfY29tbW9uKHZjcHUsIG1zcl9pbmRleCwgZGF0YSk7Ci0JCWlmICh2bXgtPmhvc3Rfc3RhdGUubG9hZGVkKSB7Ci0JCQlyZWxvYWRfaG9zdF9lZmVyKHZteCk7Ci0JCQlsb2FkX3RyYW5zaXRpb25fZWZlcih2bXgpOwotCQl9CiAJCWJyZWFrOwogCWNhc2UgTVNSX0ZTX0JBU0U6CiAJCXZtY3Nfd3JpdGVsKEdVRVNUX0ZTX0JBU0UsIGRhdGEpOwpAQCAtOTEwLDExICs5MTQsMTAgQEAKIAkJZ3Vlc3Rfd3JpdGVfdHNjKGRhdGEpOwogCQlicmVhazsKIAlkZWZhdWx0OgorCQl2bXhfbG9hZF9ob3N0X3N0YXRlKHZteCk7CiAJCW1zciA9IGZpbmRfbXNyX2VudHJ5KHZteCwgbXNyX2luZGV4KTsKIAkJaWYgKG1zcikgewogCQkJbXNyLT5kYXRhID0gZGF0YTsKLQkJCWlmICh2bXgtPmhvc3Rfc3RhdGUubG9hZGVkKQotCQkJCWxvYWRfbXNycyh2bXgtPmd1ZXN0X21zcnMsIHZteC0+c2F2ZV9ubXNycyk7CiAJCQlicmVhazsKIAkJfQogCQlyZXQgPSBrdm1fc2V0X21zcl9jb21tb24odmNwdSwgbXNyX2luZGV4LCBkYXRhKTsKQEAgLTEwMzYsNiArMTAzOSw3IEBACiBzdGF0aWMgdm9pZCBoYXJkd2FyZV9kaXNhYmxlKHZvaWQgKmdhcmJhZ2UpCiB7CiAJYXNtIHZvbGF0aWxlIChBU01fVk1YX1ZNWE9GRiA6IDogOiAiY2MiKTsKKwl3cml0ZV9jcjQocmVhZF9jcjQoKSAmIH5YODZfQ1I0X1ZNWEUpOwogfQogCiBzdGF0aWMgX19pbml0IGludCBhZGp1c3Rfdm14X2NvbnRyb2xzKHUzMiBjdGxfbWluLCB1MzIgY3RsX29wdCwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCAyMTMzOGJkLi42M2E3N2NhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC00OTIsOCArNDkyLDggQEAKIHN0YXRpYyB2b2lkIGt2bV93cml0ZV93YWxsX2Nsb2NrKHN0cnVjdCBrdm0gKmt2bSwgZ3BhX3Qgd2FsbF9jbG9jaykKIHsKIAlzdGF0aWMgaW50IHZlcnNpb247Ci0Jc3RydWN0IGt2bV93YWxsX2Nsb2NrIHdjOwotCXN0cnVjdCB0aW1lc3BlYyB3Y190czsKKwlzdHJ1Y3QgcHZjbG9ja193YWxsX2Nsb2NrIHdjOworCXN0cnVjdCB0aW1lc3BlYyBub3csIHN5cywgYm9vdDsKIAogCWlmICghd2FsbF9jbG9jaykKIAkJcmV0dXJuOwpAQCAtNTAyLDEwICs1MDIsMTkgQEAKIAogCWt2bV93cml0ZV9ndWVzdChrdm0sIHdhbGxfY2xvY2ssICZ2ZXJzaW9uLCBzaXplb2YodmVyc2lvbikpOwogCi0Jd2NfdHMgPSBjdXJyZW50X2tlcm5lbF90aW1lKCk7Ci0Jd2Mud2Nfc2VjID0gd2NfdHMudHZfc2VjOwotCXdjLndjX25zZWMgPSB3Y190cy50dl9uc2VjOwotCXdjLndjX3ZlcnNpb24gPSB2ZXJzaW9uOworCS8qCisJICogVGhlIGd1ZXN0IGNhbGN1bGF0ZXMgY3VycmVudCB3YWxsIGNsb2NrIHRpbWUgYnkgYWRkaW5nCisJICogc3lzdGVtIHRpbWUgKHVwZGF0ZWQgYnkga3ZtX3dyaXRlX2d1ZXN0X3RpbWUgYmVsb3cpIHRvIHRoZQorCSAqIHdhbGwgY2xvY2sgc3BlY2lmaWVkIGhlcmUuICBndWVzdCBzeXN0ZW0gdGltZSBlcXVhbHMgaG9zdAorCSAqIHN5c3RlbSB0aW1lIGZvciB1cywgdGh1cyB3ZSBtdXN0IGZpbGwgaW4gaG9zdCBib290IHRpbWUgaGVyZS4KKwkgKi8KKwlub3cgPSBjdXJyZW50X2tlcm5lbF90aW1lKCk7CisJa3RpbWVfZ2V0X3RzKCZzeXMpOworCWJvb3QgPSBuc190b190aW1lc3BlYyh0aW1lc3BlY190b19ucygmbm93KSAtIHRpbWVzcGVjX3RvX25zKCZzeXMpKTsKKworCXdjLnNlYyA9IGJvb3QudHZfc2VjOworCXdjLm5zZWMgPSBib290LnR2X25zZWM7CisJd2MudmVyc2lvbiA9IHZlcnNpb247CiAKIAlrdm1fd3JpdGVfZ3Vlc3Qoa3ZtLCB3YWxsX2Nsb2NrLCAmd2MsIHNpemVvZih3YykpOwogCkBAIC01MTMsNiArNTIyLDQ1IEBACiAJa3ZtX3dyaXRlX2d1ZXN0KGt2bSwgd2FsbF9jbG9jaywgJnZlcnNpb24sIHNpemVvZih2ZXJzaW9uKSk7CiB9CiAKK3N0YXRpYyB1aW50MzJfdCBkaXZfZnJhYyh1aW50MzJfdCBkaXZpZGVuZCwgdWludDMyX3QgZGl2aXNvcikKK3sKKwl1aW50MzJfdCBxdW90aWVudCwgcmVtYWluZGVyOworCisJLyogRG9uJ3QgdHJ5IHRvIHJlcGxhY2Ugd2l0aCBkb19kaXYoKSwgdGhpcyBvbmUgY2FsY3VsYXRlcworCSAqICIoZGl2aWRlbmQgPDwgMzIpIC8gZGl2aXNvciIgKi8KKwlfX2FzbV9fICggImRpdmwgJTQiCisJCSAgOiAiPWEiIChxdW90aWVudCksICI9ZCIgKHJlbWFpbmRlcikKKwkJICA6ICIwIiAoMCksICIxIiAoZGl2aWRlbmQpLCAiciIgKGRpdmlzb3IpICk7CisJcmV0dXJuIHF1b3RpZW50OworfQorCitzdGF0aWMgdm9pZCBrdm1fc2V0X3RpbWVfc2NhbGUodWludDMyX3QgdHNjX2toeiwgc3RydWN0IHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gKmh2X2Nsb2NrKQoreworCXVpbnQ2NF90IG5zZWNzID0gMTAwMDAwMDAwMExMOworCWludDMyX3QgIHNoaWZ0ID0gMDsKKwl1aW50NjRfdCB0cHM2NDsKKwl1aW50MzJfdCB0cHMzMjsKKworCXRwczY0ID0gdHNjX2toeiAqIDEwMDBMTDsKKwl3aGlsZSAodHBzNjQgPiBuc2VjcyoyKSB7CisJCXRwczY0ID4+PSAxOworCQlzaGlmdC0tOworCX0KKworCXRwczMyID0gKHVpbnQzMl90KXRwczY0OworCXdoaWxlICh0cHMzMiA8PSAodWludDMyX3QpbnNlY3MpIHsKKwkJdHBzMzIgPDw9IDE7CisJCXNoaWZ0Kys7CisJfQorCisJaHZfY2xvY2stPnRzY19zaGlmdCA9IHNoaWZ0OworCWh2X2Nsb2NrLT50c2NfdG9fc3lzdGVtX211bCA9IGRpdl9mcmFjKG5zZWNzLCB0cHMzMik7CisKKwlwcl9kZWJ1ZygiJXM6IHRzY19raHogJXUsIHRzY19zaGlmdCAlZCwgdHNjX211bCAldVxuIiwKKwkJIF9fRlVOQ1RJT05fXywgdHNjX2toeiwgaHZfY2xvY2stPnRzY19zaGlmdCwKKwkJIGh2X2Nsb2NrLT50c2NfdG9fc3lzdGVtX211bCk7Cit9CisKIHN0YXRpYyB2b2lkIGt2bV93cml0ZV9ndWVzdF90aW1lKHN0cnVjdCBrdm1fdmNwdSAqdikKIHsKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CkBAIC01MjMsNiArNTcxLDExIEBACiAJaWYgKCghdmNwdS0+dGltZV9wYWdlKSkKIAkJcmV0dXJuOwogCisJaWYgKHVubGlrZWx5KHZjcHUtPmh2X2Nsb2NrX3RzY19raHogIT0gdHNjX2toeikpIHsKKwkJa3ZtX3NldF90aW1lX3NjYWxlKHRzY19raHosICZ2Y3B1LT5odl9jbG9jayk7CisJCXZjcHUtPmh2X2Nsb2NrX3RzY19raHogPSB0c2Nfa2h6OworCX0KKwogCS8qIEtlZXAgaXJxIGRpc2FibGVkIHRvIHByZXZlbnQgY2hhbmdlcyB0byB0aGUgY2xvY2sgKi8KIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJa3ZtX2dldF9tc3IodiwgTVNSX0lBMzJfVElNRV9TVEFNUF9DT1VOVEVSLApAQCAtNTM3LDE0ICs1OTAsMTQgQEAKIAkvKgogCSAqIFRoZSBpbnRlcmZhY2UgZXhwZWN0cyB1cyB0byB3cml0ZSBhbiBldmVuIG51bWJlciBzaWduYWxpbmcgdGhhdCB0aGUKIAkgKiB1cGRhdGUgaXMgZmluaXNoZWQuIFNpbmNlIHRoZSBndWVzdCB3b24ndCBzZWUgdGhlIGludGVybWVkaWF0ZQotCSAqIHN0YXRlLCB3ZSBqdXN0IHdyaXRlICIyIiBhdCB0aGUgZW5kCisJICogc3RhdGUsIHdlIGp1c3QgaW5jcmVhc2UgYnkgMiBhdCB0aGUgZW5kLgogCSAqLwotCXZjcHUtPmh2X2Nsb2NrLnZlcnNpb24gPSAyOworCXZjcHUtPmh2X2Nsb2NrLnZlcnNpb24gKz0gMjsKIAogCXNoYXJlZF9rYWRkciA9IGttYXBfYXRvbWljKHZjcHUtPnRpbWVfcGFnZSwgS01fVVNFUjApOwogCiAJbWVtY3B5KHNoYXJlZF9rYWRkciArIHZjcHUtPnRpbWVfb2Zmc2V0LCAmdmNwdS0+aHZfY2xvY2ssCi0JCXNpemVvZih2Y3B1LT5odl9jbG9jaykpOworCSAgICAgICBzaXplb2YodmNwdS0+aHZfY2xvY2spKTsKIAogCWt1bm1hcF9hdG9taWMoc2hhcmVkX2thZGRyLCBLTV9VU0VSMCk7CiAKQEAgLTU5OSwxMCArNjUyLDYgQEAKIAkJLyogLi4uYnV0IGNsZWFuIGl0IGJlZm9yZSBkb2luZyB0aGUgYWN0dWFsIHdyaXRlICovCiAJCXZjcHUtPmFyY2gudGltZV9vZmZzZXQgPSBkYXRhICYgfihQQUdFX01BU0sgfCAxKTsKIAotCQl2Y3B1LT5hcmNoLmh2X2Nsb2NrLnRzY190b19zeXN0ZW1fbXVsID0KLQkJCQkJY2xvY2tzb3VyY2Vfa2h6Mm11bHQodHNjX2toeiwgMjIpOwotCQl2Y3B1LT5hcmNoLmh2X2Nsb2NrLnRzY19zaGlmdCA9IDIyOwotCiAJCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAkJdmNwdS0+YXJjaC50aW1lX3BhZ2UgPQogCQkJCWdmbl90b19wYWdlKHZjcHUtPmt2bSwgZGF0YSA+PiBQQUdFX1NISUZUKTsKQEAgLTI3NTgsNyArMjgwNyw5IEBACiAKIAlpZiAodmNwdS0+cmVxdWVzdHMpIHsKIAkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChLVk1fUkVRX01JR1JBVEVfVElNRVIsICZ2Y3B1LT5yZXF1ZXN0cykpCi0JCQlfX2t2bV9taWdyYXRlX2FwaWNfdGltZXIodmNwdSk7CisJCQlfX2t2bV9taWdyYXRlX3RpbWVycyh2Y3B1KTsKKwkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChLVk1fUkVRX1RMQl9GTFVTSCwgJnZjcHUtPnJlcXVlc3RzKSkKKwkJCWt2bV94ODZfb3BzLT50bGJfZmx1c2godmNwdSk7CiAJCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoS1ZNX1JFUV9SRVBPUlRfVFBSX0FDQ0VTUywKIAkJCQkgICAgICAgJnZjcHUtPnJlcXVlc3RzKSkgewogCQkJa3ZtX3J1bi0+ZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9UUFJfQUNDRVNTOwpAQCAtMjc3Miw2ICsyODIzLDcgQEAKIAkJfQogCX0KIAorCWNsZWFyX2JpdChLVk1fUkVRX1BFTkRJTkdfVElNRVIsICZ2Y3B1LT5yZXF1ZXN0cyk7CiAJa3ZtX2luamVjdF9wZW5kaW5nX3RpbWVyX2lycXModmNwdSk7CiAKIAlwcmVlbXB0X2Rpc2FibGUoKTsKQEAgLTI3ODEsMjEgKzI4MzMsMTMgQEAKIAogCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKLQlpZiAobmVlZF9yZXNjaGVkKCkpIHsKKwlpZiAodmNwdS0+cmVxdWVzdHMgfHwgbmVlZF9yZXNjaGVkKCkpIHsKIAkJbG9jYWxfaXJxX2VuYWJsZSgpOwogCQlwcmVlbXB0X2VuYWJsZSgpOwogCQlyID0gMTsKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKHZjcHUtPnJlcXVlc3RzKQotCQlpZiAodGVzdF9iaXQoS1ZNX1JFUV9NTVVfUkVMT0FELCAmdmNwdS0+cmVxdWVzdHMpKSB7Ci0JCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JCQlwcmVlbXB0X2VuYWJsZSgpOwotCQkJciA9IDE7Ci0JCQlnb3RvIG91dDsKLQkJfQotCiAJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CiAJCWxvY2FsX2lycV9lbmFibGUoKTsKIAkJcHJlZW1wdF9lbmFibGUoKTsKQEAgLTI4MjUsOSArMjg2OSw2IEBACiAKIAlrdm1fZ3Vlc3RfZW50ZXIoKTsKIAotCWlmICh2Y3B1LT5yZXF1ZXN0cykKLQkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChLVk1fUkVRX1RMQl9GTFVTSCwgJnZjcHUtPnJlcXVlc3RzKSkKLQkJCWt2bV94ODZfb3BzLT50bGJfZmx1c2godmNwdSk7CiAKIAlLVk1UUkFDRV8wRChWTUVOVFJZLCB2Y3B1LCBlbnRyeWV4aXQpOwogCWt2bV94ODZfb3BzLT5ydW4odmNwdSwga3ZtX3J1bik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2X2VtdWxhdGUuYyBiL2FyY2gveDg2L2t2bS94ODZfZW11bGF0ZS5jCmluZGV4IDhhOTYzMjAuLjkzMmYyMTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODZfZW11bGF0ZS5jCisrKyBiL2FyY2gveDg2L2t2bS94ODZfZW11bGF0ZS5jCkBAIC0xNzI3LDcgKzE3MjcsOCBAQAogCQkJaWYgKHJjKQogCQkJCWdvdG8gZG9uZTsKIAotCQkJa3ZtX2VtdWxhdGVfaHlwZXJjYWxsKGN0eHQtPnZjcHUpOworCQkJLyogTGV0IHRoZSBwcm9jZXNzb3IgcmUtZXhlY3V0ZSB0aGUgZml4ZWQgaHlwZXJjYWxsICovCisJCQljLT5laXAgPSBjdHh0LT52Y3B1LT5hcmNoLnJpcDsKIAkJCS8qIERpc2FibGUgd3JpdGViYWNrLiAqLwogCQkJYy0+ZHN0LnR5cGUgPSBPUF9OT05FOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9sZ3Vlc3QvS2NvbmZpZyBiL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCmluZGV4IDk2NGRmYTMuLmM3MGUxMmIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCisrKyBiL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCkBAIC0zLDcgKzMsNyBAQAogCXNlbGVjdCBQQVJBVklSVAogCWRlcGVuZHMgb24gWDg2XzMyCiAJZGVwZW5kcyBvbiAhWDg2X1BBRQotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAlzZWxlY3QgVklSVElPCiAJc2VsZWN0IFZJUlRJT19SSU5HCiAJc2VsZWN0IFZJUlRJT19DT05TT0xFCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9sZ3Vlc3QvYm9vdC5jIGIvYXJjaC94ODYvbGd1ZXN0L2Jvb3QuYwppbmRleCA1YzdlMmZkLi41MGRhZDQ0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9sZ3Vlc3QvYm9vdC5jCisrKyBiL2FyY2gveDg2L2xndWVzdC9ib290LmMKQEAgLTYwNyw3ICs2MDcsNyBAQAogICogd2hhdCBzcGVlZCBpdCBydW5zIGF0LCBvciAwIGlmIGl0J3MgdW51c2FibGUgYXMgYSByZWxpYWJsZSBjbG9jayBzb3VyY2UuCiAgKiBUaGlzIG1hdGNoZXMgd2hhdCB3ZSB3YW50IGhlcmU6IGlmIHdlIHJldHVybiAwIGZyb20gdGhpcyBmdW5jdGlvbiwgdGhlIHg4NgogICogVFNDIGNsb2NrIHdpbGwgZ2l2ZSB1cCBhbmQgbm90IHJlZ2lzdGVyIGl0c2VsZi4gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxndWVzdF9jcHVfa2h6KHZvaWQpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsZ3Vlc3RfdHNjX2toeih2b2lkKQogewogCXJldHVybiBsZ3Vlc3RfZGF0YS50c2Nfa2h6OwogfQpAQCAtODM1LDcgKzgzNSw3IEBACiAKIAkvKiBUaGUgTGludXggYm9vdGxvYWRlciBoZWFkZXIgY29udGFpbnMgYW4gImU4MjAiIG1lbW9yeSBtYXA6IHRoZQogCSAqIExhdW5jaGVyIHBvcHVsYXRlZCB0aGUgZmlyc3QgZW50cnkgd2l0aCBvdXIgbWVtb3J5IGxpbWl0LiAqLwotCWFkZF9tZW1vcnlfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCisJZTgyMF9hZGRfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnNpemUsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnR5cGUpOwogCkBAIC05OTgsNyArOTk4LDcgQEAKIAkvKiB0aW1lIG9wZXJhdGlvbnMgKi8KIAlwdl90aW1lX29wcy5nZXRfd2FsbGNsb2NrID0gbGd1ZXN0X2dldF93YWxsY2xvY2s7CiAJcHZfdGltZV9vcHMudGltZV9pbml0ID0gbGd1ZXN0X3RpbWVfaW5pdDsKLQlwdl90aW1lX29wcy5nZXRfY3B1X2toeiA9IGxndWVzdF9jcHVfa2h6OworCXB2X3RpbWVfb3BzLmdldF90c2Nfa2h6ID0gbGd1ZXN0X3RzY19raHo7CiAKIAkvKiBOb3cgaXMgYSBnb29kIHRpbWUgdG8gbG9vayBhdCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucwogCSAqIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIHJlc3Qgb2YgbGd1ZXN0X2luaXQoKS4gKi8KQEAgLTEwMTIsNiArMTAxMiw3IEBACiAJICogY2xvYmJlcmVkLiAgVGhlIExhdW5jaGVyIHBsYWNlcyBvdXIgaW5pdGlhbCBwYWdldGFibGVzIHNvbWV3aGVyZSBhdAogCSAqIHRoZSB0b3Agb2Ygb3VyIHBoeXNpY2FsIG1lbW9yeSwgc28gd2UgZG9uJ3QgbmVlZCBleHRyYSBzcGFjZTogc2V0CiAJICogaW5pdF9wZ190YWJsZXNfZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGtlcm5lbC4gKi8KKwlpbml0X3BnX3RhYmxlc19zdGFydCA9IF9fcGEocGcwKTsKIAlpbml0X3BnX3RhYmxlc19lbmQgPSBfX3BhKHBnMCk7CiAKIAkvKiBMb2FkIHRoZSAlZnMgc2VnbWVudCByZWdpc3RlciAodGhlIHBlci1jcHUgc2VnbWVudCByZWdpc3Rlcikgd2l0aApAQCAtMTA2NSw5ICsxMDY2LDkgQEAKIAlwbV9wb3dlcl9vZmYgPSBsZ3Vlc3RfcG93ZXJfb2ZmOwogCW1hY2hpbmVfb3BzLnJlc3RhcnQgPSBsZ3Vlc3RfcmVzdGFydDsKIAotCS8qIE5vdyB3ZSdyZSBzZXQgdXAsIGNhbGwgc3RhcnRfa2VybmVsKCkgaW4gaW5pdC9tYWluLmMgYW5kIHdlIHByb2NlZWQKKwkvKiBOb3cgd2UncmUgc2V0IHVwLCBjYWxsIGkzODZfc3RhcnRfa2VybmVsKCkgaW4gaGVhZDMyLmMgYW5kIHdlIHByb2NlZWQKIAkgKiB0byBib290IGFzIG5vcm1hbC4gIEl0IG5ldmVyIHJldHVybnMuICovCi0Jc3RhcnRfa2VybmVsKCk7CisJaTM4Nl9zdGFydF9rZXJuZWwoKTsKIH0KIC8qCiAgKiBUaGlzIG1hcmtzIHRoZSBlbmQgb2Ygc3RhZ2UgSUkgb2Ygb3VyIGpvdXJuZXksIFRoZSBHdWVzdC4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9NYWtlZmlsZSBiL2FyY2gveDg2L2xpYi9NYWtlZmlsZQppbmRleCA3NmY2MGY1Li5hYTNmYTQxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvbGliL01ha2VmaWxlCkBAIC00LDggKzQsOSBAQAogCiBvYmotJChDT05GSUdfU01QKSA6PSBtc3Itb24tY3B1Lm8KIAotbGliLXkgOj0gZGVsYXlfJChCSVRTKS5vCi1saWIteSArPSB1c2VyY29weV8kKEJJVFMpLm8gZ2V0dXNlcl8kKEJJVFMpLm8gcHV0dXNlcl8kKEJJVFMpLm8KK2xpYi15IDo9IGRlbGF5Lm8KK2xpYi15ICs9IHRodW5rXyQoQklUUykubworbGliLXkgKz0gdXNlcmNvcHlfJChCSVRTKS5vIGdldHVzZXIubyBwdXR1c2VyLm8KIGxpYi15ICs9IG1lbWNweV8kKEJJVFMpLm8KIAogaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TIGIvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TCmluZGV4IDcwYmViZDMuLmRmZGY0MjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvY29weV91c2VyXzY0LlMKQEAgLTEsOCArMSwxMCBAQAotLyogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorLyoKKyAqIENvcHlyaWdodCAyMDA4IFZpdGFseSBNYXlhdHNraWtoIDx2bWF5YXRza0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogU3ViamVjdCB0byB0aGUgR05VIFB1YmxpYyBMaWNlbnNlIHYyLgotICogCi0gKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgkJCi0gKi8JCSAKKyAqCisgKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgorICovCiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgpAQCAtMjAsNjAgKzIyLDg4IEBACiAJLmxvbmcgXG9yaWctMWYJLyogYnkgZGVmYXVsdCBqdW1wIHRvIG9yaWcgKi8KIDE6CiAJLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCJheCIKLTI6CS5ieXRlIDB4ZTkJICAgICAgICAgICAgIC8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLworMjoJLmJ5dGUgMHhlOQkJCS8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLwogCS5sb25nIFxhbHQtMWIgLyogb2Zmc2V0ICovICAgLyogb3IgYWx0ZXJuYXRpdmVseSB0byBhbHQgKi8KIAkucHJldmlvdXMKIAkuc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLCJhIgogCS5hbGlnbiA4CiAJLnF1YWQgIDBiCiAJLnF1YWQgIDJiCi0JLmJ5dGUgIFxmZWF0dXJlCQkgICAgIC8qIHdoZW4gZmVhdHVyZSBpcyBzZXQgKi8KKwkuYnl0ZSAgXGZlYXR1cmUJCQkvKiB3aGVuIGZlYXR1cmUgaXMgc2V0ICovCiAJLmJ5dGUgIDUKIAkuYnl0ZSAgNQogCS5wcmV2aW91cwogCS5lbmRtCiAKLS8qIFN0YW5kYXJkIGNvcHlfdG9fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCQorCS5tYWNybyBBTElHTl9ERVNUSU5BVElPTgorI2lmZGVmIEZJWF9BTElHTk1FTlQKKwkvKiBjaGVjayBmb3IgYmFkIGFsaWdubWVudCBvZiBkZXN0aW5hdGlvbiAqLworCW1vdmwgJWVkaSwlZWN4CisJYW5kbCAkNywlZWN4CisJanogMTAyZgkJCQkvKiBhbHJlYWR5IGFsaWduZWQgKi8KKwlzdWJsICQ4LCVlY3gKKwluZWdsICVlY3gKKwlzdWJsICVlY3gsJWVkeAorMTAwOgltb3ZiICglcnNpKSwlYWwKKzEwMToJbW92YiAlYWwsKCVyZGkpCisJaW5jcSAlcnNpCisJaW5jcSAlcmRpCisJZGVjbCAlZWN4CisJam56IDEwMGIKKzEwMjoKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMTAzOglhZGRsICVyOGQsJWVkeAkJCS8qIGVjeCBpcyB6ZXJvcmVzdCBhbHNvICovCisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cworCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkuYWxpZ24gOAorCS5xdWFkIDEwMGIsMTAzYgorCS5xdWFkIDEwMWIsMTAzYgorCS5wcmV2aW91cworI2VuZGlmCisJLmVuZG0KKworLyogU3RhbmRhcmQgY29weV90b191c2VyIHdpdGggc2VnbWVudCBsaW1pdCBjaGVja2luZyAqLwogRU5UUlkoY29weV90b191c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyZGksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF90b191c2VyCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXJheCksJXJjeAorCWpjIGJhZF90b191c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKIAlqYWUgYmFkX3RvX3VzZXIKLQl4b3JsICVlYXgsJWVheAkvKiBjbGVhciB6ZXJvIGZsYWcgKi8KIAlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZwogCUNGSV9FTkRQUk9DCiAKLUVOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQotCUNGSV9TVEFSVFBST0MKLQltb3ZsICQxLCVlY3gJLyogc2V0IHplcm8gZmxhZyAqLwotCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCi0JQ0ZJX0VORFBST0MKLQotRU5UUlkoX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYykKLQlDRklfU1RBUlRQUk9DCi0JeG9ybCAlZWN4LCVlY3gJLyogY2xlYXIgemVybyBmbGFnICovCi0JQUxURVJOQVRJVkVfSlVNUCBYODZfRkVBVFVSRV9SRVBfR09PRCxjb3B5X3VzZXJfZ2VuZXJpY191bnJvbGxlZCxjb3B5X3VzZXJfZ2VuZXJpY19zdHJpbmcKLQlDRklfRU5EUFJPQwotCi0vKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCisvKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8KIEVOVFJZKGNvcHlfZnJvbV91c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyc2ksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF9mcm9tX3VzZXIKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcmF4KSwlcmN4Ci0JamFlICBiYWRfZnJvbV91c2VyCi0JbW92bCAkMSwlZWN4CS8qIHNldCB6ZXJvIGZsYWcgKi8KKwlqYyBiYWRfZnJvbV91c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKKwlqYWUgYmFkX2Zyb21fdXNlcgogCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCiAJQ0ZJX0VORFBST0MKIEVORFBST0MoY29weV9mcm9tX3VzZXIpCi0JCisKK0VOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljKQorCitFTlRSWShfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMpCisKIAkuc2VjdGlvbiAuZml4dXAsImF4IgogCS8qIG11c3QgemVybyBkZXN0ICovCitFTlRSWShiYWRfZnJvbV91c2VyKQogYmFkX2Zyb21fdXNlcjoKIAlDRklfU1RBUlRQUk9DCiAJbW92bCAlZWR4LCVlY3gKQEAgLTgxLDI3NCArMTExLDE1OCBAQAogCXJlcAogCXN0b3NiCiBiYWRfdG9fdXNlcjoKLQltb3ZsCSVlZHgsJWVheAorCW1vdmwgJWVkeCwlZWF4CiAJcmV0CiAJQ0ZJX0VORFBST0MKLUVORChiYWRfZnJvbV91c2VyKQorRU5EUFJPQyhiYWRfZnJvbV91c2VyKQogCS5wcmV2aW91cwotCQotCQkKKwogLyoKICAqIGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkIC0gbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcuCi0gKiBUaGlzIHZlcnNpb24gaXMgZm9yIENQVXMgbGlrZSBQNCB0aGF0IGRvbid0IGhhdmUgZWZmaWNpZW50IG1pY3JvIGNvZGUgZm9yIHJlcCBtb3ZzcQotICogCQotICogSW5wdXQ6CQorICogVGhpcyB2ZXJzaW9uIGlzIGZvciBDUFVzIGxpa2UgUDQgdGhhdCBkb24ndCBoYXZlIGVmZmljaWVudCBtaWNybworICogY29kZSBmb3IgcmVwIG1vdnNxCisgKgorICogSW5wdXQ6CiAgKiByZGkgZGVzdGluYXRpb24KICAqIHJzaSBzb3VyY2UKICAqIHJkeCBjb3VudAotICogZWN4IHplcm8gZmxhZyAtLSBpZiB0cnVlIHplcm8gZGVzdGluYXRpb24gb24gZXJyb3IKICAqCi0gKiBPdXRwdXQ6CQkKLSAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBPdXRwdXQ6CisgKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsbC4KICAqLwogRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAJQ0ZJX1NUQVJUUFJPQwotCXB1c2hxICVyYngKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJieCwgMAotCXB1c2hxICVyY3gKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJjeCwgMAotCXhvcmwgJWVheCwlZWF4CQkvKnplcm8gZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlciAqLwotCi0jaWZkZWYgRklYX0FMSUdOTUVOVAotCS8qIGNoZWNrIGZvciBiYWQgYWxpZ25tZW50IG9mIGRlc3RpbmF0aW9uICovCi0JbW92bCAlZWRpLCVlY3gKLQlhbmRsICQ3LCVlY3gKLQlqbnogIC5MYmFkX2FsaWdubWVudAotLkxhZnRlcl9iYWRfYWxpZ25tZW50OgotI2VuZGlmCi0KLQltb3ZxICVyZHgsJXJjeAotCi0JbW92bCAkNjQsJWVieAotCXNocnEgJDYsJXJkeAotCWRlY3EgJXJkeAotCWpzICAgLkxoYW5kbGVfdGFpbAotCi0JLnAyYWxpZ24gNAotLkxsb29wOgotLkxzMToJbW92cSAoJXJzaSksJXIxMQotLkxzMjoJbW92cSAxKjgoJXJzaSksJXI4Ci0uTHMzOgltb3ZxIDIqOCglcnNpKSwlcjkKLS5MczQ6CW1vdnEgMyo4KCVyc2kpLCVyMTAKLS5MZDE6CW1vdnEgJXIxMSwoJXJkaSkKLS5MZDI6CW1vdnEgJXI4LDEqOCglcmRpKQotLkxkMzoJbW92cSAlcjksMio4KCVyZGkpCi0uTGQ0Ogltb3ZxICVyMTAsMyo4KCVyZGkpCi0KLS5MczU6CW1vdnEgNCo4KCVyc2kpLCVyMTEKLS5MczY6CW1vdnEgNSo4KCVyc2kpLCVyOAotLkxzNzoJbW92cSA2KjgoJXJzaSksJXI5Ci0uTHM4Ogltb3ZxIDcqOCglcnNpKSwlcjEwCi0uTGQ1Ogltb3ZxICVyMTEsNCo4KCVyZGkpCi0uTGQ2Ogltb3ZxICVyOCw1KjgoJXJkaSkKLS5MZDc6CW1vdnEgJXI5LDYqOCglcmRpKQotLkxkODoJbW92cSAlcjEwLDcqOCglcmRpKQotCi0JZGVjcSAlcmR4Ci0KKwljbXBsICQ4LCVlZHgKKwlqYiAyMGYJCS8qIGxlc3MgdGhlbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAqLworCUFMSUdOX0RFU1RJTkFUSU9OCisJbW92bCAlZWR4LCVlY3gKKwlhbmRsICQ2MywlZWR4CisJc2hybCAkNiwlZWN4CisJanogMTdmCisxOgltb3ZxICglcnNpKSwlcjgKKzI6CW1vdnEgMSo4KCVyc2kpLCVyOQorMzoJbW92cSAyKjgoJXJzaSksJXIxMAorNDoJbW92cSAzKjgoJXJzaSksJXIxMQorNToJbW92cSAlcjgsKCVyZGkpCis2Ogltb3ZxICVyOSwxKjgoJXJkaSkKKzc6CW1vdnEgJXIxMCwyKjgoJXJkaSkKKzg6CW1vdnEgJXIxMSwzKjgoJXJkaSkKKzk6CW1vdnEgNCo4KCVyc2kpLCVyOAorMTA6CW1vdnEgNSo4KCVyc2kpLCVyOQorMTE6CW1vdnEgNio4KCVyc2kpLCVyMTAKKzEyOgltb3ZxIDcqOCglcnNpKSwlcjExCisxMzoJbW92cSAlcjgsNCo4KCVyZGkpCisxNDoJbW92cSAlcjksNSo4KCVyZGkpCisxNToJbW92cSAlcjEwLDYqOCglcmRpKQorMTY6CW1vdnEgJXIxMSw3KjgoJXJkaSkKIAlsZWFxIDY0KCVyc2kpLCVyc2kKIAlsZWFxIDY0KCVyZGkpLCVyZGkKLQotCWpucyAgLkxsb29wCi0KLQkucDJhbGlnbiA0Ci0uTGhhbmRsZV90YWlsOgotCW1vdmwgJWVjeCwlZWR4Ci0JYW5kbCAkNjMsJWVjeAorCWRlY2wgJWVjeAorCWpueiAxYgorMTc6CW1vdmwgJWVkeCwlZWN4CisJYW5kbCAkNywlZWR4CiAJc2hybCAkMywlZWN4Ci0JanogICAuTGhhbmRsZV83Ci0JbW92bCAkOCwlZWJ4Ci0JLnAyYWxpZ24gNAotLkxsb29wXzg6Ci0uTHM5Ogltb3ZxICglcnNpKSwlcjgKLS5MZDk6CW1vdnEgJXI4LCglcmRpKQotCWRlY2wgJWVjeAotCWxlYXEgOCglcmRpKSwlcmRpCisJanogMjBmCisxODoJbW92cSAoJXJzaSksJXI4CisxOToJbW92cSAlcjgsKCVyZGkpCiAJbGVhcSA4KCVyc2kpLCVyc2kKLQlqbnogLkxsb29wXzgKLQotLkxoYW5kbGVfNzoKKwlsZWFxIDgoJXJkaSksJXJkaQorCWRlY2wgJWVjeAorCWpueiAxOGIKKzIwOglhbmRsICVlZHgsJWVkeAorCWp6IDIzZgogCW1vdmwgJWVkeCwlZWN4Ci0JYW5kbCAkNywlZWN4Ci0JanogICAuTGVuZGUKLQkucDJhbGlnbiA0Ci0uTGxvb3BfMToKLS5MczEwOgltb3ZiICglcnNpKSwlYmwKLS5MZDEwOgltb3ZiICVibCwoJXJkaSkKLQlpbmNxICVyZGkKKzIxOgltb3ZiICglcnNpKSwlYWwKKzIyOgltb3ZiICVhbCwoJXJkaSkKIAlpbmNxICVyc2kKKwlpbmNxICVyZGkKIAlkZWNsICVlY3gKLQlqbnogLkxsb29wXzEKLQotCUNGSV9SRU1FTUJFUl9TVEFURQotLkxlbmRlOgotCXBvcHEgJXJjeAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJjeAotCXBvcHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJieAorCWpueiAyMWIKKzIzOgl4b3IgJWVheCwlZWF4CiAJcmV0Ci0JQ0ZJX1JFU1RPUkVfU1RBVEUKIAotI2lmZGVmIEZJWF9BTElHTk1FTlQKLQkvKiBhbGlnbiBkZXN0aW5hdGlvbiAqLwotCS5wMmFsaWduIDQKLS5MYmFkX2FsaWdubWVudDoKLQltb3ZsICQ4LCVyOWQKLQlzdWJsICVlY3gsJXI5ZAotCW1vdmwgJXI5ZCwlZWN4Ci0JY21wcSAlcjksJXJkeAotCWp6ICAgLkxoYW5kbGVfNwotCWpzICAgLkxoYW5kbGVfNwotLkxhbGlnbl8xOgotLkxzMTE6CW1vdmIgKCVyc2kpLCVibAotLkxkMTE6CW1vdmIgJWJsLCglcmRpKQotCWluY3EgJXJzaQotCWluY3EgJXJkaQotCWRlY2wgJWVjeAotCWpueiAuTGFsaWduXzEKLQlzdWJxICVyOSwlcmR4Ci0Jam1wIC5MYWZ0ZXJfYmFkX2FsaWdubWVudAotI2VuZGlmCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzMwOglzaGxsICQ2LCVlY3gKKwlhZGRsICVlY3gsJWVkeAorCWptcCA2MGYKKzQwOglsZWEgKCVyZHgsJXJjeCw4KSwlcmR4CisJam1wIDYwZgorNTA6CW1vdmwgJWVjeCwlZWR4Cis2MDoJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbCAvKiBlY3ggaXMgemVyb3Jlc3QgYWxzbyAqLworCS5wcmV2aW91cwogCi0JLyogdGFibGUgc29ydGVkIGJ5IGV4Y2VwdGlvbiBhZGRyZXNzICovCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKIAkuYWxpZ24gOAotCS5xdWFkIC5MczEsLkxzMWUKLQkucXVhZCAuTHMyLC5MczJlCi0JLnF1YWQgLkxzMywuTHMzZQotCS5xdWFkIC5MczQsLkxzNGUKLQkucXVhZCAuTGQxLC5MczFlCi0JLnF1YWQgLkxkMiwuTHMyZQotCS5xdWFkIC5MZDMsLkxzM2UKLQkucXVhZCAuTGQ0LC5MczRlCi0JLnF1YWQgLkxzNSwuTHM1ZQotCS5xdWFkIC5MczYsLkxzNmUKLQkucXVhZCAuTHM3LC5MczdlCi0JLnF1YWQgLkxzOCwuTHM4ZQotCS5xdWFkIC5MZDUsLkxzNWUKLQkucXVhZCAuTGQ2LC5MczZlCi0JLnF1YWQgLkxkNywuTHM3ZQotCS5xdWFkIC5MZDgsLkxzOGUKLQkucXVhZCAuTHM5LC5MZV9xdWFkCi0JLnF1YWQgLkxkOSwuTGVfcXVhZAotCS5xdWFkIC5MczEwLC5MZV9ieXRlCi0JLnF1YWQgLkxkMTAsLkxlX2J5dGUKLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLnF1YWQgLkxzMTEsLkx6ZXJvX3Jlc3QKLQkucXVhZCAuTGQxMSwuTHplcm9fcmVzdAotI2VuZGlmCi0JLnF1YWQgLkxlNSwuTGVfemVybworCS5xdWFkIDFiLDMwYgorCS5xdWFkIDJiLDMwYgorCS5xdWFkIDNiLDMwYgorCS5xdWFkIDRiLDMwYgorCS5xdWFkIDViLDMwYgorCS5xdWFkIDZiLDMwYgorCS5xdWFkIDdiLDMwYgorCS5xdWFkIDhiLDMwYgorCS5xdWFkIDliLDMwYgorCS5xdWFkIDEwYiwzMGIKKwkucXVhZCAxMWIsMzBiCisJLnF1YWQgMTJiLDMwYgorCS5xdWFkIDEzYiwzMGIKKwkucXVhZCAxNGIsMzBiCisJLnF1YWQgMTViLDMwYgorCS5xdWFkIDE2YiwzMGIKKwkucXVhZCAxOGIsNDBiCisJLnF1YWQgMTliLDQwYgorCS5xdWFkIDIxYiw1MGIKKwkucXVhZCAyMmIsNTBiCiAJLnByZXZpb3VzCi0KLQkvKiBjb21wdXRlIDY0LW9mZnNldCBmb3IgbWFpbiBsb29wLiA4IGJ5dGVzIGFjY3VyYWN5IHdpdGggZXJyb3Igb24gdGhlCi0JICAgcGVzc2ltaXN0aWMgc2lkZS4gdGhpcyBpcyBncm9zcy4gaXQgd291bGQgYmUgYmV0dGVyIHRvIGZpeCB0aGUKLQkgICBpbnRlcmZhY2UuICovCi0JLyogZWF4OiB6ZXJvLCBlYng6IDY0ICovCi0uTHMxZTogCWFkZGwgJDgsJWVheAotLkxzMmU6IAlhZGRsICQ4LCVlYXgKLS5MczNlOiAJYWRkbCAkOCwlZWF4Ci0uTHM0ZTogCWFkZGwgJDgsJWVheAotLkxzNWU6IAlhZGRsICQ4LCVlYXgKLS5MczZlOiAJYWRkbCAkOCwlZWF4Ci0uTHM3ZTogCWFkZGwgJDgsJWVheAotLkxzOGU6IAlhZGRsICQ4LCVlYXgKLQlhZGRxICVyYngsJXJkaQkvKiArNjQgKi8KLQlzdWJxICVyYXgsJXJkaSAgLyogY29ycmVjdCBkZXN0aW5hdGlvbiB3aXRoIGNvbXB1dGVkIG9mZnNldCAqLwotCi0Jc2hscSAkNiwlcmR4CS8qIGxvb3AgY291bnRlciAqIDY0IChzdHJpZGUgbGVuZ3RoKSAqLwotCWFkZHEgJXJheCwlcmR4CS8qIGFkZCBvZmZzZXQgdG8gbG9vcGNudCAqLwotCWFuZGwgJDYzLCVlY3gJLyogcmVtYWluaW5nIGJ5dGVzICovCi0JYWRkcSAlcmN4LCVyZHgJLyogYWRkIHRoZW0gKi8KLQlqbXAgLkx6ZXJvX3Jlc3QKLQotCS8qIGV4Y2VwdGlvbiBvbiBxdWFkIHdvcmQgbG9vcCBpbiB0YWlsIGhhbmRsaW5nICovCi0JLyogZWN4Oglsb29wY250LzgsICVlZHg6IGxlbmd0aCwgcmRpOiBjb3JyZWN0ICovCi0uTGVfcXVhZDoKLQlzaGxsICQzLCVlY3gKLQlhbmRsICQ3LCVlZHgKLQlhZGRsICVlY3gsJWVkeAotCS8qIGVkeDogYnl0ZXMgdG8gemVybywgcmRpOiBkZXN0LCBlYXg6emVybyAqLwotLkx6ZXJvX3Jlc3Q6Ci0JY21wbCAkMCwoJXJzcCkKLQlqeiAgIC5MZV96ZXJvCi0JbW92cSAlcmR4LCVyY3gKLS5MZV9ieXRlOgotCXhvcmwgJWVheCwlZWF4Ci0uTGU1OglyZXAKLQlzdG9zYgotCS8qIHdoZW4gdGhlcmUgaXMgYW5vdGhlciBleGNlcHRpb24gd2hpbGUgemVyb2luZyB0aGUgcmVzdCBqdXN0IHJldHVybiAqLwotLkxlX3plcm86Ci0JbW92cSAlcmR4LCVyYXgKLQlqbXAgLkxlbmRlCiAJQ0ZJX0VORFBST0MKLUVORFBST0MoY29weV91c2VyX2dlbmVyaWMpCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQogCi0KLQkvKiBTb21lIENQVXMgcnVuIGZhc3RlciB1c2luZyB0aGUgc3RyaW5nIGNvcHkgaW5zdHJ1Y3Rpb25zLgotCSAgIFRoaXMgaXMgYWxzbyBhIGxvdCBzaW1wbGVyLiBVc2UgdGhlbSB3aGVuIHBvc3NpYmxlLgotCSAgIFBhdGNoIGluIGptcHMgdG8gdGhpcyBjb2RlIGluc3RlYWQgb2YgY29weWluZyBpdCBmdWxseQotCSAgIHRvIGF2b2lkIHVud2FudGVkIGFsaWFzaW5nIGluIHRoZSBleGNlcHRpb24gdGFibGVzLiAqLwotCi0gLyogcmRpCWRlc3RpbmF0aW9uCi0gICogcnNpIHNvdXJjZQotICAqIHJkeCBjb3VudAotICAqIGVjeCB6ZXJvIGZsYWcKLSAgKgotICAqIE91dHB1dDoKLSAgKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsbC4KLSAgKgotICAqIE9ubHkgNEdCIG9mIGNvcHkgaXMgc3VwcG9ydGVkLiBUaGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0KLSAgKiBiZWNhdXNlIHRoZSBrZXJuZWwgbm9ybWFsbHkgb25seSB3cml0ZXMgZnJvbS90byBwYWdlIHNpemVkIGNodW5rcwotICAqIGV2ZW4gaWYgdXNlciBzcGFjZSBwYXNzZWQgYSBsb25nZXIgYnVmZmVyLgotICAqIEFuZCBtb3JlIHdvdWxkIGJlIGRhbmdlcm91cyBiZWNhdXNlIGJvdGggSW50ZWwgYW5kIEFNRCBoYXZlCi0gICogZXJyYXRhIHdpdGggcmVwIG1vdnNxID4gNEdCLiBJZiBzb21lb25lIGZlZWxzIHRoZSBuZWVkIHRvIGZpeAotICAqIHRoaXMgcGxlYXNlIGNvbnNpZGVyIHRoaXMuCi0gICovCisvKiBTb21lIENQVXMgcnVuIGZhc3RlciB1c2luZyB0aGUgc3RyaW5nIGNvcHkgaW5zdHJ1Y3Rpb25zLgorICogVGhpcyBpcyBhbHNvIGEgbG90IHNpbXBsZXIuIFVzZSB0aGVtIHdoZW4gcG9zc2libGUuCisgKgorICogT25seSA0R0Igb2YgY29weSBpcyBzdXBwb3J0ZWQuIFRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbQorICogYmVjYXVzZSB0aGUga2VybmVsIG5vcm1hbGx5IG9ubHkgd3JpdGVzIGZyb20vdG8gcGFnZSBzaXplZCBjaHVua3MKKyAqIGV2ZW4gaWYgdXNlciBzcGFjZSBwYXNzZWQgYSBsb25nZXIgYnVmZmVyLgorICogQW5kIG1vcmUgd291bGQgYmUgZGFuZ2Vyb3VzIGJlY2F1c2UgYm90aCBJbnRlbCBhbmQgQU1EIGhhdmUKKyAqIGVycmF0YSB3aXRoIHJlcCBtb3ZzcSA+IDRHQi4gSWYgc29tZW9uZSBmZWVscyB0aGUgbmVlZCB0byBmaXgKKyAqIHRoaXMgcGxlYXNlIGNvbnNpZGVyIHRoaXMuCisgKgorICogSW5wdXQ6CisgKiByZGkgZGVzdGluYXRpb24KKyAqIHJzaSBzb3VyY2UKKyAqIHJkeCBjb3VudAorICoKKyAqIE91dHB1dDoKKyAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWwuCisgKi8KIEVOVFJZKGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZykKIAlDRklfU1RBUlRQUk9DCi0JbW92bCAlZWN4LCVyOGQJCS8qIHNhdmUgemVybyBmbGFnICovCisJYW5kbCAlZWR4LCVlZHgKKwlqeiA0ZgorCWNtcGwgJDgsJWVkeAorCWpiIDJmCQkvKiBsZXNzIHRoYW4gOCBieXRlcywgZ28gdG8gYnl0ZSBjb3B5IGxvb3AgKi8KKwlBTElHTl9ERVNUSU5BVElPTgogCW1vdmwgJWVkeCwlZWN4CiAJc2hybCAkMywlZWN4Ci0JYW5kbCAkNywlZWR4CQotCWp6ICAgMTBmCi0xOglyZXAgCi0JbW92c3EgCi0JbW92bCAlZWR4LCVlY3gKLTI6CXJlcAotCW1vdnNiCi05Ogltb3ZsICVlY3gsJWVheAotCXJldAotCi0JLyogbXVsdGlwbGUgb2YgOCBieXRlICovCi0xMDoJcmVwCisJYW5kbCAkNywlZWR4CisxOglyZXAKIAltb3ZzcQotCXhvciAlZWF4LCVlYXgKKzI6CW1vdmwgJWVkeCwlZWN4CiszOglyZXAKKwltb3ZzYgorNDoJeG9ybCAlZWF4LCVlYXgKIAlyZXQKIAotCS8qIGV4Y2VwdGlvbiBoYW5kbGluZyAqLwotMzogICAgICBsZWEgKCVyZHgsJXJjeCw4KSwlcmF4CS8qIGV4Y2VwdGlvbiBvbiBxdWFkIGxvb3AgKi8KLQlqbXAgNmYKLTU6CW1vdmwgJWVjeCwlZWF4CQkvKiBleGNlcHRpb24gb24gYnl0ZSBsb29wICovCi0JLyogZWF4OiBsZWZ0IG92ZXIgYnl0ZXMgKi8KLTY6CXRlc3RsICVyOGQsJXI4ZAkJLyogemVybyBmbGFnIHNldD8gKi8KLQlqeiA3ZgotCW1vdmwgJWVheCwlZWN4CQkvKiBpbml0aWFsaXplIHg4NiBsb29wIGNvdW50ZXIgKi8KLQlwdXNoICVyYXgKLQl4b3JsICVlYXgsJWVheAotODoJcmVwCi0Jc3Rvc2IgCQkJLyogemVybyB0aGUgcmVzdCAqLwotMTE6CXBvcCAlcmF4Ci03OglyZXQKLQlDRklfRU5EUFJPQwotRU5EKGNvcHlfdXNlcl9nZW5lcmljX2MpCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzExOglsZWEgKCVyZHgsJXJjeCw4KSwlcmN4CisxMjoJbW92bCAlZWN4LCVlZHgJCS8qIGVjeCBpcyB6ZXJvcmVzdCBhbHNvICovCisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cwogCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkucXVhZCAxYiwzYgotCS5xdWFkIDJiLDViCi0JLnF1YWQgOGIsMTFiCi0JLnF1YWQgMTBiLDNiCisJLmFsaWduIDgKKwkucXVhZCAxYiwxMWIKKwkucXVhZCAzYiwxMmIKIAkucHJldmlvdXMKKwlDRklfRU5EUFJPQworRU5EUFJPQyhjb3B5X3VzZXJfZ2VuZXJpY19zdHJpbmcpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY29weV91c2VyX25vY2FjaGVfNjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCmluZGV4IDUxOTY3NjIuLjQwZTBlMzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCkBAIC0xLDQgKzEsNiBAQAotLyogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorLyoKKyAqIENvcHlyaWdodCAyMDA4IFZpdGFseSBNYXlhdHNraWtoIDx2bWF5YXRza0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogU3ViamVjdCB0byB0aGUgR05VIFB1YmxpYyBMaWNlbnNlIHYyLgogICoKICAqIEZ1bmN0aW9ucyB0byBjb3B5IGZyb20gYW5kIHRvIHVzZXIgc3BhY2UuCkBAIC0xMiwyMDcgKzE0LDEyNSBAQAogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0jaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KIAotLyoKLSAqIGNvcHlfdXNlcl9ub2NhY2hlIC0gVW5jYWNoZWQgbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcKLSAqIFRoaXMgd2lsbCBmb3JjZSBkZXN0aW5hdGlvbi9zb3VyY2Ugb3V0IG9mIGNhY2hlIGZvciBtb3JlIHBlcmZvcm1hbmNlLgotICoKLSAqIElucHV0OgotICogcmRpIGRlc3RpbmF0aW9uCi0gKiByc2kgc291cmNlCi0gKiByZHggY291bnQKLSAqIHJjeCB6ZXJvIGZsYWcJd2hlbiAxIHplcm8gb24gZXhjZXB0aW9uCi0gKgotICogT3V0cHV0OgotICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqLwotRU5UUlkoX19jb3B5X3VzZXJfbm9jYWNoZSkKLQlDRklfU1RBUlRQUk9DCi0JcHVzaHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4Ci0JQ0ZJX1JFTF9PRkZTRVQgcmJ4LCAwCi0JcHVzaHEgJXJjeAkJLyogc2F2ZSB6ZXJvIGZsYWcgKi8KLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJjeCwgMAotCi0JeG9ybCAlZWF4LCVlYXgJCS8qIHplcm8gZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlciAqLwotCisJLm1hY3JvIEFMSUdOX0RFU1RJTkFUSU9OCiAjaWZkZWYgRklYX0FMSUdOTUVOVAogCS8qIGNoZWNrIGZvciBiYWQgYWxpZ25tZW50IG9mIGRlc3RpbmF0aW9uICovCiAJbW92bCAlZWRpLCVlY3gKIAlhbmRsICQ3LCVlY3gKLQlqbnogIC5MYmFkX2FsaWdubWVudAotLkxhZnRlcl9iYWRfYWxpZ25tZW50OgotI2VuZGlmCi0KLQltb3ZxICVyZHgsJXJjeAotCi0JbW92bCAkNjQsJWVieAotCXNocnEgJDYsJXJkeAotCWRlY3EgJXJkeAotCWpzICAgLkxoYW5kbGVfdGFpbAotCi0JLnAyYWxpZ24gNAotLkxsb29wOgotLkxzMToJbW92cSAoJXJzaSksJXIxMQotLkxzMjoJbW92cSAxKjgoJXJzaSksJXI4Ci0uTHMzOgltb3ZxIDIqOCglcnNpKSwlcjkKLS5MczQ6CW1vdnEgMyo4KCVyc2kpLCVyMTAKLS5MZDE6CW1vdm50aSAlcjExLCglcmRpKQotLkxkMjoJbW92bnRpICVyOCwxKjgoJXJkaSkKLS5MZDM6CW1vdm50aSAlcjksMio4KCVyZGkpCi0uTGQ0Ogltb3ZudGkgJXIxMCwzKjgoJXJkaSkKLQotLkxzNToJbW92cSA0KjgoJXJzaSksJXIxMQotLkxzNjoJbW92cSA1KjgoJXJzaSksJXI4Ci0uTHM3Ogltb3ZxIDYqOCglcnNpKSwlcjkKLS5Mczg6CW1vdnEgNyo4KCVyc2kpLCVyMTAKLS5MZDU6CW1vdm50aSAlcjExLDQqOCglcmRpKQotLkxkNjoJbW92bnRpICVyOCw1KjgoJXJkaSkKLS5MZDc6CW1vdm50aSAlcjksNio4KCVyZGkpCi0uTGQ4Ogltb3ZudGkgJXIxMCw3KjgoJXJkaSkKLQotCWRlYyAgJXJkeAotCi0JbGVhcSA2NCglcnNpKSwlcnNpCi0JbGVhcSA2NCglcmRpKSwlcmRpCi0KLQlqbnMgIC5MbG9vcAotCi0JLnAyYWxpZ24gNAotLkxoYW5kbGVfdGFpbDoKLQltb3ZsICVlY3gsJWVkeAotCWFuZGwgJDYzLCVlY3gKLQlzaHJsICQzLCVlY3gKLQlqeiAgIC5MaGFuZGxlXzcKLQltb3ZsICQ4LCVlYngKLQkucDJhbGlnbiA0Ci0uTGxvb3BfODoKLS5Mczk6CW1vdnEgKCVyc2kpLCVyOAotLkxkOToJbW92bnRpICVyOCwoJXJkaSkKLQlkZWNsICVlY3gKLQlsZWFxIDgoJXJkaSksJXJkaQotCWxlYXEgOCglcnNpKSwlcnNpCi0Jam56IC5MbG9vcF84Ci0KLS5MaGFuZGxlXzc6Ci0JbW92bCAlZWR4LCVlY3gKLQlhbmRsICQ3LCVlY3gKLQlqeiAgIC5MZW5kZQotCS5wMmFsaWduIDQKLS5MbG9vcF8xOgotLkxzMTA6CW1vdmIgKCVyc2kpLCVibAotLkxkMTA6CW1vdmIgJWJsLCglcmRpKQotCWluY3EgJXJkaQotCWluY3EgJXJzaQotCWRlY2wgJWVjeAotCWpueiAuTGxvb3BfMQotCi0JQ0ZJX1JFTUVNQkVSX1NUQVRFCi0uTGVuZGU6Ci0JcG9wcSAlcmN4Ci0JQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC04Ci0JQ0ZJX1JFU1RPUkUgJXJjeAotCXBvcHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJieAotCXNmZW5jZQotCXJldAotCUNGSV9SRVNUT1JFX1NUQVRFCi0KLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLyogYWxpZ24gZGVzdGluYXRpb24gKi8KLQkucDJhbGlnbiA0Ci0uTGJhZF9hbGlnbm1lbnQ6Ci0JbW92bCAkOCwlcjlkCi0Jc3VibCAlZWN4LCVyOWQKLQltb3ZsICVyOWQsJWVjeAotCWNtcHEgJXI5LCVyZHgKLQlqeiAgIC5MaGFuZGxlXzcKLQlqcyAgIC5MaGFuZGxlXzcKLS5MYWxpZ25fMToKLS5MczExOgltb3ZiICglcnNpKSwlYmwKLS5MZDExOgltb3ZiICVibCwoJXJkaSkKKwlqeiAxMDJmCQkJCS8qIGFscmVhZHkgYWxpZ25lZCAqLworCXN1YmwgJDgsJWVjeAorCW5lZ2wgJWVjeAorCXN1YmwgJWVjeCwlZWR4CisxMDA6CW1vdmIgKCVyc2kpLCVhbAorMTAxOgltb3ZiICVhbCwoJXJkaSkKIAlpbmNxICVyc2kKIAlpbmNxICVyZGkKIAlkZWNsICVlY3gKLQlqbnogLkxhbGlnbl8xCi0Jc3VicSAlcjksJXJkeAotCWptcCAuTGFmdGVyX2JhZF9hbGlnbm1lbnQKLSNlbmRpZgotCi0JLyogdGFibGUgc29ydGVkIGJ5IGV4Y2VwdGlvbiBhZGRyZXNzICovCi0JLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkuYWxpZ24gOAotCS5xdWFkIC5MczEsLkxzMWUKLQkucXVhZCAuTHMyLC5MczJlCi0JLnF1YWQgLkxzMywuTHMzZQotCS5xdWFkIC5MczQsLkxzNGUKLQkucXVhZCAuTGQxLC5MczFlCi0JLnF1YWQgLkxkMiwuTHMyZQotCS5xdWFkIC5MZDMsLkxzM2UKLQkucXVhZCAuTGQ0LC5MczRlCi0JLnF1YWQgLkxzNSwuTHM1ZQotCS5xdWFkIC5MczYsLkxzNmUKLQkucXVhZCAuTHM3LC5MczdlCi0JLnF1YWQgLkxzOCwuTHM4ZQotCS5xdWFkIC5MZDUsLkxzNWUKLQkucXVhZCAuTGQ2LC5MczZlCi0JLnF1YWQgLkxkNywuTHM3ZQotCS5xdWFkIC5MZDgsLkxzOGUKLQkucXVhZCAuTHM5LC5MZV9xdWFkCi0JLnF1YWQgLkxkOSwuTGVfcXVhZAotCS5xdWFkIC5MczEwLC5MZV9ieXRlCi0JLnF1YWQgLkxkMTAsLkxlX2J5dGUKLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLnF1YWQgLkxzMTEsLkx6ZXJvX3Jlc3QKLQkucXVhZCAuTGQxMSwuTHplcm9fcmVzdAotI2VuZGlmCi0JLnF1YWQgLkxlNSwuTGVfemVybworCWpueiAxMDBiCisxMDI6CisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzEwMzoJYWRkbCAlcjhkLCVlZHgJCQkvKiBlY3ggaXMgemVyb3Jlc3QgYWxzbyAqLworCWptcCBjb3B5X3VzZXJfaGFuZGxlX3RhaWwKIAkucHJldmlvdXMKIAotCS8qIGNvbXB1dGUgNjQtb2Zmc2V0IGZvciBtYWluIGxvb3AuIDggYnl0ZXMgYWNjdXJhY3kgd2l0aCBlcnJvciBvbiB0aGUKLQkgICBwZXNzaW1pc3RpYyBzaWRlLiB0aGlzIGlzIGdyb3NzLiBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gZml4IHRoZQotCSAgIGludGVyZmFjZS4gKi8KLQkvKiBlYXg6IHplcm8sIGVieDogNjQgKi8KLS5MczFlOiAJYWRkbCAkOCwlZWF4Ci0uTHMyZTogCWFkZGwgJDgsJWVheAotLkxzM2U6IAlhZGRsICQ4LCVlYXgKLS5MczRlOiAJYWRkbCAkOCwlZWF4Ci0uTHM1ZTogCWFkZGwgJDgsJWVheAotLkxzNmU6IAlhZGRsICQ4LCVlYXgKLS5MczdlOiAJYWRkbCAkOCwlZWF4Ci0uTHM4ZTogCWFkZGwgJDgsJWVheAotCWFkZHEgJXJieCwlcmRpCS8qICs2NCAqLwotCXN1YnEgJXJheCwlcmRpICAvKiBjb3JyZWN0IGRlc3RpbmF0aW9uIHdpdGggY29tcHV0ZWQgb2Zmc2V0ICovCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkuYWxpZ24gOAorCS5xdWFkIDEwMGIsMTAzYgorCS5xdWFkIDEwMWIsMTAzYgorCS5wcmV2aW91cworI2VuZGlmCisJLmVuZG0KIAotCXNobHEgJDYsJXJkeAkvKiBsb29wIGNvdW50ZXIgKiA2NCAoc3RyaWRlIGxlbmd0aCkgKi8KLQlhZGRxICVyYXgsJXJkeAkvKiBhZGQgb2Zmc2V0IHRvIGxvb3BjbnQgKi8KLQlhbmRsICQ2MywlZWN4CS8qIHJlbWFpbmluZyBieXRlcyAqLwotCWFkZHEgJXJjeCwlcmR4CS8qIGFkZCB0aGVtICovCi0Jam1wIC5MemVyb19yZXN0Ci0KLQkvKiBleGNlcHRpb24gb24gcXVhZCB3b3JkIGxvb3AgaW4gdGFpbCBoYW5kbGluZyAqLwotCS8qIGVjeDoJbG9vcGNudC84LCAlZWR4OiBsZW5ndGgsIHJkaTogY29ycmVjdCAqLwotLkxlX3F1YWQ6Ci0Jc2hsbCAkMywlZWN4CisvKgorICogY29weV91c2VyX25vY2FjaGUgLSBVbmNhY2hlZCBtZW1vcnkgY29weSB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZworICogVGhpcyB3aWxsIGZvcmNlIGRlc3RpbmF0aW9uL3NvdXJjZSBvdXQgb2YgY2FjaGUgZm9yIG1vcmUgcGVyZm9ybWFuY2UuCisgKi8KK0VOVFJZKF9fY29weV91c2VyX25vY2FjaGUpCisJQ0ZJX1NUQVJUUFJPQworCWNtcGwgJDgsJWVkeAorCWpiIDIwZgkJLyogbGVzcyB0aGVuIDggYnl0ZXMsIGdvIHRvIGJ5dGUgY29weSBsb29wICovCisJQUxJR05fREVTVElOQVRJT04KKwltb3ZsICVlZHgsJWVjeAorCWFuZGwgJDYzLCVlZHgKKwlzaHJsICQ2LCVlY3gKKwlqeiAxN2YKKzE6CW1vdnEgKCVyc2kpLCVyOAorMjoJbW92cSAxKjgoJXJzaSksJXI5CiszOgltb3ZxIDIqOCglcnNpKSwlcjEwCis0Ogltb3ZxIDMqOCglcnNpKSwlcjExCis1Ogltb3ZudGkgJXI4LCglcmRpKQorNjoJbW92bnRpICVyOSwxKjgoJXJkaSkKKzc6CW1vdm50aSAlcjEwLDIqOCglcmRpKQorODoJbW92bnRpICVyMTEsMyo4KCVyZGkpCis5Ogltb3ZxIDQqOCglcnNpKSwlcjgKKzEwOgltb3ZxIDUqOCglcnNpKSwlcjkKKzExOgltb3ZxIDYqOCglcnNpKSwlcjEwCisxMjoJbW92cSA3KjgoJXJzaSksJXIxMQorMTM6CW1vdm50aSAlcjgsNCo4KCVyZGkpCisxNDoJbW92bnRpICVyOSw1KjgoJXJkaSkKKzE1Ogltb3ZudGkgJXIxMCw2KjgoJXJkaSkKKzE2Ogltb3ZudGkgJXIxMSw3KjgoJXJkaSkKKwlsZWFxIDY0KCVyc2kpLCVyc2kKKwlsZWFxIDY0KCVyZGkpLCVyZGkKKwlkZWNsICVlY3gKKwlqbnogMWIKKzE3Ogltb3ZsICVlZHgsJWVjeAogCWFuZGwgJDcsJWVkeAorCXNocmwgJDMsJWVjeAorCWp6IDIwZgorMTg6CW1vdnEgKCVyc2kpLCVyOAorMTk6CW1vdm50aSAlcjgsKCVyZGkpCisJbGVhcSA4KCVyc2kpLCVyc2kKKwlsZWFxIDgoJXJkaSksJXJkaQorCWRlY2wgJWVjeAorCWpueiAxOGIKKzIwOglhbmRsICVlZHgsJWVkeAorCWp6IDIzZgorCW1vdmwgJWVkeCwlZWN4CisyMToJbW92YiAoJXJzaSksJWFsCisyMjoJbW92YiAlYWwsKCVyZGkpCisJaW5jcSAlcnNpCisJaW5jcSAlcmRpCisJZGVjbCAlZWN4CisJam56IDIxYgorMjM6CXhvcmwgJWVheCwlZWF4CisJc2ZlbmNlCisJcmV0CisKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMzA6CXNobGwgJDYsJWVjeAogCWFkZGwgJWVjeCwlZWR4Ci0JLyogZWR4OiBieXRlcyB0byB6ZXJvLCByZGk6IGRlc3QsIGVheDp6ZXJvICovCi0uTHplcm9fcmVzdDoKLQljbXBsICQwLCglcnNwKQkvKiB6ZXJvIGZsYWcgc2V0PyAqLwotCWp6ICAgLkxlX3plcm8KLQltb3ZxICVyZHgsJXJjeAotLkxlX2J5dGU6Ci0JeG9ybCAlZWF4LCVlYXgKLS5MZTU6CXJlcAotCXN0b3NiCi0JLyogd2hlbiB0aGVyZSBpcyBhbm90aGVyIGV4Y2VwdGlvbiB3aGlsZSB6ZXJvaW5nIHRoZSByZXN0IGp1c3QgcmV0dXJuICovCi0uTGVfemVybzoKLQltb3ZxICVyZHgsJXJheAotCWptcCAuTGVuZGUKKwlqbXAgNjBmCis0MDoJbGVhICglcmR4LCVyY3gsOCksJXJkeAorCWptcCA2MGYKKzUwOgltb3ZsICVlY3gsJWVkeAorNjA6CXNmZW5jZQorCW1vdmwgJXI4ZCwlZWN4CisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cworCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkucXVhZCAxYiwzMGIKKwkucXVhZCAyYiwzMGIKKwkucXVhZCAzYiwzMGIKKwkucXVhZCA0YiwzMGIKKwkucXVhZCA1YiwzMGIKKwkucXVhZCA2YiwzMGIKKwkucXVhZCA3YiwzMGIKKwkucXVhZCA4YiwzMGIKKwkucXVhZCA5YiwzMGIKKwkucXVhZCAxMGIsMzBiCisJLnF1YWQgMTFiLDMwYgorCS5xdWFkIDEyYiwzMGIKKwkucXVhZCAxM2IsMzBiCisJLnF1YWQgMTRiLDMwYgorCS5xdWFkIDE1YiwzMGIKKwkucXVhZCAxNmIsMzBiCisJLnF1YWQgMThiLDQwYgorCS5xdWFkIDE5Yiw0MGIKKwkucXVhZCAyMWIsNTBiCisJLnF1YWQgMjJiLDUwYgorCS5wcmV2aW91cwogCUNGSV9FTkRQUk9DCiBFTkRQUk9DKF9fY29weV91c2VyX25vY2FjaGUpCi0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2RlbGF5LmMgYi9hcmNoL3g4Ni9saWIvZGVsYXkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDU2ODYwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbGliL2RlbGF5LmMKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKglQcmVjaXNlIERlbGF5IExvb3BzIGZvciBpMzg2CisgKgorICoJQ29weXJpZ2h0IChDKSAxOTkzIExpbnVzIFRvcnZhbGRzCisgKglDb3B5cmlnaHQgKEMpIDE5OTcgTWFydGluIE1hcmVzIDxtakBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CisgKglDb3B5cmlnaHQgKEMpIDIwMDggSmlyaSBIbGFka3kgPGhsYWRreSBfZG90XyBqaXJpIF9hdF8gZ21haWwgX2RvdF8gY29tPgorICoKKyAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKKyAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiBUaGUgYWRkaXRpb25hbAorICoJanVtcCBtYWdpYyBpcyBuZWVkZWQgdG8gZ2V0IHRoZSB0aW1pbmcgc3RhYmxlIG9uIGFsbCB0aGUgQ1BVJ3MKKyAqCXdlIGhhdmUgdG8gd29ycnkgYWJvdXQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisKKyNpZmRlZiBDT05GSUdfU01QCisjIGluY2x1ZGUgPGFzbS9zbXAuaD4KKyNlbmRpZgorCisvKiBzaW1wbGUgbG9vcCBiYXNlZCBkZWxheTogKi8KK3N0YXRpYyB2b2lkIGRlbGF5X2xvb3AodW5zaWduZWQgbG9uZyBsb29wcykKK3sKKwlhc20gdm9sYXRpbGUoCisJCSIJdGVzdCAlMCwlMAlcbiIKKwkJIglqeiAzZgkJXG4iCisJCSIJam1wIDFmCQlcbiIKKworCQkiLmFsaWduIDE2CQlcbiIKKwkJIjE6CWptcCAyZgkJXG4iCisKKwkJIi5hbGlnbiAxNgkJXG4iCisJCSIyOglkZWMgJTAJCVxuIgorCQkiCWpueiAyYgkJXG4iCisJCSIzOglkZWMgJTAJCVxuIgorCisJCTogLyogd2UgZG9uJ3QgbmVlZCBvdXRwdXQgKi8KKwkJOiJhIiAobG9vcHMpCisJKTsKK30KKworLyogVFNDIGJhc2VkIGRlbGF5OiAqLworc3RhdGljIHZvaWQgZGVsYXlfdHNjKHVuc2lnbmVkIGxvbmcgbG9vcHMpCit7CisJdW5zaWduZWQgbG9uZyBiY2xvY2ssIG5vdzsKKwlpbnQgY3B1OworCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCXJkdHNjbChiY2xvY2spOworCWZvciAoOzspIHsKKwkJcmR0c2NsKG5vdyk7CisJCWlmICgobm93IC0gYmNsb2NrKSA+PSBsb29wcykKKwkJCWJyZWFrOworCisJCS8qIEFsbG93IFJUIHRhc2tzIHRvIHJ1biAqLworCQlwcmVlbXB0X2VuYWJsZSgpOworCQlyZXBfbm9wKCk7CisJCXByZWVtcHRfZGlzYWJsZSgpOworCisJCS8qCisJCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgbW92ZWQgdG8gYW5vdGhlciBDUFUsIGFuZAorCQkgKiBzaW5jZSBUU0MncyBhcmUgcGVyLWNwdSB3ZSBuZWVkIHRvIGNhbGN1bGF0ZQorCQkgKiB0aGF0LiBUaGUgZGVsYXkgbXVzdCBndWFyYW50ZWUgdGhhdCB3ZSB3YWl0ICJhdAorCQkgKiBsZWFzdCIgdGhlIGFtb3VudCBvZiB0aW1lLiBCZWluZyBtb3ZlZCB0byBhbm90aGVyCisJCSAqIENQVSBjb3VsZCBtYWtlIHRoZSB3YWl0IGxvbmdlciBidXQgd2UganVzdCBuZWVkIHRvCisJCSAqIG1ha2Ugc3VyZSB3ZSB3YWl0ZWQgbG9uZyBlbm91Z2guIFJlYmFsYW5jZSB0aGUKKwkJICogY291bnRlciBmb3IgdGhpcyBDUFUuCisJCSAqLworCQlpZiAodW5saWtlbHkoY3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkpIHsKKwkJCWxvb3BzIC09IChub3cgLSBiY2xvY2spOworCQkJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCQkJcmR0c2NsKGJjbG9jayk7CisJCX0KKwl9CisJcHJlZW1wdF9lbmFibGUoKTsKK30KKworLyoKKyAqIFNpbmNlIHdlIGNhbGlicmF0ZSBvbmx5IG9uY2UgYXQgYm9vdCwgdGhpcworICogZnVuY3Rpb24gc2hvdWxkIGJlIHNldCBvbmNlIGF0IGJvb3QgYW5kIG5vdCBjaGFuZ2VkCisgKi8KK3N0YXRpYyB2b2lkICgqZGVsYXlfZm4pKHVuc2lnbmVkIGxvbmcpID0gZGVsYXlfbG9vcDsKKwordm9pZCB1c2VfdHNjX2RlbGF5KHZvaWQpCit7CisJZGVsYXlfZm4gPSBkZWxheV90c2M7Cit9CisKK2ludCBfX2RldmluaXQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcgKnRpbWVyX3ZhbCkKK3sKKwlpZiAoZGVsYXlfZm4gPT0gZGVsYXlfdHNjKSB7CisJCXJkdHNjbGwoKnRpbWVyX3ZhbCk7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLTE7Cit9CisKK3ZvaWQgX19kZWxheSh1bnNpZ25lZCBsb25nIGxvb3BzKQoreworCWRlbGF5X2ZuKGxvb3BzKTsKK30KK0VYUE9SVF9TWU1CT0woX19kZWxheSk7CisKK2lubGluZSB2b2lkIF9fY29uc3RfdWRlbGF5KHVuc2lnbmVkIGxvbmcgeGxvb3BzKQoreworCWludCBkMDsKKworCXhsb29wcyAqPSA0OworCWFzbSgibXVsbCAlJWVkeCIKKwkJOiI9ZCIgKHhsb29wcyksICI9JmEiIChkMCkKKwkJOiIxIiAoeGxvb3BzKSwgIjAiCisJCShjcHVfZGF0YShyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKS5sb29wc19wZXJfamlmZnkgKiAoSFovNCkpKTsKKworCV9fZGVsYXkoKyt4bG9vcHMpOworfQorRVhQT1JUX1NZTUJPTChfX2NvbnN0X3VkZWxheSk7CisKK3ZvaWQgX191ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjcykKK3sKKwlfX2NvbnN0X3VkZWxheSh1c2VjcyAqIDB4MDAwMDEwYzcpOyAvKiAyKiozMiAvIDEwMDAwMDAgKHJvdW5kZWQgdXApICovCit9CitFWFBPUlRfU1lNQk9MKF9fdWRlbGF5KTsKKwordm9pZCBfX25kZWxheSh1bnNpZ25lZCBsb25nIG5zZWNzKQoreworCV9fY29uc3RfdWRlbGF5KG5zZWNzICogMHgwMDAwNSk7IC8qIDIqKjMyIC8gMTAwMDAwMDAwMCAocm91bmRlZCB1cCkgKi8KK30KK0VYUE9SVF9TWU1CT0woX19uZGVsYXkpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2RlbGF5XzMyLmMgYi9hcmNoL3g4Ni9saWIvZGVsYXlfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDcxMGYyZC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvZGVsYXlfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0vKgotICoJUHJlY2lzZSBEZWxheSBMb29wcyBmb3IgaTM4NgotICoKLSAqCUNvcHlyaWdodCAoQykgMTk5MyBMaW51cyBUb3J2YWxkcwotICoJQ29weXJpZ2h0IChDKSAxOTk3IE1hcnRpbiBNYXJlcyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgotICoKLSAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKLSAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiBUaGUgYWRkaXRpb25hbAotICoJanVtcCBtYWdpYyBpcyBuZWVkZWQgdG8gZ2V0IHRoZSB0aW1pbmcgc3RhYmxlIG9uIGFsbCB0aGUgQ1BVJ3MKLSAqCXdlIGhhdmUgdG8gd29ycnkgYWJvdXQuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZXguaD4KLSNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL2RlbGF5Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0jIGluY2x1ZGUgPGFzbS9zbXAuaD4KLSNlbmRpZgotCi0vKiBzaW1wbGUgbG9vcCBiYXNlZCBkZWxheTogKi8KLXN0YXRpYyB2b2lkIGRlbGF5X2xvb3AodW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQlpbnQgZDA7Ci0KLQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJIlx0am1wIDFmXG4iCi0JCSIuYWxpZ24gMTZcbiIKLQkJIjE6XHRqbXAgMmZcbiIKLQkJIi5hbGlnbiAxNlxuIgotCQkiMjpcdGRlY2wgJTBcblx0am5zIDJiIgotCQk6Ij0mYSIgKGQwKQotCQk6IjAiIChsb29wcykpOwotfQotCi0vKiBUU0MgYmFzZWQgZGVsYXk6ICovCi1zdGF0aWMgdm9pZCBkZWxheV90c2ModW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQl1bnNpZ25lZCBsb25nIGJjbG9jaywgbm93OwotCWludCBjcHU7Ci0KLQlwcmVlbXB0X2Rpc2FibGUoKTsKLQljcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JcmR0c2NsKGJjbG9jayk7Ci0JZm9yICg7OykgewotCQlyZHRzY2wobm93KTsKLQkJaWYgKChub3cgLSBiY2xvY2spID49IGxvb3BzKQotCQkJYnJlYWs7Ci0KLQkJLyogQWxsb3cgUlQgdGFza3MgdG8gcnVuICovCi0JCXByZWVtcHRfZW5hYmxlKCk7Ci0JCXJlcF9ub3AoKTsKLQkJcHJlZW1wdF9kaXNhYmxlKCk7Ci0KLQkJLyoKLQkJICogSXQgaXMgcG9zc2libGUgdGhhdCB3ZSBtb3ZlZCB0byBhbm90aGVyIENQVSwgYW5kCi0JCSAqIHNpbmNlIFRTQydzIGFyZSBwZXItY3B1IHdlIG5lZWQgdG8gY2FsY3VsYXRlCi0JCSAqIHRoYXQuIFRoZSBkZWxheSBtdXN0IGd1YXJhbnRlZSB0aGF0IHdlIHdhaXQgImF0Ci0JCSAqIGxlYXN0IiB0aGUgYW1vdW50IG9mIHRpbWUuIEJlaW5nIG1vdmVkIHRvIGFub3RoZXIKLQkJICogQ1BVIGNvdWxkIG1ha2UgdGhlIHdhaXQgbG9uZ2VyIGJ1dCB3ZSBqdXN0IG5lZWQgdG8KLQkJICogbWFrZSBzdXJlIHdlIHdhaXRlZCBsb25nIGVub3VnaC4gUmViYWxhbmNlIHRoZQotCQkgKiBjb3VudGVyIGZvciB0aGlzIENQVS4KLQkJICovCi0JCWlmICh1bmxpa2VseShjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKSkgewotCQkJbG9vcHMgLT0gKG5vdyAtIGJjbG9jayk7Ci0JCQljcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JCQlyZHRzY2woYmNsb2NrKTsKLQkJfQotCX0KLQlwcmVlbXB0X2VuYWJsZSgpOwotfQotCi0vKgotICogU2luY2Ugd2UgY2FsaWJyYXRlIG9ubHkgb25jZSBhdCBib290LCB0aGlzCi0gKiBmdW5jdGlvbiBzaG91bGQgYmUgc2V0IG9uY2UgYXQgYm9vdCBhbmQgbm90IGNoYW5nZWQKLSAqLwotc3RhdGljIHZvaWQgKCpkZWxheV9mbikodW5zaWduZWQgbG9uZykgPSBkZWxheV9sb29wOwotCi12b2lkIHVzZV90c2NfZGVsYXkodm9pZCkKLXsKLQlkZWxheV9mbiA9IGRlbGF5X3RzYzsKLX0KLQotaW50IF9fZGV2aW5pdCByZWFkX2N1cnJlbnRfdGltZXIodW5zaWduZWQgbG9uZyAqdGltZXJfdmFsKQotewotCWlmIChkZWxheV9mbiA9PSBkZWxheV90c2MpIHsKLQkJcmR0c2NsKCp0aW1lcl92YWwpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIC0xOwotfQotCi12b2lkIF9fZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQlkZWxheV9mbihsb29wcyk7Ci19Ci0KLWlubGluZSB2b2lkIF9fY29uc3RfdWRlbGF5KHVuc2lnbmVkIGxvbmcgeGxvb3BzKQotewotCWludCBkMDsKLQotCXhsb29wcyAqPSA0OwotCV9fYXNtX18oIm11bGwgJTAiCi0JCToiPWQiICh4bG9vcHMpLCAiPSZhIiAoZDApCi0JCToiMSIgKHhsb29wcyksICIwIgotCQkoY3B1X2RhdGEocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkubG9vcHNfcGVyX2ppZmZ5ICogKEhaLzQpKSk7Ci0KLQlfX2RlbGF5KCsreGxvb3BzKTsKLX0KLQotdm9pZCBfX3VkZWxheSh1bnNpZ25lZCBsb25nIHVzZWNzKQotewotCV9fY29uc3RfdWRlbGF5KHVzZWNzICogMHgwMDAwMTBjNyk7IC8qIDIqKjMyIC8gMTAwMDAwMCAocm91bmRlZCB1cCkgKi8KLX0KLQotdm9pZCBfX25kZWxheSh1bnNpZ25lZCBsb25nIG5zZWNzKQotewotCV9fY29uc3RfdWRlbGF5KG5zZWNzICogMHgwMDAwNSk7IC8qIDIqKjMyIC8gMTAwMDAwMDAwMCAocm91bmRlZCB1cCkgKi8KLX0KLQotRVhQT1JUX1NZTUJPTChfX2RlbGF5KTsKLUVYUE9SVF9TWU1CT0woX19jb25zdF91ZGVsYXkpOwotRVhQT1JUX1NZTUJPTChfX3VkZWxheSk7Ci1FWFBPUlRfU1lNQk9MKF9fbmRlbGF5KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9kZWxheV82NC5jIGIvYXJjaC94ODYvbGliL2RlbGF5XzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjNDQxYmUuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL2RlbGF5XzY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgotICoJUHJlY2lzZSBEZWxheSBMb29wcyBmb3IgeDg2LTY0Ci0gKgotICoJQ29weXJpZ2h0IChDKSAxOTkzIExpbnVzIFRvcnZhbGRzCi0gKglDb3B5cmlnaHQgKEMpIDE5OTcgTWFydGluIE1hcmVzIDxtakBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+Ci0gKgotICoJVGhlIF9fZGVsYXkgZnVuY3Rpb24gbXVzdCBfTk9UXyBiZSBpbmxpbmVkIGFzIGl0cyBleGVjdXRpb24gdGltZQotICoJZGVwZW5kcyB3aWxkbHkgb24gYWxpZ25tZW50IG9uIG1hbnkgeDg2IHByb2Nlc3NvcnMuIAotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvcHJlZW1wdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSA8YXNtL2RlbGF5Lmg+Ci0jaW5jbHVkZSA8YXNtL21zci5oPgotCi0jaWZkZWYgQ09ORklHX1NNUAotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNlbmRpZgotCi1pbnQgX19kZXZpbml0IHJlYWRfY3VycmVudF90aW1lcih1bnNpZ25lZCBsb25nICp0aW1lcl92YWx1ZSkKLXsKLQlyZHRzY2xsKCp0aW1lcl92YWx1ZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgX19kZWxheSh1bnNpZ25lZCBsb25nIGxvb3BzKQotewotCXVuc2lnbmVkIGJjbG9jaywgbm93OwotCWludCBjcHU7Ci0KLQlwcmVlbXB0X2Rpc2FibGUoKTsKLQljcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JcmR0c2NsKGJjbG9jayk7Ci0JZm9yICg7OykgewotCQlyZHRzY2wobm93KTsKLQkJaWYgKChub3cgLSBiY2xvY2spID49IGxvb3BzKQotCQkJYnJlYWs7Ci0KLQkJLyogQWxsb3cgUlQgdGFza3MgdG8gcnVuICovCi0JCXByZWVtcHRfZW5hYmxlKCk7Ci0JCXJlcF9ub3AoKTsKLQkJcHJlZW1wdF9kaXNhYmxlKCk7Ci0KLQkJLyoKLQkJICogSXQgaXMgcG9zc2libGUgdGhhdCB3ZSBtb3ZlZCB0byBhbm90aGVyIENQVSwgYW5kCi0JCSAqIHNpbmNlIFRTQydzIGFyZSBwZXItY3B1IHdlIG5lZWQgdG8gY2FsY3VsYXRlCi0JCSAqIHRoYXQuIFRoZSBkZWxheSBtdXN0IGd1YXJhbnRlZSB0aGF0IHdlIHdhaXQgImF0Ci0JCSAqIGxlYXN0IiB0aGUgYW1vdW50IG9mIHRpbWUuIEJlaW5nIG1vdmVkIHRvIGFub3RoZXIKLQkJICogQ1BVIGNvdWxkIG1ha2UgdGhlIHdhaXQgbG9uZ2VyIGJ1dCB3ZSBqdXN0IG5lZWQgdG8KLQkJICogbWFrZSBzdXJlIHdlIHdhaXRlZCBsb25nIGVub3VnaC4gUmViYWxhbmNlIHRoZQotCQkgKiBjb3VudGVyIGZvciB0aGlzIENQVS4KLQkJICovCi0JCWlmICh1bmxpa2VseShjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKSkgewotCQkJbG9vcHMgLT0gKG5vdyAtIGJjbG9jayk7Ci0JCQljcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JCQlyZHRzY2woYmNsb2NrKTsKLQkJfQotCX0KLQlwcmVlbXB0X2VuYWJsZSgpOwotfQotRVhQT1JUX1NZTUJPTChfX2RlbGF5KTsKLQotaW5saW5lIHZvaWQgX19jb25zdF91ZGVsYXkodW5zaWduZWQgbG9uZyB4bG9vcHMpCi17Ci0JX19kZWxheSgoKHhsb29wcyAqIEhaICoKLQkJY3B1X2RhdGEocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkubG9vcHNfcGVyX2ppZmZ5KSA+PiAzMikgKyAxKTsKLX0KLUVYUE9SVF9TWU1CT0woX19jb25zdF91ZGVsYXkpOwotCi12b2lkIF9fdWRlbGF5KHVuc2lnbmVkIGxvbmcgdXNlY3MpCi17Ci0JX19jb25zdF91ZGVsYXkodXNlY3MgKiAweDAwMDAxMGM3KTsgIC8qIDIqKjMyIC8gMTAwMDAwMCAocm91bmRlZCB1cCkgKi8KLX0KLUVYUE9SVF9TWU1CT0woX191ZGVsYXkpOwotCi12b2lkIF9fbmRlbGF5KHVuc2lnbmVkIGxvbmcgbnNlY3MpCi17Ci0JX19jb25zdF91ZGVsYXkobnNlY3MgKiAweDAwMDA1KTsgIC8qIDIqKjMyIC8gMTAwMDAwMDAwMCAocm91bmRlZCB1cCkgKi8KLX0KLUVYUE9SVF9TWU1CT0woX19uZGVsYXkpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2dldHVzZXIuUyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQzNzQwMAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBfX2dldF91c2VyIGZ1bmN0aW9ucy4KKyAqCisgKiAoQykgQ29weXJpZ2h0IDE5OTggTGludXMgVG9ydmFsZHMKKyAqIChDKSBDb3B5cmlnaHQgMjAwNSBBbmRpIEtsZWVuCisgKiAoQykgQ29weXJpZ2h0IDIwMDggR2xhdWJlciBDb3N0YQorICoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCisgKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQorICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKKyAqIHJldHVybiB2YWx1ZS4KKyAqLworCisvKgorICogX19nZXRfdXNlcl9YCisgKgorICogSW5wdXRzOgklW3J8ZV1heCBjb250YWlucyB0aGUgYWRkcmVzcy4KKyAqCQlUaGUgcmVnaXN0ZXIgaXMgbW9kaWZpZWQsIGJ1dCBhbGwgY2hhbmdlcyBhcmUgdW5kb25lCisgKgkJYmVmb3JlIHJldHVybmluZyBiZWNhdXNlIHRoZSBDIGNvZGUgZG9lc24ndCBrbm93IGFib3V0IGl0LgorICoKKyAqIE91dHB1dHM6CSVbcnxlXWF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKKyAqCQklW3J8ZV1keCBjb250YWlucyB6ZXJvLWV4dGVuZGVkIHZhbHVlCisgKgorICoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAorICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS9lcnJuby5oPgorI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgorI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorI2luY2x1ZGUgPGFzbS9hc20uaD4KKworCS50ZXh0CitFTlRSWShfX2dldF91c2VyXzEpCisJQ0ZJX1NUQVJUUFJPQworCUdFVF9USFJFQURfSU5GTyglX0FTTV9EWCkKKwljbXAgVElfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKKwlqYWUgYmFkX2dldF91c2VyCisxOgltb3Z6YiAoJV9BU01fQVgpLCVlZHgKKwl4b3IgJWVheCwlZWF4CisJcmV0CisJQ0ZJX0VORFBST0MKK0VORFBST0MoX19nZXRfdXNlcl8xKQorCitFTlRSWShfX2dldF91c2VyXzIpCisJQ0ZJX1NUQVJUUFJPQworCWFkZCAkMSwlX0FTTV9BWAorCWpjIGJhZF9nZXRfdXNlcgorCUdFVF9USFJFQURfSU5GTyglX0FTTV9EWCkKKwljbXAgVElfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKKwlqYWUgYmFkX2dldF91c2VyCisyOgltb3Z6d2wgLTEoJV9BU01fQVgpLCVlZHgKKwl4b3IgJWVheCwlZWF4CisJcmV0CisJQ0ZJX0VORFBST0MKK0VORFBST0MoX19nZXRfdXNlcl8yKQorCitFTlRSWShfX2dldF91c2VyXzQpCisJQ0ZJX1NUQVJUUFJPQworCWFkZCAkMywlX0FTTV9BWAorCWpjIGJhZF9nZXRfdXNlcgorCUdFVF9USFJFQURfSU5GTyglX0FTTV9EWCkKKwljbXAgVElfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKKwlqYWUgYmFkX2dldF91c2VyCiszOgltb3YgLTMoJV9BU01fQVgpLCVlZHgKKwl4b3IgJWVheCwlZWF4CisJcmV0CisJQ0ZJX0VORFBST0MKK0VORFBST0MoX19nZXRfdXNlcl80KQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAorRU5UUlkoX19nZXRfdXNlcl84KQorCUNGSV9TVEFSVFBST0MKKwlhZGQgJDcsJV9BU01fQVgKKwlqYyBiYWRfZ2V0X3VzZXIKKwlHRVRfVEhSRUFEX0lORk8oJV9BU01fRFgpCisJY21wIFRJX2FkZHJfbGltaXQoJV9BU01fRFgpLCVfQVNNX0FYCisJamFlCWJhZF9nZXRfdXNlcgorNDoJbW92cSAtNyglX0FTTV9BWCksJV9BU01fRFgKKwl4b3IgJWVheCwlZWF4CisJcmV0CisJQ0ZJX0VORFBST0MKK0VORFBST0MoX19nZXRfdXNlcl84KQorI2VuZGlmCisKK2JhZF9nZXRfdXNlcjoKKwlDRklfU1RBUlRQUk9DCisJeG9yICVlZHgsJWVkeAorCW1vdiAkKC1FRkFVTFQpLCVfQVNNX0FYCisJcmV0CisJQ0ZJX0VORFBST0MKK0VORChiYWRfZ2V0X3VzZXIpCisKKy5zZWN0aW9uIF9fZXhfdGFibGUsImEiCisJX0FTTV9QVFIgMWIsYmFkX2dldF91c2VyCisJX0FTTV9QVFIgMmIsYmFkX2dldF91c2VyCisJX0FTTV9QVFIgM2IsYmFkX2dldF91c2VyCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCV9BU01fUFRSIDRiLGJhZF9nZXRfdXNlcgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvZ2V0dXNlcl8zMi5TIGIvYXJjaC94ODYvbGliL2dldHVzZXJfMzIuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ4NGI1My4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvZ2V0dXNlcl8zMi5TCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIF9fZ2V0X3VzZXIgZnVuY3Rpb25zLgotICoKLSAqIChDKSBDb3B5cmlnaHQgMTk5OCBMaW51cyBUb3J2YWxkcwotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCi0gKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQotICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKLSAqIHJldHVybiB2YWx1ZS4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vZHdhcmYyLmg+Ci0jaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0KLQotLyoKLSAqIF9fZ2V0X3VzZXJfWAotICoKLSAqIElucHV0czoJJWVheCBjb250YWlucyB0aGUgYWRkcmVzcwotICoKLSAqIE91dHB1dHM6CSVlYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQotICoJCSVlZHggY29udGFpbnMgemVyby1leHRlbmRlZCB2YWx1ZQotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAotICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KLSAqLwotCi0udGV4dAotRU5UUlkoX19nZXRfdXNlcl8xKQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJWVkeCkKLQljbXBsIFRJX2FkZHJfbGltaXQoJWVkeCksJWVheAotCWphZSBiYWRfZ2V0X3VzZXIKLTE6CW1vdnpibCAoJWVheCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl8xKQotCi1FTlRSWShfX2dldF91c2VyXzIpCi0JQ0ZJX1NUQVJUUFJPQwotCWFkZGwgJDEsJWVheAotCWpjIGJhZF9nZXRfdXNlcgotCUdFVF9USFJFQURfSU5GTyglZWR4KQotCWNtcGwgVElfYWRkcl9saW1pdCglZWR4KSwlZWF4Ci0JamFlIGJhZF9nZXRfdXNlcgotMjoJbW92endsIC0xKCVlYXgpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfMikKLQotRU5UUlkoX19nZXRfdXNlcl80KQotCUNGSV9TVEFSVFBST0MKLQlhZGRsICQzLCVlYXgKLQlqYyBiYWRfZ2V0X3VzZXIKLQlHRVRfVEhSRUFEX0lORk8oJWVkeCkKLQljbXBsIFRJX2FkZHJfbGltaXQoJWVkeCksJWVheAotCWphZSBiYWRfZ2V0X3VzZXIKLTM6CW1vdmwgLTMoJWVheCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl80KQotCi1iYWRfZ2V0X3VzZXI6Ci0JQ0ZJX1NUQVJUUFJPQwotCXhvcmwgJWVkeCwlZWR4Ci0JbW92bCAkLTE0LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EKGJhZF9nZXRfdXNlcikKLQotLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkubG9uZyAxYixiYWRfZ2V0X3VzZXIKLQkubG9uZyAyYixiYWRfZ2V0X3VzZXIKLQkubG9uZyAzYixiYWRfZ2V0X3VzZXIKLS5wcmV2aW91cwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2dldHVzZXJfNjQuUyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyXzY0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0NDg4NzYuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL2dldHVzZXJfNjQuUworKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0vKgotICogX19nZXRfdXNlciBmdW5jdGlvbnMuCi0gKgotICogKEMpIENvcHlyaWdodCAxOTk4IExpbnVzIFRvcnZhbGRzCi0gKiAoQykgQ29weXJpZ2h0IDIwMDUgQW5kaSBLbGVlbgotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCi0gKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQotICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKLSAqIHJldHVybiB2YWx1ZS4KLSAqLwotCi0vKgotICogX19nZXRfdXNlcl9YCi0gKgotICogSW5wdXRzOgklcmN4IGNvbnRhaW5zIHRoZSBhZGRyZXNzLgotICoJCVRoZSByZWdpc3RlciBpcyBtb2RpZmllZCwgYnV0IGFsbCBjaGFuZ2VzIGFyZSB1bmRvbmUKLSAqCQliZWZvcmUgcmV0dXJuaW5nIGJlY2F1c2UgdGhlIEMgY29kZSBkb2Vzbid0IGtub3cgYWJvdXQgaXQuCi0gKgotICogT3V0cHV0czoJJXJheCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCi0gKgkJJXJkeCBjb250YWlucyB6ZXJvLWV4dGVuZGVkIHZhbHVlCi0gKiAKLSAqICVyOCBpcyBkZXN0cm95ZWQuCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCi0gKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2Vycm5vLmg+Ci0jaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+Ci0jaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0KLQkudGV4dAotRU5UUlkoX19nZXRfdXNlcl8xKQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSBiYWRfZ2V0X3VzZXIKLTE6CW1vdnpiICglcmN4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzEpCi0KLUVOVFJZKF9fZ2V0X3VzZXJfMikKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQxLCVyY3gKLQlqYyAyMGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgMjBmCi0JZGVjcSAgICVyY3gKLTI6CW1vdnp3bCAoJXJjeCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0yMDoJZGVjcSAgICAlcmN4Ci0Jam1wCWJhZF9nZXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfMikKLQotRU5UUlkoX19nZXRfdXNlcl80KQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDMsJXJjeAotCWpjIDMwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSAzMGYKLQlzdWJxICQzLCVyY3gKLTM6CW1vdmwgKCVyY3gpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotMzA6CXN1YnEgJDMsJXJjeAotCWptcCBiYWRfZ2V0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzQpCi0KLUVOVFJZKF9fZ2V0X3VzZXJfOCkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQ3LCVyY3gKLQlqYyA0MGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUJNDBmCi0Jc3VicQkkNywlcmN4Ci00Ogltb3ZxICglcmN4KSwlcmR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTQwOglzdWJxICQ3LCVyY3gKLQlqbXAgYmFkX2dldF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl84KQotCi1iYWRfZ2V0X3VzZXI6Ci0JQ0ZJX1NUQVJUUFJPQwotCXhvcmwgJWVkeCwlZWR4Ci0JbW92cSAkKC1FRkFVTFQpLCVyYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EKGJhZF9nZXRfdXNlcikKLQotLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkucXVhZCAxYixiYWRfZ2V0X3VzZXIKLQkucXVhZCAyYixiYWRfZ2V0X3VzZXIKLQkucXVhZCAzYixiYWRfZ2V0X3VzZXIKLQkucXVhZCA0YixiYWRfZ2V0X3VzZXIKLS5wcmV2aW91cwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3B1dHVzZXIuUyBiL2FyY2gveDg2L2xpYi9wdXR1c2VyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZiMGQxNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2xpYi9wdXR1c2VyLlMKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIF9fcHV0X3VzZXIgZnVuY3Rpb25zLgorICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwNSBMaW51cyBUb3J2YWxkcworICogKEMpIENvcHlyaWdodCAyMDA1IEFuZGkgS2xlZW4KKyAqIChDKSBDb3B5cmlnaHQgMjAwOCBHbGF1YmVyIENvc3RhCisgKgorICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKKyAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5CisgKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgorICogcmV0dXJuIHZhbHVlLgorICovCisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KKyNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KKyNpbmNsdWRlIDxhc20vZXJybm8uaD4KKyNpbmNsdWRlIDxhc20vYXNtLmg+CisKKworLyoKKyAqIF9fcHV0X3VzZXJfWAorICoKKyAqIElucHV0czoJJWVheFs6JWVkeF0gY29udGFpbnMgdGhlIGRhdGEKKyAqCQklZWN4IGNvbnRhaW5zIHRoZSBhZGRyZXNzCisgKgorICogT3V0cHV0czoJJWVheCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCisgKgorICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCisgKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgorICovCisKKyNkZWZpbmUgRU5URVIJQ0ZJX1NUQVJUUFJPQyA7IFwKKwkJR0VUX1RIUkVBRF9JTkZPKCVfQVNNX0JYKQorI2RlZmluZSBFWElUCXJldCA7IFwKKwkJQ0ZJX0VORFBST0MKKworLnRleHQKK0VOVFJZKF9fcHV0X3VzZXJfMSkKKwlFTlRFUgorCWNtcCBUSV9hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9DWAorCWphZSBiYWRfcHV0X3VzZXIKKzE6CW1vdmIgJWFsLCglX0FTTV9DWCkKKwl4b3IgJWVheCwlZWF4CisJRVhJVAorRU5EUFJPQyhfX3B1dF91c2VyXzEpCisKK0VOVFJZKF9fcHV0X3VzZXJfMikKKwlFTlRFUgorCW1vdiBUSV9hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAorCXN1YiAkMSwlX0FTTV9CWAorCWNtcCAlX0FTTV9CWCwlX0FTTV9DWAorCWphZSBiYWRfcHV0X3VzZXIKKzI6CW1vdncgJWF4LCglX0FTTV9DWCkKKwl4b3IgJWVheCwlZWF4CisJRVhJVAorRU5EUFJPQyhfX3B1dF91c2VyXzIpCisKK0VOVFJZKF9fcHV0X3VzZXJfNCkKKwlFTlRFUgorCW1vdiBUSV9hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAorCXN1YiAkMywlX0FTTV9CWAorCWNtcCAlX0FTTV9CWCwlX0FTTV9DWAorCWphZSBiYWRfcHV0X3VzZXIKKzM6CW1vdmwgJWVheCwoJV9BU01fQ1gpCisJeG9yICVlYXgsJWVheAorCUVYSVQKK0VORFBST0MoX19wdXRfdXNlcl80KQorCitFTlRSWShfX3B1dF91c2VyXzgpCisJRU5URVIKKwltb3YgVElfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQlgKKwlzdWIgJDcsJV9BU01fQlgKKwljbXAgJV9BU01fQlgsJV9BU01fQ1gKKwlqYWUgYmFkX3B1dF91c2VyCis0Ogltb3YgJV9BU01fQVgsKCVfQVNNX0NYKQorI2lmZGVmIENPTkZJR19YODZfMzIKKzU6CW1vdmwgJWVkeCw0KCVfQVNNX0NYKQorI2VuZGlmCisJeG9yICVlYXgsJWVheAorCUVYSVQKK0VORFBST0MoX19wdXRfdXNlcl84KQorCitiYWRfcHV0X3VzZXI6CisJQ0ZJX1NUQVJUUFJPQworCW1vdmwgJC1FRkFVTFQsJWVheAorCUVYSVQKK0VORChiYWRfcHV0X3VzZXIpCisKKy5zZWN0aW9uIF9fZXhfdGFibGUsImEiCisJX0FTTV9QVFIgMWIsYmFkX3B1dF91c2VyCisJX0FTTV9QVFIgMmIsYmFkX3B1dF91c2VyCisJX0FTTV9QVFIgM2IsYmFkX3B1dF91c2VyCisJX0FTTV9QVFIgNGIsYmFkX3B1dF91c2VyCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCV9BU01fUFRSIDViLGJhZF9wdXRfdXNlcgorI2VuZGlmCisucHJldmlvdXMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9wdXR1c2VyXzMyLlMgYi9hcmNoL3g4Ni9saWIvcHV0dXNlcl8zMi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNThmYmExLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9wdXR1c2VyXzMyLlMKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogX19wdXRfdXNlciBmdW5jdGlvbnMuCi0gKgotICogKEMpIENvcHlyaWdodCAyMDA1IExpbnVzIFRvcnZhbGRzCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKLSAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5Ci0gKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgotICogcmV0dXJuIHZhbHVlLgotICovCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLQotCi0vKgotICogX19wdXRfdXNlcl9YCi0gKgotICogSW5wdXRzOgklZWF4WzolZWR4XSBjb250YWlucyB0aGUgZGF0YQotICoJCSVlY3ggY29udGFpbnMgdGhlIGFkZHJlc3MKLSAqCi0gKiBPdXRwdXRzOgklZWF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKLSAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCi0gKi8KLQotI2RlZmluZSBFTlRFUglDRklfU1RBUlRQUk9DIDsgXAotCQlwdXNobCAlZWJ4IDsgXAotCQlDRklfQURKVVNUX0NGQV9PRkZTRVQgNCA7IFwKLQkJQ0ZJX1JFTF9PRkZTRVQgZWJ4LCAwIDsgXAotCQlHRVRfVEhSRUFEX0lORk8oJWVieCkKLSNkZWZpbmUgRVhJVAlwb3BsICVlYnggOyBcCi0JCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtNCA7IFwKLQkJQ0ZJX1JFU1RPUkUgZWJ4IDsgXAotCQlyZXQgOyBcCi0JCUNGSV9FTkRQUk9DCi0KLS50ZXh0Ci1FTlRSWShfX3B1dF91c2VyXzEpCi0JRU5URVIKLQljbXBsIFRJX2FkZHJfbGltaXQoJWVieCksJWVjeAotCWphZSBiYWRfcHV0X3VzZXIKLTE6CW1vdmIgJWFsLCglZWN4KQotCXhvcmwgJWVheCwlZWF4Ci0JRVhJVAotRU5EUFJPQyhfX3B1dF91c2VyXzEpCi0KLUVOVFJZKF9fcHV0X3VzZXJfMikKLQlFTlRFUgotCW1vdmwgVElfYWRkcl9saW1pdCglZWJ4KSwlZWJ4Ci0Jc3VibCAkMSwlZWJ4Ci0JY21wbCAlZWJ4LCVlY3gKLQlqYWUgYmFkX3B1dF91c2VyCi0yOgltb3Z3ICVheCwoJWVjeCkKLQl4b3JsICVlYXgsJWVheAotCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl8yKQotCi1FTlRSWShfX3B1dF91c2VyXzQpCi0JRU5URVIKLQltb3ZsIFRJX2FkZHJfbGltaXQoJWVieCksJWVieAotCXN1YmwgJDMsJWVieAotCWNtcGwgJWVieCwlZWN4Ci0JamFlIGJhZF9wdXRfdXNlcgotMzoJbW92bCAlZWF4LCglZWN4KQotCXhvcmwgJWVheCwlZWF4Ci0JRVhJVAotRU5EUFJPQyhfX3B1dF91c2VyXzQpCi0KLUVOVFJZKF9fcHV0X3VzZXJfOCkKLQlFTlRFUgotCW1vdmwgVElfYWRkcl9saW1pdCglZWJ4KSwlZWJ4Ci0Jc3VibCAkNywlZWJ4Ci0JY21wbCAlZWJ4LCVlY3gKLQlqYWUgYmFkX3B1dF91c2VyCi00Ogltb3ZsICVlYXgsKCVlY3gpCi01Ogltb3ZsICVlZHgsNCglZWN4KQotCXhvcmwgJWVheCwlZWF4Ci0JRVhJVAotRU5EUFJPQyhfX3B1dF91c2VyXzgpCi0KLWJhZF9wdXRfdXNlcjoKLQlDRklfU1RBUlRQUk9DIHNpbXBsZQotCUNGSV9ERUZfQ0ZBIGVzcCwgMio0Ci0JQ0ZJX09GRlNFVCBlaXAsIC0xKjQKLQlDRklfT0ZGU0VUIGVieCwgLTIqNAotCW1vdmwgJC0xNCwlZWF4Ci0JRVhJVAotRU5EKGJhZF9wdXRfdXNlcikKLQotLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkubG9uZyAxYixiYWRfcHV0X3VzZXIKLQkubG9uZyAyYixiYWRfcHV0X3VzZXIKLQkubG9uZyAzYixiYWRfcHV0X3VzZXIKLQkubG9uZyA0YixiYWRfcHV0X3VzZXIKLQkubG9uZyA1YixiYWRfcHV0X3VzZXIKLS5wcmV2aW91cwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3B1dHVzZXJfNjQuUyBiL2FyY2gveDg2L2xpYi9wdXR1c2VyXzY0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ODlmNWEuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL3B1dHVzZXJfNjQuUworKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogX19wdXRfdXNlciBmdW5jdGlvbnMuCi0gKgotICogKEMpIENvcHlyaWdodCAxOTk4IExpbnVzIFRvcnZhbGRzCi0gKiAoQykgQ29weXJpZ2h0IDIwMDUgQW5kaSBLbGVlbgotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCi0gKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQotICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKLSAqIHJldHVybiB2YWx1ZS4KLSAqLwotCi0vKgotICogX19wdXRfdXNlcl9YCi0gKgotICogSW5wdXRzOgklcmN4IGNvbnRhaW5zIHRoZSBhZGRyZXNzCi0gKgkJJXJkeCBjb250YWlucyBuZXcgdmFsdWUKLSAqCi0gKiBPdXRwdXRzOgklcmF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKLSAqCi0gKiAlcjggaXMgZGVzdHJveWVkLgotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAotICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9lcnJuby5oPgotI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi0JLnRleHQKLUVOVFJZKF9fcHV0X3VzZXJfMSkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgYmFkX3B1dF91c2VyCi0xOgltb3ZiICVkbCwoJXJjeCkKLQl4b3JsICVlYXgsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fcHV0X3VzZXJfMSkKLQotRU5UUlkoX19wdXRfdXNlcl8yKQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDEsJXJjeAotCWpjIDIwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSAyMGYKLQlkZWNxICVyY3gKLTI6CW1vdncgJWR4LCglcmN4KQotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0yMDoJZGVjcSAlcmN4Ci0Jam1wIGJhZF9wdXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fcHV0X3VzZXJfMikKLQotRU5UUlkoX19wdXRfdXNlcl80KQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDMsJXJjeAotCWpjIDMwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSAzMGYKLQlzdWJxICQzLCVyY3gKLTM6CW1vdmwgJWVkeCwoJXJjeCkKLQl4b3JsICVlYXgsJWVheAotCXJldAotMzA6CXN1YnEgJDMsJXJjeAotCWptcCBiYWRfcHV0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX3B1dF91c2VyXzQpCi0KLUVOVFJZKF9fcHV0X3VzZXJfOCkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQ3LCVyY3gKLQlqYyA0MGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgNDBmCi0Jc3VicSAkNywlcmN4Ci00Ogltb3ZxICVyZHgsKCVyY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTQwOglzdWJxICQ3LCVyY3gKLQlqbXAgYmFkX3B1dF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19wdXRfdXNlcl84KQotCi1iYWRfcHV0X3VzZXI6Ci0JQ0ZJX1NUQVJUUFJPQwotCW1vdnEgJCgtRUZBVUxUKSwlcmF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORChiYWRfcHV0X3VzZXIpCi0KLS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLnF1YWQgMWIsYmFkX3B1dF91c2VyCi0JLnF1YWQgMmIsYmFkX3B1dF91c2VyCi0JLnF1YWQgM2IsYmFkX3B1dF91c2VyCi0JLnF1YWQgNGIsYmFkX3B1dF91c2VyCi0ucHJldmlvdXMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi90aHVua18zMi5TIGIvYXJjaC94ODYvbGliL3RodW5rXzMyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUwYjExZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2xpYi90aHVua18zMi5TCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBUcmFtcG9saW5lIHRvIHRyYWNlIGlycXMgb2ZmLiAob3RoZXJ3aXNlIENBTExFUl9BRERSMSBtaWdodCBjcmFzaCkKKyAqIENvcHlyaWdodCAyMDA4IGJ5IFN0ZXZlbiBSb3N0ZWR0LCBSZWQgSGF0LCBJbmMKKyAqICAoaW5zcGlyZWQgYnkgQW5kaSBLbGVlbidzIHRodW5rXzY0LlMpCisgKiBTdWJqZWN0IHRvIHRoZSBHTlUgcHVibGljIGxpY2Vuc2UsIHYuMi4gTm8gd2FycmFudHkgb2YgYW55IGtpbmQuCisgKi8KKworCSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisKKyNkZWZpbmUgQVJDSF9UUkFDRV9JUlFTX09OCQkJXAorCXB1c2hsICVlYXg7CQkJCVwKKwlwdXNobCAlZWN4OwkJCQlcCisJcHVzaGwgJWVkeDsJCQkJXAorCWNhbGwgdHJhY2VfaGFyZGlycXNfb247CQkJXAorCXBvcGwgJWVkeDsJCQkJXAorCXBvcGwgJWVjeDsJCQkJXAorCXBvcGwgJWVheDsKKworI2RlZmluZSBBUkNIX1RSQUNFX0lSUVNfT0ZGCQkJXAorCXB1c2hsICVlYXg7CQkJCVwKKwlwdXNobCAlZWN4OwkJCQlcCisJcHVzaGwgJWVkeDsJCQkJXAorCWNhbGwgdHJhY2VfaGFyZGlycXNfb2ZmOwkJXAorCXBvcGwgJWVkeDsJCQkJXAorCXBvcGwgJWVjeDsJCQkJXAorCXBvcGwgJWVheDsKKworI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUworCS8qIHB1dCByZXR1cm4gYWRkcmVzcyBpbiBlYXggKGFyZzEpICovCisJLm1hY3JvIHRodW5rX3JhIG5hbWUsZnVuYworCS5nbG9ibCBcbmFtZQorXG5hbWU6CisJcHVzaGwgJWVheAorCXB1c2hsICVlY3gKKwlwdXNobCAlZWR4CisJLyogUGxhY2UgRUlQIGluIHRoZSBhcmcxICovCisJbW92bCAzKjQoJWVzcCksICVlYXgKKwljYWxsIFxmdW5jCisJcG9wbCAlZWR4CisJcG9wbCAlZWN4CisJcG9wbCAlZWF4CisJcmV0CisJLmVuZG0KKworCXRodW5rX3JhIHRyYWNlX2hhcmRpcnFzX29uX3RodW5rLHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcgorCXRodW5rX3JhIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayx0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi90aHVua182NC5TIGIvYXJjaC94ODYvbGliL3RodW5rXzY0LlMKaW5kZXggZTAwOTI1MS4uYmY5YTdkNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL3RodW5rXzY0LlMKKysrIGIvYXJjaC94ODYvbGliL3RodW5rXzY0LlMKQEAgLTIsNiArMiw3IEBACiAgKiBTYXZlIHJlZ2lzdGVycyBiZWZvcmUgY2FsbGluZyBhc3NlbWJseSBmdW5jdGlvbnMuIFRoaXMgYXZvaWRzCiAgKiBkaXN0dXJiYW5jZSBvZiByZWdpc3RlciBhbGxvY2F0aW9uIGluIHNvbWUgaW5saW5lIGFzc2VtYmx5IGNvbnN0cnVjdHMuCiAgKiBDb3B5cmlnaHQgMjAwMSwyMDAyIGJ5IEFuZGkgS2xlZW4sIFN1U0UgTGFicy4KKyAqIEFkZGVkIHRyYWNlX2hhcmRpcnFzIGNhbGxlcnMgLSBDb3B5cmlnaHQgMjAwNyBTdGV2ZW4gUm9zdGVkdCwgUmVkIEhhdCwgSW5jLgogICogU3ViamVjdCB0byB0aGUgR05VIHB1YmxpYyBsaWNlbnNlLCB2LjIuIE5vIHdhcnJhbnR5IG9mIGFueSBraW5kLgogICovCiAKQEAgLTQyLDggKzQzLDIyIEBACiAjZW5kaWYJCiAJCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JdGh1bmsgdHJhY2VfaGFyZGlycXNfb25fdGh1bmssdHJhY2VfaGFyZGlycXNfb24KLQl0aHVuayB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmssdHJhY2VfaGFyZGlycXNfb2ZmCisJLyogcHV0IHJldHVybiBhZGRyZXNzIGluIHJkaSAoYXJnMSkgKi8KKwkubWFjcm8gdGh1bmtfcmEgbmFtZSxmdW5jCisJLmdsb2JsIFxuYW1lCitcbmFtZToKKwlDRklfU1RBUlRQUk9DCisJU0FWRV9BUkdTCisJLyogU0FWRV9BUkdTIHB1c2hzIDkgZWxlbWVudHMgKi8KKwkvKiB0aGUgbmV4dCBlbGVtZW50IHdvdWxkIGJlIHRoZSByaXAgKi8KKwltb3ZxIDkqOCglcnNwKSwgJXJkaQorCWNhbGwgXGZ1bmMKKwlqbXAgIHJlc3RvcmUKKwlDRklfRU5EUFJPQworCS5lbmRtCisKKwl0aHVua19yYSB0cmFjZV9oYXJkaXJxc19vbl90aHVuayx0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIKKwl0aHVua19yYSB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmssdHJhY2VfaGFyZGlycXNfb2ZmX2NhbGxlcgogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfREVCVUdfTE9DS19BTExPQwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3VzZXJjb3B5XzY0LmMgYi9hcmNoL3g4Ni9saWIvdXNlcmNvcHlfNjQuYwppbmRleCAwYzg5ZDFiLi5mNGRmNmU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvdXNlcmNvcHlfNjQuYworKysgYi9hcmNoL3g4Ni9saWIvdXNlcmNvcHlfNjQuYwpAQCAtMTU4LDMgKzE1OCwyNiBAQAogfQogRVhQT1JUX1NZTUJPTChjb3B5X2luX3VzZXIpOwogCisvKgorICogVHJ5IHRvIGNvcHkgbGFzdCBieXRlcyBhbmQgY2xlYXIgdGhlIHJlc3QgaWYgbmVlZGVkLgorICogU2luY2UgcHJvdGVjdGlvbiBmYXVsdCBpbiBjb3B5X2Zyb20vdG9fdXNlciBpcyBub3QgYSBub3JtYWwgc2l0dWF0aW9uLAorICogaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBvcHRpbWl6ZSB0YWlsIGhhbmRsaW5nLgorICovCit1bnNpZ25lZCBsb25nCitjb3B5X3VzZXJfaGFuZGxlX3RhaWwoY2hhciAqdG8sIGNoYXIgKmZyb20sIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgemVyb3Jlc3QpCit7CisJY2hhciBjOworCXVuc2lnbmVkIHplcm9fbGVuOworCisJZm9yICg7IGxlbjsgLS1sZW4pIHsKKwkJaWYgKF9fZ2V0X3VzZXJfbm9jaGVjayhjLCBmcm9tKyssIHNpemVvZihjaGFyKSkpCisJCQlicmVhazsKKwkJaWYgKF9fcHV0X3VzZXJfbm9jaGVjayhjLCB0bysrLCBzaXplb2YoY2hhcikpKQorCQkJYnJlYWs7CisJfQorCisJZm9yIChjID0gMCwgemVyb19sZW4gPSBsZW47IHplcm9yZXN0ICYmIHplcm9fbGVuOyAtLXplcm9fbGVuKQorCQlpZiAoX19wdXRfdXNlcl9ub2NoZWNrKGMsIHRvKyssIHNpemVvZihjaGFyKSkpCisJCQlicmVhazsKKwlyZXR1cm4gbGVuOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1kZWZhdWx0L3NldHVwLmMgYi9hcmNoL3g4Ni9tYWNoLWRlZmF1bHQvc2V0dXAuYwppbmRleCAwYzI4YTA3Li40ODI3OGZhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWRlZmF1bHQvc2V0dXAuYworKysgYi9hcmNoL3g4Ni9tYWNoLWRlZmF1bHQvc2V0dXAuYwpAQCAtMTAsNiArMTAsMTQgQEAKICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCisvKgorICogQW55IHF1aXJrcyB0byBiZSBwZXJmb3JtZWQgdG8gaW5pdGlhbGl6ZSB0aW1lcnMvaXJxcy9ldGM/CisgKi8KK2ludCAoKmFyY2hfdGltZV9pbml0X3F1aXJrKSh2b2lkKTsKK2ludCAoKmFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaykodm9pZCk7CitpbnQgKCphcmNoX2ludHJfaW5pdF9xdWlyaykodm9pZCk7CitpbnQgKCphcmNoX3RyYXBfaW5pdF9xdWlyaykodm9pZCk7CisKICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKICNkZWZpbmUgREVGQVVMVF9TRU5EX0lQSQkoMSkKICNlbHNlCkBAIC0yOSw2ICszNywxMCBAQAogICoqLwogdm9pZCBfX2luaXQgcHJlX2ludHJfaW5pdF9ob29rKHZvaWQpCiB7CisJaWYgKGFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaykgeworCQlpZiAoYXJjaF9wcmVfaW50cl9pbml0X3F1aXJrKCkpCisJCQlyZXR1cm47CisJfQogCWluaXRfSVNBX2lycXMoKTsKIH0KIApAQCAtNTIsNiArNjQsMTAgQEAKICAqKi8KIHZvaWQgX19pbml0IGludHJfaW5pdF9ob29rKHZvaWQpCiB7CisJaWYgKGFyY2hfaW50cl9pbml0X3F1aXJrKSB7CisJCWlmIChhcmNoX2ludHJfaW5pdF9xdWlyaygpKQorCQkJcmV0dXJuOworCX0KICNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAlhcGljX2ludHJfaW5pdCgpOwogI2VuZGlmCkBAIC02NSw3ICs4MSw3IEBACiAgKgogICogRGVzY3JpcHRpb246CiAgKglnZW5lcmFsbHkgdXNlZCB0byBhY3RpdmF0ZSBhbnkgbWFjaGluZSBzcGVjaWZpYyBpZGVudGlmaWNhdGlvbgotICoJcm91dGluZXMgdGhhdCBtYXkgYmUgbmVlZGVkIGJlZm9yZSBzZXR1cF9hcmNoKCkgcnVucy4gIE9uIFZJU1dTCisgKglyb3V0aW5lcyB0aGF0IG1heSBiZSBuZWVkZWQgYmVmb3JlIHNldHVwX2FyY2goKSBydW5zLiAgT24gVm95YWdlcgogICoJdGhpcyBpcyB1c2VkIHRvIGdldCB0aGUgYm9hcmQgcmV2aXNpb24gYW5kIHR5cGUuCiAgKiovCiB2b2lkIF9faW5pdCBwcmVfc2V0dXBfYXJjaF9ob29rKHZvaWQpCkBAIC04MSw2ICs5NywxMCBAQAogICoqLwogdm9pZCBfX2luaXQgdHJhcF9pbml0X2hvb2sodm9pZCkKIHsKKwlpZiAoYXJjaF90cmFwX2luaXRfcXVpcmspIHsKKwkJaWYgKGFyY2hfdHJhcF9pbml0X3F1aXJrKCkpCisJCQlyZXR1cm47CisJfQogfQogCiBzdGF0aWMgc3RydWN0IGlycWFjdGlvbiBpcnEwICA9IHsKQEAgLTk5LDYgKzExOSwxNiBAQAogICoqLwogdm9pZCBfX2luaXQgdGltZV9pbml0X2hvb2sodm9pZCkKIHsKKwlpZiAoYXJjaF90aW1lX2luaXRfcXVpcmspIHsKKwkJLyoKKwkJICogQSBub256ZXJvIHJldHVybiBjb2RlIGRvZXMgbm90IG1lYW4gZmFpbHVyZSwgaXQgbWVhbnMKKwkJICogdGhhdCB0aGUgYXJjaGl0ZWN0dXJlIHF1aXJrIGRvZXMgbm90IHdhbnQgYW55CisJCSAqIGdlbmVyaWMgKHRpbWVyKSBzZXR1cCB0byBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhpczoKKwkJICovCisJCWlmIChhcmNoX3RpbWVfaW5pdF9xdWlyaygpKQorCQkJcmV0dXJuOworCX0KKwogCWlycTAubWFzayA9IGNwdW1hc2tfb2ZfY3B1KDApOwogCXNldHVwX2lycSgwLCAmaXJxMCk7CiB9CkBAIC0xNDIsNDUgKzE3MiwzIEBACiAKIGxhdGVfaW5pdGNhbGwocHJpbnRfaXBpX21vZGUpOwogCi0vKioKLSAqIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwIC0gSG9vayBmb3IgbWFjaGluZSBzcGVjaWZpYyBtZW1vcnkgc2V0dXAuCi0gKgotICogRGVzY3JpcHRpb246Ci0gKglUaGlzIGlzIGluY2x1ZGVkIGxhdGUgaW4ga2VybmVsL3NldHVwLmMgc28gdGhhdCBpdCBjYW4gbWFrZQotICoJdXNlIG9mIGFsbCBvZiB0aGUgc3RhdGljIGZ1bmN0aW9ucy4KLSAqKi8KLQotY2hhciAqIF9faW5pdCBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQotewotCWNoYXIgKndobzsKLQotCi0Jd2hvID0gIkJJT1MtZTgyMCI7Ci0KLQkvKgotCSAqIFRyeSB0byBjb3B5IHRoZSBCSU9TLXN1cHBsaWVkIEU4MjAtbWFwLgotCSAqCi0JICogT3RoZXJ3aXNlIGZha2UgYSBtZW1vcnkgbWFwOyBvbmUgc2VjdGlvbiBmcm9tIDBrLT42NDBrLAotCSAqIHRoZSBuZXh0IHNlY3Rpb24gZnJvbSAxbWItPmFwcHJvcHJpYXRlX21lbV9rCi0JICovCi0Jc2FuaXRpemVfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsICZib290X3BhcmFtcy5lODIwX2VudHJpZXMpOwotCWlmIChjb3B5X2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCBib290X3BhcmFtcy5lODIwX2VudHJpZXMpCi0JICAgIDwgMCkgewotCQl1bnNpZ25lZCBsb25nIG1lbV9zaXplOwotCi0JCS8qIGNvbXBhcmUgcmVzdWx0cyBmcm9tIG90aGVyIG1ldGhvZHMgYW5kIHRha2UgdGhlIGdyZWF0ZXIgKi8KLQkJaWYgKGJvb3RfcGFyYW1zLmFsdF9tZW1fawotCQkgICAgPCBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2spIHsKLQkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rOwotCQkJd2hvID0gIkJJT1MtODgiOwotCQl9IGVsc2UgewotCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5hbHRfbWVtX2s7Ci0JCQl3aG8gPSAiQklPUy1lODAxIjsKLQkJfQotCi0JCWU4MjAubnJfbWFwID0gMDsKLQkJYWRkX21lbW9yeV9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSA8PCAxMCwgRTgyMF9SQU0pOwotICAJfQotCXJldHVybiB3aG87Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9NYWtlZmlsZSBiL2FyY2gveDg2L21hY2gtZXM3MDAwL01ha2VmaWxlCmluZGV4IDY5ZGQ0ZGEuLjNlZjhiNDMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZXM3MDAwL01ha2VmaWxlCisrKyBiL2FyY2gveDg2L21hY2gtZXM3MDAwL01ha2VmaWxlCkBAIC0zLDQgKzMsMyBAQAogIwogCiBvYmotJChDT05GSUdfWDg2X0VTNzAwMCkJOj0gZXM3MDAwcGxhdC5vCi1vYmotJChDT05GSUdfWDg2X0dFTkVSSUNBUkNIKQk6PSBlczcwMDBwbGF0Lm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZXM3MDAwL2VzNzAwMHBsYXQuYyBiL2FyY2gveDg2L21hY2gtZXM3MDAwL2VzNzAwMHBsYXQuYwppbmRleCBmNWQ2ZjdkLi40MzU0Y2U4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9lczcwMDBwbGF0LmMKKysrIGIvYXJjaC94ODYvbWFjaC1lczcwMDAvZXM3MDAwcGxhdC5jCkBAIC01Miw2ICs1Miw4IEBACiBzdGF0aWMgaW50IAkJCW1pcF9wb3J0Owogc3RhdGljIHVuc2lnbmVkIGxvbmcJCW1pcF9hZGRyLCBob3N0X2FkZHI7CiAKK2ludCBlczcwMDBfcGxhdDsKKwogLyoKICAqIEdTSSBvdmVycmlkZSBmb3IgRVM3MDAwIHBsYXRmb3Jtcy4KICAqLwpAQCAtMTc1LDUzICsxNzcsNiBAQAogfQogI2VuZGlmCiAKLS8qCi0gKiBUaGlzIGZpbGUgYWxzbyBnZXRzIGNvbXBpbGVkIGlmIENPTkZJR19YODZfR0VORVJJQ0FSQ0ggaXMgc2V0LiBHZW5lcmljCi0gKiBhcmNoIGFscmVhZHkgaGFzIGdvdCBmb2xsb3dpbmcgZnVuY3Rpb24gZGVmaW5pdGlvbnMgKGFzbS1nZW5lcmljL2VzNzAwMC5jKQotICogaGVuY2Ugbm8gbmVlZCB0byBkZWZpbmUgdGhlc2UgZm9yIHRoYXQgY2FzZS4KLSAqLwotI2lmbmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICi12b2lkIGVzNzAwMF9zd19hcGljKHZvaWQpOwotdm9pZCBfX2luaXQgZW5hYmxlX2FwaWNfbW9kZSh2b2lkKQotewotCWVzNzAwMF9zd19hcGljKCk7Ci0JcmV0dXJuOwotfQotCi1fX2luaXQgaW50IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCi0JCWNoYXIgKnByb2R1Y3RpZCkKLXsKLQlpZiAobXBjLT5tcGNfb2VtcHRyKSB7Ci0JCXN0cnVjdCBtcF9jb25maWdfb2VtdGFibGUgKm9lbV90YWJsZSA9Ci0JCQkoc3RydWN0IG1wX2NvbmZpZ19vZW10YWJsZSAqKW1wYy0+bXBjX29lbXB0cjsKLQkJaWYgKCFzdHJuY21wKG9lbSwgIlVOSVNZUyIsIDYpKQotCQkJcmV0dXJuIHBhcnNlX3VuaXN5c19vZW0oKGNoYXIgKilvZW1fdGFibGUpOwotCX0KLQlyZXR1cm4gMDsKLX0KLSNpZmRlZiBDT05GSUdfQUNQSQotLyogSG9vayBmcm9tIGdlbmVyaWMgQUNQSSB0YWJsZXMuYyAqLwotaW50IF9faW5pdCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKQotewotCXVuc2lnbmVkIGxvbmcgb2VtX2FkZHI7Ci0JaWYgKCFmaW5kX3VuaXN5c19hY3BpX29lbV90YWJsZSgmb2VtX2FkZHIpKSB7Ci0JCWlmIChlczcwMDBfY2hlY2tfZHNkdCgpKQotCQkJcmV0dXJuIHBhcnNlX3VuaXN5c19vZW0oKGNoYXIgKilvZW1fYWRkcik7Ci0JCWVsc2UgewotCQkJc2V0dXBfdW5pc3lzKCk7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLSNlbHNlCi1pbnQgX19pbml0IGFjcGlfbWFkdF9vZW1fY2hlY2soY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVfaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLSNlbmRpZiAvKiBDT0ZJR19YODZfR0VORVJJQ0FSQ0ggKi8KLQogc3RhdGljIHZvaWQKIGVzNzAwMF9zcGluKGludCBuKQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL01ha2VmaWxlIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL01ha2VmaWxlCmluZGV4IDE5ZDZkNDAuLjBkYmQ3ODAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvTWFrZWZpbGUKQEAgLTIsNyArMiwxMSBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIGdlbmVyaWMgYXJjaGl0ZWN0dXJlCiAjCiAKLUVYVFJBX0NGTEFHUwk6PSAtSWFyY2gveDg2L2tlcm5lbAorRVhUUkFfQ0ZMQUdTCQkJOj0gLUlhcmNoL3g4Ni9rZXJuZWwKIAotb2JqLXkJCTo9IHByb2JlLm8gc3VtbWl0Lm8gYmlnc21wLm8gZXM3MDAwLm8gZGVmYXVsdC5vIAotb2JqLXkJCSs9IC4uLy4uL3g4Ni9tYWNoLWVzNzAwMC8KK29iai15CQkJCTo9IHByb2JlLm8gZGVmYXVsdC5vCitvYmotJChDT05GSUdfWDg2X05VTUFRKQkJKz0gbnVtYXEubworb2JqLSQoQ09ORklHX1g4Nl9TVU1NSVQpCSs9IHN1bW1pdC5vCitvYmotJChDT05GSUdfWDg2X0JJR1NNUCkJKz0gYmlnc21wLm8KK29iai0kKENPTkZJR19YODZfRVM3MDAwKQkrPSBlczcwMDAubworb2JqLSQoQ09ORklHX1g4Nl9FUzcwMDApCSs9IC4uLy4uL3g4Ni9tYWNoLWVzNzAwMC8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9iaWdzbXAuYyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9iaWdzbXAuYwppbmRleCA5NWZjNDYzLi41OWQ3NzE3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvYmlnc21wLmMKKysrIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL2JpZ3NtcC5jCkBAIC0yMywxMCArMjMsOCBAQAogCiBzdGF0aWMgaW50IGhwX2h0X2JpZ3NtcChjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZCkKIHsKLSNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICiAJcHJpbnRrKEtFUk5fTk9USUNFICIlcyBkZXRlY3RlZDogZm9yY2UgdXNlIG9mIGFwaWM9Ymlnc21wXG4iLCBkLT5pZGVudCk7CiAJZG1pX2JpZ3NtcCA9IDE7Ci0jZW5kaWYKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDgsNyArNDYsNyBAQAogc3RhdGljIGludCBwcm9iZV9iaWdzbXAodm9pZCkKIHsKIAlpZiAoZGVmX3RvX2JpZ3NtcCkKLQlkbWlfYmlnc21wID0gMTsKKwkJZG1pX2JpZ3NtcCA9IDE7CiAJZWxzZQogCQlkbWlfY2hlY2tfc3lzdGVtKGJpZ3NtcF9kbWlfdGFibGUpOwogCXJldHVybiBkbWlfYmlnc21wOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL251bWFxLmMgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvbnVtYXEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDkxZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL251bWFxLmMKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIEFQSUMgZHJpdmVyIGZvciB0aGUgSUJNIE5VTUFRIGNoaXBzZXQuCisgKi8KKyNkZWZpbmUgQVBJQ19ERUZJTklUSU9OIDEKKyNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KKyNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KKyNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1udW1hcS9tYWNoX2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1udW1hcS9tYWNoX2FwaWNkZWYuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1udW1hcS9tYWNoX2lwaS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLW51bWFxL21hY2hfbXBwYXJzZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLW51bWFxL21hY2hfd2FrZWNwdS5oPgorI2luY2x1ZGUgPGFzbS9udW1hcS5oPgorCitzdGF0aWMgaW50IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCWNoYXIgKnByb2R1Y3RpZCkKK3sKKwludW1hcV9tcHNfb2VtX2NoZWNrKG1wYywgb2VtLCBwcm9kdWN0aWQpOworCXJldHVybiBmb3VuZF9udW1hcTsKK30KKworc3RhdGljIGludCBwcm9iZV9udW1hcSh2b2lkKQoreworCS8qIGFscmVhZHkga25vdyBmcm9tIGdldF9tZW1jZmdfbnVtYXEoKSAqLworCXJldHVybiBmb3VuZF9udW1hcTsKK30KKworLyogSG9vayBmcm9tIGdlbmVyaWMgQUNQSSB0YWJsZXMuYyAqLworc3RhdGljIGludCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKQoreworCXJldHVybiAwOworfQorCitzdHJ1Y3QgZ2VuYXBpYyBhcGljX251bWFxID0gQVBJQ19JTklUKCJOVU1BUSIsIHByb2JlX251bWFxKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9wcm9iZS5jIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL3Byb2JlLmMKaW5kZXggYzVhZTc1MS4uNWE3ZTQ2MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL3Byb2JlLmMKKysrIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL3Byb2JlLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgogI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CiAKK2V4dGVybiBzdHJ1Y3QgZ2VuYXBpYyBhcGljX251bWFxOwogZXh0ZXJuIHN0cnVjdCBnZW5hcGljIGFwaWNfc3VtbWl0OwogZXh0ZXJuIHN0cnVjdCBnZW5hcGljIGFwaWNfYmlnc21wOwogZXh0ZXJuIHN0cnVjdCBnZW5hcGljIGFwaWNfZXM3MDAwOwpAQCAtMjQsOSArMjUsMTggQEAKIHN0cnVjdCBnZW5hcGljICpnZW5hcGljID0gJmFwaWNfZGVmYXVsdDsKIAogc3RhdGljIHN0cnVjdCBnZW5hcGljICphcGljX3Byb2JlW10gX19pbml0ZGF0YSA9IHsKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCisJJmFwaWNfbnVtYXEsCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X1NVTU1JVAogCSZhcGljX3N1bW1pdCwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfQklHU01QCiAJJmFwaWNfYmlnc21wLAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9FUzcwMDAKIAkmYXBpY19lczcwMDAsCisjZW5kaWYKIAkmYXBpY19kZWZhdWx0LAkvKiBtdXN0IGJlIGxhc3QgKi8KIAlOVUxMLAogfTsKQEAgLTU0LDYgKzY0LDcgQEAKIAogdm9pZCBfX2luaXQgZ2VuZXJpY19iaWdzbXBfcHJvYmUodm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0JJR1NNUAogCS8qCiAJICogVGhpcyByb3V0aW5lIGlzIHVzZWQgdG8gc3dpdGNoIHRvIGJpZ3NtcCBtb2RlIHdoZW4KIAkgKiAtIFRoZXJlIGlzIG5vIGFwaWM9IG9wdGlvbiBzcGVjaWZpZWQgYnkgdGhlIHVzZXIKQEAgLTY3LDYgKzc4LDcgQEAKIAkJCXByaW50ayhLRVJOX0lORk8gIk92ZXJyaWRpbmcgQVBJQyBkcml2ZXIgd2l0aCAlc1xuIiwKIAkJCSAgICAgICBnZW5hcGljLT5uYW1lKTsKIAkJfQorI2VuZGlmCiB9CiAKIHZvaWQgX19pbml0IGdlbmVyaWNfYXBpY19wcm9iZSh2b2lkKQpAQCAtODgsNyArMTAwLDggQEAKIAogLyogVGhlc2UgZnVuY3Rpb25zIGNhbiBzd2l0Y2ggdGhlIEFQSUMgZXZlbiBhZnRlciB0aGUgaW5pdGlhbCAtPnByb2JlKCkgKi8KIAotaW50IF9faW5pdCBtcHNfb2VtX2NoZWNrKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLCBjaGFyICpwcm9kdWN0aWQpCitpbnQgX19pbml0IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCQkJIGNoYXIgKnByb2R1Y3RpZCkKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBhcGljX3Byb2JlW2ldOyArK2kpIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3MvTWFrZWZpbGUgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzVmZDk2Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3MvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSMKLSMgTWFrZWZpbGUgZm9yIHRoZSBsaW51eCBrZXJuZWwuCi0jCi0KLW9iai15CQkJCTo9IHNldHVwLm8gdHJhcHMubyByZWJvb3QubwotCi1vYmotJChDT05GSUdfWDg2X1ZJU1dTX0FQSUMpCSs9IHZpc3dzX2FwaWMubwotb2JqLSQoQ09ORklHX1g4Nl9MT0NBTF9BUElDKQkrPSBtcHBhcnNlLm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3MvbXBwYXJzZS5jIGIvYXJjaC94ODYvbWFjaC12aXN3cy9tcHBhcnNlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NDg0ZTkuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy9tcHBhcnNlLmMKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi0KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc21wLmg+Ci0KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0KLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJtYWNoX2FwaWMuaCIKLQotLyogSGF2ZSB3ZSBmb3VuZCBhbiBNUCB0YWJsZSAqLwotaW50IHNtcF9mb3VuZF9jb25maWc7Ci0KLWludCBwaWNfbW9kZTsKLQotZXh0ZXJuIHVuc2lnbmVkIGludCBfX2NwdWluaXRkYXRhIG1heGNwdXM7Ci0KLS8qCi0gKiBUaGUgVmlzdWFsIFdvcmtzdGF0aW9uIGlzIEludGVsIE1QIGNvbXBsaWFudCBpbiB0aGUgaGFyZHdhcmUKLSAqIHNlbnNlLCBidXQgaXQgZG9lc24ndCBoYXZlIGEgQklPUygtY29uZmlndXJhdGlvbiB0YWJsZSkuCi0gKiBObyBwcm9ibGVtIGZvciBMaW51eC4KLSAqLwotCi1zdGF0aWMgdm9pZCBfX2luaXQgTVBfcHJvY2Vzc29yX2luZm8gKHN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbSkKLXsKLQlpbnQgdmVyLCBsb2dpY2FsX2FwaWNpZDsKLQlwaHlzaWRfbWFza190IGFwaWNfY3B1czsKLQotCWlmICghKG0tPm1wY19jcHVmbGFnICYgQ1BVX0VOQUJMRUQpKQotCQlyZXR1cm47Ci0KLQlsb2dpY2FsX2FwaWNpZCA9IG0tPm1wY19hcGljaWQ7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiJXNDUFUgIyVkICV1OiV1IEFQSUMgdmVyc2lvbiAlZFxuIiwKLQkgICAgICAgbS0+bXBjX2NwdWZsYWcgJiBDUFVfQk9PVFBST0NFU1NPUiA/ICJCb290dXAgIiA6ICIiLAotCSAgICAgICBtLT5tcGNfYXBpY2lkLAotCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfRkFNSUxZX01BU0spID4+IDgsCi0JICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9NT0RFTF9NQVNLKSA+PiA0LAotCSAgICAgICBtLT5tcGNfYXBpY3Zlcik7Ci0KLQlpZiAobS0+bXBjX2NwdWZsYWcgJiBDUFVfQk9PVFBST0NFU1NPUikKLQkJYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKLQotCXZlciA9IG0tPm1wY19hcGljdmVyOwotCWlmICgodmVyID49IDB4MTQgJiYgbS0+bXBjX2FwaWNpZCA+PSAweGZmKSB8fCBtLT5tcGNfYXBpY2lkID49IDB4ZikgewotCQlwcmludGsoS0VSTl9FUlIgIlByb2Nlc3NvciAjJWQgSU5WQUxJRC4gKE1heCBJRDogJWQpLlxuIiwKLQkJCW0tPm1wY19hcGljaWQsIE1BWF9BUElDUyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlhcGljX2NwdXMgPSBhcGljaWRfdG9fY3B1X3ByZXNlbnQobS0+bXBjX2FwaWNpZCk7Ci0JcGh5c2lkc19vcihwaHlzX2NwdV9wcmVzZW50X21hcCwgcGh5c19jcHVfcHJlc2VudF9tYXAsIGFwaWNfY3B1cyk7Ci0JLyoKLQkgKiBWYWxpZGF0ZSB2ZXJzaW9uCi0JICovCi0JaWYgKHZlciA9PSAweDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJCSU9TIGJ1ZywgQVBJQyB2ZXJzaW9uIGlzIDAgZm9yIENQVSMlZCEgIgotCQkJImZpeGluZyB1cCB0byAweDEwLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCi0JCQltLT5tcGNfYXBpY2lkKTsKLQkJdmVyID0gMHgxMDsKLQl9Ci0JYXBpY192ZXJzaW9uW20tPm1wY19hcGljaWRdID0gdmVyOwotfQotCi12b2lkIF9faW5pdCBmaW5kX3NtcF9jb25maWcodm9pZCkKLXsKLQlzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm1wID0gcGh5c190b192aXJ0KENPX0NQVV9UQUJfUEhZUyk7Ci0JdW5zaWduZWQgc2hvcnQgbmNwdXMgPSByZWFkdyhwaHlzX3RvX3ZpcnQoQ09fQ1BVX05VTV9QSFlTKSk7Ci0KLQlpZiAobmNwdXMgPiBDT19DUFVfTUFYKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImZpbmRfdmlzd3Nfc21wOiBnb3QgY3B1IGNvdW50IG9mICVkIGF0ICVwXG4iLAotCQkJbmNwdXMsIG1wKTsKLQotCQluY3B1cyA9IENPX0NQVV9NQVg7Ci0JfQotCi0JaWYgKG5jcHVzID4gbWF4Y3B1cykKLQkJbmNwdXMgPSBtYXhjcHVzOwotCi0Jc21wX2ZvdW5kX2NvbmZpZyA9IDE7Ci0Jd2hpbGUgKG5jcHVzLS0pCi0JCU1QX3Byb2Nlc3Nvcl9pbmZvKG1wKyspOwotCi0JbXBfbGFwaWNfYWRkciA9IEFQSUNfREVGQVVMVF9QSFlTX0JBU0U7Ci19Ci0KLXZvaWQgX19pbml0IGdldF9zbXBfY29uZmlnICh2b2lkKQotewotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy9yZWJvb3QuYyBiL2FyY2gveDg2L21hY2gtdmlzd3MvcmVib290LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MzMyYWIuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy9yZWJvb3QuYworKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXAuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCi0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSAicGlpeDQuaCIKLQotdm9pZCAoKnBtX3Bvd2VyX29mZikodm9pZCk7Ci1FWFBPUlRfU1lNQk9MKHBtX3Bvd2VyX29mZik7Ci0KLXZvaWQgbWFjaGluZV9zaHV0ZG93bih2b2lkKQotewotI2lmZGVmIENPTkZJR19TTVAKLQlzbXBfc2VuZF9zdG9wKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBtYWNoaW5lX2VtZXJnZW5jeV9yZXN0YXJ0KHZvaWQpCi17Ci0JLyoKLQkgKiBWaXN1YWwgV29ya3N0YXRpb25zIHJlc3RhcnQgYWZ0ZXIgdGhpcwotCSAqIHJlZ2lzdGVyIGlzIHBva2VkIG9uIHRoZSBQSUlYNAotCSAqLwotCW91dGIoUElJWDRfUkVTRVRfVkFMLCBQSUlYNF9SRVNFVF9QT1JUKTsKLX0KLQotdm9pZCBtYWNoaW5lX3Jlc3RhcnQoY2hhciAqIF9fdW51c2VkKQotewotCW1hY2hpbmVfc2h1dGRvd24oKTsKLQltYWNoaW5lX2VtZXJnZW5jeV9yZXN0YXJ0KCk7Ci19Ci0KLXZvaWQgbWFjaGluZV9wb3dlcl9vZmYodm9pZCkKLXsKLQl1bnNpZ25lZCBzaG9ydCBwbV9zdGF0dXM7Ci0JZXh0ZXJuIHVuc2lnbmVkIGludCBwY2lfYnVzMDsKLQotCXdoaWxlICgocG1fc3RhdHVzID0gaW53KFBNU1RTX1BPUlQpKSAmIDB4MTAwKQotCQlvdXR3KHBtX3N0YXR1cywgUE1TVFNfUE9SVCk7Ci0KLQlvdXR3KFBNX1NVU1BFTkRfRU5BQkxFLCBQTUNOVFJMX1BPUlQpOwotCi0JbWRlbGF5KDEwKTsKLQotI2RlZmluZSBQQ0lfQ09ORjFfQUREUkVTUyhidXMsIGRldmZuLCByZWcpIFwKLQkoMHg4MDAwMDAwMCB8IChidXMgPDwgMTYpIHwgKGRldmZuIDw8IDgpIHwgKHJlZyAmIH4zKSkKLQotCW91dGwoUENJX0NPTkYxX0FERFJFU1MocGNpX2J1czAsIFNQRUNJQUxfREVWLCBTUEVDSUFMX1JFRyksIDB4Q0Y4KTsKLQlvdXRsKFBJSVhfU1BFQ0lBTF9TVE9QLCAweENGQyk7Ci19Ci0KLXZvaWQgbWFjaGluZV9oYWx0KHZvaWQpCi17Ci19Ci0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3Mvc2V0dXAuYyBiL2FyY2gveDg2L21hY2gtdmlzd3Mvc2V0dXAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU0YzlkYi4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3NldHVwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxODMgKzAsMCBAQAotLyoKLSAqICBVbm1haW50YWluZWQgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBzdXBwb3J0LgotICogIFNwbGl0IG91dCBmcm9tIHNldHVwLmMgYnkgZGF2ZWpAc3VzZS5kZQotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zbXAuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0KLSNpbmNsdWRlIDxhc20vZml4bWFwLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vZTgyMC5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgotI2luY2x1ZGUgImNvYmFsdC5oIgotI2luY2x1ZGUgInBpaXg0LmgiCi0KLWludCBub19icm9hZGNhc3Q7Ci0KLWNoYXIgdmlzd3NfYm9hcmRfdHlwZSA9IC0xOwotY2hhciB2aXN3c19ib2FyZF9yZXYgPSAtMTsKLQotdm9pZCBfX2luaXQgdmlzd3NfZ2V0X2JvYXJkX3R5cGVfYW5kX3Jldih2b2lkKQotewotCWludCByYXc7Ci0KLQl2aXN3c19ib2FyZF90eXBlID0gKGNoYXIpKGluYl9wKFBJSVhfR1BJX0JEX1JFRykgJiBQSUlYX0dQSV9CRF9SRUcpCi0JCQkJCQkJID4+IFBJSVhfR1BJX0JEX1NISUZUOwotCS8qCi0JICogR2V0IEJvYXJkIHJldi4KLQkgKiBGaXJzdCwgd2UgaGF2ZSB0byBpbml0aWFsaXplIHRoZSAzMDcgcGFydCB0byBhbGxvdyB1cyBhY2Nlc3MKLQkgKiB0byB0aGUgR1BJTyByZWdpc3RlcnMuICBMZXQncyBtYXAgdGhlbSBhdCAweDBmYzAgd2hpY2ggaXMgcmlnaHQKLQkgKiBhZnRlciB0aGUgUElJWDQgUE0gc2VjdGlvbi4KLQkgKi8KLQlvdXRiX3AoU0lPX0RFVl9TRUwsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19HUF9ERVYsIFNJT19EQVRBKTsJLyogVGFsayB0byBHUElPIHJlZ3MuICovCi0KLQlvdXRiX3AoU0lPX0RFVl9NU0IsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19HUF9NU0IsIFNJT19EQVRBKTsJLyogTVNCIG9mIEdQSU8gYmFzZSBhZGRyZXNzICovCi0KLQlvdXRiX3AoU0lPX0RFVl9MU0IsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19HUF9MU0IsIFNJT19EQVRBKTsJLyogTFNCIG9mIEdQSU8gYmFzZSBhZGRyZXNzICovCi0KLQlvdXRiX3AoU0lPX0RFVl9FTkIsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKDEsIFNJT19EQVRBKTsJCS8qIEVuYWJsZSBHUElPIHJlZ2lzdGVycy4gKi8KLQotCS8qCi0JICogTm93LCB3ZSBoYXZlIHRvIG1hcCB0aGUgcG93ZXIgbWFuYWdlbWVudCBzZWN0aW9uIHRvIHdyaXRlCi0JICogYSBiaXQgd2hpY2ggZW5hYmxlcyBhY2Nlc3MgdG8gdGhlIEdQSU8gcmVnaXN0ZXJzLgotCSAqIFdoYXQgbHVuYXRpYyBjYW1lIHVwIHdpdGggdGhpcyBzaGl0PwotCSAqLwotCW91dGJfcChTSU9fREVWX1NFTCwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX1BNX0RFViwgU0lPX0RBVEEpOwkvKiBUYWxrIHRvIEdQSU8gcmVncy4gKi8KLQotCW91dGJfcChTSU9fREVWX01TQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX1BNX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgUE0gYmFzZSBhZGRyZXNzICovCi0KLQlvdXRiX3AoU0lPX0RFVl9MU0IsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19QTV9MU0IsIFNJT19EQVRBKTsJLyogTFNCIG9mIFBNIGJhc2UgYWRkcmVzcyAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfRU5CLCBTSU9fSU5ERVgpOwotCW91dGJfcCgxLCBTSU9fREFUQSk7CQkvKiBFbmFibGUgUE0gcmVnaXN0ZXJzLiAqLwotCi0JLyoKLQkgKiBOb3csIHdyaXRlIHRoZSBQTSByZWdpc3RlciB3aGljaCBlbmFibGVzIHRoZSBHUElPIHJlZ2lzdGVycy4KLQkgKi8KLQlvdXRiX3AoU0lPX1BNX0ZFUjIsIFNJT19QTV9JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19QTV9HUF9FTiwgU0lPX1BNX0RBVEEpOwotCi0JLyoKLQkgKiBOb3csIGluaXRpYWxpemUgdGhlIEdQSU8gcmVnaXN0ZXJzLgotCSAqIFdlIHdhbnQgdGhlbSBhbGwgdG8gYmUgaW5wdXRzIHdoaWNoIGlzIHRoZQotCSAqIHBvd2VyIG9uIGRlZmF1bHQsIHNvIGxldCdzIGxlYXZlIHRoZW0gYWxvbmUuCi0JICogU28sIGxldCdzIGp1c3QgcmVhZCB0aGUgYm9hcmQgcmV2IQotCSAqLwotCXJhdyA9IGluYl9wKFNJT19HUF9EQVRBMSk7Ci0JcmF3ICY9IDB4N2Y7CS8qIDcgYml0cyBvZiB2YWxpZCBib2FyZCByZXZpc2lvbiBJRC4gKi8KLQotCWlmICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzMyMCkgewotCQlpZiAocmF3IDwgMHg2KSB7Ci0JCQl2aXN3c19ib2FyZF9yZXYgPSA0OwotCQl9IGVsc2UgaWYgKHJhdyA8IDB4YykgewotCQkJdmlzd3NfYm9hcmRfcmV2ID0gNTsKLQkJfSBlbHNlIHsKLQkJCXZpc3dzX2JvYXJkX3JldiA9IDY7Ci0JCX0KLQl9IGVsc2UgaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfNTQwKSB7Ci0JCQl2aXN3c19ib2FyZF9yZXYgPSAyOwotCQl9IGVsc2UgewotCQkJdmlzd3NfYm9hcmRfcmV2ID0gcmF3OwotCQl9Ci0KLQlwcmludGsoS0VSTl9JTkZPICJTaWxpY29uIEdyYXBoaWNzIFZpc3VhbCBXb3Jrc3RhdGlvbiAlcyAocmV2ICVkKSBkZXRlY3RlZFxuIiwKLQkgICAgICAgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwID8gIjMyMCIgOgotCSAgICAgICAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU181NDAgPyAiNTQwIiA6Ci0JCSJ1bmtub3duIikpLCB2aXN3c19ib2FyZF9yZXYpOwotfQotCi12b2lkIF9faW5pdCBwcmVfaW50cl9pbml0X2hvb2sodm9pZCkKLXsKLQlpbml0X1ZJU1dTX0FQSUNfaXJxcygpOwotfQotCi12b2lkIF9faW5pdCBpbnRyX2luaXRfaG9vayh2b2lkKQotewotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotCWFwaWNfaW50cl9pbml0KCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBfX2luaXQgcHJlX3NldHVwX2FyY2hfaG9vaygpCi17Ci0Jdmlzd3NfZ2V0X2JvYXJkX3R5cGVfYW5kX3JldigpOwotfQotCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiBpcnEwID0gewotCS5oYW5kbGVyID0JdGltZXJfaW50ZXJydXB0LAotCS5mbGFncyA9CUlSUUZfRElTQUJMRUQgfCBJUlFGX0lSUVBPTEwsCi0JLm5hbWUgPQkJInRpbWVyIiwKLX07Ci0KLXZvaWQgX19pbml0IHRpbWVfaW5pdF9ob29rKHZvaWQpCi17Ci0JcHJpbnRrKEtFUk5fSU5GTyAiU3RhcnRpbmcgQ29iYWx0IFRpbWVyIHN5c3RlbSBjbG9ja1xuIik7Ci0KLQkvKiBTZXQgdGhlIGNvdW50ZG93biB2YWx1ZSAqLwotCWNvX2NwdV93cml0ZShDT19DUFVfVElNRVZBTCwgQ09fVElNRV9IWi9IWik7Ci0KLQkvKiBTdGFydCB0aGUgdGltZXIgKi8KLQljb19jcHVfd3JpdGUoQ09fQ1BVX0NUUkwsIGNvX2NwdV9yZWFkKENPX0NQVV9DVFJMKSB8IENPX0NUUkxfVElNRVJVTik7Ci0KLQkvKiBFbmFibGUgKHVubWFzaykgdGhlIHRpbWVyIGludGVycnVwdCAqLwotCWNvX2NwdV93cml0ZShDT19DUFVfQ1RSTCwgY29fY3B1X3JlYWQoQ09fQ1BVX0NUUkwpICYgfkNPX0NUUkxfVElNRU1BU0spOwotCi0JLyogV2lyZSBjcHUgSURUIGVudHJ5IHRvIHMvdyBoYW5kbGVyIChhbmQgQ29iYWx0IEFQSUMgdG8gSURUKSAqLwotCXNldHVwX2lycSgwLCAmaXJxMCk7Ci19Ci0KLS8qIEhvb2sgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLiAqLwotCi0jZGVmaW5lIE1CICgxMDI0ICogMTAyNCkKLQotdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOwotdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOwotRVhQT1JUX1NZTUJPTChzZ2l2d2ZiX21lbV9waHlzKTsKLUVYUE9SVF9TWU1CT0woc2dpdndmYl9tZW1fc2l6ZSk7Ci0KLWxvbmcgbG9uZyBtZW1fc2l6ZSBfX2luaXRkYXRhID0gMDsKLQotY2hhciAqIF9faW5pdCBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQotewotCWxvbmcgbG9uZyBnZnhfbWVtX3NpemUgPSA4ICogTUI7Ci0KLQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLmFsdF9tZW1fazsKLQotCWlmICghbWVtX3NpemUpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQm9vdGxvYWRlciBkaWRuJ3Qgc2V0IG1lbW9yeSBzaXplLCB1cGdyYWRlIGl0ICFcbiIpOwotCQltZW1fc2l6ZSA9IDEyOCAqIE1COwotCX0KLQotCS8qCi0JICogdGhpcyBoYXJkY29kZXMgdGhlIGdyYXBoaWNzIG1lbW9yeSB0byA4IE1CCi0JICogaXQgcmVhbGx5IHNob3VsZCBiZSBzaXplZCBkeW5hbWljYWxseSAob3IgYXQgbGVhc3QKLQkgKiBzZXQgYXMgYSBib290IHBhcmFtKQotCSAqLwotCWlmICghc2dpdndmYl9tZW1fc2l6ZSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJEZWZhdWx0aW5nIHRvIDggTUIgZnJhbWVidWZmZXIgc2l6ZVxuIik7Ci0JCXNnaXZ3ZmJfbWVtX3NpemUgPSA4ICogTUI7Ci0JfQotCi0JLyoKLQkgKiBUcmltIHRvIG5lYXJlc3QgTUIKLQkgKi8KLQlzZ2l2d2ZiX21lbV9zaXplICY9IH4oKDEgPDwgMjApIC0gMSk7Ci0Jc2dpdndmYl9tZW1fcGh5cyA9IG1lbV9zaXplIC0gZ2Z4X21lbV9zaXplOwotCi0JYWRkX21lbW9yeV9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7Ci0JYWRkX21lbW9yeV9yZWdpb24oSElHSF9NRU1PUlksIG1lbV9zaXplIC0gc2dpdndmYl9tZW1fc2l6ZSAtIEhJR0hfTUVNT1JZLCBFODIwX1JBTSk7Ci0JYWRkX21lbW9yeV9yZWdpb24oc2dpdndmYl9tZW1fcGh5cywgc2dpdndmYl9tZW1fc2l6ZSwgRTgyMF9SRVNFUlZFRCk7Ci0KLQlyZXR1cm4gIlBST00iOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy90cmFwcy5jIGIvYXJjaC94ODYvbWFjaC12aXN3cy90cmFwcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmFjNmJhLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3MvdHJhcHMuYworKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qIFZJU1dTIHRyYXBzICovCi0KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2lfaWRzLmg+Ci0KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSAiY29iYWx0LmgiCi0jaW5jbHVkZSAibGl0aGl1bS5oIgotCi0KLSNkZWZpbmUgQTAxMjM0IChMSV9JTlRBXzAgfCBMSV9JTlRBXzEgfCBMSV9JTlRBXzIgfCBMSV9JTlRBXzMgfCBMSV9JTlRBXzQpCi0jZGVmaW5lIEJDRCAoTElfSU5UQiB8IExJX0lOVEMgfCBMSV9JTlREKQotI2RlZmluZSBBTExERVZTIChBMDEyMzQgfCBCQ0QpCi0KLXN0YXRpYyBfX2luaXQgdm9pZCBsaXRoaXVtX2luaXQodm9pZCkKLXsKLQlzZXRfZml4bWFwKEZJWF9MSV9QQ0lBLCBMSV9QQ0lfQV9QSFlTKTsKLQlzZXRfZml4bWFwKEZJWF9MSV9QQ0lCLCBMSV9QQ0lfQl9QSFlTKTsKLQotCWlmICgobGlfcGNpYV9yZWFkMTYoUENJX1ZFTkRPUl9JRCkgIT0gUENJX1ZFTkRPUl9JRF9TR0kpIHx8Ci0JICAgIChsaV9wY2lhX3JlYWQxNihQQ0lfREVWSUNFX0lEKSAhPSBQQ0lfREVWSUNFX0lEX1NHSV9MSVRISVVNKSkgewotCQlwcmludGsoS0VSTl9FTUVSRyAiTGl0aGl1bSBob3N0YnJpZGdlICVjIG5vdCBmb3VuZFxuIiwgJ0EnKTsKLQkJcGFuaWMoIlRoaXMgbWFjaGluZSBpcyBub3QgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiAzMjAvNTQwIik7Ci0JfQotCi0JaWYgKChsaV9wY2liX3JlYWQxNihQQ0lfVkVORE9SX0lEKSAhPSBQQ0lfVkVORE9SX0lEX1NHSSkgfHwKLQkgICAgKGxpX3BjaWJfcmVhZDE2KFBDSV9ERVZJQ0VfSUQpICE9IFBDSV9ERVZJQ0VfSURfU0dJX0xJVEhJVU0pKSB7Ci0JCXByaW50ayhLRVJOX0VNRVJHICJMaXRoaXVtIGhvc3RicmlkZ2UgJWMgbm90IGZvdW5kXG4iLCAnQicpOwotCQlwYW5pYygiVGhpcyBtYWNoaW5lIGlzIG5vdCBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIDMyMC81NDAiKTsKLQl9Ci0KLQlsaV9wY2lhX3dyaXRlMTYoTElfUENJX0lOVEVOLCBBTExERVZTKTsKLQlsaV9wY2liX3dyaXRlMTYoTElfUENJX0lOVEVOLCBBTExERVZTKTsKLX0KLQotc3RhdGljIF9faW5pdCB2b2lkIGNvYmFsdF9pbml0KHZvaWQpCi17Ci0JLyoKLQkgKiBPbiBub3JtYWwgU01QIFBDIHRoaXMgaXMgdXNlZCBvbmx5IHdpdGggU01QLCBidXQgd2UgaGF2ZSB0bwotCSAqIHVzZSBpdCBhbmQgc2V0IGl0IHVwIGhlcmUgdG8gc3RhcnQgdGhlIENvYmFsdCBjbG9jawotCSAqLwotCXNldF9maXhtYXAoRklYX0FQSUNfQkFTRSwgQVBJQ19ERUZBVUxUX1BIWVNfQkFTRSk7Ci0Jc2V0dXBfbG9jYWxfQVBJQygpOwotCXByaW50ayhLRVJOX0lORk8gIkxvY2FsIEFQSUMgVmVyc2lvbiAlI3gsIElEICUjeFxuIiwKLQkJKHVuc2lnbmVkIGludClhcGljX3JlYWQoQVBJQ19MVlIpLAotCQkodW5zaWduZWQgaW50KWFwaWNfcmVhZChBUElDX0lEKSk7Ci0KLQlzZXRfZml4bWFwKEZJWF9DT19DUFUsIENPX0NQVV9QSFlTKTsKLQlzZXRfZml4bWFwKEZJWF9DT19BUElDLCBDT19BUElDX1BIWVMpOwotCXByaW50ayhLRVJOX0lORk8gIkNvYmFsdCBSZXZpc2lvbiAlI2x4LCBBUElDIElEICUjbHhcbiIsCi0JCWNvX2NwdV9yZWFkKENPX0NQVV9SRVYpLCBjb19hcGljX3JlYWQoQ09fQVBJQ19JRCkpOwotCi0JLyogRW5hYmxlIENvYmFsdCBBUElDIGJlaW5nIGNhcmVmdWwgdG8gTk9UIGNoYW5nZSB0aGUgSUQhICovCi0JY29fYXBpY193cml0ZShDT19BUElDX0lELCBjb19hcGljX3JlYWQoQ09fQVBJQ19JRCkgfCBDT19BUElDX0VOQUJMRSk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJDb2JhbHQgQVBJQyBlbmFibGVkOiBJRCByZWcgJSNseFxuIiwKLQkJY29fYXBpY19yZWFkKENPX0FQSUNfSUQpKTsKLX0KLQotdm9pZCBfX2luaXQgdHJhcF9pbml0X2hvb2sodm9pZCkKLXsKLQlsaXRoaXVtX2luaXQoKTsKLQljb2JhbHRfaW5pdCgpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy92aXN3c19hcGljLmMgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL3Zpc3dzX2FwaWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2VmOWNiMS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3Zpc3dzX2FwaWMuYworKysgL2Rldi9udWxsCkBAIC0xLDI5NyArMCwwIEBACi0vKgotICoJQ29weXJpZ2h0IChDKSAxOTk5IEJlbnQgSGFnZW1hcmssIEluZ28gTW9sbmFyCi0gKgotICogIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gaW50ZXJydXB0IGNvbnRyb2xsZXIKLSAqCi0gKiAgVGhlIENvYmFsdCBzeXN0ZW0gQVNJQyBpbiB0aGUgVmlzdWFsIFdvcmtzdGF0aW9uIGNvbnRhaW5zIGEgIkNvYmFsdCIgQVBJQwotICogIHdoaWNoIHNlcnZlcyBhcyB0aGUgbWFpbiBpbnRlcnJ1cHQgY29udHJvbGxlciBpbiB0aGUgc3lzdGVtLiAgTm9uLWxlZ2FjeQotICogIGhhcmR3YXJlIGluIHRoZSBzeXN0ZW0gdXNlcyB0aGlzIGNvbnRyb2xsZXIgZGlyZWN0bHkuICBMZWdhY3kgZGV2aWNlcwotICogIGFyZSBjb25uZWN0ZWQgdG8gdGhlIFBJSVg0IHdoaWNoIGluIHR1cm4gaGFzIGl0cyA4MjU5KHMpIGNvbm5lY3RlZCB0bwotICogIGEgb2YgdGhlIENvYmFsdCBBUElDIGVudHJ5LgotICoKLSAqICAwOS8wMi8yMDAwIC0gVXBkYXRlZCBmb3IgMi40IGJ5IGpiYXJuZXNAc2dpLmNvbQotICoKLSAqICAyNS8xMS8yMDAyIC0gVXBkYXRlZCBmb3IgMi41IGJ5IEFuZHJleSBQYW5pbiA8cGF6a2VAb3JiaXRhMS5ydT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vYXBpYy5oPgotI2luY2x1ZGUgPGFzbS9pODI1OS5oPgotCi0jaW5jbHVkZSAiY29iYWx0LmgiCi0jaW5jbHVkZSAiaXJxX3ZlY3RvcnMuaCIKLQotCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKGNvYmFsdF9sb2NrKTsKLQotLyoKLSAqIFNldCB0aGUgZ2l2ZW4gQ29iYWx0IEFQSUMgUmVkaXJlY3Rpb24gVGFibGUgZW50cnkgdG8gcG9pbnQKLSAqIHRvIHRoZSBnaXZlbiBJRFQgdmVjdG9yL2luZGV4LgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY29fYXBpY19zZXQoaW50IGVudHJ5LCBpbnQgaXJxKQotewotCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19MTyhlbnRyeSksIENPX0FQSUNfTEVWRUwgfCAoaXJxICsgRklSU1RfRVhURVJOQUxfVkVDVE9SKSk7Ci0JY29fYXBpY193cml0ZShDT19BUElDX0hJKGVudHJ5KSwgMCk7Ci19Ci0KLS8qCi0gKiBDb2JhbHQgKElPKS1BUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgUENJIGRldmljZXMuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGNvX2FwaWNfaWRlMF9oYWNrKHZvaWQpCi17Ci0JZXh0ZXJuIGNoYXIgdmlzd3NfYm9hcmRfdHlwZTsKLQlleHRlcm4gY2hhciB2aXN3c19ib2FyZF9yZXY7Ci0KLQlpZiAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU18zMjAgJiYgdmlzd3NfYm9hcmRfcmV2ID09IDUpCi0JCXJldHVybiA1OwotCXJldHVybiBDT19BUElDX0lERTA7Ci19Ci0KLXN0YXRpYyBpbnQgaXNfY29fYXBpYyh1bnNpZ25lZCBpbnQgaXJxKQotewotCWlmIChJU19DT19BUElDKGlycSkpCi0JCXJldHVybiBDT19BUElDKGlycSk7Ci0KLQlzd2l0Y2ggKGlycSkgewotCQljYXNlIDA6IHJldHVybiBDT19BUElDX0NQVTsKLQkJY2FzZSBDT19JUlFfSURFMDogcmV0dXJuIGNvX2FwaWNfaWRlMF9oYWNrKCk7Ci0JCWNhc2UgQ09fSVJRX0lERTE6IHJldHVybiBDT19BUElDX0lERTE7Ci0JCWRlZmF1bHQ6IHJldHVybiAtMTsKLQl9Ci19Ci0KLQotLyoKLSAqIFRoaXMgaXMgdGhlIFNHSSBDb2JhbHQgKElPLSlBUElDOgotICovCi0KLXN0YXRpYyB2b2lkIGVuYWJsZV9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JY29fYXBpY19zZXQoaXNfY29fYXBpYyhpcnEpLCBpcnEpOwotfQotCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQlpbnQgZW50cnkgPSBpc19jb19hcGljKGlycSk7Ci0KLQljb19hcGljX3dyaXRlKENPX0FQSUNfTE8oZW50cnkpLCBDT19BUElDX01BU0spOwotCWNvX2FwaWNfcmVhZChDT19BUElDX0xPKGVudHJ5KSk7Ci19Ci0KLS8qCi0gKiAiaXJxIiByZWFsbHkganVzdCBzZXJ2ZXMgdG8gaWRlbnRpZnkgdGhlIGRldmljZS4gIEhlcmUgaXMgd2hlcmUgd2UKLSAqIG1hcCB0aGlzIHRvIHRoZSBDb2JhbHQgQVBJQyBlbnRyeSB3aGVyZSBpdCdzIHBoeXNpY2FsbHkgd2lyZWQuCi0gKiBUaGlzIGlzIGNhbGxlZCB2aWEgcmVxdWVzdF9pcnEgLT4gc2V0dXBfaXJxIC0+IGlycV9kZXNjLT5zdGFydHVwKCkKLSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBzdGFydHVwX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci0JaWYgKChpcnFfZGVzY1tpcnFdLnN0YXR1cyAmIChJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUyB8IElSUV9XQUlUSU5HKSkpCi0JCWlycV9kZXNjW2lycV0uc3RhdHVzICY9IH4oSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MgfCBJUlFfV0FJVElORyk7Ci0JZW5hYmxlX2NvYmFsdF9pcnEoaXJxKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBhY2tfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLQlkaXNhYmxlX2NvYmFsdF9pcnEoaXJxKTsKLQlhcGljX3dyaXRlKEFQSUNfRU9JLCBBUElDX0VJT19BQ0spOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGVuZF9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotCWlmICghKGlycV9kZXNjW2lycV0uc3RhdHVzICYgKElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTKSkpCi0JCWVuYWJsZV9jb2JhbHRfaXJxKGlycSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBjb2JhbHRfaXJxX3R5cGUgPSB7Ci0JLnR5cGVuYW1lID0JIkNvYmFsdC1BUElDIiwKLQkuc3RhcnR1cCA9CXN0YXJ0dXBfY29iYWx0X2lycSwKLQkuc2h1dGRvd24gPQlkaXNhYmxlX2NvYmFsdF9pcnEsCi0JLmVuYWJsZSA9CWVuYWJsZV9jb2JhbHRfaXJxLAotCS5kaXNhYmxlID0JZGlzYWJsZV9jb2JhbHRfaXJxLAotCS5hY2sgPQkJYWNrX2NvYmFsdF9pcnEsCi0JLmVuZCA9CQllbmRfY29iYWx0X2lycSwKLX07Ci0KLQotLyoKLSAqIFRoaXMgaXMgdGhlIFBJSVg0LWJhc2VkIDgyNTkgdGhhdCBpcyB3aXJlZCB1cCBpbmRpcmVjdGx5IHRvIENvYmFsdAotICogLS0gbm90IHRoZSBtYW5uZXIgZXhwZWN0ZWQgYnkgdGhlIGNvZGUgaW4gaTgyNTkuYy4KLSAqCi0gKiB0aGVyZSBpcyBhICdtYXN0ZXInIHBoeXNpY2FsIGludGVycnVwdCBzb3VyY2UgdGhhdCBnZXRzIHNlbnQgdG8KLSAqIHRoZSBDUFUuIEJ1dCBpbiB0aGUgY2hpcHNldCB0aGVyZSBhcmUgdmFyaW91cyAndmlydHVhbCcgaW50ZXJydXB0cwotICogd2FpdGluZyB0byBiZSBoYW5kbGVkLiBXZSByZXByZXNlbnQgdGhpcyB0byBMaW51eCB0aHJvdWdoIGEgJ21hc3RlcicKLSAqIGludGVycnVwdCBjb250cm9sbGVyIHR5cGUsIGFuZCB0aHJvdWdoIGEgc3BlY2lhbCB2aXJ0dWFsIGludGVycnVwdC0KLSAqIGNvbnRyb2xsZXIuIERldmljZSBkcml2ZXJzIG9ubHkgc2VlIHRoZSB2aXJ0dWFsIGludGVycnVwdCBzb3VyY2VzLgotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHN0YXJ0dXBfcGlpeDRfbWFzdGVyX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWluaXRfODI1OUEoMCk7Ci0KLQlyZXR1cm4gc3RhcnR1cF9jb2JhbHRfaXJxKGlycSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGVuZF9waWl4NF9tYXN0ZXJfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotCWVuYWJsZV9jb2JhbHRfaXJxKGlycSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBwaWl4NF9tYXN0ZXJfaXJxX3R5cGUgPSB7Ci0JLnR5cGVuYW1lID0JIlBJSVg0LW1hc3RlciIsCi0JLnN0YXJ0dXAgPQlzdGFydHVwX3BpaXg0X21hc3Rlcl9pcnEsCi0JLmFjayA9CQlhY2tfY29iYWx0X2lycSwKLQkuZW5kID0JCWVuZF9waWl4NF9tYXN0ZXJfaXJxLAotfTsKLQotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIHBpaXg0X3ZpcnR1YWxfaXJxX3R5cGUgPSB7Ci0JLnR5cGVuYW1lID0JIlBJSVg0LXZpcnR1YWwiLAotCS5zaHV0ZG93biA9CWRpc2FibGVfODI1OUFfaXJxLAotCS5lbmFibGUgPQllbmFibGVfODI1OUFfaXJxLAotCS5kaXNhYmxlID0JZGlzYWJsZV84MjU5QV9pcnEsCi19OwotCi0KLS8qCi0gKiBQSUlYNC04MjU5IG1hc3Rlci92aXJ0dWFsIGZ1bmN0aW9ucyB0byBoYW5kbGUgaW50ZXJydXB0IHJlcXVlc3RzCi0gKiBmcm9tIGxlZ2FjeSBkZXZpY2VzOiBmbG9wcHksIHBhcmFsbGVsLCBzZXJpYWwsIHJ0Yy4KLSAqCi0gKiBOb25lIG9mIHRoZXNlIGdldCBDb2JhbHQgQVBJQyBlbnRyaWVzLCBuZWl0aGVyIGRvIHRoZXkgaGF2ZSBJRFQKLSAqIGVudHJpZXMuIFRoZXNlIGludGVycnVwdHMgYXJlIHB1cmVseSB2aXJ0dWFsIGFuZCBkaXN0cmlidXRlZCBmcm9tCi0gKiB0aGUgJ21hc3RlcicgaW50ZXJydXB0IHNvdXJjZTogQ09fSVJRXzgyNTkuCi0gKgotICogV2hlbiB0aGUgODI1OSBpbnRlcnJ1cHRzIGl0cyBoYW5kbGVyIGZpZ3VyZXMgb3V0IHdoaWNoIG9mIHRoZXNlCi0gKiBkZXZpY2VzIGlzIGludGVycnVwdGluZyBhbmQgZGlzcGF0Y2hlcyB0byBpdHMgaGFuZGxlci4KLSAqCi0gKiBDQVJFRlVMOiBkZXZpY2VzIHNlZSB0aGUgJ3ZpcnR1YWwnIGludGVycnVwdCBvbmx5LiBUaHVzIGRpc2FibGUvCi0gKiBlbmFibGVfaXJxIGdldHMgdGhlIHJpZ2h0IGlycS4gVGhpcyAnbWFzdGVyJyBpcnEgaXMgbmV2ZXIgZGlyZWN0bHkKLSAqIG1hbmlwdWxhdGVkIGJ5IGFueSBkcml2ZXIuCi0gKi8KLXN0YXRpYyBpcnFyZXR1cm5fdCBwaWl4NF9tYXN0ZXJfaW50cihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCi17Ci0JaW50IHJlYWxpcnE7Ci0JaXJxX2Rlc2NfdCAqZGVzYzsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0KLQkvKiBGaW5kIG91dCB3aGF0J3MgaW50ZXJydXB0aW5nIGluIHRoZSBQSUlYNCBtYXN0ZXIgODI1OSAqLwotCW91dGIoMHgwYywgMHgyMCk7CQkvKiBPQ1czIFBvbGwgY29tbWFuZCAqLwotCXJlYWxpcnEgPSBpbmIoMHgyMCk7Ci0KLQkvKgotCSAqIEJpdCA3ID09IDAgbWVhbnMgaW52YWxpZC9zcHVyaW91cwotCSAqLwotCWlmICh1bmxpa2VseSghKHJlYWxpcnEgJiAweDgwKSkpCi0JCWdvdG8gb3V0X3VubG9jazsKLQotCXJlYWxpcnEgJj0gNzsKLQotCWlmICh1bmxpa2VseShyZWFsaXJxID09IDIpKSB7Ci0JCW91dGIoMHgwYywgMHhhMCk7Ci0JCXJlYWxpcnEgPSBpbmIoMHhhMCk7Ci0KLQkJaWYgKHVubGlrZWx5KCEocmVhbGlycSAmIDB4ODApKSkKLQkJCWdvdG8gb3V0X3VubG9jazsKLQotCQlyZWFsaXJxID0gKHJlYWxpcnEgJiA3KSArIDg7Ci0JfQotCi0JLyogbWFzayBhbmQgYWNrIGludGVycnVwdCAqLwotCWNhY2hlZF9pcnFfbWFzayB8PSAxIDw8IHJlYWxpcnE7Ci0JaWYgKHVubGlrZWx5KHJlYWxpcnEgPiA3KSkgewotCQlpbmIoMHhhMSk7Ci0JCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIDB4YTEpOwotCQlvdXRiKDB4NjAgKyAocmVhbGlycSAmIDcpLCAweGEwKTsKLQkJb3V0YigweDYwICsgMiwgMHgyMCk7Ci0JfSBlbHNlIHsKLQkJaW5iKDB4MjEpOwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgMHgyMSk7Ci0JCW91dGIoMHg2MCArIHJlYWxpcnEsIDB4MjApOwotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0KLQlkZXNjID0gaXJxX2Rlc2MgKyByZWFsaXJxOwotCi0JLyoKLQkgKiBoYW5kbGUgdGhpcyAndmlydHVhbCBpbnRlcnJ1cHQnIGFzIGEgQ29iYWx0IG9uZSBub3cuCi0JICovCi0Ja3N0YXRfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSkuaXJxc1tyZWFsaXJxXSsrOwotCi0JaWYgKGxpa2VseShkZXNjLT5hY3Rpb24gIT0gTlVMTCkpCi0JCWhhbmRsZV9JUlFfZXZlbnQocmVhbGlycSwgZGVzYy0+YWN0aW9uKTsKLQotCWlmICghKGRlc2MtPnN0YXR1cyAmIElSUV9ESVNBQkxFRCkpCi0JCWVuYWJsZV84MjU5QV9pcnEocmVhbGlycSk7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci0KLW91dF91bmxvY2s6Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlyZXR1cm4gSVJRX05PTkU7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIG1hc3Rlcl9hY3Rpb24gPSB7Ci0JLmhhbmRsZXIgPQlwaWl4NF9tYXN0ZXJfaW50ciwKLQkubmFtZSA9CQkiUElJWDQtODI1OSIsCi19OwotCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiBjYXNjYWRlX2FjdGlvbiA9IHsKLQkuaGFuZGxlciA9IAlub19hY3Rpb24sCi0JLm5hbWUgPQkJImNhc2NhZGUiLAotfTsKLQotCi12b2lkIGluaXRfVklTV1NfQVBJQ19pcnFzKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQ09fSVJRX0FQSUMwICsgQ09fQVBJQ19MQVNUICsgMTsgaSsrKSB7Ci0JCWlycV9kZXNjW2ldLnN0YXR1cyA9IElSUV9ESVNBQkxFRDsKLQkJaXJxX2Rlc2NbaV0uYWN0aW9uID0gMDsKLQkJaXJxX2Rlc2NbaV0uZGVwdGggPSAxOwotCi0JCWlmIChpID09IDApIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmY29iYWx0X2lycV90eXBlOwotCQl9Ci0JCWVsc2UgaWYgKGkgPT0gQ09fSVJRX0lERTApIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmY29iYWx0X2lycV90eXBlOwotCQl9Ci0JCWVsc2UgaWYgKGkgPT0gQ09fSVJRX0lERTEpIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmY29iYWx0X2lycV90eXBlOwotCQl9Ci0JCWVsc2UgaWYgKGkgPT0gQ09fSVJRXzgyNTkpIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmcGlpeDRfbWFzdGVyX2lycV90eXBlOwotCQl9Ci0JCWVsc2UgaWYgKGkgPCBDT19JUlFfQVBJQzApIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmcGlpeDRfdmlydHVhbF9pcnFfdHlwZTsKLQkJfQotCQllbHNlIGlmIChJU19DT19BUElDKGkpKSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKLQkJfQotCX0KLQotCXNldHVwX2lycShDT19JUlFfODI1OSwgJm1hc3Rlcl9hY3Rpb24pOwotCXNldHVwX2lycSgyLCAmY2FzY2FkZV9hY3Rpb24pOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3NldHVwLmMgYi9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvc2V0dXAuYwppbmRleCA1YWU1NDY2Li42YmJkZDYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvc2V0dXAuYworKysgYi9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvc2V0dXAuYwpAQCAtNjIsNiArNjIsNyBAQAogY2hhciAqX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCiB7CiAJY2hhciAqd2hvOworCWludCBuZXdfbnI7CiAKIAl3aG8gPSAiTk9UIFZPWUFHRVIiOwogCkBAIC03Myw3ICs3NCw3IEBACiAKIAkJZTgyMC5ucl9tYXAgPSAwOwogCQlmb3IgKGkgPSAwOyB2b3lhZ2VyX21lbW9yeV9kZXRlY3QoaSwgJmFkZHIsICZsZW5ndGgpOyBpKyspIHsKLQkJCWFkZF9tZW1vcnlfcmVnaW9uKGFkZHIsIGxlbmd0aCwgRTgyMF9SQU0pOworCQkJZTgyMF9hZGRfcmVnaW9uKGFkZHIsIGxlbmd0aCwgRTgyMF9SQU0pOwogCQl9CiAJCXJldHVybiB3aG87CiAJfSBlbHNlIGlmICh2b3lhZ2VyX2xldmVsID09IDQpIHsKQEAgLTkxLDQzICs5MiwxNyBAQAogCQkJdG9tID0gKGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1faykgPDwgMTA7CiAJCX0KIAkJd2hvID0gIlZveWFnZXItVE9NIjsKLQkJYWRkX21lbW9yeV9yZWdpb24oMCwgMHg5ZjAwMCwgRTgyMF9SQU0pOworCQllODIwX2FkZF9yZWdpb24oMCwgMHg5ZjAwMCwgRTgyMF9SQU0pOwogCQkvKiBtYXAgZnJvbSAxTSB0byB0b3Agb2YgbWVtb3J5ICovCi0JCWFkZF9tZW1vcnlfcmVnaW9uKDEgKiAxMDI0ICogMTAyNCwgdG9tIC0gMSAqIDEwMjQgKiAxMDI0LAorCQllODIwX2FkZF9yZWdpb24oMSAqIDEwMjQgKiAxMDI0LCB0b20gLSAxICogMTAyNCAqIDEwMjQsCiAJCQkJICBFODIwX1JBTSk7CiAJCS8qIEZJWE1FOiBTaG91bGQgY2hlY2sgdGhlIEFTSUNzIHRvIHNlZSBpZiBJIG5lZWQgdG8KIAkJICogdGFrZSBvdXQgdGhlIDhNIHdpbmRvdy4gIEp1c3QgZG8gaXQgYXQgdGhlIG1vbWVudAogCQkgKiAqLwotCQlhZGRfbWVtb3J5X3JlZ2lvbig4ICogMTAyNCAqIDEwMjQsIDggKiAxMDI0ICogMTAyNCwKKwkJZTgyMF9hZGRfcmVnaW9uKDggKiAxMDI0ICogMTAyNCwgOCAqIDEwMjQgKiAxMDI0LAogCQkJCSAgRTgyMF9SRVNFUlZFRCk7CiAJCXJldHVybiB3aG87CiAJfQogCi0Jd2hvID0gIkJJT1MtZTgyMCI7Ci0KLQkvKgotCSAqIFRyeSB0byBjb3B5IHRoZSBCSU9TLXN1cHBsaWVkIEU4MjAtbWFwLgotCSAqCi0JICogT3RoZXJ3aXNlIGZha2UgYSBtZW1vcnkgbWFwOyBvbmUgc2VjdGlvbiBmcm9tIDBrLT42NDBrLAotCSAqIHRoZSBuZXh0IHNlY3Rpb24gZnJvbSAxbWItPmFwcHJvcHJpYXRlX21lbV9rCi0JICovCi0Jc2FuaXRpemVfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsICZib290X3BhcmFtcy5lODIwX2VudHJpZXMpOwotCWlmIChjb3B5X2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCBib290X3BhcmFtcy5lODIwX2VudHJpZXMpCi0JICAgIDwgMCkgewotCQl1bnNpZ25lZCBsb25nIG1lbV9zaXplOwotCi0JCS8qIGNvbXBhcmUgcmVzdWx0cyBmcm9tIG90aGVyIG1ldGhvZHMgYW5kIHRha2UgdGhlIGdyZWF0ZXIgKi8KLQkJaWYgKGJvb3RfcGFyYW1zLmFsdF9tZW1fayA8IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1faykgewotCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2s7Ci0JCQl3aG8gPSAiQklPUy04OCI7Ci0JCX0gZWxzZSB7Ci0JCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLmFsdF9tZW1fazsKLQkJCXdobyA9ICJCSU9TLWU4MDEiOwotCQl9Ci0KLQkJZTgyMC5ucl9tYXAgPSAwOwotCQlhZGRfbWVtb3J5X3JlZ2lvbigwLCBMT1dNRU1TSVpFKCksIEU4MjBfUkFNKTsKLQkJYWRkX21lbW9yeV9yZWdpb24oSElHSF9NRU1PUlksIG1lbV9zaXplIDw8IDEwLCBFODIwX1JBTSk7Ci0JfQotCXJldHVybiB3aG87CisJcmV0dXJuIGRlZmF1bHRfbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdm95YWdlci92b3lhZ2VyX3NtcC5jIGIvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3ZveWFnZXJfc21wLmMKaW5kZXggOGFjYmYwYy4uOGRlZGQwMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3ZveWFnZXJfc21wLmMKKysrIGIvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3ZveWFnZXJfc21wLmMKQEAgLTU5LDExICs1OSw2IEBACiAgKiBhY3Rpdml0eSBjb3VudC4gIEZpbmFsbHkgZXhwb3J0ZWQgYnkgaTM4Nl9rc3ltcy5jICovCiBzdGF0aWMgaW50IHZveWFnZXJfZXh0ZW5kZWRfY3B1cyA9IDE7CiAKLS8qIEhhdmUgd2UgZm91bmQgYW4gU01QIGJveCAtIHVzZWQgYnkgdGltZS5jIHRvIGRvIHRoZSBwcm9maWxpbmcKLSAgIGludGVycnVwdCBmb3IgdGltZXNsaWNpbmc7IGRvIG5vdCBzZXQgdG8gMSB1bnRpbCB0aGUgcGVyIENQVSB0aW1lcgotICAgaW50ZXJydXB0IGlzIGFjdGl2ZSAqLwotaW50IHNtcF9mb3VuZF9jb25maWcgPSAwOwotCiAvKiBVc2VkIGZvciB0aGUgaW52YWxpZGF0ZSBtYXAgdGhhdCdzIGFsc28gY2hlY2tlZCBpbiB0aGUgc3BpbmxvY2sgKi8KIHN0YXRpYyB2b2xhdGlsZSB1bnNpZ25lZCBsb25nIHNtcF9pbnZhbGlkYXRlX25lZWRlZDsKIApAQCAtMTEzNywxNSArMTEzMiw2IEBACiAJb25fZWFjaF9jcHUoZG9fZmx1c2hfdGxiX2FsbCwgMCwgMSwgMSk7CiB9CiAKLS8qIHVzZWQgdG8gc2V0IHVwIHRoZSB0cmFtcG9saW5lIGZvciBvdGhlciBDUFVzIHdoZW4gdGhlIG1lbW9yeSBtYW5hZ2VyCi0gKiBpcyBzb3J0ZWQgb3V0ICovCi12b2lkIF9faW5pdCBzbXBfYWxsb2NfbWVtb3J5KHZvaWQpCi17Ci0JdHJhbXBvbGluZV9iYXNlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKLQlpZiAoX19wYSh0cmFtcG9saW5lX2Jhc2UpID49IDB4OTMwMDApCi0JCUJVRygpOwotfQotCiAvKiBzZW5kIGEgcmVzY2hlZHVsZSBDUEkgdG8gb25lIENQVSBieSBwaHlzaWNhbCBDUFUgbnVtYmVyKi8KIHN0YXRpYyB2b2lkIHZveWFnZXJfc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMgYi9hcmNoL3g4Ni9tYXRoLWVtdS9yZWdfY29uc3RhbnQuYwppbmRleCAwNDg2OWU2Li4wMDU0ODM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYXRoLWVtdS9yZWdfY29uc3RhbnQuYworKysgYi9hcmNoL3g4Ni9tYXRoLWVtdS9yZWdfY29uc3RhbnQuYwpAQCAtMTYsOCArMTYsOCBAQAogI2luY2x1ZGUgInJlZ19jb25zdGFudC5oIgogI2luY2x1ZGUgImNvbnRyb2xfdy5oIgogCi0jZGVmaW5lIE1BS0VfUkVHKHMsZSxsLGgpIHsgbCwgaCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoRVhURU5ERURfRWJpYXMrKGUpKSB8ICgoU0lHTl8jI3MgIT0gMCkqMHg4MDAwKSkgfQorI2RlZmluZSBNQUtFX1JFRyhzLCBlLCBsLCBoKSB7IGwsIGgsIFwKKwkJKChFWFRFTkRFRF9FYmlhcysoZSkpIHwgKChTSUdOXyMjcyAhPSAwKSoweDgwMDApKSB9CiAKIEZQVV9SRUcgY29uc3QgQ09OU1RfMSA9IE1BS0VfUkVHKFBPUywgMCwgMHgwMDAwMDAwMCwgMHg4MDAwMDAwMCk7CiAjaWYgMApAQCAtNDAsNyArNDAsNyBAQAogRlBVX1JFRyBjb25zdCBDT05TVF9aID0gTUFLRV9SRUcoUE9TLCBFWFBfVU5ERVIsIDB4MCwgMHgwKTsKIAogLyogT25seSB0aGUgc2lnbiBhbmQgc2lnbmlmaWNhbmQgKGFuZCB0YWcpIGFyZSB1c2VkIGluIGludGVybmFsIE5hTnMgKi8KLS8qIFRoZSA4MDQ4NiBuZXZlciBnZW5lcmF0ZXMgb25lIG9mIHRoZXNlIAorLyogVGhlIDgwNDg2IG5ldmVyIGdlbmVyYXRlcyBvbmUgb2YgdGhlc2UKIEZQVV9SRUcgY29uc3QgQ09OU1RfU05BTiA9IE1BS0VfUkVHKFBPUywgRVhQX09WRVIsIDB4MDAwMDAwMDEsIDB4ODAwMDAwMDApOwogICovCiAvKiBUaGlzIGlzIHRoZSByZWFsIGluZGVmaW5pdGUgUU5hTiAqLwpAQCAtNDksNyArNDksNyBAQAogLyogT25seSB0aGUgc2lnbiAoYW5kIHRhZykgaXMgdXNlZCBpbiBpbnRlcm5hbCBpbmZpbml0aWVzICovCiBGUFVfUkVHIGNvbnN0IENPTlNUX0lORiA9IE1BS0VfUkVHKFBPUywgRVhQX09WRVIsIDB4MDAwMDAwMDAsIDB4ODAwMDAwMDApOwogCi1zdGF0aWMgdm9pZCBmbGRfY29uc3QoRlBVX1JFRyBjb25zdCAqYywgaW50IGFkaiwgdV9jaGFyIHRhZykKK3N0YXRpYyB2b2lkIGZsZF9jb25zdChGUFVfUkVHIGNvbnN0ICogYywgaW50IGFkaiwgdV9jaGFyIHRhZykKIHsKIAlGUFVfUkVHICpzdF9uZXdfcHRyOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9NYWtlZmlsZSBiL2FyY2gveDg2L21tL01ha2VmaWxlCmluZGV4IGI3YjNlNGMuLjk4NzM3MTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL01ha2VmaWxlCisrKyBiL2FyY2gveDg2L21tL01ha2VmaWxlCkBAIC04LDEwICs4LDE2IEBACiAKIG9iai0kKENPTkZJR19ISUdITUVNKQkJKz0gaGlnaG1lbV8zMi5vCiAKK29iai0kKENPTkZJR19NTUlPVFJBQ0VfSE9PS1MpCSs9IGttbWlvLm8KK29iai0kKENPTkZJR19NTUlPVFJBQ0UpCQkrPSBtbWlvdHJhY2UubworbW1pb3RyYWNlLXkJCQk6PSBwZl9pbi5vIG1taW8tbW9kLm8KK29iai0kKENPTkZJR19NTUlPVFJBQ0VfVEVTVCkJKz0gdGVzdG1taW90cmFjZS5vCisKIGlmZXEgKCQoQ09ORklHX1g4Nl8zMikseSkKIG9iai0kKENPTkZJR19OVU1BKQkJKz0gZGlzY29udGlnXzMyLm8KIGVsc2UKIG9iai0kKENPTkZJR19OVU1BKQkJKz0gbnVtYV82NC5vCiBvYmotJChDT05GSUdfSzhfTlVNQSkJCSs9IGs4dG9wb2xvZ3lfNjQubwotb2JqLSQoQ09ORklHX0FDUElfTlVNQSkJCSs9IHNyYXRfNjQubwogZW5kaWYKK29iai0kKENPTkZJR19BQ1BJX05VTUEpCQkrPSBzcmF0XyQoQklUUykubworCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYyBiL2FyY2gveDg2L21tL2Rpc2NvbnRpZ18zMi5jCmluZGV4IDkxNGNjZjkuLjVkZmVmOWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2Rpc2NvbnRpZ18zMi5jCisrKyBiL2FyY2gveDg2L21tL2Rpc2NvbnRpZ18zMi5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL21tem9uZS5oPgogI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KIAogc3RydWN0IHBnbGlzdF9kYXRhICpub2RlX2RhdGFbTUFYX05VTU5PREVTXSBfX3JlYWRfbW9zdGx5OwogRVhQT1JUX1NZTUJPTChub2RlX2RhdGEpOwpAQCAtNTksMTQgKzYwLDE0IEBACiAvKgogICogNCkgcGh5c25vZGVfbWFwICAgICAtIHRoZSBtYXBwaW5nIGJldHdlZW4gYSBwZm4gYW5kIG93bmluZyBub2RlCiAgKiBwaHlzbm9kZV9tYXAga2VlcHMgdHJhY2sgb2YgdGhlIHBoeXNpY2FsIG1lbW9yeSBsYXlvdXQgb2YgYSBnZW5lcmljCi0gKiBudW1hIG5vZGUgb24gYSAyNTZNYiBicmVhayAoZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSB3aWxsCi0gKiByZXByZXNlbnQgMjU2TWIgb2YgbWVtb3J5IGFuZCB3aWxsIGJlIG1hcmtlZCBieSB0aGUgbm9kZSBpZC4gIHNvLAorICogbnVtYSBub2RlIG9uIGEgNjRNYiBicmVhayAoZWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSB3aWxsCisgKiByZXByZXNlbnQgNjRNYiBvZiBtZW1vcnkgYW5kIHdpbGwgYmUgbWFya2VkIGJ5IHRoZSBub2RlIGlkLiAgc28sCiAgKiBpZiB0aGUgZmlyc3QgZ2lnIGlzIG9uIG5vZGUgMCwgYW5kIHRoZSBzZWNvbmQgZ2lnIGlzIG9uIG5vZGUgMQogICogcGh5c25vZGVfbWFwIHdpbGwgY29udGFpbjoKICAqCi0gKiAgICAgcGh5c25vZGVfbWFwWzAtM10gPSAwOwotICogICAgIHBoeXNub2RlX21hcFs0LTddID0gMTsKLSAqICAgICBwaHlzbm9kZV9tYXBbOC0gXSA9IC0xOworICogICAgIHBoeXNub2RlX21hcFswLTE1XSA9IDA7CisgKiAgICAgcGh5c25vZGVfbWFwWzE2LTMxXSA9IDE7CisgKiAgICAgcGh5c25vZGVfbWFwWzMyLSBdID0gLTE7CiAgKi8KIHM4IHBoeXNub2RlX21hcFtNQVhfRUxFTUVOVFNdIF9fcmVhZF9tb3N0bHkgPSB7IFswIC4uLiAoTUFYX0VMRU1FTlRTIC0gMSldID0gLTF9OwogRVhQT1JUX1NZTUJPTChwaHlzbm9kZV9tYXApOwpAQCAtNzUsMTUgKzc2LDE1IEBACiB7CiAJdW5zaWduZWQgbG9uZyBwZm47CiAKLQlwcmludGsoS0VSTl9JTkZPICJOb2RlOiAlZCwgc3RhcnRfcGZuOiAlbGQsIGVuZF9wZm46ICVsZFxuIiwKKwlwcmludGsoS0VSTl9JTkZPICJOb2RlOiAlZCwgc3RhcnRfcGZuOiAlbHgsIGVuZF9wZm46ICVseFxuIiwKIAkJCW5pZCwgc3RhcnQsIGVuZCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIiAgU2V0dGluZyBwaHlzbm9kZV9tYXAgYXJyYXkgdG8gbm9kZSAlZCBmb3IgcGZuczpcbiIsIG5pZCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIiAgIik7CiAJZm9yIChwZm4gPSBzdGFydDsgcGZuIDwgZW5kOyBwZm4gKz0gUEFHRVNfUEVSX0VMRU1FTlQpIHsKIAkJcGh5c25vZGVfbWFwW3BmbiAvIFBBR0VTX1BFUl9FTEVNRU5UXSA9IG5pZDsKLQkJcHJpbnRrKCIlbGQgIiwgcGZuKTsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiJWx4ICIsIHBmbik7CiAJfQotCXByaW50aygiXG4iKTsKKwlwcmludGsoS0VSTl9DT05UICJcbiIpOwogfQogCiB1bnNpZ25lZCBsb25nIG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCkBAIC05OSw3ICsxMDAsNiBAQAogI2VuZGlmCiAKIGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbWF4X2xvd19wZm4odm9pZCk7Ci1leHRlcm4gdm9pZCBhZGRfb25lX2hpZ2hwYWdlX2luaXQoc3RydWN0IHBhZ2UgKiwgaW50LCBpbnQpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaGlnaGVuZF9wZm4sIGhpZ2hzdGFydF9wZm47CiAKICNkZWZpbmUgTEFSR0VfUEFHRV9CWVRFUyAoUFRSU19QRVJfUFRFICogUEFHRV9TSVpFKQpAQCAtMTE3LDEzICsxMTcsMTMgQEAKICAqLwogaW50IF9faW5pdCBnZXRfbWVtY2ZnX251bWFfZmxhdCh2b2lkKQogewotCXByaW50aygiTlVNQSAtIHNpbmdsZSBub2RlLCBmbGF0IG1lbW9yeSBtb2RlXG4iKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiTlVNQSAtIHNpbmdsZSBub2RlLCBmbGF0IG1lbW9yeSBtb2RlXG4iKTsKIAotCS8qIFJ1biB0aGUgbWVtb3J5IGNvbmZpZ3VyYXRpb24gYW5kIGZpbmQgdGhlIHRvcCBvZiBtZW1vcnkuICovCi0JcHJvcGFnYXRlX2U4MjBfbWFwKCk7CiAJbm9kZV9zdGFydF9wZm5bMF0gPSAwOwogCW5vZGVfZW5kX3BmblswXSA9IG1heF9wZm47CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCBtYXhfcGZuKTsKIAltZW1vcnlfcHJlc2VudCgwLCAwLCBtYXhfcGZuKTsKKwlub2RlX3JlbWFwX3NpemVbMF0gPSBub2RlX21lbW1hcF9zaXplX2J5dGVzKDAsIDAsIG1heF9wZm4pOwogCiAgICAgICAgIC8qIEluZGljYXRlIHRoZXJlIGlzIG9uZSBub2RlIGF2YWlsYWJsZS4gKi8KIAlub2Rlc19jbGVhcihub2RlX29ubGluZV9tYXApOwpAQCAtMTU2LDI0ICsxNTYsMzIgQEAKICAqLwogc3RhdGljIHZvaWQgX19pbml0IGFsbG9jYXRlX3BnZGF0KGludCBuaWQpCiB7Ci0JaWYgKG5pZCAmJiBub2RlX2hhc19vbmxpbmVfbWVtKG5pZCkpCisJY2hhciBidWZbMTZdOworCisJaWYgKG5vZGVfaGFzX29ubGluZV9tZW0obmlkKSAmJiBub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF0pCiAJCU5PREVfREFUQShuaWQpID0gKHBnX2RhdGFfdCAqKW5vZGVfcmVtYXBfc3RhcnRfdmFkZHJbbmlkXTsKIAllbHNlIHsKLQkJTk9ERV9EQVRBKG5pZCkgPSAocGdfZGF0YV90ICopKHBmbl90b19rYWRkcihtaW5fbG93X3BmbikpOwotCQltaW5fbG93X3BmbiArPSBQRk5fVVAoc2l6ZW9mKHBnX2RhdGFfdCkpOworCQl1bnNpZ25lZCBsb25nIHBnZGF0X3BoeXM7CisJCXBnZGF0X3BoeXMgPSBmaW5kX2U4MjBfYXJlYShtaW5fbG93X3Bmbjw8UEFHRV9TSElGVCwKKwkJCQkgbWF4X3Bmbl9tYXBwZWQ8PFBBR0VfU0hJRlQsCisJCQkJIHNpemVvZihwZ19kYXRhX3QpLAorCQkJCSBQQUdFX1NJWkUpOworCQlOT0RFX0RBVEEobmlkKSA9IChwZ19kYXRhX3QgKikocGZuX3RvX2thZGRyKHBnZGF0X3BoeXM+PlBBR0VfU0hJRlQpKTsKKwkJbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOworCQlzcHJpbnRmKGJ1ZiwgIk5PREVfREFUQSAlZCIsICBuaWQpOworCQlyZXNlcnZlX2Vhcmx5KHBnZGF0X3BoeXMsIHBnZGF0X3BoeXMgKyBzaXplb2YocGdfZGF0YV90KSwgYnVmKTsKIAl9CisJcHJpbnRrKEtFUk5fREVCVUcgImFsbG9jYXRlX3BnZGF0OiBub2RlICVkIE5PREVfREFUQSAlMDhseFxuIiwKKwkJbmlkLCAodW5zaWduZWQgbG9uZylOT0RFX0RBVEEobmlkKSk7CiB9CiAKLSNpZmRlZiBDT05GSUdfRElTQ09OVElHTUVNCiAvKgotICogSW4gdGhlIGRpc2NvbnRpZyBtZW1vcnkgbW9kZWwsIGEgcG9ydGlvbiBvZiB0aGUga2VybmVsIHZpcnR1YWwgYXJlYSAoS1ZBKQotICogaXMgcmVzZXJ2ZWQgYW5kIHBvcnRpb25zIG9mIG5vZGVzIGFyZSBtYXBwZWQgdXNpbmcgaXQuIFRoaXMgaXMgdG8gYWxsb3cKLSAqIG5vZGUtbG9jYWwgbWVtb3J5IHRvIGJlIGFsbG9jYXRlZCBmb3Igc3RydWN0dXJlcyB0aGF0IHdvdWxkIG5vcm1hbGx5IHJlcXVpcmUKLSAqIFpPTkVfTk9STUFMLiBUaGUgbWVtb3J5IGlzIGFsbG9jYXRlZCB3aXRoIGFsbG9jX3JlbWFwKCkgYW5kIGNhbGxlcnMKLSAqIHNob3VsZCBiZSBwcmVwYXJlZCB0byBhbGxvY2F0ZSBmcm9tIHRoZSBib290bWVtIGFsbG9jYXRvciBpbnN0ZWFkLiBUaGlzIEtWQQotICogbWVjaGFuaXNtIGlzIGluY29tcGF0aWJsZSB3aXRoIFNQQVJTRU1FTSBhcyBpdCBtYWtlcyBhc3N1bXB0aW9ucyBhYm91dCB0aGUKLSAqIGxheW91dCBvZiBtZW1vcnkgdGhhdCBhcmUgYnJva2VuIGlmIGFsbG9jX3JlbWFwKCkgc3VjY2VlZHMgZm9yIHNvbWUgb2YgdGhlCi0gKiBtYXAgYW5kIGZhaWxzIGZvciBvdGhlcnMKKyAqIEluIHRoZSBESVNDT05USUdNRU0gYW5kIFNQQVJTRU1FTSBtZW1vcnkgbW9kZWwsIGEgcG9ydGlvbiBvZiB0aGUga2VybmVsCisgKiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgKEtWQSkgaXMgcmVzZXJ2ZWQgYW5kIHBvcnRpb25zIG9mIG5vZGVzIGFyZSBtYXBwZWQKKyAqIHVzaW5nIGl0LiBUaGlzIGlzIHRvIGFsbG93IG5vZGUtbG9jYWwgbWVtb3J5IHRvIGJlIGFsbG9jYXRlZCBmb3IKKyAqIHN0cnVjdHVyZXMgdGhhdCB3b3VsZCBub3JtYWxseSByZXF1aXJlIFpPTkVfTk9STUFMLiBUaGUgbWVtb3J5IGlzCisgKiBhbGxvY2F0ZWQgd2l0aCBhbGxvY19yZW1hcCgpIGFuZCBjYWxsZXJzIHNob3VsZCBiZSBwcmVwYXJlZCB0byBhbGxvY2F0ZQorICogZnJvbSB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaW5zdGVhZC4KICAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbm9kZV9yZW1hcF9zdGFydF9wZm5bTUFYX05VTU5PREVTXTsKIHN0YXRpYyB2b2lkICpub2RlX3JlbWFwX2VuZF92YWRkcltNQVhfTlVNTk9ERVNdOwpAQCAtMTk1LDE1ICsyMDMsMTkgQEAKIAlyZXR1cm4gYWxsb2NhdGlvbjsKIH0KIAotdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCByZW1hcF9udW1hX2t2YSh2b2lkKQogewogCXZvaWQgKnZhZGRyOwogCXVuc2lnbmVkIGxvbmcgcGZuOwogCWludCBub2RlOwogCiAJZm9yX2VhY2hfb25saW5lX25vZGUobm9kZSkgeworCQlwcmludGsoS0VSTl9ERUJVRyAicmVtYXBfbnVtYV9rdmE6IG5vZGUgJWRcbiIsIG5vZGUpOwogCQlmb3IgKHBmbj0wOyBwZm4gPCBub2RlX3JlbWFwX3NpemVbbm9kZV07IHBmbiArPSBQVFJTX1BFUl9QVEUpIHsKIAkJCXZhZGRyID0gbm9kZV9yZW1hcF9zdGFydF92YWRkcltub2RlXSsocGZuPDxQQUdFX1NISUZUKTsKKwkJCXByaW50ayhLRVJOX0RFQlVHICJyZW1hcF9udW1hX2t2YTogJTA4bHggdG8gcGZuICUwOGx4XG4iLAorCQkJCSh1bnNpZ25lZCBsb25nKXZhZGRyLAorCQkJCW5vZGVfcmVtYXBfc3RhcnRfcGZuW25vZGVdICsgcGZuKTsKIAkJCXNldF9wbWRfcGZuKCh1bG9uZykgdmFkZHIsIAogCQkJCW5vZGVfcmVtYXBfc3RhcnRfcGZuW25vZGVdICsgcGZuLCAKIAkJCQlQQUdFX0tFUk5FTF9MQVJHRSk7CkBAIC0yMTUsMTcgKzIyNywyMSBAQAogewogCWludCBuaWQ7CiAJdW5zaWduZWQgbG9uZyBzaXplLCByZXNlcnZlX3BhZ2VzID0gMDsKLQl1bnNpZ25lZCBsb25nIHBmbjsKIAogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewotCQl1bnNpZ25lZCBvbGRfZW5kX3BmbiA9IG5vZGVfZW5kX3BmbltuaWRdOworCQl1NjQgbm9kZV9rdmFfdGFyZ2V0OworCQl1NjQgbm9kZV9rdmFfZmluYWw7CiAKIAkJLyoKIAkJICogVGhlIGFjcGkvc3JhdCBub2RlIGluZm8gY2FuIHNob3cgaG90LWFkZCBtZW1yb3kgem9uZXMKIAkJICogd2hlcmUgbWVtb3J5IGNvdWxkIGJlIGFkZGVkIGJ1dCBub3QgY3VycmVudGx5IHByZXNlbnQuCiAJCSAqLworCQlwcmludGsoS0VSTl9ERUJVRyAibm9kZSAlZCBwZm46IFslbHggLSAlbHhdXG4iLAorCQkJbmlkLCBub2RlX3N0YXJ0X3BmbltuaWRdLCBub2RlX2VuZF9wZm5bbmlkXSk7CiAJCWlmIChub2RlX3N0YXJ0X3BmbltuaWRdID4gbWF4X3BmbikKIAkJCWNvbnRpbnVlOworCQlpZiAoIW5vZGVfZW5kX3BmbltuaWRdKQorCQkJY29udGludWU7CiAJCWlmIChub2RlX2VuZF9wZm5bbmlkXSA+IG1heF9wZm4pCiAJCQlub2RlX2VuZF9wZm5bbmlkXSA9IG1heF9wZm47CiAKQEAgLTIzNyw0MSArMjUzLDQ4IEBACiAJCS8qIG5vdyB0aGUgcm91bmR1cCBpcyBjb3JyZWN0LCBjb252ZXJ0IHRvIFBBR0VfU0laRSBwYWdlcyAqLwogCQlzaXplID0gc2l6ZSAqIFBUUlNfUEVSX1BURTsKIAotCQkvKgotCQkgKiBWYWxpZGF0ZSB0aGUgcmVnaW9uIHdlIGFyZSBhbGxvY2F0aW5nIG9ubHkgY29udGFpbnMgdmFsaWQKLQkJICogcGFnZXMuCi0JCSAqLwotCQlmb3IgKHBmbiA9IG5vZGVfZW5kX3BmbltuaWRdIC0gc2l6ZTsKLQkJICAgICBwZm4gPCBub2RlX2VuZF9wZm5bbmlkXTsgcGZuKyspCi0JCQlpZiAoIXBhZ2VfaXNfcmFtKHBmbikpCi0JCQkJYnJlYWs7CisJCW5vZGVfa3ZhX3RhcmdldCA9IHJvdW5kX2Rvd24obm9kZV9lbmRfcGZuW25pZF0gLSBzaXplLAorCQkJCQkJIFBUUlNfUEVSX1BURSk7CisJCW5vZGVfa3ZhX3RhcmdldCA8PD0gUEFHRV9TSElGVDsKKwkJZG8geworCQkJbm9kZV9rdmFfZmluYWwgPSBmaW5kX2U4MjBfYXJlYShub2RlX2t2YV90YXJnZXQsCisJCQkJCSgodTY0KW5vZGVfZW5kX3BmbltuaWRdKTw8UEFHRV9TSElGVCwKKwkJCQkJCSgodTY0KXNpemUpPDxQQUdFX1NISUZULAorCQkJCQkJTEFSR0VfUEFHRV9CWVRFUyk7CisJCQlub2RlX2t2YV90YXJnZXQgLT0gTEFSR0VfUEFHRV9CWVRFUzsKKwkJfSB3aGlsZSAobm9kZV9rdmFfZmluYWwgPT0gLTFVTEwgJiYKKwkJCSAobm9kZV9rdmFfdGFyZ2V0Pj5QQUdFX1NISUZUKSA+IChub2RlX3N0YXJ0X3BmbltuaWRdKSk7CiAKLQkJaWYgKHBmbiAhPSBub2RlX2VuZF9wZm5bbmlkXSkKLQkJCXNpemUgPSAwOworCQlpZiAobm9kZV9rdmFfZmluYWwgPT0gLTFVTEwpCisJCQlwYW5pYygiQ2FuIG5vdCBnZXQga3ZhIHJhbVxuIik7CiAKLQkJcHJpbnRrKCJSZXNlcnZpbmcgJWxkIHBhZ2VzIG9mIEtWQSBmb3IgbG1lbV9tYXAgb2Ygbm9kZSAlZFxuIiwKLQkJCQlzaXplLCBuaWQpOwogCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IHNpemU7CiAJCW5vZGVfcmVtYXBfb2Zmc2V0W25pZF0gPSByZXNlcnZlX3BhZ2VzOwogCQlyZXNlcnZlX3BhZ2VzICs9IHNpemU7Ci0JCXByaW50aygiU2hyaW5raW5nIG5vZGUgJWQgZnJvbSAlbGQgcGFnZXMgdG8gJWxkIHBhZ2VzXG4iLAotCQkJbmlkLCBub2RlX2VuZF9wZm5bbmlkXSwgbm9kZV9lbmRfcGZuW25pZF0gLSBzaXplKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIlJlc2VydmluZyAlbGQgcGFnZXMgb2YgS1ZBIGZvciBsbWVtX21hcCBvZiIKKwkJCQkgICIgbm9kZSAlZCBhdCAlbGx4XG4iLAorCQkJCXNpemUsIG5pZCwgbm9kZV9rdmFfZmluYWw+PlBBR0VfU0hJRlQpOwogCi0JCWlmIChub2RlX2VuZF9wZm5bbmlkXSAmIChQVFJTX1BFUl9QVEUtMSkpIHsKLQkJCS8qCi0JCQkgKiBBbGlnbiBub2RlX2VuZF9wZm5bXSBhbmQgbm9kZV9yZW1hcF9zdGFydF9wZm5bXSB0bwotCQkJICogcG1kIGJvdW5kYXJ5LiByZW1hcF9udW1hX2t2YSB3aWxsIGJhcmYgb3RoZXJ3aXNlLgotCQkJICovCi0JCQlwcmludGsoIlNocmlua2luZyBub2RlICVkIGZ1cnRoZXIgYnkgJWxkIHBhZ2VzIGZvciBwcm9wZXIgYWxpZ25tZW50XG4iLAotCQkJCW5pZCwgbm9kZV9lbmRfcGZuW25pZF0gJiAoUFRSU19QRVJfUFRFLTEpKTsKLQkJCXNpemUgKz0gIG5vZGVfZW5kX3BmbltuaWRdICYgKFBUUlNfUEVSX1BURS0xKTsKLQkJfQorCQkvKgorCQkgKiAgcHJldmVudCBrdmEgYWRkcmVzcyBiZWxvdyBtYXhfbG93X3BmbiB3YW50IGl0IG9uIHN5c3RlbQorCQkgKiAgd2l0aCBsZXNzIG1lbW9yeSBsYXRlci4KKwkJICogIGxheW91dCB3aWxsIGJlOiBLVkEgYWRkcmVzcyAsIEtWQSBSQU0KKwkJICoKKwkJICogIHdlIGFyZSBzdXBwb3NlZCB0byBvbmx5IHJlY29yZCB0aGUgb25lIGxlc3MgdGhlbiBtYXhfbG93X3BmbgorCQkgKiAgYnV0IHdlIGNvdWxkIGhhdmUgc29tZSBob2xlIGluIGhpZ2ggbWVtb3J5LCBhbmQgaXQgd2lsbCBvbmx5CisJCSAqICBjaGVjayBwYWdlX2lzX3JhbShwZm4pICYmICFwYWdlX2lzX3Jlc2VydmVkX2Vhcmx5KHBmbikgdG8gZGVjaWRlCisJCSAqICB0byB1c2UgaXQgYXMgZnJlZS4KKwkJICogIFNvIHJlc2VydmVfZWFybHkgaGVyZSwgaG9wZSB3ZSBkb24ndCBydW4gb3V0IG9mIHRoYXQgYXJyYXkKKwkJICovCisJCXJlc2VydmVfZWFybHkobm9kZV9rdmFfZmluYWwsCisJCQkgICAgICBub2RlX2t2YV9maW5hbCsoKCh1NjQpc2l6ZSk8PFBBR0VfU0hJRlQpLAorCQkJICAgICAgIktWQSBSQU0iKTsKIAotCQlub2RlX2VuZF9wZm5bbmlkXSAtPSBzaXplOwotCQlub2RlX3JlbWFwX3N0YXJ0X3BmbltuaWRdID0gbm9kZV9lbmRfcGZuW25pZF07Ci0JCXNocmlua19hY3RpdmVfcmFuZ2UobmlkLCBvbGRfZW5kX3Bmbiwgbm9kZV9lbmRfcGZuW25pZF0pOworCQlub2RlX3JlbWFwX3N0YXJ0X3BmbltuaWRdID0gbm9kZV9rdmFfZmluYWw+PlBBR0VfU0hJRlQ7CisJCXJlbW92ZV9hY3RpdmVfcmFuZ2UobmlkLCBub2RlX3JlbWFwX3N0YXJ0X3BmbltuaWRdLAorCQkJCQkgbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSArIHNpemUpOwogCX0KLQlwcmludGsoIlJlc2VydmluZyB0b3RhbCBvZiAlbGQgcGFnZXMgZm9yIG51bWEgS1ZBIHJlbWFwXG4iLAorCXByaW50ayhLRVJOX0lORk8gIlJlc2VydmluZyB0b3RhbCBvZiAlbHggcGFnZXMgZm9yIG51bWEgS1ZBIHJlbWFwXG4iLAogCQkJcmVzZXJ2ZV9wYWdlcyk7CiAJcmV0dXJuIHJlc2VydmVfcGFnZXM7CiB9CkBAIC0yODUsMzcgKzMwOCwxNiBAQAogCW5vZGVfcmVtYXBfYWxsb2NfdmFkZHJbbmlkXSA9IG5vZGVfcmVtYXBfc3RhcnRfdmFkZHJbbmlkXSArCiAJCUFMSUdOKHNpemVvZihwZ19kYXRhX3QpLCBQQUdFX1NJWkUpOwogCi0JcHJpbnRrICgibm9kZSAlZCB3aWxsIHJlbWFwIHRvIHZhZGRyICUwOGx4IC0gJTA4bHhcbiIsIG5pZCwKKwlwcmludGsoS0VSTl9ERUJVRyAibm9kZSAlZCB3aWxsIHJlbWFwIHRvIHZhZGRyICUwOGx4IC0gJTA4bHhcbiIsIG5pZCwKIAkJKHVsb25nKSBub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF0sCi0JCSh1bG9uZykgcGZuX3RvX2thZGRyKGhpZ2hzdGFydF9wZm4KLQkJICAgKyBub2RlX3JlbWFwX29mZnNldFtuaWRdICsgbm9kZV9yZW1hcF9zaXplW25pZF0pKTsKLX0KLSNlbHNlCi12b2lkICphbGxvY19yZW1hcChpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JcmV0dXJuIE5VTEw7CisJCSh1bG9uZykgbm9kZV9yZW1hcF9lbmRfdmFkZHJbbmlkXSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGNhbGN1bGF0ZV9udW1hX3JlbWFwX3BhZ2VzKHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGluaXRfcmVtYXBfYWxsb2NhdG9yKGludCBuaWQpCi17Ci19Ci0KLXZvaWQgX19pbml0IHJlbWFwX251bWFfa3ZhKHZvaWQpCi17Ci19Ci0jZW5kaWYgLyogQ09ORklHX0RJU0NPTlRJR01FTSAqLwotCi1leHRlcm4gdm9pZCBzZXR1cF9ib290bWVtX2FsbG9jYXRvcih2b2lkKTsKLXVuc2lnbmVkIGxvbmcgX19pbml0IHNldHVwX21lbW9yeSh2b2lkKQordm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQogewogCWludCBuaWQ7Ci0JdW5zaWduZWQgbG9uZyBzeXN0ZW1fc3RhcnRfcGZuLCBzeXN0ZW1fbWF4X2xvd19wZm47Ci0JdW5zaWduZWQgbG9uZyB3YXN0ZWRfcGFnZXM7CisJbG9uZyBrdmFfdGFyZ2V0X3BmbjsKIAogCS8qCiAJICogV2hlbiBtYXBwaW5nIGEgTlVNQSBtYWNoaW5lIHdlIGFsbG9jYXRlIHRoZSBub2RlX21lbV9tYXAgYXJyYXlzCkBAIC0zMjQsMTA5ICszMjYsNzcgQEAKIAkgKiB0aGlzIHNwYWNlIGFuZCB1c2UgaXQgdG8gYWRqdXN0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIFpPTkVfTk9STUFMCiAJICogYW5kIFpPTkVfSElHSE1FTS4KIAkgKi8KKwogCWdldF9tZW1jZmdfbnVtYSgpOwogCi0Ja3ZhX3BhZ2VzID0gY2FsY3VsYXRlX251bWFfcmVtYXBfcGFnZXMoKTsKKwlrdmFfcGFnZXMgPSByb3VuZF91cChjYWxjdWxhdGVfbnVtYV9yZW1hcF9wYWdlcygpLCBQVFJTX1BFUl9QVEUpOwogCi0JLyogcGFydGlhbGx5IHVzZWQgcGFnZXMgYXJlIG5vdCB1c2FibGUgLSB0aHVzIHJvdW5kIHVwd2FyZHMgKi8KLQlzeXN0ZW1fc3RhcnRfcGZuID0gbWluX2xvd19wZm4gPSBQRk5fVVAoaW5pdF9wZ190YWJsZXNfZW5kKTsKKwlrdmFfdGFyZ2V0X3BmbiA9IHJvdW5kX2Rvd24obWF4X2xvd19wZm4gLSBrdmFfcGFnZXMsIFBUUlNfUEVSX1BURSk7CisJZG8geworCQlrdmFfc3RhcnRfcGZuID0gZmluZF9lODIwX2FyZWEoa3ZhX3RhcmdldF9wZm48PFBBR0VfU0hJRlQsCisJCQkJCW1heF9sb3dfcGZuPDxQQUdFX1NISUZULAorCQkJCQlrdmFfcGFnZXM8PFBBR0VfU0hJRlQsCisJCQkJCVBUUlNfUEVSX1BURTw8UEFHRV9TSElGVCkgPj4gUEFHRV9TSElGVDsKKwkJa3ZhX3RhcmdldF9wZm4gLT0gUFRSU19QRVJfUFRFOworCX0gd2hpbGUgKGt2YV9zdGFydF9wZm4gPT0gLTFVTCAmJiBrdmFfdGFyZ2V0X3BmbiA+IG1pbl9sb3dfcGZuKTsKIAotCWt2YV9zdGFydF9wZm4gPSBmaW5kX21heF9sb3dfcGZuKCkgLSBrdmFfcGFnZXM7CisJaWYgKGt2YV9zdGFydF9wZm4gPT0gLTFVTCkKKwkJcGFuaWMoIkNhbiBub3QgZ2V0IGt2YSBzcGFjZVxuIik7CiAKLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKLQkvKiBOdW1hIGt2YSBhcmVhIGlzIGJlbG93IHRoZSBpbml0cmQgKi8KLQlpZiAoaW5pdHJkX3N0YXJ0KQotCQlrdmFfc3RhcnRfcGZuID0gUEZOX0RPV04oaW5pdHJkX3N0YXJ0IC0gUEFHRV9PRkZTRVQpCi0JCQktIGt2YV9wYWdlczsKLSNlbmRpZgotCi0JLyoKLQkgKiBXZSB3YXN0ZSBwYWdlcyBwYXN0IGF0IHRoZSBlbmQgb2YgdGhlIEtWQSBmb3Igbm8gZ29vZCByZWFzb24gb3RoZXIKLQkgKiB0aGFuIGhvdyBpdCBpcyBsb2NhdGVkLiBUaGlzIGlzIGJhZC4KLQkgKi8KLQl3YXN0ZWRfcGFnZXMgPSBrdmFfc3RhcnRfcGZuICYgKFBUUlNfUEVSX1BURS0xKTsKLQlrdmFfc3RhcnRfcGZuIC09IHdhc3RlZF9wYWdlczsKLQlrdmFfcGFnZXMgKz0gd2FzdGVkX3BhZ2VzOwotCi0Jc3lzdGVtX21heF9sb3dfcGZuID0gbWF4X2xvd19wZm4gPSBmaW5kX21heF9sb3dfcGZuKCk7Ci0JcHJpbnRrKCJrdmFfc3RhcnRfcGZuIH4gJWxkIGZpbmRfbWF4X2xvd19wZm4oKSB+ICVsZFxuIiwKKwlwcmludGsoS0VSTl9JTkZPICJrdmFfc3RhcnRfcGZuIH4gJWx4IG1heF9sb3dfcGZuIH4gJWx4XG4iLAogCQlrdmFfc3RhcnRfcGZuLCBtYXhfbG93X3Bmbik7Ci0JcHJpbnRrKCJtYXhfcGZuID0gJWxkXG4iLCBtYXhfcGZuKTsKKwlwcmludGsoS0VSTl9JTkZPICJtYXhfcGZuID0gJWx4XG4iLCBtYXhfcGZuKTsKKworCS8qIGF2b2lkIGNsYXNoIHdpdGggaW5pdHJkICovCisJcmVzZXJ2ZV9lYXJseShrdmFfc3RhcnRfcGZuPDxQQUdFX1NISUZULAorCQkgICAgICAoa3ZhX3N0YXJ0X3BmbiArIGt2YV9wYWdlcyk8PFBBR0VfU0hJRlQsCisJCSAgICAgIktWQSBQRyIpOwogI2lmZGVmIENPTkZJR19ISUdITUVNCiAJaGlnaHN0YXJ0X3BmbiA9IGhpZ2hlbmRfcGZuID0gbWF4X3BmbjsKLQlpZiAobWF4X3BmbiA+IHN5c3RlbV9tYXhfbG93X3BmbikKLQkJaGlnaHN0YXJ0X3BmbiA9IHN5c3RlbV9tYXhfbG93X3BmbjsKKwlpZiAobWF4X3BmbiA+IG1heF9sb3dfcGZuKQorCQloaWdoc3RhcnRfcGZuID0gbWF4X2xvd19wZm47CiAJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBISUdITUVNIGF2YWlsYWJsZS5cbiIsCiAJICAgICAgIHBhZ2VzX3RvX21iKGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbikpOwogCW51bV9waHlzcGFnZXMgPSBoaWdoZW5kX3BmbjsKIAloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEoaGlnaHN0YXJ0X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKICNlbHNlCi0JbnVtX3BoeXNwYWdlcyA9IHN5c3RlbV9tYXhfbG93X3BmbjsKLQloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEoc3lzdGVtX21heF9sb3dfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOworCW51bV9waHlzcGFnZXMgPSBtYXhfbG93X3BmbjsKKwloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEobWF4X2xvd19wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CiAjZW5kaWYKIAlwcmludGsoS0VSTl9OT1RJQ0UgIiVsZE1CIExPV01FTSBhdmFpbGFibGUuXG4iLAotCQkJcGFnZXNfdG9fbWIoc3lzdGVtX21heF9sb3dfcGZuKSk7Ci0JcHJpbnRrKCJtaW5fbG93X3BmbiA9ICVsZCwgbWF4X2xvd19wZm4gPSAlbGQsIGhpZ2hzdGFydF9wZm4gPSAlbGRcbiIsIAotCQkJbWluX2xvd19wZm4sIG1heF9sb3dfcGZuLCBoaWdoc3RhcnRfcGZuKTsKKwkJCXBhZ2VzX3RvX21iKG1heF9sb3dfcGZuKSk7CisJcHJpbnRrKEtFUk5fREVCVUcgIm1heF9sb3dfcGZuID0gJWx4LCBoaWdoc3RhcnRfcGZuID0gJWx4XG4iLAorCQkJbWF4X2xvd19wZm4sIGhpZ2hzdGFydF9wZm4pOwogCi0JcHJpbnRrKCJMb3cgbWVtb3J5IGVuZHMgYXQgdmFkZHIgJTA4bHhcbiIsCisJcHJpbnRrKEtFUk5fREVCVUcgIkxvdyBtZW1vcnkgZW5kcyBhdCB2YWRkciAlMDhseFxuIiwKIAkJCSh1bG9uZykgcGZuX3RvX2thZGRyKG1heF9sb3dfcGZuKSk7CiAJZm9yX2VhY2hfb25saW5lX25vZGUobmlkKSB7CiAJCWluaXRfcmVtYXBfYWxsb2NhdG9yKG5pZCk7CiAKIAkJYWxsb2NhdGVfcGdkYXQobmlkKTsKIAl9Ci0JcHJpbnRrKCJIaWdoIG1lbW9yeSBzdGFydHMgYXQgdmFkZHIgJTA4bHhcbiIsCisJcmVtYXBfbnVtYV9rdmEoKTsKKworCXByaW50ayhLRVJOX0RFQlVHICJIaWdoIG1lbW9yeSBzdGFydHMgYXQgdmFkZHIgJTA4bHhcbiIsCiAJCQkodWxvbmcpIHBmbl90b19rYWRkcihoaWdoc3RhcnRfcGZuKSk7CiAJZm9yX2VhY2hfb25saW5lX25vZGUobmlkKQogCQlwcm9wYWdhdGVfZTgyMF9tYXBfbm9kZShuaWQpOwogCi0JbWVtc2V0KE5PREVfREFUQSgwKSwgMCwgc2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSkpOworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkKKwkJbWVtc2V0KE5PREVfREFUQShuaWQpLCAwLCBzaXplb2Yoc3RydWN0IHBnbGlzdF9kYXRhKSk7CisKIAlOT0RFX0RBVEEoMCktPmJkYXRhID0gJm5vZGUwX2JkYXRhOwogCXNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKCk7Ci0JcmV0dXJuIG1heF9sb3dfcGZuOwogfQogCi12b2lkIF9faW5pdCBudW1hX2t2YV9yZXNlcnZlKHZvaWQpCi17Ci0JaWYgKGt2YV9wYWdlcykKLQkJcmVzZXJ2ZV9ib290bWVtKFBGTl9QSFlTKGt2YV9zdGFydF9wZm4pLCBQRk5fUEhZUyhrdmFfcGFnZXMpLAotCQkJCUJPT1RNRU1fREVGQVVMVCk7Ci19Ci0KLXZvaWQgX19pbml0IHpvbmVfc2l6ZXNfaW5pdCh2b2lkKQotewotCWludCBuaWQ7Ci0JdW5zaWduZWQgbG9uZyBtYXhfem9uZV9wZm5zW01BWF9OUl9aT05FU107Ci0JbWVtc2V0KG1heF96b25lX3BmbnMsIDAsIHNpemVvZihtYXhfem9uZV9wZm5zKSk7Ci0JbWF4X3pvbmVfcGZuc1taT05FX0RNQV0gPQotCQl2aXJ0X3RvX3BoeXMoKGNoYXIgKilNQVhfRE1BX0FERFJFU1MpID4+IFBBR0VfU0hJRlQ7Ci0JbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBtYXhfbG93X3BmbjsKLSNpZmRlZiBDT05GSUdfSElHSE1FTQotCW1heF96b25lX3BmbnNbWk9ORV9ISUdITUVNXSA9IGhpZ2hlbmRfcGZuOwotI2VuZGlmCi0KLQkvKiBJZiBTUkFUIGhhcyBub3QgcmVnaXN0ZXJlZCBtZW1vcnksIHJlZ2lzdGVyIGl0IG5vdyAqLwotCWlmIChmaW5kX21heF9wZm5fd2l0aF9hY3RpdmVfcmVnaW9ucygpID09IDApIHsKLQkJZm9yX2VhY2hfb25saW5lX25vZGUobmlkKSB7Ci0JCQlpZiAobm9kZV9oYXNfb25saW5lX21lbShuaWQpKQotCQkJCWFkZF9hY3RpdmVfcmFuZ2UobmlkLCBub2RlX3N0YXJ0X3BmbltuaWRdLAotCQkJCQkJCW5vZGVfZW5kX3BmbltuaWRdKTsKLQkJfQotCX0KLQotCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOwotCXJldHVybjsKLX0KLQotdm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdChpbnQgYmFkX3Bwcm8pIAordm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdCh2b2lkKQogewogI2lmZGVmIENPTkZJR19ISUdITUVNCiAJc3RydWN0IHpvbmUgKnpvbmU7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7CisJaW50IG5pZDsKIAogCWZvcl9lYWNoX3pvbmUoem9uZSkgewotCQl1bnNpZ25lZCBsb25nIG5vZGVfcGZuLCB6b25lX3N0YXJ0X3Bmbiwgem9uZV9lbmRfcGZuOworCQl1bnNpZ25lZCBsb25nIHpvbmVfc3RhcnRfcGZuLCB6b25lX2VuZF9wZm47CiAKIAkJaWYgKCFpc19oaWdobWVtKHpvbmUpKQogCQkJY29udGludWU7CkBAIC00MzQsMTYgKzQwNCwxMiBAQAogCQl6b25lX3N0YXJ0X3BmbiA9IHpvbmUtPnpvbmVfc3RhcnRfcGZuOwogCQl6b25lX2VuZF9wZm4gPSB6b25lX3N0YXJ0X3BmbiArIHpvbmUtPnNwYW5uZWRfcGFnZXM7CiAKLQkJcHJpbnRrKCJJbml0aWFsaXppbmcgJXMgZm9yIG5vZGUgJWQgKCUwOGx4OiUwOGx4KVxuIiwKLQkJCQl6b25lLT5uYW1lLCB6b25lX3RvX25pZCh6b25lKSwKLQkJCQl6b25lX3N0YXJ0X3Bmbiwgem9uZV9lbmRfcGZuKTsKKwkJbmlkID0gem9uZV90b19uaWQoem9uZSk7CisJCXByaW50ayhLRVJOX0lORk8gIkluaXRpYWxpemluZyAlcyBmb3Igbm9kZSAlZCAoJTA4bHg6JTA4bHgpXG4iLAorCQkJCXpvbmUtPm5hbWUsIG5pZCwgem9uZV9zdGFydF9wZm4sIHpvbmVfZW5kX3Bmbik7CiAKLQkJZm9yIChub2RlX3BmbiA9IHpvbmVfc3RhcnRfcGZuOyBub2RlX3BmbiA8IHpvbmVfZW5kX3Bmbjsgbm9kZV9wZm4rKykgewotCQkJaWYgKCFwZm5fdmFsaWQobm9kZV9wZm4pKQotCQkJCWNvbnRpbnVlOwotCQkJcGFnZSA9IHBmbl90b19wYWdlKG5vZGVfcGZuKTsKLQkJCWFkZF9vbmVfaGlnaHBhZ2VfaW5pdChwYWdlLCBub2RlX3BmbiwgYmFkX3Bwcm8pOwotCQl9CisJCWFkZF9oaWdocGFnZXNfd2l0aF9hY3RpdmVfcmVnaW9ucyhuaWQsIHpvbmVfc3RhcnRfcGZuLAorCQkJCSB6b25lX2VuZF9wZm4pOwogCX0KIAl0b3RhbHJhbV9wYWdlcyArPSB0b3RhbGhpZ2hfcGFnZXM7CiAjZW5kaWYKQEAgLTQ3NiwzICs0NDIsNCBAQAogCiBFWFBPUlRfU1lNQk9MX0dQTChtZW1vcnlfYWRkX3BoeXNhZGRyX3RvX25pZCk7CiAjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMgYi9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYwppbmRleCAyYzI0YmVhLi4wYmIwY2FlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYworKysgYi9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYwpAQCAtNDIsNyArNDIsNyBAQAogCXsgMCwgIlVzZXIgU3BhY2UiIH0sCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCXsgMHg4MDAwMDAwMDAwMDAwMDAwVUwsICJLZXJuZWwgU3BhY2UiIH0sCi0JeyAweGZmZmY4MTAwMDAwMDAwMDBVTCwgIkxvdyBLZXJuZWwgTWFwcGluZyIgfSwKKwl7IFBBR0VfT0ZGU0VULAkJIkxvdyBLZXJuZWwgTWFwcGluZyIgfSwKIAl7IFZNQUxMT0NfU1RBUlQsICAgICAgICAidm1hbGxvYygpIEFyZWEiIH0sCiAJeyBWTUVNTUFQX1NUQVJULCAgICAgICAgIlZtZW1tYXAiIH0sCiAJeyBfX1NUQVJUX0tFUk5FTF9tYXAsICAgIkhpZ2ggS2VybmVsIE1hcHBpbmciIH0sCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9mYXVsdC5jIGIvYXJjaC94ODYvbW0vZmF1bHQuYwppbmRleCBmZDdlMTc5Li40NTVmM2ZlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9mYXVsdC5jCisrKyBiL2FyY2gveDg2L21tL2ZhdWx0LmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21taW90cmFjZS5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgpAQCAtNDksMTcgKzUwLDIzIEBACiAjZGVmaW5lIFBGX1JTVkQJCSgxPDwzKQogI2RlZmluZSBQRl9JTlNUUgkoMTw8NCkKIAorc3RhdGljIGlubGluZSBpbnQga21taW9fZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFX0hPT0tTCisJaWYgKHVubGlrZWx5KGlzX2ttbWlvX2FjdGl2ZSgpKSkKKwkJaWYgKGttbWlvX2hhbmRsZXIocmVncywgYWRkcikgPT0gMSkKKwkJCXJldHVybiAtMTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW5saW5lIGludCBub3RpZnlfcGFnZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKICNpZmRlZiBDT05GSUdfS1BST0JFUwogCWludCByZXQgPSAwOwogCiAJLyoga3Byb2JlX3J1bm5pbmcoKSBuZWVkcyBzbXBfcHJvY2Vzc29yX2lkKCkgKi8KLSNpZmRlZiBDT05GSUdfWDg2XzMyCiAJaWYgKCF1c2VyX21vZGVfdm0ocmVncykpIHsKLSNlbHNlCi0JaWYgKCF1c2VyX21vZGUocmVncykpIHsKLSNlbmRpZgogCQlwcmVlbXB0X2Rpc2FibGUoKTsKIAkJaWYgKGtwcm9iZV9ydW5uaW5nKCkgJiYga3Byb2JlX2ZhdWx0X2hhbmRsZXIocmVncywgMTQpKQogCQkJcmV0ID0gMTsKQEAgLTM5NiwxMSArNDAzLDcgQEAKIAkJcHJpbnRrKEtFUk5fQ09OVCAiTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIik7CiAJZWxzZQogCQlwcmludGsoS0VSTl9DT05UICJwYWdpbmcgcmVxdWVzdCIpOwotI2lmZGVmIENPTkZJR19YODZfMzIKLQlwcmludGsoS0VSTl9DT05UICIgYXQgJTA4bHhcbiIsIGFkZHJlc3MpOwotI2Vsc2UKLQlwcmludGsoS0VSTl9DT05UICIgYXQgJTAxNmx4XG4iLCBhZGRyZXNzKTsKLSNlbmRpZgorCXByaW50ayhLRVJOX0NPTlQgIiBhdCAlcFxuIiwgKHZvaWQgKikgYWRkcmVzcyk7CiAJcHJpbnRrKEtFUk5fQUxFUlQgIklQOiIpOwogCXByaW50a19hZGRyZXNzKHJlZ3MtPmlwLCAxKTsKIAlkdW1wX3BhZ2V0YWJsZShhZGRyZXNzKTsKQEAgLTQ5Nyw2ICs1MDAsMTEgQEAKIAl1bnNpZ25lZCBsb25nIHBnZF9wYWRkcjsKIAlwbWRfdCAqcG1kX2s7CiAJcHRlX3QgKnB0ZV9rOworCisJLyogTWFrZSBzdXJlIHdlIGFyZSBpbiB2bWFsbG9jIGFyZWEgKi8KKwlpZiAoIShhZGRyZXNzID49IFZNQUxMT0NfU1RBUlQgJiYgYWRkcmVzcyA8IFZNQUxMT0NfRU5EKSkKKwkJcmV0dXJuIC0xOworCiAJLyoKIAkgKiBTeW5jaHJvbml6ZSB0aGlzIHRhc2sncyB0b3AgbGV2ZWwgcGFnZS10YWJsZQogCSAqIHdpdGggdGhlICdyZWZlcmVuY2UnIHBhZ2UgdGFibGUuCkBAIC02MDEsNiArNjA5LDggQEAKIAogCWlmIChub3RpZnlfcGFnZV9mYXVsdChyZWdzKSkKIAkJcmV0dXJuOworCWlmICh1bmxpa2VseShrbW1pb19mYXVsdChyZWdzLCBhZGRyZXNzKSkpCisJCXJldHVybjsKIAogCS8qCiAJICogV2UgZmF1bHQtaW4ga2VybmVsLXNwYWNlIHZpcnR1YWwgbWVtb3J5IG9uLWRlbWFuZC4gVGhlCkBAIC03OTUsMTQgKzgwNSwxMCBAQAogCQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKHRzaywgU0lHU0VHVikgJiYKIAkJICAgIHByaW50a19yYXRlbGltaXQoKSkgewogCQkJcHJpbnRrKAotI2lmZGVmIENPTkZJR19YODZfMzIKLQkJCSIlcyVzWyVkXTogc2VnZmF1bHQgYXQgJWx4IGlwICUwOGx4IHNwICUwOGx4IGVycm9yICVseCIsCi0jZWxzZQotCQkJIiVzJXNbJWRdOiBzZWdmYXVsdCBhdCAlbHggaXAgJWx4IHNwICVseCBlcnJvciAlbHgiLAotI2VuZGlmCisJCQkiJXMlc1slZF06IHNlZ2ZhdWx0IGF0ICVseCBpcCAlcCBzcCAlcCBlcnJvciAlbHgiLAogCQkJdGFza19waWRfbnIodHNrKSA+IDEgPyBLRVJOX0lORk8gOiBLRVJOX0VNRVJHLAotCQkJdHNrLT5jb21tLCB0YXNrX3BpZF9ucih0c2spLCBhZGRyZXNzLCByZWdzLT5pcCwKLQkJCXJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKKwkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSwgYWRkcmVzcywKKwkJCSh2b2lkICopIHJlZ3MtPmlwLCAodm9pZCAqKSByZWdzLT5zcCwgZXJyb3JfY29kZSk7CiAJCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKIAkJCXByaW50aygiXG4iKTsKIAkJfQpAQCAtOTEwLDE0ICs5MTYsNyBAQAogdm9pZCB2bWFsbG9jX3N5bmNfYWxsKHZvaWQpCiB7CiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotCS8qCi0JICogTm90ZSB0aGF0IHJhY2VzIGluIHRoZSB1cGRhdGVzIG9mIGluc3luYyBhbmQgc3RhcnQgYXJlbid0Ci0JICogcHJvYmxlbWF0aWM6IGluc3luYyBjYW4gb25seSBnZXQgc2V0IGJpdHMgYWRkZWQsIGFuZCB1cGRhdGVzIHRvCi0JICogc3RhcnQgYXJlIG9ubHkgaW1wcm92aW5nIHBlcmZvcm1hbmNlICh3aXRob3V0IGFmZmVjdGluZyBjb3JyZWN0bmVzcwotCSAqIGlmIHVuZG9uZSkuCi0JICovCi0Jc3RhdGljIERFQ0xBUkVfQklUTUFQKGluc3luYywgUFRSU19QRVJfUEdEKTsKLQlzdGF0aWMgdW5zaWduZWQgbG9uZyBzdGFydCA9IFRBU0tfU0laRTsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gVk1BTExPQ19TVEFSVCAmIFBHRElSX01BU0s7CiAJdW5zaWduZWQgbG9uZyBhZGRyZXNzOwogCiAJaWYgKFNIQVJFRF9LRVJORUxfUE1EKQpAQCAtOTI1LDU2ICs5MjQsMzggQEAKIAogCUJVSUxEX0JVR19PTihUQVNLX1NJWkUgJiB+UEdESVJfTUFTSyk7CiAJZm9yIChhZGRyZXNzID0gc3RhcnQ7IGFkZHJlc3MgPj0gVEFTS19TSVpFOyBhZGRyZXNzICs9IFBHRElSX1NJWkUpIHsKLQkJaWYgKCF0ZXN0X2JpdChwZ2RfaW5kZXgoYWRkcmVzcyksIGluc3luYykpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOwotCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgewotCQkJCWlmICghdm1hbGxvY19zeW5jX29uZShwYWdlX2FkZHJlc3MocGFnZSksCi0JCQkJCQkgICAgICBhZGRyZXNzKSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RfbG9jaywgZmxhZ3MpOwotCQkJaWYgKCFwYWdlKQotCQkJCXNldF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQkJaWYgKCF2bWFsbG9jX3N5bmNfb25lKHBhZ2VfYWRkcmVzcyhwYWdlKSwKKwkJCQkJICAgICAgYWRkcmVzcykpCisJCQkJYnJlYWs7CiAJCX0KLQkJaWYgKGFkZHJlc3MgPT0gc3RhcnQgJiYgdGVzdF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpKQotCQkJc3RhcnQgPSBhZGRyZXNzICsgUEdESVJfU0laRTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAl9CiAjZWxzZSAvKiBDT05GSUdfWDg2XzY0ICovCi0JLyoKLQkgKiBOb3RlIHRoYXQgcmFjZXMgaW4gdGhlIHVwZGF0ZXMgb2YgaW5zeW5jIGFuZCBzdGFydCBhcmVuJ3QKLQkgKiBwcm9ibGVtYXRpYzogaW5zeW5jIGNhbiBvbmx5IGdldCBzZXQgYml0cyBhZGRlZCwgYW5kIHVwZGF0ZXMgdG8KLQkgKiBzdGFydCBhcmUgb25seSBpbXByb3ZpbmcgcGVyZm9ybWFuY2UgKHdpdGhvdXQgYWZmZWN0aW5nIGNvcnJlY3RuZXNzCi0JICogaWYgdW5kb25lKS4KLQkgKi8KLQlzdGF0aWMgREVDTEFSRV9CSVRNQVAoaW5zeW5jLCBQVFJTX1BFUl9QR0QpOwotCXN0YXRpYyB1bnNpZ25lZCBsb25nIHN0YXJ0ID0gVk1BTExPQ19TVEFSVCAmIFBHRElSX01BU0s7CisJdW5zaWduZWQgbG9uZyBzdGFydCA9IFZNQUxMT0NfU1RBUlQgJiBQR0RJUl9NQVNLOwogCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKIAogCWZvciAoYWRkcmVzcyA9IHN0YXJ0OyBhZGRyZXNzIDw9IFZNQUxMT0NfRU5EOyBhZGRyZXNzICs9IFBHRElSX1NJWkUpIHsKLQkJaWYgKCF0ZXN0X2JpdChwZ2RfaW5kZXgoYWRkcmVzcyksIGluc3luYykpIHsKLQkJCWNvbnN0IHBnZF90ICpwZ2RfcmVmID0gcGdkX29mZnNldF9rKGFkZHJlc3MpOwotCQkJdW5zaWduZWQgbG9uZyBmbGFnczsKLQkJCXN0cnVjdCBwYWdlICpwYWdlOworCQljb25zdCBwZ2RfdCAqcGdkX3JlZiA9IHBnZF9vZmZzZXRfayhhZGRyZXNzKTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKLQkJCWlmIChwZ2Rfbm9uZSgqcGdkX3JlZikpCi0JCQkJY29udGludWU7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkocGFnZSwgJnBnZF9saXN0LCBscnUpIHsKLQkJCQlwZ2RfdCAqcGdkOwotCQkJCXBnZCA9IChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSArIHBnZF9pbmRleChhZGRyZXNzKTsKLQkJCQlpZiAocGdkX25vbmUoKnBnZCkpCi0JCQkJCXNldF9wZ2QocGdkLCAqcGdkX3JlZik7Ci0JCQkJZWxzZQotCQkJCQlCVUdfT04ocGdkX3BhZ2VfdmFkZHIoKnBnZCkgIT0gcGdkX3BhZ2VfdmFkZHIoKnBnZF9yZWYpKTsKLQkJCX0KLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7Ci0JCQlzZXRfYml0KHBnZF9pbmRleChhZGRyZXNzKSwgaW5zeW5jKTsKKwkJaWYgKHBnZF9ub25lKCpwZ2RfcmVmKSkKKwkJCWNvbnRpbnVlOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQkJcGdkX3QgKnBnZDsKKwkJCXBnZCA9IChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSArIHBnZF9pbmRleChhZGRyZXNzKTsKKwkJCWlmIChwZ2Rfbm9uZSgqcGdkKSkKKwkJCQlzZXRfcGdkKHBnZCwgKnBnZF9yZWYpOworCQkJZWxzZQorCQkJCUJVR19PTihwZ2RfcGFnZV92YWRkcigqcGdkKSAhPSBwZ2RfcGFnZV92YWRkcigqcGdkX3JlZikpOwogCQl9Ci0JCWlmIChhZGRyZXNzID09IHN0YXJ0KQotCQkJc3RhcnQgPSBhZGRyZXNzICsgUEdESVJfU0laRTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAl9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2luaXRfMzIuYyBiL2FyY2gveDg2L21tL2luaXRfMzIuYwppbmRleCBlYzMwZDEwLi45Njg5YTUxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzMyLmMKKysrIGIvYXJjaC94ODYvbW0vaW5pdF8zMi5jCkBAIC01MCw2ICs1MCw3IEBACiAKIHVuc2lnbmVkIGludCBfX1ZNQUxMT0NfUkVTRVJWRSA9IDEyOCA8PCAyMDsKIAordW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbl9tYXBwZWQ7CiB1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwogCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgbW11X2dhdGhlciwgbW11X2dhdGhlcnMpOwpAQCAtNTcsNiArNTgsMjcgQEAKIAogc3RhdGljIG5vaW5saW5lIGludCBkb190ZXN0X3dwX2JpdCh2b2lkKTsKIAorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIHRhYmxlX3N0YXJ0Oworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0ZGF0YSB0YWJsZV9lbmQ7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXRkYXRhIHRhYmxlX3RvcDsKKworc3RhdGljIGludCBfX2luaXRkYXRhIGFmdGVyX2luaXRfYm9vdG1lbTsKKworc3RhdGljIF9faW5pdCB2b2lkICphbGxvY19sb3dfcGFnZSh1bnNpZ25lZCBsb25nICpwaHlzKQoreworCXVuc2lnbmVkIGxvbmcgcGZuID0gdGFibGVfZW5kKys7CisJdm9pZCAqYWRyOworCisJaWYgKHBmbiA+PSB0YWJsZV90b3ApCisJCXBhbmljKCJhbGxvY19sb3dfcGFnZTogcmFuIG91dCBvZiBtZW1vcnkiKTsKKworCWFkciA9IF9fdmEocGZuICogUEFHRV9TSVpFKTsKKwltZW1zZXQoYWRyLCAwLCBQQUdFX1NJWkUpOworCSpwaHlzICA9IHBmbiAqIFBBR0VfU0laRTsKKwlyZXR1cm4gYWRyOworfQorCiAvKgogICogQ3JlYXRlcyBhIG1pZGRsZSBwYWdlIHRhYmxlIGFuZCBwdXRzIGEgcG9pbnRlciB0byBpdCBpbiB0aGUKICAqIGdpdmVuIGdsb2JhbCBkaXJlY3RvcnkgZW50cnkuIFRoaXMgb25seSByZXR1cm5zIHRoZSBnZCBlbnRyeQpAQCAtNjgsOSArOTAsMTIgQEAKIAlwbWRfdCAqcG1kX3RhYmxlOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwl1bnNpZ25lZCBsb25nIHBoeXM7CiAJaWYgKCEocGdkX3ZhbCgqcGdkKSAmIF9QQUdFX1BSRVNFTlQpKSB7Ci0JCXBtZF90YWJsZSA9IChwbWRfdCAqKSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCisJCWlmIChhZnRlcl9pbml0X2Jvb3RtZW0pCisJCQlwbWRfdGFibGUgPSAocG1kX3QgKilhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOworCQllbHNlCisJCQlwbWRfdGFibGUgPSAocG1kX3QgKilhbGxvY19sb3dfcGFnZSgmcGh5cyk7CiAJCXBhcmF2aXJ0X2FsbG9jX3BtZCgmaW5pdF9tbSwgX19wYShwbWRfdGFibGUpID4+IFBBR0VfU0hJRlQpOwogCQlzZXRfcGdkKHBnZCwgX19wZ2QoX19wYShwbWRfdGFibGUpIHwgX1BBR0VfUFJFU0VOVCkpOwogCQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7CkBAIC05MiwxMiArMTE3LDE2IEBACiAJaWYgKCEocG1kX3ZhbCgqcG1kKSAmIF9QQUdFX1BSRVNFTlQpKSB7CiAJCXB0ZV90ICpwYWdlX3RhYmxlID0gTlVMTDsKIAorCQlpZiAoYWZ0ZXJfaW5pdF9ib290bWVtKSB7CiAjaWZkZWYgQ09ORklHX0RFQlVHX1BBR0VBTExPQwotCQlwYWdlX3RhYmxlID0gKHB0ZV90ICopIGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwkJCXBhZ2VfdGFibGUgPSAocHRlX3QgKikgYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwogI2VuZGlmCi0JCWlmICghcGFnZV90YWJsZSkgewotCQkJcGFnZV90YWJsZSA9CisJCQlpZiAoIXBhZ2VfdGFibGUpCisJCQkJcGFnZV90YWJsZSA9CiAJCQkJKHB0ZV90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKKwkJfSBlbHNlIHsKKwkJCXVuc2lnbmVkIGxvbmcgcGh5czsKKwkJCXBhZ2VfdGFibGUgPSAocHRlX3QgKilhbGxvY19sb3dfcGFnZSgmcGh5cyk7CiAJCX0KIAogCQlwYXJhdmlydF9hbGxvY19wdGUoJmluaXRfbW0sIF9fcGEocGFnZV90YWJsZSkgPj4gUEFHRV9TSElGVCk7CkBAIC0xNTUsMzggKzE4NCw0NCBAQAogICogb2YgbWF4X2xvd19wZm4gcGFnZXMsIGJ5IGNyZWF0aW5nIHBhZ2UgdGFibGVzIHN0YXJ0aW5nIGZyb20gYWRkcmVzcwogICogUEFHRV9PRkZTRVQ6CiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF90ICpwZ2RfYmFzZSkKK3N0YXRpYyB2b2lkIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF90ICpwZ2RfYmFzZSwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuLAorCQkJCQkJaW50IHVzZV9wc2UpCiB7CiAJaW50IHBnZF9pZHgsIHBtZF9pZHgsIHB0ZV9vZnM7CiAJdW5zaWduZWQgbG9uZyBwZm47CiAJcGdkX3QgKnBnZDsKIAlwbWRfdCAqcG1kOwogCXB0ZV90ICpwdGU7CisJdW5zaWduZWQgcGFnZXNfMm0gPSAwLCBwYWdlc180ayA9IDA7CiAKLQlwZ2RfaWR4ID0gcGdkX2luZGV4KFBBR0VfT0ZGU0VUKTsKKwlpZiAoIWNwdV9oYXNfcHNlKQorCQl1c2VfcHNlID0gMDsKKworCXBmbiA9IHN0YXJ0X3BmbjsKKwlwZ2RfaWR4ID0gcGdkX2luZGV4KChwZm48PFBBR0VfU0hJRlQpICsgUEFHRV9PRkZTRVQpOwogCXBnZCA9IHBnZF9iYXNlICsgcGdkX2lkeDsKLQlwZm4gPSAwOwotCiAJZm9yICg7IHBnZF9pZHggPCBQVFJTX1BFUl9QR0Q7IHBnZCsrLCBwZ2RfaWR4KyspIHsKIAkJcG1kID0gb25lX21kX3RhYmxlX2luaXQocGdkKTsKLQkJaWYgKHBmbiA+PSBtYXhfbG93X3BmbikKLQkJCWNvbnRpbnVlOwogCi0JCWZvciAocG1kX2lkeCA9IDA7Ci0JCSAgICAgcG1kX2lkeCA8IFBUUlNfUEVSX1BNRCAmJiBwZm4gPCBtYXhfbG93X3BmbjsKKwkJaWYgKHBmbiA+PSBlbmRfcGZuKQorCQkJY29udGludWU7CisjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwkJcG1kX2lkeCA9IHBtZF9pbmRleCgocGZuPDxQQUdFX1NISUZUKSArIFBBR0VfT0ZGU0VUKTsKKwkJcG1kICs9IHBtZF9pZHg7CisjZWxzZQorCQlwbWRfaWR4ID0gMDsKKyNlbmRpZgorCQlmb3IgKDsgcG1kX2lkeCA8IFBUUlNfUEVSX1BNRCAmJiBwZm4gPCBlbmRfcGZuOwogCQkgICAgIHBtZCsrLCBwbWRfaWR4KyspIHsKIAkJCXVuc2lnbmVkIGludCBhZGRyID0gcGZuICogUEFHRV9TSVpFICsgUEFHRV9PRkZTRVQ7CiAKIAkJCS8qCiAJCQkgKiBNYXAgd2l0aCBiaWcgcGFnZXMgaWYgcG9zc2libGUsIG90aGVyd2lzZQogCQkJICogY3JlYXRlIG5vcm1hbCBwYWdlIHRhYmxlczoKLQkJCSAqCi0JCQkgKiBEb24ndCB1c2UgYSBsYXJnZSBwYWdlIGZvciB0aGUgZmlyc3QgMi80TUIgb2YgbWVtb3J5Ci0JCQkgKiBiZWNhdXNlIHRoZXJlIGFyZSBvZnRlbiBmaXhlZCBzaXplIE1UUlJzIGluIHRoZXJlCi0JCQkgKiBhbmQgb3ZlcmxhcHBpbmcgTVRSUnMgaW50byBsYXJnZSBwYWdlcyBjYW4gY2F1c2UKLQkJCSAqIHNsb3dkb3ducy4KIAkJCSAqLwotCQkJaWYgKGNwdV9oYXNfcHNlICYmICEocGdkX2lkeCA9PSAwICYmIHBtZF9pZHggPT0gMCkpIHsKKwkJCWlmICh1c2VfcHNlKSB7CiAJCQkJdW5zaWduZWQgaW50IGFkZHIyOwogCQkJCXBncHJvdF90IHByb3QgPSBQQUdFX0tFUk5FTF9MQVJHRTsKIApAQCAtMTk3LDM0ICsyMzIsMzAgQEAKIAkJCQkgICAgaXNfa2VybmVsX3RleHQoYWRkcjIpKQogCQkJCQlwcm90ID0gUEFHRV9LRVJORUxfTEFSR0VfRVhFQzsKIAorCQkJCXBhZ2VzXzJtKys7CiAJCQkJc2V0X3BtZChwbWQsIHBmbl9wbWQocGZuLCBwcm90KSk7CiAKIAkJCQlwZm4gKz0gUFRSU19QRVJfUFRFOwotCQkJCW1heF9wZm5fbWFwcGVkID0gcGZuOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJcHRlID0gb25lX3BhZ2VfdGFibGVfaW5pdChwbWQpOwogCi0JCQlmb3IgKHB0ZV9vZnMgPSAwOwotCQkJICAgICBwdGVfb2ZzIDwgUFRSU19QRVJfUFRFICYmIHBmbiA8IG1heF9sb3dfcGZuOworCQkJcHRlX29mcyA9IHB0ZV9pbmRleCgocGZuPDxQQUdFX1NISUZUKSArIFBBR0VfT0ZGU0VUKTsKKwkJCXB0ZSArPSBwdGVfb2ZzOworCQkJZm9yICg7IHB0ZV9vZnMgPCBQVFJTX1BFUl9QVEUgJiYgcGZuIDwgZW5kX3BmbjsKIAkJCSAgICAgcHRlKyssIHBmbisrLCBwdGVfb2ZzKyssIGFkZHIgKz0gUEFHRV9TSVpFKSB7CiAJCQkJcGdwcm90X3QgcHJvdCA9IFBBR0VfS0VSTkVMOwogCiAJCQkJaWYgKGlzX2tlcm5lbF90ZXh0KGFkZHIpKQogCQkJCQlwcm90ID0gUEFHRV9LRVJORUxfRVhFQzsKIAorCQkJCXBhZ2VzXzRrKys7CiAJCQkJc2V0X3B0ZShwdGUsIHBmbl9wdGUocGZuLCBwcm90KSk7CiAJCQl9Ci0JCQltYXhfcGZuX21hcHBlZCA9IHBmbjsKIAkJfQogCX0KLX0KLQotc3RhdGljIGlubGluZSBpbnQgcGFnZV9raWxsc19wcHJvKHVuc2lnbmVkIGxvbmcgcGFnZW5yKQotewotCWlmIChwYWdlbnIgPj0gMHg3MDAwMCAmJiBwYWdlbnIgPD0gMHg3MDAzRikKLQkJcmV0dXJuIDE7Ci0JcmV0dXJuIDA7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMk0sIHBhZ2VzXzJtKTsKKwl1cGRhdGVfcGFnZV9jb3VudChQR19MRVZFTF80SywgcGFnZXNfNGspOwogfQogCiAvKgpAQCAtMjg3LDI5ICszMTgsNjIgQEAKIAlwa21hcF9wYWdlX3RhYmxlID0gcHRlOwogfQogCi12b2lkIF9faW5pdCBhZGRfb25lX2hpZ2hwYWdlX2luaXQoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBwZm4sIGludCBiYWRfcHBybykKK3N0YXRpYyB2b2lkIF9faW5pdCBhZGRfb25lX2hpZ2hwYWdlX2luaXQoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBwZm4pCiB7Ci0JaWYgKHBhZ2VfaXNfcmFtKHBmbikgJiYgIShiYWRfcHBybyAmJiBwYWdlX2tpbGxzX3Bwcm8ocGZuKSkpIHsKLQkJQ2xlYXJQYWdlUmVzZXJ2ZWQocGFnZSk7Ci0JCWluaXRfcGFnZV9jb3VudChwYWdlKTsKLQkJX19mcmVlX3BhZ2UocGFnZSk7Ci0JCXRvdGFsaGlnaF9wYWdlcysrOwotCX0gZWxzZQotCQlTZXRQYWdlUmVzZXJ2ZWQocGFnZSk7CisJQ2xlYXJQYWdlUmVzZXJ2ZWQocGFnZSk7CisJaW5pdF9wYWdlX2NvdW50KHBhZ2UpOworCV9fZnJlZV9wYWdlKHBhZ2UpOworCXRvdGFsaGlnaF9wYWdlcysrOworfQorCitzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhIHsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbjsKKwl1bnNpZ25lZCBsb25nIGVuZF9wZm47Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBhZGRfaGlnaHBhZ2VzX3dvcmtfZm4odW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJCSB1bnNpZ25lZCBsb25nIGVuZF9wZm4sIHZvaWQgKmRhdGF4KQoreworCWludCBub2RlX3BmbjsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwl1bnNpZ25lZCBsb25nIGZpbmFsX3N0YXJ0X3BmbiwgZmluYWxfZW5kX3BmbjsKKwlzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhICopZGF0YXg7CisKKwlmaW5hbF9zdGFydF9wZm4gPSBtYXgoc3RhcnRfcGZuLCBkYXRhLT5zdGFydF9wZm4pOworCWZpbmFsX2VuZF9wZm4gPSBtaW4oZW5kX3BmbiwgZGF0YS0+ZW5kX3Bmbik7CisJaWYgKGZpbmFsX3N0YXJ0X3BmbiA+PSBmaW5hbF9lbmRfcGZuKQorCQlyZXR1cm4gMDsKKworCWZvciAobm9kZV9wZm4gPSBmaW5hbF9zdGFydF9wZm47IG5vZGVfcGZuIDwgZmluYWxfZW5kX3BmbjsKKwkgICAgIG5vZGVfcGZuKyspIHsKKwkJaWYgKCFwZm5fdmFsaWQobm9kZV9wZm4pKQorCQkJY29udGludWU7CisJCXBhZ2UgPSBwZm5fdG9fcGFnZShub2RlX3Bmbik7CisJCWFkZF9vbmVfaGlnaHBhZ2VfaW5pdChwYWdlLCBub2RlX3Bmbik7CisJfQorCisJcmV0dXJuIDA7CisKK30KKwordm9pZCBfX2luaXQgYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisJc3RydWN0IGFkZF9oaWdocGFnZXNfZGF0YSBkYXRhOworCisJZGF0YS5zdGFydF9wZm4gPSBzdGFydF9wZm47CisJZGF0YS5lbmRfcGZuID0gZW5kX3BmbjsKKworCXdvcmtfd2l0aF9hY3RpdmVfcmVnaW9ucyhuaWQsIGFkZF9oaWdocGFnZXNfd29ya19mbiwgJmRhdGEpOwogfQogCiAjaWZuZGVmIENPTkZJR19OVU1BCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdChpbnQgYmFkX3Bwcm8pCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdCh2b2lkKQogewotCWludCBwZm47CisJYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKDAsIGhpZ2hzdGFydF9wZm4sIGhpZ2hlbmRfcGZuKTsKIAotCWZvciAocGZuID0gaGlnaHN0YXJ0X3BmbjsgcGZuIDwgaGlnaGVuZF9wZm47IHBmbisrKSB7Ci0JCS8qCi0JCSAqIEhvbGVzIHVuZGVyIHNwYXJzZW1lbSBtaWdodCBub3QgaGF2ZSBubyBtZW1fbWFwW106Ci0JCSAqLwotCQlpZiAocGZuX3ZhbGlkKHBmbikpCi0JCQlhZGRfb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZuLCBiYWRfcHBybyk7Ci0JfQogCXRvdGFscmFtX3BhZ2VzICs9IHRvdGFsaGlnaF9wYWdlczsKIH0KICNlbmRpZiAvKiAhQ09ORklHX05VTUEgKi8KQEAgLTMxNywxNCArMzgxLDkgQEAKICNlbHNlCiAjIGRlZmluZSBrbWFwX2luaXQoKQkJCQlkbyB7IH0gd2hpbGUgKDApCiAjIGRlZmluZSBwZXJtYW5lbnRfa21hcHNfaW5pdChwZ2RfYmFzZSkJCWRvIHsgfSB3aGlsZSAoMCkKLSMgZGVmaW5lIHNldF9oaWdobWVtX3BhZ2VzX2luaXQoYmFkX3Bwcm8pCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIHNldF9oaWdobWVtX3BhZ2VzX2luaXQoKQlkbyB7IH0gd2hpbGUgKDApCiAjZW5kaWYgLyogQ09ORklHX0hJR0hNRU0gKi8KIAotcHRldmFsX3QgX19QQUdFX0tFUk5FTCA9IF9QQUdFX0tFUk5FTDsKLUVYUE9SVF9TWU1CT0woX19QQUdFX0tFUk5FTCk7Ci0KLXB0ZXZhbF90IF9fUEFHRV9LRVJORUxfRVhFQyA9IF9QQUdFX0tFUk5FTF9FWEVDOwotCiB2b2lkIF9faW5pdCBuYXRpdmVfcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF90ICpiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgcGZuLCB2YTsKQEAgLTM4MCwyNyArNDM5LDEwIEBACiAgKiBiZSBwYXJ0aWFsbHkgcG9wdWxhdGVkLCBhbmQgc28gaXQgYXZvaWRzIHN0b21waW5nIG9uIGFueSBleGlzdGluZwogICogbWFwcGluZ3MuCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBwYWdldGFibGVfaW5pdCh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcGFnZV90YWJsZV9yYW5nZV9pbml0KHBnZF90ICpwZ2RfYmFzZSkKIHsKLQlwZ2RfdCAqcGdkX2Jhc2UgPSBzd2FwcGVyX3BnX2RpcjsKIAl1bnNpZ25lZCBsb25nIHZhZGRyLCBlbmQ7CiAKLQlwYXJhdmlydF9wYWdldGFibGVfc2V0dXBfc3RhcnQocGdkX2Jhc2UpOwotCi0JLyogRW5hYmxlIFBTRSBpZiBhdmFpbGFibGUgKi8KLQlpZiAoY3B1X2hhc19wc2UpCi0JCXNldF9pbl9jcjQoWDg2X0NSNF9QU0UpOwotCi0JLyogRW5hYmxlIFBHRSBpZiBhdmFpbGFibGUgKi8KLQlpZiAoY3B1X2hhc19wZ2UpIHsKLQkJc2V0X2luX2NyNChYODZfQ1I0X1BHRSk7Ci0JCV9fUEFHRV9LRVJORUwgfD0gX1BBR0VfR0xPQkFMOwotCQlfX1BBR0VfS0VSTkVMX0VYRUMgfD0gX1BBR0VfR0xPQkFMOwotCX0KLQotCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UpOwotCXJlbWFwX251bWFfa3ZhKCk7Ci0KIAkvKgogCSAqIEZpeGVkIG1hcHBpbmdzLCBvbmx5IHRoZSBwYWdlIHRhYmxlIHN0cnVjdHVyZSBoYXMgdG8gYmUKIAkgKiBjcmVhdGVkIC0gbWFwcGluZ3Mgd2lsbCBiZSBzZXQgYnkgc2V0X2ZpeG1hcCgpOgpAQCAtNDEwLDYgKzQ1MiwxMyBAQAogCWVuZCA9IChGSVhBRERSX1RPUCArIFBNRF9TSVpFIC0gMSkgJiBQTURfTUFTSzsKIAlwYWdlX3RhYmxlX3JhbmdlX2luaXQodmFkZHIsIGVuZCwgcGdkX2Jhc2UpOwogCWVhcmx5X2lvcmVtYXBfcmVzZXQoKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHBhZ2V0YWJsZV9pbml0KHZvaWQpCit7CisJcGdkX3QgKnBnZF9iYXNlID0gc3dhcHBlcl9wZ19kaXI7CisKKwlwYXJhdmlydF9wYWdldGFibGVfc2V0dXBfc3RhcnQocGdkX2Jhc2UpOwogCiAJcGVybWFuZW50X2ttYXBzX2luaXQocGdkX2Jhc2UpOwogCkBAIC00NTYsNyArNTA1LDcgQEAKIAogaW50IG54X2VuYWJsZWQ7CiAKLXB0ZXZhbF90IF9fc3VwcG9ydGVkX3B0ZV9tYXNrIF9fcmVhZF9tb3N0bHkgPSB+X1BBR0VfTlg7CitwdGV2YWxfdCBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfihfUEFHRV9OWCB8IF9QQUdFX0dMT0JBTCk7CiBFWFBPUlRfU1lNQk9MX0dQTChfX3N1cHBvcnRlZF9wdGVfbWFzayk7CiAKICNpZmRlZiBDT05GSUdfWDg2X1BBRQpAQCAtNTA5LDYgKzU1OCwyOTYgQEAKIH0KICNlbmRpZgogCisvKiB1c2VyLWRlZmluZWQgaGlnaG1lbSBzaXplICovCitzdGF0aWMgdW5zaWduZWQgaW50IGhpZ2htZW1fcGFnZXMgPSAtMTsKKworLyoKKyAqIGhpZ2htZW09c2l6ZSBmb3JjZXMgaGlnaG1lbSB0byBiZSBleGFjdGx5ICdzaXplJyBieXRlcy4KKyAqIFRoaXMgd29ya3MgZXZlbiBvbiBib3hlcyB0aGF0IGhhdmUgbm8gaGlnaG1lbSBvdGhlcndpc2UuCisgKiBUaGlzIGFsc28gd29ya3MgdG8gcmVkdWNlIGhpZ2htZW0gc2l6ZSBvbiBiaWdnZXIgYm94ZXMuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX2hpZ2htZW0oY2hhciAqYXJnKQoreworCWlmICghYXJnKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWhpZ2htZW1fcGFnZXMgPSBtZW1wYXJzZShhcmcsICZhcmcpID4+IFBBR0VfU0hJRlQ7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiaGlnaG1lbSIsIHBhcnNlX2hpZ2htZW0pOworCisvKgorICogRGV0ZXJtaW5lIGxvdyBhbmQgaGlnaCBtZW1vcnkgcmFuZ2VzOgorICovCit2b2lkIF9faW5pdCBmaW5kX2xvd19wZm5fcmFuZ2Uodm9pZCkKK3sKKwkvKiBpdCBjb3VsZCB1cGRhdGUgbWF4X3BmbiAqLworCisJLyogbWF4X2xvd19wZm4gaXMgMCwgd2UgYWxyZWFkeSBoYXZlIGVhcmx5X3JlcyBzdXBwb3J0ICovCisKKwltYXhfbG93X3BmbiA9IG1heF9wZm47CisJaWYgKG1heF9sb3dfcGZuID4gTUFYTUVNX1BGTikgeworCQlpZiAoaGlnaG1lbV9wYWdlcyA9PSAtMSkKKwkJCWhpZ2htZW1fcGFnZXMgPSBtYXhfcGZuIC0gTUFYTUVNX1BGTjsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOIDwgbWF4X3BmbikKKwkJCW1heF9wZm4gPSBNQVhNRU1fUEZOICsgaGlnaG1lbV9wYWdlczsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOID4gbWF4X3BmbikgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAib25seSAlbHVNQiBoaWdobWVtIHBhZ2VzICIKKwkJCQkiYXZhaWxhYmxlLCBpZ25vcmluZyBoaWdobWVtIHNpemUgb2YgJXVNQi5cbiIsCisJCQkJcGFnZXNfdG9fbWIobWF4X3BmbiAtIE1BWE1FTV9QRk4pLAorCQkJCXBhZ2VzX3RvX21iKGhpZ2htZW1fcGFnZXMpKTsKKwkJCWhpZ2htZW1fcGFnZXMgPSAwOworCQl9CisJCW1heF9sb3dfcGZuID0gTUFYTUVNX1BGTjsKKyNpZm5kZWYgQ09ORklHX0hJR0hNRU0KKwkJLyogTWF4aW11bSBtZW1vcnkgdXNhYmxlIGlzIHdoYXQgaXMgZGlyZWN0bHkgYWRkcmVzc2FibGUgKi8KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiV2FybmluZyBvbmx5ICVsZE1CIHdpbGwgYmUgdXNlZC5cbiIsCisJCQkJCU1BWE1FTT4+MjApOworCQlpZiAobWF4X3BmbiA+IE1BWF9OT05QQUVfUEZOKQorCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJCSAiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOworCQllbHNlCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJVc2UgYSBISUdITUVNIGVuYWJsZWQga2VybmVsLlxuIik7CisJCW1heF9wZm4gPSBNQVhNRU1fUEZOOworI2Vsc2UgLyogIUNPTkZJR19ISUdITUVNICovCisjaWZuZGVmIENPTkZJR19ISUdITUVNNjRHCisJCWlmIChtYXhfcGZuID4gTUFYX05PTlBBRV9QRk4pIHsKKwkJCW1heF9wZm4gPSBNQVhfTk9OUEFFX1BGTjsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldhcm5pbmcgb25seSA0R0Igd2lsbCBiZSB1c2VkLiIKKwkJCQkiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOworCQl9CisjZW5kaWYgLyogIUNPTkZJR19ISUdITUVNNjRHICovCisjZW5kaWYgLyogIUNPTkZJR19ISUdITUVNICovCisJfSBlbHNlIHsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgPT0gLTEpCisJCQloaWdobWVtX3BhZ2VzID0gMDsKKyNpZmRlZiBDT05GSUdfSElHSE1FTQorCQlpZiAoaGlnaG1lbV9wYWdlcyA+PSBtYXhfcGZuKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImhpZ2htZW0gc2l6ZSBzcGVjaWZpZWQgKCV1TUIpIGlzICIKKwkJCQkiYmlnZ2VyIHRoYW4gcGFnZXMgYXZhaWxhYmxlICglbHVNQikhLlxuIiwKKwkJCQlwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSwKKwkJCQlwYWdlc190b19tYihtYXhfcGZuKSk7CisJCQloaWdobWVtX3BhZ2VzID0gMDsKKwkJfQorCQlpZiAoaGlnaG1lbV9wYWdlcykgeworCQkJaWYgKG1heF9sb3dfcGZuIC0gaGlnaG1lbV9wYWdlcyA8CisJCQkgICAgNjQqMTAyNCoxMDI0L1BBR0VfU0laRSl7CisJCQkJcHJpbnRrKEtFUk5fRVJSICJoaWdobWVtIHNpemUgJXVNQiByZXN1bHRzIGluICIKKwkJCQkic21hbGxlciB0aGFuIDY0TUIgbG93bWVtLCBpZ25vcmluZyBpdC5cbiIKKwkJCQkJLCBwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSk7CisJCQkJaGlnaG1lbV9wYWdlcyA9IDA7CisJCQl9CisJCQltYXhfbG93X3BmbiAtPSBoaWdobWVtX3BhZ2VzOworCQl9CisjZWxzZQorCQlpZiAoaGlnaG1lbV9wYWdlcykKKwkJCXByaW50ayhLRVJOX0VSUiAiaWdub3JpbmcgaGlnaG1lbSBzaXplIG9uIG5vbi1oaWdobWVtIgorCQkJCQkiIGtlcm5lbCFcbiIpOworI2VuZGlmCisJfQorfQorCisjaWZuZGVmIENPTkZJR19ORUVEX01VTFRJUExFX05PREVTCit2b2lkIF9faW5pdCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKwloaWdoc3RhcnRfcGZuID0gaGlnaGVuZF9wZm4gPSBtYXhfcGZuOworCWlmIChtYXhfcGZuID4gbWF4X2xvd19wZm4pCisJCWhpZ2hzdGFydF9wZm4gPSBtYXhfbG93X3BmbjsKKwltZW1vcnlfcHJlc2VudCgwLCAwLCBoaWdoZW5kX3Bmbik7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCBoaWdoZW5kX3Bmbik7CisJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBISUdITUVNIGF2YWlsYWJsZS5cbiIsCisJCXBhZ2VzX3RvX21iKGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbikpOworCW51bV9waHlzcGFnZXMgPSBoaWdoZW5kX3BmbjsKKwloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEoaGlnaHN0YXJ0X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKKyNlbHNlCisJbWVtb3J5X3ByZXNlbnQoMCwgMCwgbWF4X2xvd19wZm4pOworCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgbWF4X2xvd19wZm4pOworCW51bV9waHlzcGFnZXMgPSBtYXhfbG93X3BmbjsKKwloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEobWF4X2xvd19wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfRkxBVE1FTQorCW1heF9tYXBuciA9IG51bV9waHlzcGFnZXM7CisjZW5kaWYKKwlwcmludGsoS0VSTl9OT1RJQ0UgIiVsZE1CIExPV01FTSBhdmFpbGFibGUuXG4iLAorCQkJcGFnZXNfdG9fbWIobWF4X2xvd19wZm4pKTsKKworCXNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKCk7Cit9CisjZW5kaWYgLyogIUNPTkZJR19ORUVEX01VTFRJUExFX05PREVTICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIG1heF96b25lX3BmbnNbTUFYX05SX1pPTkVTXTsKKwltZW1zZXQobWF4X3pvbmVfcGZucywgMCwgc2l6ZW9mKG1heF96b25lX3BmbnMpKTsKKwltYXhfem9uZV9wZm5zW1pPTkVfRE1BXSA9CisJCXZpcnRfdG9fcGh5cygoY2hhciAqKU1BWF9ETUFfQUREUkVTUykgPj4gUEFHRV9TSElGVDsKKwltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IG1heF9sb3dfcGZuOworI2lmZGVmIENPTkZJR19ISUdITUVNCisJbWF4X3pvbmVfcGZuc1taT05FX0hJR0hNRU1dID0gaGlnaGVuZF9wZm47CisjZW5kaWYKKworCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOworfQorCit2b2lkIF9faW5pdCBzZXR1cF9ib290bWVtX2FsbG9jYXRvcih2b2lkKQoreworCWludCBpOworCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zaXplLCBib290bWFwOworCS8qCisJICogSW5pdGlhbGl6ZSB0aGUgYm9vdC10aW1lIGFsbG9jYXRvciAod2l0aCBsb3cgbWVtb3J5IG9ubHkpOgorCSAqLworCWJvb3RtYXBfc2l6ZSA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhtYXhfbG93X3Bmbik8PFBBR0VfU0hJRlQ7CisJYm9vdG1hcCA9IGZpbmRfZTgyMF9hcmVhKG1pbl9sb3dfcGZuPDxQQUdFX1NISUZULAorCQkJCSBtYXhfcGZuX21hcHBlZDw8UEFHRV9TSElGVCwgYm9vdG1hcF9zaXplLAorCQkJCSBQQUdFX1NJWkUpOworCWlmIChib290bWFwID09IC0xTCkKKwkJcGFuaWMoIkNhbm5vdCBmaW5kIGJvb3RtZW0gbWFwIG9mIHNpemUgJWxkXG4iLCBib290bWFwX3NpemUpOworCXJlc2VydmVfZWFybHkoYm9vdG1hcCwgYm9vdG1hcCArIGJvb3RtYXBfc2l6ZSwgIkJPT1RNQVAiKTsKKworCS8qIGRvbid0IHRvdWNoIG1pbl9sb3dfcGZuICovCisJYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtX25vZGUoTk9ERV9EQVRBKDApLCBib290bWFwID4+IFBBR0VfU0hJRlQsCisJCQkJCSBtaW5fbG93X3BmbiwgbWF4X2xvd19wZm4pOworCXByaW50ayhLRVJOX0lORk8gIiAgbWFwcGVkIGxvdyByYW06IDAgLSAlMDhseFxuIiwKKwkJIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZUKTsKKwlwcmludGsoS0VSTl9JTkZPICIgIGxvdyByYW06ICUwOGx4IC0gJTA4bHhcbiIsCisJCSBtaW5fbG93X3Bmbjw8UEFHRV9TSElGVCwgbWF4X2xvd19wZm48PFBBR0VfU0hJRlQpOworCXByaW50ayhLRVJOX0lORk8gIiAgYm9vdG1hcCAlMDhseCAtICUwOGx4XG4iLAorCQkgYm9vdG1hcCwgYm9vdG1hcCArIGJvb3RtYXBfc2l6ZSk7CisJZm9yX2VhY2hfb25saW5lX25vZGUoaSkKKwkJZnJlZV9ib290bWVtX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaSwgbWF4X2xvd19wZm4pOworCWVhcmx5X3Jlc190b19ib290bWVtKDAsIG1heF9sb3dfcGZuPDxQQUdFX1NISUZUKTsKKworCWFmdGVyX2luaXRfYm9vdG1lbSA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgcHVkcywgcG1kcywgcHRlcywgdGFibGVzLCBzdGFydDsKKworCXB1ZHMgPSAoZW5kICsgUFVEX1NJWkUgLSAxKSA+PiBQVURfU0hJRlQ7CisJdGFibGVzID0gUEFHRV9BTElHTihwdWRzICogc2l6ZW9mKHB1ZF90KSk7CisKKwlwbWRzID0gKGVuZCArIFBNRF9TSVpFIC0gMSkgPj4gUE1EX1NISUZUOworCXRhYmxlcyArPSBQQUdFX0FMSUdOKHBtZHMgKiBzaXplb2YocG1kX3QpKTsKKworCWlmIChjcHVfaGFzX3BzZSkgeworCQl1bnNpZ25lZCBsb25nIGV4dHJhOworCisJCWV4dHJhID0gZW5kIC0gKChlbmQ+PlBNRF9TSElGVCkgPDwgUE1EX1NISUZUKTsKKwkJZXh0cmEgKz0gUE1EX1NJWkU7CisJCXB0ZXMgPSAoZXh0cmEgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOworCX0gZWxzZQorCQlwdGVzID0gKGVuZCArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CisKKwl0YWJsZXMgKz0gUEFHRV9BTElHTihwdGVzICogc2l6ZW9mKHB0ZV90KSk7CisKKwkvKiBmb3IgZml4bWFwICovCisJdGFibGVzICs9IFBBR0VfU0laRSAqIDI7CisKKwkvKgorCSAqIFJFRC1QRU4gcHV0dGluZyBwYWdlIHRhYmxlcyBvbmx5IG9uIG5vZGUgMCBjb3VsZAorCSAqIGNhdXNlIGEgaG90c3BvdCBhbmQgZmlsbCB1cCBaT05FX0RNQS4gVGhlIHBhZ2UgdGFibGVzCisJICogbmVlZCByb3VnaGx5IDAuNUtCIHBlciBHQi4KKwkgKi8KKwlzdGFydCA9IDB4NzAwMDsKKwl0YWJsZV9zdGFydCA9IGZpbmRfZTgyMF9hcmVhKHN0YXJ0LCBtYXhfcGZuX21hcHBlZDw8UEFHRV9TSElGVCwKKwkJCQkJdGFibGVzLCBQQUdFX1NJWkUpOworCWlmICh0YWJsZV9zdGFydCA9PSAtMVVMKQorCQlwYW5pYygiQ2Fubm90IGZpbmQgc3BhY2UgZm9yIHRoZSBrZXJuZWwgcGFnZSB0YWJsZXMiKTsKKworCXRhYmxlX3N0YXJ0ID4+PSBQQUdFX1NISUZUOworCXRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0OworCXRhYmxlX3RvcCA9IHRhYmxlX3N0YXJ0ICsgKHRhYmxlcz4+UEFHRV9TSElGVCk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAlbHgtJWx4XG4iLAorCQllbmQsIHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCisJCSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZUKSArIHRhYmxlcyk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgX19pbml0X3JlZm9rIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgZW5kKQoreworCXBnZF90ICpwZ2RfYmFzZSA9IHN3YXBwZXJfcGdfZGlyOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOworCXVuc2lnbmVkIGxvbmcgYmlnX3BhZ2Vfc3RhcnQ7CisKKwkvKgorCSAqIEZpbmQgc3BhY2UgZm9yIHRoZSBrZXJuZWwgZGlyZWN0IG1hcHBpbmcgdGFibGVzLgorCSAqLworCWlmICghYWZ0ZXJfaW5pdF9ib290bWVtKQorCQlmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKGVuZCk7CisKKyNpZmRlZiBDT05GSUdfWDg2X1BBRQorCXNldF9ueCgpOworCWlmIChueF9lbmFibGVkKQorCQlwcmludGsoS0VSTl9JTkZPICJOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmVcbiIpOworI2VuZGlmCisKKwkvKiBFbmFibGUgUFNFIGlmIGF2YWlsYWJsZSAqLworCWlmIChjcHVfaGFzX3BzZSkKKwkJc2V0X2luX2NyNChYODZfQ1I0X1BTRSk7CisKKwkvKiBFbmFibGUgUEdFIGlmIGF2YWlsYWJsZSAqLworCWlmIChjcHVfaGFzX3BnZSkgeworCQlzZXRfaW5fY3I0KFg4Nl9DUjRfUEdFKTsKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgfD0gX1BBR0VfR0xPQkFMOworCX0KKworCS8qCisJICogRG9uJ3QgdXNlIGEgbGFyZ2UgcGFnZSBmb3IgdGhlIGZpcnN0IDIvNE1CIG9mIG1lbW9yeQorCSAqIGJlY2F1c2UgdGhlcmUgYXJlIG9mdGVuIGZpeGVkIHNpemUgTVRSUnMgaW4gdGhlcmUKKwkgKiBhbmQgb3ZlcmxhcHBpbmcgTVRSUnMgaW50byBsYXJnZSBwYWdlcyBjYW4gY2F1c2UKKwkgKiBzbG93ZG93bnMuCisJICovCisJYmlnX3BhZ2Vfc3RhcnQgPSBQTURfU0laRTsKKworCWlmIChzdGFydCA8IGJpZ19wYWdlX3N0YXJ0KSB7CisJCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJCWVuZF9wZm4gPSBtaW4oYmlnX3BhZ2Vfc3RhcnQ+PlBBR0VfU0hJRlQsIGVuZD4+UEFHRV9TSElGVCk7CisJfSBlbHNlIHsKKwkJLyogaGVhZCBpcyBub3QgYmlnIHBhZ2UgYWxpZ25tZW50ID8gKi8KKwkJc3RhcnRfcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwkJZW5kX3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSk+PlBNRF9TSElGVCkKKwkJCQkgPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCX0KKwlpZiAoc3RhcnRfcGZuIDwgZW5kX3BmbikKKwkJa2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfYmFzZSwgc3RhcnRfcGZuLCBlbmRfcGZuLCAwKTsKKworCS8qIGJpZyBwYWdlIHJhbmdlICovCisJc3RhcnRfcGZuID0gKChzdGFydCArIChQTURfU0laRSAtIDEpKT4+UE1EX1NISUZUKQorCQkJIDw8IChQTURfU0hJRlQgLSBQQUdFX1NISUZUKTsKKwlpZiAoc3RhcnRfcGZuIDwgKGJpZ19wYWdlX3N0YXJ0ID4+IFBBR0VfU0hJRlQpKQorCQlzdGFydF9wZm4gPSAgYmlnX3BhZ2Vfc3RhcnQgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKGVuZD4+UE1EX1NISUZUKSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJaWYgKHN0YXJ0X3BmbiA8IGVuZF9wZm4pCisJCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJCQkJCWNwdV9oYXNfcHNlKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlIGFsaWdubWVudCA/ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwlpZiAoc3RhcnRfcGZuID4gKGJpZ19wYWdlX3N0YXJ0Pj5QQUdFX1NISUZUKSkgeworCQllbmRfcGZuID0gZW5kID4+IFBBR0VfU0hJRlQ7CisJCWlmIChzdGFydF9wZm4gPCBlbmRfcGZuKQorCQkJa2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfYmFzZSwgc3RhcnRfcGZuLAorCQkJCQkJCSBlbmRfcGZuLCAwKTsKKwl9CisKKwllYXJseV9pb3JlbWFwX3BhZ2VfdGFibGVfcmFuZ2VfaW5pdChwZ2RfYmFzZSk7CisKKwlsb2FkX2NyMyhzd2FwcGVyX3BnX2Rpcik7CisKKwlfX2ZsdXNoX3RsYl9hbGwoKTsKKworCWlmICghYWZ0ZXJfaW5pdF9ib290bWVtKQorCQlyZXNlcnZlX2Vhcmx5KHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCisJCQkJIHRhYmxlX2VuZCA8PCBQQUdFX1NISUZULCAiUEdUQUJMRSIpOworCisJcmV0dXJuIGVuZCA+PiBQQUdFX1NISUZUOworfQorCisKIC8qCiAgKiBwYWdpbmdfaW5pdCgpIHNldHMgdXAgdGhlIHBhZ2UgdGFibGVzIC0gbm90ZSB0aGF0IHRoZSBmaXJzdCA4TUIgYXJlCiAgKiBhbHJlYWR5IG1hcHBlZCBieSBoZWFkLlMuCkBAIC01MTgsMTggKzg1NywxOSBAQAogICovCiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfUEFFCi0Jc2V0X254KCk7Ci0JaWYgKG54X2VuYWJsZWQpCi0JCXByaW50ayhLRVJOX0lORk8gIk5YIChFeGVjdXRlIERpc2FibGUpIHByb3RlY3Rpb246IGFjdGl2ZVxuIik7Ci0jZW5kaWYKIAlwYWdldGFibGVfaW5pdCgpOwogCi0JbG9hZF9jcjMoc3dhcHBlcl9wZ19kaXIpOwotCiAJX19mbHVzaF90bGJfYWxsKCk7CiAKIAlrbWFwX2luaXQoKTsKKworCS8qCisJICogTk9URTogYXQgdGhpcyBwb2ludCB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaXMgZnVsbHkgYXZhaWxhYmxlLgorCSAqLworCXNwYXJzZV9pbml0KCk7CisJem9uZV9zaXplc19pbml0KCk7CisKKwlwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCk7CiB9CiAKIC8qCkBAIC01NjQsMjQgKzkwNCwxMSBAQAogdm9pZCBfX2luaXQgbWVtX2luaXQodm9pZCkKIHsKIAlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGRhdGFzaXplLCBpbml0c2l6ZTsKLQlpbnQgdG1wLCBiYWRfcHBybzsKKwlpbnQgdG1wOwogCiAjaWZkZWYgQ09ORklHX0ZMQVRNRU0KIAlCVUdfT04oIW1lbV9tYXApOwogI2VuZGlmCi0JYmFkX3Bwcm8gPSBwcHJvX3dpdGhfcmFtX2J1ZygpOwotCi0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQkvKiBjaGVjayB0aGF0IGZpeG1hcCBhbmQgcGttYXAgZG8gbm90IG92ZXJsYXAgKi8KLQlpZiAoUEtNQVBfQkFTRSArIExBU1RfUEtNQVAqUEFHRV9TSVpFID49IEZJWEFERFJfU1RBUlQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkiZml4bWFwIGFuZCBrbWFwIGFyZWFzIG92ZXJsYXAgLSB0aGlzIHdpbGwgY3Jhc2hcbiIpOwotCQlwcmludGsoS0VSTl9FUlIgInBrc3RhcnQ6ICVseGggcGtlbmQ6ICVseGggZml4c3RhcnQgJWx4aFxuIiwKLQkJCQlQS01BUF9CQVNFLCBQS01BUF9CQVNFICsgTEFTVF9QS01BUCpQQUdFX1NJWkUsCi0JCQkJRklYQUREUl9TVEFSVCk7Ci0JCUJVRygpOwotCX0KLSNlbmRpZgogCS8qIHRoaXMgd2lsbCBwdXQgYWxsIGxvdyBtZW1vcnkgb250byB0aGUgZnJlZWxpc3RzICovCiAJdG90YWxyYW1fcGFnZXMgKz0gZnJlZV9hbGxfYm9vdG1lbSgpOwogCkBAIC01OTMsNyArOTIwLDcgQEAKIAkJaWYgKHBhZ2VfaXNfcmFtKHRtcCkgJiYgUGFnZVJlc2VydmVkKHBmbl90b19wYWdlKHRtcCkpKQogCQkJcmVzZXJ2ZWRwYWdlcysrOwogCi0Jc2V0X2hpZ2htZW1fcGFnZXNfaW5pdChiYWRfcHBybyk7CisJc2V0X2hpZ2htZW1fcGFnZXNfaW5pdCgpOwogCiAJY29kZXNpemUgPSAgKHVuc2lnbmVkIGxvbmcpICZfZXRleHQgLSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwogCWRhdGFzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX2VkYXRhIC0gKHVuc2lnbmVkIGxvbmcpICZfZXRleHQ7CkBAIC02MTQsNyArOTQxLDYgQEAKIAkJKHVuc2lnbmVkIGxvbmcpICh0b3RhbGhpZ2hfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApKQogCSAgICAgICApOwogCi0jaWYgMSAvKiBkb3VibGUtc2FuaXR5LWNoZWNrIHBhcmFub2lhICovCiAJcHJpbnRrKEtFUk5fSU5GTyAidmlydHVhbCBrZXJuZWwgbWVtb3J5IGxheW91dDpcbiIKIAkJIiAgICBmaXhtYXAgIDogMHglMDhseCAtIDB4JTA4bHggICAoJTRsZCBrQilcbiIKICNpZmRlZiBDT05GSUdfSElHSE1FTQpAQCAtNjU1LDcgKzk4MSw2IEBACiAjZW5kaWYKIAlCVUdfT04oVk1BTExPQ19TVEFSVAkJCQk+IFZNQUxMT0NfRU5EKTsKIAlCVUdfT04oKHVuc2lnbmVkIGxvbmcpaGlnaF9tZW1vcnkJCT4gVk1BTExPQ19TVEFSVCk7Ci0jZW5kaWYgLyogZG91YmxlLXNhbml0eS1jaGVjayBwYXJhbm9pYSAqLwogCiAJaWYgKGJvb3RfY3B1X2RhdGEud3Bfd29ya3Nfb2sgPCAwKQogCQl0ZXN0X3dwX2JpdCgpOwpAQCAtNzEwLDYgKzEwMzUsOCBAQAogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBQRk5fQUxJR04oX3RleHQpOwogCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBGTl9BTElHTihfZXRleHQpIC0gc3RhcnQ7CiAKKyNpZm5kZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJLyogRHluYW1pYyB0cmFjaW5nIG1vZGlmaWVzIHRoZSBrZXJuZWwgdGV4dCBzZWN0aW9uICovCiAJc2V0X3BhZ2VzX3JvKHZpcnRfdG9fcGFnZShzdGFydCksIHNpemUgPj4gUEFHRV9TSElGVCk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiV3JpdGUgcHJvdGVjdGluZyB0aGUga2VybmVsIHRleHQ6ICVsdWtcbiIsCiAJCXNpemUgPj4gMTApOwpAQCAtNzIyLDYgKzEwNDksOCBAQAogCXByaW50ayhLRVJOX0lORk8gIlRlc3RpbmcgQ1BBOiB3cml0ZSBwcm90ZWN0aW5nIGFnYWluXG4iKTsKIAlzZXRfcGFnZXNfcm8odmlydF90b19wYWdlKHN0YXJ0KSwgc2l6ZT4+UEFHRV9TSElGVCk7CiAjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKwogCXN0YXJ0ICs9IHNpemU7CiAJc2l6ZSA9ICh1bnNpZ25lZCBsb25nKV9fZW5kX3JvZGF0YSAtIHN0YXJ0OwogCXNldF9wYWdlc19ybyh2aXJ0X3RvX3BhZ2Uoc3RhcnQpLCBzaXplID4+IFBBR0VfU0hJRlQpOwpAQCAtNzg0LDMgKzExMTMsOSBAQAogCWZyZWVfaW5pdF9wYWdlcygiaW5pdHJkIG1lbW9yeSIsIHN0YXJ0LCBlbmQpOwogfQogI2VuZGlmCisKK2ludCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIGxlbiwKKwkJCQkgICBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIHJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2luaXRfNjQuYyBiL2FyY2gveDg2L21tL2luaXRfNjQuYwppbmRleCAxNTZlNmQ3Li4yN2RlMjQzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC94ODYvbW0vaW5pdF82NC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KQEAgLTQ3LDYgKzQ4LDE0IEBACiAjaW5jbHVkZSA8YXNtL251bWEuaD4KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogCisvKgorICogZW5kX3BmbiBvbmx5IGluY2x1ZGVzIFJBTSwgd2hpbGUgbWF4X3Bmbl9tYXBwZWQgaW5jbHVkZXMgYWxsIGU4MjAgZW50cmllcy4KKyAqIFRoZSBkaXJlY3QgbWFwcGluZyBleHRlbmRzIHRvIG1heF9wZm5fbWFwcGVkLCBzbyB0aGF0IHdlIGNhbiBkaXJlY3RseSBhY2Nlc3MKKyAqIGFwZXJ0dXJlcywgQUNQSSBhbmQgb3RoZXIgdGFibGVzIHdpdGhvdXQgaGF2aW5nIHRvIHBsYXkgd2l0aCBmaXhtYXBzLgorICovCit1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKK3Vuc2lnbmVkIGxvbmcgbWF4X3Bmbl9tYXBwZWQ7CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGRtYV9yZXNlcnZlIF9faW5pdGRhdGE7CiAKIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtbXVfZ2F0aGVyLCBtbXVfZ2F0aGVycyk7CkBAIC0xMzUsMjYgKzE0NCwxNyBAQAogCXJldHVybiBwdHI7CiB9CiAKLXN0YXRpYyB2b2lkCi1zZXRfcHRlX3BoeXModW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBwcm90KQordm9pZAorc2V0X3B0ZV92YWRkcl9wdWQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdfcHRlKQogewotCXBnZF90ICpwZ2Q7CiAJcHVkX3QgKnB1ZDsKIAlwbWRfdCAqcG1kOwotCXB0ZV90ICpwdGUsIG5ld19wdGU7CisJcHRlX3QgKnB0ZTsKIAotCXByX2RlYnVnKCJzZXRfcHRlX3BoeXMgJWx4IHRvICVseFxuIiwgdmFkZHIsIHBoeXMpOwotCi0JcGdkID0gcGdkX29mZnNldF9rKHZhZGRyKTsKLQlpZiAocGdkX25vbmUoKnBnZCkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkiUEdEIEZJWE1BUCBNSVNTSU5HLCBpdCBzaG91bGQgYmUgc2V0dXAgaW4gaGVhZC5TIVxuIik7Ci0JCXJldHVybjsKLQl9Ci0JcHVkID0gcHVkX29mZnNldChwZ2QsIHZhZGRyKTsKKwlwdWQgPSBwdWRfcGFnZSArIHB1ZF9pbmRleCh2YWRkcik7CiAJaWYgKHB1ZF9ub25lKCpwdWQpKSB7CiAJCXBtZCA9IChwbWRfdCAqKSBzcHBfZ2V0cGFnZSgpOwotCQlzZXRfcHVkKHB1ZCwgX19wdWQoX19wYShwbWQpIHwgX0tFUk5QR19UQUJMRSB8IF9QQUdFX1VTRVIpKTsKKwkJcHVkX3BvcHVsYXRlKCZpbml0X21tLCBwdWQsIHBtZCk7CiAJCWlmIChwbWQgIT0gcG1kX29mZnNldChwdWQsIDApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIlBBR0VUQUJMRSBCVUcgIzAxISAlcCA8LT4gJXBcbiIsCiAJCQkJcG1kLCBwbWRfb2Zmc2V0KHB1ZCwgMCkpOwpAQCAtMTY0LDEzICsxNjQsMTIgQEAKIAlwbWQgPSBwbWRfb2Zmc2V0KHB1ZCwgdmFkZHIpOwogCWlmIChwbWRfbm9uZSgqcG1kKSkgewogCQlwdGUgPSAocHRlX3QgKikgc3BwX2dldHBhZ2UoKTsKLQkJc2V0X3BtZChwbWQsIF9fcG1kKF9fcGEocHRlKSB8IF9LRVJOUEdfVEFCTEUgfCBfUEFHRV9VU0VSKSk7CisJCXBtZF9wb3B1bGF0ZV9rZXJuZWwoJmluaXRfbW0sIHBtZCwgcHRlKTsKIAkJaWYgKHB0ZSAhPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIDApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIlBBR0VUQUJMRSBCVUcgIzAyIVxuIik7CiAJCQlyZXR1cm47CiAJCX0KIAl9Ci0JbmV3X3B0ZSA9IHBmbl9wdGUocGh5cyA+PiBQQUdFX1NISUZULCBwcm90KTsKIAogCXB0ZSA9IHB0ZV9vZmZzZXRfa2VybmVsKHBtZCwgdmFkZHIpOwogCWlmICghcHRlX25vbmUoKnB0ZSkgJiYgcHRlX3ZhbChuZXdfcHRlKSAmJgpAQCAtMTg1LDYgKzE4NCw2NCBAQAogCV9fZmx1c2hfdGxiX29uZSh2YWRkcik7CiB9CiAKK3ZvaWQKK3NldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgcHRldmFsKQoreworCXBnZF90ICpwZ2Q7CisJcHVkX3QgKnB1ZF9wYWdlOworCisJcHJfZGVidWcoInNldF9wdGVfdmFkZHIgJWx4IHRvICVseFxuIiwgdmFkZHIsIG5hdGl2ZV9wdGVfdmFsKHB0ZXZhbCkpOworCisJcGdkID0gcGdkX29mZnNldF9rKHZhZGRyKTsKKwlpZiAocGdkX25vbmUoKnBnZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCQkiUEdEIEZJWE1BUCBNSVNTSU5HLCBpdCBzaG91bGQgYmUgc2V0dXAgaW4gaGVhZC5TIVxuIik7CisJCXJldHVybjsKKwl9CisJcHVkX3BhZ2UgPSAocHVkX3QqKXBnZF9wYWdlX3ZhZGRyKCpwZ2QpOworCXNldF9wdGVfdmFkZHJfcHVkKHB1ZF9wYWdlLCB2YWRkciwgcHRldmFsKTsKK30KKworLyoKKyAqIENyZWF0ZSBsYXJnZSBwYWdlIHRhYmxlIG1hcHBpbmdzIGZvciBhIHJhbmdlIG9mIHBoeXNpY2FsIGFkZHJlc3Nlcy4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IF9faW5pdF9leHRyYV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJcGdwcm90X3QgcHJvdCkKK3sKKwlwZ2RfdCAqcGdkOworCXB1ZF90ICpwdWQ7CisJcG1kX3QgKnBtZDsKKworCUJVR19PTigocGh5cyAmIH5QTURfTUFTSykgfHwgKHNpemUgJiB+UE1EX01BU0spKTsKKwlmb3IgKDsgc2l6ZTsgcGh5cyArPSBQTURfU0laRSwgc2l6ZSAtPSBQTURfU0laRSkgeworCQlwZ2QgPSBwZ2Rfb2Zmc2V0X2soKHVuc2lnbmVkIGxvbmcpX192YShwaHlzKSk7CisJCWlmIChwZ2Rfbm9uZSgqcGdkKSkgeworCQkJcHVkID0gKHB1ZF90ICopIHNwcF9nZXRwYWdlKCk7CisJCQlzZXRfcGdkKHBnZCwgX19wZ2QoX19wYShwdWQpIHwgX0tFUk5QR19UQUJMRSB8CisJCQkJCQlfUEFHRV9VU0VSKSk7CisJCX0KKwkJcHVkID0gcHVkX29mZnNldChwZ2QsICh1bnNpZ25lZCBsb25nKV9fdmEocGh5cykpOworCQlpZiAocHVkX25vbmUoKnB1ZCkpIHsKKwkJCXBtZCA9IChwbWRfdCAqKSBzcHBfZ2V0cGFnZSgpOworCQkJc2V0X3B1ZChwdWQsIF9fcHVkKF9fcGEocG1kKSB8IF9LRVJOUEdfVEFCTEUgfAorCQkJCQkJX1BBR0VfVVNFUikpOworCQl9CisJCXBtZCA9IHBtZF9vZmZzZXQocHVkLCBwaHlzKTsKKwkJQlVHX09OKCFwbWRfbm9uZSgqcG1kKSk7CisJCXNldF9wbWQocG1kLCBfX3BtZChwaHlzIHwgcGdwcm90X3ZhbChwcm90KSkpOworCX0KK30KKwordm9pZCBfX2luaXQgaW5pdF9leHRyYV9tYXBwaW5nX3diKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplKQoreworCV9faW5pdF9leHRyYV9tYXBwaW5nKHBoeXMsIHNpemUsIFBBR0VfS0VSTkVMX0xBUkdFKTsKK30KKwordm9pZCBfX2luaXQgaW5pdF9leHRyYV9tYXBwaW5nX3VjKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplKQoreworCV9faW5pdF9leHRyYV9tYXBwaW5nKHBoeXMsIHNpemUsIFBBR0VfS0VSTkVMX0xBUkdFX05PQ0FDSEUpOworfQorCiAvKgogICogVGhlIGhlYWQuUyBjb2RlIHNldHMgdXAgdGhlIGtlcm5lbCBoaWdoIG1hcHBpbmc6CiAgKgpAQCAtMjEzLDIwICsyNzAsOSBAQAogCX0KIH0KIAotLyogTk9URTogdGhpcyBpcyBtZWFudCB0byBiZSBydW4gb25seSBhdCBib290ICovCi12b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgcHJvdCkKLXsKLQl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSBfX2ZpeF90b192aXJ0KGlkeCk7Ci0KLQlpZiAoaWR4ID49IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcykgewotCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgX19zZXRfZml4bWFwXG4iKTsKLQkJcmV0dXJuOwotCX0KLQlzZXRfcHRlX3BoeXMoYWRkcmVzcywgcGh5cywgcHJvdCk7Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgdGFibGVfc3RhcnQ7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXRkYXRhIHRhYmxlX2VuZDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdGRhdGEgdGFibGVfdG9wOwogCiBzdGF0aWMgX19tZW1pbml0IHZvaWQgKmFsbG9jX2xvd19wYWdlKHVuc2lnbmVkIGxvbmcgKnBoeXMpCiB7CkBAIC0yNDAsNyArMjg2LDcgQEAKIAkJcmV0dXJuIGFkcjsKIAl9CiAKLQlpZiAocGZuID49IGVuZF9wZm4pCisJaWYgKHBmbiA+PSB0YWJsZV90b3ApCiAJCXBhbmljKCJhbGxvY19sb3dfcGFnZTogcmFuIG91dCBvZiBtZW1vcnkiKTsKIAogCWFkciA9IGVhcmx5X2lvcmVtYXAocGZuICogUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwpAQCAtMjU3LDY1ICszMDMsNjEgQEAKIAllYXJseV9pb3VubWFwKGFkciwgUEFHRV9TSVpFKTsKIH0KIAotLyogTXVzdCBydW4gYmVmb3JlIHphcF9sb3dfbWFwcGluZ3MgKi8KLV9fbWVtaW5pdCB2b2lkICplYXJseV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0CitwaHlzX3B0ZV9pbml0KHB0ZV90ICpwdGVfcGFnZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQlwbWRfdCAqcG1kLCAqbGFzdF9wbWQ7Ci0JdW5zaWduZWQgbG9uZyB2YWRkcjsKLQlpbnQgaSwgcG1kczsKKwl1bnNpZ25lZCBwYWdlcyA9IDA7CisJdW5zaWduZWQgbG9uZyBsYXN0X21hcF9hZGRyID0gZW5kOworCWludCBpOwogCi0JcG1kcyA9ICgoYWRkciAmIH5QTURfTUFTSykgKyBzaXplICsgflBNRF9NQVNLKSAvIFBNRF9TSVpFOwotCXZhZGRyID0gX19TVEFSVF9LRVJORUxfbWFwOwotCXBtZCA9IGxldmVsMl9rZXJuZWxfcGd0OwotCWxhc3RfcG1kID0gbGV2ZWwyX2tlcm5lbF9wZ3QgKyBQVFJTX1BFUl9QTUQgLSAxOworCXB0ZV90ICpwdGUgPSBwdGVfcGFnZSArIHB0ZV9pbmRleChhZGRyKTsKIAotCWZvciAoOyBwbWQgPD0gbGFzdF9wbWQ7IHBtZCsrLCB2YWRkciArPSBQTURfU0laRSkgewotCQlmb3IgKGkgPSAwOyBpIDwgcG1kczsgaSsrKSB7Ci0JCQlpZiAocG1kX3ByZXNlbnQocG1kW2ldKSkKLQkJCQlnb3RvIGNvbnRpbnVlX291dGVyX2xvb3A7CisJZm9yKGkgPSBwdGVfaW5kZXgoYWRkcik7IGkgPCBQVFJTX1BFUl9QVEU7IGkrKywgYWRkciArPSBQQUdFX1NJWkUsIHB0ZSsrKSB7CisKKwkJaWYgKGFkZHIgPj0gZW5kKSB7CisJCQlpZiAoIWFmdGVyX2Jvb3RtZW0pIHsKKwkJCQlmb3IoOyBpIDwgUFRSU19QRVJfUFRFOyBpKyssIHB0ZSsrKQorCQkJCQlzZXRfcHRlKHB0ZSwgX19wdGUoMCkpOworCQkJfQorCQkJYnJlYWs7CiAJCX0KLQkJdmFkZHIgKz0gYWRkciAmIH5QTURfTUFTSzsKLQkJYWRkciAmPSBQTURfTUFTSzsKIAotCQlmb3IgKGkgPSAwOyBpIDwgcG1kczsgaSsrLCBhZGRyICs9IFBNRF9TSVpFKQotCQkJc2V0X3BtZChwbWQraSwgX19wbWQoYWRkciB8IF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQykpOwotCQlfX2ZsdXNoX3RsYl9hbGwoKTsKKwkJaWYgKHB0ZV92YWwoKnB0ZSkpCisJCQljb250aW51ZTsKIAotCQlyZXR1cm4gKHZvaWQgKil2YWRkcjsKLWNvbnRpbnVlX291dGVyX2xvb3A6Ci0JCTsKKwkJaWYgKDApCisJCQlwcmludGsoIiAgIHB0ZT0lcCBhZGRyPSVseCBwdGU9JTAxNmx4XG4iLAorCQkJICAgICAgIHB0ZSwgYWRkciwgcGZuX3B0ZShhZGRyID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMKS5wdGUpOworCQlzZXRfcHRlKHB0ZSwgcGZuX3B0ZShhZGRyID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMKSk7CisJCWxhc3RfbWFwX2FkZHIgPSAoYWRkciAmIFBBR0VfTUFTSykgKyBQQUdFX1NJWkU7CisJCXBhZ2VzKys7CiAJfQotCXByaW50ayhLRVJOX0VSUiAiZWFybHlfaW9yZW1hcCgweCVseCwgJWx1KSBmYWlsZWRcbiIsIGFkZHIsIHNpemUpOworCXVwZGF0ZV9wYWdlX2NvdW50KFBHX0xFVkVMXzRLLCBwYWdlcyk7CiAKLQlyZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIFRvIGF2b2lkIHZpcnR1YWwgYWxpYXNlcyBsYXRlcjoKLSAqLwotX19tZW1pbml0IHZvaWQgZWFybHlfaW91bm1hcCh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JdW5zaWduZWQgbG9uZyB2YWRkcjsKLQlwbWRfdCAqcG1kOwotCWludCBpLCBwbWRzOwotCi0JdmFkZHIgPSAodW5zaWduZWQgbG9uZylhZGRyOwotCXBtZHMgPSAoKHZhZGRyICYgflBNRF9NQVNLKSArIHNpemUgKyB+UE1EX01BU0spIC8gUE1EX1NJWkU7Ci0JcG1kID0gbGV2ZWwyX2tlcm5lbF9wZ3QgKyBwbWRfaW5kZXgodmFkZHIpOwotCi0JZm9yIChpID0gMDsgaSA8IHBtZHM7IGkrKykKLQkJcG1kX2NsZWFyKHBtZCArIGkpOwotCi0JX19mbHVzaF90bGJfYWxsKCk7CisJcmV0dXJuIGxhc3RfbWFwX2FkZHI7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAotcGh5c19wbWRfaW5pdChwbWRfdCAqcG1kX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBlbmQpCitwaHlzX3B0ZV91cGRhdGUocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKKwlwdGVfdCAqcHRlID0gKHB0ZV90ICopcG1kX3BhZ2VfdmFkZHIoKnBtZCk7CisKKwlyZXR1cm4gcGh5c19wdGVfaW5pdChwdGUsIGFkZHJlc3MsIGVuZCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAorcGh5c19wbWRfaW5pdChwbWRfdCAqcG1kX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKK3sKKwl1bnNpZ25lZCBsb25nIHBhZ2VzID0gMDsKKwl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CisKIAlpbnQgaSA9IHBtZF9pbmRleChhZGRyZXNzKTsKIAogCWZvciAoOyBpIDwgUFRSU19QRVJfUE1EOyBpKyssIGFkZHJlc3MgKz0gUE1EX1NJWkUpIHsKKwkJdW5zaWduZWQgbG9uZyBwdGVfcGh5czsKIAkJcG1kX3QgKnBtZCA9IHBtZF9wYWdlICsgcG1kX2luZGV4KGFkZHJlc3MpOworCQlwdGVfdCAqcHRlOwogCiAJCWlmIChhZGRyZXNzID49IGVuZCkgewogCQkJaWYgKCFhZnRlcl9ib290bWVtKSB7CkBAIC0zMjUsMzEgKzM2Nyw1MCBAQAogCQkJYnJlYWs7CiAJCX0KIAotCQlpZiAocG1kX3ZhbCgqcG1kKSkKKwkJaWYgKHBtZF92YWwoKnBtZCkpIHsKKwkJCWlmICghcG1kX2xhcmdlKCpwbWQpKQorCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B0ZV91cGRhdGUocG1kLCBhZGRyZXNzLAorCQkJCQkJCQkgZW5kKTsKIAkJCWNvbnRpbnVlOworCQl9CiAKLQkJc2V0X3B0ZSgocHRlX3QgKilwbWQsCi0JCQlwZm5fcHRlKGFkZHJlc3MgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUxfTEFSR0UpKTsKKwkJaWYgKHBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzJNKSkgeworCQkJcGFnZXMrKzsKKwkJCXNldF9wdGUoKHB0ZV90ICopcG1kLAorCQkJCXBmbl9wdGUoYWRkcmVzcyA+PiBQQUdFX1NISUZULCBQQUdFX0tFUk5FTF9MQVJHRSkpOworCQkJbGFzdF9tYXBfYWRkciA9IChhZGRyZXNzICYgUE1EX01BU0spICsgUE1EX1NJWkU7CisJCQljb250aW51ZTsKKwkJfQorCisJCXB0ZSA9IGFsbG9jX2xvd19wYWdlKCZwdGVfcGh5cyk7CisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B0ZV9pbml0KHB0ZSwgYWRkcmVzcywgZW5kKTsKKwkJdW5tYXBfbG93X3BhZ2UocHRlKTsKKworCQlwbWRfcG9wdWxhdGVfa2VybmVsKCZpbml0X21tLCBwbWQsIF9fdmEocHRlX3BoeXMpKTsKIAl9Ci0JcmV0dXJuIGFkZHJlc3M7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMk0sIHBhZ2VzKTsKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0Ci1waHlzX3BtZF91cGRhdGUocHVkX3QgKnB1ZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCkKK3BoeXNfcG1kX3VwZGF0ZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgZW5kLAorCQkJIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplX21hc2spCiB7CiAJcG1kX3QgKnBtZCA9IHBtZF9vZmZzZXQocHVkLCAwKTsKIAl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHI7CiAKIAlzcGluX2xvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKLQlsYXN0X21hcF9hZGRyID0gcGh5c19wbWRfaW5pdChwbWQsIGFkZHJlc3MsIGVuZCk7CisJbGFzdF9tYXBfYWRkciA9IHBoeXNfcG1kX2luaXQocG1kLCBhZGRyZXNzLCBlbmQsIHBhZ2Vfc2l6ZV9tYXNrKTsKIAlzcGluX3VubG9jaygmaW5pdF9tbS5wYWdlX3RhYmxlX2xvY2spOwogCV9fZmx1c2hfdGxiX2FsbCgpOwogCXJldHVybiBsYXN0X21hcF9hZGRyOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXQKLXBoeXNfcHVkX2luaXQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kKQorcGh5c19wdWRfaW5pdChwdWRfdCAqcHVkX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKIHsKKwl1bnNpZ25lZCBsb25nIHBhZ2VzID0gMDsKIAl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CiAJaW50IGkgPSBwdWRfaW5kZXgoYWRkcik7CiAKQEAgLTM2OSwxMSArNDMwLDEzIEBACiAKIAkJaWYgKHB1ZF92YWwoKnB1ZCkpIHsKIAkJCWlmICghcHVkX2xhcmdlKCpwdWQpKQotCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF91cGRhdGUocHVkLCBhZGRyLCBlbmQpOworCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF91cGRhdGUocHVkLCBhZGRyLCBlbmQsCisJCQkJCQkJIHBhZ2Vfc2l6ZV9tYXNrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKGRpcmVjdF9nYnBhZ2VzKSB7CisJCWlmIChwYWdlX3NpemVfbWFzayAmICgxPDxQR19MRVZFTF8xRykpIHsKKwkJCXBhZ2VzKys7CiAJCQlzZXRfcHRlKChwdGVfdCAqKXB1ZCwKIAkJCQlwZm5fcHRlKGFkZHIgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUxfTEFSR0UpKTsKIAkJCWxhc3RfbWFwX2FkZHIgPSAoYWRkciAmIFBVRF9NQVNLKSArIFBVRF9TSVpFOwpAQCAtMzgzLDI3ICs0NDYsNTAgQEAKIAkJcG1kID0gYWxsb2NfbG93X3BhZ2UoJnBtZF9waHlzKTsKIAogCQlzcGluX2xvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKLQkJc2V0X3B1ZChwdWQsIF9fcHVkKHBtZF9waHlzIHwgX0tFUk5QR19UQUJMRSkpOwotCQlsYXN0X21hcF9hZGRyID0gcGh5c19wbWRfaW5pdChwbWQsIGFkZHIsIGVuZCk7CisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF9pbml0KHBtZCwgYWRkciwgZW5kLCBwYWdlX3NpemVfbWFzayk7CisJCXVubWFwX2xvd19wYWdlKHBtZCk7CisJCXB1ZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcHVkLCBfX3ZhKHBtZF9waHlzKSk7CiAJCXNwaW5fdW5sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7CiAKLQkJdW5tYXBfbG93X3BhZ2UocG1kKTsKIAl9CiAJX19mbHVzaF90bGJfYWxsKCk7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMUcsIHBhZ2VzKTsKIAotCXJldHVybiBsYXN0X21hcF9hZGRyID4+IFBBR0VfU0hJRlQ7CisJcmV0dXJuIGxhc3RfbWFwX2FkZHI7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAorcGh5c19wdWRfdXBkYXRlKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCSB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrKQoreworCXB1ZF90ICpwdWQ7CisKKwlwdWQgPSAocHVkX3QgKilwZ2RfcGFnZV92YWRkcigqcGdkKTsKKworCXJldHVybiBwaHlzX3B1ZF9pbml0KHB1ZCwgYWRkciwgZW5kLCBwYWdlX3NpemVfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgcHVkcywgcG1kcywgdGFibGVzLCBzdGFydDsKKwl1bnNpZ25lZCBsb25nIHB1ZHMsIHBtZHMsIHB0ZXMsIHRhYmxlcywgc3RhcnQ7CiAKIAlwdWRzID0gKGVuZCArIFBVRF9TSVpFIC0gMSkgPj4gUFVEX1NISUZUOwogCXRhYmxlcyA9IHJvdW5kX3VwKHB1ZHMgKiBzaXplb2YocHVkX3QpLCBQQUdFX1NJWkUpOwotCWlmICghZGlyZWN0X2dicGFnZXMpIHsKKwlpZiAoZGlyZWN0X2dicGFnZXMpIHsKKwkJdW5zaWduZWQgbG9uZyBleHRyYTsKKwkJZXh0cmEgPSBlbmQgLSAoKGVuZD4+UFVEX1NISUZUKSA8PCBQVURfU0hJRlQpOworCQlwbWRzID0gKGV4dHJhICsgUE1EX1NJWkUgLSAxKSA+PiBQTURfU0hJRlQ7CisJfSBlbHNlCiAJCXBtZHMgPSAoZW5kICsgUE1EX1NJWkUgLSAxKSA+PiBQTURfU0hJRlQ7Ci0JCXRhYmxlcyArPSByb3VuZF91cChwbWRzICogc2l6ZW9mKHBtZF90KSwgUEFHRV9TSVpFKTsKLQl9CisJdGFibGVzICs9IHJvdW5kX3VwKHBtZHMgKiBzaXplb2YocG1kX3QpLCBQQUdFX1NJWkUpOworCisJaWYgKGNwdV9oYXNfcHNlKSB7CisJCXVuc2lnbmVkIGxvbmcgZXh0cmE7CisJCWV4dHJhID0gZW5kIC0gKChlbmQ+PlBNRF9TSElGVCkgPDwgUE1EX1NISUZUKTsKKwkJcHRlcyA9IChleHRyYSArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CisJfSBlbHNlCisJCXB0ZXMgPSAoZW5kICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwl0YWJsZXMgKz0gcm91bmRfdXAocHRlcyAqIHNpemVvZihwdGVfdCksIFBBR0VfU0laRSk7CiAKIAkvKgogCSAqIFJFRC1QRU4gcHV0dGluZyBwYWdlIHRhYmxlcyBvbmx5IG9uIG5vZGUgMCBjb3VsZApAQCAtNDE3LDEwICs1MDMsMTAgQEAKIAogCXRhYmxlX3N0YXJ0ID4+PSBQQUdFX1NISUZUOwogCXRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0OworCXRhYmxlX3RvcCA9IHRhYmxlX3N0YXJ0ICsgKHRhYmxlcyA+PiBQQUdFX1NISUZUKTsKIAotCWVhcmx5X3ByaW50aygia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAlbHgtJWx4XG4iLAotCQllbmQsIHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCi0JCSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZUKSArIHRhYmxlcyk7CisJcHJpbnRrKEtFUk5fREVCVUcgImtlcm5lbCBkaXJlY3QgbWFwcGluZyB0YWJsZXMgdXAgdG8gJWx4IEAgJWx4LSVseFxuIiwKKwkJZW5kLCB0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZULCB0YWJsZV90b3AgPDwgUEFHRV9TSElGVCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBpbml0X2dicGFnZXModm9pZCkKQEAgLTQzMSw3ICs1MTcsNyBAQAogCQlkaXJlY3RfZ2JwYWdlcyA9IDA7CiB9CiAKLSNpZmRlZiBDT05GSUdfTUVNVEVTVF9CT09UUEFSQU0KKyNpZmRlZiBDT05GSUdfTUVNVEVTVAogCiBzdGF0aWMgdm9pZCBfX2luaXQgbWVtdGVzdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAkJCQkgdW5zaWduZWQgcGF0dGVybikKQEAgLTQ5Myw3ICs1NzksOCBAQAogCiB9CiAKLXN0YXRpYyBpbnQgbWVtdGVzdF9wYXR0ZXJuIF9faW5pdGRhdGEgPSBDT05GSUdfTUVNVEVTVF9CT09UUEFSQU1fVkFMVUU7CisvKiBkZWZhdWx0IGlzIGRpc2FibGVkICovCitzdGF0aWMgaW50IG1lbXRlc3RfcGF0dGVybiBfX2luaXRkYXRhOwogCiBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW10ZXN0KGNoYXIgKmFyZykKIHsKQEAgLTUyNiw3ICs2MTMsOCBAQAogCQkJCXRfc2l6ZSA9IGVuZCAtIHRfc3RhcnQ7CiAKIAkJCXByaW50ayhLRVJOX0NPTlQgIlxuICAlMDE2bGx4IC0gJTAxNmxseCBwYXR0ZXJuICVkIiwKLQkJCQl0X3N0YXJ0LCB0X3N0YXJ0ICsgdF9zaXplLCBwYXR0ZXJuKTsKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKXRfc3RhcnQsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZyl0X3N0YXJ0ICsgdF9zaXplLCBwYXR0ZXJuKTsKIAogCQkJbWVtdGVzdCh0X3N0YXJ0LCB0X3NpemUsIHBhdHRlcm4pOwogCkBAIC01NDEsMTUgKzYyOSw4NSBAQAogfQogI2VuZGlmCiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkJCQl1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgcGFnZV9zaXplX21hc2spCit7CisKKwl1bnNpZ25lZCBsb25nIG5leHQsIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CisKKwlzdGFydCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoc3RhcnQpOworCWVuZCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoZW5kKTsKKworCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgPSBuZXh0KSB7CisJCXBnZF90ICpwZ2QgPSBwZ2Rfb2Zmc2V0X2soc3RhcnQpOworCQl1bnNpZ25lZCBsb25nIHB1ZF9waHlzOworCQlwdWRfdCAqcHVkOworCisJCW5leHQgPSBzdGFydCArIFBHRElSX1NJWkU7CisJCWlmIChuZXh0ID4gZW5kKQorCQkJbmV4dCA9IGVuZDsKKworCQlpZiAocGdkX3ZhbCgqcGdkKSkgeworCQkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcHVkX3VwZGF0ZShwZ2QsIF9fcGEoc3RhcnQpLAorCQkJCQkJIF9fcGEoZW5kKSwgcGFnZV9zaXplX21hc2spOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoYWZ0ZXJfYm9vdG1lbSkKKwkJCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCBzdGFydCAmIFBHRElSX01BU0spOworCQllbHNlCisJCQlwdWQgPSBhbGxvY19sb3dfcGFnZSgmcHVkX3BoeXMpOworCisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B1ZF9pbml0KHB1ZCwgX19wYShzdGFydCksIF9fcGEobmV4dCksCisJCQkJCQkgcGFnZV9zaXplX21hc2spOworCQl1bm1hcF9sb3dfcGFnZShwdWQpOworCQlwZ2RfcG9wdWxhdGUoJmluaXRfbW0sIHBnZF9vZmZzZXRfayhzdGFydCksCisJCQkgICAgIF9fdmEocHVkX3BoeXMpKTsKKwl9CisKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKK30KKworc3RydWN0IG1hcF9yYW5nZSB7CisJdW5zaWduZWQgbG9uZyBzdGFydDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwl1bnNpZ25lZCBwYWdlX3NpemVfbWFzazsKK307CisKKyNkZWZpbmUgTlJfUkFOR0VfTVIgNQorCitzdGF0aWMgaW50IHNhdmVfbXIoc3RydWN0IG1hcF9yYW5nZSAqbXIsIGludCBucl9yYW5nZSwKKwkJICAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbiwKKwkJICAgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKK3sKKworCWlmIChzdGFydF9wZm4gPCBlbmRfcGZuKSB7CisJCWlmIChucl9yYW5nZSA+PSBOUl9SQU5HRV9NUikKKwkJCXBhbmljKCJydW4gb3V0IG9mIHJhbmdlIGZvciBpbml0X21lbW9yeV9tYXBwaW5nXG4iKTsKKwkJbXJbbnJfcmFuZ2VdLnN0YXJ0ID0gc3RhcnRfcGZuPDxQQUdFX1NISUZUOworCQltcltucl9yYW5nZV0uZW5kICAgPSBlbmRfcGZuPDxQQUdFX1NISUZUOworCQltcltucl9yYW5nZV0ucGFnZV9zaXplX21hc2sgPSBwYWdlX3NpemVfbWFzazsKKwkJbnJfcmFuZ2UrKzsKKwl9CisKKwlyZXR1cm4gbnJfcmFuZ2U7Cit9CisKIC8qCiAgKiBTZXR1cCB0aGUgZGlyZWN0IG1hcHBpbmcgb2YgdGhlIHBoeXNpY2FsIG1lbW9yeSBhdCBQQUdFX09GRlNFVC4KICAqIFRoaXMgcnVucyBiZWZvcmUgYm9vdG1lbSBpcyBpbml0aWFsaXplZCBhbmQgZ2V0cyBwYWdlcyBkaXJlY3RseSBmcm9tCiAgKiB0aGUgcGh5c2ljYWwgbWVtb3J5LiBUbyBhY2Nlc3MgdGhlbSB0aGV5IGFyZSB0ZW1wb3JhcmlseSBtYXBwZWQuCiAgKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0X3JlZm9rIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit1bnNpZ25lZCBsb25nIF9faW5pdF9yZWZvayBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQl1bnNpZ25lZCBsb25nIG5leHQsIGxhc3RfbWFwX2FkZHIgPSBlbmQ7Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9waHlzID0gc3RhcnQsIGVuZF9waHlzID0gZW5kOworCXVuc2lnbmVkIGxvbmcgbGFzdF9tYXBfYWRkciA9IDA7CisJdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzayA9IDA7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47CisKKwlzdHJ1Y3QgbWFwX3JhbmdlIG1yW05SX1JBTkdFX01SXTsKKwlpbnQgbnJfcmFuZ2UsIGk7CiAKIAlwcmludGsoS0VSTl9JTkZPICJpbml0X21lbW9yeV9tYXBwaW5nXG4iKTsKIApAQCAtNTYwLDQ4ICs3MTgsMTE1IEBACiAJICogbWVtb3J5IG1hcHBlZC4gVW5mb3J0dW5hdGVseSB0aGlzIGlzIGRvbmUgY3VycmVudGx5IGJlZm9yZSB0aGUKIAkgKiBub2RlcyBhcmUgZGlzY292ZXJlZC4KIAkgKi8KLQlpZiAoIWFmdGVyX2Jvb3RtZW0pIHsKKwlpZiAoIWFmdGVyX2Jvb3RtZW0pCiAJCWluaXRfZ2JwYWdlcygpOworCisJaWYgKGRpcmVjdF9nYnBhZ2VzKQorCQlwYWdlX3NpemVfbWFzayB8PSAxIDw8IFBHX0xFVkVMXzFHOworCWlmIChjcHVfaGFzX3BzZSkKKwkJcGFnZV9zaXplX21hc2sgfD0gMSA8PCBQR19MRVZFTF8yTTsKKworCW1lbXNldChtciwgMCwgc2l6ZW9mKG1yKSk7CisJbnJfcmFuZ2UgPSAwOworCisJLyogaGVhZCBpZiBub3QgYmlnIHBhZ2UgYWxpZ25tZW50ID8qLworCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJZW5kX3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSkgPj4gUE1EX1NISUZUKQorCQkJPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwgMCk7CisKKwkvKiBiaWcgcGFnZSAoMk0pIHJhbmdlKi8KKwlzdGFydF9wZm4gPSAoKHN0YXJ0ICsgKFBNRF9TSVpFIC0gMSkpPj5QTURfU0hJRlQpCisJCQkgPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCWVuZF9wZm4gPSAoKHN0YXJ0ICsgKFBVRF9TSVpFIC0gMSkpPj5QVURfU0hJRlQpCisJCQkgPDwgKFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCWlmIChlbmRfcGZuID4gKChlbmQ+PlBVRF9TSElGVCk8PChQVURfU0hJRlQgLSBQQUdFX1NISUZUKSkpCisJCWVuZF9wZm4gPSAoKGVuZD4+UFVEX1NISUZUKTw8KFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpKTsKKwlucl9yYW5nZSA9IHNhdmVfbXIobXIsIG5yX3JhbmdlLCBzdGFydF9wZm4sIGVuZF9wZm4sCisJCQlwYWdlX3NpemVfbWFzayAmICgxPDxQR19MRVZFTF8yTSkpOworCisJLyogYmlnIHBhZ2UgKDFHKSByYW5nZSAqLworCXN0YXJ0X3BmbiA9IGVuZF9wZm47CisJZW5kX3BmbiA9IChlbmQ+PlBVRF9TSElGVCkgPDwgKFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJCQlwYWdlX3NpemVfbWFzayAmCisJCQkJICgoMTw8UEdfTEVWRUxfMk0pfCgxPDxQR19MRVZFTF8xRykpKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlICgxRykgYWxpZ25tZW50ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwllbmRfcGZuID0gKGVuZD4+UE1EX1NISUZUKSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJbnJfcmFuZ2UgPSBzYXZlX21yKG1yLCBucl9yYW5nZSwgc3RhcnRfcGZuLCBlbmRfcGZuLAorCQkJcGFnZV9zaXplX21hc2sgJiAoMTw8UEdfTEVWRUxfMk0pKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlICgyTSkgYWxpZ25tZW50ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwllbmRfcGZuID0gZW5kPj5QQUdFX1NISUZUOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwgMCk7CisKKwkvKiB0cnkgdG8gbWVyZ2Ugc2FtZSBwYWdlIHNpemUgYW5kIGNvbnRpbnVvdXMgKi8KKwlmb3IgKGkgPSAwOyBucl9yYW5nZSA+IDEgJiYgaSA8IG5yX3JhbmdlIC0gMTsgaSsrKSB7CisJCXVuc2lnbmVkIGxvbmcgb2xkX3N0YXJ0OworCQlpZiAobXJbaV0uZW5kICE9IG1yW2krMV0uc3RhcnQgfHwKKwkJICAgIG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICE9IG1yW2krMV0ucGFnZV9zaXplX21hc2spCisJCQljb250aW51ZTsKKwkJLyogbW92ZSBpdCAqLworCQlvbGRfc3RhcnQgPSBtcltpXS5zdGFydDsKKwkJbWVtbW92ZSgmbXJbaV0sICZtcltpKzFdLAorCQkJIChucl9yYW5nZSAtIDEgLSBpKSAqIHNpemVvZiAoc3RydWN0IG1hcF9yYW5nZSkpOworCQltcltpXS5zdGFydCA9IG9sZF9zdGFydDsKKwkJbnJfcmFuZ2UtLTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJcHJpbnRrKEtFUk5fREVCVUcgIiAlMDEwbHggLSAlMDEwbHggcGFnZSAlc1xuIiwKKwkJCQltcltpXS5zdGFydCwgbXJbaV0uZW5kLAorCQkJKG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzFHKSk/IjFHIjooCisJCQkgKG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzJNKSk/IjJNIjoiNGsiKSk7CisKKwlpZiAoIWFmdGVyX2Jvb3RtZW0pCiAJCWZpbmRfZWFybHlfdGFibGVfc3BhY2UoZW5kKTsKLQl9CiAKLQlzdGFydCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoc3RhcnQpOwotCWVuZCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoZW5kKTsKLQotCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgPSBuZXh0KSB7Ci0JCXBnZF90ICpwZ2QgPSBwZ2Rfb2Zmc2V0X2soc3RhcnQpOwotCQl1bnNpZ25lZCBsb25nIHB1ZF9waHlzOwotCQlwdWRfdCAqcHVkOwotCi0JCWlmIChhZnRlcl9ib290bWVtKQotCQkJcHVkID0gcHVkX29mZnNldChwZ2QsIHN0YXJ0ICYgUEdESVJfTUFTSyk7Ci0JCWVsc2UKLQkJCXB1ZCA9IGFsbG9jX2xvd19wYWdlKCZwdWRfcGh5cyk7Ci0KLQkJbmV4dCA9IHN0YXJ0ICsgUEdESVJfU0laRTsKLQkJaWYgKG5leHQgPiBlbmQpCi0JCQluZXh0ID0gZW5kOwotCQlsYXN0X21hcF9hZGRyID0gcGh5c19wdWRfaW5pdChwdWQsIF9fcGEoc3RhcnQpLCBfX3BhKG5leHQpKTsKLQkJaWYgKCFhZnRlcl9ib290bWVtKQotCQkJc2V0X3BnZChwZ2Rfb2Zmc2V0X2soc3RhcnQpLCBta19rZXJuZWxfcGdkKHB1ZF9waHlzKSk7Ci0JCXVubWFwX2xvd19wYWdlKHB1ZCk7Ci0JfQorCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQlsYXN0X21hcF9hZGRyID0ga2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdCgKKwkJCQkJbXJbaV0uc3RhcnQsIG1yW2ldLmVuZCwKKwkJCQkJbXJbaV0ucGFnZV9zaXplX21hc2spOwogCiAJaWYgKCFhZnRlcl9ib290bWVtKQogCQltbXVfY3I0X2ZlYXR1cmVzID0gcmVhZF9jcjQoKTsKIAlfX2ZsdXNoX3RsYl9hbGwoKTsKIAotCWlmICghYWZ0ZXJfYm9vdG1lbSkKKwlpZiAoIWFmdGVyX2Jvb3RtZW0gJiYgdGFibGVfZW5kID4gdGFibGVfc3RhcnQpCiAJCXJlc2VydmVfZWFybHkodGFibGVfc3RhcnQgPDwgUEFHRV9TSElGVCwKIAkJCQkgdGFibGVfZW5kIDw8IFBBR0VfU0hJRlQsICJQR1RBQkxFIik7CiAKLQlpZiAoIWFmdGVyX2Jvb3RtZW0pCi0JCWVhcmx5X21lbXRlc3Qoc3RhcnRfcGh5cywgZW5kX3BoeXMpOworCXByaW50ayhLRVJOX0lORk8gImxhc3RfbWFwX2FkZHI6ICVseCBlbmQ6ICVseFxuIiwKKwkJCSBsYXN0X21hcF9hZGRyLCBlbmQpOwogCi0JcmV0dXJuIGxhc3RfbWFwX2FkZHI7CisJaWYgKCFhZnRlcl9ib290bWVtKQorCQllYXJseV9tZW10ZXN0KHN0YXJ0LCBlbmQpOworCisJcmV0dXJuIGxhc3RfbWFwX2FkZHIgPj4gUEFHRV9TSElGVDsKIH0KIAogI2lmbmRlZiBDT05GSUdfTlVNQQordm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisJdW5zaWduZWQgbG9uZyBib290bWFwX3NpemUsIGJvb3RtYXA7CisKKwlib290bWFwX3NpemUgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMoZW5kX3Bmbik8PFBBR0VfU0hJRlQ7CisJYm9vdG1hcCA9IGZpbmRfZTgyMF9hcmVhKDAsIGVuZF9wZm48PFBBR0VfU0hJRlQsIGJvb3RtYXBfc2l6ZSwKKwkJCQkgUEFHRV9TSVpFKTsKKwlpZiAoYm9vdG1hcCA9PSAtMUwpCisJCXBhbmljKCJDYW5ub3QgZmluZCBib290bWVtIG1hcCBvZiBzaXplICVsZFxuIiwgYm9vdG1hcF9zaXplKTsKKwkvKiBkb24ndCB0b3VjaCBtaW5fbG93X3BmbiAqLworCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbV9ub2RlKE5PREVfREFUQSgwKSwgYm9vdG1hcCA+PiBQQUdFX1NISUZULAorCQkJCQkgMCwgZW5kX3Bmbik7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGVuZF9wZm4pOworCWZyZWVfYm9vdG1lbV93aXRoX2FjdGl2ZV9yZWdpb25zKDAsIGVuZF9wZm4pOworCWVhcmx5X3Jlc190b19ib290bWVtKDAsIGVuZF9wZm48PFBBR0VfU0hJRlQpOworCXJlc2VydmVfYm9vdG1lbShib290bWFwLCBib290bWFwX3NpemUsIEJPT1RNRU1fREVGQVVMVCk7Cit9CisKIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBtYXhfem9uZV9wZm5zW01BWF9OUl9aT05FU107CkBAIC02MDksOSArODM0LDkgQEAKIAltZW1zZXQobWF4X3pvbmVfcGZucywgMCwgc2l6ZW9mKG1heF96b25lX3BmbnMpKTsKIAltYXhfem9uZV9wZm5zW1pPTkVfRE1BXSA9IE1BWF9ETUFfUEZOOwogCW1heF96b25lX3BmbnNbWk9ORV9ETUEzMl0gPSBNQVhfRE1BMzJfUEZOOwotCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gZW5kX3BmbjsKKwltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IG1heF9wZm47CiAKLQltZW1vcnlfcHJlc2VudCgwLCAwLCBlbmRfcGZuKTsKKwltZW1vcnlfcHJlc2VudCgwLCAwLCBtYXhfcGZuKTsKIAlzcGFyc2VfaW5pdCgpOwogCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOwogfQpAQCAtNjkzLDggKzkxOCw4IEBACiAjZWxzZQogCXRvdGFscmFtX3BhZ2VzID0gZnJlZV9hbGxfYm9vdG1lbSgpOwogI2VuZGlmCi0JcmVzZXJ2ZWRwYWdlcyA9IGVuZF9wZm4gLSB0b3RhbHJhbV9wYWdlcyAtCi0JCQkJCWFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBlbmRfcGZuKTsKKwlyZXNlcnZlZHBhZ2VzID0gbWF4X3BmbiAtIHRvdGFscmFtX3BhZ2VzIC0KKwkJCQkJYWJzZW50X3BhZ2VzX2luX3JhbmdlKDAsIG1heF9wZm4pOwogCWFmdGVyX2Jvb3RtZW0gPSAxOwogCiAJY29kZXNpemUgPSAgKHVuc2lnbmVkIGxvbmcpICZfZXRleHQgLSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwpAQCAtNzEzLDcgKzkzOCw3IEBACiAJcHJpbnRrKEtFUk5fSU5GTyAiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxhYmxlICglbGRrIGtlcm5lbCBjb2RlLCAiCiAJCQkJIiVsZGsgcmVzZXJ2ZWQsICVsZGsgZGF0YSwgJWxkayBpbml0KVxuIiwKIAkJKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfcGFnZXMoKSA8PCAoUEFHRV9TSElGVC0xMCksCi0JCWVuZF9wZm4gPDwgKFBBR0VfU0hJRlQtMTApLAorCQltYXhfcGZuIDw8IChQQUdFX1NISUZULTEwKSwKIAkJY29kZXNpemUgPj4gMTAsCiAJCXJlc2VydmVkcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLAogCQlkYXRhc2l6ZSA+PiAxMCwKQEAgLTc2Niw2ICs5OTEsMTMgQEAKIHZvaWQgbWFya19yb2RhdGFfcm8odm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gUEZOX0FMSUdOKF9zdGV4dCksIGVuZCA9IFBGTl9BTElHTihfX2VuZF9yb2RhdGEpOworCXVuc2lnbmVkIGxvbmcgcm9kYXRhX3N0YXJ0ID0KKwkJKCh1bnNpZ25lZCBsb25nKV9fc3RhcnRfcm9kYXRhICsgUEFHRV9TSVpFIC0gMSkgJiBQQUdFX01BU0s7CisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKwkvKiBEeW5hbWljIHRyYWNpbmcgbW9kaWZpZXMgdGhlIGtlcm5lbCB0ZXh0IHNlY3Rpb24gKi8KKwlzdGFydCA9IHJvZGF0YV9zdGFydDsKKyNlbmRpZgogCiAJcHJpbnRrKEtFUk5fSU5GTyAiV3JpdGUgcHJvdGVjdGluZyB0aGUga2VybmVsIHJlYWQtb25seSBkYXRhOiAlbHVrXG4iLAogCSAgICAgICAoZW5kIC0gc3RhcnQpID4+IDEwKTsKQEAgLTc3NSw4ICsxMDA3LDcgQEAKIAkgKiBUaGUgcm9kYXRhIHNlY3Rpb24gKGJ1dCBub3QgdGhlIGtlcm5lbCB0ZXh0ISkgc2hvdWxkIGFsc28gYmUKIAkgKiBub3QtZXhlY3V0YWJsZS4KIAkgKi8KLQlzdGFydCA9ICgodW5zaWduZWQgbG9uZylfX3N0YXJ0X3JvZGF0YSArIFBBR0VfU0laRSAtIDEpICYgUEFHRV9NQVNLOwotCXNldF9tZW1vcnlfbngoc3RhcnQsIChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCk7CisJc2V0X21lbW9yeV9ueChyb2RhdGFfc3RhcnQsIChlbmQgLSByb2RhdGFfc3RhcnQpID4+IFBBR0VfU0hJRlQpOwogCiAJcm9kYXRhX3Rlc3QoKTsKIApAQCAtNzk4LDI0ICsxMDI5LDI2IEBACiB9CiAjZW5kaWYKIAotdm9pZCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsZW4pCitpbnQgX19pbml0IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBsZW4sCisJCQkJICAgaW50IGZsYWdzKQogewogI2lmZGVmIENPTkZJR19OVU1BCiAJaW50IG5pZCwgbmV4dF9uaWQ7CisJaW50IHJldDsKICNlbmRpZgogCXVuc2lnbmVkIGxvbmcgcGZuID0gcGh5cyA+PiBQQUdFX1NISUZUOwogCi0JaWYgKHBmbiA+PSBlbmRfcGZuKSB7CisJaWYgKHBmbiA+PSBtYXhfcGZuKSB7CiAJCS8qCiAJCSAqIFRoaXMgY2FuIGhhcHBlbiB3aXRoIGtkdW1wIGtlcm5lbHMgd2hlbiBhY2Nlc3NpbmcKIAkJICogZmlybXdhcmUgdGFibGVzOgogCQkgKi8KIAkJaWYgKHBmbiA8IG1heF9wZm5fbWFwcGVkKQotCQkJcmV0dXJuOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJcHJpbnRrKEtFUk5fRVJSICJyZXNlcnZlX2Jvb3RtZW06IGlsbGVnYWwgcmVzZXJ2ZSAlbHggJXVcbiIsCisJCXByaW50ayhLRVJOX0VSUiAicmVzZXJ2ZV9ib290bWVtOiBpbGxlZ2FsIHJlc2VydmUgJWx4ICVsdVxuIiwKIAkJCQlwaHlzLCBsZW4pOwotCQlyZXR1cm47CisJCXJldHVybiAtRUZBVUxUOwogCX0KIAogCS8qIFNob3VsZCBjaGVjayBoZXJlIGFnYWluc3QgdGhlIGU4MjAgbWFwIHRvIGF2b2lkIGRvdWJsZSBmcmVlICovCkBAIC04MjMsOSArMTA1NiwxMyBAQAogCW5pZCA9IHBoeXNfdG9fbmlkKHBoeXMpOwogCW5leHRfbmlkID0gcGh5c190b19uaWQocGh5cyArIGxlbiAtIDEpOwogCWlmIChuaWQgPT0gbmV4dF9uaWQpCi0JCXJlc2VydmVfYm9vdG1lbV9ub2RlKE5PREVfREFUQShuaWQpLCBwaHlzLCBsZW4sIEJPT1RNRU1fREVGQVVMVCk7CisJCXJldCA9IHJlc2VydmVfYm9vdG1lbV9ub2RlKE5PREVfREFUQShuaWQpLCBwaHlzLCBsZW4sIGZsYWdzKTsKIAllbHNlCi0JCXJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIEJPT1RNRU1fREVGQVVMVCk7CisJCXJldCA9IHJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIGZsYWdzKTsKKworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKwogI2Vsc2UKIAlyZXNlcnZlX2Jvb3RtZW0ocGh5cywgbGVuLCBCT09UTUVNX0RFRkFVTFQpOwogI2VuZGlmCkBAIC04MzQsNiArMTA3MSw4IEBACiAJCWRtYV9yZXNlcnZlICs9IGxlbiAvIFBBR0VfU0laRTsKIAkJc2V0X2RtYV9yZXNlcnZlKGRtYV9yZXNlcnZlKTsKIAl9CisKKwlyZXR1cm4gMDsKIH0KIAogaW50IGtlcm5fYWRkcl92YWxpZCh1bnNpZ25lZCBsb25nIGFkZHIpCkBAIC05MzgsNyArMTE3Nyw3IEBACiAJcG1kX3QgKnBtZDsKIAogCWZvciAoOyBhZGRyIDwgZW5kOyBhZGRyID0gbmV4dCkgewotCQluZXh0ID0gcG1kX2FkZHJfZW5kKGFkZHIsIGVuZCk7CisJCXZvaWQgKnAgPSBOVUxMOwogCiAJCXBnZCA9IHZtZW1tYXBfcGdkX3BvcHVsYXRlKGFkZHIsIG5vZGUpOwogCQlpZiAoIXBnZCkKQEAgLTk0OCwzMyArMTE4Nyw1MSBAQAogCQlpZiAoIXB1ZCkKIAkJCXJldHVybiAtRU5PTUVNOwogCi0JCXBtZCA9IHBtZF9vZmZzZXQocHVkLCBhZGRyKTsKLQkJaWYgKHBtZF9ub25lKCpwbWQpKSB7Ci0JCQlwdGVfdCBlbnRyeTsKLQkJCXZvaWQgKnA7CisJCWlmICghY3B1X2hhc19wc2UpIHsKKwkJCW5leHQgPSAoYWRkciArIFBBR0VfU0laRSkgJiBQQUdFX01BU0s7CisJCQlwbWQgPSB2bWVtbWFwX3BtZF9wb3B1bGF0ZShwdWQsIGFkZHIsIG5vZGUpOwogCi0JCQlwID0gdm1lbW1hcF9hbGxvY19ibG9jayhQTURfU0laRSwgbm9kZSk7CisJCQlpZiAoIXBtZCkKKwkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJcCA9IHZtZW1tYXBfcHRlX3BvcHVsYXRlKHBtZCwgYWRkciwgbm9kZSk7CisKIAkJCWlmICghcCkKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAotCQkJZW50cnkgPSBwZm5fcHRlKF9fcGEocCkgPj4gUEFHRV9TSElGVCwKLQkJCQkJCQlQQUdFX0tFUk5FTF9MQVJHRSk7Ci0JCQlzZXRfcG1kKHBtZCwgX19wbWQocHRlX3ZhbChlbnRyeSkpKTsKLQotCQkJLyogY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgY29udGlndW91cyBibG9ja3MgKi8KLQkJCWlmIChwX2VuZCAhPSBwIHx8IG5vZGVfc3RhcnQgIT0gbm9kZSkgewotCQkJCWlmIChwX3N0YXJ0KQotCQkJCQlwcmludGsoS0VSTl9ERUJVRyAiIFslbHgtJWx4XSBQTUQgLT4gWyVwLSVwXSBvbiBub2RlICVkXG4iLAotCQkJCQkJYWRkcl9zdGFydCwgYWRkcl9lbmQtMSwgcF9zdGFydCwgcF9lbmQtMSwgbm9kZV9zdGFydCk7Ci0JCQkJYWRkcl9zdGFydCA9IGFkZHI7Ci0JCQkJbm9kZV9zdGFydCA9IG5vZGU7Ci0JCQkJcF9zdGFydCA9IHA7Ci0JCQl9Ci0JCQlhZGRyX2VuZCA9IGFkZHIgKyBQTURfU0laRTsKLQkJCXBfZW5kID0gcCArIFBNRF9TSVpFOworCQkJYWRkcl9lbmQgPSBhZGRyICsgUEFHRV9TSVpFOworCQkJcF9lbmQgPSBwICsgUEFHRV9TSVpFOwogCQl9IGVsc2UgewotCQkJdm1lbW1hcF92ZXJpZnkoKHB0ZV90ICopcG1kLCBub2RlLCBhZGRyLCBuZXh0KTsKKwkJCW5leHQgPSBwbWRfYWRkcl9lbmQoYWRkciwgZW5kKTsKKworCQkJcG1kID0gcG1kX29mZnNldChwdWQsIGFkZHIpOworCQkJaWYgKHBtZF9ub25lKCpwbWQpKSB7CisJCQkJcHRlX3QgZW50cnk7CisKKwkJCQlwID0gdm1lbW1hcF9hbGxvY19ibG9jayhQTURfU0laRSwgbm9kZSk7CisJCQkJaWYgKCFwKQorCQkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJCWVudHJ5ID0gcGZuX3B0ZShfX3BhKHApID4+IFBBR0VfU0hJRlQsCisJCQkJCQlQQUdFX0tFUk5FTF9MQVJHRSk7CisJCQkJc2V0X3BtZChwbWQsIF9fcG1kKHB0ZV92YWwoZW50cnkpKSk7CisKKwkJCQkvKiBjaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBjb250aWd1b3VzIGJsb2NrcyAqLworCQkJCWlmIChwX2VuZCAhPSBwIHx8IG5vZGVfc3RhcnQgIT0gbm9kZSkgeworCQkJCQlpZiAocF9zdGFydCkKKwkJCQkJCXByaW50ayhLRVJOX0RFQlVHICIgWyVseC0lbHhdIFBNRCAtPiBbJXAtJXBdIG9uIG5vZGUgJWRcbiIsCisJCQkJCQkgICAgICAgYWRkcl9zdGFydCwgYWRkcl9lbmQtMSwgcF9zdGFydCwgcF9lbmQtMSwgbm9kZV9zdGFydCk7CisJCQkJCWFkZHJfc3RhcnQgPSBhZGRyOworCQkJCQlub2RlX3N0YXJ0ID0gbm9kZTsKKwkJCQkJcF9zdGFydCA9IHA7CisJCQkJfQorCisJCQkJYWRkcl9lbmQgPSBhZGRyICsgUE1EX1NJWkU7CisJCQkJcF9lbmQgPSBwICsgUE1EX1NJWkU7CisJCQl9IGVsc2UKKwkJCQl2bWVtbWFwX3ZlcmlmeSgocHRlX3QgKilwbWQsIG5vZGUsIGFkZHIsIG5leHQpOwogCQl9CisKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMgYi9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMKaW5kZXggMmIyYmIzZi4uMjRjMWQzYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vaW9yZW1hcC5jCisrKyBiL2FyY2gveDg2L21tL2lvcmVtYXAuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvbW1pb3RyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9lODIwLmg+CkBAIC0xMjIsMTAgKzEyMywxMyBAQAogewogCXVuc2lnbmVkIGxvbmcgcGZuLCBvZmZzZXQsIHZhZGRyOwogCXJlc291cmNlX3NpemVfdCBsYXN0X2FkZHI7CisJY29uc3QgcmVzb3VyY2Vfc2l6ZV90IHVuYWxpZ25lZF9waHlzX2FkZHIgPSBwaHlzX2FkZHI7CisJY29uc3QgdW5zaWduZWQgbG9uZyB1bmFsaWduZWRfc2l6ZSA9IHNpemU7CiAJc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKIAl1bnNpZ25lZCBsb25nIG5ld19wcm90X3ZhbDsKIAlwZ3Byb3RfdCBwcm90OwogCWludCByZXR2YWw7CisJdm9pZCBfX2lvbWVtICpyZXRfYWRkcjsKIAogCS8qIERvbid0IGFsbG93IHdyYXBhcm91bmQgb3IgemVybyBzaXplICovCiAJbGFzdF9hZGRyID0gcGh5c19hZGRyICsgc2l6ZSAtIDE7CkBAIC0xNDIsNyArMTQ2LDcgQEAKIAkvKgogCSAqIERvbid0IHJlbWFwIHRoZSBsb3cgUENJL0lTQSBhcmVhLCBpdCdzIGFsd2F5cyBtYXBwZWQuLgogCSAqLwotCWlmIChwaHlzX2FkZHIgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgbGFzdF9hZGRyIDwgSVNBX0VORF9BRERSRVNTKQorCWlmIChpc19JU0FfcmFuZ2UocGh5c19hZGRyLCBsYXN0X2FkZHIpKQogCQlyZXR1cm4gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopcGh5c190b192aXJ0KHBoeXNfYWRkcik7CiAKIAkvKgpAQCAtMjMzLDcgKzIzNywxMCBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSAodmFkZHIgKyBvZmZzZXQpOworCXJldF9hZGRyID0gKHZvaWQgX19pb21lbSAqKSAodmFkZHIgKyBvZmZzZXQpOworCW1taW90cmFjZV9pb3JlbWFwKHVuYWxpZ25lZF9waHlzX2FkZHIsIHVuYWxpZ25lZF9zaXplLCByZXRfYWRkcik7CisKKwlyZXR1cm4gcmV0X2FkZHI7CiB9CiAKIC8qKgpAQCAtMjYxLDcgKzI2OCw3IEBACiB7CiAJLyoKIAkgKiBJZGVhbGx5LCB0aGlzIHNob3VsZCBiZToKLQkgKglwYXRfd2NfZW5hYmxlZCA/IF9QQUdFX0NBQ0hFX1VDIDogX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CisJICoJcGF0X2VuYWJsZWQgPyBfUEFHRV9DQUNIRV9VQyA6IF9QQUdFX0NBQ0hFX1VDX01JTlVTOwogCSAqCiAJICogVGlsbCB3ZSBmaXggYWxsIFggZHJpdmVycyB0byB1c2UgaW9yZW1hcF93YygpLCB3ZSB3aWxsIHVzZQogCSAqIFVDIE1JTlVTLgpAQCAtMjg1LDcgKzI5Miw3IEBACiAgKi8KIHZvaWQgX19pb21lbSAqaW9yZW1hcF93Yyh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogewotCWlmIChwYXRfd2NfZW5hYmxlZCkKKwlpZiAocGF0X2VuYWJsZWQpCiAJCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgX1BBR0VfQ0FDSEVfV0MsCiAJCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CiAJZWxzZQpAQCAtMzAwLDYgKzMwNywyOSBAQAogfQogRVhQT1JUX1NZTUJPTChpb3JlbWFwX2NhY2hlKTsKIAorc3RhdGljIHZvaWQgX19pb21lbSAqaW9yZW1hcF9kZWZhdWx0KHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsCisJCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXZvaWQgKnJldDsKKwlpbnQgZXJyOworCisJLyoKKwkgKiAtIFdCIGZvciBXQi1hYmxlIG1lbW9yeSBhbmQgbm8gb3RoZXIgY29uZmxpY3RpbmcgbWFwcGluZ3MKKwkgKiAtIFVDX01JTlVTIGZvciBub24tV0ItYWJsZSBtZW1vcnkgd2l0aCBubyBvdGhlciBjb25mbGljdGluZyBtYXBwaW5ncworCSAqIC0gSW5oZXJpdCBmcm9tIGNvbmZsaXRpbmcgbWFwcGluZ3Mgb3RoZXJ3aXNlCisJICovCisJZXJyID0gcmVzZXJ2ZV9tZW10eXBlKHBoeXNfYWRkciwgcGh5c19hZGRyICsgc2l6ZSwgLTEsICZmbGFncyk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gKHZvaWQgKikgX19pb3JlbWFwX2NhbGxlcihwaHlzX2FkZHIsIHNpemUsIGZsYWdzLAorCQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOworCisJZnJlZV9tZW10eXBlKHBoeXNfYWRkciwgcGh5c19hZGRyICsgc2l6ZSk7CisJcmV0dXJuICh2b2lkIF9faW9tZW0gKilyZXQ7Cit9CisKIC8qKgogICogaW91bm1hcCAtIEZyZWUgYSBJTyByZW1hcHBpbmcKICAqIEBhZGRyOiB2aXJ0dWFsIGFkZHJlc3MgZnJvbSBpb3JlbWFwXyoKQEAgLTMxOCwxMyArMzQ4LDE1IEBACiAJICogdm1fYXJlYSBhbmQgYnkgc2ltcGx5IHJldHVybmluZyBhbiBhZGRyZXNzIGludG8gdGhlIGtlcm5lbCBtYXBwaW5nCiAJICogb2YgSVNBIHNwYWNlLiAgIFNvIGhhbmRsZSB0aGF0IGhlcmUuCiAJICovCi0JaWYgKGFkZHIgPj0gcGh5c190b192aXJ0KElTQV9TVEFSVF9BRERSRVNTKSAmJgotCSAgICBhZGRyIDwgcGh5c190b192aXJ0KElTQV9FTkRfQUREUkVTUykpCisJaWYgKCh2b2lkIF9fZm9yY2UgKilhZGRyID49IHBoeXNfdG9fdmlydChJU0FfU1RBUlRfQUREUkVTUykgJiYKKwkgICAgKHZvaWQgX19mb3JjZSAqKWFkZHIgPCBwaHlzX3RvX3ZpcnQoSVNBX0VORF9BRERSRVNTKSkKIAkJcmV0dXJuOwogCiAJYWRkciA9ICh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKikKIAkJKFBBR0VfTUFTSyAmICh1bnNpZ25lZCBsb25nIF9fZm9yY2UpYWRkcik7CiAKKwltbWlvdHJhY2VfaW91bm1hcChhZGRyKTsKKwogCS8qIFVzZSB0aGUgdm0gYXJlYSB1bmxvY2tlZCwgYXNzdW1pbmcgdGhlIGNhbGxlcgogCSAgIGVuc3VyZXMgdGhlcmUgaXNuJ3QgYW5vdGhlciBpb3VubWFwIGZvciB0aGUgc2FtZSBhZGRyZXNzCiAJICAgaW4gcGFyYWxsZWwuIFJldXNlIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgaXMgcHJldmVudGVkIGJ5CkBAIC0zMzIsNyArMzY0LDcgQEAKIAkgICBjcGEgdGFrZXMgY2FyZSBvZiB0aGUgZGlyZWN0IG1hcHBpbmdzLiAqLwogCXJlYWRfbG9jaygmdm1saXN0X2xvY2spOwogCWZvciAocCA9IHZtbGlzdDsgcDsgcCA9IHAtPm5leHQpIHsKLQkJaWYgKHAtPmFkZHIgPT0gYWRkcikKKwkJaWYgKHAtPmFkZHIgPT0gKHZvaWQgX19mb3JjZSAqKWFkZHIpCiAJCQlicmVhazsKIAl9CiAJcmVhZF91bmxvY2soJnZtbGlzdF9sb2NrKTsKQEAgLTM0Niw3ICszNzgsNyBAQAogCWZyZWVfbWVtdHlwZShwLT5waHlzX2FkZHIsIHAtPnBoeXNfYWRkciArIGdldF92bV9hcmVhX3NpemUocCkpOwogCiAJLyogRmluYWxseSByZW1vdmUgaXQgKi8KLQlvID0gcmVtb3ZlX3ZtX2FyZWEoKHZvaWQgKilhZGRyKTsKKwlvID0gcmVtb3ZlX3ZtX2FyZWEoKHZvaWQgX19mb3JjZSAqKWFkZHIpOwogCUJVR19PTihwICE9IG8gfHwgbyA9PSBOVUxMKTsKIAlrZnJlZShwKTsKIH0KQEAgLTM2NSw3ICszOTcsNyBAQAogCWlmIChwYWdlX2lzX3JhbShzdGFydCA+PiBQQUdFX1NISUZUKSkKIAkJcmV0dXJuIF9fdmEocGh5cyk7CiAKLQlhZGRyID0gKHZvaWQgKilpb3JlbWFwKHN0YXJ0LCBQQUdFX1NJWkUpOworCWFkZHIgPSAodm9pZCBfX2ZvcmNlICopaW9yZW1hcF9kZWZhdWx0KHN0YXJ0LCBQQUdFX1NJWkUpOwogCWlmIChhZGRyKQogCQlhZGRyID0gKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpYWRkciB8IChwaHlzICYgflBBR0VfTUFTSykpOwogCkBAIC0zODEsOCArNDEzLDYgQEAKIAlyZXR1cm47CiB9CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0KIGludCBfX2luaXRkYXRhIGVhcmx5X2lvcmVtYXBfZGVidWc7CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X2lvcmVtYXBfZGVidWdfc2V0dXAoY2hhciAqc3RyKQpAQCAtMzk0LDggKzQyNCw3IEBACiBlYXJseV9wYXJhbSgiZWFybHlfaW9yZW1hcF9kZWJ1ZyIsIGVhcmx5X2lvcmVtYXBfZGVidWdfc2V0dXApOwogCiBzdGF0aWMgX19pbml0ZGF0YSBpbnQgYWZ0ZXJfcGFnaW5nX2luaXQ7Ci1zdGF0aWMgcHRlX3QgYm1fcHRlW1BBR0VfU0laRS9zaXplb2YocHRlX3QpXQotCQlfX3NlY3Rpb24oLmJzcy5wYWdlX2FsaWduZWQpOworc3RhdGljIHB0ZV90IGJtX3B0ZVtQQUdFX1NJWkUvc2l6ZW9mKHB0ZV90KV0gX19wYWdlX2FsaWduZWRfYnNzOwogCiBzdGF0aWMgaW5saW5lIHBtZF90ICogX19pbml0IGVhcmx5X2lvcmVtYXBfcG1kKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKQEAgLTQ4NCwxMCArNTEzLDExIEBACiAJCXJldHVybjsKIAl9CiAJcHRlID0gZWFybHlfaW9yZW1hcF9wdGUoYWRkcik7CisKIAlpZiAocGdwcm90X3ZhbChmbGFncykpCiAJCXNldF9wdGUocHRlLCBwZm5fcHRlKHBoeXMgPj4gUEFHRV9TSElGVCwgZmxhZ3MpKTsKIAllbHNlCi0JCXB0ZV9jbGVhcihOVUxMLCBhZGRyLCBwdGUpOworCQlwdGVfY2xlYXIoJmluaXRfbW0sIGFkZHIsIHB0ZSk7CiAJX19mbHVzaF90bGJfb25lKGFkZHIpOwogfQogCkBAIC02MjUsNSArNjU1LDMgQEAKIHsKIAlXQVJOX09OKDEpOwogfQotCi0jZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vazh0b3BvbG9neV82NC5jIGIvYXJjaC94ODYvbW0vazh0b3BvbG9neV82NC5jCmluZGV4IDFmNDc2ZTQuLjQxZjFiNWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2s4dG9wb2xvZ3lfNjQuYworKysgYi9hcmNoL3g4Ni9tbS9rOHRvcG9sb2d5XzY0LmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KICNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9rOC5oPgogCiBzdGF0aWMgX19pbml0IGludCBmaW5kX25vcnRoYnJpZGdlKHZvaWQpCiB7CkBAIC01NiwzNCArNTcsMzMgQEAKIAkvKgogCSAqIEZpbmQgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgogCSAqLworI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQogCWVhcmx5X2ZpbmRfc21wX2NvbmZpZygpOworI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FDUEkKIAkvKgogCSAqIFJlYWQgQVBJQyBpbmZvcm1hdGlvbiBmcm9tIEFDUEkgdGFibGVzLgogCSAqLwogCWVhcmx5X2FjcGlfYm9vdF9pbml0KCk7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X01QUEFSU0UKIAkvKgogCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CiAJICovCiAJaWYgKHNtcF9mb3VuZF9jb25maWcpCiAJCWVhcmx5X2dldF9zbXBfY29uZmlnKCk7CisjZW5kaWYKIAllYXJseV9pbml0X2xhcGljX21hcHBpbmcoKTsKIH0KIAogaW50IF9faW5pdCBrOF9zY2FuX25vZGVzKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogeworCXVuc2lnbmVkIG51bW5vZGVzLCBjb3JlcywgYml0cywgYXBpY2lkX2Jhc2U7CiAJdW5zaWduZWQgbG9uZyBwcmV2YmFzZTsKIAlzdHJ1Y3QgYm9vdG5vZGUgbm9kZXNbOF07Ci0JaW50IG5vZGVpZCwgaSwgbmI7CiAJdW5zaWduZWQgY2hhciBub2RlaWRzWzhdOwotCWludCBmb3VuZCA9IDA7Ci0JdTMyIHJlZzsKLQl1bnNpZ25lZCBudW1ub2RlczsKLQl1bnNpZ25lZCBjb3JlczsKLQl1bnNpZ25lZCBiaXRzOwotCWludCBqOwotCXVuc2lnbmVkIGFwaWNpZF9iYXNlOworCWludCBpLCBqLCBuYiwgZm91bmQgPSAwOworCXUzMiBub2RlaWQsIHJlZzsKIAogCWlmICghZWFybHlfcGNpX2FsbG93ZWQoKSkKIAkJcmV0dXJuIC0xOwpAQCAtMTA1LDcgKzEwNSw2IEBACiAJcHJldmJhc2UgPSAwOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKIAkJdW5zaWduZWQgbG9uZyBiYXNlLCBsaW1pdDsKLQkJdTMyIG5vZGVpZDsKIAogCQliYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG5iLCAxLCAweDQwICsgaSo4KTsKIAkJbGltaXQgPSByZWFkX3BjaV9jb25maWcoMCwgbmIsIDEsIDB4NDQgKyBpKjgpOwpAQCAtMTQ0LDggKzE0Myw4IEBACiAJCWxpbWl0IHw9ICgxPDwyNCktMTsKIAkJbGltaXQrKzsKIAotCQlpZiAobGltaXQgPiBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpCi0JCQlsaW1pdCA9IGVuZF9wZm4gPDwgUEFHRV9TSElGVDsKKwkJaWYgKGxpbWl0ID4gbWF4X3BmbiA8PCBQQUdFX1NISUZUKQorCQkJbGltaXQgPSBtYXhfcGZuIDw8IFBBR0VfU0hJRlQ7CiAJCWlmIChsaW1pdCA8PSBiYXNlKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2ttbWlvLmMgYi9hcmNoL3g4Ni9tbS9rbW1pby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZDgyMDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9tbS9rbW1pby5jCkBAIC0wLDAgKzEsNTEwIEBACisvKiBTdXBwb3J0IGZvciBNTUlPIHByb2Jlcy4KKyAqIEJlbmZpdCBtYW55IGNvZGUgZnJvbSBrcHJvYmVzCisgKiAoQykgMjAwMiBMb3VpcyBaaHVhbmcgPGxvdWlzLnpodWFuZ0BpbnRlbC5jb20+LgorICogICAgIDIwMDcgQWxleGFuZGVyIEVpY2huZXIKKyAqICAgICAyMDA4IFBla2thIFBhYWxhbmVuIDxwcUBpa2kuZmk+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9yY3VsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxhc20vZGVidWdyZWcuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKworI2RlZmluZSBLTU1JT19QQUdFX0hBU0hfQklUUyA0CisjZGVmaW5lIEtNTUlPX1BBR0VfVEFCTEVfU0laRSAoMSA8PCBLTU1JT19QQUdFX0hBU0hfQklUUykKKworc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcmVsZWFzZV9uZXh0OworCXVuc2lnbmVkIGxvbmcgcGFnZTsgLyogbG9jYXRpb24gb2YgdGhlIGZhdWx0IHBhZ2UgKi8KKworCS8qCisJICogTnVtYmVyIG9mIHRpbWVzIHRoaXMgcGFnZSBoYXMgYmVlbiByZWdpc3RlcmVkIGFzIGEgcGFydAorCSAqIG9mIGEgcHJvYmUuIElmIHplcm8sIHBhZ2UgaXMgZGlzYXJtZWQgYW5kIHRoaXMgbWF5IGJlIGZyZWVkLgorCSAqIFVzZWQgb25seSBieSB3cml0ZXJzIChSQ1UpLgorCSAqLworCWludCBjb3VudDsKK307CisKK3N0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UgeworCXN0cnVjdCByY3VfaGVhZCByY3U7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKnJlbGVhc2VfbGlzdDsKK307CisKK3N0cnVjdCBrbW1pb19jb250ZXh0IHsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqZnBhZ2U7CisJc3RydWN0IGttbWlvX3Byb2JlICpwcm9iZTsKKwl1bnNpZ25lZCBsb25nIHNhdmVkX2ZsYWdzOworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKwlpbnQgYWN0aXZlOworfTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhrbW1pb19sb2NrKTsKKworLyogUHJvdGVjdGVkIGJ5IGttbWlvX2xvY2sgKi8KK3Vuc2lnbmVkIGludCBrbW1pb19jb3VudDsKKworLyogUmVhZC1wcm90ZWN0ZWQgYnkgUkNVLCB3cml0ZS1wcm90ZWN0ZWQgYnkga21taW9fbG9jay4gKi8KK3N0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkIGttbWlvX3BhZ2VfdGFibGVbS01NSU9fUEFHRV9UQUJMRV9TSVpFXTsKK3N0YXRpYyBMSVNUX0hFQUQoa21taW9fcHJvYmVzKTsKKworc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgKmttbWlvX3BhZ2VfbGlzdCh1bnNpZ25lZCBsb25nIHBhZ2UpCit7CisJcmV0dXJuICZrbW1pb19wYWdlX3RhYmxlW2hhc2hfbG9uZyhwYWdlLCBLTU1JT19QQUdFX0hBU0hfQklUUyldOworfQorCisvKiBBY2Nlc3NlZCBwZXItY3B1ICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGttbWlvX2NvbnRleHQsIGttbWlvX2N0eCk7CisKKy8qCisgKiB0aGlzIGlzIGJhc2ljYWxseSBhIGR5bmFtaWMgc3RhYmJpbmcgcHJvYmxlbToKKyAqIENvdWxkIHVzZSB0aGUgZXhpc3RpbmcgcHJpbyB0cmVlIGNvZGUgb3IKKyAqIFBvc3NpYmxlIGJldHRlciBpbXBsZW1lbnRhdGlvbnM6CisgKiBUaGUgSW50ZXJ2YWwgU2tpcCBMaXN0OiBBIERhdGEgU3RydWN0dXJlIGZvciBGaW5kaW5nIEFsbCBJbnRlcnZhbHMgVGhhdAorICogT3ZlcmxhcCBhIFBvaW50IChtaWdodCBiZSBzaW1wbGUpCisgKiBTcGFjZSBFZmZpY2llbnQgRHluYW1pYyBTdGFiYmluZyB3aXRoIEZhc3QgUXVlcmllcyAtIE1pa2tlbCBUaG9ydXAKKyAqLworLyogR2V0IHRoZSBrbW1pbyBhdCB0aGlzIGFkZHIgKGlmIGFueSkuIFlvdSBtdXN0IGJlIGhvbGRpbmcgUkNVIHJlYWQgbG9jay4gKi8KK3N0YXRpYyBzdHJ1Y3Qga21taW9fcHJvYmUgKmdldF9rbW1pb19wcm9iZSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RydWN0IGttbWlvX3Byb2JlICpwOworCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHAsICZrbW1pb19wcm9iZXMsIGxpc3QpIHsKKwkJaWYgKGFkZHIgPj0gcC0+YWRkciAmJiBhZGRyIDw9IChwLT5hZGRyICsgcC0+bGVuKSkKKwkJCXJldHVybiBwOworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworLyogWW91IG11c3QgYmUgaG9sZGluZyBSQ1UgcmVhZCBsb2NrLiAqLworc3RhdGljIHN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpnZXRfa21taW9fZmF1bHRfcGFnZSh1bnNpZ25lZCBsb25nIHBhZ2UpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcDsKKworCXBhZ2UgJj0gUEFHRV9NQVNLOworCWhlYWQgPSBrbW1pb19wYWdlX2xpc3QocGFnZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocCwgaGVhZCwgbGlzdCkgeworCQlpZiAocC0+cGFnZSA9PSBwYWdlKQorCQkJcmV0dXJuIHA7CisJfQorCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBzZXRfcGFnZV9wcmVzZW50KHVuc2lnbmVkIGxvbmcgYWRkciwgYm9vbCBwcmVzZW50LAorCQkJCQkJCXVuc2lnbmVkIGludCAqcGdsZXZlbCkKK3sKKwlwdGV2YWxfdCBwdGV2YWw7CisJcG1kdmFsX3QgcG1kdmFsOworCXVuc2lnbmVkIGludCBsZXZlbDsKKwlwbWRfdCAqcG1kOworCXB0ZV90ICpwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyLCAmbGV2ZWwpOworCisJaWYgKCFwdGUpIHsKKwkJcHJfZXJyKCJrbW1pbzogbm8gcHRlIGZvciBwYWdlIDB4JTA4bHhcbiIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCisJaWYgKHBnbGV2ZWwpCisJCSpwZ2xldmVsID0gbGV2ZWw7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBQR19MRVZFTF8yTToKKwkJcG1kID0gKHBtZF90ICopcHRlOworCQlwbWR2YWwgPSBwbWRfdmFsKCpwbWQpICYgfl9QQUdFX1BSRVNFTlQ7CisJCWlmIChwcmVzZW50KQorCQkJcG1kdmFsIHw9IF9QQUdFX1BSRVNFTlQ7CisJCXNldF9wbWQocG1kLCBfX3BtZChwbWR2YWwpKTsKKwkJYnJlYWs7CisKKwljYXNlIFBHX0xFVkVMXzRLOgorCQlwdGV2YWwgPSBwdGVfdmFsKCpwdGUpICYgfl9QQUdFX1BSRVNFTlQ7CisJCWlmIChwcmVzZW50KQorCQkJcHRldmFsIHw9IF9QQUdFX1BSRVNFTlQ7CisJCXNldF9wdGVfYXRvbWljKHB0ZSwgX19wdGUocHRldmFsKSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJfZXJyKCJrbW1pbzogdW5leHBlY3RlZCBwYWdlIGxldmVsIDB4JXguXG4iLCBsZXZlbCk7CisJCXJldHVybjsKKwl9CisKKwlfX2ZsdXNoX3RsYl9vbmUoYWRkcik7Cit9CisKKy8qKiBNYXJrIHRoZSBnaXZlbiBwYWdlIGFzIG5vdCBwcmVzZW50LiBBY2Nlc3MgdG8gaXQgd2lsbCB0cmlnZ2VyIGEgZmF1bHQuICovCitzdGF0aWMgdm9pZCBhcm1fa21taW9fZmF1bHRfcGFnZSh1bnNpZ25lZCBsb25nIHBhZ2UsIHVuc2lnbmVkIGludCAqcGdsZXZlbCkKK3sKKwlzZXRfcGFnZV9wcmVzZW50KHBhZ2UgJiBQQUdFX01BU0ssIGZhbHNlLCBwZ2xldmVsKTsKK30KKworLyoqIE1hcmsgdGhlIGdpdmVuIHBhZ2UgYXMgcHJlc2VudC4gKi8KK3N0YXRpYyB2b2lkIGRpc2FybV9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSwgdW5zaWduZWQgaW50ICpwZ2xldmVsKQoreworCXNldF9wYWdlX3ByZXNlbnQocGFnZSAmIFBBR0VfTUFTSywgdHJ1ZSwgcGdsZXZlbCk7Cit9CisKKy8qCisgKiBUaGlzIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGRvX3BhZ2VfZmF1bHQoKS4KKyAqCisgKiBXZSBtYXkgYmUgaW4gYW4gaW50ZXJydXB0IG9yIGEgY3JpdGljYWwgc2VjdGlvbi4gQWxzbyBwcmVmZWN0aGluZyBtYXkKKyAqIHRyaWdnZXIgYSBwYWdlIGZhdWx0LiBXZSBtYXkgYmUgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzIHN3aXRjaC4KKyAqIFdlIGNhbm5vdCB0YWtlIGFueSBsb2NrcywgYmVjYXVzZSB3ZSBjb3VsZCBiZSBleGVjdXRpbmcgZXNwZWNpYWxseQorICogd2l0aGluIGEga21taW8gY3JpdGljYWwgc2VjdGlvbi4KKyAqCisgKiBMb2NhbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgc28gcHJlZW1wdGlvbiBjYW5ub3QgaGFwcGVuLgorICogRG8gbm90IGVuYWJsZSBpbnRlcnJ1cHRzLCBkbyBub3Qgc2xlZXAsIGFuZCB3YXRjaCBvdXQgZm9yIG90aGVyIENQVXMuCisgKi8KKy8qCisgKiBJbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBvbiBlbnRyeSBhcyB0cmFwMyBpcyBhbiBpbnRlcnJ1cHQgZ2F0ZQorICogYW5kIHRoZXkgcmVtYWluIGRpc2FibGVkIHRob3JvdWdoIG91dCB0aGlzIGZ1bmN0aW9uLgorICovCitpbnQga21taW9faGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0cnVjdCBrbW1pb19jb250ZXh0ICpjdHg7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKmZhdWx0cGFnZTsKKwlpbnQgcmV0ID0gMDsgLyogZGVmYXVsdCB0byBmYXVsdCBub3QgaGFuZGxlZCAqLworCisJLyoKKwkgKiBQcmVlbXB0aW9uIGlzIG5vdyBkaXNhYmxlZCB0byBwcmV2ZW50IHByb2Nlc3Mgc3dpdGNoIGR1cmluZworCSAqIHNpbmdsZSBzdGVwcGluZy4gV2UgY2FuIG9ubHkgaGFuZGxlIG9uZSBhY3RpdmUga21taW8gdHJhY2UKKwkgKiBwZXIgY3B1LCBzbyBlbnN1cmUgdGhhdCB3ZSBmaW5pc2ggaXQgYmVmb3JlIHNvbWV0aGluZyBlbHNlCisJICogZ2V0cyB0byBydW4uIFdlIGFsc28gaG9sZCB0aGUgUkNVIHJlYWQgbG9jayBvdmVyIHNpbmdsZQorCSAqIHN0ZXBwaW5nIHRvIGF2b2lkIGxvb2tpbmcgdXAgdGhlIHByb2JlIGFuZCBrbW1pb19mYXVsdF9wYWdlCisJICogYWdhaW4uCisJICovCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJcmN1X3JlYWRfbG9jaygpOworCisJZmF1bHRwYWdlID0gZ2V0X2ttbWlvX2ZhdWx0X3BhZ2UoYWRkcik7CisJaWYgKCFmYXVsdHBhZ2UpIHsKKwkJLyoKKwkJICogRWl0aGVyIHRoaXMgcGFnZSBmYXVsdCBpcyBub3QgY2F1c2VkIGJ5IGttbWlvLCBvcgorCQkgKiBhbm90aGVyIENQVSBqdXN0IHB1bGxlZCB0aGUga21taW8gcHJvYmUgZnJvbSB1bmRlcgorCQkgKiBvdXIgZmVldC4gVGhlIGxhdHRlciBjYXNlIHNob3VsZCBub3QgYmUgcG9zc2libGUuCisJCSAqLworCQlnb3RvIG5vX2ttbWlvOworCX0KKworCWN0eCA9ICZnZXRfY3B1X3ZhcihrbW1pb19jdHgpOworCWlmIChjdHgtPmFjdGl2ZSkgeworCQlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShmYXVsdHBhZ2UtPnBhZ2UsIE5VTEwpOworCQlpZiAoYWRkciA9PSBjdHgtPmFkZHIpIHsKKwkJCS8qCisJCQkgKiBPbiBTTVAgd2Ugc29tZXRpbWVzIGdldCByZWN1cnNpdmUgcHJvYmUgaGl0cyBvbiB0aGUKKwkJCSAqIHNhbWUgYWRkcmVzcy4gQ29udGV4dCBpcyBhbHJlYWR5IHNhdmVkLCBmYWxsIG91dC4KKwkJCSAqLworCQkJcHJfZGVidWcoImttbWlvOiBkdXBsaWNhdGUgcHJvYmUgaGl0IG9uIENQVSAlZCwgZm9yICIKKwkJCQkJCSJhZGRyZXNzIDB4JTA4bHguXG4iLAorCQkJCQkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBhZGRyKTsKKwkJCXJldCA9IDE7CisJCQlnb3RvIG5vX2ttbWlvX2N0eDsKKwkJfQorCQkvKgorCQkgKiBQcmV2ZW50IG92ZXJ3cml0aW5nIGFscmVhZHkgaW4tZmxpZ2h0IGNvbnRleHQuCisJCSAqIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIGxldCdzIGhvcGUgZGlzYXJtaW5nIGF0IGxlYXN0CisJCSAqIHByZXZlbnRzIGEgcGFuaWMuCisJCSAqLworCQlwcl9lbWVyZygia21taW86IHJlY3Vyc2l2ZSBwcm9iZSBoaXQgb24gQ1BVICVkLCAiCisJCQkJCSJmb3IgYWRkcmVzcyAweCUwOGx4LiBJZ25vcmluZy5cbiIsCisJCQkJCXNtcF9wcm9jZXNzb3JfaWQoKSwgYWRkcik7CisJCXByX2VtZXJnKCJrbW1pbzogcHJldmlvdXMgaGl0IHdhcyBhdCAweCUwOGx4LlxuIiwKKwkJCQkJY3R4LT5hZGRyKTsKKwkJZ290byBub19rbW1pb19jdHg7CisJfQorCWN0eC0+YWN0aXZlKys7CisKKwljdHgtPmZwYWdlID0gZmF1bHRwYWdlOworCWN0eC0+cHJvYmUgPSBnZXRfa21taW9fcHJvYmUoYWRkcik7CisJY3R4LT5zYXZlZF9mbGFncyA9IChyZWdzLT5mbGFncyAmIChYODZfRUZMQUdTX1RGIHwgWDg2X0VGTEFHU19JRikpOworCWN0eC0+YWRkciA9IGFkZHI7CisKKwlpZiAoY3R4LT5wcm9iZSAmJiBjdHgtPnByb2JlLT5wcmVfaGFuZGxlcikKKwkJY3R4LT5wcm9iZS0+cHJlX2hhbmRsZXIoY3R4LT5wcm9iZSwgcmVncywgYWRkcik7CisKKwkvKgorCSAqIEVuYWJsZSBzaW5nbGUtc3RlcHBpbmcgYW5kIGRpc2FibGUgaW50ZXJydXB0cyBmb3IgdGhlIGZhdWx0aW5nCisJICogY29udGV4dC4gTG9jYWwgaW50ZXJydXB0cyBtdXN0IG5vdCBnZXQgZW5hYmxlZCBkdXJpbmcgc3RlcHBpbmcuCisJICovCisJcmVncy0+ZmxhZ3MgfD0gWDg2X0VGTEFHU19URjsKKwlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19JRjsKKworCS8qIE5vdyB3ZSBzZXQgcHJlc2VudCBiaXQgaW4gUFRFIGFuZCBzaW5nbGUgc3RlcC4gKi8KKwlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShjdHgtPmZwYWdlLT5wYWdlLCBOVUxMKTsKKworCS8qCisJICogSWYgYW5vdGhlciBjcHUgYWNjZXNzZXMgdGhlIHNhbWUgcGFnZSB3aGlsZSB3ZSBhcmUgc3RlcHBpbmcsCisJICogdGhlIGFjY2VzcyB3aWxsIG5vdCBiZSBjYXVnaHQuIEl0IHdpbGwgc2ltcGx5IHN1Y2NlZWQgYW5kIHRoZQorCSAqIG9ubHkgZG93bnNpZGUgaXMgd2UgbG9zZSB0aGUgZXZlbnQuIElmIHRoaXMgYmVjb21lcyBhIHByb2JsZW0sCisJICogdGhlIHVzZXIgc2hvdWxkIGRyb3AgdG8gc2luZ2xlIGNwdSBiZWZvcmUgdHJhY2luZy4KKwkgKi8KKworCXB1dF9jcHVfdmFyKGttbWlvX2N0eCk7CisJcmV0dXJuIDE7IC8qIGZhdWx0IGhhbmRsZWQgKi8KKworbm9fa21taW9fY3R4OgorCXB1dF9jcHVfdmFyKGttbWlvX2N0eCk7Citub19rbW1pbzoKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkKCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEludGVycnVwdHMgYXJlIGRpc2FibGVkIG9uIGVudHJ5IGFzIHRyYXAxIGlzIGFuIGludGVycnVwdCBnYXRlCisgKiBhbmQgdGhleSByZW1haW4gZGlzYWJsZWQgdGhvcm91Z2ggb3V0IHRoaXMgZnVuY3Rpb24uCisgKiBUaGlzIG11c3QgYWx3YXlzIGdldCBjYWxsZWQgYXMgdGhlIHBhaXIgdG8ga21taW9faGFuZGxlcigpLgorICovCitzdGF0aWMgaW50IHBvc3Rfa21taW9faGFuZGxlcih1bnNpZ25lZCBsb25nIGNvbmRpdGlvbiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGttbWlvX2NvbnRleHQgKmN0eCA9ICZnZXRfY3B1X3ZhcihrbW1pb19jdHgpOworCisJaWYgKCFjdHgtPmFjdGl2ZSkgeworCQlwcl9kZWJ1Zygia21taW86IHNwdXJpb3VzIGRlYnVnIHRyYXAgb24gQ1BVICVkLlxuIiwKKwkJCQkJCQlzbXBfcHJvY2Vzc29yX2lkKCkpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoY3R4LT5wcm9iZSAmJiBjdHgtPnByb2JlLT5wb3N0X2hhbmRsZXIpCisJCWN0eC0+cHJvYmUtPnBvc3RfaGFuZGxlcihjdHgtPnByb2JlLCBjb25kaXRpb24sIHJlZ3MpOworCisJYXJtX2ttbWlvX2ZhdWx0X3BhZ2UoY3R4LT5mcGFnZS0+cGFnZSwgTlVMTCk7CisKKwlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19URjsKKwlyZWdzLT5mbGFncyB8PSBjdHgtPnNhdmVkX2ZsYWdzOworCisJLyogVGhlc2Ugd2VyZSBhY3F1aXJlZCBpbiBrbW1pb19oYW5kbGVyKCkuICovCisJY3R4LT5hY3RpdmUtLTsKKwlCVUdfT04oY3R4LT5hY3RpdmUpOworCXJjdV9yZWFkX3VubG9jaygpOworCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKKworCS8qCisJICogaWYgc29tZWJvZHkgZWxzZSBpcyBzaW5nbGVzdGVwcGluZyBhY3Jvc3MgYSBwcm9iZSBwb2ludCwgZmxhZ3MKKwkgKiB3aWxsIGhhdmUgVEYgc2V0LCBpbiB3aGljaCBjYXNlLCBjb250aW51ZSB0aGUgcmVtYWluaW5nIHByb2Nlc3NpbmcKKwkgKiBvZiBkb19kZWJ1ZywgYXMgaWYgdGhpcyBpcyBub3QgYSBwcm9iZSBoaXQuCisJICovCisJaWYgKCEocmVncy0+ZmxhZ3MgJiBYODZfRUZMQUdTX1RGKSkKKwkJcmV0ID0gMTsKK291dDoKKwlwdXRfY3B1X3ZhcihrbW1pb19jdHgpOworCXJldHVybiByZXQ7Cit9CisKKy8qIFlvdSBtdXN0IGJlIGhvbGRpbmcga21taW9fbG9jay4gKi8KK3N0YXRpYyBpbnQgYWRkX2ttbWlvX2ZhdWx0X3BhZ2UodW5zaWduZWQgbG9uZyBwYWdlKQoreworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpmOworCisJcGFnZSAmPSBQQUdFX01BU0s7CisJZiA9IGdldF9rbW1pb19mYXVsdF9wYWdlKHBhZ2UpOworCWlmIChmKSB7CisJCWlmICghZi0+Y291bnQpCisJCQlhcm1fa21taW9fZmF1bHRfcGFnZShmLT5wYWdlLCBOVUxMKTsKKwkJZi0+Y291bnQrKzsKKwkJcmV0dXJuIDA7CisJfQorCisJZiA9IGttYWxsb2Moc2l6ZW9mKCpmKSwgR0ZQX0FUT01JQyk7CisJaWYgKCFmKQorCQlyZXR1cm4gLTE7CisKKwlmLT5jb3VudCA9IDE7CisJZi0+cGFnZSA9IHBhZ2U7CisJbGlzdF9hZGRfcmN1KCZmLT5saXN0LCBrbW1pb19wYWdlX2xpc3QoZi0+cGFnZSkpOworCisJYXJtX2ttbWlvX2ZhdWx0X3BhZ2UoZi0+cGFnZSwgTlVMTCk7CisKKwlyZXR1cm4gMDsKK30KKworLyogWW91IG11c3QgYmUgaG9sZGluZyBrbW1pb19sb2NrLiAqLworc3RhdGljIHZvaWQgcmVsZWFzZV9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSwKKwkJCQlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqKnJlbGVhc2VfbGlzdCkKK3sKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqZjsKKworCXBhZ2UgJj0gUEFHRV9NQVNLOworCWYgPSBnZXRfa21taW9fZmF1bHRfcGFnZShwYWdlKTsKKwlpZiAoIWYpCisJCXJldHVybjsKKworCWYtPmNvdW50LS07CisJQlVHX09OKGYtPmNvdW50IDwgMCk7CisJaWYgKCFmLT5jb3VudCkgeworCQlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShmLT5wYWdlLCBOVUxMKTsKKwkJZi0+cmVsZWFzZV9uZXh0ID0gKnJlbGVhc2VfbGlzdDsKKwkJKnJlbGVhc2VfbGlzdCA9IGY7CisJfQorfQorCisvKgorICogV2l0aCBwYWdlLXVuYWxpZ25lZCBpb3JlbWFwcywgb25lIG9yIHR3byBhcm1lZCBwYWdlcyBtYXkgY29udGFpbgorICogYWRkcmVzc2VzIGZyb20gb3V0c2lkZSB0aGUgaW50ZW5kZWQgbWFwcGluZy4gRXZlbnRzIGZvciB0aGVzZSBhZGRyZXNzZXMKKyAqIGFyZSBjdXJyZW50bHkgc2lsZW50bHkgZHJvcHBlZC4gVGhlIGV2ZW50cyBtYXkgcmVzdWx0IG9ubHkgZnJvbSBwcm9ncmFtbWluZworICogbWlzdGFrZXMgYnkgYWNjZXNzaW5nIGFkZHJlc3NlcyBiZWZvcmUgdGhlIGJlZ2lubmluZyBvciBwYXN0IHRoZSBlbmQgb2YgYQorICogbWFwcGluZy4KKyAqLworaW50IHJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQgPSAwOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CisJY29uc3QgdW5zaWduZWQgbG9uZyBzaXplX2xpbSA9IHAtPmxlbiArIChwLT5hZGRyICYgflBBR0VfTUFTSyk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgma21taW9fbG9jaywgZmxhZ3MpOworCWlmIChnZXRfa21taW9fcHJvYmUocC0+YWRkcikpIHsKKwkJcmV0ID0gLUVFWElTVDsKKwkJZ290byBvdXQ7CisJfQorCWttbWlvX2NvdW50Kys7CisJbGlzdF9hZGRfcmN1KCZwLT5saXN0LCAma21taW9fcHJvYmVzKTsKKwl3aGlsZSAoc2l6ZSA8IHNpemVfbGltKSB7CisJCWlmIChhZGRfa21taW9fZmF1bHRfcGFnZShwLT5hZGRyICsgc2l6ZSkpCisJCQlwcl9lcnIoImttbWlvOiBVbmFibGUgdG8gc2V0IHBhZ2UgZmF1bHQuXG4iKTsKKwkJc2l6ZSArPSBQQUdFX1NJWkU7CisJfQorb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwkvKgorCSAqIFhYWDogV2hhdCBzaG91bGQgSSBkbyBoZXJlPworCSAqIEhlcmUgd2FzIGEgY2FsbCB0byBnbG9iYWxfZmx1c2hfdGxiKCksIGJ1dCBpdCBkb2VzIG5vdCBleGlzdAorCSAqIGFueW1vcmUuIEl0IHNlZW1zIGl0J3Mgbm90IG5lZWRlZCBhZnRlciBhbGwuCisJICovCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wocmVnaXN0ZXJfa21taW9fcHJvYmUpOworCitzdGF0aWMgdm9pZCByY3VfZnJlZV9rbW1pb19mYXVsdF9wYWdlcyhzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSAqZHIgPSBjb250YWluZXJfb2YoCisJCQkJCQloZWFkLAorCQkJCQkJc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSwKKwkJCQkJCXJjdSk7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKnAgPSBkci0+cmVsZWFzZV9saXN0OworCXdoaWxlIChwKSB7CisJCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpuZXh0ID0gcC0+cmVsZWFzZV9uZXh0OworCQlCVUdfT04ocC0+Y291bnQpOworCQlrZnJlZShwKTsKKwkJcCA9IG5leHQ7CisJfQorCWtmcmVlKGRyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlX2ttbWlvX2ZhdWx0X3BhZ2VzKHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKK3sKKwlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlICpkciA9IGNvbnRhaW5lcl9vZigKKwkJCQkJCWhlYWQsCisJCQkJCQlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlLAorCQkJCQkJcmN1KTsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcCA9IGRyLT5yZWxlYXNlX2xpc3Q7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKipwcmV2cCA9ICZkci0+cmVsZWFzZV9saXN0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwl3aGlsZSAocCkgeworCQlpZiAoIXAtPmNvdW50KQorCQkJbGlzdF9kZWxfcmN1KCZwLT5saXN0KTsKKwkJZWxzZQorCQkJKnByZXZwID0gcC0+cmVsZWFzZV9uZXh0OworCQlwcmV2cCA9ICZwLT5yZWxlYXNlX25leHQ7CisJCXAgPSBwLT5yZWxlYXNlX25leHQ7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwkvKiBUaGlzIGlzIHRoZSByZWFsIFJDVSBkZXN0cm95IGNhbGwuICovCisJY2FsbF9yY3UoJmRyLT5yY3UsIHJjdV9mcmVlX2ttbWlvX2ZhdWx0X3BhZ2VzKTsKK30KKworLyoKKyAqIFJlbW92ZSBhIGttbWlvIHByb2JlLiBZb3UgaGF2ZSB0byBzeW5jaHJvbml6ZV9yY3UoKSBiZWZvcmUgeW91IGNhbiBiZQorICogc3VyZSB0aGF0IHRoZSBjYWxsYmFja3Mgd2lsbCBub3QgYmUgY2FsbGVkIGFueW1vcmUuIE9ubHkgYWZ0ZXIgdGhhdAorICogeW91IG1heSBhY3R1YWxseSByZWxlYXNlIHlvdXIgc3RydWN0IGttbWlvX3Byb2JlLgorICoKKyAqIFVucmVnaXN0ZXJpbmcgYSBrbW1pbyBmYXVsdCBwYWdlIGhhcyB0aHJlZSBzdGVwczoKKyAqIDEuIHJlbGVhc2Vfa21taW9fZmF1bHRfcGFnZSgpCisgKiAgICBEaXNhcm0gdGhlIHBhZ2UsIHdhaXQgYSBncmFjZSBwZXJpb2QgdG8gbGV0IGFsbCBmYXVsdHMgZmluaXNoLgorICogMi4gcmVtb3ZlX2ttbWlvX2ZhdWx0X3BhZ2VzKCkKKyAqICAgIFJlbW92ZSB0aGUgcGFnZXMgZnJvbSBrbW1pb19wYWdlX3RhYmxlLgorICogMy4gcmN1X2ZyZWVfa21taW9fZmF1bHRfcGFnZXMoKQorICogICAgQWN0YWxseSBmcmVlIHRoZSBrbW1pb19mYXVsdF9wYWdlIHN0cnVjdHMgYXMgd2l0aCBSQ1UuCisgKi8KK3ZvaWQgdW5yZWdpc3Rlcl9rbW1pb19wcm9iZShzdHJ1Y3Qga21taW9fcHJvYmUgKnApCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHNpemUgPSAwOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZV9saW0gPSBwLT5sZW4gKyAocC0+YWRkciAmIH5QQUdFX01BU0spOworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpyZWxlYXNlX2xpc3QgPSBOVUxMOworCXN0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UgKmRyZWxlYXNlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwl3aGlsZSAoc2l6ZSA8IHNpemVfbGltKSB7CisJCXJlbGVhc2Vfa21taW9fZmF1bHRfcGFnZShwLT5hZGRyICsgc2l6ZSwgJnJlbGVhc2VfbGlzdCk7CisJCXNpemUgKz0gUEFHRV9TSVpFOworCX0KKwlsaXN0X2RlbF9yY3UoJnAtPmxpc3QpOworCWttbWlvX2NvdW50LS07CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma21taW9fbG9jaywgZmxhZ3MpOworCisJZHJlbGVhc2UgPSBrbWFsbG9jKHNpemVvZigqZHJlbGVhc2UpLCBHRlBfQVRPTUlDKTsKKwlpZiAoIWRyZWxlYXNlKSB7CisJCXByX2NyaXQoImttbWlvOiBsZWFraW5nIGttbWlvX2ZhdWx0X3BhZ2Ugb2JqZWN0cy5cbiIpOworCQlyZXR1cm47CisJfQorCWRyZWxlYXNlLT5yZWxlYXNlX2xpc3QgPSByZWxlYXNlX2xpc3Q7CisKKwkvKgorCSAqIFRoaXMgaXMgbm90IHJlYWxseSBSQ1UgaGVyZS4gV2UgaGF2ZSBqdXN0IGRpc2FybWVkIGEgc2V0IG9mCisJICogcGFnZXMgc28gdGhhdCB0aGV5IGNhbm5vdCB0cmlnZ2VyIHBhZ2UgZmF1bHRzIGFueW1vcmUuIEhvd2V2ZXIsCisJICogd2UgY2Fubm90IHJlbW92ZSB0aGUgcGFnZXMgZnJvbSBrbW1pb19wYWdlX3RhYmxlLAorCSAqIGJlY2F1c2UgYSBwcm9iZSBoaXQgbWlnaHQgYmUgaW4gZmxpZ2h0IG9uIGFub3RoZXIgQ1BVLiBUaGUKKwkgKiBwYWdlcyBhcmUgY29sbGVjdGVkIGludG8gYSBsaXN0LCBhbmQgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbQorCSAqIGttbWlvX3BhZ2VfdGFibGUgd2hlbiBpdCBpcyBjZXJ0YWluIHRoYXQgbm8gcHJvYmUgaGl0IHJlbGF0ZWQgdG8KKwkgKiB0aGVzZSBwYWdlcyBjYW4gYmUgaW4gZmxpZ2h0LiBSQ1UgZ3JhY2UgcGVyaW9kIHNvdW5kcyBsaWtlIGEKKwkgKiBnb29kIGNob2ljZS4KKwkgKgorCSAqIElmIHdlIHJlbW92ZWQgdGhlIHBhZ2VzIHRvbyBlYXJseSwga21taW8gcGFnZSBmYXVsdCBoYW5kbGVyIG1pZ2h0CisJICogbm90IGZpbmQgdGhlIHJlc3BlY3RpdmUga21taW9fZmF1bHRfcGFnZSBhbmQgZGV0ZXJtaW5lIGl0J3Mgbm90CisJICogYSBrbW1pbyBmYXVsdCwgd2hlbiBpdCBhY3R1YWxseSBpcy4gVGhpcyB3b3VsZCBsZWFkIHRvIG1hZG5lc3MuCisJICovCisJY2FsbF9yY3UoJmRyZWxlYXNlLT5yY3UsIHJlbW92ZV9rbW1pb19mYXVsdF9wYWdlcyk7Cit9CitFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfa21taW9fcHJvYmUpOworCitzdGF0aWMgaW50IGttbWlvX2RpZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwKKwkJCQkJCQkJdm9pZCAqYXJncykKK3sKKwlzdHJ1Y3QgZGllX2FyZ3MgKmFyZyA9IGFyZ3M7CisKKwlpZiAodmFsID09IERJRV9ERUJVRyAmJiAoYXJnLT5lcnIgJiBEUl9TVEVQKSkKKwkJaWYgKHBvc3Rfa21taW9faGFuZGxlcihhcmctPmVyciwgYXJnLT5yZWdzKSA9PSAxKQorCQkJcmV0dXJuIE5PVElGWV9TVE9QOworCisJcmV0dXJuIE5PVElGWV9ET05FOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5iX2RpZSA9IHsKKwkubm90aWZpZXJfY2FsbCA9IGttbWlvX2RpZV9ub3RpZmllcgorfTsKKworc3RhdGljIGludCBfX2luaXQgaW5pdF9rbW1pbyh2b2lkKQoreworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCBLTU1JT19QQUdFX1RBQkxFX1NJWkU7IGkrKykKKwkJSU5JVF9MSVNUX0hFQUQoJmttbWlvX3BhZ2VfdGFibGVbaV0pOworCXJldHVybiByZWdpc3Rlcl9kaWVfbm90aWZpZXIoJm5iX2RpZSk7Cit9Citmc19pbml0Y2FsbChpbml0X2ttbWlvKTsgLyogc2hvdWxkIGJlIGJlZm9yZSBkZXZpY2VfaW5pdGNhbGwoKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbW1pby1tb2QuYyBiL2FyY2gveDg2L21tL21taW8tbW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTczOTdlMQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL21taW8tbW9kLmMKQEAgLTAsMCArMSw1MTUgQEAKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICoKKyAqIENvcHlyaWdodCAoQykgSUJNIENvcnBvcmF0aW9uLCAyMDA1CisgKiAgICAgICAgICAgICAgIEplZmYgTXVpemVsYWFyLCAyMDA2LCAyMDA3CisgKiAgICAgICAgICAgICAgIFBla2thIFBhYWxhbmVuLCAyMDA4IDxwcUBpa2kuZmk+CisgKgorICogRGVyaXZlZCBmcm9tIHRoZSByZWFkLW1vZCBleGFtcGxlIGZyb20gcmVsYXktZXhhbXBsZXMgYnkgVG9tIFphbnVzc2kuCisgKi8KKyNkZWZpbmUgREVCVUcgMQorCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvbW1pb3RyYWNlLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4gLyogZm9yIElTQV9TVEFSVF9BRERSRVNTICovCisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgorCisjaW5jbHVkZSAicGZfaW4uaCIKKworI2RlZmluZSBOQU1FICJtbWlvdHJhY2U6ICIKKworc3RydWN0IHRyYXBfcmVhc29uIHsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJdW5zaWduZWQgbG9uZyBpcDsKKwllbnVtIHJlYXNvbl90eXBlIHR5cGU7CisJaW50IGFjdGl2ZV90cmFjZXM7Cit9OworCitzdHJ1Y3QgcmVtYXBfdHJhY2UgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3Qga21taW9fcHJvYmUgcHJvYmU7CisJcmVzb3VyY2Vfc2l6ZV90IHBoeXM7CisJdW5zaWduZWQgbG9uZyBpZDsKK307CisKKy8qIEFjY2Vzc2VkIHBlci1jcHUuICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRyYXBfcmVhc29uLCBwZl9yZWFzb24pOworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtbWlvdHJhY2VfcncsIGNwdV90cmFjZSk7CisKKyNpZiAwIC8qIFhYWDogbm8gd2F5IGdhdGhlciB0aGlzIGluZm8gYW55bW9yZSAqLworLyogQWNjZXNzIHRvIHRoaXMgaXMgbm90IHBlci1jcHUuICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoYXRvbWljX3QsIGRyb3BwZWQpOworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICptYXJrZXJfZmlsZTsKKworc3RhdGljIERFRklORV9NVVRFWChtbWlvdHJhY2VfbXV0ZXgpOworc3RhdGljIERFRklORV9TUElOTE9DSyh0cmFjZV9sb2NrKTsKK3N0YXRpYyBhdG9taWNfdCBtbWlvdHJhY2VfZW5hYmxlZDsKK3N0YXRpYyBMSVNUX0hFQUQodHJhY2VfbGlzdCk7CQkvKiBzdHJ1Y3QgcmVtYXBfdHJhY2UgKi8KKworLyoKKyAqIExvY2tpbmcgaW4gdGhpcyBmaWxlOgorICogLSBtbWlvdHJhY2VfbXV0ZXggZW5mb3JjZXMgZW5hYmxlL2Rpc2FibGVfbW1pb3RyYWNlKCkgY3JpdGljYWwgc2VjdGlvbnMuCisgKiAtIG1taW90cmFjZV9lbmFibGVkIG1heSBiZSBtb2RpZmllZCBvbmx5IHdoZW4gaG9sZGluZyBtbWlvdHJhY2VfbXV0ZXgKKyAqICAgYW5kIHRyYWNlX2xvY2suCisgKiAtIFJvdXRpbmVzIGRlcGVuZGluZyBvbiBpc19lbmFibGVkKCkgbXVzdCB0YWtlIHRyYWNlX2xvY2suCisgKiAtIHRyYWNlX2xpc3QgdXNlcnMgbXVzdCBob2xkIHRyYWNlX2xvY2suCisgKiAtIGlzX2VuYWJsZWQoKSBndWFyYW50ZWVzIHRoYXQgbW1pb190cmFjZV9yZWNvcmQgaXMgYWxsb3dlZC4KKyAqIC0gcHJlL3Bvc3QgY2FsbGJhY2tzIGFzc3VtZSB0aGUgZWZmZWN0IG9mIGlzX2VuYWJsZWQoKSBiZWluZyB0cnVlLgorICovCisKKy8qIG1vZHVsZSBwYXJhbWV0ZXJzICovCitzdGF0aWMgdW5zaWduZWQgbG9uZwlmaWx0ZXJfb2Zmc2V0Oworc3RhdGljIGludAkJbm9tbWlvdHJhY2U7CitzdGF0aWMgaW50CQl0cmFjZV9wYzsKKworbW9kdWxlX3BhcmFtKGZpbHRlcl9vZmZzZXQsIHVsb25nLCAwKTsKK21vZHVsZV9wYXJhbShub21taW90cmFjZSwgYm9vbCwgMCk7Cittb2R1bGVfcGFyYW0odHJhY2VfcGMsIGJvb2wsIDApOworCitNT0RVTEVfUEFSTV9ERVNDKGZpbHRlcl9vZmZzZXQsICJTdGFydCBhZGRyZXNzIG9mIHRyYWNlZCBtYXBwaW5ncy4iKTsKK01PRFVMRV9QQVJNX0RFU0Mobm9tbWlvdHJhY2UsICJEaXNhYmxlIGFjdHVhbCBNTUlPIHRyYWNpbmcuIik7CitNT0RVTEVfUEFSTV9ERVNDKHRyYWNlX3BjLCAiUmVjb3JkIGFkZHJlc3Mgb2YgZmF1bHRpbmcgaW5zdHJ1Y3Rpb25zLiIpOworCitzdGF0aWMgYm9vbCBpc19lbmFibGVkKHZvaWQpCit7CisJcmV0dXJuIGF0b21pY19yZWFkKCZtbWlvdHJhY2VfZW5hYmxlZCk7Cit9CisKKyNpZiAwIC8qIFhYWDogbmVlZHMgcmV3cml0ZSAqLworLyoKKyAqIFdyaXRlIGNhbGxiYWNrIGZvciB0aGUgZGVidWdmcyBlbnRyeToKKyAqIFJlYWQgYSBtYXJrZXIgYW5kIHdyaXRlIGl0IHRvIHRoZSBtbWlvIHRyYWNlIGxvZworICovCitzdGF0aWMgc3NpemVfdCB3cml0ZV9tYXJrZXIoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJCQkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyICpldmVudCA9IE5VTEw7CisJc3RydWN0IG1tX2lvX2hlYWRlciAqaGVhZHA7CisJc3NpemVfdCBsZW4gPSAoY291bnQgPiA2NTUzNSkgPyA2NTUzNSA6IGNvdW50OworCisJZXZlbnQgPSBremFsbG9jKHNpemVvZigqaGVhZHApICsgbGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWV2ZW50KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWhlYWRwID0gKHN0cnVjdCBtbV9pb19oZWFkZXIgKilldmVudDsKKwloZWFkcC0+dHlwZSA9IE1NSU9fTUFHSUMgfCAoTU1JT19NQVJLRVIgPDwgTU1JT19PUENPREVfU0hJRlQpOworCWhlYWRwLT5kYXRhX2xlbiA9IGxlbjsKKworCWlmIChjb3B5X2Zyb21fdXNlcihldmVudCArIHNpemVvZigqaGVhZHApLCBidWZmZXIsIGxlbikpIHsKKwkJa2ZyZWUoZXZlbnQpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKyNpZiAwIC8qIFhYWDogY29udmVydCB0aGlzIHRvIHVzZSB0cmFjaW5nICovCisJaWYgKGlzX2VuYWJsZWQoKSkKKwkJcmVsYXlfd3JpdGUoY2hhbiwgZXZlbnQsIHNpemVvZigqaGVhZHApICsgbGVuKTsKKwllbHNlCisjZW5kaWYKKwkJbGVuID0gLUVJTlZBTDsKKwlzcGluX3VubG9ja19pcnEoJnRyYWNlX2xvY2spOworCWtmcmVlKGV2ZW50KTsKKwlyZXR1cm4gbGVuOworfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHByaW50X3B0ZSh1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisJdW5zaWduZWQgaW50IGxldmVsOworCXB0ZV90ICpwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyZXNzLCAmbGV2ZWwpOworCisJaWYgKCFwdGUpIHsKKwkJcHJfZXJyKE5BTUUgIkVycm9yIGluICVzOiBubyBwdGUgZm9yIHBhZ2UgMHglMDhseFxuIiwKKwkJCQkJCQlfX2Z1bmNfXywgYWRkcmVzcyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAobGV2ZWwgPT0gUEdfTEVWRUxfMk0pIHsKKwkJcHJfZW1lcmcoTkFNRSAiNE1CIHBhZ2VzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZDogIgorCQkJCQkJCSIweCUwOGx4XG4iLCBhZGRyZXNzKTsKKwkJQlVHKCk7CisJfQorCXByX2luZm8oTkFNRSAicHRlIGZvciAweCVseDogMHglbGx4IDB4JWxseFxuIiwgYWRkcmVzcywKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZylwdGVfdmFsKCpwdGUpLAorCQkodW5zaWduZWQgbG9uZyBsb25nKXB0ZV92YWwoKnB0ZSkgJiBfUEFHRV9QUkVTRU5UKTsKK30KKworLyoKKyAqIEZvciBzb21lIHJlYXNvbiB0aGUgcHJlL3Bvc3QgcGFpcnMgaGF2ZSBiZWVuIGNhbGxlZCBpbiBhbgorICogdW5tYXRjaGVkIG9yZGVyLiBSZXBvcnQgYW5kIGRpZS4KKyAqLworc3RhdGljIHZvaWQgZGllX2ttbWlvX25lc3RpbmdfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwljb25zdCBzdHJ1Y3QgdHJhcF9yZWFzb24gKm15X3JlYXNvbiA9ICZnZXRfY3B1X3ZhcihwZl9yZWFzb24pOworCXByX2VtZXJnKE5BTUUgInVuZXhwZWN0ZWQgZmF1bHQgZm9yIGFkZHJlc3M6IDB4JTA4bHgsICIKKwkJCQkJImxhc3QgZmF1bHQgZm9yIGFkZHJlc3M6IDB4JTA4bHhcbiIsCisJCQkJCWFkZHIsIG15X3JlYXNvbi0+YWRkcik7CisJcHJpbnRfcHRlKGFkZHIpOworCXByaW50X3N5bWJvbChLRVJOX0VNRVJHICJmYXVsdGluZyBJUCBpcyBhdCAlc1xuIiwgcmVncy0+aXApOworCXByaW50X3N5bWJvbChLRVJOX0VNRVJHICJsYXN0IGZhdWx0aW5nIElQIHdhcyBhdCAlc1xuIiwgbXlfcmVhc29uLT5pcCk7CisjaWZkZWYgX19pMzg2X18KKwlwcl9lbWVyZygiZWF4OiAlMDhseCAgIGVieDogJTA4bHggICBlY3g6ICUwOGx4ICAgZWR4OiAlMDhseFxuIiwKKwkJCXJlZ3MtPmF4LCByZWdzLT5ieCwgcmVncy0+Y3gsIHJlZ3MtPmR4KTsKKwlwcl9lbWVyZygiZXNpOiAlMDhseCAgIGVkaTogJTA4bHggICBlYnA6ICUwOGx4ICAgZXNwOiAlMDhseFxuIiwKKwkJCXJlZ3MtPnNpLCByZWdzLT5kaSwgcmVncy0+YnAsIHJlZ3MtPnNwKTsKKyNlbHNlCisJcHJfZW1lcmcoInJheDogJTAxNmx4ICAgcmN4OiAlMDE2bHggICByZHg6ICUwMTZseFxuIiwKKwkJCQkJcmVncy0+YXgsIHJlZ3MtPmN4LCByZWdzLT5keCk7CisJcHJfZW1lcmcoInJzaTogJTAxNmx4ICAgcmRpOiAlMDE2bHggICByYnA6ICUwMTZseCAgIHJzcDogJTAxNmx4XG4iLAorCQkJCXJlZ3MtPnNpLCByZWdzLT5kaSwgcmVncy0+YnAsIHJlZ3MtPnNwKTsKKyNlbmRpZgorCXB1dF9jcHVfdmFyKHBmX3JlYXNvbik7CisJQlVHKCk7Cit9CisKK3N0YXRpYyB2b2lkIHByZShzdHJ1Y3Qga21taW9fcHJvYmUgKnAsIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCQkJCQkJdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0cnVjdCB0cmFwX3JlYXNvbiAqbXlfcmVhc29uID0gJmdldF9jcHVfdmFyKHBmX3JlYXNvbik7CisJc3RydWN0IG1taW90cmFjZV9ydyAqbXlfdHJhY2UgPSAmZ2V0X2NwdV92YXIoY3B1X3RyYWNlKTsKKwljb25zdCB1bnNpZ25lZCBsb25nIGluc3RwdHIgPSBpbnN0cnVjdGlvbl9wb2ludGVyKHJlZ3MpOworCWNvbnN0IGVudW0gcmVhc29uX3R5cGUgdHlwZSA9IGdldF9pbnNfdHlwZShpbnN0cHRyKTsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlID0gcC0+cHJpdmF0ZTsKKworCS8qIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBoYXZlIG1vcmUgdGhhbiBvbmUgYWN0aXZlIHRyYWNlIHBlciBjcHUgKi8KKwlpZiAobXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzKQorCQlkaWVfa21taW9fbmVzdGluZ19lcnJvcihyZWdzLCBhZGRyKTsKKwllbHNlCisJCW15X3JlYXNvbi0+YWN0aXZlX3RyYWNlcysrOworCisJbXlfcmVhc29uLT50eXBlID0gdHlwZTsKKwlteV9yZWFzb24tPmFkZHIgPSBhZGRyOworCW15X3JlYXNvbi0+aXAgPSBpbnN0cHRyOworCisJbXlfdHJhY2UtPnBoeXMgPSBhZGRyIC0gdHJhY2UtPnByb2JlLmFkZHIgKyB0cmFjZS0+cGh5czsKKwlteV90cmFjZS0+bWFwX2lkID0gdHJhY2UtPmlkOworCisJLyoKKwkgKiBPbmx5IHJlY29yZCB0aGUgcHJvZ3JhbSBjb3VudGVyIHdoZW4gcmVxdWVzdGVkLgorCSAqIEl0IG1heSB0YWludCBjbGVhbi1yb29tIHJldmVyc2UgZW5naW5lZXJpbmcuCisJICovCisJaWYgKHRyYWNlX3BjKQorCQlteV90cmFjZS0+cGMgPSBpbnN0cHRyOworCWVsc2UKKwkJbXlfdHJhY2UtPnBjID0gMDsKKworCS8qCisJICogWFhYOiB0aGUgdGltZXN0YW1wIHJlY29yZGVkIHdpbGwgYmUgKmFmdGVyKiB0aGUgdHJhY2luZyBoYXMgYmVlbgorCSAqIGRvbmUsIG5vdCBhdCB0aGUgdGltZSB3ZSBoaXQgdGhlIGluc3RydWN0aW9uLiBTTVAgaW1wbGljYXRpb25zCisJICogb24gZXZlbnQgb3JkZXJpbmc/CisJICovCisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFJFR19SRUFEOgorCQlteV90cmFjZS0+b3Bjb2RlID0gTU1JT19SRUFEOworCQlteV90cmFjZS0+d2lkdGggPSBnZXRfaW5zX21lbV93aWR0aChpbnN0cHRyKTsKKwkJYnJlYWs7CisJY2FzZSBSRUdfV1JJVEU6CisJCW15X3RyYWNlLT5vcGNvZGUgPSBNTUlPX1dSSVRFOworCQlteV90cmFjZS0+d2lkdGggPSBnZXRfaW5zX21lbV93aWR0aChpbnN0cHRyKTsKKwkJbXlfdHJhY2UtPnZhbHVlID0gZ2V0X2luc19yZWdfdmFsKGluc3RwdHIsIHJlZ3MpOworCQlicmVhazsKKwljYXNlIElNTV9XUklURToKKwkJbXlfdHJhY2UtPm9wY29kZSA9IE1NSU9fV1JJVEU7CisJCW15X3RyYWNlLT53aWR0aCA9IGdldF9pbnNfbWVtX3dpZHRoKGluc3RwdHIpOworCQlteV90cmFjZS0+dmFsdWUgPSBnZXRfaW5zX2ltbV92YWwoaW5zdHB0cik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXsKKwkJCXVuc2lnbmVkIGNoYXIgKmlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnN0cHRyOworCQkJbXlfdHJhY2UtPm9wY29kZSA9IE1NSU9fVU5LTk9XTl9PUDsKKwkJCW15X3RyYWNlLT53aWR0aCA9IDA7CisJCQlteV90cmFjZS0+dmFsdWUgPSAoKmlwKSA8PCAxNiB8ICooaXAgKyAxKSA8PCA4IHwKKwkJCQkJCQkJKihpcCArIDIpOworCQl9CisJfQorCXB1dF9jcHVfdmFyKGNwdV90cmFjZSk7CisJcHV0X2NwdV92YXIocGZfcmVhc29uKTsKK30KKworc3RhdGljIHZvaWQgcG9zdChzdHJ1Y3Qga21taW9fcHJvYmUgKnAsIHVuc2lnbmVkIGxvbmcgY29uZGl0aW9uLAorCQkJCQkJCXN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB0cmFwX3JlYXNvbiAqbXlfcmVhc29uID0gJmdldF9jcHVfdmFyKHBmX3JlYXNvbik7CisJc3RydWN0IG1taW90cmFjZV9ydyAqbXlfdHJhY2UgPSAmZ2V0X2NwdV92YXIoY3B1X3RyYWNlKTsKKworCS8qIHRoaXMgc2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIGFjdGl2ZV90cmFjZSBjb3VudCB0byAwICovCisJbXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzLS07CisJaWYgKG15X3JlYXNvbi0+YWN0aXZlX3RyYWNlcykgeworCQlwcl9lbWVyZyhOQU1FICJ1bmV4cGVjdGVkIHBvc3QgaGFuZGxlciIpOworCQlCVUcoKTsKKwl9CisKKwlzd2l0Y2ggKG15X3JlYXNvbi0+dHlwZSkgeworCWNhc2UgUkVHX1JFQUQ6CisJCW15X3RyYWNlLT52YWx1ZSA9IGdldF9pbnNfcmVnX3ZhbChteV9yZWFzb24tPmlwLCByZWdzKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJbW1pb190cmFjZV9ydyhteV90cmFjZSk7CisJcHV0X2NwdV92YXIoY3B1X3RyYWNlKTsKKwlwdXRfY3B1X3ZhcihwZl9yZWFzb24pOworfQorCitzdGF0aWMgdm9pZCBpb3JlbWFwX3RyYWNlX2NvcmUocmVzb3VyY2Vfc2l6ZV90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJCXZvaWQgX19pb21lbSAqYWRkcikKK3sKKwlzdGF0aWMgYXRvbWljX3QgbmV4dF9pZDsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlID0ga21hbGxvYyhzaXplb2YoKnRyYWNlKSwgR0ZQX0tFUk5FTCk7CisJLyogVGhlc2UgYXJlIHBhZ2UtdW5hbGlnbmVkLiAqLworCXN0cnVjdCBtbWlvdHJhY2VfbWFwIG1hcCA9IHsKKwkJLnBoeXMgPSBvZmZzZXQsCisJCS52aXJ0ID0gKHVuc2lnbmVkIGxvbmcpYWRkciwKKwkJLmxlbiA9IHNpemUsCisJCS5vcGNvZGUgPSBNTUlPX1BST0JFCisJfTsKKworCWlmICghdHJhY2UpIHsKKwkJcHJfZXJyKE5BTUUgImttYWxsb2MgZmFpbGVkIGluIGlvcmVtYXBcbiIpOworCQlyZXR1cm47CisJfQorCisJKnRyYWNlID0gKHN0cnVjdCByZW1hcF90cmFjZSkgeworCQkucHJvYmUgPSB7CisJCQkuYWRkciA9ICh1bnNpZ25lZCBsb25nKWFkZHIsCisJCQkubGVuID0gc2l6ZSwKKwkJCS5wcmVfaGFuZGxlciA9IHByZSwKKwkJCS5wb3N0X2hhbmRsZXIgPSBwb3N0LAorCQkJLnByaXZhdGUgPSB0cmFjZQorCQl9LAorCQkucGh5cyA9IG9mZnNldCwKKwkJLmlkID0gYXRvbWljX2luY19yZXR1cm4oJm5leHRfaWQpCisJfTsKKwltYXAubWFwX2lkID0gdHJhY2UtPmlkOworCisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKCFpc19lbmFibGVkKCkpCisJCWdvdG8gbm90X2VuYWJsZWQ7CisKKwltbWlvX3RyYWNlX21hcHBpbmcoJm1hcCk7CisJbGlzdF9hZGRfdGFpbCgmdHJhY2UtPmxpc3QsICZ0cmFjZV9saXN0KTsKKwlpZiAoIW5vbW1pb3RyYWNlKQorCQlyZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKworbm90X2VuYWJsZWQ6CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKK30KKwordm9pZCBtbWlvdHJhY2VfaW9yZW1hcChyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJCQl2b2lkIF9faW9tZW0gKmFkZHIpCit7CisJaWYgKCFpc19lbmFibGVkKCkpIC8qIHJlY2hlY2sgYW5kIHByb3BlciBsb2NraW5nIGluICpfY29yZSgpICovCisJCXJldHVybjsKKworCXByX2RlYnVnKE5BTUUgImlvcmVtYXBfKigweCVsbHgsIDB4JWx4KSA9ICVwXG4iLAorCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0LCBzaXplLCBhZGRyKTsKKwlpZiAoKGZpbHRlcl9vZmZzZXQpICYmIChvZmZzZXQgIT0gZmlsdGVyX29mZnNldCkpCisJCXJldHVybjsKKwlpb3JlbWFwX3RyYWNlX2NvcmUob2Zmc2V0LCBzaXplLCBhZGRyKTsKK30KKworc3RhdGljIHZvaWQgaW91bm1hcF90cmFjZV9jb3JlKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKKwlzdHJ1Y3QgbW1pb3RyYWNlX21hcCBtYXAgPSB7CisJCS5waHlzID0gMCwKKwkJLnZpcnQgPSAodW5zaWduZWQgbG9uZylhZGRyLAorCQkubGVuID0gMCwKKwkJLm9wY29kZSA9IE1NSU9fVU5QUk9CRQorCX07CisJc3RydWN0IHJlbWFwX3RyYWNlICp0cmFjZTsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRtcDsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKmZvdW5kX3RyYWNlID0gTlVMTDsKKworCXByX2RlYnVnKE5BTUUgIlVubWFwcGluZyAlcC5cbiIsIGFkZHIpOworCisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKCFpc19lbmFibGVkKCkpCisJCWdvdG8gbm90X2VuYWJsZWQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodHJhY2UsIHRtcCwgJnRyYWNlX2xpc3QsIGxpc3QpIHsKKwkJaWYgKCh1bnNpZ25lZCBsb25nKWFkZHIgPT0gdHJhY2UtPnByb2JlLmFkZHIpIHsKKwkJCWlmICghbm9tbWlvdHJhY2UpCisJCQkJdW5yZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKwkJCWxpc3RfZGVsKCZ0cmFjZS0+bGlzdCk7CisJCQlmb3VuZF90cmFjZSA9IHRyYWNlOworCQkJYnJlYWs7CisJCX0KKwl9CisJbWFwLm1hcF9pZCA9IChmb3VuZF90cmFjZSkgPyBmb3VuZF90cmFjZS0+aWQgOiAtMTsKKwltbWlvX3RyYWNlX21hcHBpbmcoJm1hcCk7CisKK25vdF9lbmFibGVkOgorCXNwaW5fdW5sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKGZvdW5kX3RyYWNlKSB7CisJCXN5bmNocm9uaXplX3JjdSgpOyAvKiB1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKCkgcmVxdWlyZW1lbnQgKi8KKwkJa2ZyZWUoZm91bmRfdHJhY2UpOworCX0KK30KKwordm9pZCBtbWlvdHJhY2VfaW91bm1hcCh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCit7CisJbWlnaHRfc2xlZXAoKTsKKwlpZiAoaXNfZW5hYmxlZCgpKSAvKiByZWNoZWNrIGFuZCBwcm9wZXIgbG9ja2luZyBpbiAqX2NvcmUoKSAqLworCQlpb3VubWFwX3RyYWNlX2NvcmUoYWRkcik7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFyX3RyYWNlX2xpc3Qodm9pZCkKK3sKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlOworCXN0cnVjdCByZW1hcF90cmFjZSAqdG1wOworCisJLyoKKwkgKiBObyBsb2NraW5nIHJlcXVpcmVkLCBiZWNhdXNlIHRoZSBjYWxsZXIgZW5zdXJlcyB3ZSBhcmUgaW4gYQorCSAqIGNyaXRpY2FsIHNlY3Rpb24gdmlhIG11dGV4LCBhbmQgaXNfZW5hYmxlZCgpIGlzIGZhbHNlLAorCSAqIGkuZS4gbm90aGluZyBjYW4gdHJhdmVyc2Ugb3IgbW9kaWZ5IHRoaXMgbGlzdC4KKwkgKiBDYWxsZXIgYWxzbyBlbnN1cmVzIGlzX2VuYWJsZWQoKSBjYW5ub3QgY2hhbmdlLgorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkodHJhY2UsICZ0cmFjZV9saXN0LCBsaXN0KSB7CisJCXByX25vdGljZShOQU1FICJwdXJnaW5nIG5vbi1pb3VubWFwcGVkICIKKwkJCQkJInRyYWNlIEAweCUwOGx4LCBzaXplIDB4JWx4LlxuIiwKKwkJCQkJdHJhY2UtPnByb2JlLmFkZHIsIHRyYWNlLT5wcm9iZS5sZW4pOworCQlpZiAoIW5vbW1pb3RyYWNlKQorCQkJdW5yZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKwl9CisJc3luY2hyb25pemVfcmN1KCk7IC8qIHVucmVnaXN0ZXJfa21taW9fcHJvYmUoKSByZXF1aXJlbWVudCAqLworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRyYWNlLCB0bXAsICZ0cmFjZV9saXN0LCBsaXN0KSB7CisJCWxpc3RfZGVsKCZ0cmFjZS0+bGlzdCk7CisJCWtmcmVlKHRyYWNlKTsKKwl9Cit9CisKKyNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKK3N0YXRpYyBjcHVtYXNrX3QgZG93bmVkX2NwdXM7CisKK3N0YXRpYyB2b2lkIGVudGVyX3VuaXByb2Nlc3Nvcih2b2lkKQoreworCWludCBjcHU7CisJaW50IGVycjsKKworCWdldF9vbmxpbmVfY3B1cygpOworCWRvd25lZF9jcHVzID0gY3B1X29ubGluZV9tYXA7CisJY3B1X2NsZWFyKGZpcnN0X2NwdShjcHVfb25saW5lX21hcCksIGRvd25lZF9jcHVzKTsKKwlpZiAobnVtX29ubGluZV9jcHVzKCkgPiAxKQorCQlwcl9ub3RpY2UoTkFNRSAiRGlzYWJsaW5nIG5vbi1ib290IENQVXMuLi5cbiIpOworCXB1dF9vbmxpbmVfY3B1cygpOworCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBkb3duZWRfY3B1cykgeworCQllcnIgPSBjcHVfZG93bihjcHUpOworCQlpZiAoIWVycikKKwkJCXByX2luZm8oTkFNRSAiQ1BVJWQgaXMgZG93bi5cbiIsIGNwdSk7CisJCWVsc2UKKwkJCXByX2VycihOQU1FICJFcnJvciB0YWtpbmcgQ1BVJWQgZG93bjogJWRcbiIsIGNwdSwgZXJyKTsKKwl9CisJaWYgKG51bV9vbmxpbmVfY3B1cygpID4gMSkKKwkJcHJfd2FybmluZyhOQU1FICJtdWx0aXBsZSBDUFVzIHN0aWxsIG9ubGluZSwgIgorCQkJCQkJIm1heSBtaXNzIGV2ZW50cy5cbiIpOworfQorCitzdGF0aWMgdm9pZCBsZWF2ZV91bmlwcm9jZXNzb3Iodm9pZCkKK3sKKwlpbnQgY3B1OworCWludCBlcnI7CisKKwlpZiAoY3B1c193ZWlnaHQoZG93bmVkX2NwdXMpID09IDApCisJCXJldHVybjsKKwlwcl9ub3RpY2UoTkFNRSAiUmUtZW5hYmxpbmcgQ1BVcy4uLlxuIik7CisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBkb3duZWRfY3B1cykgeworCQllcnIgPSBjcHVfdXAoY3B1KTsKKwkJaWYgKCFlcnIpCisJCQlwcl9pbmZvKE5BTUUgImVuYWJsZWQgQ1BVJWQuXG4iLCBjcHUpOworCQllbHNlCisJCQlwcl9lcnIoTkFNRSAiY2Fubm90IHJlLWVuYWJsZSBDUFUlZDogJWRcbiIsIGNwdSwgZXJyKTsKKwl9Cit9CisKKyNlbHNlIC8qICFDT05GSUdfSE9UUExVR19DUFUgKi8KK3N0YXRpYyB2b2lkIGVudGVyX3VuaXByb2Nlc3Nvcih2b2lkKQoreworCWlmIChudW1fb25saW5lX2NwdXMoKSA+IDEpCisJCXByX3dhcm5pbmcoTkFNRSAibXVsdGlwbGUgQ1BVcyBhcmUgb25saW5lLCBtYXkgbWlzcyBldmVudHMuICIKKwkJCSJTdWdnZXN0IGJvb3Rpbmcgd2l0aCBtYXhjcHVzPTEga2VybmVsIGFyZ3VtZW50LlxuIik7Cit9CisKK3N0YXRpYyB2b2lkIGxlYXZlX3VuaXByb2Nlc3Nvcih2b2lkKQoreworfQorI2VuZGlmCisKKyNpZiAwIC8qIFhYWDogb3V0IG9mIG9yZGVyICovCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzX21hcmtlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkud3JpdGUgPQl3cml0ZV9tYXJrZXIKK307CisjZW5kaWYKKwordm9pZCBlbmFibGVfbW1pb3RyYWNlKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmbW1pb3RyYWNlX211dGV4KTsKKwlpZiAoaXNfZW5hYmxlZCgpKQorCQlnb3RvIG91dDsKKworI2lmIDAgLyogWFhYOiB0cmFjaW5nIGRvZXMgbm90IHN1cHBvcnQgdGV4dCBlbnRyaWVzICovCisJbWFya2VyX2ZpbGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJtYXJrZXIiLCAwNjYwLCBkaXIsIE5VTEwsCisJCQkJCQkJCSZmb3BzX21hcmtlcik7CisJaWYgKCFtYXJrZXJfZmlsZSkKKwkJcHJfZXJyKE5BTUUgIm1hcmtlciBmaWxlIGNyZWF0aW9uIGZhaWxlZC5cbiIpOworI2VuZGlmCisKKwlpZiAobm9tbWlvdHJhY2UpCisJCXByX2luZm8oTkFNRSAiTU1JTyB0cmFjaW5nIGRpc2FibGVkLlxuIik7CisJZW50ZXJfdW5pcHJvY2Vzc29yKCk7CisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJYXRvbWljX2luYygmbW1pb3RyYWNlX2VuYWJsZWQpOworCXNwaW5fdW5sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJcHJfaW5mbyhOQU1FICJlbmFibGVkLlxuIik7CitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZtbWlvdHJhY2VfbXV0ZXgpOworfQorCit2b2lkIGRpc2FibGVfbW1pb3RyYWNlKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmbW1pb3RyYWNlX211dGV4KTsKKwlpZiAoIWlzX2VuYWJsZWQoKSkKKwkJZ290byBvdXQ7CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlhdG9taWNfZGVjKCZtbWlvdHJhY2VfZW5hYmxlZCk7CisJQlVHX09OKGlzX2VuYWJsZWQoKSk7CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKworCWNsZWFyX3RyYWNlX2xpc3QoKTsgLyogZ3VhcmFudGVlczogbm8gbW9yZSBrbW1pbyBjYWxsYmFja3MgKi8KKwlsZWF2ZV91bmlwcm9jZXNzb3IoKTsKKwlpZiAobWFya2VyX2ZpbGUpIHsKKwkJZGVidWdmc19yZW1vdmUobWFya2VyX2ZpbGUpOworCQltYXJrZXJfZmlsZSA9IE5VTEw7CisJfQorCisJcHJfaW5mbyhOQU1FICJkaXNhYmxlZC5cbiIpOworb3V0OgorCW11dGV4X3VubG9jaygmbW1pb3RyYWNlX211dGV4KTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL251bWFfNjQuYyBiL2FyY2gveDg2L21tL251bWFfNjQuYwppbmRleCBjNTA2NmQ1Li5iNDMyZDU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9udW1hXzY0LmMKKysrIGIvYXJjaC94ODYvbW0vbnVtYV82NC5jCkBAIC0yNywzMCArMjcsMTcgQEAKIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW01BWF9OVU1OT0RFU10gX19yZWFkX21vc3RseTsKIEVYUE9SVF9TWU1CT0wobm9kZV9kYXRhKTsKIAotYm9vdG1lbV9kYXRhX3QgcGxhdF9ub2RlX2JkYXRhW01BWF9OVU1OT0RFU107CitzdGF0aWMgYm9vdG1lbV9kYXRhX3QgcGxhdF9ub2RlX2JkYXRhW01BWF9OVU1OT0RFU107CiAKIHN0cnVjdCBtZW1ub2RlIG1lbW5vZGU7CiAKLSNpZmRlZiBDT05GSUdfU01QCi1pbnQgeDg2X2NwdV90b19ub2RlX21hcF9pbml0W05SX0NQVVNdID0gewotCVswIC4uLiBOUl9DUFVTLTFdID0gTlVNQV9OT19OT0RFCi19Owotdm9pZCAqeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci1FWFBPUlRfU1lNQk9MKHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKTsKLSNlbmRpZgotREVGSU5FX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTUFfTk9fTk9ERTsKLUVYUE9SVF9QRVJfQ1BVX1NZTUJPTCh4ODZfY3B1X3RvX25vZGVfbWFwKTsKLQogczE2IGFwaWNpZF90b19ub2RlW01BWF9MT0NBTF9BUElDXSBfX2NwdWluaXRkYXRhID0gewogCVswIC4uLiBNQVhfTE9DQUxfQVBJQy0xXSA9IE5VTUFfTk9fTk9ERQogfTsKIAotY3B1bWFza190IG5vZGVfdG9fY3B1bWFza19tYXBbTUFYX05VTU5PREVTXSBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChub2RlX3RvX2NwdW1hc2tfbWFwKTsKLQogaW50IG51bWFfb2ZmIF9faW5pdGRhdGE7Ci11bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbm9kZW1hcF9hZGRyOwotdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIG5vZGVtYXBfc2l6ZTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbm9kZW1hcF9hZGRyOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBub2RlbWFwX3NpemU7CiAKIC8qCiAgKiBHaXZlbiBhIHNoaWZ0IHZhbHVlLCB0cnkgdG8gcG9wdWxhdGUgbWVtbm9kZW1hcFtdCkBAIC05OSw3ICs4Niw3IEBACiAKIAlhZGRyID0gMHg4MDAwOwogCW5vZGVtYXBfc2l6ZSA9IHJvdW5kX3VwKHNpemVvZihzMTYpICogbWVtbm9kZW1hcHNpemUsIEwxX0NBQ0hFX0JZVEVTKTsKLQlub2RlbWFwX2FkZHIgPSBmaW5kX2U4MjBfYXJlYShhZGRyLCBlbmRfcGZuPDxQQUdFX1NISUZULAorCW5vZGVtYXBfYWRkciA9IGZpbmRfZTgyMF9hcmVhKGFkZHIsIG1heF9wZm48PFBBR0VfU0hJRlQsCiAJCQkJICAgICAgbm9kZW1hcF9zaXplLCBMMV9DQUNIRV9CWVRFUyk7CiAJaWYgKG5vZGVtYXBfYWRkciA9PSAtMVVMKSB7CiAJCXByaW50ayhLRVJOX0VSUgpAQCAtMTkyLDcgKzE3OSw3IEBACiB2b2lkIF9faW5pdCBzZXR1cF9ub2RlX2Jvb3RtZW0oaW50IG5vZGVpZCwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbiwgYm9vdG1hcF9wYWdlcywgYm9vdG1hcF9zaXplOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBsYXN0X3BmbiwgYm9vdG1hcF9wYWdlcywgYm9vdG1hcF9zaXplOwogCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zdGFydCwgbm9kZWRhdGFfcGh5czsKIAl2b2lkICpib290bWFwOwogCWNvbnN0IGludCBwZ2RhdF9zaXplID0gcm91bmRfdXAoc2l6ZW9mKHBnX2RhdGFfdCksIFBBR0VfU0laRSk7CkBAIC0yMDQsNyArMTkxLDcgQEAKIAkgICAgICAgc3RhcnQsIGVuZCk7CiAKIAlzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOwotCWVuZF9wZm4gPSBlbmQgPj4gUEFHRV9TSElGVDsKKwlsYXN0X3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOwogCiAJbm9kZV9kYXRhW25vZGVpZF0gPSBlYXJseV9ub2RlX21lbShub2RlaWQsIHN0YXJ0LCBlbmQsIHBnZGF0X3NpemUsCiAJCQkJCSAgIFNNUF9DQUNIRV9CWVRFUyk7CkBAIC0yMTcsNyArMjA0LDcgQEAKIAltZW1zZXQoTk9ERV9EQVRBKG5vZGVpZCksIDAsIHNpemVvZihwZ19kYXRhX3QpKTsKIAlOT0RFX0RBVEEobm9kZWlkKS0+YmRhdGEgPSAmcGxhdF9ub2RlX2JkYXRhW25vZGVpZF07CiAJTk9ERV9EQVRBKG5vZGVpZCktPm5vZGVfc3RhcnRfcGZuID0gc3RhcnRfcGZuOwotCU5PREVfREFUQShub2RlaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBlbmRfcGZuIC0gc3RhcnRfcGZuOworCU5PREVfREFUQShub2RlaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBsYXN0X3BmbiAtIHN0YXJ0X3BmbjsKIAogCS8qCiAJICogRmluZCBhIHBsYWNlIGZvciB0aGUgYm9vdG1lbSBtYXAKQEAgLTIyNiwxNCArMjEzLDE0IEBACiAJICogZWFybHlfbm9kZV9tZW0gd2lsbCBnZXQgdGhhdCB3aXRoIGZpbmRfZTgyMF9hcmVhIGluc3RlYWQKIAkgKiBvZiBhbGxvY19ib290bWVtLCB0aGF0IGNvdWxkIGNsYXNoIHdpdGggcmVzZXJ2ZWQgcmFuZ2UKIAkgKi8KLQlib290bWFwX3BhZ2VzID0gYm9vdG1lbV9ib290bWFwX3BhZ2VzKGVuZF9wZm4gLSBzdGFydF9wZm4pOworCWJvb3RtYXBfcGFnZXMgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMobGFzdF9wZm4gLSBzdGFydF9wZm4pOwogCW5pZCA9IHBoeXNfdG9fbmlkKG5vZGVkYXRhX3BoeXMpOwogCWlmIChuaWQgPT0gbm9kZWlkKQogCQlib290bWFwX3N0YXJ0ID0gcm91bmRfdXAobm9kZWRhdGFfcGh5cyArIHBnZGF0X3NpemUsIFBBR0VfU0laRSk7CiAJZWxzZQogCQlib290bWFwX3N0YXJ0ID0gcm91bmRfdXAoc3RhcnQsIFBBR0VfU0laRSk7CiAJLyoKLQkgKiBTTVBfQ0FIQ0VfQllURVMgY291bGQgYmUgZW5vdWdoLCBidXQgaW5pdF9ib290bWVtX25vZGUgbGlrZQorCSAqIFNNUF9DQUNIRV9CWVRFUyBjb3VsZCBiZSBlbm91Z2gsIGJ1dCBpbml0X2Jvb3RtZW1fbm9kZSBsaWtlCiAJICogdG8gdXNlIHRoYXQgdG8gYWxpZ24gdG8gUEFHRV9TSVpFCiAJICovCiAJYm9vdG1hcCA9IGVhcmx5X25vZGVfbWVtKG5vZGVpZCwgYm9vdG1hcF9zdGFydCwgZW5kLApAQCAtMjQ4LDcgKzIzNSw3IEBACiAKIAlib290bWFwX3NpemUgPSBpbml0X2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZWlkKSwKIAkJCQkJIGJvb3RtYXBfc3RhcnQgPj4gUEFHRV9TSElGVCwKLQkJCQkJIHN0YXJ0X3BmbiwgZW5kX3Bmbik7CisJCQkJCSBzdGFydF9wZm4sIGxhc3RfcGZuKTsKIAogCXByaW50ayhLRVJOX0lORk8gIiAgYm9vdG1hcCBbJTAxNmx4IC0gICUwMTZseF0gcGFnZXMgJWx4XG4iLAogCQkgYm9vdG1hcF9zdGFydCwgYm9vdG1hcF9zdGFydCArIGJvb3RtYXBfc2l6ZSAtIDEsCkBAIC0zMDksNyArMjk2LDcgQEAKIAogI2lmZGVmIENPTkZJR19OVU1BX0VNVQogLyogTnVtYSBlbXVsYXRpb24gKi8KLWNoYXIgKmNtZGxpbmUgX19pbml0ZGF0YTsKK3N0YXRpYyBjaGFyICpjbWRsaW5lIF9faW5pdGRhdGE7CiAKIC8qCiAgKiBTZXR1cHMgdXAgbmlkIHRvIHJhbmdlIGZyb20gYWRkciB0byBhZGRyICsgc2l6ZS4gIElmIHRoZSBlbmQKQEAgLTQxMywxNSArNDAwLDE1IEBACiB9CiAKIC8qCi0gKiBTZXRzIHVwIHRoZSBzeXN0ZW0gUkFNIGFyZWEgZnJvbSBzdGFydF9wZm4gdG8gZW5kX3BmbiBhY2NvcmRpbmcgdG8gdGhlCisgKiBTZXRzIHVwIHRoZSBzeXN0ZW0gUkFNIGFyZWEgZnJvbSBzdGFydF9wZm4gdG8gbGFzdF9wZm4gYWNjb3JkaW5nIHRvIHRoZQogICogbnVtYT1mYWtlIGNvbW1hbmQtbGluZSBvcHRpb24uCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgYm9vdG5vZGUgbm9kZXNbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwogCi1zdGF0aWMgaW50IF9faW5pdCBudW1hX2VtdWxhdGlvbih1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQorc3RhdGljIGludCBfX2luaXQgbnVtYV9lbXVsYXRpb24odW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCiB7CiAJdTY0IHNpemUsIGFkZHIgPSBzdGFydF9wZm4gPDwgUEFHRV9TSElGVDsKLQl1NjQgbWF4X2FkZHIgPSBlbmRfcGZuIDw8IFBBR0VfU0hJRlQ7CisJdTY0IG1heF9hZGRyID0gbGFzdF9wZm4gPDwgUEFHRV9TSElGVDsKIAlpbnQgbnVtX25vZGVzID0gMCwgbnVtID0gMCwgY29lZmZfZmxhZywgY29lZmYgPSAtMSwgaTsKIAogCW1lbXNldCgmbm9kZXMsIDAsIHNpemVvZihub2RlcykpOwpAQCAtNTI3LDcgKzUxNCw3IEBACiB9CiAjZW5kaWYgLyogQ09ORklHX05VTUFfRU1VICovCiAKLXZvaWQgX19pbml0IG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit2b2lkIF9faW5pdCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCiB7CiAJaW50IGk7CiAKQEAgLTUzNSw3ICs1MjIsNyBAQAogCW5vZGVzX2NsZWFyKG5vZGVfb25saW5lX21hcCk7CiAKICNpZmRlZiBDT05GSUdfTlVNQV9FTVUKLQlpZiAoY21kbGluZSAmJiAhbnVtYV9lbXVsYXRpb24oc3RhcnRfcGZuLCBlbmRfcGZuKSkKKwlpZiAoY21kbGluZSAmJiAhbnVtYV9lbXVsYXRpb24oc3RhcnRfcGZuLCBsYXN0X3BmbikpCiAJCXJldHVybjsKIAlub2Rlc19jbGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTU0Myw3ICs1MzAsNyBAQAogCiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogCWlmICghbnVtYV9vZmYgJiYgIWFjcGlfc2Nhbl9ub2RlcyhzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwKLQkJCQkJICBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpKQorCQkJCQkgIGxhc3RfcGZuIDw8IFBBR0VfU0hJRlQpKQogCQlyZXR1cm47CiAJbm9kZXNfY2xlYXIobm9kZV9wb3NzaWJsZV9tYXApOwogCW5vZGVzX2NsZWFyKG5vZGVfb25saW5lX21hcCk7CkBAIC01NTEsNyArNTM4LDcgQEAKIAogI2lmZGVmIENPTkZJR19LOF9OVU1BCiAJaWYgKCFudW1hX29mZiAmJiAhazhfc2Nhbl9ub2RlcyhzdGFydF9wZm48PFBBR0VfU0hJRlQsCi0JCQkJCWVuZF9wZm48PFBBR0VfU0hJRlQpKQorCQkJCQlsYXN0X3Bmbjw8UEFHRV9TSElGVCkpCiAJCXJldHVybjsKIAlub2Rlc19jbGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTU2MSw3ICs1NDgsNyBAQAogCiAJcHJpbnRrKEtFUk5fSU5GTyAiRmFraW5nIGEgbm9kZSBhdCAlMDE2bHgtJTAxNmx4XG4iLAogCSAgICAgICBzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwKLQkgICAgICAgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKKwkgICAgICAgbGFzdF9wZm4gPDwgUEFHRV9TSElGVCk7CiAJLyogc2V0dXAgZHVtbXkgbm9kZSBjb3ZlcmluZyBhbGwgbWVtb3J5ICovCiAJbWVtbm9kZV9zaGlmdCA9IDYzOwogCW1lbW5vZGVtYXAgPSBtZW1ub2RlLmVtYmVkZGVkX21hcDsKQEAgLTU3MCwyOSArNTU3LDggQEAKIAlub2RlX3NldCgwLCBub2RlX3Bvc3NpYmxlX21hcCk7CiAJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7IGkrKykKIAkJbnVtYV9zZXRfbm9kZShpLCAwKTsKLQkvKiBjcHVtYXNrX29mX2NwdSgpIG1heSBub3QgYmUgYXZhaWxhYmxlIGR1cmluZyBlYXJseSBzdGFydHVwICovCi0JbWVtc2V0KCZub2RlX3RvX2NwdW1hc2tfbWFwWzBdLCAwLCBzaXplb2Yobm9kZV90b19jcHVtYXNrX21hcFswXSkpOwotCWNwdV9zZXQoMCwgbm9kZV90b19jcHVtYXNrX21hcFswXSk7Ci0JZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGVuZF9wZm4pOwotCXNldHVwX25vZGVfYm9vdG1lbSgwLCBzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKLX0KLQotX19jcHVpbml0IHZvaWQgbnVtYV9hZGRfY3B1KGludCBjcHUpCi17Ci0Jc2V0X2JpdChjcHUsCi0JCSh1bnNpZ25lZCBsb25nICopJm5vZGVfdG9fY3B1bWFza19tYXBbZWFybHlfY3B1X3RvX25vZGUoY3B1KV0pOwotfQotCi12b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKQotewotCWludCAqY3B1X3RvX25vZGVfbWFwID0geDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci0KLQlpZihjcHVfdG9fbm9kZV9tYXApCi0JCWNwdV90b19ub2RlX21hcFtjcHVdID0gbm9kZTsKLQllbHNlIGlmKHBlcl9jcHVfb2Zmc2V0KGNwdSkpCi0JCXBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KSA9IG5vZGU7Ci0JZWxzZQotCQlEcHJpbnRrKEtFUk5fSU5GTyAiU2V0dGluZyBub2RlIGZvciBub24tcHJlc2VudCBjcHUgJWRcbiIsIGNwdSk7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGxhc3RfcGZuKTsKKwlzZXR1cF9ub2RlX2Jvb3RtZW0oMCwgc3RhcnRfcGZuIDw8IFBBR0VfU0hJRlQsIGxhc3RfcGZuIDw8IFBBR0VfU0hJRlQpOwogfQogCiB1bnNpZ25lZCBsb25nIF9faW5pdCBudW1hX2ZyZWVfYWxsX2Jvb3RtZW0odm9pZCkKQEAgLTYxMyw3ICs1NzksNyBAQAogCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwogCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0gTUFYX0RNQV9QRk47CiAJbWF4X3pvbmVfcGZuc1taT05FX0RNQTMyXSA9IE1BWF9ETUEzMl9QRk47Ci0JbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBlbmRfcGZuOworCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X3BmbjsKIAogCXNwYXJzZV9tZW1vcnlfcHJlc2VudF93aXRoX2FjdGl2ZV9yZWdpb25zKE1BWF9OVU1OT0RFUyk7CiAJc3BhcnNlX2luaXQoKTsKQEAgLTY0MSw2ICs2MDcsNyBAQAogfQogZWFybHlfcGFyYW0oIm51bWEiLCBudW1hX3NldHVwKTsKIAorI2lmZGVmIENPTkZJR19OVU1BCiAvKgogICogU2V0dXAgZWFybHkgY3B1X3RvX25vZGUuCiAgKgpAQCAtNjUyLDE0ICs2MTksMTkgQEAKICAqIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgaW4gYSByb3VuZCByb2JpbiBtYW5uZXIgYXQgbnVtYV9pbml0X2FycmF5LAogICogcHJpb3IgdG8gdGhpcyBjYWxsLCBhbmQgdGhpcyBpbml0aWFsaXphdGlvbiBpcyBnb29kIGVub3VnaAogICogZm9yIHRoZSBmYWtlIE5VTUEgY2FzZXMuCisgKgorICogQ2FsbGVkIGJlZm9yZSB0aGUgcGVyX2NwdSBhcmVhcyBhcmUgc2V0dXAuCiAgKi8KIHZvaWQgX19pbml0IGluaXRfY3B1X3RvX25vZGUodm9pZCkKIHsKLQlpbnQgaTsKKwlpbnQgY3B1OworCXUxNiAqY3B1X3RvX2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fYXBpY2lkKTsKIAotCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsKKwlCVUdfT04oY3B1X3RvX2FwaWNpZCA9PSBOVUxMKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKIAkJaW50IG5vZGU7Ci0JCXUxNiBhcGljaWQgPSB4ODZfY3B1X3RvX2FwaWNpZF9pbml0W2ldOworCQl1MTYgYXBpY2lkID0gY3B1X3RvX2FwaWNpZFtjcHVdOwogCiAJCWlmIChhcGljaWQgPT0gQkFEX0FQSUNJRCkKIAkJCWNvbnRpbnVlOwpAQCAtNjY4LDggKzY0MCw5IEBACiAJCQljb250aW51ZTsKIAkJaWYgKCFub2RlX29ubGluZShub2RlKSkKIAkJCWNvbnRpbnVlOwotCQludW1hX3NldF9ub2RlKGksIG5vZGUpOworCQludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7CiAJfQogfQorI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGFnZWF0dHItdGVzdC5jIGIvYXJjaC94ODYvbW0vcGFnZWF0dHItdGVzdC5jCmluZGV4IDc1ZjFiMTAuLjBkY2Q0MmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BhZ2VhdHRyLXRlc3QuYworKysgYi9hcmNoL3g4Ni9tbS9wYWdlYXR0ci10ZXN0LmMKQEAgLTEsOCArMSw4IEBACiAvKgogICogc2VsZiB0ZXN0IGZvciBjaGFuZ2VfcGFnZV9hdHRyLgogICoKLSAqIENsZWFycyB0aGUgZ2xvYmFsIGJpdCBvbiByYW5kb20gcGFnZXMgaW4gdGhlIGRpcmVjdCBtYXBwaW5nLCB0aGVuIHJldmVydHMKLSAqIGFuZCBjb21wYXJlcyBwYWdlIHRhYmxlcyBmb3J3YXJkcyBhbmQgYWZ0ZXJ3YXJkcy4KKyAqIENsZWFycyB0aGUgYSB0ZXN0IHB0ZSBiaXQgb24gcmFuZG9tIHBhZ2VzIGluIHRoZSBkaXJlY3QgbWFwcGluZywKKyAqIHRoZW4gcmV2ZXJ0cyBhbmQgY29tcGFyZXMgcGFnZSB0YWJsZXMgZm9yd2FyZHMgYW5kIGFmdGVyd2FyZHMuCiAgKi8KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgpAQCAtMzIsNiArMzIsMTMgQEAKIAlHUFMJCQk9ICgxPDwzMCkKIH07CiAKKyNkZWZpbmUgUEFHRV9URVNUQklUCV9fcGdwcm90KF9QQUdFX1VOVVNFRDEpCisKK3N0YXRpYyBpbnQgcHRlX3Rlc3RiaXQocHRlX3QgcHRlKQoreworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX1VOVVNFRDE7Cit9CisKIHN0cnVjdCBzcGxpdF9zdGF0ZSB7CiAJbG9uZyBscGcsIGdwZywgc3BnLCBleGVjOwogCWxvbmcgbWluX2V4ZWMsIG1heF9leGVjOwpAQCAtMTY1LDE1ICsxNzIsMTQgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9jbGVhcihhZGRyW2ldLCBsZW5baV0sCi0JCQkJCSAgICAgICBfX3BncHJvdChfUEFHRV9HTE9CQUwpKTsKKwkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9zZXQoYWRkcltpXSwgbGVuW2ldLCBQQUdFX1RFU1RCSVQpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgJWQgZmFpbGVkICVkXG4iLCBpLCBlcnIpOwogCQkJZmFpbGVkKys7CiAJCX0KIAogCQlwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyW2ldLCAmbGV2ZWwpOwotCQlpZiAoIXB0ZSB8fCBwdGVfZ2xvYmFsKCpwdGUpIHx8IHB0ZV9odWdlKCpwdGUpKSB7CisJCWlmICghcHRlIHx8ICFwdGVfdGVzdGJpdCgqcHRlKSB8fCBwdGVfaHVnZSgqcHRlKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgJWx4OiBiYWQgcHRlICVMeFxuIiwgYWRkcltpXSwKIAkJCQlwdGUgPyAodTY0KXB0ZV92YWwoKnB0ZSkgOiAwVUxMKTsKIAkJCWZhaWxlZCsrOwpAQCAtMTk4LDE0ICsyMDQsMTMgQEAKIAkJCWZhaWxlZCsrOwogCQkJY29udGludWU7CiAJCX0KLQkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9zZXQoYWRkcltpXSwgbGVuW2ldLAotCQkJCQkgICAgIF9fcGdwcm90KF9QQUdFX0dMT0JBTCkpOworCQllcnIgPSBjaGFuZ2VfcGFnZV9hdHRyX2NsZWFyKGFkZHJbaV0sIGxlbltpXSwgUEFHRV9URVNUQklUKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ1BBIHJldmVydGluZyBmYWlsZWQ6ICVkXG4iLCBlcnIpOwogCQkJZmFpbGVkKys7CiAJCX0KIAkJcHRlID0gbG9va3VwX2FkZHJlc3MoYWRkcltpXSwgJmxldmVsKTsKLQkJaWYgKCFwdGUgfHwgIXB0ZV9nbG9iYWwoKnB0ZSkpIHsKKwkJaWYgKCFwdGUgfHwgcHRlX3Rlc3RiaXQoKnB0ZSkpIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ1BBICVseDogYmFkIHB0ZSBhZnRlciByZXZlcnQgJUx4XG4iLAogCQkJCWFkZHJbaV0sIHB0ZSA/ICh1NjQpcHRlX3ZhbCgqcHRlKSA6IDBVTEwpOwogCQkJZmFpbGVkKys7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYWdlYXR0ci5jIGIvYXJjaC94ODYvbW0vcGFnZWF0dHIuYwppbmRleCA2MGJjYjViLi40N2Y0ZTJlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9wYWdlYXR0ci5jCisrKyBiL2FyY2gveDg2L21tL3BhZ2VhdHRyLmMKQEAgLTM0LDYgKzM0LDQxIEBACiAJdW5zaWduZWQJZm9yY2Vfc3BsaXQgOiAxOwogfTsKIAorI2lmZGVmIENPTkZJR19QUk9DX0ZTCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTsKKwordm9pZCB1cGRhdGVfcGFnZV9jb3VudChpbnQgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgcGFnZXMpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qIFByb3RlY3QgYWdhaW5zdCBDUEEgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwlkaXJlY3RfcGFnZXNfY291bnRbbGV2ZWxdICs9IHBhZ2VzOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHNwbGl0X3BhZ2VfY291bnQoaW50IGxldmVsKQoreworCWRpcmVjdF9wYWdlc19jb3VudFtsZXZlbF0tLTsKKwlkaXJlY3RfcGFnZXNfY291bnRbbGV2ZWwgLSAxXSArPSBQVFJTX1BFUl9QVEU7Cit9CisKK2ludCBhcmNoX3JlcG9ydF9tZW1pbmZvKGNoYXIgKnBhZ2UpCit7CisJaW50IG4gPSBzcHJpbnRmKHBhZ2UsICJEaXJlY3RNYXA0azogICU4bHVcbiIKKwkJCSJEaXJlY3RNYXAyTTogICU4bHVcbiIsCisJCQlkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfNEtdLAorCQkJZGlyZWN0X3BhZ2VzX2NvdW50W1BHX0xFVkVMXzJNXSk7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCW4gKz0gc3ByaW50ZihwYWdlICsgbiwgIkRpcmVjdE1hcDFHOiAgJThsdVxuIiwKKwkJICAgICBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfMUddKTsKKyNlbmRpZgorCXJldHVybiBuOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGxpdF9wYWdlX2NvdW50KGludCBsZXZlbCkgeyB9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19YODZfNjQKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGhpZ2htYXBfc3RhcnRfcGZuKHZvaWQpCkBAIC0yMjcsNiArMjYyLDcgQEAKIAogCXJldHVybiBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIGFkZHJlc3MpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwobG9va3VwX2FkZHJlc3MpOwogCiAvKgogICogU2V0IHRoZSBuZXcgcG1kIGluIGFsbCB0aGUgcGdkcyB3ZSBrbm93IGFib3V0OgpAQCAtNTAwLDYgKzUzNiwxNiBAQAogCWZvciAoaSA9IDA7IGkgPCBQVFJTX1BFUl9QVEU7IGkrKywgcGZuICs9IHBmbmluYykKIAkJc2V0X3B0ZSgmcGJhc2VbaV0sIHBmbl9wdGUocGZuLCByZWZfcHJvdCkpOwogCisJaWYgKGFkZHJlc3MgPj0gKHVuc2lnbmVkIGxvbmcpX192YSgwKSAmJgorCQlhZGRyZXNzIDwgKHVuc2lnbmVkIGxvbmcpX192YShtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisJCXNwbGl0X3BhZ2VfY291bnQobGV2ZWwpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChhZGRyZXNzID49ICh1bnNpZ25lZCBsb25nKV9fdmEoMVVMPDwzMikgJiYKKwkJYWRkcmVzcyA8ICh1bnNpZ25lZCBsb25nKV9fdmEobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisJCXNwbGl0X3BhZ2VfY291bnQobGV2ZWwpOworI2VuZGlmCisKIAkvKgogCSAqIEluc3RhbGwgdGhlIG5ldywgc3BsaXQgdXAgcGFnZXRhYmxlLiBJbXBvcnRhbnQgZGV0YWlscyBoZXJlOgogCSAqCkBAIC02MTMsMTUgKzY1OSwyNCBAQAogCXN0cnVjdCBjcGFfZGF0YSBhbGlhc19jcGE7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY3BhLT5wZm4gPiBtYXhfcGZuX21hcHBlZCkKKwlpZiAoY3BhLT5wZm4gPj0gbWF4X3Bmbl9tYXBwZWQpCiAJCXJldHVybiAwOwogCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChjcGEtPnBmbiA+PSBtYXhfbG93X3Bmbl9tYXBwZWQgJiYgY3BhLT5wZm4gPCAoMVVMPDwoMzItUEFHRV9TSElGVCkpKQorCQlyZXR1cm4gMDsKKyNlbmRpZgogCS8qCiAJICogTm8gbmVlZCB0byByZWRvLCB3aGVuIHRoZSBwcmltYXJ5IGNhbGwgdG91Y2hlZCB0aGUgZGlyZWN0CiAJICogbWFwcGluZyBhbHJlYWR5OgogCSAqLwotCWlmICghd2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VULAotCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpKSB7CisJaWYgKCEod2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VULAorCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X2xvd19wZm5fbWFwcGVkIDw8IFBBR0VfU0hJRlQpKQorI2lmZGVmIENPTkZJR19YODZfNjQKKwkJfHwgd2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VUICsgKDFVTDw8MzIpLAorCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisjZW5kaWYKKwkpKSB7CiAKIAkJYWxpYXNfY3BhID0gKmNwYTsKIAkJYWxpYXNfY3BhLnZhZGRyID0gKHVuc2lnbmVkIGxvbmcpIF9fdmEoY3BhLT5wZm4gPDwgUEFHRV9TSElGVCk7CkBAIC04MDUsNyArODYwLDcgQEAKIAogaW50IHNldF9tZW1vcnlfd2ModW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgbnVtcGFnZXMpCiB7Ci0JaWYgKCFwYXRfd2NfZW5hYmxlZCkKKwlpZiAoIXBhdF9lbmFibGVkKQogCQlyZXR1cm4gc2V0X21lbW9yeV91YyhhZGRyLCBudW1wYWdlcyk7CiAKIAlpZiAocmVzZXJ2ZV9tZW10eXBlKGFkZHIsIGFkZHIgKyBudW1wYWdlcyAqIFBBR0VfU0laRSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdC5jIGIvYXJjaC94ODYvbW0vcGF0LmMKaW5kZXggMDZiN2ExYy4uZDQ1ODUwNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGF0LmMKKysrIGIvYXJjaC94ODYvbW0vcGF0LmMKQEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQVQKLWludCBfX3JlYWRfbW9zdGx5IHBhdF93Y19lbmFibGVkID0gMTsKK2ludCBfX3JlYWRfbW9zdGx5IHBhdF9lbmFibGVkID0gMTsKIAogdm9pZCBfX2NwdWluaXQgcGF0X2Rpc2FibGUoY2hhciAqcmVhc29uKQogewotCXBhdF93Y19lbmFibGVkID0gMDsKKwlwYXRfZW5hYmxlZCA9IDA7CiAJcHJpbnRrKEtFUk5fSU5GTyAiJXNcbiIsIHJlYXNvbik7CiB9CiAKQEAgLTQyLDYgKzQyLDE5IEBACiBlYXJseV9wYXJhbSgibm9wYXQiLCBub3BhdCk7CiAjZW5kaWYKIAorCitzdGF0aWMgaW50IGRlYnVnX2VuYWJsZTsKK3N0YXRpYyBpbnQgX19pbml0IHBhdF9kZWJ1Z19zZXR1cChjaGFyICpzdHIpCit7CisJZGVidWdfZW5hYmxlID0gMTsKKwlyZXR1cm4gMDsKK30KK19fc2V0dXAoImRlYnVncGF0IiwgcGF0X2RlYnVnX3NldHVwKTsKKworI2RlZmluZSBkcHJpbnRrKGZtdCwgYXJnLi4uKSBcCisJZG8geyBpZiAoZGVidWdfZW5hYmxlKSBwcmludGsoS0VSTl9JTkZPIGZtdCwgIyNhcmcpOyB9IHdoaWxlICgwKQorCisKIHN0YXRpYyB1NjQgX19yZWFkX21vc3RseSBib290X3BhdF9zdGF0ZTsKIAogZW51bSB7CkBAIC01MywyNCArNjYsMjUgQEAKIAlQQVRfVUNfTUlOVVMgPSA3LAkvKiBVQywgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgTVRSUiAqLwogfTsKIAotI2RlZmluZSBQQVQoeCx5KQkoKHU2NClQQVRfICMjIHkgPDwgKCh4KSo4KSkKKyNkZWZpbmUgUEFUKHgsIHkpCSgodTY0KVBBVF8gIyMgeSA8PCAoKHgpKjgpKQogCiB2b2lkIHBhdF9pbml0KHZvaWQpCiB7CiAJdTY0IHBhdDsKIAotCWlmICghcGF0X3djX2VuYWJsZWQpCisJaWYgKCFwYXRfZW5hYmxlZCkKIAkJcmV0dXJuOwogCiAJLyogUGFyYW5vaWEgY2hlY2suICovCi0JaWYgKCFjcHVfaGFzX3BhdCkgewotCQlwcmludGsoS0VSTl9FUlIgIlBBVCBlbmFibGVkLCBidXQgQ1BVIGZlYXR1cmUgY2xlYXJlZFxuIik7CisJaWYgKCFjcHVfaGFzX3BhdCAmJiBib290X3BhdF9zdGF0ZSkgewogCQkvKgotCQkgKiBQYW5pYyBpZiB0aGlzIGhhcHBlbnMgb24gdGhlIHNlY29uZGFyeSBDUFUsIGFuZCB3ZQorCQkgKiBJZiB0aGlzIGhhcHBlbnMgd2UgYXJlIG9uIGEgc2Vjb25kYXJ5IENQVSwgYnV0CiAJCSAqIHN3aXRjaGVkIHRvIFBBVCBvbiB0aGUgYm9vdCBDUFUuIFdlIGhhdmUgbm8gd2F5IHRvCiAJCSAqIHVuZG8gUEFULgotCQkqLwotCQlCVUdfT04oYm9vdF9wYXRfc3RhdGUpOworCQkgKi8KKwkJcHJpbnRrKEtFUk5fRVJSICJQQVQgZW5hYmxlZCwgIgorCQkgICAgICAgImJ1dCBub3Qgc3VwcG9ydGVkIGJ5IHNlY29uZGFyeSBDUFVcbiIpOworCQlCVUcoKTsKIAl9CiAKIAkvKiBTZXQgUFdUIHRvIFdyaXRlLUNvbWJpbmluZy4gQWxsIG90aGVyIGJpdHMgc3RheSB0aGUgc2FtZSAqLwpAQCAtODYsOCArMTAwLDggQEAKIAkgKiAgICAgIDAxMSBVQwkJX1BBR0VfQ0FDSEVfVUMKIAkgKiBQQVQgYml0IHVudXNlZAogCSAqLwotCXBhdCA9IFBBVCgwLFdCKSB8IFBBVCgxLFdDKSB8IFBBVCgyLFVDX01JTlVTKSB8IFBBVCgzLFVDKSB8Ci0JICAgICAgUEFUKDQsV0IpIHwgUEFUKDUsV0MpIHwgUEFUKDYsVUNfTUlOVVMpIHwgUEFUKDcsVUMpOworCXBhdCA9IFBBVCgwLCBXQikgfCBQQVQoMSwgV0MpIHwgUEFUKDIsIFVDX01JTlVTKSB8IFBBVCgzLCBVQykgfAorCSAgICAgIFBBVCg0LCBXQikgfCBQQVQoNSwgV0MpIHwgUEFUKDYsIFVDX01JTlVTKSB8IFBBVCg3LCBVQyk7CiAKIAkvKiBCb290IENQVSBjaGVjayAqLwogCWlmICghYm9vdF9wYXRfc3RhdGUpCkBAIC0xMDMsMTEgKzExNywxMSBAQAogc3RhdGljIGNoYXIgKmNhdHRyX25hbWUodW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzd2l0Y2ggKGZsYWdzICYgX1BBR0VfQ0FDSEVfTUFTSykgewotCQljYXNlIF9QQUdFX0NBQ0hFX1VDOgkJcmV0dXJuICJ1bmNhY2hlZCI7Ci0JCWNhc2UgX1BBR0VfQ0FDSEVfVUNfTUlOVVM6CXJldHVybiAidW5jYWNoZWQtbWludXMiOwotCQljYXNlIF9QQUdFX0NBQ0hFX1dCOgkJcmV0dXJuICJ3cml0ZS1iYWNrIjsKLQkJY2FzZSBfUEFHRV9DQUNIRV9XQzoJCXJldHVybiAid3JpdGUtY29tYmluaW5nIjsKLQkJZGVmYXVsdDoJCQlyZXR1cm4gImJyb2tlbiI7CisJY2FzZSBfUEFHRV9DQUNIRV9VQzoJCXJldHVybiAidW5jYWNoZWQiOworCWNhc2UgX1BBR0VfQ0FDSEVfVUNfTUlOVVM6CXJldHVybiAidW5jYWNoZWQtbWludXMiOworCWNhc2UgX1BBR0VfQ0FDSEVfV0I6CQlyZXR1cm4gIndyaXRlLWJhY2siOworCWNhc2UgX1BBR0VfQ0FDSEVfV0M6CQlyZXR1cm4gIndyaXRlLWNvbWJpbmluZyI7CisJZGVmYXVsdDoJCQlyZXR1cm4gImJyb2tlbiI7CiAJfQogfQogCkBAIC0xNDUsNDcgKzE1OSw1MCBAQAogICogVGhlIGludGVyc2VjdGlvbiBpcyBiYXNlZCBvbiAiRWZmZWN0aXZlIE1lbW9yeSBUeXBlIiB0YWJsZXMgaW4gSUEtMzIKICAqIFNETSB2b2wgM2EKICAqLwotc3RhdGljIGludCBwYXRfeF9tdHJyX3R5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHByb3QsCi0JCQkJdW5zaWduZWQgbG9uZyAqcmV0X3Byb3QpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwYXRfeF9tdHJyX3R5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHJlcV90eXBlKQogewotCXVuc2lnbmVkIGxvbmcgcGF0X3R5cGU7Ci0JdTggbXRycl90eXBlOwotCi0JcGF0X3R5cGUgPSBwcm90ICYgX1BBR0VfQ0FDSEVfTUFTSzsKLQlwcm90ICY9ICh+X1BBR0VfQ0FDSEVfTUFTSyk7Ci0KLQkvKgotCSAqIFdlIHJldHVybiB0aGUgUEFUIHJlcXVlc3QgZGlyZWN0bHkgZm9yIHR5cGVzIHdoZXJlIFBBVCB0YWtlcwotCSAqIHByZWNlZGVuY2Ugd2l0aCByZXNwZWN0IHRvIE1UUlIgYW5kIGZvciBVQ19NSU5VUy4KLQkgKiBDb25zaXN0ZW5jeSBjaGVja3Mgd2l0aCBvdGhlciBQQVQgcmVxdWVzdHMgaXMgZG9uZSBsYXRlcgotCSAqIHdoaWxlIGdvaW5nIHRocm91Z2ggbWVtdHlwZSBsaXN0LgotCSAqLwotCWlmIChwYXRfdHlwZSA9PSBfUEFHRV9DQUNIRV9XQykgewotCQkqcmV0X3Byb3QgPSBwcm90IHwgX1BBR0VfQ0FDSEVfV0M7Ci0JCXJldHVybiAwOwotCX0gZWxzZSBpZiAocGF0X3R5cGUgPT0gX1BBR0VfQ0FDSEVfVUNfTUlOVVMpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1VDX01JTlVTOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKHBhdF90eXBlID09IF9QQUdFX0NBQ0hFX1VDKSB7Ci0JCSpyZXRfcHJvdCA9IHByb3QgfCBfUEFHRV9DQUNIRV9VQzsKLQkJcmV0dXJuIDA7Ci0JfQotCiAJLyoKIAkgKiBMb29rIGZvciBNVFJSIGhpbnQgdG8gZ2V0IHRoZSBlZmZlY3RpdmUgdHlwZSBpbiBjYXNlIHdoZXJlIFBBVAogCSAqIHJlcXVlc3QgaXMgZm9yIFdCLgogCSAqLwotCW10cnJfdHlwZSA9IG10cnJfdHlwZV9sb29rdXAoc3RhcnQsIGVuZCk7CisJaWYgKHJlcV90eXBlID09IF9QQUdFX0NBQ0hFX1dCKSB7CisJCXU4IG10cnJfdHlwZTsKIAotCWlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1VDOwotCX0gZWxzZSBpZiAobXRycl90eXBlID09IE1UUlJfVFlQRV9XUkNPTUIpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1dDOwotCX0gZWxzZSB7Ci0JCSpyZXRfcHJvdCA9IHByb3QgfCBfUEFHRV9DQUNIRV9XQjsKKwkJbXRycl90eXBlID0gbXRycl90eXBlX2xvb2t1cChzdGFydCwgZW5kKTsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkKKwkJCXJldHVybiBfUEFHRV9DQUNIRV9VQzsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfV1JDT01CKQorCQkJcmV0dXJuIF9QQUdFX0NBQ0hFX1dDOwogCX0KIAorCXJldHVybiByZXFfdHlwZTsKK30KKworc3RhdGljIGludCBjaGtfY29uZmxpY3Qoc3RydWN0IG1lbXR5cGUgKm5ldywgc3RydWN0IG1lbXR5cGUgKmVudHJ5LAorCQkJdW5zaWduZWQgbG9uZyAqdHlwZSkKK3sKKwlpZiAobmV3LT50eXBlICE9IGVudHJ5LT50eXBlKSB7CisJCWlmICh0eXBlKSB7CisJCQluZXctPnR5cGUgPSBlbnRyeS0+dHlwZTsKKwkJCSp0eXBlID0gZW50cnktPnR5cGU7CisJCX0gZWxzZQorCQkJZ290byBjb25mbGljdDsKKwl9CisKKwkgLyogY2hlY2sgb3ZlcmxhcHMgd2l0aCBtb3JlIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKG5ldy0+ZW5kIDw9IGVudHJ5LT5zdGFydCkKKwkJCWJyZWFrOworCQllbHNlIGlmIChuZXctPnR5cGUgIT0gZW50cnktPnR5cGUpCisJCQlnb3RvIGNvbmZsaWN0OworCX0KIAlyZXR1cm4gMDsKKworIGNvbmZsaWN0OgorCXByaW50ayhLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAiCisJICAgICAgICIlTHgtJUx4ICVzPC0+JXNcbiIsIGN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwgbmV3LT5zdGFydCwKKwkgICAgICAgbmV3LT5lbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShlbnRyeS0+dHlwZSkpOworCXJldHVybiAtRUJVU1k7CiB9CiAKIC8qCkBAIC0xOTgsMzcgKzIxNSwzNiBAQAogICogcmVxX3R5cGUgd2lsbCBoYXZlIGEgc3BlY2lhbCBjYXNlIHZhbHVlICctMScsIHdoZW4gcmVxdWVzdGVyIHdhbnQgdG8gaW5oZXJpdAogICogdGhlIG1lbW9yeSB0eXBlIGZyb20gbXRyciAoaWYgV0IpLCBleGlzdGluZyBQQVQsIGRlZmF1bHRpbmcgdG8gVUNfTUlOVVMuCiAgKgotICogSWYgcmV0X3R5cGUgaXMgTlVMTCwgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgaWYgaXQgY2Fubm90IHJlc2VydmUgdGhlCi0gKiByZWdpb24gd2l0aCByZXFfdHlwZS4gSWYgcmV0X3R5cGUgaXMgbm9uLW51bGwsIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCi0gKiBhdmFpbGFibGUgdHlwZSBpbiByZXRfdHlwZSBpbiBjYXNlIG9mIG5vIGVycm9yLiBJbiBjYXNlIG9mIGFueSBlcnJvcgorICogSWYgbmV3X3R5cGUgaXMgTlVMTCwgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgaWYgaXQgY2Fubm90IHJlc2VydmUgdGhlCisgKiByZWdpb24gd2l0aCByZXFfdHlwZS4gSWYgbmV3X3R5cGUgaXMgbm9uLU5VTEwsIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCisgKiBhdmFpbGFibGUgdHlwZSBpbiBuZXdfdHlwZSBpbiBjYXNlIG9mIG5vIGVycm9yLiBJbiBjYXNlIG9mIGFueSBlcnJvcgogICogaXQgd2lsbCByZXR1cm4gYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUuCiAgKi8KIGludCByZXNlcnZlX21lbXR5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHJlcV90eXBlLAotCQkJdW5zaWduZWQgbG9uZyAqcmV0X3R5cGUpCisJCQl1bnNpZ25lZCBsb25nICpuZXdfdHlwZSkKIHsKLQlzdHJ1Y3QgbWVtdHlwZSAqbmV3X2VudHJ5ID0gTlVMTDsKLQlzdHJ1Y3QgbWVtdHlwZSAqcGFyc2U7CisJc3RydWN0IG1lbXR5cGUgKm5ldywgKmVudHJ5OwogCXVuc2lnbmVkIGxvbmcgYWN0dWFsX3R5cGU7CisJc3RydWN0IGxpc3RfaGVhZCAqd2hlcmU7CiAJaW50IGVyciA9IDA7CiAKLQkvKiBPbmx5IHRyYWNrIHdoZW4gcGF0X3djX2VuYWJsZWQgKi8KLQlpZiAoIXBhdF93Y19lbmFibGVkKSB7CisgCUJVR19PTihzdGFydCA+PSBlbmQpOyAvKiBlbmQgaXMgZXhjbHVzaXZlICovCisKKwlpZiAoIXBhdF9lbmFibGVkKSB7CiAJCS8qIFRoaXMgaXMgaWRlbnRpY2FsIHRvIHBhZ2UgdGFibGUgc2V0dGluZyB3aXRob3V0IFBBVCAqLwotCQlpZiAocmV0X3R5cGUpIHsKLQkJCWlmIChyZXFfdHlwZSA9PSAtMSkgewotCQkJCSpyZXRfdHlwZSA9IF9QQUdFX0NBQ0hFX1dCOwotCQkJfSBlbHNlIHsKLQkJCQkqcmV0X3R5cGUgPSByZXFfdHlwZTsKLQkJCX0KKwkJaWYgKG5ld190eXBlKSB7CisJCQlpZiAocmVxX3R5cGUgPT0gLTEpCisJCQkJKm5ld190eXBlID0gX1BBR0VfQ0FDSEVfV0I7CisJCQllbHNlCisJCQkJKm5ld190eXBlID0gcmVxX3R5cGUgJiBfUEFHRV9DQUNIRV9NQVNLOwogCQl9CiAJCXJldHVybiAwOwogCX0KIAogCS8qIExvdyBJU0EgcmVnaW9uIGlzIGFsd2F5cyBtYXBwZWQgV0IgaW4gcGFnZSB0YWJsZS4gTm8gbmVlZCB0byB0cmFjayAqLwotCWlmIChzdGFydCA+PSBJU0FfU1RBUlRfQUREUkVTUyAmJiAoZW5kIC0gMSkgPD0gSVNBX0VORF9BRERSRVNTKSB7Ci0JCWlmIChyZXRfdHlwZSkKLQkJCSpyZXRfdHlwZSA9IF9QQUdFX0NBQ0hFX1dCOwotCisJaWYgKGlzX0lTQV9yYW5nZShzdGFydCwgZW5kIC0gMSkpIHsKKwkJaWYgKG5ld190eXBlKQorCQkJKm5ld190eXBlID0gX1BBR0VfQ0FDSEVfV0I7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMjQxLDIwNiArMjU3LDkyIEBACiAJCSAqLwogCQl1OCBtdHJyX3R5cGUgPSBtdHJyX3R5cGVfbG9va3VwKHN0YXJ0LCBlbmQpOwogCi0JCWlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1dSQkFDSykgewotCQkJcmVxX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfV1JCQUNLKQogCQkJYWN0dWFsX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKLQkJfSBlbHNlIHsKLQkJCXJlcV90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CisJCWVsc2UKIAkJCWFjdHVhbF90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7Ci0JCX0KLQl9IGVsc2UgewotCQlyZXFfdHlwZSAmPSBfUEFHRV9DQUNIRV9NQVNLOwotCQllcnIgPSBwYXRfeF9tdHJyX3R5cGUoc3RhcnQsIGVuZCwgcmVxX3R5cGUsICZhY3R1YWxfdHlwZSk7Ci0JfQorCX0gZWxzZQorCQlhY3R1YWxfdHlwZSA9IHBhdF94X210cnJfdHlwZShzdGFydCwgZW5kLAorCQkJCQkgICAgICByZXFfdHlwZSAmIF9QQUdFX0NBQ0hFX01BU0spOwogCi0JaWYgKGVycikgewotCQlpZiAocmV0X3R5cGUpCi0JCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKLQotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQluZXdfZW50cnkgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5ld19lbnRyeSkKKwluZXcgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5ldykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQluZXdfZW50cnktPnN0YXJ0ID0gc3RhcnQ7Ci0JbmV3X2VudHJ5LT5lbmQgPSBlbmQ7Ci0JbmV3X2VudHJ5LT50eXBlID0gYWN0dWFsX3R5cGU7CisJbmV3LT5zdGFydCA9IHN0YXJ0OworCW5ldy0+ZW5kID0gZW5kOworCW5ldy0+dHlwZSA9IGFjdHVhbF90eXBlOwogCi0JaWYgKHJldF90eXBlKQotCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKKwlpZiAobmV3X3R5cGUpCisJCSpuZXdfdHlwZSA9IGFjdHVhbF90eXBlOwogCiAJc3Bpbl9sb2NrKCZtZW10eXBlX2xvY2spOwogCiAJLyogU2VhcmNoIGZvciBleGlzdGluZyBtYXBwaW5nIHRoYXQgb3ZlcmxhcHMgdGhlIGN1cnJlbnQgcmFuZ2UgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQlzdHJ1Y3QgbWVtdHlwZSAqc2F2ZWRfcHRyOwotCi0JCWlmIChwYXJzZS0+c3RhcnQgPj0gZW5kKSB7Ci0JCQlwcl9kZWJ1ZygiTmV3IEVudHJ5XG4iKTsKLQkJCWxpc3RfYWRkKCZuZXdfZW50cnktPm5kLCBwYXJzZS0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOworCXdoZXJlID0gTlVMTDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbWVtdHlwZV9saXN0LCBuZCkgeworCQlpZiAoZW5kIDw9IGVudHJ5LT5zdGFydCkgeworCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCWJyZWFrOwotCQl9Ci0KLQkJaWYgKHN0YXJ0IDw9IHBhcnNlLT5zdGFydCAmJiBlbmQgPj0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDw9IGVudHJ5LT5zdGFydCkgeyAvKiBlbmQgPiBlbnRyeS0+c3RhcnQgKi8KKwkJCWVyciA9IGNoa19jb25mbGljdChuZXcsIGVudHJ5LCBuZXdfdHlwZSk7CisJCQlpZiAoIWVycikgeworCQkJCWRwcmludGsoIk92ZXJsYXAgYXQgMHglTHgtMHglTHhcbiIsCisJCQkJCWVudHJ5LT5zdGFydCwgZW50cnktPmVuZCk7CisJCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCX0KLQotCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJcHJpbnRrKAotCQlLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAlTHgtJUx4ICVzPC0+JXNcbiIsCi0JCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJY2F0dHJfbmFtZShhY3R1YWxfdHlwZSksCi0JCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJCXNhdmVkX3B0ciA9IHBhcnNlOwotCQkJLyoKLQkJCSAqIENoZWNrIHRvIHNlZSB3aGV0aGVyIHRoZSByZXF1ZXN0IG92ZXJsYXBzIG1vcmUKLQkJCSAqIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0Ci0JCQkgKi8KLQkJCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocGFyc2UsICZtZW10eXBlX2xpc3QsIG5kKSB7Ci0JCQkJaWYgKGVuZCA8PSBwYXJzZS0+c3RhcnQpIHsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCi0JCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLAotCQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQkJY2F0dHJfbmFtZShwYXJzZS0+dHlwZSkpOwotCQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQotCQkJaWYgKGVycikgewotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlwcl9kZWJ1ZygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKLQkJCSAgICAgICBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsIHNhdmVkX3B0ci0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOwogCQkJYnJlYWs7Ci0JCX0KLQotCQlpZiAoc3RhcnQgPCBwYXJzZS0+ZW5kKSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDwgZW50cnktPmVuZCkgeyAvKiBzdGFydCA+IGVudHJ5LT5zdGFydCAqLworCQkJZXJyID0gY2hrX2NvbmZsaWN0KG5ldywgZW50cnksIG5ld190eXBlKTsKKwkJCWlmICghZXJyKSB7CisJCQkJZHByaW50aygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKKwkJCQkJZW50cnktPnN0YXJ0LCBlbnRyeS0+ZW5kKTsKKwkJCQl3aGVyZSA9ICZlbnRyeS0+bmQ7CiAJCQl9Ci0KLQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQljdXJyZW50LT5jb21tLCBjdXJyZW50LT5waWQsCi0JCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQljYXR0cl9uYW1lKHBhcnNlLT50eXBlKSk7Ci0JCQkJZXJyID0gLUVCVVNZOwotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlzYXZlZF9wdHIgPSBwYXJzZTsKLQkJCS8qCi0JCQkgKiBDaGVjayB0byBzZWUgd2hldGhlciB0aGUgcmVxdWVzdCBvdmVybGFwcyBtb3JlCi0JCQkgKiB0aGFuIG9uZSBlbnRyeSBpbiB0aGUgbGlzdAotCQkJICovCi0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlKHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQkJCWlmIChlbmQgPD0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQotCQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCQlwcmludGsoCi0JCUtFUk5fSU5GTyAiJXM6JWQgY29uZmxpY3RpbmcgbWVtb3J5IHR5cGVzICVMeC0lTHggJXM8LT4lc1xuIiwKLQkJCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCQljYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQkJZXJyID0gLUVCVVNZOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJCWlmIChlcnIpIHsKLQkJCQlicmVhazsKLQkJCX0KLQotCQkJcHJfZGVidWcoS0VSTl9JTkZPICJPdmVybGFwIGF0IDB4JUx4LTB4JUx4XG4iLAotCQkJCSBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsICZzYXZlZF9wdHItPm5kKTsKLQkJCW5ld19lbnRyeSA9IE5VTEw7CiAJCQlicmVhazsKIAkJfQogCX0KIAogCWlmIChlcnIpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTwotCSJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzXG4iLAotCQkJc3RhcnQsIGVuZCwgY2F0dHJfbmFtZShuZXdfZW50cnktPnR5cGUpLAotCQkJY2F0dHJfbmFtZShyZXFfdHlwZSkpOwotCQlrZnJlZShuZXdfZW50cnkpOworCQlwcmludGsoS0VSTl9JTkZPICJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCAiCisJCSAgICAgICAidHJhY2sgJXMsIHJlcSAlc1xuIiwKKwkJICAgICAgIHN0YXJ0LCBlbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShyZXFfdHlwZSkpOworCQlrZnJlZShuZXcpOwogCQlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQlpZiAobmV3X2VudHJ5KSB7Ci0JCS8qIE5vIGNvbmZsaWN0LiBOb3QgeWV0IGFkZGVkIHRvIHRoZSBsaXN0LiBBZGQgdG8gdGhlIHRhaWwgKi8KLQkJbGlzdF9hZGRfdGFpbCgmbmV3X2VudHJ5LT5uZCwgJm1lbXR5cGVfbGlzdCk7Ci0JCXByX2RlYnVnKCJOZXcgRW50cnlcbiIpOwotCX0KLQotCWlmIChyZXRfdHlwZSkgewotCQlwcl9kZWJ1ZygKLQkicmVzZXJ2ZV9tZW10eXBlIGFkZGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzLCByZXQgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpLCBjYXR0cl9uYW1lKCpyZXRfdHlwZSkpOwotCX0gZWxzZSB7Ci0JCXByX2RlYnVnKAotCSJyZXNlcnZlX21lbXR5cGUgYWRkZWQgMHglTHgtMHglTHgsIHRyYWNrICVzLCByZXEgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpKTsKLQl9CisJaWYgKHdoZXJlKQorCQlsaXN0X2FkZCgmbmV3LT5uZCwgd2hlcmUpOworCWVsc2UKKwkJbGlzdF9hZGRfdGFpbCgmbmV3LT5uZCwgJm1lbXR5cGVfbGlzdCk7CiAKIAlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKKworCWRwcmludGsoInJlc2VydmVfbWVtdHlwZSBhZGRlZCAweCVMeC0weCVMeCwgdHJhY2sgJXMsIHJlcSAlcywgcmV0ICVzXG4iLAorCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKG5ldy0+dHlwZSksIGNhdHRyX25hbWUocmVxX3R5cGUpLAorCQluZXdfdHlwZSA/IGNhdHRyX25hbWUoKm5ld190eXBlKSA6ICItIik7CisKIAlyZXR1cm4gZXJyOwogfQogCiBpbnQgZnJlZV9tZW10eXBlKHU2NCBzdGFydCwgdTY0IGVuZCkKIHsKLQlzdHJ1Y3QgbWVtdHlwZSAqbWw7CisJc3RydWN0IG1lbXR5cGUgKmVudHJ5OwogCWludCBlcnIgPSAtRUlOVkFMOwogCi0JLyogT25seSB0cmFjayB3aGVuIHBhdF93Y19lbmFibGVkICovCi0JaWYgKCFwYXRfd2NfZW5hYmxlZCkgeworCWlmICghcGF0X2VuYWJsZWQpCiAJCXJldHVybiAwOwotCX0KIAogCS8qIExvdyBJU0EgcmVnaW9uIGlzIGFsd2F5cyBtYXBwZWQgV0IuIE5vIG5lZWQgdG8gdHJhY2sgKi8KLQlpZiAoc3RhcnQgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgZW5kIDw9IElTQV9FTkRfQUREUkVTUykgeworCWlmIChpc19JU0FfcmFuZ2Uoc3RhcnQsIGVuZCAtIDEpKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlzcGluX2xvY2soJm1lbXR5cGVfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShtbCwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKLQkJaWYgKG1sLT5zdGFydCA9PSBzdGFydCAmJiBtbC0+ZW5kID09IGVuZCkgewotCQkJbGlzdF9kZWwoJm1sLT5uZCk7Ci0JCQlrZnJlZShtbCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKGVudHJ5LT5zdGFydCA9PSBzdGFydCAmJiBlbnRyeS0+ZW5kID09IGVuZCkgeworCQkJbGlzdF9kZWwoJmVudHJ5LT5uZCk7CisJCQlrZnJlZShlbnRyeSk7CiAJCQllcnIgPSAwOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ1Miw3ICszNTQsNyBAQAogCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLCBzdGFydCwgZW5kKTsKIAl9CiAKLQlwcl9kZWJ1ZygiZnJlZV9tZW10eXBlIHJlcXVlc3QgMHglTHgtMHglTHhcbiIsIHN0YXJ0LCBlbmQpOworCWRwcmludGsoImZyZWVfbWVtdHlwZSByZXF1ZXN0IDB4JUx4LTB4JUx4XG4iLCBzdGFydCwgZW5kKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC01MjEsMTIgKzQyMywxMiBAQAogCSAqIGNhY2hpbmcgZm9yIHRoZSBoaWdoIGFkZHJlc3NlcyB0aHJvdWdoIHRoZSBLRU4gcGluLCBidXQKIAkgKiB3ZSBtYWludGFpbiB0aGUgdHJhZGl0aW9uIG9mIHBhcmFub2lhIGluIHRoaXMgY29kZS4KIAkgKi8KLQlpZiAoIXBhdF93Y19lbmFibGVkICYmCi0JICAgICEgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9LNl9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9DWVJJWF9BUlIsIGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpIHx8Ci0JCXRlc3RfYml0KFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSkgJiYKLQkgICAocGZuIDw8IFBBR0VfU0hJRlQpID49IF9fcGEoaGlnaF9tZW1vcnkpKSB7CisJaWYgKCFwYXRfZW5hYmxlZCAmJgorCSAgICAhKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9LNl9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DWVJJWF9BUlIpIHx8CisJICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSKSkgJiYKKwkgICAgKHBmbiA8PCBQQUdFX1NISUZUKSA+PSBfX3BhKGhpZ2hfbWVtb3J5KSkgewogCQlmbGFncyA9IF9QQUdFX0NBQ0hFX1VDOwogCX0KICNlbmRpZgpAQCAtNTQ3LDggKzQ0OSw5IEBACiAJaWYgKHJldHZhbCA8IDApCiAJCXJldHVybiAwOwogCi0JaWYgKHBmbiA8PSBtYXhfcGZuX21hcHBlZCAmJgotICAgICAgICAgICAgaW9yZW1hcF9jaGFuZ2VfYXR0cigodW5zaWduZWQgbG9uZylfX3ZhKG9mZnNldCksIHNpemUsIGZsYWdzKSA8IDApIHsKKwlpZiAoKChwZm4gPCBtYXhfbG93X3Bmbl9tYXBwZWQpIHx8CisJICAgICAocGZuID49ICgxVUw8PCgzMiAtIFBBR0VfU0hJRlQpKSAmJiBwZm4gPCBtYXhfcGZuX21hcHBlZCkpICYmCisJICAgIGlvcmVtYXBfY2hhbmdlX2F0dHIoKHVuc2lnbmVkIGxvbmcpX192YShvZmZzZXQpLCBzaXplLCBmbGFncykgPCAwKSB7CiAJCWZyZWVfbWVtdHlwZShvZmZzZXQsIG9mZnNldCArIHNpemUpOwogCQlwcmludGsoS0VSTl9JTkZPCiAJCSIlczolZCAvZGV2L21lbSBpb3JlbWFwX2NoYW5nZV9hdHRyIGZhaWxlZCAlcyBmb3IgJUx4LSVMeFxuIiwKQEAgLTU4Niw0ICs0ODksMyBAQAogCiAJZnJlZV9tZW10eXBlKGFkZHIsIGFkZHIgKyBzaXplKTsKIH0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGZfaW4uYyBiL2FyY2gveDg2L21tL3BmX2luLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhMTkxMQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL3BmX2luLmMKQEAgLTAsMCArMSw0ODkgQEAKKy8qCisgKiAgRmF1bHQgSW5qZWN0aW9uIFRlc3QgaGFybmVzcyAoRkkpCisgKiAgQ29weXJpZ2h0IChDKSBJbnRlbCBDcm9wLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LAorICogIFVTQS4KKyAqCisgKi8KKworLyogIElkOiBwZl9pbi5jLHYgMS4xLjEuMSAyMDAyLzExLzEyIDA1OjU2OjMyIGJybG9jayBFeHAKKyAqICBDb3B5cmlnaHQgYnkgSW50ZWwgQ3JvcC4sIDIwMDIKKyAqICBMb3VpcyBaaHVhbmcgKGxvdWlzLnpodWFuZ0BpbnRlbC5jb20pCisgKgorICogIEJqb3JuIFN0ZWluYnJpbmsgKEIuU3RlaW5icmlua0BnbXguZGUpLCAyMDA3CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiAvKiBzdHJ1Y3QgcHRfcmVncyAqLworI2luY2x1ZGUgInBmX2luLmgiCisKKyNpZmRlZiBfX2kzODZfXworLyogSUEzMiBNYW51YWwgMywgMi0xICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweEYwLCAweEYyLCAweEYzLCAweDJFLCAweDM2LCAweDNFLCAweDI2LCAweDY0LAorCTB4NjUsIDB4MkUsIDB4M0UsIDB4NjYsIDB4NjcKK307CisvKiBJQTMyIE1hbnVhbCAzLCAzLTQzMiovCitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ19yb3BbXSA9IHsKKwkweDhBLCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ193b3BbXSA9IHsgMHg4OCwgMHg4OSB9Oworc3RhdGljIHVuc2lnbmVkIGludCBpbW1fd29wW10gPSB7IDB4QzYsIDB4QzcgfTsKKy8qIElBMzIgTWFudWFsIDMsIDMtNDMyKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnczMltdID0geworCTB4ODksIDB4OEIsIDB4QzcsIDB4QjYwRiwgMHhCNzBGLCAweEJFMEYsIDB4QkYwRgorfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYsIDB4QjYwRiwgMHhCRTBGIH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13MTZbXSA9IHsgMHhCNzBGLCAweEJGMEYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXczMltdID0geyAweDg5LCAweDhCLCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13NjRbXSA9IHt9OworI2Vsc2UgLyogbm90IF9faTM4Nl9fICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweDY2LCAweDY3LCAweDJFLCAweDNFLCAweDI2LCAweDY0LCAweDY1LCAweDM2LAorCTB4RjAsIDB4RjMsIDB4RjIsCisJLyogUkVYIFByZWZpeGVzICovCisJMHg0MCwgMHg0MSwgMHg0MiwgMHg0MywgMHg0NCwgMHg0NSwgMHg0NiwgMHg0NywKKwkweDQ4LCAweDQ5LCAweDRhLCAweDRiLCAweDRjLCAweDRkLCAweDRlLCAweDRmCit9OworLyogQU1ENjQgTWFudWFsIDMsIEFwcGVuZGl4IEEqLworc3RhdGljIHVuc2lnbmVkIGludCByZWdfcm9wW10gPSB7CisJMHg4QSwgMHg4QiwgMHhCNjBGLCAweEI3MEYsIDB4QkUwRiwgMHhCRjBGCit9Oworc3RhdGljIHVuc2lnbmVkIGludCByZWdfd29wW10gPSB7IDB4ODgsIDB4ODkgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaW1tX3dvcFtdID0geyAweEM2LCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3OFtdID0geyAweEM2LCAweDg4LCAweDhBIH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3MzJbXSA9IHsKKwkweEM3LCAweDg5LCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CisvKiA4IGJpdCBvbmx5ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13OFtdID0geyAweEM2LCAweDg4LCAweDhBLCAweEI2MEYsIDB4QkUwRiB9OworLyogMTYgYml0IG9ubHkgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXcxNltdID0geyAweEI3MEYsIDB4QkYwRiB9OworLyogMTYgb3IgMzIgYml0ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13MzJbXSA9IHsgMHhDNyB9OworLyogMTYsIDMyIG9yIDY0IGJpdCAqLworc3RhdGljIHVuc2lnbmVkIGludCBtdzY0W10gPSB7IDB4ODksIDB4OEIgfTsKKyNlbmRpZiAvKiBub3QgX19pMzg2X18gKi8KKworc3RhdGljIGludCBza2lwX3ByZWZpeCh1bnNpZ25lZCBjaGFyICphZGRyLCBpbnQgKnNob3J0ZWQsIGludCAqZW5sYXJnZWQsCisJCQkJCQkJCWludCAqcmV4cikKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBjaGFyICpwID0gYWRkcjsKKwkqc2hvcnRlZCA9IDA7CisJKmVubGFyZ2VkID0gMDsKKwkqcmV4ciA9IDA7CisKK3Jlc3RhcnQ6CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJlZml4X2NvZGVzKTsgaSsrKSB7CisJCWlmICgqcCA9PSBwcmVmaXhfY29kZXNbaV0pIHsKKwkJCWlmICgqcCA9PSAweDY2KQorCQkJCSpzaG9ydGVkID0gMTsKKyNpZmRlZiBfX2FtZDY0X18KKwkJCWlmICgoKnAgJiAweGY4KSA9PSAweDQ4KQorCQkJCSplbmxhcmdlZCA9IDE7CisJCQlpZiAoKCpwICYgMHhmNCkgPT0gMHg0NCkKKwkJCQkqcmV4ciA9IDE7CisjZW5kaWYKKwkJCXArKzsKKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0KKworCXJldHVybiAocCAtIGFkZHIpOworfQorCitzdGF0aWMgaW50IGdldF9vcGNvZGUodW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50ICpvcGNvZGUpCit7CisJaW50IGxlbjsKKworCWlmICgqYWRkciA9PSAweDBGKSB7CisJCS8qIDB4MEYgaXMgZXh0ZW5zaW9uIGluc3RydWN0aW9uICovCisJCSpvcGNvZGUgPSAqKHVuc2lnbmVkIHNob3J0ICopYWRkcjsKKwkJbGVuID0gMjsKKwl9IGVsc2UgeworCQkqb3Bjb2RlID0gKmFkZHI7CisJCWxlbiA9IDE7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworI2RlZmluZSBDSEVDS19PUF9UWVBFKG9wY29kZSwgYXJyYXksIHR5cGUpIFwKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhcnJheSk7IGkrKykgeyBcCisJCWlmIChhcnJheVtpXSA9PSBvcGNvZGUpIHsgXAorCQkJcnYgPSB0eXBlOyBcCisJCQlnb3RvIGV4aXQ7IFwKKwkJfSBcCisJfQorCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisJaW50IGk7CisJZW51bSByZWFzb25fdHlwZSBydiA9IE9USEVSUzsKKworCXAgPSAodW5zaWduZWQgY2hhciAqKWluc19hZGRyOworCXAgKz0gc2tpcF9wcmVmaXgocCwgJnNob3J0ZWQsICZlbmxhcmdlZCwgJnJleHIpOworCXAgKz0gZ2V0X29wY29kZShwLCAmb3Bjb2RlKTsKKworCUNIRUNLX09QX1RZUEUob3Bjb2RlLCByZWdfcm9wLCBSRUdfUkVBRCk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIHJlZ193b3AsIFJFR19XUklURSk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIGltbV93b3AsIElNTV9XUklURSk7CisKK2V4aXQ6CisJcmV0dXJuIHJ2OworfQorI3VuZGVmIENIRUNLX09QX1RZUEUKKworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfaW5zX3JlZ193aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzgpOyBpKyspCisJCWlmIChydzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzMyKTsgaSsrKQorCQlpZiAocnczMltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gKHNob3J0ZWQgPyAyIDogKGVubGFyZ2VkID8gOCA6IDQpKTsKKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBVbmtub3duIG9wY29kZSAweCUwMnhcbiIsIG9wY29kZSk7CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzgpOyBpKyspCisJCWlmIChtdzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzE2KTsgaSsrKQorCQlpZiAobXcxNltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gMjsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG13MzIpOyBpKyspCisJCWlmIChtdzMyW2ldID09IG9wY29kZSkKKwkJCXJldHVybiBzaG9ydGVkID8gMiA6IDQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzY0KTsgaSsrKQorCQlpZiAobXc2NFtpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gc2hvcnRlZCA/IDIgOiAoZW5sYXJnZWQgPyA4IDogNCk7CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogVW5rbm93biBvcGNvZGUgMHglMDJ4XG4iLCBvcGNvZGUpOworCXJldHVybiAwOworfQorCisvKgorICogRGVmaW5lIHJlZ2lzdGVyIGlkZW50IGluIG1vZC9ybSBieXRlLgorICogTm90ZTogdGhlc2UgYXJlIE5PVCB0aGUgc2FtZSBhcyBpbiBwdHJhY2UtYWJpLmguCisgKi8KK2VudW0geworCWFyZ19BTCA9IDAsCisJYXJnX0NMID0gMSwKKwlhcmdfREwgPSAyLAorCWFyZ19CTCA9IDMsCisJYXJnX0FIID0gNCwKKwlhcmdfQ0ggPSA1LAorCWFyZ19ESCA9IDYsCisJYXJnX0JIID0gNywKKworCWFyZ19BWCA9IDAsCisJYXJnX0NYID0gMSwKKwlhcmdfRFggPSAyLAorCWFyZ19CWCA9IDMsCisJYXJnX1NQID0gNCwKKwlhcmdfQlAgPSA1LAorCWFyZ19TSSA9IDYsCisJYXJnX0RJID0gNywKKyNpZmRlZiBfX2FtZDY0X18KKwlhcmdfUjggID0gOCwKKwlhcmdfUjkgID0gOSwKKwlhcmdfUjEwID0gMTAsCisJYXJnX1IxMSA9IDExLAorCWFyZ19SMTIgPSAxMiwKKwlhcmdfUjEzID0gMTMsCisJYXJnX1IxNCA9IDE0LAorCWFyZ19SMTUgPSAxNQorI2VuZGlmCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqZ2V0X3JlZ193OChpbnQgbm8sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXVuc2lnbmVkIGNoYXIgKnJ2ID0gTlVMTDsKKworCXN3aXRjaCAobm8pIHsKKwljYXNlIGFyZ19BTDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQkw6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NMOgorCQlydiA9ICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmN4OworCQlicmVhazsKKwljYXNlIGFyZ19ETDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQUg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmF4OworCQlicmVhazsKKwljYXNlIGFyZ19CSDoKKwkJcnYgPSAxICsgKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NIOgorCQlydiA9IDEgKyAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5jeDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmR4OworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yODsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjk6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+cjk7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTE7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMjoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTI7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMzoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTQ7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTU7CisJCWJyZWFrOworI2VuZGlmCisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IEVycm9yIHJlZyBubyMgJWRcbiIsIG5vKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiBydjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgKmdldF9yZWdfdzMyKGludCBubywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgbG9uZyAqcnYgPSBOVUxMOworCisJc3dpdGNoIChubykgeworCWNhc2UgYXJnX0FYOgorCQlydiA9ICZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQlg6CisJCXJ2ID0gJnJlZ3MtPmJ4OworCQlicmVhazsKKwljYXNlIGFyZ19DWDoKKwkJcnYgPSAmcmVncy0+Y3g7CisJCWJyZWFrOworCWNhc2UgYXJnX0RYOgorCQlydiA9ICZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfU1A6CisJCXJ2ID0gJnJlZ3MtPnNwOworCQlicmVhazsKKwljYXNlIGFyZ19CUDoKKwkJcnYgPSAmcmVncy0+YnA7CisJCWJyZWFrOworCWNhc2UgYXJnX1NJOgorCQlydiA9ICZyZWdzLT5zaTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREk6CisJCXJ2ID0gJnJlZ3MtPmRpOworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAmcmVncy0+cjg7CisJCWJyZWFrOworCWNhc2UgYXJnX1I5OgorCQlydiA9ICZyZWdzLT5yOTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEwOgorCQlydiA9ICZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAmcmVncy0+cjExOworCQlicmVhazsKKwljYXNlIGFyZ19SMTI6CisJCXJ2ID0gJnJlZ3MtPnIxMjsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEzOgorCQlydiA9ICZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAmcmVncy0+cjE0OworCQlicmVhazsKKwljYXNlIGFyZ19SMTU6CisJCXJ2ID0gJnJlZ3MtPnIxNTsKKwkJYnJlYWs7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3IgcmVnIG5vIyAlZFxuIiwgbm8pOworCX0KKworCXJldHVybiBydjsKK30KKwordW5zaWduZWQgbG9uZyBnZXRfaW5zX3JlZ192YWwodW5zaWduZWQgbG9uZyBpbnNfYWRkciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwlpbnQgcmVnOworCXVuc2lnbmVkIGNoYXIgKnA7CisJaW50IGksIHNob3J0ZWQsIGVubGFyZ2VkLCByZXhyOworCXVuc2lnbmVkIGxvbmcgcnY7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocmVnX3JvcCk7IGkrKykKKwkJaWYgKHJlZ19yb3BbaV0gPT0gb3Bjb2RlKSB7CisJCQlydiA9IFJFR19SRUFEOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWdfd29wKTsgaSsrKQorCQlpZiAocmVnX3dvcFtpXSA9PSBvcGNvZGUpIHsKKwkJCXJ2ID0gUkVHX1dSSVRFOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogTm90IGEgcmVnaXN0ZXIgaW5zdHJ1Y3Rpb24sIG9wY29kZSAiCisJCQkJCQkJIjB4JTAyeFxuIiwgb3Bjb2RlKTsKKwlnb3RvIGVycjsKKworZG9fd29yazoKKwltb2Rfcm0gPSAqcDsKKwlyZWcgPSAoKG1vZF9ybSA+PiAzKSAmIDB4NykgfCAocmV4ciA8PCAzKTsKKwlzd2l0Y2ggKGdldF9pbnNfcmVnX3dpZHRoKGluc19hZGRyKSkgeworCWNhc2UgMToKKwkJcmV0dXJuICpnZXRfcmVnX3c4KHJlZywgcmVncyk7CisKKwljYXNlIDI6CisJCXJldHVybiAqKHVuc2lnbmVkIHNob3J0ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworCWNhc2UgNDoKKwkJcmV0dXJuICoodW5zaWduZWQgaW50ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworI2lmZGVmIF9fYW1kNjRfXworCWNhc2UgODoKKwkJcmV0dXJuICoodW5zaWduZWQgbG9uZyAqKWdldF9yZWdfdzMyKHJlZywgcmVncyk7CisjZW5kaWYKKworCWRlZmF1bHQ6CisJCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBFcnJvciB3aWR0aCMgJWRcbiIsIHJlZyk7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwl1bnNpZ25lZCBjaGFyIG1vZDsKKwl1bnNpZ25lZCBjaGFyICpwOworCWludCBpLCBzaG9ydGVkLCBlbmxhcmdlZCwgcmV4cjsKKwl1bnNpZ25lZCBsb25nIHJ2OworCisJcCA9ICh1bnNpZ25lZCBjaGFyICopaW5zX2FkZHI7CisJcCArPSBza2lwX3ByZWZpeChwLCAmc2hvcnRlZCwgJmVubGFyZ2VkLCAmcmV4cik7CisJcCArPSBnZXRfb3Bjb2RlKHAsICZvcGNvZGUpOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGltbV93b3ApOyBpKyspCisJCWlmIChpbW1fd29wW2ldID09IG9wY29kZSkgeworCQkJcnYgPSBJTU1fV1JJVEU7CisJCQlnb3RvIGRvX3dvcms7CisJCX0KKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBOb3QgYW4gaW1tZWRpYXRlIGluc3RydWN0aW9uLCBvcGNvZGUgIgorCQkJCQkJCSIweCUwMnhcbiIsIG9wY29kZSk7CisJZ290byBlcnI7CisKK2RvX3dvcms6CisJbW9kX3JtID0gKnA7CisJbW9kID0gbW9kX3JtID4+IDY7CisJcCsrOworCXN3aXRjaCAobW9kKSB7CisJY2FzZSAwOgorCQkvKiBpZiByL20gaXMgNSB3ZSBoYXZlIGEgMzIgZGlzcCAoSUEzMiBNYW51YWwgMywgVGFibGUgMi0yKSAgKi8KKwkJLyogQU1ENjQ6IFhYWCBDaGVjayBmb3IgYWRkcmVzcyBzaXplIHByZWZpeD8gKi8KKwkJaWYgKChtb2Rfcm0gJiAweDcpID09IDB4NSkKKwkJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDE6CisJCXAgKz0gMTsKKwkJYnJlYWs7CisKKwljYXNlIDI6CisJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDM6CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IG5vdCBhIG1lbW9yeSBhY2Nlc3MgaW5zdHJ1Y3Rpb24gIgorCQkJCQkJImF0IDB4JWx4LCBybV9tb2Q9MHglMDJ4XG4iLAorCQkJCQkJaW5zX2FkZHIsIG1vZF9ybSk7CisJfQorCisJc3dpdGNoIChnZXRfaW5zX3JlZ193aWR0aChpbnNfYWRkcikpIHsKKwljYXNlIDE6CisJCXJldHVybiAqKHVuc2lnbmVkIGNoYXIgKilwOworCisJY2FzZSAyOgorCQlyZXR1cm4gKih1bnNpZ25lZCBzaG9ydCAqKXA7CisKKwljYXNlIDQ6CisJCXJldHVybiAqKHVuc2lnbmVkIGludCAqKXA7CisKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIDg6CisJCXJldHVybiAqKHVuc2lnbmVkIGxvbmcgKilwOworI2VuZGlmCisKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3I6IHdpZHRoLlxuIik7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZl9pbi5oIGIvYXJjaC94ODYvbW0vcGZfaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDUzNDFhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vcGZfaW4uaApAQCAtMCwwICsxLDM5IEBACisvKgorICogIEZhdWx0IEluamVjdGlvbiBUZXN0IGhhcm5lc3MgKEZJKQorICogIENvcHlyaWdodCAoQykgSW50ZWwgQ3JvcC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqICBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywKKyAqICBVU0EuCisgKgorICovCisKKyNpZm5kZWYgX19QRl9IXworI2RlZmluZSBfX1BGX0hfCisKK2VudW0gcmVhc29uX3R5cGUgeworCU5PVF9NRSwJLyogcGFnZSBmYXVsdCBpcyBub3QgaW4gcmVnaW9ucyAqLworCU5PVEhJTkcsCS8qIGFjY2VzcyBvdGhlcnMgcG9pbnQgaW4gcmVnaW9ucyAqLworCVJFR19SRUFELAkvKiByZWFkIGZyb20gYWRkciB0byByZWcgKi8KKwlSRUdfV1JJVEUsCS8qIHdyaXRlIGZyb20gcmVnIHRvIGFkZHIgKi8KKwlJTU1fV1JJVEUsCS8qIHdyaXRlIGZyb20gaW1tIHRvIGFkZHIgKi8KKwlPVEhFUlMJLyogT3RoZXIgaW5zdHJ1Y3Rpb25zIGNhbiBub3QgaW50ZXJjZXB0ICovCit9OworCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19yZWdfdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpOworCisjZW5kaWYgLyogX19QRl9IXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGd0YWJsZS5jIGIvYXJjaC94ODYvbW0vcGd0YWJsZS5jCmluZGV4IDUwMTU5NzYuLjU1N2IyYWIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BndGFibGUuYworKysgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlLmMKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGIuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAKIHB0ZV90ICpwdGVfYWxsb2Nfb25lX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewpAQCAtNjUsMTIgKzY2LDYgQEAKIHN0YXRpYyB2b2lkIHBnZF9jdG9yKHZvaWQgKnApCiB7CiAJcGdkX3QgKnBnZCA9IHA7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCS8qIENsZWFyIHVzZXJtb2RlIHBhcnRzIG9mIFBHRCAqLwotCW1lbXNldChwZ2QsIDAsIEtFUk5FTF9QR0RfQk9VTkRBUlkqc2l6ZW9mKHBnZF90KSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCS8qIElmIHRoZSBwZ2QgcG9pbnRzIHRvIGEgc2hhcmVkIHBhZ2V0YWJsZSBsZXZlbCAoZWl0aGVyIHRoZQogCSAgIHB0ZXMgaW4gbm9uLVBBRSwgb3Igc2hhcmVkIFBNRCBpbiBQQUUpLCB0aGVuIGp1c3QgY29weSB0aGUKQEAgLTkwLDggKzg1LDYgQEAKIAkvKiBsaXN0IHJlcXVpcmVkIHRvIHN5bmMga2VybmVsIG1hcHBpbmcgdXBkYXRlcyAqLwogCWlmICghU0hBUkVEX0tFUk5FTF9QTUQpCiAJCXBnZF9saXN0X2FkZChwZ2QpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgcGdkX2R0b3Iodm9pZCAqcGdkKQpAQCAtMTE5LDMwICsxMTIsNiBAQAogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKIC8qCi0gKiBNb3AgdXAgYW55IHBtZCBwYWdlcyB3aGljaCBtYXkgc3RpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIHBnZC4KLSAqIE5vcm1hbGx5IHRoZXkgd2lsbCBiZSBmcmVlZCBieSBtdW5tYXAvZXhpdF9tbWFwLCBidXQgYW55IHBtZCB3ZQotICogcHJlYWxsb2NhdGUgd2hpY2ggbmV2ZXIgZ290IGEgY29ycmVzcG9uZGluZyB2bWEgd2lsbCBuZWVkIHRvIGJlCi0gKiBmcmVlZCBtYW51YWxseS4KLSAqLwotc3RhdGljIHZvaWQgcGdkX21vcF91cF9wbWRzKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkcCkKLXsKLQlpbnQgaTsKLQotCWZvcihpID0gMDsgaSA8IFVOU0hBUkVEX1BUUlNfUEVSX1BHRDsgaSsrKSB7Ci0JCXBnZF90IHBnZCA9IHBnZHBbaV07Ci0KLQkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7Ci0JCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKLQotCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKLQotCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOwotCQkJcG1kX2ZyZWUobW0sIHBtZCk7Ci0JCX0KLQl9Ci19Ci0KLS8qCiAgKiBJbiBQQUUgbW9kZSwgd2UgbmVlZCB0byBkbyBhIGNyMyByZWxvYWQgKD10bGIgZmx1c2gpIHdoZW4KICAqIHVwZGF0aW5nIHRoZSB0b3AtbGV2ZWwgcGFnZXRhYmxlIGVudHJpZXMgdG8gZ3VhcmFudGVlIHRoZQogICogcHJvY2Vzc29yIG5vdGljZXMgdGhlIHVwZGF0ZS4gIFNpbmNlIHRoaXMgaXMgZXhwZW5zaXZlLCBhbmQKQEAgLTE1MywzMSArMTIyLDcgQEAKICAqIG5vdCBzaGFyZWQgYmV0d2VlbiBwYWdldGFibGVzICghU0hBUkVEX0tFUk5FTF9QTURTKSwgd2UgYWxsb2NhdGUKICAqIGFuZCBpbml0aWFsaXplIHRoZSBrZXJuZWwgcG1kcyBoZXJlLgogICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCi17Ci0JcHVkX3QgKnB1ZDsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0JaW50IGk7Ci0KLQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7Ci0gCWZvciAoYWRkciA9IGkgPSAwOyBpIDwgVU5TSEFSRURfUFRSU19QRVJfUEdEOwotCSAgICAgaSsrLCBwdWQrKywgYWRkciArPSBQVURfU0laRSkgewotCQlwbWRfdCAqcG1kID0gcG1kX2FsbG9jX29uZShtbSwgYWRkcik7Ci0KLQkJaWYgKCFwbWQpIHsKLQkJCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKLQkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKLQkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKLQotCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKLQl9Ci0KLQlyZXR1cm4gMTsKLX0KKyNkZWZpbmUgUFJFQUxMT0NBVEVEX1BNRFMJVU5TSEFSRURfUFRSU19QRVJfUEdECiAKIHZvaWQgcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqcHVkcCwgcG1kX3QgKnBtZCkKIHsKQEAgLTE5NywzOSArMTQyLDEzMSBAQAogCQl3cml0ZV9jcjMocmVhZF9jcjMoKSk7CiB9CiAjZWxzZSAgLyogIUNPTkZJR19YODZfUEFFICovCisKIC8qIE5vIG5lZWQgdG8gcHJlcG9wdWxhdGUgYW55IHBhZ2V0YWJsZSBlbnRyaWVzIGluIG5vbi1QQUUgbW9kZXMuICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCisjZGVmaW5lIFBSRUFMTE9DQVRFRF9QTURTCTAKKworI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCisKK3N0YXRpYyB2b2lkIGZyZWVfcG1kcyhwbWRfdCAqcG1kc1tdKQogewotCXJldHVybiAxOworCWludCBpOworCisJZm9yKGkgPSAwOyBpIDwgUFJFQUxMT0NBVEVEX1BNRFM7IGkrKykKKwkJaWYgKHBtZHNbaV0pCisJCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcG1kc1tpXSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKK3N0YXRpYyBpbnQgcHJlYWxsb2NhdGVfcG1kcyhwbWRfdCAqcG1kc1tdKQogeworCWludCBpOworCWJvb2wgZmFpbGVkID0gZmFsc2U7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBtZF90ICpwbWQgPSAocG1kX3QgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTHxfX0dGUF9SRVBFQVQpOworCQlpZiAocG1kID09IE5VTEwpCisJCQlmYWlsZWQgPSB0cnVlOworCQlwbWRzW2ldID0gcG1kOworCX0KKworCWlmIChmYWlsZWQpIHsKKwkJZnJlZV9wbWRzKHBtZHMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlyZXR1cm4gMDsKIH0KLSNlbmRpZgkvKiBDT05GSUdfWDg2X1BBRSAqLworCisvKgorICogTW9wIHVwIGFueSBwbWQgcGFnZXMgd2hpY2ggbWF5IHN0aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBwZ2QuCisgKiBOb3JtYWxseSB0aGV5IHdpbGwgYmUgZnJlZWQgYnkgbXVubWFwL2V4aXRfbW1hcCwgYnV0IGFueSBwbWQgd2UKKyAqIHByZWFsbG9jYXRlIHdoaWNoIG5ldmVyIGdvdCBhIGNvcnJlc3BvbmRpbmcgdm1hIHdpbGwgbmVlZCB0byBiZQorICogZnJlZWQgbWFudWFsbHkuCisgKi8KK3N0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZHApCit7CisJaW50IGk7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBnZF90IHBnZCA9IHBnZHBbaV07CisKKwkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7CisJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKKworCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKKworCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOworCQkJcG1kX2ZyZWUobW0sIHBtZCk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QsIHBtZF90ICpwbWRzW10pCit7CisJcHVkX3QgKnB1ZDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50IGk7CisKKwlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7CisKKyAJZm9yIChhZGRyID0gaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsKKwkgICAgIGkrKywgcHVkKyssIGFkZHIgKz0gUFVEX1NJWkUpIHsKKwkJcG1kX3QgKnBtZCA9IHBtZHNbaV07CisKKwkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKKwkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKKwkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKKworCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKKwl9Cit9CiAKIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcGdkX3QgKnBnZCA9IChwZ2RfdCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJcGdkX3QgKnBnZDsKKwlwbWRfdCAqcG1kc1tQUkVBTExPQ0FURURfUE1EU107CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCS8qIHNvIHRoYXQgYWxsb2NfcG1kIGNhbiB1c2UgaXQgKi8KKwlwZ2QgPSAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCisJaWYgKHBnZCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKwogCW1tLT5wZ2QgPSBwZ2Q7Ci0JaWYgKHBnZCkKLQkJcGdkX2N0b3IocGdkKTsKIAotCWlmIChwZ2QgJiYgIXBnZF9wcmVwb3B1bGF0ZV9wbWQobW0sIHBnZCkpIHsKLQkJcGdkX2R0b3IocGdkKTsKLQkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXBnZCk7Ci0JCXBnZCA9IE5VTEw7Ci0JfQorCWlmIChwcmVhbGxvY2F0ZV9wbWRzKHBtZHMpICE9IDApCisJCWdvdG8gb3V0X2ZyZWVfcGdkOworCisJaWYgKHBhcmF2aXJ0X3BnZF9hbGxvYyhtbSkgIT0gMCkKKwkJZ290byBvdXRfZnJlZV9wbWRzOworCisJLyoKKwkgKiBNYWtlIHN1cmUgdGhhdCBwcmUtcG9wdWxhdGluZyB0aGUgcG1kcyBpcyBhdG9taWMgd2l0aAorCSAqIHJlc3BlY3QgdG8gYW55dGhpbmcgd2Fsa2luZyB0aGUgcGdkX2xpc3QsIHNvIHRoYXQgdGhleQorCSAqIG5ldmVyIHNlZSBhIHBhcnRpYWxseSBwb3B1bGF0ZWQgcGdkLgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCisJcGdkX2N0b3IocGdkKTsKKwlwZ2RfcHJlcG9wdWxhdGVfcG1kKG1tLCBwZ2QsIHBtZHMpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCXJldHVybiBwZ2Q7CisKK291dF9mcmVlX3BtZHM6CisJZnJlZV9wbWRzKHBtZHMpOworb3V0X2ZyZWVfcGdkOgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOworb3V0OgorCXJldHVybiBOVUxMOwogfQogCiB2b2lkIHBnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQogewogCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKIAlwZ2RfZHRvcihwZ2QpOworCXBhcmF2aXJ0X3BnZF9mcmVlKG1tLCBwZ2QpOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOwogfQogCkBAIC0yNTUsNyArMjkyLDcgQEAKIAogCWlmIChwdGVfeW91bmcoKnB0ZXApKQogCQlyZXQgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoX1BBR0VfQklUX0FDQ0VTU0VELAotCQkJCQkgJnB0ZXAtPnB0ZSk7CisJCQkJCSAodW5zaWduZWQgbG9uZyAqKSAmcHRlcC0+cHRlKTsKIAogCWlmIChyZXQpCiAJCXB0ZV91cGRhdGUodm1hLT52bV9tbSwgYWRkciwgcHRlcCk7CkBAIC0yNzQsMyArMzExLDIyIEBACiAKIAlyZXR1cm4geW91bmc7CiB9CisKK2ludCBmaXhtYXBzX3NldDsKKwordm9pZCBfX25hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgcHRlX3QgcHRlKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKKworCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7CisJCUJVRygpOworCQlyZXR1cm47CisJfQorCXNldF9wdGVfdmFkZHIoYWRkcmVzcywgcHRlKTsKKwlmaXhtYXBzX3NldCsrOworfQorCit2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwlfX25hdGl2ZV9zZXRfZml4bWFwKGlkeCwgcGZuX3B0ZShwaHlzID4+IFBBR0VfU0hJRlQsIGZsYWdzKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMKaW5kZXggMzY5Y2YwNi4uYjRiZWNiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGd0YWJsZV8zMi5jCisrKyBiL2FyY2gveDg2L21tL3BndGFibGVfMzIuYwpAQCAtNzEsNyArNzEsNyBAQAogICogQXNzb2NpYXRlIGEgdmlydHVhbCBwYWdlIGZyYW1lIHdpdGggYSBnaXZlbiBwaHlzaWNhbCBwYWdlIGZyYW1lIAogICogYW5kIHByb3RlY3Rpb24gZmxhZ3MgZm9yIHRoYXQgZnJhbWUuCiAgKi8gCi1zdGF0aWMgdm9pZCBzZXRfcHRlX3Bmbih1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgZmxhZ3MpCit2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgcHRldmFsKQogewogCXBnZF90ICpwZ2Q7CiAJcHVkX3QgKnB1ZDsKQEAgLTk0LDggKzk0LDggQEAKIAkJcmV0dXJuOwogCX0KIAlwdGUgPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIHZhZGRyKTsKLQlpZiAocGdwcm90X3ZhbChmbGFncykpCi0JCXNldF9wdGVfcHJlc2VudCgmaW5pdF9tbSwgdmFkZHIsIHB0ZSwgcGZuX3B0ZShwZm4sIGZsYWdzKSk7CisJaWYgKHB0ZV92YWwocHRldmFsKSkKKwkJc2V0X3B0ZV9wcmVzZW50KCZpbml0X21tLCB2YWRkciwgcHRlLCBwdGV2YWwpOwogCWVsc2UKIAkJcHRlX2NsZWFyKCZpbml0X21tLCB2YWRkciwgcHRlKTsKIApAQCAtMTQxLDIyICsxNDEsOSBAQAogCV9fZmx1c2hfdGxiX29uZSh2YWRkcik7CiB9CiAKLXN0YXRpYyBpbnQgZml4bWFwczsKIHVuc2lnbmVkIGxvbmcgX19GSVhBRERSX1RPUCA9IDB4ZmZmZmYwMDA7CiBFWFBPUlRfU1lNQk9MKF9fRklYQUREUl9UT1ApOwogCi12b2lkIF9fc2V0X2ZpeG1hcCAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKLQotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7Ci0JCUJVRygpOwotCQlyZXR1cm47Ci0JfQotCXNldF9wdGVfcGZuKGFkZHJlc3MsIHBoeXMgPj4gUEFHRV9TSElGVCwgZmxhZ3MpOwotCWZpeG1hcHMrKzsKLX0KLQogLyoqCiAgKiByZXNlcnZlX3RvcF9hZGRyZXNzIC0gcmVzZXJ2ZXMgYSBob2xlIGluIHRoZSB0b3Agb2Yga2VybmVsIGFkZHJlc3Mgc3BhY2UKICAqIEByZXNlcnZlIC0gc2l6ZSBvZiBob2xlIHRvIHJlc2VydmUKQEAgLTE2NCwxMSArMTUxLDQ0IEBACiAgKiBDYW4gYmUgdXNlZCB0byByZWxvY2F0ZSB0aGUgZml4bWFwIGFyZWEgYW5kIHBva2UgYSBob2xlIGluIHRoZSB0b3AKICAqIG9mIGtlcm5lbCBhZGRyZXNzIHNwYWNlIHRvIG1ha2Ugcm9vbSBmb3IgYSBoeXBlcnZpc29yLgogICovCi12b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKQordm9pZCBfX2luaXQgcmVzZXJ2ZV90b3BfYWRkcmVzcyh1bnNpZ25lZCBsb25nIHJlc2VydmUpCiB7Ci0JQlVHX09OKGZpeG1hcHMgPiAwKTsKKwlCVUdfT04oZml4bWFwc19zZXQgPiAwKTsKIAlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGFib3ZlIDB4JTA4eFxuIiwKIAkgICAgICAgKGludCktcmVzZXJ2ZSk7CiAJX19GSVhBRERSX1RPUCA9IC1yZXNlcnZlIC0gUEFHRV9TSVpFOwogCV9fVk1BTExPQ19SRVNFUlZFICs9IHJlc2VydmU7CiB9CisKKy8qCisgKiB2bWFsbG9jPXNpemUgZm9yY2VzIHRoZSB2bWFsbG9jIGFyZWEgdG8gYmUgZXhhY3RseSAnc2l6ZScKKyAqIGJ5dGVzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIChvciBkZWNyZWFzZSkgdGhlCisgKiB2bWFsbG9jIGFyZWEgLSB0aGUgZGVmYXVsdCBpcyAxMjhtLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV92bWFsbG9jKGNoYXIgKmFyZykKK3sKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX1ZNQUxMT0NfUkVTRVJWRSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgidm1hbGxvYyIsIHBhcnNlX3ZtYWxsb2MpOworCisvKgorICogcmVzZXJ2ZXRvcD1zaXplIHJlc2VydmVzIGEgaG9sZSBhdCB0aGUgdG9wIG9mIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSB3aGljaAorICogYSBoeXBlcnZpc29yIGNhbiBsb2FkIGludG8gbGF0ZXIuICBOZWVkZWQgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCBoeXBlcnZpc29ycywKKyAqIHNvIHJlbG9jYXRpbmcgdGhlIGZpeG1hcCBjYW4gYmUgZG9uZSBiZWZvcmUgcGFnaW5nIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9yZXNlcnZldG9wKGNoYXIgKmFyZykKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CisKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlhZGRyZXNzID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKKwlyZXNlcnZlX3RvcF9hZGRyZXNzKGFkZHJlc3MpOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oInJlc2VydmV0b3AiLCBwYXJzZV9yZXNlcnZldG9wKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3NyYXRfMzIuYyBiL2FyY2gveDg2L21tL3NyYXRfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDFkNjdmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vc3JhdF8zMi5jCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogU29tZSBvZiB0aGUgY29kZSBpbiB0aGlzIGZpbGUgaGFzIGJlZW4gZ2xlYW5lZCBmcm9tIHRoZSA2NCBiaXQgCisgKiBkaXNjb250aWdtZW0gc3VwcG9ydCBjb2RlIGJhc2UuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJQk0gQ29ycC4KKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgR09PRCBUSVRMRSBvcgorICogTk9OIElORlJJTkdFTUVOVC4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKKyAqIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiBTZW5kIGZlZWRiYWNrIHRvIFBhdCBHYXVnaGVuIDxnb25lQHVzLmlibS5jb20+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KKyNpbmNsdWRlIDxhc20vc3JhdC5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorCisvKgorICogcHJveGltaXR5IG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBOT0RFX0FSUkFZX0lOREVYKHgpCSgoeCkgLyA4KQkvKiA4IGJpdHMvY2hhciAqLworI2RlZmluZSBOT0RFX0FSUkFZX09GRlNFVCh4KQkoKHgpICUgOCkJLyogOCBiaXRzL2NoYXIgKi8KKyNkZWZpbmUgQk1BUF9TRVQoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gfD0gMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKQorI2RlZmluZSBCTUFQX1RFU1QoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gJiAoMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKSkKKy8qIGJpdG1hcCBsZW5ndGg7IF9QWE0gaXMgYXQgbW9zdCAyNTUgKi8KKyNkZWZpbmUgUFhNX0JJVE1BUF9MRU4gKE1BWF9QWE1fRE9NQUlOUyAvIDgpIAorc3RhdGljIHU4IF9faW5pdGRhdGEgcHhtX2JpdG1hcFtQWE1fQklUTUFQX0xFTl07CS8qIGJpdG1hcCBvZiBwcm94aW1pdHkgZG9tYWlucyAqLworCisjZGVmaW5lIE1BWF9DSFVOS1NfUEVSX05PREUJMworI2RlZmluZSBNQVhDSFVOS1MJCShNQVhfQ0hVTktTX1BFUl9OT0RFICogTUFYX05VTU5PREVTKQorc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgeworCXVuc2lnbmVkIGxvbmcJc3RhcnRfcGZuOworCXVuc2lnbmVkIGxvbmcJZW5kX3BmbjsKKwl1OAlweG07CQkvLyBwcm94aW1pdHkgZG9tYWluIG9mIG5vZGUKKwl1OAluaWQ7CQkvLyB3aGljaCBjbm9kZSBjb250YWlucyB0aGlzIGNodW5rPworCXU4CWJhbms7CQkvLyB3aGljaCBtZW0gYmFuayBvbiB0aGlzIG5vZGUKK307CitzdGF0aWMgc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgX19pbml0ZGF0YSBub2RlX21lbW9yeV9jaHVua1tNQVhDSFVOS1NdOworCitzdGF0aWMgaW50IF9faW5pdGRhdGEgbnVtX21lbW9yeV9jaHVua3M7IC8qIHRvdGFsIG51bWJlciBvZiBtZW1vcnkgY2h1bmtzICovCitzdGF0aWMgdTggX19pbml0ZGF0YSBhcGljaWRfdG9fcHhtW01BWF9BUElDSURdOworCitpbnQgbnVtYV9vZmYgX19pbml0ZGF0YTsKK2ludCBhY3BpX251bWEgX19pbml0ZGF0YTsKKworc3RhdGljIF9faW5pdCB2b2lkIGJhZF9zcmF0KHZvaWQpCit7CisgICAgICAgIHByaW50ayhLRVJOX0VSUiAiU1JBVDogU1JBVCBub3QgdXNlZC5cbiIpOworICAgICAgICBhY3BpX251bWEgPSAtMTsKKwludW1fbWVtb3J5X2NodW5rcyA9IDA7Cit9CisKK3N0YXRpYyBfX2luaXQgaW5saW5lIGludCBzcmF0X2Rpc2FibGVkKHZvaWQpCit7CisJcmV0dXJuIG51bWFfb2ZmIHx8IGFjcGlfbnVtYSA8IDA7Cit9CisKKy8qIElkZW50aWZ5IENQVSBwcm94aW1pdHkgZG9tYWlucyAqLwordm9pZCBfX2luaXQKK2FjcGlfbnVtYV9wcm9jZXNzb3JfYWZmaW5pdHlfaW5pdChzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqY3B1X2FmZmluaXR5KQoreworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCXJldHVybjsKKwlpZiAoY3B1X2FmZmluaXR5LT5oZWFkZXIubGVuZ3RoICE9CisJICAgICBzaXplb2Yoc3RydWN0IGFjcGlfc3JhdF9jcHVfYWZmaW5pdHkpKSB7CisJCWJhZF9zcmF0KCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKGNwdV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfQ1BVX0VOQUJMRUQpID09IDApCisJCXJldHVybjsJCS8qIGVtcHR5IGVudHJ5ICovCisKKwkvKiBtYXJrIHRoaXMgbm9kZSBhcyAic2VlbiIgaW4gbm9kZSBiaXRtYXAgKi8KKwlCTUFQX1NFVChweG1fYml0bWFwLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworCisJYXBpY2lkX3RvX3B4bVtjcHVfYWZmaW5pdHktPmFwaWNfaWRdID0gY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvOworCisJcHJpbnRrKEtFUk5fREVCVUcgIkNQVSAlMDJ4IGluIHByb3hpbWl0eSBkb21haW4gJTAyeFxuIiwKKwkJY3B1X2FmZmluaXR5LT5hcGljX2lkLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworfQorCisvKgorICogSWRlbnRpZnkgbWVtb3J5IHByb3hpbWl0eSBkb21haW5zIGFuZCBob3QtcmVtb3ZlIGNhcGFiaWxpdGllcy4KKyAqIEZpbGwgbm9kZSBtZW1vcnkgY2h1bmsgbGlzdCBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQgX19pbml0CithY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1lbW9yeV9hZmZpbml0eSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgcGFkZHIsIHNpemU7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47CisJdTggcHhtOworCXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zICpwLCAqcSwgKnBlbmQ7CisKKwlpZiAoc3JhdF9kaXNhYmxlZCgpKQorCQlyZXR1cm47CisJaWYgKG1lbW9yeV9hZmZpbml0eS0+aGVhZGVyLmxlbmd0aCAhPQorCSAgICAgc2l6ZW9mKHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5KSkgeworCQliYWRfc3JhdCgpOworCQlyZXR1cm47CisJfQorCisJaWYgKChtZW1vcnlfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX01FTV9FTkFCTEVEKSA9PSAwKQorCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLworCisJcHhtID0gbWVtb3J5X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluICYgMHhmZjsKKworCS8qIG1hcmsgdGhpcyBub2RlIGFzICJzZWVuIiBpbiBub2RlIGJpdG1hcCAqLworCUJNQVBfU0VUKHB4bV9iaXRtYXAsIHB4bSk7CisKKwkvKiBjYWxjdWxhdGUgaW5mbyBmb3IgbWVtb3J5IGNodW5rIHN0cnVjdHVyZSAqLworCXBhZGRyID0gbWVtb3J5X2FmZmluaXR5LT5iYXNlX2FkZHJlc3M7CisJc2l6ZSA9IG1lbW9yeV9hZmZpbml0eS0+bGVuZ3RoOworCisJc3RhcnRfcGZuID0gcGFkZHIgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKHBhZGRyICsgc2l6ZSkgPj4gUEFHRV9TSElGVDsKKworCisJaWYgKG51bV9tZW1vcnlfY2h1bmtzID49IE1BWENIVU5LUykgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJUb28gbWFueSBtZW0gY2h1bmtzIGluIFNSQVQuIgorCQkJIiBJZ25vcmluZyAlbGxkIE1CeXRlcyBhdCAlbGx4XG4iLAorCQkJc2l6ZS8oMTAyNCoxMDI0KSwgcGFkZHIpOworCQlyZXR1cm47CisJfQorCisJLyogSW5zZXJ0aW9uIHNvcnQgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCisJcGVuZCA9ICZub2RlX21lbW9yeV9jaHVua1tudW1fbWVtb3J5X2NodW5rc107CisJZm9yIChwID0gJm5vZGVfbWVtb3J5X2NodW5rWzBdOyBwIDwgcGVuZDsgcCsrKSB7CisJCWlmIChzdGFydF9wZm4gPCBwLT5zdGFydF9wZm4pCisJCQlicmVhazsKKwl9CisJaWYgKHAgPCBwZW5kKSB7CisJCWZvciAocSA9IHBlbmQ7IHEgPj0gcDsgcS0tKQorCQkJKihxICsgMSkgPSAqcTsKKwl9CisJcC0+c3RhcnRfcGZuID0gc3RhcnRfcGZuOworCXAtPmVuZF9wZm4gPSBlbmRfcGZuOworCXAtPnB4bSA9IHB4bTsKKworCW51bV9tZW1vcnlfY2h1bmtzKys7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiTWVtb3J5IHJhbmdlICUwOGx4IHRvICUwOGx4ICh0eXBlICV4KSIKKwkJCSAgIiBpbiBwcm94aW1pdHkgZG9tYWluICUwMnggJXNcbiIsCisJCXN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJbWVtb3J5X2FmZmluaXR5LT5tZW1vcnlfdHlwZSwKKwkJcHhtLAorCQkoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpID8KKwkJICJlbmFibGVkIGFuZCByZW1vdmFibGUiIDogImVuYWJsZWQiICkgKTsKK30KKworLyogQ2FsbGJhY2sgZm9yIFNMSVQgcGFyc2luZyAqLwordm9pZCBfX2luaXQgYWNwaV9udW1hX3NsaXRfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQoreworfQorCit2b2lkIGFjcGlfbnVtYV9hcmNoX2ZpeHVwKHZvaWQpCit7Cit9CisvKgorICogVGhlIFNSQVQgdGFibGUgYWx3YXlzIGxpc3RzIGFzY2VuZGluZyBhZGRyZXNzZXMsIHNvIGNhbiBhbHdheXMKKyAqIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCAic3RhcnQiIGFkZHJlc3MgdGhhdCB5b3Ugc2VlIGlzIHRoZSByZWFsCisgKiBzdGFydCBvZiB0aGUgbm9kZSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgImVuZCIgYWRkcmVzcyBpcyBhZnRlcgorICogdGhlIHByZXZpb3VzIG9uZS4KKyAqLworc3RhdGljIF9faW5pdCB2b2lkIG5vZGVfcmVhZF9jaHVuayhpbnQgbmlkLCBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqbWVtb3J5X2NodW5rKQoreworCS8qCisJICogT25seSBhZGQgcHJlc2VudCBtZW1vcnkgYXMgdG9sZCBieSB0aGUgZTgyMC4KKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgZnJvbSB0aGUgU1JBVCB0aGF0IHRoZSBtZW1vcnkgaXQKKwkgKiBlbnVtZXJhdGVzIGlzIHByZXNlbnQgYXQgYm9vdCB0aW1lIGJlY2F1c2UgaXQgcmVwcmVzZW50cworCSAqICpwb3NzaWJsZSogbWVtb3J5IGhvdHBsdWcgYXJlYXMgdGhlIHNhbWUgYXMgbm9ybWFsIFJBTS4KKwkgKi8KKwlpZiAobWVtb3J5X2NodW5rLT5zdGFydF9wZm4gPj0gbWF4X3BmbikgeworCQlwcmludGsoS0VSTl9JTkZPICJJZ25vcmluZyBTUkFUIHBmbnM6ICUwOGx4IC0gJTA4bHhcbiIsCisJCQltZW1vcnlfY2h1bmstPnN0YXJ0X3BmbiwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKTsKKwkJcmV0dXJuOworCX0KKwlpZiAobWVtb3J5X2NodW5rLT5uaWQgIT0gbmlkKQorCQlyZXR1cm47CisKKwlpZiAoIW5vZGVfaGFzX29ubGluZV9tZW0obmlkKSkKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfc3RhcnRfcGZuW25pZF0gPiBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbikKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfZW5kX3BmbltuaWRdIDwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKQorCQlub2RlX2VuZF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+ZW5kX3BmbjsKK30KKworaW50IF9faW5pdCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCWludCBpLCBqLCBuaWQ7CisKKworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCWdvdG8gb3V0X2ZhaWw7CisKKwlpZiAobnVtX21lbW9yeV9jaHVua3MgPT0gMCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkgImNvdWxkIG5vdCBmaW55IGFueSBBQ1BJIFNSQVQgbWVtb3J5IGFyZWFzLlxuIik7CisJCWdvdG8gb3V0X2ZhaWw7CisJfQorCisJLyogQ2FsY3VsYXRlIHRvdGFsIG51bWJlciBvZiBub2RlcyBpbiBzeXN0ZW0gZnJvbSBQWE0gYml0bWFwIGFuZCBjcmVhdGUKKwkgKiBhIHNldCBvZiBzZXF1ZW50aWFsIG5vZGUgSURzIHN0YXJ0aW5nIGF0IHplcm8uICAoQUNQSSBkb2Vzbid0IHNlZW0KKwkgKiB0byBzcGVjaWZ5IHRoZSByYW5nZSBvZiBfUFhNIHZhbHVlcy4pCisJICovCisJLyoKKwkgKiBNQ0QgLSB3ZSBubyBsb25nZXIgSEFWRSB0byBudW1iZXIgbm9kZXMgc2VxdWVudGlhbGx5LiAgUFhNIGRvbWFpbgorCSAqIG51bWJlcnMgY291bGQgZ28gYXMgaGlnaCBhcyAyNTYsIGFuZCBNQVhfTlVNTk9ERVMgZm9yIGkzODYgaXMgdHlwaWNhbGx5CisJICogMzIsIHNvIHdlIHdpbGwgY29udGludWUgbnVtYmVyaW5nIHRoZW0gaW4gdGhpcyBtYW5uZXIgdW50aWwgTUFYX05VTU5PREVTCisJICogYXBwcm9hY2hlcyBNQVhfUFhNX0RPTUFJTlMgZm9yIGkzODYuCisJICovCisJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1BYTV9ET01BSU5TOyBpKyspIHsKKwkJaWYgKEJNQVBfVEVTVChweG1fYml0bWFwLCBpKSkgeworCQkJaW50IG5pZCA9IGFjcGlfbWFwX3B4bV90b19ub2RlKGkpOworCQkJbm9kZV9zZXRfb25saW5lKG5pZCk7CisJCX0KKwl9CisJQlVHX09OKG51bV9vbmxpbmVfbm9kZXMoKSA9PSAwKTsKKworCS8qIHNldCBjbm9kZSBpZCBpbiBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCisJZm9yIChpID0gMDsgaSA8IG51bV9tZW1vcnlfY2h1bmtzOyBpKyspCisJCW5vZGVfbWVtb3J5X2NodW5rW2ldLm5pZCA9IHB4bV90b19ub2RlKG5vZGVfbWVtb3J5X2NodW5rW2ldLnB4bSk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAicHhtIGJpdG1hcDogIik7CisJZm9yIChpID0gMDsgaSA8IHNpemVvZihweG1fYml0bWFwKTsgaSsrKSB7CisJCXByaW50ayhLRVJOX0NPTlQgIiUwMnggIiwgcHhtX2JpdG1hcFtpXSk7CisJfQorCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBsb2dpY2FsIG5vZGVzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9vbmxpbmVfbm9kZXMoKSk7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBtZW1vcnkgY2h1bmtzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9tZW1vcnlfY2h1bmtzKTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQVBJQ0lEOyBpKyspCisJCWFwaWNpZF8yX25vZGVbaV0gPSBweG1fdG9fbm9kZShhcGljaWRfdG9fcHhtW2ldKTsKKworCWZvciAoaiA9IDA7IGogPCBudW1fbWVtb3J5X2NodW5rczsgaisrKXsKKwkJc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgKiBjaHVuayA9ICZub2RlX21lbW9yeV9jaHVua1tqXTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCSJjaHVuayAlZCBuaWQgJWQgc3RhcnRfcGZuICUwOGx4IGVuZF9wZm4gJTA4bHhcbiIsCisJCSAgICAgICBqLCBjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7CisJCW5vZGVfcmVhZF9jaHVuayhjaHVuay0+bmlkLCBjaHVuayk7CisJCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoY2h1bmstPm5pZCwgY2h1bmstPnN0YXJ0X3BmbiwKKwkJCQkJICAgICBtaW4oY2h1bmstPmVuZF9wZm4sIG1heF9wZm4pKTsKKwl9CisKKwlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFydCA9IG5vZGVfc3RhcnRfcGZuW25pZF07CisJCXVuc2lnbmVkIGxvbmcgZW5kID0gbWluKG5vZGVfZW5kX3BmbltuaWRdLCBtYXhfcGZuKTsKKworCQltZW1vcnlfcHJlc2VudChuaWQsIHN0YXJ0LCBlbmQpOworCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobmlkLCBzdGFydCwgZW5kKTsKKwl9CisJcmV0dXJuIDE7CitvdXRfZmFpbDoKKwlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBnZXQgTlVNQSBtZW1vcnkgaW5mb3JtYXRpb24gZnJvbSBTUkFUIgorCQkJIiB0YWJsZVxuIik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMgYi9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMKaW5kZXggMzg5MDIzNC4uMWI0NzYzZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vc3JhdF82NC5jCisrKyBiL2FyY2gveDg2L21tL3NyYXRfNjQuYwpAQCAtOTcsMzcgKzk3LDIyIEBACiAJcmV0dXJuIG51bWFfb2ZmIHx8IGFjcGlfbnVtYSA8IDA7CiB9CiAKLS8qCi0gKiBBIGxvdCBvZiBCSU9TIGZpbGwgaW4gMTAgKD0gbm8gZGlzdGFuY2UpIGV2ZXJ5d2hlcmUuIFRoaXMgbWVzc2VzCi0gKiB1cCB0aGUgTlVNQSBoZXVyaXN0aWNzIHdoaWNoIHdhbnRzIHRoZSBsb2NhbCBub2RlIHRvIGhhdmUgYSBzbWFsbGVyCi0gKiBkaXN0YW5jZSB0aGFuIHRoZSBvdGhlcnMuCi0gKiBEbyBzb21lIHF1aWNrIGNoZWNrcyBoZXJlIGFuZCBvbmx5IHVzZSB0aGUgU0xJVCBpZiBpdCBwYXNzZXMuCi0gKi8KLXN0YXRpYyBfX2luaXQgaW50IHNsaXRfdmFsaWQoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdCkKLXsKLQlpbnQgaSwgajsKLQlpbnQgZCA9IHNsaXQtPmxvY2FsaXR5X2NvdW50OwotCWZvciAoaSA9IDA7IGkgPCBkOyBpKyspIHsKLQkJZm9yIChqID0gMDsgaiA8IGQ7IGorKykgIHsKLQkJCXU4IHZhbCA9IHNsaXQtPmVudHJ5W2QqaSArIGpdOwotCQkJaWYgKGkgPT0gaikgewotCQkJCWlmICh2YWwgIT0gTE9DQUxfRElTVEFOQ0UpCi0JCQkJCXJldHVybiAwOwotCQkJfSBlbHNlIGlmICh2YWwgPD0gTE9DQUxfRElTVEFOQ0UpCi0JCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JcmV0dXJuIDE7Ci19Ci0KIC8qIENhbGxiYWNrIGZvciBTTElUIHBhcnNpbmcgKi8KIHZvaWQgX19pbml0IGFjcGlfbnVtYV9zbGl0X2luaXQoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdCkKIHsKLQlpZiAoIXNsaXRfdmFsaWQoc2xpdCkpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiQUNQSTogU0xJVCB0YWJsZSBsb29rcyBpbnZhbGlkLiBOb3QgdXNlZC5cbiIpOwotCQlyZXR1cm47Ci0JfQotCWFjcGlfc2xpdCA9IHNsaXQ7CisJdW5zaWduZWQgbGVuZ3RoOworCXVuc2lnbmVkIGxvbmcgcGh5czsKKworCWxlbmd0aCA9IHNsaXQtPmhlYWRlci5sZW5ndGg7CisJcGh5cyA9IGZpbmRfZTgyMF9hcmVhKDAsIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZULCBsZW5ndGgsCisJCSBQQUdFX1NJWkUpOworCisJaWYgKHBoeXMgPT0gLTFMKQorCQlwYW5pYygiIENhbiBub3Qgc2F2ZSBzbGl0IVxuIik7CisKKwlhY3BpX3NsaXQgPSBfX3ZhKHBoeXMpOworCW1lbWNweShhY3BpX3NsaXQsIHNsaXQsIGxlbmd0aCk7CisJcmVzZXJ2ZV9lYXJseShwaHlzLCBwaHlzICsgbGVuZ3RoLCAiQUNQSSBTTElUIik7CiB9CiAKIC8qIENhbGxiYWNrIGZvciBQcm94aW1pdHkgRG9tYWluIC0+IExBUElDIG1hcHBpbmcgKi8KQEAgLTMyNiw3ICszMTEsNyBAQAogCQkJcHhtcmFtID0gMDsKIAl9CiAKLQllODIwcmFtID0gZW5kX3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBlbmRfcGZuKTsKKwllODIwcmFtID0gbWF4X3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBtYXhfcGZuKTsKIAkvKiBXZSBzZWVtIHRvIGxvc2UgMyBwYWdlcyBzb21ld2hlcmUuIEFsbG93IGEgYml0IG9mIHNsYWNrLiAqLwogCWlmICgobG9uZykoZTgyMHJhbSAtIHB4bXJhbSkgPj0gMSoxMDI0KjEwMjQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCkBAIC00MDMsNyArMzg4LDcgQEAKIAkJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQkJY29udGludWU7CiAJCWlmICghbm9kZV9pc3NldChub2RlLCBub2RlX3Bvc3NpYmxlX21hcCkpCi0JCQludW1hX3NldF9ub2RlKGksIE5VTUFfTk9fTk9ERSk7CisJCQludW1hX2NsZWFyX25vZGUoaSk7CiAJfQogCW51bWFfaW5pdF9hcnJheSgpOwogCXJldHVybiAwOwpAQCAtNTIyLDYgKzUwNyw3IEBACiAKIEVYUE9SVF9TWU1CT0woX19ub2RlX2Rpc3RhbmNlKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX01FTU9SWV9IT1RQTFVHX1NQQVJTRSkgfHwgZGVmaW5lZChDT05GSUdfQUNQSV9IT1RQTFVHX01FTU9SWSkKIGludCBtZW1vcnlfYWRkX3BoeXNhZGRyX3RvX25pZCh1NjQgc3RhcnQpCiB7CiAJaW50IGksIHJldCA9IDA7CkBAIC01MzMsNCArNTE5LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQpOwotCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYyBiL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc3YzViCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vdGVzdG1taW90cmFjZS5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBXcml0dGVuIGJ5IFBla2thIFBhYWxhbmVuLCAyMDA4IDxwcUBpa2kuZmk+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FICJ0ZXN0bW1pb3RyYWNlIgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWlvX2FkZHJlc3M7Cittb2R1bGVfcGFyYW0obW1pb19hZGRyZXNzLCB1bG9uZywgMCk7CitNT0RVTEVfUEFSTV9ERVNDKG1taW9fYWRkcmVzcywgIlN0YXJ0IGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmcgb2YgMTYga0IuIik7CisKK3N0YXRpYyB2b2lkIGRvX3dyaXRlX3Rlc3Qodm9pZCBfX2lvbWVtICpwKQoreworCXVuc2lnbmVkIGludCBpOworCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJaW93cml0ZTgoaSwgcCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvd3JpdGUxNihpICogMTIgKyA3LCBwICsgaSk7CisJZm9yIChpID0gKDUgKiAxMDI0KTsgaSA8ICgxNiAqIDEwMjQpOyBpICs9IDQpCisJCWlvd3JpdGUzMihpICogMjEyMzcxICsgMTMsIHAgKyBpKTsKK30KKworc3RhdGljIHZvaWQgZG9fcmVhZF90ZXN0KHZvaWQgX19pb21lbSAqcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisJCWlvcmVhZDgocCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvcmVhZDE2KHAgKyBpKTsKKwlmb3IgKGkgPSAoNSAqIDEwMjQpOyBpIDwgKDE2ICogMTAyNCk7IGkgKz0gNCkKKwkJaW9yZWFkMzIocCArIGkpOworfQorCitzdGF0aWMgdm9pZCBkb190ZXN0KHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICpwID0gaW9yZW1hcF9ub2NhY2hlKG1taW9fYWRkcmVzcywgMHg0MDAwKTsKKwlpZiAoIXApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IGNvdWxkIG5vdCBpb3JlbWFwLCBhYm9ydGluZy5cbiIpOworCQlyZXR1cm47CisJfQorCWRvX3dyaXRlX3Rlc3QocCk7CisJZG9fcmVhZF90ZXN0KHApOworCWlvdW5tYXAocCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXQodm9pZCkKK3sKKwlpZiAobW1pb19hZGRyZXNzID09IDApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IHlvdSBoYXZlIHRvIHVzZSB0aGUgbW9kdWxlIGFyZ3VtZW50ICIKKwkJCQkJCQkibW1pb19hZGRyZXNzLlxuIik7CisJCXByX2VycihNT0RVTEVfTkFNRSAiOiBETyBOT1QgTE9BRCBUSElTIE1PRFVMRSBVTkxFU1MiCisJCQkJIiBZT1UgUkVBTExZIEtOT1cgV0hBVCBZT1UgQVJFIERPSU5HIVxuIik7CisJCXJldHVybiAtRU5YSU87CisJfQorCisJcHJfd2FybmluZyhNT0RVTEVfTkFNRSAiOiBXQVJOSU5HOiBtYXBwaW5nIDE2IGtCIEAgMHglMDhseCAiCisJCQkJCSJpbiBQQ0kgYWRkcmVzcyBzcGFjZSwgYW5kIHdyaXRpbmcgIgorCQkJCQkicnViYmlzaCBpbiB0aGVyZS5cbiIsIG1taW9fYWRkcmVzcyk7CisJZG9fdGVzdCgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgY2xlYW51cCh2b2lkKQoreworCXByX2RlYnVnKE1PRFVMRV9OQU1FICI6IHVubG9hZGVkLlxuIik7Cit9CisKK21vZHVsZV9pbml0KGluaXQpOworbW9kdWxlX2V4aXQoY2xlYW51cCk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMgYi9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMKaW5kZXggY2M0OGQzZi4uMmI2YWQ1YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jCisrKyBiL2FyY2gveDg2L29wcm9maWxlL25taV9pbnQuYwpAQCAtMjY5LDEyICsyNjksMTMgQEAKIAogc3RhdGljIHZvaWQgbm1pX3NodXRkb3duKHZvaWQpCiB7Ci0Jc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmX19nZXRfY3B1X3ZhcihjcHVfbXNycyk7CisJc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmZ2V0X2NwdV92YXIoY3B1X21zcnMpOwogCW5taV9lbmFibGVkID0gMDsKIAlvbl9lYWNoX2NwdShubWlfY3B1X3NodXRkb3duLCBOVUxMLCAwLCAxKTsKIAl1bnJlZ2lzdGVyX2RpZV9ub3RpZmllcigmcHJvZmlsZV9leGNlcHRpb25zX25iKTsKIAltb2RlbC0+c2h1dGRvd24obXNycyk7CiAJZnJlZV9tc3JzKCk7CisJcHV0X2NwdV92YXIoY3B1X21zcnMpOwogfQogCiBzdGF0aWMgdm9pZCBubWlfY3B1X3N0YXJ0KHZvaWQgKmR1bW15KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL01ha2VmaWxlIGIvYXJjaC94ODYvcGNpL01ha2VmaWxlCmluZGV4IGM1YzhlNDguLmU1MTVlOGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGUKQEAgLTEsNSArMSwxNyBAQAotaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV8zMgotZWxzZQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NAotZW5kaWYKK29iai15CQkJCTo9IGkzODYubyBpbml0Lm8KKworb2JqLSQoQ09ORklHX1BDSV9CSU9TKQkJKz0gcGNiaW9zLm8KK29iai0kKENPTkZJR19QQ0lfTU1DT05GSUcpCSs9IG1tY29uZmlnXyQoQklUUykubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubworb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCitvYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KKworcGNpLXkJCQkJOj0gZml4dXAubworcGNpLSQoQ09ORklHX0FDUEkpCQkrPSBhY3BpLm8KK3BjaS15CQkJCSs9IGxlZ2FjeS5vIGlycS5vCisKK3BjaS0kKENPTkZJR19YODZfVklTV1MpCQkrPSB2aXN3cy5vCisKK3BjaS0kKENPTkZJR19YODZfTlVNQVEpCQkrPSBudW1hLm8KKworb2JqLXkJCQkJKz0gJChwY2kteSkgY29tbW9uLm8gZWFybHkubworb2JqLXkJCQkJKz0gYW1kX2J1cy5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZWMzNWQuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvcGNpL01ha2VmaWxlXzMyCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotb2JqLXkJCQkJOj0gaTM4Ni5vIGluaXQubwotCi1vYmotJChDT05GSUdfUENJX0JJT1MpCQkrPSBwY2Jpb3Mubwotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykJKz0gbW1jb25maWdfMzIubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCi1vYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KLQotcGNpLXkJCQkJOj0gZml4dXAubwotCi0jIERvIG5vdCBjaGFuZ2UgdGhlIG9yZGVyaW5nIGhlcmUuIFRoZXJlIGlzIGEgbmFzdHkgaW5pdCBmdW5jdGlvbgotIyBvcmRlcmluZyBkZXBlbmRlbmN5IHdoaWNoIGJyZWFrcyB3aGVuIHlvdSBtb3ZlIGFjcGkubyBiZWxvdwotIyBsZWdhY3kvaXJxLm8KLXBjaS0kKENPTkZJR19BQ1BJKQkJKz0gYWNwaS5vCi1wY2kteQkJCQkrPSBsZWdhY3kubyBpcnEubwotCi0jIENhcmVmdWw6IFZJU1dTIGFuZCBOVU1BUSBvdmVycnVsZSB0aGUgcGNpLXkgYWJvdmUuIFRoZSBjb2xvbnMgYXJlCi0jIHRoZXJlZm9yIGNvcnJlY3QuIFRoaXMgbmVlZHMgYSBwcm9wZXIgZml4IGJ5IGRpc3RhbmdsaW5nIHRoZSBjb2RlLgotcGNpLSQoQ09ORklHX1g4Nl9WSVNXUykJCTo9IHZpc3dzLm8gZml4dXAubwotcGNpLSQoQ09ORklHX1g4Nl9OVU1BUSkJCTo9IG51bWEubyBpcnEubwotCi0jIE5lY2Vzc2FyeSBmb3IgTlVNQVEgYXMgd2VsbAotcGNpLSQoQ09ORklHX05VTUEpCQkrPSBtcF9idXNfdG9fbm9kZS5vCi0KLW9iai15CQkJCSs9ICQocGNpLXkpIGNvbW1vbi5vIGVhcmx5Lm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NCBiL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZiZDE5OC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfNjQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciBYODZfNjQgc3BlY2lmaWMgUENJIHJvdXRpbmVzCi0jCi0jIFJldXNlIHRoZSBpMzg2IFBDSSBzdWJzeXN0ZW0KLSMKLUVYVFJBX0NGTEFHUyArPSAtSWFyY2gveDg2L3BjaQotCi1vYmoteQkJOj0gaTM4Ni5vCi1vYmotJChDT05GSUdfUENJX0RJUkVDVCkrPSBkaXJlY3Qubwotb2JqLXkJCSs9IGZpeHVwLm8gaW5pdC5vCi1vYmotJChDT05GSUdfQUNQSSkJKz0gYWNwaS5vCi1vYmoteQkJCSs9IGxlZ2FjeS5vIGlycS5vIGNvbW1vbi5vIGVhcmx5Lm8KLSMgbW1jb25maWcgaGFzIGEgNjRiaXQgc3BlY2lhbAotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykgKz0gbW1jb25maWdfNjQubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotCi1vYmoteQkJKz0gazgtYnVzXzY0Lm8KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2FjcGkuYyBiL2FyY2gveDg2L3BjaS9hY3BpLmMKaW5kZXggZDk1ZGUyZi4uMTlhZjA2OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2FjcGkuYworKysgYi9hcmNoL3g4Ni9wY2kvYWNwaS5jCkBAIC0xNzEsOCArMTcxLDExIEBACiAJaWYgKG5vZGUgIT0gLTEpCiAJCXNldF9tcF9idXNfdG9fbm9kZShidXNudW0sIG5vZGUpOwogCWVsc2UKLQkJbm9kZSA9IGdldF9tcF9idXNfdG9fbm9kZShidXNudW0pOwogI2VuZGlmCisJCW5vZGUgPSBnZXRfbXBfYnVzX3RvX25vZGUoYnVzbnVtKTsKKworCWlmIChub2RlICE9IC0xICYmICFub2RlX29ubGluZShub2RlKSkKKwkJbm9kZSA9IC0xOwogCiAJLyogQWxsb2NhdGUgcGVyLXJvb3QtYnVzIChub3QgcGVyIGJ1cykgYXJjaC1zcGVjaWZpYyBkYXRhLgogCSAqIFRPRE86IGxlYWs7IHRoaXMgbWVtb3J5IGlzIG5ldmVyIGZyZWVkLgpAQCAtMjA0LDIyICsyMDcsMjMgQEAKIAlpZiAoIWJ1cykKIAkJa2ZyZWUoc2QpOwogCisJaWYgKGJ1cyAmJiBub2RlICE9IC0xKSB7CiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQotCWlmIChidXMpIHsKLQkJaWYgKHB4bSA+PSAwKSB7CisJCWlmIChweG0gPj0gMCkKIAkJCXByaW50ayhLRVJOX0RFQlVHICJidXMgJTAyeCAtPiBweG0gJWQgLT4gbm9kZSAlZFxuIiwKLQkJCQlidXNudW0sIHB4bSwgcHhtX3RvX25vZGUocHhtKSk7Ci0JCX0KLQl9CisJCQkJYnVzbnVtLCBweG0sIG5vZGUpOworI2Vsc2UKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1cyAlMDJ4IC0+IG5vZGUgJWRcbiIsCisJCQlidXNudW0sIG5vZGUpOwogI2VuZGlmCisJfQogCiAJaWYgKGJ1cyAmJiAocGNpX3Byb2JlICYgUENJX1VTRV9fQ1JTKSkKIAkJZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKGRldmljZSwgYnVzbnVtLCBkb21haW4sIGJ1cyk7CiAJcmV0dXJuIGJ1czsKIH0KIAotZXh0ZXJuIGludCBwY2lfcm91dGVpcnE7Ci1zdGF0aWMgaW50IF9faW5pdCBwY2lfYWNwaV9pbml0KHZvaWQpCitpbnQgX19pbml0IHBjaV9hY3BpX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gTlVMTDsKIApAQCAtMjUzLDQgKzI1NywzIEBACiAKIAlyZXR1cm4gMDsKIH0KLXN1YnN5c19pbml0Y2FsbChwY2lfYWNwaV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9hbWRfYnVzLmMgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODE0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCkBAIC0wLDAgKzEsNTg2IEBACisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+CisjaW5jbHVkZSAicGNpLmgiCisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2VuZGlmCisKKy8qCisgKiBUaGlzIGRpc2NvdmVycyB0aGUgcGNpYnVzIDwtPiBub2RlIG1hcHBpbmcgb24gQU1EIEs4LgorICogYWxzbyBnZXQgcGVlciByb290IGJ1cyByZXNvdXJjZSBmb3IgaW8sbW1pbworICovCisKKyNpZmRlZiBDT05GSUdfTlVNQQorCisjZGVmaW5lIEJVU19OUiAyNTYKKworI2lmZGVmIENPTkZJR19YODZfNjQKKworc3RhdGljIGludCBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwkJbXBfYnVzX3RvX25vZGVbYnVzbnVtXSA9IG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZSA9IC0xOworCisJaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQorCQlyZXR1cm4gbm9kZTsKKworCW5vZGUgPSBtcF9idXNfdG9fbm9kZVtidXNudW1dOworCisJLyoKKwkgKiBsZXQgbnVtYV9ub2RlX2lkIHRvIGRlY2lkZSBpdCBsYXRlciBpbiBkbWFfYWxsb2NfcGFnZXMKKwkgKiBpZiB0aGVyZSBpcyBubyByYW0gb24gdGhhdCBub2RlCisJICovCisJaWYgKG5vZGUgIT0gLTEgJiYgIW5vZGVfb25saW5lKG5vZGUpKQorCQlub2RlID0gLTE7CisKKwlyZXR1cm4gbm9kZTsKK30KKworI2Vsc2UgLyogQ09ORklHX1g4Nl8zMiAqLworCitzdGF0aWMgdW5zaWduZWQgY2hhciBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwltcF9idXNfdG9fbm9kZVtidXNudW1dID0gKHVuc2lnbmVkIGNoYXIpIG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZTsKKworCWlmIChidXNudW0gPCAwIHx8IGJ1c251bSA+IChCVVNfTlIgLSAxKSkKKwkJcmV0dXJuIDA7CisJbm9kZSA9IG1wX2J1c190b19ub2RlW2J1c251bV07CisJcmV0dXJuIG5vZGU7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCisKKyNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCisvKgorICogc3ViIGJ1cyAodHJhbnNwYXJlbnQpIHdpbGwgdXNlIGVudHJlcyBmcm9tIDMgdG8gc3RvcmUgZXh0cmEgZnJvbSByb290LAorICogc28gbmVlZCB0byBtYWtlIHN1cmUgaGF2ZSBlbm91Z2h0IHNsb3QgdGhlcmUsIGluY3JlYXNlIFBDSV9CVVNfTlVNX1JFU09VUkNFUz8KKyAqLworI2RlZmluZSBSRVNfTlVNIDE2CitzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyB7CisJY2hhciBuYW1lWzEyXTsKKwl1bnNpZ25lZCBpbnQgcmVzX251bTsKKwlzdHJ1Y3QgcmVzb3VyY2UgcmVzW1JFU19OVU1dOworCWludCBidXNfbWluOworCWludCBidXNfbWF4OworCWludCBub2RlOworCWludCBsaW5rOworfTsKKworLyogNCBhdCB0aGlzIHRpbWUsIGl0IG1heSBiZWNvbWUgdG8gMzIgKi8KKyNkZWZpbmUgUENJX1JPT1RfTlIgNAorc3RhdGljIGludCBwY2lfcm9vdF9udW07CitzdGF0aWMgc3RydWN0IHBjaV9yb290X2luZm8gcGNpX3Jvb3RfaW5mb1tQQ0lfUk9PVF9OUl07CisKK3ZvaWQgc2V0X3BjaV9idXNfcmVzb3VyY2VzX2FyY2hfZGVmYXVsdChzdHJ1Y3QgcGNpX2J1cyAqYikKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKworCS8qIGlmIG9ubHkgb25lIHJvb3QgYnVzLCBkb24ndCBuZWVkIHRvIGFueXRoaW5nICovCisJaWYgKHBjaV9yb290X251bSA8IDIpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBwY2lfcm9vdF9udW07IGkrKykgeworCQlpZiAocGNpX3Jvb3RfaW5mb1tpXS5idXNfbWluID09IGItPm51bWJlcikKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IHBjaV9yb290X251bSkKKwkJcmV0dXJuOworCisJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCWZvciAoaiA9IDA7IGogPCBpbmZvLT5yZXNfbnVtOyBqKyspIHsKKwkJc3RydWN0IHJlc291cmNlICpyZXM7CisJCXN0cnVjdCByZXNvdXJjZSAqcm9vdDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2pdOworCQliLT5yZXNvdXJjZVtqXSA9IHJlczsKKwkJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKQorCQkJcm9vdCA9ICZpb3BvcnRfcmVzb3VyY2U7CisJCWVsc2UKKwkJCXJvb3QgPSAmaW9tZW1fcmVzb3VyY2U7CisJCWluc2VydF9yZXNvdXJjZShyb290LCByZXMpOworCX0KK30KKworI2RlZmluZSBSQU5HRV9OVU0gMTYKKworc3RydWN0IHJlc19yYW5nZSB7CisJc2l6ZV90IHN0YXJ0OworCXNpemVfdCBlbmQ7Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgdXBkYXRlX3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBzaXplX3Qgc3RhcnQsCisJCQkJc2l6ZV90IGVuZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKworCWZvciAoaiA9IDA7IGogPCBSQU5HRV9OVU07IGorKykgeworCQlpZiAoIXJhbmdlW2pdLmVuZCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kKSB7CisJCQlyYW5nZVtqXS5zdGFydCA9IDA7CisJCQlyYW5nZVtqXS5lbmQgPSAwOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kICYmIHJhbmdlW2pdLnN0YXJ0IDwgZW5kICsgMSkgeworCQkJcmFuZ2Vbal0uc3RhcnQgPSBlbmQgKyAxOworCQkJY29udGludWU7CisJCX0KKworCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQgJiYgcmFuZ2Vbal0uZW5kID4gc3RhcnQgLSAxKSB7CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCkgeworCQkJLyogZmluZCB0aGUgbmV3IHNwYXJlICovCisJCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCQlpZiAocmFuZ2VbaV0uZW5kID09IDApCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGkgPCBSQU5HRV9OVU0pIHsKKwkJCQlyYW5nZVtpXS5lbmQgPSByYW5nZVtqXS5lbmQ7CisJCQkJcmFuZ2VbaV0uc3RhcnQgPSBlbmQgKyAxOworCQkJfSBlbHNlIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgInJ1biBvZiBzbG90IGluIHJhbmdlc1xuIik7CisJCQl9CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9yZXMoc3RydWN0IHBjaV9yb290X2luZm8gKmluZm8sIHNpemVfdCBzdGFydCwKKwkJCSAgICAgIHNpemVfdCBlbmQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGludCBtZXJnZSkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCWlmICghbWVyZ2UpCisJCWdvdG8gYWRkaXQ7CisKKwkvKiB0cnkgdG8gbWVyZ2UgaXQgd2l0aCBvbGQgb25lICovCisJZm9yIChpID0gMDsgaSA8IGluZm8tPnJlc19udW07IGkrKykgeworCQlzaXplX3QgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKwkJc2l6ZV90IGNvbW1vbl9zdGFydCwgY29tbW9uX2VuZDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2ldOworCQlpZiAocmVzLT5mbGFncyAhPSBmbGFncykKKwkJCWNvbnRpbnVlOworCisJCWNvbW1vbl9zdGFydCA9IG1heCgoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJY29tbW9uX2VuZCA9IG1pbigoc2l6ZV90KXJlcy0+ZW5kLCBlbmQpOworCQlpZiAoY29tbW9uX3N0YXJ0ID4gY29tbW9uX2VuZCArIDEpCisJCQljb250aW51ZTsKKworCQlmaW5hbF9zdGFydCA9IG1pbigoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJZmluYWxfZW5kID0gbWF4KChzaXplX3QpcmVzLT5lbmQsIGVuZCk7CisKKwkJcmVzLT5zdGFydCA9IGZpbmFsX3N0YXJ0OworCQlyZXMtPmVuZCA9IGZpbmFsX2VuZDsKKwkJcmV0dXJuOworCX0KKworYWRkaXQ6CisKKwkvKiBuZWVkIHRvIGFkZCB0aGF0ICovCisJaWYgKGluZm8tPnJlc19udW0gPj0gUkVTX05VTSkKKwkJcmV0dXJuOworCisJcmVzID0gJmluZm8tPnJlc1tpbmZvLT5yZXNfbnVtXTsKKwlyZXMtPm5hbWUgPSBpbmZvLT5uYW1lOworCXJlcy0+ZmxhZ3MgPSBmbGFnczsKKwlyZXMtPnN0YXJ0ID0gc3RhcnQ7CisJcmVzLT5lbmQgPSBlbmQ7CisJcmVzLT5jaGlsZCA9IE5VTEw7CisJaW5mby0+cmVzX251bSsrOworfQorCitzdHJ1Y3QgcGNpX2hvc3RicmlkZ2VfcHJvYmUgeworCXUzMiBidXM7CisJdTMyIHNsb3Q7CisJdTMyIHZlbmRvcjsKKwl1MzIgZGV2aWNlOworfTsKKworc3RhdGljIHN0cnVjdCBwY2lfaG9zdGJyaWRnZV9wcm9iZSBwY2lfcHJvYmVzW10gX19pbml0ZGF0YSA9IHsKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDExMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDB4ZmYsIDAsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEzMDAgfSwKK307CisKK3N0YXRpYyB1NjQgX19pbml0ZGF0YSBmYW0xMGhfbW1jb25mX3N0YXJ0Oworc3RhdGljIHU2NCBfX2luaXRkYXRhIGZhbTEwaF9tbWNvbmZfZW5kOworc3RhdGljIHZvaWQgX19pbml0IGdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSh2b2lkKQoreworCXUzMiBhZGRyZXNzOworCXU2NCBiYXNlLCBtc3I7CisJdW5zaWduZWQgc2Vnbl9idXNuX2JpdHM7CisKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBtbWNvbmYgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuOworCisJYWRkcmVzcyA9IE1TUl9GQU0xMEhfTU1JT19DT05GX0JBU0U7CisJcmRtc3JsKGFkZHJlc3MsIG1zcik7CisKKwkvKiBtbWNvbmZpZyBpcyBub3QgZW5hYmxlICovCisJaWYgKCEobXNyICYgRkFNMTBIX01NSU9fQ09ORl9FTkFCTEUpKQorCQlyZXR1cm47CisKKwliYXNlID0gbXNyICYgKEZBTTEwSF9NTUlPX0NPTkZfQkFTRV9NQVNLPDxGQU0xMEhfTU1JT19DT05GX0JBU0VfU0hJRlQpOworCisJc2Vnbl9idXNuX2JpdHMgPSAobXNyID4+IEZBTTEwSF9NTUlPX0NPTkZfQlVTUkFOR0VfU0hJRlQpICYKKwkJCSBGQU0xMEhfTU1JT19DT05GX0JVU1JBTkdFX01BU0s7CisKKwlmYW0xMGhfbW1jb25mX3N0YXJ0ID0gYmFzZTsKKwlmYW0xMGhfbW1jb25mX2VuZCA9IGJhc2UgKyAoMVVMTDw8KHNlZ25fYnVzbl9iaXRzICsgMjApKSAtIDE7Cit9CisKKy8qKgorICogZWFybHlfZmlsbF9tcF9idXNfdG9fbm9kZSgpCisgKiBjYWxsZWQgYmVmb3JlIHBjaWJpb3Nfc2Nhbl9yb290IGFuZCBwY2lfc2Nhbl9idXMKKyAqIGZpbGxzIHRoZSBtcF9idXNfdG9fY3B1bWFzayBhcnJheSBiYXNlZCBhY2NvcmRpbmcgdG8gdGhlIExEVCBCdXMgTnVtYmVyCisgKiBSZWdpc3RlcnMgZm91bmQgaW4gdGhlIEs4IG5vcnRoYnJpZGdlCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGVhcmx5X2ZpbGxfbXBfYnVzX2luZm8odm9pZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwl1bnNpZ25lZCBidXM7CisJdW5zaWduZWQgc2xvdDsKKwlpbnQgZm91bmQ7CisJaW50IG5vZGU7CisJaW50IGxpbms7CisJaW50IGRlZl9ub2RlOworCWludCBkZWZfbGluazsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKwl1MzIgcmVnOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCXNpemVfdCBzdGFydDsKKwlzaXplX3QgZW5kOworCXN0cnVjdCByZXNfcmFuZ2UgcmFuZ2VbUkFOR0VfTlVNXTsKKwl1NjQgdmFsOworCXUzMiBhZGRyZXNzOworCisjaWZkZWYgQ09ORklHX05VTUEKKwlmb3IgKGkgPSAwOyBpIDwgQlVTX05SOyBpKyspCisJCW1wX2J1c190b19ub2RlW2ldID0gLTE7CisjZW5kaWYKKworCWlmICghZWFybHlfcGNpX2FsbG93ZWQoKSkKKwkJcmV0dXJuIC0xOworCisJZm91bmQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBjaV9wcm9iZXMpOyBpKyspIHsKKwkJdTMyIGlkOworCQl1MTYgZGV2aWNlOworCQl1MTYgdmVuZG9yOworCisJCWJ1cyA9IHBjaV9wcm9iZXNbaV0uYnVzOworCQlzbG90ID0gcGNpX3Byb2Jlc1tpXS5zbG90OworCQlpZCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIFBDSV9WRU5ET1JfSUQpOworCisJCXZlbmRvciA9IGlkICYgMHhmZmZmOworCQlkZXZpY2UgPSAoaWQ+PjE2KSAmIDB4ZmZmZjsKKwkJaWYgKHBjaV9wcm9iZXNbaV0udmVuZG9yID09IHZlbmRvciAmJgorCQkgICAgcGNpX3Byb2Jlc1tpXS5kZXZpY2UgPT0gZGV2aWNlKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpCisJCXJldHVybiAwOworCisJcGNpX3Jvb3RfbnVtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWludCBtaW5fYnVzOworCQlpbnQgbWF4X2J1czsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhlMCArIChpIDw8IDIpKTsKKworCQkvKiBDaGVjayBpZiB0aGF0IHJlZ2lzdGVyIGlzIGVuYWJsZWQgZm9yIGJ1cyByYW5nZSAqLworCQlpZiAoKHJlZyAmIDcpICE9IDMpCisJCQljb250aW51ZTsKKworCQltaW5fYnVzID0gKHJlZyA+PiAxNikgJiAweGZmOworCQltYXhfYnVzID0gKHJlZyA+PiAyNCkgJiAweGZmOworCQlub2RlID0gKHJlZyA+PiA0KSAmIDB4MDc7CisjaWZkZWYgQ09ORklHX05VTUEKKwkJZm9yIChqID0gbWluX2J1czsgaiA8PSBtYXhfYnVzOyBqKyspCisJCQltcF9idXNfdG9fbm9kZVtqXSA9ICh1bnNpZ25lZCBjaGFyKSBub2RlOworI2VuZGlmCisJCWxpbmsgPSAocmVnID4+IDgpICYgMHgwMzsKKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bcGNpX3Jvb3RfbnVtXTsKKwkJaW5mby0+YnVzX21pbiA9IG1pbl9idXM7CisJCWluZm8tPmJ1c19tYXggPSBtYXhfYnVzOworCQlpbmZvLT5ub2RlID0gbm9kZTsKKwkJaW5mby0+bGluayA9IGxpbms7CisJCXNwcmludGYoaW5mby0+bmFtZSwgIlBDSSBCdXMgIyUwMngiLCBtaW5fYnVzKTsKKwkJcGNpX3Jvb3RfbnVtKys7CisJfQorCisJLyogZ2V0IHRoZSBkZWZhdWx0IG5vZGUgYW5kIGxpbmsgZm9yIGxlZnQgb3ZlciByZXMgKi8KKwlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCAweDYwKTsKKwlkZWZfbm9kZSA9IChyZWcgPj4gOCkgJiAweDA3OworCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIDB4NjQpOworCWRlZl9saW5rID0gKHJlZyA+PiA4KSAmIDB4MDM7CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCXJhbmdlWzBdLmVuZCA9IDB4ZmZmZjsKKwkvKiBpbyBwb3J0IHJlc291cmNlICovCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGMwICsgKGkgPDwgMykpOworCQlpZiAoIShyZWcgJiAzKSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXJ0ID0gcmVnICYgMHhmZmYwMDA7CisJCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4YzQgKyAoaSA8PCAzKSk7CisJCW5vZGUgPSByZWcgJiAweDA3OworCQlsaW5rID0gKHJlZyA+PiA0KSAmIDB4MDM7CisJCWVuZCA9IChyZWcgJiAweGZmZjAwMCkgfCAweGZmZjsKKworCQkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKKwkJCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKKwkJCWlmIChpbmZvLT5ub2RlID09IG5vZGUgJiYgaW5mby0+bGluayA9PSBsaW5rKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChqID09IHBjaV9yb290X251bSkKKwkJCWNvbnRpbnVlOyAvKiBub3QgZm91bmQgKi8KKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IGlvIHBvcnQgWyVsbHgsICVsbHhdXG4iLAorCQkgICAgICAgbm9kZSwgbGluaywgKHU2NClzdGFydCwgKHU2NCllbmQpOworCisJCS8qIGtlcm5lbCBvbmx5IGhhbmRsZSAxNiBiaXQgb25seSAqLworCQlpZiAoZW5kID4gMHhmZmZmKQorCQkJZW5kID0gMHhmZmZmOworCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmQsIElPUkVTT1VSQ0VfSU8sIDEpOworCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIHN0YXJ0LCBlbmQpOworCX0KKwkvKiBhZGQgbGVmdCBvdmVyIGlvIHBvcnQgcmFuZ2UgdG8gZGVmIG5vZGUvbGluaywgWzAsIDB4ZmZmZl0gKi8KKwkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCWlmICghcmFuZ2VbaV0uZW5kKQorCQkJCWNvbnRpbnVlOworCisJCQl1cGRhdGVfcmVzKGluZm8sIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQsCisJCQkJICAgSU9SRVNPVVJDRV9JTywgMSk7CisJCX0KKwl9CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCS8qIDB4ZmQwMDAwMDAwMC0weGZmZmZmZmZmZmYgZm9yIEhUICovCisJcmFuZ2VbMF0uZW5kID0gKDB4ZmRVTEw8PDMyKSAtIDE7CisKKwkvKiBuZWVkIHRvIHRha2Ugb3V0IFswLCBUT00pIGZvciBSQU0qLworCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTE7CisJcmRtc3JsKGFkZHJlc3MsIHZhbCk7CisJZW5kID0gKHZhbCAmIDB4ZmZmZmZmODAwMDAwVUxMKTsKKwlwcmludGsoS0VSTl9JTkZPICJUT006ICUwMTZseCBha2EgJWxkTVxuIiwgZW5kLCBlbmQ+PjIwKTsKKwlpZiAoZW5kIDwgKDFVTEw8PDMyKSkKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCAwLCBlbmQgLSAxKTsKKworCS8qIGdldCBtbWNvbmZpZyAqLworCWdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSgpOworCS8qIG5lZWQgdG8gdGFrZSBvdXQgbW1jb25mIHJhbmdlICovCisJaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJGYW0gMTBoIG1tY29uZiBbJWxseCwgJWxseF1cbiIsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCBmYW0xMGhfbW1jb25mX3N0YXJ0LCBmYW0xMGhfbW1jb25mX2VuZCk7CisJfQorCisJLyogbW1pbyByZXNvdXJjZSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4MCArIChpIDw8IDMpKTsKKwkJaWYgKCEocmVnICYgMykpCisJCQljb250aW51ZTsKKworCQlzdGFydCA9IHJlZyAmIDB4ZmZmZmZmMDA7IC8qIDM5OjE2IG9uIDMxOjgqLworCQlzdGFydCA8PD0gODsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4NCArIChpIDw8IDMpKTsKKwkJbm9kZSA9IHJlZyAmIDB4MDc7CisJCWxpbmsgPSAocmVnID4+IDQpICYgMHgwMzsKKwkJZW5kID0gKHJlZyAmIDB4ZmZmZmZmMDApOworCQllbmQgPDw9IDg7CisJCWVuZCB8PSAweGZmZmY7CisKKwkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KKwkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7CisJCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKKwkJCQlicmVhazsKKwkJfQorCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCisJCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IG1taW8gWyVsbHgsICVsbHhdIiwKKwkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKKwkJLyoKKwkJICogc29tZSBzaWNrIGFsbG9jYXRpb24gd291bGQgaGF2ZSByYW5nZSBvdmVybGFwIHdpdGggZmFtMTBoCisJCSAqIG1tY29uZiByYW5nZSwgc28gbmVlZCB0byB1cGRhdGUgc3RhcnQgYW5kIGVuZC4KKwkJICovCisJCWlmIChmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJaW50IGNoYW5nZWQgPSAwOworCQkJdTY0IGVuZHggPSAwOworCQkJaWYgKHN0YXJ0ID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBzdGFydCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOworCQkJCWNoYW5nZWQgPSAxOworCQkJfQorCisJCQlpZiAoZW5kID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBlbmQgPD0gZmFtMTBoX21tY29uZl9lbmQpIHsKKwkJCQllbmQgPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKworCQkJaWYgKHN0YXJ0IDwgZmFtMTBoX21tY29uZl9zdGFydCAmJgorCQkJICAgIGVuZCA+IGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCQkJLyogd2UgZ290IGEgaG9sZSAqLworCQkJCWVuZHggPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmR4LCBJT1JFU09VUkNFX01FTSwgMCk7CisJCQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5keCk7CisJCQkJcHJpbnRrKEtFUk5fQ09OVCAiID09PiBbJWxseCwgJWxseF0iLCAodTY0KXN0YXJ0LCBlbmR4KTsKKwkJCQlzdGFydCA9IGZhbTEwaF9tbWNvbmZfZW5kICsgMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKwkJCWlmIChjaGFuZ2VkKSB7CisJCQkJaWYgKHN0YXJ0IDw9IGVuZCkgeworCQkJCQlwcmludGsoS0VSTl9DT05UICIgJXMgWyVsbHgsICVsbHhdIiwgZW5keD8iYW5kIjoiPT0+IiwgKHU2NClzdGFydCwgKHU2NCllbmQpOworCQkJCX0gZWxzZSB7CisJCQkJCXByaW50ayhLRVJOX0NPTlQgIiVzXG4iLCBlbmR4PyIiOiIgPT0+IG5vbmUiKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCQl9CisKKwkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX01FTSwgMSk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgc3RhcnQsIGVuZCk7CisJCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJfQorCisJLyogbmVlZCB0byB0YWtlIG91dCBbNEcsIFRPTTIpIGZvciBSQU0qLworCS8qIFNZU19DRkcgKi8KKwlhZGRyZXNzID0gTVNSX0s4X1NZU0NGRzsKKwlyZG1zcmwoYWRkcmVzcywgdmFsKTsKKwkvKiBUT1BfTUVNMiBpcyBlbmFibGVkPyAqLworCWlmICh2YWwgJiAoMTw8MjEpKSB7CisJCS8qIFRPUF9NRU0yICovCisJCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTI7CisJCXJkbXNybChhZGRyZXNzLCB2YWwpOworCQllbmQgPSAodmFsICYgMHhmZmZmZmY4MDAwMDBVTEwpOworCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bHggYWthICVsZE1cbiIsIGVuZCwgZW5kPj4yMCk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgMVVMTDw8MzIsIGVuZCAtIDEpOworCX0KKworCS8qCisJICogYWRkIGxlZnQgb3ZlciBtbWlvIHJhbmdlIHRvIGRlZiBub2RlL2xpbmsgPworCSAqIHRoYXQgaXMgdHJpY2t5LCBqdXN0IHJlY29yZCByYW5nZSBpbiBmcm9tIHN0YXJ0X21pbiB0byA0RworCSAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgeworCQkJaWYgKCFyYW5nZVtpXS5lbmQpCisJCQkJY29udGludWU7CisKKwkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKKwkJCQkgICBJT1JFU09VUkNFX01FTSwgMSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKKwkJaW50IHJlc19udW07CisJCWludCBidXNudW07CisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCQlyZXNfbnVtID0gaW5mby0+cmVzX251bTsKKwkJYnVzbnVtID0gaW5mby0+YnVzX21pbjsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogWyUwMngsJTAyeF0gb24gbm9kZSAleCBsaW5rICV4XG4iLAorCQkgICAgICAgaW5mby0+YnVzX21pbiwgaW5mby0+YnVzX21heCwgaW5mby0+bm9kZSwgaW5mby0+bGluayk7CisJCWZvciAoaiA9IDA7IGogPCByZXNfbnVtOyBqKyspIHsKKwkJCXJlcyA9ICZpbmZvLT5yZXNbal07CisJCQlwcmludGsoS0VSTl9ERUJVRyAiYnVzOiAlMDJ4IGluZGV4ICV4ICVzOiBbJWxseCwgJWxseF1cbiIsCisJCQkgICAgICAgYnVzbnVtLCBqLAorCQkJICAgICAgIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTyk/ImlvIHBvcnQiOiJtbWlvIiwKKwkJCSAgICAgICByZXMtPnN0YXJ0LCByZXMtPmVuZCk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworcG9zdGNvcmVfaW5pdGNhbGwoZWFybHlfZmlsbF9tcF9idXNfaW5mbyk7CisKKyNlbmRpZgorCisvKiBjb21tb24gMzIvNjQgYml0IGNvZGUgKi8KKworI2RlZmluZSBFTkFCTEVfQ0Y4X0VYVF9DRkcgICAgICAoMVVMTCA8PCA0NikKKworc3RhdGljIHZvaWQgZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSh2b2lkICp1bnVzZWQpCit7CisJdTY0IHJlZzsKKwlyZG1zcmwoTVNSX0FNRDY0X05CX0NGRywgcmVnKTsKKwlpZiAoIShyZWcgJiBFTkFCTEVfQ0Y4X0VYVF9DRkcpKSB7CisJCXJlZyB8PSBFTkFCTEVfQ0Y4X0VYVF9DRkc7CisJCXdybXNybChNU1JfQU1ENjRfTkJfQ0ZHLCByZWcpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgZW5hYmxlX3BjaV9pb19lY3Modm9pZCkKK3sKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBJTyBFQ1MgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuIDA7CisJb25fZWFjaF9jcHUoZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSwgTlVMTCwgMSwgMSk7CisJcGNpX3Byb2JlIHw9IFBDSV9IQVNfSU9fRUNTOworCXJldHVybiAwOworfQorCitwb3N0Y29yZV9pbml0Y2FsbChlbmFibGVfcGNpX2lvX2Vjcyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvY29tbW9uLmMgYi9hcmNoL3g4Ni9wY2kvY29tbW9uLmMKaW5kZXggNmU2NGFhZi4uMjBiOWY1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L3BjaS9jb21tb24uYwpAQCAtMzg0LDcgKzM4NCw3IEBACiAKIGV4dGVybiB1OCBwY2lfY2FjaGVfbGluZV9zaXplOwogCi1zdGF0aWMgaW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCkKK2ludCBfX2luaXQgcGNpYmlvc19pbml0KHZvaWQpCiB7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmJvb3RfY3B1X2RhdGE7CiAKQEAgLTQxMSw4ICs0MTEsNiBAQAogCXJldHVybiAwOwogfQogCi1zdWJzeXNfaW5pdGNhbGwocGNpYmlvc19pbml0KTsKLQogY2hhciAqIF9fZGV2aW5pdCAgcGNpYmlvc19zZXR1cChjaGFyICpzdHIpCiB7CiAJaWYgKCFzdHJjbXAoc3RyLCAib2ZmIikpIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9kaXJlY3QuYyBiL2FyY2gveDg2L3BjaS9kaXJlY3QuYwppbmRleCAyMWQxZTBlLi45OTE1MjkzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvZGlyZWN0LmMKKysrIGIvYXJjaC94ODYvcGNpL2RpcmVjdC5jCkBAIC04LDE4ICs4LDIxIEBACiAjaW5jbHVkZSAicGNpLmgiCiAKIC8qCi0gKiBGdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSB3aXRoIHR5cGUgMSBhY2Nlc3NlcworICogRnVuY3Rpb25zIGZvciBhY2Nlc3NpbmcgUENJIGJhc2UgKGZpcnN0IDI1NiBieXRlcykgYW5kIGV4dGVuZGVkCisgKiAoNDA5NiBieXRlcyBwZXIgUENJIGZ1bmN0aW9uKSBjb25maWd1cmF0aW9uIHNwYWNlIHdpdGggdHlwZSAxCisgKiBhY2Nlc3Nlcy4KICAqLwogCiAjZGVmaW5lIFBDSV9DT05GMV9BRERSRVNTKGJ1cywgZGV2Zm4sIHJlZykgXAotCSgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2Zm4gPDwgOCkgfCAocmVnICYgfjMpKQorCSgweDgwMDAwMDAwIHwgKChyZWcgJiAweEYwMCkgPDwgMTYpIHwgKGJ1cyA8PCAxNikgXAorCXwgKGRldmZuIDw8IDgpIHwgKHJlZyAmIDB4RkMpKQogCiBzdGF0aWMgaW50IHBjaV9jb25mMV9yZWFkKHVuc2lnbmVkIGludCBzZWcsIHVuc2lnbmVkIGludCBidXMsCiAJCQkgIHVuc2lnbmVkIGludCBkZXZmbiwgaW50IHJlZywgaW50IGxlbiwgdTMyICp2YWx1ZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKChidXMgPiAyNTUpIHx8IChkZXZmbiA+IDI1NSkgfHwgKHJlZyA+IDI1NSkpIHsKKwlpZiAoKGJ1cyA+IDI1NSkgfHwgKGRldmZuID4gMjU1KSB8fCAocmVnID4gNDA5NSkpIHsKIAkJKnZhbHVlID0gLTE7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTUwLDcgKzUzLDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKChidXMgPiAyNTUpIHx8IChkZXZmbiA+IDI1NSkgfHwgKHJlZyA+IDI1NSkpIAorCWlmICgoYnVzID4gMjU1KSB8fCAoZGV2Zm4gPiAyNTUpIHx8IChyZWcgPiA0MDk1KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGNpX2NvbmZpZ19sb2NrLCBmbGFncyk7CkBAIC0yNjAsMTAgKzI2MywxOCBAQAogCQlyZXR1cm47CiAJcHJpbnRrKEtFUk5fSU5GTyAiUENJOiBVc2luZyBjb25maWd1cmF0aW9uIHR5cGUgJWQgZm9yIGJhc2UgYWNjZXNzXG4iLAogCQkgdHlwZSk7Ci0JaWYgKHR5cGUgPT0gMSkKKwlpZiAodHlwZSA9PSAxKSB7CiAJCXJhd19wY2lfb3BzID0gJnBjaV9kaXJlY3RfY29uZjE7Ci0JZWxzZQotCQlyYXdfcGNpX29wcyA9ICZwY2lfZGlyZWN0X2NvbmYyOworCQlpZiAocmF3X3BjaV9leHRfb3BzKQorCQkJcmV0dXJuOworCQlpZiAoIShwY2lfcHJvYmUgJiBQQ0lfSEFTX0lPX0VDUykpCisJCQlyZXR1cm47CisJCXByaW50ayhLRVJOX0lORk8gIlBDSTogVXNpbmcgY29uZmlndXJhdGlvbiB0eXBlIDEgIgorCQkgICAgICAgImZvciBleHRlbmRlZCBhY2Nlc3NcbiIpOworCQlyYXdfcGNpX2V4dF9vcHMgPSAmcGNpX2RpcmVjdF9jb25mMTsKKwkJcmV0dXJuOworCX0KKwlyYXdfcGNpX29wcyA9ICZwY2lfZGlyZWN0X2NvbmYyOwogfQogCiBpbnQgX19pbml0IHBjaV9kaXJlY3RfcHJvYmUodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9pMzg2LmMgYi9hcmNoL3g4Ni9wY2kvaTM4Ni5jCmluZGV4IDEwZmIzMDguLjJhYWZiNjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9pMzg2LmMKKysrIGIvYXJjaC94ODYvcGNpL2kzODYuYwpAQCAtMjk5LDkgKzI5OSw5IEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJcHJvdCA9IHBncHJvdF92YWwodm1hLT52bV9wYWdlX3Byb3QpOwotCWlmIChwYXRfd2NfZW5hYmxlZCAmJiB3cml0ZV9jb21iaW5lKQorCWlmIChwYXRfZW5hYmxlZCAmJiB3cml0ZV9jb21iaW5lKQogCQlwcm90IHw9IF9QQUdFX0NBQ0hFX1dDOwotCWVsc2UgaWYgKHBhdF93Y19lbmFibGVkIHx8IGJvb3RfY3B1X2RhdGEueDg2ID4gMykKKwllbHNlIGlmIChwYXRfZW5hYmxlZCB8fCBib290X2NwdV9kYXRhLng4NiA+IDMpCiAJCS8qCiAJCSAqIGlvcmVtYXAoKSBhbmQgaW9yZW1hcF9ub2NhY2hlKCkgZGVmYXVsdHMgdG8gVUMgTUlOVVMgZm9yIG5vdy4KIAkJICogVG8gYXZvaWQgYXR0cmlidXRlIGNvbmZsaWN0cywgcmVxdWVzdCBVQyBNSU5VUyBoZXJlCkBAIC0zMzQsNyArMzM0LDkgQEAKIAkJZmxhZ3MgPSBuZXdfZmxhZ3M7CiAJfQogCi0JaWYgKHZtYS0+dm1fcGdvZmYgPD0gbWF4X3Bmbl9tYXBwZWQgJiYKKwlpZiAoKCh2bWEtPnZtX3Bnb2ZmIDwgbWF4X2xvd19wZm5fbWFwcGVkKSB8fAorCSAgICAgKHZtYS0+dm1fcGdvZmYgPj0gKDFVTDw8KDMyIC0gUEFHRV9TSElGVCkpICYmCisJICAgICAgdm1hLT52bV9wZ29mZiA8IG1heF9wZm5fbWFwcGVkKSkgJiYKIAkgICAgaW9yZW1hcF9jaGFuZ2VfYXR0cigodW5zaWduZWQgbG9uZylfX3ZhKGFkZHIpLCBsZW4sIGZsYWdzKSkgewogCQlmcmVlX21lbXR5cGUoYWRkciwgYWRkciArIGxlbik7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2luaXQuYyBiL2FyY2gveDg2L3BjaS9pbml0LmMKaW5kZXggYjgyMWY0NC4uZDZjOTUwZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2luaXQuYworKysgYi9hcmNoL3g4Ni9wY2kvaW5pdC5jCkBAIC00LDcgKzQsNyBAQAogCiAvKiBhcmNoX2luaXRjYWxsIGhhcyB0b28gcmFuZG9tIG9yZGVyaW5nLCBzbyBjYWxsIHRoZSBpbml0aWFsaXplcnMKICAgIGluIHRoZSByaWdodCBzZXF1ZW5jZSBmcm9tIGhlcmUuICovCi1zdGF0aWMgX19pbml0IGludCBwY2lfYWNjZXNzX2luaXQodm9pZCkKK3N0YXRpYyBfX2luaXQgaW50IHBjaV9hcmNoX2luaXQodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfUENJX0RJUkVDVAogCWludCB0eXBlID0gMDsKQEAgLTQwLDQgKzQwLDQgQEAKIAogCXJldHVybiAwOwogfQotYXJjaF9pbml0Y2FsbChwY2lfYWNjZXNzX2luaXQpOworYXJjaF9pbml0Y2FsbChwY2lfYXJjaF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9pcnEuYyBiL2FyY2gveDg2L3BjaS9pcnEuYwppbmRleCBjYThkZjljLi5kYzU2OGM2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvaXJxLmMKKysrIGIvYXJjaC94ODYvcGNpL2lycS5jCkBAIC0xMSw4ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgpAQCAtNjEsNyArNjEsNyBAQAogICogIGFuZCBwZXJmb3JtIGNoZWNrc3VtIHZlcmlmaWNhdGlvbi4KICAqLwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfcm91dGluZ190YWJsZSAqIHBpcnFfY2hlY2tfcm91dGluZ190YWJsZSh1OCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICpwaXJxX2NoZWNrX3JvdXRpbmdfdGFibGUodTggKmFkZHIpCiB7CiAJc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICpydDsKIAlpbnQgaTsKQEAgLTc0LDcgKzc0LDcgQEAKIAkgICAgcnQtPnNpemUgPCBzaXplb2Yoc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlKSkKIAkJcmV0dXJuIE5VTEw7CiAJc3VtID0gMDsKLQlmb3IgKGk9MDsgaSA8IHJ0LT5zaXplOyBpKyspCisJZm9yIChpID0gMDsgaSA8IHJ0LT5zaXplOyBpKyspCiAJCXN1bSArPSBhZGRyW2ldOwogCWlmICghc3VtKSB7CiAJCURCRyhLRVJOX0RFQlVHICJQQ0k6IEludGVycnVwdCBSb3V0aW5nIFRhYmxlIGZvdW5kIGF0IDB4JXBcbiIsIHJ0KTsKQEAgLTEwMCw3ICsxMDAsNyBAQAogCQkJcmV0dXJuIHJ0OwogCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQ0k6IFBJUlEgdGFibGUgTk9UIGZvdW5kIGF0IHBpcnFhZGRyXG4iKTsKIAl9Ci0JZm9yKGFkZHIgPSAodTggKikgX192YSgweGYwMDAwKTsgYWRkciA8ICh1OCAqKSBfX3ZhKDB4MTAwMDAwKTsgYWRkciArPSAxNikgeworCWZvciAoYWRkciA9ICh1OCAqKSBfX3ZhKDB4ZjAwMDApOyBhZGRyIDwgKHU4ICopIF9fdmEoMHgxMDAwMDApOyBhZGRyICs9IDE2KSB7CiAJCXJ0ID0gcGlycV9jaGVja19yb3V0aW5nX3RhYmxlKGFkZHIpOwogCQlpZiAocnQpCiAJCQlyZXR1cm4gcnQ7CkBAIC0xMjIsMjAgKzEyMiwyMCBAQAogCXN0cnVjdCBpcnFfaW5mbyAqZTsKIAogCW1lbXNldChidXNtYXAsIDAsIHNpemVvZihidXNtYXApKTsKLQlmb3IoaT0wOyBpIDwgKHJ0LT5zaXplIC0gc2l6ZW9mKHN0cnVjdCBpcnFfcm91dGluZ190YWJsZSkpIC8gc2l6ZW9mKHN0cnVjdCBpcnFfaW5mbyk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCAocnQtPnNpemUgLSBzaXplb2Yoc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlKSkgLyBzaXplb2Yoc3RydWN0IGlycV9pbmZvKTsgaSsrKSB7CiAJCWUgPSAmcnQtPnNsb3RzW2ldOwogI2lmZGVmIERFQlVHCiAJCXsKIAkJCWludCBqOwogCQkJREJHKEtFUk5fREVCVUcgIiUwMng6JTAyeCBzbG90PSUwMngiLCBlLT5idXMsIGUtPmRldmZuLzgsIGUtPnNsb3QpOwotCQkJZm9yKGo9MDsgajw0OyBqKyspCisJCQlmb3IgKGogPSAwOyBqIDwgNDsgaisrKQogCQkJCURCRygiICVkOiUwMngvJTA0eCIsIGosIGUtPmlycVtqXS5saW5rLCBlLT5pcnFbal0uYml0bWFwKTsKIAkJCURCRygiXG4iKTsKIAkJfQogI2VuZGlmCiAJCWJ1c21hcFtlLT5idXNdID0gMTsKIAl9Ci0JZm9yKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKKwlmb3IgKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKIAkJaW50IG5vZGU7CiAJCWlmICghYnVzbWFwW2ldIHx8IHBjaV9maW5kX2J1cygwLCBpKSkKIAkJCWNvbnRpbnVlOwpAQCAtMjg1LDcgKzI4NSw3IEBACiAJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGlycW1hcFs0XSA9IHsgMSwgMCwgMiwgMyB9OwogCiAJV0FSTl9PTl9PTkNFKHBpcnEgPiA0KTsKLQlyZXR1cm4gcmVhZF9jb25maWdfbnliYmxlKHJvdXRlciwweDQzLCBwaXJxbWFwW3BpcnEtMV0pOworCXJldHVybiByZWFkX2NvbmZpZ19ueWJibGUocm91dGVyLCAweDQzLCBwaXJxbWFwW3BpcnEtMV0pOwogfQogCiBzdGF0aWMgaW50IHBpcnFfaXRlX3NldChzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcGlycSwgaW50IGlycSkKQEAgLTMxNCw3ICszMTQsNyBAQAogCiAvKgogICogQ3lyaXg6IG5pYmJsZSBvZmZzZXQgMHg1QwotICogMHg1QyBiaXRzIDc6NCBpcyBJTlRCIGJpdHMgMzowIGlzIElOVEEgCisgKiAweDVDIGJpdHMgNzo0IGlzIElOVEIgYml0cyAzOjAgaXMgSU5UQQogICogMHg1RCBiaXRzIDc6NCBpcyBJTlREIGJpdHMgMzowIGlzIElOVEMKICAqLwogc3RhdGljIGludCBwaXJxX2N5cml4X2dldChzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcGlycSkKQEAgLTM1MCw3ICszNTAsNyBAQAogICoJQXBwYXJlbnRseSB0aGVyZSBhcmUgc3lzdGVtcyBpbXBsZW1lbnRpbmcgUENJIHJvdXRpbmcgdGFibGUgdXNpbmcKICAqCWxpbmsgdmFsdWVzIDB4MDEtMHgwNCBhbmQgb3RoZXJzIHVzaW5nIDB4NDEtMHg0NCBmb3IgUENJIElOVEEuLkQuCiAgKglXZSB0cnkgb3VyIGJlc3QgdG8gaGFuZGxlIGJvdGggbGluayBtYXBwaW5ncy4KLSAqCQorICoKICAqCUN1cnJlbnRseSAoMjAwMy0wNS0yMSkgaXQgYXBwZWFycyBtb3N0IFNpUyBjaGlwc2V0cyBmb2xsb3cgdGhlCiAgKglkZWZpbml0aW9uIG9mIHJvdXRpbmcgcmVnaXN0ZXJzIGZyb20gdGhlIFNpUy01NTk1IHNvdXRoYnJpZGdlLgogICoJQWNjb3JkaW5nIHRvIHRoZSBTaVMgNTU5NSBkYXRhc2hlZXRzIHRoZSByZXZpc2lvbiBpZCdzIG9mIHRoZQpAQCAtMzcwLDcgKzM3MCw3IEBACiAgKgogICoJMHg2MjoJVVNCSVJROgogICoJCWJpdCA2IE9IQ0kgZnVuY3Rpb24gZGlzYWJsZWQgKDApLCBlbmFibGVkICgxKQotICoJCisgKgogICoJMHg2YToJQUNQSS9TQ0kgSVJROiBiaXRzIDQtNiByZXNlcnZlZAogICoKICAqCTB4N2U6CURhdGEgQWNxLiBNb2R1bGUgSVJRIC0gYml0cyA0LTYgcmVzZXJ2ZWQKQEAgLTQ4Nyw5ICs0ODcsNyBAQAogCXU4IGlycTsKIAlpcnEgPSAwOwogCWlmIChwaXJxIDw9IDQpCi0JewogCQlpcnEgPSByZWFkX2NvbmZpZ19ueWJibGUocm91dGVyLCAweDU2LCBwaXJxIC0gMSk7Ci0JfQogCXByaW50ayhLRVJOX0lORk8gIkFNRDc1NjogZGV2ICUwNHg6JTA0eCwgcm91dGVyIHBpcnEgOiAlZCBnZXQgaXJxIDogJTJkXG4iLAogCQlkZXYtPnZlbmRvciwgZGV2LT5kZXZpY2UsIHBpcnEsIGlycSk7CiAJcmV0dXJuIGlycTsKQEAgLTQ5NywxMiArNDk1LDEwIEBACiAKIHN0YXRpYyBpbnQgcGlycV9hbWQ3NTZfc2V0KHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaXJxLCBpbnQgaXJxKQogewotCXByaW50ayhLRVJOX0lORk8gIkFNRDc1NjogZGV2ICUwNHg6JTA0eCwgcm91dGVyIHBpcnEgOiAlZCBTRVQgaXJxIDogJTJkXG4iLCAKKwlwcmludGsoS0VSTl9JTkZPICJBTUQ3NTY6IGRldiAlMDR4OiUwNHgsIHJvdXRlciBwaXJxIDogJWQgU0VUIGlycSA6ICUyZFxuIiwKIAkJZGV2LT52ZW5kb3IsIGRldi0+ZGV2aWNlLCBwaXJxLCBpcnEpOwogCWlmIChwaXJxIDw9IDQpCi0JewogCQl3cml0ZV9jb25maWdfbnliYmxlKHJvdXRlciwgMHg1NiwgcGlycSAtIDEsIGlycSk7Ci0JfQogCXJldHVybiAxOwogfQogCkBAIC01NDksNTAgKzU0NSw0OSBAQAogCWlmIChwY2lfZGV2X3ByZXNlbnQocGlycV80NDBneCkpCiAJCXJldHVybiAwOwogCi0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUZCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MVNCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUFCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MU1YOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI0NDNNWF8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQl8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8xMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMTI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMURCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUVfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRUJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQl8xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18zMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9FU0IyXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzM6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzM6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzU6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9UT0xBUEFJXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDEwXzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8zOgotCQkJci0+bmFtZSA9ICJQSUlYL0lDSCI7Ci0JCQlyLT5nZXQgPSBwaXJxX3BpaXhfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9waWl4X3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxRkJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODIzNzFTQl8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUFCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxTVg6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyNDQzTVhfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUFCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQkFfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8xMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUNBXzEyOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMURCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUVCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQl8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDZfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQjJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOF8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOF8zOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzQ6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzI6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMzoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV80OgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzU6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1RPTEFQQUlfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMzoKKwkJci0+bmFtZSA9ICJQSUlYL0lDSCI7CisJCXItPmdldCA9IHBpcnFfcGlpeF9nZXQ7CisJCXItPnNldCA9IHBpcnFfcGlpeF9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTYwNiw3ICs2MDEsNyBAQAogCSAqIHdvcmthcm91bmRzIGZvciBzb21lIGJ1Z2d5IEJJT1NlcwogCSAqLwogCWlmIChkZXZpY2UgPT0gUENJX0RFVklDRV9JRF9WSUFfODJDNTg2XzApIHsKLQkJc3dpdGNoKHJvdXRlci0+ZGV2aWNlKSB7CisJCXN3aXRjaCAocm91dGVyLT5kZXZpY2UpIHsKIAkJY2FzZSBQQ0lfREVWSUNFX0lEX1ZJQV84MkM2ODY6CiAJCQkvKgogCQkJICogQXN1cyBrN20gYmlvcyB3cm9uZ2x5IHJlcG9ydHMgODJDNjg2QQpAQCAtNjMxLDcgKzYyNiw3IEBACiAJCX0KIAl9CiAKLQlzd2l0Y2goZGV2aWNlKSB7CisJc3dpdGNoIChkZXZpY2UpIHsKIAljYXNlIFBDSV9ERVZJQ0VfSURfVklBXzgyQzU4Nl8wOgogCQlyLT5uYW1lID0gIlZJQSI7CiAJCXItPmdldCA9IHBpcnFfdmlhNTg2X2dldDsKQEAgLTY1NCwxMyArNjQ5LDEyIEBACiAKIHN0YXRpYyBfX2luaXQgaW50IHZsc2lfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JewotCQljYXNlIFBDSV9ERVZJQ0VfSURfVkxTSV84MkM1MzQ6Ci0JCQlyLT5uYW1lID0gIlZMU0kgODJDNTM0IjsKLQkJCXItPmdldCA9IHBpcnFfdmxzaV9nZXQ7Ci0JCQlyLT5zZXQgPSBwaXJxX3Zsc2lfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfVkxTSV84MkM1MzQ6CisJCXItPm5hbWUgPSAiVkxTSSA4MkM1MzQiOworCQlyLT5nZXQgPSBwaXJxX3Zsc2lfZ2V0OworCQlyLT5zZXQgPSBwaXJxX3Zsc2lfc2V0OworCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC02NjgsMTQgKzY2MiwxMyBAQAogCiBzdGF0aWMgX19pbml0IGludCBzZXJ2ZXJ3b3Jrc19yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9TRVJWRVJXT1JLU19PU0I0OgotCQljYXNlIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfQ1NCNToKLQkJCXItPm5hbWUgPSAiU2VydmVyV29ya3MiOwotCQkJci0+Z2V0ID0gcGlycV9zZXJ2ZXJ3b3Jrc19nZXQ7Ci0JCQlyLT5zZXQgPSBwaXJxX3NlcnZlcndvcmtzX3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX09TQjQ6CisJY2FzZSBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX0NTQjU6CisJCXItPm5hbWUgPSAiU2VydmVyV29ya3MiOworCQlyLT5nZXQgPSBwaXJxX3NlcnZlcndvcmtzX2dldDsKKwkJci0+c2V0ID0gcGlycV9zZXJ2ZXJ3b3Jrc19zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTY4NCw3ICs2NzcsNyBAQAogewogCWlmIChkZXZpY2UgIT0gUENJX0RFVklDRV9JRF9TSV81MDMpCiAJCXJldHVybiAwOwotCQkKKwogCXItPm5hbWUgPSAiU0lTIjsKIAlyLT5nZXQgPSBwaXJxX3Npc19nZXQ7CiAJci0+c2V0ID0gcGlycV9zaXNfc2V0OwpAQCAtNjkzLDQ3ICs2ODYsNDMgQEAKIAogc3RhdGljIF9faW5pdCBpbnQgY3lyaXhfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JewotCQljYXNlIFBDSV9ERVZJQ0VfSURfQ1lSSVhfNTUyMDoKLQkJCXItPm5hbWUgPSAiTmF0U2VtaSI7Ci0JCQlyLT5nZXQgPSBwaXJxX2N5cml4X2dldDsKLQkJCXItPnNldCA9IHBpcnFfY3lyaXhfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfQ1lSSVhfNTUyMDoKKwkJci0+bmFtZSA9ICJOYXRTZW1pIjsKKwkJci0+Z2V0ID0gcGlycV9jeXJpeF9nZXQ7CisJCXItPnNldCA9IHBpcnFfY3lyaXhfc2V0OworCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBfX2luaXQgaW50IG9wdGlfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JewotCQljYXNlIFBDSV9ERVZJQ0VfSURfT1BUSV84MkM3MDA6Ci0JCQlyLT5uYW1lID0gIk9QVEkiOwotCQkJci0+Z2V0ID0gcGlycV9vcHRpX2dldDsKLQkJCXItPnNldCA9IHBpcnFfb3B0aV9zZXQ7Ci0JCQlyZXR1cm4gMTsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9PUFRJXzgyQzcwMDoKKwkJci0+bmFtZSA9ICJPUFRJIjsKKwkJci0+Z2V0ID0gcGlycV9vcHRpX2dldDsKKwkJci0+c2V0ID0gcGlycV9vcHRpX3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQogCiBzdGF0aWMgX19pbml0IGludCBpdGVfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JewotCQljYXNlIFBDSV9ERVZJQ0VfSURfSVRFX0lUODMzMEdfMDoKLQkJCXItPm5hbWUgPSAiSVRFIjsKLQkJCXItPmdldCA9IHBpcnFfaXRlX2dldDsKLQkJCXItPnNldCA9IHBpcnFfaXRlX3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lURV9JVDgzMzBHXzA6CisJCXItPm5hbWUgPSAiSVRFIjsKKwkJci0+Z2V0ID0gcGlycV9pdGVfZ2V0OworCQlyLT5zZXQgPSBwaXJxX2l0ZV9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIF9faW5pdCBpbnQgYWxpX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKLQlzd2l0Y2goZGV2aWNlKQotCXsKKwlzd2l0Y2ggKGRldmljZSkgewogCWNhc2UgUENJX0RFVklDRV9JRF9BTF9NMTUzMzoKIAljYXNlIFBDSV9ERVZJQ0VfSURfQUxfTTE1NjM6CiAJCXByaW50ayhLRVJOX0RFQlVHICJQQ0k6IFVzaW5nIEFMSSBJUlEgUm91dGVyXG4iKTsKQEAgLTc0NywyNSArNzM2LDI0IEBACiAKIHN0YXRpYyBfX2luaXQgaW50IGFtZF9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQwQjoKLQkJCXItPm5hbWUgPSAiQU1ENzU2IjsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0MTM6Ci0JCQlyLT5uYW1lID0gIkFNRDc2NiI7Ci0JCQlicmVhazsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDQzOgotCQkJci0+bmFtZSA9ICJBTUQ3NjgiOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gMDsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQwQjoKKwkJci0+bmFtZSA9ICJBTUQ3NTYiOworCQlicmVhazsKKwljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0MTM6CisJCXItPm5hbWUgPSAiQU1ENzY2IjsKKwkJYnJlYWs7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDQzOgorCQlyLT5uYW1lID0gIkFNRDc2OCI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAwOwogCX0KIAlyLT5nZXQgPSBwaXJxX2FtZDc1Nl9nZXQ7CiAJci0+c2V0ID0gcGlycV9hbWQ3NTZfc2V0OwogCXJldHVybiAxOwogfQotCQkKKwogc3RhdGljIF9faW5pdCBpbnQgcGljb19yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7CiAJc3dpdGNoIChkZXZpY2UpIHsKQEAgLTgwNyw3ICs3OTUsNyBAQAogICoJRklYTUU6IHNob3VsZCB3ZSBoYXZlIGFuIG9wdGlvbiB0byBzYXkgImdlbmVyaWMgZm9yCiAgKgljaGlwc2V0IiA/CiAgKi8KLSAKKwogc3RhdGljIHZvaWQgX19pbml0IHBpcnFfZmluZF9yb3V0ZXIoc3RydWN0IGlycV9yb3V0ZXIgKnIpCiB7CiAJc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICpydCA9IHBpcnFfdGFibGU7CkBAIC04MjYsNyArODE0LDcgQEAKIAlyLT5uYW1lID0gImRlZmF1bHQiOwogCXItPmdldCA9IE5VTEw7CiAJci0+c2V0ID0gTlVMTDsKLQkKKwogCURCRyhLRVJOX0RFQlVHICJQQ0k6IEF0dGVtcHRpbmcgdG8gZmluZCBJUlEgcm91dGVyIGZvciAlMDR4OiUwNHhcbiIsCiAJICAgIHJ0LT5ydHJfdmVuZG9yLCBydC0+cnRyX2RldmljZSk7CiAKQEAgLTgzNyw3ICs4MjUsNyBAQAogCQlyZXR1cm47CiAJfQogCi0JZm9yKCBoID0gcGlycV9yb3V0ZXJzOyBoLT52ZW5kb3I7IGgrKykgeworCWZvciAoaCA9IHBpcnFfcm91dGVyczsgaC0+dmVuZG9yOyBoKyspIHsKIAkJLyogRmlyc3QgbG9vayBmb3IgYSByb3V0ZXIgbWF0Y2ggKi8KIAkJaWYgKHJ0LT5ydHJfdmVuZG9yID09IGgtPnZlbmRvciAmJiBoLT5wcm9iZShyLCBwaXJxX3JvdXRlcl9kZXYsIHJ0LT5ydHJfZGV2aWNlKSkKIAkJCWJyZWFrOwpAQCAtODg5LDcgKzg3Nyw3IEBACiAKIAlpZiAoIXBpcnFfdGFibGUpCiAJCXJldHVybiAwOwotCQorCiAJREJHKEtFUk5fREVCVUcgIklSUSBmb3IgJXNbJWNdIiwgcGNpX25hbWUoZGV2KSwgJ0EnICsgcGluKTsKIAlpbmZvID0gcGlycV9nZXRfaW5mbyhkZXYpOwogCWlmICghaW5mbykgewpAQCAtOTI4LDggKzkxNiwxMCBAQAogCSAqLwogCW5ld2lycSA9IGRldi0+aXJxOwogCWlmIChuZXdpcnEgJiYgISgoMSA8PCBuZXdpcnEpICYgbWFzaykpIHsKLQkJaWYgKCBwY2lfcHJvYmUgJiBQQ0lfVVNFX1BJUlFfTUFTSykgbmV3aXJxID0gMDsKLQkJZWxzZSBwcmludGsoIlxuIiBLRVJOX1dBUk5JTkcKKwkJaWYgKHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKQorCQkJbmV3aXJxID0gMDsKKwkJZWxzZQorCQkJcHJpbnRrKCJcbiIgS0VSTl9XQVJOSU5HCiAJCQkiUENJOiBJUlEgJWkgZm9yIGRldmljZSAlcyBkb2Vzbid0IG1hdGNoIFBJUlEgbWFzayAiCiAJCQkiLSB0cnkgcGNpPXVzZXBpcnFtYXNrXG4iIEtFUk5fREVCVUcsIG5ld2lycSwKIAkJCXBjaV9uYW1lKGRldikpOwpAQCAtOTQ5LDggKzkzOSw4IEBACiAJCWlycSA9IHBpcnEgJiAweGY7CiAJCURCRygiIC0+IGhhcmRjb2RlZCBJUlEgJWRcbiIsIGlycSk7CiAJCW1zZyA9ICJIYXJkY29kZWQiOwotCX0gZWxzZSBpZiAoIHItPmdldCAmJiAoaXJxID0gci0+Z2V0KHBpcnFfcm91dGVyX2RldiwgZGV2LCBwaXJxKSkgJiYgXAotCSgoIShwY2lfcHJvYmUgJiBQQ0lfVVNFX1BJUlFfTUFTSykpIHx8ICgoMSA8PCBpcnEpICYgbWFzaykpICkgeworCX0gZWxzZSBpZiAoci0+Z2V0ICYmIChpcnEgPSByLT5nZXQocGlycV9yb3V0ZXJfZGV2LCBkZXYsIHBpcnEpKSAmJiBcCisJKCghKHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSkgfHwgKCgxIDw8IGlycSkgJiBtYXNrKSkpIHsKIAkJREJHKCIgLT4gZ290IElSUSAlZFxuIiwgaXJxKTsKIAkJbXNnID0gIkZvdW5kIjsKIAkJZWlzYV9zZXRfbGV2ZWxfaXJxKGlycSk7CkBAIC05ODUsMTUgKzk3NSwxNSBAQAogCQkJY29udGludWU7CiAJCWlmIChpbmZvLT5pcnFbcGluXS5saW5rID09IHBpcnEpIHsKIAkJCS8qIFdlIHJlZnVzZSB0byBvdmVycmlkZSB0aGUgZGV2LT5pcnEgaW5mb3JtYXRpb24uIEdpdmUgYSB3YXJuaW5nISAqLwotCQkgICAgCWlmICggZGV2Mi0+aXJxICYmIGRldjItPmlycSAhPSBpcnEgJiYgXAorCQkJaWYgKGRldjItPmlycSAmJiBkZXYyLT5pcnEgIT0gaXJxICYmIFwKIAkJCSghKHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSB8fCBcCi0JCQkoKDEgPDwgZGV2Mi0+aXJxKSAmIG1hc2spKSApIHsKKwkJCSgoMSA8PCBkZXYyLT5pcnEpICYgbWFzaykpKSB7CiAjaWZuZGVmIENPTkZJR19QQ0lfTVNJCi0JCSAgICAJCXByaW50ayhLRVJOX0lORk8gIklSUSByb3V0aW5nIGNvbmZsaWN0IGZvciAlcywgaGF2ZSBpcnEgJWQsIHdhbnQgaXJxICVkXG4iLAorCQkJCXByaW50ayhLRVJOX0lORk8gIklSUSByb3V0aW5nIGNvbmZsaWN0IGZvciAlcywgaGF2ZSBpcnEgJWQsIHdhbnQgaXJxICVkXG4iLAogCQkJCSAgICAgICBwY2lfbmFtZShkZXYyKSwgZGV2Mi0+aXJxLCBpcnEpOwogI2VuZGlmCi0JCSAgICAJCWNvbnRpbnVlOwotCQkgICAgCX0KKwkJCQljb250aW51ZTsKKwkJCX0KIAkJCWRldjItPmlycSA9IGlycTsKIAkJCXBpcnFfcGVuYWx0eVtpcnFdKys7CiAJCQlpZiAoZGV2ICE9IGRldjIpCkBAIC0xMDMxLDggKzEwMjEsNyBAQAogCQkvKgogCQkgKiBSZWNhbGN1bGF0ZSBJUlEgbnVtYmVycyBpZiB3ZSB1c2UgdGhlIEkvTyBBUElDLgogCQkgKi8KLQkJaWYgKGlvX2FwaWNfYXNzaWduX3BjaV9pcnFzKQotCQl7CisJCWlmIChpb19hcGljX2Fzc2lnbl9wY2lfaXJxcykgewogCQkJaW50IGlycTsKIAogCQkJaWYgKHBpbikgewpAQCAtMTA0NSwxMCArMTAzNCwxMCBAQAogCSAqIGJ1c3NlcyBpdHNlbGYgc28gd2Ugc2hvdWxkIGdldCBpbnRvIHRoaXMgYnJhbmNoIHJlbGlhYmx5LgogCSAqLwogCQkJCWlmIChpcnEgPCAwICYmIGRldi0+YnVzLT5wYXJlbnQpIHsgLyogZ28gYmFjayB0byB0aGUgYnJpZGdlICovCi0JCQkJCXN0cnVjdCBwY2lfZGV2ICogYnJpZGdlID0gZGV2LT5idXMtPnNlbGY7CisJCQkJCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2UgPSBkZXYtPmJ1cy0+c2VsZjsKIAogCQkJCQlwaW4gPSAocGluICsgUENJX1NMT1QoZGV2LT5kZXZmbikpICUgNDsKLQkJCQkJaXJxID0gSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoYnJpZGdlLT5idXMtPm51bWJlciwgCisJCQkJCWlycSA9IElPX0FQSUNfZ2V0X1BDSV9pcnFfdmVjdG9yKGJyaWRnZS0+YnVzLT5udW1iZXIsCiAJCQkJCQkJUENJX1NMT1QoYnJpZGdlLT5kZXZmbiksIHBpbik7CiAJCQkJCWlmIChpcnEgPj0gMCkKIAkJCQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlBDSTogdXNpbmcgUFBCICVzWyVjXSB0byBnZXQgaXJxICVkXG4iLApAQCAtMTExOCw3ICsxMTA3LDcgQEAKIAl7IH0KIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHBjaWJpb3NfaXJxX2luaXQodm9pZCkKK2ludCBfX2luaXQgcGNpYmlvc19pcnFfaW5pdCh2b2lkKQogewogCURCRyhLRVJOX0RFQlVHICJQQ0k6IElSUSBpbml0XG4iKTsKIApAQCAtMTEzOCw3ICsxMTI3LDcgQEAKIAkJcGlycV9maW5kX3JvdXRlcigmcGlycV9yb3V0ZXIpOwogCQlpZiAocGlycV90YWJsZS0+ZXhjbHVzaXZlX2lycXMpIHsKIAkJCWludCBpOwotCQkJZm9yIChpPTA7IGk8MTY7IGkrKykKKwkJCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKQogCQkJCWlmICghKHBpcnFfdGFibGUtPmV4Y2x1c2l2ZV9pcnFzICYgKDEgPDwgaSkpKQogCQkJCQlwaXJxX3BlbmFsdHlbaV0gKz0gMTAwOwogCQl9CkBAIC0xMTUzLDkgKzExNDIsNiBAQAogCXJldHVybiAwOwogfQogCi1zdWJzeXNfaW5pdGNhbGwocGNpYmlvc19pcnFfaW5pdCk7Ci0KLQogc3RhdGljIHZvaWQgcGlycV9wZW5hbGl6ZV9pc2FfaXJxKGludCBpcnEsIGludCBhY3RpdmUpCiB7CiAJLyoKQEAgLTEyMDMsMTAgKzExODksMTAgQEAKIAkJCSAqLwogCQkJdGVtcF9kZXYgPSBkZXY7CiAJCQl3aGlsZSAoaXJxIDwgMCAmJiBkZXYtPmJ1cy0+cGFyZW50KSB7IC8qIGdvIGJhY2sgdG8gdGhlIGJyaWRnZSAqLwotCQkJCXN0cnVjdCBwY2lfZGV2ICogYnJpZGdlID0gZGV2LT5idXMtPnNlbGY7CisJCQkJc3RydWN0IHBjaV9kZXYgKmJyaWRnZSA9IGRldi0+YnVzLT5zZWxmOwogCiAJCQkJcGluID0gKHBpbiArIFBDSV9TTE9UKGRldi0+ZGV2Zm4pKSAlIDQ7Ci0JCQkJaXJxID0gSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoYnJpZGdlLT5idXMtPm51bWJlciwgCisJCQkJaXJxID0gSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoYnJpZGdlLT5idXMtPm51bWJlciwKIAkJCQkJCVBDSV9TTE9UKGJyaWRnZS0+ZGV2Zm4pLCBwaW4pOwogCQkJCWlmIChpcnEgPj0gMCkKIAkJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiUENJOiB1c2luZyBQUEIgJXNbJWNdIHRvIGdldCBpcnEgJWRcbiIsCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvazgtYnVzXzY0LmMgYi9hcmNoL3g4Ni9wY2kvazgtYnVzXzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjMjc5OWMuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvcGNpL2s4LWJ1c182NC5jCisrKyAvZGV2L251bGwKQEAgLTEsNTI4ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KLSNpbmNsdWRlIDxhc20vbXBzcGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgotI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+Ci0KLS8qCi0gKiBUaGlzIGRpc2NvdmVycyB0aGUgcGNpYnVzIDwtPiBub2RlIG1hcHBpbmcgb24gQU1EIEs4LgotICogYWxzbyBnZXQgcGVlciByb290IGJ1cyByZXNvdXJjZSBmb3IgaW8sbW1pbwotICovCi0KLQotLyoKLSAqIHN1YiBidXMgKHRyYW5zcGFyZW50KSB3aWxsIHVzZSBlbnRyZXMgZnJvbSAzIHRvIHN0b3JlIGV4dHJhIGZyb20gcm9vdCwKLSAqIHNvIG5lZWQgdG8gbWFrZSBzdXJlIGhhdmUgZW5vdWdodCBzbG90IHRoZXJlLCBpbmNyZWFzZSBQQ0lfQlVTX05VTV9SRVNPVVJDRVM/Ci0gKi8KLSNkZWZpbmUgUkVTX05VTSAxNgotc3RydWN0IHBjaV9yb290X2luZm8gewotCWNoYXIgbmFtZVsxMl07Ci0JdW5zaWduZWQgaW50IHJlc19udW07Ci0Jc3RydWN0IHJlc291cmNlIHJlc1tSRVNfTlVNXTsKLQlpbnQgYnVzX21pbjsKLQlpbnQgYnVzX21heDsKLQlpbnQgbm9kZTsKLQlpbnQgbGluazsKLX07Ci0KLS8qIDQgYXQgdGhpcyB0aW1lLCBpdCBtYXkgYmVjb21lIHRvIDMyICovCi0jZGVmaW5lIFBDSV9ST09UX05SIDQKLXN0YXRpYyBpbnQgcGNpX3Jvb3RfbnVtOwotc3RhdGljIHN0cnVjdCBwY2lfcm9vdF9pbmZvIHBjaV9yb290X2luZm9bUENJX1JPT1RfTlJdOwotCi0jaWZkZWYgQ09ORklHX05VTUEKLQotI2RlZmluZSBCVVNfTlIgMjU2Ci0KLXN0YXRpYyBpbnQgbXBfYnVzX3RvX25vZGVbQlVTX05SXTsKLQotdm9pZCBzZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSwgaW50IG5vZGUpCi17Ci0JaWYgKGJ1c251bSA+PSAwICYmICBidXNudW0gPCBCVVNfTlIpCi0JCW1wX2J1c190b19ub2RlW2J1c251bV0gPSBub2RlOwotfQotCi1pbnQgZ2V0X21wX2J1c190b19ub2RlKGludCBidXNudW0pCi17Ci0JaW50IG5vZGUgPSAtMTsKLQotCWlmIChidXNudW0gPCAwIHx8IGJ1c251bSA+IChCVVNfTlIgLSAxKSkKLQkJcmV0dXJuIG5vZGU7Ci0KLQlub2RlID0gbXBfYnVzX3RvX25vZGVbYnVzbnVtXTsKLQotCS8qCi0JICogbGV0IG51bWFfbm9kZV9pZCB0byBkZWNpZGUgaXQgbGF0ZXIgaW4gZG1hX2FsbG9jX3BhZ2VzCi0JICogaWYgdGhlcmUgaXMgbm8gcmFtIG9uIHRoYXQgbm9kZQotCSAqLwotCWlmIChub2RlICE9IC0xICYmICFub2RlX29ubGluZShub2RlKSkKLQkJbm9kZSA9IC0xOwotCi0JcmV0dXJuIG5vZGU7Ci19Ci0jZW5kaWYKLQotdm9pZCBzZXRfcGNpX2J1c19yZXNvdXJjZXNfYXJjaF9kZWZhdWx0KHN0cnVjdCBwY2lfYnVzICpiKQotewotCWludCBpOwotCWludCBqOwotCXN0cnVjdCBwY2lfcm9vdF9pbmZvICppbmZvOwotCi0JLyogaWYgb25seSBvbmUgcm9vdCBidXMsIGRvbid0IG5lZWQgdG8gYW55dGhpbmcgKi8KLQlpZiAocGNpX3Jvb3RfbnVtIDwgMikKLQkJcmV0dXJuOwotCi0JZm9yIChpID0gMDsgaSA8IHBjaV9yb290X251bTsgaSsrKSB7Ci0JCWlmIChwY2lfcm9vdF9pbmZvW2ldLmJ1c19taW4gPT0gYi0+bnVtYmVyKQotCQkJYnJlYWs7Ci0JfQotCi0JaWYgKGkgPT0gcGNpX3Jvb3RfbnVtKQotCQlyZXR1cm47Ci0KLQlpbmZvID0gJnBjaV9yb290X2luZm9baV07Ci0JZm9yIChqID0gMDsgaiA8IGluZm8tPnJlc19udW07IGorKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQkJc3RydWN0IHJlc291cmNlICpyb290OwotCi0JCXJlcyA9ICZpbmZvLT5yZXNbal07Ci0JCWItPnJlc291cmNlW2pdID0gcmVzOwotCQlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfSU8pCi0JCQlyb290ID0gJmlvcG9ydF9yZXNvdXJjZTsKLQkJZWxzZQotCQkJcm9vdCA9ICZpb21lbV9yZXNvdXJjZTsKLQkJaW5zZXJ0X3Jlc291cmNlKHJvb3QsIHJlcyk7Ci0JfQotfQotCi0jZGVmaW5lIFJBTkdFX05VTSAxNgotCi1zdHJ1Y3QgcmVzX3JhbmdlIHsKLQlzaXplX3Qgc3RhcnQ7Ci0Jc2l6ZV90IGVuZDsKLX07Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB1cGRhdGVfcmFuZ2Uoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIHNpemVfdCBzdGFydCwKLQkJCQlzaXplX3QgZW5kKQotewotCWludCBpOwotCWludCBqOwotCi0JZm9yIChqID0gMDsgaiA8IFJBTkdFX05VTTsgaisrKSB7Ci0JCWlmICghcmFuZ2Vbal0uZW5kKQotCQkJY29udGludWU7Ci0KLQkJaWYgKHN0YXJ0IDw9IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQpIHsKLQkJCXJhbmdlW2pdLnN0YXJ0ID0gMDsKLQkJCXJhbmdlW2pdLmVuZCA9IDA7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPCByYW5nZVtqXS5lbmQgJiYgcmFuZ2Vbal0uc3RhcnQgPCBlbmQgKyAxKSB7Ci0JCQlyYW5nZVtqXS5zdGFydCA9IGVuZCArIDE7Ci0JCQljb250aW51ZTsKLQkJfQotCi0KLQkJaWYgKHN0YXJ0ID4gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kID49IHJhbmdlW2pdLmVuZCAmJiByYW5nZVtqXS5lbmQgPiBzdGFydCAtIDEpIHsKLQkJCXJhbmdlW2pdLmVuZCA9IHN0YXJ0IC0gMTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJaWYgKHN0YXJ0ID4gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kKSB7Ci0JCQkvKiBmaW5kIHRoZSBuZXcgc3BhcmUgKi8KLQkJCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgewotCQkJCWlmIChyYW5nZVtpXS5lbmQgPT0gMCkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAoaSA8IFJBTkdFX05VTSkgewotCQkJCXJhbmdlW2ldLmVuZCA9IHJhbmdlW2pdLmVuZDsKLQkJCQlyYW5nZVtpXS5zdGFydCA9IGVuZCArIDE7Ci0JCQl9IGVsc2UgewotCQkJCXByaW50ayhLRVJOX0VSUiAicnVuIG9mIHNsb3QgaW4gcmFuZ2VzXG4iKTsKLQkJCX0KLQkJCXJhbmdlW2pdLmVuZCA9IHN0YXJ0IC0gMTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgdXBkYXRlX3JlcyhzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbywgc2l6ZV90IHN0YXJ0LAotCQkJICAgICAgc2l6ZV90IGVuZCwgdW5zaWduZWQgbG9uZyBmbGFncywgaW50IG1lcmdlKQotewotCWludCBpOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCi0JaWYgKCFtZXJnZSkKLQkJZ290byBhZGRpdDsKLQotCS8qIHRyeSB0byBtZXJnZSBpdCB3aXRoIG9sZCBvbmUgKi8KLQlmb3IgKGkgPSAwOyBpIDwgaW5mby0+cmVzX251bTsgaSsrKSB7Ci0JCXNpemVfdCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOwotCQlzaXplX3QgY29tbW9uX3N0YXJ0LCBjb21tb25fZW5kOwotCi0JCXJlcyA9ICZpbmZvLT5yZXNbaV07Ci0JCWlmIChyZXMtPmZsYWdzICE9IGZsYWdzKQotCQkJY29udGludWU7Ci0KLQkJY29tbW9uX3N0YXJ0ID0gbWF4KChzaXplX3QpcmVzLT5zdGFydCwgc3RhcnQpOwotCQljb21tb25fZW5kID0gbWluKChzaXplX3QpcmVzLT5lbmQsIGVuZCk7Ci0JCWlmIChjb21tb25fc3RhcnQgPiBjb21tb25fZW5kICsgMSkKLQkJCWNvbnRpbnVlOwotCi0JCWZpbmFsX3N0YXJ0ID0gbWluKChzaXplX3QpcmVzLT5zdGFydCwgc3RhcnQpOwotCQlmaW5hbF9lbmQgPSBtYXgoKHNpemVfdClyZXMtPmVuZCwgZW5kKTsKLQotCQlyZXMtPnN0YXJ0ID0gZmluYWxfc3RhcnQ7Ci0JCXJlcy0+ZW5kID0gZmluYWxfZW5kOwotCQlyZXR1cm47Ci0JfQotCi1hZGRpdDoKLQotCS8qIG5lZWQgdG8gYWRkIHRoYXQgKi8KLQlpZiAoaW5mby0+cmVzX251bSA+PSBSRVNfTlVNKQotCQlyZXR1cm47Ci0KLQlyZXMgPSAmaW5mby0+cmVzW2luZm8tPnJlc19udW1dOwotCXJlcy0+bmFtZSA9IGluZm8tPm5hbWU7Ci0JcmVzLT5mbGFncyA9IGZsYWdzOwotCXJlcy0+c3RhcnQgPSBzdGFydDsKLQlyZXMtPmVuZCA9IGVuZDsKLQlyZXMtPmNoaWxkID0gTlVMTDsKLQlpbmZvLT5yZXNfbnVtKys7Ci19Ci0KLXN0cnVjdCBwY2lfaG9zdGJyaWRnZV9wcm9iZSB7Ci0JdTMyIGJ1czsKLQl1MzIgc2xvdDsKLQl1MzIgdmVuZG9yOwotCXUzMiBkZXZpY2U7Ci19OwotCi1zdGF0aWMgc3RydWN0IHBjaV9ob3N0YnJpZGdlX3Byb2JlIHBjaV9wcm9iZXNbXSBfX2luaXRkYXRhID0gewotCXsgMCwgMHgxOCwgUENJX1ZFTkRPUl9JRF9BTUQsIDB4MTEwMCB9LAotCXsgMCwgMHgxOCwgUENJX1ZFTkRPUl9JRF9BTUQsIDB4MTIwMCB9LAotCXsgMHhmZiwgMCwgUENJX1ZFTkRPUl9JRF9BTUQsIDB4MTIwMCB9LAotCXsgMCwgMHgxOCwgUENJX1ZFTkRPUl9JRF9BTUQsIDB4MTMwMCB9LAotfTsKLQotc3RhdGljIHU2NCBfX2luaXRkYXRhIGZhbTEwaF9tbWNvbmZfc3RhcnQ7Ci1zdGF0aWMgdTY0IF9faW5pdGRhdGEgZmFtMTBoX21tY29uZl9lbmQ7Ci1zdGF0aWMgdm9pZCBfX2luaXQgZ2V0X3BjaV9tbWNmZ19hbWRfZmFtMTBoX3JhbmdlKHZvaWQpCi17Ci0JdTMyIGFkZHJlc3M7Ci0JdTY0IGJhc2UsIG1zcjsKLQl1bnNpZ25lZCBzZWduX2J1c25fYml0czsKLQotCS8qIGFzc3VtZSBhbGwgY3B1cyBmcm9tIGZhbTEwaCBoYXZlIG1tY29uZiAqLwotICAgICAgICBpZiAoYm9vdF9jcHVfZGF0YS54ODYgPCAweDEwKQotCQlyZXR1cm47Ci0KLQlhZGRyZXNzID0gTVNSX0ZBTTEwSF9NTUlPX0NPTkZfQkFTRTsKLQlyZG1zcmwoYWRkcmVzcywgbXNyKTsKLQotCS8qIG1tY29uZmlnIGlzIG5vdCBlbmFibGUgKi8KLQlpZiAoIShtc3IgJiBGQU0xMEhfTU1JT19DT05GX0VOQUJMRSkpCi0JCXJldHVybjsKLQotCWJhc2UgPSBtc3IgJiAoRkFNMTBIX01NSU9fQ09ORl9CQVNFX01BU0s8PEZBTTEwSF9NTUlPX0NPTkZfQkFTRV9TSElGVCk7Ci0KLQlzZWduX2J1c25fYml0cyA9IChtc3IgPj4gRkFNMTBIX01NSU9fQ09ORl9CVVNSQU5HRV9TSElGVCkgJgotCQkJIEZBTTEwSF9NTUlPX0NPTkZfQlVTUkFOR0VfTUFTSzsKLQotCWZhbTEwaF9tbWNvbmZfc3RhcnQgPSBiYXNlOwotCWZhbTEwaF9tbWNvbmZfZW5kID0gYmFzZSArICgxVUxMPDwoc2Vnbl9idXNuX2JpdHMgKyAyMCkpIC0gMTsKLX0KLQotLyoqCi0gKiBlYXJseV9maWxsX21wX2J1c190b19ub2RlKCkKLSAqIGNhbGxlZCBiZWZvcmUgcGNpYmlvc19zY2FuX3Jvb3QgYW5kIHBjaV9zY2FuX2J1cwotICogZmlsbHMgdGhlIG1wX2J1c190b19jcHVtYXNrIGFycmF5IGJhc2VkIGFjY29yZGluZyB0byB0aGUgTERUIEJ1cyBOdW1iZXIKLSAqIFJlZ2lzdGVycyBmb3VuZCBpbiB0aGUgSzggbm9ydGhicmlkZ2UKLSAqLwotc3RhdGljIGludCBfX2luaXQgZWFybHlfZmlsbF9tcF9idXNfaW5mbyh2b2lkKQotewotCWludCBpOwotCWludCBqOwotCXVuc2lnbmVkIGJ1czsKLQl1bnNpZ25lZCBzbG90OwotCWludCBmb3VuZDsKLQlpbnQgbm9kZTsKLQlpbnQgbGluazsKLQlpbnQgZGVmX25vZGU7Ci0JaW50IGRlZl9saW5rOwotCXN0cnVjdCBwY2lfcm9vdF9pbmZvICppbmZvOwotCXUzMiByZWc7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0Jc2l6ZV90IHN0YXJ0OwotCXNpemVfdCBlbmQ7Ci0Jc3RydWN0IHJlc19yYW5nZSByYW5nZVtSQU5HRV9OVU1dOwotCXU2NCB2YWw7Ci0JdTMyIGFkZHJlc3M7Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCWZvciAoaSA9IDA7IGkgPCBCVVNfTlI7IGkrKykKLQkJbXBfYnVzX3RvX25vZGVbaV0gPSAtMTsKLSNlbmRpZgotCi0JaWYgKCFlYXJseV9wY2lfYWxsb3dlZCgpKQotCQlyZXR1cm4gLTE7Ci0KLQlmb3VuZCA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGNpX3Byb2Jlcyk7IGkrKykgewotCQl1MzIgaWQ7Ci0JCXUxNiBkZXZpY2U7Ci0JCXUxNiB2ZW5kb3I7Ci0KLQkJYnVzID0gcGNpX3Byb2Jlc1tpXS5idXM7Ci0JCXNsb3QgPSBwY2lfcHJvYmVzW2ldLnNsb3Q7Ci0JCWlkID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMCwgUENJX1ZFTkRPUl9JRCk7Ci0KLQkJdmVuZG9yID0gaWQgJiAweGZmZmY7Ci0JCWRldmljZSA9IChpZD4+MTYpICYgMHhmZmZmOwotCQlpZiAocGNpX3Byb2Jlc1tpXS52ZW5kb3IgPT0gdmVuZG9yICYmCi0JCSAgICBwY2lfcHJvYmVzW2ldLmRldmljZSA9PSBkZXZpY2UpIHsKLQkJCWZvdW5kID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JaWYgKCFmb3VuZCkKLQkJcmV0dXJuIDA7Ci0KLQlwY2lfcm9vdF9udW0gPSAwOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJaW50IG1pbl9idXM7Ci0JCWludCBtYXhfYnVzOwotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGUwICsgKGkgPDwgMikpOwotCi0JCS8qIENoZWNrIGlmIHRoYXQgcmVnaXN0ZXIgaXMgZW5hYmxlZCBmb3IgYnVzIHJhbmdlICovCi0JCWlmICgocmVnICYgNykgIT0gMykKLQkJCWNvbnRpbnVlOwotCi0JCW1pbl9idXMgPSAocmVnID4+IDE2KSAmIDB4ZmY7Ci0JCW1heF9idXMgPSAocmVnID4+IDI0KSAmIDB4ZmY7Ci0JCW5vZGUgPSAocmVnID4+IDQpICYgMHgwNzsKLSNpZmRlZiBDT05GSUdfTlVNQQotCQlmb3IgKGogPSBtaW5fYnVzOyBqIDw9IG1heF9idXM7IGorKykKLQkJCW1wX2J1c190b19ub2RlW2pdID0gKHVuc2lnbmVkIGNoYXIpIG5vZGU7Ci0jZW5kaWYKLQkJbGluayA9IChyZWcgPj4gOCkgJiAweDAzOwotCi0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1twY2lfcm9vdF9udW1dOwotCQlpbmZvLT5idXNfbWluID0gbWluX2J1czsKLQkJaW5mby0+YnVzX21heCA9IG1heF9idXM7Ci0JCWluZm8tPm5vZGUgPSBub2RlOwotCQlpbmZvLT5saW5rID0gbGluazsKLQkJc3ByaW50ZihpbmZvLT5uYW1lLCAiUENJIEJ1cyAjJTAyeCIsIG1pbl9idXMpOwotCQlwY2lfcm9vdF9udW0rKzsKLQl9Ci0KLQkvKiBnZXQgdGhlIGRlZmF1bHQgbm9kZSBhbmQgbGluayBmb3IgbGVmdCBvdmVyIHJlcyAqLwotCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIDB4NjApOwotCWRlZl9ub2RlID0gKHJlZyA+PiA4KSAmIDB4MDc7Ci0JcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMCwgMHg2NCk7Ci0JZGVmX2xpbmsgPSAocmVnID4+IDgpICYgMHgwMzsKLQotCW1lbXNldChyYW5nZSwgMCwgc2l6ZW9mKHJhbmdlKSk7Ci0JcmFuZ2VbMF0uZW5kID0gMHhmZmZmOwotCS8qIGlvIHBvcnQgcmVzb3VyY2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0JCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4YzAgKyAoaSA8PCAzKSk7Ci0JCWlmICghKHJlZyAmIDMpKQotCQkJY29udGludWU7Ci0KLQkJc3RhcnQgPSByZWcgJiAweGZmZjAwMDsKLQkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhjNCArIChpIDw8IDMpKTsKLQkJbm9kZSA9IHJlZyAmIDB4MDc7Ci0JCWxpbmsgPSAocmVnID4+IDQpICYgMHgwMzsKLQkJZW5kID0gKHJlZyAmIDB4ZmZmMDAwKSB8IDB4ZmZmOwotCi0JCS8qIGZpbmQgdGhlIHBvc2l0aW9uICovCi0JCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgewotCQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQkJaWYgKGluZm8tPm5vZGUgPT0gbm9kZSAmJiBpbmZvLT5saW5rID09IGxpbmspCi0JCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKGogPT0gcGNpX3Jvb3RfbnVtKQotCQkJY29udGludWU7IC8qIG5vdCBmb3VuZCAqLwotCi0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgbGluayAlZDogaW8gcG9ydCBbJWxseCwgJWxseF1cbiIsCi0JCSAgICAgICBub2RlLCBsaW5rLCAodTY0KXN0YXJ0LCAodTY0KWVuZCk7Ci0KLQkJLyoga2VybmVsIG9ubHkgaGFuZGxlIDE2IGJpdCBvbmx5ICovCi0JCWlmIChlbmQgPiAweGZmZmYpCi0JCQllbmQgPSAweGZmZmY7Ci0JCXVwZGF0ZV9yZXMoaW5mbywgc3RhcnQsIGVuZCwgSU9SRVNPVVJDRV9JTywgMSk7Ci0JCXVwZGF0ZV9yYW5nZShyYW5nZSwgc3RhcnQsIGVuZCk7Ci0JfQotCS8qIGFkZCBsZWZ0IG92ZXIgaW8gcG9ydCByYW5nZSB0byBkZWYgbm9kZS9saW5rLCBbMCwgMHhmZmZmXSAqLwotCS8qIGZpbmQgdGhlIHBvc2l0aW9uICovCi0JZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7Ci0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJaWYgKGluZm8tPm5vZGUgPT0gZGVmX25vZGUgJiYgaW5mby0+bGluayA9PSBkZWZfbGluaykKLQkJCWJyZWFrOwotCX0KLQlpZiAoaiA8IHBjaV9yb290X251bSkgewotCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgewotCQkJaWYgKCFyYW5nZVtpXS5lbmQpCi0JCQkJY29udGludWU7Ci0KLQkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKLQkJCQkgICBJT1JFU09VUkNFX0lPLCAxKTsKLQkJfQotCX0KLQotCW1lbXNldChyYW5nZSwgMCwgc2l6ZW9mKHJhbmdlKSk7Ci0JLyogMHhmZDAwMDAwMDAwLTB4ZmZmZmZmZmZmZiBmb3IgSFQgKi8KLQlyYW5nZVswXS5lbmQgPSAoMHhmZFVMTDw8MzIpIC0gMTsKLQotCS8qIG5lZWQgdG8gdGFrZSBvdXQgWzAsIFRPTSkgZm9yIFJBTSovCi0JYWRkcmVzcyA9IE1TUl9LOF9UT1BfTUVNMTsKLQlyZG1zcmwoYWRkcmVzcywgdmFsKTsKLQllbmQgPSAodmFsICYgMHhmZmZmZmY4MDAwMDAwVUxMKTsKLQlwcmludGsoS0VSTl9JTkZPICJUT006ICUwMTZseCBha2EgJWxkTVxuIiwgZW5kLCBlbmQ+PjIwKTsKLQlpZiAoZW5kIDwgKDFVTEw8PDMyKSkKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCAwLCBlbmQgLSAxKTsKLQotCS8qIGdldCBtbWNvbmZpZyAqLwotCWdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSgpOwotCS8qIG5lZWQgdG8gdGFrZSBvdXQgbW1jb25mIHJhbmdlICovCi0JaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCXByaW50ayhLRVJOX0RFQlVHICJGYW0gMTBoIG1tY29uZiBbJWxseCwgJWxseF1cbiIsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBmYW0xMGhfbW1jb25mX3N0YXJ0LCBmYW0xMGhfbW1jb25mX2VuZCk7Ci0JfQotCi0JLyogbW1pbyByZXNvdXJjZSAqLwotCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4MCArIChpIDw8IDMpKTsKLQkJaWYgKCEocmVnICYgMykpCi0JCQljb250aW51ZTsKLQotCQlzdGFydCA9IHJlZyAmIDB4ZmZmZmZmMDA7IC8qIDM5OjE2IG9uIDMxOjgqLwotCQlzdGFydCA8PD0gODsKLQkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4NCArIChpIDw8IDMpKTsKLQkJbm9kZSA9IHJlZyAmIDB4MDc7Ci0JCWxpbmsgPSAocmVnID4+IDQpICYgMHgwMzsKLQkJZW5kID0gKHJlZyAmIDB4ZmZmZmZmMDApOwotCQllbmQgPDw9IDg7Ci0JCWVuZCB8PSAweGZmZmY7Ci0KLQkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KLQkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7Ci0JCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCi0JCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCi0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCi0JCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IG1taW8gWyVsbHgsICVsbHhdIiwKLQkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKLQkJLyoKLQkJICogc29tZSBzaWNrIGFsbG9jYXRpb24gd291bGQgaGF2ZSByYW5nZSBvdmVybGFwIHdpdGggZmFtMTBoCi0JCSAqIG1tY29uZiByYW5nZSwgc28gbmVlZCB0byB1cGRhdGUgc3RhcnQgYW5kIGVuZC4KLQkJICovCi0JCWlmIChmYW0xMGhfbW1jb25mX2VuZCkgewotCQkJaW50IGNoYW5nZWQgPSAwOwotCQkJdTY0IGVuZHggPSAwOwotCQkJaWYgKHN0YXJ0ID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKLQkJCSAgICBzdGFydCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgewotCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOwotCQkJCWNoYW5nZWQgPSAxOwotCQkJfQotCi0JCQlpZiAoZW5kID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKLQkJCSAgICBlbmQgPD0gZmFtMTBoX21tY29uZl9lbmQpIHsKLQkJCQllbmQgPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKLQkJCQljaGFuZ2VkID0gMTsKLQkJCX0KLQotCQkJaWYgKHN0YXJ0IDwgZmFtMTBoX21tY29uZl9zdGFydCAmJgotCQkJICAgIGVuZCA+IGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCQkJLyogd2UgZ290IGEgaG9sZSAqLwotCQkJCWVuZHggPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKLQkJCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmR4LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JCQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5keCk7Ci0JCQkJcHJpbnRrKEtFUk5fQ09OVCAiID09PiBbJWxseCwgJWxseF0iLCAodTY0KXN0YXJ0LCBlbmR4KTsKLQkJCQlzdGFydCA9IGZhbTEwaF9tbWNvbmZfZW5kICsgMTsKLQkJCQljaGFuZ2VkID0gMTsKLQkJCX0KLQkJCWlmIChjaGFuZ2VkKSB7Ci0JCQkJaWYgKHN0YXJ0IDw9IGVuZCkgewotCQkJCQlwcmludGsoS0VSTl9DT05UICIgJXMgWyVsbHgsICVsbHhdIiwgZW5keD8iYW5kIjoiPT0+IiwgKHU2NClzdGFydCwgKHU2NCllbmQpOwotCQkJCX0gZWxzZSB7Ci0JCQkJCXByaW50ayhLRVJOX0NPTlQgIiVzXG4iLCBlbmR4PyIiOiIgPT0+IG5vbmUiKTsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX01FTSwgMSk7Ci0JCXVwZGF0ZV9yYW5nZShyYW5nZSwgc3RhcnQsIGVuZCk7Ci0JCXByaW50ayhLRVJOX0NPTlQgIlxuIik7Ci0JfQotCi0JLyogbmVlZCB0byB0YWtlIG91dCBbNEcsIFRPTTIpIGZvciBSQU0qLwotCS8qIFNZU19DRkcgKi8KLQlhZGRyZXNzID0gTVNSX0s4X1NZU0NGRzsKLQlyZG1zcmwoYWRkcmVzcywgdmFsKTsKLQkvKiBUT1BfTUVNMiBpcyBlbmFibGVkPyAqLwotCWlmICh2YWwgJiAoMTw8MjEpKSB7Ci0JCS8qIFRPUF9NRU0yICovCi0JCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTI7Ci0JCXJkbXNybChhZGRyZXNzLCB2YWwpOwotCQllbmQgPSAodmFsICYgMHhmZmZmZmY4MDAwMDAwVUxMKTsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiVE9NMjogJTAxNmx4IGFrYSAlbGRNXG4iLCBlbmQsIGVuZD4+MjApOwotCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIDFVTEw8PDMyLCBlbmQgLSAxKTsKLQl9Ci0KLQkvKgotCSAqIGFkZCBsZWZ0IG92ZXIgbW1pbyByYW5nZSB0byBkZWYgbm9kZS9saW5rID8KLQkgKiB0aGF0IGlzIHRyaWNreSwganVzdCByZWNvcmQgcmFuZ2UgaW4gZnJvbSBzdGFydF9taW4gdG8gNEcKLQkgKi8KLQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQlpZiAoaW5mby0+bm9kZSA9PSBkZWZfbm9kZSAmJiBpbmZvLT5saW5rID09IGRlZl9saW5rKQotCQkJYnJlYWs7Ci0JfQotCWlmIChqIDwgcGNpX3Jvb3RfbnVtKSB7Ci0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKLQkJCWlmICghcmFuZ2VbaV0uZW5kKQotCQkJCWNvbnRpbnVlOwotCi0JCQl1cGRhdGVfcmVzKGluZm8sIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQsCi0JCQkJICAgSU9SRVNPVVJDRV9NRU0sIDEpOwotCQl9Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IHBjaV9yb290X251bTsgaSsrKSB7Ci0JCWludCByZXNfbnVtOwotCQlpbnQgYnVzbnVtOwotCi0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tpXTsKLQkJcmVzX251bSA9IGluZm8tPnJlc19udW07Ci0JCWJ1c251bSA9IGluZm8tPmJ1c19taW47Ci0JCXByaW50ayhLRVJOX0RFQlVHICJidXM6IFslMDJ4LCUwMnhdIG9uIG5vZGUgJXggbGluayAleFxuIiwKLQkJICAgICAgIGluZm8tPmJ1c19taW4sIGluZm8tPmJ1c19tYXgsIGluZm8tPm5vZGUsIGluZm8tPmxpbmspOwotCQlmb3IgKGogPSAwOyBqIDwgcmVzX251bTsgaisrKSB7Ci0JCQlyZXMgPSAmaW5mby0+cmVzW2pdOwotCQkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogJTAyeCBpbmRleCAleCAlczogWyVsbHgsICVsbHhdXG4iLAotCQkJICAgICAgIGJ1c251bSwgaiwKLQkJCSAgICAgICAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfSU8pPyJpbyBwb3J0IjoibW1pbyIsCi0JCQkgICAgICAgcmVzLT5zdGFydCwgcmVzLT5lbmQpOwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXBvc3Rjb3JlX2luaXRjYWxsKGVhcmx5X2ZpbGxfbXBfYnVzX2luZm8pOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2xlZ2FjeS5jIGIvYXJjaC94ODYvcGNpL2xlZ2FjeS5jCmluZGV4IGE2NzkyMWMuLjEzMjg3NmMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9sZWdhY3kuYworKysgYi9hcmNoL3g4Ni9wY2kvbGVnYWN5LmMKQEAgLTU1LDQgKzU1LDE4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2lfbGVnYWN5X2luaXQpOworaW50IF9faW5pdCBwY2lfc3Vic3lzX2luaXQodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfQUNQSQorCXBjaV9hY3BpX2luaXQoKTsKKyNlbmRpZgorCXBjaV9sZWdhY3lfaW5pdCgpOworCXBjaWJpb3NfaXJxX2luaXQoKTsKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCisJcGNpX251bWFfaW5pdCgpOworI2VuZGlmCisJcGNpYmlvc19pbml0KCk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChwY2lfc3Vic3lzX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL21tY29uZmlnLXNoYXJlZC5jIGIvYXJjaC94ODYvcGNpL21tY29uZmlnLXNoYXJlZC5jCmluZGV4IDBjZmViZWMuLjIzZmFhYTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9tbWNvbmZpZy1zaGFyZWQuYworKysgYi9hcmNoL3g4Ni9wY2kvbW1jb25maWctc2hhcmVkLmMKQEAgLTM3NCw3ICszNzQsNyBAQAogCiBzdGF0aWMgaW50IF9faW5pdGRhdGEga25vd25fYnJpZGdlOwogCi12b2lkIF9faW5pdCBfX3BjaV9tbWNmZ19pbml0KGludCBlYXJseSkKK3N0YXRpYyB2b2lkIF9faW5pdCBfX3BjaV9tbWNmZ19pbml0KGludCBlYXJseSkKIHsKIAkvKiBNTUNPTkZJRyBkaXNhYmxlZCAqLwogCWlmICgocGNpX3Byb2JlICYgUENJX1BST0JFX01NQ09ORikgPT0gMCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9tcF9idXNfdG9fbm9kZS5jIGIvYXJjaC94ODYvcGNpL21wX2J1c190b19ub2RlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyMjk0MzkuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvcGNpL21wX2J1c190b19ub2RlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+Ci0KLSNkZWZpbmUgQlVTX05SIDI1NgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOwotCi12b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKLXsKLQlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKLQltcF9idXNfdG9fbm9kZVtidXNudW1dID0gKHVuc2lnbmVkIGNoYXIpIG5vZGU7Ci19Ci0KLWludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKLXsKLQlpbnQgbm9kZTsKLQotCWlmIChidXNudW0gPCAwIHx8IGJ1c251bSA+IChCVVNfTlIgLSAxKSkKLQkJcmV0dXJuIDA7Ci0Jbm9kZSA9IG1wX2J1c190b19ub2RlW2J1c251bV07Ci0JcmV0dXJuIG5vZGU7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvbnVtYS5jIGIvYXJjaC94ODYvcGNpL251bWEuYwppbmRleCBkOWFmYmFlLi44YjVjYTE5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvbnVtYS5jCisrKyBiL2FyY2gveDg2L3BjaS9udW1hLmMKQEAgLTYsNDUgKzYsMjEgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KICNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAjaW5jbHVkZSAicGNpLmgiCiAKICNkZWZpbmUgWFFVQURfUE9SVElPX0JBU0UgMHhmZTQwMDAwMAogI2RlZmluZSBYUVVBRF9QT1JUSU9fUVVBRCAweDQwMDAwICAvKiAyNTZrIHBlciBxdWFkLiAqLwogCi1pbnQgbXBfYnVzX2lkX3RvX25vZGVbTUFYX01QX0JVU1NFU107CiAjZGVmaW5lIEJVUzJRVUFEKGdsb2JhbCkgKG1wX2J1c19pZF90b19ub2RlW2dsb2JhbF0pCiAKLWludCBtcF9idXNfaWRfdG9fbG9jYWxbTUFYX01QX0JVU1NFU107CiAjZGVmaW5lIEJVUzJMT0NBTChnbG9iYWwpIChtcF9idXNfaWRfdG9fbG9jYWxbZ2xvYmFsXSkKIAotdm9pZCBtcGNfb2VtX2J1c19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwgY2hhciAqbmFtZSwKLQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pCi17Ci0JaW50IHF1YWQgPSB0cmFuc2xhdGlvbi0+dHJhbnNfcXVhZDsKLQlpbnQgbG9jYWwgPSB0cmFuc2xhdGlvbi0+dHJhbnNfbG9jYWw7Ci0KLQltcF9idXNfaWRfdG9fbm9kZVttLT5tcGNfYnVzaWRdID0gcXVhZDsKLQltcF9idXNfaWRfdG9fbG9jYWxbbS0+bXBjX2J1c2lkXSA9IGxvY2FsOwotCXByaW50ayhLRVJOX0lORk8gIkJ1cyAjJWQgaXMgJXMgKG5vZGUgJWQpXG4iLAotCSAgICAgICBtLT5tcGNfYnVzaWQsIG5hbWUsIHF1YWQpOwotfQotCi1pbnQgcXVhZF9sb2NhbF90b19tcF9idXNfaWQgW05SX0NQVVMvNF1bNF07CiAjZGVmaW5lIFFVQURMT0NBTDJCVVMocXVhZCxsb2NhbCkgKHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkW3F1YWRdW2xvY2FsXSkKLXZvaWQgbXBjX29lbV9wY2lfYnVzKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwKLQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pCi17Ci0JaW50IHF1YWQgPSB0cmFuc2xhdGlvbi0+dHJhbnNfcXVhZDsKLQlpbnQgbG9jYWwgPSB0cmFuc2xhdGlvbi0+dHJhbnNfbG9jYWw7Ci0KLQlxdWFkX2xvY2FsX3RvX21wX2J1c19pZFtxdWFkXVtsb2NhbF0gPSBtLT5tcGNfYnVzaWQ7Ci19CiAKIC8qIFdoZXJlIHRoZSBJTyBhcmVhIHdhcyBtYXBwZWQgb24gbXVsdGlxdWFkLCBhbHdheXMgMCBvdGhlcndpc2UgKi8KIHZvaWQgKnhxdWFkX3BvcnRpbzsKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRCiBFWFBPUlRfU1lNQk9MKHhxdWFkX3BvcnRpbyk7Ci0jZW5kaWYKIAogI2RlZmluZSBYUVVBRF9QT1JUX0FERFIocG9ydCwgcXVhZCkgKHhxdWFkX3BvcnRpbyArIChYUVVBRF9QT1JUSU9fUVVBRCpxdWFkKSArIHBvcnQpCiAKQEAgLTE3NSwxMCArMTUxLDEzIEBACiB9CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF84MjQ1MU5YLCBwY2lfZml4dXBfaTQ1MG54KTsKIAotc3RhdGljIGludCBfX2luaXQgcGNpX251bWFfaW5pdCh2b2lkKQoraW50IF9faW5pdCBwY2lfbnVtYV9pbml0KHZvaWQpCiB7CiAJaW50IHF1YWQ7CiAKKwlpZiAoIWZvdW5kX251bWFxKQorCQlyZXR1cm4gMDsKKwogCXJhd19wY2lfb3BzID0gJnBjaV9kaXJlY3RfY29uZjFfbXE7CiAKIAlpZiAocGNpYmlvc19zY2FubmVkKyspCkBAIC0xOTcsNSArMTc2LDMgQEAKIAkJfQogCXJldHVybiAwOwogfQotCi1zdWJzeXNfaW5pdGNhbGwocGNpX251bWFfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvcGNpLmggYi9hcmNoL3g4Ni9wY2kvcGNpLmgKaW5kZXggNzIwYzRjNS4uYjIyNzBhNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3BjaS5oCisrKyBiL2FyY2gveDg2L3BjaS9wY2kuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQQ0lfQ0FOX1NLSVBfSVNBX0FMSUdOCTB4ODAwMAogI2RlZmluZSBQQ0lfVVNFX19DUlMJCTB4MTAwMDAKICNkZWZpbmUgUENJX0NIRUNLX0VOQUJMRV9BTURfTU1DT05GCTB4MjAwMDAKKyNkZWZpbmUgUENJX0hBU19JT19FQ1MJCTB4NDAwMDAKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBwY2lfcHJvYmU7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBwaXJxX3RhYmxlX2FkZHI7CkBAIC0zOCw5ICszOSw2IEBACiAJcGNpX2RtaV9iZiwKIH07CiAKLWV4dGVybiB2b2lkIF9faW5pdCBkbWlfY2hlY2tfcGNpcHJvYmUodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2luaXQgZG1pX2NoZWNrX3NraXBfaXNhX2FsaWduKHZvaWQpOwotCiAvKiBwY2ktaTM4Ni5jICovCiAKIGV4dGVybiB1bnNpZ25lZCBpbnQgcGNpYmlvc19tYXhfbGF0ZW5jeTsKQEAgLTk4LDEwICs5NiwxOSBAQAogCiBleHRlcm4gc3RydWN0IHBjaV9yYXdfb3BzIHBjaV9kaXJlY3RfY29uZjE7CiAKKy8qIGFyY2hfaW5pdGNhbGwgbGV2ZWwgKi8KIGV4dGVybiBpbnQgcGNpX2RpcmVjdF9wcm9iZSh2b2lkKTsKIGV4dGVybiB2b2lkIHBjaV9kaXJlY3RfaW5pdChpbnQgdHlwZSk7CiBleHRlcm4gdm9pZCBwY2lfcGNiaW9zX2luaXQodm9pZCk7CiBleHRlcm4gaW50IHBjaV9vbHBjX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBfX2luaXQgZG1pX2NoZWNrX3BjaXByb2JlKHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IGRtaV9jaGVja19za2lwX2lzYV9hbGlnbih2b2lkKTsKKworLyogc29tZSBjb21tb24gdXNlZCBzdWJzeXNfaW5pdGNhbGxzICovCitleHRlcm4gaW50IF9faW5pdCBwY2lfYWNwaV9pbml0KHZvaWQpOworZXh0ZXJuIGludCBfX2luaXQgcGNpYmlvc19pcnFfaW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgX19pbml0IHBjaV9udW1hX2luaXQodm9pZCk7CitleHRlcm4gaW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCk7CiAKIC8qIHBjaS1tbWNvbmZpZy5jICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS92aXN3cy5jIGIvYXJjaC94ODYvcGNpL3Zpc3dzLmMKaW5kZXggYzJkZjRlOS4uMWE3YmVkNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3Zpc3dzLmMKKysrIGIvYXJjaC94ODYvcGNpL3Zpc3dzLmMKQEAgLTgsMTggKzgsMTkgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAKLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJsaXRoaXVtLmgiCisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9saXRoaXVtLmg+CiAKICNpbmNsdWRlICJwY2kuaCIKIAogc3RhdGljIGludCBwY2lfdmlzd3NfZW5hYmxlX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IHJldHVybiAwOyB9CiBzdGF0aWMgdm9pZCBwY2lfdmlzd3NfZGlzYWJsZV9pcnEoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9CiAKLWludCAoKnBjaWJpb3NfZW5hYmxlX2lycSkoc3RydWN0IHBjaV9kZXYgKmRldikgPSAmcGNpX3Zpc3dzX2VuYWJsZV9pcnE7Ci12b2lkICgqcGNpYmlvc19kaXNhYmxlX2lycSkoc3RydWN0IHBjaV9kZXYgKmRldikgPSAmcGNpX3Zpc3dzX2Rpc2FibGVfaXJxOworLyogaW50ICgqcGNpYmlvc19lbmFibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZW5hYmxlX2lycTsgKi8KKy8qIHZvaWQgKCpwY2liaW9zX2Rpc2FibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZGlzYWJsZV9pcnE7ICovCiAKLXZvaWQgX19pbml0IHBjaWJpb3NfcGVuYWxpemVfaXNhX2lycShpbnQgaXJxLCBpbnQgYWN0aXZlKSB7fQorLyogdm9pZCBfX2luaXQgcGNpYmlvc19wZW5hbGl6ZV9pc2FfaXJxKGludCBpcnEsIGludCBhY3RpdmUpIHt9ICovCiAKIAogdW5zaWduZWQgaW50IHBjaV9idXMwLCBwY2lfYnVzMTsKQEAgLTg1LDcgKzg2LDcgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LCBQQ0lfSU5URVJSVVBUX0xJTkUsIGlycSk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHBjaWJpb3NfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgcGNpX3Zpc3dzX2luaXQodm9pZCkKIHsKIAkvKiBUaGUgVklTV1Mgc3VwcG9ydHMgY29uZmlndXJhdGlvbiBhY2Nlc3MgdHlwZSAxIG9ubHkgKi8KIAlwY2lfcHJvYmUgPSAocGNpX3Byb2JlIHwgUENJX1BST0JFX0NPTkYxKSAmCkBAIC0xMDUsNCArMTA2LDE3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2liaW9zX2luaXQpOworc3RhdGljIF9faW5pdCBpbnQgcGNpX3N1YnN5c19pbml0KHZvaWQpCit7CisJaWYgKCFpc192aXN3c19ib3goKSkKKwkJcmV0dXJuIC0xOworCisJcGNpYmlvc19lbmFibGVfaXJxID0gJnBjaV92aXN3c19lbmFibGVfaXJxOworCXBjaWJpb3NfZGlzYWJsZV9pcnEgPSAmcGNpX3Zpc3dzX2Rpc2FibGVfaXJxOworCisJcGNpX3Zpc3dzX2luaXQoKTsKKwlwY2liaW9zX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHBjaV9zdWJzeXNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wb3dlci9oaWJlcm5hdGVfNjQuYyBiL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCmluZGV4IGI1NDIzNTUuLjZkZDAwMGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCisrKyBiL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCkBAIC04Myw3ICs4Myw3IEBACiAKIAkvKiBTZXQgdXAgdGhlIGRpcmVjdCBtYXBwaW5nIGZyb20gc2NyYXRjaCAqLwogCXN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpcGZuX3RvX2thZGRyKDApOwotCWVuZCA9ICh1bnNpZ25lZCBsb25nKXBmbl90b19rYWRkcihlbmRfcGZuKTsKKwllbmQgPSAodW5zaWduZWQgbG9uZylwZm5fdG9fa2FkZHIobWF4X3Bmbik7CiAKIAlmb3IgKDsgc3RhcnQgPCBlbmQ7IHN0YXJ0ID0gbmV4dCkgewogCQlwdWRfdCAqcHVkID0gKHB1ZF90ICopZ2V0X3NhZmVfcGFnZShHRlBfQVRPTUlDKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Zkc28vdmNsb2NrX2dldHRpbWUuYyBiL2FyY2gveDg2L3Zkc28vdmNsb2NrX2dldHRpbWUuYwppbmRleCBlZmEyYmE3Li4xZWYwZjkwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3ZjbG9ja19nZXR0aW1lLmMKKysrIGIvYXJjaC94ODYvdmRzby92Y2xvY2tfZ2V0dGltZS5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNkZWZpbmUgZ3RvZCB2ZHNvX3ZzeXNjYWxsX2d0b2RfZGF0YQogCi1zdGF0aWMgbG9uZyB2ZHNvX2ZhbGxiYWNrX2dldHRpbWUobG9uZyBjbG9jaywgc3RydWN0IHRpbWVzcGVjICp0cykKK25vdHJhY2Ugc3RhdGljIGxvbmcgdmRzb19mYWxsYmFja19nZXR0aW1lKGxvbmcgY2xvY2ssIHN0cnVjdCB0aW1lc3BlYyAqdHMpCiB7CiAJbG9uZyByZXQ7CiAJYXNtKCJzeXNjYWxsIiA6ICI9YSIgKHJldCkgOgpAQCAtMzEsNyArMzEsNyBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgbG9uZyB2Z2V0bnModm9pZCkKK25vdHJhY2Ugc3RhdGljIGlubGluZSBsb25nIHZnZXRucyh2b2lkKQogewogCWxvbmcgdjsKIAljeWNsZXNfdCAoKnZyZWFkKSh2b2lkKTsKQEAgLTQwLDcgKzQwLDcgQEAKIAlyZXR1cm4gKHYgKiBndG9kLT5jbG9jay5tdWx0KSA+PiBndG9kLT5jbG9jay5zaGlmdDsKIH0KIAotc3RhdGljIG5vaW5saW5lIGludCBkb19yZWFsdGltZShzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBzdGF0aWMgbm9pbmxpbmUgaW50IGRvX3JlYWx0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMpCiB7CiAJdW5zaWduZWQgbG9uZyBzZXEsIG5zOwogCWRvIHsKQEAgLTU0LDcgKzU0LDggQEAKIH0KIAogLyogQ29weSBvZiB0aGUgdmVyc2lvbiBpbiBrZXJuZWwvdGltZS5jIHdoaWNoIHdlIGNhbm5vdCBkaXJlY3RseSBhY2Nlc3MgKi8KLXN0YXRpYyB2b2lkIHZzZXRfbm9ybWFsaXplZF90aW1lc3BlYyhzdHJ1Y3QgdGltZXNwZWMgKnRzLCBsb25nIHNlYywgbG9uZyBuc2VjKQorbm90cmFjZSBzdGF0aWMgdm9pZAordnNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHN0cnVjdCB0aW1lc3BlYyAqdHMsIGxvbmcgc2VjLCBsb25nIG5zZWMpCiB7CiAJd2hpbGUgKG5zZWMgPj0gTlNFQ19QRVJfU0VDKSB7CiAJCW5zZWMgLT0gTlNFQ19QRVJfU0VDOwpAQCAtNjgsNyArNjksNyBAQAogCXRzLT50dl9uc2VjID0gbnNlYzsKIH0KIAotc3RhdGljIG5vaW5saW5lIGludCBkb19tb25vdG9uaWMoc3RydWN0IHRpbWVzcGVjICp0cykKK25vdHJhY2Ugc3RhdGljIG5vaW5saW5lIGludCBkb19tb25vdG9uaWMoc3RydWN0IHRpbWVzcGVjICp0cykKIHsKIAl1bnNpZ25lZCBsb25nIHNlcSwgbnMsIHNlY3M7CiAJZG8gewpAQCAtODIsNyArODMsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgX192ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBpbnQgX192ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCWlmIChsaWtlbHkoZ3RvZC0+c3lzY3RsX2VuYWJsZWQgJiYgZ3RvZC0+Y2xvY2sudnJlYWQpKQogCQlzd2l0Y2ggKGNsb2NrKSB7CkBAIC05Niw3ICs5Nyw3IEBACiBpbnQgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QsIHN0cnVjdCB0aW1lc3BlYyAqKQogCV9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJfX3Zkc29fY2xvY2tfZ2V0dGltZSIpKSk7CiAKLWludCBfX3Zkc29fZ2V0dGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0diwgc3RydWN0IHRpbWV6b25lICp0eikKK25vdHJhY2UgaW50IF9fdmRzb19nZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdGltZXpvbmUgKnR6KQogewogCWxvbmcgcmV0OwogCWlmIChsaWtlbHkoZ3RvZC0+c3lzY3RsX2VuYWJsZWQgJiYgZ3RvZC0+Y2xvY2sudnJlYWQpKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jIGIvYXJjaC94ODYvdmRzby92ZHNvMzItc2V0dXAuYwppbmRleCBjZjA1OGZlLi4wYmNlNTQyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jCisrKyBiL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMKQEAgLTIwMywyMCArMjAzLDExIEBACiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAKLXN0YXRpYyBpbnQgdXNlX3N5c2VudGVyIF9fcmVhZF9tb3N0bHkgPSAtMTsKLQotI2RlZmluZQl2ZHNvMzJfc3lzZW50ZXIoKQkodXNlX3N5c2VudGVyID4gMCkKKyNkZWZpbmUJdmRzbzMyX3N5c2VudGVyKCkJKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9TWVNFTlRFUjMyKSkKIAogLyogTWF5IG5vdCBiZSBfX2luaXQ6IGNhbGxlZCBkdXJpbmcgcmVzdW1lICovCiB2b2lkIHN5c2NhbGwzMl9jcHVfaW5pdCh2b2lkKQogewotCWlmICh1c2Vfc3lzZW50ZXIgPCAwKSB7Ci0JCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCkKLQkJCXVzZV9zeXNlbnRlciA9IDE7Ci0JCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9DRU5UQVVSKQotCQkJdXNlX3N5c2VudGVyID0gMTsKLQl9Ci0KIAkvKiBMb2FkIHRoZXNlIGFsd2F5cyBpbiBjYXNlIHNvbWUgZnV0dXJlIEFNRCBDUFUgc3VwcG9ydHMKIAkgICBTWVNFTlRFUiBmcm9tIGNvbXBhdCBtb2RlIHRvby4gKi8KIAljaGVja2luZ193cm1zcmwoTVNSX0lBMzJfU1lTRU5URVJfQ1MsICh1NjQpX19LRVJORUxfQ1MpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92Z2V0Y3B1LmMgYi9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYwppbmRleCBjODA5N2YxLi45ZmJjNmIyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYworKysgYi9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYwpAQCAtMTMsNyArMTMsOCBAQAogI2luY2x1ZGUgPGFzbS92Z3RvZC5oPgogI2luY2x1ZGUgInZleHRlcm4uaCIKIAotbG9uZyBfX3Zkc29fZ2V0Y3B1KHVuc2lnbmVkICpjcHUsIHVuc2lnbmVkICpub2RlLCBzdHJ1Y3QgZ2V0Y3B1X2NhY2hlICp1bnVzZWQpCitub3RyYWNlIGxvbmcKK19fdmRzb19nZXRjcHUodW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUsIHN0cnVjdCBnZXRjcHVfY2FjaGUgKnVudXNlZCkKIHsKIAl1bnNpZ25lZCBpbnQgcDsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92bWEuYyBiL2FyY2gveDg2L3Zkc28vdm1hLmMKaW5kZXggM2ZkZDUxNC4uMTlhNmNmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdmRzby92bWEuYworKysgYi9hcmNoL3g4Ni92ZHNvL3ZtYS5jCkBAIC0xNiw3ICsxNiw3IEBACiAjaW5jbHVkZSAidmV4dGVybi5oIgkJLyogSnVzdCBmb3IgVk1BR0lDLiAgKi8KICN1bmRlZiBWRVhURVJOCiAKLWludCB2ZHNvX2VuYWJsZWQgPSAxOwordW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgdmRzb19lbmFibGVkID0gMTsKIAogZXh0ZXJuIGNoYXIgdmRzb19zdGFydFtdLCB2ZHNvX2VuZFtdOwogZXh0ZXJuIHVuc2lnbmVkIHNob3J0IHZkc29fc3luY19jcHVpZDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9LY29uZmlnIGIvYXJjaC94ODYveGVuL0tjb25maWcKaW5kZXggMmU2NDFiZS4uYzJjYzk5NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL0tjb25maWcKKysrIGIvYXJjaC94ODYveGVuL0tjb25maWcKQEAgLTUsOSArNSwyMCBAQAogY29uZmlnIFhFTgogCWJvb2wgIlhlbiBndWVzdCBzdXBwb3J0IgogCXNlbGVjdCBQQVJBVklSVAorCXNlbGVjdCBQQVJBVklSVF9DTE9DSwogCWRlcGVuZHMgb24gWDg2XzMyCi0JZGVwZW5kcyBvbiBYODZfQ01QWENIRyAmJiBYODZfVFNDICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQorCWRlcGVuZHMgb24gWDg2X0NNUFhDSEcgJiYgWDg2X1RTQyAmJiBYODZfUEFFICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQogCWhlbHAKIAkgIFRoaXMgaXMgdGhlIExpbnV4IFhlbiBwb3J0LiAgRW5hYmxpbmcgdGhpcyB3aWxsIGFsbG93IHRoZQogCSAga2VybmVsIHRvIGJvb3QgaW4gYSBwYXJhdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5kZXIgdGhlCiAJICBYZW4gaHlwZXJ2aXNvci4KKworY29uZmlnIFhFTl9NQVhfRE9NQUlOX01FTU9SWQorICAgICAgIGludCAiTWF4aW11bSBhbGxvd2VkIHNpemUgb2YgYSBkb21haW4gaW4gZ2lnYWJ5dGVzIgorICAgICAgIGRlZmF1bHQgOAorICAgICAgIGRlcGVuZHMgb24gWEVOCisgICAgICAgaGVscAorICAgICAgICAgVGhlIHBzZXVkby1waHlzaWNhbCB0byBtYWNoaW5lIGFkZHJlc3MgYXJyYXkgaXMgc2l6ZWQKKyAgICAgICAgIGFjY29yZGluZyB0byB0aGUgbWF4aW11bSBwb3NzaWJsZSBtZW1vcnkgc2l6ZSBvZiBhIFhlbgorICAgICAgICAgZG9tYWluLiAgVGhpcyBhcnJheSB1c2VzIDEgcGFnZSBwZXIgZ2lnYWJ5dGUsIHNvIHRoZXJlJ3Mgbm8KKyAgICAgICAgIG5lZWQgdG8gYmUgdG9vIHN0aW5neSBoZXJlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9NYWtlZmlsZSBiL2FyY2gveDg2L3hlbi9NYWtlZmlsZQppbmRleCAzZDhkZjk4Li4yYmEyZDE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vTWFrZWZpbGUKKysrIGIvYXJjaC94ODYveGVuL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAogb2JqLXkJCTo9IGVubGlnaHRlbi5vIHNldHVwLm8gbXVsdGljYWxscy5vIG1tdS5vIFwKLQkJCXRpbWUubyBtYW5hZ2UubyB4ZW4tYXNtLm8gZ3JhbnQtdGFibGUubworCQkJdGltZS5vIHhlbi1hc20ubyBncmFudC10YWJsZS5vIHN1c3BlbmQubwogCiBvYmotJChDT05GSUdfU01QKQkrPSBzbXAubwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jCmluZGV4IGM4YTU2ZTQuLmRjZDRlNTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9yZWJvb3QuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgogCiAjaW5jbHVkZSAieGVuLW9wcy5oIgogI2luY2x1ZGUgIm1tdS5oIgpAQCAtNzUsMTMgKzc2LDEzIEBACiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fc3RhcnRfaW5mbyk7CiAKLXN0YXRpYyAvKiBfX2luaXRkYXRhICovIHN0cnVjdCBzaGFyZWRfaW5mbyBkdW1teV9zaGFyZWRfaW5mbzsKK3N0cnVjdCBzaGFyZWRfaW5mbyB4ZW5fZHVtbXlfc2hhcmVkX2luZm87CiAKIC8qCiAgKiBQb2ludCBhdCBzb21lIGVtcHR5IG1lbW9yeSB0byBzdGFydCB3aXRoLiBXZSBtYXAgdGhlIHJlYWwgc2hhcmVkX2luZm8KICAqIHBhZ2UgYXMgc29vbiBhcyBmaXhtYXAgaXMgdXAgYW5kIHJ1bm5pbmcuCiAgKi8KLXN0cnVjdCBzaGFyZWRfaW5mbyAqSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9ICh2b2lkICopJmR1bW15X3NoYXJlZF9pbmZvOworc3RydWN0IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gKHZvaWQgKikmeGVuX2R1bW15X3NoYXJlZF9pbmZvOwogCiAvKgogICogRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB2Y3B1IGluZm8gcGxhY2VtZW50IGlzIGF2YWlsYWJsZSBvbiBhbGwKQEAgLTk4LDEzICs5OSwxMyBAQAogICovCiBzdGF0aWMgaW50IGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCA9IDE7CiAKLXN0YXRpYyB2b2lkIF9faW5pdCB4ZW5fdmNwdV9zZXR1cChpbnQgY3B1KQorc3RhdGljIHZvaWQgeGVuX3ZjcHVfc2V0dXAoaW50IGNwdSkKIHsKIAlzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl92Y3B1X2luZm8gaW5mbzsKIAlpbnQgZXJyOwogCXN0cnVjdCB2Y3B1X2luZm8gKnZjcHVwOwogCi0JQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJmR1bW15X3NoYXJlZF9pbmZvKTsKKwlCVUdfT04oSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9PSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvKTsKIAlwZXJfY3B1KHhlbl92Y3B1LCBjcHUpID0gJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1tjcHVdOwogCiAJaWYgKCFoYXZlX3ZjcHVfaW5mb19wbGFjZW1lbnQpCkBAIC0xMzYsMTEgKzEzNyw0MSBAQAogCX0KIH0KIAorLyoKKyAqIE9uIHJlc3RvcmUsIHNldCB0aGUgdmNwdSBwbGFjZW1lbnQgdXAgYWdhaW4uCisgKiBJZiBpdCBmYWlscywgdGhlbiB3ZSdyZSBpbiBhIGJhZCBzdGF0ZSwgc2luY2UKKyAqIHdlIGNhbid0IGJhY2sgb3V0IGZyb20gdXNpbmcgaXQuLi4KKyAqLwordm9pZCB4ZW5fdmNwdV9yZXN0b3JlKHZvaWQpCit7CisJaWYgKGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCkgeworCQlpbnQgY3B1OworCisJCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCQlib29sIG90aGVyX2NwdSA9IChjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfZG93biwgY3B1LCBOVUxMKSkKKwkJCQlCVUcoKTsKKworCQkJeGVuX3ZjcHVfc2V0dXAoY3B1KTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfdXAsIGNwdSwgTlVMTCkpCisJCQkJQlVHKCk7CisJCX0KKworCQlCVUdfT04oIWhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2Jhbm5lcih2b2lkKQogewogCXByaW50ayhLRVJOX0lORk8gIkJvb3RpbmcgcGFyYXZpcnR1YWxpemVkIGtlcm5lbCBvbiAlc1xuIiwKIAkgICAgICAgcHZfaW5mby5uYW1lKTsKLQlwcmludGsoS0VSTl9JTkZPICJIeXBlcnZpc29yIHNpZ25hdHVyZTogJXNcbiIsIHhlbl9zdGFydF9pbmZvLT5tYWdpYyk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSHlwZXJ2aXNvciBzaWduYXR1cmU6ICVzJXNcbiIsCisJICAgICAgIHhlbl9zdGFydF9pbmZvLT5tYWdpYywKKwkgICAgICAgeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSA/ICIgKHByZXNlcnZlLUFEKSIgOiAiIik7CiB9CiAKIHN0YXRpYyB2b2lkIHhlbl9jcHVpZCh1bnNpZ25lZCBpbnQgKmF4LCB1bnNpZ25lZCBpbnQgKmJ4LApAQCAtMjM1LDEzICsyNjYsMTMgQEAKIHsKIAlzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1OwogCi0JLyogVGhlcmUncyBhIG9uZSBpbnN0cnVjdGlvbiBwcmVlbXB0IHdpbmRvdyBoZXJlLiAgV2UgbmVlZCB0bwotCSAgIG1ha2Ugc3VyZSB3ZSdyZSBkb24ndCBzd2l0Y2ggQ1BVcyBiZXR3ZWVuIGdldHRpbmcgdGhlIHZjcHUKLQkgICBwb2ludGVyIGFuZCB1cGRhdGluZyB0aGUgbWFzay4gKi8KLQlwcmVlbXB0X2Rpc2FibGUoKTsKKwkvKiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGJlaW5nIHByZWVtcHRlZCBoZXJlLCBzaW5jZQorCSAgIGVpdGhlciBhKSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgc28gbm8gcHJlZW1wdGlvbiwgb3IgYikKKwkgICB0aGUgY2FsbGVyIGlzIGNvbmZ1c2VkIGFuZCBpcyB0cnlpbmcgdG8gcmUtZW5hYmxlIGludGVycnVwdHMKKwkgICBvbiBhbiBpbmRldGVybWluYXRlIHByb2Nlc3Nvci4gKi8KKwogCXZjcHUgPSB4ODZfcmVhZF9wZXJjcHUoeGVuX3ZjcHUpOwogCXZjcHUtPmV2dGNobl91cGNhbGxfbWFzayA9IDA7Ci0JcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOwogCiAJLyogRG9lc24ndCBtYXR0ZXIgaWYgd2UgZ2V0IHByZWVtcHRlZCBoZXJlLCBiZWNhdXNlIGFueQogCSAgIHBlbmRpbmcgZXZlbnQgd2lsbCBnZXQgZGVhbHQgd2l0aCBhbnl3YXkuICovCkBAIC0yNTQsNyArMjg1LDcgQEAKIHN0YXRpYyB2b2lkIHhlbl9zYWZlX2hhbHQodm9pZCkKIHsKIAkvKiBCbG9ja2luZyBpbmNsdWRlcyBhbiBpbXBsaWNpdCBsb2NhbF9pcnFfZW5hYmxlKCkuICovCi0JaWYgKEhZUEVSVklTT1Jfc2NoZWRfb3AoU0NIRURPUF9ibG9jaywgMCkgIT0gMCkKKwlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX2Jsb2NrLCBOVUxMKSAhPSAwKQogCQlCVUcoKTsKIH0KIApAQCAtNjA3LDYgKzYzOCwzMCBAQAogCXhlbl9tY19pc3N1ZShQQVJBVklSVF9MQVpZX01NVSk7CiB9CiAKK3N0YXRpYyB2b2lkIHhlbl9jbHRzKHZvaWQpCit7CisJc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7CisKKwltY3MgPSB4ZW5fbWNfZW50cnkoMCk7CisKKwlNVUxUSV9mcHVfdGFza3N3aXRjaChtY3MubWMsIDApOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfQ1BVKTsKK30KKworc3RhdGljIHZvaWQgeGVuX3dyaXRlX2NyMCh1bnNpZ25lZCBsb25nIGNyMCkKK3sKKwlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIG1jczsKKworCS8qIE9ubHkgcGF5IGF0dGVudGlvbiB0byBjcjAuVFM7IGV2ZXJ5dGhpbmcgZWxzZSBpcworCSAgIGlnbm9yZWQuICovCisJbWNzID0geGVuX21jX2VudHJ5KDApOworCisJTVVMVElfZnB1X3Rhc2tzd2l0Y2gobWNzLm1jLCAoY3IwICYgWDg2X0NSMF9UUykgIT0gMCk7CisKKwl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9DUFUpOworfQorCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3IyKHVuc2lnbmVkIGxvbmcgY3IyKQogewogCXg4Nl9yZWFkX3BlcmNwdSh4ZW5fdmNwdSktPmFyY2guY3IyID0gY3IyOwpAQCAtNjI0LDggKzY3OSwxMCBAQAogCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3I0KHVuc2lnbmVkIGxvbmcgY3I0KQogewotCS8qIEp1c3QgaWdub3JlIGNyNCBjaGFuZ2VzOyBYZW4gZG9lc24ndCBhbGxvdyB1cyB0byBkbwotCSAgIGFueXRoaW5nIGFueXdheS4gKi8KKwljcjQgJj0gflg4Nl9DUjRfUEdFOworCWNyNCAmPSB+WDg2X0NSNF9QU0U7CisKKwluYXRpdmVfd3JpdGVfY3I0KGNyNCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHhlbl9yZWFkX2NyMyh2b2lkKQpAQCAtNzg1LDM4ICs4NDIsMzUgQEAKIHN0YXRpYyBfX2luaXQgdm9pZCB4ZW5fcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF90ICpiYXNlKQogewogCXBnZF90ICp4ZW5fcGdkID0gKHBnZF90ICopeGVuX3N0YXJ0X2luZm8tPnB0X2Jhc2U7CisJaW50IGk7CiAKIAkvKiBzcGVjaWFsIHNldF9wdGUgZm9yIHBhZ2V0YWJsZSBpbml0aWFsaXphdGlvbiAqLwogCXB2X21tdV9vcHMuc2V0X3B0ZSA9IHhlbl9zZXRfcHRlX2luaXQ7CiAKIAlpbml0X21tLnBnZCA9IGJhc2U7CiAJLyoKLQkgKiBjb3B5IHRvcC1sZXZlbCBvZiBYZW4tc3VwcGxpZWQgcGFnZXRhYmxlIGludG8gcGxhY2UuCSBGb3IKLQkgKiAhUEFFIHdlIGNhbiB1c2UgdGhpcyBhcy1pcywgYnV0IGZvciBQQUUgaXQgaXMgYSBzdGFuZC1pbgotCSAqIHdoaWxlIHdlIGNvcHkgdGhlIHBtZCBwYWdlcy4KKwkgKiBjb3B5IHRvcC1sZXZlbCBvZiBYZW4tc3VwcGxpZWQgcGFnZXRhYmxlIGludG8gcGxhY2UuICBUaGlzCisJICogaXMgYSBzdGFuZC1pbiB3aGlsZSB3ZSBjb3B5IHRoZSBwbWQgcGFnZXMuCiAJICovCiAJbWVtY3B5KGJhc2UsIHhlbl9wZ2QsIFBUUlNfUEVSX1BHRCAqIHNpemVvZihwZ2RfdCkpOwogCi0JaWYgKFBUUlNfUEVSX1BNRCA+IDEpIHsKLQkJaW50IGk7Ci0JCS8qCi0JCSAqIEZvciBQQUUsIG5lZWQgdG8gYWxsb2NhdGUgbmV3IHBtZHMsIHJhdGhlciB0aGFuCi0JCSAqIHNoYXJlIFhlbidzLCBzaW5jZSBYZW4gZG9lc24ndCBsaWtlIHBtZCdzIGJlaW5nCi0JCSAqIHNoYXJlZCBiZXR3ZWVuIGFkZHJlc3Mgc3BhY2VzLgotCQkgKi8KLQkJZm9yIChpID0gMDsgaSA8IFBUUlNfUEVSX1BHRDsgaSsrKSB7Ci0JCQlpZiAocGdkX3ZhbF9tYSh4ZW5fcGdkW2ldKSAmIF9QQUdFX1BSRVNFTlQpIHsKLQkJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKKwkvKgorCSAqIEZvciBQQUUsIG5lZWQgdG8gYWxsb2NhdGUgbmV3IHBtZHMsIHJhdGhlciB0aGFuCisJICogc2hhcmUgWGVuJ3MsIHNpbmNlIFhlbiBkb2Vzbid0IGxpa2UgcG1kJ3MgYmVpbmcKKwkgKiBzaGFyZWQgYmV0d2VlbiBhZGRyZXNzIHNwYWNlcy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUFRSU19QRVJfUEdEOyBpKyspIHsKKwkJaWYgKHBnZF92YWxfbWEoeGVuX3BnZFtpXSkgJiBfUEFHRV9QUkVTRU5UKSB7CisJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKIAotCQkJCW1lbWNweShwbWQsICh2b2lkICopcGdkX3BhZ2VfdmFkZHIoeGVuX3BnZFtpXSksCi0JCQkJICAgICAgIFBBR0VfU0laRSk7CisJCQltZW1jcHkocG1kLCAodm9pZCAqKXBnZF9wYWdlX3ZhZGRyKHhlbl9wZ2RbaV0pLAorCQkJICAgICAgIFBBR0VfU0laRSk7CiAKLQkJCQltYWtlX2xvd21lbV9wYWdlX3JlYWRvbmx5KHBtZCk7CisJCQltYWtlX2xvd21lbV9wYWdlX3JlYWRvbmx5KHBtZCk7CiAKLQkJCQlzZXRfcGdkKCZiYXNlW2ldLCBfX3BnZCgxICsgX19wYShwbWQpKSk7Ci0JCQl9IGVsc2UKLQkJCQlwZ2RfY2xlYXIoJmJhc2VbaV0pOwotCQl9CisJCQlzZXRfcGdkKCZiYXNlW2ldLCBfX3BnZCgxICsgX19wYShwbWQpKSk7CisJCX0gZWxzZQorCQkJcGdkX2NsZWFyKCZiYXNlW2ldKTsKIAl9CiAKIAkvKiBtYWtlIHN1cmUgemVyb19wYWdlIGlzIG1hcHBlZCBSTyBzbyB3ZSBjYW4gdXNlIGl0IGluIHBhZ2V0YWJsZXMgKi8KQEAgLTgzNCw3ICs4ODgsNyBAQAogCQkJICBQRk5fRE9XTihfX3BhKHhlbl9zdGFydF9pbmZvLT5wdF9iYXNlKSkpOwogfQogCi1zdGF0aWMgX19pbml0IHZvaWQgc2V0dXBfc2hhcmVkX2luZm8odm9pZCkKK3ZvaWQgeGVuX3NldHVwX3NoYXJlZF9pbmZvKHZvaWQpCiB7CiAJaWYgKCF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkgewogCQl1bnNpZ25lZCBsb25nIGFkZHIgPSBmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCk7CkBAIC04NTcsNiArOTExLDggQEAKIAkvKiBJbiBVUCB0aGlzIGlzIGFzIGdvb2QgYSBwbGFjZSBhcyBhbnkgdG8gc2V0IHVwIHNoYXJlZCBpbmZvICovCiAJeGVuX3NldHVwX3ZjcHVfaW5mb19wbGFjZW1lbnQoKTsKICNlbmRpZgorCisJeGVuX3NldHVwX21mbl9saXN0X2xpc3QoKTsKIH0KIAogc3RhdGljIF9faW5pdCB2b2lkIHhlbl9wYWdldGFibGVfc2V0dXBfZG9uZShwZ2RfdCAqYmFzZSkKQEAgLTg2OSwyNSArOTI1LDIzIEBACiAJcHZfbW11X29wcy5yZWxlYXNlX3BtZCA9IHhlbl9yZWxlYXNlX3BtZDsKIAlwdl9tbXVfb3BzLnNldF9wdGUgPSB4ZW5fc2V0X3B0ZTsKIAotCXNldHVwX3NoYXJlZF9pbmZvKCk7CisJeGVuX3NldHVwX3NoYXJlZF9pbmZvKCk7CiAKIAkvKiBBY3R1YWxseSBwaW4gdGhlIHBhZ2V0YWJsZSBkb3duLCBidXQgd2UgY2FuJ3Qgc2V0IFBHX3Bpbm5lZAogCSAgIHlldCBiZWNhdXNlIHRoZSBwYWdlIHN0cnVjdHVyZXMgZG9uJ3QgZXhpc3QgeWV0LiAqLwotCXsKLQkJdW5zaWduZWQgbGV2ZWw7CisJcGluX3BhZ2V0YWJsZV9wZm4oTU1VRVhUX1BJTl9MM19UQUJMRSwgUEZOX0RPV04oX19wYShiYXNlKSkpOworfQogCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLQkJbGV2ZWwgPSBNTVVFWFRfUElOX0wzX1RBQkxFOwotI2Vsc2UKLQkJbGV2ZWwgPSBNTVVFWFRfUElOX0wyX1RBQkxFOwotI2VuZGlmCitzdGF0aWMgX19pbml0IHZvaWQgeGVuX3Bvc3RfYWxsb2NhdG9yX2luaXQodm9pZCkKK3sKKwlwdl9tbXVfb3BzLnNldF9wbWQgPSB4ZW5fc2V0X3BtZDsKKwlwdl9tbXVfb3BzLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZDsKIAotCQlwaW5fcGFnZXRhYmxlX3BmbihsZXZlbCwgUEZOX0RPV04oX19wYShiYXNlKSkpOwotCX0KKwl4ZW5fbWFya19pbml0X21tX3Bpbm5lZCgpOwogfQogCiAvKiBUaGlzIGlzIGNhbGxlZCBvbmNlIHdlIGhhdmUgdGhlIGNwdV9wb3NzaWJsZV9tYXAgKi8KLXZvaWQgX19pbml0IHhlbl9zZXR1cF92Y3B1X2luZm9fcGxhY2VtZW50KHZvaWQpCit2b2lkIHhlbl9zZXR1cF92Y3B1X2luZm9fcGxhY2VtZW50KHZvaWQpCiB7CiAJaW50IGNwdTsKIApAQCAtOTYwLDYgKzEwMTQsMzMgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCB4ZW5fc2V0X2ZpeG1hcCh1bnNpZ25lZCBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgcHJvdCkKK3sKKwlwdGVfdCBwdGU7CisKKwlwaHlzID4+PSBQQUdFX1NISUZUOworCisJc3dpdGNoIChpZHgpIHsKKwljYXNlIEZJWF9CVE1BUF9FTkQgLi4uIEZJWF9CVE1BUF9CRUdJTjoKKyNpZmRlZiBDT05GSUdfWDg2X0YwMEZfQlVHCisJY2FzZSBGSVhfRjAwRl9JRFQ6CisjZW5kaWYKKwljYXNlIEZJWF9XUF9URVNUOgorCWNhc2UgRklYX1ZEU086CisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJY2FzZSBGSVhfQVBJQ19CQVNFOgkvKiBtYXBzIGR1bW15IGxvY2FsIEFQSUMgKi8KKyNlbmRpZgorCQlwdGUgPSBwZm5fcHRlKHBoeXMsIHByb3QpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXB0ZSA9IG1mbl9wdGUocGh5cywgcHJvdCk7CisJCWJyZWFrOworCX0KKworCV9fbmF0aXZlX3NldF9maXhtYXAoaWR4LCBwdGUpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHB2X2luZm8geGVuX2luZm8gX19pbml0ZGF0YSA9IHsKIAkucGFyYXZpcnRfZW5hYmxlZCA9IDEsCiAJLnNoYXJlZF9rZXJuZWxfcG1kID0gMCwKQEAgLTk3Myw3ICsxMDU0LDcgQEAKIAkuYmFubmVyID0geGVuX2Jhbm5lciwKIAkubWVtb3J5X3NldHVwID0geGVuX21lbW9yeV9zZXR1cCwKIAkuYXJjaF9zZXR1cCA9IHhlbl9hcmNoX3NldHVwLAotCS5wb3N0X2FsbG9jYXRvcl9pbml0ID0geGVuX21hcmtfaW5pdF9tbV9waW5uZWQsCisJLnBvc3RfYWxsb2NhdG9yX2luaXQgPSB4ZW5fcG9zdF9hbGxvY2F0b3JfaW5pdCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHZfdGltZV9vcHMgeGVuX3RpbWVfb3BzIF9faW5pdGRhdGEgPSB7CkBAIC05ODEsNyArMTA2Miw3IEBACiAKIAkuc2V0X3dhbGxjbG9jayA9IHhlbl9zZXRfd2FsbGNsb2NrLAogCS5nZXRfd2FsbGNsb2NrID0geGVuX2dldF93YWxsY2xvY2ssCi0JLmdldF9jcHVfa2h6ID0geGVuX2NwdV9raHosCisJLmdldF90c2Nfa2h6ID0geGVuX3RzY19raHosCiAJLnNjaGVkX2Nsb2NrID0geGVuX3NjaGVkX2Nsb2NrLAogfTsKIApAQCAtOTkxLDEwICsxMDcyLDEwIEBACiAJLnNldF9kZWJ1Z3JlZyA9IHhlbl9zZXRfZGVidWdyZWcsCiAJLmdldF9kZWJ1Z3JlZyA9IHhlbl9nZXRfZGVidWdyZWcsCiAKLQkuY2x0cyA9IG5hdGl2ZV9jbHRzLAorCS5jbHRzID0geGVuX2NsdHMsCiAKIAkucmVhZF9jcjAgPSBuYXRpdmVfcmVhZF9jcjAsCi0JLndyaXRlX2NyMCA9IG5hdGl2ZV93cml0ZV9jcjAsCisJLndyaXRlX2NyMCA9IHhlbl93cml0ZV9jcjAsCiAKIAkucmVhZF9jcjQgPSBuYXRpdmVfcmVhZF9jcjQsCiAJLnJlYWRfY3I0X3NhZmUgPSBuYXRpdmVfcmVhZF9jcjRfc2FmZSwKQEAgLTEwMDgsNyArMTA4OSw3IEBACiAJLnJlYWRfcG1jID0gbmF0aXZlX3JlYWRfcG1jLAogCiAJLmlyZXQgPSB4ZW5faXJldCwKLQkuaXJxX2VuYWJsZV9zeXNjYWxsX3JldCA9IHhlbl9zeXNleGl0LAorCS5pcnFfZW5hYmxlX3N5c2V4aXQgPSB4ZW5fc3lzZXhpdCwKIAogCS5sb2FkX3RyX2Rlc2MgPSBwYXJhdmlydF9ub3AsCiAJLnNldF9sZHQgPSB4ZW5fc2V0X2xkdCwKQEAgLTEwNDIsNiArMTEyMyw5IEBACiAJLmlycV9lbmFibGUgPSB4ZW5faXJxX2VuYWJsZSwKIAkuc2FmZV9oYWx0ID0geGVuX3NhZmVfaGFsdCwKIAkuaGFsdCA9IHhlbl9oYWx0LAorI2lmZGVmIENPTkZJR19YODZfNjQKKwkuYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSA9IHBhcmF2aXJ0X25vcCwKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwdl9hcGljX29wcyB4ZW5fYXBpY19vcHMgX19pbml0ZGF0YSA9IHsKQEAgLTEwNzMsNiArMTE1Nyw5IEBACiAJLnB0ZV91cGRhdGUgPSBwYXJhdmlydF9ub3AsCiAJLnB0ZV91cGRhdGVfZGVmZXIgPSBwYXJhdmlydF9ub3AsCiAKKwkucGdkX2FsbG9jID0gX19wYXJhdmlydF9wZ2RfYWxsb2MsCisJLnBnZF9mcmVlID0gcGFyYXZpcnRfbm9wLAorCiAJLmFsbG9jX3B0ZSA9IHhlbl9hbGxvY19wdGVfaW5pdCwKIAkucmVsZWFzZV9wdGUgPSB4ZW5fcmVsZWFzZV9wdGVfaW5pdCwKIAkuYWxsb2NfcG1kID0geGVuX2FsbG9jX3B0ZV9pbml0LApAQCAtMTA4NSwyNCArMTE3MiwyNiBAQAogCiAJLnNldF9wdGUgPSBOVUxMLAkvKiBzZWUgeGVuX3BhZ2V0YWJsZV9zZXR1cF8qICovCiAJLnNldF9wdGVfYXQgPSB4ZW5fc2V0X3B0ZV9hdCwKLQkuc2V0X3BtZCA9IHhlbl9zZXRfcG1kLAorCS5zZXRfcG1kID0geGVuX3NldF9wbWRfaHlwZXIsCisKKwkucHRlcF9tb2RpZnlfcHJvdF9zdGFydCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkucHRlcF9tb2RpZnlfcHJvdF9jb21taXQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAogCiAJLnB0ZV92YWwgPSB4ZW5fcHRlX3ZhbCwKKwkucHRlX2ZsYWdzID0gbmF0aXZlX3B0ZV92YWwsCiAJLnBnZF92YWwgPSB4ZW5fcGdkX3ZhbCwKIAogCS5tYWtlX3B0ZSA9IHhlbl9tYWtlX3B0ZSwKIAkubWFrZV9wZ2QgPSB4ZW5fbWFrZV9wZ2QsCiAKLSNpZmRlZiBDT05GSUdfWDg2X1BBRQogCS5zZXRfcHRlX2F0b21pYyA9IHhlbl9zZXRfcHRlX2F0b21pYywKIAkuc2V0X3B0ZV9wcmVzZW50ID0geGVuX3NldF9wdGVfYXQsCi0JLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZCwKKwkuc2V0X3B1ZCA9IHhlbl9zZXRfcHVkX2h5cGVyLAogCS5wdGVfY2xlYXIgPSB4ZW5fcHRlX2NsZWFyLAogCS5wbWRfY2xlYXIgPSB4ZW5fcG1kX2NsZWFyLAogCiAJLm1ha2VfcG1kID0geGVuX21ha2VfcG1kLAogCS5wbWRfdmFsID0geGVuX3BtZF92YWwsCi0jZW5kaWYJLyogUEFFICovCiAKIAkuYWN0aXZhdGVfbW0gPSB4ZW5fYWN0aXZhdGVfbW0sCiAJLmR1cF9tbWFwID0geGVuX2R1cF9tbWFwLApAQCAtMTExMiw2ICsxMjAxLDggQEAKIAkJLmVudGVyID0gcGFyYXZpcnRfZW50ZXJfbGF6eV9tbXUsCiAJCS5sZWF2ZSA9IHhlbl9sZWF2ZV9sYXp5LAogCX0sCisKKwkuc2V0X2ZpeG1hcCA9IHhlbl9zZXRfZml4bWFwLAogfTsKIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTExMjksMTEgKzEyMjAsMTMgQEAKIAogc3RhdGljIHZvaWQgeGVuX3JlYm9vdChpbnQgcmVhc29uKQogeworCXN0cnVjdCBzY2hlZF9zaHV0ZG93biByID0geyAucmVhc29uID0gcmVhc29uIH07CisKICNpZmRlZiBDT05GSUdfU01QCiAJc21wX3NlbmRfc3RvcCgpOwogI2VuZGlmCiAKLQlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX3NodXRkb3duLCByZWFzb24pKQorCWlmIChIWVBFUlZJU09SX3NjaGVkX29wKFNDSEVET1Bfc2h1dGRvd24sICZyKSkKIAkJQlVHKCk7CiB9CiAKQEAgLTExODgsNiArMTI4MSw4IEBACiAKIAlCVUdfT04obWVtY21wKHhlbl9zdGFydF9pbmZvLT5tYWdpYywgInhlbi0zIiwgNSkgIT0gMCk7CiAKKwl4ZW5fc2V0dXBfZmVhdHVyZXMoKTsKKwogCS8qIEluc3RhbGwgWGVuIHBhcmF2aXJ0IG9wcyAqLwogCXB2X2luZm8gPSB4ZW5faW5mbzsKIAlwdl9pbml0X29wcyA9IHhlbl9pbml0X29wczsKQEAgLTExOTcsMjEgKzEyOTIsMjYgQEAKIAlwdl9hcGljX29wcyA9IHhlbl9hcGljX29wczsKIAlwdl9tbXVfb3BzID0geGVuX21tdV9vcHM7CiAKKwlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSkgeworCQlwdl9tbXVfb3BzLnB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQgPSB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9zdGFydDsKKwkJcHZfbW11X29wcy5wdGVwX21vZGlmeV9wcm90X2NvbW1pdCA9IHhlbl9wdGVwX21vZGlmeV9wcm90X2NvbW1pdDsKKwl9CisKIAltYWNoaW5lX29wcyA9IHhlbl9tYWNoaW5lX29wczsKIAogI2lmZGVmIENPTkZJR19TTVAKIAlzbXBfb3BzID0geGVuX3NtcF9vcHM7CiAjZW5kaWYKIAotCXhlbl9zZXR1cF9mZWF0dXJlcygpOwotCiAJLyogR2V0IG1mbiBsaXN0ICovCiAJaWYgKCF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKLQkJcGh5c190b19tYWNoaW5lX21hcHBpbmcgPSAodW5zaWduZWQgbG9uZyAqKXhlbl9zdGFydF9pbmZvLT5tZm5fbGlzdDsKKwkJeGVuX2J1aWxkX2R5bmFtaWNfcGh5c190b19tYWNoaW5lKCk7CiAKIAlwZ2QgPSAocGdkX3QgKil4ZW5fc3RhcnRfaW5mby0+cHRfYmFzZTsKIAorCWluaXRfcGdfdGFibGVzX3N0YXJ0ID0gX19wYShwZ2QpOwogCWluaXRfcGdfdGFibGVzX2VuZCA9IF9fcGEocGdkKSArIHhlbl9zdGFydF9pbmZvLT5ucl9wdF9mcmFtZXMqUEFHRV9TSVpFOworCW1heF9wZm5fbWFwcGVkID0gKGluaXRfcGdfdGFibGVzX2VuZCArIDUxMioxMDI0KSA+PiBQQUdFX1NISUZUOwogCiAJaW5pdF9tbS5wZ2QgPSBwZ2Q7IC8qIHVzZSB0aGUgWGVuIHBhZ2V0YWJsZXMgdG8gc3RhcnQgKi8KIApAQCAtMTIyOCw2ICsxMzI4LDExIEBACiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCkpCiAJCXB2X2luZm8ua2VybmVsX3JwbCA9IDA7CiAKKwkvKiBQcmV2ZW50IHVud2FudGVkIGJpdHMgZnJvbSBiZWluZyBzZXQgaW4gUFRFcy4gKi8KKwlfX3N1cHBvcnRlZF9wdGVfbWFzayAmPSB+X1BBR0VfR0xPQkFMOworCWlmICghaXNfaW5pdGlhbF94ZW5kb21haW4oKSkKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfihfUEFHRV9QV1QgfCBfUEFHRV9QQ0QpOworCiAJLyogc2V0IHRoZSBsaW1pdCBvZiBvdXIgYWRkcmVzcyBzcGFjZSAqLwogCXhlbl9yZXNlcnZlX3RvcCgpOwogCkBAIC0xMjQyLDkgKzEzNDcsMTIgQEAKIAkJPyBfX3BhKHhlbl9zdGFydF9pbmZvLT5tb2Rfc3RhcnQpIDogMDsKIAlib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplID0geGVuX3N0YXJ0X2luZm8tPm1vZF9sZW47CiAKLQlpZiAoIWlzX2luaXRpYWxfeGVuZG9tYWluKCkpCisJaWYgKCFpc19pbml0aWFsX3hlbmRvbWFpbigpKSB7CisJCWFkZF9wcmVmZXJyZWRfY29uc29sZSgieGVuYm9vdCIsIDAsIE5VTEwpOworCQlhZGRfcHJlZmVycmVkX2NvbnNvbGUoInR0eSIsIDAsIE5VTEwpOwogCQlhZGRfcHJlZmVycmVkX2NvbnNvbGUoImh2YyIsIDAsIE5VTEwpOworCX0KIAogCS8qIFN0YXJ0IHRoZSB3b3JsZCAqLwotCXN0YXJ0X2tlcm5lbCgpOworCWkzODZfc3RhcnRfa2VybmVsKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbWFuYWdlLmMgYi9hcmNoL3g4Ni94ZW4vbWFuYWdlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhN2FmOWUuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYveGVuL21hbmFnZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLS8qCi0gKiBIYW5kbGUgZXh0ZXJuIHJlcXVlc3RzIGZvciBzaHV0ZG93biwgcmVib290IGFuZCBzeXNycQotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVib290Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KLQotI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KLQotI2RlZmluZSBTSFVURE9XTl9JTlZBTElEICAtMQotI2RlZmluZSBTSFVURE9XTl9QT1dFUk9GRiAgMAotI2RlZmluZSBTSFVURE9XTl9TVVNQRU5EICAgMgotLyogQ29kZSAzIGlzIFNIVVRET1dOX0NSQVNILCB3aGljaCB3ZSBkb24ndCB1c2UgYmVjYXVzZSB0aGUgZG9tYWluIGNhbiBvbmx5Ci0gKiByZXBvcnQgYSBjcmFzaCwgbm90IGJlIGluc3RydWN0ZWQgdG8gY3Jhc2ghCi0gKiBIQUxUIGlzIHRoZSBzYW1lIGFzIFBPV0VST0ZGLCBhcyBmYXIgYXMgd2UncmUgY29uY2VybmVkLiAgVGhlIHRvb2xzIHVzZQotICogdGhlIGRpc3RpbmN0aW9uIHdoZW4gd2UgcmV0dXJuIHRoZSByZWFzb24gY29kZSB0byB0aGVtLgotICovCi0jZGVmaW5lIFNIVVRET1dOX0hBTFQgICAgICA0Ci0KLS8qIElnbm9yZSBtdWx0aXBsZSBzaHV0ZG93biByZXF1ZXN0cy4gKi8KLXN0YXRpYyBpbnQgc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX0lOVkFMSUQ7Ci0KLXN0YXRpYyB2b2lkIHNodXRkb3duX2hhbmRsZXIoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gsCi0JCQkgICAgIGNvbnN0IGNoYXIgKip2ZWMsIHVuc2lnbmVkIGludCBsZW4pCi17Ci0JY2hhciAqc3RyOwotCXN0cnVjdCB4ZW5idXNfdHJhbnNhY3Rpb24geGJ0OwotCWludCBlcnI7Ci0KLQlpZiAoc2h1dHRpbmdfZG93biAhPSBTSFVURE9XTl9JTlZBTElEKQotCQlyZXR1cm47Ci0KLSBhZ2FpbjoKLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fc3RhcnQoJnhidCk7Ci0JaWYgKGVycikKLQkJcmV0dXJuOwotCi0Jc3RyID0gKGNoYXIgKil4ZW5idXNfcmVhZCh4YnQsICJjb250cm9sIiwgInNodXRkb3duIiwgTlVMTCk7Ci0JLyogSWdub3JlIHJlYWQgZXJyb3JzIGFuZCBlbXB0eSByZWFkcy4gKi8KLQlpZiAoWEVOQlVTX0lTX0VSUl9SRUFEKHN0cikpIHsKLQkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOwotCQlyZXR1cm47Ci0JfQotCi0JeGVuYnVzX3dyaXRlKHhidCwgImNvbnRyb2wiLCAic2h1dGRvd24iLCAiIik7Ci0KLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhidCwgMCk7Ci0JaWYgKGVyciA9PSAtRUFHQUlOKSB7Ci0JCWtmcmVlKHN0cik7Ci0JCWdvdG8gYWdhaW47Ci0JfQotCi0JaWYgKHN0cmNtcChzdHIsICJwb3dlcm9mZiIpID09IDAgfHwKLQkgICAgc3RyY21wKHN0ciwgImhhbHQiKSA9PSAwKQotCQlvcmRlcmx5X3Bvd2Vyb2ZmKGZhbHNlKTsKLQllbHNlIGlmIChzdHJjbXAoc3RyLCAicmVib290IikgPT0gMCkKLQkJY3RybF9hbHRfZGVsKCk7Ci0JZWxzZSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIklnbm9yaW5nIHNodXRkb3duIHJlcXVlc3Q6ICVzXG4iLCBzdHIpOwotCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKLQl9Ci0KLQlrZnJlZShzdHIpOwotfQotCi1zdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLCBjb25zdCBjaGFyICoqdmVjLAotCQkJICB1bnNpZ25lZCBpbnQgbGVuKQotewotCWNoYXIgc3lzcnFfa2V5ID0gJ1wwJzsKLQlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKLQlpbnQgZXJyOwotCi0gYWdhaW46Ci0JZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOwotCWlmIChlcnIpCi0JCXJldHVybjsKLQlpZiAoIXhlbmJ1c19zY2FuZih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJnN5c3JxX2tleSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcmVhZCBzeXNycSBjb2RlIGluICIKLQkJICAgICAgICJjb250cm9sL3N5c3JxXG4iKTsKLQkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKHN5c3JxX2tleSAhPSAnXDAnKQotCQl4ZW5idXNfcHJpbnRmKHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMiLCAnXDAnKTsKLQotCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKLQlpZiAoZXJyID09IC1FQUdBSU4pCi0JCWdvdG8gYWdhaW47Ci0KLQlpZiAoc3lzcnFfa2V5ICE9ICdcMCcpCi0JCWhhbmRsZV9zeXNycShzeXNycV9rZXksIE5VTEwpOwotfQotCi1zdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzaHV0ZG93bl93YXRjaCA9IHsKLQkubm9kZSA9ICJjb250cm9sL3NodXRkb3duIiwKLQkuY2FsbGJhY2sgPSBzaHV0ZG93bl9oYW5kbGVyCi19OwotCi1zdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzeXNycV93YXRjaCA9IHsKLQkubm9kZSA9ICJjb250cm9sL3N5c3JxIiwKLQkuY2FsbGJhY2sgPSBzeXNycV9oYW5kbGVyCi19OwotCi1zdGF0aWMgaW50IHNldHVwX3NodXRkb3duX3dhdGNoZXIodm9pZCkKLXsKLQlpbnQgZXJyOwotCi0JZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzaHV0ZG93bl93YXRjaCk7Ci0JaWYgKGVycikgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc2h1dGRvd24gd2F0Y2hlclxuIik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzeXNycV93YXRjaCk7Ci0JaWYgKGVycikgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc3lzcnEgd2F0Y2hlclxuIik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc2h1dGRvd25fZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpub3RpZmllciwKLQkJCSAgdW5zaWduZWQgbG9uZyBldmVudCwKLQkJCSAgdm9pZCAqZGF0YSkKLXsKLQlzZXR1cF9zaHV0ZG93bl93YXRjaGVyKCk7Ci0JcmV0dXJuIE5PVElGWV9ET05FOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zaHV0ZG93bl9ldmVudCh2b2lkKQotewotCXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90aWZpZXIgPSB7Ci0JCS5ub3RpZmllcl9jYWxsID0gc2h1dGRvd25fZXZlbnQKLQl9OwotCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlmaWVyKCZ4ZW5zdG9yZV9ub3RpZmllcik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3Vic3lzX2luaXRjYWxsKHNldHVwX3NodXRkb3duX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tbXUuYyBiL2FyY2gveDg2L3hlbi9tbXUuYwppbmRleCAzNTI1ZWY1Li40MmIzYjllIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmMKKysrIGIvYXJjaC94ODYveGVuL21tdS5jCkBAIC01Niw2ICs1NiwxMzEgQEAKICNpbmNsdWRlICJtdWx0aWNhbGxzLmgiCiAjaW5jbHVkZSAibW11LmgiCiAKKyNkZWZpbmUgUDJNX0VOVFJJRVNfUEVSX1BBR0UJKFBBR0VfU0laRSAvIHNpemVvZih1bnNpZ25lZCBsb25nKSkKKyNkZWZpbmUgVE9QX0VOVFJJRVMJCShNQVhfRE9NQUlOX1BBR0VTIC8gUDJNX0VOVFJJRVNfUEVSX1BBR0UpCisKKy8qIFBsYWNlaG9sZGVyIGZvciBob2xlcyBpbiB0aGUgYWRkcmVzcyBzcGFjZSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX21pc3NpbmdbUDJNX0VOVFJJRVNfUEVSX1BBR0VdCisJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEucGFnZV9hbGlnbmVkIikpKSA9CisJCXsgWyAwIC4uLiBQMk1fRU5UUklFU19QRVJfUEFHRS0xIF0gPSB+MFVMIH07CisKKyAvKiBBcnJheSBvZiBwb2ludGVycyB0byBwYWdlcyBjb250YWluaW5nIHAybSBlbnRyaWVzICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyAqcDJtX3RvcFtUT1BfRU5UUklFU10KKwlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS5wYWdlX2FsaWduZWQiKSkpID0KKwkJeyBbIDAgLi4uIFRPUF9FTlRSSUVTIC0gMV0gPSAmcDJtX21pc3NpbmdbMF0gfTsKKworLyogQXJyYXlzIG9mIHAybSBhcnJheXMgZXhwcmVzc2VkIGluIG1mbnMgdXNlZCBmb3Igc2F2ZS9yZXN0b3JlICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdG9wX21mbltUT1BfRU5UUklFU10KKwlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHAybV90b3BfbWZuX2xpc3RbCisJCQlQQUdFX0FMSUdOKFRPUF9FTlRSSUVTIC8gUDJNX0VOVFJJRVNfUEVSX1BBR0UpXQorCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBwMm1fdG9wX2luZGV4KHVuc2lnbmVkIGxvbmcgcGZuKQoreworCUJVR19PTihwZm4gPj0gTUFYX0RPTUFJTl9QQUdFUyk7CisJcmV0dXJuIHBmbiAvIFAyTV9FTlRSSUVTX1BFUl9QQUdFOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHAybV9pbmRleCh1bnNpZ25lZCBsb25nIHBmbikKK3sKKwlyZXR1cm4gcGZuICUgUDJNX0VOVFJJRVNfUEVSX1BBR0U7Cit9CisKKy8qIEJ1aWxkIHRoZSBwYXJhbGxlbCBwMm1fdG9wX21mbiBzdHJ1Y3R1cmVzICovCit2b2lkIHhlbl9zZXR1cF9tZm5fbGlzdF9saXN0KHZvaWQpCit7CisJdW5zaWduZWQgcGZuLCBpZHg7CisKKwlmb3IocGZuID0gMDsgcGZuIDwgTUFYX0RPTUFJTl9QQUdFUzsgcGZuICs9IFAyTV9FTlRSSUVTX1BFUl9QQUdFKSB7CisJCXVuc2lnbmVkIHRvcGlkeCA9IHAybV90b3BfaW5kZXgocGZuKTsKKworCQlwMm1fdG9wX21mblt0b3BpZHhdID0gdmlydF90b19tZm4ocDJtX3RvcFt0b3BpZHhdKTsKKwl9CisKKwlmb3IoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShwMm1fdG9wX21mbl9saXN0KTsgaWR4KyspIHsKKwkJdW5zaWduZWQgdG9waWR4ID0gaWR4ICogUDJNX0VOVFJJRVNfUEVSX1BBR0U7CisJCXAybV90b3BfbWZuX2xpc3RbaWR4XSA9IHZpcnRfdG9fbWZuKCZwMm1fdG9wX21mblt0b3BpZHhdKTsKKwl9CisKKwlCVUdfT04oSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9PSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvKTsKKworCUhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucGZuX3RvX21mbl9mcmFtZV9saXN0X2xpc3QgPQorCQl2aXJ0X3RvX21mbihwMm1fdG9wX21mbl9saXN0KTsKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLm1heF9wZm4gPSB4ZW5fc3RhcnRfaW5mby0+bnJfcGFnZXM7Cit9CisKKy8qIFNldCB1cCBwMm1fdG9wIHRvIHBvaW50IHRvIHRoZSBkb21haW4tYnVpbGRlciBwcm92aWRlZCBwMm0gcGFnZXMgKi8KK3ZvaWQgX19pbml0IHhlbl9idWlsZF9keW5hbWljX3BoeXNfdG9fbWFjaGluZSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgKm1mbl9saXN0ID0gKHVuc2lnbmVkIGxvbmcgKil4ZW5fc3RhcnRfaW5mby0+bWZuX2xpc3Q7CisJdW5zaWduZWQgbG9uZyBtYXhfcGZuID0gbWluKE1BWF9ET01BSU5fUEFHRVMsIHhlbl9zdGFydF9pbmZvLT5ucl9wYWdlcyk7CisJdW5zaWduZWQgcGZuOworCisJZm9yKHBmbiA9IDA7IHBmbiA8IG1heF9wZm47IHBmbiArPSBQMk1fRU5UUklFU19QRVJfUEFHRSkgeworCQl1bnNpZ25lZCB0b3BpZHggPSBwMm1fdG9wX2luZGV4KHBmbik7CisKKwkJcDJtX3RvcFt0b3BpZHhdID0gJm1mbl9saXN0W3Bmbl07CisJfQorfQorCit1bnNpZ25lZCBsb25nIGdldF9waHlzX3RvX21hY2hpbmUodW5zaWduZWQgbG9uZyBwZm4pCit7CisJdW5zaWduZWQgdG9waWR4LCBpZHg7CisKKwlpZiAodW5saWtlbHkocGZuID49IE1BWF9ET01BSU5fUEFHRVMpKQorCQlyZXR1cm4gSU5WQUxJRF9QMk1fRU5UUlk7CisKKwl0b3BpZHggPSBwMm1fdG9wX2luZGV4KHBmbik7CisJaWR4ID0gcDJtX2luZGV4KHBmbik7CisJcmV0dXJuIHAybV90b3BbdG9waWR4XVtpZHhdOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3BoeXNfdG9fbWFjaGluZSk7CisKK3N0YXRpYyB2b2lkIGFsbG9jX3AybSh1bnNpZ25lZCBsb25nICoqcHAsIHVuc2lnbmVkIGxvbmcgKm1mbnApCit7CisJdW5zaWduZWQgbG9uZyAqcDsKKwl1bnNpZ25lZCBpOworCisJcCA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9OT0ZBSUwpOworCUJVR19PTihwID09IE5VTEwpOworCisJZm9yKGkgPSAwOyBpIDwgUDJNX0VOVFJJRVNfUEVSX1BBR0U7IGkrKykKKwkJcFtpXSA9IElOVkFMSURfUDJNX0VOVFJZOworCisJaWYgKGNtcHhjaGcocHAsIHAybV9taXNzaW5nLCBwKSAhPSBwMm1fbWlzc2luZykKKwkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXApOworCWVsc2UKKwkJKm1mbnAgPSB2aXJ0X3RvX21mbihwKTsKK30KKwordm9pZCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikKK3sKKwl1bnNpZ25lZCB0b3BpZHgsIGlkeDsKKworCWlmICh1bmxpa2VseSh4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkpIHsKKwkJQlVHX09OKHBmbiAhPSBtZm4gJiYgbWZuICE9IElOVkFMSURfUDJNX0VOVFJZKTsKKwkJcmV0dXJuOworCX0KKworCWlmICh1bmxpa2VseShwZm4gPj0gTUFYX0RPTUFJTl9QQUdFUykpIHsKKwkJQlVHX09OKG1mbiAhPSBJTlZBTElEX1AyTV9FTlRSWSk7CisJCXJldHVybjsKKwl9CisKKwl0b3BpZHggPSBwMm1fdG9wX2luZGV4KHBmbik7CisJaWYgKHAybV90b3BbdG9waWR4XSA9PSBwMm1fbWlzc2luZykgeworCQkvKiBubyBuZWVkIHRvIGFsbG9jYXRlIGEgcGFnZSB0byBzdG9yZSBhbiBpbnZhbGlkIGVudHJ5ICovCisJCWlmIChtZm4gPT0gSU5WQUxJRF9QMk1fRU5UUlkpCisJCQlyZXR1cm47CisJCWFsbG9jX3AybSgmcDJtX3RvcFt0b3BpZHhdLCAmcDJtX3RvcF9tZm5bdG9waWR4XSk7CisJfQorCisJaWR4ID0gcDJtX2luZGV4KHBmbik7CisJcDJtX3RvcFt0b3BpZHhdW2lkeF0gPSBtZm47Cit9CisKIHhtYWRkcl90IGFyYml0cmFyeV92aXJ0X3RvX21hY2hpbmUodW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewogCXVuc2lnbmVkIGludCBsZXZlbDsKQEAgLTk4LDI0ICsyMjMsNjAgQEAKIH0KIAogCi12b2lkIHhlbl9zZXRfcG1kKHBtZF90ICpwdHIsIHBtZF90IHZhbCkKK3N0YXRpYyBib29sIHBhZ2VfcGlubmVkKHZvaWQgKnB0cikKK3sKKwlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZpcnRfdG9fcGFnZShwdHIpOworCisJcmV0dXJuIFBhZ2VQaW5uZWQocGFnZSk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dGVuZF9tbXVfdXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlICp1cGRhdGUpCiB7CiAJc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7CiAJc3RydWN0IG1tdV91cGRhdGUgKnU7CiAKKwltY3MgPSB4ZW5fbWNfZXh0ZW5kX2FyZ3MoX19IWVBFUlZJU09SX21tdV91cGRhdGUsIHNpemVvZigqdSkpOworCisJaWYgKG1jcy5tYyAhPSBOVUxMKQorCQltY3MubWMtPmFyZ3NbMV0rKzsKKwllbHNlIHsKKwkJbWNzID0gX194ZW5fbWNfZW50cnkoc2l6ZW9mKCp1KSk7CisJCU1VTFRJX21tdV91cGRhdGUobWNzLm1jLCBtY3MuYXJncywgMSwgTlVMTCwgRE9NSURfU0VMRik7CisJfQorCisJdSA9IG1jcy5hcmdzOworCSp1ID0gKnVwZGF0ZTsKK30KKwordm9pZCB4ZW5fc2V0X3BtZF9oeXBlcihwbWRfdCAqcHRyLCBwbWRfdCB2YWwpCit7CisJc3RydWN0IG1tdV91cGRhdGUgdTsKKwogCXByZWVtcHRfZGlzYWJsZSgpOwogCi0JbWNzID0geGVuX21jX2VudHJ5KHNpemVvZigqdSkpOwotCXUgPSBtY3MuYXJnczsKLQl1LT5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKLQl1LT52YWwgPSBwbWRfdmFsX21hKHZhbCk7Ci0JTVVMVElfbW11X3VwZGF0ZShtY3MubWMsIHUsIDEsIE5VTEwsIERPTUlEX1NFTEYpOworCXhlbl9tY19iYXRjaCgpOworCisJdS5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKKwl1LnZhbCA9IHBtZF92YWxfbWEodmFsKTsKKwlleHRlbmRfbW11X3VwZGF0ZSgmdSk7CiAKIAl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9NTVUpOwogCiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAordm9pZCB4ZW5fc2V0X3BtZChwbWRfdCAqcHRyLCBwbWRfdCB2YWwpCit7CisJLyogSWYgcGFnZSBpcyBub3QgcGlubmVkLCB3ZSBjYW4ganVzdCB1cGRhdGUgdGhlIGVudHJ5CisJICAgZGlyZWN0bHkgKi8KKwlpZiAoIXBhZ2VfcGlubmVkKHB0cikpIHsKKwkJKnB0ciA9IHZhbDsKKwkJcmV0dXJuOworCX0KKworCXhlbl9zZXRfcG1kX2h5cGVyKHB0ciwgdmFsKTsKK30KKwogLyoKICAqIEFzc29jaWF0ZSBhIHZpcnR1YWwgcGFnZSBmcmFtZSB3aXRoIGEgZ2l2ZW4gcGh5c2ljYWwgcGFnZSBmcmFtZQogICogYW5kIHByb3RlY3Rpb24gZmxhZ3MgZm9yIHRoYXQgZnJhbWUuCkBAIC0xNzksNjggKzM0MCwxMDUgQEAKIAkJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAorcHRlX3QgeGVuX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCit7CisJLyogSnVzdCByZXR1cm4gdGhlIHB0ZSBhcy1pcy4gIFdlIHByZXNlcnZlIHRoZSBiaXRzIG9uIGNvbW1pdCAqLworCXJldHVybiAqcHRlcDsKK30KKwordm9pZCB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKK3sKKwlzdHJ1Y3QgbW11X3VwZGF0ZSB1OworCisJeGVuX21jX2JhdGNoKCk7CisKKwl1LnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdGVwKS5tYWRkciB8IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ7CisJdS52YWwgPSBwdGVfdmFsX21hKHB0ZSk7CisJZXh0ZW5kX21tdV91cGRhdGUoJnUpOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfTU1VKTsKK30KKworLyogQXNzdW1lIHB0ZXZhbF90IGlzIGVxdWl2YWxlbnQgdG8gYWxsIHRoZSBvdGhlciAqdmFsX3QgdHlwZXMuICovCitzdGF0aWMgcHRldmFsX3QgcHRlX21mbl90b19wZm4ocHRldmFsX3QgdmFsKQoreworCWlmICh2YWwgJiBfUEFHRV9QUkVTRU5UKSB7CisJCXVuc2lnbmVkIGxvbmcgbWZuID0gKHZhbCAmIFBURV9NQVNLKSA+PiBQQUdFX1NISUZUOworCQlwdGV2YWxfdCBmbGFncyA9IHZhbCAmIH5QVEVfTUFTSzsKKwkJdmFsID0gKChwdGV2YWxfdCltZm5fdG9fcGZuKG1mbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKKwl9CisKKwlyZXR1cm4gdmFsOworfQorCitzdGF0aWMgcHRldmFsX3QgcHRlX3Bmbl90b19tZm4ocHRldmFsX3QgdmFsKQoreworCWlmICh2YWwgJiBfUEFHRV9QUkVTRU5UKSB7CisJCXVuc2lnbmVkIGxvbmcgcGZuID0gKHZhbCAmIFBURV9NQVNLKSA+PiBQQUdFX1NISUZUOworCQlwdGV2YWxfdCBmbGFncyA9IHZhbCAmIH5QVEVfTUFTSzsKKwkJdmFsID0gKChwdGV2YWxfdClwZm5fdG9fbWZuKHBmbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKKwl9CisKKwlyZXR1cm4gdmFsOworfQorCiBwdGV2YWxfdCB4ZW5fcHRlX3ZhbChwdGVfdCBwdGUpCiB7Ci0JcHRldmFsX3QgcmV0ID0gcHRlLnB0ZTsKLQotCWlmIChyZXQgJiBfUEFHRV9QUkVTRU5UKQotCQlyZXQgPSBtYWNoaW5lX3RvX3BoeXMoWE1BRERSKHJldCkpLnBhZGRyIHwgX1BBR0VfUFJFU0VOVDsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIHB0ZV9tZm5fdG9fcGZuKHB0ZS5wdGUpOwogfQogCiBwZ2R2YWxfdCB4ZW5fcGdkX3ZhbChwZ2RfdCBwZ2QpCiB7Ci0JcGdkdmFsX3QgcmV0ID0gcGdkLnBnZDsKLQlpZiAocmV0ICYgX1BBR0VfUFJFU0VOVCkKLQkJcmV0ID0gbWFjaGluZV90b19waHlzKFhNQUREUihyZXQpKS5wYWRkciB8IF9QQUdFX1BSRVNFTlQ7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gcHRlX21mbl90b19wZm4ocGdkLnBnZCk7CiB9CiAKIHB0ZV90IHhlbl9tYWtlX3B0ZShwdGV2YWxfdCBwdGUpCiB7Ci0JaWYgKHB0ZSAmIF9QQUdFX1BSRVNFTlQpIHsKLQkJcHRlID0gcGh5c190b19tYWNoaW5lKFhQQUREUihwdGUpKS5tYWRkcjsKLQkJcHRlICY9IH4oX1BBR0VfUENEIHwgX1BBR0VfUFdUKTsKLQl9Ci0KLQlyZXR1cm4gKHB0ZV90KXsgLnB0ZSA9IHB0ZSB9OworCXB0ZSA9IHB0ZV9wZm5fdG9fbWZuKHB0ZSk7CisJcmV0dXJuIG5hdGl2ZV9tYWtlX3B0ZShwdGUpOwogfQogCiBwZ2RfdCB4ZW5fbWFrZV9wZ2QocGdkdmFsX3QgcGdkKQogewotCWlmIChwZ2QgJiBfUEFHRV9QUkVTRU5UKQotCQlwZ2QgPSBwaHlzX3RvX21hY2hpbmUoWFBBRERSKHBnZCkpLm1hZGRyOwotCi0JcmV0dXJuIChwZ2RfdCl7IHBnZCB9OworCXBnZCA9IHB0ZV9wZm5fdG9fbWZuKHBnZCk7CisJcmV0dXJuIG5hdGl2ZV9tYWtlX3BnZChwZ2QpOwogfQogCiBwbWR2YWxfdCB4ZW5fcG1kX3ZhbChwbWRfdCBwbWQpCiB7Ci0JcG1kdmFsX3QgcmV0ID0gbmF0aXZlX3BtZF92YWwocG1kKTsKLQlpZiAocmV0ICYgX1BBR0VfUFJFU0VOVCkKLQkJcmV0ID0gbWFjaGluZV90b19waHlzKFhNQUREUihyZXQpKS5wYWRkciB8IF9QQUdFX1BSRVNFTlQ7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gcHRlX21mbl90b19wZm4ocG1kLnBtZCk7CiB9Ci0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLXZvaWQgeGVuX3NldF9wdWQocHVkX3QgKnB0ciwgcHVkX3QgdmFsKQorCit2b2lkIHhlbl9zZXRfcHVkX2h5cGVyKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCkKIHsKLQlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIG1jczsKLQlzdHJ1Y3QgbW11X3VwZGF0ZSAqdTsKKwlzdHJ1Y3QgbW11X3VwZGF0ZSB1OwogCiAJcHJlZW1wdF9kaXNhYmxlKCk7CiAKLQltY3MgPSB4ZW5fbWNfZW50cnkoc2l6ZW9mKCp1KSk7Ci0JdSA9IG1jcy5hcmdzOwotCXUtPnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdHIpLm1hZGRyOwotCXUtPnZhbCA9IHB1ZF92YWxfbWEodmFsKTsKLQlNVUxUSV9tbXVfdXBkYXRlKG1jcy5tYywgdSwgMSwgTlVMTCwgRE9NSURfU0VMRik7CisJeGVuX21jX2JhdGNoKCk7CisKKwl1LnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdHIpLm1hZGRyOworCXUudmFsID0gcHVkX3ZhbF9tYSh2YWwpOworCWV4dGVuZF9tbXVfdXBkYXRlKCZ1KTsKIAogCXhlbl9tY19pc3N1ZShQQVJBVklSVF9MQVpZX01NVSk7CiAKIAlwcmVlbXB0X2VuYWJsZSgpOwogfQogCit2b2lkIHhlbl9zZXRfcHVkKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCkKK3sKKwkvKiBJZiBwYWdlIGlzIG5vdCBwaW5uZWQsIHdlIGNhbiBqdXN0IHVwZGF0ZSB0aGUgZW50cnkKKwkgICBkaXJlY3RseSAqLworCWlmICghcGFnZV9waW5uZWQocHRyKSkgeworCQkqcHRyID0gdmFsOworCQlyZXR1cm47CisJfQorCisJeGVuX3NldF9wdWRfaHlwZXIocHRyLCB2YWwpOworfQorCiB2b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCiB7CiAJcHRlcC0+cHRlX2hpZ2ggPSBwdGUucHRlX2hpZ2g7CkBAIC0yNjIsMjIgKzQ2MCwxNCBAQAogCiB2b2lkIHhlbl9wbWRfY2xlYXIocG1kX3QgKnBtZHApCiB7Ci0JeGVuX3NldF9wbWQocG1kcCwgX19wbWQoMCkpOworCXNldF9wbWQocG1kcCwgX19wbWQoMCkpOwogfQogCiBwbWRfdCB4ZW5fbWFrZV9wbWQocG1kdmFsX3QgcG1kKQogewotCWlmIChwbWQgJiBfUEFHRV9QUkVTRU5UKQotCQlwbWQgPSBwaHlzX3RvX21hY2hpbmUoWFBBRERSKHBtZCkpLm1hZGRyOwotCisJcG1kID0gcHRlX3Bmbl90b19tZm4ocG1kKTsKIAlyZXR1cm4gbmF0aXZlX21ha2VfcG1kKHBtZCk7CiB9Ci0jZWxzZSAgLyogIVBBRSAqLwotdm9pZCB4ZW5fc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQotewotCSpwdGVwID0gcHRlOwotfQotI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCiAKIC8qCiAgIChZZXQgYW5vdGhlcikgcGFnZXRhYmxlIHdhbGtlci4gIFRoaXMgb25lIGlzIGludGVuZGVkIGZvciBwaW5uaW5nIGEKQEAgLTQzMCw4ICs2MjAsNiBAQAogICAgcmVhZC1vbmx5LCBhbmQgY2FuIGJlIHBpbm5lZC4gKi8KIHZvaWQgeGVuX3BnZF9waW4ocGdkX3QgKnBnZCkKIHsKLQl1bnNpZ25lZCBsZXZlbDsKLQogCXhlbl9tY19iYXRjaCgpOwogCiAJaWYgKHBnZF93YWxrKHBnZCwgcGluX3BhZ2UsIFRBU0tfU0laRSkpIHsKQEAgLTQ0MSwxNyArNjI5LDMzIEBACiAJCXhlbl9tY19iYXRjaCgpOwogCX0KIAotI2lmZGVmIENPTkZJR19YODZfUEFFCi0JbGV2ZWwgPSBNTVVFWFRfUElOX0wzX1RBQkxFOwotI2Vsc2UKLQlsZXZlbCA9IE1NVUVYVF9QSU5fTDJfVEFCTEU7Ci0jZW5kaWYKLQotCXhlbl9kb19waW4obGV2ZWwsIFBGTl9ET1dOKF9fcGEocGdkKSkpOwotCisJeGVuX2RvX3BpbihNTVVFWFRfUElOX0wzX1RBQkxFLCBQRk5fRE9XTihfX3BhKHBnZCkpKTsKIAl4ZW5fbWNfaXNzdWUoMCk7CiB9CiAKKy8qCisgKiBPbiBzYXZlLCB3ZSBuZWVkIHRvIHBpbiBhbGwgcGFnZXRhYmxlcyB0byBtYWtlIHN1cmUgdGhleSBnZXQgdGhlaXIKKyAqIG1mbnMgdHVybmVkIGludG8gcGZucy4gIFNlYXJjaCB0aGUgbGlzdCBmb3IgYW55IHVucGlubmVkIHBnZHMgYW5kIHBpbgorICogdGhlbSAodW5waW5uZWQgcGdkcyBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHByb2JhYmx5IGJlY2F1c2UgdGhlCisgKiBwcm9jZXNzIGlzIHVuZGVyIGNvbnN0cnVjdGlvbiBvciBkZXN0cnVjdGlvbikuCisgKi8KK3ZvaWQgeGVuX21tX3Bpbl9hbGwodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBwYWdlICpwYWdlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhZ2UsICZwZ2RfbGlzdCwgbHJ1KSB7CisJCWlmICghUGFnZVBpbm5lZChwYWdlKSkgeworCQkJeGVuX3BnZF9waW4oKHBnZF90ICopcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCVNldFBhZ2VTYXZlUGlubmVkKHBhZ2UpOworCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKK30KKwogLyogVGhlIGluaXRfbW0gcGFnZXRhYmxlIGlzIHJlYWxseSBwaW5uZWQgYXMgc29vbiBhcyBpdHMgY3JlYXRlZCwgYnV0CiAgICB0aGF0J3MgYmVmb3JlIHdlIGhhdmUgcGFnZSBzdHJ1Y3R1cmVzIHRvIHN0b3JlIHRoZSBiaXRzLiAgU28gZG8gYWxsCiAgICB0aGUgYm9vay1rZWVwaW5nIG5vdy4gKi8KQEAgLTUwOSw2ICs3MTMsMjkgQEAKIAl4ZW5fbWNfaXNzdWUoMCk7CiB9CiAKKy8qCisgKiBPbiByZXN1bWUsIHVuZG8gYW55IHBpbm5pbmcgZG9uZSBhdCBzYXZlLCBzbyB0aGF0IHRoZSByZXN0IG9mIHRoZQorICoga2VybmVsIGRvZXNuJ3Qgc2VlIGFueSB1bmV4cGVjdGVkIHBpbm5lZCBwYWdldGFibGVzLgorICovCit2b2lkIHhlbl9tbV91bnBpbl9hbGwodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBwYWdlICpwYWdlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhZ2UsICZwZ2RfbGlzdCwgbHJ1KSB7CisJCWlmIChQYWdlU2F2ZVBpbm5lZChwYWdlKSkgeworCQkJQlVHX09OKCFQYWdlUGlubmVkKHBhZ2UpKTsKKwkJCXByaW50aygidW5waW5uaW5nIHBpbm5lZCAlcFxuIiwgcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCXhlbl9wZ2RfdW5waW4oKHBnZF90ICopcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCUNsZWFyUGFnZVNhdmVQaW5uZWQocGFnZSk7CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RfbG9jaywgZmxhZ3MpOworfQorCiB2b2lkIHhlbl9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KQogewogCXNwaW5fbG9jaygmbmV4dC0+cGFnZV90YWJsZV9sb2NrKTsKQEAgLTYwMiw3ICs4MjksNyBAQAogCXNwaW5fbG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CiAKIAkvKiBwZ2QgbWF5IG5vdCBiZSBwaW5uZWQgaW4gdGhlIGVycm9yIGV4aXQgcGF0aCBvZiBleGVjdmUgKi8KLQlpZiAoUGFnZVBpbm5lZCh2aXJ0X3RvX3BhZ2UobW0tPnBnZCkpKQorCWlmIChwYWdlX3Bpbm5lZChtbS0+cGdkKSkKIAkJeGVuX3BnZF91bnBpbihtbS0+cGdkKTsKIAogCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tbXUuaCBiL2FyY2gveDg2L3hlbi9tbXUuaAppbmRleCBiNWUxODliLi4yOTdiZjlmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmgKKysrIGIvYXJjaC94ODYveGVuL21tdS5oCkBAIC0yNSwxMCArMjUsNiBAQAogCiB2b2lkIHNldF9wdGVfbWZuKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxvbmcgcGZuLCBwZ3Byb3RfdCBmbGFncyk7CiAKLXZvaWQgeGVuX3NldF9wdGUocHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7Ci12b2lkIHhlbl9zZXRfcHRlX2F0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCSAgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRldmFsKTsKLXZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnBtZHAsIHBtZF90IHBtZHZhbCk7CiAKIHZvaWQgeGVuX2FjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsIHN0cnVjdCBtbV9zdHJ1Y3QgKm5leHQpOwogdm9pZCB4ZW5fZHVwX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqb2xkbW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKQEAgLTM3LDMxICszMywyNyBAQAogdm9pZCB4ZW5fcGdkX3BpbihwZ2RfdCAqcGdkKTsKIC8vdm9pZCB4ZW5fcGdkX3VucGluKHBnZF90ICpwZ2QpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLXVuc2lnbmVkIGxvbmcgbG9uZyB4ZW5fcHRlX3ZhbChwdGVfdCk7Ci11bnNpZ25lZCBsb25nIGxvbmcgeGVuX3BtZF92YWwocG1kX3QpOwotdW5zaWduZWQgbG9uZyBsb25nIHhlbl9wZ2RfdmFsKHBnZF90KTsKK3B0ZXZhbF90IHhlbl9wdGVfdmFsKHB0ZV90KTsKK3BtZHZhbF90IHhlbl9wbWRfdmFsKHBtZF90KTsKK3BnZHZhbF90IHhlbl9wZ2RfdmFsKHBnZF90KTsKIAotcHRlX3QgeGVuX21ha2VfcHRlKHVuc2lnbmVkIGxvbmcgbG9uZyk7Ci1wbWRfdCB4ZW5fbWFrZV9wbWQodW5zaWduZWQgbG9uZyBsb25nKTsKLXBnZF90IHhlbl9tYWtlX3BnZCh1bnNpZ25lZCBsb25nIGxvbmcpOworcHRlX3QgeGVuX21ha2VfcHRlKHB0ZXZhbF90KTsKK3BtZF90IHhlbl9tYWtlX3BtZChwbWR2YWxfdCk7CitwZ2RfdCB4ZW5fbWFrZV9wZ2QocGdkdmFsX3QpOwogCit2b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGV2YWwpOwogdm9pZCB4ZW5fc2V0X3B0ZV9hdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkgICAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7CiB2b2lkIHhlbl9zZXRfcHRlX2F0b21pYyhwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKTsKK3ZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnBtZHAsIHBtZF90IHBtZHZhbCk7CiB2b2lkIHhlbl9zZXRfcHVkKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCk7Cit2b2lkIHhlbl9zZXRfcG1kX2h5cGVyKHBtZF90ICpwbWRwLCBwbWRfdCBwbWR2YWwpOwordm9pZCB4ZW5fc2V0X3B1ZF9oeXBlcihwdWRfdCAqcHRyLCBwdWRfdCB2YWwpOwogdm9pZCB4ZW5fcHRlX2NsZWFyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKIHZvaWQgeGVuX3BtZF9jbGVhcihwbWRfdCAqcG1kcCk7CiAKLQotI2Vsc2UKLXVuc2lnbmVkIGxvbmcgeGVuX3B0ZV92YWwocHRlX3QpOwotdW5zaWduZWQgbG9uZyB4ZW5fcG1kX3ZhbChwbWRfdCk7Ci11bnNpZ25lZCBsb25nIHhlbl9wZ2RfdmFsKHBnZF90KTsKLQotcHRlX3QgeGVuX21ha2VfcHRlKHVuc2lnbmVkIGxvbmcpOwotcG1kX3QgeGVuX21ha2VfcG1kKHVuc2lnbmVkIGxvbmcpOwotcGdkX3QgeGVuX21ha2VfcGdkKHVuc2lnbmVkIGxvbmcpOwotI2VuZGlmCitwdGVfdCB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9zdGFydChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCk7Cit2b2lkICB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpOwogCiAjZW5kaWYJLyogX1hFTl9NTVVfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuYyBiL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmMKaW5kZXggNTc5MWViMi4uM2M2M2M0ZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuYworKysgYi9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5jCkBAIC0yOSwxNCArMjksMTQgQEAKICNkZWZpbmUgTUNfREVCVUcJMQogCiAjZGVmaW5lIE1DX0JBVENICTMyCi0jZGVmaW5lIE1DX0FSR1MJCShNQ19CQVRDSCAqIDE2IC8gc2l6ZW9mKHU2NCkpCisjZGVmaW5lIE1DX0FSR1MJCShNQ19CQVRDSCAqIDE2KQogCiBzdHJ1Y3QgbWNfYnVmZmVyIHsKIAlzdHJ1Y3QgbXVsdGljYWxsX2VudHJ5IGVudHJpZXNbTUNfQkFUQ0hdOwogI2lmIE1DX0RFQlVHCiAJc3RydWN0IG11bHRpY2FsbF9lbnRyeSBkZWJ1Z1tNQ19CQVRDSF07CiAjZW5kaWYKLQl1NjQgYXJnc1tNQ19BUkdTXTsKKwl1bnNpZ25lZCBjaGFyIGFyZ3NbTUNfQVJHU107CiAJc3RydWN0IGNhbGxiYWNrIHsKIAkJdm9pZCAoKmZuKSh2b2lkICopOwogCQl2b2lkICpkYXRhOwpAQCAtMTA3LDIwICsxMDcsNDggQEAKIHsKIAlzdHJ1Y3QgbWNfYnVmZmVyICpiID0gJl9fZ2V0X2NwdV92YXIobWNfYnVmZmVyKTsKIAlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIHJldDsKLQl1bnNpZ25lZCBhcmdzcGFjZSA9IChhcmdzICsgc2l6ZW9mKHU2NCkgLSAxKSAvIHNpemVvZih1NjQpOworCXVuc2lnbmVkIGFyZ2lkeCA9IHJvdW5kdXAoYi0+YXJnaWR4LCBzaXplb2YodTY0KSk7CiAKIAlCVUdfT04ocHJlZW1wdGlibGUoKSk7Ci0JQlVHX09OKGFyZ3NwYWNlID4gTUNfQVJHUyk7CisJQlVHX09OKGItPmFyZ2lkeCA+IE1DX0FSR1MpOwogCiAJaWYgKGItPm1jaWR4ID09IE1DX0JBVENIIHx8Ci0JICAgIChiLT5hcmdpZHggKyBhcmdzcGFjZSkgPiBNQ19BUkdTKQorCSAgICAoYXJnaWR4ICsgYXJncykgPiBNQ19BUkdTKSB7CiAJCXhlbl9tY19mbHVzaCgpOworCQlhcmdpZHggPSByb3VuZHVwKGItPmFyZ2lkeCwgc2l6ZW9mKHU2NCkpOworCX0KIAogCXJldC5tYyA9ICZiLT5lbnRyaWVzW2ItPm1jaWR4XTsKIAliLT5tY2lkeCsrOwotCXJldC5hcmdzID0gJmItPmFyZ3NbYi0+YXJnaWR4XTsKLQliLT5hcmdpZHggKz0gYXJnc3BhY2U7CisJcmV0LmFyZ3MgPSAmYi0+YXJnc1thcmdpZHhdOworCWItPmFyZ2lkeCA9IGFyZ2lkeCArIGFyZ3M7CiAKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CisJcmV0dXJuIHJldDsKK30KKworc3RydWN0IG11bHRpY2FsbF9zcGFjZSB4ZW5fbWNfZXh0ZW5kX2FyZ3ModW5zaWduZWQgbG9uZyBvcCwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IG1jX2J1ZmZlciAqYiA9ICZfX2dldF9jcHVfdmFyKG1jX2J1ZmZlcik7CisJc3RydWN0IG11bHRpY2FsbF9zcGFjZSByZXQgPSB7IE5VTEwsIE5VTEwgfTsKKworCUJVR19PTihwcmVlbXB0aWJsZSgpKTsKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CisKKwlpZiAoYi0+bWNpZHggPT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChiLT5lbnRyaWVzW2ItPm1jaWR4IC0gMV0ub3AgIT0gb3ApCisJCXJldHVybiByZXQ7CisKKwlpZiAoKGItPmFyZ2lkeCArIHNpemUpID4gTUNfQVJHUykKKwkJcmV0dXJuIHJldDsKKworCXJldC5tYyA9ICZiLT5lbnRyaWVzW2ItPm1jaWR4IC0gMV07CisJcmV0LmFyZ3MgPSAmYi0+YXJnc1tiLT5hcmdpZHhdOworCWItPmFyZ2lkeCArPSBzaXplOworCisJQlVHX09OKGItPmFyZ2lkeCA+IE1DX0FSR1MpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmggYi9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5oCmluZGV4IDhiYWU5OTYuLjg1ODkzODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmgKKysrIGIvYXJjaC94ODYveGVuL211bHRpY2FsbHMuaApAQCAtNDUsNCArNDUsMTYgQEAKIC8qIFNldCB1cCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjdXJyZW50IGJhdGNoIGlzIGZsdXNoZWQgKi8KIHZvaWQgeGVuX21jX2NhbGxiYWNrKHZvaWQgKCpmbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CiAKKy8qCisgKiBUcnkgdG8gZXh0ZW5kIHRoZSBhcmd1bWVudHMgb2YgdGhlIHByZXZpb3VzIG11bHRpY2FsbCBjb21tYW5kLiAgVGhlCisgKiBwcmV2aW91cyBjb21tYW5kJ3Mgb3AgbXVzdCBtYXRjaC4gIElmIGl0IGRvZXMsIHRoZW4gaXQgYXR0ZW1wdHMgdG8KKyAqIGV4dGVuZCB0aGUgYXJndW1lbnQgc3BhY2UgYWxsb2NhdGVkIHRvIHRoZSBtdWx0aWNhbGwgZW50cnkgYnkKKyAqIGFyZ19zaXplIGJ5dGVzLgorICoKKyAqIFRoZSByZXR1cm5lZCBtdWx0aWNhbGxfc3BhY2Ugd2lsbCByZXR1cm4gd2l0aCBtYyBwb2ludGluZyB0byB0aGUKKyAqIGNvbW1hbmQgb24gc3VjY2Vzcywgb3IgTlVMTCBvbiBmYWlsdXJlLCBhbmQgYXJncyBwb2ludGluZyB0byB0aGUKKyAqIG5ld2x5IGFsbG9jYXRlZCBzcGFjZS4KKyAqLworc3RydWN0IG11bHRpY2FsbF9zcGFjZSB4ZW5fbWNfZXh0ZW5kX2FyZ3ModW5zaWduZWQgbG9uZyBvcCwgc2l6ZV90IGFyZ19zaXplKTsKKwogI2VuZGlmIC8qIF9YRU5fTVVMVElDQUxMU19IICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc2V0dXAuYyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCmluZGV4IDgyNTE3ZTQuLmUwYTM5NTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9zZXR1cC5jCisrKyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCkBAIC0xMyw5ICsxMywxMSBAQAogI2luY2x1ZGUgPGFzbS92ZHNvLmg+CiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYWNwaS5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKKyNpbmNsdWRlIDx4ZW4vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvY2FsbGJhY2suaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3BoeXNkZXYuaD4KICNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KQEAgLTI3LDggKzI5LDYgQEAKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9oeXBlcnZpc29yX2NhbGxiYWNrW107CiBleHRlcm4gY29uc3QgY2hhciB4ZW5fZmFpbHNhZmVfY2FsbGJhY2tbXTsKIAotdW5zaWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7Ci1FWFBPUlRfU1lNQk9MKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nKTsKIAogLyoqCiAgKiBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCAtIEhvb2sgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLgpAQCAtMzgsOSArMzgsMzEgQEAKIHsKIAl1bnNpZ25lZCBsb25nIG1heF9wZm4gPSB4ZW5fc3RhcnRfaW5mby0+bnJfcGFnZXM7CiAKKwltYXhfcGZuID0gbWluKE1BWF9ET01BSU5fUEFHRVMsIG1heF9wZm4pOworCiAJZTgyMC5ucl9tYXAgPSAwOwotCWFkZF9tZW1vcnlfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOwotCWFkZF9tZW1vcnlfcmVnaW9uKEhJR0hfTUVNT1JZLCBQRk5fUEhZUyhtYXhfcGZuKS1ISUdIX01FTU9SWSwgRTgyMF9SQU0pOworCisJZTgyMF9hZGRfcmVnaW9uKDAsIFBGTl9QSFlTKG1heF9wZm4pLCBFODIwX1JBTSk7CisKKwkvKgorCSAqIEV2ZW4gdGhvdWdoIHRoaXMgaXMgbm9ybWFsLCB1c2FibGUgbWVtb3J5IHVuZGVyIFhlbiwgcmVzZXJ2ZQorCSAqIElTQSBtZW1vcnkgYW55d2F5IGJlY2F1c2UgdG9vIG1hbnkgdGhpbmdzIHRoaW5rIHRoZXkgY2FuIHBva2UKKwkgKiBhYm91dCBpbiB0aGVyZS4KKwkgKi8KKwllODIwX2FkZF9yZWdpb24oSVNBX1NUQVJUX0FERFJFU1MsIElTQV9FTkRfQUREUkVTUyAtIElTQV9TVEFSVF9BRERSRVNTLAorCQkJRTgyMF9SRVNFUlZFRCk7CisKKwkvKgorCSAqIFJlc2VydmUgWGVuIGJpdHM6CisJICogIC0gbWZuX2xpc3QKKwkgKiAgLSB4ZW5fc3RhcnRfaW5mbworCSAqIFNlZSBjb21tZW50IGFib3ZlICJzdHJ1Y3Qgc3RhcnRfaW5mbyIgaW4gPHhlbi9pbnRlcmZhY2UveGVuLmg+CisJICovCisJZTgyMF9hZGRfcmVnaW9uKF9fcGEoeGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0KSwKKwkJCXhlbl9zdGFydF9pbmZvLT5wdF9iYXNlIC0geGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0LAorCQkJRTgyMF9SRVNFUlZFRCk7CisKKwlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7CiAKIAlyZXR1cm4gIlhlbiI7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc21wLmMgYi9hcmNoL3g4Ni94ZW4vc21wLmMKaW5kZXggOTRlNjkwMC4uZDJlM2MyMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3NtcC5jCisrKyBiL2FyY2gveDg2L3hlbi9zbXAuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgInhlbi1vcHMuaCIKICNpbmNsdWRlICJtbXUuaCIKIAotc3RhdGljIGNwdW1hc2tfdCB4ZW5fY3B1X2luaXRpYWxpemVkX21hcDsKK2NwdW1hc2tfdCB4ZW5fY3B1X2luaXRpYWxpemVkX21hcDsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIHJlc2NoZWRfaXJxKSA9IC0xOwogc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgY2FsbGZ1bmNfaXJxKSA9IC0xOwogc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgZGVidWdfaXJxKSA9IC0xOwpAQCAtNjUsNiArNjUsMTIgQEAKICAqLwogc3RhdGljIGlycXJldHVybl90IHhlbl9yZXNjaGVkdWxlX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCV9fZ2V0X2NwdV92YXIoaXJxX3N0YXQpLmlycV9yZXNjaGVkX2NvdW50Kys7CisjZWxzZQorCWFkZF9wZGEoaXJxX3Jlc2NoZWRfY291bnQsIDEpOworI2VuZGlmCisKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zdXNwZW5kLmMgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTY2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCkBAIC0wLDAgKzEsNDUgQEAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CisKKyNpbmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgorI2luY2x1ZGUgPGFzbS94ZW4vcGFnZS5oPgorCisjaW5jbHVkZSAieGVuLW9wcy5oIgorI2luY2x1ZGUgIm1tdS5oIgorCit2b2lkIHhlbl9wcmVfc3VzcGVuZCh2b2lkKQoreworCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPSBtZm5fdG9fcGZuKHhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4pOworCXhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUubWZuID0KKwkJbWZuX3RvX3Bmbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisKKwlCVUdfT04oIWlycXNfZGlzYWJsZWQoKSk7CisKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbzsKKwlpZiAoSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCksCisJCQkJCSBfX3B0ZV9tYSgwKSwgMCkpCisJCUJVRygpOworfQorCit2b2lkIHhlbl9wb3N0X3N1c3BlbmQoaW50IHN1c3BlbmRfY2FuY2VsbGVkKQoreworCXhlbl9zZXR1cF9zaGFyZWRfaW5mbygpOworCisJaWYgKHN1c3BlbmRfY2FuY2VsbGVkKSB7CisJCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+c3RvcmVfbWZuKTsKKwkJeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJfSBlbHNlIHsKKyNpZmRlZiBDT05GSUdfU01QCisJCXhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwID0gY3B1X29ubGluZV9tYXA7CisjZW5kaWYKKwkJeGVuX3ZjcHVfcmVzdG9yZSgpOworCQl4ZW5fdGltZXJfcmVzdW1lKCk7CisJfQorCit9CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi90aW1lLmMgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCmluZGV4IGMzOWUxYTUuLjY4NWI3NzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi90aW1lLmMKKysrIGIvYXJjaC94ODYveGVuL3RpbWUuYwpAQCAtMTIsNyArMTIsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAKKyNpbmNsdWRlIDxhc20vcHZjbG9jay5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKQEAgLTMwLDE3ICszMiw2IEBACiAKIHN0YXRpYyBjeWNsZV90IHhlbl9jbG9ja3NvdXJjZV9yZWFkKHZvaWQpOwogCi0vKiBUaGVzZSBhcmUgcGVyb2RpY2FsbHkgdXBkYXRlZCBpbiBzaGFyZWRfaW5mbywgYW5kIHRoZW4gY29waWVkIGhlcmUuICovCi1zdHJ1Y3Qgc2hhZG93X3RpbWVfaW5mbyB7Ci0JdTY0IHRzY190aW1lc3RhbXA7ICAgICAvKiBUU0MgYXQgbGFzdCB1cGRhdGUgb2YgdGltZSB2YWxzLiAgKi8KLQl1NjQgc3lzdGVtX3RpbWVzdGFtcDsgIC8qIFRpbWUsIGluIG5hbm9zZWNzLCBzaW5jZSBib290LiAgICAqLwotCXUzMiB0c2NfdG9fbnNlY19tdWw7Ci0JaW50IHRzY19zaGlmdDsKLQl1MzIgdmVyc2lvbjsKLX07Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2hhZG93X3RpbWVfaW5mbywgc2hhZG93X3RpbWUpOwotCiAvKiBydW5zdGF0ZSBpbmZvIHVwZGF0ZWQgYnkgWGVuICovCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbywgcnVuc3RhdGUpOwogCkBAIC0xNTAsMTEgKzE0MSw3IEBACiAJaWYgKHN0b2xlbiA8IDApCiAJCXN0b2xlbiA9IDA7CiAKLQl0aWNrcyA9IDA7Ci0Jd2hpbGUgKHN0b2xlbiA+PSBOU19QRVJfVElDSykgewotCQl0aWNrcysrOwotCQlzdG9sZW4gLT0gTlNfUEVSX1RJQ0s7Ci0JfQorCXRpY2tzID0gaXRlcl9kaXZfdTY0X3JlbShzdG9sZW4sIE5TX1BFUl9USUNLLCAmc3RvbGVuKTsKIAlfX2dldF9jcHVfdmFyKHJlc2lkdWFsX3N0b2xlbikgPSBzdG9sZW47CiAJYWNjb3VudF9zdGVhbF90aW1lKE5VTEwsIHRpY2tzKTsKIApAQCAtMTY2LDExICsxNTMsNyBAQAogCWlmIChibG9ja2VkIDwgMCkKIAkJYmxvY2tlZCA9IDA7CiAKLQl0aWNrcyA9IDA7Ci0Jd2hpbGUgKGJsb2NrZWQgPj0gTlNfUEVSX1RJQ0spIHsKLQkJdGlja3MrKzsKLQkJYmxvY2tlZCAtPSBOU19QRVJfVElDSzsKLQl9CisJdGlja3MgPSBpdGVyX2Rpdl91NjRfcmVtKGJsb2NrZWQsIE5TX1BFUl9USUNLLCAmYmxvY2tlZCk7CiAJX19nZXRfY3B1X3ZhcihyZXNpZHVhbF9ibG9ja2VkKSA9IGJsb2NrZWQ7CiAJYWNjb3VudF9zdGVhbF90aW1lKGlkbGVfdGFzayhzbXBfcHJvY2Vzc29yX2lkKCkpLCB0aWNrcyk7CiB9CkBAIC0yMTQsMTEgKzE5NywxMSBAQAogfQogCiAKLS8qIEdldCB0aGUgQ1BVIHNwZWVkIGZyb20gWGVuICovCi11bnNpZ25lZCBsb25nIHhlbl9jcHVfa2h6KHZvaWQpCisvKiBHZXQgdGhlIFRTQyBzcGVlZCBmcm9tIFhlbiAqLwordW5zaWduZWQgbG9uZyB4ZW5fdHNjX2toeih2b2lkKQogewogCXU2NCB4ZW5fa2h6ID0gMTAwMDAwMFVMTCA8PCAzMjsKLQljb25zdCBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gKmluZm8gPQorCWNvbnN0IHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICppbmZvID0KIAkJJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1swXS50aW1lOwogCiAJZG9fZGl2KHhlbl9raHosIGluZm8tPnRzY190b19zeXN0ZW1fbXVsKTsKQEAgLTIzMCwxMjEgKzIxMywyNiBAQAogCXJldHVybiB4ZW5fa2h6OwogfQogCi0vKgotICogUmVhZHMgYSBjb25zaXN0ZW50IHNldCBvZiB0aW1lLWJhc2UgdmFsdWVzIGZyb20gWGVuLCBpbnRvIGEgc2hhZG93IGRhdGEKLSAqIGFyZWEuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4odm9pZCkKLXsKLQlzdHJ1Y3QgdmNwdV90aW1lX2luZm8gICAqc3JjOwotCXN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpkc3Q7Ci0KLQkvKiBzcmMgaXMgc2hhcmVkIG1lbW9yeSB3aXRoIHRoZSBoeXBlcnZpc29yLCBzbyB3ZSBuZWVkIHRvCi0JICAgbWFrZSBzdXJlIHdlIGdldCBhIGNvbnNpc3RlbnQgc25hcHNob3QsIGV2ZW4gaW4gdGhlIGZhY2Ugb2YKLQkgICBiZWluZyBwcmVlbXB0ZWQuICovCi0Jc3JjID0gJl9fZ2V0X2NwdV92YXIoeGVuX3ZjcHUpLT50aW1lOwotCWRzdCA9ICZfX2dldF9jcHVfdmFyKHNoYWRvd190aW1lKTsKLQotCWRvIHsKLQkJZHN0LT52ZXJzaW9uID0gc3JjLT52ZXJzaW9uOwotCQlybWIoKTsJCS8qIGZldGNoIHZlcnNpb24gYmVmb3JlIGRhdGEgKi8KLQkJZHN0LT50c2NfdGltZXN0YW1wICAgICA9IHNyYy0+dHNjX3RpbWVzdGFtcDsKLQkJZHN0LT5zeXN0ZW1fdGltZXN0YW1wICA9IHNyYy0+c3lzdGVtX3RpbWU7Ci0JCWRzdC0+dHNjX3RvX25zZWNfbXVsICAgPSBzcmMtPnRzY190b19zeXN0ZW1fbXVsOwotCQlkc3QtPnRzY19zaGlmdCAgICAgICAgID0gc3JjLT50c2Nfc2hpZnQ7Ci0JCXJtYigpOwkJLyogdGVzdCB2ZXJzaW9uIGFmdGVyIGZldGNoaW5nIGRhdGEgKi8KLQl9IHdoaWxlICgoc3JjLT52ZXJzaW9uICYgMSkgfCAoZHN0LT52ZXJzaW9uIF4gc3JjLT52ZXJzaW9uKSk7Ci0KLQlyZXR1cm4gZHN0LT52ZXJzaW9uOwotfQotCi0vKgotICogU2NhbGUgYSA2NC1iaXQgZGVsdGEgYnkgc2NhbGluZyBhbmQgbXVsdGlwbHlpbmcgYnkgYSAzMi1iaXQgZnJhY3Rpb24sCi0gKiB5aWVsZGluZyBhIDY0LWJpdCByZXN1bHQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdTY0IHNjYWxlX2RlbHRhKHU2NCBkZWx0YSwgdTMyIG11bF9mcmFjLCBpbnQgc2hpZnQpCi17Ci0JdTY0IHByb2R1Y3Q7Ci0jaWZkZWYgX19pMzg2X18KLQl1MzIgdG1wMSwgdG1wMjsKLSNlbmRpZgotCi0JaWYgKHNoaWZ0IDwgMCkKLQkJZGVsdGEgPj49IC1zaGlmdDsKLQllbHNlCi0JCWRlbHRhIDw8PSBzaGlmdDsKLQotI2lmZGVmIF9faTM4Nl9fCi0JX19hc21fXyAoCi0JCSJtdWwgICU1ICAgICAgIDsgIgotCQkibW92ICAlNCwlJWVheCA7ICIKLQkJIm1vdiAgJSVlZHgsJTQgOyAiCi0JCSJtdWwgICU1ICAgICAgIDsgIgotCQkieG9yICAlNSwlNSAgICA7ICIKLQkJImFkZCAgJTQsJSVlYXggOyAiCi0JCSJhZGMgICU1LCUlZWR4IDsgIgotCQk6ICI9QSIgKHByb2R1Y3QpLCAiPXIiICh0bXAxKSwgIj1yIiAodG1wMikKLQkJOiAiYSIgKCh1MzIpZGVsdGEpLCAiMSIgKCh1MzIpKGRlbHRhID4+IDMyKSksICIyIiAobXVsX2ZyYWMpICk7Ci0jZWxpZiBfX3g4Nl82NF9fCi0JX19hc21fXyAoCi0JCSJtdWwgJSVyZHggOyBzaHJkICQzMiwlJXJkeCwlJXJheCIKLQkJOiAiPWEiIChwcm9kdWN0KSA6ICIwIiAoZGVsdGEpLCAiZCIgKCh1NjQpbXVsX2ZyYWMpICk7Ci0jZWxzZQotI2Vycm9yIGltcGxlbWVudCBtZSEKLSNlbmRpZgotCi0JcmV0dXJuIHByb2R1Y3Q7Ci19Ci0KLXN0YXRpYyB1NjQgZ2V0X25zZWNfb2Zmc2V0KHN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpzaGFkb3cpCi17Ci0JdTY0IG5vdywgZGVsdGE7Ci0Jbm93ID0gbmF0aXZlX3JlYWRfdHNjKCk7Ci0JZGVsdGEgPSBub3cgLSBzaGFkb3ctPnRzY190aW1lc3RhbXA7Ci0JcmV0dXJuIHNjYWxlX2RlbHRhKGRlbHRhLCBzaGFkb3ctPnRzY190b19uc2VjX211bCwgc2hhZG93LT50c2Nfc2hpZnQpOwotfQotCiBzdGF0aWMgY3ljbGVfdCB4ZW5fY2xvY2tzb3VyY2VfcmVhZCh2b2lkKQogewotCXN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpzaGFkb3cgPSAmZ2V0X2NwdV92YXIoc2hhZG93X3RpbWUpOworICAgICAgICBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjOwogCWN5Y2xlX3QgcmV0OwotCXVuc2lnbmVkIHZlcnNpb247CiAKLQlkbyB7Ci0JCXZlcnNpb24gPSBnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4oKTsKLQkJYmFycmllcigpOwotCQlyZXQgPSBzaGFkb3ctPnN5c3RlbV90aW1lc3RhbXAgKyBnZXRfbnNlY19vZmZzZXQoc2hhZG93KTsKLQkJYmFycmllcigpOwotCX0gd2hpbGUgKHZlcnNpb24gIT0gX19nZXRfY3B1X3Zhcih4ZW5fdmNwdSktPnRpbWUudmVyc2lvbik7Ci0KLQlwdXRfY3B1X3ZhcihzaGFkb3dfdGltZSk7Ci0KKwlzcmMgPSAmZ2V0X2NwdV92YXIoeGVuX3ZjcHUpLT50aW1lOworCXJldCA9IHB2Y2xvY2tfY2xvY2tzb3VyY2VfcmVhZChzcmMpOworCXB1dF9jcHVfdmFyKHhlbl92Y3B1KTsKIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCB4ZW5fcmVhZF93YWxsY2xvY2soc3RydWN0IHRpbWVzcGVjICp0cykKIHsKLQljb25zdCBzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSBIWVBFUlZJU09SX3NoYXJlZF9pbmZvOwotCXUzMiB2ZXJzaW9uOwotCXU2NCBkZWx0YTsKLQlzdHJ1Y3QgdGltZXNwZWMgbm93OworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IEhZUEVSVklTT1Jfc2hhcmVkX2luZm87CisJc3RydWN0IHB2Y2xvY2tfd2FsbF9jbG9jayAqd2FsbF9jbG9jayA9ICYocy0+d2MpOworICAgICAgICBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqdmNwdV90aW1lOwogCi0JLyogZ2V0IHdhbGxjbG9jayBhdCBzeXN0ZW0gYm9vdCAqLwotCWRvIHsKLQkJdmVyc2lvbiA9IHMtPndjX3ZlcnNpb247Ci0JCXJtYigpOwkJLyogZmV0Y2ggdmVyc2lvbiBiZWZvcmUgdGltZSAqLwotCQlub3cudHZfc2VjICA9IHMtPndjX3NlYzsKLQkJbm93LnR2X25zZWMgPSBzLT53Y19uc2VjOwotCQlybWIoKTsJCS8qIGZldGNoIHRpbWUgYmVmb3JlIGNoZWNraW5nIHZlcnNpb24gKi8KLQl9IHdoaWxlICgocy0+d2NfdmVyc2lvbiAmIDEpIHwgKHZlcnNpb24gXiBzLT53Y192ZXJzaW9uKSk7Ci0KLQlkZWx0YSA9IHhlbl9jbG9ja3NvdXJjZV9yZWFkKCk7CS8qIHRpbWUgc2luY2Ugc3lzdGVtIGJvb3QgKi8KLQlkZWx0YSArPSBub3cudHZfc2VjICogKHU2NClOU0VDX1BFUl9TRUMgKyBub3cudHZfbnNlYzsKLQotCW5vdy50dl9uc2VjID0gZG9fZGl2KGRlbHRhLCBOU0VDX1BFUl9TRUMpOwotCW5vdy50dl9zZWMgPSBkZWx0YTsKLQotCXNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHRzLCBub3cudHZfc2VjLCBub3cudHZfbnNlYyk7CisJdmNwdV90aW1lID0gJmdldF9jcHVfdmFyKHhlbl92Y3B1KS0+dGltZTsKKwlwdmNsb2NrX3JlYWRfd2FsbGNsb2NrKHdhbGxfY2xvY2ssIHZjcHVfdGltZSwgdHMpOworCXB1dF9jcHVfdmFyKHhlbl92Y3B1KTsKIH0KIAogdW5zaWduZWQgbG9uZyB4ZW5fZ2V0X3dhbGxjbG9jayh2b2lkKQpAQCAtMzUyLDcgKzI0MCw2IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCiAJeGVuX3JlYWRfd2FsbGNsb2NrKCZ0cyk7Ci0KIAlyZXR1cm4gdHMudHZfc2VjOwogfQogCkBAIC01NzIsMTIgKzQ1OSwyMyBAQAogCWNsb2NrZXZlbnRzX3JlZ2lzdGVyX2RldmljZSgmX19nZXRfY3B1X3Zhcih4ZW5fY2xvY2tfZXZlbnRzKSk7CiB9CiAKK3ZvaWQgeGVuX3RpbWVyX3Jlc3VtZSh2b2lkKQoreworCWludCBjcHU7CisKKwlpZiAoeGVuX2Nsb2NrZXZlbnQgIT0gJnhlbl92Y3B1b3BfY2xvY2tldmVudCkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKKwkJaWYgKEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1Bfc3RvcF9wZXJpb2RpY190aW1lciwgY3B1LCBOVUxMKSkKKwkJCUJVRygpOworCX0KK30KKwogX19pbml0IHZvaWQgeGVuX3RpbWVfaW5pdCh2b2lkKQogewogCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLQlnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4oKTsKLQogCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZ4ZW5fY2xvY2tzb3VyY2UpOwogCiAJaWYgKEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1Bfc3RvcF9wZXJpb2RpY190aW1lciwgY3B1LCBOVUxMKSA9PSAwKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLWhlYWQuUyBiL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCmluZGV4IDI4OGQ1ODcuLjdjMGNmNjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCisrKyBiL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxhc20vYm9vdC5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZWxmbm90ZS5oPgorI2luY2x1ZGUgPGFzbS94ZW4vaW50ZXJmYWNlLmg+CiAKIAlfX0lOSVQKIEVOVFJZKHN0YXJ0dXBfeGVuKQpAQCAtMTcsNyArMTgsNyBAQAogCiAJX19GSU5JVAogCi0ucHVzaHNlY3Rpb24gLmJzcy5wYWdlX2FsaWduZWQKKy5wdXNoc2VjdGlvbiAudGV4dAogCS5hbGlnbiBQQUdFX1NJWkVfYXNtCiBFTlRSWShoeXBlcmNhbGxfcGFnZSkKIAkuc2tpcCAweDEwMDAKQEAgLTMwLDExICszMSwxMSBAQAogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9FTlRSWSwgICAgICAgICAgLmxvbmcgIHN0YXJ0dXBfeGVuKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9IWVBFUkNBTExfUEFHRSwgLmxvbmcgIGh5cGVyY2FsbF9wYWdlKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9GRUFUVVJFUywgICAgICAgLmFzY2l6ICIhd3JpdGFibGVfcGFnZV90YWJsZXN8cGFlX3BnZGlyX2Fib3ZlXzRnYiIpCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKIAlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfUEFFX01PREUsICAgICAgIC5hc2NpeiAieWVzIikKLSNlbHNlCi0JRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX1BBRV9NT0RFLCAgICAgICAuYXNjaXogIm5vIikKLSNlbmRpZgogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9MT0FERVIsICAgICAgICAgLmFzY2l6ICJnZW5lcmljIikKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfTDFfTUZOX1ZBTElELAorCQkucXVhZCBfUEFHRV9QUkVTRU5UOyAucXVhZCBfUEFHRV9QUkVTRU5UKQorCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCwgLmxvbmcgMSkKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfSFZfU1RBUlRfTE9XLCAgIC5sb25nIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQogCiAjZW5kaWYgLypDT05GSUdfWEVOICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oIGIvYXJjaC94ODYveGVuL3hlbi1vcHMuaAppbmRleCBmMTA2M2FlLi5kODUyZGRiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oCisrKyBiL2FyY2gveDg2L3hlbi94ZW4tb3BzLmgKQEAgLTksMjYgKzksMzUgQEAKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9oeXBlcnZpc29yX2NhbGxiYWNrW107CiBleHRlcm4gY29uc3QgY2hhciB4ZW5fZmFpbHNhZmVfY2FsbGJhY2tbXTsKIAorc3RydWN0IHRyYXBfaW5mbzsKIHZvaWQgeGVuX2NvcHlfdHJhcF9pbmZvKHN0cnVjdCB0cmFwX2luZm8gKnRyYXBzKTsKIAogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jcjMpOwogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jdXJyZW50X2NyMyk7CiAKIGV4dGVybiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CitleHRlcm4gc3RydWN0IHNoYXJlZF9pbmZvIHhlbl9kdW1teV9zaGFyZWRfaW5mbzsKIGV4dGVybiBzdHJ1Y3Qgc2hhcmVkX2luZm8gKkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAKK3ZvaWQgeGVuX3NldHVwX21mbl9saXN0X2xpc3Qodm9pZCk7Cit2b2lkIHhlbl9zZXR1cF9zaGFyZWRfaW5mbyh2b2lkKTsKKwogY2hhciAqIF9faW5pdCB4ZW5fbWVtb3J5X3NldHVwKHZvaWQpOwogdm9pZCBfX2luaXQgeGVuX2FyY2hfc2V0dXAodm9pZCk7CiB2b2lkIF9faW5pdCB4ZW5faW5pdF9JUlEodm9pZCk7CiB2b2lkIHhlbl9lbmFibGVfc3lzZW50ZXIodm9pZCk7Cit2b2lkIHhlbl92Y3B1X3Jlc3RvcmUodm9pZCk7CisKK3ZvaWQgX19pbml0IHhlbl9idWlsZF9keW5hbWljX3BoeXNfdG9fbWFjaGluZSh2b2lkKTsKIAogdm9pZCB4ZW5fc2V0dXBfdGltZXIoaW50IGNwdSk7CiB2b2lkIHhlbl9zZXR1cF9jcHVfY2xvY2tldmVudHModm9pZCk7Ci11bnNpZ25lZCBsb25nIHhlbl9jcHVfa2h6KHZvaWQpOwordW5zaWduZWQgbG9uZyB4ZW5fdHNjX2toeih2b2lkKTsKIHZvaWQgX19pbml0IHhlbl90aW1lX2luaXQodm9pZCk7CiB1bnNpZ25lZCBsb25nIHhlbl9nZXRfd2FsbGNsb2NrKHZvaWQpOwogaW50IHhlbl9zZXRfd2FsbGNsb2NrKHVuc2lnbmVkIGxvbmcgdGltZSk7CiB1bnNpZ25lZCBsb25nIGxvbmcgeGVuX3NjaGVkX2Nsb2NrKHZvaWQpOwordm9pZCB4ZW5fdGltZXJfcmVzdW1lKHZvaWQpOwogCiBpcnFyZXR1cm5fdCB4ZW5fZGVidWdfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCk7CiAKQEAgLTU0LDYgKzYzLDggQEAKIGludCB4ZW5fc21wX2NhbGxfZnVuY3Rpb25fbWFzayhjcHVtYXNrX3QgbWFzaywgdm9pZCAoKmZ1bmMpKHZvaWQgKiksCiAJCQkgICAgICAgdm9pZCAqaW5mbywgaW50IHdhaXQpOwogCitleHRlcm4gY3B1bWFza190IHhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwOworCiAKIC8qIERlY2xhcmUgYW4gYXNtIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHN5bWJvbHMgbmVlZGVkIHRvIG1ha2UgaXQKICAgIGlubGluZWFibGUgKi8KZGlmZiAtLWdpdCBhL2Jsb2NrL0tjb25maWcgYi9ibG9jay9LY29uZmlnCmluZGV4IDNlOTdmMmIuLjFhYjdjMTUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL0tjb25maWcKKysrIGIvYmxvY2svS2NvbmZpZwpAQCAtODEsNiArODEsMTggQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIEJMS19ERVZfSU5URUdSSVRZCisJYm9vbCAiQmxvY2sgbGF5ZXIgZGF0YSBpbnRlZ3JpdHkgc3VwcG9ydCIKKwktLS1oZWxwLS0tCisJU29tZSBzdG9yYWdlIGRldmljZXMgYWxsb3cgZXh0cmEgaW5mb3JtYXRpb24gdG8gYmUKKwlzdG9yZWQvcmV0cmlldmVkIHRvIGhlbHAgcHJvdGVjdCB0aGUgZGF0YS4gIFRoZSBibG9jayBsYXllcgorCWRhdGEgaW50ZWdyaXR5IG9wdGlvbiBwcm92aWRlcyBob29rcyB3aGljaCBjYW4gYmUgdXNlZCBieQorCWZpbGVzeXN0ZW1zIHRvIGVuc3VyZSBiZXR0ZXIgZGF0YSBpbnRlZ3JpdHkuCisKKwlTYXkgeWVzIGhlcmUgaWYgeW91IGhhdmUgYSBzdG9yYWdlIGRldmljZSB0aGF0IHByb3ZpZGVzIHRoZQorCVQxMC9TQ1NJIERhdGEgSW50ZWdyaXR5IEZpZWxkIG9yIHRoZSBUMTMvQVRBIEV4dGVybmFsIFBhdGgKKwlQcm90ZWN0aW9uLiAgSWYgaW4gZG91YnQsIHNheSBOLgorCiBlbmRpZiAjIEJMT0NLCiAKIGNvbmZpZyBCTE9DS19DT01QQVQKZGlmZiAtLWdpdCBhL2Jsb2NrL01ha2VmaWxlIGIvYmxvY2svTWFrZWZpbGUKaW5kZXggNWE0M2M3ZC4uMjA4MDAwYiAxMDA2NDQKLS0tIGEvYmxvY2svTWFrZWZpbGUKKysrIGIvYmxvY2svTWFrZWZpbGUKQEAgLTQsNyArNCw4IEBACiAKIG9iai0kKENPTkZJR19CTE9DSykgOj0gZWxldmF0b3IubyBibGstY29yZS5vIGJsay10YWcubyBibGstc3lzZnMubyBcCiAJCQlibGstYmFycmllci5vIGJsay1zZXR0aW5ncy5vIGJsay1pb2MubyBibGstbWFwLm8gXAotCQkJYmxrLWV4ZWMubyBibGstbWVyZ2UubyBpb2N0bC5vIGdlbmhkLm8gc2NzaV9pb2N0bC5vCisJCQlibGstZXhlYy5vIGJsay1tZXJnZS5vIGlvY3RsLm8gZ2VuaGQubyBzY3NpX2lvY3RsLm8gXAorCQkJY21kLWZpbHRlci5vCiAKIG9iai0kKENPTkZJR19CTEtfREVWX0JTRykJKz0gYnNnLm8KIG9iai0kKENPTkZJR19JT1NDSEVEX05PT1ApCSs9IG5vb3AtaW9zY2hlZC5vCkBAIC0xNCwzICsxNSw0IEBACiAKIG9iai0kKENPTkZJR19CTEtfREVWX0lPX1RSQUNFKQkrPSBibGt0cmFjZS5vCiBvYmotJChDT05GSUdfQkxPQ0tfQ09NUEFUKQkrPSBjb21wYXRfaW9jdGwubworb2JqLSQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQkrPSBibGstaW50ZWdyaXR5Lm8KZGlmZiAtLWdpdCBhL2Jsb2NrL2FzLWlvc2NoZWQuYyBiL2Jsb2NrL2FzLWlvc2NoZWQuYwppbmRleCA4YzM5NDY3Li45NzM1YWNiIDEwMDY0NAotLS0gYS9ibG9jay9hcy1pb3NjaGVkLmMKKysrIGIvYmxvY2svYXMtaW9zY2hlZC5jCkBAIC0xNTEsNiArMTUxLDcgQEAKIAogc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGlvY19jb3VudCk7CiBzdGF0aWMgc3RydWN0IGNvbXBsZXRpb24gKmlvY19nb25lOworc3RhdGljIERFRklORV9TUElOTE9DSyhpb2NfZ29uZV9sb2NrKTsKIAogc3RhdGljIHZvaWQgYXNfbW92ZV90b19kaXNwYXRjaChzdHJ1Y3QgYXNfZGF0YSAqYWQsIHN0cnVjdCByZXF1ZXN0ICpycSk7CiBzdGF0aWMgdm9pZCBhc19hbnRpY19zdG9wKHN0cnVjdCBhc19kYXRhICphZCk7CkBAIC0xNjQsOCArMTY1LDE5IEBACiB7CiAJa2ZyZWUoYWljKTsKIAllbHZfaW9jX2NvdW50X2RlYyhpb2NfY291bnQpOwotCWlmIChpb2NfZ29uZSAmJiAhZWx2X2lvY19jb3VudF9yZWFkKGlvY19jb3VudCkpCi0JCWNvbXBsZXRlKGlvY19nb25lKTsKKwlpZiAoaW9jX2dvbmUpIHsKKwkJLyoKKwkJICogQVMgc2NoZWR1bGVyIGlzIGV4aXRpbmcsIGdyYWIgZXhpdCBsb2NrIGFuZCBjaGVjaworCQkgKiB0aGUgcGVuZGluZyBpbyBjb250ZXh0IGNvdW50LiBJZiBpdCBoaXRzIHplcm8sCisJCSAqIGNvbXBsZXRlIGlvY19nb25lIGFuZCBzZXQgaXQgYmFjayB0byBOVUxMLgorCQkgKi8KKwkJc3Bpbl9sb2NrKCZpb2NfZ29uZV9sb2NrKTsKKwkJaWYgKGlvY19nb25lICYmICFlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkgeworCQkJY29tcGxldGUoaW9jX2dvbmUpOworCQkJaW9jX2dvbmUgPSBOVUxMOworCQl9CisJCXNwaW5fdW5sb2NrKCZpb2NfZ29uZV9sb2NrKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGFzX3RyaW0oc3RydWN0IGlvX2NvbnRleHQgKmlvYykKQEAgLTgzMSw2ICs4NDMsOCBAQAogCX0KIAogCWlmIChhZC0+Y2hhbmdlZF9iYXRjaCAmJiBhZC0+bnJfZGlzcGF0Y2hlZCA9PSAxKSB7CisJCWFkLT5jdXJyZW50X2JhdGNoX2V4cGlyZXMgPSBqaWZmaWVzICsKKwkJCQkJYWQtPmJhdGNoX2V4cGlyZVthZC0+YmF0Y2hfZGF0YV9kaXJdOwogCQlrYmxvY2tkX3NjaGVkdWxlX3dvcmsoJmFkLT5hbnRpY193b3JrKTsKIAkJYWQtPmNoYW5nZWRfYmF0Y2ggPSAwOwogCkBAIC0xNDkxLDcgKzE1MDUsNyBAQAogCS8qIGlvY19nb25lJ3MgdXBkYXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgcmVhZGluZyBpb2NfY291bnQgKi8KIAlzbXBfd21iKCk7CiAJaWYgKGVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKQotCQl3YWl0X2Zvcl9jb21wbGV0aW9uKGlvY19nb25lKTsKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmYWxsX2dvbmUpOwogCXN5bmNocm9uaXplX3JjdSgpOwogfQogCmRpZmYgLS1naXQgYS9ibG9jay9ibGstY29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYwppbmRleCAxOTA1YWFiLi5jNmU1MzY1IDEwMDY0NAotLS0gYS9ibG9jay9ibGstY29yZS5jCisrKyBiL2Jsb2NrL2Jsay1jb3JlLmMKQEAgLTE0Myw2ICsxNDMsMTAgQEAKIAogCQliaW8tPmJpX3NpemUgLT0gbmJ5dGVzOwogCQliaW8tPmJpX3NlY3RvciArPSAobmJ5dGVzID4+IDkpOworCisJCWlmIChiaW9faW50ZWdyaXR5KGJpbykpCisJCQliaW9faW50ZWdyaXR5X2FkdmFuY2UoYmlvLCBuYnl0ZXMpOworCiAJCWlmIChiaW8tPmJpX3NpemUgPT0gMCkKIAkJCWJpb19lbmRpbyhiaW8sIGVycm9yKTsKIAl9IGVsc2UgewpAQCAtMjAxLDggKzIwNSw3IEBACiAJaWYgKGJsa19xdWV1ZV9zdG9wcGVkKHEpKQogCQlyZXR1cm47CiAKLQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUExVR0dFRCwgJnEtPnF1ZXVlX2ZsYWdzKSkgewotCQlfX3NldF9iaXQoUVVFVUVfRkxBR19QTFVHR0VELCAmcS0+cXVldWVfZmxhZ3MpOworCWlmICghcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQoUVVFVUVfRkxBR19QTFVHR0VELCBxKSkgewogCQltb2RfdGltZXIoJnEtPnVucGx1Z190aW1lciwgamlmZmllcyArIHEtPnVucGx1Z19kZWxheSk7CiAJCWJsa19hZGRfdHJhY2VfZ2VuZXJpYyhxLCBOVUxMLCAwLCBCTEtfVEFfUExVRyk7CiAJfQpAQCAtMjE3LDEwICsyMjAsOSBAQAogewogCVdBUk5fT04oIWlycXNfZGlzYWJsZWQoKSk7CiAKLQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUExVR0dFRCwgJnEtPnF1ZXVlX2ZsYWdzKSkKKwlpZiAoIXF1ZXVlX2ZsYWdfdGVzdF9hbmRfY2xlYXIoUVVFVUVfRkxBR19QTFVHR0VELCBxKSkKIAkJcmV0dXJuIDA7CiAKLQlxdWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdfUExVR0dFRCwgcSk7CiAJZGVsX3RpbWVyKCZxLT51bnBsdWdfdGltZXIpOwogCXJldHVybiAxOwogfQpAQCAtMzI0LDggKzMyNiw3IEBACiAJICogb25lIGxldmVsIG9mIHJlY3Vyc2lvbiBpcyBvayBhbmQgaXMgbXVjaCBmYXN0ZXIgdGhhbiBraWNraW5nCiAJICogdGhlIHVucGx1ZyBoYW5kbGluZwogCSAqLwotCWlmICghdGVzdF9iaXQoUVVFVUVfRkxBR19SRUVOVEVSLCAmcS0+cXVldWVfZmxhZ3MpKSB7Ci0JCXF1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgcSk7CisJaWYgKCFxdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldChRVUVVRV9GTEFHX1JFRU5URVIsIHEpKSB7CiAJCXEtPnJlcXVlc3RfZm4ocSk7CiAJCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19SRUVOVEVSLCBxKTsKIAl9IGVsc2UgewpAQCAtMzkwLDggKzM5MSw3IEBACiAJICogaGFuZGxpbmcgcmVpbnZva2UgdGhlIGhhbmRsZXIgc2hvcnRseSBpZiB3ZSBhbHJlYWR5IGdvdCB0aGVyZS4KIAkgKi8KIAlpZiAoIWVsdl9xdWV1ZV9lbXB0eShxKSkgewotCQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgJnEtPnF1ZXVlX2ZsYWdzKSkgewotCQkJcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19SRUVOVEVSLCBxKTsKKwkJaWYgKCFxdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldChRVUVVRV9GTEFHX1JFRU5URVIsIHEpKSB7CiAJCQlxLT5yZXF1ZXN0X2ZuKHEpOwogCQkJcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX1JFRU5URVIsIHEpOwogCQl9IGVsc2UgewpAQCAtMTM4MSw2ICsxMzgxLDkgQEAKIAkJICovCiAJCWJsa19wYXJ0aXRpb25fcmVtYXAoYmlvKTsKIAorCQlpZiAoYmlvX2ludGVncml0eV9lbmFibGVkKGJpbykgJiYgYmlvX2ludGVncml0eV9wcmVwKGJpbykpCisJCQlnb3RvIGVuZF9pbzsKKwogCQlpZiAob2xkX3NlY3RvciAhPSAtMSkKIAkJCWJsa19hZGRfdHJhY2VfcmVtYXAocSwgYmlvLCBvbGRfZGV2LCBiaW8tPmJpX3NlY3RvciwKIAkJCQkJICAgIG9sZF9zZWN0b3IpOwpAQCAtMjA0NSw3ICsyMDQ4LDcgQEAKIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKIAkJSU5JVF9MSVNUX0hFQUQoJnBlcl9jcHUoYmxrX2NwdV9kb25lLCBpKSk7CiAKLQlvcGVuX3NvZnRpcnEoQkxPQ0tfU09GVElSUSwgYmxrX2RvbmVfc29mdGlycSwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKEJMT0NLX1NPRlRJUlEsIGJsa19kb25lX3NvZnRpcnEpOwogCXJlZ2lzdGVyX2hvdGNwdV9ub3RpZmllcigmYmxrX2NwdV9ub3RpZmllcik7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1pbnRlZ3JpdHkuYyBiL2Jsb2NrL2Jsay1pbnRlZ3JpdHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjFhODQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYmxvY2svYmxrLWludGVncml0eS5jCkBAIC0wLDAgKzEsMzgxIEBACisvKgorICogYmxrLWludGVncml0eS5jIC0gQmxvY2sgbGF5ZXIgZGF0YSBpbnRlZ3JpdHkgZXh0ZW5zaW9ucworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBPcmFjbGUgQ29ycG9yYXRpb24KKyAqIFdyaXR0ZW4gYnk6IE1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgorICogMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksCisgKiBVU0EuCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZW1wb29sLmg+CisjaW5jbHVkZSA8bGludXgvYmlvLmg+CisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKworI2luY2x1ZGUgImJsay5oIgorCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmludGVncml0eV9jYWNoZXA7CisKKy8qKgorICogYmxrX3JxX2NvdW50X2ludGVncml0eV9zZyAtIENvdW50IG51bWJlciBvZiBpbnRlZ3JpdHkgc2NhdHRlcmxpc3QgZWxlbWVudHMKKyAqIEBycToJCXJlcXVlc3Qgd2l0aCBpbnRlZ3JpdHkgbWV0YWRhdGEgYXR0YWNoZWQKKyAqCisgKiBEZXNjcmlwdGlvbjogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHJlcXVpcmVkIGluIGEKKyAqIHNjYXR0ZXJsaXN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGludGVncml0eSBtZXRhZGF0YSBpbiBhIHJlcXVlc3QuCisgKi8KK2ludCBibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnKHN0cnVjdCByZXF1ZXN0ICpycSkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXYsICppdnBydjsKKwlzdHJ1Y3QgcmVxX2l0ZXJhdG9yIGl0ZXI7CisJdW5zaWduZWQgaW50IHNlZ21lbnRzOworCisJaXZwcnYgPSBOVUxMOworCXNlZ21lbnRzID0gMDsKKworCXJxX2Zvcl9lYWNoX2ludGVncml0eV9zZWdtZW50KGl2LCBycSwgaXRlcikgeworCisJCWlmICghaXZwcnYgfHwgIUJJT1ZFQ19QSFlTX01FUkdFQUJMRShpdnBydiwgaXYpKQorCQkJc2VnbWVudHMrKzsKKworCQlpdnBydiA9IGl2OworCX0KKworCXJldHVybiBzZWdtZW50czsKK30KK0VYUE9SVF9TWU1CT0woYmxrX3JxX2NvdW50X2ludGVncml0eV9zZyk7CisKKy8qKgorICogYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2cgLSBNYXAgaW50ZWdyaXR5IG1ldGFkYXRhIGludG8gYSBzY2F0dGVybGlzdAorICogQHJxOgkJcmVxdWVzdCB3aXRoIGludGVncml0eSBtZXRhZGF0YSBhdHRhY2hlZAorICogQHNnbGlzdDoJdGFyZ2V0IHNjYXR0ZXJsaXN0CisgKgorICogRGVzY3JpcHRpb246IE1hcCB0aGUgaW50ZWdyaXR5IHZlY3RvcnMgaW4gcmVxdWVzdCBpbnRvIGEKKyAqIHNjYXR0ZXJsaXN0LiAgVGhlIHNjYXR0ZXJsaXN0IG11c3QgYmUgYmlnIGVub3VnaCB0byBob2xkIGFsbAorICogZWxlbWVudHMuICBJLmUuIHNpemVkIHVzaW5nIGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coKS4KKyAqLworaW50IGJsa19ycV9tYXBfaW50ZWdyaXR5X3NnKHN0cnVjdCByZXF1ZXN0ICpycSwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2xpc3QpCit7CisJc3RydWN0IGJpb192ZWMgKml2LCAqaXZwcnY7CisJc3RydWN0IHJlcV9pdGVyYXRvciBpdGVyOworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJdW5zaWduZWQgaW50IHNlZ21lbnRzOworCisJaXZwcnYgPSBOVUxMOworCXNnID0gTlVMTDsKKwlzZWdtZW50cyA9IDA7CisKKwlycV9mb3JfZWFjaF9pbnRlZ3JpdHlfc2VnbWVudChpdiwgcnEsIGl0ZXIpIHsKKworCQlpZiAoaXZwcnYpIHsKKwkJCWlmICghQklPVkVDX1BIWVNfTUVSR0VBQkxFKGl2cHJ2LCBpdikpCisJCQkJZ290byBuZXdfc2VnbWVudDsKKworCQkJc2ctPmxlbmd0aCArPSBpdi0+YnZfbGVuOworCQl9IGVsc2UgeworbmV3X3NlZ21lbnQ6CisJCQlpZiAoIXNnKQorCQkJCXNnID0gc2dsaXN0OworCQkJZWxzZSB7CisJCQkJc2ctPnBhZ2VfbGluayAmPSB+MHgwMjsKKwkJCQlzZyA9IHNnX25leHQoc2cpOworCQkJfQorCisJCQlzZ19zZXRfcGFnZShzZywgaXYtPmJ2X3BhZ2UsIGl2LT5idl9sZW4sIGl2LT5idl9vZmZzZXQpOworCQkJc2VnbWVudHMrKzsKKwkJfQorCisJCWl2cHJ2ID0gaXY7CisJfQorCisJaWYgKHNnKQorCQlzZ19tYXJrX2VuZChzZyk7CisKKwlyZXR1cm4gc2VnbWVudHM7Cit9CitFWFBPUlRfU1lNQk9MKGJsa19ycV9tYXBfaW50ZWdyaXR5X3NnKTsKKworLyoqCisgKiBibGtfaW50ZWdyaXR5X2NvbXBhcmUgLSBDb21wYXJlIGludGVncml0eSBwcm9maWxlIG9mIHR3byBibG9jayBkZXZpY2VzCisgKiBAYjE6CQlEZXZpY2UgdG8gY29tcGFyZQorICogQGIyOgkJRGV2aWNlIHRvIGNvbXBhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjogTWV0YS1kZXZpY2VzIGxpa2UgRE0gYW5kIE1EIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYWxsCisgKiBzdWItZGV2aWNlcyB1c2UgdGhlIHNhbWUgaW50ZWdyaXR5IGZvcm1hdCBiZWZvcmUgYWR2ZXJ0aXNpbmcgdG8KKyAqIHVwcGVyIGxheWVycyB0aGF0IHRoZXkgY2FuIHNlbmQvcmVjZWl2ZSBpbnRlZ3JpdHkgbWV0YWRhdGEuICBUaGlzCisgKiBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBjaGVjayB3aGV0aGVyIHR3byBibG9jayBkZXZpY2VzIGhhdmUKKyAqIGNvbXBhdGlibGUgaW50ZWdyaXR5IGZvcm1hdHMuCisgKi8KK2ludCBibGtfaW50ZWdyaXR5X2NvbXBhcmUoc3RydWN0IGJsb2NrX2RldmljZSAqYmQxLCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZDIpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmIxID0gYmQxLT5iZF9kaXNrLT5pbnRlZ3JpdHk7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmIyID0gYmQyLT5iZF9kaXNrLT5pbnRlZ3JpdHk7CisKKwlCVUdfT04oYmQxLT5iZF9kaXNrID09IE5VTEwpOworCUJVR19PTihiZDItPmJkX2Rpc2sgPT0gTlVMTCk7CisKKwlpZiAoIWIxIHx8ICFiMikKKwkJcmV0dXJuIDA7CisKKwlpZiAoYjEtPnNlY3Rvcl9zaXplICE9IGIyLT5zZWN0b3Jfc2l6ZSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcy8lcyBzZWN0b3Igc3ogJXUgIT0gJXVcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPnNlY3Rvcl9zaXplLCBiMi0+c2VjdG9yX3NpemUpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKGIxLT50dXBsZV9zaXplICE9IGIyLT50dXBsZV9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6ICVzLyVzIHR1cGxlIHN6ICV1ICE9ICV1XG4iLCBfX2Z1bmNfXywKKwkJICAgICAgIGJkMS0+YmRfZGlzay0+ZGlza19uYW1lLCBiZDItPmJkX2Rpc2stPmRpc2tfbmFtZSwKKwkJICAgICAgIGIxLT50dXBsZV9zaXplLCBiMi0+dHVwbGVfc2l6ZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoYjEtPnRhZ19zaXplICYmIGIyLT50YWdfc2l6ZSAmJiAoYjEtPnRhZ19zaXplICE9IGIyLT50YWdfc2l6ZSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogJXMvJXMgdGFnIHN6ICV1ICE9ICV1XG4iLCBfX2Z1bmNfXywKKwkJICAgICAgIGJkMS0+YmRfZGlzay0+ZGlza19uYW1lLCBiZDItPmJkX2Rpc2stPmRpc2tfbmFtZSwKKwkJICAgICAgIGIxLT50YWdfc2l6ZSwgYjItPnRhZ19zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzdHJjbXAoYjEtPm5hbWUsIGIyLT5uYW1lKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcy8lcyB0eXBlICVzICE9ICVzXG4iLCBfX2Z1bmNfXywKKwkJICAgICAgIGJkMS0+YmRfZGlzay0+ZGlza19uYW1lLCBiZDItPmJkX2Rpc2stPmRpc2tfbmFtZSwKKwkJICAgICAgIGIxLT5uYW1lLCBiMi0+bmFtZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woYmxrX2ludGVncml0eV9jb21wYXJlKTsKKworc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSB7CisJc3RydWN0IGF0dHJpYnV0ZSBhdHRyOworCXNzaXplX3QgKCpzaG93KShzdHJ1Y3QgYmxrX2ludGVncml0eSAqLCBjaGFyICopOworCXNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGJsa19pbnRlZ3JpdHkgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOworfTsKKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICBjaGFyICpwYWdlKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9CisJCWNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgYmxrX2ludGVncml0eSwga29iaik7CisJc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSAqZW50cnkgPQorCQljb250YWluZXJfb2YoYXR0ciwgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSwgYXR0cik7CisKKwlyZXR1cm4gZW50cnktPnNob3coYmksIHBhZ2UpOworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfYXR0cl9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqcGFnZSwKKwkJCQkgICAgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9CisJCWNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgYmxrX2ludGVncml0eSwga29iaik7CisJc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSAqZW50cnkgPQorCQljb250YWluZXJfb2YoYXR0ciwgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSwgYXR0cik7CisJc3NpemVfdCByZXQgPSAwOworCisJaWYgKGVudHJ5LT5zdG9yZSkKKwkJcmV0ID0gZW50cnktPnN0b3JlKGJpLCBwYWdlLCBjb3VudCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfZm9ybWF0X3Nob3coc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLCBjaGFyICpwYWdlKQoreworCWlmIChiaSAhPSBOVUxMICYmIGJpLT5uYW1lICE9IE5VTEwpCisJCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlc1xuIiwgYmktPm5hbWUpOworCWVsc2UKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIm5vbmVcbiIpOworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfdGFnX3NpemVfc2hvdyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksIGNoYXIgKnBhZ2UpCit7CisJaWYgKGJpICE9IE5VTEwpCisJCXJldHVybiBzcHJpbnRmKHBhZ2UsICIldVxuIiwgYmktPnRhZ19zaXplKTsKKwllbHNlCisJCXJldHVybiBzcHJpbnRmKHBhZ2UsICIwXG4iKTsKK30KKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X3JlYWRfc3RvcmUoc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLAorCQkJCSAgICBjb25zdCBjaGFyICpwYWdlLCBzaXplX3QgY291bnQpCit7CisJY2hhciAqcCA9IChjaGFyICopIHBhZ2U7CisJdW5zaWduZWQgbG9uZyB2YWwgPSBzaW1wbGVfc3RydG91bChwLCAmcCwgMTApOworCisJaWYgKHZhbCkKKwkJYmktPmZsYWdzIHw9IElOVEVHUklUWV9GTEFHX1JFQUQ7CisJZWxzZQorCQliaS0+ZmxhZ3MgJj0gfklOVEVHUklUWV9GTEFHX1JFQUQ7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV9yZWFkX3Nob3coc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLCBjaGFyICpwYWdlKQoreworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlZFxuIiwgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1JFQUQpICE9IDApOworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfd3JpdGVfc3RvcmUoc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLAorCQkJCSAgICAgY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KQoreworCWNoYXIgKnAgPSAoY2hhciAqKSBwYWdlOworCXVuc2lnbmVkIGxvbmcgdmFsID0gc2ltcGxlX3N0cnRvdWwocCwgJnAsIDEwKTsKKworCWlmICh2YWwpCisJCWJpLT5mbGFncyB8PSBJTlRFR1JJVFlfRkxBR19XUklURTsKKwllbHNlCisJCWJpLT5mbGFncyAmPSB+SU5URUdSSVRZX0ZMQUdfV1JJVEU7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV93cml0ZV9zaG93KHN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gc3ByaW50ZihwYWdlLCAiJWRcbiIsIChiaS0+ZmxhZ3MgJiBJTlRFR1JJVFlfRkxBR19XUklURSkgIT0gMCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5IGludGVncml0eV9mb3JtYXRfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gImZvcm1hdCIsIC5tb2RlID0gU19JUlVHTyB9LAorCS5zaG93ID0gaW50ZWdyaXR5X2Zvcm1hdF9zaG93LAorfTsKKworc3RhdGljIHN0cnVjdCBpbnRlZ3JpdHlfc3lzZnNfZW50cnkgaW50ZWdyaXR5X3RhZ19zaXplX2VudHJ5ID0geworCS5hdHRyID0geyAubmFtZSA9ICJ0YWdfc2l6ZSIsIC5tb2RlID0gU19JUlVHTyB9LAorCS5zaG93ID0gaW50ZWdyaXR5X3RhZ19zaXplX3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSBpbnRlZ3JpdHlfcmVhZF9lbnRyeSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAicmVhZF92ZXJpZnkiLCAubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSIH0sCisJLnNob3cgPSBpbnRlZ3JpdHlfcmVhZF9zaG93LAorCS5zdG9yZSA9IGludGVncml0eV9yZWFkX3N0b3JlLAorfTsKKworc3RhdGljIHN0cnVjdCBpbnRlZ3JpdHlfc3lzZnNfZW50cnkgaW50ZWdyaXR5X3dyaXRlX2VudHJ5ID0geworCS5hdHRyID0geyAubmFtZSA9ICJ3cml0ZV9nZW5lcmF0ZSIsIC5tb2RlID0gU19JUlVHTyB8IFNfSVdVU1IgfSwKKwkuc2hvdyA9IGludGVncml0eV93cml0ZV9zaG93LAorCS5zdG9yZSA9IGludGVncml0eV93cml0ZV9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppbnRlZ3JpdHlfYXR0cnNbXSA9IHsKKwkmaW50ZWdyaXR5X2Zvcm1hdF9lbnRyeS5hdHRyLAorCSZpbnRlZ3JpdHlfdGFnX3NpemVfZW50cnkuYXR0ciwKKwkmaW50ZWdyaXR5X3JlYWRfZW50cnkuYXR0ciwKKwkmaW50ZWdyaXR5X3dyaXRlX2VudHJ5LmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZnNfb3BzIGludGVncml0eV9vcHMgPSB7CisJLnNob3cJPSAmaW50ZWdyaXR5X2F0dHJfc2hvdywKKwkuc3RvcmUJPSAmaW50ZWdyaXR5X2F0dHJfc3RvcmUsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBibGtfZGV2X2ludGVncml0eV9pbml0KHZvaWQpCit7CisJaW50ZWdyaXR5X2NhY2hlcCA9IGttZW1fY2FjaGVfY3JlYXRlKCJibGtkZXZfaW50ZWdyaXR5IiwKKwkJCQkJICAgICBzaXplb2Yoc3RydWN0IGJsa19pbnRlZ3JpdHkpLAorCQkJCQkgICAgIDAsIFNMQUJfUEFOSUMsIE5VTEwpOworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKGJsa19kZXZfaW50ZWdyaXR5X2luaXQpOworCitzdGF0aWMgdm9pZCBibGtfaW50ZWdyaXR5X3JlbGVhc2Uoc3RydWN0IGtvYmplY3QgKmtvYmopCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0KKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfaW50ZWdyaXR5LCBrb2JqKTsKKworCWttZW1fY2FjaGVfZnJlZShpbnRlZ3JpdHlfY2FjaGVwLCBiaSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBlIGludGVncml0eV9rdHlwZSA9IHsKKwkuZGVmYXVsdF9hdHRycwk9IGludGVncml0eV9hdHRycywKKwkuc3lzZnNfb3BzCT0gJmludGVncml0eV9vcHMsCisJLnJlbGVhc2UJPSBibGtfaW50ZWdyaXR5X3JlbGVhc2UsCit9OworCisvKioKKyAqIGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIgLSBSZWdpc3RlciBhIGdlbmRpc2sgYXMgYmVpbmcgaW50ZWdyaXR5LWNhcGFibGUKKyAqIEBkaXNrOglzdHJ1Y3QgZ2VuZGlzayBwb2ludGVyIHRvIG1ha2UgaW50ZWdyaXR5LWF3YXJlCisgKiBAdGVtcGxhdGU6CWludGVncml0eSBwcm9maWxlCisgKgorICogRGVzY3JpcHRpb246IFdoZW4gYSBkZXZpY2UgbmVlZHMgdG8gYWR2ZXJ0aXNlIGl0c2VsZiBhcyBiZWluZyBhYmxlCisgKiB0byBzZW5kL3JlY2VpdmUgaW50ZWdyaXR5IG1ldGFkYXRhIGl0IG11c3QgdXNlIHRoaXMgZnVuY3Rpb24gdG8KKyAqIHJlZ2lzdGVyIHRoZSBjYXBhYmlsaXR5IHdpdGggdGhlIGJsb2NrIGxheWVyLiAgVGhlIHRlbXBsYXRlIGlzIGEKKyAqIGJsa19pbnRlZ3JpdHkgc3RydWN0IHdpdGggdmFsdWVzIGFwcHJvcHJpYXRlIGZvciB0aGUgdW5kZXJseWluZworICogaGFyZHdhcmUuICBTZWUgRG9jdW1lbnRhdGlvbi9ibG9jay9kYXRhLWludGVncml0eS50eHQuCisgKi8KK2ludCBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBzdHJ1Y3QgYmxrX2ludGVncml0eSAqdGVtcGxhdGUpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpOworCisJQlVHX09OKGRpc2sgPT0gTlVMTCk7CisJQlVHX09OKHRlbXBsYXRlID09IE5VTEwpOworCisJaWYgKGRpc2stPmludGVncml0eSA9PSBOVUxMKSB7CisJCWJpID0ga21lbV9jYWNoZV9hbGxvYyhpbnRlZ3JpdHlfY2FjaGVwLAorCQkJCQkJR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCQlpZiAoIWJpKQorCQkJcmV0dXJuIC0xOworCisJCWlmIChrb2JqZWN0X2luaXRfYW5kX2FkZCgmYmktPmtvYmosICZpbnRlZ3JpdHlfa3R5cGUsCisJCQkJCSAmZGlzay0+ZGV2LmtvYmosICIlcyIsICJpbnRlZ3JpdHkiKSkgeworCQkJa21lbV9jYWNoZV9mcmVlKGludGVncml0eV9jYWNoZXAsIGJpKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCWtvYmplY3RfdWV2ZW50KCZiaS0+a29iaiwgS09CSl9BREQpOworCisJCWJpLT5mbGFncyB8PSBJTlRFR1JJVFlfRkxBR19SRUFEIHwgSU5URUdSSVRZX0ZMQUdfV1JJVEU7CisJCWJpLT5zZWN0b3Jfc2l6ZSA9IGRpc2stPnF1ZXVlLT5oYXJkc2VjdF9zaXplOworCQlkaXNrLT5pbnRlZ3JpdHkgPSBiaTsKKwl9IGVsc2UKKwkJYmkgPSBkaXNrLT5pbnRlZ3JpdHk7CisKKwkvKiBVc2UgdGhlIHByb3ZpZGVkIHByb2ZpbGUgYXMgdGVtcGxhdGUgKi8KKwliaS0+bmFtZSA9IHRlbXBsYXRlLT5uYW1lOworCWJpLT5nZW5lcmF0ZV9mbiA9IHRlbXBsYXRlLT5nZW5lcmF0ZV9mbjsKKwliaS0+dmVyaWZ5X2ZuID0gdGVtcGxhdGUtPnZlcmlmeV9mbjsKKwliaS0+dHVwbGVfc2l6ZSA9IHRlbXBsYXRlLT50dXBsZV9zaXplOworCWJpLT5zZXRfdGFnX2ZuID0gdGVtcGxhdGUtPnNldF90YWdfZm47CisJYmktPmdldF90YWdfZm4gPSB0ZW1wbGF0ZS0+Z2V0X3RhZ19mbjsKKwliaS0+dGFnX3NpemUgPSB0ZW1wbGF0ZS0+dGFnX3NpemU7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woYmxrX2ludGVncml0eV9yZWdpc3Rlcik7CisKKy8qKgorICogYmxrX2ludGVncml0eV91bnJlZ2lzdGVyIC0gUmVtb3ZlIGJsb2NrIGludGVncml0eSBwcm9maWxlCisgKiBAZGlzazoJZGlzayB3aG9zZSBpbnRlZ3JpdHkgcHJvZmlsZSB0byBkZWFsbG9jYXRlCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gZnJlZXMgYWxsIG1lbW9yeSB1c2VkIGJ5IHRoZSBibG9jaworICogaW50ZWdyaXR5IHByb2ZpbGUuICBUbyBiZSBjYWxsZWQgYXQgZGV2aWNlIHRlYXJkb3duLgorICovCit2b2lkIGJsa19pbnRlZ3JpdHlfdW5yZWdpc3RlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisKKwlpZiAoIWRpc2sgfHwgIWRpc2stPmludGVncml0eSkKKwkJcmV0dXJuOworCisJYmkgPSBkaXNrLT5pbnRlZ3JpdHk7CisKKwlrb2JqZWN0X3VldmVudCgmYmktPmtvYmosIEtPQkpfUkVNT1ZFKTsKKwlrb2JqZWN0X2RlbCgmYmktPmtvYmopOworCWtvYmplY3RfcHV0KCZkaXNrLT5kZXYua29iaik7CisJa21lbV9jYWNoZV9mcmVlKGludGVncml0eV9jYWNoZXAsIGJpKTsKK30KK0VYUE9SVF9TWU1CT0woYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tYXAuYyBiL2Jsb2NrL2Jsay1tYXAuYwppbmRleCAwYjFhZjVhLi5kZGQ5NmZiIDEwMDY0NAotLS0gYS9ibG9jay9ibGstbWFwLmMKKysrIGIvYmxvY2svYmxrLW1hcC5jCkBAIC0yMTAsNiArMjEwLDcgQEAKIAlpZiAoIWJpb19mbGFnZ2VkKGJpbywgQklPX1VTRVJfTUFQUEVEKSkKIAkJcnEtPmNtZF9mbGFncyB8PSBSRVFfQ09QWV9VU0VSOwogCisJYmxrX3F1ZXVlX2JvdW5jZShxLCAmYmlvKTsKIAliaW9fZ2V0KGJpbyk7CiAJYmxrX3JxX2Jpb19wcmVwKHEsIHJxLCBiaW8pOwogCXJxLT5idWZmZXIgPSBycS0+ZGF0YSA9IE5VTEw7CkBAIC0yNjgsNiArMjY5LDcgQEAKIAlpbnQgcmVhZGluZyA9IHJxX2RhdGFfZGlyKHJxKSA9PSBSRUFEOwogCWludCBkb19jb3B5ID0gMDsKIAlzdHJ1Y3QgYmlvICpiaW87CisJdW5zaWduZWQgbG9uZyBzdGFja19tYXNrID0gfihUSFJFQURfU0laRSAtIDEpOwogCiAJaWYgKGxlbiA+IChxLT5tYXhfaHdfc2VjdG9ycyA8PCA5KSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0yNzgsNiArMjgwLDEwIEBACiAJYWxpZ25tZW50ID0gcXVldWVfZG1hX2FsaWdubWVudChxKSB8IHEtPmRtYV9wYWRfbWFzazsKIAlkb19jb3B5ID0gKChrYWRkciAmIGFsaWdubWVudCkgfHwgKGxlbiAmIGFsaWdubWVudCkpOwogCisJaWYgKCEoKGthZGRyICYgc3RhY2tfbWFzaykgXgorCSAgICAgICgodW5zaWduZWQgbG9uZyljdXJyZW50LT5zdGFjayAmIHN0YWNrX21hc2spKSkKKwkJZG9fY29weSA9IDE7CisKIAlpZiAoZG9fY29weSkKIAkJYmlvID0gYmlvX2NvcHlfa2VybihxLCBrYnVmLCBsZW4sIGdmcF9tYXNrLCByZWFkaW5nKTsKIAllbHNlCmRpZmYgLS1naXQgYS9ibG9jay9ibGstbWVyZ2UuYyBiL2Jsb2NrL2Jsay1tZXJnZS5jCmluZGV4IDY1MTEzNmEuLjVlZmM5ZTcgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tZXJnZS5jCisrKyBiL2Jsb2NrL2Jsay1tZXJnZS5jCkBAIC00NDEsNiArNDQxLDkgQEAKIAkgICAgfHwgbmV4dC0+c3BlY2lhbCkKIAkJcmV0dXJuIDA7CiAKKwlpZiAoYmxrX2ludGVncml0eV9ycShyZXEpICE9IGJsa19pbnRlZ3JpdHlfcnEobmV4dCkpCisJCXJldHVybiAwOworCiAJLyoKIAkgKiBJZiB3ZSBhcmUgYWxsb3dlZCB0byBtZXJnZSwgdGhlbiBhcHBlbmQgYmlvIGxpc3QKIAkgKiBmcm9tIG5leHQgdG8gcnEgYW5kIHJlbGVhc2UgbmV4dC4gbWVyZ2VfcmVxdWVzdHNfZm4KZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1zZXR0aW5ncy5jIGIvYmxvY2svYmxrLXNldHRpbmdzLmMKaW5kZXggOGRkODY0MS4uZGZjNzcwMSAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLXNldHRpbmdzLmMKKysrIGIvYmxvY2svYmxrLXNldHRpbmdzLmMKQEAgLTMwMiwxMSArMzAyLDEwIEBACiAgKiBAcTogICAgIHRoZSByZXF1ZXN0IHF1ZXVlIGZvciB0aGUgZGV2aWNlCiAgKiBAbWFzazogIHBhZCBtYXNrCiAgKgotICogU2V0IHBhZCBtYXNrLiAgRGlyZWN0IElPIHJlcXVlc3RzIGFyZSBwYWRkZWQgdG8gdGhlIG1hc2sgc3BlY2lmaWVkLgorICogU2V0IGRtYSBwYWQgbWFzay4KICAqCi0gKiBBcHBlbmRpbmcgcGFkIGJ1ZmZlciB0byBhIHJlcXVlc3QgbW9kaWZpZXMgLT5kYXRhX2xlbiBzdWNoIHRoYXQgaXQKLSAqIGluY2x1ZGVzIHRoZSBwYWQgYnVmZmVyLiAgVGhlIG9yaWdpbmFsIHJlcXVlc3RlZCBkYXRhIGxlbmd0aCBjYW4gYmUKLSAqIG9idGFpbmVkIHVzaW5nIGJsa19ycV9yYXdfZGF0YV9sZW4oKS4KKyAqIEFwcGVuZGluZyBwYWQgYnVmZmVyIHRvIGEgcmVxdWVzdCBtb2RpZmllcyB0aGUgbGFzdCBlbnRyeSBvZiBhCisgKiBzY2F0dGVyIGxpc3Qgc3VjaCB0aGF0IGl0IGluY2x1ZGVzIHRoZSBwYWQgYnVmZmVyLgogICoqLwogdm9pZCBibGtfcXVldWVfZG1hX3BhZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IG1hc2spCiB7CkBAIC0zMTUsNiArMzE0LDIzIEBACiBFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9kbWFfcGFkKTsKIAogLyoqCisgKiBibGtfcXVldWVfdXBkYXRlX2RtYV9wYWQgLSB1cGRhdGUgcGFkIG1hc2sKKyAqIEBxOiAgICAgdGhlIHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKKyAqIEBtYXNrOiAgcGFkIG1hc2sKKyAqCisgKiBVcGRhdGUgZG1hIHBhZCBtYXNrLgorICoKKyAqIEFwcGVuZGluZyBwYWQgYnVmZmVyIHRvIGEgcmVxdWVzdCBtb2RpZmllcyB0aGUgbGFzdCBlbnRyeSBvZiBhCisgKiBzY2F0dGVyIGxpc3Qgc3VjaCB0aGF0IGl0IGluY2x1ZGVzIHRoZSBwYWQgYnVmZmVyLgorICoqLwordm9pZCBibGtfcXVldWVfdXBkYXRlX2RtYV9wYWQoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHVuc2lnbmVkIGludCBtYXNrKQoreworCWlmIChtYXNrID4gcS0+ZG1hX3BhZF9tYXNrKQorCQlxLT5kbWFfcGFkX21hc2sgPSBtYXNrOworfQorRVhQT1JUX1NZTUJPTChibGtfcXVldWVfdXBkYXRlX2RtYV9wYWQpOworCisvKioKICAqIGJsa19xdWV1ZV9kbWFfZHJhaW4gLSBTZXQgdXAgYSBkcmFpbiBidWZmZXIgZm9yIGV4Y2VzcyBkbWEuCiAgKiBAcTogIHRoZSByZXF1ZXN0IHF1ZXVlIGZvciB0aGUgZGV2aWNlCiAgKiBAZG1hX2RyYWluX25lZWRlZDogZm4gd2hpY2ggcmV0dXJucyBub24temVybyBpZiBkcmFpbiBpcyBuZWNlc3NhcnkKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay5oIGIvYmxvY2svYmxrLmgKaW5kZXggNTk3NzZhYi4uYzc5ZjMwZSAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLmgKKysrIGIvYmxvY2svYmxrLmgKQEAgLTUxLDQgKzUxLDEyIEBACiAJcmV0dXJuIHEtPm5yX2Nvbmdlc3Rpb25fb2ZmOwogfQogCisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisKKyNkZWZpbmUgcnFfZm9yX2VhY2hfaW50ZWdyaXR5X3NlZ21lbnQoYnZsLCBfcnEsIF9pdGVyKQkJXAorCV9fcnFfZm9yX2VhY2hfYmlvKF9pdGVyLmJpbywgX3JxKQkJCVwKKwkJYmlwX2Zvcl9lYWNoX3ZlYyhidmwsIF9pdGVyLmJpby0+YmlfaW50ZWdyaXR5LCBfaXRlci5pKQorCisjZW5kaWYgLyogQkxLX0RFVl9JTlRFR1JJVFkgKi8KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9ibG9jay9ibGt0cmFjZS5jIGIvYmxvY2svYmxrdHJhY2UuYwppbmRleCA3YWU4N2NjLi5lYjk2NTFjIDEwMDY0NAotLS0gYS9ibG9jay9ibGt0cmFjZS5jCisrKyBiL2Jsb2NrL2Jsa3RyYWNlLmMKQEAgLTc5LDE2ICs3OSwxNyBAQAogewogCWludCBuOwogCXZhX2xpc3QgYXJnczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWNoYXIgKmJ1ZjsKIAotCXByZWVtcHRfZGlzYWJsZSgpOworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAlidWYgPSBwZXJfY3B1X3B0cihidC0+bXNnX2RhdGEsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJdmFfc3RhcnQoYXJncywgZm10KTsKIAluID0gdnNjbnByaW50ZihidWYsIEJMS19UTl9NQVhfTVNHLCBmbXQsIGFyZ3MpOwogCXZhX2VuZChhcmdzKTsKIAogCXRyYWNlX25vdGUoYnQsIDAsIEJMS19UTl9NRVNTQUdFLCBidWYsIG4pOwotCXByZWVtcHRfZW5hYmxlKCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoX190cmFjZV9ub3RlX21lc3NhZ2UpOwogCkBAIC0xNTgsMTAgKzE1OSw3IEBACiAJLyoKIAkgKiBBIHdvcmQgYWJvdXQgdGhlIGxvY2tpbmcgaGVyZSAtIHdlIGRpc2FibGUgaW50ZXJydXB0cyB0byByZXNlcnZlCiAJICogc29tZSBzcGFjZSBpbiB0aGUgcmVsYXkgcGVyLWNwdSBidWZmZXIsIHRvIHByZXZlbnQgYW4gaXJxCi0JICogZnJvbSBjb21pbmcgaW4gYW5kIHN0ZXBwaW5nIG9uIG91ciB0b2VzLiBPbmNlIHJlc2VydmVkLCBpdCdzCi0JICogZW5vdWdoIHRvIGdldCBwcmVlbXB0aW9uIGRpc2FibGVkIHRvIHByZXZlbnQgcmVhZCBvZiB0aGlzIGRhdGEKLQkgKiBiZWZvcmUgd2UgYXJlIHRocm91Z2ggZmlsbGluZyBpdC4gZ2V0X2NwdSgpL3B1dF9jcHUoKSBkb2VzIHRoaXMKLQkgKiBmb3IgdXMKKwkgKiBmcm9tIGNvbWluZyBpbiBhbmQgc3RlcHBpbmcgb24gb3VyIHRvZXMuCiAJICovCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCkBAIC0yNDYsNiArMjQ0LDcgQEAKIHN0YXRpYyB2b2lkIGJsa190cmFjZV9jbGVhbnVwKHN0cnVjdCBibGtfdHJhY2UgKmJ0KQogewogCXJlbGF5X2Nsb3NlKGJ0LT5yY2hhbik7CisJZGVidWdmc19yZW1vdmUoYnQtPm1zZ19maWxlKTsKIAlkZWJ1Z2ZzX3JlbW92ZShidC0+ZHJvcHBlZF9maWxlKTsKIAlibGtfcmVtb3ZlX3RyZWUoYnQtPmRpcik7CiAJZnJlZV9wZXJjcHUoYnQtPnNlcXVlbmNlKTsKQEAgLTI5Myw2ICsyOTIsNDQgQEAKIAkucmVhZCA9CQlibGtfZHJvcHBlZF9yZWFkLAogfTsKIAorc3RhdGljIGludCBibGtfbXNnX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJZmlscC0+cHJpdmF0ZV9kYXRhID0gaW5vZGUtPmlfcHJpdmF0ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdCBibGtfbXNnX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAorCQkJCXNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgKm1zZzsKKwlzdHJ1Y3QgYmxrX3RyYWNlICpidDsKKworCWlmIChjb3VudCA+IEJMS19UTl9NQVhfTVNHKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW1zZyA9IGttYWxsb2MoY291bnQsIEdGUF9LRVJORUwpOworCWlmIChtc2cgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoY29weV9mcm9tX3VzZXIobXNnLCBidWZmZXIsIGNvdW50KSkgeworCQlrZnJlZShtc2cpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlidCA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlfX3RyYWNlX25vdGVfbWVzc2FnZShidCwgIiVzIiwgbXNnKTsKKwlrZnJlZShtc2cpOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBibGtfbXNnX2ZvcHMgPSB7CisJLm93bmVyID0JVEhJU19NT0RVTEUsCisJLm9wZW4gPQkJYmxrX21zZ19vcGVuLAorCS53cml0ZSA9CWJsa19tc2dfd3JpdGUsCit9OworCiAvKgogICogS2VlcCB0cmFjayBvZiBob3cgbWFueSB0aW1lcyB3ZSBlbmNvdW50ZXJlZCBhIGZ1bGwgc3ViYnVmZmVyLCB0byBhaWQKICAqIHRoZSB1c2VyIHNwYWNlIGFwcCBpbiB0ZWxsaW5nIGhvdyBtYW55IGxvc3QgZXZlbnRzIHRoZXJlIHdlcmUuCkBAIC0zODIsNiArNDE5LDEwIEBACiAJaWYgKCFidC0+ZHJvcHBlZF9maWxlKQogCQlnb3RvIGVycjsKIAorCWJ0LT5tc2dfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoIm1zZyIsIDAyMjIsIGRpciwgYnQsICZibGtfbXNnX2ZvcHMpOworCWlmICghYnQtPm1zZ19maWxlKQorCQlnb3RvIGVycjsKKwogCWJ0LT5yY2hhbiA9IHJlbGF5X29wZW4oInRyYWNlIiwgZGlyLCBidXRzLT5idWZfc2l6ZSwKIAkJCQlidXRzLT5idWZfbnIsICZibGtfcmVsYXlfY2FsbGJhY2tzLCBidCk7CiAJaWYgKCFidC0+cmNoYW4pCkBAIC00MTEsNiArNDUyLDggQEAKIAlpZiAoZGlyKQogCQlibGtfcmVtb3ZlX3RyZWUoZGlyKTsKIAlpZiAoYnQpIHsKKwkJaWYgKGJ0LT5tc2dfZmlsZSkKKwkJCWRlYnVnZnNfcmVtb3ZlKGJ0LT5tc2dfZmlsZSk7CiAJCWlmIChidC0+ZHJvcHBlZF9maWxlKQogCQkJZGVidWdmc19yZW1vdmUoYnQtPmRyb3BwZWRfZmlsZSk7CiAJCWZyZWVfcGVyY3B1KGJ0LT5zZXF1ZW5jZSk7CmRpZmYgLS1naXQgYS9ibG9jay9ic2cuYyBiL2Jsb2NrL2JzZy5jCmluZGV4IGYwYjdjZDMuLjBiM2IyODIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2JzZy5jCisrKyBiL2Jsb2NrL2JzZy5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVkZSA8bGludXgvaWRyLmg+CiAjaW5jbHVkZSA8bGludXgvYnNnLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPHNjc2kvc2NzaS5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaV9pb2N0bC5oPgpAQCAtNDQsMTEgKzQ1LDEyIEBACiAJY2hhciBuYW1lW0JVU19JRF9TSVpFXTsKIAlpbnQgbWF4X3F1ZXVlOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmNtZF9maWx0ZXI7CisJbW9kZV90ICpmX21vZGU7CiB9OwogCiBlbnVtIHsKIAlCU0dfRl9CTE9DSwkJPSAxLAotCUJTR19GX1dSSVRFX1BFUk0JPSAyLAogfTsKIAogI2RlZmluZSBCU0dfREVGQVVMVF9DTURTCTY0CkBAIC0xNzIsNyArMTc0LDcgQEAKIH0KIAogc3RhdGljIGludCBibGtfZmlsbF9zZ3Y0X2hkcl9ycShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IHJlcXVlc3QgKnJxLAotCQkJCXN0cnVjdCBzZ19pb192NCAqaGRyLCBpbnQgaGFzX3dyaXRlX3Blcm0pCisJCQkJc3RydWN0IHNnX2lvX3Y0ICpoZHIsIHN0cnVjdCBic2dfZGV2aWNlICpiZCkKIHsKIAlpZiAoaGRyLT5yZXF1ZXN0X2xlbiA+IEJMS19NQVhfQ0RCKSB7CiAJCXJxLT5jbWQgPSBremFsbG9jKGhkci0+cmVxdWVzdF9sZW4sIEdGUF9LRVJORUwpOwpAQCAtMTg1LDcgKzE4Nyw4IEBACiAJCXJldHVybiAtRUZBVUxUOwogCiAJaWYgKGhkci0+c3VicHJvdG9jb2wgPT0gQlNHX1NVQl9QUk9UT0NPTF9TQ1NJX0NNRCkgewotCQlpZiAoYmxrX3ZlcmlmeV9jb21tYW5kKHJxLT5jbWQsIGhhc193cml0ZV9wZXJtKSkKKwkJaWYgKGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKGJkLT5jbWRfZmlsdGVyLCBycS0+Y21kLAorCQkJCQkJIGJkLT5mX21vZGUpKQogCQkJcmV0dXJuIC1FUEVSTTsKIAl9IGVsc2UgaWYgKCFjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQogCQlyZXR1cm4gLUVQRVJNOwpAQCAtMjYzLDggKzI2Niw3IEBACiAJcnEgPSBibGtfZ2V0X3JlcXVlc3QocSwgcncsIEdGUF9LRVJORUwpOwogCWlmICghcnEpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCXJldCA9IGJsa19maWxsX3NndjRfaGRyX3JxKHEsIHJxLCBoZHIsIHRlc3RfYml0KEJTR19GX1dSSVRFX1BFUk0sCi0JCQkJCQkgICAgICAgJmJkLT5mbGFncykpOworCXJldCA9IGJsa19maWxsX3NndjRfaGRyX3JxKHEsIHJxLCBoZHIsIGJkKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIApAQCAtNTY2LDEyICs1NjgsMjMgQEAKIAkJc2V0X2JpdChCU0dfRl9CTE9DSywgJmJkLT5mbGFncyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBic2dfc2V0X3dyaXRlX3Blcm0oc3RydWN0IGJzZ19kZXZpY2UgKmJkLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3N0YXRpYyB2b2lkIGJzZ19zZXRfY21kX2ZpbHRlcihzdHJ1Y3QgYnNnX2RldmljZSAqYmQsCisJCQkgICBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCi0JCXNldF9iaXQoQlNHX0ZfV1JJVEVfUEVSTSwgJmJkLT5mbGFncyk7Ci0JZWxzZQotCQljbGVhcl9iaXQoQlNHX0ZfV1JJVEVfUEVSTSwgJmJkLT5mbGFncyk7CisJc3RydWN0IGlub2RlICppbm9kZTsKKwlzdHJ1Y3QgZ2VuZGlzayAqZGlzazsKKworCWlmICghZmlsZSkKKwkJcmV0dXJuOworCisJaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsKKwlpZiAoIWlub2RlKQorCQlyZXR1cm47CisKKwlkaXNrID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzazsKKworCWJkLT5jbWRfZmlsdGVyID0gJmRpc2stPmNtZF9maWx0ZXI7CisJYmQtPmZfbW9kZSA9ICZmaWxlLT5mX21vZGU7CiB9CiAKIC8qCkBAIC01OTUsNiArNjA4LDggQEAKIAlkcHJpbnRrKCIlczogcmVhZCAlWmQgYnl0ZXNcbiIsIGJkLT5uYW1lLCBjb3VudCk7CiAKIAlic2dfc2V0X2Jsb2NrKGJkLCBmaWxlKTsKKwlic2dfc2V0X2NtZF9maWx0ZXIoYmQsIGZpbGUpOworCiAJYnl0ZXNfcmVhZCA9IDA7CiAJcmV0ID0gX19ic2dfcmVhZChidWYsIGNvdW50LCBiZCwgTlVMTCwgJmJ5dGVzX3JlYWQpOwogCSpwcG9zID0gYnl0ZXNfcmVhZDsKQEAgLTY2OCw3ICs2ODMsNyBAQAogCWRwcmludGsoIiVzOiB3cml0ZSAlWmQgYnl0ZXNcbiIsIGJkLT5uYW1lLCBjb3VudCk7CiAKIAlic2dfc2V0X2Jsb2NrKGJkLCBmaWxlKTsKLQlic2dfc2V0X3dyaXRlX3Blcm0oYmQsIGZpbGUpOworCWJzZ19zZXRfY21kX2ZpbHRlcihiZCwgZmlsZSk7CiAKIAlieXRlc193cml0dGVuID0gMDsKIAlyZXQgPSBfX2JzZ193cml0ZShiZCwgYnVmLCBjb3VudCwgJmJ5dGVzX3dyaXR0ZW4pOwpAQCAtNzA5LDExICs3MjQsMTIgQEAKIHsKIAlzdHJ1Y3QgYnNnX2NsYXNzX2RldmljZSAqYmNkID0KIAkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBic2dfY2xhc3NfZGV2aWNlLCByZWYpOworCXN0cnVjdCBkZXZpY2UgKnBhcmVudCA9IGJjZC0+cGFyZW50OwogCiAJaWYgKGJjZC0+cmVsZWFzZSkKIAkJYmNkLT5yZWxlYXNlKGJjZC0+cGFyZW50KTsKIAotCXB1dF9kZXZpY2UoYmNkLT5wYXJlbnQpOworCXB1dF9kZXZpY2UocGFyZW50KTsKIH0KIAogc3RhdGljIGludCBic2dfcHV0X2RldmljZShzdHJ1Y3QgYnNnX2RldmljZSAqYmQpCkBAIC03NzEsNyArNzg3LDkgQEAKIAl9CiAKIAliZC0+cXVldWUgPSBycTsKKwogCWJzZ19zZXRfYmxvY2soYmQsIGZpbGUpOworCWJzZ19zZXRfY21kX2ZpbHRlcihiZCwgZmlsZSk7CiAKIAlhdG9taWNfc2V0KCZiZC0+cmVmX2NvdW50LCAxKTsKIAltdXRleF9sb2NrKCZic2dfbXV0ZXgpOwpAQCAtODM0LDcgKzg1MiwxMSBAQAogCiBzdGF0aWMgaW50IGJzZ19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCXN0cnVjdCBic2dfZGV2aWNlICpiZCA9IGJzZ19nZXRfZGV2aWNlKGlub2RlLCBmaWxlKTsKKwlzdHJ1Y3QgYnNnX2RldmljZSAqYmQ7CisKKwlsb2NrX2tlcm5lbCgpOworCWJkID0gYnNnX2dldF9kZXZpY2UoaW5vZGUsIGZpbGUpOworCXVubG9ja19rZXJuZWwoKTsKIAogCWlmIChJU19FUlIoYmQpKQogCQlyZXR1cm4gUFRSX0VSUihiZCk7CmRpZmYgLS1naXQgYS9ibG9jay9jZnEtaW9zY2hlZC5jIGIvYmxvY2svY2ZxLWlvc2NoZWQuYwppbmRleCBkMDFiNDExLi4xZTJhZmY4IDEwMDY0NAotLS0gYS9ibG9jay9jZnEtaW9zY2hlZC5jCisrKyBiL2Jsb2NrL2NmcS1pb3NjaGVkLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lbGV2YXRvci5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcHJpby5oPgorI2luY2x1ZGUgPGxpbnV4L2Jsa3RyYWNlX2FwaS5oPgogCiAvKgogICogdHVuYWJsZXMKQEAgLTQxLDEzICs0MiwxNCBAQAogCiAjZGVmaW5lIFJRX0NJQyhycSkJCVwKIAkoKHN0cnVjdCBjZnFfaW9fY29udGV4dCAqKSAocnEpLT5lbGV2YXRvcl9wcml2YXRlKQotI2RlZmluZSBSUV9DRlFRKHJxKQkJKChycSktPmVsZXZhdG9yX3ByaXZhdGUyKQorI2RlZmluZSBSUV9DRlFRKHJxKQkJKHN0cnVjdCBjZnFfcXVldWUgKikgKChycSktPmVsZXZhdG9yX3ByaXZhdGUyKQogCiBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmNmcV9wb29sOwogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpjZnFfaW9jX3Bvb2w7CiAKIHN0YXRpYyBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCBsb25nLCBpb2NfY291bnQpOwogc3RhdGljIHN0cnVjdCBjb21wbGV0aW9uICppb2NfZ29uZTsKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soaW9jX2dvbmVfbG9jayk7CiAKICNkZWZpbmUgQ0ZRX1BSSU9fTElTVFMJCUlPUFJJT19CRV9OUgogI2RlZmluZSBjZnFfY2xhc3NfaWRsZShjZnFxKQkoKGNmcXEpLT5pb3ByaW9fY2xhc3MgPT0gSU9QUklPX0NMQVNTX0lETEUpCkBAIC0xNTUsNiArMTU3LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBpb3ByaW8sIG9yZ19pb3ByaW87CiAJdW5zaWduZWQgc2hvcnQgaW9wcmlvX2NsYXNzLCBvcmdfaW9wcmlvX2NsYXNzOwogCisJcGlkX3QgcGlkOwogfTsKIAogZW51bSBjZnFxX3N0YXRlX2ZsYWdzIHsKQEAgLTE5OCw2ICsyMDEsMTEgQEAKIENGUV9DRlFRX0ZOUyhzeW5jKTsKICN1bmRlZiBDRlFfQ0ZRUV9GTlMKIAorI2RlZmluZSBjZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgZm10LCBhcmdzLi4uKQlcCisJYmxrX2FkZF90cmFjZV9tc2coKGNmcWQpLT5xdWV1ZSwgImNmcSVkICIgZm10LCAoY2ZxcSktPnBpZCwgIyNhcmdzKQorI2RlZmluZSBjZnFfbG9nKGNmcWQsIGZtdCwgYXJncy4uLikJXAorCWJsa19hZGRfdHJhY2VfbXNnKChjZnFkKS0+cXVldWUsICJjZnEgIiBmbXQsICMjYXJncykKKwogc3RhdGljIHZvaWQgY2ZxX2Rpc3BhdGNoX2luc2VydChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsKIHN0YXRpYyBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFfZ2V0X3F1ZXVlKHN0cnVjdCBjZnFfZGF0YSAqLCBpbnQsCiAJCQkJICAgICAgIHN0cnVjdCBpb19jb250ZXh0ICosIGdmcF90KTsKQEAgLTIzNCw4ICsyNDIsMTAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGNmcV9zY2hlZHVsZV9kaXNwYXRjaChzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQpCiB7Ci0JaWYgKGNmcWQtPmJ1c3lfcXVldWVzKQorCWlmIChjZnFkLT5idXN5X3F1ZXVlcykgeworCQljZnFfbG9nKGNmcWQsICJzY2hlZHVsZSBkaXNwYXRjaCIpOwogCQlrYmxvY2tkX3NjaGVkdWxlX3dvcmsoJmNmcWQtPnVucGx1Z193b3JrKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgY2ZxX3F1ZXVlX2VtcHR5KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQpAQCAtMjcwLDYgKzI4MCw3IEBACiBjZnFfc2V0X3ByaW9fc2xpY2Uoc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogewogCWNmcXEtPnNsaWNlX2VuZCA9IGNmcV9wcmlvX3RvX3NsaWNlKGNmcWQsIGNmcXEpICsgamlmZmllczsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgInNldF9zbGljZT0lbHUiLCBjZnFxLT5zbGljZV9lbmQgLSBqaWZmaWVzKTsKIH0KIAogLyoKQEAgLTUzOSw2ICs1NTAsNyBAQAogICovCiBzdGF0aWMgdm9pZCBjZnFfYWRkX2NmcXFfcnIoc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogeworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAiYWRkX3RvX3JyIik7CiAJQlVHX09OKGNmcV9jZnFxX29uX3JyKGNmcXEpKTsKIAljZnFfbWFya19jZnFxX29uX3JyKGNmcXEpOwogCWNmcWQtPmJ1c3lfcXVldWVzKys7CkBAIC01NTIsNiArNTY0LDcgQEAKICAqLwogc3RhdGljIHZvaWQgY2ZxX2RlbF9jZnFxX3JyKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSkKIHsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImRlbF9mcm9tX3JyIik7CiAJQlVHX09OKCFjZnFfY2ZxcV9vbl9ycihjZnFxKSk7CiAJY2ZxX2NsZWFyX2NmcXFfb25fcnIoY2ZxcSk7CiAKQEAgLTYzOCw2ICs2NTEsOCBAQAogCXN0cnVjdCBjZnFfZGF0YSAqY2ZxZCA9IHEtPmVsZXZhdG9yLT5lbGV2YXRvcl9kYXRhOwogCiAJY2ZxZC0+cnFfaW5fZHJpdmVyKys7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIFJRX0NGUVEocnEpLCAiYWN0aXZhdGUgcnEsIGRydj0lZCIsCisJCQkJCQljZnFkLT5ycV9pbl9kcml2ZXIpOwogCiAJLyoKIAkgKiBJZiB0aGUgZGVwdGggaXMgbGFyZ2VyIDEsIGl0IHJlYWxseSBjb3VsZCBiZSBxdWV1ZWluZy4gQnV0IGxldHMKQEAgLTY1Nyw2ICs2NzIsOCBAQAogCiAJV0FSTl9PTighY2ZxZC0+cnFfaW5fZHJpdmVyKTsKIAljZnFkLT5ycV9pbl9kcml2ZXItLTsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgUlFfQ0ZRUShycSksICJkZWFjdGl2YXRlIHJxLCBkcnY9JWQiLAorCQkJCQkJY2ZxZC0+cnFfaW5fZHJpdmVyKTsKIH0KIAogc3RhdGljIHZvaWQgY2ZxX3JlbW92ZV9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpycSkKQEAgLTc0Niw2ICs3NjMsNyBAQAogCQkJCSAgIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEpCiB7CiAJaWYgKGNmcXEpIHsKKwkJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJzZXRfYWN0aXZlIik7CiAJCWNmcXEtPnNsaWNlX2VuZCA9IDA7CiAJCWNmcV9jbGVhcl9jZnFxX211c3RfYWxsb2Nfc2xpY2UoY2ZxcSk7CiAJCWNmcV9jbGVhcl9jZnFxX2ZpZm9fZXhwaXJlKGNmcXEpOwpAQCAtNzYzLDYgKzc4MSw4IEBACiBfX2NmcV9zbGljZV9leHBpcmVkKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSwKIAkJICAgIGludCB0aW1lZF9vdXQpCiB7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJzbGljZSBleHBpcmVkIHQ9JWQiLCB0aW1lZF9vdXQpOworCiAJaWYgKGNmcV9jZnFxX3dhaXRfcmVxdWVzdChjZnFxKSkKIAkJZGVsX3RpbWVyKCZjZnFkLT5pZGxlX3NsaWNlX3RpbWVyKTsKIApAQCAtNzcyLDggKzc5MiwxMCBAQAogCS8qCiAJICogc3RvcmUgd2hhdCB3YXMgbGVmdCBvZiB0aGlzIHNsaWNlLCBpZiB0aGUgcXVldWUgaWRsZWQvdGltZWQgb3V0CiAJICovCi0JaWYgKHRpbWVkX291dCAmJiAhY2ZxX2NmcXFfc2xpY2VfbmV3KGNmcXEpKQorCWlmICh0aW1lZF9vdXQgJiYgIWNmcV9jZnFxX3NsaWNlX25ldyhjZnFxKSkgewogCQljZnFxLT5zbGljZV9yZXNpZCA9IGNmcXEtPnNsaWNlX2VuZCAtIGppZmZpZXM7CisJCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAicmVzaWQ9JWxkIiwgY2ZxcS0+c2xpY2VfcmVzaWQpOworCX0KIAogCWNmcV9yZXNvcnRfcnJfbGlzdChjZnFkLCBjZnFxKTsKIApAQCAtODY2LDYgKzg4OCwxMiBAQAogCQlyZXR1cm47CiAKIAkvKgorCSAqIHN0aWxsIHJlcXVlc3RzIHdpdGggdGhlIGRyaXZlciwgZG9uJ3QgaWRsZQorCSAqLworCWlmIChjZnFkLT5ycV9pbl9kcml2ZXIpCisJCXJldHVybjsKKworCS8qCiAJICogdGFzayBoYXMgZXhpdGVkLCBkb24ndCB3YWl0CiAJICovCiAJY2ljID0gY2ZxZC0+YWN0aXZlX2NpYzsKQEAgLTg5Miw2ICs5MjAsNyBAQAogCQlzbCA9IG1pbihzbCwgbXNlY3NfdG9famlmZmllcyhDRlFfTUlOX1RUKSk7CiAKIAltb2RfdGltZXIoJmNmcWQtPmlkbGVfc2xpY2VfdGltZXIsIGppZmZpZXMgKyBzbCk7CisJY2ZxX2xvZyhjZnFkLCAiYXJtX2lkbGU6ICVsdSIsIHNsKTsKIH0KIAogLyoKQEAgLTkwMiw2ICs5MzEsOCBAQAogCXN0cnVjdCBjZnFfZGF0YSAqY2ZxZCA9IHEtPmVsZXZhdG9yLT5lbGV2YXRvcl9kYXRhOwogCXN0cnVjdCBjZnFfcXVldWUgKmNmcXEgPSBSUV9DRlFRKHJxKTsKIAorCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAiZGlzcGF0Y2hfaW5zZXJ0Iik7CisKIAljZnFfcmVtb3ZlX3JlcXVlc3QocnEpOwogCWNmcXEtPmRpc3BhdGNoZWQrKzsKIAllbHZfZGlzcGF0Y2hfc29ydChxLCBycSk7CkBAIC05MzEsOCArOTYyLDkgQEAKIAlycSA9IHJxX2VudHJ5X2ZpZm8oY2ZxcS0+Zmlmby5uZXh0KTsKIAogCWlmICh0aW1lX2JlZm9yZShqaWZmaWVzLCBycS0+c3RhcnRfdGltZSArIGNmcWQtPmNmcV9maWZvX2V4cGlyZVtmaWZvXSkpCi0JCXJldHVybiBOVUxMOworCQlycSA9IE5VTEw7CiAKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImZpZm89JXAiLCBycSk7CiAJcmV0dXJuIHJxOwogfQogCkBAIC0xMDcyLDYgKzExMDQsNyBAQAogCiAJQlVHX09OKGNmcWQtPmJ1c3lfcXVldWVzKTsKIAorCWNmcV9sb2coY2ZxZCwgImZvcmNlZF9kaXNwYXRjaD0lZFxuIiwgZGlzcGF0Y2hlZCk7CiAJcmV0dXJuIGRpc3BhdGNoZWQ7CiB9CiAKQEAgLTExMTIsNiArMTE0NSw3IEBACiAJCWRpc3BhdGNoZWQgKz0gX19jZnFfZGlzcGF0Y2hfcmVxdWVzdHMoY2ZxZCwgY2ZxcSwgbWF4X2Rpc3BhdGNoKTsKIAl9CiAKKwljZnFfbG9nKGNmcWQsICJkaXNwYXRjaGVkPSVkIiwgZGlzcGF0Y2hlZCk7CiAJcmV0dXJuIGRpc3BhdGNoZWQ7CiB9CiAKQEAgLTExMzAsNiArMTE2NCw3IEBACiAJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZjZnFxLT5yZWYpKQogCQlyZXR1cm47CiAKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgInB1dF9xdWV1ZSIpOwogCUJVR19PTihyYl9maXJzdCgmY2ZxcS0+c29ydF9saXN0KSk7CiAJQlVHX09OKGNmcXEtPmFsbG9jYXRlZFtSRUFEXSArIGNmcXEtPmFsbG9jYXRlZFtXUklURV0pOwogCUJVR19PTihjZnFfY2ZxcV9vbl9ycihjZnFxKSk7CkBAIC0xMTc3LDggKzEyMTIsMTkgQEAKIAlrbWVtX2NhY2hlX2ZyZWUoY2ZxX2lvY19wb29sLCBjaWMpOwogCWVsdl9pb2NfY291bnRfZGVjKGlvY19jb3VudCk7CiAKLQlpZiAoaW9jX2dvbmUgJiYgIWVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKQotCQljb21wbGV0ZShpb2NfZ29uZSk7CisJaWYgKGlvY19nb25lKSB7CisJCS8qCisJCSAqIENGUSBzY2hlZHVsZXIgaXMgZXhpdGluZywgZ3JhYiBleGl0IGxvY2sgYW5kIGNoZWNrCisJCSAqIHRoZSBwZW5kaW5nIGlvIGNvbnRleHQgY291bnQuIElmIGl0IGhpdHMgemVybywKKwkJICogY29tcGxldGUgaW9jX2dvbmUgYW5kIHNldCBpdCBiYWNrIHRvIE5VTEwKKwkJICovCisJCXNwaW5fbG9jaygmaW9jX2dvbmVfbG9jayk7CisJCWlmIChpb2NfZ29uZSAmJiAhZWx2X2lvY19jb3VudF9yZWFkKGlvY19jb3VudCkpIHsKKwkJCWNvbXBsZXRlKGlvY19nb25lKTsKKwkJCWlvY19nb25lID0gTlVMTDsKKwkJfQorCQlzcGluX3VubG9jaygmaW9jX2dvbmVfbG9jayk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBjZnFfY2ljX2ZyZWUoc3RydWN0IGNmcV9pb19jb250ZXh0ICpjaWMpCkBAIC0xNDI3LDYgKzE0NzMsOCBAQAogCQkJCWNmcV9tYXJrX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CiAJCQljZnFfbWFya19jZnFxX3N5bmMoY2ZxcSk7CiAJCX0KKwkJY2ZxcS0+cGlkID0gY3VycmVudC0+cGlkOworCQljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImFsbG9jZWQiKTsKIAl9CiAKIAlpZiAobmV3X2NmcXEpCkBAIC0xNjc1LDcgKzE3MjMsNyBAQAogY2ZxX3VwZGF0ZV9pZGxlX3dpbmRvdyhzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEsCiAJCSAgICAgICBzdHJ1Y3QgY2ZxX2lvX2NvbnRleHQgKmNpYykKIHsKLQlpbnQgZW5hYmxlX2lkbGU7CisJaW50IG9sZF9pZGxlLCBlbmFibGVfaWRsZTsKIAogCS8qCiAJICogRG9uJ3QgaWRsZSBmb3IgYXN5bmMgb3IgaWRsZSBpbyBwcmlvIGNsYXNzCkBAIC0xNjgzLDcgKzE3MzEsNyBAQAogCWlmICghY2ZxX2NmcXFfc3luYyhjZnFxKSB8fCBjZnFfY2xhc3NfaWRsZShjZnFxKSkKIAkJcmV0dXJuOwogCi0JZW5hYmxlX2lkbGUgPSBjZnFfY2ZxcV9pZGxlX3dpbmRvdyhjZnFxKTsKKwllbmFibGVfaWRsZSA9IG9sZF9pZGxlID0gY2ZxX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CiAKIAlpZiAoIWF0b21pY19yZWFkKCZjaWMtPmlvYy0+bnJfdGFza3MpIHx8ICFjZnFkLT5jZnFfc2xpY2VfaWRsZSB8fAogCSAgICAoY2ZxZC0+aHdfdGFnICYmIENJQ19TRUVLWShjaWMpKSkKQEAgLTE2OTUsMTAgKzE3NDMsMTMgQEAKIAkJCWVuYWJsZV9pZGxlID0gMTsKIAl9CiAKLQlpZiAoZW5hYmxlX2lkbGUpCi0JCWNmcV9tYXJrX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7Ci0JZWxzZQotCQljZnFfY2xlYXJfY2ZxcV9pZGxlX3dpbmRvdyhjZnFxKTsKKwlpZiAob2xkX2lkbGUgIT0gZW5hYmxlX2lkbGUpIHsKKwkJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJpZGxlPSVkIiwgZW5hYmxlX2lkbGUpOworCQlpZiAoZW5hYmxlX2lkbGUpCisJCQljZnFfbWFya19jZnFxX2lkbGVfd2luZG93KGNmcXEpOworCQllbHNlCisJCQljZnFfY2xlYXJfY2ZxcV9pZGxlX3dpbmRvdyhjZnFxKTsKKwl9CiB9CiAKIC8qCkBAIC0xNzU3LDYgKzE4MDgsNyBAQAogICovCiBzdGF0aWMgdm9pZCBjZnFfcHJlZW1wdF9xdWV1ZShzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEpCiB7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJwcmVlbXB0Iik7CiAJY2ZxX3NsaWNlX2V4cGlyZWQoY2ZxZCwgMSk7CiAKIAkvKgpAQCAtMTgxOCw2ICsxODcwLDcgQEAKIAlzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQgPSBxLT5lbGV2YXRvci0+ZWxldmF0b3JfZGF0YTsKIAlzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxID0gUlFfQ0ZRUShycSk7CiAKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImluc2VydF9yZXF1ZXN0Iik7CiAJY2ZxX2luaXRfcHJpb19kYXRhKGNmcXEsIFJRX0NJQyhycSktPmlvYyk7CiAKIAljZnFfYWRkX3JxX3JiKHJxKTsKQEAgLTE4MzUsNiArMTg4OCw3IEBACiAJdW5zaWduZWQgbG9uZyBub3c7CiAKIAlub3cgPSBqaWZmaWVzOworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAiY29tcGxldGUiKTsKIAogCVdBUk5fT04oIWNmcWQtPnJxX2luX2RyaXZlcik7CiAJV0FSTl9PTighY2ZxcS0+ZGlzcGF0Y2hlZCk7CkBAIC0yMDA0LDYgKzIwNTgsNyBAQAogCiAJY2ZxX3NjaGVkdWxlX2Rpc3BhdGNoKGNmcWQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocS0+cXVldWVfbG9jaywgZmxhZ3MpOworCWNmcV9sb2coY2ZxZCwgInNldF9yZXF1ZXN0IGZhaWwiKTsKIAlyZXR1cm4gMTsKIH0KIApAQCAtMjAyOSw2ICsyMDg0LDggQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCB0aW1lZF9vdXQgPSAxOwogCisJY2ZxX2xvZyhjZnFkLCAiaWRsZSB0aW1lciBmaXJlZCIpOworCiAJc3Bpbl9sb2NrX2lycXNhdmUoY2ZxZC0+cXVldWUtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKIAogCWNmcXEgPSBjZnFkLT5hY3RpdmVfcXVldWU7CkBAIC0yMzE3LDcgKzIzNzQsNyBAQAogCSAqIHBlbmRpbmcgUkNVIGNhbGxiYWNrcwogCSAqLwogCWlmIChlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkKLQkJd2FpdF9mb3JfY29tcGxldGlvbihpb2NfZ29uZSk7CisJCXdhaXRfZm9yX2NvbXBsZXRpb24oJmFsbF9nb25lKTsKIAljZnFfc2xhYl9raWxsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2Jsb2NrL2NtZC1maWx0ZXIuYyBiL2Jsb2NrL2NtZC1maWx0ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWM0NDA0Ci0tLSAvZGV2L251bGwKKysrIGIvYmxvY2svY21kLWZpbHRlci5jCkBAIC0wLDAgKzEsMzM0IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQgUGV0ZXIgTS4gSm9uZXMgPHBqb25lc0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICoKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2VucworICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9nZW5oZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorCisjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CisjaW5jbHVkZSA8bGludXgvY2Ryb20uaD4KKworaW50IGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkJICB1bnNpZ25lZCBjaGFyICpjbWQsIG1vZGVfdCAqZl9tb2RlKQoreworCS8qIHJvb3QgY2FuIGRvIGFueSBjb21tYW5kLiAqLworCWlmIChjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQorCQlyZXR1cm4gMDsKKworCS8qIGlmIHRoZXJlJ3Mgbm8gZmlsdGVyIHNldCwgYXNzdW1lIHdlJ3JlIGZpbHRlcmluZyBldmVyeXRoaW5nIG91dCAqLworCWlmICghZmlsdGVyKQorCQlyZXR1cm4gLUVQRVJNOworCisJLyogQW55Ym9keSB3aG8gY2FuIG9wZW4gdGhlIGRldmljZSBjYW4gZG8gYSByZWFkLXNhZmUgY29tbWFuZCAqLworCWlmICh0ZXN0X2JpdChjbWRbMF0sIGZpbHRlci0+cmVhZF9vaykpCisJCXJldHVybiAwOworCisJLyogV3JpdGUtc2FmZSBjb21tYW5kcyByZXF1aXJlIGEgd3JpdGFibGUgb3BlbiAqLworCWlmICh0ZXN0X2JpdChjbWRbMF0sIGZpbHRlci0+d3JpdGVfb2spICYmICgqZl9tb2RlICYgRk1PREVfV1JJVEUpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAtRVBFUk07Cit9CitFWFBPUlRfU1lNQk9MKGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKTsKKworaW50IGJsa192ZXJpZnlfY29tbWFuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgY2hhciAqY21kKQoreworCXN0cnVjdCBnZW5kaXNrICpkaXNrOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisKKwlpZiAoIWZpbGUpCisJCXJldHVybiAtRUlOVkFMOworCisJaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsKKwlpZiAoIWlub2RlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpc2sgPSBpbm9kZS0+aV9iZGV2LT5iZF9kaXNrOworCisJcmV0dXJuIGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKCZkaXNrLT5jbWRfZmlsdGVyLAorCQkJCQkJIGNtZCwgJmZpbGUtPmZfbW9kZSk7Cit9CitFWFBPUlRfU1lNQk9MKGJsa192ZXJpZnlfY29tbWFuZCk7CisKKy8qIGFuZCBub3csIHRoZSBzeXNmcyBzdHVmZiAqLworc3RhdGljIHNzaXplX3QgcmNmX2NtZHNfc2hvdyhzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLCBjaGFyICpwYWdlLAorCQkJICAgICBpbnQgcncpCit7CisJY2hhciAqbnBhZ2UgPSBwYWdlOworCXVuc2lnbmVkIGxvbmcgKm9rYml0czsKKwlpbnQgaTsKKworCWlmIChydyA9PSBSRUFEKQorCQlva2JpdHMgPSBmaWx0ZXItPnJlYWRfb2s7CisJZWxzZQorCQlva2JpdHMgPSBmaWx0ZXItPndyaXRlX29rOworCisJZm9yIChpID0gMDsgaSA8IEJMS19TQ1NJX01BWF9DTURTOyBpKyspIHsKKwkJaWYgKHRlc3RfYml0KGksIG9rYml0cykpIHsKKwkJCXNwcmludGYobnBhZ2UsICIlMDJ4IiwgaSk7CisJCQlucGFnZSArPSAyOworCQkJaWYgKGkgPCBCTEtfU0NTSV9NQVhfQ01EUyAtIDEpCisJCQkJc3ByaW50ZihucGFnZSsrLCAiICIpOworCQl9CisJfQorCisJaWYgKG5wYWdlICE9IHBhZ2UpCisJCW5wYWdlICs9IHNwcmludGYobnBhZ2UsICJcbiIpOworCisJcmV0dXJuIG5wYWdlIC0gcGFnZTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX3JlYWRjbWRzX3Nob3coc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc2hvdyhmaWx0ZXIsIHBhZ2UsIFJFQUQpOworfQorCitzdGF0aWMgc3NpemVfdCByY2Zfd3JpdGVjbWRzX3Nob3coc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCQkgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc2hvdyhmaWx0ZXIsIHBhZ2UsIFdSSVRFKTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX2NtZHNfc3RvcmUoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCSAgICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCwgaW50IHJ3KQoreworCXNzaXplX3QgcmV0ID0gMDsKKwl1bnNpZ25lZCBsb25nIG9rYml0c1tCTEtfU0NTSV9DTURfUEVSX0xPTkddLCAqdGFyZ2V0X29rYml0czsKKwlpbnQgY21kLCBzdGF0dXMsIGxlbjsKKwlzdWJzdHJpbmdfdCBzczsKKworCW1lbXNldCgmb2tiaXRzLCAwLCBzaXplb2Yob2tiaXRzKSk7CisKKwlmb3IgKGxlbiA9IHN0cmxlbihwYWdlKTsgbGVuID4gMDsgbGVuIC09IDMpIHsKKwkJaWYgKGxlbiA8IDIpCisJCQlicmVhazsKKwkJc3MuZnJvbSA9IChjaGFyICopIHBhZ2UgKyByZXQ7CisJCXNzLnRvID0gKGNoYXIgKikgcGFnZSArIHJldCArIDI7CisJCXJldCArPSAzOworCQlzdGF0dXMgPSBtYXRjaF9oZXgoJnNzLCAmY21kKTsKKwkJLyogZWl0aGVyIG9mIHRoZXNlIGNhc2VzIG1lYW5zIGludmFsaWQgaW5wdXQsIHNvIGRvIG5vdGhpbmcuICovCisJCWlmIChzdGF0dXMgfHwgY21kID49IEJMS19TQ1NJX01BWF9DTURTKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJX19zZXRfYml0KGNtZCwgb2tiaXRzKTsKKwl9CisKKwlpZiAocncgPT0gUkVBRCkKKwkJdGFyZ2V0X29rYml0cyA9IGZpbHRlci0+cmVhZF9vazsKKwllbHNlCisJCXRhcmdldF9va2JpdHMgPSBmaWx0ZXItPndyaXRlX29rOworCisJbWVtbW92ZSh0YXJnZXRfb2tiaXRzLCBva2JpdHMsIHNpemVvZihva2JpdHMpKTsKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJjZl9yZWFkY21kc19zdG9yZShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLAorCQkJCSAgY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KQoreworCXJldHVybiByY2ZfY21kc19zdG9yZShmaWx0ZXIsIHBhZ2UsIGNvdW50LCBSRUFEKTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX3dyaXRlY21kc19zdG9yZShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLAorCQkJCSAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc3RvcmUoZmlsdGVyLCBwYWdlLCBjb3VudCwgV1JJVEUpOworfQorCitzdHJ1Y3QgcmNmX3N5c2ZzX2VudHJ5IHsKKwlzdHJ1Y3QgYXR0cmlidXRlIGF0dHI7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICosIGNoYXIgKik7CisJc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7Cit9OworCitzdGF0aWMgc3RydWN0IHJjZl9zeXNmc19lbnRyeSByY2ZfcmVhZGNtZHNfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gInJlYWRfdGFibGUiLCAubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSIH0sCisJLnNob3cgPSByY2ZfcmVhZGNtZHNfc2hvdywKKwkuc3RvcmUgPSByY2ZfcmVhZGNtZHNfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IHJjZl9zeXNmc19lbnRyeSByY2Zfd3JpdGVjbWRzX2VudHJ5ID0geworCS5hdHRyID0gey5uYW1lID0gIndyaXRlX3RhYmxlIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAorCS5zaG93ID0gcmNmX3dyaXRlY21kc19zaG93LAorCS5zdG9yZSA9IHJjZl93cml0ZWNtZHNfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZGVmYXVsdF9hdHRyc1tdID0geworCSZyY2ZfcmVhZGNtZHNfZW50cnkuYXR0ciwKKwkmcmNmX3dyaXRlY21kc19lbnRyeS5hdHRyLAorCU5VTEwsCit9OworCisjZGVmaW5lIHRvX3JjZihhdHIpIGNvbnRhaW5lcl9vZigoYXRyKSwgc3RydWN0IHJjZl9zeXNmc19lbnRyeSwgYXR0cikKKworc3RhdGljIHNzaXplX3QKK3JjZl9hdHRyX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJc3RydWN0IHJjZl9zeXNmc19lbnRyeSAqZW50cnkgPSB0b19yY2YoYXR0cik7CisJc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlcjsKKworCWZpbHRlciA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciwga29iaik7CisJaWYgKGVudHJ5LT5zaG93KQorCQlyZXR1cm4gZW50cnktPnNob3coZmlsdGVyLCBwYWdlKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdAorcmNmX2F0dHJfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCisJCQljb25zdCBjaGFyICpwYWdlLCBzaXplX3QgbGVuZ3RoKQoreworCXN0cnVjdCByY2Zfc3lzZnNfZW50cnkgKmVudHJ5ID0gdG9fcmNmKGF0dHIpOworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXI7CisKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCXJldHVybiAtRVBFUk07CisKKwlpZiAoIWVudHJ5LT5zdG9yZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmaWx0ZXIgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIsIGtvYmopOworCXJldHVybiBlbnRyeS0+c3RvcmUoZmlsdGVyLCBwYWdlLCBsZW5ndGgpOworfQorCitzdGF0aWMgc3RydWN0IHN5c2ZzX29wcyByY2Zfc3lzZnNfb3BzID0geworCS5zaG93ID0gcmNmX2F0dHJfc2hvdywKKwkuc3RvcmUgPSByY2ZfYXR0cl9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBlIHJjZl9rdHlwZSA9IHsKKwkuc3lzZnNfb3BzID0gJnJjZl9zeXNmc19vcHMsCisJLmRlZmF1bHRfYXR0cnMgPSBkZWZhdWx0X2F0dHJzLAorfTsKKworI2lmbmRlZiBNQUlOVEVOQU5DRV9JTl9DTUQKKyNkZWZpbmUgTUFJTlRFTkFOQ0VfSU5fQ01EIDB4YTMKKyNlbmRpZgorCitzdGF0aWMgdm9pZCByY2Zfc2V0X2RlZmF1bHRzKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIpCit7CisJLyogQmFzaWMgcmVhZC1vbmx5IGNvbW1hbmRzICovCisJX19zZXRfYml0KFRFU1RfVU5JVF9SRUFEWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVRVUVTVF9TRU5TRSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF82LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzEwLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzEyLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzE2LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEX0JVRkZFUiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9ERUZFQ1RfREFUQSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9DQVBBQ0lUWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9MT05HLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChJTlFVSVJZLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChNT0RFX1NFTlNFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChNT0RFX1NFTlNFXzEwLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChMT0dfU0VOU0UsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFNUQVJUX1NUT1AsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1ZFUklGWV8xMCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoVkVSSUZZXzE2LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRVBPUlRfTFVOUywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoU0VSVklDRV9BQ1RJT05fSU4sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQ0VJVkVfRElBR05PU1RJQywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoTUFJTlRFTkFOQ0VfSU5fQ01ELCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0JVRkZFUl9DQVBBQ0lUWSwgZmlsdGVyLT5yZWFkX29rKTsKKworCS8qIEF1ZGlvIENEIGNvbW1hbmRzICovCisJX19zZXRfYml0KEdQQ01EX1BMQVlfQ0QsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1BMQVlfQVVESU9fMTAsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1BMQVlfQVVESU9fTVNGLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QTEFZX0FVRElPX1RJLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QQVVTRV9SRVNVTUUsIGZpbHRlci0+cmVhZF9vayk7CisKKwkvKiBDRC9EVkQgZGF0YSByZWFkaW5nICovCisJX19zZXRfYml0KEdQQ01EX1JFQURfQ0QsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfQ0RfTVNGLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0RJU0NfSU5GTywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9DRFZEX0NBUEFDSVRZLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0RWRF9TVFJVQ1RVUkUsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfSEVBREVSLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX1RSQUNLX1JaT05FX0lORk8sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfU1VCQ0hBTk5FTCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9UT0NfUE1BX0FUSVAsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFUE9SVF9LRVksIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1NDQU4sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0ZPUk1BVF9DQVBBQ0lUSUVTLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9HRVRfRVZFTlRfU1RBVFVTX05PVElGSUNBVElPTiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfR0VUX1BFUkZPUk1BTkNFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9TRUVLLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9TVE9QX1BMQVlfU0NBTiwgZmlsdGVyLT5yZWFkX29rKTsKKworCS8qIEJhc2ljIHdyaXRpbmcgY29tbWFuZHMgKi8KKwlfX3NldF9iaXQoV1JJVEVfNiwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFXzEwLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfVkVSSUZZLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfMTIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV9WRVJJRllfMTIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV8xNiwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFX0xPTkcsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV9MT05HXzIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChFUkFTRSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX01PREVfU0VMRUNUXzEwLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoTU9ERV9TRUxFQ1QsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChMT0dfU0VMRUNULCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfQkxBTkssIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9DTE9TRV9UUkFDSywgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX0ZMVVNIX0NBQ0hFLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfRk9STUFUX1VOSVQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9SRVBBSVJfUlpPTkVfVFJBQ0ssIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9SRVNFUlZFX1JaT05FX1RSQUNLLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9EVkRfU1RSVUNUVVJFLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9FVkVOVCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFTkRfS0VZLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9PUEMsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9TRU5EX0NVRV9TSEVFVCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFVF9TUEVFRCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1BSRVZFTlRfQUxMT1dfTUVESVVNX1JFTU9WQUwsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9MT0FEX1VOTE9BRCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFVF9TVFJFQU1JTkcsIGZpbHRlci0+d3JpdGVfb2spOworfQorCitpbnQgYmxrX3JlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3sKKwlpbnQgcmV0OworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIgPSAmZGlzay0+Y21kX2ZpbHRlcjsKKwlzdHJ1Y3Qga29iamVjdCAqcGFyZW50ID0ga29iamVjdF9nZXQoZGlzay0+aG9sZGVyX2Rpci0+cGFyZW50KTsKKworCWlmICghcGFyZW50KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKCZmaWx0ZXItPmtvYmosICZyY2Zfa3R5cGUsIHBhcmVudCwKKwkJCQkgIiVzIiwgImNtZF9maWx0ZXIiKTsKKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmNmX3NldF9kZWZhdWx0cyhmaWx0ZXIpOworCXJldHVybiAwOworfQorCit2b2lkIGJsa191bnJlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3sKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyID0gJmRpc2stPmNtZF9maWx0ZXI7CisKKwlrb2JqZWN0X3B1dCgmZmlsdGVyLT5rb2JqKTsKKwlrb2JqZWN0X3B1dChkaXNrLT5ob2xkZXJfZGlyLT5wYXJlbnQpOworfQorCmRpZmYgLS1naXQgYS9ibG9jay9lbGV2YXRvci5jIGIvYmxvY2svZWxldmF0b3IuYwppbmRleCA5MDJkZDEzLi5lZDZmOGYzIDEwMDY0NAotLS0gYS9ibG9jay9lbGV2YXRvci5jCisrKyBiL2Jsb2NrL2VsZXZhdG9yLmMKQEAgLTg2LDYgKzg2LDEyIEBACiAJaWYgKHJxLT5ycV9kaXNrICE9IGJpby0+YmlfYmRldi0+YmRfZGlzayB8fCBycS0+c3BlY2lhbCkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIG9ubHkgbWVyZ2UgaW50ZWdyaXR5IHByb3RlY3RlZCBiaW8gaW50byBkaXR0byBycQorCSAqLworCWlmIChiaW9faW50ZWdyaXR5KGJpbykgIT0gYmxrX2ludGVncml0eV9ycShycSkpCisJCXJldHVybiAwOworCiAJaWYgKCFlbHZfaW9zY2hlZF9hbGxvd19tZXJnZShycSwgYmlvKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQAogCQllbHNlCiAJCQlzcHJpbnRmKGVsdiwgIiVzLWlvc2NoZWQiLCBuYW1lKTsKIAotCQlyZXF1ZXN0X21vZHVsZShlbHYpOworCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBlbHYpOwogCQlzcGluX2xvY2soJmVsdl9saXN0X2xvY2spOwogCQllID0gZWxldmF0b3JfZmluZChuYW1lKTsKIAl9CmRpZmYgLS1naXQgYS9ibG9jay9nZW5oZC5jIGIvYmxvY2svZ2VuaGQuYwppbmRleCAxMjlhZDkzLi45MDc0ZjM4IDEwMDY0NAotLS0gYS9ibG9jay9nZW5oZC5jCisrKyBiL2Jsb2NrL2dlbmhkLmMKQEAgLTE4OSw2ICsxODksNyBAQAogCQkJICAgIGRpc2stPm1pbm9ycywgTlVMTCwgZXhhY3RfbWF0Y2gsIGV4YWN0X2xvY2ssIGRpc2spOwogCXJlZ2lzdGVyX2Rpc2soZGlzayk7CiAJYmxrX3JlZ2lzdGVyX3F1ZXVlKGRpc2spOworCWJsa19yZWdpc3Rlcl9maWx0ZXIoZGlzayk7CiAKIAliZGkgPSAmZGlzay0+cXVldWUtPmJhY2tpbmdfZGV2X2luZm87CiAJYmRpX3JlZ2lzdGVyX2RldihiZGksIE1LREVWKGRpc2stPm1ham9yLCBkaXNrLT5maXJzdF9taW5vcikpOwpAQCAtMjAwLDYgKzIwMSw3IEBACiAKIHZvaWQgdW5saW5rX2dlbmRpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spCiB7CisJYmxrX3VucmVnaXN0ZXJfZmlsdGVyKGRpc2spOwogCXN5c2ZzX3JlbW92ZV9saW5rKCZkaXNrLT5kZXYua29iaiwgImJkaSIpOwogCWJkaV91bnJlZ2lzdGVyKCZkaXNrLT5xdWV1ZS0+YmFja2luZ19kZXZfaW5mbyk7CiAJYmxrX3VucmVnaXN0ZXJfcXVldWUoZGlzayk7CkBAIC00MDAsNiArNDAyLDE0IEBACiAJCSAgICAgICAoZGlzay0+ZmxhZ3MgJiBHRU5IRF9GTF9SRU1PVkFCTEUgPyAxIDogMCkpOwogfQogCitzdGF0aWMgc3NpemVfdCBkaXNrX3JvX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBkZXZfdG9fZGlzayhkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIGRpc2stPnBvbGljeSA/IDEgOiAwKTsKK30KKwogc3RhdGljIHNzaXplX3QgZGlza19zaXplX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogCQkJICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKQEAgLTQ3Miw2ICs0ODIsNyBAQAogCiBzdGF0aWMgREVWSUNFX0FUVFIocmFuZ2UsIFNfSVJVR08sIGRpc2tfcmFuZ2Vfc2hvdywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIocmVtb3ZhYmxlLCBTX0lSVUdPLCBkaXNrX3JlbW92YWJsZV9zaG93LCBOVUxMKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihybywgU19JUlVHTywgZGlza19yb19zaG93LCBOVUxMKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihzaXplLCBTX0lSVUdPLCBkaXNrX3NpemVfc2hvdywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIoY2FwYWJpbGl0eSwgU19JUlVHTywgZGlza19jYXBhYmlsaXR5X3Nob3csIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKHN0YXQsIFNfSVJVR08sIGRpc2tfc3RhdF9zaG93LCBOVUxMKTsKQEAgLTQ4Myw2ICs0OTQsNyBAQAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRpc2tfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfcmFuZ2UuYXR0ciwKIAkmZGV2X2F0dHJfcmVtb3ZhYmxlLmF0dHIsCisJJmRldl9hdHRyX3JvLmF0dHIsCiAJJmRldl9hdHRyX3NpemUuYXR0ciwKIAkmZGV2X2F0dHJfY2FwYWJpbGl0eS5hdHRyLAogCSZkZXZfYXR0cl9zdGF0LmF0dHIsCkBAIC02NjAsNiArNjcyLDggQEAKIAogCW11dGV4X2xvY2soJmJsb2NrX2NsYXNzX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmYmxvY2tfY2xhc3MuZGV2aWNlcywgbm9kZSkgeworCQlpZiAoZGV2LT50eXBlICE9ICZkaXNrX3R5cGUpCisJCQljb250aW51ZTsKIAkJaWYgKHN0cmNtcChkZXYtPmJ1c19pZCwgbmFtZSkgPT0gMCkgewogCQkJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBkZXZfdG9fZGlzayhkZXYpOwogCmRpZmYgLS1naXQgYS9ibG9jay9zY3NpX2lvY3RsLmMgYi9ibG9jay9zY3NpX2lvY3RsLmMKaW5kZXggNzgxOTljMC4uYzViOWJjZiAxMDA2NDQKLS0tIGEvYmxvY2svc2NzaV9pb2N0bC5jCisrKyBiL2Jsb2NrL3Njc2lfaW9jdGwuYwpAQCAtMTA1LDEyMCArMTA1LDEyIEBACiAJcmV0dXJuIHB1dF91c2VyKDEsIHApOwogfQogCi0jZGVmaW5lIENNRF9SRUFEX1NBRkUJMHgwMQotI2RlZmluZSBDTURfV1JJVEVfU0FGRQkweDAyCi0jZGVmaW5lIENNRF9XQVJORUQJMHgwNAotI2RlZmluZSBzYWZlX2Zvcl9yZWFkKGNtZCkJW2NtZF0gPSBDTURfUkVBRF9TQUZFCi0jZGVmaW5lIHNhZmVfZm9yX3dyaXRlKGNtZCkJW2NtZF0gPSBDTURfV1JJVEVfU0FGRQotCi1pbnQgYmxrX3ZlcmlmeV9jb21tYW5kKHVuc2lnbmVkIGNoYXIgKmNtZCwgaW50IGhhc193cml0ZV9wZXJtKQotewotCXN0YXRpYyB1bnNpZ25lZCBjaGFyIGNtZF90eXBlWzI1Nl0gPSB7Ci0KLQkJLyogQmFzaWMgcmVhZC1vbmx5IGNvbW1hbmRzICovCi0JCXNhZmVfZm9yX3JlYWQoVEVTVF9VTklUX1JFQURZKSwKLQkJc2FmZV9mb3JfcmVhZChSRVFVRVNUX1NFTlNFKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEXzYpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTApLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTIpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTYpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfQlVGRkVSKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEX0RFRkVDVF9EQVRBKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEX0xPTkcpLAotCQlzYWZlX2Zvcl9yZWFkKElOUVVJUlkpLAotCQlzYWZlX2Zvcl9yZWFkKE1PREVfU0VOU0UpLAotCQlzYWZlX2Zvcl9yZWFkKE1PREVfU0VOU0VfMTApLAotCQlzYWZlX2Zvcl9yZWFkKExPR19TRU5TRSksCi0JCXNhZmVfZm9yX3JlYWQoU1RBUlRfU1RPUCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfVkVSSUZZXzEwKSwKLQkJc2FmZV9mb3JfcmVhZChWRVJJRllfMTYpLAotCi0JCS8qIEF1ZGlvIENEIGNvbW1hbmRzICovCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9DRCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9BVURJT18xMCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9BVURJT19NU0YpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BMQVlfQVVESU9fVEkpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BBVVNFX1JFU1VNRSksCi0KLQkJLyogQ0QvRFZEIGRhdGEgcmVhZGluZyAqLwotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfQlVGRkVSX0NBUEFDSVRZKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0NEKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0NEX01TRiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9ESVNDX0lORk8pLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfQ0RWRF9DQVBBQ0lUWSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0hFQURFUiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9UUkFDS19SWk9ORV9JTkZPKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX1NVQkNIQU5ORUwpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfVE9DX1BNQV9BVElQKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRVBPUlRfS0VZKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9TQ0FOKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9HRVRfQ09ORklHVVJBVElPTiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9GT1JNQVRfQ0FQQUNJVElFUyksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfR0VUX0VWRU5UX1NUQVRVU19OT1RJRklDQVRJT04pLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX0dFVF9QRVJGT1JNQU5DRSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfU0VFSyksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfU1RPUF9QTEFZX1NDQU4pLAotCi0JCS8qIEJhc2ljIHdyaXRpbmcgY29tbWFuZHMgKi8KLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfNiksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFXzEwKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfVkVSSUZZKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfMTIpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV9WRVJJRllfMTIpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV8xNiksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFX0xPTkcpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV9MT05HXzIpLAotCQlzYWZlX2Zvcl93cml0ZShFUkFTRSksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX01PREVfU0VMRUNUXzEwKSwKLQkJc2FmZV9mb3Jfd3JpdGUoTU9ERV9TRUxFQ1QpLAotCQlzYWZlX2Zvcl93cml0ZShMT0dfU0VMRUNUKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfQkxBTkspLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9DTE9TRV9UUkFDSyksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX0ZMVVNIX0NBQ0hFKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfRk9STUFUX1VOSVQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9SRVBBSVJfUlpPTkVfVFJBQ0spLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9SRVNFUlZFX1JaT05FX1RSQUNLKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9EVkRfU1RSVUNUVVJFKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9FVkVOVCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFTkRfS0VZKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9PUEMpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9TRU5EX0NVRV9TSEVFVCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFVF9TUEVFRCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1BSRVZFTlRfQUxMT1dfTUVESVVNX1JFTU9WQUwpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9MT0FEX1VOTE9BRCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFVF9TVFJFQU1JTkcpLAotCX07Ci0JdW5zaWduZWQgY2hhciB0eXBlID0gY21kX3R5cGVbY21kWzBdXTsKLQotCS8qIEFueWJvZHkgd2hvIGNhbiBvcGVuIHRoZSBkZXZpY2UgY2FuIGRvIGEgcmVhZC1zYWZlIGNvbW1hbmQgKi8KLQlpZiAodHlwZSAmIENNRF9SRUFEX1NBRkUpCi0JCXJldHVybiAwOwotCi0JLyogV3JpdGUtc2FmZSBjb21tYW5kcyBqdXN0IHJlcXVpcmUgYSB3cml0YWJsZSBvcGVuLi4gKi8KLQlpZiAoKHR5cGUgJiBDTURfV1JJVEVfU0FGRSkgJiYgaGFzX3dyaXRlX3Blcm0pCi0JCXJldHVybiAwOwotCi0JLyogQW5kIHJvb3QgY2FuIGRvIGFueSBjb21tYW5kLi4gKi8KLQlpZiAoY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIXR5cGUpIHsKLQkJY21kX3R5cGVbY21kWzBdXSA9IENNRF9XQVJORUQ7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgInNjc2k6IHVua25vd24gb3Bjb2RlIDB4JTAyeFxuIiwgY21kWzBdKTsKLQl9Ci0KLQkvKiBPdGhlcndpc2UgZmFpbCBpdCB3aXRoIGFuICJPcGVyYXRpb24gbm90IHBlcm1pdHRlZCIgKi8KLQlyZXR1cm4gLUVQRVJNOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoYmxrX3ZlcmlmeV9jb21tYW5kKTsKLQogc3RhdGljIGludCBibGtfZmlsbF9zZ2hkcl9ycShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IHJlcXVlc3QgKnJxLAotCQkJICAgICBzdHJ1Y3Qgc2dfaW9faGRyICpoZHIsIGludCBoYXNfd3JpdGVfcGVybSkKKwkJCSAgICAgc3RydWN0IHNnX2lvX2hkciAqaGRyLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpZiAoY29weV9mcm9tX3VzZXIocnEtPmNtZCwgaGRyLT5jbWRwLCBoZHItPmNtZF9sZW4pKQogCQlyZXR1cm4gLUVGQVVMVDsKLQlpZiAoYmxrX3ZlcmlmeV9jb21tYW5kKHJxLT5jbWQsIGhhc193cml0ZV9wZXJtKSkKKwlpZiAoYmxrX3ZlcmlmeV9jb21tYW5kKGZpbGUsIHJxLT5jbWQpKQogCQlyZXR1cm4gLUVQRVJNOwogCiAJLyoKQEAgLTI4Nyw3ICsxNzksNyBAQAogCQlzdHJ1Y3QgZ2VuZGlzayAqYmRfZGlzaywgc3RydWN0IHNnX2lvX2hkciAqaGRyKQogewogCXVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZTsKLQlpbnQgd3JpdGluZyA9IDAsIHJldCA9IDAsIGhhc193cml0ZV9wZXJtID0gMDsKKwlpbnQgd3JpdGluZyA9IDAsIHJldCA9IDA7CiAJc3RydWN0IHJlcXVlc3QgKnJxOwogCWNoYXIgc2Vuc2VbU0NTSV9TRU5TRV9CVUZGRVJTSVpFXTsKIAlzdHJ1Y3QgYmlvICpiaW87CkBAIC0zMTYsMTAgKzIwOCw3IEBACiAJaWYgKCFycSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAoZmlsZSkKLQkJaGFzX3dyaXRlX3Blcm0gPSBmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURTsKLQotCWlmIChibGtfZmlsbF9zZ2hkcl9ycShxLCBycSwgaGRyLCBoYXNfd3JpdGVfcGVybSkpIHsKKwlpZiAoYmxrX2ZpbGxfc2doZHJfcnEocSwgcnEsIGhkciwgZmlsZSkpIHsKIAkJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpAQCAtNDUxLDcgKzM0MCw3IEBACiAJaWYgKGluX2xlbiAmJiBjb3B5X2Zyb21fdXNlcihidWZmZXIsIHNpYy0+ZGF0YSArIGNtZGxlbiwgaW5fbGVuKSkKIAkJZ290byBlcnJvcjsKIAotCWVyciA9IGJsa192ZXJpZnlfY29tbWFuZChycS0+Y21kLCBmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURSk7CisJZXJyID0gYmxrX3ZlcmlmeV9jb21tYW5kKGZpbGUsIHJxLT5jbWQpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3I7CiAKZGlmZiAtLWdpdCBhL2NyeXB0by9LY29uZmlnIGIvY3J5cHRvL0tjb25maWcKaW5kZXggODY0NDU2Yy4uZWE1MDM1NyAxMDA2NDQKLS0tIGEvY3J5cHRvL0tjb25maWcKKysrIGIvY3J5cHRvL0tjb25maWcKQEAgLTY1LDYgKzY1LDcgQEAKIGNvbmZpZyBDUllQVE9fQ1JZUFRECiAJdHJpc3RhdGUgIlNvZnR3YXJlIGFzeW5jIGNyeXB0byBkYWVtb24iCiAJc2VsZWN0IENSWVBUT19CTEtDSVBIRVIKKwlzZWxlY3QgQ1JZUFRPX0hBU0gKIAlzZWxlY3QgQ1JZUFRPX01BTkFHRVIKIAloZWxwCiAJICBUaGlzIGlzIGEgZ2VuZXJpYyBzb2Z0d2FyZSBhc3luY2hyb25vdXMgY3J5cHRvIGRhZW1vbiB0aGF0CkBAIC0yMTIsNyArMjEzLDcgQEAKIAogY29uZmlnIENSWVBUT19DUkMzMkMKIAl0cmlzdGF0ZSAiQ1JDMzJjIENSQyBhbGdvcml0aG0iCi0Jc2VsZWN0IENSWVBUT19BTEdBUEkKKwlzZWxlY3QgQ1JZUFRPX0hBU0gKIAlzZWxlY3QgTElCQ1JDMzJDCiAJaGVscAogCSAgQ2FzdGFnbm9saSwgZXQgYWwgQ3ljbGljIFJlZHVuZGFuY3ktQ2hlY2sgQWxnb3JpdGhtLiAgVXNlZApAQCAtMjQxLDYgKzI0Miw1NyBAQAogCSAgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBiZWNhdXNlIG9mIHRoZSB3ZWFrbmVzcwogCSAgb2YgdGhlIGFsZ29yaXRobS4KIAorY29uZmlnIENSWVBUT19STUQxMjgKKyAgdHJpc3RhdGUgIlJJUEVNRC0xMjggZGlnZXN0IGFsZ29yaXRobSIKKyAgc2VsZWN0IENSWVBUT19BTEdBUEkKKyAgaGVscAorICAgIFJJUEVNRC0xMjggKElTTy9JRUMgMTAxMTgtMzoyMDA0KS4KKworICAgIFJJUEVNRC0xMjggaXMgYSAxMjgtYml0IGNyeXB0b2dyYXBoaWMgaGFzaCBmdW5jdGlvbi4gSXQgc2hvdWxkIG9ubHkKKyAgICB0byBiZSB1c2VkIGFzIGEgc2VjdXJlIHJlcGxhY2VtZW50IGZvciBSSVBFTUQuIEZvciBvdGhlciB1c2UgY2FzZXMKKyAgICBSSVBFTUQtMTYwIHNob3VsZCBiZSB1c2VkLgorCisgICAgRGV2ZWxvcGVkIGJ5IEhhbnMgRG9iYmVydGluLCBBbnRvb24gQm9zc2VsYWVycyBhbmQgQmFydCBQcmVuZWVsLgorICAgIFNlZSA8aHR0cDovL2hvbWUuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvcmlwZW1kMTYwLmh0bWw+CisKK2NvbmZpZyBDUllQVE9fUk1EMTYwCisgIHRyaXN0YXRlICJSSVBFTUQtMTYwIGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMTYwIChJU08vSUVDIDEwMTE4LTM6MjAwNCkuCisKKyAgICBSSVBFTUQtMTYwIGlzIGEgMTYwLWJpdCBjcnlwdG9ncmFwaGljIGhhc2ggZnVuY3Rpb24uIEl0IGlzIGludGVuZGVkCisgICAgdG8gYmUgdXNlZCBhcyBhIHNlY3VyZSByZXBsYWNlbWVudCBmb3IgdGhlIDEyOC1iaXQgaGFzaCBmdW5jdGlvbnMKKyAgICBNRDQsIE1ENSBhbmQgaXQncyBwcmVkZWNlc3NvciBSSVBFTUQgKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIFJJUEVNRC0xMjgpLgorCisgICAgSXQncyBzcGVlZCBpcyBjb21wYXJhYmxlIHRvIFNIQTEgYW5kIHRoZXJlIGFyZSBubyBrbm93biBhdHRhY2tzIGFnYWluc3QKKyAgICBSSVBFTUQtMTYwLgorCisgICAgRGV2ZWxvcGVkIGJ5IEhhbnMgRG9iYmVydGluLCBBbnRvb24gQm9zc2VsYWVycyBhbmQgQmFydCBQcmVuZWVsLgorICAgIFNlZSA8aHR0cDovL2hvbWUuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvcmlwZW1kMTYwLmh0bWw+CisKK2NvbmZpZyBDUllQVE9fUk1EMjU2CisgIHRyaXN0YXRlICJSSVBFTUQtMjU2IGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMjU2IGlzIGFuIG9wdGlvbmFsIGV4dGVuc2lvbiBvZiBSSVBFTUQtMTI4IHdpdGggYSAyNTYgYml0IGhhc2guCisgICAgSXQgaXMgaW50ZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgbG9uZ2VyIGhhc2gtcmVzdWx0cywgd2l0aG91dAorICAgIG5lZWRpbmcgYSBsYXJnZXIgc2VjdXJpdHkgbGV2ZWwgKHRoYW4gUklQRU1ELTEyOCkuCisKKyAgICBEZXZlbG9wZWQgYnkgSGFucyBEb2JiZXJ0aW4sIEFudG9vbiBCb3NzZWxhZXJzIGFuZCBCYXJ0IFByZW5lZWwuCisgICAgU2VlIDxodHRwOi8vaG9tZS5lc2F0Lmt1bGV1dmVuLmJlL35ib3NzZWxhZS9yaXBlbWQxNjAuaHRtbD4KKworY29uZmlnIENSWVBUT19STUQzMjAKKyAgdHJpc3RhdGUgIlJJUEVNRC0zMjAgZGlnZXN0IGFsZ29yaXRobSIKKyAgc2VsZWN0IENSWVBUT19BTEdBUEkKKyAgaGVscAorICAgIFJJUEVNRC0zMjAgaXMgYW4gb3B0aW9uYWwgZXh0ZW5zaW9uIG9mIFJJUEVNRC0xNjAgd2l0aCBhIDMyMCBiaXQgaGFzaC4KKyAgICBJdCBpcyBpbnRlbmRlZCBmb3IgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBsb25nZXIgaGFzaC1yZXN1bHRzLCB3aXRob3V0CisgICAgbmVlZGluZyBhIGxhcmdlciBzZWN1cml0eSBsZXZlbCAodGhhbiBSSVBFTUQtMTYwKS4KKworICAgIERldmVsb3BlZCBieSBIYW5zIERvYmJlcnRpbiwgQW50b29uIEJvc3NlbGFlcnMgYW5kIEJhcnQgUHJlbmVlbC4KKyAgICBTZWUgPGh0dHA6Ly9ob21lLmVzYXQua3VsZXV2ZW4uYmUvfmJvc3NlbGFlL3JpcGVtZDE2MC5odG1sPgorCiBjb25maWcgQ1JZUFRPX1NIQTEKIAl0cmlzdGF0ZSAiU0hBMSBkaWdlc3QgYWxnb3JpdGhtIgogCXNlbGVjdCBDUllQVE9fQUxHQVBJCkBAIC02MTQsNiArNjY2LDE1IEBACiAJaGVscAogCSAgVGhpcyBpcyB0aGUgTFpPIGFsZ29yaXRobS4KIAorY29tbWVudCAiUmFuZG9tIE51bWJlciBHZW5lcmF0aW9uIgorCitjb25maWcgQ1JZUFRPX1BSTkcKKwl0cmlzdGF0ZSAiUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdGlvbiBmb3IgQ3J5cHRvZ3JhcGhpYyBtb2R1bGVzIgorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGdlbmVyaWMgcHNldWRvIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCisJICBmb3IgY3J5cHRvZ3JhcGhpYyBtb2R1bGVzLiAgVXNlcyB0aGUgQWxnb3JpdGhtIHNwZWNpZmllZCBpbgorCSAgQU5TSSBYOS4zMSBBLjIuNAorCiBzb3VyY2UgImRyaXZlcnMvY3J5cHRvL0tjb25maWciCiAKIGVuZGlmCSMgaWYgQ1JZUFRPCmRpZmYgLS1naXQgYS9jcnlwdG8vTWFrZWZpbGUgYi9jcnlwdG8vTWFrZWZpbGUKaW5kZXggY2EwMjQ0MS4uZWY2MWIzYiAxMDA2NDQKLS0tIGEvY3J5cHRvL01ha2VmaWxlCisrKyBiL2NyeXB0by9NYWtlZmlsZQpAQCAtMTksNiArMTksNyBAQAogb2JqLSQoQ09ORklHX0NSWVBUT19TRVFJVikgKz0gc2VxaXYubwogCiBjcnlwdG9faGFzaC1vYmpzIDo9IGhhc2gubworY3J5cHRvX2hhc2gtb2JqcyArPSBhaGFzaC5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0hBU0gpICs9IGNyeXB0b19oYXNoLm8KIAogb2JqLSQoQ09ORklHX0NSWVBUT19NQU5BR0VSKSArPSBjcnlwdG9tZ3IubwpAQCAtMjcsNiArMjgsMTAgQEAKIG9iai0kKENPTkZJR19DUllQVE9fTlVMTCkgKz0gY3J5cHRvX251bGwubwogb2JqLSQoQ09ORklHX0NSWVBUT19NRDQpICs9IG1kNC5vCiBvYmotJChDT05GSUdfQ1JZUFRPX01ENSkgKz0gbWQ1Lm8KK29iai0kKENPTkZJR19DUllQVE9fUk1EMTI4KSArPSBybWQxMjgubworb2JqLSQoQ09ORklHX0NSWVBUT19STUQxNjApICs9IHJtZDE2MC5vCitvYmotJChDT05GSUdfQ1JZUFRPX1JNRDI1NikgKz0gcm1kMjU2Lm8KK29iai0kKENPTkZJR19DUllQVE9fUk1EMzIwKSArPSBybWQzMjAubwogb2JqLSQoQ09ORklHX0NSWVBUT19TSEExKSArPSBzaGExX2dlbmVyaWMubwogb2JqLSQoQ09ORklHX0NSWVBUT19TSEEyNTYpICs9IHNoYTI1Nl9nZW5lcmljLm8KIG9iai0kKENPTkZJR19DUllQVE9fU0hBNTEyKSArPSBzaGE1MTJfZ2VuZXJpYy5vCkBAIC02NCw3ICs2OSw3IEBACiBvYmotJChDT05GSUdfQ1JZUFRPX0NSQzMyQykgKz0gY3JjMzJjLm8KIG9iai0kKENPTkZJR19DUllQVE9fQVVUSEVOQykgKz0gYXV0aGVuYy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0xaTykgKz0gbHpvLm8KLQorb2JqLSQoQ09ORklHX0NSWVBUT19QUk5HKSArPSBwcm5nLm8KIG9iai0kKENPTkZJR19DUllQVE9fVEVTVCkgKz0gdGNyeXB0Lm8KIAogIwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FoYXNoLmMgYi9jcnlwdG8vYWhhc2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzEyOGYyCi0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL2FoYXNoLmMKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBBc3luY2hyb25vdXMgQ3J5cHRvZ3JhcGhpYyBIYXNoIG9wZXJhdGlvbnMuCisgKgorICogVGhpcyBpcyB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YgaGFzaC5jIHdpdGggbm90aWZpY2F0aW9uIG9mCisgKiBjb21wbGV0aW9uIHZpYSBhIGNhbGxiYWNrLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBMb2MgSG8gPGxob0BhbWNjLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KKyNpbmNsdWRlIDxjcnlwdG8vc2NhdHRlcndhbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworc3RhdGljIGludCBoYXNoX3dhbGtfbmV4dChzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2FsaykKK3sKKwl1bnNpZ25lZCBpbnQgYWxpZ25tYXNrID0gd2Fsay0+YWxpZ25tYXNrOworCXVuc2lnbmVkIGludCBvZmZzZXQgPSB3YWxrLT5vZmZzZXQ7CisJdW5zaWduZWQgaW50IG5ieXRlcyA9IG1pbih3YWxrLT5lbnRyeWxlbiwKKwkJCQkgICgodW5zaWduZWQgaW50KShQQUdFX1NJWkUpKSAtIG9mZnNldCk7CisKKwl3YWxrLT5kYXRhID0gY3J5cHRvX2ttYXAod2Fsay0+cGcsIDApOworCXdhbGstPmRhdGEgKz0gb2Zmc2V0OworCisJaWYgKG9mZnNldCAmIGFsaWdubWFzaykKKwkJbmJ5dGVzID0gYWxpZ25tYXNrICsgMSAtIChvZmZzZXQgJiBhbGlnbm1hc2spOworCisJd2Fsay0+ZW50cnlsZW4gLT0gbmJ5dGVzOworCXJldHVybiBuYnl0ZXM7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF93YWxrX25ld19lbnRyeShzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2FsaykKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCisJc2cgPSB3YWxrLT5zZzsKKwl3YWxrLT5wZyA9IHNnX3BhZ2Uoc2cpOworCXdhbGstPm9mZnNldCA9IHNnLT5vZmZzZXQ7CisJd2Fsay0+ZW50cnlsZW4gPSBzZy0+bGVuZ3RoOworCisJaWYgKHdhbGstPmVudHJ5bGVuID4gd2Fsay0+dG90YWwpCisJCXdhbGstPmVudHJ5bGVuID0gd2Fsay0+dG90YWw7CisJd2Fsay0+dG90YWwgLT0gd2Fsay0+ZW50cnlsZW47CisKKwlyZXR1cm4gaGFzaF93YWxrX25leHQod2Fsayk7Cit9CisKK2ludCBjcnlwdG9faGFzaF93YWxrX2RvbmUoc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGssIGludCBlcnIpCit7CisJdW5zaWduZWQgaW50IGFsaWdubWFzayA9IHdhbGstPmFsaWdubWFzazsKKwl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gd2Fsay0+ZW50cnlsZW47CisKKwl3YWxrLT5kYXRhIC09IHdhbGstPm9mZnNldDsKKworCWlmIChuYnl0ZXMgJiYgd2Fsay0+b2Zmc2V0ICYgYWxpZ25tYXNrICYmICFlcnIpIHsKKwkJd2Fsay0+b2Zmc2V0ICs9IGFsaWdubWFzayAtIDE7CisJCXdhbGstPm9mZnNldCA9IEFMSUdOKHdhbGstPm9mZnNldCwgYWxpZ25tYXNrICsgMSk7CisJCXdhbGstPmRhdGEgKz0gd2Fsay0+b2Zmc2V0OworCisJCW5ieXRlcyA9IG1pbihuYnl0ZXMsCisJCQkgICAgICgodW5zaWduZWQgaW50KShQQUdFX1NJWkUpKSAtIHdhbGstPm9mZnNldCk7CisJCXdhbGstPmVudHJ5bGVuIC09IG5ieXRlczsKKworCQlyZXR1cm4gbmJ5dGVzOworCX0KKworCWNyeXB0b19rdW5tYXAod2Fsay0+ZGF0YSwgMCk7CisJY3J5cHRvX3lpZWxkKHdhbGstPmZsYWdzKTsKKworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwl3YWxrLT5vZmZzZXQgPSAwOworCisJaWYgKG5ieXRlcykKKwkJcmV0dXJuIGhhc2hfd2Fsa19uZXh0KHdhbGspOworCisJaWYgKCF3YWxrLT50b3RhbCkKKwkJcmV0dXJuIDA7CisKKwl3YWxrLT5zZyA9IHNjYXR0ZXJ3YWxrX3NnX25leHQod2Fsay0+c2cpOworCisJcmV0dXJuIGhhc2hfd2Fsa19uZXdfZW50cnkod2Fsayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjcnlwdG9faGFzaF93YWxrX2RvbmUpOworCitpbnQgY3J5cHRvX2hhc2hfd2Fsa19maXJzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJICAgc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGspCit7CisJd2Fsay0+dG90YWwgPSByZXEtPm5ieXRlczsKKworCWlmICghd2Fsay0+dG90YWwpCisJCXJldHVybiAwOworCisJd2Fsay0+YWxpZ25tYXNrID0gY3J5cHRvX2FoYXNoX2FsaWdubWFzayhjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSkpOworCXdhbGstPnNnID0gcmVxLT5zcmM7CisJd2Fsay0+ZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3M7CisKKwlyZXR1cm4gaGFzaF93YWxrX25ld19lbnRyeSh3YWxrKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNyeXB0b19oYXNoX3dhbGtfZmlyc3QpOworCitzdGF0aWMgaW50IGFoYXNoX3NldGtleV91bmFsaWduZWQoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGFoYXNoX2FsZyAqYWhhc2ggPSBjcnlwdG9fYWhhc2hfYWxnKHRmbSk7CisJdW5zaWduZWQgbG9uZyBhbGlnbm1hc2sgPSBjcnlwdG9fYWhhc2hfYWxpZ25tYXNrKHRmbSk7CisJaW50IHJldDsKKwl1OCAqYnVmZmVyLCAqYWxpZ25idWZmZXI7CisJdW5zaWduZWQgbG9uZyBhYnNpemU7CisKKwlhYnNpemUgPSBrZXlsZW4gKyBhbGlnbm1hc2s7CisJYnVmZmVyID0ga21hbGxvYyhhYnNpemUsIEdGUF9BVE9NSUMpOworCWlmICghYnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFsaWduYnVmZmVyID0gKHU4ICopQUxJR04oKHVuc2lnbmVkIGxvbmcpYnVmZmVyLCBhbGlnbm1hc2sgKyAxKTsKKwltZW1jcHkoYWxpZ25idWZmZXIsIGtleSwga2V5bGVuKTsKKwlyZXQgPSBhaGFzaC0+c2V0a2V5KHRmbSwgYWxpZ25idWZmZXIsIGtleWxlbik7CisJbWVtc2V0KGFsaWduYnVmZmVyLCAwLCBrZXlsZW4pOworCWtmcmVlKGJ1ZmZlcik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgYWhhc2hfYWxnICphaGFzaCA9IGNyeXB0b19haGFzaF9hbGcodGZtKTsKKwl1bnNpZ25lZCBsb25nIGFsaWdubWFzayA9IGNyeXB0b19haGFzaF9hbGlnbm1hc2sodGZtKTsKKworCWlmICgodW5zaWduZWQgbG9uZylrZXkgJiBhbGlnbm1hc2spCisJCXJldHVybiBhaGFzaF9zZXRrZXlfdW5hbGlnbmVkKHRmbSwga2V5LCBrZXlsZW4pOworCisJcmV0dXJuIGFoYXNoLT5zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3J5cHRvX2FoYXNoX2N0eHNpemUoc3RydWN0IGNyeXB0b19hbGcgKmFsZywgdTMyIHR5cGUsCisJCQkJCXUzMiBtYXNrKQoreworCXJldHVybiBhbGctPmNyYV9jdHhzaXplOworfQorCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2FoYXNoX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwgdTMyIG1hc2spCit7CisJc3RydWN0IGFoYXNoX2FsZyAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfYWhhc2g7CisJc3RydWN0IGFoYXNoX3RmbSAqY3J0ICAgPSAmdGZtLT5jcnRfYWhhc2g7CisKKwlpZiAoYWxnLT5kaWdlc3RzaXplID4gUEFHRV9TSVpFIC8gOCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnQtPmluaXQgPSBhbGctPmluaXQ7CisJY3J0LT51cGRhdGUgPSBhbGctPnVwZGF0ZTsKKwljcnQtPmZpbmFsICA9IGFsZy0+ZmluYWw7CisJY3J0LT5kaWdlc3QgPSBhbGctPmRpZ2VzdDsKKwljcnQtPnNldGtleSA9IGFoYXNoX3NldGtleTsKKwljcnQtPmRpZ2VzdHNpemUgPSBhbGctPmRpZ2VzdHNpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY3J5cHRvX2FoYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQorCV9fYXR0cmlidXRlX18gKCh1bnVzZWQpKTsKK3N0YXRpYyB2b2lkIGNyeXB0b19haGFzaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykKK3sKKwlzZXFfcHJpbnRmKG0sICJ0eXBlICAgICAgICAgOiBhaGFzaFxuIik7CisJc2VxX3ByaW50ZihtLCAiYXN5bmMgICAgICAgIDogJXNcbiIsIGFsZy0+Y3JhX2ZsYWdzICYgQ1JZUFRPX0FMR19BU1lOQyA/CisJCQkJCSAgICAgInllcyIgOiAibm8iKTsKKwlzZXFfcHJpbnRmKG0sICJibG9ja3NpemUgICAgOiAldVxuIiwgYWxnLT5jcmFfYmxvY2tzaXplKTsKKwlzZXFfcHJpbnRmKG0sICJkaWdlc3RzaXplICAgOiAldVxuIiwgYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplKTsKK30KKworY29uc3Qgc3RydWN0IGNyeXB0b190eXBlIGNyeXB0b19haGFzaF90eXBlID0geworCS5jdHhzaXplID0gY3J5cHRvX2FoYXNoX2N0eHNpemUsCisJLmluaXQgPSBjcnlwdG9faW5pdF9haGFzaF9vcHMsCisjaWZkZWYgQ09ORklHX1BST0NfRlMKKwkuc2hvdyA9IGNyeXB0b19haGFzaF9zaG93LAorI2VuZGlmCit9OworRVhQT1JUX1NZTUJPTF9HUEwoY3J5cHRvX2FoYXNoX3R5cGUpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFzeW5jaHJvbm91cyBjcnlwdG9ncmFwaGljIGhhc2ggdHlwZSIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FwaS5jIGIvY3J5cHRvL2FwaS5jCmluZGV4IDBhMGY0MWUuLmQwNmUzMzIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hcGkuYworKysgYi9jcnlwdG8vYXBpLmMKQEAgLTIzNSw4ICsyMzUsMTIgQEAKIAkJcmV0dXJuIGNyeXB0b19pbml0X2NpcGhlcl9vcHModGZtKTsKIAkJCiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfRElHRVNUOgotCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wcyh0Zm0pOwotCQkKKwkJaWYgKChtYXNrICYgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSykgIT0KKwkJICAgIENSWVBUT19BTEdfVFlQRV9IQVNIX01BU0spCisJCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wc19hc3luYyh0Zm0pOworCQllbHNlCisJCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wcyh0Zm0pOworCiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfQ09NUFJFU1M6CiAJCXJldHVybiBjcnlwdG9faW5pdF9jb21wcmVzc19vcHModGZtKTsKIAkKZGlmZiAtLWdpdCBhL2NyeXB0by9jYW1lbGxpYS5jIGIvY3J5cHRvL2NhbWVsbGlhLmMKaW5kZXggNDkzZmVlNy4uYjFjYzRkZSAxMDA2NDQKLS0tIGEvY3J5cHRvL2NhbWVsbGlhLmMKKysrIGIvY3J5cHRvL2NhbWVsbGlhLmMKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogCiBzdGF0aWMgY29uc3QgdTMyIGNhbWVsbGlhX3NwMTExMFsyNTZdID0gewogCTB4NzA3MDcwMDAsMHg4MjgyODIwMCwweDJjMmMyYzAwLDB4ZWNlY2VjMDAsCkBAIC0zMzUsMjAgKzMzNyw2IEBACiAvKgogICogIG1hY3JvcwogICovCi0jZGVmaW5lIEdFVFUzMih2LCBwdCkgXAotICAgIGRvIHsgXAotCS8qIGxhdGVzdCBicmVlZCBvZiBnY2MgaXMgY2xldmVyIGVub3VnaCB0byB1c2UgbW92ZSAqLyBcCi0JbWVtY3B5KCYodiksIChwdCksIDQpOyBcCi0JKHYpID0gYmUzMl90b19jcHUodik7IFwKLSAgICB9IHdoaWxlKDApCi0KLS8qIHJvdGF0aW9uIHJpZ2h0IHNoaWZ0IDFieXRlICovCi0jZGVmaW5lIFJPUjgoeCkgKCgoeCkgPj4gOCkgKyAoKHgpIDw8IDI0KSkKLS8qIHJvdGF0aW9uIGxlZnQgc2hpZnQgMWJpdCAqLwotI2RlZmluZSBST0wxKHgpICgoKHgpIDw8IDEpICsgKCh4KSA+PiAzMSkpCi0vKiByb3RhdGlvbiBsZWZ0IHNoaWZ0IDFieXRlICovCi0jZGVmaW5lIFJPTDgoeCkgKCgoeCkgPDwgOCkgKyAoKHgpID4+IDI0KSkKLQogI2RlZmluZSBST0xEUShsbCwgbHIsIHJsLCByciwgdzAsIHcxLCBiaXRzKQkJXAogICAgIGRvIHsJCQkJCQlcCiAJdzAgPSBsbDsJCQkJCVwKQEAgLTM4Myw3ICszNzEsNyBAQAogCSAgIF4gY2FtZWxsaWFfc3AzMDMzWyh1OCkoaWwgPj4gOCldCQkJXAogCSAgIF4gY2FtZWxsaWFfc3A0NDA0Wyh1OCkoaWwgICAgICldOwkJCVwKIAl5bCBePSB5cjsJCQkJCQlcCi0JeXIgPSBST1I4KHlyKTsJCQkJCQlcCisJeXIgPSByb3IzMih5ciwgOCk7CQkJCQlcCiAJeXIgXj0geWw7CQkJCQkJXAogICAgIH0gd2hpbGUoMCkKIApAQCAtNDA1LDcgKzM5Myw3IEBACiAJc3ViTFs3XSBePSBzdWJMWzFdOyBzdWJSWzddIF49IHN1YlJbMV07CiAJc3ViTFsxXSBePSBzdWJSWzFdICYgfnN1YlJbOV07CiAJZHcgPSBzdWJMWzFdICYgc3ViTFs5XSwKLQkJc3ViUlsxXSBePSBST0wxKGR3KTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsMikgKi8KKwkJc3ViUlsxXSBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDIpICovCiAJLyogcm91bmQgOCAqLwogCXN1YkxbMTFdIF49IHN1YkxbMV07IHN1YlJbMTFdIF49IHN1YlJbMV07CiAJLyogcm91bmQgMTAgKi8KQEAgLTQxNCw3ICs0MDIsNyBAQAogCXN1YkxbMTVdIF49IHN1YkxbMV07IHN1YlJbMTVdIF49IHN1YlJbMV07CiAJc3ViTFsxXSBePSBzdWJSWzFdICYgfnN1YlJbMTddOwogCWR3ID0gc3ViTFsxXSAmIHN1YkxbMTddLAotCQlzdWJSWzFdIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2w0KSAqLworCQlzdWJSWzFdIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsNCkgKi8KIAkvKiByb3VuZCAxNCAqLwogCXN1YkxbMTldIF49IHN1YkxbMV07IHN1YlJbMTldIF49IHN1YlJbMV07CiAJLyogcm91bmQgMTYgKi8KQEAgLTQzMCw3ICs0MTgsNyBAQAogCX0gZWxzZSB7CiAJCXN1YkxbMV0gXj0gc3ViUlsxXSAmIH5zdWJSWzI1XTsKIAkJZHcgPSBzdWJMWzFdICYgc3ViTFsyNV0sCi0JCQlzdWJSWzFdIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2w2KSAqLworCQkJc3ViUlsxXSBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDYpICovCiAJCS8qIHJvdW5kIDIwICovCiAJCXN1YkxbMjddIF49IHN1YkxbMV07IHN1YlJbMjddIF49IHN1YlJbMV07CiAJCS8qIHJvdW5kIDIyICovCkBAIC00NTAsNyArNDM4LDcgQEAKIAkJc3ViTFsyNl0gXj0ga3c0bDsgc3ViUlsyNl0gXj0ga3c0cjsKIAkJa3c0bCBePSBrdzRyICYgfnN1YlJbMjRdOwogCQlkdyA9IGt3NGwgJiBzdWJMWzI0XSwKLQkJCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDUpICovCisJCQlrdzRyIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMKGtsNSkgKi8KIAl9CiAJLyogcm91bmQgMTcgKi8KIAlzdWJMWzIyXSBePSBrdzRsOyBzdWJSWzIyXSBePSBrdzRyOwpAQCAtNDYwLDcgKzQ0OCw3IEBACiAJc3ViTFsxOF0gXj0ga3c0bDsgc3ViUlsxOF0gXj0ga3c0cjsKIAlrdzRsIF49IGt3NHIgJiB+c3ViUlsxNl07CiAJZHcgPSBrdzRsICYgc3ViTFsxNl0sCi0JCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDMpICovCisJCWt3NHIgXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wzKSAqLwogCS8qIHJvdW5kIDExICovCiAJc3ViTFsxNF0gXj0ga3c0bDsgc3ViUlsxNF0gXj0ga3c0cjsKIAkvKiByb3VuZCA5ICovCkBAIC00NjksNyArNDU3LDcgQEAKIAlzdWJMWzEwXSBePSBrdzRsOyBzdWJSWzEwXSBePSBrdzRyOwogCWt3NGwgXj0ga3c0ciAmIH5zdWJSWzhdOwogCWR3ID0ga3c0bCAmIHN1YkxbOF0sCi0JCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDEpICovCisJCWt3NHIgXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wxKSAqLwogCS8qIHJvdW5kIDUgKi8KIAlzdWJMWzZdIF49IGt3NGw7IHN1YlJbNl0gXj0ga3c0cjsKIAkvKiByb3VuZCAzICovCkBAIC00OTQsNyArNDgyLDcgQEAKIAlTVUJLRVlfUig2KSA9IHN1YlJbNV0gXiBzdWJSWzddOwogCXRsID0gc3ViTFsxMF0gXiAoc3ViUlsxMF0gJiB+c3ViUls4XSk7CiAJZHcgPSB0bCAmIHN1YkxbOF0sICAvKiBGTChrbDEpICovCi0JCXRyID0gc3ViUlsxMF0gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzEwXSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCg3KSA9IHN1YkxbNl0gXiB0bDsgLyogcm91bmQgNiAqLwogCVNVQktFWV9SKDcpID0gc3ViUls2XSBeIHRyOwogCVNVQktFWV9MKDgpID0gc3ViTFs4XTsgICAgICAgLyogRkwoa2wxKSAqLwpAQCAtNTAzLDcgKzQ5MSw3IEBACiAJU1VCS0VZX1IoOSkgPSBzdWJSWzldOwogCXRsID0gc3ViTFs3XSBeIChzdWJSWzddICYgfnN1YlJbOV0pOwogCWR3ID0gdGwgJiBzdWJMWzldLCAgLyogRkxpbnYoa2wyKSAqLwotCQl0ciA9IHN1YlJbN10gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzddIF4gcm9sMzIoZHcsIDEpOwogCVNVQktFWV9MKDEwKSA9IHRsIF4gc3ViTFsxMV07IC8qIHJvdW5kIDcgKi8KIAlTVUJLRVlfUigxMCkgPSB0ciBeIHN1YlJbMTFdOwogCVNVQktFWV9MKDExKSA9IHN1YkxbMTBdIF4gc3ViTFsxMl07IC8qIHJvdW5kIDggKi8KQEAgLTUxNiw3ICs1MDQsNyBAQAogCVNVQktFWV9SKDE0KSA9IHN1YlJbMTNdIF4gc3ViUlsxNV07CiAJdGwgPSBzdWJMWzE4XSBeIChzdWJSWzE4XSAmIH5zdWJSWzE2XSk7CiAJZHcgPSB0bCAmIHN1YkxbMTZdLCAvKiBGTChrbDMpICovCi0JCXRyID0gc3ViUlsxOF0gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzE4XSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCgxNSkgPSBzdWJMWzE0XSBeIHRsOyAvKiByb3VuZCAxMiAqLwogCVNVQktFWV9SKDE1KSA9IHN1YlJbMTRdIF4gdHI7CiAJU1VCS0VZX0woMTYpID0gc3ViTFsxNl07ICAgICAvKiBGTChrbDMpICovCkBAIC01MjUsNyArNTEzLDcgQEAKIAlTVUJLRVlfUigxNykgPSBzdWJSWzE3XTsKIAl0bCA9IHN1YkxbMTVdIF4gKHN1YlJbMTVdICYgfnN1YlJbMTddKTsKIAlkdyA9IHRsICYgc3ViTFsxN10sIC8qIEZMaW52KGtsNCkgKi8KLQkJdHIgPSBzdWJSWzE1XSBeIFJPTDEoZHcpOworCQl0ciA9IHN1YlJbMTVdIF4gcm9sMzIoZHcsIDEpOwogCVNVQktFWV9MKDE4KSA9IHRsIF4gc3ViTFsxOV07IC8qIHJvdW5kIDEzICovCiAJU1VCS0VZX1IoMTgpID0gdHIgXiBzdWJSWzE5XTsKIAlTVUJLRVlfTCgxOSkgPSBzdWJMWzE4XSBeIHN1YkxbMjBdOyAvKiByb3VuZCAxNCAqLwpAQCAtNTQ0LDcgKzUzMiw3IEBACiAJfSBlbHNlIHsKIAkJdGwgPSBzdWJMWzI2XSBeIChzdWJSWzI2XSAmIH5zdWJSWzI0XSk7CiAJCWR3ID0gdGwgJiBzdWJMWzI0XSwgLyogRkwoa2w1KSAqLwotCQkJdHIgPSBzdWJSWzI2XSBeIFJPTDEoZHcpOworCQkJdHIgPSBzdWJSWzI2XSBeIHJvbDMyKGR3LCAxKTsKIAkJU1VCS0VZX0woMjMpID0gc3ViTFsyMl0gXiB0bDsgLyogcm91bmQgMTggKi8KIAkJU1VCS0VZX1IoMjMpID0gc3ViUlsyMl0gXiB0cjsKIAkJU1VCS0VZX0woMjQpID0gc3ViTFsyNF07ICAgICAvKiBGTChrbDUpICovCkBAIC01NTMsNyArNTQxLDcgQEAKIAkJU1VCS0VZX1IoMjUpID0gc3ViUlsyNV07CiAJCXRsID0gc3ViTFsyM10gXiAoc3ViUlsyM10gJiB+c3ViUlsyNV0pOwogCQlkdyA9IHRsICYgc3ViTFsyNV0sIC8qIEZMaW52KGtsNikgKi8KLQkJCXRyID0gc3ViUlsyM10gXiBST0wxKGR3KTsKKwkJCXRyID0gc3ViUlsyM10gXiByb2wzMihkdywgMSk7CiAJCVNVQktFWV9MKDI2KSA9IHRsIF4gc3ViTFsyN107IC8qIHJvdW5kIDE5ICovCiAJCVNVQktFWV9SKDI2KSA9IHRyIF4gc3ViUlsyN107CiAJCVNVQktFWV9MKDI3KSA9IHN1YkxbMjZdIF4gc3ViTFsyOF07IC8qIHJvdW5kIDIwICovCkBAIC01NzMsMTcgKzU2MSwxNyBAQAogCS8qIGFwcGx5IHRoZSBpbnZlcnNlIG9mIHRoZSBsYXN0IGhhbGYgb2YgUC1mdW5jdGlvbiAqLwogCWkgPSAyOwogCWRvIHsKLQkJZHcgPSBTVUJLRVlfTChpICsgMCkgXiBTVUJLRVlfUihpICsgMCk7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgMSAqLworCQlkdyA9IFNVQktFWV9MKGkgKyAwKSBeIFNVQktFWV9SKGkgKyAwKTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgMSAqLwogCQlTVUJLRVlfUihpICsgMCkgPSBTVUJLRVlfTChpICsgMCkgXiBkdzsgU1VCS0VZX0woaSArIDApID0gZHc7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDEpIF4gU1VCS0VZX1IoaSArIDEpOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDIgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgMSkgXiBTVUJLRVlfUihpICsgMSk7IGR3ID0gcm9sMzIoZHcsIDgpOy8qIHJvdW5kIDIgKi8KIAkJU1VCS0VZX1IoaSArIDEpID0gU1VCS0VZX0woaSArIDEpIF4gZHc7IFNVQktFWV9MKGkgKyAxKSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyAyKSBeIFNVQktFWV9SKGkgKyAyKTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCAzICovCisJCWR3ID0gU1VCS0VZX0woaSArIDIpIF4gU1VCS0VZX1IoaSArIDIpOyBkdyA9IHJvbDMyKGR3LCA4KTsvKiByb3VuZCAzICovCiAJCVNVQktFWV9SKGkgKyAyKSA9IFNVQktFWV9MKGkgKyAyKSBeIGR3OyBTVUJLRVlfTChpICsgMikgPSBkdzsKLQkJZHcgPSBTVUJLRVlfTChpICsgMykgXiBTVUJLRVlfUihpICsgMyk7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgNCAqLworCQlkdyA9IFNVQktFWV9MKGkgKyAzKSBeIFNVQktFWV9SKGkgKyAzKTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgNCAqLwogCQlTVUJLRVlfUihpICsgMykgPSBTVUJLRVlfTChpICsgMykgXiBkdzsgU1VCS0VZX0woaSArIDMpID0gZHc7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDQpIF4gU1VCS0VZX1IoaSArIDQpOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDUgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgNCkgXiBTVUJLRVlfUihpICsgNCk7IGR3ID0gcm9sMzIoZHcsIDkpOy8qIHJvdW5kIDUgKi8KIAkJU1VCS0VZX1IoaSArIDQpID0gU1VCS0VZX0woaSArIDQpIF4gZHc7IFNVQktFWV9MKGkgKyA0KSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyA1KSBeIFNVQktFWV9SKGkgKyA1KTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCA2ICovCisJCWR3ID0gU1VCS0VZX0woaSArIDUpIF4gU1VCS0VZX1IoaSArIDUpOyBkdyA9IHJvbDMyKGR3LCA4KTsvKiByb3VuZCA2ICovCiAJCVNVQktFWV9SKGkgKyA1KSA9IFNVQktFWV9MKGkgKyA1KSBeIGR3OyBTVUJLRVlfTChpICsgNSkgPSBkdzsKIAkJaSArPSA4OwogCX0gd2hpbGUgKGkgPCBtYXgpOwpAQCAtNTk5LDEwICs1ODcsMTAgQEAKIAkvKioKIAkgKiAgayA9PSBrbGwgfHwga2xyIHx8IGtybCB8fCBrcnIgKHx8IGlzIGNvbmNhdGVuYXRpb24pCiAJICovCi0JR0VUVTMyKGtsbCwga2V5ICAgICApOwotCUdFVFUzMihrbHIsIGtleSArICA0KTsKLQlHRVRVMzIoa3JsLCBrZXkgKyAgOCk7Ci0JR0VUVTMyKGtyciwga2V5ICsgMTIpOworCWtsbCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkpOworCWtsciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyA0KTsKKwlrcmwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgOCk7CisJa3JyID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDEyKTsKIAogCS8qIGdlbmVyYXRlIEtMIGRlcGVuZGVudCBzdWJrZXlzICovCiAJLyoga3cxICovCkBAIC03MDcsMTQgKzY5NSwxNCBAQAogCSAqICBrZXkgPSAoa2xsIHx8IGtsciB8fCBrcmwgfHwga3JyIHx8IGtybGwgfHwga3JsciB8fCBrcnJsIHx8IGtycnIpCiAJICogICh8fCBpcyBjb25jYXRlbmF0aW9uKQogCSAqLwotCUdFVFUzMihrbGwsICBrZXkgICAgICk7Ci0JR0VUVTMyKGtsciwgIGtleSArICA0KTsKLQlHRVRVMzIoa3JsLCAga2V5ICsgIDgpOwotCUdFVFUzMihrcnIsICBrZXkgKyAxMik7Ci0JR0VUVTMyKGtybGwsIGtleSArIDE2KTsKLQlHRVRVMzIoa3Jsciwga2V5ICsgMjApOwotCUdFVFUzMihrcnJsLCBrZXkgKyAyNCk7Ci0JR0VUVTMyKGtycnIsIGtleSArIDI4KTsKKwlrbGwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5KTsKKwlrbHIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgNCk7CisJa3JsID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDgpOworCWtyciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAxMik7CisJa3JsbCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAxNik7CisJa3JsciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyMCk7CisJa3JybCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyNCk7CisJa3JyciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyOCk7CiAKIAkvKiBnZW5lcmF0ZSBLTCBkZXBlbmRlbnQgc3Via2V5cyAqLwogCS8qIGt3MSAqLwpAQCAtODcwLDEzICs4NTgsMTMgQEAKIAl0MCAmPSBsbDsJCQkJCQkJXAogCXQyIHw9IHJyOwkJCQkJCQlcCiAJcmwgXj0gdDI7CQkJCQkJCVwKLQlsciBePSBST0wxKHQwKTsJCQkJCQkJXAorCWxyIF49IHJvbDMyKHQwLCAxKTsJCQkJCQlcCiAJdDMgPSBrcmw7CQkJCQkJCVwKIAl0MSA9IGtscjsJCQkJCQkJXAogCXQzICY9IHJsOwkJCQkJCQlcCiAJdDEgfD0gbHI7CQkJCQkJCVwKIAlsbCBePSB0MTsJCQkJCQkJXAotCXJyIF49IFJPTDEodDMpOwkJCQkJCQlcCisJcnIgXj0gcm9sMzIodDMsIDEpOwkJCQkJCVwKICAgICB9IHdoaWxlKDApCiAKICNkZWZpbmUgQ0FNRUxMSUFfUk9VTkRTTSh4bCwgeHIsIGtsLCBrciwgeWwsIHlyLCBpbCwgaXIpCQlcCkBAIC04OTIsNyArODgwLDcgQEAKIAlpbCBePSBrbDsJCQkJCQkJXAogCWlyIF49IGlsIF4ga3I7CQkJCQkJCVwKIAl5bCBePSBpcjsJCQkJCQkJXAotCXlyIF49IFJPUjgoaWwpIF4gaXI7CQkJCQkJXAorCXlyIF49IHJvcjMyKGlsLCA4KSBeIGlyOwkJCQkJCVwKICAgICB9IHdoaWxlKDApCiAKIC8qIG1heCA9IDI0OiAxMjhiaXQgZW5jcnlwdCwgbWF4ID0gMzI6IDI1NmJpdCBlbmNyeXB0ICovCmRpZmYgLS1naXQgYS9jcnlwdG8vY2hhaW5pdi5jIGIvY3J5cHRvL2NoYWluaXYuYwppbmRleCA2ZGEzZjU3Li45YWZmYWRlIDEwMDY0NAotLS0gYS9jcnlwdG8vY2hhaW5pdi5jCisrKyBiL2NyeXB0by9jaGFpbml2LmMKQEAgLTExNyw2ICsxMTcsNyBAQAogc3RhdGljIGludCBhc3luY19jaGFpbml2X3NjaGVkdWxlX3dvcmsoc3RydWN0IGFzeW5jX2NoYWluaXZfY3R4ICpjdHgpCiB7CiAJaW50IHF1ZXVlZDsKKwlpbnQgZXJyID0gY3R4LT5lcnI7CiAKIAlpZiAoIWN0eC0+cXVldWUucWxlbikgewogCQlzbXBfbWJfX2JlZm9yZV9jbGVhcl9iaXQoKTsKQEAgLTEzMSw3ICsxMzIsNyBAQAogCUJVR19PTighcXVldWVkKTsKIAogb3V0OgotCXJldHVybiBjdHgtPmVycjsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGFzeW5jX2NoYWluaXZfcG9zdHBvbmVfcmVxdWVzdChzdHJ1Y3Qgc2tjaXBoZXJfZ2l2Y3J5cHRfcmVxdWVzdCAqcmVxKQpAQCAtMjI3LDYgKzIyOCw3IEBACiAJCQkJCQkgICAgIHBvc3Rwb25lZCk7CiAJc3RydWN0IHNrY2lwaGVyX2dpdmNyeXB0X3JlcXVlc3QgKnJlcTsKIAlzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpzdWJyZXE7CisJaW50IGVycjsKIAogCS8qIE9ubHkgaGFuZGxlIG9uZSByZXF1ZXN0IGF0IGEgdGltZSB0byBhdm9pZCBob2dnaW5nIGtldmVudGQuICovCiAJc3Bpbl9sb2NrX2JoKCZjdHgtPmxvY2spOwpAQCAtMjQxLDcgKzI0MywxMSBAQAogCXN1YnJlcSA9IHNrY2lwaGVyX2dpdmNyeXB0X3JlcWN0eChyZXEpOwogCXN1YnJlcS0+YmFzZS5mbGFncyB8PSBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVA7CiAKLQlhc3luY19jaGFpbml2X2dpdmVuY3J5cHRfdGFpbChyZXEpOworCWVyciA9IGFzeW5jX2NoYWluaXZfZ2l2ZW5jcnlwdF90YWlsKHJlcSk7CisKKwlsb2NhbF9iaF9kaXNhYmxlKCk7CisJc2tjaXBoZXJfZ2l2Y3J5cHRfY29tcGxldGUocmVxLCBlcnIpOworCWxvY2FsX2JoX2VuYWJsZSgpOwogfQogCiBzdGF0aWMgaW50IGFzeW5jX2NoYWluaXZfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NyYzMyYy5jIGIvY3J5cHRvL2NyYzMyYy5jCmluZGV4IDBkY2Y2NGEuLmE4ODJkOWUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jcmMzMmMuYworKysgYi9jcnlwdG8vY3JjMzJjLmMKQEAgLTUsMjAgKzUsMjMgQEAKICAqCiAgKiBUaGlzIG1vZHVsZSBmaWxlIGlzIGEgd3JhcHBlciB0byBpbnZva2UgdGhlIGxpYi9jcmMzMmMgcm91dGluZXMuCiAgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAogICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKICAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgCiAgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCiAgKi8KKworI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgogI2luY2x1ZGUgPGxpbnV4L2NyYzMyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCi0jZGVmaW5lIENIS1NVTV9CTE9DS19TSVpFCTMyCisjZGVmaW5lIENIS1NVTV9CTE9DS19TSVpFCTEKICNkZWZpbmUgQ0hLU1VNX0RJR0VTVF9TSVpFCTQKIAogc3RydWN0IGNoa3N1bV9jdHggewpAQCAtNzEsNyArNzQsNyBAQAogCSooX19sZTMyICopb3V0ID0gfmNwdV90b19sZTMyKG1jdHgtPmNyYyk7CiB9CiAKLXN0YXRpYyBpbnQgY3JjMzJjX2NyYV9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCitzdGF0aWMgaW50IGNyYzMyY19jcmFfaW5pdF9vbGQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKIHsKIAlzdHJ1Y3QgY2hrc3VtX2N0eCAqbWN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CiAKQEAgLTc5LDE0ICs4MiwxNCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgYWxnID0geworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIG9sZF9hbGcgPSB7CiAJLmNyYV9uYW1lCT0JImNyYzMyYyIsCiAJLmNyYV9mbGFncwk9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCiAJLmNyYV9ibG9ja3NpemUJPQlDSEtTVU1fQkxPQ0tfU0laRSwKIAkuY3JhX2N0eHNpemUJPQlzaXplb2Yoc3RydWN0IGNoa3N1bV9jdHgpLAogCS5jcmFfbW9kdWxlCT0JVEhJU19NT0RVTEUsCi0JLmNyYV9saXN0CT0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKLQkuY3JhX2luaXQJPQljcmMzMmNfY3JhX2luaXQsCisJLmNyYV9saXN0CT0JTElTVF9IRUFEX0lOSVQob2xkX2FsZy5jcmFfbGlzdCksCisJLmNyYV9pbml0CT0JY3JjMzJjX2NyYV9pbml0X29sZCwKIAkuY3JhX3UJCT0JewogCQkuZGlnZXN0ID0gewogCQkJIC5kaWFfZGlnZXN0c2l6ZT0JQ0hLU1VNX0RJR0VTVF9TSVpFLApAQCAtOTgsMTQgKzEwMSwxMjUgQEAKIAl9CiB9OwogCisvKgorICogU2V0dGluZyB0aGUgc2VlZCBhbGxvd3MgYXJiaXRyYXJ5IGFjY3VtdWxhdG9ycyBhbmQgZmxleGlibGUgWE9SIHBvbGljeQorICogSWYgeW91ciBhbGdvcml0aG0gc3RhcnRzIHdpdGggfjAsIHRoZW4gWE9SIHdpdGggfjAgYmVmb3JlIHlvdSBzZXQKKyAqIHRoZSBzZWVkLgorICovCitzdGF0aWMgaW50IGNyYzMyY19zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCwgY29uc3QgdTggKmtleSwKKwkJCSB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXUzMiAqbWN0eCA9IGNyeXB0b19haGFzaF9jdHgoaGFzaCk7CisKKwlpZiAoa2V5bGVuICE9IHNpemVvZih1MzIpKSB7CisJCWNyeXB0b19haGFzaF9zZXRfZmxhZ3MoaGFzaCwgQ1JZUFRPX1RGTV9SRVNfQkFEX0tFWV9MRU4pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJKm1jdHggPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKWtleSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwl1MzIgKm1jdHggPSBjcnlwdG9fYWhhc2hfY3R4KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKworCSpjcmNwID0gKm1jdHg7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX3VwZGF0ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9faGFzaF93YWxrIHdhbGs7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwl1MzIgY3JjID0gKmNyY3A7CisJaW50IG5ieXRlczsKKworCWZvciAobmJ5dGVzID0gY3J5cHRvX2hhc2hfd2Fsa19maXJzdChyZXEsICZ3YWxrKTsgbmJ5dGVzOworCSAgICAgbmJ5dGVzID0gY3J5cHRvX2hhc2hfd2Fsa19kb25lKCZ3YWxrLCAwKSkKKwkJY3JjID0gY3JjMzJjKGNyYywgd2Fsay5kYXRhLCBuYnl0ZXMpOworCisJKmNyY3AgPSBjcmM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2ZpbmFsKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwkKKwkqKF9fbGUzMiAqKXJlcS0+cmVzdWx0ID0gfmNwdV90b19sZTMycChjcmNwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcmMzMmNfZGlnZXN0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgd2FsazsKKwl1MzIgKm1jdHggPSBjcnlwdG9fYWhhc2hfY3R4KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJdTMyIGNyYyA9ICptY3R4OworCWludCBuYnl0ZXM7CisKKwlmb3IgKG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZmlyc3QocmVxLCAmd2Fsayk7IG5ieXRlczsKKwkgICAgIG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZG9uZSgmd2FsaywgMCkpCisJCWNyYyA9IGNyYzMyYyhjcmMsIHdhbGsuZGF0YSwgbmJ5dGVzKTsKKworCSooX19sZTMyICopcmVxLT5yZXN1bHQgPSB+Y3B1X3RvX2xlMzIoY3JjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcmMzMmNfY3JhX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwl1MzIgKmtleSA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwkqa2V5ID0gfjA7CisKKwl0Zm0tPmNydF9haGFzaC5yZXFzaXplID0gc2l6ZW9mKHUzMik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJCT0JImNyYzMyYyIsCisJLmNyYV9kcml2ZXJfbmFtZQk9CSJjcmMzMmMtZ2VuZXJpYyIsCisJLmNyYV9wcmlvcml0eQkJPQkxMDAsCisJLmNyYV9mbGFncwkJPQlDUllQVE9fQUxHX1RZUEVfQUhBU0gsCisJLmNyYV9ibG9ja3NpemUJCT0JQ0hLU1VNX0JMT0NLX1NJWkUsCisJLmNyYV9hbGlnbm1hc2sJCT0JMywKKwkuY3JhX2N0eHNpemUJCT0Jc2l6ZW9mKHUzMiksCisJLmNyYV9tb2R1bGUJCT0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CQk9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV9pbml0CQk9CWNyYzMyY19jcmFfaW5pdCwKKwkuY3JhX3R5cGUJCT0JJmNyeXB0b19haGFzaF90eXBlLAorCS5jcmFfdQkJCT0JeworCQkuYWhhc2ggPSB7CisJCQkgLmRpZ2VzdHNpemUJPQlDSEtTVU1fRElHRVNUX1NJWkUsCisJCQkgLnNldGtleQk9CWNyYzMyY19zZXRrZXksCisJCQkgLmluaXQgICAJPSAJY3JjMzJjX2luaXQsCisJCQkgLnVwZGF0ZSAJPQljcmMzMmNfdXBkYXRlLAorCQkJIC5maW5hbCAgCT0JY3JjMzJjX2ZpbmFsLAorCQkJIC5kaWdlc3QgIAk9CWNyYzMyY19kaWdlc3QsCisJCSB9CisJfQorfTsKKwogc3RhdGljIGludCBfX2luaXQgY3JjMzJjX21vZF9pbml0KHZvaWQpCiB7Ci0JcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7CisJaW50IGVycjsKKworCWVyciA9IGNyeXB0b19yZWdpc3Rlcl9hbGcoJm9sZF9hbGcpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworCWlmIChlcnIpCisJCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmb2xkX2FsZyk7CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgY3JjMzJjX21vZF9maW5pKHZvaWQpCiB7CiAJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmb2xkX2FsZyk7CiB9CiAKIG1vZHVsZV9pbml0KGNyYzMyY19tb2RfaW5pdCk7CmRpZmYgLS1naXQgYS9jcnlwdG8vY3J5cHRkLmMgYi9jcnlwdG8vY3J5cHRkLmMKaW5kZXggYjE1MGRlNS4uZDI5ZTA2YiAxMDA2NDQKLS0tIGEvY3J5cHRvL2NyeXB0ZC5jCisrKyBiL2NyeXB0by9jcnlwdGQuYwpAQCAtMTEsNiArMTEsNyBAQAogICovCiAKICNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC00NSw2ICs0NiwxMyBAQAogCWNyeXB0b19jb21wbGV0aW9uX3QgY29tcGxldGU7CiB9OwogCitzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4IHsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggKmNoaWxkOworfTsKKworc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4IHsKKwljcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlOworfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRkX3N0YXRlICpjcnlwdGRfZ2V0X3N0YXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CkBAIC04MiwxMCArOTAsOCBAQAogCiAJcmN0eCA9IGFibGtjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKIAotCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkgewotCQlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOwotCQlyZXR1cm47Ci0JfQorCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkKKwkJZ290byBvdXQ7CiAKIAlkZXNjLnRmbSA9IGNoaWxkOwogCWRlc2MuaW5mbyA9IHJlcS0+aW5mbzsKQEAgLTk1LDggKzEwMSw5IEBACiAKIAlyZXEtPmJhc2UuY29tcGxldGUgPSByY3R4LT5jb21wbGV0ZTsKIAorb3V0OgogCWxvY2FsX2JoX2Rpc2FibGUoKTsKLQlyZXEtPmJhc2UuY29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKKwlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwogfQogCkBAIC0yNjEsNiArMjY4LDI0MCBAQAogCXJldHVybiBpbnN0OwogfQogCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2luaXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0b19pbnN0YW5jZSAqaW5zdCA9IGNyeXB0b190Zm1fYWxnX2luc3RhbmNlKHRmbSk7CisJc3RydWN0IGNyeXB0ZF9pbnN0YW5jZV9jdHggKmljdHggPSBjcnlwdG9faW5zdGFuY2VfY3R4KGluc3QpOworCXN0cnVjdCBjcnlwdG9fc3Bhd24gKnNwYXduID0gJmljdHgtPnNwYXduOworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICpjaXBoZXI7CisKKwljaXBoZXIgPSBjcnlwdG9fc3Bhd25faGFzaChzcGF3bik7CisJaWYgKElTX0VSUihjaXBoZXIpKQorCQlyZXR1cm4gUFRSX0VSUihjaXBoZXIpOworCisJY3R4LT5jaGlsZCA9IGNpcGhlcjsKKwl0Zm0tPmNydF9haGFzaC5yZXFzaXplID0KKwkJc2l6ZW9mKHN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0ZF9oYXNoX2V4aXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlzdHJ1Y3QgY3J5cHRkX3N0YXRlICpzdGF0ZSA9IGNyeXB0ZF9nZXRfc3RhdGUodGZtKTsKKwlpbnQgYWN0aXZlOworCisJbXV0ZXhfbG9jaygmc3RhdGUtPm11dGV4KTsKKwlhY3RpdmUgPSBhaGFzaF90Zm1faW5fcXVldWUoJnN0YXRlLT5xdWV1ZSwKKwkJCQlfX2NyeXB0b19haGFzaF9jYXN0KHRmbSkpOworCW11dGV4X3VubG9jaygmc3RhdGUtPm11dGV4KTsKKworCUJVR19PTihhY3RpdmUpOworCisJY3J5cHRvX2ZyZWVfaGFzaChjdHgtPmNoaWxkKTsKK30KKworc3RhdGljIGludCBjcnlwdGRfaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqcGFyZW50LAorCQkJCSAgIGNvbnN0IHU4ICprZXksIHVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fYWhhc2hfY3R4KHBhcmVudCk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCWludCBlcnI7CisKKwljcnlwdG9faGFzaF9jbGVhcl9mbGFncyhjaGlsZCwgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJY3J5cHRvX2hhc2hfc2V0X2ZsYWdzKGNoaWxkLCBjcnlwdG9fYWhhc2hfZ2V0X2ZsYWdzKHBhcmVudCkgJgorCQkJCQkgIENSWVBUT19URk1fUkVRX01BU0spOworCWVyciA9IGNyeXB0b19oYXNoX3NldGtleShjaGlsZCwga2V5LCBrZXlsZW4pOworCWNyeXB0b19haGFzaF9zZXRfZmxhZ3MocGFyZW50LCBjcnlwdG9faGFzaF9nZXRfZmxhZ3MoY2hpbGQpICYKKwkJCQkJICAgIENSWVBUT19URk1fUkVTX01BU0spOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJCWNyeXB0b19jb21wbGV0aW9uX3QgY29tcGxldGUpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0gPSBjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSk7CisJc3RydWN0IGNyeXB0ZF9zdGF0ZSAqc3RhdGUgPQorCQljcnlwdGRfZ2V0X3N0YXRlKGNyeXB0b19haGFzaF90Zm0odGZtKSk7CisJaW50IGVycjsKKworCXJjdHgtPmNvbXBsZXRlID0gcmVxLT5iYXNlLmNvbXBsZXRlOworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IGNvbXBsZXRlOworCisJc3Bpbl9sb2NrX2JoKCZzdGF0ZS0+bG9jayk7CisJZXJyID0gYWhhc2hfZW5xdWV1ZV9yZXF1ZXN0KCZzdGF0ZS0+cXVldWUsIHJlcSk7CisJc3Bpbl91bmxvY2tfYmgoJnN0YXRlLT5sb2NrKTsKKworCXdha2VfdXBfcHJvY2VzcyhzdGF0ZS0+dGFzayk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfaW5pdChzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcV9hc3luYywgaW50IGVycikKK3sKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4ICpjdHggICA9IGNyeXB0b190Zm1fY3R4KHJlcV9hc3luYy0+dGZtKTsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggICAgICpjaGlsZCA9IGN0eC0+Y2hpbGQ7CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgICAgKnJlcSA9IGFoYXNoX3JlcXVlc3RfY2FzdChyZXFfYXN5bmMpOworCXN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCAqcmN0eDsKKwlzdHJ1Y3QgaGFzaF9kZXNjIGRlc2M7CisKKwlyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKworCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkKKwkJZ290byBvdXQ7CisKKwlkZXNjLnRmbSA9IGNoaWxkOworCWRlc2MuZmxhZ3MgPSBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVA7CisKKwllcnIgPSBjcnlwdG9faGFzaF9jcnQoY2hpbGQpLT5pbml0KCZkZXNjKTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfaW5pdF9lbnF1ZXVlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGNyeXB0ZF9oYXNoX2VucXVldWUocmVxLCBjcnlwdGRfaGFzaF9pbml0KTsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfdXBkYXRlKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxX2FzeW5jLCBpbnQgZXJyKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCAgID0gY3J5cHRvX3RmbV9jdHgocmVxX2FzeW5jLT50Zm0pOworCXN0cnVjdCBjcnlwdG9faGFzaCAgICAgKmNoaWxkID0gY3R4LT5jaGlsZDsKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAgICAqcmVxID0gYWhhc2hfcmVxdWVzdF9jYXN0KHJlcV9hc3luYyk7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4OworCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKworCXJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEpOworCisJaWYgKHVubGlrZWx5KGVyciA9PSAtRUlOUFJPR1JFU1MpKQorCQlnb3RvIG91dDsKKworCWRlc2MudGZtID0gY2hpbGQ7CisJZGVzYy5mbGFncyA9IENSWVBUT19URk1fUkVRX01BWV9TTEVFUDsKKworCWVyciA9IGNyeXB0b19oYXNoX2NydChjaGlsZCktPnVwZGF0ZSgmZGVzYywKKwkJCQkJCXJlcS0+c3JjLAorCQkJCQkJcmVxLT5uYnl0ZXMpOworCisJcmVxLT5iYXNlLmNvbXBsZXRlID0gcmN0eC0+Y29tcGxldGU7CisKK291dDoKKwlsb2NhbF9iaF9kaXNhYmxlKCk7CisJcmN0eC0+Y29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKKwlsb2NhbF9iaF9lbmFibGUoKTsKK30KKworc3RhdGljIGludCBjcnlwdGRfaGFzaF91cGRhdGVfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjcnlwdGRfaGFzaF9lbnF1ZXVlKHJlcSwgY3J5cHRkX2hhc2hfdXBkYXRlKTsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfZmluYWwoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXFfYXN5bmMsIGludCBlcnIpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fdGZtX2N0eChyZXFfYXN5bmMtPnRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICAgICpyZXEgPSBhaGFzaF9yZXF1ZXN0X2Nhc3QocmVxX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHggKnJjdHg7CisJc3RydWN0IGhhc2hfZGVzYyBkZXNjOworCisJcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OworCisJZGVzYy50Zm0gPSBjaGlsZDsKKwlkZXNjLmZsYWdzID0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOworCisJZXJyID0gY3J5cHRvX2hhc2hfY3J0KGNoaWxkKS0+ZmluYWwoJmRlc2MsIHJlcS0+cmVzdWx0KTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZmluYWxfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjcnlwdGRfaGFzaF9lbnF1ZXVlKHJlcSwgY3J5cHRkX2hhc2hfZmluYWwpOworfQorCitzdGF0aWMgdm9pZCBjcnlwdGRfaGFzaF9kaWdlc3Qoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXFfYXN5bmMsIGludCBlcnIpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fdGZtX2N0eChyZXFfYXN5bmMtPnRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICAgICpyZXEgPSBhaGFzaF9yZXF1ZXN0X2Nhc3QocmVxX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHggKnJjdHg7CisJc3RydWN0IGhhc2hfZGVzYyBkZXNjOworCisJcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OworCisJZGVzYy50Zm0gPSBjaGlsZDsKKwlkZXNjLmZsYWdzID0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOworCisJZXJyID0gY3J5cHRvX2hhc2hfY3J0KGNoaWxkKS0+ZGlnZXN0KCZkZXNjLAorCQkJCQkJcmVxLT5zcmMsCisJCQkJCQlyZXEtPm5ieXRlcywKKwkJCQkJCXJlcS0+cmVzdWx0KTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZGlnZXN0X2VucXVldWUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY3J5cHRkX2hhc2hfZW5xdWV1ZShyZXEsIGNyeXB0ZF9oYXNoX2RpZ2VzdCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICpjcnlwdGRfYWxsb2NfaGFzaCgKKwlzdHJ1Y3QgcnRhdHRyICoqdGIsIHN0cnVjdCBjcnlwdGRfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBjcnlwdG9faW5zdGFuY2UgKmluc3Q7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZzsKKworCWFsZyA9IGNyeXB0b19nZXRfYXR0cl9hbGcodGIsIENSWVBUT19BTEdfVFlQRV9IQVNILAorCQkJCSAgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSyk7CisJaWYgKElTX0VSUihhbGcpKQorCQlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGFsZykpOworCisJaW5zdCA9IGNyeXB0ZF9hbGxvY19pbnN0YW5jZShhbGcsIHN0YXRlKTsKKwlpZiAoSVNfRVJSKGluc3QpKQorCQlnb3RvIG91dF9wdXRfYWxnOworCisJaW5zdC0+YWxnLmNyYV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BSEFTSCB8IENSWVBUT19BTEdfQVNZTkM7CisJaW5zdC0+YWxnLmNyYV90eXBlID0gJmNyeXB0b19haGFzaF90eXBlOworCisJaW5zdC0+YWxnLmNyYV9haGFzaC5kaWdlc3RzaXplID0gYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplOworCWluc3QtPmFsZy5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4KTsKKworCWluc3QtPmFsZy5jcmFfaW5pdCA9IGNyeXB0ZF9oYXNoX2luaXRfdGZtOworCWluc3QtPmFsZy5jcmFfZXhpdCA9IGNyeXB0ZF9oYXNoX2V4aXRfdGZtOworCisJaW5zdC0+YWxnLmNyYV9haGFzaC5pbml0ICAgPSBjcnlwdGRfaGFzaF9pbml0X2VucXVldWU7CisJaW5zdC0+YWxnLmNyYV9haGFzaC51cGRhdGUgPSBjcnlwdGRfaGFzaF91cGRhdGVfZW5xdWV1ZTsKKwlpbnN0LT5hbGcuY3JhX2FoYXNoLmZpbmFsICA9IGNyeXB0ZF9oYXNoX2ZpbmFsX2VucXVldWU7CisJaW5zdC0+YWxnLmNyYV9haGFzaC5zZXRrZXkgPSBjcnlwdGRfaGFzaF9zZXRrZXk7CisJaW5zdC0+YWxnLmNyYV9haGFzaC5kaWdlc3QgPSBjcnlwdGRfaGFzaF9kaWdlc3RfZW5xdWV1ZTsKKworb3V0X3B1dF9hbGc6CisJY3J5cHRvX21vZF9wdXQoYWxnKTsKKwlyZXR1cm4gaW5zdDsKK30KKwogc3RhdGljIHN0cnVjdCBjcnlwdGRfc3RhdGUgc3RhdGU7CiAKIHN0YXRpYyBzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICpjcnlwdGRfYWxsb2Moc3RydWN0IHJ0YXR0ciAqKnRiKQpAQCAtMjc0LDYgKzUxNSw4IEBACiAJc3dpdGNoIChhbGd0LT50eXBlICYgYWxndC0+bWFzayAmIENSWVBUT19BTEdfVFlQRV9NQVNLKSB7CiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfQkxLQ0lQSEVSOgogCQlyZXR1cm4gY3J5cHRkX2FsbG9jX2Jsa2NpcGhlcih0YiwgJnN0YXRlKTsKKwljYXNlIENSWVBUT19BTEdfVFlQRV9ESUdFU1Q6CisJCXJldHVybiBjcnlwdGRfYWxsb2NfaGFzaCh0YiwgJnN0YXRlKTsKIAl9CiAKIAlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9kaWdlc3QuYyBiL2NyeXB0by9kaWdlc3QuYwppbmRleCBiNTI2Y2MzLi5hYzA5MTk0IDEwMDY0NAotLS0gYS9jcnlwdG8vZGlnZXN0LmMKKysrIGIvY3J5cHRvL2RpZ2VzdC5jCkBAIC0xMiw2ICsxMiw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxjcnlwdG8vaW50ZXJuYWwvaGFzaC5oPgogI2luY2x1ZGUgPGNyeXB0by9zY2F0dGVyd2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KQEAgLTE0MSw3ICsxNDIsNyBAQAogCXN0cnVjdCBoYXNoX3RmbSAqb3BzID0gJnRmbS0+Y3J0X2hhc2g7CiAJc3RydWN0IGRpZ2VzdF9hbGcgKmRhbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9kaWdlc3Q7CiAKLQlpZiAoZGFsZy0+ZGlhX2RpZ2VzdHNpemUgPiBjcnlwdG9fdGZtX2FsZ19ibG9ja3NpemUodGZtKSkKKwlpZiAoZGFsZy0+ZGlhX2RpZ2VzdHNpemUgPiBQQUdFX1NJWkUgLyA4KQogCQlyZXR1cm4gLUVJTlZBTDsKIAkKIAlvcHMtPmluaXQJPSBpbml0OwpAQCAtMTU3LDMgKzE1OCw4MyBAQAogdm9pZCBjcnlwdG9fZXhpdF9kaWdlc3Rfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CiB9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX25vc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbV9hc3luYywgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbV9hc3luYywgQ1JZUFRPX1RGTV9SRVNfTUFTSyk7CisJcmV0dXJuIC1FTk9TWVM7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm1fYXN5bmMsIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICAgICp0Zm0gICAgICAgID0gY3J5cHRvX2FoYXNoX3RmbSh0Zm1fYXN5bmMpOworCXN0cnVjdCBkaWdlc3RfYWxnICAgICpkYWxnICAgICAgID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfZGlnZXN0OworCisJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbV9hc3luYywgQ1JZUFRPX1RGTV9SRVNfTUFTSyk7CisJcmV0dXJuIGRhbGctPmRpYV9zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtICA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGRpZ2VzdF9hbGcgKmRhbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9kaWdlc3Q7CisKKwlkYWxnLT5kaWFfaW5pdCh0Zm0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY191cGRhdGUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtICAgPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwl1cGRhdGUoJmRlc2MsIHJlcS0+c3JjLCByZXEtPm5ieXRlcyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2ZpbmFsKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSAgPSByZXEtPmJhc2UudGZtOworCXN0cnVjdCBoYXNoX2Rlc2MgIGRlc2MgPSB7CisJCS50Zm0gICA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pLAorCQkuZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MsCisJfTsKKworCWZpbmFsKCZkZXNjLCByZXEtPnJlc3VsdCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm0gID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtICAgPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwlyZXR1cm4gZGlnZXN0KCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMsIHJlcS0+cmVzdWx0KTsKK30KKworaW50IGNyeXB0b19pbml0X2RpZ2VzdF9vcHNfYXN5bmMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICAqY3J0ICA9ICZ0Zm0tPmNydF9haGFzaDsKKwlzdHJ1Y3QgZGlnZXN0X2FsZyAqZGFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2RpZ2VzdDsKKworCWlmIChkYWxnLT5kaWFfZGlnZXN0c2l6ZSA+IGNyeXB0b190Zm1fYWxnX2Jsb2Nrc2l6ZSh0Zm0pKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWNydC0+aW5pdCAgICAgICA9IGRpZ2VzdF9hc3luY19pbml0OworCWNydC0+dXBkYXRlICAgICA9IGRpZ2VzdF9hc3luY191cGRhdGU7CisJY3J0LT5maW5hbCAgICAgID0gZGlnZXN0X2FzeW5jX2ZpbmFsOworCWNydC0+ZGlnZXN0ICAgICA9IGRpZ2VzdF9hc3luY19kaWdlc3Q7CisJY3J0LT5zZXRrZXkgICAgID0gZGFsZy0+ZGlhX3NldGtleSA/IGRpZ2VzdF9hc3luY19zZXRrZXkgOgorCQkJCQkJZGlnZXN0X2FzeW5jX25vc2V0a2V5OworCWNydC0+ZGlnZXN0c2l6ZSA9IGRhbGctPmRpYV9kaWdlc3RzaXplOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9jcnlwdG8vaGFzaC5jIGIvY3J5cHRvL2hhc2guYwppbmRleCA3ZGNmZjY3Li5jYjg2YjE5IDEwMDY0NAotLS0gYS9jcnlwdG8vaGFzaC5jCisrKyBiL2NyeXB0by9oYXNoLmMKQEAgLTksNiArOSw3IEBACiAgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwogCisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNTksMjQgKzYwLDEwNyBAQAogCXJldHVybiBhbGctPnNldGtleShjcnQsIGtleSwga2V5bGVuKTsKIH0KIAotc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwgdTMyIG1hc2spCitzdGF0aWMgaW50IGhhc2hfYXN5bmNfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbV9hc3luYywgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGNyeXB0b190Zm0gICp0Zm0gICAgICA9IGNyeXB0b19haGFzaF90Zm0odGZtX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggKnRmbV9oYXNoID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSk7CisJc3RydWN0IGhhc2hfYWxnICAgICphbGcgICAgICA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwlyZXR1cm4gYWxnLT5zZXRrZXkodGZtX2hhc2gsIGtleSwga2V5bGVuKTsKK30KKworc3RhdGljIGludCBoYXNoX2FzeW5jX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+aW5pdCgmZGVzYyk7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF9hc3luY191cGRhdGUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+dXBkYXRlKCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMpOworfQorCitzdGF0aWMgaW50IGhhc2hfYXN5bmNfZmluYWwoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+ZmluYWwoJmRlc2MsIHJlcS0+cmVzdWx0KTsKK30KKworc3RhdGljIGludCBoYXNoX2FzeW5jX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm0gPSByZXEtPmJhc2UudGZtOworCXN0cnVjdCBoYXNoX2FsZyAgICphbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOworCXN0cnVjdCBoYXNoX2Rlc2MgIGRlc2MgPSB7CisJCS50Zm0gPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwlyZXR1cm4gYWxnLT5kaWdlc3QoJmRlc2MsIHJlcS0+c3JjLCByZXEtPm5ieXRlcywgcmVxLT5yZXN1bHQpOworfQorCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2hhc2hfb3BzX2FzeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGFoYXNoX3RmbSAqY3J0ID0gJnRmbS0+Y3J0X2FoYXNoOworCXN0cnVjdCBoYXNoX2FsZyAgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwljcnQtPmluaXQgICAgICAgPSBoYXNoX2FzeW5jX2luaXQ7CisJY3J0LT51cGRhdGUgICAgID0gaGFzaF9hc3luY191cGRhdGU7CisJY3J0LT5maW5hbCAgICAgID0gaGFzaF9hc3luY19maW5hbDsKKwljcnQtPmRpZ2VzdCAgICAgPSBoYXNoX2FzeW5jX2RpZ2VzdDsKKwljcnQtPnNldGtleSAgICAgPSBoYXNoX2FzeW5jX3NldGtleTsKKwljcnQtPmRpZ2VzdHNpemUgPSBhbGctPmRpZ2VzdHNpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wc19zeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CiAJc3RydWN0IGhhc2hfdGZtICpjcnQgPSAmdGZtLT5jcnRfaGFzaDsKIAlzdHJ1Y3QgaGFzaF9hbGcgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CiAKLQlpZiAoYWxnLT5kaWdlc3RzaXplID4gY3J5cHRvX3RmbV9hbGdfYmxvY2tzaXplKHRmbSkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JY3J0LT5pbml0ID0gYWxnLT5pbml0OwotCWNydC0+dXBkYXRlID0gYWxnLT51cGRhdGU7Ci0JY3J0LT5maW5hbCA9IGFsZy0+ZmluYWw7Ci0JY3J0LT5kaWdlc3QgPSBhbGctPmRpZ2VzdDsKLQljcnQtPnNldGtleSA9IGhhc2hfc2V0a2V5OworCWNydC0+aW5pdCAgICAgICA9IGFsZy0+aW5pdDsKKwljcnQtPnVwZGF0ZSAgICAgPSBhbGctPnVwZGF0ZTsKKwljcnQtPmZpbmFsICAgICAgPSBhbGctPmZpbmFsOworCWNydC0+ZGlnZXN0ICAgICA9IGFsZy0+ZGlnZXN0OworCWNydC0+c2V0a2V5ICAgICA9IGhhc2hfc2V0a2V5OwogCWNydC0+ZGlnZXN0c2l6ZSA9IGFsZy0+ZGlnZXN0c2l6ZTsKIAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2hhc2hfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHUzMiB0eXBlLCB1MzIgbWFzaykKK3sKKwlzdHJ1Y3QgaGFzaF9hbGcgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwlpZiAoYWxnLT5kaWdlc3RzaXplID4gUEFHRV9TSVpFIC8gOCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoKG1hc2sgJiBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLKSAhPSBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLKQorCQlyZXR1cm4gY3J5cHRvX2luaXRfaGFzaF9vcHNfYXN5bmModGZtKTsKKwllbHNlCisJCXJldHVybiBjcnlwdG9faW5pdF9oYXNoX29wc19zeW5jKHRmbSk7Cit9CisKIHN0YXRpYyB2b2lkIGNyeXB0b19oYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQogCV9fYXR0cmlidXRlX18gKCh1bnVzZWQpKTsKIHN0YXRpYyB2b2lkIGNyeXB0b19oYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2htYWMuYyBiL2NyeXB0by9obWFjLmMKaW5kZXggMTRjNjM1MS4uN2ZmMmQ2YSAxMDA2NDQKLS0tIGEvY3J5cHRvL2htYWMuYworKysgYi9jcnlwdG8vaG1hYy5jCkBAIC0yMjYsNiArMjI2LDcgQEAKIAlzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICppbnN0OwogCXN0cnVjdCBjcnlwdG9fYWxnICphbGc7CiAJaW50IGVycjsKKwlpbnQgZHM7CiAKIAllcnIgPSBjcnlwdG9fY2hlY2tfYXR0cl90eXBlKHRiLCBDUllQVE9fQUxHX1RZUEVfSEFTSCk7CiAJaWYgKGVycikKQEAgLTIzNiw2ICsyMzcsMTMgQEAKIAlpZiAoSVNfRVJSKGFsZykpCiAJCXJldHVybiBFUlJfQ0FTVChhbGcpOwogCisJaW5zdCA9IEVSUl9QVFIoLUVJTlZBTCk7CisJZHMgPSAoYWxnLT5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX1RZUEVfTUFTSykgPT0KKwkgICAgIENSWVBUT19BTEdfVFlQRV9IQVNIID8gYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplIDoKKwkJCQkgICAgYWxnLT5jcmFfZGlnZXN0LmRpYV9kaWdlc3RzaXplOworCWlmIChkcyA+IGFsZy0+Y3JhX2Jsb2Nrc2l6ZSkKKwkJZ290byBvdXRfcHV0X2FsZzsKKwogCWluc3QgPSBjcnlwdG9fYWxsb2NfaW5zdGFuY2UoImhtYWMiLCBhbGcpOwogCWlmIChJU19FUlIoaW5zdCkpCiAJCWdvdG8gb3V0X3B1dF9hbGc7CkBAIC0yNDYsMTQgKzI1NCwxMCBAQAogCWluc3QtPmFsZy5jcmFfYWxpZ25tYXNrID0gYWxnLT5jcmFfYWxpZ25tYXNrOwogCWluc3QtPmFsZy5jcmFfdHlwZSA9ICZjcnlwdG9faGFzaF90eXBlOwogCi0JaW5zdC0+YWxnLmNyYV9oYXNoLmRpZ2VzdHNpemUgPQotCQkoYWxnLT5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX1RZUEVfTUFTSykgPT0KLQkJQ1JZUFRPX0FMR19UWVBFX0hBU0ggPyBhbGctPmNyYV9oYXNoLmRpZ2VzdHNpemUgOgotCQkJCSAgICAgICBhbGctPmNyYV9kaWdlc3QuZGlhX2RpZ2VzdHNpemU7CisJaW5zdC0+YWxnLmNyYV9oYXNoLmRpZ2VzdHNpemUgPSBkczsKIAogCWluc3QtPmFsZy5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaG1hY19jdHgpICsKLQkJCQlBTElHTihpbnN0LT5hbGcuY3JhX2Jsb2Nrc2l6ZSAqIDIgKwotCQkJCSAgICAgIGluc3QtPmFsZy5jcmFfaGFzaC5kaWdlc3RzaXplLAorCQkJCUFMSUdOKGluc3QtPmFsZy5jcmFfYmxvY2tzaXplICogMiArIGRzLAogCQkJCSAgICAgIHNpemVvZih2b2lkICopKTsKIAogCWluc3QtPmFsZy5jcmFfaW5pdCA9IGhtYWNfaW5pdF90Zm07CmRpZmYgLS1naXQgYS9jcnlwdG8vaW50ZXJuYWwuaCBiL2NyeXB0by9pbnRlcm5hbC5oCmluZGV4IDMyZjRjMjEuLjY4M2ZjYjIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9pbnRlcm5hbC5oCisrKyBiL2NyeXB0by9pbnRlcm5hbC5oCkBAIC04Niw2ICs4Niw3IEBACiBzdHJ1Y3QgY3J5cHRvX2FsZyAqY3J5cHRvX2FsZ19tb2RfbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIHUzMiB0eXBlLCB1MzIgbWFzayk7CiAKIGludCBjcnlwdG9faW5pdF9kaWdlc3Rfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pOworaW50IGNyeXB0b19pbml0X2RpZ2VzdF9vcHNfYXN5bmMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSk7CiBpbnQgY3J5cHRvX2luaXRfY2lwaGVyX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKTsKIGludCBjcnlwdG9faW5pdF9jb21wcmVzc19vcHMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSk7CiAKZGlmZiAtLWdpdCBhL2NyeXB0by9wcm5nLmMgYi9jcnlwdG8vcHJuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZTRmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcHJuZy5jCkBAIC0wLDAgKzEsNDEwIEBACisvKgorICogUFJORzogUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yCisgKiAgICAgICBCYXNlZCBvbiBOSVNUIFJlY29tbWVuZGVkIFBSTkcgRnJvbSBBTlNJIFg5LjMxIEFwcGVuZGl4IEEuMi40IHVzaW5nCisgKiAgICAgICBBRVMgMTI4IGNpcGhlciBpbiBSRkMzNjg2IGN0ciBtb2RlCisgKgorICogIChDKSBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1leC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlICJwcm5nLmgiCisKKyNkZWZpbmUgVEVTVF9QUk5HX09OX1NUQVJUIDAKKworI2RlZmluZSBERUZBVUxUX1BSTkdfS0VZICIwMTIzNDU2Nzg5YWJjZGVmMTAxMSIKKyNkZWZpbmUgREVGQVVMVF9QUk5HX0tTWiAyMAorI2RlZmluZSBERUZBVUxUX1BSTkdfSVYgImRlZmF1bHR2IgorI2RlZmluZSBERUZBVUxUX1BSTkdfSVZTWiA4CisjZGVmaW5lIERFRkFVTFRfQkxLX1NaIDE2CisjZGVmaW5lIERFRkFVTFRfVl9TRUVEICJ6YXlieGN3ZHZldWZ0Z3NoIgorCisvKgorICogRmxhZ3MgZm9yIHRoZSBwcm5nX2NvbnRleHQgZmxhZ3MgZmllbGQKKyAqLworCisjZGVmaW5lIFBSTkdfRklYRURfU0laRSAweDEKKyNkZWZpbmUgUFJOR19ORUVEX1JFU0VUIDB4MgorCisvKgorICogTm90ZTogRFQgaXMgb3VyIGNvdW50ZXIgdmFsdWUKKyAqIAkgSSBpcyBvdXIgaW50ZXJtZWRpYXRlIHZhbHVlCisgKgkgViBpcyBvdXIgc2VlZCB2ZWN0b3IKKyAqIFNlZSBodHRwOi8vY3NyYy5uaXN0Lmdvdi9ncm91cHMvU1RNL2NhdnAvZG9jdW1lbnRzL3JuZy85MzFybmdleHQucGRmCisgKiBmb3IgaW1wbGVtZW50YXRpb24gZGV0YWlscworICovCisKKworc3RydWN0IHBybmdfY29udGV4dCB7CisJY2hhciAqcHJuZ19rZXk7CisJY2hhciAqcHJuZ19pdjsKKwlzcGlubG9ja190IHBybmdfbG9jazsKKwl1bnNpZ25lZCBjaGFyIHJhbmRfZGF0YVtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBsYXN0X3JhbmRfZGF0YVtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBEVFtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBJW0RFRkFVTFRfQkxLX1NaXTsKKwl1bnNpZ25lZCBjaGFyIFZbREVGQVVMVF9CTEtfU1pdOworCXUzMiByYW5kX2RhdGFfdmFsaWQ7CisJc3RydWN0IGNyeXB0b19ibGtjaXBoZXIgKnRmbTsKKwl1MzIgZmxhZ3M7Cit9OworCitzdGF0aWMgaW50IGRiZzsKKworc3RhdGljIHZvaWQgaGV4ZHVtcChjaGFyICpub3RlLCB1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBsZW4pCit7CisJaWYgKGRiZykgeworCQlwcmludGsoS0VSTl9DUklUICIlcyIsIG5vdGUpOworCQlwcmludF9oZXhfZHVtcChLRVJOX0NPTlQsICIiLCBEVU1QX1BSRUZJWF9PRkZTRVQsCisJCQkJMTYsIDEsCisJCQkJYnVmLCBsZW4sIGZhbHNlKTsKKwl9Cit9CisKKyNkZWZpbmUgZGJncHJpbnQoZm9ybWF0LCBhcmdzLi4uKSBkbyB7aWYoZGJnKSBwcmludGsoZm9ybWF0LCAjI2FyZ3MpO30gd2hpbGUoMCkKKworc3RhdGljIHZvaWQgeG9yX3ZlY3RvcnModW5zaWduZWQgY2hhciAqaW4xLCB1bnNpZ25lZCBjaGFyICppbjIsCisJCSAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKwlpbnQgaTsKKworCWZvciAoaT0wO2k8c2l6ZTtpKyspCisJCW91dFtpXSA9IGluMVtpXSBeIGluMltpXTsKKworfQorLyoKKyAqIFJldHVybnMgREVGQVVMVF9CTEtfU1ogYnl0ZXMgb2YgcmFuZG9tIGRhdGEgcGVyIGNhbGwKKyAqIHJldHVybnMgMCBpZiBnZW5lcmF0aW9uIHN1Y2NlZGVkLCA8MCBpZiBzb21ldGhpbmcgd2VudCB3cm9uZworICovCitzdGF0aWMgaW50IF9nZXRfbW9yZV9wcm5nX2J5dGVzKHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgZGVzYzsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dfaW4sIHNnX291dDsKKwlpbnQgcmV0OworCXVuc2lnbmVkIGNoYXIgdG1wW0RFRkFVTFRfQkxLX1NaXTsKKworCWRlc2MudGZtID0gY3R4LT50Zm07CisJZGVzYy5mbGFncyA9IDA7CisKKworCWRiZ3ByaW50KEtFUk5fQ1JJVCAiQ2FsbGluZyBfZ2V0X21vcmVfcHJuZ19ieXRlcyBmb3IgY29udGV4dCAlcFxuIixjdHgpOworCisJaGV4ZHVtcCgiSW5wdXQgRFQ6ICIsIGN0eC0+RFQsIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJJbnB1dCBJOiAiLCBjdHgtPkksIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJJbnB1dCBWOiAiLCBjdHgtPlYsIERFRkFVTFRfQkxLX1NaKTsKKworCS8qCisJICogVGhpcyBhbGdvcml0aG0gaXMgYSAzIHN0YWdlIHN0YXRlIG1hY2hpbmUKKwkgKi8KKwlmb3IgKGk9MDtpPDM7aSsrKSB7CisKKwkJZGVzYy50Zm0gPSBjdHgtPnRmbTsKKwkJZGVzYy5mbGFncyA9IDA7CisJCXN3aXRjaCAoaSkgeworCQkJY2FzZSAwOgorCQkJCS8qCisJCQkJICogU3RhcnQgYnkgZW5jcnlwdGluZyB0aGUgY291bnRlciB2YWx1ZQorCQkJCSAqIFRoaXMgZ2l2ZXMgdXMgYW4gaW50ZXJtZWRpYXRlIHZhbHVlIEkKKwkJCQkgKi8KKwkJCQltZW1jcHkodG1wLCBjdHgtPkRULCBERUZBVUxUX0JMS19TWik7CisJCQkJc2dfaW5pdF9vbmUoJnNnX291dCwgJmN0eC0+SVswXSwgREVGQVVMVF9CTEtfU1opOworCQkJCWhleGR1bXAoInRtcCBzdGFnZSAwOiAiLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMToKKworCQkJCS8qCisJCQkJICogTmV4dCB4b3IgSSB3aXRoIG91ciBzZWNyZXQgdmVjdG9yIFYKKwkJCQkgKiBlbmNyeXB0IHRoYXQgcmVzdWx0IHRvIG9idGFpbiBvdXIKKwkJCQkgKiBwc2V1ZG8gcmFuZG9tIGRhdGEgd2hpY2ggd2Ugb3V0cHV0CisJCQkJICovCisJCQkJeG9yX3ZlY3RvcnMoY3R4LT5JLCBjdHgtPlYsIHRtcCwgREVGQVVMVF9CTEtfU1opOworCQkJCXNnX2luaXRfb25lKCZzZ19vdXQsICZjdHgtPnJhbmRfZGF0YVswXSwgREVGQVVMVF9CTEtfU1opOworCQkJCWhleGR1bXAoInRtcCBzdGFnZSAxOiAiLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMjoKKwkJCQkvKgorCQkJCSAqIEZpcnN0IGNoZWNrIHRoYXQgd2UgZGlkbid0IHByb2R1Y2UgdGhlIHNhbWUgcmFuZG9tIGRhdGEKKwkJCQkgKiB0aGF0IHdlIGRpZCBsYXN0IHRpbWUgYXJvdW5kIHRocm91Z2ggdGhpcworCQkJCSAqLworCQkJCWlmICghbWVtY21wKGN0eC0+cmFuZF9kYXRhLCBjdHgtPmxhc3RfcmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWikpIHsKKwkJCQkJcHJpbnRrKEtFUk5fRVJSICJjdHggJXAgRmFpbGVkIHJlcGV0aXRpb24gY2hlY2shXG4iLAorCQkJCQkJY3R4KTsKKwkJCQkJY3R4LT5mbGFncyB8PSBQUk5HX05FRURfUkVTRVQ7CisJCQkJCXJldHVybiAtMTsKKwkJCQl9CisJCQkJbWVtY3B5KGN0eC0+bGFzdF9yYW5kX2RhdGEsIGN0eC0+cmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWik7CisKKwkJCQkvKgorCQkJCSAqIExhc3RseSB4b3IgdGhlIHJhbmRvbSBkYXRhIHdpdGggSQorCQkJCSAqIGFuZCBlbmNyeXB0IHRoYXQgdG8gb2J0YWluIGEgbmV3IHNlY3JldCB2ZWN0b3IgVgorCQkJCSAqLworCQkJCXhvcl92ZWN0b3JzKGN0eC0+cmFuZF9kYXRhLCBjdHgtPkksIHRtcCwgREVGQVVMVF9CTEtfU1opOworCQkJCXNnX2luaXRfb25lKCZzZ19vdXQsICZjdHgtPlZbMF0sIERFRkFVTFRfQkxLX1NaKTsKKwkJCQloZXhkdW1wKCJ0bXAgc3RhZ2UgMjogIiwgdG1wLCBERUZBVUxUX0JMS19TWik7CisJCQkJYnJlYWs7CisJCX0KKworCQkvKiBJbml0aWFsaXplIG91ciBpbnB1dCBidWZmZXIgKi8KKwkJc2dfaW5pdF9vbmUoJnNnX2luLCAmdG1wWzBdLCBERUZBVUxUX0JMS19TWik7CisKKwkJLyogZG8gdGhlIGVuY3J5cHRpb24gKi8KKwkJcmV0ID0gY3J5cHRvX2Jsa2NpcGhlcl9lbmNyeXB0KCZkZXNjLCAmc2dfb3V0LCAmc2dfaW4sIERFRkFVTFRfQkxLX1NaKTsKKworCQkvKiBBbmQgY2hlY2sgdGhlIHJlc3VsdCAqLworCQlpZiAocmV0KSB7CisJCQlkYmdwcmludChLRVJOX0NSSVQgIkVuY3J5cHRpb24gb2YgbmV3IGJsb2NrIGZhaWxlZCBmb3IgY29udGV4dCAlcFxuIixjdHgpOworCQkJY3R4LT5yYW5kX2RhdGFfdmFsaWQgPSBERUZBVUxUX0JMS19TWjsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJfQorCisJLyoKKwkgKiBOb3cgdXBkYXRlIG91ciBEVCB2YWx1ZQorCSAqLworCWZvciAoaT1ERUZBVUxUX0JMS19TWi0xO2k+MDtpLS0pIHsKKwkJY3R4LT5EVFtpXSA9IGN0eC0+RFRbaS0xXTsKKwl9CisJY3R4LT5EVFswXSArPSAxOworCisJZGJncHJpbnQoIlJldHVybmluZyBuZXcgYmxvY2sgZm9yIGNvbnRleHQgJXBcbiIsY3R4KTsKKwljdHgtPnJhbmRfZGF0YV92YWxpZCA9IDA7CisKKwloZXhkdW1wKCJPdXRwdXQgRFQ6ICIsIGN0eC0+RFQsIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJPdXRwdXQgSTogIiwgY3R4LT5JLCBERUZBVUxUX0JMS19TWik7CisJaGV4ZHVtcCgiT3V0cHV0IFY6ICIsIGN0eC0+ViwgREVGQVVMVF9CTEtfU1opOworCWhleGR1bXAoIk5ldyBSYW5kb20gRGF0YTogIiwgY3R4LT5yYW5kX2RhdGEsIERFRkFVTFRfQkxLX1NaKTsKKworCXJldHVybiAwOworfQorCisvKiBPdXIgZXhwb3J0ZWQgZnVuY3Rpb25zICovCitpbnQgZ2V0X3BybmdfYnl0ZXMoY2hhciAqYnVmLCBpbnQgbmJ5dGVzLCBzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHgpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBjaGFyICpwdHIgPSBidWY7CisJdW5zaWduZWQgaW50IGJ5dGVfY291bnQgPSAodW5zaWduZWQgaW50KW5ieXRlczsKKwlpbnQgZXJyOworCisKKwlpZiAobmJ5dGVzIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3R4LT5wcm5nX2xvY2ssIGZsYWdzKTsKKworCWVyciA9IC1FRkFVTFQ7CisJaWYgKGN0eC0+ZmxhZ3MgJiBQUk5HX05FRURfUkVTRVQpCisJCWdvdG8gZG9uZTsKKworCS8qCisJICogSWYgdGhlIEZJWEVEX1NJWkUgZmxhZyBpcyBvbiwgb25seSByZXR1cm4gd2hvbGUgYmxvY2tzIG9mCisJICogcHNldWRvIHJhbmRvbSBkYXRhCisJICovCisJZXJyID0gLUVJTlZBTDsKKwlpZiAoY3R4LT5mbGFncyAmIFBSTkdfRklYRURfU0laRSkgeworCQlpZiAobmJ5dGVzIDwgREVGQVVMVF9CTEtfU1opCisJCQlnb3RvIGRvbmU7CisJCWJ5dGVfY291bnQgPSBERUZBVUxUX0JMS19TWjsKKwl9CisKKwllcnIgPSBieXRlX2NvdW50OworCisJZGJncHJpbnQoS0VSTl9DUklUICJnZXR0aW5nICVkIHJhbmRvbSBieXRlcyBmb3IgY29udGV4dCAlcFxuIixieXRlX2NvdW50LCBjdHgpOworCisKK3JlbWFpbmRlcjoKKwlpZiAoY3R4LT5yYW5kX2RhdGFfdmFsaWQgPT0gREVGQVVMVF9CTEtfU1opIHsKKwkJaWYgKF9nZXRfbW9yZV9wcm5nX2J5dGVzKGN0eCkgPCAwKSB7CisJCQltZW1zZXQoYnVmLCAwLCBuYnl0ZXMpOworCQkJZXJyID0gLUVGQVVMVDsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCX0KKworCS8qCisJICogQ29weSB1cCB0byB0aGUgbmV4dCB3aG9sZSBibG9jayBzaXplCisJICovCisJaWYgKGJ5dGVfY291bnQgPCBERUZBVUxUX0JMS19TWikgeworCQlmb3IgKDtjdHgtPnJhbmRfZGF0YV92YWxpZCA8IERFRkFVTFRfQkxLX1NaOyBjdHgtPnJhbmRfZGF0YV92YWxpZCsrKSB7CisJCQkqcHRyID0gY3R4LT5yYW5kX2RhdGFbY3R4LT5yYW5kX2RhdGFfdmFsaWRdOworCQkJcHRyKys7CisJCQlieXRlX2NvdW50LS07CisJCQlpZiAoYnl0ZV9jb3VudCA9PSAwKQorCQkJCWdvdG8gZG9uZTsKKwkJfQorCX0KKworCS8qCisJICogTm93IGNvcHkgd2hvbGUgYmxvY2tzCisJICovCisJZm9yKDtieXRlX2NvdW50ID49IERFRkFVTFRfQkxLX1NaOyBieXRlX2NvdW50IC09IERFRkFVTFRfQkxLX1NaKSB7CisJCWlmIChfZ2V0X21vcmVfcHJuZ19ieXRlcyhjdHgpIDwgMCkgeworCQkJbWVtc2V0KGJ1ZiwgMCwgbmJ5dGVzKTsKKwkJCWVyciA9IC0xOworCQkJZ290byBkb25lOworCQl9CisJCW1lbWNweShwdHIsIGN0eC0+cmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWik7CisJCWN0eC0+cmFuZF9kYXRhX3ZhbGlkICs9IERFRkFVTFRfQkxLX1NaOworCQlwdHIgKz0gREVGQVVMVF9CTEtfU1o7CisJfQorCisJLyoKKwkgKiBOb3cgY29weSBhbnkgZXh0cmEgcGFydGlhbCBkYXRhCisJICovCisJaWYgKGJ5dGVfY291bnQpCisJCWdvdG8gcmVtYWluZGVyOworCitkb25lOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0eC0+cHJuZ19sb2NrLCBmbGFncyk7CisJZGJncHJpbnQoS0VSTl9DUklUICJyZXR1cm5pbmcgJWQgZnJvbSBnZXRfcHJuZ19ieXRlcyBpbiBjb250ZXh0ICVwXG4iLGVyciwgY3R4KTsKKwlyZXR1cm4gZXJyOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3BybmdfYnl0ZXMpOworCitzdHJ1Y3QgcHJuZ19jb250ZXh0ICphbGxvY19wcm5nX2NvbnRleHQodm9pZCkKK3sKKwlzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHg9a3phbGxvYyhzaXplb2Yoc3RydWN0IHBybmdfY29udGV4dCksIEdGUF9LRVJORUwpOworCisJc3Bpbl9sb2NrX2luaXQoJmN0eC0+cHJuZ19sb2NrKTsKKworCWlmIChyZXNldF9wcm5nX2NvbnRleHQoY3R4LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSkgeworCQlrZnJlZShjdHgpOworCQljdHggPSBOVUxMOworCX0KKworCWRiZ3ByaW50KEtFUk5fQ1JJVCAicmV0dXJuaW5nIGNvbnRleHQgJXBcbiIsY3R4KTsKKwlyZXR1cm4gY3R4OworfQorCitFWFBPUlRfU1lNQk9MX0dQTChhbGxvY19wcm5nX2NvbnRleHQpOworCit2b2lkIGZyZWVfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCkKK3sKKwljcnlwdG9fZnJlZV9ibGtjaXBoZXIoY3R4LT50Zm0pOworCWtmcmVlKGN0eCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChmcmVlX3BybmdfY29udGV4dCk7CisKK2ludCByZXNldF9wcm5nX2NvbnRleHQoc3RydWN0IHBybmdfY29udGV4dCAqY3R4LAorCQkgICAgICAgdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBjaGFyICppdiwKKwkJICAgICAgIHVuc2lnbmVkIGNoYXIgKlYsIHVuc2lnbmVkIGNoYXIgKkRUKQoreworCWludCByZXQ7CisJaW50IGl2X2xlbjsKKwlpbnQgcmMgPSAtRUZBVUxUOworCisJc3Bpbl9sb2NrKCZjdHgtPnBybmdfbG9jayk7CisJY3R4LT5mbGFncyB8PSBQUk5HX05FRURfUkVTRVQ7CisKKwlpZiAoa2V5KQorCQltZW1jcHkoY3R4LT5wcm5nX2tleSxrZXksc3RybGVuKGN0eC0+cHJuZ19rZXkpKTsKKwllbHNlCisJCWN0eC0+cHJuZ19rZXkgPSBERUZBVUxUX1BSTkdfS0VZOworCisJaWYgKGl2KQorCQltZW1jcHkoY3R4LT5wcm5nX2l2LGl2LCBzdHJsZW4oY3R4LT5wcm5nX2l2KSk7CisJZWxzZQorCQljdHgtPnBybmdfaXYgPSBERUZBVUxUX1BSTkdfSVY7CisKKwlpZiAoVikKKwkJbWVtY3B5KGN0eC0+VixWLERFRkFVTFRfQkxLX1NaKTsKKwllbHNlCisJCW1lbWNweShjdHgtPlYsREVGQVVMVF9WX1NFRUQsREVGQVVMVF9CTEtfU1opOworCisJaWYgKERUKQorCQltZW1jcHkoY3R4LT5EVCwgRFQsIERFRkFVTFRfQkxLX1NaKTsKKwllbHNlCisJCW1lbXNldChjdHgtPkRULCAwLCBERUZBVUxUX0JMS19TWik7CisKKwltZW1zZXQoY3R4LT5yYW5kX2RhdGEsMCxERUZBVUxUX0JMS19TWik7CisJbWVtc2V0KGN0eC0+bGFzdF9yYW5kX2RhdGEsMCxERUZBVUxUX0JMS19TWik7CisKKwlpZiAoY3R4LT50Zm0pCisJCWNyeXB0b19mcmVlX2Jsa2NpcGhlcihjdHgtPnRmbSk7CisKKwljdHgtPnRmbSA9IGNyeXB0b19hbGxvY19ibGtjaXBoZXIoInJmYzM2ODYoY3RyKGFlcykpIiwwLDApOworCWlmICghY3R4LT50Zm0pIHsKKwkJZGJncHJpbnQoS0VSTl9DUklUICJGYWlsZWQgdG8gYWxsb2MgY3J5cHRvIHRmbSBmb3IgY29udGV4dCAlcFxuIixjdHgtPnRmbSk7CisJCWdvdG8gb3V0OworCX0KKworCWN0eC0+cmFuZF9kYXRhX3ZhbGlkID0gREVGQVVMVF9CTEtfU1o7CisKKwlyZXQgPSBjcnlwdG9fYmxrY2lwaGVyX3NldGtleShjdHgtPnRmbSwgY3R4LT5wcm5nX2tleSwgc3RybGVuKGN0eC0+cHJuZ19rZXkpKTsKKwlpZiAocmV0KSB7CisJCWRiZ3ByaW50KEtFUk5fQ1JJVCAiUFJORzogc2V0a2V5KCkgZmFpbGVkIGZsYWdzPSV4XG4iLAorCQkJY3J5cHRvX2Jsa2NpcGhlcl9nZXRfZmxhZ3MoY3R4LT50Zm0pKTsKKwkJY3J5cHRvX2ZyZWVfYmxrY2lwaGVyKGN0eC0+dGZtKTsKKwkJZ290byBvdXQ7CisJfQorCisJaXZfbGVuID0gY3J5cHRvX2Jsa2NpcGhlcl9pdnNpemUoY3R4LT50Zm0pOworCWlmIChpdl9sZW4pIHsKKwkJY3J5cHRvX2Jsa2NpcGhlcl9zZXRfaXYoY3R4LT50Zm0sIGN0eC0+cHJuZ19pdiwgaXZfbGVuKTsKKwl9CisJcmMgPSAwOworCWN0eC0+ZmxhZ3MgJj0gflBSTkdfTkVFRF9SRVNFVDsKK291dDoKKwlzcGluX3VubG9jaygmY3R4LT5wcm5nX2xvY2spOworCisJcmV0dXJuIHJjOworCit9CitFWFBPUlRfU1lNQk9MX0dQTChyZXNldF9wcm5nX2NvbnRleHQpOworCisvKiBNb2R1bGUgaW5pdGFsaXphdGlvbiAqLworc3RhdGljIGludCBfX2luaXQgcHJuZ19tb2RfaW5pdCh2b2lkKQoreworCisjaWZkZWYgVEVTVF9QUk5HX09OX1NUQVJUCisJaW50IGk7CisJdW5zaWduZWQgY2hhciB0bXBidWZbREVGQVVMVF9CTEtfU1pdOworCisJc3RydWN0IHBybmdfY29udGV4dCAqY3R4ID0gYWxsb2NfcHJuZ19jb250ZXh0KCk7CisJaWYgKGN0eCA9PSBOVUxMKQorCQlyZXR1cm4gLUVGQVVMVDsKKwlmb3IgKGk9MDtpPDE2O2krKykgeworCQlpZiAoZ2V0X3BybmdfYnl0ZXModG1wYnVmLCBERUZBVUxUX0JMS19TWiwgY3R4KSA8IDApIHsKKwkJCWZyZWVfcHJuZ19jb250ZXh0KGN0eCk7CisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJfQorCX0KKwlmcmVlX3BybmdfY29udGV4dChjdHgpOworI2VuZGlmCisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHBybmdfbW9kX2Zpbmkodm9pZCkKK3sKKwlyZXR1cm47Cit9CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiU29mdHdhcmUgUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yIik7CitNT0RVTEVfQVVUSE9SKCJOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPiIpOworbW9kdWxlX3BhcmFtKGRiZywgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MoZGJnLCAiQm9vbGVhbiB0byBlbmFibGUgZGVidWdnaW5nICgwLzEgPT0gb2ZmL29uKSIpOworbW9kdWxlX2luaXQocHJuZ19tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChwcm5nX21vZF9maW5pKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9wcm5nLmggYi9jcnlwdG8vcHJuZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYzliZTUKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcHJuZy5oCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBQUk5HOiBQc2V1ZG8gUmFuZG9tIE51bWJlciBHZW5lcmF0b3IKKyAqCisgKiAgKEMpIE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqCisgKi8KKworI2lmbmRlZiBfUFJOR19IXworI2RlZmluZSBfUFJOR19IXworc3RydWN0IHBybmdfY29udGV4dDsKKworaW50IGdldF9wcm5nX2J5dGVzKGNoYXIgKmJ1ZiwgaW50IG5ieXRlcywgc3RydWN0IHBybmdfY29udGV4dCAqY3R4KTsKK3N0cnVjdCBwcm5nX2NvbnRleHQgKmFsbG9jX3BybmdfY29udGV4dCh2b2lkKTsKK2ludCByZXNldF9wcm5nX2NvbnRleHQoc3RydWN0IHBybmdfY29udGV4dCAqY3R4LAorCQkJdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBjaGFyICppdiwKKwkJCXVuc2lnbmVkIGNoYXIgKlYsCisJCQl1bnNpZ25lZCBjaGFyICpEVCk7Cit2b2lkIGZyZWVfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCk7CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9jcnlwdG8vcmlwZW1kLmggYi9jcnlwdG8vcmlwZW1kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3YTJkNAotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9yaXBlbWQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29tbW9uIHZhbHVlcyBmb3IgUklQRU1EIGFsZ29yaXRobXMKKyAqLworCisjaWZuZGVmIF9DUllQVE9fUk1EX0gKKyNkZWZpbmUgX0NSWVBUT19STURfSAorCisjZGVmaW5lIFJNRDEyOF9ESUdFU1RfU0laRSAgICAgIDE2CisjZGVmaW5lIFJNRDEyOF9CTE9DS19TSVpFICAgICAgIDY0CisKKyNkZWZpbmUgUk1EMTYwX0RJR0VTVF9TSVpFICAgICAgMjAKKyNkZWZpbmUgUk1EMTYwX0JMT0NLX1NJWkUgICAgICAgNjQKKworI2RlZmluZSBSTUQyNTZfRElHRVNUX1NJWkUgICAgICAzMgorI2RlZmluZSBSTUQyNTZfQkxPQ0tfU0laRSAgICAgICA2NAorCisjZGVmaW5lIFJNRDMyMF9ESUdFU1RfU0laRSAgICAgIDQwCisjZGVmaW5lIFJNRDMyMF9CTE9DS19TSVpFICAgICAgIDY0CisKKy8qIGluaXRpYWwgdmFsdWVzICAqLworI2RlZmluZSBSTURfSDAgIDB4Njc0NTIzMDFVTAorI2RlZmluZSBSTURfSDEgIDB4ZWZjZGFiODlVTAorI2RlZmluZSBSTURfSDIgIDB4OThiYWRjZmVVTAorI2RlZmluZSBSTURfSDMgIDB4MTAzMjU0NzZVTAorI2RlZmluZSBSTURfSDQgIDB4YzNkMmUxZjBVTAorI2RlZmluZSBSTURfSDUgIDB4NzY1NDMyMTBVTAorI2RlZmluZSBSTURfSDYgIDB4ZmVkY2JhOThVTAorI2RlZmluZSBSTURfSDcgIDB4ODlhYmNkZWZVTAorI2RlZmluZSBSTURfSDggIDB4MDEyMzQ1NjdVTAorI2RlZmluZSBSTURfSDkgIDB4M2MyZDFlMGZVTAorCisvKiBjb25zdGFudHMgKi8KKyNkZWZpbmUgUk1EX0sxICAweDAwMDAwMDAwVUwKKyNkZWZpbmUgUk1EX0syICAweDVhODI3OTk5VUwKKyNkZWZpbmUgUk1EX0szICAweDZlZDllYmExVUwKKyNkZWZpbmUgUk1EX0s0ICAweDhmMWJiY2RjVUwKKyNkZWZpbmUgUk1EX0s1ICAweGE5NTNmZDRlVUwKKyNkZWZpbmUgUk1EX0s2ICAweDUwYTI4YmU2VUwKKyNkZWZpbmUgUk1EX0s3ICAweDVjNGRkMTI0VUwKKyNkZWZpbmUgUk1EX0s4ICAweDZkNzAzZWYzVUwKKyNkZWZpbmUgUk1EX0s5ICAweDdhNmQ3NmU5VUwKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMTI4LmMgYi9jcnlwdG8vcm1kMTI4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRlNmZhMgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ybWQxMjguYwpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAqIENyeXB0b2dyYXBoaWMgQVBJLgorICoKKyAqIFJJUEVNRC0xMjggLSBSQUNFIEludGVncml0eSBQcmltaXRpdmVzIEV2YWx1YXRpb24gTWVzc2FnZSBEaWdlc3QuCisgKgorICogQmFzZWQgb24gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBieSBBbnRvb24gQm9zc2VsYWVycywgRVNBVC1DT1NJQworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxydWVlZ3NlZ2dlciAoYXQpIHN3aXNzLWl0LmNoPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorCisjaW5jbHVkZSAicmlwZW1kLmgiCisKK3N0cnVjdCBybWQxMjhfY3R4IHsKKwl1NjQgYnl0ZV9jb3VudDsKKwl1MzIgc3RhdGVbNF07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgS0sxIFJNRF9LNgorI2RlZmluZSBLSzIgUk1EX0s3CisjZGVmaW5lIEtLMyBSTURfSzgKKyNkZWZpbmUgS0s0IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7CVwKKwkoYSkgPSByb2wzMigoYSksIChzKSk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMTI4X3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgYWFhLCBiYmIsIGNjYywgZGRkOworCisJLyogSW5pdGlhbGl6ZSBsZWZ0IGxhbmUgKi8KKwlhYSA9IHN0YXRlWzBdOworCWJiID0gc3RhdGVbMV07CisJY2MgPSBzdGF0ZVsyXTsKKwlkZCA9IHN0YXRlWzNdOworCisJLyogSW5pdGlhbGl6ZSByaWdodCBsYW5lICovCisJYWFhID0gc3RhdGVbMF07CisJYmJiID0gc3RhdGVbMV07CisJY2NjID0gc3RhdGVbMl07CisJZGRkID0gc3RhdGVbM107CisKKwkvKiByb3VuZCAxOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblswXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsyXSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblszXSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls1XSwgICA4KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpbls2XSwgICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls4XSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls5XSwgIDEzKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxMV0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxMl0sICA2KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxNF0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxNV0sICA4KTsKKworCS8qIHJvdW5kIDI6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMzogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bM10sICAxMSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bN10sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bMTNdLCAgNSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bMTJdLCAgNSk7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMV0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxMF0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls4XSwgIDE1KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMl0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxM10sICA5KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblszXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxNV0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxNF0sICA4KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls2XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsyXSwgIDEyKTsKKworCS8qIHJvdW5kIDE6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpbls3XSwgICA5KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsyXSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpblsxM10sICA3KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bMTVdLCAgOCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpbls4XSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblszXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMl0sICAxMSk7CisKKwkvKiByb3VuZCAzOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpblsxNV0sICA5KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpblszXSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpbls2XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpbls4XSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzEyXSwgIDUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpblsxMF0sIDEzKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpblsxM10sICA1KTsKKworCS8qIHJvdW5kIDQ6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpbls0XSwgICA4KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpblsxMV0sIDE0KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpbls1XSwgICA2KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMl0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblsxM10sICA5KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsxMF0sIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJZGRkICs9IGNjICsgc3RhdGVbMV07CQkvKiBmaW5hbCByZXN1bHQgZm9yIHN0YXRlWzBdICovCisJc3RhdGVbMV0gPSBzdGF0ZVsyXSArIGRkICsgYWFhOworCXN0YXRlWzJdID0gc3RhdGVbM10gKyBhYSArIGJiYjsKKwlzdGF0ZVszXSA9IHN0YXRlWzBdICsgYmIgKyBjY2M7CisJc3RhdGVbMF0gPSBkZGQ7CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJtZDEyOF9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IHJtZDEyOF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJcmN0eC0+Ynl0ZV9jb3VudCA9IDA7CisKKwlyY3R4LT5zdGF0ZVswXSA9IFJNRF9IMDsKKwlyY3R4LT5zdGF0ZVsxXSA9IFJNRF9IMTsKKwlyY3R4LT5zdGF0ZVsyXSA9IFJNRF9IMjsKKwlyY3R4LT5zdGF0ZVszXSA9IFJNRF9IMzsKKworCW1lbXNldChyY3R4LT5idWZmZXIsIDAsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKK30KKworc3RhdGljIHZvaWQgcm1kMTI4X3VwZGF0ZShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBjb25zdCB1OCAqZGF0YSwKKwkJCSAgdW5zaWduZWQgaW50IGxlbikKK3sKKwlzdHJ1Y3Qgcm1kMTI4X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJY29uc3QgdTMyIGF2YWlsID0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSAocmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2YpOworCisJcmN0eC0+Ynl0ZV9jb3VudCArPSBsZW47CisKKwkvKiBFbm91Z2ggc3BhY2UgaW4gYnVmZmVyPyBJZiBzbyBjb3B5IGFuZCB3ZSdyZSBkb25lICovCisJaWYgKGF2YWlsID4gbGVuKSB7CisJCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkJICAgICAgIGRhdGEsIGxlbik7CisJCXJldHVybjsKKwl9CisKKwltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJICAgICAgIGRhdGEsIGF2YWlsKTsKKworCXJtZDEyOF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJZGF0YSArPSBhdmFpbDsKKwlsZW4gLT0gYXZhaWw7CisKKwl3aGlsZSAobGVuID49IHNpemVvZihyY3R4LT5idWZmZXIpKSB7CisJCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKKwkJcm1kMTI4X3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwkJZGF0YSArPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwkJbGVuIC09IHNpemVvZihyY3R4LT5idWZmZXIpOworCX0KKworCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIGxlbik7Cit9CisKKy8qIEFkZCBwYWRkaW5nIGFuZCByZXR1cm4gdGhlIG1lc3NhZ2UgZGlnZXN0LiAqLworc3RhdGljIHZvaWQgcm1kMTI4X2ZpbmFsKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4ICpvdXQpCit7CisJc3RydWN0IHJtZDEyOF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXUzMiBpLCBpbmRleCwgcGFkbGVuOworCV9fbGU2NCBiaXRzOworCV9fbGUzMiAqZHN0ID0gKF9fbGUzMiAqKW91dDsKKwlzdGF0aWMgY29uc3QgdTggcGFkZGluZ1s2NF0gPSB7IDB4ODAsIH07CisKKwliaXRzID0gY3B1X3RvX2xlNjQocmN0eC0+Ynl0ZV9jb3VudCA8PCAzKTsKKworCS8qIFBhZCBvdXQgdG8gNTYgbW9kIDY0ICovCisJaW5kZXggPSByY3R4LT5ieXRlX2NvdW50ICYgMHgzZjsKKwlwYWRsZW4gPSAoaW5kZXggPCA1NikgPyAoNTYgLSBpbmRleCkgOiAoKDY0KzU2KSAtIGluZGV4KTsKKwlybWQxMjhfdXBkYXRlKHRmbSwgcGFkZGluZywgcGFkbGVuKTsKKworCS8qIEFwcGVuZCBsZW5ndGggKi8KKwlybWQxMjhfdXBkYXRlKHRmbSwgKGNvbnN0IHU4ICopJmJpdHMsIHNpemVvZihiaXRzKSk7CisKKwkvKiBTdG9yZSBzdGF0ZSBpbiBkaWdlc3QgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQorCQlkc3RbaV0gPSBjcHVfdG9fbGUzMnAoJnJjdHgtPnN0YXRlW2ldKTsKKworCS8qIFdpcGUgY29udGV4dCAqLworCW1lbXNldChyY3R4LCAwLCBzaXplb2YoKnJjdHgpKTsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJID0JInJtZDEyOCIsCisJLmNyYV9kcml2ZXJfbmFtZSA9CSJybWQxMjgiLAorCS5jcmFfZmxhZ3MJID0JQ1JZUFRPX0FMR19UWVBFX0RJR0VTVCwKKwkuY3JhX2Jsb2Nrc2l6ZQkgPQlSTUQxMjhfQkxPQ0tfU0laRSwKKwkuY3JhX2N0eHNpemUJID0Jc2l6ZW9mKHN0cnVjdCBybWQxMjhfY3R4KSwKKwkuY3JhX21vZHVsZQkgPQlUSElTX01PRFVMRSwKKwkuY3JhX2xpc3QJID0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKKwkuY3JhX3UJCSA9CXsgLmRpZ2VzdCA9IHsKKwkuZGlhX2RpZ2VzdHNpemUJID0JUk1EMTI4X0RJR0VTVF9TSVpFLAorCS5kaWFfaW5pdAkgPQlybWQxMjhfaW5pdCwKKwkuZGlhX3VwZGF0ZQkgPQlybWQxMjhfdXBkYXRlLAorCS5kaWFfZmluYWwJID0Jcm1kMTI4X2ZpbmFsIH0gfQorfTsKKworc3RhdGljIGludCBfX2luaXQgcm1kMTI4X21vZF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBybWQxMjhfbW9kX2Zpbmkodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK21vZHVsZV9pbml0KHJtZDEyOF9tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChybWQxMjhfbW9kX2ZpbmkpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlJJUEVNRC0xMjggTWVzc2FnZSBEaWdlc3QiKTsKKworTU9EVUxFX0FMSUFTKCJybWQxMjgiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ybWQxNjAuYyBiL2NyeXB0by9ybWQxNjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDAxZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3JtZDE2MC5jCkBAIC0wLDAgKzEsMzY5IEBACisvKgorICogQ3J5cHRvZ3JhcGhpYyBBUEkuCisgKgorICogUklQRU1ELTE2MCAtIFJBQ0UgSW50ZWdyaXR5IFByaW1pdGl2ZXMgRXZhbHVhdGlvbiBNZXNzYWdlIERpZ2VzdC4KKyAqCisgKiBCYXNlZCBvbiB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGJ5IEFudG9vbiBCb3NzZWxhZXJzLCBFU0FULUNPU0lDCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEFkcmlhbi1LZW4gUnVlZWdzZWdnZXIgPHJ1ZWVnc2VnZ2VyIChhdCkgc3dpc3MtaXQuY2g+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CisKKyNpbmNsdWRlICJyaXBlbWQuaCIKKworc3RydWN0IHJtZDE2MF9jdHggeworCXU2NCBieXRlX2NvdW50OworCXUzMiBzdGF0ZVs1XTsKKwlfX2xlMzIgYnVmZmVyWzE2XTsKK307CisKKyNkZWZpbmUgSzEgIFJNRF9LMQorI2RlZmluZSBLMiAgUk1EX0syCisjZGVmaW5lIEszICBSTURfSzMKKyNkZWZpbmUgSzQgIFJNRF9LNAorI2RlZmluZSBLNSAgUk1EX0s1CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzkKKyNkZWZpbmUgS0s1IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKyNkZWZpbmUgRjUoeCwgeSwgeikgKHggXiAoeSB8IH56KSkKKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBlLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSkgKyAoZSk7IFwKKwkoYykgPSByb2wzMigoYyksIDEwKTsgXAorfQorCitzdGF0aWMgdm9pZCBybWQxNjBfdHJhbnNmb3JtKHUzMiAqc3RhdGUsIGNvbnN0IF9fbGUzMiAqaW4pCit7CisJdTMyIGFhLCBiYiwgY2MsIGRkLCBlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBlZWU7CisKKwkvKiBJbml0aWFsaXplIGxlZnQgbGFuZSAqLworCWFhID0gc3RhdGVbMF07CisJYmIgPSBzdGF0ZVsxXTsKKwljYyA9IHN0YXRlWzJdOworCWRkID0gc3RhdGVbM107CisJZWUgPSBzdGF0ZVs0XTsKKworCS8qIEluaXRpYWxpemUgcmlnaHQgbGFuZSAqLworCWFhYSA9IHN0YXRlWzBdOworCWJiYiA9IHN0YXRlWzFdOworCWNjYyA9IHN0YXRlWzJdOworCWRkZCA9IHN0YXRlWzNdOworCWVlZSA9IHN0YXRlWzRdOworCisJLyogcm91bmQgMTogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzEyXSwgIDYpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzE1XSwgIDgpOworCisJLyogcm91bmQgMjogbGVmdCBsYW5lIiAqLworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls3XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblsxNV0sICA3KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bM10sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblswXSwgIDEyKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblsyXSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMTRdLCAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls4XSwgIDEyKTsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSIgKi8KKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bM10sICAxMSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxNF0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxNV0sICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpblsyXSwgIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpbls2XSwgICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMTNdLCAgNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls1XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTJdLCAgNSk7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUiICovCisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzE0XSwgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzJdLCAgMTIpOworCisJLyogcm91bmQgNTogbGVmdCBsYW5lIiAqLworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpbls0XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bMF0sICAxNSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpbls5XSwgIDExKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bN10sICAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzEyXSwgIDgpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpblsyXSwgIDEzKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bMTBdLCAxMik7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpblsxXSwgIDEyKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzhdLCAgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpblsxMV0sIDExKTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bNl0sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzE1XSwgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblsxM10sICA2KTsKKworCS8qIHJvdW5kIDE6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpbls3XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsyXSwgIDE1KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblsxM10sICA3KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzE1XSwgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpbls4XSwgIDExKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpblszXSwgIDEyKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMTJdLCAgNik7CisKKwkvKiByb3VuZCAyOiByaWdodCBsYW5lICovCisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bM10sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bMTNdLCAgOCk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bMTRdLCAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bMTJdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMV0sICAxMyk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzJdLCAgMTEpOworCisJLyogcm91bmQgMzogcmlnaHQgbGFuZSAqLworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxNV0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblszXSwgIDExKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpbls2XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls4XSwgIDEzKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTJdLCAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpblsxMF0sIDEzKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxM10sICA1KTsKKworCS8qIHJvdW5kIDQ6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpbls0XSwgICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsxMV0sIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpbls1XSwgICA2KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzJdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpblsxM10sICA5KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblsxMF0sIDE1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMTRdLCAgOCk7CisKKwkvKiByb3VuZCA1OiByaWdodCBsYW5lICovCisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzEyXSwgIDgpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpblsxNV0sICA1KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bMTBdLCAxMik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzRdLCAgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpblsxXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bNV0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzhdLCAgMTQpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpbls3XSwgICA2KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bNl0sICAgOCk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzJdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxM10sICA2KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bMTRdLCAgNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzBdLCAgMTUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpblszXSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bOV0sICAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzExXSwgMTEpOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJZGRkICs9IGNjICsgc3RhdGVbMV07CQkvKiBmaW5hbCByZXN1bHQgZm9yIHN0YXRlWzBdICovCisJc3RhdGVbMV0gPSBzdGF0ZVsyXSArIGRkICsgZWVlOworCXN0YXRlWzJdID0gc3RhdGVbM10gKyBlZSArIGFhYTsKKwlzdGF0ZVszXSA9IHN0YXRlWzRdICsgYWEgKyBiYmI7CisJc3RhdGVbNF0gPSBzdGF0ZVswXSArIGJiICsgY2NjOworCXN0YXRlWzBdID0gZGRkOworCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBybWQxNjBfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBybWQxNjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKworCXJjdHgtPmJ5dGVfY291bnQgPSAwOworCisJcmN0eC0+c3RhdGVbMF0gPSBSTURfSDA7CisJcmN0eC0+c3RhdGVbMV0gPSBSTURfSDE7CisJcmN0eC0+c3RhdGVbMl0gPSBSTURfSDI7CisJcmN0eC0+c3RhdGVbM10gPSBSTURfSDM7CisJcmN0eC0+c3RhdGVbNF0gPSBSTURfSDQ7CisKKwltZW1zZXQocmN0eC0+YnVmZmVyLCAwLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJtZDE2MF91cGRhdGUoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgY29uc3QgdTggKmRhdGEsCisJCQkgIHVuc2lnbmVkIGludCBsZW4pCit7CisJc3RydWN0IHJtZDE2MF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWNvbnN0IHUzMiBhdmFpbCA9IHNpemVvZihyY3R4LT5idWZmZXIpIC0gKHJjdHgtPmJ5dGVfY291bnQgJiAweDNmKTsKKworCXJjdHgtPmJ5dGVfY291bnQgKz0gbGVuOworCisJLyogRW5vdWdoIHNwYWNlIGluIGJ1ZmZlcj8gSWYgc28gY29weSBhbmQgd2UncmUgZG9uZSAqLworCWlmIChhdmFpbCA+IGxlbikgeworCQltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJCSAgICAgICBkYXRhLCBsZW4pOworCQlyZXR1cm47CisJfQorCisJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCSAgICAgICBkYXRhLCBhdmFpbCk7CisKKwlybWQxNjBfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCWRhdGEgKz0gYXZhaWw7CisJbGVuIC09IGF2YWlsOworCisJd2hpbGUgKGxlbiA+PSBzaXplb2YocmN0eC0+YnVmZmVyKSkgeworCQltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7CisJCXJtZDE2MF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJCWRhdGEgKz0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJCWxlbiAtPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwl9CisKKwltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBsZW4pOworfQorCisvKiBBZGQgcGFkZGluZyBhbmQgcmV0dXJuIHRoZSBtZXNzYWdlIGRpZ2VzdC4gKi8KK3N0YXRpYyB2b2lkIHJtZDE2MF9maW5hbChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1OCAqb3V0KQoreworCXN0cnVjdCBybWQxNjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwl1MzIgaSwgaW5kZXgsIHBhZGxlbjsKKwlfX2xlNjQgYml0czsKKwlfX2xlMzIgKmRzdCA9IChfX2xlMzIgKilvdXQ7CisJc3RhdGljIGNvbnN0IHU4IHBhZGRpbmdbNjRdID0geyAweDgwLCB9OworCisJYml0cyA9IGNwdV90b19sZTY0KHJjdHgtPmJ5dGVfY291bnQgPDwgMyk7CisKKwkvKiBQYWQgb3V0IHRvIDU2IG1vZCA2NCAqLworCWluZGV4ID0gcmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2Y7CisJcGFkbGVuID0gKGluZGV4IDwgNTYpID8gKDU2IC0gaW5kZXgpIDogKCg2NCs1NikgLSBpbmRleCk7CisJcm1kMTYwX3VwZGF0ZSh0Zm0sIHBhZGRpbmcsIHBhZGxlbik7CisKKwkvKiBBcHBlbmQgbGVuZ3RoICovCisJcm1kMTYwX3VwZGF0ZSh0Zm0sIChjb25zdCB1OCAqKSZiaXRzLCBzaXplb2YoYml0cykpOworCisJLyogU3RvcmUgc3RhdGUgaW4gZGlnZXN0ICovCisJZm9yIChpID0gMDsgaSA8IDU7IGkrKykKKwkJZHN0W2ldID0gY3B1X3RvX2xlMzJwKCZyY3R4LT5zdGF0ZVtpXSk7CisKKwkvKiBXaXBlIGNvbnRleHQgKi8KKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKCpyY3R4KSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBhbGcgPSB7CisJLmNyYV9uYW1lCSA9CSJybWQxNjAiLAorCS5jcmFfZHJpdmVyX25hbWUgPQkicm1kMTYwIiwKKwkuY3JhX2ZsYWdzCSA9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCisJLmNyYV9ibG9ja3NpemUJID0JUk1EMTYwX0JMT0NLX1NJWkUsCisJLmNyYV9jdHhzaXplCSA9CXNpemVvZihzdHJ1Y3Qgcm1kMTYwX2N0eCksCisJLmNyYV9tb2R1bGUJID0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CSA9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV91CQkgPQl7IC5kaWdlc3QgPSB7CisJLmRpYV9kaWdlc3RzaXplCSA9CVJNRDE2MF9ESUdFU1RfU0laRSwKKwkuZGlhX2luaXQJID0Jcm1kMTYwX2luaXQsCisJLmRpYV91cGRhdGUJID0Jcm1kMTYwX3VwZGF0ZSwKKwkuZGlhX2ZpbmFsCSA9CXJtZDE2MF9maW5hbCB9IH0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJtZDE2MF9tb2RfaW5pdCh2b2lkKQoreworCXJldHVybiBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcm1kMTYwX21vZF9maW5pKHZvaWQpCit7CisJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCittb2R1bGVfaW5pdChybWQxNjBfbW9kX2luaXQpOworbW9kdWxlX2V4aXQocm1kMTYwX21vZF9maW5pKTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJSSVBFTUQtMTYwIE1lc3NhZ2UgRGlnZXN0Iik7CisKK01PRFVMRV9BTElBUygicm1kMTYwIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMjU2LmMgYi9jcnlwdG8vcm1kMjU2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNkZTViNAotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ybWQyNTYuYwpAQCAtMCwwICsxLDM0NCBAQAorLyoKKyAqIENyeXB0b2dyYXBoaWMgQVBJLgorICoKKyAqIFJJUEVNRC0yNTYgLSBSQUNFIEludGVncml0eSBQcmltaXRpdmVzIEV2YWx1YXRpb24gTWVzc2FnZSBEaWdlc3QuCisgKgorICogQmFzZWQgb24gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBieSBBbnRvb24gQm9zc2VsYWVycywgRVNBVC1DT1NJQworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxydWVlZ3NlZ2dlciAoYXQpIHN3aXNzLWl0LmNoPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorCisjaW5jbHVkZSAicmlwZW1kLmgiCisKK3N0cnVjdCBybWQyNTZfY3R4IHsKKwl1NjQgYnl0ZV9jb3VudDsKKwl1MzIgc3RhdGVbOF07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgS0sxIFJNRF9LNgorI2RlZmluZSBLSzIgUk1EX0s3CisjZGVmaW5lIEtLMyBSTURfSzgKKyNkZWZpbmUgS0s0IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMjU2X3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgYWFhLCBiYmIsIGNjYywgZGRkLCB0bXA7CisKKwkvKiBJbml0aWFsaXplIGxlZnQgbGFuZSAqLworCWFhID0gc3RhdGVbMF07CisJYmIgPSBzdGF0ZVsxXTsKKwljYyA9IHN0YXRlWzJdOworCWRkID0gc3RhdGVbM107CisKKwkvKiBJbml0aWFsaXplIHJpZ2h0IGxhbmUgKi8KKwlhYWEgPSBzdGF0ZVs0XTsKKwliYmIgPSBzdGF0ZVs1XTsKKwljY2MgPSBzdGF0ZVs2XTsKKwlkZGQgPSBzdGF0ZVs3XTsKKworCS8qIHJvdW5kIDE6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzEyXSwgIDYpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzE1XSwgIDgpOworCisJLyogcm91bmQgMTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsxNF0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpbls5XSwgIDEzKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpbls0XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblsxNV0sICA4KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsxMF0sIDE0KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bMTJdLCAgNik7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJhIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBhYTsgYWEgPSBhYWE7IGFhYSA9IHRtcDsKKworCS8qIHJvdW5kIDI6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMl0sICAxMSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJiIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBiYjsgYmIgPSBiYmI7IGJiYiA9IHRtcDsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzEzXSwgIDUpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzEyXSwgIDUpOworCisJLyogcm91bmQgMzogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpbls1XSwgICA3KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpbls3XSwgICA4KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpbls5XSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpblsxMl0sICA1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpblswXSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJjIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBjYzsgY2MgPSBjY2M7IGNjYyA9IHRtcDsKKworCS8qIHJvdW5kIDQ6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzE0XSwgIDgpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzJdLCAgMTIpOworCisJLyogcm91bmQgNDogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpbls2XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpblszXSwgIDE0KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblswXSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsyXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpbls3XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMTRdLCAgOCk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJkIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBkZDsgZGQgPSBkZGQ7IGRkZCA9IHRtcDsKKworCS8qIGNvbWJpbmUgcmVzdWx0cyAqLworCXN0YXRlWzBdICs9IGFhOworCXN0YXRlWzFdICs9IGJiOworCXN0YXRlWzJdICs9IGNjOworCXN0YXRlWzNdICs9IGRkOworCXN0YXRlWzRdICs9IGFhYTsKKwlzdGF0ZVs1XSArPSBiYmI7CisJc3RhdGVbNl0gKz0gY2NjOworCXN0YXRlWzddICs9IGRkZDsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcm1kMjU2X2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3Qgcm1kMjU2X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwlyY3R4LT5ieXRlX2NvdW50ID0gMDsKKworCXJjdHgtPnN0YXRlWzBdID0gUk1EX0gwOworCXJjdHgtPnN0YXRlWzFdID0gUk1EX0gxOworCXJjdHgtPnN0YXRlWzJdID0gUk1EX0gyOworCXJjdHgtPnN0YXRlWzNdID0gUk1EX0gzOworCXJjdHgtPnN0YXRlWzRdID0gUk1EX0g1OworCXJjdHgtPnN0YXRlWzVdID0gUk1EX0g2OworCXJjdHgtPnN0YXRlWzZdID0gUk1EX0g3OworCXJjdHgtPnN0YXRlWzddID0gUk1EX0g4OworCisJbWVtc2V0KHJjdHgtPmJ1ZmZlciwgMCwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCBybWQyNTZfdXBkYXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICpkYXRhLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBybWQyNTZfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwljb25zdCB1MzIgYXZhaWwgPSBzaXplb2YocmN0eC0+YnVmZmVyKSAtIChyY3R4LT5ieXRlX2NvdW50ICYgMHgzZik7CisKKwlyY3R4LT5ieXRlX2NvdW50ICs9IGxlbjsKKworCS8qIEVub3VnaCBzcGFjZSBpbiBidWZmZXI/IElmIHNvIGNvcHkgYW5kIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYXZhaWwgPiBsZW4pIHsKKwkJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCQkgICAgICAgZGF0YSwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkgICAgICAgZGF0YSwgYXZhaWwpOworCisJcm1kMjU2X3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwlkYXRhICs9IGF2YWlsOworCWxlbiAtPSBhdmFpbDsKKworCXdoaWxlIChsZW4gPj0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpIHsKKwkJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworCQlybWQyNTZfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCQlkYXRhICs9IHNpemVvZihyY3R4LT5idWZmZXIpOworCQlsZW4gLT0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJfQorCisJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgbGVuKTsKK30KKworLyogQWRkIHBhZGRpbmcgYW5kIHJldHVybiB0aGUgbWVzc2FnZSBkaWdlc3QuICovCitzdGF0aWMgdm9pZCBybWQyNTZfZmluYWwoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggKm91dCkKK3sKKwlzdHJ1Y3Qgcm1kMjU2X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyIGksIGluZGV4LCBwYWRsZW47CisJX19sZTY0IGJpdHM7CisJX19sZTMyICpkc3QgPSAoX19sZTMyICopb3V0OworCXN0YXRpYyBjb25zdCB1OCBwYWRkaW5nWzY0XSA9IHsgMHg4MCwgfTsKKworCWJpdHMgPSBjcHVfdG9fbGU2NChyY3R4LT5ieXRlX2NvdW50IDw8IDMpOworCisJLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKwlpbmRleCA9IHJjdHgtPmJ5dGVfY291bnQgJiAweDNmOworCXBhZGxlbiA9IChpbmRleCA8IDU2KSA/ICg1NiAtIGluZGV4KSA6ICgoNjQrNTYpIC0gaW5kZXgpOworCXJtZDI1Nl91cGRhdGUodGZtLCBwYWRkaW5nLCBwYWRsZW4pOworCisJLyogQXBwZW5kIGxlbmd0aCAqLworCXJtZDI1Nl91cGRhdGUodGZtLCAoY29uc3QgdTggKikmYml0cywgc2l6ZW9mKGJpdHMpKTsKKworCS8qIFN0b3JlIHN0YXRlIGluIGRpZ2VzdCAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCWRzdFtpXSA9IGNwdV90b19sZTMycCgmcmN0eC0+c3RhdGVbaV0pOworCisJLyogV2lwZSBjb250ZXh0ICovCisJbWVtc2V0KHJjdHgsIDAsIHNpemVvZigqcmN0eCkpOworfQorCitzdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgYWxnID0geworCS5jcmFfbmFtZQkgPQkicm1kMjU2IiwKKwkuY3JhX2RyaXZlcl9uYW1lID0JInJtZDI1NiIsCisJLmNyYV9mbGFncwkgPQlDUllQVE9fQUxHX1RZUEVfRElHRVNULAorCS5jcmFfYmxvY2tzaXplCSA9CVJNRDI1Nl9CTE9DS19TSVpFLAorCS5jcmFfY3R4c2l6ZQkgPQlzaXplb2Yoc3RydWN0IHJtZDI1Nl9jdHgpLAorCS5jcmFfbW9kdWxlCSA9CVRISVNfTU9EVUxFLAorCS5jcmFfbGlzdAkgPQlMSVNUX0hFQURfSU5JVChhbGcuY3JhX2xpc3QpLAorCS5jcmFfdQkJID0JeyAuZGlnZXN0ID0geworCS5kaWFfZGlnZXN0c2l6ZQkgPQlSTUQyNTZfRElHRVNUX1NJWkUsCisJLmRpYV9pbml0CSA9CXJtZDI1Nl9pbml0LAorCS5kaWFfdXBkYXRlCSA9CXJtZDI1Nl91cGRhdGUsCisJLmRpYV9maW5hbAkgPQlybWQyNTZfZmluYWwgfSB9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBybWQyNTZfbW9kX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gY3J5cHRvX3JlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHJtZDI1Nl9tb2RfZmluaSh2b2lkKQoreworCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworbW9kdWxlX2luaXQocm1kMjU2X21vZF9pbml0KTsKK21vZHVsZV9leGl0KHJtZDI1Nl9tb2RfZmluaSk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiUklQRU1ELTI1NiBNZXNzYWdlIERpZ2VzdCIpOworCitNT0RVTEVfQUxJQVMoInJtZDI1NiIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JtZDMyMC5jIGIvY3J5cHRvL3JtZDMyMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNDNkNjYKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcm1kMzIwLmMKQEAgLTAsMCArMSwzOTMgQEAKKy8qCisgKiBDcnlwdG9ncmFwaGljIEFQSS4KKyAqCisgKiBSSVBFTUQtMzIwIC0gUkFDRSBJbnRlZ3JpdHkgUHJpbWl0aXZlcyBFdmFsdWF0aW9uIE1lc3NhZ2UgRGlnZXN0LgorICoKKyAqIEJhc2VkIG9uIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gYnkgQW50b29uIEJvc3NlbGFlcnMsIEVTQVQtQ09TSUMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQWRyaWFuLUtlbiBSdWVlZ3NlZ2dlciA8cnVlZWdzZWdnZXIgKGF0KSBzd2lzcy1pdC5jaD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0b2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworI2luY2x1ZGUgInJpcGVtZC5oIgorCitzdHJ1Y3Qgcm1kMzIwX2N0eCB7CisJdTY0IGJ5dGVfY291bnQ7CisJdTMyIHN0YXRlWzEwXTsKKwlfX2xlMzIgYnVmZmVyWzE2XTsKK307CisKKyNkZWZpbmUgSzEgIFJNRF9LMQorI2RlZmluZSBLMiAgUk1EX0syCisjZGVmaW5lIEszICBSTURfSzMKKyNkZWZpbmUgSzQgIFJNRF9LNAorI2RlZmluZSBLNSAgUk1EX0s1CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzkKKyNkZWZpbmUgS0s1IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKyNkZWZpbmUgRjUoeCwgeSwgeikgKHggXiAoeSB8IH56KSkKKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBlLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSkgKyAoZSk7IFwKKwkoYykgPSByb2wzMigoYyksIDEwKTsgXAorfQorCitzdGF0aWMgdm9pZCBybWQzMjBfdHJhbnNmb3JtKHUzMiAqc3RhdGUsIGNvbnN0IF9fbGUzMiAqaW4pCit7CisJdTMyIGFhLCBiYiwgY2MsIGRkLCBlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIHRtcDsKKworCS8qIEluaXRpYWxpemUgbGVmdCBsYW5lICovCisJYWEgPSBzdGF0ZVswXTsKKwliYiA9IHN0YXRlWzFdOworCWNjID0gc3RhdGVbMl07CisJZGQgPSBzdGF0ZVszXTsKKwllZSA9IHN0YXRlWzRdOworCisJLyogSW5pdGlhbGl6ZSByaWdodCBsYW5lICovCisJYWFhID0gc3RhdGVbNV07CisJYmJiID0gc3RhdGVbNl07CisJY2NjID0gc3RhdGVbN107CisJZGRkID0gc3RhdGVbOF07CisJZWVlID0gc3RhdGVbOV07CisKKwkvKiByb3VuZCAxOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsyXSwgIDE1KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpbls1XSwgICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpbls4XSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxMV0sIDE1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMTJdLCAgNik7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpblsxNF0sICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bMTVdLCAgOCk7CisKKwkvKiByb3VuZCAxOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpblsxNF0sICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpbls5XSwgIDEzKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpbls0XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsxNV0sICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYSIgcmVnaXN0ZXJzICovCisJdG1wID0gYWE7IGFhID0gYWFhOyBhYWEgPSB0bXA7CisKKwkvKiByb3VuZCAyOiBsZWZ0IGxhbmUiICovCisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls0XSwgICA2KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bMTNdLCAgOCk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblsxMF0sIDExKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblszXSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMTJdLCAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls5XSwgIDE1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxNF0sICA3KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpbls2XSwgICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpbls3XSwgICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpbls1XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblsxNV0sICA3KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bOF0sICAxMik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpbls0XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpblsyXSwgIDExKTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImIiIHJlZ2lzdGVycyAqLworCXRtcCA9IGJiOyBiYiA9IGJiYjsgYmJiID0gdG1wOworCisJLyogcm91bmQgMzogbGVmdCBsYW5lIiAqLworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblszXSwgIDExKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpbls0XSwgICA3KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpbls4XSwgIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls3XSwgICA4KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxM10sICA1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxMl0sICA1KTsKKworCS8qIHJvdW5kIDM6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpblsxXSwgIDE1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxNF0sICA2KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblsxMV0sIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzEyXSwgIDUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpblsyXSwgIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls0XSwgICA3KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJjIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBjYzsgY2MgPSBjY2M7IGNjYyA9IHRtcDsKKworCS8qIHJvdW5kIDQ6IGxlZnQgbGFuZSIgKi8KKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpblsxMV0sIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpbls4XSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxM10sICA5KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpblsxNV0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bMTRdLCAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls2XSwgICA1KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bMl0sICAxMik7CisKKwkvKiByb3VuZCA0OiByaWdodCBsYW5lICovCisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpbls2XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblszXSwgIDE0KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpblswXSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsyXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpbls3XSwgICA1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiZCIgcmVnaXN0ZXJzICovCisJdG1wID0gZGQ7IGRkID0gZGRkOyBkZGQgPSB0bXA7CisKKwkvKiByb3VuZCA1OiBsZWZ0IGxhbmUiICovCisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzRdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpblswXSwgIDE1KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bNV0sICAgNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzldLCAgMTEpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpbls3XSwgICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bMTJdLCAgOCk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzJdLCAgMTMpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpblsxMF0sIDEyKTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bMTRdLCAgNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzFdLCAgMTIpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblszXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bOF0sICAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzExXSwgMTEpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpbls2XSwgICA4KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bMTVdLCAgNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzEzXSwgIDYpOworCisJLyogcm91bmQgNTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMl0sICA4KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bMTVdLCAgNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzEwXSwgMTIpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpbls0XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bMV0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpbls4XSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bN10sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzZdLCAgIDgpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpblsyXSwgIDEzKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bMTNdLCAgNik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpblswXSwgIDE1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzldLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMV0sIDExKTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImUiIHJlZ2lzdGVycyAqLworCXRtcCA9IGVlOyBlZSA9IGVlZTsgZWVlID0gdG1wOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJc3RhdGVbMF0gKz0gYWE7CisJc3RhdGVbMV0gKz0gYmI7CisJc3RhdGVbMl0gKz0gY2M7CisJc3RhdGVbM10gKz0gZGQ7CisJc3RhdGVbNF0gKz0gZWU7CisJc3RhdGVbNV0gKz0gYWFhOworCXN0YXRlWzZdICs9IGJiYjsKKwlzdGF0ZVs3XSArPSBjY2M7CisJc3RhdGVbOF0gKz0gZGRkOworCXN0YXRlWzldICs9IGVlZTsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcm1kMzIwX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3Qgcm1kMzIwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwlyY3R4LT5ieXRlX2NvdW50ID0gMDsKKworCXJjdHgtPnN0YXRlWzBdID0gUk1EX0gwOworCXJjdHgtPnN0YXRlWzFdID0gUk1EX0gxOworCXJjdHgtPnN0YXRlWzJdID0gUk1EX0gyOworCXJjdHgtPnN0YXRlWzNdID0gUk1EX0gzOworCXJjdHgtPnN0YXRlWzRdID0gUk1EX0g0OworCXJjdHgtPnN0YXRlWzVdID0gUk1EX0g1OworCXJjdHgtPnN0YXRlWzZdID0gUk1EX0g2OworCXJjdHgtPnN0YXRlWzddID0gUk1EX0g3OworCXJjdHgtPnN0YXRlWzhdID0gUk1EX0g4OworCXJjdHgtPnN0YXRlWzldID0gUk1EX0g5OworCisJbWVtc2V0KHJjdHgtPmJ1ZmZlciwgMCwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCBybWQzMjBfdXBkYXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICpkYXRhLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBybWQzMjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwljb25zdCB1MzIgYXZhaWwgPSBzaXplb2YocmN0eC0+YnVmZmVyKSAtIChyY3R4LT5ieXRlX2NvdW50ICYgMHgzZik7CisKKwlyY3R4LT5ieXRlX2NvdW50ICs9IGxlbjsKKworCS8qIEVub3VnaCBzcGFjZSBpbiBidWZmZXI/IElmIHNvIGNvcHkgYW5kIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYXZhaWwgPiBsZW4pIHsKKwkJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCQkgICAgICAgZGF0YSwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkgICAgICAgZGF0YSwgYXZhaWwpOworCisJcm1kMzIwX3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwlkYXRhICs9IGF2YWlsOworCWxlbiAtPSBhdmFpbDsKKworCXdoaWxlIChsZW4gPj0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpIHsKKwkJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworCQlybWQzMjBfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCQlkYXRhICs9IHNpemVvZihyY3R4LT5idWZmZXIpOworCQlsZW4gLT0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJfQorCisJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgbGVuKTsKK30KKworLyogQWRkIHBhZGRpbmcgYW5kIHJldHVybiB0aGUgbWVzc2FnZSBkaWdlc3QuICovCitzdGF0aWMgdm9pZCBybWQzMjBfZmluYWwoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggKm91dCkKK3sKKwlzdHJ1Y3Qgcm1kMzIwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyIGksIGluZGV4LCBwYWRsZW47CisJX19sZTY0IGJpdHM7CisJX19sZTMyICpkc3QgPSAoX19sZTMyICopb3V0OworCXN0YXRpYyBjb25zdCB1OCBwYWRkaW5nWzY0XSA9IHsgMHg4MCwgfTsKKworCWJpdHMgPSBjcHVfdG9fbGU2NChyY3R4LT5ieXRlX2NvdW50IDw8IDMpOworCisJLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKwlpbmRleCA9IHJjdHgtPmJ5dGVfY291bnQgJiAweDNmOworCXBhZGxlbiA9IChpbmRleCA8IDU2KSA/ICg1NiAtIGluZGV4KSA6ICgoNjQrNTYpIC0gaW5kZXgpOworCXJtZDMyMF91cGRhdGUodGZtLCBwYWRkaW5nLCBwYWRsZW4pOworCisJLyogQXBwZW5kIGxlbmd0aCAqLworCXJtZDMyMF91cGRhdGUodGZtLCAoY29uc3QgdTggKikmYml0cywgc2l6ZW9mKGJpdHMpKTsKKworCS8qIFN0b3JlIHN0YXRlIGluIGRpZ2VzdCAqLworCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorCQlkc3RbaV0gPSBjcHVfdG9fbGUzMnAoJnJjdHgtPnN0YXRlW2ldKTsKKworCS8qIFdpcGUgY29udGV4dCAqLworCW1lbXNldChyY3R4LCAwLCBzaXplb2YoKnJjdHgpKTsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJID0JInJtZDMyMCIsCisJLmNyYV9kcml2ZXJfbmFtZSA9CSJybWQzMjAiLAorCS5jcmFfZmxhZ3MJID0JQ1JZUFRPX0FMR19UWVBFX0RJR0VTVCwKKwkuY3JhX2Jsb2Nrc2l6ZQkgPQlSTUQzMjBfQkxPQ0tfU0laRSwKKwkuY3JhX2N0eHNpemUJID0Jc2l6ZW9mKHN0cnVjdCBybWQzMjBfY3R4KSwKKwkuY3JhX21vZHVsZQkgPQlUSElTX01PRFVMRSwKKwkuY3JhX2xpc3QJID0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKKwkuY3JhX3UJCSA9CXsgLmRpZ2VzdCA9IHsKKwkuZGlhX2RpZ2VzdHNpemUJID0JUk1EMzIwX0RJR0VTVF9TSVpFLAorCS5kaWFfaW5pdAkgPQlybWQzMjBfaW5pdCwKKwkuZGlhX3VwZGF0ZQkgPQlybWQzMjBfdXBkYXRlLAorCS5kaWFfZmluYWwJID0Jcm1kMzIwX2ZpbmFsIH0gfQorfTsKKworc3RhdGljIGludCBfX2luaXQgcm1kMzIwX21vZF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBybWQzMjBfbW9kX2Zpbmkodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK21vZHVsZV9pbml0KHJtZDMyMF9tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChybWQzMjBfbW9kX2ZpbmkpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlJJUEVNRC0zMjAgTWVzc2FnZSBEaWdlc3QiKTsKKworTU9EVUxFX0FMSUFTKCJybWQzMjAiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by90Y3J5cHQuYyBiL2NyeXB0by90Y3J5cHQuYwppbmRleCA2YmVhYmM1Li41OTgyMWEyIDEwMDY0NAotLS0gYS9jcnlwdG8vdGNyeXB0LmMKKysrIGIvY3J5cHRvL3RjcnlwdC5jCkBAIC0xMywxNSArMTMsOSBAQAogICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQogICogYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogMjAwNy0xMS0xMyBBZGRlZCBHQ00gdGVzdHMKLSAqIDIwMDctMTEtMTMgQWRkZWQgQUVBRCBzdXBwb3J0Ci0gKiAyMDA3LTExLTA2IEFkZGVkIFNIQS0yMjQgYW5kIFNIQS0yMjQtSE1BQyB0ZXN0cwotICogMjAwNi0xMi0wNyBBZGRlZCBTSEEzODQgSE1BQyBhbmQgU0hBNTEyIEhNQUMgdGVzdHMKLSAqIDIwMDQtMDgtMDkgQWRkZWQgY2lwaGVyIHNwZWVkIHRlc3RzIChSZXlrIEZsb2V0ZXIgPHJleWtAdmFudHJvbml4Lm5ldD4pCi0gKiAyMDAzLTA5LTE0IFJld3JpdHRlbiBieSBLYXJ0aWtleSBNYWhlbmRyYSBCaGF0dAotICoKICAqLwogCisjaW5jbHVkZSA8Y3J5cHRvL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0zMCw3ICsyNCw2IEBACiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXguaD4KQEAgLTM4LDcgKzMxLDcgQEAKICNpbmNsdWRlICJ0Y3J5cHQuaCIKIAogLyoKLSAqIE5lZWQgdG8ga21hbGxvYygpIG1lbW9yeSBmb3IgdGVzdGluZyBrbWFwKCkuCisgKiBOZWVkIHRvIGttYWxsb2MoKSBtZW1vcnkgZm9yIHRlc3RpbmcuCiAgKi8KICNkZWZpbmUgVFZNRU1TSVpFCTE2Mzg0CiAjZGVmaW5lIFhCVUZTSVpFCTMyNzY4CkBAIC00Niw3ICszOSw3IEBACiAvKgogICogSW5kZXhlcyBpbnRvIHRoZSB4YnVmIHRvIHNpbXVsYXRlIGNyb3NzLXBhZ2UgYWNjZXNzLgogICovCi0jZGVmaW5lIElEWDEJCTM3CisjZGVmaW5lIElEWDEJCTMyCiAjZGVmaW5lIElEWDIJCTMyNDAwCiAjZGVmaW5lIElEWDMJCTEKICNkZWZpbmUgSURYNAkJODE5MwpAQCAtODMsNyArNzYsOCBAQAogCSJibG93ZmlzaCIsICJ0d29maXNoIiwgInNlcnBlbnQiLCAic2hhMzg0IiwgInNoYTUxMiIsICJtZDQiLCAiYWVzIiwKIAkiY2FzdDYiLCAiYXJjNCIsICJtaWNoYWVsX21pYyIsICJkZWZsYXRlIiwgImNyYzMyYyIsICJ0ZWEiLCAieHRlYSIsCiAJImtoYXphZCIsICJ3cDUxMiIsICJ3cDM4NCIsICJ3cDI1NiIsICJ0bmVwcmVzIiwgInhldGEiLCAgImZjcnlwdCIsCi0JImNhbWVsbGlhIiwgInNlZWQiLCAic2Fsc2EyMCIsICJsem8iLCAiY3RzIiwgTlVMTAorCSJjYW1lbGxpYSIsICJzZWVkIiwgInNhbHNhMjAiLCAicm1kMTI4IiwgInJtZDE2MCIsICJybWQyNTYiLCAicm1kMzIwIiwKKwkibHpvIiwgImN0cyIsIE5VTEwKIH07CiAKIHN0YXRpYyB2b2lkIGhleGR1bXAodW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTEwLDIyICsxMDQsMzAgQEAKIAl1bnNpZ25lZCBpbnQgaSwgaiwgaywgdGVtcDsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dbOF07CiAJY2hhciByZXN1bHRbNjRdOwotCXN0cnVjdCBjcnlwdG9faGFzaCAqdGZtOwotCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm07CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcTsKKwlzdHJ1Y3QgdGNyeXB0X3Jlc3VsdCB0cmVzdWx0OwogCWludCByZXQ7CiAJdm9pZCAqaGFzaF9idWZmOwogCiAJcHJpbnRrKCJcbnRlc3RpbmcgJXNcbiIsIGFsZ28pOwogCi0JdGZtID0gY3J5cHRvX2FsbG9jX2hhc2goYWxnbywgMCwgQ1JZUFRPX0FMR19BU1lOQyk7CisJaW5pdF9jb21wbGV0aW9uKCZ0cmVzdWx0LmNvbXBsZXRpb24pOworCisJdGZtID0gY3J5cHRvX2FsbG9jX2FoYXNoKGFsZ28sIDAsIDApOwogCWlmIChJU19FUlIodGZtKSkgewogCQlwcmludGsoImZhaWxlZCB0byBsb2FkIHRyYW5zZm9ybSBmb3IgJXM6ICVsZFxuIiwgYWxnbywKIAkJICAgICAgIFBUUl9FUlIodGZtKSk7CiAJCXJldHVybjsKIAl9CiAKLQlkZXNjLnRmbSA9IHRmbTsKLQlkZXNjLmZsYWdzID0gMDsKKwlyZXEgPSBhaGFzaF9yZXF1ZXN0X2FsbG9jKHRmbSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyZXEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdCBmb3IgJXNcbiIsIGFsZ28pOworCQlnb3RvIG91dF9ub3JlcTsKKwl9CisJYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCBDUllQVE9fVEZNX1JFUV9NQVlfQkFDS0xPRywKKwkJCQkgICB0Y3J5cHRfY29tcGxldGUsICZ0cmVzdWx0KTsKIAogCWZvciAoaSA9IDA7IGkgPCB0Y291bnQ7IGkrKykgewogCQlwcmludGsoInRlc3QgJXU6XG4iLCBpICsgMSk7CkBAIC0xMzksOCArMTQxLDkgQEAKIAkJc2dfaW5pdF9vbmUoJnNnWzBdLCBoYXNoX2J1ZmYsIHRlbXBsYXRlW2ldLnBzaXplKTsKIAogCQlpZiAodGVtcGxhdGVbaV0ua3NpemUpIHsKLQkJCXJldCA9IGNyeXB0b19oYXNoX3NldGtleSh0Zm0sIHRlbXBsYXRlW2ldLmtleSwKLQkJCQkJCSB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CisJCQljcnlwdG9fYWhhc2hfY2xlYXJfZmxhZ3ModGZtLCB+MCk7CisJCQlyZXQgPSBjcnlwdG9fYWhhc2hfc2V0a2V5KHRmbSwgdGVtcGxhdGVbaV0ua2V5LAorCQkJCQkJICB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CiAJCQlpZiAocmV0KSB7CiAJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwogCQkJCWtmcmVlKGhhc2hfYnVmZik7CkBAIC0xNDgsMTcgKzE1MSwzMCBAQAogCQkJfQogCQl9CiAKLQkJcmV0ID0gY3J5cHRvX2hhc2hfZGlnZXN0KCZkZXNjLCBzZywgdGVtcGxhdGVbaV0ucHNpemUsIHJlc3VsdCk7Ci0JCWlmIChyZXQpIHsKKwkJYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCBzZywgcmVzdWx0LCB0ZW1wbGF0ZVtpXS5wc2l6ZSk7CisJCXJldCA9IGNyeXB0b19haGFzaF9kaWdlc3QocmVxKTsKKwkJc3dpdGNoIChyZXQpIHsKKwkJY2FzZSAwOgorCQkJYnJlYWs7CisJCWNhc2UgLUVJTlBST0dSRVNTOgorCQljYXNlIC1FQlVTWToKKwkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgKKwkJCQkmdHJlc3VsdC5jb21wbGV0aW9uKTsKKwkJCWlmICghcmV0ICYmICEocmV0ID0gdHJlc3VsdC5lcnIpKSB7CisJCQkJSU5JVF9DT01QTEVUSU9OKHRyZXN1bHQuY29tcGxldGlvbik7CisJCQkJYnJlYWs7CisJCQl9CisJCQkvKiBmYWxsIHRocm91Z2ggKi8KKwkJZGVmYXVsdDoKIAkJCXByaW50aygiZGlnZXN0ICgpIGZhaWxlZCByZXQ9JWRcbiIsIHJldCk7CiAJCQlrZnJlZShoYXNoX2J1ZmYpOwogCQkJZ290byBvdXQ7CiAJCX0KIAotCQloZXhkdW1wKHJlc3VsdCwgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKTsKKwkJaGV4ZHVtcChyZXN1bHQsIGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHRmbSkpOwogCQlwcmludGsoIiVzXG4iLAogCQkgICAgICAgbWVtY21wKHJlc3VsdCwgdGVtcGxhdGVbaV0uZGlnZXN0LAotCQkJICAgICAgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CisJCQkgICAgICBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CiAJCSAgICAgICAiZmFpbCIgOiAicGFzcyIpOwogCQlrZnJlZShoYXNoX2J1ZmYpOwogCX0KQEAgLTE4Nyw4ICsyMDMsOSBAQAogCQkJfQogCiAJCQlpZiAodGVtcGxhdGVbaV0ua3NpemUpIHsKLQkJCQlyZXQgPSBjcnlwdG9faGFzaF9zZXRrZXkodGZtLCB0ZW1wbGF0ZVtpXS5rZXksCi0JCQkJCQkJIHRlbXBsYXRlW2ldLmtzaXplKTsKKwkJCQljcnlwdG9fYWhhc2hfY2xlYXJfZmxhZ3ModGZtLCB+MCk7CisJCQkJcmV0ID0gY3J5cHRvX2FoYXNoX3NldGtleSh0Zm0sIHRlbXBsYXRlW2ldLmtleSwKKwkJCQkJCQkgIHRlbXBsYXRlW2ldLmtzaXplKTsKIAogCQkJCWlmIChyZXQpIHsKIAkJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwpAQCAtMTk2LDI5ICsyMTMsNDQgQEAKIAkJCQl9CiAJCQl9CiAKLQkJCXJldCA9IGNyeXB0b19oYXNoX2RpZ2VzdCgmZGVzYywgc2csIHRlbXBsYXRlW2ldLnBzaXplLAotCQkJCQkJIHJlc3VsdCk7Ci0JCQlpZiAocmV0KSB7CisJCQlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChyZXEsIHNnLCByZXN1bHQsCisJCQkJCQl0ZW1wbGF0ZVtpXS5wc2l6ZSk7CisJCQlyZXQgPSBjcnlwdG9fYWhhc2hfZGlnZXN0KHJlcSk7CisJCQlzd2l0Y2ggKHJldCkgeworCQkJY2FzZSAwOgorCQkJCWJyZWFrOworCQkJY2FzZSAtRUlOUFJPR1JFU1M6CisJCQljYXNlIC1FQlVTWToKKwkJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoCisJCQkJCSZ0cmVzdWx0LmNvbXBsZXRpb24pOworCQkJCWlmICghcmV0ICYmICEocmV0ID0gdHJlc3VsdC5lcnIpKSB7CisJCQkJCUlOSVRfQ09NUExFVElPTih0cmVzdWx0LmNvbXBsZXRpb24pOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJLyogZmFsbCB0aHJvdWdoICovCisJCQlkZWZhdWx0OgogCQkJCXByaW50aygiZGlnZXN0ICgpIGZhaWxlZCByZXQ9JWRcbiIsIHJldCk7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCWhleGR1bXAocmVzdWx0LCBjcnlwdG9faGFzaF9kaWdlc3RzaXplKHRmbSkpOworCQkJaGV4ZHVtcChyZXN1bHQsIGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHRmbSkpOwogCQkJcHJpbnRrKCIlc1xuIiwKIAkJCSAgICAgICBtZW1jbXAocmVzdWx0LCB0ZW1wbGF0ZVtpXS5kaWdlc3QsCi0JCQkJICAgICAgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CisJCQkJICAgICAgY3J5cHRvX2FoYXNoX2RpZ2VzdHNpemUodGZtKSkgPwogCQkJICAgICAgICJmYWlsIiA6ICJwYXNzIik7CiAJCX0KIAl9CiAKIG91dDoKLQljcnlwdG9fZnJlZV9oYXNoKHRmbSk7CisJYWhhc2hfcmVxdWVzdF9mcmVlKHJlcSk7CitvdXRfbm9yZXE6CisJY3J5cHRvX2ZyZWVfYWhhc2godGZtKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdF9hZWFkKGNoYXIgKmFsZ28sIGludCBlbmMsIHN0cnVjdCBhZWFkX3Rlc3R2ZWMgKnRlbXBsYXRlLAogCQkgICAgICB1bnNpZ25lZCBpbnQgdGNvdW50KQogewotCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIHRlbXA7CisJdW5zaWduZWQgaW50IHJldCwgaSwgaiwgaywgbiwgdGVtcDsKIAljaGFyICpxOwogCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtOwogCWNoYXIgKmtleTsKQEAgLTM0NCwxMyArMzc2LDEyIEBACiAJCQkJZ290byBuZXh0X29uZTsKIAkJCX0KIAotCQkJcSA9IGttYXAoc2dfcGFnZSgmc2dbMF0pKSArIHNnWzBdLm9mZnNldDsKKwkJCXEgPSBpbnB1dDsKIAkJCWhleGR1bXAocSwgdGVtcGxhdGVbaV0ucmxlbik7CiAKIAkJCXByaW50ayhLRVJOX0lORk8gImVuYy9kZWM6ICVzXG4iLAogCQkJICAgICAgIG1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQsCiAJCQkJICAgICAgdGVtcGxhdGVbaV0ucmxlbikgPyAiZmFpbCIgOiAicGFzcyIpOwotCQkJa3VubWFwKHNnX3BhZ2UoJnNnWzBdKSk7CiBuZXh0X29uZToKIAkJCWlmICghdGVtcGxhdGVbaV0ua2V5KQogCQkJCWtmcmVlKGtleSk7CkBAIC0zNjAsNyArMzkxLDYgQEAKIAl9CiAKIAlwcmludGsoS0VSTl9JTkZPICJcbnRlc3RpbmcgJXMgJXMgYWNyb3NzIHBhZ2VzIChjaHVua2luZylcbiIsIGFsZ28sIGUpOwotCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJbWVtc2V0KGF4YnVmLCAwLCBYQlVGU0laRSk7CiAKIAlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHRjb3VudDsgaSsrKSB7CkBAIC0zODgsNiArNDE4LDcgQEAKIAkJCQkJZ290byBvdXQ7CiAJCQl9CiAKKwkJCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJCQlzZ19pbml0X3RhYmxlKHNnLCB0ZW1wbGF0ZVtpXS5ucCk7CiAJCQlmb3IgKGsgPSAwLCB0ZW1wID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQltZW1jcHkoJnhidWZbSURYW2tdXSwKQEAgLTQ1MCw3ICs0ODEsNyBAQAogCiAJCQlmb3IgKGsgPSAwLCB0ZW1wID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQlwcmludGsoS0VSTl9JTkZPICJwYWdlICV1XG4iLCBrKTsKLQkJCQlxID0ga21hcChzZ19wYWdlKCZzZ1trXSkpICsgc2dba10ub2Zmc2V0OworCQkJCXEgPSAmYXhidWZbSURYW2tdXTsKIAkJCQloZXhkdW1wKHEsIHRlbXBsYXRlW2ldLnRhcFtrXSk7CiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXNcbiIsCiAJCQkJICAgICAgIG1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQgKyB0ZW1wLApAQCAtNDU5LDggKzQ5MCwxNSBAQAogCQkJCQkgICAgICAgMCA6IGF1dGhzaXplKSkgPwogCQkJCSAgICAgICAiZmFpbCIgOiAicGFzcyIpOwogCisJCQkJZm9yIChuID0gMDsgcVt0ZW1wbGF0ZVtpXS50YXBba10gKyBuXTsgbisrKQorCQkJCQk7CisJCQkJaWYgKG4pIHsKKwkJCQkJcHJpbnRrKCJSZXN1bHQgYnVmZmVyIGNvcnJ1cHRpb24gJXUgIgorCQkJCQkgICAgICAgImJ5dGVzOlxuIiwgbik7CisJCQkJCWhleGR1bXAoJnFbdGVtcGxhdGVbaV0udGFwW2tdXSwgbik7CisJCQkJfQorCiAJCQkJdGVtcCArPSB0ZW1wbGF0ZVtpXS50YXBba107Ci0JCQkJa3VubWFwKHNnX3BhZ2UoJnNnW2tdKSk7CiAJCQl9CiAJCX0KIAl9CkBAIC00NzMsNyArNTExLDcgQEAKIHN0YXRpYyB2b2lkIHRlc3RfY2lwaGVyKGNoYXIgKmFsZ28sIGludCBlbmMsCiAJCQlzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgKnRlbXBsYXRlLCB1bnNpZ25lZCBpbnQgdGNvdW50KQogewotCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIHRlbXA7CisJdW5zaWduZWQgaW50IHJldCwgaSwgaiwgaywgbiwgdGVtcDsKIAljaGFyICpxOwogCXN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtOwogCXN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcTsKQEAgLTU2OSwyOSArNjA3LDIxIEBACiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCXEgPSBrbWFwKHNnX3BhZ2UoJnNnWzBdKSkgKyBzZ1swXS5vZmZzZXQ7CisJCQlxID0gZGF0YTsKIAkJCWhleGR1bXAocSwgdGVtcGxhdGVbaV0ucmxlbik7CiAKIAkJCXByaW50aygiJXNcbiIsCiAJCQkgICAgICAgbWVtY21wKHEsIHRlbXBsYXRlW2ldLnJlc3VsdCwKIAkJCQkgICAgICB0ZW1wbGF0ZVtpXS5ybGVuKSA/ICJmYWlsIiA6ICJwYXNzIik7Ci0JCQlrdW5tYXAoc2dfcGFnZSgmc2dbMF0pKTsKIAkJfQogCQlrZnJlZShkYXRhKTsKIAl9CiAKIAlwcmludGsoIlxudGVzdGluZyAlcyAlcyBhY3Jvc3MgcGFnZXMgKGNodW5raW5nKVxuIiwgYWxnbywgZSk7Ci0JbWVtc2V0KHhidWYsIDAsIFhCVUZTSVpFKTsKIAogCWogPSAwOwogCWZvciAoaSA9IDA7IGkgPCB0Y291bnQ7IGkrKykgewogCi0JCWRhdGEgPSBremFsbG9jKHRlbXBsYXRlW2ldLmlsZW4sIEdGUF9LRVJORUwpOwotCQlpZiAoIWRhdGEpCi0JCQljb250aW51ZTsKLQotCQltZW1jcHkoZGF0YSwgdGVtcGxhdGVbaV0uaW5wdXQsIHRlbXBsYXRlW2ldLmlsZW4pOwotCiAJCWlmICh0ZW1wbGF0ZVtpXS5pdikKIAkJCW1lbWNweShpdiwgdGVtcGxhdGVbaV0uaXYsIE1BWF9JVkxFTik7CiAJCWVsc2UKQEAgLTYwMiw2ICs2MzIsNyBAQAogCQkJcHJpbnRrKCJ0ZXN0ICV1ICglZCBiaXQga2V5KTpcbiIsCiAJCQlqLCB0ZW1wbGF0ZVtpXS5rbGVuICogOCk7CiAKKwkJCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJCQljcnlwdG9fYWJsa2NpcGhlcl9jbGVhcl9mbGFncyh0Zm0sIH4wKTsKIAkJCWlmICh0ZW1wbGF0ZVtpXS53aykKIAkJCQljcnlwdG9fYWJsa2NpcGhlcl9zZXRfZmxhZ3MoCkBAIC02MTMsMTAgKzY0NCw4IEBACiAJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgZmxhZ3M9JXhcbiIsCiAJCQkJCQljcnlwdG9fYWJsa2NpcGhlcl9nZXRfZmxhZ3ModGZtKSk7CiAKLQkJCQlpZiAoIXRlbXBsYXRlW2ldLmZhaWwpIHsKLQkJCQkJa2ZyZWUoZGF0YSk7CisJCQkJaWYgKCF0ZW1wbGF0ZVtpXS5mYWlsKQogCQkJCQlnb3RvIG91dDsKLQkJCQl9CiAJCQl9CiAKIAkJCXRlbXAgPSAwOwpAQCAtNjU3LDE0ICs2ODYsMjEgQEAKIAkJCXRlbXAgPSAwOwogCQkJZm9yIChrID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQlwcmludGsoInBhZ2UgJXVcbiIsIGspOwotCQkJCXEgPSBrbWFwKHNnX3BhZ2UoJnNnW2tdKSkgKyBzZ1trXS5vZmZzZXQ7CisJCQkJcSA9ICZ4YnVmW0lEWFtrXV07CiAJCQkJaGV4ZHVtcChxLCB0ZW1wbGF0ZVtpXS50YXBba10pOwogCQkJCXByaW50aygiJXNcbiIsCiAJCQkJCW1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQgKyB0ZW1wLAogCQkJCQkJdGVtcGxhdGVbaV0udGFwW2tdKSA/ICJmYWlsIiA6CiAJCQkJCSJwYXNzIik7CisKKwkJCQlmb3IgKG4gPSAwOyBxW3RlbXBsYXRlW2ldLnRhcFtrXSArIG5dOyBuKyspCisJCQkJCTsKKwkJCQlpZiAobikgeworCQkJCQlwcmludGsoIlJlc3VsdCBidWZmZXIgY29ycnVwdGlvbiAldSAiCisJCQkJCSAgICAgICAiYnl0ZXM6XG4iLCBuKTsKKwkJCQkJaGV4ZHVtcCgmcVt0ZW1wbGF0ZVtpXS50YXBba11dLCBuKTsKKwkJCQl9CiAJCQkJdGVtcCArPSB0ZW1wbGF0ZVtpXS50YXBba107Ci0JCQkJa3VubWFwKHNnX3BhZ2UoJnNnW2tdKSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0xMTgwLDYgKzEyMTYsMTQgQEAKIAkJdGVzdF9jaXBoZXIoImVjYihkZXMzX2VkZSkiLCBERUNSWVBULCBkZXMzX2VkZV9kZWNfdHZfdGVtcGxhdGUsCiAJCQkgICAgREVTM19FREVfREVDX1RFU1RfVkVDVE9SUyk7CiAKKwkJdGVzdF9jaXBoZXIoImNiYyhkZXMzX2VkZSkiLCBFTkNSWVBULAorCQkJICAgIGRlczNfZWRlX2NiY19lbmNfdHZfdGVtcGxhdGUsCisJCQkgICAgREVTM19FREVfQ0JDX0VOQ19URVNUX1ZFQ1RPUlMpOworCisJCXRlc3RfY2lwaGVyKCJjYmMoZGVzM19lZGUpIiwgREVDUllQVCwKKwkJCSAgICBkZXMzX2VkZV9jYmNfZGVjX3R2X3RlbXBsYXRlLAorCQkJICAgIERFUzNfRURFX0NCQ19ERUNfVEVTVF9WRUNUT1JTKTsKKwogCQl0ZXN0X2hhc2goIm1kNCIsIG1kNF90dl90ZW1wbGF0ZSwgTUQ0X1RFU1RfVkVDVE9SUyk7CiAKIAkJdGVzdF9oYXNoKCJzaGEyMjQiLCBzaGEyMjRfdHZfdGVtcGxhdGUsIFNIQTIyNF9URVNUX1ZFQ1RPUlMpOwpAQCAtMTM5MCw2ICsxNDM0LDE0IEBACiAJCQkgICAgREVTM19FREVfRU5DX1RFU1RfVkVDVE9SUyk7CiAJCXRlc3RfY2lwaGVyKCJlY2IoZGVzM19lZGUpIiwgREVDUllQVCwgZGVzM19lZGVfZGVjX3R2X3RlbXBsYXRlLAogCQkJICAgIERFUzNfRURFX0RFQ19URVNUX1ZFQ1RPUlMpOworCisJCXRlc3RfY2lwaGVyKCJjYmMoZGVzM19lZGUpIiwgRU5DUllQVCwKKwkJCSAgICBkZXMzX2VkZV9jYmNfZW5jX3R2X3RlbXBsYXRlLAorCQkJICAgIERFUzNfRURFX0NCQ19FTkNfVEVTVF9WRUNUT1JTKTsKKworCQl0ZXN0X2NpcGhlcigiY2JjKGRlczNfZWRlKSIsIERFQ1JZUFQsCisJCQkgICAgZGVzM19lZGVfY2JjX2RlY190dl90ZW1wbGF0ZSwKKwkJCSAgICBERVMzX0VERV9DQkNfREVDX1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwogCiAJY2FzZSA1OgpAQCAtMTU1OCw3ICsxNjEwLDcgQEAKIAljYXNlIDI5OgogCQl0ZXN0X2hhc2goInRncjEyOCIsIHRncjEyOF90dl90ZW1wbGF0ZSwgVEdSMTI4X1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwotCQkKKwogCWNhc2UgMzA6CiAJCXRlc3RfY2lwaGVyKCJlY2IoeGV0YSkiLCBFTkNSWVBULCB4ZXRhX2VuY190dl90ZW1wbGF0ZSwKIAkJCSAgICBYRVRBX0VOQ19URVNUX1ZFQ1RPUlMpOwpAQCAtMTYyMyw2ICsxNjc1LDIyIEBACiAJCQkgICAgQ1RTX01PREVfREVDX1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwogCisgICAgICAgIGNhc2UgMzk6CisJCXRlc3RfaGFzaCgicm1kMTI4Iiwgcm1kMTI4X3R2X3RlbXBsYXRlLCBSTUQxMjhfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKyAgICAgICAgY2FzZSA0MDoKKwkJdGVzdF9oYXNoKCJybWQxNjAiLCBybWQxNjBfdHZfdGVtcGxhdGUsIFJNRDE2MF9URVNUX1ZFQ1RPUlMpOworCQlicmVhazsKKworCWNhc2UgNDE6CisJCXRlc3RfaGFzaCgicm1kMjU2Iiwgcm1kMjU2X3R2X3RlbXBsYXRlLCBSTUQyNTZfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKwljYXNlIDQyOgorCQl0ZXN0X2hhc2goInJtZDMyMCIsIHJtZDMyMF90dl90ZW1wbGF0ZSwgUk1EMzIwX1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCiAJY2FzZSAxMDA6CiAJCXRlc3RfaGFzaCgiaG1hYyhtZDUpIiwgaG1hY19tZDVfdHZfdGVtcGxhdGUsCiAJCQkgIEhNQUNfTUQ1X1RFU1RfVkVDVE9SUyk7CkBAIC0xNjU4LDYgKzE3MjYsMTYgQEAKIAkJCSAgWENCQ19BRVNfVEVTVF9WRUNUT1JTKTsKIAkJYnJlYWs7CiAKKwljYXNlIDEwNzoKKwkJdGVzdF9oYXNoKCJobWFjKHJtZDEyOCkiLCBobWFjX3JtZDEyOF90dl90ZW1wbGF0ZSwKKwkJCSAgSE1BQ19STUQxMjhfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKwljYXNlIDEwODoKKwkJdGVzdF9oYXNoKCJobWFjKHJtZDE2MCkiLCBobWFjX3JtZDE2MF90dl90ZW1wbGF0ZSwKKwkJCSAgSE1BQ19STUQxNjBfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKIAljYXNlIDIwMDoKIAkJdGVzdF9jaXBoZXJfc3BlZWQoImVjYihhZXMpIiwgRU5DUllQVCwgc2VjLCBOVUxMLCAwLAogCQkJCXNwZWVkX3RlbXBsYXRlXzE2XzI0XzMyKTsKQEAgLTE3OTYsNiArMTg3NCwyMiBAQAogCQl0ZXN0X2hhc2hfc3BlZWQoInNoYTIyNCIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKIAkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7CiAKKwljYXNlIDMxNDoKKwkJdGVzdF9oYXNoX3NwZWVkKCJybWQxMjgiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CisJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOworCisJY2FzZSAzMTU6CisJCXRlc3RfaGFzaF9zcGVlZCgicm1kMTYwIiwgc2VjLCBnZW5lcmljX2hhc2hfc3BlZWRfdGVtcGxhdGUpOworCQlpZiAobW9kZSA+IDMwMCAmJiBtb2RlIDwgNDAwKSBicmVhazsKKworCWNhc2UgMzE2OgorCQl0ZXN0X2hhc2hfc3BlZWQoInJtZDI1NiIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKKwkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7CisKKwljYXNlIDMxNzoKKwkJdGVzdF9oYXNoX3NwZWVkKCJybWQzMjAiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CisJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOworCiAJY2FzZSAzOTk6CiAJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vdGNyeXB0LmggYi9jcnlwdG8vdGNyeXB0LmgKaW5kZXggNDdiYzBlYy4uODAxZTBjMiAxMDA2NDQKLS0tIGEvY3J5cHRvL3RjcnlwdC5oCisrKyBiL2NyeXB0by90Y3J5cHQuaApAQCAtMTMsMTIgKzEzLDYgQEAKICAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKICAqIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqIDIwMDctMTEtMTMgQWRkZWQgR0NNIHRlc3RzCi0gKiAyMDA3LTExLTEzIEFkZGVkIEFFQUQgc3VwcG9ydAotICogMjAwNi0xMi0wNyBBZGRlZCBTSEEzODQgSE1BQyBhbmQgU0hBNTEyIEhNQUMgdGVzdHMKLSAqIDIwMDQtMDgtMDkgQ2lwaGVyIHNwZWVkIHRlc3RzIGJ5IFJleWsgRmxvZXRlciA8cmV5a0B2YW50cm9uaXgubmV0PgotICogMjAwMy0wOS0xNCBDaGFuZ2VzIGJ5IEthcnRpa2V5IE1haGVuZHJhIEJoYXR0Ci0gKgogICovCiAjaWZuZGVmIF9DUllQVE9fVENSWVBUX0gKICNkZWZpbmUgX0NSWVBUT19UQ1JZUFRfSApAQCAtMTY4LDYgKzE2MiwyNzEgQEAKIAkJLmRpZ2VzdAk9ICJceDU3XHhlZFx4ZjRceGEyXHgyYlx4ZTNceGM5XHg1NSIKIAkJCSAgIlx4YWNceDQ5XHhkYVx4MmVceDIxXHgwN1x4YjZceDdhIiwKIAl9CisKK307CisKKy8qCisgKiBSSVBFTUQtMTI4IHRlc3QgdmVjdG9ycyBmcm9tIElTTy9JRUMgMTAxMTgtMzoyMDA0KEUpCisgKi8KKyNkZWZpbmUgUk1EMTI4X1RFU1RfVkVDVE9SUyAgICAgMTAKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMTI4X3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4Y2RceGYyXHg2Mlx4MTNceGExXHg1MFx4ZGNceDNlIgorCQkJICAiXHhjYlx4NjFceDBmXHgxOFx4ZjZceGIzXHg4Ylx4NDYiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhIiwKKwkJLnBzaXplCT0gMSwKKwkJLmRpZ2VzdAk9ICJceDg2XHhiZVx4N2FceGZhXHgzM1x4OWRceDBmXHhjNyIKKwkJCSAgIlx4Y2ZceGM3XHg4NVx4ZTdceDJmXHg1N1x4OGRceDMzIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGMxXHg0YVx4MTJceDE5XHg5Y1x4NjZceGU0XHhiYSIKKwkJCSAgIlx4ODRceDYzXHg2Ylx4MGZceDY5XHgxNFx4NGNceDc3IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDllXHgzMlx4N2JceDNkXHg2ZVx4NTJceDMwXHg2MiIKKwkJCSAgIlx4YWZceGMxXHgxM1x4MmRceDdkXHhmOVx4ZDFceGI4IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorCQkucHNpemUJPSAyNiwKKwkJLmRpZ2VzdAk9ICJceGZkXHgyYVx4YTZceDA3XHhmN1x4MWRceGM4XHhmNSIKKwkJCSAgIlx4MTBceDcxXHg0OVx4MjJceGIzXHg3MVx4ODNceDRlIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceGQxXHhlOVx4NTlceGViXHgxN1x4OWNceDkxXHgxZiIKKwkJCSAgIlx4YWVceGE0XHg2Mlx4NGNceDYwXHhjNVx4YzdceDAyIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDNmXHg0NVx4ZWZceDE5XHg0N1x4MzJceGMyXHhkYiIKKwkJCSAgIlx4YjJceGM0XHhhMlx4YzdceDY5XHg3OVx4NWZceGEzIiwKKyAgICAgICAgfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWoiCisJCQkgICAgICJoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiwKKwkJLnBzaXplCT0gNTYsCisJCS5kaWdlc3QJPSAiXHhhMVx4YWFceDA2XHg4OVx4ZDBceGZhXHhmYVx4MmQiCisJCQkgICJceGRjXHgyMlx4ZThceDhiXHg0OVx4MTNceDNhXHgwNiIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGJjZGVmZ2hpY2RlZmdoaWpkZWZnaGlqa2VmZ2hpamtsZmdoaSIKKwkJCSAgICAgImprbG1naGlqa2xtbmhpamtsbW5vaWprbG1ub3Bqa2xtbm9wcWtsbW5vcHFyIgorCQkJICAgICAibG1ub3BxcnNtbm9wcXJzdG5vcHFyc3R1IiwKKwkJLnBzaXplCT0gMTEyLAorCQkuZGlnZXN0CT0gIlx4ZDRceGVjXHhjOVx4MTNceGUxXHhkZlx4NzdceDZiIgorCQkJICAiXHhmNFx4OGRceGU5XHhkNVx4NWJceDFmXHgyNVx4NDYiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqayIsCisJCS5wc2l6ZQk9IDMyLAorCQkuZGlnZXN0CT0gIlx4MTNceGZjXHgxM1x4ZThceGVmXHhmZlx4MzRceDdkIgorCQkJICAiXHhlMVx4OTNceGZmXHg0Nlx4ZGJceGFjXHhjZlx4ZDQiLAorCX0KK307CisKKy8qCisgKiBSSVBFTUQtMTYwIHRlc3QgdmVjdG9ycyBmcm9tIElTTy9JRUMgMTAxMTgtMzoyMDA0KEUpCisgKi8KKyNkZWZpbmUgUk1EMTYwX1RFU1RfVkVDVE9SUyAgICAgMTAKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMTYwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4OWNceDExXHg4NVx4YTVceGM1XHhlOVx4ZmNceDU0XHg2MVx4MjgiCisJCQkgICJceDA4XHg5N1x4N2VceGU4XHhmNVx4NDhceGIyXHgyNVx4OGRceDMxIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYSIsCisJCS5wc2l6ZQk9IDEsCisJCS5kaWdlc3QJPSAiXHgwYlx4ZGNceDlkXHgyZFx4MjVceDZiXHgzZVx4ZTlceGRhXHhhZSIKKwkJCSAgIlx4MzRceDdiXHhlNlx4ZjRceGRjXHg4M1x4NWFceDQ2XHg3Zlx4ZmUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmMiLAorCQkucHNpemUJPSAzLAorCQkuZGlnZXN0CT0gIlx4OGVceGIyXHgwOFx4ZjdceGUwXHg1ZFx4OThceDdhXHg5Ylx4MDQiCisJCQkgICJceDRhXHg4ZVx4OThceGM2XHhiMFx4ODdceGYxXHg1YVx4MGJceGZjIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDVkXHgwNlx4ODlceGVmXHg0OVx4ZDJceGZhXHhlNVx4NzJceGI4IgorCQkJICAiXHg4MVx4YjFceDIzXHhhOFx4NWZceGZhXHgyMVx4NTlceDVmXHgzNiIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKwkJLnBzaXplCT0gMjYsCisJCS5kaWdlc3QJPSAiXHhmN1x4MWNceDI3XHgxMFx4OWNceDY5XHgyY1x4MWJceDU2XHhiYiIKKwkJCSAgIlx4ZGNceGViXHg1Ylx4OWRceDI4XHg2NVx4YjNceDcwXHg4ZFx4YmMiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlIgorCQkJICAgICAiZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIsCisJCS5wc2l6ZQk9IDYyLAorCQkuZGlnZXN0CT0gIlx4YjBceGUyXHgwYlx4NmVceDMxXHgxNlx4NjRceDAyXHg4Nlx4ZWQiCisJCQkgICJceDNhXHg4N1x4YTVceDcxXHgzMFx4NzlceGIyXHgxZlx4NTFceDg5IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDliXHg3NVx4MmVceDQ1XHg1N1x4M2RceDRiXHgzOVx4ZjRceGRiIgorCQkJICAiXHhkM1x4MzJceDNjXHhhYlx4ODJceGJmXHg2M1x4MzJceDZiXHhmYiIsCisgICAgICAgIH0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqIgorCQkJICAgICAiaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIsCisJCS5wc2l6ZQk9IDU2LAorCQkuZGlnZXN0CT0gIlx4MTJceGEwXHg1M1x4MzhceDRhXHg5Y1x4MGNceDg4XHhlNFx4MDUiCisJCQkgICJceGEwXHg2Y1x4MjdceGRjXHhmNFx4OWFceGRhXHg2Mlx4ZWJceDJiIiwKKwkJLm5wCT0gMiwKKwkJLnRhcAk9IHsgMjgsIDI4IH0sCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoYmNkZWZnaGljZGVmZ2hpamRlZmdoaWprZWZnaGlqa2xmZ2hpIgorCQkJICAgICAiamtsbWdoaWprbG1uaGlqa2xtbm9pamtsbW5vcGprbG1ub3Bxa2xtbm9wcXIiCisJCQkgICAgICJsbW5vcHFyc21ub3BxcnN0bm9wcXJzdHUiLAorCQkucHNpemUJPSAxMTIsCisJCS5kaWdlc3QJPSAiXHg2Zlx4M2ZceGEzXHg5Ylx4NmJceDUwXHgzY1x4MzhceDRmXHg5MSIKKwkJCSAgIlx4OWFceDQ5XHhhN1x4YWFceDVjXHgyY1x4MDhceGJkXHhmYlx4NDUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqayIsCisJCS5wc2l6ZQk9IDMyLAorCQkuZGlnZXN0CT0gIlx4OTRceGMyXHg2NFx4MTFceDU0XHgwNFx4ZTZceDMzXHg3OVx4MGQiCisJCQkgICJceGZjXHhjOFx4N2JceDU4XHg3ZFx4MzZceDc3XHgwNlx4N2RceDlmIiwKKwl9Cit9OworCisvKgorICogUklQRU1ELTI1NiB0ZXN0IHZlY3RvcnMKKyAqLworI2RlZmluZSBSTUQyNTZfVEVTVF9WRUNUT1JTICAgICA4CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIHJtZDI1Nl90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmRpZ2VzdAk9ICJceDAyXHhiYVx4NGNceDRlXHg1Zlx4OGVceGNkXHgxOCIKKwkJCSAgIlx4NzdceGZjXHg1Mlx4ZDZceDRkXHgzMFx4ZTNceDdhIgorCQkJICAiXHgyZFx4OTdceDc0XHhmYlx4MWVceDVkXHgwMlx4NjMiCisJCQkgICJceDgwXHhhZVx4MDFceDY4XHhlM1x4YzVceDUyXHgyZCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImEiLAorCQkucHNpemUJPSAxLAorCQkuZGlnZXN0CT0gIlx4ZjlceDMzXHgzZVx4NDVceGQ4XHg1N1x4ZjVceGQ5IgorCQkJICAiXHgwYVx4OTFceGJhXHhiN1x4MGFceDFlXHhiYVx4MGMiCisJCQkgICJceGZiXHgxYlx4ZTRceGIwXHg3OFx4M2NceDlhXHhjZiIKKwkJCSAgIlx4Y2RceDg4XHgzYVx4OTFceDM0XHg2OVx4MjlceDI1IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGFmXHhiZFx4NmVceDIyXHg4Ylx4OWRceDhjXHhiYiIKKwkJCSAgIlx4Y2VceGY1XHhjYVx4MmRceDAzXHhlNlx4ZGJceGExIgorCQkJICAiXHgwYVx4YzBceGJjXHg3ZFx4Y2JceGU0XHg2OFx4MGUiCisJCQkgICJceDFlXHg0Mlx4ZDJceGU5XHg3NVx4NDVceDliXHg2NSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIm1lc3NhZ2UgZGlnZXN0IiwKKwkJLnBzaXplCT0gMTQsCisJCS5kaWdlc3QJPSAiXHg4N1x4ZTlceDcxXHg3NVx4OWFceDFjXHhlNFx4N2EiCisJCQkgICJceDUxXHg0ZFx4NWNceDkxXHg0Y1x4MzlceDJjXHg5MCIKKwkJCSAgIlx4MThceGM3XHhjNFx4NmJceGMxXHg0NFx4NjVceDU1IgorCQkJICAiXHg0YVx4ZmNceGRmXHg1NFx4YTVceDA3XHgwY1x4MGUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCisJCS5wc2l6ZQk9IDI2LAorCQkuZGlnZXN0CT0gIlx4NjRceDlkXHgzMFx4MzRceDc1XHgxZVx4YTJceDE2IgorCQkJICAiXHg3N1x4NmJceGY5XHhhMVx4OGFceGNjXHg4MVx4YmMiCisJCQkgICJceDc4XHg5Nlx4MTFceDhhXHg1MVx4OTdceDk2XHg4NyIKKwkJCSAgIlx4ODJceGRkXHgxZlx4ZDlceDdkXHg4ZFx4NTFceDMzIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceDU3XHg0MFx4YTRceDA4XHhhY1x4MTZceGI3XHgyMCIKKwkJCSAgIlx4YjhceDQ0XHgyNFx4YWVceDkzXHgxY1x4YmJceDFmIgorCQkJICAiXHhlM1x4NjNceGQxXHhkMFx4YmZceDQwXHgxN1x4ZjEiCisJCQkgICJceGE4XHg5Zlx4N2VceGE2XHhkZVx4NzdceGEwXHhiOCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiCisJCQkgICAgICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwKKwkJLnBzaXplCT0gODAsCisJCS5kaWdlc3QJPSAiXHgwNlx4ZmRceGNjXHg3YVx4NDBceDk1XHg0OFx4YWEiCisJCQkgICJceGY5XHgxM1x4NjhceGMwXHg2YVx4NjJceDc1XHhiNSIKKwkJCSAgIlx4NTNceGUzXHhmMFx4OTlceGJmXHgwZVx4YTRceGVkIgorCQkJICAiXHhmZFx4NjdceDc4XHhkZlx4ODlceGE4XHg5MFx4ZGQiLAorICAgICAgICB9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpaiIKKwkJCSAgICAgImhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiLAorCQkucHNpemUJPSA1NiwKKwkJLmRpZ2VzdAk9ICJceDM4XHg0M1x4MDRceDU1XHg4M1x4YWFceGM2XHhjOCIKKwkJCSAgIlx4YzhceGQ5XHgxMlx4ODVceDczXHhlN1x4YTlceDgwIgorCQkJICAiXHg5YVx4ZmJceDJhXHgwZlx4MzRceGNjXHhjM1x4NmUiCisJCQkgICJceGE5XHhlN1x4MmZceDE2XHhmNlx4MzZceDhlXHgzZiIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0KK307CisKKy8qCisgKiBSSVBFTUQtMzIwIHRlc3QgdmVjdG9ycworICovCisjZGVmaW5lIFJNRDMyMF9URVNUX1ZFQ1RPUlMgICAgIDgKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMzIwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4MjJceGQ2XHg1ZFx4NTZceDYxXHg1M1x4NmNceGRjXHg3NVx4YzEiCisJCQkgICJceGZkXHhmNVx4YzZceGRlXHg3Ylx4NDFceGI5XHhmMlx4NzNceDI1IgorCQkJICAiXHhlYlx4YzZceDFlXHg4NVx4NTdceDE3XHg3ZFx4NzBceDVhXHgwZSIKKwkJCSAgIlx4YzhceDgwXHgxNVx4MWNceDNhXHgzMlx4YTBceDA4XHg5OVx4YjgiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhIiwKKwkJLnBzaXplCT0gMSwKKwkJLmRpZ2VzdAk9ICJceGNlXHg3OFx4ODVceDA2XHgzOFx4ZjlceDI2XHg1OFx4YTVceGE1IgorCQkJICAiXHg4NVx4MDlceDc1XHg3OVx4OTJceDZkXHhkYVx4NjZceDdhXHg1NyIKKwkJCSAgIlx4MTZceDU2XHgyY1x4ZmNceGY2XHhmYlx4ZTdceDdmXHg2M1x4NTQiCisJCQkgICJceDJmXHg5OVx4YjBceDQ3XHgwNVx4ZDZceDk3XHgwZFx4ZmZceDVkIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGRlXHg0Y1x4MDFceGIzXHgwNVx4NGZceDg5XHgzMFx4YTdceDlkIgorCQkJICAiXHgwOVx4YWVceDczXHg4ZVx4OTJceDMwXHgxZVx4NWFceDE3XHgwOCIKKwkJCSAgIlx4NWJceGVmXHhmZFx4YzFceGI4XHhkMVx4MTZceDcxXHgzZVx4NzQiCisJCQkgICJceGY4XHgyZlx4YTlceDQyXHhkNlx4NGNceGRiXHhjNFx4NjhceDJkIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDNhXHg4ZVx4MjhceDUwXHgyZVx4ZDRceDVkXHg0Mlx4MmZceDY4IgorCQkJICAiXHg4NFx4NGZceDlkXHhkM1x4MTZceGU3XHhiOVx4ODVceDMzXHhmYSIKKwkJCSAgIlx4M2ZceDJhXHg5MVx4ZDJceDlmXHg4NFx4ZDRceDI1XHhjOFx4OGQiCisJCQkgICJceDZiXHg0ZVx4ZmZceDcyXHg3ZFx4ZjZceDZhXHg3Y1x4MDFceDk3IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorCQkucHNpemUJPSAyNiwKKwkJLmRpZ2VzdAk9ICJceGNhXHhiZFx4YjFceDgxXHgwYlx4OTJceDQ3XHgwYVx4MjBceDkzIgorCQkJICAiXHhhYVx4NmJceGNlXHgwNVx4OTVceDJjXHgyOFx4MzRceDhjXHhmNCIKKwkJCSAgIlx4M2ZceGY2XHgwOFx4NDFceDk3XHg1MVx4NjZceGJiXHg0MFx4ZWQiCisJCQkgICJceDIzXHg0MFx4MDRceGI4XHg4Mlx4NDRceDYzXHhlNlx4YjBceDA5IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceGVkXHg1NFx4NDlceDQwXHhjOFx4NmRceDY3XHhmMlx4NTBceGQyIgorCQkJICAiXHgzMlx4YzNceDBiXHg3Ylx4M2VceDU3XHg3MFx4ZTBceGM2XHgwYyIKKwkJCSAgIlx4OGNceGI5XHhhNFx4Y2FceGZlXHgzYlx4MTFceDM4XHg4YVx4ZjkiCisJCQkgICJceDkyXHgwZVx4MWJceDk5XHgyM1x4MGJceDg0XHgzY1x4ODZceGE0IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDU1XHg3OFx4ODhceGFmXHg1Zlx4NmRceDhlXHhkNlx4MmFceGI2IgorCQkJICAiXHg2OVx4NDVceGM2XHhkMlx4YTBceGE0XHg3ZVx4Y2RceDUzXHg0MSIKKwkJCSAgIlx4ZTlceDE1XHhlYlx4OGZceGVhXHgxZFx4MDVceDI0XHg5NVx4NWYiCisJCQkgICJceDgyXHg1ZFx4YzdceDE3XHhlNFx4YTBceDA4XHhhYlx4MmRceDQyIiwKKyAgICAgICAgfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWoiCisJCQkgICAgICJoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiwKKwkJLnBzaXplCT0gNTYsCisJCS5kaWdlc3QJPSAiXHhkMFx4MzRceGE3XHg5NVx4MGNceGY3XHgyMlx4MDJceDFiXHhhNCIKKwkJCSAgIlx4YjhceDRkXHhmN1x4NjlceGE1XHhkZVx4MjBceDYwXHhlMlx4NTkiCisJCQkgICJceGRmXHg0Y1x4OWJceGI0XHhhNFx4MjZceDhjXHgwZVx4OTNceDViIgorCQkJICAiXHhiY1x4NzRceDcwXHhhOVx4NjlceGM5XHhkMFx4NzJceGExXHhhYyIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0KIH07CiAKIC8qCkBAIC04MTcsNiArMTA3NiwxNjggQEAKIH07CiAKIC8qCisgKiBITUFDLVJJUEVNRDEyOCB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMyMjg2CisgKi8KKyNkZWZpbmUgSE1BQ19STUQxMjhfVEVTVF9WRUNUT1JTCTcKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgaG1hY19ybWQxMjhfdHZfdGVtcGxhdGVbXSA9IHsKKwl7CisJCS5rZXkJPSAiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYiIsCisJCS5rc2l6ZQk9IDE2LAorCQkucGxhaW50ZXh0ID0gIkhpIFRoZXJlIiwKKwkJLnBzaXplCT0gOCwKKwkJLmRpZ2VzdAk9ICJceGZiXHhmNlx4MWZceDk0XHg5Mlx4YWFceDRiXHhiZiIKKwkJCSAgIlx4ODFceGMxXHg3Mlx4ZThceDRlXHgwN1x4MzRceGRiIiwKKwl9LCB7CisJCS5rZXkJPSAiSmVmZSIsCisJCS5rc2l6ZQk9IDQsCisJCS5wbGFpbnRleHQgPSAid2hhdCBkbyB5YSB3YW50IGZvciBub3RoaW5nPyIsCisJCS5wc2l6ZQk9IDI4LAorCQkuZGlnZXN0CT0gIlx4ODdceDVmXHg4Mlx4ODhceDYyXHhiNlx4YjNceDM0IgorCQkJICAiXHhiNFx4MjdceGM1XHg1Zlx4OWZceDdmXHhmMFx4OWIiLAorCQkubnAJPSAyLAorCQkudGFwCT0geyAxNCwgMTQgfSwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIsCisJCS5rc2l6ZQk9IDE2LAorCQkucGxhaW50ZXh0ID0gIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIiwKKwkJLnBzaXplCT0gNTAsCisJCS5kaWdlc3QJPSAiXHgwOVx4ZjBceGIyXHg4NFx4NmRceDJmXHg1NFx4M2QiCisJCQkgICJceGEzXHg2M1x4Y2JceGVjXHg4ZFx4NjJceGEzXHg4ZCIsCisJfSwgeworCQkua2V5CT0gIlx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4IgorCQkJICAiXHgwOVx4MGFceDBiXHgwY1x4MGRceDBlXHgwZlx4MTAiCisJCQkgICJceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTkiLAorCQkua3NpemUJPSAyNSwKKwkJLnBsYWludGV4dCA9ICJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIsCisJCS5wc2l6ZQk9IDUwLAorCQkuZGlnZXN0CT0gIlx4YmRceGJiXHhkN1x4Y2ZceDAzXHhlNFx4NGJceDVhIgorCQkJICAiXHhhNlx4MGFceGY4XHgxNVx4YmVceDRkXHgyMlx4OTQiLAorCX0sIHsKKwkJLmtleQk9ICJceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjIiwKKwkJLmtzaXplCT0gMTYsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBXaXRoIFRydW5jYXRpb24iLAorCQkucHNpemUJPSAyMCwKKwkJLmRpZ2VzdAk9ICJceGU3XHg5OFx4MDhceGYyXHg0Ylx4MjVceGZkXHgwMyIKKwkJCSAgIlx4MWNceDE1XHg1Zlx4MGRceDU1XHgxZFx4OWFceDNhIiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IC0gSGFzaCBLZXkgRmlyc3QiLAorCQkucHNpemUJPSA1NCwKKwkJLmRpZ2VzdAk9ICJceGRjXHg3M1x4MjlceDI4XHhkZVx4OThceDEwXHg0YSIKKwkJCSAgIlx4MWZceDU5XHhkM1x4NzNceGMxXHg1MFx4YWNceGJiIiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IGFuZCBMYXJnZXIgVGhhbiBPbmUgIgorCQkJICAgIkJsb2NrLVNpemUgRGF0YSIsCisJCS5wc2l6ZQk9IDczLAorCQkuZGlnZXN0CT0gIlx4NWNceDZiXHhlY1x4OTZceDc5XHgzZVx4MTZceGQ0IgorCQkJICAiXHgwNlx4OTBceGMyXHgzN1x4NjNceDVmXHgzMFx4YzUiLAorCX0sCit9OworCisvKgorICogSE1BQy1SSVBFTUQxNjAgdGVzdCB2ZWN0b3JzIGZyb20gUkZDMjI4NgorICovCisjZGVmaW5lIEhNQUNfUk1EMTYwX1RFU1RfVkVDVE9SUwk3CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIGhtYWNfcm1kMTYwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkua2V5CT0gIlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiIiwKKwkJLmtzaXplCT0gMjAsCisJCS5wbGFpbnRleHQgPSAiSGkgVGhlcmUiLAorCQkucHNpemUJPSA4LAorCQkuZGlnZXN0CT0gIlx4MjRceGNiXHg0Ylx4ZDZceDdkXHgyMFx4ZmNceDFhXHg1ZFx4MmUiCisJCQkgICJceGQ3XHg3M1x4MmRceGNjXHgzOVx4MzdceDdmXHgwYVx4NTZceDY4IiwKKwl9LCB7CisJCS5rZXkJPSAiSmVmZSIsCisJCS5rc2l6ZQk9IDQsCisJCS5wbGFpbnRleHQgPSAid2hhdCBkbyB5YSB3YW50IGZvciBub3RoaW5nPyIsCisJCS5wc2l6ZQk9IDI4LAorCQkuZGlnZXN0CT0gIlx4ZGRceGE2XHhjMFx4MjFceDNhXHg0OFx4NWFceDllXHgyNFx4ZjQiCisJCQkgICJceDc0XHgyMFx4NjRceGE3XHhmMFx4MzNceGI0XHgzY1x4NDBceDY5IiwKKwkJLm5wCT0gMiwKKwkJLnRhcAk9IHsgMTQsIDE0IH0sCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIiwKKwkJLmtzaXplCT0gMjAsCisJCS5wbGFpbnRleHQgPSAiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiLAorCQkucHNpemUJPSA1MCwKKwkJLmRpZ2VzdAk9ICJceGIwXHhiMVx4MDVceDM2XHgwZFx4ZTdceDU5XHg5Nlx4MGFceGI0IgorCQkJICAiXHhmM1x4NTJceDk4XHhlMVx4MTZceGUyXHg5NVx4ZDhceGU3XHhjMSIsCisJfSwgeworCQkua2V5CT0gIlx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4IgorCQkJICAiXHgwOVx4MGFceDBiXHgwY1x4MGRceDBlXHgwZlx4MTAiCisJCQkgICJceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTkiLAorCQkua3NpemUJPSAyNSwKKwkJLnBsYWludGV4dCA9ICJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIsCisJCS5wc2l6ZQk9IDUwLAorCQkuZGlnZXN0CT0gIlx4ZDVceGNhXHg4Nlx4MmZceDRkXHgyMVx4ZDVceGU2XHgxMFx4ZTEiCisJCQkgICJceDhiXHg0Y1x4ZjFceGJlXHhiOVx4N2FceDQzXHg2NVx4ZWNceGY0IiwKKwl9LCB7CisJCS5rZXkJPSAiXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGMiLAorCQkua3NpemUJPSAyMCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFdpdGggVHJ1bmNhdGlvbiIsCisJCS5wc2l6ZQk9IDIwLAorCQkuZGlnZXN0CT0gIlx4NzZceDE5XHg2OVx4MzlceDc4XHhmOVx4MWRceDkwXHg1M1x4OWEiCisJCQkgICJceGU3XHg4Nlx4NTBceDBmXHhmM1x4ZDhceGUwXHg1MVx4OGVceDM5IiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IC0gSGFzaCBLZXkgRmlyc3QiLAorCQkucHNpemUJPSA1NCwKKwkJLmRpZ2VzdAk9ICJceDY0XHg2Nlx4Y2FceDA3XHhhY1x4NWVceGFjXHgyOVx4ZTFceGJkIgorCQkJICAiXHg1Mlx4M2VceDVhXHhkYVx4NzZceDA1XHhiN1x4OTFceGZkXHg4YiIsCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhIiwKKwkJLmtzaXplCT0gODAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSBhbmQgTGFyZ2VyIFRoYW4gT25lICIKKwkJCSAgICJCbG9jay1TaXplIERhdGEiLAorCQkucHNpemUJPSA3MywKKwkJLmRpZ2VzdAk9ICJceDY5XHhlYVx4NjBceDc5XHg4ZFx4NzFceDYxXHg2Y1x4Y2VceDVmIgorCQkJICAiXHhkMFx4ODdceDFlXHgyM1x4NzVceDRjXHhkN1x4NWRceDVhXHgwYSIsCisJfSwKK307CisKKy8qCiAgKiBITUFDLVNIQTEgdGVzdCB2ZWN0b3JzIGZyb20gUkZDMjIwMgogICovCiAjZGVmaW5lIEhNQUNfU0hBMV9URVNUX1ZFQ1RPUlMJNwpAQCAtMTQ0Miw2ICsxODYzLDggQEAKICNkZWZpbmUgREVTX0NCQ19ERUNfVEVTVF9WRUNUT1JTCTQKICNkZWZpbmUgREVTM19FREVfRU5DX1RFU1RfVkVDVE9SUwkzCiAjZGVmaW5lIERFUzNfRURFX0RFQ19URVNUX1ZFQ1RPUlMJMworI2RlZmluZSBERVMzX0VERV9DQkNfRU5DX1RFU1RfVkVDVE9SUwkxCisjZGVmaW5lIERFUzNfRURFX0NCQ19ERUNfVEVTVF9WRUNUT1JTCTEKIAogc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXNfZW5jX3R2X3RlbXBsYXRlW10gPSB7CiAJeyAvKiBGcm9tIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5ICovCkBAIC0xNjgwLDkgKzIxMDMsNiBAQAogCX0sCiB9OwogCi0vKgotICogV2UgcmVhbGx5IG5lZWQgc29tZSBtb3JlIHRlc3QgdmVjdG9ycywgZXNwZWNpYWxseSBmb3IgREVTMyBDQkMuCi0gKi8KIHN0YXRpYyBzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgZGVzM19lZGVfZW5jX3R2X3RlbXBsYXRlW10gPSB7CiAJeyAvKiBUaGVzZSBhcmUgZnJvbSBvcGVuc3NsICovCiAJCS5rZXkJPSAiXHgwMVx4MjNceDQ1XHg2N1x4ODlceGFiXHhjZFx4ZWYiCkBAIC0xNzQ1LDYgKzIxNjUsOTQgQEAKIAl9LAogfTsKIAorc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXMzX2VkZV9jYmNfZW5jX3R2X3RlbXBsYXRlW10gPSB7CisJeyAvKiBHZW5lcmF0ZWQgZnJvbSBvcGVuc3NsICovCisJCS5rZXkJPSAiXHhFOVx4QzBceEZGXHgyRVx4NzZceDBCXHg2NFx4MjQiCisJCQkgICJceDQ0XHg0RFx4OTlceDVBXHgxMlx4RDZceDQwXHhDMCIKKwkJCSAgIlx4RUFceEMyXHg4NFx4RThceDE0XHg5NVx4REJceEU4IiwKKwkJLmtsZW4JPSAyNCwKKwkJLml2CT0gIlx4N0RceDMzXHg4OFx4OTNceDBGXHg5M1x4QjJceDQyIiwKKwkJLmlucHV0CT0gIlx4NmZceDU0XHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlIgorCQkJICAiXHg1M1x4MjBceDYzXHg2NVx4NjVceDcyXHg3M1x4NzQiCisJCQkgICJceDU0XHgyMFx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MSIKKwkJCSAgIlx4MjBceDc5XHg2NVx4NTNceDcyXHg2M1x4NzRceDY1IgorCQkJICAiXHgyMFx4NzNceDZmXHg1NFx4MjBceDZmXHg2MVx4NGQiCisJCQkgICJceDc5XHg2ZVx4NTNceDIwXHg2M1x4NjVceDY1XHg3MiIKKwkJCSAgIlx4NzNceDc0XHg1NFx4MjBceDZmXHg2Zlx4NGRceDIwIgorCQkJICAiXHg2ZVx4NjFceDIwXHg3OVx4NjVceDUzXHg3Mlx4NjMiCisJCQkgICJceDc0XHg2NVx4MjBceDczXHg2Zlx4NTRceDIwXHg2ZiIKKwkJCSAgIlx4NjFceDRkXHg3OVx4NmVceDUzXHgyMFx4NjNceDY1IgorCQkJICAiXHg2NVx4NzJceDczXHg3NFx4NTRceDIwXHg2Zlx4NmYiCisJCQkgICJceDRkXHgyMFx4NmVceDYxXHgyMFx4NzlceDY1XHg1MyIKKwkJCSAgIlx4NzJceDYzXHg3NFx4NjVceDIwXHg3M1x4NmZceDU0IgorCQkJICAiXHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlXHg1M1x4MjAiCisJCQkgICJceDYzXHg2NVx4NjVceDcyXHg3M1x4NzRceDU0XHgyMCIKKwkJCSAgIlx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MVx4MGFceDc5IiwKKwkJLmlsZW4JPSAxMjgsCisJCS5yZXN1bHQJPSAiXHgwZVx4MmRceGI2XHg5N1x4M2NceDU2XHgzM1x4ZjQiCisJCQkgICJceDY3XHgxN1x4MjFceGM3XHg2ZVx4OGFceGQ1XHg0OSIKKwkJCSAgIlx4NzRceGIzXHg0OVx4MDVceGM1XHgxY1x4ZDBceGVkIgorCQkJICAiXHgxMlx4NTZceDVjXHg1M1x4OTZceGI2XHgwMFx4N2QiCisJCQkgICJceDkwXHg0OFx4ZmNceGY1XHg4ZFx4MjlceDM5XHhjYyIKKwkJCSAgIlx4OGFceGQ1XHgzNVx4MThceDM2XHgyM1x4NGVceGQ3IgorCQkJICAiXHg3Nlx4ZDFceGRhXHgwY1x4OTRceDY3XHhiYlx4MDQiCisJCQkgICJceDhiXHhmMlx4MDNceDZjXHhhOFx4Y2ZceGI2XHhlYSIKKwkJCSAgIlx4MjJceDY0XHg0N1x4YWFceDhmXHg3NVx4MTNceGJmIgorCQkJICAiXHg5Zlx4YzJceGMzXHhmMFx4YzlceDU2XHhjNVx4N2EiCisJCQkgICJceDcxXHg2M1x4MmVceDg5XHg3Ylx4MWVceDEyXHhjYSIKKwkJCSAgIlx4ZTJceDVmXHhhZlx4ZDhceGE0XHhmOFx4YzlceDdhIgorCQkJICAiXHhkNlx4ZjlceDIxXHgzMVx4NjJceDQ0XHg0NVx4YTYiCisJCQkgICJceGQ2XHhiY1x4NWFceGQzXHgyZFx4NTRceDQzXHhjYyIKKwkJCSAgIlx4OWRceGRlXHhhNVx4NzBceGU5XHg0Mlx4NDVceDhhIgorCQkJICAiXHg2Ylx4ZmFceGIxXHg5MVx4MTNceGIwXHhkOVx4MTkiLAorCQkucmxlbgk9IDEyOCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXMzX2VkZV9jYmNfZGVjX3R2X3RlbXBsYXRlW10gPSB7CisJeyAvKiBHZW5lcmF0ZWQgZnJvbSBvcGVuc3NsICovCisJCS5rZXkJPSAiXHhFOVx4QzBceEZGXHgyRVx4NzZceDBCXHg2NFx4MjQiCisJCQkgICJceDQ0XHg0RFx4OTlceDVBXHgxMlx4RDZceDQwXHhDMCIKKwkJCSAgIlx4RUFceEMyXHg4NFx4RThceDE0XHg5NVx4REJceEU4IiwKKwkJLmtsZW4JPSAyNCwKKwkJLml2CT0gIlx4N0RceDMzXHg4OFx4OTNceDBGXHg5M1x4QjJceDQyIiwKKwkJLmlucHV0CT0gIlx4MGVceDJkXHhiNlx4OTdceDNjXHg1Nlx4MzNceGY0IgorCQkJICAiXHg2N1x4MTdceDIxXHhjN1x4NmVceDhhXHhkNVx4NDkiCisJCQkgICJceDc0XHhiM1x4NDlceDA1XHhjNVx4MWNceGQwXHhlZCIKKwkJCSAgIlx4MTJceDU2XHg1Y1x4NTNceDk2XHhiNlx4MDBceDdkIgorCQkJICAiXHg5MFx4NDhceGZjXHhmNVx4OGRceDI5XHgzOVx4Y2MiCisJCQkgICJceDhhXHhkNVx4MzVceDE4XHgzNlx4MjNceDRlXHhkNyIKKwkJCSAgIlx4NzZceGQxXHhkYVx4MGNceDk0XHg2N1x4YmJceDA0IgorCQkJICAiXHg4Ylx4ZjJceDAzXHg2Y1x4YThceGNmXHhiNlx4ZWEiCisJCQkgICJceDIyXHg2NFx4NDdceGFhXHg4Zlx4NzVceDEzXHhiZiIKKwkJCSAgIlx4OWZceGMyXHhjM1x4ZjBceGM5XHg1Nlx4YzVceDdhIgorCQkJICAiXHg3MVx4NjNceDJlXHg4OVx4N2JceDFlXHgxMlx4Y2EiCisJCQkgICJceGUyXHg1Zlx4YWZceGQ4XHhhNFx4ZjhceGM5XHg3YSIKKwkJCSAgIlx4ZDZceGY5XHgyMVx4MzFceDYyXHg0NFx4NDVceGE2IgorCQkJICAiXHhkNlx4YmNceDVhXHhkM1x4MmRceDU0XHg0M1x4Y2MiCisJCQkgICJceDlkXHhkZVx4YTVceDcwXHhlOVx4NDJceDQ1XHg4YSIKKwkJCSAgIlx4NmJceGZhXHhiMVx4OTFceDEzXHhiMFx4ZDlceDE5IiwKKwkJLmlsZW4JPSAxMjgsCisJCS5yZXN1bHQJPSAiXHg2Zlx4NTRceDIwXHg2Zlx4NjFceDRkXHg3OVx4NmUiCisJCQkgICJceDUzXHgyMFx4NjNceDY1XHg2NVx4NzJceDczXHg3NCIKKwkJCSAgIlx4NTRceDIwXHg2Zlx4NmZceDRkXHgyMFx4NmVceDYxIgorCQkJICAiXHgyMFx4NzlceDY1XHg1M1x4NzJceDYzXHg3NFx4NjUiCisJCQkgICJceDIwXHg3M1x4NmZceDU0XHgyMFx4NmZceDYxXHg0ZCIKKwkJCSAgIlx4NzlceDZlXHg1M1x4MjBceDYzXHg2NVx4NjVceDcyIgorCQkJICAiXHg3M1x4NzRceDU0XHgyMFx4NmZceDZmXHg0ZFx4MjAiCisJCQkgICJceDZlXHg2MVx4MjBceDc5XHg2NVx4NTNceDcyXHg2MyIKKwkJCSAgIlx4NzRceDY1XHgyMFx4NzNceDZmXHg1NFx4MjBceDZmIgorCQkJICAiXHg2MVx4NGRceDc5XHg2ZVx4NTNceDIwXHg2M1x4NjUiCisJCQkgICJceDY1XHg3Mlx4NzNceDc0XHg1NFx4MjBceDZmXHg2ZiIKKwkJCSAgIlx4NGRceDIwXHg2ZVx4NjFceDIwXHg3OVx4NjVceDUzIgorCQkJICAiXHg3Mlx4NjNceDc0XHg2NVx4MjBceDczXHg2Zlx4NTQiCisJCQkgICJceDIwXHg2Zlx4NjFceDRkXHg3OVx4NmVceDUzXHgyMCIKKwkJCSAgIlx4NjNceDY1XHg2NVx4NzJceDczXHg3NFx4NTRceDIwIgorCQkJICAiXHg2Zlx4NmZceDRkXHgyMFx4NmVceDYxXHgwYVx4NzkiLAorCQkucmxlbgk9IDEyOCwKKwl9LAorfTsKKwogLyoKICAqIEJsb3dmaXNoIHRlc3QgdmVjdG9ycy4KICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9NYWtlZmlsZSBiL2RyaXZlcnMvTWFrZWZpbGUKaW5kZXggZjY1ZGVkYS4uZmRhNDQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL01ha2VmaWxlCkBAIC0xMCw2ICsxMCw3IEBACiBvYmotJChDT05GSUdfUEFSSVNDKQkJKz0gcGFyaXNjLwogb2JqLSQoQ09ORklHX1JBUElESU8pCQkrPSByYXBpZGlvLwogb2JqLXkJCQkJKz0gdmlkZW8vCitvYmoteQkJCQkrPSBncHUvCiBvYmotJChDT05GSUdfQUNQSSkJCSs9IGFjcGkvCiAjIFBuUCBtdXN0IGNvbWUgYWZ0ZXIgQUNQSSBzaW5jZSBpdCB3aWxsIGV2ZW50dWFsbHkgbmVlZCB0byBjaGVjayBpZiBhY3BpCiAjIHdhcyB1c2VkIGFuZCBkbyBub3RoaW5nIGlmIHNvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fjb3JuL2NoYXIvTWFrZWZpbGUgYi9kcml2ZXJzL2Fjb3JuL2NoYXIvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMDZjOWYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hY29ybi9jaGFyL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciB0aGUgYWNvcm4gY2hhcmFjdGVyIGRldmljZSBkcml2ZXJzLgotIwotCi1vYmotJChDT05GSUdfTDcyMDBfS0VZQikJKz0gZGVma2V5bWFwLWw3MjAwLm8ga2V5Yl9sNzIwMC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMgYi9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDgwYTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hY29ybi9jaGFyL2RlZmtleW1hcC1sNzIwMC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzg2ICswLDAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMKLSAqCi0gKiBEZWZhdWx0IGtleWJvYXJkIG1hcHMgZm9yIExpbmtVcCBTeXN0ZW1zIEw3MjAwIGJvYXJkCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAwIFN0ZXZlIEhpbGwgKHNqaGlsbEBjb3R3LmNvbSkKLSAqCi0gKiBDaGFuZ2Vsb2c6Ci0gKiAgIDA4LTA0LTIwMDAgU0pIICAgICBDcmVhdGVkIGZpbGUKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXlib2FyZC5oPgotI2luY2x1ZGUgPGxpbnV4L2tkLmg+Ci0KLS8qIE5vcm1hbCAobWFwcyAxOjEgd2l0aCBubyBwcm9jZXNzaW5nKSAqLwotI2RlZmluZSBLVG4JMHhGMAotLyogRnVuY3Rpb24ga2V5cyAqLwotI2RlZmluZSBLVGYJMHhGMQotLyogU3BlY2lhbCAoUGVyZm9ybXMgc3BlY2lhbCBob3VzZS1rZWVwaW5nIGZ1bmNzKSAqLwotI2RlZmluZSBLVHMJMHhGMgotI2RlZmluZSBLSUdOT1JFCQlLKEtUcywgMCkJLyogSWdub3JlICovCi0jZGVmaW5lIEtFTlRFUgkJSyhLVHMsIDEpCS8qIEVudGVyICovCi0jZGVmaW5lIEtSRUdTCQlLKEtUcywgMikJLyogUmVncyAqLwotI2RlZmluZSBLTUVNCQlLKEtUcywgMykJLyogTWVtICovCi0jZGVmaW5lIEtTVEFUCQlLKEtUcywgNCkJLyogU3RhdGUgKi8KLSNkZWZpbmUgS0lOVFIJCUsoS1RzLCA1KQkvKiBJbnRyICovCi0jZGVmaW5lIEtzbAk2CS8qIExhc3QgY29uc29sZSAqLwotI2RlZmluZSBLQ0FQU0xLCQlLKEtUcywgNykJLyogQ2FwcyBsb2NrICovCi0jZGVmaW5lIEtOVU1MSwkJSyhLVHMsIDgpCS8qIE51bS1sb2NrICovCi0jZGVmaW5lIEtTQ1JMTEsJCUsoS1RzLCA5KQkvKiBTY3JvbGwtbG9jayAqLwotI2RlZmluZSBLU0NSTEZPUglLKEtUcywxMCkJLyogU2Nyb2xsIGZvcndhcmQgKi8KLSNkZWZpbmUgS1NDUkxCQUsJSyhLVHMsMTEpCS8qIFNjcm9sbCBiYWNrICovCi0jZGVmaW5lIEtSRUJPT1QJCUsoS1RzLDEyKQkvKiBSZWJvb3QgKi8KLSNkZWZpbmUgS0NBUFNPTgkJSyhLVHMsMTMpCS8qIENhcHMgb24gKi8KLSNkZWZpbmUgS0NPTVBPU0UJSyhLVHMsMTQpCS8qIENvbXBvc2UgKi8KLSNkZWZpbmUgS1NBSwkJSyhLVHMsMTUpCS8qIFNBSyAqLwotI2RlZmluZSBDT05TX0RFQwlLKEtUcywxNikJLyogRGVjIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ09OU19JTkMJSyhLVHMsMTcpCS8qIEluY3IgY29uc29sZSAqLwotI2RlZmluZSBLRkxPUFBZCQlLKEtUcywxOCkJLyogRmxvcHB5ICovCi0vKiBLZXkgcGFkICgwLTkgPSBkaWdpdHMsIDEwPSssIDExPS0sIDEyPSosIDEzPS8sIDE0PWVudGVyLCAxNj0uLCAxNz0jICovCi0jZGVmaW5lIEtUcAkweEYzCi0jZGVmaW5lIEtQQURfMAkJSyhLVHAsIDAgKQotI2RlZmluZSBLUEFEXzEgIAlLKEtUcCwgMSApCi0jZGVmaW5lIEtQQURfMgkJSyhLVHAsIDIgKQotI2RlZmluZSBLUEFEXzMJCUsoS1RwLCAzICkKLSNkZWZpbmUgS1BBRF80CQlLKEtUcCwgNCApCi0jZGVmaW5lIEtQQURfNQkJSyhLVHAsIDUgKQotI2RlZmluZSBLUEFEXzYJCUsoS1RwLCA2ICkKLSNkZWZpbmUgS1BBRF83CQlLKEtUcCwgNyApCi0jZGVmaW5lIEtQQURfOAkJSyhLVHAsIDggKQotI2RlZmluZSBLUEFEXzkJCUsoS1RwLCA5ICkKLSNkZWZpbmUgS1BBRF9QTAkJSyhLVHAsMTAgKQotI2RlZmluZSBLUEFEX01JCQlLKEtUcCwxMSApCi0jZGVmaW5lIEtQQURfTUwJCUsoS1RwLDEyICkKLSNkZWZpbmUgS1BBRF9EVgkJSyhLVHAsMTMgKQotI2RlZmluZSBLUEFEX0VOCQlLKEtUcCwxNCApCi0jZGVmaW5lIEtQQURfRFQJCUsoS1RwLDE2ICkKLSNkZWZpbmUgS1BBRF9IUwkJSyhLVHAsMjAgKQotLyogQ29uc29sZSBzd2l0Y2hpbmcgKi8KLSNkZWZpbmUgS0NuCTB4RjUKLS8qIEN1cnNvciAqLwotI2RlZmluZSBLVGMJMHhGNgotI2RlZmluZSBLY2QJMAkvKiBDdXJzb3IgZG93biAqLwotI2RlZmluZSBLY2wJMQkvKiBDdXJzb3IgbGVmdCAqLwotI2RlZmluZSBLY3IJMgkvKiBDdXJzb3IgcmlnaHQgKi8KLSNkZWZpbmUgS2N1CTMJLyogQ3Vyc29yIHVwICovCi0vKiBTaGlmdC9hbHQgbW9kaWZpZXJzIGV0YyAqLwotI2RlZmluZSBLTWQJMHhGNwotI2RlZmluZSBLU0hJRlQJCUsoS01kLCAwICkKLSNkZWZpbmUgS0FMVEdSCQlLKEtNZCwgMSApCi0jZGVmaW5lIEtDVFJMCQlLKEtNZCwgMiApCi0jZGVmaW5lIEtBTFQJCUsoS01kLCAzICkKLS8qIE1ldGEgKi8KLSNkZWZpbmUgS010CTB4RjgKLSNkZWZpbmUgS0FzCTB4RjkKLSNkZWZpbmUgS1BBREFfMAkJSyhLQXMsIDAgKQotI2RlZmluZSBLUEFEQV8xCQlLKEtBcywgMSApCi0jZGVmaW5lIEtQQURBXzIJCUsoS0FzLCAyICkKLSNkZWZpbmUgS1BBREFfMwkJSyhLQXMsIDMgKQotI2RlZmluZSBLUEFEQV80CQlLKEtBcywgNCApCi0jZGVmaW5lIEtQQURBXzUJCUsoS0FzLCA1ICkKLSNkZWZpbmUgS1BBREFfNgkJSyhLQXMsIDYgKQotI2RlZmluZSBLUEFEQV83CQlLKEtBcywgNyApCi0jZGVmaW5lIEtQQURBXzgJCUsoS0FzLCA4ICkKLSNkZWZpbmUgS1BBREFfOQkJSyhLQXMsIDkgKQotI2RlZmluZSBLUEFEQl8wCQlLKEtBcywxMCApCi0jZGVmaW5lIEtQQURCXzEJCUsoS0FzLDExICkKLSNkZWZpbmUgS1BBREJfMgkJSyhLQXMsMTIgKQotI2RlZmluZSBLUEFEQl8zCQlLKEtBcywxMyApCi0jZGVmaW5lIEtQQURCXzQJCUsoS0FzLDE0ICkKLSNkZWZpbmUgS1BBREJfNQkJSyhLQXMsMTUgKQotI2RlZmluZSBLUEFEQl82CQlLKEtBcywxNiApCi0jZGVmaW5lIEtQQURCXzcJCUsoS0FzLDE3ICkKLSNkZWZpbmUgS1BBREJfOAkJSyhLQXMsMTggKQotI2RlZmluZSBLUEFEQl85CQlLKEtBcywxOSApCi0vKiBMb2NraW5nIGtleXMgKi8KLSNkZWZpbmUgS0xrCTB4RkEKLS8qIExldHRlcnMgKi8KLSNkZWZpbmUgS1RsCTB4RkIKLQotLyoKLSAqIEhlcmUgaXMgdGhlIGxheW91dCBvZiB0aGUga2V5cyBmb3IgdGhlIEZ1aml0c3UgUVdFUlRZCi0gKiBzdHlsZSBrZXlib2FyZDoKLSAqCi0gKglzdGF0aWMgY2hhciBGdWppdHN1X0tleV9UYWJsZVtdID0KLSAqCXsKLSAqICAgICAgICBLQUxULCAnYCcgLCBLTlVMLCBLQ1RMLCBLRlVOLCBLRVNDLCAnMScgLCAnMicgLAotICoJICAnOScgLCAnMCcgLCAnLScgLCAnPScgLCBLTlVMLCBLQlNQLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLQlNMLCBLU0hGLCBLTlVMLCBLTlVMLCBLREVMLCBLTlVMLCAndCcgLAotICoJICAneScgLCAndScgLCAnaScgLCBLUkVULCBLU0hGLCBLUEdELCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLVEFCLCBLTlVMLCBLTlVMLCBLTlVMLCAncScgLCAndycgLCAnZScgLAotICoJICAncicgLCAnbycgLCAncCcgLCAnWycgLCBLTlVMLCAnXScgLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAneicgLCBLTlVMLCBLTlVMLCBLTlVMLCBLU0hMLCBLTlVMLCBLTlVMLAotICoJICAnaycgLCAnbCcgLCAnOycgLCBLU1FULCBLTlVMLCBLUEdVLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAnYScgLCBLTlVMLCBLTlVMLCBLTlVMLCAncycgLCAnZCcgLCAnZicgLAotICoJICAnZycgLCAnaCcgLCAnaicgLCAnLycgLCBLTlVMLCBLSE1FLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAneCcgLCBLTlVMLCBLTlVMLCBLTlVMLCAnYycgLCAndicgLCAnYicgLAotICoJICAnbicgLCAnbScgLCAnLCcgLCAnLicgLCBLTlVMLCAnICcgLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLTlVMLCBLTlVMLCBLTlVMLCBLTlVMLCAnMycgLCAnNCcgLCAnNScgLAotICoJICAnNicgLCAnNycgLCAnOCcgLCBLTlVMLCBLUFJHLCBLTlVMLCBLRU5ELCBLTlVMLAotICoJfTsKLSAqLwotCi11X3Nob3J0IHBsYWluX21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjA2MCwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMzEsIDB4ZjAzMiwKLQkweGYwMzksIDB4ZjAzMCwgMHhmMDJkLCAweGYwM2QsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjA1YywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZmI3NCwKLQkweGZiNzksIDB4ZmI3NSwgMHhmYjY5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwOSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjcxLCAweGZiNzcsIDB4ZmI2NSwKLQkweGZiNzIsIDB4ZmI2ZiwgMHhmYjcwLCAweGYwNWIsIDB4ZjIwMCwgMHhmMDVkLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI3YSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjA3LCAweGYyMDAsIDB4ZjIwMCwKLQkweGZiNmIsIDB4ZmI2YywgMHhmMDNiLCAweGYwMjcsIDB4ZjIwMCwgMHhmNjAzLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI2MSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjczLCAweGZiNjQsIDB4ZmI2NiwKLQkweGZiNjcsIDB4ZmI2OCwgMHhmYjZhLCAweGYwMmYsIDB4ZjIwMCwgMHhmNjAxLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI3OCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjYzLCAweGZiNzYsIDB4ZmI2MiwKLQkweGZiNmUsIDB4ZmI2ZCwgMHhmMDJjLCAweGYwMmUsIDB4ZjIwMCwgMHhmMDIwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDMzLCAweGYwMzQsIDB4ZjAzNSwgCi0JMHhmMDM2LCAweGYwMzcsIDB4ZjAzOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmNjAyLCAweGYyMDAsIAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi19OwotCi11X3Nob3J0IHNoaWZ0X21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjA3ZSwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMjEsIDB4ZjA0MCwKLQkweGYwMjgsIDB4ZjAyOSwgMHhmMDVmLCAweGYwMmIsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjA3YywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZmI1NCwKLQkweGZiNTksIDB4ZmI1NSwgMHhmYjQ5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLSAJMHhmMjAwLCAweGYwMDksIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI1MSwgMHhmYjU3LCAweGZiNDUsCi0JMHhmYjUyLCAweGZiNGYsIDB4ZmI1MCwgMHhmMDdiLCAweGYyMDAsIDB4ZjA3ZCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNWEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwNywgMHhmMjAwLCAweGYyMDAsCi0JMHhmYjRiLCAweGZiNGMsIDB4ZjAzYSwgMHhmMDIyLCAweGYyMDAsIDB4ZjYwMywgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNDEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI1MywgMHhmYjQ0LCAweGZiNDYsCi0JMHhmYjQ3LCAweGZiNDgsIDB4ZmI0YSwgMHhmMDNmLCAweGYyMDAsIDB4ZjYwMSwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNTgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI0MywgMHhmYjU2LCAweGZiNDIsCi0JMHhmYjRlLCAweGZiNGQsIDB4ZjAzYywgMHhmMDNlLCAweGYyMDAsIDB4ZjAyMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAyMywgMHhmMDI0LCAweGYwMjUsIAotCTB4ZjA1ZSwgMHhmMDI2LCAweGYwMmEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjYwMiwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIAotfTsKLQotdV9zaG9ydCBhbHRncl9tYXBbTlJfS0VZU109Ci17Ci0gIEtJR05PUkUgICAsSyhLQ24sMTIgKSxLKEtDbiwxMyApLEsoS0NuLDE0ICApLEsoS0NuLDE1ICksSyhLQ24sMTYgKSxLKEtDbiwxNyAgKSxLKEtDbiwgMTgpLAotICBLKEtDbiwgMTkpLEsoS0NuLDIwICksSyhLQ24sMjEgKSxLKEtDbiwyMiAgKSxLKEtDbiwyMyApLEtJR05PUkUgICAsS1JFR1MgICAgICAsS0lOVFIgICAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEsoS1RuLCdAJyksS0lHTk9SRSAgICAsSyhLVG4sJyQnKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEsoS1RuLCd7JyksCi0gIEsoS1RuLCdbJyksSyhLVG4sJ10nKSxLKEtUbiwnfScpLEsoS1RuLCdcXCcpLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUZiwyMSApLAotICBLKEtUZiwyMCApLEsoS1RmLDI0ICksS05VTUxLICAgICxLUEFEX0RWICAgICxLUEFEX01MICAgLEtQQURfSFMgICAsS0lHTk9SRSAgICAsSyhLVGwsJ3EnKSwKLSAgSyhLVGwsJ3cnKSxLKEtUbCwnZScpLEsoS1RsLCdyJyksSyhLVGwsJ3QnICksSyhLVGwsJ3knKSxLKEtUbCwndScpLEsoS1RsLCdpJyApLEsoS1RsLCdvJyksCi0gIEsoS1RsLCdwJyksS0lHTk9SRSAgICxLKEtUbiwnficpLEtJR05PUkUgICAgLEsoS1RmLDIyICksSyhLVGYsMjMgKSxLKEtUZiwyNSAgKSxLUEFEQl83ICAgLAotICBLUEFEQl84ICAgLEtQQURCXzkgICAsS1BBRF9NSSAgICxLQ1RSTCAgICAgICxLKEtBcywyMCApLEsoS1RsLCdzJyksSyhLQXMsMjMgICksSyhLQXMsMjUgKSwKLSAgSyhLVGwsJ2cnKSxLKEtUbCwnaCcpLEsoS1RsLCdqJyksSyhLVGwsJ2snICksSyhLVGwsJ2wnKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtFTlRFUiAgICAsCi0gIEtQQURCXzQgICAsS1BBREJfNSAgICxLUEFEQl82ICAgLEtQQURfUEwgICAgLEtTSElGVCAgICAsS0lHTk9SRSAgICxLKEtUbCwneicgKSxLKEtUbCwneCcpLAotICBLKEtBcywyMiApLEsoS1RsLCd2JyksSyhLVGwsMjEgKSxLKEtUbCwnbicgKSxLKEtUbCwnbScpLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS1NISUZUICAgICxLKEtUYyxLY3UpLEtQQURCXzEgICAsS1BBREJfMiAgICAsS1BBREJfMyAgICxLQ0FQU0xLICAgLEtBTFQgICAgICAgLEtJR05PUkUgICAsCi0gIEtBTFRHUiAgICAsS0NUUkwgICAgICxLKEtUYyxLY2wpLEsoS1RjLEtjZCApLEsoS1RjLEtjciksS1BBREJfMCAgICxLUEFEX0RUICAgICxLUEFEX0VOICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotfTsKLQotdV9zaG9ydCBjdHJsX21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjIwMCwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMjAwLCAweGYwMDEsIDB4ZjAwMiwKLQkweGYwMDksIDB4ZjAwMCwgMHhmMDMxLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxYywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZjAyMCwKLQkweGYwMTksIDB4ZjAxNSwgMHhmMDA5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwOSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDExLCAweGYwMTcsIDB4ZjAwNSwKLQkweGYwMTIsIDB4ZjAwZiwgMHhmMDEwLCAweGYwMWIsIDB4ZjIwMCwgMHhmMDFkLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxYSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjA3LCAweGYyMDAsIDB4ZjIwMCwKLQkweGYwMGIsIDB4ZjAwYywgMHhmMjAwLCAweGYwMDcsIDB4ZjIwMCwgMHhmNjAzLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwMSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAxLCAweGYwMTMsIDB4ZjAwNiwKLQkweGYwMDcsIDB4ZjAwOCwgMHhmMDBhLCAweGYwN2YsIDB4ZjIwMCwgMHhmNjAxLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAzLCAweGYwMTYsIDB4ZjAwMiwKLQkweGYwMGUsIDB4ZjAwZCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMWMsIDB4ZjAxZCwgCi0JMHhmMDM2LCAweGYwMzcsIDB4ZjAzOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmNjAyLCAweGYyMDAsIAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGY2MDIsIDB4ZjIwMCwgCi19OwotCi11X3Nob3J0IHNoaWZ0X2N0cmxfbWFwW05SX0tFWVNdPQotewotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtGTE9QUFkgICAgLEtJTlRSICAgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLKEtUbiwgMCApLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLKEtUbiwzMSAgKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsSyhLVGYsMjEgKSwKLSAgSyhLVGYsMjAgKSxLKEtUZiwyNCApLEtOVU1MSyAgICAsS1BBRF9EViAgICAsS1BBRF9NTCAgICxLUEFEX0hTICAgLEtJR05PUkUgICAgLEsoS1RuLDE3ICksCi0gIEsoS1RuLDIzICksSyhLVG4sIDUgKSxLKEtUbiwxOCApLEsoS1RuLDIwICApLEsoS1RuLDI1ICksSyhLVG4sMjEgKSxLKEtUbiwgOSAgKSxLKEtUbiwxNSApLAotICBLKEtUbiwxNiApLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUZiwyMiApLEsoS1RmLDIzICksSyhLVGYsMjUgICksS1BBRF83ICAgICwKLSAgS1BBRF84ICAgICxLUEFEXzkgICAgLEtQQURfTUkgICAsS0NUUkwgICAgICAsSyhLVG4sIDEgKSxLKEtUbiwxOSApLEsoS1RuLCA0ICApLEsoS1RuLCA2ICksCi0gIEsoS1RuLCA3ICksSyhLVG4sIDggKSxLKEtUbiwxMCApLEsoS1RuLDExICApLEsoS1RuLDEyICksS0lHTk9SRSAgICxLKEtUbiwgNyAgKSxLRU5URVIgICAgLAotICBLUEFEXzQgICAgLEtQQURfNSAgICAsS1BBRF82ICAgICxLUEFEX1BMICAgICxLU0hJRlQgICAgLEtJR05PUkUgICAsSyhLVG4sMjYgICksSyhLVG4sMjQgKSwKLSAgSyhLVG4sIDMgKSxLKEtUbiwyMiApLEsoS1RuLCAyICksSyhLVG4sMTQgICksSyhLVG4sMTMgKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtTSElGVCAgICAsSyhLVGMsS2N1KSxLUEFEXzEgICAgLEtQQURfMiAgICAgLEtQQURfMyAgICAsS0NBUFNMSyAgICxLQUxUICAgICAgICxLKEtUbiwgMCApLAotICBLQUxUR1IgICAgLEtDVFJMICAgICAsSyhLVGMsS2NsKSxLKEtUYyxLY2QgKSxLKEtUYyxLY3IpLEtQQURfMCAgICAsS1BBRF9EVCAgICAsS1BBRF9FTiAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLX07Ci0KLXVfc2hvcnQgYWx0X21hcFtOUl9LRVlTXT0KLXsKLSAgSyhLTXQsMjcgKSxLKEtDbiwgMCApLEsoS0NuLCAxICksSyhLQ24sIDIgICksSyhLQ24sIDMgKSxLKEtDbiwgNCApLEsoS0NuLCA1ICApLEsoS0NuLCA2ICksCi0gIEsoS0NuLCA3ICksSyhLQ24sIDggKSxLKEtDbiwgOSApLEsoS0NuLDEwICApLEsoS0NuLDExICksS0lHTk9SRSAgICxLU0NSTExLICAgICxLSU5UUiAgICAgLAotICBLKEtNdCwnYCcpLEsoS010LCcxJyksSyhLTXQsJzInKSxLKEtNdCwnMycgKSxLKEtNdCwnNCcpLEsoS010LCc1JyksSyhLTXQsJzYnICksSyhLTXQsJzcnKSwKLSAgSyhLTXQsJzgnKSxLKEtNdCwnOScpLEsoS010LCcwJyksSyhLTXQsJy0nICksSyhLTXQsJz0nKSxLKEtNdCwnoycpLEsoS010LDEyNyApLEsoS1RmLDIxICksCi0gIEsoS1RmLDIwICksSyhLVGYsMjQgKSxLTlVNTEsgICAgLEtQQURfRFYgICAgLEtQQURfTUwgICAsS1BBRF9IUyAgICxLKEtNdCwgOSAgKSxLKEtNdCwncScpLAotICBLKEtNdCwndycpLEsoS010LCdlJyksSyhLTXQsJ3InKSxLKEtNdCwndCcgKSxLKEtNdCwneScpLEsoS010LCd1JyksSyhLTXQsJ2knICksSyhLTXQsJ28nKSwKLSAgSyhLTXQsJ3AnKSxLKEtNdCwnWycpLEsoS010LCddJyksSyhLTXQsJ1xcJyksSyhLVGYsMjIgKSxLKEtUZiwyMyApLEsoS1RmLDI1ICApLEtQQURBXzcgICAsCi0gIEtQQURBXzggICAsS1BBREFfOSAgICxLUEFEX01JICAgLEtDVFJMICAgICAgLEsoS010LCdhJyksSyhLTXQsJ3MnKSxLKEtNdCwnZCcgKSxLKEtNdCwnZicpLAotICBLKEtNdCwnZycpLEsoS010LCdoJyksSyhLTXQsJ2onKSxLKEtNdCwnaycgKSxLKEtNdCwnbCcpLEsoS010LCc7JyksSyhLTXQsJ1wnJyksSyhLTXQsMTMgKSwKLSAgS1BBREFfNCAgICxLUEFEQV81ICAgLEtQQURBXzYgICAsS1BBRF9QTCAgICAsS1NISUZUICAgICxLSUdOT1JFICAgLEsoS010LCd6JyApLEsoS010LCd4JyksCi0gIEsoS010LCdjJyksSyhLTXQsJ3YnKSxLKEtNdCwnYicpLEsoS010LCduJyApLEsoS010LCdtJyksSyhLTXQsJywnKSxLKEtNdCwnLicgKSxLSUdOT1JFICAgLAotICBLU0hJRlQgICAgLEsoS1RjLEtjdSksS1BBREFfMSAgICxLUEFEQV8yICAgICxLUEFEQV8zICAgLEtDQVBTTEsgICAsS0FMVCAgICAgICAsSyhLTXQsJyAnKSwKLSAgS0FMVEdSICAgICxLQ1RSTCAgICAgLENPTlNfREVDICAsSyhLVGMsS2NkICksQ09OU19JTkMgICxLUEFEQV8wICAgLEtQQURfRFQgICAgLEtQQURfRU4gICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi19OwotCi11X3Nob3J0IGN0cmxfYWx0X21hcFtOUl9LRVlTXT0KLXsKLSAgS0lHTk9SRSAgICxLKEtDbiwgMCApLEsoS0NuLCAxICksSyhLQ24sIDIgICksSyhLQ24sIDMgKSxLKEtDbiwgNCApLEsoS0NuLCA1ICApLEsoS0NuLCA2ICksCi0gIEsoS0NuLCA3ICksSyhLQ24sIDggKSxLKEtDbiwgOSApLEsoS0NuLDEwICApLEsoS0NuLDExICksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSU5UUiAgICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEsoS1RmLDIxICksCi0gIEsoS1RmLDIwICksSyhLVGYsMjQgKSxLTlVNTEsgICAgLEtQQURfRFYgICAgLEtQQURfTUwgICAsS1BBRF9IUyAgICxLSUdOT1JFICAgICxLKEtNdCwxNyApLAotICBLKEtNdCwyMyApLEsoS010LCA1ICksSyhLTXQsMTggKSxLKEtNdCwyMCAgKSxLKEtNdCwyNSApLEsoS010LDIxICksSyhLTXQsIDkgICksSyhLTXQsMTUgKSwKLSAgSyhLTXQsMTYgKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS1JFQk9PVCAgICxLKEtUZiwyMyApLEsoS1RmLDI1ICApLEtQQURfNyAgICAsCi0gIEtQQURfOCAgICAsS1BBRF85ICAgICxLUEFEX01JICAgLEtDVFJMICAgICAgLEsoS010LCAxICksSyhLTXQsMTkgKSxLKEtNdCwgNCAgKSxLKEtNdCwgNiApLAotICBLKEtNdCwgNyApLEsoS010LCA4ICksSyhLTXQsMTAgKSxLKEtNdCwxMSAgKSxLKEtNdCwxMiApLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0VOVEVSICAgICwKLSAgS1BBRF80ICAgICxLUEFEXzUgICAgLEtQQURfNiAgICAsS1BBRF9QTCAgICAsS1NISUZUICAgICxLSUdOT1JFICAgLEsoS010LDI2ICApLEsoS010LDI0ICksCi0gIEsoS010LCAzICksSyhLTXQsMjIgKSxLKEtNdCwgMiApLEsoS010LDE0ICApLEsoS010LDEzICksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLU0hJRlQgICAgLEsoS1RjLEtjdSksS1BBRF8xICAgICxLUEFEXzIgICAgICxLUEFEXzMgICAgLEtDQVBTTEsgICAsS0FMVCAgICAgICAsS0lHTk9SRSAgICwKLSAgS0FMVEdSICAgICxLQ1RSTCAgICAgLEsoS1RjLEtjbCksSyhLVGMsS2NkICksSyhLVGMsS2NyKSxLUEFEXzAgICAgLEtSRUJPT1QgICAgLEtQQURfRU4gICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi19OwotCi11c2hvcnQgKmtleV9tYXBzW01BWF9OUl9LRVlNQVBTXSA9IHsKLQlwbGFpbl9tYXAsIHNoaWZ0X21hcCwgYWx0Z3JfbWFwLCAwLAotCWN0cmxfbWFwLCBzaGlmdF9jdHJsX21hcCwgMCwgMCwKLQlhbHRfbWFwLCAwLCAwLCAwLAotCWN0cmxfYWx0X21hcCwJMAotfTsKLQotdW5zaWduZWQgaW50IGtleW1hcF9jb3VudCA9IDc7Ci0KLS8qCi0gKiBQaGlsb3NvcGh5OiBtb3N0IHBlb3BsZSBkbyBub3QgZGVmaW5lIG1vcmUgc3RyaW5ncywgYnV0IHRoZXkgd2hvIGRvCi0gKiBvZnRlbiB3YW50IHF1aXRlIGEgbG90IG9mIHN0cmluZyBzcGFjZS4gU28sIHdlIHN0YXRpY2FsbHkgYWxsb2NhdGUKLSAqIHRoZSBkZWZhdWx0IGFuZCBhbGxvY2F0ZSBkeW5hbWljYWxseSBpbiBjaHVua3Mgb2YgNTEyIGJ5dGVzLgotICovCi0KLWNoYXIgZnVuY19idWZbXSA9IHsKLQknXDAzMycsICdbJywgJ1snLCAnQScsIDAsCi0JJ1wwMzMnLCAnWycsICdbJywgJ0InLCAwLAotCSdcMDMzJywgJ1snLCAnWycsICdDJywgMCwKLQknXDAzMycsICdbJywgJ1snLCAnRCcsIDAsCi0JJ1wwMzMnLCAnWycsICdbJywgJ0UnLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc3JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc4JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc5JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICcwJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICcxJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc0JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc1JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc2JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc4JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc5JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICcxJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICcyJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICc0JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnNCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzUnLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICc2JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnTScsIDAsCi0JJ1wwMzMnLCAnWycsICdQJywgMCwKLX07Ci0KLWNoYXIgKmZ1bmNidWZwdHIgPSBmdW5jX2J1ZjsKLWludCBmdW5jYnVmc2l6ZSA9IHNpemVvZihmdW5jX2J1Zik7Ci1pbnQgZnVuY2J1ZmxlZnQgPSAwOyAgICAgICAgICAvKiBzcGFjZSBsZWZ0ICovCi0KLWNoYXIgKmZ1bmNfdGFibGVbTUFYX05SX0ZVTkNdID0gewotCWZ1bmNfYnVmICsgMCwKLQlmdW5jX2J1ZiArIDUsCi0JZnVuY19idWYgKyAxMCwKLQlmdW5jX2J1ZiArIDE1LAotCWZ1bmNfYnVmICsgMjAsCi0JZnVuY19idWYgKyAyNSwKLQlmdW5jX2J1ZiArIDMxLAotCWZ1bmNfYnVmICsgMzcsCi0JZnVuY19idWYgKyA0MywKLQlmdW5jX2J1ZiArIDQ5LAotCWZ1bmNfYnVmICsgNTUsCi0JZnVuY19idWYgKyA2MSwKLQlmdW5jX2J1ZiArIDY3LAotCWZ1bmNfYnVmICsgNzMsCi0JZnVuY19idWYgKyA3OSwKLQlmdW5jX2J1ZiArIDg1LAotCWZ1bmNfYnVmICsgOTEsCi0JZnVuY19idWYgKyA5NywKLQlmdW5jX2J1ZiArIDEwMywKLQlmdW5jX2J1ZiArIDEwOSwKLQlmdW5jX2J1ZiArIDExNSwKLQlmdW5jX2J1ZiArIDEyMCwKLQlmdW5jX2J1ZiArIDEyNSwKLQlmdW5jX2J1ZiArIDEzMCwKLQlmdW5jX2J1ZiArIDEzNSwKLQlmdW5jX2J1ZiArIDE0MCwKLQlmdW5jX2J1ZiArIDE0NSwKLQkwLAotCTAsCi0JZnVuY19idWYgKyAxNDksCi0JMCwKLX07Ci0KLXN0cnVjdCBrYmRpYWNydWMgYWNjZW50X3RhYmxlW01BWF9ESUFDUl0gPSB7Ci0JeydgJywgJ0EnLCAwMzAwfSwJeydgJywgJ2EnLCAwMzQwfSwKLQl7J1wnJywgJ0EnLCAwMzAxfSwJeydcJycsICdhJywgMDM0MX0sCi0JeydeJywgJ0EnLCAwMzAyfSwJeydeJywgJ2EnLCAwMzQyfSwKLQl7J34nLCAnQScsIDAzMDN9LAl7J34nLCAnYScsIDAzNDN9LAotCXsnIicsICdBJywgMDMwNH0sCXsnIicsICdhJywgMDM0NH0sCi0JeydPJywgJ0EnLCAwMzA1fSwJeydvJywgJ2EnLCAwMzQ1fSwKLQl7JzAnLCAnQScsIDAzMDV9LAl7JzAnLCAnYScsIDAzNDV9LAotCXsnQScsICdBJywgMDMwNX0sCXsnYScsICdhJywgMDM0NX0sCi0JeydBJywgJ0UnLCAwMzA2fSwJeydhJywgJ2UnLCAwMzQ2fSwKLQl7JywnLCAnQycsIDAzMDd9LAl7JywnLCAnYycsIDAzNDd9LAotCXsnYCcsICdFJywgMDMxMH0sCXsnYCcsICdlJywgMDM1MH0sCi0JeydcJycsICdFJywgMDMxMX0sCXsnXCcnLCAnZScsIDAzNTF9LAotCXsnXicsICdFJywgMDMxMn0sCXsnXicsICdlJywgMDM1Mn0sCi0JeyciJywgJ0UnLCAwMzEzfSwJeyciJywgJ2UnLCAwMzUzfSwKLQl7J2AnLCAnSScsIDAzMTR9LAl7J2AnLCAnaScsIDAzNTR9LAotCXsnXCcnLCAnSScsIDAzMTV9LAl7J1wnJywgJ2knLCAwMzU1fSwKLQl7J14nLCAnSScsIDAzMTZ9LAl7J14nLCAnaScsIDAzNTZ9LAotCXsnIicsICdJJywgMDMxN30sCXsnIicsICdpJywgMDM1N30sCi0JeyctJywgJ0QnLCAwMzIwfSwJeyctJywgJ2QnLCAwMzYwfSwKLQl7J34nLCAnTicsIDAzMjF9LAl7J34nLCAnbicsIDAzNjF9LAotCXsnYCcsICdPJywgMDMyMn0sCXsnYCcsICdvJywgMDM2Mn0sCi0JeydcJycsICdPJywgMDMyM30sCXsnXCcnLCAnbycsIDAzNjN9LAotCXsnXicsICdPJywgMDMyNH0sCXsnXicsICdvJywgMDM2NH0sCi0Jeyd+JywgJ08nLCAwMzI1fSwJeyd+JywgJ28nLCAwMzY1fSwKLQl7JyInLCAnTycsIDAzMjZ9LAl7JyInLCAnbycsIDAzNjZ9LAotCXsnLycsICdPJywgMDMzMH0sCXsnLycsICdvJywgMDM3MH0sCi0JeydgJywgJ1UnLCAwMzMxfSwJeydgJywgJ3UnLCAwMzcxfSwKLQl7J1wnJywgJ1UnLCAwMzMyfSwJeydcJycsICd1JywgMDM3Mn0sCi0JeydeJywgJ1UnLCAwMzMzfSwJeydeJywgJ3UnLCAwMzczfSwKLQl7JyInLCAnVScsIDAzMzR9LAl7JyInLCAndScsIDAzNzR9LAotCXsnXCcnLCAnWScsIDAzMzV9LAl7J1wnJywgJ3knLCAwMzc1fSwKLQl7J1QnLCAnSCcsIDAzMzZ9LAl7J3QnLCAnaCcsIDAzNzZ9LAotCXsncycsICdzJywgMDMzN30sCXsnIicsICd5JywgMDM3N30sCi0JeydzJywgJ3onLCAwMzM3fSwJeydpJywgJ2onLCAwMzc3fSwKLX07Ci0KLXVuc2lnbmVkIGludCBhY2NlbnRfdGFibGVfc2l6ZSA9IDY4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL0tjb25maWcgYi9kcml2ZXJzL2FjcGkvS2NvbmZpZwppbmRleCBjNTJmY2E4Li5iYmE4NjczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvS2NvbmZpZworKysgYi9kcml2ZXJzL2FjcGkvS2NvbmZpZwpAQCAtNCw4ICs0LDYgQEAKIAogbWVudWNvbmZpZyBBQ1BJCiAJYm9vbCAiQUNQSSAoQWR2YW5jZWQgQ29uZmlndXJhdGlvbiBhbmQgUG93ZXIgSW50ZXJmYWNlKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gIVg4Nl9OVU1BUQotCWRlcGVuZHMgb24gIVg4Nl9WSVNXUwogCWRlcGVuZHMgb24gIUlBNjRfSFBfU0lNCiAJZGVwZW5kcyBvbiBJQTY0IHx8IFg4NgogCWRlcGVuZHMgb24gUENJCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWMuYyBiL2RyaXZlcnMvYWNwaS9hYy5jCmluZGV4IDViNzNmNmEuLjgzMTg4M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hYy5jCisrKyBiL2RyaXZlcnMvYWNwaS9hYy5jCkBAIC0yMzMsNiArMjMzLDkgQEAKIAogCWRldmljZSA9IGFjLT5kZXZpY2U7CiAJc3dpdGNoIChldmVudCkgeworCWRlZmF1bHQ6CisJCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU5GTywKKwkJCQkgICJVbnN1cHBvcnRlZCBldmVudCBbMHgleF1cbiIsIGV2ZW50KSk7CiAJY2FzZSBBQ1BJX0FDX05PVElGWV9TVEFUVVM6CiAJY2FzZSBBQ1BJX05PVElGWV9CVVNfQ0hFQ0s6CiAJY2FzZSBBQ1BJX05PVElGWV9ERVZJQ0VfQ0hFQ0s6CkBAIC0yNDQsMTEgKzI0Nyw2IEBACiAjaWZkZWYgQ09ORklHX0FDUElfU1lTRlNfUE9XRVIKIAkJa29iamVjdF91ZXZlbnQoJmFjLT5jaGFyZ2VyLmRldi0+a29iaiwgS09CSl9DSEFOR0UpOwogI2VuZGlmCi0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU5GTywKLQkJCQkgICJVbnN1cHBvcnRlZCBldmVudCBbMHgleF1cbiIsIGV2ZW50KSk7Ci0JCWJyZWFrOwogCX0KIAogCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9iYXkuYyBiL2RyaXZlcnMvYWNwaS9iYXkuYwppbmRleCBkMmZjOTQxLi42MWI2YzViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYmF5LmMKKysrIGIvZHJpdmVycy9hY3BpL2JheS5jCkBAIC0zMDEsMTYgKzMwMSwyMCBAQAogCSAqLwogCXBkZXYtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOwogCi0JaWYgKGFjcGlfYmF5X2FkZF9mcyhuZXdfYmF5KSkgewotCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihuZXdfYmF5LT5wZGV2KTsKLQkJZ290byBiYXlfYWRkX2VycjsKLQl9Ci0KIAkvKiByZWdpc3RlciBmb3IgZXZlbnRzIG9uIHRoaXMgZGV2aWNlICovCiAJc3RhdHVzID0gYWNwaV9pbnN0YWxsX25vdGlmeV9oYW5kbGVyKGhhbmRsZSwgQUNQSV9TWVNURU1fTk9USUZZLAogCQkJYmF5X25vdGlmeSwgbmV3X2JheSk7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQUkVGSVggIkVycm9yIGluc3RhbGxpbmcgYmF5IG5vdGlmeSBoYW5kbGVyXG4iKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyBQUkVGSVggIkVycm9yIGluc3RhbGxpbmcgYmF5IG5vdGlmeSBoYW5kbGVyXG4iKTsKKwkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIobmV3X2JheS0+cGRldik7CisJCWdvdG8gYmF5X2FkZF9lcnI7CisJfQorCisJaWYgKGFjcGlfYmF5X2FkZF9mcyhuZXdfYmF5KSkgeworCQlhY3BpX3JlbW92ZV9ub3RpZnlfaGFuZGxlcihoYW5kbGUsIEFDUElfU1lTVEVNX05PVElGWSwKKwkJCQkJICAgYmF5X25vdGlmeSk7CisJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKG5ld19iYXktPnBkZXYpOworCQlnb3RvIGJheV9hZGRfZXJyOwogCX0KIAogCS8qIGlmIHdlIGFyZSBvbiBhIGRvY2sgc3RhdGlvbiwgd2Ugc2hvdWxkIHJlZ2lzdGVyIGZvciBkb2NrCkBAIC0zNzMsNiArMzc3LDkgQEAKIAogCUlOSVRfTElTVF9IRUFEKCZkcml2ZV9iYXlzKTsKIAorCWlmIChhY3BpX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCS8qIGxvb2sgZm9yIGRvY2thYmxlIGRyaXZlIGJheXMgKi8KIAlhY3BpX3dhbGtfbmFtZXNwYWNlKEFDUElfVFlQRV9ERVZJQ0UsIEFDUElfUk9PVF9PQkpFQ1QsCiAJCUFDUElfVUlOVDMyX01BWCwgZmluZF9iYXksICZiYXlzLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9kaXNwYXRjaGVyL2RzZmllbGQuYyBiL2RyaXZlcnMvYWNwaS9kaXNwYXRjaGVyL2RzZmllbGQuYwppbmRleCBjNzgwNzgzLi5mOTg4YTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZGlzcGF0Y2hlci9kc2ZpZWxkLmMKKysrIGIvZHJpdmVycy9hY3BpL2Rpc3BhdGNoZXIvZHNmaWVsZC5jCkBAIC00NTAsMTAgKzQ1MCw2IEBACiAJCXJldHVybl9BQ1BJX1NUQVRVUyhBRV9CQURfUEFSQU1FVEVSKTsKIAl9CiAKLQlpZiAoIWFyZykgewotCQlyZXR1cm5fQUNQSV9TVEFUVVMoQUVfQU1MX05PX09QRVJBTkQpOwotCX0KLQogCS8qIENyZWF0aW5nIG5ldyBuYW1lc3BhY2Ugbm9kZShzKSwgc2hvdWxkIG5vdCBhbHJlYWR5IGV4aXN0ICovCiAKIAlmbGFncyA9IEFDUElfTlNfTk9fVVBTRUFSQ0ggfCBBQ1BJX05TX0RPTlRfT1BFTl9TQ09QRSB8CkBAIC00NjcsNiArNDYzLDcgQEAKIAogCS8qCiAJICogV2FsayB0aGUgbGlzdCBvZiBlbnRyaWVzIGluIHRoZSBmaWVsZF9saXN0CisJICogTm90ZTogZmllbGRfbGlzdCBjYW4gYmUgb2YgemVybyBsZW5ndGguIEluIHRoaXMgY2FzZSwgQXJnIHdpbGwgYmUgTlVMTC4KIAkgKi8KIAl3aGlsZSAoYXJnKSB7CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZG9jay5jIGIvZHJpdmVycy9hY3BpL2RvY2suYwppbmRleCBmYTQ0ZmI5Li5iYjdjNTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZG9jay5jCisrKyBiL2RyaXZlcnMvYWNwaS9kb2NrLmMKQEAgLTgzNCw3ICs4MzQsNyBAQAogCQlnb3RvIGRvY2tfYWRkX2VycjsKIAl9CiAKLQlwcmludGsoS0VSTl9JTkZPIFBSRUZJWCAiJXMgXG4iLCBBQ1BJX0RPQ0tfRFJJVkVSX0RFU0NSSVBUSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPIFBSRUZJWCAiJXNcbiIsIEFDUElfRE9DS19EUklWRVJfREVTQ1JJUFRJT04pOwogCiAJcmV0dXJuIDA7CiAKQEAgLTkxNyw2ICs5MTcsOSBAQAogCiAJZG9ja19zdGF0aW9uID0gTlVMTDsKIAorCWlmIChhY3BpX2Rpc2FibGVkKQorCQlyZXR1cm4gMDsKKwogCS8qIGxvb2sgZm9yIGEgZG9jayBzdGF0aW9uICovCiAJYWNwaV93YWxrX25hbWVzcGFjZShBQ1BJX1RZUEVfREVWSUNFLCBBQ1BJX1JPT1RfT0JKRUNULAogCQkJICAgIEFDUElfVUlOVDMyX01BWCwgZmluZF9kb2NrLCAmbnVtLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9lYy5jIGIvZHJpdmVycy9hY3BpL2VjLmMKaW5kZXggMDkyNDk5Mi4uNTYyMmFlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2VjLmMKKysrIGIvZHJpdmVycy9hY3BpL2VjLmMKQEAgLTE5NCw3ICsxOTQsNyBAQAogCQl3aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZGVsYXkpKSB7CiAJCQlpZiAoYWNwaV9lY19jaGVja19zdGF0dXMoZWMsIGV2ZW50KSkKIAkJCQlyZXR1cm4gMDsKLQkJCXVkZWxheShBQ1BJX0VDX1VERUxBWSk7CisJCQltc2xlZXAoMSk7CiAJCX0KIAl9CiAJcHJfZXJyKFBSRUZJWCAiYWNwaV9lY193YWl0IHRpbWVvdXQsIHN0YXR1cyA9IDB4JTIuMngsIGV2ZW50ID0gJXNcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZXhlY3V0ZXIvZXhjb25maWcuYyBiL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCmluZGV4IDI0ZGE5MjEuLjM5ZDc0MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCisrKyBiL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCkBAIC0zNzUsOSArMzc1LDE1IEBACiAJCWdvdG8gY2xlYW51cDsKIAl9CiAKKwkvKgorCSAqIEFkZCB0aGUgdGFibGUgdG8gdGhlIG5hbWVzcGFjZS4KKwkgKgorCSAqIE5vdGU6IFdlIGxvYWQgdGhlIHRhYmxlIG9iamVjdHMgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIG5hbWVzcGFjZS4KKwkgKiBUaGlzIGFwcGVhcnMgdG8gZ28gYWdhaW5zdCB0aGUgQUNQSSBzcGVjaWZpY2F0aW9uLCBidXQgd2UgZG8gaXQgZm9yCisJICogY29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIEFDUEkgaW1wbGVtZW50YXRpb25zLgorCSAqLwogCXN0YXR1cyA9Ci0JICAgIGFjcGlfZXhfYWRkX3RhYmxlKHRhYmxlX2luZGV4LCB3YWxrX3N0YXRlLT5zY29wZV9pbmZvLT5zY29wZS5ub2RlLAotCQkJICAgICAgJmRkYl9oYW5kbGUpOworCSAgICBhY3BpX2V4X2FkZF90YWJsZSh0YWJsZV9pbmRleCwgYWNwaV9nYmxfcm9vdF9ub2RlLCAmZGRiX2hhbmRsZSk7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7CiAKIAkJLyogT24gZXJyb3IsIHRhYmxlX3B0ciB3YXMgZGVhbGxvY2F0ZWQgYWJvdmUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9nbHVlLmMgYi9kcml2ZXJzL2FjcGkvZ2x1ZS5jCmluZGV4IDA2Zjg2MzQuLjliMjI3ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9nbHVlLmMKKysrIGIvZHJpdmVycy9hY3BpL2dsdWUuYwpAQCAtMjcyLDYgKzI3MiwxMiBAQAogc3RhdGljIGlubGluZSB2b2lkIHJ0Y193YWtlX3NldHVwKHZvaWQpCiB7CiAJYWNwaV9pbnN0YWxsX2ZpeGVkX2V2ZW50X2hhbmRsZXIoQUNQSV9FVkVOVF9SVEMsIHJ0Y19oYW5kbGVyLCBOVUxMKTsKKwkvKgorCSAqIEFmdGVyIHRoZSBSVEMgaGFuZGxlciBpcyBpbnN0YWxsZWQsIHRoZSBGaXhlZF9SVEMgZXZlbnQgc2hvdWxkCisJICogYmUgZGlzYWJsZWQuIE9ubHkgd2hlbiB0aGUgUlRDIGFsYXJtIGlzIHNldCB3aWxsIGl0IGJlIGVuYWJsZWQuCisJICovCisJYWNwaV9jbGVhcl9ldmVudChBQ1BJX0VWRU5UX1JUQyk7CisJYWNwaV9kaXNhYmxlX2V2ZW50KEFDUElfRVZFTlRfUlRDLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgcnRjX3dha2Vfb24oc3RydWN0IGRldmljZSAqZGV2KQpAQCAtMzI3LDYgKzMzMyw5IEBACiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gZ2V0X3J0Y19kZXYoKTsKIAorCWlmIChhY3BpX2Rpc2FibGVkKQorCQlyZXR1cm4gMDsKKwogCWlmIChkZXYpIHsKIAkJcnRjX3dha2Vfc2V0dXAoKTsKIAkJcnRjX2luZm8ud2FrZV9vbiA9IHJ0Y193YWtlX29uOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2hhcmR3YXJlL2h3c2xlZXAuYyBiL2RyaXZlcnMvYWNwaS9oYXJkd2FyZS9od3NsZWVwLmMKaW5kZXggZDk5MzdlMC4uZGJhM2NmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2hhcmR3YXJlL2h3c2xlZXAuYworKysgYi9kcml2ZXJzL2FjcGkvaGFyZHdhcmUvaHdzbGVlcC5jCkBAIC0yMjMsMTUgKzIyMywxNyBAQAogCQlicmVhazsKIAl9CiAKLQkvKiBTZXQgdGhlIHN5c3RlbSBpbmRpY2F0b3JzIHRvIHNob3cgdGhlIGRlc2lyZWQgc2xlZXAgc3RhdGUuICovCi0KKwkvKgorCSAqIFNldCB0aGUgc3lzdGVtIGluZGljYXRvcnMgdG8gc2hvdyB0aGUgZGVzaXJlZCBzbGVlcCBzdGF0ZS4KKwkgKiBfU1NUIGlzIGFuIG9wdGlvbmFsIG1ldGhvZCAocmV0dXJuIG5vIGVycm9yIGlmIG5vdCBmb3VuZCkKKwkgKi8KIAlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX29iamVjdChOVUxMLCBNRVRIT0RfTkFNRV9fU1NULCAmYXJnX2xpc3QsIE5VTEwpOwogCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSAmJiBzdGF0dXMgIT0gQUVfTk9UX0ZPVU5EKSB7CiAJCUFDUElfRVhDRVBUSU9OKChBRV9JTkZPLCBzdGF0dXMsCiAJCQkJIldoaWxlIGV4ZWN1dGluZyBtZXRob2QgX1NTVCIpKTsKIAl9CiAKLQlyZXR1cm5fQUNQSV9TVEFUVVMoc3RhdHVzKTsKKwlyZXR1cm5fQUNQSV9TVEFUVVMoQUVfT0spOwogfQogCiBBQ1BJX0VYUE9SVF9TWU1CT0woYWNwaV9lbnRlcl9zbGVlcF9zdGF0ZV9wcmVwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL251bWEuYyBiL2RyaXZlcnMvYWNwaS9udW1hLmMKaW5kZXggNWQ1OWNiMy4uNjU4ZTVmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL251bWEuYworKysgYi9kcml2ZXJzL2FjcGkvbnVtYS5jCkBAIC0xNDAsMTkgKzE0MCw0MiBAQAogCX0KIH0KIAorLyoKKyAqIEEgbG90IG9mIEJJT1MgZmlsbCBpbiAxMCAoPSBubyBkaXN0YW5jZSkgZXZlcnl3aGVyZS4gVGhpcyBtZXNzZXMKKyAqIHVwIHRoZSBOVU1BIGhldXJpc3RpY3Mgd2hpY2ggd2FudHMgdGhlIGxvY2FsIG5vZGUgdG8gaGF2ZSBhIHNtYWxsZXIKKyAqIGRpc3RhbmNlIHRoYW4gdGhlIG90aGVycy4KKyAqIERvIHNvbWUgcXVpY2sgY2hlY2tzIGhlcmUgYW5kIG9ubHkgdXNlIHRoZSBTTElUIGlmIGl0IHBhc3Nlcy4KKyAqLworc3RhdGljIF9faW5pdCBpbnQgc2xpdF92YWxpZChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQoreworCWludCBpLCBqOworCWludCBkID0gc2xpdC0+bG9jYWxpdHlfY291bnQ7CisJZm9yIChpID0gMDsgaSA8IGQ7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgZDsgaisrKSAgeworCQkJdTggdmFsID0gc2xpdC0+ZW50cnlbZCppICsgal07CisJCQlpZiAoaSA9PSBqKSB7CisJCQkJaWYgKHZhbCAhPSBMT0NBTF9ESVNUQU5DRSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9IGVsc2UgaWYgKHZhbCA8PSBMT0NBTF9ESVNUQU5DRSkKKwkJCQlyZXR1cm4gMDsKKwkJfQorCX0KKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9zbGl0KHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqdGFibGUpCiB7CiAJc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdDsKLQl1MzIgbG9jYWxpdGllczsKIAogCWlmICghdGFibGUpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc2xpdCA9IChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICopdGFibGU7CiAKLQkvKiBkb3duY2FzdCBqdXN0IGZvciAlbGx1IHZzICVsdSBmb3IgaTM4Ni9pYTY0ICAqLwotCWxvY2FsaXRpZXMgPSAodTMyKSBzbGl0LT5sb2NhbGl0eV9jb3VudDsKLQorCWlmICghc2xpdF92YWxpZChzbGl0KSkgeworCQlwcmludGsoS0VSTl9JTkZPICJBQ1BJOiBTTElUIHRhYmxlIGxvb2tzIGludmFsaWQuIE5vdCB1c2VkLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAlhY3BpX251bWFfc2xpdF9pbml0KHNsaXQpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGFyc2VyL3BzYXJncy5jIGIvZHJpdmVycy9hY3BpL3BhcnNlci9wc2FyZ3MuYwppbmRleCBmMWU4YmY2Li5lOTQ0NjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvcGFyc2VyL3BzYXJncy5jCisrKyBiL2RyaXZlcnMvYWNwaS9wYXJzZXIvcHNhcmdzLmMKQEAgLTI2OCw3ICsyNjgsNyBAQAogCSAqLwogCWlmIChBQ1BJX1NVQ0NFU1Moc3RhdHVzKSAmJgogCSAgICBwb3NzaWJsZV9tZXRob2RfY2FsbCAmJiAobm9kZS0+dHlwZSA9PSBBQ1BJX1RZUEVfTUVUSE9EKSkgewotCQlpZiAod2Fsa19zdGF0ZS0+b3AtPmNvbW1vbi5hbWxfb3Bjb2RlID09IEFNTF9VTkxPQURfT1ApIHsKKwkJaWYgKHdhbGtfc3RhdGUtPm9wY29kZSA9PSBBTUxfVU5MT0FEX09QKSB7CiAJCQkvKgogCQkJICogYWNwaV9wc19nZXRfbmV4dF9uYW1lc3RyaW5nIGhhcyBpbmNyZWFzZWQgdGhlIEFNTCBwb2ludGVyLAogCQkJICogc28gd2UgbmVlZCB0byByZXN0b3JlIHRoZSBzYXZlZCBBTUwgcG9pbnRlciBmb3IgbWV0aG9kIGNhbGwuCkBAIC02OTEsNyArNjkxLDcgQEAKIAogCQkJLyogVG8gc3VwcG9ydCBzdXBlcl9uYW1lIGFyZyBvZiBVbmxvYWQgKi8KIAotCQkJaWYgKHdhbGtfc3RhdGUtPm9wLT5jb21tb24uYW1sX29wY29kZSA9PSBBTUxfVU5MT0FEX09QKSB7CisJCQlpZiAod2Fsa19zdGF0ZS0+b3Bjb2RlID09IEFNTF9VTkxPQURfT1ApIHsKIAkJCQlzdGF0dXMgPQogCQkJCSAgICBhY3BpX3BzX2dldF9uZXh0X25hbWVwYXRoKHdhbGtfc3RhdGUsCiAJCQkJCQkJICAgICAgcGFyc2VyX3N0YXRlLCBhcmcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2NvcmUuYyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfY29yZS5jCmluZGV4IDM4NmU1YWEuLjlkZDBmYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfY29yZS5jCisrKyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfY29yZS5jCkBAIC04Niw3ICs4Niw2IEBACiBzdGF0aWMgdm9pZCBhY3BpX3Byb2Nlc3Nvcl9ub3RpZnkoYWNwaV9oYW5kbGUgaGFuZGxlLCB1MzIgZXZlbnQsIHZvaWQgKmRhdGEpOwogc3RhdGljIGFjcGlfc3RhdHVzIGFjcGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0KGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50ICpwX2NwdSk7CiBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX2hhbmRsZV9lamVjdChzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByKTsKLWV4dGVybiBpbnQgYWNwaV9wcm9jZXNzb3JfdHN0YXRlX2hhc19jaGFuZ2VkKHN0cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIpOwogCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgcHJvY2Vzc29yX2RldmljZV9pZHNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jIGIvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9pZGxlLmMKaW5kZXggMmRkMmMxZi4uNTU2ZWUxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9pZGxlLmMKKysrIGIvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9pZGxlLmMKQEAgLTE2NjksNiArMTY2OSw3IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCWRldi0+Y3B1ID0gcHItPmlkOwogCWZvciAoaSA9IDA7IGkgPCBDUFVJRExFX1NUQVRFX01BWDsgaSsrKSB7CiAJCWRldi0+c3RhdGVzW2ldLm5hbWVbMF0gPSAnXDAnOwogCQlkZXYtPnN0YXRlc1tpXS5kZXNjWzBdID0gJ1wwJzsKQEAgLTE3MzgsNyArMTczOSw3IEBACiAKIGludCBhY3BpX3Byb2Nlc3Nvcl9jc3RfaGFzX2NoYW5nZWQoc3RydWN0IGFjcGlfcHJvY2Vzc29yICpwcikKIHsKLQlpbnQgcmV0OworCWludCByZXQgPSAwOwogCiAJaWYgKGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGUpCiAJCXJldHVybiAwOwpAQCAtMTc1Niw4ICsxNzU3LDEwIEBACiAJY3B1aWRsZV9wYXVzZV9hbmRfbG9jaygpOwogCWNwdWlkbGVfZGlzYWJsZV9kZXZpY2UoJnByLT5wb3dlci5kZXYpOwogCWFjcGlfcHJvY2Vzc29yX2dldF9wb3dlcl9pbmZvKHByKTsKLQlhY3BpX3Byb2Nlc3Nvcl9zZXR1cF9jcHVpZGxlKHByKTsKLQlyZXQgPSBjcHVpZGxlX2VuYWJsZV9kZXZpY2UoJnByLT5wb3dlci5kZXYpOworCWlmIChwci0+ZmxhZ3MucG93ZXIpIHsKKwkJYWNwaV9wcm9jZXNzb3Jfc2V0dXBfY3B1aWRsZShwcik7CisJCXJldCA9IGNwdWlkbGVfZW5hYmxlX2RldmljZSgmcHItPnBvd2VyLmRldik7CisJfQogCWNwdWlkbGVfcmVzdW1lX2FuZF91bmxvY2soKTsKIAogCXJldHVybiByZXQ7CkBAIC0xODEzLDcgKzE4MTYsNiBAQAogCWlmIChwci0+ZmxhZ3MucG93ZXIpIHsKICNpZmRlZiBDT05GSUdfQ1BVX0lETEUKIAkJYWNwaV9wcm9jZXNzb3Jfc2V0dXBfY3B1aWRsZShwcik7Ci0JCXByLT5wb3dlci5kZXYuY3B1ID0gcHItPmlkOwogCQlpZiAoY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UoJnByLT5wb3dlci5kZXYpKQogCQkJcmV0dXJuIC1FSU87CiAjZW5kaWYKQEAgLTE4NTAsOCArMTg1Miw3IEBACiAJCXJldHVybiAwOwogCiAjaWZkZWYgQ09ORklHX0NQVV9JRExFCi0JaWYgKHByLT5mbGFncy5wb3dlcikKLQkJY3B1aWRsZV91bnJlZ2lzdGVyX2RldmljZSgmcHItPnBvd2VyLmRldik7CisJY3B1aWRsZV91bnJlZ2lzdGVyX2RldmljZSgmcHItPnBvd2VyLmRldik7CiAjZW5kaWYKIAlwci0+ZmxhZ3MucG93ZXJfc2V0dXBfZG9uZSA9IDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9zbGVlcC9tYWluLmMgYi9kcml2ZXJzL2FjcGkvc2xlZXAvbWFpbi5jCmluZGV4IGMzYjBjZDguLjQ5NWM2M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9zbGVlcC9tYWluLmMKKysrIGIvZHJpdmVycy9hY3BpL3NsZWVwL21haW4uYwpAQCAtMzYsOSArMzYsOCBAQAogCQlpZiAoIWFjcGlfd2FrZXVwX2FkZHJlc3MpIHsKIAkJCXJldHVybiAtRUZBVUxUOwogCQl9Ci0JCWFjcGlfc2V0X2Zpcm13YXJlX3dha2luZ192ZWN0b3IoKGFjcGlfcGh5c2ljYWxfYWRkcmVzcykKLQkJCQkJCXZpcnRfdG9fcGh5cygodm9pZCAqKQotCQkJCQkJCSAgICAgYWNwaV93YWtldXBfYWRkcmVzcykpOworCQlhY3BpX3NldF9maXJtd2FyZV93YWtpbmdfdmVjdG9yKAorCQkJCShhY3BpX3BoeXNpY2FsX2FkZHJlc3MpYWNwaV93YWtldXBfYWRkcmVzcyk7CiAKIAl9CiAJQUNQSV9GTFVTSF9DUFVfQ0FDSEUoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9zbGVlcC9wcm9jLmMgYi9kcml2ZXJzL2FjcGkvc2xlZXAvcHJvYy5jCmluZGV4IDhhNWZlODcuLjRlYmJiYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9zbGVlcC9wcm9jLmMKKysrIGIvZHJpdmVycy9hY3BpL3NsZWVwL3Byb2MuYwpAQCAtMzE1LDggKzMxNSwxMSBAQAogCQljbW9zX2JjZF93cml0ZShkYXksIGFjcGlfZ2JsX0ZBRFQuZGF5X2FsYXJtLCBydGNfY29udHJvbCk7CiAJaWYgKGFjcGlfZ2JsX0ZBRFQubW9udGhfYWxhcm0pCiAJCWNtb3NfYmNkX3dyaXRlKG1vLCBhY3BpX2dibF9GQURULm1vbnRoX2FsYXJtLCBydGNfY29udHJvbCk7Ci0JaWYgKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSkKKwlpZiAoYWNwaV9nYmxfRkFEVC5jZW50dXJ5KSB7CisJCWlmIChhZGp1c3QpCisJCQl5ciArPSBjbW9zX2JjZF9yZWFkKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSwgcnRjX2NvbnRyb2wpICogMTAwOwogCQljbW9zX2JjZF93cml0ZSh5ciAvIDEwMCwgYWNwaV9nYmxfRkFEVC5jZW50dXJ5LCBydGNfY29udHJvbCk7CisJfQogCS8qIGVuYWJsZSB0aGUgcnRjIGFsYXJtIGludGVycnVwdCAqLwogCXJ0Y19jb250cm9sIHw9IFJUQ19BSUU7CiAJQ01PU19XUklURShydGNfY29udHJvbCwgUlRDX0NPTlRST0wpOwpAQCAtNDk1LDYgKzQ5OCwxMiBAQAogCQkgICAgYWNwaV9yb290X2RpciwgJmFjcGlfc3lzdGVtX2FsYXJtX2ZvcHMpOwogCiAJYWNwaV9pbnN0YWxsX2ZpeGVkX2V2ZW50X2hhbmRsZXIoQUNQSV9FVkVOVF9SVEMsIHJ0Y19oYW5kbGVyLCBOVUxMKTsKKwkvKgorCSAqIERpc2FibGUgdGhlIFJUQyBldmVudCBhZnRlciBpbnN0YWxsaW5nIFJUQyBoYW5kbGVyLgorCSAqIE9ubHkgd2hlbiBSVEMgYWxhcm0gaXMgc2V0IHdpbGwgaXQgYmUgZW5hYmxlZC4KKwkgKi8KKwlhY3BpX2NsZWFyX2V2ZW50KEFDUElfRVZFTlRfUlRDKTsKKwlhY3BpX2Rpc2FibGVfZXZlbnQoQUNQSV9FVkVOVF9SVEMsIDApOwogI2VuZGlmCQkJCS8qIEhBVkVfQUNQSV9MRUdBQ1lfQUxBUk0gKi8KIAogCS8qICd3YWtldXAgZGV2aWNlJyBbUi9XXSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3N5c3RlbS5jIGIvZHJpdmVycy9hY3BpL3N5c3RlbS5jCmluZGV4IDc2OWYyNDguLjViZDJkZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9zeXN0ZW0uYworKysgYi9kcml2ZXJzL2FjcGkvc3lzdGVtLmMKQEAgLTc3LDcgKzc3LDYgQEAKIAkgICAgY29udGFpbmVyX29mKGJpbl9hdHRyLCBzdHJ1Y3QgYWNwaV90YWJsZV9hdHRyLCBhdHRyKTsKIAlzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlX2hlYWRlciA9IE5VTEw7CiAJYWNwaV9zdGF0dXMgc3RhdHVzOwotCXNzaXplX3QgcmV0X2NvdW50ID0gY291bnQ7CiAKIAlzdGF0dXMgPQogCSAgICBhY3BpX2dldF90YWJsZSh0YWJsZV9hdHRyLT5uYW1lLCB0YWJsZV9hdHRyLT5pbnN0YW5jZSwKQEAgLTg1LDE4ICs4NCw4IEBACiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChvZmZzZXQgPj0gdGFibGVfaGVhZGVyLT5sZW5ndGgpIHsKLQkJcmV0X2NvdW50ID0gMDsKLQkJZ290byBlbmQ7Ci0JfQotCi0JaWYgKG9mZnNldCArIHJldF9jb3VudCA+IHRhYmxlX2hlYWRlci0+bGVuZ3RoKQotCQlyZXRfY291bnQgPSB0YWJsZV9oZWFkZXItPmxlbmd0aCAtIG9mZnNldDsKLQotCW1lbWNweShidWYsICgoY2hhciAqKXRhYmxlX2hlYWRlcikgKyBvZmZzZXQsIHJldF9jb3VudCk7Ci0KLSAgICAgIGVuZDoKLQlyZXR1cm4gcmV0X2NvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2Zmc2V0LAorCQkJCQl0YWJsZV9oZWFkZXIsIHRhYmxlX2hlYWRlci0+bGVuZ3RoKTsKIH0KIAogc3RhdGljIHZvaWQgYWNwaV90YWJsZV9hdHRyX2luaXQoc3RydWN0IGFjcGlfdGFibGVfYXR0ciAqdGFibGVfYXR0ciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS90YWJsZXMvdGJpbnN0YWwuYyBiL2RyaXZlcnMvYWNwaS90YWJsZXMvdGJpbnN0YWwuYwppbmRleCA0MDJmOTNlLi41MzM2Y2U4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvdGFibGVzL3RiaW5zdGFsLmMKKysrIGIvZHJpdmVycy9hY3BpL3RhYmxlcy90Ymluc3RhbC5jCkBAIC0xMjMsMjQgKzEyMywxMyBAQAogCQl9CiAJfQogCi0JLyogVGhlIHRhYmxlIG11c3QgYmUgZWl0aGVyIGFuIFNTRFQgb3IgYSBQU0RUIG9yIGFuIE9FTXggKi8KLQotCWlmICghQUNQSV9DT01QQVJFX05BTUUodGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlLCBBQ1BJX1NJR19QU0RUKSYmCi0JICAgICFBQ1BJX0NPTVBBUkVfTkFNRSh0YWJsZV9kZXNjLT5wb2ludGVyLT5zaWduYXR1cmUsIEFDUElfU0lHX1NTRFQpJiYKLQkgICAgc3RybmNtcCh0YWJsZV9kZXNjLT5wb2ludGVyLT5zaWduYXR1cmUsICJPRU0iLCAzKSkgewotCQkvKiBDaGVjayBmb3IgYSBwcmludGFibGUgbmFtZSAqLwotCQlpZiAoYWNwaV91dF92YWxpZF9hY3BpX25hbWUoCi0JCQkqKHUzMiAqKSB0YWJsZV9kZXNjLT5wb2ludGVyLT5zaWduYXR1cmUpKSB7Ci0JCQlBQ1BJX0VSUk9SKChBRV9JTkZPLCAiVGFibGUgaGFzIGludmFsaWQgc2lnbmF0dXJlICIKLQkJCQkJIlslNC40c10sIG11c3QgYmUgU1NEVCBvciBQU0RUIiwKLQkJCQkgICAgdGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlKSk7Ci0JCX0gZWxzZSB7Ci0JCQlBQ1BJX0VSUk9SKChBRV9JTkZPLCAiVGFibGUgaGFzIGludmFsaWQgc2lnbmF0dXJlICIKLQkJCQkJIigweCU4LjhYKSwgbXVzdCBiZSBTU0RUIG9yIFBTRFQiLAotCQkJCSAgICAqKHUzMiAqKSB0YWJsZV9kZXNjLT5wb2ludGVyLT5zaWduYXR1cmUpKTsKLQkJfQotCQlyZXR1cm5fQUNQSV9TVEFUVVMoQUVfQkFEX1NJR05BVFVSRSk7Ci0JfQorCS8qCisJICogT3JpZ2luYWxseSwgd2UgY2hlY2tlZCB0aGUgdGFibGUgc2lnbmF0dXJlIGZvciAiU1NEVCIgb3IgIlBTRFQiIGhlcmUuCisJICogTmV4dCwgd2UgYWRkZWQgc3VwcG9ydCBmb3IgT0VNeCB0YWJsZXMsIHNpZ25hdHVyZSAiT0VNIi4KKwkgKiBWYWxpZCB0YWJsZXMgd2VyZSBlbmNvdW50ZXJlZCB3aXRoIGEgbnVsbCBzaWduYXR1cmUsIHNvIHdlJ3ZlIGp1c3QKKwkgKiBnaXZlbiB1cCBvbiB2YWxpZGF0aW5nIHRoZSBzaWduYXR1cmUsIHNpbmNlIGl0IHNlZW1zIHRvIGJlIGEgd2FzdGUKKwkgKiBvZiBjb2RlLiBUaGUgb3JpZ2luYWwgY29kZSB3YXMgcmVtb3ZlZCAoMDUvMjAwOCkuCisJICovCiAKIAkodm9pZClhY3BpX3V0X2FjcXVpcmVfbXV0ZXgoQUNQSV9NVFhfVEFCTEVTKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3RhYmxlcy90YnhmYWNlLmMgYi9kcml2ZXJzL2FjcGkvdGFibGVzL3RieGZhY2UuYwppbmRleCBmYjU3YjkzLi4wZTMxOTYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvdGFibGVzL3RieGZhY2UuYworKysgYi9kcml2ZXJzL2FjcGkvdGFibGVzL3RieGZhY2UuYwpAQCAtNTQwLDcgKzU0MCw3IEBACiAJCWFjcGlfdGJfcHJpbnRfdGFibGVfaGVhZGVyKDAsIHRhYmxlKTsKIAogCQlpZiAobm9fYXV0b19zc2R0ID09IDApIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkFDUEk6IERTRFQgb3ZlcnJpZGUgdXNlcyBvcmlnaW5hbCBTU0RUcyB1bmxlc3MgXCJhY3BpX25vX2F1dG9fc3NkdFwiIik7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJBQ1BJOiBEU0RUIG92ZXJyaWRlIHVzZXMgb3JpZ2luYWwgU1NEVHMgdW5sZXNzIFwiYWNwaV9ub19hdXRvX3NzZHRcIlxuIik7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS90aGVybWFsLmMgYi9kcml2ZXJzL2FjcGkvdGhlcm1hbC5jCmluZGV4IDUwNDM4NWIuLjg0Yzc5NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS90aGVybWFsLmMKKysrIGIvZHJpdmVycy9hY3BpL3RoZXJtYWwuYwpAQCAtMzY0LDEwICszNjQsMTcgQEAKIAlpZiAoZmxhZyAmIEFDUElfVFJJUFNfQ1JJVElDQUwpIHsKIAkJc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9pbnRlZ2VyKHR6LT5kZXZpY2UtPmhhbmRsZSwKIAkJCQkiX0NSVCIsIE5VTEwsICZ0ei0+dHJpcHMuY3JpdGljYWwudGVtcGVyYXR1cmUpOwotCQlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHsKKwkJLyoKKwkJICogVHJlYXQgZnJlZXppbmcgdGVtcGVyYXR1cmVzIGFzIGludmFsaWQgYXMgd2VsbDsgc29tZQorCQkgKiBCSU9TZXMgcmV0dXJuIHJlYWxseSBsb3cgdmFsdWVzIGFuZCBjYXVzZSByZWJvb3RzIGF0IHN0YXJ0dXAuCisJCSAqIEJlbG93IHplcm8gKENlbGNpdXMpIHZhbHVlcyBjbGVhcmx5IGFyZW4ndCByaWdodCBmb3Igc3VyZS4uCisJCSAqIC4uLiBzbyBsZXRzIGRpc2NhcmQgdGhvc2UgYXMgaW52YWxpZC4KKwkJICovCisJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSB8fAorCQkJCXR6LT50cmlwcy5jcml0aWNhbC50ZW1wZXJhdHVyZSA8PSAyNzMyKSB7CiAJCQl0ei0+dHJpcHMuY3JpdGljYWwuZmxhZ3MudmFsaWQgPSAwOwogCQkJQUNQSV9FWENFUFRJT04oKEFFX0lORk8sIHN0YXR1cywKLQkJCQkJIk5vIGNyaXRpY2FsIHRocmVzaG9sZCIpKTsKKwkJCQkJIk5vIG9yIGludmFsaWQgY3JpdGljYWwgdGhyZXNob2xkIikpOwogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCX0gZWxzZSB7CiAJCQl0ei0+dHJpcHMuY3JpdGljYWwuZmxhZ3MudmFsaWQgPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3V0aWxpdGllcy91dG1pc2MuYyBiL2RyaXZlcnMvYWNwaS91dGlsaXRpZXMvdXRtaXNjLmMKaW5kZXggZTRiYTcxOS4uMWYwNTdiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3V0aWxpdGllcy91dG1pc2MuYworKysgYi9kcml2ZXJzL2FjcGkvdXRpbGl0aWVzL3V0bWlzYy5jCkBAIC0xMDQ4LDYgKzEwNDgsNyBAQAogCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAJYWNwaV9vc192cHJpbnRmKGZvcm1hdCwgYXJncyk7CiAJYWNwaV9vc19wcmludGYoIiBbJVhdXG4iLCBBQ1BJX0NBX1ZFUlNJT04pOworCXZhX2VuZChhcmdzKTsKIH0KIAogRVhQT1JUX1NZTUJPTChhY3BpX3V0X2V4Y2VwdGlvbik7CkBAIC0xMDYzLDcgKzEwNjQsNiBAQAogCWFjcGlfb3NfdnByaW50Zihmb3JtYXQsIGFyZ3MpOwogCWFjcGlfb3NfcHJpbnRmKCIgWyVYXVxuIiwgQUNQSV9DQV9WRVJTSU9OKTsKIAl2YV9lbmQoYXJncyk7Ci0JdmFfZW5kKGFyZ3MpOwogfQogCiB2b2lkIEFDUElfSU5URVJOQUxfVkFSX1hGQUNFCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvdmlkZW8uYyBiL2RyaXZlcnMvYWNwaS92aWRlby5jCmluZGV4IDVlNWRkYTNhLi5kMDg5YzQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvdmlkZW8uYworKysgYi9kcml2ZXJzL2FjcGkvdmlkZW8uYwpAQCAtMTcxMyw3ICsxNzEzLDggQEAKIAogCQlzdGF0dXMgPSBhY3BpX3ZpZGVvX2J1c19nZXRfb25lX2RldmljZShkZXYsIHZpZGVvKTsKIAkJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7Ci0JCQlBQ1BJX0VYQ0VQVElPTigoQUVfSU5GTywgc3RhdHVzLCAiQ2FudCBhdHRhY2ggZGV2aWNlIikpOworCQkJQUNQSV9ERUJVR19QUklOVCgoQUNQSV9EQl9XQVJOLAorCQkJCQkiQ2FudCBhdHRhY2ggZGV2aWNlIikpOwogCQkJY29udGludWU7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9LY29uZmlnIGIvZHJpdmVycy9hdGEvS2NvbmZpZwppbmRleCA5YmYyOTg2Li5hZTg0OTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9LY29uZmlnCisrKyBiL2RyaXZlcnMvYXRhL0tjb25maWcKQEAgLTY1MSw5ICs2NTEsMTcgQEAKIAkgIFN1cHBvcnQgZm9yIHRoZSBXaW5ib25kIFc4Mzc1OUEgY29udHJvbGxlciBvbiBWZXNhIExvY2FsIEJ1cwogCSAgc3lzdGVtcy4KIAorY29uZmlnIEhBVkVfUEFUQV9QTEFURk9STQorCWJvb2wKKwloZWxwCisJICBUaGlzIGlzIGFuIGludGVybmFsIGNvbmZpZ3VyYXRpb24gbm9kZSBmb3IgYW55IG1hY2hpbmUgdGhhdAorCSAgdXNlcyBwYXRhLXBsYXRmb3JtIGRyaXZlciB0byBlbmFibGUgdGhlIHJlbGV2YW50IGRyaXZlciBpbiB0aGUKKwkgIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHdpdGhvdXQgaGF2aW5nIHRvIHN1Ym1pdCBlbmRsZXNzIHBhdGNoZXMKKwkgIHRvIHVwZGF0ZSB0aGUgUEFUQV9QTEFURk9STSBlbnRyeS4KKwogY29uZmlnIFBBVEFfUExBVEZPUk0KIAl0cmlzdGF0ZSAiR2VuZXJpYyBwbGF0Zm9ybSBkZXZpY2UgUEFUQSBzdXBwb3J0IgotCWRlcGVuZHMgb24gRU1CRURERUQgfHwgQVJDSF9SUEMgfHwgUFBDCisJZGVwZW5kcyBvbiBFTUJFRERFRCB8fCBBUkNIX1JQQyB8fCBQUEMgfHwgSEFWRV9QQVRBX1BMQVRGT1JNCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBnZW5lcmljIGRpcmVjdGx5IGNvbm5lY3RlZCBBVEEKIAkgIGRldmljZXMgY29tbW9ubHkgZm91bmQgb24gZW1iZWRkZWQgc3lzdGVtcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZlcnMvYXRhL2FoY2kuYwppbmRleCA1NDRiN2Q2Li41ZTY0NjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9haGNpLmMKKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jCkBAIC04OSw2ICs4OSw4IEBACiAJYm9hcmRfYWhjaV9zYjYwMAk9IDMsCiAJYm9hcmRfYWhjaV9tdgkJPSA0LAogCWJvYXJkX2FoY2lfc2I3MDAJPSA1LAorCWJvYXJkX2FoY2lfbWNwNjUJPSA2LAorCWJvYXJkX2FoY2lfbm9wbXAJPSA3LAogCiAJLyogZ2xvYmFsIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCiAJSE9TVF9DQVAJCT0gMHgwMCwgLyogaG9zdCBjYXBhYmlsaXRpZXMgKi8KQEAgLTE5MCw2ICsxOTIsNyBAQAogCUFIQ0lfSEZMQUdfTk9fUE1QCQk9ICgxIDw8IDYpLCAvKiBubyBQTVAgKi8KIAlBSENJX0hGTEFHX05PX0hPVFBMVUcJCT0gKDEgPDwgNyksIC8qIGlnbm9yZSBQeFNFUlIuRElBRy5OICovCiAJQUhDSV9IRkxBR19TRUNUMjU1CQk9ICgxIDw8IDgpLCAvKiBtYXggMjU1IHNlY3RvcnMgKi8KKwlBSENJX0hGTEFHX1lFU19OQ1EJCT0gKDEgPDwgOSksIC8qIGZvcmNlIE5DUSBjYXAgb24gKi8KIAogCS8qIGFwLT5mbGFncyBiaXRzICovCiAKQEAgLTI1Myw2ICsyNTYsOCBAQAogc3RhdGljIHZvaWQgYWhjaV9wbXBfZGV0YWNoKHN0cnVjdCBhdGFfcG9ydCAqYXApOwogc3RhdGljIGludCBhaGNpX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpOworc3RhdGljIGludCBhaGNpX3NiNjAwX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCisJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpOwogc3RhdGljIGludCBhaGNpX2hhcmRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpOwogc3RhdGljIGludCBhaGNpX3Z0ODI1MV9oYXJkcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLApAQCAtMzI5LDYgKzMzNCwxMiBAQAogCS5oYXJkcmVzZXQJCT0gYWhjaV9wNXdkaF9oYXJkcmVzZXQsCiB9OwogCitzdGF0aWMgc3RydWN0IGF0YV9wb3J0X29wZXJhdGlvbnMgYWhjaV9zYjYwMF9vcHMgPSB7CisJLmluaGVyaXRzCQk9ICZhaGNpX29wcywKKwkuc29mdHJlc2V0CQk9IGFoY2lfc2I2MDBfc29mdHJlc2V0LAorCS5wbXBfc29mdHJlc2V0CQk9IGFoY2lfc2I2MDBfc29mdHJlc2V0LAorfTsKKwogI2RlZmluZSBBSENJX0hGTEFHUyhmbGFncykJLnByaXZhdGVfZGF0YQk9ICh2b2lkICopKGZsYWdzKQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gYWhjaV9wb3J0X2luZm9bXSA9IHsKQEAgLTM1OSwxMSArMzcwLDExIEBACiAJewogCQlBSENJX0hGTEFHUwkoQUhDSV9IRkxBR19JR05fU0VSUl9JTlRFUk5BTCB8CiAJCQkJIEFIQ0lfSEZMQUdfMzJCSVRfT05MWSB8IEFIQ0lfSEZMQUdfTk9fTVNJIHwKLQkJCQkgQUhDSV9IRkxBR19TRUNUMjU1IHwgQUhDSV9IRkxBR19OT19QTVApLAorCQkJCSBBSENJX0hGTEFHX1NFQ1QyNTUpLAogCQkuZmxhZ3MJCT0gQUhDSV9GTEFHX0NPTU1PTiwKIAkJLnBpb19tYXNrCT0gMHgxZiwgLyogcGlvMC00ICovCiAJCS51ZG1hX21hc2sJPSBBVEFfVURNQTYsCi0JCS5wb3J0X29wcwk9ICZhaGNpX29wcywKKwkJLnBvcnRfb3BzCT0gJmFoY2lfc2I2MDBfb3BzLAogCX0sCiAJLyogYm9hcmRfYWhjaV9tdiAqLwogCXsKQEAgLTM3Nyw4ICszODgsMjMgQEAKIAl9LAogCS8qIGJvYXJkX2FoY2lfc2I3MDAgKi8KIAl7Ci0JCUFIQ0lfSEZMQUdTCShBSENJX0hGTEFHX0lHTl9TRVJSX0lOVEVSTkFMIHwKLQkJCQkgQUhDSV9IRkxBR19OT19QTVApLAorCQlBSENJX0hGTEFHUwkoQUhDSV9IRkxBR19JR05fU0VSUl9JTlRFUk5BTCksCisJCS5mbGFncwkJPSBBSENJX0ZMQUdfQ09NTU9OLAorCQkucGlvX21hc2sJPSAweDFmLCAvKiBwaW8wLTQgKi8KKwkJLnVkbWFfbWFzawk9IEFUQV9VRE1BNiwKKwkJLnBvcnRfb3BzCT0gJmFoY2lfc2I2MDBfb3BzLAorCX0sCisJLyogYm9hcmRfYWhjaV9tY3A2NSAqLworCXsKKwkJQUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfWUVTX05DUSksCisJCS5mbGFncwkJPSBBSENJX0ZMQUdfQ09NTU9OLAorCQkucGlvX21hc2sJPSAweDFmLCAvKiBwaW8wLTQgKi8KKwkJLnVkbWFfbWFzawk9IEFUQV9VRE1BNiwKKwkJLnBvcnRfb3BzCT0gJmFoY2lfb3BzLAorCX0sCisJLyogYm9hcmRfYWhjaV9ub3BtcCAqLworCXsKKwkJQUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfTk9fUE1QKSwKIAkJLmZsYWdzCQk9IEFIQ0lfRkxBR19DT01NT04sCiAJCS5waW9fbWFzawk9IDB4MWYsIC8qIHBpbzAtNCAqLwogCQkudWRtYV9tYXNrCT0gQVRBX1VETUE2LApAQCAtNDM4LDE0ICs0NjQsMTQgQEAKIAl7IFBDSV9WREVWSUNFKFZJQSwgMHg2Mjg3KSwgYm9hcmRfYWhjaV92dDgyNTEgfSwgLyogVklBIFZUODI1MSAqLwogCiAJLyogTlZJRElBICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0YyksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0ZCksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0ZSksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0ZiksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1YyksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1ZCksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1ZSksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1ZiksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0YyksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KKwl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNDRkKSwgYm9hcmRfYWhjaV9tY3A2NSB9LAkvKiBNQ1A2NSAqLworCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGUpLCBib2FyZF9haGNpX21jcDY1IH0sCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0ZiksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KKwl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNDVjKSwgYm9hcmRfYWhjaV9tY3A2NSB9LAkvKiBNQ1A2NSAqLworCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWQpLCBib2FyZF9haGNpX21jcDY1IH0sCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1ZSksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KKwl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNDVmKSwgYm9hcmRfYWhjaV9tY3A2NSB9LAkvKiBNQ1A2NSAqLwogCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA1NTApLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NyAqLwogCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA1NTEpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NyAqLwogCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA1NTIpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NyAqLwpAQCAtNTA4LDkgKzUzNCw5IEBACiAJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjNyksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCiAKIAkvKiBTaVMgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDExODQpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjYgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDExODUpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjYgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDAxODYpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjggKi8KKwl7IFBDSV9WREVWSUNFKFNJLCAweDExODQpLCBib2FyZF9haGNpX25vcG1wIH0sCQkvKiBTaVMgOTY2ICovCisJeyBQQ0lfVkRFVklDRShTSSwgMHgxMTg1KSwgYm9hcmRfYWhjaV9ub3BtcCB9LAkJLyogU2lTIDk2OCAqLworCXsgUENJX1ZERVZJQ0UoU0ksIDB4MDE4NiksIGJvYXJkX2FoY2lfbm9wbXAgfSwJCS8qIFNpUyA5NjggKi8KIAogCS8qIE1hcnZlbGwgKi8KIAl7IFBDSV9WREVWSUNFKE1BUlZFTEwsIDB4NjE0NSksIGJvYXJkX2FoY2lfbXYgfSwJLyogNjE0NSAqLwpAQCAtNjI0LDEyICs2NTAsMjYgQEAKIAkJY2FwICY9IH5IT1NUX0NBUF9OQ1E7CiAJfQogCisJaWYgKCEoY2FwICYgSE9TVF9DQVBfTkNRKSAmJiAoaHByaXYtPmZsYWdzICYgQUhDSV9IRkxBR19ZRVNfTkNRKSkgeworCQlkZXZfcHJpbnRrKEtFUk5fSU5GTywgJnBkZXYtPmRldiwKKwkJCSAgICJjb250cm9sbGVyIGNhbiBkbyBOQ1EsIHR1cm5pbmcgb24gQ0FQX05DUVxuIik7CisJCWNhcCB8PSBIT1NUX0NBUF9OQ1E7CisJfQorCiAJaWYgKChjYXAgJiBIT1NUX0NBUF9QTVApICYmIChocHJpdi0+ZmxhZ3MgJiBBSENJX0hGTEFHX05PX1BNUCkpIHsKIAkJZGV2X3ByaW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCiAJCQkgICAiY29udHJvbGxlciBjYW4ndCBkbyBQTVAsIHR1cm5pbmcgb2ZmIENBUF9QTVBcbiIpOwogCQljYXAgJj0gfkhPU1RfQ0FQX1BNUDsKIAl9CiAKKwlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSk1JQ1JPTiAmJiBwZGV2LT5kZXZpY2UgPT0gMHgyMzYxICYmCisJICAgIHBvcnRfbWFwICE9IDEpIHsKKwkJZGV2X3ByaW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCisJCQkgICAiSk1CMzYxIGhhcyBvbmx5IG9uZSBwb3J0LCBwb3J0X21hcCAweCV4IC0+IDB4JXhcbiIsCisJCQkgICBwb3J0X21hcCwgMSk7CisJCXBvcnRfbWFwID0gMTsKKwl9CisKIAkvKgogCSAqIFRlbXBvcmFyeSBNYXJ2ZWxsIDYxNDUgaGFjazogUEFUQSBwb3J0IHByZXNlbmNlCiAJICogaXMgYXNzZXJ0ZWQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgQUhDSSBwb3J0CkBAIC0xMjYyLDE5ICsxMzAyLDExIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWhjaV9jaGVja19yZWFkeShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCi17Ci0Jdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShsaW5rLT5hcCk7Ci0JdTggc3RhdHVzID0gcmVhZGwocG9ydF9tbWlvICsgUE9SVF9URkRBVEEpICYgMHhGRjsKLQotCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKLX0KLQotc3RhdGljIGludCBhaGNpX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCi0JCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCitzdGF0aWMgaW50IGFoY2lfZG9fc29mdHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywKKwkJCSAgICAgaW50IHBtcCwgdW5zaWduZWQgbG9uZyBkZWFkbGluZSwKKwkJCSAgICAgaW50ICgqY2hlY2tfcmVhZHkpKHN0cnVjdCBhdGFfbGluayAqbGluaykpCiB7CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOwotCWludCBwbXAgPSBzYXRhX3Nyc3RfcG1wKGxpbmspOwogCWNvbnN0IGNoYXIgKnJlYXNvbiA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyBub3csIG1zZWNzOwogCXN0cnVjdCBhdGFfdGFza2ZpbGUgdGY7CkBAIC0xMzEyLDcgKzEzNDQsNyBAQAogCWFoY2lfZXhlY19wb2xsZWRfY21kKGFwLCBwbXAsICZ0ZiwgMCwgMCwgMCk7CiAKIAkvKiB3YWl0IGZvciBsaW5rIHRvIGJlY29tZSByZWFkeSAqLwotCXJjID0gYXRhX3dhaXRfYWZ0ZXJfcmVzZXQobGluaywgZGVhZGxpbmUsIGFoY2lfY2hlY2tfcmVhZHkpOworCXJjID0gYXRhX3dhaXRfYWZ0ZXJfcmVzZXQobGluaywgZGVhZGxpbmUsIGNoZWNrX3JlYWR5KTsKIAkvKiBsaW5rIG9jY3VwaWVkLCAtRU5PREVWIHRvbyBpcyBhbiBlcnJvciAqLwogCWlmIChyYykgewogCQlyZWFzb24gPSAiZGV2aWNlIG5vdCByZWFkeSI7CkBAIC0xMzI4LDYgKzEzNjAsNzIgQEAKIAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgYWhjaV9jaGVja19yZWFkeShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCit7CisJdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShsaW5rLT5hcCk7CisJdTggc3RhdHVzID0gcmVhZGwocG9ydF9tbWlvICsgUE9SVF9URkRBVEEpICYgMHhGRjsKKworCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKK30KKworc3RhdGljIGludCBhaGNpX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCisJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCit7CisJaW50IHBtcCA9IHNhdGFfc3JzdF9wbXAobGluayk7CisKKwlEUFJJTlRLKCJFTlRFUlxuIik7CisKKwlyZXR1cm4gYWhjaV9kb19zb2Z0cmVzZXQobGluaywgY2xhc3MsIHBtcCwgZGVhZGxpbmUsIGFoY2lfY2hlY2tfcmVhZHkpOworfQorCitzdGF0aWMgaW50IGFoY2lfc2I2MDBfY2hlY2tfcmVhZHkoc3RydWN0IGF0YV9saW5rICpsaW5rKQoreworCXZvaWQgX19pb21lbSAqcG9ydF9tbWlvID0gYWhjaV9wb3J0X2Jhc2UobGluay0+YXApOworCXU4IHN0YXR1cyA9IHJlYWRsKHBvcnRfbW1pbyArIFBPUlRfVEZEQVRBKSAmIDB4RkY7CisJdTMyIGlycV9zdGF0dXMgPSByZWFkbChwb3J0X21taW8gKyBQT1JUX0lSUV9TVEFUKTsKKworCS8qCisJICogVGhlcmUgaXMgbm8gbmVlZCB0byBjaGVjayBURkRBVEEgaWYgQkFEIFBNUCBpcyBmb3VuZCBkdWUgdG8gSFcgYnVnLAorCSAqIHdoaWNoIGNhbiBzYXZlIHRpbWVvdXQgZGVsYXkuCisJICovCisJaWYgKGlycV9zdGF0dXMgJiBQT1JUX0lSUV9CQURfUE1QKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKK30KKworc3RhdGljIGludCBhaGNpX3NiNjAwX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCisJCQkJdW5zaWduZWQgbG9uZyBkZWFkbGluZSkKK3sKKwlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CisJdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShhcCk7CisJaW50IHBtcCA9IHNhdGFfc3JzdF9wbXAobGluayk7CisJaW50IHJjOworCXUzMiBpcnFfc3RzOworCisJRFBSSU5USygiRU5URVJcbiIpOworCisJcmMgPSBhaGNpX2RvX3NvZnRyZXNldChsaW5rLCBjbGFzcywgcG1wLCBkZWFkbGluZSwKKwkJCSAgICAgICBhaGNpX3NiNjAwX2NoZWNrX3JlYWR5KTsKKworCS8qCisJICogU29mdCByZXNldCBmYWlscyBvbiBzb21lIEFUSSBjaGlwcyB3aXRoIElQTVMgc2V0IHdoZW4gUE1QCisJICogaXMgZW5hYmxlZCBidXQgU0FUQSBIREQvT0REIGlzIGNvbm5lY3RlZCB0byBTQVRBIHBvcnQsCisJICogZG8gc29mdCByZXNldCBhZ2FpbiB0byBwb3J0IDAuCisJICovCisJaWYgKHJjID09IC1FSU8pIHsKKwkJaXJxX3N0cyA9IHJlYWRsKHBvcnRfbW1pbyArIFBPUlRfSVJRX1NUQVQpOworCQlpZiAoaXJxX3N0cyAmIFBPUlRfSVJRX0JBRF9QTVApIHsKKwkJCWF0YV9saW5rX3ByaW50ayhsaW5rLCBLRVJOX1dBUk5JTkcsCisJCQkJCSJmYWlsZWQgZHVlIHRvIEhXIGJ1ZywgcmV0cnkgcG1wPTBcbiIpOworCQkJcmMgPSBhaGNpX2RvX3NvZnRyZXNldChsaW5rLCBjbGFzcywgMCwgZGVhZGxpbmUsCisJCQkJCSAgICAgICBhaGNpX2NoZWNrX3JlYWR5KTsKKwkJfQorCX0KKworCXJldHVybiByYzsKK30KKwogc3RhdGljIGludCBhaGNpX2hhcmRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCiB7CkBAIC0xNjc5LDcgKzE3NzcsNyBAQAogCXN0cnVjdCBhaGNpX2hvc3RfcHJpdiAqaHByaXY7CiAJdW5zaWduZWQgaW50IGksIGhhbmRsZWQgPSAwOwogCXZvaWQgX19pb21lbSAqbW1pbzsKLQl1MzIgaXJxX3N0YXQsIGlycV9hY2sgPSAwOworCXUzMiBpcnFfc3RhdCwgaXJxX21hc2tlZDsKIAogCVZQUklOVEsoIkVOVEVSXG4iKTsKIApAQCAtMTY4OCwxNiArMTc4NiwxNyBAQAogCiAJLyogc2lnaC4gIDB4ZmZmZmZmZmYgaXMgYSB2YWxpZCByZXR1cm4gZnJvbSBoL3cgKi8KIAlpcnFfc3RhdCA9IHJlYWRsKG1taW8gKyBIT1NUX0lSUV9TVEFUKTsKLQlpcnFfc3RhdCAmPSBocHJpdi0+cG9ydF9tYXA7CiAJaWYgKCFpcnFfc3RhdCkKIAkJcmV0dXJuIElSUV9OT05FOwogCisJaXJxX21hc2tlZCA9IGlycV9zdGF0ICYgaHByaXYtPnBvcnRfbWFwOworCiAJc3Bpbl9sb2NrKCZob3N0LT5sb2NrKTsKIAogCWZvciAoaSA9IDA7IGkgPCBob3N0LT5uX3BvcnRzOyBpKyspIHsKIAkJc3RydWN0IGF0YV9wb3J0ICphcDsKIAotCQlpZiAoIShpcnFfc3RhdCAmICgxIDw8IGkpKSkKKwkJaWYgKCEoaXJxX21hc2tlZCAmICgxIDw8IGkpKSkKIAkJCWNvbnRpbnVlOwogCiAJCWFwID0gaG9zdC0+cG9ydHNbaV07CkBAIC0xNzExLDE0ICsxODEwLDIwIEBACiAJCQkJCSJpbnRlcnJ1cHQgb24gZGlzYWJsZWQgcG9ydCAldVxuIiwgaSk7CiAJCX0KIAotCQlpcnFfYWNrIHw9ICgxIDw8IGkpOwotCX0KLQotCWlmIChpcnFfYWNrKSB7Ci0JCXdyaXRlbChpcnFfYWNrLCBtbWlvICsgSE9TVF9JUlFfU1RBVCk7CiAJCWhhbmRsZWQgPSAxOwogCX0KIAorCS8qIEhPU1RfSVJRX1NUQVQgYmVoYXZlcyBhcyBsZXZlbCB0cmlnZ2VyZWQgbGF0Y2ggbWVhbmluZyB0aGF0CisJICogaXQgc2hvdWxkIGJlIGNsZWFyZWQgYWZ0ZXIgYWxsIHRoZSBwb3J0IGV2ZW50cyBhcmUgY2xlYXJlZDsKKwkgKiBvdGhlcndpc2UsIGl0IHdpbGwgcmFpc2UgYSBzcHVyaW91cyBpbnRlcnJ1cHQgYWZ0ZXIgZWFjaAorCSAqIHZhbGlkIG9uZS4gIFBsZWFzZSByZWFkIHNlY3Rpb24gMTAuNi4yIG9mIGFoY2kgMS4xIGZvciBtb3JlCisJICogaW5mb3JtYXRpb24uCisJICoKKwkgKiBBbHNvLCB1c2UgdGhlIHVubWFza2VkIHZhbHVlIHRvIGNsZWFyIGludGVycnVwdCBhcyBzcHVyaW91cworCSAqIHBlbmRpbmcgZXZlbnQgb24gYSBkdW1teSBwb3J0IG1pZ2h0IGNhdXNlIHNjcmVhbWluZyBJUlEuCisJICovCisJd3JpdGVsKGlycV9zdGF0LCBtbWlvICsgSE9TVF9JUlFfU1RBVCk7CisKIAlzcGluX3VubG9jaygmaG9zdC0+bG9jayk7CiAKIAlWUFJJTlRLKCJFWElUXG4iKTsKQEAgLTIxMTgsNyArMjIyMyw4IEBACiBzdGF0aWMgaW50IGFoY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CiAJc3RhdGljIGludCBwcmludGVkX3ZlcnNpb247Ci0Jc3RydWN0IGF0YV9wb3J0X2luZm8gcGkgPSBhaGNpX3BvcnRfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXTsKKwl1bnNpZ25lZCBpbnQgYm9hcmRfaWQgPSBlbnQtPmRyaXZlcl9kYXRhOworCXN0cnVjdCBhdGFfcG9ydF9pbmZvIHBpID0gYWhjaV9wb3J0X2luZm9bYm9hcmRfaWRdOwogCWNvbnN0IHN0cnVjdCBhdGFfcG9ydF9pbmZvICpwcGlbXSA9IHsgJnBpLCBOVUxMIH07CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlzdHJ1Y3QgYWhjaV9ob3N0X3ByaXYgKmhwcml2OwpAQCAtMjE2Nyw2ICsyMjczLDExIEBACiAJCXJldHVybiAtRU5PTUVNOwogCWhwcml2LT5mbGFncyB8PSAodW5zaWduZWQgbG9uZylwaS5wcml2YXRlX2RhdGE7CiAKKwkvKiBNQ1A2NSByZXZpc2lvbiBBMSBhbmQgQTIgY2FuJ3QgZG8gTVNJICovCisJaWYgKGJvYXJkX2lkID09IGJvYXJkX2FoY2lfbWNwNjUgJiYKKwkgICAgKHBkZXYtPnJldmlzaW9uID09IDB4YTEgfHwgcGRldi0+cmV2aXNpb24gPT0gMHhhMikpCisJCWhwcml2LT5mbGFncyB8PSBBSENJX0hGTEFHX05PX01TSTsKKwogCWlmICgoaHByaXYtPmZsYWdzICYgQUhDSV9IRkxBR19OT19NU0kpIHx8IHBjaV9lbmFibGVfbXNpKHBkZXYpKQogCQlwY2lfaW50eChwZGV2LCAxKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvYXRhX3BpaXguYyBiL2RyaXZlcnMvYXRhL2F0YV9waWl4LmMKaW5kZXggODFiN2FlMy4uYTkwYWUwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYXRhX3BpaXguYworKysgYi9kcml2ZXJzL2F0YS9hdGFfcGlpeC5jCkBAIC0xMDQzLDYgKzEwNDMsMTMgQEAKIAkJCX0sCiAJCX0sCiAJCXsKKwkJCS5pZGVudCA9ICJURUNSQSBNNCIsCisJCQkubWF0Y2hlcyA9IHsKKwkJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJUT1NISUJBIiksCisJCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJURUNSQSBNNCIpLAorCQkJfSwKKwkJfSwKKwkJewogCQkJLmlkZW50ID0gIlRFQ1JBIE01IiwKIAkJCS5tYXRjaGVzID0gewogCQkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlRPU0hJQkEiKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1hY3BpLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtYWNwaS5jCmluZGV4IDNmZjhiMTQuLjkzMzBiNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1hY3BpLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLWFjcGkuYwpAQCAtMjksMTQgKzI5LDE2IEBACiBlbnVtIHsKIAlBVEFfQUNQSV9GSUxURVJfU0VUWEZFUgk9IDEgPDwgMCwKIAlBVEFfQUNQSV9GSUxURVJfTE9DSwk9IDEgPDwgMSwKKwlBVEFfQUNQSV9GSUxURVJfRElQTQk9IDEgPDwgMiwKIAogCUFUQV9BQ1BJX0ZJTFRFUl9ERUZBVUxUCT0gQVRBX0FDUElfRklMVEVSX1NFVFhGRVIgfAotCQkJCSAgQVRBX0FDUElfRklMVEVSX0xPQ0ssCisJCQkJICBBVEFfQUNQSV9GSUxURVJfTE9DSyB8CisJCQkJICBBVEFfQUNQSV9GSUxURVJfRElQTSwKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgYXRhX2FjcGlfZ3RmX2ZpbHRlciA9IEFUQV9BQ1BJX0ZJTFRFUl9ERUZBVUxUOwogbW9kdWxlX3BhcmFtX25hbWVkKGFjcGlfZ3RmX2ZpbHRlciwgYXRhX2FjcGlfZ3RmX2ZpbHRlciwgaW50LCAwNjQ0KTsKLU1PRFVMRV9QQVJNX0RFU0MoYWNwaV9ndGZfZmlsdGVyLCAiZmlsdGVyIG1hc2sgZm9yIEFDUEkgX0dURiBjb21tYW5kcywgc2V0IHRvIGZpbHRlciBvdXQgKDB4MT1zZXQgeGZlcm1vZGUsIDB4Mj1sb2NrL2ZyZWV6ZSBsb2NrKSIpOworTU9EVUxFX1BBUk1fREVTQyhhY3BpX2d0Zl9maWx0ZXIsICJmaWx0ZXIgbWFzayBmb3IgQUNQSSBfR1RGIGNvbW1hbmRzLCBzZXQgdG8gZmlsdGVyIG91dCAoMHgxPXNldCB4ZmVybW9kZSwgMHgyPWxvY2svZnJlZXplIGxvY2ssIDB4ND1ESVBNKSIpOwogCiAjZGVmaW5lIE5PX1BPUlRfTVVMVAkJMHhmZmZmCiAjZGVmaW5lIFNBVEFfQURSKHJvb3QsIHBtcCkJKCgocm9vdCkgPDwgMTYpIHwgKHBtcCkpCkBAIC0xOTUsNiArMTk3LDEwIEBACiAJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgaG90cGx1ZyAqLwogCQlyZXR1cm47CiAKKwlpZiAoZXZlbnQgPT0gQUNQSV9OT1RJRllfQlVTX0NIRUNLIHx8CisJICAgIGV2ZW50ID09IEFDUElfTk9USUZZX0RFVklDRV9DSEVDSykKKwkJc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9pbnRlZ2VyKGhhbmRsZSwgIl9TVEEiLCBOVUxMLCAmc3RhKTsKKwogCXNwaW5fbG9ja19pcnFzYXZlKGFwLT5sb2NrLCBmbGFncyk7CiAKIAlzd2l0Y2ggKGV2ZW50KSB7CkBAIC0yMDIsNyArMjA4LDYgQEAKIAljYXNlIEFDUElfTk9USUZZX0RFVklDRV9DSEVDSzoKIAkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiQUNQSSBldmVudCIpOwogCi0JCXN0YXR1cyA9IGFjcGlfZXZhbHVhdGVfaW50ZWdlcihoYW5kbGUsICJfU1RBIiwgTlVMTCwgJnN0YSk7CiAJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgewogCQkJYXRhX3BvcnRfcHJpbnRrKGFwLCBLRVJOX0VSUiwKIAkJCQkiYWNwaTogZmFpbGVkIHRvIGRldGVybWluZSBiYXkgc3RhdHVzICgweCV4KVxuIiwKQEAgLTY5MCw2ICs2OTUsMTQgQEAKIAkJCXJldHVybiAxOwogCX0KIAorCWlmIChhdGFfYWNwaV9ndGZfZmlsdGVyICYgQVRBX0FDUElfRklMVEVSX0RJUE0pIHsKKwkJLyogaW5oaWJpdCBlbmFibGluZyBESVBNICovCisJCWlmICh0Zi0+Y29tbWFuZCA9PSBBVEFfQ01EX1NFVF9GRUFUVVJFUyAmJgorCQkgICAgdGYtPmZlYXR1cmUgPT0gU0VURkVBVFVSRVNfU0FUQV9FTkFCTEUgJiYKKwkJICAgIHRmLT5uc2VjdCA9PSBTQVRBX0RJUE0pCisJCQlyZXR1cm4gMTsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMKaW5kZXggY2M4MTZjYS4uMzAzZmMwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jCkBAIC00Mjk3LDcgKzQyOTcsNyBAQAogfQogCiAvKioKLSAqCWF0YV9jaGVja19hdGFwaV9kbWEgLSBDaGVjayB3aGV0aGVyIEFUQVBJIERNQSBjYW4gYmUgc3VwcG9ydGVkCisgKglhdGFwaV9jaGVja19kbWEgLSBDaGVjayB3aGV0aGVyIEFUQVBJIERNQSBjYW4gYmUgc3VwcG9ydGVkCiAgKglAcWM6IE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0YXNrZmlsZSB0byBjaGVjawogICoKICAqCUFsbG93IGxvdy1sZXZlbCBkcml2ZXIgdG8gZmlsdGVyIEFUQSBQQUNLRVQgY29tbWFuZHMsIHJldHVybmluZwpAQCAtNDMxMCw3ICs0MzEwLDcgQEAKICAqCVJFVFVSTlM6IDAgd2hlbiBBVEFQSSBETUEgY2FuIGJlIHVzZWQKICAqICAgICAgICAgICAgICAgbm9uemVybyBvdGhlcndpc2UKICAqLwotaW50IGF0YV9jaGVja19hdGFwaV9kbWEoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYykKK2ludCBhdGFwaV9jaGVja19kbWEoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYykKIHsKIAlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gcWMtPmFwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jIGIvZHJpdmVycy9hdGEvbGliYXRhLXNjc2kuYwppbmRleCAyZTZlMTYyLi40OTljY2M2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMKQEAgLTg4NSw3ICs4ODUsOCBAQAogCQkvKiBzZXQgdGhlIG1pbiBhbGlnbm1lbnQgYW5kIHBhZGRpbmcgKi8KIAkJYmxrX3F1ZXVlX3VwZGF0ZV9kbWFfYWxpZ25tZW50KHNkZXYtPnJlcXVlc3RfcXVldWUsCiAJCQkJCSAgICAgICBBVEFfRE1BX1BBRF9TWiAtIDEpOwotCQlibGtfcXVldWVfZG1hX3BhZChzZGV2LT5yZXF1ZXN0X3F1ZXVlLCBBVEFfRE1BX1BBRF9TWiAtIDEpOworCQlibGtfcXVldWVfdXBkYXRlX2RtYV9wYWQoc2Rldi0+cmVxdWVzdF9xdWV1ZSwKKwkJCQkJIEFUQV9ETUFfUEFEX1NaIC0gMSk7CiAKIAkJLyogY29uZmlndXJlIGRyYWluaW5nICovCiAJCWJ1ZiA9IGttYWxsb2MoQVRBUElfTUFYX0RSQUlOLCBxLT5ib3VuY2VfZ2ZwIHwgR0ZQX0tFUk5FTCk7CkBAIC0yMzQzLDggKzIzNDQsOCBAQAogewogCXN0cnVjdCBzY3NpX2NtbmQgKnNjbWQgPSBxYy0+c2NzaWNtZDsKIAlzdHJ1Y3QgYXRhX2RldmljZSAqZGV2ID0gcWMtPmRldjsKLQlpbnQgdXNpbmdfcGlvID0gKGRldi0+ZmxhZ3MgJiBBVEFfREZMQUdfUElPKTsKIAlpbnQgbm9kYXRhID0gKHNjbWQtPnNjX2RhdGFfZGlyZWN0aW9uID09IERNQV9OT05FKTsKKwlpbnQgdXNpbmdfcGlvID0gIW5vZGF0YSAmJiAoZGV2LT5mbGFncyAmIEFUQV9ERkxBR19QSU8pOwogCXVuc2lnbmVkIGludCBuYnl0ZXM7CiAKIAltZW1zZXQocWMtPmNkYiwgMCwgZGV2LT5jZGJfbGVuKTsKQEAgLTIzNjIsNyArMjM2Myw3IEBACiAJYXRhX3FjX3NldF9wY19uYnl0ZXMocWMpOwogCiAJLyogY2hlY2sgd2hldGhlciBBVEFQSSBETUEgaXMgc2FmZSAqLwotCWlmICghdXNpbmdfcGlvICYmIGF0YV9jaGVja19hdGFwaV9kbWEocWMpKQorCWlmICghbm9kYXRhICYmICF1c2luZ19waW8gJiYgYXRhcGlfY2hlY2tfZG1hKHFjKSkKIAkJdXNpbmdfcGlvID0gMTsKIAogCS8qIFNvbWUgY29udHJvbGxlciB2YXJpYW50cyBzbm9vcCB0aGlzIHZhbHVlIGZvciBQYWNrZXQKQEAgLTI0MDIsMTMgKzI0MDMsMTEgQEAKIAlxYy0+dGYubGJhbSA9IChuYnl0ZXMgJiAweEZGKTsKIAlxYy0+dGYubGJhaCA9IChuYnl0ZXMgPj4gOCk7CiAKLQlpZiAodXNpbmdfcGlvIHx8IG5vZGF0YSkgewotCQkvKiBubyBkYXRhLCBvciBQSU8gZGF0YSB4ZmVyICovCi0JCWlmIChub2RhdGEpCi0JCQlxYy0+dGYucHJvdG9jb2wgPSBBVEFQSV9QUk9UX05PREFUQTsKLQkJZWxzZQotCQkJcWMtPnRmLnByb3RvY29sID0gQVRBUElfUFJPVF9QSU87Ci0JfSBlbHNlIHsKKwlpZiAobm9kYXRhKQorCQlxYy0+dGYucHJvdG9jb2wgPSBBVEFQSV9QUk9UX05PREFUQTsKKwllbHNlIGlmICh1c2luZ19waW8pCisJCXFjLT50Zi5wcm90b2NvbCA9IEFUQVBJX1BST1RfUElPOworCWVsc2UgewogCQkvKiBETUEgZGF0YSB4ZmVyICovCiAJCXFjLT50Zi5wcm90b2NvbCA9IEFUQVBJX1BST1RfRE1BOwogCQlxYy0+dGYuZmVhdHVyZSB8PSBBVEFQSV9QS1RfRE1BOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLXNmZi5jIGIvZHJpdmVycy9hdGEvbGliYXRhLXNmZi5jCmluZGV4IDIxNWQxODYuLmMwOTA4YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zZmYuYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtc2ZmLmMKQEAgLTEwOTQsNiArMTA5NCw3IEBACiBpbnQgYXRhX3NmZl9oc21fbW92ZShzdHJ1Y3QgYXRhX3BvcnQgKmFwLCBzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjLAogCQkgICAgIHU4IHN0YXR1cywgaW50IGluX3dxKQogeworCXN0cnVjdCBhdGFfZWhfaW5mbyAqZWhpID0gJmFwLT5saW5rLmVoX2luZm87CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CiAJaW50IHBvbGxfbmV4dDsKIApAQCAtMTEyNSw5ICsxMTI2LDEyIEBACiAJCQlpZiAobGlrZWx5KHN0YXR1cyAmIChBVEFfRVJSIHwgQVRBX0RGKSkpCiAJCQkJLyogZGV2aWNlIHN0b3BzIEhTTSBmb3IgYWJvcnQvZXJyb3IgKi8KIAkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0RFVjsKLQkJCWVsc2UKKwkJCWVsc2UgewogCQkJCS8qIEhTTSB2aW9sYXRpb24uIExldCBFSCBoYW5kbGUgdGhpcyAqLworCQkJCWF0YV9laGlfcHVzaF9kZXNjKGVoaSwKKwkJCQkJIlNUX0ZJUlNUOiAhKERSUXxFUlJ8REYpIik7CiAJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9IU007CisJCQl9CiAKIAkJCWFwLT5oc21fdGFza19zdGF0ZSA9IEhTTV9TVF9FUlI7CiAJCQlnb3RvIGZzbV9zdGFydDsKQEAgLTExNDYsOSArMTE1MCw5IEBACiAJCQkgKiB0aGUgQ0RCLgogCQkJICovCiAJCQlpZiAoIShxYy0+ZGV2LT5ob3JrYWdlICYgQVRBX0hPUktBR0VfU1RVQ0tfRVJSKSkgewotCQkJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9XQVJOSU5HLAotCQkJCQkJIkRSUT0xIHdpdGggZGV2aWNlIGVycm9yLCAiCi0JCQkJCQkiZGV2X3N0YXQgMHglWFxuIiwgc3RhdHVzKTsKKwkJCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJTVF9GSVJTVDogIgorCQkJCQkiRFJRPTEgd2l0aCBkZXZpY2UgZXJyb3IsICIKKwkJCQkJImRldl9zdGF0IDB4JVgiLCBzdGF0dXMpOwogCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfSFNNOwogCQkJCWFwLT5oc21fdGFza19zdGF0ZSA9IEhTTV9TVF9FUlI7CiAJCQkJZ290byBmc21fc3RhcnQ7CkBAIC0xMjA1LDkgKzEyMDksOSBAQAogCQkJICogbGV0IHRoZSBFSCBhYm9ydCB0aGUgY29tbWFuZCBvciByZXNldCB0aGUgZGV2aWNlLgogCQkJICovCiAJCQlpZiAodW5saWtlbHkoc3RhdHVzICYgKEFUQV9FUlIgfCBBVEFfREYpKSkgewotCQkJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9XQVJOSU5HLCAiRFJRPTEgd2l0aCAiCi0JCQkJCQkiZGV2aWNlIGVycm9yLCBkZXZfc3RhdCAweCVYXG4iLAotCQkJCQkJc3RhdHVzKTsKKwkJCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJTVC1BVEFQSTogIgorCQkJCQkiRFJRPTEgd2l0aCBkZXZpY2UgZXJyb3IsICIKKwkJCQkJImRldl9zdGF0IDB4JVgiLCBzdGF0dXMpOwogCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfSFNNOwogCQkJCWFwLT5oc21fdGFza19zdGF0ZSA9IEhTTV9TVF9FUlI7CiAJCQkJZ290byBmc21fc3RhcnQ7CkBAIC0xMjI2LDEzICsxMjMwLDE3IEBACiAJCQkJaWYgKGxpa2VseShzdGF0dXMgJiAoQVRBX0VSUiB8IEFUQV9ERikpKQogCQkJCQkvKiBkZXZpY2Ugc3RvcHMgSFNNIGZvciBhYm9ydC9lcnJvciAqLwogCQkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0RFVjsKLQkJCQllbHNlCisJCQkJZWxzZSB7CiAJCQkJCS8qIEhTTSB2aW9sYXRpb24uIExldCBFSCBoYW5kbGUgdGhpcy4KIAkJCQkJICogUGhhbnRvbSBkZXZpY2VzIGFsc28gdHJpZ2dlciB0aGlzCiAJCQkJCSAqIGNvbmRpdGlvbi4gIE1hcmsgaGludC4KIAkJCQkJICovCisJCQkJCWF0YV9laGlfcHVzaF9kZXNjKGVoaSwgIlNULUFUQTogIgorCQkJCQkJIkRSUT0xIHdpdGggZGV2aWNlIGVycm9yLCAiCisJCQkJCQkiZGV2X3N0YXQgMHglWCIsIHN0YXR1cyk7CiAJCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfSFNNIHwKIAkJCQkJCQlBQ19FUlJfTk9ERVZfSElOVDsKKwkJCQl9CiAKIAkJCQlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1RfRVJSOwogCQkJCWdvdG8gZnNtX3N0YXJ0OwpAQCAtMTI1Nyw4ICsxMjY1LDEyIEBACiAJCQkJCXN0YXR1cyA9IGF0YV93YWl0X2lkbGUoYXApOwogCQkJCX0KIAotCQkJCWlmIChzdGF0dXMgJiAoQVRBX0JVU1kgfCBBVEFfRFJRKSkKKwkJCQlpZiAoc3RhdHVzICYgKEFUQV9CVVNZIHwgQVRBX0RSUSkpIHsKKwkJCQkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiU1QtQVRBOiAiCisJCQkJCQkiQlVTWXxEUlEgcGVyc2lzdHMgb24gRVJSfERGLCAiCisJCQkJCQkiZGV2X3N0YXQgMHglWCIsIHN0YXR1cyk7CiAJCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfSFNNOworCQkJCX0KIAogCQkJCS8qIGF0YV9waW9fc2VjdG9ycygpIG1pZ2h0IGNoYW5nZSB0aGUKIAkJCQkgKiBzdGF0ZSB0byBIU01fU1RfTEFTVC4gc28sIHRoZSBzdGF0ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLmggYi9kcml2ZXJzL2F0YS9saWJhdGEuaAppbmRleCA0NTE0MjgzLi4xY2Y4MDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEuaAorKysgYi9kcml2ZXJzL2F0YS9saWJhdGEuaApAQCAtMTA2LDcgKzEwNiw3IEBACiBleHRlcm4gdm9pZCBhdGFfcWNfZnJlZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiB2b2lkIGF0YV9xY19pc3N1ZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiB2b2lkIF9fYXRhX3FjX2NvbXBsZXRlKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpOwotZXh0ZXJuIGludCBhdGFfY2hlY2tfYXRhcGlfZG1hKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpOworZXh0ZXJuIGludCBhdGFwaV9jaGVja19kbWEoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyk7CiBleHRlcm4gdm9pZCBzd2FwX2J1Zl9sZTE2KHUxNiAqYnVmLCB1bnNpZ25lZCBpbnQgYnVmX3dvcmRzKTsKIGV4dGVybiB2b2lkIGF0YV9kZXZfaW5pdChzdHJ1Y3QgYXRhX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGF0YV9saW5rX2luaXQoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9saW5rICpsaW5rLCBpbnQgcG1wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfcGNtY2lhLmMgYi9kcml2ZXJzL2F0YS9wYXRhX3BjbWNpYS5jCmluZGV4IDNkMzlmOWQuLjQxYjQzNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfcGNtY2lhLmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV9wY21jaWEuYwpAQCAtNDE0LDYgKzQxNCw3IEBACiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIklPIERBVEEiLCAiUENJREUiLCAweDU0N2U2NmRjLCAweDVjNWFiMTQ5KSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiSU8gREFUQSIsICJQQ0lERUlJIiwgMHg1NDdlNjZkYywgMHhiMzY2MjY3NCksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIkxPT0tNRUVUIiwgIkNCSURFMiAgICAgICIsIDB4ZTM3YmUyYjUsIDB4ODY3MTA0M2IpLAorCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJNLVN5c3RlbXMiLCAiQ0YzMDAiLCAweDdlZDJhZDg3LCAweDdlOWU3OGVlKSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiTS1TeXN0ZW1zIiwgIkNGNTAwIiwgMHg3ZWQyYWQ4NywgMHg3YTEzMDQ1YyksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMigiTmluamFBVEEtIiwgMHhlYmUwYmQ3OSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlBDTUNJQSIsICJDRC1ST00iLCAweDI4MWYxYzVkLCAweDY2NTM2NTkxKSwKQEAgLTQyNCw2ICs0MjUsNyBAQAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJTTUkgVkVORE9SIiwgIlNNSSBQUk9EVUNUIiwgMHgzMDg5NmM5MiwgMHg3MDNjYzVmNiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRPU0hJQkEiLCAiTUsyMDAxTVBMIiwgMHhiNDU4NWExYSwgMHgzNDg5ZTAwMyksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMSgiVFJBTlNDRU5EICAgIDUxMk0gICAiLCAweGQwOTA5NDQzKSwKKwlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiVFJBTlNDRU5EIiwgIlRTMUdDRjQ1IiwgMHg3MDliMWJmMSwgMHhmNjhiNmYzMiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzFHQ0Y4MCIsIDB4NzA5YjFiZjEsIDB4MmE1NGQ0YjEpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFMyR0NGMTIwIiwgMHg3MDliMWJmMSwgMHg5NjlhYTRmMiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzRHQ0YxMjAiLCAweDcwOWIxYmYxLCAweGY1NGE5MWM4KSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfc2lzLmMgYi9kcml2ZXJzL2F0YS9wYXRhX3Npcy5jCmluZGV4IGU4MmM2NmUuLjI2MzQ1ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfc2lzLmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV9zaXMuYwpAQCAtNTYsNiArNTYsNyBAQAogCXsgMHg1NTEzLCAweDEwNDMsIDB4MTEwNyB9LAkvKiBBU1VTIEE2SyAqLwogCXsgMHg1NTEzLCAweDE3MzQsIDB4MTA1RiB9LAkvKiBGU0MgQW1pbG8gQTE2MzAgKi8KIAl7IDB4NTUxMywgMHgxMDcxLCAweDg2NDAgfSwgICAgIC8qIEVhc3lOb3RlIEs1MzA1ICovCisJeyAweDU1MTMsIDB4MTAzOSwgMHg1NTEzIH0sCS8qIFRhcmdhIFZpc2lvbmFyeSAxMDAwICovCiAJLyogZW5kIG1hcmtlciAqLwogCXsgMCwgfQogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfbXYuYyBiL2RyaXZlcnMvYXRhL3NhdGFfbXYuYwppbmRleCA2MDM5MWU5Li5hZDE2OWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX212LmMKKysrIGIvZHJpdmVycy9hdGEvc2F0YV9tdi5jCkBAIC0xMzIyLDYgKzEzMjIsOSBAQAogCQlnb3RvIG91dF9wb3J0X2ZyZWVfZG1hX21lbTsKIAltZW1zZXQocHAtPmNycGIsIDAsIE1WX0NSUEJfUV9TWik7CiAKKwkvKiA2MDQxLzYwODEgUmV2LiAiQzAiIChhbmQgbmV3ZXIpIGFyZSBva2F5IHdpdGggYXN5bmMgbm90aWZ5ICovCisJaWYgKGhwcml2LT5ocF9mbGFncyAmIE1WX0hQX0VSUkFUQV82MFgxQzApCisJCWFwLT5mbGFncyB8PSBBVEFfRkxBR19BTjsKIAkvKgogCSAqIEZvciBHRU5fSSwgdGhlcmUncyBubyBOQ1EsIHNvIHdlIG9ubHkgYWxsb2NhdGUgYSBzaW5nbGUgc2dfdGJsLgogCSAqIEZvciBsYXRlciBoYXJkd2FyZSwgd2UgbmVlZCBvbmUgdW5pcXVlIHNnX3RibCBwZXIgTkNRIHRhZy4KQEAgLTE1OTIsNiArMTU5NSwyNCBAQAogCiAJaWYgKChxYy0+dGYucHJvdG9jb2wgIT0gQVRBX1BST1RfRE1BKSAmJgogCSAgICAocWMtPnRmLnByb3RvY29sICE9IEFUQV9QUk9UX05DUSkpIHsKKwkJc3RhdGljIGludCBsaW1pdF93YXJuaW5ncyA9IDEwOworCQkvKgorCQkgKiBFcnJhdGEgU0FUQSMxNiwgU0FUQSMyNDogd2FybiBpZiBtdWx0aXBsZSBEUlFzIGV4cGVjdGVkLgorCQkgKgorCQkgKiBTb21lZGF5LCB3ZSBtaWdodCBpbXBsZW1lbnQgc3BlY2lhbCBwb2xsaW5nIHdvcmthcm91bmRzCisJCSAqIGZvciB0aGVzZSwgYnV0IGl0IGFsbCBzZWVtcyByYXRoZXIgdW5uZWNlc3Nhcnkgc2luY2Ugd2UKKwkJICogbm9ybWFsbHkgdXNlIG9ubHkgRE1BIGZvciBjb21tYW5kcyB3aGljaCB0cmFuc2ZlciBtb3JlCisJCSAqIHRoYW4gYSBzaW5nbGUgYmxvY2sgb2YgZGF0YS4KKwkJICoKKwkJICogTXVjaCBvZiB0aGUgdGltZSwgdGhpcyBjb3VsZCBqdXN0IHdvcmsgcmVnYXJkbGVzcy4KKwkJICogU28gZm9yIG5vdywganVzdCBsb2cgdGhlIGluY2lkZW50LCBhbmQgYWxsb3cgdGhlIGF0dGVtcHQuCisJCSAqLworCQlpZiAobGltaXRfd2FybmluZ3MgPiAwICYmIChxYy0+bmJ5dGVzIC8gcWMtPnNlY3Rfc2l6ZSkgPiAxKSB7CisJCQktLWxpbWl0X3dhcm5pbmdzOworCQkJYXRhX2xpbmtfcHJpbnRrKHFjLT5kZXYtPmxpbmssIEtFUk5fV0FSTklORywgRFJWX05BTUUKKwkJCQkJIjogYXR0ZW1wdGluZyBQSU8gdy9tdWx0aXBsZSBEUlE6ICIKKwkJCQkJInRoaXMgbWF5IGZhaWwgZHVlIHRvIGgvdyBlcnJhdGFcbiIpOworCQl9CiAJCS8qCiAJCSAqIFdlJ3JlIGFib3V0IHRvIHNlbmQgYSBub24tRURNQSBjYXBhYmxlIGNvbW1hbmQgdG8gdGhlCiAJCSAqIHBvcnQuICBUdXJuIG9mZiBFRE1BIHNvIHRoZXJlIHdvbid0IGJlIHByb2JsZW1zIGFjY2Vzc2luZwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvc2F0YV9zaWwyNC5jIGIvZHJpdmVycy9hdGEvc2F0YV9zaWwyNC5jCmluZGV4IDhlZTZiNWIuLjg0ZmZjYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYworKysgYi9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMKQEAgLTM3MCw2ICszNzAsNyBAQAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MzEyNCksIEJJRF9TSUwzMTI0IH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzEzMiksIEJJRF9TSUwzMTMyIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MDI0MiksIEJJRF9TSUwzMTMyIH0sCisJeyBQQ0lfVkRFVklDRShDTUQsIDB4MDI0NCksIEJJRF9TSUwzMTMyIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzEzMSksIEJJRF9TSUwzMTMxIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzUzMSksIEJJRF9TSUwzMTMxIH0sCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfdWxpLmMgYi9kcml2ZXJzL2F0YS9zYXRhX3VsaS5jCmluZGV4IGYyNzdjZWEuLmRiNTI5YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3NhdGFfdWxpLmMKKysrIGIvZHJpdmVycy9hdGEvc2F0YV91bGkuYwpAQCAtODMsNiArODMsNyBAQAogCS5pbmhlcml0cwkJPSAmYXRhX2JtZG1hX3BvcnRfb3BzLAogCS5zY3JfcmVhZAkJPSB1bGlfc2NyX3JlYWQsCiAJLnNjcl93cml0ZQkJPSB1bGlfc2NyX3dyaXRlLAorCS5oYXJkcmVzZXQJCT0gQVRBX09QX05VTEwsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gdWxpX3BvcnRfaW5mbyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL01ha2VmaWxlIGIvZHJpdmVycy9hdG0vTWFrZWZpbGUKaW5kZXggZTRmYTk5Ni4uNzQ5MjY2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9hdG0vTWFrZWZpbGUKQEAgLTYsOSArNiw5IEBACiBob3N0cHJvZ3MteQk6PSBmb3JlMjAwZV9ta2Zpcm0KIAogIyBGaWxlcyBnZW5lcmF0ZWQgdGhhdCBzaGFsbCBiZSByZW1vdmVkIHVwb24gbWFrZSBjbGVhbgotY2xlYW4tZmlsZXMgOj0gYXRtc2FyMTEuYmluIGF0bXNhcjExLmJpbjEgYXRtc2FyMTEuYmluMiBwY2EyMDBlLmJpbiBcCi0JcGNhMjAwZS5iaW4xIHBjYTIwMGUuYmluMiBwY2EyMDBlX2VjZC5iaW4gcGNhMjAwZV9lY2QuYmluMSBcCi0JcGNhMjAwZV9lY2QuYmluMiBzYmEyMDBlX2VjZC5iaW4gc2JhMjAwZV9lY2QuYmluMSBzYmEyMDBlX2VjZC5iaW4yCitjbGVhbi1maWxlcyA6PSBwY2EyMDBlLmJpbiBwY2EyMDBlLmJpbjEgcGNhMjAwZS5iaW4yIHBjYTIwMGVfZWNkLmJpbiBcCisJcGNhMjAwZV9lY2QuYmluMSBwY2EyMDBlX2VjZC5iaW4yIHNiYTIwMGVfZWNkLmJpbiBzYmEyMDBlX2VjZC5iaW4xIFwKKwlzYmEyMDBlX2VjZC5iaW4yCiAjIEZpcm13YXJlIGdlbmVyYXRlZCB0aGF0IHNoYWxsIGJlIHJlbW92ZWQgdXBvbiBtYWtlIGNsZWFuCiBjbGVhbi1maWxlcyArPSBmb3JlMjAwZV9wY2FfZncuYyBmb3JlMjAwZV9zYmFfZncuYwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmMgYi9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmMKaW5kZXggNmFkYjcyYS4uNzAzMzY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5jCisrKyBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYwpAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3BvaXNvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdHJldi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAKICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0yOTAsMjkgKzI5Miw2IEBACiAgIAogKi8KIAotLyoqKioqKioqKiogbWljcm9jb2RlICoqKioqKioqKiovCi0KLSNpZmRlZiBBTUJfTkVXX01JQ1JPQ09ERQotI2RlZmluZSBVQ09ERSh4KSBVQ09ERTIoYXRtc2FyMTIueCkKLSNlbHNlCi0jZGVmaW5lIFVDT0RFKHgpIFVDT0RFMihhdG1zYXIxMS54KQotI2VuZGlmCi0jZGVmaW5lIFVDT0RFMih4KSAjeAotCi1zdGF0aWMgdTMyIF9fZGV2aW5pdGRhdGEgdWNvZGVfc3RhcnQgPQotI2luY2x1ZGUgVUNPREUoc3RhcnQpCi07Ci0KLXN0YXRpYyByZWdpb24gX19kZXZpbml0ZGF0YSB1Y29kZV9yZWdpb25zW10gPSB7Ci0jaW5jbHVkZSBVQ09ERShyZWdpb25zKQotICB7IDAsIDAgfQotfTsKLQotc3RhdGljIHUzMiBfX2RldmluaXRkYXRhIHVjb2RlX2RhdGFbXSA9IHsKLSNpbmNsdWRlIFVDT0RFKGRhdGEpCi0gIDB4ZGVhZGJlZWYKLX07Ci0KIHN0YXRpYyB2b2lkIGRvX2hvdXNla2VlcGluZyAodW5zaWduZWQgbG9uZyBhcmcpOwogLyoqKioqKioqKiogZ2xvYmFscyAqKioqKioqKioqLwogCkBAIC0xODQxLDQ1ICsxODIwLDM0IEBACiAKIC8qIGxvYWRlcjogd3JpdGUgbWVtb3J5IGRhdGEgYmxvY2tzICovCiAKLXN0YXRpYyBpbnQgX19kZXZpbml0IGxvYWRlcl93cml0ZSAobG9hZGVyX2Jsb2NrICogbGIsCi0JCQkJY29uc3QgYW1iX2RldiAqIGRldiwgY29uc3QgdTMyICogZGF0YSwKLQkJCQl1MzIgYWRkcmVzcywgdW5zaWduZWQgaW50IGNvdW50KSB7Ci0gIHVuc2lnbmVkIGludCBpOworc3RhdGljIGludCBfX2RldmluaXQgbG9hZGVyX3dyaXRlIChsb2FkZXJfYmxvY2sqIGxiLAorCQkJCSAgIGNvbnN0IGFtYl9kZXYgKmRldiwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYykgewogICB0cmFuc2Zlcl9ibG9jayAqIHRiID0gJmxiLT5wYXlsb2FkLnRyYW5zZmVyOwogICAKICAgUFJJTlREIChEQkdfRkxPV3xEQkdfTE9BRCwgImxvYWRlcl93cml0ZSIpOwotICAKLSAgaWYgKGNvdW50ID4gTUFYX1RSQU5TRkVSX0RBVEEpCi0gICAgcmV0dXJuIC1FSU5WQUw7Ci0gIHRiLT5hZGRyZXNzID0gY3B1X3RvX2JlMzIgKGFkZHJlc3MpOwotICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMiAoY291bnQpOwotICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICB0Yi0+ZGF0YVtpXSA9IGNwdV90b19iZTMyIChkYXRhW2ldKTsKKworICB0Yi0+YWRkcmVzcyA9IHJlYy0+YWRkcjsKKyAgdGItPmNvdW50ID0gY3B1X3RvX2JlMzIoYmUxNl90b19jcHUocmVjLT5sZW4pIC8gNCk7CisgIG1lbWNweSh0Yi0+ZGF0YSwgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogICByZXR1cm4gZG9fbG9hZGVyX2NvbW1hbmQgKGxiLCBkZXYsIHdyaXRlX2FkYXB0ZXJfbWVtb3J5KTsKIH0KIAogLyogbG9hZGVyOiB2ZXJpZnkgbWVtb3J5IGRhdGEgYmxvY2tzICovCiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IGxvYWRlcl92ZXJpZnkgKGxvYWRlcl9ibG9jayAqIGxiLAotCQkJCSBjb25zdCBhbWJfZGV2ICogZGV2LCBjb25zdCB1MzIgKiBkYXRhLAotCQkJCSB1MzIgYWRkcmVzcywgdW5zaWduZWQgaW50IGNvdW50KSB7Ci0gIHVuc2lnbmVkIGludCBpOworCQkJCSAgICBjb25zdCBhbWJfZGV2ICpkZXYsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjKSB7CiAgIHRyYW5zZmVyX2Jsb2NrICogdGIgPSAmbGItPnBheWxvYWQudHJhbnNmZXI7CiAgIGludCByZXM7CiAgIAogICBQUklOVEQgKERCR19GTE9XfERCR19MT0FELCAibG9hZGVyX3ZlcmlmeSIpOwogICAKLSAgaWYgKGNvdW50ID4gTUFYX1RSQU5TRkVSX0RBVEEpCi0gICAgcmV0dXJuIC1FSU5WQUw7Ci0gIHRiLT5hZGRyZXNzID0gY3B1X3RvX2JlMzIgKGFkZHJlc3MpOwotICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMiAoY291bnQpOworICB0Yi0+YWRkcmVzcyA9IHJlYy0+YWRkcjsKKyAgdGItPmNvdW50ID0gY3B1X3RvX2JlMzIoYmUxNl90b19jcHUocmVjLT5sZW4pIC8gNCk7CiAgIHJlcyA9IGRvX2xvYWRlcl9jb21tYW5kIChsYiwgZGV2LCByZWFkX2FkYXB0ZXJfbWVtb3J5KTsKLSAgaWYgKCFyZXMpCi0gICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAgICBpZiAodGItPmRhdGFbaV0gIT0gY3B1X3RvX2JlMzIgKGRhdGFbaV0pKSB7Ci0JcmVzID0gLUVJTlZBTDsKLQlicmVhazsKLSAgICAgIH0KKyAgaWYgKCFyZXMgJiYgbWVtY21wKHRiLT5kYXRhLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSkpCisgICAgcmVzID0gLUVJTlZBTDsKICAgcmV0dXJuIHJlczsKIH0KIApAQCAtMTk2Miw0NyArMTkzMCw1MyBAQAogLyoqKioqKioqKiogdHJhbnNmZXIgYW5kIHN0YXJ0IHRoZSBtaWNyb2NvZGUgKioqKioqKioqKi8KIAogc3RhdGljIGludCBfX2RldmluaXQgdWNvZGVfaW5pdCAobG9hZGVyX2Jsb2NrICogbGIsIGFtYl9kZXYgKiBkZXYpIHsKLSAgdW5zaWduZWQgaW50IGkgPSAwOwotICB1bnNpZ25lZCBpbnQgdG90YWwgPSAwOwotICBjb25zdCB1MzIgKiBwb2ludGVyID0gdWNvZGVfZGF0YTsKLSAgdTMyIGFkZHJlc3M7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKKyAgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKyAgdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyZXNzOworICBjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKICAgaW50IHJlczsKICAgCisgIHJlcyA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsICJhdG1zYXIxMS5mdyIsICZkZXYtPnBjaV9kZXYtPmRldik7CisgIGlmIChyZXMpIHsKKyAgICBQUklOVEsgKEtFUk5fRVJSLCAiQ2Fubm90IGxvYWQgbWljcm9jb2RlIGRhdGEiKTsKKyAgICByZXR1cm4gcmVzOworICB9CisKKyAgLyogRmlyc3QgcmVjb3JkIGNvbnRhaW5zIGp1c3QgdGhlIHN0YXJ0IGFkZHJlc3MgKi8KKyAgcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pICE9IHNpemVvZihfX2JlMzIpIHx8IGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpIHsKKyAgICBQUklOVEsgKEtFUk5fRVJSLCAiQmFkIG1pY3JvY29kZSBkYXRhIChubyBzdGFydCByZWNvcmQpIik7CisgICAgcmV0dXJuIC1FSU5WQUw7CisgIH0KKyAgc3RhcnRfYWRkcmVzcyA9IGJlMzJfdG9fY3B1cCgoX19iZTMyICopcmVjLT5kYXRhKTsKKworICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CisKICAgUFJJTlREIChEQkdfRkxPV3xEQkdfTE9BRCwgInVjb2RlX2luaXQiKTsKLSAgCi0gIHdoaWxlIChhZGRyZXNzID0gdWNvZGVfcmVnaW9uc1tpXS5zdGFydCwKLQkgY291bnQgPSB1Y29kZV9yZWdpb25zW2ldLmNvdW50KSB7Ci0gICAgUFJJTlREIChEQkdfTE9BRCwgInN0YXJ0aW5nIHJlZ2lvbiAoJXgsICV1KSIsIGFkZHJlc3MsIGNvdW50KTsKLSAgICB3aGlsZSAoY291bnQpIHsKLSAgICAgIHVuc2lnbmVkIGludCB3b3JkczsKLSAgICAgIGlmIChjb3VudCA8PSBNQVhfVFJBTlNGRVJfREFUQSkKLQl3b3JkcyA9IGNvdW50OwotICAgICAgZWxzZQotCXdvcmRzID0gTUFYX1RSQU5TRkVSX0RBVEE7Ci0gICAgICB0b3RhbCArPSB3b3JkczsKLSAgICAgIHJlcyA9IGxvYWRlcl93cml0ZSAobGIsIGRldiwgcG9pbnRlciwgYWRkcmVzcywgd29yZHMpOwotICAgICAgaWYgKHJlcykKLQlyZXR1cm4gcmVzOwotICAgICAgcmVzID0gbG9hZGVyX3ZlcmlmeSAobGIsIGRldiwgcG9pbnRlciwgYWRkcmVzcywgd29yZHMpOwotICAgICAgaWYgKHJlcykKLQlyZXR1cm4gcmVzOwotICAgICAgY291bnQgLT0gd29yZHM7Ci0gICAgICBhZGRyZXNzICs9IHNpemVvZih1MzIpICogd29yZHM7Ci0gICAgICBwb2ludGVyICs9IHdvcmRzOworCisgIHdoaWxlIChyZWMpIHsKKyAgICBQUklOVEQgKERCR19MT0FELCAic3RhcnRpbmcgcmVnaW9uICgleCwgJXUpIiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkgICAgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKKyAgICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pID4gNCAqIE1BWF9UUkFOU0ZFUl9EQVRBKSB7CisJICAgIFBSSU5USyAoS0VSTl9FUlIsICJCYWQgbWljcm9jb2RlIGRhdGEgKHJlY29yZCB0b28gbG9uZykiKTsKKwkgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQotICAgIGkgKz0gMTsKKyAgICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pICYgMykgeworCSAgICBQUklOVEsgKEtFUk5fRVJSLCAiQmFkIG1pY3JvY29kZSBkYXRhIChvZGQgbnVtYmVyIG9mIGJ5dGVzKSIpOworCSAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmVzID0gbG9hZGVyX3dyaXRlKGxiLCBkZXYsIHJlYyk7CisgICAgaWYgKHJlcykKKyAgICAgIGJyZWFrOworCisgICAgcmVzID0gbG9hZGVyX3ZlcmlmeShsYiwgZGV2LCByZWMpOworICAgIGlmIChyZXMpCisgICAgICBicmVhazsKICAgfQotICBpZiAoKnBvaW50ZXIgPT0gQVRNX1BPSVNPTikgewotICAgIHJldHVybiBsb2FkZXJfc3RhcnQgKGxiLCBkZXYsIHVjb2RlX3N0YXJ0KTsKLSAgfSBlbHNlIHsKLSAgICAvLyBjYXN0IG5lZWRlZCBhcyB0aGVyZSBpcyBubyAlPyBmb3IgcG9pbnRlciBkaWZmZXJuY2VzCi0gICAgUFJJTlREIChEQkdfTE9BRHxEQkdfRVJSLAotCSAgICAib2Zmc2V0PSVsaSwgKnBvaW50ZXI9JXgsIGFkZHJlc3M9JXgsIHRvdGFsPSV1IiwKLQkgICAgKGxvbmcpIChwb2ludGVyIC0gdWNvZGVfZGF0YSksICpwb2ludGVyLCBhZGRyZXNzLCB0b3RhbCk7Ci0gICAgUFJJTlRLIChLRVJOX0VSUiwgImluY29ycmVjdCBtaWNyb2NvZGUgZGF0YSIpOwotICAgIHJldHVybiAtRU5PTUVNOwotICB9CisgIHJlbGVhc2VfZmlybXdhcmUoZncpOworICBpZiAoIXJlcykKKyAgICByZXMgPSBsb2FkZXJfc3RhcnQobGIsIGRldiwgc3RhcnRfYWRkcmVzcyk7CisKKyAgcmV0dXJuIHJlczsKIH0KIAogLyoqKioqKioqKiogZ2l2ZSBhZGFwdGVyIHBhcmFtZXRlcnMgKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuaCBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuaAppbmRleCBkZjU1ZmE4Li5iZDFjNDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmgKKysrIGIvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5oCkBAIC02NTYsMTcgKzY1Niw2IEBACiAjZGVmaW5lIEFNQl9ERVYoYXRtX2RldikgKChhbWJfZGV2ICopIChhdG1fZGV2KS0+ZGV2X2RhdGEpCiAjZGVmaW5lIEFNQl9WQ0MoYXRtX3ZjYykgKChhbWJfdmNjICopIChhdG1fdmNjKS0+ZGV2X2RhdGEpCiAKLS8qIHRoZSBtaWNyb2NvZGUgKi8KLQotdHlwZWRlZiBzdHJ1Y3QgewotICB1MzIgc3RhcnQ7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLX0gcmVnaW9uOwotCi1zdGF0aWMgcmVnaW9uIHVjb2RlX3JlZ2lvbnNbXTsKLXN0YXRpYyB1MzIgdWNvZGVfZGF0YVtdOwotc3RhdGljIHUzMiB1Y29kZV9zdGFydDsKLQogLyogcmF0ZSByb3VuZGluZyAqLwogCiB0eXBlZGVmIGVudW0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuZGF0YSBiL2RyaXZlcnMvYXRtL2F0bXNhcjExLmRhdGEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkYzhhNzYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuZGF0YQorKysgL2Rldi9udWxsCkBAIC0xLDIwNjMgKzAsMCBAQAotLyoKLSAgTWFkZ2UgQW1iYXNzYWRvciBBVE0gQWRhcHRlciBtaWNyb2NvZGUuCi0gIENvcHlyaWdodCAoQykgMTk5NS0xOTk5ICBNYWRnZSBOZXR3b3JrcyBMdGQuCi0gIAotICBUaGlzIG1pY3JvY29kZSBkYXRhIGlzIHBsYWNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsCi0gIFB1YmxpYyBMaWNlbnNlLiBUaGUgR1BMIGlzIGNvbnRhaW5lZCBpbiAvdXNyL2RvYy9jb3B5cmlnaHQvR1BMIG9uIGEKLSAgRGViaWFuIHN5c3RlbSBhbmQgaW4gdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgTGludXgga2VybmVsIHNvdXJjZS4KLSAgCi0gIFdlIHdvdWxkIHByZWZlciB5b3Ugbm90IHRvIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgd2l0aG91dAotICBjb25zdWx0YXRpb24gYW5kIG5vdCB0byBhc2sgZm9yIGFzc2VtYmx5L290aGVyIG1pY3JvY29kZSBzb3VyY2UuCi0qLwotCi0gIDB4NDAxYTY4MDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzM1YjAwN2MsCi0gIDB4MTM2MDAwMDUsCi0gIDB4MzM1YjEwMDAsCi0gIDB4M2MxYWEwYzAsCi0gIDB4Mzc1YTAxODAsCi0gIDB4MDM0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTc2MGZmZmIsCi0gIDB4MzM1YjQwMDAsCi0gIDB4NDAxYTcwMDAsCi0gIDB4MTM2MDAwMDMsCi0gIDB4MjQxYjBmYzAsCi0gIDB4YWY5YjQ1MDAsCi0gIDB4MjUwODAwMDgsCi0gIDB4MDM0MDAwMDgsCi0gIDB4NDIwMDAwMTAsCi0gIDB4OGY4MTBjOTAsCi0gIDB4MzIyMjAwMDIsCi0gIDB4MTA0MDAwMDMsCi0gIDB4M2MwM2EwZDEsCi0gIDB4MjQ2M2Y4MTAsCi0gIDB4MDA2MGY4MDksCi0gIDB4MjQyMTAwMDEsCi0gIDB4MTAwMDAwMWEsCi0gIDB4YWY4MTBjOTAsCi0gIDB4ODIwMjAwMTEsCi0gIDB4YWY5MDBjNDgsCi0gIDB4MDQ0MTAwMGEsCi0gIDB4MzQ0MjAwODAsCi0gIDB4OTY3ZDAwMDIsCi0gIDB4OTYwMjAwMTIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA1ZDAwMTEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDQxMTAxNjEsCi0gIDB4YTY2MjAwMDIsCi0gIDB4MTAwMDAwMGQsCi0gIDB4YWU2MjAwMGMsCi0gIDB4MzQ4NDgwMDAsCi0gIDB4YTIwMjAwMTEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MzBmZWMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MDAwNDE0MDAsCi0gIDB4MDQ0MGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGUxMDAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4NDkwMDAwMWQsCi0gIDB4YWY4MzBmZWMsCi0gIDB4OGY4MjBjYmMsCi0gIDB4OGY5ZDBjNGMsCi0gIDB4MjQ0MjAwMDEsCi0gIDB4OTdiZTAwMDAsCi0gIDB4YWY4MjBjYmMsCi0gIDB4MTNjMDAwMDksCi0gIDB4YWNhMjAwZDgsCi0gIDB4YTdhMDAwMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAzZTA4MjUsCi0gIDB4OTQyMjAwMmMsCi0gIDB4MDQxMTAxM2YsCi0gIDB4YTQyMjAwMDIsCi0gIDB4YWMyMjAwMGMsCi0gIDB4YWMyMDAwMTAsCi0gIDB4OGY5ZTBjNTQsCi0gIDB4MjdiZDAwMDIsCi0gIDB4MTdiZTAwMDIsCi0gIDB4OGNhMjAwYzAsCi0gIDB4OGY5ZDBjNTAsCi0gIDB4OGY5NzBmYzgsCi0gIDB4YWY5ZDBjNGMsCi0gIDB4MTJlMjAwMDUsCi0gIDB4ODc4MDQwMDIsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmY5NGMsCi0gIDB4MDA0MGY4MDksCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NDUwMGZmZGMsCi0gIDB4OGUxMTAwMGMsCi0gIDB4M2MxMzAwZDEsCi0gIDB4MDAxMTExMDIsCi0gIDB4MmM0MzA0MDAsCi0gIDB4MTA2MGZmYjksCi0gIDB4MDAwMjExODAsCi0gIDB4MDI2Mjk4MjEsCi0gIDB4OGU3NjAwM2MsCi0gIDB4MzIyMjAwMDgsCi0gIDB4MTQ0MGZmYjcsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwYmUsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MGZmYTYsCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MDI2MDkwMjEsCi0gIDB4MzIyMjAwMDIsCi0gIDB4MTA0MDAwMDcsCi0gIDB4OGY5NDRhMDAsCi0gIDB4OTYwMjAwM2EsCi0gIDB4MzQ4NDAwMDQsCi0gIDB4MTQ0MDAwMDMsCi0gIDB4YWY4MjBmYmMsCi0gIDB4M2MwMjkwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGUxMDAwMDgsCi0gIDB4MzI5NDNmMDAsCi0gIDB4OGUxMTAwMGMsCi0gIDB4MjY5NGZmMDAsCi0gIDB4MTI4MDAwNzMsCi0gIDB4M2MxMzAwZDEsCi0gIDB4NDkwMTAwNzEsCi0gIDB4MzIzNzAwMDgsCi0gIDB4MTZlMDAwNmYsCi0gIDB4MDAxMTExMDIsCi0gIDB4MmM0MzA0MDAsCi0gIDB4MTA2MDAwNmMsCi0gIDB4MDAwMmI5ODAsCi0gIDB4MDAwNDE3NDAsCi0gIDB4MDQ0MDAwM2EsCi0gIDB4MDI3Nzk4MjEsCi0gIDB4MTI3MjAwMjMsCi0gIDB4MjZkNjAwMzAsCi0gIDB4YWU1NjAwM2MsCi0gIDB4OGU3NjAwM2MsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwOTEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwNjAsCi0gIDB4MmU4MjEwMDAsCi0gIDB4MTQ0MDAwMDksCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWM3NjAwMTAsCi0gIDB4YWU0MjAwMzQsCi0gIDB4MTAwMGZmZDAsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MDA3MDE4MjYsCi0gIDB4YWU0NjAwMzQsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MTAwMGZmYzMsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MTA0MDAwNDIsCi0gIDB4M2MxN2NmYjAsCi0gIDB4MmU4MjEwMDAsCi0gIDB4MTQ0MDAwMDYsCi0gIDB4MDJmMGI4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVmNjAwMTAsCi0gIDB4MTAwMGZmYjgsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY4NjRjMDAsCi0gIDB4YWVmNjAwMTAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4MTAwMGZmYWUsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MzA4NGZmZmIsCi0gIDB4OGU1NzAwMzgsCi0gIDB4MzI0MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4YTc4MjBmYjgsCi0gIDB4YWY5NzBmYjQsCi0gIDB4ODY1ZDAwMmEsCi0gIDB4ODY1ZTAwMDgsCi0gIDB4YTc5ZDBmYmEsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGY5NzBjNTgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4OGZhMjAwMWMsCi0gIDB4MTJlMzAwMDMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4M2MxZWMwMDAsCi0gIDB4YWY5ZTBmYmMsCi0gIDB4YWM2MjBmYjQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDIsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4YWU0MDAwM2MsCi0gIDB4YWZhMjAwMWMsCi0gIDB4OGU3NjAwM2MsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwM2MsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4MTA0MDAwMzIsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MTAwMGZmN2YsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MDAwNDE3NDAsCi0gIDB4MDQ0MDAwMDcsCi0gIDB4MjZkNjAwMzAsCi0gIDB4YWU1NjAwM2MsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MTAwMGZmMzksCi0gIDB4YWU0NjAwMzQsCi0gIDB4OGU1NzAwMzgsCi0gIDB4MzI0MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4YTc4MjBmYjgsCi0gIDB4YWY5NzBmYjQsCi0gIDB4OGY5NzBjNTgsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MTJlNjAwMDMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4M2MwMmMwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4ODY1ZDAwMmEsCi0gIDB4ODY1ZTAwMDgsCi0gIDB4YTc5ZDBmYmEsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzRjMDAsCi0gIDB4YWM2MjBmYjQsCi0gIDB4MzA4NGZmZmIsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDIsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4YWU0MDAwM2MsCi0gIDB4YWZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4MTAwMGZmMTMsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MTAwMGZmMGYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwNWIsCi0gIDB4ODY3ZTAwMDgsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZTEwYzIsCi0gIDB4MDNhMmU4MjEsCi0gIDB4OGZiNzAwMDgsCi0gIDB4OGZhMjAwMGMsCi0gIDB4OGVmNjAwMDQsCi0gIDB4MTJlMjAwMjgsCi0gIDB4ODY2MjAwMDgsCi0gIDB4ODIwMzAwMTAsCi0gIDB4MDAwMjE3NDAsCi0gIDB4MDQ0MTAwMTksCi0gIDB4MjQ2MzAwMDEsCi0gIDB4MTA2MDAwMTcsCi0gIDB4M2MwMmQxYjAsCi0gIDB4MDA1MDEwMjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5ZTRjMDAsCi0gIDB4YWM1NjAwMTAsCi0gIDB4MjZkNmZmZmUsCi0gIDB4ODYwMjAwMTAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MzQ2MzIwMDAsCi0gIDB4YTY2MjAwMmEsCi0gIDB4OGVlMjAwMDAsCi0gIDB4MjZmNzAwMDgsCi0gIDB4YWU2MjAwMzgsCi0gIDB4OGZhMjAwMjAsCi0gIDB4YWZiNzAwMDgsCi0gIDB4MjQxN2ZmZmYsCi0gIDB4MDJjMmE4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY5ZTRjMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4OGVlMjAwMDAsCi0gIDB4MjZmNzAwMDgsCi0gIDB4YWU2MjAwMzgsCi0gIDB4OGZhMjAwMjAsCi0gIDB4YWZiNzAwMDgsCi0gIDB4MjQxN2ZmZmYsCi0gIDB4YTY3NzAwMmEsCi0gIDB4MDJjMmE4MjEsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4MDAxZTE4YzIsCi0gIDB4MDA2NTE4MjEsCi0gIDB4OGM2MzAwYzgsCi0gIDB4OGZhMjAwMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MmIwMjMsCi0gIDB4MWVjMDAwMDMsCi0gIDB4OGZhMTAwMDQsCi0gIDB4MTJjMDAwMWIsCi0gIDB4MDAyMmIwMjMsCi0gIDB4MmVjMzAwNDEsCi0gIDB4MTQ2MDAwMDIsCi0gIDB4M2MxNTAwNDAsCi0gIDB4MjQxNjAwNDAsCi0gIDB4MDAxNjFlODAsCi0gIDB4MDAwMzE4ODIsCi0gIDB4MDA3NTE4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NTRjMDAsCi0gIDB4MDAxZWI4NDAsCi0gIDB4MDA3NzE4MjEsCi0gIDB4YWM2MjRkMDAsCi0gIDB4MDA1NjEwMjEsCi0gIDB4MTQ0MTAwMDIsCi0gIDB4Mjc4MzBkMDAsCi0gIDB4OGZhMjAwMDAsCi0gIDB4MDJlM2I4MjEsCi0gIDB4YWZhMjAwMTAsCi0gIDB4MDJkNzE4MjEsCi0gIDB4YWZhMzAwMGMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGVmNjAwMDQsCi0gIDB4MTAwMGZmYjUsCi0gIDB4YWY5NTRjMDAsCi0gIDB4M2MxNmRlYWQsCi0gIDB4YWU3NjAwM2MsCi0gIDB4YWU2MDAwMzgsCi0gIDB4MjZkNWZmZmYsCi0gIDB4MDAwMDEwMjEsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4MmM0MzBhYjIsCi0gIDB4MTA2MDAwMDUsCi0gIDB4MmM0MzI0YjIsCi0gIDB4MTAwMDAwMDQsCi0gIDB4MjQwMjBhYjIsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MjQwMjI0YjEsCi0gIDB4MTA2MGZmZmQsCi0gIDB4MzA0MzAxZmYsCi0gIDB4MDAwMzE4NDAsCi0gIDB4M2MxZGEwZDEsCi0gIDB4MjdiZGQ2Y2MsCi0gIDB4MDA3ZDE4MjEsCi0gIDB4OTQ2MzAwMDAsCi0gIDB4MDAwMmVhNDIsCi0gIDB4MDAwMzFjMDAsCi0gIDB4MjdiZGZmZmIsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDNhMzEwMDYsCi0gIDB4MjQwMzBmYzAsCi0gIDB4YWY4MzQ1MDAsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MDEyMDYwMjEsCi0gIDB4M2MwY2NmYjAsCi0gIDB4MTFlMDAwNTYsCi0gIDB4MDE4OTYwMjYsCi0gIDB4ODVmZTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTNjMDAwNDcsCi0gIDB4M2MwMmNmYjAsCi0gIDB4MDdjMDAwMmQsCi0gIDB4MDAxZTFmODAsCi0gIDB4MDQ2MTAwMzQsCi0gIDB4MDAxZTFmYzAsCi0gIDB4MDQ2MDAwMDksCi0gIDB4M2MwMmQzYjAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4OGY5OTBmZWMsCi0gIDB4MTAwMDAwMGIsCi0gIDB4YWY5OTRjMDAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWRlZjIwMTAsCi0gIDB4M2MwMmQzYjAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4OGY4MjBmYzAsCi0gIDB4OGY4MzBmYzQsCi0gIDB4YWY4MjRkMDAsCi0gIDB4OGRlMjAwMDQsCi0gIDB4YTVlMDAwMDAsCi0gIDB4YWM2MjAwMDAsCi0gIDB4OGM2MjAwMDAsCi0gIDB4MjQwMjAzODAsCi0gIDB4YWY4MjRkMDAsCi0gIDB4OGY4MjRkMDAsCi0gIDB4OGY4MjBmMTQsCi0gIDB4MjQ2MzAwMDQsCi0gIDB4MTQ2MjAwMDIsCi0gIDB4MjQxOWZmZmYsCi0gIDB4OGY4MzBmMTAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4YWY4MzBmYzQsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjODAsCi0gIDB4MTAwMDAwMWYsCi0gIDB4YWRlMjAwM2MsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTVlMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4MTU4MDAwMjIsCi0gIDB4YWY4ZjQ1NDAsCi0gIDB4MTAwMDAwMTcsCi0gIDB4MDFlMjc4MjYsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWRlZjIwMTAsCi0gIDB4M2MwMmNmYjAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4YTVlMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMDAwMDcsCi0gIDB4OGY5OTRjMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4OGY5OTBmZWMsCi0gIDB4MTU4MDAwMGEsCi0gIDB4YWY4ZjQ1MDAsCi0gIDB4MDAwMDc4MjEsCi0gIDB4MTAwMDAwMTQsCi0gIDB4YWYxOTAwMTQsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTE4MGZmZjgsCi0gIDB4OGY4NjRjMDAsCi0gIDB4ODUyMjAwMDAsCi0gIDB4MDEyMDc4MjEsCi0gIDB4MDQ0MDAwMGEsCi0gIDB4OGQyOTAwMDgsCi0gIDB4MTMwYjAwMDQsCi0gIDB4MDAwYzE2MDIsCi0gIDB4YWYxOTAwMTQsCi0gIDB4OGQ3OTAwMTQsCi0gIDB4MDE2MGMwMjEsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWQ4ZTQwMTAsCi0gIDB4MzA0MjAwM2YsCi0gIDB4MDFjMjcwMjEsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MDAxOGIsCi0gIDB4OGY4MjRhMDAsCi0gIDB4MzA4MTgwMDAsCi0gIDB4MzA0MjAwMDQsCi0gIDB4MTQ0MGZmOGQsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAyMDAwMGMsCi0gIDB4MzA4NDdmZmYsCi0gIDB4OGY4MjBjNDgsCi0gIDB4MDEyMGYwMjEsCi0gIDB4MjQ0MzAwMzQsCi0gIDB4OGM1ZDAwMGMsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4YWZkZDAwMGMsCi0gIDB4MTQ2MmZmZmMsCi0gIDB4MjdkZTAwMDQsCi0gIDB4YTUyMTAwMDAsCi0gIDB4MTAwMGZmODIsCi0gIDB4MjUwODAwMDgsCi0gIDB4MTE2MDAwNTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODU3ZDAwMDgsCi0gIDB4OGQ2MzAwMGMsCi0gIDB4OTU2MjAwMGEsCi0gIDB4OGQ0MTAwMDQsCi0gIDB4MDdhMTAwMjYsCi0gIDB4MDA2MjE4MjEsCi0gIDB4YTU2MzAwMGEsCi0gIDB4MDAwMzFjMDIsCi0gIDB4MDQxMTAxYTAsCi0gIDB4MDAwMzE4YzAsCi0gIDB4MDAxZDE2YzAsCi0gIDB4MDQ0MTAwMWYsCi0gIDB4MjdhMjAwODAsCi0gIDB4MDAwMjFjYzAsCi0gIDB4MDQ2MTAwMGUsCi0gIDB4MDA0MGU4MjEsCi0gIDB4MjdiZDAwODAsCi0gIDB4OTU2MjAwMDAsCi0gIDB4OTU2MzAwMDIsCi0gIDB4MzQ0MjAwMGMsCi0gIDB4YWQyMjAwMGMsCi0gIDB4MjQwMjAxMDAsCi0gIDB4YTUyMjAwMTAsCi0gIDB4OTU2MjAwMmMsCi0gIDB4YTUyMzAwMTQsCi0gIDB4YTUyMjAwMTIsCi0gIDB4YTUyMDAwMTYsCi0gIDB4MzQwMjgwMDAsCi0gIDB4YTUyMjAwMDAsCi0gIDB4YTU3ZDAwMDgsCi0gIDB4MDdhMDAwMGMsCi0gIDB4OGY4MjBjNGMsCi0gIDB4OGY4MzBjNTAsCi0gIDB4MjQ0MWZmZTgsCi0gIDB4MDAyM2YwMmIsCi0gIDB4MTNjMDAwMDIsCi0gIDB4MDAyMDEwMjEsCi0gIDB4MjQ0MjA0MDAsCi0gIDB4OTQ1ZTAwMDAsCi0gIDB4MjQ0MWZmZmUsCi0gIDB4MTdjMGZmZjksCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTQ0YjAwMDAsCi0gIDB4MTQyYjAwMWMsCi0gIDB4YWQ0MDAwMDAsCi0gIDB4YWQ0MDAwMDQsCi0gIDB4MjU0YTAwMDgsCi0gIDB4MzE0MjAwN2YsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MTAwMDAwMDYsCi0gIDB4MzQ4NDAwMDEsCi0gIDB4MzQ4NDAwMDIsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4MzU0YTAxMDAsCi0gIDB4Mzk0YTAxMDAsCi0gIDB4Mzk0MjAwODAsCi0gIDB4YWY4MjBmZTQsCi0gIDB4MDAxZDE0YzAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4MzNhMmVmZmYsCi0gIDB4MTAwMGZmM2MsCi0gIDB4YTU2MjAwMDgsCi0gIDB4MDdhMDAwOWYsCi0gIDB4MzNhMmZmZmUsCi0gIDB4MTAwMDAwMjEsCi0gIDB4YTU2MjAwMDgsCi0gIDB4OGQ2MjAwMjQsCi0gIDB4MDAxZDFjYzAsCi0gIDB4MDQ2MTAwMDQsCi0gIDB4YWQ0MjAwMDAsCi0gIDB4MzNhM2VmZmYsCi0gIDB4MTAwMGZmMzEsCi0gIDB4YTU2MzAwMDgsCi0gIDB4MDdhMDAwMDUsCi0gIDB4MzNhM2ZmZmUsCi0gIDB4YTU2MzAwMDgsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAwMGZmYWEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMDAwOGUsCi0gIDB4MjUwODAwMDgsCi0gIDB4MjU0YTAwMDgsCi0gIDB4MzE0MjAwN2YsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MTAwMDAwMDYsCi0gIDB4MzQ4NDAwMDEsCi0gIDB4MzQ4NDAwMDIsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4MzU0YTAxMDAsCi0gIDB4Mzk0YTAxMDAsCi0gIDB4Mzk0MjAwODAsCi0gIDB4YWY4MjBmZTQsCi0gIDB4MTEwMDAwMDMsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAwMGZmOTMsCi0gIDB4MjUwOGZmZjgsCi0gIDB4OGY4MjBmZDgsCi0gIDB4OGY4MzBmZGMsCi0gIDB4OGY4MTBmZDQsCi0gIDB4MTA2MjAwMWQsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4YzRjMDAsCi0gIDB4ODQ3ZjAwMDAsCi0gIDB4M2MxZTAwZDEsCi0gIDB4MzNmZDAzZmYsCi0gIDB4MDAxZDU5ODAsCi0gIDB4MDE3ZTU4MjEsCi0gIDB4ODU3ZTAwMDgsCi0gIDB4MDAxZGU5MDAsCi0gIDB4MDAxZTBmMDAsCi0gIDB4MDNlMWY4MjUsCi0gIDB4MDdlMDAwMDMsCi0gIDB4YWY4MjBmZGMsCi0gIDB4ODc5ZTBjYTAsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4MDdjMTAwNDIsCi0gIDB4M2MwMjA4NDAsCi0gIDB4M2MwMWY3YjAsCi0gIDB4OGQ2MjAwMjAsCi0gIDB4MDAyMzA4MjYsCi0gIDB4YWMyMjAwMDAsCi0gIDB4OGM2MjAwMDQsCi0gIDB4OTQ2MzAwMDIsCi0gIDB4MjQ0MmZmZjgsCi0gIDB4MDA0MzEwMjEsCi0gIDB4MTAwMDAwNGUsCi0gIDB4YWQ2MjAwMjAsCi0gIDB4OGY4MjBmZDAsCi0gIDB4ODc4MzBjYTAsCi0gIDB4MTQyMjAwMDcsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4NDEwMDAwNTEsCi0gIDB4M2MwMTgwMDAsCi0gIDB4YWNhMTAwZTAsCi0gIDB4OGNhMTAwYzQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAyMjAwNGMsCi0gIDB4MDAyMmU4MjMsCi0gIDB4OGY5ZjBmMGMsCi0gIDB4MDdhMTAwMDIsCi0gIDB4YWY4MTBmZDQsCi0gIDB4MDNlMmU4MjMsCi0gIDB4MmZhMzAwNDEsCi0gIDB4MTQ2MDAwMDIsCi0gIDB4M2MxZTAwNDAsCi0gIDB4MjQxZDAwNDAsCi0gIDB4MDAxZDFlODAsCi0gIDB4MDAwMzE4ODIsCi0gIDB4MDA3ZTE4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4YzRjMDAsCi0gIDB4YWM2MjRjYzAsCi0gIDB4MDA1ZDEwMjEsCi0gIDB4MTQ1ZjAwMDIsCi0gIDB4Mjc4MzBjYzAsCi0gIDB4OGY4MjBmMDgsCi0gIDB4MDNhM2YwMjEsCi0gIDB4YWY4MjBmZDAsCi0gIDB4YWY5ZTBmZDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmYzMsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4OGQ2MzAwMGMsCi0gIDB4OGQ3ZDAwMTAsCi0gIDB4YTU2MzAwMGEsCi0gIDB4MTNhMDAwMDIsCi0gIDB4MDAwMzFjMDIsCi0gIDB4YTdhMDAwMDAsCi0gIDB4MDAwMzE4YzAsCi0gIDB4MDQxMTAwZWYsCi0gIDB4MDA2ODE4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNDQsCi0gIDB4OGY4MzBjNDAsCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTU2MzAwMDQsCi0gIDB4YTU2MzAwMDYsCi0gIDB4MTAwMDAwMjEsCi0gIDB4YWY4YzRjMDAsCi0gIDB4YTU3ZDAwMDAsCi0gIDB4OGM3ZDAwMDQsCi0gIDB4OTQ2MzAwMDIsCi0gIDB4YWM1ZDRjNDAsCi0gIDB4MjdhMjAwMDgsCi0gIDB4YWQ2MjAwMTgsCi0gIDB4MDNhM2U4MjEsCi0gIDB4MjdiZGZmZjQsCi0gIDB4YWQ3ZDAwMWMsCi0gIDB4MjdiZDAwMDQsCi0gIDB4YWQ3ZDAwMjAsCi0gIDB4MzdjMTgwMDEsCi0gIDB4MDAxZTE3YzAsCi0gIDB4MDQ0MWZmZTAsCi0gIDB4YTU2MTAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNDQsCi0gIDB4OGY4MzBjNDAsCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTU2MzAwMDQsCi0gIDB4YTU2MzAwMDYsCi0gIDB4OGY4MjBmZDgsCi0gIDB4OGY4MzBmZGMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQ2MmZmOTUsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4YWY4YzRjMDAsCi0gIDB4ODc4MzBjYTAsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4MDQ2MWZlOTcsCi0gIDB4MDAwNDE3MDAsCi0gIDB4MDQ0MDAwMDUsCi0gIDB4OTU2MjAwMDAsCi0gIDB4MTE3ODAwMDYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWYwZTAwMTAsCi0gIDB4YTcwZDAwMDQsCi0gIDB4MzA4NGZmZjcsCi0gIDB4OTU2ZDAwMDQsCi0gIDB4OGQ2ZTAwMTAsCi0gIDB4MjVhZGZmZDAsCi0gIDB4MDVhMWZlOGYsCi0gIDB4YWQyMjAwMGMsCi0gIDB4M2MwY2ZmYjAsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MDAwZDE4MjIsCi0gIDB4MjVhZDAwMzAsCi0gIDB4OGQ3ZTAwMTgsCi0gIDB4OGQ2MTAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAzZTAwMzYsCi0gIDB4OGY5ZDRjMDAsCi0gIDB4M2MwMTA4NDAsCi0gIDB4YWMzZTRjNDAsCi0gIDB4MjdkZTAwMDgsCi0gIDB4MTFhMDAwMTcsCi0gIDB4YWQ3ZTAwMTgsCi0gIDB4MDAwZGY2MDAsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWQ4ZTQwMTAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OTU3ZTAwMDYsCi0gIDB4OGY4ZTBjNDQsCi0gIDB4MDNjZGYwMjEsCi0gIDB4YTU3ZTAwMDYsCi0gIDB4MDAwY2Y3ODIsCi0gIDB4MDAwYzBlMDIsCi0gIDB4MDNjMWYwMjEsCi0gIDB4MDAxZTBmODAsCi0gIDB4MDAwYzYyMDAsCi0gIDB4MDAwYzYyMDIsCi0gIDB4MDE4MTYwMjUsCi0gIDB4MzNkZTAwM2MsCi0gIDB4MDE5ZTYwMjEsCi0gIDB4MzQwMTAwMDEsCi0gIDB4MTAwMDAwMDgsCi0gIDB4YTUyMTAwMDAsCi0gIDB4OTU3ZTAwMDYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OGY4ZTBjNDQsCi0gIDB4MDNjZGYwMjEsCi0gIDB4YTU3ZTAwMDYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDFhM2YwMmIsCi0gIDB4MTdjMDAwMDgsCi0gIDB4MDAwM2Y2MDAsCi0gIDB4MDFhMzY4MjMsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4NGQwMWZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZlNTgsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4OGQ3ZTAwMTgsCi0gIDB4OGQ2MTAwMWMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQzZWZmY2UsCi0gIDB4MDA2ZDE4MjMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MmM2MTAwMDgsCi0gIDB4MTAyMDAwMTcsCi0gIDB4OTU2MTAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMWZmODAsCi0gIDB4MDdlMDAwMGIsCi0gIDB4MzQyMTAwMDIsCi0gIDB4MDA2ZDE4MjEsCi0gIDB4MDAwMzFlMDAsCi0gIDB4MDE4MzYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MjQwZDAwMmMsCi0gIDB4YTU2MTAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZlNDAsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4M2MxZjBjNDAsCi0gIDB4YWZmZTRmYTgsCi0gIDB4MzAyMWZmZmQsCi0gIDB4YTU2MTAwMDgsCi0gIDB4M2MwY2QzY2YsCi0gIDB4MzU4Y2UwMDAsCi0gIDB4MTAwMDAwMDgsCi0gIDB4MzQwMzAwMDIsCi0gIDB4M2MxZjBjNDAsCi0gIDB4YWZmZTRmYTgsCi0gIDB4MTFhMGZmZjksCi0gIDB4MDAwZGY2MDAsCi0gIDB4MzQwMzAwMDMsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MzQ4NDAwMDgsCi0gIDB4MzQ0MjAwMDIsCi0gIDB4YWQyMjAwMGMsCi0gIDB4OTU2MjAwMDYsCi0gIDB4YTUyMzAwMDAsCi0gIDB4YWQyMjAwMzgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODU3ZTAwMDgsCi0gIDB4OGY4MjBmYTgsCi0gIDB4OTc4MzBmYWMsCi0gIDB4YWQyMjAwMDQsCi0gIDB4MzNjMTdmZmYsCi0gIDB4YWQ2MDAwMTAsCi0gIDB4YTU2MTAwMDgsCi0gIDB4MTA2MGZlMjAsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4YTU3ZTAwMDgsCi0gIDB4MDAwMzE5MDAsCi0gIDB4MzA2MzNmZjAsCi0gIDB4YTU2MzAwMDAsCi0gIDB4OGY4MjBmYjAsCi0gIDB4M2MwMzA4NDAsCi0gIDB4YWM2MjRjNDAsCi0gIDB4MjQ0MzAwMDgsCi0gIDB4YWQ2MzAwMTgsCi0gIDB4OTc4MzBmYWUsCi0gIDB4MjQ0MmZmZjQsCi0gIDB4MDA2MjE4MjEsCi0gIDB4YWQ2MzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OGY4MzBjNDQsCi0gIDB4YTU2ZDAwMDQsCi0gIDB4YTU2ZDAwMDYsCi0gIDB4YWQ2MzAwMTAsCi0gIDB4MTAwMGZlMGEsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MDAwNDBmYzAsCi0gIDB4OGM0MzAwMDAsCi0gIDB4MDQyMTAwMWIsCi0gIDB4OGY5ZjBmZTQsCi0gIDB4OGM1ZDAwMDQsCi0gIDB4YWM0MDAwMDQsCi0gIDB4MTA2MDAwMGUsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTQ2MjAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA1ZjEwMjAsCi0gIDB4OGM0MTAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAyMDAwMDMsCi0gIDB4YWM0MzAwMDQsCi0gIDB4MTAwMDAwMDIsCi0gIDB4YWMyMzAwMjQsCi0gIDB4YWM0MzAwMDAsCi0gIDB4MTdhM2ZmZjQsCi0gIDB4OGM2MzAwMjQsCi0gIDB4OGY4MjBmZTAsCi0gIDB4M2JmZjAwODAsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4YWY5ZjBmZTQsCi0gIDB4MTAwMGZlNTcsCi0gIDB4MzA4NGZmZmUsCi0gIDB4MTA2MDAwMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTQ3ZDAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDNiZmU4MjAsCi0gIDB4OGZhMTAwMDQsCi0gIDB4YWZhMzAwMDQsCi0gIDB4MTAyMDAwMDMsCi0gIDB4OGM1ZTAwMDQsCi0gIDB4MTAwMDAwMDIsCi0gIDB4YWMyMzAwMjQsCi0gIDB4YWZhMzAwMDAsCi0gIDB4OGM2MTAwMjQsCi0gIDB4MTdjM2ZlNDgsCi0gIDB4YWM0MTAwMDAsCi0gIDB4YWM0MDAwMDQsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MTAwMGZlNDQsCi0gIDB4MzA4NGZmZmQsCi0gIDB4MmM2MjAxMDAsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDA2YTEwMjEsCi0gIDB4MzE0MzAwN2YsCi0gIDB4MDE0MzE4MjMsCi0gIDB4MDA0MzE4MjMsCi0gIDB4MzA2MjAwN2YsCi0gIDB4YTU2MjAwMjgsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MDAwMzE5MDIsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MjQ2M2ZmZjgsCi0gIDB4MDA2MjE4MjEsCi0gIDB4MzQ2MzEwMDAsCi0gIDB4MTAwMDAwMDMsCi0gIDB4Mzg2MzEwMDAsCi0gIDB4MzQ0MzAxMDAsCi0gIDB4Mzg2MzAxMDAsCi0gIDB4OGM2MjAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwMDMsCi0gIDB4YWM2YjAwMDQsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWM0YjAwMjQsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWM2YjAwMDAsCi0gIDB4MDAwMDAwMDIsCi0gIDB4YTBkMGUwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDEwMDAsCi0gIDB4MDAwMDAwMDYsCi0gIDB4MDAwMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDgsCi0gIDB4MDAwMDAwMDIsCi0gIDB4YTBkMGQ2NDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDA4ODgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQ0ZDQzNTIsCi0gIDB4MjQyMDQzNmYsCi0gIDB4NzA3OTcyNjksCi0gIDB4Njc2ODc0MjAsCi0gIDB4Mjg2MzI5MjAsCi0gIDB4NGQ2MTY0NjcsCi0gIDB4NjUyMDRlNjUsCi0gIDB4NzQ3NzZmNzIsCi0gIDB4NmI3MzIwNGMsCi0gIDB4NzQ2NDIwMzEsCi0gIDB4MzkzOTM1MmUsCi0gIDB4MjA0MTZjNmMsCi0gIDB4MjA3MjY5NjcsCi0gIDB4Njg3NDczMjAsCi0gIDB4NzI2NTczNjUsCi0gIDB4NzI3NjY1NjQsCi0gIDB4MmUwMDRkNjEsCi0gIDB4NjQ2NzY1MjAsCi0gIDB4NDE2ZDYyNjEsCi0gIDB4NzM3MzYxNjQsCi0gIDB4NmY3MjIwNzYsCi0gIDB4MzEyZTMwMzEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDEsCi0gIDB4MDAwMDAwMDEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ZmZmMDQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MGMzNDNlMmQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxY2EwZDEsCi0gIDB4Mjc5YzU2MzgsCi0gIDB4M2MxZGEwZDEsCi0gIDB4MjdiZGRmZDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGRmZDAsCi0gIDB4YWY4NzgwMDgsCi0gIDB4MGMzNDNjMTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwNDAwMDMsCi0gIDB4MDA5NzAwMGQsCi0gIDB4M2MwOGJmYzAsCi0gIDB4MzUwODAyMzAsCi0gIDB4OGQwODAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDEwMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjdiZGZmZDAsCi0gIDB4YWZiZjAwMWMsCi0gIDB4YWZiMTAwMTgsCi0gIDB4YWZiMDAwMTQsCi0gIDB4M2MxMWZmZjAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MxODAwNTYsCi0gIDB4MzcxODNiNzksCi0gIDB4MjYxOTAyMDAsCi0gIDB4MTcyMDAwMDIsCi0gIDB4MDMxOTAwMWEsCi0gIDB4MDAwNzAwMGQsCi0gIDB4MjQwMWZmZmYsCi0gIDB4MTcyMTAwMDUsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMTgwMDAsCi0gIDB4MTcwMTAwMDIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwNjAwMGQsCi0gIDB4MDAwMDEwMTIsCi0gIDB4MDAxMDE4NDAsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWQ2Y2MsCi0gIDB4MDBhMzIwMjEsCi0gIDB4YTQ4MjAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAyMDAsCi0gIDB4MTQyMGZmZWEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwNmEwZDEsCi0gIDB4MjRjNmY5ZTQsCi0gIDB4M2MwN2EwZDEsCi0gIDB4MjRlN2Q2NDgsCi0gIDB4YWNlNjAwMDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGZiMTQsCi0gIDB4YWNlODAwMDQsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWZjOTQsCi0gIDB4YWNlOTAwMDgsCi0gIDB4M2MwYWEwZDEsCi0gIDB4MjU0YWZjZDQsCi0gIDB4YWNlYTAwMGMsCi0gIDB4M2MwYmEwZDEsCi0gIDB4MjU2YmZiYTgsCi0gIDB4YWNlYjAwMTAsCi0gIDB4M2MwY2EwZDEsCi0gIDB4MjU4Y2ZiYzQsCi0gIDB4YWNlYzAwMTQsCi0gIDB4M2MwZGEwZDEsCi0gIDB4MjVhZGZiZTAsCi0gIDB4YWNlZDAwMTgsCi0gIDB4M2MwZWEwZDEsCi0gIDB4MjVjZWZiZmMsCi0gIDB4YWNlZTAwMWMsCi0gIDB4M2MwZmEwZDEsCi0gIDB4MjVlZmZjMTgsCi0gIDB4YWNlZjAwMjAsCi0gIDB4M2MxOGEwZDEsCi0gIDB4MjcxOGZjMzQsCi0gIDB4YWNmODAwMjQsCi0gIDB4M2MxOWEwZDEsCi0gIDB4MjczOWZjNTAsCi0gIDB4YWNmOTAwMjgsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmZjNjAsCi0gIDB4YWNlMjAwMmMsCi0gIDB4M2MwM2EwZDEsCi0gIDB4MjQ2M2ZjNzAsCi0gIDB4YWNlMzAwMzAsCi0gIDB4M2MwNGEwZDEsCi0gIDB4MjQ4NGZjODAsCi0gIDB4YWNlNDAwMzQsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWZjYjQsCi0gIDB4YWNlNTAwMzgsCi0gIDB4M2MwNmEwZDEsCi0gIDB4MjRjNmZlMDgsCi0gIDB4YWNlNjAwM2MsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGZlOTAsCi0gIDB4YWNlODAwNDAsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWZhMzgsCi0gIDB4YWNlOTAwNDQsCi0gIDB4M2MwYWEwZDEsCi0gIDB4MjU0YWZhNzQsCi0gIDB4YWNlYTAwNDgsCi0gIDB4MjQxMDAwMTMsCi0gIDB4M2MwYmEwZDEsCi0gIDB4MjU2YmY5ZDgsCi0gIDB4MDAxMDYwODAsCi0gIDB4M2MwZWEwZDEsCi0gIDB4MjVjZWQ2NDgsCi0gIDB4MDFjYzY4MjEsCi0gIDB4YWRhYjAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMjAsCi0gIDB4MTQyMGZmZjYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5ODgwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWYwMDAxMDAsCi0gIDB4OGY4MjgwMDAsCi0gIDB4MjQxOTAzZmYsCi0gIDB4YTQ1OTAyMDIsCi0gIDB4MDAwMDgwMjEsCi0gIDB4OGY4NjgwMDAsCi0gIDB4MjQwMzBmZmYsCi0gIDB4MDAxMDIwNDAsCi0gIDB4MjRjNzAzODAsCi0gIDB4MDBlNDI4MjEsCi0gIDB4YTRhMzAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDgsCi0gIDB4MTQyMGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4OTgwMDAsCi0gIDB4MzQwODljNDAsCi0gIDB4YWQyODAzYTAsCi0gIDB4OGY4YjgwMDAsCi0gIDB4M2MwYTAwZmYsCi0gIDB4MzU0YWZmZmYsCi0gIDB4YWQ2YTAzYTQsCi0gIDB4MDAwMDgwMjEsCi0gIDB4OGY4ZjgwMDAsCi0gIDB4MjQwYzBmZmYsCi0gIDB4MDAxMDY4NDAsCi0gIDB4MjVmODAzMDAsCi0gIDB4MDMwZDcwMjEsCi0gIDB4YTVjYzAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDgsCi0gIDB4MTQyMGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjgwMDAsCi0gIDB4MzQxOTljNDAsCi0gIDB4YWM1OTAzMjAsCi0gIDB4OGY4NDgwMDAsCi0gIDB4M2MwMzAwZmYsCi0gIDB4MzQ2M2ZmZmYsCi0gIDB4YWM4MzAzMjQsCi0gIDB4OGY4NjgwMDAsCi0gIDB4MjQwNTAyZmYsCi0gIDB4YTRjNTAyMDIsCi0gIDB4M2MwOGEwYzAsCi0gIDB4MzUwODAxODAsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWQ1YjgsCi0gIDB4MjUwYTAwMjgsCi0gIDB4OGQwYjAwMDAsCi0gIDB4OGQwYzAwMDQsCi0gIDB4YWQyYjAwMDAsCi0gIDB4YWQyYzAwMDQsCi0gIDB4MjUwODAwMDgsCi0gIDB4MTUwYWZmZmEsCi0gIDB4MjUyOTAwMDgsCi0gIDB4NDAwMjYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMjgsCi0gIDB4MjQwMzAwMjIsCi0gIDB4M2MwNGEwZTAsCi0gIDB4MzQ4NDAwMTQsCi0gIDB4YWM4MzAwMDAsCi0gIDB4OGZhNTAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzRhNjEwMDEsCi0gIDB4MDBjMDEwMjEsCi0gIDB4YWZhNjAwMjgsCi0gIDB4M2MwN2ZmYmYsCi0gIDB4MzRlN2ZmZmYsCi0gIDB4MDBjNzM4MjQsCi0gIDB4MDBlMDEwMjEsCi0gIDB4YWZhNzAwMjgsCi0gIDB4NDA4NzYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwODAwMDIsCi0gIDB4MzUwOGQ4OTAsCi0gIDB4M2MwOWZmZmUsCi0gIDB4MzUyOTAxMzAsCi0gIDB4YWQyODAwMDAsCi0gIDB4OGZhYTAwMjgsCi0gIDB4M2MwYmYwMDAsCi0gIDB4MDE0YjU4MjUsCi0gIDB4MDE2MDEwMjEsCi0gIDB4YWZhYjAwMjgsCi0gIDB4MDE2MDYwMjEsCi0gIDB4NDA4YzYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4MDAxMDcwODAsCi0gIDB4MDIyZTc4MjEsCi0gIDB4YWRlMDAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTA0MDAsCi0gIDB4MTQyMGZmZmEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQxODAwMDEsCi0gIDB4M2MxOWEwZTgsCi0gIDB4YWYzODAwMDAsCi0gIDB4MjQwMjAwMTEsCi0gIDB4M2MwM2EwZjAsCi0gIDB4MzQ2MzAwMTcsCi0gIDB4YTA2MjAwMDAsCi0gIDB4M2MwNGYwZWIsCi0gIDB4MzQ4NDAwNzAsCi0gIDB4M2MwNWZmZjAsCi0gIDB4MzRhNTRhMDAsCi0gIDB4YWNhNDAwMDAsCi0gIDB4M2MwNmZjZWIsCi0gIDB4MzRjNjAwNzAsCi0gIDB4YWNhNjAwMDAsCi0gIDB4M2MwN2ZmZjAsCi0gIDB4MzRlNzQ3MDAsCi0gIDB4YWNlMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MwOGZmZjAsCi0gIDB4MzUwODBmYzAsCi0gIDB4M2MwOWZmZjAsCi0gIDB4MzUyOTQ1MDAsCi0gIDB4YWQyODAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDQsCi0gIDB4MTQyMGZmZjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MwYWRlYWQsCi0gIDB4MDAxMDU5ODAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyYTAwM2MsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMzAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMzgsCi0gIDB4MjQwZGZmZmYsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyZDAwMTQsCi0gIDB4MDAxMDcxMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQyZTAwMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQyMDAwMDQsCi0gIDB4MjQxODAwMjAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQzODAwMDgsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMTAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTA0MDAsCi0gIDB4MTQyMGZmZTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4MDAxMDE4YzAsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWUwMDAsCi0gIDB4MDBhMzIwMjEsCi0gIDB4YWM4MDAwMDAsCi0gIDB4M2MwN2EwZDEsCi0gIDB4MjRlN2UwMDAsCi0gIDB4MjRlODAwMDQsCi0gIDB4MDEwMzMwMjEsCi0gIDB4YWNjMDAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDksCi0gIDB4MTQyMGZmZjMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwOTAzODAsCi0gIDB4M2MwYWZmZjAsCi0gIDB4MzU0YTRkMDAsCi0gIDB4YWQ0OTAwMDAsCi0gIDB4M2MwY2EwODAsCi0gIDB4MzU4YzAwOWMsCi0gIDB4YWQ4MDAwMDAsCi0gIDB4M2MwZGEwODAsCi0gIDB4MzVhZDAwYTAsCi0gIDB4YWRhMDAwMDAsCi0gIDB4M2MwZTExMDAsCi0gIDB4M2MwZmEwODAsCi0gIDB4MzVlZjAwYTgsCi0gIDB4YWRlZTAwMDAsCi0gIDB4NDEwMTAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NDEwMGZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxOGEwODAsCi0gIDB4MzcxODAwZTAsCi0gIDB4OGYxOTAwMDAsCi0gIDB4M2MwMWEwZDEsCi0gIDB4YWMzOWQ2YzgsCi0gIDB4MGMzNDNkNDMsCi0gIDB4MDMyMDIwMjEsCi0gIDB4OGZiMDAwMTQsCi0gIDB4OGZiZjAwMWMsCi0gIDB4OGZiMTAwMTgsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MjdiZDAwMzAsCi0gIDB4MDA4MGI4MjEsCi0gIDB4M2MxY2ZmZjAsCi0gIDB4YTM4MDBjODQsCi0gIDB4YTM4MDBjODgsCi0gIDB4OGY5MDQ0MDAsCi0gIDB4MDAwMDIwMjEsCi0gIDB4YWY4MDBjYmMsCi0gIDB4MjQwMjAwYTgsCi0gIDB4Mjc4MzBmMDAsCi0gIDB4MmM1ZDAwNDAsCi0gIDB4MTdhMDAwMGMsCi0gIDB4M2MxZGZmYjAsCi0gIDB4MDNhM2U4MjYsCi0gIDB4YWZiNzQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQ0MmZmYzAsCi0gIDB4MjQ2MzAwNDAsCi0gIDB4MTAwMGZmZjMsCi0gIDB4MjZmNzAwNDAsCi0gIDB4MTA0MDAwMGQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMmVlMDAsCi0gIDB4M2MwMTAwNDAsCi0gIDB4MDNhMWU4MjUsCi0gIDB4M2MwMWZmZjAsCi0gIDB4MDNhMWU4MjYsCi0gIDB4MDNhM2U4MjYsCi0gIDB4YWZiNzQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwNWEwODAsCi0gIDB4OGY4MjBmMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZDQsCi0gIDB4YWY4MjBmZDAsCi0gIDB4YWNhMjAwYzQsCi0gIDB4OGY4MjBmMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMjFkODIsCi0gIDB4YWY4MzBmYzAsCi0gIDB4MDAwMzFkODAsCi0gIDB4MDA0MzEwMjMsCi0gIDB4M2MwMWEwODAsCi0gIDB4MDA0MTEwMjUsCi0gIDB4YWY4MjBmYzQsCi0gIDB4YWY4MjBmMTAsCi0gIDB4OGY4MjBmMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA0MzEwMjMsCi0gIDB4M2MwMWEwODAsCi0gIDB4MDA0MTEwMjUsCi0gIDB4YWY4MjBmMTQsCi0gIDB4MjQwMzAwMDMsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MjRiZTAwYzgsCi0gIDB4Mjc4MTBkMDAsCi0gIDB4OGZhMjAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMTAsCi0gIDB4YWZjMjAwMDAsCi0gIDB4YWZhMTAwMDgsCi0gIDB4YWZhMTAwMGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMWMsCi0gIDB4MjdiZDAwMjQsCi0gIDB4MjdkZTAwMDQsCi0gIDB4MjQyMTAwNDAsCi0gIDB4MTQ2MGZmZjMsCi0gIDB4MjQ2M2ZmZmYsCi0gIDB4OGY4MjBmMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmYzgsCi0gIDB4YWNhMjAwYzAsCi0gIDB4Mjc4MjA4MDAsCi0gIDB4MjQwMzAwMGYsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4MTQ2MGZmZmQsCi0gIDB4MjQ2M2ZmZmYsCi0gIDB4OGY4MzBmYzAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MzRkMDAsCi0gIDB4OGY4MzRkMDAsCi0gIDB4OGY4MzBmMTQsCi0gIDB4OGY4MjBmMTAsCi0gIDB4MjQ2M2ZmZmMsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MTQ0M2ZmZmUsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4MjQwMjAzODAsCi0gIDB4YWY4MjRkMDAsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MjdhMTAwOTAsCi0gIDB4OGZhMjAwMTQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MmM3ZjAwNDAsCi0gIDB4MTdlMDAwMDksCi0gIDB4M2MxZjAwNDAsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MDNhMGYwMjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MjQ0MjAwNDAsCi0gIDB4MTAwMGZmZjYsCi0gIDB4MjQ2M2ZmYzAsCi0gIDB4MTA2MDAwMDYsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MDAwMzFlMDAsCi0gIDB4MDNlM2Y4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MjdiZDAwMjQsCi0gIDB4MTdhMWZmZTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDM4MjEsCi0gIDB4OGZjMjAwMTQsCi0gIDB4OGZjMzAwMTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MmM3ZjAwNDAsCi0gIDB4MTNlMDAwMDQsCi0gIDB4M2MxZjAwNDAsCi0gIDB4MDAwMzBlMDAsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MDNlMWY4MjUsCi0gIDB4MjQwMzAwNDAsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MjQxZTAzZTcsCi0gIDB4MDAwMDA4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MDAyMzA4MjEsCi0gIDB4NDkwMGZmZmIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODc4MDQwMDIsCi0gIDB4MTdjMGZmZjgsCi0gIDB4MjdkZWZmZmYsCi0gIDB4MTRlMDAwMDQsCi0gIDB4MzRlNzQwMDAsCi0gIDB4MDNlN2Y4MjUsCi0gIDB4MTAwMGZmZjAsCi0gIDB4YWY4MTBjNjAsCi0gIDB4YWY4MTBjNWMsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ2YzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMWEwODAsCi0gIDB4YWMyMjAwZTAsCi0gIDB4M2MwMWEwODAsCi0gIDB4OGMyMDAwZTAsCi0gIDB4YWY4MDBmYjQsCi0gIDB4YTc4MDBmYjgsCi0gIDB4YTc4MDBmYmEsCi0gIDB4YTc4MDBmYmMsCi0gIDB4YTc4MDBmYmUsCi0gIDB4Mjc4MjBjYzAsCi0gIDB4YWY4MjBmZGMsCi0gIDB4YWY4MjBmZDgsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmRhY2MsCi0gIDB4YWY4MjBjNGMsCi0gIDB4YWY4MjBjNTAsCi0gIDB4MjQ0MjA0MDAsCi0gIDB4YWY4MjBjNTQsCi0gIDB4MjQwMjAwMWUsCi0gIDB4M2MwM2ZmZjAsCi0gIDB4MjQ3ZDAwNDAsCi0gIDB4YWM3ZDAwMDgsCi0gIDB4MDNhMDE4MjEsCi0gIDB4MTQ0MGZmZmMsCi0gIDB4MjQ0MmZmZmYsCi0gIDB4M2MxZGZmZjAsCi0gIDB4YWM3ZDAwMDgsCi0gIDB4M2MwMmM3MDQsCi0gIDB4MzQ0MmRkN2IsCi0gIDB4YWY4MjBjNTgsCi0gIDB4M2MwNzAwMDAsCi0gIDB4MjRlNzAxNTgsCi0gIDB4MDgzNDNmYTksCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGU2MjAwMzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQ0MDAwMDUsCi0gIDB4OGY4MzBjOTQsCi0gIDB4MTJhMDAwMjIsCi0gIDB4MjQ2MzAwMDEsCi0gIDB4MTAwMDAwMjAsCi0gIDB4YWY4MzBjOTQsCi0gIDB4YWY4MjBmYjQsCi0gIDB4MzI2MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4ODY2MzAwMmEsCi0gIDB4YTc4MjBmYjgsCi0gIDB4M2MwMmEwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4YTc4MzBmYmEsCi0gIDB4ODY3ZTAwMDgsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGZhMjAwMWMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzRjMDAsCi0gIDB4YWM2MjBmYjQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGZhMjAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU2MDAwM2MsCi0gIDB4M2MwZGEwZDEsCi0gIDB4MjVhZGQ1MDAsCi0gIDB4MTFhMDAwMjEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGRhOTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTEyMDAwMWQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGRhYTAwMDQsCi0gIDB4OGRhYjAwMDgsCi0gIDB4OGRhYzAwMGMsCi0gIDB4MDAwOTQ3NDAsCi0gIDB4MDUwMTAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGQ2MzgsCi0gIDB4MDE0ODUwMjEsCi0gIDB4MDAwOTQ3ODAsCi0gIDB4MDUwMTAwMDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTE4MDAwMGQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWQ0MDAwMDAsCi0gIDB4MjU0YTAwMDQsCi0gIDB4MTAwMGZmZmIsCi0gIDB4MjU4Y2ZmZmMsCi0gIDB4MTE4MDAwMDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGQ2ZTAwMDAsCi0gIDB4MjU2YjAwMDQsCi0gIDB4YWQ0ZTAwMDAsCi0gIDB4MjU0YTAwMDQsCi0gIDB4MTAwMGZmZjksCi0gIDB4MjU4Y2ZmZmMsCi0gIDB4MTAwMGZmZTEsCi0gIDB4MjVhZDAwMTAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMjEwNDAsCi0gIDB4YWM1NzRmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBmZmMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzA0MjAwMWYsCi0gIDB4MDAwMjEwODAsCi0gIDB4M2MxN2EwZDEsCi0gIDB4MDJlMmI4MjEsCi0gIDB4MjZmN2Q2NDgsCi0gIDB4OGVmNzAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDJlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwMmZmZmYsCi0gIDB4YWY4MjBmZmMsCi0gIDB4OGY5NzBmYzgsCi0gIDB4M2MwMjEwNDAsCi0gIDB4YWM1NzBmZjAsCi0gIDB4OGY4MjBmMDQsCi0gIDB4MjZmNzAwMTAsCi0gIDB4MTZlMjAwMDQsCi0gIDB4YWY5NzBmYzgsCi0gIDB4OGY5NzBmMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY5NzBmYzgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxZmEwZDEsCi0gIDB4MjdmZmYwMmMsCi0gIDB4MTAwMGZmZWQsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4YWVlMDAwM2MsCi0gIDB4MjQwMmZmZmYsCi0gIDB4YWVlMjAwMzAsCi0gIDB4YWVlMjAwMTQsCi0gIDB4OTc4MzBmZjQsCi0gIDB4OTc4MjBmZjgsCi0gIDB4M2MxZDAwMDAsCi0gIDB4MjdiZDA2OTgsCi0gIDB4YTZlMzAwMDgsCi0gIDB4YTZlMjAwMDIsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDNhMGY4MDksCi0gIDB4YTZlMjAwMmMsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTAwMGZmZDksCi0gIDB4YWVlMjAwMGMsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4OTc4MjBmZjQsCi0gIDB4M2MwMzAwMDAsCi0gIDB4MjQ2MzA2OTgsCi0gIDB4YTZlMjAwMDIsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDA2MGY4MDksCi0gIDB4YTZlMjAwMmMsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTAwMGZmY2EsCi0gIDB4YWVlMjAwMGMsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4OTc4MjBmZjQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTZlMzAwMDgsCi0gIDB4YTZlMjAwMDgsCi0gIDB4MDA0MzEwMjYsCi0gIDB4MzA0MjAwNjAsCi0gIDB4MTA0MGZmYmQsCi0gIDB4OGVlMjAwM2MsCi0gIDB4YWVlMDAwM2MsCi0gIDB4MTA0MGZmYmEsCi0gIDB4M2MwMjg4MDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGVlMjAwMzgsCi0gIDB4YWVlMDAwMzgsCi0gIDB4MzA2MzAwNjAsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MDNhM2U4MjEsCi0gIDB4MDAwMzE4YzIsCi0gIDB4MDNhM2U4MjEsCi0gIDB4OGZhMzAwMWMsCi0gIDB4MTA0MGZmYWYsCi0gIDB4YWY4MjBmYjQsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGZhMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGZhMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmYTIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4YTc5NzBmYjgsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MzJmN2ZmYzAsCi0gIDB4MDJlMmI4MjEsCi0gIDB4YWVlMDAwMzAsCi0gIDB4M2MwMmRlYWQsCi0gIDB4OGVlMzAwM2MsCi0gIDB4YWVlMjAwM2MsCi0gIDB4OGVlMjAwMzgsCi0gIDB4MTA2MGZmOTUsCi0gIDB4YWVlMDAwMzgsCi0gIDB4M2MwMzg4MDAsCi0gIDB4YWY4MzBmYmMsCi0gIDB4ODZlMzAwMDgsCi0gIDB4Mjc5NzBmMTgsCi0gIDB4MzA2MzAwNjAsCi0gIDB4MDJlM2I4MjEsCi0gIDB4MDAwMzE4YzIsCi0gIDB4MDJlM2I4MjEsCi0gIDB4OGVlMzAwMWMsCi0gIDB4MTA0MGZmOGEsCi0gIDB4YWY4MjBmYjQsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGVlMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGVlMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVlMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmN2QsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTA0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNzYsCi0gIDB4YTA0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTQ0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNmYsCi0gIDB4YTQ0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OGM0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNjgsCi0gIDB4YWM0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTA0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNjEsCi0gIDB4YTA0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTQ0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNWEsCi0gIDB4YTQ0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OGM0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNTMsCi0gIDB4YWM0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNGYsCi0gIDB4YTA1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNGIsCi0gIDB4YTQ1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNDcsCi0gIDB4YWM1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGM0MjAwMDAsCi0gIDB4MTAwMGZmNDIsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMWEwYzIsCi0gIDB4OGMyMmMwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4M2MwMWEwYzIsCi0gIDB4OGMyMmMwMDQsCi0gIDB4MTAwMGZmM2EsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ1YWMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ1YjAsCi0gIDB4MTAwMGZmMzIsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMmEwZjAsCi0gIDB4YWM0MDAwMDAsCi0gIDB4OTA1NzAxNTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODAsCi0gIDB4OTA1NzAxNTcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODEsCi0gIDB4OTA1NzAxNWIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODcsCi0gIDB4OTA1NzAxNWYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODYsCi0gIDB4OTA1NzAxNjMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMDcsCi0gIDB4YTM5NzBjODUsCi0gIDB4OTA1NzAxOTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjOGIsCi0gIDB4OTA1NzAxOTcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjOGEsCi0gIDB4OTA1NzAxOWIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMDcsCi0gIDB4YTM5NzBjODksCi0gIDB4OTA1NzAwMGIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwZTAsCi0gIDB4MDAxNzA5NDIsCi0gIDB4OTA1NzAwNDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwNzgsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAwNjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMGYsCi0gIDB4MDAxN2I5YzAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAwYzcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMmYsCi0gIDB4MDAxN2JhYzAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAxNDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMWUsCi0gIDB4MDAxN2JjMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAxODMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwNjAsCi0gIDB4MDAxN2JjMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4YWY4MTBjOGMsCi0gIDB4M2MwMjE4NDAsCi0gIDB4OGY5NzBmYzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzBmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWM1NzBjODAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmY5OTgsCi0gIDB4YWY4MDBjOTAsCi0gIDB4YWY4MDBjOTQsCi0gIDB4MDA0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODc5NzBmZjAsCi0gIDB4M2MxMzAwZDEsCi0gIDB4YTY3NzAwMDgsCi0gIDB4M2MwMzAwMDAsCi0gIDB4MjQ2MzA1MjAsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDA2MGY4MDksCi0gIDB4MjQwMjAwMDEsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTA0MGZlZGEsCi0gIDB4OTc5NzBmZjAsCi0gIDB4Mjc4MzBmMTgsCi0gIDB4MDA3NzE4MjEsCi0gIDB4MDAxN2I4YzIsCi0gIDB4MDJlM2I4MjEsCi0gIDB4M2MwMjg4MDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGU2MjAwMzgsCi0gIDB4YTc4MDBmYjgsCi0gIDB4YWY4MjBmYjQsCi0gIDB4OGVlMzAwMWMsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGVlMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDQsCi0gIDB4YWVlMzAwMWMsCi0gIDB4OGVlMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVlMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmZGYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNWMsCi0gIDB4OGY4MzBjNjAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4MTAwMGZlYmUsCi0gIDB4YWY4MzBmZjQsCi0gIDB4MjM4OTA4MDAsCi0gIDB4MDEyMDE4MjEsCi0gIDB4MjQwMjAwMGYsCi0gIDB4MjA2YzAwNDAsCi0gIDB4YWM2YzAwMDgsCi0gIDB4MDE4MDE4MjEsCi0gIDB4MTQ0MGZmZmMsCi0gIDB4MjA0MmZmZmYsCi0gIDB4YWM2OTAwMDgsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4YTU2MDAwMDAsCi0gIDB4MjQwM2ZmZmYsCi0gIDB4YWQ2MzAwMTQsCi0gIDB4MzQwMjAwMDEsCi0gIDB4MzQ0MjAwMjAsCi0gIDB4YTU2MjAwMDgsCi0gIDB4Mjc4YTBlMDAsCi0gIDB4MDE0MDEwMjEsCi0gIDB4MDAwMDE4MjEsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MjQ2MzAwMDQsCi0gIDB4MmM2YzAxMDAsCi0gIDB4MTU4MGZmZmMsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmUwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4M2MxODAwZDEsCi0gIDB4MDEyMDYwMjEsCi0gIDB4MDAwMDY4MjEsCi0gIDB4MDAwMDc4MjEsCi0gIDB4MDAwMDU4MjEsCi0gIDB4MDAwMDQwMjEsCi0gIDB4NDAwMjYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzQ0MjQwMDEsCi0gIDB4NDA4MjYwMDAsCi0gIDB4M2MwMjAwMDAsCi0gIDB4MjQ0MjA2ZjgsCi0gIDB4MDA0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5yZWdpb25zIGIvZHJpdmVycy9hdG0vYXRtc2FyMTEucmVnaW9ucwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDIyNTJiNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5yZWdpb25zCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0vKgotICBTZWUgY29weXJpZ2h0IGFuZCBsaWNlbnNpbmcgY29uZGl0aW9ucyBpbiBhbWJhc3NhZG9yLiogZmlsZXMuCi0qLwotICB7IDB4MDAwMDAwODAsICA5OTMsIH0sCi0gIHsgMHhhMGQwZDUwMCwgICA4MCwgfSwKLSAgeyAweGEwZDBmMDAwLCAgOTc4LCB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuc3RhcnQgYi9kcml2ZXJzL2F0bS9hdG1zYXIxMS5zdGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJhNTVlNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5zdGFydAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLyoKLSAgU2VlIGNvcHlyaWdodCBhbmQgbGljZW5zaW5nIGNvbmRpdGlvbnMgaW4gYW1iYXNzYWRvci4qIGZpbGVzLgotKi8KLSAgMHhhMGQwZjAwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vZW5pLmggYi9kcml2ZXJzL2F0bS9lbmkuaAppbmRleCBkMDRmZWZiLi5lNGM5NTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9lbmkuaAorKysgYi9kcml2ZXJzL2F0bS9lbmkuaApAQCAtMTgsNyArMTgsNiBAQAogI2luY2x1ZGUgIm1pZHdheS5oIgogCiAKLSNkZWZpbmUgS0VSTkVMX09GRlNFVAkweEMwMDAwMDAwCS8qIGtlcm5lbCAweDAgaXMgYXQgcGh5cyAweEMwMDAwMDAwICovCiAjZGVmaW5lIERFVl9MQUJFTAkiZW5pIgogCiAjZGVmaW5lIFVCUl9CVUZGRVIJKDEyOCoxMDI0KQkvKiBVQlIgYnVmZmVyIHNpemUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2hlLmMgYi9kcml2ZXJzL2F0bS9oZS5jCmluZGV4IGZmYzRhNWEuLmVhNDk1YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRtL2hlLmMKKysrIGIvZHJpdmVycy9hdG0vaGUuYwpAQCAtMTU0Miw3ICsxNTQyLDggQEAKIAkvKiBpbml0aWFsaXplIGZyYW1lciAqLwogCiAjaWZkZWYgQ09ORklHX0FUTV9IRV9VU0VfU1VOSQotCXN1bmlfaW5pdChoZV9kZXYtPmF0bV9kZXYpOworCWlmIChoZV9pc01NKGhlX2RldikpCisJCXN1bmlfaW5pdChoZV9kZXYtPmF0bV9kZXYpOwogCWlmIChoZV9kZXYtPmF0bV9kZXYtPnBoeSAmJiBoZV9kZXYtPmF0bV9kZXYtPnBoeS0+c3RhcnQpCiAJCWhlX2Rldi0+YXRtX2Rldi0+cGh5LT5zdGFydChoZV9kZXYtPmF0bV9kZXYpOwogI2VuZGlmIC8qIENPTkZJR19BVE1fSEVfVVNFX1NVTkkgKi8KQEAgLTE1NTQsNiArMTU1NSw3IEBACiAJCXZhbCA9IGhlX3BoeV9nZXQoaGVfZGV2LT5hdG1fZGV2LCBTVU5JX1RQT1BfQVBNKTsKIAkJdmFsID0gKHZhbCAmIH5TVU5JX1RQT1BfQVBNX1MpIHwgKFNVTklfVFBPUF9TX1NESCA8PCBTVU5JX1RQT1BfQVBNX1NfU0hJRlQpOwogCQloZV9waHlfcHV0KGhlX2Rldi0+YXRtX2RldiwgdmFsLCBTVU5JX1RQT1BfQVBNKTsKKwkJaGVfcGh5X3B1dChoZV9kZXYtPmF0bV9kZXYsIFNVTklfVEFDUF9JVUNIUF9DTFAsIFNVTklfVEFDUF9JVUNIUCk7CiAJfQogCiAJLyogNS4xLjEyIGVuYWJsZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSAqLwpAQCAtMjg0NCwxMCArMjg0NiwxNSBAQAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZyZWcsIGFyZywKIAkJCQkJICAgc2l6ZW9mKHN0cnVjdCBoZV9pb2N0bF9yZWcpKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCQorCiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaGVfZGV2LT5nbG9iYWxfbG9jaywgZmxhZ3MpOwogCQkJc3dpdGNoIChyZWcudHlwZSkgewogCQkJCWNhc2UgSEVfUkVHVFlQRV9QQ0k6CisJCQkJCWlmIChyZWcuYWRkciA8IDAgfHwgcmVnLmFkZHIgPj0gSEVfUkVHTUFQX1NJWkUpIHsKKwkJCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCiAJCQkJCXJlZy52YWwgPSBoZV9yZWFkbChoZV9kZXYsIHJlZy5hZGRyKTsKIAkJCQkJYnJlYWs7CiAJCQkJY2FzZSBIRV9SRUdUWVBFX1JDTToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2hlLmggYi9kcml2ZXJzL2F0bS9oZS5oCmluZGV4IGZlNmNkMTVhLi5iODdkNmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9oZS5oCisrKyBiL2RyaXZlcnMvYXRtL2hlLmgKQEAgLTI2NywxMyArMjY3LDcgQEAKIAogCWNoYXIgcHJvZF9pZFszMF07CiAJY2hhciBtYWNfYWRkcls2XTsKLQlpbnQgbWVkaWE7CQkJLyogIAotCQkJCQkgKiAgMHgyNiA9IEhFMTU1IE1NIAotCQkJCQkgKiAgMHgyNyA9IEhFNjIyIE1NIAotCQkJCQkgKiAgMHg0NiA9IEhFMTU1IFNNIAotCQkJCQkgKiAgMHg0NyA9IEhFNjIyIFNNIAotCQkJCQkgKi8KLQorCWludCBtZWRpYTsKIAogCXVuc2lnbmVkIGludCB2Y2liaXRzLCB2cGliaXRzOwogCXVuc2lnbmVkIGludCBjZWxsc19wZXJfcm93OwpAQCAtMzkyLDYgKzM4Niw3IEBACiAjZGVmaW5lIEhFX0RFVihkZXYpICgoc3RydWN0IGhlX2RldiAqKSAoZGV2KS0+ZGV2X2RhdGEpCiAKICNkZWZpbmUgaGVfaXM2MjIoZGV2KQkoKGRldiktPm1lZGlhICYgMHgxKQorI2RlZmluZSBoZV9pc01NKGRldikJKChkZXYpLT5tZWRpYSAmIDB4MjApCiAKICNkZWZpbmUgSEVfUkVHTUFQX1NJWkUJMHgxMDAwMDAKIApAQCAtODc2LDggKzg3MSw4IEBACiAjZGVmaW5lIE1fU04JCTB4M2EJLyogaW50ZWdlciAqLwogI2RlZmluZSBNRURJQQkJMHgzZQkvKiBpbnRlZ2VyICovCiAjZGVmaW5lICBIRTE1NU1NCTB4MjYKLSNkZWZpbmUgIEhFMTU1U00JMHgyNwotI2RlZmluZSAgSEU2MjJNTQkweDQ2CisjZGVmaW5lICBIRTYyMk1NCTB4MjcKKyNkZWZpbmUgIEhFMTU1U00JMHg0NgogI2RlZmluZSAgSEU2MjJTTQkweDQ3CiAjZGVmaW5lIE1BQ19BRERSCTB4NDIJLyogY2hhcltdICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2lwaGFzZS5jIGIvZHJpdmVycy9hdG0vaXBoYXNlLmMKaW5kZXggNWMyOGNhNy4uMTM5ZmNlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vaXBoYXNlLmMKKysrIGIvZHJpdmVycy9hdG0vaXBoYXNlLmMKQEAgLTI1NjIsMTcgKzI1NjIsMTEgQEAKIAkJZXJyb3IgPSBzdW5pX2luaXQoZGV2KTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBlcnJfZnJlZV9yeDsKLQkJLyogCi0JCSAqIEVuYWJsZSBpbnRlcnJ1cHQgb24gbG9zcyBvZiBzaWduYWwKLQkJICogU1VOSV9SU09QX0NJRSAtIDB4MTAKLQkJICogU1VOSV9SU09QX0NJRV9MT1NFIC0gMHgwNAotCQkgKi8KLQkJaWFfcGh5X3B1dChkZXYsIGlhX3BoeV9nZXQoZGV2LCAweDEwKSB8IDB4MDQsIDB4MTApOwotI2lmbmRlZiBNT0RVTEUKLQkJZXJyb3IgPSBkZXYtPnBoeS0+c3RhcnQoZGV2KTsKLQkJaWYgKGVycm9yKQotCQkJZ290byBlcnJfZnJlZV9yeDsKLSNlbmRpZgorCQlpZiAoZGV2LT5waHktPnN0YXJ0KSB7CisJCQllcnJvciA9IGRldi0+cGh5LT5zdGFydChkZXYpOworCQkJaWYgKGVycm9yKQorCQkJCWdvdG8gZXJyX2ZyZWVfcng7CisJCX0KIAkJLyogR2V0IGlhZGV2LT5jYXJyaWVyX2RldGVjdCBzdGF0dXMgKi8KIAkJSWFGcm9udEVuZEludHIoaWFkZXYpOwogCX0KQEAgLTMxOTgsNiArMzE5Miw4IEBACiAJSUZfSU5JVChwcmludGsoImRldl9pZCA9IDB4JXggaWFkZXYtPkxpbmVSYXRlID0gJWQgXG4iLCAodTMyKWRldiwKIAkJaWFkZXYtPkxpbmVSYXRlKTspCiAKKwlwY2lfc2V0X2RydmRhdGEocGRldiwgZGV2KTsKKwogCWlhX2RldltpYWRldl9jb3VudF0gPSBpYWRldjsKIAlfaWFfZGV2W2lhZGV2X2NvdW50XSA9IGRldjsKIAlpYWRldl9jb3VudCsrOwpAQCAtMzIxOSw4ICszMjE1LDYgQEAKIAlpYWRldi0+bmV4dF9ib2FyZCA9IGlhX2JvYXJkczsgIAogCWlhX2JvYXJkcyA9IGRldjsgIAogCi0JcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7Ci0KIAlyZXR1cm4gMDsKIAogZXJyX291dF9kZXJlZ2lzdGVyX2RldjoKQEAgLTMyMzgsOSArMzIzMiwxNCBAQAogCXN0cnVjdCBhdG1fZGV2ICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAJSUFERVYgKmlhZGV2ID0gSU5QSF9JQV9ERVYoZGV2KTsKIAotCWlhX3BoeV9wdXQoZGV2LCBpYV9waHlfZ2V0KGRldiwweDEwKSAmIH4oMHg0KSwgMHgxMCk7IAorCS8qIERpc2FibGUgcGh5IGludGVycnVwdHMgKi8KKwlpYV9waHlfcHV0KGRldiwgaWFfcGh5X2dldChkZXYsIFNVTklfUlNPUF9DSUUpICYgfihTVU5JX1JTT1BfQ0lFX0xPU0UpLAorCQkJCSAgIFNVTklfUlNPUF9DSUUpOwogCXVkZWxheSgxKTsKIAorCWlmIChkZXYtPnBoeSAmJiBkZXYtPnBoeS0+c3RvcCkKKwkJZGV2LT5waHktPnN0b3AoZGV2KTsKKwogCS8qIERlLXJlZ2lzdGVyIGRldmljZSAqLyAgCiAgICAgICAJZnJlZV9pcnEoaWFkZXYtPmlycSwgZGV2KTsKIAlpYWRldl9jb3VudC0tOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdXhkaXNwbGF5L0tjb25maWcgYi9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZwppbmRleCAwNDMzNTNiLi4xNGI5ZDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZworKysgYi9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZwpAQCAtNjQsNyArNjQsNyBAQAogCSAgQW1vdW50IG9mIHRpbWUgdGhlIGtzMDEwOCBzaG91bGQgd2FpdCBiZXR3ZWVuIGVhY2ggY29udHJvbCB3cml0ZQogCSAgdG8gdGhlIHBhcmFsbGVsIHBvcnQuCiAKLQkgIElmIHlvdXIgZHJpdmVyIHNlZW1zIHRvIG1pc3MgcmFuZG9tIHdyaXRpbmdzLCBpbmNyZW1lbnQgdGhpcy4KKwkgIElmIHlvdXIgTENEIHNlZW1zIHRvIG1pc3MgcmFuZG9tIHdyaXRpbmdzLCBpbmNyZW1lbnQgdGhpcy4KIAogCSAgSWYgeW91IGRvbid0IGtub3cgd2hhdCBJJ20gdGFsa2luZyBhYm91dCwgaWdub3JlIGl0LgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi5jIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGIuYwppbmRleCA4MGJiMDYxLi42ODM1MDlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi5jCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiLmMKQEAgLTUsNyArNSw3IEBACiAgKiAgICAgTGljZW5zZTogR1BMdjIKICAqICAgICBEZXBlbmRzOiBrczAxMDgKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0zMQogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMzk4LDUgKzM5OCw1IEBACiBtb2R1bGVfZXhpdChjZmFnMTI4NjRiX2V4aXQpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci1NT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPiIpOworTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtaWd1ZWwub2plZGEuc2FuZG9uaXNAZ21haWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJjZmFnMTI4NjRiIExDRCBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiZmIuYyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiZmIuYwppbmRleCAzMDdjMTkwLi5mZTNhODY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0YmZiLmMKKysrIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGJmYi5jCkBAIC01LDcgKzUsNyBAQAogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKiAgICAgRGVwZW5kczogY2ZhZzEyODY0YgogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0xODYsNSArMTg2LDUgQEAKIG1vZHVsZV9leGl0KGNmYWcxMjg2NGJmYl9leGl0KTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiY2ZhZzEyODY0YiBMQ0QgZnJhbWVidWZmZXIgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMgYi9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMKaW5kZXggZTZjMzY0Ni4uNWI5Mzg1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdXhkaXNwbGF5L2tzMDEwOC5jCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9rczAxMDguYwpAQCAtNSw3ICs1LDcgQEAKICAqICAgICBMaWNlbnNlOiBHUEx2MgogICogICAgIERlcGVuZHM6IHBhcnBvcnQKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0zMQogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTczLDYgKzE3Myw2IEBACiBtb2R1bGVfZXhpdChrczAxMDhfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKLU1PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+Iik7CitNT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oImtzMDEwOCBMQ0QgQ29udHJvbGxlciBkcml2ZXIiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL0tjb25maWcgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwppbmRleCBkN2RhMTA5Li5kNDc0ODJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwpAQCAtMzQsNiArMzQsNzAgQEAKIAkgIHJlcXVpcmUgdXNlcnNwYWNlIGZpcm13YXJlIGxvYWRpbmcgc3VwcG9ydCwgYnV0IGEgbW9kdWxlIGJ1aWx0IG91dHNpZGUKIAkgIHRoZSBrZXJuZWwgdHJlZSBkb2VzLgogCitjb25maWcgRklSTVdBUkVfSU5fS0VSTkVMCisJYm9vbCAiSW5jbHVkZSBpbi1rZXJuZWwgZmlybXdhcmUgYmxvYnMgaW4ga2VybmVsIGJpbmFyeSIKKwlkZXBlbmRzIG9uIEZXX0xPQURFUgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFRoZSBrZXJuZWwgc291cmNlIHRyZWUgaW5jbHVkZXMgYSBudW1iZXIgb2YgZmlybXdhcmUgJ2Jsb2JzJworCSAgd2hpY2ggYXJlIHVzZWQgYnkgdmFyaW91cyBkcml2ZXJzLiBUaGUgcmVjb21tZW5kZWQgd2F5IHRvCisJICB1c2UgdGhlc2UgaXMgdG8gcnVuICJtYWtlIGZpcm13YXJlX2luc3RhbGwiIGFuZCB0byBjb3B5IHRoZQorCSAgcmVzdWx0aW5nIGJpbmFyeSBmaWxlcyBjcmVhdGVkIGluIHVzci9saWIvZmlybXdhcmUgZGlyZWN0b3J5CisJICBvZiB0aGUga2VybmVsIHRyZWUgdG8gdGhlIC9saWIvZmlybXdhcmUgb24geW91ciBzeXN0ZW0gc28KKwkgIHRoYXQgdGhleSBjYW4gYmUgbG9hZGVkIGJ5IHVzZXJzcGFjZSBoZWxwZXJzIG9uIHJlcXVlc3QuCisKKwkgIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgYnVpbGQgZWFjaCByZXF1aXJlZCBmaXJtd2FyZSBibG9iCisJICBpbnRvIHRoZSBrZXJuZWwgZGlyZWN0bHksIHdoZXJlIHJlcXVlc3RfZmlybXdhcmUoKSB3aWxsIGZpbmQKKwkgIHRoZW0gd2l0aG91dCBoYXZpbmcgdG8gY2FsbCBvdXQgdG8gdXNlcnNwYWNlLiBUaGlzIG1heSBiZQorCSAgdXNlZnVsIGlmIHlvdXIgcm9vdCBmaWxlIHN5c3RlbSByZXF1aXJlcyBhIGRldmljZSB3aGljaCB1c2VzCisJICBzdWNoIGZpcm13YXJlLCBhbmQgZG8gbm90IHdpc2ggdG8gdXNlIGFuIGluaXRyZC4KKworCSAgVGhpcyBzaW5nbGUgb3B0aW9uIGNvbnRyb2xzIHRoZSBpbmNsdXNpb24gb2YgZmlybXdhcmUgZm9yCisJICBldmVyeSBkcml2ZXIgd2hpY2ggdXNlZXMgcmVxdWVzdF9maXJtYXJlKCkgYW5kIHNoaXBzIGl0cworCSAgZmlybXdhcmUgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSwgdG8gYXZvaWQgYSBwcm9saWZlcmF0aW9uCisJICBvZiAnSW5jbHVkZSBmaXJtd2FyZSBmb3IgeHh4IGRldmljZScgb3B0aW9ucy4KKworCSAgU2F5ICdOJyBhbmQgbGV0IGZpcm13YXJlIGJlIGxvYWRlZCBmcm9tIHVzZXJzcGFjZS4KKworY29uZmlnIEVYVFJBX0ZJUk1XQVJFCisJc3RyaW5nICJFeHRlcm5hbCBmaXJtd2FyZSBibG9icyB0byBidWlsZCBpbnRvIHRoZSBrZXJuZWwgYmluYXJ5IgorCWRlcGVuZHMgb24gRldfTE9BREVSCisJaGVscAorCSAgVGhpcyBvcHRpb24gYWxsb3dzIGZpcm13YXJlIHRvIGJlIGJ1aWx0IGludG8gdGhlIGtlcm5lbCwgZm9yIHRoZQorCSAgY2FzZXMgd2hlcmUgdGhlIHVzZXIgZWl0aGVyIGNhbm5vdCBvciBkb2Vzbid0IHdhbnQgdG8gcHJvdmlkZSBpdCBmcm9tCisJICB1c2Vyc3BhY2UgYXQgcnVudGltZSAoZm9yIGV4YW1wbGUsIHdoZW4gdGhlIGZpcm13YXJlIGluIHF1ZXN0aW9uIGlzCisJICByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoZSBib290IGRldmljZSwgYW5kIHRoZSB1c2VyIGRvZXNuJ3Qgd2FudCB0bworCSAgdXNlIGFuIGluaXRyZCkuCisKKwkgIFRoaXMgb3B0aW9uIGlzIGEgc3RyaW5nLCBhbmQgdGFrZXMgdGhlIChzcGFjZS1zZXBhcmF0ZWQpIG5hbWVzIG9mIHRoZQorCSAgZmlybXdhcmUgZmlsZXMgLS0gdGhlIHNhbWUgbmFtZXMgd2hpY2ggYXBwZWFyIGluIE1PRFVMRV9GSVJNV0FSRSgpCisJICBhbmQgcmVxdWVzdF9maXJtd2FyZSgpIGluIHRoZSBzb3VyY2UuIFRoZXNlIGZpbGVzIHNob3VsZCBleGlzdCB1bmRlcgorCSAgdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgdGhlIEVYVFJBX0ZJUk1XQVJFX0RJUiBvcHRpb24sIHdoaWNoIGlzCisJICBieSBkZWZhdWx0IHRoZSBmaXJtd2FyZS8gc3ViZGlyZWN0b3J5IG9mIHRoZSBrZXJuZWwgc291cmNlIHRyZWUuCisKKwkgIFNvLCBmb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHNldCBDT05GSUdfRVhUUkFfRklSTVdBUkU9InVzYjgzODguYmluIiwKKwkgIGNvcHkgdGhlIHVzYjgzODguYmluIGZpbGUgaW50byB0aGUgZmlybXdhcmUvIGRpcmVjdG9yeSwgYW5kIGJ1aWxkIHRoZQorCSAga2VybmVsLiBUaGVuIGFueSByZXF1ZXN0X2Zpcm13YXJlKCJ1c2I4Mzg4LmJpbiIpIHdpbGwgYmUKKwkgIHNhdGlzZmllZCBpbnRlcm5hbGx5IHdpdGhvdXQgbmVlZGluZyB0byBjYWxsIG91dCB0byB1c2Vyc3BhY2UuCisKKwkgIFdBUk5JTkc6IElmIHlvdSBpbmNsdWRlIGFkZGl0aW9uYWwgZmlybXdhcmUgZmlsZXMgaW50byB5b3VyIGJpbmFyeQorCSAga2VybmVsIGltYWdlIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMLAorCSAgdGhlbiBpdCBtYXkgYmUgYSB2aW9sYXRpb24gb2YgdGhlIEdQTCB0byBkaXN0cmlidXRlIHRoZSByZXN1bHRpbmcKKwkgIGltYWdlIC0tIHNpbmNlIGl0IGNvbWJpbmVzIGJvdGggR1BMIGFuZCBub24tR1BMIHdvcmsuIFlvdSBzaG91bGQKKwkgIGNvbnN1bHQgYSBsYXd5ZXIgb2YgeW91ciBvd24gYmVmb3JlIGRpc3RyaWJ1dGluZyBzdWNoIGFuIGltYWdlLgorCitjb25maWcgRVhUUkFfRklSTVdBUkVfRElSCisJc3RyaW5nICJGaXJtd2FyZSBibG9icyByb290IGRpcmVjdG9yeSIKKwlkZXBlbmRzIG9uIEVYVFJBX0ZJUk1XQVJFICE9ICIiCisJZGVmYXVsdCAiZmlybXdhcmUiCisJaGVscAorCSAgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbQorCSAgbG9va3MgZm9yIHRoZSBmaXJtd2FyZSBmaWxlcyBsaXN0ZWQgaW4gdGhlIEVYVFJBX0ZJUk1XQVJFIG9wdGlvbi4KKwkgIFRoZSBkZWZhdWx0IGlzIHRoZSBmaXJtd2FyZS8gZGlyZWN0b3J5IGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWUsCisJICBidXQgYnkgY2hhbmdpbmcgdGhpcyBvcHRpb24geW91IGNhbiBwb2ludCBpdCBlbHNld2hlcmUsIHN1Y2ggYXMKKwkgIHRoZSAvbGliL2Zpcm13YXJlLyBkaXJlY3Rvcnkgb3IgYW5vdGhlciBzZXBhcmF0ZSBkaXJlY3RvcnkKKwkgIGNvbnRhaW5pbmcgZmlybXdhcmUgZmlsZXMuCisKIGNvbmZpZyBERUJVR19EUklWRVIKIAlib29sICJEcml2ZXIgQ29yZSB2ZXJib3NlIGRlYnVnIG1lc3NhZ2VzIgogCWRlcGVuZHMgb24gREVCVUdfS0VSTkVMCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvY29yZS5jIGIvZHJpdmVycy9iYXNlL2NvcmUuYwppbmRleCA0MjJjZmNhLi5lZTBhNTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvY29yZS5jCisrKyBiL2RyaXZlcnMvYmFzZS9jb3JlLmMKQEAgLTc2Miw2ICs3NjIsNyBAQAogLyoqCiAgKiBkZXZfc2V0X25hbWUgLSBzZXQgYSBkZXZpY2UgbmFtZQogICogQGRldjogZGV2aWNlCisgKiBAZm10OiBmb3JtYXQgc3RyaW5nIGZvciB0aGUgZGV2aWNlJ3MgbmFtZQogICovCiBpbnQgZGV2X3NldF9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvZmlybXdhcmVfY2xhc3MuYyBiL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCmluZGV4IDlmZDRhODUuLmIwYmUxZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCisrKyBiL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCkBAIC00OSw2ICs0OSwxNCBAQAogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVvdXQ7CiB9OwogCisjaWZkZWYgQ09ORklHX0ZXX0xPQURFUgorZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fc3RhcnRfYnVpbHRpbl9md1tdOworZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fZW5kX2J1aWx0aW5fZndbXTsKKyNlbHNlIC8qIE1vZHVsZSBjYXNlLiBBdm9pZCBpZmRlZnMgbGF0ZXI7IGl0J2xsIGFsbCBvcHRpbWlzZSBvdXQgKi8KK3N0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9mdyAqX19zdGFydF9idWlsdGluX2Z3Oworc3RhdGljIHN0cnVjdCBidWlsdGluX2Z3ICpfX2VuZF9idWlsdGluX2Z3OworI2VuZGlmCisKIHN0YXRpYyB2b2lkCiBmd19sb2FkX2Fib3J0KHN0cnVjdCBmaXJtd2FyZV9wcml2ICpmd19wcml2KQogewpAQCAtMjU3LDcgKzI2NSw3IEBACiAJaWYgKHJldHZhbCkKIAkJZ290byBvdXQ7CiAKLQltZW1jcHkoZnctPmRhdGEgKyBvZmZzZXQsIGJ1ZmZlciwgY291bnQpOworCW1lbWNweSgodTggKilmdy0+ZGF0YSArIG9mZnNldCwgYnVmZmVyLCBjb3VudCk7CiAKIAlmdy0+c2l6ZSA9IG1heF90KHNpemVfdCwgb2Zmc2V0ICsgY291bnQsIGZ3LT5zaXplKTsKIAlyZXR2YWwgPSBjb3VudDsKQEAgLTM5MSwxMyArMzk5LDEyIEBACiAJc3RydWN0IGRldmljZSAqZl9kZXY7CiAJc3RydWN0IGZpcm13YXJlX3ByaXYgKmZ3X3ByaXY7CiAJc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZTsKKwlzdHJ1Y3QgYnVpbHRpbl9mdyAqYnVpbHRpbjsKIAlpbnQgcmV0dmFsOwogCiAJaWYgKCFmaXJtd2FyZV9wKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXByaW50ayhLRVJOX0lORk8gImZpcm13YXJlOiByZXF1ZXN0aW5nICVzXG4iLCBuYW1lKTsKLQogCSpmaXJtd2FyZV9wID0gZmlybXdhcmUgPSBremFsbG9jKHNpemVvZigqZmlybXdhcmUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZpcm13YXJlKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IGttYWxsb2Moc3RydWN0IGZpcm13YXJlKSBmYWlsZWRcbiIsCkBAIC00MDYsNiArNDEzLDIwIEBACiAJCWdvdG8gb3V0OwogCX0KIAorCWZvciAoYnVpbHRpbiA9IF9fc3RhcnRfYnVpbHRpbl9mdzsgYnVpbHRpbiAhPSBfX2VuZF9idWlsdGluX2Z3OworCSAgICAgYnVpbHRpbisrKSB7CisJCWlmIChzdHJjbXAobmFtZSwgYnVpbHRpbi0+bmFtZSkpCisJCQljb250aW51ZTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiZmlybXdhcmU6IHVzaW5nIGJ1aWx0LWluIGZpcm13YXJlICVzXG4iLAorCQkgICAgICAgbmFtZSk7CisJCWZpcm13YXJlLT5zaXplID0gYnVpbHRpbi0+c2l6ZTsKKwkJZmlybXdhcmUtPmRhdGEgPSBidWlsdGluLT5kYXRhOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAodWV2ZW50KQorCQlwcmludGsoS0VSTl9JTkZPICJmaXJtd2FyZTogcmVxdWVzdGluZyAlc1xuIiwgbmFtZSk7CisKIAlyZXR2YWwgPSBmd19zZXR1cF9kZXZpY2UoZmlybXdhcmUsICZmX2RldiwgbmFtZSwgZGV2aWNlLCB1ZXZlbnQpOwogCWlmIChyZXR2YWwpCiAJCWdvdG8gZXJyb3Jfa2ZyZWVfZnc7CkBAIC00NzMsOCArNDk0LDE2IEBACiB2b2lkCiByZWxlYXNlX2Zpcm13YXJlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CisJc3RydWN0IGJ1aWx0aW5fZncgKmJ1aWx0aW47CisKIAlpZiAoZncpIHsKKwkJZm9yIChidWlsdGluID0gX19zdGFydF9idWlsdGluX2Z3OyBidWlsdGluICE9IF9fZW5kX2J1aWx0aW5fZnc7CisJCSAgICAgYnVpbHRpbisrKSB7CisJCQlpZiAoZnctPmRhdGEgPT0gYnVpbHRpbi0+ZGF0YSkKKwkJCQlnb3RvIGZyZWVfZnc7CisJCX0KIAkJdmZyZWUoZnctPmRhdGEpOworCWZyZWVfZnc6CiAJCWtmcmVlKGZ3KTsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2Uvbm9kZS5jIGIvZHJpdmVycy9iYXNlL25vZGUuYwppbmRleCAzOWYzZDFiLi4wZjg2N2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2Uvbm9kZS5jCisrKyBiL2RyaXZlcnMvYmFzZS9ub2RlLmMKQEAgLTg0LDggKzg0LDggQEAKIAkJICAgICAgIG5pZCwgSyhpLnRvdGFscmFtKSwKIAkJICAgICAgIG5pZCwgSyhpLmZyZWVyYW0pLAogCQkgICAgICAgbmlkLCBLKGkudG90YWxyYW0gLSBpLmZyZWVyYW0pLAotCQkgICAgICAgbmlkLCBub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9BQ1RJVkUpLAotCQkgICAgICAgbmlkLCBub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9JTkFDVElWRSksCisJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKG5pZCwgTlJfQUNUSVZFKSksCisJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKG5pZCwgTlJfSU5BQ1RJVkUpKSwKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCQkgICAgICAgbmlkLCBLKGkudG90YWxoaWdoKSwKIAkJICAgICAgIG5pZCwgSyhpLmZyZWVoaWdoKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9wb3dlci90cmFjZS5jIGIvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKaW5kZXggMmI0YjM5Mi4uODdhN2YxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKKysrIGIvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKQEAgLTE1Myw3ICsxNTMsNyBAQAogICogaXQncyBub3QgYW55IGd1YXJhbnRlZSwgYnV0IGl0J3MgYSBoaWdoIF9saWtlbGlob29kXyB0aGF0CiAgKiB0aGUgbWF0Y2ggaXMgdmFsaWQpLgogICovCi12b2lkIGdlbmVyYXRlX3Jlc3VtZV90cmFjZSh2b2lkICp0cmFjZWRhdGEsIHVuc2lnbmVkIGludCB1c2VyKQordm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2UoY29uc3Qgdm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcikKIHsKIAl1bnNpZ25lZCBzaG9ydCBsaW5lbm8gPSAqKHVuc2lnbmVkIHNob3J0ICopdHJhY2VkYXRhOwogCWNvbnN0IGNoYXIgKmZpbGUgPSAqKGNvbnN0IGNoYXIgKiopKHRyYWNlZGF0YSArIDIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL3RvcG9sb2d5LmMgYi9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYwppbmRleCBmMGNiMjcwLi4zZjZkOWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYworKysgYi9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYwpAQCAtNDAsNiArNDAsNyBAQAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCB0b3BvbG9neV8jI25hbWUoY3B1KSk7CVwKIH0KIAorI2lmIGRlZmluZWQodG9wb2xvZ3lfdGhyZWFkX3NpYmxpbmdzKSB8fCBkZWZpbmVkKHRvcG9sb2d5X2NvcmVfc2libGluZ3MpCiBzdGF0aWMgc3NpemVfdCBzaG93X2NwdW1hcChpbnQgdHlwZSwgY3B1bWFza190ICptYXNrLCBjaGFyICpidWYpCiB7CiAJcHRyZGlmZl90IGxlbiA9IFBUUl9BTElHTihidWYgKyBQQUdFX1NJWkUgLSAxLCBQQUdFX1NJWkUpIC0gYnVmOwpAQCAtNTQsMjEgKzU1LDQxIEBACiAJfQogCXJldHVybiBuOwogfQorI2VuZGlmCiAKKyNpZmRlZiBhcmNoX3Byb3ZpZGVzX3RvcG9sb2d5X3BvaW50ZXJzCiAjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X21hcChuYW1lKQkJCQkJXAotc3RhdGljIGlubGluZSBzc2l6ZV90IHNob3dfIyNuYW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQlcCiB7CQkJCQkJCQkJXAogCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAogCXJldHVybiBzaG93X2NwdW1hcCgwLCAmKHRvcG9sb2d5XyMjbmFtZShjcHUpKSwgYnVmKTsJCVwKIH0KIAogI2RlZmluZSBkZWZpbmVfc2libGluZ3Nfc2hvd19saXN0KG5hbWUpCQkJCQlcCi1zdGF0aWMgaW5saW5lIHNzaXplX3Qgc2hvd18jI25hbWUjI19saXN0KHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikgXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUjI19saXN0KHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikgXAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBpbnQgY3B1ID0gZGV2LT5pZDsJCQkJCVwKIAlyZXR1cm4gc2hvd19jcHVtYXAoMSwgJih0b3BvbG9neV8jI25hbWUoY3B1KSksIGJ1Zik7CQlcCiB9CiAKKyNlbHNlCisjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X21hcChuYW1lKQkJCQkJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQlcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAorCWNwdW1hc2tfdCBtYXNrID0gdG9wb2xvZ3lfIyNuYW1lKGNwdSk7CQkJCVwKKwlyZXR1cm4gc2hvd19jcHVtYXAoMCwgJm1hc2ssIGJ1Zik7CQkJCVwKK30KKworI2RlZmluZSBkZWZpbmVfc2libGluZ3Nfc2hvd19saXN0KG5hbWUpCQkJCQlcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZSMjX2xpc3Qoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKSBcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAorCWNwdW1hc2tfdCBtYXNrID0gdG9wb2xvZ3lfIyNuYW1lKGNwdSk7CQkJCVwKKwlyZXR1cm4gc2hvd19jcHVtYXAoMSwgJm1hc2ssIGJ1Zik7CQkJCVwKK30KKyNlbmRpZgorCiAjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X2Z1bmMobmFtZSkJCVwKIAlkZWZpbmVfc2libGluZ3Nfc2hvd19tYXAobmFtZSk7IGRlZmluZV9zaWJsaW5nc19zaG93X2xpc3QobmFtZSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9EQUM5NjAuYyBiL2RyaXZlcnMvYmxvY2svREFDOTYwLmMKaW5kZXggY2QwMzQ3My4uYTAwMmEzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9EQUM5NjAuYworKysgYi9kcml2ZXJzL2Jsb2NrL0RBQzk2MC5jCkBAIC02NjI4LDE1ICs2NjI4LDE4IEBACiAgKiBEQUM5NjBfZ2FtX2lvY3RsIGlzIHRoZSBpb2N0bCBmdW5jdGlvbiBmb3IgcGVyZm9ybWluZyBSQUlEIG9wZXJhdGlvbnMuCiAqLwogCi1zdGF0aWMgaW50IERBQzk2MF9nYW1faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkgICAgdW5zaWduZWQgaW50IFJlcXVlc3QsIHVuc2lnbmVkIGxvbmcgQXJndW1lbnQpCitzdGF0aWMgbG9uZyBEQUM5NjBfZ2FtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgUmVxdWVzdCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgQXJndW1lbnQpCiB7Ci0gIGludCBFcnJvckNvZGUgPSAwOworICBsb25nIEVycm9yQ29kZSA9IDA7CiAgIGlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgcmV0dXJuIC1FQUNDRVM7CisKKyAgbG9ja19rZXJuZWwoKTsKICAgc3dpdGNoIChSZXF1ZXN0KQogICAgIHsKICAgICBjYXNlIERBQzk2MF9JT0NUTF9HRVRfQ09OVFJPTExFUl9DT1VOVDoKLSAgICAgIHJldHVybiBEQUM5NjBfQ29udHJvbGxlckNvdW50OworICAgICAgRXJyb3JDb2RlID0gREFDOTYwX0NvbnRyb2xsZXJDb3VudDsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgREFDOTYwX0lPQ1RMX0dFVF9DT05UUk9MTEVSX0lORk86CiAgICAgICB7CiAJREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QgX191c2VyICpVc2VyU3BhY2VDb250cm9sbGVySW5mbyA9CkBAIC02NjQ0LDE1ICs2NjQ3LDIwIEBACiAJREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QgQ29udHJvbGxlckluZm87CiAJREFDOTYwX0NvbnRyb2xsZXJfVCAqQ29udHJvbGxlcjsKIAlpbnQgQ29udHJvbGxlck51bWJlcjsKLQlpZiAoVXNlclNwYWNlQ29udHJvbGxlckluZm8gPT0gTlVMTCkgcmV0dXJuIC1FSU5WQUw7Ci0JRXJyb3JDb2RlID0gZ2V0X3VzZXIoQ29udHJvbGxlck51bWJlciwKKwlpZiAoVXNlclNwYWNlQ29udHJvbGxlckluZm8gPT0gTlVMTCkKKwkJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwllbHNlIEVycm9yQ29kZSA9IGdldF91c2VyKENvbnRyb2xsZXJOdW1iZXIsCiAJCQkgICAgICZVc2VyU3BhY2VDb250cm9sbGVySW5mby0+Q29udHJvbGxlck51bWJlcik7Ci0JaWYgKEVycm9yQ29kZSAhPSAwKSByZXR1cm4gRXJyb3JDb2RlOworCWlmIChFcnJvckNvZGUgIT0gMCkKKwkJYnJlYWs7OworCUVycm9yQ29kZSA9IC1FTlhJTzsKIAlpZiAoQ29udHJvbGxlck51bWJlciA8IDAgfHwKLQkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKQotCSAgcmV0dXJuIC1FTlhJTzsKKwkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKSB7CisJICBicmVhazsKKwl9CiAJQ29udHJvbGxlciA9IERBQzk2MF9Db250cm9sbGVyc1tDb250cm9sbGVyTnVtYmVyXTsKLQlpZiAoQ29udHJvbGxlciA9PSBOVUxMKSByZXR1cm4gLUVOWElPOworCWlmIChDb250cm9sbGVyID09IE5VTEwpCisJCWJyZWFrOzsKIAltZW1zZXQoJkNvbnRyb2xsZXJJbmZvLCAwLCBzaXplb2YoREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QpKTsKIAlDb250cm9sbGVySW5mby5Db250cm9sbGVyTnVtYmVyID0gQ29udHJvbGxlck51bWJlcjsKIAlDb250cm9sbGVySW5mby5GaXJtd2FyZVR5cGUgPSBDb250cm9sbGVyLT5GaXJtd2FyZVR5cGU7CkBAIC02NjY1LDggKzY2NzMsOSBAQAogCUNvbnRyb2xsZXJJbmZvLlBDSV9BZGRyZXNzID0gQ29udHJvbGxlci0+UENJX0FkZHJlc3M7CiAJc3RyY3B5KENvbnRyb2xsZXJJbmZvLk1vZGVsTmFtZSwgQ29udHJvbGxlci0+TW9kZWxOYW1lKTsKIAlzdHJjcHkoQ29udHJvbGxlckluZm8uRmlybXdhcmVWZXJzaW9uLCBDb250cm9sbGVyLT5GaXJtd2FyZVZlcnNpb24pOwotCXJldHVybiAoY29weV90b191c2VyKFVzZXJTcGFjZUNvbnRyb2xsZXJJbmZvLCAmQ29udHJvbGxlckluZm8sCisJRXJyb3JDb2RlID0gKGNvcHlfdG9fdXNlcihVc2VyU3BhY2VDb250cm9sbGVySW5mbywgJkNvbnRyb2xsZXJJbmZvLAogCQkJICAgICBzaXplb2YoREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QpKSA/IC1FRkFVTFQgOiAwKTsKKwlicmVhazsKICAgICAgIH0KICAgICBjYXNlIERBQzk2MF9JT0NUTF9WMV9FWEVDVVRFX0NPTU1BTkQ6CiAgICAgICB7CkBAIC02Njg0LDMwICs2NjkzLDM5IEBACiAJaW50IENvbnRyb2xsZXJOdW1iZXIsIERhdGFUcmFuc2Zlckxlbmd0aDsKIAl1bnNpZ25lZCBjaGFyICpEYXRhVHJhbnNmZXJCdWZmZXIgPSBOVUxMOwogCWRtYV9hZGRyX3QgRGF0YVRyYW5zZmVyQnVmZmVyRE1BOwotCWlmIChVc2VyU3BhY2VVc2VyQ29tbWFuZCA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoVXNlclNwYWNlVXNlckNvbW1hbmQgPT0gTlVMTCkgeworCQlFcnJvckNvZGUgPSAtRUlOVkFMOworCQlicmVhazsKKwl9CiAJaWYgKGNvcHlfZnJvbV91c2VyKCZVc2VyQ29tbWFuZCwgVXNlclNwYWNlVXNlckNvbW1hbmQsCiAJCQkJICAgc2l6ZW9mKERBQzk2MF9WMV9Vc2VyQ29tbWFuZF9UKSkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMWE7CisJCWJyZWFrOwogCX0KIAlDb250cm9sbGVyTnVtYmVyID0gVXNlckNvbW1hbmQuQ29udHJvbGxlck51bWJlcjsKKyAgICAJRXJyb3JDb2RlID0gLUVOWElPOwogCWlmIChDb250cm9sbGVyTnVtYmVyIDwgMCB8fAogCSAgICBDb250cm9sbGVyTnVtYmVyID4gREFDOTYwX0NvbnRyb2xsZXJDb3VudCAtIDEpCi0JICByZXR1cm4gLUVOWElPOworCSAgICAJYnJlYWs7CiAJQ29udHJvbGxlciA9IERBQzk2MF9Db250cm9sbGVyc1tDb250cm9sbGVyTnVtYmVyXTsKLQlpZiAoQ29udHJvbGxlciA9PSBOVUxMKSByZXR1cm4gLUVOWElPOwotCWlmIChDb250cm9sbGVyLT5GaXJtd2FyZVR5cGUgIT0gREFDOTYwX1YxX0NvbnRyb2xsZXIpIHJldHVybiAtRUlOVkFMOworCWlmIChDb250cm9sbGVyID09IE5VTEwpCisJCWJyZWFrOworCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjFfQ29udHJvbGxlcikKKwkJYnJlYWs7CiAJQ29tbWFuZE9wY29kZSA9IFVzZXJDb21tYW5kLkNvbW1hbmRNYWlsYm94LkNvbW1vbi5Db21tYW5kT3Bjb2RlOwogCURhdGFUcmFuc2Zlckxlbmd0aCA9IFVzZXJDb21tYW5kLkRhdGFUcmFuc2Zlckxlbmd0aDsKLQlpZiAoQ29tbWFuZE9wY29kZSAmIDB4ODApIHJldHVybiAtRUlOVkFMOworCWlmIChDb21tYW5kT3Bjb2RlICYgMHg4MCkKKwkJYnJlYWs7CiAJaWYgKENvbW1hbmRPcGNvZGUgPT0gREFDOTYwX1YxX0RDREIpCiAJICB7CiAJICAgIGlmIChjb3B5X2Zyb21fdXNlcigmRENEQiwgVXNlckNvbW1hbmQuRENEQiwKIAkJCSAgICAgICBzaXplb2YoREFDOTYwX1YxX0RDREJfVCkpKSB7CiAJCUVycm9yQ29kZSA9IC1FRkFVTFQ7Ci0JCWdvdG8gRmFpbHVyZTFhOworCQlicmVhazsKIAkgICAgfQotCSAgICBpZiAoRENEQi5DaGFubmVsID49IERBQzk2MF9WMV9NYXhDaGFubmVscykgcmV0dXJuIC1FSU5WQUw7CisJICAgIGlmIChEQ0RCLkNoYW5uZWwgPj0gREFDOTYwX1YxX01heENoYW5uZWxzKQorCSAgICAJCWJyZWFrOwogCSAgICBpZiAoISgoRGF0YVRyYW5zZmVyTGVuZ3RoID09IDAgJiYKIAkJICAgRENEQi5EaXJlY3Rpb24KIAkJICAgPT0gREFDOTYwX1YxX0RDREJfTm9EYXRhVHJhbnNmZXIpIHx8CkBAIC02NzE3LDM4ICs2NzM1LDM3IEBACiAJCSAgKERhdGFUcmFuc2Zlckxlbmd0aCA8IDAgJiYKIAkJICAgRENEQi5EaXJlY3Rpb24KIAkJICAgPT0gREFDOTYwX1YxX0RDREJfRGF0YVRyYW5zZmVyU3lzdGVtVG9EZXZpY2UpKSkKLQkgICAgICByZXR1cm4gLUVJTlZBTDsKKwkJICAgCWJyZWFrOwogCSAgICBpZiAoKChEQ0RCLlRyYW5zZmVyTGVuZ3RoSGlnaDQgPDwgMTYpIHwgRENEQi5UcmFuc2Zlckxlbmd0aCkKIAkJIT0gYWJzKERhdGFUcmFuc2Zlckxlbmd0aCkpCi0JICAgICAgcmV0dXJuIC1FSU5WQUw7CisJCQlicmVhazsKIAkgICAgRENEQl9JT0JVRiA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCXNpemVvZihEQUM5NjBfVjFfRENEQl9UKSwgJkRDREJfSU9CVUZETUEpOwotCSAgICBpZiAoRENEQl9JT0JVRiA9PSBOVUxMKQotCQkJcmV0dXJuIC1FTk9NRU07CisJICAgIGlmIChEQ0RCX0lPQlVGID09IE5VTEwpIHsKKwkgICAgCQlFcnJvckNvZGUgPSAtRU5PTUVNOworCQkJYnJlYWs7CisJCX0KIAkgIH0KKwlFcnJvckNvZGUgPSAtRU5PTUVNOwogCWlmIChEYXRhVHJhbnNmZXJMZW5ndGggPiAwKQogCSAgewogCSAgICBEYXRhVHJhbnNmZXJCdWZmZXIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsCiAJCQkJRGF0YVRyYW5zZmVyTGVuZ3RoLCAmRGF0YVRyYW5zZmVyQnVmZmVyRE1BKTsKLQkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKSB7Ci0JCUVycm9yQ29kZSA9IC1FTk9NRU07Ci0JCWdvdG8gRmFpbHVyZTE7Ci0JICAgIH0KKwkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKQorCSAgICAJYnJlYWs7CiAJICAgIG1lbXNldChEYXRhVHJhbnNmZXJCdWZmZXIsIDAsIERhdGFUcmFuc2Zlckxlbmd0aCk7CiAJICB9CiAJZWxzZSBpZiAoRGF0YVRyYW5zZmVyTGVuZ3RoIDwgMCkKIAkgIHsKIAkgICAgRGF0YVRyYW5zZmVyQnVmZmVyID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLAogCQkJCS1EYXRhVHJhbnNmZXJMZW5ndGgsICZEYXRhVHJhbnNmZXJCdWZmZXJETUEpOwotCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpIHsKLQkJRXJyb3JDb2RlID0gLUVOT01FTTsKLQkJZ290byBGYWlsdXJlMTsKLQkgICAgfQorCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpCisJICAgIAlicmVhazsKIAkgICAgaWYgKGNvcHlfZnJvbV91c2VyKERhdGFUcmFuc2ZlckJ1ZmZlciwKIAkJCSAgICAgICBVc2VyQ29tbWFuZC5EYXRhVHJhbnNmZXJCdWZmZXIsCiAJCQkgICAgICAgLURhdGFUcmFuc2Zlckxlbmd0aCkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMTsKKwkJYnJlYWs7CiAJICAgIH0KIAkgIH0KIAlpZiAoQ29tbWFuZE9wY29kZSA9PSBEQUM5NjBfVjFfRENEQikKQEAgLTY4MjUsOCArNjg0Miw3IEBACiAJaWYgKERDREJfSU9CVUYgIT0gTlVMTCkKIAkgIHBjaV9mcmVlX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLCBzaXplb2YoREFDOTYwX1YxX0RDREJfVCksCiAJCQlEQ0RCX0lPQlVGLCBEQ0RCX0lPQlVGRE1BKTsKLSAgICAgIEZhaWx1cmUxYToKLQlyZXR1cm4gRXJyb3JDb2RlOworICAgICAgCWJyZWFrOwogICAgICAgfQogICAgIGNhc2UgREFDOTYwX0lPQ1RMX1YyX0VYRUNVVEVfQ09NTUFORDoKICAgICAgIHsKQEAgLTY4NDQsMzIgKzY4NjAsNDMgQEAKIAlkbWFfYWRkcl90IERhdGFUcmFuc2ZlckJ1ZmZlckRNQTsKIAl1bnNpZ25lZCBjaGFyICpSZXF1ZXN0U2Vuc2VCdWZmZXIgPSBOVUxMOwogCWRtYV9hZGRyX3QgUmVxdWVzdFNlbnNlQnVmZmVyRE1BOwotCWlmIChVc2VyU3BhY2VVc2VyQ29tbWFuZCA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKKworCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJaWYgKFVzZXJTcGFjZVVzZXJDb21tYW5kID09IE5VTEwpCisJCWJyZWFrOwogCWlmIChjb3B5X2Zyb21fdXNlcigmVXNlckNvbW1hbmQsIFVzZXJTcGFjZVVzZXJDb21tYW5kLAogCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9Vc2VyQ29tbWFuZF9UKSkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMmE7CisJCWJyZWFrOwogCX0KKwlFcnJvckNvZGUgPSAtRU5YSU87CiAJQ29udHJvbGxlck51bWJlciA9IFVzZXJDb21tYW5kLkNvbnRyb2xsZXJOdW1iZXI7CiAJaWYgKENvbnRyb2xsZXJOdW1iZXIgPCAwIHx8CiAJICAgIENvbnRyb2xsZXJOdW1iZXIgPiBEQUM5NjBfQ29udHJvbGxlckNvdW50IC0gMSkKLQkgIHJldHVybiAtRU5YSU87CisJICAgIAlicmVhazsKIAlDb250cm9sbGVyID0gREFDOTYwX0NvbnRyb2xsZXJzW0NvbnRyb2xsZXJOdW1iZXJdOwotCWlmIChDb250cm9sbGVyID09IE5VTEwpIHJldHVybiAtRU5YSU87Ci0JaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjJfQ29udHJvbGxlcikgcmV0dXJuIC1FSU5WQUw7CisJaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkKKwkJYnJlYWs7CisJaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjJfQ29udHJvbGxlcil7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlEYXRhVHJhbnNmZXJMZW5ndGggPSBVc2VyQ29tbWFuZC5EYXRhVHJhbnNmZXJMZW5ndGg7CisgICAgCUVycm9yQ29kZSA9IC1FTk9NRU07CiAJaWYgKERhdGFUcmFuc2Zlckxlbmd0aCA+IDApCiAJICB7CiAJICAgIERhdGFUcmFuc2ZlckJ1ZmZlciA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCQlEYXRhVHJhbnNmZXJMZW5ndGgsICZEYXRhVHJhbnNmZXJCdWZmZXJETUEpOwotCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpIHJldHVybiAtRU5PTUVNOworCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpCisJICAgIAlicmVhazsKIAkgICAgbWVtc2V0KERhdGFUcmFuc2ZlckJ1ZmZlciwgMCwgRGF0YVRyYW5zZmVyTGVuZ3RoKTsKIAkgIH0KIAllbHNlIGlmIChEYXRhVHJhbnNmZXJMZW5ndGggPCAwKQogCSAgewogCSAgICBEYXRhVHJhbnNmZXJCdWZmZXIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsCiAJCQkJLURhdGFUcmFuc2Zlckxlbmd0aCwgJkRhdGFUcmFuc2ZlckJ1ZmZlckRNQSk7Ci0JICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkgcmV0dXJuIC1FTk9NRU07CisJICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkKKwkgICAgCWJyZWFrOwogCSAgICBpZiAoY29weV9mcm9tX3VzZXIoRGF0YVRyYW5zZmVyQnVmZmVyLAogCQkJICAgICAgIFVzZXJDb21tYW5kLkRhdGFUcmFuc2ZlckJ1ZmZlciwKIAkJCSAgICAgICAtRGF0YVRyYW5zZmVyTGVuZ3RoKSkgewpAQCAtNjk3OSw4ICs3MDA2LDcgQEAKIAlpZiAoUmVxdWVzdFNlbnNlQnVmZmVyICE9IE5VTEwpCiAJICBwY2lfZnJlZV9jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwgUmVxdWVzdFNlbnNlTGVuZ3RoLAogCQlSZXF1ZXN0U2Vuc2VCdWZmZXIsIFJlcXVlc3RTZW5zZUJ1ZmZlckRNQSk7Ci0gICAgICBGYWlsdXJlMmE6Ci0JcmV0dXJuIEVycm9yQ29kZTsKKyAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgY2FzZSBEQUM5NjBfSU9DVExfVjJfR0VUX0hFQUxUSF9TVEFUVVM6CiAgICAgICB7CkBAIC02OTkwLDIxICs3MDE2LDMzIEBACiAJREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UIEhlYWx0aFN0YXR1c0J1ZmZlcjsKIAlEQUM5NjBfQ29udHJvbGxlcl9UICpDb250cm9sbGVyOwogCWludCBDb250cm9sbGVyTnVtYmVyOwotCWlmIChVc2VyU3BhY2VHZXRIZWFsdGhTdGF0dXMgPT0gTlVMTCkgcmV0dXJuIC1FSU5WQUw7CisJaWYgKFVzZXJTcGFjZUdldEhlYWx0aFN0YXR1cyA9PSBOVUxMKSB7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlpZiAoY29weV9mcm9tX3VzZXIoJkdldEhlYWx0aFN0YXR1cywgVXNlclNwYWNlR2V0SGVhbHRoU3RhdHVzLAotCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9HZXRIZWFsdGhTdGF0dXNfVCkpKQotCQlyZXR1cm4gLUVGQVVMVDsKKwkJCSAgIHNpemVvZihEQUM5NjBfVjJfR2V0SGVhbHRoU3RhdHVzX1QpKSkgeworCQlFcnJvckNvZGUgPSAtRUZBVUxUOworCQlicmVhazsKKwl9CisJRXJyb3JDb2RlID0gLUVOWElPOwogCUNvbnRyb2xsZXJOdW1iZXIgPSBHZXRIZWFsdGhTdGF0dXMuQ29udHJvbGxlck51bWJlcjsKIAlpZiAoQ29udHJvbGxlck51bWJlciA8IDAgfHwKIAkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKQotCSAgcmV0dXJuIC1FTlhJTzsKKwkJICAgIGJyZWFrOwogCUNvbnRyb2xsZXIgPSBEQUM5NjBfQ29udHJvbGxlcnNbQ29udHJvbGxlck51bWJlcl07Ci0JaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkgcmV0dXJuIC1FTlhJTzsKLQlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoQ29udHJvbGxlciA9PSBOVUxMKQorCQlicmVhazsKKwlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKSB7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlpZiAoY29weV9mcm9tX3VzZXIoJkhlYWx0aFN0YXR1c0J1ZmZlciwKIAkJCSAgIEdldEhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0dXNCdWZmZXIsCi0JCQkgICBzaXplb2YoREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UKSkpCi0JCXJldHVybiAtRUZBVUxUOworCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9IZWFsdGhTdGF0dXNCdWZmZXJfVCkpKSB7CisJCUVycm9yQ29kZSA9IC1FRkFVTFQ7CisJCWJyZWFrOworCX0KIAl3aGlsZSAoQ29udHJvbGxlci0+VjIuSGVhbHRoU3RhdHVzQnVmZmVyLT5TdGF0dXNDaGFuZ2VDb3VudGVyCiAJICAgICAgID09IEhlYWx0aFN0YXR1c0J1ZmZlci5TdGF0dXNDaGFuZ2VDb3VudGVyICYmCiAJICAgICAgIENvbnRyb2xsZXItPlYyLkhlYWx0aFN0YXR1c0J1ZmZlci0+TmV4dEV2ZW50U2VxdWVuY2VOdW1iZXIKQEAgLTcwMTIsMjEgKzcwNTAsMjggQEAKIAkgIHsKIAkgICAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0KCZDb250cm9sbGVyLT5IZWFsdGhTdGF0dXNXYWl0UXVldWUsCiAJCQkJCSAgIERBQzk2MF9Nb25pdG9yaW5nVGltZXJJbnRlcnZhbCk7Ci0JICAgIGlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgcmV0dXJuIC1FSU5UUjsKKwkgICAgaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CisJICAgIAlFcnJvckNvZGUgPSAtRUlOVFI7CisJICAgIAlicmVhazsKKwkgICAgfQogCSAgfQogCWlmIChjb3B5X3RvX3VzZXIoR2V0SGVhbHRoU3RhdHVzLkhlYWx0aFN0YXR1c0J1ZmZlciwKIAkJCSBDb250cm9sbGVyLT5WMi5IZWFsdGhTdGF0dXNCdWZmZXIsCiAJCQkgc2l6ZW9mKERBQzk2MF9WMl9IZWFsdGhTdGF0dXNCdWZmZXJfVCkpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQlyZXR1cm4gMDsKKwkJRXJyb3JDb2RlID0gLUVGQVVMVDsKKwllbHNlCisJCUVycm9yQ29kZSA9ICAwOwogICAgICAgfQorICAgICAgZGVmYXVsdDoKKwlFcnJvckNvZGUgPSAtRU5PVFRZOwogICAgIH0KLSAgcmV0dXJuIC1FSU5WQUw7CisgIHVubG9ja19rZXJuZWwoKTsKKyAgcmV0dXJuIEVycm9yQ29kZTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgREFDOTYwX2dhbV9mb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkuaW9jdGwJCT0gREFDOTYwX2dhbV9pb2N0bAorCS51bmxvY2tlZF9pb2N0bAk9IERBQzk2MF9nYW1faW9jdGwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgbWlzY2RldmljZSBEQUM5NjBfZ2FtX2RldiA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svYW9lL2FvZWNoci5jIGIvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKaW5kZXggZThlNjBlNy4uZDFkZTY4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKKysrIGIvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8bGludXgvaGRyZWcuaD4KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSAiYW9lLmgiCiAKIGVudW0gewpAQCAtMTc0LDEyICsxNzUsMTYgQEAKIHsKIAlpbnQgbiwgaTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbiA9IGltaW5vcihpbm9kZSk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKikgKHVuc2lnbmVkIGxvbmcpIG47CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjaGFyZGV2cyk7ICsraSkKLQkJaWYgKGNoYXJkZXZzW2ldLm1pbm9yID09IG4pCisJCWlmIChjaGFyZGV2c1tpXS5taW5vciA9PSBuKSB7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gMDsKKwkJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9hb2UvYW9lY21kLmMgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYwppbmRleCA0MWY4MThiLi4yZjE3NDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYworKysgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYwpAQCAtMTAwMyw3ICsxMDAzLDcgQEAKIAkgKiBFbm91Z2ggcGVvcGxlIGhhdmUgdGhlaXIgZGlwIHN3aXRjaGVzIHNldCBiYWNrd2FyZHMgdG8KIAkgKiB3YXJyYW50IGEgbG91ZCBtZXNzYWdlIGZvciB0aGlzIHNwZWNpYWwgY2FzZS4KIAkgKi8KLQlhb2VtYWpvciA9IGJlMTZfdG9fY3B1KGdldF91bmFsaWduZWQoJmgtPm1ham9yKSk7CisJYW9lbWFqb3IgPSBnZXRfdW5hbGlnbmVkX2JlMTYoJmgtPm1ham9yKTsKIAlpZiAoYW9lbWFqb3IgPT0gMHhmZmYpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJhb2U6IFdhcm5pbmc6IHNoZWxmIGFkZHJlc3MgaXMgYWxsIG9uZXMuICAiCiAJCQkiQ2hlY2sgc2hlbGYgZGlwIHN3aXRjaGVzLlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMgYi9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMKaW5kZXggZTMzNmIwNS4uZDgxNjMyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9jY2lzcy5jCisrKyBiL2RyaXZlcnMvYmxvY2svY2Npc3MuYwpAQCAtNTMsMTUgKzUzLDE2IEBACiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KIAogI2RlZmluZSBDQ0lTU19EUklWRVJfVkVSU0lPTihtYWosbWluLHN1Ym1pbikgKChtYWo8PDE2KXwobWluPDw4KXwoc3VibWluKSkKLSNkZWZpbmUgRFJJVkVSX05BTUUgIkhQIENJU1MgRHJpdmVyICh2IDMuNi4xNCkiCi0jZGVmaW5lIERSSVZFUl9WRVJTSU9OIENDSVNTX0RSSVZFUl9WRVJTSU9OKDMsNiwxNCkKKyNkZWZpbmUgRFJJVkVSX05BTUUgIkhQIENJU1MgRHJpdmVyICh2IDMuNi4yMCkiCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OIENDSVNTX0RSSVZFUl9WRVJTSU9OKDMsIDYsIDIwKQogCiAvKiBFbWJlZGRlZCBtb2R1bGUgZG9jdW1lbnRhdGlvbiBtYWNyb3MgLSBzZWUgbW9kdWxlcy5oICovCiBNT0RVTEVfQVVUSE9SKCJIZXdsZXR0LVBhY2thcmQgQ29tcGFueSIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIEhQIENvbnRyb2xsZXIgU0E1eHh4IFNBNnh4eCB2ZXJzaW9uIDMuNi4xNCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIEhQIFNtYXJ0IEFycmF5IENvbnRyb2xsZXJzIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgiSFAgU0E1aSBTQTVpKyBTQTUzMiBTQTUzMDAgU0E1MzEyIFNBNjQxIFNBNjQyIFNBNjQwMCIKLQkJCSIgU0E2aSBQNjAwIFA4MDAgUDQwMCBQNDAwaSBFMjAwIEUyMDBpIEU1MDAiKTsKLU1PRFVMRV9WRVJTSU9OKCIzLjYuMTQiKTsKKwkJCSIgU0E2aSBQNjAwIFA4MDAgUDQwMCBQNDAwaSBFMjAwIEUyMDBpIEU1MDAgUDcwMG0iCisJCQkiIFNtYXJ0IEFycmF5IEcyIFNlcmllcyBTQVMvU0FUQSBDb250cm9sbGVycyIpOworTU9EVUxFX1ZFUlNJT04oIjMuNi4yMCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCiAjaW5jbHVkZSAiY2Npc3NfY21kLmgiCkBAIC05MCw2ICs5MSwxMSBAQAogCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRCwgICAgIDB4MTAzQywgMHgzMjE1fSwKIAl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0MsICAgICAweDEwM0MsIDB4MzIzN30sCiAJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NDLCAgICAgMHgxMDNDLCAweDMyM0R9LAorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRSwgICAgIDB4MTAzQywgMHgzMjQxfSwKKwl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0UsICAgICAweDEwM0MsIDB4MzI0M30sCisJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NFLCAgICAgMHgxMDNDLCAweDMyNDV9LAorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRSwgICAgIDB4MTAzQywgMHgzMjQ3fSwKKwl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0UsICAgICAweDEwM0MsIDB4MzI0OX0sCiAJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfQU5ZX0lELAlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELAogCQlQQ0lfQ0xBU1NfU1RPUkFHRV9SQUlEIDw8IDgsIDB4ZmZmZiA8PCA4LCAwfSwKIAl7MCx9CkBAIC0xMDAsMzAgKzEwNiwzNCBAQAogLyogIGJvYXJkX2lkID0gU3Vic3lzdGVtIERldmljZSBJRCAmIFZlbmRvciBJRAogICogIHByb2R1Y3QgPSBNYXJrZXRpbmcgTmFtZSBmb3IgdGhlIGJvYXJkCiAgKiAgYWNjZXNzID0gQWRkcmVzcyBvZiB0aGUgc3RydWN0IG9mIGZ1bmN0aW9uIHBvaW50ZXJzCi0gKiAgbnJfY21kcyA9IE51bWJlciBvZiBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgY29udHJvbGxlcgogICovCiBzdGF0aWMgc3RydWN0IGJvYXJkX3R5cGUgcHJvZHVjdHNbXSA9IHsKLQl7MHg0MDcwMEUxMSwgIlNtYXJ0IEFycmF5IDUzMDAiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHg0MDgwMEUxMSwgIlNtYXJ0IEFycmF5IDVpIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODIwRTExLCAiU21hcnQgQXJyYXkgNTMyIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODMwRTExLCAiU21hcnQgQXJyYXkgNTMxMiIsICZTQTVCX2FjY2VzcywgNTEyfSwKLQl7MHg0MDlBMEUxMSwgIlNtYXJ0IEFycmF5IDY0MSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDQwOUIwRTExLCAiU21hcnQgQXJyYXkgNjQyIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5QzBFMTEsICJTbWFydCBBcnJheSA2NDAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5RDBFMTEsICJTbWFydCBBcnJheSA2NDAwIEVNIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5MTBFMTEsICJTbWFydCBBcnJheSA2aSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjUxMDNDLCAiU21hcnQgQXJyYXkgUDYwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjMxMDNDLCAiU21hcnQgQXJyYXkgUDgwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzQxMDNDLCAiU21hcnQgQXJyYXkgUDQwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzUxMDNDLCAiU21hcnQgQXJyYXkgUDQwMGkiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHgzMjExMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMjEwM0MsICJTbWFydCBBcnJheSBFMjAwIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMzEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzLCAxMjB9LAotCXsweDMyMTQxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2VzcywgMTIwfSwKLQl7MHgzMjE1MTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIzNzEwM0MsICJTbWFydCBBcnJheSBFNTAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4MzIzRDEwM0MsICJTbWFydCBBcnJheSBQNzAwbSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweEZGRkYxMDNDLCAiVW5rbm93biBTbWFydCBBcnJheSIsICZTQTVfYWNjZXNzLCAxMjB9LAorCXsweDQwNzAwRTExLCAiU21hcnQgQXJyYXkgNTMwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDgwMEUxMSwgIlNtYXJ0IEFycmF5IDVpIiwgJlNBNUJfYWNjZXNzfSwKKwl7MHg0MDgyMEUxMSwgIlNtYXJ0IEFycmF5IDUzMiIsICZTQTVCX2FjY2Vzc30sCisJezB4NDA4MzBFMTEsICJTbWFydCBBcnJheSA1MzEyIiwgJlNBNUJfYWNjZXNzfSwKKwl7MHg0MDlBMEUxMSwgIlNtYXJ0IEFycmF5IDY0MSIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDlCMEUxMSwgIlNtYXJ0IEFycmF5IDY0MiIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDlDMEUxMSwgIlNtYXJ0IEFycmF5IDY0MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4NDA5RDBFMTEsICJTbWFydCBBcnJheSA2NDAwIEVNIiwgJlNBNV9hY2Nlc3N9LAorCXsweDQwOTEwRTExLCAiU21hcnQgQXJyYXkgNmkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIyNTEwM0MsICJTbWFydCBBcnJheSBQNjAwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMjMxMDNDLCAiU21hcnQgQXJyYXkgUDgwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjM0MTAzQywgIlNtYXJ0IEFycmF5IFA0MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzNTEwM0MsICJTbWFydCBBcnJheSBQNDAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjExMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMTIxMDNDLCAiU21hcnQgQXJyYXkgRTIwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjEzMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMTQxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIxNTEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjM3MTAzQywgIlNtYXJ0IEFycmF5IEU1MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzRDEwM0MsICJTbWFydCBBcnJheSBQNzAwbSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjQxMTAzQywgIlNtYXJ0IEFycmF5IFAyMTIiLCAmU0E1X2FjY2Vzc30sCisJezB4MzI0MzEwM0MsICJTbWFydCBBcnJheSBQNDEwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDUxMDNDLCAiU21hcnQgQXJyYXkgUDQxMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzI0NzEwM0MsICJTbWFydCBBcnJheSBQNDExIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDkxMDNDLCAiU21hcnQgQXJyYXkgUDgxMiIsICZTQTVfYWNjZXNzfSwKKwl7MHhGRkZGMTAzQywgIlVua25vd24gU21hcnQgQXJyYXkiLCAmU0E1X2FjY2Vzc30sCiB9OwogCiAvKiBIb3cgbG9uZyB0byB3YWl0IChpbiBtaWxsaXNlY29uZHMpIGZvciBib2FyZCB0byBnbyBpbnRvIHNpbXBsZSBtb2RlICovCkBAIC0zMDc1LDExICszMDg1LDIwIEBACiAJcHJpbnRfY2ZnX3RhYmxlKGMtPmNmZ3RhYmxlKTsKICNlbmRpZgkJCQkvKiBDQ0lTU19ERUJVRyAqLwogCisJLyogU29tZSBjb250cm9sbGVycyBzdXBwb3J0IFplcm8gTWVtb3J5IFJhaWQgKFpNUikuCisJICogV2hlbiBjb25maWd1cmVkIGluIFpNUiBtb2RlIHRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkCisJICogY29tbWFuZHMgZHJvcHMgdG8gNjQuIFNvIGluc3RlYWQgb2YganVzdCBzZXR0aW5nIGFuCisJICogYXJiaXRyYXJ5IHZhbHVlIHdlIG1ha2UgdGhlIGRyaXZlciBhIGxpdHRsZSBzbWFydGVyLgorCSAqIFdlIHJlYWQgdGhlIGNvbmZpZyB0YWJsZSB0byB0ZWxsIHVzIGhvdyBtYW55IGNvbW1hbmRzCisJICogYXJlIHN1cHBvcnRlZCBvbiB0aGUgY29udHJvbGxlciB0aGVuIHN1YnRyYWN0IDQgdG8KKwkgKiBsZWF2ZSBhIGxpdHRsZSByb29tIGZvciBpb2N0bCBjYWxscy4KKwkgKi8KKwljLT5tYXhfY29tbWFuZHMgPSByZWFkbCgmKGMtPmNmZ3RhYmxlLT5DbWRzT3V0TWF4KSk7CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJvZHVjdHMpOyBpKyspIHsKIAkJaWYgKGJvYXJkX2lkID09IHByb2R1Y3RzW2ldLmJvYXJkX2lkKSB7CiAJCQljLT5wcm9kdWN0X25hbWUgPSBwcm9kdWN0c1tpXS5wcm9kdWN0X25hbWU7CiAJCQljLT5hY2Nlc3MgPSAqKHByb2R1Y3RzW2ldLmFjY2Vzcyk7Ci0JCQljLT5ucl9jbWRzID0gcHJvZHVjdHNbaV0ubnJfY21kczsKKwkJCWMtPm5yX2NtZHMgPSBjLT5tYXhfY29tbWFuZHMgLSA0OwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0zMDk5LDcgKzMxMTgsNyBAQAogCQlpZiAoc3Vic3lzdGVtX3ZlbmRvcl9pZCA9PSBQQ0lfVkVORE9SX0lEX0hQKSB7CiAJCQljLT5wcm9kdWN0X25hbWUgPSBwcm9kdWN0c1tpLTFdLnByb2R1Y3RfbmFtZTsKIAkJCWMtPmFjY2VzcyA9ICoocHJvZHVjdHNbaS0xXS5hY2Nlc3MpOwotCQkJYy0+bnJfY21kcyA9IHByb2R1Y3RzW2ktMV0ubnJfY21kczsKKwkJCWMtPm5yX2NtZHMgPSBjLT5tYXhfY29tbWFuZHMgLSA0OwogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2Npc3M6IFRoaXMgaXMgYW4gdW5rbm93biAiCiAJCQkJIlNtYXJ0IEFycmF5IGNvbnRyb2xsZXIuXG4iCiAJCQkJImNjaXNzOiBQbGVhc2UgdXBkYXRlIHRvIHRoZSBsYXRlc3QgZHJpdmVyICIKQEAgLTM1MzUsNiArMzU1NCwxMCBAQAogCWZvciAoaiA9IDA7IGogPD0gaGJhW2ldLT5oaWdoZXN0X2x1bjsgaisrKQogCQlhZGRfZGlzayhoYmFbaV0tPmdlbmRpc2tbal0pOwogCisJLyogd2UgbXVzdCByZWdpc3RlciB0aGUgY29udHJvbGxlciBldmVuIGlmIG5vIGRpc2tzIGV4aXN0ICovCisJaWYgKGhiYVtpXS0+aGlnaGVzdF9sdW4gPT0gLTEpCisJCWFkZF9kaXNrKGhiYVtpXS0+Z2VuZGlza1swXSk7CisKIAlyZXR1cm4gMTsKIAogICAgICAgY2xlYW40OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcGcuYyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BnLmMKaW5kZXggYWI4NmUyMy4uOWQ5MjYzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcGcuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZy5jCkBAIC0xNjIsNiArMTYyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wZy5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGN1cnJlbnQsIFRBU0tfKiAqLworI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTUxNSwxMiArNTE2LDE4IEBACiB7CiAJaW50IHVuaXQgPSBpbWlub3IoaW5vZGUpICYgMHg3ZjsKIAlzdHJ1Y3QgcGcgKmRldiA9ICZkZXZpY2VzW3VuaXRdOworCWludCByZXQgPSAwOwogCi0JaWYgKCh1bml0ID49IFBHX1VOSVRTKSB8fCAoIWRldi0+cHJlc2VudCkpCi0JCXJldHVybiAtRU5PREVWOworCWxvY2tfa2VybmVsKCk7CisJaWYgKCh1bml0ID49IFBHX1VOSVRTKSB8fCAoIWRldi0+cHJlc2VudCkpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJmRldi0+YWNjZXNzKSkKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmZGV2LT5hY2Nlc3MpKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKGRldi0+YnVzeSkgewogCQlwZ19yZXNldChkZXYpOwpAQCAtNTMzLDEyICs1NDAsMTUgQEAKIAlpZiAoZGV2LT5idWZwdHIgPT0gTlVMTCkgewogCQljbGVhcl9iaXQoMCwgJmRldi0+YWNjZXNzKTsKIAkJcHJpbnRrKCIlczogYnVmZmVyIGFsbG9jYXRpb24gZmFpbGVkXG4iLCBkZXYtPm5hbWUpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZGV2OwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgcGdfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wdC5jCmluZGV4IDhiOTU0OWEuLjVjNzRjMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMKKysrIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcHQuYwpAQCAtMTQ2LDYgKzE0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvbXRpby5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGN1cnJlbnQsIFRBU0tfKiwgc2NoZWR1bGVfdGltZW91dCgpICovCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKQEAgLTE4OSw4ICsxOTAsNyBAQAogI2RlZmluZSBBVEFQSV9MT0dfU0VOU0UJCTB4NGQKIAogc3RhdGljIGludCBwdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKLXN0YXRpYyBpbnQgcHRfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCi0JCSAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgbG9uZyBwdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogc3RhdGljIGludCBwdF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKIHN0YXRpYyBzc2l6ZV90IHB0X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsCiAJCSAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqIHBwb3MpOwpAQCAtMjM2LDcgKzIzNiw3IEBACiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLnJlYWQgPSBwdF9yZWFkLAogCS53cml0ZSA9IHB0X3dyaXRlLAotCS5pb2N0bCA9IHB0X2lvY3RsLAorCS51bmxvY2tlZF9pb2N0bCA9IHB0X2lvY3RsLAogCS5vcGVuID0gcHRfb3BlbiwKIAkucmVsZWFzZSA9IHB0X3JlbGVhc2UsCiB9OwpAQCAtNjUwLDggKzY1MCwxMSBAQAogCXN0cnVjdCBwdF91bml0ICp0YXBlID0gcHQgKyB1bml0OwogCWludCBlcnI7CiAKLQlpZiAodW5pdCA+PSBQVF9VTklUUyB8fCAoIXRhcGUtPnByZXNlbnQpKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKHVuaXQgPj0gUFRfVU5JVFMgfHwgKCF0YXBlLT5wcmVzZW50KSkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PREVWOworCX0KIAogCWVyciA9IC1FQlVTWTsKIAlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJnRhcGUtPmF2YWlsYWJsZSkpCkBAIC02NzgsMTUgKzY4MSwxNiBAQAogCX0KIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHRhcGU7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXQ6CiAJYXRvbWljX2luYygmdGFwZS0+YXZhaWxhYmxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBwdF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBwdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IHB0X3VuaXQgKnRhcGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IG10b3AgX191c2VyICpwID0gKHZvaWQgX191c2VyICopYXJnOwpAQCAtNzAwLDIzICs3MDQsMjYgQEAKIAkJc3dpdGNoIChtdG9wLm10X29wKSB7CiAKIAkJY2FzZSBNVFJFVzoKKwkJCWxvY2tfa2VybmVsKCk7CiAJCQlwdF9yZXdpbmQodGFwZSk7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gMDsKIAogCQljYXNlIE1UV0VPRjoKKwkJCWxvY2tfa2VybmVsKCk7CiAJCQlwdF93cml0ZV9mbSh0YXBlKTsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOwogCiAJCWRlZmF1bHQ6Ci0JCQlwcmludGsoIiVzOiBVbmltcGxlbWVudGVkIG10X29wICVkXG4iLCB0YXBlLT5uYW1lLAorCQkJLyogRklYTUU6IHJhdGUgbGltaXQgPz8gKi8KKwkJCXByaW50ayhLRVJOX0RFQlVHICIlczogVW5pbXBsZW1lbnRlZCBtdF9vcCAlZFxuIiwgdGFwZS0+bmFtZSwKIAkJCSAgICAgICBtdG9wLm10X29wKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAKIAlkZWZhdWx0OgotCQlwcmludGsoIiVzOiBVbmltcGxlbWVudGVkIGlvY3RsIDB4JXhcbiIsIHRhcGUtPm5hbWUsIGNtZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCisJCXJldHVybiAtRU5PVFRZOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wa3RjZHZkLmMgYi9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYwppbmRleCAzYmExZGY5Li40NWJlZTkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KQEAgLTIwNzksNyArMjA4MCw2IEBACiAJdW5zaWduZWQgY2hhciBidWZbNjRdOwogCWludCByZXQ7CiAKLQltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1JFQUQpOwogCWNnYy5zZW5zZSA9ICZzZW5zZTsKIAljZ2MuYnVmbGVuID0gcGQtPm1vZGVfb2Zmc2V0ICsgMTI7CkBAIC0yMTI2LDcgKzIxMjYsNiBAQAogCXVuc2lnbmVkIGNoYXIgKmNhcF9idWY7CiAJaW50IHJldCwgb2Zmc2V0OwogCi0JbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOwogCWNhcF9idWYgPSAmYnVmW3NpemVvZihzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlcikgKyBwZC0+bW9kZV9vZmZzZXRdOwogCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIHNpemVvZihidWYpLCBDR0NfREFUQV9VTktOT1dOKTsKIAljZ2Muc2Vuc2UgPSAmc2Vuc2U7CkBAIC0yNjMzLDExICsyNjMyLDEyIEBACiAKIAogCi1zdGF0aWMgaW50IHBrdF9tZXJnZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW9fdmVjICpidmVjKQorc3RhdGljIGludCBwa3RfbWVyZ2VfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqYm1kLAorCQkJICBzdHJ1Y3QgYmlvX3ZlYyAqYnZlYykKIHsKIAlzdHJ1Y3QgcGt0Y2R2ZF9kZXZpY2UgKnBkID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHpvbmUgPSBaT05FKGJpby0+Ymlfc2VjdG9yLCBwZCk7Ci0JaW50IHVzZWQgPSAoKGJpby0+Ymlfc2VjdG9yIC0gem9uZSkgPDwgOSkgKyBiaW8tPmJpX3NpemU7CisJc2VjdG9yX3Qgem9uZSA9IFpPTkUoYm1kLT5iaV9zZWN0b3IsIHBkKTsKKwlpbnQgdXNlZCA9ICgoYm1kLT5iaV9zZWN0b3IgLSB6b25lKSA8PCA5KSArIGJtZC0+Ymlfc2l6ZTsKIAlpbnQgcmVtYWluaW5nID0gKHBkLT5zZXR0aW5ncy5zaXplIDw8IDkpIC0gdXNlZDsKIAlpbnQgcmVtYWluaW5nMjsKIApAQCAtMjY0NSw3ICsyNjQ1LDcgQEAKIAkgKiBBIGJpbyA8PSBQQUdFX1NJWkUgbXVzdCBiZSBhbGxvd2VkLiBJZiBpdCBjcm9zc2VzIGEgcGFja2V0CiAJICogYm91bmRhcnksIHBrdF9tYWtlX3JlcXVlc3QoKSB3aWxsIHNwbGl0IHRoZSBiaW8uCiAJICovCi0JcmVtYWluaW5nMiA9IFBBR0VfU0laRSAtIGJpby0+Ymlfc2l6ZTsKKwlyZW1haW5pbmcyID0gUEFHRV9TSVpFIC0gYm1kLT5iaV9zaXplOwogCXJlbWFpbmluZyA9IG1heChyZW1haW5pbmcsIHJlbWFpbmluZzIpOwogCiAJQlVHX09OKHJlbWFpbmluZyA8IDApOwpAQCAtMjc5Niw5ICsyNzk2LDE0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwa3RfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQorc3RhdGljIGxvbmcgcGt0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKLQlzdHJ1Y3QgcGt0Y2R2ZF9kZXZpY2UgKnBkID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzay0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOworCXN0cnVjdCBwa3RjZHZkX2RldmljZSAqcGQ7CisJbG9uZyByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXBkID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzay0+cHJpdmF0ZV9kYXRhOwogCiAJVlBSSU5USygicGt0X2lvY3RsOiBjbWQgJXgsIGRldiAlZDolZFxuIiwgY21kLCBpbWFqb3IoaW5vZGUpLCBpbWlub3IoaW5vZGUpKTsKIApAQCAtMjgxMSw3ICsyODE2LDggQEAKIAljYXNlIENEUk9NX0xBU1RfV1JJVFRFTjoKIAljYXNlIENEUk9NX1NFTkRfUEFDS0VUOgogCWNhc2UgU0NTSV9JT0NUTF9TRU5EX0NPTU1BTkQ6Ci0JCXJldHVybiBibGtkZXZfaW9jdGwocGQtPmJkZXYtPmJkX2lub2RlLCBmaWxlLCBjbWQsIGFyZyk7CisJCXJldCA9IGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJYnJlYWs7CiAKIAljYXNlIENEUk9NRUpFQ1Q6CiAJCS8qCkBAIC0yODIwLDE0ICsyODI2LDE1IEBACiAJCSAqLwogCQlpZiAocGQtPnJlZmNudCA9PSAxKQogCQkJcGt0X2xvY2tfZG9vcihwZCwgMCk7Ci0JCXJldHVybiBibGtkZXZfaW9jdGwocGQtPmJkZXYtPmJkX2lub2RlLCBmaWxlLCBjbWQsIGFyZyk7CisJCXJldCA9IGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJYnJlYWs7CiAKIAlkZWZhdWx0OgogCQlWUFJJTlRLKERSSVZFUl9OQU1FIjogVW5rbm93biBpb2N0bCBmb3IgJXMgKCV4KVxuIiwgcGQtPm5hbWUsIGNtZCk7Ci0JCXJldHVybiAtRU5PVFRZOworCQlyZXQgPSAtRU5PVFRZOwogCX0KLQotCXJldHVybiAwOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHBrdF9tZWRpYV9jaGFuZ2VkKHN0cnVjdCBnZW5kaXNrICpkaXNrKQpAQCAtMjg0OSw3ICsyODU2LDcgQEAKIAkub3duZXIgPQkJVEhJU19NT0RVTEUsCiAJLm9wZW4gPQkJCXBrdF9vcGVuLAogCS5yZWxlYXNlID0JCXBrdF9jbG9zZSwKLQkuaW9jdGwgPQkJcGt0X2lvY3RsLAorCS51bmxvY2tlZF9pb2N0bCA9CXBrdF9pb2N0bCwKIAkubWVkaWFfY2hhbmdlZCA9CXBrdF9tZWRpYV9jaGFuZ2VkLAogfTsKIApAQCAtMzAxNCw3ICszMDIxLDggQEAKIAltdXRleF91bmxvY2soJmN0bF9tdXRleCk7CiB9CiAKLXN0YXRpYyBpbnQgcGt0X2N0bF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBwa3RfY3RsX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJCQkJdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJdm9pZCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBfX3VzZXIgKilhcmc7CiAJc3RydWN0IHBrdF9jdHJsX2NvbW1hbmQgY3RybF9jbWQ7CkBAIC0zMDMxLDE2ICszMDM5LDIyIEBACiAJY2FzZSBQS1RfQ1RSTF9DTURfU0VUVVA6CiAJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CisJCWxvY2tfa2VybmVsKCk7CiAJCXJldCA9IHBrdF9zZXR1cF9kZXYobmV3X2RlY29kZV9kZXYoY3RybF9jbWQuZGV2KSwgJnBrdF9kZXYpOwogCQljdHJsX2NtZC5wa3RfZGV2ID0gbmV3X2VuY29kZV9kZXYocGt0X2Rldik7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJYnJlYWs7CiAJY2FzZSBQS1RfQ1RSTF9DTURfVEVBUkRPV046CiAJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CisJCWxvY2tfa2VybmVsKCk7CiAJCXJldCA9IHBrdF9yZW1vdmVfZGV2KG5ld19kZWNvZGVfZGV2KGN0cmxfY21kLnBrdF9kZXYpKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlicmVhazsKIAljYXNlIFBLVF9DVFJMX0NNRF9TVEFUVVM6CisJCWxvY2tfa2VybmVsKCk7CiAJCXBrdF9nZXRfc3RhdHVzKCZjdHJsX2NtZCk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9UVFk7CkBAIC0zMDUzLDcgKzMwNjcsNyBAQAogCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBrdF9jdGxfZm9wcyA9IHsKLQkuaW9jdGwJID0gcGt0X2N0bF9pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJID0gcGt0X2N0bF9pb2N0bCwKIAkub3duZXIJID0gVEhJU19NT0RVTEUsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwppbmRleCBmMmZmZjU3Li45YWUwNWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCisrKyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Nkcm9tLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CkBAIC0xNTMsNiArMTU0LDQwIEBACiAJcmV0dXJuIDA7CiB9CiAKK2ludCBibGtpZl9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZXAsCisJCXVuc2lnbmVkIGNvbW1hbmQsIHVuc2lnbmVkIGxvbmcgYXJndW1lbnQpCit7CisJc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8gPQorCQlpbm9kZS0+aV9iZGV2LT5iZF9kaXNrLT5wcml2YXRlX2RhdGE7CisJaW50IGk7CisKKwlkZXZfZGJnKCZpbmZvLT54YmRldi0+ZGV2LCAiY29tbWFuZDogMHgleCwgYXJndW1lbnQ6IDB4JWx4XG4iLAorCQljb21tYW5kLCAobG9uZylhcmd1bWVudCk7CisKKwlzd2l0Y2ggKGNvbW1hbmQpIHsKKwljYXNlIENEUk9NTVVMVElTRVNTSU9OOgorCQlkZXZfZGJnKCZpbmZvLT54YmRldi0+ZGV2LCAiRklYTUU6IHN1cHBvcnQgbXVsdGlzZXNzaW9uIENEcyBsYXRlclxuIik7CisJCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc3RydWN0IGNkcm9tX211bHRpc2Vzc2lvbik7IGkrKykKKwkJCWlmIChwdXRfdXNlcigwLCAoY2hhciBfX3VzZXIgKikoYXJndW1lbnQgKyBpKSkpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCXJldHVybiAwOworCisJY2FzZSBDRFJPTV9HRVRfQ0FQQUJJTElUWTogeworCQlzdHJ1Y3QgZ2VuZGlzayAqZ2QgPSBpbmZvLT5nZDsKKwkJaWYgKGdkLT5mbGFncyAmIEdFTkhEX0ZMX0NEKQorCQkJcmV0dXJuIDA7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRlZmF1bHQ6CisJCS8qcHJpbnRrKEtFUk5fQUxFUlQgImlvY3RsICUwOHggbm90IHN1cHBvcnRlZCBieSBYZW4gYmxrZGV2XG4iLAorCQkgIGNvbW1hbmQpOyovCisJCXJldHVybiAtRUlOVkFMOyAvKiBzYW1lIHJldHVybiBhcyBuYXRpdmUgTGludXggKi8KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIGJsa2lmX3F1ZXVlX3JlcXVlc3QKICAqCkBAIC0zMjQsNiArMzU5LDkgQEAKIAkvKiBNYWtlIHN1cmUgYnVmZmVyIGFkZHJlc3NlcyBhcmUgc2VjdG9yLWFsaWduZWQuICovCiAJYmxrX3F1ZXVlX2RtYV9hbGlnbm1lbnQocnEsIDUxMSk7CiAKKwkvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIGJvdW5jZSBidWZmZXJzLiAqLworCWJsa19xdWV1ZV9ib3VuY2VfbGltaXQocnEsIEJMS19CT1VOQ0VfQU5ZKTsKKwogCWdkLT5xdWV1ZSA9IHJxOwogCiAJcmV0dXJuIDA7CkBAIC01NDYsNyArNTg0LDcgQEAKIAogCWluZm8tPnJpbmdfcmVmID0gR1JBTlRfSU5WQUxJRF9SRUY7CiAKLQlzcmluZyA9IChzdHJ1Y3QgYmxraWZfc3JpbmcgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJc3JpbmcgPSAoc3RydWN0IGJsa2lmX3NyaW5nICopX19nZXRfZnJlZV9wYWdlKEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCFzcmluZykgewogCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwgLUVOT01FTSwgImFsbG9jYXRpbmcgc2hhcmVkIHJpbmciKTsKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC03MDMsNyArNzQxLDggQEAKIAlpbnQgajsKIAogCS8qIFN0YWdlIDE6IE1ha2UgYSBzYWZlIGNvcHkgb2YgdGhlIHNoYWRvdyBzdGF0ZS4gKi8KLQljb3B5ID0ga21hbGxvYyhzaXplb2YoaW5mby0+c2hhZG93KSwgR0ZQX0tFUk5FTCk7CisJY29weSA9IGttYWxsb2Moc2l6ZW9mKGluZm8tPnNoYWRvdyksCisJCSAgICAgICBHRlBfTk9JTyB8IF9fR0ZQX1JFUEVBVCB8IF9fR0ZQX0hJR0gpOwogCWlmICghY29weSkKIAkJcmV0dXJuIC1FTk9NRU07CiAJbWVtY3B5KGNvcHksIGluZm8tPnNoYWRvdywgc2l6ZW9mKGluZm8tPnNoYWRvdykpOwpAQCAtOTU5LDcgKzk5OCw3IEBACiAJCXN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYgPSBpbmZvLT54YmRldjsKIAkJZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUgPSB4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoZGV2LT5vdGhlcmVuZCk7CiAKLQkJaWYgKHN0YXRlID09IFhlbmJ1c1N0YXRlQ2xvc2luZykKKwkJaWYgKHN0YXRlID09IFhlbmJ1c1N0YXRlQ2xvc2luZyAmJiBpbmZvLT5pc19yZWFkeSkKIAkJCWJsa2Zyb250X2Nsb3NpbmcoZGV2KTsKIAl9CiAJcmV0dXJuIDA7CkBAIC05NzEsNiArMTAxMCw3IEBACiAJLm9wZW4gPSBibGtpZl9vcGVuLAogCS5yZWxlYXNlID0gYmxraWZfcmVsZWFzZSwKIAkuZ2V0Z2VvID0gYmxraWZfZ2V0Z2VvLAorCS5pb2N0bCA9IGJsa2lmX2lvY3RsLAogfTsKIAogCkBAIC0xMDA2LDcgKzEwNDYsNyBAQAogbW9kdWxlX2luaXQoeGxibGtfaW5pdCk7CiAKIAotc3RhdGljIHZvaWQgeGxibGtfZXhpdCh2b2lkKQorc3RhdGljIHZvaWQgX19leGl0IHhsYmxrX2V4aXQodm9pZCkKIHsKIAlyZXR1cm4geGVuYnVzX3VucmVnaXN0ZXJfZHJpdmVyKCZibGtmcm9udCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9iZnVzYi5jIGIvZHJpdmVycy9ibHVldG9vdGgvYmZ1c2IuYwppbmRleCBiOTkwODA1Li4wYzIxMWFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2JsdWV0b290aC9iZnVzYi5jCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2JmdXNiLmMKQEAgLTU2Niw3ICs1NjYsOCBAQAogCXJldHVybiAtRU5PSU9DVExDTUQ7CiB9CiAKLXN0YXRpYyBpbnQgYmZ1c2JfbG9hZF9maXJtd2FyZShzdHJ1Y3QgYmZ1c2JfZGF0YSAqZGF0YSwgdW5zaWduZWQgY2hhciAqZmlybXdhcmUsIGludCBjb3VudCkKK3N0YXRpYyBpbnQgYmZ1c2JfbG9hZF9maXJtd2FyZShzdHJ1Y3QgYmZ1c2JfZGF0YSAqZGF0YSwKKwkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgaW50IGNvdW50KQogewogCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKIAlpbnQgZXJyLCBwaXBlLCBsZW4sIHNpemUsIHNlbnQgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnQzY19jcy5jIGIvZHJpdmVycy9ibHVldG9vdGgvYnQzY19jcy5jCmluZGV4IDc3MDNkNmUuLjU5M2I3YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0M2NfY3MuYworKysgYi9kcml2ZXJzL2JsdWV0b290aC9idDNjX2NzLmMKQEAgLTQ3MCw3ICs0NzAsOCBAQAogLyogPT09PT09PT09PT09PT09PT09PT09PT09IENhcmQgc2VydmljZXMgSENJIGludGVyYWN0aW9uID09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCiAKLXN0YXRpYyBpbnQgYnQzY19sb2FkX2Zpcm13YXJlKGJ0M2NfaW5mb190ICppbmZvLCB1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgaW50IGNvdW50KQorc3RhdGljIGludCBidDNjX2xvYWRfZmlybXdhcmUoYnQzY19pbmZvX3QgKmluZm8sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLAorCQkJICAgICAgaW50IGNvdW50KQogewogCWNoYXIgKnB0ciA9IChjaGFyICopIGZpcm13YXJlOwogCWNoYXIgYls5XTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV92aGNpLmMgYi9kcml2ZXJzL2JsdWV0b290aC9oY2lfdmhjaS5jCmluZGV4IDA2Mzg3MzAuLmQ5NzcwMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV92aGNpLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvaGNpX3ZoY2kuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KQEAgLTI2Myw5ICsyNjQsMTEgQEAKIAlza2JfcXVldWVfaGVhZF9pbml0KCZkYXRhLT5yZWFkcSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZGF0YS0+cmVhZF93YWl0KTsKIAorCWxvY2tfa2VybmVsKCk7CiAJaGRldiA9IGhjaV9hbGxvY19kZXYoKTsKIAlpZiAoIWhkZXYpIHsKIAkJa2ZyZWUoZGF0YSk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCkBAIC0yODYsMTAgKzI4OSwxMiBAQAogCQlCVF9FUlIoIkNhbid0IHJlZ2lzdGVyIEhDSSBkZXZpY2UiKTsKIAkJa2ZyZWUoZGF0YSk7CiAJCWhjaV9mcmVlX2RldihoZGV2KTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGRhdGE7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogfQpAQCAtMzEzLDE4ICszMTgsMjEgQEAKIHN0YXRpYyBpbnQgdmhjaV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG9uKQogewogCXN0cnVjdCB2aGNpX2RhdGEgKmRhdGEgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0JaW50IGVycjsKKwlpbnQgZXJyID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJZXJyID0gZmFzeW5jX2hlbHBlcihmZCwgZmlsZSwgb24sICZkYXRhLT5mYXN5bmMpOwogCWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOworCQlnb3RvIG91dDsKIAogCWlmIChvbikKIAkJZGF0YS0+ZmxhZ3MgfD0gVkhDSV9GQVNZTkM7CiAJZWxzZQogCQlkYXRhLT5mbGFncyAmPSB+VkhDSV9GQVNZTkM7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmhjaV9mb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jZHJvbS9jZHJvbS5jIGIvZHJpdmVycy9jZHJvbS9jZHJvbS5jCmluZGV4IDY5ZjI2ZWIuLmE1ZGEzNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2Ryb20vY2Ryb20uYworKysgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMKQEAgLTQ2MSwzNyArNDYxLDI3IEBACiAJCQkgIHN0cnVjdCBtZWRpYV9ldmVudF9kZXNjICptZWQpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7Ci0Jc3RydWN0IGV2ZW50X2hlYWRlciAqZWg7Ci0JaW50IHJldCA9IDE7CisJdW5zaWduZWQgY2hhciBidWZmZXJbOF07CisJc3RydWN0IGV2ZW50X2hlYWRlciAqZWggPSAoc3RydWN0IGV2ZW50X2hlYWRlciAqKSBidWZmZXI7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDgsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWVoID0gKHN0cnVjdCBldmVudF9oZWFkZXIgKilidWZmZXI7Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCA4LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLmNtZFswXSA9IEdQQ01EX0dFVF9FVkVOVF9TVEFUVVNfTk9USUZJQ0FUSU9OOwogCWNnYy5jbWRbMV0gPSAxOwkJLyogSU1NRUQgKi8KIAljZ2MuY21kWzRdID0gMSA8PCA0OwkvKiBtZWRpYSBldmVudCAqLwotCWNnYy5jbWRbOF0gPSA4OworCWNnYy5jbWRbOF0gPSBzaXplb2YoYnVmZmVyKTsKIAljZ2MucXVpZXQgPSAxOwogCiAJaWYgKGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIDE7CiAKIAlpZiAoYmUxNl90b19jcHUoZWgtPmRhdGFfbGVuKSA8IHNpemVvZigqbWVkKSkKLQkJZ290byBlcnI7CisJCXJldHVybiAxOwogCiAJaWYgKGVoLT5uZWEgfHwgZWgtPm5vdGlmaWNhdGlvbl9jbGFzcyAhPSAweDQpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gMTsKIAotCW1lbWNweShtZWQsIGJ1ZmZlciArIHNpemVvZigqZWgpLCBzaXplb2YoKm1lZCkpOwotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmZmVyKTsKLQlyZXR1cm4gcmV0OworCW1lbWNweShtZWQsICZidWZmZXJbc2l6ZW9mKCplaCldLCBzaXplb2YoKm1lZCkpOworCXJldHVybiAwOwogfQogCiAvKgpAQCAtNTAxLDgyICs0OTEsNjggQEAKIHN0YXRpYyBpbnQgY2Ryb21fbXJ3X3Byb2JlX3BjKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOwotCWludCByZXQgPSAxOworCWNoYXIgYnVmZmVyWzE2XTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMTYsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKIAljZ2MudGltZW91dCA9IEhaOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoIWNkcm9tX21vZGVfc2Vuc2UoY2RpLCAmY2djLCBNUldfTU9ERV9QQywgMCkpIHsKIAkJY2RpLT5tcndfbW9kZV9wYWdlID0gTVJXX01PREVfUEM7Ci0JCXJldCA9IDA7CisJCXJldHVybiAwOwogCX0gZWxzZSBpZiAoIWNkcm9tX21vZGVfc2Vuc2UoY2RpLCAmY2djLCBNUldfTU9ERV9QQ19QUkUxLCAwKSkgewogCQljZGktPm1yd19tb2RlX3BhZ2UgPSBNUldfTU9ERV9QQ19QUkUxOwotCQlyZXQgPSAwOworCQlyZXR1cm4gMDsKIAl9Ci0Ja2ZyZWUoYnVmZmVyKTsKLQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBpbnQgY2Ryb21faXNfbXJ3KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBpbnQgKndyaXRlKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7CiAJc3RydWN0IG1yd19mZWF0dXJlX2Rlc2MgKm1mZDsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJdW5zaWduZWQgY2hhciBidWZmZXJbMTZdOwogCWludCByZXQ7CiAKIAkqd3JpdGUgPSAwOwotCWJ1ZmZlciA9IGttYWxsb2MoMTYsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKIAotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0NPTkZJR1VSQVRJT047CiAJY2djLmNtZFszXSA9IENERl9NUlc7Ci0JY2djLmNtZFs4XSA9IDE2OworCWNnYy5jbWRbOF0gPSBzaXplb2YoYnVmZmVyKTsKIAljZ2MucXVpZXQgPSAxOwogCiAJaWYgKChyZXQgPSBjZGktPm9wcy0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJbWZkID0gKHN0cnVjdCBtcndfZmVhdHVyZV9kZXNjICopJmJ1ZmZlcltzaXplb2Yoc3RydWN0IGZlYXR1cmVfaGVhZGVyKV07Ci0JaWYgKGJlMTZfdG9fY3B1KG1mZC0+ZmVhdHVyZV9jb2RlKSAhPSBDREZfTVJXKSB7Ci0JCXJldCA9IDE7Ci0JCWdvdG8gZXJyOwotCX0KKwlpZiAoYmUxNl90b19jcHUobWZkLT5mZWF0dXJlX2NvZGUpICE9IENERl9NUlcpCisJCXJldHVybiAxOwogCSp3cml0ZSA9IG1mZC0+d3JpdGU7CiAKIAlpZiAoKHJldCA9IGNkcm9tX21yd19wcm9iZV9wYyhjZGkpKSkgewogCQkqd3JpdGUgPSAwOworCQlyZXR1cm4gcmV0OwogCX0KLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBjZHJvbV9tcndfYmdmb3JtYXQoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGludCBjb250KQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JdW5zaWduZWQgY2hhciAqYnVmZmVyOworCXVuc2lnbmVkIGNoYXIgYnVmZmVyWzEyXTsKIAlpbnQgcmV0OwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiY2Ryb206ICVzc3RhcnRpbmcgZm9ybWF0XG4iLCBjb250ID8gIlJlIiA6ICIiKTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMTIsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQogCS8qCiAJICogRm10RGF0YSBiaXQgc2V0IChiaXQgNCksIGZvcm1hdCB0eXBlIGlzIDEKIAkgKi8KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCAxMiwgQ0dDX0RBVEFfV1JJVEUpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9XUklURSk7CiAJY2djLmNtZFswXSA9IEdQQ01EX0ZPUk1BVF9VTklUOwogCWNnYy5jbWRbMV0gPSAoMSA8PCA0KSB8IDE7CiAKQEAgLTYwMyw3ICs1NzksNiBAQAogCWlmIChyZXQpCiAJCXByaW50ayhLRVJOX0lORk8gImNkcm9tOiBiZ2Zvcm1hdCBmYWlsZWRcbiIpOwogCi0Ja2ZyZWUoYnVmZmVyKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC02NjMsMTcgKzYzOCwxNiBAQAogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7CiAJc3RydWN0IG1vZGVfcGFnZV9oZWFkZXIgKm1waDsKLQljaGFyICpidWZmZXI7CisJY2hhciBidWZmZXJbMTZdOwogCWludCByZXQsIG9mZnNldCwgc2l6ZTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMTYsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCAxNiwgQ0dDX0RBVEFfUkVBRCk7CisJY2djLmJ1ZmZlciA9IGJ1ZmZlcjsKKwljZ2MuYnVmbGVuID0gc2l6ZW9mKGJ1ZmZlcik7CiAKIAlpZiAoKHJldCA9IGNkcm9tX21vZGVfc2Vuc2UoY2RpLCAmY2djLCBjZGktPm1yd19tb2RlX3BhZ2UsIDApKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAltcGggPSAoc3RydWN0IG1vZGVfcGFnZV9oZWFkZXIgKikgYnVmZmVyOwogCW9mZnNldCA9IGJlMTZfdG9fY3B1KG1waC0+ZGVzY19sZW5ndGgpOwpAQCAtNjgzLDcwICs2NTcsNTUgQEAKIAljZ2MuYnVmbGVuID0gc2l6ZTsKIAogCWlmICgocmV0ID0gY2Ryb21fbW9kZV9zZWxlY3QoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiY2Ryb206ICVzOiBtcncgYWRkcmVzcyBzcGFjZSAlcyBzZWxlY3RlZFxuIiwgY2RpLT5uYW1lLCBtcndfYWRkcmVzc19zcGFjZVtzcGFjZV0pOwotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmZmVyKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX2dldF9yYW5kb21fd3JpdGFibGUoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksCiAJCQkgICAgICBzdHJ1Y3QgcndydF9mZWF0dXJlX2Rlc2MgKnJmZCkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsyNF07CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMjQsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDI0LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0NPTkZJR1VSQVRJT047CS8qIG9mdGVuIDB4NDYgKi8KIAljZ2MuY21kWzNdID0gQ0RGX1JXUlQ7CQkJLyogb2Z0ZW4gMHgwMDIwICovCi0JY2djLmNtZFs4XSA9IDI0OwkJICAgICAgICAvKiBvZnRlbiAweDE4ICovCisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwkJLyogb2Z0ZW4gMHgxOCAqLwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAltZW1jcHkocmZkLCAmYnVmZmVyW3NpemVvZihzdHJ1Y3QgZmVhdHVyZV9oZWFkZXIpXSwgc2l6ZW9mICgqcmZkKSk7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY2Ryb21faGFzX2RlZmVjdF9tZ3Qoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQljaGFyICpidWZmZXI7CisJY2hhciBidWZmZXJbMTZdOwogCV9fYmUxNiAqZmVhdHVyZV9jb2RlOwogCWludCByZXQ7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDE2LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCAxNiwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIENHQ19EQVRBX1JFQUQpOwogCiAJY2djLmNtZFswXSA9IEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OOwogCWNnYy5jbWRbM10gPSBDREZfSFdETTsKLQljZ2MuY21kWzhdID0gMTY7CisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlmZWF0dXJlX2NvZGUgPSAoX19iZTE2ICopICZidWZmZXJbc2l6ZW9mKHN0cnVjdCBmZWF0dXJlX2hlYWRlcildOwogCWlmIChiZTE2X3RvX2NwdSgqZmVhdHVyZV9jb2RlKSA9PSBDREZfSFdETSkKLQkJcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJCXJldHVybiAwOworCisJcmV0dXJuIDE7CiB9CiAKIApAQCAtODM3LDE0ICs3OTYsMTAgQEAKIHN0YXRpYyBpbnQgbW9fb3Blbl93cml0ZShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsyNTVdOwogCWludCByZXQ7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDI1NSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgNCwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsICZidWZmZXIsIDQsIENHQ19EQVRBX1JFQUQpOwogCWNnYy5xdWlldCA9IDE7CiAKIAkvKgpAQCAtODYxLDE1ICs4MTYsMTAgQEAKIAl9CiAKIAkvKiBkcml2ZSBnYXZlIHVzIG5vIGluZm8sIGxldCB0aGUgdXNlciBnbyBhaGVhZCAqLwotCWlmIChyZXQpIHsKLQkJcmV0ID0gMDsKLQkJZ290byBlcnI7Ci0JfQorCWlmIChyZXQpCisJCXJldHVybiAwOwogCi0JcmV0ID0gYnVmZmVyWzNdICYgMHg4MDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIGJ1ZmZlclszXSAmIDB4ODA7CiB9CiAKIHN0YXRpYyBpbnQgY2Ryb21fcmFtX29wZW5fd3JpdGUoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCkBAIC04OTIsMTkgKzg0MiwxNSBAQAogc3RhdGljIHZvaWQgY2Ryb21fbW1jM19wcm9maWxlKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzMyXTsKIAlpbnQgcmV0LCBtbWMzX3Byb2ZpbGU7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDMyLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMzIsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy5jbWRbMF0gPSBHUENNRF9HRVRfQ09ORklHVVJBVElPTjsKIAljZ2MuY21kWzFdID0gMDsKIAljZ2MuY21kWzJdID0gY2djLmNtZFszXSA9IDA7CQkvKiBTdGFydGluZyBGZWF0dXJlIE51bWJlciAqLwotCWNnYy5jbWRbOF0gPSAzMjsJCSAgICAgICAgLyogQWxsb2NhdGlvbiBMZW5ndGggKi8KKwljZ2MuY21kWzhdID0gc2l6ZW9mKGJ1ZmZlcik7CQkvKiBBbGxvY2F0aW9uIExlbmd0aCAqLwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKQEAgLTkxMyw3ICs4NTksNiBAQAogCQltbWMzX3Byb2ZpbGUgPSAoYnVmZmVyWzZdIDw8IDgpIHwgYnVmZmVyWzddOwogCiAJY2RpLT5tbWMzX3Byb2ZpbGUgPSBtbWMzX3Byb2ZpbGU7Ci0Ja2ZyZWUoYnVmZmVyKTsKIH0KIAogc3RhdGljIGludCBjZHJvbV9pc19kdmRfcncoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCkBAIC0xNjI4LDE1ICsxNTczLDEyIEBACiBzdGF0aWMgaW50IGR2ZF9kb19hdXRoKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfYXV0aGluZm8gKmFpKQogewogCWludCByZXQ7Ci0JdV9jaGFyICpidWY7CisJdV9jaGFyIGJ1ZlsyMF07CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgY2Ryb21fZGV2aWNlX29wcyAqY2RvID0gY2RpLT5vcHM7Ci0JcnBjX3N0YXRlX3QgKnJwY19zdGF0ZTsKKwlycGNfc3RhdGVfdCBycGNfc3RhdGU7CiAKLQlidWYgPSBremFsbG9jKDIwLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KKwltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgMCwgQ0dDX0RBVEFfUkVBRCk7CiAKIAlzd2l0Y2ggKGFpLT50eXBlKSB7CkBAIC0xNjQ3LDcgKzE1ODksNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2EuYWdpZCwgMCk7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCiAJCWFpLT5sc2EuYWdpZCA9IGJ1Zls3XSA+PiA2OwogCQkvKiBSZXR1cm5pbmcgZGF0YSwgbGV0IGhvc3QgY2hhbmdlIHN0YXRlICovCkBAIC0xNjU4LDcgKzE2MDAsNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2suYWdpZCwgMik7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCiAJCWNvcHlfa2V5KGFpLT5sc2sua2V5LCAmYnVmWzRdKTsKIAkJLyogUmV0dXJuaW5nIGRhdGEsIGxldCBob3N0IGNoYW5nZSBzdGF0ZSAqLwpAQCAtMTY2OSw3ICsxNjExLDcgQEAKIAkJc2V0dXBfcmVwb3J0X2tleSgmY2djLCBhaS0+bHNjLmFnaWQsIDEpOwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAogCQljb3B5X2NoYWwoYWktPmxzYy5jaGFsLCAmYnVmWzRdKTsKIAkJLyogUmV0dXJuaW5nIGRhdGEsIGxldCBob3N0IGNoYW5nZSBzdGF0ZSAqLwpAQCAtMTY4Niw3ICsxNjI4LDcgQEAKIAkJY2djLmNtZFsyXSA9IGFpLT5sc3RrLmxiYSA+PiAyNDsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPmxzdGsuY3BtID0gKGJ1Zls0XSA+PiA3KSAmIDE7CiAJCWFpLT5sc3RrLmNwX3NlYyA9IChidWZbNF0gPj4gNikgJiAxOwpAQCAtMTcwMCw3ICsxNjQyLDcgQEAKIAkJc2V0dXBfcmVwb3J0X2tleSgmY2djLCBhaS0+bHNhc2YuYWdpZCwgNSk7CiAJCQogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPmxzYXNmLmFzZiA9IGJ1Zls3XSAmIDE7CiAJCWJyZWFrOwpAQCAtMTcxMyw3ICsxNjU1LDcgQEAKIAkJY29weV9jaGFsKCZidWZbNF0sIGFpLT5oc2MuY2hhbCk7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCiAJCWFpLT50eXBlID0gRFZEX0xVX1NFTkRfS0VZMTsKIAkJYnJlYWs7CkBAIC0xNzI2LDcgKzE2NjgsNyBAQAogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkgewogCQkJYWktPnR5cGUgPSBEVkRfQVVUSF9GQUlMVVJFOwotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCQl9CiAJCWFpLT50eXBlID0gRFZEX0FVVEhfRVNUQUJMSVNIRUQ7CiAJCWJyZWFrOwpAQCAtMTczNywyMyArMTY3OSwyNCBAQAogCQljZGluZm8oQ0RfRFZELCAiZW50ZXJpbmcgRFZEX0lOVkFMSURBVEVfQUdJRFxuIik7IAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2EuYWdpZCwgMHgzZik7CiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAkJYnJlYWs7CiAKIAkvKiBHZXQgcmVnaW9uIHNldHRpbmdzICovCiAJY2FzZSBEVkRfTFVfU0VORF9SUENfU1RBVEU6CiAJCWNkaW5mbyhDRF9EVkQsICJlbnRlcmluZyBEVkRfTFVfU0VORF9SUENfU1RBVEVcbiIpOwogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIDAsIDgpOworCQltZW1zZXQoJnJwY19zdGF0ZSwgMCwgc2l6ZW9mKHJwY19zdGF0ZV90KSk7CisJCWNnYy5idWZmZXIgPSAoY2hhciAqKSAmcnBjX3N0YXRlOwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAotCQlycGNfc3RhdGUgPSAocnBjX3N0YXRlX3QgKilidWY7Ci0JCWFpLT5scnBjcy50eXBlID0gcnBjX3N0YXRlLT50eXBlX2NvZGU7Ci0JCWFpLT5scnBjcy52cmEgPSBycGNfc3RhdGUtPnZyYTsKLQkJYWktPmxycGNzLnVjY2EgPSBycGNfc3RhdGUtPnVjY2E7Ci0JCWFpLT5scnBjcy5yZWdpb25fbWFzayA9IHJwY19zdGF0ZS0+cmVnaW9uX21hc2s7Ci0JCWFpLT5scnBjcy5ycGNfc2NoZW1lID0gcnBjX3N0YXRlLT5ycGNfc2NoZW1lOworCQlhaS0+bHJwY3MudHlwZSA9IHJwY19zdGF0ZS50eXBlX2NvZGU7CisJCWFpLT5scnBjcy52cmEgPSBycGNfc3RhdGUudnJhOworCQlhaS0+bHJwY3MudWNjYSA9IHJwY19zdGF0ZS51Y2NhOworCQlhaS0+bHJwY3MucmVnaW9uX21hc2sgPSBycGNfc3RhdGUucmVnaW9uX21hc2s7CisJCWFpLT5scnBjcy5ycGNfc2NoZW1lID0gcnBjX3N0YXRlLnJwY19zY2hlbWU7CiAJCWJyZWFrOwogCiAJLyogU2V0IHJlZ2lvbiBzZXR0aW5ncyAqLwpAQCAtMTc2NCwyMyArMTcwNywyMCBAQAogCQlidWZbNF0gPSBhaS0+aHJwY3MucGRyYzsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKIAkJY2RpbmZvKENEX1dBUk5JTkcsICJJbnZhbGlkIERWRCBrZXkgaW9jdGwgKCVkKVxuIiwgYWktPnR5cGUpOwotCQlyZXQgPSAtRU5PVFRZOwotCQlnb3RvIGVycjsKKwkJcmV0dXJuIC1FTk9UVFk7CiAJfQotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmKTsKLQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZHZkX3JlYWRfcGh5c2ljYWwoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGR2ZF9zdHJ1Y3QgKnMpCiB7Ci0JdW5zaWduZWQgY2hhciAqYnVmLCAqYmFzZTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZlsyMV0sICpiYXNlOwogCXN0cnVjdCBkdmRfbGF5ZXIgKmxheWVyOwogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7CiAJc3RydWN0IGNkcm9tX2RldmljZV9vcHMgKmNkbyA9IGNkaS0+b3BzOwpAQCAtMTc4OSwxMSArMTcyOSw3IEBACiAJaWYgKGxheWVyX251bSA+PSBEVkRfTEFZRVJTKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWJ1ZiA9IGttYWxsb2MoMjEsIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIDIxLCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCBzaXplb2YoYnVmKSwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLmNtZFswXSA9IEdQQ01EX1JFQURfRFZEX1NUUlVDVFVSRTsKIAljZ2MuY21kWzZdID0gbGF5ZXJfbnVtOwogCWNnYy5jbWRbN10gPSBzLT50eXBlOwpAQCAtMTgwNSw3ICsxNzQxLDcgQEAKIAljZ2MucXVpZXQgPSAxOwogCiAJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCWJhc2UgPSAmYnVmWzRdOwogCWxheWVyID0gJnMtPnBoeXNpY2FsLmxheWVyW2xheWVyX251bV07CkBAIC0xODI5LDI0ICsxNzY1LDE3IEBACiAJbGF5ZXItPmVuZF9zZWN0b3JfbDAgPSBiYXNlWzEzXSA8PCAxNiB8IGJhc2VbMTRdIDw8IDggfCBiYXNlWzE1XTsKIAlsYXllci0+YmNhID0gYmFzZVsxNl0gPj4gNzsKIAotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGR2ZF9yZWFkX2NvcHlyaWdodChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgZHZkX3N0cnVjdCAqcykKIHsKIAlpbnQgcmV0OwotCXVfY2hhciAqYnVmOworCXVfY2hhciBidWZbOF07CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgY2Ryb21fZGV2aWNlX29wcyAqY2RvID0gY2RpLT5vcHM7CiAKLQlidWYgPSBrbWFsbG9jKDgsIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIDgsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIHNpemVvZihidWYpLCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFOwogCWNnYy5jbWRbNl0gPSBzLT5jb3B5cmlnaHQubGF5ZXJfbnVtOwogCWNnYy5jbWRbN10gPSBzLT50eXBlOwpAQCAtMTg1NCwxNSArMTc4MywxMiBAQAogCWNnYy5jbWRbOV0gPSBjZ2MuYnVmbGVuICYgMHhmZjsKIAogCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlzLT5jb3B5cmlnaHQuY3BzdCA9IGJ1Zls0XTsKIAlzLT5jb3B5cmlnaHQucm1pID0gYnVmWzVdOwogCi0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZHZkX3JlYWRfZGlzY2tleShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgZHZkX3N0cnVjdCAqcykKQEAgLTE4OTQsMzMgKzE4MjAsMjYgQEAKIHN0YXRpYyBpbnQgZHZkX3JlYWRfYmNhKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQogewogCWludCByZXQ7Ci0JdV9jaGFyICpidWY7CisJdV9jaGFyIGJ1Zls0ICsgMTg4XTsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKIAotCWJ1ZiA9IGttYWxsb2MoNCArIDE4OCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgNCArIDE4OCwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1JFQUQpOwogCWNnYy5jbWRbMF0gPSBHUENNRF9SRUFEX0RWRF9TVFJVQ1RVUkU7CiAJY2djLmNtZFs3XSA9IHMtPnR5cGU7CiAJY2djLmNtZFs5XSA9IGNnYy5idWZsZW4gJiAweGZmOwogCiAJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCXMtPmJjYS5sZW4gPSBidWZbMF0gPDwgOCB8IGJ1ZlsxXTsKIAlpZiAocy0+YmNhLmxlbiA8IDEyIHx8IHMtPmJjYS5sZW4gPiAxODgpIHsKIAkJY2RpbmZvKENEX1dBUk5JTkcsICJSZWNlaXZlZCBpbnZhbGlkIEJDQSBsZW5ndGggKCVkKVxuIiwgcy0+YmNhLmxlbik7Ci0JCXJldCA9IC1FSU87Ci0JCWdvdG8gZXJyOworCQlyZXR1cm4gLUVJTzsKIAl9CiAJbWVtY3B5KHMtPmJjYS52YWx1ZSwgJmJ1Zls0XSwgcy0+YmNhLmxlbik7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkdmRfcmVhZF9tYW51ZmFjdChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgZHZkX3N0cnVjdCAqcykKQEAgLTIwMjAsMTMgKzE5MzksOSBAQAogewogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclszMl07CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMzIsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQogCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfUkVBRF9TVUJDSEFOTkVMOwogCWNnYy5jbWRbMV0gPSAyOyAgICAgLyogTVNGIGFkZHJlc3NpbmcgKi8KQEAgLTIwMzUsNyArMTk1MCw3IEBACiAJY2djLmNtZFs4XSA9IDE2OwogCiAJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCXN1YmNobmwtPmNkc2NfYXVkaW9zdGF0dXMgPSBjZ2MuYnVmZmVyWzFdOwogCXN1YmNobmwtPmNkc2NfZm9ybWF0ID0gQ0RST01fTVNGOwpAQCAtMjA1MCwxMCArMTk2NSw3IEBACiAJc3ViY2hubC0+Y2RzY19hYnNhZGRyLm1zZi5zZWNvbmQgPSBjZ2MuYnVmZmVyWzEwXTsKIAlzdWJjaG5sLT5jZHNjX2Fic2FkZHIubXNmLmZyYW1lID0gY2djLmJ1ZmZlclsxMV07CiAKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9LY29uZmlnIGIvZHJpdmVycy9jaGFyL0tjb25maWcKaW5kZXggZDMwN2JmMi4uMmQ4NTRiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL0tjb25maWcKKysrIGIvZHJpdmVycy9jaGFyL0tjb25maWcKQEAgLTc0OSw3ICs3NDksNyBAQAogaWYgUlRDX0xJQj1uCiAKIGNvbmZpZyBSVEMKLQl0cmlzdGF0ZSAiRW5oYW5jZWQgUmVhbCBUaW1lIENsb2NrIFN1cHBvcnQiCisJdHJpc3RhdGUgIkVuaGFuY2VkIFJlYWwgVGltZSBDbG9jayBTdXBwb3J0IChsZWdhY3kgUEMgUlRDIGRyaXZlcikiCiAJZGVwZW5kcyBvbiAhUFBDICYmICFQQVJJU0MgJiYgIUlBNjQgJiYgIU02OEsgJiYgIVNQQVJDICYmICFGUlYgXAogCQkJJiYgIUFSTSAmJiAhU1VQRVJIICYmICFTMzkwICYmICFBVlIzMgogCS0tLWhlbHAtLS0KQEAgLTEwMzYsOSArMTAzNiw5IEBACiAJICBub24tcGVyaW9kaWMgYW5kL29yIHBlcmlvZGljLgogCiBjb25maWcgSFBFVF9SVENfSVJRCi0JYm9vbCAiSFBFVCBDb250cm9sIFJUQyBJUlEiIGlmICFIUEVUX0VNVUxBVEVfUlRDCi0JZGVmYXVsdCBuCi0JZGVwZW5kcyBvbiBIUEVUCisJYm9vbAorCWRlZmF1bHQgSFBFVF9FTVVMQVRFX1JUQworCWRlcGVuZHMgb24gUlRDICYmIEhQRVQKIAloZWxwCiAJICBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IHdpbGwgZGlzYWJsZSBSVENfSVJRIGluIGRyaXZlcnMvY2hhci9ydGMuYy4gSXQKIAkgIGlzIGFzc3VtZWQgdGhlIHBsYXRmb3JtIGNhbGxlZCBocGV0X2FsbG9jIHdpdGggdGhlIFJUQyBJUlEgdmFsdWVzIGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL01ha2VmaWxlIGIvZHJpdmVycy9jaGFyL01ha2VmaWxlCmluZGV4IDRjMWM1ODQuLjgxNjMwYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUKQEAgLTEwMSw3ICsxMDEsNiBAQAogCiBvYmotJChDT05GSUdfTVdBVkUpCQkrPSBtd2F2ZS8KIG9iai0kKENPTkZJR19BR1ApCQkrPSBhZ3AvCi1vYmotJChDT05GSUdfRFJNKQkJKz0gZHJtLwogb2JqLSQoQ09ORklHX1BDTUNJQSkJCSs9IHBjbWNpYS8KIG9iai0kKENPTkZJR19JUE1JX0hBTkRMRVIpCSs9IGlwbWkvCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYWdwLmggYi9kcml2ZXJzL2NoYXIvYWdwL2FncC5oCmluZGV4IDk5ZTZhNDAuLjgxZTE0YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvYWdwLmgKKysrIGIvZHJpdmVycy9jaGFyL2FncC9hZ3AuaApAQCAtOTksOCArOTksOCBAQAogCWNvbnN0IHZvaWQgKmFwZXJ0dXJlX3NpemVzOwogCWludCBudW1fYXBlcnR1cmVfc2l6ZXM7CiAJZW51bSBhcGVyX3NpemVfdHlwZSBzaXplX3R5cGU7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOwotCWludCBuZWVkc19zY3JhdGNoX3BhZ2U7CisJYm9vbCBjYW50X3VzZV9hcGVydHVyZTsKKwlib29sIG5lZWRzX3NjcmF0Y2hfcGFnZTsKIAljb25zdCBzdHJ1Y3QgZ2F0dF9tYXNrICptYXNrczsKIAlpbnQgKCpmZXRjaF9zaXplKSh2b2lkKTsKIAlpbnQgKCpjb25maWd1cmUpKHZvaWQpOwpAQCAtMjc4LDcgKzI3OCw3IEBACiB2b2lkIGFncF9mcmVlX2tleShpbnQga2V5KTsKIGludCBhZ3BfbnVtX2VudHJpZXModm9pZCk7CiB1MzIgYWdwX2NvbGxlY3RfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2UsIHUzMiBtb2RlLCB1MzIgY29tbWFuZCk7Ci12b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgY29tbWFuZCwgaW50IGFncF92Myk7Cit2b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgY29tbWFuZCwgYm9vbCBhZ3BfdjMpOwogaW50IGFncF8zXzVfZW5hYmxlKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSk7CiB2b2lkIGdsb2JhbF9jYWNoZV9mbHVzaCh2b2lkKTsKIHZvaWQgZ2V0X2FncF92ZXJzaW9uKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2FscGhhLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9hbHBoYS1hZ3AuYwppbmRleCBlNzdjMTc4Li41ZGE4OWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FscGhhLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvYWxwaGEtYWdwLmMKQEAgLTgwLDcgKzgwLDcgQEAKIAlhZ3AtPm1vZGUuYml0cy5lbmFibGUgPSAxOwogCWFncC0+b3BzLT5jb25maWd1cmUoYWdwKTsKIAotCWFncF9kZXZpY2VfY29tbWFuZChhZ3AtPm1vZGUubHcsIDApOworCWFncF9kZXZpY2VfY29tbWFuZChhZ3AtPm1vZGUubHcsIGZhbHNlKTsKIH0KIAogc3RhdGljIGludCBhbHBoYV9jb3JlX2FncF9pbnNlcnRfbWVtb3J5KHN0cnVjdCBhZ3BfbWVtb3J5ICptZW0sIG9mZl90IHBnX3N0YXJ0LApAQCAtMTI2LDcgKzEyNiw3IEBACiAJLmFwZXJ0dXJlX3NpemVzCQk9IGFscGhhX2NvcmVfYWdwX3NpemVzLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSAxLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAotCS5jYW50X3VzZV9hcGVydHVyZQk9IDEsCisJLmNhbnRfdXNlX2FwZXJ0dXJlCT0gdHJ1ZSwKIAkubWFza3MJCQk9IE5VTEwsCiAKIAkuZmV0Y2hfc2l6ZQkJPSBhbHBoYV9jb3JlX2FncF9mZXRjaF9zaXplLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQtazctYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwppbmRleCA5NmJkYjkyLi4zOWEwNzE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwpAQCAtMzE0LDkgKzMxNCw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvYW1kNjQtYWdwLmMKaW5kZXggZDgyMDBhYy4uNDgxZmZlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZDY0LWFncC5jCkBAIC0xNiwyOCArMTYsOSBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CQkvKiBQQUdFX1NJWkUgKi8KICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9rOC5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CiAjaW5jbHVkZSAiYWdwLmgiCiAKLS8qIFBURSBiaXRzLiAqLwotI2RlZmluZSBHUFRFX1ZBTElECTEKLSNkZWZpbmUgR1BURV9DT0hFUkVOVAkyCi0KLS8qIEFwZXJ0dXJlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KLSNkZWZpbmUgR0FSVEVOCQkoMTw8MCkKLSNkZWZpbmUgRElTR0FSVENQVQkoMTw8NCkKLSNkZWZpbmUgRElTR0FSVElPCSgxPDw1KQotCi0vKiBHQVJUIGNhY2hlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KLSNkZWZpbmUgSU5WR0FSVAkJKDE8PDApCi0jZGVmaW5lIEdBUlRQVEVFUlIJKDE8PDEpCi0KLS8qIEs4IE9uLWNwdSBHQVJUIHJlZ2lzdGVycyAqLwotI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwJMHg5MAotI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFCTB4OTQKLSNkZWZpbmUgQU1ENjRfR0FSVFRBQkxFQkFTRQkweDk4Ci0jZGVmaW5lIEFNRDY0X0dBUlRDQUNIRUNUTAkweDljCi0jZGVmaW5lIEFNRDY0X0dBUlRFTgkJKDE8PDApCi0KIC8qIE5WSURJQSBLOCByZWdpc3RlcnMgKi8KICNkZWZpbmUgTlZJRElBX1g4Nl82NF8wX0FQQkFTRQkJMHgxMAogI2RlZmluZSBOVklESUFfWDg2XzY0XzFfQVBCQVNFMQkJMHg1MApAQCAtOTAsOSArNzEsOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWdsb2JhbF9jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTE2NSwyOSArMTQ2LDE4IEBACiAgKiBJbiBhIG11bHRpcHJvY2Vzc29yIHg4Ni02NCBzeXN0ZW0sIHRoaXMgZnVuY3Rpb24gZ2V0cwogICogY2FsbGVkIG9uY2UgZm9yIGVhY2ggQ1BVLgogICovCi1zdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZSAoc3RydWN0IHBjaV9kZXYgKmhhbW1lciwgdTY0IGdhdHRfdGFibGUpCitzdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqaGFtbWVyLCB1NjQgZ2F0dF90YWJsZSkKIHsKIAl1NjQgYXBlcnR1cmViYXNlOwogCXUzMiB0bXA7Ci0JdTY0IGFkZHIsIGFwZXJfYmFzZTsKKwl1NjQgYXBlcl9iYXNlOwogCiAJLyogQWRkcmVzcyB0byBtYXAgdG8gKi8KLQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CiAJYXBlcnR1cmViYXNlID0gdG1wIDw8IDI1OwogCWFwZXJfYmFzZSA9IChhcGVydHVyZWJhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKTsKIAotCS8qIGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmdzIHRhYmxlICovCi0JYWRkciA9ICh1NjQpIGdhdHRfdGFibGU7Ci0JYWRkciA+Pj0gMTI7Ci0JdG1wID0gKHUzMikgYWRkcjw8NDsKLQl0bXAgJj0gfjB4ZjsKLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChoYW1tZXIsIEFNRDY0X0dBUlRUQUJMRUJBU0UsIHRtcCk7Ci0KLQkvKiBFbmFibGUgR0FSVCB0cmFuc2xhdGlvbiBmb3IgdGhpcyBoYW1tZXIuICovCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmdG1wKTsKLQl0bXAgfD0gR0FSVEVOOwotCXRtcCAmPSB+KERJU0dBUlRDUFUgfCBESVNHQVJUSU8pOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQoaGFtbWVyLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIHRtcCk7CisJZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oaGFtbWVyLCBnYXR0X3RhYmxlKTsKIAogCXJldHVybiBhcGVyX2Jhc2U7CiB9CkBAIC0yMjYsOSArMTk2LDkgQEAKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9rOF9ub3J0aGJyaWRnZXM7IGkrKykgewogCQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOwogCQkvKiBkaXNhYmxlIGdhcnQgdHJhbnNsYXRpb24gKi8KLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CiAJCXRtcCAmPSB+QU1ENjRfR0FSVEVOOwotCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKIAl9CiB9CiAKQEAgLTI1OCwyNCArMjI4LDEwIEBACiB9OwogCiAvKiBTb21lIGJhc2ljIHNhbml0eSBjaGVja3MgZm9yIHRoZSBhcGVydHVyZS4gKi8KLXN0YXRpYyBpbnQgX19kZXZpbml0IGFwZXJ0dXJlX3ZhbGlkKHU2NCBhcGVyLCB1MzIgc2l6ZSkKK3N0YXRpYyBpbnQgX19kZXZpbml0IGFncF9hcGVydHVyZV92YWxpZCh1NjQgYXBlciwgdTMyIHNpemUpCiB7Ci0JaWYgKGFwZXIgPT0gMCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJObyBhcGVydHVyZVxuIik7CisJaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCBzaXplLCAzMioxMDI0KjEwMjQpKQogCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHNpemUgPCAzMioxMDI0KjEwMjQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgdG9vIHNtYWxsICglZCBNQilcbiIsIHNpemU+PjIwKTsKLQkJcmV0dXJuIDA7Ci0JfQotICAgICAgIGlmICgodTY0KWFwZXIgKyBzaXplID4gMHgxMDAwMDAwMDBVTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgb3V0IG9mIGJvdW5kc1xuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXIsIGFwZXIgKyBzaXplLCBFODIwX1JBTSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgcG9pbnRpbmcgdG8gUkFNXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQogCiAJLyogUmVxdWVzdCB0aGUgQXBlcnR1cmUuIFRoaXMgY2F0Y2hlcyBjYXNlcyB3aGVuIHNvbWVvbmUgZWxzZQogCSAgIGFscmVhZHkgcHV0IGEgbWFwcGluZyBpbiB0aGVyZSAtIGhhcHBlbnMgd2l0aCBzb21lIHZlcnkgYnJva2VuIEJJT1MKQEAgLTMwOCwxMSArMjY0LDExIEBACiAJdTMyIG5iX29yZGVyLCBuYl9iYXNlOwogCXUxNiBhcHNpemU7CiAKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQobmIsIDB4OTAsICZuYl9vcmRlcik7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKG5iLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsICZuYl9vcmRlcik7CiAJbmJfb3JkZXIgPSAobmJfb3JkZXIgPj4gMSkgJiA3OwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgMHg5NCwgJm5iX2Jhc2UpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJm5iX2Jhc2UpOwogCW5iX2FwZXIgPSBuYl9iYXNlIDw8IDI1OwotCWlmIChhcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CisJaWYgKGFncF9hcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMzMxLDEyICsyODcsMjMgQEAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoYWdwLCAweDEwLCAmYXBlcl9sb3cpOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChhZ3AsIDB4MTQsICZhcGVyX2hpKTsKIAlhcGVyID0gKGFwZXJfbG93ICYgfigoMTw8MjIpLTEpKSB8ICgodTY0KWFwZXJfaGkgPDwgMzIpOworCisJLyoKKwkgKiBPbiBzb21lIHNpY2sgY2hpcHMgQVBTSVpFIGlzIDAuIFRoaXMgbWVhbnMgaXQgd2FudHMgNEcKKwkgKiBzbyBsZXQgZG91YmxlIGNoZWNrIHRoYXQgb3JkZXIsIGFuZCBsZXRzIHRydXN0IHRoZSBBTUQgTkIgc2V0dGluZ3MKKwkgKi8KKwlpZiAob3JkZXIgPj0wICYmIGFwZXIgKyAoMzJVTEw8PCgyMCArIG9yZGVyKSkgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBzaXplICV1IE1CIGlzIG5vdCByaWdodCwgdXNpbmcgc2V0dGluZ3MgZnJvbSBOQlxuIiwKKwkJCQkgIDMyIDw8IG9yZGVyKTsKKwkJb3JkZXIgPSBuYl9vcmRlcjsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPIFBGWCAiQXBlcnR1cmUgZnJvbSBBR1AgQCAlTHggc2l6ZSAldSBNQlxuIiwgYXBlciwgMzIgPDwgb3JkZXIpOwotCWlmIChvcmRlciA8IDAgfHwgIWFwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCisJaWYgKG9yZGVyIDwgMCB8fCAhYWdwX2FwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCiAJCXJldHVybiAtMTsKIAotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTAsIG9yZGVyIDw8IDEpOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTQsIGFwZXIgPj4gMjUpOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgb3JkZXIgPDwgMSk7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgYXBlciA+PiAyNSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYXRpLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKaW5kZXggNTVjOTdmNi4uM2E0NTY2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKQEAgLTI4NywxMCArMjg3LDEwIEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJLypDQUNIRV9GTFVTSCgpOyAqLwogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAKIAlmb3IgKGkgPSAwLCBqID0gcGdfc3RhcnQ7IGkgPCBtZW0tPnBhZ2VfY291bnQ7IGkrKywgaisrKSB7CkBAIC00NTgsNiArNDU4LDEwIEBACiAJCS5jaGlwc2V0X25hbWUJPSAiSUdQOTEwMC9NIiwKIAl9LAogCXsKKwkJLmRldmljZV9pZAk9IFBDSV9ERVZJQ0VfSURfQVRJX1JTMzUwXzEzMywKKwkJLmNoaXBzZXRfbmFtZQk9ICJJR1A5MDAwL00iLAorCX0sCisJewogCQkuZGV2aWNlX2lkCT0gUENJX0RFVklDRV9JRF9BVElfUlMzNTBfMjAwLAogCQkuY2hpcHNldF9uYW1lCT0gIklHUDkxMDAvTSIsCiAJfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYmFja2VuZC5jIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKaW5kZXggYjFiZGQwMS4uMWVjODcxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKQEAgLTE4OCwxMCArMTg4LDEwIEBACiAKIGVycl9vdXQ6CiAJaWYgKGJyaWRnZS0+ZHJpdmVyLT5uZWVkc19zY3JhdGNoX3BhZ2UpIHsKLQkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGJyaWRnZS0+c2NyYXRjaF9wYWdlX3JlYWwpLAotCQkJCQkJIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOwotCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCksCi0JCQkJCQkgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCk7CisKKwkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOworCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSh2YSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKIAl9CiAJaWYgKGdvdF9nYXR0KQogCQlicmlkZ2UtPmRyaXZlci0+ZnJlZV9nYXR0X3RhYmxlKGJyaWRnZSk7CkBAIC0yMTUsMTAgKzIxNSwxMCBAQAogCiAJaWYgKGJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlICYmCiAJICAgIGJyaWRnZS0+ZHJpdmVyLT5uZWVkc19zY3JhdGNoX3BhZ2UpIHsKLQkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGJyaWRnZS0+c2NyYXRjaF9wYWdlX3JlYWwpLAotCQkJCQkJIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOwotCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCksCi0JCQkJCQkgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCk7CisKKwkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOworCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSh2YSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvY29tcGF0X2lvY3RsLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2NvbXBhdF9pb2N0bC5jCmluZGV4IDM5Mjc1NzkuLjU4YzU3Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvY29tcGF0X2lvY3RsLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9jb21wYXRfaW9jdGwuYwpAQCAtMjE0LDcgKzIxNCw3IEBACiAJCXJldF92YWwgPSAtRUlOVkFMOwogCQlnb3RvIGlvY3RsX291dDsKIAl9Ci0JaWYgKChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKSAmJgorCWlmICgoYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgIT0gdHJ1ZSkgJiYKIAkgICAgKGNtZCAhPSBBR1BJT0NfQUNRVUlSRTMyKSkgewogCQlyZXRfdmFsID0gLUVCVVNZOwogCQlnb3RvIGlvY3RsX291dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvZWZmaWNlb24tYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2VmZmljZW9uLWFncC5jCmluZGV4IGNhYzAwMDkuLjhjYTZmMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZWZmaWNlb24tYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9lZmZpY2Vvbi1hZ3AuYwpAQCAtMjQ5LDkgKzI0OSw5IEBACiAJaWYgKHR5cGUgIT0gMCB8fCBtZW0tPnR5cGUgIT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJbGFzdF9wYWdlID0gTlVMTDsKQEAgLTMyOSw3ICszMjksNyBAQAogCS5mcmVlX2dhdHRfdGFibGUJPSBlZmZpY2Vvbl9mcmVlX2dhdHRfdGFibGUsCiAJLmluc2VydF9tZW1vcnkJCT0gZWZmaWNlb25faW5zZXJ0X21lbW9yeSwKIAkucmVtb3ZlX21lbW9yeQkJPSBlZmZpY2Vvbl9yZW1vdmVfbWVtb3J5LAotCS5jYW50X3VzZV9hcGVydHVyZQk9IDAsCS8vIDEgbWlnaHQgYmUgZmFzdGVyPworCS5jYW50X3VzZV9hcGVydHVyZQk9IGZhbHNlLAkvLyB0cnVlIG1pZ2h0IGJlIGZhc3Rlcj8KIAogCS8vIEdlbmVyaWMKIAkuYWxsb2NfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19ieV90eXBlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9mcm9udGVuZC5jIGIvZHJpdmVycy9jaGFyL2FncC9mcm9udGVuZC5jCmluZGV4IDg1N2IyNjIuLmE5NmYzMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZnJvbnRlbmQuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2Zyb250ZW5kLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlICJhZ3AuaCIKQEAgLTM5NSw3ICszOTYsNyBAQAogCiAJaWYgKGFncF9mZS5jdXJyZW50X2NvbnRyb2xsZXIgPT0gY29udHJvbGxlcikgewogCQlhZ3BfZmUuY3VycmVudF9jb250cm9sbGVyID0gTlVMTDsKLQkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBGQUxTRTsKKwkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBmYWxzZTsKIAkJYWdwX2JhY2tlbmRfcmVsZWFzZShhZ3BfYnJpZGdlKTsKIAl9CiAJa2ZyZWUoY29udHJvbGxlcik7CkBAIC00NDMsNyArNDQ0LDcgQEAKIAl9CiAKIAlhZ3BfZmUuY3VycmVudF9jb250cm9sbGVyID0gTlVMTDsKLQlhZ3BfZmUudXNlZF9ieV9jb250cm9sbGVyID0gRkFMU0U7CisJYWdwX2ZlLnVzZWRfYnlfY29udHJvbGxlciA9IGZhbHNlOwogCWFncF9iYWNrZW5kX3JlbGVhc2UoYWdwX2JyaWRnZSk7CiB9CiAKQEAgLTU3Myw3ICs1NzQsNyBAQAogCiAJbXV0ZXhfbG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKIAotCWlmIChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKQorCWlmIChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSB0cnVlKQogCQlnb3RvIG91dF9lcGVybTsKIAogCWlmICghKHRlc3RfYml0KEFHUF9GRl9JU19WQUxJRCwgJnByaXYtPmFjY2Vzc19mbGFncykpKQpAQCAtNjc3LDYgKzY3OCw3IEBACiAJc3RydWN0IGFncF9jbGllbnQgKmNsaWVudDsKIAlpbnQgcmMgPSAtRU5YSU87CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJihhZ3BfZmUuYWdwX211dGV4KSk7CiAKIAlpZiAobWlub3IgIT0gQUdQR0FSVF9NSU5PUikKQEAgLTcwMywxMiArNzA1LDE0IEBACiAJYWdwX2luc2VydF9maWxlX3ByaXZhdGUocHJpdik7CiAJREJHKCJwcml2YXRlPSVwLCBjbGllbnQ9JXAiLCBwcml2LCBjbGllbnQpOwogCW11dGV4X3VubG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGVycl9vdXRfbm9tZW06CiAJcmMgPSAtRU5PTUVNOwogZXJyX291dDoKIAltdXRleF91bmxvY2soJihhZ3BfZmUuYWdwX211dGV4KSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApAQCAtNzY4LDcgKzc3Miw3IEBACiAKIAlhdG9taWNfaW5jKCZhZ3BfYnJpZGdlLT5hZ3BfaW5fdXNlKTsKIAotCWFncF9mZS5iYWNrZW5kX2FjcXVpcmVkID0gVFJVRTsKKwlhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCA9IHRydWU7CiAKIAljb250cm9sbGVyID0gYWdwX2ZpbmRfY29udHJvbGxlcl9ieV9waWQocHJpdi0+bXlfcGlkKTsKIApAQCAtNzc4LDcgKzc4Miw3IEBACiAJCWNvbnRyb2xsZXIgPSBhZ3BfY3JlYXRlX2NvbnRyb2xsZXIocHJpdi0+bXlfcGlkKTsKIAogCQlpZiAoY29udHJvbGxlciA9PSBOVUxMKSB7Ci0JCQlhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCA9IEZBTFNFOworCQkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBmYWxzZTsKIAkJCWFncF9iYWNrZW5kX3JlbGVhc2UoYWdwX2JyaWRnZSk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQpAQCAtOTgxLDcgKzk4NSw3IEBACiAJCXJldF92YWwgPSAtRUlOVkFMOwogCQlnb3RvIGlvY3RsX291dDsKIAl9Ci0JaWYgKChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKSAmJgorCWlmICgoYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgIT0gdHJ1ZSkgJiYKIAkgICAgKGNtZCAhPSBBR1BJT0NfQUNRVUlSRSkpIHsKIAkJcmV0X3ZhbCA9IC1FQlVTWTsKIAkJZ290byBpb2N0bF9vdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2dlbmVyaWMuYyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCmluZGV4IDdmYzBjOTkuLjU2NGRhYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCkBAIC05NiwxMyArOTYsMTMgQEAKIHZvaWQgYWdwX2FsbG9jX3BhZ2VfYXJyYXkoc2l6ZV90IHNpemUsIHN0cnVjdCBhZ3BfbWVtb3J5ICptZW0pCiB7CiAJbWVtLT5tZW1vcnkgPSBOVUxMOwotCW1lbS0+dm1hbGxvY19mbGFnID0gMDsKKwltZW0tPnZtYWxsb2NfZmxhZyA9IGZhbHNlOwogCiAJaWYgKHNpemUgPD0gMipQQUdFX1NJWkUpCiAJCW1lbS0+bWVtb3J5ID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMIHwgX19HRlBfTk9SRVRSWSk7CiAJaWYgKG1lbS0+bWVtb3J5ID09IE5VTEwpIHsKIAkJbWVtLT5tZW1vcnkgPSB2bWFsbG9jKHNpemUpOwotCQltZW0tPnZtYWxsb2NfZmxhZyA9IDE7CisJCW1lbS0+dm1hbGxvY19mbGFnID0gdHJ1ZTsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGFncF9hbGxvY19wYWdlX2FycmF5KTsKQEAgLTE4OCw3ICsxODgsNyBAQAogCWlmIChjdXJyID09IE5VTEwpCiAJCXJldHVybjsKIAotCWlmIChjdXJyLT5pc19ib3VuZCA9PSBUUlVFKQorCWlmIChjdXJyLT5pc19ib3VuZCkKIAkJYWdwX3VuYmluZF9tZW1vcnkoY3Vycik7CiAKIAlpZiAoY3Vyci0+dHlwZSA+PSBBR1BfVVNFUl9UWVBFUykgewpAQCAtMjAyLDEwICsyMDIsMTMgQEAKIAl9CiAJaWYgKGN1cnItPnBhZ2VfY291bnQgIT0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgY3Vyci0+cGFnZV9jb3VudDsgaSsrKSB7Ci0JCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSwgQUdQX1BBR0VfREVTVFJPWV9VTk1BUCk7CisJCQljdXJyLT5tZW1vcnlbaV0gPSAodW5zaWduZWQgbG9uZylnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKTsKKwkJCWN1cnItPmJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKCh2b2lkICopY3Vyci0+bWVtb3J5W2ldLAorCQkJCQkJCSAgICAgICBBR1BfUEFHRV9ERVNUUk9ZX1VOTUFQKTsKIAkJfQogCQlmb3IgKGkgPSAwOyBpIDwgY3Vyci0+cGFnZV9jb3VudDsgaSsrKSB7Ci0JCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJCWN1cnItPmJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKCh2b2lkICopY3Vyci0+bWVtb3J5W2ldLAorCQkJCQkJCSAgICAgICBBR1BfUEFHRV9ERVNUUk9ZX0ZSRUUpOwogCQl9CiAJfQogCWFncF9mcmVlX2tleShjdXJyLT5rZXkpOwpAQCAtNDExLDIwICs0MTQsMjAgQEAKIAlpZiAoY3VyciA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChjdXJyLT5pc19ib3VuZCA9PSBUUlVFKSB7CisJaWYgKGN1cnItPmlzX2JvdW5kKSB7CiAJCXByaW50ayhLRVJOX0lORk8gUEZYICJtZW1vcnkgJXAgaXMgYWxyZWFkeSBib3VuZCFcbiIsIGN1cnIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JaWYgKGN1cnItPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIWN1cnItPmlzX2ZsdXNoZWQpIHsKIAkJY3Vyci0+YnJpZGdlLT5kcml2ZXItPmNhY2hlX2ZsdXNoKCk7Ci0JCWN1cnItPmlzX2ZsdXNoZWQgPSBUUlVFOworCQljdXJyLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAJcmV0X3ZhbCA9IGN1cnItPmJyaWRnZS0+ZHJpdmVyLT5pbnNlcnRfbWVtb3J5KGN1cnIsIHBnX3N0YXJ0LCBjdXJyLT50eXBlKTsKIAogCWlmIChyZXRfdmFsICE9IDApCiAJCXJldHVybiByZXRfdmFsOwogCi0JY3Vyci0+aXNfYm91bmQgPSBUUlVFOworCWN1cnItPmlzX2JvdW5kID0gdHJ1ZTsKIAljdXJyLT5wZ19zdGFydCA9IHBnX3N0YXJ0OwogCXJldHVybiAwOwogfQpAQCAtNDQ2LDcgKzQ0OSw3IEBACiAJaWYgKGN1cnIgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoY3Vyci0+aXNfYm91bmQgIT0gVFJVRSkgeworCWlmICghY3Vyci0+aXNfYm91bmQpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyBQRlggIm1lbW9yeSAlcCB3YXMgbm90IGJvdW5kIVxuIiwgY3Vycik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTQ1Niw3ICs0NTksNyBAQAogCWlmIChyZXRfdmFsICE9IDApCiAJCXJldHVybiByZXRfdmFsOwogCi0JY3Vyci0+aXNfYm91bmQgPSBGQUxTRTsKKwljdXJyLT5pc19ib3VuZCA9IGZhbHNlOwogCWN1cnItPnBnX3N0YXJ0ID0gMDsKIAlyZXR1cm4gMDsKIH0KQEAgLTc1NCw3ICs3NTcsNyBAQAogRVhQT1JUX1NZTUJPTChhZ3BfY29sbGVjdF9kZXZpY2Vfc3RhdHVzKTsKIAogCi12b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgYnJpZGdlX2FncHN0YXQsIGludCBhZ3BfdjMpCit2b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgYnJpZGdlX2FncHN0YXQsIGJvb2wgYWdwX3YzKQogewogCXN0cnVjdCBwY2lfZGV2ICpkZXZpY2UgPSBOVUxMOwogCWludCBtb2RlOwpAQCAtODE4LDcgKzgyMSw3IEBACiAJCQkvKiBJZiB3ZSBoYXZlIDMuNSwgd2UgY2FuIGRvIHRoZSBpc29jaCBzdHVmZi4gKi8KIAkJCWlmIChicmlkZ2UtPm1pbm9yX3ZlcnNpb24gPj0gNSkKIAkJCQlhZ3BfM181X2VuYWJsZShicmlkZ2UpOwotCQkJYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBUUlVFKTsKKwkJCWFncF9kZXZpY2VfY29tbWFuZChicmlkZ2VfYWdwc3RhdCwgdHJ1ZSk7CiAJCQlyZXR1cm47CiAJCX0gZWxzZSB7CiAJCSAgICAvKiBEaXNhYmxlIGNhbGlicmF0aW9uIGN5Y2xlIGluIFJYOTE8MT4gd2hlbiBub3QgaW4gQUdQMy4wIG1vZGUgb2Ygb3BlcmF0aW9uLiovCkBAIC04MzUsNyArODM4LDcgQEAKIAl9CiAKIAkvKiBBR1AgdjwzICovCi0JYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBGQUxTRSk7CisJYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGFncF9nZW5lcmljX2VuYWJsZSk7CiAKQEAgLTEwODMsOSArMTA4Niw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJYnJpZGdlLT5kcml2ZXItPmNhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9ocC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvaHAtYWdwLmMKaW5kZXggY2JiMDQ0NC4uODBkNzMxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9ocC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2hwLWFncC5jCkBAIC0zNTMsOSArMzUzLDkgQEAKIAkJaisrOwogCX0KIAotCWlmIChtZW0tPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIW1lbS0+aXNfZmx1c2hlZCkgewogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAKIAlmb3IgKGkgPSAwLCBqID0gaW9fcGdfc3RhcnQ7IGkgPCBtZW0tPnBhZ2VfY291bnQ7IGkrKykgewpAQCAtNDM3LDcgKzQzNyw3IEBACiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9pNDYwLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9pNDYwLWFncC5jCmluZGV4IDc2ZjU4MWMuLmU1ODdlZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvaTQ2MC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2k0NjAtYWdwLmMKQEAgLTU4MCw3ICs1ODAsNyBAQAogCS5hbGxvY19ieV90eXBlCQk9IGFncF9nZW5lcmljX2FsbG9jX2J5X3R5cGUsCiAJLmZyZWVfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19mcmVlX2J5X3R5cGUsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBhZ3BfaW50ZWxfaTQ2MF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWFncC5jCmluZGV4IGVlZWE1MGEuLmRmNzAyNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1hZ3AuYwpAQCAtMzQsNiArMzQsMTIgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9RMzNfSUcgICAgICAgICAgMHgyOUQyCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCICAgICAgICAgIDB4MkE0MAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9JRyAgICAgICAgICAweDJBNDIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfRV9IQiAgICAgICAgMHgyRTAwCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0VfSUcgICAgICAgIDB4MkUwMgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQiAgICAgICAgICAweDJFMTAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9RNDVfSUcgICAgICAgICAgMHgyRTEyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCICAgICAgICAgIDB4MkUyMAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0c0NV9JRyAgICAgICAgICAweDJFMjIKIAogLyogY292ZXIgOTE1IGFuZCA5NDUgdmFyaWFudHMgKi8KICNkZWZpbmUgSVNfSTkxNSAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9FNzIyMV9IQiB8fCBcCkBAIC01NSw2ICs2MSwxMCBAQAogCQlhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX1EzNV9IQiB8fCBcCiAJCWFncF9icmlkZ2UtPmRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfUTMzX0hCKQogCisjZGVmaW5lIElTX0c0WCAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfRV9IQiB8fCBcCisJCWFncF9icmlkZ2UtPmRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfUTQ1X0hCIHx8IFwKKwkJYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9HNDVfSEIpCisKIGV4dGVybiBpbnQgYWdwX21lbW9yeV9yZXNlcnZlZDsKIAogCkBAIC04MCw4ICs5MCwxMyBAQAogI2RlZmluZSBJOTE1X1BURUFERFIJMHgxQwogI2RlZmluZSBJOTE1X0dNQ0hfR01TX1NUT0xFTl80OE0JKDB4NiA8PCA0KQogI2RlZmluZSBJOTE1X0dNQ0hfR01TX1NUT0xFTl82NE0JKDB4NyA8PCA0KQotI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzEyOE0gICAgICAgKDB4OCA8PCA0KQotI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzI1Nk0gICAgICAgKDB4OSA8PCA0KQorI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzEyOE0JKDB4OCA8PCA0KQorI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzI1Nk0JKDB4OSA8PCA0KQorI2RlZmluZSBJTlRFTF9HTUNIX0dNU19TVE9MRU5fOTZNCSgweGEgPDwgNCkKKyNkZWZpbmUgSU5URUxfR01DSF9HTVNfU1RPTEVOXzE2ME0JKDB4YiA8PCA0KQorI2RlZmluZSBJTlRFTF9HTUNIX0dNU19TVE9MRU5fMjI0TQkoMHhjIDw8IDQpCisjZGVmaW5lIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8zNTJNCSgweGQgPDwgNCkKKwogI2RlZmluZSBJOTE1X0lGUEFERFIgICAgMHg2MAogCiAvKiBJbnRlbCA5NjVHIHJlZ2lzdGVycyAqLwpAQCAtMzI1LDcgKzM0MCw3IEBACiBvdXQ6CiAJcmV0ID0gMDsKIG91dF9lcnI6Ci0JbWVtLT5pc19mbHVzaGVkID0gMTsKKwltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQxOCw5ICs0MzMsMTEgQEAKIAkJaWYgKGN1cnItPnBhZ2VfY291bnQgPT0gNCkKIAkJCWk4eHhfZGVzdHJveV9wYWdlcyhnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKSk7CiAJCWVsc2UgewotCQkJYWdwX2JyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKGdhcnRfdG9fdmlydChjdXJyLT5tZW1vcnlbMF0pLAorCQkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKTsKKworCQkJYWdwX2JyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKHZhLAogCQkJCQkJCSAgICAgQUdQX1BBR0VfREVTVFJPWV9VTk1BUCk7Ci0JCQlhZ3BfYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGN1cnItPm1lbW9yeVswXSksCisJCQlhZ3BfYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsCiAJCQkJCQkJICAgICBBR1BfUEFHRV9ERVNUUk9ZX0ZSRUUpOwogCQl9CiAJCWFncF9mcmVlX3BhZ2VfYXJyYXkoY3Vycik7CkBAIC01MDQsNiArNTIxLDEwIEBACiAJCQlzaXplID0gNTEyOwogCQl9CiAJCXNpemUgKz0gNDsKKwl9IGVsc2UgaWYgKElTX0c0WCkgeworCQkvKiBPbiA0IHNlcmllcyBoYXJkd2FyZSwgR1RUIHN0b2xlbiBpcyBzZXBhcmF0ZSBmcm9tIGdyYXBoaWNzCisJCSAqIHN0b2xlbiwgaWdub3JlIGl0IGluIHN0b2xlbiBndHQgZW50cmllcyBjb3VudGluZyAqLworCQlzaXplID0gMDsKIAl9IGVsc2UgewogCQkvKiBPbiBwcmV2aW91cyBoYXJkd2FyZSwgdGhlIEdUVCBzaXplIHdhcyBqdXN0IHdoYXQgd2FzCiAJCSAqIHJlcXVpcmVkIHRvIG1hcCB0aGUgYXBlcnR1cmUuCkBAIC01NTIsMzAgKzU3Myw1NCBAQAogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9HTUNIX0dNU19TVE9MRU5fNDhNOgogCQkJLyogQ2hlY2sgaXQncyByZWFsbHkgSTkxNUcgKi8KLQkJCWlmIChJU19JOTE1IHx8IElTX0k5NjUgfHwgSVNfRzMzKQorCQkJaWYgKElTX0k5MTUgfHwgSVNfSTk2NSB8fCBJU19HMzMgfHwgSVNfRzRYKQogCQkJCWd0dF9lbnRyaWVzID0gTUIoNDgpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9HTUNIX0dNU19TVE9MRU5fNjRNOgogCQkJLyogQ2hlY2sgaXQncyByZWFsbHkgSTkxNUcgKi8KLQkJCWlmIChJU19JOTE1IHx8IElTX0k5NjUgfHwgSVNfRzMzKQorCQkJaWYgKElTX0k5MTUgfHwgSVNfSTk2NSB8fCBJU19HMzMgfHwgSVNfRzRYKQogCQkJCWd0dF9lbnRyaWVzID0gTUIoNjQpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgRzMzX0dNQ0hfR01TX1NUT0xFTl8xMjhNOgotCQkJaWYgKElTX0czMykKKwkJCWlmIChJU19HMzMgfHwgSVNfSTk2NSB8fCBJU19HNFgpCiAJCQkJZ3R0X2VudHJpZXMgPSBNQigxMjgpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgRzMzX0dNQ0hfR01TX1NUT0xFTl8yNTZNOgotCQkJaWYgKElTX0czMykKKwkJCWlmIChJU19HMzMgfHwgSVNfSTk2NSB8fCBJU19HNFgpCiAJCQkJZ3R0X2VudHJpZXMgPSBNQigyNTYpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CisJCWNhc2UgSU5URUxfR01DSF9HTVNfU1RPTEVOXzk2TToKKwkJCWlmIChJU19JOTY1IHx8IElTX0c0WCkKKwkJCQlndHRfZW50cmllcyA9IE1CKDk2KSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8xNjBNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMTYwKSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8yMjRNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMjI0KSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8zNTJNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMzUyKSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CkBAIC03OTMsNyArODM4LDcgQEAKIG91dDoKIAlyZXQgPSAwOwogb3V0X2VycjoKLQltZW0tPmlzX2ZsdXNoZWQgPSAxOworCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtOTAzLDcgKzk0OCw3IEBACiAJaW50ZWxfcHJpdmF0ZS5pZnBfcmVzb3VyY2UuZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKIAogCS8qIFNldHVwIGNoaXBzZXQgZmx1c2ggZm9yIDkxNSAqLwotCWlmIChJU19JOTY1IHx8IElTX0czMykgeworCWlmIChJU19JOTY1IHx8IElTX0czMyB8fCBJU19HNFgpIHsKIAkJaW50ZWxfaTk2NV9nMzNfc2V0dXBfY2hpcHNldF9mbHVzaCgpOwogCX0gZWxzZSB7CiAJCWludGVsX2k5MTVfc2V0dXBfY2hpcHNldF9mbHVzaCgpOwpAQCAtMTAyMCw3ICsxMDY1LDcgQEAKICBvdXQ6CiAJcmV0ID0gMDsKICBvdXRfZXJyOgotCW1lbS0+aXNfZmx1c2hlZCA9IDE7CisJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMTM0LDUzICsxMTc5LDY0IEBACiAJcmV0dXJuIGFkZHIgfCBicmlkZ2UtPmRyaXZlci0+bWFza3NbdHlwZV0ubWFzazsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfaTk2NV9nZXRfZ3R0X3JhbmdlKGludCAqZ3R0X29mZnNldCwgaW50ICpndHRfc2l6ZSkKK3sKKwlzd2l0Y2ggKGFncF9icmlkZ2UtPmRldi0+ZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9IQjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0VfSEI6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCOgorCQkqZ3R0X29mZnNldCA9ICpndHRfc2l6ZSA9IE1CKDIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkqZ3R0X29mZnNldCA9ICpndHRfc2l6ZSA9IEtCKDUxMik7CisJfQorfQorCiAvKiBUaGUgaW50ZWwgaTk2NSBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVzIHRoZSBhZ3AgYXBlcnR1cmUgZHVyaW5nIFBPU1QuCiAgKiBVc2UgdGhlIG1lbW9yeSBhbHJlYWR5IHNldCBhc2lkZSBmb3IgaW4gdGhlIEdUVC4KICAqLwogc3RhdGljIGludCBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSkKIHsKLSAgICAgICBpbnQgcGFnZV9vcmRlcjsKLSAgICAgICBzdHJ1Y3QgYXBlcl9zaXplX2luZm9fZml4ZWQgKnNpemU7Ci0gICAgICAgaW50IG51bV9lbnRyaWVzOwotICAgICAgIHUzMiB0ZW1wOwotICAgICAgIGludCBndHRfb2Zmc2V0LCBndHRfc2l6ZTsKKwlpbnQgcGFnZV9vcmRlcjsKKwlzdHJ1Y3QgYXBlcl9zaXplX2luZm9fZml4ZWQgKnNpemU7CisJaW50IG51bV9lbnRyaWVzOworCXUzMiB0ZW1wOworCWludCBndHRfb2Zmc2V0LCBndHRfc2l6ZTsKIAotICAgICAgIHNpemUgPSBhZ3BfYnJpZGdlLT5jdXJyZW50X3NpemU7Ci0gICAgICAgcGFnZV9vcmRlciA9IHNpemUtPnBhZ2Vfb3JkZXI7Ci0gICAgICAgbnVtX2VudHJpZXMgPSBzaXplLT5udW1fZW50cmllczsKLSAgICAgICBhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSBOVUxMOworCXNpemUgPSBhZ3BfYnJpZGdlLT5jdXJyZW50X3NpemU7CisJcGFnZV9vcmRlciA9IHNpemUtPnBhZ2Vfb3JkZXI7CisJbnVtX2VudHJpZXMgPSBzaXplLT5udW1fZW50cmllczsKKwlhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSBOVUxMOwogCi0gICAgICAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKGludGVsX3ByaXZhdGUucGNpZGV2LCBJOTE1X01NQUREUiwgJnRlbXApOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChpbnRlbF9wcml2YXRlLnBjaWRldiwgSTkxNV9NTUFERFIsICZ0ZW1wKTsKIAotICAgICAgIHRlbXAgJj0gMHhmZmYwMDAwMDsKKwl0ZW1wICY9IDB4ZmZmMDAwMDA7CiAKLSAgICAgICBpZiAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfSEIpCi0JICAgICAgIGd0dF9vZmZzZXQgPSBndHRfc2l6ZSA9IE1CKDIpOwotICAgICAgIGVsc2UKLQkgICAgICAgZ3R0X29mZnNldCA9IGd0dF9zaXplID0gS0IoNTEyKTsKKwlpbnRlbF9pOTY1X2dldF9ndHRfcmFuZ2UoJmd0dF9vZmZzZXQsICZndHRfc2l6ZSk7CiAKLSAgICAgICBpbnRlbF9wcml2YXRlLmd0dCA9IGlvcmVtYXAoKHRlbXAgKyBndHRfb2Zmc2V0KSAsIGd0dF9zaXplKTsKKwlpbnRlbF9wcml2YXRlLmd0dCA9IGlvcmVtYXAoKHRlbXAgKyBndHRfb2Zmc2V0KSAsIGd0dF9zaXplKTsKIAotICAgICAgIGlmICghaW50ZWxfcHJpdmF0ZS5ndHQpCi0JICAgICAgIHJldHVybiAtRU5PTUVNOworCWlmICghaW50ZWxfcHJpdmF0ZS5ndHQpCisJCXJldHVybiAtRU5PTUVNOwogCi0gICAgICAgaW50ZWxfcHJpdmF0ZS5yZWdpc3RlcnMgPSBpb3JlbWFwKHRlbXAsIDEyOCAqIDQwOTYpOwotICAgICAgIGlmICghaW50ZWxfcHJpdmF0ZS5yZWdpc3RlcnMpIHsKKwlpbnRlbF9wcml2YXRlLnJlZ2lzdGVycyA9IGlvcmVtYXAodGVtcCwgMTI4ICogNDA5Nik7CisJaWYgKCFpbnRlbF9wcml2YXRlLnJlZ2lzdGVycykgewogCQlpb3VubWFwKGludGVsX3ByaXZhdGUuZ3R0KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0gICAgICAgdGVtcCA9IHJlYWRsKGludGVsX3ByaXZhdGUucmVnaXN0ZXJzK0k4MTBfUEdFVEJMX0NUTCkgJiAweGZmZmZmMDAwOwotICAgICAgIGdsb2JhbF9jYWNoZV9mbHVzaCgpOyAgIC8qIEZJWE1FOiA/ICovCisJdGVtcCA9IHJlYWRsKGludGVsX3ByaXZhdGUucmVnaXN0ZXJzK0k4MTBfUEdFVEJMX0NUTCkgJiAweGZmZmZmMDAwOworCWdsb2JhbF9jYWNoZV9mbHVzaCgpOyAgIC8qIEZJWE1FOiA/ICovCiAKLSAgICAgICAvKiB3ZSBoYXZlIHRvIGNhbGwgdGhpcyBhcyBlYXJseSBhcyBwb3NzaWJsZSBhZnRlciB0aGUgTU1JTyBiYXNlIGFkZHJlc3MgaXMga25vd24gKi8KLSAgICAgICBpbnRlbF9pODMwX2luaXRfZ3R0X2VudHJpZXMoKTsKKwkvKiB3ZSBoYXZlIHRvIGNhbGwgdGhpcyBhcyBlYXJseSBhcyBwb3NzaWJsZSBhZnRlciB0aGUgTU1JTyBiYXNlIGFkZHJlc3MgaXMga25vd24gKi8KKwlpbnRlbF9pODMwX2luaXRfZ3R0X2VudHJpZXMoKTsKIAotICAgICAgIGFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSBOVUxMOworCWFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSBOVUxMOwogCi0gICAgICAgYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHRlbXA7CisJYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHRlbXA7CiAKLSAgICAgICByZXR1cm4gMDsKKwlyZXR1cm4gMDsKIH0KIAogCkBAIC0xNjU2LDcgKzE3MTIsNyBAQAogCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODEwX3NpemVzLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSAyLAotCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSBUUlVFLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogCS5jb25maWd1cmUJCT0gaW50ZWxfaTgxMF9jb25maWd1cmUsCiAJLmZldGNoX3NpemUJCT0gaW50ZWxfaTgxMF9mZXRjaF9zaXplLAogCS5jbGVhbnVwCQk9IGludGVsX2k4MTBfY2xlYW51cCwKQEAgLTE2OTcsNyArMTc1Myw3IEBACiAJLmZyZWVfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19mcmVlX2J5X3R5cGUsCiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCi0JLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKKwkuYWdwX3R5cGVfdG9fbWFza190eXBlCT0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFncF9icmlkZ2VfZHJpdmVyIGludGVsXzgzMF9kcml2ZXIgPSB7CkBAIC0xNzA1LDcgKzE3NjEsNyBAQAogCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODMwX3NpemVzLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSA0LAotCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSBUUlVFLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogCS5jb25maWd1cmUJCT0gaW50ZWxfaTgzMF9jb25maWd1cmUsCiAJLmZldGNoX3NpemUJCT0gaW50ZWxfaTgzMF9mZXRjaF9zaXplLAogCS5jbGVhbnVwCQk9IGludGVsX2k4MzBfY2xlYW51cCwKQEAgLTE4NzYsNyArMTkzMiw3IEBACiAJLmFwZXJ0dXJlX3NpemVzCQk9IGludGVsX2k4MzBfc2l6ZXMsCiAJLnNpemVfdHlwZQkJPSBGSVhFRF9BUEVSX1NJWkUsCiAJLm51bV9hcGVydHVyZV9zaXplcwk9IDQsCi0JLm5lZWRzX3NjcmF0Y2hfcGFnZQk9IFRSVUUsCisJLm5lZWRzX3NjcmF0Y2hfcGFnZQk9IHRydWUsCiAJLmNvbmZpZ3VyZQkJPSBpbnRlbF9pOTE1X2NvbmZpZ3VyZSwKIAkuZmV0Y2hfc2l6ZQkJPSBpbnRlbF9pOXh4X2ZldGNoX3NpemUsCiAJLmNsZWFudXAJCT0gaW50ZWxfaTkxNV9jbGVhbnVwLApAQCAtMTg5OCwyOCArMTk1NCwyOCBAQAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZ3BfYnJpZGdlX2RyaXZlciBpbnRlbF9pOTY1X2RyaXZlciA9IHsKLSAgICAgICAub3duZXIgICAgICAgICAgICAgICAgICA9IFRISVNfTU9EVUxFLAotICAgICAgIC5hcGVydHVyZV9zaXplcyAgICAgICAgID0gaW50ZWxfaTgzMF9zaXplcywKLSAgICAgICAuc2l6ZV90eXBlICAgICAgICAgICAgICA9IEZJWEVEX0FQRVJfU0laRSwKLSAgICAgICAubnVtX2FwZXJ0dXJlX3NpemVzICAgICA9IDQsCi0gICAgICAgLm5lZWRzX3NjcmF0Y2hfcGFnZSAgICAgPSBUUlVFLAotICAgICAgIC5jb25maWd1cmUgICAgICAgICAgICAgID0gaW50ZWxfaTkxNV9jb25maWd1cmUsCi0gICAgICAgLmZldGNoX3NpemUgICAgICAgICAgICAgPSBpbnRlbF9pOXh4X2ZldGNoX3NpemUsCi0gICAgICAgLmNsZWFudXAgICAgICAgICAgICAgICAgPSBpbnRlbF9pOTE1X2NsZWFudXAsCi0gICAgICAgLnRsYl9mbHVzaCAgICAgICAgICAgICAgPSBpbnRlbF9pODEwX3RsYmZsdXNoLAotICAgICAgIC5tYXNrX21lbW9yeSAgICAgICAgICAgID0gaW50ZWxfaTk2NV9tYXNrX21lbW9yeSwKLSAgICAgICAubWFza3MgICAgICAgICAgICAgICAgICA9IGludGVsX2k4MTBfbWFza3MsCi0gICAgICAgLmFncF9lbmFibGUgICAgICAgICAgICAgPSBpbnRlbF9pODEwX2FncF9lbmFibGUsCi0gICAgICAgLmNhY2hlX2ZsdXNoICAgICAgICAgICAgPSBnbG9iYWxfY2FjaGVfZmx1c2gsCi0gICAgICAgLmNyZWF0ZV9nYXR0X3RhYmxlICAgICAgPSBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlLAotICAgICAgIC5mcmVlX2dhdHRfdGFibGUgICAgICAgID0gaW50ZWxfaTgzMF9mcmVlX2dhdHRfdGFibGUsCi0gICAgICAgLmluc2VydF9tZW1vcnkgICAgICAgICAgPSBpbnRlbF9pOTE1X2luc2VydF9lbnRyaWVzLAotICAgICAgIC5yZW1vdmVfbWVtb3J5ICAgICAgICAgID0gaW50ZWxfaTkxNV9yZW1vdmVfZW50cmllcywKLSAgICAgICAuYWxsb2NfYnlfdHlwZSAgICAgICAgICA9IGludGVsX2k4MzBfYWxsb2NfYnlfdHlwZSwKLSAgICAgICAuZnJlZV9ieV90eXBlICAgICAgICAgICA9IGludGVsX2k4MTBfZnJlZV9ieV90eXBlLAotICAgICAgIC5hZ3BfYWxsb2NfcGFnZSAgICAgICAgID0gYWdwX2dlbmVyaWNfYWxsb2NfcGFnZSwKLSAgICAgICAuYWdwX2Rlc3Ryb3lfcGFnZSAgICAgICA9IGFncF9nZW5lcmljX2Rlc3Ryb3lfcGFnZSwKLSAgICAgICAuYWdwX3R5cGVfdG9fbWFza190eXBlICA9IGludGVsX2k4MzBfdHlwZV90b19tYXNrX3R5cGUsCisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkuYXBlcnR1cmVfc2l6ZXMJCT0gaW50ZWxfaTgzMF9zaXplcywKKwkuc2l6ZV90eXBlCQk9IEZJWEVEX0FQRVJfU0laRSwKKwkubnVtX2FwZXJ0dXJlX3NpemVzCT0gNCwKKwkubmVlZHNfc2NyYXRjaF9wYWdlCT0gdHJ1ZSwKKwkuY29uZmlndXJlCQk9IGludGVsX2k5MTVfY29uZmlndXJlLAorCS5mZXRjaF9zaXplCQk9IGludGVsX2k5eHhfZmV0Y2hfc2l6ZSwKKwkuY2xlYW51cAkJPSBpbnRlbF9pOTE1X2NsZWFudXAsCisJLnRsYl9mbHVzaAkJPSBpbnRlbF9pODEwX3RsYmZsdXNoLAorCS5tYXNrX21lbW9yeQkJPSBpbnRlbF9pOTY1X21hc2tfbWVtb3J5LAorCS5tYXNrcwkJCT0gaW50ZWxfaTgxMF9tYXNrcywKKwkuYWdwX2VuYWJsZQkJPSBpbnRlbF9pODEwX2FncF9lbmFibGUsCisJLmNhY2hlX2ZsdXNoCQk9IGdsb2JhbF9jYWNoZV9mbHVzaCwKKwkuY3JlYXRlX2dhdHRfdGFibGUJPSBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlLAorCS5mcmVlX2dhdHRfdGFibGUJPSBpbnRlbF9pODMwX2ZyZWVfZ2F0dF90YWJsZSwKKwkuaW5zZXJ0X21lbW9yeQkJPSBpbnRlbF9pOTE1X2luc2VydF9lbnRyaWVzLAorCS5yZW1vdmVfbWVtb3J5CQk9IGludGVsX2k5MTVfcmVtb3ZlX2VudHJpZXMsCisJLmFsbG9jX2J5X3R5cGUJCT0gaW50ZWxfaTgzMF9hbGxvY19ieV90eXBlLAorCS5mcmVlX2J5X3R5cGUJCT0gaW50ZWxfaTgxMF9mcmVlX2J5X3R5cGUsCisJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCisJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCisJLmFncF90eXBlX3RvX21hc2tfdHlwZQk9IGludGVsX2k4MzBfdHlwZV90b19tYXNrX3R5cGUsCiAJLmNoaXBzZXRfZmx1c2gJCT0gaW50ZWxfaTkxNV9jaGlwc2V0X2ZsdXNoLAogfTsKIApAQCAtMTk0OCwyOCArMjAwNCwyOCBAQAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZ3BfYnJpZGdlX2RyaXZlciBpbnRlbF9nMzNfZHJpdmVyID0gewotCS5vd25lciAgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCi0JLmFwZXJ0dXJlX3NpemVzICAgICAgICAgPSBpbnRlbF9pODMwX3NpemVzLAotCS5zaXplX3R5cGUgICAgICAgICAgICAgID0gRklYRURfQVBFUl9TSVpFLAotCS5udW1fYXBlcnR1cmVfc2l6ZXMgICAgID0gNCwKLQkubmVlZHNfc2NyYXRjaF9wYWdlICAgICA9IFRSVUUsCi0JLmNvbmZpZ3VyZSAgICAgICAgICAgICAgPSBpbnRlbF9pOTE1X2NvbmZpZ3VyZSwKLQkuZmV0Y2hfc2l6ZSAgICAgICAgICAgICA9IGludGVsX2k5eHhfZmV0Y2hfc2l6ZSwKLQkuY2xlYW51cCAgICAgICAgICAgICAgICA9IGludGVsX2k5MTVfY2xlYW51cCwKLQkudGxiX2ZsdXNoICAgICAgICAgICAgICA9IGludGVsX2k4MTBfdGxiZmx1c2gsCi0JLm1hc2tfbWVtb3J5ICAgICAgICAgICAgPSBpbnRlbF9pOTY1X21hc2tfbWVtb3J5LAotCS5tYXNrcyAgICAgICAgICAgICAgICAgID0gaW50ZWxfaTgxMF9tYXNrcywKLQkuYWdwX2VuYWJsZSAgICAgICAgICAgICA9IGludGVsX2k4MTBfYWdwX2VuYWJsZSwKLQkuY2FjaGVfZmx1c2ggICAgICAgICAgICA9IGdsb2JhbF9jYWNoZV9mbHVzaCwKLQkuY3JlYXRlX2dhdHRfdGFibGUgICAgICA9IGludGVsX2k5MTVfY3JlYXRlX2dhdHRfdGFibGUsCi0JLmZyZWVfZ2F0dF90YWJsZSAgICAgICAgPSBpbnRlbF9pODMwX2ZyZWVfZ2F0dF90YWJsZSwKLQkuaW5zZXJ0X21lbW9yeSAgICAgICAgICA9IGludGVsX2k5MTVfaW5zZXJ0X2VudHJpZXMsCi0JLnJlbW92ZV9tZW1vcnkgICAgICAgICAgPSBpbnRlbF9pOTE1X3JlbW92ZV9lbnRyaWVzLAotCS5hbGxvY19ieV90eXBlICAgICAgICAgID0gaW50ZWxfaTgzMF9hbGxvY19ieV90eXBlLAotCS5mcmVlX2J5X3R5cGUgICAgICAgICAgID0gaW50ZWxfaTgxMF9mcmVlX2J5X3R5cGUsCi0JLmFncF9hbGxvY19wYWdlICAgICAgICAgPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAotCS5hZ3BfZGVzdHJveV9wYWdlICAgICAgID0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAotCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gaW50ZWxfaTgzMF90eXBlX3RvX21hc2tfdHlwZSwKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODMwX3NpemVzLAorCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAorCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSA0LAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAorCS5jb25maWd1cmUJCT0gaW50ZWxfaTkxNV9jb25maWd1cmUsCisJLmZldGNoX3NpemUJCT0gaW50ZWxfaTl4eF9mZXRjaF9zaXplLAorCS5jbGVhbnVwCQk9IGludGVsX2k5MTVfY2xlYW51cCwKKwkudGxiX2ZsdXNoCQk9IGludGVsX2k4MTBfdGxiZmx1c2gsCisJLm1hc2tfbWVtb3J5CQk9IGludGVsX2k5NjVfbWFza19tZW1vcnksCisJLm1hc2tzCQkJPSBpbnRlbF9pODEwX21hc2tzLAorCS5hZ3BfZW5hYmxlCQk9IGludGVsX2k4MTBfYWdwX2VuYWJsZSwKKwkuY2FjaGVfZmx1c2gJCT0gZ2xvYmFsX2NhY2hlX2ZsdXNoLAorCS5jcmVhdGVfZ2F0dF90YWJsZQk9IGludGVsX2k5MTVfY3JlYXRlX2dhdHRfdGFibGUsCisJLmZyZWVfZ2F0dF90YWJsZQk9IGludGVsX2k4MzBfZnJlZV9nYXR0X3RhYmxlLAorCS5pbnNlcnRfbWVtb3J5CQk9IGludGVsX2k5MTVfaW5zZXJ0X2VudHJpZXMsCisJLnJlbW92ZV9tZW1vcnkJCT0gaW50ZWxfaTkxNV9yZW1vdmVfZW50cmllcywKKwkuYWxsb2NfYnlfdHlwZQkJPSBpbnRlbF9pODMwX2FsbG9jX2J5X3R5cGUsCisJLmZyZWVfYnlfdHlwZQkJPSBpbnRlbF9pODEwX2ZyZWVfYnlfdHlwZSwKKwkuYWdwX2FsbG9jX3BhZ2UJCT0gYWdwX2dlbmVyaWNfYWxsb2NfcGFnZSwKKwkuYWdwX2Rlc3Ryb3lfcGFnZQk9IGFncF9nZW5lcmljX2Rlc3Ryb3lfcGFnZSwKKwkuYWdwX3R5cGVfdG9fbWFza190eXBlCT0gaW50ZWxfaTgzMF90eXBlX3RvX21hc2tfdHlwZSwKIAkuY2hpcHNldF9mbHVzaAkJPSBpbnRlbF9pOTE1X2NoaXBzZXRfZmx1c2gsCiB9OwogCkBAIC0yMDYzLDYgKzIxMTksMTIgQEAKIAkJTlVMTCwgJmludGVsX2czM19kcml2ZXIgfSwKIAl7IFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9JRywgMCwKIAkgICAgIkludGVsIEludGVncmF0ZWQgR3JhcGhpY3MgRGV2aWNlIiwgTlVMTCwgJmludGVsX2k5NjVfZHJpdmVyIH0sCisJeyBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0lHLCAwLAorCSAgICAiSW50ZWwgSW50ZWdyYXRlZCBHcmFwaGljcyBEZXZpY2UiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKKwl7IFBDSV9ERVZJQ0VfSURfSU5URUxfUTQ1X0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9JRywgMCwKKwkgICAgIlE0NS9RNDMiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKKwl7IFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0c0NV9JRywgMCwKKwkgICAgIkc0NS9HNDMiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKIAl7IDAsIDAsIDAsIE5VTEwsIE5VTEwsIE5VTEwgfQogfTsKIApAQCAtMjI1NCw2ICsyMzE2LDkgQEAKIAlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX1EzNV9IQiksCiAJSUQoUENJX0RFVklDRV9JRF9JTlRFTF9RMzNfSEIpLAogCUlEKFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCKSwKKwlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0hCKSwKKwlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQiksCisJSUQoUENJX0RFVklDRV9JRF9JTlRFTF9HNDVfSEIpLAogCXsgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9udmlkaWEtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYwppbmRleCAyMjVlZDJhLi5lYWNlYjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYwpAQCAtMjE0LDkgKzIxNCw5IEBACiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAotCWlmIChtZW0tPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIW1lbS0+aXNfZmx1c2hlZCkgewogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewogCQl3cml0ZWwoYWdwX2JyaWRnZS0+ZHJpdmVyLT5tYXNrX21lbW9yeShhZ3BfYnJpZGdlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9wYXJpc2MtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYwppbmRleCAyOTM5ZTM1Li44YzQyZGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYwpAQCAtMTQxLDkgKzE0MSw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IGlvX3BnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyspIHsKQEAgLTIyNiw3ICsyMjYsNyBAQAogCS5hZ3BfYWxsb2NfcGFnZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlCT0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlCT0gMSwKKwkuY2FudF91c2VfYXBlcnR1cmUJPSB0cnVlLAogfTsKIAogc3RhdGljIGludCBfX2luaXQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3Avc2dpLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKaW5kZXggOThjZjhhYi4uYjk3MmQ4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKQEAgLTE4Miw5ICsxODIsOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWJyaWRnZS0+ZHJpdmVyLT5jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTI2NCw4ICsyNjQsOCBAQAogCS5hZ3BfYWxsb2NfcGFnZSA9IHNnaV90aW9jYV9hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlID0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlID0gMSwKLQkubmVlZHNfc2NyYXRjaF9wYWdlID0gMCwKKwkuY2FudF91c2VfYXBlcnR1cmUgPSB0cnVlLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UgPSBmYWxzZSwKIAkubnVtX2FwZXJ0dXJlX3NpemVzID0gMSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3Avc3dvcmtzLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKaW5kZXggZTA4OTM0ZS4uMGUwNTRjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKQEAgLTMzOSw5ICszMzksOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWdsb2JhbF9jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTQxMiw3ICs0MTIsNyBAQAogCQkJICAgICAgIGJyaWRnZS0+Y2FwbmR4ICsgUENJX0FHUF9DT01NQU5ELAogCQkJICAgICAgIGNvbW1hbmQpOwogCi0JYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIDApOworCWFncF9kZXZpY2VfY29tbWFuZChjb21tYW5kLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWdwX2JyaWRnZV9kcml2ZXIgc3dvcmtzX2RyaXZlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvdW5pbm9ydGgtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL3VuaW5vcnRoLWFncC5jCmluZGV4IDQyYzBhNjAuLmQyZmEzY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvdW5pbm9ydGgtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC91bmlub3J0aC1hZ3AuYwpAQCAtMjgxLDEwICsyODEsMTAgQEAKIAogCWlmICh1bmlub3J0aF9yZXYgPj0gMHgzMCkgewogCQkvKiBUaGlzIGlzIGFuIEFHUCBWMyAqLwotCQlhZ3BfZGV2aWNlX2NvbW1hbmQoY29tbWFuZCwgKHN0YXR1cyAmIEFHUFNUQVRfTU9ERV8zXzApKTsKKwkJYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIChzdGF0dXMgJiBBR1BTVEFUX01PREVfM18wKSAhPSAwKTsKIAl9IGVsc2UgewogCQkvKiBBR1AgVjIgKi8KLQkJYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIDApOworCQlhZ3BfZGV2aWNlX2NvbW1hbmQoY29tbWFuZCwgZmFsc2UpOwogCX0KIAogCXVuaW5vcnRoX3RsYmZsdXNoKE5VTEwpOwpAQCAtNTExLDcgKzUxMSw3IEBACiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBjb25zdCBzdHJ1Y3QgYWdwX2JyaWRnZV9kcml2ZXIgdTNfYWdwX2RyaXZlciA9IHsKQEAgLTUzNiw4ICs1MzYsOCBAQAogCS5hZ3BfYWxsb2NfcGFnZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlCT0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlCT0gMSwKLQkubmVlZHNfc2NyYXRjaF9wYWdlCT0gMSwKKwkuY2FudF91c2VfYXBlcnR1cmUJPSB0cnVlLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogfTsKIAogc3RhdGljIHN0cnVjdCBhZ3BfZGV2aWNlX2lkcyB1bmlub3J0aF9hZ3BfZGV2aWNlX2lkc1tdIF9fZGV2aW5pdGRhdGEgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL3ZpYS1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCmluZGV4IDBlY2M1NGQuLjdiMzY0NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCkBAIC0zODksMTEgKzM4OSwyMCBAQAogCQkuZGV2aWNlX2lkICA9IFBDSV9ERVZJQ0VfSURfVklBX1ZUMzMyNCwKIAkJLmNoaXBzZXRfbmFtZSAgID0gIkNYNzAwIiwKIAl9LAotCS8qIFZUMzMzNiAqLworCS8qIFZUMzMzNiAtIHRoaXMgaXMgYSBjaGlwc2V0IGZvciBBTUQgQXRobG9uL0s4IENQVS4gRHVlIHRvIEs4J3MgdW5pcXVlCisJICogYXJjaGl0ZWN0dXJlLCB0aGUgQUdQIHJlc291cmNlIGFuZCBiZWhhdmlvciBhcmUgZGlmZmVyZW50IGZyb20KKwkgKiB0aGUgdHJhZGl0aW9uYWwgQUdQIHdoaWNoIHJlc2lkZXMgb25seSBpbiBjaGlwc2V0LiBBR1AgaXMgdXNlZAorCSAqIGJ5IDNEIGRyaXZlciB3aGljaCB3YXNuJ3QgYXZhaWxhYmxlIGZvciB0aGUgVlQzMzM2IGFuZCBWVDMzNjQKKwkgKiBnZW5lcmF0aW9uIHVudGlsIG5vdy4gIFVuZm9ydHVuYXRlbHksIGJ5IHRlc3RpbmcsIFZUMzM2NCB3b3JrcworCSAqIGJ1dCBWVDMzMzYgZG9lc24ndC4gLSBleHBsYWluYXRpb24gZnJvbSB2aWEsIGp1c3QgbGVhdmUgdGhpcyBhcworCSAqIGFzIGEgcGxhY2Vob2xkZXIgdG8gYXZvaWQgZnV0dXJlIHBhdGNoZXMgYWRkaW5nIGl0IGJhY2sgaW4uCisJICovCisjaWYgMAogCXsKIAkJLmRldmljZV9pZCAgPSBQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzMzYsCiAJCS5jaGlwc2V0X25hbWUgICA9ICJWVDMzMzYiLAogCX0sCisjZW5kaWYKIAkvKiBQNE04OTAgKi8KIAl7CiAJCS5kZXZpY2VfaWQgID0gUENJX0RFVklDRV9JRF9WSUFfUDRNODkwLApAQCAtNTQ2LDggKzU1NSw4IEBACiAJSUQoUENJX0RFVklDRV9JRF9WSUFfMzI5Nl8wKSwKIAlJRChQQ0lfREVWSUNFX0lEX1ZJQV9QNE04MDBDRSksCiAJSUQoUENJX0RFVklDRV9JRF9WSUFfVlQzMzI0KSwKLQlJRChQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzMzYpLAogCUlEKFBDSV9ERVZJQ0VfSURfVklBX1A0TTg5MCksCisJSUQoUENJX0RFVklDRV9JRF9WSUFfVlQzMzY0KSwKIAl7IH0KIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hcG0tZW11bGF0aW9uLmMgYi9kcml2ZXJzL2NoYXIvYXBtLWVtdWxhdGlvbi5jCmluZGV4IGNkZDg3NmQuLmRhOGExNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hcG0tZW11bGF0aW9uLmMKKysrIGIvZHJpdmVycy9jaGFyL2FwbS1lbXVsYXRpb24uYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC00MTYsNiArNDE3LDcgQEAKIHsKIAlzdHJ1Y3QgYXBtX3VzZXIgKmFzOwogCisJbG9ja19rZXJuZWwoKTsKIAlhcyA9IGt6YWxsb2Moc2l6ZW9mKCphcyksIEdGUF9LRVJORUwpOwogCWlmIChhcykgewogCQkvKgpAQCAtNDM1LDYgKzQzNyw3IEBACiAKIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gYXM7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiBhcyA/IDAgOiAtRU5PTUVNOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2JyaXFfcGFuZWwuYyBiL2RyaXZlcnMvY2hhci9icmlxX3BhbmVsLmMKaW5kZXggYjZmMjYzOS4uZDhjZmY5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2JyaXFfcGFuZWwuYworKysgYi9kcml2ZXJzL2NoYXIvYnJpcV9wYW5lbC5jCkBAIC02LDYgKzYsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KQEAgLTY3LDExICs2OCwxNSBAQAogCiBzdGF0aWMgaW50IGJyaXFfcGFuZWxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZpbGUgKmZpbGVwKQogewotCS8qIGVuZm9yY2Ugc2luZ2xlIGFjY2VzcyAqLwotCWlmICh2ZmRfaXNfb3BlbikKKwlsb2NrX2tlcm5lbCgpOworCS8qIGVuZm9yY2Ugc2luZ2xlIGFjY2VzcywgdmZkX2lzX29wZW4gaXMgcHJvdGVjdGVkIGJ5IEJLTCAqLworCWlmICh2ZmRfaXNfb3BlbikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCXZmZF9pc19vcGVuID0gMTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2NzNTUzNV9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYwppbmRleCBjMGE0YTBiLi4wNGJhOTA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKQEAgLTE1Nyw2ICsxNTgsNyBAQAogewogCXUzMiBtID0gaW1pbm9yKGlub2RlKTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyogdGhlIG1hc2sgc2F5cyB3aGljaCBwaW5zIGFyZSB1c2FibGUgYnkgdGhpcyBkcml2ZXIgKi8KIAlpZiAoKG1hc2sgJiAoMSA8PCBtKSkgPT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYyBiL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCmluZGV4IGVmNzNlNzIuLjZiZmY5ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCisrKyBiL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCkBAIC00NjY4LDcgKzQ2NjgsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19kZXZpbml0IGN5el9mcGdhX2NvcHkodm9pZCBfX2lvbWVtICpmcGdhLCB1OCAqZGF0YSwKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2RldmluaXQgY3l6X2ZwZ2FfY29weSh2b2lkIF9faW9tZW0gKmZwZ2EsIGNvbnN0IHU4ICpkYXRhLAogCQl1bnNpZ25lZCBpbnQgc2l6ZSkKIHsKIAlmb3IgKDsgc2l6ZSA+IDA7IHNpemUtLSkgewpAQCAtNDcwMSwxMCArNDcwMSwxMCBAQAogCQljb25zdCBjaGFyICpuYW1lLCBjb25zdCB1MzIgbWFpbGJveCwgdm9pZCBfX2lvbWVtICpiYXNlLAogCQl2b2lkIF9faW9tZW0gKmZwZ2EpCiB7Ci0Jdm9pZCAqcHRyID0gZnctPmRhdGE7Ci0Jc3RydWN0IHpmaWxlX2hlYWRlciAqaCA9IHB0cjsKLQlzdHJ1Y3QgemZpbGVfY29uZmlnICpjLCAqY3M7Ci0Jc3RydWN0IHpmaWxlX2Jsb2NrICpiLCAqYnM7CisJY29uc3Qgdm9pZCAqcHRyID0gZnctPmRhdGE7CisJY29uc3Qgc3RydWN0IHpmaWxlX2hlYWRlciAqaCA9IHB0cjsKKwljb25zdCBzdHJ1Y3QgemZpbGVfY29uZmlnICpjLCAqY3M7CisJY29uc3Qgc3RydWN0IHpmaWxlX2Jsb2NrICpiLCAqYnM7CiAJdW5zaWduZWQgaW50IGEsIHRtcCwgbGVuID0gZnctPnNpemU7CiAjZGVmaW5lIEJBRF9GVyBLRVJOX0VSUiAiQmFkIGZpcm13YXJlOiAiCiAJaWYgKGxlbiA8IHNpemVvZigqaCkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2NoYXIvZHJtL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjgzZGVkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKLSMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCi0KLWRybS1vYmpzICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRybV9kbWEubyBkcm1fZHJhd2FibGUubyBcCi0JCWRybV9kcnYubyBkcm1fZm9wcy5vIGRybV9pb2N0bC5vIGRybV9pcnEubyBcCi0JCWRybV9sb2NrLm8gZHJtX21lbW9yeS5vIGRybV9wcm9jLm8gZHJtX3N0dWIubyBkcm1fdm0ubyBcCi0JCWRybV9hZ3BzdXBwb3J0Lm8gZHJtX3NjYXR0ZXIubyBhdGlfcGNpZ2FydC5vIGRybV9wY2kubyBcCi0JCWRybV9zeXNmcy5vIGRybV9oYXNodGFiLm8gZHJtX3NtYW4ubyBkcm1fbW0ubwotCi10ZGZ4LW9ianMgICA6PSB0ZGZ4X2Rydi5vCi1yMTI4LW9ianMgICA6PSByMTI4X2Rydi5vIHIxMjhfY2NlLm8gcjEyOF9zdGF0ZS5vIHIxMjhfaXJxLm8KLW1nYS1vYmpzICAgIDo9IG1nYV9kcnYubyBtZ2FfZG1hLm8gbWdhX3N0YXRlLm8gbWdhX3dhcnAubyBtZ2FfaXJxLm8KLWk4MTAtb2JqcyAgIDo9IGk4MTBfZHJ2Lm8gaTgxMF9kbWEubwotaTgzMC1vYmpzICAgOj0gaTgzMF9kcnYubyBpODMwX2RtYS5vIGk4MzBfaXJxLm8KLWk5MTUtb2JqcyAgIDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIGk5MTVfbWVtLm8KLXJhZGVvbi1vYmpzIDo9IHJhZGVvbl9kcnYubyByYWRlb25fY3AubyByYWRlb25fc3RhdGUubyByYWRlb25fbWVtLm8gcmFkZW9uX2lycS5vIHIzMDBfY21kYnVmLm8KLXNpcy1vYmpzICAgIDo9IHNpc19kcnYubyBzaXNfbW0ubwotc2F2YWdlLW9ianMgOj0gc2F2YWdlX2Rydi5vIHNhdmFnZV9iY2kubyBzYXZhZ2Vfc3RhdGUubwotdmlhLW9ianMgICAgOj0gdmlhX2lycS5vIHZpYV9kcnYubyB2aWFfbWFwLm8gdmlhX21tLm8gdmlhX2RtYS5vIHZpYV92ZXJpZmllci5vIHZpYV92aWRlby5vIHZpYV9kbWFibGl0Lm8KLQotaWZlcSAoJChDT05GSUdfQ09NUEFUKSx5KQotZHJtLW9ianMgICAgKz0gZHJtX2lvYzMyLm8KLXJhZGVvbi1vYmpzICs9IHJhZGVvbl9pb2MzMi5vCi1tZ2Etb2JqcyAgICArPSBtZ2FfaW9jMzIubwotcjEyOC1vYmpzICAgKz0gcjEyOF9pb2MzMi5vCi1pOTE1LW9ianMgICArPSBpOTE1X2lvYzMyLm8KLWVuZGlmCi0KLW9iai0kKENPTkZJR19EUk0pCSs9IGRybS5vCi1vYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngubwotb2JqLSQoQ09ORklHX0RSTV9SMTI4KQkrPSByMTI4Lm8KLW9iai0kKENPTkZJR19EUk1fUkFERU9OKSs9IHJhZGVvbi5vCi1vYmotJChDT05GSUdfRFJNX01HQSkJKz0gbWdhLm8KLW9iai0kKENPTkZJR19EUk1fSTgxMCkJKz0gaTgxMC5vCi1vYmotJChDT05GSUdfRFJNX0k4MzApCSs9IGk4MzAubwotb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS5vCi1vYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMubwotb2JqLSQoQ09ORklHX0RSTV9TQVZBR0UpKz0gc2F2YWdlLm8KLW9iai0kKENPTkZJR19EUk1fVklBKQkrPXZpYS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2F0aV9wY2lnYXJ0LmMgYi9kcml2ZXJzL2NoYXIvZHJtL2F0aV9wY2lnYXJ0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MTA0MjYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9hdGlfcGNpZ2FydC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLS8qKgotICogXGZpbGUgYXRpX3BjaWdhcnQuYwotICogQVRJIFBDSSBHQVJUIHN1cHBvcnQKLSAqCi0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogV2VkIERlYyAxMyAyMTo1MjoxOSAyMDAwIGJ5IGdhcmV0aEB2YWxpbnV4LmNvbQotICoKLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0KLSMgZGVmaW5lIEFUSV9QQ0lHQVJUX1BBR0VfU0laRQkJNDA5NgkvKio8IFBDSSBHQVJUIHBhZ2Ugc2l6ZSAqLwotCi1zdGF0aWMgaW50IGRybV9hdGlfYWxsb2NfcGNpZ2FydF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSA9IGRybV9wY2lfYWxsb2MoZGV2LCBnYXJ0X2luZm8tPnRhYmxlX3NpemUsCi0JCQkJCQlQQUdFX1NJWkUsCi0JCQkJCQlnYXJ0X2luZm8tPnRhYmxlX21hc2spOwotCWlmIChnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkcm1fYXRpX2ZyZWVfcGNpZ2FydF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlkcm1fcGNpX2ZyZWUoZGV2LCBnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSk7Ci0JZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUgPSBOVUxMOwotfQotCi1pbnQgZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICpnYXJ0X2luZm8pCi17Ci0Jc3RydWN0IGRybV9zZ19tZW0gKmVudHJ5ID0gZGV2LT5zZzsKLQl1bnNpZ25lZCBsb25nIHBhZ2VzOwotCWludCBpOwotCWludCBtYXhfcGFnZXM7Ci0KLQkvKiB3ZSBuZWVkIHRvIHN1cHBvcnQgbGFyZ2UgbWVtb3J5IGNvbmZpZ3VyYXRpb25zICovCi0JaWYgKCFlbnRyeSkgewotCQlEUk1fRVJST1IoIm5vIHNjYXR0ZXIvZ2F0aGVyIG1lbW9yeSFcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoZ2FydF9pbmZvLT5idXNfYWRkcikgewotCi0JCW1heF9wYWdlcyA9IChnYXJ0X2luZm8tPnRhYmxlX3NpemUgLyBzaXplb2YodTMyKSk7Ci0JCXBhZ2VzID0gKGVudHJ5LT5wYWdlcyA8PSBtYXhfcGFnZXMpCi0JCSAgPyBlbnRyeS0+cGFnZXMgOiBtYXhfcGFnZXM7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHBhZ2VzOyBpKyspIHsKLQkJCWlmICghZW50cnktPmJ1c2FkZHJbaV0pCi0JCQkJYnJlYWs7Ci0JCQlwY2lfdW5tYXBfc2luZ2xlKGRldi0+cGRldiwgZW50cnktPmJ1c2FkZHJbaV0sCi0JCQkJCSBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQl9Ci0KLQkJaWYgKGdhcnRfaW5mby0+Z2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfTUFJTikKLQkJCWdhcnRfaW5mby0+YnVzX2FkZHIgPSAwOwotCX0KLQotCWlmIChnYXJ0X2luZm8tPmdhcnRfdGFibGVfbG9jYXRpb24gPT0gRFJNX0FUSV9HQVJUX01BSU4gJiYKLQkgICAgZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUpIHsKLQkJZHJtX2F0aV9mcmVlX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOwotCX0KLQotCXJldHVybiAxOwotfQotRVhQT1JUX1NZTUJPTChkcm1fYXRpX3BjaWdhcnRfY2xlYW51cCk7Ci0KLWludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlzdHJ1Y3QgZHJtX3NnX21lbSAqZW50cnkgPSBkZXYtPnNnOwotCXZvaWQgKmFkZHJlc3MgPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcgcGFnZXM7Ci0JdTMyICpwY2lfZ2FydCwgcGFnZV9iYXNlOwotCWRtYV9hZGRyX3QgYnVzX2FkZHJlc3MgPSAwOwotCWludCBpLCBqLCByZXQgPSAwOwotCWludCBtYXhfcGFnZXM7Ci0KLQlpZiAoIWVudHJ5KSB7Ci0JCURSTV9FUlJPUigibm8gc2NhdHRlci9nYXRoZXIgbWVtb3J5IVxuIik7Ci0JCWdvdG8gZG9uZTsKLQl9Ci0KLQlpZiAoZ2FydF9pbmZvLT5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9NQUlOKSB7Ci0JCURSTV9ERUJVRygiUENJOiBubyB0YWJsZSBpbiBWUkFNOiB1c2luZyBub3JtYWwgUkFNXG4iKTsKLQotCQlyZXQgPSBkcm1fYXRpX2FsbG9jX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fRVJST1IoImNhbm5vdCBhbGxvY2F0ZSBQQ0kgR0FSVCBwYWdlIVxuIik7Ci0JCQlnb3RvIGRvbmU7Ci0JCX0KLQotCQlhZGRyZXNzID0gZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUtPnZhZGRyOwotCQlidXNfYWRkcmVzcyA9IGdhcnRfaW5mby0+dGFibGVfaGFuZGxlLT5idXNhZGRyOwotCX0gZWxzZSB7Ci0JCWFkZHJlc3MgPSBnYXJ0X2luZm8tPmFkZHI7Ci0JCWJ1c19hZGRyZXNzID0gZ2FydF9pbmZvLT5idXNfYWRkcjsKLQkJRFJNX0RFQlVHKCJQQ0k6IEdhcnQgVGFibGU6IFZSQU0gJTA4TFggbWFwcGVkIGF0ICUwOGxYXG4iLAotCQkJICAodW5zaWduZWQgbG9uZyBsb25nKWJ1c19hZGRyZXNzLAotCQkJICAodW5zaWduZWQgbG9uZylhZGRyZXNzKTsKLQl9Ci0KLQlwY2lfZ2FydCA9ICh1MzIgKikgYWRkcmVzczsKLQotCW1heF9wYWdlcyA9IChnYXJ0X2luZm8tPnRhYmxlX3NpemUgLyBzaXplb2YodTMyKSk7Ci0JcGFnZXMgPSAoZW50cnktPnBhZ2VzIDw9IG1heF9wYWdlcykKLQkgICAgPyBlbnRyeS0+cGFnZXMgOiBtYXhfcGFnZXM7Ci0KLQltZW1zZXQocGNpX2dhcnQsIDAsIG1heF9wYWdlcyAqIHNpemVvZih1MzIpKTsKLQotCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgaSsrKSB7Ci0JCS8qIHdlIG5lZWQgdG8gc3VwcG9ydCBsYXJnZSBtZW1vcnkgY29uZmlndXJhdGlvbnMgKi8KLQkJZW50cnktPmJ1c2FkZHJbaV0gPSBwY2lfbWFwX3NpbmdsZShkZXYtPnBkZXYsCi0JCQkJCQkgICBwYWdlX2FkZHJlc3MoZW50cnktPgotCQkJCQkJCQlwYWdlbGlzdFtpXSksCi0JCQkJCQkgICBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQlpZiAoZW50cnktPmJ1c2FkZHJbaV0gPT0gMCkgewotCQkJRFJNX0VSUk9SKCJ1bmFibGUgdG8gbWFwIFBDSUdBUlQgcGFnZXMhXG4iKTsKLQkJCWRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKGRldiwgZ2FydF9pbmZvKTsKLQkJCWFkZHJlc3MgPSBOVUxMOwotCQkJYnVzX2FkZHJlc3MgPSAwOwotCQkJZ290byBkb25lOwotCQl9Ci0JCXBhZ2VfYmFzZSA9ICh1MzIpIGVudHJ5LT5idXNhZGRyW2ldOwotCi0JCWZvciAoaiA9IDA7IGogPCAoUEFHRV9TSVpFIC8gQVRJX1BDSUdBUlRfUEFHRV9TSVpFKTsgaisrKSB7Ci0JCQlzd2l0Y2goZ2FydF9pbmZvLT5nYXJ0X3JlZ19pZikgewotCQkJY2FzZSBEUk1fQVRJX0dBUlRfSUdQOgotCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKChwYWdlX2Jhc2UpIHwgMHhjKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgRFJNX0FUSV9HQVJUX1BDSUU6Ci0JCQkJKnBjaV9nYXJ0ID0gY3B1X3RvX2xlMzIoKHBhZ2VfYmFzZSA+PiA4KSB8IDB4Yyk7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJY2FzZSBEUk1fQVRJX0dBUlRfUENJOgotCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKHBhZ2VfYmFzZSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlwY2lfZ2FydCsrOwotCQkJcGFnZV9iYXNlICs9IEFUSV9QQ0lHQVJUX1BBR0VfU0laRTsKLQkJfQotCX0KLQlyZXQgPSAxOwotCi0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotCXdiaW52ZCgpOwotI2Vsc2UKLQltYigpOwotI2VuZGlmCi0KLSAgICAgIGRvbmU6Ci0JZ2FydF9pbmZvLT5hZGRyID0gYWRkcmVzczsKLQlnYXJ0X2luZm8tPmJ1c19hZGRyID0gYnVzX2FkZHJlc3M7Ci0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2F0aV9wY2lnYXJ0X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm0uaCBiL2RyaXZlcnMvY2hhci9kcm0vZHJtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMDVjNmQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm0uaAorKysgL2Rldi9udWxsCkBAIC0xLDY5NCArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRybS5oCi0gKiBIZWFkZXIgZm9yIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgotICoKLSAqIFxwYXIgQWNrbm93bGVkZ21lbnRzOgotICogRGVjIDE5OTksIFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdHdpZGRsZS5uZXQ+LCBtb3ZlIHRvIGdlbmVyaWMgXGMgY21weGNoZy4KLSAqLwotCi0vKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaWZuZGVmIF9EUk1fSF8KLSNkZWZpbmUgX0RSTV9IXwotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pCi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKQotI2VuZGlmCi0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+CQkvKiBGb3IgX0lPKiBtYWNyb3MgKi8KLSNkZWZpbmUgRFJNX0lPQ1RMX05SKG4pCQlfSU9DX05SKG4pCi0jZGVmaW5lIERSTV9JT0NfVk9JRAkJX0lPQ19OT05FCi0jZGVmaW5lIERSTV9JT0NfUkVBRAkJX0lPQ19SRUFECi0jZGVmaW5lIERSTV9JT0NfV1JJVEUJCV9JT0NfV1JJVEUKLSNkZWZpbmUgRFJNX0lPQ19SRUFEV1JJVEUJX0lPQ19SRUFEfF9JT0NfV1JJVEUKLSNkZWZpbmUgRFJNX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkgX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykKLSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBkZWZpbmVkKElOX01PRFVMRSkKLS8qIFByZXZlbnQgbmFtZSBjb2xsaXNpb24gd2hlbiBpbmNsdWRpbmcgc3lzL2lvY2NvbS5oICovCi0jdW5kZWYgaW9jdGwKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0jZGVmaW5lIGlvY3RsKGEsYixjKQkJeGY4NmlvY3RsKGEsYixjKQotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0jZW5kaWYJCQkJLyogX19GcmVlQlNEX18gJiYgeGY4NmlvY3RsICovCi0jZGVmaW5lIERSTV9JT0NUTF9OUihuKQkJKChuKSAmIDB4ZmYpCi0jZGVmaW5lIERSTV9JT0NfVk9JRAkJSU9DX1ZPSUQKLSNkZWZpbmUgRFJNX0lPQ19SRUFECQlJT0NfT1VUCi0jZGVmaW5lIERSTV9JT0NfV1JJVEUJCUlPQ19JTgotI2RlZmluZSBEUk1fSU9DX1JFQURXUklURQlJT0NfSU5PVVQKLSNkZWZpbmUgRFJNX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkgX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkKLSNlbmRpZgotCi0jZGVmaW5lIERSTV9NQUpPUiAgICAgICAyMjYKLSNkZWZpbmUgRFJNX01BWF9NSU5PUiAgIDE1Ci0KLSNkZWZpbmUgRFJNX05BTUUJImRybSIJICAvKio8IE5hbWUgaW4ga2VybmVsLCAvZGV2LCBhbmQgL3Byb2MgKi8KLSNkZWZpbmUgRFJNX01JTl9PUkRFUgk1CSAgLyoqPCBBdCBsZWFzdCAyXjUgYnl0ZXMgPSAzMiBieXRlcyAqLwotI2RlZmluZSBEUk1fTUFYX09SREVSCTIyCSAgLyoqPCBVcCB0byAyXjIyIGJ5dGVzID0gNE1CICovCi0jZGVmaW5lIERSTV9SQU1fUEVSQ0VOVCAxMAkgIC8qKjwgSG93IG11Y2ggc3lzdGVtIHJhbSBjYW4gd2UgbG9jaz8gKi8KLQotI2RlZmluZSBfRFJNX0xPQ0tfSEVMRAkweDgwMDAwMDAwVSAvKio8IEhhcmR3YXJlIGxvY2sgaXMgaGVsZCAqLwotI2RlZmluZSBfRFJNX0xPQ0tfQ09OVAkweDQwMDAwMDAwVSAvKio8IEhhcmR3YXJlIGxvY2sgaXMgY29udGVuZGVkICovCi0jZGVmaW5lIF9EUk1fTE9DS19JU19IRUxEKGxvY2spCSAgICgobG9jaykgJiBfRFJNX0xPQ0tfSEVMRCkKLSNkZWZpbmUgX0RSTV9MT0NLX0lTX0NPTlQobG9jaykJICAgKChsb2NrKSAmIF9EUk1fTE9DS19DT05UKQotI2RlZmluZSBfRFJNX0xPQ0tJTkdfQ09OVEVYVChsb2NrKSAoKGxvY2spICYgfihfRFJNX0xPQ0tfSEVMRHxfRFJNX0xPQ0tfQ09OVCkpCi0KLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9oYW5kbGVfdDsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9jb250ZXh0X3Q7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fZHJhd2FibGVfdDsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9tYWdpY190OwotCi0vKioKLSAqIENsaXByZWN0LgotICoKLSAqIFx3YXJuaW5nOiBJZiB5b3UgY2hhbmdlIHRoaXMgc3RydWN0dXJlLCBtYWtlIHN1cmUgeW91IGNoYW5nZQotICogWEY4NkRSSUNsaXBSZWN0UmVjIGluIHRoZSBzZXJ2ZXIgYXMgd2VsbAotICoKLSAqIFxub3RlIEtXOiBBY3R1YWxseSBpdCdzIGlsbGVnYWwgdG8gY2hhbmdlIGVpdGhlciBmb3IKLSAqIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMuCi0gKi8KLXN0cnVjdCBkcm1fY2xpcF9yZWN0IHsKLQl1bnNpZ25lZCBzaG9ydCB4MTsKLQl1bnNpZ25lZCBzaG9ydCB5MTsKLQl1bnNpZ25lZCBzaG9ydCB4MjsKLQl1bnNpZ25lZCBzaG9ydCB5MjsKLX07Ci0KLS8qKgotICogRHJhd2FibGUgaW5mb3JtYXRpb24uCi0gKi8KLXN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyB7Ci0JdW5zaWduZWQgaW50IG51bV9yZWN0czsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcmVjdHM7Ci19OwotCi0vKioKLSAqIFRleHR1cmUgcmVnaW9uLAotICovCi1zdHJ1Y3QgZHJtX3RleF9yZWdpb24gewotCXVuc2lnbmVkIGNoYXIgbmV4dDsKLQl1bnNpZ25lZCBjaGFyIHByZXY7Ci0JdW5zaWduZWQgY2hhciBpbl91c2U7Ci0JdW5zaWduZWQgY2hhciBwYWRkaW5nOwotCXVuc2lnbmVkIGludCBhZ2U7Ci19OwotCi0vKioKLSAqIEhhcmR3YXJlIGxvY2suCi0gKgotICogVGhlIGxvY2sgc3RydWN0dXJlIGlzIGEgc2ltcGxlIGNhY2hlLWxpbmUgYWxpZ25lZCBpbnRlZ2VyLiAgVG8gYXZvaWQKLSAqIHByb2Nlc3NvciBidXMgY29udGVudGlvbiBvbiBhIG11bHRpcHJvY2Vzc29yIHN5c3RlbSwgdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkKLSAqIG90aGVyIGRhdGEgc3RvcmVkIGluIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gKi8KLXN0cnVjdCBkcm1faHdfbG9jayB7Ci0JX192b2xhdGlsZV9fIHVuc2lnbmVkIGludCBsb2NrOwkJLyoqPCBsb2NrIHZhcmlhYmxlICovCi0JY2hhciBwYWRkaW5nWzYwXTsJCQkvKio8IFBhZCB0byBjYWNoZSBsaW5lICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9WRVJTSU9OIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldFZlcnNpb24oKS4KLSAqLwotc3RydWN0IGRybV92ZXJzaW9uIHsKLQlpbnQgdmVyc2lvbl9tYWpvcjsJICAvKio8IE1ham9yIHZlcnNpb24gKi8KLQlpbnQgdmVyc2lvbl9taW5vcjsJICAvKio8IE1pbm9yIHZlcnNpb24gKi8KLQlpbnQgdmVyc2lvbl9wYXRjaGxldmVsOwkgIC8qKjwgUGF0Y2ggbGV2ZWwgKi8KLQlzaXplX3QgbmFtZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgbmFtZSBidWZmZXIgKi8KLQljaGFyIF9fdXNlciAqbmFtZTsJICAvKio8IE5hbWUgb2YgZHJpdmVyICovCi0Jc2l6ZV90IGRhdGVfbGVuOwkgIC8qKjwgTGVuZ3RoIG9mIGRhdGUgYnVmZmVyICovCi0JY2hhciBfX3VzZXIgKmRhdGU7CSAgLyoqPCBVc2VyLXNwYWNlIGJ1ZmZlciB0byBob2xkIGRhdGUgKi8KLQlzaXplX3QgZGVzY19sZW47CSAgLyoqPCBMZW5ndGggb2YgZGVzYyBidWZmZXIgKi8KLQljaGFyIF9fdXNlciAqZGVzYzsJICAvKio8IFVzZXItc3BhY2UgYnVmZmVyIHRvIGhvbGQgZGVzYyAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX1VOSVFVRSBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1HZXRCdXNpZCgpIGFuZCBkcm1TZXRCdXNJZCgpLgotICovCi1zdHJ1Y3QgZHJtX3VuaXF1ZSB7Ci0Jc2l6ZV90IHVuaXF1ZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgdW5pcXVlICovCi0JY2hhciBfX3VzZXIgKnVuaXF1ZTsJICAvKio8IFVuaXF1ZSBuYW1lIGZvciBkcml2ZXIgaW5zdGFudGlhdGlvbiAqLwotfTsKLQotc3RydWN0IGRybV9saXN0IHsKLQlpbnQgY291bnQ7CQkgIC8qKjwgTGVuZ3RoIG9mIHVzZXItc3BhY2Ugc3RydWN0dXJlcyAqLwotCXN0cnVjdCBkcm1fdmVyc2lvbiBfX3VzZXIgKnZlcnNpb247Ci19OwotCi1zdHJ1Y3QgZHJtX2Jsb2NrIHsKLQlpbnQgdW51c2VkOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQ09OVFJPTCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1DdGxJbnN0SGFuZGxlcigpIGFuZCBkcm1DdGxVbmluc3RIYW5kbGVyKCkuCi0gKi8KLXN0cnVjdCBkcm1fY29udHJvbCB7Ci0JZW51bSB7Ci0JCURSTV9BRERfQ09NTUFORCwKLQkJRFJNX1JNX0NPTU1BTkQsCi0JCURSTV9JTlNUX0hBTkRMRVIsCi0JCURSTV9VTklOU1RfSEFORExFUgotCX0gZnVuYzsKLQlpbnQgaXJxOwotfTsKLQotLyoqCi0gKiBUeXBlIG9mIG1lbW9yeSB0byBtYXAuCi0gKi8KLWVudW0gZHJtX21hcF90eXBlIHsKLQlfRFJNX0ZSQU1FX0JVRkZFUiA9IDAsCSAgLyoqPCBXQyAobm8gY2FjaGluZyksIG5vIGNvcmUgZHVtcCAqLwotCV9EUk1fUkVHSVNURVJTID0gMSwJICAvKio8IG5vIGNhY2hpbmcsIG5vIGNvcmUgZHVtcCAqLwotCV9EUk1fU0hNID0gMiwJCSAgLyoqPCBzaGFyZWQsIGNhY2hlZCAqLwotCV9EUk1fQUdQID0gMywJCSAgLyoqPCBBR1AvR0FSVCAqLwotCV9EUk1fU0NBVFRFUl9HQVRIRVIgPSA0LCAgLyoqPCBTY2F0dGVyL2dhdGhlciBtZW1vcnkgZm9yIFBDSSBETUEgKi8KLQlfRFJNX0NPTlNJU1RFTlQgPSA1LAkgIC8qKjwgQ29uc2lzdGVudCBtZW1vcnkgZm9yIFBDSSBETUEgKi8KLX07Ci0KLS8qKgotICogTWVtb3J5IG1hcHBpbmcgZmxhZ3MuCi0gKi8KLWVudW0gZHJtX21hcF9mbGFncyB7Ci0JX0RSTV9SRVNUUklDVEVEID0gMHgwMSwJICAgICAvKio8IENhbm5vdCBiZSBtYXBwZWQgdG8gdXNlci12aXJ0dWFsICovCi0JX0RSTV9SRUFEX09OTFkgPSAweDAyLAotCV9EUk1fTE9DS0VEID0gMHgwNCwJICAgICAvKio8IHNoYXJlZCwgY2FjaGVkLCBsb2NrZWQgKi8KLQlfRFJNX0tFUk5FTCA9IDB4MDgsCSAgICAgLyoqPCBrZXJuZWwgcmVxdWlyZXMgYWNjZXNzICovCi0JX0RSTV9XUklURV9DT01CSU5JTkcgPSAweDEwLCAvKio8IHVzZSB3cml0ZS1jb21iaW5pbmcgaWYgYXZhaWxhYmxlICovCi0JX0RSTV9DT05UQUlOU19MT0NLID0gMHgyMCwgICAvKio8IFNITSBwYWdlIHRoYXQgY29udGFpbnMgbG9jayAqLwotCV9EUk1fUkVNT1ZBQkxFID0gMHg0MCwJICAgICAvKio8IFJlbW92YWJsZSBtYXBwaW5nICovCi0JX0RSTV9EUklWRVIgPSAweDgwCSAgICAgLyoqPCBNYW5hZ2VkIGJ5IGRyaXZlciAqLwotfTsKLQotc3RydWN0IGRybV9jdHhfcHJpdl9tYXAgewotCXVuc2lnbmVkIGludCBjdHhfaWQ7CSAvKio8IENvbnRleHQgcmVxdWVzdGluZyBwcml2YXRlIG1hcHBpbmcgKi8KLQl2b2lkICpoYW5kbGU7CQkgLyoqPCBIYW5kbGUgb2YgbWFwICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9HRVRfTUFQLCBEUk1fSU9DVExfQUREX01BUCBhbmQgRFJNX0lPQ1RMX1JNX01BUCBpb2N0bHMKLSAqIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUFkZE1hcCgpLgotICovCi1zdHJ1Y3QgZHJtX21hcCB7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAvKio8IFJlcXVlc3RlZCBwaHlzaWNhbCBhZGRyZXNzICgwIGZvciBTQVJFQSkqLwotCXVuc2lnbmVkIGxvbmcgc2l6ZTsJIC8qKjwgUmVxdWVzdGVkIHBoeXNpY2FsIHNpemUgKGJ5dGVzKSAqLwotCWVudW0gZHJtX21hcF90eXBlIHR5cGU7CSAvKio8IFR5cGUgb2YgbWVtb3J5IHRvIG1hcCAqLwotCWVudW0gZHJtX21hcF9mbGFncyBmbGFnczsJIC8qKjwgRmxhZ3MgKi8KLQl2b2lkICpoYW5kbGU7CQkgLyoqPCBVc2VyLXNwYWNlOiAiSGFuZGxlIiB0byBwYXNzIHRvIG1tYXAoKSAqLwotCQkJCSAvKio8IEtlcm5lbC1zcGFjZToga2VybmVsLXZpcnR1YWwgYWRkcmVzcyAqLwotCWludCBtdHJyOwkJIC8qKjwgTVRSUiBzbG90IHVzZWQgKi8KLQkvKiAgIFByaXZhdGUgZGF0YSAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX0NMSUVOVCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2NsaWVudCB7Ci0JaW50IGlkeDsJCS8qKjwgV2hpY2ggY2xpZW50IGRlc2lyZWQ/ICovCi0JaW50IGF1dGg7CQkvKio8IElzIGNsaWVudCBhdXRoZW50aWNhdGVkPyAqLwotCXVuc2lnbmVkIGxvbmcgcGlkOwkvKio8IFByb2Nlc3MgSUQgKi8KLQl1bnNpZ25lZCBsb25nIHVpZDsJLyoqPCBVc2VyIElEICovCi0JdW5zaWduZWQgbG9uZyBtYWdpYzsJLyoqPCBNYWdpYyAqLwotCXVuc2lnbmVkIGxvbmcgaW9jczsJLyoqPCBJb2N0bCBjb3VudCAqLwotfTsKLQotZW51bSBkcm1fc3RhdF90eXBlIHsKLQlfRFJNX1NUQVRfTE9DSywKLQlfRFJNX1NUQVRfT1BFTlMsCi0JX0RSTV9TVEFUX0NMT1NFUywKLQlfRFJNX1NUQVRfSU9DVExTLAotCV9EUk1fU1RBVF9MT0NLUywKLQlfRFJNX1NUQVRfVU5MT0NLUywKLQlfRFJNX1NUQVRfVkFMVUUsCS8qKjwgR2VuZXJpYyB2YWx1ZSAqLwotCV9EUk1fU1RBVF9CWVRFLAkJLyoqPCBHZW5lcmljIGJ5dGUgY291bnRlciAoMTAyNGJ5dGVzL0spICovCi0JX0RSTV9TVEFUX0NPVU5ULAkvKio8IEdlbmVyaWMgbm9uLWJ5dGUgY291bnRlciAoMTAwMC9rKSAqLwotCi0JX0RSTV9TVEFUX0lSUSwJCS8qKjwgSVJRICovCi0JX0RSTV9TVEFUX1BSSU1BUlksCS8qKjwgUHJpbWFyeSBETUEgYnl0ZXMgKi8KLQlfRFJNX1NUQVRfU0VDT05EQVJZLAkvKio8IFNlY29uZGFyeSBETUEgYnl0ZXMgKi8KLQlfRFJNX1NUQVRfRE1BLAkJLyoqPCBETUEgKi8KLQlfRFJNX1NUQVRfU1BFQ0lBTCwJLyoqPCBTcGVjaWFsIERNQSAoZS5nLiwgcHJpb3JpdHkgb3IgcG9sbGVkKSAqLwotCV9EUk1fU1RBVF9NSVNTRUQJLyoqPCBNaXNzZWQgRE1BIG9wcG9ydHVuaXR5ICovCi0JICAgIC8qIEFkZCB0byB0aGUgKkVORCogb2YgdGhlIGxpc3QgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0dFVF9TVEFUUyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX3N0YXRzIHsKLQl1bnNpZ25lZCBsb25nIGNvdW50OwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGxvbmcgdmFsdWU7Ci0JCWVudW0gZHJtX3N0YXRfdHlwZSB0eXBlOwotCX0gZGF0YVsxNV07Ci19OwotCi0vKioKLSAqIEhhcmR3YXJlIGxvY2tpbmcgZmxhZ3MuCi0gKi8KLWVudW0gZHJtX2xvY2tfZmxhZ3MgewotCV9EUk1fTE9DS19SRUFEWSA9IDB4MDEsCSAgICAgLyoqPCBXYWl0IHVudGlsIGhhcmR3YXJlIGlzIHJlYWR5IGZvciBETUEgKi8KLQlfRFJNX0xPQ0tfUVVJRVNDRU5UID0gMHgwMiwgIC8qKjwgV2FpdCB1bnRpbCBoYXJkd2FyZSBxdWllc2NlbnQgKi8KLQlfRFJNX0xPQ0tfRkxVU0ggPSAweDA0LAkgICAgIC8qKjwgRmx1c2ggdGhpcyBjb250ZXh0J3MgRE1BIHF1ZXVlIGZpcnN0ICovCi0JX0RSTV9MT0NLX0ZMVVNIX0FMTCA9IDB4MDgsICAvKio8IEZsdXNoIGFsbCBETUEgcXVldWVzIGZpcnN0ICovCi0JLyogVGhlc2UgKkhBTFQqIGZsYWdzIGFyZW4ndCBzdXBwb3J0ZWQgeWV0Ci0JICAgLS0gdGhleSB3aWxsIGJlIHVzZWQgdG8gc3VwcG9ydCB0aGUKLQkgICBmdWxsLXNjcmVlbiBER0EtbGlrZSBtb2RlLiAqLwotCV9EUk1fSEFMVF9BTExfUVVFVUVTID0gMHgxMCwgLyoqPCBIYWx0IGFsbCBjdXJyZW50IGFuZCBmdXR1cmUgcXVldWVzICovCi0JX0RSTV9IQUxUX0NVUl9RVUVVRVMgPSAweDIwICAvKio8IEhhbHQgYWxsIGN1cnJlbnQgcXVldWVzICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9MT0NLLCBEUk1fSU9DVExfVU5MT0NLIGFuZCBEUk1fSU9DVExfRklOSVNIIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldExvY2soKSBhbmQgZHJtVW5sb2NrKCkuCi0gKi8KLXN0cnVjdCBkcm1fbG9jayB7Ci0JaW50IGNvbnRleHQ7Ci0JZW51bSBkcm1fbG9ja19mbGFncyBmbGFnczsKLX07Ci0KLS8qKgotICogRE1BIGZsYWdzCi0gKgotICogXHdhcm5pbmcKLSAqIFRoZXNlIHZhbHVlcyBcZSBtdXN0IG1hdGNoIHhmODZkcm0uaC4KLSAqCi0gKiBcc2EgZHJtX2RtYS4KLSAqLwotZW51bSBkcm1fZG1hX2ZsYWdzIHsKLQkvKiBGbGFncyBmb3IgRE1BIGJ1ZmZlciBkaXNwYXRjaCAqLwotCV9EUk1fRE1BX0JMT0NLID0gMHgwMSwJICAgICAgLyoqPAotCQkJCSAgICAgICAqIEJsb2NrIHVudGlsIGJ1ZmZlciBkaXNwYXRjaGVkLgotCQkJCSAgICAgICAqCi0JCQkJICAgICAgICogXG5vdGUgVGhlIGJ1ZmZlciBtYXkgbm90IHlldCBoYXZlCi0JCQkJICAgICAgICogYmVlbiBwcm9jZXNzZWQgYnkgdGhlIGhhcmR3YXJlIC0tCi0JCQkJICAgICAgICogZ2V0dGluZyBhIGhhcmR3YXJlIGxvY2sgd2l0aCB0aGUKLQkJCQkgICAgICAgKiBoYXJkd2FyZSBxdWllc2NlbnQgd2lsbCBlbnN1cmUKLQkJCQkgICAgICAgKiB0aGF0IHRoZSBidWZmZXIgaGFzIGJlZW4KLQkJCQkgICAgICAgKiBwcm9jZXNzZWQuCi0JCQkJICAgICAgICovCi0JX0RSTV9ETUFfV0hJTEVfTE9DS0VEID0gMHgwMiwgLyoqPCBEaXNwYXRjaCB3aGlsZSBsb2NrIGhlbGQgKi8KLQlfRFJNX0RNQV9QUklPUklUWSA9IDB4MDQsICAgICAvKio8IEhpZ2ggcHJpb3JpdHkgZGlzcGF0Y2ggKi8KLQotCS8qIEZsYWdzIGZvciBETUEgYnVmZmVyIHJlcXVlc3QgKi8KLQlfRFJNX0RNQV9XQUlUID0gMHgxMCwJICAgICAgLyoqPCBXYWl0IGZvciBmcmVlIGJ1ZmZlcnMgKi8KLQlfRFJNX0RNQV9TTUFMTEVSX09LID0gMHgyMCwgICAvKio8IFNtYWxsZXItdGhhbi1yZXF1ZXN0ZWQgYnVmZmVycyBPSyAqLwotCV9EUk1fRE1BX0xBUkdFUl9PSyA9IDB4NDAgICAgIC8qKjwgTGFyZ2VyLXRoYW4tcmVxdWVzdGVkIGJ1ZmZlcnMgT0sgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FERF9CVUZTIGFuZCBEUk1fSU9DVExfTUFSS19CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUFkZEJ1ZnMoKS4KLSAqLwotc3RydWN0IGRybV9idWZfZGVzYyB7Ci0JaW50IGNvdW50OwkJIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgb2YgdGhpcyBzaXplICovCi0JaW50IHNpemU7CQkgLyoqPCBTaXplIGluIGJ5dGVzICovCi0JaW50IGxvd19tYXJrOwkJIC8qKjwgTG93IHdhdGVyIG1hcmsgKi8KLQlpbnQgaGlnaF9tYXJrOwkJIC8qKjwgSGlnaCB3YXRlciBtYXJrICovCi0JZW51bSB7Ci0JCV9EUk1fUEFHRV9BTElHTiA9IDB4MDEsCS8qKjwgQWxpZ24gb24gcGFnZSBib3VuZGFyaWVzIGZvciBETUEgKi8KLQkJX0RSTV9BR1BfQlVGRkVSID0gMHgwMiwJLyoqPCBCdWZmZXIgaXMgaW4gQUdQIHNwYWNlICovCi0JCV9EUk1fU0dfQlVGRkVSID0gMHgwNCwJLyoqPCBTY2F0dGVyL2dhdGhlciBtZW1vcnkgYnVmZmVyICovCi0JCV9EUk1fRkJfQlVGRkVSID0gMHgwOCwJLyoqPCBCdWZmZXIgaXMgaW4gZnJhbWUgYnVmZmVyICovCi0JCV9EUk1fUENJX0JVRkZFUl9STyA9IDB4MTAgLyoqPCBNYXAgUENJIERNQSBidWZmZXIgcmVhZC1vbmx5ICovCi0JfSBmbGFnczsKLQl1bnNpZ25lZCBsb25nIGFncF9zdGFydDsgLyoqPAotCQkJCSAgKiBTdGFydCBhZGRyZXNzIG9mIHdoZXJlIHRoZSBBR1AgYnVmZmVycyBhcmUKLQkJCQkgICogaW4gdGhlIEFHUCBhcGVydHVyZQotCQkJCSAgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0lORk9fQlVGUyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2J1Zl9pbmZvIHsKLQlpbnQgY291bnQ7CQkvKio8IEVudHJpZXMgaW4gbGlzdCAqLwotCXN0cnVjdCBkcm1fYnVmX2Rlc2MgX191c2VyICpsaXN0OwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfRlJFRV9CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX2ZyZWUgewotCWludCBjb3VudDsKLQlpbnQgX191c2VyICpsaXN0OwotfTsKLQotLyoqCi0gKiBCdWZmZXIgaW5mb3JtYXRpb24KLSAqCi0gKiBcc2EgZHJtX2J1Zl9tYXAuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX3B1YiB7Ci0JaW50IGlkeDsJCSAgICAgICAvKio8IEluZGV4IGludG8gdGhlIG1hc3RlciBidWZmZXIgbGlzdCAqLwotCWludCB0b3RhbDsJCSAgICAgICAvKio8IEJ1ZmZlciBzaXplICovCi0JaW50IHVzZWQ7CQkgICAgICAgLyoqPCBBbW91bnQgb2YgYnVmZmVyIGluIHVzZSAoZm9yIERNQSkgKi8KLQl2b2lkIF9fdXNlciAqYWRkcmVzczsJICAgICAgIC8qKjwgQWRkcmVzcyBvZiBidWZmZXIgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX01BUF9CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX21hcCB7Ci0JaW50IGNvdW50OwkJLyoqPCBMZW5ndGggb2YgdGhlIGJ1ZmZlciBsaXN0ICovCi0Jdm9pZCBfX3VzZXIgKnZpcnR1YWw7CQkvKio8IE1tYXAnZCBhcmVhIGluIHVzZXItdmlydHVhbCAqLwotCXN0cnVjdCBkcm1fYnVmX3B1YiBfX3VzZXIgKmxpc3Q7CS8qKjwgQnVmZmVyIGluZm9ybWF0aW9uICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9ETUEgaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBJbmRpY2VzIGhlcmUgcmVmZXIgdG8gdGhlIG9mZnNldCBpbnRvIHRoZSBidWZmZXIgbGlzdCBpbiBkcm1fYnVmX2dldC4KLSAqCi0gKiBcc2EgZHJtRE1BKCkuCi0gKi8KLXN0cnVjdCBkcm1fZG1hIHsKLQlpbnQgY29udGV4dDsJCQkgIC8qKjwgQ29udGV4dCBoYW5kbGUgKi8KLQlpbnQgc2VuZF9jb3VudDsJCQkgIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgdG8gc2VuZCAqLwotCWludCBfX3VzZXIgKnNlbmRfaW5kaWNlczsJICAvKio8IExpc3Qgb2YgaGFuZGxlcyB0byBidWZmZXJzICovCi0JaW50IF9fdXNlciAqc2VuZF9zaXplczsJCSAgLyoqPCBMZW5ndGhzIG9mIGRhdGEgdG8gc2VuZCAqLwotCWVudW0gZHJtX2RtYV9mbGFncyBmbGFnczsJICAvKio8IEZsYWdzICovCi0JaW50IHJlcXVlc3RfY291bnQ7CQkgIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgcmVxdWVzdGVkICovCi0JaW50IHJlcXVlc3Rfc2l6ZTsJCSAgLyoqPCBEZXNpcmVkIHNpemUgZm9yIGJ1ZmZlcnMgKi8KLQlpbnQgX191c2VyICpyZXF1ZXN0X2luZGljZXM7CSAgLyoqPCBCdWZmZXIgaW5mb3JtYXRpb24gKi8KLQlpbnQgX191c2VyICpyZXF1ZXN0X3NpemVzOwotCWludCBncmFudGVkX2NvdW50OwkJICAvKio8IE51bWJlciBvZiBidWZmZXJzIGdyYW50ZWQgKi8KLX07Ci0KLWVudW0gZHJtX2N0eF9mbGFncyB7Ci0JX0RSTV9DT05URVhUX1BSRVNFUlZFRCA9IDB4MDEsCi0JX0RSTV9DT05URVhUXzJET05MWSA9IDB4MDIKLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FERF9DVFggaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQ3JlYXRlQ29udGV4dCgpIGFuZCBkcm1EZXN0cm95Q29udGV4dCgpLgotICovCi1zdHJ1Y3QgZHJtX2N0eCB7Ci0JZHJtX2NvbnRleHRfdCBoYW5kbGU7Ci0JZW51bSBkcm1fY3R4X2ZsYWdzIGZsYWdzOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfUkVTX0NUWCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2N0eF9yZXMgewotCWludCBjb3VudDsKLQlzdHJ1Y3QgZHJtX2N0eCBfX3VzZXIgKmNvbnRleHRzOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUREX0RSQVcgYW5kIERSTV9JT0NUTF9STV9EUkFXIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fZHJhdyB7Ci0JZHJtX2RyYXdhYmxlX3QgaGFuZGxlOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfVVBEQVRFX0RSQVcgaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqLwotdHlwZWRlZiBlbnVtIHsKLQlEUk1fRFJBV0FCTEVfQ0xJUFJFQ1RTLAotfSBkcm1fZHJhd2FibGVfaW5mb190eXBlX3Q7Ci0KLXN0cnVjdCBkcm1fdXBkYXRlX2RyYXcgewotCWRybV9kcmF3YWJsZV90IGhhbmRsZTsKLQl1bnNpZ25lZCBpbnQgdHlwZTsKLQl1bnNpZ25lZCBpbnQgbnVtOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBkYXRhOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX01BR0lDIGFuZCBEUk1fSU9DVExfQVVUSF9NQUdJQyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2F1dGggewotCWRybV9tYWdpY190IG1hZ2ljOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfSVJRX0JVU0lEIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldEludGVycnVwdEZyb21CdXNJRCgpLgotICovCi1zdHJ1Y3QgZHJtX2lycV9idXNpZCB7Ci0JaW50IGlycTsJLyoqPCBJUlEgbnVtYmVyICovCi0JaW50IGJ1c251bTsJLyoqPCBidXMgbnVtYmVyICovCi0JaW50IGRldm51bTsJLyoqPCBkZXZpY2UgbnVtYmVyICovCi0JaW50IGZ1bmNudW07CS8qKjwgZnVuY3Rpb24gbnVtYmVyICovCi19OwotCi1lbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgewotCV9EUk1fVkJMQU5LX0FCU09MVVRFID0gMHgwLAkvKio8IFdhaXQgZm9yIHNwZWNpZmljIHZibGFuayBzZXF1ZW5jZSBudW1iZXIgKi8KLQlfRFJNX1ZCTEFOS19SRUxBVElWRSA9IDB4MSwJLyoqPCBXYWl0IGZvciBnaXZlbiBudW1iZXIgb2YgdmJsYW5rcyAqLwotCV9EUk1fVkJMQU5LX05FWFRPTk1JU1MgPSAweDEwMDAwMDAwLAkvKio8IElmIG1pc3NlZCwgd2FpdCBmb3IgbmV4dCB2YmxhbmsgKi8KLQlfRFJNX1ZCTEFOS19TRUNPTkRBUlkgPSAweDIwMDAwMDAwLAkvKio8IFNlY29uZGFyeSBkaXNwbGF5IGNvbnRyb2xsZXIgKi8KLQlfRFJNX1ZCTEFOS19TSUdOQUwgPSAweDQwMDAwMDAwCS8qKjwgU2VuZCBzaWduYWwgaW5zdGVhZCBvZiBibG9ja2luZyAqLwotfTsKLQotI2RlZmluZSBfRFJNX1ZCTEFOS19UWVBFU19NQVNLIChfRFJNX1ZCTEFOS19BQlNPTFVURSB8IF9EUk1fVkJMQU5LX1JFTEFUSVZFKQotI2RlZmluZSBfRFJNX1ZCTEFOS19GTEFHU19NQVNLIChfRFJNX1ZCTEFOS19TSUdOQUwgfCBfRFJNX1ZCTEFOS19TRUNPTkRBUlkgfCBcCi0JCQkJX0RSTV9WQkxBTktfTkVYVE9OTUlTUykKLQotc3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHsKLQllbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7Ci0JdW5zaWduZWQgbG9uZyBzaWduYWw7Ci19OwotCi1zdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHsKLQllbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7Ci0JbG9uZyB0dmFsX3NlYzsKLQlsb25nIHR2YWxfdXNlYzsKLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX1dBSVRfVkJMQU5LIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybVdhaXRWQmxhbmsoKS4KLSAqLwotdW5pb24gZHJtX3dhaXRfdmJsYW5rIHsKLQlzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcXVlc3QgcmVxdWVzdDsKLQlzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHJlcGx5OwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUdQX0VOQUJMRSBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1BZ3BFbmFibGUoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfbW9kZSB7Ci0JdW5zaWduZWQgbG9uZyBtb2RlOwkvKio8IEFHUCBtb2RlICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9BR1BfQUxMT0MgYW5kIERSTV9JT0NUTF9BR1BfRlJFRSBpb2N0bHMgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwQWxsb2MoKSBhbmQgZHJtQWdwRnJlZSgpLgotICovCi1zdHJ1Y3QgZHJtX2FncF9idWZmZXIgewotCXVuc2lnbmVkIGxvbmcgc2l6ZTsJLyoqPCBJbiBieXRlcyAtLSB3aWxsIHJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KLQl1bnNpZ25lZCBsb25nIGhhbmRsZTsJLyoqPCBVc2VkIGZvciBiaW5kaW5nIC8gdW5iaW5kaW5nICovCi0JdW5zaWduZWQgbG9uZyB0eXBlOwkvKio8IFR5cGUgb2YgbWVtb3J5IHRvIGFsbG9jYXRlICovCi0JdW5zaWduZWQgbG9uZyBwaHlzaWNhbDsJLyoqPCBQaHlzaWNhbCB1c2VkIGJ5IGk4MTAgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FHUF9CSU5EIGFuZCBEUk1fSU9DVExfQUdQX1VOQklORCBpb2N0bHMgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwQmluZCgpIGFuZCBkcm1BZ3BVbmJpbmQoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfYmluZGluZyB7Ci0JdW5zaWduZWQgbG9uZyBoYW5kbGU7CS8qKjwgRnJvbSBkcm1fYWdwX2J1ZmZlciAqLwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwkvKio8IEluIGJ5dGVzIC0tIHdpbGwgcm91bmQgdG8gcGFnZSBib3VuZGFyeSAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUdQX0lORk8gaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwVmVyc2lvbk1ham9yKCksIGRybUFncFZlcnNpb25NaW5vcigpLCBkcm1BZ3BHZXRNb2RlKCksCi0gKiBkcm1BZ3BCYXNlKCksIGRybUFncFNpemUoKSwgZHJtQWdwTWVtb3J5VXNlZCgpLCBkcm1BZ3BNZW1vcnlBdmFpbCgpLAotICogZHJtQWdwVmVuZG9ySWQoKSBhbmQgZHJtQWdwRGV2aWNlSWQoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfaW5mbyB7Ci0JaW50IGFncF92ZXJzaW9uX21ham9yOwotCWludCBhZ3BfdmVyc2lvbl9taW5vcjsKLQl1bnNpZ25lZCBsb25nIG1vZGU7Ci0JdW5zaWduZWQgbG9uZyBhcGVydHVyZV9iYXNlOwkvKiBwaHlzaWNhbCBhZGRyZXNzICovCi0JdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOwkvKiBieXRlcyAqLwotCXVuc2lnbmVkIGxvbmcgbWVtb3J5X2FsbG93ZWQ7CS8qIGJ5dGVzICovCi0JdW5zaWduZWQgbG9uZyBtZW1vcnlfdXNlZDsKLQotCS8qIFBDSSBpbmZvcm1hdGlvbiAqLwotCXVuc2lnbmVkIHNob3J0IGlkX3ZlbmRvcjsKLQl1bnNpZ25lZCBzaG9ydCBpZF9kZXZpY2U7Ci19OwotCi0vKioKLSAqIERSTV9JT0NUTF9TR19BTExPQyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyIHsKLQl1bnNpZ25lZCBsb25nIHNpemU7CS8qKjwgSW4gYnl0ZXMgLS0gd2lsbCByb3VuZCB0byBwYWdlIGJvdW5kYXJ5ICovCi0JdW5zaWduZWQgbG9uZyBoYW5kbGU7CS8qKjwgVXNlZCBmb3IgbWFwcGluZyAvIHVubWFwcGluZyAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfU0VUX1ZFUlNJT04gaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqLwotc3RydWN0IGRybV9zZXRfdmVyc2lvbiB7Ci0JaW50IGRybV9kaV9tYWpvcjsKLQlpbnQgZHJtX2RpX21pbm9yOwotCWludCBkcm1fZGRfbWFqb3I7Ci0JaW50IGRybV9kZF9taW5vcjsKLX07Ci0KLSNkZWZpbmUgRFJNX0lPQ1RMX0JBU0UJCQknZCcKLSNkZWZpbmUgRFJNX0lPKG5yKQkJCV9JTyhEUk1fSU9DVExfQkFTRSxucikKLSNkZWZpbmUgRFJNX0lPUihucix0eXBlKQkJX0lPUihEUk1fSU9DVExfQkFTRSxucix0eXBlKQotI2RlZmluZSBEUk1fSU9XKG5yLHR5cGUpCQlfSU9XKERSTV9JT0NUTF9CQVNFLG5yLHR5cGUpCi0jZGVmaW5lIERSTV9JT1dSKG5yLHR5cGUpCQlfSU9XUihEUk1fSU9DVExfQkFTRSxucix0eXBlKQotCi0jZGVmaW5lIERSTV9JT0NUTF9WRVJTSU9OCQlEUk1fSU9XUigweDAwLCBzdHJ1Y3QgZHJtX3ZlcnNpb24pCi0jZGVmaW5lIERSTV9JT0NUTF9HRVRfVU5JUVVFCQlEUk1fSU9XUigweDAxLCBzdHJ1Y3QgZHJtX3VuaXF1ZSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9NQUdJQwkJRFJNX0lPUiggMHgwMiwgc3RydWN0IGRybV9hdXRoKQotI2RlZmluZSBEUk1fSU9DVExfSVJRX0JVU0lECQlEUk1fSU9XUigweDAzLCBzdHJ1Y3QgZHJtX2lycV9idXNpZCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9NQVAgICAgICAgICAgICAgICBEUk1fSU9XUigweDA0LCBzdHJ1Y3QgZHJtX21hcCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9DTElFTlQgICAgICAgICAgICBEUk1fSU9XUigweDA1LCBzdHJ1Y3QgZHJtX2NsaWVudCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9TVEFUUyAgICAgICAgICAgICBEUk1fSU9SKCAweDA2LCBzdHJ1Y3QgZHJtX3N0YXRzKQotI2RlZmluZSBEUk1fSU9DVExfU0VUX1ZFUlNJT04JCURSTV9JT1dSKDB4MDcsIHN0cnVjdCBkcm1fc2V0X3ZlcnNpb24pCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1NFVF9VTklRVUUJCURSTV9JT1coIDB4MTAsIHN0cnVjdCBkcm1fdW5pcXVlKQotI2RlZmluZSBEUk1fSU9DVExfQVVUSF9NQUdJQwkJRFJNX0lPVyggMHgxMSwgc3RydWN0IGRybV9hdXRoKQotI2RlZmluZSBEUk1fSU9DVExfQkxPQ0sJCQlEUk1fSU9XUigweDEyLCBzdHJ1Y3QgZHJtX2Jsb2NrKQotI2RlZmluZSBEUk1fSU9DVExfVU5CTE9DSwkJRFJNX0lPV1IoMHgxMywgc3RydWN0IGRybV9ibG9jaykKLSNkZWZpbmUgRFJNX0lPQ1RMX0NPTlRST0wJCURSTV9JT1coIDB4MTQsIHN0cnVjdCBkcm1fY29udHJvbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FERF9NQVAJCURSTV9JT1dSKDB4MTUsIHN0cnVjdCBkcm1fbWFwKQotI2RlZmluZSBEUk1fSU9DVExfQUREX0JVRlMJCURSTV9JT1dSKDB4MTYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MpCi0jZGVmaW5lIERSTV9JT0NUTF9NQVJLX0JVRlMJCURSTV9JT1coIDB4MTcsIHN0cnVjdCBkcm1fYnVmX2Rlc2MpCi0jZGVmaW5lIERSTV9JT0NUTF9JTkZPX0JVRlMJCURSTV9JT1dSKDB4MTgsIHN0cnVjdCBkcm1fYnVmX2luZm8pCi0jZGVmaW5lIERSTV9JT0NUTF9NQVBfQlVGUwkJRFJNX0lPV1IoMHgxOSwgc3RydWN0IGRybV9idWZfbWFwKQotI2RlZmluZSBEUk1fSU9DVExfRlJFRV9CVUZTCQlEUk1fSU9XKCAweDFhLCBzdHJ1Y3QgZHJtX2J1Zl9mcmVlKQotCi0jZGVmaW5lIERSTV9JT0NUTF9STV9NQVAJCURSTV9JT1coIDB4MWIsIHN0cnVjdCBkcm1fbWFwKQotCi0jZGVmaW5lIERSTV9JT0NUTF9TRVRfU0FSRUFfQ1RYCQlEUk1fSU9XKCAweDFjLCBzdHJ1Y3QgZHJtX2N0eF9wcml2X21hcCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9TQVJFQV9DVFggCURSTV9JT1dSKDB4MWQsIHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwKQotCi0jZGVmaW5lIERSTV9JT0NUTF9BRERfQ1RYCQlEUk1fSU9XUigweDIwLCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JNX0NUWAkJRFJNX0lPV1IoMHgyMSwgc3RydWN0IGRybV9jdHgpCi0jZGVmaW5lIERSTV9JT0NUTF9NT0RfQ1RYCQlEUk1fSU9XKCAweDIyLCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9DVFgJCURSTV9JT1dSKDB4MjMsIHN0cnVjdCBkcm1fY3R4KQotI2RlZmluZSBEUk1fSU9DVExfU1dJVENIX0NUWAkJRFJNX0lPVyggMHgyNCwgc3RydWN0IGRybV9jdHgpCi0jZGVmaW5lIERSTV9JT0NUTF9ORVdfQ1RYCQlEUk1fSU9XKCAweDI1LCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JFU19DVFgJCURSTV9JT1dSKDB4MjYsIHN0cnVjdCBkcm1fY3R4X3JlcykKLSNkZWZpbmUgRFJNX0lPQ1RMX0FERF9EUkFXCQlEUk1fSU9XUigweDI3LCBzdHJ1Y3QgZHJtX2RyYXcpCi0jZGVmaW5lIERSTV9JT0NUTF9STV9EUkFXCQlEUk1fSU9XUigweDI4LCBzdHJ1Y3QgZHJtX2RyYXcpCi0jZGVmaW5lIERSTV9JT0NUTF9ETUEJCQlEUk1fSU9XUigweDI5LCBzdHJ1Y3QgZHJtX2RtYSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0xPQ0sJCQlEUk1fSU9XKCAweDJhLCBzdHJ1Y3QgZHJtX2xvY2spCi0jZGVmaW5lIERSTV9JT0NUTF9VTkxPQ0sJCURSTV9JT1coIDB4MmIsIHN0cnVjdCBkcm1fbG9jaykKLSNkZWZpbmUgRFJNX0lPQ1RMX0ZJTklTSAkJRFJNX0lPVyggMHgyYywgc3RydWN0IGRybV9sb2NrKQotCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfQUNRVUlSRQkJRFJNX0lPKCAgMHgzMCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9SRUxFQVNFCQlEUk1fSU8oICAweDMxKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0VOQUJMRQkJRFJNX0lPVyggMHgzMiwgc3RydWN0IGRybV9hZ3BfbW9kZSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9JTkZPCQlEUk1fSU9SKCAweDMzLCBzdHJ1Y3QgZHJtX2FncF9pbmZvKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0FMTE9DCQlEUk1fSU9XUigweDM0LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIpCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfRlJFRQkJRFJNX0lPVyggMHgzNSwgc3RydWN0IGRybV9hZ3BfYnVmZmVyKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0JJTkQJCURSTV9JT1coIDB4MzYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcpCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfVU5CSU5ECQlEUk1fSU9XKCAweDM3LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nKQotCi0jZGVmaW5lIERSTV9JT0NUTF9TR19BTExPQwkJRFJNX0lPVyggMHgzOCwgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX1NHX0ZSRUUJCURSTV9JT1coIDB4MzksIHN0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIpCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LCQlEUk1fSU9XUigweDNhLCB1bmlvbiBkcm1fd2FpdF92YmxhbmspCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1VQREFURV9EUkFXCQlEUk1fSU9XKDB4M2YsIHN0cnVjdCBkcm1fdXBkYXRlX2RyYXcpCi0KLS8qKgotICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKLSAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OTkuCi0gKiBHZW5lcmljIElPQ1RMUyByZXN0YXJ0IGF0IDB4QTAuCi0gKgotICogXHNhIGRybUNvbW1hbmROb25lKCksIGRybUNvbW1hbmRSZWFkKCksIGRybUNvbW1hbmRXcml0ZSgpLCBhbmQKLSAqIGRybUNvbW1hbmRSZWFkV3JpdGUoKS4KLSAqLwotI2RlZmluZSBEUk1fQ09NTUFORF9CQVNFICAgICAgICAgICAgICAgIDB4NDAKLSNkZWZpbmUgRFJNX0NPTU1BTkRfRU5ECQkJMHhBMAotCi0vKiB0eXBlZGVmIGFyZWEgKi8KLSNpZm5kZWYgX19LRVJORUxfXwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBkcm1fY2xpcF9yZWN0X3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyBkcm1fZHJhd2FibGVfaW5mb190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3RleF9yZWdpb24gZHJtX3RleF9yZWdpb25fdDsKLXR5cGVkZWYgc3RydWN0IGRybV9od19sb2NrIGRybV9od19sb2NrX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fdmVyc2lvbiBkcm1fdmVyc2lvbl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3VuaXF1ZSBkcm1fdW5pcXVlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fbGlzdCBkcm1fbGlzdF90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2Jsb2NrIGRybV9ibG9ja190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NvbnRyb2wgZHJtX2NvbnRyb2xfdDsKLXR5cGVkZWYgZW51bSBkcm1fbWFwX3R5cGUgZHJtX21hcF90eXBlX3Q7Ci10eXBlZGVmIGVudW0gZHJtX21hcF9mbGFncyBkcm1fbWFwX2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwIGRybV9jdHhfcHJpdl9tYXBfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9tYXAgZHJtX21hcF90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NsaWVudCBkcm1fY2xpZW50X3Q7Ci10eXBlZGVmIGVudW0gZHJtX3N0YXRfdHlwZSBkcm1fc3RhdF90eXBlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fc3RhdHMgZHJtX3N0YXRzX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2xvY2tfZmxhZ3MgZHJtX2xvY2tfZmxhZ3NfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9sb2NrIGRybV9sb2NrX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2RtYV9mbGFncyBkcm1fZG1hX2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2Rlc2MgZHJtX2J1Zl9kZXNjX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2luZm8gZHJtX2J1Zl9pbmZvX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2ZyZWUgZHJtX2J1Zl9mcmVlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX3B1YiBkcm1fYnVmX3B1Yl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9tYXAgZHJtX2J1Zl9tYXBfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9kbWEgZHJtX2RtYV90OwotdHlwZWRlZiB1bmlvbiBkcm1fd2FpdF92YmxhbmsgZHJtX3dhaXRfdmJsYW5rX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYWdwX21vZGUgZHJtX2FncF9tb2RlX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2N0eF9mbGFncyBkcm1fY3R4X2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fY3R4IGRybV9jdHhfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9jdHhfcmVzIGRybV9jdHhfcmVzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fZHJhdyBkcm1fZHJhd190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3IGRybV91cGRhdGVfZHJhd190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2F1dGggZHJtX2F1dGhfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9pcnFfYnVzaWQgZHJtX2lycV9idXNpZF90OwotdHlwZWRlZiBlbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgZHJtX3ZibGFua19zZXFfdHlwZV90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciBkcm1fYWdwX2J1ZmZlcl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nIGRybV9hZ3BfYmluZGluZ190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9pbmZvIGRybV9hZ3BfaW5mb190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyIGRybV9zY2F0dGVyX2dhdGhlcl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uIGRybV9zZXRfdmVyc2lvbl90OwotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1QLmggYi9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc2NGI2Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaAorKysgL2Rldi9udWxsCkBAIC0xLDExNTMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1QLmgKLSAqIFByaXZhdGUgaGVhZGVyIGZvciBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgotICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKi8KLQotLyoKLSAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2lmbmRlZiBfRFJNX1BfSF8KLSNkZWZpbmUgX0RSTV9QX0hfCi0KLS8qIElmIHlvdSB3YW50IHRoZSBtZW1vcnkgYWxsb2MgZGVidWcgZnVuY3Rpb25hbGl0eSwgY2hhbmdlIGRlZmluZSBiZWxvdyAqLwotLyogI2RlZmluZSBERUJVR19NRU1PUlkgKi8KLQotI2lmZGVmIF9fS0VSTkVMX18KLSNpZmRlZiBfX2FscGhhX18KLS8qIGFkZCBpbmNsdWRlIG9mIGN1cnJlbnQuaCBzbyB0aGF0ICJjdXJyZW50IiBpcyBkZWZpbmVkCi0gKiBiZWZvcmUgc3RhdGljIGlubGluZSBmdW5jcyBpbiB3YWl0LmguIERvaW5nIHRoaXMgc28gd2UKLSAqIGNhbiBidWlsZCB0aGUgRFJNIChwYXJ0IG9mIFBJIERSSSkuIDQvMjEvMjAwMCBTICsgQiAqLwotI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+Ci0jZW5kaWYJCQkJLyogX19hbHBoYV9fICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CS8qIEZvciAodW4pbG9ja19rZXJuZWwgKi8KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvY2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0jaWYgZGVmaW5lZChfX2FscGhhX18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pCi0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4JLyogRm9yIHB0ZV93cnByb3RlY3QgKi8KLSNlbmRpZgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9tbWFuLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpZmRlZiBDT05GSUdfTVRSUgotI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19BR1ApIHx8IGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9hZ3BfYmFja2VuZC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvcG9sbC5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+Ci0jaW5jbHVkZSAiZHJtLmgiCi0KLSNpbmNsdWRlIDxsaW51eC9pZHIuaD4KLQotI2RlZmluZSBfX09TX0hBU19BR1AgKGRlZmluZWQoQ09ORklHX0FHUCkgfHwgKGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpICYmIGRlZmluZWQoTU9EVUxFKSkpCi0jZGVmaW5lIF9fT1NfSEFTX01UUlIgKGRlZmluZWQoQ09ORklHX01UUlIpKQotCi1zdHJ1Y3QgZHJtX2ZpbGU7Ci1zdHJ1Y3QgZHJtX2RldmljZTsKLQotI2luY2x1ZGUgImRybV9vc19saW51eC5oIgotI2luY2x1ZGUgImRybV9oYXNodGFiLmgiCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBEUk0gdGVtcGxhdGUgY3VzdG9taXphdGlvbiBkZWZhdWx0cyAqLwotLypAeyovCi0KLS8qIGRyaXZlciBjYXBhYmlsaXRpZXMgYW5kIHJlcXVpcmVtZW50cyBtYXNrICovCi0jZGVmaW5lIERSSVZFUl9VU0VfQUdQICAgICAweDEKLSNkZWZpbmUgRFJJVkVSX1JFUVVJUkVfQUdQIDB4MgotI2RlZmluZSBEUklWRVJfVVNFX01UUlIgICAgMHg0Ci0jZGVmaW5lIERSSVZFUl9QQ0lfRE1BICAgICAweDgKLSNkZWZpbmUgRFJJVkVSX1NHICAgICAgICAgIDB4MTAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfRE1BICAgIDB4MjAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfSVJRICAgIDB4NDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9TSEFSRUQgIDB4ODAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwgICAgIDB4MTAwCi0jZGVmaW5lIERSSVZFUl9ETUFfUVVFVUUgICAweDIwMAotI2RlZmluZSBEUklWRVJfRkJfRE1BICAgICAgMHg0MDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwyICAgIDB4ODAwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBCZWdpbiB0aGUgRFJNLi4uICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fREVCVUdfQ09ERSAyCSAgLyoqPCBJbmNsdWRlIGRlYnVnZ2luZyBjb2RlIGlmID4gMSwgdGhlbgotCQkJCSAgICAgYWxzbyBpbmNsdWRlIGxvb3BpbmcgZGV0ZWN0aW9uLiAqLwotCi0jZGVmaW5lIERSTV9NQUdJQ19IQVNIX09SREVSICA0ICAvKio8IFNpemUgb2Yga2V5IGhhc2ggdGFibGUuIE11c3QgYmUgcG93ZXIgb2YgMi4gKi8KLSNkZWZpbmUgRFJNX0tFUk5FTF9DT05URVhUICAgIDAJIC8qKjwgQ2hhbmdlIGRybV9yZXNjdHggaWYgY2hhbmdlZCAqLwotI2RlZmluZSBEUk1fUkVTRVJWRURfQ09OVEVYVFMgMQkgLyoqPCBDaGFuZ2UgZHJtX3Jlc2N0eCBpZiBjaGFuZ2VkICovCi0jZGVmaW5lIERSTV9MT09QSU5HX0xJTUlUICAgICA1MDAwMDAwCi0jZGVmaW5lIERSTV9USU1FX1NMSUNFCSAgICAgIChIWi8yMCkgIC8qKjwgVGltZSBzbGljZSBmb3IgR0xYQ29udGV4dHMgKi8KLSNkZWZpbmUgRFJNX0xPQ0tfU0xJQ0UJICAgICAgMQkvKio8IFRpbWUgc2xpY2UgZm9yIGxvY2ssIGluIGppZmZpZXMgKi8KLQotI2RlZmluZSBEUk1fRkxBR19ERUJVRwkgIDB4MDEKLQotI2RlZmluZSBEUk1fTUVNX0RNQQkgICAwCi0jZGVmaW5lIERSTV9NRU1fU0FSRUEJICAgMQotI2RlZmluZSBEUk1fTUVNX0RSSVZFUgkgICAyCi0jZGVmaW5lIERSTV9NRU1fTUFHSUMJICAgMwotI2RlZmluZSBEUk1fTUVNX0lPQ1RMUwkgICA0Ci0jZGVmaW5lIERSTV9NRU1fTUFQUwkgICA1Ci0jZGVmaW5lIERSTV9NRU1fVk1BUwkgICA2Ci0jZGVmaW5lIERSTV9NRU1fQlVGUwkgICA3Ci0jZGVmaW5lIERSTV9NRU1fU0VHUwkgICA4Ci0jZGVmaW5lIERSTV9NRU1fUEFHRVMJICAgOQotI2RlZmluZSBEUk1fTUVNX0ZJTEVTCSAgMTAKLSNkZWZpbmUgRFJNX01FTV9RVUVVRVMJICAxMQotI2RlZmluZSBEUk1fTUVNX0NNRFMJICAxMgotI2RlZmluZSBEUk1fTUVNX01BUFBJTkdTICAxMwotI2RlZmluZSBEUk1fTUVNX0JVRkxJU1RTICAxNAotI2RlZmluZSBEUk1fTUVNX0FHUExJU1RTICAxNQotI2RlZmluZSBEUk1fTUVNX1RPVEFMQUdQICAxNgotI2RlZmluZSBEUk1fTUVNX0JPVU5EQUdQICAxNwotI2RlZmluZSBEUk1fTUVNX0NUWEJJVE1BUCAxOAotI2RlZmluZSBEUk1fTUVNX1NUVUIgICAgICAxOQotI2RlZmluZSBEUk1fTUVNX1NHTElTVFMgICAyMAotI2RlZmluZSBEUk1fTUVNX0NUWExJU1QgICAyMQotI2RlZmluZSBEUk1fTUVNX01NICAgICAgICAyMgotI2RlZmluZSBEUk1fTUVNX0hBU0hUQUIgICAyMwotCi0jZGVmaW5lIERSTV9NQVhfQ1RYQklUTUFQIChQQUdFX1NJWkUgKiA4KQotI2RlZmluZSBEUk1fTUFQX0hBU0hfT0ZGU0VUIDB4MTAwMDAwMDAKLQotLypAfSovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBNYWNyb3MgdG8gbWFrZSBwcmludGsgZWFzaWVyICovCi0vKkB7Ki8KLQotLyoqCi0gKiBFcnJvciBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jZGVmaW5lIERSTV9FUlJPUihmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fICwgIyNhcmcpCi0KLS8qKgotICogTWVtb3J5IGVycm9yIG91dHB1dC4KLSAqCi0gKiBccGFyYW0gYXJlYSBtZW1vcnkgYXJlYSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCi0gKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KLSAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCi0gKi8KLSNkZWZpbmUgRFJNX01FTV9FUlJPUihhcmVhLCBmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolczolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fLCBcCi0JICAgICAgIGRybV9tZW1fc3RhdHNbYXJlYV0ubmFtZSAsICMjYXJnKQotCi0jZGVmaW5lIERSTV9JTkZPKGZtdCwgYXJnLi4uKSAgcHJpbnRrKEtFUk5fSU5GTyAiWyIgRFJNX05BTUUgIl0gIiBmbXQgLCAjI2FyZykKLQotLyoqCi0gKiBEZWJ1ZyBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jaWYgRFJNX0RFQlVHX0NPREUKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJCQkJCVwKLQlkbyB7CQkJCQkJCQlcCi0JCWlmICggZHJtX2RlYnVnICkJCQlcCi0JCQlwcmludGsoS0VSTl9ERUJVRwkJCQlcCi0JCQkgICAgICAgIlsiIERSTV9OQU1FICI6JXNdICIgZm10ICwJXAotCQkJICAgICAgIF9fZnVuY19fICwgIyNhcmcpOwkJCVwKLQl9IHdoaWxlICgwKQotI2Vsc2UKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJIGRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi0jZGVmaW5lIERSTV9QUk9DX0xJTUlUIChQQUdFX1NJWkUtODApCi0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlQoZm10LCBhcmcuLi4pCQkJCQlcCi0gICBsZW4gKz0gc3ByaW50ZigmYnVmW2xlbl0sIGZtdCAsICMjYXJnKTsJCQkJXAotICAgaWYgKGxlbiA+IERSTV9QUk9DX0xJTUlUKSB7ICplb2YgPSAxOyByZXR1cm4gbGVuIC0gb2Zmc2V0OyB9Ci0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlRfUkVUKHJldCwgZm10LCBhcmcuLi4pCQkJCVwKLSAgIGxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgZm10ICwgIyNhcmcpOwkJCQlcCi0gICBpZiAobGVuID4gRFJNX1BST0NfTElNSVQpIHsgcmV0OyAqZW9mID0gMTsgcmV0dXJuIGxlbiAtIG9mZnNldDsgfQotCi0vKkB9Ki8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fQVJSQVlfU0laRSh4KSBBUlJBWV9TSVpFKHgpCi0KLSNkZWZpbmUgRFJNX0xFRlRDT1VOVCh4KSAoKCh4KS0+cnAgKyAoeCktPmNvdW50IC0gKHgpLT53cCkgJSAoKHgpLT5jb3VudCArIDEpKQotI2RlZmluZSBEUk1fQlVGQ09VTlQoeCkgKCh4KS0+Y291bnQgLSBEUk1fTEVGVENPVU5UKHgpKQotI2RlZmluZSBEUk1fV0FJVENPVU5UKGRldixpZHgpIERSTV9CVUZDT1VOVCgmZGV2LT5xdWV1ZWxpc3RbaWR4XS0+d2FpdGxpc3QpCi0KLSNkZWZpbmUgRFJNX0lGX1ZFUlNJT04obWFqLCBtaW4pIChtYWogPDwgMTYgfCBtaW4pCi0vKioKLSAqIEdldCB0aGUgcHJpdmF0ZSBTQVJFQSBtYXBwaW5nLgotICoKLSAqIFxwYXJhbSBfZGV2IERSTSBkZXZpY2UuCi0gKiBccGFyYW0gX2N0eCBjb250ZXh0IG51bWJlci4KLSAqIFxwYXJhbSBfbWFwIG91dHB1dCBtYXBwaW5nLgotICovCi0jZGVmaW5lIERSTV9HRVRfUFJJVl9TQVJFQShfZGV2LCBfY3R4LCBfbWFwKSBkbyB7CVwKLQkoX21hcCkgPSAoX2RldiktPmNvbnRleHRfc2FyZWFzW19jdHhdOwkJXAotfSB3aGlsZSgwKQotCi0vKioKLSAqIFRlc3QgdGhhdCB0aGUgaGFyZHdhcmUgbG9jayBpcyBoZWxkIGJ5IHRoZSBjYWxsZXIsIHJldHVybmluZyBvdGhlcndpc2UuCi0gKgotICogXHBhcmFtIGRldiBEUk0gZGV2aWNlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyIG9mIHRoZSBjYWxsZXIuCi0gKi8KLSNkZWZpbmUgTE9DS19URVNUX1dJVEhfUkVUVVJOKCBkZXYsIGZpbGVfcHJpdiApCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JaWYgKCAhX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICkgfHwJCVwKLQkgICAgIGRldi0+bG9jay5maWxlX3ByaXYgIT0gZmlsZV9wcml2ICkJewkJCVwKLQkJRFJNX0VSUk9SKCAiJXMgY2FsbGVkIHdpdGhvdXQgbG9jayBoZWxkLCBoZWxkICAlZCBvd25lciAlcCAlcFxuIixcCi0JCQkgICBfX2Z1bmNfXywgX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICksXAotCQkJICAgZGV2LT5sb2NrLmZpbGVfcHJpdiwgZmlsZV9wcml2ICk7CQlcCi0JCXJldHVybiAtRUlOVkFMOwkJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKioKLSAqIENvcHkgYW5kIElPQ1RMIHJldHVybiBzdHJpbmcgdG8gdXNlciBzcGFjZQotICovCi0jZGVmaW5lIERSTV9DT1BZKCBuYW1lLCB2YWx1ZSApCQkJCQkJXAotCWxlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCQlcCi0JaWYgKCBsZW4gPiBuYW1lIyNfbGVuICkgbGVuID0gbmFtZSMjX2xlbjsJCQlcCi0JbmFtZSMjX2xlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCVwKLQlpZiAoIGxlbiAmJiBuYW1lICkgewkJCQkJCVwKLQkJaWYgKCBjb3B5X3RvX3VzZXIoIG5hbWUsIHZhbHVlLCBsZW4gKSApCQkJXAotCQkJcmV0dXJuIC1FRkFVTFQ7CQkJCQlcCi0JfQotCi0vKioKLSAqIElvY3RsIGZ1bmN0aW9uIHR5cGUuCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZSBwb2ludGVyLgotICogXHBhcmFtIGNtZCBjb21tYW5kLgotICogXHBhcmFtIGFyZyBhcmd1bWVudC4KLSAqLwotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX2NvbXBhdF90KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKTsKLQotI2RlZmluZSBEUk1fQVVUSAkweDEKLSNkZWZpbmUJRFJNX01BU1RFUgkweDIKLSNkZWZpbmUgRFJNX1JPT1RfT05MWQkweDQKLQotc3RydWN0IGRybV9pb2N0bF9kZXNjIHsKLQl1bnNpZ25lZCBpbnQgY21kOwotCWRybV9pb2N0bF90ICpmdW5jOwotCWludCBmbGFnczsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIGRyaXZlciBvciBnZW5lcmFsIGRybV9pb2N0bF9kZXNjIGFycmF5IGVudHJ5IGZvciB0aGUgZ2l2ZW4KLSAqIGlvY3RsLCBmb3IgdXNlIGJ5IGRybV9pb2N0bCgpLgotICovCi0jZGVmaW5lIERSTV9JT0NUTF9ERUYoaW9jdGwsIGZ1bmMsIGZsYWdzKSBcCi0JW0RSTV9JT0NUTF9OUihpb2N0bCldID0ge2lvY3RsLCBmdW5jLCBmbGFnc30KLQotc3RydWN0IGRybV9tYWdpY19lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2hfaXRlbTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7Ci19OwotCi1zdHJ1Y3QgZHJtX3ZtYV9lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXBpZF90IHBpZDsKLX07Ci0KLS8qKgotICogRE1BIGJ1ZmZlci4KLSAqLwotc3RydWN0IGRybV9idWYgewotCWludCBpZHg7CQkgICAgICAgLyoqPCBJbmRleCBpbnRvIG1hc3RlciBidWZsaXN0ICovCi0JaW50IHRvdGFsOwkJICAgICAgIC8qKjwgQnVmZmVyIHNpemUgKi8KLQlpbnQgb3JkZXI7CQkgICAgICAgLyoqPCBsb2ctYmFzZS0yKHRvdGFsKSAqLwotCWludCB1c2VkOwkJICAgICAgIC8qKjwgQW1vdW50IG9mIGJ1ZmZlciBpbiB1c2UgKGZvciBETUEpICovCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAgICAgICAvKio8IEJ5dGUgb2Zmc2V0ICh1c2VkIGludGVybmFsbHkpICovCi0Jdm9pZCAqYWRkcmVzczsJCSAgICAgICAvKio8IEFkZHJlc3Mgb2YgYnVmZmVyICovCi0JdW5zaWduZWQgbG9uZyBidXNfYWRkcmVzczsgICAgIC8qKjwgQnVzIGFkZHJlc3Mgb2YgYnVmZmVyICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEtlcm5lbC1vbmx5OiB1c2VkIGZvciBmcmVlIGxpc3QgKi8KLQlfX3ZvbGF0aWxlX18gaW50IHdhaXRpbmc7ICAgICAgLyoqPCBPbiBrZXJuZWwgRE1BIHF1ZXVlICovCi0JX192b2xhdGlsZV9fIGludCBwZW5kaW5nOyAgICAgIC8qKjwgT24gaGFyZHdhcmUgRE1BIHF1ZXVlICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgZG1hX3dhaXQ7ICAgIC8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgICAgLyoqPCBQcml2YXRlIG9mIGhvbGRpbmcgZmlsZSBkZXNjciAqLwotCWludCBjb250ZXh0OwkJICAgICAgIC8qKjwgS2VybmVsIHF1ZXVlIGZvciB0aGlzIGJ1ZmZlciAqLwotCWludCB3aGlsZV9sb2NrZWQ7CSAgICAgICAvKio8IERpc3BhdGNoIHRoaXMgYnVmZmVyIHdoaWxlIGxvY2tlZCAqLwotCWVudW0gewotCQlEUk1fTElTVF9OT05FID0gMCwKLQkJRFJNX0xJU1RfRlJFRSA9IDEsCi0JCURSTV9MSVNUX1dBSVQgPSAyLAotCQlEUk1fTElTVF9QRU5EID0gMywKLQkJRFJNX0xJU1RfUFJJTyA9IDQsCi0JCURSTV9MSVNUX1JFQ0xBSU0gPSA1Ci0JfSBsaXN0OwkJCSAgICAgICAvKio8IFdoaWNoIGxpc3Qgd2UncmUgb24gKi8KLQotCWludCBkZXZfcHJpdl9zaXplOwkJIC8qKjwgU2l6ZSBvZiBidWZmZXIgcHJpdmF0ZSBzdG9yYWdlICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkgLyoqPCBQZXItYnVmZmVyIHByaXZhdGUgc3RvcmFnZSAqLwotfTsKLQotLyoqIGJ1ZnMgaXMgb25lIGxvbmdlciB0aGFuIGl0IGhhcyB0byBiZSAqLwotc3RydWN0IGRybV93YWl0bGlzdCB7Ci0JaW50IGNvdW50OwkJCS8qKjwgTnVtYmVyIG9mIHBvc3NpYmxlIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1ZnM7CQkvKio8IExpc3Qgb2YgcG9pbnRlcnMgdG8gYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICoqcnA7CQkJLyoqPCBSZWFkIHBvaW50ZXIgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKndwOwkJCS8qKjwgV3JpdGUgcG9pbnRlciAqLwotCXN0cnVjdCBkcm1fYnVmICoqZW5kOwkJLyoqPCBFbmQgcG9pbnRlciAqLwotCXNwaW5sb2NrX3QgcmVhZF9sb2NrOwotCXNwaW5sb2NrX3Qgd3JpdGVfbG9jazsKLX07Ci0KLXN0cnVjdCBkcm1fZnJlZWxpc3QgewotCWludCBpbml0aWFsaXplZDsJICAgICAgIC8qKjwgRnJlZWxpc3QgaW4gdXNlICovCi0JYXRvbWljX3QgY291bnQ7CQkgICAgICAgLyoqPCBOdW1iZXIgb2YgZnJlZSBidWZmZXJzICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEVuZCBwb2ludGVyICovCi0KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0aW5nOyAgICAgLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBmcmVlIGJ1ZnMgKi8KLQlpbnQgbG93X21hcms7CQkgICAgICAgLyoqPCBMb3cgd2F0ZXIgbWFyayAqLwotCWludCBoaWdoX21hcms7CQkgICAgICAgLyoqPCBIaWdoIHdhdGVyIG1hcmsgKi8KLQlhdG9taWNfdCB3Zmg7CQkgICAgICAgLyoqPCBJZiB3YWl0aW5nIGZvciBoaWdoIG1hcmsgKi8KLQlzcGlubG9ja190IGxvY2s7Ci19OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fZG1hX2hhbmRsZSB7Ci0JZG1hX2FkZHJfdCBidXNhZGRyOwotCXZvaWQgKnZhZGRyOwotCXNpemVfdCBzaXplOwotfSBkcm1fZG1hX2hhbmRsZV90OwotCi0vKioKLSAqIEJ1ZmZlciBlbnRyeS4gIFRoZXJlIGlzIG9uZSBvZiB0aGlzIGZvciBlYWNoIGJ1ZmZlciBzaXplIG9yZGVyLgotICovCi1zdHJ1Y3QgZHJtX2J1Zl9lbnRyeSB7Ci0JaW50IGJ1Zl9zaXplOwkJCS8qKjwgc2l6ZSAqLwotCWludCBidWZfY291bnQ7CQkJLyoqPCBudW1iZXIgb2YgYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICpidWZsaXN0OwkJLyoqPCBidWZmZXIgbGlzdCAqLwotCWludCBzZWdfY291bnQ7Ci0JaW50IHBhZ2Vfb3JkZXI7Ci0Jc3RydWN0IGRybV9kbWFfaGFuZGxlICoqc2VnbGlzdDsKLQotCXN0cnVjdCBkcm1fZnJlZWxpc3QgZnJlZWxpc3Q7Ci19OwotCi0vKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KLXN0cnVjdCBkcm1fZmlsZSB7Ci0JaW50IGF1dGhlbnRpY2F0ZWQ7Ci0JaW50IG1hc3RlcjsKLQlwaWRfdCBwaWQ7Ci0JdWlkX3QgdWlkOwotCWRybV9tYWdpY190IG1hZ2ljOwotCXVuc2lnbmVkIGxvbmcgaW9jdGxfY291bnQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaGVhZDsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKLQlpbnQgcmVtb3ZlX2F1dGhfb25fY2xvc2U7Ci0JdW5zaWduZWQgbG9uZyBsb2NrX2NvdW50OwotCXN0cnVjdCBmaWxlICpmaWxwOwotCXZvaWQgKmRyaXZlcl9wcml2OwotfTsKLQotLyoqIFdhaXQgcXVldWUgKi8KLXN0cnVjdCBkcm1fcXVldWUgewotCWF0b21pY190IHVzZV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdXNlcyAoKzEpICovCi0JYXRvbWljX3QgZmluYWxpemF0aW9uOwkJLyoqPCBGaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQlhdG9taWNfdCBibG9ja19jb3VudDsJCS8qKjwgQ291bnQgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlhdG9taWNfdCBibG9ja19yZWFkOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciByZWFkcyAqLwotCXdhaXRfcXVldWVfaGVhZF90IHJlYWRfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gYmxvY2tfcmVhZCAqLwotCWF0b21pY190IGJsb2NrX3dyaXRlOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciB3cml0ZXMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3cml0ZV9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBibG9ja193cml0ZSAqLwotCWF0b21pY190IHRvdGFsX3F1ZXVlZDsJCS8qKjwgVG90YWwgcXVldWVkIHN0YXRpc3RpYyAqLwotCWF0b21pY190IHRvdGFsX2ZsdXNoZWQ7CQkvKio8IFRvdGFsIGZsdXNoZXMgc3RhdGlzdGljICovCi0JYXRvbWljX3QgdG90YWxfbG9ja3M7CQkvKio8IFRvdGFsIGxvY2tzIHN0YXRpc3RpY3MgKi8KLQllbnVtIGRybV9jdHhfZmxhZ3MgZmxhZ3M7CS8qKjwgQ29udGV4dCBwcmVzZXJ2aW5nIGFuZCAyRC1vbmx5ICovCi0Jc3RydWN0IGRybV93YWl0bGlzdCB3YWl0bGlzdDsJLyoqPCBQZW5kaW5nIGJ1ZmZlcnMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBmbHVzaF9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB1bnRpbCBmbHVzaCAqLwotfTsKLQotLyoqCi0gKiBMb2NrIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fbG9ja19kYXRhIHsKLQlzdHJ1Y3QgZHJtX2h3X2xvY2sgKmh3X2xvY2s7CS8qKjwgSGFyZHdhcmUgbG9jayAqLwotCS8qKiBQcml2YXRlIG9mIGxvY2sgaG9sZGVyJ3MgZmlsZSAoTlVMTD1rZXJuZWwpICovCi0Jc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3QgbG9ja19xdWV1ZTsJLyoqPCBRdWV1ZSBvZiBibG9ja2VkIHByb2Nlc3NlcyAqLwotCXVuc2lnbmVkIGxvbmcgbG9ja190aW1lOwkvKio8IFRpbWUgb2YgbGFzdCBsb2NrIGluIGppZmZpZXMgKi8KLQlzcGlubG9ja190IHNwaW5sb2NrOwotCXVpbnQzMl90IGtlcm5lbF93YWl0ZXJzOwotCXVpbnQzMl90IHVzZXJfd2FpdGVyczsKLQlpbnQgaWRsZV9oYXNfbG9jazsKLX07Ci0KLS8qKgotICogRE1BIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fZGV2aWNlX2RtYSB7Ci0KLQlzdHJ1Y3QgZHJtX2J1Zl9lbnRyeSBidWZzW0RSTV9NQVhfT1JERVIgKyAxXTsJLyoqPCBidWZmZXJzLCBncm91cGVkIGJ5IHRoZWlyIHNpemUgb3JkZXIgKi8KLQlpbnQgYnVmX2NvdW50OwkJCS8qKjwgdG90YWwgbnVtYmVyIG9mIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1Zmxpc3Q7CQkvKio8IFZlY3RvciBvZiBwb2ludGVycyBpbnRvIGRybV9kZXZpY2VfZG1hOjpidWZzICovCi0JaW50IHNlZ19jb3VudDsKLQlpbnQgcGFnZV9jb3VudDsJCQkvKio8IG51bWJlciBvZiBwYWdlcyAqLwotCXVuc2lnbmVkIGxvbmcgKnBhZ2VsaXN0OwkvKio8IHBhZ2UgbGlzdCAqLwotCXVuc2lnbmVkIGxvbmcgYnl0ZV9jb3VudDsKLQllbnVtIHsKLQkJX0RSTV9ETUFfVVNFX0FHUCA9IDB4MDEsCi0JCV9EUk1fRE1BX1VTRV9TRyA9IDB4MDIsCi0JCV9EUk1fRE1BX1VTRV9GQiA9IDB4MDQsCi0JCV9EUk1fRE1BX1VTRV9QQ0lfUk8gPSAweDA4Ci0JfSBmbGFnczsKLQotfTsKLQotLyoqCi0gKiBBR1AgbWVtb3J5IGVudHJ5LiAgU3RvcmVkIGFzIGEgZG91Ymx5IGxpbmtlZCBsaXN0LgotICovCi1zdHJ1Y3QgZHJtX2FncF9tZW0gewotCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkJLyoqPCBoYW5kbGUgKi8KLQlEUk1fQUdQX01FTSAqbWVtb3J5OwotCXVuc2lnbmVkIGxvbmcgYm91bmQ7CQkvKio8IGFkZHJlc3MgKi8KLQlpbnQgcGFnZXM7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotfTsKLQotLyoqCi0gKiBBR1AgZGF0YS4KLSAqCi0gKiBcc2EgZHJtX2FncF9pbml0KCkgYW5kIGRybV9kZXZpY2U6OmFncC4KLSAqLwotc3RydWN0IGRybV9hZ3BfaGVhZCB7Ci0JRFJNX0FHUF9LRVJOIGFncF9pbmZvOwkJLyoqPCBBR1AgZGV2aWNlIGluZm9ybWF0aW9uICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtZW1vcnk7Ci0JdW5zaWduZWQgbG9uZyBtb2RlOwkJLyoqPCBBR1AgbW9kZSAqLwotCXN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZTsKLQlpbnQgZW5hYmxlZDsJCQkvKio8IHdoZXRoZXIgdGhlIEFHUCBidXMgYXMgYmVlbiBlbmFibGVkICovCi0JaW50IGFjcXVpcmVkOwkJCS8qKjwgd2hldGhlciB0aGUgQUdQIGRldmljZSBoYXMgYmVlbiBhY3F1aXJlZCAqLwotCXVuc2lnbmVkIGxvbmcgYmFzZTsKLQlpbnQgYWdwX210cnI7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOwotCXVuc2lnbmVkIGxvbmcgcGFnZV9tYXNrOwotfTsKLQotLyoqCi0gKiBTY2F0dGVyLWdhdGhlciBtZW1vcnkuCi0gKi8KLXN0cnVjdCBkcm1fc2dfbWVtIHsKLQl1bnNpZ25lZCBsb25nIGhhbmRsZTsKLQl2b2lkICp2aXJ0dWFsOwotCWludCBwYWdlczsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VsaXN0OwotCWRtYV9hZGRyX3QgKmJ1c2FkZHI7Ci19OwotCi1zdHJ1Y3QgZHJtX3NpZ2RhdGEgewotCWludCBjb250ZXh0OwotCXN0cnVjdCBkcm1faHdfbG9jayAqbG9jazsKLX07Ci0KLQotLyoKLSAqIEdlbmVyaWMgbWVtb3J5IG1hbmFnZXIgc3RydWN0cwotICovCi0KLXN0cnVjdCBkcm1fbW1fbm9kZSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBmbF9lbnRyeTsKLQlzdHJ1Y3QgbGlzdF9oZWFkIG1sX2VudHJ5OwotCWludCBmcmVlOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCXN0cnVjdCBkcm1fbW0gKm1tOwotCXZvaWQgKnByaXZhdGU7Ci19OwotCi1zdHJ1Y3QgZHJtX21tIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2VudHJ5OwotCXN0cnVjdCBsaXN0X2hlYWQgbWxfZW50cnk7Ci19OwotCi0KLS8qKgotICogTWFwcGluZ3MgbGlzdAotICovCi1zdHJ1Y3QgZHJtX21hcF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2g7Ci0Jc3RydWN0IGRybV9tYXAgKm1hcDsJCQkvKio8IG1hcHBpbmcgKi8KLQl1aW50NjRfdCB1c2VyX3Rva2VuOwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX21hcCBkcm1fbG9jYWxfbWFwX3Q7Ci0KLS8qKgotICogQ29udGV4dCBoYW5kbGUgbGlzdAotICovCi1zdHJ1Y3QgZHJtX2N0eF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCWRybV9jb250ZXh0X3QgaGFuZGxlOwkJLyoqPCBjb250ZXh0IGhhbmRsZSAqLwotCXN0cnVjdCBkcm1fZmlsZSAqdGFnOwkJLyoqPCBhc3NvY2lhdGVkIGZkIHByaXZhdGUgZGF0YSAqLwotfTsKLQotc3RydWN0IGRybV92Ymxfc2lnIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7Ci0JdW5zaWduZWQgaW50IHNlcXVlbmNlOwotCXN0cnVjdCBzaWdpbmZvIGluZm87Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwotfTsKLQotLyogbG9jYXRpb24gb2YgR0FSVCB0YWJsZSAqLwotI2RlZmluZSBEUk1fQVRJX0dBUlRfTUFJTiAxCi0jZGVmaW5lIERSTV9BVElfR0FSVF9GQiAgIDIKLQotI2RlZmluZSBEUk1fQVRJX0dBUlRfUENJIDEKLSNkZWZpbmUgRFJNX0FUSV9HQVJUX1BDSUUgMgotI2RlZmluZSBEUk1fQVRJX0dBUlRfSUdQIDMKLQotc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvIHsKLQlpbnQgZ2FydF90YWJsZV9sb2NhdGlvbjsKLQlpbnQgZ2FydF9yZWdfaWY7Ci0Jdm9pZCAqYWRkcjsKLQlkbWFfYWRkcl90IGJ1c19hZGRyOwotCWRtYV9hZGRyX3QgdGFibGVfbWFzazsKLQlzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKnRhYmxlX2hhbmRsZTsKLQlkcm1fbG9jYWxfbWFwX3QgbWFwcGluZzsKLQlpbnQgdGFibGVfc2l6ZTsKLX07Ci0KLS8qKgotICogRFJNIGRyaXZlciBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgY29tbW9uIGNvZGUgZm9yCi0gKiBhIGZhbWlseSBvZiBjYXJkcy4gVGhlcmUgd2lsbCBvbmUgZHJtX2RldmljZSBmb3IgZWFjaCBjYXJkIHByZXNlbnQKLSAqIGluIHRoaXMgZmFtaWx5Ci0gKi8KLXN0cnVjdCBkcm1fZHJpdmVyIHsKLQlpbnQgKCpsb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci0JaW50ICgqZmlyc3RvcGVuKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqb3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqcHJlY2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnBvc3RjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqbGFzdGNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqdW5sb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHBtX21lc3NhZ2VfdCBzdGF0ZSk7Ci0JaW50ICgqcmVzdW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqZG1hX2lvY3RsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCXZvaWQgKCpkbWFfcmVhZHkpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKLQlpbnQgKCpkbWFfcXVpZXNjZW50KSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqY29udGV4dF9jdG9yKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOwotCWludCAoKmNvbnRleHRfZHRvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKLQlpbnQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2gpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb2xkLAotCQkJCSAgICAgIGludCBuZXcpOwotCXZvaWQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2hfdW5sb2NrKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0JaW50ICgqdmJsYW5rX3dhaXQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCp2Ymxhbmtfd2FpdDIpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCpkcmlfbGlicmFyeV9uYW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY2hhciAqYnVmKTsKLQotCS8qKgotCSAqIENhbGxlZCBieSBcYyBkcm1fZGV2aWNlX2lzX2FncC4gIFR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiBhCi0JICogY2FyZCBpcyByZWFsbHkgYXR0YWNoZWQgdG8gQUdQIG9yIG5vdC4KLQkgKgotCSAqIFxwYXJhbSBkZXYgIERSTSBkZXZpY2UgaGFuZGxlCi0JICoKLQkgKiBccmV0dXJucwotCSAqIE9uZSBvZiB0aHJlZSB2YWx1ZXMgaXMgcmV0dXJuZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZQotCSAqIGNhcmQgaXMgYWJzb2x1dGVseSBcYiBub3QgQUdQIChyZXR1cm4gb2YgMCksIGFic29sdXRlbHkgXGIgaXMgQUdQCi0JICogKHJldHVybiBvZiAxKSwgb3IgbWF5IG9yIG1heSBub3QgYmUgQUdQIChyZXR1cm4gb2YgMikuCi0JICovCi0JaW50ICgqZGV2aWNlX2lzX2FncCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JLyogdGhlc2UgaGF2ZSB0byBiZSBmaWxsZWQgaW4gKi8KLQotCWlycXJldHVybl90KCppcnFfaGFuZGxlcikgKERSTV9JUlFfQVJHUyk7Ci0Jdm9pZCAoKmlycV9wcmVpbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKmlycV9wb3N0aW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCXZvaWQgKCppcnFfdW5pbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVycykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqIGZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQl1bnNpZ25lZCBsb25nICgqZ2V0X21hcF9vZnMpIChzdHJ1Y3QgZHJtX21hcCAqIG1hcCk7Ci0JdW5zaWduZWQgbG9uZyAoKmdldF9yZWdfb2ZzKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnNldF92ZXJzaW9uKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IGRybV9zZXRfdmVyc2lvbiAqc3YpOwotCi0JaW50IG1ham9yOwotCWludCBtaW5vcjsKLQlpbnQgcGF0Y2hsZXZlbDsKLQljaGFyICpuYW1lOwotCWNoYXIgKmRlc2M7Ci0JY2hhciAqZGF0ZTsKLQotCXUzMiBkcml2ZXJfZmVhdHVyZXM7Ci0JaW50IGRldl9wcml2X3NpemU7Ci0Jc3RydWN0IGRybV9pb2N0bF9kZXNjICppb2N0bHM7Ci0JaW50IG51bV9pb2N0bHM7Ci0Jc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzOwotCXN0cnVjdCBwY2lfZHJpdmVyIHBjaV9kcml2ZXI7Ci19OwotCi0jZGVmaW5lIERSTV9NSU5PUl9VTkFTU0lHTkVEIDAKLSNkZWZpbmUgRFJNX01JTk9SX0xFR0FDWSAxCi0KLS8qKgotICogRFJNIG1pbm9yIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIGRybSBtaW5vciBudW1iZXIuCi0gKi8KLXN0cnVjdCBkcm1fbWlub3IgewotCWludCBpbmRleDsJCQkvKio8IE1pbm9yIGRldmljZSBudW1iZXIgKi8KLQlpbnQgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgIC8qKjwgQ29udHJvbCBvciByZW5kZXIgKi8KLQlkZXZfdCBkZXZpY2U7CQkJLyoqPCBEZXZpY2UgbnVtYmVyIGZvciBta25vZCAqLwotCXN0cnVjdCBkZXZpY2Uga2RldjsJCS8qKjwgTGludXggZGV2aWNlICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmRldl9yb290OyAgLyoqPCBwcm9jIGRpcmVjdG9yeSBlbnRyeSAqLwotfTsKLQotLyoqCi0gKiBEUk0gZGV2aWNlIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IGEgY29tcGxldGUgY2FyZCB0aGF0Ci0gKiBtYXkgY29udGFpbiBtdWx0aXBsZSBoZWFkcy4KLSAqLwotc3RydWN0IGRybV9kZXZpY2UgewotCWNoYXIgKnVuaXF1ZTsJCQkvKio8IFVuaXF1ZSBpZGVudGlmaWVyOiBlLmcuLCBidXNpZCAqLwotCWludCB1bmlxdWVfbGVuOwkJCS8qKjwgTGVuZ3RoIG9mIHVuaXF1ZSBmaWVsZCAqLwotCWNoYXIgKmRldm5hbWU7CQkJLyoqPCBGb3IgL3Byb2MvaW50ZXJydXB0cyAqLwotCWludCBpZl92ZXJzaW9uOwkJCS8qKjwgSGlnaGVzdCBpbnRlcmZhY2UgdmVyc2lvbiBzZXQgKi8KLQotCWludCBibG9ja2VkOwkJCS8qKjwgQmxvY2tlZCBkdWUgdG8gVkMgc3dpdGNoPyAqLwotCi0JLyoqIFxuYW1lIExvY2tzICovCi0JLypAeyAqLwotCXNwaW5sb2NrX3QgY291bnRfbG9jazsJCS8qKjwgRm9yIGludXNlLCBkcm1fZGV2aWNlOjpvcGVuX2NvdW50LCBkcm1fZGV2aWNlOjpidWZfdXNlICovCi0Jc3RydWN0IG11dGV4IHN0cnVjdF9tdXRleDsJLyoqPCBGb3Igb3RoZXJzICovCi0JLypAfSAqLwotCi0JLyoqIFxuYW1lIFVzYWdlIENvdW50ZXJzICovCi0JLypAeyAqLwotCWludCBvcGVuX2NvdW50OwkJCS8qKjwgT3V0c3RhbmRpbmcgZmlsZXMgb3BlbiAqLwotCWF0b21pY190IGlvY3RsX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyBJT0NUTHMgcGVuZGluZyAqLwotCWF0b21pY190IHZtYV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdm1hIGFyZWFzIG9wZW4gKi8KLQlpbnQgYnVmX3VzZTsJCQkvKio8IEJ1ZmZlcnMgaW4gdXNlIC0tIGNhbm5vdCBhbGxvYyAqLwotCWF0b21pY190IGJ1Zl9hbGxvYzsJCS8qKjwgQnVmZmVyIGFsbG9jYXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgUGVyZm9ybWFuY2UgY291bnRlcnMgKi8KLQkvKkB7ICovCi0JdW5zaWduZWQgbG9uZyBjb3VudGVyczsKLQllbnVtIGRybV9zdGF0X3R5cGUgdHlwZXNbMTVdOwotCWF0b21pY190IGNvdW50c1sxNV07Ci0JLypAfSAqLwotCi0JLyoqIFxuYW1lIEF1dGhlbnRpY2F0aW9uICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZmlsZWxpc3Q7Ci0Jc3RydWN0IGRybV9vcGVuX2hhc2ggbWFnaWNsaXN0OwkvKio8IG1hZ2ljIGhhc2ggdGFibGUgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1hZ2ljZnJlZTsKLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgTWVtb3J5IG1hbmFnZW1lbnQgKi8KLQkvKkB7ICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtYXBsaXN0OwkvKio8IExpbmtlZCBsaXN0IG9mIHJlZ2lvbnMgKi8KLQlpbnQgbWFwX2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIG1hcHBhYmxlIHJlZ2lvbnMgKi8KLQlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYXBfaGFzaDsJLyoqPCBVc2VyIHRva2VuIGhhc2ggdGFibGUgZm9yIG1hcHMgKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IGhhbmRsZSBtYW5hZ2VtZW50ICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgY3R4bGlzdDsJLyoqPCBMaW5rZWQgbGlzdCBvZiBjb250ZXh0IGhhbmRsZXMgKi8KLQlpbnQgY3R4X2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIGNvbnRleHQgaGFuZGxlcyAqLwotCXN0cnVjdCBtdXRleCBjdHhsaXN0X211dGV4OwkvKio8IEZvciBjdHhsaXN0ICovCi0KLQlzdHJ1Y3QgaWRyIGN0eF9pZHI7Ci0KLQlzdHJ1Y3QgbGlzdF9oZWFkIHZtYWxpc3Q7CS8qKjwgTGlzdCBvZiB2bWFzIChmb3IgZGVidWdnaW5nKSAqLwotCXN0cnVjdCBkcm1fbG9ja19kYXRhIGxvY2s7CS8qKjwgSW5mb3JtYXRpb24gb24gaGFyZHdhcmUgbG9jayAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBETUEgcXVldWVzIChjb250ZXh0cykgKi8KLQkvKkB7ICovCi0JaW50IHF1ZXVlX2NvdW50OwkJLyoqPCBOdW1iZXIgb2YgYWN0aXZlIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfcmVzZXJ2ZWQ7CQkgIC8qKjwgTnVtYmVyIG9mIHJlc2VydmVkIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfc2xvdHM7CQkvKio8IEFjdHVhbCBsZW5ndGggb2YgcXVldWVsaXN0ICovCi0Jc3RydWN0IGRybV9xdWV1ZSAqKnF1ZXVlbGlzdDsJLyoqPCBWZWN0b3Igb2YgcG9pbnRlcnMgdG8gRE1BIHF1ZXVlcyAqLwotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hOwkJLyoqPCBPcHRpb25hbCBwb2ludGVyIGZvciBETUEgc3VwcG9ydCAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IHN1cHBvcnQgKi8KLQkvKkB7ICovCi0JaW50IGlycTsJCQkvKio8IEludGVycnVwdCB1c2VkIGJ5IGJvYXJkICovCi0JaW50IGlycV9lbmFibGVkOwkJLyoqPCBUcnVlIGlmIGlycSBoYW5kbGVyIGlzIGVuYWJsZWQgKi8KLQlfX3ZvbGF0aWxlX18gbG9uZyBjb250ZXh0X2ZsYWc7CS8qKjwgQ29udGV4dCBzd2FwcGluZyBmbGFnICovCi0JX192b2xhdGlsZV9fIGxvbmcgaW50ZXJydXB0X2ZsYWc7IC8qKjwgSW50ZXJydXB0aW9uIGhhbmRsZXIgZmxhZyAqLwotCV9fdm9sYXRpbGVfXyBsb25nIGRtYV9mbGFnOwkvKio8IERNQSBkaXNwYXRjaCBmbGFnICovCi0Jc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CS8qKjwgVGltZXIgZm9yIGRlbGF5aW5nIGN0eCBzd2l0Y2ggKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBjb250ZXh0X3dhaXQ7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gY3R4IHN3aXRjaCAqLwotCWludCBsYXN0X2NoZWNrZWQ7CQkvKio8IExhc3QgY29udGV4dCBjaGVja2VkIGZvciBETUEgKi8KLQlpbnQgbGFzdF9jb250ZXh0OwkJLyoqPCBMYXN0IGN1cnJlbnQgY29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2g7CS8qKjwgamlmZmllcyBhdCBsYXN0IGNvbnRleHQgc3dpdGNoICovCi0JLypAfSAqLwotCi0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0JLyoqIFxuYW1lIFZCTEFOSyBJUlEgc3VwcG9ydCAqLwotCS8qQHsgKi8KLQotCXdhaXRfcXVldWVfaGVhZF90IHZibF9xdWV1ZTsJLyoqPCBWQkxBTksgd2FpdCBxdWV1ZSAqLwotCWF0b21pY190IHZibF9yZWNlaXZlZDsKLQlhdG9taWNfdCB2YmxfcmVjZWl2ZWQyOwkJLyoqPCBudW1iZXIgb2Ygc2Vjb25kYXJ5IFZCTEFOSyBpbnRlcnJ1cHRzICovCi0Jc3BpbmxvY2tfdCB2YmxfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHZibF9zaWdzOwkJLyoqPCBzaWduYWwgbGlzdCB0byBzZW5kIG9uIFZCTEFOSyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgdmJsX3NpZ3MyOwkvKio8IHNpZ25hbHMgdG8gc2VuZCBvbiBzZWNvbmRhcnkgVkJMQU5LICovCi0JdW5zaWduZWQgaW50IHZibF9wZW5kaW5nOwotCXNwaW5sb2NrX3QgdGFza2xldF9sb2NrOwkvKio8IEZvciBkcm1fbG9ja2VkX3Rhc2tsZXQgKi8KLQl2b2lkICgqbG9ja2VkX3Rhc2tsZXRfZnVuYykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkvKkB9ICovCi0JY3ljbGVzX3QgY3R4X3N0YXJ0OwotCWN5Y2xlc190IGxja19zdGFydDsKLQotCXN0cnVjdCBmYXN5bmNfc3RydWN0ICpidWZfYXN5bmM7LyoqPCBQcm9jZXNzZXMgd2FpdGluZyBmb3IgU0lHSU8gKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBidWZfcmVhZGVyczsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB0byByZWFkICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgYnVmX3dyaXRlcnM7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdG8gY3R4IHN3aXRjaCAqLwotCi0Jc3RydWN0IGRybV9hZ3BfaGVhZCAqYWdwOwkvKio8IEFHUCBkYXRhICovCi0KLQlzdHJ1Y3QgcGNpX2RldiAqcGRldjsJCS8qKjwgUENJIGRldmljZSBzdHJ1Y3R1cmUgKi8KLQlpbnQgcGNpX3ZlbmRvcjsJCQkvKio8IFBDSSB2ZW5kb3IgaWQgKi8KLQlpbnQgcGNpX2RldmljZTsJCQkvKio8IFBDSSBkZXZpY2UgaWQgKi8KLSNpZmRlZiBfX2FscGhhX18KLQlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7Ci0jZW5kaWYKLQlzdHJ1Y3QgZHJtX3NnX21lbSAqc2c7CS8qKjwgU2NhdHRlciBnYXRoZXIgbWVtb3J5ICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkvKio8IGRldmljZSBwcml2YXRlIGRhdGEgKi8KLQlzdHJ1Y3QgZHJtX3NpZ2RhdGEgc2lnZGF0YTsJICAgLyoqPCBGb3IgYmxvY2tfYWxsX3NpZ25hbHMgKi8KLQlzaWdzZXRfdCBzaWdtYXNrOwotCi0Jc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcjsKLQlkcm1fbG9jYWxfbWFwX3QgKmFncF9idWZmZXJfbWFwOwotCXVuc2lnbmVkIGludCBhZ3BfYnVmZmVyX3Rva2VuOwotCXN0cnVjdCBkcm1fbWlub3IgKnByaW1hcnk7CQkvKio8IHJlbmRlciB0eXBlIHByaW1hcnkgc2NyZWVuIGhlYWQgKi8KLQotCS8qKiBcbmFtZSBEcmF3YWJsZSBpbmZvcm1hdGlvbiAqLwotCS8qQHsgKi8KLQlzcGlubG9ja190IGRyd19sb2NrOwotCXN0cnVjdCBpZHIgZHJ3X2lkcjsKLQkvKkB9ICovCi19OwotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgICAgIGludCBmZWF0dXJlKQotewotCXJldHVybiAoKGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBmZWF0dXJlKSA/IDEgOiAwKTsKLX0KLQotI2lmZGVmIF9fYWxwaGFfXwotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSBkZXYtPmhvc2UtPmluZGV4Ci0jZWxzZQotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSAwCi0jZW5kaWYKLQotI2lmIF9fT1NfSEFTX0FHUAotc3RhdGljIGlubGluZSBpbnQgZHJtX2NvcmVfaGFzX0FHUChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9BR1ApOwotfQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX0FHUChkZXYpICgwKQotI2VuZGlmCi0KLSNpZiBfX09TX0hBU19NVFJSCi1zdGF0aWMgaW5saW5lIGludCBkcm1fY29yZV9oYXNfTVRSUihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9NVFJSKTsKLX0KLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJTVRSUl9UWVBFX1dSQ09NQgotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfYWRkKG9mZnNldCwgc2l6ZSwgZmxhZ3MsIDEpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9kZWwoaW50IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfZGVsKGhhbmRsZSwgb2Zmc2V0LCBzaXplKTsKLX0KLQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX01UUlIoZGV2KSAoMCkKLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJMAotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2RlbChpbnQgaGFuZGxlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIGZ1bmN0aW9uIGRlZmluaXRpb25zICovCi0vKkB7Ki8KLQotCQkJCS8qIERyaXZlciBzdXBwb3J0IChkcm1fZHJ2LmgpICovCi1leHRlcm4gaW50IGRybV9pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOwotZXh0ZXJuIHZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7Ci1leHRlcm4gaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gbG9uZyBkcm1fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLAotCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gaW50IGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBEZXZpY2Ugc3VwcG9ydCAoZHJtX2ZvcHMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOwotZXh0ZXJuIGludCBkcm1fc3R1Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKLWV4dGVybiBpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pOwotZXh0ZXJuIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7Ci0KLQkJCQkvKiBNYXBwaW5nIHN1cHBvcnQgKGRybV92bS5oKSAqLwotZXh0ZXJuIGludCBkcm1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X21hcF9vZnMoc3RydWN0IGRybV9tYXAgKiBtYXApOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X3JlZ19vZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdW5zaWduZWQgaW50IGRybV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpOwotCi0JCQkJLyogTWVtb3J5IG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX21lbW9yeS5oKSAqLwotI2luY2x1ZGUgImRybV9tZW1vcnkuaCIKLWV4dGVybiB2b2lkIGRybV9tZW1faW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCQlpbnQgcmVxdWVzdCwgaW50ICplb2YsIHZvaWQgKmRhdGEpOwotZXh0ZXJuIHZvaWQgKmRybV9yZWFsbG9jKHZvaWQgKm9sZHB0LCBzaXplX3Qgb2xkc2l6ZSwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKLQotZXh0ZXJuIERSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwYWdlcywgdTMyIHR5cGUpOwotZXh0ZXJuIGludCBkcm1fZnJlZV9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIGludCBwYWdlcyk7Ci1leHRlcm4gaW50IGRybV9iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgdW5zaWduZWQgaW50IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOwotCi0JCQkJLyogTWlzYy4gSU9DVEwgc3VwcG9ydCAoZHJtX2lvY3RsLmgpICovCi1leHRlcm4gaW50IGRybV9pcnFfYnlfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y2xpZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c3RhdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3NldHZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fbm9vcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQ29udGV4dCBJT0NUTCBzdXBwb3J0IChkcm1fY29udGV4dC5oKSAqLwotZXh0ZXJuIGludCBkcm1fcmVzY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tb2RjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3N3aXRjaGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX25ld2N0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotZXh0ZXJuIGludCBkcm1fY3R4Yml0bWFwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGN0eF9oYW5kbGUpOwotCi1leHRlcm4gaW50IGRybV9zZXRzYXJlYWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c2FyZWFjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIERyYXdhYmxlIElPQ1RMIHN1cHBvcnQgKGRybV9kcmF3YWJsZS5oKSAqLwotZXh0ZXJuIGludCBkcm1fYWRkZHJhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fcm1kcmF3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VwZGF0ZV9kcmF3YWJsZV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRybV9nZXRfZHJhd2FibGVfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICBkcm1fZHJhd2FibGVfdCBpZCk7Ci1leHRlcm4gdm9pZCBkcm1fZHJhd2FibGVfZnJlZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBBdXRoZW50aWNhdGlvbiBJT0NUTCBzdXBwb3J0IChkcm1fYXV0aC5oKSAqLwotZXh0ZXJuIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2F1dGhtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIExvY2tpbmcgSU9DVEwgc3VwcG9ydCAoZHJtX2xvY2suaCkgKi8KLWV4dGVybiBpbnQgZHJtX2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VubG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9sb2NrX3Rha2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOwotZXh0ZXJuIGludCBkcm1fbG9ja19mcmVlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KTsKLWV4dGVybiB2b2lkIGRybV9pZGxlbG9ja190YWtlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEpOwotZXh0ZXJuIHZvaWQgZHJtX2lkbGVsb2NrX3JlbGVhc2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSk7Ci0KLS8qCi0gKiBUaGVzZSBhcmUgZXhwb3J0ZWQgdG8gZHJpdmVycyBzbyB0aGF0IHRoZXkgY2FuIGltcGxlbWVudCBmZW5jaW5nIHVzaW5nCi0gKiBETUEgcXVpc2NlbnQgKyBpZGxlLiBETUEgcXVpZXNjZW50IHVzdWFsbHkgcmVxdWlyZXMgdGhlIGhhcmR3YXJlIGxvY2suCi0gKi8KLQotZXh0ZXJuIGludCBkcm1faV9oYXZlX2h3X2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQnVmZmVyIG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX2J1ZnMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfcGNpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAotCQkgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwgZW51bSBkcm1fbWFwX3R5cGUgdHlwZSwKLQkJICAgICAgZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzLCBkcm1fbG9jYWxfbWFwX3QgKiogbWFwX3B0cik7Ci1leHRlcm4gaW50IGRybV9hZGRtYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fbG9jYWxfbWFwX3QgKm1hcCk7Ci1leHRlcm4gaW50IGRybV9ybW1hcF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2xvY2FsX21hcF90ICptYXApOwotZXh0ZXJuIGludCBkcm1fcm1tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2luZm9idWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tYXJrYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZnJlZWJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX21hcGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2dldF9yZXNvdXJjZV9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotCi0JCQkJLyogRE1BIHN1cHBvcnQgKGRybV9kbWEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2RtYV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9kbWFfdGFrZWRvd24oc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZnJlZV9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWYgKiBidWYpOwotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfcmVjbGFpbV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwotCi0JCQkJLyogSVJRIHN1cHBvcnQgKGRybV9pcnEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2NvbnRyb2woc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpcnFyZXR1cm5fdCBkcm1faXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKLWV4dGVybiBpbnQgZHJtX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLWV4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnZibF9zZXEpOwotZXh0ZXJuIHZvaWQgZHJtX3ZibF9zZW5kX3NpZ25hbHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fbG9ja2VkX3Rhc2tsZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCgqZnVuYykoc3RydWN0IGRybV9kZXZpY2UqKSk7Ci0KLQkJCQkvKiBBR1AvR0FSVCBzdXBwb3J0IChkcm1fYWdwc3VwcG9ydC5oKSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fYWdwX2hlYWQgKmRybV9hZ3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9hZ3BfcmVsZWFzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX21vZGUgbW9kZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfaW5mbyAqaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hZ3BfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYmluZGluZyAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBEUk1fQUdQX01FTSAqZHJtX2FncF9hbGxvY2F0ZV9tZW1vcnkoc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlLCBzaXplX3QgcGFnZXMsIHUzMiB0eXBlKTsKLWV4dGVybiBpbnQgZHJtX2FncF9mcmVlX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYmluZF9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIG9mZl90IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmRfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlKTsKLQotCQkJCS8qIFN0dWIgc3VwcG9ydCAoZHJtX3N0dWIuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2dldF9kZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKLWV4dGVybiBpbnQgZHJtX3B1dF9kZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9wdXRfbWlub3Ioc3RydWN0IGRybV9taW5vciAqKm1pbm9yKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX2RlYnVnOwotCi1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7Ci1leHRlcm4gc3RydWN0IHByb2NfZGlyX2VudHJ5ICpkcm1fcHJvY19yb290OwotCi1leHRlcm4gc3RydWN0IGlkciBkcm1fbWlub3JzX2lkcjsKLQotZXh0ZXJuIGRybV9sb2NhbF9tYXBfdCAqZHJtX2dldHNhcmVhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JCQkJLyogUHJvYyBzdXBwb3J0IChkcm1fcHJvYy5oKSAqLwotZXh0ZXJuIGludCBkcm1fcHJvY19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yLCBpbnQgbWlub3JfaWQsCi0JCQkgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLWV4dGVybiBpbnQgZHJtX3Byb2NfY2xlYW51cChzdHJ1Y3QgZHJtX21pbm9yICptaW5vciwgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLQotCQkJCS8qIFNjYXR0ZXIgR2F0aGVyIFN1cHBvcnQgKGRybV9zY2F0dGVyLmgpICovCi1leHRlcm4gdm9pZCBkcm1fc2dfY2xlYW51cChzdHJ1Y3QgZHJtX3NnX21lbSAqIGVudHJ5KTsKLWV4dGVybiBpbnQgZHJtX3NnX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZ19hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyICogcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9zZ19mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0KLQkJCSAgICAgICAvKiBBVEkgUENJR0FSVCBzdXBwb3J0IChhdGlfcGNpZ2FydC5oKSAqLwotZXh0ZXJuIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqIGdhcnRfaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICogZ2FydF9pbmZvKTsKLQotZXh0ZXJuIGRybV9kbWFfaGFuZGxlX3QgKmRybV9wY2lfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCi0JCQkJICAgICAgIHNpemVfdCBhbGlnbiwgZG1hX2FkZHJfdCBtYXhhZGRyKTsKLWV4dGVybiB2b2lkIF9fZHJtX3BjaV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9kbWFfaGFuZGxlX3QgKiBkbWFoKTsKLWV4dGVybiB2b2lkIGRybV9wY2lfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fZG1hX2hhbmRsZV90ICogZG1haCk7Ci0KLQkJCSAgICAgICAvKiBzeXNmcyBzdXBwb3J0IChkcm1fc3lzZnMuYykgKi8KLXN0cnVjdCBkcm1fc3lzZnNfY2xhc3M7Ci1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKTsKLWV4dGVybiB2b2lkIGRybV9zeXNmc19kZXN0cm95KHZvaWQpOwotZXh0ZXJuIGludCBkcm1fc3lzZnNfZGV2aWNlX2FkZChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci1leHRlcm4gdm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci0KLS8qCi0gKiBCYXNpYyBtZW1vcnkgbWFuYWdlciBzdXBwb3J0IChkcm1fbW0uYykKLSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX2dldF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKiBwYXJlbnQsCi0JCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICAgICAgdW5zaWduZWQgYWxpZ25tZW50KTsKLWV4dGVybiB2b2lkIGRybV9tbV9wdXRfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICogY3VyKTsKLWV4dGVybiBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9tbV9zZWFyY2hfZnJlZShjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJCQkgdW5zaWduZWQgYWxpZ25tZW50LCBpbnQgYmVzdF9tYXRjaCk7Ci1leHRlcm4gaW50IGRybV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgZHJtX21tX3Rha2Vkb3duKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX2NsZWFuKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGRybV9tbV90YWlsX3NwYWNlKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX3JlbW92ZV9zcGFjZV9mcm9tX3RhaWwoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gaW50IGRybV9tbV9hZGRfc3BhY2VfdG9fdGFpbChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplKTsKLQotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXBmcmVlKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgZHJtX21hcCAqZHJtX2NvcmVfZmluZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICAgdW5zaWduZWQgaW50IHRva2VuKQotewotCXN0cnVjdCBkcm1fbWFwX2xpc3QgKl9lbnRyeTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KF9lbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkKLQkgICAgaWYgKF9lbnRyeS0+dXNlcl90b2tlbiA9PSB0b2tlbikKLQkJcmV0dXJuIF9lbnRyeS0+bWFwOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoZGV2LT5kcml2ZXItPmRldmljZV9pc19hZ3AgIT0gTlVMTCkgewotCQlpbnQgZXJyID0gKCpkZXYtPmRyaXZlci0+ZGV2aWNlX2lzX2FncCkgKGRldik7Ci0KLQkJaWYgKGVyciAhPSAyKSB7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JcmV0dXJuIHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LT5wZGV2LCBQQ0lfQ0FQX0lEX0FHUCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCBkcm1fZGV2aWNlX2lzX3BjaWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsIFBDSV9DQVBfSURfRVhQKTsKLX0KLQotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fY29yZV9kcm9wbWFwKHN0cnVjdCBkcm1fbWFwICptYXApCi17Ci19Ci0KLSNpZm5kZWYgREVCVUdfTUVNT1JZCi0vKiogV3JhcHBlciBhcm91bmQga21hbGxvYygpICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fYWxsb2Moc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCXJldHVybiBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotfQotCi0vKiogV3JhcHBlciBhcm91bmQga2ZyZWUoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fZnJlZSh2b2lkICpwdCwgc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCWtmcmVlKHB0KTsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGtjYWxsb2MoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKLXsKLQlyZXR1cm4ga2NhbGxvYyhubWVtYiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Ci19Ci0jZWxzZQotZXh0ZXJuIHZvaWQgKmRybV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOwotZXh0ZXJuIHZvaWQgZHJtX2ZyZWUodm9pZCAqcHQsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci1leHRlcm4gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci0jZW5kaWYKLQotLypAfSovCi0KLSNlbmRpZgkJCQkvKiBfX0tFUk5FTF9fICovCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9jaGFyL2RybS9kcm1fZHJ2LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNTQxNDAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm1fZHJ2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MzkgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1fZHJ2LmMKLSAqIEdlbmVyaWMgZHJpdmVyIHRlbXBsYXRlCi0gKgotICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KLSAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICoKLSAqIFRvIHVzZSB0aGlzIHRlbXBsYXRlLCB5b3UgbXVzdCBhdCBsZWFzdCBkZWZpbmUgdGhlIGZvbGxvd2luZyAoc2FtcGxlcwotICogZ2l2ZW4gZm9yIHRoZSBNR0EgZHJpdmVyKToKLSAqCi0gKiBcY29kZQotICogI2RlZmluZSBEUklWRVJfQVVUSE9SCSJWQSBMaW51eCBTeXN0ZW1zLCBJbmMuIgotICoKLSAqICNkZWZpbmUgRFJJVkVSX05BTUUJCSJtZ2EiCi0gKiAjZGVmaW5lIERSSVZFUl9ERVNDCQkiTWF0cm94IEcyMDAvRzQwMCIKLSAqICNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDAwMTEyNyIKLSAqCi0gKiAjZGVmaW5lIGRybV94CQltZ2FfIyN4Ci0gKiBcZW5kY29kZQotICovCi0KLS8qCi0gKiBDcmVhdGVkOiBUaHUgTm92IDIzIDAzOjEwOjUwIDIwMDAgYnkgZ2FyZXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTksIDIwMDAgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybV9jb3JlLmgiCi0KLXN0YXRpYyBpbnQgZHJtX3ZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotLyoqIElvY3RsIHRhYmxlICovCi1zdGF0aWMgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9WRVJTSU9OLCBkcm1fdmVyc2lvbiwgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1VOSVFVRSwgZHJtX2dldHVuaXF1ZSwgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX01BR0lDLCBkcm1fZ2V0bWFnaWMsIDApLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0lSUV9CVVNJRCwgZHJtX2lycV9ieV9idXNpZCwgRFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfTUFQLCBkcm1fZ2V0bWFwLCAwKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfQ0xJRU5ULCBkcm1fZ2V0Y2xpZW50LCAwKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU1RBVFMsIGRybV9nZXRzdGF0cywgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1ZFUlNJT04sIGRybV9zZXR2ZXJzaW9uLCBEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1VOSVFVRSwgZHJtX3NldHVuaXF1ZSwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVU5CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQVVUSF9NQUdJQywgZHJtX2F1dGhtYWdpYywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9NQVAsIGRybV9hZGRtYXBfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUk1fTUFQLCBkcm1fcm1tYXBfaW9jdGwsIERSTV9BVVRIKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9TQVJFQV9DVFgsIGRybV9zZXRzYXJlYWN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU0FSRUFfQ1RYLCBkcm1fZ2V0c2FyZWFjdHgsIERSTV9BVVRIKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9DVFgsIGRybV9hZGRjdHgsIERSTV9BVVRIfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1JNX0NUWCwgZHJtX3JtY3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PRF9DVFgsIGRybV9tb2RjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX0NUWCwgZHJtX2dldGN0eCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NXSVRDSF9DVFgsIGRybV9zd2l0Y2hjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTkVXX0NUWCwgZHJtX25ld2N0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9SRVNfQ1RYLCBkcm1fcmVzY3R4LCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfRFJBVywgZHJtX2FkZGRyYXcsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUk1fRFJBVywgZHJtX3JtZHJhdywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0xPQ0ssIGRybV9sb2NrLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVU5MT0NLLCBkcm1fdW5sb2NrLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9GSU5JU0gsIGRybV9ub29wLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfQlVGUywgZHJtX2FkZGJ1ZnMsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTUFSS19CVUZTLCBkcm1fbWFya2J1ZnMsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfSU5GT19CVUZTLCBkcm1faW5mb2J1ZnMsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NQVBfQlVGUywgZHJtX21hcGJ1ZnMsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9GUkVFX0JVRlMsIGRybV9mcmVlYnVmcywgRFJNX0FVVEgpLAotCS8qIFRoZSBEUk1fSU9DVExfRE1BIGlvY3RsIHNob3VsZCBiZSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICovCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfRE1BLCBOVUxMLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9DT05UUk9MLCBkcm1fY29udHJvbCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotI2lmIF9fT1NfSEFTX0FHUAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9BQ1FVSVJFLCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX1JFTEVBU0UsIGRybV9hZ3BfcmVsZWFzZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfRU5BQkxFLCBkcm1fYWdwX2VuYWJsZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfSU5GTywgZHJtX2FncF9pbmZvX2lvY3RsLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0FMTE9DLCBkcm1fYWdwX2FsbG9jX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9GUkVFLCBkcm1fYWdwX2ZyZWVfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0JJTkQsIGRybV9hZ3BfYmluZF9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfVU5CSU5ELCBkcm1fYWdwX3VuYmluZF9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLSNlbmRpZgotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0dfQUxMT0MsIGRybV9zZ19hbGxvY19pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TR19GUkVFLCBkcm1fc2dfZnJlZSwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCBkcm1fd2FpdF92YmxhbmssIDApLAotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVVBEQVRFX0RSQVcsIGRybV91cGRhdGVfZHJhd2FibGVfaW5mbywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLX07Ci0KLSNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyApCi0KLS8qKgotICogVGFrZSBkb3duIHRoZSBEUk0gZGV2aWNlLgotICoKLSAqIFxwYXJhbSBkZXYgRFJNIGRldmljZSBzdHJ1Y3R1cmUuCi0gKgotICogRnJlZXMgZXZlcnkgcmVzb3VyY2UgaW4gXHAgZGV2LgotICoKLSAqIFxzYSBkcm1fZGV2aWNlCi0gKi8KLWludCBkcm1fbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXN0cnVjdCBkcm1fbWFnaWNfZW50cnkgKnB0LCAqbmV4dDsKLQlzdHJ1Y3QgZHJtX21hcF9saXN0ICpyX2xpc3QsICpsaXN0X3Q7Ci0Jc3RydWN0IGRybV92bWFfZW50cnkgKnZtYSwgKnZtYV90ZW1wOwotCWludCBpOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5sYXN0Y2xvc2UpCi0JCWRldi0+ZHJpdmVyLT5sYXN0Y2xvc2UoZGV2KTsKLQlEUk1fREVCVUcoImRyaXZlciBsYXN0Y2xvc2UgY29tcGxldGVkXG4iKTsKLQotCWlmIChkZXYtPnVuaXF1ZSkgewotCQlkcm1fZnJlZShkZXYtPnVuaXF1ZSwgc3RybGVuKGRldi0+dW5pcXVlKSArIDEsIERSTV9NRU1fRFJJVkVSKTsKLQkJZGV2LT51bmlxdWUgPSBOVUxMOwotCQlkZXYtPnVuaXF1ZV9sZW4gPSAwOwotCX0KLQotCWlmIChkZXYtPmlycV9lbmFibGVkKQotCQlkcm1faXJxX3VuaW5zdGFsbChkZXYpOwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JLyogRnJlZSBkcmF3YWJsZSBpbmZvcm1hdGlvbiBtZW1vcnkgKi8KLQlkcm1fZHJhd2FibGVfZnJlZV9hbGwoZGV2KTsKLQlkZWxfdGltZXIoJmRldi0+dGltZXIpOwotCi0JLyogQ2xlYXIgcGlkIGxpc3QgKi8KLQlpZiAoZGV2LT5tYWdpY2ZyZWUubmV4dCkgewotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHQsIG5leHQsICZkZXYtPm1hZ2ljZnJlZSwgaGVhZCkgewotCQkJbGlzdF9kZWwoJnB0LT5oZWFkKTsKLQkJCWRybV9odF9yZW1vdmVfaXRlbSgmZGV2LT5tYWdpY2xpc3QsICZwdC0+aGFzaF9pdGVtKTsKLQkJCWRybV9mcmVlKHB0LCBzaXplb2YoKnB0KSwgRFJNX01FTV9NQUdJQyk7Ci0JCX0KLQkJZHJtX2h0X3JlbW92ZSgmZGV2LT5tYWdpY2xpc3QpOwotCX0KLQotCS8qIENsZWFyIEFHUCBpbmZvcm1hdGlvbiAqLwotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYgZGV2LT5hZ3ApIHsKLQkJc3RydWN0IGRybV9hZ3BfbWVtICplbnRyeSwgKnRlbXBlOwotCi0JCS8qIFJlbW92ZSBBR1AgcmVzb3VyY2VzLCBidXQgbGVhdmUgZGV2LT5hZ3AKLQkJICAgaW50YWN0IHVudGlsIGRydl9jbGVhbnVwIGlzIGNhbGxlZC4gKi8KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGVudHJ5LCB0ZW1wZSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpIHsKLQkJCWlmIChlbnRyeS0+Ym91bmQpCi0JCQkJZHJtX3VuYmluZF9hZ3AoZW50cnktPm1lbW9yeSk7Ci0JCQlkcm1fZnJlZV9hZ3AoZW50cnktPm1lbW9yeSwgZW50cnktPnBhZ2VzKTsKLQkJCWRybV9mcmVlKGVudHJ5LCBzaXplb2YoKmVudHJ5KSwgRFJNX01FTV9BR1BMSVNUUyk7Ci0JCX0KLQkJSU5JVF9MSVNUX0hFQUQoJmRldi0+YWdwLT5tZW1vcnkpOwotCi0JCWlmIChkZXYtPmFncC0+YWNxdWlyZWQpCi0JCQlkcm1fYWdwX3JlbGVhc2UoZGV2KTsKLQotCQlkZXYtPmFncC0+YWNxdWlyZWQgPSAwOwotCQlkZXYtPmFncC0+ZW5hYmxlZCA9IDA7Ci0JfQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NHKSAmJiBkZXYtPnNnKSB7Ci0JCWRybV9zZ19jbGVhbnVwKGRldi0+c2cpOwotCQlkZXYtPnNnID0gTlVMTDsKLQl9Ci0KLQkvKiBDbGVhciB2bWEgbGlzdCAob25seSBidWlsdCBmb3IgZGVidWdnaW5nKSAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHZtYV90ZW1wLCAmZGV2LT52bWFsaXN0LCBoZWFkKSB7Ci0JCWxpc3RfZGVsKCZ2bWEtPmhlYWQpOwotCQlkcm1fZnJlZSh2bWEsIHNpemVvZigqdm1hKSwgRFJNX01FTV9WTUFTKTsKLQl9Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocl9saXN0LCBsaXN0X3QsICZkZXYtPm1hcGxpc3QsIGhlYWQpIHsKLQkJaWYgKCEocl9saXN0LT5tYXAtPmZsYWdzICYgX0RSTV9EUklWRVIpKSB7Ci0JCQlkcm1fcm1tYXBfbG9ja2VkKGRldiwgcl9saXN0LT5tYXApOwotCQkJcl9saXN0ID0gTlVMTDsKLQkJfQotCX0KLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0RNQV9RVUVVRSkgJiYgZGV2LT5xdWV1ZWxpc3QpIHsKLQkJZm9yIChpID0gMDsgaSA8IGRldi0+cXVldWVfY291bnQ7IGkrKykgewotCQkJaWYgKGRldi0+cXVldWVsaXN0W2ldKSB7Ci0JCQkJZHJtX2ZyZWUoZGV2LT5xdWV1ZWxpc3RbaV0sCi0JCQkJCSBzaXplb2YoKmRldi0+cXVldWVsaXN0WzBdKSwKLQkJCQkJIERSTV9NRU1fUVVFVUVTKTsKLQkJCQlkZXYtPnF1ZXVlbGlzdFtpXSA9IE5VTEw7Ci0JCQl9Ci0JCX0KLQkJZHJtX2ZyZWUoZGV2LT5xdWV1ZWxpc3QsCi0JCQkgZGV2LT5xdWV1ZV9zbG90cyAqIHNpemVvZigqZGV2LT5xdWV1ZWxpc3QpLAotCQkJIERSTV9NRU1fUVVFVUVTKTsKLQkJZGV2LT5xdWV1ZWxpc3QgPSBOVUxMOwotCX0KLQlkZXYtPnF1ZXVlX2NvdW50ID0gMDsKLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSkKLQkJZHJtX2RtYV90YWtlZG93bihkZXYpOwotCi0JaWYgKGRldi0+bG9jay5od19sb2NrKSB7Ci0JCWRldi0+c2lnZGF0YS5sb2NrID0gZGV2LT5sb2NrLmh3X2xvY2sgPSBOVUxMOwkvKiBTSE0gcmVtb3ZlZCAqLwotCQlkZXYtPmxvY2suZmlsZV9wcml2ID0gTlVMTDsKLQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZkZXYtPmxvY2subG9ja19xdWV1ZSk7Ci0JfQotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JRFJNX0RFQlVHKCJsYXN0Y2xvc2UgY29tcGxldGVkXG4iKTsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBNb2R1bGUgaW5pdGlhbGl6YXRpb24uIENhbGxlZCB2aWEgaW5pdF9tb2R1bGUgYXQgbW9kdWxlIGxvYWQgdGltZSwgb3IgdmlhCi0gKiBsaW51eC9pbml0L21haW4uYyAodGhpcyBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCkuCi0gKgotICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KLSAqCi0gKiBJbml0aWFsaXplcyBhbiBhcnJheSBvZiBkcm1fZGV2aWNlIHN0cnVjdHVyZXMsIGFuZCBhdHRlbXB0cyB0bwotICogaW5pdGlhbGl6ZSBhbGwgYXZhaWxhYmxlIGRldmljZXMsIHVzaW5nIGNvbnNlY3V0aXZlIG1pbm9ycywgcmVnaXN0ZXJpbmcgdGhlCi0gKiBzdHVicyBhbmQgaW5pdGlhbGl6aW5nIHRoZSBBR1AgZGV2aWNlLgotICoKLSAqIEV4cGFuZHMgdGhlIFxjIERSSVZFUl9QUkVJTklUIGFuZCBcYyBEUklWRVJfUE9TVF9JTklUIG1hY3JvcyBiZWZvcmUgYW5kCi0gKiBhZnRlciB0aGUgaW5pdGlhbGl6YXRpb24gZm9yIGRyaXZlciBjdXN0b21pemF0aW9uLgotICovCi1pbnQgZHJtX2luaXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcikKLXsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IE5VTEw7Ci0Jc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBpZDsKLQlpbnQgaTsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCWZvciAoaSA9IDA7IGRyaXZlci0+cGNpX2RyaXZlci5pZF90YWJsZVtpXS52ZW5kb3IgIT0gMDsgaSsrKSB7Ci0JCXBpZCA9IChzdHJ1Y3QgcGNpX2RldmljZV9pZCAqKSZkcml2ZXItPnBjaV9kcml2ZXIuaWRfdGFibGVbaV07Ci0KLQkJcGRldiA9IE5VTEw7Ci0JCS8qIHBhc3MgYmFjayBpbiBwZGV2IHRvIGFjY291bnQgZm9yIG11bHRpcGxlIGlkZW50aWNhbCBjYXJkcyAqLwotCQl3aGlsZSAoKHBkZXYgPQotCQkJcGNpX2dldF9zdWJzeXMocGlkLT52ZW5kb3IsIHBpZC0+ZGV2aWNlLCBwaWQtPnN1YnZlbmRvciwKLQkJCQkgICAgICAgcGlkLT5zdWJkZXZpY2UsIHBkZXYpKSAhPSBOVUxMKSB7Ci0JCQkvKiBzdGVhbHRoIG1vZGUgcmVxdWlyZXMgYSBtYW51YWwgcHJvYmUgKi8KLQkJCXBjaV9kZXZfZ2V0KHBkZXYpOwotCQkJZHJtX2dldF9kZXYocGRldiwgcGlkLCBkcml2ZXIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1FWFBPUlRfU1lNQk9MKGRybV9pbml0KTsKLQotLyoqCi0gKiBDYWxsZWQgdmlhIGNsZWFudXBfbW9kdWxlKCkgYXQgbW9kdWxlIHVubG9hZCB0aW1lLgotICoKLSAqIENsZWFucyB1cCBhbGwgRFJNIGRldmljZSwgY2FsbGluZyBkcm1fbGFzdGNsb3NlKCkuCi0gKgotICogXHNhIGRybV9pbml0Ci0gKi8KLXN0YXRpYyB2b2lkIGRybV9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCURSTV9ERUJVRygiXG4iKTsKLQotCWlmICghZGV2KSB7Ci0JCURSTV9FUlJPUigiY2xlYW51cCBjYWxsZWQgbm8gZGV2XG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWRybV9sYXN0Y2xvc2UoZGV2KTsKLQotCWlmIChkcm1fY29yZV9oYXNfTVRSUihkZXYpICYmIGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJgotCSAgICBkZXYtPmFncCAmJiBkZXYtPmFncC0+YWdwX210cnIgPj0gMCkgewotCQlpbnQgcmV0dmFsOwotCQlyZXR2YWwgPSBtdHJyX2RlbChkZXYtPmFncC0+YWdwX210cnIsCi0JCQkJICBkZXYtPmFncC0+YWdwX2luZm8uYXBlcl9iYXNlLAotCQkJCSAgZGV2LT5hZ3AtPmFncF9pbmZvLmFwZXJfc2l6ZSAqIDEwMjQgKiAxMDI0KTsKLQkJRFJNX0RFQlVHKCJtdHJyX2RlbD0lZFxuIiwgcmV0dmFsKTsKLQl9Ci0KLQlpZiAoZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmIGRldi0+YWdwKSB7Ci0JCWRybV9mcmVlKGRldi0+YWdwLCBzaXplb2YoKmRldi0+YWdwKSwgRFJNX01FTV9BR1BMSVNUUyk7Ci0JCWRldi0+YWdwID0gTlVMTDsKLQl9Ci0KLQlpZiAoZGV2LT5kcml2ZXItPnVubG9hZCkKLQkJZGV2LT5kcml2ZXItPnVubG9hZChkZXYpOwotCi0JZHJtX2h0X3JlbW92ZSgmZGV2LT5tYXBfaGFzaCk7Ci0JZHJtX2N0eGJpdG1hcF9jbGVhbnVwKGRldik7Ci0KLQlkcm1fcHV0X21pbm9yKCZkZXYtPnByaW1hcnkpOwotCWlmIChkcm1fcHV0X2RldihkZXYpKQotCQlEUk1fRVJST1IoIkNhbm5vdCB1bmxvYWQgbW9kdWxlXG4iKTsKLX0KLQotaW50IGRybV9taW5vcnNfY2xlYW51cChpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IHB0cjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwotCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIgPSBkYXRhOwotCi0JZGV2ID0gbWlub3ItPmRldjsKLQlpZiAobWlub3ItPmRldi0+ZHJpdmVyICE9IGRyaXZlcikKLQkJcmV0dXJuIDA7Ci0KLQlpZiAobWlub3ItPnR5cGUgIT0gRFJNX01JTk9SX0xFR0FDWSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoZGV2KQotCQlwY2lfZGV2X3B1dChkZXYtPnBkZXYpOwotCWRybV9jbGVhbnVwKGRldik7Ci0JcmV0dXJuIDE7Ci19Ci0KLXZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcikKLXsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlpZHJfZm9yX2VhY2goJmRybV9taW5vcnNfaWRyLCAmZHJtX21pbm9yc19jbGVhbnVwLCBkcml2ZXIpOwotCi0JRFJNX0lORk8oIk1vZHVsZSB1bmxvYWRlZFxuIik7Ci19Ci0KLUVYUE9SVF9TWU1CT0woZHJtX2V4aXQpOwotCi0vKiogRmlsZSBvcGVyYXRpb25zIHN0cnVjdHVyZSAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZHJtX3N0dWJfZm9wcyA9IHsKLQkub3duZXIgPSBUSElTX01PRFVMRSwKLQkub3BlbiA9IGRybV9zdHViX29wZW4KLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGRybV9jb3JlX2luaXQodm9pZCkKLXsKLQlpbnQgcmV0ID0gLUVOT01FTTsKLQotCWlkcl9pbml0KCZkcm1fbWlub3JzX2lkcik7Ci0KLQlpZiAocmVnaXN0ZXJfY2hyZGV2KERSTV9NQUpPUiwgImRybSIsICZkcm1fc3R1Yl9mb3BzKSkKLQkJZ290byBlcnJfcDE7Ci0KLQlkcm1fY2xhc3MgPSBkcm1fc3lzZnNfY3JlYXRlKFRISVNfTU9EVUxFLCAiZHJtIik7Ci0JaWYgKElTX0VSUihkcm1fY2xhc3MpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRFJNOiBFcnJvciBjcmVhdGluZyBkcm0gY2xhc3MuXG4iKTsKLQkJcmV0ID0gUFRSX0VSUihkcm1fY2xhc3MpOwotCQlnb3RvIGVycl9wMjsKLQl9Ci0KLQlkcm1fcHJvY19yb290ID0gcHJvY19ta2RpcigiZHJpIiwgTlVMTCk7Ci0JaWYgKCFkcm1fcHJvY19yb290KSB7Ci0JCURSTV9FUlJPUigiQ2Fubm90IGNyZWF0ZSAvcHJvYy9kcmlcbiIpOwotCQlyZXQgPSAtMTsKLQkJZ290byBlcnJfcDM7Ci0JfQotCi0JZHJtX21lbV9pbml0KCk7Ci0KLQlEUk1fSU5GTygiSW5pdGlhbGl6ZWQgJXMgJWQuJWQuJWQgJXNcbiIsCi0JCSBDT1JFX05BTUUsIENPUkVfTUFKT1IsIENPUkVfTUlOT1IsIENPUkVfUEFUQ0hMRVZFTCwgQ09SRV9EQVRFKTsKLQlyZXR1cm4gMDsKLWVycl9wMzoKLQlkcm1fc3lzZnNfZGVzdHJveSgpOwotZXJyX3AyOgotCXVucmVnaXN0ZXJfY2hyZGV2KERSTV9NQUpPUiwgImRybSIpOwotCi0JaWRyX2Rlc3Ryb3koJmRybV9taW5vcnNfaWRyKTsKLWVycl9wMToKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZHJtX2NvcmVfZXhpdCh2b2lkKQotewotCXJlbW92ZV9wcm9jX2VudHJ5KCJkcmkiLCBOVUxMKTsKLQlkcm1fc3lzZnNfZGVzdHJveSgpOwotCi0JdW5yZWdpc3Rlcl9jaHJkZXYoRFJNX01BSk9SLCAiZHJtIik7Ci0KLQlpZHJfZGVzdHJveSgmZHJtX21pbm9yc19pZHIpOwotfQotCi1tb2R1bGVfaW5pdChkcm1fY29yZV9pbml0KTsKLW1vZHVsZV9leGl0KGRybV9jb3JlX2V4aXQpOwotCi0vKioKLSAqIEdldCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgdXNlciBhcmd1bWVudCwgcG9pbnRpbmcgdG8gYSBkcm1fdmVyc2lvbiBzdHJ1Y3R1cmUuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KLSAqCi0gKiBGaWxscyBpbiB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbiBccCBhcmcuCi0gKi8KLXN0YXRpYyBpbnQgZHJtX3ZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXN0cnVjdCBkcm1fdmVyc2lvbiAqdmVyc2lvbiA9IGRhdGE7Ci0JaW50IGxlbjsKLQotCXZlcnNpb24tPnZlcnNpb25fbWFqb3IgPSBkZXYtPmRyaXZlci0+bWFqb3I7Ci0JdmVyc2lvbi0+dmVyc2lvbl9taW5vciA9IGRldi0+ZHJpdmVyLT5taW5vcjsKLQl2ZXJzaW9uLT52ZXJzaW9uX3BhdGNobGV2ZWwgPSBkZXYtPmRyaXZlci0+cGF0Y2hsZXZlbDsKLQlEUk1fQ09QWSh2ZXJzaW9uLT5uYW1lLCBkZXYtPmRyaXZlci0+bmFtZSk7Ci0JRFJNX0NPUFkodmVyc2lvbi0+ZGF0ZSwgZGV2LT5kcml2ZXItPmRhdGUpOwotCURSTV9DT1BZKHZlcnNpb24tPmRlc2MsIGRldi0+ZHJpdmVyLT5kZXNjKTsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIENhbGxlZCB3aGVuZXZlciBhIHByb2Nlc3MgcGVyZm9ybXMgYW4gaW9jdGwgb24gL2Rldi9kcm0uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgdXNlciBhcmd1bWVudC4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIExvb2tzIHVwIHRoZSBpb2N0bCBmdW5jdGlvbiBpbiB0aGUgOjppb2N0bHMgdGFibGUsIGNoZWNraW5nIGZvciByb290Ci0gKiBwcmV2aWxlZ2VzIGlmIHNvIHJlcXVpcmVkLCBhbmQgZGlzcGF0Y2hlcyB0byB0aGUgcmVzcGVjdGl2ZSBmdW5jdGlvbi4KLSAqLwotaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKLXsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faW9jdGxfZGVzYyAqaW9jdGw7Ci0JZHJtX2lvY3RsX3QgKmZ1bmM7Ci0JdW5zaWduZWQgaW50IG5yID0gRFJNX0lPQ1RMX05SKGNtZCk7Ci0JaW50IHJldGNvZGUgPSAtRUlOVkFMOwotCWNoYXIgKmtkYXRhID0gTlVMTDsKLQotCWF0b21pY19pbmMoJmRldi0+aW9jdGxfY291bnQpOwotCWF0b21pY19pbmMoJmRldi0+Y291bnRzW19EUk1fU1RBVF9JT0NUTFNdKTsKLQkrK2ZpbGVfcHJpdi0+aW9jdGxfY291bnQ7Ci0KLQlEUk1fREVCVUcoInBpZD0lZCwgY21kPTB4JTAyeCwgbnI9MHglMDJ4LCBkZXYgMHglbHgsIGF1dGg9JWRcbiIsCi0JCSAgdGFza19waWRfbnIoY3VycmVudCksIGNtZCwgbnIsCi0JCSAgKGxvbmcpb2xkX2VuY29kZV9kZXYoZmlsZV9wcml2LT5taW5vci0+ZGV2aWNlKSwKLQkJICBmaWxlX3ByaXYtPmF1dGhlbnRpY2F0ZWQpOwotCi0JaWYgKChuciA+PSBEUk1fQ09SRV9JT0NUTF9DT1VOVCkgJiYKLQkgICAgKChuciA8IERSTV9DT01NQU5EX0JBU0UpIHx8IChuciA+PSBEUk1fQ09NTUFORF9FTkQpKSkKLQkJZ290byBlcnJfaTE7Ci0JaWYgKChuciA+PSBEUk1fQ09NTUFORF9CQVNFKSAmJiAobnIgPCBEUk1fQ09NTUFORF9FTkQpICYmCi0JICAgIChuciA8IERSTV9DT01NQU5EX0JBU0UgKyBkZXYtPmRyaXZlci0+bnVtX2lvY3RscykpCi0JCWlvY3RsID0gJmRldi0+ZHJpdmVyLT5pb2N0bHNbbnIgLSBEUk1fQ09NTUFORF9CQVNFXTsKLQllbHNlIGlmICgobnIgPj0gRFJNX0NPTU1BTkRfRU5EKSB8fCAobnIgPCBEUk1fQ09NTUFORF9CQVNFKSkKLQkJaW9jdGwgPSAmZHJtX2lvY3Rsc1tucl07Ci0JZWxzZQotCQlnb3RvIGVycl9pMTsKLQotCWZ1bmMgPSBpb2N0bC0+ZnVuYzsKLQkvKiBpcyB0aGVyZSBhIGxvY2FsIG92ZXJyaWRlPyAqLwotCWlmICgobnIgPT0gRFJNX0lPQ1RMX05SKERSTV9JT0NUTF9ETUEpKSAmJiBkZXYtPmRyaXZlci0+ZG1hX2lvY3RsKQotCQlmdW5jID0gZGV2LT5kcml2ZXItPmRtYV9pb2N0bDsKLQotCi0JaWYgKCFmdW5jKSB7Ci0JCURSTV9ERUJVRygibm8gZnVuY3Rpb25cbiIpOwotCQlyZXRjb2RlID0gLUVJTlZBTDsKLQl9IGVsc2UgaWYgKCgoaW9jdGwtPmZsYWdzICYgRFJNX1JPT1RfT05MWSkgJiYgIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHx8Ci0JCSAgICgoaW9jdGwtPmZsYWdzICYgRFJNX0FVVEgpICYmICFmaWxlX3ByaXYtPmF1dGhlbnRpY2F0ZWQpIHx8Ci0JCSAgICgoaW9jdGwtPmZsYWdzICYgRFJNX01BU1RFUikgJiYgIWZpbGVfcHJpdi0+bWFzdGVyKSkgewotCQlyZXRjb2RlID0gLUVBQ0NFUzsKLQl9IGVsc2UgewotCQlpZiAoY21kICYgKElPQ19JTiB8IElPQ19PVVQpKSB7Ci0JCQlrZGF0YSA9IGttYWxsb2MoX0lPQ19TSVpFKGNtZCksIEdGUF9LRVJORUwpOwotCQkJaWYgKCFrZGF0YSkgewotCQkJCXJldGNvZGUgPSAtRU5PTUVNOwotCQkJCWdvdG8gZXJyX2kxOwotCQkJfQotCQl9Ci0KLQkJaWYgKGNtZCAmIElPQ19JTikgewotCQkJaWYgKGNvcHlfZnJvbV91c2VyKGtkYXRhLCAodm9pZCBfX3VzZXIgKilhcmcsCi0JCQkJCSAgIF9JT0NfU0laRShjbWQpKSAhPSAwKSB7Ci0JCQkJcmV0Y29kZSA9IC1FRkFVTFQ7Ci0JCQkJZ290byBlcnJfaTE7Ci0JCQl9Ci0JCX0KLQkJcmV0Y29kZSA9IGZ1bmMoZGV2LCBrZGF0YSwgZmlsZV9wcml2KTsKLQotCQlpZiAoKHJldGNvZGUgPT0gMCkgJiYgKGNtZCAmIElPQ19PVVQpKSB7Ci0JCQlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywga2RhdGEsCi0JCQkJCSBfSU9DX1NJWkUoY21kKSkgIT0gMCkKLQkJCQlyZXRjb2RlID0gLUVGQVVMVDsKLQkJfQotCX0KLQotICAgICAgZXJyX2kxOgotCWlmIChrZGF0YSkKLQkJa2ZyZWUoa2RhdGEpOwotCWF0b21pY19kZWMoJmRldi0+aW9jdGxfY291bnQpOwotCWlmIChyZXRjb2RlKQotCQlEUk1fREVCVUcoInJldCA9ICV4XG4iLCByZXRjb2RlKTsKLQlyZXR1cm4gcmV0Y29kZTsKLX0KLQotRVhQT1JUX1NZTUJPTChkcm1faW9jdGwpOwotCi1kcm1fbG9jYWxfbWFwX3QgKmRybV9nZXRzYXJlYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1fbWFwX2xpc3QgKmVudHJ5OwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkgewotCQlpZiAoZW50cnktPm1hcCAmJiBlbnRyeS0+bWFwLT50eXBlID09IF9EUk1fU0hNICYmCi0JCSAgICAoZW50cnktPm1hcC0+ZmxhZ3MgJiBfRFJNX0NPTlRBSU5TX0xPQ0spKSB7Ci0JCQlyZXR1cm4gZW50cnktPm1hcDsKLQkJfQotCX0KLQlyZXR1cm4gTlVMTDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2dldHNhcmVhKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJlNmRhOC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9mb3BzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NjYgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1fZm9wcy5jCi0gKiBGaWxlIG9wZXJhdGlvbnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIERhcnlsbCBTdHJhdXNzIDxkYXJ5bGxAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogTW9uIEphbiAgNCAwODo1ODozMSAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybV9zYXJlYS5oIgotI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KLQotc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCi0JCQkgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci0KLXN0YXRpYyBpbnQgZHJtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9sb2NhbF9tYXBfdCAqbWFwOwotCWludCBpOwotCWludCByZXQ7Ci0JdTMyIHNhcmVhcGFnZTsKLQotCWlmIChkZXYtPmRyaXZlci0+Zmlyc3RvcGVuKSB7Ci0JCXJldCA9IGRldi0+ZHJpdmVyLT5maXJzdG9wZW4oZGV2KTsKLQkJaWYgKHJldCAhPSAwKQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkZXYtPm1hZ2ljZnJlZS5uZXh0ID0gTlVMTDsKLQotCS8qIHByZWJ1aWxkIHRoZSBTQVJFQSAqLwotCXNhcmVhcGFnZSA9IG1heF90KHVuc2lnbmVkLCBTQVJFQV9NQVgsIFBBR0VfU0laRSk7Ci0JaSA9IGRybV9hZGRtYXAoZGV2LCAwLCBzYXJlYXBhZ2UsIF9EUk1fU0hNLCBfRFJNX0NPTlRBSU5TX0xPQ0ssICZtYXApOwotCWlmIChpICE9IDApCi0JCXJldHVybiBpOwotCi0JYXRvbWljX3NldCgmZGV2LT5pb2N0bF9jb3VudCwgMCk7Ci0JYXRvbWljX3NldCgmZGV2LT52bWFfY291bnQsIDApOwotCWRldi0+YnVmX3VzZSA9IDA7Ci0JYXRvbWljX3NldCgmZGV2LT5idWZfYWxsb2MsIDApOwotCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKSB7Ci0JCWkgPSBkcm1fZG1hX3NldHVwKGRldik7Ci0JCWlmIChpIDwgMCkKLQkJCXJldHVybiBpOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldi0+Y291bnRzKTsgaSsrKQotCQlhdG9taWNfc2V0KCZkZXYtPmNvdW50c1tpXSwgMCk7Ci0KLQlkcm1faHRfY3JlYXRlKCZkZXYtPm1hZ2ljbGlzdCwgRFJNX01BR0lDX0hBU0hfT1JERVIpOwotCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hZ2ljZnJlZSk7Ci0KLQlkZXYtPnNpZ2RhdGEubG9jayA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5sb2NrLmxvY2tfcXVldWUpOwotCWRldi0+cXVldWVfY291bnQgPSAwOwotCWRldi0+cXVldWVfcmVzZXJ2ZWQgPSAwOwotCWRldi0+cXVldWVfc2xvdHMgPSAwOwotCWRldi0+cXVldWVsaXN0ID0gTlVMTDsKLQlkZXYtPmlycV9lbmFibGVkID0gMDsKLQlkZXYtPmNvbnRleHRfZmxhZyA9IDA7Ci0JZGV2LT5pbnRlcnJ1cHRfZmxhZyA9IDA7Ci0JZGV2LT5kbWFfZmxhZyA9IDA7Ci0JZGV2LT5sYXN0X2NvbnRleHQgPSAwOwotCWRldi0+bGFzdF9zd2l0Y2ggPSAwOwotCWRldi0+bGFzdF9jaGVja2VkID0gMDsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmNvbnRleHRfd2FpdCk7Ci0JZGV2LT5pZl92ZXJzaW9uID0gMDsKLQotCWRldi0+Y3R4X3N0YXJ0ID0gMDsKLQlkZXYtPmxja19zdGFydCA9IDA7Ci0KLQlkZXYtPmJ1Zl9hc3luYyA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfcmVhZGVycyk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfd3JpdGVycyk7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKgotCSAqIFRoZSBrZXJuZWwncyBjb250ZXh0IGNvdWxkIGJlIGNyZWF0ZWQgaGVyZSwgYnV0IGlzIG5vdyBjcmVhdGVkCi0JICogaW4gZHJtX2RtYV9lbnF1ZXVlLiAgVGhpcyBpcyBtb3JlIHJlc291cmNlLWVmZmljaWVudCBmb3IKLQkgKiBoYXJkd2FyZSB0aGF0IGRvZXMgbm90IGRvIERNQSwgYnV0IG1heSBtZWFuIHRoYXQKLQkgKiBkcm1fc2VsZWN0X3F1ZXVlIGZhaWxzIGJldHdlZW4gdGhlIHRpbWUgdGhlIGludGVycnVwdCBpcwotCSAqIGluaXRpYWxpemVkIGFuZCB0aGUgdGltZSB0aGUgcXVldWVzIGFyZSBpbml0aWFsaXplZC4KLQkgKi8KLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIE9wZW4gZmlsZS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlCi0gKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIFNlYXJjaGVzIHRoZSBEUk0gZGV2aWNlIHdpdGggdGhlIHNhbWUgbWlub3IgbnVtYmVyLCBjYWxscyBvcGVuX2hlbHBlcigpLCBhbmQKLSAqIGluY3JlbWVudHMgdGhlIGRldmljZSBvcGVuIGNvdW50LiBJZiB0aGUgb3BlbiBjb3VudCB3YXMgcHJldmlvdXMgYXQgemVybywKLSAqIGkuZS4sIGl0J3MgdGhlIGZpcnN0IHRoYXQgdGhlIGRldmljZSBpcyBvcGVuLCB0aGVuIGNhbGxzIHNldHVwKCkuCi0gKi8KLWludCBkcm1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gTlVMTDsKLQlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOwotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOwotCWludCByZXRjb2RlID0gMDsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlyZXRjb2RlID0gZHJtX29wZW5faGVscGVyKGlub2RlLCBmaWxwLCBkZXYpOwotCWlmICghcmV0Y29kZSkgewotCQlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfT1BFTlNdKTsKLQkJc3Bpbl9sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQlpZiAoIWRldi0+b3Blbl9jb3VudCsrKSB7Ci0JCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJCXJldHVybiBkcm1fc2V0dXAoZGV2KTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQl9Ci0KLQlyZXR1cm4gcmV0Y29kZTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX29wZW4pOwotCi0vKioKLSAqIEZpbGUgXGMgb3BlbiBvcGVyYXRpb24uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KLSAqCi0gKiBQdXRzIHRoZSBkZXYtPmZvcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG1pbm9yIG51bWJlciBpbnRvCi0gKiBccCBmaWxwLCBjYWxsIHRoZSBcYyBvcGVuIG1ldGhvZCwgYW5kIHJlc3RvcmUgdGhlIGZpbGUgb3BlcmF0aW9ucy4KLSAqLwotaW50IGRybV9zdHViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IE5VTEw7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3I7Ci0JaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKLQlpbnQgZXJyID0gLUVOT0RFVjsKLQljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wczsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlvbGRfZm9wcyA9IGZpbHAtPmZfb3A7Ci0JZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KCZkZXYtPmRyaXZlci0+Zm9wcyk7Ci0JaWYgKGZpbHAtPmZfb3AtPm9wZW4gJiYgKGVyciA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsIGZpbHApKSkgewotCQlmb3BzX3B1dChmaWxwLT5mX29wKTsKLQkJZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKLQl9Ci0JZm9wc19wdXQob2xkX2ZvcHMpOwotCi0JcmV0dXJuIGVycjsKLX0KLQotLyoqCi0gKiBDaGVjayB3aGV0aGVyIERSSSB3aWxsIHJ1biBvbiB0aGlzIENQVS4KLSAqCi0gKiBccmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBEUkkgd2lsbCBydW4gb24gdGhpcyBDUFUsIG9yIHplcm8gb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50IGRybV9jcHVfdmFsaWQodm9pZCkKLXsKLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotCWlmIChib290X2NwdV9kYXRhLng4NiA9PSAzKQotCQlyZXR1cm4gMDsJLyogTm8gY21weGNoZyBvbiBhIDM4NiAqLwotI2VuZGlmCi0jaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fc3BhcmNfdjlfXykKLQlyZXR1cm4gMDsJCS8qIE5vIGNtcHhjaGcgYmVmb3JlIHY5IHNwYXJjLiAqLwotI2VuZGlmCi0JcmV0dXJuIDE7Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJvY2VzcyBvcGVucyAvZGV2L2RybS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgotICogXHBhcmFtIGRldiBkZXZpY2UuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIENyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEgZHJtX2ZpbGUgc3RydWN0dXJlIGZvciB0aGUgZmlsZSBwcml2YXRlIGRhdGEgaW4gXHAKLSAqIGZpbHAgYW5kIGFkZCBpdCBpbnRvIHRoZSBkb3VibGUgbGlua2VkIGxpc3QgaW4gXHAgZGV2LgotICovCi1zdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7Ci0Jc3RydWN0IGRybV9maWxlICpwcml2OwotCWludCByZXQ7Ci0KLQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fRVhDTCkKLQkJcmV0dXJuIC1FQlVTWTsJLyogTm8gZXhjbHVzaXZlIG9wZW5zICovCi0JaWYgKCFkcm1fY3B1X3ZhbGlkKCkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JRFJNX0RFQlVHKCJwaWQgPSAlZCwgbWlub3IgPSAlZFxuIiwgdGFza19waWRfbnIoY3VycmVudCksIG1pbm9yX2lkKTsKLQotCXByaXYgPSBkcm1fYWxsb2Moc2l6ZW9mKCpwcml2KSwgRFJNX01FTV9GSUxFUyk7Ci0JaWYgKCFwcml2KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKLQlmaWxwLT5wcml2YXRlX2RhdGEgPSBwcml2OwotCXByaXYtPmZpbHAgPSBmaWxwOwotCXByaXYtPnVpZCA9IGN1cnJlbnQtPmV1aWQ7Ci0JcHJpdi0+cGlkID0gdGFza19waWRfbnIoY3VycmVudCk7Ci0JcHJpdi0+bWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKLQlwcml2LT5pb2N0bF9jb3VudCA9IDA7Ci0JLyogZm9yIGNvbXBhdGliaWxpdHkgcm9vdCBpcyBhbHdheXMgYXV0aGVudGljYXRlZCAqLwotCXByaXYtPmF1dGhlbnRpY2F0ZWQgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOwotCXByaXYtPmxvY2tfY291bnQgPSAwOwotCi0JSU5JVF9MSVNUX0hFQUQoJnByaXYtPmxoZWFkKTsKLQotCWlmIChkZXYtPmRyaXZlci0+b3BlbikgewotCQlyZXQgPSBkZXYtPmRyaXZlci0+b3BlbihkZXYsIHByaXYpOwotCQlpZiAocmV0IDwgMCkKLQkJCWdvdG8gb3V0X2ZyZWU7Ci0JfQotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChsaXN0X2VtcHR5KCZkZXYtPmZpbGVsaXN0KSkKLQkJcHJpdi0+bWFzdGVyID0gMTsKLQotCWxpc3RfYWRkKCZwcml2LT5saGVhZCwgJmRldi0+ZmlsZWxpc3QpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0jaWZkZWYgX19hbHBoYV9fCi0JLyoKLQkgKiBEZWZhdWx0IHRoZSBob3NlCi0JICovCi0JaWYgKCFkZXYtPmhvc2UpIHsKLQkJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7Ci0JCXBjaV9kZXYgPSBwY2lfZ2V0X2NsYXNzKFBDSV9DTEFTU19ESVNQTEFZX1ZHQSA8PCA4LCBOVUxMKTsKLQkJaWYgKHBjaV9kZXYpIHsKLQkJCWRldi0+aG9zZSA9IHBjaV9kZXYtPnN5c2RhdGE7Ci0JCQlwY2lfZGV2X3B1dChwY2lfZGV2KTsKLQkJfQotCQlpZiAoIWRldi0+aG9zZSkgewotCQkJc3RydWN0IHBjaV9idXMgKmIgPSBwY2lfYnVzX2IocGNpX3Jvb3RfYnVzZXMubmV4dCk7Ci0JCQlpZiAoYikKLQkJCQlkZXYtPmhvc2UgPSBiLT5zeXNkYXRhOwotCQl9Ci0JfQotI2VuZGlmCi0KLQlyZXR1cm4gMDsKLSAgICAgIG91dF9mcmVlOgotCWRybV9mcmVlKHByaXYsIHNpemVvZigqcHJpdiksIERSTV9NRU1fRklMRVMpOwotCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqIE5vLW9wLiAqLwotaW50IGRybV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG9uKQotewotCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3ItPmRldjsKLQlpbnQgcmV0Y29kZTsKLQotCURSTV9ERUJVRygiZmQgPSAlZCwgZGV2aWNlID0gMHglbHhcbiIsIGZkLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KHByaXYtPm1pbm9yLT5kZXZpY2UpKTsKLQlyZXRjb2RlID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZkZXYtPmJ1Zl9hc3luYyk7Ci0JaWYgKHJldGNvZGUgPCAwKQotCQlyZXR1cm4gcmV0Y29kZTsKLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2Zhc3luYyk7Ci0KLS8qKgotICogUmVsZWFzZSBmaWxlLgotICoKLSAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUKLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCi0gKgotICogSWYgdGhlIGhhcmR3YXJlIGxvY2sgaXMgaGVsZCB0aGVuIGZyZWUgaXQsIGFuZCB0YWtlIGl0IGFnYWluIGZvciB0aGUga2VybmVsCi0gKiBjb250ZXh0IHNpbmNlIGl0J3MgbmVjZXNzYXJ5IHRvIHJlY2xhaW0gYnVmZmVycy4gVW5saW5rIHRoZSBmaWxlIHByaXZhdGUKLSAqIGRhdGEgZnJvbSBpdHMgbGlzdCBhbmQgZnJlZSBpdC4gRGVjcmVhc2VzIHRoZSBvcGVuIGNvdW50IGFuZCBpZiBpdCByZWFjaGVzCi0gKiB6ZXJvIGNhbGxzIGRybV9sYXN0Y2xvc2UoKS4KLSAqLwotaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQotewotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7Ci0JaW50IHJldGNvZGUgPSAwOwotCi0JbG9ja19rZXJuZWwoKTsKLQotCURSTV9ERUJVRygib3Blbl9jb3VudCA9ICVkXG4iLCBkZXYtPm9wZW5fY291bnQpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wcmVjbG9zZSkKLQkJZGV2LT5kcml2ZXItPnByZWNsb3NlKGRldiwgZmlsZV9wcml2KTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogQmVnaW4gaW5saW5lIGRybV9yZWxlYXNlCi0JICovCi0KLQlEUk1fREVCVUcoInBpZCA9ICVkLCBkZXZpY2UgPSAweCVseCwgb3Blbl9jb3VudCA9ICVkXG4iLAotCQkgIHRhc2tfcGlkX25yKGN1cnJlbnQpLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmRldmljZSksCi0JCSAgZGV2LT5vcGVuX2NvdW50KTsKLQotCWlmIChkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZCAmJiBkZXYtPmxvY2suaHdfbG9jaykgewotCQlpZiAoZHJtX2lfaGF2ZV9od19sb2NrKGRldiwgZmlsZV9wcml2KSkgewotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQl9IGVsc2UgewotCQkJdW5zaWduZWQgbG9uZyBlbmR0aW1lID0gamlmZmllcyArIDMgKiBEUk1fSFo7Ci0JCQlpbnQgbG9ja2VkID0gMDsKLQotCQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0KLQkJCS8qCi0JCQkgKiBXYWl0IGZvciBhIHdoaWxlLgotCQkJICovCi0KLQkJCWRvewotCQkJCXNwaW5fbG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlsb2NrZWQgPSBkZXYtPmxvY2suaWRsZV9oYXNfbG9jazsKLQkJCQlzcGluX3VubG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlpZiAobG9ja2VkKQotCQkJCQlicmVhazsKLQkJCQlzY2hlZHVsZSgpOwotCQkJfSB3aGlsZSAoIXRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZW5kdGltZSkpOwotCi0JCQlpZiAoIWxvY2tlZCkgewotCQkJCURSTV9FUlJPUigicmVjbGFpbV9idWZmZXJzX2xvY2tlZCgpIGRlYWRsb2NrLiBQbGVhc2UgcmV3b3JrIHRoaXNcbiIKLQkJCQkJICAiXHRkcml2ZXIgdG8gdXNlIHJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKCkgaW5zdGVhZC5cbiIKLQkJCQkJICAiXHRJIHdpbGwgZ28gb24gcmVjbGFpbWluZyB0aGUgYnVmZmVycyBhbnl3YXkuXG4iKTsKLQkJCX0KLQotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQkJZHJtX2lkbGVsb2NrX3JlbGVhc2UoJmRldi0+bG9jayk7Ci0JCX0KLQl9Ci0KLQlpZiAoZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkICYmIGRldi0+bG9jay5od19sb2NrKSB7Ci0KLQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0JCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZChkZXYsIGZpbGVfcHJpdik7Ci0JCWRybV9pZGxlbG9ja19yZWxlYXNlKCZkZXYtPmxvY2spOwotCi0JfQotCi0JaWYgKGRybV9pX2hhdmVfaHdfbG9jayhkZXYsIGZpbGVfcHJpdikpIHsKLQkJRFJNX0RFQlVHKCJGaWxlICVwIHJlbGVhc2VkLCBmcmVlaW5nIGxvY2sgZm9yIGNvbnRleHQgJWRcbiIsCi0JCQkgIGZpbHAsIF9EUk1fTE9DS0lOR19DT05URVhUKGRldi0+bG9jay5od19sb2NrLT5sb2NrKSk7Ci0KLQkJZHJtX2xvY2tfZnJlZSgmZGV2LT5sb2NrLAotCQkJICAgICAgX0RSTV9MT0NLSU5HX0NPTlRFWFQoZGV2LT5sb2NrLmh3X2xvY2stPmxvY2spKTsKLQl9Ci0KLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSAmJgotCSAgICAhZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIHsKLQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVycyhkZXYsIGZpbGVfcHJpdik7Ci0JfQotCi0JZHJtX2Zhc3luYygtMSwgZmlscCwgMCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPmN0eGxpc3RfbXV0ZXgpOwotCWlmICghbGlzdF9lbXB0eSgmZGV2LT5jdHhsaXN0KSkgewotCQlzdHJ1Y3QgZHJtX2N0eF9saXN0ICpwb3MsICpuOwotCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sICZkZXYtPmN0eGxpc3QsIGhlYWQpIHsKLQkJCWlmIChwb3MtPnRhZyA9PSBmaWxlX3ByaXYgJiYKLQkJCSAgICBwb3MtPmhhbmRsZSAhPSBEUk1fS0VSTkVMX0NPTlRFWFQpIHsKLQkJCQlpZiAoZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcikKLQkJCQkJZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcihkZXYsCi0JCQkJCQkJCSAgcG9zLT5oYW5kbGUpOwotCi0JCQkJZHJtX2N0eGJpdG1hcF9mcmVlKGRldiwgcG9zLT5oYW5kbGUpOwotCi0JCQkJbGlzdF9kZWwoJnBvcy0+aGVhZCk7Ci0JCQkJZHJtX2ZyZWUocG9zLCBzaXplb2YoKnBvcyksIERSTV9NRU1fQ1RYTElTVCk7Ci0JCQkJLS1kZXYtPmN0eF9jb3VudDsKLQkJCX0KLQkJfQotCX0KLQltdXRleF91bmxvY2soJmRldi0+Y3R4bGlzdF9tdXRleCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JaWYgKGZpbGVfcHJpdi0+cmVtb3ZlX2F1dGhfb25fY2xvc2UgPT0gMSkgewotCQlzdHJ1Y3QgZHJtX2ZpbGUgKnRlbXA7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZW1wLCAmZGV2LT5maWxlbGlzdCwgbGhlYWQpCi0JCQl0ZW1wLT5hdXRoZW50aWNhdGVkID0gMDsKLQl9Ci0JbGlzdF9kZWwoJmZpbGVfcHJpdi0+bGhlYWQpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UpCi0JCWRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UoZGV2LCBmaWxlX3ByaXYpOwotCWRybV9mcmVlKGZpbGVfcHJpdiwgc2l6ZW9mKCpmaWxlX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogRW5kIGlubGluZSBkcm1fcmVsZWFzZQotCSAqLwotCi0JYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX0NMT1NFU10pOwotCXNwaW5fbG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQlpZiAoIS0tZGV2LT5vcGVuX2NvdW50KSB7Ci0JCWlmIChhdG9taWNfcmVhZCgmZGV2LT5pb2N0bF9jb3VudCkgfHwgZGV2LT5ibG9ja2VkKSB7Ci0JCQlEUk1fRVJST1IoIkRldmljZSBidXN5OiAlZCAlZFxuIiwKLQkJCQkgIGF0b21pY19yZWFkKCZkZXYtPmlvY3RsX2NvdW50KSwgZGV2LT5ibG9ja2VkKTsKLQkJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQkJdW5sb2NrX2tlcm5lbCgpOwotCQkJcmV0dXJuIC1FQlVTWTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJdW5sb2NrX2tlcm5lbCgpOwotCQlyZXR1cm4gZHJtX2xhc3RjbG9zZShkZXYpOwotCX0KLQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQotCXVubG9ja19rZXJuZWwoKTsKLQotCXJldHVybiByZXRjb2RlOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcmVsZWFzZSk7Ci0KLS8qKiBOby1vcC4gKi8KLXVuc2lnbmVkIGludCBkcm1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICp3YWl0KQotewotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcG9sbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDUwODFiNC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYworKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRybV9tZW1vcnkuYwotICogTWVtb3J5IG1hbmFnZW1lbnQgd3JhcHBlcnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogVGh1IEZlYiAgNCAxNDowMDozNCAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgImRybVAuaCIKLQotI2lmZGVmIERFQlVHX01FTU9SWQotI2luY2x1ZGUgImRybV9tZW1vcnlfZGVidWcuaCIKLSNlbHNlCi0KLS8qKiBOby1vcC4gKi8KLXZvaWQgZHJtX21lbV9pbml0KHZvaWQpCi17Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW4gIi9wcm9jL2RyaS8lZGV2JS9tZW0iIGlzIHJlYWQuCi0gKgotICogXHBhcmFtIGJ1ZiBvdXRwdXQgYnVmZmVyLgotICogXHBhcmFtIHN0YXJ0IHN0YXJ0IG9mIG91dHB1dCBkYXRhLgotICogXHBhcmFtIG9mZnNldCByZXF1ZXN0ZWQgc3RhcnQgb2Zmc2V0LgotICogXHBhcmFtIGxlbiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzLgotICogXHBhcmFtIGVvZiB3aGV0aGVyIHRoZXJlIGlzIG5vIG1vcmUgZGF0YSB0byByZXR1cm4uCi0gKiBccGFyYW0gZGF0YSBwcml2YXRlIGRhdGEuCi0gKiBccmV0dXJuIG51bWJlciBvZiB3cml0dGVuIGJ5dGVzLgotICoKLSAqIE5vLW9wLgotICovCi1pbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCSBpbnQgbGVuLCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGttYWxsb2MoKSBhbmQga2ZyZWUoKSAqLwotdm9pZCAqZHJtX3JlYWxsb2Modm9pZCAqb2xkcHQsIHNpemVfdCBvbGRzaXplLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCi17Ci0Jdm9pZCAqcHQ7Ci0KLQlpZiAoIShwdCA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCkpKQotCQlyZXR1cm4gTlVMTDsKLQlpZiAob2xkcHQgJiYgb2xkc2l6ZSkgewotCQltZW1jcHkocHQsIG9sZHB0LCBvbGRzaXplKTsKLQkJa2ZyZWUob2xkcHQpOwotCX0KLQlyZXR1cm4gcHQ7Ci19Ci0KLSNpZiBfX09TX0hBU19BR1AKLXN0YXRpYyB2b2lkICphZ3BfcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXVuc2lnbmVkIGxvbmcgKnBoeXNfYWRkcl9tYXAsIGksIG51bV9wYWdlcyA9Ci0JICAgIFBBR0VfQUxJR04oc2l6ZSkgLyBQQUdFX1NJWkU7Ci0Jc3RydWN0IGRybV9hZ3BfbWVtICphZ3BtZW07Ci0Jc3RydWN0IHBhZ2UgKipwYWdlX21hcDsKLQl2b2lkICphZGRyOwotCi0Jc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0KLSNpZmRlZiBfX2FscGhhX18KLQlvZmZzZXQgLT0gZGV2LT5ob3NlLT5tZW1fc3BhY2UtPnN0YXJ0OwotI2VuZGlmCi0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFncG1lbSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpCi0JCWlmIChhZ3BtZW0tPmJvdW5kIDw9IG9mZnNldAotCQkgICAgJiYgKGFncG1lbS0+Ym91bmQgKyAoYWdwbWVtLT5wYWdlcyA8PCBQQUdFX1NISUZUKSkgPj0KLQkJICAgIChvZmZzZXQgKyBzaXplKSkKLQkJCWJyZWFrOwotCWlmICghYWdwbWVtKQotCQlyZXR1cm4gTlVMTDsKLQotCS8qCi0JICogT0ssIHdlJ3JlIG1hcHBpbmcgQUdQIHNwYWNlIG9uIGEgY2hpcHNldC9wbGF0Zm9ybSBvbiB3aGljaCBtZW1vcnkgYWNjZXNzZXMgYnkKLQkgKiB0aGUgQ1BVIGRvIG5vdCBnZXQgcmVtYXBwZWQgYnkgdGhlIEdBUlQuICBXZSBmaXggdGhpcyBieSB1c2luZyB0aGUga2VybmVsJ3MKLQkgKiBwYWdlLXRhYmxlIGluc3RlYWQgKHRoYXQncyBwcm9iYWJseSBmYXN0ZXIgYW55aG93Li4uKS4KLQkgKi8KLQkvKiBub3RlOiB1c2Ugdm1hbGxvYygpIGJlY2F1c2UgbnVtX3BhZ2VzIGNvdWxkIGJlIGxhcmdlLi4uICovCi0JcGFnZV9tYXAgPSB2bWFsbG9jKG51bV9wYWdlcyAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7Ci0JaWYgKCFwYWdlX21hcCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlwaHlzX2FkZHJfbWFwID0KLQkgICAgYWdwbWVtLT5tZW1vcnktPm1lbW9yeSArIChvZmZzZXQgLSBhZ3BtZW0tPmJvdW5kKSAvIFBBR0VfU0laRTsKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyArK2kpCi0JCXBhZ2VfbWFwW2ldID0gcGZuX3RvX3BhZ2UocGh5c19hZGRyX21hcFtpXSA+PiBQQUdFX1NISUZUKTsKLQlhZGRyID0gdm1hcChwYWdlX21hcCwgbnVtX3BhZ2VzLCBWTV9JT1JFTUFQLCBQQUdFX0FHUCk7Ci0JdmZyZWUocGFnZV9tYXApOwotCi0JcmV0dXJuIGFkZHI7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfYWxsb2NhdGVfbWVtb3J5KCkgKi8KLURSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgcGFnZXMsIHUzMiB0eXBlKQotewotCXJldHVybiBkcm1fYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdlcywgdHlwZSk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfZnJlZV9tZW1vcnkoKSAqLwotaW50IGRybV9mcmVlX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgaW50IHBhZ2VzKQotewotCXJldHVybiBkcm1fYWdwX2ZyZWVfbWVtb3J5KGhhbmRsZSkgPyAwIDogLUVJTlZBTDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX2JpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCB1bnNpZ25lZCBpbnQgc3RhcnQpCi17Ci0JcmV0dXJuIGRybV9hZ3BfYmluZF9tZW1vcnkoaGFuZGxlLCBzdGFydCk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfdW5iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpCi17Ci0JcmV0dXJuIGRybV9hZ3BfdW5iaW5kX21lbW9yeShoYW5kbGUpOwotfQotCi0jZWxzZSAgLyogIF9fT1NfSEFTX0FHUCAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAqYWdwX3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlyZXR1cm4gTlVMTDsKLX0KLQotI2VuZGlmCQkJCS8qIGFncCAqLwotCi0jZW5kaWYJCQkJLyogZGVidWdfbWVtb3J5ICovCi0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJbWFwLT5oYW5kbGUgPSBhZ3BfcmVtYXAobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSwgZGV2KTsKLQllbHNlCi0JCW1hcC0+aGFuZGxlID0gaW9yZW1hcChtYXAtPm9mZnNldCwgbWFwLT5zaXplKTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcCk7Ci0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcGZyZWUoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoIW1hcC0+aGFuZGxlIHx8ICFtYXAtPnNpemUpCi0JCXJldHVybjsKLQotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJdnVubWFwKG1hcC0+aGFuZGxlKTsKLQllbHNlCi0JCWlvdW5tYXAobWFwLT5oYW5kbGUpOwotfQotRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwZnJlZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9wY2lpZHMuaCBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmE0OTlmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDE0ICswLDAgQEAKLS8qCi0gICBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgZHJtX3BjaWlkcy50eHQgaW4gdGhlIERSTSBDVlMKLSAgIFBsZWFzZSBjb250YWN0IGRyaS1kZXZlbEBsaXN0cy5zZi5uZXQgdG8gYWRkIG5ldyBjYXJkcyB0byB0aGlzIGxpc3QKLSovCi0jZGVmaW5lIHJhZGVvbl9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDMxNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4MzE1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHgzMTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDNFNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHgzRTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NDEzNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzEwMHxSQURFT05fSVNfSUdQfSwgXAotCXsweDEwMDIsIDB4NDEzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfSwgXAotCXsweDEwMDIsIDB4NDE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQxNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCi0JezB4MTAwMiwgMHg0MTUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQxNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCi0JezB4MTAwMiwgMHg0MTU1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQyMzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMyMDB8UkFERU9OX0lTX0lHUH0sIFwKLQl7MHgxMDAyLCAweDQyNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDQyNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDQzMzYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMxMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0MzM3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMjAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NDQzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDQ5NjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB9LCBcCi0JezB4MTAwMiwgMHg0OTY3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfSwgXAotCXsweDEwMDIsIDB4NEE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRDNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEM1OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjIwMHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0QzU5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRDNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEM2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0QzY2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRDNjcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEU0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0RTUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRFNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEU1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0RTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRFNTYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKLQl7MHgxMDAyLCAweDUxNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjEwMHxSQURFT05fU0lOR0xFX0NSVEN9LCBcCi0JezB4MTAwMiwgMHg1MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IxMDB8UkFERU9OX1NJTkdMRV9DUlRDfSwgXAotCXsweDEwMDIsIDB4NTE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKLQl7MHgxMDAyLCAweDUxNDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB9LCBcCi0JezB4MTAwMiwgMHg1MTU4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjAwfSwgXAotCXsweDEwMDIsIDB4NTE1OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKLQl7MHgxMDAyLCAweDUxNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB9LCBcCi0JezB4MTAwMiwgMHg1MTVFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfSwgXAotCXsweDEwMDIsIDB4NTQ2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg1NDYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDU0NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTY1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU2NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NTY0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1NjRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU2NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NTY1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ODM0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B9LCBcCi0JezB4MTAwMiwgMHg1ODM1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTk1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDU5NTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1OTc0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAotCXsweDEwMDIsIDB4NTk3NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDU5NjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCi0JezB4MTAwMiwgMHg1OTYxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAotCXsweDEwMDIsIDB4NTk2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MH0sIFwKLQl7MHgxMDAyLCAweDU5NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCi0JezB4MTAwMiwgMHg1OTY1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAotCXsweDEwMDIsIDB4NTk2OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKLQl7MHgxMDAyLCAweDVhNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1YTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAotCXsweDEwMDIsIDB4NWE2MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDVhNjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1YjYwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWI2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDViNjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1YjY0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWI2NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVjNjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NWM2MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg1ZDQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWQ0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVkNGEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDU3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWU0YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVlNGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZTRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWU0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVlNGYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwRSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwRiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE1RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNUYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTgwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxODMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTg2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MThDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOTMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTk2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOUIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTlGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQzEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUM2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQ0QsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUNFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFEMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxRDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFENSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxREEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MURFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyMTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyODEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjgzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3Mjg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyOEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjhDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI5MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyOTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjkzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI5NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDc4MzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDc4MzUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3OTFlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg3OTFmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgcjEyOF9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDRjNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGQ0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRkNGMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDRELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDU2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MjQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUyNDcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MjRiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTI0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUzNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1NDQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTQ0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDU0NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgbWdhX1BDSV9JRFMgXAotCXsweDEwMmIsIDB4MDUyMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAotCXsweDEwMmIsIDB4MDUyMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAotCXsweDEwMmIsIDB4MDUyNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNDAwfSwgXAotCXsweDEwMmIsIDB4MjUyNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNTUwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIG1hY2g2NF9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDQ3NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc0ZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NGUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIHNpc2Rydl9QQ0lfSURTIFwKLQl7MHgxMDM5LCAweDAzMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAzOSwgMHg1MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMzksIDB4NjMwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDM5LCAweDYzMzAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFNJU19DSElQXzMxNX0sIFwKLQl7MHgxMDM5LCAweDYzNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAzOSwgMHg3MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDE4Q0EsIDB4MDA0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAotCXsweDE4Q0EsIDB4MDA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIHRkZnhfUENJX0lEUyBcCi0JezB4MTIxYSwgMHgwMDAzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEyMWEsIDB4MDAwNCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMjFhLCAweDAwMDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTIxYSwgMHgwMDA3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEyMWEsIDB4MDAwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMjFhLCAweDAwMGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgdmlhZHJ2X1BDSV9JRFMgXAotCXsweDExMDYsIDB4MzAyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMTA2LCAweDMxMTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZJQV9QUk9fR1JPVVBfQX0sIFwKLQl7MHgxMTA2LCAweDMxMjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTEwNiwgMHg3MjA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDExMDYsIDB4MzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMTA2LCAweDMzNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTEwNiwgMHgzMzQzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDExMDYsIDB4MzIzMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX0RYOV8wfSwgXAotCXsweDExMDYsIDB4MzE1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX1BST19HUk9VUF9BfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGk4MTBfUENJX0lEUyBcCi0JezB4ODA4NiwgMHg3MTIxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4NzEyMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDcxMjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgxMTMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGk4MzBfUENJX0lEUyBcCi0JezB4ODA4NiwgMHgzNTc3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjU2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDM1ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGdhbW1hX1BDSV9JRFMgXAotCXsweDNkM2QsIDB4MDAwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MCwgMCwgMH0KLQotI2RlZmluZSBzYXZhZ2VfUENJX0lEUyBcCi0JezB4NTMzMywgMHg4YTIwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0UzRH0sIFwKLQl7MHg1MzMzLCAweDhhMjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTNEfSwgXAotCXsweDUzMzMsIDB4OGEyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFNH0sIFwKLQl7MHg1MzMzLCAweDhhMjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTR9LCBcCi0JezB4NTMzMywgMHg4YzEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzExLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzEzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzIyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YzJhLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMmIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyYywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YzJkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMmUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YTI1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YTI2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4ZDAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19UV0lTVEVSfSwgXAotCXsweDUzMzMsIDB4OGQwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfVFdJU1RFUn0sIFwKLQl7MHg1MzMzLCAweDhkMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKLQl7MHg1MzMzLCAweDhkMDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKLQl7MCwgMCwgMH0KLQotI2RlZmluZSBmZmJfUENJX0lEUyBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgaTkxNV9QQ0lfSURTIFwKLQl7MHg4MDg2LCAweDM1NzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MzU4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI1NzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTgyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjU4YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI1OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNzcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjdhMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI3YWUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4Mjk4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI5OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOWEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjliMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI5YzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOWQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MmEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDJhMTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyYTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2Rydi5jIGIvZHJpdmVycy9jaGFyL2RybS9pOTE1X2Rydi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGYzZDY4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuYworKysgL2Rldi9udWxsCkBAIC0xLDYwNCArMCwwIEBACi0vKiBpOTE1X2Rydi5jIC0tIGk4MzAsaTg0NSxpODU1LGk4NjUsaTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCi0gKi8KLS8qCi0gKgotICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKLSAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0gKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImRybVAuaCIKLSNpbmNsdWRlICJkcm0uaCIKLSNpbmNsdWRlICJpOTE1X2RybS5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLSNpbmNsdWRlICJkcm1fcGNpaWRzLmgiCi0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKLQlpOTE1X1BDSV9JRFMKLX07Ci0KLWVudW0gcGlwZSB7Ci0gICAgUElQRV9BID0gMCwKLSAgICBQSVBFX0IsCi19OwotCi1zdGF0aWMgYm9vbCBpOTE1X3BpcGVfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JaWYgKHBpcGUgPT0gUElQRV9BKQotCQlyZXR1cm4gKEk5MTVfUkVBRChEUExMX0EpICYgRFBMTF9WQ09fRU5BQkxFKTsKLQllbHNlCi0JCXJldHVybiAoSTkxNV9SRUFEKERQTExfQikgJiBEUExMX1ZDT19FTkFCTEUpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3NhdmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKLQl1MzIgKmFycmF5OwotCWludCBpOwotCi0JaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQotCQlyZXR1cm47Ci0KLQlpZiAocGlwZSA9PSBQSVBFX0EpCi0JCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOwotCWVsc2UKLQkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7Ci0KLQlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKLQkJYXJyYXlbaV0gPSBJOTE1X1JFQUQocmVnICsgKGkgPDwgMikpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3Jlc3RvcmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKLQl1MzIgKmFycmF5OwotCWludCBpOwotCi0JaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQotCQlyZXR1cm47Ci0KLQlpZiAocGlwZSA9PSBQSVBFX0EpCi0JCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOwotCWVsc2UKLQkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7Ci0KLQlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKLQkJSTkxNV9XUklURShyZWcgKyAoaSA8PCAyKSwgYXJyYXlbaV0pOwotfQotCi1zdGF0aWMgdTggaTkxNV9yZWFkX2luZGV4ZWQodTE2IGluZGV4X3BvcnQsIHUxNiBkYXRhX3BvcnQsIHU4IHJlZykKLXsKLQlvdXRiKHJlZywgaW5kZXhfcG9ydCk7Ci0JcmV0dXJuIGluYihkYXRhX3BvcnQpOwotfQotCi1zdGF0aWMgdTggaTkxNV9yZWFkX2FyKHUxNiBzdDAxLCB1OCByZWcsIHUxNiBwYWxldHRlX2VuYWJsZSkKLXsKLQlpbmIoc3QwMSk7Ci0Jb3V0YihwYWxldHRlX2VuYWJsZSB8IHJlZywgVkdBX0FSX0lOREVYKTsKLQlyZXR1cm4gaW5iKFZHQV9BUl9EQVRBX1JFQUQpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3dyaXRlX2FyKHU4IHN0MDEsIHU4IHJlZywgdTggdmFsLCB1MTYgcGFsZXR0ZV9lbmFibGUpCi17Ci0JaW5iKHN0MDEpOwotCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7Ci0Jb3V0Yih2YWwsIFZHQV9BUl9EQVRBX1dSSVRFKTsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV93cml0ZV9pbmRleGVkKHUxNiBpbmRleF9wb3J0LCB1MTYgZGF0YV9wb3J0LCB1OCByZWcsIHU4IHZhbCkKLXsKLQlvdXRiKHJlZywgaW5kZXhfcG9ydCk7Ci0Jb3V0Yih2YWwsIGRhdGFfcG9ydCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfc2F2ZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKLQotCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLwotCWRldl9wcml2LT5zYXZlREFDTUFTSyA9IGluYihWR0FfREFDTUFTSyk7Ci0JLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLwotCW91dGIoMCwgVkdBX0RBQ1JYKTsKLQkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KLQlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQotCQlkZXZfcHJpdi0+c2F2ZURBQ0RBVEFbaV0gPSBpbmIoVkdBX0RBQ0RBVEEpOwotCi0JLyogTVNSIGJpdHMgKi8KLQlkZXZfcHJpdi0+c2F2ZU1TUiA9IGluYihWR0FfTVNSX1JFQUQpOwotCWlmIChkZXZfcHJpdi0+c2F2ZU1TUiAmIFZHQV9NU1JfQ0dBX01PREUpIHsKLQkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOwotCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfQ0dBOwotCQlzdDAxID0gVkdBX1NUMDFfQ0dBOwotCX0gZWxzZSB7Ci0JCWNyX2luZGV4ID0gVkdBX0NSX0lOREVYX01EQTsKLQkJY3JfZGF0YSA9IFZHQV9DUl9EQVRBX01EQTsKLQkJc3QwMSA9IFZHQV9TVDAxX01EQTsKLQl9Ci0KLQkvKiBDUlQgY29udHJvbGxlciByZWdzICovCi0JaTkxNV93cml0ZV9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCAweDExLAotCQkJICAgaTkxNV9yZWFkX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEpICYKLQkJCSAgICh+MHg4MCkpOwotCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQotCQlkZXZfcHJpdi0+c2F2ZUNSW2ldID0KLQkJCWk5MTVfcmVhZF9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCBpKTsKLQkvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHVybiBvZmYgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KLQlkZXZfcHJpdi0+c2F2ZUNSWzB4MTFdICY9IH4weDgwOwotCi0JLyogQXR0cmlidXRlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCi0JaW5iKHN0MDEpOwotCWRldl9wcml2LT5zYXZlQVJfSU5ERVggPSBpbmIoVkdBX0FSX0lOREVYKTsKLQlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKLQkJZGV2X3ByaXYtPnNhdmVBUltpXSA9IGk5MTVfcmVhZF9hcihzdDAxLCBpLCAwKTsKLQlpbmIoc3QwMSk7Ci0Jb3V0YihkZXZfcHJpdi0+c2F2ZUFSX0lOREVYLCBWR0FfQVJfSU5ERVgpOwotCWluYihzdDAxKTsKLQotCS8qIEdyYXBoaWNzIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCi0JZm9yIChpID0gMDsgaSA8IDk7IGkrKykKLQkJZGV2X3ByaXYtPnNhdmVHUltpXSA9Ci0JCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCBpKTsKLQotCWRldl9wcml2LT5zYXZlR1JbMHgxMF0gPQotCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDEwKTsKLQlkZXZfcHJpdi0+c2F2ZUdSWzB4MTFdID0KLQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMSk7Ci0JZGV2X3ByaXYtPnNhdmVHUlsweDE4XSA9Ci0JCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgpOwotCi0JLyogU2VxdWVuY2VyIHJlZ2lzdGVycyAqLwotCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCi0JCWRldl9wcml2LT5zYXZlU1JbaV0gPQotCQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfcmVzdG9yZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKLQotCS8qIE1TUiBiaXRzICovCi0Jb3V0YihkZXZfcHJpdi0+c2F2ZU1TUiwgVkdBX01TUl9XUklURSk7Ci0JaWYgKGRldl9wcml2LT5zYXZlTVNSICYgVkdBX01TUl9DR0FfTU9ERSkgewotCQljcl9pbmRleCA9IFZHQV9DUl9JTkRFWF9DR0E7Ci0JCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9DR0E7Ci0JCXN0MDEgPSBWR0FfU1QwMV9DR0E7Ci0JfSBlbHNlIHsKLQkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfTURBOwotCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfTURBOwotCQlzdDAxID0gVkdBX1NUMDFfTURBOwotCX0KLQotCS8qIFNlcXVlbmNlciByZWdpc3RlcnMsIGRvbid0IHdyaXRlIFNSMDcgKi8KLQlmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKQotCQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSwKLQkJCQkgICBkZXZfcHJpdi0+c2F2ZVNSW2ldKTsKLQotCS8qIENSVCBjb250cm9sbGVyIHJlZ3MgKi8KLQkvKiBFbmFibGUgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KLQlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEsIGRldl9wcml2LT5zYXZlQ1JbMHgxMV0pOwotCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQotCQlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIGksIGRldl9wcml2LT5zYXZlQ1JbaV0pOwotCi0JLyogR3JhcGhpY3MgY29udHJvbGxlciByZWdzICovCi0JZm9yIChpID0gMDsgaSA8IDk7IGkrKykKLQkJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIGksCi0JCQkJICAgZGV2X3ByaXYtPnNhdmVHUltpXSk7Ci0KLQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMCwKLQkJCSAgIGRldl9wcml2LT5zYXZlR1JbMHgxMF0pOwotCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDExLAotCQkJICAgZGV2X3ByaXYtPnNhdmVHUlsweDExXSk7Ci0JaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgsCi0JCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MThdKTsKLQotCS8qIEF0dHJpYnV0ZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwotCWluYihzdDAxKTsKLQlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKLQkJaTkxNV93cml0ZV9hcihzdDAxLCBpLCBkZXZfcHJpdi0+c2F2ZUFSW2ldLCAwKTsKLQlpbmIoc3QwMSk7IC8qIHN3aXRjaCBiYWNrIHRvIGluZGV4IG1vZGUgKi8KLQlvdXRiKGRldl9wcml2LT5zYXZlQVJfSU5ERVggfCAweDIwLCBWR0FfQVJfSU5ERVgpOwotCWluYihzdDAxKTsKLQotCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLwotCW91dGIoZGV2X3ByaXYtPnNhdmVEQUNNQVNLLCBWR0FfREFDTUFTSyk7Ci0JLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLwotCW91dGIoMCwgVkdBX0RBQ1dYKTsKLQkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KLQlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQotCQlvdXRiKGRldl9wcml2LT5zYXZlREFDREFUQVtpXSwgVkdBX0RBQ0RBVEEpOwotCi19Ci0KLXN0YXRpYyBpbnQgaTkxNV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCi0JaWYgKCFkZXYgfHwgIWRldl9wcml2KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiZGV2OiAlcCwgZGV2X3ByaXY6ICVwXG4iLCBkZXYsIGRldl9wcml2KTsKLQkJcHJpbnRrKEtFUk5fRVJSICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KLQotCWlmIChzdGF0ZS5ldmVudCA9PSBQTV9FVkVOVF9QUkVUSEFXKQotCQlyZXR1cm4gMDsKLQotCXBjaV9zYXZlX3N0YXRlKGRldi0+cGRldik7Ci0JcGNpX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsICZkZXZfcHJpdi0+c2F2ZUxCQik7Ci0KLQkvKiBEaXNwbGF5IGFyYml0cmF0aW9uIGNvbnRyb2wgKi8KLQlkZXZfcHJpdi0+c2F2ZURTUEFSQiA9IEk5MTVfUkVBRChEU1BBUkIpOwotCi0JLyogUGlwZSAmIHBsYW5lIEEgaW5mbyAqLwotCWRldl9wcml2LT5zYXZlUElQRUFDT05GID0gSTkxNV9SRUFEKFBJUEVBQ09ORik7Ci0JZGV2X3ByaXYtPnNhdmVQSVBFQVNSQyA9IEk5MTVfUkVBRChQSVBFQVNSQyk7Ci0JZGV2X3ByaXYtPnNhdmVGUEEwID0gSTkxNV9SRUFEKEZQQTApOwotCWRldl9wcml2LT5zYXZlRlBBMSA9IEk5MTVfUkVBRChGUEExKTsKLQlkZXZfcHJpdi0+c2F2ZURQTExfQSA9IEk5MTVfUkVBRChEUExMX0EpOwotCWlmIChJU19JOTY1RyhkZXYpKQotCQlkZXZfcHJpdi0+c2F2ZURQTExfQV9NRCA9IEk5MTVfUkVBRChEUExMX0FfTUQpOwotCWRldl9wcml2LT5zYXZlSFRPVEFMX0EgPSBJOTE1X1JFQUQoSFRPVEFMX0EpOwotCWRldl9wcml2LT5zYXZlSEJMQU5LX0EgPSBJOTE1X1JFQUQoSEJMQU5LX0EpOwotCWRldl9wcml2LT5zYXZlSFNZTkNfQSA9IEk5MTVfUkVBRChIU1lOQ19BKTsKLQlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9BID0gSTkxNV9SRUFEKFZUT1RBTF9BKTsKLQlkZXZfcHJpdi0+c2F2ZVZCTEFOS19BID0gSTkxNV9SRUFEKFZCTEFOS19BKTsKLQlkZXZfcHJpdi0+c2F2ZVZTWU5DX0EgPSBJOTE1X1JFQUQoVlNZTkNfQSk7Ci0JZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKLQotCWRldl9wcml2LT5zYXZlRFNQQUNOVFIgPSBJOTE1X1JFQUQoRFNQQUNOVFIpOwotCWRldl9wcml2LT5zYXZlRFNQQVNUUklERSA9IEk5MTVfUkVBRChEU1BBU1RSSURFKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEFTSVpFID0gSTkxNV9SRUFEKERTUEFTSVpFKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEFQT1MgPSBJOTE1X1JFQUQoRFNQQVBPUyk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BBQkFTRSA9IEk5MTVfUkVBRChEU1BBQkFTRSk7Ci0JaWYgKElTX0k5NjVHKGRldikpIHsKLQkJZGV2X3ByaXYtPnNhdmVEU1BBU1VSRiA9IEk5MTVfUkVBRChEU1BBU1VSRik7Ci0JCWRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYgPSBJOTE1X1JFQUQoRFNQQVRJTEVPRkYpOwotCX0KLQlpOTE1X3NhdmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7Ci0JZGV2X3ByaXYtPnNhdmVQSVBFQVNUQVQgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQVNUQVQpOwotCi0JLyogUGlwZSAmIHBsYW5lIEIgaW5mbyAqLwotCWRldl9wcml2LT5zYXZlUElQRUJDT05GID0gSTkxNV9SRUFEKFBJUEVCQ09ORik7Ci0JZGV2X3ByaXYtPnNhdmVQSVBFQlNSQyA9IEk5MTVfUkVBRChQSVBFQlNSQyk7Ci0JZGV2X3ByaXYtPnNhdmVGUEIwID0gSTkxNV9SRUFEKEZQQjApOwotCWRldl9wcml2LT5zYXZlRlBCMSA9IEk5MTVfUkVBRChGUEIxKTsKLQlkZXZfcHJpdi0+c2F2ZURQTExfQiA9IEk5MTVfUkVBRChEUExMX0IpOwotCWlmIChJU19JOTY1RyhkZXYpKQotCQlkZXZfcHJpdi0+c2F2ZURQTExfQl9NRCA9IEk5MTVfUkVBRChEUExMX0JfTUQpOwotCWRldl9wcml2LT5zYXZlSFRPVEFMX0IgPSBJOTE1X1JFQUQoSFRPVEFMX0IpOwotCWRldl9wcml2LT5zYXZlSEJMQU5LX0IgPSBJOTE1X1JFQUQoSEJMQU5LX0IpOwotCWRldl9wcml2LT5zYXZlSFNZTkNfQiA9IEk5MTVfUkVBRChIU1lOQ19CKTsKLQlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9CID0gSTkxNV9SRUFEKFZUT1RBTF9CKTsKLQlkZXZfcHJpdi0+c2F2ZVZCTEFOS19CID0gSTkxNV9SRUFEKFZCTEFOS19CKTsKLQlkZXZfcHJpdi0+c2F2ZVZTWU5DX0IgPSBJOTE1X1JFQUQoVlNZTkNfQik7Ci0JZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKLQotCWRldl9wcml2LT5zYXZlRFNQQkNOVFIgPSBJOTE1X1JFQUQoRFNQQkNOVFIpOwotCWRldl9wcml2LT5zYXZlRFNQQlNUUklERSA9IEk5MTVfUkVBRChEU1BCU1RSSURFKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEJTSVpFID0gSTkxNV9SRUFEKERTUEJTSVpFKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEJQT1MgPSBJOTE1X1JFQUQoRFNQQlBPUyk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BCQkFTRSA9IEk5MTVfUkVBRChEU1BCQkFTRSk7Ci0JaWYgKElTX0k5NjVHTShkZXYpIHx8IElTX0lHRF9HTShkZXYpKSB7Ci0JCWRldl9wcml2LT5zYXZlRFNQQlNVUkYgPSBJOTE1X1JFQUQoRFNQQlNVUkYpOwotCQlkZXZfcHJpdi0+c2F2ZURTUEJUSUxFT0ZGID0gSTkxNV9SRUFEKERTUEJUSUxFT0ZGKTsKLQl9Ci0JaTkxNV9zYXZlX3BhbGV0dGUoZGV2LCBQSVBFX0IpOwotCWRldl9wcml2LT5zYXZlUElQRUJTVEFUID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUJTVEFUKTsKLQotCS8qIENSVCBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlQURQQSA9IEk5MTVfUkVBRChBRFBBKTsKLQotCS8qIExWRFMgc3RhdGUgKi8KLQlkZXZfcHJpdi0+c2F2ZVBQX0NPTlRST0wgPSBJOTE1X1JFQUQoUFBfQ09OVFJPTCk7Ci0JZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MgPSBJOTE1X1JFQUQoUEZJVF9QR01fUkFUSU9TKTsKLQlkZXZfcHJpdi0+c2F2ZUJMQ19QV01fQ1RMID0gSTkxNV9SRUFEKEJMQ19QV01fQ1RMKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkKLQkJZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTDIgPSBJOTE1X1JFQUQoQkxDX1BXTV9DVEwyKTsKLQlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKLQkJZGV2X3ByaXYtPnNhdmVMVkRTID0gSTkxNV9SRUFEKExWRFMpOwotCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikpCi0JCWRldl9wcml2LT5zYXZlUEZJVF9DT05UUk9MID0gSTkxNV9SRUFEKFBGSVRfQ09OVFJPTCk7Ci0JZGV2X3ByaXYtPnNhdmVMVkRTUFBfT04gPSBJOTE1X1JFQUQoTFZEU1BQX09OKTsKLQlkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PRkYgPSBJOTE1X1JFQUQoTFZEU1BQX09GRik7Ci0JZGV2X3ByaXYtPnNhdmVQUF9DWUNMRSA9IEk5MTVfUkVBRChQUF9DWUNMRSk7Ci0KLQkvKiBGSVhNRTogc2F2ZSBUViAmIFNEVk8gc3RhdGUgKi8KLQotCS8qIEZCQyBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlRkJDX0NGQl9CQVNFID0gSTkxNV9SRUFEKEZCQ19DRkJfQkFTRSk7Ci0JZGV2X3ByaXYtPnNhdmVGQkNfTExfQkFTRSA9IEk5MTVfUkVBRChGQkNfTExfQkFTRSk7Ci0JZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTDIgPSBJOTE1X1JFQUQoRkJDX0NPTlRST0wyKTsKLQlkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MID0gSTkxNV9SRUFEKEZCQ19DT05UUk9MKTsKLQotCS8qIEludGVycnVwdCBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlSUlSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOwotCWRldl9wcml2LT5zYXZlSUVSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0VOQUJMRV9SKTsKLQlkZXZfcHJpdi0+c2F2ZUlNUiA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9NQVNLX1IpOwotCi0JLyogVkdBIHN0YXRlICovCi0JZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMCA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMCk7Ci0JZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMSA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMSk7Ci0JZGV2X3ByaXYtPnNhdmVWQ0xLX1BPU1RfRElWID0gSTkxNV9SRUFEKFZDTEtfUE9TVF9ESVYpOwotCWRldl9wcml2LT5zYXZlVkdBQ05UUkwgPSBJOTE1X1JFQUQoVkdBQ05UUkwpOwotCi0JLyogQ2xvY2sgZ2F0aW5nIHN0YXRlICovCi0JZGV2X3ByaXYtPnNhdmVEX1NUQVRFID0gSTkxNV9SRUFEKERfU1RBVEUpOwotCWRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCA9IEk5MTVfUkVBRChEU1BDTEtfR0FURV9EKTsKLQotCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KLQlkZXZfcHJpdi0+c2F2ZUNBQ0hFX01PREVfMCA9IEk5MTVfUkVBRChDQUNIRV9NT0RFXzApOwotCi0JLyogTWVtb3J5IEFyYml0cmF0aW9uIHN0YXRlICovCi0JZGV2X3ByaXYtPnNhdmVNSV9BUkJfU1RBVEUgPSBJOTE1X1JFQUQoTUlfQVJCX1NUQVRFKTsKLQotCS8qIFNjcmF0Y2ggc3BhY2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgewotCQlkZXZfcHJpdi0+c2F2ZVNXRjBbaV0gPSBJOTE1X1JFQUQoU1dGMCArIChpIDw8IDIpKTsKLQkJZGV2X3ByaXYtPnNhdmVTV0YxW2ldID0gSTkxNV9SRUFEKFNXRjEwICsgKGkgPDwgMikpOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQotCQlkZXZfcHJpdi0+c2F2ZVNXRjJbaV0gPSBJOTE1X1JFQUQoU1dGMzAgKyAoaSA8PCAyKSk7Ci0KLQlpOTE1X3NhdmVfdmdhKGRldik7Ci0KLQlpZiAoc3RhdGUuZXZlbnQgPT0gUE1fRVZFTlRfU1VTUEVORCkgewotCQkvKiBTaHV0IGRvd24gdGhlIGRldmljZSAqLwotCQlwY2lfZGlzYWJsZV9kZXZpY2UoZGV2LT5wZGV2KTsKLQkJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EM2hvdCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCi0JcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EMCk7Ci0JcGNpX3Jlc3RvcmVfc3RhdGUoZGV2LT5wZGV2KTsKLQlpZiAocGNpX2VuYWJsZV9kZXZpY2UoZGV2LT5wZGV2KSkKLQkJcmV0dXJuIC0xOwotCi0JcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldi0+cGRldiwgTEJCLCBkZXZfcHJpdi0+c2F2ZUxCQik7Ci0KLQlJOTE1X1dSSVRFKERTUEFSQiwgZGV2X3ByaXYtPnNhdmVEU1BBUkIpOwotCi0JLyogUGlwZSAmIHBsYW5lIEEgaW5mbyAqLwotCS8qIFByaW1lIHRoZSBjbG9jayAqLwotCWlmIChkZXZfcHJpdi0+c2F2ZURQTExfQSAmIERQTExfVkNPX0VOQUJMRSkgewotCQlJOTE1X1dSSVRFKERQTExfQSwgZGV2X3ByaXYtPnNhdmVEUExMX0EgJgotCQkJICAgfkRQTExfVkNPX0VOQUJMRSk7Ci0JCXVkZWxheSgxNTApOwotCX0KLQlJOTE1X1dSSVRFKEZQQTAsIGRldl9wcml2LT5zYXZlRlBBMCk7Ci0JSTkxNV9XUklURShGUEExLCBkZXZfcHJpdi0+c2F2ZUZQQTEpOwotCS8qIEFjdHVhbGx5IGVuYWJsZSBpdCAqLwotCUk5MTVfV1JJVEUoRFBMTF9BLCBkZXZfcHJpdi0+c2F2ZURQTExfQSk7Ci0JdWRlbGF5KDE1MCk7Ci0JaWYgKElTX0k5NjVHKGRldikpCi0JCUk5MTVfV1JJVEUoRFBMTF9BX01ELCBkZXZfcHJpdi0+c2F2ZURQTExfQV9NRCk7Ci0JdWRlbGF5KDE1MCk7Ci0KLQkvKiBSZXN0b3JlIG1vZGUgKi8KLQlJOTE1X1dSSVRFKEhUT1RBTF9BLCBkZXZfcHJpdi0+c2F2ZUhUT1RBTF9BKTsKLQlJOTE1X1dSSVRFKEhCTEFOS19BLCBkZXZfcHJpdi0+c2F2ZUhCTEFOS19BKTsKLQlJOTE1X1dSSVRFKEhTWU5DX0EsIGRldl9wcml2LT5zYXZlSFNZTkNfQSk7Ci0JSTkxNV9XUklURShWVE9UQUxfQSwgZGV2X3ByaXYtPnNhdmVWVE9UQUxfQSk7Ci0JSTkxNV9XUklURShWQkxBTktfQSwgZGV2X3ByaXYtPnNhdmVWQkxBTktfQSk7Ci0JSTkxNV9XUklURShWU1lOQ19BLCBkZXZfcHJpdi0+c2F2ZVZTWU5DX0EpOwotCUk5MTVfV1JJVEUoQkNMUlBBVF9BLCBkZXZfcHJpdi0+c2F2ZUJDTFJQQVRfQSk7Ci0KLQkvKiBSZXN0b3JlIHBsYW5lIGluZm8gKi8KLQlJOTE1X1dSSVRFKERTUEFTSVpFLCBkZXZfcHJpdi0+c2F2ZURTUEFTSVpFKTsKLQlJOTE1X1dSSVRFKERTUEFQT1MsIGRldl9wcml2LT5zYXZlRFNQQVBPUyk7Ci0JSTkxNV9XUklURShQSVBFQVNSQywgZGV2X3ByaXYtPnNhdmVQSVBFQVNSQyk7Ci0JSTkxNV9XUklURShEU1BBQkFTRSwgZGV2X3ByaXYtPnNhdmVEU1BBQkFTRSk7Ci0JSTkxNV9XUklURShEU1BBU1RSSURFLCBkZXZfcHJpdi0+c2F2ZURTUEFTVFJJREUpOwotCWlmIChJU19JOTY1RyhkZXYpKSB7Ci0JCUk5MTVfV1JJVEUoRFNQQVNVUkYsIGRldl9wcml2LT5zYXZlRFNQQVNVUkYpOwotCQlJOTE1X1dSSVRFKERTUEFUSUxFT0ZGLCBkZXZfcHJpdi0+c2F2ZURTUEFUSUxFT0ZGKTsKLQl9Ci0KLQlJOTE1X1dSSVRFKFBJUEVBQ09ORiwgZGV2X3ByaXYtPnNhdmVQSVBFQUNPTkYpOwotCi0JaTkxNV9yZXN0b3JlX3BhbGV0dGUoZGV2LCBQSVBFX0EpOwotCS8qIEVuYWJsZSB0aGUgcGxhbmUgKi8KLQlJOTE1X1dSSVRFKERTUEFDTlRSLCBkZXZfcHJpdi0+c2F2ZURTUEFDTlRSKTsKLQlJOTE1X1dSSVRFKERTUEFCQVNFLCBJOTE1X1JFQUQoRFNQQUJBU0UpKTsKLQotCS8qIFBpcGUgJiBwbGFuZSBCIGluZm8gKi8KLQlpZiAoZGV2X3ByaXYtPnNhdmVEUExMX0IgJiBEUExMX1ZDT19FTkFCTEUpIHsKLQkJSTkxNV9XUklURShEUExMX0IsIGRldl9wcml2LT5zYXZlRFBMTF9CICYKLQkJCSAgIH5EUExMX1ZDT19FTkFCTEUpOwotCQl1ZGVsYXkoMTUwKTsKLQl9Ci0JSTkxNV9XUklURShGUEIwLCBkZXZfcHJpdi0+c2F2ZUZQQjApOwotCUk5MTVfV1JJVEUoRlBCMSwgZGV2X3ByaXYtPnNhdmVGUEIxKTsKLQkvKiBBY3R1YWxseSBlbmFibGUgaXQgKi8KLQlJOTE1X1dSSVRFKERQTExfQiwgZGV2X3ByaXYtPnNhdmVEUExMX0IpOwotCXVkZWxheSgxNTApOwotCWlmIChJU19JOTY1RyhkZXYpKQotCQlJOTE1X1dSSVRFKERQTExfQl9NRCwgZGV2X3ByaXYtPnNhdmVEUExMX0JfTUQpOwotCXVkZWxheSgxNTApOwotCi0JLyogUmVzdG9yZSBtb2RlICovCi0JSTkxNV9XUklURShIVE9UQUxfQiwgZGV2X3ByaXYtPnNhdmVIVE9UQUxfQik7Ci0JSTkxNV9XUklURShIQkxBTktfQiwgZGV2X3ByaXYtPnNhdmVIQkxBTktfQik7Ci0JSTkxNV9XUklURShIU1lOQ19CLCBkZXZfcHJpdi0+c2F2ZUhTWU5DX0IpOwotCUk5MTVfV1JJVEUoVlRPVEFMX0IsIGRldl9wcml2LT5zYXZlVlRPVEFMX0IpOwotCUk5MTVfV1JJVEUoVkJMQU5LX0IsIGRldl9wcml2LT5zYXZlVkJMQU5LX0IpOwotCUk5MTVfV1JJVEUoVlNZTkNfQiwgZGV2X3ByaXYtPnNhdmVWU1lOQ19CKTsKLQlJOTE1X1dSSVRFKEJDTFJQQVRfQiwgZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0IpOwotCi0JLyogUmVzdG9yZSBwbGFuZSBpbmZvICovCi0JSTkxNV9XUklURShEU1BCU0laRSwgZGV2X3ByaXYtPnNhdmVEU1BCU0laRSk7Ci0JSTkxNV9XUklURShEU1BCUE9TLCBkZXZfcHJpdi0+c2F2ZURTUEJQT1MpOwotCUk5MTVfV1JJVEUoUElQRUJTUkMsIGRldl9wcml2LT5zYXZlUElQRUJTUkMpOwotCUk5MTVfV1JJVEUoRFNQQkJBU0UsIGRldl9wcml2LT5zYXZlRFNQQkJBU0UpOwotCUk5MTVfV1JJVEUoRFNQQlNUUklERSwgZGV2X3ByaXYtPnNhdmVEU1BCU1RSSURFKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkgewotCQlJOTE1X1dSSVRFKERTUEJTVVJGLCBkZXZfcHJpdi0+c2F2ZURTUEJTVVJGKTsKLQkJSTkxNV9XUklURShEU1BCVElMRU9GRiwgZGV2X3ByaXYtPnNhdmVEU1BCVElMRU9GRik7Ci0JfQotCi0JSTkxNV9XUklURShQSVBFQkNPTkYsIGRldl9wcml2LT5zYXZlUElQRUJDT05GKTsKLQotCWk5MTVfcmVzdG9yZV9wYWxldHRlKGRldiwgUElQRV9CKTsKLQkvKiBFbmFibGUgdGhlIHBsYW5lICovCi0JSTkxNV9XUklURShEU1BCQ05UUiwgZGV2X3ByaXYtPnNhdmVEU1BCQ05UUik7Ci0JSTkxNV9XUklURShEU1BCQkFTRSwgSTkxNV9SRUFEKERTUEJCQVNFKSk7Ci0KLQkvKiBDUlQgc3RhdGUgKi8KLQlJOTE1X1dSSVRFKEFEUEEsIGRldl9wcml2LT5zYXZlQURQQSk7Ci0KLQkvKiBMVkRTIHN0YXRlICovCi0JaWYgKElTX0k5NjVHKGRldikpCi0JCUk5MTVfV1JJVEUoQkxDX1BXTV9DVEwyLCBkZXZfcHJpdi0+c2F2ZUJMQ19QV01fQ1RMMik7Ci0JaWYgKElTX01PQklMRShkZXYpICYmICFJU19JODMwKGRldikpCi0JCUk5MTVfV1JJVEUoTFZEUywgZGV2X3ByaXYtPnNhdmVMVkRTKTsKLQlpZiAoIUlTX0k4MzAoZGV2KSAmJiAhSVNfODQ1RyhkZXYpKQotCQlJOTE1X1dSSVRFKFBGSVRfQ09OVFJPTCwgZGV2X3ByaXYtPnNhdmVQRklUX0NPTlRST0wpOwotCi0JSTkxNV9XUklURShQRklUX1BHTV9SQVRJT1MsIGRldl9wcml2LT5zYXZlUEZJVF9QR01fUkFUSU9TKTsKLQlJOTE1X1dSSVRFKEJMQ19QV01fQ1RMLCBkZXZfcHJpdi0+c2F2ZUJMQ19QV01fQ1RMKTsKLQlJOTE1X1dSSVRFKExWRFNQUF9PTiwgZGV2X3ByaXYtPnNhdmVMVkRTUFBfT04pOwotCUk5MTVfV1JJVEUoTFZEU1BQX09GRiwgZGV2X3ByaXYtPnNhdmVMVkRTUFBfT0ZGKTsKLQlJOTE1X1dSSVRFKFBQX0NZQ0xFLCBkZXZfcHJpdi0+c2F2ZVBQX0NZQ0xFKTsKLQlJOTE1X1dSSVRFKFBQX0NPTlRST0wsIGRldl9wcml2LT5zYXZlUFBfQ09OVFJPTCk7Ci0KLQkvKiBGSVhNRTogcmVzdG9yZSBUViAmIFNEVk8gc3RhdGUgKi8KLQotCS8qIEZCQyBpbmZvICovCi0JSTkxNV9XUklURShGQkNfQ0ZCX0JBU0UsIGRldl9wcml2LT5zYXZlRkJDX0NGQl9CQVNFKTsKLQlJOTE1X1dSSVRFKEZCQ19MTF9CQVNFLCBkZXZfcHJpdi0+c2F2ZUZCQ19MTF9CQVNFKTsKLQlJOTE1X1dSSVRFKEZCQ19DT05UUk9MMiwgZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTDIpOwotCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIGRldl9wcml2LT5zYXZlRkJDX0NPTlRST0wpOwotCi0JLyogVkdBIHN0YXRlICovCi0JSTkxNV9XUklURShWR0FDTlRSTCwgZGV2X3ByaXYtPnNhdmVWR0FDTlRSTCk7Ci0JSTkxNV9XUklURShWQ0xLX0RJVklTT1JfVkdBMCwgZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMCk7Ci0JSTkxNV9XUklURShWQ0xLX0RJVklTT1JfVkdBMSwgZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMSk7Ci0JSTkxNV9XUklURShWQ0xLX1BPU1RfRElWLCBkZXZfcHJpdi0+c2F2ZVZDTEtfUE9TVF9ESVYpOwotCXVkZWxheSgxNTApOwotCi0JLyogQ2xvY2sgZ2F0aW5nIHN0YXRlICovCi0JSTkxNV9XUklURSAoRF9TVEFURSwgZGV2X3ByaXYtPnNhdmVEX1NUQVRFKTsKLQlJOTE1X1dSSVRFIChEU1BDTEtfR0FURV9ELCBkZXZfcHJpdi0+c2F2ZURTUENMS19HQVRFX0QpOwotCi0JLyogQ2FjaGUgbW9kZSBzdGF0ZSAqLwotCUk5MTVfV1JJVEUgKENBQ0hFX01PREVfMCwgZGV2X3ByaXYtPnNhdmVDQUNIRV9NT0RFXzAgfCAweGZmZmYwMDAwKTsKLQotCS8qIE1lbW9yeSBhcmJpdHJhdGlvbiBzdGF0ZSAqLwotCUk5MTVfV1JJVEUgKE1JX0FSQl9TVEFURSwgZGV2X3ByaXYtPnNhdmVNSV9BUkJfU1RBVEUgfCAweGZmZmYwMDAwKTsKLQotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCUk5MTVfV1JJVEUoU1dGMCArIChpIDw8IDIpLCBkZXZfcHJpdi0+c2F2ZVNXRjBbaV0pOwotCQlJOTE1X1dSSVRFKFNXRjEwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMVtpKzddKTsKLQl9Ci0JZm9yIChpID0gMDsgaSA8IDM7IGkrKykKLQkJSTkxNV9XUklURShTV0YzMCArIChpIDw8IDIpLCBkZXZfcHJpdi0+c2F2ZVNXRjJbaV0pOwotCi0JaTkxNV9yZXN0b3JlX3ZnYShkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7Ci0JLyogZG9uJ3QgdXNlIG10cnIncyBoZXJlLCB0aGUgWHNlcnZlciBvciB1c2VyIHNwYWNlIGFwcCBzaG91bGQKLQkgKiBkZWFsIHdpdGggdGhlbSBmb3IgaW50ZWwgaGFyZHdhcmUuCi0JICovCi0JLmRyaXZlcl9mZWF0dXJlcyA9Ci0JICAgIERSSVZFUl9VU0VfQUdQIHwgRFJJVkVSX1JFUVVJUkVfQUdQIHwgLyogRFJJVkVSX1VTRV9NVFJSIHwqLwotCSAgICBEUklWRVJfSEFWRV9JUlEgfCBEUklWRVJfSVJRX1NIQVJFRCB8IERSSVZFUl9JUlFfVkJMIHwKLQkgICAgRFJJVkVSX0lSUV9WQkwyLAotCS5sb2FkID0gaTkxNV9kcml2ZXJfbG9hZCwKLQkudW5sb2FkID0gaTkxNV9kcml2ZXJfdW5sb2FkLAotCS5sYXN0Y2xvc2UgPSBpOTE1X2RyaXZlcl9sYXN0Y2xvc2UsCi0JLnByZWNsb3NlID0gaTkxNV9kcml2ZXJfcHJlY2xvc2UsCi0JLnN1c3BlbmQgPSBpOTE1X3N1c3BlbmQsCi0JLnJlc3VtZSA9IGk5MTVfcmVzdW1lLAotCS5kZXZpY2VfaXNfYWdwID0gaTkxNV9kcml2ZXJfZGV2aWNlX2lzX2FncCwKLQkudmJsYW5rX3dhaXQgPSBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdCwKLQkudmJsYW5rX3dhaXQyID0gaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyLAotCS5pcnFfcHJlaW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV9wcmVpbnN0YWxsLAotCS5pcnFfcG9zdGluc3RhbGwgPSBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwsCi0JLmlycV91bmluc3RhbGwgPSBpOTE1X2RyaXZlcl9pcnFfdW5pbnN0YWxsLAotCS5pcnFfaGFuZGxlciA9IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyLAotCS5yZWNsYWltX2J1ZmZlcnMgPSBkcm1fY29yZV9yZWNsYWltX2J1ZmZlcnMsCi0JLmdldF9tYXBfb2ZzID0gZHJtX2NvcmVfZ2V0X21hcF9vZnMsCi0JLmdldF9yZWdfb2ZzID0gZHJtX2NvcmVfZ2V0X3JlZ19vZnMsCi0JLmlvY3RscyA9IGk5MTVfaW9jdGxzLAotCS5mb3BzID0gewotCQkgLm93bmVyID0gVEhJU19NT0RVTEUsCi0JCSAub3BlbiA9IGRybV9vcGVuLAotCQkgLnJlbGVhc2UgPSBkcm1fcmVsZWFzZSwKLQkJIC5pb2N0bCA9IGRybV9pb2N0bCwKLQkJIC5tbWFwID0gZHJtX21tYXAsCi0JCSAucG9sbCA9IGRybV9wb2xsLAotCQkgLmZhc3luYyA9IGRybV9mYXN5bmMsCi0jaWZkZWYgQ09ORklHX0NPTVBBVAotCQkgLmNvbXBhdF9pb2N0bCA9IGk5MTVfY29tcGF0X2lvY3RsLAotI2VuZGlmCi0JfSwKLQotCS5wY2lfZHJpdmVyID0gewotCQkgLm5hbWUgPSBEUklWRVJfTkFNRSwKLQkJIC5pZF90YWJsZSA9IHBjaWlkbGlzdCwKLQl9LAotCi0JLm5hbWUgPSBEUklWRVJfTkFNRSwKLQkuZGVzYyA9IERSSVZFUl9ERVNDLAotCS5kYXRlID0gRFJJVkVSX0RBVEUsCi0JLm1ham9yID0gRFJJVkVSX01BSk9SLAotCS5taW5vciA9IERSSVZFUl9NSU5PUiwKLQkucGF0Y2hsZXZlbCA9IERSSVZFUl9QQVRDSExFVkVMLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTkxNV9pbml0KHZvaWQpCi17Ci0JZHJpdmVyLm51bV9pb2N0bHMgPSBpOTE1X21heF9pb2N0bDsKLQlyZXR1cm4gZHJtX2luaXQoJmRyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBpOTE1X2V4aXQodm9pZCkKLXsKLQlkcm1fZXhpdCgmZHJpdmVyKTsKLX0KLQotbW9kdWxlX2luaXQoaTkxNV9pbml0KTsKLW1vZHVsZV9leGl0KGk5MTVfZXhpdCk7Ci0KLU1PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhPUik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25hbCByaWdodHMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuaCBiL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIyMGY3Yy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTM1ICswLDAgQEAKLS8qIGk5MTVfZHJ2LmggLS0gUHJpdmF0ZSBoZWFkZXIgZm9yIHRoZSBJOTE1IGRyaXZlciAtKi0gbGludXgtYyAtKi0KLSAqLwotLyoKLSAqCi0gKiBDb3B5cmlnaHQgMjAwMyBUdW5nc3RlbiBHcmFwaGljcywgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0gKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQotICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKLSAqIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwotICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRVTkdTVEVOIEdSQVBISUNTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotICogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSAqIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaWZuZGVmIF9JOTE1X0RSVl9IXwotI2RlZmluZSBfSTkxNV9EUlZfSF8KLQotLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgotICovCi0KLSNkZWZpbmUgRFJJVkVSX0FVVEhPUgkJIlR1bmdzdGVuIEdyYXBoaWNzLCBJbmMuIgotCi0jZGVmaW5lIERSSVZFUl9OQU1FCQkiaTkxNSIKLSNkZWZpbmUgRFJJVkVSX0RFU0MJCSJJbnRlbCBHcmFwaGljcyIKLSNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDA2MDExOSIKLQotLyogSW50ZXJmYWNlIGhpc3Rvcnk6Ci0gKgotICogMS4xOiBPcmlnaW5hbC4KLSAqIDEuMjogQWRkIFBvd2VyIE1hbmFnZW1lbnQKLSAqIDEuMzogQWRkIHZibGFuayBzdXBwb3J0Ci0gKiAxLjQ6IEZpeCBjbWRidWZmZXIgcGF0aCwgYWRkIGhlYXAgZGVzdHJveQotICogMS41OiBBZGQgdmJsYW5rIHBpcGUgY29uZmlndXJhdGlvbgotICogMS42OiAtIE5ldyBpb2N0bCBmb3Igc2NoZWR1bGluZyBidWZmZXIgc3dhcHMgb24gdmVydGljYWwgYmxhbmsKLSAqICAgICAgLSBTdXBwb3J0IHZlcnRpY2FsIGJsYW5rIG9uIHNlY29uZGFyeSBkaXNwbGF5IHBpcGUKLSAqLwotI2RlZmluZSBEUklWRVJfTUFKT1IJCTEKLSNkZWZpbmUgRFJJVkVSX01JTk9SCQk2Ci0jZGVmaW5lIERSSVZFUl9QQVRDSExFVkVMCTAKLQotdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1X3JpbmdfYnVmZmVyIHsKLQlpbnQgdGFpbF9tYXNrOwotCXVuc2lnbmVkIGxvbmcgU3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBFbmQ7Ci0JdW5zaWduZWQgbG9uZyBTaXplOwotCXU4ICp2aXJ0dWFsX3N0YXJ0OwotCWludCBoZWFkOwotCWludCB0YWlsOwotCWludCBzcGFjZTsKLQlkcm1fbG9jYWxfbWFwX3QgbWFwOwotfSBkcm1faTkxNV9yaW5nX2J1ZmZlcl90OwotCi1zdHJ1Y3QgbWVtX2Jsb2NrIHsKLQlzdHJ1Y3QgbWVtX2Jsb2NrICpuZXh0OwotCXN0cnVjdCBtZW1fYmxvY2sgKnByZXY7Ci0JaW50IHN0YXJ0OwotCWludCBzaXplOwotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OyAvKiBOVUxMOiBmcmVlLCAtMTogaGVhcCwgb3RoZXI6IHJlYWwgZmlsZXMgKi8KLX07Ci0KLXR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV92Ymxfc3dhcCB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCWRybV9kcmF3YWJsZV90IGRyd19pZDsKLQl1bnNpZ25lZCBpbnQgcGlwZTsKLQl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7Ci19IGRybV9pOTE1X3ZibF9zd2FwX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewotCWRybV9sb2NhbF9tYXBfdCAqc2FyZWE7Ci0JZHJtX2xvY2FsX21hcF90ICptbWlvX21hcDsKLQotCWRybV9pOTE1X3NhcmVhX3QgKnNhcmVhX3ByaXY7Ci0JZHJtX2k5MTVfcmluZ19idWZmZXJfdCByaW5nOwotCi0JZHJtX2RtYV9oYW5kbGVfdCAqc3RhdHVzX3BhZ2VfZG1haDsKLQl2b2lkICpod19zdGF0dXNfcGFnZTsKLQlkbWFfYWRkcl90IGRtYV9zdGF0dXNfcGFnZTsKLQl1bnNpZ25lZCBsb25nIGNvdW50ZXI7Ci0JdW5zaWduZWQgaW50IHN0YXR1c19nZnhfYWRkcjsKLQlkcm1fbG9jYWxfbWFwX3QgaHdzX21hcDsKLQotCXVuc2lnbmVkIGludCBjcHA7Ci0JaW50IGJhY2tfb2Zmc2V0OwotCWludCBmcm9udF9vZmZzZXQ7Ci0JaW50IGN1cnJlbnRfcGFnZTsKLQlpbnQgcGFnZV9mbGlwcGluZzsKLQlpbnQgdXNlX21pX2JhdGNoYnVmZmVyX3N0YXJ0OwotCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgaXJxX3F1ZXVlOwotCWF0b21pY190IGlycV9yZWNlaXZlZDsKLQlhdG9taWNfdCBpcnFfZW1pdHRlZDsKLQotCWludCB0ZXhfbHJ1X2xvZ19ncmFudWxhcml0eTsKLQlpbnQgYWxsb3dfYmF0Y2hidWZmZXI7Ci0Jc3RydWN0IG1lbV9ibG9jayAqYWdwX2hlYXA7Ci0JdW5zaWduZWQgaW50IHNyMDEsIGFkcGEsIHBwY3IsIGR2b2IsIGR2b2MsIGx2ZHM7Ci0JaW50IHZibGFua19waXBlOwotCi0Jc3BpbmxvY2tfdCBzd2Fwc19sb2NrOwotCWRybV9pOTE1X3ZibF9zd2FwX3QgdmJsX3N3YXBzOwotCXVuc2lnbmVkIGludCBzd2Fwc19wZW5kaW5nOwotCi0JLyogUmVnaXN0ZXIgc3RhdGUgKi8KLQl1OCBzYXZlTEJCOwotCXUzMiBzYXZlRFNQQUNOVFI7Ci0JdTMyIHNhdmVEU1BCQ05UUjsKLQl1MzIgc2F2ZURTUEFSQjsKLQl1MzIgc2F2ZVBJUEVBQ09ORjsKLQl1MzIgc2F2ZVBJUEVCQ09ORjsKLQl1MzIgc2F2ZVBJUEVBU1JDOwotCXUzMiBzYXZlUElQRUJTUkM7Ci0JdTMyIHNhdmVGUEEwOwotCXUzMiBzYXZlRlBBMTsKLQl1MzIgc2F2ZURQTExfQTsKLQl1MzIgc2F2ZURQTExfQV9NRDsKLQl1MzIgc2F2ZUhUT1RBTF9BOwotCXUzMiBzYXZlSEJMQU5LX0E7Ci0JdTMyIHNhdmVIU1lOQ19BOwotCXUzMiBzYXZlVlRPVEFMX0E7Ci0JdTMyIHNhdmVWQkxBTktfQTsKLQl1MzIgc2F2ZVZTWU5DX0E7Ci0JdTMyIHNhdmVCQ0xSUEFUX0E7Ci0JdTMyIHNhdmVQSVBFQVNUQVQ7Ci0JdTMyIHNhdmVEU1BBU1RSSURFOwotCXUzMiBzYXZlRFNQQVNJWkU7Ci0JdTMyIHNhdmVEU1BBUE9TOwotCXUzMiBzYXZlRFNQQUJBU0U7Ci0JdTMyIHNhdmVEU1BBU1VSRjsKLQl1MzIgc2F2ZURTUEFUSUxFT0ZGOwotCXUzMiBzYXZlUEZJVF9QR01fUkFUSU9TOwotCXUzMiBzYXZlQkxDX1BXTV9DVEw7Ci0JdTMyIHNhdmVCTENfUFdNX0NUTDI7Ci0JdTMyIHNhdmVGUEIwOwotCXUzMiBzYXZlRlBCMTsKLQl1MzIgc2F2ZURQTExfQjsKLQl1MzIgc2F2ZURQTExfQl9NRDsKLQl1MzIgc2F2ZUhUT1RBTF9COwotCXUzMiBzYXZlSEJMQU5LX0I7Ci0JdTMyIHNhdmVIU1lOQ19COwotCXUzMiBzYXZlVlRPVEFMX0I7Ci0JdTMyIHNhdmVWQkxBTktfQjsKLQl1MzIgc2F2ZVZTWU5DX0I7Ci0JdTMyIHNhdmVCQ0xSUEFUX0I7Ci0JdTMyIHNhdmVQSVBFQlNUQVQ7Ci0JdTMyIHNhdmVEU1BCU1RSSURFOwotCXUzMiBzYXZlRFNQQlNJWkU7Ci0JdTMyIHNhdmVEU1BCUE9TOwotCXUzMiBzYXZlRFNQQkJBU0U7Ci0JdTMyIHNhdmVEU1BCU1VSRjsKLQl1MzIgc2F2ZURTUEJUSUxFT0ZGOwotCXUzMiBzYXZlVkNMS19ESVZJU09SX1ZHQTA7Ci0JdTMyIHNhdmVWQ0xLX0RJVklTT1JfVkdBMTsKLQl1MzIgc2F2ZVZDTEtfUE9TVF9ESVY7Ci0JdTMyIHNhdmVWR0FDTlRSTDsKLQl1MzIgc2F2ZUFEUEE7Ci0JdTMyIHNhdmVMVkRTOwotCXUzMiBzYXZlTFZEU1BQX09OOwotCXUzMiBzYXZlTFZEU1BQX09GRjsKLQl1MzIgc2F2ZURWT0E7Ci0JdTMyIHNhdmVEVk9COwotCXUzMiBzYXZlRFZPQzsKLQl1MzIgc2F2ZVBQX09OOwotCXUzMiBzYXZlUFBfT0ZGOwotCXUzMiBzYXZlUFBfQ09OVFJPTDsKLQl1MzIgc2F2ZVBQX0NZQ0xFOwotCXUzMiBzYXZlUEZJVF9DT05UUk9MOwotCXUzMiBzYXZlX3BhbGV0dGVfYVsyNTZdOwotCXUzMiBzYXZlX3BhbGV0dGVfYlsyNTZdOwotCXUzMiBzYXZlRkJDX0NGQl9CQVNFOwotCXUzMiBzYXZlRkJDX0xMX0JBU0U7Ci0JdTMyIHNhdmVGQkNfQ09OVFJPTDsKLQl1MzIgc2F2ZUZCQ19DT05UUk9MMjsKLQl1MzIgc2F2ZUlFUjsKLQl1MzIgc2F2ZUlJUjsKLQl1MzIgc2F2ZUlNUjsKLQl1MzIgc2F2ZUNBQ0hFX01PREVfMDsKLQl1MzIgc2F2ZURfU1RBVEU7Ci0JdTMyIHNhdmVEU1BDTEtfR0FURV9EOwotCXUzMiBzYXZlTUlfQVJCX1NUQVRFOwotCXUzMiBzYXZlU1dGMFsxNl07Ci0JdTMyIHNhdmVTV0YxWzE2XTsKLQl1MzIgc2F2ZVNXRjJbM107Ci0JdTggc2F2ZU1TUjsKLQl1OCBzYXZlU1JbOF07Ci0JdTggc2F2ZUdSWzI1XTsKLQl1OCBzYXZlQVJfSU5ERVg7Ci0JdTggc2F2ZUFSWzIxXTsKLQl1OCBzYXZlREFDTUFTSzsKLQl1OCBzYXZlREFDREFUQVsyNTYqM107IC8qIDI1NiAzLWJ5dGUgY29sb3JzICovCi0JdTggc2F2ZUNSWzM3XTsKLX0gZHJtX2k5MTVfcHJpdmF0ZV90OwotCi1leHRlcm4gc3RydWN0IGRybV9pb2N0bF9kZXNjIGk5MTVfaW9jdGxzW107Ci1leHRlcm4gaW50IGk5MTVfbWF4X2lvY3RsOwotCi0JCQkJLyogaTkxNV9kbWEuYyAqLwotZXh0ZXJuIHZvaWQgaTkxNV9rZXJuZWxfbG9zdF9jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKLWV4dGVybiBpbnQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICopOwotZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiB2b2lkIGk5MTVfZHJpdmVyX3ByZWNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgaTkxNV9kcml2ZXJfZGV2aWNlX2lzX2FncChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gbG9uZyBpOTE1X2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKTsKLQotLyogaTkxNV9pcnEuYyAqLwotZXh0ZXJuIGludCBpOTE1X2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBpOTE1X2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi1leHRlcm4gaW50IGk5MTVfZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOwotZXh0ZXJuIGludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7Ci1leHRlcm4gaXJxcmV0dXJuX3QgaTkxNV9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKLWV4dGVybiB2b2lkIGk5MTVfZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiB2b2lkIGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiBpbnQgaTkxNV92YmxhbmtfcGlwZV9zZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfdmJsYW5rX3BpcGVfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBpOTE1X3ZibGFua19zd2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0vKiBpOTE1X21lbS5jICovCi1leHRlcm4gaW50IGk5MTVfbWVtX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgaTkxNV9tZW1fZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgaTkxNV9tZW1faW5pdF9oZWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfbWVtX2Rlc3Ryb3lfaGVhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gdm9pZCBpOTE1X21lbV90YWtlZG93bihzdHJ1Y3QgbWVtX2Jsb2NrICoqaGVhcCk7Ci1leHRlcm4gdm9pZCBpOTE1X21lbV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IG1lbV9ibG9jayAqaGVhcCk7Ci0KLSNkZWZpbmUgSTkxNV9SRUFEKHJlZykgICAgICAgICAgRFJNX1JFQUQzMihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpKQotI2RlZmluZSBJOTE1X1dSSVRFKHJlZyx2YWwpICAgICBEUk1fV1JJVEUzMihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpLCAodmFsKSkKLSNkZWZpbmUgSTkxNV9SRUFEMTYocmVnKQlEUk1fUkVBRDE2KGRldl9wcml2LT5tbWlvX21hcCwgKHJlZykpCi0jZGVmaW5lIEk5MTVfV1JJVEUxNihyZWcsdmFsKQlEUk1fV1JJVEUxNihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpLCAodmFsKSkKLQotI2RlZmluZSBJOTE1X1ZFUkJPU0UgMAotCi0jZGVmaW5lIFJJTkdfTE9DQUxTCXVuc2lnbmVkIGludCBvdXRyaW5nLCByaW5nbWFzaywgb3V0Y291bnQ7IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxlIGNoYXIgKnZpcnQ7Ci0KLSNkZWZpbmUgQkVHSU5fTFBfUklORyhuKSBkbyB7CQkJCVwKLQlpZiAoSTkxNV9WRVJCT1NFKQkJCQlcCi0JCURSTV9ERUJVRygiQkVHSU5fTFBfUklORyglZClcbiIsIChuKSk7CVwKLQlpZiAoZGV2X3ByaXYtPnJpbmcuc3BhY2UgPCAobikqNCkJCVwKLQkJaTkxNV93YWl0X3JpbmcoZGV2LCAobikqNCwgX19mdW5jX18pOwkJXAotCW91dGNvdW50ID0gMDsJCQkJCVwKLQlvdXRyaW5nID0gZGV2X3ByaXYtPnJpbmcudGFpbDsJCQlcCi0JcmluZ21hc2sgPSBkZXZfcHJpdi0+cmluZy50YWlsX21hc2s7CQlcCi0JdmlydCA9IGRldl9wcml2LT5yaW5nLnZpcnR1YWxfc3RhcnQ7CQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIE9VVF9SSU5HKG4pIGRvIHsJCQkJCVwKLQlpZiAoSTkxNV9WRVJCT1NFKSBEUk1fREVCVUcoIiAgIE9VVF9SSU5HICV4XG4iLCAoaW50KShuKSk7CVwKLQkqKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSh2aXJ0ICsgb3V0cmluZykgPSAobik7CVwKLSAgICAgICAgb3V0Y291bnQrKzsJCQkJCQlcCi0Jb3V0cmluZyArPSA0OwkJCQkJCVwKLQlvdXRyaW5nICY9IHJpbmdtYXNrOwkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBBRFZBTkNFX0xQX1JJTkcoKSBkbyB7CQkJCQkJXAotCWlmIChJOTE1X1ZFUkJPU0UpIERSTV9ERUJVRygiQURWQU5DRV9MUF9SSU5HICV4XG4iLCBvdXRyaW5nKTsJXAotCWRldl9wcml2LT5yaW5nLnRhaWwgPSBvdXRyaW5nOwkJCQkJXAotCWRldl9wcml2LT5yaW5nLnNwYWNlIC09IG91dGNvdW50ICogNDsJCQkJXAotCUk5MTVfV1JJVEUoTFBfUklORyArIFJJTkdfVEFJTCwgb3V0cmluZyk7CQkJXAotfSB3aGlsZSgwKQotCi1leHRlcm4gaW50IGk5MTVfd2FpdF9yaW5nKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgbiwgY29uc3QgY2hhciAqY2FsbGVyKTsKLQotLyogRXh0ZW5kZWQgY29uZmlnIHNwYWNlICovCi0jZGVmaW5lIExCQiAweGY0Ci0KLS8qIFZHQSBzdHVmZiAqLwotCi0jZGVmaW5lIFZHQV9TVDAxX01EQSAweDNiYQotI2RlZmluZSBWR0FfU1QwMV9DR0EgMHgzZGEKLQotI2RlZmluZSBWR0FfTVNSX1dSSVRFIDB4M2MyCi0jZGVmaW5lIFZHQV9NU1JfUkVBRCAweDNjYwotI2RlZmluZSAgIFZHQV9NU1JfTUVNX0VOICgxPDwxKQotI2RlZmluZSAgIFZHQV9NU1JfQ0dBX01PREUgKDE8PDApCi0KLSNkZWZpbmUgVkdBX1NSX0lOREVYIDB4M2M0Ci0jZGVmaW5lIFZHQV9TUl9EQVRBIDB4M2M1Ci0KLSNkZWZpbmUgVkdBX0FSX0lOREVYIDB4M2MwCi0jZGVmaW5lICAgVkdBX0FSX1ZJRF9FTiAoMTw8NSkKLSNkZWZpbmUgVkdBX0FSX0RBVEFfV1JJVEUgMHgzYzAKLSNkZWZpbmUgVkdBX0FSX0RBVEFfUkVBRCAweDNjMQotCi0jZGVmaW5lIFZHQV9HUl9JTkRFWCAweDNjZQotI2RlZmluZSBWR0FfR1JfREFUQSAweDNjZgotLyogR1IwNSAqLwotI2RlZmluZSAgIFZHQV9HUl9NRU1fUkVBRF9NT0RFX1NISUZUIDMKLSNkZWZpbmUgICAgIFZHQV9HUl9NRU1fUkVBRF9NT0RFX1BMQU5FIDEKLS8qIEdSMDYgKi8KLSNkZWZpbmUgICBWR0FfR1JfTUVNX01PREVfTUFTSyAweGMKLSNkZWZpbmUgICBWR0FfR1JfTUVNX01PREVfU0hJRlQgMgotI2RlZmluZSAgIFZHQV9HUl9NRU1fQTAwMDBfQUZGRkYgMAotI2RlZmluZSAgIFZHQV9HUl9NRU1fQTAwMDBfQkZGRkYgMQotI2RlZmluZSAgIFZHQV9HUl9NRU1fQjAwMDBfQjdGRkYgMgotI2RlZmluZSAgIFZHQV9HUl9NRU1fQjAwMDBfQkZGRkYgMwotCi0jZGVmaW5lIFZHQV9EQUNNQVNLIDB4M2M2Ci0jZGVmaW5lIFZHQV9EQUNSWCAweDNjNwotI2RlZmluZSBWR0FfREFDV1ggMHgzYzgKLSNkZWZpbmUgVkdBX0RBQ0RBVEEgMHgzYzkKLQotI2RlZmluZSBWR0FfQ1JfSU5ERVhfTURBIDB4M2I0Ci0jZGVmaW5lIFZHQV9DUl9EQVRBX01EQSAweDNiNQotI2RlZmluZSBWR0FfQ1JfSU5ERVhfQ0dBIDB4M2Q0Ci0jZGVmaW5lIFZHQV9DUl9EQVRBX0NHQSAweDNkNQotCi0jZGVmaW5lIEdGWF9PUF9VU0VSX0lOVEVSUlVQVAkJKCgwPDwyOSl8KDI8PDIzKSkKLSNkZWZpbmUgR0ZYX09QX0JSRUFLUE9JTlRfSU5URVJSVVBUCSgoMDw8MjkpfCgxPDwyMykpCi0jZGVmaW5lIENNRF9SRVBPUlRfSEVBRAkJCSg3PDwyMykKLSNkZWZpbmUgQ01EX1NUT1JFX0RXT1JEX0lEWAkJKCgweDIxPDwyMykgfCAweDEpCi0jZGVmaW5lIENNRF9PUF9CQVRDSF9CVUZGRVIgICgoMHgwPDwyOSl8KDB4MzA8PDIzKXwweDEpCi0KLSNkZWZpbmUgSU5TVF9QQVJTRVJfQ0xJRU5UICAgMHgwMDAwMDAwMAotI2RlZmluZSBJTlNUX09QX0ZMVVNIICAgICAgICAweDAyMDAwMDAwCi0jZGVmaW5lIElOU1RfRkxVU0hfTUFQX0NBQ0hFIDB4MDAwMDAwMDEKLQotI2RlZmluZSBCQjFfU1RBUlRfQUREUl9NQVNLICAgKH4weDcpCi0jZGVmaW5lIEJCMV9QUk9URUNURUQgICAgICAgICAoMTw8MCkKLSNkZWZpbmUgQkIxX1VOUFJPVEVDVEVEICAgICAgICgwPDwwKQotI2RlZmluZSBCQjJfRU5EX0FERFJfTUFTSyAgICAgKH4weDcpCi0KLS8qIEZyYW1lYnVmZmVyIGNvbXByZXNzaW9uICovCi0jZGVmaW5lIEZCQ19DRkJfQkFTRQkJMHgwMzIwMCAvKiA0ayBwYWdlIGFsaWduZWQgKi8KLSNkZWZpbmUgRkJDX0xMX0JBU0UJCTB4MDMyMDQgLyogNGsgcGFnZSBhbGlnbmVkICovCi0jZGVmaW5lIEZCQ19DT05UUk9MCQkweDAzMjA4Ci0jZGVmaW5lICAgRkJDX0NUTF9FTgkJKDE8PDMxKQotI2RlZmluZSAgIEZCQ19DVExfUEVSSU9ESUMJKDE8PDMwKQotI2RlZmluZSAgIEZCQ19DVExfSU5URVJWQUxfU0hJRlQgKDE2KQotI2RlZmluZSAgIEZCQ19DVExfVU5DT01QUkVTU0lCTEUgKDE8PDE0KQotI2RlZmluZSAgIEZCQ19DVExfU1RSSURFX1NISUZUCSg1KQotI2RlZmluZSAgIEZCQ19DVExfRkVOQ0VOTwkoMTw8MCkKLSNkZWZpbmUgRkJDX0NPTU1BTkQJCTB4MDMyMGMKLSNkZWZpbmUgICBGQkNfQ01EX0NPTVBSRVNTCSgxPDwwKQotI2RlZmluZSBGQkNfU1RBVFVTCQkweDAzMjEwCi0jZGVmaW5lICAgRkJDX1NUQVRfQ09NUFJFU1NJTkcJKDE8PDMxKQotI2RlZmluZSAgIEZCQ19TVEFUX0NPTVBSRVNTRUQJKDE8PDMwKQotI2RlZmluZSAgIEZCQ19TVEFUX01PRElGSUVECSgxPDwyOSkKLSNkZWZpbmUgICBGQkNfU1RBVF9DVVJSRU5UX0xJTkUJKDE8PDApCi0jZGVmaW5lIEZCQ19DT05UUk9MMgkJMHgwMzIxNAotI2RlZmluZSAgIEZCQ19DVExfRkVOQ0VfREJMCSgwPDw0KQotI2RlZmluZSAgIEZCQ19DVExfSURMRV9JTU0JKDA8PDIpCi0jZGVmaW5lICAgRkJDX0NUTF9JRExFX0ZVTEwJKDE8PDIpCi0jZGVmaW5lICAgRkJDX0NUTF9JRExFX0xJTkUJKDI8PDIpCi0jZGVmaW5lICAgRkJDX0NUTF9JRExFX0RFQlVHCSgzPDwyKQotI2RlZmluZSAgIEZCQ19DVExfQ1BVX0ZFTkNFCSgxPDwxKQotI2RlZmluZSAgIEZCQ19DVExfUExBTkVBCSgwPDwwKQotI2RlZmluZSAgIEZCQ19DVExfUExBTkVCCSgxPDwwKQotI2RlZmluZSBGQkNfRkVOQ0VfT0ZGCQkweDAzMjFiCi0KLSNkZWZpbmUgRkJDX0xMX1NJWkUJCSgxNTM2KQotI2RlZmluZSBGQkNfTExfUEFECQkoMzIpCi0KLS8qIEludGVycnVwdCBiaXRzOgotICovCi0jZGVmaW5lIFVTRVJfSU5UX0ZMQUcgICAgKDE8PDEpCi0jZGVmaW5lIFZTWU5DX1BJUEVCX0ZMQUcgKDE8PDUpCi0jZGVmaW5lIFZTWU5DX1BJUEVBX0ZMQUcgKDE8PDcpCi0jZGVmaW5lIEhXQl9PT01fRkxBRyAgICAgKDE8PDEzKSAvKiBiaW5uZXIgb3V0IG9mIG1lbW9yeSAqLwotCi0jZGVmaW5lIEk5MTVSRUdfSFdTVEFNCQkweDAyMDk4Ci0jZGVmaW5lIEk5MTVSRUdfSU5UX0lERU5USVRZX1IJMHgwMjBhNAotI2RlZmluZSBJOTE1UkVHX0lOVF9NQVNLX1IJMHgwMjBhOAotI2RlZmluZSBJOTE1UkVHX0lOVF9FTkFCTEVfUgkweDAyMGEwCi0KLSNkZWZpbmUgSTkxNVJFR19QSVBFQVNUQVQJMHg3MDAyNAotI2RlZmluZSBJOTE1UkVHX1BJUEVCU1RBVAkweDcxMDI0Ci0KLSNkZWZpbmUgSTkxNV9WQkxBTktfSU5URVJSVVBUX0VOQUJMRQkoMVVMPDwxNykKLSNkZWZpbmUgSTkxNV9WQkxBTktfQ0xFQVIJCSgxVUw8PDEpCi0KLSNkZWZpbmUgU1JYX0lOREVYCQkweDNjNAotI2RlZmluZSBTUlhfREFUQQkJMHgzYzUKLSNkZWZpbmUgU1IwMQkJCTEKLSNkZWZpbmUgU1IwMV9TQ1JFRU5fT0ZGCQkoMTw8NSkKLQotI2RlZmluZSBQUENSCQkJMHg2MTIwNAotI2RlZmluZSBQUENSX09OCQkJKDE8PDApCi0KLSNkZWZpbmUgRFZPQgkJCTB4NjExNDAKLSNkZWZpbmUgRFZPQl9PTgkJCSgxPDwzMSkKLSNkZWZpbmUgRFZPQwkJCTB4NjExNjAKLSNkZWZpbmUgRFZPQ19PTgkJCSgxPDwzMSkKLSNkZWZpbmUgTFZEUwkJCTB4NjExODAKLSNkZWZpbmUgTFZEU19PTgkJCSgxPDwzMSkKLQotI2RlZmluZSBBRFBBCQkJMHg2MTEwMAotI2RlZmluZSBBRFBBX0RQTVNfTUFTSwkJKH4oMzw8MTApKQotI2RlZmluZSBBRFBBX0RQTVNfT04JCSgwPDwxMCkKLSNkZWZpbmUgQURQQV9EUE1TX1NVU1BFTkQJKDE8PDEwKQotI2RlZmluZSBBRFBBX0RQTVNfU1RBTkRCWQkoMjw8MTApCi0jZGVmaW5lIEFEUEFfRFBNU19PRkYJCSgzPDwxMCkKLQotI2RlZmluZSBOT1BJRCAgICAgICAgICAgICAgICAgICAweDIwOTQKLSNkZWZpbmUgTFBfUklORwkJCTB4MjAzMAotI2RlZmluZSBIUF9SSU5HCQkJMHgyMDQwCi0vKiBUaGUgYmlubmVyIGhhcyBpdHMgb3duIHJpbmcgYnVmZmVyOgotICovCi0jZGVmaW5lIEhXQl9SSU5HCQkweDI0MDAKLQotI2RlZmluZSBSSU5HX1RBSUwJCTB4MDAKLSNkZWZpbmUgVEFJTF9BRERSCQkweDAwMUZGRkY4Ci0jZGVmaW5lIFJJTkdfSEVBRAkJMHgwNAotI2RlZmluZSBIRUFEX1dSQVBfQ09VTlQJCTB4RkZFMDAwMDAKLSNkZWZpbmUgSEVBRF9XUkFQX09ORQkJMHgwMDIwMDAwMAotI2RlZmluZSBIRUFEX0FERFIJCTB4MDAxRkZGRkMKLSNkZWZpbmUgUklOR19TVEFSVAkJMHgwOAotI2RlZmluZSBTVEFSVF9BRERSCQkweDB4RkZGRkYwMDAKLSNkZWZpbmUgUklOR19MRU4JCTB4MEMKLSNkZWZpbmUgUklOR19OUl9QQUdFUwkJMHgwMDFGRjAwMAotI2RlZmluZSBSSU5HX1JFUE9SVF9NQVNLCTB4MDAwMDAwMDYKLSNkZWZpbmUgUklOR19SRVBPUlRfNjRLCQkweDAwMDAwMDAyCi0jZGVmaW5lIFJJTkdfUkVQT1JUXzEyOEsJMHgwMDAwMDAwNAotI2RlZmluZSBSSU5HX05PX1JFUE9SVAkJMHgwMDAwMDAwMAotI2RlZmluZSBSSU5HX1ZBTElEX01BU0sJCTB4MDAwMDAwMDEKLSNkZWZpbmUgUklOR19WQUxJRAkJMHgwMDAwMDAwMQotI2RlZmluZSBSSU5HX0lOVkFMSUQJCTB4MDAwMDAwMDAKLQotLyogSW5zdHJ1Y3Rpb24gcGFyc2VyIGVycm9yIHJlZzoKLSAqLwotI2RlZmluZSBJUEVJUgkJCTB4MjA4OAotCi0vKiBTY3JhdGNoIHBhZCBkZWJ1ZyAwIHJlZzoKLSAqLwotI2RlZmluZSBTQ1BEMAkJCTB4MjA5YwotCi0vKiBFcnJvciBzdGF0dXMgcmVnOgotICovCi0jZGVmaW5lIEVTUgkJCTB4MjBiOAotCi0vKiBTZWNvbmRhcnkgRE1BIGZldGNoIGFkZHJlc3MgZGVidWcgcmVnOgotICovCi0jZGVmaW5lIERNQV9GQUREX1MJCTB4MjBkNAotCi0vKiBNZW1vcnkgSW50ZXJmYWNlIEFyYml0cmF0aW9uIFN0YXRlCi0gKi8KLSNkZWZpbmUgTUlfQVJCX1NUQVRFCQkweDIwZTQKLQotLyogQ2FjaGUgbW9kZSAwIHJlZy4KLSAqICAtIE1hbmlwdWxhdGluZyByZW5kZXIgY2FjaGUgYmVoYXZpb3VyIGlzIGNlbnRyYWwKLSAqICAgIHRvIHRoZSBjb25jZXB0IG9mIHpvbmUgcmVuZGVyaW5nLCB0dW5pbmcgdGhpcyByZWcgY2FuIGhlbHAgYXZvaWQKLSAqICAgIHVubmVjZXNzYXJ5IHJlbmRlciBjYWNoZSByZWFkcyBhbmQgZXZlbiB3cml0ZXMgKGZvciB6L3N0ZW5jaWwpCi0gKiAgICBhdCBiZWdpbm5pbmcgYW5kIGVuZCBvZiBzY2VuZS4KLSAqCi0gKiAtIFRvIGNoYW5nZSBhIGJpdCwgd3JpdGUgdG8gdGhpcyByZWcgd2l0aCBhIG1hc2sgYml0IHNldCBhbmQgdGhlCi0gKiBiaXQgb2YgaW50ZXJlc3QgZWl0aGVyIHNldCBvciBjbGVhcmVkLiAgRUc6IChCSVQ8PDE2KSB8IEJJVCB0byBzZXQuCi0gKi8KLSNkZWZpbmUgQ2FjaGVfTW9kZV8wCQkweDIxMjAKLSNkZWZpbmUgQ0FDSEVfTU9ERV8wCQkweDIxMjAKLSNkZWZpbmUgQ00wX01BU0tfU0hJRlQgICAgICAgICAgMTYKLSNkZWZpbmUgQ00wX0laX09QVF9ESVNBQkxFICAgICAgKDE8PDYpCi0jZGVmaW5lIENNMF9aUl9PUFRfRElTQUJMRSAgICAgICgxPDw1KQotI2RlZmluZSBDTTBfREVQVEhfRVZJQ1RfRElTQUJMRSAoMTw8NCkKLSNkZWZpbmUgQ00wX0NPTE9SX0VWSUNUX0RJU0FCTEUgKDE8PDMpCi0jZGVmaW5lIENNMF9ERVBUSF9XUklURV9ESVNBQkxFICgxPDwxKQotI2RlZmluZSBDTTBfUkNfT1BfRkxVU0hfRElTQUJMRSAoMTw8MCkKLQotCi0vKiBHcmFwaGljcyBmbHVzaCBjb250cm9sLiAgQSBDUFUgd3JpdGUgZmx1c2hlcyB0aGUgR1dCIG9mIGFsbCB3cml0ZXMuCi0gKiBUaGUgZGF0YSBpcyBkaXNjYXJkZWQuCi0gKi8KLSNkZWZpbmUgR0ZYX0ZMU0hfQ05UTAkJMHgyMTcwCi0KLS8qIEJpbm5lciBjb250cm9sLiAgRGVmaW5lcyB0aGUgbG9jYXRpb24gb2YgdGhlIGJpbiBwb2ludGVyIGxpc3Q6Ci0gKi8KLSNkZWZpbmUgQklOQ1RMCQkJMHgyNDIwCi0jZGVmaW5lIEJDX01BU0sJCQkoMSA8PCA5KQotCi0vKiBCaW5uZWQgc2NlbmUgaW5mby4KLSAqLwotI2RlZmluZSBCSU5TQ0VORQkJMHgyNDI4Ci0jZGVmaW5lIEJTX09QX0xPQUQJCSgxIDw8IDgpCi0jZGVmaW5lIEJTX01BU0sJCQkoMSA8PCAyMikKLQotLyogQmluIGNvbW1hbmQgcGFyc2VyIGRlYnVnIHJlZzoKLSAqLwotI2RlZmluZSBCQ1BECQkJMHgyNDgwCi0KLS8qIEJpbiBtZW1vcnkgY29udHJvbCBkZWJ1ZyByZWc6Ci0gKi8KLSNkZWZpbmUgQk1DRAkJCTB4MjQ4NAotCi0vKiBCaW4gZGF0YSBjYWNoZSBkZWJ1ZyByZWc6Ci0gKi8KLSNkZWZpbmUgQkRDRAkJCTB4MjQ4OAotCi0vKiBCaW5uZXIgcG9pbnRlciBjYWNoZSBkZWJ1ZyByZWc6Ci0gKi8KLSNkZWZpbmUgQlBDRAkJCTB4MjQ4YwotCi0vKiBCaW5uZXIgc2NyYXRjaCBwYWQgZGVidWcgcmVnOgotICovCi0jZGVmaW5lIEJJTlNLUEQJCQkweDI0ZjAKLQotLyogSFdCIHNjcmF0Y2ggcGFkIGRlYnVnIHJlZzoKLSAqLwotI2RlZmluZSBIV0JTS1BECQkJMHgyNGY0Ci0KLS8qIEJpbm5lciBtZW1vcnkgcG9vbCByZWc6Ci0gKi8KLSNkZWZpbmUgQk1QX0JVRkZFUgkJMHgyNDMwCi0jZGVmaW5lIEJNUF9QQUdFX1NJWkVfNEsJKDAgPDwgMTApCi0jZGVmaW5lIEJNUF9CVUZGRVJfU0laRV9TSElGVAkxCi0jZGVmaW5lIEJNUF9FTkFCTEUJCSgxIDw8IDApCi0KLS8qIEdldC9wdXQgbWVtb3J5IGZyb20gdGhlIGJpbm5lciBtZW1vcnkgcG9vbDoKLSAqLwotI2RlZmluZSBCTVBfR0VUCQkJMHgyNDM4Ci0jZGVmaW5lIEJNUF9QVVQJCQkweDI0NDAKLSNkZWZpbmUgQk1QX09GRlNFVF9TSElGVAk1Ci0KLS8qIDNEIHN0YXRlIHBhY2tldHM6Ci0gKi8KLSNkZWZpbmUgR0ZYX09QX1JBU1RFUl9SVUxFUyAgICAoKDB4Mzw8MjkpfCgweDc8PDI0KSkKLQotI2RlZmluZSBHRlhfT1BfU0NJU1NPUiAgICAgICAgICgoMHgzPDwyOSl8KDB4MWM8PDI0KXwoMHgxMDw8MTkpKQotI2RlZmluZSBTQ19VUERBVEVfU0NJU1NPUiAgICAgICAoMHgxPDwxKQotI2RlZmluZSBTQ19FTkFCTEVfTUFTSyAgICAgICAgICAoMHgxPDwwKQotI2RlZmluZSBTQ19FTkFCTEUgICAgICAgICAgICAgICAoMHgxPDwwKQotCi0jZGVmaW5lIEdGWF9PUF9MT0FEX0lORElSRUNUICAgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDc8PDE2KSkKLQotI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9JTkZPICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4MTw8MTYpfCgweDEpKQotI2RlZmluZSBTQ0lfWU1JTl9NQVNLICAgICAgKDB4ZmZmZjw8MTYpCi0jZGVmaW5lIFNDSV9YTUlOX01BU0sgICAgICAoMHhmZmZmPDwwKQotI2RlZmluZSBTQ0lfWU1BWF9NQVNLICAgICAgKDB4ZmZmZjw8MTYpCi0jZGVmaW5lIFNDSV9YTUFYX01BU0sgICAgICAoMHhmZmZmPDwwKQotCi0jZGVmaW5lIEdGWF9PUF9TQ0lTU09SX0VOQUJMRQkgKCgweDM8PDI5KXwoMHgxYzw8MjQpfCgweDEwPDwxOSkpCi0jZGVmaW5lIEdGWF9PUF9TQ0lTU09SX1JFQ1QJICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4MTw8MTYpfDEpCi0jZGVmaW5lIEdGWF9PUF9DT0xPUl9GQUNUT1IgICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4MTw8MTYpfDB4MCkKLSNkZWZpbmUgR0ZYX09QX1NUSVBQTEUgICAgICAgICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4Mzw8MTYpKQotI2RlZmluZSBHRlhfT1BfTUFQX0lORk8gICAgICAgICAgKCgweDM8PDI5KXwoMHgxZDw8MjQpfDB4NCkKLSNkZWZpbmUgR0ZYX09QX0RFU1RCVUZGRVJfVkFSUyAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4NTw8MTYpfDB4MCkKLSNkZWZpbmUgR0ZYX09QX0RSQVdSRUNUX0lORk8gICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4MDw8MTYpfCgweDMpKQotCi0jZGVmaW5lIEdGWF9PUF9EUkFXUkVDVF9JTkZPX0k5NjUgKCgweDc5MDA8PDE2KXwweDIpCi0KLSNkZWZpbmUgU1JDX0NPUFlfQkxUX0NNRCAgICAgICAgICAgICAgICAoKDI8PDI5KXwoMHg0Mzw8MjIpfDQpCi0jZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9DTUQJCSgoMjw8MjkpfCgweDUzPDwyMil8NikKLSNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX1dSSVRFX0FMUEhBCSgxPDwyMSkKLSNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX1dSSVRFX1JHQgkoMTw8MjApCi0jZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9TUkNfVElMRUQJKDE8PDE1KQotI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfRFNUX1RJTEVECSgxPDwxMSkKLQotI2RlZmluZSBNSV9CQVRDSF9CVUZGRVIJCSgoMHgzMDw8MjMpfDEpCi0jZGVmaW5lIE1JX0JBVENIX0JVRkZFUl9TVEFSVAkoMHgzMTw8MjMpCi0jZGVmaW5lIE1JX0JBVENIX0JVRkZFUl9FTkQJKDB4QTw8MjMpCi0jZGVmaW5lIE1JX0JBVENIX05PTl9TRUNVUkUJKDEpCi0jZGVmaW5lIE1JX0JBVENIX05PTl9TRUNVUkVfSTk2NSAoMTw8OCkKLQotI2RlZmluZSBNSV9XQUlUX0ZPUl9FVkVOVCAgICAgICAoKDB4Mzw8MjMpKQotI2RlZmluZSBNSV9XQUlUX0ZPUl9QTEFORV9CX0ZMSVAgICAgICAoMTw8NikKLSNkZWZpbmUgTUlfV0FJVF9GT1JfUExBTkVfQV9GTElQICAgICAgKDE8PDIpCi0jZGVmaW5lIE1JX1dBSVRfRk9SX1BMQU5FX0FfU0NBTkxJTkVTICgxPDwxKQotCi0jZGVmaW5lIE1JX0xPQURfU0NBTl9MSU5FU19JTkNMICAoKDB4MTI8PDIzKSkKLQotI2RlZmluZSBDTURfT1BfRElTUExBWUJVRkZFUl9JTkZPICgoMHgwPDwyOSl8KDB4MTQ8PDIzKXwyKQotI2RlZmluZSBBU1lOQ19GTElQICAgICAgICAgICAgICAgICgxPDwyMikKLSNkZWZpbmUgRElTUExBWV9QTEFORV9BICAgICAgICAgICAoMDw8MjApCi0jZGVmaW5lIERJU1BMQVlfUExBTkVfQiAgICAgICAgICAgKDE8PDIwKQotCi0vKiBEaXNwbGF5IHJlZ3MgKi8KLSNkZWZpbmUgRFNQQUNOVFIgICAgICAgICAgICAgICAgMHg3MDE4MAotI2RlZmluZSBEU1BCQ05UUiAgICAgICAgICAgICAgICAweDcxMTgwCi0jZGVmaW5lIERJU1BQTEFORV9TRUxfUElQRV9NQVNLICAgICAgICAgICAgICAgICAoMTw8MjQpCi0KLS8qIERlZmluZSB0aGUgcmVnaW9uIG9mIGludGVyZXN0IGZvciB0aGUgYmlubmVyOgotICovCi0jZGVmaW5lIENNRF9PUF9CSU5fQ09OVFJPTAkgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDg0PDwxNil8NCkKLQotI2RlZmluZSBDTURfT1BfREVTVEJVRkZFUl9JTkZPCSAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4OGU8PDE2KXwxKQotCi0jZGVmaW5lIENNRF9NSV9GTFVTSCAgICAgICAgICgweDA0IDw8IDIzKQotI2RlZmluZSBNSV9OT19XUklURV9GTFVTSCAgICAoMSA8PCAyKQotI2RlZmluZSBNSV9SRUFEX0ZMVVNIICAgICAgICAoMSA8PCAwKQotI2RlZmluZSBNSV9FWEVfRkxVU0ggICAgICAgICAoMSA8PCAxKQotI2RlZmluZSBNSV9FTkRfU0NFTkUgICAgICAgICAoMSA8PCA0KSAvKiBmbHVzaCBiaW5uZXIgYW5kIGluY3Igc2NlbmUgY291bnQgKi8KLSNkZWZpbmUgTUlfU0NFTkVfQ09VTlQgICAgICAgKDEgPDwgMykgLyoganVzdCBpbmNyZW1lbnQgc2NlbmUgY291bnQgKi8KLQotI2RlZmluZSBCUkVBRENSVU1CX0JJVFMgMzEKLSNkZWZpbmUgQlJFQURDUlVNQl9NQVNLICgoMVUgPDwgQlJFQURDUlVNQl9CSVRTKSAtIDEpCi0KLSNkZWZpbmUgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSAgKCgodm9sYXRpbGUgdTMyKikoZGV2X3ByaXYtPmh3X3N0YXR1c19wYWdlKSlbNV0pCi0jZGVmaW5lIFJFQURfSFdTUChkZXZfcHJpdiwgcmVnKSAgKCgodm9sYXRpbGUgdTMyKikoZGV2X3ByaXYtPmh3X3N0YXR1c19wYWdlKSlbcmVnXSkKLQotI2RlZmluZSBCTENfUFdNX0NUTAkJMHg2MTI1NAotI2RlZmluZSBCQUNLTElHSFRfTU9EVUxBVElPTl9GUkVRX1NISUZUCQkoMTcpCi0KLSNkZWZpbmUgQkxDX1BXTV9DVEwyCQkweDYxMjUwCi0vKioKLSAqIFRoaXMgaXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgMTUgYml0cyBvZiB0aGUgbnVtYmVyIG9mIGJhY2tsaWdodCBjeWNsZXMgaW4gYQotICogY29tcGxldGUgY3ljbGUgb2YgdGhlIG1vZHVsYXRlZCBiYWNrbGlnaHQgY29udHJvbC4KLSAqCi0gKiBUaGUgYWN0dWFsIHZhbHVlIGlzIHRoaXMgZmllbGQgbXVsdGlwbGllZCBieSB0d28uCi0gKi8KLSNkZWZpbmUgQkFDS0xJR0hUX01PRFVMQVRJT05fRlJFUV9NQVNLCQkoMHg3ZmZmIDw8IDE3KQotI2RlZmluZSBCTE1fTEVHQUNZX01PREUJCQkJKDEgPDwgMTYpCi0vKioKLSAqIFRoaXMgaXMgdGhlIG51bWJlciBvZiBjeWNsZXMgb3V0IG9mIHRoZSBiYWNrbGlnaHQgbW9kdWxhdGlvbiBjeWNsZSBmb3Igd2hpY2gKLSAqIHRoZSBiYWNrbGlnaHQgaXMgb24uCi0gKgotICogVGhpcyBmaWVsZCBtdXN0IGJlIG5vIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGN5Y2xlcyBpbiB0aGUgY29tcGxldGUKLSAqIGJhY2tsaWdodCBtb2R1bGF0aW9uIGN5Y2xlLgotICovCi0jZGVmaW5lIEJBQ0tMSUdIVF9EVVRZX0NZQ0xFX1NISUZUCQkoMCkKLSNkZWZpbmUgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSwkJKDB4ZmZmZikKLQotI2RlZmluZSBJOTE1X0dDRkdDCQkJMHhmMAotI2RlZmluZSBJOTE1X0xPV19GUkVRVUVOQ1lfRU5BQkxFCQkoMSA8PCA3KQotI2RlZmluZSBJOTE1X0RJU1BMQVlfQ0xPQ0tfMTkwXzIwMF9NSFoJCSgwIDw8IDQpCi0jZGVmaW5lIEk5MTVfRElTUExBWV9DTE9DS18zMzNfTUhaCQkoNCA8PCA0KQotI2RlZmluZSBJOTE1X0RJU1BMQVlfQ0xPQ0tfTUFTSwkJCSg3IDw8IDQpCi0KLSNkZWZpbmUgSTg1NV9IUExMQ0MJCQkweGMwCi0jZGVmaW5lIEk4NTVfQ0xPQ0tfQ09OVFJPTF9NQVNLCQkJKDMgPDwgMCkKLSNkZWZpbmUgSTg1NV9DTE9DS18xMzNfMjAwCQkJKDAgPDwgMCkKLSNkZWZpbmUgSTg1NV9DTE9DS18xMDBfMjAwCQkJKDEgPDwgMCkKLSNkZWZpbmUgSTg1NV9DTE9DS18xMDBfMTMzCQkJKDIgPDwgMCkKLSNkZWZpbmUgSTg1NV9DTE9DS18xNjZfMjUwCQkJKDMgPDwgMCkKLQotLyogcDMxNywgMzE5Ci0gKi8KLSNkZWZpbmUgVkNMSzJfVkNPX00gICAgICAgIDB4NjAwOCAvKiB0cmVhdCBhcyAxNiBiaXQ/IChpbmNsdWRlcyBtc2JzKSAqLwotI2RlZmluZSBWQ0xLMl9WQ09fTiAgICAgICAgMHg2MDBhCi0jZGVmaW5lIFZDTEsyX1ZDT19ESVZfU0VMICAweDYwMTIKLQotI2RlZmluZSBWQ0xLX0RJVklTT1JfVkdBMCAgIDB4NjAwMAotI2RlZmluZSBWQ0xLX0RJVklTT1JfVkdBMSAgIDB4NjAwNAotI2RlZmluZSBWQ0xLX1BPU1RfRElWCSAgICAweDYwMTAKLS8qKiBTZWxlY3RzIGEgcG9zdCBkaXZpc29yIG9mIDQgaW5zdGVhZCBvZiAyLiAqLwotIyBkZWZpbmUgVkdBMV9QRF9QMl9ESVZfNAkoMSA8PCAxNSkKLS8qKiBPdmVycmlkZXMgdGhlIHAyIHBvc3QgZGl2aXNvciBmaWVsZCAqLwotIyBkZWZpbmUgVkdBMV9QRF9QMV9ESVZfMgkoMSA8PCAxMykKLSMgZGVmaW5lIFZHQTFfUERfUDFfU0hJRlQJOAotLyoqIFAxIHZhbHVlIGlzIDIgZ3JlYXRlciB0aGFuIHRoaXMgZmllbGQgKi8KLSMgZGVmaW5lIFZHQTFfUERfUDFfTUFTSwkoMHgxZiA8PCA4KQotLyoqIFNlbGVjdHMgYSBwb3N0IGRpdmlzb3Igb2YgNCBpbnN0ZWFkIG9mIDIuICovCi0jIGRlZmluZSBWR0EwX1BEX1AyX0RJVl80CSgxIDw8IDcpCi0vKiogT3ZlcnJpZGVzIHRoZSBwMiBwb3N0IGRpdmlzb3IgZmllbGQgKi8KLSMgZGVmaW5lIFZHQTBfUERfUDFfRElWXzIJKDEgPDwgNSkKLSMgZGVmaW5lIFZHQTBfUERfUDFfU0hJRlQJMAotLyoqIFAxIHZhbHVlIGlzIDIgZ3JlYXRlciB0aGFuIHRoaXMgZmllbGQgKi8KLSMgZGVmaW5lIFZHQTBfUERfUDFfTUFTSwkoMHgxZiA8PCAwKQotCi0vKiBQQ0kgRCBzdGF0ZSBjb250cm9sIHJlZ2lzdGVyICovCi0jZGVmaW5lIERfU1RBVEUJCTB4NjEwNAotI2RlZmluZSBEU1BDTEtfR0FURV9ECTB4NjIwMAotCi0vKiBJODMwIENSVEMgcmVnaXN0ZXJzICovCi0jZGVmaW5lIEhUT1RBTF9BCTB4NjAwMDAKLSNkZWZpbmUgSEJMQU5LX0EJMHg2MDAwNAotI2RlZmluZSBIU1lOQ19BCQkweDYwMDA4Ci0jZGVmaW5lIFZUT1RBTF9BCTB4NjAwMGMKLSNkZWZpbmUgVkJMQU5LX0EJMHg2MDAxMAotI2RlZmluZSBWU1lOQ19BCQkweDYwMDE0Ci0jZGVmaW5lIFBJUEVBU1JDCTB4NjAwMWMKLSNkZWZpbmUgQkNMUlBBVF9BCTB4NjAwMjAKLSNkZWZpbmUgVlNZTkNTSElGVF9BCTB4NjAwMjgKLQotI2RlZmluZSBIVE9UQUxfQgkweDYxMDAwCi0jZGVmaW5lIEhCTEFOS19CCTB4NjEwMDQKLSNkZWZpbmUgSFNZTkNfQgkJMHg2MTAwOAotI2RlZmluZSBWVE9UQUxfQgkweDYxMDBjCi0jZGVmaW5lIFZCTEFOS19CCTB4NjEwMTAKLSNkZWZpbmUgVlNZTkNfQgkJMHg2MTAxNAotI2RlZmluZSBQSVBFQlNSQwkweDYxMDFjCi0jZGVmaW5lIEJDTFJQQVRfQgkweDYxMDIwCi0jZGVmaW5lIFZTWU5DU0hJRlRfQgkweDYxMDI4Ci0KLSNkZWZpbmUgUFBfU1RBVFVTCTB4NjEyMDAKLSMgZGVmaW5lIFBQX09OCQkJCQkoMSA8PCAzMSkKLS8qKgotICogSW5kaWNhdGVzIHRoYXQgYWxsIGRlcGVuZGVuY2llcyBvZiB0aGUgcGFuZWwgYXJlIG9uOgotICoKLSAqIC0gUExMIGVuYWJsZWQKLSAqIC0gcGlwZSBlbmFibGVkCi0gKiAtIExWRFMvRFZPQi9EVk9DIG9uCi0gKi8KLSMgZGVmaW5lIFBQX1JFQURZCQkJCSgxIDw8IDMwKQotIyBkZWZpbmUgUFBfU0VRVUVOQ0VfTk9ORQkJCSgwIDw8IDI4KQotIyBkZWZpbmUgUFBfU0VRVUVOQ0VfT04JCQkJKDEgPDwgMjgpCi0jIGRlZmluZSBQUF9TRVFVRU5DRV9PRkYJCQkoMiA8PCAyOCkKLSMgZGVmaW5lIFBQX1NFUVVFTkNFX01BU0sJCQkweDMwMDAwMDAwCi0jZGVmaW5lIFBQX0NPTlRST0wJMHg2MTIwNAotIyBkZWZpbmUgUE9XRVJfVEFSR0VUX09OCQkJKDEgPDwgMCkKLQotI2RlZmluZSBMVkRTUFBfT04gICAgICAgMHg2MTIwOAotI2RlZmluZSBMVkRTUFBfT0ZGICAgICAgMHg2MTIwYwotI2RlZmluZSBQUF9DWUNMRSAgICAgICAgMHg2MTIxMAotCi0jZGVmaW5lIFBGSVRfQ09OVFJPTAkweDYxMjMwCi0jIGRlZmluZSBQRklUX0VOQUJMRQkJCQkoMSA8PCAzMSkKLSMgZGVmaW5lIFBGSVRfUElQRV9NQVNLCQkJCSgzIDw8IDI5KQotIyBkZWZpbmUgUEZJVF9QSVBFX1NISUZUCQkJMjkKLSMgZGVmaW5lIFZFUlRfSU5URVJQX0RJU0FCTEUJCQkoMCA8PCAxMCkKLSMgZGVmaW5lIFZFUlRfSU5URVJQX0JJTElORUFSCQkJKDEgPDwgMTApCi0jIGRlZmluZSBWRVJUX0lOVEVSUF9NQVNLCQkJKDMgPDwgMTApCi0jIGRlZmluZSBWRVJUX0FVVE9fU0NBTEUJCQkoMSA8PCA5KQotIyBkZWZpbmUgSE9SSVpfSU5URVJQX0RJU0FCTEUJCQkoMCA8PCA2KQotIyBkZWZpbmUgSE9SSVpfSU5URVJQX0JJTElORUFSCQkJKDEgPDwgNikKLSMgZGVmaW5lIEhPUklaX0lOVEVSUF9NQVNLCQkJKDMgPDwgNikKLSMgZGVmaW5lIEhPUklaX0FVVE9fU0NBTEUJCQkoMSA8PCA1KQotIyBkZWZpbmUgUEFORUxfOFRPNl9ESVRIRVJfRU5BQkxFCQkoMSA8PCAzKQotCi0jZGVmaW5lIFBGSVRfUEdNX1JBVElPUwkweDYxMjM0Ci0jIGRlZmluZSBQRklUX1ZFUlRfU0NBTEVfTUFTSwkJCTB4ZmZmMDAwMDAKLSMgZGVmaW5lIFBGSVRfSE9SSVpfU0NBTEVfTUFTSwkJCTB4MDAwMGZmZjAKLQotI2RlZmluZSBQRklUX0FVVE9fUkFUSU9TCTB4NjEyMzgKLQotCi0jZGVmaW5lIERQTExfQQkJMHgwNjAxNAotI2RlZmluZSBEUExMX0IJCTB4MDYwMTgKLSMgZGVmaW5lIERQTExfVkNPX0VOQUJMRQkJCSgxIDw8IDMxKQotIyBkZWZpbmUgRFBMTF9EVk9fSElHSF9TUEVFRAkJCSgxIDw8IDMwKQotIyBkZWZpbmUgRFBMTF9TWU5DTE9DS19FTkFCTEUJCQkoMSA8PCAyOSkKLSMgZGVmaW5lIERQTExfVkdBX01PREVfRElTCQkJKDEgPDwgMjgpCi0jIGRlZmluZSBEUExMQl9NT0RFX0RBQ19TRVJJQUwJCQkoMSA8PCAyNikgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTEJfTU9ERV9MVkRTCQkJKDIgPDwgMjYpIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExfTU9ERV9NQVNLCQkJCSgzIDw8IDI2KQotIyBkZWZpbmUgRFBMTF9EQUNfU0VSSUFMX1AyX0NMT0NLX0RJVl8xMAkoMCA8PCAyNCkgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTF9EQUNfU0VSSUFMX1AyX0NMT0NLX0RJVl81CQkoMSA8PCAyNCkgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTEJfTFZEU19QMl9DTE9DS19ESVZfMTQJCSgwIDw8IDI0KSAvKiBpOTE1ICovCi0jIGRlZmluZSBEUExMQl9MVkRTX1AyX0NMT0NLX0RJVl83CQkoMSA8PCAyNCkgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTF9QMl9DTE9DS19ESVZfTUFTSwkJCTB4MDMwMDAwMDAgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLCQkweDAwZmYwMDAwIC8qIGk5MTUgKi8KLS8qKgotICogIFRoZSBpODMwIGdlbmVyYXRpb24sIGluIERBQy9zZXJpYWwgbW9kZSwgZGVmaW5lcyBwMSBhcyB0d28gcGx1cyB0aGlzCi0gKiBiaXRmaWVsZCwgb3IganVzdCAyIGlmIFBMTF9QMV9ESVZJREVfQllfVFdPIGlzIHNldC4KLSAqLwotIyBkZWZpbmUgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLX0k4MzAJMHgwMDFmMDAwMAotLyoqCi0gKiBUaGUgaTgzMCBnZW5lcmF0aW9uLCBpbiBMVkRTIG1vZGUsIGRlZmluZXMgUDEgYXMgdGhlIGJpdCBudW1iZXIgc2V0IHdpdGhpbgotICogdGhpcyBmaWVsZCAob25seSBvbmUgYml0IG1heSBiZSBzZXQpLgotICovCi0jIGRlZmluZSBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX01BU0tfSTgzMF9MVkRTCTB4MDAzZjAwMDAKLSMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfU0hJRlQJCTE2Ci0jIGRlZmluZSBQTExfUDJfRElWSURFX0JZXzQJCQkoMSA8PCAyMykgLyogaTgzMCwgcmVxdWlyZWQgaW4gRFZPIG5vbi1nYW5nICovCi0jIGRlZmluZSBQTExfUDFfRElWSURFX0JZX1RXTwkJCSgxIDw8IDIxKSAvKiBpODMwICovCi0jIGRlZmluZSBQTExfUkVGX0lOUFVUX0RSRUZDTEsJCQkoMCA8PCAxMykKLSMgZGVmaW5lIFBMTF9SRUZfSU5QVVRfVFZDTEtJTkEJCQkoMSA8PCAxMykgLyogaTgzMCAqLwotIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9UVkNMS0lOQkMJCSgyIDw8IDEzKSAvKiBTRFZPIFRWQ0xLSU4gKi8KLSMgZGVmaW5lIFBMTEJfUkVGX0lOUFVUX1NQUkVBRFNQRUNUUlVNSU4JKDMgPDwgMTMpCi0jIGRlZmluZSBQTExfUkVGX0lOUFVUX01BU0sJCQkoMyA8PCAxMykKLSMgZGVmaW5lIFBMTF9MT0FEX1BVTFNFX1BIQVNFX1NISUZUCQk5Ci0vKgotICogUGFyYWxsZWwgdG8gU2VyaWFsIExvYWQgUHVsc2UgcGhhc2Ugc2VsZWN0aW9uLgotICogU2VsZWN0cyB0aGUgcGhhc2UgZm9yIHRoZSAxMFggRFBMTCBjbG9jayBmb3IgdGhlIFBDSWUKLSAqIGRpZ2l0YWwgZGlzcGxheSBwb3J0LiBUaGUgcmFuZ2UgaXMgNCB0byAxMzsgMTAgb3IgbW9yZQotICogaXMganVzdCBhIGZsaXAgZGVsYXkuIFRoZSBkZWZhdWx0IGlzIDYKLSAqLwotIyBkZWZpbmUgUExMX0xPQURfUFVMU0VfUEhBU0VfTUFTSwkJKDB4ZiA8PCBQTExfTE9BRF9QVUxTRV9QSEFTRV9TSElGVCkKLSMgZGVmaW5lIERJU1BMQVlfUkFURV9TRUxFQ1RfRlBBMQkJKDEgPDwgOCkKLQotLyoqCi0gKiBTRFZPIG11bHRpcGxpZXIgZm9yIDk0NUcvR00uIE5vdCB1c2VkIG9uIDk2NS4KLSAqCi0gKiBcc2EgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLCi0gKi8KLSMgZGVmaW5lIFNEVk9fTVVMVElQTElFUl9NQVNLCQkJMHgwMDAwMDBmZgotIyBkZWZpbmUgU0RWT19NVUxUSVBMSUVSX1NISUZUX0hJUkVTCQk0Ci0jIGRlZmluZSBTRFZPX01VTFRJUExJRVJfU0hJRlRfVkdBCQkwCi0KLS8qKiBAZGVmZ3JvdXAgRFBMTF9NRAotICogQHsKLSAqLwotLyoqIFBpcGUgQSBTRFZPL1VESSBjbG9jayBtdWx0aXBsaWVyL2RpdmlkZXIgcmVnaXN0ZXIgZm9yIEc5NjUuICovCi0jZGVmaW5lIERQTExfQV9NRAkJMHgwNjAxYwotLyoqIFBpcGUgQiBTRFZPL1VESSBjbG9jayBtdWx0aXBsaWVyL2RpdmlkZXIgcmVnaXN0ZXIgZm9yIEc5NjUuICovCi0jZGVmaW5lIERQTExfQl9NRAkJMHgwNjAyMAotLyoqCi0gKiBVREkgcGl4ZWwgZGl2aWRlciwgY29udHJvbGxpbmcgaG93IG1hbnkgcGl4ZWxzIGFyZSBzdHVmZmVkIGludG8gYSBwYWNrZXQuCi0gKgotICogVmFsdWUgaXMgcGl4ZWxzIG1pbnVzIDEuICBNdXN0IGJlIHNldCB0byAxIHBpeGVsIGZvciBTRFZPLgotICovCi0jIGRlZmluZSBEUExMX01EX1VESV9ESVZJREVSX01BU0sJCTB4M2YwMDAwMDAKLSMgZGVmaW5lIERQTExfTURfVURJX0RJVklERVJfU0hJRlQJCTI0Ci0vKiogVURJIHBpeGVsIGRpdmlkZXIgZm9yIFZHQSwgc2FtZSBhcyBEUExMX01EX1VESV9ESVZJREVSX01BU0suICovCi0jIGRlZmluZSBEUExMX01EX1ZHQV9VRElfRElWSURFUl9NQVNLCQkweDAwM2YwMDAwCi0jIGRlZmluZSBEUExMX01EX1ZHQV9VRElfRElWSURFUl9TSElGVAkJMTYKLS8qKgotICogU0RWTy9VREkgcGl4ZWwgbXVsdGlwbGllci4KLSAqCi0gKiBTRFZPIHJlcXVpcmVzIHRoYXQgdGhlIGJ1cyBjbG9jayByYXRlIGJlIGJldHdlZW4gMSBhbmQgMiBHaHosIGFuZCB0aGUgYnVzCi0gKiBjbG9jayByYXRlIGlzIDEwIHRpbWVzIHRoZSBEUExMIGNsb2NrLiAgQXQgbG93IHJlc29sdXRpb24vcmVmcmVzaCByYXRlCi0gKiBtb2RlcywgdGhlIGJ1cyByYXRlIHdvdWxkIGJlIGJlbG93IHRoZSBsaW1pdHMsIHNvIFNEVk8gYWxsb3dzIGZvciBzdHVmZmluZwotICogZHVtbXkgYnl0ZXMgaW4gdGhlIGRhdGFzdHJlYW0gYXQgYW4gaW5jcmVhc2VkIGNsb2NrIHJhdGUsIHdpdGggYm90aCBzaWRlcyBvZgotICogdGhlIGxpbmsga25vd2luZyBob3cgbWFueSBieXRlcyBhcmUgZmlsbC4KLSAqCi0gKiBTbywgZm9yIGEgbW9kZSB3aXRoIGEgZG90Y2xvY2sgb2YgNjVNaHosIHdlIHdvdWxkIHdhbnQgdG8gZG91YmxlIHRoZSBjbG9jawotICogcmF0ZSB0byAxMzBNaHogdG8gZ2V0IGEgYnVzIHJhdGUgb2YgMS4zMEdoei4gIFRoZSBEUExMIGNsb2NrIHJhdGUgd291bGQgYmUKLSAqIHNldCB0byAxMzBNaHosIGFuZCB0aGUgU0RWTyBtdWx0aXBsaWVyIHNldCB0byAyeCBpbiB0aGlzIHJlZ2lzdGVyIGFuZAotICogdGhyb3VnaCBhbiBTRFZPIGNvbW1hbmQuCi0gKgotICogVGhpcyByZWdpc3RlciBmaWVsZCBoYXMgdmFsdWVzIG9mIG11bHRpcGxpY2F0aW9uIGZhY3RvciBtaW51cyAxLCB3aXRoCi0gKiBhIG1heGltdW0gbXVsdGlwbGllciBvZiA1IGZvciBTRFZPLgotICovCi0jIGRlZmluZSBEUExMX01EX1VESV9NVUxUSVBMSUVSX01BU0sJCTB4MDAwMDNmMDAKLSMgZGVmaW5lIERQTExfTURfVURJX01VTFRJUExJRVJfU0hJRlQJCTgKLS8qKiBTRFZPL1VESSBwaXhlbCBtdWx0aXBsaWVyIGZvciBWR0EsIHNhbWUgYXMgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLLgotICogVGhpcyBiZXN0IGJlIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZSAoMykgb3IgdGhlIENSVCB3b24ndCB3b3JrLiBObywKLSAqIEkgZG9uJ3QgZW50aXJlbHkgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZG9lcy4uLgotICovCi0jIGRlZmluZSBEUExMX01EX1ZHQV9VRElfTVVMVElQTElFUl9NQVNLCTB4MDAwMDAwM2YKLSMgZGVmaW5lIERQTExfTURfVkdBX1VESV9NVUxUSVBMSUVSX1NISUZUCTAKLS8qKiBAfSAqLwotCi0jZGVmaW5lIERQTExfVEVTVAkJMHg2MDZjCi0jIGRlZmluZSBEUExMQl9URVNUX1NEVk9fRElWXzEJCQkoMCA8PCAyMikKLSMgZGVmaW5lIERQTExCX1RFU1RfU0RWT19ESVZfMgkJCSgxIDw8IDIyKQotIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl80CQkJKDIgPDwgMjIpCi0jIGRlZmluZSBEUExMQl9URVNUX1NEVk9fRElWX01BU0sJCSgzIDw8IDIyKQotIyBkZWZpbmUgRFBMTEJfVEVTVF9OX0JZUEFTUwkJCSgxIDw8IDE5KQotIyBkZWZpbmUgRFBMTEJfVEVTVF9NX0JZUEFTUwkJCSgxIDw8IDE4KQotIyBkZWZpbmUgRFBMTEJfSU5QVVRfQlVGRkVSX0VOQUJMRQkJKDEgPDwgMTYpCi0jIGRlZmluZSBEUExMQV9URVNUX05fQllQQVNTCQkJKDEgPDwgMykKLSMgZGVmaW5lIERQTExBX1RFU1RfTV9CWVBBU1MJCQkoMSA8PCAyKQotIyBkZWZpbmUgRFBMTEFfSU5QVVRfQlVGRkVSX0VOQUJMRQkJKDEgPDwgMCkKLQotI2RlZmluZSBBRFBBCQkJMHg2MTEwMAotI2RlZmluZSBBRFBBX0RBQ19FTkFCTEUJCSgxPDwzMSkKLSNkZWZpbmUgQURQQV9EQUNfRElTQUJMRQkwCi0jZGVmaW5lIEFEUEFfUElQRV9TRUxFQ1RfTUFTSwkoMTw8MzApCi0jZGVmaW5lIEFEUEFfUElQRV9BX1NFTEVDVAkwCi0jZGVmaW5lIEFEUEFfUElQRV9CX1NFTEVDVAkoMTw8MzApCi0jZGVmaW5lIEFEUEFfVVNFX1ZHQV9IVlBPTEFSSVRZICgxPDwxNSkKLSNkZWZpbmUgQURQQV9TRVRTX0hWUE9MQVJJVFkJMAotI2RlZmluZSBBRFBBX1ZTWU5DX0NOVExfRElTQUJMRSAoMTw8MTEpCi0jZGVmaW5lIEFEUEFfVlNZTkNfQ05UTF9FTkFCTEUJMAotI2RlZmluZSBBRFBBX0hTWU5DX0NOVExfRElTQUJMRSAoMTw8MTApCi0jZGVmaW5lIEFEUEFfSFNZTkNfQ05UTF9FTkFCTEUJMAotI2RlZmluZSBBRFBBX1ZTWU5DX0FDVElWRV9ISUdICSgxPDw0KQotI2RlZmluZSBBRFBBX1ZTWU5DX0FDVElWRV9MT1cJMAotI2RlZmluZSBBRFBBX0hTWU5DX0FDVElWRV9ISUdICSgxPDwzKQotI2RlZmluZSBBRFBBX0hTWU5DX0FDVElWRV9MT1cJMAotCi0jZGVmaW5lIEZQQTAJCTB4MDYwNDAKLSNkZWZpbmUgRlBBMQkJMHgwNjA0NAotI2RlZmluZSBGUEIwCQkweDA2MDQ4Ci0jZGVmaW5lIEZQQjEJCTB4MDYwNGMKLSMgZGVmaW5lIEZQX05fRElWX01BU0sJCQkJMHgwMDNmMDAwMAotIyBkZWZpbmUgRlBfTl9ESVZfU0hJRlQJCQkJMTYKLSMgZGVmaW5lIEZQX00xX0RJVl9NQVNLCQkJCTB4MDAwMDNmMDAKLSMgZGVmaW5lIEZQX00xX0RJVl9TSElGVAkJCTgKLSMgZGVmaW5lIEZQX00yX0RJVl9NQVNLCQkJCTB4MDAwMDAwM2YKLSMgZGVmaW5lIEZQX00yX0RJVl9TSElGVAkJCTAKLQotCi0jZGVmaW5lIFBPUlRfSE9UUExVR19FTgkJMHg2MTExMAotIyBkZWZpbmUgU0RWT0JfSE9UUExVR19JTlRfRU4JCQkoMSA8PCAyNikKLSMgZGVmaW5lIFNEVk9DX0hPVFBMVUdfSU5UX0VOCQkJKDEgPDwgMjUpCi0jIGRlZmluZSBUVl9IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDE4KQotIyBkZWZpbmUgQ1JUX0hPVFBMVUdfSU5UX0VOCQkJKDEgPDwgOSkKLSMgZGVmaW5lIENSVF9IT1RQTFVHX0ZPUkNFX0RFVEVDVAkJKDEgPDwgMykKLQotI2RlZmluZSBQT1JUX0hPVFBMVUdfU1RBVAkweDYxMTE0Ci0jIGRlZmluZSBDUlRfSE9UUExVR19JTlRfU1RBVFVTCQkJKDEgPDwgMTEpCi0jIGRlZmluZSBUVl9IT1RQTFVHX0lOVF9TVEFUVVMJCQkoMSA8PCAxMCkKLSMgZGVmaW5lIENSVF9IT1RQTFVHX01PTklUT1JfTUFTSwkJKDMgPDwgOCkKLSMgZGVmaW5lIENSVF9IT1RQTFVHX01PTklUT1JfQ09MT1IJCSgzIDw8IDgpCi0jIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX01PTk8JCSgyIDw8IDgpCi0jIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX05PTkUJCSgwIDw8IDgpCi0jIGRlZmluZSBTRFZPQ19IT1RQTFVHX0lOVF9TVEFUVVMJCSgxIDw8IDcpCi0jIGRlZmluZSBTRFZPQl9IT1RQTFVHX0lOVF9TVEFUVVMJCSgxIDw8IDYpCi0KLSNkZWZpbmUgU0RWT0IJCQkweDYxMTQwCi0jZGVmaW5lIFNEVk9DCQkJMHg2MTE2MAotI2RlZmluZSBTRFZPX0VOQUJMRQkJCQkoMSA8PCAzMSkKLSNkZWZpbmUgU0RWT19QSVBFX0JfU0VMRUNUCQkJKDEgPDwgMzApCi0jZGVmaW5lIFNEVk9fU1RBTExfU0VMRUNUCQkJKDEgPDwgMjkpCi0jZGVmaW5lIFNEVk9fSU5URVJSVVBUX0VOQUJMRQkJCSgxIDw8IDI2KQotLyoqCi0gKiA5MTVHL0dNIFNEVk8gcGl4ZWwgbXVsdGlwbGllci4KLSAqCi0gKiBQcm9ncmFtbWVkIHZhbHVlIGlzIG11bHRpcGxpZXIgLSAxLCB1cCB0byA1eC4KLSAqCi0gKiBcc2EgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLCi0gKi8KLSNkZWZpbmUgU0RWT19QT1JUX01VTFRJUExZX01BU0sJCQkoNyA8PCAyMykKLSNkZWZpbmUgU0RWT19QT1JUX01VTFRJUExZX1NISUZUCQkyMwotI2RlZmluZSBTRFZPX1BIQVNFX1NFTEVDVF9NQVNLCQkJKDE1IDw8IDE5KQotI2RlZmluZSBTRFZPX1BIQVNFX1NFTEVDVF9ERUZBVUxUCQkoNiA8PCAxOSkKLSNkZWZpbmUgU0RWT19DTE9DS19PVVRQVVRfSU5WRVJUCQkoMSA8PCAxOCkKLSNkZWZpbmUgU0RWT0NfR0FOR19NT0RFCQkJCSgxIDw8IDE2KQotI2RlZmluZSBTRFZPX0JPUkRFUl9FTkFCTEUJCQkoMSA8PCA3KQotI2RlZmluZSBTRFZPQl9QQ0lFX0NPTkNVUlJFTkNZCQkJKDEgPDwgMykKLSNkZWZpbmUgU0RWT19ERVRFQ1RFRAkJCQkoMSA8PCAyKQotLyogQml0cyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiB3cml0aW5nICovCi0jZGVmaW5lIFNEVk9CX1BSRVNFUlZFX01BU0sJCQkoKDEgPDwgMTcpIHwgKDEgPDwgMTYpIHwgKDEgPDwgMTQpKQotI2RlZmluZSBTRFZPQ19QUkVTRVJWRV9NQVNLCQkJKDEgPDwgMTcpCi0KLS8qKiBAZGVmZ3JvdXAgTFZEUwotICogQHsKLSAqLwotLyoqCi0gKiBUaGlzIHJlZ2lzdGVyIGNvbnRyb2xzIHRoZSBMVkRTIG91dHB1dCBlbmFibGUsIHBpcGUgc2VsZWN0aW9uLCBhbmQgZGF0YQotICogZm9ybWF0IHNlbGVjdGlvbi4KLSAqCi0gKiBBbGwgb2YgdGhlIGNsb2NrL2RhdGEgcGFpcnMgYXJlIGZvcmNlIHBvd2VyZWQgZG93biBieSBwb3dlciBzZXF1ZW5jaW5nLgotICovCi0jZGVmaW5lIExWRFMJCQkweDYxMTgwCi0vKioKLSAqIEVuYWJsZXMgdGhlIExWRFMgcG9ydC4gIFRoaXMgYml0IG11c3QgYmUgc2V0IGJlZm9yZSBEUExMcyBhcmUgZW5hYmxlZCwgYXMKLSAqIHRoZSBEUExMIHNlbWFudGljcyBjaGFuZ2Ugd2hlbiB0aGUgTFZEUyBpcyBhc3NpZ25lZCB0byB0aGF0IHBpcGUuCi0gKi8KLSMgZGVmaW5lIExWRFNfUE9SVF9FTgkJCSgxIDw8IDMxKQotLyoqIFNlbGVjdHMgcGlwZSBCIGZvciBMVkRTIGRhdGEuICBNdXN0IGJlIHNldCBvbiBwcmUtOTY1LiAqLwotIyBkZWZpbmUgTFZEU19QSVBFQl9TRUxFQ1QJCSgxIDw8IDMwKQotCi0vKioKLSAqIEVuYWJsZXMgdGhlIEEwLUEyIGRhdGEgcGFpcnMgYW5kIENMS0EsIGNvbnRhaW5pbmcgMTggYml0cyBvZiBjb2xvciBkYXRhIHBlcgotICogcGl4ZWwuCi0gKi8KLSMgZGVmaW5lIExWRFNfQTBBMl9DTEtBX1BPV0VSX01BU0sJKDMgPDwgOCkKLSMgZGVmaW5lIExWRFNfQTBBMl9DTEtBX1BPV0VSX0RPV04JKDAgPDwgOCkKLSMgZGVmaW5lIExWRFNfQTBBMl9DTEtBX1BPV0VSX1VQCSgzIDw8IDgpCi0vKioKLSAqIENvbnRyb2xzIHRoZSBBMyBkYXRhIHBhaXIsIHdoaWNoIGNvbnRhaW5zIHRoZSBhZGRpdGlvbmFsIExTQnMgZm9yIDI0IGJpdAotICogbW9kZS4gIE9ubHkgZW5hYmxlZCBpZiBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9VUCBhbHNvIGluZGljYXRlcyBpdCBzaG91bGQgYmUKLSAqIG9uLgotICovCi0jIGRlZmluZSBMVkRTX0EzX1BPV0VSX01BU0sJCSgzIDw8IDYpCi0jIGRlZmluZSBMVkRTX0EzX1BPV0VSX0RPV04JCSgwIDw8IDYpCi0jIGRlZmluZSBMVkRTX0EzX1BPV0VSX1VQCQkoMyA8PCA2KQotLyoqCi0gKiBDb250cm9scyB0aGUgQ0xLQiBwYWlyLiAgVGhpcyBzaG91bGQgb25seSBiZSBzZXQgd2hlbiBMVkRTX0IwQjNfUE9XRVJfVVAKLSAqIGlzIHNldC4KLSAqLwotIyBkZWZpbmUgTFZEU19DTEtCX1BPV0VSX01BU0sJCSgzIDw8IDQpCi0jIGRlZmluZSBMVkRTX0NMS0JfUE9XRVJfRE9XTgkJKDAgPDwgNCkKLSMgZGVmaW5lIExWRFNfQ0xLQl9QT1dFUl9VUAkJKDMgPDwgNCkKLQotLyoqCi0gKiBDb250cm9scyB0aGUgQjAtQjMgZGF0YSBwYWlycy4gIFRoaXMgbXVzdCBiZSBzZXQgdG8gbWF0Y2ggdGhlIERQTEwgcDIKLSAqIHNldHRpbmcgZm9yIHdoZXRoZXIgd2UgYXJlIGluIGR1YWwtY2hhbm5lbCBtb2RlLiAgVGhlIEIzIHBhaXIgd2lsbAotICogYWRkaXRpb25hbGx5IG9ubHkgYmUgcG93ZXJlZCB1cCB3aGVuIExWRFNfQTNfUE9XRVJfVVAgaXMgc2V0LgotICovCi0jIGRlZmluZSBMVkRTX0IwQjNfUE9XRVJfTUFTSwkJKDMgPDwgMikKLSMgZGVmaW5lIExWRFNfQjBCM19QT1dFUl9ET1dOCQkoMCA8PCAyKQotIyBkZWZpbmUgTFZEU19CMEIzX1BPV0VSX1VQCQkoMyA8PCAyKQotCi0jZGVmaW5lIFBJUEVBQ09ORiAweDcwMDA4Ci0jZGVmaW5lIFBJUEVBQ09ORl9FTkFCTEUJKDE8PDMxKQotI2RlZmluZSBQSVBFQUNPTkZfRElTQUJMRQkwCi0jZGVmaW5lIFBJUEVBQ09ORl9ET1VCTEVfV0lERQkoMTw8MzApCi0jZGVmaW5lIEk5NjVfUElQRUNPTkZfQUNUSVZFCSgxPDwzMCkKLSNkZWZpbmUgUElQRUFDT05GX1NJTkdMRV9XSURFCTAKLSNkZWZpbmUgUElQRUFDT05GX1BJUEVfVU5MT0NLRUQgMAotI2RlZmluZSBQSVBFQUNPTkZfUElQRV9MT0NLRUQJKDE8PDI1KQotI2RlZmluZSBQSVBFQUNPTkZfUEFMRVRURQkwCi0jZGVmaW5lIFBJUEVBQ09ORl9HQU1NQQkJKDE8PDI0KQotI2RlZmluZSBQSVBFQ09ORl9GT1JDRV9CT1JERVIJKDE8PDI1KQotI2RlZmluZSBQSVBFQ09ORl9QUk9HUkVTU0lWRQkoMCA8PCAyMSkKLSNkZWZpbmUgUElQRUNPTkZfSU5URVJMQUNFX1dfRklFTERfSU5ESUNBVElPTgkoNiA8PCAyMSkKLSNkZWZpbmUgUElQRUNPTkZfSU5URVJMQUNFX0ZJRUxEXzBfT05MWQkJKDcgPDwgMjEpCi0KLSNkZWZpbmUgRFNQQVJCCSAgMHg3MDAzMAotI2RlZmluZSBEU1BBUkJfQ1NUQVJUX01BU0sJKDB4N2YgPDwgNykKLSNkZWZpbmUgRFNQQVJCX0NTVEFSVF9TSElGVAk3Ci0jZGVmaW5lIERTUEFSQl9CU1RBUlRfTUFTSwkoMHg3ZikJCSAKLSNkZWZpbmUgRFNQQVJCX0JTVEFSVF9TSElGVAkwCi0KLSNkZWZpbmUgUElQRUJDT05GIDB4NzEwMDgKLSNkZWZpbmUgUElQRUJDT05GX0VOQUJMRQkoMTw8MzEpCi0jZGVmaW5lIFBJUEVCQ09ORl9ESVNBQkxFCTAKLSNkZWZpbmUgUElQRUJDT05GX0RPVUJMRV9XSURFCSgxPDwzMCkKLSNkZWZpbmUgUElQRUJDT05GX0RJU0FCTEUJMAotI2RlZmluZSBQSVBFQkNPTkZfR0FNTUEJCSgxPDwyNCkKLSNkZWZpbmUgUElQRUJDT05GX1BBTEVUVEUJMAotCi0jZGVmaW5lIFBJUEVCR0NNQVhSRUQJCTB4NzEwMTAKLSNkZWZpbmUgUElQRUJHQ01BWEdSRUVOCQkweDcxMDE0Ci0jZGVmaW5lIFBJUEVCR0NNQVhCTFVFCQkweDcxMDE4Ci0jZGVmaW5lIFBJUEVCU1RBVAkJMHg3MTAyNAotI2RlZmluZSBQSVBFQkZSQU1FSElHSAkJMHg3MTA0MAotI2RlZmluZSBQSVBFQkZSQU1FUElYRUwJCTB4NzEwNDQKLQotI2RlZmluZSBEU1BBQ05UUgkJMHg3MDE4MAotI2RlZmluZSBEU1BCQ05UUgkJMHg3MTE4MAotI2RlZmluZSBESVNQTEFZX1BMQU5FX0VOQUJMRQkJCSgxPDwzMSkKLSNkZWZpbmUgRElTUExBWV9QTEFORV9ESVNBQkxFCQkJMAotI2RlZmluZSBESVNQUExBTkVfR0FNTUFfRU5BQkxFCQkJKDE8PDMwKQotI2RlZmluZSBESVNQUExBTkVfR0FNTUFfRElTQUJMRQkJCTAKLSNkZWZpbmUgRElTUFBMQU5FX1BJWEZPUk1BVF9NQVNLCQkoMHhmPDwyNikKLSNkZWZpbmUgRElTUFBMQU5FXzhCUFAJCQkJKDB4Mjw8MjYpCi0jZGVmaW5lIERJU1BQTEFORV8xNV8xNkJQUAkJCSgweDQ8PDI2KQotI2RlZmluZSBESVNQUExBTkVfMTZCUFAJCQkJKDB4NTw8MjYpCi0jZGVmaW5lIERJU1BQTEFORV8zMkJQUF9OT19BTFBIQQkJKDB4Njw8MjYpCi0jZGVmaW5lIERJU1BQTEFORV8zMkJQUAkJCQkoMHg3PDwyNikKLSNkZWZpbmUgRElTUFBMQU5FX1NURVJFT19FTkFCTEUJCQkoMTw8MjUpCi0jZGVmaW5lIERJU1BQTEFORV9TVEVSRU9fRElTQUJMRQkJMAotI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfTUFTSwkJCSgxPDwyNCkKLSNkZWZpbmUgRElTUFBMQU5FX1NFTF9QSVBFX0EJCQkwCi0jZGVmaW5lIERJU1BQTEFORV9TRUxfUElQRV9CCQkJKDE8PDI0KQotI2RlZmluZSBESVNQUExBTkVfU1JDX0tFWV9FTkFCTEUJCSgxPDwyMikKLSNkZWZpbmUgRElTUFBMQU5FX1NSQ19LRVlfRElTQUJMRQkJMAotI2RlZmluZSBESVNQUExBTkVfTElORV9ET1VCTEUJCQkoMTw8MjApCi0jZGVmaW5lIERJU1BQTEFORV9OT19MSU5FX0RPVUJMRQkJMAotI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX1BPTEFSSVRZX0ZJUlNUCQkwCi0jZGVmaW5lIERJU1BQTEFORV9TVEVSRU9fUE9MQVJJVFlfU0VDT05ECSgxPDwxOCkKLS8qIHBsYW5lIEIgb25seSAqLwotI2RlZmluZSBESVNQUExBTkVfQUxQSEFfVFJBTlNfRU5BQkxFCQkoMTw8MTUpCi0jZGVmaW5lIERJU1BQTEFORV9BTFBIQV9UUkFOU19ESVNBQkxFCQkwCi0jZGVmaW5lIERJU1BQTEFORV9TUFJJVEVfQUJPVkVfRElTUExBWUEJCTAKLSNkZWZpbmUgRElTUFBMQU5FX1NQUklURV9BQk9WRV9PVkVSTEFZCQkoMSkKLQotI2RlZmluZSBEU1BBQkFTRQkJMHg3MDE4NAotI2RlZmluZSBEU1BBU1RSSURFCQkweDcwMTg4Ci0KLSNkZWZpbmUgRFNQQkJBU0UJCTB4NzExODQKLSNkZWZpbmUgRFNQQkFERFIJCURTUEJCQVNFCi0jZGVmaW5lIERTUEJTVFJJREUJCTB4NzExODgKLQotI2RlZmluZSBEU1BBS0VZVkFMCQkweDcwMTk0Ci0jZGVmaW5lIERTUEFLRVlNQVNLCQkweDcwMTk4Ci0KLSNkZWZpbmUgRFNQQVBPUwkJCTB4NzAxOEMgLyogcmVzZXJ2ZWQgKi8KLSNkZWZpbmUgRFNQQVNJWkUJCTB4NzAxOTAKLSNkZWZpbmUgRFNQQlBPUwkJCTB4NzExOEMKLSNkZWZpbmUgRFNQQlNJWkUJCTB4NzExOTAKLQotI2RlZmluZSBEU1BBU1VSRgkJMHg3MDE5QwotI2RlZmluZSBEU1BBVElMRU9GRgkJMHg3MDFBNAotCi0jZGVmaW5lIERTUEJTVVJGCQkweDcxMTlDCi0jZGVmaW5lIERTUEJUSUxFT0ZGCQkweDcxMUE0Ci0KLSNkZWZpbmUgVkdBQ05UUkwJCTB4NzE0MDAKLSMgZGVmaW5lIFZHQV9ESVNQX0RJU0FCTEUJCQkoMSA8PCAzMSkKLSMgZGVmaW5lIFZHQV8yWF9NT0RFCQkJCSgxIDw8IDMwKQotIyBkZWZpbmUgVkdBX1BJUEVfQl9TRUxFQ1QJCQkoMSA8PCAyOSkKLQotLyoKLSAqIFNvbWUgQklPUyBzY3JhdGNoIGFyZWEgcmVnaXN0ZXJzLiAgVGhlIDg0NSAoYW5kIDgzMD8pIHN0b3JlIHRoZSBhbW91bnQKLSAqIG9mIHZpZGVvIG1lbW9yeSBhdmFpbGFibGUgdG8gdGhlIEJJT1MgaW4gU1dGMS4KLSAqLwotCi0jZGVmaW5lIFNXRjAJCQkweDcxNDEwCi0KLS8qCi0gKiA4NTUgc2NyYXRjaCByZWdpc3RlcnMuCi0gKi8KLSNkZWZpbmUgU1dGMTAJCQkweDcwNDEwCi0KLSNkZWZpbmUgU1dGMzAJCQkweDcyNDE0Ci0KLS8qCi0gKiBPdmVybGF5IHJlZ2lzdGVycy4gIFRoZXNlIGFyZSBvdmVybGF5IHJlZ2lzdGVycyBhY2Nlc3NlZCB2aWEgTU1JTy4KLSAqIFRob3NlIGxvYWRlZCB2aWEgdGhlIG92ZXJsYXkgcmVnaXN0ZXIgcGFnZSBhcmUgZGVmaW5lZCBpbiBpODMwX3ZpZGVvLmMuCi0gKi8KLSNkZWZpbmUgT1ZBREQJCQkweDMwMDAwCi0KLSNkZWZpbmUgRE9WU1RBCQkJMHgzMDAwOAotI2RlZmluZSBPQ19CVUYJCQkoMHgzPDwyMCkKLQotI2RlZmluZSBPR0FNQzUJCQkweDMwMDEwCi0jZGVmaW5lIE9HQU1DNAkJCTB4MzAwMTQKLSNkZWZpbmUgT0dBTUMzCQkJMHgzMDAxOAotI2RlZmluZSBPR0FNQzIJCQkweDMwMDFjCi0jZGVmaW5lIE9HQU1DMQkJCTB4MzAwMjAKLSNkZWZpbmUgT0dBTUMwCQkJMHgzMDAyNAotLyoKLSAqIFBhbGV0dGUgcmVnaXN0ZXJzCi0gKi8KLSNkZWZpbmUgUEFMRVRURV9BCQkweDBhMDAwCi0jZGVmaW5lIFBBTEVUVEVfQgkJMHgwYTgwMAotCi0jZGVmaW5lIElTX0k4MzAoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgzNTc3KQotI2RlZmluZSBJU184NDVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU2MikKLSNkZWZpbmUgSVNfSTg1WChkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDM1ODIpCi0jZGVmaW5lIElTX0k4NTUoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgzNTgyKQotI2RlZmluZSBJU19JODY1RyhkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1NzIpCi0KLSNkZWZpbmUgSVNfSTkxNUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyNTgyIHx8IChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU4YSkKLSNkZWZpbmUgSVNfSTkxNUdNKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU5MikKLSNkZWZpbmUgSVNfSTk0NUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyNzcyKQotI2RlZmluZSBJU19JOTQ1R00oZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyN0EyIHx8XAotCQkgICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjdBRSkKLSNkZWZpbmUgSVNfSTk2NUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOTcyIHx8IFwKLQkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjk4MiB8fCBcCi0JCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5OTIgfHwgXAotCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOUEyIHx8IFwKLQkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkEwMiB8fCBcCi0JCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBMTIgfHwgXAotCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTQyKQotCi0jZGVmaW5lIElTX0k5NjVHTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBMDIpCi0KLSNkZWZpbmUgSVNfSUdEX0dNKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkE0MikKLQotI2RlZmluZSBJU19HMzMoZGV2KSAgICAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOUMyIHx8CVwKLQkJCShkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlCMiB8fAlcCi0JCQkoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5RDIpCi0KLSNkZWZpbmUgSVNfSTlYWChkZXYpIChJU19JOTE1RyhkZXYpIHx8IElTX0k5MTVHTShkZXYpIHx8IElTX0k5NDVHKGRldikgfHwgXAotCQkgICAgICBJU19JOTQ1R00oZGV2KSB8fCBJU19JOTY1RyhkZXYpIHx8IElTX0czMyhkZXYpKQotCi0jZGVmaW5lIElTX01PQklMRShkZXYpIChJU19JODMwKGRldikgfHwgSVNfSTg1WChkZXYpIHx8IElTX0k5MTVHTShkZXYpIHx8IFwKLQkJCUlTX0k5NDVHTShkZXYpIHx8IElTX0k5NjVHTShkZXYpIHx8IElTX0lHRF9HTShkZXYpKQotCi0jZGVmaW5lIEk5MTVfTkVFRF9HRlhfSFdTKGRldikgKElTX0czMyhkZXYpIHx8IElTX0lHRF9HTShkZXYpKQotCi0jZGVmaW5lIFBSSU1BUllfUklOR0JVRkZFUl9TSVpFICAgICAgICAgKDEyOCoxMDI0KQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9pcnEuYyBiL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9pcnEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdmMTZlNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaXJxLmMKKysrIC9kZXYvbnVsbApAQCAtMSw2MjMgKzAsMCBAQAotLyogaTkxNV9pcnEuYyAtLSBJUlEgc3VwcG9ydCBmb3IgdGhlIEk5MTUgLSotIGxpbnV4LWMgLSotCi0gKi8KLS8qCi0gKiBDb3B5cmlnaHQgMjAwMyBUdW5nc3RlbiBHcmFwaGljcywgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0gKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0gKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQotICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKLSAqIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwotICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRVTkdTVEVOIEdSQVBISUNTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotICogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSAqIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgImk5MTVfZHJtLmgiCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLQotI2RlZmluZSBVU0VSX0lOVF9GTEFHICgxPDwxKQotI2RlZmluZSBWU1lOQ19QSVBFQl9GTEFHICgxPDw1KQotI2RlZmluZSBWU1lOQ19QSVBFQV9GTEFHICgxPDw3KQotCi0jZGVmaW5lIE1BWF9OT1BJRCAoKHUzMil+MCkKLQotLyoqCi0gKiBFbWl0IGJsaXRzIGZvciBzY2hlZHVsZWQgYnVmZmVyIHN3YXBzLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgSFcgbG9jayBoZWxkLgotICovCi1zdGF0aWMgdm9pZCBpOTE1X3ZibGFua190YXNrbGV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwotCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsICp0bXAsIGhpdHMsICpoaXQ7Ci0JaW50IG5oaXRzLCBucmVjdHMsIHNsaWNlWzJdLCB1cHBlclsyXSwgbG93ZXJbMl0sIGk7Ci0JdW5zaWduZWQgY291bnRlclsyXSA9IHsgYXRvbWljX3JlYWQoJmRldi0+dmJsX3JlY2VpdmVkKSwKLQkJCQlhdG9taWNfcmVhZCgmZGV2LT52YmxfcmVjZWl2ZWQyKSB9OwotCXN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyAqZHJ3OwotCWRybV9pOTE1X3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQl1MzIgY3BwID0gZGV2X3ByaXYtPmNwcDsKLQl1MzIgY21kID0gKGNwcCA9PSA0KSA/IChYWV9TUkNfQ09QWV9CTFRfQ01EIHwKLQkJCQlYWV9TUkNfQ09QWV9CTFRfV1JJVEVfQUxQSEEgfAotCQkJCVhZX1NSQ19DT1BZX0JMVF9XUklURV9SR0IpCi0JCQkgICAgIDogWFlfU1JDX0NPUFlfQkxUX0NNRDsKLQl1MzIgc3JjX3BpdGNoID0gc2FyZWFfcHJpdi0+cGl0Y2ggKiBjcHA7Ci0JdTMyIGRzdF9waXRjaCA9IHNhcmVhX3ByaXYtPnBpdGNoICogY3BwOwotCXUzMiByb3BjcHAgPSAoMHhjYyA8PCAxNikgfCAoKGNwcCAtIDEpIDw8IDI0KTsKLQlSSU5HX0xPQ0FMUzsKLQotCWlmIChzYXJlYV9wcml2LT5mcm9udF90aWxlZCkgewotCQljbWQgfD0gWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRDsKLQkJZHN0X3BpdGNoID4+PSAyOwotCX0KLQlpZiAoc2FyZWFfcHJpdi0+YmFja190aWxlZCkgewotCQljbWQgfD0gWFlfU1JDX0NPUFlfQkxUX1NSQ19USUxFRDsKLQkJc3JjX3BpdGNoID4+PSAyOwotCX0KLQotCURSTV9ERUJVRygiXG4iKTsKLQotCUlOSVRfTElTVF9IRUFEKCZoaXRzKTsKLQotCW5oaXRzID0gbnJlY3RzID0gMDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOwotCi0JLyogRmluZCBidWZmZXIgc3dhcHMgc2NoZWR1bGVkIGZvciB0aGlzIHZlcnRpY2FsIGJsYW5rICovCi0JbGlzdF9mb3JfZWFjaF9zYWZlKGxpc3QsIHRtcCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCkgewotCQlkcm1faTkxNV92Ymxfc3dhcF90ICp2Ymxfc3dhcCA9Ci0JCQlsaXN0X2VudHJ5KGxpc3QsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCi0JCWlmICgoY291bnRlclt2Ymxfc3dhcC0+cGlwZV0gLSB2Ymxfc3dhcC0+c2VxdWVuY2UpID4gKDE8PDIzKSkKLQkJCWNvbnRpbnVlOwotCi0JCWxpc3RfZGVsKGxpc3QpOwotCQlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZy0tOwotCi0JCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7Ci0JCXNwaW5fbG9jaygmZGV2LT5kcndfbG9jayk7Ci0KLQkJZHJ3ID0gZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgdmJsX3N3YXAtPmRyd19pZCk7Ci0KLQkJaWYgKCFkcncpIHsKLQkJCXNwaW5fdW5sb2NrKCZkZXYtPmRyd19sb2NrKTsKLQkJCWRybV9mcmVlKHZibF9zd2FwLCBzaXplb2YoKnZibF9zd2FwKSwgRFJNX01FTV9EUklWRVIpOwotCQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCWxpc3RfZm9yX2VhY2goaGl0LCAmaGl0cykgewotCQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9jbXAgPQotCQkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKLQkJCXN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyAqZHJ3X2NtcCA9Ci0JCQkJZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcF9jbXAtPmRyd19pZCk7Ci0KLQkJCWlmIChkcndfY21wICYmCi0JCQkgICAgZHJ3X2NtcC0+cmVjdHNbMF0ueTEgPiBkcnctPnJlY3RzWzBdLnkxKSB7Ci0JCQkJbGlzdF9hZGRfdGFpbChsaXN0LCBoaXQpOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0KLQkJc3Bpbl91bmxvY2soJmRldi0+ZHJ3X2xvY2spOwotCi0JCS8qIExpc3Qgb2YgaGl0cyB3YXMgZW1wdHksIG9yIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiBpdCAqLwotCQlpZiAoaGl0ID09ICZoaXRzKQotCQkJbGlzdF9hZGRfdGFpbChsaXN0LCBoaXRzLnByZXYpOwotCi0JCW5oaXRzKys7Ci0KLQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7Ci0JfQotCi0JaWYgKG5oaXRzID09IDApIHsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQkJcmV0dXJuOwotCX0KLQotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7Ci0KLQlpOTE1X2tlcm5lbF9sb3N0X2NvbnRleHQoZGV2KTsKLQotCWlmIChJU19JOTY1RyhkZXYpKSB7Ci0JCUJFR0lOX0xQX1JJTkcoNCk7Ci0KLQkJT1VUX1JJTkcoR0ZYX09QX0RSQVdSRUNUX0lORk9fSTk2NSk7Ci0JCU9VVF9SSU5HKDApOwotCQlPVVRfUklORygoKHNhcmVhX3ByaXYtPndpZHRoIC0gMSkgJiAweGZmZmYpIHwgKChzYXJlYV9wcml2LT5oZWlnaHQgLSAxKSA8PCAxNikpOwotCQlPVVRfUklORygwKTsKLQkJQURWQU5DRV9MUF9SSU5HKCk7Ci0JfSBlbHNlIHsKLQkJQkVHSU5fTFBfUklORyg2KTsKLQotCQlPVVRfUklORyhHRlhfT1BfRFJBV1JFQ1RfSU5GTyk7Ci0JCU9VVF9SSU5HKDApOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+d2lkdGggfCBzYXJlYV9wcml2LT5oZWlnaHQgPDwgMTYpOwotCQlPVVRfUklORyhzYXJlYV9wcml2LT53aWR0aCB8IHNhcmVhX3ByaXYtPmhlaWdodCA8PCAxNik7Ci0JCU9VVF9SSU5HKDApOwotCi0JCUFEVkFOQ0VfTFBfUklORygpOwotCX0KLQotCXNhcmVhX3ByaXYtPmN0eE93bmVyID0gRFJNX0tFUk5FTF9DT05URVhUOwotCi0JdXBwZXJbMF0gPSB1cHBlclsxXSA9IDA7Ci0Jc2xpY2VbMF0gPSBtYXgoc2FyZWFfcHJpdi0+cGlwZUFfaCAvIG5oaXRzLCAxKTsKLQlzbGljZVsxXSA9IG1heChzYXJlYV9wcml2LT5waXBlQl9oIC8gbmhpdHMsIDEpOwotCWxvd2VyWzBdID0gc2FyZWFfcHJpdi0+cGlwZUFfeSArIHNsaWNlWzBdOwotCWxvd2VyWzFdID0gc2FyZWFfcHJpdi0+cGlwZUJfeSArIHNsaWNlWzBdOwotCi0Jc3Bpbl9sb2NrKCZkZXYtPmRyd19sb2NrKTsKLQotCS8qIEVtaXQgYmxpdHMgZm9yIGJ1ZmZlciBzd2FwcywgcGFydGl0aW9uaW5nIGJvdGggb3V0cHV0cyBpbnRvIGFzIG1hbnkKLQkgKiBzbGljZXMgYXMgdGhlcmUgYXJlIGJ1ZmZlciBzd2FwcyBzY2hlZHVsZWQgaW4gb3JkZXIgdG8gYXZvaWQgdGVhcmluZwotCSAqIChiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgc2luZ2xlIGJ1ZmZlciBzd2FwIHdvdWxkIGFsd2F5cwotCSAqIGNvbXBsZXRlIGJlZm9yZSBzY2Fub3V0IHN0YXJ0cykuCi0JICovCi0JZm9yIChpID0gMDsgaSsrIDwgbmhpdHM7Ci0JICAgICB1cHBlclswXSA9IGxvd2VyWzBdLCBsb3dlclswXSArPSBzbGljZVswXSwKLQkgICAgIHVwcGVyWzFdID0gbG93ZXJbMV0sIGxvd2VyWzFdICs9IHNsaWNlWzFdKSB7Ci0JCWlmIChpID09IG5oaXRzKQotCQkJbG93ZXJbMF0gPSBsb3dlclsxXSA9IHNhcmVhX3ByaXYtPmhlaWdodDsKLQotCQlsaXN0X2Zvcl9lYWNoKGhpdCwgJmhpdHMpIHsKLQkJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfaGl0ID0KLQkJCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7Ci0JCQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcmVjdDsKLQkJCWludCBudW1fcmVjdHMsIHBpcGU7Ci0JCQl1bnNpZ25lZCBzaG9ydCB0b3AsIGJvdHRvbTsKLQotCQkJZHJ3ID0gZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcF9oaXQtPmRyd19pZCk7Ci0KLQkJCWlmICghZHJ3KQotCQkJCWNvbnRpbnVlOwotCi0JCQlyZWN0ID0gZHJ3LT5yZWN0czsKLQkJCXBpcGUgPSBzd2FwX2hpdC0+cGlwZTsKLQkJCXRvcCA9IHVwcGVyW3BpcGVdOwotCQkJYm90dG9tID0gbG93ZXJbcGlwZV07Ci0KLQkJCWZvciAobnVtX3JlY3RzID0gZHJ3LT5udW1fcmVjdHM7IG51bV9yZWN0cy0tOyByZWN0KyspIHsKLQkJCQlpbnQgeTEgPSBtYXgocmVjdC0+eTEsIHRvcCk7Ci0JCQkJaW50IHkyID0gbWluKHJlY3QtPnkyLCBib3R0b20pOwotCi0JCQkJaWYgKHkxID49IHkyKQotCQkJCQljb250aW51ZTsKLQotCQkJCUJFR0lOX0xQX1JJTkcoOCk7Ci0KLQkJCQlPVVRfUklORyhjbWQpOwotCQkJCU9VVF9SSU5HKHJvcGNwcCB8IGRzdF9waXRjaCk7Ci0JCQkJT1VUX1JJTkcoKHkxIDw8IDE2KSB8IHJlY3QtPngxKTsKLQkJCQlPVVRfUklORygoeTIgPDwgMTYpIHwgcmVjdC0+eDIpOwotCQkJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPmZyb250X29mZnNldCk7Ci0JCQkJT1VUX1JJTkcoKHkxIDw8IDE2KSB8IHJlY3QtPngxKTsKLQkJCQlPVVRfUklORyhzcmNfcGl0Y2gpOwotCQkJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPmJhY2tfb2Zmc2V0KTsKLQotCQkJCUFEVkFOQ0VfTFBfUklORygpOwotCQkJfQotCQl9Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOwotCi0JbGlzdF9mb3JfZWFjaF9zYWZlKGhpdCwgdG1wLCAmaGl0cykgewotCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2hpdCA9Ci0JCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7Ci0KLQkJbGlzdF9kZWwoaGl0KTsKLQotCQlkcm1fZnJlZShzd2FwX2hpdCwgc2l6ZW9mKCpzd2FwX2hpdCksIERSTV9NRU1fRFJJVkVSKTsKLQl9Ci19Ci0KLWlycXJldHVybl90IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUykKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gKHN0cnVjdCBkcm1fZGV2aWNlICopIGFyZzsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUxNiB0ZW1wOwotCXUzMiBwaXBlYV9zdGF0cywgcGlwZWJfc3RhdHM7Ci0KLQlwaXBlYV9zdGF0cyA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVBU1RBVCk7Ci0JcGlwZWJfc3RhdHMgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQlNUQVQpOwotCi0JdGVtcCA9IEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOwotCi0JdGVtcCAmPSAoVVNFUl9JTlRfRkxBRyB8IFZTWU5DX1BJUEVBX0ZMQUcgfCBWU1lOQ19QSVBFQl9GTEFHKTsKLQotCURSTV9ERUJVRygiJXMgZmxhZz0lMDh4XG4iLCBfX0ZVTkNUSU9OX18sIHRlbXApOwotCi0JaWYgKHRlbXAgPT0gMCkKLQkJcmV0dXJuIElSUV9OT05FOwotCi0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IsIHRlbXApOwotCSh2b2lkKSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKLQlEUk1fUkVBRE1FTU9SWUJBUlJJRVIoKTsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KTsKLQotCWlmICh0ZW1wICYgVVNFUl9JTlRfRkxBRykKLQkJRFJNX1dBS0VVUCgmZGV2X3ByaXYtPmlycV9xdWV1ZSk7Ci0KLQlpZiAodGVtcCAmIChWU1lOQ19QSVBFQV9GTEFHIHwgVlNZTkNfUElQRUJfRkxBRykpIHsKLQkJaW50IHZibGFua19waXBlID0gZGV2X3ByaXYtPnZibGFua19waXBlOwotCi0JCWlmICgodmJsYW5rX3BpcGUgJgotCQkgICAgIChEUk1fSTkxNV9WQkxBTktfUElQRV9BIHwgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpCi0JCSAgICA9PSAoRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSB8IERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSB7Ci0JCQlpZiAodGVtcCAmIFZTWU5DX1BJUEVBX0ZMQUcpCi0JCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOwotCQkJaWYgKHRlbXAgJiBWU1lOQ19QSVBFQl9GTEFHKQotCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkMik7Ci0JCX0gZWxzZSBpZiAoKCh0ZW1wICYgVlNZTkNfUElQRUFfRkxBRykgJiYKLQkJCSAgICAodmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9BKSkgfHwKLQkJCSAgICgodGVtcCAmIFZTWU5DX1BJUEVCX0ZMQUcpICYmCi0JCQkgICAgKHZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpKQotCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOwotCi0JCURSTV9XQUtFVVAoJmRldi0+dmJsX3F1ZXVlKTsKLQkJZHJtX3ZibF9zZW5kX3NpZ25hbHMoZGV2KTsKLQotCQlpZiAoZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPiAwKQotCQkJZHJtX2xvY2tlZF90YXNrbGV0KGRldiwgaTkxNV92YmxhbmtfdGFza2xldCk7Ci0JCUk5MTVfV1JJVEUoSTkxNVJFR19QSVBFQVNUQVQsCi0JCQlwaXBlYV9zdGF0c3xJOTE1X1ZCTEFOS19JTlRFUlJVUFRfRU5BQkxFfAotCQkJSTkxNV9WQkxBTktfQ0xFQVIpOwotCQlJOTE1X1dSSVRFKEk5MTVSRUdfUElQRUJTVEFULAotCQkJcGlwZWJfc3RhdHN8STkxNV9WQkxBTktfSU5URVJSVVBUX0VOQUJMRXwKLQkJCUk5MTVfVkJMQU5LX0NMRUFSKTsKLQl9Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9lbWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlSSU5HX0xPQ0FMUzsKLQotCWk5MTVfa2VybmVsX2xvc3RfY29udGV4dChkZXYpOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZW5xdWV1ZSA9ICsrZGV2X3ByaXYtPmNvdW50ZXI7Ci0KLQlpZiAoZGV2X3ByaXYtPmNvdW50ZXIgPiAweDdGRkZGRkZGVUwpCi0JCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2VucXVldWUgPSBkZXZfcHJpdi0+Y291bnRlciA9IDE7Ci0KLQlCRUdJTl9MUF9SSU5HKDYpOwotCU9VVF9SSU5HKENNRF9TVE9SRV9EV09SRF9JRFgpOwotCU9VVF9SSU5HKDIwKTsKLQlPVVRfUklORyhkZXZfcHJpdi0+Y291bnRlcik7Ci0JT1VUX1JJTkcoMCk7Ci0JT1VUX1JJTkcoMCk7Ci0JT1VUX1JJTkcoR0ZYX09QX1VTRVJfSU5URVJSVVBUKTsKLQlBRFZBTkNFX0xQX1JJTkcoKTsKLQotCXJldHVybiBkZXZfcHJpdi0+Y291bnRlcjsKLX0KLQotc3RhdGljIGludCBpOTE1X3dhaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgaXJxX25yKQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IHJldCA9IDA7Ci0KLQlEUk1fREVCVUcoImlycV9ucj0lZCBicmVhZGNydW1iPSVkXG4iLCBpcnFfbnIsCi0JCSAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSk7Ci0KLQlpZiAoUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSA+PSBpcnFfbnIpCi0JCXJldHVybiAwOwotCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBlcmZfYm94ZXMgfD0gSTkxNV9CT1hfV0FJVDsKLQotCURSTV9XQUlUX09OKHJldCwgZGV2X3ByaXYtPmlycV9xdWV1ZSwgMyAqIERSTV9IWiwKLQkJICAgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgPj0gaXJxX25yKTsKLQotCWlmIChyZXQgPT0gLUVCVVNZKSB7Ci0JCURSTV9FUlJPUigiRUJVU1kgLS0gcmVjOiAlZCBlbWl0dGVkOiAlZFxuIiwKLQkJCSAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSwgKGludClkZXZfcHJpdi0+Y291bnRlcik7Ci0JfQotCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSwKLQkJCQkgICAgICBhdG9taWNfdCAqY291bnRlcikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBpbnQgY3VyX3ZibGFuazsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCURSTV9XQUlUX09OKHJldCwgZGV2LT52YmxfcXVldWUsIDMgKiBEUk1fSFosCi0JCSAgICAoKChjdXJfdmJsYW5rID0gYXRvbWljX3JlYWQoY291bnRlcikpCi0JCQktICpzZXF1ZW5jZSkgPD0gKDE8PDIzKSkpOwotCi0JKnNlcXVlbmNlID0gY3VyX3ZibGFuazsKLQotCXJldHVybiByZXQ7Ci19Ci0KLQotaW50IGk5MTVfZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCi17Ci0JcmV0dXJuIGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsICZkZXYtPnZibF9yZWNlaXZlZCk7Ci19Ci0KLWludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKLXsKLQlyZXR1cm4gaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgJmRldi0+dmJsX3JlY2VpdmVkMik7Ci19Ci0KLS8qIE5lZWRzIHRoZSBsb2NrIGFzIGl0IHRvdWNoZXMgdGhlIHJpbmcuCi0gKi8KLWludCBpOTE1X2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX2k5MTVfaXJxX2VtaXRfdCAqZW1pdCA9IGRhdGE7Ci0JaW50IHJlc3VsdDsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXN1bHQgPSBpOTE1X2VtaXRfaXJxKGRldik7Ci0KLQlpZiAoRFJNX0NPUFlfVE9fVVNFUihlbWl0LT5pcnFfc2VxLCAmcmVzdWx0LCBzaXplb2YoaW50KSkpIHsKLQkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogRG9lc24ndCBuZWVkIHRoZSBoYXJkd2FyZSBsb2NrLgotICovCi1pbnQgaTkxNV9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X2lycV93YWl0X3QgKmlycXdhaXQgPSBkYXRhOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIGk5MTVfd2FpdF9pcnEoZGV2LCBpcnF3YWl0LT5pcnFfc2VxKTsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV9lbmFibGVfaW50ZXJydXB0IChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JdTE2IGZsYWc7Ci0KLQlmbGFnID0gMDsKLQlpZiAoZGV2X3ByaXYtPnZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSkKLQkJZmxhZyB8PSBWU1lOQ19QSVBFQV9GTEFHOwotCWlmIChkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9CKQotCQlmbGFnIHw9IFZTWU5DX1BJUEVCX0ZMQUc7Ci0KLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIFVTRVJfSU5UX0ZMQUcgfCBmbGFnKTsKLX0KLQotLyogU2V0IHRoZSB2YmxhbmsgbW9uaXRvciBwaXBlCi0gKi8KLWludCBpOTE1X3ZibGFua19waXBlX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X3ZibGFua19waXBlX3QgKnBpcGUgPSBkYXRhOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKHBpcGUtPnBpcGUgJiB+KERSTV9JOTE1X1ZCTEFOS19QSVBFX0F8RFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBpbnZhbGlkIHBpcGUgMHgleFxuIiwgcGlwZS0+cGlwZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT52YmxhbmtfcGlwZSA9IHBpcGUtPnBpcGU7Ci0KLQlpOTE1X2VuYWJsZV9pbnRlcnJ1cHQgKGRldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotaW50IGk5MTVfdmJsYW5rX3BpcGVfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX2k5MTVfdmJsYW5rX3BpcGVfdCAqcGlwZSA9IGRhdGE7Ci0JdTE2IGZsYWc7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlmbGFnID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0VOQUJMRV9SKTsKLQlwaXBlLT5waXBlID0gMDsKLQlpZiAoZmxhZyAmIFZTWU5DX1BJUEVBX0ZMQUcpCi0JCXBpcGUtPnBpcGUgfD0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQTsKLQlpZiAoZmxhZyAmIFZTWU5DX1BJUEVCX0ZMQUcpCi0JCXBpcGUtPnBpcGUgfD0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQjsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIFNjaGVkdWxlIGJ1ZmZlciBzd2FwIGF0IGdpdmVuIHZlcnRpY2FsIGJsYW5rLgotICovCi1pbnQgaTkxNV92Ymxhbmtfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X3ZibGFua19zd2FwX3QgKnN3YXAgPSBkYXRhOwotCWRybV9pOTE1X3ZibF9zd2FwX3QgKnZibF9zd2FwOwotCXVuc2lnbmVkIGludCBwaXBlLCBzZXF0eXBlLCBjdXJzZXE7Ci0JdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0OwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoIiVzIGNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cm90YXRpb24pIHsKLQkJRFJNX0RFQlVHKCJSb3RhdGlvbiBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKHN3YXAtPnNlcXR5cGUgJiB+KF9EUk1fVkJMQU5LX1JFTEFUSVZFIHwgX0RSTV9WQkxBTktfQUJTT0xVVEUgfAotCQkJICAgICBfRFJNX1ZCTEFOS19TRUNPTkRBUlkgfCBfRFJNX1ZCTEFOS19ORVhUT05NSVNTKSkgewotCQlEUk1fRVJST1IoIkludmFsaWQgc2VxdWVuY2UgdHlwZSAweCV4XG4iLCBzd2FwLT5zZXF0eXBlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcGlwZSA9IChzd2FwLT5zZXF0eXBlICYgX0RSTV9WQkxBTktfU0VDT05EQVJZKSA/IDEgOiAwOwotCi0Jc2VxdHlwZSA9IHN3YXAtPnNlcXR5cGUgJiAoX0RSTV9WQkxBTktfUkVMQVRJVkUgfCBfRFJNX1ZCTEFOS19BQlNPTFVURSk7Ci0KLQlpZiAoIShkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiAoMSA8PCBwaXBlKSkpIHsKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIHBpcGUgJWRcbiIsIHBpcGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOwotCi0JaWYgKCFkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwLT5kcmF3YWJsZSkpIHsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOwotCQlEUk1fREVCVUcoIkludmFsaWQgZHJhd2FibGUgSUQgJWRcbiIsIHN3YXAtPmRyYXdhYmxlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOwotCi0JY3Vyc2VxID0gYXRvbWljX3JlYWQocGlwZSA/ICZkZXYtPnZibF9yZWNlaXZlZDIgOiAmZGV2LT52YmxfcmVjZWl2ZWQpOwotCi0JaWYgKHNlcXR5cGUgPT0gX0RSTV9WQkxBTktfUkVMQVRJVkUpCi0JCXN3YXAtPnNlcXVlbmNlICs9IGN1cnNlcTsKLQotCWlmICgoY3Vyc2VxIC0gc3dhcC0+c2VxdWVuY2UpIDw9ICgxPDwyMykpIHsKLQkJaWYgKHN3YXAtPnNlcXR5cGUgJiBfRFJNX1ZCTEFOS19ORVhUT05NSVNTKSB7Ci0JCQlzd2FwLT5zZXF1ZW5jZSA9IGN1cnNlcSArIDE7Ci0JCX0gZWxzZSB7Ci0JCQlEUk1fREVCVUcoIk1pc3NlZCB0YXJnZXQgc2VxdWVuY2VcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQl9Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCWxpc3RfZm9yX2VhY2gobGlzdCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCkgewotCQl2Ymxfc3dhcCA9IGxpc3RfZW50cnkobGlzdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7Ci0KLQkJaWYgKHZibF9zd2FwLT5kcndfaWQgPT0gc3dhcC0+ZHJhd2FibGUgJiYKLQkJICAgIHZibF9zd2FwLT5waXBlID09IHBpcGUgJiYKLQkJICAgIHZibF9zd2FwLT5zZXF1ZW5jZSA9PSBzd2FwLT5zZXF1ZW5jZSkgewotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQkJCURSTV9ERUJVRygiQWxyZWFkeSBzY2hlZHVsZWRcbiIpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOwotCi0JaWYgKGRldl9wcml2LT5zd2Fwc19wZW5kaW5nID49IDEwMCkgewotCQlEUk1fREVCVUcoIlRvbyBtYW55IHN3YXBzIHF1ZXVlZFxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCi0JdmJsX3N3YXAgPSBkcm1fY2FsbG9jKDEsIHNpemVvZigqdmJsX3N3YXApLCBEUk1fTUVNX0RSSVZFUik7Ci0KLQlpZiAoIXZibF9zd2FwKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSB0byBxdWV1ZSBzd2FwXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JdmJsX3N3YXAtPmRyd19pZCA9IHN3YXAtPmRyYXdhYmxlOwotCXZibF9zd2FwLT5waXBlID0gcGlwZTsKLQl2Ymxfc3dhcC0+c2VxdWVuY2UgPSBzd2FwLT5zZXF1ZW5jZTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOwotCi0JbGlzdF9hZGRfdGFpbCgmdmJsX3N3YXAtPmhlYWQsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpOwotCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nKys7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIGRybV9kbWEuaCBob29rcwotKi8KLXZvaWQgaTkxNV9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0hXU1RBTSwgMHhmZmZlKTsKLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfTUFTS19SLCAweDApOwotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgMHgwKTsKLX0KLQotdm9pZCBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQotCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7Ci0JSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCk7Ci0JZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPSAwOwotCi0JaWYgKCFkZXZfcHJpdi0+dmJsYW5rX3BpcGUpCi0JCWRldl9wcml2LT52YmxhbmtfcGlwZSA9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0E7Ci0JaTkxNV9lbmFibGVfaW50ZXJydXB0KGRldik7Ci0JRFJNX0lOSVRfV0FJVFFVRVVFKCZkZXZfcHJpdi0+aXJxX3F1ZXVlKTsKLX0KLQotdm9pZCBpOTE1X2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JdTE2IHRlbXA7Ci0KLQlpZiAoIWRldl9wcml2KQotCQlyZXR1cm47Ci0KLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19IV1NUQU0sIDB4ZmZmZik7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX01BU0tfUiwgMHhmZmZmKTsKLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIDB4MCk7Ci0KLQl0ZW1wID0gSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IsIHRlbXApOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMzAwX2NtZGJ1Zi5jIGIvZHJpdmVycy9jaGFyL2RybS9yMzAwX2NtZGJ1Zi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTM1ODEyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcjMwMF9jbWRidWYuYworKysgL2Rldi9udWxsCkBAIC0xLDk5OCArMCwwIEBACi0vKiByMzAwX2NtZGJ1Zi5jIC0tIENvbW1hbmQgYnVmZmVyIGVtaXNzaW9uIGZvciBSMzAwIC0qLSBsaW51eC1jIC0qLQotICoKLSAqIENvcHlyaWdodCAoQykgVGhlIFdlYXRoZXIgQ2hhbm5lbCwgSW5jLiAgMjAwMi4KLSAqIENvcHlyaWdodCAoQykgMjAwNCBOaWNvbGFpIEhhZWhubGUuCi0gKiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFRoZSBXZWF0aGVyIENoYW5uZWwgKFRNKSBmdW5kZWQgVHVuZ3N0ZW4gR3JhcGhpY3MgdG8gZGV2ZWxvcCB0aGUKLSAqIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgUmFkZW9uIDg1MDAgZHJpdmVyIHVuZGVyIHRoZSBYRnJlZTg2IGxpY2Vuc2UuCi0gKiBUaGlzIG5vdGljZSBtdXN0IGJlIHByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIE5pY29sYWkgSGFlaG5sZSA8cHJlZmVjdF9AZ214Lm5ldD4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJ2LmgiCi0jaW5jbHVkZSAicjMwMF9yZWcuaCIKLQotI2RlZmluZSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMJCTQKLQotLyogVmFsdWVzIGZvciBSMzAwX1JFX0NMSVBSRUNUX0NOVEwgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YgY2xpcHJlY3RzCi0gKi8KLXN0YXRpYyBjb25zdCBpbnQgcjMwMF9jbGlwcmVjdF9jbnRsWzRdID0gewotCTB4QUFBQSwKLQkweEVFRUUsCi0JMHhGRUZFLAotCTB4RkZGRQotfTsKLQotLyoqCi0gKiBFbWl0IHVwIHRvIFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUyBjbGlwcmVjdHMgZnJvbSB0aGUgZ2l2ZW4gY29tbWFuZAotICogYnVmZmVyLCBzdGFydGluZyB3aXRoIGluZGV4IG4uCi0gKi8KLXN0YXRpYyBpbnQgcjMwMF9lbWl0X2NsaXByZWN0cyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsIGludCBuKQotewotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IGJveDsKLQlpbnQgbnI7Ci0JaW50IGk7Ci0JUklOR19MT0NBTFM7Ci0KLQluciA9IGNtZGJ1Zi0+bmJveCAtIG47Ci0JaWYgKG5yID4gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTKQotCQluciA9IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUzsKLQotCURSTV9ERUJVRygiJWkgY2xpcHJlY3RzXG4iLCBucik7Ci0KLQlpZiAobnIpIHsKLQkJQkVHSU5fUklORyg2ICsgbnIgKiAyKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JFX0NMSVBSRUNUX1RMXzAsIG5yICogMiAtIDEpKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbnI7ICsraSkgewotCQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUl9VTkNIRUNLRUQKLQkJCSAgICAoJmJveCwgJmNtZGJ1Zi0+Ym94ZXNbbiArIGldLCBzaXplb2YoYm94KSkpIHsKLQkJCQlEUk1fRVJST1IoImNvcHkgY2xpcHJlY3QgZmF1bHRlZFxuIik7Ci0JCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQl9Ci0KLQkJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1JWNTE1KSB7Ci0JCQkJYm94LngxID0gKGJveC54MSkgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQkJYm94LnkxID0gKGJveC55MSkgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQkJYm94LngyID0gKGJveC54MikgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQkJYm94LnkyID0gKGJveC55MikgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQl9IGVsc2UgewotCQkJCWJveC54MSA9IChib3gueDEgKyBSMzAwX0NMSVBSRUNUX09GRlNFVCkgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQkJYm94LnkxID0gKGJveC55MSArIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUKSAmCi0JCQkJCVIzMDBfQ0xJUFJFQ1RfTUFTSzsKLQkJCQlib3gueDIgPSAoYm94LngyICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJCWJveC55MiA9IChib3gueTIgKyBSMzAwX0NMSVBSRUNUX09GRlNFVCkgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0KLQkJCX0KLQkJCU9VVF9SSU5HKChib3gueDEgPDwgUjMwMF9DTElQUkVDVF9YX1NISUZUKSB8Ci0JCQkJIChib3gueTEgPDwgUjMwMF9DTElQUkVDVF9ZX1NISUZUKSk7Ci0JCQlPVVRfUklORygoYm94LngyIDw8IFIzMDBfQ0xJUFJFQ1RfWF9TSElGVCkgfAotCQkJCSAoYm94LnkyIDw8IFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCkpOwotCi0JCX0KLQotCQlPVVRfUklOR19SRUcoUjMwMF9SRV9DTElQUkVDVF9DTlRMLCByMzAwX2NsaXByZWN0X2NudGxbbnIgLSAxXSk7Ci0KLQkJLyogVE9ETy9TRUNVUklUWTogRm9yY2Ugc2Npc3NvcnMgdG8gYSBzYWZlIHZhbHVlLCBvdGhlcndpc2UgdGhlCi0JCSAqIGNsaWVudCBtaWdodCBiZSBhYmxlIHRvIHRyYW1wbGUgb3ZlciBtZW1vcnkuCi0JCSAqIFRoZSBpbXBhY3Qgc2hvdWxkIGJlIHZlcnkgbGltaXRlZCwgYnV0IEknZCByYXRoZXIgYmUgc2FmZSB0aGFuCi0JCSAqIHNvcnJ5LgotCQkgKi8KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JFX1NDSVNTT1JTX1RMLCAxKSk7Ci0JCU9VVF9SSU5HKDApOwotCQlPVVRfUklORyhSMzAwX1NDSVNTT1JTX1hfTUFTSyB8IFIzMDBfU0NJU1NPUlNfWV9NQVNLKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfSBlbHNlIHsKLQkJLyogV2h5IHdlIGFsbG93IHplcm8gY2xpcHJlY3QgcmVuZGVyaW5nOgotCQkgKiBUaGVyZSBhcmUgc29tZSBjb21tYW5kcyBpbiBhIGNvbW1hbmQgYnVmZmVyIHRoYXQgbXVzdCBiZSBzdWJtaXR0ZWQKLQkJICogZXZlbiB3aGVuIHRoZXJlIGFyZSBubyBjbGlwcmVjdHMsIGUuZy4gRE1BIGJ1ZmZlciBkaXNjYXJkCi0JCSAqIG9yIHN0YXRlIHNldHRpbmcgKHRob3VnaCBzdGF0ZSBzZXR0aW5nIGNvdWxkIGJlIGF2b2lkZWQgYnkKLQkJICogc2ltdWxhdGluZyBhIGxvc3Mgb2YgY29udGV4dCkuCi0JCSAqCi0JCSAqIE5vdyBzaW5jZSB0aGUgY21kYnVmIGludGVyZmFjZSBpcyBzbyBjaGFvdGljIHJpZ2h0IG5vdyAoYW5kIGlzCi0JCSAqIGJvdW5kIHRvIHJlbWFpbiB0aGF0IHdheSBmb3IgYSBiaXQgdW50aWwgdGhpbmdzIHNldHRsZSBkb3duKSwKLQkJICogaXQgaXMgYmFzaWNhbGx5IGltcG9zc2libGUgdG8gZmlsdGVyIG91dCB0aGUgY29tbWFuZHMgdGhhdCBhcmUKLQkJICogbmVjZXNzYXJ5IGFuZCB0aG9zZSB0aGF0IGFyZW4ndC4KLQkJICoKLQkJICogU28gSSBjaG9vc2UgdGhlIHNhZmUgd2F5IGFuZCBkb24ndCBkbyBhbnkgZmlsdGVyaW5nIGF0IGFsbDsKLQkJICogaW5zdGVhZCwgSSBzaW1wbHkgc2V0IHVwIHRoZSBlbmdpbmUgc28gdGhhdCBhbGwgcmVuZGVyaW5nCi0JCSAqIGNhbid0IHByb2R1Y2UgYW55IGZyYWdtZW50cy4KLQkJICovCi0JCUJFR0lOX1JJTkcoMik7Ci0JCU9VVF9SSU5HX1JFRyhSMzAwX1JFX0NMSVBSRUNUX0NOVEwsIDApOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHU4IHIzMDBfcmVnX2ZsYWdzWzB4MTAwMDAgPj4gMl07Ci0KLXZvaWQgcjMwMF9pbml0X3JlZ19mbGFncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWludCBpOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQltZW1zZXQocjMwMF9yZWdfZmxhZ3MsIDAsIDB4MTAwMDAgPj4gMik7Ci0jZGVmaW5lIEFERF9SQU5HRV9NQVJLKHJlZywgY291bnQsbWFyaykgXAotCQlmb3IoaT0oKHJlZyk+PjIpO2k8KChyZWcpPj4yKSsoY291bnQpO2krKylcCi0JCQlyMzAwX3JlZ19mbGFnc1tpXXw9KG1hcmspOwotCi0jZGVmaW5lIE1BUktfU0FGRQkJMQotI2RlZmluZSBNQVJLX0NIRUNLX09GRlNFVAkyCi0KLSNkZWZpbmUgQUREX1JBTkdFKHJlZywgY291bnQpCUFERF9SQU5HRV9NQVJLKHJlZywgY291bnQsIE1BUktfU0FGRSkKLQotCS8qIHRoZXNlIG1hdGNoIGNtZHVjcygpIGNvbW1hbmQgaW4gcjMwMF9kcml2ZXIvcjMwMC9yMzAwX2NtZGJ1Zi5jICovCi0JQUREX1JBTkdFKFIzMDBfU0VfVlBPUlRfWFNDQUxFLCA2KTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfQ05UTCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfU0VfVlRFX0NOVEwsIDIpOwotCUFERF9SQU5HRSgweDIxMzQsIDIpOwotCUFERF9SQU5HRShSMzAwX1ZBUF9DTlRMX1NUQVRVUywgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX0lOUFVUX0NOVExfMCwgMik7Ci0JQUREX1JBTkdFKDB4MjFEQywgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX1VOS05PV05fMjIxQywgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX0NMSVBfWF8wLCA0KTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfUFZTX1dBSVRJRExFLCAxKTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfVU5LTk9XTl8yMjg4LCAxKTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMCwgMik7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX1BWU19DTlRMXzEsIDMpOwotCUFERF9SQU5HRShSMzAwX0dCX0VOQUJMRSwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfR0JfTVNQT1MwLCA1KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9DTlRMLCAxKTsKLQlBRERfUkFOR0UoUjMwMF9UWF9FTkFCTEUsIDEpOwotCUFERF9SQU5HRSgweDQyMDAsIDQpOwotCUFERF9SQU5HRSgweDQyMTQsIDEpOwotCUFERF9SQU5HRShSMzAwX1JFX1BPSU5UU0laRSwgMSk7Ci0JQUREX1JBTkdFKDB4NDIzMCwgMyk7Ci0JQUREX1JBTkdFKFIzMDBfUkVfTElORV9DTlQsIDEpOwotCUFERF9SQU5HRShSMzAwX1JFX1VOSzQyMzgsIDEpOwotCUFERF9SQU5HRSgweDQyNjAsIDMpOwotCUFERF9SQU5HRShSMzAwX1JFX1NIQURFLCA0KTsKLQlBRERfUkFOR0UoUjMwMF9SRV9QT0xZR09OX01PREUsIDUpOwotCUFERF9SQU5HRShSMzAwX1JFX1pCSUFTX0NOVEwsIDEpOwotCUFERF9SQU5HRShSMzAwX1JFX1pCSUFTX1RfRkFDVE9SLCA0KTsKLQlBRERfUkFOR0UoUjMwMF9SRV9PQ0NMVVNJT05fQ05UTCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfUkVfQ1VMTF9DTlRMLCAxKTsKLQlBRERfUkFOR0UoMHg0MkMwLCAyKTsKLQlBRERfUkFOR0UoUjMwMF9SU19DTlRMXzAsIDIpOwotCUFERF9SQU5HRShSMzAwX1JTX0lOVEVSUF8wLCA4KTsKLQlBRERfUkFOR0UoUjMwMF9SU19ST1VURV8wLCA4KTsKLQlBRERfUkFOR0UoMHg0M0E0LCAyKTsKLQlBRERfUkFOR0UoMHg0M0U4LCAxKTsKLQlBRERfUkFOR0UoUjMwMF9QRlNfQ05UTF8wLCAzKTsKLQlBRERfUkFOR0UoUjMwMF9QRlNfTk9ERV8wLCA0KTsKLQlBRERfUkFOR0UoUjMwMF9QRlNfVEVYSV8wLCA2NCk7Ci0JQUREX1JBTkdFKDB4NDZBNCwgNSk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSMF8wLCA2NCk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSMV8wLCA2NCk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSMl8wLCA2NCk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSM18wLCA2NCk7Ci0JQUREX1JBTkdFKFIzMDBfUkVfRk9HX1NUQVRFLCAxKTsKLQlBRERfUkFOR0UoUjMwMF9GT0dfQ09MT1JfUiwgMyk7Ci0JQUREX1JBTkdFKFIzMDBfUFBfQUxQSEFfVEVTVCwgMik7Ci0JQUREX1JBTkdFKDB4NEJEOCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX1BBUkFNXzBfWCwgNjQpOwotCUFERF9SQU5HRSgweDRFMDAsIDEpOwotCUFERF9SQU5HRShSMzAwX1JCM0RfQ0JMRU5ELCAyKTsKLQlBRERfUkFOR0UoUjMwMF9SQjNEX0NPTE9STUFTSywgMSk7Ci0JQUREX1JBTkdFKFIzMDBfUkIzRF9CTEVORF9DT0xPUiwgMyk7Ci0JQUREX1JBTkdFX01BUksoUjMwMF9SQjNEX0NPTE9ST0ZGU0VUMCwgMSwgTUFSS19DSEVDS19PRkZTRVQpOwkvKiBjaGVjayBvZmZzZXQgKi8KLQlBRERfUkFOR0UoUjMwMF9SQjNEX0NPTE9SUElUQ0gwLCAxKTsKLQlBRERfUkFOR0UoMHg0RTUwLCA5KTsKLQlBRERfUkFOR0UoMHg0RTg4LCAxKTsKLQlBRERfUkFOR0UoMHg0RUEwLCAyKTsKLQlBRERfUkFOR0UoUjMwMF9SQjNEX1pTVEVOQ0lMX0NOVExfMCwgMyk7Ci0JQUREX1JBTkdFKFIzMDBfUkIzRF9aU1RFTkNJTF9GT1JNQVQsIDQpOwotCUFERF9SQU5HRV9NQVJLKFIzMDBfUkIzRF9ERVBUSE9GRlNFVCwgMSwgTUFSS19DSEVDS19PRkZTRVQpOwkvKiBjaGVjayBvZmZzZXQgKi8KLQlBRERfUkFOR0UoUjMwMF9SQjNEX0RFUFRIUElUQ0gsIDEpOwotCUFERF9SQU5HRSgweDRGMjgsIDEpOwotCUFERF9SQU5HRSgweDRGMzAsIDIpOwotCUFERF9SQU5HRSgweDRGNDQsIDEpOwotCUFERF9SQU5HRSgweDRGNTQsIDEpOwotCi0JQUREX1JBTkdFKFIzMDBfVFhfRklMVEVSXzAsIDE2KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9GSUxURVIxXzAsIDE2KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9TSVpFXzAsIDE2KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9GT1JNQVRfMCwgMTYpOwotCUFERF9SQU5HRShSMzAwX1RYX1BJVENIXzAsIDE2KTsKLQkvKiBUZXh0dXJlIG9mZnNldCBpcyBkYW5nZXJvdXMgYW5kIG5lZWRzIG1vcmUgY2hlY2tpbmcgKi8KLQlBRERfUkFOR0VfTUFSSyhSMzAwX1RYX09GRlNFVF8wLCAxNiwgTUFSS19DSEVDS19PRkZTRVQpOwotCUFERF9SQU5HRShSMzAwX1RYX0NIUk9NQV9LRVlfMCwgMTYpOwotCUFERF9SQU5HRShSMzAwX1RYX0JPUkRFUl9DT0xPUl8wLCAxNik7Ci0KLQkvKiBTcG9yYWRpYyByZWdpc3RlcnMgdXNlZCBhcyBwcmltaXRpdmVzIGFyZSBlbWl0dGVkICovCi0JQUREX1JBTkdFKFIzMDBfUkIzRF9aQ0FDSEVfQ1RMU1RBVCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAxKTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8wLCA4KTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8wLCA4KTsKLQotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1JWNTE1KSB7Ci0JCUFERF9SQU5HRSgweDQwNzQsIDE2KTsKLQl9Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2NoZWNrX3JhbmdlKHVuc2lnbmVkIHJlZywgaW50IGNvdW50KQotewotCWludCBpOwotCWlmIChyZWcgJiB+MHhmZmZmKQotCQlyZXR1cm4gLTE7Ci0JZm9yIChpID0gKHJlZyA+PiAyKTsgaSA8IChyZWcgPj4gMikgKyBjb3VudDsgaSsrKQotCQlpZiAocjMwMF9yZWdfZmxhZ3NbaV0gIT0gTUFSS19TQUZFKQotCQkJcmV0dXJuIDE7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfY2FyZWZ1bGx5X2NoZWNrZWRfcGFja2V0MChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqCi0JCQkJCQkJICBkZXZfcHJpdiwKLQkJCQkJCQkgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdAotCQkJCQkJCSAgKiBjbWRidWYsCi0JCQkJCQkJICBkcm1fcjMwMF9jbWRfaGVhZGVyX3QKLQkJCQkJCQkgIGhlYWRlcikKLXsKLQlpbnQgcmVnOwotCWludCBzejsKLQlpbnQgaTsKLQlpbnQgdmFsdWVzWzY0XTsKLQlSSU5HX0xPQ0FMUzsKLQotCXN6ID0gaGVhZGVyLnBhY2tldDAuY291bnQ7Ci0JcmVnID0gKGhlYWRlci5wYWNrZXQwLnJlZ2hpIDw8IDgpIHwgaGVhZGVyLnBhY2tldDAucmVnbG87Ci0KLQlpZiAoKHN6ID4gNjQpIHx8IChzeiA8IDApKSB7Ci0JCURSTV9FUlJPUgotCQkgICAgKCJDYW5ub3QgZW1pdCBtb3JlIHRoYW4gNjQgdmFsdWVzIGF0IGEgdGltZSAocmVnPSUwNHggc3o9JWQpXG4iLAotCQkgICAgIHJlZywgc3opOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JZm9yIChpID0gMDsgaSA8IHN6OyBpKyspIHsKLQkJdmFsdWVzW2ldID0gKChpbnQgKiljbWRidWYtPmJ1ZilbaV07Ci0JCXN3aXRjaCAocjMwMF9yZWdfZmxhZ3NbKHJlZyA+PiAyKSArIGldKSB7Ci0JCWNhc2UgTUFSS19TQUZFOgotCQkJYnJlYWs7Ci0JCWNhc2UgTUFSS19DSEVDS19PRkZTRVQ6Ci0JCQlpZiAoIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsICh1MzIpIHZhbHVlc1tpXSkpIHsKLQkJCQlEUk1fRVJST1IKLQkJCQkgICAgKCJPZmZzZXQgZmFpbGVkIHJhbmdlIGNoZWNrIChyZWc9JTA0eCBzej0lZClcbiIsCi0JCQkJICAgICByZWcsIHN6KTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJRFJNX0VSUk9SKCJSZWdpc3RlciAlMDR4IGZhaWxlZCBjaGVjayBhcyBmbGFnPSUwMnhcbiIsCi0JCQkJICByZWcgKyBpICogNCwgcjMwMF9yZWdfZmxhZ3NbKHJlZyA+PiAyKSArIGldKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfQotCi0JQkVHSU5fUklORygxICsgc3opOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAocmVnLCBzeiAtIDEpKTsKLQlPVVRfUklOR19UQUJMRSh2YWx1ZXMsIHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHN6ICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogNDsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIEVtaXRzIGEgcGFja2V0MCBzZXR0aW5nIGFyYml0cmFyeSByZWdpc3RlcnMuCi0gKiBDYWxsZWQgYnkgcjMwMF9kb19jcF9jbWRidWYuCi0gKgotICogTm90ZSB0aGF0IGNoZWNrcyBhcmUgcGVyZm9ybWVkIG9uIGNvbnRlbnRzIGFuZCBhZGRyZXNzZXMgb2YgdGhlIHJlZ2lzdGVycwotICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3BhY2tldDAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQlkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKLQkJCQkJZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcikKLXsKLQlpbnQgcmVnOwotCWludCBzejsKLQlSSU5HX0xPQ0FMUzsKLQotCXN6ID0gaGVhZGVyLnBhY2tldDAuY291bnQ7Ci0JcmVnID0gKGhlYWRlci5wYWNrZXQwLnJlZ2hpIDw8IDgpIHwgaGVhZGVyLnBhY2tldDAucmVnbG87Ci0KLQlpZiAoIXN6KQotCQlyZXR1cm4gMDsKLQotCWlmIChzeiAqIDQgPiBjbWRidWYtPmJ1ZnN6KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChyZWcgKyBzeiAqIDQgPj0gMHgxMDAwMCkgewotCQlEUk1fRVJST1IoIk5vIHN1Y2ggcmVnaXN0ZXJzIGluIGhhcmR3YXJlIHJlZz0lMDR4IHN6PSVkXG4iLCByZWcsCi0JCQkgIHN6KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKHIzMDBfY2hlY2tfcmFuZ2UocmVnLCBzeikpIHsKLQkJLyogZ28gYW5kIGNoZWNrIGV2ZXJ5dGhpbmcgKi8KLQkJcmV0dXJuIHIzMDBfZW1pdF9jYXJlZnVsbHlfY2hlY2tlZF9wYWNrZXQwKGRldl9wcml2LCBjbWRidWYsCi0JCQkJCQkJICAgaGVhZGVyKTsKLQl9Ci0JLyogdGhlIHJlc3Qgb2YgdGhlIGRhdGEgaXMgc2FmZSB0byBlbWl0LCB3aGF0ZXZlciB0aGUgdmFsdWVzIHRoZSB1c2VyIHBhc3NlZCAqLwotCi0JQkVHSU5fUklORygxICsgc3opOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAocmVnLCBzeiAtIDEpKTsKLQlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHN6ICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogNDsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIFVwbG9hZHMgdXNlci1zdXBwbGllZCB2ZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbnMgb3IgcGFyYW1ldGVycyBvbnRvCi0gKiB0aGUgZ3JhcGhpY3MgY2FyZC4KLSAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1Zi4KLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF92cHUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCSAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKLQkJCQkgICAgZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcikKLXsKLQlpbnQgc3o7Ci0JaW50IGFkZHI7Ci0JUklOR19MT0NBTFM7Ci0KLQlzeiA9IGhlYWRlci52cHUuY291bnQ7Ci0JYWRkciA9IChoZWFkZXIudnB1LmFkcmhpIDw8IDgpIHwgaGVhZGVyLnZwdS5hZHJsbzsKLQotCWlmICghc3opCi0JCXJldHVybiAwOwotCWlmIChzeiAqIDE2ID4gY21kYnVmLT5idWZzeikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlCRUdJTl9SSU5HKDUgKyBzeiAqIDQpOwotCS8qIFdhaXQgZm9yIFZBUCB0byBjb21lIHRvIHNlbnNlcy4uICovCi0JLyogdGhlcmUgaXMgbm8gbmVlZCB0byBlbWl0IGl0IG11bHRpcGxlIHRpbWVzLCAob25seSBvbmNlIGJlZm9yZSBWQVAgaXMgcHJvZ3JhbW1lZCwKLQkgICBidXQgdGhpcyBvcHRpbWl6YXRpb24gaXMgZm9yIGxhdGVyICovCi0JT1VUX1JJTkdfUkVHKFIzMDBfVkFQX1BWU19XQUlUSURMRSwgMCk7Ci0JT1VUX1JJTkdfUkVHKFIzMDBfVkFQX1BWU19VUExPQURfQUREUkVTUywgYWRkcik7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSMzAwX1ZBUF9QVlNfVVBMT0FEX0RBVEEsIHN6ICogNCAtIDEpKTsKLQlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIHN6ICogNCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHN6ICogMTY7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIDE2OwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogRW1pdCBhIGNsZWFyIHBhY2tldCBmcm9tIHVzZXJzcGFjZS4KLSAqIENhbGxlZCBieSByMzAwX2VtaXRfcGFja2V0My4KLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9jbGVhcihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoOCAqIDQgPiBjbWRidWYtPmJ1ZnN6KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCUJFR0lOX1JJTkcoMTApOwotCU9VVF9SSU5HKENQX1BBQ0tFVDMoUjIwMF8zRF9EUkFXX0lNTURfMiwgOCkpOwotCU9VVF9SSU5HKFIzMDBfUFJJTV9UWVBFX1BPSU5UIHwgUjMwMF9QUklNX1dBTEtfUklORyB8Ci0JCSAoMSA8PCBSMzAwX1BSSU1fTlVNX1ZFUlRJQ0VTX1NISUZUKSk7Ci0JT1VUX1JJTkdfVEFCTEUoKGludCAqKWNtZGJ1Zi0+YnVmLCA4KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IDggKiA0OwotCWNtZGJ1Zi0+YnVmc3ogLT0gOCAqIDQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF8zZF9sb2FkX3ZicG50cihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKLQkJCQkJICAgICAgIHUzMiBoZWFkZXIpCi17Ci0JaW50IGNvdW50LCBpLCBrOwotI2RlZmluZSBNQVhfQVJSQVlfUEFDS0VUICA2NAotCXUzMiBwYXlsb2FkW01BWF9BUlJBWV9QQUNLRVRdOwotCXUzMiBuYXJyYXlzOwotCVJJTkdfTE9DQUxTOwotCi0JY291bnQgPSAoaGVhZGVyID4+IDE2KSAmIDB4M2ZmZjsKLQotCWlmICgoY291bnQgKyAxKSA+IE1BWF9BUlJBWV9QQUNLRVQpIHsKLQkJRFJNX0VSUk9SKCJUb28gbGFyZ2UgcGF5bG9hZCBpbiAzRF9MT0FEX1ZCUE5UUiAoY291bnQ9JWQpXG4iLAotCQkJICBjb3VudCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQltZW1zZXQocGF5bG9hZCwgMCwgTUFYX0FSUkFZX1BBQ0tFVCAqIDQpOwotCW1lbWNweShwYXlsb2FkLCBjbWRidWYtPmJ1ZiArIDQsIChjb3VudCArIDEpICogNCk7Ci0KLQkvKiBjYXJlZnVsbHkgY2hlY2sgcGFja2V0IGNvbnRlbnRzICovCi0KLQluYXJyYXlzID0gcGF5bG9hZFswXTsKLQlrID0gMDsKLQlpID0gMTsKLQl3aGlsZSAoKGsgPCBuYXJyYXlzKSAmJiAoaSA8IChjb3VudCArIDEpKSkgewotCQlpKys7CQkvKiBza2lwIGF0dHJpYnV0ZSBmaWVsZCAqLwotCQlpZiAoIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIHBheWxvYWRbaV0pKSB7Ci0JCQlEUk1fRVJST1IKLQkJCSAgICAoIk9mZnNldCBmYWlsZWQgcmFuZ2UgY2hlY2sgKGs9JWQgaT0lZCkgd2hpbGUgcHJvY2Vzc2luZyAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQuXG4iLAotCQkJICAgICBrLCBpKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWsrKzsKLQkJaSsrOwotCQlpZiAoayA9PSBuYXJyYXlzKQotCQkJYnJlYWs7Ci0JCS8qIGhhdmUgb25lIG1vcmUgdG8gcHJvY2VzcywgdGhleSBjb21lIGluIHBhaXJzICovCi0JCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgcGF5bG9hZFtpXSkpIHsKLQkJCURSTV9FUlJPUgotCQkJICAgICgiT2Zmc2V0IGZhaWxlZCByYW5nZSBjaGVjayAoaz0lZCBpPSVkKSB3aGlsZSBwcm9jZXNzaW5nIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCi0JCQkgICAgIGssIGkpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaysrOwotCQlpKys7Ci0JfQotCS8qIGRvIHRoZSBjb3VudHMgbWF0Y2ggd2hhdCB3ZSBleHBlY3QgPyAqLwotCWlmICgoayAhPSBuYXJyYXlzKSB8fCAoaSAhPSAoY291bnQgKyAxKSkpIHsKLQkJRFJNX0VSUk9SCi0JCSAgICAoIk1hbGZvcm1lZCAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQgKGs9JWQgaT0lZCBuYXJyYXlzPSVkIGNvdW50KzE9JWQpLlxuIiwKLQkJICAgICBrLCBpLCBuYXJyYXlzLCBjb3VudCArIDEpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBhbGwgY2xlYXIsIG91dHB1dCBwYWNrZXQgKi8KLQotCUJFR0lOX1JJTkcoY291bnQgKyAyKTsKLQlPVVRfUklORyhoZWFkZXIpOwotCU9VVF9SSU5HX1RBQkxFKHBheWxvYWQsIGNvdW50ICsgMSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSAoY291bnQgKyAyKSAqIDQ7Ci0JY21kYnVmLT5idWZzeiAtPSAoY291bnQgKyAyKSAqIDQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9iaXRibHRfbXVsdGkoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCXUzMiAqY21kID0gKHUzMiAqKSBjbWRidWYtPmJ1ZjsKLQlpbnQgY291bnQsIHJldDsKLQlSSU5HX0xPQ0FMUzsKLQotCWNvdW50PShjbWRbMF0+PjE2KSAmIDB4M2ZmZjsKLQotCWlmIChjbWRbMF0gJiAweDgwMDApIHsKLQkJdTMyIG9mZnNldDsKLQotCQlpZiAoY21kWzFdICYgKFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMCi0JCQkgICAgICB8IFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMKSkgewotCQkJb2Zmc2V0ID0gY21kWzJdIDw8IDEwOwotCQkJcmV0ID0gIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIG9mZnNldCk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGJpdGJsdCBmaXJzdCBvZmZzZXQgaXMgJTA4WFxuIiwgb2Zmc2V0KTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJfQotCi0JCWlmICgoY21kWzFdICYgUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwpICYmCi0JCSAgICAoY21kWzFdICYgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwpKSB7Ci0JCQlvZmZzZXQgPSBjbWRbM10gPDwgMTA7Ci0JCQlyZXQgPSAhcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2Zmc2V0KTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUk1fRVJST1IoIkludmFsaWQgYml0Ymx0IHNlY29uZCBvZmZzZXQgaXMgJTA4WFxuIiwgb2Zmc2V0KTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQotCQl9Ci0JfQotCi0JQkVHSU5fUklORyhjb3VudCsyKTsKLQlPVVRfUklORyhjbWRbMF0pOwotCU9VVF9SSU5HX1RBQkxFKChpbnQgKikoY21kYnVmLT5idWYgKyA0KSwgY291bnQgKyAxKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IChjb3VudCsyKSo0OwotCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50KzIpKjQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9pbmR4X2J1ZmZlcihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JdTMyICpjbWQgPSAodTMyICopIGNtZGJ1Zi0+YnVmOwotCWludCBjb3VudCwgcmV0OwotCVJJTkdfTE9DQUxTOwotCi0JY291bnQ9KGNtZFswXT4+MTYpICYgMHgzZmZmOwotCi0JaWYgKChjbWRbMV0gJiAweDgwMDBmZmZmKSAhPSAweDgwMDAwODEwKSB7Ci0JCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciByZWcgYWRkcmVzcyAlMDhYXG4iLCBjbWRbMV0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JcmV0ID0gIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIGNtZFsyXSk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoIkludmFsaWQgaW5keF9idWZmZXIgb2Zmc2V0IGlzICUwOFhcbiIsIGNtZFsyXSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCUJFR0lOX1JJTkcoY291bnQrMik7Ci0JT1VUX1JJTkcoY21kWzBdKTsKLQlPVVRfUklOR19UQUJMRSgoaW50ICopKGNtZGJ1Zi0+YnVmICsgNCksIGNvdW50ICsgMSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSAoY291bnQrMikqNDsKLQljbWRidWYtPmJ1ZnN6IC09IChjb3VudCsyKSo0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfcmF3X3BhY2tldDMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JdTMyIGhlYWRlcjsKLQlpbnQgY291bnQ7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoNCA+IGNtZGJ1Zi0+YnVmc3opCi0JCXJldHVybiAtRUlOVkFMOwotCi0JLyogRml4bWUgISEgVGhpcyBzaW1wbHkgZW1pdHMgYSBwYWNrZXQgd2l0aG91dCBtdWNoIGNoZWNraW5nLgotCSAgIFdlIG5lZWQgdG8gYmUgc21hcnRlci4gKi8KLQotCS8qIG9idGFpbiBmaXJzdCB3b3JkIC0gYWN0dWFsIHBhY2tldDMgaGVhZGVyICovCi0JaGVhZGVyID0gKih1MzIgKikgY21kYnVmLT5idWY7Ci0KLQkvKiBJcyBpdCBwYWNrZXQgMyA/ICovCi0JaWYgKChoZWFkZXIgPj4gMzApICE9IDB4MykgewotCQlEUk1fRVJST1IoIk5vdCBhIHBhY2tldDMgaGVhZGVyICgweCUwOHgpXG4iLCBoZWFkZXIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQljb3VudCA9IChoZWFkZXIgPj4gMTYpICYgMHgzZmZmOwotCi0JLyogQ2hlY2sgYWdhaW4gbm93IHRoYXQgd2Uga25vdyBob3cgbXVjaCBkYXRhIHRvIGV4cGVjdCAqLwotCWlmICgoY291bnQgKyAyKSAqIDQgPiBjbWRidWYtPmJ1ZnN6KSB7Ci0JCURSTV9FUlJPUgotCQkgICAgKCJFeHBlY3RlZCBwYWNrZXQzIG9mIGxlbmd0aCAlZCBidXQgaGF2ZSBvbmx5ICVkIGJ5dGVzIGxlZnRcbiIsCi0JCSAgICAgKGNvdW50ICsgMikgKiA0LCBjbWRidWYtPmJ1ZnN6KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogSXMgaXQgYSBwYWNrZXQgdHlwZSB3ZSBrbm93IGFib3V0ID8gKi8KLQlzd2l0Y2ggKGhlYWRlciAmIDB4ZmYwMCkgewotCWNhc2UgUkFERU9OXzNEX0xPQURfVkJQTlRSOgkvKiBsb2FkIHZlcnRleCBhcnJheSBwb2ludGVycyAqLwotCQlyZXR1cm4gcjMwMF9lbWl0XzNkX2xvYWRfdmJwbnRyKGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7Ci0KLQljYXNlIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSToKLQkJcmV0dXJuIHIzMDBfZW1pdF9iaXRibHRfbXVsdGkoZGV2X3ByaXYsIGNtZGJ1Zik7Ci0KLQljYXNlIFJBREVPTl9DUF9JTkRYX0JVRkZFUjoJLyogRFJBV19JTkRYXzIgd2l0aG91dCBJTkRYX0JVRkZFUiBzZWVtcyB0byBsb2NrIHVwIHRoZSBncHUgKi8KLQkJcmV0dXJuIHIzMDBfZW1pdF9pbmR4X2J1ZmZlcihkZXZfcHJpdiwgY21kYnVmKTsKLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX0lNTURfMjoJLyogdHJpZ2dlcnMgZHJhd2luZyB1c2luZyBpbi1wYWNrZXQgdmVydGV4IGRhdGEgKi8KLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX1ZCVUZfMjoJLyogdHJpZ2dlcnMgZHJhd2luZyBvZiB2ZXJ0ZXggYnVmZmVycyBzZXR1cCBlbHNld2hlcmUgKi8KLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX0lORFhfMjoJLyogdHJpZ2dlcnMgZHJhd2luZyB1c2luZyBpbmRpY2VzIHRvIHZlcnRleCBidWZmZXIgKi8KLQljYXNlIFJBREVPTl9XQUlUX0ZPUl9JRExFOgotCWNhc2UgUkFERU9OX0NQX05PUDoKLQkJLyogdGhlc2UgcGFja2V0cyBhcmUgc2FmZSAqLwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fRVJST1IoIlVua25vd24gcGFja2V0MyBoZWFkZXIgKDB4JTA4eClcbiIsIGhlYWRlcik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCUJFR0lOX1JJTkcoY291bnQgKyAyKTsKLQlPVVRfUklORyhoZWFkZXIpOwotCU9VVF9SSU5HX1RBQkxFKChpbnQgKikoY21kYnVmLT5idWYgKyA0KSwgY291bnQgKyAxKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IChjb3VudCArIDIpICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IChjb3VudCArIDIpICogNDsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIEVtaXQgYSByZW5kZXJpbmcgcGFja2V0MyBmcm9tIHVzZXJzcGFjZS4KLSAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1Zi4KLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9wYWNrZXQzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQkJCWRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCi17Ci0JaW50IG47Ci0JaW50IHJldDsKLQljaGFyICpvcmlnX2J1ZiA9IGNtZGJ1Zi0+YnVmOwotCWludCBvcmlnX2J1ZnN6ID0gY21kYnVmLT5idWZzejsKLQotCS8qIFRoaXMgaXMgYSBkby13aGlsZS1sb29wIHNvIHRoYXQgd2UgcnVuIHRoZSBpbnRlcmlvciBhdCBsZWFzdCBvbmNlLAotCSAqIGV2ZW4gaWYgY21kYnVmLT5uYm94IGlzIDAuIENvbXBhcmUgcjMwMF9lbWl0X2NsaXByZWN0cyBmb3IgcmF0aW9uYWxlLgotCSAqLwotCW4gPSAwOwotCWRvIHsKLQkJaWYgKGNtZGJ1Zi0+bmJveCA+IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUykgewotCQkJcmV0ID0gcjMwMF9lbWl0X2NsaXByZWN0cyhkZXZfcHJpdiwgY21kYnVmLCBuKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKLQotCQkJY21kYnVmLT5idWYgPSBvcmlnX2J1ZjsKLQkJCWNtZGJ1Zi0+YnVmc3ogPSBvcmlnX2J1ZnN6OwotCQl9Ci0KLQkJc3dpdGNoIChoZWFkZXIucGFja2V0My5wYWNrZXQpIHsKLQkJY2FzZSBSMzAwX0NNRF9QQUNLRVQzX0NMRUFSOgotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9QQUNLRVQzX0NMRUFSXG4iKTsKLQkJCXJldCA9IHIzMDBfZW1pdF9jbGVhcihkZXZfcHJpdiwgY21kYnVmKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9jbGVhciBmYWlsZWRcbiIpOwotCQkJCXJldHVybiByZXQ7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX1BBQ0tFVDNfUkFXOgotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9QQUNLRVQzX1JBV1xuIik7Ci0JCQlyZXQgPSByMzAwX2VtaXRfcmF3X3BhY2tldDMoZGV2X3ByaXYsIGNtZGJ1Zik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfcmF3X3BhY2tldDMgZmFpbGVkXG4iKTsKLQkJCQlyZXR1cm4gcmV0OwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCURSTV9FUlJPUigiYmFkIHBhY2tldDMgdHlwZSAlaSBhdCAlcFxuIiwKLQkJCQkgIGhlYWRlci5wYWNrZXQzLnBhY2tldCwKLQkJCQkgIGNtZGJ1Zi0+YnVmIC0gc2l6ZW9mKGhlYWRlcikpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQluICs9IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUzsKLQl9IHdoaWxlIChuIDwgY21kYnVmLT5uYm94KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBTb21lIG9mIHRoZSBSMzAwIGNoaXBzIHNlZW0gdG8gYmUgZXh0cmVtZWx5IHRvdWNoeSBhYm91dCB0aGUgdHdvIHJlZ2lzdGVycwotICogdGhhdCBhcmUgY29uZmlndXJlZCBpbiByMzAwX3BhY2lmeS4KLSAqIEFtb25nIHRoZSB3b3JzdCBvZmZlbmRlcnMgc2VlbXMgdG8gYmUgdGhlIFIzMDAgTkQgKDB4NEU0NCk6IFdoZW4gdXNlcnNwYWNlCi0gKiBzZW5kcyBhIGNvbW1hbmQgYnVmZmVyIHRoYXQgY29udGFpbnMgb25seSBzdGF0ZSBzZXR0aW5nIGNvbW1hbmRzIGFuZCBhCi0gKiB2ZXJ0ZXggcHJvZ3JhbS9wYXJhbWV0ZXIgdXBsb2FkIHNlcXVlbmNlLCB0aGlzIHdpbGwgZXZlbnR1YWxseSBsZWFkIHRvIGEKLSAqIGxvY2t1cCwgdW5sZXNzIHRoZSBzZXF1ZW5jZSBpcyBicmFja2V0ZWQgYnkgY2FsbHMgdG8gcjMwMF9wYWNpZnkuCi0gKiBTbyB3ZSBzaG91bGQgdGFrZSBncmVhdCBjYXJlIHRvICphbHdheXMqIGNhbGwgcjMwMF9wYWNpZnkgYmVmb3JlCi0gKiAqYW55dGhpbmcqIDNEIHJlbGF0ZWQsIGFuZCBhZ2FpbiBhZnRlcndhcmRzLiBUaGlzIGlzIHdoYXQgdGhlCi0gKiBjYWxsIGJyYWNrZXQgaW4gcjMwMF9kb19jcF9jbWRidWYgaXMgZm9yLgotICovCi0KLS8qKgotICogRW1pdCB0aGUgc2VxdWVuY2UgdG8gcGFjaWZ5IFIzMDAuCi0gKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcjMwMF9wYWNpZnkoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2KQotewotCVJJTkdfTE9DQUxTOwotCi0JQkVHSU5fUklORyg2KTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwKSk7Ci0JT1VUX1JJTkcoUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMEEpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SQjNEX1pDQUNIRV9DVExTVEFULCAwKSk7Ci0JT1VUX1JJTkcoUjMwMF9SQjNEX1pDQUNIRV9VTktOT1dOXzAzKTsKLQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DUF9OT1AsIDApKTsKLQlPVVRfUklORygweDApOwotCUFEVkFOQ0VfUklORygpOwotfQotCi0vKioKLSAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1ZiB0byB1cGRhdGUgdGhlIGludGVybmFsIGJ1ZmZlciBhZ2UgYW5kIHN0YXRlLgotICogVGhlIGFjdHVhbCBhZ2UgZW1pdCBpcyBkb25lIGJ5IHIzMDBfZG9fY3BfY21kYnVmLCB3aGljaCBpcyB3aHkgeW91IG11c3QKLSAqIGJlIGNhcmVmdWwgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLgotICovCi1zdGF0aWMgdm9pZCByMzAwX2Rpc2NhcmRfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOwotCi0JYnVmX3ByaXYtPmFnZSA9ICsrZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2g7Ci0JYnVmLT5wZW5kaW5nID0gMTsKLQlidWYtPnVzZWQgPSAwOwotfQotCi1zdGF0aWMgdm9pZCByMzAwX2NtZF93YWl0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCi0JCQkgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCi17Ci0JdTMyIHdhaXRfdW50aWw7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoIWhlYWRlci53YWl0LmZsYWdzKQotCQlyZXR1cm47Ci0KLQl3YWl0X3VudGlsID0gMDsKLQotCXN3aXRjaChoZWFkZXIud2FpdC5mbGFncykgewotCWNhc2UgUjMwMF9XQUlUXzJEOgotCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRTsKLQkJYnJlYWs7Ci0JY2FzZSBSMzAwX1dBSVRfM0Q6Ci0JCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFOwotCQlicmVhazsKLQljYXNlIFIzMDBfTkVXX1dBSVRfMkRfM0Q6Ci0JCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8yRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEU7Ci0JCWJyZWFrOwotCWNhc2UgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTjoKLQkJd2FpdF91bnRpbCA9IFJBREVPTl9XQUlUXzJEX0lETEV8UkFERU9OX1dBSVRfMkRfSURMRUNMRUFOOwotCQlicmVhazsKLQljYXNlIFIzMDBfTkVXX1dBSVRfM0RfM0RfQ0xFQU46Ci0JCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTjsKLQkJYnJlYWs7Ci0JY2FzZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOXzNEXzNEX0NMRUFOOgotCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRXxSQURFT05fV0FJVF8yRF9JRExFQ0xFQU47Ci0JCXdhaXRfdW50aWwgfD0gUkFERU9OX1dBSVRfM0RfSURMRXxSQURFT05fV0FJVF8zRF9JRExFQ0xFQU47Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybjsKLQl9Ci0KLQlCRUdJTl9SSU5HKDIpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1dBSVRfVU5USUwsIDApKTsKLQlPVVRfUklORyh3YWl0X3VudGlsKTsKLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotc3RhdGljIGludCByMzAwX3NjcmF0Y2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQotewotCXUzMiAqcmVmX2FnZV9iYXNlOwotCXUzMiBpLCBidWZfaWR4LCBoX3BlbmRpbmc7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoY21kYnVmLT5idWZzeiA8Ci0JICAgIChzaXplb2YodTY0KSArIGhlYWRlci5zY3JhdGNoLm5fYnVmcyAqIHNpemVvZihidWZfaWR4KSkpIHsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKGhlYWRlci5zY3JhdGNoLnJlZyA+PSA1KSB7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSsrOwotCi0JcmVmX2FnZV9iYXNlID0gICh1MzIgKikodW5zaWduZWQgbG9uZykqKCh1aW50NjRfdCAqKWNtZGJ1Zi0+YnVmKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHNpemVvZih1NjQpOwotCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKHU2NCk7Ci0KLQlmb3IgKGk9MDsgaSA8IGhlYWRlci5zY3JhdGNoLm5fYnVmczsgaSsrKSB7Ci0JCWJ1Zl9pZHggPSAqKHUzMiAqKWNtZGJ1Zi0+YnVmOwotCQlidWZfaWR4ICo9IDI7IC8qIDggYnl0ZXMgcGVyIGJ1ZiAqLwotCi0JCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHgsICZkZXZfcHJpdi0+c2NyYXRjaF9hZ2VzW2hlYWRlci5zY3JhdGNoLnJlZ10sIHNpemVvZih1MzIpKSkgewotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZoX3BlbmRpbmcsIHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCBzaXplb2YodTMyKSkpIHsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJaWYgKGhfcGVuZGluZyA9PSAwKSB7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCWhfcGVuZGluZy0tOwotCi0JCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCAmaF9wZW5kaW5nLCBzaXplb2YodTMyKSkpIHsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGJ1Zl9pZHgpOwotCQljbWRidWYtPmJ1ZnN6IC09IHNpemVvZihidWZfaWR4KTsKLQl9Ci0KLQlCRUdJTl9SSU5HKDIpOwotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fU0NSQVRDSF9SRUcwICsgaGVhZGVyLnNjcmF0Y2gucmVnICogNCwgMCApICk7Ci0JT1VUX1JJTkcoIGRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSApOwotCUFEVkFOQ0VfUklORygpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogUGFyc2VzIGFuZCB2YWxpZGF0ZXMgYSB1c2VyLXN1cHBsaWVkIGNvbW1hbmQgYnVmZmVyIGFuZCBlbWl0cyBhcHByb3ByaWF0ZQotICogY29tbWFuZHMgb24gdGhlIERNQSByaW5nIGJ1ZmZlci4KLSAqIENhbGxlZCBieSB0aGUgaW9jdGwgaGFuZGxlciBmdW5jdGlvbiByYWRlb25fY3BfY21kYnVmLgotICovCi1pbnQgcjMwMF9kb19jcF9jbWRidWYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCSAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gTlVMTDsKLQlpbnQgZW1pdF9kaXNwYXRjaF9hZ2UgPSAwOwotCWludCByZXQgPSAwOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JLyogU2VlIHRoZSBjb21tZW50IGFib3ZlIHIzMDBfZW1pdF9iZWdpbjNkIGZvciB3aHkgdGhpcyBjYWxsIG11c3QgYmUgaGVyZSwKLQkgKiBhbmQgd2hhdCB0aGUgY2xlYW51cCBnb3RvcyBhcmUgZm9yLiAqLwotCXIzMDBfcGFjaWZ5KGRldl9wcml2KTsKLQotCWlmIChjbWRidWYtPm5ib3ggPD0gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTKSB7Ci0JCXJldCA9IHIzMDBfZW1pdF9jbGlwcmVjdHMoZGV2X3ByaXYsIGNtZGJ1ZiwgMCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGNsZWFudXA7Ci0JfQotCi0Jd2hpbGUgKGNtZGJ1Zi0+YnVmc3ogPj0gc2l6ZW9mKGRybV9yMzAwX2NtZF9oZWFkZXJfdCkpIHsKLQkJaW50IGlkeDsKLQkJZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcjsKLQotCQloZWFkZXIudSA9ICoodW5zaWduZWQgaW50ICopY21kYnVmLT5idWY7Ci0KLQkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGhlYWRlcik7Ci0JCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKGhlYWRlcik7Ci0KLQkJc3dpdGNoIChoZWFkZXIuaGVhZGVyLmNtZF90eXBlKSB7Ci0JCWNhc2UgUjMwMF9DTURfUEFDS0VUMDoKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfUEFDS0VUMFxuIik7Ci0JCQlyZXQgPSByMzAwX2VtaXRfcGFja2V0MChkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOwotCQkJaWYgKHJldCkgewotCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3BhY2tldDAgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGNsZWFudXA7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX1ZQVToKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfVlBVXG4iKTsKLQkJCXJldCA9IHIzMDBfZW1pdF92cHUoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF92cHUgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGNsZWFudXA7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX1BBQ0tFVDM6Ci0JCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDNcbiIpOwotCQkJcmV0ID0gcjMwMF9lbWl0X3BhY2tldDMoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9wYWNrZXQzIGZhaWxlZFxuIik7Ci0JCQkJZ290byBjbGVhbnVwOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9FTkQzRDoKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfRU5EM0RcbiIpOwotCQkJLyogVE9ETzoKLQkJCSAgIElkZWFsbHkgdXNlcnNwYWNlIGRyaXZlciBzaG91bGQgbm90IG5lZWQgdG8gaXNzdWUgdGhpcyBjYWxsLAotCQkJICAgaS5lLiB0aGUgZHJtIGRyaXZlciBzaG91bGQgaXNzdWUgaXQgYXV0b21hdGljYWxseSBhbmQgcHJldmVudAotCQkJICAgbG9ja3Vwcy4KLQotCQkJICAgSW4gcHJhY3RpY2UsIHdlIGRvIG5vdCB1bmRlcnN0YW5kIHdoeSB0aGlzIGNhbGwgaXMgbmVlZGVkIGFuZCB3aGF0Ci0JCQkgICBpdCBkb2VzIChleGNlcHQgZm9yIHNvbWUgdmFndWUgZ3Vlc3NlcyB0aGF0IGl0IGhhcyB0byBkbyB3aXRoIGNhY2hlCi0JCQkgICBjb2hlcmVuY2UpIGFuZCBzbyB0aGUgdXNlciBzcGFjZSBkcml2ZXIgZG9lcyBpdC4KLQotCQkJICAgT25jZSB3ZSBhcmUgc3VyZSB3aGljaCB1c2VzIHByZXZlbnQgbG9ja3VwcyB0aGUgY29kZSBjb3VsZCBiZSBtb3ZlZAotCQkJICAgaW50byB0aGUga2VybmVsIGFuZCB0aGUgdXNlcnNwYWNlIGRyaXZlciB3aWxsIG5vdAotCQkJICAgbmVlZCB0byB1c2UgdGhpcyBjb21tYW5kLgotCi0JCQkgICBOb3RlIHRoYXQgaXNzdWluZyB0aGlzIGNvbW1hbmQgZG9lcyBub3QgaHVydCBhbnl0aGluZwotCQkJICAgZXhjZXB0LCBwb3NzaWJseSwgcGVyZm9ybWFuY2UgKi8KLQkJCXIzMDBfcGFjaWZ5KGRldl9wcml2KTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgUjMwMF9DTURfQ1BfREVMQVk6Ci0JCQkvKiBzaW1wbGUgZW5vdWdoLCB3ZSBjYW4gZG8gaXQgaGVyZSAqLwotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9DUF9ERUxBWVxuIik7Ci0JCQl7Ci0JCQkJaW50IGk7Ci0JCQkJUklOR19MT0NBTFM7Ci0KLQkJCQlCRUdJTl9SSU5HKGhlYWRlci5kZWxheS5jb3VudCk7Ci0JCQkJZm9yIChpID0gMDsgaSA8IGhlYWRlci5kZWxheS5jb3VudDsgaSsrKQotCQkJCQlPVVRfUklORyhSQURFT05fQ1BfUEFDS0VUMik7Ci0JCQkJQURWQU5DRV9SSU5HKCk7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX0RNQV9ESVNDQVJEOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX0RNQV9ESVNDQVJEXG4iKTsKLQkJCWlkeCA9IGhlYWRlci5kbWEuYnVmX2lkeDsKLQkJCWlmIChpZHggPCAwIHx8IGlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgewotCQkJCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJCQkgIGlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKLQkJCQlyZXQgPSAtRUlOVkFMOwotCQkJCWdvdG8gY2xlYW51cDsKLQkJCX0KLQotCQkJYnVmID0gZG1hLT5idWZsaXN0W2lkeF07Ci0JCQlpZiAoYnVmLT5maWxlX3ByaXYgIT0gZmlsZV9wcml2IHx8IGJ1Zi0+cGVuZGluZykgewotCQkJCURSTV9FUlJPUigiYmFkIGJ1ZmZlciAlcCAlcCAlZFxuIiwKLQkJCQkJICBidWYtPmZpbGVfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkgIGJ1Zi0+cGVuZGluZyk7Ci0JCQkJcmV0ID0gLUVJTlZBTDsKLQkJCQlnb3RvIGNsZWFudXA7Ci0JCQl9Ci0KLQkJCWVtaXRfZGlzcGF0Y2hfYWdlID0gMTsKLQkJCXIzMDBfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9XQUlUOgotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9XQUlUXG4iKTsKLQkJCXIzMDBfY21kX3dhaXQoZGV2X3ByaXYsIGhlYWRlcik7Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX1NDUkFUQ0g6Ci0JCQlEUk1fREVCVUcoIlIzMDBfQ01EX1NDUkFUQ0hcbiIpOwotCQkJcmV0ID0gcjMwMF9zY3JhdGNoKGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJyMzAwX3NjcmF0Y2ggZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGNsZWFudXA7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQlkZWZhdWx0OgotCQkJRFJNX0VSUk9SKCJiYWQgY21kX3R5cGUgJWkgYXQgJXBcbiIsCi0JCQkJICBoZWFkZXIuaGVhZGVyLmNtZF90eXBlLAotCQkJCSAgY21kYnVmLT5idWYgLSBzaXplb2YoaGVhZGVyKSk7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byBjbGVhbnVwOwotCQl9Ci0JfQotCi0JRFJNX0RFQlVHKCJFTkRcbiIpOwotCi0gICAgICBjbGVhbnVwOgotCXIzMDBfcGFjaWZ5KGRldl9wcml2KTsKLQotCS8qIFdlIGVtaXQgdGhlIHZlcnRleCBidWZmZXIgYWdlIGhlcmUsIG91dHNpZGUgdGhlIHBhY2lmaWVyICJicmFja2V0cyIKLQkgKiBmb3IgdHdvIHJlYXNvbnM6Ci0JICogICgxKSBUaGlzIG1heSBjb2FsZXNjZSBtdWx0aXBsZSBhZ2UgZW1pc3Npb25zIGludG8gYSBzaW5nbGUgb25lIGFuZAotCSAqICAoMikgbW9yZSBpbXBvcnRhbnRseSwgc29tZSBjaGlwcyBsb2NrIHVwIGhhcmQgd2hlbiBzY3JhdGNoIHJlZ2lzdGVycwotCSAqICAgICAgYXJlIHdyaXR0ZW4gaW5zaWRlIHRoZSBwYWNpZmllciBicmFja2V0LgotCSAqLwotCWlmIChlbWl0X2Rpc3BhdGNoX2FnZSkgewotCQlSSU5HX0xPQ0FMUzsKLQotCQkvKiBFbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIGFnZSAqLwotCQlCRUdJTl9SSU5HKDIpOwotCQlSQURFT05fRElTUEFUQ0hfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JQ09NTUlUX1JJTkcoKTsKLQotCXJldHVybiByZXQ7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IzMDBfcmVnLmggYi9kcml2ZXJzL2NoYXIvZHJtL3IzMDBfcmVnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmNjY0YWYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9yMzAwX3JlZy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYyNiArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUgTmljb2xhaSBIYWVobmxlIGV0IGFsLgotCi1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLXRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWIKLWxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCi10aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotU29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi1JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLUZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAotVEhFIEFVVEhPUihTKSBBTkQvT1IgVEhFSVIgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAotREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi1PVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi1VU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmbmRlZiBfUjMwMF9SRUdfSAotI2RlZmluZSBfUjMwMF9SRUdfSAotCi0jZGVmaW5lIFIzMDBfTUNfSU5JVF9NSVNDX0xBVF9USU1FUgkweDE4MAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19DUFJfSU5JVF9MQVRfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19WRl9JTklUX0xBVF9TSElGVAk0Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AwUl9JTklUX0xBVF9TSElGVAk4Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AxUl9JTklUX0xBVF9TSElGVAkxMgotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19GSVhFRF9JTklUX0xBVF9TSElGVAkxNgotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19FMlJfSU5JVF9MQVRfU0hJRlQJMjAKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfU0FNRV9QQUdFX1BSSU9fU0hJRlQJMjQKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfSU5JVF9MQVRfU0hJRlQJMjgKLQotI2RlZmluZSBSMzAwX01DX0lOSVRfR0ZYX0xBVF9USU1FUgkweDE1NAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QwUl9JTklUX0xBVF9TSElGVAkwCi0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0czRDFSX0lOSVRfTEFUX1NISUZUCTQKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRzNEMlJfSU5JVF9MQVRfU0hJRlQJOAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QzUl9JTklUX0xBVF9TSElGVAkxMgotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19UWDBSX0lOSVRfTEFUX1NISUZUCTE2Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX1RYMVJfSU5JVF9MQVRfU0hJRlQJMjAKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQlJfSU5JVF9MQVRfU0hJRlQJMjQKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfRlVMTF9MQVRfU0hJRlQJMjgKLQotLyoKLSAqIFRoaXMgZmlsZSBjb250YWlucyByZWdpc3RlcnMgYW5kIGNvbnN0YW50cyBmb3IgdGhlIFIzMDAuIFRoZXkgaGF2ZSBiZWVuCi0gKiBmb3VuZCBtb3N0bHkgYnkgZXhhbWluaW5nIGNvbW1hbmQgYnVmZmVycyBjYXB0dXJlZCB1c2luZyBnbHh0ZXN0LCBhcyB3ZWxsCi0gKiBhcyBieSBleHRyYXBvbGF0aW5nIHNvbWUga25vd24gcmVnaXN0ZXJzIGFuZCBjb25zdGFudHMgZnJvbSB0aGUgUjIwMC4KLSAqIEkgYW0gZmFpcmx5IGNlcnRhaW4gdGhhdCB0aGV5IGFyZSBjb3JyZWN0IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlCi0gKiBpbiBjb21tZW50cy4KLSAqLwotCi0jZGVmaW5lIFIzMDBfU0VfVlBPUlRfWFNDQUxFICAgICAgICAgICAgICAgIDB4MUQ5OAotI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1hPRkZTRVQgICAgICAgICAgICAgICAweDFEOUMKLSNkZWZpbmUgUjMwMF9TRV9WUE9SVF9ZU0NBTEUgICAgICAgICAgICAgICAgMHgxREEwCi0jZGVmaW5lIFIzMDBfU0VfVlBPUlRfWU9GRlNFVCAgICAgICAgICAgICAgIDB4MURBNAotI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1pTQ0FMRSAgICAgICAgICAgICAgICAweDFEQTgKLSNkZWZpbmUgUjMwMF9TRV9WUE9SVF9aT0ZGU0VUICAgICAgICAgICAgICAgMHgxREFDCi0KLQotLyoKLSAqIFZlcnRleCBBcnJheSBQcm9jZXNzaW5nIChWQVApIENvbnRyb2wKLSAqIFN0b2xlbiBmcm9tIHIyMDAgY29kZSBmcm9tIENocmlzdG9waCBCcmlsbCAoSXQncyBhIGd1ZXNzISkKLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9DTlRMCTB4MjA4MAotCi0vKiBUaGlzIHJlZ2lzdGVyIGlzIHdyaXR0ZW4gZGlyZWN0bHkgYW5kIGFsc28gc3RhcnRzIGRhdGEgc2VjdGlvbgotICogaW4gbWFueSAzZCBDUF9QQUNLRVQzJ3MKLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9WRl9DTlRMCTB4MjA4NAotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgMAotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTk9ORSAgICAgICAgICAgICAgICAgICAgICgwPDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9JTlRTICAgICAgICAgICAgICAgICAgICgxPDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORVMgICAgICAgICAgICAgICAgICAgICgyPDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9TVFJJUCAgICAgICAgICAgICAgICgzPDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVTICAgICAgICAgICAgICAgICg0PDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfRkFOICAgICAgICAgICAgICg1PDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfU1RSSVAgICAgICAgICAgICg2PDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9MT09QICAgICAgICAgICAgICAgICgxMjw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTM8PDApCi0jCWRlZmluZSAgUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9RVUFEX1NUUklQICAgICAgICAgICAgICAgKDE0PDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9MWUdPTiAgICAgICAgICAgICAgICAgICgxNTw8MCkKLQotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX19TSElGVCAgICAgICAgICAgICAgNAotCS8qIFN0YXRlIGJhc2VkIC0gZGlyZWN0IHdyaXRlcyB0byByZWdpc3RlcnMgdHJpZ2dlciB2ZXJ0ZXgKLSAgICAgICAgICAgZ2VuZXJhdGlvbiAqLwotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1NUQVRFX0JBU0VEICAgICAgICAgKDA8PDQpCi0jCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1dBTEtfSU5ESUNFUyAgICAgICAgICAgICAoMTw8NCkKLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19WRVJURVhfTElTVCAgICAgICAgICgyPDw0KQotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1ZFUlRFWF9FTUJFRERFRCAgICAgKDM8PDQpCi0KLQkvKiBJIGRvbid0IHRoaW5rIEkgc2F3IHRoZXNlIHRocmVlIHVzZWQuLiAqLwotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fQ09MT1JfT1JERVJfX1NISUZUICAgICAgICAgICAgNgotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fVENMX09VVFBVVF9DVExfRU5BX19TSElGVCAgICAgOQotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJPR19TVFJFQU1fRU5BX19TSElGVCAgICAgICAgMTAKLQotCS8qIGluZGV4IHNpemUgLSB3aGVuIG5vdCBzZXQgdGhlIGluZGljZXMgYXJlIGFzc3VtZWQgdG8gYmUgMTYgYml0ICovCi0jCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19JTkRFWF9TSVpFXzMyYml0ICAgICAgICAgICAgICAoMTw8MTEpCi0JLyogbnVtYmVyIG9mIHZlcnRpY2VzICovCi0jCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19OVU1fVkVSVElDRVNfX1NISUZUICAgICAgICAgICAxNgotCi0vKiBCRUdJTjogV2lsZCBndWVzc2VzICovCi0jZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAgICAgICAgICAgIDB4MjA5MAotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUE9TX1BSRVNFTlQgICAgICgxPDwwKQotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfUFJFU0VOVCAgICgxPDwxKQotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfMV9QUkVTRU5UICgxPDwyKSAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVCAoMTw8MykgIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8wX19DT0xPUl8zX1BSRVNFTlQgKDE8PDQpICAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUFRfU0laRV9QUkVTRU5UICgxPDwxNikgLyogR1VFU1MgKi8KLQotI2RlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xICAgICAgICAgICAweDIwOTQKLQkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKLQkgICBvZiBjb21wb25lbnRzICovCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVCAwCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVCAzCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVCA2Ci0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVCA5Ci0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVCAxMgotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQgMTUKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUIDE4Ci0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVCAyMQotLyogRU5EOiBXaWxkIGd1ZXNzZXMgKi8KLQotI2RlZmluZSBSMzAwX1NFX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgMHgyMGIwCi0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDAyCi0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDA0Ci0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDA4Ci0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDEwCi0jCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDIwCi0jCWRlZmluZSAgICAgUjMwMF9WVFhfWFlfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCi0jCWRlZmluZSAgICAgUjMwMF9WVFhfWl9GTVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCi0jCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCi0jCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfTk9STUFMSVpFICAgICAgICAgICAgICAgICAweDAwMDAwODAwCi0jCWRlZmluZSAgICAgUjMwMF9WVFhfU1RfREVOT1JNQUxJWkVEICAgICAgICAgICAgICAweDAwMDAxMDAwCi0KLS8qIEJFR0lOOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAtIGxvdHMgb2YgdW5jZXJ0YWludGllcyAqLwotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1ZBUF9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgMHgyMTQwCi0jCWRlZmluZSBSMzAwX1ZDX05PX1NXQVAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQotIwlkZWZpbmUgUjMwMF9WQ18xNkJJVF9TV0FQICAgICAgICAgICAgICAgKDEgPDwgMCkKLSMJZGVmaW5lIFIzMDBfVkNfMzJCSVRfU1dBUCAgICAgICAgICAgICAgICgyIDw8IDApCi0jCWRlZmluZSBSMzAwX1ZBUF9UQ0xfQllQQVNTCQkoMSA8PCA4KQotCi0vKiBnYXAgKi8KLQotLyogV2hlcmUgZG8gd2UgZ2V0IG91ciB2ZXJ0ZXggZGF0YT8KLSAqCi0gKiBWZXJ0ZXggZGF0YSBlaXRoZXIgY29tZXMgZWl0aGVyIGZyb20gaW1tZWRpYXRlIG1vZGUgcmVnaXN0ZXJzIG9yIGZyb20KLSAqIHZlcnRleCBhcnJheXMuCi0gKiBUaGVyZSBhcHBlYXJzIHRvIGJlIG5vIG1peGVkIG1vZGUgKHRob3VnaCB3ZSBjYW4gZm9yY2UgdGhlIHBpdGNoIG9mCi0gKiB2ZXJ0ZXggYXJyYXlzIHRvIDAsIGVmZmVjdGl2ZWx5IHJldXNpbmcgdGhlIHNhbWUgZWxlbWVudCBvdmVyIGFuZCBvdmVyCi0gKiBhZ2FpbikuCi0gKgotICogSW1tZWRpYXRlIG1vZGUgaXMgY29udHJvbGxlZCBieSB0aGUgSU5QVVRfQ05UTCByZWdpc3RlcnMuIEkgYW0gbm90IHN1cmUKLSAqIGlmIHRoZXNlIHJlZ2lzdGVycyBpbmZsdWVuY2UgdmVydGV4IGFycmF5IHByb2Nlc3NpbmcuCi0gKgotICogVmVydGV4IGFycmF5cyBhcmUgY29udHJvbGxlZCB2aWEgdGhlIDNEX0xPQURfVkJQTlRSIHBhY2tldDMuCi0gKgotICogSW4gYm90aCBjYXNlcywgdmVydGV4IGF0dHJpYnV0ZXMgYXJlIHRoZW4gcGFzc2VkIHRocm91Z2ggSU5QVVRfUk9VVEUuCi0gKgotICogQmVnaW5uaW5nIHdpdGggSU5QVVRfUk9VVEVfMF8wIGlzIGEgbGlzdCBvZiBXT1JEcyB0aGF0IHJvdXRlIHZlcnRleCBkYXRhCi0gKiBpbnRvIHRoZSB2ZXJ0ZXggcHJvY2Vzc29yJ3MgaW5wdXQgcmVnaXN0ZXJzLgotICogVGhlIGZpcnN0IHdvcmQgcm91dGVzIHRoZSBmaXJzdCBpbnB1dCwgdGhlIHNlY29uZCB3b3JkIHRoZSBzZWNvbmQsIGV0Yy4KLSAqIFRoZSBjb3JyZXNwb25kaW5nIGlucHV0IGlzIHJvdXRlZCBpbnRvIHRoZSByZWdpc3RlciB3aXRoIHRoZSBnaXZlbiBpbmRleC4KLSAqIFRoZSBsaXN0IGlzIGVuZGVkIGJ5IGEgd29yZCB3aXRoIElOUFVUX1JPVVRFX0VORCBzZXQuCi0gKgotICogQWx3YXlzIHNldCBDT01QT05FTlRTXzQgaW4gaW1tZWRpYXRlIG1vZGUuCi0gKi8KLQotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzAgICAgICAgICAgICAweDIxNTAKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU18xICAgICAoMCA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTXzIgICAgICgxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0NPTVBPTkVOVFNfMyAgICAgKDIgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU180ICAgICAoMyA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTX1JHQkEgICg0IDw8IDApIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV9JRFhfU0hJRlQgICAgOAotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfSURYX01BU0sgICAgICgzMSA8PCA4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfRU5EICAgICAgICAgICgxIDw8IDEzKQotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9JTU1FRElBVEVfTU9ERSAgICgwIDw8IDE0KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVCAgICAgICAgICAgICgxIDw8IDE0KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9VTlNJR05FRF9CWVRFICAgICgyIDw8IDE0KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVF9DT0xPUiAgICAgICgzIDw8IDE0KSAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzEgICAgICAgICAgICAweDIxNTQKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8yICAgICAgICAgICAgMHgyMTU4Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfMyAgICAgICAgICAgIDB4MjE1QwotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzQgICAgICAgICAgICAweDIxNjAKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF81ICAgICAgICAgICAgMHgyMTY0Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfNiAgICAgICAgICAgIDB4MjE2OAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzcgICAgICAgICAgICAweDIxNkMKLQotLyogZ2FwICovCi0KLS8qIE5vdGVzOgotICogIC0gYWx3YXlzIHNldCB1cCB0byBwcm9kdWNlIGF0IGxlYXN0IHR3byBhdHRyaWJ1dGVzOgotICogICAgaWYgdmVydGV4IHByb2dyYW0gdXNlcyBvbmx5IHBvc2l0aW9uLCBmZ2xyeCB3aWxsIHNldCBub3JtYWwsIHRvbwotICogIC0gSU5QVVRfQ05UTF8wX0NPTE9SIGFuZCBJTlBVVF9DTlRMX0NPTE9SIGJpdHMgYXJlIGFsd2F5cyBlcXVhbC4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9DTlRMXzAgICAgICAgICAgICAgICAweDIxODAKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF8wX0NPTE9SICAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX0NOVExfMSAgICAgICAgICAgICAgIDB4MjE4NAotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1BPUyAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9OT1JNQUwgICAgICAgICAgICAweDAwMDAwMDAyCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfQ09MT1IgICAgICAgICAgICAgMHgwMDAwMDAwNAotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMCAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzEgICAgICAgICAgICAgICAweDAwMDAwODAwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEMyICAgICAgICAgICAgICAgMHgwMDAwMTAwMCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMyAgICAgICAgICAgICAgIDB4MDAwMDIwMDAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzQgICAgICAgICAgICAgICAweDAwMDA0MDAwIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEM1ICAgICAgICAgICAgICAgMHgwMDAwODAwMCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDNiAgICAgICAgICAgICAgIDB4MDAwMTAwMDAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzcgICAgICAgICAgICAgICAweDAwMDIwMDAwIC8qIEdVRVNTICovCi0KLS8qIGdhcCAqLwotCi0vKiBXb3JkcyBwYXJhbGxlbCB0byBJTlBVVF9ST1VURV8wOyBBbGwgd29yZHMgdGhhdCBhcmUgYWN0aXZlIGluIElOUFVUX1JPVVRFXzAKLSAqIGFyZSBzZXQgdG8gYSBzd2l6emxpbmcgYml0IHBhdHRlcm4sIG90aGVyIHdvcmRzIGFyZSAwLgotICoKLSAqIEluIGltbWVkaWF0ZSBtb2RlLCB0aGUgcGF0dGVybiBpcyBhbHdheXMgc2V0IHRvIHh5encuIEluIHZlcnRleCBhcnJheQotICogbW9kZSwgdGhlIHN3aXp6bGluZyBwYXR0ZXJuIGlzIGUuZy4gdXNlZCB0byBzZXQgencgY29tcG9uZW50cyBpbiB0ZXh0dXJlCi0gKiBjb29yZGluYXRlcyB3aXRoIG9ubHkgdHdlbyBjb21wb25lbnRzLgotICovCi0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMCAgICAgICAgICAgIDB4MjFFMAotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfWCAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9ZICAgIDEKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX1ogICAgMgotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfVyAgICAzCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9aRVJPIDQKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX09ORSAgNQotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfTUFTSyA3Ci0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1hfU0hJRlQgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfWV9TSElGVCAgICAgMwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9aX1NISUZUICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1dfU0hJRlQgICAgIDkKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfRU5BQkxFICAgICAgKDE1IDw8IDEyKQotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzEgICAgICAgICAgICAweDIxRTQKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8yICAgICAgICAgICAgMHgyMUU4Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMyAgICAgICAgICAgIDB4MjFFQwotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzQgICAgICAgICAgICAweDIxRjAKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV81ICAgICAgICAgICAgMHgyMUY0Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfNiAgICAgICAgICAgIDB4MjFGOAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzcgICAgICAgICAgICAweDIxRkMKLQotLyogRU5EOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAqLwotCi0vKiBnYXAgKi8KLQotLyogQkVHSU46IFVwbG9hZCB2ZXJ0ZXggcHJvZ3JhbSBhbmQgZGF0YSAqLwotCi0vKgotICogVGhlIHByb2dyYW1tYWJsZSB2ZXJ0ZXggc2hhZGVyIHVuaXQgaGFzIGEgbWVtb3J5IGJhbmsgb2YgdW5rbm93biBzaXplCi0gKiB0aGF0IGNhbiBiZSB3cml0dGVuIHRvIGluIDE2IGJ5dGUgdW5pdHMgYnkgd3JpdGluZyB0aGUgYWRkcmVzcyBpbnRvCi0gKiBVUExPQURfQUREUkVTUywgZm9sbG93ZWQgYnkgZGF0YSBpbiBVUExPQURfREFUQSAobXVsdGlwbGVzIG9mIDQgRFdPUkRzKS4KLSAqCi0gKiBQb2ludGVycyBpbnRvIHRoZSBtZW1vcnkgYmFuayBhcmUgYWx3YXlzIGluIG11bHRpcGxlcyBvZiAxNiBieXRlcy4KLSAqCi0gKiBUaGUgbWVtb3J5IGJhbmsgaXMgZGl2aWRlZCBpbnRvIGFyZWFzIHdpdGggZml4ZWQgbWVhbmluZy4KLSAqCi0gKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QUk9HUkFNOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbnMuCi0gKiBOYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGRyaXZlcnMgZnJvbSBBVEkgc3VnZ2VzdCBzaXplIDI1NiAoaS5lLiA0S0IpLAotICogd2hlcmVhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KLSAqCi0gKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QQVJBTUVURVJTOiBWZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgotICogTmF0aXZlIHJlcG9ydGVkIGxpbWl0cyBhbmQgdGhlIFZQSSBsYXlvdXQgc3VnZ2VzdCBzaXplIDI1Niwgd2hlcmVhcwotICogZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KLSAqCi0gKiBBdCBhZGRyZXNzIFVQTE9BRF9QT0lOVFNJWkUgaXMgYSB2ZWN0b3IgKDAsIDAsIHBzLCAwKSwgd2hlcmUgcHMgaXMgdGhlCi0gKiBmbG9hdGluZyBwb2ludCBwb2ludHNpemUuIFRoZSBleGFjdCBwdXJwb3NlIG9mIHRoaXMgc3RhdGUgaXMgdW5jZXJ0YWluLAotICogYXMgdGhlcmUgaXMgYWxzbyB0aGUgUjMwMF9SRV9QT0lOVFNJWkUgcmVnaXN0ZXIuCi0gKgotICogTXVsdGlwbGUgdmVydGV4IHByb2dyYW1zIGFuZCBwYXJhbWV0ZXIgc2V0cyBjYW4gYmUgbG9hZGVkIGF0IG9uY2UsCi0gKiB3aGljaCBjb3VsZCBleHBsYWluIHRoZSBzaXplIGRpc2NyZXBhbmN5LgotICovCi0jZGVmaW5lIFIzMDBfVkFQX1BWU19VUExPQURfQUREUkVTUyAgICAgICAgIDB4MjIwMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfVVBMT0FEX1BST0dSQU0gICAgICAgICAgIDB4MDAwMDAwMDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUFZTX1VQTE9BRF9QQVJBTUVURVJTICAgICAgICAweDAwMDAwMjAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BWU19VUExPQURfUE9JTlRTSVpFICAgICAgICAgMHgwMDAwMDQwNgotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1ZBUF9QVlNfVVBMT0FEX0RBVEEgICAgICAgICAgICAweDIyMDgKLQotLyogRU5EOiBVcGxvYWQgdmVydGV4IHByb2dyYW0gYW5kIGRhdGEgKi8KLQotLyogZ2FwICovCi0KLS8qIEkgZG8gbm90IGtub3cgdGhlIHB1cnBvc2Ugb2YgdGhpcyByZWdpc3Rlci4gSG93ZXZlciwgSSBkbyBrbm93IHRoYXQKLSAqIGl0IGlzIHNldCB0byAyMjFDX0NMRUFSIGZvciBjbGVhciBvcGVyYXRpb25zIGFuZCB0byAyMjFDX05PUk1BTAotICogZm9yIG5vcm1hbCByZW5kZXJpbmcuCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjFDICAgICAgICAgICAgICAgMHgyMjFDCi0jICAgICAgIGRlZmluZSBSMzAwXzIyMUNfTk9STUFMICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAotIyAgICAgICBkZWZpbmUgUjMwMF8yMjFDX0NMRUFSICAgICAgICAgICAgICAgICAgIDB4MDAwMUMwMDAKLQotLyogVGhlc2Ugc2VlbSB0byBiZSBwZXItcGl4ZWwgYW5kIHBlci12ZXJ0ZXggWCBhbmQgWSBjbGlwcGluZyBwbGFuZXMuIFRoZSBmaXJzdAotICogcGxhbmUgaXMgcGVyLXBpeGVsIGFuZCB0aGUgc2Vjb25kIHBsYW5lIGlzIHBlci12ZXJ0ZXguCi0gKgotICogVGhpcyB3YXMgZGV0ZXJtaW5lZCBieSBleHBlcmltZW50YXRpb24gYWxvbmUgYnV0IEkgYmVsaWV2ZSBpdCBpcyBjb3JyZWN0LgotICoKLSAqIFRoZXNlIHJlZ2lzdGVycyBhcmUgY2FsbGVkIFhfUVVBRDBfMV9GTCB0byBYX1FVQUQwXzRfRkwgYnkgZ2x4dGVzdC4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9DTElQX1hfMCAgICAgICAgICAgICAgICAgICAweDIyMjAKLSNkZWZpbmUgUjMwMF9WQVBfQ0xJUF9YXzEgICAgICAgICAgICAgICAgICAgMHgyMjI0Ci0jZGVmaW5lIFIzMDBfVkFQX0NMSVBfWV8wICAgICAgICAgICAgICAgICAgIDB4MjIyOAotI2RlZmluZSBSMzAwX1ZBUF9DTElQX1lfMSAgICAgICAgICAgICAgICAgICAweDIyMzAKLQotLyogZ2FwICovCi0KLS8qIFNvbWV0aW1lcywgRU5EX09GX1BLVCBhbmQgMHgyMjg0PTAgYXJlIHRoZSBvbmx5IGNvbW1hbmRzIHNlbnQgYmV0d2VlbgotICogcmVuZGVyaW5nIGNvbW1hbmRzIGFuZCBvdmVyd3JpdGluZyB2ZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgotICogVGhlcmVmb3JlLCBJIHN1c3BlY3Qgd3JpdGluZyB6ZXJvIHRvIDB4MjI4NCBzeW5jaHJvbml6ZXMgdGhlIGVuZ2luZSBhbmQKLSAqIGF2b2lkcyBidWdzIGNhdXNlZCBieSBzdGlsbCBydW5uaW5nIHNoYWRlcnMgcmVhZGluZyBiYWQgZGF0YSBmcm9tIG1lbW9yeS4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9QVlNfV0FJVElETEUgICAgICAgICAgICAgICAweDIyODQgLyogR1VFU1MgKi8KLQotLyogQWJzb2x1dGVseSBubyBjbHVlIHdoYXQgdGhpcyByZWdpc3RlciBpcyBhYm91dC4gKi8KLSNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjg4ICAgICAgICAgICAgICAgMHgyMjg4Ci0jICAgICAgIGRlZmluZSBSMzAwXzIyODhfUjMwMCAgICAgICAgICAgICAgICAgICAgMHgwMDc1MDAwMCAvKiAtLSBuaCAqLwotIyAgICAgICBkZWZpbmUgUjMwMF8yMjg4X1JWMzUwICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgLyogLS0gVmxhZGltaXIgKi8KLQotLyogZ2FwICovCi0KLS8qIEFkZHJlc3NlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9uIGFyZWEgb2YgdGhlCi0gKiBtZW1vcnkgYmFuay4gUFJPR1JBTV9FTkQgcG9pbnRzIHRvIHRoZSBsYXN0IGluc3RydWN0aW9uIG9mIHRoZSBhY3RpdmUKLSAqIHByb2dyYW0KLSAqCi0gKiBUaGUgbWVhbmluZyBvZiB0aGUgdHdvIFVOS05PV04gZmllbGRzIGlzIG9idmlvdXNseSBub3Qga25vd24uIEhvd2V2ZXIsCi0gKiBleHBlcmltZW50cyBzbyBmYXIgaGF2ZSBzaG93biB0aGF0IGJvdGggKm11c3QqIHBvaW50IHRvIGFuIGluc3RydWN0aW9uCi0gKiBpbnNpZGUgdGhlIHZlcnRleCBwcm9ncmFtLCBvdGhlcndpc2UgdGhlIEdQVSBsb2NrcyB1cC4KLSAqCi0gKiBmZ2xyeCB1c3VhbGx5IHNldHMgQ05UTF8zX1VOS05PV04gdG8gdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbSBhbmQKLSAqIFIzMDBfUFZTX0NOVExfMV9QT1NfRU5EX1NISUZUIHBvaW50cyB0byBpbnN0cnVjdGlvbiB3aGVyZSBsYXN0IHdyaXRlIHRvCi0gKiBwb3NpdGlvbiB0YWtlcyBwbGFjZS4KLSAqCi0gKiBNb3N0IGxpa2VseSB0aGlzIGlzIHVzZWQgdG8gaWdub3JlIHJlc3Qgb2YgdGhlIHByb2dyYW0gaW4gY2FzZXMKLSAqIHdoZXJlIGdyb3VwIG9mIHZlcnRzIGFyZW50IHZpc2libGUuIEZvciBzb21lIHJlYXNvbiB0aGlzICJzZWN0aW9uIgotICogaXMgc29tZXRpbWVzIGFjY2VwdGVkIG90aGVyIGluc3RydWN0aW9uIHRoYXQgaGF2ZSBubyByZWxhdGlvbnNoaXAgd2l0aAotICogcG9zaXRpb24gY2FsY3VsYXRpb25zLgotICovCi0jZGVmaW5lIFIzMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAgIDB4MjJEMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8xX1BST0dSQU1fU1RBUlRfU0hJRlQgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUE9TX0VORF9TSElGVCAgICAgICAgIDEwCi0jICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUFJPR1JBTV9FTkRfU0hJRlQgICAgIDIwCi0vKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRoZSB0aGUgdmVydGV4IHByb2dyYW0gcGFyYW1ldGVycyBhcmVhLiAqLwotI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8yICAgICAgICAgICAgICAgICAweDIyRDQKLSMgICAgICAgZGVmaW5lIFIzMDBfUFZTX0NOVExfMl9QQVJBTV9PRkZTRVRfU0hJRlQgMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8yX1BBUkFNX0NPVU5UX1NISUZUICAxNgotI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8zCSAgICAgICAgICAgMHgyMkQ4Ci0jICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOX1NISUZUIDEwCi0jICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOMl9TSElGVCAwCi0KLS8qIFRoZSBlbnRpcmUgcmFuZ2UgZnJvbSAweDIzMDAgdG8gMHgyQUMgaW5jbHVzaXZlIHNlZW1zIHRvIGJlIHVzZWQgZm9yCi0gKiBpbW1lZGlhdGUgdmVydGljZXMKLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUiAgICAgICAgICAgICAgICAweDI0NjQKLSNkZWZpbmUgUjMwMF9WQVBfVlRYX0NPTE9SX0cgICAgICAgICAgICAgICAgMHgyNDY4Ci0jZGVmaW5lIFIzMDBfVkFQX1ZUWF9DT0xPUl9CICAgICAgICAgICAgICAgIDB4MjQ2QwotI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8xICAgICAgICAgICAgICAweDI0OTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgyKigpICovCi0jZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzEgICAgICAgICAgICAgIDB4MjQ5NAotI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUEtEICAgICAgICAgICAgICAweDI0OUMgLyogUkdCQSAqLwotI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8yICAgICAgICAgICAgICAweDI0QTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgzKigpICovCi0jZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzIgICAgICAgICAgICAgIDB4MjRBNAotI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWl8yICAgICAgICAgICAgICAweDI0QTgKLS8qIHdyaXRlIDAgdG8gaW5kaWNhdGUgZW5kIG9mIHBhY2tldD8gKi8KLSNkZWZpbmUgUjMwMF9WQVBfVlRYX0VORF9PRl9QS1QgICAgICAgICAgICAgMHgyNEFDCi0KLS8qIGdhcCAqLwotCi0vKiBUaGVzZSBhcmUgdmFsdWVzIGZyb20gcjMwMF9yZWcvcjMwMF9yZWcuaCAtIHRoZXkgYXJlIGtub3duIHRvIGJlIGNvcnJlY3QKLSAqIGFuZCBhcmUgaGVyZSBzbyB3ZSBjYW4gdXNlIG9uZSByZWdpc3RlciBmaWxlIGluc3RlYWQgb2Ygc2V2ZXJhbAotICogLSBWbGFkaW1pcgotICovCi0jZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzAJMHg0MDAwCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QT1NfUFJFU0VOVAkoMTw8MCkKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzBfUFJFU0VOVAkoMTw8MSkKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzFfUFJFU0VOVAkoMTw8MikKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVAkoMTw8MykKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzNfUFJFU0VOVAkoMTw8NCkKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SX1NQQUNFCSgweGY8PDUpCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QVF9TSVpFX1BSRVNFTlQJKDB4MTw8MTYpCi0KLSNkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMQkweDQwMDQKLQkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKLQkgICBvZiBjb21wb25lbnRzICovCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVAkwCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVAkzCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVAk2Ci0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVAk5Ci0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVAkxMgotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQJMTUKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUCTE4Ci0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVAkyMQotCi0vKiBVTkszMCBzZWVtcyB0byBlbmFibGVzIHBvaW50IHRvIHF1YWQgdHJhbnNmb3JtYXRpb24gb24gdGV4dHVyZXMKLSAqIChvciBzb21ldGhpbmcgY2xvc2VseSByZWxhdGVkIHRvIHRoYXQpLgotICogVGhpcyBiaXQgaXMgcmF0aGVyIGZhdGFsIGF0IHRoZSB0aW1lIGJlaW5nIGR1ZSB0byBsYWNraW5ncyBhdCBwaXhlbAotICogc2hhZGVyIHNpZGUKLSAqLwotI2RlZmluZSBSMzAwX0dCX0VOQUJMRQkweDQwMDgKLSMJZGVmaW5lIFIzMDBfR0JfUE9JTlRfU1RVRkZfRU5BQkxFCSgxPDwwKQotIwlkZWZpbmUgUjMwMF9HQl9MSU5FX1NUVUZGX0VOQUJMRQkoMTw8MSkKLSMJZGVmaW5lIFIzMDBfR0JfVFJJQU5HTEVfU1RVRkZfRU5BQkxFCSgxPDwyKQotIwlkZWZpbmUgUjMwMF9HQl9TVEVOQ0lMX0FVVE9fRU5BQkxFCSgxPDw0KQotIwlkZWZpbmUgUjMwMF9HQl9VTkszMQkJCSgxPDwzMSkKLQkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMiBiaXRzIHdpZGUgKi8KLSNkZWZpbmUgUjMwMF9HQl9URVhfUkVQTElDQVRFCTAKLSNkZWZpbmUgUjMwMF9HQl9URVhfU1QJCTEKLSNkZWZpbmUgUjMwMF9HQl9URVhfU1RSCQkyCi0jCWRlZmluZSBSMzAwX0dCX1RFWDBfU09VUkNFX1NISUZUCTE2Ci0jCWRlZmluZSBSMzAwX0dCX1RFWDFfU09VUkNFX1NISUZUCTE4Ci0jCWRlZmluZSBSMzAwX0dCX1RFWDJfU09VUkNFX1NISUZUCTIwCi0jCWRlZmluZSBSMzAwX0dCX1RFWDNfU09VUkNFX1NISUZUCTIyCi0jCWRlZmluZSBSMzAwX0dCX1RFWDRfU09VUkNFX1NISUZUCTI0Ci0jCWRlZmluZSBSMzAwX0dCX1RFWDVfU09VUkNFX1NISUZUCTI2Ci0jCWRlZmluZSBSMzAwX0dCX1RFWDZfU09VUkNFX1NISUZUCTI4Ci0jCWRlZmluZSBSMzAwX0dCX1RFWDdfU09VUkNFX1NISUZUCTMwCi0KLS8qIE1TUE9TIC0gcG9zaXRpb25zIGZvciBtdWx0aXNhbXBsZSBhbnRpYWxpYXNpbmcgKD8pICovCi0jZGVmaW5lIFIzMDBfR0JfTVNQT1MwCTB4NDAxMAotCS8qIHNoaWZ0cyAtIGVhY2ggb2YgdGhlIGZpZWxkcyBpcyA0IGJpdHMgKi8KLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19YMF9TSElGVAkwCi0jCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTBfU0hJRlQJNAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gxX1NISUZUCTgKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19ZMV9TSElGVAkxMgotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gyX1NISUZUCTE2Ci0jCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTJfU0hJRlQJMjAKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU0JEMF9ZCQkyNAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TQkQwX1gJCTI4Ci0KLSNkZWZpbmUgUjMwMF9HQl9NU1BPUzEJMHg0MDE0Ci0jCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWDNfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1kzX1NISUZUCTQKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNF9TSElGVAk4Ci0jCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWTRfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNV9TSElGVAkxNgotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1k1X1NISUZUCTIwCi0jCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNCRDEJCTI0Ci0KLQotI2RlZmluZSBSMzAwX0dCX1RJTEVfQ09ORklHCTB4NDAxOAotIwlkZWZpbmUgUjMwMF9HQl9USUxFX0VOQUJMRQkoMTw8MCkKLSMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1JWMzAwCTAKLSMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1IzMDAJKDM8PDEpCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfUElQRV9DT1VOVF9SNDIwCSg3PDwxKQotIwlkZWZpbmUgUjMwMF9HQl9USUxFX1BJUEVfQ09VTlRfUlY0MTAJKDM8PDEpCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV84CQkwCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8xNgkJKDE8PDQpCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8zMgkJKDI8PDQpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMQkJKDA8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMgkJKDE8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfNAkJKDI8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfOAkJKDM8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTYJCSg0PDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzMyCQkoNTw8NikKLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfU0laRV82NAkJKDY8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTI4CQkoNzw8NikKLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfWF9TSElGVAkJOQkvKiAzIGJpdHMgd2lkZSAqLwotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9ZX1NISUZUCQkxMgkvKiAzIGJpdHMgd2lkZSAqLwotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9USUxFX0EJCTAKLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfVElMRV9CCQkoMTw8MTUpCi0jCWRlZmluZSBSMzAwX0dCX1NVQlBJWEVMXzFfMTIJCTAKLSMJZGVmaW5lIFIzMDBfR0JfU1VCUElYRUxfMV8xNgkJKDE8PDE2KQotCi0jZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFCTB4NDAyNAotCS8qIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBpcyAyIGJpdHMgd2lkZSAqLwotI2RlZmluZSBSMzAwX0dCX0ZJRk9fU0laRV8zMgkwCi0jZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFXzY0CTEKLSNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMTI4CTIKLSNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMjU2CTMKLSMJZGVmaW5lIFIzMDBfU0NfSUZJRk9fU0laRV9TSElGVAkwCi0jCWRlZmluZSBSMzAwX1NDX1RaRklGT19TSVpFX1NISUZUCTIKLSMJZGVmaW5lIFIzMDBfU0NfQkZJRk9fU0laRV9TSElGVAk0Ci0KLSMJZGVmaW5lIFIzMDBfVVNfT0ZJRk9fU0laRV9TSElGVAkxMgotIwlkZWZpbmUgUjMwMF9VU19XRklGT19TSVpFX1NISUZUCTE0Ci0JLyogdGhlIGZvbGxvd2luZyB1c2UgdGhlIHNhbWUgY29uc3RhbnRzIGFzIGFib3ZlLCBidXQgbWVhbmluZyBpcwotCSAgIGlzIHRpbWVzIDIgKGkuZS4gaW5zdGVhZCBvZiAzMiB3b3JkcyBpdCBtZWFucyA2NCAqLwotIwlkZWZpbmUgUjMwMF9SU19URklGT19TSVpFX1NISUZUCTYKLSMJZGVmaW5lIFIzMDBfUlNfQ0ZJRk9fU0laRV9TSElGVAk4Ci0jCWRlZmluZSBSMzAwX1VTX1JBTV9TSVpFX1NISUZUCQkxMAotCS8qIHdhdGVybWFya3MsIDMgYml0cyB3aWRlICovCi0jCWRlZmluZSBSMzAwX1JTX0hJR0hXQVRFUl9DT0xfU0hJRlQJMTYKLSMJZGVmaW5lIFIzMDBfUlNfSElHSFdBVEVSX1RFWF9TSElGVAkxOQotIwlkZWZpbmUgUjMwMF9PRklGT19ISUdIV0FURVJfU0hJRlQJMjIJLyogdHdvIGJpdHMgb25seSAqLwotIwlkZWZpbmUgUjMwMF9DVUJFX0ZJRk9fSElHSFdBVEVSX0NPTF9TSElGVAkyNAotCi0jZGVmaW5lIFIzMDBfR0JfU0VMRUNUCTB4NDAxQwotIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MwQQkJMAotIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MxQQkJMQotIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MyQQkJMgotIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MzQQkJMwotIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUXzFfMV9XCTQKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9aCQk1Ci0jCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF9aCQkwCi0jCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF8xXzFfVwkoMTw8MykKLSMJZGVmaW5lIFIzMDBfR0JfV19TRUxFQ1RfMV9XCQkwCi0jCWRlZmluZSBSMzAwX0dCX1dfU0VMRUNUXzEJCSgxPDw0KQotCi0jZGVmaW5lIFIzMDBfR0JfQUFfQ09ORklHCQkweDQwMjAKLSMJZGVmaW5lIFIzMDBfQUFfRElTQUJMRQkJCTB4MDAKLSMJZGVmaW5lIFIzMDBfQUFfRU5BQkxFCQkJMHgwMQotIwlkZWZpbmUgUjMwMF9BQV9TVUJTQU1QTEVTXzIJCTAKLSMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU18zCQkoMTw8MSkKLSMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU180CQkoMjw8MSkKLSMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU182CQkoMzw8MSkKLQotLyogZ2FwICovCi0KLS8qIFplcm8gdG8gZmx1c2ggY2FjaGVzLiAqLwotI2RlZmluZSBSMzAwX1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDAKLSNkZWZpbmUgUjMwMF9UWF9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgMHgwCi0KLS8qIFRoZSB1cHBlciBlbmFibGUgYml0cyBhcmUgZ3Vlc3NlZCwgYmFzZWQgb24gZmdscnggcmVwb3J0ZWQgbGltaXRzLiAqLwotI2RlZmluZSBSMzAwX1RYX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAweDQxMDQKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMSAgICAgICAgICAgICAgICAgICgxIDw8IDEpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV8yICAgICAgICAgICAgICAgICAgKDEgPDwgMikKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzMgICAgICAgICAgICAgICAgICAoMSA8PCAzKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNCAgICAgICAgICAgICAgICAgICgxIDw8IDQpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV81ICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzYgICAgICAgICAgICAgICAgICAoMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNyAgICAgICAgICAgICAgICAgICgxIDw8IDcpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV84ICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzkgICAgICAgICAgICAgICAgICAoMSA8PCA5KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTEgICAgICAgICAgICAgICAgICgxIDw8IDExKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTIgICAgICAgICAgICAgICAgICgxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTMgICAgICAgICAgICAgICAgICgxIDw8IDEzKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTQgICAgICAgICAgICAgICAgICgxIDw8IDE0KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTUgICAgICAgICAgICAgICAgICgxIDw8IDE1KQotCi0vKiBUaGUgcG9pbnRzaXplIGlzIGdpdmVuIGluIG11bHRpcGxlcyBvZiA2LiBUaGUgcG9pbnRzaXplIGNhbiBiZQotICogZW5vcm1vdXM6IENsZWFyKCkgcmVuZGVycyBhIHNpbmdsZSBwb2ludCB0aGF0IGZpbGxzIHRoZSBlbnRpcmUKLSAqIGZyYW1lYnVmZmVyLgotICovCi0jZGVmaW5lIFIzMDBfUkVfUE9JTlRTSVpFICAgICAgICAgICAgICAgICAgIDB4NDIxQwotIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfWV9TSElGVCAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1lfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1BPSU5UU0laRV9YX1NISUZUICAgICAgICAgICAgMTYKLSMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1hfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDE2KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfTUFYICAgICAgICAgICAgIChSMzAwX1BPSU5UU0laRV9ZX01BU0sgLyA2KQotCi0vKiBUaGUgbGluZSB3aWR0aCBpcyBnaXZlbiBpbiBtdWx0aXBsZXMgb2YgNi4KLSAqIEluIGRlZmF1bHQgbW9kZSBsaW5lcyBhcmUgY2xhc3NpZmllZCBhcyB2ZXJ0aWNhbCBsaW5lcy4KLSAqIEhPOiBob3Jpem9udGFsCi0gKiBWRTogdmVydGljYWwgb3IgaG9yaXpvbnRhbAotICogSE8gJiBWRTogbm8gY2xhc3NpZmljYXRpb24KLSAqLwotI2RlZmluZSBSMzAwX1JFX0xJTkVfQ05UICAgICAgICAgICAgICAgICAgICAgIDB4NDIzNAotIyAgICAgICBkZWZpbmUgUjMwMF9MSU5FU0laRV9TSElGVCAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfTElORVNJWkVfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0xJTkVTSVpFX01BWCAgICAgICAgICAgICAoUjMwMF9MSU5FU0laRV9NQVNLIC8gNikKLSMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfSE8gICAgICAgICAgICAgICAoMSA8PCAxNikKLSMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfVkUgICAgICAgICAgICAgICAoMSA8PCAxNykKLQotLyogU29tZSBzb3J0IG9mIHNjYWxlIG9yIGNsYW1wIHZhbHVlIGZvciB0ZXhjb29yZGxlc3MgdGV4dHVyZXMuICovCi0jZGVmaW5lIFIzMDBfUkVfVU5LNDIzOCAgICAgICAgICAgICAgICAgICAgICAgMHg0MjM4Ci0KLS8qIFNvbWV0aGluZyBzaGFkZSByZWxhdGVkICovCi0jZGVmaW5lIFIzMDBfUkVfU0hBREUgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Mjc0Ci0KLSNkZWZpbmUgUjMwMF9SRV9TSEFERV9NT0RFTCAgICAgICAgICAgICAgICAgICAweDQyNzgKLSMJZGVmaW5lIFIzMDBfUkVfU0hBREVfTU9ERUxfU01PT1RIICAgICAweDNhYWFhCi0jCWRlZmluZSBSMzAwX1JFX1NIQURFX01PREVMX0ZMQVQgICAgICAgMHgzOTU5NQotCi0vKiBEYW5nZXJvdXMgKi8KLSNkZWZpbmUgUjMwMF9SRV9QT0xZR09OX01PREUgICAgICAgICAgICAgICAgICAweDQyODgKLSMJZGVmaW5lIFIzMDBfUE1fRU5BQkxFRCAgICAgICAgICAgICAgICAoMSA8PCAwKQotIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9QT0lOVCAgICAgICAgICAgICgwIDw8IDApCi0jCWRlZmluZSBSMzAwX1BNX0JBQ0tfUE9JTlQgICAgICAgICAgICAgKDAgPDwgMCkKLSMJZGVmaW5lIFIzMDBfUE1fRlJPTlRfTElORSAgICAgICAgICAgICAoMSA8PCA0KQotIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9GSUxMICAgICAgICAgICAgICgxIDw8IDUpCi0jCWRlZmluZSBSMzAwX1BNX0JBQ0tfTElORSAgICAgICAgICAgICAgKDEgPDwgNykKLSMJZGVmaW5lIFIzMDBfUE1fQkFDS19GSUxMICAgICAgICAgICAgICAoMSA8PCA4KQotCi0vKiBGb2cgcGFyYW1ldGVycyAqLwotI2RlZmluZSBSMzAwX1JFX0ZPR19TQ0FMRSAgICAgICAgICAgICAgICAgICAgIDB4NDI5NAotI2RlZmluZSBSMzAwX1JFX0ZPR19TVEFSVCAgICAgICAgICAgICAgICAgICAgIDB4NDI5OAotCi0vKiBOb3Qgc3VyZSB3aHkgdGhlcmUgYXJlIGR1cGxpY2F0ZSBvZiBmYWN0b3IgYW5kIGNvbnN0YW50IHZhbHVlcy4KLSAqIE15IGJlc3QgZ3Vlc3Mgc28gZmFyIGlzIHRoYXQgdGhlcmUgYXJlIHNlcGFyYXRlIHpiaWFzZXMgZm9yIHRlc3QgYW5kIHdyaXRlLgotICogT3JkZXJpbmcgbWlnaHQgYmUgd3JvbmcuCi0gKiBTb21lIG9mIHRoZSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IGZnbCBoYXMgYSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiB6YmlhcwotICogdmlhIHBpeGVsIHNoYWRlcnMuCi0gKi8KLSNkZWZpbmUgUjMwMF9SRV9aQklBU19DTlRMICAgICAgICAgICAgICAgICAgICAweDQyQTAgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQTQKLSNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQTgKLSNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQUMKLSNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQjAKLQotLyogVGhpcyByZWdpc3RlciBuZWVkcyB0byBiZSBzZXQgdG8gKDE8PDEpIGZvciBSVjM1MCB0byBjb3JyZWN0bHkKLSAqIHBlcmZvcm0gZGVwdGggdGVzdCAoc2VlIC0tdmItdHJpYW5nbGVzIGluIHIzMDBfZGVtbykKLSAqIERvbid0IGtub3cgYWJvdXQgb3RoZXIgY2hpcHMuIC0gVmxhZGltaXIKLSAqIFRoaXMgaXMgc2V0IHRvIDMgd2hlbiBHTF9QT0xZR09OX09GRlNFVF9GSUxMIGlzIG9uLgotICogTXkgZ3Vlc3MgaXMgdGhhdCB0aGVyZSBhcmUgdHdvIGJpdHMgZm9yIGVhY2ggemJpYXMgcHJpbWl0aXZlCi0gKiAoRklMTCwgTElORSwgUE9JTlQpLgotICogIE9uZSB0byBlbmFibGUgZGVwdGggdGVzdCBhbmQgb25lIGZvciBkZXB0aCB3cml0ZS4KLSAqIFlldCB0aGlzIGRvZXNudCBleHBsYWluIHdoeSBkZXB0aCB3cml0ZXMgd29yayAuLi4KLSAqLwotI2RlZmluZSBSMzAwX1JFX09DQ0xVU0lPTl9DTlRMCQkgICAgMHg0MkI0Ci0jCWRlZmluZSBSMzAwX09DQ0xVU0lPTl9PTgkJKDE8PDEpCi0KLSNkZWZpbmUgUjMwMF9SRV9DVUxMX0NOVEwgICAgICAgICAgICAgICAgICAgMHg0MkI4Ci0jICAgICAgIGRlZmluZSBSMzAwX0NVTExfRlJPTlQgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ1VMTF9CQUNLICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUk9OVF9GQUNFX0NDVyAgICAgICAgICAgICAgICgwIDw8IDIpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZST05UX0ZBQ0VfQ1cgICAgICAgICAgICAgICAgKDEgPDwgMikKLQotCi0vKiBCRUdJTjogUmFzdGVyaXphdGlvbiAvIEludGVycG9sYXRvcnMgLSBtYW55IGd1ZXNzZXMgKi8KLQotLyogMF9VTktOT1dOXzE4IGhhcyBhbHdheXMgYmVlbiBzZXQgZXhjZXB0IGZvciBjbGVhciBvcGVyYXRpb25zLgotICogVENfQ05UIGlzIHRoZSBudW1iZXIgb2YgaW5jb21pbmcgdGV4dHVyZSBjb29yZGluYXRlIHNldHMgKGkuZS4gaXQgZGVwZW5kcwotICogb24gdGhlIHZlcnRleCBwcm9ncmFtLCAqbm90KiB0aGUgZnJhZ21lbnQgcHJvZ3JhbSkKLSAqLwotI2RlZmluZSBSMzAwX1JTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgICAweDQzMDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfQ05UTF9UQ19DTlRfU0hJRlQgICAgICAgICAyCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0NOVExfVENfQ05UX01BU0sgICAgICAgICAgKDcgPDwgMikKLQkvKiBudW1iZXIgb2YgY29sb3IgaW50ZXJwb2xhdG9ycyB1c2VkICovCi0jCWRlZmluZSBSMzAwX1JTX0NOVExfQ0lfQ05UX1NISUZUICAgICAgICAgNwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19DTlRMXzBfVU5LTk9XTl8xOCAgICAgICAgICgxIDw8IDE4KQotCS8qIEd1ZXNzOiBSU19DTlRMXzEgaG9sZHMgdGhlIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgUlNfUk9VVEVfbgotCSAgIHJlZ2lzdGVyLiAqLwotI2RlZmluZSBSMzAwX1JTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgICAweDQzMDQKLQotLyogZ2FwICovCi0KLS8qIE9ubHkgdXNlZCBmb3IgdGV4dHVyZSBjb29yZGluYXRlcy4KLSAqIFVzZSB0aGUgc291cmNlIGZpZWxkIHRvIHJvdXRlIHRleHR1cmUgY29vcmRpbmF0ZSBpbnB1dCBmcm9tIHRoZQotICogdmVydGV4IHByb2dyYW0gdG8gdGhlIGRlc2lyZWQgaW50ZXJwb2xhdG9yLiBOb3RlIHRoYXQgdGhlIHNvdXJjZQotICogZmllbGQgaXMgcmVsYXRpdmUgdG8gdGhlIG91dHB1dHMgdGhlIHZlcnRleCBwcm9ncmFtICphY3R1YWxseSoKLSAqIHdyaXRlcy4gSWYgYSB2ZXJ0ZXggcHJvZ3JhbSBvbmx5IHdyaXRlcyB0ZXhjb29yZFsxXSwgdGhpcyB3aWxsCi0gKiBiZSBzb3VyY2UgaW5kZXggMC4KLSAqIFNldCBJTlRFUlBfVVNFRCBvbiBhbGwgaW50ZXJwb2xhdG9ycyB0aGF0IHByb2R1Y2UgZGF0YSB1c2VkIGJ5Ci0gKiB0aGUgZnJhZ21lbnQgcHJvZ3JhbS4gSU5URVJQX1VTRUQgbG9va3MgbGlrZSBhIHN3aXp6bGluZyBtYXNrLAotICogYnV0IEkgaGF2ZW4ndCBzZWVuIGl0IHVzZWQgdGhhdCB3YXkuCi0gKgotICogTm90ZTogVGhlIF9VTktOT1dOIGNvbnN0YW50cyBhcmUgYWx3YXlzIHNldCBpbiB0aGVpciByZXNwZWN0aXZlCi0gKiByZWdpc3Rlci4gSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgbmVjZXNzYXJ5LgotICovCi0jZGVmaW5lIFIzMDBfUlNfSU5URVJQXzAgICAgICAgICAgICAgICAgICAgIDB4NDMxMAotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF8xICAgICAgICAgICAgICAgICAgICAweDQzMTQKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQXzFfVU5LTk9XTiAgICAgICAgICAweDQwCi0jZGVmaW5lIFIzMDBfUlNfSU5URVJQXzIgICAgICAgICAgICAgICAgICAgIDB4NDMxOAotIyAgICAgICBkZWZpbmUgUjMwMF9SU19JTlRFUlBfMl9VTktOT1dOICAgICAgICAgIDB4ODAKLSNkZWZpbmUgUjMwMF9SU19JTlRFUlBfMyAgICAgICAgICAgICAgICAgICAgMHg0MzFDCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF8zX1VOS05PV04gICAgICAgICAgMHhDMAotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF80ICAgICAgICAgICAgICAgICAgICAweDQzMjAKLSNkZWZpbmUgUjMwMF9SU19JTlRFUlBfNSAgICAgICAgICAgICAgICAgICAgMHg0MzI0Ci0jZGVmaW5lIFIzMDBfUlNfSU5URVJQXzYgICAgICAgICAgICAgICAgICAgIDB4NDMyOAotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF83ICAgICAgICAgICAgICAgICAgICAweDQzMkMKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1NSQ19TSElGVCAgICAgICAgICAyCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF9TUkNfTUFTSyAgICAgICAgICAgKDcgPDwgMikKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1VTRUQgICAgICAgICAgICAgICAweDAwRDEwMDAwCi0KLS8qIFRoZXNlIERXT1JEcyBjb250cm9sIGhvdyB2ZXJ0ZXggZGF0YSBpcyByb3V0ZWQgaW50byBmcmFnbWVudCBwcm9ncmFtCi0gKiByZWdpc3RlcnMsIGFmdGVyIGludGVycG9sYXRvcnMuCi0gKi8KLSNkZWZpbmUgUjMwMF9SU19ST1VURV8wICAgICAgICAgICAgICAgICAgICAgMHg0MzMwCi0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfMSAgICAgICAgICAgICAgICAgICAgIDB4NDMzNAotI2RlZmluZSBSMzAwX1JTX1JPVVRFXzIgICAgICAgICAgICAgICAgICAgICAweDQzMzgKLSNkZWZpbmUgUjMwMF9SU19ST1VURV8zICAgICAgICAgICAgICAgICAgICAgMHg0MzNDIC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfNCAgICAgICAgICAgICAgICAgICAgIDB4NDM0MCAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JTX1JPVVRFXzUgICAgICAgICAgICAgICAgICAgICAweDQzNDQgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SU19ST1VURV82ICAgICAgICAgICAgICAgICAgICAgMHg0MzQ4IC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfNyAgICAgICAgICAgICAgICAgICAgIDB4NDM0QyAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF8xICAgICAxCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfMiAgICAgMgotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzMgICAgIDMKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF80ICAgICA0Ci0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfNSAgICAgNSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzYgICAgIDYgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF83ICAgICA3IC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0VOQUJMRSAgICAgICAgICAgICAgKDEgPDwgMykgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfREVTVF9TSElGVCAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0RFU1RfTUFTSyAgICAgICAgICAgKDMxIDw8IDYpIC8qIEdVRVNTICovCi0KLS8qIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNvbG9yOiBXaGVuIHRoZSBmcmFnbWVudCBwcm9ncmFtIHVzZXMgY29sb3IsCi0gKiB0aGUgUk9VVEVfMF9DT0xPUiBiaXQgaXMgc2V0IGFuZCBST1VURV8wX0NPTE9SX0RFU1QgY29udGFpbnMgdGhlCi0gKiBjb2xvciByZWdpc3RlciBpbmRleC4KLSAqCi0gKiBBcHBlcmVudGx5IHlvdSBtYXkgc2V0IHRoZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1IgYml0LCBidXQgbm90IHByb3ZpZGUgYW55Ci0gKiBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVCB2YWx1ZTsgdGhpcyBzZXR1cCBpcyB1c2VkIGZvciBjbGVhcmluZyB0aGUgc3RhdGUuCi0gKiBTZWUgcjMwMF9pb2N0bC5jOnIzMDBFbWl0Q2xlYXJTdGF0ZS4gSSdtIG5vdCBzdXJlIGlmIHRoaXMgc2V0dXAgaXMgc3RyaWN0bHkKLSAqIGNvcnJlY3Qgb3Igbm90LiAtIE9saXZlci4KLSAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SICAgICAgICAgICAgICgxIDw8IDE0KQotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SX0RFU1RfU0hJRlQgIDE3Ci0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVF9NQVNLICAgKDMxIDw8IDE3KSAvKiBHVUVTUyAqLwotLyogQXMgYWJvdmUsIGJ1dCBmb3Igc2Vjb25kYXJ5IGNvbG9yICovCi0jCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX0NPTE9SMSAgICAgICAgICAgICgxIDw8IDE0KQotIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9TSElGVCAxNwotIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9NQVNLICAoMzEgPDwgMTcpCi0jCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX1VOS05PV04xMSAgICAgICAgICgxIDw8IDExKQotLyogRU5EOiBSYXN0ZXJpemF0aW9uIC8gSW50ZXJwb2xhdG9ycyAtIG1hbnkgZ3Vlc3NlcyAqLwotCi0vKiBCRUdJTjogU2Npc3NvcnMgYW5kIGNsaXByZWN0cyAqLwotCi0vKiBUaGVyZSBhcmUgZm91ciBjbGlwcGluZyByZWN0YW5nbGVzLiBUaGVpciBjb3JuZXIgY29vcmRpbmF0ZXMgYXJlIGluY2x1c2l2ZS4KLSAqIEV2ZXJ5IHBpeGVsIGlzIGFzc2lnbmVkIGEgbnVtYmVyIGZyb20gMCBhbmQgMTUgYnkgc2V0dGluZyBiaXRzIDAtMyBkZXBlbmRpbmcKLSAqIG9uIHdoZXRoZXIgdGhlIHBpeGVsIGlzIGluc2lkZSBjbGlwcmVjdHMgMC0zLCByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlLAotICogaWYgYSBwaXhlbCBpcyBpbnNpZGUgY2xpcHJlY3RzIDAgYW5kIDEsIGJ1dCBvdXRzaWRlIDIgYW5kIDMsIGl0IGlzIGFzc2lnbmVkCi0gKiB0aGUgbnVtYmVyIDMgKGJpbmFyeSAwMDExKS4KLSAqIElmZiB0aGUgYml0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBpeGVsJ3MgbnVtYmVyIGluIFJFX0NMSVBSRUNUX0NOVEwgaXMgc2V0LAotICogdGhlIHBpeGVsIGlzIHJhc3Rlcml6ZWQuCi0gKgotICogSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlcmUgaXMgYSBzY2lzc29ycyByZWN0YW5nbGUuIE9ubHkgcGl4ZWxzIGluc2lkZSB0aGUKLSAqIHNjaXNzb3JzIHJlY3RhbmdsZSBhcmUgZHJhd24uIChjb29yZGluYXRlcyBhcmUgaW5jbHVzaXZlKQotICoKLSAqIEZvciBzb21lIHJlYXNvbiwgdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgZnJhbWVidWZmZXIgaXMgYXQgKDE0NDAsIDE0NDApCi0gKiBmb3IgdGhlIHB1cnBvc2Ugb2YgY2xpcHBpbmcgYW5kIHNjaXNzb3JzLgotICovCi0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMCAgICAgICAgICAgICAgIDB4NDNCMAotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzAgICAgICAgICAgICAgICAweDQzQjQKLSNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9UTF8xICAgICAgICAgICAgICAgMHg0M0I4Ci0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQlJfMSAgICAgICAgICAgICAgIDB4NDNCQwotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX1RMXzIgICAgICAgICAgICAgICAweDQzQzAKLSNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9CUl8yICAgICAgICAgICAgICAgMHg0M0M0Ci0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMyAgICAgICAgICAgICAgIDB4NDNDOAotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzMgICAgICAgICAgICAgICAweDQzQ0MKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX01BU0sgICAgICAgICAgICAgICAgMHgxRkZGCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX1hfU0hJRlQgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCAgICAgICAgICAgICAxMwotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCi0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCAgICAgICAgICAgICAgIDB4NDNEMAotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQX09VVCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMCAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8xICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzEwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8yMCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzIxICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMjEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8zICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxMCAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCi0KLS8qIGdhcCAqLwotCi0jZGVmaW5lIFIzMDBfUkVfU0NJU1NPUlNfVEwgICAgICAgICAgICAgICAgIDB4NDNFMAotI2RlZmluZSBSMzAwX1JFX1NDSVNTT1JTX0JSICAgICAgICAgICAgICAgICAweDQzRTQKLSMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCi0jICAgICAgIGRlZmluZSBSMzAwX1NDSVNTT1JTX1hfU0hJRlQgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfWV9TSElGVCAgICAgICAgICAgICAxMwotIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCi0vKiBFTkQ6IFNjaXNzb3JzIGFuZCBjbGlwcmVjdHMgKi8KLQotLyogQkVHSU46IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLwotCi0vKgotICogVGhlIHRleHR1cmUgc3BlY2lmaWNhdGlvbiBkd29yZHMgYXJlIGdyb3VwZWQgYnkgbWVhbmluZyBhbmQgbm90IGJ5IHRleHR1cmUKLSAqIHVuaXQuIFRoaXMgbWVhbnMgdGhhdCBlLmcuIHRoZSBvZmZzZXQgZm9yIHRleHR1cmUgaW1hZ2UgdW5pdCBOIGlzIGZvdW5kIGluCi0gKiByZWdpc3RlciBUWF9PRkZTRVRfMCArICg0Kk4pCi0gKi8KLSNkZWZpbmUgUjMwMF9UWF9GSUxURVJfMCAgICAgICAgICAgICAgICAgICAgMHg0NDAwCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1JFUEVBVCAgICAgICAgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NSVJST1JFRCAgICAgICAgICAgICAgICAgIDEKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfQ0xBTVAgICAgICAgICAgICAgICAgICAgICA0Ci0jICAgICAgIGRlZmluZSBSMzAwX1RYX0NMQU1QX1RPX0VER0UgICAgICAgICAgICAgMgotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9DTEFNUF9UT19CT1JERVIgICAgICAgICAgIDYKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9TX1NISUZUICAgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfU19NQVNLICAgICAgICAgICAgICAgKDcgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9UX1NISUZUICAgICAgICAgICAgICAzCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfVF9NQVNLICAgICAgICAgICAgICAgKDcgPDwgMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9RX1NISUZUICAgICAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfUV9NQVNLICAgICAgICAgICAgICAgKDcgPDwgNikKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFHX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCA5KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQUdfRklMVEVSX0xJTkVBUiAgICAgICAgICgyIDw8IDkpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01BR19GSUxURVJfTUFTSyAgICAgICAgICAgKDMgPDwgOSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCAxMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVIgICAgICAgICAoMiA8PCAxMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUX01JUF9ORUFSRVNUICAgICAgICg1ICA8PCAgMTEpCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTkVBUkVTVF9NSVBfTElORUFSICAgICAgICAoOSAgPDwgIDExKQotIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0xJTkVBUl9NSVBfTkVBUkVTVCAgICAgICAgKDYgIDw8ICAxMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVJfTUlQX0xJTkVBUiAgICAgICAgICgxMCA8PCAgMTEpCi0KLS8qIE5PVEU6IE5FQVJFU1QgZG9lc250IHNlZW0gdG8gZXhpc3QuCi0gKiBJbSBub3Qgc2V0aW5nIE1BR19GSUxURVJfTUFTSyBhbmQgKDMgPDwgMTEpIG9uIGZvciBhbGwKLSAqIGFuaXNvdHJvcHkgbW9kZXMgYmVjYXVzZSB0aGF0IHdvdWxkIHZvaWQgc2VsZWN0ZWQgbWFnIGZpbHRlcgotICovCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVCAgICAgICAgICAgICAoMCA8PCAxMykKLSMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9BTklTT19MSU5FQVIgICAgICAgICAgICAgICgwIDw8IDEzKQotIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0FOSVNPX05FQVJFU1RfTUlQX05FQVJFU1QgKDEgPDwgMTMpCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVF9NSVBfTElORUFSICAoMiA8PCAxMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9NQVNLICAgKCAoMTUgPDwgMTEpIHwgKDMgPDwgMTMpICkKLSMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzFfVE9fMSAgKDAgPDwgMjEpCi0jCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18yX1RPXzEgICgyIDw8IDIxKQotIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fNF9UT18xICAoNCA8PCAyMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzhfVE9fMSAgKDYgPDwgMjEpCi0jCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18xNl9UT18xICg4IDw8IDIxKQotIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fTUFTSyAgICAoMTQgPDwgMjEpCi0KLSNkZWZpbmUgUjMwMF9UWF9GSUxURVIxXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDQwCi0jCWRlZmluZSBSMzAwX0NIUk9NQV9LRVlfTU9ERV9ESVNBQkxFICAgIDAKLSMJZGVmaW5lIFIzMDBfQ0hST01BX0tFWV9GT1JDRQkgICAgICAgMQotIwlkZWZpbmUgUjMwMF9DSFJPTUFfS0VZX0JMRU5EICAgICAgICAgICAyCi0jCWRlZmluZSBSMzAwX01DX1JPVU5EX05PUk1BTCAgICAgICAgICAgICgwPDwyKQotIwlkZWZpbmUgUjMwMF9NQ19ST1VORF9NUEVHNCAgICAgICAgICAgICAoMTw8MikKLSMJZGVmaW5lIFIzMDBfTE9EX0JJQVNfTUFTSwkgICAgMHgxZmZmCi0jCWRlZmluZSBSMzAwX0VER0VfQU5JU09fRURHRV9ESUFHICAgICAgICgwPDwxMykKLSMJZGVmaW5lIFIzMDBfRURHRV9BTklTT19FREdFX09OTFkgICAgICAgKDE8PDEzKQotIwlkZWZpbmUgUjMwMF9NQ19DT09SRF9UUlVOQ0FURV9ESVNBQkxFICAoMDw8MTQpCi0jCWRlZmluZSBSMzAwX01DX0NPT1JEX1RSVU5DQVRFX01QRUcgICAgICgxPDwxNCkKLSMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfMF84ICAgICAgICAgICAgKDA8PDE1KQotIwlkZWZpbmUgUjMwMF9UWF9UUklfUEVSRl8xXzggICAgICAgICAgICAoMTw8MTUpCi0jCWRlZmluZSBSMzAwX1RYX1RSSV9QRVJGXzFfNCAgICAgICAgICAgICgyPDwxNSkKLSMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfM184ICAgICAgICAgICAgKDM8PDE1KQotIwlkZWZpbmUgUjMwMF9BTklTT19USFJFU0hPTERfTUFTSyAgICAgICAoNzw8MTcpCi0KLSNkZWZpbmUgUjMwMF9UWF9TSVpFXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDgwCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dJRFRITUFTS19TSElGVCAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XSURUSE1BU0tfTUFTSyAgICAgICAgICAgICgyMDQ3IDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0hFSUdIVE1BU0tfU0hJRlQgICAgICAgICAgMTEKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfSEVJR0hUTUFTS19NQVNLICAgICAgICAgICAoMjA0NyA8PCAxMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfVU5LMjMgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFYX01JUF9MRVZFTF9TSElGVCAgICAgICAyNgotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQVhfTUlQX0xFVkVMX01BU0sgICAgICAgICgweGYgPDwgMjYpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1NJWkVfUFJPSkVDVEVEICAgICAgICAgICAgKDE8PDMwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9TSVpFX1RYUElUQ0hfRU4gICAgICAgICAgICgxPDwzMSkKLSNkZWZpbmUgUjMwMF9UWF9GT1JNQVRfMCAgICAgICAgICAgICAgICAgICAgMHg0NEMwCi0JLyogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBmb3JtYXQgd29yZCBieSBXbGFkaW1pciB2YW4gZGVyIExhYW4gKi8KLQkvKiBUaGUgWCwgWSwgWiBhbmQgVyByZWZlciB0byB0aGUgbGF5b3V0IG9mIHRoZSBjb21wb25lbnRzLgotCSAgIFRoZXkgYXJlIGdpdmVuIG1lYW5pbmdzIGFzIFIsIEcsIEIgYW5kIEFscGhhIGJ5IHRoZSBzd2l6emxlCi0JICAgc3BlY2lmaWNhdGlvbiAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWDgJCSAgICAweDAKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gxNgkJICAgIDB4MQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTRYNAkJICAgIDB4MgotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWThYOAkJICAgIDB4MwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTE2WDE2CQkgICAgMHg0Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aM1kzWDIJCSAgICAweDUKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1o1WTZYNQkJICAgIDB4NgotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWjZZNVg1CQkgICAgMHg3Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aMTFZMTFYMTAJCSAgICAweDgKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oxMFkxMVgxMQkJICAgIDB4OQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzRaNFk0WDQJCSAgICAweEEKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cxWjVZNVg1CQkgICAgMHhCCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9XOFo4WThYOAkJICAgIDB4QwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzJaMTBZMTBYMTAJICAgIDB4RAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzE2WjE2WTE2WDE2CSAgICAweEUKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDEJCSAgICAweEYKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDMJCSAgICAweDEwCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9EWFQ1CQkgICAgMHgxMQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRDNETUZUX0N4VjhVOAkgICAgMHgxMiAgICAgLyogbm8gc3dpenpsZSAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQThSOEc4QjgJCSAgICAweDEzICAgICAvKiBubyBzd2l6emxlICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9COEc4X0I4RzgJCSAgICAweDE0ICAgICAvKiBubyBzd2l6emxlICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9HOFI4X0c4QjgJCSAgICAweDE1ICAgICAvKiBubyBzd2l6emxlICovCi0JLyogMHgxNiAtIHNvbWUgMTYgYml0IGdyZWVuIGZvcm1hdC4uID8/ICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9VTksyNQkJICAgKDEgPDwgMjUpIC8qIG5vIHN3aXp6bGUgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NVQklDX01BUAkJICAgKDEgPDwgMjYpCi0KLQkvKiBnYXAgKi8KLQkvKiBGbG9hdGluZyBwb2ludCBmb3JtYXRzICovCi0JLyogTm90ZSAtIGhhcmR3YXJlIHN1cHBvcnRzIGJvdGggMTYgYW5kIDMyIGJpdCBmbG9hdGluZyBwb2ludCAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2CQkgICAgMHgxOAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2QTE2CQkgICAgMHgxOQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfUjE2RzE2QjE2QTE2CSAgICAweDFBCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzIJCSAgICAweDFCCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzJBMzIJCSAgICAweDFDCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9SMzJHMzJCMzJBMzIJICAgIDB4MUQKLQkvKiBhbHBoYSBtb2RlcywgY29udmVuaWVuY2UgbW9zdGx5ICovCi0JLyogaWYgeW91IGhhdmUgYWxwaGEsIHBpY2sgY29uc3RhbnQgYXBwcm9wcmlhdGUgdG8gdGhlCi0JICAgbnVtYmVyIG9mIGNoYW5uZWxzICgxIGZvciBJOCwgMiBmb3IgSThBOCwgNCBmb3IgUjhHOEI4QTgsIGV0YyAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfMUNICQkgICAgMHgwMDAKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FMUEhBXzJDSAkJICAgIDB4MjAwCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9BTFBIQV80Q0gJCSAgICAweDYwMAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfTk9ORQkgICAgMHhBMDAKLQkvKiBTd2l6emxpbmcgKi8KLQkvKiBjb25zdGFudHMgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gJCTAKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1kJCTEKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oJCTIKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cJCTMKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1pFUk8JNAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfT05FCTUKLQkvKiAyLjAqWiwgZXZlcnl0aGluZyBhYm92ZSAxLjAgaXMgc2V0IHRvIDAuMCAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ1VUX1oJNgotCS8qIDIuMCpXLCBldmVyeXRoaW5nIGFib3ZlIDEuMCBpcyBzZXQgdG8gMC4wICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DVVRfVwk3Ci0KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0JfU0hJRlQJMTgKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0dfU0hJRlQJMTUKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1JfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FfU0hJRlQJOQotCS8qIENvbnZlbmllbmNlIG1hY3JvIHRvIHRha2UgY2FyZSBvZiBsYXlvdXQgYW5kIHN3aXp6bGluZyAqLwotIwlkZWZpbmUgUjMwMF9FQVNZX1RYX0ZPUk1BVChCLCBHLCBSLCBBLCBGTVQpCSgJCVwKLQkJKChSMzAwX1RYX0ZPUk1BVF8jI0IpPDxSMzAwX1RYX0ZPUk1BVF9CX1NISUZUKQkJXAotCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNHKTw8UjMwMF9UWF9GT1JNQVRfR19TSElGVCkJXAotCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNSKTw8UjMwMF9UWF9GT1JNQVRfUl9TSElGVCkJXAotCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNBKTw8UjMwMF9UWF9GT1JNQVRfQV9TSElGVCkJXAotCQl8IChSMzAwX1RYX0ZPUk1BVF8jI0ZNVCkJCQkJXAotCQkpCi0JLyogVGhlc2UgY2FuIGJlIE9SZWQgd2l0aCByZXN1bHQgb2YgUjMwMF9FQVNZX1RYX0ZPUk1BVCgpCi0JICAgV2UgZG9uJ3QgcmVhbGx5IGtub3cgd2hhdCB0aGV5IGRvLiBUYWtlIHZhbHVlcyBmcm9tIGEKLSAgICAgICAgICAgY29uc3RhbnQgY29sb3IgPyAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfWAkJKDE8PDUpCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DT05TVF9ZCQkoMjw8NSkKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NPTlNUX1oJCSg0PDw1KQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfVwkJKDg8PDUpCi0KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1lVVl9NT0RFCQkweDAwODAwMDAwCi0KLSNkZWZpbmUgUjMwMF9UWF9QSVRDSF8wCQkJICAgIDB4NDUwMCAvKiBvYnZpb3VzIG1pc3NpbmcgaW4gZ2FwICovCi0jZGVmaW5lIFIzMDBfVFhfT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgIDB4NDU0MAotCS8qIEJFR0lOOiBHdWVzcyBmcm9tIFIyMDAgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9OT19TV0FQICAgICAgICAgICAoMCA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fRU5ESUFOX0JZVEVfU1dBUCAgICAgICAgICgxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19FTkRJQU5fV09SRF9TV0FQICAgICAgICAgKDIgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9IQUxGRFdfU1dBUCAgICAgICAoMyA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fTUFDUk9fVElMRSAgICAgICAgICAgICAgICgxIDw8IDIpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19NSUNST19USUxFICAgICAgICAgICAgICAgKDEgPDwgMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhPX09GRlNFVF9NQVNLICAgICAgICAgICAgICAweGZmZmZmZmUwCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19PRkZTRVRfU0hJRlQgICAgICAgICAgICAgNQotCS8qIEVORDogR3Vlc3MgZnJvbSBSMjAwICovCi0KLS8qIDMyIGJpdCBjaHJvbWEga2V5ICovCi0jZGVmaW5lIFIzMDBfVFhfQ0hST01BX0tFWV8wICAgICAgICAgICAgICAgICAgICAgIDB4NDU4MAotLyogZmYwMGZmMDAgPT0geyAwLCAxLjAsIDAsIDEuMCB9ICovCi0jZGVmaW5lIFIzMDBfVFhfQk9SREVSX0NPTE9SXzAgICAgICAgICAgICAgIDB4NDVDMAotCi0vKiBFTkQ6IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLwotCi0vKiBCRUdJTjogRnJhZ21lbnQgcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KLQotLyogRnJhZ21lbnQgcHJvZ3JhbXMgYXJlIHdyaXR0ZW4gZGlyZWN0bHkgaW50byByZWdpc3RlciBzcGFjZS4KLSAqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbiBzdHJlYW1zIGZvciB0ZXh0dXJlIGluc3RydWN0aW9ucyBhbmQgQUxVCi0gKiBpbnN0cnVjdGlvbnMuCi0gKiBJbiBvcmRlciB0byBzeW5jaHJvbml6ZSB0aGVzZSBzdHJlYW1zLCB0aGUgcHJvZ3JhbSBpcyBkaXZpZGVkIGludG8gdXAKLSAqIHRvIDQgbm9kZXMuIEVhY2ggbm9kZSBiZWdpbnMgd2l0aCBhIG51bWJlciBvZiBURVggb3BlcmF0aW9ucywgZm9sbG93ZWQKLSAqIGJ5IGEgbnVtYmVyIG9mIEFMVSBvcGVyYXRpb25zLgotICogVGhlIGZpcnN0IG5vZGUgY2FuIGhhdmUgemVybyBURVggb3BzLCBhbGwgc3Vic2VxdWVudCBub2RlcyBtdXN0IGhhdmUgYXQKLSAqIGxlYXN0Ci0gKiBvbmUgVEVYIG9wcy4KLSAqIEFsbCBub2RlcyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIEFMVSBvcC4KLSAqCi0gKiBUaGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9kZSBpcyBzdG9yZWQgaW4gUEZTX0NOVExfMDogQSB2YWx1ZSBvZiAwIG1lYW5zCi0gKiAxIG5vZGUsIGEgdmFsdWUgb2YgMyBtZWFucyA0IG5vZGVzLgotICogVGhlIHRvdGFsIGFtb3VudCBvZiBpbnN0cnVjdGlvbnMgaXMgZGVmaW5lZCBpbiBQRlNfQ05UTF8yLiBUaGUgb2Zmc2V0cyBhcmUKLSAqIG9mZnNldHMgaW50byB0aGUgcmVzcGVjdGl2ZSBpbnN0cnVjdGlvbiBzdHJlYW1zLCB3aGlsZSAqX0VORCBwb2ludHMgdG8gdGhlCi0gKiBsYXN0IGluc3RydWN0aW9uIHJlbGF0aXZlIHRvIHRoaXMgb2Zmc2V0LgotICovCi0jZGVmaW5lIFIzMDBfUEZTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgIDB4NDYwMAotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9MQVNUX05PREVTX1NISUZUICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfTEFTVF9OT0RFU19NQVNLICAgICAoMyA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9GSVJTVF9OT0RFX0hBU19URVggICgxIDw8IDMpCi0jZGVmaW5lIFIzMDBfUEZTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgIDB4NDYwNAotLyogVGhlcmUgaXMgYW4gdW5zaGlmdGVkIHZhbHVlIGhlcmUgd2hpY2ggaGFzIHNvIGZhciBhbHdheXMgYmVlbiBlcXVhbCB0byB0aGUKLSAqIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgdGVtcG9yYXJ5IHJlZ2lzdGVyLgotICovCi0jZGVmaW5lIFIzMDBfUEZTX0NOVExfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYwOAotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9BTFVfT0ZGU0VUX1NISUZUICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX09GRlNFVF9NQVNLICAgICAoNjMgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX0VORF9TSElGVCAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0FMVV9FTkRfTUFTSyAgICAgICAgKDYzIDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9PRkZTRVRfU0hJRlQgICAgMTIKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX09GRlNFVF9NQVNLICAgICAoMzEgPDwgMTIpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9FTkRfU0hJRlQgICAgICAgMTgKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX0VORF9NQVNLICAgICAgICAoMzEgPDwgMTgpIC8qIEdVRVNTICovCi0KLS8qIGdhcCAqLwotCi0vKiBOb2RlcyBhcmUgc3RvcmVkIGJhY2t3YXJkcy4gVGhlIGxhc3QgYWN0aXZlIG5vZGUgaXMgYWx3YXlzIHN0b3JlZCBpbgotICogUEZTX05PREVfMy4KLSAqIEV4YW1wbGU6IEluIGEgMi1ub2RlIHByb2dyYW0sIE5PREVfMCBhbmQgTk9ERV8xIGFyZSBzZXQgdG8gMC4gVGhlCi0gKiBmaXJzdCBub2RlIGlzIHN0b3JlZCBpbiBOT0RFXzIsIHRoZSBzZWNvbmQgbm9kZSBpcyBzdG9yZWQgaW4gTk9ERV8zLgotICoKLSAqIE9mZnNldHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBtYXN0ZXIgb2Zmc2V0IGZyb20gUEZTX0NOVExfMi4KLSAqLwotI2RlZmluZSBSMzAwX1BGU19OT0RFXzAgICAgICAgICAgICAgICAgICAgICAweDQ2MTAKLSNkZWZpbmUgUjMwMF9QRlNfTk9ERV8xICAgICAgICAgICAgICAgICAgICAgMHg0NjE0Ci0jZGVmaW5lIFIzMDBfUEZTX05PREVfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYxOAotI2RlZmluZSBSMzAwX1BGU19OT0RFXzMgICAgICAgICAgICAgICAgICAgICAweDQ2MUMKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfQUxVX09GRlNFVF9TSElGVCAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9PRkZTRVRfTUFTSyAgICAgKDYzIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9FTkRfU0hJRlQgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9BTFVfRU5EX01BU0sgICAgICAgICg2MyA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfT0ZGU0VUX1NISUZUICAgIDEyCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9PRkZTRVRfTUFTSyAgICAgKDMxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfRU5EX1NISUZUICAgICAgIDE3Ci0jICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9FTkRfTUFTSyAgICAgICAgKDMxIDw8IDE3KQotIwkJZGVmaW5lIFIzMDBfUEZTX05PREVfT1VUUFVUX0NPTE9SICAgICAgICAoMSA8PCAyMikKLSMJCWRlZmluZSBSMzAwX1BGU19OT0RFX09VVFBVVF9ERVBUSCAgICAgICAgKDEgPDwgMjMpCi0KLS8qIFRFWAotICogQXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRleHR1cmUgaW5zdHJ1Y3Rpb25zIGNhbm5vdCB3cml0ZSBpbnRvIG91dHB1dAotICogcmVnaXN0ZXJzIGRpcmVjdGx5LiBBIHN1YnNlcXVlbnQgQUxVIGluc3RydWN0aW9uIGlzIGFsd2F5cyBuZWNlc3NhcnksCi0gKiBldmVuIGlmIGl0J3MganVzdCBNQUQgbzAsIHIwLCAxLCAwCi0gKi8KLSNkZWZpbmUgUjMwMF9QRlNfVEVYSV8wICAgICAgICAgICAgICAgICAgICAgMHg0NjIwCi0jCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19TSElGVCAgICAgICAgICAgICAgMAotIwlkZWZpbmUgUjMwMF9GUElUWF9TUkNfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAwKQotCS8qIEdVRVNTICovCi0jCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19DT05TVCAgICAgICAgICAgICAgKDEgPDwgNSkKLSMJZGVmaW5lIFIzMDBfRlBJVFhfRFNUX1NISUZUICAgICAgICAgICAgICA2Ci0jCWRlZmluZSBSMzAwX0ZQSVRYX0RTVF9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDYpCi0jCWRlZmluZSBSMzAwX0ZQSVRYX0lNQUdFX1NISUZUICAgICAgICAgICAgMTEKLQkvKiBHVUVTUyBiYXNlZCBvbiBsYXlvdXQgYW5kIG5hdGl2ZSBsaW1pdHMgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJVFhfSU1BR0VfTUFTSyAgICAgICAgICAgICAoMTUgPDwgMTEpCi0vKiBVbnN1cmUgaWYgdGhlc2UgYXJlIG9wY29kZXMsIG9yIHNvbWUga2luZCBvZiBiaXRmaWVsZCwgYnV0IHRoaXMgaXMgaG93Ci0gKiB0aGV5IHdlcmUgc2V0IHdoZW4gSSBjaGVja2VkCi0gKi8KLSMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX1NISUZUCQkxNQotIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVEVYCTEKLSMJCWRlZmluZSBSMzAwX0ZQSVRYX09QX0tJTAkyCi0jCQlkZWZpbmUgUjMwMF9GUElUWF9PUF9UWFAJMwotIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVFhCCTQKLSMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX01BU0sgICAgICAgICAgICg3IDw8IDE1KQotCi0vKiBBTFUKLSAqIFRoZSBBTFUgaW5zdHJ1Y3Rpb25zIHJlZ2lzdGVyIGJsb2NrcyBhcmUgZW51bWVyYXRlZCBhY2NvcmRpbmcgdG8gdGhlIG9yZGVyCi0gKiBpbiB3aGljaCBmZ2xyeC4gSSBhc3N1bWUgdGhlcmUgaXMgc3BhY2UgZm9yIDY0IGluc3RydWN0aW9ucywgc2luY2UKLSAqIGVhY2ggYmxvY2sgaGFzIHNwYWNlIGZvciBhIG1heGltdW0gb2YgNjQgRFdPUkRzLCBhbmQgdGhpcyBtYXRjaGVzIHJlcG9ydGVkCi0gKiBuYXRpdmUgbGltaXRzLgotICoKLSAqIFRoZSBiYXNpYyBmdW5jdGlvbmFsIGJsb2NrIHNlZW1zIHRvIGJlIG9uZSBNQUQgZm9yIGVhY2ggY29sb3IgYW5kIGFscGhhLAotICogYW5kIGFuIGFkZGVyIHRoYXQgYWRkcyBhbGwgY29tcG9uZW50cyBhZnRlciB0aGUgTVVMLgotICogIC0gQURELCBNVUwsIE1BRCBldGMuOiB1c2UgTUFEIHdpdGggYXBwcm9wcmlhdGUgbmV1dHJhbCBvcGVyYW5kcwotICogIC0gRFA0OiBVc2UgT1VUQ19EUDQsIE9VVEFfRFA0Ci0gKiAgLSBEUDM6IFVzZSBPVVRDX0RQMywgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCi0gKiAgLSBEUEg6IFVzZSBPVVRDX0RQNCwgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCi0gKiAgLSBDTVBIOiBJZiBBUkcyID4gMC41LCByZXR1cm4gQVJHMCwgZWxzZSByZXR1cm4gQVJHMQotICogIC0gQ01QOiBJZiBBUkcyIDwgMCwgcmV0dXJuIEFSRzEsIGVsc2UgcmV0dXJuIEFSRzAKLSAqICAtIEZMUjogdXNlIEZSQytNQUQKLSAqICAtIFhQRDogdXNlIE1BRCtNQUQKLSAqICAtIFNHRSwgU0xUOiB1c2UgTUFEK0NNUAotICogIC0gUlNROiB1c2UgQUJTIG1vZGlmaWVyIGZvciBhcmd1bWVudAotICogIC0gVXNlIE9VVENfUkVQTF9BTFBIQSB0byB3cml0ZSByZXN1bHRzIG9mIGFuIGFscGhhLW9ubHkgb3BlcmF0aW9uCi0gKiAgICAoZS5nLiBSQ1ApIGludG8gY29sb3IgcmVnaXN0ZXIKLSAqICAtIGFwcGFyZW50bHksIHRoZXJlJ3Mgbm8gcXVpY2sgRFNUIG9wZXJhdGlvbgotICogIC0gZmdscnggc2V0IEZQSTJfVU5LTk9XTl8zMSBvbiBhICJNQUQgZnJhZ21lbnQuY29sb3IsIHRtcDAsIHRtcDEsIHRtcDIiCi0gKiAgLSBmZ2xyeCBzZXQgRlBJMl9VTktOT1dOXzMxIG9uIGEgIk1BWCByMiwgcjEsIGMwIgotICogIC0gZmdscnggb25jZSBzZXQgRlBJMF9VTktOT1dOXzMxIG9uIGEgIkZSQyByMSwgcjEiCi0gKgotICogT3BlcmFuZCBzZWxlY3Rpb24KLSAqIEZpcnN0IHN0YWdlIHNlbGVjdHMgdGhyZWUgc291cmNlcyBmcm9tIHRoZSBhdmFpbGFibGUgcmVnaXN0ZXJzIGFuZAotICogY29uc3RhbnQgcGFyYW1ldGVycy4gVGhpcyBpcyBkZWZpbmVkIGluIElOU1RSMSAoY29sb3IpIGFuZCBJTlNUUjMgKGFscGhhKS4KLSAqIGZnbHJ4IHNvcnRzIHRoZSB0aHJlZSBzb3VyY2UgZmllbGRzOiBSZWdpc3RlcnMgYmVmb3JlIGNvbnN0YW50cywKLSAqIGxvd2VyIGluZGljZXMgYmVmb3JlIGhpZ2hlciBpbmRpY2VzOyBJIGRvIG5vdCBrbm93IHdoZXRoZXIgdGhpcyBpcwotICogbmVjZXNzYXJ5LgotICoKLSAqIGZnbHJ4IGZpbGxzIHVudXNlZCBzb3VyY2VzIHdpdGggInJlYWQgY29uc3RhbnQgMCIKLSAqIEFjY29yZGluZyB0byBzcGVjcywgeW91IGNhbm5vdCBzZWxlY3QgbW9yZSB0aGFuIHR3byBkaWZmZXJlbnQgY29uc3RhbnRzLgotICoKLSAqIFNlY29uZCBzdGFnZSBzZWxlY3RzIHRoZSBvcGVyYW5kcyBmcm9tIHRoZSBzb3VyY2VzLiBUaGlzIGlzIGRlZmluZWQgaW4KLSAqIElOU1RSMCAoY29sb3IpIGFuZCBJTlNUUjIgKGFscGhhKS4gWW91IGNhbiBhbHNvIHNlbGVjdCB0aGUgc3BlY2lhbCBjb25zdGFudHMKLSAqIHplcm8gYW5kIG9uZS4KLSAqIFN3aXp6bGluZyBhbmQgbmVnYXRpb24gaGFwcGVucyBpbiB0aGlzIHN0YWdlLCBhcyB3ZWxsLgotICoKLSAqIEltcG9ydGFudDogQ29sb3IgYW5kIGFscGhhIHNlZW0gdG8gYmUgbW9zdGx5IHNlcGFyYXRlLCBpLmUuIHRoZWlyIHNvdXJjZXMKLSAqIHNlbGVjdGlvbiBhcHBlYXJzIHRvIGJlIGZ1bGx5IGluZGVwZW5kZW50ICh0aGUgcmVnaXN0ZXIgc3RvcmFnZSBpcyBwcm9iYWJseQotICogcGh5c2ljYWxseSBzcGxpdCBpbnRvIGEgY29sb3IgYW5kIGFuIGFscGhhIHNlY3Rpb24pLgotICogSG93ZXZlciAoYmVjYXVzZSBvZiB0aGUgYXBwYXJlbnQgcGh5c2ljYWwgc3BsaXQpLCB0aGVyZSBpcyBzb21lIGludGVyYWN0aW9uCi0gKiBXUlQgc3dpenpsaW5nLiBJZiwgZm9yIGV4YW1wbGUsIHlvdSB3YW50IHRvIGxvYWQgYW4gUiBjb21wb25lbnQgaW50byBhbgotICogQWxwaGEgb3BlcmFuZCwgdGhpcyBSIGNvbXBvbmVudCBpcyB0YWtlbiBmcm9tIGEgKmNvbG9yKiBzb3VyY2UsIG5vdCBmcm9tCi0gKiBhbiBhbHBoYSBzb3VyY2UuIFRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyIGRvZXNuJ3QgZXZlbiBoYXZlIHRvIGFwcGVhciBpbgotICogdGhlIGFscGhhIHNvdXJjZXMgbGlzdC4gKEkgaG9wZSB0aGlzIGFsbCBtYWtlcyBzZW5zZSB0byB5b3UpCi0gKgotICogRGVzdGluYXRpb24gc2VsZWN0aW9uCi0gKiBUaGUgZGVzdGluYXRpb24gcmVnaXN0ZXIgaW5kZXggaXMgaW4gRlBJMSAoY29sb3IpIGFuZCBGUEkzIChhbHBoYSkKLSAqIHRvZ2V0aGVyIHdpdGggZW5hYmxlIGJpdHMuCi0gKiBUaGVyZSBhcmUgc2VwYXJhdGUgZW5hYmxlIGJpdHMgZm9yIHdyaXRpbmcgaW50byB0ZW1wb3JhcnkgcmVnaXN0ZXJzCi0gKiAoRFNUQ19SRUdfKiAvRFNUQV9SRUcpIGFuZCBhbmQgcHJvZ3JhbSBvdXRwdXQgcmVnaXN0ZXJzIChEU1RDX09VVFBVVF8qCi0gKiAvRFNUQV9PVVRQVVQpLiBZb3UgY2FuIHdyaXRlIHRvIGJvdGggYXQgb25jZSwgb3Igbm90IHdyaXRlIGF0IGFsbCAodGhlCi0gKiBzYW1lIGluZGV4IG11c3QgYmUgdXNlZCBmb3IgYm90aCkuCi0gKgotICogTm90ZTogVGhlcmUgaXMgYSBzcGVjaWFsIGZvcm0gZm9yIExSUAotICogIC0gQXJndW1lbnQgb3JkZXIgaXMgdGhlIHNhbWUgYXMgaW4gQVJCX2ZyYWdtZW50X3Byb2dyYW0uCi0gKiAgLSBPcGVyYXRpb24gaXMgTUFECi0gKiAgLSBBUkcxIGlzIHNldCB0byBBUkdDX1NSQzFDX0xSUC9BUkdDX1NSQzFBX0xSUAotICogIC0gU2V0IEZQSTAvRlBJMl9TUEVDSUFMX0xSUAotICogQXJiaXRyYXJ5IExSUCAoaW5jbHVkaW5nIHN1cHBvcnQgZm9yIHN3aXp6bGluZykgcmVxdWlyZXMgdmFuaWxsYSBNQUQrTUFECi0gKi8KLSNkZWZpbmUgUjMwMF9QRlNfSU5TVFIxXzAgICAgICAgICAgICAgICAgICAgMHg0NkMwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMENfU0hJRlQgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDUpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMUNfU0hJRlQgICAgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDExKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX1NISUZUICAgICAgICAgICAgIDEyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDE3KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQ19NQVNLICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1NISUZUICAgICAgICAgICAgICAxOAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX0RTVENfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAxOCkKLSMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfTUFTS19TSElGVCAgICAgMjMKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19YICAgICAgICAgICAgICAoMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19ZICAgICAgICAgICAgICAoMSA8PCAyNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19aICAgICAgICAgICAgICAoMSA8PCAyNSkKLSMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfTUFTS19TSElGVCAgMjYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9YICAgICAgICAgICAoMSA8PCAyNikKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9ZICAgICAgICAgICAoMSA8PCAyNykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9aICAgICAgICAgICAoMSA8PCAyOCkKLQotI2RlZmluZSBSMzAwX1BGU19JTlNUUjNfMCAgICAgICAgICAgICAgICAgICAweDQ3QzAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMwQV9TSElGVCAgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgNSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMxQV9TSElGVCAgICAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTEpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfU0hJRlQgICAgICAgICAgICAgMTIKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTcpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDX01BU0sgICAgICAgICAgICAgICAgMHgwMDAzZmZmZgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfU0hJRlQgICAgICAgICAgICAgIDE4Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfRFNUQV9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDE4KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfUkVHICAgICAgICAgICAgICAgICgxIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfT1VUUFVUICAgICAgICAgICAgICgxIDw8IDI0KQotIwkJZGVmaW5lIFIzMDBfRlBJM19EU1RBX0RFUFRIICAgICAgICAgICAgICAoMSA8PCAyNykKLQotI2RlZmluZSBSMzAwX1BGU19JTlNUUjBfMCAgICAgICAgICAgICAgICAgICAweDQ4QzAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1hZWiAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19YWFggICAgICAgICAgMQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMENfWVlZICAgICAgICAgIDIKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1paWiAgICAgICAgICAzCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19YWVogICAgICAgICAgNAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWFhYICAgICAgICAgIDUKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1lZWSAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19aWlogICAgICAgICAgNwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWFlaICAgICAgICAgIDgKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1hYWCAgICAgICAgICA5Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWVkgICAgICAgICAgMTAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1paWiAgICAgICAgICAxMQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMEEgICAgICAgICAgICAgIDEyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQSAgICAgICAgICAgICAgMTMKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJBICAgICAgICAgICAgICAxNAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfTFJQICAgICAgICAgIDE1Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19aRVJPICAgICAgICAgICAgICAgMjAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX09ORSAgICAgICAgICAgICAgICAyMQotCS8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19IQUxGICAgICAgICAgICAgICAgMjIKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1laWCAgICAgICAgICAyMwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWVpYICAgICAgICAgIDI0Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWlggICAgICAgICAgMjUKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1pYWSAgICAgICAgICAyNgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWlhZICAgICAgICAgIDI3Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19aWFkgICAgICAgICAgMjgKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDQV9XWlkgICAgICAgICAyOQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNBX1daWSAgICAgICAgIDMwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ0FfV1pZICAgICAgICAgMzEKLQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX1NISUZUICAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19ORUcgICAgICAgICAgICAgICAoMSA8PCA1KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMUNfU0hJRlQgICAgICAgICAgICAgNwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDEzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX1NISUZUICAgICAgICAgICAgIDE0Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDE0KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX05FRyAgICAgICAgICAgICAgICgxIDw8IDE5KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDIwKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX1NQRUNJQUxfTFJQICAgICAgICAgICAgICgxIDw8IDIxKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFEICAgICAgICAgICAgICAgICgwIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFAzICAgICAgICAgICAgICAgICgxIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFA0ICAgICAgICAgICAgICAgICgyIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUlOICAgICAgICAgICAgICAgICg0IDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFYICAgICAgICAgICAgICAgICg1IDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QSCAgICAgICAgICAgICAgICg3IDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QICAgICAgICAgICAgICAgICg4IDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRlJDICAgICAgICAgICAgICAgICg5IDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfUkVQTF9BTFBIQSAgICAgICAgICgxMCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX1NBVCAgICAgICAgICAgICAgICAoMSA8PCAzMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9JTlNFUlRfTk9QICAgICAgICAgICAgICAoMSA8PCAzMSkKLQotI2RlZmluZSBSMzAwX1BGU19JTlNUUjJfMCAgICAgICAgICAgICAgICAgICAweDQ5QzAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBDX1ggICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMwQ19ZICAgICAgICAgICAgMQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMENfWiAgICAgICAgICAgIDIKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzFDX1ggICAgICAgICAgICAzCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQ19ZICAgICAgICAgICAgNAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUNfWiAgICAgICAgICAgIDUKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJDX1ggICAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMyQ19ZICAgICAgICAgICAgNwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMkNfWiAgICAgICAgICAgIDgKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBBICAgICAgICAgICAgICA5Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQSAgICAgICAgICAgICAgMTAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJBICAgICAgICAgICAgICAxMQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUFfTFJQICAgICAgICAgIDE1Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9aRVJPICAgICAgICAgICAgICAgMTYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX09ORSAgICAgICAgICAgICAgICAxNwotCS8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9IQUxGICAgICAgICAgICAgICAgMTgKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcwQV9TSElGVCAgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTkVHICAgICAgICAgICAgICAgKDEgPDwgNSkKLQkvKiBHVUVTUyAqLwotIwlkZWZpbmUgUjMwMF9GUEkyX0FSRzBBX0FCUwkJICgxIDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfU0hJRlQgICAgICAgICAgICAgNwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQotCS8qIEdVRVNTICovCi0jCWRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfQUJTCQkgKDEgPDwgMTMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfU0hJRlQgICAgICAgICAgICAgMTQKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTQpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfTkVHICAgICAgICAgICAgICAgKDEgPDwgMTkpCi0JLyogR1VFU1MgKi8KLSMJZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9BQlMJCSAoMSA8PCAyMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9TUEVDSUFMX0xSUCAgICAgICAgICAgICAoMSA8PCAyMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BRCAgICAgICAgICAgICAgICAoMCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0RQNCAgICAgICAgICAgICAgICAoMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01JTiAgICAgICAgICAgICAgICAoMiA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BWCAgICAgICAgICAgICAgICAoMyA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0NNUCAgICAgICAgICAgICAgICAoNiA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0ZSQyAgICAgICAgICAgICAgICAoNyA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0VYMiAgICAgICAgICAgICAgICAoOCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0xHMiAgICAgICAgICAgICAgICAoOSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX1JDUCAgICAgICAgICAgICAgICAoMTAgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9SU1EgICAgICAgICAgICAgICAgKDExIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX09VVEFfU0FUICAgICAgICAgICAgICAgICgxIDw8IDMwKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX1VOS05PV05fMzEgICAgICAgICAgICAgICgxIDw8IDMxKQotLyogRU5EOiBGcmFnbWVudCBwcm9ncmFtIGluc3RydWN0aW9uIHNldCAqLwotCi0vKiBGb2cgc3RhdGUgYW5kIGNvbG9yICovCi0jZGVmaW5lIFIzMDBfUkVfRk9HX1NUQVRFICAgICAgICAgICAgICAgICAgIDB4NEJDMAotIyAgICAgICBkZWZpbmUgUjMwMF9GT0dfRU5BQkxFICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0jCWRlZmluZSBSMzAwX0ZPR19NT0RFX0xJTkVBUiAgICAgICAgICAgICAgKDAgPDwgMSkKLSMJZGVmaW5lIFIzMDBfRk9HX01PREVfRVhQICAgICAgICAgICAgICAgICAoMSA8PCAxKQotIwlkZWZpbmUgUjMwMF9GT0dfTU9ERV9FWFAyICAgICAgICAgICAgICAgICgyIDw8IDEpCi0jCWRlZmluZSBSMzAwX0ZPR19NT0RFX01BU0sgICAgICAgICAgICAgICAgKDMgPDwgMSkKLSNkZWZpbmUgUjMwMF9GT0dfQ09MT1JfUiAgICAgICAgICAgICAgICAgICAgMHg0QkM4Ci0jZGVmaW5lIFIzMDBfRk9HX0NPTE9SX0cgICAgICAgICAgICAgICAgICAgIDB4NEJDQwotI2RlZmluZSBSMzAwX0ZPR19DT0xPUl9CICAgICAgICAgICAgICAgICAgICAweDRCRDAKLQotI2RlZmluZSBSMzAwX1BQX0FMUEhBX1RFU1QgICAgICAgICAgICAgICAgICAweDRCRDQKLSMgICAgICAgZGVmaW5lIFIzMDBfUkVGX0FMUEhBX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMGZmCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRkFJTCAgICAgICAgICAgICAgKDAgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9MRVNTICAgICAgICAgICAgICAoMSA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0xFUVVBTCAgICAgICAgICAgICgzIDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRVFVQUwgICAgICAgICAgICAgKDIgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9HRVFVQUwgICAgICAgICAgICAoNiA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0dSRUFURVIgICAgICAgICAgICg0IDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfTkVRVUFMICAgICAgICAgICAgKDUgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9QQVNTICAgICAgICAgICAgICAoNyA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX09QX01BU0sgICAgICAgICAgICg3IDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTEpCi0KLS8qIGdhcCAqLwotCi0vKiBGcmFnbWVudCBwcm9ncmFtIHBhcmFtZXRlcnMgaW4gNy4xNiBmbG9hdGluZyBwb2ludCAqLwotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1ggICAgICAgICAgICAgICAgICAweDRDMDAKLSNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMF9ZICAgICAgICAgICAgICAgICAgMHg0QzA0Ci0jZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzBfWiAgICAgICAgICAgICAgICAgIDB4NEMwOAotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1cgICAgICAgICAgICAgICAgICAweDRDMEMKLS8qIEdVRVNTOiBQQVJBTV8zMSBpcyBsYXN0LCBiYXNlZCBvbiBuYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGZnbHJ4ICovCi0jZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1ggICAgICAgICAgICAgICAgIDB4NERGMAotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8zMV9ZICAgICAgICAgICAgICAgICAweDRERjQKLSNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMzFfWiAgICAgICAgICAgICAgICAgMHg0REY4Ci0jZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1cgICAgICAgICAgICAgICAgIDB4NERGQwotCi0vKiBOb3RlczoKLSAqIC0gQUZBSUsgZmdscnggYWx3YXlzIHNldHMgQkxFTkRfVU5LTk9XTiB3aGVuIGJsZW5kaW5nIGlzIHVzZWQgaW4KLSAqICAgdGhlIGFwcGxpY2F0aW9uCi0gKiAtIEFGQUlLIGZnbHJ4IGFsd2F5cyBzZXRzIEJMRU5EX05PX1NFUEFSQVRFIHdoZW4gQ0JMRU5EIGFuZCBBQkxFTkQKLSAqICAgIGFyZSBzZXQgdG8gdGhlIHNhbWUKLSAqICAgZnVuY3Rpb24gKGJvdGggcmVnaXN0ZXJzIGFyZSBhbHdheXMgc2V0IHVwIGNvbXBsZXRlbHkgaW4gYW55IGNhc2UpCi0gKiAtIE1vc3QgYmxlbmQgZmxhZ3MgYXJlIHNpbXBseSBjb3BpZWQgZnJvbSBSMjAwIGFuZCBub3QgdGVzdGVkIHlldAotICovCi0jZGVmaW5lIFIzMDBfUkIzRF9DQkxFTkQgICAgICAgICAgICAgICAgICAgIDB4NEUwNAotI2RlZmluZSBSMzAwX1JCM0RfQUJMRU5EICAgICAgICAgICAgICAgICAgICAweDRFMDgKLS8qIHRoZSBmb2xsb3dpbmcgb25seSBhcHBlYXIgaW4gQ0JMRU5EICovCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX1VOS05PV04gICAgICAgICAgICAgICAgICAgICgzIDw8IDEpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX05PX1NFUEFSQVRFICAgICAgICAgICAgICAgICgxIDw8IDMpCi0vKiB0aGUgZm9sbG93aW5nIGFyZSBzaGFyZWQgYmV0d2VlbiBDQkxFTkQgYW5kIEFCTEVORCAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9GQ05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAoMyAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX0FERF9DTEFNUCAgICAgICAgICAgICAgICgwICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fQUREX05PQ0xBTVAgICAgICAgICAgICAgKDEgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9TVUJfQ0xBTVAgICAgICAgICAgICAgICAoMiAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1NVQl9OT0NMQU1QICAgICAgICAgICAgICgzICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fTUlOICAgICAgICAgICAgICAgICAgICAgKDQgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9NQVggICAgICAgICAgICAgICAgICAgICAoNSAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1JTVUJfQ0xBTVAgICAgICAgICAgICAgICg2ICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fUlNVQl9OT0NMQU1QICAgICAgICAgICAgKDcgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9aRVJPICAgICAgICAgICAgICAgICAgICAoMzIpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORSAgICAgICAgICAgICAgICAgICAgICgzMykKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfU1JDX0NPTE9SICAgICAgICAgICAgICAgKDM0KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfU1JDX0NPTE9SICAgICAoMzUpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0RTVF9DT0xPUiAgICAgICAgICAgICAgICgzNikKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0RTVF9DT0xPUiAgICAgKDM3KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9TUkNfQUxQSEEgICAgICAgICAgICAgICAoMzgpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORV9NSU5VU19TUkNfQUxQSEEgICAgICgzOSkKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfRFNUX0FMUEhBICAgICAgICAgICAgICAgKDQwKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfRFNUX0FMUEhBICAgICAoNDEpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX1NSQ19BTFBIQV9TQVRVUkFURSAgICAgICg0MikKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfQ09OU1RfQ09MT1IgICAgICAgICAgICAgKDQzKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfQ09OU1RfQ09MT1IgICAoNDQpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0NPTlNUX0FMUEhBICAgICAgICAgICAgICg0NSkKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0NPTlNUX0FMUEhBICAgKDQ2KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAoNjMpCi0jICAgICAgIGRlZmluZSBSMzAwX1NSQ19CTEVORF9TSElGVCAgICAgICAgICAgICAgICAgICgxNikKLSMgICAgICAgZGVmaW5lIFIzMDBfRFNUX0JMRU5EX1NISUZUICAgICAgICAgICAgICAgICAgKDI0KQotI2RlZmluZSBSMzAwX1JCM0RfQkxFTkRfQ09MT1IgICAgICAgICAgICAgICAweDRFMTAKLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9STUFTSyAgICAgICAgICAgICAgICAgMHg0RTBDCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQiAgICAgICAgICAgICAgICAgKDE8PDApCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfRyAgICAgICAgICAgICAgICAgKDE8PDEpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfUiAgICAgICAgICAgICAgICAgKDE8PDIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQSAgICAgICAgICAgICAgICAgKDE8PDMpCi0KLS8qIGdhcCAqLwotCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAgICAgICAgICAgICAgIDB4NEUyOAotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk9GRlNFVF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRjAgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9ST0ZGU0VUMSAgICAgICAgICAgICAgMHg0RTJDIC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDIgICAgICAgICAgICAgIDB4NEUzMCAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JPRkZTRVQzICAgICAgICAgICAgICAweDRFMzQgLyogR1VFU1MgKi8KLQotLyogZ2FwICovCi0KLS8qIEJpdCAxNjogTGFyZ2VyIHRpbGVzCi0gKiBCaXQgMTc6IDR4MiB0aWxlcwotICogQml0IDE4OiBFeHRyZW1lbHkgd2VpcmQgdGlsZSBsaWtlLCBidXQgc29tZSBwaXhlbHMgZHVwbGljYXRlZD8KLSAqLwotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDAgICAgICAgICAgICAgICAweDRFMzgKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09MT1JQSVRDSF9NQVNLICAgICAgICAgICAgICAweDAwMDAxRkY4IC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX1RJTEVfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTYpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX01JQ1JPVElMRV9FTkFCTEUgICAgICAgKDEgPDwgMTcpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9OT19TV0FQICAgICAgICAgKDAgPDwgMTgpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9EV09SRF9TV0FQICAgICAgKDIgPDwgMTgpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9SR0I1NjUgICAgICAgICAgKDIgPDwgMjIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9BUkdCODg4OCAgICAgICAgKDMgPDwgMjIpCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUlBJVENIMSAgICAgICAgICAgICAgIDB4NEUzQyAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDIgICAgICAgICAgICAgICAweDRFNDAgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9SUElUQ0gzICAgICAgICAgICAgICAgMHg0RTQ0IC8qIEdVRVNTICovCi0KLS8qIGdhcCAqLwotCi0vKiBHdWVzcyBieSBWbGFkaW1pci4KLSAqIFNldCB0byAwQSBiZWZvcmUgM0Qgb3BlcmF0aW9ucywgc2V0IHRvIDAyIGFmdGVyd2FyZHMuCi0gKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQgICAgICAgICAgMHg0RTRDCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfRFNUQ0FDSEVfVU5LTk9XTl8wMiAgICAgICAgICAgICAweDAwMDAwMDAyCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfRFNUQ0FDSEVfVU5LTk9XTl8wQSAgICAgICAgICAgICAweDAwMDAwMDBBCi0KLS8qIGdhcCAqLwotLyogVGhlcmUgc2VlbXMgdG8gYmUgbm8gIndyaXRlIG9ubHkiIHNldHRpbmcsIHNvIHVzZSBaLXRlc3QgPSBBTFdBWVMKLSAqIGZvciB0aGlzLgotICogQml0ICgxPDw4KSBpcyB0aGUgInRlc3QiIGJpdC4gc28gcGxhaW4gd3JpdGUgaXMgNiAgLSB2ZAotICovCi0jZGVmaW5lIFIzMDBfUkIzRF9aU1RFTkNJTF9DTlRMXzAgICAgICAgICAgICAgICAgICAgMHg0RjAwCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWl9ESVNBQkxFRF8xICAgICAgICAgICAgMHgwMDAwMDAxMAotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfRElTQUJMRURfMiAgICAgICAgICAgIDB4MDAwMDAwMTQKLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aX1RFU1QgICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWl9URVNUX0FORF9XUklURSAgICAgICAgMHgwMDAwMDAxNgotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfV1JJVEVfT05MWQkJIDB4MDAwMDAwMDYKLQotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfVEVTVCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIKLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aX1RFU1RfQU5EX1dSSVRFICAgICAgICAweDAwMDAwMDE2Ci0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWl9XUklURV9PTkxZCQkgMHgwMDAwMDAwNgotIwlkZWZpbmUgUjMwMF9SQjNEX1NURU5DSUxfRU5BQkxFCQkgMHgwMDAwMDAwMQotCi0jZGVmaW5lIFIzMDBfUkIzRF9aU1RFTkNJTF9DTlRMXzEgICAgICAgICAgICAgICAgICAgMHg0RjA0Ci0JLyogZnVuY3Rpb25zICovCi0jCWRlZmluZSBSMzAwX1pTX05FVkVSCQkJMAotIwlkZWZpbmUgUjMwMF9aU19MRVNTCQkJMQotIwlkZWZpbmUgUjMwMF9aU19MRVFVQUwJCQkyCi0jCWRlZmluZSBSMzAwX1pTX0VRVUFMCQkJMwotIwlkZWZpbmUgUjMwMF9aU19HRVFVQUwJCQk0Ci0jCWRlZmluZSBSMzAwX1pTX0dSRUFURVIJCQk1Ci0jCWRlZmluZSBSMzAwX1pTX05PVEVRVUFMCQkJNgotIwlkZWZpbmUgUjMwMF9aU19BTFdBWVMJCQk3Ci0jICAgICAgIGRlZmluZSBSMzAwX1pTX01BU0sgICAgICAgICAgICAgICAgICAgICA3Ci0JLyogb3BlcmF0aW9ucyAqLwotIwlkZWZpbmUgUjMwMF9aU19LRUVQCQkJMAotIwlkZWZpbmUgUjMwMF9aU19aRVJPCQkJMQotIwlkZWZpbmUgUjMwMF9aU19SRVBMQUNFCQkJMgotIwlkZWZpbmUgUjMwMF9aU19JTkNSCQkJMwotIwlkZWZpbmUgUjMwMF9aU19ERUNSCQkJNAotIwlkZWZpbmUgUjMwMF9aU19JTlZFUlQJCQk1Ci0jCWRlZmluZSBSMzAwX1pTX0lOQ1JfV1JBUAkJNgotIwlkZWZpbmUgUjMwMF9aU19ERUNSX1dSQVAJCTcKLQkvKiBmcm9udCBhbmQgYmFjayByZWZlciB0byBvcGVyYXRpb25zIGRvbmUgZm9yIGZyb250Ci0JICAgYW5kIGJhY2sgZmFjZXMsIGkuZS4gc2VwYXJhdGUgc3RlbmNpbCBmdW5jdGlvbiBzdXBwb3J0ICovCi0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0RFUFRIX0ZVTkNfU0hJRlQJCTAKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfRlJPTlRfRlVOQ19TSElGVAkJMwotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9GUk9OVF9GQUlMX09QX1NISUZUCTYKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfRlJPTlRfWlBBU1NfT1BfU0hJRlQJOQotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9GUk9OVF9aRkFJTF9PUF9TSElGVCAgICAgIDEyCi0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0JBQ0tfRlVOQ19TSElGVCAgICAgICAgICAgMTUKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfQkFDS19GQUlMX09QX1NISUZUICAgICAgICAxOAotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9CQUNLX1pQQVNTX09QX1NISUZUICAgICAgIDIxCi0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0JBQ0tfWkZBSUxfT1BfU0hJRlQgICAgICAgMjQKLQotI2RlZmluZSBSMzAwX1JCM0RfWlNURU5DSUxfQ05UTF8yICAgICAgICAgICAgICAgICAgIDB4NEYwOAotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMl9TVEVOQ0lMX1JFRl9TSElGVAkJMAotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMl9TVEVOQ0lMX01BU0sJCTB4RkYKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzJfU1RFTkNJTF9NQVNLX1NISUZUCSAgICAgICAgOAotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMl9TVEVOQ0lMX1dSSVRFX01BU0tfU0hJRlQJMTYKLQotLyogZ2FwICovCi0KLSNkZWZpbmUgUjMwMF9SQjNEX1pTVEVOQ0lMX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAweDRGMTAKLSMJZGVmaW5lIFIzMDBfREVQVEhfRk9STUFUXzE2QklUX0lOVF9aICAgICAoMCA8PCAwKQotIwlkZWZpbmUgUjMwMF9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1ogICAgICgyIDw8IDApCi0JLyogMTYgYml0IGZvcm1hdCBvciBzb21lIGFkaXRpb25hbCBiaXQgPyAqLwotIwlkZWZpbmUgUjMwMF9ERVBUSF9GT1JNQVRfVU5LMzIgICAgICAgICAgKDMyIDw8IDApCi0KLSNkZWZpbmUgUjMwMF9SQjNEX0VBUkxZX1ogICAgICAgICAgICAgICAgICAgICAgICAgICAweDRGMTQKLSMJZGVmaW5lIFIzMDBfRUFSTFlfWl9ESVNBQkxFICAgICAgICAgICAgICAoMCA8PCAwKQotIwlkZWZpbmUgUjMwMF9FQVJMWV9aX0VOQUJMRSAgICAgICAgICAgICAgICgxIDw8IDApCi0KLS8qIGdhcCAqLwotCi0jZGVmaW5lIFIzMDBfUkIzRF9aQ0FDSEVfQ1RMU1RBVCAgICAgICAgICAgIDB4NEYxOCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pDQUNIRV9VTktOT1dOXzAxICAweDEKLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aQ0FDSEVfVU5LTk9XTl8wMyAgMHgzCi0KLS8qIGdhcCAqLwotCi0jZGVmaW5lIFIzMDBfUkIzRF9ERVBUSE9GRlNFVCAgICAgICAgICAgICAgIDB4NEYyMAotI2RlZmluZSBSMzAwX1JCM0RfREVQVEhQSVRDSCAgICAgICAgICAgICAgICAweDRGMjQKLSMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhQSVRDSF9NQVNLICAgICAgICAgICAgICAweDAwMDAxRkY4IC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIX1RJTEVfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTYpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIX01JQ1JPVElMRV9FTkFCTEUgICAgICAgKDEgPDwgMTcpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIX0VORElBTl9OT19TV0FQICAgICAgICAgKDAgPDwgMTgpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIX0VORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIX0VORElBTl9EV09SRF9TV0FQICAgICAgKDIgPDwgMTgpIC8qIEdVRVNTICovCi0KLS8qIEJFR0lOOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KLQotLyogRXZlcnkgaW5zdHJ1Y3Rpb24gaXMgZm91ciBkd29yZHMgbG9uZzoKLSAqICBEV09SRCAwOiBvdXRwdXQgYW5kIG9wY29kZQotICogIERXT1JEIDE6IGZpcnN0IGFyZ3VtZW50Ci0gKiAgRFdPUkQgMjogc2Vjb25kIGFyZ3VtZW50Ci0gKiAgRFdPUkQgMzogdGhpcmQgYXJndW1lbnQKLSAqCi0gKiBOb3RlczoKLSAqICAtIEFCUyByLCBhIGlzIGltcGxlbWVudGVkIGFzIE1BWCByLCBhLCAtYQotICogIC0gTU9WIGlzIGltcGxlbWVudGVkIGFzIEFERCB0byB6ZXJvCi0gKiAgLSBYUEQgaXMgaW1wbGVtZW50ZWQgYXMgTVVMICsgTUFECi0gKiAgLSBGTFIgaXMgaW1wbGVtZW50ZWQgYXMgRlJDICsgQURECi0gKiAgLSBhcHBhcmVudGx5LCBmZ2xyeCB0cmllcyB0byBzY2hlZHVsZSBpbnN0cnVjdGlvbnMgc28gdGhhdCB0aGVyZSBpcyBhdAotICogICAgbGVhc3Qgb25lIGluc3RydWN0aW9uIGJldHdlZW4gdGhlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGFuZCB0aGUgZmlyc3QKLSAqICAgIHJlYWQgZnJvbSBzYWlkIHRlbXBvcmFyeTsgaG93ZXZlciwgdmlvbGF0aW9ucyBvZiB0aGlzIHNjaGVkdWxpbmcgYXJlCi0gKiAgICBhbGxvd2VkCi0gKiAgLSByZWdpc3RlciBpbmRpY2VzIHNlZW0gdG8gYmUgdW5yZWxhdGVkIHdpdGggT3BlbkdMIGFsaWFzaW5nIHRvCi0gKiAgICBjb252ZW50aW9uYWwgc3RhdGUKLSAqICAtIG9ubHkgb25lIGF0dHJpYnV0ZSBhbmQgb25lIHBhcmFtZXRlciBjYW4gYmUgbG9hZGVkIGF0IGEgdGltZTsgaG93ZXZlciwKLSAqICAgIHRoZSBzYW1lIGF0dHJpYnV0ZS9wYXJhbWV0ZXIgY2FuIGJlIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQKLSAqICAtIHRoZSBzZWNvbmQgc29mdHdhcmUgYXJndW1lbnQgZm9yIFBPVyBpcyB0aGUgdGhpcmQgaGFyZHdhcmUgYXJndW1lbnQKLSAqICAgIChubyBpZGVhIHdoeSkKLSAqICAtIE1BRCB3aXRoIG9ubHkgdGVtcG9yYXJpZXMgYXMgaW5wdXQgc2VlbXMgdG8gdXNlIFZQSV9PVVRfU0VMRUNUX01BRF8yCi0gKgotICogVGhlcmUgaXMgc29tZSBtYWdpYyBzdXJyb3VuZGluZyBMSVQ6Ci0gKiAgIFRoZSBzaW5nbGUgYXJndW1lbnQgaXMgcmVwbGljYXRlZCBhY3Jvc3MgYWxsIHRocmVlIGlucHV0cywgYnV0IHN3aXp6bGVkOgotICogICAgIEZpcnN0IGFyZ3VtZW50OiB4eXp5Ci0gKiAgICAgU2Vjb25kIGFyZ3VtZW50OiB4eXp4Ci0gKiAgICAgVGhpcmQgYXJndW1lbnQ6IHh5encKLSAqICAgV2hlbmV2ZXIgdGhlIHJlc3VsdCBpcyB1c2VkIGxhdGVyIGluIHRoZSBmcmFnbWVudCBwcm9ncmFtLCBmZ2xyeCBmb3JjZXMKLSAqICAgeCBhbmQgdyB0byBiZSAxLjAgaW4gdGhlIGlucHV0IHNlbGVjdGlvbjsgSSBkb24ndCBrbm93IHdoZXRoZXIgdGhpcyBpcwotICogICBzdHJpY3RseSBuZWNlc3NhcnkKLSAqLwotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfRE9UICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01VTCAgICAgICAgICAgICAgICAgICAgICgyIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9BREQgICAgICAgICAgICAgICAgICAgICAoMyA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFEICAgICAgICAgICAgICAgICAgICAgKDQgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0RTVCAgICAgICAgICAgICAgICAgICAgICg1IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9GUkMgICAgICAgICAgICAgICAgICAgICAoNiA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFYICAgICAgICAgICAgICAgICAgICAgKDcgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01JTiAgICAgICAgICAgICAgICAgICAgICg4IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9TR0UgICAgICAgICAgICAgICAgICAgICAoOSA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfU0xUICAgICAgICAgICAgICAgICAgICAgKDEwIDw8IDApCi0JLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHZlY3RvcihzY2FsYXIsIHZlY3RvcikgKi8KLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyICAgICAgICAgICAgICAgICAgICgxMiA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfQVJMICAgICAgICAgICAgICAgICAgICAgKDEzIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9FWFAgICAgICAgICAgICAgICAgICAgICAoNjUgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0xPRyAgICAgICAgICAgICAgICAgICAgICg2NiA8PCAwKQotCS8qIFVzZWQgaW4gZm9nIGNvbXB1dGF0aW9ucywgc2NhbGFyKHNjYWxhcikgKi8KLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzY3ICAgICAgICAgICAgICAgICAgICg2NyA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTElUICAgICAgICAgICAgICAgICAgICAgKDY4IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9QT1cgICAgICAgICAgICAgICAgICAgICAoNjkgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1JDUCAgICAgICAgICAgICAgICAgICAgICg3MCA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfUlNRICAgICAgICAgICAgICAgICAgICAgKDcyIDw8IDApCi0JLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHNjYWxhcihzY2FsYXIpICovCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTks3MyAgICAgICAgICAgICAgICAgICAoNzMgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0VYMiAgICAgICAgICAgICAgICAgICAgICg3NSA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTEcyICAgICAgICAgICAgICAgICAgICAgKDc2IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9NQURfMiAgICAgICAgICAgICAgICAgICAoMTI4IDw8IDApCi0JLyogYWxsIHRlbXBzLCB2ZWN0b3Ioc2NhbGFyLCB2ZWN0b3IsIHZlY3RvcikgKi8KLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyOSAgICAgICAgICAgICAgICAgICgxMjkgPDwgMCkKLQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX1RFTVBPUkFSWSAgICAgICAgKDAgPDwgOCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19DTEFTU19BRERSICAgICAgICAgICAgICgxIDw8IDgpCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9SRUdfQ0xBU1NfUkVTVUxUICAgICAgICAgICAoMiA8PCA4KQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgKDMxIDw8IDgpCi0KLSNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgIDEzCi0JLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLwotI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgKDMxIDw8IDEzKQotCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9YICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX1dSSVRFX1kgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfV1JJVEVfWiAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9XICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKLQotI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfVEVNUE9SQVJZICAgICAgICAgKDAgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX0FUVFJJQlVURSAgICAgICAgICgxIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19DTEFTU19QQVJBTUVURVIgICAgICAgICAoMiA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfTk9ORSAgICAgICAgICAgICAgKDkgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQotCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgICA1Ci0JLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLwotI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgKDI1NSA8PCA1KQotCi0vKiBUaGUgUjMwMCBjYW4gc2VsZWN0IGNvbXBvbmVudHMgZnJvbSB0aGUgaW5wdXQgcmVnaXN0ZXIgYXJiaXRyYXJpbHkuCi0gKiBVc2UgdGhlIGZvbGxvd2luZyBjb25zdGFudHMsIHNoaWZ0ZWQgYnkgdGhlIGNvbXBvbmVudCBzaGlmdCB5b3UKLSAqIHdhbnQgdG8gc2VsZWN0Ci0gKi8KLSNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1ggICAgMAotI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWSAgICAxCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9aICAgIDIKLSNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1cgICAgMwotI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWkVSTyA0Ci0jZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9PTkUgIDUKLSNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX01BU0sgNwotCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1hfU0hJRlQgICAgICAgICAgICAgICAgICAgICAxMwotI2RlZmluZSBSMzAwX1ZQSV9JTl9ZX1NISUZUICAgICAgICAgICAgICAgICAgICAgMTYKLSNkZWZpbmUgUjMwMF9WUElfSU5fWl9TSElGVCAgICAgICAgICAgICAgICAgICAgIDE5Ci0jZGVmaW5lIFIzMDBfVlBJX0lOX1dfU0hJRlQgICAgICAgICAgICAgICAgICAgICAyMgotCi0jZGVmaW5lIFIzMDBfVlBJX0lOX05FR19YICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNSkKLSNkZWZpbmUgUjMwMF9WUElfSU5fTkVHX1kgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI2KQotI2RlZmluZSBSMzAwX1ZQSV9JTl9ORUdfWiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCi0jZGVmaW5lIFIzMDBfVlBJX0lOX05FR19XICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKLS8qIEVORDogVmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb24gc2V0ICovCi0KLS8qIEJFR0lOOiBQYWNrZXQgMyBjb21tYW5kcyAqLwotCi0vKiBBIHByaW1pdGl2ZSBlbWlzc2lvbiBkd29yZC4gKi8KLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTk9ORSAgICAgICAgICAgICAgICAgICAgICgwIDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1BPSU5UICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FICAgICAgICAgICAgICAgICAgICAgKDIgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTElORV9TVFJJUCAgICAgICAgICAgICAgICgzIDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9MSVNUICAgICAgICAgICAgICAgICAoNCA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9UUklfRkFOICAgICAgICAgICAgICAgICAgKDUgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfVFJJX1NUUklQICAgICAgICAgICAgICAgICg2IDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9UWVBFMiAgICAgICAgICAgICAgICAoNyA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9SRUNUX0xJU1QgICAgICAgICAgICAgICAgKDggPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUICAgICAgICAgICg5IDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUICAgICAgICAgICAoMTAgPDwgMCkKLQkvKiBHVUVTUyAoYmFzZWQgb24gcjIwMCkgKi8KLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUE9JTlRfU1BSSVRFUyAgICAgICAgICAgICgxMSA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FX0xPT1AgICAgICAgICAgICAgICAgKDEyIDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTMgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUVVBRF9TVFJJUCAgICAgICAgICAgICAgICgxNCA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9QT0xZR09OICAgICAgICAgICAgICAgICAgKDE1IDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAweEYKLSNkZWZpbmUgUjMwMF9QUklNX1dBTEtfSU5EICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCi0jZGVmaW5lIFIzMDBfUFJJTV9XQUxLX0xJU1QgICAgICAgICAgICAgICAgICAgICAoMiA8PCA0KQotI2RlZmluZSBSMzAwX1BSSU1fV0FMS19SSU5HICAgICAgICAgICAgICAgICAgICAgKDMgPDwgNCkKLSNkZWZpbmUgUjMwMF9QUklNX1dBTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICgzIDw8IDQpCi0JLyogR1VFU1MgKGJhc2VkIG9uIHIyMDApICovCi0jZGVmaW5lIFIzMDBfUFJJTV9DT0xPUl9PUkRFUl9CR1JBICAgICAgICAgICAgICAoMCA8PCA2KQotI2RlZmluZSBSMzAwX1BSSU1fQ09MT1JfT1JERVJfUkdCQSAgICAgICAgICAgICAgKDEgPDwgNikKLSNkZWZpbmUgUjMwMF9QUklNX05VTV9WRVJUSUNFU19TSElGVCAgICAgICAgICAgIDE2Ci0jZGVmaW5lIFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfTUFTSyAgICAgICAgICAgICAweGZmZmYKLQotLyogRHJhdyBhIHByaW1pdGl2ZSBmcm9tIHZlcnRleCBkYXRhIGluIGFycmF5cyBsb2FkZWQgdmlhIDNEX0xPQURfVkJQTlRSLgotICogVHdvIHBhcmFtZXRlciBkd29yZHM6Ci0gKiAwLiBUaGUgZmlyc3QgcGFyYW1ldGVyIGFwcGVhcnMgdG8gYmUgYWx3YXlzIDAKLSAqIDEuIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgc3RhbmRhcmQgcHJpbWl0aXZlIGVtaXNzaW9uIGR3b3JkLgotICovCi0jZGVmaW5lIFIzMDBfUEFDS0VUM18zRF9EUkFXX1ZCVUYgICAgICAgICAgIDB4MDAwMDI4MDAKLQotLyogU3BlY2lmeSB0aGUgZnVsbCBzZXQgb2YgdmVydGV4IGFycmF5cyBhcyAoYWRkcmVzcywgc3RyaWRlKS4KLSAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB2ZXJ0ZXggYXJyYXlzIHNwZWNpZmllZC4KLSAqIFRoZSByZXN0IG9mIHRoZSBjb21tYW5kIGlzIGEgdmFyaWFibGUgbGVuZ3RoIGxpc3Qgb2YgYmxvY2tzLCB3aGVyZQotICogZWFjaCBibG9jayBpcyB0aHJlZSBkd29yZHMgbG9uZyBhbmQgc3BlY2lmaWVzIHR3byBhcnJheXMuCi0gKiBUaGUgZmlyc3QgZHdvcmQgb2YgYSBibG9jayBpcyBzcGxpdCBpbnRvIHR3byB3b3JkcywgdGhlIGxvd2VyIHNpZ25pZmljYW50Ci0gKiB3b3JkIHJlZmVycyB0byB0aGUgZmlyc3QgYXJyYXksIHRoZSBtb3JlIHNpZ25pZmljYW50IHdvcmQgdG8gdGhlIHNlY29uZAotICogYXJyYXkgaW4gdGhlIGJsb2NrLgotICogVGhlIGxvdyBieXRlIG9mIGVhY2ggd29yZCBjb250YWlucyB0aGUgc2l6ZSBvZiBhbiBhcnJheSBlbnRyeSBpbiBkd29yZHMsCi0gKiB0aGUgaGlnaCBieXRlIGNvbnRhaW5zIHRoZSBzdHJpZGUgb2YgdGhlIGFycmF5LgotICogVGhlIHNlY29uZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBmaXJzdCBhcnJheSwKLSAqIHRoZSB0aGlyZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzZWNvbmQgYXJyYXkuCi0gKiBOb3RlIHRoYXQgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBhcnJheXMgaXMgb2RkLCB0aGUgdGhpcmQgZHdvcmQgb2YKLSAqIHRoZSBsYXN0IGJsb2NrIGlzIG9taXR0ZWQuCi0gKi8KLSNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0xPQURfVkJQTlRSICAgICAgICAgMHgwMDAwMkYwMAotCi0jZGVmaW5lIFIzMDBfUEFDS0VUM19JTkRYX0JVRkZFUiAgICAgICAgICAgIDB4MDAwMDMzMDAKLSMgICAgZGVmaW5lIFIzMDBfRUJfVU5LMV9TSElGVCAgICAgICAgICAgICAgICAgICAgICAyNAotIyAgICBkZWZpbmUgUjMwMF9FQl9VTksxICAgICAgICAgICAgICAgICAgICAoMHg4MDw8MjQpCi0jICAgIGRlZmluZSBSMzAwX0VCX1VOSzIgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTAKLSNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0RSQVdfVkJVRl8yICAgICAgICAgMHgwMDAwMzQwMAotI2RlZmluZSBSMzAwX1BBQ0tFVDNfM0RfRFJBV19JTkRYXzIgICAgICAgICAweDAwMDAzNjAwCi0KLS8qIEVORDogUGFja2V0IDMgY29tbWFuZHMgKi8KLQotCi0vKiBDb2xvciBmb3JtYXRzIGZvciAyZCBwYWNrZXRzCi0gKi8KLSNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQ0k4CTIKLSNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQVJHQjE1NTUJMwotI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9SR0I1NjUJNAotI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2Ci0jZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjMzMgk3Ci0jZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjgJOQotI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQotCi0vKgotICogQ1AgdHlwZS0zIHBhY2tldHMKLSAqLwotI2RlZmluZSBSMzAwX0NQX0NNRF9CSVRCTFRfTVVMVEkJMHhDMDAwOUIwMAotCi0jZW5kaWYgLyogX1IzMDBfUkVHX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2NwLmMgYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9jcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmY2YzkyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2NwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNDM1ICswLDAgQEAKLS8qIHJhZGVvbl9jcC5jIC0tIENQIHN1cHBvcnQgZm9yIFJhZGVvbiAtKi0gbGludXgtYyAtKi0gKi8KLS8qCi0gKiBDb3B5cmlnaHQgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgotICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0jaW5jbHVkZSAiZHJtLmgiCi0jaW5jbHVkZSAicmFkZW9uX2RybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKLSNpbmNsdWRlICJyMzAwX3JlZy5oIgotCi0jZGVmaW5lIFJBREVPTl9GSUZPX0RFQlVHCTAKLQotc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci0KLS8qIENQIG1pY3JvY29kZSAoZnJvbSBBVEkpICovCi1zdGF0aWMgY29uc3QgdTMyIFIyMDBfY3BfbWljcm9jb2RlW11bMl0gPSB7Ci0JezB4MjEwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDIwMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDBhYiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwYWYsIDB4MDAwMDAwMDR9LAotCXsweDY2NTQ0YTQ5LCAwMDAwMDAwMDAwfSwKLQl7MHg0OTQ5NDE3NCwgMDAwMDAwMDAwMH0sCi0JezB4NTQ1MTdkODMsIDAwMDAwMDAwMDB9LAotCXsweDQ5OGQ4YjY0LCAwMDAwMDAwMDAwfSwKLQl7MHg0OTQ5NDk0OSwgMDAwMDAwMDAwMH0sCi0JezB4NDlkYTQ5M2MsIDAwMDAwMDAwMDB9LAotCXsweDQ5OTg5ODk4LCAwMDAwMDAwMDAwfSwKLQl7MHhkMzQ5NDlkNSwgMDAwMDAwMDAwMH0sCi0JezB4OWRjOTBlMTEsIDAwMDAwMDAwMDB9LAotCXsweGNlOWI5YjliLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDBmMDAwMCwgMHgwMDAwMDAxNn0sCi0JezB4MzUyZTIzMmMsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMDEzLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBmMDAwMCwgMHgwMDAwMDAxNn0sCi0JezB4MzUyZTI3MmMsIDAwMDAwMDAwMDB9LAotCXsweDAwMGYwMDAxLCAweDAwMDAwMDE2fSwKLQl7MHgzMjM5MzYyZiwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc3ZWYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDAyMCwgMHgwMDAwMDAxYX0sCi0JezB4MDAwMDQwMDAsIDB4MDAwMDAwMWV9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDAyMCwgMHgwMDAwMDAxYX0sCi0JezB4MDAwMDQwMDAsIDB4MDAwMDAwMWV9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDAyMCwgMHgwMDAwMDAxYX0sCi0JezB4MDAwMDQwMDAsIDB4MDAwMDAwMWV9LAotCXsweDAwMDAwMDE2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAzODAyYSwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDY3ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDE2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNzdlMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAzN2UxLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwNjdlMSwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDc3ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3N2UxLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzdlMSwgMHgwMDAwMDAwNn0sCi0JezB4ZmZmZmZmZmYsIDAwMDAwMDAwMDB9LAotCXsweDEwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAzODAyYSwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDY3ZTAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDA3Njc1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzcsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc4LCAweDAwMDAwMDA2fSwKLQl7MHgwMDAzODAyYiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI2NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3OCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDAwMmUsIDB4MDAwMDAwMTh9LAotCXsweDAwMDAwMDJlLCAweDAwMDAwMDE4fSwKLQl7MDAwMDAwMDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDAwMmYsIDB4MDAwMDAwMTh9LAotCXsweDAwMDAwMDJmLCAweDAwMDAwMDE4fSwKLQl7MDAwMDAwMDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDE2MDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA5ODAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDY0YzA2MDNkLCAweDAwMDAwMDA0fSwKLQl7MHgwMDA4MDAwMCwgMHgwMDAwMDAxNn0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXsweDA0MDAyNTFkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU4MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjc1ODEsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNTgwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NzU4MSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNDYsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA1MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDE5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAxMTA1NSwgMHgwMDAwMDAxNH0sCi0JezB4MDAwMDAwNTUsIDB4MDAwMDAwMTJ9LAotCXsweDA0MDAyNTBmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNTA0YSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc1NjUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA1MSwgMHgwMDAwMDAwNH0sCi0JezB4MDFlNjU1YjQsIDB4MDAwMDAwMDJ9LAotCXsweDQ0MDFiMGRjLCAweDAwMDAwMDAyfSwKLQl7MHgwMWMxMTBkYywgMHgwMDAwMDAwMn0sCi0JezB4MjY2NjcwNWQsIDB4MDAwMDAwMTh9LAotCXsweDA0MGMyNTY1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA1ZCwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDI1NjQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA1NCwgMHgwMDAwMDAwNH0sCi0JezB4MDA0MDEwNjAsIDB4MDAwMDAwMDh9LAotCXsweDAwMTAxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBkODBmZiwgMHgwMDAwMDAwMn0sCi0JezB4MDA4MDAwNjMsIDB4MDAwMDAwMDh9LAotCXsweDAwMGY5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBlMDBmZiwgMHgwMDAwMDAwMn0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDgwLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDA1NCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc1NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwOTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNDEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDBjMDAzNTBlLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA0OTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNTEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAxZTc4NWY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDIwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwNzMsIDB4MDAwMDAwMGN9LAotCXsweDAwMDA3NTYzLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwNzVmMCwgMHgwMDAwMDAyMX0sCi0JezB4MjAwMDcwNjgsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA1MDY4LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNzU3NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NzcsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTBlLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzUwZiwgMHgwMDAwMDAwMn0sCi0JezB4MDBhMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjAwMDc2LCAweDAwMDAwMDBjfSwKLQl7MHgwMDYwNzVmMCwgMHgwMDAwMDAyMX0sCi0JezB4MDAwMDc1ZjgsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDc2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBhNzUwZSwgMHgwMDAwMDAwMn0sCi0JezB4MDAyMDc1MGYsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjAwMDc5LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNzU3MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NzEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTcyLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDBhMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwODQsIDB4MDAwMDAwMGN9LAotCXsweDAwMDU4MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwYzYwNzU2MiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwODYsIDB4MDAwMDAwMDR9LAotCXsweDAwNjAwMDg1LCAweDAwMDAwMDA0fSwKLQl7MHg0MDAwNzBkZCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwZGQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDkzLCAweDAwMDAwMDFjfSwKLQl7MHgwMDA2NTA5NSwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDI1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDk2LCAweDAwMDAwMDE4fSwKLQl7MHgwNDAwNzViYywgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NWJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDA5MDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwOTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMGQ4MDAyLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc4MjEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3ODAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwNzgyMSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc4MDAsIDAwMDAwMDAwMDB9LAotCXsweDAxNjY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBhMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjcxY2MsIDB4MDAwMDAwMDJ9LAotCXsweDAyODZmMWNkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBhMywgMHgwMDAwMDAxMH0sCi0JezB4MjEwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMGFhLCAweDAwMDAwMDFjfSwKLQl7MHgwMDA2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwYTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBiMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MzgwNjcwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMGEwMGE2LCAweDAwMDAwMDA0fSwKLQl7MHgyMDAwNzAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDEyMDAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDIwMDc3MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTIwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MjAwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTIwNzUxYiwgMHgwMDAwMDAwMn0sCi0JezB4ODA0MDc1MGEsIDB4MDAwMDAwMDJ9LAotCXsweDgwNDA3NTBiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDExMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMzgwZGQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMGJkLCAweDAwMDAwMDFjfSwKLQl7MHgwMDA2MTA5NiwgMHgwMDAwMDAxOH0sCi0JezB4ODQ0MDc1YmQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDk1LCAweDAwMDAwMDE4fSwKLQl7MHg4NDAwNzViYiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjEwOTYsIDB4MDAwMDAwMTh9LAotCXsweDg0NDA3NWJjLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBjMCwgMHgwMDAwMDAwNH0sCi0JezB4ODA0MDc1YmQsIDB4MDAwMDAwMDJ9LAotCXsweDgwMDA3NWJiLCAweDAwMDAwMDAyfSwKLQl7MHg4MDQwNzViYywgMHgwMDAwMDAwMn0sCi0JezB4MDAxMDgwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAxNDAwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDBjNCwgMHgwMDAwMDAwY30sCi0JezB4MjBjMDcwMDAsIDB4MDAwMDAwMjB9LAotCXsweDAwMDAwMGM2LCAweDAwMDAwMDEyfSwKLQl7MHgwMDgwMDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDA4MDc1MWQsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAyNWJiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNDBjMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc3NWMsIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDY2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDQ2MDI3NWQsIDB4MDAwMDAwMjB9LAotCXsweDAwMDA0MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwNzk5OSwgMHgwMDAwMDAwMn0sCi0JezB4MDBhMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwNDYwMjk5YiwgMHgwMDAwMDAyMH0sCi0JezB4MDAwMDQwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAxZTAwODMwLCAweDAwMDAwMDAyfSwKLQl7MHgyMTAwNzAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MDQyLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVlMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1ZTEsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMDAxLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAzODBkOSwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDczOTQsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotfTsKLQotc3RhdGljIGNvbnN0IHUzMiByYWRlb25fY3BfbWljcm9jb2RlW11bMl0gPSB7Ci0JezB4MjEwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDIwMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDBiNCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwYjgsIDB4MDAwMDAwMDR9LAotCXsweDZmNWI0ZDRjLCAwMDAwMDAwMDAwfSwKLQl7MHg0YzRjNDI3ZiwgMDAwMDAwMDAwMH0sCi0JezB4NWI1NjhhOTIsIDAwMDAwMDAwMDB9LAotCXsweDRjYTA5YzZkLCAwMDAwMDAwMDAwfSwKLQl7MHhhZDRjNGM0YywgMDAwMDAwMDAwMH0sCi0JezB4NGNlMWFmM2QsIDAwMDAwMDAwMDB9LAotCXsweGQ4YWZhZmFmLCAwMDAwMDAwMDAwfSwKLQl7MHhkNjRjNGNkYywgMDAwMDAwMDAwMH0sCi0JezB4NGNkMTBkMTAsIDAwMDAwMDAwMDB9LAotCXsweDAwMGYwMDAwLCAweDAwMDAwMDE2fSwKLQl7MHgzNjJmMjQyZCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwMTIsIDB4MDAwMDAwMDR9LAotCXsweDAwMGYwMDAwLCAweDAwMDAwMDE2fSwKLQl7MHgzNjJmMjgyZCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwZTcsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyYzk3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDBmMDAwMSwgMHgwMDAwMDAxNn0sCi0JezB4MzMzYTM3MzAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA3N2VmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjEsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjEsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjEsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDAwMDAxNywgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwMmIsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA2N2UwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDAxNywgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc3ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMzdlMSwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDY3ZTEsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDA3N2UwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzdlMSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc3ZTEsIDB4MDAwMDAwMDZ9LAotCXsweGZmZmZmZmZmLCAwMDAwMDAwMDAwfSwKLQl7MHgxMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwMmIsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA2N2UwLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNzY3NSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3OCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMzgwMmMsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNjc2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzgsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDJmLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDAyZiwgMHgwMDAwMDAxOH0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDMwLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDAzMCwgMHgwMDAwMDAxOH0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAxNjA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwOTgwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHg2NGMwNjAzZSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDA4MDAwMCwgMHgwMDAwMDAxNn0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXsweDA0MDAyNTFkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU4MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjc1ODEsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNTgwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NzU4MSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNDksIDB4MDAwMDAwMDR9LAotCXsweDAwMDA1MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzUwZSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMTkwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDExMDU1LCAweDAwMDAwMDE0fSwKLQl7MHgwMDAwMDA1NSwgMHgwMDAwMDAxMn0sCi0JezB4MDQwMDI1MGYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA1MDRmLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNTgsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDFlNjU1YjQsIDB4MDAwMDAwMDJ9LAotCXsweDQ0MDFiMGU0LCAweDAwMDAwMDAyfSwKLQl7MHgwMWMxMTBlNCwgMHgwMDAwMDAwMn0sCi0JezB4MjY2NjcwNjYsIDB4MDAwMDAwMTh9LAotCXsweDA0MGMyNTY1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA2NiwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDI1NjQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA1ZCwgMHgwMDAwMDAwNH0sCi0JezB4MDA0MDEwNjksIDB4MDAwMDAwMDh9LAotCXsweDAwMTAxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBkODBmZiwgMHgwMDAwMDAwMn0sCi0JezB4MDA4MDAwNmMsIDB4MDAwMDAwMDh9LAotCXsweDAwMGY5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBlMDBmZiwgMHgwMDAwMDAwMn0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDhmLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDA1YiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU3NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA0MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MGMwMDM1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDQ5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA1MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDFlNzg1ZjgsIDB4MDAwMDAwMDJ9LAotCXsweDAwMjAwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA3ZSwgMHgwMDAwMDAwY30sCi0JezB4MDAwMDc1NjMsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjA3NWYwLCAweDAwMDAwMDIxfSwKLQl7MHgyMDAwNzA3MywgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDUwNzMsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTc3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzUwZSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1MGYsIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA4MywgMHgwMDAwMDAwY30sCi0JezB4MDA2MDc1ZjAsIDB4MDAwMDAwMjF9LAotCXsweDAwMDA3NWY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA4MywgMHgwMDAwMDAwNH0sCi0JezB4MDAwYTc1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDAyMDc1MGYsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjAwMDg2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNzU3MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NzEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTcyLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMGEwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NjgsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA5NSwgMHgwMDAwMDAwY30sCi0JezB4MDAwNTgwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDBjNjA3NTYyLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA5NywgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA5NiwgMHgwMDAwMDAwNH0sCi0JezB4NDAwMDcwZTUsIDAwMDAwMDAwMDB9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMzgwZTUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMGE4LCAweDAwMDAwMDFjfSwKLQl7MHgwMDA2NTBhYSwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDI1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMGFiLCAweDAwMDAwMDE4fSwKLQl7MHgwNDAwNzViYywgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NWJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDA5MDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwOTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMGQ4MDAyLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNzgzMiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MGU3LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMmM5NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc4MjAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3ODIxLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzgwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDEyMDAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDIwMDc3MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTIwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MjAwMDcwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTIwNzUxYiwgMHgwMDAwMDAwMn0sCi0JezB4ODA0MDc1MGEsIDB4MDAwMDAwMDJ9LAotCXsweDgwNDA3NTBiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDExMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMzgwZTUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMGM2LCAweDAwMDAwMDFjfSwKLQl7MHgwMDA2MTBhYiwgMHgwMDAwMDAxOH0sCi0JezB4ODQ0MDc1YmQsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMGFhLCAweDAwMDAwMDE4fSwKLQl7MHg4NDAwNzViYiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjEwYWIsIDB4MDAwMDAwMTh9LAotCXsweDg0NDA3NWJjLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBjOSwgMHgwMDAwMDAwNH0sCi0JezB4ODA0MDc1YmQsIDB4MDAwMDAwMDJ9LAotCXsweDgwMDA3NWJiLCAweDAwMDAwMDAyfSwKLQl7MHg4MDQwNzViYywgMHgwMDAwMDAwMn0sCi0JezB4MDAxMDgwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAxNDAwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDBjZCwgMHgwMDAwMDAwY30sCi0JezB4MjBjMDcwMDAsIDB4MDAwMDAwMjB9LAotCXsweDAwMDAwMGNmLCAweDAwMDAwMDEyfSwKLQl7MHgwMDgwMDAwMCwgMHgwMDAwMDAwNn0sCi0JezB4MDA4MDc1MWQsIDB4MDAwMDAwMDZ9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwNzc1YywgMHgwMDAwMDAwMn0sCi0JezB4MDBhMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwNDYwMjc1ZCwgMHgwMDAwMDAyMH0sCi0JezB4MDAwMDQwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAxZTAwODMwLCAweDAwMDAwMDAyfSwKLQl7MHgyMTAwNzAwMCwgMDAwMDAwMDAwMH0sCi0JezB4NjQ2NDYxNGQsIDAwMDAwMDAwMDB9LAotCXsweDY5Njg3NDIwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDA3MywgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAzODBkMCwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NWUxLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDAwMSwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwZTAsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyMzk0LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNTAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDAwOCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwMDQsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotfTsKLQotc3RhdGljIGNvbnN0IHUzMiBSMzAwX2NwX21pY3JvY29kZVtdWzJdID0gewotCXsweDQyMDBlMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHg0MDAwZTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwYWYsIDB4MDAwMDAwMDh9LAotCXsweDAwMDAwMGIzLCAweDAwMDAwMDA4fSwKLQl7MHg2YzVhNTA0ZiwgMDAwMDAwMDAwMH0sCi0JezB4NGY0ZjQ5N2EsIDAwMDAwMDAwMDB9LAotCXsweDVhNTc4Mjg4LCAwMDAwMDAwMDAwfSwKLQl7MHg0ZjkxOTA2YSwgMDAwMDAwMDAwMH0sCi0JezB4NGY0ZjRmNGYsIDAwMDAwMDAwMDB9LAotCXsweDRmZTI0ZjQ0LCAwMDAwMDAwMDAwfSwKLQl7MHg0ZjljOWM5YywgMDAwMDAwMDAwMH0sCi0JezB4ZGM0ZjRmZGUsIDAwMDAwMDAwMDB9LAotCXsweGExY2Q0ZjRmLCAwMDAwMDAwMDAwfSwKLQl7MHhkMjlkOWQ5ZCwgMDAwMDAwMDAwMH0sCi0JezB4NGYwZjlmZDcsIDAwMDAwMDAwMDB9LAotCXsweDAwMGNhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAxMiwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4YjQsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDE0LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZThiNiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMTYsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlODU0LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAxOCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4NTUsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDFhLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZTg1NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMWMsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlODU3LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAxZSwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4MjQsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDIwLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZTgyNSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMjIsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlODMwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAyNCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYwYzAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDI2LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjBjMSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMjgsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMDQxLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAyYSwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYxODQsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDJjLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjE4NSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMmUsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMTg2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAzMCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYxODcsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDMyLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjE4MCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMzQsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMzkzLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAzNiwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYzOGEsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDM4LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjM4ZSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU4MjEsIDB4MDAwMDAwMDR9LAotCXsweDAxNDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDA0MywgMHgwMDAwMDAxOH0sCi0JezB4MDBjY2U4MDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMWIwMDAxLCAweDAwMDAwMDA0fSwKLQl7MHgwODAwNDgwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxYjAwMDEsIDB4MDAwMDAwMDR9LAotCXsweDA4MDA0ODAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDFiMDAwMSwgMHgwMDAwMDAwNH0sCi0JezB4MDgwMDQ4MDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDNhLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwYTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDJjMGEwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGNhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDEzMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweGM5ODBjMDQ1LCAweDAwMDAwMDA4fSwKLQl7MHgyMDAwNDUxZCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1ODAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGNlNTgxLCAweDAwMDAwMDA0fSwKLQl7MHgwODAwNDU4MCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwY2U1ODEsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDRjLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwYTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTBlLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAzMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMjIwNTYsIDB4MDAwMDAwMjh9LAotCXsweDAwMDAwMDU2LCAweDAwMDAwMDI0fSwKLQl7MHgwODAwNDUwZiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGEwNTAsIDB4MDAwMDAwMDh9LAotCXsweDAwMDBlNTY1LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTU2NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwNTcsIDB4MDAwMDAwMDh9LAotCXsweDAzY2NhNWI0LCAweDAwMDAwMDA0fSwKLQl7MHgwNTQzMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMjIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDRjY2NlMDYzLCAweDAwMDAwMDMwfSwKLQl7MHgwODI3NDU2NSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwNjMsIDB4MDAwMDAwMzB9LAotCXsweDA4MDA0NTY0LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTU2NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwNWEsIDB4MDAwMDAwMDh9LAotCXsweDAwODAyMDY2LCAweDAwMDAwMDEwfSwKLQl7MHgwMDIwMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxYjAwZmYsIDB4MDAwMDAwMDR9LAotCXsweDAxMDAwMDY5LCAweDAwMDAwMDEwfSwKLQl7MHgwMDFmMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxYzAwZmYsIDB4MDAwMDAwMDR9LAotCXswMDAwMDAwMDAwLCAweDAwMDAwMDBjfSwKLQl7MHgwMDAwMDA4NSwgMHgwMDAwMDAzMH0sCi0JezB4MDAwMDAwNWEsIDB4MDAwMDAwMDh9LAotCXsweDAwMDBlNTc2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBjYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMTIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDgyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgxODAwNjUwZSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwOTIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGEyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBmMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDA0MDAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDc5LCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwZTU2MywgMHgwMDAwMDAwNH0sCi0JezB4MDBjMGU1ZjksIDB4MDAwMDAwYzJ9LAotCXsweDAwMDAwMDZlLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwYTA2ZSwgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGU1NzYsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTc3LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTUwZSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1MGYsIDB4MDAwMDAwMDR9LAotCXsweDAxNDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDA3YywgMHgwMDAwMDAxOH0sCi0JezB4MDBjMGU1ZjksIDB4MDAwMDAwYzJ9LAotCXsweDAwMDAwMDdjLCAweDAwMDAwMDA4fSwKLQl7MHgwMDE0ZTUwZSwgMHgwMDAwMDAwNH0sCi0JezB4MDA0MGU1MGYsIDB4MDAwMDAwMDR9LAotCXsweDAwYzAwMDdmLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwZTU3MCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1NzEsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTcyLCAweDAwMDAwMDBjfSwKLQl7MHgwMDAwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDE0MGEwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTY4LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBjMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwODksIDB4MDAwMDAwMTh9LAotCXsweDAwMGIwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgxOGMwZTU2MiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwOGIsIDB4MDAwMDAwMDh9LAotCXsweDAwYzAwMDhhLCAweDAwMDAwMDA4fSwKLQl7MHgwMDA3MDBlNCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwOTcsIDB4MDAwMDAwMzh9LAotCXsweDAwMGNhMDk5LCAweDAwMDAwMDMwfSwKLQl7MHgwODAwNDViYiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwYzIwOWEsIDB4MDAwMDAwMzB9LAotCXsweDA4MDBlNWJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwZTViYiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1YmMsIDAwMDAwMDAwMDB9LAotCXsweDAwMTIwMDAwLCAweDAwMDAwMDBjfSwKLQl7MHgwMDEyMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxYjAwMDIsIDB4MDAwMDAwMGN9LAotCXsweDAwMDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTgyMSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU4MDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDBlODIxLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTgyZSwgMDAwMDAwMDAwMH0sCi0JezB4MDJjY2EwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMTQwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBjZTFjYywgMHgwMDAwMDAwNH0sCi0JezB4MDUwZGUxY2QsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMGE3LCAweDAwMDAwMDIwfSwKLQl7MHg0MjAwZTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwYWUsIDB4MDAwMDAwMzh9LAotCXsweDAwMGNhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDE0MDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMTYwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHg3MDBjZTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxNDAwYWEsIDB4MDAwMDAwMDh9LAotCXsweDQwMDBlMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMjQwMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4NDAwZWUwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAyNDAwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHg0MDAwZTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAyNDBlNTFiLCAweDAwMDAwMDA0fSwKLQl7MHgwMDgwZTUwYSwgMHgwMDAwMDAwNX0sCi0JezB4MDA4MGU1MGIsIDB4MDAwMDAwMDV9LAotCXsweDAwMjIwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDA3MDBlNCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwYzEsIDB4MDAwMDAwMzh9LAotCXsweDAwMGMyMDlhLCAweDAwMDAwMDMwfSwKLQl7MHgwODgwZTViZCwgMHgwMDAwMDAwNX0sCi0JezB4MDAwYzIwOTksIDB4MDAwMDAwMzB9LAotCXsweDA4MDBlNWJiLCAweDAwMDAwMDA1fSwKLQl7MHgwMDBjMjA5YSwgMHgwMDAwMDAzMH0sCi0JezB4MDg4MGU1YmMsIDB4MDAwMDAwMDV9LAotCXsweDAwMDAwMGM0LCAweDAwMDAwMDA4fSwKLQl7MHgwMDgwZTViZCwgMHgwMDAwMDAwNX0sCi0JezB4MDAwMGU1YmIsIDB4MDAwMDAwMDV9LAotCXsweDAwODBlNWJjLCAweDAwMDAwMDA1fSwKLQl7MHgwMDIxMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDI4MDAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwYzAwMGM4LCAweDAwMDAwMDE4fSwKLQl7MHg0MTgwZTAwMCwgMHgwMDAwMDA0MH0sCi0JezB4MDAwMDAwY2EsIDB4MDAwMDAwMjR9LAotCXsweDAxMDAwMDAwLCAweDAwMDAwMDBjfSwKLQl7MHgwMTAwZTUxZCwgMHgwMDAwMDAwY30sCi0JezB4MDAwMDQ1YmIsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA4MGM0LCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwZjNjZSwgMHgwMDAwMDAwNH0sCi0JezB4MDE0MGEwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwY2MyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwOGMwNTNjZiwgMHgwMDAwMDA0MH0sCi0JezB4MDAwMDgwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDBmM2QyLCAweDAwMDAwMDA0fSwKLQl7MHgwMTQwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDBjYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDA4YzA1M2QzLCAweDAwMDAwMDQwfSwKLQl7MHgwMDAwODAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMGYzOWQsIDB4MDAwMDAwMDR9LAotCXsweDAxNDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMGNjMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDhjMDUzOWUsIDB4MDAwMDAwNDB9LAotCXsweDAwMDA4MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwM2MwMDgzMCwgMHgwMDAwMDAwNH0sCi0JezB4NDIwMGUwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgyMDAwNDVlMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1ZTEsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMDAxLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDA3MDBlMSwgMHgwMDAwMDAwNH0sCi0JezB4MDgwMGUzOTQsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLX07Ci0KLXN0YXRpYyB1MzIgUkFERU9OX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKLXsKLQl1MzIgcmV0OwotCVJBREVPTl9XUklURShSNTIwX01DX0lORF9JTkRFWCwgMHg3ZjAwMDAgfCAoYWRkciAmIDB4ZmYpKTsKLQlyZXQgPSBSQURFT05fUkVBRChSNTIwX01DX0lORF9EQVRBKTsKLQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB1MzIgUlM2OTBfUkVBRF9NQ0lORChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBhZGRyKQotewotCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgKGFkZHIgJiBSUzY5MF9NQ19JTkRFWF9NQVNLKSk7Ci0JcmV0dXJuIFJBREVPTl9SRUFEKFJTNjkwX01DX0RBVEEpOwotfQotCi11MzIgcmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2KQotewotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCi0JCXJldHVybiBSQURFT05fUkVBRF9NQ0lORChkZXZfcHJpdiwgUlY1MTVfTUNfRkJfTE9DQVRJT04pOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCi0JCXJldHVybiBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19GQl9MT0NBVElPTik7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQotCQlyZXR1cm4gUkFERU9OX1JFQURfTUNJTkQoZGV2X3ByaXYsIFI1MjBfTUNfRkJfTE9DQVRJT04pOwotCWVsc2UKLQkJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9NQ19GQl9MT0NBVElPTik7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBmYl9sb2MpCi17Ci0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCi0JCVJBREVPTl9XUklURV9NQ0lORChSVjUxNV9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCi0JCVJBREVPTl9XUklURV9NQ0lORChSNTIwX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOwotCWVsc2UKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBhZ3BfbG9jKQotewotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQotCQlSQURFT05fV1JJVEVfTUNJTkQoUlY1MTVfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKLQkJUkFERU9OX1dSSVRFX01DSU5EKFI1MjBfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKLQllbHNlCi0JCVJBREVPTl9XUklURShSQURFT05fTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKLX0KLQotc3RhdGljIGludCBSQURFT05fUkVBRF9QTEwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBhZGRyKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlSQURFT05fV1JJVEU4KFJBREVPTl9DTE9DS19DTlRMX0lOREVYLCBhZGRyICYgMHgxZik7Ci0JcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9DTE9DS19DTlRMX0RBVEEpOwotfQotCi1zdGF0aWMgdTMyIFJBREVPTl9SRUFEX1BDSUUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKLXsKLQlSQURFT05fV1JJVEU4KFJBREVPTl9QQ0lFX0lOREVYLCBhZGRyICYgMHhmZik7Ci0JcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9QQ0lFX0RBVEEpOwotfQotCi1zdGF0aWMgdTMyIFJBREVPTl9SRUFEX0lHUEdBUlQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKLXsKLQl1MzIgcmV0OwotCVJBREVPTl9XUklURShSQURFT05fSUdQR0FSVF9JTkRFWCwgYWRkciAmIDB4N2YpOwotCXJldCA9IFJBREVPTl9SRUFEKFJBREVPTl9JR1BHQVJUX0RBVEEpOwotCVJBREVPTl9XUklURShSQURFT05fSUdQR0FSVF9JTkRFWCwgMHg3Zik7Ci0JcmV0dXJuIHJldDsKLX0KLQotI2lmIFJBREVPTl9GSUZPX0RFQlVHCi1zdGF0aWMgdm9pZCByYWRlb25fc3RhdHVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JcHJpbnRrKCIlczpcbiIsIF9fZnVuY19fKTsKLQlwcmludGsoIlJCQk1fU1RBVFVTID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykpOwotCXByaW50aygiQ1BfUkJfUlRQUiA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUikpOwotCXByaW50aygiQ1BfUkJfV1RQUiA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfV1BUUikpOwotCXByaW50aygiQUlDX0NOVEwgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKSk7Ci0JcHJpbnRrKCJBSUNfU1RBVCA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1NUQVQpKTsKLQlwcmludGsoIkFJQ19QVF9CQVNFID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfUFRfQkFTRSkpOwotCXByaW50aygiVExCX0FERFIgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfQUREUikpOwotCXByaW50aygiVExCX0RBVEEgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfREFUQSkpOwotfQotI2VuZGlmCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEVuZ2luZSwgRklGTyBjb250cm9sCi0gKi8KLQotc3RhdGljIGludCByYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQl1MzIgdG1wOwotCWludCBpOwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCk7Ci0JdG1wIHw9IFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTDsKLQlSQURFT05fV1JJVEUoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgdG1wKTsKLQotCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJaWYgKCEoUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCkKLQkJICAgICAgJiBSQURFT05fUkIzRF9EQ19CVVNZKSkgewotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLSNpZiBSQURFT05fRklGT19ERUJVRwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0JcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9kb193YWl0X2Zvcl9maWZvKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBlbnRyaWVzKQotewotCWludCBpOwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQlpbnQgc2xvdHMgPSAoUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKQotCQkJICAgICAmIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSyk7Ci0JCWlmIChzbG90cyA+PSBlbnRyaWVzKQotCQkJcmV0dXJuIDA7Ci0JCURSTV9VREVMQVkoMSk7Ci0JfQotCi0jaWYgUkFERU9OX0ZJRk9fREVCVUcKLQlEUk1fRVJST1IoImZhaWxlZCFcbiIpOwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotI2VuZGlmCi0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIGludCByYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCWludCBpLCByZXQ7Ci0KLQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQlyZXQgPSByYWRlb25fZG9fd2FpdF9mb3JfZmlmbyhkZXZfcHJpdiwgNjQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Ci0JCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykKLQkJICAgICAgJiBSQURFT05fUkJCTV9BQ1RJVkUpKSB7Ci0JCQlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLSNpZiBSQURFT05fRklGT19ERUJVRwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0JcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBDUCBjb250cm9sLCBpbml0aWFsaXphdGlvbgotICovCi0KLS8qIExvYWQgdGhlIG1pY3JvY29kZSBmb3IgdGhlIENQICovCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlpbnQgaTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9BRERSLCAwKTsKLQotCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkgewotCQlEUk1fSU5GTygiTG9hZGluZyBSMjAwIE1pY3JvY29kZVxuIik7Ci0JCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCi0JCQkJICAgICBSMjAwX2NwX21pY3JvY29kZVtpXVsxXSk7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKLQkJCQkgICAgIFIyMDBfY3BfbWljcm9jb2RlW2ldWzBdKTsKLQkJfQotCX0gZWxzZSBpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IzMDApIHsKLQkJRFJNX0lORk8oIkxvYWRpbmcgUjMwMCBNaWNyb2NvZGVcbiIpOwotCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAotCQkJCSAgICAgUjMwMF9jcF9taWNyb2NvZGVbaV1bMV0pOwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCi0JCQkJICAgICBSMzAwX2NwX21pY3JvY29kZVtpXVswXSk7Ci0JCX0KLQl9IGVsc2UgewotCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAotCQkJCSAgICAgcmFkZW9uX2NwX21pY3JvY29kZVtpXVsxXSk7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKLQkJCQkgICAgIHJhZGVvbl9jcF9taWNyb2NvZGVbaV1bMF0pOwotCQl9Ci0JfQotfQotCi0vKiBGbHVzaCBhbnkgcGVuZGluZyBjb21tYW5kcyB0byB0aGUgQ1AuICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQganVzdAotICogcHJpb3IgdG8gYSB3YWl0IGZvciBpZGxlLCBhcyBpdCBpbmZvcm1zIHRoZSBlbmdpbmUgdGhhdCB0aGUgY29tbWFuZAotICogc3RyZWFtIGlzIGVuZGluZy4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX2ZsdXNoKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JRFJNX0RFQlVHKCJcbiIpOwotI2lmIDAKLQl1MzIgdG1wOwotCi0JdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1dQVFIpIHwgKDEgPDwgMzEpOwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgdG1wKTsKLSNlbmRpZgotfQotCi0vKiBXYWl0IGZvciB0aGUgQ1AgdG8gZ28gaWRsZS4KLSAqLwotaW50IHJhZGVvbl9kb19jcF9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JQkVHSU5fUklORyg2KTsKLQotCVJBREVPTl9QVVJHRV9DQUNIRSgpOwotCVJBREVPTl9QVVJHRV9aQ0FDSEUoKTsKLQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQlDT01NSVRfUklORygpOwotCi0JcmV0dXJuIHJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLX0KLQotLyogU3RhcnQgdGhlIENvbW1hbmQgUHJvY2Vzc29yLgotICovCi1zdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX0NTUV9DTlRMLCBkZXZfcHJpdi0+Y3BfbW9kZSk7Ci0KLQlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDE7Ci0KLQlCRUdJTl9SSU5HKDYpOwotCi0JUkFERU9OX1BVUkdFX0NBQ0hFKCk7Ci0JUkFERU9OX1BVUkdFX1pDQUNIRSgpOwotCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKLQotCUFEVkFOQ0VfUklORygpOwotCUNPTU1JVF9SSU5HKCk7Ci19Ci0KLS8qIFJlc2V0IHRoZSBDb21tYW5kIFByb2Nlc3Nvci4gIFRoaXMgd2lsbCBub3QgZmx1c2ggYW55IHBlbmRpbmcKLSAqIGNvbW1hbmRzLCBzbyB5b3UgbXVzdCB3YWl0IGZvciB0aGUgQ1AgY29tbWFuZCBzdHJlYW0gdG8gY29tcGxldGUKLSAqIGJlZm9yZSBjYWxsaW5nIHRoaXMgcm91dGluZS4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX3Jlc2V0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIGN1cl9yZWFkX3B0cjsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQljdXJfcmVhZF9wdHIgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUik7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCBjdXJfcmVhZF9wdHIpOwotCVNFVF9SSU5HX0hFQUQoZGV2X3ByaXYsIGN1cl9yZWFkX3B0cik7Ci0JZGV2X3ByaXYtPnJpbmcudGFpbCA9IGN1cl9yZWFkX3B0cjsKLX0KLQotLyogU3RvcCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuICBUaGlzIHdpbGwgbm90IGZsdXNoIGFueSBwZW5kaW5nCi0gKiBjb21tYW5kcywgc28geW91IG11c3QgZmx1c2ggdGhlIGNvbW1hbmQgc3RyZWFtIGFuZCB3YWl0IGZvciB0aGUgQ1AKLSAqIHRvIGdvIGlkbGUgYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lLgotICovCi1zdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RvcChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCURSTV9ERUJVRygiXG4iKTsKLQotCVJBREVPTl9XUklURShSQURFT05fQ1BfQ1NRX0NOVEwsIFJBREVPTl9DU1FfUFJJRElTX0lORERJUyk7Ci0KLQlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDA7Ci19Ci0KLS8qIFJlc2V0IHRoZSBlbmdpbmUuICBUaGlzIHdpbGwgc3RvcCB0aGUgQ1AgaWYgaXQgaXMgcnVubmluZy4KLSAqLwotc3RhdGljIGludCByYWRlb25fZG9fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdTMyIGNsb2NrX2NudGxfaW5kZXgsIG1jbGtfY250bCwgcmJibV9zb2Z0X3Jlc2V0OwotCURSTV9ERUJVRygiXG4iKTsKLQotCXJhZGVvbl9kb19waXhjYWNoZV9mbHVzaChkZXZfcHJpdik7Ci0KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPCBDSElQX1JWNTE1KSB7Ci0JCWNsb2NrX2NudGxfaW5kZXggPSBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCk7Ci0JCW1jbGtfY250bCA9IFJBREVPTl9SRUFEX1BMTChkZXYsIFJBREVPTl9NQ0xLX0NOVEwpOwotCi0JCVJBREVPTl9XUklURV9QTEwoUkFERU9OX01DTEtfQ05UTCwgKG1jbGtfY250bCB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fTUNMS0EgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtCIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9ZQ0xLQSB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0IgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9BSUMpKTsKLQotCQlyYmJtX3NvZnRfcmVzZXQgPSBSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKLQotCQlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgKHJiYm1fc29mdF9yZXNldCB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9DUCB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9ISSB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9TRSB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9SRSB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9QUCB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9FMiB8Ci0JCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9SQikpOwotCQlSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQsIChyYmJtX3NvZnRfcmVzZXQgJgotCQkJCQkJICAgICAgfihSQURFT05fU09GVF9SRVNFVF9DUCB8Ci0JCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfSEkgfAotCQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1NFIHwKLQkJCQkJCQlSQURFT05fU09GVF9SRVNFVF9SRSB8Ci0JCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUFAgfAotCQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0UyIHwKLQkJCQkJCQlSQURFT05fU09GVF9SRVNFVF9SQikpKTsKLQkJUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7Ci0KLQkJUkFERU9OX1dSSVRFX1BMTChSQURFT05fTUNMS19DTlRMLCBtY2xrX2NudGwpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgsIGNsb2NrX2NudGxfaW5kZXgpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgcmJibV9zb2Z0X3Jlc2V0KTsKLQl9Ci0KLQkvKiBSZXNldCB0aGUgQ1AgcmluZyAqLwotCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7Ci0KLQkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCi0JZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOwotCi0JLyogUmVzZXQgYW55IHBlbmRpbmcgdmVydGV4LCBpbmRpcmVjdCBidWZmZXJzICovCi0JcmFkZW9uX2ZyZWVsaXN0X3Jlc2V0KGRldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJICAgICAgIGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIHJpbmdfc3RhcnQsIGN1cl9yZWFkX3B0cjsKLQl1MzIgdG1wOwotCi0JLyogSW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGNvbnRyb2xsZXIuIFdpdGggbmV3IG1lbW9yeSBtYXAsIHRoZSBmYiBsb2NhdGlvbgotCSAqIGlzIG5vdCBjaGFuZ2VkLCBpdCBzaG91bGQgaGF2ZSBiZWVuIHByb3Blcmx5IGluaXRpYWxpemVkIGFscmVhZHkuIFBhcnQKLQkgKiBvZiB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBjb2RlIGJlbG93IGlzIGJvZ3VzLCBhc3N1bWluZyB0aGUgR0FSVCBpcwotCSAqIGFsd2F5cyBhcHBlbmRlZCB0byB0aGUgZmIgd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBjYXNlCi0JICovCi0JaWYgKCFkZXZfcHJpdi0+bmV3X21lbW1hcCkKLQkJcmFkZW9uX3dyaXRlX2ZiX2xvY2F0aW9uKGRldl9wcml2LAotCQkJICAgICAoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSkgJiAweGZmZmYwMDAwKQotCQkJICAgICB8IChkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPj4gMTYpKTsKLQotI2lmIF9fT1NfSEFTX0FHUAotCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0UsICh1bnNpZ25lZCBpbnQpZGV2LT5hZ3AtPmJhc2UpOwotCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LAotCQkJICAgICAoKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEgKwotCQkJCWRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmMDAwMCkgfAotCQkJICAgICAgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSkpOwotCi0JCXJpbmdfc3RhcnQgPSAoZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldAotCQkJICAgICAgLSBkZXYtPmFncC0+YmFzZQotCQkJICAgICAgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQkJcmluZ19zdGFydCA9IChkZXZfcHJpdi0+Y3BfcmluZy0+b2Zmc2V0Ci0JCQkgICAgICAtICh1bnNpZ25lZCBsb25nKWRldi0+c2ctPnZpcnR1YWwKLQkJCSAgICAgICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9CQVNFLCByaW5nX3N0YXJ0KTsKLQotCS8qIFNldCB0aGUgd3JpdGUgcG9pbnRlciBkZWxheSAqLwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUl9ERUxBWSwgMCk7Ci0KLQkvKiBJbml0aWFsaXplIHRoZSByaW5nIGJ1ZmZlcidzIHJlYWQgYW5kIHdyaXRlIHBvaW50ZXJzICovCi0JY3VyX3JlYWRfcHRyID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpOwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgY3VyX3JlYWRfcHRyKTsKLQlTRVRfUklOR19IRUFEKGRldl9wcml2LCBjdXJfcmVhZF9wdHIpOwotCWRldl9wcml2LT5yaW5nLnRhaWwgPSBjdXJfcmVhZF9wdHI7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1JQVFJfQUREUiwKLQkJCSAgICAgZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0Ci0JCQkgICAgIC0gZGV2LT5hZ3AtPmJhc2UgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCXN0cnVjdCBkcm1fc2dfbWVtICplbnRyeSA9IGRldi0+c2c7Ci0JCXVuc2lnbmVkIGxvbmcgdG1wX29mcywgcGFnZV9vZnM7Ci0KLQkJdG1wX29mcyA9IGRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldCAtCi0JCQkJKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbDsKLQkJcGFnZV9vZnMgPSB0bXBfb2ZzID4+IFBBR0VfU0hJRlQ7Ci0KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9SUFRSX0FERFIsIGVudHJ5LT5idXNhZGRyW3BhZ2Vfb2ZzXSk7Ci0JCURSTV9ERUJVRygicmluZyBycHRyOiBvZmZzZXQ9MHglMDhseCBoYW5kbGU9MHglMDhseFxuIiwKLQkJCSAgKHVuc2lnbmVkIGxvbmcpZW50cnktPmJ1c2FkZHJbcGFnZV9vZnNdLAotCQkJICBlbnRyeS0+aGFuZGxlICsgdG1wX29mcyk7Ci0JfQotCi0JLyogU2V0IHJpbmcgYnVmZmVyIHNpemUgKi8KLSNpZmRlZiBfX0JJR19FTkRJQU4KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0NOVEwsCi0JCSAgICAgUkFERU9OX0JVRl9TV0FQXzMyQklUIHwKLQkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8Ci0JCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAotCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7Ci0jZWxzZQotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwKLQkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8Ci0JCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAotCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7Ci0jZW5kaWYKLQotCS8qIFN0YXJ0IHdpdGggYXNzdW1pbmcgdGhhdCB3cml0ZWJhY2sgZG9lc24ndCB3b3JrICovCi0JZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7Ci0KLQkvKiBJbml0aWFsaXplIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHBvaW50ZXIuICBUaGlzIHdpbGwgY2F1c2UKLQkgKiB0aGUgc2NyYXRjaCByZWdpc3RlciB2YWx1ZXMgdG8gYmUgd3JpdHRlbiBvdXQgdG8gbWVtb3J5Ci0JICogd2hlbmV2ZXIgdGhleSBhcmUgdXBkYXRlZC4KLQkgKgotCSAqIFdlIHNpbXBseSBwdXQgdGhpcyBiZWhpbmQgdGhlIHJpbmcgcmVhZCBwb2ludGVyLCB0aGlzIHdvcmtzCi0JICogd2l0aCBQQ0kgR0FSVCBhcyB3ZWxsIGFzICh3aGF0ZXZlciBraW5kIG9mKSBBR1AgR0FSVAotCSAqLwotCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9BRERSLCBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUl9BRERSKQotCQkgICAgICsgUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCk7Ci0KLQlkZXZfcHJpdi0+c2NyYXRjaCA9ICgoX192b2xhdGlsZV9fIHUzMiAqKQotCQkJICAgICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgKwotCQkJICAgICAoUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCAvIHNpemVvZih1MzIpKSk7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfVU1TSywgMHg3KTsKLQotCS8qIFR1cm4gb24gYnVzIG1hc3RlcmluZyAqLwotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9CVVNfQ05UTCkgJiB+UkFERU9OX0JVU19NQVNURVJfRElTOwotCVJBREVPTl9XUklURShSQURFT05fQlVTX0NOVEwsIHRtcCk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSA9IGRldl9wcml2LT5zY3JhdGNoWzBdID0gMDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRlJBTUVfUkVHLCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IGRldl9wcml2LT5zY3JhdGNoWzFdID0gMDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRElTUEFUQ0hfUkVHLAotCQkgICAgIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoKTsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyID0gZGV2X3ByaXYtPnNjcmF0Y2hbMl0gPSAwOwotCVJBREVPTl9XUklURShSQURFT05fTEFTVF9DTEVBUl9SRUcsIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyKTsKLQotCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLQotCS8qIFN5bmMgZXZlcnl0aGluZyB1cCAqLwotCVJBREVPTl9XUklURShSQURFT05fSVNZTkNfQ05UTCwKLQkJICAgICAoUkFERU9OX0lTWU5DX0FOWTJEX0lETEUzRCB8Ci0JCSAgICAgIFJBREVPTl9JU1lOQ19BTlkzRF9JRExFMkQgfAotCQkgICAgICBSQURFT05fSVNZTkNfV0FJVF9JRExFR1VJIHwKLQkJICAgICAgUkFERU9OX0lTWU5DX0NQU0NSQVRDSF9JRExFR1VJKSk7Ci0KLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3Rlc3Rfd3JpdGViYWNrKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIHRtcDsKLQotCS8qIFdyaXRlYmFjayBkb2Vzbid0IHNlZW0gdG8gd29yayBldmVyeXdoZXJlLCB0ZXN0IGl0IGhlcmUgYW5kIHBvc3NpYmx5Ci0JICogZW5hYmxlIGl0IGlmIGl0IGFwcGVhcnMgdG8gd29yawotCSAqLwotCURSTV9XUklURTMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpLCAwKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfUkVHMSwgMHhkZWFkYmVlZik7Ci0KLQlmb3IgKHRtcCA9IDA7IHRtcCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHRtcCsrKSB7Ci0JCWlmIChEUk1fUkVBRDMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpKSA9PQotCQkgICAgMHhkZWFkYmVlZikKLQkJCWJyZWFrOwotCQlEUk1fVURFTEFZKDEpOwotCX0KLQotCWlmICh0bXAgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0KSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAxOwotCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3Qgc3VjY2VlZGVkIGluICVkIHVzZWNzXG4iLCB0bXApOwotCX0gZWxzZSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOwotCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3QgZmFpbGVkXG4iKTsKLQl9Ci0JaWYgKHJhZGVvbl9ub193YiA9PSAxKSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOwotCQlEUk1fSU5GTygid3JpdGViYWNrIGZvcmNlZCBvZmZcbiIpOwotCX0KLQotCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykgewotCQkvKiBEaXNhYmxlIHdyaXRlYmFjayB0byBhdm9pZCB1bm5lY2Vzc2FyeSBidXMgbWFzdGVyIHRyYW5zZmVyICovCi0JCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwgUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX0NOVEwpIHwKLQkJCSAgICAgUkFERU9OX1JCX05PX1VQREFURSk7Ci0JCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9VTVNLLCAwKTsKLQl9Ci19Ci0KLS8qIEVuYWJsZSBvciBkaXNhYmxlIElHUCBHQVJUIG9uIHRoZSBjaGlwICovCi1zdGF0aWMgdm9pZCByYWRlb25fc2V0X2lncGdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQotewotCXUzMiB0ZW1wLCB0bXA7Ci0KLQl0bXAgPSBSQURFT05fUkVBRChSQURFT05fQUlDX0NOVEwpOwotCWlmIChvbikgewotCQlEUk1fREVCVUcoInByb2dyYW1taW5nIGlncGdhcnQgJTA4WCAlMDhsWCAlMDhYXG4iLAotCQkJIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0LAotCQkJIChsb25nKWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIsCi0JCQkgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0KLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfVU5LXzE4LCAweDEwMDApOwotCQlSQURFT05fV1JJVEVfSUdQR0FSVChSQURFT05fSUdQR0FSVF9FTkFCTEUsIDB4MSk7Ci0JCVJBREVPTl9XUklURV9JR1BHQVJUKFJBREVPTl9JR1BHQVJUX0NUUkwsIDB4NDIwNDA4MDApOwotCQlSQURFT05fV1JJVEVfSUdQR0FSVChSQURFT05fSUdQR0FSVF9CQVNFX0FERFIsCi0JCQkJICAgICBkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKTsKLQotCQl0ZW1wID0gUkFERU9OX1JFQURfSUdQR0FSVChkZXZfcHJpdiwgUkFERU9OX0lHUEdBUlRfVU5LXzM5KTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfVU5LXzM5LCB0ZW1wKTsKLQotCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCAodW5zaWduZWQgaW50KWRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQkJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IDMyKjEwMjQqMTAyNDsKLQkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwKLQkJCSAgICAgKCgoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgLSAxICsKLQkJCSAgICAgICBkZXZfcHJpdi0+Z2FydF9zaXplKSAmIDB4ZmZmZjAwMDApIHwKLQkJCSAgICAgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSkpOwotCi0JCXRlbXAgPSBSQURFT05fUkVBRF9JR1BHQVJUKGRldl9wcml2LCBSQURFT05fSUdQR0FSVF9FTkFCTEUpOwotCQlSQURFT05fV1JJVEVfSUdQR0FSVChSQURFT05fSUdQR0FSVF9FTkFCTEUsIHRlbXApOwotCi0JCVJBREVPTl9SRUFEX0lHUEdBUlQoZGV2X3ByaXYsIFJBREVPTl9JR1BHQVJUX0ZMVVNIKTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfRkxVU0gsIDB4MSk7Ci0JCVJBREVPTl9SRUFEX0lHUEdBUlQoZGV2X3ByaXYsIFJBREVPTl9JR1BHQVJUX0ZMVVNIKTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfRkxVU0gsIDB4MCk7Ci0gICAgICAgfQotfQotCi0vKiBFbmFibGUgb3IgZGlzYWJsZSBSUzY5MCBHQVJUIG9uIHRoZSBjaGlwICovCi1zdGF0aWMgdm9pZCByYWRlb25fc2V0X3JzNjkwZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBvbikKLXsKLQl1MzIgdGVtcDsKLQotCWlmIChvbikgewotCQlEUk1fREVCVUcoInByb2dyYW1taW5nIHJzNjkwIGdhcnQgJTA4WCAlMDhsWCAlMDhYXG4iLAotCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKLQkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKLQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0KLQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX01JU0NfQ05UTCk7Ci0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX01JU0NfQ05UTCwgMHg1MDAwKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfU0laRSwKLQkJCQkgIFJTNjkwX01DX0dBUlRfRU4gfCBSUzY5MF9NQ19BR1BfU0laRV8zMk1CKTsKLQotCQl0ZW1wID0gUlM2OTBfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM2OTBfTUNfR0FSVF9GRUFUVVJFX0lEKTsKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfR0FSVF9GRUFUVVJFX0lELCAweDQyMDQwODAwKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19HQVJUX0JBU0UsCi0JCQkJICBkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKTsKLQotCQl0ZW1wID0gUlM2OTBfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM2OTBfTUNfQUdQX01PREVfQ09OVFJPTCk7Ci0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0FHUF9NT0RFX0NPTlRST0wsIDB4MDE0MDAwMDApOwotCi0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0FHUF9CQVNFLAotCQkJCSAgKHVuc2lnbmVkIGludClkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0KLQkJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IDMyKjEwMjQqMTAyNDsKLQkJdGVtcCA9ICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYKLQkJCSAweGZmZmYwMDAwKSB8IChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA+PiAxNikpOwotCi0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0FHUF9MT0NBVElPTiwgdGVtcCk7Ci0KLQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0FHUF9TSVpFKTsKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX1NJWkUsCi0JCQkJICBSUzY5MF9NQ19HQVJUX0VOIHwgUlM2OTBfTUNfQUdQX1NJWkVfMzJNQik7Ci0KLQkJZG8gewotCQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0dBUlRfQ0FDSEVfQ05UTCk7Ci0JCQlpZiAoKHRlbXAgJiBSUzY5MF9NQ19HQVJUX0NMRUFSX1NUQVRVUykgPT0KLQkJCSAgICBSUzY5MF9NQ19HQVJUX0NMRUFSX0RPTkUpCi0JCQkJYnJlYWs7Ci0JCQlEUk1fVURFTEFZKDEpOwotCQl9IHdoaWxlICgxKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19HQVJUX0NBQ0hFX0NOVEwsCi0JCQkJICBSUzY5MF9NQ19HQVJUX0NDX0NMRUFSKTsKLQkJZG8gewotCQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0dBUlRfQ0FDSEVfQ05UTCk7Ci0JCQlpZiAoKHRlbXAgJiBSUzY5MF9NQ19HQVJUX0NMRUFSX1NUQVRVUykgPT0KLQkJCQkgICBSUzY5MF9NQ19HQVJUX0NMRUFSX0RPTkUpCi0JCQkJYnJlYWs7Ci0JCQlEUk1fVURFTEFZKDEpOwotCQl9IHdoaWxlICgxKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19HQVJUX0NBQ0hFX0NOVEwsCi0JCQkJICBSUzY5MF9NQ19HQVJUX0NDX05PX0NIQU5HRSk7Ci0JfSBlbHNlIHsKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX1NJWkUsIFJTNjkwX01DX0dBUlRfRElTKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9zZXRfcGNpZWdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQotewotCXUzMiB0bXAgPSBSQURFT05fUkVBRF9QQ0lFKGRldl9wcml2LCBSQURFT05fUENJRV9UWF9HQVJUX0NOVEwpOwotCWlmIChvbikgewotCi0JCURSTV9ERUJVRygicHJvZ3JhbW1pbmcgcGNpZSAlMDhYICUwOGxYICUwOFhcbiIsCi0JCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0LAotCQkJICAobG9uZylkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyLAotCQkJICBkZXZfcHJpdi0+Z2FydF9zaXplKTsKLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfRElTQ0FSRF9SRF9BRERSX0xPLAotCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0JBU0UsCi0JCQkJICBkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKTsKLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9TVEFSVF9MTywKLQkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9FTkRfTE8sCi0JCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCArCi0JCQkJICBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMSk7Ci0KLQkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgMHhmZmZmZmZjMCk7IC8qID8/ICovCi0KLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMLAotCQkJCSAgUkFERU9OX1BDSUVfVFhfR0FSVF9FTik7Ci0JfSBlbHNlIHsKLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMLAotCQkJCSAgdG1wICYgflJBREVPTl9QQ0lFX1RYX0dBUlRfRU4pOwotCX0KLX0KLQotLyogRW5hYmxlIG9yIGRpc2FibGUgUENJIEdBUlQgb24gdGhlIGNoaXAgKi8KLXN0YXRpYyB2b2lkIHJhZGVvbl9zZXRfcGNpZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgb24pCi17Ci0JdTMyIHRtcDsKLQotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSB7Ci0JCXJhZGVvbl9zZXRfcnM2OTBnYXJ0KGRldl9wcml2LCBvbik7Ci0JCXJldHVybjsKLQl9Ci0KLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpIHsKLQkJcmFkZW9uX3NldF9pZ3BnYXJ0KGRldl9wcml2LCBvbik7Ci0JCXJldHVybjsKLQl9Ci0KLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpIHsKLQkJcmFkZW9uX3NldF9wY2llZ2FydChkZXZfcHJpdiwgb24pOwotCQlyZXR1cm47Ci0JfQotCi0JdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKTsKLQotCWlmIChvbikgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19DTlRMLAotCQkJICAgICB0bXAgfCBSQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOwotCi0JCS8qIHNldCBQQ0kgR0FSVCBwYWdlLXRhYmxlIGJhc2UgYWRkcmVzcwotCQkgKi8KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfUFRfQkFTRSwgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7Ci0KLQkJLyogc2V0IGFkZHJlc3MgcmFuZ2UgZm9yIFBDSSBhZGRyZXNzIHRyYW5zbGF0ZQotCQkgKi8KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfTE9fQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19ISV9BRERSLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydAotCQkJICAgICArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKTsKLQotCQkvKiBUdXJuIG9mZiBBR1AgYXBlcnR1cmUgLS0gaXMgdGhpcyByZXF1aXJlZCBmb3IgUENJIEdBUlQ/Ci0JCSAqLwotCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LCAweGZmZmZmZmMwKTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BR1BfQ09NTUFORCwgMCk7CS8qIGNsZWFyIEFHUF9DT01NQU5EICovCi0JfSBlbHNlIHsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKLQkJCSAgICAgdG1wICYgflJBREVPTl9QQ0lHQVJUX1RSQU5TTEFURV9FTik7Ci0JfQotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9kb19pbml0X2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBkcm1fcmFkZW9uX2luaXRfdCAqIGluaXQpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCS8qIGlmIHdlIHJlcXVpcmUgbmV3IG1lbW9yeSBtYXAgYnV0IHdlIGRvbid0IGhhdmUgaXQgZmFpbCAqLwotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX05FV19NRU1NQVApICYmICFkZXZfcHJpdi0+bmV3X21lbW1hcCkgewotCQlEUk1fRVJST1IoIkNhbm5vdCBpbml0aWFsaXNlIERSTSBvbiB0aGlzIGNhcmRcblRoaXMgY2FyZCByZXF1aXJlcyBhIG5ldyBYLm9yZyBERFggZm9yIDNEXG4iKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKGluaXQtPmlzX3BjaSAmJiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpIHsKLQkJRFJNX0RFQlVHKCJGb3JjaW5nIEFHUCBjYXJkIHRvIFBDSSBtb2RlXG4iKTsKLQkJZGV2X3ByaXYtPmZsYWdzICY9IH5SQURFT05fSVNfQUdQOwotCX0gZWxzZSBpZiAoIShkZXZfcHJpdi0+ZmxhZ3MgJiAoUkFERU9OX0lTX0FHUCB8IFJBREVPTl9JU19QQ0kgfCBSQURFT05fSVNfUENJRSkpCi0JCSAgICYmICFpbml0LT5pc19wY2kpIHsKLQkJRFJNX0RFQlVHKCJSZXN0b3JpbmcgQUdQIGZsYWdcbiIpOwotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX0FHUDsKLQl9Ci0KLQlpZiAoKCEoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpICYmICFkZXYtPnNnKSB7Ci0JCURSTV9FUlJPUigiUENJIEdBUlQgbWVtb3J5IG5vdCBhbGxvY2F0ZWQhXG4iKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZGV2X3ByaXYtPnVzZWNfdGltZW91dCA9IGluaXQtPnVzZWNfdGltZW91dDsKLQlpZiAoZGV2X3ByaXYtPnVzZWNfdGltZW91dCA8IDEgfHwKLQkgICAgZGV2X3ByaXYtPnVzZWNfdGltZW91dCA+IFJBREVPTl9NQVhfVVNFQ19USU1FT1VUKSB7Ci0JCURSTV9ERUJVRygiVElNRU9VVCBwcm9ibGVtIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIEVuYWJsZSB2Ymxhbmsgb24gQ1JUQzEgZm9yIG9sZGVyIFggc2VydmVycwotCSAqLwotCWRldl9wcml2LT52YmxhbmtfY3J0YyA9IERSTV9SQURFT05fVkJMQU5LX0NSVEMxOwotCi0Jc3dpdGNoKGluaXQtPmZ1bmMpIHsKLQljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6Ci0JCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IyMDA7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX0lOSVRfUjMwMF9DUDoKLQkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjMwMDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjEwMDsKLQl9Ci0KLQlkZXZfcHJpdi0+ZG9fYm94ZXMgPSAwOwotCWRldl9wcml2LT5jcF9tb2RlID0gaW5pdC0+Y3BfbW9kZTsKLQotCS8qIFdlIGRvbid0IHN1cHBvcnQgYW55dGhpbmcgb3RoZXIgdGhhbiBidXMtbWFzdGVyaW5nIHJpbmcgbW9kZSwKLQkgKiBidXQgdGhlIHJpbmcgY2FuIGJlIGluIGVpdGhlciBBR1Agb3IgUENJIHNwYWNlIGZvciB0aGUgcmluZwotCSAqIHJlYWQgcG9pbnRlci4KLQkgKi8KLQlpZiAoKGluaXQtPmNwX21vZGUgIT0gUkFERU9OX0NTUV9QUklCTV9JTkRESVMpICYmCi0JICAgIChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5EQk0pKSB7Ci0JCURSTV9ERUJVRygiQkFEIGNwX21vZGUgKCV4KSFcbiIsIGluaXQtPmNwX21vZGUpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzd2l0Y2ggKGluaXQtPmZiX2JwcCkgewotCWNhc2UgMTY6Ci0JCWRldl9wcml2LT5jb2xvcl9mbXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKLQkJYnJlYWs7Ci0JY2FzZSAzMjoKLQlkZWZhdWx0OgotCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4ODsKLQkJYnJlYWs7Ci0JfQotCWRldl9wcml2LT5mcm9udF9vZmZzZXQgPSBpbml0LT5mcm9udF9vZmZzZXQ7Ci0JZGV2X3ByaXYtPmZyb250X3BpdGNoID0gaW5pdC0+ZnJvbnRfcGl0Y2g7Ci0JZGV2X3ByaXYtPmJhY2tfb2Zmc2V0ID0gaW5pdC0+YmFja19vZmZzZXQ7Ci0JZGV2X3ByaXYtPmJhY2tfcGl0Y2ggPSBpbml0LT5iYWNrX3BpdGNoOwotCi0Jc3dpdGNoIChpbml0LT5kZXB0aF9icHApIHsKLQljYXNlIDE2OgotCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8xNkJJVF9JTlRfWjsKLQkJYnJlYWs7Ci0JY2FzZSAzMjoKLQlkZWZhdWx0OgotCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8yNEJJVF9JTlRfWjsKLQkJYnJlYWs7Ci0JfQotCWRldl9wcml2LT5kZXB0aF9vZmZzZXQgPSBpbml0LT5kZXB0aF9vZmZzZXQ7Ci0JZGV2X3ByaXYtPmRlcHRoX3BpdGNoID0gaW5pdC0+ZGVwdGhfcGl0Y2g7Ci0KLQkvKiBIYXJkd2FyZSBzdGF0ZSBmb3IgZGVwdGggY2xlYXJzLiAgUmVtb3ZlIHRoaXMgaWYvd2hlbiB3ZSBubwotCSAqIGxvbmdlciBjbGVhciB0aGUgZGVwdGggYnVmZmVyIHdpdGggYSAzRCByZWN0YW5nbGUuICBIYXJkLWNvZGUKLQkgKiBhbGwgdmFsdWVzIHRvIHByZXZlbnQgdW53YW50ZWQgM0Qgc3RhdGUgZnJvbSBzbGlwcGluZyB0aHJvdWdoCi0JICogYW5kIHNjcmV3aW5nIHdpdGggdGhlIGNsZWFyIG9wZXJhdGlvbi4KLQkgKi8KLQlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF9jbnRsID0gKFJBREVPTl9QTEFORV9NQVNLX0VOQUJMRSB8Ci0JCQkJCSAgIChkZXZfcHJpdi0+Y29sb3JfZm10IDw8IDEwKSB8Ci0JCQkJCSAgIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0KLQkJCQkJICAgIFVDT0RFX1IxMDAgPyBSQURFT05fWkJMT0NLMTYgOiAwKSk7Ci0KLQlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF96c3RlbmNpbGNudGwgPQotCSAgICAoZGV2X3ByaXYtPmRlcHRoX2ZtdCB8Ci0JICAgICBSQURFT05fWl9URVNUX0FMV0FZUyB8Ci0JICAgICBSQURFT05fU1RFTkNJTF9URVNUX0FMV0FZUyB8Ci0JICAgICBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRSB8Ci0JICAgICBSQURFT05fU1RFTkNJTF9aUEFTU19SRVBMQUNFIHwKLQkgICAgIFJBREVPTl9TVEVOQ0lMX1pGQUlMX1JFUExBQ0UgfCBSQURFT05fWl9XUklURV9FTkFCTEUpOwotCi0JZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnNlX2NudGwgPSAoUkFERU9OX0ZGQUNFX0NVTExfQ1cgfAotCQkJCQkgUkFERU9OX0JGQUNFX1NPTElEIHwKLQkJCQkJIFJBREVPTl9GRkFDRV9TT0xJRCB8Ci0JCQkJCSBSQURFT05fRkxBVF9TSEFERV9WVFhfTEFTVCB8Ci0JCQkJCSBSQURFT05fRElGRlVTRV9TSEFERV9GTEFUIHwKLQkJCQkJIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUIHwKLQkJCQkJIFJBREVPTl9TUEVDVUxBUl9TSEFERV9GTEFUIHwKLQkJCQkJIFJBREVPTl9GT0dfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fVlRYX1BJWF9DRU5URVJfT0dMIHwKLQkJCQkJIFJBREVPTl9ST1VORF9NT0RFX1RSVU5DIHwKLQkJCQkJIFJBREVPTl9ST1VORF9QUkVDXzhUSF9QSVgpOwotCi0KLQlkZXZfcHJpdi0+cmluZ19vZmZzZXQgPSBpbml0LT5yaW5nX29mZnNldDsKLQlkZXZfcHJpdi0+cmluZ19ycHRyX29mZnNldCA9IGluaXQtPnJpbmdfcnB0cl9vZmZzZXQ7Ci0JZGV2X3ByaXYtPmJ1ZmZlcnNfb2Zmc2V0ID0gaW5pdC0+YnVmZmVyc19vZmZzZXQ7Ci0JZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0ID0gaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQ7Ci0KLQlkZXZfcHJpdi0+c2FyZWEgPSBkcm1fZ2V0c2FyZWEoZGV2KTsKLQlpZiAoIWRldl9wcml2LT5zYXJlYSkgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHNhcmVhIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT5jcF9yaW5nID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfb2Zmc2V0KTsKLQlpZiAoIWRldl9wcml2LT5jcF9yaW5nKSB7Ci0JCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgY3AgcmluZyByZWdpb24hXG4iKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWRldl9wcml2LT5yaW5nX3JwdHIgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+cmluZ19ycHRyX29mZnNldCk7Ci0JaWYgKCFkZXZfcHJpdi0+cmluZ19ycHRyKSB7Ci0JCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgcmluZyByZWFkIHBvaW50ZXIhXG4iKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWRldi0+YWdwX2J1ZmZlcl90b2tlbiA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OwotCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+YnVmZmVyc19vZmZzZXQpOwotCWlmICghZGV2LT5hZ3BfYnVmZmVyX21hcCkgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGRtYSBidWZmZXIgcmVnaW9uIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChpbml0LT5nYXJ0X3RleHR1cmVzX29mZnNldCkgewotCQlkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcyA9Ci0JCSAgICBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpOwotCQlpZiAoIWRldl9wcml2LT5nYXJ0X3RleHR1cmVzKSB7Ci0JCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIEdBUlQgdGV4dHVyZSByZWdpb24hXG4iKTsKLQkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCX0KLQotCWRldl9wcml2LT5zYXJlYV9wcml2ID0KLQkgICAgKGRybV9yYWRlb25fc2FyZWFfdCAqKSAoKHU4ICopIGRldl9wcml2LT5zYXJlYS0+aGFuZGxlICsKLQkJCQkgICAgaW5pdC0+c2FyZWFfcHJpdl9vZmZzZXQpOwotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKLQkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKLQkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOwotCQlkcm1fY29yZV9pb3JlbWFwKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7Ci0JCWlmICghZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSB8fAotCQkgICAgIWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSB8fAotCQkgICAgIWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSkgewotCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBpb3JlbWFwIGFncCByZWdpb25zIVxuIik7Ci0JCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQl9IGVsc2UKLSNlbmRpZgotCXsKLQkJZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSA9ICh2b2lkICopZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldDsKLQkJZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlID0KLQkJICAgICh2b2lkICopZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0OwotCQlkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUgPQotCQkgICAgKHZvaWQgKilkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQ7Ci0KLQkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlICVwXG4iLAotCQkJICBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlKTsKLQkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgJXBcbiIsCi0JCQkgIGRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSk7Ci0JCURSTV9ERUJVRygiZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICVwXG4iLAotCQkJICBkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpOwotCX0KLQotCWRldl9wcml2LT5mYl9sb2NhdGlvbiA9IChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYpIDw8IDE2OwotCWRldl9wcml2LT5mYl9zaXplID0KLQkJKChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYwMDAwdSkgKyAweDEwMDAwKQotCQktIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKLQotCWRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+ZnJvbnRfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKLQkJCQkJKChkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0Ci0JCQkJCSAgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7Ci0KLQlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+YmFja19waXRjaCAvIDY0KSA8PCAyMikgfAotCQkJCSAgICAgICAoKGRldl9wcml2LT5iYWNrX29mZnNldAotCQkJCQkgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7Ci0KLQlkZXZfcHJpdi0+ZGVwdGhfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmRlcHRoX3BpdGNoIC8gNjQpIDw8IDIyKSB8Ci0JCQkJCSgoZGV2X3ByaXYtPmRlcHRoX29mZnNldAotCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOwotCi0JZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IGluaXQtPmdhcnRfc2l6ZTsKLQotCS8qIE5ldyBsZXQncyBzZXQgdGhlIG1lbW9yeSBtYXAgLi4uICovCi0JaWYgKGRldl9wcml2LT5uZXdfbWVtbWFwKSB7Ci0JCXUzMiBiYXNlID0gMDsKLQotCQlEUk1fSU5GTygiU2V0dGluZyBHQVJUIGxvY2F0aW9uIGJhc2VkIG9uIG5ldyBtZW1vcnkgbWFwXG4iKTsKLQotCQkvKiBJZiB1c2luZyBBR1AsIHRyeSB0byBsb2NhdGUgdGhlIEFHUCBhcGVydHVyZSBhdCB0aGUgc2FtZQotCQkgKiBsb2NhdGlvbiBpbiB0aGUgY2FyZCBhbmQgb24gdGhlIGJ1cywgdGhvdWdoIHdlIGhhdmUgdG8KLQkJICogYWxpZ24gaXQgZG93bi4KLQkJICovCi0jaWYgX19PU19IQVNfQUdQCi0JCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCQliYXNlID0gZGV2LT5hZ3AtPmJhc2U7Ci0JCQkvKiBDaGVjayBpZiB2YWxpZCAqLwotCQkJaWYgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpID49IGRldl9wcml2LT5mYl9sb2NhdGlvbiAmJgotCQkJICAgIGJhc2UgPCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemUgLSAxKSkgewotCQkJCURSTV9JTkZPKCJDYW4ndCB1c2UgQUdQIGJhc2UgQDB4JTA4bHgsIHdvbid0IGZpdFxuIiwKLQkJCQkJIGRldi0+YWdwLT5iYXNlKTsKLQkJCQliYXNlID0gMDsKLQkJCX0KLQkJfQotI2VuZGlmCi0JCS8qIElmIG5vdCBvciBpZiBBR1AgaXMgYXQgMCAoTWFjcyksIHRyeSB0byBwdXQgaXQgZWxzZXdoZXJlICovCi0JCWlmIChiYXNlID09IDApIHsKLQkJCWJhc2UgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gKyBkZXZfcHJpdi0+ZmJfc2l6ZTsKLQkJCWlmIChiYXNlIDwgZGV2X3ByaXYtPmZiX2xvY2F0aW9uIHx8Ci0JCQkgICAgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmZmZmZmdWwpIDwgYmFzZSkKLQkJCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uCi0JCQkJCS0gZGV2X3ByaXYtPmdhcnRfc2l6ZTsKLQkJfQotCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGJhc2UgJiAweGZmYzAwMDAwdTsKLQkJaWYgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ICE9IGJhc2UpCi0JCQlEUk1fSU5GTygiR0FSVCBhbGlnbmVkIGRvd24gZnJvbSAweCUwOHggdG8gMHglMDh4XG4iLAotCQkJCSBiYXNlLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JfSBlbHNlIHsKLQkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBvbGQgbWVtb3J5IG1hcFxuIik7Ci0JCWRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsKLQkJCVJBREVPTl9SRUFEKFJBREVPTl9DT05GSUdfQVBFUl9TSVpFKTsKLQl9Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkKLQkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0Ci0JCQkJCQkgLSBkZXYtPmFncC0+YmFzZQotCQkJCQkJICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCWVsc2UKLSNlbmRpZgotCQlkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCA9IChkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQKLQkJCQkJLSAodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsCi0JCQkJCSsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCi0JRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9zaXplICVkXG4iLCBkZXZfcHJpdi0+Z2FydF9zaXplKTsKLQlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IDB4JXhcbiIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0IDB4JWx4XG4iLAotCQkgIGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0KTsKLQotCWRldl9wcml2LT5yaW5nLnN0YXJ0ID0gKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlOwotCWRldl9wcml2LT5yaW5nLmVuZCA9ICgodTMyICopIGRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUKLQkJCSAgICAgICsgaW5pdC0+cmluZ19zaXplIC8gc2l6ZW9mKHUzMikpOwotCWRldl9wcml2LT5yaW5nLnNpemUgPSBpbml0LT5yaW5nX3NpemU7Ci0JZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3ID0gZHJtX29yZGVyKGluaXQtPnJpbmdfc2l6ZSAvIDgpOwotCi0JZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGUgPSAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2OwotCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPSBkcm1fb3JkZXIoIC8qIGluaXQtPnJwdHJfdXBkYXRlICovIDQwOTYgLyA4KTsKLQotCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemUgPSAvKiBpbml0LT5mZXRjaF9zaXplICovIDMyOwotCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemVfbDJvdyA9IGRybV9vcmRlciggLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMiAvIDE2KTsKLQlkZXZfcHJpdi0+cmluZy50YWlsX21hc2sgPSAoZGV2X3ByaXYtPnJpbmcuc2l6ZSAvIHNpemVvZih1MzIpKSAtIDE7Ci0KLQlkZXZfcHJpdi0+cmluZy5oaWdoX21hcmsgPSBSQURFT05fUklOR19ISUdIX01BUks7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLwotCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOwotCX0gZWxzZQotI2VuZGlmCi0JewotCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX21hc2sgPSBETUFfQklUX01BU0soMzIpOwotCQkvKiBpZiB3ZSBoYXZlIGFuIG9mZnNldCBzZXQgZnJvbSB1c2Vyc3BhY2UgKi8KLQkJaWYgKGRldl9wcml2LT5wY2lnYXJ0X29mZnNldF9zZXQpIHsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPQotCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5vZmZzZXQgPQotCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9hcGVyX29mZnNldDsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5zaXplID0KLQkJCSAgICBkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemU7Ci0KLQkJCWRybV9jb3JlX2lvcmVtYXAoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9Ci0JCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby5tYXBwaW5nLmhhbmRsZTsKLQotCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQotCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJRTsKLQkJCWVsc2UKLQkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSTsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9Ci0JCQkgICAgRFJNX0FUSV9HQVJUX0ZCOwotCi0JCQlEUk1fREVCVUcoIlNldHRpbmcgcGh5c19wY2lfZ2FydCB0byAlcCAlMDhsWFxuIiwKLQkJCQkgIGRldl9wcml2LT5nYXJ0X2luZm8uYWRkciwKLQkJCQkgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCk7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpCi0JCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9JR1A7Ci0JCQllbHNlCi0JCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQotCQkJICAgIERSTV9BVElfR0FSVF9NQUlOOwotCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5hZGRyID0gTlVMTDsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPSAwOwotCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7Ci0JCQkJRFJNX0VSUk9SCi0JCQkJICAgICgiQ2Fubm90IHVzZSBQQ0kgRXhwcmVzcyB3aXRob3V0IEdBUlQgaW4gRkIgbWVtb3J5XG4iKTsKLQkJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCQl9Ci0KLQkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfaW5pdChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkgewotCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdCBQQ0kgR0FSVCFcbiIpOwotCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJCXJldHVybiAtRU5PTUVNOwotCQl9Ci0KLQkJLyogVHVybiBvbiBQQ0kgR0FSVCAqLwotCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDEpOwotCX0KLQotCXJhZGVvbl9jcF9sb2FkX21pY3JvY29kZShkZXZfcHJpdik7Ci0JcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoZGV2LCBkZXZfcHJpdik7Ci0KLQlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOwotCi0JcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOwotCXJhZGVvbl90ZXN0X3dyaXRlYmFjayhkZXZfcHJpdik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCS8qIE1ha2Ugc3VyZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgdGhlIHVuaW5zdGFsbCBpb2N0bAotCSAqIG1heSBub3QgaGF2ZSBiZWVuIGNhbGxlZCBmcm9tIHVzZXJzcGFjZSBhbmQgYWZ0ZXIgZGV2X3ByaXZhdGUKLQkgKiBpcyBmcmVlZCwgaXQncyB0b28gbGF0ZS4KLQkgKi8KLQlpZiAoZGV2LT5pcnFfZW5hYmxlZCkKLQkJZHJtX2lycV91bmluc3RhbGwoZGV2KTsKLQotI2lmIF9fT1NfSEFTX0FHUAotCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCWlmIChkZXZfcHJpdi0+Y3BfcmluZyAhPSBOVUxMKSB7Ci0JCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKLQkJCWRldl9wcml2LT5jcF9yaW5nID0gTlVMTDsKLQkJfQotCQlpZiAoZGV2X3ByaXYtPnJpbmdfcnB0ciAhPSBOVUxMKSB7Ci0JCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOwotCQkJZGV2X3ByaXYtPnJpbmdfcnB0ciA9IE5VTEw7Ci0JCX0KLQkJaWYgKGRldi0+YWdwX2J1ZmZlcl9tYXAgIT0gTlVMTCkgewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2LT5hZ3BfYnVmZmVyX21hcCwgZGV2KTsKLQkJCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBOVUxMOwotCQl9Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0KLQkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpIHsKLQkJCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCi0JCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOwotCQkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkKLQkJCQlEUk1fRVJST1IoImZhaWxlZCB0byBjbGVhbnVwIFBDSSBHQVJUIVxuIik7Ci0JCX0KLQotCQlpZiAoZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9GQikKLQkJewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IDA7Ci0JCX0KLQl9Ci0JLyogb25seSBjbGVhciB0byB0aGUgc3RhcnQgb2YgZmxhZ3MgKi8KLQltZW1zZXQoZGV2X3ByaXYsIDAsIG9mZnNldG9mKGRybV9yYWRlb25fcHJpdmF0ZV90LCBmbGFncykpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIFRoaXMgY29kZSB3aWxsIHJlaW5pdCB0aGUgUmFkZW9uIENQIGhhcmR3YXJlIGFmdGVyIGEgcmVzdW1lIGZyb20gZGlzYy4KLSAqIEFGQUlLLCBpdCB3b3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byBwaWNrbGUgdGhlIHN0YXRlIGF0IHN1c3BlbmQgdGltZSwgc28KLSAqIGhlcmUgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIFJhZGVvbiBoYXJkd2FyZSBpbml0aWFsaXNhdGlvbiBpcyByZS1kb25lIHdpdGhvdXQKLSAqIGFmZmVjdGluZyBydW5uaW5nIGFwcGxpY2F0aW9ucy4KLSAqCi0gKiBDaGFybCBQLiBCb3RoYSA8aHR0cDovL2NwYm90aGEubmV0PgotICovCi1zdGF0aWMgaW50IHJhZGVvbl9kb19yZXN1bWVfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJDYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCURSTV9ERUJVRygiU3RhcnRpbmcgcmFkZW9uX2RvX3Jlc3VtZV9jcCgpXG4iKTsKLQotI2lmIF9fT1NfSEFTX0FHUAotCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCi0JCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KLQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKLQl9Ci0KLQlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOwotCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOwotCi0JcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOwotCi0JRFJNX0RFQlVHKCJyYWRlb25fZG9fcmVzdW1lX2NwKCkgY29tcGxldGVcbiIpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX2luaXRfdCAqaW5pdCA9IGRhdGE7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKGluaXQtPmZ1bmMgPT0gUkFERU9OX0lOSVRfUjMwMF9DUCkKLQkJcjMwMF9pbml0X3JlZ19mbGFncyhkZXYpOwotCi0Jc3dpdGNoIChpbml0LT5mdW5jKSB7Ci0JY2FzZSBSQURFT05fSU5JVF9DUDoKLQljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6Ci0JY2FzZSBSQURFT05fSU5JVF9SMzAwX0NQOgotCQlyZXR1cm4gcmFkZW9uX2RvX2luaXRfY3AoZGV2LCBpbml0KTsKLQljYXNlIFJBREVPTl9DTEVBTlVQX0NQOgotCQlyZXR1cm4gcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQl9Ci0KLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoZGV2X3ByaXYtPmNwX3J1bm5pbmcpIHsKLQkJRFJNX0RFQlVHKCJ3aGlsZSBDUCBydW5uaW5nXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChkZXZfcHJpdi0+Y3BfbW9kZSA9PSBSQURFT05fQ1NRX1BSSURJU19JTkRESVMpIHsKLQkJRFJNX0RFQlVHKCJjYWxsZWQgd2l0aCBib2d1cyBDUCBtb2RlICglZClcbiIsCi0JCQkgIGRldl9wcml2LT5jcF9tb2RlKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmFkZW9uX2RvX2NwX3N0YXJ0KGRldl9wcml2KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBTdG9wIHRoZSBDUC4gIFRoZSBlbmdpbmUgbXVzdCBoYXZlIGJlZW4gaWRsZWQgYmVmb3JlIGNhbGxpbmcgdGhpcwotICogcm91dGluZS4KLSAqLwotaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9jcF9zdG9wX3QgKnN0b3AgPSBkYXRhOwotCWludCByZXQ7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmICghZGV2X3ByaXYtPmNwX3J1bm5pbmcpCi0JCXJldHVybiAwOwotCi0JLyogRmx1c2ggYW55IHBlbmRpbmcgQ1AgY29tbWFuZHMuICBUaGlzIGVuc3VyZXMgYW55IG91dHN0YW5kaW5nCi0JICogY29tbWFuZHMgYXJlIGV4ZWN0dXRlZCBieSB0aGUgZW5naW5lIGJlZm9yZSB3ZSB0dXJuIGl0IG9mZi4KLQkgKi8KLQlpZiAoc3RvcC0+Zmx1c2gpIHsKLQkJcmFkZW9uX2RvX2NwX2ZsdXNoKGRldl9wcml2KTsKLQl9Ci0KLQkvKiBJZiB3ZSBmYWlsIHRvIG1ha2UgdGhlIGVuZ2luZSBnbyBpZGxlLCB3ZSByZXR1cm4gYW4gZXJyb3IKLQkgKiBjb2RlIHNvIHRoYXQgdGhlIERSTSBpb2N0bCB3cmFwcGVyIGNhbiB0cnkgYWdhaW4uCi0JICovCi0JaWYgKHN0b3AtPmlkbGUpIHsKLQkJcmV0ID0gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQkvKiBGaW5hbGx5LCB3ZSBjYW4gdHVybiBvZmYgdGhlIENQLiAgSWYgdGhlIGVuZ2luZSBpc24ndCBpZGxlLAotCSAqIHdlIHdpbGwgZ2V0IHNvbWUgZHJvcHBlZCB0cmlhbmdsZXMgYXMgdGhleSB3b24ndCBiZSBmdWxseQotCSAqIHJlbmRlcmVkIGJlZm9yZSB0aGUgQ1AgaXMgc2h1dCBkb3duLgotCSAqLwotCXJhZGVvbl9kb19jcF9zdG9wKGRldl9wcml2KTsKLQotCS8qIFJlc2V0IHRoZSBlbmdpbmUgKi8KLQlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9pZCByYWRlb25fZG9fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpLCByZXQ7Ci0KLQlpZiAoZGV2X3ByaXYpIHsKLQkJaWYgKGRldl9wcml2LT5jcF9ydW5uaW5nKSB7Ci0JCQkvKiBTdG9wIHRoZSBjcCAqLwotCQkJd2hpbGUgKChyZXQgPSByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdikpICE9IDApIHsKLQkJCQlEUk1fREVCVUcoInJhZGVvbl9kb19jcF9pZGxlICVkXG4iLCByZXQpOwotI2lmZGVmIF9fbGludXhfXwotCQkJCXNjaGVkdWxlKCk7Ci0jZWxzZQotCQkJCXRzbGVlcCgmcmV0LCBQWkVSTywgInJkbnJlbCIsIDEpOwotI2VuZGlmCi0JCQl9Ci0JCQlyYWRlb25fZG9fY3Bfc3RvcChkZXZfcHJpdik7Ci0JCQlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7Ci0JCX0KLQotCQkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KLQkJaWYgKGRldl9wcml2LT5tbWlvKQkvKiByZW1vdmUgdGhpcyBhZnRlciBwZXJtYW5lbnQgYWRkbWFwcyAqLwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9HRU5fSU5UX0NOVEwsIDApOwotCi0JCWlmIChkZXZfcHJpdi0+bW1pbykgewkvKiByZW1vdmUgYWxsIHN1cmZhY2VzICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7Ci0JCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBpLCAwKTsKLQkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5EICsKLQkJCQkJICAgICAxNiAqIGksIDApOwotCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKwotCQkJCQkgICAgIDE2ICogaSwgMCk7Ci0JCQl9Ci0JCX0KLQotCQkvKiBGcmVlIG1lbW9yeSBoZWFwIHN0cnVjdHVyZXMgKi8KLQkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5nYXJ0X2hlYXApKTsKLQkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5mYl9oZWFwKSk7Ci0KLQkJLyogZGVhbGxvY2F0ZSBrZXJuZWwgcmVzb3VyY2VzICovCi0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JfQotfQotCi0vKiBKdXN0IHJlc2V0IHRoZSBDUCByaW5nLiAgQ2FsbGVkIGFzIHBhcnQgb2YgYW4gWCBTZXJ2ZXIgZW5naW5lIHJlc2V0LgotICovCi1pbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0RFQlVHKCJjYWxsZWQgYmVmb3JlIGluaXQgZG9uZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7Ci0KLQkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCi0JZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlyZXR1cm4gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOwotfQotCi0vKiBBZGRlZCBieSBDaGFybCBQLiBCb3RoYSB0byBjYWxsIHJhZGVvbl9kb19yZXN1bWVfY3AoKS4KLSAqLwotaW50IHJhZGVvbl9jcF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0KLQlyZXR1cm4gcmFkZW9uX2RvX3Jlc3VtZV9jcChkZXYpOwotfQotCi1pbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JcmV0dXJuIHJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogRnVsbHNjcmVlbiBtb2RlCi0gKi8KLQotLyogS1c6IERlcHJlY2F0ZWQgdG8gc2F5IHRoZSBsZWFzdDoKLSAqLwotaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXJldHVybiAwOwotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBGcmVlbGlzdCBtYW5hZ2VtZW50Ci0gKi8KLQotLyogT3JpZ2luYWwgY29tbWVudDogRklYTUU6IFJPVEFURV9CVUZTIGlzIGEgaGFjayB0byBjeWNsZSB0aHJvdWdoCi0gKiAgIGJ1ZnMgdW50aWwgZnJlZWxpc3QgY29kZSBpcyB1c2VkLiAgTm90ZSB0aGlzIGhpZGVzIGEgcHJvYmxlbSB3aXRoCi0gKiAgIHRoZSBzY3JhdGNoIHJlZ2lzdGVyICogKHVzZWQgdG8ga2VlcCB0cmFjayBvZiBsYXN0IGJ1ZmZlcgotICogICBjb21wbGV0ZWQpIGJlaW5nIHdyaXR0ZW4gdG8gYmVmb3JlICogdGhlIGxhc3QgYnVmZmVyIGhhcyBhY3R1YWxseQotICogICBjb21wbGV0ZWQgcmVuZGVyaW5nLgotICoKLSAqIEtXOiAgSXQncyBhbHNvIGEgZ29vZCB3YXkgdG8gZmluZCBmcmVlIGJ1ZmZlcnMgcXVpY2tseS4KLSAqCi0gKiBLVzogSWRlYWxseSB0aGlzIGxvb3Agd291bGRuJ3QgZXhpc3QsIGFuZCBmcmVlbGlzdF9nZXQgd291bGRuJ3QKLSAqIHNsZWVwLiAgSG93ZXZlciwgYnVncyBpbiBvbGRlciB2ZXJzaW9ucyBvZiByYWRlb25fYWNjZWwuYyBtZWFuIHRoYXQKLSAqIHdlIGVzc2VudGlhbGx5IGhhdmUgdG8gZG8gdGhpcywgZWxzZSBvbGQgY2xpZW50cyB3aWxsIGJyZWFrLgotICoKLSAqIEhvd2V2ZXIsIGl0IGRvZXMgbGVhdmUgb3BlbiBhIHBvdGVudGlhbCBkZWFkbG9jayB3aGVyZSBhbGwgdGhlCi0gKiBidWZmZXJzIGFyZSBoZWxkIGJ5IG90aGVyIGNsaWVudHMsIHdoaWNoIGNhbid0IHJlbGVhc2UgdGhlbSBiZWNhdXNlCi0gKiB0aGV5IGNhbid0IGdldCB0aGUgbG9jay4KLSAqLwotCi1zdHJ1Y3QgZHJtX2J1ZiAqcmFkZW9uX2ZyZWVsaXN0X2dldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdjsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWludCBpLCB0OwotCWludCBzdGFydDsKLQotCWlmICgrK2Rldl9wcml2LT5sYXN0X2J1ZiA+PSBkbWEtPmJ1Zl9jb3VudCkKLQkJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQotCXN0YXJ0ID0gZGV2X3ByaXYtPmxhc3RfYnVmOwotCi0JZm9yICh0ID0gMDsgdCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHQrKykgewotCQl1MzIgZG9uZV9hZ2UgPSBHRVRfU0NSQVRDSCgxKTsKLQkJRFJNX0RFQlVHKCJkb25lX2FnZSA9ICVkXG4iLCBkb25lX2FnZSk7Ci0JCWZvciAoaSA9IHN0YXJ0OyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgewotCQkJYnVmID0gZG1hLT5idWZsaXN0W2ldOwotCQkJYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOwotCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ID09IE5VTEwgfHwgKGJ1Zi0+cGVuZGluZyAmJgotCQkJCQkJICAgICAgIGJ1Zl9wcml2LT5hZ2UgPD0KLQkJCQkJCSAgICAgICBkb25lX2FnZSkpIHsKLQkJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMrKzsKLQkJCQlidWYtPnBlbmRpbmcgPSAwOwotCQkJCXJldHVybiBidWY7Ci0JCQl9Ci0JCQlzdGFydCA9IDA7Ci0JCX0KLQotCQlpZiAodCkgewotCQkJRFJNX1VERUxBWSgxKTsKLQkJCWRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcysrOwotCQl9Ci0JfQotCi0JRFJNX0RFQlVHKCJyZXR1cm5pbmcgTlVMTCFcbiIpOwotCXJldHVybiBOVUxMOwotfQotCi0jaWYgMAotc3RydWN0IGRybV9idWYgKnJhZGVvbl9mcmVlbGlzdF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXY7Ci0Jc3RydWN0IGRybV9idWYgKmJ1ZjsKLQlpbnQgaSwgdDsKLQlpbnQgc3RhcnQ7Ci0JdTMyIGRvbmVfYWdlID0gRFJNX1JFQUQzMihkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRigxKSk7Ci0KLQlpZiAoKytkZXZfcHJpdi0+bGFzdF9idWYgPj0gZG1hLT5idWZfY291bnQpCi0JCWRldl9wcml2LT5sYXN0X2J1ZiA9IDA7Ci0KLQlzdGFydCA9IGRldl9wcml2LT5sYXN0X2J1ZjsKLQlkZXZfcHJpdi0+c3RhdHMuZnJlZWxpc3RfbG9vcHMrKzsKLQotCWZvciAodCA9IDA7IHQgPCAyOyB0KyspIHsKLQkJZm9yIChpID0gc3RhcnQ7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7Ci0JCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaV07Ci0JCQlidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7Ci0JCQlpZiAoYnVmLT5maWxlX3ByaXYgPT0gMCB8fCAoYnVmLT5wZW5kaW5nICYmCi0JCQkJCQkgICAgYnVmX3ByaXYtPmFnZSA8PQotCQkJCQkJICAgIGRvbmVfYWdlKSkgewotCQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcysrOwotCQkJCWJ1Zi0+cGVuZGluZyA9IDA7Ci0JCQkJcmV0dXJuIGJ1ZjsKLQkJCX0KLQkJfQotCQlzdGFydCA9IDA7Ci0JfQotCi0JcmV0dXJuIE5VTEw7Ci19Ci0jZW5kaWYKLQotdm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCi0JZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gZG1hLT5idWZsaXN0W2ldOwotCQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKLQkJYnVmX3ByaXYtPmFnZSA9IDA7Ci0JfQotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBDUCBjb21tYW5kIHN1Ym1pc3Npb24KLSAqLwotCi1pbnQgcmFkZW9uX3dhaXRfcmluZyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgbikKLXsKLQlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmc7Ci0JaW50IGk7Ci0JdTMyIGxhc3RfaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOwotCi0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQl1MzIgaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOwotCi0JCXJpbmctPnNwYWNlID0gKGhlYWQgLSByaW5nLT50YWlsKSAqIHNpemVvZih1MzIpOwotCQlpZiAocmluZy0+c3BhY2UgPD0gMCkKLQkJCXJpbmctPnNwYWNlICs9IHJpbmctPnNpemU7Ci0JCWlmIChyaW5nLT5zcGFjZSA+IG4pCi0JCQlyZXR1cm4gMDsKLQotCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQkJaWYgKGhlYWQgIT0gbGFzdF9oZWFkKQotCQkJaSA9IDA7Ci0JCWxhc3RfaGVhZCA9IGhlYWQ7Ci0KLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLQkvKiBGSVhNRTogVGhpcyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZCBpbiB0aGUgQkVHSU5fUklORyBtYWNybyEgKi8KLSNpZiBSQURFT05fRklGT19ERUJVRwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkgc3RydWN0IGRybV9kbWEgKiBkKQotewotCWludCBpOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0KLQlmb3IgKGkgPSBkLT5ncmFudGVkX2NvdW50OyBpIDwgZC0+cmVxdWVzdF9jb3VudDsgaSsrKSB7Ci0JCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKLQkJaWYgKCFidWYpCi0JCQlyZXR1cm4gLUVCVVNZOwkvKiBOT1RFOiBicm9rZW4gY2xpZW50ICovCi0KLQkJYnVmLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Ci0KLQkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3RfaW5kaWNlc1tpXSwgJmJ1Zi0+aWR4LAotCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+aWR4KSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3Rfc2l6ZXNbaV0sICZidWYtPnRvdGFsLAotCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+dG90YWwpKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCi0JCWQtPmdyYW50ZWRfY291bnQrKzsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCWludCByZXQgPSAwOwotCXN0cnVjdCBkcm1fZG1hICpkID0gZGF0YTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQkvKiBQbGVhc2UgZG9uJ3Qgc2VuZCB1cyBidWZmZXJzLgotCSAqLwotCWlmIChkLT5zZW5kX2NvdW50ICE9IDApIHsKLQkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBzZW5kICVkIGJ1ZmZlcnMgdmlhIGRybURNQVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnNlbmRfY291bnQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBXZSdsbCBzZW5kIHlvdSBidWZmZXJzLgotCSAqLwotCWlmIChkLT5yZXF1ZXN0X2NvdW50IDwgMCB8fCBkLT5yZXF1ZXN0X2NvdW50ID4gZG1hLT5idWZfY291bnQpIHsKLQkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBnZXQgJWQgYnVmZmVycyAob2YgJWQgbWF4KVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnJlcXVlc3RfY291bnQsIGRtYS0+YnVmX2NvdW50KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZC0+Z3JhbnRlZF9jb3VudCA9IDA7Ci0KLQlpZiAoZC0+cmVxdWVzdF9jb3VudCkgewotCQlyZXQgPSByYWRlb25fY3BfZ2V0X2J1ZmZlcnMoZGV2LCBmaWxlX3ByaXYsIGQpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLWludCByYWRlb25fZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXY7Ci0JaW50IHJldCA9IDA7Ci0KLQlkZXZfcHJpdiA9IGRybV9hbGxvYyhzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpLCBEUk1fTUVNX0RSSVZFUik7Ci0JaWYgKGRldl9wcml2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbWVtc2V0KGRldl9wcml2LCAwLCBzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpKTsKLQlkZXYtPmRldl9wcml2YXRlID0gKHZvaWQgKilkZXZfcHJpdjsKLQlkZXZfcHJpdi0+ZmxhZ3MgPSBmbGFnczsKLQotCXN3aXRjaCAoZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIHsKLQljYXNlIENISVBfUjEwMDoKLQljYXNlIENISVBfUlYyMDA6Ci0JY2FzZSBDSElQX1IyMDA6Ci0JY2FzZSBDSElQX1IzMDA6Ci0JY2FzZSBDSElQX1IzNTA6Ci0JY2FzZSBDSElQX1I0MjA6Ci0JY2FzZSBDSElQX1JWNDEwOgotCWNhc2UgQ0hJUF9SVjUxNToKLQljYXNlIENISVBfUjUyMDoKLQljYXNlIENISVBfUlY1NzA6Ci0JY2FzZSBDSElQX1I1ODA6Ci0JCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSEFTX0hJRVJaOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBhbGwgb3RoZXIgY2hpcHMgaGF2ZSBubyBoaWVyYXJjaGljYWwgeiBidWZmZXIgKi8KLQkJYnJlYWs7Ci0JfQotCi0JaWYgKGRybV9kZXZpY2VfaXNfYWdwKGRldikpCi0JCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfQUdQOwotCWVsc2UgaWYgKGRybV9kZXZpY2VfaXNfcGNpZShkZXYpKQotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSUU7Ci0JZWxzZQotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSTsKLQotCURSTV9ERUJVRygiJXMgY2FyZCBkZXRlY3RlZFxuIiwKLQkJICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApID8gIkFHUCIgOiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgPyAiUENJRSIgOiAiUENJIikpKSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyogQ3JlYXRlIG1hcHBpbmdzIGZvciByZWdpc3RlcnMgYW5kIGZyYW1lYnVmZmVyIHNvIHVzZXJsYW5kIGRvZXNuJ3QgbmVjZXNzYXJpbHkKLSAqIGhhdmUgdG8gZmluZCB0aGVtLgotICovCi1pbnQgcmFkZW9uX2RyaXZlcl9maXJzdG9wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpbnQgcmV0OwotCWRybV9sb2NhbF9tYXBfdCAqbWFwOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFOwotCi0JcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoZGV2LCAyKSwKLQkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDIpLCBfRFJNX1JFR0lTVEVSUywKLQkJCSBfRFJNX1JFQURfT05MWSwgJmRldl9wcml2LT5tbWlvKTsKLQlpZiAocmV0ICE9IDApCi0JCXJldHVybiByZXQ7Ci0KLQlkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQgPSBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KGRldiwgMCk7Ci0JcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRldl9wcml2LT5mYl9hcGVyX29mZnNldCwKLQkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDApLCBfRFJNX0ZSQU1FX0JVRkZFUiwKLQkJCSBfRFJNX1dSSVRFX0NPTUJJTklORywgJm1hcCk7Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0JZHJtX2ZyZWUoZGV2X3ByaXYsIHNpemVvZigqZGV2X3ByaXYpLCBEUk1fTUVNX0RSSVZFUik7Ci0KLQlkZXYtPmRldl9wcml2YXRlID0gTlVMTDsKLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2RybS5oIGIvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhYjgyZTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NDEgKzAsMCBAQAotLyogcmFkZW9uX2RybS5oIC0tIFB1YmxpYyBoZWFkZXIgZm9yIHRoZSByYWRlb24gZHJpdmVyIC0qLSBsaW51eC1jIC0qLQotICoKLSAqIENvcHlyaWdodCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCi0gKiBDb3B5cmlnaHQgMjAwMiBUdW5nc3RlbiBHcmFwaGljcywgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKiBBdXRob3JzOgotICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+Ci0gKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKiAgICBLZWl0aCBXaGl0d2VsbCA8a2VpdGhAdHVuZ3N0ZW5ncmFwaGljcy5jb20+Ci0gKi8KLQotI2lmbmRlZiBfX1JBREVPTl9EUk1fSF9fCi0jZGVmaW5lIF9fUkFERU9OX0RSTV9IX18KLQotLyogV0FSTklORzogSWYgeW91IGNoYW5nZSBhbnkgb2YgdGhlc2UgZGVmaW5lcywgbWFrZSBzdXJlIHRvIGNoYW5nZSB0aGUKLSAqIGRlZmluZXMgaW4gdGhlIFggc2VydmVyIGZpbGUgKHJhZGVvbl9zYXJlYS5oKQotICovCi0jaWZuZGVmIF9fUkFERU9OX1NBUkVBX0RFRklORVNfXwotI2RlZmluZSBfX1JBREVPTl9TQVJFQV9ERUZJTkVTX18KLQotLyogT2xkIHN0eWxlIHN0YXRlIGZsYWdzLCByZXF1aXJlZCBmb3Igc2FyZWEgaW50ZXJmYWNlICgxLjEgYW5kIDEuMgotICogY2xlYXJzKSBhbmQgMS4yIGRybV92ZXJ0ZXgyIGlvY3RsLgotICovCi0jZGVmaW5lIFJBREVPTl9VUExPQURfQ09OVEVYVAkJMHgwMDAwMDAwMQotI2RlZmluZSBSQURFT05fVVBMT0FEX1ZFUlRGTVQJCTB4MDAwMDAwMDIKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9MSU5FCQkweDAwMDAwMDA0Ci0jZGVmaW5lIFJBREVPTl9VUExPQURfQlVNUE1BUAkJMHgwMDAwMDAwOAotI2RlZmluZSBSQURFT05fVVBMT0FEX01BU0tTCQkweDAwMDAwMDEwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVklFV1BPUlQJCTB4MDAwMDAwMjAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9TRVRVUAkJMHgwMDAwMDA0MAotI2RlZmluZSBSQURFT05fVVBMT0FEX1RDTAkJMHgwMDAwMDA4MAotI2RlZmluZSBSQURFT05fVVBMT0FEX01JU0MJCTB4MDAwMDAxMDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgwCQkweDAwMDAwMjAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMQkJMHgwMDAwMDQwMAotI2RlZmluZSBSQURFT05fVVBMT0FEX1RFWDIJCTB4MDAwMDA4MDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgwSU1BR0VTCTB4MDAwMDEwMDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTCTB4MDAwMDIwMDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTCTB4MDAwMDQwMDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9DTElQUkVDVFMJCTB4MDAwMDgwMDAJLyogaGFuZGxlZCBjbGllbnQtc2lkZSAqLwotI2RlZmluZSBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFCTB4MDAwMTAwMDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9aQklBUwkJMHgwMDAyMDAwMAkvKiB2ZXJzaW9uIDEuMiBhbmQgbmV3ZXIgKi8KLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9BTEwJCTB4MDAzZWZmZmYKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9DT05URVhUX0FMTCAgICAgICAweDAwM2UwMWZmCi0KLS8qIE5ldyBzdHlsZSBwZXItcGFja2V0IGlkZW50aWZpZXJzIGZvciB1c2UgaW4gY21kX2J1ZmZlciBpb2N0bCB3aXRoCi0gKiB0aGUgUkFERU9OX0VNSVRfUEFDS0VUIGNvbW1hbmQuICBDb21tZW50cyByZWxhdGUgbmV3IHBhY2tldHMgdG8gb2xkCi0gKiBzdGF0ZSBiaXRzIGFuZCB0aGUgcGFja2V0IHNpemU6Ci0gKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAwCS8qIGNvbnRleHQvNyAqLwotI2RlZmluZSBSQURFT05fRU1JVF9QUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgIDEJLyogY29udGV4dC8zICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1JCM0RfQ09MT1JQSVRDSCAgICAgICAgICAgICAgICAgMgkvKiBjb250ZXh0LzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUkVfTElORV9QQVRURVJOICAgICAgICAgICAgICAgICAzCS8qIGxpbmUvMiAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9MSU5FX1dJRFRIICAgICAgICAgICAgICAgICAgIDQJLyogbGluZS8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0xVTV9NQVRSSVggICAgICAgICAgICAgICAgICAgNQkvKiBidW1wbWFwLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfUk9UX01BVFJJWF8wICAgICAgICAgICAgICAgICA2CS8qIGJ1bXBtYXAvMiAqLwotI2RlZmluZSBSQURFT05fRU1JVF9SQjNEX1NURU5DSUxSRUZNQVNLICAgICAgICAgICAgIDcJLyogbWFza3MvMyAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9WUE9SVF9YU0NBTEUgICAgICAgICAgICAgICAgIDgJLyogdmlld3BvcnQvNiAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgIDkJLyogc2V0dXAvMiAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgICAgIDEwCS8qIHNldHVwLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUkVfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAxMQkvKiBtaXNjLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMCAgICAgICAgICAgICAgICAgICAxMgkvKiB0ZXgwLzYgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzAgICAgICAgICAgICAgICAxMwkvKiB0ZXgwLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMSAgICAgICAgICAgICAgICAgICAxNAkvKiB0ZXgxLzYgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzEgICAgICAgICAgICAgICAxNQkvKiB0ZXgxLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAgICAxNgkvKiB0ZXgyLzYgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzIgICAgICAgICAgICAgICAxNwkvKiB0ZXgyLzEgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfU0VfWkJJQVNfRkFDVE9SICAgICAgICAgICAgICAgICAxOAkvKiB6Ymlhcy8yICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCAgICAgICAgICAgMTkJLyogdGNsLzExICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEICAgMjAJLyogbWF0ZXJpYWwvMTcgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzAgICAgICAgICAgICAgICAgICAgICAyMQkvKiB0ZXgwLzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzEgICAgICAgICAgICAgICAgICAgICAyMgkvKiB0ZXgxLzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzIgICAgICAgICAgICAgICAgICAgICAyMwkvKiB0ZXgyLzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzMgICAgICAgICAgICAgICAgICAgICAyNAkvKiB0ZXgzLzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzQgICAgICAgICAgICAgICAgICAgICAyNQkvKiB0ZXg0LzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzUgICAgICAgICAgICAgICAgICAgICAyNgkvKiB0ZXg1LzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzYgICAgICAgICAgICAgICAgICAgICAyNwkvKiAvNCAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNyAgICAgICAgICAgICAgICAgICAgIDI4CS8qIC80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAgICAgICAgICAgICAgMjkJLyogdGNsLzcgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1RGQUNUT1JfMCAgICAgICAgICAgICAgICAgICAgICAgICAzMAkvKiB0Zi83ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9WVFhfRk1UXzAgICAgICAgICAgICAgICAgICAgICAgICAgMzEJLyogdnR4LzUgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1ZBUF9DVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAzMgkvKiB2YXAvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfTUFUUklYX1NFTEVDVF8wICAgICAgICAgICAgICAgICAgIDMzCS8qIG1zbC81ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9URVhfUFJPQ19DVExfMiAgICAgICAgICAgICAgICAgICAgMzQJLyogdGNnLzUgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwgICAgICAgICAgICAzNQkvKiB0Y2wvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMCAgICAgICAgICAgICAgICAgICAgIDM2CS8qIHRleDAvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMSAgICAgICAgICAgICAgICAgICAgIDM3CS8qIHRleDEvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAgICAgIDM4CS8qIHRleDIvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMyAgICAgICAgICAgICAgICAgICAgIDM5CS8qIHRleDMvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNCAgICAgICAgICAgICAgICAgICAgIDQwCS8qIHRleDQvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNSAgICAgICAgICAgICAgICAgICAgIDQxCS8qIHRleDUvNiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMCAgICAgICAgICAgICAgICAgICAgIDQyCS8qIHRleDAvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMSAgICAgICAgICAgICAgICAgICAgIDQzCS8qIHRleDEvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMiAgICAgICAgICAgICAgICAgICAgIDQ0CS8qIHRleDIvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMyAgICAgICAgICAgICAgICAgICAgIDQ1CS8qIHRleDMvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNCAgICAgICAgICAgICAgICAgICAgIDQ2CS8qIHRleDQvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNSAgICAgICAgICAgICAgICAgICAgIDQ3CS8qIHRleDUvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfVlRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4CS8qIHZ0ZS8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9PVVRQVVRfVlRYX0NPTVBfU0VMICAgICAgICAgICAgICAgNDkJLyogdnR4LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RBTV9ERUJVRzMgICAgICAgICAgICAgICAgICAgICA1MAkvKiB0YW0vMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ05UTF9YICAgICAgICAgICAgICAgICAgICAgICAgIDUxCS8qIGNzdC8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9SQjNEX0RFUFRIWFlfT0ZGU0VUICAgICAgICAgICAgICAgNTIJLyogY3N0LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgICAgICA1MwkvKiBjc3QvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8wICAgICAgICAgICAgICAgICAgIDU0CS8qIGNzdC8yICovCi0jZGVmaW5lIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzEgICAgICAgICAgICAgICAgICAgNTUJLyogY3N0LzIgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMiAgICAgICAgICAgICAgICAgICA1NgkvKiBjc3QvMiAqLwotI2RlZmluZSBSMjAwX0VNSVRfU0VfVkFQX0NOVExfU1RBVFVTICAgICAgICAgICAgICAgIDU3CS8qIGNzdC8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9TRV9WVFhfU1RBVEVfQ05UTCAgICAgICAgICAgICAgICAgNTgJLyogY3N0LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgICAgICA1OQkvKiBjc3QvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wICAgICAgIDYwCS8qIGNzdC80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgICAgICAgNjEKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMCAgICAgICAgICAgICAgICA2MgotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMSAgICAgICAgICAgICAgICAgIDYzCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzEgICAgICAgICAgICAgICAgNjQKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzIgICAgICAgICAgICAgICAgICA2NQotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18yICAgICAgICAgICAgICAgIDY2Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18zICAgICAgICAgICAgICAgICAgNjcKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMyAgICAgICAgICAgICAgICA2OAotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfNCAgICAgICAgICAgICAgICAgIDY5Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzQgICAgICAgICAgICAgICAgNzAKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzUgICAgICAgICAgICAgICAgICA3MQotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU181ICAgICAgICAgICAgICAgIDcyCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzAgICAgICAgICAgICAgICAgICAgNzMKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMSAgICAgICAgICAgICAgICAgICA3NAotI2RlZmluZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8yICAgICAgICAgICAgICAgICAgIDc1Ci0jZGVmaW5lIFIyMDBfRU1JVF9SQjNEX0JMRU5EQ09MT1IgICAgICAgICAgICAgICAgICAgNzYKLSNkZWZpbmUgUjIwMF9FTUlUX1RDTF9QT0lOVF9TUFJJVEVfQ05UTCAgICAgICAgICAgICA3NwotI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgICAgIDc4Ci0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDAgICAgICAgICAgICAgNzkKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMSAgICAgICAgICAgICAgICA4MAotI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QxICAgICAgICAgICAgIDgxCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzIgICAgICAgICAgICAgICAgODIKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMiAgICAgICAgICAgICA4MwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFJJX1BFUkZfQ05UTCAgICAgICAgICAgICAgICAgIDg0Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9BRlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgODUKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0FGU18xICAgICAgICAgICAgICAgICAgICAgICAgICA4NgotI2RlZmluZSBSMjAwX0VNSVRfQVRGX1RGQUNUT1IgICAgICAgICAgICAgICAgICAgICAgIDg3Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8wICAgICAgICAgICAgICAgICAgICAgODgKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzEgICAgICAgICAgICAgICAgICAgICA4OQotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMiAgICAgICAgICAgICAgICAgICAgIDkwCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8zICAgICAgICAgICAgICAgICAgICAgOTEKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzQgICAgICAgICAgICAgICAgICAgICA5MgotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfNSAgICAgICAgICAgICAgICAgICAgIDkzCi0jZGVmaW5lIFIyMDBfRU1JVF9WQVBfUFZTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgOTQKLSNkZWZpbmUgUkFERU9OX01BWF9TVEFURV9QQUNLRVRTICAgICAgICAgICAgICAgICAgICA5NQotCi0vKiBDb21tYW5kcyB1bmRlcnN0b29kIGJ5IGNtZF9idWZmZXIgaW9jdGwuICBNb3JlIGNhbiBiZSBhZGRlZCBidXQKLSAqIG9idmlvdXNseSB0aGVzZSBjYW4ndCBiZSByZW1vdmVkIG9yIGNoYW5nZWQ6Ci0gKi8KLSNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQgICAgICAxCS8qIGVtaXQgb25lIG9mIHRoZSByZWdpc3RlciBwYWNrZXRzIGFib3ZlICovCi0jZGVmaW5lIFJBREVPTl9DTURfU0NBTEFSUyAgICAgMgkvKiBlbWl0IHNjYWxhciBkYXRhICovCi0jZGVmaW5lIFJBREVPTl9DTURfVkVDVE9SUyAgICAgMwkvKiBlbWl0IHZlY3RvciBkYXRhICovCi0jZGVmaW5lIFJBREVPTl9DTURfRE1BX0RJU0NBUkQgNAkvKiBkaXNjYXJkIGN1cnJlbnQgZG1hIGJ1ZiAqLwotI2RlZmluZSBSQURFT05fQ01EX1BBQ0tFVDMgICAgIDUJLyogZW1pdCBodyBwYWNrZXQgKi8KLSNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQzX0NMSVAgNgkvKiBlbWl0IGh3IHBhY2tldCB3cmFwcGVkIGluIGNsaXByZWN0cyAqLwotI2RlZmluZSBSQURFT05fQ01EX1NDQUxBUlMyICAgICA3CS8qIHIyMDAgc3RvcGdhcCAqLwotI2RlZmluZSBSQURFT05fQ01EX1dBSVQgICAgICAgICA4CS8qIGVtaXQgaHcgd2FpdCBjb21tYW5kcyAtLSBub3RlOgotCQkJCQkgKiAgZG9lc24ndCBtYWtlIHRoZSBjcHUgd2FpdCwganVzdAotCQkJCQkgKiAgdGhlIGdyYXBoaWNzIGhhcmR3YXJlICovCi0jZGVmaW5lIFJBREVPTl9DTURfVkVDTElORUFSCTkgICAgICAgLyogYW5vdGhlciByMjAwIHN0b3BnYXAgKi8KLQotdHlwZWRlZiB1bmlvbiB7Ci0JaW50IGk7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFkMCwgcGFkMSwgcGFkMjsKLQl9IGhlYWRlcjsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBwYWNrZXRfaWQsIHBhZDAsIHBhZDE7Ci0JfSBwYWNrZXQ7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgb2Zmc2V0LCBzdHJpZGUsIGNvdW50OwotCX0gc2NhbGFyczsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBvZmZzZXQsIHN0cmlkZSwgY291bnQ7Ci0JfSB2ZWN0b3JzOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGFkZHJfbG8sIGFkZHJfaGksIGNvdW50OwotCX0gdmVjbGluZWFyOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGJ1Zl9pZHgsIHBhZDAsIHBhZDE7Ci0JfSBkbWE7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgZmxhZ3MsIHBhZDAsIHBhZDE7Ci0JfSB3YWl0OwotfSBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdDsKLQotI2RlZmluZSBSQURFT05fV0FJVF8yRCAgMHgxCi0jZGVmaW5lIFJBREVPTl9XQUlUXzNEICAweDIKLQotLyogQWxsb3dlZCBwYXJhbWV0ZXJzIGZvciBSMzAwX0NNRF9QQUNLRVQzCi0gKi8KLSNkZWZpbmUgUjMwMF9DTURfUEFDS0VUM19DTEVBUgkJMAotI2RlZmluZSBSMzAwX0NNRF9QQUNLRVQzX1JBVwkJMQotCi0vKiBDb21tYW5kcyB1bmRlcnN0b29kIGJ5IGNtZF9idWZmZXIgaW9jdGwgZm9yIFIzMDAuCi0gKiBUaGUgaW50ZXJmYWNlIGhhcyBub3QgYmVlbiBzdGFiaWxpemVkLCBzbyBzb21lIG9mIHRoZXNlIG1heSBiZSByZW1vdmVkCi0gKiBhbmQgZXZlbnR1YWxseSByZW9yZGVyZWQgYmVmb3JlIHN0YWJpbGl6YXRpb24uCi0gKi8KLSNkZWZpbmUgUjMwMF9DTURfUEFDS0VUMAkJMQotI2RlZmluZSBSMzAwX0NNRF9WUFUJCQkyCS8qIGVtaXQgdmVydGV4IHByb2dyYW0gdXBsb2FkICovCi0jZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDMJCTMJLyogZW1pdCBhIHBhY2tldDMgKi8KLSNkZWZpbmUgUjMwMF9DTURfRU5EM0QJCQk0CS8qIGVtaXQgc2VxdWVuY2UgZW5kaW5nIDNkIHJlbmRlcmluZyAqLwotI2RlZmluZSBSMzAwX0NNRF9DUF9ERUxBWQkJNQotI2RlZmluZSBSMzAwX0NNRF9ETUFfRElTQ0FSRAkJNgotI2RlZmluZSBSMzAwX0NNRF9XQUlUCQkJNwotIwlkZWZpbmUgUjMwMF9XQUlUXzJECQkweDEKLSMJZGVmaW5lIFIzMDBfV0FJVF8zRAkJMHgyCi0vKiB0aGVzZSB0d28gZGVmaW5lcyBhcmUgRE9JTkcgSVQgV1JPTkcgLSBob3dldmVyCi0gKiB3ZSBoYXZlIHVzZXJzcGFjZSB3aGljaCByZWxpZXMgb24gdXNpbmcgdGhlc2UuCi0gKiBUaGUgd2FpdCBpbnRlcmZhY2UgaXMgYmFja3dhcmRzIGNvbXBhdCBuZXcgCi0gKiBjb2RlIHNob3VsZCB1c2UgdGhlIE5FV19XQUlUIGRlZmluZXMgYmVsb3cKLSAqIFRIRVNFIEFSRSBOT1QgQklUIEZJRUxEUwotICovCi0jCWRlZmluZSBSMzAwX1dBSVRfMkRfQ0xFQU4JMHgzCi0jCWRlZmluZSBSMzAwX1dBSVRfM0RfQ0xFQU4JMHg0Ci0KLSMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfMkRfM0QJMHgzCi0jCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOCTB4NAotIwlkZWZpbmUgUjMwMF9ORVdfV0FJVF8zRF8zRF9DTEVBTgkweDYKLSMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfMkRfMkRfQ0xFQU5fM0RfM0RfQ0xFQU4JMHg4Ci0KLSNkZWZpbmUgUjMwMF9DTURfU0NSQVRDSAkJOAotCi10eXBlZGVmIHVuaW9uIHsKLQl1bnNpZ25lZCBpbnQgdTsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBwYWQwLCBwYWQxLCBwYWQyOwotCX0gaGVhZGVyOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGNvdW50LCByZWdsbywgcmVnaGk7Ci0JfSBwYWNrZXQwOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGNvdW50LCBhZHJsbywgYWRyaGk7Ci0JfSB2cHU7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFja2V0LCBwYWQwLCBwYWQxOwotCX0gcGFja2V0MzsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBwYWNrZXQ7Ci0JCXVuc2lnbmVkIHNob3J0IGNvdW50OwkvKiBhbW91bnQgb2YgcGFja2V0MiB0byBlbWl0ICovCi0JfSBkZWxheTsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBidWZfaWR4LCBwYWQwLCBwYWQxOwotCX0gZG1hOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGZsYWdzLCBwYWQwLCBwYWQxOwotCX0gd2FpdDsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCByZWcsIG5fYnVmcywgZmxhZ3M7Ci0JfSBzY3JhdGNoOwotfSBkcm1fcjMwMF9jbWRfaGVhZGVyX3Q7Ci0KLSNkZWZpbmUgUkFERU9OX0ZST05UCQkJMHgxCi0jZGVmaW5lIFJBREVPTl9CQUNLCQkJMHgyCi0jZGVmaW5lIFJBREVPTl9ERVBUSAkJCTB4NAotI2RlZmluZSBSQURFT05fU1RFTkNJTAkJCTB4OAotI2RlZmluZSBSQURFT05fQ0xFQVJfRkFTVFoJCTB4ODAwMDAwMDAKLSNkZWZpbmUgUkFERU9OX1VTRV9ISUVSWgkJMHg0MDAwMDAwMAotI2RlZmluZSBSQURFT05fVVNFX0NPTVBfWkJVRgkJMHgyMDAwMDAwMAotCi0vKiBQcmltaXRpdmUgdHlwZXMKLSAqLwotI2RlZmluZSBSQURFT05fUE9JTlRTCQkJMHgxCi0jZGVmaW5lIFJBREVPTl9MSU5FUwkJCTB4MgotI2RlZmluZSBSQURFT05fTElORV9TVFJJUAkJMHgzCi0jZGVmaW5lIFJBREVPTl9UUklBTkdMRVMJCTB4NAotI2RlZmluZSBSQURFT05fVFJJQU5HTEVfRkFOCQkweDUKLSNkZWZpbmUgUkFERU9OX1RSSUFOR0xFX1NUUklQCQkweDYKLQotLyogVmVydGV4L2luZGlyZWN0IGJ1ZmZlciBzaXplCi0gKi8KLSNkZWZpbmUgUkFERU9OX0JVRkZFUl9TSVpFCQk2NTUzNgotCi0vKiBCeXRlIG9mZnNldHMgZm9yIGluZGlyZWN0IGJ1ZmZlciBkYXRhCi0gKi8KLSNkZWZpbmUgUkFERU9OX0lOREVYX1BSSU1fT0ZGU0VUCTIwCi0KLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVAkzMgotCi0jZGVmaW5lIFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFMJMTIKLQotLyogVGhlcmUgYXJlIDIgaGVhcHMgKGxvY2FsL0dBUlQpLiAgRWFjaCByZWdpb24gd2l0aGluIGEgaGVhcCBpcyBhCi0gKiBtaW5pbXVtIG9mIDY0aywgYW5kIHRoZXJlIGFyZSBhdCBtb3N0IDY0IG9mIHRoZW0gcGVyIGhlYXAuCi0gKi8KLSNkZWZpbmUgUkFERU9OX0xPQ0FMX1RFWF9IRUFQCQkwCi0jZGVmaW5lIFJBREVPTl9HQVJUX1RFWF9IRUFQCQkxCi0jZGVmaW5lIFJBREVPTl9OUl9URVhfSEVBUFMJCTIKLSNkZWZpbmUgUkFERU9OX05SX1RFWF9SRUdJT05TCQk2NAotI2RlZmluZSBSQURFT05fTE9HX1RFWF9HUkFOVUxBUklUWQkxNgotCi0jZGVmaW5lIFJBREVPTl9NQVhfVEVYVFVSRV9MRVZFTFMJMTIKLSNkZWZpbmUgUkFERU9OX01BWF9URVhUVVJFX1VOSVRTCTMKLQotI2RlZmluZSBSQURFT05fTUFYX1NVUkZBQ0VTCQk4Ci0KLS8qIEJsaXRzIGhhdmUgc3RyaWN0IG9mZnNldCBydWxlcy4gIEFsbCBibGl0IG9mZnNldCBtdXN0IGJlIGFsaWduZWQgb24KLSAqIGEgMUstYnl0ZSBib3VuZGFyeS4KLSAqLwotI2RlZmluZSBSQURFT05fT0ZGU0VUX1NISUZUICAgICAgICAgICAgIDEwCi0jZGVmaW5lIFJBREVPTl9PRkZTRVRfQUxJR04gICAgICAgICAgICAgKDEgPDwgUkFERU9OX09GRlNFVF9TSElGVCkKLSNkZWZpbmUgUkFERU9OX09GRlNFVF9NQVNLICAgICAgICAgICAgICAoUkFERU9OX09GRlNFVF9BTElHTiAtIDEpCi0KLSNlbmRpZgkJCQkvKiBfX1JBREVPTl9TQVJFQV9ERUZJTkVTX18gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgewotCXVuc2lnbmVkIGludCByZWQ7Ci0JdW5zaWduZWQgaW50IGdyZWVuOwotCXVuc2lnbmVkIGludCBibHVlOwotCXVuc2lnbmVkIGludCBhbHBoYTsKLX0gcmFkZW9uX2NvbG9yX3JlZ3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgewotCS8qIENvbnRleHQgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgcHBfbWlzYzsJLyogMHgxYzE0ICovCi0JdW5zaWduZWQgaW50IHBwX2ZvZ19jb2xvcjsKLQl1bnNpZ25lZCBpbnQgcmVfc29saWRfY29sb3I7Ci0JdW5zaWduZWQgaW50IHJiM2RfYmxlbmRjbnRsOwotCXVuc2lnbmVkIGludCByYjNkX2RlcHRob2Zmc2V0OwotCXVuc2lnbmVkIGludCByYjNkX2RlcHRocGl0Y2g7Ci0JdW5zaWduZWQgaW50IHJiM2RfenN0ZW5jaWxjbnRsOwotCi0JdW5zaWduZWQgaW50IHBwX2NudGw7CS8qIDB4MWMzOCAqLwotCXVuc2lnbmVkIGludCByYjNkX2NudGw7Ci0JdW5zaWduZWQgaW50IHJiM2RfY29sb3JvZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHJlX3dpZHRoX2hlaWdodDsKLQl1bnNpZ25lZCBpbnQgcmIzZF9jb2xvcnBpdGNoOwotCXVuc2lnbmVkIGludCBzZV9jbnRsOwotCi0JLyogVmVydGV4IGZvcm1hdCBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCBzZV9jb29yZF9mbXQ7CS8qIDB4MWM1MCAqLwotCi0JLyogTGluZSBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCByZV9saW5lX3BhdHRlcm47CS8qIDB4MWNkMCAqLwotCXVuc2lnbmVkIGludCByZV9saW5lX3N0YXRlOwotCi0JdW5zaWduZWQgaW50IHNlX2xpbmVfd2lkdGg7CS8qIDB4MWRiOCAqLwotCi0JLyogQnVtcG1hcCBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCBwcF9sdW1fbWF0cml4OwkvKiAweDFkMDAgKi8KLQotCXVuc2lnbmVkIGludCBwcF9yb3RfbWF0cml4XzA7CS8qIDB4MWQ1OCAqLwotCXVuc2lnbmVkIGludCBwcF9yb3RfbWF0cml4XzE7Ci0KLQkvKiBNYXNrIHN0YXRlICovCi0JdW5zaWduZWQgaW50IHJiM2Rfc3RlbmNpbHJlZm1hc2s7CS8qIDB4MWQ3YyAqLwotCXVuc2lnbmVkIGludCByYjNkX3JvcGNudGw7Ci0JdW5zaWduZWQgaW50IHJiM2RfcGxhbmVtYXNrOwotCi0JLyogVmlld3BvcnQgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfeHNjYWxlOwkvKiAweDFkOTggKi8KLQl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfeG9mZnNldDsKLQl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfeXNjYWxlOwotCXVuc2lnbmVkIGludCBzZV92cG9ydF95b2Zmc2V0OwotCXVuc2lnbmVkIGludCBzZV92cG9ydF96c2NhbGU7Ci0JdW5zaWduZWQgaW50IHNlX3Zwb3J0X3pvZmZzZXQ7Ci0KLQkvKiBTZXR1cCBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCBzZV9jbnRsX3N0YXR1czsJLyogMHgyMTQwICovCi0KLQkvKiBNaXNjIHN0YXRlICovCi0JdW5zaWduZWQgaW50IHJlX3RvcF9sZWZ0OwkvKiAweDI2YzAgKi8KLQl1bnNpZ25lZCBpbnQgcmVfbWlzYzsKLX0gZHJtX3JhZGVvbl9jb250ZXh0X3JlZ3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgewotCS8qIFpiaWFzIHN0YXRlICovCi0JdW5zaWduZWQgaW50IHNlX3piaWFzX2ZhY3RvcjsJLyogMHgxZGFjICovCi0JdW5zaWduZWQgaW50IHNlX3piaWFzX2NvbnN0YW50OwotfSBkcm1fcmFkZW9uX2NvbnRleHQyX3JlZ3NfdDsKLQotLyogU2V0dXAgcmVnaXN0ZXJzIGZvciBlYWNoIHRleHR1cmUgdW5pdAotICovCi10eXBlZGVmIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IHBwX3R4ZmlsdGVyOwotCXVuc2lnbmVkIGludCBwcF90eGZvcm1hdDsKLQl1bnNpZ25lZCBpbnQgcHBfdHhvZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHBwX3R4Y2JsZW5kOwotCXVuc2lnbmVkIGludCBwcF90eGFibGVuZDsKLQl1bnNpZ25lZCBpbnQgcHBfdGZhY3RvcjsKLQl1bnNpZ25lZCBpbnQgcHBfYm9yZGVyX2NvbG9yOwotfSBkcm1fcmFkZW9uX3RleHR1cmVfcmVnc190OwotCi10eXBlZGVmIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IHN0YXJ0OwotCXVuc2lnbmVkIGludCBmaW5pc2g7Ci0JdW5zaWduZWQgaW50IHByaW06ODsKLQl1bnNpZ25lZCBpbnQgc3RhdGVpZHg6ODsKLQl1bnNpZ25lZCBpbnQgbnVtdmVydHM6MTY7CS8qIG92ZXJsb2FkZWQgYXMgb2Zmc2V0LzY0IGZvciBlbHQgcHJpbXMgKi8KLQl1bnNpZ25lZCBpbnQgdmNfZm9ybWF0OwkvKiB2ZXJ0ZXggZm9ybWF0ICovCi19IGRybV9yYWRlb25fcHJpbV90OwotCi10eXBlZGVmIHN0cnVjdCB7Ci0JZHJtX3JhZGVvbl9jb250ZXh0X3JlZ3NfdCBjb250ZXh0OwotCWRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3QgdGV4W1JBREVPTl9NQVhfVEVYVFVSRV9VTklUU107Ci0JZHJtX3JhZGVvbl9jb250ZXh0Ml9yZWdzX3QgY29udGV4dDI7Ci0JdW5zaWduZWQgaW50IGRpcnR5OwotfSBkcm1fcmFkZW9uX3N0YXRlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IHsKLQkvKiBUaGUgY2hhbm5lbCBmb3IgY29tbXVuaWNhdGlvbiBvZiBzdGF0ZSBpbmZvcm1hdGlvbiB0byB0aGUKLQkgKiBrZXJuZWwgb24gZmlyaW5nIGEgdmVydGV4IGJ1ZmZlciB3aXRoIGVpdGhlciBvZiB0aGUKLQkgKiBvYnNvbGV0ZWQgdmVydGV4L2luZGV4IGlvY3Rscy4KLQkgKi8KLQlkcm1fcmFkZW9uX2NvbnRleHRfcmVnc190IGNvbnRleHRfc3RhdGU7Ci0JZHJtX3JhZGVvbl90ZXh0dXJlX3JlZ3NfdCB0ZXhfc3RhdGVbUkFERU9OX01BWF9URVhUVVJFX1VOSVRTXTsKLQl1bnNpZ25lZCBpbnQgZGlydHk7Ci0JdW5zaWduZWQgaW50IHZlcnRzaXplOwotCXVuc2lnbmVkIGludCB2Y19mb3JtYXQ7Ci0KLQkvKiBUaGUgY3VycmVudCBjbGlwcmVjdHMsIG9yIGEgc3Vic2V0IHRoZXJlb2YuCi0JICovCi0Jc3RydWN0IGRybV9jbGlwX3JlY3QgYm94ZXNbUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUU107Ci0JdW5zaWduZWQgaW50IG5ib3g7Ci0KLQkvKiBDb3VudGVycyBmb3IgY2xpZW50LXNpZGUgdGhyb3R0bGluZyBvZiByZW5kZXJpbmcgY2xpZW50cy4KLQkgKi8KLQl1bnNpZ25lZCBpbnQgbGFzdF9mcmFtZTsKLQl1bnNpZ25lZCBpbnQgbGFzdF9kaXNwYXRjaDsKLQl1bnNpZ25lZCBpbnQgbGFzdF9jbGVhcjsKLQotCXN0cnVjdCBkcm1fdGV4X3JlZ2lvbiB0ZXhfbGlzdFtSQURFT05fTlJfVEVYX0hFQVBTXVtSQURFT05fTlJfVEVYX1JFR0lPTlMgKwotCQkJCQkJICAgICAgIDFdOwotCXVuc2lnbmVkIGludCB0ZXhfYWdlW1JBREVPTl9OUl9URVhfSEVBUFNdOwotCWludCBjdHhfb3duZXI7Ci0JaW50IHBmU3RhdGU7CQkvKiBudW1iZXIgb2YgM2Qgd2luZG93cyAoMCwxLDJvcm1vcmUpICovCi0JaW50IHBmQ3VycmVudFBhZ2U7CS8qIHdoaWNoIGJ1ZmZlciBpcyBiZWluZyBkaXNwbGF5ZWQ/ICovCi0JaW50IGNydGMyX2Jhc2U7CQkvKiBDUlRDMiBmcmFtZSBvZmZzZXQgKi8KLQlpbnQgdGlsaW5nX2VuYWJsZWQ7CS8qIHNldCBieSBkcm0sIHJlYWQgYnkgMmQgKyAzZCBjbGllbnRzICovCi19IGRybV9yYWRlb25fc2FyZWFfdDsKLQotLyogV0FSTklORzogSWYgeW91IGNoYW5nZSBhbnkgb2YgdGhlc2UgZGVmaW5lcywgbWFrZSBzdXJlIHRvIGNoYW5nZSB0aGUKLSAqIGRlZmluZXMgaW4gdGhlIFhzZXJ2ZXIgZmlsZSAoeGY4NmRybVJhZGVvbi5oKQotICoKLSAqIEtXOiBhY3R1YWxseSBpdCdzIGlsbGVnYWwgdG8gY2hhbmdlIGFueSBvZiB0aGlzIChiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCi0gKi8KLQotLyogUmFkZW9uIHNwZWNpZmljIGlvY3RscwotICogVGhlIGRldmljZSBzcGVjaWZpYyBpb2N0bCByYW5nZSBpcyAweDQwIHRvIDB4NzkuCi0gKi8KLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9JTklUICAgIDB4MDAKLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9TVEFSVCAgIDB4MDEKLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9TVE9QICAgIDB4MDIKLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9SRVNFVCAgIDB4MDMKLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9JRExFICAgIDB4MDQKLSNkZWZpbmUgRFJNX1JBREVPTl9SRVNFVCAgICAgIDB4MDUKLSNkZWZpbmUgRFJNX1JBREVPTl9GVUxMU0NSRUVOIDB4MDYKLSNkZWZpbmUgRFJNX1JBREVPTl9TV0FQICAgICAgIDB4MDcKLSNkZWZpbmUgRFJNX1JBREVPTl9DTEVBUiAgICAgIDB4MDgKLSNkZWZpbmUgRFJNX1JBREVPTl9WRVJURVggICAgIDB4MDkKLSNkZWZpbmUgRFJNX1JBREVPTl9JTkRJQ0VTICAgIDB4MEEKLSNkZWZpbmUgRFJNX1JBREVPTl9OT1RfVVNFRAotI2RlZmluZSBEUk1fUkFERU9OX1NUSVBQTEUgICAgMHgwQwotI2RlZmluZSBEUk1fUkFERU9OX0lORElSRUNUICAgMHgwRAotI2RlZmluZSBEUk1fUkFERU9OX1RFWFRVUkUgICAgMHgwRQotI2RlZmluZSBEUk1fUkFERU9OX1ZFUlRFWDIgICAgMHgwRgotI2RlZmluZSBEUk1fUkFERU9OX0NNREJVRiAgICAgMHgxMAotI2RlZmluZSBEUk1fUkFERU9OX0dFVFBBUkFNICAgMHgxMQotI2RlZmluZSBEUk1fUkFERU9OX0ZMSVAgICAgICAgMHgxMgotI2RlZmluZSBEUk1fUkFERU9OX0FMTE9DICAgICAgMHgxMwotI2RlZmluZSBEUk1fUkFERU9OX0ZSRUUgICAgICAgMHgxNAotI2RlZmluZSBEUk1fUkFERU9OX0lOSVRfSEVBUCAgMHgxNQotI2RlZmluZSBEUk1fUkFERU9OX0lSUV9FTUlUICAgMHgxNgotI2RlZmluZSBEUk1fUkFERU9OX0lSUV9XQUlUICAgMHgxNwotI2RlZmluZSBEUk1fUkFERU9OX0NQX1JFU1VNRSAgMHgxOAotI2RlZmluZSBEUk1fUkFERU9OX1NFVFBBUkFNICAgMHgxOQotI2RlZmluZSBEUk1fUkFERU9OX1NVUkZfQUxMT0MgMHgxYQotI2RlZmluZSBEUk1fUkFERU9OX1NVUkZfRlJFRSAgMHgxYgotCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfSU5JVCAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9JTklULCBkcm1fcmFkZW9uX2luaXRfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9TVEFSVCAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX1NUQVJUKQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX1NUT1AgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfU1RPUCwgZHJtX3JhZGVvbl9jcF9zdG9wX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfUkVTRVQgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9SRVNFVCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9JRExFICAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX0lETEUpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fUkVTRVQgICAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9SRVNFVCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9GVUxMU0NSRUVOIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0ZVTExTQ1JFRU4sIGRybV9yYWRlb25fZnVsbHNjcmVlbl90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NXQVAgICAgICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU1dBUCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DTEVBUiAgICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NMRUFSLCBkcm1fcmFkZW9uX2NsZWFyX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fVkVSVEVYICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9WRVJURVgsIGRybV9yYWRlb25fdmVydGV4X3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSU5ESUNFUyAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JTkRJQ0VTLCBkcm1fcmFkZW9uX2luZGljZXNfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TVElQUExFICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NUSVBQTEUsIGRybV9yYWRlb25fc3RpcHBsZV90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lORElSRUNUICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSU5ESVJFQ1QsIGRybV9yYWRlb25faW5kaXJlY3RfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9URVhUVVJFICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1RFWFRVUkUsIGRybV9yYWRlb25fdGV4dHVyZV90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1ZFUlRFWDIgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fVkVSVEVYMiwgZHJtX3JhZGVvbl92ZXJ0ZXgyX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ01EQlVGICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DTURCVUYsIGRybV9yYWRlb25fY21kX2J1ZmZlcl90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0dFVFBBUkFNICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fR0VUUEFSQU0sIGRybV9yYWRlb25fZ2V0cGFyYW1fdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9GTElQICAgICAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0ZMSVApCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQUxMT0MgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9BTExPQywgZHJtX3JhZGVvbl9tZW1fYWxsb2NfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9GUkVFICAgICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0ZSRUUsIGRybV9yYWRlb25fbWVtX2ZyZWVfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JTklUX0hFQVAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lOSVRfSEVBUCwgZHJtX3JhZGVvbl9tZW1faW5pdF9oZWFwX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSVJRX0VNSVQgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JUlFfRU1JVCwgZHJtX3JhZGVvbl9pcnFfZW1pdF90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lSUV9XQUlUICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSVJRX1dBSVQsIGRybV9yYWRlb25faXJxX3dhaXRfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9SRVNVTUUgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX1JFU1VNRSkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TRVRQQVJBTSAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NFVFBBUkFNLCBkcm1fcmFkZW9uX3NldHBhcmFtX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1VSRl9BTExPQyBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TVVJGX0FMTE9DLCBkcm1fcmFkZW9uX3N1cmZhY2VfYWxsb2NfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TVVJGX0ZSRUUgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NVUkZfRlJFRSwgZHJtX3JhZGVvbl9zdXJmYWNlX2ZyZWVfdCkKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pbml0IHsKLQllbnVtIHsKLQkJUkFERU9OX0lOSVRfQ1AgPSAweDAxLAotCQlSQURFT05fQ0xFQU5VUF9DUCA9IDB4MDIsCi0JCVJBREVPTl9JTklUX1IyMDBfQ1AgPSAweDAzLAotCQlSQURFT05fSU5JVF9SMzAwX0NQID0gMHgwNAotCX0gZnVuYzsKLQl1bnNpZ25lZCBsb25nIHNhcmVhX3ByaXZfb2Zmc2V0OwotCWludCBpc19wY2k7Ci0JaW50IGNwX21vZGU7Ci0JaW50IGdhcnRfc2l6ZTsKLQlpbnQgcmluZ19zaXplOwotCWludCB1c2VjX3RpbWVvdXQ7Ci0KLQl1bnNpZ25lZCBpbnQgZmJfYnBwOwotCXVuc2lnbmVkIGludCBmcm9udF9vZmZzZXQsIGZyb250X3BpdGNoOwotCXVuc2lnbmVkIGludCBiYWNrX29mZnNldCwgYmFja19waXRjaDsKLQl1bnNpZ25lZCBpbnQgZGVwdGhfYnBwOwotCXVuc2lnbmVkIGludCBkZXB0aF9vZmZzZXQsIGRlcHRoX3BpdGNoOwotCi0JdW5zaWduZWQgbG9uZyBmYl9vZmZzZXQ7Ci0JdW5zaWduZWQgbG9uZyBtbWlvX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIHJpbmdfb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgcmluZ19ycHRyX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIGJ1ZmZlcnNfb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgZ2FydF90ZXh0dXJlc19vZmZzZXQ7Ci19IGRybV9yYWRlb25faW5pdF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2NwX3N0b3AgewotCWludCBmbHVzaDsKLQlpbnQgaWRsZTsKLX0gZHJtX3JhZGVvbl9jcF9zdG9wX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fZnVsbHNjcmVlbiB7Ci0JZW51bSB7Ci0JCVJBREVPTl9JTklUX0ZVTExTQ1JFRU4gPSAweDAxLAotCQlSQURFT05fQ0xFQU5VUF9GVUxMU0NSRUVOID0gMHgwMgotCX0gZnVuYzsKLX0gZHJtX3JhZGVvbl9mdWxsc2NyZWVuX3Q7Ci0KLSNkZWZpbmUgQ0xFQVJfWDEJMAotI2RlZmluZSBDTEVBUl9ZMQkxCi0jZGVmaW5lIENMRUFSX1gyCTIKLSNkZWZpbmUgQ0xFQVJfWTIJMwotI2RlZmluZSBDTEVBUl9ERVBUSAk0Ci0KLXR5cGVkZWYgdW5pb24gZHJtX3JhZGVvbl9jbGVhcl9yZWN0IHsKLQlmbG9hdCBmWzVdOwotCXVuc2lnbmVkIGludCB1aVs1XTsKLX0gZHJtX3JhZGVvbl9jbGVhcl9yZWN0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fY2xlYXIgewotCXVuc2lnbmVkIGludCBmbGFnczsKLQl1bnNpZ25lZCBpbnQgY2xlYXJfY29sb3I7Ci0JdW5zaWduZWQgaW50IGNsZWFyX2RlcHRoOwotCXVuc2lnbmVkIGludCBjb2xvcl9tYXNrOwotCXVuc2lnbmVkIGludCBkZXB0aF9tYXNrOwkvKiBtaXNuYW1lZCBmaWVsZDogIHNob3VsZCBiZSBzdGVuY2lsICovCi0JZHJtX3JhZGVvbl9jbGVhcl9yZWN0X3QgX191c2VyICpkZXB0aF9ib3hlczsKLX0gZHJtX3JhZGVvbl9jbGVhcl90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3ZlcnRleCB7Ci0JaW50IHByaW07Ci0JaW50IGlkeDsJCS8qIEluZGV4IG9mIHZlcnRleCBidWZmZXIgKi8KLQlpbnQgY291bnQ7CQkvKiBOdW1iZXIgb2YgdmVydGljZXMgaW4gYnVmZmVyICovCi0JaW50IGRpc2NhcmQ7CQkvKiBDbGllbnQgZmluaXNoZWQgd2l0aCBidWZmZXI/ICovCi19IGRybV9yYWRlb25fdmVydGV4X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faW5kaWNlcyB7Ci0JaW50IHByaW07Ci0JaW50IGlkeDsKLQlpbnQgc3RhcnQ7Ci0JaW50IGVuZDsKLQlpbnQgZGlzY2FyZDsJCS8qIENsaWVudCBmaW5pc2hlZCB3aXRoIGJ1ZmZlcj8gKi8KLX0gZHJtX3JhZGVvbl9pbmRpY2VzX3Q7Ci0KLS8qIHYxLjIgLSBvYnNvbGV0ZXMgZHJtX3JhZGVvbl92ZXJ0ZXggYW5kIGRybV9yYWRlb25faW5kaWNlcwotICogICAgICAtIGFsbG93cyBtdWx0aXBsZSBwcmltaXRpdmVzIGFuZCBzdGF0ZSBjaGFuZ2VzIGluIGEgc2luZ2xlIGlvY3RsCi0gKiAgICAgIC0gc3VwcG9ydHMgZHJpdmVyIGNoYW5nZSB0byBlbWl0IG5hdGl2ZSBwcmltaXRpdmVzCi0gKi8KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fdmVydGV4MiB7Ci0JaW50IGlkeDsJCS8qIEluZGV4IG9mIHZlcnRleCBidWZmZXIgKi8KLQlpbnQgZGlzY2FyZDsJCS8qIENsaWVudCBmaW5pc2hlZCB3aXRoIGJ1ZmZlcj8gKi8KLQlpbnQgbnJfc3RhdGVzOwotCWRybV9yYWRlb25fc3RhdGVfdCBfX3VzZXIgKnN0YXRlOwotCWludCBucl9wcmltczsKLQlkcm1fcmFkZW9uX3ByaW1fdCBfX3VzZXIgKnByaW07Ci19IGRybV9yYWRlb25fdmVydGV4Ml90OwotCi0vKiB2MS4zIC0gb2Jzb2xldGVzIGRybV9yYWRlb25fdmVydGV4MgotICogICAgICAtIGFsbG93cyBhcmJpdGFyaWx5IGxhcmdlIGNsaXByZWN0IGxpc3QKLSAqICAgICAgLSBhbGxvd3MgdXBkYXRpbmcgb2YgdGNsIHBhY2tldCwgdmVjdG9yIGFuZCBzY2FsYXIgc3RhdGUKLSAqICAgICAgLSBhbGxvd3MgbWVtb3J5LWVmZmljaWVudCBkZXNjcmlwdGlvbiBvZiBzdGF0ZSB1cGRhdGVzCi0gKiAgICAgIC0gYWxsb3dzIHN0YXRlIHRvIGJlIGVtaXR0ZWQgd2l0aG91dCBhIHByaW1pdGl2ZQotICogICAgICAgICAgIChmb3IgY2xlYXJzLCBjdHggc3dpdGNoZXMpCi0gKiAgICAgIC0gYWxsb3dzIG1vcmUgdGhhbiBvbmUgZG1hIGJ1ZmZlciB0byBiZSByZWZlcmVuY2VkIHBlciBpb2N0bAotICogICAgICAtIHN1cHBvcnRzIHRjbCBkcml2ZXIKLSAqICAgICAgLSBtYXkgYmUgZXh0ZW5kZWQgaW4gZnV0dXJlIHZlcnNpb25zIHdpdGggbmV3IGNtZCB0eXBlcywgcGFja2V0cwotICovCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2NtZF9idWZmZXIgewotCWludCBidWZzejsKLQljaGFyIF9fdXNlciAqYnVmOwotCWludCBuYm94OwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IF9fdXNlciAqYm94ZXM7Ci19IGRybV9yYWRlb25fY21kX2J1ZmZlcl90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3RleF9pbWFnZSB7Ci0JdW5zaWduZWQgaW50IHgsIHk7CS8qIEJsaXQgY29vcmRpbmF0ZXMgKi8KLQl1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodDsKLQljb25zdCB2b2lkIF9fdXNlciAqZGF0YTsKLX0gZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl90ZXh0dXJlIHsKLQl1bnNpZ25lZCBpbnQgb2Zmc2V0OwotCWludCBwaXRjaDsKLQlpbnQgZm9ybWF0OwotCWludCB3aWR0aDsJCS8qIFRleHR1cmUgaW1hZ2UgY29vcmRpbmF0ZXMgKi8KLQlpbnQgaGVpZ2h0OwotCWRybV9yYWRlb25fdGV4X2ltYWdlX3QgX191c2VyICppbWFnZTsKLX0gZHJtX3JhZGVvbl90ZXh0dXJlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fc3RpcHBsZSB7Ci0JdW5zaWduZWQgaW50IF9fdXNlciAqbWFzazsKLX0gZHJtX3JhZGVvbl9zdGlwcGxlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faW5kaXJlY3QgewotCWludCBpZHg7Ci0JaW50IHN0YXJ0OwotCWludCBlbmQ7Ci0JaW50IGRpc2NhcmQ7Ci19IGRybV9yYWRlb25faW5kaXJlY3RfdDsKLQotLyogZW51bSBmb3IgY2FyZCB0eXBlIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUgUkFERU9OX0NBUkRfUENJIDAKLSNkZWZpbmUgUkFERU9OX0NBUkRfQUdQIDEKLSNkZWZpbmUgUkFERU9OX0NBUkRfUENJRSAyCi0KLS8qIDEuMzogQW4gaW9jdGwgdG8gZ2V0IHBhcmFtZXRlcnMgdGhhdCBhcmVuJ3QgYXZhaWxhYmxlIHRvIHRoZSAzZAotICogY2xpZW50IGFueSBvdGhlciB3YXkuCi0gKi8KLSNkZWZpbmUgUkFERU9OX1BBUkFNX0dBUlRfQlVGRkVSX09GRlNFVCAgICAxCS8qIGNhcmQgb2Zmc2V0IG9mIDFzdCBHQVJUIGJ1ZmZlciAqLwotI2RlZmluZSBSQURFT05fUEFSQU1fTEFTVF9GUkFNRSAgICAgICAgICAgIDIKLSNkZWZpbmUgUkFERU9OX1BBUkFNX0xBU1RfRElTUEFUQ0ggICAgICAgICAzCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9MQVNUX0NMRUFSICAgICAgICAgICAgNAotLyogQWRkZWQgd2l0aCBEUk0gdmVyc2lvbiAxLjYuICovCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9JUlFfTlIgICAgICAgICAgICAgICAgNQotI2RlZmluZSBSQURFT05fUEFSQU1fR0FSVF9CQVNFICAgICAgICAgICAgIDYJLyogY2FyZCBvZmZzZXQgb2YgR0FSVCBiYXNlICovCi0vKiBBZGRlZCB3aXRoIERSTSB2ZXJzaW9uIDEuOC4gKi8KLSNkZWZpbmUgUkFERU9OX1BBUkFNX1JFR0lTVEVSX0hBTkRMRSAgICAgICA3CS8qIGZvciBkcm1NYXAoKSAqLwotI2RlZmluZSBSQURFT05fUEFSQU1fU1RBVFVTX0hBTkRMRSAgICAgICAgIDgKLSNkZWZpbmUgUkFERU9OX1BBUkFNX1NBUkVBX0hBTkRMRSAgICAgICAgICA5Ci0jZGVmaW5lIFJBREVPTl9QQVJBTV9HQVJUX1RFWF9IQU5ETEUgICAgICAgMTAKLSNkZWZpbmUgUkFERU9OX1BBUkFNX1NDUkFUQ0hfT0ZGU0VUICAgICAgICAxMQotI2RlZmluZSBSQURFT05fUEFSQU1fQ0FSRF9UWVBFICAgICAgICAgICAgIDEyCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9WQkxBTktfQ1JUQyAgICAgICAgICAgMTMgICAvKiBWQkxBTksgQ1JUQyAqLwotI2RlZmluZSBSQURFT05fUEFSQU1fRkJfTE9DQVRJT04gICAgICAgICAgIDE0ICAgLyogRkIgbG9jYXRpb24gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9nZXRwYXJhbSB7Ci0JaW50IHBhcmFtOwotCXZvaWQgX191c2VyICp2YWx1ZTsKLX0gZHJtX3JhZGVvbl9nZXRwYXJhbV90OwotCi0vKiAxLjY6IFNldCB1cCBhIG1lbW9yeSBtYW5hZ2VyIGZvciByZWdpb25zIG9mIHNoYXJlZCBtZW1vcnk6Ci0gKi8KLSNkZWZpbmUgUkFERU9OX01FTV9SRUdJT05fR0FSVCAxCi0jZGVmaW5lIFJBREVPTl9NRU1fUkVHSU9OX0ZCICAgMgotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX21lbV9hbGxvYyB7Ci0JaW50IHJlZ2lvbjsKLQlpbnQgYWxpZ25tZW50OwotCWludCBzaXplOwotCWludCBfX3VzZXIgKnJlZ2lvbl9vZmZzZXQ7CS8qIG9mZnNldCBmcm9tIHN0YXJ0IG9mIGZiIG9yIEdBUlQgKi8KLX0gZHJtX3JhZGVvbl9tZW1fYWxsb2NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1fZnJlZSB7Ci0JaW50IHJlZ2lvbjsKLQlpbnQgcmVnaW9uX29mZnNldDsKLX0gZHJtX3JhZGVvbl9tZW1fZnJlZV90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX21lbV9pbml0X2hlYXAgewotCWludCByZWdpb247Ci0JaW50IHNpemU7Ci0JaW50IHN0YXJ0OwotfSBkcm1fcmFkZW9uX21lbV9pbml0X2hlYXBfdDsKLQotLyogMS42OiBVc2Vyc3BhY2UgY2FuIHJlcXVlc3QgJiB3YWl0IG9uIGlycSdzOgotICovCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2lycV9lbWl0IHsKLQlpbnQgX191c2VyICppcnFfc2VxOwotfSBkcm1fcmFkZW9uX2lycV9lbWl0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faXJxX3dhaXQgewotCWludCBpcnFfc2VxOwotfSBkcm1fcmFkZW9uX2lycV93YWl0X3Q7Ci0KLS8qIDEuMTA6IENsaWVudHMgdGVsbCB0aGUgRFJNIHdoZXJlIHRoZXkgdGhpbmsgdGhlIGZyYW1lYnVmZmVyIGlzIGxvY2F0ZWQgaW4KLSAqIHRoZSBjYXJkJ3MgYWRkcmVzcyBzcGFjZSwgdmlhIGEgbmV3IGdlbmVyaWMgaW9jdGwgdG8gc2V0IHBhcmFtZXRlcnMKLSAqLwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3NldHBhcmFtIHsKLQl1bnNpZ25lZCBpbnQgcGFyYW07Ci0JaW50NjRfdCB2YWx1ZTsKLX0gZHJtX3JhZGVvbl9zZXRwYXJhbV90OwotCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9GQl9MT0NBVElPTiAgICAxCS8qIGRldGVybWluZWQgZnJhbWVidWZmZXIgbG9jYXRpb24gKi8KLSNkZWZpbmUgUkFERU9OX1NFVFBBUkFNX1NXSVRDSF9USUxJTkcgIDIJLyogZW5hYmxlL2Rpc2FibGUgY29sb3IgdGlsaW5nICovCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX0xPQ0FUSU9OIDMJLyogUENJIEdhcnQgTG9jYXRpb24gKi8KLSNkZWZpbmUgUkFERU9OX1NFVFBBUkFNX05FV19NRU1NQVAgNAkJLyogVXNlIG5ldyBtZW1vcnkgbWFwICovCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX1RBQkxFX1NJWkUgNSAgICAvKiBQQ0kgR0FSVCBUYWJsZSBTaXplICovCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9WQkxBTktfQ1JUQyA2ICAgICAgICAgICAvKiBWQkxBTksgQ1JUQyAqLwotLyogMS4xNDogQ2xpZW50cyBjYW4gYWxsb2NhdGUvZnJlZSBhIHN1cmZhY2UKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jIHsKLQl1bnNpZ25lZCBpbnQgYWRkcmVzczsKLQl1bnNpZ25lZCBpbnQgc2l6ZTsKLQl1bnNpZ25lZCBpbnQgZmxhZ3M7Ci19IGRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3N1cmZhY2VfZnJlZSB7Ci0JdW5zaWduZWQgaW50IGFkZHJlc3M7Ci19IGRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3Q7Ci0KLSNkZWZpbmUJRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEJCTEKLSNkZWZpbmUJRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIJCTIKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9kcnYuaCBiL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2Rydi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzNhZTYyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2Rydi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI5OSArMCwwIEBACi0vKiByYWRlb25fZHJ2LmggLS0gUHJpdmF0ZSBoZWFkZXIgZm9yIHJhZGVvbiBkcml2ZXIgLSotIGxpbnV4LWMgLSotCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgRnJlbW9udCwgQ2FsaWZvcm5pYS4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIEF1dGhvcnM6Ci0gKiAgICBLZXZpbiBFLiBNYXJ0aW4gPG1hcnRpbkB2YWxpbnV4LmNvbT4KLSAqICAgIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0jaWZuZGVmIF9fUkFERU9OX0RSVl9IX18KLSNkZWZpbmUgX19SQURFT05fRFJWX0hfXwotCi0vKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246Ci0gKi8KLQotI2RlZmluZSBEUklWRVJfQVVUSE9SCQkiR2FyZXRoIEh1Z2hlcywgS2VpdGggV2hpdHdlbGwsIG90aGVycy4iCi0KLSNkZWZpbmUgRFJJVkVSX05BTUUJCSJyYWRlb24iCi0jZGVmaW5lIERSSVZFUl9ERVNDCQkiQVRJIFJhZGVvbiIKLSNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDA2MDUyNCIKLQotLyogSW50ZXJmYWNlIGhpc3Rvcnk6Ci0gKgotICogMS4xIC0gPz8KLSAqIDEuMiAtIEFkZCB2ZXJ0ZXgyIGlvY3RsIChrZWl0aCkKLSAqICAgICAtIEFkZCBzdGVuY2lsIGNhcGFiaWxpdHkgdG8gY2xlYXIgaW9jdGwgKGdhcmV0aCwga2VpdGgpCi0gKiAgICAgLSBJbmNyZWFzZSBNQVhfVEVYVFVSRV9MRVZFTFMgKGJyaWFuKQotICogMS4zIC0gQWRkIGNtZGJ1ZiBpb2N0bCAoa2VpdGgpCi0gKiAgICAgLSBBZGQgc3VwcG9ydCBmb3IgbmV3IHJhZGVvbiBwYWNrZXRzIChrZWl0aCkKLSAqICAgICAtIEFkZCBnZXRwYXJhbSBpb2N0bCAoa2VpdGgpCi0gKiAgICAgLSBBZGQgZmxpcC1idWZmZXJzIGlvY3RsLCBkZXByZWNhdGUgZnVsbHNjcmVlbiBmb28gKGtlaXRoKS4KLSAqIDEuNCAtIEFkZCBzY3JhdGNoIHJlZ2lzdGVycyB0byBnZXRfcGFyYW0gaW9jdGwuCi0gKiAxLjUgLSBBZGQgcjIwMCBwYWNrZXRzIHRvIGNtZGJ1ZiBpb2N0bAotICogICAgIC0gQWRkIHIyMDAgZnVuY3Rpb24gdG8gaW5pdCBpb2N0bAotICogICAgIC0gQWRkICdzY2FsYXIyJyBpbnN0cnVjdGlvbiB0byBjbWRidWYKLSAqIDEuNiAtIEFkZCBzdGF0aWMgR0FSVCBtZW1vcnkgbWFuYWdlcgotICogICAgICAgQWRkIGlycSBoYW5kbGVyICh3b24ndCBiZSB0dXJuZWQgb24gdW5sZXNzIFggc2VydmVyIGtub3dzIHRvKQotICogICAgICAgQWRkIGlycSBpb2N0bHMgYW5kIGlycV9hY3RpdmUgZ2V0cGFyYW0uCi0gKiAgICAgICBBZGQgd2FpdCBjb21tYW5kIGZvciBjbWRidWYgaW9jdGwKLSAqICAgICAgIEFkZCBHQVJUIG9mZnNldCBxdWVyeSBmb3IgZ2V0cGFyYW0KLSAqIDEuNyAtIEFkZCBzdXBwb3J0IGZvciBjdWJlIG1hcCByZWdpc3RlcnM6IFIyMDBfUFBfQ1VCSUNfRkFDRVNfWzAuLjVdCi0gKiAgICAgICBhbmQgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfWzAuLjVdLgotICogICAgICAgQWRkZWQgcGFja2V0cyBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfWzAuLjVdIGFuZAotICogICAgICAgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfWzAuLjVdLiAgKGJyaWFuKQotICogMS44IC0gUmVtb3ZlIG5lZWQgdG8gY2FsbCBjbGVhbnVwIGlvY3RscyBvbiBsYXN0IGNsaWVudCBleGl0IChrZWl0aCkKLSAqICAgICAgIEFkZCAnR0VUJyBxdWVyaWVzIGZvciBzdGFydGluZyBhZGRpdGlvbmFsIGNsaWVudHMgb24gZGlmZmVyZW50IFZUJ3MuCi0gKiAxLjkgLSBBZGQgRFJNX0lPQ1RMX1JBREVPTl9DUF9SRVNVTUUgaW9jdGwuCi0gKiAgICAgICBBZGQgdGV4dHVyZSByZWN0YW5nbGUgc3VwcG9ydCBmb3IgcjEwMC4KLSAqIDEuMTAtIEFkZCBTRVRQQVJBTSBpb2N0bDsgZmlyc3QgcGFyYW1ldGVyIHRvIHNldCBpcyBGQl9MT0NBVElPTiwgd2hpY2gKLSAqICAgICAgIGNsaWVudHMgdXNlIHRvIHRlbGwgdGhlIERSTSB3aGVyZSB0aGV5IHRoaW5rIHRoZSBmcmFtZWJ1ZmZlciBpcwotICogICAgICAgbG9jYXRlZCBpbiB0aGUgY2FyZCdzIGFkZHJlc3Mgc3BhY2UKLSAqIDEuMTEtIEFkZCBwYWNrZXQgUjIwMF9FTUlUX1JCM0RfQkxFTkRDT0xPUiB0byBzdXBwb3J0IEdMX0VYVF9ibGVuZF9jb2xvcgotICogICAgICAgYW5kIEdMX0VYVF9ibGVuZF9bZnVuY3xlcXVhdGlvbl1fc2VwYXJhdGUgb24gcjIwMAotICogMS4xMi0gQWRkIFIzMDAgQ1AgbWljcm9jb2RlIHN1cHBvcnQgLSB0aGlzIGp1c3QgbG9hZHMgdGhlIENQIG9uIHIzMDAKLSAqICAgICAgIChObyAzRCBzdXBwb3J0IHlldCAtIGp1c3QgbWljcm9jb2RlIGxvYWRpbmcpLgotICogMS4xMy0gQWRkIHBhY2tldCBSMjAwX0VNSVRfVENMX1BPSU5UX1NQUklURV9DTlRMIGZvciBBUkJfcG9pbnRfcGFyYW1ldGVycwotICogICAgIC0gQWRkIGh5cGVyeiBzdXBwb3J0LCBhZGQgaHlwZXJ6IGZsYWdzIHRvIGNsZWFyIGlvY3RsLgotICogMS4xNC0gQWRkIHN1cHBvcnQgZm9yIGNvbG9yIHRpbGluZwotICogICAgIC0gQWRkIFIxMDAvUjIwMCBzdXJmYWNlIGFsbG9jYXRpb24vZnJlZSBzdXBwb3J0Ci0gKiAxLjE1LSBBZGQgc3VwcG9ydCBmb3IgdGV4dHVyZSBtaWNybyB0aWxpbmcKLSAqICAgICAtIEFkZCBzdXBwb3J0IGZvciByMTAwIGN1YmUgbWFwcwotICogMS4xNi0gQWRkIFIyMDBfRU1JVF9QUF9UUklfUEVSRl9DTlRMIHBhY2tldCB0byBzdXBwb3J0IGJyaWxpbmVhcgotICogICAgICAgdGV4dHVyZSBmaWx0ZXJpbmcgb24gcjIwMAotICogMS4xNy0gQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgUjMwMCAoM0QpLgotICogMS4xOC0gQWRkIHN1cHBvcnQgZm9yIEdMX0FUSV9mcmFnbWVudF9zaGFkZXIsIG5ldyBwYWNrZXRzCi0gKiAgICAgICBSMjAwX0VNSVRfUFBfQUZTXzAvMSwgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzAtNSAocmVwbGFjZXMKLSAqICAgICAgIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8wLTUsIDIgbW9yZSByZWdzKSBhbmQgUjIwMF9FTUlUX0FURl9URkFDVE9SCi0gKiAgICAgICAocmVwbGFjZXMgUjIwMF9FTUlUX1RGQUNUT1JfMCAoOCBjb25zdHMgaW5zdGVhZCBvZiA2KQotICogMS4xOS0gQWRkIHN1cHBvcnQgZm9yIGdhcnQgdGFibGUgaW4gRkIgbWVtb3J5IGFuZCBQQ0lFIHIzMDAKLSAqIDEuMjAtIEFkZCBzdXBwb3J0IGZvciByMzAwIHRleHJlY3QKLSAqIDEuMjEtIEFkZCBzdXBwb3J0IGZvciBjYXJkIHR5cGUgZ2V0cGFyYW0KLSAqIDEuMjItIEFkZCBzdXBwb3J0IGZvciB0ZXh0dXJlIGNhY2hlIGZsdXNoZXMgKFIzMDBfVFhfQ05UTCkKLSAqIDEuMjMtIEFkZCBuZXcgcmFkZW9uIG1lbW9yeSBtYXAgd29yayBmcm9tIGJlbmgKLSAqIDEuMjQtIEFkZCBnZW5lcmFsLXB1cnBvc2UgcGFja2V0IGZvciBtYW5pcHVsYXRpbmcgc2NyYXRjaCByZWdpc3RlcnMgKHIzMDApCi0gKiAxLjI1LSBBZGQgc3VwcG9ydCBmb3IgcjIwMCB2ZXJ0ZXggcHJvZ3JhbXMgKFIyMDBfRU1JVF9WQVBfUFZTX0NOVEwsCi0gKiAgICAgICBuZXcgcGFja2V0IHR5cGUpCi0gKiAxLjI2LSBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUgc2l6ZSBQQ0koRSkgZ2FydCBhcGVydHVyZQotICogMS4yNy0gQWRkIHN1cHBvcnQgZm9yIElHUCBHQVJUCi0gKiAxLjI4LSBBZGQgc3VwcG9ydCBmb3IgVkJMIG9uIENSVEMyCi0gKi8KLSNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCi0jZGVmaW5lIERSSVZFUl9NSU5PUgkJMjgKLSNkZWZpbmUgRFJJVkVSX1BBVENITEVWRUwJMAotCi0vKgotICogUmFkZW9uIGNoaXAgZmFtaWxpZXMKLSAqLwotZW51bSByYWRlb25fZmFtaWx5IHsKLQlDSElQX1IxMDAsCi0JQ0hJUF9SVjEwMCwKLQlDSElQX1JTMTAwLAotCUNISVBfUlYyMDAsCi0JQ0hJUF9SUzIwMCwKLQlDSElQX1IyMDAsCi0JQ0hJUF9SVjI1MCwKLQlDSElQX1JTMzAwLAotCUNISVBfUlYyODAsCi0JQ0hJUF9SMzAwLAotCUNISVBfUjM1MCwKLQlDSElQX1JWMzUwLAotCUNISVBfUlYzODAsCi0JQ0hJUF9SNDIwLAotCUNISVBfUlY0MTAsCi0JQ0hJUF9SUzQwMCwKLQlDSElQX1JTNjkwLAotCUNISVBfUlY1MTUsCi0JQ0hJUF9SNTIwLAotCUNISVBfUlY1MzAsCi0JQ0hJUF9SVjU2MCwKLQlDSElQX1JWNTcwLAotCUNISVBfUjU4MCwKLQlDSElQX0xBU1QsCi19OwotCi1lbnVtIHJhZGVvbl9jcF9taWNyb2NvZGVfdmVyc2lvbiB7Ci0JVUNPREVfUjEwMCwKLQlVQ09ERV9SMjAwLAotCVVDT0RFX1IzMDAsCi19OwotCi0vKgotICogQ2hpcCBmbGFncwotICovCi1lbnVtIHJhZGVvbl9jaGlwX2ZsYWdzIHsKLQlSQURFT05fRkFNSUxZX01BU0sgPSAweDAwMDBmZmZmVUwsCi0JUkFERU9OX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCi0JUkFERU9OX0lTX01PQklMSVRZID0gMHgwMDAxMDAwMFVMLAotCVJBREVPTl9JU19JR1AgPSAweDAwMDIwMDAwVUwsCi0JUkFERU9OX1NJTkdMRV9DUlRDID0gMHgwMDA0MDAwMFVMLAotCVJBREVPTl9JU19BR1AgPSAweDAwMDgwMDAwVUwsCi0JUkFERU9OX0hBU19ISUVSWiA9IDB4MDAxMDAwMDBVTCwKLQlSQURFT05fSVNfUENJRSA9IDB4MDAyMDAwMDBVTCwKLQlSQURFT05fTkVXX01FTU1BUCA9IDB4MDA0MDAwMDBVTCwKLQlSQURFT05fSVNfUENJID0gMHgwMDgwMDAwMFVMLAotCVJBREVPTl9JU19JR1BHQVJUID0gMHgwMTAwMDAwMFVMLAotfTsKLQotI2RlZmluZSBHRVRfUklOR19IRUFEKGRldl9wcml2KQkoZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA/IFwKLSAgICAgICAgRFJNX1JFQUQzMiggIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCApIDogUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpKQotI2RlZmluZSBTRVRfUklOR19IRUFEKGRldl9wcml2LHZhbCkJRFJNX1dSSVRFMzIoIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCwgKHZhbCkgKQotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2ZyZWVsaXN0IHsKLQl1bnNpZ25lZCBpbnQgYWdlOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0Jc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKm5leHQ7Ci0Jc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKnByZXY7Ci19IGRybV9yYWRlb25fZnJlZWxpc3RfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9yaW5nX2J1ZmZlciB7Ci0JdTMyICpzdGFydDsKLQl1MzIgKmVuZDsKLQlpbnQgc2l6ZTsKLQlpbnQgc2l6ZV9sMnF3OwotCi0JaW50IHJwdHJfdXBkYXRlOyAvKiBEb3VibGUgV29yZHMgKi8KLQlpbnQgcnB0cl91cGRhdGVfbDJxdzsgLyogbG9nMiBRdWFkIFdvcmRzICovCi0KLQlpbnQgZmV0Y2hfc2l6ZTsgLyogRG91YmxlIFdvcmRzICovCi0JaW50IGZldGNoX3NpemVfbDJvdzsgLyogbG9nMiBPY3QgV29yZHMgKi8KLQotCXUzMiB0YWlsOwotCXUzMiB0YWlsX21hc2s7Ci0JaW50IHNwYWNlOwotCi0JaW50IGhpZ2hfbWFyazsKLX0gZHJtX3JhZGVvbl9yaW5nX2J1ZmZlcl90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgewotCXUzMiByYjNkX2NudGw7Ci0JdTMyIHJiM2RfenN0ZW5jaWxjbnRsOwotCXUzMiBzZV9jbnRsOwotfSBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3Q7Ci0KLXN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyB7Ci0JaW50NjRfdCByYWRlb25fZmJfZGVsdGE7Ci19OwotCi1zdHJ1Y3QgbWVtX2Jsb2NrIHsKLQlzdHJ1Y3QgbWVtX2Jsb2NrICpuZXh0OwotCXN0cnVjdCBtZW1fYmxvY2sgKnByZXY7Ci0JaW50IHN0YXJ0OwotCWludCBzaXplOwotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OyAvKiBOVUxMOiBmcmVlLCAtMTogaGVhcCwgb3RoZXI6IHJlYWwgZmlsZXMgKi8KLX07Ci0KLXN0cnVjdCByYWRlb25fc3VyZmFjZSB7Ci0JaW50IHJlZmNvdW50OwotCXUzMiBsb3dlcjsKLQl1MzIgdXBwZXI7Ci0JdTMyIGZsYWdzOwotfTsKLQotc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgewotCWludCBzdXJmYWNlX2luZGV4OwotCXUzMiBsb3dlcjsKLQl1MzIgdXBwZXI7Ci0JdTMyIGZsYWdzOwotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9wcml2YXRlIHsKLQlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgcmluZzsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXY7Ci0KLQl1MzIgZmJfbG9jYXRpb247Ci0JdTMyIGZiX3NpemU7Ci0JaW50IG5ld19tZW1tYXA7Ci0KLQlpbnQgZ2FydF9zaXplOwotCXUzMiBnYXJ0X3ZtX3N0YXJ0OwotCXVuc2lnbmVkIGxvbmcgZ2FydF9idWZmZXJzX29mZnNldDsKLQotCWludCBjcF9tb2RlOwotCWludCBjcF9ydW5uaW5nOwotCi0JZHJtX3JhZGVvbl9mcmVlbGlzdF90ICpoZWFkOwotCWRybV9yYWRlb25fZnJlZWxpc3RfdCAqdGFpbDsKLQlpbnQgbGFzdF9idWY7Ci0Jdm9sYXRpbGUgdTMyICpzY3JhdGNoOwotCWludCB3cml0ZWJhY2tfd29ya3M7Ci0KLQlpbnQgdXNlY190aW1lb3V0OwotCi0JaW50IG1pY3JvY29kZV92ZXJzaW9uOwotCi0Jc3RydWN0IHsKLQkJdTMyIGJveGVzOwotCQlpbnQgZnJlZWxpc3RfdGltZW91dHM7Ci0JCWludCBmcmVlbGlzdF9sb29wczsKLQkJaW50IHJlcXVlc3RlZF9idWZzOwotCQlpbnQgbGFzdF9mcmFtZV9yZWFkczsKLQkJaW50IGxhc3RfY2xlYXJfcmVhZHM7Ci0JCWludCBjbGVhcnM7Ci0JCWludCB0ZXh0dXJlX3VwbG9hZHM7Ci0JfSBzdGF0czsKLQotCWludCBkb19ib3hlczsKLQlpbnQgcGFnZV9mbGlwcGluZzsKLQotCXUzMiBjb2xvcl9mbXQ7Ci0JdW5zaWduZWQgaW50IGZyb250X29mZnNldDsKLQl1bnNpZ25lZCBpbnQgZnJvbnRfcGl0Y2g7Ci0JdW5zaWduZWQgaW50IGJhY2tfb2Zmc2V0OwotCXVuc2lnbmVkIGludCBiYWNrX3BpdGNoOwotCi0JdTMyIGRlcHRoX2ZtdDsKLQl1bnNpZ25lZCBpbnQgZGVwdGhfb2Zmc2V0OwotCXVuc2lnbmVkIGludCBkZXB0aF9waXRjaDsKLQotCXUzMiBmcm9udF9waXRjaF9vZmZzZXQ7Ci0JdTMyIGJhY2tfcGl0Y2hfb2Zmc2V0OwotCXUzMiBkZXB0aF9waXRjaF9vZmZzZXQ7Ci0KLQlkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgZGVwdGhfY2xlYXI7Ci0KLQl1bnNpZ25lZCBsb25nIHJpbmdfb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgcmluZ19ycHRyX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIGJ1ZmZlcnNfb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgZ2FydF90ZXh0dXJlc19vZmZzZXQ7Ci0KLQlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOwotCWRybV9sb2NhbF9tYXBfdCAqbW1pbzsKLQlkcm1fbG9jYWxfbWFwX3QgKmNwX3Jpbmc7Ci0JZHJtX2xvY2FsX21hcF90ICpyaW5nX3JwdHI7Ci0JZHJtX2xvY2FsX21hcF90ICpnYXJ0X3RleHR1cmVzOwotCi0Jc3RydWN0IG1lbV9ibG9jayAqZ2FydF9oZWFwOwotCXN0cnVjdCBtZW1fYmxvY2sgKmZiX2hlYXA7Ci0KLQkvKiBTVyBpbnRlcnJ1cHQgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBzd2lfcXVldWU7Ci0JYXRvbWljX3Qgc3dpX2VtaXR0ZWQ7Ci0JaW50IHZibGFua19jcnRjOwotCXVpbnQzMl90IGlycV9lbmFibGVfcmVnOwotCWludCBpcnFfZW5hYmxlZDsKLQotCXN0cnVjdCByYWRlb25fc3VyZmFjZSBzdXJmYWNlc1tSQURFT05fTUFYX1NVUkZBQ0VTXTsKLQlzdHJ1Y3QgcmFkZW9uX3ZpcnRfc3VyZmFjZSB2aXJ0X3N1cmZhY2VzWzIgKiBSQURFT05fTUFYX1NVUkZBQ0VTXTsKLQotCXVuc2lnbmVkIGxvbmcgcGNpZ2FydF9vZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHBjaWdhcnRfb2Zmc2V0X3NldDsKLQlzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gZ2FydF9pbmZvOwotCi0JdTMyIHNjcmF0Y2hfYWdlc1s1XTsKLQotCS8qIHN0YXJ0aW5nIGZyb20gaGVyZSBvbiwgZGF0YSBpcyBwcmVzZXJ2ZWQgYWNjcm9zcyBhbiBvcGVuICovCi0JdWludDMyX3QgZmxhZ3M7CQkvKiBzZWUgcmFkZW9uX2NoaXBfZmxhZ3MgKi8KLQl1bnNpZ25lZCBsb25nIGZiX2FwZXJfb2Zmc2V0OwotfSBkcm1fcmFkZW9uX3ByaXZhdGVfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9idWZfcHJpdiB7Ci0JdTMyIGFnZTsKLX0gZHJtX3JhZGVvbl9idWZfcHJpdl90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyIHsKLQlpbnQgYnVmc3o7Ci0JY2hhciAqYnVmOwotCWludCBuYm94OwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IF9fdXNlciAqYm94ZXM7Ci19IGRybV9yYWRlb25fa2NtZF9idWZmZXJfdDsKLQotZXh0ZXJuIGludCByYWRlb25fbm9fd2I7Ci1leHRlcm4gc3RydWN0IGRybV9pb2N0bF9kZXNjIHJhZGVvbl9pb2N0bHNbXTsKLWV4dGVybiBpbnQgcmFkZW9uX21heF9pb2N0bDsKLQotLyogQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gaGFyZHdhcmUgYWRkcmVzcyBpcyBpbnNpZGUgdGhlIGZyYW1lYnVmZmVyIG9yIHRoZQotICogR0FSVCBhcmVhLgotICovCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2NoZWNrX29mZnNldChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgdTY0IG9mZikKLXsKLQl1MzIgZmJfc3RhcnQgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247Ci0JdTMyIGZiX2VuZCA9IGZiX3N0YXJ0ICsgZGV2X3ByaXYtPmZiX3NpemUgLSAxOwotCXUzMiBnYXJ0X3N0YXJ0ID0gZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7Ci0JdTMyIGdhcnRfZW5kID0gZ2FydF9zdGFydCArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxOwotCi0JcmV0dXJuICgob2ZmID49IGZiX3N0YXJ0ICYmIG9mZiA8PSBmYl9lbmQpIHx8Ci0JCShvZmYgPj0gZ2FydF9zdGFydCAmJiBvZmYgPD0gZ2FydF9lbmQpKTsKLX0KLQotCQkJCS8qIHJhZGVvbl9jcC5jICovCi1leHRlcm4gaW50IHJhZGVvbl9jcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2NwX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2NwX3N0b3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fY3BfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fY3BfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IHJhZGVvbl9jcF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2Z1bGxzY3JlZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fY3BfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gdTMyIHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdik7Ci0KLWV4dGVybiB2b2lkIHJhZGVvbl9mcmVlbGlzdF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gc3RydWN0IGRybV9idWYgKnJhZGVvbl9mcmVlbGlzdF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotCi1leHRlcm4gaW50IHJhZGVvbl93YWl0X3JpbmcoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG4pOwotCi1leHRlcm4gaW50IHJhZGVvbl9kb19jcF9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpOwotCi1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfcHJlaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKLWV4dGVybiBpbnQgcmFkZW9uX3ByZXNldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3Bvc3RjbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1leHRlcm4gaW50IHJhZGVvbl9tZW1fYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fbWVtX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fbWVtX2luaXRfaGVhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gdm9pZCByYWRlb25fbWVtX3Rha2Vkb3duKHN0cnVjdCBtZW1fYmxvY2sgKipoZWFwKTsKLWV4dGVybiB2b2lkIHJhZGVvbl9tZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCSAgICAgICBzdHJ1Y3QgbWVtX2Jsb2NrICpoZWFwKTsKLQotCQkJCS8qIHJhZGVvbl9pcnEuYyAqLwotZXh0ZXJuIGludCByYWRlb25faXJxX2VtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25faXJxX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi1leHRlcm4gdm9pZCByYWRlb25fZG9fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJICAgICB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLWV4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJICAgICAgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7Ci1leHRlcm4gaXJxcmV0dXJuX3QgcmFkZW9uX2RyaXZlcl9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gdm9pZCByYWRlb25fZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gdm9pZCByYWRlb25fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludDY0X3QgdmFsdWUpOwotCi1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKLWV4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfZmlyc3RvcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHApOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHBfcHJpdik7Ci1leHRlcm4gbG9uZyByYWRlb25fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJCXVuc2lnbmVkIGxvbmcgYXJnKTsKLQotLyogcjMwMF9jbWRidWYuYyAqLwotZXh0ZXJuIHZvaWQgcjMwMF9pbml0X3JlZ19mbGFncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLQotZXh0ZXJuIGludCByMzAwX2RvX2NwX2NtZGJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKLQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqIGNtZGJ1Zik7Ci0KLS8qIEZsYWdzIGZvciBzdGF0cy5ib3hlcwotICovCi0jZGVmaW5lIFJBREVPTl9CT1hfRE1BX0lETEUgICAgICAweDEKLSNkZWZpbmUgUkFERU9OX0JPWF9SSU5HX0ZVTEwgICAgIDB4MgotI2RlZmluZSBSQURFT05fQk9YX0ZMSVAgICAgICAgICAgMHg0Ci0jZGVmaW5lIFJBREVPTl9CT1hfV0FJVF9JRExFICAgICAweDgKLSNkZWZpbmUgUkFERU9OX0JPWF9URVhUVVJFX0xPQUQgIDB4MTAKLQotLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMsIHJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgYW5kIGRybUFkZE1hcCBjb25zdGFudHMKLSAqIGZvciBSYWRlb24ga2VybmVsIGRyaXZlci4KLSAqLwotCi0jZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORAkJMHgwZjYwCi0jZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORF9QQ0lfQ09ORklHICAgMHgwMDYwCS8qIG9mZnNldCBpbiBQQ0kgY29uZmlnICovCi0jCWRlZmluZSBSQURFT05fQUdQX0VOQUJMRQkoMTw8OCkKLSNkZWZpbmUgUkFERU9OX0FVWF9TQ0lTU09SX0NOVEwJCTB4MjZmMAotIwlkZWZpbmUgUkFERU9OX0VYQ0xVU0lWRV9TQ0lTU09SXzAJKDEgPDwgMjQpCi0jCWRlZmluZSBSQURFT05fRVhDTFVTSVZFX1NDSVNTT1JfMQkoMSA8PCAyNSkKLSMJZGVmaW5lIFJBREVPTl9FWENMVVNJVkVfU0NJU1NPUl8yCSgxIDw8IDI2KQotIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMF9FTkFCTEUJCSgxIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMV9FTkFCTEUJCSgxIDw8IDI5KQotIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMl9FTkFCTEUJCSgxIDw8IDMwKQotCi0jZGVmaW5lIFJBREVPTl9CVVNfQ05UTAkJCTB4MDAzMAotIwlkZWZpbmUgUkFERU9OX0JVU19NQVNURVJfRElTCQkoMSA8PCA2KQotCi0jZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0RBVEEJCTB4MDAwYwotIwlkZWZpbmUgUkFERU9OX1BMTF9XUl9FTgkJCSgxIDw8IDcpCi0jZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0lOREVYCQkweDAwMDgKLSNkZWZpbmUgUkFERU9OX0NPTkZJR19BUEVSX1NJWkUJCTB4MDEwOAotI2RlZmluZSBSQURFT05fQ09ORklHX01FTVNJWkUJCTB4MDBmOAotI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVQJCTB4MDIyNAotI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVRfQ05UTAkJMHgwMjI4Ci0jCWRlZmluZSBSQURFT05fQ1JUQ19USUxFX0VOCQkoMSA8PCAxNSkKLSMJZGVmaW5lIFJBREVPTl9DUlRDX09GRlNFVF9GTElQX0NOVEwJKDEgPDwgMTYpCi0jZGVmaW5lIFJBREVPTl9DUlRDMl9PRkZTRVQJCTB4MDMyNAotI2RlZmluZSBSQURFT05fQ1JUQzJfT0ZGU0VUX0NOVEwJMHgwMzI4Ci0KLSNkZWZpbmUgUkFERU9OX1BDSUVfSU5ERVggICAgICAgICAgICAgICAweDAwMzAKLSNkZWZpbmUgUkFERU9OX1BDSUVfREFUQSAgICAgICAgICAgICAgICAweDAwMzQKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMCTB4MTAKLSMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4JCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1VOTUFQUEVEX0FDQ0VTU19QQVNTX1RIUlUgKDA8PDEpCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1VOTUFQUEVEX0FDQ0VTU19DTEFNUF9MTyAgKDE8PDEpCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1VOTUFQUEVEX0FDQ0VTU19ESVNDQVJEICAgKDM8PDEpCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX01PREVfMzJfMTI4X0NBQ0hFCSgwPDwzKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9NT0RFXzhfNF8xMjhfQ0FDSEUJKDE8PDMpCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0NIS19SV19WQUxJRF9FTiAgICAgICgxPDw1KQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9JTlZBTElEQVRFX1RMQgkoMTw8OCkKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfRElTQ0FSRF9SRF9BRERSX0xPIDB4MTEKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfRElTQ0FSRF9SRF9BRERSX0hJIDB4MTIKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9CQVNFCTB4MTMKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9TVEFSVF9MTwkweDE0Ci0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfU1RBUlRfSEkJMHgxNQotI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0VORF9MTwkweDE2Ci0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0hJCTB4MTcKLQotI2RlZmluZSBSQURFT05fSUdQR0FSVF9JTkRFWCAgICAgICAgICAgIDB4MTY4Ci0jZGVmaW5lIFJBREVPTl9JR1BHQVJUX0RBVEEgICAgICAgICAgICAgMHgxNmMKLSNkZWZpbmUgUkFERU9OX0lHUEdBUlRfVU5LXzE4ICAgICAgICAgICAweDE4Ci0jZGVmaW5lIFJBREVPTl9JR1BHQVJUX0NUUkwgICAgICAgICAgICAgMHgyYgotI2RlZmluZSBSQURFT05fSUdQR0FSVF9CQVNFX0FERFIgICAgICAgIDB4MmMKLSNkZWZpbmUgUkFERU9OX0lHUEdBUlRfRkxVU0ggICAgICAgICAgICAweDJlCi0jZGVmaW5lIFJBREVPTl9JR1BHQVJUX0VOQUJMRSAgICAgICAgICAgMHgzOAotI2RlZmluZSBSQURFT05fSUdQR0FSVF9VTktfMzkgICAgICAgICAgIDB4MzkKLQotI2RlZmluZSBSUzY5MF9NQ19JTkRFWCAgICAgICAgICAgICAgICAgIDB4NzgKLSMgICBkZWZpbmUgUlM2OTBfTUNfSU5ERVhfTUFTSyAgICAgICAgICAweDFmZgotIyAgIGRlZmluZSBSUzY5MF9NQ19JTkRFWF9XUl9FTiAgICAgICAgICgxIDw8IDkpCi0jICAgZGVmaW5lIFJTNjkwX01DX0lOREVYX1dSX0FDSyAgICAgICAgMHg3ZgotI2RlZmluZSBSUzY5MF9NQ19EQVRBICAgICAgICAgICAgICAgICAgIDB4N2MKLQotI2RlZmluZSBSUzY5MF9NQ19NSVNDX0NOVEwgICAgICAgICAgICAgIDB4MTgKLSNkZWZpbmUgUlM2OTBfTUNfR0FSVF9GRUFUVVJFX0lEICAgICAgICAweDJiCi0jZGVmaW5lIFJTNjkwX01DX0dBUlRfQkFTRSAgICAgICAgICAgICAgMHgyYwotI2RlZmluZSBSUzY5MF9NQ19HQVJUX0NBQ0hFX0NOVEwJMHgyZQotIyAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0NDX05PX0NIQU5HRSAgIDB4MAotIyAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0NDX0NMRUFSICAgICAgIDB4MQotIyAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0NMRUFSX1NUQVRVUyAgICgxIDw8IDEpCi0jICAgICAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0NMRUFSX0RPTkUgICAgICgwIDw8IDEpCi0jICAgICAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0NMRUFSX1BFTkRJTkcgICgxIDw8IDEpCi0jZGVmaW5lIFJTNjkwX01DX0FHUF9TSVpFICAgICAgICAgICAgICAgMHgzOAotIyAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0RJUyAgICAgICAgICAgIDB4MAotIyAgIGRlZmluZSBSUzY5MF9NQ19HQVJUX0VOICAgICAgICAgICAgIDB4MQotIyAgIGRlZmluZSBSUzY5MF9NQ19BR1BfU0laRV8zMk1CICAgICAgICgwIDw8IDEpCi0jICAgZGVmaW5lIFJTNjkwX01DX0FHUF9TSVpFXzY0TUIgICAgICAgKDEgPDwgMSkKLSMgICBkZWZpbmUgUlM2OTBfTUNfQUdQX1NJWkVfMTI4TUIgICAgICAoMiA8PCAxKQotIyAgIGRlZmluZSBSUzY5MF9NQ19BR1BfU0laRV8yNTZNQiAgICAgICgzIDw8IDEpCi0jICAgZGVmaW5lIFJTNjkwX01DX0FHUF9TSVpFXzUxMk1CICAgICAgKDQgPDwgMSkKLSMgICBkZWZpbmUgUlM2OTBfTUNfQUdQX1NJWkVfMUdCICAgICAgICAoNSA8PCAxKQotIyAgIGRlZmluZSBSUzY5MF9NQ19BR1BfU0laRV8yR0IgICAgICAgICg2IDw8IDEpCi0jZGVmaW5lIFJTNjkwX01DX0FHUF9NT0RFX0NPTlRST0wgICAgICAgMHgzOQotI2RlZmluZSBSUzY5MF9NQ19GQl9MT0NBVElPTiAgICAgICAgICAgIDB4MTAwCi0jZGVmaW5lIFJTNjkwX01DX0FHUF9MT0NBVElPTiAgICAgICAgICAgMHgxMDEKLSNkZWZpbmUgUlM2OTBfTUNfQUdQX0JBU0UgICAgICAgICAgICAgICAweDEwMgotCi0jZGVmaW5lIFI1MjBfTUNfSU5EX0lOREVYIDB4NzAKLSNkZWZpbmUgUjUyMF9NQ19JTkRfV1JfRU4gKDE8PDI0KQotI2RlZmluZSBSNTIwX01DX0lORF9EQVRBICAweDc0Ci0KLSNkZWZpbmUgUlY1MTVfTUNfRkJfTE9DQVRJT04gMHgwMQotI2RlZmluZSBSVjUxNV9NQ19BR1BfTE9DQVRJT04gMHgwMgotCi0jZGVmaW5lIFI1MjBfTUNfRkJfTE9DQVRJT04gMHgwNAotI2RlZmluZSBSNTIwX01DX0FHUF9MT0NBVElPTiAweDA1Ci0KLSNkZWZpbmUgUkFERU9OX01QUF9UQl9DT05GSUcJCTB4MDFjMAotI2RlZmluZSBSQURFT05fTUVNX0NOVEwJCQkweDAxNDAKLSNkZWZpbmUgUkFERU9OX01FTV9TRFJBTV9NT0RFX1JFRwkweDAxNTgKLSNkZWZpbmUgUkFERU9OX0FHUF9CQVNFCQkJMHgwMTcwCi0KLSNkZWZpbmUgUkFERU9OX1JCM0RfQ09MT1JPRkZTRVQJCTB4MWM0MAotI2RlZmluZSBSQURFT05fUkIzRF9DT0xPUlBJVENICQkweDFjNDgKLQotI2RlZmluZQlSQURFT05fU1JDX1hfWQkJCTB4MTU5MAotCi0jZGVmaW5lIFJBREVPTl9EUF9HVUlfTUFTVEVSX0NOVEwJMHgxNDZjCi0jCWRlZmluZSBSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTAkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwJKDEgPDwgMSkKLSMJZGVmaW5lIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IJKDEzIDw8IDQpCi0jCWRlZmluZSBSQURFT05fR01DX0JSVVNIX05PTkUJCSgxNSA8PCA0KQotIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfMTZCUFAJCSg0IDw8IDgpCi0jCWRlZmluZSBSQURFT05fR01DX0RTVF8yNEJQUAkJKDUgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9HTUNfRFNUXzMyQlBQCQkoNiA8PCA4KQotIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfREFUQVRZUEVfU0hJRlQJOAotIwlkZWZpbmUgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IJKDMgPDwgMTIpCi0jCWRlZmluZSBSQURFT05fRFBfU1JDX1NPVVJDRV9NRU1PUlkJKDIgPDwgMjQpCi0jCWRlZmluZSBSQURFT05fRFBfU1JDX1NPVVJDRV9IT1NUX0RBVEEJKDMgPDwgMjQpCi0jCWRlZmluZSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMJKDEgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fR01DX1dSX01TS19ESVMJCSgxIDw8IDMwKQotIwlkZWZpbmUgUkFERU9OX1JPUDNfUwkJCTB4MDBjYzAwMDAKLSMJZGVmaW5lIFJBREVPTl9ST1AzX1AJCQkweDAwZjAwMDAwCi0jZGVmaW5lIFJBREVPTl9EUF9XUklURV9NQVNLCQkweDE2Y2MKLSNkZWZpbmUgUkFERU9OX1NSQ19QSVRDSF9PRkZTRVQJCTB4MTQyOAotI2RlZmluZSBSQURFT05fRFNUX1BJVENIX09GRlNFVAkJMHgxNDJjCi0jZGVmaW5lIFJBREVPTl9EU1RfUElUQ0hfT0ZGU0VUX0MJMHgxYzgwCi0jCWRlZmluZSBSQURFT05fRFNUX1RJTEVfTElORUFSCQkoMCA8PCAzMCkKLSMJZGVmaW5lIFJBREVPTl9EU1RfVElMRV9NQUNSTwkJKDEgPDwgMzApCi0jCWRlZmluZSBSQURFT05fRFNUX1RJTEVfTUlDUk8JCSgyIDw8IDMwKQotIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX0JPVEgJCSgzIDw8IDMwKQotCi0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzAJCTB4MTVlMAotI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUcxCQkweDE1ZTQKLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHMgkJMHgxNWU4Ci0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzMJCTB4MTVlYwotI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUc0CQkweDE1ZjAKLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHNQkJMHgxNWY0Ci0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1VNU0sJCTB4MDc3MAotI2RlZmluZSBSQURFT05fU0NSQVRDSF9BRERSCQkweDA3NzQKLQotI2RlZmluZSBSQURFT05fU0NSQVRDSE9GRiggeCApCQkoUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCArIDQqKHgpKQotCi0jZGVmaW5lIEdFVF9TQ1JBVENIKCB4ICkJKGRldl9wcml2LT53cml0ZWJhY2tfd29ya3MJCQlcCi0JCQkJPyBEUk1fUkVBRDMyKCBkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRih4KSApIFwKLQkJCQk6IFJBREVPTl9SRUFEKCBSQURFT05fU0NSQVRDSF9SRUcwICsgNCooeCkgKSApCi0KLSNkZWZpbmUgUkFERU9OX0dFTl9JTlRfQ05UTAkJMHgwMDQwCi0jCWRlZmluZSBSQURFT05fQ1JUQ19WQkxBTktfTUFTSwkJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfTUFTSwkJKDEgPDwgOSkKLSMJZGVmaW5lIFJBREVPTl9HVUlfSURMRV9JTlRfRU5BQkxFCSgxIDw8IDE5KQotIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9FTkFCTEUJCSgxIDw8IDI1KQotCi0jZGVmaW5lIFJBREVPTl9HRU5fSU5UX1NUQVRVUwkJMHgwMDQ0Ci0jCWRlZmluZSBSQURFT05fQ1JUQ19WQkxBTktfU1RBVAkJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUX0FDSwkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUCQkoMSA8PCA5KQotIwlkZWZpbmUgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUX0FDSwkoMSA8PCA5KQotIwlkZWZpbmUgUkFERU9OX0dVSV9JRExFX0lOVF9URVNUX0FDSyAgICAgKDEgPDwgMTkpCi0jCWRlZmluZSBSQURFT05fU1dfSU5UX1RFU1QJCSgxIDw8IDI1KQotIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9URVNUX0FDSwkJKDEgPDwgMjUpCi0jCWRlZmluZSBSQURFT05fU1dfSU5UX0ZJUkUJCSgxIDw8IDI2KQotCi0jZGVmaW5lIFJBREVPTl9IT1NUX1BBVEhfQ05UTAkJMHgwMTMwCi0jCWRlZmluZSBSQURFT05fSERQX1NPRlRfUkVTRVQJCSgxIDw8IDI2KQotIwlkZWZpbmUgUkFERU9OX0hEUF9XQ19USU1FT1VUX01BU0sJKDcgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fSERQX1dDX1RJTUVPVVRfMjhCQ0xLCSg3IDw8IDI4KQotCi0jZGVmaW5lIFJBREVPTl9JU1lOQ19DTlRMCQkweDE3MjQKLSMJZGVmaW5lIFJBREVPTl9JU1lOQ19BTlkyRF9JRExFM0QJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9JU1lOQ19BTlkzRF9JRExFMkQJKDEgPDwgMSkKLSMJZGVmaW5lIFJBREVPTl9JU1lOQ19UUklHMkRfSURMRTNECSgxIDw8IDIpCi0jCWRlZmluZSBSQURFT05fSVNZTkNfVFJJRzNEX0lETEUyRAkoMSA8PCAzKQotIwlkZWZpbmUgUkFERU9OX0lTWU5DX1dBSVRfSURMRUdVSQkoMSA8PCA0KQotIwlkZWZpbmUgUkFERU9OX0lTWU5DX0NQU0NSQVRDSF9JRExFR1VJCSgxIDw8IDUpCi0KLSNkZWZpbmUgUkFERU9OX1JCQk1fR1VJQ05UTAkJMHgxNzJjCi0jCWRlZmluZSBSQURFT05fSE9TVF9EQVRBX1NXQVBfTk9ORQkoMCA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQXzE2QklUCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fSE9TVF9EQVRBX1NXQVBfMzJCSVQJKDIgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9IT1NUX0RBVEFfU1dBUF9IRFcJKDMgPDwgMCkKLQotI2RlZmluZSBSQURFT05fTUNfQUdQX0xPQ0FUSU9OCQkweDAxNGMKLSNkZWZpbmUgUkFERU9OX01DX0ZCX0xPQ0FUSU9OCQkweDAxNDgKLSNkZWZpbmUgUkFERU9OX01DTEtfQ05UTAkJMHgwMDEyCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9NQ0xLQQkJKDEgPDwgMTYpCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9NQ0xLQgkJKDEgPDwgMTcpCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9ZQ0xLQQkJKDEgPDwgMTgpCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9ZQ0xLQgkJKDEgPDwgMTkpCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9NQwkJKDEgPDwgMjApCi0jCWRlZmluZSBSQURFT05fRk9SQ0VPTl9BSUMJCSgxIDw8IDIxKQotCi0jZGVmaW5lIFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMAkweDFkNDAKLSNkZWZpbmUgUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xCTB4MWQ0NAotI2RlZmluZSBSQURFT05fUFBfQk9SREVSX0NPTE9SXzIJMHgxZDQ4Ci0jZGVmaW5lIFJBREVPTl9QUF9DTlRMCQkJMHgxYzM4Ci0jCWRlZmluZSBSQURFT05fU0NJU1NPUl9FTkFCTEUJCSgxIDw8ICAxKQotI2RlZmluZSBSQURFT05fUFBfTFVNX01BVFJJWAkJMHgxZDAwCi0jZGVmaW5lIFJBREVPTl9QUF9NSVNDCQkJMHgxYzE0Ci0jZGVmaW5lIFJBREVPTl9QUF9ST1RfTUFUUklYXzAJCTB4MWQ1OAotI2RlZmluZSBSQURFT05fUFBfVFhGSUxURVJfMAkJMHgxYzU0Ci0jZGVmaW5lIFJBREVPTl9QUF9UWE9GRlNFVF8wCQkweDFjNWMKLSNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzEJCTB4MWM2YwotI2RlZmluZSBSQURFT05fUFBfVFhGSUxURVJfMgkJMHgxYzg0Ci0KLSNkZWZpbmUgUkFERU9OX1JCMkRfRFNUQ0FDSEVfQ1RMU1RBVAkweDM0MmMKLSMJZGVmaW5lIFJBREVPTl9SQjJEX0RDX0ZMVVNICQkoMyA8PCAwKQotIwlkZWZpbmUgUkFERU9OX1JCMkRfRENfRlJFRQkJKDMgPDwgMikKLSMJZGVmaW5lIFJBREVPTl9SQjJEX0RDX0ZMVVNIX0FMTAkJMHhmCi0jCWRlZmluZSBSQURFT05fUkIyRF9EQ19CVVNZCQkoMSA8PCAzMSkKLSNkZWZpbmUgUkFERU9OX1JCM0RfQ05UTAkJMHgxYzNjCi0jCWRlZmluZSBSQURFT05fQUxQSEFfQkxFTkRfRU5BQkxFCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fUExBTkVfTUFTS19FTkFCTEUJCSgxIDw8IDEpCi0jCWRlZmluZSBSQURFT05fRElUSEVSX0VOQUJMRQkJKDEgPDwgMikKLSMJZGVmaW5lIFJBREVPTl9ST1VORF9FTkFCTEUJCSgxIDw8IDMpCi0jCWRlZmluZSBSQURFT05fU0NBTEVfRElUSEVSX0VOQUJMRQkoMSA8PCA0KQotIwlkZWZpbmUgUkFERU9OX0RJVEhFUl9JTklUCQkoMSA8PCA1KQotIwlkZWZpbmUgUkFERU9OX1JPUF9FTkFCTEUJCSgxIDw8IDYpCi0jCWRlZmluZSBSQURFT05fU1RFTkNJTF9FTkFCTEUJCSgxIDw8IDcpCi0jCWRlZmluZSBSQURFT05fWl9FTkFCTEUJCQkoMSA8PCA4KQotIwlkZWZpbmUgUkFERU9OX1pCTE9DSzE2CQkJKDEgPDwgMTUpCi0jZGVmaW5lIFJBREVPTl9SQjNEX0RFUFRIT0ZGU0VUCQkweDFjMjQKLSNkZWZpbmUgUkFERU9OX1JCM0RfREVQVEhDTEVBUlZBTFVFCTB4MzIzMAotI2RlZmluZSBSQURFT05fUkIzRF9ERVBUSFBJVENICQkweDFjMjgKLSNkZWZpbmUgUkFERU9OX1JCM0RfUExBTkVNQVNLCQkweDFkODQKLSNkZWZpbmUgUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0sJMHgxZDdjCi0jZGVmaW5lIFJBREVPTl9SQjNEX1pDQUNIRV9NT0RFCQkweDMyNTAKLSNkZWZpbmUgUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQJMHgzMjU0Ci0jCWRlZmluZSBSQURFT05fUkIzRF9aQ19GTFVTSAkJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0ZSRUUJCSgxIDw8IDIpCi0jCWRlZmluZSBSQURFT05fUkIzRF9aQ19GTFVTSF9BTEwJCTB4NQotIwlkZWZpbmUgUkFERU9OX1JCM0RfWkNfQlVTWQkJKDEgPDwgMzEpCi0jZGVmaW5lIFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQJMHgzMjVjCi0jCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSAkJKDMgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9SQjNEX0RDX0ZSRUUJCSgzIDw8IDIpCi0jCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEwJCTB4ZgotIwlkZWZpbmUgUkFERU9OX1JCM0RfRENfQlVTWQkJKDEgPDwgMzEpCi0jZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKLSMJZGVmaW5lIFJBREVPTl9aX1RFU1RfTUFTSwkJKDcgPDwgNCkKLSMJZGVmaW5lIFJBREVPTl9aX1RFU1RfQUxXQVlTCQkoNyA8PCA0KQotIwlkZWZpbmUgUkFERU9OX1pfSElFUkFSQ0hZX0VOQUJMRQkoMSA8PCA4KQotIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMJKDcgPDwgMTIpCi0jCWRlZmluZSBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRQkoMiA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX1pQQVNTX1JFUExBQ0UJKDIgPDwgMjApCi0jCWRlZmluZSBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFCSgyIDw8IDI0KQotIwlkZWZpbmUgUkFERU9OX1pfQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFX1pfRElSVFkJCSgxIDw8IDI5KQotIwlkZWZpbmUgUkFERU9OX1pfV1JJVEVfRU5BQkxFCQkoMSA8PCAzMCkKLSMJZGVmaW5lIFJBREVPTl9aX0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDMxKQotI2RlZmluZSBSQURFT05fUkJCTV9TT0ZUX1JFU0VUCQkweDAwZjAKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0NQCQkoMSA8PCAgMCkKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hJCQkoMSA8PCAgMSkKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1NFCQkoMSA8PCAgMikKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JFCQkoMSA8PCAgMykKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1BQCQkoMSA8PCAgNCkKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0UyCQkoMSA8PCAgNSkKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JCCQkoMSA8PCAgNikKLSMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hEUAkJKDEgPDwgIDcpCi0vKgotICogICA2OjAgIEF2YWlsYWJsZSBzbG90cyBpbiB0aGUgRklGTwotICogICA4ICAgIEhvc3QgSW50ZXJmYWNlIGFjdGl2ZQotICogICA5ICAgIENQIHJlcXVlc3QgYWN0aXZlCi0gKiAgIDEwICAgRklGTyByZXF1ZXN0IGFjdGl2ZQotICogICAxMSAgIEhvc3QgSW50ZXJmYWNlIHJldHJ5IGFjdGl2ZQotICogICAxMiAgIENQIHJldHJ5IGFjdGl2ZQotICogICAxMyAgIEZJRk8gcmV0cnkgYWN0aXZlCi0gKiAgIDE0ICAgRklGTyBwaXBlbGluZSBidXN5Ci0gKiAgIDE1ICAgRXZlbnQgZW5naW5lIGJ1c3kKLSAqICAgMTYgICBDUCBjb21tYW5kIHN0cmVhbSBidXN5Ci0gKiAgIDE3ICAgMkQgZW5naW5lIGJ1c3kKLSAqICAgMTggICAyRCBwb3J0aW9uIG9mIHJlbmRlciBiYWNrZW5kIGJ1c3kKLSAqICAgMjAgICAzRCBzZXR1cCBlbmdpbmUgYnVzeQotICogICAyNiAgIEdBIGVuZ2luZSBidXN5Ci0gKiAgIDI3ICAgQ0JBIDJEIGVuZ2luZSBidXN5Ci0gKiAgIDMxICAgMkQgZW5naW5lIGJ1c3kgb3IgM0QgZW5naW5lIGJ1c3kgb3IgRklGTyBub3QgZW1wdHkgb3IgQ1AgYnVzeSBvcgotICogICAgICAgICAgIGNvbW1hbmQgc3RyZWFtIHF1ZXVlIG5vdCBlbXB0eSBvciBSaW5nIEJ1ZmZlciBub3QgZW1wdHkKLSAqLwotI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MGU0MAotLyogU2FtZSBhcyB0aGUgcHJldmlvdXMgUkFERU9OX1JCQk1fU1RBVFVTOyB0aGlzIGlzIGEgbWlycm9yIG9mIHRoYXQgcmVnaXN0ZXIuICAqLwotLyogI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MTc0MCAqLwotLyogYml0cyA2OjAgYXJlIGR3b3JkIHNsb3RzIGF2YWlsYWJsZSBpbiB0aGUgY21kIGZpZm8gKi8KLSMJZGVmaW5lIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSwkJMHgwMDdmCi0jCWRlZmluZSBSQURFT05fSElSUV9PTl9SQkIJKDEgPDwgIDgpCi0jCWRlZmluZSBSQURFT05fQ1BSUV9PTl9SQkIJKDEgPDwgIDkpCi0jCWRlZmluZSBSQURFT05fQ0ZSUV9PTl9SQkIJKDEgPDwgMTApCi0jCWRlZmluZSBSQURFT05fSElSUV9JTl9SVEJVRgkoMSA8PCAxMSkKLSMJZGVmaW5lIFJBREVPTl9DUFJRX0lOX1JUQlVGCSgxIDw8IDEyKQotIwlkZWZpbmUgUkFERU9OX0NGUlFfSU5fUlRCVUYJKDEgPDwgMTMpCi0jCWRlZmluZSBSQURFT05fUElQRV9CVVNZCQkoMSA8PCAxNCkKLSMJZGVmaW5lIFJBREVPTl9FTkdfRVZfQlVTWQkoMSA8PCAxNSkKLSMJZGVmaW5lIFJBREVPTl9DUF9DTURTVFJNX0JVU1kJKDEgPDwgMTYpCi0jCWRlZmluZSBSQURFT05fRTJfQlVTWQkJKDEgPDwgMTcpCi0jCWRlZmluZSBSQURFT05fUkIyRF9CVVNZCQkoMSA8PCAxOCkKLSMJZGVmaW5lIFJBREVPTl9SQjNEX0JVU1kJCSgxIDw8IDE5KSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fVkFQX0JVU1kJCSgxIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX1JFX0JVU1kJCSgxIDw8IDIxKSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fVEFNX0JVU1kJCSgxIDw8IDIyKSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fVERNX0JVU1kJCSgxIDw8IDIzKSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fUEJfQlVTWQkJKDEgPDwgMjQpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KLSMJZGVmaW5lIFJBREVPTl9USU1fQlVTWQkJKDEgPDwgMjUpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KLSMJZGVmaW5lIFJBREVPTl9HQV9CVVNZCQkoMSA8PCAyNikKLSMJZGVmaW5lIFJBREVPTl9DQkEyRF9CVVNZCSgxIDw8IDI3KQotIwlkZWZpbmUgUkFERU9OX1JCQk1fQUNUSVZFCSgxIDw8IDMxKQotI2RlZmluZSBSQURFT05fUkVfTElORV9QQVRURVJOCQkweDFjZDAKLSNkZWZpbmUgUkFERU9OX1JFX01JU0MJCQkweDI2YzQKLSNkZWZpbmUgUkFERU9OX1JFX1RPUF9MRUZUCQkweDI2YzAKLSNkZWZpbmUgUkFERU9OX1JFX1dJRFRIX0hFSUdIVAkJMHgxYzQ0Ci0jZGVmaW5lIFJBREVPTl9SRV9TVElQUExFX0FERFIJCTB4MWNjOAotI2RlZmluZSBSQURFT05fUkVfU1RJUFBMRV9EQVRBCQkweDFjY2MKLQotI2RlZmluZSBSQURFT05fU0NJU1NPUl9UTF8wCQkweDFjZDgKLSNkZWZpbmUgUkFERU9OX1NDSVNTT1JfQlJfMAkJMHgxY2RjCi0jZGVmaW5lIFJBREVPTl9TQ0lTU09SX1RMXzEJCTB4MWNlMAotI2RlZmluZSBSQURFT05fU0NJU1NPUl9CUl8xCQkweDFjZTQKLSNkZWZpbmUgUkFERU9OX1NDSVNTT1JfVExfMgkJMHgxY2U4Ci0jZGVmaW5lIFJBREVPTl9TQ0lTU09SX0JSXzIJCTB4MWNlYwotI2RlZmluZSBSQURFT05fU0VfQ09PUkRfRk1UCQkweDFjNTAKLSNkZWZpbmUgUkFERU9OX1NFX0NOVEwJCQkweDFjNGMKLSMJZGVmaW5lIFJBREVPTl9GRkFDRV9DVUxMX0NXCQkoMCA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0JGQUNFX1NPTElECQkoMyA8PCAxKQotIwlkZWZpbmUgUkFERU9OX0ZGQUNFX1NPTElECQkoMyA8PCAzKQotIwlkZWZpbmUgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QJKDMgPDwgNikKLSMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0ZMQVQJKDEgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0dPVVJBVUQJKDIgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUCQkoMSA8PCAxMCkKLSMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9HT1VSQVVECSgyIDw8IDEwKQotIwlkZWZpbmUgUkFERU9OX1NQRUNVTEFSX1NIQURFX0ZMQVQJKDEgPDwgMTIpCi0jCWRlZmluZSBSQURFT05fU1BFQ1VMQVJfU0hBREVfR09VUkFVRAkoMiA8PCAxMikKLSMJZGVmaW5lIFJBREVPTl9GT0dfU0hBREVfRkxBVAkJKDEgPDwgMTQpCi0jCWRlZmluZSBSQURFT05fRk9HX1NIQURFX0dPVVJBVUQJCSgyIDw8IDE0KQotIwlkZWZpbmUgUkFERU9OX1ZQT1JUX1hZX1hGT1JNX0VOQUJMRQkoMSA8PCAyNCkKLSMJZGVmaW5lIFJBREVPTl9WUE9SVF9aX1hGT1JNX0VOQUJMRQkoMSA8PCAyNSkKLSMJZGVmaW5lIFJBREVPTl9WVFhfUElYX0NFTlRFUl9PR0wJKDEgPDwgMjcpCi0jCWRlZmluZSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQwkJKDAgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYCSgxIDw8IDMwKQotI2RlZmluZSBSQURFT05fU0VfQ05UTF9TVEFUVVMJCTB4MjE0MAotI2RlZmluZSBSQURFT05fU0VfTElORV9XSURUSAkJMHgxZGI4Ci0jZGVmaW5lIFJBREVPTl9TRV9WUE9SVF9YU0NBTEUJCTB4MWQ5OAotI2RlZmluZSBSQURFT05fU0VfWkJJQVNfRkFDVE9SCQkweDFkYjAKLSNkZWZpbmUgUkFERU9OX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEIDB4MjIxMAotI2RlZmluZSBSQURFT05fU0VfVENMX09VVFBVVF9WVFhfRk1UICAgICAgICAgMHgyMjU0Ci0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHICAgICAgICAweDIyMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9PQ1RXT1JEX1NUUklERV9TSElGVCAgMTYKLSMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9EV09SRF9DT1VOVF9TSElGVCAgICAgMjgKLSNkZWZpbmUgUkFERU9OX1NFX1RDTF9WRUNUT1JfREFUQV9SRUcgICAgICAgMHgyMjA0Ci0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0lORFhfUkVHICAgICAgIDB4MjIwOAotIyAgICAgICBkZWZpbmUgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQgIDE2Ci0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHICAgICAgIDB4MjIwQwotI2RlZmluZSBSQURFT05fU1VSRkFDRV9BQ0NFU1NfRkxBR1MJMHgwYmY4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFX0FDQ0VTU19DTFIJMHgwYmZjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFX0NOVEwJCTB4MGIwMAotIwlkZWZpbmUgUkFERU9OX1NVUkZfVFJBTlNMQVRJT05fRElTCSgxIDw8IDgpCi0jCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX01BU0sJKDMgPDwgMjApCi0jCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0xJVFRMRQkoMCA8PCAyMCkKLSMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMF9TV1BfQklHMTYJKDEgPDwgMjApCi0jCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0JJRzMyCSgyIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9NQVNLCSgzIDw8IDIyKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9MSVRUTEUJKDAgPDwgMjIpCi0jCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDFfU1dQX0JJRzE2CSgxIDw8IDIyKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9CSUczMgkoMiA8PCAyMikKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0lORk8JCTB4MGIwYwotIwlkZWZpbmUgUkFERU9OX1NVUkZfUElUQ0hTRUxfTUFTSwkoMHgxZmYgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV9NQVNLCSgzIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01BQ1JPCSgwIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01JQ1JPCSgxIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFXzMyQklUX1oJKDIgPDwgMTYpCi0jCWRlZmluZSBSQURFT05fU1VSRl9USUxFX01PREVfMTZCSVRfWgkoMyA8PCAxNikKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5ECTB4MGIwNAotI2RlZmluZSBSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQJMHgwYjA4Ci0jCWRlZmluZSBSQURFT05fU1VSRl9BRERSRVNTX0ZJWEVEX01BU0sJKDB4M2ZmIDw8IDApCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMV9JTkZPCQkweDBiMWMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UxX0xPV0VSX0JPVU5ECTB4MGIxNAotI2RlZmluZSBSQURFT05fU1VSRkFDRTFfVVBQRVJfQk9VTkQJMHgwYjE4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMl9JTkZPCQkweDBiMmMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UyX0xPV0VSX0JPVU5ECTB4MGIyNAotI2RlZmluZSBSQURFT05fU1VSRkFDRTJfVVBQRVJfQk9VTkQJMHgwYjI4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFM19JTkZPCQkweDBiM2MKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UzX0xPV0VSX0JPVU5ECTB4MGIzNAotI2RlZmluZSBSQURFT05fU1VSRkFDRTNfVVBQRVJfQk9VTkQJMHgwYjM4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNF9JTkZPCQkweDBiNGMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U0X0xPV0VSX0JPVU5ECTB4MGI0NAotI2RlZmluZSBSQURFT05fU1VSRkFDRTRfVVBQRVJfQk9VTkQJMHgwYjQ4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNV9JTkZPCQkweDBiNWMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U1X0xPV0VSX0JPVU5ECTB4MGI1NAotI2RlZmluZSBSQURFT05fU1VSRkFDRTVfVVBQRVJfQk9VTkQJMHgwYjU4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNl9JTkZPCQkweDBiNmMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U2X0xPV0VSX0JPVU5ECTB4MGI2NAotI2RlZmluZSBSQURFT05fU1VSRkFDRTZfVVBQRVJfQk9VTkQJMHgwYjY4Ci0jZGVmaW5lIFJBREVPTl9TVVJGQUNFN19JTkZPCQkweDBiN2MKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U3X0xPV0VSX0JPVU5ECTB4MGI3NAotI2RlZmluZSBSQURFT05fU1VSRkFDRTdfVVBQRVJfQk9VTkQJMHgwYjc4Ci0jZGVmaW5lIFJBREVPTl9TV19TRU1BUEhPUkUJCTB4MDEzYwotCi0jZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMCQkweDE3MjAKLSMJZGVmaW5lIFJBREVPTl9XQUlUX0NSVENfUEZMSVAJCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fV0FJVF8yRF9JRExFCQkoMSA8PCAxNCkKLSMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEUJCSgxIDw8IDE1KQotIwlkZWZpbmUgUkFERU9OX1dBSVRfMkRfSURMRUNMRUFOCQkoMSA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTgkJKDEgPDwgMTcpCi0jCWRlZmluZSBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTgkoMSA8PCAxOCkKLQotI2RlZmluZSBSQURFT05fUkIzRF9aTUFTS09GRlNFVAkJMHgzMjM0Ci0jZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKLSMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1oJKDAgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1oJKDIgPDwgMCkKLQotLyogQ1AgcmVnaXN0ZXJzICovCi0jZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fQUREUgkJMHgwN2Q0Ci0jZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fUkFERFIJCTB4MDdkOAotI2RlZmluZSBSQURFT05fQ1BfTUVfUkFNX0RBVEFICQkweDA3ZGMKLSNkZWZpbmUgUkFERU9OX0NQX01FX1JBTV9EQVRBTAkJMHgwN2UwCi0KLSNkZWZpbmUgUkFERU9OX0NQX1JCX0JBU0UJCTB4MDcwMAotI2RlZmluZSBSQURFT05fQ1BfUkJfQ05UTAkJMHgwNzA0Ci0jCWRlZmluZSBSQURFT05fQlVGX1NXQVBfMzJCSVQJCSgyIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX1JCX05PX1VQREFURQkJKDEgPDwgMjcpCi0jZGVmaW5lIFJBREVPTl9DUF9SQl9SUFRSX0FERFIJCTB4MDcwYwotI2RlZmluZSBSQURFT05fQ1BfUkJfUlBUUgkJMHgwNzEwCi0jZGVmaW5lIFJBREVPTl9DUF9SQl9XUFRSCQkweDA3MTQKLQotI2RlZmluZSBSQURFT05fQ1BfUkJfV1BUUl9ERUxBWQkJMHgwNzE4Ci0jCWRlZmluZSBSQURFT05fUFJFX1dSSVRFX1RJTUVSX1NISUZUCTAKLSMJZGVmaW5lIFJBREVPTl9QUkVfV1JJVEVfTElNSVRfU0hJRlQJMjMKLQotI2RlZmluZSBSQURFT05fQ1BfSUJfQkFTRQkJMHgwNzM4Ci0KLSNkZWZpbmUgUkFERU9OX0NQX0NTUV9DTlRMCQkweDA3NDAKLSMJZGVmaW5lIFJBREVPTl9DU1FfQ05UX1BSSU1BUllfTUFTSwkoMHhmZiA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0NTUV9QUklESVNfSU5ERElTCQkoMCA8PCAyOCkKLSMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORERJUwkJKDEgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lORERJUwkJKDIgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fQ1NRX1BSSVBJT19JTkRCTQkJKDMgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lOREJNCQkoNCA8PCAyOCkKLSMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORFBJTwkJKDE1IDw8IDI4KQotCi0jZGVmaW5lIFJBREVPTl9BSUNfQ05UTAkJCTB4MDFkMAotIwlkZWZpbmUgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOCSgxIDw8IDApCi0jZGVmaW5lIFJBREVPTl9BSUNfU1RBVAkJCTB4MDFkNAotI2RlZmluZSBSQURFT05fQUlDX1BUX0JBU0UJCTB4MDFkOAotI2RlZmluZSBSQURFT05fQUlDX0xPX0FERFIJCTB4MDFkYwotI2RlZmluZSBSQURFT05fQUlDX0hJX0FERFIJCTB4MDFlMAotI2RlZmluZSBSQURFT05fQUlDX1RMQl9BRERSCQkweDAxZTQKLSNkZWZpbmUgUkFERU9OX0FJQ19UTEJfREFUQQkJMHgwMWU4Ci0KLS8qIENQIGNvbW1hbmQgcGFja2V0cyAqLwotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMAkJMHgwMDAwMDAwMAotIwlkZWZpbmUgUkFERU9OX09ORV9SRUdfV1IJCSgxIDw8IDE1KQotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMQkJMHg0MDAwMDAwMAotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMgkJMHg4MDAwMDAwMAotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMwkJMHhDMDAwMDAwMAotIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05PUCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAotIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05FWFRfQ0hBUiAgICAgICAgICAgICAgMHgwMDAwMTkwMAotIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1BMWV9ORVhUU0NBTiAgICAgICAgICAgMHgwMDAwMUQwMAotIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1NFVF9TQ0lTU09SUyAgICAgICAgICAgMHgwMDAwMUUwMAotCSAgICAgLyogR0VOX0lORFhfUFJJTSBpcyB1bnN1cHBvcnRlZCBzdGFydGluZyB3aXRoIFIzMDAgKi8KLSMJZGVmaW5lIFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0JMHgwMDAwMjMwMAotIwlkZWZpbmUgUkFERU9OX1dBSVRfRk9SX0lETEUJCTB4MDAwMDI2MDAKLSMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX1ZCVUYJCTB4MDAwMDI4MDAKLSMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lNTUQJCTB4MDAwMDI5MDAKLSMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lORFgJCTB4MDAwMDJBMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9MT0FEX1BBTEVUVEUgICAgICAgICAgIDB4MDAwMDJDMDAKLSMJZGVmaW5lIFJBREVPTl8zRF9MT0FEX1ZCUE5UUgkJMHgwMDAwMkYwMAotIwlkZWZpbmUgUkFERU9OX01QRUdfSURDVF9NQUNST0JMT0NLCTB4MDAwMDMwMDAKLSMJZGVmaW5lIFJBREVPTl9NUEVHX0lEQ1RfTUFDUk9CTE9DS19SRVYJMHgwMDAwMzEwMAotIwlkZWZpbmUgUkFERU9OXzNEX0NMRUFSX1pNQVNLCQkweDAwMDAzMjAwCi0jCWRlZmluZSBSQURFT05fQ1BfSU5EWF9CVUZGRVIJCTB4MDAwMDMzMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX1ZCVUZfMiAgICAgICAgIDB4MDAwMDM0MDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lNTURfMiAgICAgICAgIDB4MDAwMDM1MDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lORFhfMiAgICAgICAgIDB4MDAwMDM2MDAKLSMJZGVmaW5lIFJBREVPTl8zRF9DTEVBUl9ISVoJCTB4MDAwMDM3MDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9DTEVBUl9DTUFTSyAgICAgICAgIDB4MDAwMDM4MDIKLSMJZGVmaW5lIFJBREVPTl9DTlRMX0hPU1REQVRBX0JMVAkJMHgwMDAwOTQwMAotIwlkZWZpbmUgUkFERU9OX0NOVExfUEFJTlRfTVVMVEkJCTB4MDAwMDlBMDAKLSMJZGVmaW5lIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSQkJMHgwMDAwOUIwMAotIwlkZWZpbmUgUkFERU9OX0NOVExfU0VUX1NDSVNTT1JTCQkweEMwMDAxRTAwCi0KLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVF9NQVNLCQkweEMwMDAwMDAwCi0jZGVmaW5lIFJBREVPTl9DUF9QQUNLRVRfQ09VTlRfTUFTSwkweDNmZmYwMDAwCi0jZGVmaW5lIFJBREVPTl9DUF9QQUNLRVQwX1JFR19NQVNLCTB4MDAwMDA3ZmYKLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMF9NQVNLCTB4MDAwMDA3ZmYKLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMV9NQVNLCTB4MDAzZmY4MDAKLQotI2RlZmluZSBSQURFT05fVlRYX1pfUFJFU0VOVAkJCSgxIDw8IDMxKQotI2RlZmluZSBSQURFT05fVlRYX1BLQ09MT1JfUFJFU0VOVAkJKDEgPDwgMykKLQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX05PTkUJCQkoMCA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1BPSU5UCQkJKDEgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FCQkJKDIgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FX1NUUklQCQkoMyA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9MSVNUCQkoNCA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9GQU4JCSg1IDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfVFJJX1NUUklQCQkoNiA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9UWVBFMgkJKDcgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QJCSg4IDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUCSg5IDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QJCSgxMCA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgMHhmCi0jZGVmaW5lIFJBREVPTl9QUklNX1dBTEtfSU5ECQkJKDEgPDwgNCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19MSVNUCQkJKDIgPDwgNCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19SSU5HCQkJKDMgPDwgNCkKLSNkZWZpbmUgUkFERU9OX0NPTE9SX09SREVSX0JHUkEJCQkoMCA8PCA2KQotI2RlZmluZSBSQURFT05fQ09MT1JfT1JERVJfUkdCQQkJCSgxIDw8IDYpCi0jZGVmaW5lIFJBREVPTl9NQU9TX0VOQUJMRQkJCSgxIDw8IDcpCi0jZGVmaW5lIFJBREVPTl9WVFhfRk1UX1IxMjhfTU9ERQkJKDAgPDwgOCkKLSNkZWZpbmUgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUJCSgxIDw8IDgpCi0jZGVmaW5lIFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQJCTE2Ci0KLSNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9DSTgJCTIKLSNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCMTU1NQkzCi0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCNTY1CTQKLSNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2Ci0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCMzMyCTcKLSNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I4CTkKLSNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQotCi0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9JOAkJMAotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfQUk4OAkJMQotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfUkdCMzMyCQkyCi0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NQkzCi0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9SR0I1NjUJCTQKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I0NDQ0CTUKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I4ODg4CTYKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1JHQkE4ODg4CTcKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1k4CQk4Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9WWVVZNDIyICAgICAgICAgMTAKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1lWWVU0MjIgICAgICAgICAxMQotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfRFhUMSAgICAgICAgICAgIDEyCi0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9EWFQyMyAgICAgICAgICAgMTQKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0RYVDQ1ICAgICAgICAgICAxNQotCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMCAgICAgICAgICAgICAgICAweDJmMDAKLSNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF8xICAgICAgICAgICAgICAgIDB4MmYxMAotI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzIgICAgICAgICAgICAgICAgMHgyZjIwCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMyAgICAgICAgICAgICAgICAweDJmMzAKLSNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF80ICAgICAgICAgICAgICAgIDB4MmY0MAotI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzUgICAgICAgICAgICAgICAgMHgyZjUwCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfNiAgICAgICAgICAgICAgICAweDJmNjAKLSNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF83ICAgICAgICAgICAgICAgIDB4MmY3MAotI2RlZmluZSBSMjAwX1NFX1RDTF9MSUdIVF9NT0RFTF9DVExfMCAgICAgMHgyMjY4Ci0jZGVmaW5lIFIyMDBfUFBfVEZBQ1RPUl8wICAgICAgICAgICAgICAgICAweDJlZTAKLSNkZWZpbmUgUjIwMF9TRV9WVFhfRk1UXzAgICAgICAgICAgICAgICAgIDB4MjA4OAotI2RlZmluZSBSMjAwX1NFX1ZBUF9DTlRMICAgICAgICAgICAgICAgICAgMHgyMDgwCi0jZGVmaW5lIFIyMDBfU0VfVENMX01BVFJJWF9TRUxfMCAgICAgICAgICAweDIyMzAKLSNkZWZpbmUgUjIwMF9TRV9UQ0xfVEVYX1BST0NfQ1RMXzIgICAgICAgIDB4MjJhOAotI2RlZmluZSBSMjAwX1NFX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwgICAgMHgyMmMwCi0jZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfNSAgICAgICAgICAgICAgICAweDJjYTAKLSNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl80ICAgICAgICAgICAgICAgIDB4MmM4MAotI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzMgICAgICAgICAgICAgICAgMHgyYzYwCi0jZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAweDJjNDAKLSNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl8xICAgICAgICAgICAgICAgIDB4MmMyMAotI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgMHgyYzAwCi0jZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfNSAgICAgICAgICAgICAgICAweDJkNzgKLSNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF80ICAgICAgICAgICAgICAgIDB4MmQ2MAotI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzMgICAgICAgICAgICAgICAgMHgyZDQ4Ci0jZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfMiAgICAgICAgICAgICAgICAweDJkMzAKLSNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF8xICAgICAgICAgICAgICAgIDB4MmQxOAotI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzAgICAgICAgICAgICAgICAgMHgyZDAwCi0KLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgIDB4MmMxOAotI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgyYzM4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfMiAgICAgICAgICAgICAweDJjNTgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18zICAgICAgICAgICAgIDB4MmM3OAotI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzQgICAgICAgICAgICAgMHgyYzk4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfNSAgICAgICAgICAgICAweDJjYjgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCAgICAgICAgIDB4MmQwNAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8wICAgICAgICAgMHgyZDA4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzAgICAgICAgICAweDJkMGMKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMCAgICAgICAgIDB4MmQxMAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8wICAgICAgICAgMHgyZDE0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEgICAgICAgICAweDJkMWMKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfMSAgICAgICAgIDB4MmQyMAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM18xICAgICAgICAgMHgyZDI0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzEgICAgICAgICAweDJkMjgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfMSAgICAgICAgIDB4MmQyYwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yICAgICAgICAgMHgyZDM0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzIgICAgICAgICAweDJkMzgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfMiAgICAgICAgIDB4MmQzYwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF8yICAgICAgICAgMHgyZDQwCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzIgICAgICAgICAweDJkNDQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMyAgICAgICAgIDB4MmQ0YwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8zICAgICAgICAgMHgyZDUwCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzMgICAgICAgICAweDJkNTQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMyAgICAgICAgIDB4MmQ1OAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8zICAgICAgICAgMHgyZDVjCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQgICAgICAgICAweDJkNjQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfNCAgICAgICAgIDB4MmQ2OAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM180ICAgICAgICAgMHgyZDZjCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzQgICAgICAgICAweDJkNzAKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfNCAgICAgICAgIDB4MmQ3NAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81ICAgICAgICAgMHgyZDdjCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzUgICAgICAgICAweDJkODAKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfNSAgICAgICAgIDB4MmQ4NAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF81ICAgICAgICAgMHgyZDg4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzUgICAgICAgICAweDJkOGMKLQotI2RlZmluZSBSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgMHgyNmYwCi0jZGVmaW5lIFIyMDBfU0VfVlRFX0NOVEwgICAgICAgICAgICAgICAgICAweDIwYjAKLSNkZWZpbmUgUjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCAgIDB4MjI1MAotI2RlZmluZSBSMjAwX1BQX1RBTV9ERUJVRzMgICAgICAgICAgICAgICAgMHgyZDljCi0jZGVmaW5lIFIyMDBfUFBfQ05UTF9YICAgICAgICAgICAgICAgICAgICAweDJjYzQKLSNkZWZpbmUgUjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMgICAgICAgICAgIDB4MjE0MAotI2RlZmluZSBSMjAwX1JFX1NDSVNTT1JfVExfMCAgICAgICAgICAgICAgMHgxY2Q4Ci0jZGVmaW5lIFIyMDBfUkVfU0NJU1NPUl9UTF8xICAgICAgICAgICAgICAweDFjZTAKLSNkZWZpbmUgUjIwMF9SRV9TQ0lTU09SX1RMXzIgICAgICAgICAgICAgIDB4MWNlOAotI2RlZmluZSBSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQgICAgICAgICAgMHgxZDYwCi0jZGVmaW5lIFIyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCAgICAgICAgICAweDI2ZjAKLSNkZWZpbmUgUjIwMF9TRV9WVFhfU1RBVEVfQ05UTCAgICAgICAgICAgIDB4MjE4MAotI2RlZmluZSBSMjAwX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgMHgyNjQ4Ci0jZGVmaW5lIFIyMDBfU0VfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wIDB4MjI1NAotCi0jZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8wICAgICAgICAgICAgICAgIDB4MWQwNAkvKiBOUE9UICovCi0jZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8xICAgICAgICAgICAgICAgIDB4MWQwYwotI2RlZmluZSBSQURFT05fUFBfVEVYX1NJWkVfMiAgICAgICAgICAgICAgICAweDFkMTQKLQotI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAweDFkMjQKLSNkZWZpbmUgUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgxZDI4Ci0jZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgIDB4MWQyYwotI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAgICAgICAgICAweDFkZDAJLyogYml0cyBbMzE6NV0gKi8KLSNkZWZpbmUgUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMV8wICAgICAgICAgMHgxZTAwCi0jZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMCAgICAgICAgIDB4MWUxNAotCi0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0ggICAgICAgICAgIDB4MjI4NAotCi0jZGVmaW5lIFNFX1ZBUF9DTlRMX19UQ0xfRU5BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKLSNkZWZpbmUgU0VfVkFQX0NOVExfX0ZPUkNFX1dfVE9fT05FX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAotI2RlZmluZSBTRV9WQVBfQ05UTF9fVkZfTUFYX1ZUWF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCi0jZGVmaW5lIFNFX1ZURV9DTlRMX19WVFhfWFlfRk1UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKLSNkZWZpbmUgU0VfVlRFX0NOVExfX1ZUWF9aX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAotI2RlZmluZSBTRV9WVFhfRk1UXzBfX1ZUWF9aMF9QUkVTRU5UX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIFNFX1ZUWF9GTVRfMF9fVlRYX1cwX1BSRVNFTlRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKLSNkZWZpbmUgU0VfVlRYX0ZNVF8wX19WVFhfQ09MT1JfMF9GTVRfX1NISUZUICAgICAgICAgICAgICAgMHgwMDAwMDAwYgotI2RlZmluZSBSMjAwXzNEX0RSQVdfSU1NRF8yICAgICAgMHhDMDAwMzUwMAotI2RlZmluZSBSMjAwX1NFX1ZUWF9GTVRfMSAgICAgICAgICAgICAgICAgMHgyMDhjCi0jZGVmaW5lIFIyMDBfUkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAweDFjNTAKLQotI2RlZmluZSBSMjAwX1JCM0RfQkxFTkRDT0xPUiAgICAgICAgICAgICAgMHgzMjE4Ci0KLSNkZWZpbmUgUjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgICAgIDB4MjJjNAotCi0jZGVmaW5lIFIyMDBfUFBfVFJJX1BFUkYgMHgyY2Y4Ci0KLSNkZWZpbmUgUjIwMF9QUF9BRlNfMCAgICAgICAgICAgICAgICAgICAgIDB4MmY4MAotI2RlZmluZSBSMjAwX1BQX0FGU18xICAgICAgICAgICAgICAgICAgICAgMHgyZjAwCS8qIHNhbWUgYXMgdHhjYmxlbmRfMCAqLwotCi0jZGVmaW5lIFIyMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAweDIyRDAKLQotLyogQ29uc3RhbnRzICovCi0jZGVmaW5lIFJBREVPTl9NQVhfVVNFQ19USU1FT1VUCQkxMDAwMDAJLyogMTAwIG1zICovCi0KLSNkZWZpbmUgUkFERU9OX0xBU1RfRlJBTUVfUkVHCQlSQURFT05fU0NSQVRDSF9SRUcwCi0jZGVmaW5lIFJBREVPTl9MQVNUX0RJU1BBVENIX1JFRwlSQURFT05fU0NSQVRDSF9SRUcxCi0jZGVmaW5lIFJBREVPTl9MQVNUX0NMRUFSX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMgotI2RlZmluZSBSQURFT05fTEFTVF9TV0lfUkVHCQlSQURFT05fU0NSQVRDSF9SRUczCi0jZGVmaW5lIFJBREVPTl9MQVNUX0RJU1BBVENICQkxCi0KLSNkZWZpbmUgUkFERU9OX01BWF9WQl9BR0UJCTB4N2ZmZmZmZmYKLSNkZWZpbmUgUkFERU9OX01BWF9WQl9WRVJUUwkJKDB4ZmZmZikKLQotI2RlZmluZSBSQURFT05fUklOR19ISUdIX01BUksJCTEyOAotCi0jZGVmaW5lIFJBREVPTl9QQ0lHQVJUX1RBQkxFX1NJWkUgICAgICAoMzIqMTAyNCkKLQotI2RlZmluZSBSQURFT05fUkVBRChyZWcpCURSTV9SRUFEMzIoICBkZXZfcHJpdi0+bW1pbywgKHJlZykgKQotI2RlZmluZSBSQURFT05fV1JJVEUocmVnLHZhbCkJRFJNX1dSSVRFMzIoIGRldl9wcml2LT5tbWlvLCAocmVnKSwgKHZhbCkgKQotI2RlZmluZSBSQURFT05fUkVBRDgocmVnKQlEUk1fUkVBRDgoICBkZXZfcHJpdi0+bW1pbywgKHJlZykgKQotI2RlZmluZSBSQURFT05fV1JJVEU4KHJlZyx2YWwpCURSTV9XUklURTgoIGRldl9wcml2LT5tbWlvLCAocmVnKSwgKHZhbCkgKQotCi0jZGVmaW5lIFJBREVPTl9XUklURV9QTEwoIGFkZHIsIHZhbCApCQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCVJBREVPTl9XUklURTgoIFJBREVPTl9DTE9DS19DTlRMX0lOREVYLAkJCQlcCi0JCSAgICAgICAoKGFkZHIpICYgMHgxZikgfCBSQURFT05fUExMX1dSX0VOICk7CQlcCi0JUkFERU9OX1dSSVRFKCBSQURFT05fQ0xPQ0tfQ05UTF9EQVRBLCAodmFsKSApOwkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX1dSSVRFX0lHUEdBUlQoIGFkZHIsIHZhbCApCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JUkFERU9OX1dSSVRFKCBSQURFT05fSUdQR0FSVF9JTkRFWCwJCQkJXAotCQkJKChhZGRyKSAmIDB4N2YpIHwgKDEgPDwgOCkpOwkJCVwKLQlSQURFT05fV1JJVEUoIFJBREVPTl9JR1BHQVJUX0RBVEEsICh2YWwpICk7CQkJXAotCVJBREVPTl9XUklURSggUkFERU9OX0lHUEdBUlRfSU5ERVgsIDB4N2YgKTsJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9XUklURV9QQ0lFKCBhZGRyLCB2YWwgKQkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlSQURFT05fV1JJVEU4KCBSQURFT05fUENJRV9JTkRFWCwJCQkJXAotCQkJKChhZGRyKSAmIDB4ZmYpKTsJCQkJXAotCVJBREVPTl9XUklURSggUkFERU9OX1BDSUVfREFUQSwgKHZhbCkgKTsJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9XUklURV9NQ0lORCggYWRkciwgdmFsICkJCQkJCVwKLQlkbyB7CQkJCQkJCQlcCi0JCVJBREVPTl9XUklURShSNTIwX01DX0lORF9JTkRFWCwgMHhmZjAwMDAgfCAoKGFkZHIpICYgMHhmZikpOwlcCi0JCVJBREVPTl9XUklURShSNTIwX01DX0lORF9EQVRBLCAodmFsKSk7CQkJXAotCQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOwlcCi0JfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSUzY5MF9XUklURV9NQ0lORCggYWRkciwgdmFsICkJCQkJCVwKLWRvIHsJCQkJCQkJCVwKLQlSQURFT05fV1JJVEUoUlM2OTBfTUNfSU5ERVgsIFJTNjkwX01DX0lOREVYX1dSX0VOIHwgKChhZGRyKSAmIFJTNjkwX01DX0lOREVYX01BU0spKTsJXAotCVJBREVPTl9XUklURShSUzY5MF9NQ19EQVRBLCB2YWwpOwkJCVwKLQlSQURFT05fV1JJVEUoUlM2OTBfTUNfSU5ERVgsIFJTNjkwX01DX0lOREVYX1dSX0FDSyk7CVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgQ1BfUEFDS0VUMCggcmVnLCBuICkJCQkJCQlcCi0JKFJBREVPTl9DUF9QQUNLRVQwIHwgKChuKSA8PCAxNikgfCAoKHJlZykgPj4gMikpCi0jZGVmaW5lIENQX1BBQ0tFVDBfVEFCTEUoIHJlZywgbiApCQkJCQlcCi0JKFJBREVPTl9DUF9QQUNLRVQwIHwgUkFERU9OX09ORV9SRUdfV1IgfCAoKG4pIDw8IDE2KSB8ICgocmVnKSA+PiAyKSkKLSNkZWZpbmUgQ1BfUEFDS0VUMSggcmVnMCwgcmVnMSApCQkJCQlcCi0JKFJBREVPTl9DUF9QQUNLRVQxIHwgKCgocmVnMSkgPj4gMikgPDwgMTUpIHwgKChyZWcwKSA+PiAyKSkKLSNkZWZpbmUgQ1BfUEFDS0VUMigpCQkJCQkJCVwKLQkoUkFERU9OX0NQX1BBQ0tFVDIpCi0jZGVmaW5lIENQX1BBQ0tFVDMoIHBrdCwgbiApCQkJCQkJXAotCShSQURFT05fQ1BfUEFDS0VUMyB8IChwa3QpIHwgKChuKSA8PCAxNikpCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEVuZ2luZSBjb250cm9sIGhlbHBlciBtYWNyb3MKLSAqLwotCi0jZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKSBkbyB7CQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKLQlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKLQkJICAgUkFERU9OX1dBSVRfSE9TVF9JRExFQ0xFQU4pICk7CQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCkgZG8gewkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9XQUlUX1VOVElMLCAwICkgKTsJCQlcCi0JT1VUX1JJTkcoIChSQURFT05fV0FJVF8zRF9JRExFQ0xFQU4gfAkJCQlcCi0JCSAgIFJBREVPTl9XQUlUX0hPU1RfSURMRUNMRUFOKSApOwkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX1dBSVRfVU5USUxfSURMRSgpIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKLQlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKLQkJICAgUkFERU9OX1dBSVRfM0RfSURMRUNMRUFOIHwJCQkJXAotCQkgICBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTikgKTsJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMX1BBR0VfRkxJUFBFRCgpIGRvIHsJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fV0FJVF9VTlRJTCwgMCApICk7CQkJXAotCU9VVF9SSU5HKCBSQURFT05fV0FJVF9DUlRDX1BGTElQICk7CQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX0ZMVVNIX0NBQ0hFKCkgZG8gewkJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwICkgKTsJXAotCU9VVF9SSU5HKCBSQURFT05fUkIzRF9EQ19GTFVTSCApOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9QVVJHRV9DQUNIRSgpIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCApICk7CVwKLQlPVVRfUklORyggUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMICk7CQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX0ZMVVNIX1pDQUNIRSgpIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQsIDAgKSApOwlcCi0JT1VUX1JJTkcoIFJBREVPTl9SQjNEX1pDX0ZMVVNIICk7CQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX1BVUkdFX1pDQUNIRSgpIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQsIDAgKSApOwlcCi0JT1VUX1JJTkcoIFJBREVPTl9SQjNEX1pDX0ZMVVNIX0FMTCApOwkJCQlcCi19IHdoaWxlICgwKQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBNaXNjIGhlbHBlciBtYWNyb3MKLSAqLwotCi0vKiBQZXJmYm94IGZ1bmN0aW9uYWxpdHkgb25seS4KLSAqLwotI2RlZmluZSBSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oIGRldl9wcml2ICkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlpZiAoIShkZXZfcHJpdi0+c3RhdHMuYm94ZXMgJiBSQURFT05fQk9YX0RNQV9JRExFKSkgewkJXAotCQl1MzIgaGVhZCA9IEdFVF9SSU5HX0hFQUQoIGRldl9wcml2ICk7CQkJXAotCQlpZiAoaGVhZCA9PSBkZXZfcHJpdi0+cmluZy50YWlsKQkJCVwKLQkJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX0RNQV9JRExFOwlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBWQl9BR0VfVEVTVF9XSVRIX1JFVFVSTiggZGV2X3ByaXYgKQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwkJXAotCWlmICggc2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA+PSBSQURFT05fTUFYX1ZCX0FHRSApIHsJCVwKLQkJaW50IF9fcmV0ID0gcmFkZW9uX2RvX2NwX2lkbGUoIGRldl9wcml2ICk7CQlcCi0JCWlmICggX19yZXQgKSByZXR1cm4gX19yZXQ7CQkJCVwKLQkJc2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IDA7CQkJCVwKLQkJcmFkZW9uX2ZyZWVsaXN0X3Jlc2V0KCBkZXYgKTsJCQkJXAotCX0JCQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX0RJU1BBVENIX0FHRSggYWdlICkgZG8gewkJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcsIDAgKSApOwkJXAotCU9VVF9SSU5HKCBhZ2UgKTsJCQkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9GUkFNRV9BR0UoIGFnZSApIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX0xBU1RfRlJBTUVfUkVHLCAwICkgKTsJCVwKLQlPVVRfUklORyggYWdlICk7CQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fQ0xFQVJfQUdFKCBhZ2UgKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9MQVNUX0NMRUFSX1JFRywgMCApICk7CQlcCi0JT1VUX1JJTkcoIGFnZSApOwkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIFJpbmcgY29udHJvbAotICovCi0KLSNkZWZpbmUgUkFERU9OX1ZFUkJPU0UJMAotCi0jZGVmaW5lIFJJTkdfTE9DQUxTCWludCB3cml0ZSwgX25yOyB1bnNpZ25lZCBpbnQgbWFzazsgdTMyICpyaW5nOwotCi0jZGVmaW5lIEJFR0lOX1JJTkcoIG4gKSBkbyB7CQkJCQkJXAotCWlmICggUkFERU9OX1ZFUkJPU0UgKSB7CQkJCQkJXAotCQlEUk1fSU5GTyggIkJFR0lOX1JJTkcoICVkIClcbiIsIChuKSk7CQkJXAotCX0JCQkJCQkJCVwKLQlpZiAoIGRldl9wcml2LT5yaW5nLnNwYWNlIDw9IChuKSAqIHNpemVvZih1MzIpICkgewkJXAotICAgICAgICAgICAgICAgIENPTU1JVF9SSU5HKCk7CQkJCQkJXAotCQlyYWRlb25fd2FpdF9yaW5nKCBkZXZfcHJpdiwgKG4pICogc2l6ZW9mKHUzMikgKTsJXAotCX0JCQkJCQkJCVwKLQlfbnIgPSBuOyBkZXZfcHJpdi0+cmluZy5zcGFjZSAtPSAobikgKiBzaXplb2YodTMyKTsJCVwKLQlyaW5nID0gZGV2X3ByaXYtPnJpbmcuc3RhcnQ7CQkJCQlcCi0Jd3JpdGUgPSBkZXZfcHJpdi0+cmluZy50YWlsOwkJCQkJXAotCW1hc2sgPSBkZXZfcHJpdi0+cmluZy50YWlsX21hc2s7CQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgQURWQU5DRV9SSU5HKCkgZG8gewkJCQkJCVwKLQlpZiAoIFJBREVPTl9WRVJCT1NFICkgewkJCQkJCVwKLQkJRFJNX0lORk8oICJBRFZBTkNFX1JJTkcoKSB3cj0weCUwNnggdGFpbD0weCUwNnhcbiIsCVwKLQkJCSAgd3JpdGUsIGRldl9wcml2LT5yaW5nLnRhaWwgKTsJCQlcCi0JfQkJCQkJCQkJXAotCWlmICgoKGRldl9wcml2LT5yaW5nLnRhaWwgKyBfbnIpICYgbWFzaykgIT0gd3JpdGUpIHsJCVwKLQkJRFJNX0VSUk9SKAkJCQkJCVwKLQkJCSJBRFZBTkNFX1JJTkcoKTogbWlzbWF0Y2g6IG5yOiAleCB3cml0ZTogJXggbGluZTogJWRcbiIsCVwKLQkJCSgoZGV2X3ByaXYtPnJpbmcudGFpbCArIF9ucikgJiBtYXNrKSwJCVwKLQkJCXdyaXRlLCBfX0xJTkVfXyk7CQkJCQkJXAotCX0gZWxzZQkJCQkJCQkJXAotCQlkZXZfcHJpdi0+cmluZy50YWlsID0gd3JpdGU7CQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgQ09NTUlUX1JJTkcoKSBkbyB7CQkJCQkJXAotCS8qIEZsdXNoIHdyaXRlcyB0byByaW5nICovCQkJCQlcCi0JRFJNX01FTU9SWUJBUlJJRVIoKTsJCQkJCQlcCi0JR0VUX1JJTkdfSEVBRCggZGV2X3ByaXYgKTsJCQkJCVwKLQlSQURFT05fV1JJVEUoIFJBREVPTl9DUF9SQl9XUFRSLCBkZXZfcHJpdi0+cmluZy50YWlsICk7CQlcCi0JLyogcmVhZCBmcm9tIFBDSSBidXMgdG8gZW5zdXJlIGNvcnJlY3QgcG9zdGluZyAqLwkJXAotCVJBREVPTl9SRUFEKCBSQURFT05fQ1BfUkJfUlBUUiApOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIE9VVF9SSU5HKCB4ICkgZG8gewkJCQkJCVwKLQlpZiAoIFJBREVPTl9WRVJCT1NFICkgewkJCQkJCVwKLQkJRFJNX0lORk8oICIgICBPVVRfUklORyggMHglMDh4ICkgYXQgMHgleFxuIiwJCVwKLQkJCSAgICh1bnNpZ25lZCBpbnQpKHgpLCB3cml0ZSApOwkJCVwKLQl9CQkJCQkJCQlcCi0JcmluZ1t3cml0ZSsrXSA9ICh4KTsJCQkJCQlcCi0Jd3JpdGUgJj0gbWFzazsJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBPVVRfUklOR19SRUcoIHJlZywgdmFsICkgZG8gewkJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCByZWcsIDAgKSApOwkJCQlcCi0JT1VUX1JJTkcoIHZhbCApOwkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgT1VUX1JJTkdfVEFCTEUoIHRhYiwgc3ogKSBkbyB7CQkJCQlcCi0JaW50IF9zaXplID0gKHN6KTsJCQkJCVwKLQlpbnQgKl90YWIgPSAoaW50ICopKHRhYik7CQkJCVwKLQkJCQkJCQkJXAotCWlmICh3cml0ZSArIF9zaXplID4gbWFzaykgewkJCQlcCi0JCWludCBfaSA9IChtYXNrKzEpIC0gd3JpdGU7CQkJXAotCQlfc2l6ZSAtPSBfaTsJCQkJCVwKLQkJd2hpbGUgKF9pID4gMCApIHsJCQkJXAotCQkJKihpbnQgKikocmluZyArIHdyaXRlKSA9ICpfdGFiKys7CVwKLQkJCXdyaXRlKys7CQkJCVwKLQkJCV9pLS07CQkJCQlcCi0JCX0JCQkJCQlcCi0JCXdyaXRlID0gMDsJCQkJCVwKLQkJX3RhYiArPSBfaTsJCQkJCVwKLQl9CQkJCQkJCVwKLQl3aGlsZSAoX3NpemUgPiAwKSB7CQkJCQlcCi0JCSoocmluZyArIHdyaXRlKSA9ICpfdGFiKys7CQkJXAotCQl3cml0ZSsrOwkJCQkJXAotCQlfc2l6ZS0tOwkJCQkJXAotCX0JCQkJCQkJXAotCXdyaXRlICY9IG1hc2s7CQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2VuZGlmCQkJCS8qIF9fUkFERU9OX0RSVl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2lycS5jIGIvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faXJxLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwOWFmMzguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faXJxLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjAgKzAsMCBAQAotLyogcmFkZW9uX2lycS5jIC0tIElSUSBoYW5kbGluZyBmb3IgcmFkZW9uIC0qLSBsaW51eC1jIC0qLSAqLwotLyoKLSAqIENvcHlyaWdodCAoQykgVGhlIFdlYXRoZXIgQ2hhbm5lbCwgSW5jLiAgMjAwMi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogVGhlIFdlYXRoZXIgQ2hhbm5lbCAoVE0pIGZ1bmRlZCBUdW5nc3RlbiBHcmFwaGljcyB0byBkZXZlbG9wIHRoZQotICogaW5pdGlhbCByZWxlYXNlIG9mIHRoZSBSYWRlb24gODUwMCBkcml2ZXIgdW5kZXIgdGhlIFhGcmVlODYgbGljZW5zZS4KLSAqIFRoaXMgbm90aWNlIG11c3QgYmUgcHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKiBBdXRob3JzOgotICogICAgS2VpdGggV2hpdHdlbGwgPGtlaXRoQHR1bmdzdGVuZ3JhcGhpY3MuY29tPgotICogICAgTWljaGVsIETDpG56ZXIgPG1pY2hlbEBkYWVuemVyLm5ldD4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJ2LmgiCi0KLXN0YXRpYyBfX2lubGluZV9fIHUzMiByYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJCQkgICAgICB1MzIgbWFzaykKLXsKLQl1MzIgaXJxcyA9IFJBREVPTl9SRUFEKFJBREVPTl9HRU5fSU5UX1NUQVRVUykgJiBtYXNrOwotCWlmIChpcnFzKQotCQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfU1RBVFVTLCBpcnFzKTsKLQlyZXR1cm4gaXJxczsKLX0KLQotLyogSW50ZXJydXB0cyAtIFVzZWQgZm9yIGRldmljZSBzeW5jaHJvbml6YXRpb24gYW5kIGZsdXNoaW5nIGluIHRoZQotICogZm9sbG93aW5nIGNpcmN1bXN0YW5jZXM6Ci0gKgotICogLSBFeGNsdXNpdmUgRkIgYWNjZXNzIHdpdGggaHcgaWRsZToKLSAqICAgIC0gV2FpdCBmb3IgR1VJIElkbGUgKD8pIGludGVycnVwdCwgdGhlbiBkbyBub3JtYWwgZmx1c2guCi0gKgotICogLSBGcmFtZSB0aHJvdHRsaW5nLCBOVl9mZW5jZToKLSAqICAgIC0gRHJvcCBtYXJrZXIgaXJxJ3MgaW50byBjb21tYW5kIHN0cmVhbSBhaGVhZCBvZiB0aW1lLgotICogICAgLSBXYWl0IG9uIGlycSdzIHdpdGggbG9jayAqbm90IGhlbGQqCi0gKiAgICAtIENoZWNrIGVhY2ggZm9yIHRlcm1pbmF0aW9uIGNvbmRpdGlvbgotICoKLSAqIC0gSW50ZXJuYWxseSBpbiBjcF9nZXRidWZmZXIsIGV0YzoKLSAqICAgIC0gYXMgYWJvdmUsIGJ1dCB3YWl0IHdpdGggbG9jayBoZWxkPz8/Ci0gKgotICogTk9URTogVGhlc2UgZnVuY3Rpb25zIGFyZSBtaXNsZWFkaW5nbHkgbmFtZWQgLS0gdGhlIGlycSdzIGFyZW4ndAotICogdGllZCB0byBkbWEgYXQgYWxsLCB0aGlzIGlzIGp1c3QgYSBoYW5nb3ZlciBmcm9tIGRyaSBwcmVoaXN0b3J5LgotICovCi0KLWlycXJldHVybl90IHJhZGVvbl9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAoc3RydWN0IGRybV9kZXZpY2UgKikgYXJnOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUzMiBzdGF0OwotCi0JLyogT25seSBjb25zaWRlciB0aGUgYml0cyB3ZSdyZSBpbnRlcmVzdGVkIGluIC0gb3RoZXJzIGNvdWxkIGJlIHVzZWQKLQkgKiBvdXRzaWRlIHRoZSBEUk0KLQkgKi8KLQlzdGF0ID0gcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZGV2X3ByaXYsIChSQURFT05fU1dfSU5UX1RFU1RfQUNLIHwKLQkJCQkJCSAgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQgfAotCQkJCQkJICBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpKTsKLQlpZiAoIXN0YXQpCi0JCXJldHVybiBJUlFfTk9ORTsKLQotCXN0YXQgJj0gZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnOwotCi0JLyogU1cgaW50ZXJydXB0ICovCi0JaWYgKHN0YXQgJiBSQURFT05fU1dfSU5UX1RFU1QpIHsKLQkJRFJNX1dBS0VVUCgmZGV2X3ByaXYtPnN3aV9xdWV1ZSk7Ci0JfQotCi0JLyogVkJMQU5LIGludGVycnVwdCAqLwotCWlmIChzdGF0ICYgKFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUfFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkpIHsKLQkJaW50IHZibGFua19jcnRjID0gZGV2X3ByaXYtPnZibGFua19jcnRjOwotCi0JCWlmICgodmJsYW5rX2NydGMgJgotCQkgICAgIChEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSB8IERSTV9SQURFT05fVkJMQU5LX0NSVEMyKSkgPT0KLQkJICAgIChEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSB8IERSTV9SQURFT05fVkJMQU5LX0NSVEMyKSkgewotCQkJaWYgKHN0YXQgJiBSQURFT05fQ1JUQ19WQkxBTktfU1RBVCkKLQkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7Ci0JCQlpZiAoc3RhdCAmIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkKLQkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZDIpOwotCQl9IGVsc2UgaWYgKCgoc3RhdCAmIFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUKSAmJgotCQkJICAgKHZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpKSB8fAotCQkJICAgKChzdGF0ICYgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKSAmJgotCQkJICAgICh2YmxhbmtfY3J0YyAmIERSTV9SQURFT05fVkJMQU5LX0NSVEMyKSkpCi0JCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7Ci0KLQkJRFJNX1dBS0VVUCgmZGV2LT52YmxfcXVldWUpOwotCQlkcm1fdmJsX3NlbmRfc2lnbmFscyhkZXYpOwotCX0KLQotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZW1pdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBpbnQgcmV0OwotCVJJTkdfTE9DQUxTOwotCi0JYXRvbWljX2luYygmZGV2X3ByaXYtPnN3aV9lbWl0dGVkKTsKLQlyZXQgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPnN3aV9lbWl0dGVkKTsKLQotCUJFR0lOX1JJTkcoNCk7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9MQVNUX1NXSV9SRUcsIHJldCk7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9HRU5fSU5UX1NUQVRVUywgUkFERU9OX1NXX0lOVF9GSVJFKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQlDT01NSVRfUklORygpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCByYWRlb25fd2FpdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBzd2lfbnIpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KLQkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoUkFERU9OX1JFQUQoUkFERU9OX0xBU1RfU1dJX1JFRykgPj0gc3dpX25yKQotCQlyZXR1cm4gMDsKLQotCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKLQotCURSTV9XQUlUX09OKHJldCwgZGV2X3ByaXYtPnN3aV9xdWV1ZSwgMyAqIERSTV9IWiwKLQkJICAgIFJBREVPTl9SRUFEKFJBREVPTl9MQVNUX1NXSV9SRUcpID49IHN3aV9ucik7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJCXVuc2lnbmVkIGludCAqc2VxdWVuY2UsIGludCBjcnRjKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGludCBjdXJfdmJsYW5rOwotCWludCByZXQgPSAwOwotCWludCBhY2sgPSAwOwotCWF0b21pY190ICpjb3VudGVyOwotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChjcnRjID09IERSTV9SQURFT05fVkJMQU5LX0NSVEMxKSB7Ci0JCWNvdW50ZXIgPSAmZGV2LT52YmxfcmVjZWl2ZWQ7Ci0JCWFjayB8PSBSQURFT05fQ1JUQ19WQkxBTktfU1RBVDsKLQl9IGVsc2UgaWYgKGNydGMgPT0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpIHsKLQkJY291bnRlciA9ICZkZXYtPnZibF9yZWNlaXZlZDI7Ci0JCWFjayB8PSBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQ7Ci0JfSBlbHNlCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZGV2X3ByaXYsIGFjayk7Ci0KLQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQkvKiBBc3N1bWUgdGhhdCB0aGUgdXNlciBoYXMgbWlzc2VkIHRoZSBjdXJyZW50IHNlcXVlbmNlIG51bWJlcgotCSAqIGJ5IGFib3V0IGEgZGF5IHJhdGhlciB0aGFuIHNoZSB3YW50cyB0byB3YWl0IGZvciB5ZWFycwotCSAqIHVzaW5nIHZlcnRpY2FsIGJsYW5rcy4uLgotCSAqLwotCURSTV9XQUlUX09OKHJldCwgZGV2LT52YmxfcXVldWUsIDMgKiBEUk1fSFosCi0JCSAgICAoKChjdXJfdmJsYW5rID0gYXRvbWljX3JlYWQoY291bnRlcikpCi0JCSAgICAgIC0gKnNlcXVlbmNlKSA8PSAoMSA8PCAyMykpKTsKLQotCSpzZXF1ZW5jZSA9IGN1cl92Ymxhbms7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1pbnQgcmFkZW9uX2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQotewotCXJldHVybiByYWRlb25fZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsIERSTV9SQURFT05fVkJMQU5LX0NSVEMxKTsKLX0KLQotaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCi17Ci0JcmV0dXJuIHJhZGVvbl9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpOwotfQotCi0vKiBOZWVkcyB0aGUgbG9jayBhcyBpdCB0b3VjaGVzIHRoZSByaW5nLgotICovCi1pbnQgcmFkZW9uX2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9pcnFfZW1pdF90ICplbWl0ID0gZGF0YTsKLQlpbnQgcmVzdWx0OwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJlc3VsdCA9IHJhZGVvbl9lbWl0X2lycShkZXYpOwotCi0JaWYgKERSTV9DT1BZX1RPX1VTRVIoZW1pdC0+aXJxX3NlcSwgJnJlc3VsdCwgc2l6ZW9mKGludCkpKSB7Ci0JCURSTV9FUlJPUigiY29weV90b191c2VyXG4iKTsKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIERvZXNuJ3QgbmVlZCB0aGUgaGFyZHdhcmUgbG9jay4KLSAqLwotaW50IHJhZGVvbl9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25faXJxX3dhaXRfdCAqaXJxd2FpdCA9IGRhdGE7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gcmFkZW9uX3dhaXRfaXJxKGRldiwgaXJxd2FpdC0+aXJxX3NlcSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWcgPSBSQURFT05fU1dfSU5UX0VOQUJMRTsKLQlpZiAoZGV2X3ByaXYtPnZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpCi0JCWRldl9wcml2LT5pcnFfZW5hYmxlX3JlZyB8PSBSQURFT05fQ1JUQ19WQkxBTktfTUFTSzsKLQotCWlmIChkZXZfcHJpdi0+dmJsYW5rX2NydGMgJiBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikKLQkJZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnIHw9IFJBREVPTl9DUlRDMl9WQkxBTktfTUFTSzsKLQotCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9DTlRMLCBkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWcpOwotCWRldl9wcml2LT5pcnFfZW5hYmxlZCA9IDE7Ci19Ci0KLS8qIGRybV9kbWEuaCBob29rcwotKi8KLXZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQotCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQotCS8qIERpc2FibGUgKmFsbCogaW50ZXJydXB0cyAqLwotCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9DTlRMLCAwKTsKLQotCS8qIENsZWFyIGJpdHMgaWYgdGhleSdyZSBhbHJlYWR5IGhpZ2ggKi8KLQlyYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkZXZfcHJpdiwgKFJBREVPTl9TV19JTlRfVEVTVF9BQ0sgfAotCQkJCQkgICBSQURFT05fQ1JUQ19WQkxBTktfU1RBVCB8Ci0JCQkJCSAgIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkpOwotfQotCi12b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCi0JYXRvbWljX3NldCgmZGV2X3ByaXYtPnN3aV9lbWl0dGVkLCAwKTsKLQlEUk1fSU5JVF9XQUlUUVVFVUUoJmRldl9wcml2LT5zd2lfcXVldWUpOwotCi0JcmFkZW9uX2VuYWJsZV9pbnRlcnJ1cHQoZGV2KTsKLX0KLQotdm9pZCByYWRlb25fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KLQkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JaWYgKCFkZXZfcHJpdikKLQkJcmV0dXJuOwotCi0JZGV2X3ByaXYtPmlycV9lbmFibGVkID0gMDsKLQotCS8qIERpc2FibGUgKmFsbCogaW50ZXJydXB0cyAqLwotCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9DTlRMLCAwKTsKLX0KLQotCi1pbnQgcmFkZW9uX3ZibGFua19jcnRjX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUzMiBmbGFnOwotCXUzMiB2YWx1ZTsKLQotCWZsYWcgPSBSQURFT05fUkVBRChSQURFT05fR0VOX0lOVF9DTlRMKTsKLQl2YWx1ZSA9IDA7Ci0KLQlpZiAoZmxhZyAmIFJBREVPTl9DUlRDX1ZCTEFOS19NQVNLKQotCQl2YWx1ZSB8PSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMTsKLQotCWlmIChmbGFnICYgUkFERU9OX0NSVEMyX1ZCTEFOS19NQVNLKQotCQl2YWx1ZSB8PSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMjsKLQlyZXR1cm4gdmFsdWU7Ci19Ci0KLWludCByYWRlb25fdmJsYW5rX2NydGNfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludDY0X3QgdmFsdWUpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JaWYgKHZhbHVlICYgfihEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSB8IERSTV9SQURFT05fVkJMQU5LX0NSVEMyKSkgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIGludmFsaWQgY3J0YyAweCV4XG4iLCAodW5zaWduZWQgaW50KXZhbHVlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWRldl9wcml2LT52YmxhbmtfY3J0YyA9ICh1bnNpZ25lZCBpbnQpdmFsdWU7Ci0JcmFkZW9uX2VuYWJsZV9pbnRlcnJ1cHQoZGV2KTsKLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX3N0YXRlLmMgYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9zdGF0ZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Zjc1NTEyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX3N0YXRlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTkyICswLDAgQEAKLS8qIHJhZGVvbl9zdGF0ZS5jIC0tIFN0YXRlIHN1cHBvcnQgZm9yIFJhZGVvbiAtKi0gbGludXgtYyAtKi0gKi8KLS8qCi0gKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0jaW5jbHVkZSAiZHJtLmgiCi0jaW5jbHVkZSAiZHJtX3NhcmVhLmgiCi0jaW5jbHVkZSAicmFkZW9uX2RybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgY2xpZW50IHN0YXRlIGNoZWNraW5nIGFuZCBmaXh1cAotICovCi0KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqCi0JCQkJCQkgICAgZGV2X3ByaXYsCi0JCQkJCQkgICAgc3RydWN0IGRybV9maWxlICogZmlsZV9wcml2LAotCQkJCQkJICAgIHUzMiAqb2Zmc2V0KQotewotCXU2NCBvZmYgPSAqb2Zmc2V0OwotCXUzMiBmYl9lbmQgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gKyBkZXZfcHJpdi0+ZmJfc2l6ZSAtIDE7Ci0Jc3RydWN0IGRybV9yYWRlb25fZHJpdmVyX2ZpbGVfZmllbGRzICpyYWRlb25fcHJpdjsKLQotCS8qIEhybSAuLi4gdGhlIHN0b3J5IG9mIHRoZSBvZmZzZXQgLi4uIFNvIHRoaXMgZnVuY3Rpb24gY29udmVydHMKLQkgKiB0aGUgdmFyaW91cyBpZGVhcyBvZiB3aGF0IHVzZXJsYW5kIGNsaWVudHMgbWlnaHQgaGF2ZSBmb3IgYW4KLQkgKiBvZmZzZXQgaW4gdGhlIGNhcmQgYWRkcmVzcyBzcGFjZSBpbnRvIGFuIG9mZnNldCBpbnRvIHRoZSBjYXJkCi0JICogYWRkcmVzcyBzcGFjZSA6KSBTbyB3aXRoIGEgc2FuZSBjbGllbnQsIGl0IHNob3VsZCBqdXN0IGtlZXAKLQkgKiB0aGUgdmFsdWUgaW50YWN0IGFuZCBqdXN0IGRvIHNvbWUgYm91bmRhcnkgY2hlY2tpbmcuIEhvd2V2ZXIsCi0JICogbm90IGFsbCBjbGllbnRzIGFyZSBzYW5lLiBTb21lIG9sZGVyIGNsaWVudHMgcGFzcyB1cyAwIGJhc2VkCi0JICogb2Zmc2V0cyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGZyYW1lYnVmZmVyIGFuZCBzb21lIG1heQotCSAqIGFzc3VtZSB0aGUgQUdQIGFwZXJ0dXJlIGl0IGFwcGVuZGVkIHRvIHRoZSBmcmFtZWJ1ZmZlciwgc28gd2UKLQkgKiB0cnkgdG8gZGV0ZWN0IHRob3NlIGNhc2VzIGFuZCBmaXggdGhlbSB1cC4KLQkgKgotCSAqIE5vdGU6IEl0IG1pZ2h0IGJlIGEgZ29vZCBpZGVhIGhlcmUgdG8gbWFrZSBzdXJlIHRoZSBvZmZzZXQgbGFuZHMKLQkgKiBpbiBzb21lICJhbGxvd2VkIiBhcmVhIHRvIHByb3RlY3QgdGhpbmdzIGxpa2UgdGhlIFBDSUUgR0FSVC4uLgotCSAqLwotCi0JLyogRmlyc3QsIHRoZSBiZXN0IGNhc2UsIHRoZSBvZmZzZXQgYWxyZWFkeSBsYW5kcyBpbiBlaXRoZXIgdGhlCi0JICogZnJhbWVidWZmZXIgb3IgdGhlIEdBUlQgbWFwcGVkIHNwYWNlCi0JICovCi0JaWYgKHJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIG9mZikpCi0JCXJldHVybiAwOwotCi0JLyogT2ssIHRoYXQgZGlkbid0IGhhcHBlbi4uLiBub3cgY2hlY2sgaWYgd2UgaGF2ZSBhIHplcm8gYmFzZWQKLQkgKiBvZmZzZXQgdGhhdCBmaXRzIGluIHRoZSBmcmFtZWJ1ZmZlciArIGdhcnQgc3BhY2UsIGFwcGx5IHRoZQotCSAqIG1hZ2ljIG9mZnNldCB3ZSBnZXQgZnJvbSBTRVRQQVJBTSBvciBjYWxjdWxhdGVkIGZyb20gZmJfbG9jYXRpb24KLQkgKi8KLQlpZiAob2ZmIDwgKGRldl9wcml2LT5mYl9zaXplICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkpIHsKLQkJcmFkZW9uX3ByaXYgPSBmaWxlX3ByaXYtPmRyaXZlcl9wcml2OwotCQlvZmYgKz0gcmFkZW9uX3ByaXYtPnJhZGVvbl9mYl9kZWx0YTsKLQl9Ci0KLQkvKiBGaW5hbGx5LCBhc3N1bWUgd2UgYWltZWQgYXQgYSBHQVJUIG9mZnNldCBpZiBiZXlvbmQgdGhlIGZiICovCi0JaWYgKG9mZiA+IGZiX2VuZCkKLQkJb2ZmID0gb2ZmIC0gZmJfZW5kIC0gMSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0OwotCi0JLyogTm93IHJlY2hlY2sgYW5kIGZhaWwgaWYgb3V0IG9mIGJvdW5kcyAqLwotCWlmIChyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBvZmYpKSB7Ci0JCURSTV9ERUJVRygib2Zmc2V0IGZpeGVkIHVwIHRvIDB4JXhcbiIsICh1bnNpZ25lZCBpbnQpb2ZmKTsKLQkJKm9mZnNldCA9IG9mZjsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAtRUlOVkFMOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXRzKGRybV9yYWRlb25fcHJpdmF0ZV90ICoKLQkJCQkJCSAgICAgZGV2X3ByaXYsCi0JCQkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJCQkJICAgICBpbnQgaWQsIHUzMiAqZGF0YSkKLXsKLQlzd2l0Y2ggKGlkKSB7Ci0KLQljYXNlIFJBREVPTl9FTUlUX1BQX01JU0M6Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkgICAgJmRhdGFbKFJBREVPTl9SQjNEX0RFUFRIT0ZGU0VUIC0gUkFERU9OX1BQX01JU0MpIC8gNF0pKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgZGVwdGggYnVmZmVyIG9mZnNldFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OX0VNSVRfUFBfQ05UTDoKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCSAgICAmZGF0YVsoUkFERU9OX1JCM0RfQ09MT1JPRkZTRVQgLSBSQURFT05fUFBfQ05UTCkgLyA0XSkpIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCBjb2xvdXIgYnVmZmVyIG9mZnNldFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMToKLQljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF8yOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF81OgotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCSAgJmRhdGFbMF0pKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgUjIwMCB0ZXh0dXJlIG9mZnNldFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzE6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9UWEZJTFRFUl8yOgotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJICAgICZkYXRhWyhSQURFT05fUFBfVFhPRkZTRVRfMCAtIFJBREVPTl9QUF9UWEZJTFRFUl8wKSAvIDRdKSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIFIxMDAgdGV4dHVyZSBvZmZzZXRcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18xOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMjoKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU180OgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfNTp7Ci0JCQlpbnQgaTsKLQkJCWZvciAoaSA9IDA7IGkgPCA1OyBpKyspIHsKLQkJCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsCi0JCQkJCQkJCSAgZmlsZV9wcml2LAotCQkJCQkJCQkgICZkYXRhW2ldKSkgewotCQkJCQlEUk1fRVJST1IKLQkJCQkJICAgICgiSW52YWxpZCBSMjAwIGN1YmljIHRleHR1cmUgb2Zmc2V0XG4iKTsKLQkJCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQkJfQotCQkJfQotCQkJYnJlYWs7Ci0JCX0KLQotCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDE6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QyOnsKLQkJCWludCBpOwotCQkJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewotCQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwKLQkJCQkJCQkJICBmaWxlX3ByaXYsCi0JCQkJCQkJCSAgJmRhdGFbaV0pKSB7Ci0JCQkJCURSTV9FUlJPUgotCQkJCQkgICAgKCJJbnZhbGlkIFIxMDAgY3ViaWMgdGV4dHVyZSBvZmZzZXRcbiIpOwotCQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFIyMDBfRU1JVF9WQVBfQ1RMOnsKLQkJCVJJTkdfTE9DQUxTOwotCQkJQkVHSU5fUklORygyKTsKLQkJCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfVENMX1NUQVRFX0ZMVVNILCAwKTsKLQkJCUFEVkFOQ0VfUklORygpOwotCQl9Ci0JCWJyZWFrOwotCi0JY2FzZSBSQURFT05fRU1JVF9SQjNEX0NPTE9SUElUQ0g6Ci0JY2FzZSBSQURFT05fRU1JVF9SRV9MSU5FX1BBVFRFUk46Ci0JY2FzZSBSQURFT05fRU1JVF9TRV9MSU5FX1dJRFRIOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfTFVNX01BVFJJWDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX1JPVF9NQVRSSVhfMDoKLQljYXNlIFJBREVPTl9FTUlUX1JCM0RfU1RFTkNJTFJFRk1BU0s6Ci0JY2FzZSBSQURFT05fRU1JVF9TRV9WUE9SVF9YU0NBTEU6Ci0JY2FzZSBSQURFT05fRU1JVF9TRV9DTlRMOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfQ05UTF9TVEFUVVM6Ci0JY2FzZSBSQURFT05fRU1JVF9SRV9NSVNDOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzA6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9CT1JERVJfQ09MT1JfMToKLQljYXNlIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8yOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfWkJJQVNfRkFDVE9SOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfVENMX09VVFBVVF9WVFhfRk1UOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfVENMX01BVEVSSUFMX0VNTUlTU0lWRV9SRUQ6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfMDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8xOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzI6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfMzoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF80OgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzU6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNjoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF83OgotCWNhc2UgUjIwMF9FTUlUX1RDTF9MSUdIVF9NT0RFTF9DVExfMDoKLQljYXNlIFIyMDBfRU1JVF9URkFDVE9SXzA6Ci0JY2FzZSBSMjAwX0VNSVRfVlRYX0ZNVF8wOgotCWNhc2UgUjIwMF9FTUlUX01BVFJJWF9TRUxFQ1RfMDoKLQljYXNlIFIyMDBfRU1JVF9URVhfUFJPQ19DVExfMjoKLQljYXNlIFIyMDBfRU1JVF9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMToKLQljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8yOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl81OgotCWNhc2UgUjIwMF9FTUlUX1ZURV9DTlRMOgotCWNhc2UgUjIwMF9FTUlUX09VVFBVVF9WVFhfQ09NUF9TRUw6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVEFNX0RFQlVHMzoKLQljYXNlIFIyMDBfRU1JVF9QUF9DTlRMX1g6Ci0JY2FzZSBSMjAwX0VNSVRfUkIzRF9ERVBUSFhZX09GRlNFVDoKLQljYXNlIFIyMDBfRU1JVF9SRV9BVVhfU0NJU1NPUl9DTlRMOgotCWNhc2UgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMDoKLQljYXNlIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzE6Ci0JY2FzZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8yOgotCWNhc2UgUjIwMF9FTUlUX1NFX1ZBUF9DTlRMX1NUQVRVUzoKLQljYXNlIFIyMDBfRU1JVF9TRV9WVFhfU1RBVEVfQ05UTDoKLQljYXNlIFIyMDBfRU1JVF9SRV9QT0lOVFNJWkU6Ci0JY2FzZSBSMjAwX0VNSVRfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMToKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18yOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfNDoKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU181OgotCWNhc2UgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzE6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8yOgotCWNhc2UgUjIwMF9FTUlUX1JCM0RfQkxFTkRDT0xPUjoKLQljYXNlIFIyMDBfRU1JVF9UQ0xfUE9JTlRfU1BSSVRFX0NOVEw6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18wOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMToKLQljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzI6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFJJX1BFUkZfQ05UTDoKLQljYXNlIFIyMDBfRU1JVF9QUF9BRlNfMDoKLQljYXNlIFIyMDBfRU1JVF9QUF9BRlNfMToKLQljYXNlIFIyMDBfRU1JVF9BVEZfVEZBQ1RPUjoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8wOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzE6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMjoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8zOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzQ6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfNToKLQljYXNlIFIyMDBfRU1JVF9WQVBfUFZTX0NOVEw6Ci0JCS8qIFRoZXNlIHBhY2tldHMgZG9uJ3QgY29udGFpbiBtZW1vcnkgb2Zmc2V0cyAqLwotCQlicmVhazsKLQotCWRlZmF1bHQ6Ci0JCURSTV9FUlJPUigiVW5rbm93biBzdGF0ZSBwYWNrZXQgSUQgJWRcbiIsIGlkKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldDMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKgotCQkJCQkJICAgICBkZXZfcHJpdiwKLQkJCQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkJCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqCi0JCQkJCQkgICAgIGNtZGJ1ZiwKLQkJCQkJCSAgICAgdW5zaWduZWQgaW50ICpjbWRzeikKLXsKLQl1MzIgKmNtZCA9ICh1MzIgKikgY21kYnVmLT5idWY7Ci0JdTMyIG9mZnNldCwgbmFycmF5czsKLQlpbnQgY291bnQsIGksIGs7Ci0KLQkqY21kc3ogPSAyICsgKChjbWRbMF0gJiBSQURFT05fQ1BfUEFDS0VUX0NPVU5UX01BU0spID4+IDE2KTsKLQotCWlmICgoY21kWzBdICYgMHhjMDAwMDAwMCkgIT0gUkFERU9OX0NQX1BBQ0tFVDMpIHsKLQkJRFJNX0VSUk9SKCJOb3QgYSB0eXBlIDMgcGFja2V0XG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKDQgKiAqY21kc3ogPiBjbWRidWYtPmJ1ZnN6KSB7Ci0JCURSTV9FUlJPUigiUGFja2V0IHNpemUgbGFyZ2VyIHRoYW4gc2l6ZSBvZiBkYXRhIHByb3ZpZGVkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3dpdGNoKGNtZFswXSAmIDB4ZmYwMCkgewotCS8qIFhYWCBBcmUgdGhlcmUgb2xkIGRyaXZlcnMgbmVlZGluZyBvdGhlciBwYWNrZXRzPyAqLwotCi0JY2FzZSBSQURFT05fM0RfRFJBV19JTU1EOgotCWNhc2UgUkFERU9OXzNEX0RSQVdfVkJVRjoKLQljYXNlIFJBREVPTl8zRF9EUkFXX0lORFg6Ci0JY2FzZSBSQURFT05fV0FJVF9GT1JfSURMRToKLQljYXNlIFJBREVPTl9DUF9OT1A6Ci0JY2FzZSBSQURFT05fM0RfQ0xFQVJfWk1BU0s6Ci0vKgljYXNlIFJBREVPTl9DUF9ORVhUX0NIQVI6Ci0JY2FzZSBSQURFT05fQ1BfUExZX05FWFRTQ0FOOgotCWNhc2UgUkFERU9OX0NQX1NFVF9TQ0lTU09SUzogKi8gLyogcHJvYmFibHkgc2FmZSBidXQgd2lsbCBuZXZlciBuZWVkIHRoZW0/ICovCi0JCS8qIHRoZXNlIHBhY2tldHMgYXJlIHNhZmUgKi8KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX0lNTURfMjoKLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX1ZCVUZfMjoKLQljYXNlIFJBREVPTl9DUF8zRF9EUkFXX0lORFhfMjoKLQljYXNlIFJBREVPTl8zRF9DTEVBUl9ISVo6Ci0JCS8qIHNhZmUgYnV0IHIyMDAgb25seSAqLwotCQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uICE9IFVDT0RFX1IyMDApIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCAzZCBwYWNrZXQgZm9yIHIxMDAtY2xhc3MgY2hpcFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OXzNEX0xPQURfVkJQTlRSOgotCQljb3VudCA9IChjbWRbMF0gPj4gMTYpICYgMHgzZmZmOwotCi0JCWlmIChjb3VudCA+IDE4KSB7IC8qIDEyIGFycmF5cyBtYXggKi8KLQkJCURSTV9FUlJPUigiVG9vIGxhcmdlIHBheWxvYWQgaW4gM0RfTE9BRF9WQlBOVFIgKGNvdW50PSVkKVxuIiwKLQkJCQkgIGNvdW50KTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJLyogY2FyZWZ1bGx5IGNoZWNrIHBhY2tldCBjb250ZW50cyAqLwotCQluYXJyYXlzID0gY21kWzFdICYgfjB4YzAwMDsKLQkJayA9IDA7Ci0JCWkgPSAyOwotCQl3aGlsZSAoKGsgPCBuYXJyYXlzKSAmJiAoaSA8IChjb3VudCArIDIpKSkgewotCQkJaSsrOwkJLyogc2tpcCBhdHRyaWJ1dGUgZmllbGQgKi8KLQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJCSAgJmNtZFtpXSkpIHsKLQkJCQlEUk1fRVJST1IKLQkJCQkgICAgKCJJbnZhbGlkIG9mZnNldCAoaz0lZCBpPSVkKSBpbiAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQuXG4iLAotCQkJCSAgICAgaywgaSk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQlrKys7Ci0JCQlpKys7Ci0JCQlpZiAoayA9PSBuYXJyYXlzKQotCQkJCWJyZWFrOwotCQkJLyogaGF2ZSBvbmUgbW9yZSB0byBwcm9jZXNzLCB0aGV5IGNvbWUgaW4gcGFpcnMgKi8KLQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwKLQkJCQkJCQkgIGZpbGVfcHJpdiwgJmNtZFtpXSkpCi0JCQl7Ci0JCQkJRFJNX0VSUk9SCi0JCQkJICAgICgiSW52YWxpZCBvZmZzZXQgKGs9JWQgaT0lZCkgaW4gM0RfTE9BRF9WQlBOVFIgcGFja2V0LlxuIiwKLQkJCQkgICAgIGssIGkpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCQkJaysrOwotCQkJaSsrOwotCQl9Ci0JCS8qIGRvIHRoZSBjb3VudHMgbWF0Y2ggd2hhdCB3ZSBleHBlY3QgPyAqLwotCQlpZiAoKGsgIT0gbmFycmF5cykgfHwgKGkgIT0gKGNvdW50ICsgMikpKSB7Ci0JCQlEUk1fRVJST1IKLQkJCSAgICAoIk1hbGZvcm1lZCAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQgKGs9JWQgaT0lZCBuYXJyYXlzPSVkIGNvdW50KzE9JWQpLlxuIiwKLQkJCSAgICAgIGssIGksIG5hcnJheXMsIGNvdW50ICsgMSk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OXzNEX1JORFJfR0VOX0lORFhfUFJJTToKLQkJaWYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiAhPSBVQ09ERV9SMTAwKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgM2QgcGFja2V0IGZvciByMjAwLWNsYXNzIGNoaXBcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsICZjbWRbMV0pKSB7Ci0JCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHJuZHJfZ2VuX2luZHggb2Zmc2V0XG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OX0NQX0lORFhfQlVGRkVSOgotCQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uICE9IFVDT0RFX1IyMDApIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCAzZCBwYWNrZXQgZm9yIHIxMDAtY2xhc3MgY2hpcFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoKGNtZFsxXSAmIDB4ODAwMGZmZmYpICE9IDB4ODAwMDA4MTApIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciByZWcgYWRkcmVzcyAlMDhYXG4iLCBjbWRbMV0pOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsICZjbWRbMl0pKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgaW5keF9idWZmZXIgb2Zmc2V0IGlzICUwOFhcbiIsIGNtZFsyXSk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OX0NOVExfSE9TVERBVEFfQkxUOgotCWNhc2UgUkFERU9OX0NOVExfUEFJTlRfTVVMVEk6Ci0JY2FzZSBSQURFT05fQ05UTF9CSVRCTFRfTVVMVEk6Ci0JCS8qIE1TQiBvZiBvcGNvZGU6IG5leHQgRFdPUkQgR1VJX0NOVEwgKi8KLQkJaWYgKGNtZFsxXSAmIChSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTAotCQkJICAgICAgfCBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKLQkJCW9mZnNldCA9IGNtZFsyXSA8PCAxMDsKLQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldAotCQkJICAgIChkZXZfcHJpdiwgZmlsZV9wcml2LCAmb2Zmc2V0KSkgewotCQkJCURSTV9FUlJPUigiSW52YWxpZCBmaXJzdCBwYWNrZXQgb2Zmc2V0XG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJCWNtZFsyXSA9IChjbWRbMl0gJiAweGZmYzAwMDAwKSB8IG9mZnNldCA+PiAxMDsKLQkJfQotCi0JCWlmICgoY21kWzFdICYgUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwpICYmCi0JCSAgICAoY21kWzFdICYgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwpKSB7Ci0JCQlvZmZzZXQgPSBjbWRbM10gPDwgMTA7Ci0JCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQKLQkJCSAgICAoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJm9mZnNldCkpIHsKLQkJCQlEUk1fRVJST1IoIkludmFsaWQgc2Vjb25kIHBhY2tldCBvZmZzZXRcbiIpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCQkJY21kWzNdID0gKGNtZFszXSAmIDB4ZmZjMDAwMDApIHwgb2Zmc2V0ID4+IDEwOwotCQl9Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIHBhY2tldCB0eXBlICV4XG4iLCBjbWRbMF0gJiAweGZmMDApOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ1AgaGFyZHdhcmUgc3RhdGUgcHJvZ3JhbW1pbmcgZnVuY3Rpb25zCi0gKi8KLQotc3RhdGljIF9faW5saW5lX18gdm9pZCByYWRlb25fZW1pdF9jbGlwX3JlY3QoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKLQkJCQkJICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqIGJveCkKLXsKLQlSSU5HX0xPQ0FMUzsKLQotCURSTV9ERUJVRygiICAgYm94OiAgeDE9JWQgeTE9JWQgIHgyPSVkIHkyPSVkXG4iLAotCQkgIGJveC0+eDEsIGJveC0+eTEsIGJveC0+eDIsIGJveC0+eTIpOwotCi0JQkVHSU5fUklORyg0KTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9UT1BfTEVGVCwgMCkpOwotCU9VVF9SSU5HKChib3gtPnkxIDw8IDE2KSB8IGJveC0+eDEpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX1dJRFRIX0hFSUdIVCwgMCkpOwotCU9VVF9SSU5HKCgoYm94LT55MiAtIDEpIDw8IDE2KSB8IChib3gtPngyIC0gMSkpOwotCUFEVkFOQ0VfUklORygpOwotfQotCi0vKiBFbWl0IDEuMSBzdGF0ZQotICovCi1zdGF0aWMgaW50IHJhZGVvbl9lbWl0X3N0YXRlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCi0JCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJICAgICBkcm1fcmFkZW9uX2NvbnRleHRfcmVnc190ICogY3R4LAotCQkJICAgICBkcm1fcmFkZW9uX3RleHR1cmVfcmVnc190ICogdGV4LAotCQkJICAgICB1bnNpZ25lZCBpbnQgZGlydHkpCi17Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJkaXJ0eT0weCUwOHhcbiIsIGRpcnR5KTsKLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfQ09OVEVYVCkgewotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCSAgJmN0eC0+cmIzZF9kZXB0aG9mZnNldCkpIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCBkZXB0aCBidWZmZXIgb2Zmc2V0XG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgICZjdHgtPnJiM2RfY29sb3JvZmZzZXQpKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgZGVwdGggYnVmZmVyIG9mZnNldFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCUJFR0lOX1JJTkcoMTQpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9NSVNDLCA2KSk7Ci0JCU9VVF9SSU5HKGN0eC0+cHBfbWlzYyk7Ci0JCU9VVF9SSU5HKGN0eC0+cHBfZm9nX2NvbG9yKTsKLQkJT1VUX1JJTkcoY3R4LT5yZV9zb2xpZF9jb2xvcik7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9ibGVuZGNudGwpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfZGVwdGhvZmZzZXQpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfZGVwdGhwaXRjaCk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF96c3RlbmNpbGNudGwpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9DTlRMLCAyKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cHBfY250bCk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9jbnRsKTsKLQkJT1VUX1JJTkcoY3R4LT5yYjNkX2NvbG9yb2Zmc2V0KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9DT0xPUlBJVENILCAwKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9jb2xvcnBpdGNoKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9WRVJURk1UKSB7Ci0JCUJFR0lOX1JJTkcoMik7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0NPT1JEX0ZNVCwgMCkpOwotCQlPVVRfUklORyhjdHgtPnNlX2Nvb3JkX2ZtdCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfTElORSkgewotCQlCRUdJTl9SSU5HKDUpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9MSU5FX1BBVFRFUk4sIDEpKTsKLQkJT1VUX1JJTkcoY3R4LT5yZV9saW5lX3BhdHRlcm4pOwotCQlPVVRfUklORyhjdHgtPnJlX2xpbmVfc3RhdGUpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9MSU5FX1dJRFRILCAwKSk7Ci0JCU9VVF9SSU5HKGN0eC0+c2VfbGluZV93aWR0aCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfQlVNUE1BUCkgewotCQlCRUdJTl9SSU5HKDUpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9MVU1fTUFUUklYLCAwKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cHBfbHVtX21hdHJpeCk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX1JPVF9NQVRSSVhfMCwgMSkpOwotCQlPVVRfUklORyhjdHgtPnBwX3JvdF9tYXRyaXhfMCk7Ci0JCU9VVF9SSU5HKGN0eC0+cHBfcm90X21hdHJpeF8xKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9NQVNLUykgewotCQlCRUdJTl9SSU5HKDQpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLCAyKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9zdGVuY2lscmVmbWFzayk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9yb3BjbnRsKTsKLQkJT1VUX1JJTkcoY3R4LT5yYjNkX3BsYW5lbWFzayk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVklFV1BPUlQpIHsKLQkJQkVHSU5fUklORyg3KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVlBPUlRfWFNDQUxFLCA1KSk7Ci0JCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfeHNjYWxlKTsKLQkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF94b2Zmc2V0KTsKLQkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF95c2NhbGUpOwotCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3lvZmZzZXQpOwotCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3pzY2FsZSk7Ci0JCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfem9mZnNldCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfU0VUVVApIHsKLQkJQkVHSU5fUklORyg0KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfQ05UTCwgMCkpOwotCQlPVVRfUklORyhjdHgtPnNlX2NudGwpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9DTlRMX1NUQVRVUywgMCkpOwotCQlPVVRfUklORyhjdHgtPnNlX2NudGxfc3RhdHVzKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9NSVNDKSB7Ci0JCUJFR0lOX1JJTkcoMik7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX01JU0MsIDApKTsKLQkJT1VUX1JJTkcoY3R4LT5yZV9taXNjKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9URVgwKSB7Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJICAmdGV4WzBdLnBwX3R4b2Zmc2V0KSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHRleHR1cmUgb2Zmc2V0IGZvciB1bml0IDBcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlCRUdJTl9SSU5HKDkpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9UWEZJTFRFUl8wLCA1KSk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90eGZpbHRlcik7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90eGZvcm1hdCk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90eG9mZnNldCk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90eGNibGVuZCk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90eGFibGVuZCk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF90ZmFjdG9yKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQk9SREVSX0NPTE9SXzAsIDApKTsKLQkJT1VUX1JJTkcodGV4WzBdLnBwX2JvcmRlcl9jb2xvcik7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVEVYMSkgewotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCSAgJnRleFsxXS5wcF90eG9mZnNldCkpIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCB0ZXh0dXJlIG9mZnNldCBmb3IgdW5pdCAxXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJQkVHSU5fUklORyg5KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfVFhGSUxURVJfMSwgNSkpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdHhmaWx0ZXIpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdHhmb3JtYXQpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdHhvZmZzZXQpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdHhjYmxlbmQpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdHhhYmxlbmQpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfdGZhY3Rvcik7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xLCAwKSk7Ci0JCU9VVF9SSU5HKHRleFsxXS5wcF9ib3JkZXJfY29sb3IpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1RFWDIpIHsKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgICZ0ZXhbMl0ucHBfdHhvZmZzZXQpKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgdGV4dHVyZSBvZmZzZXQgZm9yIHVuaXQgMlxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCUJFR0lOX1JJTkcoOSk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX1RYRklMVEVSXzIsIDUpKTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3R4ZmlsdGVyKTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3R4Zm9ybWF0KTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3R4b2Zmc2V0KTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3R4Y2JsZW5kKTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3R4YWJsZW5kKTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX3RmYWN0b3IpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMiwgMCkpOwotCQlPVVRfUklORyh0ZXhbMl0ucHBfYm9yZGVyX2NvbG9yKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIEVtaXQgMS4yIHN0YXRlCi0gKi8KLXN0YXRpYyBpbnQgcmFkZW9uX2VtaXRfc3RhdGUyKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCSAgICAgIGRybV9yYWRlb25fc3RhdGVfdCAqIHN0YXRlKQotewotCVJJTkdfTE9DQUxTOwotCi0JaWYgKHN0YXRlLT5kaXJ0eSAmIFJBREVPTl9VUExPQURfWkJJQVMpIHsKLQkJQkVHSU5fUklORygzKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfWkJJQVNfRkFDVE9SLCAxKSk7Ci0JCU9VVF9SSU5HKHN0YXRlLT5jb250ZXh0Mi5zZV96Ymlhc19mYWN0b3IpOwotCQlPVVRfUklORyhzdGF0ZS0+Y29udGV4dDIuc2VfemJpYXNfY29uc3RhbnQpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlyZXR1cm4gcmFkZW9uX2VtaXRfc3RhdGUoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJnN0YXRlLT5jb250ZXh0LAotCQkJCSBzdGF0ZS0+dGV4LCBzdGF0ZS0+ZGlydHkpOwotfQotCi0vKiBOZXcgKDEuMykgc3RhdGUgbWVjaGFuaXNtLiAgMyBjb21tYW5kcyAocGFja2V0LCBzY2FsYXIsIHZlY3RvcikgaW4KLSAqIDEuMyBjbWRidWZmZXJzIGFsbG93IGFsbCBwcmV2aW91cyBzdGF0ZSB0byBiZSB1cGRhdGVkIGFzIHdlbGwgYXMKLSAqIHRoZSB0Y2wgc2NhbGFyIGFuZCB2ZWN0b3IgYXJlYXMuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgewotCWludCBzdGFydDsKLQlpbnQgbGVuOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19IHBhY2tldFtSQURFT05fTUFYX1NUQVRFX1BBQ0tFVFNdID0gewotCXtSQURFT05fUFBfTUlTQywgNywgIlJBREVPTl9QUF9NSVNDIn0sCi0Je1JBREVPTl9QUF9DTlRMLCAzLCAiUkFERU9OX1BQX0NOVEwifSwKLQl7UkFERU9OX1JCM0RfQ09MT1JQSVRDSCwgMSwgIlJBREVPTl9SQjNEX0NPTE9SUElUQ0gifSwKLQl7UkFERU9OX1JFX0xJTkVfUEFUVEVSTiwgMiwgIlJBREVPTl9SRV9MSU5FX1BBVFRFUk4ifSwKLQl7UkFERU9OX1NFX0xJTkVfV0lEVEgsIDEsICJSQURFT05fU0VfTElORV9XSURUSCJ9LAotCXtSQURFT05fUFBfTFVNX01BVFJJWCwgMSwgIlJBREVPTl9QUF9MVU1fTUFUUklYIn0sCi0Je1JBREVPTl9QUF9ST1RfTUFUUklYXzAsIDIsICJSQURFT05fUFBfUk9UX01BVFJJWF8wIn0sCi0Je1JBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLCAzLCAiUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0sifSwKLQl7UkFERU9OX1NFX1ZQT1JUX1hTQ0FMRSwgNiwgIlJBREVPTl9TRV9WUE9SVF9YU0NBTEUifSwKLQl7UkFERU9OX1NFX0NOVEwsIDIsICJSQURFT05fU0VfQ05UTCJ9LAotCXtSQURFT05fU0VfQ05UTF9TVEFUVVMsIDEsICJSQURFT05fU0VfQ05UTF9TVEFUVVMifSwKLQl7UkFERU9OX1JFX01JU0MsIDEsICJSQURFT05fUkVfTUlTQyJ9LAotCXtSQURFT05fUFBfVFhGSUxURVJfMCwgNiwgIlJBREVPTl9QUF9UWEZJTFRFUl8wIn0sCi0Je1JBREVPTl9QUF9CT1JERVJfQ09MT1JfMCwgMSwgIlJBREVPTl9QUF9CT1JERVJfQ09MT1JfMCJ9LAotCXtSQURFT05fUFBfVFhGSUxURVJfMSwgNiwgIlJBREVPTl9QUF9UWEZJTFRFUl8xIn0sCi0Je1JBREVPTl9QUF9CT1JERVJfQ09MT1JfMSwgMSwgIlJBREVPTl9QUF9CT1JERVJfQ09MT1JfMSJ9LAotCXtSQURFT05fUFBfVFhGSUxURVJfMiwgNiwgIlJBREVPTl9QUF9UWEZJTFRFUl8yIn0sCi0Je1JBREVPTl9QUF9CT1JERVJfQ09MT1JfMiwgMSwgIlJBREVPTl9QUF9CT1JERVJfQ09MT1JfMiJ9LAotCXtSQURFT05fU0VfWkJJQVNfRkFDVE9SLCAyLCAiUkFERU9OX1NFX1pCSUFTX0ZBQ1RPUiJ9LAotCXtSQURFT05fU0VfVENMX09VVFBVVF9WVFhfRk1ULCAxMSwgIlJBREVPTl9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQifSwKLQl7UkFERU9OX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVELCAxNywKLQkJICAgICJSQURFT05fU0VfVENMX01BVEVSSUFMX0VNTUlTU0lWRV9SRUQifSwKLQl7UjIwMF9QUF9UWENCTEVORF8wLCA0LCAiUjIwMF9QUF9UWENCTEVORF8wIn0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfMSwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfMSJ9LAotCXtSMjAwX1BQX1RYQ0JMRU5EXzIsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzIifSwKLQl7UjIwMF9QUF9UWENCTEVORF8zLCA0LCAiUjIwMF9QUF9UWENCTEVORF8zIn0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfNCwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfNCJ9LAotCXtSMjAwX1BQX1RYQ0JMRU5EXzUsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzUifSwKLQl7UjIwMF9QUF9UWENCTEVORF82LCA0LCAiUjIwMF9QUF9UWENCTEVORF82In0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfNywgNCwgIlIyMDBfUFBfVFhDQkxFTkRfNyJ9LAotCXtSMjAwX1NFX1RDTF9MSUdIVF9NT0RFTF9DVExfMCwgNiwgIlIyMDBfU0VfVENMX0xJR0hUX01PREVMX0NUTF8wIn0sCi0Je1IyMDBfUFBfVEZBQ1RPUl8wLCA2LCAiUjIwMF9QUF9URkFDVE9SXzAifSwKLQl7UjIwMF9TRV9WVFhfRk1UXzAsIDQsICJSMjAwX1NFX1ZUWF9GTVRfMCJ9LAotCXtSMjAwX1NFX1ZBUF9DTlRMLCAxLCAiUjIwMF9TRV9WQVBfQ05UTCJ9LAotCXtSMjAwX1NFX1RDTF9NQVRSSVhfU0VMXzAsIDUsICJSMjAwX1NFX1RDTF9NQVRSSVhfU0VMXzAifSwKLQl7UjIwMF9TRV9UQ0xfVEVYX1BST0NfQ1RMXzIsIDUsICJSMjAwX1NFX1RDTF9URVhfUFJPQ19DVExfMiJ9LAotCXtSMjAwX1NFX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwsIDEsICJSMjAwX1NFX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8wLCA2LCAiUjIwMF9QUF9UWEZJTFRFUl8wIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfMSwgNiwgIlIyMDBfUFBfVFhGSUxURVJfMSJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzIsIDYsICJSMjAwX1BQX1RYRklMVEVSXzIifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8zLCA2LCAiUjIwMF9QUF9UWEZJTFRFUl8zIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfNCwgNiwgIlIyMDBfUFBfVFhGSUxURVJfNCJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzUsIDYsICJSMjAwX1BQX1RYRklMVEVSXzUifSwKLQl7UjIwMF9QUF9UWE9GRlNFVF8wLCAxLCAiUjIwMF9QUF9UWE9GRlNFVF8wIn0sCi0Je1IyMDBfUFBfVFhPRkZTRVRfMSwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfMSJ9LAotCXtSMjAwX1BQX1RYT0ZGU0VUXzIsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzIifSwKLQl7UjIwMF9QUF9UWE9GRlNFVF8zLCAxLCAiUjIwMF9QUF9UWE9GRlNFVF8zIn0sCi0Je1IyMDBfUFBfVFhPRkZTRVRfNCwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfNCJ9LAotCXtSMjAwX1BQX1RYT0ZGU0VUXzUsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzUifSwKLQl7UjIwMF9TRV9WVEVfQ05UTCwgMSwgIlIyMDBfU0VfVlRFX0NOVEwifSwKLQl7UjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCwgMSwKLQkgIlIyMDBfU0VfVENMX09VVFBVVF9WVFhfQ09NUF9TRUwifSwKLQl7UjIwMF9QUF9UQU1fREVCVUczLCAxLCAiUjIwMF9QUF9UQU1fREVCVUczIn0sCi0Je1IyMDBfUFBfQ05UTF9YLCAxLCAiUjIwMF9QUF9DTlRMX1gifSwKLQl7UjIwMF9SQjNEX0RFUFRIWFlfT0ZGU0VULCAxLCAiUjIwMF9SQjNEX0RFUFRIWFlfT0ZGU0VUIn0sCi0Je1IyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCwgMSwgIlIyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCJ9LAotCXtSMjAwX1JFX1NDSVNTT1JfVExfMCwgMiwgIlIyMDBfUkVfU0NJU1NPUl9UTF8wIn0sCi0Je1IyMDBfUkVfU0NJU1NPUl9UTF8xLCAyLCAiUjIwMF9SRV9TQ0lTU09SX1RMXzEifSwKLQl7UjIwMF9SRV9TQ0lTU09SX1RMXzIsIDIsICJSMjAwX1JFX1NDSVNTT1JfVExfMiJ9LAotCXtSMjAwX1NFX1ZBUF9DTlRMX1NUQVRVUywgMSwgIlIyMDBfU0VfVkFQX0NOVExfU1RBVFVTIn0sCi0Je1IyMDBfU0VfVlRYX1NUQVRFX0NOVEwsIDEsICJSMjAwX1NFX1ZUWF9TVEFURV9DTlRMIn0sCi0Je1IyMDBfUkVfUE9JTlRTSVpFLCAxLCAiUjIwMF9SRV9QT0lOVFNJWkUifSwKLQl7UjIwMF9TRV9UQ0xfSU5QVVRfVlRYX1ZFQ1RPUl9BRERSXzAsIDQsCi0JCSAgICAiUjIwMF9TRV9UQ0xfSU5QVVRfVlRYX1ZFQ1RPUl9BRERSXzAifSwKLQl7UjIwMF9QUF9DVUJJQ19GQUNFU18wLCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU18wIn0sCS8qIDYxICovCi0Je1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzAsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8wIn0sIC8qIDYyICovCi0Je1IyMDBfUFBfQ1VCSUNfRkFDRVNfMSwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfMSJ9LAotCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8xLCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMSJ9LAotCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzIsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzIifSwKLQl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMiwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzIifSwKLQl7UjIwMF9QUF9DVUJJQ19GQUNFU18zLCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU18zIn0sCi0Je1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzMsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8zIn0sCi0Je1IyMDBfUFBfQ1VCSUNfRkFDRVNfNCwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfNCJ9LAotCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV80LCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNCJ9LAotCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzUsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzUifSwKLQl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNSwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzUifSwKLQl7UkFERU9OX1BQX1RFWF9TSVpFXzAsIDIsICJSQURFT05fUFBfVEVYX1NJWkVfMCJ9LAotCXtSQURFT05fUFBfVEVYX1NJWkVfMSwgMiwgIlJBREVPTl9QUF9URVhfU0laRV8xIn0sCi0Je1JBREVPTl9QUF9URVhfU0laRV8yLCAyLCAiUkFERU9OX1BQX1RFWF9TSVpFXzIifSwKLQl7UjIwMF9SQjNEX0JMRU5EQ09MT1IsIDMsICJSMjAwX1JCM0RfQkxFTkRDT0xPUiJ9LAotCXtSMjAwX1NFX1RDTF9QT0lOVF9TUFJJVEVfQ05UTCwgMSwgIlIyMDBfU0VfVENMX1BPSU5UX1NQUklURV9DTlRMIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19GQUNFU18wLCAxLCAiUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzAifSwKLQl7UkFERU9OX1BQX0NVQklDX09GRlNFVF9UMF8wLCA1LCAiUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMF8wIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19GQUNFU18xLCAxLCAiUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEifSwKLQl7UkFERU9OX1BQX0NVQklDX09GRlNFVF9UMV8wLCA1LCAiUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMV8wIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19GQUNFU18yLCAxLCAiUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzIifSwKLQl7UkFERU9OX1BQX0NVQklDX09GRlNFVF9UMl8wLCA1LCAiUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMl8wIn0sCi0Je1IyMDBfUFBfVFJJX1BFUkYsIDIsICJSMjAwX1BQX1RSSV9QRVJGIn0sCi0Je1IyMDBfUFBfQUZTXzAsIDMyLCAiUjIwMF9QUF9BRlNfMCJ9LCAgICAgLyogODUgKi8KLQl7UjIwMF9QUF9BRlNfMSwgMzIsICJSMjAwX1BQX0FGU18xIn0sCi0Je1IyMDBfUFBfVEZBQ1RPUl8wLCA4LCAiUjIwMF9BVEZfVEZBQ1RPUiJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzAsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzAifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8xLCA4LCAiUjIwMF9QUF9UWENUTEFMTF8xIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfMiwgOCwgIlIyMDBfUFBfVFhDVExBTExfMiJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzMsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzMifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl80LCA4LCAiUjIwMF9QUF9UWENUTEFMTF80In0sCi0Je1IyMDBfUFBfVFhGSUxURVJfNSwgOCwgIlIyMDBfUFBfVFhDVExBTExfNSJ9LAotCXtSMjAwX1ZBUF9QVlNfQ05UTF8xLCAyLCAiUjIwMF9WQVBfUFZTX0NOVEwifSwKLX07Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIFBlcmZvcm1hbmNlIG1vbml0b3JpbmcgZnVuY3Rpb25zCi0gKi8KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NsZWFyX2JveChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJICAgICBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwgaW50IHIsIGludCBnLCBpbnQgYikKLXsKLQl1MzIgY29sb3I7Ci0JUklOR19MT0NBTFM7Ci0KLQl4ICs9IGRldl9wcml2LT5zYXJlYV9wcml2LT5ib3hlc1swXS54MTsKLQl5ICs9IGRldl9wcml2LT5zYXJlYV9wcml2LT5ib3hlc1swXS55MTsKLQotCXN3aXRjaCAoZGV2X3ByaXYtPmNvbG9yX2ZtdCkgewotCWNhc2UgUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I1NjU6Ci0JCWNvbG9yID0gKCgociAmIDB4ZjgpIDw8IDgpIHwKLQkJCSAoKGcgJiAweGZjKSA8PCAzKSB8ICgoYiAmIDB4ZjgpID4+IDMpKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fQ09MT1JfRk9STUFUX0FSR0I4ODg4OgotCWRlZmF1bHQ6Ci0JCWNvbG9yID0gKCgoMHhmZikgPDwgMjQpIHwgKHIgPDwgMTYpIHwgKGcgPDwgOCkgfCBiKTsKLQkJYnJlYWs7Ci0JfQotCi0JQkVHSU5fUklORyg0KTsKLQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fRFBfV1JJVEVfTUFTSywgMCkpOwotCU9VVF9SSU5HKDB4ZmZmZmZmZmYpOwotCUFEVkFOQ0VfUklORygpOwotCi0JQkVHSU5fUklORyg2KTsKLQotCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OX0NOVExfUEFJTlRfTVVMVEksIDQpKTsKLQlPVVRfUklORyhSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SIHwKLQkJIChkZXZfcHJpdi0+Y29sb3JfZm10IDw8IDgpIHwKLQkJIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SIHwKLQkJIFJBREVPTl9ST1AzX1AgfCBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMpOwotCi0JaWYgKGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlID09IDEpIHsKLQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7Ci0JfSBlbHNlIHsKLQkJT1VUX1JJTkcoZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0KTsKLQl9Ci0KLQlPVVRfUklORyhjb2xvcik7Ci0KLQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKLQlPVVRfUklORygodyA8PCAxNikgfCBoKTsKLQotCUFEVkFOQ0VfUklORygpOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfcGVyZm9ybWFuY2VfYm94ZXMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQkvKiBDb2xsYXBzZSB2YXJpb3VzIHRoaW5ncyBpbnRvIGEgd2FpdCBmbGFnIC0tIHRyeWluZyB0bwotCSAqIGd1ZXNzIGlmIHVzZXJzcGFzZSBzbGVwdCAtLSBiZXR0ZXIganVzdCB0byBoYXZlIHRoZW0gdGVsbCB1cy4KLQkgKi8KLQlpZiAoZGV2X3ByaXYtPnN0YXRzLmxhc3RfZnJhbWVfcmVhZHMgPiAxIHx8Ci0JICAgIGRldl9wcml2LT5zdGF0cy5sYXN0X2NsZWFyX3JlYWRzID4gZGV2X3ByaXYtPnN0YXRzLmNsZWFycykgewotCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0JfQotCi0JaWYgKGRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcykgewotCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0JfQotCi0JLyogUHVycGxlIGJveCBmb3IgcGFnZSBmbGlwcGluZwotCSAqLwotCWlmIChkZXZfcHJpdi0+c3RhdHMuYm94ZXMgJiBSQURFT05fQk9YX0ZMSVApCi0JCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDQsIDQsIDgsIDgsIDI1NSwgMCwgMjU1KTsKLQotCS8qIFJlZCBib3ggaWYgd2UgaGF2ZSB0byB3YWl0IGZvciBpZGxlIGF0IGFueSBwb2ludAotCSAqLwotCWlmIChkZXZfcHJpdi0+c3RhdHMuYm94ZXMgJiBSQURFT05fQk9YX1dBSVRfSURMRSkKLQkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgMTYsIDQsIDgsIDgsIDI1NSwgMCwgMCk7Ci0KLQkvKiBCbHVlIGJveDogbG9zdCBjb250ZXh0PwotCSAqLwotCi0JLyogWWVsbG93IGJveCBmb3IgdGV4dHVyZSBzd2FwcwotCSAqLwotCWlmIChkZXZfcHJpdi0+c3RhdHMuYm94ZXMgJiBSQURFT05fQk9YX1RFWFRVUkVfTE9BRCkKLQkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNDAsIDQsIDgsIDgsIDI1NSwgMjU1LCAwKTsKLQotCS8qIEdyZWVuIGJveCBpZiBoYXJkd2FyZSBuZXZlciBpZGxlcyAoYXMgZmFyIGFzIHdlIGNhbiB0ZWxsKQotCSAqLwotCWlmICghKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfRE1BX0lETEUpKQotCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCA2NCwgNCwgOCwgOCwgMCwgMjU1LCAwKTsKLQotCS8qIERyYXcgYmFycyBpbmRpY2F0aW5nIG51bWJlciBvZiBidWZmZXJzIGFsbG9jYXRlZAotCSAqIChub3QgYSBncmVhdCBtZWFzdXJlLCBlYXNpbHkgY29uZnVzZWQpCi0JICovCi0JaWYgKGRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcykgewotCQlpZiAoZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzID4gMTAwKQotCQkJZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzID0gMTAwOwotCi0JCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDQsIDE2LAotCQkJCSBkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMsIDQsCi0JCQkJIDE5NiwgMTI4LCAxMjgpOwotCX0KLQotCW1lbXNldCgmZGV2X3ByaXYtPnN0YXRzLCAwLCBzaXplb2YoZGV2X3ByaXYtPnN0YXRzKSk7Ci0KLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ1AgY29tbWFuZCBkaXNwYXRjaCBmdW5jdGlvbnMKLSAqLwotCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfY2xlYXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJICAgICBkcm1fcmFkZW9uX2NsZWFyX3QgKiBjbGVhciwKLQkJCQkgICAgIGRybV9yYWRlb25fY2xlYXJfcmVjdF90ICogZGVwdGhfYm94ZXMpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgKmRlcHRoX2NsZWFyID0gJmRldl9wcml2LT5kZXB0aF9jbGVhcjsKLQlpbnQgbmJveCA9IHNhcmVhX3ByaXYtPm5ib3g7Ci0Jc3RydWN0IGRybV9jbGlwX3JlY3QgKnBib3ggPSBzYXJlYV9wcml2LT5ib3hlczsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBjbGVhci0+ZmxhZ3M7Ci0JdTMyIHJiM2RfY250bCA9IDAsIHJiM2Rfc3RlbmNpbHJlZm1hc2sgPSAwOwotCWludCBpOwotCVJJTkdfTE9DQUxTOwotCURSTV9ERUJVRygiZmxhZ3MgPSAweCV4XG4iLCBmbGFncyk7Ci0KLQlkZXZfcHJpdi0+c3RhdHMuY2xlYXJzKys7Ci0KLQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMSkgewotCQl1bnNpZ25lZCBpbnQgdG1wID0gZmxhZ3M7Ci0KLQkJZmxhZ3MgJj0gfihSQURFT05fRlJPTlQgfCBSQURFT05fQkFDSyk7Ci0JCWlmICh0bXAgJiBSQURFT05fRlJPTlQpCi0JCQlmbGFncyB8PSBSQURFT05fQkFDSzsKLQkJaWYgKHRtcCAmIFJBREVPTl9CQUNLKQotCQkJZmxhZ3MgfD0gUkFERU9OX0ZST05UOwotCX0KLQotCWlmIChmbGFncyAmIChSQURFT05fRlJPTlQgfCBSQURFT05fQkFDSykpIHsKLQotCQlCRUdJTl9SSU5HKDQpOwotCi0JCS8qIEVuc3VyZSB0aGUgM0Qgc3RyZWFtIGlzIGlkbGUgYmVmb3JlIGRvaW5nIGEKLQkJICogMkQgZmlsbCB0byBjbGVhciB0aGUgZnJvbnQgb3IgYmFjayBidWZmZXIuCi0JCSAqLwotCQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fRFBfV1JJVEVfTUFTSywgMCkpOwotCQlPVVRfUklORyhjbGVhci0+Y29sb3JfbWFzayk7Ci0KLQkJQURWQU5DRV9SSU5HKCk7Ci0KLQkJLyogTWFrZSBzdXJlIHdlIHJlc3RvcmUgdGhlIDNEIHN0YXRlIG5leHQgdGltZS4KLQkJICovCi0JCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOwotCi0JCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKLQkJCWludCB4ID0gcGJveFtpXS54MTsKLQkJCWludCB5ID0gcGJveFtpXS55MTsKLQkJCWludCB3ID0gcGJveFtpXS54MiAtIHg7Ci0JCQlpbnQgaCA9IHBib3hbaV0ueTIgLSB5OwotCi0JCQlEUk1fREVCVUcoIiVkLCVkLSVkLCVkIGZsYWdzIDB4JXhcbiIsCi0JCQkJICB4LCB5LCB3LCBoLCBmbGFncyk7Ci0KLQkJCWlmIChmbGFncyAmIFJBREVPTl9GUk9OVCkgewotCQkJCUJFR0lOX1JJTkcoNik7Ci0KLQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCi0JCQkJCSAoUkFERU9OX0NOVExfUEFJTlRfTVVMVEksIDQpKTsKLQkJCQlPVVRfUklORyhSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCQkJCSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SIHwKLQkJCQkJIChkZXZfcHJpdi0+Ci0JCQkJCSAgY29sb3JfZm10IDw8IDgpIHwKLQkJCQkJIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SIHwKLQkJCQkJIFJBREVPTl9ST1AzX1AgfAotCQkJCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTKTsKLQotCQkJCU9VVF9SSU5HKGRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQpOwotCQkJCU9VVF9SSU5HKGNsZWFyLT5jbGVhcl9jb2xvcik7Ci0KLQkJCQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKLQkJCQlPVVRfUklORygodyA8PCAxNikgfCBoKTsKLQotCQkJCUFEVkFOQ0VfUklORygpOwotCQkJfQotCi0JCQlpZiAoZmxhZ3MgJiBSQURFT05fQkFDSykgewotCQkJCUJFR0lOX1JJTkcoNik7Ci0KLQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCi0JCQkJCSAoUkFERU9OX0NOVExfUEFJTlRfTVVMVEksIDQpKTsKLQkJCQlPVVRfUklORyhSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCQkJCSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SIHwKLQkJCQkJIChkZXZfcHJpdi0+Ci0JCQkJCSAgY29sb3JfZm10IDw8IDgpIHwKLQkJCQkJIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SIHwKLQkJCQkJIFJBREVPTl9ST1AzX1AgfAotCQkJCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTKTsKLQotCQkJCU9VVF9SSU5HKGRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCk7Ci0JCQkJT1VUX1JJTkcoY2xlYXItPmNsZWFyX2NvbG9yKTsKLQotCQkJCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOwotCQkJCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOwotCi0JCQkJQURWQU5DRV9SSU5HKCk7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQkvKiBoeXBlciB6IGNsZWFyICovCi0JLyogbm8gZG9jcyBhdmFpbGFibGUsIGJhc2VkIG9uIHJldmVyc2UgZW5nZW5lZXJpbmcgYnkgU3RlcGhhbmUgTWFyY2hlc2luICovCi0JaWYgKChmbGFncyAmIChSQURFT05fREVQVEggfCBSQURFT05fU1RFTkNJTCkpCi0JICAgICYmIChmbGFncyAmIFJBREVPTl9DTEVBUl9GQVNUWikpIHsKLQotCQlpbnQgaTsKLQkJaW50IGRlcHRocGl4cGVybGluZSA9Ci0JCSAgICBkZXZfcHJpdi0+ZGVwdGhfZm10ID09Ci0JCSAgICBSQURFT05fREVQVEhfRk9STUFUXzE2QklUX0lOVF9aID8gKGRldl9wcml2LT5kZXB0aF9waXRjaCAvCi0JCQkJCQkgICAgICAgMikgOiAoZGV2X3ByaXYtPgotCQkJCQkJCSAgICAgZGVwdGhfcGl0Y2ggLyA0KTsKLQotCQl1MzIgY2xlYXJtYXNrOwotCi0JCXUzMiB0ZW1wUkIzRF9ERVBUSENMRUFSVkFMVUUgPSBjbGVhci0+Y2xlYXJfZGVwdGggfAotCQkgICAgKChjbGVhci0+ZGVwdGhfbWFzayAmIDB4ZmYpIDw8IDI0KTsKLQotCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgotCQkgKiB3ZSBoYXZlbid0IHRvdWNoZWQgYW55ICJub3JtYWwiIHN0YXRlIC0gc3RpbGwgbmVlZCB0aGlzPwotCQkgKi8KLQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7Ci0KLQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSEFTX0hJRVJaKQotCQkgICAgJiYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikpIHsKLQkJCS8qIEZJWE1FIDogcmV2ZXJzZSBlbmdpbmVlciB0aGF0IGZvciBSeDAwIGNhcmRzICovCi0JCQkvKiBGSVhNRSA6IHRoZSBtYXNrIHN1cHBvc2VkbHkgY29udGFpbnMgbG93LXJlcyB6IHZhbHVlcy4gU28gY2FuJ3Qgc2V0Ci0JCQkgICBqdXN0IHRvIHRoZSBtYXggKDB4ZmY/IG9yIGFjdHVhbGx5IDB4M2ZmZj8pLCBuZWVkIHRvIHRha2UgeiBjbGVhcgotCQkJICAgdmFsdWUgaW50byBhY2NvdW50PyAqLwotCQkJLyogcGF0dGVybiBzZWVtcyB0byB3b3JrIGZvciByMTAwLCB0aG91Z2ggZ2V0IHNsaWdodAotCQkJICAgcmVuZGVyaW5nIGVycm9ycyB3aXRoIGdseGdlYXJzLiBJZiBoaWVyeiBpcyBub3QgZW5hYmxlZCBmb3IgcjEwMCwKLQkJCSAgIG9ubHkgNCBiaXRzIHdoaWNoIGluZGljYXRlIGNsZWFyICgxNSwxNiwzMSwzMiwgYWxsIHplcm8pIG1hdHRlciwgdGhlCi0JCQkgICBvdGhlciBvbmVzIGFyZSBpZ25vcmVkLCBhbmQgdGhlIHNhbWUgY2xlYXIgbWFzayBjYW4gYmUgdXNlZC4gVGhhdCdzCi0JCQkgICB2ZXJ5IGRpZmZlcmVudCBiZWhhdmlvdXIgdGhhbiBSMjAwIHdoaWNoIG5lZWRzIGRpZmZlcmVudCBjbGVhciBtYXNrCi0JCQkgICBhbmQgZGlmZmVyZW50IG51bWJlciBvZiB0aWxlcyB0byBjbGVhciBpZiBoaWVyeiBpcyBlbmFibGVkIG9yIG5vdCAhPyEKLQkJCSAqLwotCQkJY2xlYXJtYXNrID0gKDB4ZmYgPDwgMjIpIHwgKDB4ZmYgPDwgNikgfCAweDAwM2YwMDNmOwotCQl9IGVsc2UgewotCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uCi0JCQkgICBydjI1MDogY291bGQgYmUgdXNlZCB0byBjbGVhciBvbmx5IHBhcnRzIG9mIG1hY3JvdGlsZXMKLQkJCSAgIChidXQgdGhhdCB3b3VsZCBnZXQgcmVhbGx5IGNvbXBsaWNhdGVkLi4uKT8KLQkJCSAgIGJpdCAwIGFuZCAxIChlaXRoZXIgb3IgYm90aCBvZiB0aGVtID8hPyEpIGFyZSB1c2VkIHRvCi0JCQkgICBub3QgY2xlYXIgdGlsZSAob3IgbWF5YmUgb25lIG9mIHRoZSBiaXRzIGluZGljYXRlcyBpZiB0aGUgdGlsZSBpcwotCQkJICAgY29tcHJlc3NlZCBvciBub3QpLCBiaXQgMiBhbmQgMyB0byBub3QgY2xlYXIgdGlsZSAxLC4uLiwuCi0JCQkgICBQYXR0ZXJuIGlzIGFzIGZvbGxvd3M6Ci0JCQkgICB8IDAsMSB8IDQsNSB8IDgsOSB8MTIsMTN8MTYsMTd8MjAsMjF8MjQsMjV8MjgsMjl8Ci0JCQkgICBiaXRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkJCSAgIHwgMiwzIHwgNiw3IHwxMCwxMXwxNCwxNXwxOCwxOXwyMiwyM3wyNiwyN3wzMCwzMXwKLQkJCSAgIHJ2MTAwOiBjbGVhcm1hc2sgY292ZXJzIDJ4OCA0eDEgdGlsZXMsIGJ1dCBvbmUgY2xlYXIgc3RpbGwKLQkJCSAgIGNvdmVycyAyNTYgcGl4ZWxzID8hPwotCQkJICovCi0JCQljbGVhcm1hc2sgPSAweDA7Ci0JCX0KLQotCQlCRUdJTl9SSU5HKDgpOwotCQlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7Ci0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9ERVBUSENMRUFSVkFMVUUsCi0JCQkgICAgIHRlbXBSQjNEX0RFUFRIQ0xFQVJWQUxVRSk7Ci0JCS8qIHdoYXQgb2Zmc2V0IGlzIHRoaXMgZXhhY3RseSA/ICovCi0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9aTUFTS09GRlNFVCwgMCk7Ci0JCS8qIG5lZWQgY3Rsc3RhdCwgb3RoZXJ3aXNlIGdldCBzb21lIHN0cmFuZ2UgYmxhY2sgZmxpY2tlcmluZyAqLwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQsCi0JCQkgICAgIFJBREVPTl9SQjNEX1pDX0ZMVVNIX0FMTCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCi0JCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKLQkJCWludCB0aWxlb2Zmc2V0LCBucnRpbGVzeCwgbnJ0aWxlc3ksIGo7Ci0JCQkvKiBpdCBsb29rcyBsaWtlIHIyMDAgbmVlZHMgcnYtc3R5bGUgY2xlYXJzLCBhdCBsZWFzdCBpZiBoaWVyeiBpcyBub3QgZW5hYmxlZD8gKi8KLQkJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0hBU19ISUVSWikKLQkJCSAgICAmJiAhKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMjAwKSkgewotCQkJCS8qIEZJWE1FIDogZmlndXJlIHRoaXMgb3V0IGZvciByMjAwICh3aGVuIGhpZXJ6IGlzIGVuYWJsZWQpLiBPcgotCQkJCSAgIG1heWJlIHIyMDAgYWN0dWFsbHkgZG9lc24ndCBuZWVkIHRvIHB1dCB0aGUgbG93LXJlcyB6IHZhbHVlIGludG8KLQkJCQkgICB0aGUgdGlsZSBjYWNoZSBsaWtlIHIxMDAsIGJ1dCBqdXN0IG5lZWRzIHRvIGNsZWFyIHRoZSBoaS1sZXZlbCB6LWJ1ZmZlcj8KLQkJCQkgICBXb3JrcyBmb3IgUjEwMCwgYm90aCB3aXRoIGhpZXJ6IGFuZCB3aXRob3V0LgotCQkJCSAgIFIxMDAgc2VlbXMgdG8gb3BlcmF0ZSBvbiAyeDEgOHg4IHRpbGVzLCBidXQuLi4KLQkJCQkgICBvZGQ6IG9mZnNldC9ucnRpbGVzIG5lZWQgdG8gYmUgNjQgcGl4ICg0IGJsb2NrKSBhbGlnbmVkPyBQb3RlbnRpYWxseQotCQkJCSAgIHByb2JsZW1hdGljIHdpdGggcmVzb2x1dGlvbnMgd2hpY2ggYXJlIG5vdCA2NCBwaXggYWxpZ25lZD8gKi8KLQkJCQl0aWxlb2Zmc2V0ID0KLQkJCQkgICAgKChwYm94W2ldLnkxID4+IDMpICogZGVwdGhwaXhwZXJsaW5lICsKLQkJCQkgICAgIHBib3hbaV0ueDEpID4+IDY7Ci0JCQkJbnJ0aWxlc3ggPQotCQkJCSAgICAoKHBib3hbaV0ueDIgJiB+NjMpIC0KLQkJCQkgICAgIChwYm94W2ldLngxICYgfjYzKSkgPj4gNDsKLQkJCQlucnRpbGVzeSA9Ci0JCQkJICAgIChwYm94W2ldLnkyID4+IDMpIC0gKHBib3hbaV0ueTEgPj4gMyk7Ci0JCQkJZm9yIChqID0gMDsgaiA8PSBucnRpbGVzeTsgaisrKSB7Ci0JCQkJCUJFR0lOX1JJTkcoNCk7Ci0JCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKLQkJCQkJCSAoUkFERU9OXzNEX0NMRUFSX1pNQVNLLCAyKSk7Ci0JCQkJCS8qIGZpcnN0IHRpbGUgKi8KLQkJCQkJT1VUX1JJTkcodGlsZW9mZnNldCAqIDgpOwotCQkJCQkvKiB0aGUgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyICovCi0JCQkJCU9VVF9SSU5HKG5ydGlsZXN4ICsgNCk7Ci0JCQkJCS8qIGNsZWFyIG1hc2sgOiBjaG9vc2VzIHRoZSBjbGVhcmluZyBwYXR0ZXJuLiAqLwotCQkJCQlPVVRfUklORyhjbGVhcm1hc2spOwotCQkJCQlBRFZBTkNFX1JJTkcoKTsKLQkJCQkJdGlsZW9mZnNldCArPSBkZXB0aHBpeHBlcmxpbmUgPj4gNjsKLQkJCQl9Ci0JCQl9IGVsc2UgaWYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMjAwKSB7Ci0JCQkJLyogd29ya3MgZm9yIHJ2MjUwLiAqLwotCQkJCS8qIGZpbmQgZmlyc3QgbWFjcm8gdGlsZSAoOHgyIDR4NCB6LXBpeGVscyBvbiBydjI1MCkgKi8KLQkJCQl0aWxlb2Zmc2V0ID0KLQkJCQkgICAgKChwYm94W2ldLnkxID4+IDMpICogZGVwdGhwaXhwZXJsaW5lICsKLQkJCQkgICAgIHBib3hbaV0ueDEpID4+IDU7Ci0JCQkJbnJ0aWxlc3ggPQotCQkJCSAgICAocGJveFtpXS54MiA+PiA1KSAtIChwYm94W2ldLngxID4+IDUpOwotCQkJCW5ydGlsZXN5ID0KLQkJCQkgICAgKHBib3hbaV0ueTIgPj4gMykgLSAocGJveFtpXS55MSA+PiAzKTsKLQkJCQlmb3IgKGogPSAwOyBqIDw9IG5ydGlsZXN5OyBqKyspIHsKLQkJCQkJQkVHSU5fUklORyg0KTsKLQkJCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMwotCQkJCQkJIChSQURFT05fM0RfQ0xFQVJfWk1BU0ssIDIpKTsKLQkJCQkJLyogZmlyc3QgdGlsZSAqLwotCQkJCQkvKiBqdWRnaW5nIGJ5IHRoZSBmaXJzdCB0aWxlIG9mZnNldCBuZWVkZWQsIGNvdWxkIHBvc3NpYmx5Ci0JCQkJCSAgIGRpcmVjdGx5IGFkZHJlc3MvY2xlYXIgNHg0IHRpbGVzIGluc3RlYWQgb2YgOHgyICogNHg0Ci0JCQkJCSAgIG1hY3JvIHRpbGVzLCB0aG91Z2ggd291bGQgc3RpbGwgbmVlZCBjbGVhciBtYXNrIGZvcgotCQkJCQkgICByaWdodC9ib3R0b20gaWYgdHJ1ZWx5IDR4NCBncmFudWxhcml0eSBpcyBkZXNpcmVkID8gKi8KLQkJCQkJT1VUX1JJTkcodGlsZW9mZnNldCAqIDE2KTsKLQkJCQkJLyogdGhlIG51bWJlciBvZiB0aWxlcyB0byBjbGVhciAqLwotCQkJCQlPVVRfUklORyhucnRpbGVzeCArIDEpOwotCQkJCQkvKiBjbGVhciBtYXNrIDogY2hvb3NlcyB0aGUgY2xlYXJpbmcgcGF0dGVybi4gKi8KLQkJCQkJT1VUX1JJTkcoY2xlYXJtYXNrKTsKLQkJCQkJQURWQU5DRV9SSU5HKCk7Ci0JCQkJCXRpbGVvZmZzZXQgKz0gZGVwdGhwaXhwZXJsaW5lID4+IDU7Ci0JCQkJfQotCQkJfSBlbHNlIHsJLyogcnYgMTAwICovCi0JCQkJLyogcnYxMDAgbWlnaHQgbm90IG5lZWQgNjQgcGl4IGFsaWdubWVudCwgd2hvIGtub3dzICovCi0JCQkJLyogb2Zmc2V0cyBhcmUsIGhtbSwgd2VpcmQgKi8KLQkJCQl0aWxlb2Zmc2V0ID0KLQkJCQkgICAgKChwYm94W2ldLnkxID4+IDQpICogZGVwdGhwaXhwZXJsaW5lICsKLQkJCQkgICAgIHBib3hbaV0ueDEpID4+IDY7Ci0JCQkJbnJ0aWxlc3ggPQotCQkJCSAgICAoKHBib3hbaV0ueDIgJiB+NjMpIC0KLQkJCQkgICAgIChwYm94W2ldLngxICYgfjYzKSkgPj4gNDsKLQkJCQlucnRpbGVzeSA9Ci0JCQkJICAgIChwYm94W2ldLnkyID4+IDQpIC0gKHBib3hbaV0ueTEgPj4gNCk7Ci0JCQkJZm9yIChqID0gMDsgaiA8PSBucnRpbGVzeTsgaisrKSB7Ci0JCQkJCUJFR0lOX1JJTkcoNCk7Ci0JCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKLQkJCQkJCSAoUkFERU9OXzNEX0NMRUFSX1pNQVNLLCAyKSk7Ci0JCQkJCU9VVF9SSU5HKHRpbGVvZmZzZXQgKiAxMjgpOwotCQkJCQkvKiB0aGUgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyICovCi0JCQkJCU9VVF9SSU5HKG5ydGlsZXN4ICsgNCk7Ci0JCQkJCS8qIGNsZWFyIG1hc2sgOiBjaG9vc2VzIHRoZSBjbGVhcmluZyBwYXR0ZXJuLiAqLwotCQkJCQlPVVRfUklORyhjbGVhcm1hc2spOwotCQkJCQlBRFZBTkNFX1JJTkcoKTsKLQkJCQkJdGlsZW9mZnNldCArPSBkZXB0aHBpeHBlcmxpbmUgPj4gNjsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCQkvKiBUT0RPIGRvbid0IGFsd2F5cyBjbGVhciBhbGwgaGktbGV2ZWwgeiB0aWxlcyAqLwotCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9IQVNfSElFUlopCi0JCSAgICAmJiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApCi0JCSAgICAmJiAoZmxhZ3MgJiBSQURFT05fVVNFX0hJRVJaKSkKLQkJCS8qIHIxMDAgYW5kIGNhcmRzIHdpdGhvdXQgaGllcmFyY2hpY2FsIHotYnVmZmVyIGhhdmUgbm8gaGlnaC1sZXZlbCB6LWJ1ZmZlciAqLwotCQkJLyogRklYTUUgOiB0aGUgbWFzayBzdXBwb3NlZGx5IGNvbnRhaW5zIGxvdy1yZXMgeiB2YWx1ZXMuIFNvIGNhbid0IHNldAotCQkJICAganVzdCB0byB0aGUgbWF4ICgweGZmPyBvciBhY3R1YWxseSAweDNmZmY/KSwgbmVlZCB0byB0YWtlIHogY2xlYXIKLQkJCSAgIHZhbHVlIGludG8gYWNjb3VudD8gKi8KLQkJewotCQkJQkVHSU5fUklORyg0KTsKLQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OXzNEX0NMRUFSX0hJWiwgMikpOwotCQkJT1VUX1JJTkcoMHgwKTsJLyogRmlyc3QgdGlsZSAqLwotCQkJT1VUX1JJTkcoMHgzY2MwKTsKLQkJCU9VVF9SSU5HKCgweGZmIDw8IDIyKSB8ICgweGZmIDw8IDYpIHwgMHgwMDNmMDAzZik7Ci0JCQlBRFZBTkNFX1JJTkcoKTsKLQkJfQotCX0KLQotCS8qIFdlIGhhdmUgdG8gY2xlYXIgdGhlIGRlcHRoIGFuZC9vciBzdGVuY2lsIGJ1ZmZlcnMgYnkKLQkgKiByZW5kZXJpbmcgYSBxdWFkIGludG8ganVzdCB0aG9zZSBidWZmZXJzLiAgVGh1cywgd2UgaGF2ZSB0bwotCSAqIG1ha2Ugc3VyZSB0aGUgM0QgZW5naW5lIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5LgotCSAqLwotCWVsc2UgaWYgKChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkgJiYKLQkJKGZsYWdzICYgKFJBREVPTl9ERVBUSCB8IFJBREVPTl9TVEVOQ0lMKSkpIHsKLQotCQlpbnQgdGVtcFBQX0NOVEw7Ci0JCWludCB0ZW1wUkVfQ05UTDsKLQkJaW50IHRlbXBSQjNEX0NOVEw7Ci0JCWludCB0ZW1wUkIzRF9aU1RFTkNJTENOVEw7Ci0JCWludCB0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSzsKLQkJaW50IHRlbXBSQjNEX1BMQU5FTUFTSzsKLQkJaW50IHRlbXBTRV9DTlRMOwotCQlpbnQgdGVtcFNFX1ZURV9DTlRMOwotCQlpbnQgdGVtcFNFX1ZUWF9GTVRfMDsKLQkJaW50IHRlbXBTRV9WVFhfRk1UXzE7Ci0JCWludCB0ZW1wU0VfVkFQX0NOVEw7Ci0JCWludCB0ZW1wUkVfQVVYX1NDSVNTT1JfQ05UTDsKLQotCQl0ZW1wUFBfQ05UTCA9IDA7Ci0JCXRlbXBSRV9DTlRMID0gMDsKLQotCQl0ZW1wUkIzRF9DTlRMID0gZGVwdGhfY2xlYXItPnJiM2RfY250bDsKLQotCQl0ZW1wUkIzRF9aU1RFTkNJTENOVEwgPSBkZXB0aF9jbGVhci0+cmIzZF96c3RlbmNpbGNudGw7Ci0JCXRlbXBSQjNEX1NURU5DSUxSRUZNQVNLID0gMHgwOwotCi0JCXRlbXBTRV9DTlRMID0gZGVwdGhfY2xlYXItPnNlX2NudGw7Ci0KLQkJLyogRGlzYWJsZSBUQ0wgKi8KLQotCQl0ZW1wU0VfVkFQX0NOVEwgPSAoCS8qIFNFX1ZBUF9DTlRMX19GT1JDRV9XX1RPX09ORV9NQVNLIHwgICovCi0JCQkJCSAgKDB4OSA8PAotCQkJCQkgICBTRV9WQVBfQ05UTF9fVkZfTUFYX1ZUWF9OVU1fX1NISUZUKSk7Ci0KLQkJdGVtcFJCM0RfUExBTkVNQVNLID0gMHgwOwotCi0JCXRlbXBSRV9BVVhfU0NJU1NPUl9DTlRMID0gMHgwOwotCi0JCXRlbXBTRV9WVEVfQ05UTCA9Ci0JCSAgICBTRV9WVEVfQ05UTF9fVlRYX1hZX0ZNVF9NQVNLIHwgU0VfVlRFX0NOVExfX1ZUWF9aX0ZNVF9NQVNLOwotCi0JCS8qIFZlcnRleCBmb3JtYXQgKFgsIFksIFosIFcpICovCi0JCXRlbXBTRV9WVFhfRk1UXzAgPQotCQkgICAgU0VfVlRYX0ZNVF8wX19WVFhfWjBfUFJFU0VOVF9NQVNLIHwKLQkJICAgIFNFX1ZUWF9GTVRfMF9fVlRYX1cwX1BSRVNFTlRfTUFTSzsKLQkJdGVtcFNFX1ZUWF9GTVRfMSA9IDB4MDsKLQotCQkvKgotCQkgKiBEZXB0aCBidWZmZXIgc3BlY2lmaWMgZW5hYmxlcwotCQkgKi8KLQkJaWYgKGZsYWdzICYgUkFERU9OX0RFUFRIKSB7Ci0JCQkvKiBFbmFibGUgZGVwdGggYnVmZmVyICovCi0JCQl0ZW1wUkIzRF9DTlRMIHw9IFJBREVPTl9aX0VOQUJMRTsKLQkJfSBlbHNlIHsKLQkJCS8qIERpc2FibGUgZGVwdGggYnVmZmVyICovCi0JCQl0ZW1wUkIzRF9DTlRMICY9IH5SQURFT05fWl9FTkFCTEU7Ci0JCX0KLQotCQkvKgotCQkgKiBTdGVuY2lsIGJ1ZmZlciBzcGVjaWZpYyBlbmFibGVzCi0JCSAqLwotCQlpZiAoZmxhZ3MgJiBSQURFT05fU1RFTkNJTCkgewotCQkJdGVtcFJCM0RfQ05UTCB8PSBSQURFT05fU1RFTkNJTF9FTkFCTEU7Ci0JCQl0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyA9IGNsZWFyLT5kZXB0aF9tYXNrOwotCQl9IGVsc2UgewotCQkJdGVtcFJCM0RfQ05UTCAmPSB+UkFERU9OX1NURU5DSUxfRU5BQkxFOwotCQkJdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0sgPSAweDAwMDAwMDAwOwotCQl9Ci0KLQkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9DT01QX1pCVUYpIHsKLQkJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCB8PSBSQURFT05fWl9DT01QUkVTU0lPTl9FTkFCTEUgfAotCQkJICAgIFJBREVPTl9aX0RFQ09NUFJFU1NJT05fRU5BQkxFOwotCQl9Ci0JCWlmIChmbGFncyAmIFJBREVPTl9VU0VfSElFUlopIHsKLQkJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCB8PSBSQURFT05fWl9ISUVSQVJDSFlfRU5BQkxFOwotCQl9Ci0KLQkJQkVHSU5fUklORygyNik7Ci0JCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKLQotCQlPVVRfUklOR19SRUcoUkFERU9OX1BQX0NOVEwsIHRlbXBQUF9DTlRMKTsKLQkJT1VUX1JJTkdfUkVHKFIyMDBfUkVfQ05UTCwgdGVtcFJFX0NOVEwpOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfQ05UTCwgdGVtcFJCM0RfQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9aU1RFTkNJTENOVEwsIHRlbXBSQjNEX1pTVEVOQ0lMQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSywKLQkJCSAgICAgdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0spOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfUExBTkVNQVNLLCB0ZW1wUkIzRF9QTEFORU1BU0spOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1NFX0NOVEwsIHRlbXBTRV9DTlRMKTsKLQkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVlRFX0NOVEwsIHRlbXBTRV9WVEVfQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSMjAwX1NFX1ZUWF9GTVRfMCwgdGVtcFNFX1ZUWF9GTVRfMCk7Ci0JCU9VVF9SSU5HX1JFRyhSMjAwX1NFX1ZUWF9GTVRfMSwgdGVtcFNFX1ZUWF9GTVRfMSk7Ci0JCU9VVF9SSU5HX1JFRyhSMjAwX1NFX1ZBUF9DTlRMLCB0ZW1wU0VfVkFQX0NOVEwpOwotCQlPVVRfUklOR19SRUcoUjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMLCB0ZW1wUkVfQVVYX1NDSVNTT1JfQ05UTCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCi0JCS8qIE1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSAzRCBzdGF0ZSBuZXh0IHRpbWUuCi0JCSAqLwotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3R4X293bmVyID0gMDsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbmJveDsgaSsrKSB7Ci0KLQkJCS8qIEZ1bm55IHRoYXQgdGhpcyBzaG91bGQgYmUgcmVxdWlyZWQgLS0KLQkJCSAqICBzZXRzIHRvcC1sZWZ0PwotCQkJICovCi0JCQlyYWRlb25fZW1pdF9jbGlwX3JlY3QoZGV2X3ByaXYsICZzYXJlYV9wcml2LT5ib3hlc1tpXSk7Ci0KLQkJCUJFR0lOX1JJTkcoMTQpOwotCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSMjAwXzNEX0RSQVdfSU1NRF8yLCAxMikpOwotCQkJT1VUX1JJTkcoKFJBREVPTl9QUklNX1RZUEVfUkVDVF9MSVNUIHwKLQkJCQkgIFJBREVPTl9QUklNX1dBTEtfUklORyB8Ci0JCQkJICAoMyA8PCBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUKSkpOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDFdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kxXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOwotCQkJT1VUX1JJTkcoMHgzZjgwMDAwMCk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7Ci0JCQlPVVRfUklORygweDNmODAwMDAwKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gyXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMl0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKLQkJCU9VVF9SSU5HKDB4M2Y4MDAwMDApOwotCQkJQURWQU5DRV9SSU5HKCk7Ci0JCX0KLQl9IGVsc2UgaWYgKChmbGFncyAmIChSQURFT05fREVQVEggfCBSQURFT05fU1RFTkNJTCkpKSB7Ci0KLQkJaW50IHRlbXBSQjNEX1pTVEVOQ0lMQ05UTCA9IGRlcHRoX2NsZWFyLT5yYjNkX3pzdGVuY2lsY250bDsKLQotCQlyYjNkX2NudGwgPSBkZXB0aF9jbGVhci0+cmIzZF9jbnRsOwotCi0JCWlmIChmbGFncyAmIFJBREVPTl9ERVBUSCkgewotCQkJcmIzZF9jbnRsIHw9IFJBREVPTl9aX0VOQUJMRTsKLQkJfSBlbHNlIHsKLQkJCXJiM2RfY250bCAmPSB+UkFERU9OX1pfRU5BQkxFOwotCQl9Ci0KLQkJaWYgKGZsYWdzICYgUkFERU9OX1NURU5DSUwpIHsKLQkJCXJiM2RfY250bCB8PSBSQURFT05fU1RFTkNJTF9FTkFCTEU7Ci0JCQlyYjNkX3N0ZW5jaWxyZWZtYXNrID0gY2xlYXItPmRlcHRoX21hc2s7CS8qIG1pc25hbWVkIGZpZWxkICovCi0JCX0gZWxzZSB7Ci0JCQlyYjNkX2NudGwgJj0gflJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKLQkJCXJiM2Rfc3RlbmNpbHJlZm1hc2sgPSAweDAwMDAwMDAwOwotCQl9Ci0KLQkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9DT01QX1pCVUYpIHsKLQkJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCB8PSBSQURFT05fWl9DT01QUkVTU0lPTl9FTkFCTEUgfAotCQkJICAgIFJBREVPTl9aX0RFQ09NUFJFU1NJT05fRU5BQkxFOwotCQl9Ci0JCWlmIChmbGFncyAmIFJBREVPTl9VU0VfSElFUlopIHsKLQkJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCB8PSBSQURFT05fWl9ISUVSQVJDSFlfRU5BQkxFOwotCQl9Ci0KLQkJQkVHSU5fUklORygxMyk7Ci0JCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKLQotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9DTlRMLCAxKSk7Ci0JCU9VVF9SSU5HKDB4MDAwMDAwMDApOwotCQlPVVRfUklORyhyYjNkX2NudGwpOwotCi0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9aU1RFTkNJTENOVEwsIHRlbXBSQjNEX1pTVEVOQ0lMQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSywgcmIzZF9zdGVuY2lscmVmbWFzayk7Ci0JCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9QTEFORU1BU0ssIDB4MDAwMDAwMDApOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1NFX0NOVEwsIGRlcHRoX2NsZWFyLT5zZV9jbnRsKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0KLQkJLyogTWFrZSBzdXJlIHdlIHJlc3RvcmUgdGhlIDNEIHN0YXRlIG5leHQgdGltZS4KLQkJICovCi0JCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOwotCi0JCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKLQotCQkJLyogRnVubnkgdGhhdCB0aGlzIHNob3VsZCBiZSByZXF1aXJlZCAtLQotCQkJICogIHNldHMgdG9wLWxlZnQ/Ci0JCQkgKi8KLQkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJnNhcmVhX3ByaXYtPmJveGVzW2ldKTsKLQotCQkJQkVHSU5fUklORygxNSk7Ci0KLQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OXzNEX0RSQVdfSU1NRCwgMTMpKTsKLQkJCU9VVF9SSU5HKFJBREVPTl9WVFhfWl9QUkVTRU5UIHwKLQkJCQkgUkFERU9OX1ZUWF9QS0NPTE9SX1BSRVNFTlQpOwotCQkJT1VUX1JJTkcoKFJBREVPTl9QUklNX1RZUEVfUkVDVF9MSVNUIHwKLQkJCQkgIFJBREVPTl9QUklNX1dBTEtfUklORyB8Ci0JCQkJICBSQURFT05fTUFPU19FTkFCTEUgfAotCQkJCSAgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUgfAotCQkJCSAgKDMgPDwgUkFERU9OX05VTV9WRVJUSUNFU19TSElGVCkpKTsKLQotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDFdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kxXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOwotCQkJT1VUX1JJTkcoMHgwKTsKLQotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDFdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kyXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOwotCQkJT1VUX1JJTkcoMHgwKTsKLQotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDJdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kyXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOwotCQkJT1VUX1JJTkcoMHgwKTsKLQotCQkJQURWQU5DRV9SSU5HKCk7Ci0JCX0KLQl9Ci0KLQkvKiBJbmNyZW1lbnQgdGhlIGNsZWFyIGNvdW50ZXIuICBUaGUgY2xpZW50LXNpZGUgM0QgZHJpdmVyIG11c3QKLQkgKiB3YWl0IG9uIHRoaXMgdmFsdWUgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNsZWFyIGlvY3RsLiAgV2UKLQkgKiBuZWVkIHRoaXMgYmVjYXVzZSB0aGUgY2FyZCdzIHNvIGRhbW5lZCBmYXN0Li4uCi0JICovCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIrKzsKLQotCUJFR0lOX1JJTkcoNCk7Ci0KLQlSQURFT05fQ0xFQVJfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyKTsKLQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlpbnQgbmJveCA9IHNhcmVhX3ByaXYtPm5ib3g7Ci0Jc3RydWN0IGRybV9jbGlwX3JlY3QgKnBib3ggPSBzYXJlYV9wcml2LT5ib3hlczsKLQlpbnQgaTsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKiBEbyBzb21lIHRyaXZpYWwgcGVyZm9ybWFuY2UgbW9uaXRvcmluZy4uLgotCSAqLwotCWlmIChkZXZfcHJpdi0+ZG9fYm94ZXMpCi0JCXJhZGVvbl9jcF9wZXJmb3JtYW5jZV9ib3hlcyhkZXZfcHJpdik7Ci0KLQkvKiBXYWl0IGZvciB0aGUgM0Qgc3RyZWFtIHRvIGlkbGUgYmVmb3JlIGRpc3BhdGNoaW5nIHRoZSBiaXRibHQuCi0JICogVGhpcyB3aWxsIHByZXZlbnQgZGF0YSBjb3JydXB0aW9uIGJldHdlZW4gdGhlIHR3byBzdHJlYW1zLgotCSAqLwotCUJFR0lOX1JJTkcoMik7Ci0KLQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQotCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKLQkJaW50IHggPSBwYm94W2ldLngxOwotCQlpbnQgeSA9IHBib3hbaV0ueTE7Ci0JCWludCB3ID0gcGJveFtpXS54MiAtIHg7Ci0JCWludCBoID0gcGJveFtpXS55MiAtIHk7Ci0KLQkJRFJNX0RFQlVHKCIlZCwlZC0lZCwlZFxuIiwgeCwgeSwgdywgaCk7Ci0KLQkJQkVHSU5fUklORyg5KTsKLQotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9EUF9HVUlfTUFTVEVSX0NOVEwsIDApKTsKLQkJT1VUX1JJTkcoUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwgfAotCQkJIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKLQkJCSBSQURFT05fR01DX0JSVVNIX05PTkUgfAotCQkJIChkZXZfcHJpdi0+Y29sb3JfZm10IDw8IDgpIHwKLQkJCSBSQURFT05fR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8Ci0JCQkgUkFERU9OX1JPUDNfUyB8Ci0JCQkgUkFERU9OX0RQX1NSQ19TT1VSQ0VfTUVNT1JZIHwKLQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMgfCBSQURFT05fR01DX1dSX01TS19ESVMpOwotCi0JCS8qIE1ha2UgdGhpcyB3b3JrIGV2ZW4gaWYgZnJvbnQgJiBiYWNrIGFyZSBmbGlwcGVkOgotCQkgKi8KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU1JDX1BJVENIX09GRlNFVCwgMSkpOwotCQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMCkgewotCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0KTsKLQkJCU9VVF9SSU5HKGRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQpOwotCQl9IGVsc2UgewotCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7Ci0JCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOwotCQl9Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU1JDX1hfWSwgMikpOwotCQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKLQkJT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7Ci0JCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOwotCi0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCS8qIEluY3JlbWVudCB0aGUgZnJhbWUgY291bnRlci4gIFRoZSBjbGllbnQtc2lkZSAzRCBkcml2ZXIgbXVzdAotCSAqIHRocm90dGxlIHRoZSBmcmFtZXJhdGUgYnkgd2FpdGluZyBmb3IgdGhpcyB2YWx1ZSBiZWZvcmUKLQkgKiBwZXJmb3JtaW5nIHRoZSBzd2FwYnVmZmVyIGlvY3RsLgotCSAqLwotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKys7Ci0KLQlCRUdJTl9SSU5HKDQpOwotCi0JUkFERU9OX0ZSQU1FX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSk7Ci0JUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9zYXJlYSAqc2FyZWEgPSAoc3RydWN0IGRybV9zYXJlYSAqKSBkZXZfcHJpdi0+c2FyZWEtPmhhbmRsZTsKLQlpbnQgb2Zmc2V0ID0gKGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlID09IDEpCi0JICAgID8gZGV2X3ByaXYtPmZyb250X29mZnNldCA6IGRldl9wcml2LT5iYWNrX29mZnNldDsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoInBmQ3VycmVudFBhZ2U9JWRcbiIsCi0JCSAgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UpOwotCi0JLyogRG8gc29tZSB0cml2aWFsIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcuLi4KLQkgKi8KLQlpZiAoZGV2X3ByaXYtPmRvX2JveGVzKSB7Ci0JCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX0ZMSVA7Ci0JCXJhZGVvbl9jcF9wZXJmb3JtYW5jZV9ib3hlcyhkZXZfcHJpdik7Ci0JfQotCi0JLyogVXBkYXRlIHRoZSBmcmFtZSBvZmZzZXRzIGZvciBib3RoIENSVENzCi0JICovCi0JQkVHSU5fUklORyg2KTsKLQotCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKLQlPVVRfUklOR19SRUcoUkFERU9OX0NSVENfT0ZGU0VULAotCQkgICAgICgoc2FyZWEtPmZyYW1lLnkgKiBkZXZfcHJpdi0+ZnJvbnRfcGl0Y2ggKwotCQkgICAgICAgc2FyZWEtPmZyYW1lLnggKiAoZGV2X3ByaXYtPmNvbG9yX2ZtdCAtIDIpKSAmIH43KQotCQkgICAgICsgb2Zmc2V0KTsKLQlPVVRfUklOR19SRUcoUkFERU9OX0NSVEMyX09GRlNFVCwgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmNydGMyX2Jhc2UKLQkJICAgICArIG9mZnNldCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQotCS8qIEluY3JlbWVudCB0aGUgZnJhbWUgY291bnRlci4gIFRoZSBjbGllbnQtc2lkZSAzRCBkcml2ZXIgbXVzdAotCSAqIHRocm90dGxlIHRoZSBmcmFtZXJhdGUgYnkgd2FpdGluZyBmb3IgdGhpcyB2YWx1ZSBiZWZvcmUKLQkgKiBwZXJmb3JtaW5nIHRoZSBzd2FwYnVmZmVyIGlvY3RsLgotCSAqLwotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKys7Ci0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPQotCQkxIC0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2U7Ci0KLQlCRUdJTl9SSU5HKDIpOwotCi0JUkFERU9OX0ZSQU1FX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotc3RhdGljIGludCBiYWRfcHJpbV92ZXJ0ZXhfbnIoaW50IHByaW1pdGl2ZSwgaW50IG5yKQotewotCXN3aXRjaCAocHJpbWl0aXZlICYgUkFERU9OX1BSSU1fVFlQRV9NQVNLKSB7Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFX05PTkU6Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFX1BPSU5UOgotCQlyZXR1cm4gbnIgPCAxOwotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9MSU5FOgotCQlyZXR1cm4gKG5yICYgMSkgfHwgbnIgPT0gMDsKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfTElORV9TVFJJUDoKLQkJcmV0dXJuIG5yIDwgMjsKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfVFJJX0xJU1Q6Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFXzNWUlRfUE9JTlRfTElTVDoKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1Q6Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFX1JFQ1RfTElTVDoKLQkJcmV0dXJuIG5yICUgMyB8fCBuciA9PSAwOwotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9UUklfRkFOOgotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9UUklfU1RSSVA6Ci0JCXJldHVybiBuciA8IDM7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIDE7Ci0JfQotfQotCi10eXBlZGVmIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IHN0YXJ0OwotCXVuc2lnbmVkIGludCBmaW5pc2g7Ci0JdW5zaWduZWQgaW50IHByaW07Ci0JdW5zaWduZWQgaW50IG51bXZlcnRzOwotCXVuc2lnbmVkIGludCBvZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHZjX2Zvcm1hdDsKLX0gZHJtX3JhZGVvbl90Y2xfcHJpbV90OwotCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfdmVydGV4KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgIHN0cnVjdCBkcm1fYnVmICogYnVmLAotCQkJCSAgICAgIGRybV9yYWRlb25fdGNsX3ByaW1fdCAqIHByaW0pCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlpbnQgb2Zmc2V0ID0gZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgKyBidWYtPm9mZnNldCArIHByaW0tPnN0YXJ0OwotCWludCBudW12ZXJ0cyA9IChpbnQpcHJpbS0+bnVtdmVydHM7Ci0JaW50IG5ib3ggPSBzYXJlYV9wcml2LT5uYm94OwotCWludCBpID0gMDsKLQlSSU5HX0xPQ0FMUzsKLQotCURSTV9ERUJVRygiaHdwcmltIDB4JXggdmZtdCAweCV4ICVkLi4lZCAlZCB2ZXJ0c1xuIiwKLQkJICBwcmltLT5wcmltLAotCQkgIHByaW0tPnZjX2Zvcm1hdCwgcHJpbS0+c3RhcnQsIHByaW0tPmZpbmlzaCwgcHJpbS0+bnVtdmVydHMpOwotCi0JaWYgKGJhZF9wcmltX3ZlcnRleF9ucihwcmltLT5wcmltLCBwcmltLT5udW12ZXJ0cykpIHsKLQkJRFJNX0VSUk9SKCJiYWQgcHJpbSAleCBudW12ZXJ0cyAlZFxuIiwKLQkJCSAgcHJpbS0+cHJpbSwgcHJpbS0+bnVtdmVydHMpOwotCQlyZXR1cm47Ci0JfQotCi0JZG8gewotCQkvKiBFbWl0IHRoZSBuZXh0IGNsaXByZWN0ICovCi0JCWlmIChpIDwgbmJveCkgewotCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOwotCQl9Ci0KLQkJLyogRW1pdCB0aGUgdmVydGV4IGJ1ZmZlciByZW5kZXJpbmcgY29tbWFuZHMgKi8KLQkJQkVHSU5fUklORyg1KTsKLQotCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0sIDMpKTsKLQkJT1VUX1JJTkcob2Zmc2V0KTsKLQkJT1VUX1JJTkcobnVtdmVydHMpOwotCQlPVVRfUklORyhwcmltLT52Y19mb3JtYXQpOwotCQlPVVRfUklORyhwcmltLT5wcmltIHwgUkFERU9OX1BSSU1fV0FMS19MSVNUIHwKLQkJCSBSQURFT05fQ09MT1JfT1JERVJfUkdCQSB8Ci0JCQkgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUgfAotCQkJIChudW12ZXJ0cyA8PCBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUKSk7Ci0KLQkJQURWQU5DRV9SSU5HKCk7Ci0KLQkJaSsrOwotCX0gd2hpbGUgKGkgPCBuYm94KTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOwotCVJJTkdfTE9DQUxTOwotCi0JYnVmX3ByaXYtPmFnZSA9ICsrZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2g7Ci0KLQkvKiBFbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIGFnZSAqLwotCUJFR0lOX1JJTkcoMik7Ci0JUkFERU9OX0RJU1BBVENIX0FHRShidWZfcHJpdi0+YWdlKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWJ1Zi0+cGVuZGluZyA9IDE7Ci0JYnVmLT51c2VkID0gMDsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGlyZWN0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZiwgaW50IHN0YXJ0LCBpbnQgZW5kKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJidWY9JWQgcz0weCV4IGU9MHgleFxuIiwgYnVmLT5pZHgsIHN0YXJ0LCBlbmQpOwotCi0JaWYgKHN0YXJ0ICE9IGVuZCkgewotCQlpbnQgb2Zmc2V0ID0gKGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0Ci0JCQkgICAgICArIGJ1Zi0+b2Zmc2V0ICsgc3RhcnQpOwotCQlpbnQgZHdvcmRzID0gKGVuZCAtIHN0YXJ0ICsgMykgLyBzaXplb2YodTMyKTsKLQotCQkvKiBJbmRpcmVjdCBidWZmZXIgZGF0YSBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mCi0JCSAqIGR3b3Jkcywgc28gaWYgd2UndmUgYmVlbiBnaXZlbiBhbiBvZGQgbnVtYmVyIHdlIG11c3QKLQkJICogcGFkIHRoZSBkYXRhIHdpdGggYSBUeXBlLTIgQ1AgcGFja2V0LgotCQkgKi8KLQkJaWYgKGR3b3JkcyAmIDEpIHsKLQkJCXUzMiAqZGF0YSA9ICh1MzIgKikKLQkJCSAgICAoKGNoYXIgKilkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUKLQkJCSAgICAgKyBidWYtPm9mZnNldCArIHN0YXJ0KTsKLQkJCWRhdGFbZHdvcmRzKytdID0gUkFERU9OX0NQX1BBQ0tFVDI7Ci0JCX0KLQotCQkvKiBGaXJlIG9mZiB0aGUgaW5kaXJlY3QgYnVmZmVyICovCi0JCUJFR0lOX1JJTkcoMyk7Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fQ1BfSUJfQkFTRSwgMSkpOwotCQlPVVRfUklORyhvZmZzZXQpOwotCQlPVVRfUklORyhkd29yZHMpOwotCi0JCUFEVkFOQ0VfUklORygpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGljZXMoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkJICAgICAgIHN0cnVjdCBkcm1fYnVmICogZWx0X2J1ZiwKLQkJCQkgICAgICAgZHJtX3JhZGVvbl90Y2xfcHJpbV90ICogcHJpbSkKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwotCWludCBvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIHByaW0tPm9mZnNldDsKLQl1MzIgKmRhdGE7Ci0JaW50IGR3b3JkczsKLQlpbnQgaSA9IDA7Ci0JaW50IHN0YXJ0ID0gcHJpbS0+c3RhcnQgKyBSQURFT05fSU5ERVhfUFJJTV9PRkZTRVQ7Ci0JaW50IGNvdW50ID0gKHByaW0tPmZpbmlzaCAtIHN0YXJ0KSAvIHNpemVvZih1MTYpOwotCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKLQotCURSTV9ERUJVRygiaHdwcmltIDB4JXggdmZtdCAweCV4ICVkLi4lZCBvZmZzZXQ6ICV4IG5yICVkXG4iLAotCQkgIHByaW0tPnByaW0sCi0JCSAgcHJpbS0+dmNfZm9ybWF0LAotCQkgIHByaW0tPnN0YXJ0LCBwcmltLT5maW5pc2gsIHByaW0tPm9mZnNldCwgcHJpbS0+bnVtdmVydHMpOwotCi0JaWYgKGJhZF9wcmltX3ZlcnRleF9ucihwcmltLT5wcmltLCBjb3VudCkpIHsKLQkJRFJNX0VSUk9SKCJiYWQgcHJpbSAleCBjb3VudCAlZFxuIiwgcHJpbS0+cHJpbSwgY291bnQpOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKHN0YXJ0ID49IHByaW0tPmZpbmlzaCB8fCAocHJpbS0+c3RhcnQgJiAweDcpKSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIHByaW0gJWRcbiIsIHByaW0tPnByaW0pOwotCQlyZXR1cm47Ci0JfQotCi0JZHdvcmRzID0gKHByaW0tPmZpbmlzaCAtIHByaW0tPnN0YXJ0ICsgMykgLyBzaXplb2YodTMyKTsKLQotCWRhdGEgPSAodTMyICopICgoY2hhciAqKWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSArCi0JCQllbHRfYnVmLT5vZmZzZXQgKyBwcmltLT5zdGFydCk7Ci0KLQlkYXRhWzBdID0gQ1BfUEFDS0VUMyhSQURFT05fM0RfUk5EUl9HRU5fSU5EWF9QUklNLCBkd29yZHMgLSAyKTsKLQlkYXRhWzFdID0gb2Zmc2V0OwotCWRhdGFbMl0gPSBwcmltLT5udW12ZXJ0czsKLQlkYXRhWzNdID0gcHJpbS0+dmNfZm9ybWF0OwotCWRhdGFbNF0gPSAocHJpbS0+cHJpbSB8Ci0JCSAgIFJBREVPTl9QUklNX1dBTEtfSU5EIHwKLQkJICAgUkFERU9OX0NPTE9SX09SREVSX1JHQkEgfAotCQkgICBSQURFT05fVlRYX0ZNVF9SQURFT05fTU9ERSB8Ci0JCSAgIChjb3VudCA8PCBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUKSk7Ci0KLQlkbyB7Ci0JCWlmIChpIDwgbmJveCkKLQkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJnNhcmVhX3ByaXYtPmJveGVzW2ldKTsKLQotCQlyYWRlb25fY3BfZGlzcGF0Y2hfaW5kaXJlY3QoZGV2LCBlbHRfYnVmLAotCQkJCQkgICAgcHJpbS0+c3RhcnQsIHByaW0tPmZpbmlzaCk7Ci0KLQkJaSsrOwotCX0gd2hpbGUgKGkgPCBuYm94KTsKLQotfQotCi0jZGVmaW5lIFJBREVPTl9NQVhfVEVYVFVSRV9TSVpFIFJBREVPTl9CVUZGRVJfU0laRQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9kaXNwYXRjaF90ZXh0dXJlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJCSAgICAgIGRybV9yYWRlb25fdGV4dHVyZV90ICogdGV4LAotCQkJCSAgICAgIGRybV9yYWRlb25fdGV4X2ltYWdlX3QgKiBpbWFnZSkKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JdTMyIGZvcm1hdDsKLQl1MzIgKmJ1ZmZlcjsKLQljb25zdCB1OCBfX3VzZXIgKmRhdGE7Ci0JaW50IHNpemUsIGR3b3JkcywgdGV4X3dpZHRoLCBibGl0X3dpZHRoLCBzcGl0Y2g7Ci0JdTMyIGhlaWdodDsKLQlpbnQgaTsKLQl1MzIgdGV4cGl0Y2gsIG1pY3JvdGlsZTsKLQl1MzIgb2Zmc2V0OwotCVJJTkdfTE9DQUxTOwotCi0JaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsICZ0ZXgtPm9mZnNldCkpIHsKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlc3RpbmF0aW9uIG9mZnNldFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1RFWFRVUkVfTE9BRDsKLQotCS8qIEZsdXNoIHRoZSBwaXhlbCBjYWNoZS4gIFRoaXMgZW5zdXJlcyBubyBwaXhlbCBkYXRhIGdldHMgbWl4ZWQKLQkgKiB1cCB3aXRoIHRoZSB0ZXh0dXJlIGRhdGEgZnJvbSB0aGUgaG9zdCBkYXRhIGJsaXQsIG90aGVyd2lzZQotCSAqIHBhcnQgb2YgdGhlIHRleHR1cmUgaW1hZ2UgbWF5IGJlIGNvcnJ1cHRlZC4KLQkgKi8KLQlCRUdJTl9SSU5HKDQpOwotCVJBREVPTl9GTFVTSF9DQUNIRSgpOwotCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCS8qIFRoZSBjb21waWxlciB3b24ndCBvcHRpbWl6ZSBhd2F5IGEgZGl2aXNpb24gYnkgYSB2YXJpYWJsZSwKLQkgKiBldmVuIGlmIHRoZSBvbmx5IGxlZ2FsIHZhbHVlcyBhcmUgcG93ZXJzIG9mIHR3by4gIFRodXMsIHdlJ2xsCi0JICogdXNlIGEgc2hpZnQgaW5zdGVhZC4KLQkgKi8KLQlzd2l0Y2ggKHRleC0+Zm9ybWF0KSB7Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjg4ODg6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfUkdCQTg4ODg6Ci0JCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7Ci0JCXRleF93aWR0aCA9IHRleC0+d2lkdGggKiA0OwotCQlibGl0X3dpZHRoID0gaW1hZ2UtPndpZHRoICogNDsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfQUk4ODoKLQljYXNlIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NToKLQljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0I1NjU6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjQ0NDQ6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfVllVWTQyMjoKLQljYXNlIFJBREVPTl9UWEZPUk1BVF9ZVllVNDIyOgotCQlmb3JtYXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKLQkJdGV4X3dpZHRoID0gdGV4LT53aWR0aCAqIDI7Ci0JCWJsaXRfd2lkdGggPSBpbWFnZS0+d2lkdGggKiAyOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9UWEZPUk1BVF9JODoKLQljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0IzMzI6Ci0JCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQ0k4OwotCQl0ZXhfd2lkdGggPSB0ZXgtPndpZHRoICogMTsKLQkJYmxpdF93aWR0aCA9IGltYWdlLT53aWR0aCAqIDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9FUlJPUigiaW52YWxpZCB0ZXh0dXJlIGZvcm1hdCAlZFxuIiwgdGV4LT5mb3JtYXQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0Jc3BpdGNoID0gYmxpdF93aWR0aCA+PiA2OwotCWlmIChzcGl0Y2ggPT0gMCAmJiBpbWFnZS0+aGVpZ2h0ID4gMSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQl0ZXhwaXRjaCA9IHRleC0+cGl0Y2g7Ci0JaWYgKCh0ZXhwaXRjaCA8PCAyMikgJiBSQURFT05fRFNUX1RJTEVfTUlDUk8pIHsKLQkJbWljcm90aWxlID0gMTsKLQkJaWYgKHRleF93aWR0aCA8IDY0KSB7Ci0JCQl0ZXhwaXRjaCAmPSB+KFJBREVPTl9EU1RfVElMRV9NSUNSTyA+PiAyMik7Ci0JCQkvKiB3ZSBnb3QgdGlsZWQgY29vcmRpbmF0ZXMsIHVudGlsZSB0aGVtICovCi0JCQlpbWFnZS0+eCAqPSAyOwotCQl9Ci0JfSBlbHNlCi0JCW1pY3JvdGlsZSA9IDA7Ci0KLQlEUk1fREVCVUcoInRleD0lZHglZCBibGl0PSVkXG4iLCB0ZXhfd2lkdGgsIHRleC0+aGVpZ2h0LCBibGl0X3dpZHRoKTsKLQotCWRvIHsKLQkJRFJNX0RFQlVHKCJ0ZXg6IG9mcz0weCV4IHA9JWQgZj0lZCB4PSVoZCB5PSVoZCB3PSVoZCBoPSVoZFxuIiwKLQkJCSAgdGV4LT5vZmZzZXQgPj4gMTAsIHRleC0+cGl0Y2gsIHRleC0+Zm9ybWF0LAotCQkJICBpbWFnZS0+eCwgaW1hZ2UtPnksIGltYWdlLT53aWR0aCwgaW1hZ2UtPmhlaWdodCk7Ci0KLQkJLyogTWFrZSBhIGNvcHkgb2Ygc29tZSBwYXJhbWV0ZXJzIGluIGNhc2Ugd2UgaGF2ZSB0bwotCQkgKiB1cGRhdGUgdGhlbSBmb3IgYSBtdWx0aS1wYXNzIHRleHR1cmUgYmxpdC4KLQkJICovCi0JCWhlaWdodCA9IGltYWdlLT5oZWlnaHQ7Ci0JCWRhdGEgPSAoY29uc3QgdTggX191c2VyICopaW1hZ2UtPmRhdGE7Ci0KLQkJc2l6ZSA9IGhlaWdodCAqIGJsaXRfd2lkdGg7Ci0KLQkJaWYgKHNpemUgPiBSQURFT05fTUFYX1RFWFRVUkVfU0laRSkgewotCQkJaGVpZ2h0ID0gUkFERU9OX01BWF9URVhUVVJFX1NJWkUgLyBibGl0X3dpZHRoOwotCQkJc2l6ZSA9IGhlaWdodCAqIGJsaXRfd2lkdGg7Ci0JCX0gZWxzZSBpZiAoc2l6ZSA8IDQgJiYgc2l6ZSA+IDApIHsKLQkJCXNpemUgPSA0OwotCQl9IGVsc2UgaWYgKHNpemUgPT0gMCkgewotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCQlidWYgPSByYWRlb25fZnJlZWxpc3RfZ2V0KGRldik7Ci0JCWlmICgwICYmICFidWYpIHsKLQkJCXJhZGVvbl9kb19jcF9pZGxlKGRldl9wcml2KTsKLQkJCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKLQkJfQotCQlpZiAoIWJ1ZikgewotCQkJRFJNX0RFQlVHKCJFQUdBSU5cbiIpOwotCQkJaWYgKERSTV9DT1BZX1RPX1VTRVIodGV4LT5pbWFnZSwgaW1hZ2UsIHNpemVvZigqaW1hZ2UpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCXJldHVybiAtRUFHQUlOOwotCQl9Ci0KLQkJLyogRGlzcGF0Y2ggdGhlIGluZGlyZWN0IGJ1ZmZlci4KLQkJICovCi0JCWJ1ZmZlciA9Ci0JCSAgICAodTMyICopICgoY2hhciAqKWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSArIGJ1Zi0+b2Zmc2V0KTsKLQkJZHdvcmRzID0gc2l6ZSAvIDQ7Ci0KLSNkZWZpbmUgUkFERU9OX0NPUFlfTVQoX2J1ZiwgX2RhdGEsIF93aWR0aCkgXAotCWRvIHsgXAotCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKF9idWYsIF9kYXRhLCAoX3dpZHRoKSkpIHtcCi0JCQlEUk1fRVJST1IoIkVGQVVMVCBvbiBwYWQsICVkIGJ5dGVzXG4iLCAoX3dpZHRoKSk7IFwKLQkJCXJldHVybiAtRUZBVUxUOyBcCi0JCX0gXAotCX0gd2hpbGUoMCkKLQotCQlpZiAobWljcm90aWxlKSB7Ci0JCQkvKiB0ZXh0dXJlIG1pY3JvIHRpbGluZyBpbiB1c2UsIG1pbmltdW0gdGV4dHVyZSB3aWR0aCBpcyB0aHVzIDE2IGJ5dGVzLgotCQkJICAgaG93ZXZlciwgd2UgY2Fubm90IHVzZSBibGl0dGVyIGRpcmVjdGx5IGZvciB0ZXh0dXJlIHdpZHRoIDwgNjQgYnl0ZXMsCi0JCQkgICBzaW5jZSBtaW5pbXVtIHRleCBwaXRjaCBpcyA2NCBieXRlcyBhbmQgd2UgbmVlZCB0aGlzIHRvIG1hdGNoCi0JCQkgICB0aGUgdGV4dHVyZSB3aWR0aCwgb3RoZXJ3aXNlIHRoZSBibGl0dGVyIHdpbGwgdGlsZSBpdCB3cm9uZy4KLQkJCSAgIFRodXMsIHRpbGluZyBtYW51YWxseSBpbiB0aGlzIGNhc2UuIEFkZGl0aW9uYWxseSwgbmVlZCB0byBzcGVjaWFsCi0JCQkgICBjYXNlIHRleCBoZWlnaHQgPSAxLCBzaW5jZSBvdXIgYWN0dWFsIGltYWdlIHdpbGwgaGF2ZSBoZWlnaHQgMgotCQkJICAgYW5kIHdlIG5lZWQgdG8gZW5zdXJlIHdlIGRvbid0IHJlYWQgYmV5b25kIHRoZSB0ZXh0dXJlIHNpemUKLQkJCSAgIGZyb20gdXNlciBzcGFjZS4gKi8KLQkJCWlmICh0ZXgtPmhlaWdodCA9PSAxKSB7Ci0JCQkJaWYgKHRleF93aWR0aCA+PSA2NCB8fCB0ZXhfd2lkdGggPD0gMTYpIHsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLAotCQkJCQkJKGludCkodGV4X3dpZHRoICogc2l6ZW9mKHUzMikpKTsKLQkJCQl9IGVsc2UgaWYgKHRleF93aWR0aCA9PSAzMikgewotCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsIDE2KTsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyICsgOCwKLQkJCQkJCSAgICAgICBkYXRhICsgMTYsIDE2KTsKLQkJCQl9Ci0JCQl9IGVsc2UgaWYgKHRleF93aWR0aCA+PSA2NCB8fCB0ZXhfd2lkdGggPT0gMTYpIHsKLQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsCi0JCQkJCSAgICAgICAoaW50KShkd29yZHMgKiBzaXplb2YodTMyKSkpOwotCQkJfSBlbHNlIGlmICh0ZXhfd2lkdGggPCAxNikgewotCQkJCWZvciAoaSA9IDA7IGkgPCB0ZXgtPmhlaWdodDsgaSsrKSB7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwgdGV4X3dpZHRoKTsKLQkJCQkJYnVmZmVyICs9IDQ7Ci0JCQkJCWRhdGEgKz0gdGV4X3dpZHRoOwotCQkJCX0KLQkJCX0gZWxzZSBpZiAodGV4X3dpZHRoID09IDMyKSB7Ci0JCQkJLyogVE9ETzogbWFrZSBzdXJlIHRoaXMgd29ya3Mgd2hlbiBub3QgZml0dGluZyBpbiBvbmUgYnVmZmVyCi0JCQkJICAgKGkuZS4gMzJieXRlcyB4IDIwNDguLi4pICovCi0JCQkJZm9yIChpID0gMDsgaSA8IHRleC0+aGVpZ2h0OyBpICs9IDIpIHsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCAxNik7Ci0JCQkJCWRhdGEgKz0gMTY7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciArIDgsIGRhdGEsIDE2KTsKLQkJCQkJZGF0YSArPSAxNjsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyICsgNCwgZGF0YSwgMTYpOwotCQkJCQlkYXRhICs9IDE2OwotCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyAxMiwgZGF0YSwgMTYpOwotCQkJCQlkYXRhICs9IDE2OwotCQkJCQlidWZmZXIgKz0gMTY7Ci0JCQkJfQotCQkJfQotCQl9IGVsc2UgewotCQkJaWYgKHRleF93aWR0aCA+PSAzMikgewotCQkJCS8qIFRleHR1cmUgaW1hZ2Ugd2lkdGggaXMgbGFyZ2VyIHRoYW4gdGhlIG1pbmltdW0sIHNvIHdlCi0JCQkJICogY2FuIHVwbG9hZCBpdCBkaXJlY3RseS4KLQkJCQkgKi8KLQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsCi0JCQkJCSAgICAgICAoaW50KShkd29yZHMgKiBzaXplb2YodTMyKSkpOwotCQkJfSBlbHNlIHsKLQkJCQkvKiBUZXh0dXJlIGltYWdlIHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSwgc28gd2UKLQkJCQkgKiBuZWVkIHRvIHBhZCBvdXQgZWFjaCBpbWFnZSBzY2FubGluZSB0byB0aGUgbWluaW11bQotCQkJCSAqIHdpZHRoLgotCQkJCSAqLwotCQkJCWZvciAoaSA9IDA7IGkgPCB0ZXgtPmhlaWdodDsgaSsrKSB7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwgdGV4X3dpZHRoKTsKLQkJCQkJYnVmZmVyICs9IDg7Ci0JCQkJCWRhdGEgKz0gdGV4X3dpZHRoOwotCQkJCX0KLQkJCX0KLQkJfQotCi0jdW5kZWYgUkFERU9OX0NPUFlfTVQKLQkJYnVmLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Ci0JCWJ1Zi0+dXNlZCA9IHNpemU7Ci0JCW9mZnNldCA9IGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ICsgYnVmLT5vZmZzZXQ7Ci0JCUJFR0lOX1JJTkcoOSk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OX0NOVExfQklUQkxUX01VTFRJLCA1KSk7Ci0JCU9VVF9SSU5HKFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMIHwKLQkJCSBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCQkgUkFERU9OX0dNQ19CUlVTSF9OT05FIHwKLQkJCSAoZm9ybWF0IDw8IDgpIHwKLQkJCSBSQURFT05fR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8Ci0JCQkgUkFERU9OX1JPUDNfUyB8Ci0JCQkgUkFERU9OX0RQX1NSQ19TT1VSQ0VfTUVNT1JZIHwKLQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMgfCBSQURFT05fR01DX1dSX01TS19ESVMpOwotCQlPVVRfUklORygoc3BpdGNoIDw8IDIyKSB8IChvZmZzZXQgPj4gMTApKTsKLQkJT1VUX1JJTkcoKHRleHBpdGNoIDw8IDIyKSB8ICh0ZXgtPm9mZnNldCA+PiAxMCkpOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoKGltYWdlLT54IDw8IDE2KSB8IGltYWdlLT55KTsKLQkJT1VUX1JJTkcoKGltYWdlLT53aWR0aCA8PCAxNikgfCBoZWlnaHQpOwotCQlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCQlDT01NSVRfUklORygpOwotCi0JCXJhZGVvbl9jcF9kaXNjYXJkX2J1ZmZlcihkZXYsIGJ1Zik7Ci0KLQkJLyogVXBkYXRlIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciBuZXh0IHRpbWUgKi8KLQkJaW1hZ2UtPnkgKz0gaGVpZ2h0OwotCQlpbWFnZS0+aGVpZ2h0IC09IGhlaWdodDsKLQkJaW1hZ2UtPmRhdGEgPSAoY29uc3QgdTggX191c2VyICopaW1hZ2UtPmRhdGEgKyBzaXplOwotCX0gd2hpbGUgKGltYWdlLT5oZWlnaHQgPiAwKTsKLQotCS8qIEZsdXNoIHRoZSBwaXhlbCBjYWNoZSBhZnRlciB0aGUgYmxpdCBjb21wbGV0ZXMuICBUaGlzIGVuc3VyZXMKLQkgKiB0aGUgdGV4dHVyZSBkYXRhIGlzIHdyaXR0ZW4gb3V0IHRvIG1lbW9yeSBiZWZvcmUgcmVuZGVyaW5nCi0JICogY29udGludWVzLgotCSAqLwotCUJFR0lOX1JJTkcoNCk7Ci0JUkFERU9OX0ZMVVNIX0NBQ0hFKCk7Ci0JUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOwotCUFEVkFOQ0VfUklORygpOwotCUNPTU1JVF9SSU5HKCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX3N0aXBwbGUoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHUzMiAqIHN0aXBwbGUpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlCRUdJTl9SSU5HKDM1KTsKLQotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX1NUSVBQTEVfQUREUiwgMCkpOwotCU9VVF9SSU5HKDB4MDAwMDAwMDApOwotCi0JT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSQURFT05fUkVfU1RJUFBMRV9EQVRBLCAzMSkpOwotCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0JCU9VVF9SSU5HKHN0aXBwbGVbaV0pOwotCX0KLQotCUFEVkFOQ0VfUklORygpOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKGludCBzdXJmX2luZGV4LAotCQkJCSAgICAgIGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKLXsKLQlpZiAoIWRldl9wcml2LT5tbWlvKQotCQlyZXR1cm47Ci0KLQlyYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0lORk8gKyAxNiAqIHN1cmZfaW5kZXgsCi0JCSAgICAgZGV2X3ByaXYtPnN1cmZhY2VzW3N1cmZfaW5kZXhdLmZsYWdzKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5EICsgMTYgKiBzdXJmX2luZGV4LAotCQkgICAgIGRldl9wcml2LT5zdXJmYWNlc1tzdXJmX2luZGV4XS5sb3dlcik7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9VUFBFUl9CT1VORCArIDE2ICogc3VyZl9pbmRleCwKLQkJICAgICBkZXZfcHJpdi0+c3VyZmFjZXNbc3VyZl9pbmRleF0udXBwZXIpOwotfQotCi0vKiBBbGxvY2F0ZXMgYSB2aXJ0dWFsIHN1cmZhY2UKLSAqIGRvZXNuJ3QgYWx3YXlzIGFsbG9jYXRlIGEgcmVhbCBzdXJmYWNlLCB3aWxsIHN0cmV0Y2ggYW4gZXhpc3RpbmcKLSAqIHN1cmZhY2Ugd2hlbiBwb3NzaWJsZS4KLSAqCi0gKiBOb3RlIHRoYXQgcmVmY291bnQgY2FuIGJlIGF0IG1vc3QgMiwgc2luY2UgZHVyaW5nIGEgZnJlZSByZWZjb3VudD0zCi0gKiBtaWdodCBtZWFuIHdlIGhhdmUgdG8gYWxsb2NhdGUgYSBuZXcgc3VyZmFjZSB3aGljaCBtaWdodCBub3QgYWx3YXlzCi0gKiBiZSBhdmFpbGFibGUuCi0gKiBGb3IgZXhhbXBsZSA6IHdlIGFsbG9jYXRlIHRocmVlIGNvbnRpZ291cyBzdXJmYWNlcyBBQkMuIElmIEIgaXMKLSAqIGZyZWVkLCB3ZSBzdWRkZW5seSBuZWVkIHR3byBzdXJmYWNlcyB0byBzdG9yZSBBIGFuZCBDLCB3aGljaCBtaWdodAotICogbm90IGFsd2F5cyBiZSBhdmFpbGFibGUuCi0gKi8KLXN0YXRpYyBpbnQgYWxsb2Nfc3VyZmFjZShkcm1fcmFkZW9uX3N1cmZhY2VfYWxsb2NfdCAqbmV3LAotCQkJIGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlzdHJ1Y3QgcmFkZW9uX3ZpcnRfc3VyZmFjZSAqczsKLQlpbnQgaTsKLQlpbnQgdmlydF9zdXJmYWNlX2luZGV4OwotCXVpbnQzMl90IG5ld191cHBlciwgbmV3X2xvd2VyOwotCi0JbmV3X2xvd2VyID0gbmV3LT5hZGRyZXNzOwotCW5ld191cHBlciA9IG5ld19sb3dlciArIG5ldy0+c2l6ZSAtIDE7Ci0KLQkvKiBzYW5pdHkgY2hlY2sgKi8KLQlpZiAoKG5ld19sb3dlciA+PSBuZXdfdXBwZXIpIHx8IChuZXctPmZsYWdzID09IDApIHx8IChuZXctPnNpemUgPT0gMCkgfHwKLQkgICAgKChuZXdfdXBwZXIgJiBSQURFT05fU1VSRl9BRERSRVNTX0ZJWEVEX01BU0spICE9Ci0JICAgICBSQURFT05fU1VSRl9BRERSRVNTX0ZJWEVEX01BU0spCi0JICAgIHx8ICgobmV3X2xvd2VyICYgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKSAhPSAwKSkKLQkJcmV0dXJuIC0xOwotCi0JLyogbWFrZSBzdXJlIHRoZXJlIGlzIG5vIG92ZXJsYXAgd2l0aCBleGlzdGluZyBzdXJmYWNlcyAqLwotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKLQkJaWYgKChkZXZfcHJpdi0+c3VyZmFjZXNbaV0ucmVmY291bnQgIT0gMCkgJiYKLQkJICAgICgoKG5ld19sb3dlciA+PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0ubG93ZXIpICYmCi0JCSAgICAgIChuZXdfbG93ZXIgPCBkZXZfcHJpdi0+c3VyZmFjZXNbaV0udXBwZXIpKSB8fAotCQkgICAgICgobmV3X2xvd2VyIDwgZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSAmJgotCQkgICAgICAobmV3X3VwcGVyID4gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSkpKSB7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQl9Ci0KLQkvKiBmaW5kIGEgdmlydHVhbCBzdXJmYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDIgKiBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspCi0JCWlmIChkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5maWxlX3ByaXYgPT0gMCkKLQkJCWJyZWFrOwotCWlmIChpID09IDIgKiBSQURFT05fTUFYX1NVUkZBQ0VTKSB7Ci0JCXJldHVybiAtMTsKLQl9Ci0JdmlydF9zdXJmYWNlX2luZGV4ID0gaTsKLQotCS8qIHRyeSB0byByZXVzZSBhbiBleGlzdGluZyBzdXJmYWNlICovCi0JZm9yIChpID0gMDsgaSA8IFJBREVPTl9NQVhfU1VSRkFDRVM7IGkrKykgewotCQkvKiBleHRlbmQgYmVmb3JlICovCi0JCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID09IDEpICYmCi0JCSAgICAobmV3LT5mbGFncyA9PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0uZmxhZ3MpICYmCi0JCSAgICAobmV3X3VwcGVyICsgMSA9PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0ubG93ZXIpKSB7Ci0JCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKLQkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOwotCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7Ci0JCQlzLT51cHBlciA9IG5ld191cHBlcjsKLQkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKLQkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCsrOwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyID0gcy0+bG93ZXI7Ci0JCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKLQkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7Ci0JCX0KLQotCQkvKiBleHRlbmQgYWZ0ZXIgKi8KLQkJaWYgKChkZXZfcHJpdi0+c3VyZmFjZXNbaV0ucmVmY291bnQgPT0gMSkgJiYKLQkJICAgIChuZXctPmZsYWdzID09IGRldl9wcml2LT5zdXJmYWNlc1tpXS5mbGFncykgJiYKLQkJICAgIChuZXdfbG93ZXIgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyICsgMSkpIHsKLQkJCXMgPSAmKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW3ZpcnRfc3VyZmFjZV9pbmRleF0pOwotCQkJcy0+c3VyZmFjZV9pbmRleCA9IGk7Ci0JCQlzLT5sb3dlciA9IG5ld19sb3dlcjsKLQkJCXMtPnVwcGVyID0gbmV3X3VwcGVyOwotCQkJcy0+ZmxhZ3MgPSBuZXctPmZsYWdzOwotCQkJcy0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50Kys7Ci0JCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0udXBwZXIgPSBzLT51cHBlcjsKLQkJCXJhZGVvbl9hcHBseV9zdXJmYWNlX3JlZ3Mocy0+c3VyZmFjZV9pbmRleCwgZGV2X3ByaXYpOwotCQkJcmV0dXJuIHZpcnRfc3VyZmFjZV9pbmRleDsKLQkJfQotCX0KLQotCS8qIG9rYXksIHdlIG5lZWQgYSBuZXcgb25lICovCi0JZm9yIChpID0gMDsgaSA8IFJBREVPTl9NQVhfU1VSRkFDRVM7IGkrKykgewotCQlpZiAoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID09IDApIHsKLQkJCXMgPSAmKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW3ZpcnRfc3VyZmFjZV9pbmRleF0pOwotCQkJcy0+c3VyZmFjZV9pbmRleCA9IGk7Ci0JCQlzLT5sb3dlciA9IG5ld19sb3dlcjsKLQkJCXMtPnVwcGVyID0gbmV3X3VwcGVyOwotCQkJcy0+ZmxhZ3MgPSBuZXctPmZsYWdzOwotCQkJcy0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID0gMTsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlciA9IHMtPmxvd2VyOwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyID0gcy0+dXBwZXI7Ci0JCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0uZmxhZ3MgPSBzLT5mbGFnczsKLQkJCXJhZGVvbl9hcHBseV9zdXJmYWNlX3JlZ3Mocy0+c3VyZmFjZV9pbmRleCwgZGV2X3ByaXYpOwotCQkJcmV0dXJuIHZpcnRfc3VyZmFjZV9pbmRleDsKLQkJfQotCX0KLQotCS8qIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nICovCi0JcmV0dXJuIC0xOwotfQotCi1zdGF0aWMgaW50IGZyZWVfc3VyZmFjZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCWRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCi0JCQlpbnQgbG93ZXIpCi17Ci0Jc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgKnM7Ci0JaW50IGk7Ci0JLyogZmluZCB0aGUgdmlydHVhbCBzdXJmYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDIgKiBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKLQkJcyA9ICYoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbaV0pOwotCQlpZiAocy0+ZmlsZV9wcml2KSB7Ci0JCQlpZiAoKGxvd2VyID09IHMtPmxvd2VyKSAmJiAoZmlsZV9wcml2ID09IHMtPmZpbGVfcHJpdikpCi0JCQl7Ci0JCQkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KLQkJCQkgICAgbG93ZXIgPT0gcy0+bG93ZXIpCi0JCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KLQkJCQkJICAgIGxvd2VyID0gcy0+dXBwZXI7Ci0KLQkJCQlpZiAoZGV2X3ByaXYtPnN1cmZhY2VzW3MtPnN1cmZhY2VfaW5kZXhdLgotCQkJCSAgICB1cHBlciA9PSBzLT51cHBlcikKLQkJCQkJZGV2X3ByaXYtPnN1cmZhY2VzW3MtPnN1cmZhY2VfaW5kZXhdLgotCQkJCQkgICAgdXBwZXIgPSBzLT5sb3dlcjsKLQotCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS5yZWZjb3VudC0tOwotCQkJCWlmIChkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCi0JCQkJICAgIHJlZmNvdW50ID09IDApCi0JCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KLQkJCQkJICAgIGZsYWdzID0gMDsKLQkJCQlzLT5maWxlX3ByaXYgPSBOVUxMOwotCQkJCXJhZGVvbl9hcHBseV9zdXJmYWNlX3JlZ3Mocy0+c3VyZmFjZV9pbmRleCwKLQkJCQkJCQkgIGRldl9wcml2KTsKLQkJCQlyZXR1cm4gMDsKLQkJCX0KLQkJfQotCX0KLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3N1cmZhY2VzX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkJICAgIGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JaW50IGk7Ci0JZm9yIChpID0gMDsgaSA8IDIgKiBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKLQkJaWYgKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW2ldLmZpbGVfcHJpdiA9PSBmaWxlX3ByaXYpCi0JCQlmcmVlX3N1cmZhY2UoZmlsZV9wcml2LCBkZXZfcHJpdiwKLQkJCQkgICAgIGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW2ldLmxvd2VyKTsKLQl9Ci19Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIElPQ1RMIGZ1bmN0aW9ucwotICovCi1zdGF0aWMgaW50IHJhZGVvbl9zdXJmYWNlX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QgKmFsbG9jID0gZGF0YTsKLQotCWlmIChhbGxvY19zdXJmYWNlKGFsbG9jLCBkZXZfcHJpdiwgZmlsZV9wcml2KSA9PSAtMSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JZWxzZQotCQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fc3VyZmFjZV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zdXJmYWNlX2ZyZWVfdCAqbWVtZnJlZSA9IGRhdGE7Ci0KLQlpZiAoZnJlZV9zdXJmYWNlKGZpbGVfcHJpdiwgZGV2X3ByaXYsIG1lbWZyZWUtPmFkZHJlc3MpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQllbHNlCi0JCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9jbGVhcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwotCWRybV9yYWRlb25fY2xlYXJfdCAqY2xlYXIgPSBkYXRhOwotCWRybV9yYWRlb25fY2xlYXJfcmVjdF90IGRlcHRoX2JveGVzW1JBREVPTl9OUl9TQVJFQV9DTElQUkVDVFNdOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JaWYgKHNhcmVhX3ByaXYtPm5ib3ggPiBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTKQotCQlzYXJlYV9wcml2LT5uYm94ID0gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUzsKLQotCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoJmRlcHRoX2JveGVzLCBjbGVhci0+ZGVwdGhfYm94ZXMsCi0JCQkgICAgICAgc2FyZWFfcHJpdi0+bmJveCAqIHNpemVvZihkZXB0aF9ib3hlc1swXSkpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCXJhZGVvbl9jcF9kaXNwYXRjaF9jbGVhcihkZXYsIGNsZWFyLCBkZXB0aF9ib3hlcyk7Ci0KLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotfQotCi0vKiBOb3Qgc3VyZSB3aHkgdGhpcyBpc24ndCBzZXQgYWxsIHRoZSB0aW1lOgotICovCi1zdGF0aWMgaW50IHJhZGVvbl9kb19pbml0X3BhZ2VmbGlwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlCRUdJTl9SSU5HKDYpOwotCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUlRDX09GRlNFVF9DTlRMLCAwKSk7Ci0JT1VUX1JJTkcoUkFERU9OX1JFQUQoUkFERU9OX0NSVENfT0ZGU0VUX0NOVEwpIHwKLQkJIFJBREVPTl9DUlRDX09GRlNFVF9GTElQX0NOVEwpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0NSVEMyX09GRlNFVF9DTlRMLCAwKSk7Ci0JT1VUX1JJTkcoUkFERU9OX1JFQUQoUkFERU9OX0NSVEMyX09GRlNFVF9DTlRMKSB8Ci0JCSBSQURFT05fQ1JUQ19PRkZTRVRfRkxJUF9DTlRMKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nID0gMTsKLQotCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSAhPSAxKQotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9IDA7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogU3dhcHBpbmcgYW5kIGZsaXBwaW5nIGFyZSBkaWZmZXJlbnQgb3BlcmF0aW9ucywgbmVlZCBkaWZmZXJlbnQgaW9jdGxzLgotICogVGhleSBjYW4gJiBzaG91bGQgYmUgaW50ZXJtaXhlZCB0byBzdXBwb3J0IG11bHRpcGxlIDNkIHdpbmRvd3MuCi0gKi8KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWlmICghZGV2X3ByaXYtPnBhZ2VfZmxpcHBpbmcpCi0JCXJhZGVvbl9kb19pbml0X3BhZ2VmbGlwKGRldik7Ci0KLQlyYWRlb25fY3BfZGlzcGF0Y2hfZmxpcChkZXYpOwotCi0JQ09NTUlUX1JJTkcoKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3Bfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JaWYgKHNhcmVhX3ByaXYtPm5ib3ggPiBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTKQotCQlzYXJlYV9wcml2LT5uYm94ID0gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUzsKLQotCXJhZGVvbl9jcF9kaXNwYXRjaF9zd2FwKGRldik7Ci0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7Ci0KLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF92ZXJ0ZXgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JZHJtX3JhZGVvbl92ZXJ0ZXhfdCAqdmVydGV4ID0gZGF0YTsKLQlkcm1fcmFkZW9uX3RjbF9wcmltX3QgcHJpbTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlEUk1fREVCVUcoInBpZD0lZCBpbmRleD0lZCBjb3VudD0lZCBkaXNjYXJkPSVkXG4iLAotCQkgIERSTV9DVVJSRU5UUElELCB2ZXJ0ZXgtPmlkeCwgdmVydGV4LT5jb3VudCwgdmVydGV4LT5kaXNjYXJkKTsKLQotCWlmICh2ZXJ0ZXgtPmlkeCA8IDAgfHwgdmVydGV4LT5pZHggPj0gZG1hLT5idWZfY291bnQpIHsKLQkJRFJNX0VSUk9SKCJidWZmZXIgaW5kZXggJWQgKG9mICVkIG1heClcbiIsCi0JCQkgIHZlcnRleC0+aWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKHZlcnRleC0+cHJpbSA8IDAgfHwgdmVydGV4LT5wcmltID4gUkFERU9OX1BSSU1fVFlQRV8zVlJUX0xJTkVfTElTVCkgewotCQlEUk1fRVJST1IoImJ1ZmZlciBwcmltICVkXG4iLCB2ZXJ0ZXgtPnByaW0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWJ1ZiA9IGRtYS0+YnVmbGlzdFt2ZXJ0ZXgtPmlkeF07Ci0KLQlpZiAoYnVmLT5maWxlX3ByaXYgIT0gZmlsZV9wcml2KSB7Ci0JCURSTV9FUlJPUigicHJvY2VzcyAlZCB1c2luZyBidWZmZXIgb3duZWQgYnkgJXBcbiIsCi0JCQkgIERSTV9DVVJSRU5UUElELCBidWYtPmZpbGVfcHJpdik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAoYnVmLT5wZW5kaW5nKSB7Ci0JCURSTV9FUlJPUigic2VuZGluZyBwZW5kaW5nIGJ1ZmZlciAlZFxuIiwgdmVydGV4LT5pZHgpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBCdWlsZCB1cCBhIHByaW1fdCByZWNvcmQ6Ci0JICovCi0JaWYgKHZlcnRleC0+Y291bnQpIHsKLQkJYnVmLT51c2VkID0gdmVydGV4LT5jb3VudDsJLyogbm90IHVzZWQ/ICovCi0KLQkJaWYgKHNhcmVhX3ByaXYtPmRpcnR5ICYgflJBREVPTl9VUExPQURfQ0xJUFJFQ1RTKSB7Ci0JCQlpZiAocmFkZW9uX2VtaXRfc3RhdGUoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJICAgICAgJnNhcmVhX3ByaXYtPmNvbnRleHRfc3RhdGUsCi0JCQkJCSAgICAgIHNhcmVhX3ByaXYtPnRleF9zdGF0ZSwKLQkJCQkJICAgICAgc2FyZWFfcHJpdi0+ZGlydHkpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9zdGF0ZSBmYWlsZWRcbiIpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCi0JCQlzYXJlYV9wcml2LT5kaXJ0eSAmPSB+KFJBREVPTl9VUExPQURfVEVYMElNQUdFUyB8Ci0JCQkJCSAgICAgICBSQURFT05fVVBMT0FEX1RFWDFJTUFHRVMgfAotCQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTIHwKLQkJCQkJICAgICAgIFJBREVPTl9SRVFVSVJFX1FVSUVTQ0VOQ0UpOwotCQl9Ci0KLQkJcHJpbS5zdGFydCA9IDA7Ci0JCXByaW0uZmluaXNoID0gdmVydGV4LT5jb3VudDsJLyogdW51c2VkICovCi0JCXByaW0ucHJpbSA9IHZlcnRleC0+cHJpbTsKLQkJcHJpbS5udW12ZXJ0cyA9IHZlcnRleC0+Y291bnQ7Ci0JCXByaW0udmNfZm9ybWF0ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnZjX2Zvcm1hdDsKLQotCQlyYWRlb25fY3BfZGlzcGF0Y2hfdmVydGV4KGRldiwgYnVmLCAmcHJpbSk7Ci0JfQotCi0JaWYgKHZlcnRleC0+ZGlzY2FyZCkgewotCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCX0KLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX2luZGljZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JZHJtX3JhZGVvbl9pbmRpY2VzX3QgKmVsdHMgPSBkYXRhOwotCWRybV9yYWRlb25fdGNsX3ByaW1fdCBwcmltOwotCWludCBjb3VudDsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlEUk1fREVCVUcoInBpZD0lZCBpbmRleD0lZCBzdGFydD0lZCBlbmQ9JWQgZGlzY2FyZD0lZFxuIiwKLQkJICBEUk1fQ1VSUkVOVFBJRCwgZWx0cy0+aWR4LCBlbHRzLT5zdGFydCwgZWx0cy0+ZW5kLAotCQkgIGVsdHMtPmRpc2NhcmQpOwotCi0JaWYgKGVsdHMtPmlkeCA8IDAgfHwgZWx0cy0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJICBlbHRzLT5pZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAoZWx0cy0+cHJpbSA8IDAgfHwgZWx0cy0+cHJpbSA+IFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QpIHsKLQkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgZWx0cy0+cHJpbSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0JVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JYnVmID0gZG1hLT5idWZsaXN0W2VsdHMtPmlkeF07Ci0KLQlpZiAoYnVmLT5maWxlX3ByaXYgIT0gZmlsZV9wcml2KSB7Ci0JCURSTV9FUlJPUigicHJvY2VzcyAlZCB1c2luZyBidWZmZXIgb3duZWQgYnkgJXBcbiIsCi0JCQkgIERSTV9DVVJSRU5UUElELCBidWYtPmZpbGVfcHJpdik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAoYnVmLT5wZW5kaW5nKSB7Ci0JCURSTV9FUlJPUigic2VuZGluZyBwZW5kaW5nIGJ1ZmZlciAlZFxuIiwgZWx0cy0+aWR4KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JY291bnQgPSAoZWx0cy0+ZW5kIC0gZWx0cy0+c3RhcnQpIC8gc2l6ZW9mKHUxNik7Ci0JZWx0cy0+c3RhcnQgLT0gUkFERU9OX0lOREVYX1BSSU1fT0ZGU0VUOwotCi0JaWYgKGVsdHMtPnN0YXJ0ICYgMHg3KSB7Ci0JCURSTV9FUlJPUigibWlzYWxpZ25lZCBidWZmZXIgMHgleFxuIiwgZWx0cy0+c3RhcnQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKGVsdHMtPnN0YXJ0IDwgYnVmLT51c2VkKSB7Ci0JCURSTV9FUlJPUigibm8gaGVhZGVyIDB4JXggLSAweCV4XG4iLCBlbHRzLT5zdGFydCwgYnVmLT51c2VkKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JYnVmLT51c2VkID0gZWx0cy0+ZW5kOwotCi0JaWYgKHNhcmVhX3ByaXYtPmRpcnR5ICYgflJBREVPTl9VUExPQURfQ0xJUFJFQ1RTKSB7Ci0JCWlmIChyYWRlb25fZW1pdF9zdGF0ZShkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCSAgICAgICZzYXJlYV9wcml2LT5jb250ZXh0X3N0YXRlLAotCQkJCSAgICAgIHNhcmVhX3ByaXYtPnRleF9zdGF0ZSwKLQkJCQkgICAgICBzYXJlYV9wcml2LT5kaXJ0eSkpIHsKLQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUgZmFpbGVkXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJc2FyZWFfcHJpdi0+ZGlydHkgJj0gfihSQURFT05fVVBMT0FEX1RFWDBJTUFHRVMgfAotCQkJCSAgICAgICBSQURFT05fVVBMT0FEX1RFWDFJTUFHRVMgfAotCQkJCSAgICAgICBSQURFT05fVVBMT0FEX1RFWDJJTUFHRVMgfAotCQkJCSAgICAgICBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFKTsKLQl9Ci0KLQkvKiBCdWlsZCB1cCBhIHByaW1fdCByZWNvcmQ6Ci0JICovCi0JcHJpbS5zdGFydCA9IGVsdHMtPnN0YXJ0OwotCXByaW0uZmluaXNoID0gZWx0cy0+ZW5kOwotCXByaW0ucHJpbSA9IGVsdHMtPnByaW07Ci0JcHJpbS5vZmZzZXQgPSAwOwkvKiBvZmZzZXQgZnJvbSBzdGFydCBvZiBkbWEgYnVmZmVycyAqLwotCXByaW0ubnVtdmVydHMgPSBSQURFT05fTUFYX1ZCX1ZFUlRTOwkvKiBkdWggKi8KLQlwcmltLnZjX2Zvcm1hdCA9IGRldl9wcml2LT5zYXJlYV9wcml2LT52Y19mb3JtYXQ7Ci0KLQlyYWRlb25fY3BfZGlzcGF0Y2hfaW5kaWNlcyhkZXYsIGJ1ZiwgJnByaW0pOwotCWlmIChlbHRzLT5kaXNjYXJkKSB7Ci0JCXJhZGVvbl9jcF9kaXNjYXJkX2J1ZmZlcihkZXYsIGJ1Zik7Ci0JfQotCi0JQ09NTUlUX1JJTkcoKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfdGV4dHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fdGV4dHVyZV90ICp0ZXggPSBkYXRhOwotCWRybV9yYWRlb25fdGV4X2ltYWdlX3QgaW1hZ2U7Ci0JaW50IHJldDsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAodGV4LT5pbWFnZSA9PSBOVUxMKSB7Ci0JCURSTV9FUlJPUigibnVsbCB0ZXh0dXJlIGltYWdlIVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoJmltYWdlLAotCQkJICAgICAgIChkcm1fcmFkZW9uX3RleF9pbWFnZV90IF9fdXNlciAqKSB0ZXgtPmltYWdlLAotCQkJICAgICAgIHNpemVvZihpbWFnZSkpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0JVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JcmV0ID0gcmFkZW9uX2NwX2Rpc3BhdGNoX3RleHR1cmUoZGV2LCBmaWxlX3ByaXYsIHRleCwgJmltYWdlKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX3N0aXBwbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3N0aXBwbGVfdCAqc3RpcHBsZSA9IGRhdGE7Ci0JdTMyIG1hc2tbMzJdOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoJm1hc2ssIHN0aXBwbGUtPm1hc2ssIDMyICogc2l6ZW9mKHUzMikpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0KLQlyYWRlb25fY3BfZGlzcGF0Y2hfc3RpcHBsZShkZXYsIG1hc2spOwotCi0JQ09NTUlUX1JJTkcoKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfaW5kaXJlY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JZHJtX3JhZGVvbl9pbmRpcmVjdF90ICppbmRpcmVjdCA9IGRhdGE7Ci0JUklOR19MT0NBTFM7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JRFJNX0RFQlVHKCJpZHg9JWQgcz0lZCBlPSVkIGQ9JWRcbiIsCi0JCSAgaW5kaXJlY3QtPmlkeCwgaW5kaXJlY3QtPnN0YXJ0LCBpbmRpcmVjdC0+ZW5kLAotCQkgIGluZGlyZWN0LT5kaXNjYXJkKTsKLQotCWlmIChpbmRpcmVjdC0+aWR4IDwgMCB8fCBpbmRpcmVjdC0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJICBpbmRpcmVjdC0+aWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlidWYgPSBkbWEtPmJ1Zmxpc3RbaW5kaXJlY3QtPmlkeF07Ci0KLQlpZiAoYnVmLT5maWxlX3ByaXYgIT0gZmlsZV9wcml2KSB7Ci0JCURSTV9FUlJPUigicHJvY2VzcyAlZCB1c2luZyBidWZmZXIgb3duZWQgYnkgJXBcbiIsCi0JCQkgIERSTV9DVVJSRU5UUElELCBidWYtPmZpbGVfcHJpdik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAoYnVmLT5wZW5kaW5nKSB7Ci0JCURSTV9FUlJPUigic2VuZGluZyBwZW5kaW5nIGJ1ZmZlciAlZFxuIiwgaW5kaXJlY3QtPmlkeCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChpbmRpcmVjdC0+c3RhcnQgPCBidWYtPnVzZWQpIHsKLQkJRFJNX0VSUk9SKCJyZXVzaW5nIGluZGlyZWN0OiBzdGFydD0weCV4IGFjdHVhbD0weCV4XG4iLAotCQkJICBpbmRpcmVjdC0+c3RhcnQsIGJ1Zi0+dXNlZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0JVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JYnVmLT51c2VkID0gaW5kaXJlY3QtPmVuZDsKLQotCS8qIFdhaXQgZm9yIHRoZSAzRCBzdHJlYW0gdG8gaWRsZSBiZWZvcmUgdGhlIGluZGlyZWN0IGJ1ZmZlcgotCSAqIGNvbnRhaW5pbmcgMkQgYWNjZWxlcmF0aW9uIGNvbW1hbmRzIGlzIHByb2Nlc3NlZC4KLQkgKi8KLQlCRUdJTl9SSU5HKDIpOwotCi0JUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci0KLQkvKiBEaXNwYXRjaCB0aGUgaW5kaXJlY3QgYnVmZmVyIGZ1bGwgb2YgY29tbWFuZHMgZnJvbSB0aGUKLQkgKiBYIHNlcnZlci4gIFRoaXMgaXMgaW5zZWN1cmUgYW5kIGlzIHRodXMgb25seSBhdmFpbGFibGUgdG8KLQkgKiBwcml2aWxlZ2VkIGNsaWVudHMuCi0JICovCi0JcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGlyZWN0KGRldiwgYnVmLCBpbmRpcmVjdC0+c3RhcnQsIGluZGlyZWN0LT5lbmQpOwotCWlmIChpbmRpcmVjdC0+ZGlzY2FyZCkgewotCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCX0KLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX3ZlcnRleDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JZHJtX3JhZGVvbl92ZXJ0ZXgyX3QgKnZlcnRleCA9IGRhdGE7Ci0JaW50IGk7Ci0JdW5zaWduZWQgY2hhciBsYXN0c3RhdGU7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgZGlzY2FyZD0lZFxuIiwKLQkJICBEUk1fQ1VSUkVOVFBJRCwgdmVydGV4LT5pZHgsIHZlcnRleC0+ZGlzY2FyZCk7Ci0KLQlpZiAodmVydGV4LT5pZHggPCAwIHx8IHZlcnRleC0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJICB2ZXJ0ZXgtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQlWQl9BR0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0KLQlidWYgPSBkbWEtPmJ1Zmxpc3RbdmVydGV4LT5pZHhdOwotCi0JaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgewotCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAotCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoYnVmLT5wZW5kaW5nKSB7Ci0JCURSTV9FUlJPUigic2VuZGluZyBwZW5kaW5nIGJ1ZmZlciAlZFxuIiwgdmVydGV4LT5pZHgpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoc2FyZWFfcHJpdi0+bmJveCA+IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZm9yIChsYXN0c3RhdGUgPSAweGZmLCBpID0gMDsgaSA8IHZlcnRleC0+bnJfcHJpbXM7IGkrKykgewotCQlkcm1fcmFkZW9uX3ByaW1fdCBwcmltOwotCQlkcm1fcmFkZW9uX3RjbF9wcmltX3QgdGNscHJpbTsKLQotCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZwcmltLCAmdmVydGV4LT5wcmltW2ldLCBzaXplb2YocHJpbSkpKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkJaWYgKHByaW0uc3RhdGVpZHggIT0gbGFzdHN0YXRlKSB7Ci0JCQlkcm1fcmFkZW9uX3N0YXRlX3Qgc3RhdGU7Ci0KLQkJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoJnN0YXRlLAotCQkJCQkgICAgICAgJnZlcnRleC0+c3RhdGVbcHJpbS5zdGF0ZWlkeF0sCi0JCQkJCSAgICAgICBzaXplb2Yoc3RhdGUpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQotCQkJaWYgKHJhZGVvbl9lbWl0X3N0YXRlMihkZXZfcHJpdiwgZmlsZV9wcml2LCAmc3RhdGUpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9zdGF0ZTIgZmFpbGVkXG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQotCQkJbGFzdHN0YXRlID0gcHJpbS5zdGF0ZWlkeDsKLQkJfQotCi0JCXRjbHByaW0uc3RhcnQgPSBwcmltLnN0YXJ0OwotCQl0Y2xwcmltLmZpbmlzaCA9IHByaW0uZmluaXNoOwotCQl0Y2xwcmltLnByaW0gPSBwcmltLnByaW07Ci0JCXRjbHByaW0udmNfZm9ybWF0ID0gcHJpbS52Y19mb3JtYXQ7Ci0KLQkJaWYgKHByaW0ucHJpbSAmIFJBREVPTl9QUklNX1dBTEtfSU5EKSB7Ci0JCQl0Y2xwcmltLm9mZnNldCA9IHByaW0ubnVtdmVydHMgKiA2NDsKLQkJCXRjbHByaW0ubnVtdmVydHMgPSBSQURFT05fTUFYX1ZCX1ZFUlRTOwkvKiBkdWggKi8KLQotCQkJcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGljZXMoZGV2LCBidWYsICZ0Y2xwcmltKTsKLQkJfSBlbHNlIHsKLQkJCXRjbHByaW0ubnVtdmVydHMgPSBwcmltLm51bXZlcnRzOwotCQkJdGNscHJpbS5vZmZzZXQgPSAwOwkvKiBub3QgdXNlZCAqLwotCi0JCQlyYWRlb25fY3BfZGlzcGF0Y2hfdmVydGV4KGRldiwgYnVmLCAmdGNscHJpbSk7Ci0JCX0KLQotCQlpZiAoc2FyZWFfcHJpdi0+bmJveCA9PSAxKQotCQkJc2FyZWFfcHJpdi0+bmJveCA9IDA7Ci0JfQotCi0JaWYgKHZlcnRleC0+ZGlzY2FyZCkgewotCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCX0KLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2VtaXRfcGFja2V0cyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJICAgICAgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKLQkJCSAgICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQlpbnQgaWQgPSAoaW50KWhlYWRlci5wYWNrZXQucGFja2V0X2lkOwotCWludCBzeiwgcmVnOwotCWludCAqZGF0YSA9IChpbnQgKiljbWRidWYtPmJ1ZjsKLQlSSU5HX0xPQ0FMUzsKLQotCWlmIChpZCA+PSBSQURFT05fTUFYX1NUQVRFX1BBQ0tFVFMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0Jc3ogPSBwYWNrZXRbaWRdLmxlbjsKLQlyZWcgPSBwYWNrZXRbaWRdLnN0YXJ0OwotCi0JaWYgKHN6ICogc2l6ZW9mKGludCkgPiBjbWRidWYtPmJ1ZnN6KSB7Ci0JCURSTV9FUlJPUigiUGFja2V0IHNpemUgcHJvdmlkZWQgbGFyZ2VyIHRoYW4gZGF0YSBwcm92aWRlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldHMoZGV2X3ByaXYsIGZpbGVfcHJpdiwgaWQsIGRhdGEpKSB7Ci0JCURSTV9FUlJPUigiUGFja2V0IHZlcmlmaWNhdGlvbiBmYWlsZWRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlCRUdJTl9SSU5HKHN6ICsgMSk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChyZWcsIChzeiAtIDEpKSk7Ci0JT1VUX1JJTkdfVEFCTEUoZGF0YSwgc3opOwotCUFEVkFOQ0VfUklORygpOwotCi0JY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF9zY2FsYXJzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCi0JCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JaW50IHN6ID0gaGVhZGVyLnNjYWxhcnMuY291bnQ7Ci0JaW50IHN0YXJ0ID0gaGVhZGVyLnNjYWxhcnMub2Zmc2V0OwotCWludCBzdHJpZGUgPSBoZWFkZXIuc2NhbGFycy5zdHJpZGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlCRUdJTl9SSU5HKDMgKyBzeik7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVENMX1NDQUxBUl9JTkRYX1JFRywgMCkpOwotCU9VVF9SSU5HKHN0YXJ0IHwgKHN0cmlkZSA8PCBSQURFT05fU0NBTF9JTkRYX0RXT1JEX1NUUklERV9TSElGVCkpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1NFX1RDTF9TQ0FMQVJfREFUQV9SRUcsIHN6IC0gMSkpOwotCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0JY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIEdvZCB0aGlzIGlzIHVnbHkKLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9lbWl0X3NjYWxhcnMyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJICAgZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3QgaGVhZGVyLAotCQkJCQkgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQlpbnQgc3ogPSBoZWFkZXIuc2NhbGFycy5jb3VudDsKLQlpbnQgc3RhcnQgPSAoKHVuc2lnbmVkIGludCloZWFkZXIuc2NhbGFycy5vZmZzZXQpICsgMHgxMDA7Ci0JaW50IHN0cmlkZSA9IGhlYWRlci5zY2FsYXJzLnN0cmlkZTsKLQlSSU5HX0xPQ0FMUzsKLQotCUJFR0lOX1JJTkcoMyArIHN6KTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9UQ0xfU0NBTEFSX0lORFhfUkVHLCAwKSk7Ci0JT1VUX1JJTkcoc3RhcnQgfCAoc3RyaWRlIDw8IFJBREVPTl9TQ0FMX0lORFhfRFdPUkRfU1RSSURFX1NISUZUKSk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSQURFT05fU0VfVENMX1NDQUxBUl9EQVRBX1JFRywgc3ogLSAxKSk7Ci0JT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQljbWRidWYtPmJ1ZiArPSBzeiAqIHNpemVvZihpbnQpOwotCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzaXplb2YoaW50KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9lbWl0X3ZlY3RvcnMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKLQkJCQkJICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQlpbnQgc3ogPSBoZWFkZXIudmVjdG9ycy5jb3VudDsKLQlpbnQgc3RhcnQgPSBoZWFkZXIudmVjdG9ycy5vZmZzZXQ7Ci0JaW50IHN0cmlkZSA9IGhlYWRlci52ZWN0b3JzLnN0cmlkZTsKLQlSSU5HX0xPQ0FMUzsKLQotCUJFR0lOX1JJTkcoNSArIHN6KTsKLQlPVVRfUklOR19SRUcoUkFERU9OX1NFX1RDTF9TVEFURV9GTFVTSCwgMCk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVENMX1ZFQ1RPUl9JTkRYX1JFRywgMCkpOwotCU9VVF9SSU5HKHN0YXJ0IHwgKHN0cmlkZSA8PCBSQURFT05fVkVDX0lORFhfT0NUV09SRF9TVFJJREVfU0hJRlQpKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0RBVEFfUkVHLCAoc3ogLSAxKSkpOwotCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBzeiAqIHNpemVvZihpbnQpOwotCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzaXplb2YoaW50KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9lbWl0X3ZlY2xpbmVhcihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3QgaGVhZGVyLAotCQkJCQkgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCWludCBzeiA9IGhlYWRlci52ZWNsaW5lYXIuY291bnQgKiA0OwotCWludCBzdGFydCA9IGhlYWRlci52ZWNsaW5lYXIuYWRkcl9sbyB8IChoZWFkZXIudmVjbGluZWFyLmFkZHJfaGkgPDwgOCk7Ci0JUklOR19MT0NBTFM7Ci0KLSAgICAgICAgaWYgKCFzeikKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgaWYgKHN6ICogNCA+IGNtZGJ1Zi0+YnVmc3opCi0gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLQlCRUdJTl9SSU5HKDUgKyBzeik7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9WRUNUT1JfSU5EWF9SRUcsIDApKTsKLQlPVVRfUklORyhzdGFydCB8ICgxIDw8IFJBREVPTl9WRUNfSU5EWF9PQ1RXT1JEX1NUUklERV9TSElGVCkpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1NFX1RDTF9WRUNUT1JfREFUQV9SRUcsIChzeiAtIDEpKSk7Ci0JT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9lbWl0X3BhY2tldDMoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBpbnQgY21kc3o7Ci0JaW50IHJldDsKLQlSSU5HX0xPQ0FMUzsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCWlmICgocmV0ID0gcmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXQzKGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgIGNtZGJ1ZiwgJmNtZHN6KSkpIHsKLQkJRFJNX0VSUk9SKCJQYWNrZXQgdmVyaWZpY2F0aW9uIGZhaWxlZFxuIik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JQkVHSU5fUklORyhjbWRzeik7Ci0JT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIGNtZHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IGNtZHN6ICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IGNtZHN6ICogNDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZW1pdF9wYWNrZXQzX2NsaXByZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJCQlkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKLQkJCQkJaW50IG9yaWdfbmJveCkKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IGJveDsKLQl1bnNpZ25lZCBpbnQgY21kc3o7Ci0JaW50IHJldDsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzID0gY21kYnVmLT5ib3hlczsKLQlpbnQgaSA9IDA7Ci0JUklOR19MT0NBTFM7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlpZiAoKHJldCA9IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0MyhkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJICBjbWRidWYsICZjbWRzeikpKSB7Ci0JCURSTV9FUlJPUigiUGFja2V0IHZlcmlmaWNhdGlvbiBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWlmICghb3JpZ19uYm94KQotCQlnb3RvIG91dDsKLQotCWRvIHsKLQkJaWYgKGkgPCBjbWRidWYtPm5ib3gpIHsKLQkJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoJmJveCwgJmJveGVzW2ldLCBzaXplb2YoYm94KSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQkvKiBGSVhNRSBUaGUgc2Vjb25kIGFuZCBzdWJzZXF1ZW50IHRpbWVzIHJvdW5kCi0JCQkgKiB0aGlzIGxvb3AsIHNlbmQgYSBXQUlUX1VOVElMXzNEX0lETEUgYmVmb3JlCi0JCQkgKiBjYWxsaW5nIGVtaXRfY2xpcF9yZWN0KCkuIFRoaXMgZml4ZXMgYQotCQkJICogbG9ja3VwIG9uIGZhc3QgbWFjaGluZXMgd2hlbiBzZW5kaW5nCi0JCQkgKiBzZXZlcmFsIGNsaXByZWN0cyB3aXRoIGEgY21kYnVmLCBhcyB3aGVuCi0JCQkgKiB3YXZpbmcgYSAyRCB3aW5kb3cgb3ZlciBhIDNECi0JCQkgKiB3aW5kb3cuIFNvbWV0aGluZyBpbiB0aGUgY29tbWFuZHMgZnJvbSB1c2VyCi0JCQkgKiBzcGFjZSBzZWVtcyB0byBoYW5nIHRoZSBjYXJkIHdoZW4gdGhleSdyZQotCQkJICogc2VudCBzZXZlcmFsIHRpbWVzIGluIGEgcm93LiBUaGF0IHdvdWxkIGJlCi0JCQkgKiB0aGUgY29ycmVjdCBwbGFjZSB0byBmaXggaXQgYnV0IHRoaXMgd29ya3MKLQkJCSAqIGFyb3VuZCBpdCB1bnRpbCBJIGNhbiBmaWd1cmUgdGhhdCBvdXQgLSBUaW0KLQkJCSAqIFNtaXRoICovCi0JCQlpZiAoaSkgewotCQkJCUJFR0lOX1JJTkcoMik7Ci0JCQkJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCQkJCUFEVkFOQ0VfUklORygpOwotCQkJfQotCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmYm94KTsKLQkJfQotCi0JCUJFR0lOX1JJTkcoY21kc3opOwotCQlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1ZiwgY21kc3opOwotCQlBRFZBTkNFX1JJTkcoKTsKLQotCX0gd2hpbGUgKCsraSA8IGNtZGJ1Zi0+bmJveCk7Ci0JaWYgKGNtZGJ1Zi0+bmJveCA9PSAxKQotCQljbWRidWYtPm5ib3ggPSAwOwotCi0gICAgICBvdXQ6Ci0JY21kYnVmLT5idWYgKz0gY21kc3ogKiA0OwotCWNtZGJ1Zi0+YnVmc3ogLT0gY21kc3ogKiA0OwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9lbWl0X3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBmbGFncykKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCVJJTkdfTE9DQUxTOwotCi0JRFJNX0RFQlVHKCIleFxuIiwgZmxhZ3MpOwotCXN3aXRjaCAoZmxhZ3MpIHsKLQljYXNlIFJBREVPTl9XQUlUXzJEOgotCQlCRUdJTl9SSU5HKDIpOwotCQlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9XQUlUXzNEOgotCQlCRUdJTl9SSU5HKDIpOwotCQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9XQUlUXzJEIHwgUkFERU9OX1dBSVRfM0Q6Ci0JCUJFR0lOX1JJTkcoMik7Ci0JCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9jbWRidWYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCXN0cnVjdCBkcm1fYnVmICpidWYgPSBOVUxMOwotCWludCBpZHg7Ci0JZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYgPSBkYXRhOwotCWRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlcjsKLQlpbnQgb3JpZ19uYm94LCBvcmlnX2J1ZnN6OwotCWNoYXIgKmtidWYgPSBOVUxMOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0JVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JaWYgKGNtZGJ1Zi0+YnVmc3ogPiA2NCAqIDEwMjQgfHwgY21kYnVmLT5idWZzeiA8IDApIHsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogQWxsb2NhdGUgYW4gaW4ta2VybmVsIGFyZWEgYW5kIGNvcHkgaW4gdGhlIGNtZGJ1Zi4gIERvIHRoaXMgdG8gYXZvaWQKLQkgKiByYWNlcyBiZXR3ZWVuIGNoZWNraW5nIHZhbHVlcyBhbmQgdXNpbmcgdGhvc2UgdmFsdWVzIGluIG90aGVyIGNvZGUsCi0JICogYW5kIHNpbXBseSB0byBhdm9pZCBhIGxvdCBvZiBmdW5jdGlvbiBjYWxscyB0byBjb3B5IGluIGRhdGEuCi0JICovCi0Jb3JpZ19idWZzeiA9IGNtZGJ1Zi0+YnVmc3o7Ci0JaWYgKG9yaWdfYnVmc3ogIT0gMCkgewotCQlrYnVmID0gZHJtX2FsbG9jKGNtZGJ1Zi0+YnVmc3osIERSTV9NRU1fRFJJVkVSKTsKLQkJaWYgKGtidWYgPT0gTlVMTCkKLQkJCXJldHVybiAtRU5PTUVNOwotCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKGtidWYsICh2b2lkIF9fdXNlciAqKWNtZGJ1Zi0+YnVmLAotCQkJCSAgICAgICBjbWRidWYtPmJ1ZnN6KSkgewotCQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOwotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCX0KLQkJY21kYnVmLT5idWYgPSBrYnVmOwotCX0KLQotCW9yaWdfbmJveCA9IGNtZGJ1Zi0+bmJveDsKLQotCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjMwMCkgewotCQlpbnQgdGVtcDsKLQkJdGVtcCA9IHIzMDBfZG9fY3BfY21kYnVmKGRldiwgZmlsZV9wcml2LCBjbWRidWYpOwotCi0JCWlmIChvcmlnX2J1ZnN6ICE9IDApCi0JCQlkcm1fZnJlZShrYnVmLCBvcmlnX2J1ZnN6LCBEUk1fTUVNX0RSSVZFUik7Ci0KLQkJcmV0dXJuIHRlbXA7Ci0JfQotCi0JLyogbWljcm9jb2RlX3ZlcnNpb24gIT0gcjMwMCAqLwotCXdoaWxlIChjbWRidWYtPmJ1ZnN6ID49IHNpemVvZihoZWFkZXIpKSB7Ci0KLQkJaGVhZGVyLmkgPSAqKGludCAqKWNtZGJ1Zi0+YnVmOwotCQljbWRidWYtPmJ1ZiArPSBzaXplb2YoaGVhZGVyKTsKLQkJY21kYnVmLT5idWZzeiAtPSBzaXplb2YoaGVhZGVyKTsKLQotCQlzd2l0Y2ggKGhlYWRlci5oZWFkZXIuY21kX3R5cGUpIHsKLQkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9QQUNLRVRcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3BhY2tldHMKLQkJCSAgICAoZGV2X3ByaXYsIGZpbGVfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9wYWNrZXRzIGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfU0NBTEFSUzoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9TQ0FMQVJTXG4iKTsKLQkJCWlmIChyYWRlb25fZW1pdF9zY2FsYXJzKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKLQkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3NjYWxhcnMgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgUkFERU9OX0NNRF9WRUNUT1JTOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX1ZFQ1RPUlNcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3ZlY3RvcnMoZGV2X3ByaXYsIGhlYWRlciwgY21kYnVmKSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfdmVjdG9ycyBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSQURFT05fQ01EX0RNQV9ESVNDQVJEOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX0RNQV9ESVNDQVJEXG4iKTsKLQkJCWlkeCA9IGhlYWRlci5kbWEuYnVmX2lkeDsKLQkJCWlmIChpZHggPCAwIHx8IGlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgewotCQkJCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJCQkgIGlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQotCQkJYnVmID0gZG1hLT5idWZsaXN0W2lkeF07Ci0JCQlpZiAoYnVmLT5maWxlX3ByaXYgIT0gZmlsZV9wcml2IHx8IGJ1Zi0+cGVuZGluZykgewotCQkJCURSTV9FUlJPUigiYmFkIGJ1ZmZlciAlcCAlcCAlZFxuIiwKLQkJCQkJICBidWYtPmZpbGVfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkgIGJ1Zi0+cGVuZGluZyk7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0KLQkJCXJhZGVvbl9jcF9kaXNjYXJkX2J1ZmZlcihkZXYsIGJ1Zik7Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfUEFDS0VUMzoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9QQUNLRVQzXG4iKTsKLQkJCWlmIChyYWRlb25fZW1pdF9wYWNrZXQzKGRldiwgZmlsZV9wcml2LCBjbWRidWYpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9wYWNrZXQzIGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfUEFDS0VUM19DTElQOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX1BBQ0tFVDNfQ0xJUFxuIik7Ci0JCQlpZiAocmFkZW9uX2VtaXRfcGFja2V0M19jbGlwcmVjdAotCQkJICAgIChkZXYsIGZpbGVfcHJpdiwgY21kYnVmLCBvcmlnX25ib3gpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9wYWNrZXQzX2NsaXAgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgUkFERU9OX0NNRF9TQ0FMQVJTMjoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9TQ0FMQVJTMlxuIik7Ci0JCQlpZiAocmFkZW9uX2VtaXRfc2NhbGFyczIoZGV2X3ByaXYsIGhlYWRlciwgY21kYnVmKSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc2NhbGFyczIgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgUkFERU9OX0NNRF9XQUlUOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX1dBSVRcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3dhaXQoZGV2LCBoZWFkZXIud2FpdC5mbGFncykpIHsKLQkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3dhaXQgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNlIFJBREVPTl9DTURfVkVDTElORUFSOgotCQkJRFJNX0RFQlVHKCJSQURFT05fQ01EX1ZFQ0xJTkVBUlxuIik7Ci0JCQlpZiAocmFkZW9uX2VtaXRfdmVjbGluZWFyKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKLQkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3ZlY2xpbmVhciBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCURSTV9FUlJPUigiYmFkIGNtZF90eXBlICVkIGF0ICVwXG4iLAotCQkJCSAgaGVhZGVyLmhlYWRlci5jbWRfdHlwZSwKLQkJCQkgIGNtZGJ1Zi0+YnVmIC0gc2l6ZW9mKGhlYWRlcikpOwotCQkJZ290byBlcnI7Ci0JCX0KLQl9Ci0KLQlpZiAob3JpZ19idWZzeiAhPSAwKQotCQlkcm1fZnJlZShrYnVmLCBvcmlnX2J1ZnN6LCBEUk1fTUVNX0RSSVZFUik7Ci0KLQlEUk1fREVCVUcoIkRPTkVcbiIpOwotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci0KLSAgICAgIGVycjoKLQlpZiAob3JpZ19idWZzeiAhPSAwKQotCQlkcm1fZnJlZShrYnVmLCBvcmlnX2J1ZnN6LCBEUk1fTUVNX0RSSVZFUik7Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX2dldHBhcmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9nZXRwYXJhbV90ICpwYXJhbSA9IGRhdGE7Ci0JaW50IHZhbHVlOwotCi0JRFJNX0RFQlVHKCJwaWQ9JWRcbiIsIERSTV9DVVJSRU5UUElEKTsKLQotCXN3aXRjaCAocGFyYW0tPnBhcmFtKSB7Ci0JY2FzZSBSQURFT05fUEFSQU1fR0FSVF9CVUZGRVJfT0ZGU0VUOgotCQl2YWx1ZSA9IGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0OwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9MQVNUX0ZSQU1FOgotCQlkZXZfcHJpdi0+c3RhdHMubGFzdF9mcmFtZV9yZWFkcysrOwotCQl2YWx1ZSA9IEdFVF9TQ1JBVENIKDApOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9MQVNUX0RJU1BBVENIOgotCQl2YWx1ZSA9IEdFVF9TQ1JBVENIKDEpOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9MQVNUX0NMRUFSOgotCQlkZXZfcHJpdi0+c3RhdHMubGFzdF9jbGVhcl9yZWFkcysrOwotCQl2YWx1ZSA9IEdFVF9TQ1JBVENIKDIpOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9JUlFfTlI6Ci0JCXZhbHVlID0gZGV2LT5pcnE7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX0dBUlRfQkFTRToKLQkJdmFsdWUgPSBkZXZfcHJpdi0+Z2FydF92bV9zdGFydDsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fUkVHSVNURVJfSEFORExFOgotCQl2YWx1ZSA9IGRldl9wcml2LT5tbWlvLT5vZmZzZXQ7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX1NUQVRVU19IQU5ETEU6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPnJpbmdfcnB0cl9vZmZzZXQ7Ci0JCWJyZWFrOwotI2lmIEJJVFNfUEVSX0xPTkcgPT0gMzIKLQkJLyoKLQkJICogVGhpcyBpb2N0bCgpIGRvZXNuJ3Qgd29yayBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaHdfbG9jayBpcyBhCi0JCSAqIHBvaW50ZXIgd2hpY2ggY2FuJ3QgZml0IGludG8gYW4gaW50LXNpemVkIHZhcmlhYmxlLiAgQWNjb3JkaW5nIHRvCi0JCSAqIE1pY2hlbCBEw6RuemVyLCB0aGUgaW9jdGwoKSBpcyBvbmx5IHVzZWQgb24gZW1iZWRkZWQgcGxhdGZvcm1zLCBzbwotCQkgKiBub3Qgc3VwcG9ydGluZyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLiAgSWYgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eQotCQkgKiBpcyBuZWVkZWQgb24gNjQtYml0IHBsYXRmb3JtcywgYSBuZXcgaW9jdGwoKSB3b3VsZCBoYXZlIHRvIGJlIGFkZGVkLAotCQkgKiBzbyBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBmb3IgdGhlIGVtYmVkZGVkIHBsYXRmb3JtcyBjYW4gYmUKLQkJICogbWFpbnRhaW5lZC4gIC0tZGF2aWRtIDQtRmViLTIwMDQuCi0JCSAqLwotCWNhc2UgUkFERU9OX1BBUkFNX1NBUkVBX0hBTkRMRToKLQkJLyogVGhlIGxvY2sgaXMgdGhlIGZpcnN0IGR3b3JkIGluIHRoZSBzYXJlYS4gKi8KLQkJdmFsdWUgPSAobG9uZylkZXYtPmxvY2suaHdfbG9jazsKLQkJYnJlYWs7Ci0jZW5kaWYKLQljYXNlIFJBREVPTl9QQVJBTV9HQVJUX1RFWF9IQU5ETEU6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0OwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9TQ1JBVENIX09GRlNFVDoKLQkJaWYgKCFkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCXZhbHVlID0gUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVDsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fQ0FSRF9UWVBFOgotCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpCi0JCQl2YWx1ZSA9IFJBREVPTl9DQVJEX1BDSUU7Ci0JCWVsc2UgaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApCi0JCQl2YWx1ZSA9IFJBREVPTl9DQVJEX0FHUDsKLQkJZWxzZQotCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9QQ0k7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX1ZCTEFOS19DUlRDOgotCQl2YWx1ZSA9IHJhZGVvbl92YmxhbmtfY3J0Y19nZXQoZGV2KTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fRkJfTE9DQVRJT046Ci0JCXZhbHVlID0gcmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fREVCVUcoIkludmFsaWQgcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoRFJNX0NPUFlfVE9fVVNFUihwYXJhbS0+dmFsdWUsICZ2YWx1ZSwgc2l6ZW9mKGludCkpKSB7Ci0JCURSTV9FUlJPUigiY29weV90b191c2VyXG4iKTsKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX3NldHBhcmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zZXRwYXJhbV90ICpzcCA9IGRhdGE7Ci0Jc3RydWN0IGRybV9yYWRlb25fZHJpdmVyX2ZpbGVfZmllbGRzICpyYWRlb25fcHJpdjsKLQotCXN3aXRjaCAoc3AtPnBhcmFtKSB7Ci0JY2FzZSBSQURFT05fU0VUUEFSQU1fRkJfTE9DQVRJT046Ci0JCXJhZGVvbl9wcml2ID0gZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKLQkJcmFkZW9uX3ByaXYtPnJhZGVvbl9mYl9kZWx0YSA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiAtCi0JCSAgICBzcC0+dmFsdWU7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1NFVFBBUkFNX1NXSVRDSF9USUxJTkc6Ci0JCWlmIChzcC0+dmFsdWUgPT0gMCkgewotCQkJRFJNX0RFQlVHKCJjb2xvciB0aWxpbmcgZGlzYWJsZWRcbiIpOwotCQkJZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCAmPSB+UkFERU9OX0RTVF9USUxFX01BQ1JPOwotCQkJZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0ICY9IH5SQURFT05fRFNUX1RJTEVfTUFDUk87Ci0JCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+dGlsaW5nX2VuYWJsZWQgPSAwOwotCQl9IGVsc2UgaWYgKHNwLT52YWx1ZSA9PSAxKSB7Ci0JCQlEUk1fREVCVUcoImNvbG9yIHRpbGluZyBlbmFibGVkXG4iKTsKLQkJCWRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQgfD0gUkFERU9OX0RTVF9USUxFX01BQ1JPOwotCQkJZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0IHw9IFJBREVPTl9EU1RfVElMRV9NQUNSTzsKLQkJCWRldl9wcml2LT5zYXJlYV9wcml2LT50aWxpbmdfZW5hYmxlZCA9IDE7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9MT0NBVElPTjoKLQkJZGV2X3ByaXYtPnBjaWdhcnRfb2Zmc2V0ID0gc3AtPnZhbHVlOwotCQlkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXRfc2V0ID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fU0VUUEFSQU1fTkVXX01FTU1BUDoKLQkJZGV2X3ByaXYtPm5ld19tZW1tYXAgPSBzcC0+dmFsdWU7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1NFVFBBUkFNX1BDSUdBUlRfVEFCTEVfU0laRToKLQkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplID0gc3AtPnZhbHVlOwotCQlpZiAoZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplIDwgUkFERU9OX1BDSUdBUlRfVEFCTEVfU0laRSkKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8udGFibGVfc2l6ZSA9IFJBREVPTl9QQ0lHQVJUX1RBQkxFX1NJWkU7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1NFVFBBUkFNX1ZCTEFOS19DUlRDOgotCQlyZXR1cm4gcmFkZW9uX3ZibGFua19jcnRjX3NldChkZXYsIHNwLT52YWx1ZSk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiSW52YWxpZCBwYXJhbWV0ZXIgJWRcbiIsIHNwLT5wYXJhbSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiAwOwotfQotCi0vKiBXaGVuIGEgY2xpZW50IGRpZXM6Ci0gKiAgICAtIENoZWNrIGZvciBhbmQgY2xlYW4gdXAgZmxpcHBlZCBwYWdlIHN0YXRlCi0gKiAgICAtIEZyZWUgYW55IGFsbG9jZWQgR0FSVCBtZW1vcnkuCi0gKiAgICAtIEZyZWUgYW55IGFsbG9jZWQgcmFkZW9uIHN1cmZhY2VzLgotICoKLSAqIERSTSBpbmZyYXN0cnVjdHVyZSB0YWtlcyBjYXJlIG9mIHJlY2xhaW1pbmcgZG1hIGJ1ZmZlcnMuCi0gKi8KLXZvaWQgcmFkZW9uX2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlpZiAoZGV2LT5kZXZfcHJpdmF0ZSkgewotCQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCQlkZXZfcHJpdi0+cGFnZV9mbGlwcGluZyA9IDA7Ci0JCXJhZGVvbl9tZW1fcmVsZWFzZShmaWxlX3ByaXYsIGRldl9wcml2LT5nYXJ0X2hlYXApOwotCQlyYWRlb25fbWVtX3JlbGVhc2UoZmlsZV9wcml2LCBkZXZfcHJpdi0+ZmJfaGVhcCk7Ci0JCXJhZGVvbl9zdXJmYWNlc19yZWxlYXNlKGZpbGVfcHJpdiwgZGV2X3ByaXYpOwotCX0KLX0KLQotdm9pZCByYWRlb25fZHJpdmVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWlmIChkZXYtPmRldl9wcml2YXRlKSB7Ci0JCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQkJaWYgKGRldl9wcml2LT5zYXJlYV9wcml2ICYmCi0JCSAgICBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSAhPSAwKQotCQkJcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoZGV2KTsKLQl9Ci0KLQlyYWRlb25fZG9fcmVsZWFzZShkZXYpOwotfQotCi1pbnQgcmFkZW9uX2RyaXZlcl9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9yYWRlb25fZHJpdmVyX2ZpbGVfZmllbGRzICpyYWRlb25fcHJpdjsKLQotCURSTV9ERUJVRygiXG4iKTsKLQlyYWRlb25fcHJpdiA9Ci0JICAgIChzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKikKLQkgICAgZHJtX2FsbG9jKHNpemVvZigqcmFkZW9uX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKLQotCWlmICghcmFkZW9uX3ByaXYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZmlsZV9wcml2LT5kcml2ZXJfcHJpdiA9IHJhZGVvbl9wcml2OwotCi0JaWYgKGRldl9wcml2KQotCQlyYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uOwotCWVsc2UKLQkJcmFkZW9uX3ByaXYtPnJhZGVvbl9mYl9kZWx0YSA9IDA7Ci0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0Jc3RydWN0IGRybV9yYWRlb25fZHJpdmVyX2ZpbGVfZmllbGRzICpyYWRlb25fcHJpdiA9Ci0JICAgIGZpbGVfcHJpdi0+ZHJpdmVyX3ByaXY7Ci0KLQlkcm1fZnJlZShyYWRlb25fcHJpdiwgc2l6ZW9mKCpyYWRlb25fcHJpdiksIERSTV9NRU1fRklMRVMpOwotfQotCi1zdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgcmFkZW9uX2lvY3Rsc1tdID0gewotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9JTklULCByYWRlb25fY3BfaW5pdCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfU1RBUlQsIHJhZGVvbl9jcF9zdGFydCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfU1RPUCwgcmFkZW9uX2NwX3N0b3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX1JFU0VULCByYWRlb25fY3BfcmVzZXQsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX0lETEUsIHJhZGVvbl9jcF9pZGxlLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX1JFU1VNRSwgcmFkZW9uX2NwX3Jlc3VtZSwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9SRVNFVCwgcmFkZW9uX2VuZ2luZV9yZXNldCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9GVUxMU0NSRUVOLCByYWRlb25fZnVsbHNjcmVlbiwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TV0FQLCByYWRlb25fY3Bfc3dhcCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DTEVBUiwgcmFkZW9uX2NwX2NsZWFyLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1ZFUlRFWCwgcmFkZW9uX2NwX3ZlcnRleCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JTkRJQ0VTLCByYWRlb25fY3BfaW5kaWNlcywgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9URVhUVVJFLCByYWRlb25fY3BfdGV4dHVyZSwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TVElQUExFLCByYWRlb25fY3Bfc3RpcHBsZSwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JTkRJUkVDVCwgcmFkZW9uX2NwX2luZGlyZWN0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9WRVJURVgyLCByYWRlb25fY3BfdmVydGV4MiwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DTURCVUYsIHJhZGVvbl9jcF9jbWRidWYsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fR0VUUEFSQU0sIHJhZGVvbl9jcF9nZXRwYXJhbSwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9GTElQLCByYWRlb25fY3BfZmxpcCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9BTExPQywgcmFkZW9uX21lbV9hbGxvYywgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9GUkVFLCByYWRlb25fbWVtX2ZyZWUsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fSU5JVF9IRUFQLCByYWRlb25fbWVtX2luaXRfaGVhcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fSVJRX0VNSVQsIHJhZGVvbl9pcnFfZW1pdCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JUlFfV0FJVCwgcmFkZW9uX2lycV93YWl0LCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NFVFBBUkFNLCByYWRlb25fY3Bfc2V0cGFyYW0sIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU1VSRl9BTExPQywgcmFkZW9uX3N1cmZhY2VfYWxsb2MsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU1VSRl9GUkVFLCByYWRlb25fc3VyZmFjZV9mcmVlLCBEUk1fQVVUSCkKLX07Ci0KLWludCByYWRlb25fbWF4X2lvY3RsID0gRFJNX0FSUkFZX1NJWkUocmFkZW9uX2lvY3Rscyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHMxMjg2LmMgYi9kcml2ZXJzL2NoYXIvZHMxMjg2LmMKaW5kZXggZWEzNWFiMi4uZmI1ODQ5MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9kczEyODYuYworKysgYi9kcml2ZXJzL2NoYXIvZHMxMjg2LmMKQEAgLTI3LDYgKzI3LDcgQEAKICAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKi8KICNpbmNsdWRlIDxsaW51eC9kczEyODYuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC0yNTIsNiArMjUzLDcgQEAKIAogc3RhdGljIGludCBkczEyODZfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnEoJmRzMTI4Nl9sb2NrKTsKIAogCWlmIChkczEyODZfc3RhdHVzICYgUlRDX0lTX09QRU4pCkBAIC0yNjAsMTAgKzI2MiwxMiBAQAogCWRzMTI4Nl9zdGF0dXMgfD0gUlRDX0lTX09QRU47CiAKIAlzcGluX3VubG9ja19pcnEoJmRzMTI4Nl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dF9idXN5OgogCXNwaW5fbG9ja19pcnEoJmRzMTI4Nl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIC1FQlVTWTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RzMTYyMC5jIGIvZHJpdmVycy9jaGFyL2RzMTYyMC5jCmluZGV4IDMzNGFkNWIuLjM0Mjc1YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9kczE2MjAuYworKysgYi9kcml2ZXJzL2NoYXIvZHMxNjIwLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CkBAIC0yMDgsNiArMjA5LDEyIEBACiAJdGhlcm0tPmhpID0gY3Z0XzlfdG9faW50KGRzMTYyMF9pbihUSEVSTV9SRUFEX1RILCA5KSk7CiB9CiAKK3N0YXRpYyBpbnQgZHMxNjIwX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKKwlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7Cit9CisKIHN0YXRpYyBzc2l6ZV90CiBkczE2MjBfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnB0cikKIHsKQEAgLTMzNiw3ICszNDMsNyBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkczE2MjBfZm9wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLm9wZW4JCT0gbm9uc2Vla2FibGVfb3BlbiwKKwkub3BlbgkJPSBkczE2MjBfb3BlbiwKIAkucmVhZAkJPSBkczE2MjBfcmVhZCwKIAkuaW9jdGwJCT0gZHMxNjIwX2lvY3RsLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kc3A1NmsuYyBiL2RyaXZlcnMvY2hhci9kc3A1NmsuYwppbmRleCBhNjljNjUyLi5iOWEzMGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZHNwNTZrLmMKKysrIGIvZHJpdmVycy9jaGFyL2RzcDU2ay5jCkBAIC0zMyw2ICszMyw5IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSA8YXNtL2F0YXJpaHcuaD4KICNpbmNsdWRlIDxhc20vdHJhcHMuaD4KQEAgLTkyLDQ5ICs5NSw2IEBACiAJfSBcCiB9CiAKLS8qIERTUDU2MDAxIGJvb3RzdHJhcCBjb2RlICovCi1zdGF0aWMgY2hhciBib290c3RyYXBbXSA9IHsKLQkweDBjLCAweDAwLCAweDQwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4NjAsIDB4ZjQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NGYsIDB4NjEsIDB4ZjQsCi0JMHgwMCwgMHgwMCwgMHg3ZSwgMHhhOSwgMHgwNiwgMHgyZSwgMHg4MCwgMHgwMCwgMHgwMCwgMHg0NywKLQkweDA3LCAweGQ4LCAweDg0LCAweDA3LCAweDU5LCAweDg0LCAweDA4LCAweGY0LCAweGE4LCAweDAwLAotCTB4MDAsIDB4MDQsIDB4MDgsIDB4ZjQsIDB4YmYsIDB4MDAsIDB4MGMsIDB4MDAsIDB4MDAsIDB4ZmUsCi0JMHhiOCwgMHgwYSwgMHhmMCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhOSwgMHgwOCwgMHhmNCwgMHhhMCwKLQkweDAwLCAweDAwLCAweDAxLCAweDA4LCAweGY0LCAweGJlLCAweDAwLCAweDAwLCAweDAwLCAweDBhLAotCTB4YTksIDB4ODAsIDB4MDAsIDB4N2UsIDB4YWQsIDB4MDgsIDB4NGUsIDB4MmIsIDB4NDQsIDB4ZjQsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHg0NCwgMHhmNCwgMHg0NSwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDBlLCAweGEwLCAweDAwLCAweDBhLCAweGE5LCAweDgwLCAweDAwLCAweDdlLCAweGI1LCAweDA4LAotCTB4NTAsIDB4MmIsIDB4MGEsIDB4YTksIDB4ODAsIDB4MDAsIDB4N2UsIDB4YjgsIDB4MDgsIDB4NDYsCi0JMHgyYiwgMHg0NCwgMHhmNCwgMHg0NSwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmMCwgMHhhYSwKLQkweDAwLCAweDdlLCAweGM5LCAweDIwLCAweDAwLCAweDQ1LCAweDBhLCAweGYwLCAweGFhLCAweDAwLAotCTB4N2UsIDB4ZDAsIDB4MDYsIDB4YzYsIDB4MDAsIDB4MDAsIDB4N2UsIDB4YzYsIDB4MGEsIDB4YTksCi0JMHg4MCwgMHgwMCwgMHg3ZSwgMHhjNCwgMHgwOCwgMHg1OCwgMHg2YiwgMHgwYSwgMHhmMCwgMHg4MCwKLQkweDAwLCAweDdlLCAweGFkLCAweDA2LCAweGM2LCAweDAwLCAweDAwLCAweDdlLCAweGNkLCAweDBhLAotCTB4YTksIDB4ODAsIDB4MDAsIDB4N2UsIDB4Y2IsIDB4MDgsIDB4NTgsIDB4YWIsIDB4MGEsIDB4ZjAsCi0JMHg4MCwgMHgwMCwgMHg3ZSwgMHhhZCwgMHgwNiwgMHhjNiwgMHgwMCwgMHgwMCwgMHg3ZSwgMHhkNCwKLQkweDBhLCAweGE5LCAweDgwLCAweDAwLCAweDdlLCAweGQyLCAweDA4LCAweDU4LCAweGViLCAweDBhLAotCTB4ZjAsIDB4ODAsIDB4MDAsIDB4N2UsIDB4YWR9Owotc3RhdGljIGludCBzaXplb2ZfYm9vdHN0cmFwID0gMzc1OwotCi0KIHN0YXRpYyBzdHJ1Y3QgZHNwNTZrX2RldmljZSB7CiAJdW5zaWduZWQgbG9uZyBpbl91c2U7CiAJbG9uZyBtYXhpbywgdGltZW91dDsKQEAgLTE2NCwxOCArMTI0LDQwIEBACiAKIHN0YXRpYyBpbnQgZHNwNTZrX3VwbG9hZCh1X2NoYXIgX191c2VyICpiaW4sIGludCBsZW4pCiB7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgZndfbmFtZVtdID0gImRzcDU2ay9ib290c3RyYXAuYmluIjsKKwlpbnQgZXJyOwogCWludCBpOwotCXVfY2hhciAqcDsKLQkKKwogCWRzcDU2a19yZXNldCgpOwotICAKLQlwID0gYm9vdHN0cmFwOwotCWZvciAoaSA9IDA7IGkgPCBzaXplb2ZfYm9vdHN0cmFwLzM7IGkrKykgewotCQkvKiB0eF93YWl0KDEwKTsgKi8KLQkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlsxXSA9ICpwKys7Ci0JCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbMl0gPSAqcCsrOwotCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzNdID0gKnArKzsKKworCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJkc3A1NmsiLCAwLCBOVUxMLCAwKTsKKwlpZiAoSVNfRVJSKHBkZXYpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGRldmljZSBmb3IgXCIlc1wiXG4iLAorCQkgICAgICAgZndfbmFtZSk7CisJCXJldHVybiAtRUlOVkFMOwogCX0KKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgJnBkZXYtPmRldik7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocGRldik7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIGltYWdlIFwiJXNcIiBlcnIgJWRcbiIsCisJCSAgICAgICBmd19uYW1lLCBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKwlpZiAoZnctPnNpemUgJSAzKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQm9ndXMgbGVuZ3RoICVkIGluIGltYWdlIFwiJXNcIlxuIiwKKwkJICAgICAgIGZ3LT5zaXplLCBmd19uYW1lKTsKKwkJcmVsZWFzZV9maXJtd2FyZShmdyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgZnctPnNpemU7IGkgPSBpICsgMykgeworCQkvKiB0eF93YWl0KDEwKTsgKi8KKwkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlsxXSA9IGZ3LT5kYXRhW2ldOworCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzJdID0gZnctPmRhdGFbaSArIDFdOworCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzNdID0gZnctPmRhdGFbaSArIDJdOworCX0KKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAlmb3IgKDsgaSA8IDUxMjsgaSsrKSB7CiAJCS8qIHR4X3dhaXQoMTApOyAqLwogCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzFdID0gMDsKQEAgLTQzNiwxMyArNDE4LDE3IEBACiBzdGF0aWMgaW50IGRzcDU2a19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCWludCBkZXYgPSBpbWlub3IoaW5vZGUpICYgMHgwZjsKKwlpbnQgcmV0ID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3dpdGNoKGRldikKIAl7CiAJY2FzZSBEU1A1NktfREVWXzU2MDAxOgogCi0JCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZkc3A1NmsuaW5fdXNlKSkKLQkJCXJldHVybiAtRUJVU1k7CisJCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZkc3A1NmsuaW5fdXNlKSkgeworCQkJcmV0ID0gLUVCVVNZOworCQkJZ290byBvdXQ7CisJCX0KIAogCQlkc3A1NmsudGltZW91dCA9IFRJTUVPVVQ7CiAJCWRzcDU2ay5tYXhpbyA9IE1BWElPOwpAQCAtNDU4LDEwICs0NDQsMTEgQEAKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0ID0gLUVOT0RFVjsKIAl9Ci0KLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBkc3A1NmtfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKQEAgLTUzNCwzICs1MjEsNCBAQAogbW9kdWxlX2V4aXQoZHNwNTZrX2NsZWFudXBfZHJpdmVyKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJkc3A1NmsvYm9vdHN0cmFwLmJpbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2R0bGsuYyBiL2RyaXZlcnMvY2hhci9kdGxrLmMKaW5kZXggYWJkZTZkZC4uNmI5MDBiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2R0bGsuYworKysgYi9kcml2ZXJzL2NoYXIvZHRsay5jCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4JLyogZm9yIC1FQlVTWSAqLwogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgkvKiBmb3IgcmVxdWVzdF9yZWdpb24gKi8KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgkvKiBmb3IgbG9vcHNfcGVyX2ppZmZ5ICovCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4JLyogY3ljbGVfa2VybmVsX2xvY2soKSAqLwogI2luY2x1ZGUgPGFzbS9pby5oPgkJLyogZm9yIGluYl9wLCBvdXRiX3AsIGluYiwgb3V0YiwgZXRjLiAqLwogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CS8qIGZvciBnZXRfdXNlciwgZXRjLiAqLwogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4JCS8qIGZvciB3YWl0X3F1ZXVlICovCkBAIC0yODgsMTAgKzI4OSwxMiBAQAogCX0KIH0KIAorLyogTm90ZSB0aGF0IG5vYm9keSBldmVyIHNldHMgZHRsa19idXN5Li4uICovCiBzdGF0aWMgaW50IGR0bGtfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlUUkFDRV9URVhUKCIoZHRsa19vcGVuIik7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogCXN3aXRjaCAoaW1pbm9yKGlub2RlKSkgewogCWNhc2UgRFRMS19NSU5PUjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9lZmlydGMuYyBiL2RyaXZlcnMvY2hhci9lZmlydGMuYwppbmRleCA0OTIzM2Y1Li5kNTdjYTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZWZpcnRjLmMKKysrIGIvZHJpdmVycy9jaGFyL2VmaXJ0Yy5jCkBAIC0yOCw2ICsyOCw3IEBACiAgKi8KIAogCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMjcyLDYgKzI3Myw3IEBACiAJICogV2UgZG8gYWNjZXB0IG11bHRpcGxlIG9wZW4gZmlsZXMgYXQgdGhlIHNhbWUgdGltZSBhcyB3ZQogCSAqIHN5bmNocm9uaXplIG9uIHRoZSBwZXIgY2FsbCBvcGVyYXRpb24uCiAJICovCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2dlbmVyaWNfbnZyYW0uYyBiL2RyaXZlcnMvY2hhci9nZW5lcmljX252cmFtLmMKaW5kZXggMjM5OGU4Ni4uYTAwODY5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2dlbmVyaWNfbnZyYW0uYworKysgYi9kcml2ZXJzL2NoYXIvZ2VuZXJpY19udnJhbS5jCkBAIC0xMzMsNyArMTMzLDcgQEAKIAogaW50IF9faW5pdCBudnJhbV9pbml0KHZvaWQpCiB7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiTWFjaW50b3NoIG5vbi12b2xhdGlsZSBtZW1vcnkgZHJpdmVyIHYlc1xuIiwKKwlwcmludGsoS0VSTl9JTkZPICJHZW5lcmljIG5vbi12b2xhdGlsZSBtZW1vcnkgZHJpdmVyIHYlc1xuIiwKIAkJTlZSQU1fVkVSU0lPTik7CiAJcmV0dXJuIG1pc2NfcmVnaXN0ZXIoJm52cmFtX2Rldik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZ2VucnRjLmMgYi9kcml2ZXJzL2NoYXIvZ2VucnRjLmMKaW5kZXggNjlmMGEyOS4uYWFjMDk4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2dlbnJ0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9nZW5ydGMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtMzM4LDEyICszMzksMTYgQEAKIAogc3RhdGljIGludCBnZW5fcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGdlbl9ydGNfc3RhdHVzICYgUlRDX0lTX09QRU4pCisJbG9ja19rZXJuZWwoKTsKKwlpZiAoZ2VuX3J0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCiAJZ2VuX3J0Y19zdGF0dXMgfD0gUlRDX0lTX09QRU47CiAJZ2VuX3J0Y19pcnFfZGF0YSA9IDA7CiAJaXJxX2FjdGl2ZSA9IDA7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHBldC5jIGIvZHJpdmVycy9jaGFyL2hwZXQuYwppbmRleCBlN2ZiMGJjLi5mYjBhODVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaHBldC5jCisrKyBiL2RyaXZlcnMvY2hhci9ocGV0LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CkBAIC0xOTMsNiArMTk0LDcgQEAKIAlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCXJldHVybiAtRUlOVkFMOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZocGV0X2xvY2spOwogCiAJZm9yIChkZXZwID0gTlVMTCwgaHBldHAgPSBocGV0czsgaHBldHAgJiYgIWRldnA7IGhwZXRwID0gaHBldHAtPmhwX25leHQpCkBAIC0yMDcsNiArMjA5LDcgQEAKIAogCWlmICghZGV2cCkgewogCQlzcGluX3VubG9ja19pcnEoJmhwZXRfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTIxNCw2ICsyMTcsNyBAQAogCWRldnAtPmhkX2lycWRhdGEgPSAwOwogCWRldnAtPmhkX2ZsYWdzIHw9IEhQRVRfT1BFTjsKIAlzcGluX3VubG9ja19pcnEoJmhwZXRfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHZjX3hlbi5jIGIvZHJpdmVycy9jaGFyL2h2Y194ZW4uYwppbmRleCBkZDY4Zjg1Li5kYjJhZTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaHZjX3hlbi5jCisrKyBiL2RyaXZlcnMvY2hhci9odmNfeGVuLmMKQEAgLTM5LDkgKzM5LDE0IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjb25zb2xlX3BmbiA9IH4wdWw7CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICp4ZW5jb25zX2ludGVyZmFjZSh2b2lkKQogewotCXJldHVybiBtZm5fdG9fdmlydCh4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJaWYgKGNvbnNvbGVfcGZuID09IH4wdWwpCisJCXJldHVybiBtZm5fdG9fdmlydCh4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJZWxzZQorCQlyZXR1cm4gX192YShjb25zb2xlX3BmbiA8PCBQQUdFX1NISUZUKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeV9kYWVtb24odm9pZCkKQEAgLTEwMSwyMCArMTA2LDMyIEBACiB7CiAJc3RydWN0IGh2Y19zdHJ1Y3QgKmhwOwogCi0JaWYgKCFpc19ydW5uaW5nX29uX3hlbigpKQotCQlyZXR1cm4gMDsKKwlpZiAoIWlzX3J1bm5pbmdfb25feGVuKCkgfHwKKwkgICAgaXNfaW5pdGlhbF94ZW5kb21haW4oKSB8fAorCSAgICAheGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4pCisJCXJldHVybiAtRU5PREVWOwogCiAJeGVuY29uc19pcnEgPSBiaW5kX2V2dGNobl90b19pcnEoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4pOwogCWlmICh4ZW5jb25zX2lycSA8IDApCi0JCXhlbmNvbnNfaXJxID0gMCAvKiBOT19JUlEgKi87CisJCXhlbmNvbnNfaXJxID0gMDsgLyogTk9fSVJRICovCisKIAlocCA9IGh2Y19hbGxvYyhIVkNfQ09PS0lFLCB4ZW5jb25zX2lycSwgJmh2Y19vcHMsIDI1Nik7CiAJaWYgKElTX0VSUihocCkpCiAJCXJldHVybiBQVFJfRVJSKGhwKTsKIAogCWh2YyA9IGhwOworCisJY29uc29sZV9wZm4gPSBtZm5fdG9fcGZuKHhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUubWZuKTsKKwogCXJldHVybiAwOwogfQogCit2b2lkIHhlbl9jb25zb2xlX3Jlc3VtZSh2b2lkKQoreworCWlmICh4ZW5jb25zX2lycSkKKwkJcmViaW5kX2V2dGNobl9pcnEoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4sIHhlbmNvbnNfaXJxKTsKK30KKwogc3RhdGljIHZvaWQgX19leGl0IHhlbl9maW5pKHZvaWQpCiB7CiAJaWYgKGh2YykKQEAgLTEzNCwxMiArMTUxLDI4IEBACiBtb2R1bGVfZXhpdCh4ZW5fZmluaSk7CiBjb25zb2xlX2luaXRjYWxsKHhlbl9jb25zX2luaXQpOwogCitzdGF0aWMgdm9pZCByYXdfY29uc29sZV93cml0ZShjb25zdCBjaGFyICpzdHIsIGludCBsZW4pCit7CisJd2hpbGUobGVuID4gMCkgeworCQlpbnQgcmMgPSBIWVBFUlZJU09SX2NvbnNvbGVfaW8oQ09OU09MRUlPX3dyaXRlLCBsZW4sIChjaGFyICopc3RyKTsKKwkJaWYgKHJjIDw9IDApCisJCQlicmVhazsKKworCQlzdHIgKz0gcmM7CisJCWxlbiAtPSByYzsKKwl9Cit9CisKKyNpZmRlZiBDT05GSUdfRUFSTFlfUFJJTlRLCiBzdGF0aWMgdm9pZCB4ZW5ib290X3dyaXRlX2NvbnNvbGUoc3RydWN0IGNvbnNvbGUgKmNvbnNvbGUsIGNvbnN0IGNoYXIgKnN0cmluZywKIAkJCQkgIHVuc2lnbmVkIGxlbikKIHsKIAl1bnNpZ25lZCBpbnQgbGluZWxlbiwgb2ZmID0gMDsKIAljb25zdCBjaGFyICpwb3M7CiAKKwlyYXdfY29uc29sZV93cml0ZShzdHJpbmcsIGxlbik7CisKKwl3cml0ZV9jb25zb2xlKDAsICIoZWFybHkpICIsIDgpOwogCXdoaWxlIChvZmYgPCBsZW4gJiYgTlVMTCAhPSAocG9zID0gc3RyY2hyKHN0cmluZytvZmYsICdcbicpKSkgewogCQlsaW5lbGVuID0gcG9zLXN0cmluZytvZmY7CiAJCWlmIChvZmYgKyBsaW5lbGVuID4gbGVuKQpAQCAtMTU1LDUgKzE4OCwyMyBAQAogc3RydWN0IGNvbnNvbGUgeGVuYm9vdF9jb25zb2xlID0gewogCS5uYW1lCQk9ICJ4ZW5ib290IiwKIAkud3JpdGUJCT0geGVuYm9vdF93cml0ZV9jb25zb2xlLAotCS5mbGFncwkJPSBDT05fUFJJTlRCVUZGRVIgfCBDT05fQk9PVCwKKwkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSIHwgQ09OX0JPT1QgfCBDT05fQU5ZVElNRSwKIH07CisjZW5kaWYJLyogQ09ORklHX0VBUkxZX1BSSU5USyAqLworCit2b2lkIHhlbl9yYXdfY29uc29sZV93cml0ZShjb25zdCBjaGFyICpzdHIpCit7CisJcmF3X2NvbnNvbGVfd3JpdGUoc3RyLCBzdHJsZW4oc3RyKSk7Cit9CisKK3ZvaWQgeGVuX3Jhd19wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJc3RhdGljIGNoYXIgYnVmWzUxMl07CisJdmFfbGlzdCBhcDsKKworCXZhX3N0YXJ0KGFwLCBmbXQpOworCXZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworCisJeGVuX3Jhd19jb25zb2xlX3dyaXRlKGJ1Zik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2NvcmUuYyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCmluZGV4IDY2MmQ2MGUuLmU1ZDU4M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCisrKyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtODYsNiArODcsNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoZmlscC0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCXJldHVybiAtRUlOVkFMOworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vaW50ZWwtcm5nLmMgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2ludGVsLXJuZy5jCmluZGV4IDVjYzY1MWUuLjI3ZmRjMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vaW50ZWwtcm5nLmMKKysrIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9pbnRlbC1ybmcuYwpAQCAtMjczLDcgKzI3Myw3IEBACiAJaWYgKG1mYyAhPSBJTlRFTF9GV0hfTUFOVUZBQ1RVUkVSX0NPREUgfHwKIAkgICAgKGR2YyAhPSBJTlRFTF9GV0hfREVWSUNFX0NPREVfOE0gJiYKIAkgICAgIGR2YyAhPSBJTlRFTF9GV0hfREVWSUNFX0NPREVfNE0pKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIkZXSCBub3QgZGV0ZWN0ZWRcbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJGV0ggbm90IGRldGVjdGVkXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXAyL2ZpcF9maXJtLmggYi9kcml2ZXJzL2NoYXIvaXAyL2ZpcF9maXJtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjNTI1ZmEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2lwMi9maXBfZmlybS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjE0OSArMCwwIEBACi0vKiBmaXBfZmlybS5oIC0gSW50ZWxsaXBvcnQgSUkgbG9hZHdhcmUgKi8KLS8qIC0zMTIzMiBieXRlcyByZWFkIGZyb20gZmYubG9kICovCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGZpcF9maXJtW10gX19pbml0ZGF0YSA9IHsKLTB4M0MsMHg0MiwweDM3LDB4MTgsMHgwMiwweDAxLDB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDU3LDB4NjUsMHg2NCwweDIwLDB4NDQsMHg2NSwweDYzLDB4MjAsMHgzMCwweDMxLDB4MjAsMHgzMSwweDMyLDB4M0EsMHgzMiwweDM0LAotMHgzQSwweDMzLDB4MzAsMHgyMCwweDMxLDB4MzksMHgzOSwweDM5LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4RTksMHg2QywweDBGLDB4NDIsMHg2NSwweDQ3LDB4NjksMHg0RSwweDZFLDB4NDksMHg2RSwweDQ3LDB4MjAsMHg2RiwweDQ2LDB4MjAsCi0weDYzLDB4NEYsMHg2NCwweDQ1LDB4Q0MsMHgxMywweDVBLDB4MTUsMHhFOCwweDE2LDB4NzYsMHgxOCwweDA0LDB4MUEsMHg5MiwweDFCLAotMHgyMCwweDFELDB4QUUsMHgxRSwweDNDLDB4MjAsMHhDQSwweDIxLDB4NTgsMHgyMywweEU2LDB4MjQsMHg3NCwweDI2LDB4MDIsMHgyOCwKLTB4OTAsMHgyOSwweDFFLDB4MkIsMHhBQywweDJDLDB4M0EsMHgyRSwweEM4LDB4MkYsMHg1NiwweDMxLDB4RTQsMHgzMiwweDcyLDB4MzQsCi0weDAwLDB4MzYsMHg4RSwweDM3LDB4MUMsMHgzOSwweEFBLDB4M0EsMHgzOCwweDNDLDB4QzYsMHgzRCwweDU0LDB4M0YsMHhFMiwweDQwLAotMHg3MCwweDQyLDB4RkUsMHg0MywweDhDLDB4NDUsMHgxQSwweDQ3LDB4QTgsMHg0OCwweDM2LDB4NEEsMHhDNCwweDRCLDB4NTIsMHg0RCwKLTB4RTAsMHg0RSwweDZFLDB4NTAsMHhGQywweDUxLDB4OEEsMHg1MywweDE4LDB4NTUsMHhBNiwweDU2LDB4MzQsMHg1OCwweEMyLDB4NTksCi0weDUwLDB4NUIsMHhERSwweDVDLDB4NkMsMHg1RSwweEZBLDB4NUYsMHg4OCwweDYxLDB4MTYsMHg2MywweEE0LDB4NjQsMHgzMiwweDY2LAotMHhDMCwweDY3LDB4NEUsMHg2OSwweERDLDB4NkEsMHg2QSwweDZDLDB4RjgsMHg2RCwweDg2LDB4NkYsMHgxNCwweDcxLDB4QTIsMHg3MiwKLTB4MzAsMHg3NCwweEJFLDB4NzUsMHg0QywweDc3LDB4NkMsMHg3NywweDhDLDB4NzcsMHhBQywweDc3LDB4MzMsMHhEQiwweDhBLDB4REMsCi0weDUzLDB4MzMsMHhEQiwweDI1LDB4MDcsMHgwMCwweDc1LDB4MEEsMHg4QSwweDFFLDB4MDgsMHgwMSwweDgzLDB4RTMsMHgwQywweEVCLAotMHgyMCwweDkwLDB4M0MsMHgwMSwweDc1LDB4MEEsMHg4QSwweDFFLDB4MDgsMHgwMSwweDgwLDB4RTMsMHhDMCwweEVCLDB4MTIsMHg5MCwKLTB4OEEsMHgxRSwweDBELDB4MDEsMHgzQywweDAyLDB4NzUsMHgwNiwweDgwLDB4RTMsMHgwQywweEVCLDB4MDQsMHg5MCwweDgwLDB4RTMsCi0weEMwLDB4NTMsMHg1MCwweDhCLDB4MUUsMHhCQSwweDEzLDB4OEUsMHhEQiwweEU4LDB4NkEsMHg2NSwweDU1LDB4OEIsMHhFQywweDUzLAotMHgxRSwweDJCLDB4QzAsMHg4RSwweEQ4LDB4OEIsMHg1RSwweDA0LDB4QzEsMHhFMywweDA0LDB4MDMsMHg1RSwweDA2LDB4RDEsMHhFMywKLTB4MkUsMHg4QiwweDlGLDB4NDQsMHgwMCwweDhELDB4NDcsMHgyQSwweDFFLDB4NUEsMHgxRiwweDVCLDB4NUQsMHhDMywweDU1LDB4OEIsCi0weEVDLDB4NTMsMHgxRSwweDJCLDB4QzAsMHg4RSwweEQ4LDB4OEIsMHg1RSwweDA0LDB4QzEsMHhFMywweDA0LDB4MDMsMHg1RSwweDA2LAotMHhEMSwweEUzLDB4MkUsMHg4QiwweDlGLDB4NDQsMHgwMCwweDhELDB4NDcsMHgzNCwweDFFLDB4NUEsMHgxRiwweDVCLDB4NUQsMHhDMywKLTB4RkIsMHg1NSwweDhCLDB4RUMsMHg1MywweDUxLDB4NTIsMHg1NiwweDU3LDB4MUUsMHgwNiwweDFFLDB4MDcsMHgzMywweEMwLDB4OEUsCi0weEQ4LDB4OEIsMHg1RSwweDA0LDB4MjYsMHg4QSwweDQ3LDB4NTksMHgyNSwweDAzLDB4MDAsMHg4QiwweEYwLDB4RDEsMHhFNiwweDJFLAotMHg4QiwweEI0LDB4QzQsMHgwMCwweEMxLDB4RTAsMHgwNCwweDI2LDB4MDIsMHg0NywweDFBLDB4RDEsMHhFMCwweDhCLDB4RTgsMHgyRSwKLTB4OEIsMHhBRSwweDQ0LDB4MDAsMHg4OSwweDJDLDB4MjYsMHg4QSwweDQ3LDB4MUMsMHg4OCwweDQ0LDB4MEYsMHgyNiwweDhBLDB4NDcsCi0weDFELDB4ODgsMHg0NCwweDEwLDB4MjYsMHg4QSwweDQ3LDB4MUUsMHg4OCwweDQ0LDB4MTEsMHgyNiwweDhBLDB4NDcsMHgxRiwweDg4LAotMHg0NCwweDEyLDB4MjYsMHg4QSwweDQ3LDB4MjAsMHg4OCwweDQ0LDB4MTMsMHgyNiwweDhBLDB4NDcsMHgyMywweDg4LDB4NDQsMHgxNCwKLTB4MjYsMHg4QSwweDQ3LDB4MjQsMHg4OCwweDQ0LDB4MTUsMHgyNiwweDhBLDB4NDcsMHg1QSwweDg4LDB4NDQsMHgwRSwweDMzLDB4QzAsCi0weDg5LDB4NDQsMHgwNiwweDg5LDB4NDQsMHgwOCwweDg4LDB4NDQsMHgwQiwweDg4LDB4NDQsMHgwQSwweEIwLDB4MjEsMHhCNCwweDY0LAotMHg4OSwweDQ0LDB4MDQsMHg4OSwweDQ0LDB4MDIsMHhCMCwweDU1LDB4ODgsMHg0NCwweDBELDB4ODgsMHg0NCwweDBDLDB4RTgsMHg2QSwKLTB4MDAsMHg3MiwweDVCLDB4RTgsMHhDOSwweDAwLDB4RTgsMHhDMSwweDEwLDB4ODksMHg0NCwweDA4LDB4ODAsMHg3QywweDBGLDB4MDEsCi0weDc0LDB4MjksMHhFOCwweDJCLDB4MDIsMHhFOCwweDdGLDB4MDIsMHg4MCwweDdDLDB4MEYsMHgwMywweDc0LDB4MUQsMHhFOCwweEE5LAotMHgxMCwweDhCLDB4RjgsMHgyQiwweDQ0LDB4MDgsMHgzRCwweEEwLDB4MEYsMHg3MiwweDEwLDB4ODksMHg3QywweDA4LDB4MzMsMHhDMCwKLTB4ODcsMHg0NCwweDA2LDB4ODUsMHhDMCwweDc1LDB4MDQsMHhDNiwweDQ0LDB4MEEsMHhGRiwweDhBLDB4NDQsMHgwQSwweDg0LDB4QzAsCi0weDc1LDB4MEIsMHhCOCwweDA4LDB4MDAsMHhFOCwweDZBLDB4NEEsMHhFOCwweEE5LDB4MDEsMHg3MywweEJGLDB4RTgsMHg0RiwweDAxLAotMHg4MSwweDY2LDB4NDgsMHg3RiwweEZGLDB4ODMsMHg2NiwweDdBLDB4QkYsMHhCMCwweDAyLDB4RTgsMHgwNCwweDBFLDB4OEEsMHg0NCwKLTB4MEEsMHg5OCwweDA3LDB4MUYsMHg1RiwweDVFLDB4NUEsMHg1OSwweDVCLDB4NUQsMHhDMywweDgxLDB4NEUsMHg0OCwweDgwLDB4MDAsCi0weEIwLDB4NDAsMHhFOCwweDNELDB4NEEsMHhFOCwweDg5LDB4NDAsMHg3MywweDJBLDB4RTgsMHg0RCwweDEwLDB4OEIsMHhEOCwweEIwLAotMHgwNSwweEU4LDB4MkUsMHg0QSwweEY2LDB4NDYsMHgyNywweDAyLDB4NzUsMHgxQSwweEU4LDB4M0QsMHgxMCwweDJCLDB4QzMsMHgzRCwKLTB4NTgsMHgxQiwweDcyLDB4RUIsMHg4MSwweDY2LDB4NDgsMHg3RiwweEZGLDB4QjAsMHgwMiwweEU4LDB4QzQsMHgwRCwweEM2LDB4NDQsCi0weDBBLDB4MDEsMHhGOSwweEMzLDB4ODMsMHg0RSwweDdBLDB4NDAsMHhGOCwweEMzLDB4RkIsMHhCMCwweDAxLDB4RTgsMHgwMiwweDRBLAotMHhGQSwweEU4LDB4OTksMHgxRSwweEU0LDB4MEEsMHg4NCwweEMwLDB4NzUsMHhGMCwweEIwLDB4NEUsMHhFNiwweDBBLDB4RkIsMHhCMCwKLTB4MDEsMHhFOCwweEVFLDB4NDksMHhGQSwweEU4LDB4ODUsMHgxRSwweEU0LDB4MEEsMHg4NCwweEMwLDB4NzUsMHhGMCwweEMzLDB4RkEsCi0weEU4LDB4N0EsMHgxRSwweEU0LDB4RUMsMHg4OCwweDQ0LDB4MTYsMHhFNCwweEU0LDB4ODgsMHg0NCwweDE3LDB4RTQsMHhGOCwweDg4LAotMHg0NCwweDE4LDB4RTQsMHhGMCwweDg4LDB4NDQsMHgxOSwweEU0LDB4MTAsMHg4OCwweDQ0LDB4MUEsMHhFNCwweDEyLDB4ODgsMHg0NCwKLTB4MUIsMHhFNCwweDE0LDB4ODgsMHg0NCwweDFDLDB4RTQsMHgzNCwweDg4LDB4NDQsMHgxRCwweEU0LDB4MzYsMHg4OCwweDQ0LDB4MUUsCi0weEU0LDB4RDgsMHgyNCwweDAxLDB4OEEsMHhFMCwweEU0LDB4REEsMHgyNCwweDAyLDB4MEEsMHhDNCwweDg4LDB4NDQsMHgxRiwweDhBLAotMHg0NCwweDEwLDB4RTgsMHhDRCwweDFGLDB4OEEsMHg0NCwweDExLDB4RTgsMHgzNSwweDIxLDB4OEEsMHg0NCwweDEyLDB4RTgsMHg4OSwKLTB4MjEsMHg4QSwweDQ0LDB4MTMsMHhFOCwweDQzLDB4MjEsMHhDNiwweDg2LDB4QTEsMHgwMCwweDAwLDB4RTQsMHgxNCwweDI0LDB4MTAsCi0weEU2LDB4MTQsMHhFNCwweDEyLDB4MjQsMHgzRCwweEU2LDB4MTIsMHg4QSwweDQ0LDB4MTUsMHgzQywweDAxLDB4NzIsMHgxRSwweDc3LAotMHgxNiwweEIwLDB4MTEsMHhFNiwweDM0LDB4QjAsMHgxMywweEU2LDB4MzYsMHhFNCwweDE0LDB4MEMsMHgxMCwweEU2LDB4MTQsMHhFNCwKLTB4MTIsMHgwQywweDQwLDB4RTYsMHgxMiwweEVCLDB4MDYsMHhFNCwweDEyLDB4MEMsMHgwMiwweEU2LDB4MTIsMHg4QSwweDQ0LDB4MEYsCi0weDNDLDB4MDEsMHg3NCwweDA2LDB4M0MsMHgwMiwweDc0LDB4MEEsMHhFQiwweDBFLDB4RTQsMHgxMiwweDBDLDB4MDgsMHhFNiwweDEyLAotMHhFQiwweDA2LDB4RTQsMHgxMiwweDBDLDB4MTAsMHhFNiwweDEyLDB4RTgsMHgyRiwweEZGLDB4OEEsMHg0NCwweDE0LDB4M0MsMHgwMiwKLTB4NzUsMHgwOCwweEIwLDB4NTUsMHg4OCwweDQ0LDB4MEMsMHg4OCwweDQ0LDB4MEQsMHhCMCwweDIxLDB4QjQsMHg2NCwweDg5LDB4NDQsCi0weDA0LDB4ODksMHg0NCwweDAyLDB4RTQsMHgwQywweDBDLDB4MTAsMHhFNiwweDBDLDB4RTgsMHhFRCwweDM5LDB4RkIsMHhDMywweEU4LAotMHg1RiwweDNGLDB4NzMsMHgwOCwweEZCLDB4QjAsMHgwQSwweEU4LDB4MDgsMHg0OSwweEVCLDB4RjMsMHhGQSwweEU4LDB4OUQsMHgxRCwKLTB4OEEsMHg2NCwweDE2LDB4OEEsMHg0NCwweDE3LDB4ODksMHg4NiwweDk0LDB4MDAsMHhFNiwweEU0LDB4OEEsMHhDNCwweEU2LDB4RUMsCi0weDhBLDB4NjQsMHgxOCwweDhBLDB4NDQsMHgxOSwweDg5LDB4ODYsMHg5NiwweDAwLDB4RTYsMHhGMCwweDhBLDB4QzQsMHhFNiwweEY4LAotMHg4QSwweDQ0LDB4MUEsMHhFNiwweDEwLDB4OEEsMHg0NCwweDFCLDB4RTYsMHgxMiwweDhBLDB4NDQsMHgxQywweEU2LDB4MTQsMHg4QSwKLTB4NDQsMHgxRCwweEU2LDB4MzQsMHg4QSwweDQ0LDB4MUUsMHhFNiwweDM2LDB4OEEsMHg0NCwweDFGLDB4RTYsMHhEOCwweEU2LDB4REEsCi0weEU5LDB4QjcsMHhGRSwweDkwLDB4RkEsMHg4QSwweDQ0LDB4MEUsMHhFNiwweEZFLDB4RTQsMHgwMiwweEE4LDB4MDEsMHg3NSwweDA1LAotMHgzMywweEMwLDB4RkIsMHhGOCwweEMzLDB4MzMsMHhDMCwweEU0LDB4MDAsMHhGQiwweEY5LDB4QzMsMHg4QSwweDY0LDB4MTQsMHg4MCwKLTB4RkMsMHgwMiwweDc0LDB4MkIsMHhGRSwweEMwLDB4RkUsMHhDNywweDgwLDB4RkYsMHg0RSwweDcyLDB4MUMsMHg3NCwweDA5LDB4ODAsCi0weEZGLDB4NTAsMHg3MywweDA4LDB4QjAsMHgwQSwweEVCLDB4MTcsMHhCMCwweDBELDB4RUIsMHgxMywweDAyLDB4REMsMHgzMiwweEZGLAotMHg4MCwweEZCLDB4N0YsMHg3QywweDAyLDB4QjMsMHgyMSwweDhBLDB4QzMsMHgzQywweDdGLDB4N0MsMHgwMiwweEIwLDB4MjEsMHhDMywKLTB4RkEsMHg4MCwweDdDLDB4MEIsMHgwNCwweDc2LDB4MDIsMHhGQiwweEMzLDB4OEIsMHg0NiwweDI0LDB4M0QsMHgwOCwweDAwLDB4NzIsCi0weEY2LDB4OEUsMHg0NiwweDAyLDB4OEIsMHg3RSwweDIyLDB4OEEsMHg0NCwweDBDLDB4OEIsMHg1QywweDAyLDB4QUEsMHhFOCwweEFCLAotMHhGRiwweEFBLDB4RTgsMHhBNywweEZGLDB4QUEsMHhFOCwweEEzLDB4RkYsMHhBQSwweEU4LDB4OUYsMHhGRiwweDg4LDB4NDQsMHgwQywKLTB4ODksMHg1QywweDAyLDB4ODAsMHg0NCwweDBCLDB4MDQsMHg4OSwweDdFLDB4MjIsMHg4MywweDZFLDB4MjQsMHgwNCwweDgzLDB4NDYsCi0weDFBLDB4MDQsMHg4MCwweDdFLDB4MjYsMHgwMiwweDc0LDB4MDYsMHg4MCwweDY2LDB4MjYsMHhGRCwweEZCLDB4QzMsMHg2MCwweEIwLAotMHhGRCwweEU4LDB4MDIsMHgzRiwweDYxLDB4RkIsMHhDMywweEZBLDB4ODAsMHg3QywweDBGLDB4MDMsMHg3NSwweDA5LDB4QzYsMHg0NCwKLTB4MEIsMHgwMCwweEU4LDB4RTUsMHgzOCwweEZCLDB4QzMsMHhDNCwweDdFLDB4MTQsMHg4QiwweDRFLDB4M0EsMHg4NSwweEM5LDB4NzUsCi0weDM1LDB4MjYsMHg4QiwweDBELDB4NDcsMHg0NywweEUzLDB4RUEsMHgzQiwweDdFLDB4MDQsMHg3NiwweDIyLDB4QjgsMHgwMiwweDAwLAotMHgzOSwweDQ2LDB4MkUsMHg3NywweDA3LDB4QzcsMHg0NiwweDJFLDB4MDAsMHgwMCwweEVCLDB4MTMsMHg4QiwweDVFLDB4MkMsMHg4OSwKLTB4NUUsMHgwNCwweDI2LDB4QzcsMHgwNywweDAwLDB4MDAsMHg0MywweDQzLDB4ODksMHg1RSwweDJDLDB4MjksMHg0NiwweDJFLDB4ODUsCi0weEM5LDB4NzgsMHhDRSwweDg5LDB4NEUsMHgzQSwweDhBLDB4NDQsMHgwRCwweDhCLDB4NUMsMHgwNCwweDI2LDB4OEEsMHgyNSwweDQ3LAotMHgzQSwweEM0LDB4NzUsMHgxNiwweEZFLDB4NEMsMHgwQiwweEZGLDB4NDQsMHgwNiwweEU4LDB4MEYsMHhGRiwweEUyLDB4RUQsMHg4OCwKLTB4NDQsMHgwRCwweDg5LDB4NUMsMHgwNCwweDg5LDB4NEUsMHgzQSwweEVCLDB4QTcsMHhDNiwweDQ0LDB4MEEsMHhGRSwweEU4LDB4NzksCi0weDM4LDB4RkIsMHhDMywweDkwLDB4RTgsMHhCMywweDBELDB4OEEsMHhFOCwweDhBLDB4MEUsMHhDQiwweDEzLDB4QjMsMHgwNywweDhBLAotMHhDMSwweEVFLDB4RUIsMHgwMCwweEVDLDB4M0EsMHhDMSwweDc1LDB4MDksMHgwMiwweENELDB4RkUsMHhDQiwweDc1LDB4RjAsMHhFQiwKLTB4MEMsMHg5MCwweDg4LDB4MEUsMHhDQiwweDEzLDB4OEEsMHhFOCwweEJCLDB4RkYsMHhGRiwweEY5LDB4QzMsMHg4OCwweDBFLDB4Q0IsCi0weDEzLDB4RjgsMHhDMywweDkwLDB4QkIsMHgzRiwweDNGLDB4OEEsMHg4RSwweDlFLDB4MDAsMHhCQSwweEZFLDB4MDAsMHhFQywweDhBLAotMHhFOCwweDMyLDB4QzEsMHgyMiwweEMzLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4OTAsMHhFOCwweEU1LDB4RkYsMHg3MywKLTB4MDEsMHhDMywweEJBLDB4RDAsMHgwMCwweEJCLDB4MDMsMHgwMywweDhBLDB4OEUsMHg5RiwweDAwLDB4RUMsMHg4QSwweEU4LDB4MzIsCi0weEMxLDB4MjIsMHhDMywweDc1LDB4MDIsMHhGOCwweEMzLDB4RjksMHhDMywweDkwLDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwweEMwLAotMHg4MCwweDNFLDB4QzgsMHgxMywweDAwLDB4NzUsMHgwNywweEIwLDB4MEEsMHhFOCwweDI2LDB4NDcsMHhFQiwweEYyLDB4RkIsMHgzMywKLTB4REIsMHg4QSwweDFFLDB4QzksMHgxMywweDQzLDB4NDMsMHg4MywweEZCLDB4N0UsMHg3NiwweDA3LDB4MzMsMHhEQiwweEIwLDB4MDIsCi0weEU4LDB4MEYsMHg0NywweDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHg4MywweDdFLDB4MDgsMHgwMCwweDc0LDB4RTcsMHg4OCwweDFFLAotMHhDOSwweDEzLDB4QjAsMHgwMiwweEU4LDB4RkIsMHg0NiwweEZBLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc0LDB4MTQsMHhFOCwKLTB4OTYsMHgxQiwweEU4LDB4N0YsMHhGRiwweDcyLDB4MUMsMHgzMywweEQyLDB4OEEsMHg5NiwweDlGLDB4MDAsMHg4MywweEMyLDB4MEUsCi0weEVCLDB4MEMsMHg5MCwweEU4LDB4NzcsMHgxQiwweEU4LDB4ODMsMHhGRiwweDcyLDB4MDgsMHhCQSwweDQ4LDB4MDAsMHhFOCwweDMzLAotMHhGRiwweDczLDB4QUIsMHgyMywweENCLDB4ODksMHg4RSwweDlBLDB4MDAsMHg4OSwweDk2LDB4OUMsMHgwMCwweEZFLDB4ODYsMHhCNSwKLTB4MDAsMHhDNiwweDA2LDB4QzgsMHgxMywweDAwLDB4QjAsMHgwQSwweEU4LDB4NjcsMHgwQSwweEZCLDB4RUIsMHg4OSwweDEwLDB4MTgsCi0weDA4LDB4MjgsMHgzMywweEMwLDB4QTAsMHgwNSwweDAxLDB4OEEsMHhDOCwweDI0LDB4NDAsMHg3NSwweDI0LDB4QzcsMHgwNiwweDdDLAotMHgxMiwweDhFLDB4NDUsMHhDNywweDA2LDB4NDIsMHgxMiwweDAxLDB4MDAsMHhDNiwweDA2LDB4NTQsMHgxMiwweDAyLDB4QjAsMHgwOCwKLTB4RjYsMHhDMSwweDAxLDB4NzQsMHgwMiwweEIwLDB4MDQsMHhBMywweDQ2LDB4MTIsMHhBMiwweDRDLDB4MTIsMHhBMiwweDk0LDB4MTIsCi0weEMzLDB4QzcsMHgwNiwweDdDLDB4MTIsMHhCNiwweDQ1LDB4QTAsMHgwRiwweDAxLDB4ODQsMHhDMCwweDc1LDB4MEUsMHg2QSwweDAwLAotMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MUUsMHg5QywweDBFLDB4RTgsMHhCMSwweDBDLDB4OTAsMHhDNywweDA2LDB4NDQsMHgxMiwKLTB4MDEsMHgwMCwweEEzLDB4NDIsMHgxMiwweDhCLDB4RDgsMHhDMSwweEUzLDB4MDQsMHg4OCwweDFFLDB4OTQsMHgxMiwweEJFLDB4RTIsCi0weDA1LDB4MkIsMHhGMCwweDhCLDB4QzgsMHgzMywweERCLDB4OEIsMHhGQiwweDJFLDB4QUMsMHg4OCwweDg1LDB4NDgsMHgxMiwweDhBLAotMHhEOCwweDBDLDB4MDUsMHhFNiwweEZFLDB4OEEsMHhFMCwweEVCLDB4MDAsMHhFNCwweEZFLDB4MzIsMHhDNCwweEE4LDB4M0YsMHg3NCwKLTB4MDMsMHhFOSwweDlFLDB4MDAsMHhFNCwweDAwLDB4ODgsMHg4NSwweDUwLDB4MTIsMHg4QSwweEUwLDB4MjQsMHgzMCwweEJBLDB4MTAsCi0weEZGLDB4M0MsMHgzMCwweDc0LDB4MTIsMHg4MCwweEZDLDB4MDQsMHg3NCwweDBBLDB4QkEsMHgwNCwweDAzLDB4RjYsMHgwNiwweDA4LAotMHgwMSwweEZFLDB4NzQsMHgwMywweEJBLDB4MDgsMHgwRiwweDg4LDB4OTUsMHg0QywweDEyLDB4MDIsMHhGQSwweDMyLDB4QzAsMHhGNiwKLTB4QzQsMHgwOCwweDc0LDB4MDIsMHhCMCwweDAxLDB4ODgsMHg4NSwweDU4LDB4MTIsMHg4QSwweEM0LDB4M0MsMHgzNSwweDc0LDB4NUIsCi0weDNDLDB4MzYsMHg3NCwweDU3LDB4M0MsMHgzNCwweDc0LDB4NTMsMHgzQywweDA0LDB4NzQsMHg0RiwweDNDLDB4MTQsMHg3NCwweDRCLAotMHgzQywweDE1LDB4NzQsMHg0NywweEE4LDB4NDAsMHg3NCwweDI1LDB4QzYsMHg4NSwweDU0LDB4MTIsMHgwNCwweEQxLDB4RTcsMHhCNCwKLTB4MDMsMHg4QSwweEMzLDB4ODksMHg4NSwweDVDLDB4MTIsMHg4QSwweEMzLDB4OEEsMHhFMywweDgwLDB4Q0MsMHgwMSwweDg5LDB4ODUsCi0weDY0LDB4MTIsMHhEMSwweEVGLDB4NDcsMHhFMiwweDAzLDB4RUIsMHgxQSwweDkwLDB4RTksMHg2QywweEZGLDB4QzYsMHg4NSwweDU0LAotMHgxMiwweDAyLDB4RDEsMHhFNywweDhBLDB4RTYsMHg4QSwweEMzLDB4MEMsMHgwNCwweDg5LDB4ODUsMHg1QywweDEyLDB4RDEsMHhFRiwKLTB4NDcsMHhFMiwweEU3LDB4MzMsMHhDMCwweDhBLDB4QzcsMHhBMywweDQ2LDB4MTIsMHhDMywweEM2LDB4ODUsMHg1NCwweDEyLDB4MDYsCi0weEVCLDB4QkIsMHhDNiwweDg1LDB4NTQsMHgxMiwweDAwLDB4MzMsMHhDMCwweDg4LDB4ODUsMHg1MCwweDEyLDB4ODgsMHg4NSwweDRDLAotMHgxMiwweDg4LDB4ODUsMHg1OCwweDEyLDB4RUIsMHhBNiwweEM3LDB4NDYsMHgyNiwweDAyLDB4MTIsMHg4QiwweDQ2LDB4MUUsMHg4OSwKLTB4NDYsMHgwMCwweDg5LDB4NDYsMHgyMiwweDhCLDB4NDYsMHgyMCwweDg5LDB4NDYsMHgyNCwweEM3LDB4NDYsMHgxQSwweDAwLDB4MDAsCi0weEMzLDB4QzcsMHg0NiwweDNDLDB4ODAsMHgwMCwweEM3LDB4NDYsMHgzOCwweDAxLDB4MDAsMHgxRSwweDU2LDB4OEIsMHg3NiwweDMwLAotMHg4OSwweDc2LDB4MDQsMHg4OSwweDc2LDB4MTQsMHg4RSwweDVFLDB4MDYsMHgzMywweEMwLDB4ODksMHgwNCwweDQ2LDB4NDYsMHg4OSwKLTB4NzYsMHgyQywweDg5LDB4NDYsMHgzQSwweDhCLDB4NDYsMHgzMiwweDQ4LDB4NDgsMHg4OSwweDQ2LDB4MkUsMHg1RSwweDFGLDB4QzMsCi0weDMzLDB4QzAsMHg4OSwweDQ2LDB4NDgsMHg4OSwweDQ2LDB4NEEsMHhDNywweDQ2LDB4NDYsMHhBRSwweDAxLDB4ODksMHg0NiwweDRFLAotMHg4QiwweDQ2LDB4NDQsMHg4OSwweDQ2LDB4NTAsMHg4QiwweDQ2LDB4NDIsMHg4OSwweDQ2LDB4NDAsMHg4OSwweDQ2LDB4MDgsMHhDMywKLTB4MzMsMHhDMCwweDg5LDB4NDYsMHg3NiwweDg5LDB4NDYsMHg3OCwweEM3LDB4NDYsMHg3QSwweDEwLDB4MDAsMHg1NiwweDFFLDB4OEIsCi0weDc2LDB4NzAsMHg4OSwweDc2LDB4MTAsMHg4OSwweDc2LDB4MEMsMHg4RSwweDVFLDB4MTIsMHhDNywweDA0LDB4MDAsMHgwMCwweDhCLAotMHg0NiwweDcyLDB4ODksMHg0NiwweDc0LDB4MUYsMHg1RSwweEMzLDB4ODksMHg1NiwweDE4LDB4ODksMHg1NiwweDAyLDB4ODksMHg1NiwKLTB4MDYsMHg4OSwweDU2LDB4MEEsMHg4OSwweDU2LDB4MEUsMHg4OSwweDU2LDB4MTIsMHg4OSwweDU2LDB4MTYsMHg4QiwweEQ4LDB4NEIsCi0weDRCLDB4QzEsMHhFMywweDAyLDB4QkYsMHgwMiwweDAwLDB4ODksMHg3RSwweDFFLDB4MDMsMHhGQiwweDg5LDB4N0UsMHgzMCwweDAzLAotMHhGQiwweDg5LDB4N0UsMHg0MiwweDAzLDB4RkIsMHg4OSwweDdFLDB4NzAsMHg4MywweEVCLDB4MDgsMHg4OSwweDVFLDB4MjAsMHg4OSwKLTB4NUUsMHgzMiwweDg5LDB4NUUsMHg0NCwweDg5LDB4NUUsMHg3MiwweDUwLDB4RTgsMHgyQiwweEZGLDB4RTgsMHg3MSwweEZGLDB4RTgsCi0weDNGLDB4RkYsMHhFOCwweDhCLDB4RkYsMHg1OCwweEMzLDB4QjgsMHgzMCwweDc1LDB4QzEsMHhFOCwweDA0LDB4MEUsMHg1QiwweDAzLAotMHhDMywweEEzLDB4QkEsMHgxMywweDgzLDB4M0UsMHg0MiwweDEyLDB4MDAsMHg3NCwweDA3LDB4ODAsMHgzRSwweDk0LDB4MTIsMHgwMCwKLTB4NzUsMHgwRSwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MUUsMHg5QywweDBFLDB4RTgsMHhCRCwweDBBLDB4OTAsCi0weEI4LDB4MzAsMHg3QSwweEMxLDB4RTgsMHgwNCwweDQwLDB4QTMsMHhDMCwweDEzLDB4MkIsMHgwNiwweDEyLDB4MDEsMHhGNywweEQ4LAotMHgzMywweEQyLDB4OEIsMHhDQSwweDhBLDB4MEUsMHg5NCwweDEyLDB4RjcsMHhGMSwweDNELDB4ODAsMHgwMCwweDc3LDB4MEUsMHg2QSwKLTB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MjUsMHg5QywweDBFLDB4RTgsMHg5MCwweDBBLDB4OTAsMHg0OCwweDNELDB4RkYsCi0weDA3LDB4NzIsMHgwMywweEI4LDB4RkYsMHgwNywweEEzLDB4QzIsMHgxMywweDMzLDB4QzksMHg4QSwweDBFLDB4OTQsMHgxMiwweDMzLAotMHhGNiwweEI4LDB4MDAsMHgwOSwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHg4OSwweDQ2LDB4NEMsMHg0MCwweDQ2LDB4NDYsMHhFMiwKLTB4RjMsMHg4QSwweDBFLDB4OTQsMHgxMiwweDMzLDB4RjYsMHg4QiwweDE2LDB4QzAsMHgxMywweEExLDB4QzIsMHgxMywweDJFLDB4OEIsCi0weEFDLDB4NDQsMHgwMCwweEU4LDB4MjIsMHhGRiwweDAzLDB4RDAsMHg0NiwweDQ2LDB4RTIsMHhGMiwweEMzLDB4MzMsMHhDMCwweDJFLAotMHg4QiwweEFELDB4NDQsMHgwMCwweDg5LDB4NDYsMHgwOCwweDQ3LDB4NDcsMHhFMiwweEY0LDB4QzMsMHg1MSwweDMzLDB4QzAsMHgwQSwKLTB4QzIsMHgyRSwweDhCLDB4QUQsMHg0NCwweDAwLDB4ODksMHg4NiwweDlFLDB4MDAsMHg4MSwweDRFLDB4MzgsMHgwMCwweDIwLDB4NDcsCi0weDQ3LDB4RkUsMHhDNCwweDgwLDB4RkMsMHgwNCwweDcyLDB4MDQsMHgzMiwweEU0LDB4RkUsMHhDMCwweEUyLDB4RTMsMHg1OSwweDgzLAotMHhFOSwweDEwLDB4NzQsMHgwNSwweEY3LDB4RDksMHhFOCwweEM0LDB4RkYsMHhDMywweDUxLDB4MzMsMHhDMCwweDBBLDB4QzIsMHgyRSwKLTB4OEIsMHhBRCwweDQ0LDB4MDAsMHg4OSwweDg2LDB4OUUsMHgwMCwweDgzLDB4NEUsMHgzOCwweDQwLDB4NDcsMHg0NywweDgwLDB4QzQsCi0weDEwLDB4NzksMHgwNCwweDMyLDB4RTQsMHhGRSwweEMwLDB4RTIsMHhFNiwweDU5LDB4ODMsMHhFOSwweDEwLDB4NzQsMHgwNSwweEY3LAotMHhEOSwweEU4LDB4OTksMHhGRiwweEMzLDB4RTgsMHhEMiwweEZGLDB4QzMsMHg4RCwweDA4LDB4OUMsMHgwOCwweENBLDB4MDgsMHhGNSwKLTB4MDgsMHg4QiwweDBFLDB4NDIsMHgxMiwweDMzLDB4RjYsMHg1MSwweDU2LDB4MzMsMHhEQiwweDhCLDB4Q0IsMHg4QSwweDk0LDB4NDgsCi0weDEyLDB4OEEsMHg4QywweDRDLDB4MTIsMHg4QSwweDlDLDB4NTQsMHgxMiwweDhCLDB4RkUsMHhDMSwweEU3LDB4MDUsMHg4NSwweERCLAotMHg3NSwweDAyLDB4QjEsMHgxMCwweDJFLDB4RkYsMHg5NywweEY5LDB4MDgsMHg1RSwweDU5LDB4NDYsMHhFMiwweEQ5LDB4QzMsMHgwMSwKLTB4Q0MsMHgwMywweEQwLDB4MDAsMHhFOCwweDAyLDB4RDAsMHgwMCwweEU4LDB4MDEsMHhEMCwweDAwLDB4RTgsMHgwMCwweEQwLDB4MDAsCi0weEU4LDB4MDQsMHhEMCwweEE4LDB4REEsMHgwMCwweERDLDB4MDAsMHhERSwweDAxLDB4RDgsMHgwMywweENDLDB4MDMsMHhDQywweDAzLAotMHhDQywweDA0LDB4RDAsMHhBOCwweERBLDB4MjAsMHhEQywweDAwLDB4REUsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMCwKLTB4RDgsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsCi0weENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLAotMHhDQywweDA0LDB4RDAsMHgwMCwweERBLDB4MjAsMHhEQywweDAzLDB4REUsMHgwMSwweEQ4LDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywKLTB4Q0MsMHgwMywweENDLDB4MDAsMHhEOCwweDAwLDB4Q0MsMHgwMCwweEQwLDB4MDAsMHgwMCwweDU2LDB4NTIsMHgxRSwweDBFLDB4MUYsCi0weEJFLDB4MkYsMHgwOSwweDMzLDB4RDIsMHhGQywweEFELDB4ODUsMHhDMCwweDc0LDB4MEQsMHg4QSwweEQ0LDB4RUUsMHhBRCwweDg1LAotMHhDMCwweDc0LDB4MDUsMHg4QSwweEQ0LDB4RUUsMHhFQiwweEVFLDB4MUYsMHg1QSwweDVFLDB4QzMsMHhFNCwweDgwLDB4ODQsMHhDMCwKLTB4NzQsMHgxNiwweDc4LDB4MTQsMHhCMCwweDI3LDB4RTYsMHhGQywweEIwLDB4MTEsMHhFNiwweDM0LDB4RTQsMHhGQywweDNDLDB4MjcsCi0weDc1LDB4MDYsMHhFNCwweDExLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLAotMHg4MywweEVBLDB4MDIsMHhCMCwweDEwLDB4RUUsMHg4OCwweDg2LDB4QUYsMHgwMCwweEIwLDB4MTEsMHg4MywweEMyLDB4MDQsMHhFRSwKLTB4ODMsMHhDMiwweDAyLDB4RUUsMHhCMCwweDEzLDB4ODMsMHhDMiwweDAyLDB4RUUsMHg4MywweEMyLDB4MDIsMHhFRSwweDJFLDB4QTEsCi0weDRDLDB4MkQsMHg4OSwweDg2LDB4OTQsMHgwMCwweDgzLDB4RUEsMHgwRSwweEVFLDB4ODMsMHhDMiwweDAyLDB4OEEsMHhDNCwweEVFLAotMHg4MywweEMyLDB4MDQsMHhCMCwweDAzLDB4RUUsMHg4OCwweDg2LDB4QTgsMHgwMCwweDgzLDB4RUEsMHgwNCwweDMyLDB4QzAsMHhFRSwKLTB4ODMsMHhDMiwweDAyLDB4QjAsMHg4OSwweEVFLDB4ODgsMHg4NiwweEE2LDB4MDAsMHgwQywweDA2LDB4RUUsMHhCMCwweDQwLDB4QjQsCi0weDM4LDB4ODksMHg0NiwweDFDLDB4QzcsMHg0NiwweDM2LDB4MzgsMHgwMCwweDgzLDB4QzIsMHgwNCwweDMyLDB4QzAsMHhFRSwweDg4LAotMHg4NiwweEE3LDB4MDAsMHhDMywweDgzLDB4QzIsMHgwNiwweEIwLDB4QkYsMHhFRSwweDgzLDB4RUEsMHgwMiwweEVDLDB4M0EsMHg4NiwKLTB4QUYsMHgwMCwweDc1LDB4MjQsMHg4MywweEMyLDB4MDQsMHhFQywweDNDLDB4MTEsMHg3NSwweDFDLDB4ODMsMHhDMiwweDA2LDB4RUMsCi0weDNDLDB4MTMsMHg3NSwweDE0LDB4ODMsMHhFQSwweDA4LDB4OEEsMHg4NiwweEE4LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwMiwweEVDLAotMHgyNCwweEMwLDB4M0MsMHhDMCwweDc1LDB4MDIsMHhGOCwweEMzLDB4RjksMHhDMywweDMzLDB4QzksMHg4QiwweEQxLDB4OEIsMHhGMSwKLTB4OEEsMHgwRSwweDk0LDB4MTIsMHhDMSwweEU5LDB4MDIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4MDAsCi0weDIwLDB4NzQsMHgwRSwweDhBLDB4ODYsMHg5RSwweDAwLDB4RTYsMHhGRSwweDMyLDB4QzAsMHhFNiwweDgwLDB4NDIsMHhFOCwweEZBLAotMHhGRSwweDgzLDB4QzYsMHgwOCwweEUyLDB4RTEsMHg4NSwweEQyLDB4NzQsMHgwMywweEU4LDB4MDUsMHgwOCwweEMzLDB4MzMsMHhDOSwKLTB4OEIsMHhGMSwweDhBLDB4MEUsMHg5NCwweDEyLDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsCi0weDc0LDB4MDYsMHhFOCwweDczLDB4MTYsMHhFOCwweDEyLDB4RkYsMHg0NiwweDQ2LDB4RTIsMHhFQSwweEMzLDB4MzMsMHhDOSwweDhCLAotMHhGMSwweDhBLDB4MEUsMHg5NCwweDEyLDB4QzEsMHhFOSwweDAyLDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweEY3LDB4NDYsMHgzOCwKLTB4MDAsMHgyMCwweDc0LDB4MTYsMHhFOCwweDQ2LDB4MTYsMHhFOCwweEQyLDB4RkUsMHg3MywweDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsCi0weDA2LDB4OTMsMHgxMiwweDFDLDB4OUMsMHgwRSwweEU4LDB4RTMsMHgwNywweDkwLDB4ODMsMHhDNiwweDA4LDB4RTIsMHhEOSwweEMzLAotMHgzMywweEM5LDB4OEIsMHhGMSwweDhBLDB4MEUsMHg5NCwweDEyLDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweEY3LDB4NDYsMHgzOCwKLTB4NDAsMHgwMCwweDc0LDB4MTYsMHhFOCwweDIxLDB4MTYsMHhFOCwweDJBLDB4RkYsMHg3MywweDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsCi0weDA2LDB4OTMsMHgxMiwweDFDLDB4OUMsMHgwRSwweEU4LDB4QjMsMHgwNywweDkwLDB4NDYsMHg0NiwweEUyLDB4REEsMHhDMywweDBDLAotMHgwMCwweDAwLDB4MTAsMHgwMCwweDEzLDB4MTIsMHgwMCwweDAwLDB4MTQsMHgwMCwweDI4LDB4M0MsMHgwMCwweDFCLDB4M0UsMHgwMCwKLTB4MDAsMHgyQSwweDAwLDB4MDAsMHgyQywweDAwLDB4MDAsMHg0MiwweDAwLDB4MTQsMHhEOCwweDAwLDB4MDAsMHhEQSwweDAwLDB4MDAsCi0weDM0LDB4MDAsMHgxMSwweDM2LDB4MDAsMHgxMywweDM4LDB4MDAsMHgxMSwweDNBLDB4MDAsMHgxMywweDAwLDB4MDAsMHg1NiwweDUwLAotMHg1MiwweEJFLDB4MkYsMHgwQiwweDJFLDB4QUQsMHg4NSwweEMwLDB4NzQsMHgwNiwweDkyLDB4MkUsMHhBQywweEVFLDB4RUIsMHhGNCwKLTB4NUEsMHg1OCwweDVFLDB4QzMsMHg1MywweDJFLDB4QTEsMHg2MCwweDIyLDB4RTYsMHhFNCwweEU2LDB4RjAsMHg4QSwweEM0LDB4RTYsCi0weEVDLDB4RTYsMHhGOCwweEU4LDB4RDgsMHhGRiwweEIwLDB4NEIsMHhFNiwweDEwLDB4QjAsMHg1MCwweEU2LDB4MTIsMHhCMCwweDM4LAotMHhFNiwweDE0LDB4RTgsMHhBRSwweDE1LDB4QjAsMHg0NiwweEU2LDB4MEEsMHhFOCwweEE3LDB4MTUsMHhCMCwweDFBLDB4RTYsMHgwQSwKLTB4RTgsMHhBMCwweDE1LDB4QjAsMHgyMiwweEU2LDB4MEEsMHhFOCwweDk5LDB4MTUsMHhFOCwweEZELDB4MDYsMHg4QiwweEQ4LDB4RTQsCi0weDE2LDB4QTgsMHgwNCwweDc1LDB4MTgsMHhFOCwweEYyLDB4MDYsMHgyQiwweEMzLDB4M0QsMHgzMiwweDAwLDB4NzIsMHhGMCwweDZBLAotMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgyMywweDlDLDB4MEUsMHhFOCwweDEwLDB4MDcsMHg5MCwweEU4LDB4REEsMHgwNiwKLTB4MkIsMHhDMywweDNELDB4MjQsMHgwMCwweDc3LDB4MUIsMHhCMCwweDMxLDB4RTYsMHhGQywweDU2LDB4NTEsMHg1NSwweEI5LDB4MTAsCi0weDAwLDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweDgxLDB4NEUsMHgzOCwweDgwLDB4MDAsMHg0NiwweDQ2LDB4RTIsMHhGMiwweDVELAotMHg1OSwweDVFLDB4RTgsMHg2OSwweEZGLDB4RTgsMHg0QiwweDE1LDB4QjAsMHg0NiwweEU2LDB4MEEsMHhFOCwweDQ0LDB4MTUsMHg1QiwKLTB4QzMsMHgzMywweEY2LDB4OEIsMHgwRSwweDQyLDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4MDAsCi0weDIwLDB4NzQsMHgwNiwweEU4LDB4MTcsMHgxNSwweEU4LDB4NUIsMHhGRiwweDgzLDB4QzYsMHgyMCwweEUyLDB4RTksMHhDMywweDhCLAotMHhDMiwweDA1LDB4MDQsMHgwMCwweDg5LDB4NDYsMHgyOCwweDJFLDB4QTEsMHg0QywweDJELDB4ODksMHg4NiwweDhFLDB4MDAsMHg4OSwKLTB4ODYsMHg5MCwweDAwLDB4ODksMHg4NiwweDkyLDB4MDAsMHhDNiwweDg2LDB4QTMsMHgwMCwweDBBLDB4QzYsMHg4NiwweEMzLDB4MDAsCi0weDAzLDB4NTIsMHg4MywweEMyLDB4MDQsMHg4QSwweDg2LDB4QTYsMHgwMCwweDBDLDB4MDYsMHhFRSwweDVBLDB4ODMsMHhDMiwweDAyLAotMHhCMCwweDA1LDB4RUUsMHg4OCwweDg2LDB4QTUsMHgwMCwweEMzLDB4RTgsMHgwMywweEZGLDB4RTgsMHhFNSwweDE0LDB4QjAsMHg0MiwKLTB4RTYsMHgwQSwweEY3LDB4NDYsMHgzOCwweDgwLDB4MDAsMHg3NCwweDA2LDB4MkUsMHhBMSwweDlDLDB4MjIsMHhFQiwweDA0LDB4MkUsCi0weEExLDB4NkMsMHgyMiwweEM3LDB4NDYsMHgxQywweDBDLDB4MDAsMHg4OSwweDg2LDB4OTQsMHgwMCwweDg5LDB4ODYsMHg5NiwweDAwLAotMHg4OSwweDg2LDB4OEUsMHgwMCwweDg5LDB4ODYsMHg5MCwweDAwLDB4ODksMHg4NiwweDkyLDB4MDAsMHhFNiwweEYwLDB4RTYsMHhFNCwKLTB4OEEsMHhDNCwweEU2LDB4RjgsMHhFNiwweEVDLDB4QzYsMHg4NiwweEMzLDB4MDAsMHgwMywweEU4LDB4QTUsMHgxNCwweEIwLDB4MUEsCi0weEU2LDB4MEEsMHhCMCwweDEwLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsMHgzMywweEM5LDB4OEIsMHhGMSwweDhBLAotMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc0LDB4MDYsMHhFOCwKLTB4NzYsMHgxNCwweEU4LDB4NUEsMHhGRiwweDQ2LDB4NDYsMHhFMiwweEVBLDB4QzMsMHgzMywweEM5LDB4OEIsMHhGMSwweDhBLDB4MEUsCi0weDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4MDAsMHgyMCwweDc0LDB4MDYsMHhFOCwweDRDLAotMHgxNCwweEU4LDB4NzQsMHhGRiwweDQ2LDB4NDYsMHhFMiwweEVBLDB4QzMsMHg5MCwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwKLTB4MTQsMHhCMCwweDAxLDB4QkEsMHgwNiwweDAxLDB4RUUsMHgyQSwweEMwLDB4RUUsMHhCMCwweDAyLDB4RUUsMHhCMCwweDA0LDB4RUUsCi0weEI4LDB4MDAsMHgwMiwweEVCLDB4MEYsMHhCQSwweDA2LDB4MDEsMHhCMCwweDQwLDB4RUUsMHhCOCwweDAxLDB4MDAsMHg4QSwweDBFLAotMHgwRSwweDAxLDB4RDMsMHhFMCwweEEzLDB4ODgsMHgxMiwweEMzLDB4QTEsMHg4OCwweDEyLDB4QTMsMHg4NCwweDEyLDB4MkQsMHgyMCwKLTB4MDAsMHhBMywweDhBLDB4MTIsMHgyRCwweDIwLDB4MDAsMHhBMywweDgyLDB4MTIsMHhDNywweDA2LDB4ODYsMHgxMiwweDIwLDB4MDAsCi0weEM3LDB4MDYsMHg4MCwweDEyLDB4MzIsMHgwMCwweEMzLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LDB4NzYsMHg4QiwweDBFLAotMHg0MiwweDEyLDB4MzMsMHhGNiwweDhBLDB4QTQsMHg1NCwweDEyLDB4ODQsMHhFNCwweDc0LDB4NUYsMHg4QSwweDg0LDB4NDgsMHgxMiwKLTB4MEMsMHgwNCwweEU2LDB4RkUsMHhGNiwweEM0LDB4MDQsMHg3NCwweDI1LDB4QjAsMHgxQiwweEJBLDB4MDAsMHgwMCwweEVFLDB4RUIsCi0weDAwLDB4MkEsMHhDMCwweEJBLDB4MDIsMHgwMCwweEVFLDB4RUIsMHgwMCwweEIwLDB4MDMsMHhFRSwweEVCLDB4MDAsMHgzMiwweEMwLAotMHhCQSwweDAyLDB4MDAsMHhFRSwweEVCLDB4MDAsMHhCQSwweDAwLDB4MDAsMHhCMCwweDAwLDB4RUUsMHhFQiwweDJELDB4QjAsMHgxRiwKLTB4QkEsMHgwMCwweDAwLDB4RUUsMHhFQiwweDAwLDB4MkEsMHhDMCwweEJBLDB4MDIsMHgwMCwweEVFLDB4RUIsMHgwMCwweEIwLDB4MDMsCi0weEVFLDB4RUIsMHgwMCwweEQxLDB4RTYsMHg4QSwweDg0LDB4NUQsMHgxMiwweEQxLDB4RUUsMHhGNiwweEQwLDB4QkEsMHgwMiwweDAwLAotMHhFRSwweEVCLDB4MDAsMHhCQSwweDAwLDB4MDAsMHhCMCwweDBBLDB4RUUsMHhFQiwweDAwLDB4RTQsMHgwNCwweEVCLDB4MDAsMHhFNCwKLTB4MDQsMHg0NiwweEUyLDB4OTAsMHhDMywweDkwLDB4QjgsMHgxNCwweDAwLDB4QkEsMHgzRSwweEZGLDB4RUYsMHhCOCwweDA2LDB4MDAsCi0weEJBLDB4MzIsMHhGRiwweEVGLDB4QjgsMHgwRiwweDAwLDB4QkEsMHgzNCwweEZGLDB4RUYsMHhCQSwweDM2LDB4RkYsMHhFRiwweDgzLAotMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc1LDB4MTYsMHhCOCwweDExLDB4MDAsMHhCQSwweDM4LDB4RkYsMHhFRiwweEI4LDB4MTIsMHgwMCwKLTB4QkEsMHgzQSwweEZGLDB4RUYsMHhCOCwweDFCLDB4MDAsMHhCQSwweDNDLDB4RkYsMHhFRiwweEMzLDB4QjgsMHgxMSwweDAwLDB4QkEsCi0weDM4LDB4RkYsMHhFRiwweEI4LDB4MTIsMHgwMCwweEJBLDB4M0EsMHhGRiwweEVGLDB4QjgsMHgxQiwweDAwLDB4QkEsMHgzQywweEZGLAotMHhFRiwweEMzLDB4QjgsMHhGQywweDAwLDB4QkEsMHgyOCwweEZGLDB4RUYsMHhGQiwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NCwKLTB4MDcsMHhCOCwweENDLDB4MDAsMHhCQSwweDI4LDB4RkYsMHhFRiwweEMzLDB4MDAsMHhGRiwweEZGLDB4MjAsMHgyNCwweDI4LDB4RkYsCi0weDJDLDB4RkYsMHhGRiwweDMwLDB4MzQsMHgzOCwweEZGLDB4RkYsMHgzQywweDkwLDB4M0MsMHgwRiwweDc3LDB4MEUsMHhCQiwweDE5LAotMHgwRSwweDJFLDB4RDcsMHgzQywweEZGLDB4NzQsMHgwNSwweDhBLDB4RDgsMHhGOCwweEMzLDB4OTAsMHgyQSwweERCLDB4RjksMHhDMywKLTB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LDB4MjcsMHhBMCwweDA2LDB4MDEsMHg4MCwweDI2LDB4MDYsMHgwMSwweDMwLDB4ODAsCi0weDNFLDB4MDYsMHgwMSwweDMwLDB4NzUsMHgxOCwweEI5LDB4MDIsMHgwMCwweEJGLDB4QzQsMHgxMywweEJBLDB4MDYsMHgwMSwweEVDLAotMHhBOCwweDIwLDB4NzUsMHhGOCwweEJBLDB4MDQsMHgwMSwweEVELDB4QUIsMHhFMiwweEYxLDB4RUIsMHgxNiwweDkwLDB4QjksMHgwNCwKLTB4MDAsMHhCRiwweEM0LDB4MTMsMHhCQSwweDA2LDB4MDEsMHhFQywweEE4LDB4MjAsMHg3NSwweEY4LDB4QkEsMHgwNCwweDAxLDB4RUMsCi0weEFBLDB4RTIsMHhGMSwweEZBLDB4OTAsMHhCRSwweEM0LDB4MTMsMHhBRCwweDgwLDB4RTQsMHgzRiwweDgwLDB4RkMsMHgwMiwweDc0LAotMHgwRSwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MEEsMHg5QywweDBFLDB4RTgsMHgzRSwweDA0LDB4OTAsMHhBRCwKLTB4M0MsMHgwRiwweDc1LDB4RUQsMHg4QSwweEM0LDB4RTgsMHg4MSwweEZGLDB4NzIsMHhFNiwweDg4LDB4MUUsMHgxQSwweDAxLDB4QzYsCi0weDA2LDB4OEUsMHgxMiwweDAwLDB4QjAsMHgwMCwweDBBLDB4MDYsMHgxQSwweDAxLDB4QkEsMHgwMCwweDAxLDB4RUUsMHhDNiwweDA2LAotMHg4RiwweDEyLDB4NDAsMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzUsMHgwNiwweEI4LDB4MEMsMHgwMCwweEVCLDB4MDQsMHg5MCwKLTB4QjgsMHg0QywweDAwLDB4QkEsMHgyOCwweEZGLDB4RUYsMHhDMywweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwweDAxLDB4QzMsCi0weEExLDB4NTAsMHgxMiwweDBCLDB4MDYsMHg1MiwweDEyLDB4MEEsMHhDNCwweEE4LDB4MDgsMHg3NCwweEYyLDB4QTAsMHgwRiwweDAxLAotMHgyQSwweEU0LDB4NTAsMHhGRiwweDM2LDB4QkEsMHgxMywweDFGLDB4RTgsMHg1MCwweDU2LDB4ODMsMHhDNCwweDAyLDB4NkEsMHgwMCwKLTB4MUYsMHgzMywweEMwLDB4QTMsMHhCQywweDEzLDB4QTAsMHgwRiwweDAxLDB4QTMsMHhCRSwweDEzLDB4OEIsMHgxRSwweEJDLDB4MTMsCi0weDhBLDB4ODcsMHg1MCwweDEyLDB4RjYsMHg4NywweDUwLDB4MTIsMHgwOCwweDc0LDB4MEQsMHgyNCwweDA3LDB4OEEsMHhFMCwweEJFLAotMHhDQywweDAwLDB4QTAsMHhCQywweDEzLDB4RTgsMHg5NCwweDNELDB4RkYsMHgwNiwweEJDLDB4MTMsMHhGRiwweDBFLDB4QkUsMHgxMywKLTB4NzUsMHhEQSwweEMzLDB4OTAsMHgxRSwweDMzLDB4QzAsMHg4RSwweEQ4LDB4QjAsMHgwMSwweEU4LDB4NTQsMHgzRCwweDFGLDB4QzMsCi0weDMzLDB4QzksMHg4QiwweEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4QzcsMHg0NiwweDYyLAotMHgzOCwweDQ0LDB4QzcsMHg0NiwweDdDLDB4RkMsMHgzQiwweEM3LDB4NDYsMHg3RSwweEUyLDB4M0IsMHhDNywweDg2LDB4ODAsMHgwMCwKLTB4RUMsMHgzQywweEU4LDB4QUIsMHgxNiwweEM2LDB4ODYsMHhDMCwweDAwLDB4MTEsMHg4MywweDdFLDB4MDgsMHgwMCwweDc0LDB4MDcsCi0weDUxLDB4NTYsMHhFOCwweDMzLDB4MzMsMHg1RSwweDU5LDB4NDYsMHg0NiwweEUyLDB4Q0QsMHhDMywweDMzLDB4QzksMHg4QiwweEYxLAotMHg4QiwweEY5LDB4OEEsMHgwRSwweDk0LDB4MTIsMHhDMSwweEU5LDB4MDIsMHhFMywweDEzLDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwKLTB4OEEsMHg4NiwweDlFLDB4MDAsMHg4OCwweDg1LDB4NkMsMHgxMiwweDgzLDB4QzYsMHgwOCwweDQ3LDB4RTIsMHhFRCwweEMzLDB4RkEsCi0weEZDLDB4QjAsMHhDMCwweEJBLDB4MDAsMHgwMSwweEVFLDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4OEUsMHhEMCwweEJGLAotMHgxNiwweDAxLDB4QjksMHhDQywweDc3LDB4MkIsMHhDRiwweEQxLDB4RTksMHhGMywweEFCLDB4QkMsMHg0MCwweDEyLDB4RTgsMHhEOSwKLTB4MDIsMHhFOCwweDcwLDB4M0MsMHhCRSwweENDLDB4MEYsMHhFOCwweEYyLDB4M0MsMHhGNCwweDkwLDB4MzMsMHhDMCwweDhFLDB4RDgsCi0weDhFLDB4QzAsMHg4RSwweEQwLDB4RjYsMHgwNiwweDBBLDB4MDEsMHg4MCwweDc0LDB4MEIsMHhCRSwweDM1LDB4NTUsMHhFOCwweERCLAotMHgzQywweEIwLDB4MDEsMHhFOCwweEFDLDB4M0MsMHhFOCwweEIzLDB4MDAsMHhFOCwweEY2LDB4RjUsMHhFOCwweDA4LDB4RjgsMHhFOCwKLTB4MEYsMHhGOSwweEU4LDB4ODUsMHhGQSwweEU4LDB4QjYsMHhGQSwweEU4LDB4RUYsMHhGQywweEU4LDB4QzIsMHgxMCwweEU4LDB4MDMsCi0weDNDLDB4RTgsMHhCMiwweEZELDB4RTgsMHgzMCwweEZELDB4RTgsMHg1NCwweDAyLDB4QzYsMHgwNiwweDhGLDB4MTIsMHhDMCwweEU4LAotMHhCQiwweEZBLDB4RTgsMHhFQiwweEZBLDB4RTgsMHhFOSwweEZCLDB4RTgsMHhBRiwweEZDLDB4RTgsMHg4RCwweEZDLDB4RTgsMHgxRiwKLTB4RkYsMHhFOCwweDU4LDB4RkYsMHhFOCwweERCLDB4RkQsMHhFOCwweDE2LDB4RkUsMHgzMywweEMwLDB4QkUsMHg1QSwweDA1LDB4RTgsCi0weDhBLDB4M0MsMHhFOCwweEEzLDB4RkUsMHhFOCwweEUwLDB4RkMsMHhGQiwweEJFLDB4QTQsMHg0NCwweEU4LDB4N0QsMHgzQywweEU5LAotMHhDQSwweDJELDB4NTYsMHg5OCwweDhCLDB4RjAsMHg4QiwweDQyLDB4NTIsMHg4NSwweEMwLDB4NzUsMHgyNywweEM3LDB4NDIsMHg1MiwKLTB4MDEsMHgwMCwweDUzLDB4MzYsMHg4QiwweDlDLDB4MkMsMHgwMSwweEY2LDB4QzMsMHgwMSwweDc1LDB4MEMsMHgzNiwweDg5LDB4NjgsCi0weDUyLDB4MzYsMHg4OSwweEFDLDB4MkMsMHgwMSwweDVCLDB4NUUsMHhDMywweDM2LDB4ODksMHhBQywweDJDLDB4MDEsMHgzNiwweDg5LAotMHhBQywweDFDLDB4MDEsMHg1QiwweDVFLDB4QzMsMHg1NiwweDk4LDB4OEIsMHhGMCwweDMzLDB4RUQsMHgzNiwweDhCLDB4ODQsMHgxQywKLTB4MDEsMHhBOCwweDAxLDB4NzUsMHgxNSwweDhCLDB4RTgsMHgzMywweEMwLDB4ODcsMHg0MiwweDUyLDB4MzYsMHg4OSwweDg0LDB4MUMsCi0weDAxLDB4QTgsMHgwMSwweDc0LDB4MDUsMHgzNiwweDg5LDB4ODQsMHgyQywweDAxLDB4NUUsMHhDMywweDU2LDB4NTEsMHgzMywweEY2LAotMHhCOCwweDAxLDB4MDAsMHhCOSwweDA4LDB4MDAsMHg4OSwweDg0LDB4MUMsMHgwMSwweDg5LDB4ODQsMHgyQywweDAxLDB4NDYsMHg0NiwKLTB4RTIsMHhGNCwweDU5LDB4NUUsMHhDMywweDkwLDB4QkIsMHgwMSwweDAwLDB4OEIsMHhFOCwweEZGLDB4NEUsMHg2RSwweDc0LDB4MEEsCi0weDhCLDB4REQsMHg4QiwweDQ2LDB4NTgsMHhBOCwweDAxLDB4NzQsMHhGMCwweEMzLDB4OEIsMHg0NiwweDQ4LDB4QTksMHgwOCwweDAwLAotMHg3NCwweDQ1LDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc0LDB4MjcsMHhFOCwweDVDLDB4MTAsMHg4MCwweEMyLDB4MDYsMHg4QSwKLTB4ODYsMHhBOCwweDAwLDB4MjQsMHhCRiwweDg4LDB4ODYsMHhBOCwweDAwLDB4RUUsMHg2MCwweEIwLDB4RkUsMHhFOCwweDg2LDB4MzIsCi0weDYxLDB4QjAsMHgwMiwweEU4LDB4NEMsMHhGRiwweDhCLDB4NDYsMHg0OCwweDI0LDB4RjcsMHg4OSwweDQ2LDB4NDgsMHhFQiwweDE3LAotMHhFOCwweDJBLDB4MTAsMHg4MSwweDRFLDB4MjYsMHgwMCwweDQwLDB4OEEsMHg4NiwweEE1LDB4MDAsMHgwQywweDAyLDB4ODgsMHg4NiwKLTB4QTUsMHgwMCwweEU2LDB4MEMsMHg4QiwweDQ2LDB4NDgsMHhBOSwweDA0LDB4MDAsMHg3NCwweDE0LDB4QjAsMHgwMiwweEU4LDB4MjEsCi0weEZGLDB4OEIsMHg0NiwweDQ4LDB4MjQsMHhGQiwweDg5LDB4NDYsMHg0OCwweDYwLDB4QjAsMHhERiwweEU4LDB4NDcsMHgzMiwweDYxLAotMHgzMywweEMwLDB4ODcsMHg0NiwweDU4LDB4RjYsMHhDMywweDAxLDB4NzUsMHgwQiwweDM2LDB4ODksMHg0NywweDU4LDB4QTgsMHgwMSwKLTB4NzUsMHgwRCwweEU5LDB4NzQsMHhGRiwweEEzLDB4MjIsMHgwMSwweEE4LDB4MDEsMHg3NSwweDAzLDB4RTksMHg2QSwweEZGLDB4ODksCi0weDFFLDB4MzIsMHgwMSwweEMzLDB4QkIsMHgwMSwweDAwLDB4OEIsMHhFOCwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsMHg3NCwweDE1LAotMHhFOCwweEQ1LDB4MEYsMHg4MCwweEMyLDB4MEEsMHhFQywweEE4LDB4NDAsMHg3NSwweDBBLDB4OEIsMHhERCwweDhCLDB4NDYsMHg1NiwKLTB4QTgsMHgwMSwweDc0LDB4RTMsMHhDMywweDhCLDB4NDYsMHgyNiwweDgwLDB4RTQsMHhGRSwweDgwLDB4Q0MsMHgwMiwweDg5LDB4NDYsCi0weDI2LDB4QjAsMHgwMiwweEU4LDB4QkMsMHhGRSwweDMzLDB4QzAsMHg4NywweDQ2LDB4NTYsMHhGNiwweEMzLDB4MDEsMHg3NSwweDBBLAotMHgzNiwweDg5LDB4NDcsMHg1NiwweEE4LDB4MDEsMHg3NSwweDBCLDB4RUIsMHhCRCwweEEzLDB4MjAsMHgwMSwweEE4LDB4MDEsMHg3NSwKLTB4MDIsMHhFQiwweEI0LDB4ODksMHgxRSwweDMwLDB4MDEsMHhDMywweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTAsCi0weDkwLDB4MTIsMHg4NCwweEMwLDB4NzUsMHg0OSwweEExLDB4MjIsMHgwMSwweEE4LDB4MDEsMHg3NSwweDAzLDB4RTgsMHhGNiwweEZFLAotMHhBMSwweDIwLDB4MDEsMHhBOCwweDAxLDB4NzUsMHgwMywweEU4LDB4OEEsMHhGRiwweEExLDB4QUMsMHgxMywweDQ4LDB4NzgsMHgwNSwKLTB4NzQsMHg0NSwweEEzLDB4QUMsMHgxMywweEExLDB4QUUsMHgxMywweDQ4LDB4NzgsMHgwNSwweDc0LDB4NTEsMHhBMywweEFFLDB4MTMsCi0weEExLDB4QjAsMHgxMywweDQ4LDB4NzgsMHgwNSwweDc0LDB4NjMsMHhBMywweEIwLDB4MTMsMHhBMSwweDdFLDB4MTIsMHg0MCwweDc4LAotMHgwMywweEEzLDB4N0UsMHgxMiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHhBMCwKLTB4OTEsMHgxMiwweDQwLDB4M0MsMHgwMiwweDcyLDB4MEIsMHgzMywweEMwLDB4QTIsMHg5MSwweDEyLDB4RkYsMHgxNiwweDdDLDB4MTIsCi0weEVCLDB4QTQsMHhBMiwweDkxLDB4MTIsMHhFQiwweDlGLDB4QTAsMHg4RSwweDEyLDB4MzIsMHgwNiwweDhGLDB4MTIsMHhBMiwweDhFLAotMHgxMiwweDBBLDB4MDYsMHgxQSwweDAxLDB4QkEsMHgwMCwweDAxLDB4RUUsMHhCOCwweDJDLDB4MDEsMHhFQiwweEE0LDB4ODMsMHgzRSwKLTB4ODQsMHgxMiwweDEwLDB4NzIsMHgxMSwweEJBLDB4MjgsMHhGRiwweEVELDB4MEMsMHg4MSwweEVGLDB4RTgsMHg1MywweDM3LDB4QkEsCi0weDI4LDB4RkYsMHhFRCwweDI0LDB4N0UsMHhFRiwweEI4LDB4MDQsMHgwMCwweEVCLDB4OTIsMHhDNiwweDA2LDB4OEQsMHgxMiwweDAxLAotMHhFOCwweDNGLDB4MzcsMHhDNiwweDA2LDB4OEQsMHgxMiwweDAwLDB4QTEsMHhCMiwweDEzLDB4RUIsMHg4QiwweDkwLDB4OEEsMHgxRSwKLTB4MEIsMHgwMSwweDJBLDB4RkYsMHg2QiwweEMzLDB4MTksMHhCQSwweDYyLDB4RkYsMHhFRiwweEI4LDB4MEEsMHgwMCwweEJBLDB4NjAsCi0weEZGLDB4RUYsMHhCOCwweDAxLDB4RTAsMHhCQSwweDY2LDB4RkYsMHhFRiwweEI4LDB4RkYsMHhGRiwweEJBLDB4NTIsMHhGRiwweEVGLAotMHhCOCwweDA5LDB4QzAsMHhCQSwweDU2LDB4RkYsMHhFRiwweEM3LDB4MDYsMHhBQywweDEzLDB4MkMsMHgwMSwweEM3LDB4MDYsMHhBRSwKLTB4MTMsMHgwNCwweDAwLDB4QzYsMHgwNiwweDkxLDB4MTIsMHgwMCwweEMzLDB4OTAsMHg4QSwweDFFLDB4MEIsMHgwMSwweDJBLDB4RkYsCi0weDZCLDB4QzMsMHgwNSwweEQxLDB4RTgsMHhBMywweDE4LDB4MDEsMHhDMywweDkwLDB4NTIsMHhCQSwweDUwLDB4RkYsMHhFRCwweDVBLAotMHhDMywweDkwLDB4NTMsMHg1MSwweDhCLDB4MUUsMHgxOCwweDAxLDB4QjksMHgzMiwweDA1LDB4OTAsMHhFMiwweEZFLDB4NEIsMHg3NSwKLTB4RjcsMHg1OSwweDVCLDB4QzMsMHhCMCwweDgwLDB4QkEsMHgwMCwweDAxLDB4MEEsMHgwNiwweDFBLDB4MDEsMHhFRSwweEMzLDB4OTAsCi0weEIwLDB4NDAsMHhFQiwweEYyLDB4QjAsMHhDMCwweEVCLDB4RUUsMHhCMCwweDAwLDB4RUIsMHhFQSwweEZBLDB4NjAsMHgwNiwweDFFLAotMHgxNiwweDJCLDB4REIsMHg4RSwweERCLDB4MkUsMHhBMSwweEJBLDB4NEMsMHgyRSwweEEzLDB4OTIsMHg0QywweEEwLDB4OTMsMHgxMiwKLTB4OTgsMHg4QiwweEU4LDB4ODksMHgyNiwweDJELDB4N0EsMHg4MCwweDNFLDB4Q0EsMHgxMywweDAwLDB4NzQsMHgwMywweEU5LDB4NkIsCi0weDQyLDB4RTgsMHhDMCwweEZGLDB4RTgsMHhBQiwweEZGLDB4RTgsMHhBOCwweEZGLDB4QjAsMHgyMCwweEM2LDB4MDYsMHg5MCwweDEyLAotMHgwMCwweEZGLDB4MTYsMHg3QywweDEyLDB4OEIsMHhGRCwweDgzLDB4RkYsMHgwQSwweDcyLDB4MTEsMHhFOCwweEI5LDB4RkYsMHhFOCwKLTB4OTAsMHhGRiwweEU4LDB4QUIsMHhGRiwweEU4LDB4OEEsMHhGRiwweDgzLDB4RUYsMHgwQSwweEVCLDB4RUEsMHgwQiwweEZGLDB4NzQsCi0weDBGLDB4RTgsMHhBNCwweEZGLDB4RTgsMHg3QiwweEZGLDB4RTgsMHg5QSwweEZGLDB4RTgsMHg3NSwweEZGLDB4NEYsMHg3NSwweEYxLAotMHhFOCwweDk1LDB4RkYsMHhFOCwweDZDLDB4RkYsMHhFQiwweEI5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEZELDB4RUUsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4QzMsMHg4QSwweDg2LDB4QTYsMHgwMCwweDBDLDB4MDIsMHhFRSwweEMzLDB4OEIsMHg3NiwweDM4LDB4RjcsCi0weEM2LDB4MDEsMHgwMCwweDc0LDB4RUYsMHg4QiwweDRFLDB4MzYsMHg4QiwweDQ2LDB4MkUsMHgzQiwweEMxLDB4NzMsMHgwMiwweDhCLAotMHhDOCwweDJCLDB4QzEsMHg4OSwweDQ2LDB4MkUsMHgwMSwweDRFLDB4MzQsMHhDNCwweDdFLDB4MDQsMHgyNiwweDAxLDB4MEQsMHg4QiwKLTB4N0UsMHgyQywweDgzLDB4RUEsMHgwNCwweEYzLDB4NkMsMHg4RSwweEMxLDB4ODksMHg3RSwweDJDLDB4M0IsMHg0NiwweDNDLDB4NzIsCi0weDEyLDB4RjcsMHhDNiwweDIwLDB4MDAsMHg3NSwweDBCLDB4ODMsMHhDRSwweDIwLDB4ODksMHg3NiwweDM4LDB4QjAsMHgwMCwweEU4LAotMHhBMCwweEZDLDB4QzMsMHhGNywweEM2LDB4MDQsMHgwMCwweDc0LDB4MUIsMHg4QiwweEQ4LDB4ODMsMHhDRSwweDEwLDB4ODksMHg3NiwKLTB4MzgsMHg4QSwweDg2LDB4QTcsMHgwMCwweDI0LDB4RkUsMHg4OCwweDg2LDB4QTcsMHgwMCwweDgzLDB4QzIsMHgwOCwweEVFLDB4ODMsCi0weEVBLDB4MDgsMHg4QiwweEMzLDB4M0QsMHg0MCwweDAwLDB4NzIsMHgwMSwweEMzLDB4ODEsMHg0RSwweDM4LDB4MDAsMHgwNCwweDgzLAotMHhDMiwweDAyLDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEZBLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFRSwweEMzLDB4OEEsMHg4NiwKLTB4QTYsMHgwMCwweDBDLDB4MDIsMHhFRSwweEMzLDB4RjcsMHg0NiwweDM4LDB4MDEsMHgwMCwweDc0LDB4RjEsMHg4QiwweDRFLDB4MkUsCi0weDMyLDB4REIsMHg4QSwweEJFLDB4QTMsMHgwMCwweDgzLDB4QzIsMHgwNiwweEM0LDB4NzYsMHgwNCwweDhCLDB4N0UsMHgyQywweDgzLAotMHhGOSwweDA4LDB4NzIsMHgyQywweEVDLDB4QTgsMHgwMSwweDc0LDB4MTYsMHg4QSwweEUwLDB4ODMsMHhFQSwweDBBLDB4RUMsMHg4MywKLTB4QzIsMHgwQSwweDg0LDB4RTcsMHg3NSwweDUxLDB4QUEsMHhGRSwweEMzLDB4NDksMHg4MywweEY5LDB4MDgsMHg3MywweEU1LDB4MzIsCi0weEZGLDB4MjYsMHgwMSwweDFDLDB4MDEsMHg1RSwweDM0LDB4ODksMHg3NiwweDA0LDB4ODksMHg0RSwweDJFLDB4ODksMHg3RSwweDJDLAotMHgzQiwweDRFLDB4M0MsMHg3MiwweDExLDB4RjYsMHg0NiwweDM4LDB4MjAsMHg3NCwweDAxLDB4QzMsMHg4MywweDRFLDB4MzgsMHgyMCwKLTB4QjAsMHgwMCwweEU4LDB4RkQsMHhGQiwweEMzLDB4RjYsMHg0NiwweDM4LDB4MDQsMHg3NCwweDE1LDB4ODMsMHg0RSwweDM4LDB4MTAsCi0weDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweDg4LDB4ODYsMHhBNywweDAwLDB4ODMsMHhFQSwweDAyLDB4RUUsMHg4MywweEMyLAotMHgwMiwweDNELDB4NDAsMHgwMCwweDcyLDB4NUQsMHhDMywweDMyLDB4RkYsMHgyNiwweDAzLDB4MUMsMHg4NSwweERCLDB4NzQsMHgwOSwKLTB4MjYsMHg4OSwweDFDLDB4OEIsMHhGNywweDQ3LDB4NDcsMHg0OSwweDQ5LDB4ODAsMHhFNCwweDFFLDB4ODAsMHhDQywweEMwLDB4MjYsCi0weDg5LDB4MDQsMHhGNiwweEM0LDB4MTAsMHg3NCwweDI3LDB4OEIsMHg3NiwweDM4LDB4RjcsMHhDNiwweDAwLDB4MTAsMHg3NCwweDBCLAotMHg1MCwweEZFLDB4ODYsMHhCMiwweDAwLDB4QjAsMHgwQSwweEU4LDB4QTgsMHhGQiwweDU4LDB4RjcsMHhDNiwweDAwLDB4MDEsMHg3NCwKLTB4MEQsMHhFOCwweDgyLDB4MjYsMHg4QiwweDc2LDB4MzgsMHg4QiwweDRFLDB4MkUsMHg4QiwweDdFLDB4MDQsMHhBQiwweDhCLDB4RjcsCi0weDMzLDB4QzAsMHhBQiwweDMyLDB4REIsMHg4QSwweEJFLDB4QTMsMHgwMCwweDQ5LDB4NDksMHg4MywweEY5LDB4MDgsMHg3MiwweDE3LAotMHhFOSwweDQxLDB4RkYsMHg4MSwweDRFLDB4MzgsMHgwMCwweDA0LDB4ODMsMHhDMiwweEY4LDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwKLTB4RkEsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4QzMsMHhFOSwweDQ1LDB4RkYsMHg4MywweEMyLDB4MDgsMHhFQywweDg4LDB4ODYsCi0weEFBLDB4MDAsMHhDMCwweEU4LDB4MDQsMHg4QSwweEUwLDB4OEEsMHhDOCwweDg2LDB4ODYsMHhBOSwweDAwLDB4MzIsMHhFMCwweDhCLAotMHg1RSwweDNFLDB4ODQsMHhFMywweDc0LDB4NEYsMHg4QSwweEMxLDB4OEIsMHg0RSwweDI2LDB4RjYsMHhDNSwweDA0LDB4NzQsMHgwQywKLTB4QTgsMHgwOCwweDc0LDB4MDUsMHg4MCwweEUxLDB4QkYsMHhFQiwweDAzLDB4ODAsMHhDOSwweDQwLDB4RjYsMHhDNSwweDA4LDB4NzQsCi0weDBDLDB4QTgsMHgwMiwweDc0LDB4MDUsMHg4MCwweEUxLDB4N0YsMHhFQiwweDAzLDB4ODAsMHhDOSwweDgwLDB4ODgsMHg0RSwweDI2LAotMHg4QiwweEYwLDB4OEEsMHg4NiwweEE1LDB4MDAsMHg4NCwweEM5LDB4NzQsMHgwOCwweEE4LDB4MDIsMHg3NCwweDE1LDB4MjQsMHhGRCwKLTB4RUIsMHgwNiwweEE4LDB4MDIsMHg3NSwweDBELDB4MEMsMHgwMiwweDg4LDB4ODYsMHhBNSwweDAwLDB4ODMsMHhFQSwweDBBLDB4RUUsCi0weDgzLDB4QzIsMHgwQSwweDhCLDB4QzYsMHg4NCwweEU3LDB4NzUsMHgwMSwweEMzLDB4QzYsMHg4NiwweEJBLDB4MDAsMHgwMSwweEIwLAotMHgwRSwweEU4LDB4RUUsMHhGQSwweEY3LDB4NDYsMHgzOCwweDAwLDB4MDIsMHg3NCwweEVFLDB4ODMsMHg3RSwweDJFLDB4MDYsMHg3MiwKLTB4RTgsMHg4QSwweEE2LDB4QUEsMHgwMCwweEM0LDB4NUUsMHgwNCwweDhCLDB4N0UsMHgyQywweEIwLDB4RkYsMHhBQSwweEIwLDB4MDIsCi0weEFCLDB4MjYsMHg4MywweDA3LDB4MDMsMHg4MywweDZFLDB4MkUsMHgwMywweDg5LDB4N0UsMHgyQywweEY2LDB4NDYsMHgzOCwweDIwLAotMHg3NCwweDAxLDB4QzMsMHg4MywweDRFLDB4MzgsMHgyMCwweEIwLDB4MDAsMHhFOCwweEI2LDB4RkEsMHhDMywweDkwLDB4ODMsMHhFQSwKLTB4MDgsMHhFOSwweEI0LDB4RkQsMHg4MywweEMyLDB4MDYsMHg4QiwweDVFLDB4MjYsMHhGNiwweEMzLDB4QzAsMHg3NSwweEVGLDB4OEIsCi0weDRFLDB4MUMsMHhFQywweDg4LDB4ODYsMHhBNCwweDAwLDB4ODMsMHhFQSwweDBBLDB4QTgsMHgyMCwweDc1LDB4MDIsMHg4QSwweENELAotMHgzMiwweEVELDB4OEIsMHg0NiwweDFBLDB4M0IsMHhDOCwweDczLDB4MTgsMHgwMSwweDRFLDB4MkEsMHgyQiwweEMxLDB4ODksMHg0NiwKLTB4MUEsMHhDNSwweDc2LDB4MDAsMHhGMywweDZFLDB4OEUsMHhEOSwweDg5LDB4NzYsMHgwMCwweDNELDB4MjAsMHgwMCwweDcyLDB4MzAsCi0weEMzLDB4ODUsMHhDMCwweDc0LDB4MzEsMHg4QiwweEM4LDB4MDEsMHg0NiwweDJBLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDhFLAotMHhEOSwweDgwLDB4Q0IsMHgwMiwweDg5LDB4NUUsMHgyNiwweEU4LDB4MzIsMHhGMSwweEY2LDB4QzcsMHgwMSwweDc1LDB4MTYsMHg4MywKLTB4QzIsMHgwMiwweEU4LDB4NTMsMHhGRCwweEY2LDB4QzcsMHgxMCwweDc1LDB4MEIsMHhCMCwweDAyLDB4RTgsMHg0MywweEZBLDB4QzMsCi0weEY2LDB4QzcsMHgwMSwweDc0LDB4RjAsMHhDMywweDgwLDB4Q0IsMHgwMiwweDg5LDB4NUUsMHgyNiwweEY2LDB4QzcsMHgwMSwweDc0LAotMHhERSwweDgzLDB4QzIsMHgwMiwweEU4LDB4MzEsMHhGRCwweEY2LDB4ODYsMHhBNCwweDAwLDB4NDAsMHg3NCwweDBCLDB4ODAsMHhFNywKLTB4RkUsMHg4MCwweENGLDB4MDIsMHg4OSwweDVFLDB4MjYsMHhFQiwweENDLDB4QjAsMHgwNCwweEU4LDB4MTQsMHhGQSwweEMzLDB4QzAsCi0weEMyLDB4QzgsMHhDQSwweEM0LDB4QzYsMHhDQywweENFLDB4RDAsMHhEMiwweEQ4LDB4REEsMHhENCwweEQ2LDB4REMsMHhERSwweDkwLAotMHhFOSwweDBFLDB4MDEsMHhFNCwweEM0LDB4OEEsMHhFMCwweEU0LDB4QzQsMHg4QiwweEQwLDB4ODMsMHhGOSwweDA4LDB4NzIsMHhGMCwKLTB4MjYsMHg4MywweDNGLDB4MDAsMHg3NCwweDA0LDB4OEIsMHhERiwweDQ5LDB4NDksMHg4QiwweEZCLDB4OEEsMHhERSwweDgzLDB4RTMsCi0weDBGLDB4MkUsMHg4QSwweEE3LDB4MkYsMHgxNiwweEFCLDB4RjYsMHhDNCwweDEwLDB4NzQsMHgyNCwweEY3LDB4QzYsMHgwMCwweDEwLAotMHg3NCwweDBCLDB4NTAsMHhGRSwweDg2LDB4QjIsMHgwMCwweEIwLDB4MEEsMHhFOCwweEM2LDB4RjksMHg1OCwweEY3LDB4QzYsMHgwMCwKLTB4MDEsMHg3NCwweDBELDB4RTgsMHhBMCwweDI0LDB4OEIsMHg3NiwweDM4LDB4OEIsMHg0RSwweDJFLDB4OEIsMHg3RSwweDA0LDB4QUIsCi0weDg5LDB4N0UsMHgwNCwweDMzLDB4QzAsMHhBQiwweDQ5LDB4NDksMHg4OSwweDRFLDB4MkUsMHg4OSwweDdFLDB4MkMsMHg4QiwweEMxLAotMHhFQiwweDRFLDB4OTAsMHhFQiwweDlFLDB4OTAsMHhFNCwweEQ2LDB4ODQsMHhDMCwweDc5LDB4NjMsMHhFNiwweEQwLDB4OEEsMHhDOCwKLTB4MjUsMHgwMywweDAwLDB4MDMsMHhEOCwweEQxLDB4RTMsMHgyRSwweDhCLDB4QUYsMHg0NCwweDAwLDB4ODgsMHg4RSwweEFFLDB4MDAsCi0weDhCLDB4NEUsMHgyRSwweEM0LDB4NUUsMHgwNCwweDhCLDB4N0UsMHgyQywweDhCLDB4NzYsMHgzOCwweEU0LDB4ODYsMHgyNCwweDA3LAotMHgzQywweDAzLDB4NzUsMHhDRiwweEU0LDB4MUMsMHg5MSwweDNCLDB4QzEsMHg3MywweDAyLDB4OEIsMHhDOCwweDJCLDB4QzEsMHg4OSwKLTB4NDYsMHgyRSwweDAxLDB4NEUsMHgzNCwweDI2LDB4MDEsMHgwRiwweEJBLDB4QzQsMHgwMCwweEYzLDB4NkMsMHg4OSwweDdFLDB4MkMsCi0weDNCLDB4NDYsMHgzQywweDcyLDB4MUMsMHhGNywweEM2LDB4MjAsMHgwMCwweDc1LDB4MEIsMHg4MywweENFLDB4MjAsMHg4OSwweDc2LAotMHgzOCwweEIwLDB4MDAsMHhFOCwweDNDLDB4RjksMHg4QSwweDg2LDB4QUUsMHgwMCwweDI0LDB4M0YsMHhFNiwweEQ2LDB4QzMsMHhGOSwKLTB4QzMsMHhGNywweEM2LDB4MEEsMHgwMCwweDc0LDB4MzUsMHhGNywweEM2LDB4MTAsMHgwMCwweDc1LDB4MkYsMHg4MywweENFLDB4MTAsCi0weDg5LDB4NzYsMHgzOCwweEY3LDB4QzYsMHgwMiwweDAwLDB4NzQsMHgwRSwweDUwLDB4RTQsMHhEOCwweDI0LDB4RkUsMHhFNiwweEQ4LAotMHg1OCwweEY3LDB4QzYsMHgwOCwweDAwLDB4NzQsMHgxNSwweDUwLDB4NTEsMHhCOSwweEU4LDB4MDMsMHhFNCwweDBBLDB4ODQsMHhDMCwKLTB4RTAsMHhGQSwweDg0LDB4QzAsMHg3NSwweDA0LDB4QjAsMHgyNCwweEU2LDB4MEEsMHg1OSwweDU4LDB4M0QsMHg0MCwweDAwLDB4NzMsCi0weEI1LDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEVGLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4ODEsMHhDRSwweDEwLAotMHgwNCwweDg5LDB4NzYsMHgzOCwweEVCLDB4QTAsMHgwMCwweDA4LDB4MDQsMHgwQywweDAxLDB4MDksMHgwNSwweDBELDB4MDIsMHgwQSwKLTB4MDYsMHgwRSwweDAzLDB4MEIsMHgwNywweDBGLDB4MDAsMHg0MCwweDgwLDB4QzAsMHgyMCwweDYwLDB4QTAsMHhFMCwweDEwLDB4NTAsCi0weDkwLDB4RDAsMHgzMCwweDcwLDB4QjAsMHhGMCwweEU0LDB4RDIsMHhFNiwweEQwLDB4OEEsMHhDOCwweDI1LDB4MDMsMHgwMCwweDAzLAotMHhEOCwweEQxLDB4RTMsMHgyRSwweDhCLDB4QUYsMHg0NCwweDAwLDB4ODgsMHg4RSwweEFFLDB4MDAsMHhFNCwweEQ4LDB4QzAsMHhFOCwKLTB4MDQsMHg4QiwweEQ4LDB4MkUsMHg4QSwweDg3LDB4NjYsMHgxNywweDhBLDB4RTAsMHg4QSwweEM4LDB4ODYsMHg4NiwweEE5LDB4MDAsCi0weDMyLDB4RTAsMHhFNCwweDk4LDB4OEIsMHg1RSwweDNFLDB4ODQsMHhFMywweDc0LDB4NTQsMHg4QSwweEMxLDB4OEIsMHg0RSwweDI2LAotMHhGNiwweEM1LDB4MDQsMHg3NCwweDBDLDB4QTgsMHgwOCwweDc0LDB4MDUsMHg4MCwweEUxLDB4QkYsMHhFQiwweDAzLDB4ODAsMHhDOSwKLTB4NDAsMHhGNiwweEM1LDB4MDgsMHg3NCwweDBDLDB4QTgsMHgwMiwweDc0LDB4MDUsMHg4MCwweEUxLDB4N0YsMHhFQiwweDAzLDB4ODAsCi0weEM5LDB4ODAsMHg4OCwweDRFLDB4MjYsMHg4QiwweEYwLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhGNiwweEMxLDB4RkQsMHg3NCwweDA4LAotMHhBOCwweDA2LDB4NzQsMHgxOSwweDI0LDB4RjksMHhFQiwweDBGLDB4QTgsMHgwNiwweDc1LDB4MTEsMHhGNiwweEM1LDB4MDEsMHg3NSwKLTB4MDQsMHgwQywweDA0LDB4RUIsMHgwMiwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4QiwweEM2LDB4ODQsCi0weEU3LDB4NzUsMHgwOSwweDhBLDB4ODYsMHhBRSwweDAwLDB4MjQsMHgzRiwweEU2LDB4RDIsMHhDMywweEM2LDB4ODYsMHhCQSwweDAwLAotMHgwMSwweEIwLDB4MEUsMHhFOCwweDFDLDB4RjgsMHhGNywweDQ2LDB4MzgsMHgwMCwweDAyLDB4NzQsMHhFNiwweDgzLDB4N0UsMHgyRSwKLTB4MDYsMHg3MiwweEUwLDB4OEEsMHg4NiwweEE5LDB4MDAsMHg4QSwweEUwLDB4ODYsMHg4NiwweEFBLDB4MDAsMHg4QSwweEM4LDB4MzIsCi0weEM0LDB4ODAsMHhDOSwweDBCLDB4MjIsMHhDMSwweEMwLDB4RTQsMHgwNCwweDBBLDB4RTAsMHhDNCwweDVFLDB4MDQsMHg4QiwweDdFLAotMHgyQywweEIwLDB4RkYsMHhBQSwweEIwLDB4MDIsMHhBQiwweDI2LDB4ODMsMHgwNywweDAzLDB4ODMsMHg2RSwweDJFLDB4MDMsMHg4OSwKLTB4N0UsMHgyQywweEY2LDB4NDYsMHgzOCwweDIwLDB4NzUsMHhBQiwweDgzLDB4NEUsMHgzOCwweDIwLDB4QjAsMHgwMCwweEU4LDB4RDEsCi0weEY3LDB4RUIsMHhBMCwweDkwLDB4RTQsMHgxMiwweDI0LDB4REYsMHhFNiwweDEyLDB4ODEsMHhFMywweEZFLDB4OUYsMHg4OSwweDVFLAotMHgyNiwweDgzLDB4NjYsMHg0OCwweEY3LDB4RUIsMHg3MywweDkwLDB4RjYsMHhDNywweDIwLDB4NzUsMHhFNywweEU0LDB4MTIsMHgwQywKLTB4MjAsMHhFNiwweDEyLDB4MzIsMHhDMCwweEU2LDB4QzYsMHhCMCwweDgzLDB4RTYsMHhDNiwweDgwLDB4Q0YsMHgyMCwweDg5LDB4NUUsCi0weDI2LDB4OEEsMHg4NiwweEE1LDB4MDAsMHgwQywweDAyLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4RUIsMHg3NCwweDkwLAotMHhGNiwweEM3LDB4NDAsMHg3NSwweEQzLDB4RTQsMHgxMiwweDBDLDB4MjAsMHhFNiwweDEyLDB4MzIsMHhDMCwweEU2LDB4QzYsMHhCMCwKLTB4ODEsMHhFNiwweEM2LDB4ODAsMHhFNywweERGLDB4ODAsMHhDQiwweDAxLDB4ODksMHg1RSwweDI2LDB4QjAsMHgwNiwweEU4LDB4NzEsCi0weEY3LDB4OTAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RjksMHhFNiwweDBDLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFQiwweDQzLAotMHhFNCwweEQ0LDB4RTYsMHhEMCwweDhCLDB4RjgsMHgyNSwweDAzLDB4MDAsMHgwMywweEQ4LDB4RDEsMHhFMywweDJFLDB4OEIsMHhBRiwKLTB4NDQsMHgwMCwweDhCLDB4NUUsMHgyNiwweEY2LDB4QzcsMHg2MCwweDc1LDB4QjYsMHhGNiwweEMzLDB4QzAsMHg3NSwweEQzLDB4QkEsCi0weEM2LDB4MDAsMHg4QiwweDRFLDB4MUMsMHg4QiwweDQ2LDB4MUEsMHgzQiwweEM4LDB4NzMsMHgxRSwweDAxLDB4NEUsMHgyQSwweDJCLAotMHhDMSwweDg5LDB4NDYsMHgxQSwweEM1LDB4NzYsMHgwMCwweEYzLDB4NkUsMHg4RSwweEQ5LDB4ODksMHg3NiwweDAwLDB4M0QsMHgyMCwKLTB4MDAsMHg3MiwweDNELDB4OEIsMHhDNywweDI0LDB4M0YsMHhFNiwweEQ0LDB4QzMsMHg4NSwweEMwLDB4NzQsMHgzOSwweDhCLDB4QzgsCi0weDAxLDB4NDYsMHgyQSwweEM1LDB4NzYsMHgwMCwweEYzLDB4NkUsMHg4RSwweEQ5LDB4ODMsMHhDQiwweDAyLDB4ODksMHg1RSwweDI2LAotMHhFOCwweEQ5LDB4RUQsMHhGNiwweEM3LDB4MDEsMHg3NSwweDM5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEY5LDB4RTYsMHgwQywKLTB4ODgsMHg4NiwweEE1LDB4MDAsMHhGNiwweEM3LDB4MTAsMHg3NSwweENBLDB4QjAsMHgwMiwweEU4LDB4RTQsMHhGNiwweEVCLDB4QzMsCi0weEY2LDB4QzcsMHgwMSwweDc0LDB4RUYsMHhFQiwweEJDLDB4RjYsMHhDNywweDAxLDB4NzQsMHhEQywweDhBLDB4ODYsMHhBNSwweDAwLAotMHhBOCwweDAyLDB4NzQsMHgxMSwweDgxLDB4RTMsMHhGRiwweEZFLDB4ODEsMHhDQiwweDAwLDB4MDIsMHg4OSwweDVFLDB4MjYsMHhFQiwKLTB4QzcsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkIsMHgwQywweDAyLDB4RTYsMHgwQywweDg4LDB4ODYsMHhBNSwweDAwLDB4RUIsCi0weDkyLDB4OTAsMHhGRCwweEY3LDB4REYsMHg3RiwweEZFLDB4RkIsMHhFRiwweEJGLDB4MDAsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDEsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwMiwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwMSwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwMywweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwMSwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDAyLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDAxLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDMzLDB4REIsMHg4QSwweEQ4LDB4OEEsMHg4NywKLTB4NkMsMHgxMiwweEU2LDB4RkUsMHhDMSwweEUzLDB4MDIsMHhFNCwweENFLDB4QTgsMHgwNCwweDc1LDB4MDksMHhBOCwweDAyLDB4NzQsCi0weDAzLDB4RTksMHgyQywweEZFLDB4RjksMHhDMywweDUwLDB4NTMsMHhFOCwweENCLDB4RkMsMHg1QiwweDU4LDB4QTgsMHgwMiwweDc0LAotMHgwMywweEU5LDB4MUMsMHhGRSwweEY4LDB4QzMsMHgzMywweERCLDB4OEEsMHhEOCwweDhBLDB4ODcsMHg2QywweDEyLDB4RTYsMHhGRSwKLTB4QzEsMHhFMywweDAyLDB4RTksMHhEMCwweEZCLDB4OUEsMHgxQSwweEM2LDB4MUEsMHgwMCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBBLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEMsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQSwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBFLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEEsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQywweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBBLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4QzMsMHg5MCwweERBLDB4MTQsMHg5NCwweDE1LAotMHg1QywweDEzLDB4RTYsMHgxMywweERBLDB4MUIsMHhEQSwweDFCLDB4RTYsMHgxMywweERBLDB4MUIsMHg4QiwweDk0LDB4NjQsMHgxMiwKLTB4QzEsMHhFNiwweDA0LDB4QTgsMHgwMSwweDc0LDB4MzUsMHg1MCwweDMzLDB4QzAsMHg4QSwweEMyLDB4RTYsMHhGRSwweEU0LDB4QTAsCi0weDg1LDB4QzAsMHg3NCwweDI3LDB4OEIsMHhEOCwweDJFLDB4OEEsMHg5RiwweERBLDB4MUEsMHg1MiwweDU2LDB4MkUsMHg4QiwweEE4LAotMHg0NCwweDAwLDB4OEIsMHg1NiwweDI4LDB4RUMsMHhBOCwweDAxLDB4NzUsMHgwRCwweDg4LDB4ODYsMHhBRCwweDAwLDB4MjQsMHgwRSwKLTB4OEEsMHhEOCwweDJFLDB4RkYsMHg5NywweERDLDB4MUIsMHg1RSwweDVBLDB4RUIsMHhDRCwweDU4LDB4QTgsMHgwMiwweDc0LDB4MzYsCi0weDgzLDB4QzYsMHgxMCwweDMzLDB4QzAsMHg4QSwweEM2LDB4RTYsMHhGRSwweEU0LDB4QTAsMHg4NSwweEMwLDB4NzQsMHgyNywweDhCLAotMHhEOCwweDJFLDB4OEEsMHg5RiwweERBLDB4MUEsMHg1MiwweDU2LDB4MkUsMHg4QiwweEE4LDB4NDQsMHgwMCwweDhCLDB4NTYsMHgyOCwKLTB4RUMsMHhBOCwweDAxLDB4NzUsMHgwRCwweDg4LDB4ODYsMHhBRCwweDAwLDB4MjQsMHgwRSwweDhBLDB4RDgsMHgyRSwweEZGLDB4OTcsCi0weERDLDB4MUIsMHg1RSwweDVBLDB4RUIsMHhDRCwweEMzLDB4OTAsMHgzMiwweEU0LDB4OEIsMHhEOCwweDhCLDB4RDAsMHgyRSwweDhBLAotMHg5RiwweDlBLDB4MTksMHgyRSwweDIyLDB4OTcsMHg5MiwweDE5LDB4NTYsMHg1MiwweDhBLDB4QzMsMHgyNCwweDAzLDB4MDMsMHhDNiwKLTB4ODAsMHhFMywweDA0LDB4RDAsMHhFQiwweDJFLDB4RkYsMHg5NywweEQ2LDB4MUEsMHg1OCwweDVFLDB4QTksMHg1NSwweDAwLDB4NzUsCi0weEQ5LDB4QzMsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NUMsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLAotMHgyMiwweEM0LDB4NzQsMHgwOCwweDMzLDB4RjYsMHhFOCwweEJGLDB4RkYsMHhFQiwweEVFLDB4OTAsMHhFNCwweDA0LDB4MDcsMHhFNCwKLTB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsCi0weEMwLDB4OEUsMHhEOCwweEExLDB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4MDgsMHhCRSwweDA0LAotMHgwMCwweEU4LDB4OTQsMHhGRiwweEVCLDB4RUQsMHhFNCwweDA0LDB4MDcsMHhFNCwweDA0LDB4MUYsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVDLDB4MTIsCi0weEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4MTgsMHgzMywweEY2LDB4RTgsMHg2QiwweEZGLDB4QTEsMHg2MCwweDEyLAotMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NCwweEU1LDB4QkUsMHgwOCwweDAwLDB4RTgsMHg1QSwweEZGLDB4RUIsMHhERCwKLTB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzUsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsCi0weEExLDB4NUMsMHgxMiwweEU2LDB4RkUsMHhFNCwweDA0LDB4MUYsMHhFNCwweDA0LDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLAotMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwKLTB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NCwweDE5LDB4QkUsMHgwNCwweDAwLDB4RTgsMHgxQywweEZGLDB4QTEsMHg2MiwweDEyLDB4RTYsCi0weEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NCwweEU0LDB4QkUsMHgwQywweDAwLDB4RTgsMHgwQiwweEZGLDB4RUIsMHhEQywweEExLAotMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzUsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHhBMSwKLTB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwweDA0LDB4MUYsMHhFNCwweDA0LDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsCi0weDYxLDB4Q0YsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NUMsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLAotMHg4NCwweEM0LDB4NzQsMHgwOCwweDMzLDB4RjYsMHhFOCwweDUzLDB4RkUsMHhFQiwweEVFLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsCi0weDVFLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDA4LDB4QkUsMHgwMiwweDAwLDB4RTgsMHgyQywweEZFLAotMHhFQiwweEVELDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwKLTB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MDgsCi0weEJFLDB4MDQsMHgwMCwweEU4LDB4MDYsMHhGRSwweEVCLDB4RUQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LAotMHgxRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg2MiwweDEyLDB4RTYsMHhGRSwKLTB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDA4LDB4QkUsMHgwNiwweDAwLDB4RTgsMHhFMCwweEZELDB4RUIsMHhFRCwweEI4LDB4MDAsCi0weDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLAotMHhEOCwweEExLDB4NUMsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4MTgsMHgzMywweEY2LDB4RTgsMHgzNywKLTB4RkUsMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweEU1LDB4QkUsMHgwNCwweDAwLDB4RTgsCi0weEFBLDB4RkQsMHhFQiwweERELDB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzUsMHhFRCwweEExLAotMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwKLTB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NUUsMHgxMiwweEU2LDB4RkUsCi0weEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgxOSwweEJFLDB4MDQsMHgwMCwweEU4LDB4RUMsMHhGRCwweEExLDB4NjIsMHgxMiwweEU2LAotMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHhFNCwweEJFLDB4MDYsMHgwMCwweEU4LDB4NUYsMHhGRCwweEVCLDB4REMsMHhBMSwKLTB4NjIsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc1LDB4RUQsMHhBMSwweDVFLDB4MTIsMHhFNiwweEZFLDB4RTQsCi0weDA0LDB4MDcsMHhFNCwweDA0LDB4MUYsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg2MCwweDFFLAotMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgxOCwKLTB4MzMsMHhGNiwweEU4LDB4MjcsMHhGRCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4RTUsCi0weEJFLDB4MDgsMHgwMCwweEU4LDB4OTIsMHhGRCwweEVCLDB4REQsMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLAotMHhDNCwweDc1LDB4RUQsMHhFNCwweDA0LDB4MDcsMHhFNCwweDA0LDB4MUYsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwKLTB4NjEsMHhDRiwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsCi0weDg0LDB4QzQsMHg3NCwweDE5LDB4QkUsMHgwMiwweDAwLDB4RTgsMHhFMiwweEZDLDB4QTEsMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LAotMHgwMCwweDIyLDB4QzQsMHg3NCwweEU0LDB4QkUsMHgwQywweDAwLDB4RTgsMHg0RCwweEZELDB4RUIsMHhEQywweEExLDB4NjIsMHgxMiwKLTB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzUsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsCi0weDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLAotMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgxOCwweDMzLDB4RjYsMHhFOCwweDlELDB4RkMsMHhBMSwKLTB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4RTUsMHhCRSwweDA0LDB4MDAsMHhFOCwweDhDLDB4RkMsCi0weEVCLDB4REQsMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NSwweEVELDB4MDcsMHgxRiwweEI4LAotMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwKLTB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MTksMHhCRSwweDAyLDB4MDAsMHhFOCwweDVDLDB4RkMsCi0weEExLDB4NjIsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4RTQsMHhCRSwweDA2LDB4MDAsMHhFOCwweDRCLAotMHhGQywweEVCLDB4REMsMHhBMSwweDYyLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NSwweEVELDB4MDcsMHgxRiwKLTB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsCi0weEQ4LDB4OTAsMHgyQSwweEMwLDB4RTYsMHhGRSwweEU0LDB4Q0UsMHhBOCwweDAxLDB4NzQsMHgxNCwweDMzLDB4REIsMHhFOCwweEQ1LAotMHhGNiwweEVCLDB4RUYsMHg5MCwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwKLTB4RjYsMHgwNiwweDA1LDB4MDEsMHgwMSwweDc1LDB4RUQsMHhCMCwweDAxLDB4RTYsMHhGRSwweEU0LDB4Q0UsMHhBOCwweDAxLDB4NzQsCi0weEUzLDB4QkIsMHgwNCwweDAwLDB4RTgsMHhBRiwweEY2LDB4RUIsMHhDOSwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLAotMHhEOCwweDkwLDB4RkIsMHg5MCwweEZBLDB4MkEsMHhDMCwweEU2LDB4RkUsMHhFNCwweENFLDB4QTgsMHgwMiwweDc0LDB4MTMsMHgzMywKLTB4REIsMHhFOCwweENDLDB4RjgsMHhFQiwweEVDLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsCi0weENGLDB4OTAsMHhBOCwweDA0LDB4NzQsMHhGMCwweDMzLDB4REIsMHhFOCwweDVCLDB4RjcsMHhFQiwweEQ1LDB4OTAsMHg2MCwweDFFLAotMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4OTAsMHhGQiwweDkwLDB4RkEsMHhCMCwweDAxLDB4RTYsMHhGRSwweEU0LDB4Q0UsMHhBOCwKLTB4MDIsMHg3NCwweDE1LDB4QkIsMHgwNCwweDAwLDB4RTgsMHg5NywweEY4LDB4RUIsMHhFQiwweDkwLDB4QjgsMHgwMCwweDgwLDB4QkEsCi0weDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHhBOCwweDA0LDB4NzQsMHhGMCwweEJCLDB4MDQsMHgwMCwweEU4LAotMHgyNCwweEY3LDB4RUIsMHhEMiwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MDksMHg5QywweDBFLDB4RTgsMHg2QiwKLTB4RjIsMHg5MCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MjksMHg5QywweDBFLDB4RTgsMHg1RCwweEYyLDB4OTAsCi0weDcyLDB4MjAsMHg3MiwweDIwLDB4NzIsMHgyMCwweENFLDB4MUQsMHg5MiwweDFDLDB4RTYsMHgxQywweDFBLDB4MUUsMHg3MiwweDIwLAotMHg4MiwweDFELDB4QUUsMHgxRSwweDM4LDB4MUYsMHg3MiwweDIwLDB4ODIsMHgxRCwweDcyLDB4MjAsMHg3MiwweDIwLDB4MzgsMHgxRiwKLTB4NzIsMHgyMCwweDcyLDB4MjAsMHg3MiwweDIwLDB4RjQsMHgxRCwweEJDLDB4MUMsMHgzNCwweDFELDB4NjQsMHgxRSwweDcyLDB4MjAsCi0weEE4LDB4MUQsMHhGMiwweDFFLDB4NzgsMHgxRiwweDcyLDB4MjAsMHhBOCwweDFELDB4NzIsMHgyMCwweDcyLDB4MjAsMHg3OCwweDFGLAotMHhGQywweEI5LDB4NDAsMHgwMCwweDhDLDB4Q0IsMHhCOCwweDY0LDB4MjAsMHgyQiwweEZGLDB4QUIsMHg5MywweEFCLDB4OTMsMHhFMiwKLTB4RkEsMHhDNywweDA2LDB4NEMsMHgwMCwweEE4LDB4MTEsMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzUsMHgyMCwweEM3LDB4MDYsCi0weDNDLDB4MDAsMHgwOCwweDRCLDB4QzcsMHgwNiwweDMwLDB4MDAsMHhCQSwweDFGLDB4QzcsMHgwNiwweDM0LDB4MDAsMHhGQSwweDFGLAotMHhGNiwweDA2LDB4MDUsMHgwMSwweDAxLDB4NzUsMHgwNiwweEM3LDB4MDYsMHgzOCwweDAwLDB4MkUsMHgyMCwweEMzLDB4QzcsMHgwNiwKLTB4M0MsMHgwMCwweDU2LDB4NEIsMHgzMywweERCLDB4OEEsMHgxRSwweDU0LDB4MTIsMHhDMSwweEUzLDB4MDIsMHgwMiwweDFFLDB4NTYsCi0weDEyLDB4MkUsMHg4QiwweDg3LDB4ODAsMHgyMCwweEEzLDB4MzAsMHgwMCwweDhBLDB4MUUsMHg1NSwweDEyLDB4QzEsMHhFMywweDAyLAotMHgwMiwweDFFLDB4NTcsMHgxMiwweDJFLDB4OEIsMHg4NywweEEwLDB4MjAsMHhBMywweDM0LDB4MDAsMHhDMywweDhCLDB4ODYsMHg5RSwKLTB4MDAsMHhFNiwweEZFLDB4ODYsMHhDNCwweEU2LDB4RDAsMHhDMywweDhCLDB4ODYsMHg5RSwweDAwLDB4RTYsMHhGRSwweDMzLDB4RDIsCi0weDhBLDB4RDQsMHhDMywweDUxLDB4QjksMHgxMCwweDI3LDB4RTQsMHgwQSwweDkwLDB4OTAsMHg4NCwweEMwLDB4NzQsMHgwNSwweEUyLAotMHhGNiwweDU5LDB4RjksMHhDMywweDU5LDB4RjgsMHhDMywweDg0LDB4QzAsMHg3OCwweDFFLDB4NTEsMHg4QSwweEU4LDB4OEEsMHhDOCwKLTB4QjgsMHgwMSwweDAwLDB4RDMsMHhFMCwweDA5LDB4ODYsMHg5OCwweDAwLDB4M0EsMHhBRSwweEEwLDB4MDAsMHg1OSwweDc1LDB4MTAsCi0weEU4LDB4QTksMHhFNSwweDgzLDB4NEUsMHgyNiwweDAyLDB4RjksMHhDMywweDk4LDB4ODksMHg4NiwweDk4LDB4MDAsMHhFQiwweEYwLAotMHhGOCwweEMzLDB4ODQsMHhDMCwweDc4LDB4MTIsMHg1MSwweDhBLDB4RTAsMHg4QSwweEM4LDB4QjgsMHgwMSwweDAwLDB4RDMsMHhFMCwKLTB4NTksMHhGNywweEQwLDB4MjEsMHg4NiwweDk4LDB4MDAsMHhDMywweEM3LDB4ODYsMHg5OCwweDAwLDB4MDAsMHgwMCwweEMzLDB4ODMsCi0weEMyLDB4MDQsMHg4QSwweDg2LDB4QTYsMHgwMCwweDBDLDB4MDQsMHhFRSwweDgzLDB4RUEsMHgwNCwweEMzLDB4RTgsMHg5MywweEZGLAotMHg3MiwweDA0LDB4QjAsMHg4MiwweEU2LDB4MEEsMHhDMywweDhCLDB4NDYsMHgyNiwweEE4LDB4RkQsMHg3NCwweDExLDB4OEEsMHg4NiwKLTB4QTUsMHgwMCwweEE4LDB4MDYsMHg3NCwweDA4LDB4MjQsMHhGOSwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEMzLDB4RjYsCi0weEM0LDB4MDEsMHg3NCwweDBBLDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEZCLDB4MEMsMHgwMiwweEVCLDB4MEMsMHhBOCwweDAyLAotMHg3NSwweDBGLDB4OEEsMHg4NiwweEE1LDB4MDAsMHgyNCwweEZELDB4MEMsMHgwNCwweDNBLDB4ODYsMHhBNSwweDAwLDB4NzUsMHhEOCwKLTB4QzMsMHg4QSwweDg2LDB4QTUsMHgwMCwweEVCLDB4Q0YsMHhFNCwweEQ4LDB4MzMsMHhEQiwweDhBLDB4RDgsMHhDMCwweEVCLDB4MDQsCi0weDJFLDB4OEEsMHg5RiwweDY2LDB4MTcsMHg4OCwweDlFLDB4QTksMHgwMCwweDhCLDB4NUUsMHgyNiwweDgwLDB4RTMsMHgzRiwweEY2LAotMHhDNywweDA0LDB4NzQsMHgwNywweEE4LDB4MTAsMHg3NSwweDAzLDB4ODAsMHhDQiwweDQwLDB4RjYsMHhDNywweDA4LDB4NzQsMHgwNywKLTB4QTgsMHg4MCwweDc1LDB4MDMsMHg4MCwweENCLDB4NDAsMHg4OCwweDVFLDB4MjYsMHg4QSwweDg2LDB4QTUsMHgwMCwweEY2LDB4QzMsCi0weEZELDB4NzQsMHgwRCwweEE4LDB4MDYsMHg3NCwweDA4LDB4MjQsMHhGOSwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEMzLAotMHhGNiwweEM3LDB4MDEsMHg3NCwweDA0LDB4MEMsMHgwMiwweEVCLDB4RjAsMHhGNiwweEMzLDB4MDIsMHg3NSwweEU5LDB4MEMsMHgwNCwKLTB4RUIsMHhFNywweEM0LDB4MDQsMHhDNCwweDA0LDB4ODUsMHgwNCwweDU5LDB4MDQsMHg0OCwweDA0LDB4NDEsMHgwNCwweEMzLDB4MDMsCi0weDgyLDB4MDMsMHg0MSwweDAzLDB4ODIsMHgwMiwweDU3LDB4MDIsMHg0MSwweDAyLDB4ODIsMHgwMSwweDQxLDB4MDEsMHg4MiwweDAwLAotMHg0MSwweDAwLDB4NEUsMHgwMiwweEFELDB4MDEsMHg1NywweDAxLDB4MkQsMHgwMCwweDJCLDB4MDAsMHgyNywweDAwLDB4MjEsMHgwMCwKLTB4MTYsMHgwMCwweEY0LDB4MDQsMHhGNCwweDA0LDB4QTMsMHgwNCwweDZGLDB4MDQsMHg1QiwweDA0LDB4NTEsMHgwNCwweEY0LDB4MDMsCi0weEEzLDB4MDMsMHg1MSwweDAzLDB4QTMsMHgwMiwweDZELDB4MDIsMHg1MSwweDAyLDB4QTMsMHgwMSwweDUxLDB4MDEsMHhBMywweDAwLAotMHg1MSwweDAwLDB4NjIsMHgwMiwweEQ5LDB4MDEsMHg2RCwweDAxLDB4MzgsMHgwMCwweDM2LDB4MDAsMHgzMSwweDAwLDB4MjksMHgwMCwKLTB4MUIsMHgwMCwweDUxLDB4NTcsMHhCRiwweDAyLDB4MDAsMHhFQiwweDBGLDB4OTAsMHg1MSwweDU2LDB4QkYsMHgwMSwweDAwLDB4RUIsCi0weDA3LDB4OTAsMHg1MSwweDU2LDB4QkYsMHgwMywweDAwLDB4OTAsMHgzQywweDE5LDB4NzYsMHgwMiwweEIwLDB4MTcsMHg5OCwweDhCLAotMHhGMCwweDhBLDB4ODIsMHhDNCwweDAwLDB4MkEsMHhFNCwweDhCLDB4RjAsMHg4MywweEZFLDB4MTgsMHg3MywweDQ2LDB4RDEsMHhFNiwKLTB4MkUsMHg4QiwweDhDLDB4NTIsMHgyMiwweEY3LDB4NDYsMHgzOCwweDgwLDB4MDAsMHg3NCwweDA1LDB4MkUsMHg4QiwweDhDLDB4ODIsCi0weDIyLDB4RjcsMHhDNywweDAyLDB4MDAsMHg3NCwweDEyLDB4M0IsMHg4RSwweDk0LDB4MDAsMHg3NCwweDBDLDB4ODksMHg4RSwweDk0LAotMHgwMCwweDhBLDB4QzUsMHhFNiwweEVDLDB4OEEsMHhDMSwweEU2LDB4RTQsMHhGNywweEM3LDB4MDEsMHgwMCwweDc0LDB4MTIsMHgzQiwKLTB4OEUsMHg5NiwweDAwLDB4NzQsMHgwQywweDg5LDB4OEUsMHg5NiwweDAwLDB4OEEsMHhDNSwweEU2LDB4RjgsMHg4QSwweEMxLDB4RTYsCi0weEYwLDB4NUUsMHg1OSwweEMzLDB4NzcsMHgwNiwweDhCLDB4OEUsMHg4RSwweDAwLDB4RUIsMHhDNSwweDhCLDB4OEUsMHg5MCwweDAwLAotMHhFQiwweEJGLDB4RDUsMHgwMywweEY2LDB4MDAsMHgzRSwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHhDQSwweDA0LDB4MzMsMHgwMSwKLTB4NEQsMHgwMCwweDE0LDB4MDAsMHgwNSwweDAwLDB4MDEsMHgwMywweDA1LDB4MDcsMHgwOSwweDAwLDB4MDEsMHgwMiwweDAzLDB4MDQsCi0weDgwLDB4ODQsMHgxRSwweDAwLDB4QTAsMHgyNSwweDI2LDB4MDAsMHgwMCwweDAwLDB4NjAsMHg4QiwweEYwLDB4MzMsMHhGRiwweDJFLAotMHhBMSwweDUwLDB4MjMsMHgyRSwweDhCLDB4MTYsMHg1MiwweDIzLDB4QkIsMHgzMiwweDIzLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwKLTB4NzQsMHgwQywweDJFLDB4QTEsMHg1NCwweDIzLDB4MkUsMHg4QiwweDE2LDB4NTYsMHgyMywweEJCLDB4M0MsMHgyMywweEI5LDB4MDUsCi0weDAwLDB4MkUsMHgzQiwweDMxLDB4NzMsMHgwQSwweDQ3LDB4NDcsMHhFMiwweEY3LDB4QjgsMHhGRiwweEZGLDB4RUIsMHgxRCwweDkwLAotMHhEMSwweEVGLDB4MkUsMHg4QSwweDhELDB4NDYsMHgyMywweDJBLDB4RUQsMHhEMSwweEVBLDB4RDEsMHhEOCwweEUyLDB4RkEsMHhGNywKLTB4RjYsMHgwNSwweDAyLDB4MDAsMHhDMSwweEU4LDB4MDIsMHgyRSwweDhBLDB4QTUsMHg0QiwweDIzLDB4MkUsMHhBMywweDU4LDB4MjMsCi0weDYxLDB4MkUsMHhBMSwweDU4LDB4MjMsMHhDMywweDA4LDB4MDAsMHgyMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDIsMHg2MCwweDA5LAotMHgwOCwweDAwLDB4MjAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDIsMHgwMCwKLTB4MDMsMHgwMCwweDA0LDB4MDAsMHg1MiwweDU2LDB4NTcsMHg4NSwweEMwLDB4NzQsMHgwNSwweDNELDB4MDEsMHgwOSwweDc2LDB4MDMsCi0weEI4LDB4MDEsMHgwOSwweEJGLDB4NUIsMHgwMSwweEY3LDB4NDYsMHgzOCwweDgwLDB4MDAsMHg3NCwweDAzLDB4QkYsMHhCMiwweDAxLAotMHgzMywweEY2LDB4MkUsMHgzQiwweDg0LDB4QjYsMHgyMywweDc2LDB4MDQsMHg0NiwweDQ2LDB4RUIsMHhGNSwweEY3LDB4RTcsMHgyRSwKLTB4OEIsMHhCQywweEMwLDB4MjMsMHgwMywweEM3LDB4ODMsMHhEMiwweDAwLDB4RDEsMHhFNywweEY3LDB4RjcsMHgyRSwweDhBLDB4QTQsCi0weENBLDB4MjMsMHg1RiwweDVFLDB4NUEsMHhDMywweEU0LDB4M0UsMHg4MCwweEJFLDB4QzMsMHgwMCwweDAzLDB4NzUsMHgwQywweEY3LAotMHg0NiwweDdBLDB4MjAsMHgwMCwweDc0LDB4MDUsMHgwQywweDgwLDB4RTYsMHgzRSwweEMzLDB4MjQsMHg3RiwweEU2LDB4M0UsMHhDMywKLTB4MjQsMHgwMywweDg4LDB4ODYsMHhDMywweDAwLDB4OEEsMHhFMCwweEU0LDB4MTAsMHgyNCwweEZDLDB4MEEsMHhDNCwweEU2LDB4MTAsCi0weDgwLDB4OEUsMHhBMSwweDAwLDB4NDIsMHhFOCwweENFLDB4RkYsMHhDMywweDkwLDB4NTYsMHg4QiwweEYwLDB4ODMsMHhFNiwweDA3LAotMHhEMSwweEU2LDB4MkUsMHhGRiwweEE0LDB4NTgsMHgyNCwweDkwLDB4NjgsMHgyNCwweDZDLDB4MjQsMHg3MCwweDI0LDB4NzQsMHgyNCwKLTB4NzgsMHgyNCwweDg3LDB4MjQsMHg4NywweDI0LDB4ODcsMHgyNCwweEI0LDB4MDAsMHhFQiwweDBFLDB4QjQsMHhDMCwweEVCLDB4MEEsCi0weEI0LDB4NDAsMHhFQiwweDA2LDB4QjQsMHgyMCwweEVCLDB4MDIsMHhCNCwweEEwLDB4RTQsMHgxMCwweDI0LDB4MUYsMHgwQSwweEM0LAotMHhFNiwweDEwLDB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwweDVFLDB4QzMsMHg5MCwweDNDLDB4MDIsMHg3NywweDEyLDB4OEEsMHhFMCwKLTB4RTQsMHgxMCwweDI0LDB4RjMsMHhDMCwweEU0LDB4MDIsMHgwQSwweEM0LDB4RTYsMHgxMCwweDgwLDB4OEUsMHhBMSwweDAwLDB4NDIsCi0weEMzLDB4OTAsMHg4QiwweDVFLDB4MzgsMHg4NCwweEMwLDB4NzQsMHgxRiwweDNDLDB4MDIsMHg3NCwweDIwLDB4ODMsMHhDQiwweDA4LAotMHg4QiwweDQ2LDB4MkUsMHgzQiwweDQ2LDB4M0MsMHg3NywweDBDLDB4RTgsMHg4OCwweEZDLDB4NzIsMHgwNywweEIwLDB4MjQsMHhFNiwKLTB4MEEsMHg4MywweENCLDB4MTAsMHg4OSwweDVFLDB4MzgsMHhDMywweDgzLDB4RTMsMHhGNywweEVCLDB4RjcsMHhGNywweEMzLDB4MTAsCi0weDAwLDB4NzQsMHhGNSwweEU4LDB4NkQsMHhGQywweDcyLDB4RUMsMHg4QSwweDg2LDB4QzAsMHgwMCwweEU2LDB4MzgsMHhCMCwweDIzLAotMHhFNiwweDBBLDB4RUIsMHhFMCwweDhCLDB4NUUsMHgzOCwweDhCLDB4NDYsMHgyRSwweDNCLDB4NDYsMHgzQywweEU0LDB4RDgsMHg3NywKLTB4MEIsMHgyNCwweEZFLDB4ODAsMHhDQiwweDEyLDB4RTYsMHhEOCwweDg5LDB4NUUsMHgzOCwweEMzLDB4MEMsMHgwMSwweDgwLDB4Q0IsCi0weDAyLDB4RUIsMHhGMywweDUwLDB4MzMsMHhEQiwweEMxLDB4RTgsMHgwNCwweDI1LDB4MEYsMHgwRiwweDhBLDB4RDgsMHgyRSwweDhBLAotMHg4NywweDY2LDB4MTcsMHg4QSwweERDLDB4MkUsMHg4QSwweEE3LDB4NjYsMHgxNywweDA5LDB4NDYsMHgzRSwweDU4LDB4QzMsMHg1MCwKLTB4MzMsMHhEQiwweEMxLDB4RTgsMHgwNCwweDI1LDB4MEYsMHgwRiwweDhBLDB4RDgsMHgyRSwweDhBLDB4ODcsMHg2NiwweDE3LDB4OEEsCi0weERDLDB4MkUsMHg4QSwweEE3LDB4NjYsMHgxNywweEY3LDB4RDAsMHgyMSwweDQ2LDB4M0UsMHg1OCwweEMzLDB4OEIsMHg0NiwweDNFLAotMHgzMywweERCLDB4OEEsMHhEOCwweDBBLDB4REMsMHgyRSwweDhBLDB4ODcsMHg3NiwweDE3LDB4RTYsMHgyQywweDhBLDB4RTAsMHhFNCwKLTB4MkEsMHgyNCwweDBGLDB4MEEsMHhDNCwweEU2LDB4MkEsMHg4QSwweDg2LDB4QTUsMHgwMCwweDg0LDB4RTQsMHg3NSwweDBELDB4QTgsCi0weDgwLDB4NzQsMHgxMSwweDI0LDB4N0YsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhDMywweEE4LDB4ODAsMHg3NSwweDA0LAotMHgwQywweDgwLDB4RUIsMHhGMSwweEMzLDB4MUUsMHg2MCwweDMzLDB4QzksMHgzMywweEQyLDB4MzMsMHhGNiwweDhFLDB4RDksMHg4RCwKLTB4QkUsMHhGRCwweDAwLDB4NTcsMHg4QiwweDA1LDB4ODQsMHhDMCwweDc0LDB4MTYsMHg4QiwweEQxLDB4NDIsMHg4QiwweEZFLDB4NEYsCi0weDc4LDB4MDksMHgzOCwweEEzLDB4RTQsMHgwMCwweDc0LDB4MDgsMHg0RiwweDc5LDB4RjcsMHg4OCwweEEyLDB4RTQsMHgwMCwweDQ2LAotMHg1RiwweDgzLDB4QzcsMHgwOSwweDQxLDB4ODMsMHhGOSwweDEwLDB4NzIsMHhEOSwweDg5LDB4QjYsMHg4NiwweDAwLDB4ODksMHg5NiwKLTB4ODQsMHgwMCwweDYxLDB4MUYsMHhDMywweDUzLDB4QzcsMHg0NiwweDY2LDB4MDAsMHgwMCwweDhCLDB4NDYsMHg2NCwweEE5LDB4NDAsCi0weDAwLDB4NzQsMHgwRCwweEIzLDB4MDAsMHhBOSwweDgwLDB4MDAsMHg3NCwweDAyLDB4QjMsMHg3RiwweDg4LDB4OUUsMHhDMSwweDAwLAotMHgzMiwweERCLDB4QTksMHgwMiwweDAwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHg0MCwweEE5LDB4MDAsMHg0MCwweDc0LDB4MDMsMHg4MCwKLTB4Q0IsMHgwMiwweEE5LDB4MDAsMHg4MCwweDc0LDB4MDMsMHg4MCwweENCLDB4MDEsMHhBOSwweDMwLDB4MUUsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4QkMsMHhBOSwweDAwLDB4MjAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDA4LDB4QTksMHgwNCwweDAxLDB4NzQsMHgwMywweDgwLAotMHhDQiwweDEwLDB4QTksMHgwOCwweDAwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgyMCwweDg4LDB4OUUsMHhDMiwweDAwLDB4NUIsMHhDMywKLTB4MDYsMHg1MSwweDU3LDB4NTAsMHgxNiwweDA3LDB4OEQsMHhCRSwweEM0LDB4MDAsMHhCOSwweDFGLDB4MDAsMHgzMywweEMwLDB4QUEsCi0weDQwLDB4RTIsMHhGQywweDhCLDB4ODYsMHg5MiwweDAwLDB4ODksMHg4NiwweDhFLDB4MDAsMHg4OSwweDg2LDB4OTAsMHgwMCwweDU4LAotMHg1RiwweDU5LDB4MDcsMHhDMywweEU0LDB4RDgsMHhDMCwweEU4LDB4MDQsMHg1MywweDI1LDB4MEYsMHgwMCwweDhCLDB4RDgsMHgyRSwKLTB4OEEsMHg4NywweDY2LDB4MTcsMHg4OCwweDg2LDB4QTksMHgwMCwweDVBLDB4QzMsMHgwOCwweDg2LDB4QUMsMHgwMCwweEM2LDB4ODYsCi0weEJBLDB4MDAsMHgwMSwweEIwLDB4MEUsMHhFOCwweEVBLDB4RTksMHhDMywweEFELDB4MzYsMHhBMywweEI0LDB4MTMsMHhBRCwweDM2LAotMHhBMywweEI2LDB4MTMsMHhBRCwweDM2LDB4QTMsMHhCOCwweDEzLDB4ODMsMHhFOSwweDA2LDB4MzYsMHhGNywweDA2LDB4QjYsMHgxMywKLTB4MEYsMHgwMCwweEMzLDB4OEEsMHg0NiwweDI2LDB4RjcsMHg0NiwweDQ4LDB4ODAsMHgwMCwweDc0LDB4MDIsMHgwQywweDEwLDB4ODgsCi0weDg2LDB4QkQsMHgwMCwweDMyLDB4QzAsMHg4MywweDdFLDB4MUEsMHgwMCwweDc1LDB4MEUsMHg4QiwweDVFLDB4NDAsMHg0MywweDgwLAotMHhFMywweEZFLDB4M0IsMHg1RSwweDA4LDB4NzUsMHgwMiwweDBDLDB4MDEsMHg4MywweDdFLDB4M0EsMHgwMCwweDc1LDB4MEQsMHgxRSwKLTB4QzUsMHg1RSwweDE0LDB4OEIsMHgxRiwweDFGLDB4ODUsMHhEQiwweDc1LDB4MDIsMHgwQywweDAyLDB4RjcsMHg0NiwweDM4LDB4MTAsCi0weDAwLDB4NzQsMHgwMiwweDBDLDB4MDQsMHg4QiwweDVFLDB4N0EsMHhGNywweEMzLDB4MDIsMHgwMCwweDc0LDB4MDIsMHgwQywweDA4LAotMHhGNywweEMzLDB4MDQsMHgwMCwweDc0LDB4MDIsMHgwQywweDEwLDB4RjcsMHhDMywweDA4LDB4MDAsMHg3NCwweDAyLDB4MEMsMHgyMCwKLTB4RjcsMHhDMywweDQwLDB4MDAsMHg3NCwweDAyLDB4MEMsMHg0MCwweDg4LDB4ODYsMHhCRiwweDAwLDB4QzMsMHg5MCwweDZBLDB4MDAsCi0weDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgwRCwweDlDLDB4MEUsMHhFOCwweEYxLDB4RUIsMHg5MCwweEIwLDB4MDIsMHhFNiwweERBLAotMHhGOCwweEMzLDB4MzMsMHhDMCwweEU2LDB4REEsMHhGOCwweEMzLDB4QjAsMHgwMSwweEU2LDB4RDgsMHhGOCwweEMzLDB4MzMsMHhDMCwKLTB4RTYsMHhEOCwweEY4LDB4QzMsMHhCMCwweEZGLDB4RTgsMHg0RSwweEZBLDB4RTgsMHhBMSwweEZBLDB4RjgsMHhDMywweEFDLDB4NDksCi0weEU4LDB4QUYsMHhGQiwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDE1LDB4RkQsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LAotMHhFOCwweDY3LDB4RkQsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHgxRiwweEZELDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwKLTB4RTYsMHgzNCwweEY4LDB4QzMsMHhBQywweDQ5LDB4RTYsMHgzNiwweEY4LDB4QzMsMHhBQywweDQ5LDB4M0MsMHgwMiwweDc3LDB4MUYsCi0weDg0LDB4QzAsMHg3NSwweDFELDB4RTQsMHgxNCwweDI0LDB4RUYsMHhFNiwweDE0LDB4RTQsMHgxMiwweDI0LDB4M0YsMHhFNiwweDEyLAotMHhFNCwweDE2LDB4QTgsMHgwNCwweDc0LDB4MDksMHhFOCwweEVBLDB4RjksMHg3MiwweDA0LDB4QjAsMHgxOCwweEU2LDB4MEEsMHhGOCwKLTB4QzMsMHg4QSwweEUwLDB4RTQsMHgxNCwweDBDLDB4MTAsMHhFNiwweDE0LDB4RTQsMHgxMiwweDBDLDB4QzAsMHhGNiwweEM0LDB4MDEsCi0weDc0LDB4MDIsMHgyNCwweDdGLDB4RTYsMHgxMiwweEY4LDB4QzMsMHhBQywweDQ5LDB4RTgsMHgyNSwweEZELDB4RjgsMHhDMywweDkwLAotMHhCOCwweDAwLDB4NDAsMHhFOCwweDdELDB4RkQsMHhFOCwweEI0LDB4RkQsMHhFOCwweEE4LDB4RkUsMHhCMCwweDAxLDB4RTgsMHhCOSwKLTB4RkUsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4NDAsMHhFOCwweDg1LDB4RkQsMHhFOCwweEEwLDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4MDAsMHgxMCwweEU4LDB4NUQsMHhGRCwweEU4LDB4OTQsMHhGRCwweEU4LDB4ODgsMHhGRSwweEIwLDB4MDgsMHhFOCwweDk5LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHgxMCwweEU4LDB4NjUsMHhGRCwweEU4LDB4ODAsMHhGRCwweEY4LDB4QzMsMHg5MCwKLTB4QjgsMHgwMCwweDgwLDB4RTgsMHgzRCwweEZELDB4RTgsMHg3NCwweEZELDB4RTgsMHg2OCwweEZFLDB4QjAsMHgwMiwweEU4LDB4NzksCi0weEZFLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDgwLDB4RTgsMHg0NSwweEZELDB4RTgsMHg2MCwweEZELDB4RjgsMHhDMywweDkwLAotMHhCOCwweDAwLDB4MjAsMHhFOCwweDFELDB4RkQsMHhFOCwweDU0LDB4RkQsMHhFOCwweDQ4LDB4RkUsMHhCMCwweDA0LDB4RTgsMHg1OSwKLTB4RkUsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4MjAsMHhFOCwweDI1LDB4RkQsMHhFOCwweDQwLDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEFDLDB4NDksMHhFOCwweDQ4LDB4MTQsMHhFNCwweDNDLDB4MjQsMHhFNywweDBBLDB4QzQsMHhFNiwweDNDLDB4RjgsMHhDMywweDkwLAotMHhCOCwweEZDLDB4M0IsMHg4OSwweDQ2LDB4N0MsMHhFNCwweDNDLDB4MEMsMHgxOCwweEU2LDB4M0MsMHhGOCwweEMzLDB4RTQsMHgxMiwKLTB4MEMsMHgwMiwweEU2LDB4MTIsMHhGOCwweEMzLDB4RTQsMHgxMiwweDI0LDB4RkQsMHhFQiwweEY2LDB4RTgsMHhCNSwweEZDLDB4RjgsCi0weEMzLDB4OTAsMHg4MywweDY2LDB4MzgsMHhGRCwweEY4LDB4QzMsMHhBQywweDQ5LDB4QTgsMHgwMSwweDc0LDB4MDYsMHg4MywweDRFLAotMHg3QSwweDIwLDB4RUIsMHgwNCwweDgzLDB4NjYsMHg3QSwweERGLDB4RTgsMHhDQiwweEZCLDB4RjgsMHhDMywweDkwLDB4OEEsMHg4NiwKLTB4QTUsMHgwMCwweDBDLDB4MDIsMHgyNCwweEZCLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4ODEsMHg0RSwweDI2LDB4MDEsCi0weDIwLDB4QUMsMHg0OSwweDMyLDB4RTQsMHg4OSwweDQ2LDB4NkUsMHg4MywweDRFLDB4NDgsMHgwOCwweDQ5LDB4NDYsMHhGOSwweEMzLAotMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHgyNCwweEZCLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4ODEsMHg0RSwKLTB4MjYsMHgwMSwweDIwLDB4QUMsMHhCNCwweDBBLDB4RjYsMHhFNCwweEVCLDB4RDgsMHhFOCwweEZBLDB4MTMsMHhFNCwweDNDLDB4MjQsCi0weEY4LDB4MEEsMHhDNCwweEU2LDB4M0MsMHhGOCwweEMzLDB4OTAsMHhBRCwweDQ5LDB4NDksMHg4OSwweDQ2LDB4NjQsMHhBOSwweDAxLAotMHgwMCwweDc0LDB4MUIsMHg4QiwweEQ4LDB4ODMsMHhFMywweEZBLDB4NzUsMHgxQSwweEE5LDB4MDQsMHgwMCwweDc0LDB4MEYsMHhFNCwKLTB4M0UsMHgwQywweDAyLDB4RTYsMHgzRSwweEI4LDB4MzgsMHg0NCwweDg5LDB4NDYsMHg2MiwweEY4LDB4QzMsMHg5MCwweEU0LDB4M0UsCi0weDI0LDB4RkMsMHhFQiwweEVGLDB4RTQsMHgzRSwweDI0LDB4RkMsMHhFNiwweDNFLDB4RTgsMHhFOCwweEZDLDB4QjgsMHhBQSwweDQwLAotMHhFQiwweEU2LDB4RTgsMHg2RSwweEY4LDB4NzIsMHgwNSwweEIwLDB4MTgsMHhFNiwweDBBLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwKLTB4RTgsMHhDRiwweEY5LDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4Q0YsMHhGOSwweEY4LDB4QzMsMHg5MCwweEU4LDB4NjgsCi0weEZELDB4NzUsMHgwNiwweDMyLDB4QzAsMHhFNiwweERBLDB4RjgsMHhDMywweEIwLDB4MDIsMHhFNiwweERBLDB4MzYsMHhBMCwweEI0LAotMHgxMywweDI0LDB4MTAsMHgzNCwweDEwLDB4RTgsMHgxNiwweDAxLDB4MzYsMHhBMSwweEI0LDB4MTMsMHhBOSwweDAxLDB4MDAsMHg3NCwKLTB4MDUsMHhFOCwweEZDLDB4RkUsMHhFQiwweDBFLDB4QTksMHgwMiwweDAwLDB4NzQsMHgwNCwweDMyLDB4QzAsMHhFQiwweDAyLDB4QjAsCi0weDAxLDB4RTgsMHhERSwweEZFLDB4MzYsMHhBMSwweEI0LDB4MTMsMHhFOCwweEI1LDB4MTMsMHhFNCwweDNDLDB4MjQsMHhGOCwweDBBLAotMHhDNCwweEU2LDB4M0MsMHgzNiwweEExLDB4QjQsMHgxMywweEMxLDB4RTgsMHgwNSwweDI1LDB4MDEsMHgwMCwweEU4LDB4RkEsMHhGRSwKLTB4MzYsMHhBMCwweEI1LDB4MTMsMHgyNCwweDEwLDB4RTgsMHg1OSwweEZCLDB4MzIsMHhDMCwweDM2LDB4OEEsMHgyNiwweEI1LDB4MTMsCi0weEY2LDB4QzQsMHgwNCwweDc0LDB4MDksMHhGRSwweEMwLDB4RjYsMHhDNCwweDA4LDB4NzQsMHgwMiwweEZFLDB4QzAsMHhFOCwweERCLAotMHhGRCwweDM2LDB4QTEsMHhCNiwweDEzLDB4MjUsMHgwRiwweDAwLDB4RTgsMHg1NywweEY5LDB4MzYsMHhBMSwweEI2LDB4MTMsMHhDMSwKLTB4RTgsMHgwNCwweDI1LDB4MDMsMHgwMCwweEU4LDB4QjgsMHhGQSwweDM2LDB4QTEsMHhCNiwweDEzLDB4QzEsMHhFOCwweDA1LDB4MjUsCi0weDAyLDB4MDAsMHhFOCwweDA1LDB4RkIsMHgzNiwweEExLDB4QjYsMHgxMywweEY2LDB4QzQsMHgwMSwweDc1LDB4MDQsMHgzMiwweEMwLAotMHhFQiwweDA5LDB4ODAsMHhFNCwweDAyLDB4RDAsMHhFQywweEIwLDB4MDIsMHgyQSwweEM0LDB4RTgsMHhBQywweEZBLDB4MzYsMHhGNiwKLTB4MDYsMHhCNywweDEzLDB4NDAsMHg3NCwweDA1LDB4RTgsMHg4MywweEZFLDB4RUIsMHgwMywweEU4LDB4ODQsMHhGRSwweDM2LDB4RjYsCi0weDA2LDB4QjcsMHgxMywweDIwLDB4NzQsMHgwNSwweEU4LDB4NjUsMHhGRSwweEVCLDB4MDMsMHhFOCwweDY4LDB4RkUsMHhGOCwweEMzLAotMHhFNCwweDEyLDB4MEMsMHgwMSwweEU2LDB4MTIsMHhGOCwweEMzLDB4RTQsMHgxMiwweDI0LDB4RkUsMHhFQiwweEY2LDB4RTQsMHgxNCwKLTB4MjQsMHhGMCwweDBDLDB4MDUsMHhFNiwweDE0LDB4RTQsMHgyQSwweDI0LDB4RjAsMHgwQywweDA2LDB4RTYsMHgyQSwweEY4LDB4QzMsCi0weEU0LDB4MkEsMHgyNCwweEYwLDB4RTYsMHgyQSwweEU0LDB4MTQsMHgyNCwweEYwLDB4MEMsMHgwNywweEU2LDB4MTQsMHhGOCwweEMzLAotMHhBRCwweDQ5LDB4NDksMHhFOCwweDY0LDB4RjksMHg4OSwweDg2LDB4OEUsMHgwMCwweEY4LDB4QzMsMHhBRCwweDQ5LDB4NDksMHhFOCwKLTB4NTgsMHhGOSwweDg5LDB4ODYsMHg5MCwweDAwLDB4RjgsMHhDMywweDgzLDB4NEUsMHgyNiwweDA0LDB4RTgsMHhBOCwweEY3LDB4RjgsCi0weEMzLDB4OTAsMHg4MywweDY2LDB4MjYsMHhGQiwweEU4LDB4OUUsMHhGNywweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHg4NCwweEMwLAotMHg3NSwweDBELDB4RTQsMHgxMCwweDI0LDB4RUYsMHhFNiwweDEwLDB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwweEY4LDB4QzMsMHhFNCwKLTB4MTAsMHgwQywweDEwLDB4RUIsMHhGMSwweDkwLDB4QUMsMHg0OSwweDNDLDB4MDIsMHg3NiwweDAyLDB4MzIsMHhDMCwweEMwLDB4RTAsCi0weDA0LDB4QTgsMHgyMCwweDc0LDB4MDIsMHgwQywweDA4LDB4MjQsMHgxOCwweDhBLDB4RTAsMHhFNCwweDEyLDB4MjQsMHhFNywweDBBLAotMHhDNCwweEU2LDB4MTIsMHg4MCwweDhFLDB4QTEsMHgwMCwweDQ0LDB4RjgsMHhDMywweEFDLDB4NDksMHg4OCwweDg2LDB4QzAsMHgwMCwKLTB4RjgsMHhDMywweEFDLDB4NDksMHhFNiwweDNBLDB4RjgsMHhDMywweEFDLDB4NDksMHg4NCwweEMwLDB4NzQsMHgwOCwweEU0LDB4MTIsCi0weDBDLDB4MDQsMHhFNiwweDEyLDB4RjgsMHhDMywweEU0LDB4MTIsMHgyNCwweEZCLDB4RUIsMHhGNiwweEFDLDB4NDksMHhFOCwweEQ2LAotMHhGNiwweDczLDB4MDMsMHhFOCwweDI3LDB4RjcsMHhGOCwweEMzLDB4RTQsMHgxMiwweEE4LDB4MDIsMHg3NCwweDA0LDB4MjQsMHhGRCwKLTB4RTYsMHgxMiwweEI4LDB4RjAsMHgwMCwweEU4LDB4ODcsMHhGQSwweDgxLDB4NjYsMHgyNiwweEZGLDB4RjMsMHhFOCwweDU3LDB4RjcsCi0weEU4LDB4OUEsMHhGQSwweEY4LDB4QzMsMHg5MCwweEI4LDB4ODAsMHgwMCwweEU4LDB4NTcsMHhGQSwweDgwLDB4NEUsMHgyNywweDA4LAotMHhFOCwweDQ0LDB4RjcsMHhFOCwweDg3LDB4RkEsMHhGOCwweEMzLDB4QjgsMHg4MCwweDAwLDB4RTgsMHg2MSwweEZBLDB4ODEsMHg2NiwKLTB4MjYsMHhGRiwweEY3LDB4RTgsMHgzMSwweEY3LDB4RTgsMHg3NCwweEZBLDB4RjgsMHhDMywweDkwLDB4QjgsMHgxMCwweDAwLDB4RTgsCi0weDMxLDB4RkEsMHg4MCwweDRFLDB4MjcsMHgwNCwweEU4LDB4MUUsMHhGNywweEU4LDB4NjEsMHhGQSwweEY4LDB4QzMsMHhCOCwweDEwLAotMHgwMCwweEU4LDB4M0IsMHhGQSwweDgxLDB4NjYsMHgyNiwweEZGLDB4RkIsMHhFOCwweDBCLDB4RjcsMHhFOCwweDRFLDB4RkEsMHhGOCwKLTB4QzMsMHg5MCwweDMzLDB4QzAsMHhBQywweDQ5LDB4M0MsMHgwMSwweDczLDB4MDQsMHhCMCwweDAxLDB4RUIsMHgwNiwweDNDLDB4MEMsCi0weDc2LDB4MDIsMHhCMCwweDBDLDB4ODksMHg0NiwweDFDLDB4RjgsMHhDMywweDkwLDB4ODEsMHg0RSwweDI2LDB4MDAsMHgyMCwweDhBLAotMHg4NiwweEE1LDB4MDAsMHgwQywweDAyLDB4MjQsMHhGQiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDgzLDB4NEUsMHgyNiwKLTB4MDEsMHhGOCwweEMzLDB4OTAsMHg4MSwweDRFLDB4MjYsMHgwMCwweDQwLDB4OEEsMHg4NiwweEE1LDB4MDAsMHgwQywweDAyLDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4NTAsMHhFOCwweDA1LDB4RjYsMHg1OCwweDcyLAotMHgwOCwweEU2LDB4MzgsMHhCMCwweDIzLDB4RTYsMHgwQSwweEY4LDB4QzMsMHhGOSwweEMzLDB4OTAsMHhBQywweDUwLDB4QUQsMHhFOCwKLTB4ODIsMHhGOCwweDVBLDB4RjYsMHhDMiwweDAxLDB4NzQsMHgxMiwweDM5LDB4ODYsMHg5NiwweDAwLDB4NzQsMHgwQywweDg5LDB4ODYsCi0weDk2LDB4MDAsMHhFNiwweEYwLDB4ODYsMHhFMCwweEU2LDB4RjgsMHg4NiwweEUwLDB4RjYsMHhDMiwweDAyLDB4NzQsMHgxMCwweDM5LAotMHg4NiwweDk0LDB4MDAsMHg3NCwweDBBLDB4ODksMHg4NiwweDk0LDB4MDAsMHhFNiwweEU0LDB4ODYsMHhFMCwweEU2LDB4RUMsMHg4MywKLTB4RTksMHgwMywweEMzLDB4OTAsMHhFNCwweDE2LDB4ODgsMHg4NiwweEJDLDB4MDAsMHhFOCwweEU2LDB4RkEsMHgzMywweERCLDB4RTQsCi0weDBDLDB4QTgsMHgwNiwweDc0LDB4MDMsMHg4MCwweENCLDB4MDEsMHhBOCwweDEwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMiwweEE4LAotMHg4MCwweDc0LDB4MDMsMHg4MCwweENCLDB4MDQsMHhFNCwweDEyLDB4OEEsMHhFMCwweDI0LDB4MTgsMHgwQSwweEQ4LDB4RTQsMHhEQSwKLTB4RjYsMHhDNCwweDAyLDB4NzQsMHgwNywweEE4LDB4NDAsMHg3NSwweDAzLDB4ODAsMHhDQiwweDIwLDB4QTgsMHgwMiwweDc1LDB4MDksCi0weEU0LDB4MkEsMHhBOCwweDBGLDB4NzQsMHgwMywweDgwLDB4Q0IsMHg0MCwweEY3LDB4NDYsMHgzOCwweDAyLDB4MDAsMHg3NCwweDA5LAotMHhFNCwweEQ4LDB4QTgsMHgwMSwweDc1LDB4MDMsMHg4MCwweENCLDB4ODAsMHg4OCwweDlFLDB4QkUsMHgwMCwweEZFLDB4ODYsMHhCNCwKLTB4MDAsMHhCMCwweDBBLDB4RTgsMHg1QywweEU0LDB4RjgsMHhDMywweEFDLDB4NDksMHgzQywweDAyLDB4NzQsMHg0MSwweDc3LDB4MUYsCi0weDUwLDB4RTgsMHg0RiwweEY1LDB4NTgsMHg3MiwweDBDLDB4ODQsMHhDMCwweDc0LDB4MEEsMHhCMCwweDEyLDB4RTYsMHgwQSwweDgwLAotMHg0RSwweDM4LDB4MDEsMHhGOCwweEMzLDB4QjAsMHgxMSwweEU2LDB4MEEsMHg4MCwweDY2LDB4MzgsMHhGRSwweEY4LDB4QzMsMHg4QiwKLTB4NDYsMHgzOCwweDI1LDB4RkYsMHhGNywweDg5LDB4NDYsMHgzOCwweEE5LDB4MDAsMHgwNCwweDc1LDB4RTYsMHg4QSwweDg2LDB4QTUsCi0weDAwLDB4QTgsMHgxMCwweDc1LDB4REUsMHgwQywweDEwLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4RjgsMHhDMywweDgxLAotMHg0RSwweDM4LDB4MDAsMHgwOCwweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsMHgxMCwweDc0LDB4QzcsMHgyNCwweEVGLDB4RUIsMHhFNywKLTB4QUQsMHg0OSwweDQ5LDB4M0MsMHgwMSwweDcyLDB4MTEsMHgzQywweDBDLDB4NzcsMHgwRCwweDUwLDB4OEEsMHhFMCwweEU0LDB4MTQsCi0weDI1LDB4RjAsMHgwRiwweDBBLDB4QzQsMHhFNiwweDE0LDB4NTgsMHg4QSwweEM0LDB4ODQsMHhDMCwweDc0LDB4MDIsMHhFNiwweDQyLAotMHhGOCwweEMzLDB4RTgsMHhDRiwweEY5LDB4RkUsMHg4NiwweEI5LDB4MDAsMHhCMCwweDBFLDB4RTgsMHhENCwweEUzLDB4RjgsMHhDMywKLTB4M0EsMHg4NiwweEFGLDB4MDAsMHg3NCwweDFGLDB4ODgsMHg4NiwweEFGLDB4MDAsMHg4QSwweEUwLDB4ODAsMHhDMiwweDA2LDB4QjAsCi0weEJGLDB4RUUsMHg4MCwweEVBLDB4MDIsMHg4QSwweEM0LDB4RUUsMHg4QSwweDg2LDB4QTgsMHgwMCwweDgwLDB4QzIsMHgwMiwweEVFLAotMHg4MCwweEVBLDB4MDYsMHg4QSwweEM0LDB4QzMsMHg4QiwweDQ2LDB4M0UsMHg4NSwweEMwLDB4OEEsMHg4NiwweEE1LDB4MDAsMHg3NCwKLTB4MTIsMHhBOCwweDA4LDB4NzUsMHgwRCwweDBDLDB4MDgsMHg4OCwweDg2LDB4QTUsMHgwMCwweDgwLDB4QzIsMHgwMiwweEVFLDB4ODAsCi0weEVBLDB4MDIsMHhDMywweEE4LDB4MDgsMHg3NCwweEZCLDB4MjQsMHhGNywweEVCLDB4RUMsMHg4QiwweDQ2LDB4MjYsMHg4NCwweEMwLAotMHg3NCwweDE2LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDAyLDB4NzQsMHgwRCwweDI0LDB4RkQsMHg4OCwweDg2LDB4QTUsMHgwMCwKLTB4ODMsMHhDMiwweDAyLDB4RUUsMHg4MywweEVBLDB4MDIsMHhDMywweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsMHgwMiwweDc1LDB4RjcsCi0weDBDLDB4MDIsMHhFQiwweEU4LDB4NTIsMHg4MywweEMyLDB4MEMsMHhFQywweEMwLDB4RTgsMHgwNCwweDg4LDB4ODYsMHhBOSwweDAwLAotMHg4QiwweDVFLDB4MjYsMHg4MCwweEUzLDB4M0YsMHhGNiwweEM3LDB4MDQsMHg3NCwweDA3LDB4QTgsMHgwOCwweDc1LDB4MDMsMHg4MCwKLTB4Q0IsMHg0MCwweEY2LDB4QzcsMHgwOCwweDc0LDB4MDcsMHhBOCwweDAyLDB4NzUsMHgwMywweDgwLDB4Q0IsMHg4MCwweDg4LDB4NUUsCi0weDI2LDB4OEEsMHg4NiwweEE1LDB4MDAsMHg4NCwweERCLDB4NzQsMHgxMCwweEE4LDB4MDIsMHg3NCwweDBBLDB4MjQsMHhGRCwweDg4LAotMHg4NiwweEE1LDB4MDAsMHg4MywweEVBLDB4MEEsMHhFRSwweDVBLDB4QzMsMHhBOCwweDAyLDB4NzUsMHhGQSwweDBDLDB4MDIsMHhFQiwKLTB4RUUsMHg5MCwweEZGLDB4RkYsMHgwMCwweDQ4LDB4MDAsMHgzMCwweEJBLDB4MjAsMHhDNCwweDFBLDB4MDAsMHgxOCwweDAwLDB4MTIsCi0weDAwLDB4MEMsMHgwMCwweDA2LDB4MDAsMHgwMywweDAwLDB4MDIsMHg4MCwweDAxLDB4QzAsMHgwMCwweDYwLDB4MDAsMHgzMCwweDAwLAotMHgxOCwweDAwLDB4Q0QsMHgwMSwweDAwLDB4MDEsMHg4MCwweDAwLDB4MTAsMHgwMCwweDEwLDB4MDAsMHgwRSwweDAwLDB4MEMsMHgwMCwKLTB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwweDA0LDB4MDAsMHgwMywweDAwLDB4MDIsMHgwMCwweDAxLDB4MDAsCi0weDUyLDB4NTEsMHg1NiwweDNDLDB4MUUsMHg3NywweDQ3LDB4OTgsMHg4QiwweEYwLDB4OEEsMHg4MiwweEM0LDB4MDAsMHgzMiwweEU0LAotMHg4MywweEZFLDB4MTgsMHg3NCwweDNELDB4ODMsMHhGRSwweDE5LDB4NzQsMHgzRSwweDgzLDB4RkUsMHgxRSwweDc3LDB4MkYsMHhEMSwKLTB4RTYsMHgyRSwweDhCLDB4OEMsMHgzMiwweDJELDB4M0IsMHg4RSwweDk0LDB4MDAsMHg3NCwweDIyLDB4ODksMHg4RSwweDk0LDB4MDAsCi0weDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4OEEsMHhFMCwweDBDLDB4ODAsMHhFRSwweDgzLDB4RUEsMHgwNiwweDhBLAotMHhDMSwweEVFLDB4ODMsMHhDMiwweDAyLDB4OEEsMHhDNSwweEVFLDB4ODMsMHhDMiwweDA0LDB4OEEsMHhDNCwweEVFLDB4NUUsMHg1OSwKLTB4NUEsMHhDMywweDhCLDB4OEUsMHg4RSwweDAwLDB4RUIsMHhDRSwweDhCLDB4OEUsMHg5MCwweDAwLDB4RUIsMHhDOCwweDUyLDB4NTEsCi0weDNELDB4MDUsMHgwMCwweDc3LDB4MDMsMHhCOCwweDA1LDB4MDAsMHg4QiwweEM4LDB4QkEsMHgwMiwweDAwLDB4QjgsMHgwMCwweEQwLAotMHhGNywweEYxLDB4MDUsMHgwMSwweDAwLDB4RDEsMHhFOCwweDU5LDB4NUEsMHhDMywweDhCLDB4NDYsMHg3QSwweEE4LDB4MjAsMHg3NCwKLTB4MEIsMHg4MCwweEJFLDB4QzMsMHgwMCwweDAzLDB4NzUsMHgwNCwweDBDLDB4MDEsMHhFQiwweDAyLDB4MjQsMHhGRSwweDg5LDB4NDYsCi0weDdBLDB4QzMsMHgyNCwweDAzLDB4ODgsMHg4NiwweEMzLDB4MDAsMHg4QSwweEE2LDB4QTgsMHgwMCwweDhBLDB4REMsMHg4MCwweEU0LAotMHhGQywweDBBLDB4QzQsMHgzQSwweEMzLDB4NzQsMHgwQiwweDg4LDB4ODYsMHhBOCwweDAwLDB4ODMsMHhDMiwweDA2LDB4RUUsMHg4MywKLTB4RUEsMHgwNiwweEU4LDB4QzUsMHhGRiwweEMzLDB4MDAsMHgwOCwweDE4LDB4MzgsMHgyOCwweDkwLDB4M0MsMHgwNCwweDc3LDB4MjMsCi0weDMyLDB4RTQsMHg4QiwweEQ4LDB4MkUsMHg4QSwweDg3LDB4MjYsMHgyRSwweDhBLDB4QTYsMHhBOCwweDAwLDB4OEEsMHhEQywweDgwLAotMHhFNCwweEM3LDB4MEEsMHhDNCwweDNBLDB4QzMsMHg3NCwweDBCLDB4ODgsMHg4NiwweEE4LDB4MDAsMHg4MywweEMyLDB4MDYsMHhFRSwKLTB4ODMsMHhFQSwweDA2LDB4QzMsMHg4NCwweEMwLDB4NzQsMHgwMiwweEIwLDB4MDQsMHg4QSwweEE2LDB4QTgsMHgwMCwweDhBLDB4REMsCi0weDgwLDB4RTQsMHhGQiwweDBBLDB4QzQsMHgzQSwweEMzLDB4NzQsMHgwQiwweDg4LDB4ODYsMHhBOCwweDAwLDB4ODMsMHhDMiwweDA2LAotMHhFRSwweDgzLDB4RUEsMHgwNiwweEMzLDB4OTAsMHg4QiwweDVFLDB4MzgsMHg4NCwweEMwLDB4NzQsMHgzNCwweDNDLDB4MDIsMHg3NCwKLTB4M0IsMHg4QSwweDg2LDB4QUYsMHgwMCwweDBDLDB4MDQsMHhFOCwweEU2LDB4RkQsMHg4QiwweDQ2LDB4MkUsMHgzQiwweDQ2LDB4M0MsCi0weDc3LDB4MUIsMHhGNywweEMzLDB4MDAsMHgwNCwweDc1LDB4MTUsMHg4MSwweENCLDB4MDAsMHgwNCwweDgzLDB4QzIsMHgwMiwweDhBLAotMHg4NiwweEE1LDB4MDAsMHgyNCwweEZBLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwMiwweDg5LDB4NUUsMHgzOCwKLTB4QzMsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4RkIsMHhFOCwweEI2LDB4RkQsMHhFQiwweEYxLDB4RjcsMHhDMywweDEwLDB4MDAsCi0weDc0LDB4RUYsMHhFQiwweEVELDB4ODMsMHhDMiwweDBDLDB4RUMsMHg4MywweEVBLDB4MEMsMHhDMCwweEU4LDB4MDQsMHg4OCwweDg2LAotMHhBOSwweDAwLDB4QzMsMHg5MCwweDhBLDB4ODYsMHhBNywweDAwLDB4MEMsMHgwMSwweDg4LDB4ODYsMHhBNywweDAwLDB4OEIsMHhEQSwKLTB4ODAsMHhDMiwweDA4LDB4RUUsMHg4QiwweEQzLDB4RjgsMHhDMywweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweEVCLDB4RUEsCi0weDhBLDB4ODYsMHhBNywweDAwLDB4MEMsMHgwMiwweEVCLDB4RTIsMHg4QSwweDg2LDB4QTcsMHgwMCwweDI0LDB4RkQsMHhFQiwweERBLAotMHhCMCwweEZGLDB4RTgsMHg1MiwweEYyLDB4RTgsMHg5NywweEYyLDB4RjgsMHhDMywweEFDLDB4NDksMHhFOCwweDYxLDB4RkUsMHhGOCwKLTB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweEVCLDB4RkUsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHgzNSwweEZGLDB4RjgsCi0weEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHgwNSwweEZGLDB4RjgsMHhDMywweDkwLDB4NTIsMHg4MywweEMyLDB4MDYsMHhCMCwweEJGLAotMHhFRSwweDUyLDB4ODMsMHhDMiwweDAyLDB4QUMsMHg0OSwweEVFLDB4NUEsMHg4QSwweDg2LDB4QTgsMHgwMCwweEVFLDB4NUEsMHhGOCwKLTB4QzMsMHg5MCwweDUyLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLDB4NTIsMHg4MywweEMyLDB4MDYsMHhFQiwweEU2LDB4OTAsCi0weEFDLDB4NDksMHgzQywweDAyLDB4NzcsMHgwRCwweDg0LDB4QzAsMHg3NSwweDBCLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgyNCwweEZELAotMHhFOCwweDBELDB4RkQsMHhGOCwweEMzLDB4NTAsMHg4QSwweDg2LDB4QUYsMHgwMCwweDBDLDB4MDIsMHhFOCwweDAxLDB4RkQsMHg1QiwKLTB4ODMsMHhDMiwweDA4LDB4OEEsMHg4NiwweEE3LDB4MDAsMHhGNiwweEMzLDB4MDEsMHg3NCwweDBDLDB4MjQsMHhERiwweDg4LDB4ODYsCi0weEE3LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwOCwweEY4LDB4QzMsMHgwQywweDIwLDB4RUIsMHhGMiwweEFDLDB4NDksMHhFOCwweEU1LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg0MCwweEU4LDB4NjksMHhGNSwweEU4LDB4RjksMHhGQywweEU4LDB4MjQsMHhGRiwKLTB4QjAsMHgwMSwweEU4LDB4QTUsMHhGNiwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg0MCwweEU4LDB4NzEsMHhGNSwweEU4LDB4RTUsCi0weEZDLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDEwLDB4RTgsMHg0OSwweEY1LDB4RTgsMHhEOSwweEZDLDB4RTgsMHgwNCwweEZGLAotMHhCMCwweDA4LDB4RTgsMHg4NSwweEY2LDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDEwLDB4RTgsMHg1MSwweEY1LDB4RTgsMHhDNSwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhFOCwweDI5LDB4RjUsMHhFOCwweEI5LDB4RkMsMHhFOCwweEU0LDB4RkUsCi0weEIwLDB4MDIsMHhFOCwweDY1LDB4RjYsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhFOCwweDMxLDB4RjUsMHhFOCwweEE1LAotMHhGQywweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHgyMCwweEU4LDB4MDksMHhGNSwweEU4LDB4OTksMHhGQywweEU4LDB4QzQsMHhGRSwKLTB4QjAsMHgwNCwweEU4LDB4NDUsMHhGNiwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHgyMCwweEU4LDB4MTEsMHhGNSwweEU4LDB4ODUsCi0weEZDLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4MzQsMHgwQywweEY4LDB4QzMsMHg5MCwweEI4LDB4RkMsMHgzQiwweDg5LAotMHg0NiwweDdDLDB4RjgsMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHg4MCwweEU4LDB4NDMsMHhGQywweEY4LDB4QzMsMHg5MCwKLTB4OEEsMHg4NiwweEFGLDB4MDAsMHgyNCwweDdGLDB4RUIsMHhGMiwweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHg0MCwweEU4LDB4MkYsCi0weEZDLDB4RjgsMHhDMywweDkwLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgyNCwweEJGLDB4RUIsMHhGMiwweEFDLDB4NDksMHhBOCwweDAxLAotMHg3NCwweDA3LDB4ODMsMHg0RSwweDdBLDB4MjAsMHhFQiwweDA1LDB4OTAsMHg4MywweDY2LDB4N0EsMHhERiwweEU4LDB4OEEsMHhGRCwKLTB4RjgsMHhDMywweDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4MEMsMHg0MCwweDg4LDB4ODYsMHhBOCwweDAwLDB4RUUsCi0weDgzLDB4RUEsMHgwNiwweEFDLDB4NDksMHgzMiwweEU0LDB4ODksMHg0NiwweDZFLDB4ODMsMHg0RSwweDI2LDB4MDEsMHg4MywweDRFLAotMHg0OCwweDA4LDB4QjAsMHgwNiwweEU4LDB4QkIsMHhERiwweDQ5LDB4NDYsMHhGOSwweEMzLDB4OTAsMHg4MywweEMyLDB4MDYsMHg4QSwKLTB4ODYsMHhBOCwweDAwLDB4MEMsMHg0MCwweDg4LDB4ODYsMHhBOCwweDAwLDB4RUUsMHg4MywweEVBLDB4MDYsMHhBQywweEI0LDB4MEEsCi0weEY2LDB4RTQsMHhFQiwweEQwLDB4RTgsMHhFMCwweDBCLDB4RjgsMHhDMywweDkwLDB4QUQsMHg0OSwweDQ5LDB4ODksMHg0NiwweDY0LAotMHhBOSwweDAxLDB4MDAsMHg3NCwweDE5LDB4OEIsMHhEOCwweDgzLDB4RTMsMHhGQSwweDc1LDB4MEEsMHhBOSwweDA0LDB4MDAsMHg3NCwKLTB4MEQsMHhCOCwweEUyLDB4M0YsMHhFQiwweDBCLDB4RTgsMHhFQywweEY0LDB4QjgsMHhBQSwweDQwLDB4RUIsMHgwMywweEI4LDB4MzgsCi0weDQ0LDB4ODksMHg0NiwweDYyLDB4RjgsMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4QTgsMHgwMiwweDc0LDB4MEEsMHgyNCwweEZELAotMHhFOCwweDhELDB4RkIsMHgwQywweDAyLDB4RTgsMHg4OCwweEZCLDB4RjgsMHhDMywweEFDLDB4NDksMHhFOCwweDgxLDB4RkMsMHhGOCwKLTB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDc5LDB4RkMsMHhGOCwweEMzLDB4OTAsMHhFOCwweDVDLDB4RjUsMHg3NSwweDA1LDB4RTgsCi0weEU2LDB4RkQsMHhGOCwweEMzLDB4RTgsMHhDRCwweEZELDB4MzYsMHhBMCwweEI0LDB4MTMsMHgyNCwweDEwLDB4MzQsMHgxMCwweEU4LAotMHgyNiwweDAxLDB4MzYsMHhBMSwweEI0LDB4MTMsMHhBOSwweDAxLDB4MDAsMHg3NCwweDA1LDB4RTgsMHhGRSwweEZFLDB4RUIsMHgwRSwKLTB4QTksMHgwMiwweDAwLDB4NzQsMHgwNCwweDMyLDB4QzAsMHhFQiwweDAyLDB4QjAsMHgwMSwweEU4LDB4RTgsMHhGRSwweDM2LDB4QTEsCi0weEI0LDB4MTMsMHhFOCwweEFCLDB4MEIsMHgzNiwweEExLDB4QjQsMHgxMywweEMxLDB4RTgsMHgwNSwweDI1LDB4MDEsMHgwMCwweEU4LAotMHgwQywweEZGLDB4MzYsMHhBMCwweEI1LDB4MTMsMHgyNCwweDEwLDB4RTgsMHgyQiwweEZELDB4MzIsMHhDMCwweDM2LDB4OEEsMHgyNiwKLTB4QjUsMHgxMywweEY2LDB4QzQsMHgwNCwweDc0LDB4MDksMHhGRSwweEMwLDB4RjYsMHhDNCwweDA4LDB4NzQsMHgwMiwweEZFLDB4QzAsCi0weEU4LDB4RUYsMHhGRCwweDM2LDB4QTEsMHhCNiwweDEzLDB4MjUsMHgwRiwweDAwLDB4RTgsMHgwMywweEZDLDB4MzYsMHhBMSwweEI2LAotMHgxMywweEMxLDB4RTgsMHgwNCwweDI1LDB4MDMsMHgwMCwweEU4LDB4ODgsMHhGQywweDM2LDB4QTEsMHhCNiwweDEzLDB4QzEsMHhFOCwKLTB4MDUsMHgyNSwweDAyLDB4MDAsMHhFOCwweENELDB4RkMsMHgzNiwweEExLDB4QjYsMHgxMywweEY2LDB4QzQsMHgwMSwweDc1LDB4MDQsCi0weDMyLDB4QzAsMHhFQiwweDA5LDB4ODAsMHhFNCwweDAyLDB4RDAsMHhFQywweEIwLDB4MDIsMHgyQSwweEM0LDB4RTgsMHg4QywweEZDLAotMHgzNiwweEY2LDB4MDYsMHhCNywweDEzLDB4NDAsMHg3NCwweDA1LDB4RTgsMHg4RCwweEZFLDB4RUIsMHgwMywweEU4LDB4OTQsMHhGRSwKLTB4MzYsMHhGNiwweDA2LDB4QjcsMHgxMywweDIwLDB4NzQsMHgwNSwweEU4LDB4NjksMHhGRSwweEVCLDB4MDMsMHhFOCwweDcwLDB4RkUsCi0weEY4LDB4QzMsMHhGOCwweEMzLDB4OEIsMHg0NiwweDM4LDB4QTksMHgwNCwweDAwLDB4NzUsMHgyMywweDBELDB4MDQsMHgwMCwweDg5LAotMHg0NiwweDM4LDB4ODMsMHhDMiwweDA4LDB4OEIsMHg0NiwweDJFLDB4M0IsMHg0NiwweDNDLDB4NzMsMHgxNCwweDgzLDB4NEUsMHgzOCwKLTB4MTAsMHg4QSwweDg2LDB4QTcsMHgwMCwweDI0LDB4RkUsMHg4OCwweDg2LDB4QTcsMHgwMCwweEVFLDB4ODMsMHhFQSwweDA4LDB4RjgsCi0weEMzLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAxLDB4RUIsMHhFRSwweDkwLDB4OEIsMHg0NiwweDM4LDB4QTksMHgwNCwweDAwLAotMHg3NCwweDA2LDB4MjUsMHhGQiwweEZGLDB4ODksMHg0NiwweDM4LDB4RjgsMHhDMywweEFELDB4NDksMHg0OSwweEU4LDB4QkUsMHhGQiwKLTB4ODksMHg4NiwweDhFLDB4MDAsMHhGOCwweEMzLDB4QUQsMHg0OSwweDQ5LDB4RTgsMHhCMiwweEZCLDB4ODksMHg4NiwweDkwLDB4MDAsCi0weEY4LDB4QzMsMHg4MywweDRFLDB4MjYsMHgwNCwweEU4LDB4OTIsMHhGQSwweEY4LDB4QzMsMHg5MCwweDgzLDB4NjYsMHgyNiwweEZCLAotMHhFOCwweDg4LDB4RkEsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4ODQsMHhDMCwweDc1LDB4MDcsMHg4MCwweDhFLDB4QTMsMHgwMCwKLTB4MDQsMHhGOCwweEMzLDB4ODAsMHhBNiwweEEzLDB4MDAsMHhGQiwweEY4LDB4QzMsMHhBQywweDQ5LDB4ODMsMHhDMiwweDA4LDB4M0MsCi0weDAyLDB4NzYsMHgwMiwweDMyLDB4QzAsMHgzQywweDAxLDB4NzQsMHgxMiwweDc3LDB4MEIsMHg4QSwweDg2LDB4QTcsMHgwMCwweDI0LAotMHhFRiwweDg4LDB4ODYsMHhBNywweDAwLDB4RUUsMHg4MywweEVBLDB4MDgsMHhGOCwweEMzLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywKLTB4MTAsMHhFQiwweEVFLDB4OTAsMHg1MiwweDgzLDB4QzIsMHgwNiwweEIwLDB4QkYsMHhFRSwweDUyLDB4ODMsMHhDMiwweDA0LDB4QUMsCi0weDQ5LDB4RUUsMHg1QSwweDhBLDB4ODYsMHhBOCwweDAwLDB4RUUsMHg1QSwweEY4LDB4QzMsMHg5MCwweDUyLDB4ODMsMHhDMiwweDA2LAotMHhCMCwweEJGLDB4RUUsMHg1MiwweDgzLDB4QzIsMHgwOCwweEVCLDB4RTYsMHg5MCwweEFDLDB4NDksMHhGOCwweEMzLDB4QUMsMHg0OSwKLTB4RTgsMHhCNCwweEVFLDB4NzMsMHgwMywweEU4LDB4RjcsMHhFRSwweEY4LDB4QzMsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4N0YsCi0weEU4LDB4QkQsMHhGOSwweEI4LDB4RjAsMHgwMCwweEU4LDB4NjYsMHhGMiwweDgxLDB4NjYsMHgyNiwweEZGLDB4RjMsMHhFOCwweDIzLAotMHhGQSwweEU4LDB4RDIsMHhGOSwweEY4LDB4QzMsMHhCOCwweDgwLDB4MDAsMHhFOCwweDM3LDB4RjIsMHg4MCwweDRFLDB4MjcsMHgwOCwKLTB4RTgsMHgxMSwweEZBLDB4RTgsMHhDMCwweEY5LDB4RjgsMHhDMywweEI4LDB4ODAsMHgwMCwweEU4LDB4NDEsMHhGMiwweDgxLDB4NjYsCi0weDI2LDB4RkYsMHhGNywweEU4LDB4RkUsMHhGOSwweEU4LDB4QUQsMHhGOSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MTAsMHgwMCwweEU4LAotMHgxMSwweEYyLDB4ODAsMHg0RSwweDI3LDB4MDQsMHhFOCwweEVCLDB4RjksMHhFOCwweDlBLDB4RjksMHhGOCwweEMzLDB4QjgsMHgxMCwKLTB4MDAsMHhFOCwweEZGLDB4RjEsMHg4MSwweDY2LDB4MjYsMHhGRiwweEZCLDB4RTgsMHhEOCwweEY5LDB4RjgsMHhDMywweEFDLDB4NDksCi0weEY4LDB4QzMsMHg4MywweEMyLDB4MDYsMHg4QSwweDg2LDB4QTgsMHgwMCwweDBDLDB4NDAsMHg4OCwweDg2LDB4QTgsMHgwMCwweEVFLAotMHg4MywweEVBLDB4MDYsMHhGOCwweEMzLDB4OTAsMHg4MywweEMyLDB4MDYsMHg4QSwweDg2LDB4QTgsMHgwMCwweDI0LDB4QkYsMHhFQiwKLTB4RUEsMHg5MCwweEFDLDB4NDksMHg4QSwweEUwLDB4ODAsMHhDMiwweDBBLDB4RUMsMHg4MCwweEVBLDB4MEEsMHhBOCwweDIwLDB4NzQsCi0weDA1LDB4OEEsMHhDNCwweEVFLDB4RjgsMHhDMywweDA2LDB4NTEsMHg1NywweDhCLDB4NEUsMHgyNCwweEUzLDB4MzQsMHg0OSwweDg5LAotMHg0RSwweDI0LDB4RkYsMHg0NiwweDFBLDB4OEUsMHg0NiwweDAyLDB4OEIsMHg3RSwweDIyLDB4OEEsMHhDNCwweEFBLDB4ODksMHg3RSwKLTB4MjIsMHg4QiwweDQ2LDB4MjYsMHgyNCwweEZELDB4ODksMHg0NiwweDI2LDB4NzUsMHgyOSwweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsCi0weDAyLDB4NzUsMHgyMSwweDgwLDB4QzIsMHgwMiwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4ODAsMHhFQSwweDAyLAotMHhFQiwweDEyLDB4QzQsMHg3RSwweDAwLDB4M0IsMHg3RSwweDFFLDB4NzYsMHgwQSwweDRGLDB4MjYsMHg4OCwweDI1LDB4ODksMHg3RSwKLTB4MDAsMHhGRiwweDQ2LDB4MUEsMHg1RiwweDU5LDB4MDcsMHhGOCwweEMzLDB4OTAsMHhBQywweEFELDB4ODMsMHhFOSwweDAzLDB4ODUsCi0weEMwLDB4NzQsMHgwNSwweDNELDB4MDAsMHgyMCwweDcyLDB4MDUsMHhCOCwweEZGLDB4RkYsMHhFQiwweDAzLDB4QzEsMHhFMCwweDAzLAotMHgzQiwweDg2LDB4OTQsMHgwMCwweDc0LDB4MjYsMHg4OSwweDg2LDB4OTQsMHgwMCwweDhCLDB4RDgsMHg1MiwweDgzLDB4QzIsMHgwNiwKLTB4OEEsMHg4NiwweEE4LDB4MDAsMHg4QSwweEUwLDB4MEMsMHg4MCwweEVFLDB4ODMsMHhFQSwweDA2LDB4OEEsMHhDMywweEVFLDB4ODMsCi0weEMyLDB4MDIsMHg4QSwweEM3LDB4RUUsMHg4MywweEMyLDB4MDQsMHg4QSwweEM0LDB4RUUsMHg1QSwweEY4LDB4QzMsMHhCMCwweDg4LAotMHg4OCwweDg2LDB4QkMsMHgwMCwweEU4LDB4OEMsMHhGMiwweDMzLDB4REIsMHg4QSwweDg2LDB4QTUsMHgwMCwweEE4LDB4MDIsMHg3NCwKLTB4MDMsMHg4MCwweENCLDB4MDEsMHhBOCwweDA1LDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMiwweEE4LDB4MDgsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4MDQsMHhGNiwweDg2LDB4QTcsMHgwMCwweDEwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgxMCwweDhBLDB4ODYsMHhBOSwweDAwLAotMHhGNiwweEMzLDB4MDQsMHg3NSwweDBBLDB4ODMsMHhDMiwweDBDLDB4RUMsMHg4MywweEVBLDB4MEMsMHhDMCwweEU4LDB4MDQsMHg4QSwKLTB4RTAsMHg4QSwweDg2LDB4QUYsMHgwMCwweEE4LDB4ODAsMHg3NCwweDA4LDB4RjYsMHhDNCwweDAxLDB4NzUsMHgwMywweDgwLDB4Q0IsCi0weDIwLDB4RjYsMHg4NiwweEE3LDB4MDAsMHgwMiwweDc1LDB4MEEsMHhGNywweDQ2LDB4MzgsMHgwNCwweDAwLDB4NzQsMHgwMywweDgwLAotMHhDQiwweDQwLDB4ODgsMHg5RSwweEJFLDB4MDAsMHhGRSwweDg2LDB4QjQsMHgwMCwweEIwLDB4MEEsMHhFOCwweEYzLDB4REIsMHhGOCwKLTB4QzMsMHhGRSwweDg2LDB4QjQsMHgwMCwweEIwLDB4MEEsMHhFOCwweEU4LDB4REIsMHhGOCwweEMzLDB4QUMsMHg0OSwweDNDLDB4MDIsCi0weDc0LDB4MzcsMHg3NywweDEwLDB4ODQsMHhDMCwweDc0LDB4MDYsMHg4MCwweDRFLDB4MzgsMHgwMSwweEY4LDB4QzMsMHg4MCwweDY2LAotMHgzOCwweEZFLDB4RjgsMHhDMywweDhCLDB4NDYsMHgzOCwweDI1LDB4RkYsMHhGNywweDg5LDB4NDYsMHgzOCwweEE5LDB4MDAsMHgwNCwKLTB4NzUsMHhFQSwweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsMHgwMSwweDc1LDB4RTIsMHgwQywweDA1LDB4ODMsMHhDMiwweDAyLDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweEVFLDB4ODMsMHhFQSwweDAyLDB4RjgsMHhDMywweDgxLDB4NEUsMHgzOCwweDAwLDB4MDgsMHg4QSwweDg2LAotMHhBNSwweDAwLDB4QTgsMHgwMSwweDc0LDB4QzYsMHgyNCwweEZBLDB4RUIsMHhFMiwweEFELDB4NDksMHg0OSwweEY4LDB4QzMsMHg5MCwKLTB4RTgsMHgxMSwweEZBLDB4RkUsMHg4NiwweEI5LDB4MDAsMHhCMCwweDBFLDB4RTgsMHg4NiwweERCLDB4RjgsMHhDMywweEIwLDB4RkYsCi0weEU4LDB4QkYsMHhFQywweEY4LDB4QzMsMHg5MCwweDgzLDB4NjYsMHg3QSwweEZCLDB4QjAsMHgwMCwweEU4LDB4NzMsMHhEQiwweEY4LAotMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4NTMsMHhEOSwweDcyLDB4MTEsMHgzNiwweDg4LDB4MUUsMHgxQSwweDAxLDB4MzYsMHhBMCwKLTB4OEUsMHgxMiwweDBBLDB4QzMsMHg1MiwweEJBLDB4MDAsMHgwMSwweEVFLDB4NUEsMHhGOCwweEMzLDB4QUMsMHg0OSwweDMyLDB4RTQsCi0weDM2LDB4QTMsMHg4NiwweDEyLDB4MDUsMHgwNiwweDAwLDB4MzYsMHg4QiwweDFFLDB4ODgsMHgxMiwweDJCLDB4RDgsMHgzNiwweDg5LAotMHgxRSwweDhBLDB4MTIsMHhGOCwweEMzLDB4OTAsMHhBRCwweDhCLDB4RDgsMHhBRCwweDgzLDB4RTksMHgwNCwweDAzLDB4QzMsMHgyQiwKLTB4NDYsMHg3NiwweDg5LDB4NDYsMHg3OCwweEY3LDB4NDYsMHg3QSwweDAyLDB4MDAsMHg3NCwweDBBLDB4ODMsMHg2NiwweDdBLDB4RkQsCi0weEI4LDB4MDAsMHgwMCwweEU4LDB4MUMsMHhEQiwweEY4LDB4QzMsMHgwNiwweDE2LDB4MDcsMHhBQywweDQ5LDB4MjUsMHgwRiwweDAwLAotMHg2QiwweEMwLDB4MDksMHg4RCwweEJFLDB4RkQsMHgwMCwweDAzLDB4RjgsMHhBQywweDQ5LDB4MjUsMHgwRiwweDAwLDB4QUEsMHg4NSwKLTB4QzAsMHg3NCwweDA4LDB4MkIsMHhDOCwweDUxLDB4OEIsMHhDOCwweEYzLDB4QTQsMHg1OSwweEU4LDB4MjcsMHhGMCwweEU4LDB4NDQsCi0weDAzLDB4MDcsMHhGOCwweEMzLDB4MzMsMHhDMCwweEFDLDB4NDksMHgzNiwweEEzLDB4QjIsMHgxMywweDM2LDB4QTMsMHhCMCwweDEzLAotMHhGOCwweEMzLDB4ODMsMHg2NiwweDdBLDB4RUYsMHhFOCwweDJDLDB4MDMsMHhGOCwweEMzLDB4OTAsMHg4MywweDRFLDB4N0EsMHgxMCwKLTB4RUIsMHhGNCwweEU4LDB4OUIsMHhGMCwweEY4LDB4QzMsMHg5MCwweEFELDB4M0MsMHgxOSwweDc3LDB4MEUsMHgzQywweDE5LDB4NzcsCi0weDBBLDB4OEIsMHhGOCwweDgxLDB4RTcsMHhGRiwweDAwLDB4ODgsMHhBNiwweEM0LDB4MDAsMHhGOCwweEMzLDB4OTAsMHg4MywweDRFLAotMHgyNiwweDIwLDB4QUMsMHg0OSwweDMyLDB4RTQsMHhEMSwweEUwLDB4OEIsMHhEOCwweEMxLDB4RTMsMHgwMiwweDAzLDB4QzMsMHg4OSwKLTB4NDYsMHg2RSwweDgzLDB4NEUsMHg0OCwweDA0LDB4QjAsMHgwNiwweEU4LDB4OTcsMHhEQSwweDQ5LDB4NDYsMHhGOSwweEMzLDB4OTAsCi0weEZFLDB4ODYsMHhCMywweDAwLDB4QjAsMHgwQSwweEU4LDB4ODksMHhEQSwweEY4LDB4QzMsMHg5MCwweDMzLDB4QzAsMHhBQywweDQ5LAotMHg2QiwweEMwLDB4MEEsMHg4OSwweDg2LDB4OEEsMHgwMCwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHgzMiwweEU0LDB4M0QsMHgwQSwKLTB4MDAsMHg3NywweDA1LDB4QjgsMHgwQSwweDAwLDB4RUIsMHgwOCwweDNELDB4NUEsMHgwMCwweDcyLDB4MDMsMHhCOCwweDVBLDB4MDAsCi0weDUxLDB4RjcsMHhEOCwweDA1LDB4NjQsMHgwMCwweDhCLDB4QzgsMHg4QiwweDQ2LDB4NDQsMHhGNywweEUxLDB4QjksMHg2NCwweDAwLAotMHhGNywweEYxLDB4ODksMHg0NiwweDQ2LDB4NTksMHhGOCwweEMzLDB4QUMsMHg0OSwweEU4LDB4ODUsMHhFQiwweEY4LDB4QzMsMHg5MCwKLTB4QUMsMHg0OSwweDg0LDB4QzAsMHg3NSwweDA3LDB4ODEsMHg2NiwweDM4LDB4RkYsMHhGRCwweEY4LDB4QzMsMHg4MSwweDRFLDB4MzgsCi0weDAwLDB4MDIsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzUsMHgwOCwweDhBLDB4ODYsMHhBOSwweDAwLDB4ODgsMHg4NiwweEFBLAotMHgwMCwweEY4LDB4QzMsMHg5MCwweDUxLDB4NTYsMHhFOCwweDdGLDB4MEMsMHg1RSwweDU5LDB4RjgsMHhDMywweDkwLDB4RkUsMHg4NiwKLTB4QjYsMHgwMCwweEIwLDB4MEEsMHhFOCwweDBCLDB4REEsMHhGOCwweEMzLDB4OTAsMHhGRSwweDg2LDB4QjcsMHgwMCwweEIwLDB4MEEsCi0weEU4LDB4RkYsMHhEOSwweEY4LDB4QzMsMHg5MCwweEZFLDB4ODYsMHhCOCwweDAwLDB4QjAsMHgwQSwweEU4LDB4RjMsMHhEOSwweEY4LAotMHhDMywweDkwLDB4MDAsMHg5MCwweDUxLDB4NTUsMHhBQywweDJFLDB4QTIsMHg1MiwweDM2LDB4MzMsMHhDOSwweEFELDB4OEIsMHhGOSwKLTB4QzEsMHhFNywweDA1LDB4QTksMHgwMSwweDAwLDB4NzQsMHgyMywweDJFLDB4OEIsMHhBRCwweDQ0LDB4MDAsMHg4MywweDdFLDB4MDgsCi0weDAwLDB4NzQsMHgxOCwweDJFLDB4ODAsMHgzRSwweDUyLDB4MzYsMHgwMSwweDc0LDB4MDksMHg2MCwweEIwLDB4MDQsMHhFOCwweEJCLAotMHgwQywweDYxLDB4RUIsMHgwNywweDYwLDB4QjAsMHhGQiwweEU4LDB4RUMsMHgwQywweDYxLDB4NDcsMHg0NywweEQxLDB4RTgsMHg3NSwKLTB4RDIsMHg0MSwweDgzLDB4RjksMHgwNCwweDcyLDB4QzYsMHg1RCwweDU5LDB4ODMsMHhFOSwweDA1LDB4RjcsMHg0NiwweDM4LDB4NDAsCi0weDAwLDB4NzQsMHgwNSwweEU4LDB4ODcsMHhFQSwweEY4LDB4QzMsMHhFOCwweDhELDB4RUEsMHhGOCwweEMzLDB4OTAsMHgzNiwweEM2LAotMHgwNiwweEM4LDB4MTMsMHgwMSwweEY4LDB4QzMsMHgzMywweEMwLDB4QUMsMHg0OSwweDM2LDB4QTMsMHg4MCwweDEyLDB4QUMsMHg0OSwKLTB4MzYsMHgyQiwweDA2LDB4ODgsMHgxMiwweEY3LDB4RDgsMHgzNiwweEEzLDB4ODIsMHgxMiwweEY4LDB4QzMsMHg5MCwweERFLDB4MjYsCi0weERFLDB4MjYsMHhFQywweDI2LDB4RjIsMHgyNiwweEY4LDB4MjYsMHhGRSwweDI2LDB4MDQsMHgyNywweDBFLDB4MjcsMHgxNiwweDI3LAotMHgxRSwweDI3LDB4MjYsMHgyNywweDJFLDB4MjcsMHgzNCwweDI3LDB4QkUsMHgzNCwweEM2LDB4MzQsMHhEMiwweDM0LDB4M0EsMHgyNywKLTB4NzgsMHgyNywweDgwLDB4MjcsMHg5NCwweDI3LDB4QTAsMHgyNywweEI0LDB4MjcsMHhDMCwweDI3LDB4RDQsMHgyNywweEUwLDB4MjcsCi0weEY0LDB4MjcsMHgwMCwweDI4LDB4MTAsMHgyOCwweEVDLDB4MzQsMHhERSwweDI2LDB4MUUsMHgyOCwweDI2LDB4MjgsMHgyQywweDI4LAotMHgzMiwweDI4LDB4MzgsMHgyOCwweDRFLDB4MjgsMHg4QSwweDI4LDB4MDYsMHgzNSwweDI4LDB4MzUsMHg5OCwweDI4LDB4QkUsMHgyOCwKLTB4RDIsMHgyOCwweERFLDB4MjgsMHhFNiwweDI4LDB4NTQsMHgzNSwweDYyLDB4MzUsMHg2QywweDM1LDB4RUUsMHgyOCwweEMwLDB4MjksCi0weEM4LDB4MjksMHhDRSwweDI5LDB4RTAsMHgyOSwweDcyLDB4MzUsMHg3OCwweDM1LDB4RjAsMHgyOSwweEZDLDB4MjksMHg4RSwweDM1LAotMHgwOCwweDJBLDB4MTIsMHgyQSwweDFDLDB4MkEsMHhCMCwweDM1LDB4MzYsMHgyQSwweEJDLDB4MzUsMHg1QSwweDJBLDB4NjIsMHgyQSwKLTB4NjgsMHgyQSwweENBLDB4MzUsMHg3QywweDJBLDB4RjgsMHgzNSwweDg4LDB4MkEsMHhBNiwweDJBLDB4QjgsMHgyQSwweENDLDB4MkEsCi0weERFLDB4MkEsMHhGMiwweDJBLDB4MDAsMHgzNiwweDBBLDB4MkIsMHgyNCwweDJCLDB4MjQsMHgzNiwweDM4LDB4MkIsMHg0QywweDJCLAotMHg4NCwweDJCLDB4MkUsMHgzNiwweDNBLDB4MzYsMHg0NiwweDM2LDB4NTQsMHgzNiwweEU4LDB4MkIsMHhBRSwweDM2LDB4NDAsMHgyQywKLTB4NjIsMHgyQywweEI2LDB4MzYsMHg3MCwweDI4LDB4REUsMHgyNiwweERFLDB4MjYsMHhENCwweDJFLDB4RTgsMHgyRSwweEYwLDB4MkUsCi0weEY4LDB4MkUsMHgwMCwweDJGLDB4MEEsMHgyRiwweDEyLDB4MkYsMHgxQSwweDJGLDB4MjIsMHgyRiwweDJBLDB4MkYsMHg0MiwweDJGLAotMHhCRSwweDM0LDB4QzYsMHgzNCwweEQyLDB4MzQsMHg1MCwweDJGLDB4OEMsMHgyRiwweDk0LDB4MkYsMHhBOCwweDJGLDB4QjQsMHgyRiwKLTB4QzgsMHgyRiwweEQ0LDB4MkYsMHhFOCwweDJGLDB4RjQsMHgyRiwweDA4LDB4MzAsMHgxNCwweDMwLDB4MUMsMHgzMCwweEVDLDB4MzQsCi0weERFLDB4MjYsMHgyNCwweDMwLDB4MzAsMHgzMCwweDM4LDB4MzAsMHg0NCwweDMwLDB4NEMsMHgzMCwweDYyLDB4MzAsMHhBNCwweDMwLAotMHgwNiwweDM1LDB4MjgsMHgzNSwweEFBLDB4MzAsMHhDRSwweDMwLDB4RDYsMHgzMCwweEVBLDB4MzAsMHhGMiwweDMwLDB4NTQsMHgzNSwKLTB4NjIsMHgzNSwweDZDLDB4MzUsMHhGQSwweDMwLDB4QzIsMHgzMSwweEMyLDB4MzEsMHhDNCwweDMxLDB4RkEsMHgzMSwweDcyLDB4MzUsCi0weDc4LDB4MzUsMHgwQSwweDMyLDB4MTYsMHgzMiwweDhFLDB4MzUsMHgyMiwweDMyLDB4MkMsMHgzMiwweDM2LDB4MzIsMHhCMCwweDM1LAotMHg0QSwweDMyLDB4QkMsMHgzNSwweDc0LDB4MzIsMHg4QywweDMyLDB4OUEsMHgzMiwweENBLDB4MzUsMHg5RSwweDMyLDB4RjgsMHgzNSwKLTB4QUEsMHgzMiwweEM2LDB4MzIsMHhEOCwweDMyLDB4RUMsMHgzMiwweEZFLDB4MzIsMHgwRSwweDMzLDB4MDAsMHgzNiwweDEyLDB4MzMsCi0weDI2LDB4MzMsMHgyNCwweDM2LDB4MzIsMHgzMywweDlBLDB4MzMsMHhERSwweDMzLDB4MkUsMHgzNiwweDNBLDB4MzYsMHg0NiwweDM2LAotMHg1NCwweDM2LDB4NUMsMHgzNCwweEFFLDB4MzYsMHhBQSwweDM0LDB4QjAsMHgzNCwweEI2LDB4MzYsMHg4QywweDMwLDB4RTMsMHgyOCwKLTB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc1LDB4MzIsMHhFOCwweEUzLDB4RTgsMHgzMywweEMwLDB4QUMsMHg0OSwweDNELDB4NUIsCi0weDAwLDB4NzcsMHgxOSwweDhCLDB4RDgsMHhEMSwweEUzLDB4MkUsMHhGRiwweDk3LDB4Q0UsMHgzNiwweDcyLDB4MEIsMHg4NSwweEM5LAotMHg3NSwweEU4LDB4OEIsMHg0NiwweDQ4LDB4RTgsMHgxQSwweDBDLDB4QzMsMHg0RSwweDQxLDB4QzMsMHg2QSwweDAwLDB4MUYsMHhDNiwKLTB4MDYsMHg5MywweDEyLDB4MEMsMHg5QywweDBFLDB4RTgsMHg2MywweERBLDB4RTgsMHhCQywweEU4LDB4MzMsMHhDMCwweEFDLDB4NDksCi0weDNELDB4NUIsMHgwMCwweDc3LDB4RTcsMHg4QiwweEQ4LDB4RDEsMHhFMywweDJFLDB4RkYsMHg5NywweDg2LDB4MzcsMHg3MiwweEQ5LAotMHg4NSwweEM5LDB4NzUsMHhFOCwweEMzLDB4RjcsMHg0NiwweDdBLDB4MTAsMHgwMCwweDc1LDB4MEYsMHg4MywweEJFLDB4ODQsMHgwMCwKLTB4MDAsMHg3NCwweDA4LDB4QjgsMHg0OCwweDNBLDB4ODksMHg4NiwweDgwLDB4MDAsMHhDMywweDgxLDB4QkUsMHg4MCwweDAwLDB4RUMsCi0weDNDLDB4NzQsMHhGNywweDgzLDB4QkUsMHg4OCwweDAwLDB4MDAsMHg3NSwweDA1LDB4QjgsMHhFQywweDNDLDB4RUIsMHhFNywweEY3LAotMHg0NiwweDdBLDB4MDgsMHgwMCwweDc1LDB4NDAsMHgxRSwweDYwLDB4OEIsMHg4RSwweDg4LDB4MDAsMHgzQiwweDRFLDB4NzQsMHg3NywKLTB4MzMsMHgzQiwweDRFLDB4NzgsMHg3NywweDJFLDB4QzQsMHg3RSwweDEwLDB4OEIsMHhERiwweDI2LDB4MDMsMHgzRCwweDQ3LDB4NDcsCi0weDMzLDB4QzAsMHg4RSwweEQ4LDB4OEQsMHhCNiwweEY0LDB4MDAsMHg4QiwweEMxLDB4RjcsMHg0NiwweDdBLDB4MDEsMHgwMCwweDc1LAotMHgxRCwweEYzLDB4QTQsMHgyNiwweDAxLDB4MDcsMHgyOSwweDQ2LDB4NzgsMHgwMSwweDQ2LDB4NzYsMHgyOSwweDQ2LDB4NzQsMHhCMCwKLTB4MEMsMHhFOCwweDNFLDB4RDcsMHg2MSwweDFGLDB4QzcsMHg4NiwweDg4LDB4MDAsMHgwMCwweDAwLDB4RUIsMHhBQywweEUzLDB4RTMsCi0weDUwLDB4OTAsMHhBQywweDI0LDB4N0YsMHhBQSwweEUyLDB4RkEsMHg1OCwweEVCLDB4RDgsMHg5MCwweDhCLDB4OEUsMHg4OCwweDAwLAotMHhFMywweDQ2LDB4OEIsMHg5RSwweDhBLDB4MDAsMHg4NSwweERCLDB4NzQsMHgzRSwweEJBLDB4NTAsMHhGRiwweEVELDB4MkIsMHg4NiwKLTB4ODIsMHgwMCwweDNCLDB4QzMsMHg3MiwweDM3LDB4OEQsMHhCNiwweEY0LDB4MDAsMHhDNCwweDdFLDB4MTAsMHg4QiwweERGLDB4MjYsCi0weDAzLDB4M0QsMHg0NywweDQ3LDB4OEIsMHhDMSwweDE2LDB4MUYsMHhGNywweDQ2LDB4N0EsMHgwMSwweDAwLDB4NzUsMHgyNCwweEYzLAotMHhBNCwweDI2LDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEM3LDB4ODYsMHg4OCwKLTB4MDAsMHgwMCwweDAwLDB4QjAsMHgwQywweEU4LDB4REEsMHhENiwweDgzLDB4NjYsMHg3QSwweEY3LDB4QzMsMHhCMCwweDAwLDB4RTgsCi0weEQwLDB4RDYsMHhDMywweEUzLDB4REMsMHg1MCwweEFDLDB4MjQsMHg3RiwweEFBLDB4RTIsMHhGQSwweDU4LDB4RUIsMHhEMiwweDkwLAotMHgxRSwweDYwLDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RCwweEI2LDB4RkQsMHgwMCwweDhCLDB4ODYsMHg4OCwweDAwLDB4OEIsMHg5NiwKLTB4ODQsMHgwMCwweDNBLDB4MDQsMHg3NSwweDEwLDB4OEIsMHhERSwweDQ2LDB4OEIsMHhDOCwweDhELDB4QkUsMHhGNCwweDAwLDB4RjMsCi0weEE2LDB4NzQsMHg2NiwweDhCLDB4RjMsMHg5MCwweDgzLDB4QzYsMHgwOSwweDRBLDB4NzUsMHhFNiwweDhELDB4QjYsMHhGRCwweDAwLAotMHg4QiwweDk2LDB4ODQsMHgwMCwweDNBLDB4MDQsMHg3MywweDEwLDB4OEIsMHhERSwweDQ2LDB4OEIsMHhDOCwweDhELDB4QkUsMHhGNCwKLTB4MDAsMHhGMywweEE2LDB4NzQsMHg3NiwweDhCLDB4RjMsMHg5MCwweDgzLDB4QzYsMHgwOSwweDRBLDB4NzUsMHhFNiwweDhELDB4QjYsCi0weEY0LDB4MDAsMHhBQywweEY3LDB4NDYsMHg3QSwweDAxLDB4MDAsMHg3NCwweDAyLDB4MjQsMHg3RiwweDFFLDB4QzUsMHg1RSwweDEwLAotMHg4QiwweDM3LDB4ODgsMHg0MCwweDAyLDB4NDYsMHg4OSwweDM3LDB4RkYsMHg0RSwweDc4LDB4RkYsMHg0NiwweDc2LDB4RkYsMHg0RSwKLTB4NzQsMHgxRiwweDhCLDB4OEUsMHg4OCwweDAwLDB4NDksMHg4OSwweDhFLDB4ODgsMHgwMCwweEUzLDB4NDMsMHg4RCwweEI2LDB4RjQsCi0weDAwLDB4OEIsMHhGRSwweDQ2LDB4RjMsMHhBNCwweEU5LDB4N0QsMHhGRiwweEM1LDB4NzYsMHgxMCwweDhCLDB4MUMsMHg4NSwweERCLAotMHg3NCwweDA4LDB4MDMsMHhGMywweDgzLDB4QzYsMHgwMywweDgzLDB4RTYsMHhGRSwweDhCLDB4ODYsMHg4NCwweDAwLDB4MkIsMHhDMiwKLTB4QjQsMHg4MCwweDg5LDB4MDQsMHg0NiwweDQ2LDB4QzcsMHgwNCwweDAwLDB4MDAsMHg4OSwweDc2LDB4MTAsMHg4MywweDRFLDB4N0EsCi0weDA0LDB4QzcsMHg4NiwweDg4LDB4MDAsMHgwMCwweDAwLDB4NjEsMHgxRiwweEY5LDB4QzMsMHgzMywweEMwLDB4NjEsMHgxRiwweEMzLAotMHhCMCwweDgwLDB4ODQsMHhDMCwweDYxLDB4MUYsMHhDMywweDkwLDB4OEIsMHg0RSwweDc4LDB4MkIsMHg4RSwweDg4LDB4MDAsMHg3NiwKLTB4MjcsMHg4OSwweEI2LDB4OEMsMHgwMCwweDhCLDB4NUUsMHg3NCwweDNCLDB4Q0IsMHg3MiwweDAyLDB4OEIsMHhDQiwweDNCLDB4QzgsCi0weDcyLDB4MDIsMHg4QiwweEM4LDB4OEIsMHhDMSwweEUzLDB4NDQsMHgzMywweEQyLDB4OEUsMHhDMiwweDhCLDB4RDEsMHg4MywweEJFLAotMHg4OCwweDAwLDB4MDAsMHg3NCwweDA2LDB4RTksMHg4RSwweDAwLDB4MzMsMHhDMCwweEMzLDB4OEIsMHg1RSwweDEwLDB4MDMsMHgxRiwKLTB4NDMsMHg0MywweDUyLDB4RjcsMHg0NiwweDdBLDB4MDEsMHgwMCwweDc1LDB4MkEsMHhBQywweDhELDB4QkUsMHhFNCwweDAwLDB4OEIsCi0weDhFLDB4ODYsMHgwMCwweEYyLDB4QUUsMHg3NCwweDM0LDB4ODgsMHgwNywweDQzLDB4NEEsMHg3NSwweEVELDB4NTgsMHg4QiwweDVFLAotMHgxMCwweDAxLDB4MDcsMHgyOSwweDQ2LDB4NzgsMHgwMSwweDQ2LDB4NzYsMHgyOSwweDQ2LDB4NzQsMHg4QiwweEM2LDB4MkIsMHg4NiwKLTB4OEMsMHgwMCwweEMzLDB4OTAsMHhBQywweDhELDB4QkUsMHhFNCwweDAwLDB4OEIsMHg4RSwweDg2LDB4MDAsMHhGMiwweEFFLDB4NzQsCi0weDBBLDB4MjQsMHg3RiwweDg4LDB4MDcsMHg0MywweDRBLDB4NzUsMHhFQiwweEVCLDB4RDIsMHg4OCwweDg2LDB4RjQsMHgwMCwweEM3LAotMHg4NiwweDg4LDB4MDAsMHgwMSwweDAwLDB4NTgsMHgyQiwweEMyLDB4NzQsMHgwRSwweDhCLDB4NUUsMHgxMCwweDAxLDB4MDcsMHgyOSwKLTB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweDQwLDB4RTgsMHg5NCwweEZFLDB4NzIsMHhCRSwweDRBLDB4NzUsCi0weDE1LDB4ODMsMHhCRSwweDhBLDB4MDAsMHgwMCwweDc0LDB4QjQsMHhCQSwweDUwLDB4RkYsMHhFRCwweDg5LDB4ODYsMHg4MiwweDAwLAotMHg4MywweDRFLDB4N0EsMHgwOCwweEVCLDB4QTYsMHg4RCwweEJFLDB4RjQsMHgwMCwweDAzLDB4QkUsMHg4OCwweDAwLDB4QTQsMHhGRiwKLTB4ODYsMHg4OCwweDAwLDB4RTgsMHg2QSwweEZFLDB4NzIsMHg5NCwweDc5LDB4MDYsMHg0QSwweDc0LDB4OEYsMHhFOSwweDVCLDB4RkYsCi0weDRBLDB4NzQsMHhDRSwweEVCLDB4RTEsMHg5MCwweDUwLDB4RTgsMHgxMSwweENDLDB4OEIsMHg0NiwweDc0LDB4MzksMHg0NiwweDcyLAotMHg3NCwweDI3LDB4MUUsMHg1NiwweDUxLDB4MzMsMHhDOSwweEM1LDB4NzYsMHgwQywweEFELDB4NzQsMHgxMCwweDc4LDB4MDksMHgwMywKLTB4QzgsMHgwNSwweDAxLDB4MDAsMHgyNCwweEZFLDB4MDMsMHhGMCwweDNCLDB4NzYsMHgxMCwweDc2LDB4RUQsMHgyOSwweDRFLDB4NzYsCi0weDAxLDB4NEUsMHg3OCwweEU4LDB4MzcsMHhDQywweDU5LDB4NUUsMHgxRiwweDU4LDB4QzMsMHg5MCwweEM0LDB4N0UsMHgxMCwweDI2LAotMHg4QiwweDFELDB4ODMsMHhDMywweDAzLDB4MjYsMHg4OSwweDFELDB4NEIsMHgwMywweEZCLDB4QUIsMHg5MSwweEFBLDB4QjgsMHgwMywKLTB4MDAsMHgyOSwweDQ2LDB4NzgsMHgwMSwweDQ2LDB4NzYsMHgyOSwweDQ2LDB4NzQsMHhDMywweDkwLDB4QzQsMHg3RSwweDEwLDB4MjYsCi0weDhCLDB4MUQsMHg0MywweDI2LDB4ODksMHgxRCwweDQzLDB4MDMsMHhGQiwweEFBLDB4RkYsMHg0RSwweDc4LDB4RkYsMHg0NiwweDc2LAotMHhGRiwweDRFLDB4NzQsMHhDMywweEU4LDB4RTUsMHhGRiwweEMzLDB4ODAsMHg4MSwweDg0LDB4ODUsMHg4MiwweDgzLDB4ODYsMHg4NywKLTB4NTAsMHg1MywweDhBLDB4REMsMHg4MywweEUzLDB4MEUsMHhEMSwweEVCLDB4MkUsMHg4QSwweDg3LDB4OTgsMHgzQiwweDA4LDB4ODYsCi0weEIwLDB4MDAsMHhGRSwweDg2LDB4QjEsMHgwMCwweEIwLDB4MEEsMHhFOCwweDg3LDB4RDQsMHg1QiwweDU4LDB4QzMsMHg1MCwweDhBLAotMHhDOCwweEI4LDB4RkYsMHgwMCwweEU4LDB4OTUsMHhGRiwweDU4LDB4QzMsMHg5MCwweDhBLDB4ODYsMHhCQiwweDAwLDB4RTgsMHhBQiwKLTB4RkYsMHhDMywweEU4LDB4Q0IsMHhGRiwweEU4LDB4RjIsMHhGRiwweEMzLDB4OTAsMHhFOCwweEMzLDB4RkYsMHhFOCwweEI0LDB4RkYsCi0weEMzLDB4OTAsMHgzMywweEMwLDB4RTgsMHg5NSwweEZGLDB4QzMsMHhCOCwweEZGLDB4MDAsMHgzMywweEM5LDB4RTgsMHg2QywweEZGLAotMHhDMywweDkwLDB4QjgsMHhGRiwweDAxLDB4QjEsMHgxMCwweEU4LDB4NjIsMHhGRiwweEMzLDB4OTAsMHhDMywweEZDLDB4M0IsMHhFMiwKLTB4M0IsMHhGMiwweDNCLDB4RjIsMHgzQiwweEZDLDB4M0IsMHhFMiwweDNCLDB4RTgsMHgzQiwweEU4LDB4M0IsMHhGQywweDNCLDB4RTIsCi0weDNCLDB4RTgsMHgzQiwweEU4LDB4M0IsMHhGQywweDNCLDB4RTIsMHgzQiwweEUyLDB4M0IsMHhFMiwweDNCLDB4MDAsMHgxMCwweDAwLAotMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwKLTB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsCi0weDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4NTEsMHg1MywweDhCLAotMHg0RSwweDM4LDB4ODEsMHhFMSwweEZGLDB4RUUsMHhBOCwweDA0LDB4NzQsMHgwNCwweDgxLDB4QzksMHgwMCwweDAxLDB4OEEsMHhFMCwKLTB4ODAsMHhFNCwweDAzLDB4MjQsMHgxOCwweEQwLDB4RTQsMHgwQSwweEM0LDB4MzMsMHhEQiwweDhBLDB4RDgsMHgyRSwweDhCLDB4ODcsCi0weEZELDB4M0IsMHg4OSwweDQ2LDB4N0MsMHgyRSwweDBCLDB4OEYsMHgxRCwweDNDLDB4ODksMHg0RSwweDM4LDB4RDEsMHhFQiwweDJFLAotMHg4QSwweEE3LDB4M0QsMHgzQywweDVCLDB4NTksMHhDMywweEFDLDB4NDksMHgzQywweDAxLDB4NzIsMHgxRCwweDc0LDB4MjAsMHgzQywKLTB4MDMsMHg3MiwweDIzLDB4NzQsMHgyOCwweDNDLDB4MDgsMHg3MiwweDJCLDB4NzQsMHgzMCwweDNDLDB4MjAsMHg3MiwweDM3LDB4NzQsCi0weDNBLDB4QkIsMHhEQSwweDNCLDB4MzIsMHhFNCwweDg5LDB4NUUsMHg3RSwweEMzLDB4QkIsMHhBMCwweDNCLDB4RUIsMHhGNSwweEJCLAotMHg5NCwweDNCLDB4QjQsMHgwMSwweEVCLDB4RjAsMHhCQiwweEZDLDB4M0IsMHhCNCwweDAyLDB4RUIsMHhFOSwweEJCLDB4RTIsMHgzQiwKLTB4QjQsMHgwMywweEVCLDB4RTIsMHhCQiwweEJFLDB4M0IsMHhCNCwweDA0LDB4RUIsMHhEQiwweEJCLDB4Q0EsMHgzQiwweEFDLDB4NDksCi0weDg4LDB4ODYsMHhCQiwweDAwLDB4RUIsMHhDRSwweEJCLDB4RDIsMHgzQiwweEVCLDB4RjMsMHhCQiwweEZDLDB4M0IsMHhFQiwweEM0LAotMHhBOSwweDA0LDB4MDAsMHg3NSwweEQxLDB4QTksMHgwOCwweDAwLDB4NzUsMHhEQSwweEVCLDB4RDEsMHg4QiwweDVFLDB4NzQsMHg4QiwKLTB4NEUsMHg3OCwweDNCLDB4Q0IsMHg3MiwweDAyLDB4OEIsMHhDQiwweDNCLDB4QzgsMHg3MiwweDAyLDB4OEIsMHhDOCwweDhCLDB4QzEsCi0weEUzLDB4MkMsMHhDNCwweDdFLDB4MTAsMHg4QiwweERGLDB4MjYsMHgwMywweDNELDB4NDcsMHg0NywweEY3LDB4NDYsMHg3QSwweDAxLAotMHgwMCwweDc1LDB4MUMsMHhGNywweEM3LDB4MDEsMHgwMCwweDc0LDB4MDIsMHg0OSwweEE0LDB4RDEsMHhFOSwweEYzLDB4QTUsMHg3MywKLTB4MDEsMHhBNCwweDI2LDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEMzLDB4NTAsCi0weDUzLDB4QkIsMHg3RiwweDdGLDB4RjcsMHhDNywweDAxLDB4MDAsMHg3NCwweDA1LDB4NDksMHhBQywweDIyLDB4QzMsMHhBQSwweEQxLAotMHhFOSwweEUzLDB4MUQsMHg5QywweEFELDB4MjMsMHhDMywweEFCLDB4NDksMHg3NCwweDE0LDB4QUQsMHgyMywweEMzLDB4QUIsMHg0OSwKLTB4NzQsMHgwRCwweEFELDB4MjMsMHhDMywweEFCLDB4NDksMHg3NCwweDA2LDB4QUQsMHgyMywweEMzLDB4QUIsMHhFMiwweEU1LDB4OUQsCi0weDczLDB4MDQsMHhBQywweDIyLDB4QzMsMHhBQiwweDVCLDB4NTgsMHhFQiwweEI4LDB4RTgsMHhDRSwweEM5LDB4OEIsMHg1RSwweDM4LAotMHhGNywweEMzLDB4MTAsMHgwNCwweDc1LDB4MDEsMHhDMywweEY3LDB4QzMsMHg0MCwweDAwLDB4NzQsMHgwNSwweEU4LDB4QjgsMHhFMywKLTB4RUIsMHgwMywweEU4LDB4QTgsMHhFMywweDgxLDB4NjYsMHgzOCwweEVGLDB4RkIsMHhGNiwweEMzLDB4MTAsMHg3NCwweDNDLDB4RjYsCi0weEMzLDB4MDIsMHg3NCwweDA2LDB4RTQsMHhEOCwweDBDLDB4MDEsMHhFNiwweEQ4LDB4RjYsMHhDMywweDA0LDB4NzQsMHgxMSwweDgzLAotMHhDMiwweDA4LDB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAxLDB4RUUsMHg4OCwweDg2LDB4QTcsMHgwMCwweDgzLDB4RUEsMHgwOCwKLTB4RjYsMHhDMywweDA4LDB4NzQsMHgwRiwweEU4LDB4OEIsMHhFMywweDcyLDB4MEEsMHg4QSwweDg2LDB4QzAsMHgwMCwweEU2LDB4MzgsCi0weEIwLDB4MjMsMHhFNiwweDBBLDB4RjcsMHhDMywweDAwLDB4MDQsMHg3NSwweDAxLDB4QzMsMHhGNywweEMzLDB4MDAsMHgwOCwweDc1LAotMHhGOSwweDhBLDB4ODYsMHhBNSwweDAwLDB4RjYsMHhDMywweDQwLDB4NzUsMHgwRCwweEE4LDB4MTAsMHg3NSwweEVDLDB4MEMsMHgxMCwKLTB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsMHhBOCwweDAxLDB4NzUsMHhERiwweDgzLDB4QzIsMHgwMiwweDBDLDB4MDUsCi0weEVFLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhDMywweEIwLDB4MDAsMHhFOCwweDQ3LDB4RDIsMHhFQiwweDBGLDB4QjAsMHgwMiwweEU4LAotMHg5MCwweDBFLDB4RUIsMHgwOCwweDgzLDB4NjYsMHgzOCwweERGLDB4ODMsMHg0RSwweDdBLDB4MDIsMHgzMywweEMwLDB4OEUsMHhEOCwKLTB4RkEsMHhBMCwweDkyLDB4MTIsMHg0MCwweEEyLDB4OTIsMHgxMiwweDNDLDB4MDUsMHg3MiwweDFFLDB4QzYsMHgwNiwweDkyLDB4MTIsCi0weDAwLDB4RkIsMHhCMCwweDAxLDB4RTgsMHg2QiwweDBFLDB4RkEsMHhBMSwweDI2LDB4MDEsMHgyMywweDA2LDB4MkEsMHgwMSwweEE4LAotMHgwMSwweDc1LDB4MDcsMHhFOCwweEUyLDB4MDcsMHhFOCwweDYxLDB4MDksMHg5MCwweEIwLDB4MDAsMHhFOCwweDM3LDB4RDIsMHhGQiwKLTB4ODUsMHhFRCwweDc0LDB4QjksMHhGQSwweEY3LDB4NDYsMHg3QSwweDQ2LDB4MDAsMHg3NSwweEMwLDB4OEIsMHg0NiwweDc4LDB4M0QsCi0weDBBLDB4MDAsMHg3MiwweEIwLDB4OEIsMHg0RSwweDc0LDB4ODMsMHhGOSwweDUwLDB4NzIsMHg5QSwweDgzLDB4NjYsMHgzOCwweERGLAotMHhDNSwweDc2LDB4MTQsMHg4QiwweDQ2LDB4M0EsMHg4NSwweEMwLDB4NzUsMHg1OCwweEFELDB4ODUsMHhDMCwweDc1LDB4MEYsMHhFOCwKLTB4RjgsMHhGRSwweEY3LDB4NDYsMHg3QSwweDA4LDB4MDAsMHg3NCwweDkzLDB4RTgsMHhBMCwweEZBLDB4RUIsMHg4RSwweDNCLDB4NzYsCi0weDA0LDB4NzYsMHgyMSwweEI5LDB4MDIsMHgwMCwweDM5LDB4NEUsMHgyRSwweDc3LDB4MDUsMHhDNywweDQ2LDB4MkUsMHgwMCwweDAwLAotMHg1NiwweDhCLDB4NzYsMHgyQywweDg5LDB4NzYsMHgwNCwweEM3LDB4MDQsMHgwMCwweDAwLDB4NDYsMHg0NiwweDg5LDB4NzYsMHgyQywKLTB4MjksMHg0RSwweDJFLDB4NUUsMHg4NSwweEMwLDB4NzksMHgxNywweEY2LDB4QzQsMHgxMCwweDc0LDB4MDUsMHhGRiwweDU2LDB4N0MsCi0weEVCLDB4MDMsMHhGRiwweDU2LDB4N0UsMHg4OSwweDc2LDB4MTQsMHhCMCwweDBDLDB4RTgsMHg4NSwweEQxLDB4RUIsMHg4NiwweDg5LAotMHg0NiwweDNBLDB4RkYsMHg5NiwweDgwLDB4MDAsMHgyOSwweDQ2LDB4M0EsMHg4OSwweDc2LDB4MTQsMHhCMCwweDBDLDB4RTgsMHg3MSwKLTB4RDEsMHhFOSwweDcxLDB4RkYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDEwLDB4MDIsCi0weDAxLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsCi0weEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHgwMCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4NEUsMHg0MSwweDc4LDB4NDEsMHhEMCwweDQxLDB4RjQsMHg0MSwweDA2LDB4NDIsMHgxOCwweDQyLAotMHhDMywweDkwLDB4OEUsMHg0NiwweDAyLDB4OEIsMHg3RSwweDIyLDB4ODksMHg3RSwweDZDLDB4ODAsMHg2NiwweDI3LDB4RkQsMHg4QiwKLTB4NTYsMHgyNCwweDgzLDB4RkEsMHgwNCwweDcyLDB4RTksMHg4MywweEVBLDB4MDIsMHg4QiwweEQ5LDB4M0IsMHhDQSwweDc2LDB4MDIsCi0weDhCLDB4Q0EsMHhCMCwweDBBLDB4NTcsMHg1MSwweDhCLDB4RkUsMHhGMiwweEFFLDB4OEIsMHhDMSwweDU5LDB4NUYsMHg3NSwweDFFLAotMHg1MCwweDQwLDB4MkIsMHhDOCwweDc0LDB4MDYsMHgyQiwweEQxLDB4MkIsMHhEOSwweEYzLDB4QTQsMHg1OSwweDRCLDB4NEEsMHg0QSwKLTB4QjAsMHgwRCwweEFBLDB4QTQsMHgzQiwweENBLDB4NzYsMHgwMiwweDhCLDB4Q0EsMHhFMywweDEzLDB4RUIsMHhENCwweDJCLDB4RDksCi0weEY3LDB4QzYsMHgwMSwweDAwLDB4NzQsMHgwMiwweEE0LDB4NDksMHhEMSwweEU5LDB4RjMsMHhBNSwweDczLDB4MDEsMHhBNCwweDg5LAotMHg3RSwweDIyLDB4MkIsMHg3RSwweDZDLDB4MjksMHg3RSwweDI0LDB4MDEsMHg3RSwweDFBLDB4OEIsMHhDQiwweDgwLDB4N0UsMHgyNiwKLTB4MDIsMHg3NCwweDA1LDB4ODAsMHg2NiwweDI2LDB4RkQsMHhDMywweDYwLDB4QjAsMHhGRCwweEU4LDB4MTgsMHgwMywweDYxLDB4QzMsCi0weEMzLDB4OTAsMHhFOCwweDdDLDB4MDIsMHg3MiwweEY5LDB4OTAsMHg4MywweDRFLDB4MjYsMHgyMCwweDhCLDB4NDYsMHg2QSwweDg5LAotMHg0NiwweDZFLDB4OEIsMHg0NiwweDQ4LDB4MEQsMHgwNCwweDAwLDB4MjUsMHhCRiwweEZGLDB4ODksMHg0NiwweDQ4LDB4QjAsMHgwNiwKLTB4RTgsMHhCRiwweENGLDB4QzMsMHg4OSwweDdFLDB4MjIsMHgyQiwweDdFLDB4NkMsMHgwMSwweDdFLDB4MUEsMHgyOSwweDdFLDB4MjQsCi0weDgwLDB4N0UsMHgyNiwweDAyLDB4NzQsMHgwNSwweDgzLDB4NjYsMHgyNiwweEZELDB4QzMsMHg2MCwweEIwLDB4RkQsMHhFOCwweEQ1LAotMHgwMiwweDYxLDB4QzMsMHg5MCwweDhBLDB4QkUsMHhDMiwweDAwLDB4RUIsMHgyNCwweEY3LDB4NDYsMHg0OCwweDQwLDB4MDAsMHg3NSwKLTB4QjEsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4OSwweDdFLDB4NkMsMHg4QiwweDU2LDB4MjQsMHg4MywweEVBLDB4MEEsCi0weDc4LDB4OUUsMHgwMywweEQ3LDB4ODAsMHg2NiwweDI3LDB4RkQsMHgzMywweEMwLDB4OEEsMHhCRSwweEMyLDB4MDAsMHhFMywweEI0LAotMHgzQiwweEZBLDB4NzcsMHhCMCwweEFDLDB4NDksMHg5MywweDJFLDB4OEEsMHg4NywweEQ0LDB4M0UsMHg5MywweDIyLDB4REYsMHg3NSwKLTB4MTcsMHhBQSwweEUzLDB4QTAsMHgzQiwweEZBLDB4NzcsMHg5QywweEFDLDB4NDksMHg5MywweDJFLDB4OEEsMHg4NywweEQ0LDB4M0UsCi0weDkzLDB4MjIsMHhERiwweDc1LDB4MDMsMHhBQSwweEVCLDB4RDYsMHhGNiwweEMzLDB4N0YsMHg3NSwweDA1LDB4RkYsMHg0NiwweDY2LAotMHhFQiwweERGLDB4RjYsMHhDMywweDQwLDB4NzUsMHgwQywweDhCLDB4RDgsMHg4MywweEVCLDB4MDgsMHhEMSwweEUzLDB4MkUsMHhGRiwKLTB4QTcsMHhENCwweDNGLDB4RkYsMHg0NiwweDY2LDB4MkMsMHgyMCwweEVCLDB4QzcsMHg4NSwweEMwLDB4NzQsMHgyQywweDg5LDB4NDYsCi0weDZBLDB4ODMsMHg0RSwweDQ4LDB4NDAsMHg4OSwweDdFLDB4MjIsMHgyQiwweDdFLDB4NkMsMHgwMSwweDdFLDB4MUEsMHgyOSwweDdFLAotMHgyNCwweDgwLDB4N0UsMHgyNiwweDAyLDB4NzQsMHgwOCwweDgzLDB4NjYsMHgyNiwweEZELDB4RTgsMHhBMywweDAxLDB4QzMsMHg2MCwKLTB4QjAsMHhGRCwweEU4LDB4MzEsMHgwMiwweDYxLDB4RTgsMHg5OCwweDAxLDB4QzMsMHhFOSwweDU3LDB4RkYsMHg5MCwweDhCLDB4NUUsCi0weDY2LDB4NEIsMHg3OCwweDAzLDB4ODksMHg1RSwweDY2LDB4QUEsMHg4QiwweDVFLDB4NjQsMHhGNywweEMzLDB4MDAsMHgyMCwweDc1LAotMHgwMywweEU5LDB4NDAsMHhGRiwweEY3LDB4QzMsMHg0MCwweDAwLDB4NzQsMHgwOCwweDhBLDB4ODYsMHhDMSwweDAwLDB4QUEsMHhFOSwKLTB4MzIsMHhGRiwweEI4LDB4MzIsMHgwMCwweEVCLDB4QTMsMHg5MCwweDhCLDB4NUUsMHg2NiwweDg5LDB4NUUsMHg2OCwweDgzLDB4QzMsCi0weDA4LDB4ODAsMHhFMywweEY4LDB4ODksMHg1RSwweDY2LDB4OEIsMHg1RSwweDY0LDB4ODEsMHhFMywweDAwLDB4MTgsMHg4MSwweEZCLAotMHgwMCwweDE4LDB4NzQsMHgyRCwweEFBLDB4ODUsMHhEQiwweDc0LDB4MjUsMHhGNywweDQ2LDB4NjQsMHg0MCwweDAwLDB4NzUsMHgxOCwKLTB4ODEsMHhGQiwweDAwLDB4MTAsMHg3NCwweDBDLDB4OEIsMHg0NiwweDY2LDB4MkIsMHg0NiwweDY4LDB4QzEsMHhFMCwweDA0LDB4RTksCi0weDY4LDB4RkYsMHhCOCwweDY0LDB4MDAsMHhFOSwweDYyLDB4RkYsMHg4QSwweDg2LDB4QzEsMHgwMCwweEFBLDB4QUEsMHhFOSwweEUzLAotMHhGRSwweDUxLDB4OEIsMHg0RSwweDY2LDB4MkIsMHg0RSwweDY4LDB4QjAsMHgyMCwweEYzLDB4QUEsMHg1OSwweEU5LDB4RDQsMHhGRSwKLTB4OEIsMHg1RSwweDY2LDB4ODksMHg1RSwweDY4LDB4OEIsMHg1RSwweDY0LDB4RjcsMHhDMywweDI0LDB4MDAsMHg3NCwweDEwLDB4QzcsCi0weDQ2LDB4NjYsMHgwMCwweDAwLDB4RjcsMHhDMywweDA0LDB4MDAsMHg3NCwweDA1LDB4QjAsMHgwRCwweEFBLDB4QjAsMHgwQSwweEFBLAotMHhFQiwweDQ4LDB4OTAsMHg5MCwweEFBLDB4RjcsMHg0NiwweDY0LDB4MDAsMHg0MCwweDc0LDB4MDYsMHhCOCwweEQwLDB4MDcsMHhFOSwKLTB4MTgsMHhGRiwweEU5LDB4OUYsMHhGRSwweDkwLDB4QUEsMHhGNywweDQ2LDB4NjQsMHgwMCwweDgwLDB4NzQsMHgwNiwweEI4LDB4RDAsCi0weDA3LDB4RTksMHgwNiwweEZGLDB4RTksMHg4RCwweEZFLDB4OTAsMHg4QiwweDVFLDB4NjYsMHg4OSwweDVFLDB4NjgsMHg4NSwweERCLAotMHg3NSwweDBDLDB4OEIsMHg1RSwweDY0LDB4RjcsMHhDMywweDEwLDB4MDAsMHg3NCwweDA2LDB4RTksMHg3NiwweEZFLDB4OEIsMHg1RSwKLTB4NjQsMHhGNywweEMzLDB4MDgsMHgwMCwweDc0LDB4MjcsMHhCMCwweDBBLDB4QUEsMHhGNywweEMzLDB4MjAsMHgwMCwweDc1LDB4MUYsCi0weEY3LDB4QzMsMHgwMCwweDAxLDB4NzUsMHgwMywweEU5LDB4NUIsMHhGRSwweEY3LDB4QzMsMHg0MCwweDAwLDB4NzUsMHgwNiwweEI4LAotMHg2NCwweDAwLDB4RTksMHhDNSwweEZFLDB4OEEsMHg4NiwweEMxLDB4MDAsMHhBQSwweEFBLDB4RTksMHg0NiwweEZFLDB4QUEsMHhDNywKLTB4NDYsMHg2NiwweDAwLDB4MDAsMHhGNywweEMzLDB4MDAsMHgwNiwweDc0LDB4RjEsMHhGNywweEMzLDB4NDAsMHgwMCwweDc0LDB4MTksCi0weDhBLDB4ODYsMHhDMSwweDAwLDB4ODEsMHhFMywweDAwLDB4MDYsMHg4MSwweEZCLDB4MDAsMHgwNCwweDcyLDB4MDYsMHg3NiwweDAyLAotMHhBQSwweEFBLDB4QUEsMHhBQSwweEFBLDB4QUEsMHhFOSwweDFCLDB4RkUsMHg4MSwweEUzLDB4MDAsMHgwNiwweDgxLDB4RkIsMHgwMCwKLTB4MDQsMHg3MiwweDBFLDB4NzYsMHgwNiwweEI4LDB4OTYsMHgwMCwweEU5LDB4N0YsMHhGRSwweEI4LDB4NjQsMHgwMCwweEU5LDB4NzksCi0weEZFLDB4OEIsMHg0NiwweDY4LDB4RTksMHg3MywweEZFLDB4OTAsMHgzNiwweDhCLDB4MEUsMHhEQSwweDEyLDB4ODMsMHhGOSwweDMyLAotMHg3MywweDFELDB4MUUsMHgwNiwweDMzLDB4QzAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweDhELDB4NzYsMHg0QywweEJGLDB4REMsMHgxMiwKLTB4MDMsMHhGOSwweEE1LDB4QTUsMHhBNSwweDgzLDB4QzEsMHgwNiwweDg5LDB4MEUsMHhEQSwweDEyLDB4MDcsMHgxRiwweEMzLDB4QjAsCi0weDA4LDB4RTgsMHg2RSwweENELDB4QzMsMHg5MCwweDgzLDB4NjYsMHg0OCwweEZFLDB4RTgsMHg5MywweEM0LDB4RTgsMHhDOCwweEZGLAotMHhDMywweEY2LDB4NDYsMHgyNywweDAyLDB4NzUsMHgwRiwweDlDLDB4RkEsMHg4MywweDdFLDB4MUEsMHgwMCwweDc0LDB4MDksMHg4MCwKLTB4NEUsMHgyNywweDAxLDB4OUQsMHhGOSwweEMzLDB4RjgsMHhDMywweDUwLDB4NTIsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsCi0weDFELDB4RTgsMHgzNCwweERFLDB4ODMsMHhDMiwweDBBLDB4RUMsMHhBOCwweDQwLDB4NzUsMHgyNywweDgzLDB4RUEsMHgwOCwweDhBLAotMHg4NiwweEE1LDB4MDAsMHgwQywweDAyLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFRSwweDVBLDB4NTgsMHhFQiwweEQxLDB4RTgsMHgwQywKLTB4REUsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkIsMHgwQywweDAyLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4NUEsCi0weDU4LDB4RUIsMHhCQywweDgwLDB4NEUsMHgyNywweDAyLDB4NUEsMHg1OCwweDlELDB4RjgsMHhDMywweDA4LDB4NDYsMHgyNiwweDlDLAotMHhGQSwweDhBLDB4OEUsMHhBNSwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc1LDB4MTQsMHhGNiwweEMxLDB4MDYsMHg3NCwKLTB4MjMsMHhFOCwweEQ5LDB4REQsMHg4QSwweEMxLDB4MjQsMHhGOSwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDlELDB4QzMsCi0weEY2LDB4QzEsMHgwMiwweDc0LDB4MEYsMHhFOCwweEQwLDB4REQsMHg4MywweEMyLDB4MDIsMHg4QSwweEMxLDB4MjQsMHhGRCwweDg4LAotMHg4NiwweEE1LDB4MDAsMHhFRSwweDlELDB4QzMsMHg4QiwweDVFLDB4MjYsMHgyMiwweEMzLDB4ODgsMHg0NiwweDI2LDB4NzQsMHgwMSwKLTB4QzMsMHg4MCwweDY2LDB4MjcsMHhGRCwweDlDLDB4RkEsMHg4QSwweDhFLDB4QTUsMHgwMCwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsCi0weDc1LDB4MTYsMHhGNiwweEMxLDB4MDQsMHg3NSwweDBGLDB4RTgsMHg5MywweERELDB4OEEsMHhDMSwweDI0LDB4RkQsMHgwQywweDA0LAotMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg5RCwweEMzLDB4RjYsMHhDMSwweDAyLDB4NzUsMHhGOSwweEU4LDB4ODgsMHhERCwKLTB4ODMsMHhDMiwweDBBLDB4RUMsMHhBOCwweDIwLDB4NzUsMHgwRSwweDgzLDB4RUEsMHgwOCwweDhBLDB4QzEsMHgwQywweDAyLDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweEVFLDB4OUQsMHhDMywweDgzLDB4RUEsMHgwQSwweDMzLDB4QzksMHg4QSwweDRFLDB4MUMsMHg4QiwweDQ2LAotMHgxQSwweDNCLDB4QzgsMHg3MywweDFCLDB4MDEsMHg0RSwweDJBLDB4MkIsMHhDMSwweDg5LDB4NDYsMHgxQSwweDFFLDB4QzUsMHg3NiwKLTB4MDAsMHhGMywweDZFLDB4MUYsMHg4OSwweDc2LDB4MDAsMHg4MywweEMyLDB4MDIsMHg4QSwweDg2LDB4QTUsMHgwMCwweEVCLDB4Q0QsCi0weDg1LDB4QzAsMHg3NCwweDEyLDB4MDEsMHg0NiwweDJBLDB4OEIsMHhDOCwweDFFLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDFGLAotMHg4OSwweDc2LDB4MDAsMHg4OSwweDRFLDB4MUEsMHhGNiwweEM3LDB4MDEsMHg3NSwweDIzLDB4ODAsMHhDQiwweDAyLDB4ODksMHg1RSwKLTB4MjYsMHhFOCwweDA4LDB4QzMsMHg4MywweEMyLDB4MDIsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkQsMHhFRSwweDg4LDB4ODYsCi0weEE1LDB4MDAsMHhGNiwweEM3LDB4MTAsMHg3NSwweDA1LDB4QjAsMHgwMiwweEU4LDB4MTYsMHhDQywweDlELDB4QzMsMHg4MywweEMyLAotMHgwMiwweDhBLDB4ODYsMHhBNSwweDAwLDB4RUIsMHg4NiwweDkwLDB4OEIsMHhEMSwweDhCLDB4NDYsMHgyNCwweDNCLDB4QzgsMHg3NiwKLTB4MDIsMHg4QiwweEM4LDB4MkIsMHhEMSwweDJCLDB4QzEsMHg4QiwweEQ5LDB4RTMsMHgyMiwweDgwLDB4NjYsMHgyNywweEZELDB4OEUsCi0weDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHhGNywweEM2LDB4MDEsMHgwMCwweDc0LDB4MDIsMHhBNCwweDQ5LDB4RDEsMHhFOSwweEYzLAotMHhBNSwweDczLDB4MDEsMHhBNCwweDg5LDB4N0UsMHgyMiwweDg5LDB4NDYsMHgyNCwweDAxLDB4NUUsMHgxQSwweDhCLDB4Q0EsMHg4MCwKLTB4N0UsMHgyNiwweDAyLDB4NzQsMHgwNSwweDgwLDB4NjYsMHgyNiwweEZELDB4QzMsMHg2MCwweEIwLDB4RkQsMHhFOCwweEY2LDB4RkUsCi0weDYxLDB4QzMsMHg1MCwweEU0LDB4MEEsMHg4NCwweEMwLDB4NzUsMHgwQSwweDg2LDB4ODYsMHhBMSwweDAwLDB4ODQsMHhDMCwweDc0LAotMHgwQSwweEU2LDB4MEEsMHg1OCwweDBDLDB4MjAsMHg4OSwweDQ2LDB4NDgsMHhGOSwweEMzLDB4NTgsMHgyNCwweERGLDB4ODksMHg0NiwKLTB4NDgsMHhGOCwweEMzLDB4OTAsMHhGQiwweEIwLDB4MDIsMHhFOCwweEU4LDB4MDcsMHhGQSwweEU4LDB4MkUsMHgwMSwweEZCLDB4QjAsCi0weDAxLDB4RTgsMHhERSwweDA3LDB4RkEsMHhCMCwweDAyLDB4RTgsMHhCQywweENCLDB4RkIsMHg4NSwweEVELDB4NzQsMHhFNSwweEZBLAotMHg4RSwweDVFLDB4MEEsMHhGQiwweDkwLDB4RkEsMHg4QiwweDQ2LDB4NDgsMHg4QiwweDc2LDB4NDAsMHhBOCwweDhDLDB4NzUsMHhERSwKLTB4QTgsMHgyMCwweDc0LDB4MUEsMHg1MCwweEU4LDB4NTUsMHhEQywweDU4LDB4RTgsMHhBNiwweEZGLDB4NzMsMHgxMCwweEIwLDB4MDIsCi0weEU4LDB4NUYsMHhDQiwweEVCLDB4QzksMHg5MCwweDI1LDB4RkYsMHgwMCwweDhCLDB4QzgsMHhFQiwweDM2LDB4OTAsMHhBOCwweDAxLAotMHg3NSwweDIyLDB4NDYsMHg4MywweEU2LDB4RkUsMHgzQiwweDc2LDB4MDgsMHg3NCwweDc5LDB4QUQsMHg4QSwweEZDLDB4QjMsMHhGMCwKLTB4MjIsMHhGQiwweDNBLDB4RkIsMHg3NCwweEUwLDB4M0EsMHhCRSwweEEwLDB4MDAsMHg3NCwweDJFLDB4RTgsMHhEMiwweEZELDB4NzMsCi0weDc3LDB4RUIsMHg5QiwweDkwLDB4OEEsMHhFMCwweDI0LDB4RkMsMHg4OCwweDQ2LDB4NDgsMHg4QiwweDRFLDB4NEEsMHhGNiwweEM0LAotMHgwMiwweDc0LDB4MUQsMHhFOCwweEJCLDB4RkQsMHg3MiwweDg2LDB4RTgsMHgxMywweEYzLDB4ODksMHg3NiwweDQwLDB4RTMsMHg5MywKLTB4ODMsMHg0RSwweDQ4LDB4MDMsMHg4OSwweDRFLDB4NEEsMHhFOSwweDc0LDB4RkYsMHgyNSwweEZGLDB4MEYsMHg4QiwweEM4LDB4OTAsCi0weDhCLDB4ODYsMHg5OCwweDAwLDB4ODUsMHhDMCwweDc0LDB4MUEsMHg1MSwweDhBLDB4OEUsMHhBMCwweDAwLDB4QzAsMHhFOSwweDA0LAotMHhCQSwweDAxLDB4MDAsMHhEMywweEUyLDB4NTksMHgyMywweEMyLDB4NzQsMHgwOCwweDAzLDB4RjEsMHg4OSwweDc2LDB4NDAsMHhFOSwKLTB4NjEsMHhGRiwweEZGLDB4NTYsMHg2MiwweEUzLDB4RjUsMHg4MywweDRFLDB4NDgsMHgwMSwweDg5LDB4NEUsMHg0QSwweDg5LDB4NzYsCi0weDQwLDB4RTksMHgzQSwweEZGLDB4ODEsMHg0RSwweDI2LDB4MDAsMHgxMCwweDhCLDB4NDYsMHg1MCwweDNCLDB4NDYsMHg0NiwweDc3LAotMHgwMywweEU4LDB4NTIsMHhGRCwweEU5LDB4MjcsMHhGRiwweDkwLDB4ODgsMHhCRSwweEEwLDB4MDAsMHhFQiwweEFDLDB4MEEsMHgwNiwKLTB4OTAsMHgxMiwweDhBLDB4RTAsMHhCQSwweDA2LDB4MDEsMHhCMCwweDA0LDB4RUUsMHhFQywweDg0LDB4QzAsMHg3NSwweDEyLDB4QjAsCi0weDA0LDB4RUUsMHg4QSwweEM0LDB4RUUsMHgzMiwweEU0LDB4QTgsMHg4MCwweDc0LDB4MDYsMHhDNywweDA2LDB4ODQsMHgxMiwweDAwLAotMHgwMCwweDg4LDB4MjYsMHg5MCwweDEyLDB4QzMsMHgwQSwweDA2LDB4OTAsMHgxMiwweDhBLDB4RTAsMHhCQSwweDA2LDB4MDEsMHhFQywKLTB4QTgsMHgwMSwweDc1LDB4RUQsMHhCQSwweDA4LDB4MDEsMHg4QSwweEM0LDB4RUUsMHgzMiwweEU0LDB4QTgsMHg4MCwweDc0LDB4RTEsCi0weEM3LDB4MDYsMHg4NCwweDEyLDB4MDAsMHgwMCwweDg4LDB4MjYsMHg5MCwweDEyLDB4QzMsMHg5MCwweDM2LDB4RjcsMHgwNiwweDI0LAotMHgwMSwweDAxLDB4MDAsMHg3NSwweDMwLDB4MzYsMHg4QiwweDBFLDB4REEsMHgxMiwweDgwLDB4RjksMHgzNiwweDczLDB4MjYsMHgzMywKLTB4QzAsMHg4RSwweEMwLDB4OEUsMHhEOCwweEJGLDB4REMsMHgxMiwweDAzLDB4RjksMHhCMCwweDA4LDB4RTgsMHg3NywweENBLDB4ODUsCi0weEVELDB4NzQsMHgwRSwweDhELDB4NzYsMHg0QywweEE1LDB4QTUsMHhBNSwweDgwLDB4QzEsMHgwNiwweDgwLDB4RjksMHgzNiwweDcyLAotMHhFOSwweDg5LDB4MEUsMHhEQSwweDEyLDB4QzMsMHhDMywweDkwLDB4RjcsMHgwNiwweDI2LDB4MDEsMHgwMSwweDAwLDB4NzUsMHhGNiwKLTB4OEIsMHgwRSwweDIwLDB4MTMsMHg4NSwweEM5LDB4NzUsMHhFRSwweDMzLDB4QzAsMHg4RSwweEMwLDB4OEUsMHhEOCwweEJGLDB4MjQsCi0weDEzLDB4QjksMHgzNiwweDAwLDB4QjAsMHgwQSwweEU4LDB4M0QsMHhDQSwweDg1LDB4RUQsMHg3NSwweDA2LDB4RTksMHgxMiwweDAxLAotMHhFOSwweDBBLDB4MDEsMHgzMywweERCLDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwweEIzLDB4MDAsMHhGRSwweENDLDB4NzgsMHgwRSwKLTB4ODgsMHhBNiwweEIzLDB4MDAsMHgwQSwweERDLDB4QjQsMHgwQSwweEFCLDB4ODMsMHhFOSwweDAyLDB4NzYsMHhFMiwweDhBLDB4QTYsCi0weEIyLDB4MDAsMHhGRSwweENDLDB4NzgsMHgwRSwweDg4LDB4QTYsMHhCMiwweDAwLDB4MEEsMHhEQywweEI0LDB4MDgsMHhBQiwweDgzLAotMHhFOSwweDAyLDB4NzYsMHhDQywweDhBLDB4QTYsMHhCMSwweDAwLDB4RkUsMHhDQywweDc4LDB4MTgsMHg4QSwweEJFLDB4QjAsMHgwMCwKLTB4NzUsMHgwNCwweDg4LDB4QTYsMHhCMCwweDAwLDB4ODgsMHhBNiwweEIxLDB4MDAsMHgwQSwweERDLDB4OEEsMHhFNywweEFCLDB4ODMsCi0weEU5LDB4MDIsMHg3NiwweEFDLDB4OEEsMHhBNiwweEI0LDB4MDAsMHhGRSwweENDLDB4NzgsMHgxRiwweDg4LDB4QTYsMHhCNCwweDAwLAotMHgwQSwweERDLDB4QjQsMHgwQiwweEFCLDB4OEEsMHg4NiwweEJDLDB4MDAsMHg4QSwweEE2LDB4QkQsMHgwMCwweEFCLDB4OEIsMHg4NiwKLTB4QkUsMHgwMCwweEFCLDB4ODMsMHhFOSwweDA2LDB4NzYsMHg4OCwweDhBLDB4NDYsMHg0QywweDhBLDB4QTYsMHhCNiwweDAwLDB4RkUsCi0weENDLDB4NzgsMHgxOSwweDg4LDB4QTYsMHhCNiwweDAwLDB4MEEsMHhEQywweEI0LDB4MEMsMHhBQiwweEU4LDB4REIsMHhDQiwweEFCLAotMHg4QiwweDQ2LDB4MkEsMHhBQiwweDgzLDB4RTksMHgwNiwweDc2LDB4NzQsMHg4QSwweDQ2LDB4NEMsMHg4QSwweEE2LDB4QjcsMHgwMCwKLTB4RkUsMHhDQywweDc4LDB4MTksMHg4OCwweEE2LDB4QjcsMHgwMCwweDBBLDB4REMsMHhCNCwweDBELDB4QUIsMHhFOCwweEJBLDB4Q0IsCi0weEFCLDB4OEIsMHg0NiwweDM0LDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDUzLDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwweEI4LAotMHgwMCwweEZFLDB4Q0MsMHg3OCwweDE5LDB4ODgsMHhBNiwweEI4LDB4MDAsMHgwQSwweERDLDB4QjQsMHgwRSwweEFCLDB4QTEsMHg1MCwKLTB4MTIsMHhBQiwweEExLDB4NTIsMHgxMiwweEFCLDB4ODMsMHhFOSwweDA2LDB4NzYsMHgzMiwweDhBLDB4NDYsMHg0QywweDhBLDB4QTYsCi0weEI1LDB4MDAsMHhGRSwweENDLDB4NzgsMHgxOCwweDg4LDB4QTYsMHhCNSwweDAwLDB4MEEsMHhEQywweEI0LDB4MEYsMHhBQiwweDhCLAotMHg4NiwweDlBLDB4MDAsMHhBQiwweDhCLDB4ODYsMHg5QywweDAwLDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDBGLDB4ODQsMHhEQiwKLTB4NzUsMHgwMywweEU5LDB4RUYsMHhGRSwweEIwLDB4MEEsMHhFOCwweEY4LDB4QzgsMHhFOSwweEU3LDB4RkUsMHhCMCwweDBBLDB4RTgsCi0weEYwLDB4QzgsMHhGNywweEQ5LDB4ODMsMHhDMSwweDM2LDB4OEIsMHhDMSwweDBELDB4ODAsMHgwMCwweDg2LDB4QzQsMHhBMywweDIyLAotMHgxMywweDQxLDB4NDEsMHg4OSwweDBFLDB4MjAsMHgxMywweEMzLDB4QTEsMHg4NCwweDEyLDB4MkIsMHhDMSwweDcyLDB4MTEsMHhBMywKLTB4ODQsMHgxMiwweEJFLDB4MjIsMHgxMywweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg4OSwweDBFLDB4MjAsMHgxMywweEY4LDB4QzMsCi0weEY5LDB4QzMsMHhDMywweDgxLDB4RUYsMHg2QSwweDEzLDB4NzQsMHhGOSwweDhCLDB4QzcsMHgwRCwweDgwLDB4MDAsMHg4NiwweEM0LAotMHhBMywweDY4LDB4MTMsMHg0NywweDQ3LDB4ODksMHgzRSwweDY2LDB4MTMsMHhDMywweEY3LDB4MDYsMHgyQSwweDAxLDB4MDEsMHgwMCwKLTB4NzUsMHhFMCwweDhCLDB4MEUsMHg2NiwweDEzLDB4RTMsMHgwNywweDgwLDB4RjksMHgyMCwweDc3LDB4RDUsMHg0OSwweDQ5LDB4MzMsCi0weEMwLDB4OEUsMHhDMCwweDhFLDB4RDgsMHhCRiwweDZBLDB4MTMsMHg4QiwweEY3LDB4MDMsMHhGOSwweDgzLDB4QzYsMHgzNCwweDNCLAotMHhGRSwweDc3LDB4QzAsMHhCMCwweDBFLDB4RTgsMHhBRSwweEM4LDB4ODUsMHhFRCwweDc0LDB4QjcsMHg4QSwweDQ2LDB4NEMsMHg4QSwKLTB4QjYsMHhCOSwweDAwLDB4RkUsMHhDRSwweDc4LDB4MTUsMHg4OCwweEI2LDB4QjksMHgwMCwweDhBLDB4QTYsMHhBOSwweDAwLDB4ODAsCi0weENDLDB4QzAsMHhBQiwweDg0LDB4RjYsMHg3NCwweDA1LDB4QjAsMHgwRSwweEU4LDB4NTYsMHhDOCwweDhBLDB4QjYsMHhCQSwweDAwLAotMHhGRSwweENFLDB4NzgsMHhDQiwweDhBLDB4OUUsMHhBOSwweDAwLDB4OEEsMHhCRSwweEFCLDB4MDAsMHg4QSwweDU2LDB4M0YsMHg4QSwKLTB4RjMsMHgzMiwweEY3LDB4MEEsMHhCNiwweEFDLDB4MDAsMHhDNiwweDg2LDB4QUMsMHgwMCwweDAwLDB4MjIsMHhGMiwweDc0LDB4NEIsCi0weEY2LDB4QzYsMHgwOCwweDc0LDB4MEYsMHhCNCwweDAyLDB4RjYsMHhDMywweDA4LDB4NzUsMHgwMiwweEI0LDB4MDMsMHhBQiwweDgwLAotMHhFNiwweEY3LDB4NzQsMHgzNywweEY2LDB4QzYsMHgwMSwweDc0LDB4MEYsMHhCNCwweDAwLDB4RjYsMHhDMywweDAxLDB4NzUsMHgwMiwKLTB4QjQsMHgwMSwweEFCLDB4ODAsMHhFNiwweEZFLDB4NzQsMHgyMywweEY2LDB4QzYsMHgwMiwweDc0LDB4MEYsMHhCNCwweDA0LDB4RjYsCi0weEMzLDB4MDIsMHg3NSwweDAyLDB4QjQsMHgwNSwweEFCLDB4ODAsMHhFNiwweEZELDB4NzQsMHgwRiwweEY2LDB4QzYsMHgwNCwweDc0LAotMHgwQSwweEI0LDB4MDYsMHhGNiwweEMzLDB4MDQsMHg3NSwweDAyLDB4QjQsMHgwNywweEFCLDB4QzYsMHg4NiwweEJBLDB4MDAsMHgwMCwKLTB4ODgsMHg5RSwweEFCLDB4MDAsMHhFOSwweDU4LDB4RkYsMHg5MCwweEExLDB4ODQsMHgxMiwweDJCLDB4QzEsMHg3MiwweDExLDB4QTMsCi0weDg0LDB4MTIsMHhCRSwweDY4LDB4MTMsMHhEMSwweEU5LDB4RjMsMHg2RiwweDkwLDB4ODksMHgwRSwweDY2LDB4MTMsMHhGOCwweEMzLAotMHhGOSwweEMzLDB4QTEsMHg4NCwweDEyLDB4NDEsMHg0MSwweDJCLDB4QzEsMHg3MiwweDIzLDB4QTMsMHg4NCwweDEyLDB4OEIsMHhDMSwKLTB4NDgsMHg0OCwweDMyLDB4RTQsMHgwQywweDgwLDB4ODYsMHhDNCwweEVGLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg5MCwweEJFLDB4REMsCi0weDEyLDB4NDksMHg0OSwweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg4OSwweDBFLDB4REEsMHgxMiwweEY4LDB4QzMsMHhGOSwweEMzLAotMHg4QSwweEM4LDB4OEEsMHg0NiwweDRDLDB4QjQsMHgwMSwweDgzLDB4RUIsMHgwNiwweEVGLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg5MCwKLTB4QjgsMHgwMSwweDAwLDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4OEEsMHhDMSwweEVGLDB4OTAsMHg5MCwweDkwLDB4OTAsCi0weDkwLDB4RTksMHg5NywweDAwLDB4RTksMHhBQywweDAwLDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4OSwweDFFLDB4ODQsMHgxMiwweEMzLAotMHgzNiwweDhCLDB4MUUsMHg4NCwweDEyLDB4RkIsMHg5MCwweEZBLDB4QjAsMHgwQywweEU4LDB4ODksMHhDNywweDg1LDB4RUQsMHg3NCwKLTB4RTYsMHhDNSwweDc2LDB4MEMsMHg4MywweEZCLDB4MTQsMHg3MiwweERCLDB4RkIsMHg5MCwweEZBLDB4QUQsMHg4NSwweEMwLDB4NzgsCi0weEFGLDB4NzQsMHhFMiwweDhCLDB4RkUsMHgwMywweEY4LDB4MzYsMHg4QiwweDBFLDB4ODYsMHgxMiwweDNCLDB4QzEsMHg3NywweDAyLAotMHg4QiwweEM4LDB4ODMsMHhFQiwweDA0LDB4M0IsMHhEOSwweDc3LDB4MDIsMHg4QiwweENCLDB4MzMsMHhDMCwweDhBLDB4NDYsMHg0QywKLTB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4OEIsMHhDMSwweEVGLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg5MCwweDQxLDB4ODAsCi0weEUxLDB4RkUsMHgyQiwweEQ5LDB4NTEsMHhEMSwweEU5LDB4RjMsMHg2RiwweDkwLDB4NTksMHg4QiwweEM3LDB4NDAsMHgyNCwweEZFLAotMHgzQiwweEM2LDB4NzQsMHgyNywweDJCLDB4RkUsMHg0RSwweDRFLDB4NTMsMHg4QiwweDVFLDB4MTAsMHgzQiwweEYzLDB4NzIsMHgxMywKLTB4MDMsMHgxRiwweDgzLDB4QzMsMHgwMywweDgwLDB4RTMsMHhGRSwweEM3LDB4MDcsMHgwMCwweDAwLDB4ODMsMHg2RSwweDc0LDB4MDIsCi0weDg5LDB4NUUsMHgxMCwweDVCLDB4ODksMHgzQywweDg5LDB4NzYsMHgwQywweEVCLDB4ODksMHg4OSwweDc2LDB4MEMsMHgzOSwweDc2LAotMHgxMCwweDc3LDB4ODEsMHg3MiwweDA4LDB4ODMsMHgzQywweDAwLDB4NzQsMHgwMywweEU5LDB4NzcsMHhGRiwweEU4LDB4MEQsMHhCRSwKLTB4RTksMHg2MiwweEZGLDB4MzYsMHg4OSwweDFFLDB4ODQsMHgxMiwweEIwLDB4MEMsMHhFOCwweEI1LDB4QzYsMHgzMywweEMwLDB4OEUsCi0weEQ4LDB4QzMsMHhBMSwweDg0LDB4MTIsMHgzRCwweDEwLDB4MDAsMHg3MiwweDc3LDB4QkEsMHgwNCwweDAxLDB4M0IsMHgwNiwweDg4LAotMHgxMiwweDc1LDB4MDYsMHhDNywweDA2LDB4N0UsMHgxMiwweDAwLDB4MDAsMHg4QiwweDBFLDB4REEsMHgxMiwweEUzLDB4MEIsMHhFOCwKLTB4RDAsMHhGRSwweDcyLDB4NTcsMHhDNywweDA2LDB4N0UsMHgxMiwweEZGLDB4N0YsMHg4QiwweDBFLDB4MjAsMHgxMywweEUzLDB4MEIsCi0weEU4LDB4QTUsMHhGRCwweDcyLDB4NDYsMHhDNywweDA2LDB4N0UsMHgxMiwweEZGLDB4N0YsMHg4QiwweDBFLDB4NjYsMHgxMywweEUzLAotMHgwQiwweEU4LDB4OTQsMHhGRSwweDcyLDB4MzUsMHhDNywweDA2LDB4N0UsMHgxMiwweEZGLDB4N0YsMHhBMSwweDI4LDB4MDEsMHhBOSwKLTB4MDEsMHgwMCwweDc1LDB4MDMsMHhFOCwweEY5LDB4RkUsMHg4MCwweDNFLDB4OEQsMHgxMiwweDAwLDB4NzUsMHgxRCwweEExLDB4ODQsCi0weDEyLDB4M0QsMHgyMCwweDAwLDB4NzYsMHgxNSwweDNCLDB4MDYsMHg4MiwweDEyLDB4NzYsMHgwOSwweEExLDB4N0UsMHgxMiwweDNCLAotMHgwNiwweDgwLDB4MTIsMHg3MiwweDBDLDB4ODAsMHgwRSwweDkwLDB4MTIsMHg4MCwweEMzLDB4QjAsMHg4MCwweEZGLDB4MTYsMHg3QywKLTB4MTIsMHhDMywweDgwLDB4MEUsMHg5MCwweDEyLDB4NDAsMHhDMywweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MTcsCi0weDlDLDB4MEUsMHhFOCwweEI3LDB4QzgsMHg2QSwweDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDIwLDB4OUMsMHgwRSwweEU4LAotMHhBQSwweEM4LDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxNiwweDlDLDB4MEUsMHhFOCwweDlELDB4QzgsMHg5MCwKLTB4QkEsMHgwNiwweDAxLDB4RUMsMHhBOCwweDIwLDB4NzUsMHhDQSwweEZCLDB4OTAsMHhGQSwweEJBLDB4MDQsMHgwMSwweEVELDB4OTAsCi0weDkwLDB4OTAsMHg5MCwweDkwLDB4M0EsMHgwNiwweDk0LDB4MTIsMHg3NywweEJFLDB4MzMsMHhEQiwweDhBLDB4RDgsMHhEMSwweEUzLAotMHgyRSwweDhCLDB4QUYsMHg0NCwweDAwLDB4QzQsMHg3RSwweDA4LDB4ODUsMHhGRiwweDc0LDB4QjksMHhGNiwweEM0LDB4QzAsMHg3NSwKLTB4NTUsMHgzMiwweEMwLDB4QzEsMHhFMCwweDAyLDB4ODAsMHhFNCwweEYwLDB4OEIsMHhGMCwweEVELDB4OTAsMHg5MCwweDkwLDB4OTAsCi0weDkwLDB4ODUsMHhDMCwweDc0LDB4QkIsMHg4QiwweEM4LDB4NDEsMHg4MCwweEUxLDB4RkUsMHgwQiwweEM2LDB4OEIsMHg1RSwweDUwLAotMHg0QiwweDRCLDB4MkIsMHhEOSwweDc4LDB4OUMsMHhBQiwweDhCLDB4QzEsMHg0MCwweDQwLDB4MDEsMHg0NiwweDRFLDB4RDEsMHhFOSwKLTB4RjMsMHg2RCwweDkwLDB4ODksMHg1RSwweDUwLDB4ODksMHg3RSwweDA4LDB4OEIsMHg0NiwweDI2LDB4ODAsMHhFNCwweEVGLDB4ODksCi0weDQ2LDB4MjYsMHhGNiwweEM0LDB4MDEsMHg3NSwweDBDLDB4RjcsMHg0NiwweDQ4LDB4MEMsMHgwMCwweDc1LDB4MDUsMHhCMCwweDAyLAotMHhFOCwweDdGLDB4QzUsMHhFOSwweDdBLDB4RkYsMHg4NiwweEM0LDB4OEIsMHhDOCwweDgzLDB4RTEsMHgzRiwweDQxLDB4ODAsMHhFMSwKLTB4RkUsMHhFMywweDBBLDB4M0MsMHg4MCwweDcyLDB4MDksMHgyNCwweDNGLDB4QjQsMHhGMCwweEVCLDB4QjAsMHhFOSwweDYwLDB4RkYsCi0weDI1LDB4M0YsMHgwMCwweDMzLDB4RkYsMHg4RSwweEM3LDB4QkYsMHg5NiwweDEyLDB4OEIsMHhGNywweEQxLDB4RTksMHhGMywweDZELAotMHg5MCwweDhCLDB4QzgsMHhFOCwweDQ4LDB4RUQsMHhFOSwweDQ3LDB4RkYsMHg5MCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywKLTB4MTIsMHgxQiwweDlDLDB4MEUsMHhFOCwweEQ1LDB4QzcsMHg5MCwweDYwLDB4MUUsMHgwNiwweDMzLDB4QzAsMHg4RSwweEQ4LDB4OEUsCi0weEMwLDB4QkEsMHgwNiwweDAxLDB4RUMsMHhBOCwweDA0LDB4NzQsMHhFMSwweEIwLDB4MDYsMHhFRSwweEVDLDB4QTIsMHg4QywweDEyLAotMHhBOCwweDQwLDB4NzQsMHgxMSwweEExLDB4ODgsMHgxMiwweEEzLDB4ODQsMHgxMiwweEM2LDB4MDYsMHg4RCwweDEyLDB4MDAsMHhFOCwKLTB4NjAsMHhGRSwweEEwLDB4OEMsMHgxMiwweEE4LDB4ODAsMHg3NCwweDAzLDB4RTgsMHgwNCwweEZGLDB4QjgsMHgwMCwweDgwLDB4QkEsCi0weDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHg2QSwweDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDFCLAotMHg5QywweDBFLDB4RTgsMHg4NywweEM3LDB4OTAsMHg2MCwweDFFLDB4MDYsMHgzMywweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHhCQSwKLTB4MDYsMHgwMSwweEVDLDB4QTgsMHgwNCwweDc0LDB4RTEsMHhCQSwweDA4LDB4MDEsMHhFQywweEEyLDB4OEMsMHgxMiwweEE4LDB4NDAsCi0weDc0LDB4MTEsMHhBMSwweDg4LDB4MTIsMHhBMywweDg0LDB4MTIsMHhDNiwweDA2LDB4OEQsMHgxMiwweDAwLDB4RTgsMHgxMiwweEZFLAotMHhBMCwweDhDLDB4MTIsMHhBOCwweDgwLDB4NzQsMHgwMywweEU4LDB4QjYsMHhGRSwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwKLTB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLDB4RUUsMHg4NiwweEUwLDB4RUUsMHg4NiwweEUwLDB4RUMsMHg4NiwweEUwLDB4RUMsCi0weDg2LDB4RTAsMHg4MCwweEUxLDB4RkUsMHhGMywweDZDLDB4OTAsMHg4MCwweEUxLDB4RkUsMHhGMywweDZFLDB4OTAsMHgwNSwweDAwLAotMHg3NSwweDQ3LDB4QTgsMHg0QiwweDA1LDB4MDAsMHg3NSwweDQ4LDB4QTgsMHg0QiwweDA1LDB4MDAsMHhBMywweDQ4LDB4QTgsMHg0QiwKLTB4MDUsMHgwMCwweDM1LDB4NDksMHhBOCwweDRCLDB4MDYsMHgwMCwweDk4LDB4NDgsMHg5NiwweDRCLDB4MDYsMHgwMCwweEJBLDB4NDgsCi0weDk2LDB4NEIsMHgwNiwweDAwLDB4QzMsMHg0OCwweDk2LDB4NEIsMHgwNiwweDAwLDB4Q0IsMHg0OCwweDk2LDB4NEIsMHgwNiwweDAwLAotMHgyMCwweDQ5LDB4OTYsMHg0QiwweDA2LDB4MDAsMHgyOCwweDQ5LDB4OTYsMHg0QiwweDA2LDB4MDAsMHg0RSwweDRBLDB4OUMsMHg0QiwKLTB4MDYsMHgwMCwweDdCLDB4NEEsMHg5QywweDRCLDB4MDUsMHgwMCwweDlFLDB4NEEsMHhBMiwweDRCLDB4MDUsMHgwMCwweEVDLDB4NEEsCi0weEEyLDB4NEIsMHgwMCwweDAwLDB4MUUsMHgwNiwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NCwweDA5LDB4QTAsMHgwNiwweDAxLAotMHgyNCwweDMwLDB4M0MsMHgzMCwweDc0LDB4MUEsMHg4QywweEM4LDB4OEUsMHhEOCwweDhFLDB4QzAsMHhCQiwweEFFLDB4NEIsMHg4QiwKLTB4MEYsMHhFMywweDBELDB4OEIsMHg3RiwweDAyLDB4OEIsMHg3NywweDA0LDB4RjMsMHhBNCwweDgzLDB4QzMsMHgwNiwweEVCLDB4RUYsCi0weDA3LDB4MUYsMHhDMywweDkwLDB4MzMsMHhDMCwweEEzLDB4M0UsMHgwMSwweEI5LDB4MEMsMHgwMSwweEJFLDB4NDAsMHgwMSwweDhCLAotMHhGRSwweDgxLDB4QzYsMHhCNCwweDBGLDB4ODksMHgwNCwweDhCLDB4QzYsMHgyQiwweEYxLDB4M0IsMHhDNywweDc3LDB4RjYsMHhBMywKLTB4M0MsMHgwMSwweEMzLDB4OTAsMHgxRSwweDA2LDB4NjAsMHgzNiwweDhCLDB4MkUsMHgzRSwweDAxLDB4OEIsMHg1RSwweDAwLDB4M0IsCi0weEVCLDB4NzQsMHgyQiwweDhCLDB4NzYsMHgwMiwweDg5LDB4MUMsMHg4OSwweDc3LDB4MDIsMHgzNiwweEExLDB4M0MsMHgwMSwweDg5LAotMHg0NiwweDAwLDB4MzYsMHg4OSwweDJFLDB4M0MsMHgwMSwweDhCLDB4RUIsMHhGRiwweDRFLDB4MDYsMHg3NCwweDA4LDB4OEIsMHg2RSwKLTB4MDAsMHhGRiwweDRFLDB4MDYsMHg3NSwweEY4LDB4MzYsMHg4OSwweDJFLDB4M0UsMHgwMSwweDhCLDB4NjYsMHgwNCwweDYxLDB4MDcsCi0weDFGLDB4QzMsMHgxRSwweDA2LDB4NjAsMHgzNiwweDhCLDB4MkUsMHgzRSwweDAxLDB4OTgsMHg4OSwweDQ2LDB4MDYsMHg4OSwweDY2LAotMHgwNCwweDNCLDB4NkUsMHgwMCwweDc0LDB4MTAsMHg4QiwweDZFLDB4MDAsMHhGRiwweDRFLDB4MDYsMHg3NSwweEY4LDB4MzYsMHg4OSwKLTB4MkUsMHgzRSwweDAxLDB4OEIsMHg2NiwweDA0LDB4NjEsMHgwNywweDFGLDB4QzMsMHhDMywweDkwLDB4MUUsMHgwNiwweDYwLDB4OUMsCi0weEZBLDB4MzMsMHhFRCwweDhFLDB4REQsMHg4QiwweDJFLDB4M0MsMHgwMSwweDg1LDB4RUQsMHg3NCwweDNELDB4OEIsMHg0RSwweDAwLAotMHg4OSwweDBFLDB4M0MsMHgwMSwweDhCLDB4Q0MsMHg4RCwweEE2LDB4MEEsMHgwMSwweDU2LDB4MUUsMHgwNiwweDYwLDB4ODksMHg2NiwKLTB4MDQsMHhDNywweDQ2LDB4MDgsMHgwRiwweDFBLDB4QzcsMHg0NiwweDA2LDB4MDEsMHgwMCwweDhCLDB4MUUsMHgzRSwweDAxLDB4ODUsCi0weERCLDB4NzQsMHgxRCwweDhCLDB4QzUsMHg4NywweDA3LDB4ODksMHg0NiwweDAwLDB4ODksMHg1RSwweDAyLDB4OEIsMHhEOCwweDg5LAotMHg2RiwweDAyLDB4OEIsMHhFMSwweDlELDB4NjEsMHgwNywweDFGLDB4RjgsMHhDMywweDlELDB4NjEsMHgwNywweDFGLDB4RjksMHhDMywKLTB4ODksMHgyRSwweDNFLDB4MDEsMHg4OSwweDZFLDB4MDAsMHg4OSwweDZFLDB4MDIsMHg4NywweEUxLDB4OUQsMHg4QiwweEUxLDB4RUIsCi0weEU0LDB4MDAsMHgwRCwweDBBLDB4NTQsMHg2NSwweDcyLDB4NkQsMHg2OSwweDZFLDB4NjEsMHg2QywweDczLDB4MjAsMHg3MywweDc1LAotMHg3MCwweDcwLDB4NkYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDNBLDB4MEQsMHgwQSwweDMxLDB4MjksMHgyMCwweDQxLDB4NEUsMHg1MywKLTB4NDksMHgyMCwweDYzLDB4NkYsMHg2RCwweDcwLDB4NjEsMHg3NCwweDY5LDB4NjIsMHg2QywweDY1LDB4MEQsMHgwQSwweDMyLDB4MjksCi0weDIwLDB4NTcsMHg3OSwweDczLDB4NjUsMHgyMCwweDMzLDB4MzAsMHgwRCwweDBBLDB4NTAsMHg2QywweDY1LDB4NjEsMHg3MywweDY1LAotMHgyMCwweDczLDB4NjUsMHg2QywweDY1LDB4NjMsMHg3NCwweDNBLDB4MjAsMHgwMCwweDBELDB4MEEsMHg2MywweDZGLDB4NjQsMHg2NSwKLTB4MjAsMHg3MywweDY1LDB4NjcsMHg2RCwweDY1LDB4NkUsMHg3NCwweDNELDB4MDAsMHgwRCwweDBBLDB4NEQsMHg2RiwweDZFLDB4NjksCi0weDc0LDB4NkYsMHg3MiwweDIwLDB4NzYsMHgzMiwweDJFLDB4MzUsMHgwQSwweDBELDB4MEEsMHgzRSwweDAwLDB4MEQsMHgwQSwweDUwLAotMHg2MSwweDcyLDB4NjQsMHg2RiwweDZFLDB4M0YsMHgwMCwweDBELDB4MEEsMHg0RSwweDZGLDB4MjAsMHg2MSwweDY0LDB4NjQsMHg3MiwKLTB4NjUsMHg3MywweDczLDB4MjAsMHg3MywweDcwLDB4NjUsMHg2MywweDY5LDB4NjYsMHg2OSwweDY1LDB4NjQsMHgwMCwweDBELDB4MEEsCi0weDNBLDB4MDAsMHgwRCwweDBBLDB4MDAsMHg0QywweDZGLDB4NjMsMHgzRCwweDAwLDB4MEQsMHgwQSwweDQ2LDB4NDEsMHg1NCwweDQxLAotMHg0QywweDIwLDB4NDUsMHg1MiwweDUyLDB4NEYsMHg1MiwweDNELDB4MDAsMHgwRCwweDBBLDB4NEQsMHg2RiwweDZFLDB4NjksMHg3NCwKLTB4NkYsMHg3MiwweDIwLDB4NjMsMHg2RiwweDZELDB4NkQsMHg2MSwweDZFLDB4NjQsMHg3MywweDNBLDB4MkQsMHgwRCwweDBBLDB4MjAsCi0weDIwLDB4MjAsMHg0NCwweDJDLDB4NjQsMHg1QiwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgzQSwweDVELDB4NzgsMHg3OCwweDc4LAotMHg3OCwweDVELDB4MjAsMHgyRCwweDIwLDB4NjQsMHg3NSwweDZELDB4NzAsMHgyMCwweDZELDB4NjUsMHg2RCwweDZGLDB4NzIsMHg3OSwKLTB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDRDLDB4MkMsMHg2QywweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsCi0weDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDJELDB4MjAsMHg2NCwweDc1LDB4NkQsMHg3MCwweDIwLDB4NzMsMHg2OSwweDZFLAotMHg2NywweDZDLDB4NjUsMHgyMCwweDZDLDB4NjksMHg2RSwweDY1LDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDQ1LDB4MkMsMHg2NSwKLTB4NUIsMHg1QiwweDc4LDB4NzgsMHg3OCwweDc4LDB4M0EsMHg1RCwweDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDJELDB4MjAsCi0weDY1LDB4NjQsMHg2OSwweDc0LDB4MjAsMHg2RCwweDY1LDB4NkQsMHg2RiwweDcyLDB4NzksMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLAotMHg0NiwweDJDLDB4NjYsMHg1QiwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgyMCwweDVELDB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwKLTB4MjAsMHgyRCwweDIwLDB4NjYsMHg2OSwweDZDLDB4NkMsMHgyMCwweDZELDB4NjUsMHg2RCwweDZGLDB4NzIsMHg3OSwweDIwLDB4NzAsCi0weDYxLDB4NzIsMHg2MSwweDY3LDB4NzIsMHg2MSwweDcwLDB4NjgsMHg3MywweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg0OSwweDVCLAotMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwKLTB4MjAsMHg3NywweDZGLDB4NzIsMHg2NCwweDIwLDB4NjksMHg2RSwweDcwLDB4NzUsMHg3NCwweDIwLDB4NjYsMHg3MiwweDZGLDB4NkQsCi0weDIwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NjksMHg1QiwweDc4LDB4NzgsMHg3OCwweDc4LAotMHg1RCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDYyLDB4NzksMHg3NCwKLTB4NjUsMHgyMCwweDY5LDB4NkUsMHg3MCwweDc1LDB4NzQsMHgyMCwweDY2LDB4NzIsMHg2RiwweDZELDB4MjAsMHg3MCwweDZGLDB4NzIsCi0weDc0LDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDRGLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgyMCwweDc4LDB4NzgsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELDB4MjAsMHg2RiwweDc1LDB4NzQsMHg3MCwweDc1LDB4NzQsMHgyMCwKLTB4NzcsMHg2RiwweDcyLDB4NjQsMHgyMCwweDc0LDB4NkYsMHgyMCwweDcwLDB4NkYsMHg3MiwweDc0LDB4MEQsMHgwQSwweDIwLDB4MjAsCi0weDIwLDB4NkYsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4NzgsMHg3OCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MkQsMHgyMCwweDZGLDB4NzUsMHg3NCwweDcwLDB4NzUsMHg3NCwweDIwLDB4NjIsMHg3OSwweDc0LDB4NjUsMHgyMCwKLTB4NzQsMHg2RiwweDIwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NDcsMHg1QiwweDVCLDB4NzgsCi0weDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDY3LAotMHg2RiwweDc0LDB4NkYsMHgyMCwweDYxLDB4NjQsMHg2NCwweDcyLDB4NjUsMHg3MywweDczLDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwKLTB4NTcsMHg1QiwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgzQSwweDVELDB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwweDIwLDB4MjAsCi0weDIwLDB4MkQsMHgyMCwweDc3LDB4NjEsMHg3NCwweDYzLDB4NjgsMHgyMCwweDYxLDB4MjAsMHg3NywweDZGLDB4NzIsMHg2NCwweDBELAotMHgwQSwweDIwLDB4MjAsMHgyMCwweDQzLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELDB4MjAsMHg2OSwweDZFLDB4NzQsMHg2NSwweDcyLDB4NzIsMHg3NSwweDcwLDB4NzQsCi0weDczLDB4MjAsMHg2RiwweDY2LDB4NjYsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NTMsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDY5LDB4NkUsMHg3NCwKLTB4NjUsMHg3MiwweDcyLDB4NzUsMHg3MCwweDc0LDB4NzMsMHgyMCwweDZGLDB4NkUsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NzMsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyRCwweDIwLDB4NzMsMHg2OSwweDZFLDB4NjcsMHg2QywweDY1LDB4MjAsMHg3MywweDc0LDB4NjUsMHg3MCwweDBELDB4MEEsMHgyMCwKLTB4MjAsMHgyMCwweDQyLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDJELDB4MjAsMHg2MiwweDcyLDB4NjUsMHg2MSwweDZCLDB4NzAsMHg2RiwweDY5LDB4NkUsMHg3NCwweDIwLAotMHg3MywweDY1LDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NjIsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDYyLDB4NzIsMHg2NSwweDYxLDB4NkIsCi0weDcwLDB4NkYsMHg2OSwweDZFLDB4NzQsMHgyMCwweDYzLDB4NkMsMHg2NSwweDYxLDB4NzIsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLAotMHg1MiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyRCwweDIwLDB4NzIsMHg2NSwweDczLDB4NzQsMHg2MSwweDcyLDB4NzQsMHgyMCwweDYyLDB4NzIsMHg2NSwweDYxLDB4NkIsCi0weDcwLDB4NkYsMHg2OSwweDZFLDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NzIsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDcyLDB4NjUsMHg2NywKLTB4NjksMHg3MywweDc0LDB4NjUsMHg3MiwweDczLDB4MjAsMHg2MSwweDc0LDB4MjAsMHg2MiwweDcyLDB4NkIsMHg3MCwweDc0LDB4MEQsCi0weDBBLDB4MjAsMHgyMCwweDIwLDB4NTgsMHgyQywweDc4LDB4MjAsMHg2RSwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDY1LDB4NzgsMHg2MSwweDZELDB4NjksMHg2RSwweDY1LDB4MjAsMHg2MywKLTB4NjgsMHg2MSwweDZFLDB4NkUsMHg2NSwweDZDLDB4MjAsMHg2RSwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg0OCwweDJDLDB4M0YsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLAotMHg3NCwweDY4LDB4NjksMHg3MywweDIwLDB4NkQsMHg2NSwweDczLDB4NzMsMHg2MSwweDY3LDB4NjUsMHgwMCwweDFCLDB4NUIsMHgzMiwKLTB4NEEsMHgxQiwweDVCLDB4MzEsMHgzQiwweDMxLDB4NDgsMHg0MSwweDRFLDB4NTMsMHg0OSwweDIwLDB4NTQsMHg2NSwweDcyLDB4NkQsCi0weDY5LDB4NkUsMHg2MSwweDZDLDB4MEQsMHgwQSwweDBBLDB4MDAsMHgxQiwweDVCLDB4NEIsMHgwMCwweDFCLDB4NUIsMHg0QSwweDAwLAotMHgxQiwweDVCLDB4MzIsMHg0QSwweDFCLDB4NUIsMHgzMSwweDNCLDB4MzEsMHg0OCwweDAwLDB4MUIsMHg1QiwweDQ0LDB4MjAsMHgxQiwKLTB4NUIsMHg0NCwweDAwLDB4MUIsMHg1QiwweDMxLDB4M0IsMHgzNywweDMyLDB4NDgsMHgwMCwweDFCLDB4NUIsMHgwMCwweDNCLDB4MDAsCi0weDQ4LDB4MDAsMHgxQiwweDVCLDB4NzMsMHgwMCwweDFCLDB4NUIsMHg3NSwweDAwLDB4MUIsMHg3QSwweDJCLDB4MEIsMHg3RiwweDFCLAotMHg3QSwweDJFLDB4MEMsMHg3RiwweDFCLDB4N0EsMHgyRCwweDA4LDB4N0YsMHgxQiwweDdBLDB4MkMsMHgwQSwweDdGLDB4MUIsMHg3QSwKLTB4MjIsMHgwOCwweDdGLDB4MUEsMHg1NywweDc5LDB4NzMsMHg2NSwweDIwLDB4MzMsMHgzMCwweDIwLDB4NTQsMHg2NSwweDcyLDB4NkQsCi0weDY5LDB4NkUsMHg2MSwweDZDLDB4MEQsMHgwQSwweDAwLDB4MUIsMHg1NCwweDAwLDB4MUIsMHg1OSwweDAwLDB4MUEsMHgwMCwweDFFLAotMHgwMCwweDA4LDB4MjAsMHgwOCwweDAwLDB4MDAsMHgxQiwweDNELDB4MDAsMHgwMCwweDAwLDB4MUIsMHg0NiwweDAwLDB4MEQsMHgwMCwKLTB4M0YsMHg0NCwweDY0LDB4NDUsMHg2NSwweDQ2LDB4NjYsMHg0NywweDY3LDB4NDgsMHg2OCwweDQ5LDB4NjksMHg0RiwweDZGLDB4NDMsCi0weDYzLDB4NTMsMHg3MywweDQyLDB4NjIsMHg1MiwweDcyLDB4NTcsMHg3NywweDU4LDB4NzgsMHg0QywweDZDLDB4M0MsMHg2MCwweEQ0LAotMHg1NywweEQ0LDB4NTcsMHg1MCwweDU4LDB4NTAsMHg1OCwweEQ2LDB4NTksMHhENiwweDU5LDB4QjQsMHg1OSwweEI0LDB4NTksMHgzQywKLTB4NjAsMHgzQywweDYwLDB4NkMsMHg1NywweDQ4LDB4NTcsMHgyNiwweDU3LDB4MDYsMHg1NywweDkwLDB4NTcsMHg5MCwweDU3LDB4OTgsCi0weDU3LDB4NDgsMHg1RiwweDBDLDB4NUYsMHg1OCwweDVGLDB4MzMsMHg1RiwweDQwLDB4NUYsMHhBMCwweDU3LDB4QTAsMHg1NywweEZFLAotMHg1OSwweEZFLDB4NTksMHhEQywweDU3LDB4REMsMHg1NywweDg4LDB4NjEsMHg5OCwweDYxLDB4QzAsMHg2MSwweENDLDB4NjEsMHhEOCwKLTB4NjEsMHhGNiwweDYxLDB4MDIsMHg2MiwweDIyLDB4NjIsMHhGOCwweDU2LDB4NEEsMHg2MiwweDU4LDB4NjIsMHg2MCwweDU5LDB4MjAsCi0weDIwLDB4NjYsMHg2QywweDYxLDB4NjcsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjEsMHg3OCwweDNELDB4MDAsMHgyMCwweDIwLAotMHg2MiwweDc4LDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDc4LDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2NCwweDc4LDB4M0QsMHgwMCwKLTB4MjAsMHgyMCwweDYzLDB4NzMsMHgzRCwweDAwLDB4MjAsMHgyMCwweDY0LDB4NzMsMHgzRCwweDAwLDB4MjAsMHgyMCwweDY1LDB4NzMsCi0weDNELDB4MDAsMHgyMCwweDIwLDB4NzMsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDNELDB4MDAsMHgyMCwweDIwLAotMHg3MywweDY5LDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MiwweDcwLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg3MywweDcwLDB4M0QsMHgwMCwKLTB4MjAsMHgyMCwweDY5LDB4NzAsMHgzRCwweDAwLDB4MjAsMHg2MywweDY4LDB4NjEsMHg2RSwweDY1LDB4NkMsMHgzRCwweDAwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDczLDB4NjUsMHg2NywweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwweDczLDB4NzQsMHg3MiwweDNELAotMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NzQsMHg2RiwweDczLDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NkQsMHg2MSwKLTB4NzgsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg2MiwweDYxLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsCi0weDczLDB4NjksMHg3QSwweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwweDczLDB4NzQsMHg2NiwweDNELDB4MDAsMHgyMCwweDc0LAotMHg2OSwweDVGLDB4NzIsMHg2RiwweDZGLDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NjYsMHg2QywweDY3LDB4M0QsMHgwMCwKLTB4MjAsMHg3NCwweDY5LDB4NUYsMHg3NCwweDZGLDB4NzQsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3MCwweDYzLDB4NkUsCi0weDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDczLDB4NzQsMHg3MiwweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDczLAotMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzIsMHg2RiwweDZGLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwKLTB4NUYsMHg2MiwweDYxLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3MywweDY5LDB4N0EsMHgzRCwweDAwLDB4MjAsCi0weDcyLDB4NjksMHg1RiwweDc0LDB4NkYsMHg3NCwweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDZELDB4NjksMHg2RSwweDNELAotMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NjYsMHg2QywweDY3LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzQsMHg2RiwKLTB4NzMsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3NCwweDY4LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY4LDB4NUYsCi0weDczLDB4NzQsMHg2NiwweDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwweDczLDB4NzQsMHg3MiwweDNELDB4MDAsMHgyMCwweDc0LAotMHg2OCwweDVGLDB4NjIsMHg2MSwweDczLDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OCwweDVGLDB4NzMsMHg2OSwweDdBLDB4M0QsMHgwMCwKLTB4MjAsMHg3NCwweDY4LDB4NUYsMHg3NCwweDcyLDB4NjcsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY4LDB4NUYsMHg2NiwweDZDLDB4NjcsCi0weDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwweDYzLDB4NkUsMHg3NCwweDNELDB4MDAsMHgyMCwweDcyLDB4NjgsMHg1RiwweDczLAotMHg3NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NzMsMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwKLTB4NUYsMHg2MiwweDYxLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg3MywweDY5LDB4N0EsMHgzRCwweDAwLDB4MjAsCi0weDcyLDB4NjgsMHg1RiwweDczLDB4NzAsMHg2MSwweDNELDB4MDAsMHgyMCwweDcyLDB4NjgsMHg1RiwweDYxLDB4NzMsMHg2RiwweDNELAotMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NzIsMHg2RiwweDZGLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NjYsMHg2QywKLTB4NjcsMHgzRCwweDAwLDB4MjAsMHg2RCwweDVGLDB4NjMsMHg2MSwweDcyLDB4NjUsMHgzRCwweDAwLDB4MjAsMHg3MCwweDc0LDB4NUYsCi0weDY2LDB4NkMsMHg2RiwweDNELDB4MDAsMHgyMCwweDYxLDB4NzMsMHg1RiwweDY2LDB4NkMsMHg2RiwweDNELDB4MDAsMHgyMCwweDcyLAotMHg2RCwweDVGLDB4NjYsMHg2QywweDZGLDB4M0QsMHgwMCwweDIwLDB4MjAsMHgyMCwweDcxLDB4NUYsMHg2OSwweDZFLDB4M0QsMHgwMCwKLTB4MjAsMHgyMCwweDcxLDB4NUYsMHg2RiwweDc1LDB4NzQsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLDB4NjQsMHg3MiwweDYxLDB4NkUsCi0weDNELDB4MDAsMHgyMCwweDIwLDB4NzEsMHg1RiwweDc0LDB4NjksMHg2RCwweDNELDB4MDAsMHgyMCwweDIwLDB4MjAsMHg3MSwweDVGLAotMHg2NiwweDYzLDB4M0QsMHgwMCwweDIwLDB4NzEsMHg1RiwweDczLDB4NzQsMHg2MSwweDc0LDB4M0QsMHgwMCwweDIwLDB4NzEsMHg1RiwKLTB4NjQsMHg2MSwweDc0LDB4NjEsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLDB4NkQsMHg2RiwweDY0LDB4NkQsMHgzRCwweDAwLDB4MjAsCi0weDY4LDB4NjEsMHg2RSwweDY0LDB4NUYsMHg2RiwweDNELDB4MDAsMHgyMCwweDY4LDB4NjEsMHg2RSwweDY0LDB4NUYsMHg2MiwweDNELAotMHgwMCwweDIwLDB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwweDY1LDB4M0QsMHgwMCwweDIwLDB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwKLTB4NjksMHgzRCwweDAwLDB4MjAsMHgyMCwweDZGLDB4NzAsMHg2RiwweDczLDB4NzQsMHgzRCwweDAwLDB4MjAsMHgyMCwweDc0LDB4NjksCi0weDZELDB4NjUsMHg2RiwweDNELDB4MDAsMHgyMCwweDYzLDB4NzUsMHg3MywweDc0LDB4NkQsMHgzMSwweDNELDB4MDAsMHgyMCwweDYzLAotMHg3NSwweDczLDB4NzQsMHg2RCwweDMyLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg3NSwweDczLDB4NzQsMHg2RCwweDY0LDB4M0QsMHgwMCwKLTB4MjAsMHg3NCwweDc4LDB4NzIsMHg2MSwweDc0LDB4NjUsMHgzRCwweDAwLDB4MjAsMHg3MiwweDc4LDB4NzIsMHg2MSwweDc0LDB4NjUsCi0weDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDZELDB4NjEsMHg3MCwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2MSwweDY0LAotMHg2NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYxLDB4NjksMHg3MywweDcyLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwKLTB4NzgsMHg3NCwweDYxLDB4NjcsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjQsMHg2NSwweDY2LDB4NzIsMHgzRCwweDAwLDB4MjAsCi0weDYzLDB4NUYsMHg2NiwweDZDLDB4NzMsMHg2OCwweDNELDB4MDAsMHgyMCwweDc0LDB4NzgsMHg2RCwweDYxLDB4NzgsMHg3MywweDNELAotMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NjUsMHg2RCwweDczLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NkMsMHg3MywKLTB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2OSwweDY1LDB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsCi0weDY2LDB4NjMsMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDZELDB4NjMsMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLAotMHg2MywweDVGLDB4NkMsMHg2MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjQsMHg3MywweDczLDB4M0QsMHgwMCwKLTB4MjAsMHg2MywweDVGLDB4NjQsMHg3MywweDczLDB4NjksMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjQsMHg3MywweDczLDB4NzIsCi0weDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDY5LDB4NzMsMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDYzLAotMHg2MSwweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjUsMHg2NiwweDcyLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwKLTB4NjUsMHg3MiwweDczLDB4NzQsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjUsMHg2MywweDZFLDB4NzQsMHgzRCwweDAwLDB4MjAsCi0weDYzLDB4NUYsMHg2MiwweDcyLDB4NkIsMHg2MywweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2MiwweDZGLDB4NkIsMHg2MywweDNELAotMHgwMCwweDIwLDB4NjMsMHg1RiwweDcyLDB4NjUsMHg3MCwweDZDLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYzLDB4NjMsMHg3MywKLTB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NzMsMHg3NCwweDc0LDB4MzEsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NzMsCi0weDc0LDB4NzQsMHgzMiwweDNELDB4MDAsMHgyQiwweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHhFOCwweEMyLDB4MDAsMHhFOCwweEU1LAotMHgwMCwweEZBLDB4QkYsMHg4NCwweDAwLDB4QzcsMHgwNSwweERDLDB4NTYsMHg4QywweDRELDB4MDIsMHhCRiwweDBDLDB4MDAsMHhDNywKLTB4MDUsMHg2RSwweDVFLDB4OEMsMHg0RCwweDAyLDB4QkYsMHgwNCwweDAwLDB4QzcsMHgwNSwweEJBLDB4NUUsMHg4QywweDRELDB4MDIsCi0weEU4LDB4RjEsMHgwMCwweDkwLDB4RTgsMHg0OSwweDAxLDB4RTgsMHgxNiwweDAwLDB4RjQsMHg5MCwweEU4LDB4RTUsMHgwMCwweEJFLAotMHhCQSwweDRELDB4RTgsMHgwOSwweDBDLDB4QTAsMHg5MywweDEyLDB4RTgsMHg1RCwweDBDLDB4RTgsMHhDMiwweDA5LDB4RUIsMHhFNCwKLTB4RTgsMHhENSwweDBDLDB4RTgsMHhDNCwweDBDLDB4MEEsMHhDMCwweDc0LDB4RjYsMHg4QiwweDFFLDB4RjgsMHg3OSwweDNDLDB4MEQsCi0weDc0LDB4MkUsMHgzQywweDA4LDB4NzQsMHgxNywweDNDLDB4N0YsMHg3NCwweDEzLDB4ODMsMHhGQiwweDIwLDB4N0YsMHhFMSwweDg4LAotMHg4NywweEQ2LDB4NzksMHg0MywweDg5LDB4MUUsMHhGOCwweDc5LDB4RTgsMHg3NywweDBDLDB4RUIsMHhEMywweDBCLDB4REIsMHg3NCwKLTB4Q0YsMHg0QiwweDg5LDB4MUUsMHhGOCwweDc5LDB4OEIsMHgzNiwweDE2LDB4N0EsMHhFOCwweEMxLDB4MEIsMHhFQiwweEMxLDB4OTAsCi0weEU4LDB4MDIsMHgwMCwweEVCLDB4QkIsMHhDNiwweDg3LDB4RDYsMHg3OSwweDAwLDB4MEIsMHhEQiwweDc0LDB4MUUsMHhBMCwweEQ2LAotMHg3OSwweEJGLDB4NjAsMHg1MSwweEI5LDB4MUQsMHgwMCwweDhCLDB4RDksMHgwNiwweDBFLDB4MDcsMHhGMiwweEFFLDB4MDcsMHg3NSwKLTB4MTcsMHg0MSwweDJCLDB4RDksMHhEMSwweEUzLDB4MkUsMHhGRiwweDk3LDB4N0QsMHg1MSwweDkwLDB4MzMsMHhDMCwweEEzLDB4RjgsCi0weDc5LDB4QkUsMHg4OSwweDRELDB4RTgsMHg4NywweDBCLDB4QzMsMHhCRSwweDhELDB4NEQsMHhFOCwweDgwLDB4MEIsMHhFQiwweEVDLAotMHhCQSwweDAwLDB4MDIsMHhCMCwweDkzLDB4RUUsMHhCMCwweDU1LDB4RUUsMHhCQSwweDEwLDB4MDIsMHhCMCwweDkzLDB4RUUsMHhCMCwKLTB4QUEsMHhFRSwweEJBLDB4MDAsMHgwMiwweEVDLDB4M0MsMHg1NSwweDc1LDB4MDgsMHhCQSwweDEwLDB4MDIsMHhFQywweDNDLDB4QUEsCi0weDc0LDB4MDMsMHhFOCwweDJGLDB4RjYsMHhDMywweEJBLDB4MDQsMHgwMiwweEIwLDB4MUEsMHhFRSwweEIwLDB4MjAsMHhFRSwweEIwLAotMHgzMCwweEVFLDB4QjAsMHg0MCwweEVFLDB4QjAsMHg4MCwweEVFLDB4QkEsMHgwMCwweDAyLDB4QjAsMHgxMywweEVFLDB4QjAsMHgwNywKLTB4RUUsMHhCQSwweDA4LDB4MDIsMHhCMCwweDgwLDB4RUUsMHhCQSwweDAyLDB4MDIsMHhCMCwweEJCLDB4RUUsMHhCQSwweDA0LDB4MDIsCi0weEIwLDB4MDUsMHhFRSwweEMzLDB4QzYsMHgwNiwweENBLDB4MTMsMHgwMSwweEM3LDB4MDYsMHhGOCwweDc5LDB4MDAsMHgwMCwweEM2LAotMHgwNiwweEY2LDB4NzksMHgwMSwweEM3LDB4MDYsMHhEMCwweDc5LDB4MDAsMHgwMCwweEM3LDB4MDYsMHhEMiwweDc5LDB4MDAsMHgwMCwKLTB4QzcsMHgwNiwweEQ0LDB4NzksMHgwMCwweDAwLDB4QzcsMHgwNiwweEZBLDB4NzksMHgwMCwweDAwLDB4QzcsMHgwNiwweEZDLDB4NzksCi0weDAwLDB4MDAsMHhDNywweDA2LDB4RkUsMHg3OSwweDAwLDB4MDAsMHhDNywweDA2LDB4MDAsMHg3QSwweDAwLDB4MDAsMHhDNywweDA2LAotMHgwMiwweDdBLDB4Q0UsMHg1OSwweDhDLDB4MEUsMHgwNCwweDdBLDB4QzcsMHgwNiwweDA2LDB4N0EsMHgwMCwweDAwLDB4QzcsMHgwNiwKLTB4MjcsMHg3QSwweDAwLDB4MDAsMHhDNiwweDA2LDB4MjksMHg3QSwweDAwLDB4QzYsMHgwNiwweDJBLDB4N0EsMHgwMCwweEMzLDB4OTAsCi0weEJFLDB4MjIsMHg0RCwweEU4LDB4QzgsMHgwQSwweEU4LDB4M0YsMHgwMCwweDJDLDB4MzEsMHgzQywweDAxLDB4NzcsMHhGNywweEU4LAotMHg4MSwweDA5LDB4OEIsMHgzNiwweDBDLDB4N0EsMHhFOCwweEI1LDB4MEEsMHhCRSwweDZBLDB4NEQsMHhFOCwweEFGLDB4MEEsMHgwRSwKLTB4NTgsMHhFOCwweEY4LDB4MEEsMHhCRSwweDdBLDB4NEQsMHhFOCwweEE0LDB4MEEsMHhDMywweDkwLDB4NjAsMHhEMSwweEUzLDB4ODMsCi0weEZCLDB4MTgsMHg3MywweDExLDB4MUUsMHhCQSwweDAwLDB4MDAsMHg4RSwweERBLDB4MkUsMHhGRiwweDk3LDB4QjcsMHg1MSwweDhCLAotMHhFQywweDg5LDB4NDYsMHgxMCwweDFGLDB4NjEsMHhDRiwweDkwLDB4RTgsMHg0RiwweDBCLDB4MEEsMHhDMCwweDc1LDB4MDUsMHhFOCwKLTB4NTYsMHgwQiwweEVCLDB4RjQsMHhDMywweDkwLDB4ODMsMHgzRSwweEY4LDB4NzksMHgwMSwweDc0LDB4MTYsMHhCRSwweEQ3LDB4NzksCi0weEU4LDB4MzEsMHgwQSwweDhCLDB4RDAsMHhBQywweDNDLDB4MkMsMHg3NCwweDA0LDB4M0MsMHgyMCwweDc1LDB4MDUsMHhFOCwweDIzLAotMHgwQSwweEVFLDB4QzMsMHhFOSwweEQyLDB4RkUsMHg4MywweDNFLDB4RjgsMHg3OSwweDAxLDB4NzQsMHhGNiwweEJFLDB4RDcsMHg3OSwKLTB4RTgsMHgxMSwweDBBLDB4OEIsMHhEMCwweEFDLDB4M0MsMHgyQywweDc0LDB4MDgsMHgzQywweDIwLDB4NzQsMHgwNCwweEU5LDB4QjcsCi0weEZFLDB4OTAsMHhFOCwweEZGLDB4MDksMHhFRiwweEMzLDB4OTAsMHg4QiwweDE2LDB4MDYsMHg3QSwweDgzLDB4M0UsMHhGOCwweDc5LAotMHgwMSwweDc0LDB4MEIsMHhCRSwweEQ3LDB4NzksMHhFOCwweEVCLDB4MDksMHg4QiwweEQwLDB4QTMsMHgwNiwweDdBLDB4QjAsMHgyMCwKLTB4RTgsMHg1NywweDBCLDB4OEIsMHgxNiwweDA2LDB4N0EsMHhFQywweEU4LDB4NkYsMHgwQiwweEMzLDB4OEIsMHgxNiwweDA2LDB4N0EsCi0weDgzLDB4M0UsMHhGOCwweDc5LDB4MDEsMHg3NCwweDBCLDB4QkUsMHhENywweDc5LDB4RTgsMHhDNywweDA5LDB4OEIsMHhEMCwweEEzLAotMHgwNiwweDdBLDB4QjAsMHgyMCwweEU4LDB4MzMsMHgwQiwweDhCLDB4MTYsMHgwNiwweDdBLDB4RUQsMHhFOCwweDY3LDB4MEIsMHhDMywKLTB4RkEsMHhDNiwweDA2LDB4RjYsMHg3OSwweDAwLDB4QzMsMHg5MCwweEM2LDB4MDYsMHhGNiwweDc5LDB4MDEsMHhGQiwweEMzLDB4OTAsCi0weDA2LDB4RTgsMHg1OCwweDA5LDB4QjAsMHgyMCwweEU4LDB4MTEsMHgwQiwweDI2LDB4OEIsMHgwNSwweEU4LDB4NDcsMHgwQiwweEIwLAotMHgwOCwweEU4LDB4MDYsMHgwQiwweEU4LDB4MDMsMHgwQiwweEU4LDB4MDAsMHgwQiwweEU4LDB4RkQsMHgwQSwweEI4LDB4MDEsMHgwMCwKLTB4RTgsMHhDRiwweEY0LDB4QkEsMHgwMiwweDAyLDB4RUMsMHgyNCwweDAxLDB4NzUsMHgwMiwweEVCLDB4REMsMHhCQSwweDA2LDB4MDIsCi0weEVDLDB4MDcsMHhDMywweDkwLDB4QzcsMHgwNiwweDA4LDB4N0EsMHgxMCwweDAwLDB4RUIsMHgwNiwweEM3LDB4MDYsMHgwOCwweDdBLAotMHgwMSwweDAwLDB4MDYsMHg4RSwweDA2LDB4RkMsMHg3OSwweDhCLDB4M0UsMHhGQSwweDc5LDB4RTgsMHgwRSwweDA5LDB4RTgsMHgwQiwKLTB4MDAsMHg4OSwweDNFLDB4RkEsMHg3OSwweDhDLDB4MDYsMHhGQywweDc5LDB4MDcsMHhDMywweDkwLDB4QkUsMHhCMiwweDRELDB4RTgsCi0weDdDLDB4MDksMHg4QiwweDE2LDB4MDgsMHg3QSwweDUyLDB4RTgsMHgyQSwweDA5LDB4RTgsMHgwRiwweDBBLDB4RTgsMHgwQywweDBBLAotMHgzMywweERCLDB4QjksMHgxMCwweDAwLDB4OTAsMHgyNiwweDhBLDB4MDEsMHhFOCwweEJDLDB4MDksMHhFOCwweEZELDB4MDksMHg0MywKLTB4RTIsMHhGNCwweEU4LDB4RjcsMHgwOSwweEU4LDB4RjQsMHgwOSwweDMzLDB4REIsMHhCOSwweDEwLDB4MDAsMHg5MCwweDI2LDB4OEEsCi0weDAxLDB4M0MsMHgyMCwweDcyLDB4MDUsMHgzQywweDdFLDB4NzYsMHgwMywweDkwLDB4QjAsMHgyRSwweEU4LDB4RTMsMHgwOSwweDQzLAotMHhFMiwweEVDLDB4QkUsMHhCMiwweDRELDB4RTgsMHgzNiwweDA5LDB4ODMsMHhDNywweDEwLDB4NUEsMHg0QSwweDc1LDB4QjcsMHhDMywKLTB4MDYsMHg4RSwweDA2LDB4MDAsMHg3QSwweDhCLDB4M0UsMHhGRSwweDc5LDB4RTgsMHhBMCwweDA4LDB4ODksMHgzRSwweEZFLDB4NzksCi0weDhDLDB4MDYsMHgwMCwweDdBLDB4NTcsMHg4QiwweDM2LDB4MEUsMHg3QSwweEU4LDB4MTIsMHgwOSwweEM3LDB4MDYsMHgwOCwweDdBLAotMHgxMCwweDAwLDB4QkEsMHgwMCwweDAyLDB4RTgsMHhFOCwweDAwLDB4RTgsMHg4MSwweEZGLDB4NUYsMHhCQSwweDAwLDB4MDAsMHhFOCwKLTB4REUsMHgwMCwweEJFLDB4QjUsMHg0RCwweEU4LDB4RjYsMHgwOCwweDhDLDB4QzAsMHhFOCwweDNGLDB4MDksMHhCMCwweDNBLDB4RTgsCi0weDkwLDB4MDksMHg4QiwweEM3LDB4RTgsMHgzNSwweDA5LDB4RTgsMHg3RSwweDA4LDB4RTgsMHhDMywweDAwLDB4OTAsMHhFOCwweEI3LAotMHgwOSwweEU4LDB4QTYsMHgwOSwweDBBLDB4QzAsMHg3NCwweEY2LDB4M0MsMHgwQiwweDc1LDB4MDYsMHg4MywweEVGLDB4MTAsMHhFQiwKLTB4MTksMHg5MCwweDNDLDB4MEEsMHg3NSwweDA2LDB4ODMsMHhDNywweDEwLDB4RUIsMHgwRiwweDkwLDB4M0MsMHgwQywweDc1LDB4MDQsCi0weDQ3LDB4RUIsMHgwNywweDkwLDB4M0MsMHgwOCwweDc1LDB4MjQsMHg0RiwweDkwLDB4OEIsMHgzNiwweEZFLDB4NzksMHg4QiwweEM3LAotMHgyQiwweEM2LDB4M0QsMHgwMCwweDAxLDB4NzIsMHhBNSwweDNELDB4MTAsMHgwMSwweDcyLDB4MDQsMHg4MywweEVFLDB4MjAsMHg5MCwKLTB4ODMsMHhDNiwweDEwLDB4ODksMHgzNiwweEZFLDB4NzksMHg1NywweDhCLDB4RkUsMHhFQiwweDgwLDB4M0MsMHgyRSwweDc1LDB4MDgsCi0weEJBLDB4MDEsMHgxMywweEU4LDB4NkEsMHgwMCwweDA3LDB4QzMsMHhDNiwweDA2LDB4MEEsMHg3QSwweDAyLDB4MzIsMHhDOSwweDkwLAotMHgzQywweDMwLDB4NzIsMHg0QywweDNDLDB4MzksMHg3NiwweDBDLDB4MjQsMHg1RiwweDNDLDB4NDEsMHg3MiwweDQyLDB4M0MsMHg0NiwKLTB4NzcsMHgzRSwweDJDLDB4MDcsMHgyQywweDMwLDB4NTAsMHhFOCwweENDLDB4MDgsMHg1OCwweDAyLDB4QzgsMHhGRSwweDBFLDB4MEEsCi0weDdBLDB4NzQsMHgwRiwweEMwLDB4RTEsMHgwNCwweEU4LDB4MkYsMHgwOSwweEU4LDB4MUUsMHgwOSwweDBBLDB4QzAsMHg3NCwweEY2LAotMHhFQiwweENFLDB4MjYsMHg4OCwweDBELDB4RTgsMHhFMCwweDA3LDB4OEEsMHhEMCwweEU4LDB4MjMsMHgwMCwweDhBLDB4QzEsMHgzQywKLTB4MjAsMHg3MiwweDA1LDB4M0MsMHg3RSwweDc2LDB4MDMsMHg5MCwweEIwLDB4MkUsMHhFOCwweEQ1LDB4MDgsMHhFOSwweDcwLDB4RkYsCi0weEU4LDB4QzUsMHgwNywweEU4LDB4MEEsMHgwMCwweDI2LDB4OEEsMHgwNSwweEU4LDB4N0MsMHgwOCwweEU5LDB4MUQsMHhGRiwweDkwLAotMHhGNiwweDA2LDB4MjYsMHg3QSwweDAyLDB4NzUsMHgwMiwweDg2LDB4RjIsMHg1MiwweDhCLDB4MzYsMHgxQSwweDdBLDB4RTgsMHgwRCwKLTB4MDgsMHg1QSwweDUyLDB4OEEsMHhDNiwweDAyLDB4MDYsMHgyNCwweDdBLDB4RjYsMHgwNiwweDI2LDB4N0EsMHgwMSwweDc1LDB4MDYsCi0weEU4LDB4OUYsMHgwOCwweEVCLDB4MEQsMHg5MCwweDMyLDB4RTQsMHhFOCwweDBELDB4MDgsMHg4QiwweDM2LDB4MUMsMHg3QSwweEU4LAotMHhFQywweDA3LDB4NUEsMHg4QSwweEMyLDB4MDIsMHgwNiwweDI1LDB4N0EsMHhGNiwweDA2LDB4MjYsMHg3QSwweDAxLDB4NzUsMHgwNiwKLTB4RTgsMHg3RiwweDA4LDB4RUIsMHgwNiwweDkwLDB4MzIsMHhFNCwweEU4LDB4RUQsMHgwNywweDhCLDB4MzYsMHgxRSwweDdBLDB4RTgsCi0weENDLDB4MDcsMHhDMywweDkwLDB4MDYsMHg4RSwweDA2LDB4MDQsMHg3QSwweDhCLDB4M0UsMHgwMiwweDdBLDB4RTgsMHgzQywweDA3LAotMHg4OSwweDNFLDB4MDIsMHg3QSwweDhDLDB4MDYsMHgwNCwweDdBLDB4MDcsMHhGRiwweDFFLDB4MDIsMHg3QSwweEMzLDB4QkUsMHg5NywKLTB4NEQsMHhFOCwweEFBLDB4MDcsMHhDQiwweDkwLDB4MDYsMHg1NywweEJFLDB4RDcsMHg3OSwweEU4LDB4NjYsMHgwNywweDhCLDB4RDgsCi0weEU4LDB4NjEsMHgwNywweDhCLDB4QzgsMHgyQiwweENCLDB4NzgsMHgxMSwweDhFLDB4QzMsMHhCRiwweDAwLDB4MDAsMHhCOCwweEZGLAotMHhGRiwweDUxLDB4QjksMHgwOCwweDAwLDB4RjMsMHhBQiwweDU5LDB4RTIsMHhGNywweDVGLDB4MDcsMHhDMywweDkwLDB4MDYsMHhCRSwKLTB4RDcsMHg3OSwweEU4LDB4M0YsMHgwNywweDhCLDB4RDgsMHhEMSwweEUzLDB4MkUsMHg4QiwweDlGLDB4NDQsMHgwMCwweEJFLDB4MjYsCi0weDUyLDB4RTgsMHhGMSwweDA4LDB4OEIsMHhDMywweEU4LDB4REQsMHgwOCwweEI4LDB4MDEsMHgwMCwweEU4LDB4NzMsMHhGMiwweEU4LAotMHhFMCwweDA4LDB4QkUsMHgyRiwweDUyLDB4RTgsMHhERCwweDA4LDB4OEIsMHg0NywweDE4LDB4RTgsMHhDOCwweDA4LDB4QkUsMHg3NywKLTB4NTIsMHhFOCwweEQxLDB4MDgsMHg4QiwweDQ3LDB4MjYsMHhFOCwweEJDLDB4MDgsMHhCRSwweDUzLDB4NTIsMHhFOCwweEM1LDB4MDgsCi0weDhCLDB4NDcsMHgxRSwweEU4LDB4QjAsMHgwOCwweEJFLDB4NUMsMHg1MiwweEU4LDB4QjksMHgwOCwweDhCLDB4NDcsMHgyMCwweEU4LAotMHhBNCwweDA4LDB4QkUsMHg2RSwweDUyLDB4RTgsMHhBRCwweDA4LDB4OEIsMHg0NywweDI0LDB4RTgsMHg5OCwweDA4LDB4QkUsMHg4MCwKLTB4NTIsMHhFOCwweEExLDB4MDgsMHg4QiwweDQ3LDB4MkEsMHhFOCwweDhDLDB4MDgsMHhFOCwweDk1LDB4MDgsMHhCRSwweDM4LDB4NTIsCi0weEU4LDB4OTIsMHgwOCwweDhCLDB4MDcsMHhFOCwweDdFLDB4MDgsMHhCRSwweDQxLDB4NTIsMHhFOCwweDg3LDB4MDgsMHg4QiwweDQ3LAotMHgxQSwweEU4LDB4NzIsMHgwOCwweEJFLDB4NEEsMHg1MiwweEU4LDB4N0IsMHgwOCwweDhCLDB4NDcsMHgxQywweEU4LDB4NjYsMHgwOCwKLTB4QkUsMHg2NSwweDUyLDB4RTgsMHg2RiwweDA4LDB4OEIsMHg0NywweDIyLDB4RTgsMHg1QSwweDA4LDB4RTgsMHg2MywweDA4LDB4QkUsCi0weEQxLDB4NTIsMHhFOCwweDYwLDB4MDgsMHg4QiwweDQ3LDB4MzgsMHhFOCwweDRCLDB4MDgsMHhCRSwweEFELDB4NTIsMHhFOCwweDU0LAotMHgwOCwweDhCLDB4NDcsMHgzMCwweEU4LDB4M0YsMHgwOCwweEJFLDB4QjYsMHg1MiwweEU4LDB4NDgsMHgwOCwweDhCLDB4NDcsMHgzMiwKLTB4RTgsMHgzMywweDA4LDB4QkUsMHhBNCwweDUyLDB4RTgsMHgzQywweDA4LDB4OEIsMHg0NywweDJFLDB4RTgsMHgyNywweDA4LDB4QkUsCi0weEJGLDB4NTIsMHhFOCwweDMwLDB4MDgsMHg4QiwweDQ3LDB4MzQsMHhFOCwweDFCLDB4MDgsMHhFOCwweDI0LDB4MDgsMHhCRSwweDg5LAotMHg1MiwweEU4LDB4MjEsMHgwOCwweDhCLDB4NDcsMHgwNCwweEU4LDB4MEMsMHgwOCwweEJFLDB4OTIsMHg1MiwweEU4LDB4MTUsMHgwOCwKLTB4OEIsMHg0NywweDE0LDB4RTgsMHgwMCwweDA4LDB4QkUsMHg5QiwweDUyLDB4RTgsMHgwOSwweDA4LDB4OEIsMHg0NywweDJDLDB4RTgsCi0weEY0LDB4MDcsMHhCRSwweEM4LDB4NTIsMHhFOCwweEZELDB4MDcsMHg4QiwweDQ3LDB4MzYsMHhFOCwweEU4LDB4MDcsMHhCRSwweERBLAotMHg1MiwweEU4LDB4RjEsMHgwNywweDhCLDB4NDcsMHgzQSwweEU4LDB4REMsMHgwNywweEJFLDB4RTMsMHg1MiwweEU4LDB4RTUsMHgwNywKLTB4OEIsMHg0NywweDNDLDB4RTgsMHhEMCwweDA3LDB4RTgsMHhEOSwweDA3LDB4QkUsMHgxOSwweDUzLDB4RTgsMHhENiwweDA3LDB4OEIsCi0weDQ3LDB4NDgsMHhFOCwweEMxLDB4MDcsMHhCRSwweEZFLDB4NTIsMHhFOCwweENBLDB4MDcsMHg4QiwweDQ3LDB4NDIsMHhFOCwweEI1LAotMHgwNywweEJFLDB4MDcsMHg1MywweEU4LDB4QkUsMHgwNywweDhCLDB4NDcsMHg0NCwweEU4LDB4QTksMHgwNywweEJFLDB4N0MsMHg1MywKLTB4RTgsMHhCMiwweDA3LDB4OEIsMHg0NywweDRDLDB4RTgsMHg5RCwweDA3LDB4QkUsMHg4NSwweDUzLDB4RTgsMHhBNiwweDA3LDB4OEIsCi0weDQ3LDB4NEUsMHhFOCwweDkxLDB4MDcsMHhCRSwweDhFLDB4NTMsMHhFOCwweDlBLDB4MDcsMHg4QiwweDQ3LDB4NTAsMHhFOCwweDg1LAotMHgwNywweEU4LDB4OEUsMHgwNywweEJFLDB4MjIsMHg1MywweEU4LDB4OEIsMHgwNywweDhCLDB4NDcsMHg0QSwweEU4LDB4NzYsMHgwNywKLTB4QkUsMHhFQywweDUyLDB4RTgsMHg3RiwweDA3LDB4OEIsMHg0NywweDA4LDB4RTgsMHg2QSwweDA3LDB4QkUsMHhGNSwweDUyLDB4RTgsCi0weDczLDB4MDcsMHg4QiwweDQ3LDB4NDAsMHhFOCwweDVFLDB4MDcsMHhCRSwweDEwLDB4NTMsMHhFOCwweDY3LDB4MDcsMHg4QiwweDQ3LAotMHg0NiwweEU4LDB4NTIsMHgwNywweEU4LDB4NUIsMHgwNywweEJFLDB4NkEsMHg1MywweEU4LDB4NTgsMHgwNywweDhCLDB4NDcsMHg3QSwKLTB4RTgsMHg0MywweDA3LDB4QkUsMHgzRCwweDUzLDB4RTgsMHg0QywweDA3LDB4OEIsMHg0NywweDcwLDB4RTgsMHgzNywweDA3LDB4QkUsCi0weDQ2LDB4NTMsMHhFOCwweDQwLDB4MDcsMHg4QiwweDQ3LDB4NzIsMHhFOCwweDJCLDB4MDcsMHhCRSwweDRGLDB4NTMsMHhFOCwweDM0LAotMHgwNywweDhCLDB4NDcsMHg3NCwweEU4LDB4MUYsMHgwNywweEU4LDB4MjgsMHgwNywweEJFLDB4MkIsMHg1MywweEU4LDB4MjUsMHgwNywKLTB4OEIsMHg0NywweDBDLDB4RTgsMHgxMCwweDA3LDB4QkUsMHgzNCwweDUzLDB4RTgsMHgxOSwweDA3LDB4OEIsMHg0NywweDEwLDB4RTgsCi0weDA0LDB4MDcsMHhCRSwweDU4LDB4NTMsMHhFOCwweDBELDB4MDcsMHg4QiwweDQ3LDB4NzYsMHhFOCwweEY4LDB4MDYsMHhCRSwweDYxLAotMHg1MywweEU4LDB4MDEsMHgwNywweDhCLDB4NDcsMHg3OCwweEU4LDB4RUMsMHgwNiwweEJFLDB4NzMsMHg1MywweEU4LDB4RjUsMHgwNiwKLTB4OEIsMHg0NywweDNFLDB4RTgsMHhFMCwweDA2LDB4RTgsMHhFOSwweDA2LDB4QkUsMHg5NywweDUzLDB4RTgsMHhFNiwweDA2LDB4OEIsCi0weDQ3LDB4NTIsMHhFOCwweEQxLDB4MDYsMHhCRSwweEEwLDB4NTMsMHhFOCwweERBLDB4MDYsMHg4QiwweDQ3LDB4NTQsMHhFOCwweEM1LAotMHgwNiwweEJFLDB4QTksMHg1MywweEU4LDB4Q0UsMHgwNiwweDhCLDB4NDcsMHg1NiwweEU4LDB4QjksMHgwNiwweEJFLDB4QjIsMHg1MywKLTB4RTgsMHhDMiwweDA2LDB4OEIsMHg0NywweDU4LDB4RTgsMHhBRCwweDA2LDB4QkUsMHhCQiwweDUzLDB4RTgsMHhCNiwweDA2LDB4OEIsCi0weDQ3LDB4NUEsMHhFOCwweEExLDB4MDYsMHhCRSwweEM0LDB4NTMsMHhFOCwweEFBLDB4MDYsMHg4QiwweDQ3LDB4NUMsMHhFOCwweDk1LAotMHgwNiwweEU4LDB4OUUsMHgwNiwweEJFLDB4Q0QsMHg1MywweEU4LDB4OUIsMHgwNiwweDhCLDB4NDcsMHg1RSwweEU4LDB4ODYsMHgwNiwKLTB4QkUsMHhENiwweDUzLDB4RTgsMHg4RiwweDA2LDB4OEIsMHg0NywweDYwLDB4RTgsMHg3QSwweDA2LDB4QkUsMHhERiwweDUzLDB4RTgsCi0weDgzLDB4MDYsMHg4QiwweDQ3LDB4NjIsMHhFOCwweDZFLDB4MDYsMHhCRSwweEU4LDB4NTMsMHhFOCwweDc3LDB4MDYsMHg4QiwweDQ3LAotMHg3QywweEU4LDB4NjIsMHgwNiwweEJFLDB4RjEsMHg1MywweEU4LDB4NkIsMHgwNiwweDhCLDB4NDcsMHg3RSwweEU4LDB4NTYsMHgwNiwKLTB4QkUsMHhGQSwweDUzLDB4RTgsMHg1RiwweDA2LDB4OEIsMHg4NywweDgwLDB4MDAsMHhFOCwweDQ5LDB4MDYsMHhFOCwweDUyLDB4MDYsCi0weEJFLDB4NDIsMHg1NCwweEU4LDB4NEYsMHgwNiwweDhCLDB4ODcsMHg5RSwweDAwLDB4RTgsMHgzOSwweDA2LDB4QkUsMHgwMywweDU0LAotMHhFOCwweDQyLDB4MDYsMHg4QiwweDQ3LDB4NjQsMHhFOCwweDJELDB4MDYsMHhCRSwweDBDLDB4NTQsMHhFOCwweDM2LDB4MDYsMHg4QiwKLTB4NDcsMHg2RSwweEU4LDB4MjEsMHgwNiwweEJFLDB4MTUsMHg1NCwweEU4LDB4MkEsMHgwNiwweDhCLDB4ODcsMHg4RSwweDAwLDB4RTgsCi0weDE0LDB4MDYsMHhCRSwweDFFLDB4NTQsMHhFOCwweDFELDB4MDYsMHg4QiwweDg3LDB4OTAsMHgwMCwweEU4LDB4MDcsMHgwNiwweEJFLAotMHgyNywweDU0LDB4RTgsMHgxMCwweDA2LDB4OEIsMHg4NywweDkyLDB4MDAsMHhFOCwweEZBLDB4MDUsMHhFOCwweDAzLDB4MDYsMHhCRSwKLTB4MzAsMHg1NCwweEU4LDB4MDAsMHgwNiwweDhCLDB4ODcsMHg5NCwweDAwLDB4RTgsMHhFQSwweDA1LDB4QkUsMHgzOSwweDU0LDB4RTgsCi0weEYzLDB4MDUsMHg4QiwweDg3LDB4OTYsMHgwMCwweEU4LDB4REQsMHgwNSwweEJFLDB4NkYsMHg1NCwweEU4LDB4RTYsMHgwNSwweDhCLAotMHg4NywweDk4LDB4MDAsMHhFOCwweEQwLDB4MDUsMHhCRSwweDVELDB4NTQsMHhFOCwweEQ5LDB4MDUsMHg4QSwweDg3LDB4QTAsMHgwMCwKLTB4RTgsMHhBNywweDA1LDB4QkUsMHg1NCwweDU0LDB4RTgsMHhDQywweDA1LDB4OEEsMHg0NywweDI4LDB4RTgsMHg5QiwweDA1LDB4QkUsCi0weDY2LDB4NTQsMHhFOCwweEMwLDB4MDUsMHg4QSwweDg3LDB4QTEsMHgwMCwweEU4LDB4OEUsMHgwNSwweEU4LDB4QjMsMHgwNSwweEJFLAotMHg3OCwweDU0LDB4RTgsMHhCMCwweDA1LDB4OEEsMHg4NywweEEyLDB4MDAsMHhFOCwweDdFLDB4MDUsMHhCRSwweDgxLDB4NTQsMHhFOCwKLTB4QTMsMHgwNSwweDhBLDB4ODcsMHhBMywweDAwLDB4RTgsMHg3MSwweDA1LDB4QkUsMHg4QSwweDU0LDB4RTgsMHg5NiwweDA1LDB4OEEsCi0weDg3LDB4QTQsMHgwMCwweEU4LDB4NjQsMHgwNSwweEJFLDB4OTMsMHg1NCwweEU4LDB4ODksMHgwNSwweDhBLDB4ODcsMHhBNSwweDAwLAotMHhFOCwweDU3LDB4MDUsMHhCRSwweDlDLDB4NTQsMHhFOCwweDdDLDB4MDUsMHg4QSwweDg3LDB4QTYsMHgwMCwweEU4LDB4NEEsMHgwNSwKLTB4QkUsMHhBNSwweDU0LDB4RTgsMHg2RiwweDA1LDB4OEEsMHg4NywweEE3LDB4MDAsMHhFOCwweDNELDB4MDUsMHhCRSwweEFFLDB4NTQsCi0weEU4LDB4NjIsMHgwNSwweDhBLDB4ODcsMHhBOCwweDAwLDB4RTgsMHgzMCwweDA1LDB4RTgsMHg1NSwweDA1LDB4QkUsMHhCNywweDU0LAotMHhFOCwweDUyLDB4MDUsMHg4QSwweDg3LDB4QTksMHgwMCwweEU4LDB4MjAsMHgwNSwweEJFLDB4QzAsMHg1NCwweEU4LDB4NDUsMHgwNSwKLTB4OEEsMHg4NywweEFBLDB4MDAsMHhFOCwweDEzLDB4MDUsMHhCRSwweEM5LDB4NTQsMHhFOCwweDM4LDB4MDUsMHg4QSwweDg3LDB4QUIsCi0weDAwLDB4RTgsMHgwNiwweDA1LDB4QkUsMHhEMiwweDU0LDB4RTgsMHgyQiwweDA1LDB4OEEsMHg4NywweEFELDB4MDAsMHhFOCwweEY5LAotMHgwNCwweEJFLDB4REIsMHg1NCwweEU4LDB4MUUsMHgwNSwweDhBLDB4ODcsMHhBRSwweDAwLDB4RTgsMHhFQywweDA0LDB4QkUsMHhFNCwKLTB4NTQsMHhFOCwweDExLDB4MDUsMHg4QSwweDg3LDB4QUYsMHgwMCwweEU4LDB4REYsMHgwNCwweEJFLDB4RUQsMHg1NCwweEU4LDB4MDQsCi0weDA1LDB4OEEsMHg4NywweEIwLDB4MDAsMHhFOCwweEQyLDB4MDQsMHhFOCwweEY3LDB4MDQsMHhCRSwweEY2LDB4NTQsMHhFOCwweEY0LAotMHgwNCwweDhBLDB4ODcsMHhCMSwweDAwLDB4RTgsMHhDMiwweDA0LDB4QkUsMHhGRiwweDU0LDB4RTgsMHhFNywweDA0LDB4OEEsMHg4NywKLTB4QjIsMHgwMCwweEU4LDB4QjUsMHgwNCwweEJFLDB4MDgsMHg1NSwweEU4LDB4REEsMHgwNCwweDhBLDB4ODcsMHhCMywweDAwLDB4RTgsCi0weEE4LDB4MDQsMHhCRSwweDExLDB4NTUsMHhFOCwweENELDB4MDQsMHg4QSwweDg3LDB4QkIsMHgwMCwweEU4LDB4OUIsMHgwNCwweEU4LAotMHhDMCwweDA0LDB4QkUsMHgxQSwweDU1LDB4RTgsMHhCRCwweDA0LDB4OEEsMHg4NywweEJDLDB4MDAsMHhFOCwweDhCLDB4MDQsMHhCRSwKLTB4MjMsMHg1NSwweEU4LDB4QjAsMHgwNCwweDhBLDB4ODcsMHhCRSwweDAwLDB4RTgsMHg3RSwweDA0LDB4QkUsMHgyQywweDU1LDB4RTgsCi0weEEzLDB4MDQsMHg4QSwweDg3LDB4QkYsMHgwMCwweEU4LDB4NzEsMHgwNCwweEU4LDB4OTYsMHgwNCwweDA3LDB4QzMsMHg2MCwweDA2LAotMHgxRSwweDE2LDB4OEIsMHhFQywweEZGLDB4NEUsMHgxNiwweEY3LDB4NDYsMHgxQSwweDAwLDB4MDIsMHg3NCwweDAxLDB4RkIsMHhCOCwKLTB4MDAsMHgwMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4ODksMHgyRSwweDJELDB4N0EsMHhFOCwweENCLDB4MDAsMHg4MSwweDY2LDB4MUEsCi0weEZGLDB4RkUsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4RTgsMHhEOCwweDAwLDB4QjgsMHgwMCwweDVGLDB4QTMsMHgyQiwweDdBLAotMHhFOCwweDVELDB4MDAsMHg4MCwweDNFLDB4MkEsMHg3QSwweDAwLDB4NzQsMHgwQSwweDgxLDB4NEUsMHgxQSwweDAwLDB4MDEsMHhDNiwKLTB4MDYsMHgyQSwweDdBLDB4MDAsMHgxNywweDFGLDB4MDcsMHg2MSwweENGLDB4OTAsMHg2MCwweDA2LDB4MUUsMHgxNiwweDhCLDB4RUMsCi0weEY3LDB4NDYsMHgxQSwweDAwLDB4MDIsMHg3NCwweDAxLDB4RkIsMHhCOCwweDAwLDB4MDAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweDg5LAotMHgyRSwweDJELDB4N0EsMHg4MSwweDY2LDB4MUEsMHhGRiwweEZFLDB4QzYsMHgwNiwweDJBLDB4N0EsMHgwMCwweEU4LDB4OTIsMHgwMCwKLTB4QjgsMHgwMCwweDVGLDB4QTMsMHgyQiwweDdBLDB4RTgsMHgxNywweDAwLDB4ODAsMHgzRSwweDJBLDB4N0EsMHgwMCwweDc0LDB4MEEsCi0weDgxLDB4NEUsMHgxQSwweDAwLDB4MDEsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4MTcsMHgxRiwweDA3LDB4NjEsMHhDRiwweDkwLAotMHhCOCwweEYwLDB4MDAsMHhFOCwweDhDLDB4RUQsMHhGRiwweDI2LDB4MkIsMHg3QSwweEMzLDB4OTAsMHgwNiwweDUzLDB4NTYsMHg4MCwKLTB4M0UsMHgyOSwweDdBLDB4MDAsMHg3NCwweDAzLDB4RTgsMHgzRiwweDAwLDB4QkUsMHhENywweDc5LDB4RTgsMHgyNSwweDAyLDB4OEIsCi0weEQ4LDB4QTMsMHgyNywweDdBLDB4MkUsMHg4QSwweDA3LDB4QTIsMHgyOSwweDdBLDB4QjAsMHhDQywweDJFLDB4ODgsMHgwNywweDVFLAotMHg1QiwweDA3LDB4QzMsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4QjgsMHgwQSwweDVGLDB4QTMsMHgyQiwweDdBLDB4QzMsMHg5MCwKLTB4OEIsMHgyRSwweDJELDB4N0EsMHhFOCwweDJCLDB4MDAsMHhDMywweEM2LDB4MDYsMHgyQSwweDdBLDB4MDEsMHhFOCwweDA4LDB4MDAsCi0weEI4LDB4MEEsMHg1RiwweEEzLDB4MkIsMHg3QSwweEMzLDB4OTAsMHg1NywweDgwLDB4M0UsMHgyOSwweDdBLDB4MDAsMHg3NCwweDBGLAotMHg4QiwweDNFLDB4MjcsMHg3QSwweEEwLDB4MjksMHg3QSwweDJFLDB4ODgsMHgwNSwweEM2LDB4MDYsMHgyOSwweDdBLDB4MDAsMHg1RiwKLTB4QzMsMHg5MCwweEJFLDB4QjIsMHg0RCwweEU4LDB4MDYsMHgwMiwweEJFLDB4RDgsMHg1MSwweEU4LDB4MDAsMHgwMiwweEZGLDB4NzYsCi0weDE0LDB4NTgsMHhFOCwweDQ3LDB4MDIsMHhCRSwweERFLDB4NTEsMHhFOCwweEYzLDB4MDEsMHhGRiwweDc2LDB4MEUsMHg1OCwweEU4LAotMHgzQSwweDAyLDB4QkUsMHhFNCwweDUxLDB4RTgsMHhFNiwweDAxLDB4RkYsMHg3NiwweDEyLDB4NTgsMHhFOCwweDJELDB4MDIsMHhCRSwKLTB4RUEsMHg1MSwweEU4LDB4RDksMHgwMSwweEZGLDB4NzYsMHgxMCwweDU4LDB4RTgsMHgyMCwweDAyLDB4QkUsMHgxNCwweDUyLDB4RTgsCi0weENDLDB4MDEsMHhGRiwweDc2LDB4MEEsMHg1OCwweEU4LDB4MTMsMHgwMiwweEJFLDB4MUEsMHg1MiwweEU4LDB4QkYsMHgwMSwweEZGLAotMHg3NiwweDBDLDB4NTgsMHhFOCwweDA2LDB4MDIsMHhCRSwweENGLDB4NTEsMHhFOCwweEIyLDB4MDEsMHhGRiwweDc2LDB4MUEsMHg1OCwKLTB4RTgsMHhGOSwweDAxLDB4QkUsMHhCMiwweDRELDB4RTgsMHhBNSwweDAxLDB4QkUsMHhGMCwweDUxLDB4RTgsMHg5RiwweDAxLDB4RkYsCi0weDc2LDB4MTgsMHg1OCwweEU4LDB4RTYsMHgwMSwweEJFLDB4RjYsMHg1MSwweEU4LDB4OTIsMHgwMSwweEZGLDB4NzYsMHgwMiwweDU4LAotMHhFOCwweEQ5LDB4MDEsMHhCRSwweEZDLDB4NTEsMHhFOCwweDg1LDB4MDEsMHhGRiwweDc2LDB4MDQsMHg1OCwweEU4LDB4Q0MsMHgwMSwKLTB4QkUsMHgwMiwweDUyLDB4RTgsMHg3OCwweDAxLDB4RkYsMHg3NiwweDAwLDB4NTgsMHhFOCwweEJGLDB4MDEsMHhCRSwweDA4LDB4NTIsCi0weEU4LDB4NkIsMHgwMSwweEZGLDB4NzYsMHgwNiwweDU4LDB4RTgsMHhCMiwweDAxLDB4QkUsMHgwRSwweDUyLDB4RTgsMHg1RSwweDAxLAotMHhGRiwweDc2LDB4MDgsMHg1OCwweEU4LDB4QTUsMHgwMSwweEJFLDB4MjAsMHg1MiwweEU4LDB4NTEsMHgwMSwweEZGLDB4NzYsMHgxNiwKLTB4NTgsMHhFOCwweDk4LDB4MDEsMHhCRSwweDg5LDB4NEQsMHhFOCwweDQ0LDB4MDEsMHhDMywweDkwLDB4QkUsMHhDOSwweDRELDB4RTgsCi0weDNDLDB4MDEsMHhDMywweDNDLDB4MDAsMHg3NCwweDA1LDB4M0MsMHgwMSwweDc0LDB4NTksMHhDMywweEM3LDB4MDYsMHgwQywweDdBLAotMHhDRCwweDUwLDB4QzcsMHgwNiwweDBFLDB4N0EsMHhGMCwweDUwLDB4QzcsMHgwNiwweDEwLDB4N0EsMHhFOCwweDUwLDB4QzcsMHgwNiwKLTB4MTIsMHg3QSwweEVDLDB4NTAsMHhDNywweDA2LDB4MTQsMHg3QSwweEY0LDB4NTAsMHhDNywweDA2LDB4MTYsMHg3QSwweEZCLDB4NTAsCi0weEM3LDB4MDYsMHgxOCwweDdBLDB4MDMsMHg1MSwweEM3LDB4MDYsMHgxQSwweDdBLDB4MEIsMHg1MSwweEM3LDB4MDYsMHgxQywweDdBLAotMHgwRSwweDUxLDB4QzcsMHgwNiwweDFFLDB4N0EsMHgxMCwweDUxLDB4QzcsMHgwNiwweDIwLDB4N0EsMHgxMiwweDUxLDB4QzcsMHgwNiwKLTB4MjIsMHg3QSwweDE2LDB4NTEsMHhDNiwweDA2LDB4MjQsMHg3QSwweDAxLDB4QzYsMHgwNiwweDI1LDB4N0EsMHgwMSwweEM2LDB4MDYsCi0weDI2LDB4N0EsMHgwMywweEMzLDB4QzcsMHgwNiwweDBDLDB4N0EsMHgxQSwweDUxLDB4QzcsMHgwNiwweDBFLDB4N0EsMHg0RCwweDUxLAotMHhDNywweDA2LDB4MTAsMHg3QSwweDQ3LDB4NTEsMHhDNywweDA2LDB4MTIsMHg3QSwweDRBLDB4NTEsMHhDNywweDA2LDB4MTQsMHg3QSwKLTB4NEYsMHg1MSwweEM3LDB4MDYsMHgxNiwweDdBLDB4NTEsMHg1MSwweEM3LDB4MDYsMHgxOCwweDdBLDB4NTUsMHg1MSwweEM3LDB4MDYsCi0weDFBLDB4N0EsMHg1NiwweDUxLDB4QzcsMHgwNiwweDFDLDB4N0EsMHg1OSwweDUxLDB4QzcsMHgwNiwweDFFLDB4N0EsMHg1QSwweDUxLAotMHhDNywweDA2LDB4MjAsMHg3QSwweDVCLDB4NTEsMHhDNywweDA2LDB4MjIsMHg3QSwweDVFLDB4NTEsMHhDNiwweDA2LDB4MjQsMHg3QSwKLTB4MjAsMHhDNiwweDA2LDB4MjUsMHg3QSwweDIwLDB4QzYsMHgwNiwweDI2LDB4N0EsMHgwMiwweEMzLDB4QTEsMHhGOCwweDc5LDB4NDgsCi0weDc0LDB4MTQsMHhCRSwweEQ3LDB4NzksMHhFOCwweDNDLDB4MDAsMHg4QiwweEY4LDB4QUMsMHgzQywweDNBLDB4NzUsMHgwNywweDhFLAotMHhDNywweEU4LDB4MzAsMHgwMCwweDhCLDB4RjgsMHhDMywweDkwLDB4OEIsMHhDNywweDJCLDB4MDYsMHhGRSwweDc5LDB4OEEsMHhGMCwKLTB4MjQsMHgwRiwweDhBLDB4RDAsMHgwMiwweEQwLDB4MDIsMHhEMCwweDgwLDB4QzIsMHgwQiwweEMwLDB4RUUsMHgwNCwweDgwLDB4QzYsCi0weDAzLDB4MDQsMHgzRCwweEMzLDB4OEMsMHhDMCwweEU4LDB4OTMsMHgwMCwweEIwLDB4M0EsMHhFOCwweEU0LDB4MDAsMHg4QiwweEM3LAotMHhFOCwweDg5LDB4MDAsMHhDMywweDUxLDB4MzMsMHhDOSwweDkwLDB4QUMsMHgzQywweDIwLDB4NzQsMHhGQiwweDkwLDB4MEEsMHhDMCwKLTB4NzQsMHgyNiwweDJDLDB4MzAsMHg3MiwweDIyLDB4M0MsMHgwOSwweDc2LDB4MTQsMHgzQywweDExLDB4NzIsMHgxQSwweDJDLDB4MDcsCi0weDNDLDB4MEYsMHg3NiwweDBBLDB4M0MsMHgyQSwweDcyLDB4MTAsMHgyQywweDIwLDB4M0MsMHgwRiwweDc3LDB4MEEsMHg5OCwweEMxLAotMHhFMSwweDA0LDB4MDMsMHhDOCwweEFDLDB4RUIsMHhENywweDkwLDB4NEUsMHg4QiwweEMxLDB4NTksMHhDMywweDkwLDB4MDYsMHg4QywKLTB4QzgsMHg4RSwweEMwLDB4RTgsMHgwMiwweDAwLDB4MDcsMHhDMywweDI2LDB4OEEsMHgwNCwweDQ2LDB4MEEsMHhDMCwweDc0LDB4MDYsCi0weEU4LDB4OEYsMHgwMCwweEVCLDB4RjMsMHg5MCwweEMzLDB4OTAsMHgwQiwweEMwLDB4NzQsMHg3QSwweDUxLDB4MzMsMHhEMiwweEI5LAotMHhFOCwweDAzLDB4RjcsMHhGMSwweDhCLDB4Q0EsMHhFOCwweDAzLDB4MDAsMHg4QiwweEMxLDB4NTksMHhCQSwweDY0LDB4MDAsMHhGNiwKLTB4RjIsMHhFOCwweDBDLDB4MDAsMHg4QSwweEM0LDB4OTgsMHhCMiwweDBBLDB4RjYsMHhGMiwweEU4LDB4MDIsMHgwMCwweDhBLDB4QzQsCi0weDUwLDB4MEEsMHhGMCwweDc0LDB4MDUsMHgwNCwweDMwLDB4RTgsMHg1OCwweDAwLDB4NTgsMHhDMywweDg2LDB4QzQsMHhFOCwweDA3LAotMHgwMCwweDg2LDB4QzQsMHhFOCwweDAyLDB4MDAsMHhDMywweDkwLDB4QzEsMHhDOCwweDA0LDB4RTgsMHgwOCwweDAwLDB4QzEsMHhDMCwKLTB4MDQsMHhFOCwweDAyLDB4MDAsMHhDMywweDkwLDB4NTMsMHg1MCwweDI0LDB4MEYsMHhCQiwweENBLDB4NjIsMHgyRSwweEQ3LDB4RTgsCi0weDMwLDB4MDAsMHg1OCwweDVCLDB4QzMsMHg5MCwweDg2LDB4QzQsMHhFOCwweDA3LDB4MDAsMHg4NiwweEM0LDB4RTgsMHgwMiwweDAwLAotMHhDMywweDkwLDB4NTAsMHhCOSwweDA4LDB4MDAsMHg4QSwweEUwLDB4MzIsMHhDMCwweEQxLDB4QzAsMHgwNCwweDMwLDB4RTgsMHgxMSwKLTB4MDAsMHhFMiwweEY1LDB4NTgsMHhDMywweDkwLDB4QjAsMHgzMCwweEU4LDB4MDcsMHgwMCwweEMzLDB4QjAsMHgyMCwweEU4LDB4MDEsCi0weDAwLDB4QzMsMHg1NiwweDhCLDB4MzYsMHhEMCwweDc5LDB4ODgsMHg4NCwweEQwLDB4NzcsMHg0NiwweDgxLDB4RTYsMHhGRiwweDAxLAotMHhGRiwweDA2LDB4RDQsMHg3OSwweDg5LDB4MzYsMHhEMCwweDc5LDB4ODEsMHgzRSwweEQ0LDB4NzksMHhGRSwweDAxLDB4NzUsMHgwOCwKLTB4NTYsMHhFOCwweDE0LDB4MDAsMHg1RSwweEVCLDB4RjEsMHg5MCwweDVFLDB4QzMsMHhCQSwweDAyLDB4MDIsMHhFQywweDI0LDB4MDEsCi0weDc0LDB4MDQsMHhCQSwweDA2LDB4MDIsMHhFQywweEMzLDB4OTAsMHg4MCwweDNFLDB4RjYsMHg3OSwweDAwLDB4NzQsMHgwOSwweDYwLAotMHhCOCwweDAxLDB4MDAsMHhFOCwweDJDLDB4RUEsMHg2MSwweDkwLDB4QkEsMHgwMiwweDAyLDB4RUMsMHhBOCwweDA0LDB4NzQsMHgyOCwKLTB4OEIsMHgzNiwweEQyLDB4NzksMHg4MywweDNFLDB4RDQsMHg3OSwweDAwLDB4NzQsMHgxRCwweDhBLDB4ODQsMHhEMCwweDc3LDB4NDYsCi0weDgxLDB4RTYsMHhGRiwweDAxLDB4ODksMHgzNiwweEQyLDB4NzksMHhGRiwweDBFLDB4RDQsMHg3OSwweEJBLDB4MDYsMHgwMiwweEVFLAotMHhCQSwweDAyLDB4MDIsMHhFQywweEE4LDB4MDQsMHg3NSwweERDLDB4QTEsMHhENCwweDc5LDB4QzMsMHg1MiwweEJBLDB4MDYsMHgwMiwKLTB4RUUsMHg1QSwweEMzLDB4OTAsMHg1MiwweDUwLDB4QkEsMHgwMiwweDAyLDB4RUMsMHhBOCwweDA0LDB4NzQsMHgwOCwweDU4LDB4NUEsCi0weEU4LDB4RTksMHhGRiwweEY5LDB4QzMsMHg5MCwweDU4LDB4NUEsMHhGOCwweEMzLDB4NTIsMHg1MCwweEJBLDB4MDIsMHgwMiwweEVDLAotMHhBOCwweDA0LDB4NzQsMHhGQiwweDU4LDB4NUEsMHhFOCwweEQzLDB4RkYsMHhDMywweDMwLDB4MzEsMHgzMiwweDMzLDB4MzQsMHgzNSwKLTB4MzYsMHgzNywweDM4LDB4MzksMHg0MSwweDQyLDB4NDMsMHg0NCwweDQ1LDB4NDYsMHg1MywweDUwLDB4OEEsMHhFMCwweDgwLDB4RTQsCi0weDBGLDB4QkIsMHhDQSwweDYyLDB4QzAsMHhFOCwweDA0LDB4MkUsMHhENywweEU4LDB4Q0UsMHhGRiwweDhBLDB4QzQsMHgyRSwweEQ3LAotMHhFOCwweEM3LDB4RkYsMHg1OCwweDVCLDB4QzMsMHg4NiwweEUwLDB4RTgsMHhERiwweEZGLDB4ODYsMHhFMCwweEU4LDB4REEsMHhGRiwKLTB4QzMsMHg5MCwweEJFLDB4QjIsMHg0RCwweDUwLDB4MkUsMHhBQywweDNDLDB4MDAsMHg3NCwweDA1LDB4RTgsMHhBQiwweEZGLDB4RUIsCi0weEY1LDB4NTgsMHhDMywweDkwLDB4QzgsMHgwOCwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg3NiwweDA0LDB4QkYsMHgwNCwweDAwLAotMHhDNywweDQ2LDB4RkMsMHgwMCwweDAwLDB4QzcsMHg0NiwweEZBLDB4MDAsMHgwMCwweEM3LDB4NDYsMHhGOCwweDAwLDB4MDAsMHg4MywKLTB4N0UsMHgwNiwweDAwLDB4NzUsMHgwRSwweDU2LDB4RTgsMHhCNiwweDBFLDB4NTksMHgwQiwweEMwLDB4NzUsMHgwNSwweDhCLDB4QzcsCi0weEU5LDB4NUIsMHgwMSwweDhCLDB4NDYsMHhGQywweDg5LDB4NDYsMHhGRSwweDBCLDB4RkYsMHg3NSwweDA1LDB4QjgsMHgwMSwweDAwLAotMHhFQiwweDAyLDB4MzMsMHhDMCwweDUwLDB4NTYsMHhFOCwweEE0LDB4MEQsMHg1OSwweDU5LDB4QjQsMHgwMCwweDg5LDB4NDYsMHhGQywKLTB4OEIsMHg1RSwweEZDLDB4ODMsMHhGQiwweDA4LDB4NzYsMHgwMywweEU5LDB4MkIsMHgwMSwweEQxLDB4RTMsMHgyRSwweEZGLDB4QTcsCi0weEIyLDB4NjQsMHhCOCwweDAzLDB4MDAsMHhFOSwweDI2LDB4MDEsMHg4MywweDdFLDB4RkEsMHgwMCwweDc0LDB4MTQsMHhDNywweDQ2LAotMHhGQSwweDAwLDB4MDAsMHg4QSwweDQ0LDB4NTgsMHg5OCwweDUwLDB4OEEsMHg0NCwweDU5LDB4OTgsMHg1MCwweEU4LDB4QzIsMHgwRiwKLTB4NTksMHg1OSwweDgzLDB4N0UsMHhGOCwweDAwLDB4NzQsMHgwQSwweEM3LDB4NDYsMHhGOCwweDAwLDB4MDAsMHg1NiwweEU4LDB4OUIsCi0weDA4LDB4NTksMHg4MywweDdFLDB4MDYsMHgwMCwweDc1LDB4MDUsMHg4QiwweEM3LDB4RTksMHhGMSwweDAwLDB4ODMsMHhGRiwweDA0LAotMHg3NSwweDAzLDB4RTksMHhFNiwweDAwLDB4OEIsMHhDNywweEU5LDB4RTQsMHgwMCwweDgzLDB4N0UsMHhGRSwweDAwLDB4NzUsMHgwMywKLTB4QkYsMHgwMiwweDAwLDB4RTksMHhENSwweDAwLDB4ODMsMHg3RSwweEZFLDB4MDAsMHg3NSwweDAzLDB4QkYsMHgwMSwweDAwLDB4RTksCi0weEM5LDB4MDAsMHg4QiwweDVFLDB4RkUsMHg4MywweEZCLDB4MDcsMHg3NiwweDAzLDB4RTksMHg4NiwweDAwLDB4RDEsMHhFMywweDJFLAotMHhGRiwweEE3LDB4QTIsMHg2NCwweDMzLDB4RkYsMHhFOSwweDdGLDB4MDAsMHhCRiwweDA0LDB4MDAsMHg4MCwweDdDLDB4NTgsMHgwRiwKLTB4NzQsMHgyMiwweDgzLDB4N0UsMHhGOCwweDAwLDB4NzUsMHgxQywweEZFLDB4NDQsMHg1OCwweDZBLDB4MDgsMHg1NiwweEU4LDB4N0UsCi0weDBDLDB4NTksMHg1OSwweDhBLDB4NDQsMHg1OCwweDA0LDB4ODAsMHg1MCwweDU2LDB4RTgsMHg3MiwweDBDLDB4NTksMHg1OSwweEM3LAotMHg0NiwweEZBLDB4MDEsMHgwMCwweDgzLDB4N0UsMHhGOCwweDAwLDB4NzQsMHgwQSwweEM3LDB4NDYsMHhGOCwweDAwLDB4MDAsMHg1NiwKLTB4RTgsMHgxOSwweDA4LDB4NTksMHhFQiwweDQyLDB4QkYsMHgwNCwweDAwLDB4ODAsMHg3QywweDU4LDB4MDAsMHg3NCwweDIyLDB4ODMsCi0weDdFLDB4RjgsMHgwMCwweDc1LDB4MUMsMHhGRSwweDRDLDB4NTgsMHg2QSwweDA4LDB4NTYsMHhFOCwweDQxLDB4MEMsMHg1OSwweDU5LAotMHg4QSwweDQ0LDB4NTgsMHgwNCwweDgwLDB4NTAsMHg1NiwweEU4LDB4MzUsMHgwQywweDU5LDB4NTksMHhDNywweDQ2LDB4RkEsMHgwMSwKLTB4MDAsMHg4MywweDdFLDB4RjgsMHgwMCwweDc0LDB4MEEsMHhDNywweDQ2LDB4RjgsMHgwMCwweDAwLDB4NTYsMHhFOCwweERDLDB4MDcsCi0weDU5LDB4RUIsMHgwNSwweEJGLDB4MDQsMHgwMCwweEVCLDB4MDAsMHhFQiwweDMxLDB4QkYsMHgwNCwweDAwLDB4RUIsMHgyQywweEM3LAotMHg0NiwweEY4LDB4MDEsMHgwMCwweDZBLDB4MDgsMHg1NiwweEU4LDB4MDUsMHgwQywweDU5LDB4NTksMHg4MCwweDdDLDB4NTgsMHgwOSwKLTB4N0QsMHgwNCwweEIwLDB4MEYsMHhFQiwweDAyLDB4QjAsMHgwMCwweDA0LDB4ODAsMHg1MCwweDU2LDB4RTgsMHhGMCwweDBCLDB4NTksCi0weDU5LDB4QkYsMHgwNCwweDAwLDB4RUIsMHgwNSwweEJGLDB4MDQsMHgwMCwweEVCLDB4MDAsMHhFOSwweEE1LDB4RkUsMHg1RiwweDVFLAotMHhDOSwweEMzLDB4RTQsMHg2MywweDYzLDB4NjQsMHg2MywweDY0LDB4NjMsMHg2NCwweDYzLDB4NjQsMHhFOSwweDYzLDB4MjYsMHg2NCwKLTB4NTEsMHg2NCwweDc4LDB4NjMsMHhCQSwweDYzLDB4QzYsMHg2MywweDk2LDB4NjQsMHhEMiwweDYzLDB4NkEsMHg2NCwweDZBLDB4NjQsCi0weDZGLDB4NjQsMHg3MiwweDYzLDB4QzgsMHgwOCwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg3NiwweDA0LDB4OEIsMHg3RSwweDA4LAotMHg2QSwweDAxLDB4NTYsMHhFOCwweEE5LDB4MEIsMHg1OSwweDU5LDB4OEEsMHg0NiwweDA2LDB4QzAsMHhFMCwweDA2LDB4MDQsMHg4MCwKLTB4NTAsMHg1NiwweEU4LDB4OUEsMHgwQiwweDU5LDB4NTksMHhDNywweDQ2LDB4RkUsMHgwMCwweDAwLDB4ODksMHg3RSwweEY4LDB4RUIsCi0weDAzLDB4RkYsMHg0NiwweEZFLDB4OEIsMHg1RSwweEY4LDB4RkYsMHg0NiwweEY4LDB4ODAsMHgzRiwweDAwLDB4NzUsMHhGMiwweDgzLAotMHg3RSwweEZFLDB4MTAsMHg3RCwweDI1LDB4QjgsMHgxMCwweDAwLDB4MkIsMHg0NiwweEZFLDB4RDEsMHhGOCwweDg5LDB4NDYsMHhGQywKLTB4QzcsMHg0NiwweEZBLDB4MDAsMHgwMCwweEVCLDB4MEIsMHg2QSwweDIwLDB4NTYsMHhFOCwweDYyLDB4MEIsMHg1OSwweDU5LDB4RkYsCi0weDQ2LDB4RkEsMHg4QiwweDQ2LDB4RkEsMHgzQiwweDQ2LDB4RkMsMHg3QywweEVELDB4RUIsMHgwQywweDhCLDB4REYsMHg0NywweDhBLAotMHgwNywweDUwLDB4NTYsMHhFOCwweDQ5LDB4MEIsMHg1OSwweDU5LDB4ODAsMHgzRCwweDAwLDB4NzUsMHhFRiwweDZBLDB4MDIsMHg1NiwKLTB4RTgsMHgzQywweDBCLDB4NTksMHg1OSwweEVCLDB4MDAsMHg1RiwweDVFLDB4QzksMHhDMywweEM4LDB4MDQsMHgwMCwweDAwLDB4NTYsCi0weDU3LDB4OEIsMHg3RSwweDA0LDB4QzcsMHg0NiwweEZFLDB4MDAsMHgwMCwweEJFLDB4MTQsMHgwMCwweEU5LDB4MDksMHgwMSwweDhCLAotMHg1RSwweEZFLDB4ODMsMHhDMywweDA0LDB4MkIsMHhERiwweDhBLDB4ODcsMHhBQywweDBCLDB4ODgsMHg0NCwweDVBLDB4QzYsMHg0NCwKLTB4NTgsMHgwOCwweDhBLDB4NDYsMHhGRSwweDg4LDB4NDQsMHg1OSwweEM3LDB4NDQsMHgwNiwweDAwLDB4MDAsMHhDNiwweDQ0LDB4MTksCi0weDAwLDB4QzYsMHg0NCwweDFBLDB4MDAsMHhDNiwweDQ0LDB4MUIsMHgwMCwweEM2LDB4NDQsMHgxRCwweDBELDB4QzYsMHg0NCwweDFFLAotMHgwMywweEM2LDB4NDQsMHgxRiwweDAwLDB4QzYsMHg0NCwweDIwLDB4MDAsMHhDNiwweDQ0LDB4MjEsMHgwMCwweEM2LDB4NDQsMHg1QiwKLTB4MDAsMHhDNiwweDQ0LDB4NUQsMHgwMCwweEM2LDB4NDQsMHg1RSwweDAwLDB4QzYsMHg0NCwweDVGLDB4MDAsMHhDNiwweDQ0LDB4NjAsCi0weDAwLDB4QzcsMHg0NiwweEZDLDB4MDAsMHgwMCwweEVCLDB4MEQsMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLDB4QzcsMHg0MCwweDMwLAotMHgwMCwweDAwLDB4RkYsMHg0NiwweEZDLDB4ODMsMHg3RSwweEZDLDB4MTAsMHg3QywweEVELDB4QzcsMHg0NiwweEZDLDB4MDAsMHgwMCwKLTB4RUIsMHgwQSwweDhCLDB4NUUsMHhGQywweEM2LDB4NDAsMHg1MCwweDAwLDB4RkYsMHg0NiwweEZDLDB4ODMsMHg3RSwweEZDLDB4MDQsCi0weDdDLDB4RjAsMHhDNywweDQ0LDB4NTQsMHgwMCwweDAwLDB4QzcsMHg0NCwweDU2LDB4MDAsMHgwMCwweDhBLDB4NDQsMHg1QSwweDk4LAotMHhCQSwweEY4LDB4MDAsMHgyMywweEQwLDB4QjgsMHgwNSwweDAwLDB4MEIsMHhDMiwweDg5LDB4NDYsMHhGQywweDlDLDB4RkEsMHg4QSwKLTB4NDYsMHhGQywweEJBLDB4RkUsMHgwMCwweEVFLDB4QkEsMHgwMCwweDAwLDB4RUMsMHg5RCwweDI0LDB4MDgsMHg4OCwweDQ2LDB4RkMsCi0weDgzLDB4N0UsMHhGQywweDAwLDB4NzUsMHgwMiwweEVCLDB4NEEsMHhGRiwweDc2LDB4RkUsMHhFOCwweDdBLDB4MEMsMHg1OSwweDY4LAotMHgzNSwweDAyLDB4NTYsMHhFOCwweDMyLDB4MEEsMHg1OSwweDU5LDB4MEIsMHhDMCwweDc1LDB4MzQsMHg2OCwweDM4LDB4MDIsMHg1NiwKLTB4RTgsMHgyNSwweDBBLDB4NTksMHg1OSwweDBCLDB4QzAsMHg3NSwweDI3LDB4NjgsMHg0MiwweDAyLDB4NTYsMHhFOCwweDE4LDB4MEEsCi0weDU5LDB4NTksMHgwQiwweEMwLDB4NzUsMHgxQSwweDY4LDB4NEMsMHgwMiwweDU2LDB4RTgsMHgwQiwweDBBLDB4NTksMHg1OSwweDBCLAotMHhDMCwweDc1LDB4MEQsMHg2OCwweDU2LDB4MDIsMHg1NiwweEU4LDB4RkUsMHgwOSwweDU5LDB4NTksMHgwQiwweEMwLDB4NzQsMHgwMiwKLTB4RUIsMHgwMCwweEZGLDB4NDYsMHhGRSwweDgzLDB4QzYsMHg2MiwweDM5LDB4N0UsMHhGRSwweDdELDB4MDMsMHhFOSwweEVGLDB4RkUsCi0weEVCLDB4MDAsMHg1RiwweDVFLDB4QzksMHhDMywweEM4LDB4MDgsMHgwMCwweDAwLDB4NTYsMHg1NywweDhCLDB4NDYsMHgwNCwweEJBLAotMHg2MiwweDAwLDB4RjcsMHhFQSwweDA1LDB4MTQsMHgwMCwweDhCLDB4RjAsMHg4MywweDdFLDB4MDYsMHgwMCwweDc0LDB4MDUsMHhCOCwKLTB4MTAsMHgwMCwweEVCLDB4MDMsMHhCOCwweDA4LDB4MDAsMHg4OSwweDQ0LDB4MDQsMHg4QSwweDQ2LDB4MDgsMHg4OCwweDQ0LDB4NUMsCi0weDU2LDB4RTgsMHg1OSwweDA0LDB4NTksMHg4QiwweEY4LDB4OEIsMHhDNywweDg5LDB4NDQsMHg1NiwweDg5LDB4NDQsMHg1NCwweDhBLAotMHg0NCwweDVELDB4ODgsMHg0NCwweDJGLDB4MEIsMHhGRiwweDc1LDB4MUQsMHg2OCwweEMyLDB4MEYsMHg2QSwweDAxLDB4NTYsMHhFOCwKLTB4MDIsMHhGRSwweDgzLDB4QzQsMHgwNiwweEVCLDB4MDAsMHg2QSwweDAxLDB4NTYsMHhFOCwweDQ3LDB4RkMsMHg1OSwweDU5LDB4MEIsCi0weEMwLDB4NzUsMHhGNCwweEJGLDB4MDEsMHgwMCwweDg5LDB4N0UsMHhGQSwweEI5LDB4MDUsMHgwMCwweEJCLDB4RTksMHg2QSwweDJFLAotMHg4QiwweDA3LDB4M0IsMHg0NiwweEZBLDB4NzQsMHgwNywweDQzLDB4NDMsMHhFMiwweEY0LDB4RTksMHhBNCwweDAzLDB4MkUsMHhGRiwKLTB4NjcsMHgwQSwweEM3LDB4NDQsMHgwNiwweDAyLDB4MDAsMHhDNywweDQ0LDB4MDgsMHhGNCwweDA4LDB4OEIsMHg1RSwweDA0LDB4RDEsCi0weEUzLDB4OEIsMHg4NywweEZDLDB4MDgsMHg4OSwweDQ0LDB4MEEsMHgzMywweEMwLDB4OEIsMHhGOCwweDg5LDB4NDQsMHg1NCwweEU5LAotMHg4MCwweDAzLDB4NTYsMHhFOCwweEJCLDB4MDUsMHg1OSwweEJGLDB4MDEsMHgwMCwweDhBLDB4NDQsMHg1RCwweDg4LDB4NDQsMHg2MCwKLTB4RTksMHg2RiwweDAzLDB4ODMsMHg3QywweDA0LDB4MDgsMHg3NSwweDMwLDB4ODAsMHg3QywweDVDLDB4MDEsMHg3NSwweDE1LDB4OEEsCi0weDQ0LDB4NUQsMHhCNCwweDAwLDB4RDEsMHhFMCwweDhCLDB4RDgsMHhGRiwweEI3LDB4RTQsMHgwOCwweDU2LDB4RTgsMHhGNywweDA4LAotMHg1OSwweDU5LDB4RUIsMHgxMywweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhDNCwKLTB4MDgsMHg1NiwweEU4LDB4RTIsMHgwOCwweDU5LDB4NTksMHhFQiwweDJFLDB4ODAsMHg3QywweDVDLDB4MDEsMHg3NSwweDE1LDB4OEEsCi0weDQ0LDB4NUQsMHhCNCwweDAwLDB4RDEsMHhFMCwweDhCLDB4RDgsMHhGRiwweEI3LDB4RDQsMHgwOCwweDU2LDB4RTgsMHhDNywweDA4LAotMHg1OSwweDU5LDB4RUIsMHgxMywweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhCNCwKLTB4MDgsMHg1NiwweEU4LDB4QjIsMHgwOCwweDU5LDB4NTksMHg2QSwweDAxLDB4NTYsMHhFOCwweDg3LDB4RkIsMHg1OSwweDU5LDB4OEIsCi0weEQ4LDB4ODMsMHhGQiwweDAzLDB4NzcsMHgyQSwweEQxLDB4RTMsMHgyRSwweEZGLDB4QTcsMHhFMSwweDZBLDB4QkYsMHgwMSwweDAwLAotMHg4QSwweDQ0LDB4NUQsMHg4OCwweDQ0LDB4NUUsMHhFQiwweDE4LDB4OEEsMHg0NCwweDVELDB4MDQsMHhGRiwweDI0LDB4MDcsMHg4OCwKLTB4NDQsMHg1RCwweEVCLDB4MEMsMHg4QSwweDQ0LDB4NUQsMHhGRSwweEMwLDB4MjQsMHgwNywweDg4LDB4NDQsMHg1RCwweEVCLDB4MDAsCi0weEU5LDB4Q0YsMHgwMiwweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhGRCwweDAyLAotMHg1NiwweEU4LDB4NjMsMHgwOCwweDU5LDB4NTksMHg2OCwweDFELDB4MDMsMHg1NiwweEU4LDB4NUEsMHgwOCwweDU5LDB4NTksMHg2QSwKLTB4MDEsMHg1NiwweEU4LDB4MkYsMHhGQiwweDU5LDB4NTksMHg4QiwweEQ4LDB4ODMsMHhGQiwweDAzLDB4NzcsMHgzNiwweEQxLDB4RTMsCi0weDJFLDB4RkYsMHhBNywweEQ5LDB4NkEsMHhCRiwweDAxLDB4MDAsMHg4QSwweDQ0LDB4NUQsMHg4OCwweDQ0LDB4NUYsMHhFQiwweDI0LAotMHg4QSwweDQ0LDB4NUQsMHgwNCwweEZGLDB4OEEsMHg1NCwweDA0LDB4ODAsMHhDMiwweEZGLDB4MjIsMHhDMiwweDg4LDB4NDQsMHg1RCwKLTB4RUIsMHgxMiwweDhBLDB4NDQsMHg1RCwweEZFLDB4QzAsMHg4QSwweDU0LDB4MDQsMHg4MCwweEMyLDB4RkYsMHgyMiwweEMyLDB4ODgsCi0weDQ0LDB4NUQsMHhFQiwweDAwLDB4RTksMHg2QiwweDAyLDB4OEIsMHg1QywweDA2LDB4ODMsMHhDMywweEZFLDB4RDEsMHhFMywweDhCLAotMHg0MCwweDA4LDB4ODksMHgwNCwweDhCLDB4MUMsMHhGRiwweDc3LDB4MDYsMHg2QSwweDAwLDB4NTYsMHhFOCwweDg1LDB4RkMsMHg4MywKLTB4QzQsMHgwNiwweDhCLDB4NUMsMHgwNiwweDRCLDB4RDEsMHhFMywweDhCLDB4NDAsMHgwOCwweDg5LDB4NDQsMHgwMiwweDhCLDB4NUMsCi0weDAyLDB4RkYsMHg3NywweDA2LDB4NkEsMHgwMSwweDU2LDB4RTgsMHg2QSwweEZDLDB4ODMsMHhDNCwweDA2LDB4NkEsMHgwMSwweDU2LAotMHhFOCwweEIxLDB4RkEsMHg1OSwweDU5LDB4OEIsMHhEOCwweDgzLDB4RkIsMHgwMywweDc2LDB4MDMsMHhFOSwweDFGLDB4MDIsMHhEMSwKLTB4RTMsMHgyRSwweEZGLDB4QTcsMHhEMSwweDZBLDB4OEIsMHg1QywweDAyLDB4OEIsMHg0NywweDA0LDB4ODksMHg0NCwweDAyLDB4OEIsCi0weDVDLDB4MDIsMHg4MCwweDNGLDB4NDQsMHg3NSwweDBELDB4OEIsMHg1QywweDAyLDB4OEEsMHg0NywweDAxLDB4QjQsMHgwMCwweDNCLAotMHg0NCwweDA0LDB4N0QsMHhFMiwweDhCLDB4NDYsMHgwNCwweEQxLDB4RTAsMHg4QiwweDFDLDB4MDMsMHhEOCwweDhCLDB4NDQsMHgwMiwKLTB4ODksMHg0NywweDA4LDB4OEIsMHg1QywweDA2LDB4NEIsMHhEMSwweEUzLDB4OEIsMHg0NCwweDAyLDB4ODksMHg0MCwweDA4LDB4RTksCi0weERFLDB4MDEsMHg4QiwweDVDLDB4MDIsMHg4QiwweDQ3LDB4MDIsMHg4OSwweDQ0LDB4MDIsMHg4QiwweDVDLDB4MDIsMHg4MCwweDNGLAotMHg0NCwweDc1LDB4MEQsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHhCNCwweDAwLDB4M0IsMHg0NCwweDA0LDB4N0QsMHhFMiwKLTB4OEIsMHg0NiwweDA0LDB4RDEsMHhFMCwweDhCLDB4MUMsMHgwMywweEQ4LDB4OEIsMHg0NCwweDAyLDB4ODksMHg0NywweDA4LDB4OEIsCi0weDVDLDB4MDYsMHg0QiwweEQxLDB4RTMsMHg4QiwweDQ0LDB4MDIsMHg4OSwweDQwLDB4MDgsMHhFOSwweEEyLDB4MDEsMHhCRiwweDAxLAotMHgwMCwweEU5LDB4OUMsMHgwMSwweDhCLDB4NUMsMHgwMiwweDhBLDB4MDcsMHhCNCwweDAwLDB4ODksMHg0NiwweEY4LDB4QjksMHgwQywKLTB4MDAsMHhCQiwweEExLDB4NkEsMHgyRSwweDhCLDB4MDcsMHgzQiwweDQ2LDB4RjgsMHg3NCwweDA3LDB4NDMsMHg0MywweEUyLDB4RjQsCi0weEU5LDB4NzcsMHgwMSwweDJFLDB4RkYsMHg2NywweDE4LDB4OEIsMHg0NiwweDA0LDB4RDEsMHhFMCwweDhCLDB4NUMsMHgwMiwweDAzLAotMHhEOCwweDhCLDB4NDcsMHgwOCwweDhCLDB4NUMsMHgwNiwweEZGLDB4NDQsMHgwNiwweEQxLDB4RTMsMHg4OSwweDQwLDB4MDgsMHg4QiwKLTB4MUMsMHg4MCwweDdGLDB4MDEsMHgwMCwweDc0LDB4MTIsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsCi0weDU3LDB4MDEsMHhCNiwweDAwLDB4OEIsMHhEQSwweDg4LDB4NDAsMHgxOCwweEU5LDB4NDAsMHgwMSwweEZGLDB4NEMsMHgwNiwweEU5LAotMHgzQSwweDAxLDB4OEIsMHg1QywweDAyLDB4OEEsMHg0NywweDAxLDB4OEIsMHgxQywweDhBLDB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwKLTB4REEsMHg4OCwweDQwLDB4MTgsMHhFOSwweDI1LDB4MDEsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsCi0weDU3LDB4MDEsMHhCNiwweDAwLDB4OEIsMHhEQSwweDg4LDB4NDAsMHgxOCwweEZGLDB4NEMsMHgwNiwweEU5LDB4MEQsMHgwMSwweDhCLAotMHg1QywweDAyLDB4OEEsMHg0NywweDAxLDB4OEIsMHgxQywweDhBLDB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwweERBLDB4MzAsMHg0MCwKLTB4MTgsMHhFOSwweEY4LDB4MDAsMHhCOCwweEYwLDB4MTAsMHg4QiwweEY4LDB4ODksMHg0NCwweDU0LDB4OEEsMHg0NCwweDVGLDB4ODgsCi0weDQ0LDB4NUQsMHhFOSwweEU3LDB4MDAsMHg4QSwweDQ0LDB4MUMsMHg5OCwweDNELDB4MDIsMHgwMCwweDc0LDB4MDcsMHgzRCwweDAzLAotMHgwMCwweDc0LDB4MDIsMHhFQiwweDA3LDB4QzcsMHg0NiwweEZFLDB4MDAsMHgwMCwweEVCLDB4MkIsMHg4QSwweDQ0LDB4MUMsMHg5OCwKLTB4RDEsMHhFMCwweDhCLDB4RDgsMHhGRiwweEI3LDB4NjksMHgwMiwweDU2LDB4RTgsMHg2QiwweDA2LDB4NTksMHg1OSwweDZBLDB4MDEsCi0weDU2LDB4RTgsMHg0MCwweEY5LDB4NTksMHg1OSwweDg5LDB4NDYsMHhGRSwweDgzLDB4N0UsMHhGRSwweDAwLDB4NzQsMHgwNiwweDgzLAotMHg3RSwweEZFLDB4MDMsMHg3NSwweEU5LDB4RUIsMHgwMCwweDgzLDB4N0UsMHhGRSwweDAzLDB4NzQsMHg2MiwweDhBLDB4NDQsMHgxQywKLTB4OTgsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHg2RCwweDAyLDB4NTYsMHhFOCwweDNBLDB4MDYsMHg1OSwweDU5LDB4NTYsCi0weEU4LDB4NEQsMHg5NywweDU5LDB4ODksMHg0NiwweEZDLDB4OEIsMHg1RSwweEZDLDB4ODMsMHhFQiwweEZFLDB4ODMsMHhGQiwweDAzLAotMHg3NywweDMzLDB4RDEsMHhFMywweDJFLDB4RkYsMHhBNywweDk5LDB4NkEsMHg2OCwweEFDLDB4MDIsMHg1NiwweEU4LDB4MTcsMHgwNiwKLTB4NTksMHg1OSwweEVCLDB4MjMsMHg2OCwweDhGLDB4MDIsMHg1NiwweEU4LDB4MEMsMHgwNiwweDU5LDB4NTksMHhFQiwweDE4LDB4NjgsCi0weDc1LDB4MDIsMHg1NiwweEU4LDB4MDEsMHgwNiwweDU5LDB4NTksMHhFQiwweDBELDB4NjgsMHhDNiwweDAyLDB4NTYsMHhFOCwweEY2LAotMHgwNSwweDU5LDB4NTksMHhFQiwweDAyLDB4RUIsMHgwMCwweDZBLDB4MDEsMHg1NiwweEU4LDB4QzcsMHhGOCwweDU5LDB4NTksMHhCRiwKLTB4MDEsMHgwMCwweEVCLDB4MzgsMHg2OCwweERELDB4MDIsMHg1NiwweEU4LDB4REMsMHgwNSwweDU5LDB4NTksMHg2QSwweDAxLDB4NTYsCi0weEU4LDB4QjEsMHhGOCwweDU5LDB4NTksMHhCRiwweDAxLDB4MDAsMHhFQiwweDIyLDB4QjgsMHhEMCwweDMwLDB4OEIsMHhGOCwweDg5LAotMHg0NCwweDU0LDB4OEEsMHg0NCwweDYwLDB4ODgsMHg0NCwweDVELDB4RUIsMHgxMiwweEI4LDB4RTAsMHgyMCwweDhCLDB4RjgsMHg4OSwKLTB4NDQsMHg1NCwweDhBLDB4NDQsMHg1RSwweDg4LDB4NDQsMHg1RCwweEVCLDB4MDIsMHhFQiwweDAwLDB4RUIsMHgwMiwweEVCLDB4MDAsCi0weEVCLDB4MDAsMHhFOSwweDQxLDB4RkMsMHg1RiwweDVFLDB4QzksMHhDMywweDE5LDB4NkEsMHgyNCwweDZBLDB4MkYsMHg2QSwweDNBLAotMHg2QSwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHg0MSwweDAwLDB4NDIsMHgwMCwweDQzLDB4MDAsMHg0NCwKLTB4MDAsMHg4MCwweDAwLDB4ODEsMHgwMCwweDgyLDB4MDAsMHhGRiwweDAwLDB4MTcsMHg2OSwweDU0LDB4NkEsMHg3QSwweDZBLDB4QTUsCi0weDY5LDB4NTIsMHg2OSwweDk0LDB4NjksMHg2QSwweDZBLDB4NjcsMHg2OSwweDUyLDB4NjksMHg3RiwweDY5LDB4NjcsMHg2OSwweDRDLAotMHg2OSwweEY0LDB4NjgsMHg3NiwweDY4LDB4QjIsMHg2OCwweEVFLDB4NjgsMHhGNSwweDY3LDB4MDAsMHg2OCwweDEyLDB4NjgsMHhGNSwKLTB4NjcsMHg5RCwweDY3LDB4QTgsMHg2NywweEI0LDB4NjcsMHg5RCwweDY3LDB4MDAsMHgwMCwweDAxLDB4MDAsMHhGMCwweDEwLDB4RTAsCi0weDIwLDB4RDAsMHgzMCwweDI3LDB4NjgsMHhGMiwweDY2LDB4QzMsMHg2NywweDIzLDB4NjcsMHgxMiwweDY3LDB4QzgsMHgwNCwweDAwLAotMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHg4QSwweDQ0LDB4NTksMHg5OCwweDg5LDB4NDYsMHhGQywweDZBLDB4MDksMHg4QiwKLTB4NDYsMHhGQywweDA1LDB4ODQsMHgwMSwweDUwLDB4RTgsMHg5MywweDA4LDB4NTksMHg1OSwweDhCLDB4RjgsMHg4QiwweEM3LDB4MjUsCi0weDAwLDB4RjAsMHgzRCwweDAwLDB4MTAsMHg3NSwweDU1LDB4OEIsMHhDNywweDI1LDB4RjAsMHgwMCwweDNELDB4RjAsMHgwMCwweDc1LAotMHg0QiwweDhCLDB4QzcsMHgyNSwweDAwLDB4MEYsMHhDMSwweEY4LDB4MDgsMHg4OSwweDQ2LDB4RkUsMHg4QiwweDQ0LDB4MDQsMHgzQiwKLTB4NDYsMHhGRSwweDdELDB4MDUsMHgzMywweEMwLDB4RTksMHhFRiwweDAwLDB4OEIsMHhDNywweDI1LDB4MEYsMHgwMCwweEJBLDB4MEYsCi0weDAwLDB4MkIsMHhEMCwweDNCLDB4NTYsMHhGRSwweDc0LDB4MDUsMHgzMywweEMwLDB4RTksMHhEQiwweDAwLDB4QzcsMHg0NCwweDAyLAotMHgwNCwweDA5LDB4OEEsMHg0NiwweEZFLDB4ODgsMHg0NCwweDVGLDB4ODgsMHg0NCwweDVELDB4OEIsMHg1RSwweEZDLDB4RDEsMHhFMywKLTB4QzcsMHg4NywweEZDLDB4MDgsMHgwNCwweDA5LDB4QjgsMHhGMCwweDEwLDB4RTksMHhCQywweDAwLDB4OEIsMHhDNywweDI1LDB4MDAsCi0weEYwLDB4M0QsMHgwMCwweDIwLDB4NzUsMHg1MiwweDhCLDB4QzcsMHgyNSwweEYwLDB4MDAsMHgzRCwweEUwLDB4MDAsMHg3NSwweDQ4LAotMHg4QiwweEM3LDB4MjUsMHgwMCwweDBGLDB4QzEsMHhGOCwweDA4LDB4ODksMHg0NiwweEZFLDB4ODMsMHg3RSwweEZFLDB4MDgsMHg3RSwKLTB4MDUsMHgzMywweEMwLDB4RTksMHg5MiwweDAwLDB4OEIsMHhDNywweDI1LDB4MEYsMHgwMCwweEJBLDB4MEYsMHgwMCwweDJCLDB4RDAsCi0weDNCLDB4NTYsMHhGRSwweDc0LDB4MDUsMHgzMywweEMwLDB4RUIsMHg3RiwweDkwLDB4QzcsMHg0NCwweDAyLDB4MEMsMHgwOSwweDhBLAotMHg0NiwweEZFLDB4ODgsMHg0NCwweDVFLDB4ODgsMHg0NCwweDVELDB4OEIsMHg1RSwweEZDLDB4RDEsMHhFMywweEM3LDB4ODcsMHhGQywKLTB4MDgsMHgwQywweDA5LDB4QjgsMHhFMCwweDIwLDB4RUIsMHg2MCwweDhCLDB4QzcsMHgyNSwweDAwLDB4RjAsMHgzRCwweDAwLDB4MzAsCi0weDc1LDB4NTIsMHg4QiwweEM3LDB4MjUsMHhGMCwweDAwLDB4M0QsMHhEMCwweDAwLDB4NzUsMHg0OCwweDhCLDB4QzcsMHgyNSwweDAwLAotMHgwRiwweEMxLDB4RjgsMHgwOCwweDg5LDB4NDYsMHhGRSwweDhCLDB4NDQsMHgwNCwweDNCLDB4NDYsMHhGRSwweDdELDB4MDQsMHgzMywKLTB4QzAsMHhFQiwweDM1LDB4OEIsMHhDNywweDI1LDB4MEYsMHgwMCwweEJBLDB4MEYsMHgwMCwweDJCLDB4RDAsMHgzQiwweDU2LDB4RkUsCi0weDc0LDB4MDQsMHgzMywweEMwLDB4RUIsMHgyMiwweEM3LDB4NDQsMHgwMiwweDE0LDB4MDksMHg4QSwweDQ2LDB4RkUsMHg4OCwweDQ0LAotMHg2MCwweDg4LDB4NDQsMHg1RCwweDhCLDB4NUUsMHhGQywweEQxLDB4RTMsMHhDNywweDg3LDB4RkMsMHgwOCwweDE0LDB4MDksMHhCOCwKLTB4RDAsMHgzMCwweEVCLDB4MDQsMHgzMywweEMwLDB4RUIsMHgwMCwweDVGLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNiwweDAwLDB4MDAsCi0weDU2LDB4OEIsMHg3NiwweDA0LDB4NkEsMHgwOCwweDU2LDB4RTgsMHgzNSwweDA0LDB4NTksMHg1OSwweDhBLDB4NDQsMHg1OCwweDA0LAotMHg4MCwweDUwLDB4NTYsMHhFOCwweDI5LDB4MDQsMHg1OSwweDU5LDB4OEIsMHg0NCwweDU0LDB4M0IsMHg0NCwweDU2LDB4NzUsMHgwQSwKLTB4OEEsMHg0NCwweDVELDB4M0EsMHg0NCwweDJGLDB4NzUsMHgwMiwweEVCLDB4NjQsMHg4QiwweDQ0LDB4NTQsMHg4OSwweDQ0LDB4NTYsCi0weDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweDg4LDB4NDQsMHgyRiwweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhDMSwweEUwLAotMHgwOCwweDhCLDB4NTQsMHg1NCwweDBCLDB4RDAsMHg4QSwweDQ0LDB4NUQsMHhCNCwweDAwLDB4QkIsMHgwRiwweDAwLDB4MkIsMHhEOCwKLTB4MEIsMHhEMywweDg5LDB4NTYsMHhGRSwweDZBLDB4MTAsMHg4QSwweDQ0LDB4NTksMHg5OCwweDA1LDB4MDQsMHgwMCwweDk5LDB4MDUsCi0weDQwLDB4MDEsMHg4MywweEQyLDB4MDAsMHg1MiwweDUwLDB4RTgsMHg1NCwweDA4LDB4ODMsMHhDNCwweDA2LDB4ODksMHg1NiwweEZDLAotMHg4OSwweDQ2LDB4RkEsMHg4QiwweDQ2LDB4RkUsMHgwOSwweDQ2LDB4RkEsMHg4MywweDRFLDB4RkMsMHgwMCwweDZBLDB4MTksMHhGRiwKLTB4NzYsMHhGQywweEZGLDB4NzYsMHhGQSwweEU4LDB4NzMsMHgwNywweDgzLDB4QzQsMHgwNiwweEU4LDB4RkUsMHgwNywweDVFLDB4QzksCi0weEMzLDB4QzgsMHgxQywweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg1RSwweDA0LDB4OEEsMHg0NywweDU5LDB4OTgsMHg4QiwweEYwLAotMHg4QiwweDVFLDB4MDQsMHg4QSwweDQ3LDB4NUQsMHhCNCwweDAwLDB4ODksMHg0NiwweEU2LDB4ODMsMHg3RSwweEU2LDB4MDAsMHg3RCwKLTB4MEEsMHg4QiwweDVFLDB4MDQsMHg4QiwweDQ3LDB4MDQsMHg0OCwweDg5LDB4NDYsMHhFNiwweDhCLDB4NUUsMHgwNCwweDhCLDB4NDcsCi0weDA0LDB4M0IsMHg0NiwweEU2LDB4N0YsMHgwNSwweEM3LDB4NDYsMHhFNiwweDAwLDB4MDAsMHg4QiwweDVFLDB4MDQsMHg4QSwweDQ2LAotMHhFNiwweDg4LDB4NDcsMHg1RCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsMHhDNiwweDQ3LDB4MDIsMHgyMCwKLTB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LDB4NDcsMHgwMywweDMwLDB4OEIsMHhERSwweEQxLDB4RTMsCi0weDhCLDB4OUYsMHg2MSwweDAyLDB4QzYsMHg0NywweDAyLDB4MjAsMHg4QiwweERFLDB4RDEsMHhFMywweDhCLDB4OUYsMHg2MSwweDAyLAotMHhDNiwweDQ3LDB4MDMsMHgzMCwweDhCLDB4NDYsMHhFNiwweDg5LDB4NDYsMHhGQSwweDgzLDB4N0UsMHhGQSwweDAwLDB4NzQsMHgxOCwKLTB4OEIsMHg0NiwweEZBLDB4QkIsMHgwQSwweDAwLDB4MzMsMHhEMiwweEY3LDB4RjMsMHg4MCwweEMyLDB4MzAsMHg4QiwweERFLDB4RDEsCi0weEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsMHg4OCwweDU3LDB4MDMsMHhCQiwweDBBLDB4MDAsMHg4QiwweDQ2LDB4RkEsMHgzMywweEQyLAotMHhGNywweEYzLDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LDB4OEIsMHg0NiwweEZBLDB4QkIsMHgwQSwKLTB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsCi0weDg4LDB4NTcsMHgwMiwweDhCLDB4NDYsMHhFNiwweDg5LDB4NDYsMHhGQSwweDgzLDB4N0UsMHhGQSwweDAwLDB4NzQsMHgxOCwweDhCLAotMHg0NiwweEZBLDB4QkIsMHgwQSwweDAwLDB4MzMsMHhEMiwweEY3LDB4RjMsMHg4MCwweEMyLDB4MzAsMHg4QiwweERFLDB4RDEsMHhFMywKLTB4OEIsMHg5RiwweDYxLDB4MDIsMHg4OCwweDU3LDB4MDMsMHhCQiwweDBBLDB4MDAsMHg4QiwweDQ2LDB4RkEsMHgzMywweEQyLDB4RjcsCi0weEYzLDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LDB4OEIsMHg0NiwweEZBLDB4QkIsMHgwQSwweDAwLAotMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDYxLDB4MDIsMHg4OCwKLTB4NTcsMHgwMiwweDhCLDB4NUUsMHhFNiwweEQxLDB4RTMsMHhGRiwweEI3LDB4MTIsMHgwMiwweDZBLDB4MDAsMHhGRiwweDc2LDB4MDQsCi0weEU4LDB4RDEsMHhGNiwweDgzLDB4QzQsMHgwNiwweDY4LDB4RDMsMHgwRiwweDZBLDB4MDEsMHhGRiwweDc2LDB4MDQsMHhFOCwweEMzLAotMHhGNiwweDgzLDB4QzQsMHgwNiwweEZGLDB4NzYsMHhFNiwweDU2LDB4RTgsMHgwMSwweDkzLDB4NTksMHg1OSwweDg5LDB4NTYsMHhGMiwKLTB4ODksMHg0NiwweEYwLDB4RkYsMHg3NiwweEU2LDB4NTYsMHhFOCwweDE0LDB4OTMsMHg1OSwweDU5LDB4ODksMHg1NiwweEVFLDB4ODksCi0weDQ2LDB4RUMsMHg5QywweEZBLDB4QzQsMHg1RSwweEYwLDB4MjYsMHg4QiwweDA3LDB4ODksMHg0NiwweEVBLDB4QzQsMHg1RSwweEVDLAotMHgyNiwweDhCLDB4MDcsMHg4OSwweDQ2LDB4RTgsMHhCQSwweDUwLDB4RkYsMHhFRCwweDg5LDB4NDYsMHhGRSwweDlELDB4QzcsMHg0NiwKLTB4RTQsMHgwMSwweDAwLDB4RTgsMHhFRSwweEEwLDB4QkEsMHg1MCwweEZGLDB4RUQsMHg4OSwweDQ2LDB4RkMsMHg4QiwweDQ2LDB4RkMsCi0weDJCLDB4NDYsMHhGRSwweDNELDB4RTgsMHgwMywweDczLDB4MDMsMHhFOSwweDgwLDB4MDEsMHg5QywweEZBLDB4QkEsMHg1MCwweEZGLAotMHhFRCwweDg5LDB4NDYsMHhGQywweDhCLDB4NDYsMHhGQywweDJCLDB4NDYsMHhGRSwweDg5LDB4NDYsMHhGOCwweEM0LDB4NUUsMHhGMCwKLTB4MjYsMHg4QiwweDA3LDB4MkIsMHg0NiwweEVBLDB4ODksMHg0NiwweEY2LDB4QzQsMHg1RSwweEYwLDB4MjYsMHg4QiwweDA3LDB4ODksCi0weDQ2LDB4RUEsMHhDNCwweDVFLDB4RUMsMHgyNiwweDhCLDB4MDcsMHgyQiwweDQ2LDB4RTgsMHg4OSwweDQ2LDB4RjQsMHhDNCwweDVFLAotMHhFQywweDI2LDB4OEIsMHgwNywweDg5LDB4NDYsMHhFOCwweEJBLDB4NTAsMHhGRiwweEVELDB4ODksMHg0NiwweEZFLDB4OUQsMHg4MSwKLTB4N0UsMHhGOCwweEU4LDB4MDMsMHg3NiwweDFDLDB4RkYsMHg3NiwweEY4LDB4RkYsMHg3NiwweEY2LDB4RTgsMHg3NiwweDAxLDB4NTksCi0weDU5LDB4ODksMHg0NiwweEY2LDB4RkYsMHg3NiwweEY4LDB4RkYsMHg3NiwweEY0LDB4RTgsMHg2OCwweDAxLDB4NTksMHg1OSwweDg5LAotMHg0NiwweEY0LDB4QkYsMHgwRSwweDAwLDB4RUIsMHgxNywweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsMHhDNiwKLTB4MDEsMHgyMCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDYxLDB4MDIsMHhDNiwweDAxLDB4MjAsMHg0NywweDgzLDB4RkYsCi0weDExLDB4NzYsMHhFNCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsMHhDNiwweDQ3LDB4MEQsMHgzMCwweDhCLAotMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweEM2LDB4NDcsMHgwRCwweDMwLDB4ODMsMHg3RSwweEY2LDB4MDksMHg3NywKLTB4MDUsMHhCOCwweDBELDB4MDAsMHhFQiwweDI2LDB4ODMsMHg3RSwweEY2LDB4NjMsMHg3NywweDA1LDB4QjgsMHgwRSwweDAwLDB4RUIsCi0weDFCLDB4ODEsMHg3RSwweEY2LDB4RTcsMHgwMywweDc3LDB4MDUsMHhCOCwweDBGLDB4MDAsMHhFQiwweDBGLDB4ODEsMHg3RSwweEY2LAotMHgwRiwweDI3LDB4NzcsMHgwNSwweEI4LDB4MTAsMHgwMCwweEVCLDB4MDMsMHhCOCwweDExLDB4MDAsMHg4QiwweEY4LDB4RUIsMHgyNSwKLTB4OEIsMHg0NiwweEY2LDB4QkIsMHgwQSwweDAwLDB4MzMsMHhEMiwweEY3LDB4RjMsMHg4MCwweEMyLDB4MzAsMHg4QiwweERFLDB4RDEsCi0weEUzLDB4OEIsMHg5RiwweDU5LDB4MDIsMHg4OCwweDExLDB4NEYsMHhCQiwweDBBLDB4MDAsMHg4QiwweDQ2LDB4RjYsMHgzMywweEQyLAotMHhGNywweEYzLDB4ODksMHg0NiwweEY2LDB4ODMsMHg3RSwweEY2LDB4MDAsMHg3NSwweEQ1LDB4ODMsMHg3RSwweEY0LDB4MDksMHg3NywKLTB4MDUsMHhCOCwweDBELDB4MDAsMHhFQiwweDI2LDB4ODMsMHg3RSwweEY0LDB4NjMsMHg3NywweDA1LDB4QjgsMHgwRSwweDAwLDB4RUIsCi0weDFCLDB4ODEsMHg3RSwweEY0LDB4RTcsMHgwMywweDc3LDB4MDUsMHhCOCwweDBGLDB4MDAsMHhFQiwweDBGLDB4ODEsMHg3RSwweEY0LAotMHgwRiwweDI3LDB4NzcsMHgwNSwweEI4LDB4MTAsMHgwMCwweEVCLDB4MDMsMHhCOCwweDExLDB4MDAsMHg4QiwweEY4LDB4RUIsMHgyNSwKLTB4OEIsMHg0NiwweEY0LDB4QkIsMHgwQSwweDAwLDB4MzMsMHhEMiwweEY3LDB4RjMsMHg4MCwweEMyLDB4MzAsMHg4QiwweERFLDB4RDEsCi0weEUzLDB4OEIsMHg5RiwweDYxLDB4MDIsMHg4OCwweDExLDB4NEYsMHhCQiwweDBBLDB4MDAsMHg4QiwweDQ2LDB4RjQsMHgzMywweEQyLAotMHhGNywweEYzLDB4ODksMHg0NiwweEY0LDB4ODMsMHg3RSwweEY0LDB4MDAsMHg3NSwweEQ1LDB4OEIsMHhERSwweEQxLDB4RTMsMHhGRiwKLTB4QjcsMHg1OSwweDAyLDB4RkYsMHg3NiwweDA0LDB4RTgsMHg2RSwweDAwLDB4NTksMHg1OSwweDhCLDB4REUsMHhEMSwweEUzLDB4RkYsCi0weEI3LDB4NjEsMHgwMiwweEZGLDB4NzYsMHgwNCwweEU4LDB4NUUsMHgwMCwweDU5LDB4NTksMHg2QSwweDAwLDB4RkYsMHg3NiwweDA0LAotMHhFOCwweDMxLDB4RjMsMHg1OSwweDU5LDB4OEIsMHhEOCwweDgzLDB4RkIsMHgwNCwweDc3LDB4MUYsMHhEMSwweEUzLDB4MkUsMHhGRiwKLTB4QTcsMHgxQiwweDcwLDB4RUIsMHgyMiwweEM3LDB4NDYsMHhFNCwweDAwLDB4MDAsMHhGRiwweDRFLDB4RTYsMHhFQiwweDBDLDB4QzcsCi0weDQ2LDB4RTQsMHgwMCwweDAwLDB4RkYsMHg0NiwweEU2LDB4RUIsMHgwMiwweEVCLDB4MDAsMHg4MywweDdFLDB4RTQsMHgwMCwweDc0LAotMHgwMywweEU5LDB4MkEsMHhGRSwweEU5LDB4RDQsMHhGQywweDVGLDB4NUUsMHhDOSwweEMzLDB4RjMsMHg2RiwweEY1LDB4NkYsMHhGRiwKLTB4NkYsMHhGMywweDZGLDB4MDksMHg3MCwweDU1LDB4OEIsMHhFQywweDhCLDB4NDYsMHgwNCwweEI5LDB4RTgsMHgwMywweEY3LDB4RTEsCi0weDhCLDB4NEUsMHgwNiwweEY3LDB4RjEsMHg1RCwweEMzLDB4NTUsMHg4QiwweEVDLDB4NTYsMHg4QiwweDc2LDB4MDYsMHhFQiwweDBFLAotMHg4QiwweERFLDB4NDYsMHg4QSwweDA3LDB4NTAsMHhGRiwweDc2LDB4MDQsMHhFOCwweDMzLDB4MDAsMHg1OSwweDU5LDB4ODAsMHgzQywKLTB4MDAsMHg3NSwweEVELDB4RUIsMHgwMCwweDVFLDB4NUQsMHhDMywweDU1LDB4OEIsMHhFQywweDU2LDB4OEIsMHg3NiwweDA2LDB4RUIsCi0weDE0LDB4OEIsMHhERSwweDQ2LDB4OEEsMHgwNywweDUwLDB4RkYsMHg3NiwweDA0LDB4RTgsMHg0NSwweDAwLDB4NTksMHg1OSwweDBCLAotMHhDMCwweDc0LDB4MDIsMHhFQiwweDA3LDB4ODAsMHgzQywweDAwLDB4NzUsMHhFNywweEVCLDB4MDAsMHg1RSwweDVELDB4QzMsMHhDOCwKLTB4MDIsMHgwMCwweDAwLDB4NTYsMHg4QiwweDc2LDB4MDQsMHg4QSwweDQ0LDB4NUEsMHg5OCwweDg5LDB4NDYsMHhGRSwweDlDLDB4RkEsCi0weDhBLDB4NDYsMHhGRSwweEJBLDB4RkUsMHgwMCwweEVFLDB4QkEsMHgwMiwweDAwLDB4RUMsMHhBOCwweDAyLDB4NzQsMHgwNiwweDlELAotMHhFOCwweDkxLDB4OUUsMHhFQiwweEU5LDB4QkEsMHgwMCwweDAwLDB4OEEsMHg0NiwweDA2LDB4RUUsMHg5RCwweEVCLDB4MDAsMHg1RSwKLTB4QzksMHhDMywweEM4LDB4MDQsMHgwMCwweDAwLDB4NTYsMHg4QiwweDc2LDB4MDQsMHg4QSwweDQ0LDB4NUEsMHg5OCwweDg5LDB4NDYsCi0weEZFLDB4RTgsMHhFNiwweEExLDB4ODksMHg0NiwweEZDLDB4RTgsMHhFMCwweEExLDB4MkIsMHg0NiwweEZDLDB4M0QsMHhCOCwweDBCLAotMHg3NiwweDA1LDB4QjgsMHgwMSwweDAwLDB4RUIsMHgyMywweDlDLDB4RkEsMHg4QSwweDQ2LDB4RkUsMHhCQSwweEZFLDB4MDAsMHhFRSwKLTB4QkEsMHgwMiwweDAwLDB4RUMsMHhBOCwweDAyLDB4NzQsMHgwNiwweDlELDB4RTgsMHg0OCwweDlFLDB4RUIsMHhEOSwweEJBLDB4MDAsCi0weDAwLDB4OEEsMHg0NiwweDA2LDB4RUUsMHg5RCwweDMzLDB4QzAsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNCwweDAwLAotMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHg4MywweDdFLDB4MDYsMHgwMCwweDc0LDB4MDcsMHg1NiwweEU4LDB4MDMsMHgwMSwKLTB4NTksMHhFQiwweDA1LDB4NTYsMHhFOCwweEEyLDB4MDAsMHg1OSwweDg4LDB4NDYsMHhGRiwweDgwLDB4N0UsMHhGRiwweDA4LDB4NzcsCi0weDA2LDB4OEEsMHg0NiwweEZGLDB4RTksMHg4NCwweDAwLDB4ODAsMHg3RSwweEZGLDB4MEYsMHg3NiwweDAzLDB4RUIsMHg3OSwweDkwLAotMHg4QSwweDQ2LDB4RkYsMHhCNCwweDAwLDB4MkQsMHgwQSwweDAwLDB4OEIsMHhEOCwweDgzLDB4RkIsMHgwNCwweDc3LDB4NjcsMHhEMSwKLTB4RTMsMHgyRSwweEZGLDB4QTcsMHhBRiwweDcxLDB4QjAsMHgwMCwweEVCLDB4NjEsMHg1NiwweEU4LDB4NkIsMHgwMCwweDU5LDB4QjQsCi0weDAwLDB4MjUsMHgwRiwweDAwLDB4ODksMHg0NiwweEZDLDB4NTYsMHhFOCwweDVFLDB4MDAsMHg1OSwweEI0LDB4MDAsMHg4QiwweEY4LAotMHg1NiwweEU4LDB4NTUsMHgwMCwweDU5LDB4QjQsMHgwMCwweEMxLDB4RTAsMHgwOCwweDhCLDB4RDcsMHgwMywweEQwLDB4OEIsMHhGQSwKLTB4OEIsMHg1RSwweEZDLDB4RDEsMHhFMywweDg5LDB4NzgsMHgzMCwweEVCLDB4MkUsMHg1NiwweEU4LDB4M0IsMHgwMCwweDU5LDB4ODgsCi0weDQ0LDB4NUIsMHhFQiwweDI0LDB4NTYsMHhFOCwweDMxLDB4MDAsMHg1OSwweDg4LDB4NDQsMHg1MCwweDU2LDB4RTgsMHgyOSwweDAwLAotMHg1OSwweDg4LDB4NDQsMHg1MSwweDU2LDB4RTgsMHgyMSwweDAwLDB4NTksMHg4OCwweDQ0LDB4NTIsMHg1NiwweEU4LDB4MTksMHgwMCwKLTB4NTksMHg4OCwweDQ0LDB4NTMsMHhFQiwweDAyLDB4RUIsMHgwMCwweEU5LDB4NUIsMHhGRiwweDVGLDB4NUUsMHhDOSwweEMzLDB4NDYsCi0weDcxLDB4QTYsMHg3MSwweDRBLDB4NzEsMHg3QSwweDcxLDB4ODQsMHg3MSwweEM4LDB4MDQsMHgwMCwweDAwLDB4NTYsMHg4QiwweDc2LAotMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwweEZFLDB4OUMsMHhGQSwweDhBLDB4NDYsMHhGRSwweEJBLDB4RkUsMHgwMCwKLTB4RUUsMHhCQSwweDAyLDB4MDAsMHhFQywweEE4LDB4MDEsMHg3NSwweDA2LDB4OUQsMHhFOCwweDU3LDB4OUQsMHhFQiwweEU5LDB4QkEsCi0weDAwLDB4MDAsMHhFQywweDg4LDB4NDYsMHhGRCwweDlELDB4OEEsMHg0NiwweEZELDB4RUIsMHgwMCwweDVFLDB4QzksMHhDMywweEM4LAotMHgwMiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwweEZFLDB4OUMsMHhGQSwKLTB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLDB4RUUsMHhCQSwweDAyLDB4MDAsMHhFQywweDMyLDB4RTQsMHgyNCwweDAxLDB4OUQsCi0weDVFLDB4QzksMHhDMywweEM4LDB4MDYsMHgwMCwweDAwLDB4NTYsMHg4QiwweDc2LDB4MDQsMHg4QSwweDQ0LDB4NUEsMHg5OCwweDg5LAotMHg0NiwweEZFLDB4RTgsMHg4NSwweEEwLDB4ODksMHg0NiwweEZBLDB4RTgsMHg3RiwweEEwLDB4MkIsMHg0NiwweEZBLDB4M0QsMHhCOCwKLTB4MEIsMHg3NiwweDA0LDB4QjAsMHgwOCwweEVCLDB4MjQsMHg5QywweEZBLDB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLDB4RUUsCi0weEJBLDB4MDIsMHgwMCwweEVDLDB4QTgsMHgwMSwweDc1LDB4MDYsMHg5RCwweEU4LDB4RTgsMHg5QywweEVCLDB4REEsMHhCQSwweDAwLAotMHgwMCwweEVDLDB4ODgsMHg0NiwweEZELDB4OUQsMHg4QSwweDQ2LDB4RkQsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4NTUsMHg4QiwKLTB4RUMsMHg1NiwweDhCLDB4NTYsMHgwNCwweDhBLDB4NDYsMHgwNiwweEVFLDB4MzMsMHhGNiwweEVCLDB4MDMsMHg1MCwweDU4LDB4NDYsCi0weDgzLDB4RkUsMHgxNCwweDdDLDB4RjgsMHg1RSwweDVELDB4QzMsMHhDOCwweDAyLDB4MDAsMHgwMCwweDU2LDB4OEIsMHg1NiwweDA0LAotMHhFQywweDg4LDB4NDYsMHhGRiwweDMzLDB4RjYsMHhFQiwweDAzLDB4NTAsMHg1OCwweDQ2LDB4ODMsMHhGRSwweDE0LDB4N0MsMHhGOCwKLTB4OEEsMHg0NiwweEZGLDB4RUIsMHgwMCwweDVFLDB4QzksMHhDMywweEM4LDB4MDIsMHgwMCwweDAwLDB4NTYsMHg1NywweDhCLDB4NzYsCi0weDA0LDB4ODMsMHgzRSwweEIwLDB4MEIsMHgwMCwweDc1LDB4MUYsMHhCQSwweDg4LDB4MDEsMHhCMCwweDAwLDB4RUUsMHhCQSwweDg2LAotMHgwMSwweEIwLDB4MDAsMHhFRSwweDZBLDB4MDksMHg2QSwweDAwLDB4NjgsMHgzMCwweDAxLDB4RTgsMHg3RCwweDAxLDB4ODMsMHhDNCwKLTB4MDYsMHhDNywweDA2LDB4QjAsMHgwQiwweDAxLDB4MDAsMHg2QSwweDA5LDB4OEIsMHhDNiwweDA1LDB4ODAsMHgwMSwweDUwLDB4RTgsCi0weERBLDB4MDAsMHg1OSwweDU5LDB4OEIsMHhGOCwweDhCLDB4QzcsMHhDMSwweEU4LDB4MEMsMHgyNSwweDBGLDB4MDAsMHg4OSwweDQ2LAotMHhGRSwweDhCLDB4QzcsMHhDMSwweEU4LDB4MDgsMHgyNSwweDBGLDB4MDAsMHg4QiwweDU2LDB4RkUsMHg4MywweEYyLDB4MEMsMHgzQiwKLTB4QzIsMHg3NSwweDIxLDB4OEIsMHhDNywweEMxLDB4RTgsMHgwNCwweDI1LDB4MEYsMHgwMCwweDhCLDB4NTYsMHhGRSwweDgzLDB4RjIsCi0weDA2LDB4M0IsMHhDMiwweDc1LDB4MEYsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4OEIsMHg1NiwweEZFLDB4ODMsMHhGMiwweDA5LAotMHgzQiwweEMyLDB4NzQsMHgwRCwweDZBLDB4MDcsMHg1NiwweEU4LDB4MzgsMHgwMCwweDU5LDB4NTksMHhDNywweDQ2LDB4RkUsMHgwNywKLTB4MDAsMHg4QSwweDQ2LDB4RkUsMHgwNCwweDgwLDB4QTIsMHgzMywweDAyLDB4OEIsMHhDNiwweEJBLDB4NjIsMHgwMCwweEY3LDB4RUEsCi0weDhBLDB4NTYsMHhGRSwweDhCLDB4RDgsMHg4OCwweDk3LDB4NkMsMHgwMCwweDY4LDB4MzIsMHgwMiwweDhCLDB4QzYsMHhCQSwweDYyLAotMHgwMCwweEY3LDB4RUEsMHgwNSwweDE0LDB4MDAsMHg1MCwweEU4LDB4MEUsMHhGRCwweDU5LDB4NTksMHhFQiwweDAwLDB4NUYsMHg1RSwKLTB4QzksMHhDMywweEM4LDB4MDIsMHgwMCwweDAwLDB4NTYsMHg4QiwweDc2LDB4MDYsMHg4MywweEU2LDB4MEYsMHg4QiwweEM2LDB4QzEsCi0weEUwLDB4MEMsMHg4QiwweEQ2LDB4ODMsMHhGMiwweDBDLDB4QzEsMHhFMiwweDA4LDB4MEIsMHhDMiwweDhCLDB4RDYsMHg4MywweEYyLAotMHgwNiwweEMxLDB4RTIsMHgwNCwweDBCLDB4QzIsMHg4QiwweEQ2LDB4ODMsMHhGMiwweDA5LDB4MEIsMHhDMiwweDg5LDB4NDYsMHhGRSwKLTB4NkEsMHgxOSwweDZBLDB4MTAsMHg4QiwweDQ2LDB4MDQsMHg5OSwweDA1LDB4NDAsMHgwMSwweDgzLDB4RDIsMHgwMCwweDUyLDB4NTAsCi0weEU4LDB4NkIsMHgwMSwweDgzLDB4QzQsMHgwNiwweDBCLDB4NDYsMHhGRSwweDgzLDB4Q0EsMHgwMCwweDUyLDB4NTAsMHhFOCwweDlBLAotMHgwMCwweDgzLDB4QzQsMHgwNiwweEU4LDB4MjUsMHgwMSwweEVCLDB4MDAsMHg1RSwweEM5LDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwKLTB4NTcsMHgzMywweEZGLDB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4QTMsMHhGRSwweDU5LDB4NTksMHhCMSwweDEwLDB4MkEsCi0weDRFLDB4MDYsMHhEMywweDY2LDB4MDQsMHgzMywweEY2LDB4RUIsMHgyRSwweDgxLDB4N0UsMHgwNCwweDAwLDB4ODAsMHg3MiwweDA0LAotMHhCMCwweDAxLDB4RUIsMHgwMiwweEIwLDB4MDAsMHg1MCwweDY4LDB4ODgsMHgwMSwweEU4LDB4ODEsMHhGRSwweDU5LDB4NTksMHg2QSwKLTB4MDMsMHg2OCwweDg2LDB4MDEsMHhFOCwweDc3LDB4RkUsMHg1OSwweDU5LDB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4NkQsCi0weEZFLDB4NTksMHg1OSwweEQxLDB4NjYsMHgwNCwweDQ2LDB4M0IsMHg3NiwweDA2LDB4N0MsMHhDRCwweDMzLDB4RjYsMHhFQiwweDI0LAotMHhEMSwweEU3LDB4NkEsMHgwMywweDY4LDB4ODYsMHgwMSwweEU4LDB4NTQsMHhGRSwweDU5LDB4NTksMHg2QSwweDAxLDB4NjgsMHg4NiwKLTB4MDEsMHhFOCwweDRBLDB4RkUsMHg1OSwweDU5LDB4NjgsMHg4OCwweDAxLDB4RTgsMHg1QywweEZFLDB4NTksMHg5OCwweDI1LDB4MDEsCi0weDAwLDB4MEIsMHhGOCwweDQ2LDB4ODMsMHhGRSwweDEwLDB4N0MsMHhENywweDZBLDB4MDAsMHg2OCwweDg2LDB4MDEsMHhFOCwweDJELAotMHhGRSwweDU5LDB4NTksMHg4QiwweEM3LDB4RUIsMHgwMCwweDVGLDB4NUUsMHg1RCwweEMzLDB4NTUsMHg4QiwweEVDLDB4NTYsMHg1NywKLTB4OEIsMHg3RSwweDA4LDB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4MTMsMHhGRSwweDU5LDB4NTksMHhCOCwweDIwLDB4MDAsCi0weDJCLDB4QzcsMHg1MCwweEZGLDB4NzYsMHgwNiwweEZGLDB4NzYsMHgwNCwweEU4LDB4QTIsMHgwMCwweDgzLDB4QzQsMHgwNiwweDg5LAotMHg1NiwweDA2LDB4ODksMHg0NiwweDA0LDB4MzMsMHhGNiwweEVCLDB4NDcsMHg4MSwweDdFLDB4MDYsMHgwMCwweDgwLDB4NzIsMHgwQywKLTB4NzUsMHgwNiwweDgzLDB4N0UsMHgwNCwweDAwLDB4NzIsMHgwNCwweEIwLDB4MDEsMHhFQiwweDAyLDB4QjAsMHgwMCwweDUwLDB4NjgsCi0weDg4LDB4MDEsMHhFOCwweEQ5LDB4RkQsMHg1OSwweDU5LDB4NkEsMHgwMywweDY4LDB4ODYsMHgwMSwweEU4LDB4Q0YsMHhGRCwweDU5LAotMHg1OSwweDZBLDB4MDEsMHg2OCwweDg2LDB4MDEsMHhFOCwweEM1LDB4RkQsMHg1OSwweDU5LDB4NkEsMHgwMSwweEZGLDB4NzYsMHgwNiwKLTB4RkYsMHg3NiwweDA0LDB4RTgsMHg1OCwweDAwLDB4ODMsMHhDNCwweDA2LDB4ODksMHg1NiwweDA2LDB4ODksMHg0NiwweDA0LDB4NDYsCi0weDNCLDB4RjcsMHg3QywweEI1LDB4NkEsMHgwMCwweDY4LDB4ODYsMHgwMSwweEU4LDB4QTIsMHhGRCwweDU5LDB4NTksMHg2QSwweDAwLAotMHg2OCwweDg2LDB4MDEsMHhFOCwweDk4LDB4RkQsMHg1OSwweDU5LDB4NUYsMHg1RSwweDVELDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwKLTB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4ODYsMHhGRCwweDU5LDB4NTksMHgzMywweEY2LDB4RUIsMHgwMCwweDY4LDB4ODgsCi0weDAxLDB4RTgsMHg5NCwweEZELDB4NTksMHhBOCwweDAxLDB4NzUsMHgwOCwweDhCLDB4QzYsMHg0NiwweDNELDB4NjQsMHgwMCwweDdDLAotMHhFRCwweDZBLDB4MDAsMHg2OCwweDg2LDB4MDEsMHhFOCwweDY1LDB4RkQsMHg1OSwweDU5LDB4NUUsMHg1RCwweEMzLDB4QzgsMHgwNCwKLTB4MDAsMHgwMCwweDhCLDB4NDYsMHgwNCwweDhCLDB4NTYsMHgwNiwweDhCLDB4NEUsMHgwOCwweEUzLDB4MDYsMHhEMSwweEUwLDB4RDEsCi0weEQyLDB4RTIsMHhGQSwweDg5LDB4NDYsMHhGQywweDg5LDB4NTYsMHhGRSwweDhCLDB4NTYsMHhGRSwweDhCLDB4NDYsMHhGQywweEVCLAotMHgwMCwweEM5LDB4QzMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4NTAsMHg3MiwweDY1LDB4NzYsMHg2OSwweDZGLDB4NzUsMHg3MywweDIwLDB4NEQsMHg2NSwweDZFLDB4NzUsMHgwMCwweDQyLDB4NjUsCi0weDY3LDB4NjksMHg2RSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LAotMHgyMCwweDMwLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMiwKLTB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzMsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzNCwweDAwLDB4NTAsCi0weDZGLDB4NzIsMHg3NCwweDIwLDB4MzUsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzNiwweDAwLDB4NTAsMHg2RiwweDcyLAotMHg3NCwweDIwLDB4MzcsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzOCwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwKLTB4MzksMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwweDMwLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsCi0weDMxLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsMHgzMiwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLAotMHgzMywweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLDB4MzQsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwKLTB4MzUsMHgwMCwweDlDLDB4MDEsMHhBMywweDAxLDB4QUEsMHgwMSwweEIxLDB4MDEsMHhCOCwweDAxLDB4QkYsMHgwMSwweEM2LDB4MDEsCi0weENELDB4MDEsMHhENCwweDAxLDB4REIsMHgwMSwweEUyLDB4MDEsMHhFQSwweDAxLDB4RjIsMHgwMSwweEZBLDB4MDEsMHgwMiwweDAyLAotMHgwQSwweDAyLDB4MDgsMHgwMCwweDAwLDB4MDcsMHg4MSwweDAwLDB4MDMsMHg4MCwweDgwLDB4ODAsMHg5RiwweDkxLDB4OTUsMHg5MSwKLTB4OUYsMHgwMCwweDAzLDB4ODEsMHg4NCwweDhFLDB4OTUsMHg4NCwweDg0LDB4ODQsMHg4NCwweDAwLDB4MDMsMHg4MiwweDg0LDB4ODQsCi0weDg0LDB4ODQsMHg5NSwweDhFLDB4ODQsMHgwMCwweDA0LDB4ODgsMHgwMCwweEIyLDB4MEIsMHhDNiwweDBCLDB4REEsMHgwQiwweEVFLAotMHgwQiwweDAyLDB4MEMsMHgxNiwweDBDLDB4MkEsMHgwQywweDNFLDB4MEMsMHg1MiwweDBDLDB4NzcsMHgwQywweDlDLDB4MEMsMHhCRSwKLTB4MEMsMHhFMCwweDBDLDB4MDIsMHgwRCwweDAxLDB4ODAsMHgyMCwweDU0LDB4NjUsMHg3MywweDc0LDB4MjAsMHg1MCwweDYxLDB4NzMsCi0weDczLDB4NjUsMHg2NCwweDIwLDB4MUYsMHgyMCwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwweDgwLDB4MDIsMHgwMCwweDAxLAotMHg4MCwweDIwLDB4NEQsMHg2OSwweDczLDB4NzMsMHg2OSwweDZFLDB4NjcsMHgyMCwweDUyLDB4NzgsMHgyMCwweDQ0LDB4NjEsMHg3NCwKLTB4NjEsMHgxRiwweDIwLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4NDIsCi0weDYxLDB4NjQsMHgyMCwweDUyLDB4NzgsMHgyMCwweDQ0LDB4NjEsMHg3NCwweDYxLDB4MjAsMHgxRiwweDIwLDB4NTAsMHg3MiwweDY1LAotMHg3MywweDczLDB4MjAsMHg4MCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg1OCwweDZELDB4NzQsMHg3MiwweDIwLDB4NDIsMHg3NSwKLTB4NzMsMHg3OSwweDFGLDB4MjAsMHg1MCwweDcyLDB4NjUsMHg3MywweDczLDB4MjAsMHg4MCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsCi0weDZFLDB4NkYsMHg3NCwweDIwLDB4NjMsMHg3NSwweDcyLDB4NzIsMHg2NSwweDZFLDB4NzQsMHg2QywweDc5LDB4MUYsMHgyMCwweDIwLAotMHg2OSwweDZELDB4NzAsMHg2QywweDY1LDB4NkQsMHg2NSwweDZFLDB4NzQsMHg2NSwweDY0LDB4MDIsMHgwMCwweDI0LDB4MEQsMHgyRiwKLTB4MEQsMHgzQSwweDBELDB4NDUsMHgwRCwweDUwLDB4MEQsMHg1QiwweDBELDB4NjYsMHgwRCwweDcxLDB4MEQsMHg3QywweDBELDB4ODcsCi0weDBELDB4OTIsMHgwRCwweDlELDB4MEQsMHhBOCwweDBELDB4QjMsMHgwRCwweEJFLDB4MEQsMHhDOSwweDBELDB4NTMsMHg4MCwweDJDLAotMHgzMiwweDU0LDB4NDQsMHgyMCwweDUzLDB4ODYsMHgyQywweDMzLDB4NDQsMHg1NCwweDUyLDB4MjAsMHg1MywweDgyLDB4MkMsMHgzMywKLTB4NTIsMHg1NCwweDUzLDB4MjAsMHgxRiwweDUzLDB4ODEsMHgyQywweDMyLDB4NTIsMHg0NCwweDIwLDB4NTMsMHg4NSwweDJDLDB4MzIsCi0weDQzLDB4NDQsMHgyMCwweDUzLDB4ODMsMHgyQywweDMzLDB4NDMsMHg1NCwweDUzLDB4MjAsMHg1MywweDg0LDB4MkMsMHgzMywweDQ0LAotMHg1MywweDUyLDB4MjAsMHg1MywweDg3LDB4MkMsMHgzMiwweDUyLDB4NDksMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwKLTB4NDQsMHg0MywweDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMiwweDMwLDB4MUYsMHgyNywweDUzLDB4ODUsCi0weDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LAotMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NTMsMHg1MiwKLTB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMSwweDMxLDB4MUYsMHgyNywweDUzLDB4ODQsMHgyRSwweDMxLDB4ODEsCi0weDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLAotMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQzLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwKLTB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNCwweDFGLDB4MjcsMHg1MywweDgzLDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsCi0weDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LAotMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMiwKLTB4MzIsMHgxRiwweDI3LDB4NTMsMHg4NywweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsCi0weDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLAotMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDJGLDB4MzgsMHgxRiwKLTB4MjcsMHg1MywweDg2LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsCi0weDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg1MiwweDU0LDB4NTMsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM1LDB4MUYsMHgyNywweDUzLDB4ODIsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsCi0weDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NzgsMHg0NCwweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMiwweDFGLDB4MjcsMHg1MywweDgxLDB4MkUsMHgzMCwweDUzLDB4NEQsMHg4MSwKLTB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsCi0weDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NTQsMHg3OCwweDQ0LDB4MjAsMHgyRCwweDIwLAotMHg3MCwweDY5LDB4NkUsMHgyMCwweDMzLDB4MUYsMHgyNywweDUzLDB4ODAsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywKLTB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsCi0weDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDQzLDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LAotMHg2RSwweDIwLDB4MzUsMHgxRiwweDI3LDB4NTMsMHg4NSwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwKLTB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLAotMHgyNywweDUzLDB4ODQsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwKLTB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsCi0weDQzLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzEsMHgxRiwweDI3LDB4NTMsMHg4MywweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwKLTB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg0OSwweDIwLDB4MkQsCi0weDIwLDB4MjgsMHg2RSwweDJFLDB4NjMsMHgyRSwweDI5LDB4MUYsMHgyNywweDUzLDB4ODcsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLAotMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwKLTB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NTQsMHg1MiwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksCi0weDZFLDB4MjAsMHgzMiwweDFGLDB4MjcsMHg1MywweDg2LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDU0LDB4NTMsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM3LDB4MUYsCi0weDI3LDB4NTMsMHg4MiwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LAotMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwKLTB4NTIsMHg3OCwweDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDFGLDB4MjcsMHg1MywweDgxLDB4MkUsCi0weDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LAotMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NTQsMHg3OCwKLTB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMzLDB4MUYsMHgyNywweDUzLDB4ODAsMHgyRSwweDMwLDB4NTMsCi0weDRELDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLAotMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDQzLDB4NDQsMHgyMCwKLTB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzUsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg1LDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NTMsMHg1MiwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzUsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODQsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQzLDB4NTQsMHg1MywweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMSwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODMsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg0OSwweDIwLDB4MkQsMHgyMCwweDI4LDB4NkUsMHgyRSwweDYzLDB4MkUsMHgyOSwweDFGLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4NywweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwKLTB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsCi0weDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MUYsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4NiwweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDU0LDB4NTMsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM3LDB4MUYsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDgyLDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDc4LDB4NDQsMHgyMCwKLTB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzYsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDgxLDB4MkUsCi0weDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LAotMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwKLTB4MzMsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDgwLDB4MkUsMHgzMCwweDUzLDB4NEQsMHg4MSwweDgyLDB4NjMsCi0weDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg0NCwweDQzLDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MzAsMHgxRiwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyNywweDUzLDB4ODUsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsCi0weDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NTMsMHg1MiwweDIwLDB4MkQsMHgyMCwweDcwLAotMHg2OSwweDZFLDB4MjAsMHgzMSwweDMxLDB4MUYsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwKLTB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsCi0weDIwLDB4MjAsMHg0MywweDU0LDB4NTMsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM0LDB4MUYsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjcsMHg1MywweDgzLDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwKLTB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwweDIwLDB4NzAsCi0weDY5LDB4NkUsMHgyMCwweDMyLDB4MzIsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg3LDB4MkUsMHgzMSwweDgxLAotMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwKLTB4MjAsMHgyMCwweDQ0LDB4NTQsMHg1MiwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzYsMHgyRiwweDM4LDB4MUYsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg2LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDU0LDB4NTMsMHgyMCwKLTB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzUsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDgyLDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NzgsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzIsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODEsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsCi0weDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LAotMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzMsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywKLTB4ODAsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsCi0weDg3LDB4MjcsMHgwMiwweDAwLDB4NjgsMHgwNCwweDk2LDB4MDQsMHhCNiwweDAzLDB4M0MsMHgwNCwweDBFLDB4MDQsMHg4OSwweDAzLAotMHg1QywweDAzLDB4RTIsMHgwMywweDYwLDB4MDgsMHg4QSwweDA4LDB4QkUsMHgwNywweDM4LDB4MDgsMHgwRSwweDA4LDB4OTUsMHgwNywKLTB4NkMsMHgwNywweEU2LDB4MDcsMHgxQywweDA1LDB4NzQsMHgwNSwweEZBLDB4MDUsMHhDNCwweDA0LDB4RjAsMHgwNCwweENDLDB4MDUsCi0weEEwLDB4MDUsMHg0OCwweDA1LDB4NzgsMHgwNiwweEM4LDB4MDYsMHg0MiwweDA3LDB4MjgsMHgwNiwweDUwLDB4MDYsMHgxOCwweDA3LAotMHhGMCwweDA2LDB4QTAsMHgwNiwweDAwLDB4MDAsMHhGNCwweDA4LDB4RjQsMHgwOCwweEQ0LDB4MEQsMHgwNCwweDA5LDB4MDQsMHgwOSwKLTB4MDQsMHgwOSwweDA0LDB4MDksMHg0MiwweDAwLDB4MEMsMHgwOSwweDFDLDB4MDksMHhFNSwweDBELDB4MDIsMHgwMCwweDE0LDB4MDksCi0weDA0LDB4MDksMHhGNCwweDBELDB4NDMsMHgwMCwweDFDLDB4MDksMHgwQywweDA5LDB4MDUsMHgwRSwweDAwLDB4MDQsMHgwNCwweDA5LAotMHgxNCwweDA5LDB4MTIsMHgwRSwweDJDLDB4MDksMHgyQywweDA5LDB4MkMsMHgwOSwweDJDLDB4MDksMHgwMCwweDAwLDB4M0MsMHgwOSwKLTB4NkMsMHgwOSwweDFFLDB4MEUsMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4MDAsMHgwMSwweDRDLDB4MDksCi0weDJDLDB4MDksMHgyRCwweDBFLDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDAwLDB4MDIsMHg1QywweDA5LAotMHgzQywweDA5LDB4M0QsMHgwRSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHgwMCwweDAzLDB4NkMsMHgwOSwKLTB4NEMsMHgwOSwweDRELDB4MEUsMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4RkYsMHgwMCwweDJDLDB4MDksCi0weDVDLDB4MDksMHgwMCwweDAwLDB4MDAsMHgwNSwweDg0LDB4MDksMHhFQywweDA5LDB4NUUsMHgwRSwweEY0LDB4MDksMHhGNCwweDA5LAotMHhGNCwweDA5LDB4RjQsMHgwOSwweDAwLDB4MDYsMHg5NCwweDA5LDB4NzQsMHgwOSwweDY4LDB4MEUsMHhBQywweDBBLDB4QUMsMHgwQSwKLTB4QUMsMHgwQSwweEFDLDB4MEEsMHgwMCwweDA3LDB4QTQsMHgwOSwweDg0LDB4MDksMHg3MiwweDBFLDB4QkMsMHgwQSwweEJDLDB4MEEsCi0weEJDLDB4MEEsMHhCQywweDBBLDB4MDAsMHgwOCwweEI0LDB4MDksMHg5NCwweDA5LDB4N0MsMHgwRSwweEQ0LDB4MEEsMHhENCwweDBBLAotMHhENCwweDBBLDB4RDQsMHgwQSwweDAwLDB4MEIsMHhDNCwweDA5LDB4QTQsMHgwOSwweDgzLDB4MEUsMHhGQywweDBBLDB4RkMsMHgwQSwKLTB4RkMsMHgwQSwweEZDLDB4MEEsMHgwMCwweDBDLDB4RDQsMHgwOSwweEI0LDB4MDksMHg5MCwweDBFLDB4MTQsMHgwQiwweDE0LDB4MEIsCi0weDE0LDB4MEIsMHgxNCwweDBCLDB4MDAsMHgwMiwweEU0LDB4MDksMHhDNCwweDA5LDB4QTAsMHgwRSwweDJDLDB4MEIsMHgyQywweDBCLAotMHgyQywweDBCLDB4MkMsMHgwQiwweDA0LDB4MDAsMHhFQywweDA5LDB4RDQsMHgwOSwweDBFLDB4MDAsMHhGRiwweDAwLDB4NzQsMHgwOSwKLTB4RTQsMHgwOSwweDAwLDB4MDAsMHg4MiwweDAxLDB4RkMsMHgwOSwweEE0LDB4MEEsMHhBQywweDBFLDB4ODIsMHgwMiwweDA0LDB4MEEsCi0weEY0LDB4MDksMHhBRiwweDBFLDB4ODIsMHgwMywweDBDLDB4MEEsMHhGQywweDA5LDB4QjIsMHgwRSwweDgyLDB4MDQsMHgxNCwweDBBLAotMHgwNCwweDBBLDB4QjYsMHgwRSwweDgyLDB4MDUsMHgxQywweDBBLDB4MEMsMHgwQSwweEJDLDB4MEUsMHg4MiwweDA2LDB4MjQsMHgwQSwKLTB4MTQsMHgwQSwweEMwLDB4MEUsMHg4MiwweDA3LDB4MkMsMHgwQSwweDFDLDB4MEEsMHhDNCwweDBFLDB4ODIsMHgwOCwweDM0LDB4MEEsCi0weDI0LDB4MEEsMHhDOCwweDBFLDB4ODIsMHgwOSwweDNDLDB4MEEsMHgyQywweDBBLDB4Q0MsMHgwRSwweDgyLDB4MEEsMHg0NCwweDBBLAotMHgzNCwweDBBLDB4RDEsMHgwRSwweDgyLDB4MTAsMHg0QywweDBBLDB4M0MsMHgwQSwweEQ2LDB4MEUsMHg4MiwweDBCLDB4NTQsMHgwQSwKLTB4NDQsMHgwQSwweERCLDB4MEUsMHg4MiwweDExLDB4NUMsMHgwQSwweDRDLDB4MEEsMHhFMCwweDBFLDB4ODIsMHgwQywweDY0LDB4MEEsCi0weDU0LDB4MEEsMHhFNSwweDBFLDB4ODIsMHgxMiwweDZDLDB4MEEsMHg1QywweDBBLDB4RUEsMHgwRSwweDgyLDB4MEQsMHg3NCwweDBBLAotMHg2NCwweDBBLDB4RUYsMHgwRSwweDgyLDB4MEUsMHg3QywweDBBLDB4NkMsMHgwQSwweEY0LDB4MEUsMHg4MiwweDBGLDB4ODQsMHgwQSwKLTB4NzQsMHgwQSwweEZCLDB4MEUsMHg4MiwweDEzLDB4OEMsMHgwQSwweDdDLDB4MEEsMHgwMiwweDBGLDB4ODIsMHgxNCwweDk0LDB4MEEsCi0weDg0LDB4MEEsMHgwOSwweDBGLDB4ODIsMHgxNSwweDlDLDB4MEEsMHg4QywweDBBLDB4MTAsMHgwRiwweDgyLDB4MTYsMHhBNCwweDBBLAotMHg5NCwweDBBLDB4MTcsMHgwRiwweDgyLDB4MTcsMHhGNCwweDA5LDB4OUMsMHgwQSwweDFFLDB4MEYsMHg4MiwweDAyLDB4QjQsMHgwQSwKLTB4QjQsMHgwQSwweDI2LDB4MEYsMHg4MiwweDAzLDB4QUMsMHgwQSwweEFDLDB4MEEsMHgyRCwweDBGLDB4ODIsMHgwMCwweEM0LDB4MEEsCi0weENDLDB4MEEsMHgzNCwweDBGLDB4ODIsMHgwMSwweENDLDB4MEEsMHhCQywweDBBLDB4M0YsMHgwRiwweDgyLDB4MDIsMHhCQywweDBBLAotMHhDNCwweDBBLDB4NEQsMHgwRiwweDgyLDB4MDAsMHhEQywweDBBLDB4RjQsMHgwQSwweDU5LDB4MEYsMHg4MiwweDAxLDB4RTQsMHgwQSwKLTB4RDQsMHgwQSwweDYzLDB4MEYsMHg4MiwweDAyLDB4RUMsMHgwQSwweERDLDB4MEEsMHg2RSwweDBGLDB4ODIsMHgwMywweEY0LDB4MEEsCi0weEU0LDB4MEEsMHg3QSwweDBGLDB4ODIsMHgwNCwweEQ0LDB4MEEsMHhFQywweDBBLDB4ODcsMHgwRiwweDgyLDB4MDAsMHgwNCwweDBCLAotMHgwQywweDBCLDB4OTMsMHgwRiwweDgyLDB4MDEsMHgwQywweDBCLDB4RkMsMHgwQSwweDlCLDB4MEYsMHg4MiwweDAyLDB4RkMsMHgwQSwKLTB4MDQsMHgwQiwweEE3LDB4MEYsMHg4MiwweDAwLDB4MUMsMHgwQiwweDI0LDB4MEIsMHhCMCwweDBGLDB4ODIsMHgwMSwweDI0LDB4MEIsCi0weDE0LDB4MEIsMHhCNSwweDBGLDB4ODIsMHgwMiwweDE0LDB4MEIsMHgxQywweDBCLDB4QkUsMHgwRiwweDQ0LDB4MDAsMHgzNCwweDBCLAotMHhBNCwweDBCLDB4OUMsMHgwMSwweDQ0LDB4MDEsMHgzQywweDBCLDB4MkMsMHgwQiwweEEzLDB4MDEsMHg0NCwweDAyLDB4NDQsMHgwQiwKLTB4MzQsMHgwQiwweEFBLDB4MDEsMHg0NCwweDAzLDB4NEMsMHgwQiwweDNDLDB4MEIsMHhCMSwweDAxLDB4NDQsMHgwNCwweDU0LDB4MEIsCi0weDQ0LDB4MEIsMHhCOCwweDAxLDB4NDQsMHgwNSwweDVDLDB4MEIsMHg0QywweDBCLDB4QkYsMHgwMSwweDQ0LDB4MDYsMHg2NCwweDBCLAotMHg1NCwweDBCLDB4QzYsMHgwMSwweDQ0LDB4MDcsMHg2QywweDBCLDB4NUMsMHgwQiwweENELDB4MDEsMHg0NCwweDA4LDB4NzQsMHgwQiwKLTB4NjQsMHgwQiwweEQ0LDB4MDEsMHg0NCwweDA5LDB4N0MsMHgwQiwweDZDLDB4MEIsMHhEQiwweDAxLDB4NDQsMHgwQSwweDg0LDB4MEIsCi0weDc0LDB4MEIsMHhFMiwweDAxLDB4NDQsMHgwQiwweDhDLDB4MEIsMHg3QywweDBCLDB4RUEsMHgwMSwweDQ0LDB4MEMsMHg5NCwweDBCLAotMHg4NCwweDBCLDB4RjIsMHgwMSwweDQ0LDB4MEQsMHg5QywweDBCLDB4OEMsMHgwQiwweEZBLDB4MDEsMHg0NCwweDBFLDB4QTQsMHgwQiwKLTB4OTQsMHgwQiwweDAyLDB4MDIsMHg0NCwweDBGLDB4MkMsMHgwQiwweDlDLDB4MEIsMHgwQSwweDAyLDB4MTcsMHgxRiwweDBGLDB4MkYsCi0weDAwLDB4MDAsMHgwMSwweDgwLDB4NzgsMHg3OCwweDNBLDB4MjAsMHg3NCwweDc4LDB4MjAsMHg2MywweDcwLDB4NzMsMHgyMCwweDJBLAotMHgyQSwweDJBLDB4MkEsMHgyQSwweDAyLDB4MDAsMHgwMSwweDgwLDB4NzgsMHg3OCwweDNBLDB4MjAsMHg3NCwweDc4LDB4MjAsMHg2MywKLTB4NzAsMHg3MywweDIwLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgyQSwweDAyLDB4MDAsMHgwMSwweDgwLDB4NzgsMHg3OCwweDNBLDB4MjAsCi0weDc0LDB4NzgsMHgyMCwweDYzLDB4NzAsMHg3MywweDIwLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgyQSwweDAyLDB4MDAsMHgwMSwweDgwLAotMHg3OCwweDc4LDB4M0EsMHgyMCwweDc0LDB4NzgsMHgyMCwweDYzLDB4NzAsMHg3MywweDIwLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgyQSwKLTB4MDIsMHgwMCwweDAxLDB4QzAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDcyLDB4NjMsMHgyMCwweDYzLDB4NzAsMHg3MywweDIwLDB4MkEsCi0weDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4QzAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDcyLDB4NjMsMHgyMCwweDYzLAotMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4QzAsMHg3OCwweDc4LDB4M0EsMHgyMCwKLTB4NzIsMHg2MywweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4QzAsCi0weDc4LDB4NzgsMHgzQSwweDIwLDB4NzIsMHg2MywweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLAotMHgwMiwweDAwLDB4MDEsMHg4MCwweDQ5LDB4NkUsMHg3MywweDc0LDB4NjEsMHg2QywweDZDLDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwKLTB4NjIsMHg2MSwweDYzLDB4NkIsMHgxRiwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwweDgwLDB4MjAsMHg3NCwweDZGLDB4MjAsCi0weDczLDB4NzQsMHg2MSwweDcyLDB4NzQsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4NDMsMHg2MSwweDYyLDB4NkMsMHg2NSwweDIwLAotMHg3NCwweDZGLDB4MjAsMHg1MiwweDY1LDB4NkQsMHg2RiwweDc0LDB4NjUsMHgxRiwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwKLTB4ODAsMHgyMCwweDc0LDB4NkYsMHgyMCwweDczLDB4NzQsMHg2MSwweDcyLDB4NzQsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4NEMsCi0weDZGLDB4NjMsMHg2MSwweDZDLDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwweDYyLDB4NjEsMHg2MywweDZCLDB4MjAsMHgxRiwweDIwLAotMHgyMCwweDUyLDB4NzUsMHg2RSwweDZFLDB4NjksMHg2RSwweDY3LDB4MjAsMHgyRSwweDJFLDB4MkUsMHgwMiwweDAwLDB4MDEsMHg4MCwKLTB4NTIsMHg2NSwweDZELDB4NkYsMHg3NCwweDY1LDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwweDYyLDB4NjEsMHg2MywweDZCLDB4MjAsCi0weDFGLDB4MjAsMHgyMCwweDUyLDB4NzUsMHg2RSwweDZFLDB4NjksMHg2RSwweDY3LDB4MjAsMHgyRSwweDJFLDB4MkUsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHg0OSwweDZFLDB4NzQsMHg3MiwweDZFLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwKLTB4NjMsMHg2QiwweDFGLDB4MjAsMHgyMCwweDUyLDB4NzUsMHg2RSwweDZFLDB4NjksMHg2RSwweDY3LDB4MjAsMHgyRSwweDJFLDB4MkUsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4NTQsMHg3MiwweDYxLDB4NkUsMHg3MywweDZELDB4NjksMHg3NCwweDIwLDB4NTAsMHg2MSwweDc0LAotMHg3NCwweDY1LDB4NzIsMHg2RSwweDFGLDB4MjAsMHgyMCwweDUyLDB4NzUsMHg2RSwweDZFLDB4NjksMHg2RSwweDY3LDB4MjAsMHgyRSwKLTB4MkUsMHgyRSwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDMwLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4MCwweDAwLDB4MDEsCi0weDgwLDB4MjAsMHgyMCwweDMxLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4MSwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzMiwweDNBLAotMHgyMCwweDI3LDB4NDMsMHg4MiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzMywweDNBLDB4MjAsMHgyNywweDQzLDB4ODMsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNCwweDNBLDB4MjAsMHgyNywweDQzLDB4ODQsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzUsCi0weDNBLDB4MjAsMHgyNywweDQzLDB4ODUsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzYsMHgzQSwweDIwLDB4MjcsMHg0MywweDg2LAotMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzcsMHgzQSwweDIwLDB4MjcsMHg0MywweDg3LDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwKLTB4MzgsMHgzQSwweDIwLDB4MjcsMHg0MywweDg4LDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDM5LDB4M0EsMHgyMCwweDI3LDB4NDMsCi0weDg5LDB4MDAsMHgwMSwweDgwLDB4MjAsMHgzMSwweDMwLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4QSwweDAwLDB4MDEsMHg4MCwweDIwLAotMHgzMSwweDMxLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4QiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MzEsMHgzMiwweDNBLDB4MjAsMHgyNywKLTB4NDMsMHg4QywweDAwLDB4MDEsMHg4MCwweDIwLDB4MzEsMHgzMywweDNBLDB4MjAsMHgyNywweDQzLDB4OEQsMHgwMCwweDAxLDB4ODAsCi0weDIwLDB4MzEsMHgzNCwweDNBLDB4MjAsMHgyNywweDQzLDB4OEUsMHgwMCwweDAxLDB4ODAsMHgyMCwweDMxLDB4MzUsMHgzQSwweDIwLAotMHgyNywweDQzLDB4OEYsMHgwMCwweDJBLDB4MkEsMHgyMCwweDRELDB4NjEsMHg2OSwweDZFLDB4MjAsMHgyMCwweDRELDB4NjUsMHg2RSwKLTB4NzUsMHgyMCwweDJBLDB4MkEsMHgwMCwweDRELDB4NkYsMHg2RSwweDY5LDB4NzQsMHg2RiwweDcyLDB4MjAsMHg2MSwweDIwLDB4NTAsCi0weDZGLDB4NzIsMHg3NCwweDAwLDB4NEQsMHg2RiwweDZFLDB4NjksMHg3NCwweDZGLDB4NzIsMHgyMCwweDYxLDB4MjAsMHg1MywweDY5LAotMHg2NywweDZFLDB4NjEsMHg2QywweDAwLDB4NDUsMHg3MywweDc0LDB4NjksMHg2RCwweDYxLDB4NzQsMHg2NSwweDIwLDB4NDMsMHg1MCwKLTB4NTMsMHgwMCwweDQ0LDB4NjksMHg2MSwweDY3LDB4NkUsMHg2RiwweDczLDB4NzQsMHg2OSwweDYzLDB4NzMsMHgwMCwweDRDLDB4NkYsCi0weDYzLDB4NjEsMHg2QywweDIwLDB4NEMsMHg2RiwweDZGLDB4NzAsMHg2MiwweDYxLDB4NjMsMHg2QiwweDAwLDB4NTIsMHg2NSwweDZELAotMHg2RiwweDc0LDB4NjUsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgwMCwweDQ5LDB4NkUsMHg3NCwKLTB4NzIsMHg2RSwweDZDLDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwweDYyLDB4NjEsMHg2MywweDZCLDB4MDAsMHg1NCwweDcyLDB4NjEsCi0weDZFLDB4NzMsMHg2RCwweDY5LDB4NzQsMHgyMCwweDUwLDB4NjEsMHg3NCwweDc0LDB4NjUsMHg3MiwweDZFLDB4MDAsMHg0MiwweDYxLAotMHg3NSwweDY0LDB4MjAsMHg1MiwweDYxLDB4NzQsMHg2NSwweDAwLDB4NDQsMHg2MSwweDc0LDB4NjEsMHgyMCwweDQyLDB4NjksMHg3NCwKLTB4NzMsMHgwMCwweDUzLDB4NzQsMHg2RiwweDcwLDB4MjAsMHg0MiwweDY5LDB4NzQsMHg3MywweDAwLDB4NTAsMHg2MSwweDcyLDB4NjksCi0weDc0LDB4NzksMHgwMCwweDQ0LDB4NjEsMHg3NCwweDYxLDB4MjAsMHg1MCwweDYxLDB4NzQsMHg3NCwweDY1LDB4NzIsMHg2RSwweDAwLAotMHg1NCwweDc4LDB4MjAsMHg0NiwweDZDLDB4NkYsMHg3NywweDIwLDB4NDMsMHg2RiwweDZFLDB4NzQsMHg3MiwweDZGLDB4NkMsMHgwMCwKLTB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDRFLDB4NzUsMHg2RCwweDYyLDB4NjUsMHg3MiwweDAwLDB4MzUsMHgzMCwweDAwLDB4MzcsCi0weDM1LDB4MDAsMHgzMSwweDMxLDB4MzAsMHgwMCwweDMxLDB4MzMsMHgzNCwweDJFLDB4MzUsMHgwMCwweDMxLDB4MzUsMHgzMCwweDAwLAotMHgzMiwweDMwLDB4MzAsMHgwMCwweDMzLDB4MzAsMHgzMCwweDAwLDB4MzYsMHgzMCwweDMwLDB4MDAsMHgzMSwweDMyLDB4MzAsMHgzMCwKLTB4MDAsMHgzMSwweDM4LDB4MzAsMHgzMCwweDAwLDB4MzIsMHgzMCwweDMwLDB4MzAsMHgwMCwweDMyLDB4MzQsMHgzMCwweDMwLDB4MDAsCi0weDMzLDB4MzYsMHgzMCwweDMwLDB4MDAsMHgzNCwweDM4LDB4MzAsMHgzMCwweDAwLDB4MzcsMHgzMiwweDMwLDB4MzAsMHgwMCwweDM5LAotMHgzNiwweDMwLDB4MzAsMHgwMCwweDMxLDB4MzksMHgyQywweDMyLDB4MzAsMHgzMCwweDAwLDB4MzMsMHgzOCwweDJDLDB4MzQsMHgzMCwKLTB4MzAsMHgwMCwweDM1LDB4MzYsMHgyQywweDMwLDB4MzAsMHgzMCwweDAwLDB4MzUsMHgzNywweDJDLDB4MzYsMHgzMCwweDMwLDB4MDAsCi0weDM2LDB4MzQsMHgyQywweDMwLDB4MzAsMHgzMCwweDAwLDB4MzcsMHgzNiwweDJDLDB4MzgsMHgzMCwweDMwLDB4MDAsMHgzMSwweDMxLAotMHgzNSwweDJDLDB4MzIsMHgzMCwweDMwLDB4MDAsMHgzNywweDIwLDB4NjIsMHg2OSwweDc0LDB4NzMsMHgwMCwweDM4LDB4MjAsMHg2MiwKLTB4NjksMHg3NCwweDczLDB4MDAsMHgzMSwweDIwLDB4NzMsMHg3NCwweDZGLDB4NzAsMHgyMCwweDYyLDB4NjksMHg3NCwweDAwLDB4MzEsCi0weDJFLDB4MzUsMHgyMCwweDczLDB4NzQsMHg2RiwweDcwLDB4MjAsMHg2MiwweDY5LDB4NzQsMHg3MywweDAwLDB4MzIsMHgyMCwweDczLAotMHg3NCwweDZGLDB4NzAsMHgyMCwweDYyLDB4NjksMHg3NCwweDczLDB4MDAsMHg2RSwweDZGLDB4MjAsMHg3MCwweDYxLDB4NzIsMHg2OSwKLTB4NzQsMHg3OSwweDAwLDB4NkYsMHg2NCwweDY0LDB4MjAsMHg3MCwweDYxLDB4NzIsMHg2OSwweDc0LDB4NzksMHgwMCwweDY1LDB4NzYsCi0weDY1LDB4NkUsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LDB4NzQsMHg3OSwweDAwLDB4NzMsMHg3MCwweDYxLDB4NjMsMHg2NSwweDIwLAotMHg3MCwweDYxLDB4NzIsMHg2OSwweDc0LDB4NzksMHgwMCwweDZELDB4NjEsMHg3MiwweDZCLDB4MjAsMHg3MCwweDYxLDB4NzIsMHg2OSwKLTB4NzQsMHg3OSwweDAwLDB4NDMsMHg2RiwweDZDLDB4NzUsMHg2RCwweDZFLDB4NzMsMHgwMCwweDQyLDB4NjEsMHg3MiwweDYyLDB4NjUsCi0weDcyLDB4MjAsMHg1MCwweDZGLDB4NkMsMHg2NSwweDAwLDB4NTUsMHg1NSwweDU1LDB4NTUsMHg1NSwweDJFLDB4MkUsMHgyRSwweDAwLAotMHg0RSwweDZGLDB4NkUsMHg2NSwweDAwLDB4NTgsMHg2RiwweDZFLDB4MkYsMHg1OCwweDZGLDB4NjYsMHg2NiwweDAwLDB4NDMsMHg1NCwKLTB4NTMsMHgwMCwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwweDgwLDB4MjAsMHg2NiwweDZGLDB4NzIsMHgyMCwweDZELDB4NjUsCi0weDZFLDB4NzUsMHgwMCwweDI4LDB4NjMsMHg2RiwweDc1LDB4NkUsMHg3NCwweDY5LDB4NkUsMHg2NywweDJFLDB4MkUsMHgyRSwweDI5LAotMHgwMCwweDAwLDB4NjUsMHg0RSwweDY0LDB4MjAsMHg0RiwweDY2LDB4MjAsMHg0MywweDZGLDB4NDQsMHg2NSwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcDIvaXAyYmFzZS5jIGIvZHJpdmVycy9jaGFyL2lwMi9pcDJiYXNlLmMKaW5kZXggNDM1Y2NmYy4uODE1NWUyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwMi9pcDJiYXNlLmMKKysrIGIvZHJpdmVycy9jaGFyL2lwMi9pcDJiYXNlLmMKQEAgLTIxLDEwICsyMSw5IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgImlwMnR5cGVzLmgiCQkKLSNpbmNsdWRlICJmaXBfZmlybS5oIgkJLy8gdGhlIG1lYXQKIAogaW50Ci1pcDJfbG9hZG1haW4oaW50ICosIGludCAgKiwgdW5zaWduZWQgY2hhciAqLCBpbnQgKTsgLy8gcmVmIGludG8gaXAybWFpbi5jCitpcDJfbG9hZG1haW4oaW50ICosIGludCAqKTsgLy8gcmVmIGludG8gaXAybWFpbi5jCiAKIC8qIE5vdGU6IEFkZCBjb21waWxlZCBpbiBkZWZhdWx0cyB0byB0aGVzZSBhcnJheXMsIG5vdCB0byB0aGUgc3RydWN0dXJlCiAJaW4gaXAyLmggYW55IGxvbmdlci4gIFRoYXQgc3RydWN0dXJlIFdJTEwgZ2V0IG92ZXJyaWRkZW4KQEAgLTUyLDcgKzUxLDcgQEAKIAkJaXJxWzBdID0gaXJxWzFdID0gaXJxWzJdID0gaXJxWzNdID0gMDsKIAl9CiAKLQlyZXR1cm4gaXAyX2xvYWRtYWluKGlvLGlycSwodW5zaWduZWQgY2hhciAqKWZpcF9maXJtLHNpemVvZihmaXBfZmlybSkpOworCXJldHVybiBpcDJfbG9hZG1haW4oaW8sIGlycSk7CiB9CiBtb2R1bGVfaW5pdChpcDJfaW5pdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcDIvaXAybWFpbi5jIGIvZHJpdmVycy9jaGFyL2lwMi9pcDJtYWluLmMKaW5kZXggYzEyY2Y4Zi4uOWEyMzk0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwMi9pcDJtYWluLmMKKysrIGIvZHJpdmVycy9jaGFyL2lwMi9pcDJtYWluLmMKQEAgLTk4LDYgKzk4LDkgQEAKICNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgpAQCAtMTU1LDkgKzE1OCw3IEBACiBzdGF0aWMgY2hhciAqcGNJcGwgICAgCQkgPSAiaXAyaXBsIjsKIAogLy8gY2hlZXp5IGtsdWRnZSBvciBnZW5pdXMgLSB5b3UgZGVjaWRlPwotaW50IGlwMl9sb2FkbWFpbihpbnQgKiwgaW50ICosIHVuc2lnbmVkIGNoYXIgKiwgaW50KTsKLXN0YXRpYyB1bnNpZ25lZCBjaGFyICpGaXBfZmlybXdhcmU7Ci1zdGF0aWMgaW50IEZpcF9maXJtd2FyZV9zaXplOworaW50IGlwMl9sb2FkbWFpbihpbnQgKiwgaW50ICopOwogCiAvKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBGdW5jdGlvbiBQcm90b3R5cGVzICovCkBAIC0yMDgsNyArMjA5LDcgQEAKIHN0YXRpYyBpbnQgRHVtcFRyYWNlQnVmZmVyKGNoYXIgX191c2VyICosIGludCk7CiBzdGF0aWMgaW50IER1bXBGaWZvQnVmZmVyKCBjaGFyIF9fdXNlciAqLCBpbnQpOwogCi1zdGF0aWMgdm9pZCBpcDJfaW5pdF9ib2FyZChpbnQpOworc3RhdGljIHZvaWQgaXAyX2luaXRfYm9hcmQoaW50LCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKik7CiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgZmluZF9laXNhX2JvYXJkKGludCk7CiAKIC8qKioqKioqKioqKioqKiovCkBAIC00NzQsOCArNDc1LDI3IEBACiAvKiBTQV9SQU5ET00gICAtIGNhbiBiZSBzb3VyY2UgZm9yIGNlcnQuIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9ycyAqLwogI2RlZmluZSBJUDJfU0FfRkxBR1MJMAogCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmlwMl9yZXF1ZXN0X2Zpcm13YXJlKHZvaWQpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCisJcGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1wbGUoImlwMiIsIDAsIE5VTEwsIDApOworCWlmIChJU19FUlIocGRldikpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgcGxhdGZvcm0gZGV2aWNlIGZvciBpcDJcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCAiaW50ZWxsaXBvcnQyLmJpbiIsICZwZGV2LT5kZXYpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgJ2ludGVsbGlwb3J0Mi5iaW4nXG4iKTsKKwkJZncgPSBOVUxMOworCX0KKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihwZGV2KTsKKwlyZXR1cm4gZnc7Cit9CisKIGludAotaXAyX2xvYWRtYWluKGludCAqaW9wLCBpbnQgKmlycXAsIHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCBpbnQgZmlybXNpemUpIAoraXAyX2xvYWRtYWluKGludCAqaW9wLCBpbnQgKmlycXApCiB7CiAJaW50IGksIGosIGJveDsKIAlpbnQgZXJyID0gMDsKQEAgLTQ4Myw2ICs1MDMsNyBAQAogCWkyZUJvcmRTdHJQdHIgcEIgPSBOVUxMOwogCWludCByYyA9IC0xOwogCXN0YXRpYyBzdHJ1Y3QgcGNpX2RldiAqcGNpX2Rldl9pID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKIAogCWlwMnRyYWNlIChJVFJDX05PX1BPUlQsIElUUkNfSU5JVCwgSVRSQ19FTlRFUiwgMCApOwogCkBAIC01MTYsOSArNTM3LDYgQEAKIAl9CiAJcG9sbF9vbmx5ID0gIXBvbGxfb25seTsKIAotCUZpcF9maXJtd2FyZSA9IGZpcm13YXJlOwotCUZpcF9maXJtd2FyZV9zaXplID0gZmlybXNpemU7Ci0KIAkvKiBBbm5vdW5jZSBvdXIgcHJlc2VuY2UgKi8KIAlwcmludGsoIEtFUk5fSU5GTyAiJXMgdmVyc2lvbiAlc1xuIiwgcGNOYW1lLCBwY1ZlcnNpb24gKTsKIApAQCAtNjM4LDEwICs2NTYsMTggQEAKIAkJfQogCX0KIAlmb3IgKCBpID0gMDsgaSA8IElQMl9NQVhfQk9BUkRTOyArK2kgKSB7CisJCS8qIFdlIGRvbid0IHdhbnQgdG8gcmVxdWVzdCB0aGUgZmlybXdhcmUgdW5sZXNzIHdlIGhhdmUgYXQKKwkJICAgbGVhc3Qgb25lIGJvYXJkICovCiAJCWlmICggaTJCb2FyZFB0clRhYmxlW2ldICE9IE5VTEwgKSB7Ci0JCQlpcDJfaW5pdF9ib2FyZCggaSApOworCQkJaWYgKCFmdykKKwkJCQlmdyA9IGlwMl9yZXF1ZXN0X2Zpcm13YXJlKCk7CisJCQlpZiAoIWZ3KQorCQkJCWJyZWFrOworCQkJaXAyX2luaXRfYm9hcmQoaSwgZncpOwogCQl9CiAJfQorCWlmIChmdykKKwkJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAKIAlpcDJ0cmFjZSAoSVRSQ19OT19QT1JULCBJVFJDX0lOSVQsIDIsIDAgKTsKIApAQCAtNzY5LDcgKzc5NSw3IEBACiAvKiBhcmUgcmVwb3J0ZWQgb24gdGhlIGNvbnNvbGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyB2b2lkCi1pcDJfaW5pdF9ib2FyZCggaW50IGJvYXJkbnVtICkKK2lwMl9pbml0X2JvYXJkKGludCBib2FyZG51bSwgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKIHsKIAlpbnQgaTsKIAlpbnQgbnBvcnRzID0gMCwgbmJveGVzID0gMDsKQEAgLTc4OSw3ICs4MTUsNyBAQAogCQlnb3RvIGVycl9pbml0aWFsaXplOwogCX0KIAotCWlmICggaWlEb3dubG9hZEFsbCAoIHBCLCAobG9hZEhkclN0clB0cilGaXBfZmlybXdhcmUsIDEsIEZpcF9maXJtd2FyZV9zaXplICkKKwlpZiAoIGlpRG93bmxvYWRBbGwgKCBwQiwgKGxvYWRIZHJTdHJQdHIpZnctPmRhdGEsIDEsIGZ3LT5zaXplICkKIAkgICAgIT0gSUlfRE9XTl9HT09EICkgewogCQlwcmludGsgKCBLRVJOX0VSUiAiSVAyOiBmYWlsZWQgdG8gZG93bmxvYWQgbG9hZHdhcmVcbiIgKTsKIAkJZ290byBlcnJfcmVsZWFzZV9yZWdpb247CkBAIC0yOTA4LDQyICsyOTM0LDExIEBACiBzdGF0aWMgaW50CiBpcDJfaXBsX29wZW4oIHN0cnVjdCBpbm9kZSAqcElub2RlLCBzdHJ1Y3QgZmlsZSAqcEZpbGUgKQogewotCXVuc2lnbmVkIGludCBpcGxtaW5vciA9IGltaW5vcihwSW5vZGUpOwotCWkyZUJvcmRTdHJQdHIgcEI7Ci0JaTJDaGFuU3RyUHRyICBwQ2g7CiAKICNpZmRlZiBJUDJERUJVR19JUEwKIAlwcmludGsgKEtFUk5fREVCVUcgIklQMklQTDogb3BlblxuIiApOwogI2VuZGlmCi0KLQlzd2l0Y2goaXBsbWlub3IpIHsKLQkvLyBUaGVzZSBhcmUgdGhlIElQTCBkZXZpY2VzCi0JY2FzZSAwOgotCWNhc2UgNDoKLQljYXNlIDg6Ci0JY2FzZSAxMjoKLQkJYnJlYWs7Ci0KLQkvLyBUaGVzZSBhcmUgdGhlIHN0YXR1cyBkZXZpY2VzCi0JY2FzZSAxOgotCWNhc2UgNToKLQljYXNlIDk6Ci0JY2FzZSAxMzoKLQkJYnJlYWs7Ci0KLQkvLyBUaGVzZSBhcmUgdGhlIGRlYnVnIGRldmljZXMKLQljYXNlIDI6Ci0JY2FzZSA2OgotCWNhc2UgMTA6Ci0JY2FzZSAxNDoKLQkJcEIgPSBpMkJvYXJkUHRyVGFibGVbaXBsbWlub3IgLyA0XTsKLQkJcENoID0gKGkyQ2hhblN0clB0cikgcEItPmkyZUNoYW5uZWxQdHI7Ci0JCWJyZWFrOwotCi0JLy8gVGhpcyBpcyB0aGUgdHJhY2UgZGV2aWNlCi0JY2FzZSAzOgotCQlicmVhazsKLQl9CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMjctcnRjLmMgYi9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYwppbmRleCA4NmU2NTM4Li5lYzlkMDQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYworKysgYi9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2JjZC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CkBAIC0xNjMsMTUgKzE2NCwxOCBAQAogCiBzdGF0aWMgaW50IHJ0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwogCiAJaWYgKHJ0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikgewogCQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIAogCXJ0Y19zdGF0dXMgfD0gUlRDX0lTX09QRU47CiAJc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RldmludGYuYyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCmluZGV4IDAyNDZhMmIuLmMxMWE0MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKIHN0cnVjdCBpcG1pX2ZpbGVfcHJpdmF0ZQogewpAQCAtMTAwLDcgKzEwMSw5IEBACiAJc3RydWN0IGlwbWlfZmlsZV9wcml2YXRlICpwcml2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCWludCAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ7CiAKKwlsb2NrX2tlcm5lbCgpOyAvKiBjb3VsZCByYWNlIGFnYWluc3Qgb3BlbigpIG90aGVyd2lzZSAqLwogCXJlc3VsdCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcHJpdi0+ZmFzeW5jX3F1ZXVlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gKHJlc3VsdCk7CiB9CkBAIC0xMjEsNiArMTI0LDcgQEAKIAlpZiAoIXByaXYpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlwcml2LT5maWxlID0gZmlsZTsKIAogCXJ2ID0gaXBtaV9jcmVhdGVfdXNlcihpZl9udW0sCkBAIC0xMjksNyArMTMzLDcgQEAKIAkJCSAgICAgICYocHJpdi0+dXNlcikpOwogCWlmIChydikgewogCQlrZnJlZShwcml2KTsKLQkJcmV0dXJuIHJ2OworCQlnb3RvIG91dDsKIAl9CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcml2OwpAQCAtMTQ0LDcgKzE0OCw5IEBACiAJcHJpdi0+ZGVmYXVsdF9yZXRyaWVzID0gLTE7CiAJcHJpdi0+ZGVmYXVsdF9yZXRyeV90aW1lX21zID0gMDsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcnY7CiB9CiAKIHN0YXRpYyBpbnQgaXBtaV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV93YXRjaGRvZy5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV93YXRjaGRvZy5jCmluZGV4IDFiOWE4NzAuLjIzNWZhYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3dhdGNoZG9nLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lwbWkuaD4KICNpbmNsdWRlIDxsaW51eC9pcG1pX3NtaS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtNzU1LDkgKzc1Niw4IEBACiAJCXJ2ID0gaXBtaV9oZWFydGJlYXQoKTsKIAkJaWYgKHJ2KQogCQkJcmV0dXJuIHJ2OwotCQlyZXR1cm4gMTsKIAl9Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGxlbjsKIH0KIAogc3RhdGljIHNzaXplX3QgaXBtaV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLApAQCAtODE5LDYgKzgxOSw4IEBACiAJCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZpcG1pX3dkb2dfb3BlbikpCiAJCQlyZXR1cm4gLUVCVVNZOwogCisJCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisKIAkJLyoKIAkJICogRG9uJ3Qgc3RhcnQgdGhlIHRpbWVyIG5vdywgbGV0IGl0IHN0YXJ0IG9uIHRoZQogCQkgKiBmaXJzdCBoZWFydGJlYXQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIva2V5Ym9hcmQuYyBiL2RyaXZlcnMvY2hhci9rZXlib2FyZC5jCmluZGV4IDdmN2U3OTguLmQ5YTBhNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9rZXlib2FyZC5jCisrKyBiL2RyaXZlcnMvY2hhci9rZXlib2FyZC5jCkBAIC02NzcsMTIgKzY3Nyw3IEBACiAKIHN0YXRpYyB2b2lkIGtfc2VsZihzdHJ1Y3QgdmNfZGF0YSAqdmMsIHVuc2lnbmVkIGNoYXIgdmFsdWUsIGNoYXIgdXBfZmxhZykKIHsKLQl1bnNpZ25lZCBpbnQgdW5pOwotCWlmIChrYmQtPmtiZG1vZGUgPT0gVkNfVU5JQ09ERSkKLQkJdW5pID0gdmFsdWU7Ci0JZWxzZQotCQl1bmkgPSBjb252XzhiaXRfdG9fdW5pKHZhbHVlKTsKLQlrX3VuaWNvZGUodmMsIHVuaSwgdXBfZmxhZyk7CisJa191bmljb2RlKHZjLCBjb252XzhiaXRfdG9fdW5pKHZhbHVlKSwgdXBfZmxhZyk7CiB9CiAKIHN0YXRpYyB2b2lkIGtfZGVhZDIoc3RydWN0IHZjX2RhdGEgKnZjLCB1bnNpZ25lZCBjaGFyIHZhbHVlLCBjaGFyIHVwX2ZsYWcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbGNkLmMgYi9kcml2ZXJzL2NoYXIvbGNkLmMKaW5kZXggNGZlOTIwNi4uMWMyOWIyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2xjZC5jCisrKyBiL2RyaXZlcnMvY2hhci9sY2QuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQxNCw2ICs0MTUsOCBAQAogCiBzdGF0aWMgaW50IGxjZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisKIAlpZiAoIWxjZF9wcmVzZW50KQogCQlyZXR1cm4gLUVOWElPOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9scC5jIGIvZHJpdmVycy9jaGFyL2xwLmMKaW5kZXggNjBhYzY0Mi4uNzFhYmI0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2xwLmMKKysrIGIvZHJpdmVycy9jaGFyL2xwLmMKQEAgLTEyNiw2ICsxMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L3BhcnBvcnQuaD4KICN1bmRlZiBMUF9TVEFUUwpAQCAtNDg5LDE0ICs0OTAsMjEgQEAKIHN0YXRpYyBpbnQgbHBfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CisJaW50IHJldCA9IDA7CiAKLQlpZiAobWlub3IgPj0gTFBfTk8pCi0JCXJldHVybiAtRU5YSU87Ci0JaWYgKChMUF9GKG1pbm9yKSAmIExQX0VYSVNUKSA9PSAwKQotCQlyZXR1cm4gLUVOWElPOwotCWlmICh0ZXN0X2FuZF9zZXRfYml0KExQX0JVU1lfQklUX1BPUywgJkxQX0YobWlub3IpKSkKLQkJcmV0dXJuIC1FQlVTWTsKLQorCWxvY2tfa2VybmVsKCk7CisJaWYgKG1pbm9yID49IExQX05PKSB7CisJCXJldCA9IC1FTlhJTzsKKwkJZ290byBvdXQ7CisJfQorCWlmICgoTFBfRihtaW5vcikgJiBMUF9FWElTVCkgPT0gMCkgeworCQlyZXQgPSAtRU5YSU87CisJCWdvdG8gb3V0OworCX0KKwlpZiAodGVzdF9hbmRfc2V0X2JpdChMUF9CVVNZX0JJVF9QT1MsICZMUF9GKG1pbm9yKSkpIHsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAJLyogSWYgQUJPUlRPUEVOIGlzIHNldCBhbmQgdGhlIHByaW50ZXIgaXMgb2ZmbGluZSBvciBvdXQgb2YgcGFwZXIsCiAJICAgd2UgbWF5IHN0aWxsIHdhbnQgdG8gb3BlbiBpdCB0byBwZXJmb3JtIGlvY3RsKClzLiAgVGhlcmVmb3JlIHdlCiAJICAgaGF2ZSBjb21tYW5kZWVyZWQgT19OT05CTE9DSywgZXZlbiB0aG91Z2ggaXQgaXMgYmVpbmcgdXNlZCBpbgpAQCAtNTEwLDIxICs1MTgsMjUgQEAKIAkJaWYgKHN0YXR1cyAmIExQX1BPVVRQQSkgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAibHAlZCBvdXQgb2YgcGFwZXJcbiIsIG1pbm9yKTsKIAkJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQkJcmV0dXJuIC1FTk9TUEM7CisJCQlyZXQgPSAtRU5PU1BDOworCQkJZ290byBvdXQ7CiAJCX0gZWxzZSBpZiAoIShzdGF0dXMgJiBMUF9QU0VMRUNEKSkgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAibHAlZCBvZmYtbGluZVxuIiwgbWlub3IpOwogCQkJTFBfRihtaW5vcikgJj0gfkxQX0JVU1k7Ci0JCQlyZXR1cm4gLUVJTzsKKwkJCXJldCA9IC1FSU87CisJCQlnb3RvIG91dDsKIAkJfSBlbHNlIGlmICghKHN0YXR1cyAmIExQX1BFUlJPUlApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgImxwJWQgcHJpbnRlciBlcnJvclxuIiwgbWlub3IpOwogCQkJTFBfRihtaW5vcikgJj0gfkxQX0JVU1k7Ci0JCQlyZXR1cm4gLUVJTzsKKwkJCXJldCA9IC1FSU87CisJCQlnb3RvIG91dDsKIAkJfQogCX0KIAlscF90YWJsZVttaW5vcl0ubHBfYnVmZmVyID0ga21hbGxvYyhMUF9CVUZGRVJfU0laRSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFscF90YWJsZVttaW5vcl0ubHBfYnVmZmVyKSB7CiAJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCS8qIERldGVybWluZSBpZiB0aGUgcGVyaXBoZXJhbCBzdXBwb3J0cyBFQ1AgbW9kZSAqLwogCWxwX2NsYWltX3BhcnBvcnRfb3JfYmxvY2sgKCZscF90YWJsZVttaW5vcl0pOwpAQCAtNTQwLDcgKzU1Miw5IEBACiAJcGFycG9ydF9uZWdvdGlhdGUgKGxwX3RhYmxlW21pbm9yXS5kZXYtPnBvcnQsIElFRUUxMjg0X01PREVfQ09NUEFUKTsKIAlscF9yZWxlYXNlX3BhcnBvcnQgKCZscF90YWJsZVttaW5vcl0pOwogCWxwX3RhYmxlW21pbm9yXS5jdXJyZW50X21vZGUgPSBJRUVFMTI4NF9NT0RFX0NPTVBBVDsKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBscF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWJjcy5jIGIvZHJpdmVycy9jaGFyL21iY3MuYwppbmRleCBmNDcxNmFkLi5hY2Q4ZTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbWJjcy5jCisrKyBiL2RyaXZlcnMvY2hhci9tYmNzLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KQEAgLTM4MiwxNSArMzgzLDE5IEBACiAJc3RydWN0IG1iY3Nfc29mdCAqc29mdDsKIAlpbnQgbWlub3I7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGlwKTsKIAorCS8qIE5vdGhpbmcgcHJvdGVjdHMgYWNjZXNzIHRvIHRoaXMgbGlzdC4uLiAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoc29mdCwgJnNvZnRfbGlzdCwgbGlzdCkgewogCQlpZiAoc29mdC0+bmFzaWQgPT0gbWlub3IpIHsKIAkJCWZwLT5wcml2YXRlX2RhdGEgPSBzb2Z0LT5jeGRldjsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWVtLmMgYi9kcml2ZXJzL2NoYXIvbWVtLmMKaW5kZXggOTM0ZmZhZi4uMDcwZTIyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21lbS5jCisrKyBiL2RyaXZlcnMvY2hhci9tZW0uYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9zcGxpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTg4OSw2ICs4OTAsOSBAQAogCiBzdGF0aWMgaW50IG1lbW9yeV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApCiB7CisJaW50IHJldCA9IDA7CisKKwlsb2NrX2tlcm5lbCgpOwogCXN3aXRjaCAoaW1pbm9yKGlub2RlKSkgewogCQljYXNlIDE6CiAJCQlmaWxwLT5mX29wID0gJm1lbV9mb3BzOwpAQCAtOTMyLDExICs5MzYsMTMgQEAKIAkJCWJyZWFrOwogI2VuZGlmCiAJCWRlZmF1bHQ6CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gLUVOWElPOwogCX0KIAlpZiAoZmlscC0+Zl9vcCAmJiBmaWxwLT5mX29wLT5vcGVuKQotCQlyZXR1cm4gZmlscC0+Zl9vcC0+b3Blbihpbm9kZSxmaWxwKTsKLQlyZXR1cm4gMDsKKwkJcmV0ID0gZmlscC0+Zl9vcC0+b3Blbihpbm9kZSxmaWxwKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWVtb3J5X2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWlzYy5jIGIvZHJpdmVycy9jaGFyL21pc2MuYwppbmRleCBlYWFjZTBkLi42ZTE1NjNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbWlzYy5jCisrKyBiL2RyaXZlcnMvY2hhci9taXNjLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogLyoKICAqIEhlYWQgZW50cnkgZm9yIHRoZSBkb3VibHkgbGlua2VkIG1pc2NkZXZpY2UgbGlzdApAQCAtMTE4LDYgKzExOSw3IEBACiAJaW50IGVyciA9IC1FTk9ERVY7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb2xkX2ZvcHMsICpuZXdfZm9wcyA9IE5VTEw7CiAJCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZtaXNjX210eCk7CiAJCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjLCAmbWlzY19saXN0LCBsaXN0KSB7CkBAIC0xNTUsNiArMTU3LDcgQEAKIAlmb3BzX3B1dChvbGRfZm9wcyk7CiBmYWlsOgogCW11dGV4X3VubG9jaygmbWlzY19tdHgpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbW94YS5jIGIvZHJpdmVycy9jaGFyL21veGEuYwppbmRleCBkNTdkM2E2Li5lMjEzNDZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbW94YS5jCisrKyBiL2RyaXZlcnMvY2hhci9tb3hhLmMKQEAgLTcyMSw3ICs3MjEsNyBAQAogCiBzdGF0aWMgaW50IG1veGFfbG9hZF9mdyhzdHJ1Y3QgbW94YV9ib2FyZF9jb25mICpicmQsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7Ci0Jdm9pZCAqcHRyID0gZnctPmRhdGE7CisJY29uc3Qgdm9pZCAqcHRyID0gZnctPmRhdGE7CiAJY2hhciByc25bNjRdOwogCXUxNiBsZW5zWzVdOwogCXNpemVfdCBsZW47CkBAIC03MzQsNyArNzM0LDcgQEAKIAkJdTggbW9kZWw7CS8qIEMyMThUPTEsIEMzMjBUPTIsIENQMjA0PTMgKi8KIAkJdTggcmVzZXJ2ZWQyWzhdOwogCQlfX2xlMTYgbGVuWzVdOwotCX0gKmhkciA9IHB0cjsKKwl9IGNvbnN0ICpoZHIgPSBwdHI7CiAKIAlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShoZHItPmxlbikgIT0gQVJSQVlfU0laRShsZW5zKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9td2F2ZS9td2F2ZWRkLmMgYi9kcml2ZXJzL2NoYXIvbXdhdmUvbXdhdmVkZC5jCmluZGV4IDhkMTQ4MjMuLjUwMjQzZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9td2F2ZS9td2F2ZWRkLmMKKysrIGIvZHJpdmVycy9jaGFyL213YXZlL213YXZlZGQuYwpAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KICNpbmNsdWRlICJzbWFwaS5oIgpAQCAtMTAwLDYgKzEwMSw3IEBACiAJUFJJTlRLXzIoVFJBQ0VfTVdBVkUsCiAJCSJtd2F2ZWRkOjptd2F2ZV9vcGVuLCBleGl0IHJldHVybiByZXR2YWwgJXhcbiIsIHJldHZhbCk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9udnJhbS5jIGIvZHJpdmVycy9jaGFyL252cmFtLmMKaW5kZXggOThkZWMzOC4uMTk3Y2Q3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL252cmFtLmMKKysrIGIvZHJpdmVycy9jaGFyL252cmFtLmMKQEAgLTEwNyw2ICsxMDcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTMzMywxMiArMzM0LDE0IEBACiBzdGF0aWMgaW50CiBudnJhbV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZudnJhbV9zdGF0ZV9sb2NrKTsKIAogCWlmICgobnZyYW1fb3Blbl9jbnQgJiYgKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKSB8fAogCSAgICAobnZyYW1fb3Blbl9tb2RlICYgTlZSQU1fRVhDTCkgfHwKIAkgICAgKChmaWxlLT5mX21vZGUgJiAyKSAmJiAobnZyYW1fb3Blbl9tb2RlICYgTlZSQU1fV1JJVEUpKSkgewogCQlzcGluX3VubG9jaygmbnZyYW1fc3RhdGVfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTM0OSw2ICszNTIsNyBAQAogCW52cmFtX29wZW5fY250Kys7CiAKIAlzcGluX3VubG9jaygmbnZyYW1fc3RhdGVfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGM4NzM2eF9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvcGM4NzM2eF9ncGlvLmMKaW5kZXggZWNmYWYxOC4uYjkzMGRlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BjODczNnhfZ3Bpby5jCisrKyBiL2RyaXZlcnMvY2hhci9wYzg3MzZ4X2dwaW8uYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbnNjX2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKICNkZWZpbmUgREVWTkFNRSAicGM4NzM2eF9ncGlvIgpAQCAtMjE3LDYgKzIxOCw3IEBACiAJdW5zaWduZWQgbSA9IGltaW5vcihpbm9kZSk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gJnBjODczNnhfZ3Bpb19vcHM7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWRldl9kYmcoJnBkZXYtPmRldiwgIm9wZW4gJWRcbiIsIG0pOwogCiAJaWYgKG0gPj0gUEM4NzM2WF9HUElPX0NUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwMDBfY3MuYyBiL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDAwX2NzLmMKaW5kZXggNGE5MzNkNC4uNTljYTM1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwMDBfY3MuYworKysgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDAwMF9jcy5jCkBAIC0zMiw4ICszMiw5IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdHJldi5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgpAQCAtMTQwNSwxMSArMTQwNiwxMSBAQAogCURFQlVHUCgzLCBkZXYsICI8LSBzdG9wX21vbml0b3JcbiIpOwogfQogCi1zdGF0aWMgaW50IGNtbV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKLQkJICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBsb25nIGNtbV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IGNtNDAwMF9kZXYgKmRldiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKIAl1bnNpZ25lZCBpbnQgaW9iYXNlID0gZGV2LT5wX2Rldi0+aW8uQmFzZVBvcnQxOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOwogCXN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rOwogCWludCBzaXplOwogCWludCByYzsKQEAgLTE0MjYsMzggKzE0MjcsNDIgQEAKIAlERUJVR1AoMywgZGV2LCAiY21tX2lvY3RsKGRldmljZT0lZC4lZCkgJXNcbiIsIGltYWpvcihpbm9kZSksCiAJICAgICAgIGltaW5vcihpbm9kZSksIGlvY3RsX25hbWVzW19JT0NfTlIoY21kKV0pOwogCisJbG9ja19rZXJuZWwoKTsKKwlyYyA9IC1FTk9ERVY7CiAJbGluayA9IGRldl90YWJsZVtpbWlub3IoaW5vZGUpXTsKIAlpZiAoIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkgewogCQlERUJVR1AoNCwgZGV2LCAiREVWX09LIGZhbHNlXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KIAogCWlmICh0ZXN0X2JpdChJU19DTU1fQUJTRU5ULCAmZGV2LT5mbGFncykpIHsKIAkJREVCVUdQKDQsIGRldiwgIkNNTV9BQlNFTlQgZmxhZyBzZXRcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQorCXJjID0gRUlOVkFMOwogCiAJaWYgKF9JT0NfVFlQRShjbWQpICE9IENNX0lPQ19NQUdJQykgewogCQlERUJVR1AoNCwgZGV2LCAiaW9jdHlwZSBtaXNtYXRjaFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOworCQlnb3RvIG91dDsKIAl9CiAJaWYgKF9JT0NfTlIoY21kKSA+IENNX0lPQ19NQVhOUikgewogCQlERUJVR1AoNCwgZGV2LCAiaW9jbnIgbWlzbWF0Y2hcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAJfQogCXNpemUgPSBfSU9DX1NJWkUoY21kKTsKLQlyYyA9IDA7CisJcmMgPSAtRUZBVUxUOwogCURFQlVHUCg0LCBkZXYsICJpb2NkaXI9JS40eCBpb2NyPSUuNHggaW9jdz0lLjR4IGlvY3NpemU9JWQgY21kPSUuNHhcbiIsCiAJICAgICAgX0lPQ19ESVIoY21kKSwgX0lPQ19SRUFELCBfSU9DX1dSSVRFLCBzaXplLCBjbWQpOwogCiAJaWYgKF9JT0NfRElSKGNtZCkgJiBfSU9DX1JFQUQpIHsKIAkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBhcmdwLCBzaXplKSkKLQkJCXJldHVybiAtRUZBVUxUOworCQkJZ290byBvdXQ7CiAJfQogCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19XUklURSkgewogCQlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgYXJncCwgc2l6ZSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKKwkJCWdvdG8gb3V0OwogCX0KKwlyYyA9IDA7CiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgQ01fSU9DR1NUQVRVUzoKQEAgLTE0NzcsOSArMTQ4Miw5IEBACiAJCQlpZiAodGVzdF9iaXQoSVNfQkFEX0NBUkQsICZkZXYtPmZsYWdzKSkKIAkJCQlzdGF0dXMgfD0gQ01fQkFEX0NBUkQ7CiAJCQlpZiAoY29weV90b191c2VyKGFyZ3AsICZzdGF0dXMsIHNpemVvZihpbnQpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQlyYyA9IC1FRkFVTFQ7CiAJCX0KLQkJcmV0dXJuIDA7CisJCWJyZWFrOwogCWNhc2UgQ01fSU9DR0FUUjoKIAkJREVCVUdQKDQsIGRldiwgIi4uLiBpbiBDTV9JT0NHQVRSXG4iKTsKIAkJewpAQCAtMTQ5MiwyNSArMTQ5NywyOSBAQAogCQkJICAgICAgfHwgKHRlc3RfYml0KElTX0FUUl9QUkVTRU5ULCAodm9pZCAqKSZkZXYtPmZsYWdzKQogCQkJCSAgIT0gMCkpKSkgewogCQkJCWlmIChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykKLQkJCQkJcmV0dXJuIC1FQUdBSU47Ci0JCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwkJCQkJcmMgPSAtRUFHQUlOOworCQkJCWVsc2UKKwkJCQkJcmMgPSAtRVJFU1RBUlRTWVM7CisJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCXJjID0gLUVGQVVMVDsKIAkJCWlmICh0ZXN0X2JpdChJU19BVFJfVkFMSUQsICZkZXYtPmZsYWdzKSA9PSAwKSB7CiAJCQkJdG1wID0gLTE7CiAJCQkJaWYgKGNvcHlfdG9fdXNlcigmKGF0cmVxLT5hdHJfbGVuKSwgJnRtcCwKIAkJCQkJCSBzaXplb2YoaW50KSkpCi0JCQkJCXJldHVybiAtRUZBVUxUOworCQkJCQlicmVhazsKIAkJCX0gZWxzZSB7CiAJCQkJaWYgKGNvcHlfdG9fdXNlcihhdHJlcS0+YXRyLCBkZXYtPmF0ciwKIAkJCQkJCSBkZXYtPmF0cl9sZW4pKQotCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQkJYnJlYWs7CiAKIAkJCQl0bXAgPSBkZXYtPmF0cl9sZW47CiAJCQkJaWYgKGNvcHlfdG9fdXNlcigmKGF0cmVxLT5hdHJfbGVuKSwgJnRtcCwgc2l6ZW9mKGludCkpKQotCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQkJYnJlYWs7CiAJCQl9Ci0JCQlyZXR1cm4gMDsKKwkJCXJjID0gMDsKKwkJCWJyZWFrOwogCQl9CiAJY2FzZSBDTV9JT0NBUkRPRkY6CiAKQEAgLTE1MzgsOCArMTU0NywxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYW5kX3NldF9iaXQoTE9DS19JTywgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgID09IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQkJLyogU2V0IEZsYWdzMCA9IDB4NDIgKi8KIAkJCURFQlVHUCg0LCBkZXYsICJTZXQgRmxhZ3MwPTB4NDIgXG4iKTsKQEAgLTE1NTQsOCArMTU2NSwxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYml0KElTX0FUUl9WQUxJRCwgKHZvaWQgKikmZGV2LT5mbGFncykgIT0KIAkJCQkgIDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQl9CiAJCS8qIHJlbGVhc2UgbG9jayAqLwpAQCAtMTU2OCw4ICsxNTgxLDEwIEBACiAJCQlzdHJ1Y3QgcHRzcmVxIGtybnB0c3JlcTsKIAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZrcm5wdHNyZXEsIGFyZ3AsCi0JCQkJCSAgIHNpemVvZihzdHJ1Y3QgcHRzcmVxKSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJCSAgIHNpemVvZihzdHJ1Y3QgcHRzcmVxKSkpIHsKKwkJCQlyYyA9IC1FRkFVTFQ7CisJCQkJYnJlYWs7CisJCQl9CiAKIAkJCXJjID0gMDsKIAkJCURFQlVHUCg0LCBkZXYsICIuLi4gaW4gQ01fSU9DU1BUU1xuIik7CkBAIC0xNTgwLDggKzE1OTUsMTAgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2JpdChJU19BVFJfUFJFU0VOVCwgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgICE9IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQkJLyogZ2V0IElPIGxvY2sgKi8KIAkJCWlmICh3YWl0X2V2ZW50X2ludGVycnVwdGlibGUKQEAgLTE1OTAsOCArMTYwNywxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYW5kX3NldF9iaXQoTE9DS19JTywgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgID09IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCiAJCQlpZiAoKHJjID0gc2V0X3Byb3RvY29sKGRldiwgJmtybnB0c3JlcSkpICE9IDApIHsKQEAgLTE2MDQsNyArMTYyMyw3IEBACiAJCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmRldi0+aW9xKTsKIAogCQl9Ci0JCXJldHVybiByYzsKKwkJYnJlYWs7CiAjaWZkZWYgUENNQ0lBX0RFQlVHCiAJY2FzZSBDTV9JT1NEQkdMVkw6CS8qIHNldCBkZWJ1ZyBsb2cgbGV2ZWwgKi8KIAkJewpAQCAtMTYxMiwxOCArMTYzMSwyMCBAQAogCiAJCQlvbGRfcGNfZGVidWcgPSBwY19kZWJ1ZzsKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigmcGNfZGVidWcsIGFyZ3AsIHNpemVvZihpbnQpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQotCQkJaWYgKG9sZF9wY19kZWJ1ZyAhPSBwY19kZWJ1ZykKKwkJCQlyYyA9IC1FRkFVTFQ7CisJCQllbHNlIGlmIChvbGRfcGNfZGVidWcgIT0gcGNfZGVidWcpCiAJCQkJREVCVUdQKDAsIGRldiwgIkNoYW5nZWQgZGVidWcgbG9nIGxldmVsICIKIAkJCQkgICAgICAgInRvICVpXG4iLCBwY19kZWJ1Zyk7CiAJCX0KLQkJcmV0dXJuIHJjOworCQlicmVhazsKICNlbmRpZgogCWRlZmF1bHQ6CiAJCURFQlVHUCg0LCBkZXYsICIuLi4gaW4gZGVmYXVsdCAodW5rbm93biBJT0NUTCBjb2RlKVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOworCQlyYyA9IC1FTk9UVFk7CiAJfQorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgY21tX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCkBAIC0xNjMxLDE2ICsxNjUyLDIyIEBACiAJc3RydWN0IGNtNDAwMF9kZXYgKmRldjsKIAlzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluazsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQ7CiAKIAlpZiAobWlub3IgPj0gQ000MDAwX01BWF9ERVYpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAlsaW5rID0gZGV2X3RhYmxlW21pbm9yXTsKLQlpZiAobGluayA9PSBOVUxMIHx8ICFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpCi0JCXJldHVybiAtRU5PREVWOworCWlmIChsaW5rID09IE5VTEwgfHwgIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAobGluay0+b3BlbikKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAobGluay0+b3BlbikgeworCQlyZXQgPSAtRUJVU1k7CisJCWdvdG8gb3V0OworCX0KIAogCWRldiA9IGxpbmstPnByaXY7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZGV2OwpAQCAtMTY2MCw4ICsxNjg3LDEwIEBACiAJICogdmFpbGQgPSBibG9jayB1bnRpbCB2YWxpZCAob3IgY2FyZAogCSAqIGluc2VydGVkKQogCSAqLwotCWlmIChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykKLQkJcmV0dXJuIC1FQUdBSU47CisJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSB7CisJCXJldCA9IC1FQUdBSU47CisJCWdvdG8gb3V0OworCX0KIAogCWRldi0+bWRlbGF5ID0gVF81ME1TRUM7CiAKQEAgLTE2NzEsNyArMTcwMCwxMCBAQAogCWxpbmstPm9wZW4gPSAxOwkJLyogb25seSBvbmUgb3BlbiBwZXIgZGV2aWNlICovCiAKIAlERUJVR1AoMiwgZGV2LCAiPC0gY21tX29wZW5cbiIpOwotCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKKwlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBjbW1fY2xvc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCkBAIC0xODk3LDcgKzE5MjksNyBAQAogCS5vd25lcgk9IFRISVNfTU9EVUxFLAogCS5yZWFkCT0gY21tX3JlYWQsCiAJLndyaXRlCT0gY21tX3dyaXRlLAotCS5pb2N0bAk9IGNtbV9pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJPSBjbW1faW9jdGwsCiAJLm9wZW4JPSBjbW1fb3BlbiwKIAkucmVsZWFzZT0gY21tX2Nsb3NlLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDQwX2NzLmMgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDA0MF9jcy5jCmluZGV4IDAzNTA4NGMuLjYxODFmOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDQwX2NzLmMKKysrIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwNDBfY3MuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQ0OCwyMyArNDQ5LDMwIEBACiAJc3RydWN0IHJlYWRlcl9kZXYgKmRldjsKIAlzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluazsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQ7CiAKIAlpZiAobWlub3IgPj0gQ01fTUFYX0RFVikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxpbmsgPSBkZXZfdGFibGVbbWlub3JdOwotCWlmIChsaW5rID09IE5VTEwgfHwgIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKGxpbmsgPT0gTlVMTCB8fCAhcGNtY2lhX2Rldl9wcmVzZW50KGxpbmspKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAotCWlmIChsaW5rLT5vcGVuKQotCQlyZXR1cm4gLUVCVVNZOworCWlmIChsaW5rLT5vcGVuKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJZGV2ID0gbGluay0+cHJpdjsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBkZXY7CiAKIAlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spIHsKIAkJREVCVUdQKDQsIGRldiwgImZpbGVwLT5mX2ZsYWdzIE9fTk9OQkxPQ0sgc2V0XG4iKTsKLQkJcmV0dXJuIC1FQUdBSU47CisJCXJldCA9IC1FQUdBSU47CisJCWdvdG8gb3V0OwogCX0KIAogCWxpbmstPm9wZW4gPSAxOwpAQCAtNDczLDcgKzQ4MSwxMCBAQAogCW1vZF90aW1lcigmZGV2LT5wb2xsX3RpbWVyLCBqaWZmaWVzICsgUE9MTF9QRVJJT0QpOwogCiAJREVCVUdQKDIsIGRldiwgIjwtIGNtNDA0MF9vcGVuIChzdWNjZXNzZnVsbHkpXG4iKTsKLQlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJcmV0ID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY200MDQwX2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL2hhcmR3YXJlLmMgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYwppbmRleCBiYTYzNDBhLi45MjkxMDFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYworKysgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYwpAQCAtNTkwLDggKzU5MCwxMCBAQAogCQlwYWNrZXQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaXB3X3J4X3BhY2tldCkgKwogCQkJCW9sZF9wYWNrZXQtPmxlbmd0aCArIG1pbmltdW1fZnJlZV9zcGFjZSwKIAkJCQlHRlBfQVRPTUlDKTsKLQkJaWYgKCFwYWNrZXQpCisJCWlmICghcGFja2V0KSB7CisJCQlrZnJlZShvbGRfcGFja2V0KTsKIAkJCXJldHVybiBOVUxMOworCQl9CiAJCW1lbWNweShwYWNrZXQsIG9sZF9wYWNrZXQsCiAJCQkJc2l6ZW9mKHN0cnVjdCBpcHdfcnhfcGFja2V0KQogCQkJCQkrIG9sZF9wYWNrZXQtPmxlbmd0aCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL21haW4uYwppbmRleCAwMGM3Zjg0Li5jYzdkY2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jCisrKyBiL2RyaXZlcnMvY2hhci9wY21jaWEvaXB3aXJlbGVzcy9tYWluLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kZXZpY2VfaWQuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wcGRldi5jIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKaW5kZXggM2FhYjgzNy4uZjZlNmFjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BwZGV2LmMKKysrIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9wcGRldi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2RlZmluZSBQUF9WRVJTSU9OICJwcGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBwb3J0IGRyaXZlciIKQEAgLTYzOCw2ICs2MzksNyBAQAogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAJc3RydWN0IHBwX3N0cnVjdCAqcHA7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWlmIChtaW5vciA+PSBQQVJQT1JUX01BWCkKIAkJcmV0dXJuIC1FTlhJTzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Jhdy5jIGIvZHJpdmVycy9jaGFyL3Jhdy5jCmluZGV4IGJiZmEwZTIuLjUwNWZjYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9yYXcuYworKysgYi9kcml2ZXJzL2NoYXIvcmF3LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTMsNiArNTQsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJnJhd19tdXRleCk7CiAKIAkvKgpAQCAtNzksNiArODEsNyBAQAogCQkJYmRldi0+YmRfaW5vZGUtPmlfbWFwcGluZzsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBiZGV2OwogCW11dGV4X3VubG9jaygmcmF3X211dGV4KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dDI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcnRjLmMgYi9kcml2ZXJzL2NoYXIvcnRjLmMKaW5kZXggNWY4MGE5ZC4uZmE5MmE4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3J0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9ydGMuYwpAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmNkLmg+CkBAIC02NzgsMTIgKzY3OSwxMyBAQAogCQlpZiAoYXJnICE9ICgxPDx0bXApKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKKwkJcnRjX2ZyZXEgPSBhcmc7CisKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCWlmIChocGV0X3NldF9wZXJpb2RpY19mcmVxKGFyZykpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gMDsKIAkJfQotCQlydGNfZnJlcSA9IGFyZzsKIAogCQl2YWwgPSBDTU9TX1JFQUQoUlRDX0ZSRVFfU0VMRUNUKSAmIDB4ZjA7CiAJCXZhbCB8PSAoMTYgLSB0bXApOwpAQCAtNzMzLDYgKzczNSw3IEBACiAgKiBuZWVkZWQgaGVyZS4gT3IgYW55d2hlcmUgZWxzZSBpbiB0aGlzIGRyaXZlci4gKi8KIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7CiAKIAlpZiAocnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKQpAQCAtNzQyLDEwICs3NDUsMTIgQEAKIAogCXJ0Y19pcnFfZGF0YSA9IDA7CiAJc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXRfYnVzeToKIAlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIC1FQlVTWTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3NjeDIwMF9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwppbmRleCA5OWU1MjcyLi4xZDkxMDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKQEAgLTUxLDYgKzUyLDcgQEAKIAl1bnNpZ25lZCBtID0gaW1pbm9yKGlub2RlKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSAmc2N4MjAwX2dwaW9fb3BzOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlpZiAobSA+PSBNQVhfUElOUykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Nuc2MuYyBiL2RyaXZlcnMvY2hhci9zbnNjLmMKaW5kZXggOGZlMDk5YS4uMGI3OTlhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Nuc2MuYworKysgYi9kcml2ZXJzL2NoYXIvc25zYy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9zbi9pby5oPgogI2luY2x1ZGUgPGFzbS9zbi9zbl9zYWwuaD4KICNpbmNsdWRlIDxhc20vc24vbW9kdWxlLmg+CkBAIC0xMDQsNiArMTA1LDcgQEAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBzZDsKIAogCS8qIGhvb2sgdGhpcyBzdWJjaGFubmVsIHVwIHRvIHRoZSBzeXN0ZW0gY29udHJvbGxlciBpbnRlcnJ1cHQgKi8KKwlsb2NrX2tlcm5lbCgpOwogCXJ2ID0gcmVxdWVzdF9pcnEoU0dJX1VBUlRfVkVDVE9SLCBzY2Rydl9pbnRlcnJ1cHQsCiAJCQkgSVJRRl9TSEFSRUQgfCBJUlFGX0RJU0FCTEVELAogCQkJIFNZU0NUTF9CQVNFTkFNRSwgc2QpOwpAQCAtMTExLDkgKzExMywxMCBAQAogCQlpYTY0X3NuX2lydHJfY2xvc2Uoc2QtPnNkX25hc2lkLCBzZC0+c2Rfc3ViY2gpOwogCQlrZnJlZShzZCk7CiAJCXByaW50aygiJXM6IGlycSByZXF1ZXN0IGZhaWxlZCAoJWQpXG4iLCBfX2Z1bmNfXywgcnYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQotCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvc29ueXBpLmMgYi9kcml2ZXJzL2NoYXIvc29ueXBpLmMKaW5kZXggNTg1MzNkZS4uODVlMGViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3NvbnlwaS5jCisrKyBiL2RyaXZlcnMvY2hhci9zb255cGkuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC05MDYsMTIgKzkwNywxNCBAQAogCiBzdGF0aWMgaW50IHNvbnlwaV9taXNjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZzb255cGlfZGV2aWNlLmxvY2spOwogCS8qIEZsdXNoIGlucHV0IHF1ZXVlIG9uIGZpcnN0IG9wZW4gKi8KIAlpZiAoIXNvbnlwaV9kZXZpY2Uub3Blbl9jb3VudCkKIAkJa2ZpZm9fcmVzZXQoc29ueXBpX2RldmljZS5maWZvKTsKIAlzb255cGlfZGV2aWNlLm9wZW5fY291bnQrKzsKIAltdXRleF91bmxvY2soJnNvbnlwaV9kZXZpY2UubG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdGIwMjE5LmMgYi9kcml2ZXJzL2NoYXIvdGIwMjE5LmMKaW5kZXggNGM0MzFjYi4uNjA2MmI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RiMDIxOS5jCisrKyBiL2RyaXZlcnMvY2hhci90YjAyMTkuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcmVib290Lmg+CkBAIC0yMzYsNiArMjM3LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgbWlub3I7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzd2l0Y2ggKG1pbm9yKSB7CiAJY2FzZSAwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RsY2xrLmMgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwppbmRleCAzNWU1ODAzLi44ZjIyODRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdGxjbGsuYworKysgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC0yMDQsMTEgKzIwNSwxNCBAQAogewogCWludCByZXN1bHQ7CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdXNlZmxhZ3MpKQotCQlyZXR1cm4gLUVCVVNZOworCWxvY2tfa2VybmVsKCk7CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJnVzZWZsYWdzKSkgeworCQlyZXN1bHQgPSAtRUJVU1k7CiAJCS8qIHRoaXMgbGVnYWN5IGRldmljZSBpcyBhbHdheXMgb25lIHBlciBzeXN0ZW0gYW5kIGl0IGRvZXNuJ3QKIAkJICoga25vdyBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGNvbmN1cnJlbnQgY2xpZW50cy4KIAkJICovCisJCWdvdG8gb3V0OworCX0KIAogCS8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBpbnRlcnJ1cHQgcGVuZGluZyB3aGlsZQogCSAqIGluaXRpYWxpc2luZyBpbnRlcnJ1cHQgaGFuZGxlciAqLwpAQCAtMjE4LDEzICsyMjIsMTQgQEAKIAkgKiB3ZSBjYW4ndCBzaGFyZSB0aGlzIElSUSAqLwogCXJlc3VsdCA9IHJlcXVlc3RfaXJxKHRlbGNsa19pbnRlcnJ1cHQsICZ0bGNsa19pbnRlcnJ1cHQsCiAJCQkgICAgIElSUUZfRElTQUJMRUQsICJ0ZWxjb19jbG9jayIsIHRsY2xrX2ludGVycnVwdCk7Ci0JaWYgKHJlc3VsdCA9PSAtRUJVU1kpIHsKKwlpZiAocmVzdWx0ID09IC1FQlVTWSkKIAkJcHJpbnRrKEtFUk5fRVJSICJ0bGNsazogSW50ZXJydXB0IGNhbid0IGJlIHJlc2VydmVkLlxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCWluYihUTENMS19SRUc2KTsJLyogQ2xlYXIgaW50ZXJydXB0IGV2ZW50cyAqLworCWVsc2UKKwkJaW5iKFRMQ0xLX1JFRzYpOwkvKiBDbGVhciBpbnRlcnJ1cHQgZXZlbnRzICovCiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGludCB0bGNsa19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLmMKaW5kZXggYTVkOGJjYi4uZTFmYzE5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYworKysgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAidHBtLmgiCiAKQEAgLTg5Nyw2ICs4OTgsNyBAQAogCWludCByYyA9IDAsIG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzdHJ1Y3QgdHBtX2NoaXAgKmNoaXAgPSBOVUxMLCAqcG9zOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmRyaXZlcl9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmdHBtX2NoaXBfbGlzdCwgbGlzdCkgewpAQCAtOTI2LDE2ICs5MjgsMTkgQEAKIAlpZiAoY2hpcC0+ZGF0YV9idWZmZXIgPT0gTlVMTCkgewogCQljaGlwLT5udW1fb3BlbnMtLTsKIAkJcHV0X2RldmljZShjaGlwLT5kZXYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCWF0b21pY19zZXQoJmNoaXAtPmRhdGFfcGVuZGluZywgMCk7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX291dDoKIAlzcGluX3VubG9jaygmZHJpdmVyX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0cG1fb3Blbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdHBtL3RwbV90aXMuYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCmluZGV4IDEzYTRiZGQuLmM3YTk3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCkBAIC02MjMsNiArNjIzLDcgQEAKIAl7IklGWDAxMDIiLCAwfSwJCS8qIEluZmluZW9uICovCiAJeyJCQ00wMTAxIiwgMH0sCQkvKiBCcm9hZGNvbSAqLwogCXsiTlNDMTIwMCIsIDB9LAkJLyogTmF0aW9uYWwgKi8KKwl7IklDTzAxMDIiLCAwfSwJCS8qIEludGVsICovCiAJLyogQWRkIG5ldyBoZXJlICovCiAJeyIiLCAwfSwJCS8qIFVzZXIgU3BlY2lmaWVkICovCiAJeyIiLCAwfQkJCS8qIFRlcm1pbmF0b3IgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci90dHlfaW8uYyBiL2RyaXZlcnMvY2hhci90dHlfaW8uYwppbmRleCBlOTRiZWUwLi4wNDdhMTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdHR5X2lvLmMKKysrIGIvZHJpdmVycy9jaGFyL3R0eV9pby5jCkBAIC0yNjY1LDcgKzI2NjUsNyBAQAogICoJCSAtPnNpZ2xvY2sgcHJvdGVjdHMgLT5zaWduYWwvLT5zaWdoYW5kCiAgKi8KIAotc3RhdGljIGludCB0dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3N0YXRpYyBpbnQgX190dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogCWludCBub2N0dHksIHJldHZhbDsKQEAgLTI3NzksNiArMjc3OSwxOSBAQAogCXJldHVybiAwOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNjYXJ5IGNvZGUgYXZvaWRhbmNlIHdyYXBwZXIgKi8KK3N0YXRpYyBpbnQgdHR5X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gX190dHlfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKKworCiAjaWZkZWYgQ09ORklHX1VOSVg5OF9QVFlTCiAvKioKICAqCXB0bXhfb3BlbgkJLQlvcGVuIGEgdW5peCA5OCBwdHkgbWFzdGVyCkBAIC0yNzkyLDcgKzI4MDUsNyBAQAogICoJCWFsbG9jYXRlZF9wdHlzX2xvY2sgaGFuZGxlcyB0aGUgbGlzdCBvZiBmcmVlIHB0eSBudW1iZXJzCiAgKi8KIAotc3RhdGljIGludCBwdG14X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCitzdGF0aWMgaW50IF9fcHRteF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CiAJaW50IHJldHZhbDsKQEAgLTI4MzEsNiArMjg0NCwxNiBAQAogCWRldnB0c19raWxsX2luZGV4KGluZGV4KTsKIAlyZXR1cm4gcmV0dmFsOwogfQorCitzdGF0aWMgaW50IHB0bXhfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBfX3B0bXhfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CiAjZW5kaWYKIAogLyoqCkBAIC0yODg2LDE1ICsyOTA5LDE2IEBACiB7CiAJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXR2YWw7CisJaW50IHJldHZhbCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXR0eSA9IChzdHJ1Y3QgdHR5X3N0cnVjdCAqKWZpbHAtPnByaXZhdGVfZGF0YTsKIAlpZiAodHR5X3BhcmFub2lhX2NoZWNrKHR0eSwgZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgInR0eV9mYXN5bmMiKSkKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCiAJcmV0dmFsID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZ0dHktPmZhc3luYyk7CiAJaWYgKHJldHZhbCA8PSAwKQotCQlyZXR1cm4gcmV0dmFsOworCQlnb3RvIG91dDsKIAogCWlmIChvbikgewogCQllbnVtIHBpZF90eXBlIHR5cGU7CkBAIC0yOTEyLDEyICsyOTM2LDE1IEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnR0eS0+Y3RybF9sb2NrLCBmbGFncyk7CiAJCXJldHZhbCA9IF9fZl9zZXRvd24oZmlscCwgcGlkLCB0eXBlLCAwKTsKIAkJaWYgKHJldHZhbCkKLQkJCXJldHVybiByZXR2YWw7CisJCQlnb3RvIG91dDsKIAl9IGVsc2UgewogCQlpZiAoIXR0eS0+ZmFzeW5jICYmICF3YWl0cXVldWVfYWN0aXZlKCZ0dHktPnJlYWRfd2FpdCkpCiAJCQl0dHktPm1pbmltdW1fdG9fd2FrZSA9IE5fVFRZX0JVRl9TSVpFOwogCX0KLQlyZXR1cm4gMDsKKwlyZXR2YWwgPSAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiAvKioKQEAgLTMzMjIsNyArMzM0OSw3IEBACiAJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKGR1cmF0aW9uKTsKIAl0dHktPm9wcy0+YnJlYWtfY3RsKHR0eSwgMCk7CiAJdHR5X3dyaXRlX3VubG9jayh0dHkpOwotCWlmICghc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQogCQlyZXR1cm4gLUVJTlRSOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3R0eV9pb2N0bC5jIGIvZHJpdmVycy9jaGFyL3R0eV9pb2N0bC5jCmluZGV4IGIxYTc1N2EuLjhmODExMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90dHlfaW9jdGwuYworKysgYi9kcml2ZXJzL2NoYXIvdHR5X2lvY3RsLmMKQEAgLTk4MSwxNiArOTgxLDkgQEAKIGludCBuX3R0eV9pb2N0bChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewotCXN0cnVjdCB0dHlfc3RydWN0ICpyZWFsX3R0eTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXR2YWw7CiAKLQlpZiAodHR5LT5kcml2ZXItPnR5cGUgPT0gVFRZX0RSSVZFUl9UWVBFX1BUWSAmJgotCSAgICB0dHktPmRyaXZlci0+c3VidHlwZSA9PSBQVFlfVFlQRV9NQVNURVIpCi0JCXJlYWxfdHR5ID0gdHR5LT5saW5rOwotCWVsc2UKLQkJcmVhbF90dHkgPSB0dHk7Ci0KIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgVENYT05DOgogCQlyZXR2YWwgPSB0dHlfY2hlY2tfY2hhbmdlKHR0eSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdmNfc2NyZWVuLmMgYi9kcml2ZXJzL2NoYXIvdmNfc2NyZWVuLmMKaW5kZXggODNhZWVkZC4uZWViZmFkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3ZjX3NjcmVlbi5jCisrKyBiL2RyaXZlcnMvY2hhci92Y19zY3JlZW4uYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tiZF9rZXJuLmg+CiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KQEAgLTQ2MCw5ICs0NjEsMTMgQEAKIHZjc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXVuc2lnbmVkIGludCBjdXJyY29ucyA9IGltaW5vcihpbm9kZSkgJiAxMjc7CisJaW50IHJldCA9IDA7CisJCisJbG9ja19rZXJuZWwoKTsKIAlpZihjdXJyY29ucyAmJiAhdmNfY29uc19hbGxvY2F0ZWQoY3VycmNvbnMtMSkpCi0JCXJldHVybiAtRU5YSU87Ci0JcmV0dXJuIDA7CisJCXJldCA9IC1FTlhJTzsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmNzX2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdmlvdGFwZS5jIGIvZHJpdmVycy9jaGFyL3Zpb3RhcGUuYwppbmRleCBjMzlkZGFmLi45NzdmN2QzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdmlvdGFwZS5jCisrKyBiL2RyaXZlcnMvY2hhci92aW90YXBlLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvY3Rscy5oPgpAQCAtNjg3LDYgKzY4OCw3IEBACiAJaWYgKG9wID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlnZXRfZGV2X2luZm8oZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgJmRldmkpOwogCiAJLyogTm90ZTogV2UgY3VycmVudGx5IG9ubHkgc3VwcG9ydCBvbmUgbW9kZSEgKi8KQEAgLTcxNyw2ICs3MTksNyBAQAogCiBmcmVlX29wOgogCWZyZWVfb3Bfc3RydWN0KG9wKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3ZyNDF4eF9naXUuYyBiL2RyaXZlcnMvY2hhci92cjQxeHhfZ2l1LmMKaW5kZXggZTVlZDA5MS4uZmZlOWI0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3ZyNDF4eF9naXUuYworKysgYi9kcml2ZXJzL2NoYXIvdnI0MXh4X2dpdS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKQEAgLTU0Nyw2ICs1NDgsNyBAQAogewogCXVuc2lnbmVkIGludCBwaW47CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXBpbiA9IGltaW5vcihpbm9kZSk7CiAJaWYgKHBpbiA+PSBnaXVfbnJfcGlucykKIAkJcmV0dXJuIC1FQkFERjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci94aWxpbnhfaHdpY2FwL3hpbGlueF9od2ljYXAuYyBiL2RyaXZlcnMvY2hhci94aWxpbnhfaHdpY2FwL3hpbGlueF9od2ljYXAuYwppbmRleCAzZWRmMWZjLi4xZTFiODFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIveGlsaW54X2h3aWNhcC94aWxpbnhfaHdpY2FwLmMKKysrIGIvZHJpdmVycy9jaGFyL3hpbGlueF9od2ljYXAveGlsaW54X2h3aWNhcC5jCkBAIC04NSw2ICs4NSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CkBAIC01MDQsMTEgKzUwNSwxMiBAQAogCXN0cnVjdCBod2ljYXBfZHJ2ZGF0YSAqZHJ2ZGF0YTsKIAlpbnQgc3RhdHVzOwogCisJbG9ja19rZXJuZWwoKTsKIAlkcnZkYXRhID0gY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsIHN0cnVjdCBod2ljYXBfZHJ2ZGF0YSwgY2Rldik7CiAKIAlzdGF0dXMgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRydmRhdGEtPnNlbSk7CiAJaWYgKHN0YXR1cykKLQkJcmV0dXJuIHN0YXR1czsKKwkJZ290byBvdXQ7CiAKIAlpZiAoZHJ2ZGF0YS0+aXNfb3BlbikgewogCQlzdGF0dXMgPSAtRUJVU1k7CkBAIC01MjgsNiArNTMwLDggQEAKIAogIGVycm9yOgogCW11dGV4X3VubG9jaygmZHJ2ZGF0YS0+c2VtKTsKKyBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKaW5kZXggODVlMmJhNy4uYmY0ODMwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nvbm5lY3Rvci5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAKICNpbmNsdWRlIDxuZXQvc29jay5oPgogCkBAIC00MDMsNiArNDA1LDQwIEBACiAJbXV0ZXhfdW5sb2NrKCZub3RpZnlfbG9jayk7CiB9CiAKK3N0YXRpYyBpbnQgY25fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgY25fcXVldWVfZGV2ICpkZXYgPSBjZGV2LmNiZGV2OworCXN0cnVjdCBjbl9jYWxsYmFja19lbnRyeSAqY2JxOworCisJc2VxX3ByaW50ZihtLCAiTmFtZSAgICAgICAgICAgIElEXG4iKTsKKworCXNwaW5fbG9ja19iaCgmZGV2LT5xdWV1ZV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2JxLCAmZGV2LT5xdWV1ZV9saXN0LCBjYWxsYmFja19lbnRyeSkgeworCQlzZXFfcHJpbnRmKG0sICIlLTE1cyAldToldVxuIiwKKwkJCSAgIGNicS0+aWQubmFtZSwKKwkJCSAgIGNicS0+aWQuaWQuaWR4LAorCQkJICAgY2JxLT5pZC5pZC52YWwpOworCX0KKworCXNwaW5fdW5sb2NrX2JoKCZkZXYtPnF1ZXVlX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY25fcHJvY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBjbl9wcm9jX3Nob3csIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBjbl9maWxlX29wcyA9IHsKKwkub3duZXIgICA9IFRISVNfTU9EVUxFLAorCS5vcGVuICAgID0gY25fcHJvY19vcGVuLAorCS5yZWFkICAgID0gc2VxX3JlYWQsCisJLmxsc2VlayAgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZQorfTsKKwogc3RhdGljIGludCBfX2RldmluaXQgY25faW5pdCh2b2lkKQogewogCXN0cnVjdCBjbl9kZXYgKmRldiA9ICZjZGV2OwpAQCAtNDM0LDYgKzQ3MCw4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCXByb2NfbmV0X2ZvcHNfY3JlYXRlKCZpbml0X25ldCwgImNvbm5lY3RvciIsIFNfSVJVR08sICZjbl9maWxlX29wcyk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDQzLDYgKzQ4MSw4IEBACiAKIAljbl9hbHJlYWR5X2luaXRpYWxpemVkID0gMDsKIAorCXByb2NfbmV0X3JlbW92ZSgmaW5pdF9uZXQsICJjb25uZWN0b3IiKTsKKwogCWNuX2RlbF9jYWxsYmFjaygmZGV2LT5pZCk7CiAJY25fcXVldWVfZnJlZV9kZXYoZGV2LT5jYmRldik7CiAJbmV0bGlua19rZXJuZWxfcmVsZWFzZShkZXYtPm5scyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jIGIvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEuYwppbmRleCA0ZTA3ZDFmLi4xZDQxNDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCisrKyBiL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLmMKQEAgLTQxMiw3ICs0MTIsNyBAQAogCQkJCWludCByZXQ7CiAKIAkJCQltdXRleF91bmxvY2soJmNwdWZyZXFfZ292ZXJub3JfbXV0ZXgpOwotCQkJCXJldCA9IHJlcXVlc3RfbW9kdWxlKG5hbWUpOworCQkJCXJldCA9IHJlcXVlc3RfbW9kdWxlKCIlcyIsIG5hbWUpOwogCQkJCW11dGV4X2xvY2soJmNwdWZyZXFfZ292ZXJub3JfbXV0ZXgpOwogCiAJCQkJaWYgKHJldCA9PSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVpZGxlL2NwdWlkbGUuYyBiL2RyaXZlcnMvY3B1aWRsZS9jcHVpZGxlLmMKaW5kZXggZmM1NTVhOS4uMjM1NTRiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcHVpZGxlL2NwdWlkbGUuYworKysgYi9kcml2ZXJzL2NwdWlkbGUvY3B1aWRsZS5jCkBAIC0zOCw2ICszOCw4IEBACiBzdGF0aWMgdm9pZCBjcHVpZGxlX2tpY2tfY3B1cyh2b2lkKSB7fQogI2VuZGlmCiAKK3N0YXRpYyBpbnQgX19jcHVpZGxlX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgY3B1aWRsZV9kZXZpY2UgKmRldik7CisKIC8qKgogICogY3B1aWRsZV9pZGxlX2NhbGwgLSB0aGUgbWFpbiBpZGxlIGxvb3AKICAqCkBAIC0xMzgsNiArMTQwLDEyIEBACiAJaWYgKCFkZXYtPnN0YXRlX2NvdW50KQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWlmIChkZXYtPnJlZ2lzdGVyZWQgPT0gMCkgeworCQlyZXQgPSBfX2NwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKGRldik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwogCWlmICgocmV0ID0gY3B1aWRsZV9hZGRfc3RhdGVfc3lzZnMoZGV2KSkpCiAJCXJldHVybiByZXQ7CiAKQEAgLTIzMiwxMCArMjQwLDEzIEBACiAjZW5kaWYgLyogQ09ORklHX0FSQ0hfSEFTX0NQVV9SRUxBWCAqLwogCiAvKioKLSAqIGNwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlIC0gcmVnaXN0ZXJzIGEgQ1BVJ3MgaWRsZSBQTSBmZWF0dXJlCisgKiBfX2NwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlIC0gaW50ZXJuYWwgcmVnaXN0ZXIgZnVuY3Rpb24gY2FsbGVkIGJlZm9yZSByZWdpc3RlcgorICogYW5kIGVuYWJsZSByb3V0aW5lcwogICogQGRldjogdGhlIGNwdQorICoKKyAqIGNwdWlkbGVfbG9jayBtdXRleCBtdXN0IGJlIGhlbGQgYmVmb3JlIHRoaXMgaXMgY2FsbGVkCiAgKi8KLWludCBjcHVpZGxlX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgY3B1aWRsZV9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19jcHVpZGxlX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgY3B1aWRsZV9kZXZpY2UgKmRldikKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBzeXNfZGV2aWNlICpzeXNfZGV2ID0gZ2V0X2NwdV9zeXNkZXYoKHVuc2lnbmVkIGxvbmcpZGV2LT5jcHUpOwpAQCAtMjQ3LDE4ICsyNTgsMzQgQEAKIAogCWluaXRfY29tcGxldGlvbigmZGV2LT5rb2JqX3VucmVnaXN0ZXIpOwogCi0JbXV0ZXhfbG9jaygmY3B1aWRsZV9sb2NrKTsKLQogCXBvbGxfaWRsZV9pbml0KGRldik7CiAKIAlwZXJfY3B1KGNwdWlkbGVfZGV2aWNlcywgZGV2LT5jcHUpID0gZGV2OwogCWxpc3RfYWRkKCZkZXYtPmRldmljZV9saXN0LCAmY3B1aWRsZV9kZXRlY3RlZF9kZXZpY2VzKTsKIAlpZiAoKHJldCA9IGNwdWlkbGVfYWRkX3N5c2ZzKHN5c19kZXYpKSkgewotCQltdXRleF91bmxvY2soJmNwdWlkbGVfbG9jayk7CiAJCW1vZHVsZV9wdXQoY3B1aWRsZV9jdXJyX2RyaXZlci0+b3duZXIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAorCWRldi0+cmVnaXN0ZXJlZCA9IDE7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UgLSByZWdpc3RlcnMgYSBDUFUncyBpZGxlIFBNIGZlYXR1cmUKKyAqIEBkZXY6IHRoZSBjcHUKKyAqLworaW50IGNwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBjcHVpZGxlX2RldmljZSAqZGV2KQoreworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZjcHVpZGxlX2xvY2spOworCisJaWYgKChyZXQgPSBfX2NwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKGRldikpKSB7CisJCW11dGV4X3VubG9jaygmY3B1aWRsZV9sb2NrKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAljcHVpZGxlX2VuYWJsZV9kZXZpY2UoZGV2KTsKIAljcHVpZGxlX2luc3RhbGxfaWRsZV9oYW5kbGVyKCk7CiAKQEAgLTI3OCw2ICszMDUsOSBAQAogewogCXN0cnVjdCBzeXNfZGV2aWNlICpzeXNfZGV2ID0gZ2V0X2NwdV9zeXNkZXYoKHVuc2lnbmVkIGxvbmcpZGV2LT5jcHUpOwogCisJaWYgKGRldi0+cmVnaXN0ZXJlZCA9PSAwKQorCQlyZXR1cm47CisKIAljcHVpZGxlX3BhdXNlX2FuZF9sb2NrKCk7CiAKIAljcHVpZGxlX2Rpc2FibGVfZGV2aWNlKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9LY29uZmlnIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZwppbmRleCA0M2I3MWI2Li5lNTIyMTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9LY29uZmlnCisrKyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKQEAgLTE3NCw0ICsxNzQsMzAgQEAKIAkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCiAJICBvbiB0aGUgSElGTiA3OTV4IGNyeXB0byBhZGFwdGVycy4KIAorY29uZmlnIENSWVBUT19ERVZfVEFMSVRPUworCXRyaXN0YXRlICJUYWxpdG9zIEZyZWVzY2FsZSBTZWN1cml0eSBFbmdpbmUgKFNFQykiCisJc2VsZWN0IENSWVBUT19BTEdBUEkKKwlzZWxlY3QgQ1JZUFRPX0FVVEhFTkMKKwlzZWxlY3QgSFdfUkFORE9NCisJZGVwZW5kcyBvbiBGU0xfU09DCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIHRvIHVzZSB0aGUgRnJlZXNjYWxlIFNlY3VyaXR5IEVuZ2luZSAoU0VDKQorCSAgdG8gb2ZmbG9hZCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSBjb21wdXRhdGlvbi4KKworCSAgVGhlIEZyZWVzY2FsZSBTRUMgaXMgcHJlc2VudCBvbiBQb3dlclFVSUNDICdFJyBwcm9jZXNzb3JzLCBzdWNoCisJICBhcyB0aGUgTVBDODM0OUUgYW5kIE1QQzg1NDhFLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCB0YWxpdG9zLgorCitjb25maWcgQ1JZUFRPX0RFVl9JWFA0WFgKKwl0cmlzdGF0ZSAiRHJpdmVyIGZvciBJWFA0eHggY3J5cHRvIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiIKKwlkZXBlbmRzIG9uIEFSQ0hfSVhQNFhYCisJc2VsZWN0IENSWVBUT19ERVMKKwlzZWxlY3QgQ1JZUFRPX0FMR0FQSQorCXNlbGVjdCBDUllQVE9fQVVUSEVOQworCXNlbGVjdCBDUllQVE9fQkxLQ0lQSEVSCisJaGVscAorCSAgRHJpdmVyIGZvciB0aGUgSVhQNHh4IE5QRSBjcnlwdG8gZW5naW5lLgorCiBlbmRpZiAjIENSWVBUT19IVwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vTWFrZWZpbGUgYi9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQppbmRleCBjMDMyN2YwLi43MzU1N2IyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQpAQCAtMiwzICsyLDUgQEAKIG9iai0kKENPTkZJR19DUllQVE9fREVWX1BBRExPQ0tfU0hBKSArPSBwYWRsb2NrLXNoYS5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9HRU9ERSkgKz0gZ2VvZGUtYWVzLm8KIG9iai0kKENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCkgKz0gaGlmbl83OTV4Lm8KK29iai0kKENPTkZJR19DUllQVE9fREVWX1RBTElUT1MpICs9IHRhbGl0b3Mubworb2JqLSQoQ09ORklHX0NSWVBUT19ERVZfSVhQNFhYKSArPSBpeHA0eHhfY3J5cHRvLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2hpZm5fNzk1eC5jIGIvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKaW5kZXggODFmM2Y5NS4uNGQyMmIyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKKysrIGIvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgogI2luY2x1ZGUgPGxpbnV4L2h3X3JhbmRvbS5oPgogI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CkBAIC0zNjksNyArMzY4LDkgQEAKICNkZWZpbmUJSElGTl9EX0RTVF9SU0laRQkJODAqNAogI2RlZmluZQlISUZOX0RfUkVTX1JTSVpFCQkyNCo0CiAKLSNkZWZpbmUgSElGTl9RVUVVRV9MRU5HVEgJCUhJRk5fRF9DTURfUlNJWkUtNQorI2RlZmluZSBISUZOX0RfRFNUX0RBTElHTgkJNAorCisjZGVmaW5lIEhJRk5fUVVFVUVfTEVOR1RICQlISUZOX0RfQ01EX1JTSVpFLTEKIAogI2RlZmluZSBBRVNfTUlOX0tFWV9TSVpFCQkxNgogI2RlZmluZSBBRVNfTUFYX0tFWV9TSVpFCQkzMgpAQCAtNTM1LDEwICs1MzYsMTAgQEAKICAqLwogc3RydWN0IGhpZm5fbWFjX2NvbW1hbmQKIHsKLQl2b2xhdGlsZSB1MTYgCQltYXNrczsKLQl2b2xhdGlsZSB1MTYgCQloZWFkZXJfc2tpcDsKLQl2b2xhdGlsZSB1MTYgCQlzb3VyY2VfY291bnQ7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAltYXNrczsKKwl2b2xhdGlsZSBfX2xlMTYgCWhlYWRlcl9za2lwOworCXZvbGF0aWxlIF9fbGUxNiAJc291cmNlX2NvdW50OworCXZvbGF0aWxlIF9fbGUxNiAJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fTUFDX0NNRF9BTEdfTUFTSwkJMHgwMDAxCkBAIC01NjQsMTAgKzU2NSwxMCBAQAogCiBzdHJ1Y3QgaGlmbl9jb21wX2NvbW1hbmQKIHsKLQl2b2xhdGlsZSB1MTYgCQltYXNrczsKLQl2b2xhdGlsZSB1MTYgCQloZWFkZXJfc2tpcDsKLQl2b2xhdGlsZSB1MTYgCQlzb3VyY2VfY291bnQ7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAltYXNrczsKKwl2b2xhdGlsZSBfX2xlMTYgCWhlYWRlcl9za2lwOworCXZvbGF0aWxlIF9fbGUxNiAJc291cmNlX2NvdW50OworCXZvbGF0aWxlIF9fbGUxNiAJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fQ09NUF9DTURfU1JDTEVOX00JCTB4YzAwMApAQCAtNTgzLDEwICs1ODQsMTAgQEAKIAogc3RydWN0IGhpZm5fYmFzZV9yZXN1bHQKIHsKLQl2b2xhdGlsZSB1MTYgCQlmbGFnczsKLQl2b2xhdGlsZSB1MTYgCQlzZXNzaW9uOwotCXZvbGF0aWxlIHUxNiAJCXNyY19jbnQ7CQkvKiAxNTowIG9mIHNvdXJjZSBjb3VudCAqLwotCXZvbGF0aWxlIHUxNiAJCWRzdF9jbnQ7CQkvKiAxNTowIG9mIGRlc3QgY291bnQgKi8KKwl2b2xhdGlsZSBfX2xlMTYgCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNiAJc2Vzc2lvbjsKKwl2b2xhdGlsZSBfX2xlMTYgCXNyY19jbnQ7CQkvKiAxNTowIG9mIHNvdXJjZSBjb3VudCAqLworCXZvbGF0aWxlIF9fbGUxNiAJZHN0X2NudDsJCS8qIDE1OjAgb2YgZGVzdCBjb3VudCAqLwogfTsKIAogI2RlZmluZQlISUZOX0JBU0VfUkVTX0RTVE9WRVJSVU4JMHgwMjAwCS8qIGRlc3RpbmF0aW9uIG92ZXJydW4gKi8KQEAgLTU5Nyw4ICs1OTgsOCBAQAogCiBzdHJ1Y3QgaGlmbl9jb21wX3Jlc3VsdAogewotCXZvbGF0aWxlIHUxNiAJCWZsYWdzOwotCXZvbGF0aWxlIHUxNiAJCWNyYzsKKwl2b2xhdGlsZSBfX2xlMTYJCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNgkJY3JjOwogfTsKIAogI2RlZmluZQlISUZOX0NPTVBfUkVTX0xDQl9NCQkweGZmMDAJLyogbG9uZ2l0dWRpbmFsIGNoZWNrIGJ5dGUgKi8KQEAgLTYwOSw4ICs2MTAsOCBAQAogCiBzdHJ1Y3QgaGlmbl9tYWNfcmVzdWx0CiB7Ci0Jdm9sYXRpbGUgdTE2IAkJZmxhZ3M7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAlmbGFnczsKKwl2b2xhdGlsZSBfX2xlMTYgCXJlc2VydmVkOwogCS8qIGZvbGxvd2VkIGJ5IDAsIDYsIDgsIG9yIDEwIHUxNidzIG9mIHRoZSBNQUMsIHRoZW4gY3J5cHQgKi8KIH07CiAKQEAgLTYxOSw4ICs2MjAsOCBAQAogCiBzdHJ1Y3QgaGlmbl9jcnlwdF9yZXN1bHQKIHsKLQl2b2xhdGlsZSB1MTYgCQlmbGFnczsKLQl2b2xhdGlsZSB1MTYgCQlyZXNlcnZlZDsKKwl2b2xhdGlsZSBfX2xlMTYJCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNgkJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fQ1JZUFRfUkVTX1NSQ19OT1RaRVJPCTB4MDAwMQkvKiBzb3VyY2UgZXhwaXJlZCAqLwpAQCAtNjg2LDEyICs2ODcsMTIgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIGhpZm5fd3JpdGVfMChzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbCkKIHsKLQl3cml0ZWwodmFsLCBkZXYtPmJhclswXSArIHJlZyk7CisJd3JpdGVsKChfX2ZvcmNlIHUzMiljcHVfdG9fbGUzMih2YWwpLCBkZXYtPmJhclswXSArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBoaWZuX3dyaXRlXzEoc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiB2YWwpCiB7Ci0Jd3JpdGVsKHZhbCwgZGV2LT5iYXJbMV0gKyByZWcpOworCXdyaXRlbCgoX19mb3JjZSB1MzIpY3B1X3RvX2xlMzIodmFsKSwgZGV2LT5iYXJbMV0gKyByZWcpOwogfQogCiBzdGF0aWMgdm9pZCBoaWZuX3dhaXRfcHVjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2KQpAQCAtODk0LDcgKzg5NSw3IEBACiAJY2hhciAqb2ZmdGJsID0gTlVMTDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBzaXplb2YocGNpMmlkKS9zaXplb2YocGNpMmlkWzBdKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGNpMmlkKTsgaSsrKSB7CiAJCWlmIChwY2kyaWRbaV0ucGNpX3ZlbmRvciA9PSBkZXYtPnBkZXYtPnZlbmRvciAmJgogCQkJCXBjaTJpZFtpXS5wY2lfcHJvZCA9PSBkZXYtPnBkZXYtPmRldmljZSkgewogCQkJb2ZmdGJsID0gcGNpMmlkW2ldLmNhcmRfaWQ7CkBAIC0xMDM3LDE0ICsxMDM4LDE0IEBACiAJaGlmbl93cml0ZV8wKGRldiwgSElGTl8wX1BVSUVSLCBISUZOX1BVSUVSX0RTVE9WRVIpOwogCiAJLyogd3JpdGUgYWxsIDQgcmluZyBhZGRyZXNzIHJlZ2lzdGVycyAqLwotCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1JBUiwgX19jcHVfdG9fbGUzMihkcHRyICsKLQkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGNtZHJbMF0pKSk7Ci0JaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9TUkFSLCBfX2NwdV90b19sZTMyKGRwdHIgKwotCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgc3JjclswXSkpKTsKLQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0RSQVIsIF9fY3B1X3RvX2xlMzIoZHB0ciArCi0JCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBkc3RyWzBdKSkpOwotCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfUlJBUiwgX19jcHVfdG9fbGUzMihkcHRyICsKLQkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIHJlc3JbMF0pKSk7CisJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DUkFSLCBkcHRyICsKKwkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGNtZHJbMF0pKTsKKwloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX1NSQVIsIGRwdHIgKworCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgc3JjclswXSkpOworCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfRFJBUiwgZHB0ciArCisJCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBkc3RyWzBdKSk7CisJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9SUkFSLCBkcHRyICsKKwkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIHJlc3JbMF0pKTsKIAogCW1kZWxheSgyKTsKICNpZiAwCkBAIC0xMTY2LDEwOSArMTE2NywxNSBAQAogCXJldHVybiBjbWRfbGVuOwogfQogCi1zdGF0aWMgaW50IGhpZm5fc2V0dXBfc3JjX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAotCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKLQlpbnQgaWR4OwotCWRtYV9hZGRyX3QgYWRkcjsKLQotCWFkZHIgPSBwY2lfbWFwX3BhZ2UoZGV2LT5wZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCi0JaWR4ID0gZG1hLT5zcmNpOwotCi0JZG1hLT5zcmNyW2lkeF0ucCA9IF9fY3B1X3RvX2xlMzIoYWRkcik7Ci0JZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoc2l6ZSkgfCBISUZOX0RfVkFMSUQgfAotCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX05PSU5WQUxJRCB8IEhJRk5fRF9MQVNUOwotCi0JaWYgKCsraWR4ID09IEhJRk5fRF9TUkNfUlNJWkUpIHsKLQkJZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKLQkJCQlISUZOX0RfSlVNUCB8Ci0JCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOwotCQlpZHggPSAwOwotCX0KLQotCWRtYS0+c3JjaSA9IGlkeDsKLQlkbWEtPnNyY3UrKzsKLQotCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfU1JDX0JVU1kpKSB7Ci0JCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9TX0NUUkxfRU5BKTsKLQkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfU1JDX0JVU1k7Ci0JfQotCi0JcmV0dXJuIHNpemU7Ci19Ci0KLXN0YXRpYyB2b2lkIGhpZm5fc2V0dXBfcmVzX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7Ci0KLQlkbWEtPnJlc3JbZG1hLT5yZXNpXS5sID0gX19jcHVfdG9fbGUzMihISUZOX1VTRURfUkVTVUxUIHwKLQkJCUhJRk5fRF9WQUxJRCB8IEhJRk5fRF9MQVNUKTsKLQkvKgotCSAqIGRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fTUFYX1JFU1VMVCB8IEhJRk5fRF9WQUxJRCB8Ci0JICoJCQkJCUhJRk5fRF9MQVNUIHwgSElGTl9EX05PSU5WQUxJRCk7Ci0JICovCi0KLQlpZiAoKytkbWEtPnJlc2kgPT0gSElGTl9EX1JFU19SU0laRSkgewotCQlkbWEtPnJlc3JbSElGTl9EX1JFU19SU0laRV0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKLQkJCQlISUZOX0RfSlVNUCB8IEhJRk5fRF9NQVNLRE9ORUlSUSB8IEhJRk5fRF9MQVNUKTsKLQkJZG1hLT5yZXNpID0gMDsKLQl9Ci0KLQlkbWEtPnJlc3UrKzsKLQotCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfUkVTX0JVU1kpKSB7Ci0JCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9SX0NUUkxfRU5BKTsKLQkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfUkVTX0JVU1k7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBoaWZuX3NldHVwX2RzdF9kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkJdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBzaXplKQotewotCXN0cnVjdCBoaWZuX2RtYSAqZG1hID0gKHN0cnVjdCBoaWZuX2RtYSAqKWRldi0+ZGVzY192aXJ0OwotCWludCBpZHg7Ci0JZG1hX2FkZHJfdCBhZGRyOwotCi0JYWRkciA9IHBjaV9tYXBfcGFnZShkZXYtPnBkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgUENJX0RNQV9GUk9NREVWSUNFKTsKLQotCWlkeCA9IGRtYS0+ZHN0aTsKLQlkbWEtPmRzdHJbaWR4XS5wID0gX19jcHVfdG9fbGUzMihhZGRyKTsKLQlkbWEtPmRzdHJbaWR4XS5sID0gX19jcHVfdG9fbGUzMihzaXplIHwJSElGTl9EX1ZBTElEIHwKLQkJCUhJRk5fRF9NQVNLRE9ORUlSUSB8IEhJRk5fRF9OT0lOVkFMSUQgfCBISUZOX0RfTEFTVCk7Ci0KLQlpZiAoKytpZHggPT0gSElGTl9EX0RTVF9SU0laRSkgewotCQlkbWEtPmRzdHJbaWR4XS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAotCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwKLQkJCQlISUZOX0RfTEFTVCB8IEhJRk5fRF9OT0lOVkFMSUQpOwotCQlpZHggPSAwOwotCX0KLQlkbWEtPmRzdGkgPSBpZHg7Ci0JZG1hLT5kc3R1Kys7Ci0KLQlpZiAoIShkZXYtPmZsYWdzICYgSElGTl9GTEFHX0RTVF9CVVNZKSkgewotCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfRF9DVFJMX0VOQSk7Ci0JCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0RTVF9CVVNZOwotCX0KLX0KLQotc3RhdGljIGludCBoaWZuX3NldHVwX2RtYShzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnNwYWdlLCB1bnNpZ25lZCBpbnQgc29mZiwKLQkJc3RydWN0IHBhZ2UgKmRwYWdlLCB1bnNpZ25lZCBpbnQgZG9mZiwgdW5zaWduZWQgaW50IG5ieXRlcywgdm9pZCAqcHJpdiwKLQkJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4KQorc3RhdGljIGludCBoaWZuX3NldHVwX2NtZF9kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LAorCQlzdHJ1Y3QgaGlmbl9jb250ZXh0ICpjdHgsIHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBuYnl0ZXMpCiB7CiAJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CiAJaW50IGNtZF9sZW4sIHNhX2lkeDsKIAl1OCAqYnVmLCAqYnVmX3BvczsKIAl1MTYgbWFzazsKIAotCWRwcmludGsoIiVzOiBzcGFnZTogJXAsIHNvZmZzZXQ6ICV1LCBkcGFnZTogJXAsIGRvZmZzZXQ6ICV1LCBuYnl0ZXM6ICV1LCBwcml2OiAlcCwgY3R4OiAlcC5cbiIsCi0JCQlkZXYtPm5hbWUsIHNwYWdlLCBzb2ZmLCBkcGFnZSwgZG9mZiwgbmJ5dGVzLCBwcml2LCBjdHgpOwotCi0Jc2FfaWR4ID0gZG1hLT5yZXNpOwotCi0JaGlmbl9zZXR1cF9zcmNfZGVzYyhkZXYsIHNwYWdlLCBzb2ZmLCBuYnl0ZXMpOwotCisJc2FfaWR4ID0gZG1hLT5jbWRpOwogCWJ1Zl9wb3MgPSBidWYgPSBkbWEtPmNvbW1hbmRfYnVmc1tkbWEtPmNtZGldOwogCiAJbWFzayA9IDA7CkBAIC0xMzcwLDE2ICsxMjc3LDExMyBAQAogCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfQ19DVFJMX0VOQSk7CiAJCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0NNRF9CVVNZOwogCX0KLQotCWhpZm5fc2V0dXBfZHN0X2Rlc2MoZGV2LCBkcGFnZSwgZG9mZiwgbmJ5dGVzKTsKLQloaWZuX3NldHVwX3Jlc19kZXNjKGRldik7Ci0KIAlyZXR1cm4gMDsKIAogZXJyX291dDoKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAorc3RhdGljIGludCBoaWZuX3NldHVwX3NyY19kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJdW5zaWduZWQgaW50IG9mZnNldCwgdW5zaWduZWQgaW50IHNpemUpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisJaW50IGlkeDsKKwlkbWFfYWRkcl90IGFkZHI7CisKKwlhZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBQQ0lfRE1BX1RPREVWSUNFKTsKKworCWlkeCA9IGRtYS0+c3JjaTsKKworCWRtYS0+c3JjcltpZHhdLnAgPSBfX2NwdV90b19sZTMyKGFkZHIpOworCWRtYS0+c3JjcltpZHhdLmwgPSBfX2NwdV90b19sZTMyKHNpemUgfCBISUZOX0RfVkFMSUQgfAorCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCisJaWYgKCsraWR4ID09IEhJRk5fRF9TUkNfUlNJWkUpIHsKKwkJZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKKwkJCQlISUZOX0RfSlVNUCB8CisJCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCQlpZHggPSAwOworCX0KKworCWRtYS0+c3JjaSA9IGlkeDsKKwlkbWEtPnNyY3UrKzsKKworCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfU1JDX0JVU1kpKSB7CisJCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9TX0NUUkxfRU5BKTsKKwkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfU1JDX0JVU1k7CisJfQorCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyB2b2lkIGhpZm5fc2V0dXBfcmVzX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisKKwlkbWEtPnJlc3JbZG1hLT5yZXNpXS5sID0gX19jcHVfdG9fbGUzMihISUZOX1VTRURfUkVTVUxUIHwKKwkJCUhJRk5fRF9WQUxJRCB8IEhJRk5fRF9MQVNUKTsKKwkvKgorCSAqIGRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fTUFYX1JFU1VMVCB8IEhJRk5fRF9WQUxJRCB8CisJICoJCQkJCUhJRk5fRF9MQVNUKTsKKwkgKi8KKworCWlmICgrK2RtYS0+cmVzaSA9PSBISUZOX0RfUkVTX1JTSVpFKSB7CisJCWRtYS0+cmVzcltISUZOX0RfUkVTX1JTSVpFXS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAorCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCQlkbWEtPnJlc2kgPSAwOworCX0KKworCWRtYS0+cmVzdSsrOworCisJaWYgKCEoZGV2LT5mbGFncyAmIEhJRk5fRkxBR19SRVNfQlVTWSkpIHsKKwkJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DU1IsIEhJRk5fRE1BQ1NSX1JfQ1RSTF9FTkEpOworCQlkZXYtPmZsYWdzIHw9IEhJRk5fRkxBR19SRVNfQlVTWTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGhpZm5fc2V0dXBfZHN0X2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAorCQl1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIHNpemUpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisJaW50IGlkeDsKKwlkbWFfYWRkcl90IGFkZHI7CisKKwlhZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOworCisJaWR4ID0gZG1hLT5kc3RpOworCWRtYS0+ZHN0cltpZHhdLnAgPSBfX2NwdV90b19sZTMyKGFkZHIpOworCWRtYS0+ZHN0cltpZHhdLmwgPSBfX2NwdV90b19sZTMyKHNpemUgfAlISUZOX0RfVkFMSUQgfAorCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCisJaWYgKCsraWR4ID09IEhJRk5fRF9EU1RfUlNJWkUpIHsKKwkJZG1hLT5kc3RyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKKwkJCQlISUZOX0RfSlVNUCB8IEhJRk5fRF9NQVNLRE9ORUlSUSB8CisJCQkJSElGTl9EX0xBU1QpOworCQlpZHggPSAwOworCX0KKwlkbWEtPmRzdGkgPSBpZHg7CisJZG1hLT5kc3R1Kys7CisKKwlpZiAoIShkZXYtPmZsYWdzICYgSElGTl9GTEFHX0RTVF9CVVNZKSkgeworCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfRF9DVFJMX0VOQSk7CisJCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0RTVF9CVVNZOworCX0KK30KKworc3RhdGljIGludCBoaWZuX3NldHVwX2RtYShzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnNwYWdlLCB1bnNpZ25lZCBpbnQgc29mZiwKKwkJc3RydWN0IHBhZ2UgKmRwYWdlLCB1bnNpZ25lZCBpbnQgZG9mZiwgdW5zaWduZWQgaW50IG5ieXRlcywgdm9pZCAqcHJpdiwKKwkJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4KQoreworCWRwcmludGsoIiVzOiBzcGFnZTogJXAsIHNvZmZzZXQ6ICV1LCBkcGFnZTogJXAsIGRvZmZzZXQ6ICV1LCBuYnl0ZXM6ICV1LCBwcml2OiAlcCwgY3R4OiAlcC5cbiIsCisJCQlkZXYtPm5hbWUsIHNwYWdlLCBzb2ZmLCBkcGFnZSwgZG9mZiwgbmJ5dGVzLCBwcml2LCBjdHgpOworCisJaGlmbl9zZXR1cF9zcmNfZGVzYyhkZXYsIHNwYWdlLCBzb2ZmLCBuYnl0ZXMpOworCWhpZm5fc2V0dXBfY21kX2Rlc2MoZGV2LCBjdHgsIHByaXYsIG5ieXRlcyk7CisJaGlmbl9zZXR1cF9kc3RfZGVzYyhkZXYsIGRwYWdlLCBkb2ZmLCBuYnl0ZXMpOworCWhpZm5fc2V0dXBfcmVzX2Rlc2MoZGV2KTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhYmxrY2lwaGVyX3dhbGtfaW5pdChzdHJ1Y3QgYWJsa2NpcGhlcl93YWxrICp3LAogCQlpbnQgbnVtLCBnZnBfdCBnZnBfZmxhZ3MpCiB7CkBAIC0xNDMxLDcgKzE0MzUsNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXdoaWxlIChzaXplKSB7Ci0JCWNvcHkgPSBtaW4oZHJlc3QsIHNyYy0+bGVuZ3RoKTsKKwkJY29weSA9IG1pbihkcmVzdCwgbWluKHNpemUsIHNyYy0+bGVuZ3RoKSk7CiAKIAkJc2FkZHIgPSBrbWFwX2F0b21pYyhzZ19wYWdlKHNyYyksIEtNX1NPRlRJUlExKTsKIAkJbWVtY3B5KGRhZGRyLCBzYWRkciArIHNyYy0+b2Zmc2V0LCBjb3B5KTsKQEAgLTE0NTgsMTAgKzE0NjIsNiBAQAogc3RhdGljIGludCBhYmxrY2lwaGVyX3dhbGsoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxLAogCQlzdHJ1Y3QgYWJsa2NpcGhlcl93YWxrICp3KQogewotCXVuc2lnbmVkIGJsb2Nrc2l6ZSA9Ci0JCWNyeXB0b19hYmxrY2lwaGVyX2Jsb2Nrc2l6ZShjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKSk7Ci0JdW5zaWduZWQgYWxpZ25tYXNrID0KLQkJY3J5cHRvX2FibGtjaXBoZXJfYWxpZ25tYXNrKGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpKTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYywgKmRzdCwgKnQ7CiAJdm9pZCAqZGFkZHI7CiAJdW5zaWduZWQgaW50IG5ieXRlcyA9IHJlcS0+bmJ5dGVzLCBvZmZzZXQsIGNvcHksIGRpZmY7CkBAIC0xNDc3LDE2ICsxNDc3LDE0IEBACiAJCWRzdCA9ICZyZXEtPmRzdFtpZHhdOwogCiAJCWRwcmludGsoIlxuJXM6IHNsZW46ICV1LCBkbGVuOiAldSwgc29mZjogJXUsIGRvZmY6ICV1LCBvZmZzZXQ6ICV1LCAiCi0JCQkJImJsb2Nrc2l6ZTogJXUsIG5ieXRlczogJXUuXG4iLAorCQkJCSJuYnl0ZXM6ICV1LlxuIiwKIAkJCQlfX2Z1bmNfXywgc3JjLT5sZW5ndGgsIGRzdC0+bGVuZ3RoLCBzcmMtPm9mZnNldCwKLQkJCQlkc3QtPm9mZnNldCwgb2Zmc2V0LCBibG9ja3NpemUsIG5ieXRlcyk7CisJCQkJZHN0LT5vZmZzZXQsIG9mZnNldCwgbmJ5dGVzKTsKIAotCQlpZiAoc3JjLT5sZW5ndGggJiAoYmxvY2tzaXplIC0gMSkgfHwKLQkJCQlzcmMtPm9mZnNldCAmIChhbGlnbm1hc2sgLSAxKSB8fAotCQkJCWRzdC0+bGVuZ3RoICYgKGJsb2Nrc2l6ZSAtIDEpIHx8Ci0JCQkJZHN0LT5vZmZzZXQgJiAoYWxpZ25tYXNrIC0gMSkgfHwKLQkJCQlvZmZzZXQpIHsKLQkJCXVuc2lnbmVkIHNsZW4gPSBzcmMtPmxlbmd0aCAtIG9mZnNldDsKKwkJaWYgKCFJU19BTElHTkVEKGRzdC0+b2Zmc2V0LCBISUZOX0RfRFNUX0RBTElHTikgfHwKKwkJICAgICFJU19BTElHTkVEKGRzdC0+bGVuZ3RoLCBISUZOX0RfRFNUX0RBTElHTikgfHwKKwkJICAgIG9mZnNldCkgeworCQkJdW5zaWduZWQgc2xlbiA9IG1pbihzcmMtPmxlbmd0aCAtIG9mZnNldCwgbmJ5dGVzKTsKIAkJCXVuc2lnbmVkIGRsZW4gPSBQQUdFX1NJWkU7CiAKIAkJCXQgPSAmdy0+Y2FjaGVbaWR4XTsKQEAgLTE0OTgsOCArMTQ5Niw4IEBACiAKIAkJCWlkeCArPSBlcnI7CiAKLQkJCWNvcHkgPSBzbGVuICYgfihibG9ja3NpemUgLSAxKTsKLQkJCWRpZmYgPSBzbGVuICYgKGJsb2Nrc2l6ZSAtIDEpOworCQkJY29weSA9IHNsZW4gJiB+KEhJRk5fRF9EU1RfREFMSUdOIC0gMSk7CisJCQlkaWZmID0gc2xlbiAmIChISUZOX0RfRFNUX0RBTElHTiAtIDEpOwogCiAJCQlpZiAoZGxlbiA8IG5ieXRlcykgewogCQkJCS8qCkBAIC0xNTA3LDcgKzE1MDUsNyBAQAogCQkJCSAqIHRvIHB1dCB0aGVyZSBhZGRpdGlvbmFsIGJsb2Nrc2l6ZWQgY2h1bmssCiAJCQkJICogc28gd2UgbWFyayB0aGF0IHBhZ2UgYXMgY29udGFpbmluZyBvbmx5CiAJCQkJICogYmxvY2tzaXplIGFsaWduZWQgY2h1bmtzOgotCQkJCSAqIAl0LT5sZW5ndGggPSAoc2xlbiAmIH4oYmxvY2tzaXplIC0gMSkpOworCQkJCSAqIAl0LT5sZW5ndGggPSAoc2xlbiAmIH4oSElGTl9EX0RTVF9EQUxJR04gLSAxKSk7CiAJCQkJICogYW5kIGluY3JlYXNlIG51bWJlciBvZiBieXRlcyB0byBiZSBwcm9jZXNzZWQKIAkJCQkgKiBpbiBuZXh0IGNodW5rOgogCQkJCSAqIAluYnl0ZXMgKz0gZGlmZjsKQEAgLTE1NDQsNyArMTU0Miw3IEBACiAKIAkJCWt1bm1hcF9hdG9taWMoZGFkZHIsIEtNX1NPRlRJUlEwKTsKIAkJfSBlbHNlIHsKLQkJCW5ieXRlcyAtPSBzcmMtPmxlbmd0aDsKKwkJCW5ieXRlcyAtPSBtaW4oc3JjLT5sZW5ndGgsIG5ieXRlcyk7CiAJCQlpZHgrKzsKIAkJfQogCkBAIC0xNTYzLDE0ICsxNTYxLDEwIEBACiAJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgocmVxLT5iYXNlLnRmbSk7CiAJc3RydWN0IGhpZm5fZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKIAlzdHJ1Y3QgcGFnZSAqc3BhZ2UsICpkcGFnZTsKLQl1bnNpZ25lZCBsb25nIHNvZmYsIGRvZmYsIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgc29mZiwgZG9mZiwgZGxlbiwgZmxhZ3M7CiAJdW5zaWduZWQgaW50IG5ieXRlcyA9IHJlcS0+bmJ5dGVzLCBpZHggPSAwLCBsZW47CiAJaW50IGVyciA9IC1FSU5WQUwsIHNnX251bTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYywgKmRzdCwgKnQ7Ci0JdW5zaWduZWQgYmxvY2tzaXplID0KLQkJY3J5cHRvX2FibGtjaXBoZXJfYmxvY2tzaXplKGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpKTsKLQl1bnNpZ25lZCBhbGlnbm1hc2sgPQotCQljcnlwdG9fYWJsa2NpcGhlcl9hbGlnbm1hc2soY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSkpOwogCiAJaWYgKGN0eC0+aXYgJiYgIWN0eC0+aXZzaXplICYmIGN0eC0+bW9kZSAhPSBBQ1JZUFRPX01PREVfRUNCKQogCQlnb3RvIGVycl9vdXRfZXhpdDsKQEAgLTE1NzgsMTcgKzE1NzIsMTQgQEAKIAljdHgtPndhbGsuZmxhZ3MgPSAwOwogCiAJd2hpbGUgKG5ieXRlcykgewotCQlzcmMgPSAmcmVxLT5zcmNbaWR4XTsKIAkJZHN0ID0gJnJlcS0+ZHN0W2lkeF07CisJCWRsZW4gPSBtaW4oZHN0LT5sZW5ndGgsIG5ieXRlcyk7CiAKLQkJaWYgKHNyYy0+bGVuZ3RoICYgKGJsb2Nrc2l6ZSAtIDEpIHx8Ci0JCQkJc3JjLT5vZmZzZXQgJiAoYWxpZ25tYXNrIC0gMSkgfHwKLQkJCQlkc3QtPmxlbmd0aCAmIChibG9ja3NpemUgLSAxKSB8fAotCQkJCWRzdC0+b2Zmc2V0ICYgKGFsaWdubWFzayAtIDEpKSB7CisJCWlmICghSVNfQUxJR05FRChkc3QtPm9mZnNldCwgSElGTl9EX0RTVF9EQUxJR04pIHx8CisJCSAgICAhSVNfQUxJR05FRChkbGVuLCBISUZOX0RfRFNUX0RBTElHTikpCiAJCQljdHgtPndhbGsuZmxhZ3MgfD0gQVNZTkNfRkxBR1NfTUlTQUxJR05FRDsKLQkJfQogCi0JCW5ieXRlcyAtPSBzcmMtPmxlbmd0aDsKKwkJbmJ5dGVzIC09IGRsZW47CiAJCWlkeCsrOwogCX0KIApAQCAtMTYwMiw3ICsxNTkzLDEwIEBACiAJaWR4ID0gMDsKIAogCXNnX251bSA9IGFibGtjaXBoZXJfd2FsayhyZXEsICZjdHgtPndhbGspOwotCisJaWYgKHNnX251bSA8IDApIHsKKwkJZXJyID0gc2dfbnVtOworCQlnb3RvIGVycl9vdXRfZXhpdDsKKwl9CiAJYXRvbWljX3NldCgmY3R4LT5zZ19udW0sIHNnX251bSk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5sb2NrLCBmbGFncyk7CkBAIC0xNjQwLDcgKzE2MzQsNyBAQAogCQlpZiAoZXJyKQogCQkJZ290byBlcnJfb3V0OwogCi0JCW5ieXRlcyAtPSBsZW47CisJCW5ieXRlcyAtPSBtaW4obGVuLCBuYnl0ZXMpOwogCX0KIAogCWRldi0+YWN0aXZlID0gSElGTl9ERUZBVUxUX0FDVElWRV9OVU07CkBAIC0xNjUxLDcgKzE2NDUsNyBAQAogZXJyX291dDoKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmxvY2ssIGZsYWdzKTsKIGVycl9vdXRfZXhpdDoKLQlpZiAoZXJyICYmIHByaW50a19yYXRlbGltaXQoKSkKKwlpZiAoZXJyKQogCQlkcHJpbnRrKCIlczogaXY6ICVwIFslZF0sIGtleTogJXAgWyVkXSwgbW9kZTogJXUsIG9wOiAldSwgIgogCQkJCSJ0eXBlOiAldSwgZXJyOiAlZC5cbiIsCiAJCQlkZXYtPm5hbWUsIGN0eC0+aXYsIGN0eC0+aXZzaXplLApAQCAtMTc0NSw4ICsxNzM5LDcgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl3aGlsZSAoc2l6ZSkgewotCi0JCWNvcHkgPSBtaW4oZHN0LT5sZW5ndGgsIHNyZXN0KTsKKwkJY29weSA9IG1pbihzcmVzdCwgbWluKGRzdC0+bGVuZ3RoLCBzaXplKSk7CiAKIAkJZGFkZHIgPSBrbWFwX2F0b21pYyhzZ19wYWdlKGRzdCksIEtNX0lSUTApOwogCQltZW1jcHkoZGFkZHIgKyBkc3QtPm9mZnNldCArIG9mZnNldCwgc2FkZHIsIGNvcHkpOwpAQCAtMTgwMyw3ICsxNzk2LDcgQEAKIAkJCQkJc2dfcGFnZShkc3QpLCBkc3QtPmxlbmd0aCwgbmJ5dGVzKTsKIAogCQkJCWlmICghdC0+bGVuZ3RoKSB7Ci0JCQkJCW5ieXRlcyAtPSBkc3QtPmxlbmd0aDsKKwkJCQkJbmJ5dGVzIC09IG1pbihkc3QtPmxlbmd0aCwgbmJ5dGVzKTsKIAkJCQkJaWR4Kys7CiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KQEAgLTIyMDIsOSArMjE5NSw5IEBACiAJCXJldHVybiBlcnI7CiAKIAlpZiAoZGV2LT5zdGFydGVkIDwgSElGTl9RVUVVRV9MRU5HVEggJiYJZGV2LT5xdWV1ZS5xbGVuKQotCQllcnIgPSBoaWZuX3Byb2Nlc3NfcXVldWUoZGV2KTsKKwkJaGlmbl9wcm9jZXNzX3F1ZXVlKGRldik7CiAKLQlyZXR1cm4gZXJyOworCXJldHVybiAtRUlOUFJPR1JFU1M7CiB9CiAKIC8qCkBAIC0yMzY0LDcgKzIzNTcsNyBAQAogCSAqIDNERVMgRUNCLCBDQkMsIENGQiBhbmQgT0ZCIG1vZGVzLgogCSAqLwogCXsKLQkJLm5hbWUgPSAiY2ZiKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJjZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImNmYi0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILApAQCAtMjM3NCw3ICsyMzY3LDcgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAib2ZiKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJvZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gIm9mYi0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILApAQCAtMjM4NCw4ICsyMzc3LDkgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAiY2JjKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJjYmMoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImNiYy0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CisJCQkuaXZzaXplCQk9CUhJRk5fSVZfTEVOR1RILAogCQkJLm1pbl9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5zZXRrZXkJCT0JaGlmbl9zZXRrZXksCkBAIC0yMzk0LDcgKzIzODgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJlY2IoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImhpZm4tM2RlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImVjYihkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAiZWNiLTNkZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCkBAIC0yNDA4LDcgKzI0MDIsNyBAQAogCSAqIERFUyBFQ0IsIENCQywgQ0ZCIGFuZCBPRkIgbW9kZXMuCiAJICovCiAJewotCQkubmFtZSA9ICJjZmIoZGVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWRlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImNmYihkZXMpIiwgLmRydl9uYW1lID0gImNmYi1kZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILApAQCAtMjQxOCw3ICsyNDEyLDcgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAib2ZiKGRlcykiLCAuZHJ2X25hbWUgPSAiaGlmbi1kZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJvZmIoZGVzKSIsIC5kcnZfbmFtZSA9ICJvZmItZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKQEAgLTI0MjgsOCArMjQyMiw5IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImNiYyhkZXMpIiwgLmRydl9uYW1lID0gImhpZm4tZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiY2JjKGRlcykiLCAuZHJ2X25hbWUgPSAiY2JjLWRlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0geworCQkJLml2c2l6ZQkJPQlISUZOX0lWX0xFTkdUSCwKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILAogCQkJLnNldGtleQkJPQloaWZuX3NldGtleSwKQEAgLTI0MzgsNyArMjQzMyw3IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImVjYihkZXMpIiwgLmRydl9uYW1lID0gImhpZm4tZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiZWNiKGRlcykiLCAuZHJ2X25hbWUgPSAiZWNiLWRlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCkBAIC0yNDUyLDcgKzI0NDcsNyBAQAogCSAqIEFFUyBFQ0IsIENCQywgQ0ZCIGFuZCBPRkIgbW9kZXMuCiAJICovCiAJewotCQkubmFtZSA9ICJlY2IoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJlY2IoYWVzKSIsIC5kcnZfbmFtZSA9ICJlY2ItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNDYyLDggKzI0NTcsOSBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJjYmMoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJjYmMoYWVzKSIsIC5kcnZfbmFtZSA9ICJjYmMtYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0geworCQkJLml2c2l6ZQkJPQlISUZOX0FFU19JVl9MRU5HVEgsCiAJCQkubWluX2tleXNpemUJPQlBRVNfTUlOX0tFWV9TSVpFLAogCQkJLm1heF9rZXlzaXplCT0JQUVTX01BWF9LRVlfU0laRSwKIAkJCS5zZXRrZXkJCT0JaGlmbl9zZXRrZXksCkBAIC0yNDcyLDcgKzI0NjgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJjZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJjZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJjZmItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNDgyLDcgKzI0NzgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJvZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJvZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJvZmItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNTE0LDE1ICsyNTEwLDE0IEBACiAJCXJldHVybiAtRU5PTUVNOwogCiAJc25wcmludGYoYWxnLT5hbGcuY3JhX25hbWUsIENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIsIHQtPm5hbWUpOwotCXNucHJpbnRmKGFsZy0+YWxnLmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgdC0+ZHJ2X25hbWUpOworCXNucHJpbnRmKGFsZy0+YWxnLmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzLSVzIiwKKwkJIHQtPmRydl9uYW1lLCBkZXYtPm5hbWUpOwogCiAJYWxnLT5hbGcuY3JhX3ByaW9yaXR5ID0gMzAwOwogCWFsZy0+YWxnLmNyYV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BQkxLQ0lQSEVSIHwgQ1JZUFRPX0FMR19BU1lOQzsKIAlhbGctPmFsZy5jcmFfYmxvY2tzaXplID0gdC0+YnNpemU7CiAJYWxnLT5hbGcuY3JhX2N0eHNpemUgPSBzaXplb2Yoc3RydWN0IGhpZm5fY29udGV4dCk7Ci0JYWxnLT5hbGcuY3JhX2FsaWdubWFzayA9IDE1OwotCWlmICh0LT5ic2l6ZSA9PSA4KQotCQlhbGctPmFsZy5jcmFfYWxpZ25tYXNrID0gMzsKKwlhbGctPmFsZy5jcmFfYWxpZ25tYXNrID0gMDsKIAlhbGctPmFsZy5jcmFfdHlwZSA9ICZjcnlwdG9fYWJsa2NpcGhlcl90eXBlOwogCWFsZy0+YWxnLmNyYV9tb2R1bGUgPSBUSElTX01PRFVMRTsKIAlhbGctPmFsZy5jcmFfdS5hYmxrY2lwaGVyID0gdC0+YWJsa2NpcGhlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2l4cDR4eF9jcnlwdG8uYyBiL2RyaXZlcnMvY3J5cHRvL2l4cDR4eF9jcnlwdG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmExMDdmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vaXhwNHh4X2NyeXB0by5jCkBAIC0wLDAgKzEsMTUwNiBAQAorLyoKKyAqIEludGVsIElYUDR4eCBOUEUtQyBjcnlwdG8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBIb2huc3RhZWR0IDxjaG9obnN0YWVkdEBpbm5vbWluYXRlLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHZlcnNpb24gMiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWFwb29sLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworI2luY2x1ZGUgPGNyeXB0by9jdHIuaD4KKyNpbmNsdWRlIDxjcnlwdG8vZGVzLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2Flcy5oPgorI2luY2x1ZGUgPGNyeXB0by9zaGEuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2FlYWQuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYXV0aGVuYy5oPgorI2luY2x1ZGUgPGNyeXB0by9zY2F0dGVyd2Fsay5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvbnBlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcW1nci5oPgorCisjZGVmaW5lIE1BWF9LRVlMRU4gMzIKKworLyogaGFzaDogY2Znd29yZCArIDIgKiBkaWdlc3RsZW47IGNyeXB0OiBrZXlsZW4gKyBjZmd3b3JkICovCisjZGVmaW5lIE5QRV9DVFhfTEVOIDgwCisjZGVmaW5lIEFFU19CTE9DSzEyOCAxNgorCisjZGVmaW5lIE5QRV9PUF9IQVNIX1ZFUklGWSAgIDB4MDEKKyNkZWZpbmUgTlBFX09QX0NDTV9FTkFCTEUgICAgMHgwNAorI2RlZmluZSBOUEVfT1BfQ1JZUFRfRU5BQkxFICAweDA4CisjZGVmaW5lIE5QRV9PUF9IQVNIX0VOQUJMRSAgIDB4MTAKKyNkZWZpbmUgTlBFX09QX05PVF9JTl9QTEFDRSAgMHgyMAorI2RlZmluZSBOUEVfT1BfSE1BQ19ESVNBQkxFICAweDQwCisjZGVmaW5lIE5QRV9PUF9DUllQVF9FTkNSWVBUIDB4ODAKKworI2RlZmluZSBOUEVfT1BfQ0NNX0dFTl9NSUMgICAweGNjCisjZGVmaW5lIE5QRV9PUF9IQVNIX0dFTl9JQ1YgIDB4NTAKKyNkZWZpbmUgTlBFX09QX0VOQ19HRU5fS0VZICAgMHhjOQorCisjZGVmaW5lIE1PRF9FQ0IgICAgIDB4MDAwMAorI2RlZmluZSBNT0RfQ1RSICAgICAweDEwMDAKKyNkZWZpbmUgTU9EX0NCQ19FTkMgMHgyMDAwCisjZGVmaW5lIE1PRF9DQkNfREVDIDB4MzAwMAorI2RlZmluZSBNT0RfQ0NNX0VOQyAweDQwMDAKKyNkZWZpbmUgTU9EX0NDTV9ERUMgMHg1MDAwCisKKyNkZWZpbmUgS0VZTEVOXzEyOCAgNAorI2RlZmluZSBLRVlMRU5fMTkyICA2CisjZGVmaW5lIEtFWUxFTl8yNTYgIDgKKworI2RlZmluZSBDSVBIX0RFQ1IgICAweDAwMDAKKyNkZWZpbmUgQ0lQSF9FTkNSICAgMHgwNDAwCisKKyNkZWZpbmUgTU9EX0RFUyAgICAgMHgwMDAwCisjZGVmaW5lIE1PRF9UREVBMiAgIDB4MDEwMAorI2RlZmluZSBNT0RfM0RFUyAgIDB4MDIwMAorI2RlZmluZSBNT0RfQUVTICAgICAweDA4MDAKKyNkZWZpbmUgTU9EX0FFUzEyOCAgKDB4MDgwMCB8IEtFWUxFTl8xMjgpCisjZGVmaW5lIE1PRF9BRVMxOTIgICgweDA5MDAgfCBLRVlMRU5fMTkyKQorI2RlZmluZSBNT0RfQUVTMjU2ICAoMHgwYTAwIHwgS0VZTEVOXzI1NikKKworI2RlZmluZSBNQVhfSVZMRU4gICAxNgorI2RlZmluZSBOUEVfSUQgICAgICAyICAvKiBOUEUgQyAqLworI2RlZmluZSBOUEVfUUxFTiAgICAxNgorLyogU3BhY2UgZm9yIHJlZ2lzdGVyaW5nIHdoZW4gdGhlIGZpcnN0CisgKiBOUEVfUUxFTiBjcnlwdF9jdGwgYXJlIGJ1c3kgKi8KKyNkZWZpbmUgTlBFX1FMRU5fVE9UQUwgNjQKKworI2RlZmluZSBTRU5EX1FJRCAgICAyOQorI2RlZmluZSBSRUNWX1FJRCAgICAzMAorCisjZGVmaW5lIENUTF9GTEFHX1VOVVNFRAkJMHgwMDAwCisjZGVmaW5lIENUTF9GTEFHX1VTRUQJCTB4MTAwMAorI2RlZmluZSBDVExfRkxBR19QRVJGT1JNX0FCTEsJMHgwMDAxCisjZGVmaW5lIENUTF9GTEFHX0dFTl9JQ1YJMHgwMDAyCisjZGVmaW5lIENUTF9GTEFHX0dFTl9SRVZBRVMJMHgwMDA0CisjZGVmaW5lIENUTF9GTEFHX1BFUkZPUk1fQUVBRAkweDAwMDgKKyNkZWZpbmUgQ1RMX0ZMQUdfTUFTSwkJMHgwMDBmCisKKyNkZWZpbmUgSE1BQ19JUEFEX1ZBTFVFICAgMHgzNgorI2RlZmluZSBITUFDX09QQURfVkFMVUUgICAweDVDCisjZGVmaW5lIEhNQUNfUEFEX0JMT0NLTEVOIFNIQTFfQkxPQ0tfU0laRQorCisjZGVmaW5lIE1ENV9ESUdFU1RfU0laRSAgIDE2CisKK3N0cnVjdCBidWZmZXJfZGVzYyB7CisJdTMyIHBoeXNfbmV4dDsKKwl1MTYgYnVmX2xlbjsKKwl1MTYgcGt0X2xlbjsKKwl1MzIgcGh5c19hZGRyOworCXUzMiBfX3Jlc2VydmVkWzRdOworCXN0cnVjdCBidWZmZXJfZGVzYyAqbmV4dDsKK307CisKK3N0cnVjdCBjcnlwdF9jdGwgeworCXU4IG1vZGU7CQkvKiBOUEVfT1BfKiAgb3BlcmF0aW9uIG1vZGUgKi8KKwl1OCBpbml0X2xlbjsKKwl1MTYgcmVzZXJ2ZWQ7CisJdTggaXZbTUFYX0lWTEVOXTsJLyogSVYgZm9yIENCQyBtb2RlIG9yIENUUiBJViBmb3IgQ1RSIG1vZGUgKi8KKwl1MzIgaWN2X3Jldl9hZXM7CS8qIGljdiBvciByZXYgYWVzICovCisJdTMyIHNyY19idWY7CisJdTMyIGRzdF9idWY7CisJdTE2IGF1dGhfb2ZmczsJCS8qIEF1dGhlbnRpY2F0aW9uIHN0YXJ0IG9mZnNldCAqLworCXUxNiBhdXRoX2xlbjsJCS8qIEF1dGhlbnRpY2F0aW9uIGRhdGEgbGVuZ3RoICovCisJdTE2IGNyeXB0X29mZnM7CQkvKiBDcnlwdGlvbiBzdGFydCBvZmZzZXQgKi8KKwl1MTYgY3J5cHRfbGVuOwkJLyogQ3J5cHRpb24gZGF0YSBsZW5ndGggKi8KKwl1MzIgYWFkQWRkcjsJCS8qIEFkZGl0aW9uYWwgQXV0aCBEYXRhIEFkZHIgZm9yIENDTSBtb2RlICovCisJdTMyIGNyeXB0b19jdHg7CQkvKiBOUEUgQ3J5cHRvIFBhcmFtIHN0cnVjdHVyZSBhZGRyZXNzICovCisKKwkvKiBVc2VkIGJ5IEhvc3Q6IDQqNCBieXRlcyovCisJdW5zaWduZWQgY3RsX2ZsYWdzOworCXVuaW9uIHsKKwkJc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqYWJsa19yZXE7CisJCXN0cnVjdCBhZWFkX3JlcXVlc3QgKmFlYWRfcmVxOworCQlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtOworCX0gZGF0YTsKKwlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKnJlZ2lzdF9idWY7CisJdTggKnJlZ2lzdF9wdHI7Cit9OworCitzdHJ1Y3QgYWJsa19jdHggeworCXN0cnVjdCBidWZmZXJfZGVzYyAqc3JjOworCXN0cnVjdCBidWZmZXJfZGVzYyAqZHN0OworCXVuc2lnbmVkIHNyY19uZW50czsKKwl1bnNpZ25lZCBkc3RfbmVudHM7Cit9OworCitzdHJ1Y3QgYWVhZF9jdHggeworCXN0cnVjdCBidWZmZXJfZGVzYyAqYnVmZmVyOworCXVuc2lnbmVkIHNob3J0IGFzc29jX25lbnRzOworCXVuc2lnbmVkIHNob3J0IHNyY19uZW50czsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgaXZsaXN0OworCS8qIHVzZWQgd2hlbiB0aGUgaG1hYyBpcyBub3Qgb24gb25lIHNnIGVudHJ5ICovCisJdTggKmhtYWNfdmlydDsKKwlpbnQgZW5jcnlwdDsKK307CisKK3N0cnVjdCBpeF9oYXNoX2FsZ28geworCXUzMiBjZmd3b3JkOworCXVuc2lnbmVkIGNoYXIgKmljdjsKK307CisKK3N0cnVjdCBpeF9zYV9kaXIgeworCXVuc2lnbmVkIGNoYXIgKm5wZV9jdHg7CisJZG1hX2FkZHJfdCBucGVfY3R4X3BoeXM7CisJaW50IG5wZV9jdHhfaWR4OworCXU4IG5wZV9tb2RlOworfTsKKworc3RydWN0IGl4cF9jdHggeworCXN0cnVjdCBpeF9zYV9kaXIgZW5jcnlwdDsKKwlzdHJ1Y3QgaXhfc2FfZGlyIGRlY3J5cHQ7CisJaW50IGF1dGhrZXlfbGVuOworCXU4IGF1dGhrZXlbTUFYX0tFWUxFTl07CisJaW50IGVuY2tleV9sZW47CisJdTggZW5ja2V5W01BWF9LRVlMRU5dOworCXU4IHNhbHRbTUFYX0lWTEVOXTsKKwl1OCBub25jZVtDVFJfUkZDMzY4Nl9OT05DRV9TSVpFXTsKKwl1bnNpZ25lZCBzYWx0ZWQ7CisJYXRvbWljX3QgY29uZmlndXJpbmc7CisJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKK307CisKK3N0cnVjdCBpeHBfYWxnIHsKKwlzdHJ1Y3QgY3J5cHRvX2FsZyBjcnlwdG87CisJY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyAqaGFzaDsKKwl1MzIgY2ZnX2VuYzsKKwl1MzIgY2ZnX2RlYzsKKworCWludCByZWdpc3RlcmVkOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gaGFzaF9hbGdfbWQ1ID0geworCS5jZmd3b3JkCT0gMHhBQTAxMDAwNCwKKwkuaWN2CQk9ICJceDAxXHgyM1x4NDVceDY3XHg4OVx4QUJceENEXHhFRiIKKwkJCSAgIlx4RkVceERDXHhCQVx4OThceDc2XHg1NFx4MzJceDEwIiwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyBoYXNoX2FsZ19zaGExID0geworCS5jZmd3b3JkCT0gMHgwMDAwMDAwNSwKKwkuaWN2CQk9ICJceDY3XHg0NVx4MjNceDAxXHhFRlx4Q0RceEFCXHg4OVx4OThceEJBIgorCQkJICAiXHhEQ1x4RkVceDEwXHgzMlx4NTRceDc2XHhDM1x4RDJceEUxXHhGMCIsCit9OworCitzdGF0aWMgc3RydWN0IG5wZSAqbnBlX2M7CitzdGF0aWMgc3RydWN0IGRtYV9wb29sICpidWZmZXJfcG9vbCA9IE5VTEw7CitzdGF0aWMgc3RydWN0IGRtYV9wb29sICpjdHhfcG9vbCA9IE5VTEw7CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdF92aXJ0ID0gTlVMTDsKK3N0YXRpYyBkbWFfYWRkcl90IGNyeXB0X3BoeXM7CisKK3N0YXRpYyBpbnQgc3VwcG9ydF9hZXMgPSAxOworCitzdGF0aWMgdm9pZCBkZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuOworfQorCisjZGVmaW5lIERSSVZFUl9OQU1FICJpeHA0eHhfY3J5cHRvIgorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHNldWRvX2RldiA9IHsKKwkubmFtZSA9IERSSVZFUl9OQU1FLAorCS5pZCAgID0gMCwKKwkubnVtX3Jlc291cmNlcyA9IDAsCisJLmRldiAgPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzayA9IERNQV8zMkJJVF9NQVNLLAorCQkucmVsZWFzZSA9IGRldl9yZWxlYXNlLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcHNldWRvX2Rldi5kZXY7CisKK3N0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCBjcnlwdF92aXJ0MnBoeXMoc3RydWN0IGNyeXB0X2N0bCAqdmlydCkKK3sKKwlyZXR1cm4gY3J5cHRfcGh5cyArICh2aXJ0IC0gY3J5cHRfdmlydCkgKiBzaXplb2Yoc3RydWN0IGNyeXB0X2N0bCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0X2N0bCAqY3J5cHRfcGh5czJ2aXJ0KGRtYV9hZGRyX3QgcGh5cykKK3sKKwlyZXR1cm4gY3J5cHRfdmlydCArIChwaHlzIC0gY3J5cHRfcGh5cykgLyBzaXplb2Yoc3RydWN0IGNyeXB0X2N0bCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIGNpcGhlcl9jZmdfZW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZih0Zm0tPl9fY3J0X2FsZywgc3RydWN0IGl4cF9hbGcsY3J5cHRvKS0+Y2ZnX2VuYzsKK30KKworc3RhdGljIGlubGluZSB1MzIgY2lwaGVyX2NmZ19kZWMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHRmbS0+X19jcnRfYWxnLCBzdHJ1Y3QgaXhwX2FsZyxjcnlwdG8pLT5jZmdfZGVjOworfQorCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gKml4X2hhc2goc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHRmbS0+X19jcnRfYWxnLCBzdHJ1Y3QgaXhwX2FsZywgY3J5cHRvKS0+aGFzaDsKK30KKworc3RhdGljIGludCBzZXR1cF9jcnlwdF9kZXNjKHZvaWQpCit7CisJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSAhPSA2NCk7CisJY3J5cHRfdmlydCA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsCisJCQlOUEVfUUxFTiAqIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSwKKwkJCSZjcnlwdF9waHlzLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNyeXB0X3ZpcnQpCisJCXJldHVybiAtRU5PTUVNOworCW1lbXNldChjcnlwdF92aXJ0LCAwLCBOUEVfUUxFTiAqIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzcGlubG9ja190IGRlc2NfbG9jazsKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpnZXRfY3J5cHRfZGVzYyh2b2lkKQoreworCWludCBpOworCXN0YXRpYyBpbnQgaWR4ID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2NfbG9jaywgZmxhZ3MpOworCisJaWYgKHVubGlrZWx5KCFjcnlwdF92aXJ0KSkKKwkJc2V0dXBfY3J5cHRfZGVzYygpOworCWlmICh1bmxpa2VseSghY3J5cHRfdmlydCkpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzY19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KKwlpID0gaWR4OworCWlmIChjcnlwdF92aXJ0W2ldLmN0bF9mbGFncyA9PSBDVExfRkxBR19VTlVTRUQpIHsKKwkJaWYgKCsraWR4ID49IE5QRV9RTEVOKQorCQkJaWR4ID0gMDsKKwkJY3J5cHRfdmlydFtpXS5jdGxfZmxhZ3MgPSBDVExfRkxBR19VU0VEOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIGNyeXB0X3ZpcnQgK2k7CisJfSBlbHNlIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzY19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KK30KKworc3RhdGljIHNwaW5sb2NrX3QgZW1lcmdfbG9jazsKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpnZXRfY3J5cHRfZGVzY19lbWVyZyh2b2lkKQoreworCWludCBpOworCXN0YXRpYyBpbnQgaWR4ID0gTlBFX1FMRU47CisJc3RydWN0IGNyeXB0X2N0bCAqZGVzYzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGVzYyA9IGdldF9jcnlwdF9kZXNjKCk7CisJaWYgKGRlc2MpCisJCXJldHVybiBkZXNjOworCWlmICh1bmxpa2VseSghY3J5cHRfdmlydCkpCisJCXJldHVybiBOVUxMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVtZXJnX2xvY2ssIGZsYWdzKTsKKwlpID0gaWR4OworCWlmIChjcnlwdF92aXJ0W2ldLmN0bF9mbGFncyA9PSBDVExfRkxBR19VTlVTRUQpIHsKKwkJaWYgKCsraWR4ID49IE5QRV9RTEVOX1RPVEFMKQorCQkJaWR4ID0gTlBFX1FMRU47CisJCWNyeXB0X3ZpcnRbaV0uY3RsX2ZsYWdzID0gQ1RMX0ZMQUdfVVNFRDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW1lcmdfbG9jaywgZmxhZ3MpOworCQlyZXR1cm4gY3J5cHRfdmlydCAraTsKKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbWVyZ19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KK30KKworc3RhdGljIHZvaWQgZnJlZV9idWZfY2hhaW4oc3RydWN0IGJ1ZmZlcl9kZXNjICpidWYsIHUzMiBwaHlzKQoreworCXdoaWxlIChidWYpIHsKKwkJc3RydWN0IGJ1ZmZlcl9kZXNjICpidWYxOworCQl1MzIgcGh5czE7CisKKwkJYnVmMSA9IGJ1Zi0+bmV4dDsKKwkJcGh5czEgPSBidWYtPnBoeXNfbmV4dDsKKwkJZG1hX3Bvb2xfZnJlZShidWZmZXJfcG9vbCwgYnVmLCBwaHlzKTsKKwkJYnVmID0gYnVmMTsKKwkJcGh5cyA9IHBoeXMxOworCX0KK30KKworc3RhdGljIHN0cnVjdCB0YXNrbGV0X3N0cnVjdCBjcnlwdG9fZG9uZV90YXNrbGV0OworCitzdGF0aWMgdm9pZCBmaW5pc2hfc2NhdHRlcmVkX2htYWMoc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxID0gY3J5cHQtPmRhdGEuYWVhZF9yZXE7CisJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJaW50IGF1dGhzaXplID0gY3J5cHRvX2FlYWRfYXV0aHNpemUodGZtKTsKKwlpbnQgZGVjcnlwdGxlbiA9IHJlcS0+Y3J5cHRsZW4gLSBhdXRoc2l6ZTsKKworCWlmIChyZXFfY3R4LT5lbmNyeXB0KSB7CisJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShyZXFfY3R4LT5obWFjX3ZpcnQsCisJCQlyZXEtPnNyYywgZGVjcnlwdGxlbiwgYXV0aHNpemUsIDEpOworCX0KKwlkbWFfcG9vbF9mcmVlKGJ1ZmZlcl9wb29sLCByZXFfY3R4LT5obWFjX3ZpcnQsIGNyeXB0LT5pY3ZfcmV2X2Flcyk7Cit9CisKK3N0YXRpYyB2b2lkIG9uZV9wYWNrZXQoZG1hX2FkZHJfdCBwaHlzKQoreworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXN0cnVjdCBpeHBfY3R4ICpjdHg7CisJaW50IGZhaWxlZDsKKwllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBzcmNfZGlyZWN0aW9uID0gRE1BX0JJRElSRUNUSU9OQUw7CisKKwlmYWlsZWQgPSBwaHlzICYgMHgxID8gLUVCQURNU0cgOiAwOworCXBoeXMgJj0gfjB4MzsKKwljcnlwdCA9IGNyeXB0X3BoeXMydmlydChwaHlzKTsKKworCXN3aXRjaCAoY3J5cHQtPmN0bF9mbGFncyAmIENUTF9GTEFHX01BU0spIHsKKwljYXNlIENUTF9GTEFHX1BFUkZPUk1fQUVBRDogeworCQlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEgPSBjcnlwdC0+ZGF0YS5hZWFkX3JlcTsKKwkJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPmFzc29jLCByZXFfY3R4LT5hc3NvY19uZW50cywKKwkJCQlETUFfVE9fREVWSUNFKTsKKwkJZG1hX3VubWFwX3NnKGRldiwgJnJlcV9jdHgtPml2bGlzdCwgMSwgRE1BX0JJRElSRUNUSU9OQUwpOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgcmVxX2N0eC0+c3JjX25lbnRzLAorCQkJCURNQV9CSURJUkVDVElPTkFMKTsKKworCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5idWZmZXIsIGNyeXB0LT5zcmNfYnVmKTsKKwkJaWYgKHJlcV9jdHgtPmhtYWNfdmlydCkgeworCQkJZmluaXNoX3NjYXR0ZXJlZF9obWFjKGNyeXB0KTsKKwkJfQorCQlyZXEtPmJhc2UuY29tcGxldGUoJnJlcS0+YmFzZSwgZmFpbGVkKTsKKwkJYnJlYWs7CisJfQorCWNhc2UgQ1RMX0ZMQUdfUEVSRk9STV9BQkxLOiB7CisJCXN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcSA9IGNyeXB0LT5kYXRhLmFibGtfcmVxOworCQlzdHJ1Y3QgYWJsa19jdHggKnJlcV9jdHggPSBhYmxrY2lwaGVyX3JlcXVlc3RfY3R4KHJlcSk7CisJCWludCBuZW50czsKKwkJaWYgKHJlcV9jdHgtPmRzdCkgeworCQkJbmVudHMgPSByZXFfY3R4LT5kc3RfbmVudHM7CisJCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPmRzdCwgbmVudHMsIERNQV9GUk9NX0RFVklDRSk7CisJCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5kc3QsIGNyeXB0LT5kc3RfYnVmKTsKKwkJCXNyY19kaXJlY3Rpb24gPSBETUFfVE9fREVWSUNFOworCQl9CisJCW5lbnRzID0gcmVxX2N0eC0+c3JjX25lbnRzOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgbmVudHMsIHNyY19kaXJlY3Rpb24pOworCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5zcmMsIGNyeXB0LT5zcmNfYnVmKTsKKwkJcmVxLT5iYXNlLmNvbXBsZXRlKCZyZXEtPmJhc2UsIGZhaWxlZCk7CisJCWJyZWFrOworCX0KKwljYXNlIENUTF9GTEFHX0dFTl9JQ1Y6CisJCWN0eCA9IGNyeXB0b190Zm1fY3R4KGNyeXB0LT5kYXRhLnRmbSk7CisJCWRtYV9wb29sX2ZyZWUoY3R4X3Bvb2wsIGNyeXB0LT5yZWdpc3RfcHRyLAorCQkJCWNyeXB0LT5yZWdpc3RfYnVmLT5waHlzX2FkZHIpOworCQlkbWFfcG9vbF9mcmVlKGJ1ZmZlcl9wb29sLCBjcnlwdC0+cmVnaXN0X2J1ZiwgY3J5cHQtPnNyY19idWYpOworCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3R4LT5jb25maWd1cmluZykpCisJCQljb21wbGV0ZSgmY3R4LT5jb21wbGV0aW9uKTsKKwkJYnJlYWs7CisJY2FzZSBDVExfRkxBR19HRU5fUkVWQUVTOgorCQljdHggPSBjcnlwdG9fdGZtX2N0eChjcnlwdC0+ZGF0YS50Zm0pOworCQkqKHUzMiopY3R4LT5kZWNyeXB0Lm5wZV9jdHggJj0gY3B1X3RvX2JlMzIofkNJUEhfRU5DUik7CisJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJCWNvbXBsZXRlKCZjdHgtPmNvbXBsZXRpb24pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlCVUcoKTsKKwl9CisJY3J5cHQtPmN0bF9mbGFncyA9IENUTF9GTEFHX1VOVVNFRDsKK30KKworc3RhdGljIHZvaWQgaXJxaGFuZGxlcih2b2lkICpfdW51c2VkKQoreworCXRhc2tsZXRfc2NoZWR1bGUoJmNyeXB0b19kb25lX3Rhc2tsZXQpOworfQorCitzdGF0aWMgdm9pZCBjcnlwdG9fZG9uZV9hY3Rpb24odW5zaWduZWQgbG9uZyBhcmcpCit7CisJaW50IGk7CisKKwlmb3IoaT0wOyBpPDQ7IGkrKykgeworCQlkbWFfYWRkcl90IHBoeXMgPSBxbWdyX2dldF9lbnRyeShSRUNWX1FJRCk7CisJCWlmICghcGh5cykKKwkJCXJldHVybjsKKwkJb25lX3BhY2tldChwaHlzKTsKKwl9CisJdGFza2xldF9zY2hlZHVsZSgmY3J5cHRvX2RvbmVfdGFza2xldCk7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9peHBfY3J5cHRvKHZvaWQpCit7CisJaW50IHJldCA9IC1FTk9ERVY7CisKKwlpZiAoISAoIH4oKklYUDRYWF9FWFBfQ0ZHMikgJiAoSVhQNFhYX0ZFQVRVUkVfSEFTSCB8CisJCQkJSVhQNFhYX0ZFQVRVUkVfQUVTIHwgSVhQNFhYX0ZFQVRVUkVfREVTKSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJpeHBfY3J5cHRvOiBObyBIVyBjcnlwdG8gYXZhaWxhYmxlXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJbnBlX2MgPSBucGVfcmVxdWVzdChOUEVfSUQpOworCWlmICghbnBlX2MpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIW5wZV9ydW5uaW5nKG5wZV9jKSkgeworCQlucGVfbG9hZF9maXJtd2FyZShucGVfYywgbnBlX25hbWUobnBlX2MpLCBkZXYpOworCX0KKworCS8qIGJ1ZmZlcl9wb29sIHdpbGwgYWxzbyBiZSB1c2VkIHRvIHNvbWV0aW1lcyBzdG9yZSB0aGUgaG1hYywKKwkgKiBzbyBhc3N1cmUgaXQgaXMgbGFyZ2UgZW5vdWdoCisJICovCisJQlVJTERfQlVHX09OKFNIQTFfRElHRVNUX1NJWkUgPiBzaXplb2Yoc3RydWN0IGJ1ZmZlcl9kZXNjKSk7CisJYnVmZmVyX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoImJ1ZmZlciIsIGRldiwKKwkJCXNpemVvZihzdHJ1Y3QgYnVmZmVyX2Rlc2MpLCAzMiwgMCk7CisJcmV0ID0gLUVOT01FTTsKKwlpZiAoIWJ1ZmZlcl9wb29sKSB7CisJCWdvdG8gZXJyOworCX0KKwljdHhfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZSgiY29udGV4dCIsIGRldiwKKwkJCU5QRV9DVFhfTEVOLCAxNiwgMCk7CisJaWYgKCFjdHhfcG9vbCkgeworCQlnb3RvIGVycjsKKwl9CisJcmV0ID0gcW1ncl9yZXF1ZXN0X3F1ZXVlKFNFTkRfUUlELCBOUEVfUUxFTl9UT1RBTCwgMCwgMCk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CisJcmV0ID0gcW1ncl9yZXF1ZXN0X3F1ZXVlKFJFQ1ZfUUlELCBOUEVfUUxFTiwgMCwgMCk7CisJaWYgKHJldCkgeworCQlxbWdyX3JlbGVhc2VfcXVldWUoU0VORF9RSUQpOworCQlnb3RvIGVycjsKKwl9CisJcW1ncl9zZXRfaXJxKFJFQ1ZfUUlELCBRVUVVRV9JUlFfU1JDX05PVF9FTVBUWSwgaXJxaGFuZGxlciwgTlVMTCk7CisJdGFza2xldF9pbml0KCZjcnlwdG9fZG9uZV90YXNrbGV0LCBjcnlwdG9fZG9uZV9hY3Rpb24sIDApOworCisJcW1ncl9lbmFibGVfaXJxKFJFQ1ZfUUlEKTsKKwlyZXR1cm4gMDsKK2VycjoKKwlpZiAoY3R4X3Bvb2wpCisJCWRtYV9wb29sX2Rlc3Ryb3koY3R4X3Bvb2wpOworCWlmIChidWZmZXJfcG9vbCkKKwkJZG1hX3Bvb2xfZGVzdHJveShidWZmZXJfcG9vbCk7CisJbnBlX3JlbGVhc2UobnBlX2MpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHJlbGVhc2VfaXhwX2NyeXB0byh2b2lkKQoreworCXFtZ3JfZGlzYWJsZV9pcnEoUkVDVl9RSUQpOworCXRhc2tsZXRfa2lsbCgmY3J5cHRvX2RvbmVfdGFza2xldCk7CisKKwlxbWdyX3JlbGVhc2VfcXVldWUoU0VORF9RSUQpOworCXFtZ3JfcmVsZWFzZV9xdWV1ZShSRUNWX1FJRCk7CisKKwlkbWFfcG9vbF9kZXN0cm95KGN0eF9wb29sKTsKKwlkbWFfcG9vbF9kZXN0cm95KGJ1ZmZlcl9wb29sKTsKKworCW5wZV9yZWxlYXNlKG5wZV9jKTsKKworCWlmIChjcnlwdF92aXJ0KSB7CisJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwKKwkJCU5QRV9RTEVOX1RPVEFMICogc2l6ZW9mKCBzdHJ1Y3QgY3J5cHRfY3RsKSwKKwkJCWNyeXB0X3ZpcnQsIGNyeXB0X3BoeXMpOworCX0KKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJlc2V0X3NhX2RpcihzdHJ1Y3QgaXhfc2FfZGlyICpkaXIpCit7CisJbWVtc2V0KGRpci0+bnBlX2N0eCwgMCwgTlBFX0NUWF9MRU4pOworCWRpci0+bnBlX2N0eF9pZHggPSAwOworCWRpci0+bnBlX21vZGUgPSAwOworfQorCitzdGF0aWMgaW50IGluaXRfc2FfZGlyKHN0cnVjdCBpeF9zYV9kaXIgKmRpcikKK3sKKwlkaXItPm5wZV9jdHggPSBkbWFfcG9vbF9hbGxvYyhjdHhfcG9vbCwgR0ZQX0tFUk5FTCwgJmRpci0+bnBlX2N0eF9waHlzKTsKKwlpZiAoIWRpci0+bnBlX2N0eCkgeworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJcmVzZXRfc2FfZGlyKGRpcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfc2FfZGlyKHN0cnVjdCBpeF9zYV9kaXIgKmRpcikKK3sKKwltZW1zZXQoZGlyLT5ucGVfY3R4LCAwLCBOUEVfQ1RYX0xFTik7CisJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgZGlyLT5ucGVfY3R4LCBkaXItPm5wZV9jdHhfcGh5cyk7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF90Zm0oc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlpbnQgcmV0OworCisJYXRvbWljX3NldCgmY3R4LT5jb25maWd1cmluZywgMCk7CisJcmV0ID0gaW5pdF9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSBpbml0X3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKKwlpZiAocmV0KSB7CisJCWZyZWVfc2FfZGlyKCZjdHgtPmVuY3J5cHQpOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGluaXRfdGZtX2FibGsoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwl0Zm0tPmNydF9hYmxrY2lwaGVyLnJlcXNpemUgPSBzaXplb2Yoc3RydWN0IGFibGtfY3R4KTsKKwlyZXR1cm4gaW5pdF90Zm0odGZtKTsKK30KKworc3RhdGljIGludCBpbml0X3RmbV9hZWFkKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJdGZtLT5jcnRfYWVhZC5yZXFzaXplID0gc2l6ZW9mKHN0cnVjdCBhZWFkX2N0eCk7CisJcmV0dXJuIGluaXRfdGZtKHRmbSk7Cit9CisKK3N0YXRpYyB2b2lkIGV4aXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJZnJlZV9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJZnJlZV9zYV9kaXIoJmN0eC0+ZGVjcnlwdCk7Cit9CisKK3N0YXRpYyBpbnQgcmVnaXN0ZXJfY2hhaW5fdmFyKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4IHhwYWQsIHUzMiB0YXJnZXQsCisJCWludCBpbml0X2xlbiwgdTMyIGN0eF9hZGRyLCBjb25zdCB1OCAqa2V5LCBpbnQga2V5X2xlbikKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdDsKKwlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZjsKKwlpbnQgaTsKKwl1OCAqcGFkOworCXUzMiBwYWRfcGh5cywgYnVmX3BoeXM7CisKKwlCVUlMRF9CVUdfT04oTlBFX0NUWF9MRU4gPCBITUFDX1BBRF9CTE9DS0xFTik7CisJcGFkID0gZG1hX3Bvb2xfYWxsb2MoY3R4X3Bvb2wsIEdGUF9LRVJORUwsICZwYWRfcGh5cyk7CisJaWYgKCFwYWQpCisJCXJldHVybiAtRU5PTUVNOworCWJ1ZiA9IGRtYV9wb29sX2FsbG9jKGJ1ZmZlcl9wb29sLCBHRlBfS0VSTkVMLCAmYnVmX3BoeXMpOworCWlmICghYnVmKSB7CisJCWRtYV9wb29sX2ZyZWUoY3R4X3Bvb2wsIHBhZCwgcGFkX3BoeXMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJY3J5cHQgPSBnZXRfY3J5cHRfZGVzY19lbWVyZygpOworCWlmICghY3J5cHQpIHsKKwkJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgcGFkLCBwYWRfcGh5cyk7CisJCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIGJ1ZiwgYnVmX3BoeXMpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwltZW1jcHkocGFkLCBrZXksIGtleV9sZW4pOworCW1lbXNldChwYWQgKyBrZXlfbGVuLCAwLCBITUFDX1BBRF9CTE9DS0xFTiAtIGtleV9sZW4pOworCWZvciAoaSA9IDA7IGkgPCBITUFDX1BBRF9CTE9DS0xFTjsgaSsrKSB7CisJCXBhZFtpXSBePSB4cGFkOworCX0KKworCWNyeXB0LT5kYXRhLnRmbSA9IHRmbTsKKwljcnlwdC0+cmVnaXN0X3B0ciA9IHBhZDsKKwljcnlwdC0+cmVnaXN0X2J1ZiA9IGJ1ZjsKKworCWNyeXB0LT5hdXRoX29mZnMgPSAwOworCWNyeXB0LT5hdXRoX2xlbiA9IEhNQUNfUEFEX0JMT0NLTEVOOworCWNyeXB0LT5jcnlwdG9fY3R4ID0gY3R4X2FkZHI7CisJY3J5cHQtPnNyY19idWYgPSBidWZfcGh5czsKKwljcnlwdC0+aWN2X3Jldl9hZXMgPSB0YXJnZXQ7CisJY3J5cHQtPm1vZGUgPSBOUEVfT1BfSEFTSF9HRU5fSUNWOworCWNyeXB0LT5pbml0X2xlbiA9IGluaXRfbGVuOworCWNyeXB0LT5jdGxfZmxhZ3MgfD0gQ1RMX0ZMQUdfR0VOX0lDVjsKKworCWJ1Zi0+bmV4dCA9IDA7CisJYnVmLT5idWZfbGVuID0gSE1BQ19QQURfQkxPQ0tMRU47CisJYnVmLT5wa3RfbGVuID0gMDsKKwlidWYtPnBoeXNfYWRkciA9IHBhZF9waHlzOworCisJYXRvbWljX2luYygmY3R4LT5jb25maWd1cmluZyk7CisJcW1ncl9wdXRfZW50cnkoU0VORF9RSUQsIGNyeXB0X3ZpcnQycGh5cyhjcnlwdCkpOworCUJVR19PTihxbWdyX3N0YXRfb3ZlcmZsb3coU0VORF9RSUQpKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZXR1cF9hdXRoKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGludCBlbmNyeXB0LCB1bnNpZ25lZCBhdXRoc2l6ZSwKKwkJY29uc3QgdTggKmtleSwgaW50IGtleV9sZW4sIHVuc2lnbmVkIGRpZ2VzdF9sZW4pCit7CisJdTMyIGl0YXJnZXQsIG90YXJnZXQsIG5wZV9jdHhfYWRkcjsKKwl1bnNpZ25lZCBjaGFyICpjaW5mbzsKKwlpbnQgaW5pdF9sZW4sIHJldCA9IDA7CisJdTMyIGNmZ3dvcmQ7CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gKmFsZ287CisKKwlkaXIgPSBlbmNyeXB0ID8gJmN0eC0+ZW5jcnlwdCA6ICZjdHgtPmRlY3J5cHQ7CisJY2luZm8gPSBkaXItPm5wZV9jdHggKyBkaXItPm5wZV9jdHhfaWR4OworCWFsZ28gPSBpeF9oYXNoKHRmbSk7CisKKwkvKiB3cml0ZSBjZmcgd29yZCB0byBjcnlwdGluZm8gKi8KKwljZmd3b3JkID0gYWxnby0+Y2Znd29yZCB8ICggYXV0aHNpemUgPDwgNik7IC8qIChhdXRoc2l6ZS80KSA8PCA4ICovCisJKih1MzIqKWNpbmZvID0gY3B1X3RvX2JlMzIoY2Znd29yZCk7CisJY2luZm8gKz0gc2l6ZW9mKGNmZ3dvcmQpOworCisJLyogd3JpdGUgSUNWIHRvIGNyeXB0aW5mbyAqLworCW1lbWNweShjaW5mbywgYWxnby0+aWN2LCBkaWdlc3RfbGVuKTsKKwljaW5mbyArPSBkaWdlc3RfbGVuOworCisJaXRhcmdldCA9IGRpci0+bnBlX2N0eF9waHlzICsgZGlyLT5ucGVfY3R4X2lkeAorCQkJCSsgc2l6ZW9mKGFsZ28tPmNmZ3dvcmQpOworCW90YXJnZXQgPSBpdGFyZ2V0ICsgZGlnZXN0X2xlbjsKKwlpbml0X2xlbiA9IGNpbmZvIC0gKGRpci0+bnBlX2N0eCArIGRpci0+bnBlX2N0eF9pZHgpOworCW5wZV9jdHhfYWRkciA9IGRpci0+bnBlX2N0eF9waHlzICsgZGlyLT5ucGVfY3R4X2lkeDsKKworCWRpci0+bnBlX2N0eF9pZHggKz0gaW5pdF9sZW47CisJZGlyLT5ucGVfbW9kZSB8PSBOUEVfT1BfSEFTSF9FTkFCTEU7CisKKwlpZiAoIWVuY3J5cHQpCisJCWRpci0+bnBlX21vZGUgfD0gTlBFX09QX0hBU0hfVkVSSUZZOworCisJcmV0ID0gcmVnaXN0ZXJfY2hhaW5fdmFyKHRmbSwgSE1BQ19PUEFEX1ZBTFVFLCBvdGFyZ2V0LAorCQkJaW5pdF9sZW4sIG5wZV9jdHhfYWRkciwga2V5LCBrZXlfbGVuKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldHVybiByZWdpc3Rlcl9jaGFpbl92YXIodGZtLCBITUFDX0lQQURfVkFMVUUsIGl0YXJnZXQsCisJCQlpbml0X2xlbiwgbnBlX2N0eF9hZGRyLCBrZXksIGtleV9sZW4pOworfQorCitzdGF0aWMgaW50IGdlbl9yZXZfYWVzX2tleShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXN0cnVjdCBpeF9zYV9kaXIgKmRpciA9ICZjdHgtPmRlY3J5cHQ7CisKKwljcnlwdCA9IGdldF9jcnlwdF9kZXNjX2VtZXJnKCk7CisJaWYgKCFjcnlwdCkgeworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJKih1MzIqKWRpci0+bnBlX2N0eCB8PSBjcHVfdG9fYmUzMihDSVBIX0VOQ1IpOworCisJY3J5cHQtPmRhdGEudGZtID0gdGZtOworCWNyeXB0LT5jcnlwdF9vZmZzID0gMDsKKwljcnlwdC0+Y3J5cHRfbGVuID0gQUVTX0JMT0NLMTI4OworCWNyeXB0LT5zcmNfYnVmID0gMDsKKwljcnlwdC0+Y3J5cHRvX2N0eCA9IGRpci0+bnBlX2N0eF9waHlzOworCWNyeXB0LT5pY3ZfcmV2X2FlcyA9IGRpci0+bnBlX2N0eF9waHlzICsgc2l6ZW9mKHUzMik7CisJY3J5cHQtPm1vZGUgPSBOUEVfT1BfRU5DX0dFTl9LRVk7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKwljcnlwdC0+Y3RsX2ZsYWdzIHw9IENUTF9GTEFHX0dFTl9SRVZBRVM7CisKKwlhdG9taWNfaW5jKCZjdHgtPmNvbmZpZ3VyaW5nKTsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNldHVwX2NpcGhlcihzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBpbnQgZW5jcnlwdCwKKwkJY29uc3QgdTggKmtleSwgaW50IGtleV9sZW4pCit7CisJdTggKmNpbmZvOworCXUzMiBjaXBoZXJfY2ZnOworCXUzMiBrZXlsZW5fY2ZnID0gMDsKKwlzdHJ1Y3QgaXhfc2FfZGlyICpkaXI7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyICpmbGFncyA9ICZ0Zm0tPmNydF9mbGFnczsKKworCWRpciA9IGVuY3J5cHQgPyAmY3R4LT5lbmNyeXB0IDogJmN0eC0+ZGVjcnlwdDsKKwljaW5mbyA9IGRpci0+bnBlX2N0eDsKKworCWlmIChlbmNyeXB0KSB7CisJCWNpcGhlcl9jZmcgPSBjaXBoZXJfY2ZnX2VuYyh0Zm0pOworCQlkaXItPm5wZV9tb2RlIHw9IE5QRV9PUF9DUllQVF9FTkNSWVBUOworCX0gZWxzZSB7CisJCWNpcGhlcl9jZmcgPSBjaXBoZXJfY2ZnX2RlYyh0Zm0pOworCX0KKwlpZiAoY2lwaGVyX2NmZyAmIE1PRF9BRVMpIHsKKwkJc3dpdGNoIChrZXlfbGVuKSB7CisJCQljYXNlIDE2OiBrZXlsZW5fY2ZnID0gTU9EX0FFUzEyOCB8IEtFWUxFTl8xMjg7IGJyZWFrOworCQkJY2FzZSAyNDoga2V5bGVuX2NmZyA9IE1PRF9BRVMxOTIgfCBLRVlMRU5fMTkyOyBicmVhazsKKwkJCWNhc2UgMzI6IGtleWxlbl9jZmcgPSBNT0RfQUVTMjU2IHwgS0VZTEVOXzI1NjsgYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCSpmbGFncyB8PSBDUllQVE9fVEZNX1JFU19CQURfS0VZX0xFTjsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQljaXBoZXJfY2ZnIHw9IGtleWxlbl9jZmc7CisJfSBlbHNlIGlmIChjaXBoZXJfY2ZnICYgTU9EXzNERVMpIHsKKwkJY29uc3QgdTMyICpLID0gKGNvbnN0IHUzMiAqKWtleTsKKwkJaWYgKHVubGlrZWx5KCEoKEtbMF0gXiBLWzJdKSB8IChLWzFdIF4gS1szXSkpIHx8CisJCQkgICAgICEoKEtbMl0gXiBLWzRdKSB8IChLWzNdIF4gS1s1XSkpKSkKKwkJeworCQkJKmZsYWdzIHw9IENSWVBUT19URk1fUkVTX0JBRF9LRVlfU0NIRUQ7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0gZWxzZSB7CisJCXUzMiB0bXBbREVTX0VYUEtFWV9XT1JEU107CisJCWlmIChkZXNfZWtleSh0bXAsIGtleSkgPT0gMCkgeworCQkJKmZsYWdzIHw9IENSWVBUT19URk1fUkVTX1dFQUtfS0VZOworCQl9CisJfQorCS8qIHdyaXRlIGNmZyB3b3JkIHRvIGNyeXB0aW5mbyAqLworCSoodTMyKiljaW5mbyA9IGNwdV90b19iZTMyKGNpcGhlcl9jZmcpOworCWNpbmZvICs9IHNpemVvZihjaXBoZXJfY2ZnKTsKKworCS8qIHdyaXRlIGNpcGhlciBrZXkgdG8gY3J5cHRpbmZvICovCisJbWVtY3B5KGNpbmZvLCBrZXksIGtleV9sZW4pOworCS8qIE5QRSB3YW50cyBrZXlsZW4gc2V0IHRvIERFUzNfRURFX0tFWV9TSVpFIGV2ZW4gZm9yIHNpbmdsZSBERVMgKi8KKwlpZiAoa2V5X2xlbiA8IERFUzNfRURFX0tFWV9TSVpFICYmICEoY2lwaGVyX2NmZyAmIE1PRF9BRVMpKSB7CisJCW1lbXNldChjaW5mbyArIGtleV9sZW4sIDAsIERFUzNfRURFX0tFWV9TSVpFIC1rZXlfbGVuKTsKKwkJa2V5X2xlbiA9IERFUzNfRURFX0tFWV9TSVpFOworCX0KKwlkaXItPm5wZV9jdHhfaWR4ID0gc2l6ZW9mKGNpcGhlcl9jZmcpICsga2V5X2xlbjsKKwlkaXItPm5wZV9tb2RlIHw9IE5QRV9PUF9DUllQVF9FTkFCTEU7CisJaWYgKChjaXBoZXJfY2ZnICYgTU9EX0FFUykgJiYgIWVuY3J5cHQpIHsKKwkJcmV0dXJuIGdlbl9yZXZfYWVzX2tleSh0Zm0pOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjb3VudF9zZyhzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmJ5dGVzKQoreworCWludCBpOworCWZvciAoaSA9IDA7IG5ieXRlcyA+IDA7IGkrKywgc2cgPSBzZ19uZXh0KHNnKSkKKwkJbmJ5dGVzIC09IHNnLT5sZW5ndGg7CisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmNoYWludXBfYnVmZmVycyhzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAorCQkJdW5zaWduZWQgbmJ5dGVzLCBzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZiwgZ2ZwX3QgZmxhZ3MpCit7CisJaW50IG5lbnRzID0gMDsKKworCXdoaWxlIChuYnl0ZXMgPiAwKSB7CisJCXN0cnVjdCBidWZmZXJfZGVzYyAqbmV4dF9idWY7CisJCXUzMiBuZXh0X2J1Zl9waHlzOworCQl1bnNpZ25lZCBsZW4gPSBtaW4obmJ5dGVzLCBzZ19kbWFfbGVuKHNnKSk7CisKKwkJbmVudHMrKzsKKwkJbmJ5dGVzIC09IGxlbjsKKwkJaWYgKCFidWYtPnBoeXNfYWRkcikgeworCQkJYnVmLT5waHlzX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7CisJCQlidWYtPmJ1Zl9sZW4gPSBsZW47CisJCQlidWYtPm5leHQgPSBOVUxMOworCQkJYnVmLT5waHlzX25leHQgPSAwOworCQkJZ290byBuZXh0OworCQl9CisJCS8qIFR3byBjb25zZWN1dGl2ZSBjaHVua3Mgb24gb25lIHBhZ2UgbWF5IGJlIGhhbmRsZWQgYnkgdGhlIG9sZAorCQkgKiBidWZmZXIgZGVzY3JpcHRvciwgaW5jcmVhc2VkIGJ5IHRoZSBsZW5ndGggb2YgdGhlIG5ldyBvbmUKKwkJICovCisJCWlmIChzZ19kbWFfYWRkcmVzcyhzZykgPT0gYnVmLT5waHlzX2FkZHIgKyBidWYtPmJ1Zl9sZW4pIHsKKwkJCWJ1Zi0+YnVmX2xlbiArPSBsZW47CisJCQlnb3RvIG5leHQ7CisJCX0KKwkJbmV4dF9idWYgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsICZuZXh0X2J1Zl9waHlzKTsKKwkJaWYgKCFuZXh0X2J1ZikKKwkJCXJldHVybiBOVUxMOworCQlidWYtPm5leHQgPSBuZXh0X2J1ZjsKKwkJYnVmLT5waHlzX25leHQgPSBuZXh0X2J1Zl9waHlzOworCisJCWJ1ZiA9IG5leHRfYnVmOworCQlidWYtPm5leHQgPSBOVUxMOworCQlidWYtPnBoeXNfbmV4dCA9IDA7CisJCWJ1Zi0+cGh5c19hZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOworCQlidWYtPmJ1Zl9sZW4gPSBsZW47CituZXh0OgorCQlpZiAobmJ5dGVzID4gMCkgeworCQkJc2cgPSBzZ19uZXh0KHNnKTsKKwkJfQorCX0KKwlyZXR1cm4gYnVmOworfQorCitzdGF0aWMgaW50IGFibGtfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleV9sZW4pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hYmxrY2lwaGVyX2N0eCh0Zm0pOworCXUzMiAqZmxhZ3MgPSAmdGZtLT5iYXNlLmNydF9mbGFnczsKKwlpbnQgcmV0OworCisJaW5pdF9jb21wbGV0aW9uKCZjdHgtPmNvbXBsZXRpb24pOworCWF0b21pY19pbmMoJmN0eC0+Y29uZmlndXJpbmcpOworCisJcmVzZXRfc2FfZGlyKCZjdHgtPmVuY3J5cHQpOworCXJlc2V0X3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKKworCWN0eC0+ZW5jcnlwdC5ucGVfbW9kZSA9IE5QRV9PUF9ITUFDX0RJU0FCTEU7CisJY3R4LT5kZWNyeXB0Lm5wZV9tb2RlID0gTlBFX09QX0hNQUNfRElTQUJMRTsKKworCXJldCA9IHNldHVwX2NpcGhlcigmdGZtLT5iYXNlLCAwLCBrZXksIGtleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2NpcGhlcigmdGZtLT5iYXNlLCAxLCBrZXksIGtleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKCpmbGFncyAmIENSWVBUT19URk1fUkVTX1dFQUtfS0VZKSB7CisJCWlmICgqZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9XRUFLX0tFWSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJfSBlbHNlIHsKKwkJCSpmbGFncyAmPSB+Q1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7CisJCX0KKwl9CitvdXQ6CisJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFibGtfcmZjMzY4Nl9zZXRrZXkoc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCXVuc2lnbmVkIGludCBrZXlfbGVuKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWJsa2NpcGhlcl9jdHgodGZtKTsKKworCS8qIHRoZSBub25jZSBpcyBzdG9yZWQgaW4gYnl0ZXMgYXQgZW5kIG9mIGtleSAqLworCWlmIChrZXlfbGVuIDwgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW1jcHkoY3R4LT5ub25jZSwga2V5ICsgKGtleV9sZW4gLSBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFKSwKKwkJCUNUUl9SRkMzNjg2X05PTkNFX1NJWkUpOworCisJa2V5X2xlbiAtPSBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFOworCXJldHVybiBhYmxrX3NldGtleSh0Zm0sIGtleSwga2V5X2xlbik7Cit9CisKK3N0YXRpYyBpbnQgYWJsa19wZXJmb3JtKHN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcSwgaW50IGVuY3J5cHQpCit7CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0gPSBjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FibGtjaXBoZXJfY3R4KHRmbSk7CisJdW5zaWduZWQgaXZzaXplID0gY3J5cHRvX2FibGtjaXBoZXJfaXZzaXplKHRmbSk7CisJaW50IHJldCA9IC1FTk9NRU07CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXVuc2lnbmVkIGludCBuYnl0ZXMgPSByZXEtPm5ieXRlcywgbmVudHM7CisJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gc3JjX2RpcmVjdGlvbiA9IERNQV9CSURJUkVDVElPTkFMOworCXN0cnVjdCBhYmxrX2N0eCAqcmVxX2N0eCA9IGFibGtjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKKwlnZnBfdCBmbGFncyA9IHJlcS0+YmFzZS5mbGFncyAmIENSWVBUT19URk1fUkVRX01BWV9TTEVFUCA/CisJCQkJR0ZQX0tFUk5FTCA6IEdGUF9BVE9NSUM7CisKKwlpZiAocW1ncl9zdGF0X2Z1bGwoU0VORF9RSUQpKQorCQlyZXR1cm4gLUVBR0FJTjsKKwlpZiAoYXRvbWljX3JlYWQoJmN0eC0+Y29uZmlndXJpbmcpKQorCQlyZXR1cm4gLUVBR0FJTjsKKworCWRpciA9IGVuY3J5cHQgPyAmY3R4LT5lbmNyeXB0IDogJmN0eC0+ZGVjcnlwdDsKKworCWNyeXB0ID0gZ2V0X2NyeXB0X2Rlc2MoKTsKKwlpZiAoIWNyeXB0KQorCQlyZXR1cm4gcmV0OworCisJY3J5cHQtPmRhdGEuYWJsa19yZXEgPSByZXE7CisJY3J5cHQtPmNyeXB0b19jdHggPSBkaXItPm5wZV9jdHhfcGh5czsKKwljcnlwdC0+bW9kZSA9IGRpci0+bnBlX21vZGU7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKworCWNyeXB0LT5jcnlwdF9vZmZzID0gMDsKKwljcnlwdC0+Y3J5cHRfbGVuID0gbmJ5dGVzOworCisJQlVHX09OKGl2c2l6ZSAmJiAhcmVxLT5pbmZvKTsKKwltZW1jcHkoY3J5cHQtPml2LCByZXEtPmluZm8sIGl2c2l6ZSk7CisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCWNyeXB0LT5tb2RlIHw9IE5QRV9PUF9OT1RfSU5fUExBQ0U7CisJCW5lbnRzID0gY291bnRfc2cocmVxLT5kc3QsIG5ieXRlcyk7CisJCS8qIFRoaXMgd2FzIG5ldmVyIHRlc3RlZCBieSBJbnRlbAorCQkgKiBmb3IgbW9yZSB0aGFuIG9uZSBkc3QgYnVmZmVyLCBJIHRoaW5rLiAqLworCQlCVUdfT04obmVudHMgIT0gMSk7CisJCXJlcV9jdHgtPmRzdF9uZW50cyA9IG5lbnRzOworCQlkbWFfbWFwX3NnKGRldiwgcmVxLT5kc3QsIG5lbnRzLCBETUFfRlJPTV9ERVZJQ0UpOworCQlyZXFfY3R4LT5kc3QgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsJmNyeXB0LT5kc3RfYnVmKTsKKwkJaWYgKCFyZXFfY3R4LT5kc3QpCisJCQlnb3RvIHVubWFwX3NnX2Rlc3Q7CisJCXJlcV9jdHgtPmRzdC0+cGh5c19hZGRyID0gMDsKKwkJaWYgKCFjaGFpbnVwX2J1ZmZlcnMocmVxLT5kc3QsIG5ieXRlcywgcmVxX2N0eC0+ZHN0LCBmbGFncykpCisJCQlnb3RvIGZyZWVfYnVmX2Rlc3Q7CisJCXNyY19kaXJlY3Rpb24gPSBETUFfVE9fREVWSUNFOworCX0gZWxzZSB7CisJCXJlcV9jdHgtPmRzdCA9IE5VTEw7CisJCXJlcV9jdHgtPmRzdF9uZW50cyA9IDA7CisJfQorCW5lbnRzID0gY291bnRfc2cocmVxLT5zcmMsIG5ieXRlcyk7CisJcmVxX2N0eC0+c3JjX25lbnRzID0gbmVudHM7CisJZG1hX21hcF9zZyhkZXYsIHJlcS0+c3JjLCBuZW50cywgc3JjX2RpcmVjdGlvbik7CisKKwlyZXFfY3R4LT5zcmMgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsICZjcnlwdC0+c3JjX2J1Zik7CisJaWYgKCFyZXFfY3R4LT5zcmMpCisJCWdvdG8gdW5tYXBfc2dfc3JjOworCXJlcV9jdHgtPnNyYy0+cGh5c19hZGRyID0gMDsKKwlpZiAoIWNoYWludXBfYnVmZmVycyhyZXEtPnNyYywgbmJ5dGVzLCByZXFfY3R4LT5zcmMsIGZsYWdzKSkKKwkJZ290byBmcmVlX2J1Zl9zcmM7CisKKwljcnlwdC0+Y3RsX2ZsYWdzIHw9IENUTF9GTEFHX1BFUkZPUk1fQUJMSzsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAtRUlOUFJPR1JFU1M7CisKK2ZyZWVfYnVmX3NyYzoKKwlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5zcmMsIGNyeXB0LT5zcmNfYnVmKTsKK3VubWFwX3NnX3NyYzoKKwlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgcmVxX2N0eC0+c3JjX25lbnRzLCBzcmNfZGlyZWN0aW9uKTsKK2ZyZWVfYnVmX2Rlc3Q6CisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPmRzdCwgY3J5cHQtPmRzdF9idWYpOwordW5tYXBfc2dfZGVzdDoKKwkJZG1hX3VubWFwX3NnKGRldiwgcmVxLT5zcmMsIHJlcV9jdHgtPmRzdF9uZW50cywKKwkJCURNQV9GUk9NX0RFVklDRSk7CisJfQorCWNyeXB0LT5jdGxfZmxhZ3MgPSBDVExfRkxBR19VTlVTRUQ7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhYmxrX2VuY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBhYmxrX3BlcmZvcm0ocmVxLCAxKTsKK30KKworc3RhdGljIGludCBhYmxrX2RlY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBhYmxrX3BlcmZvcm0ocmVxLCAwKTsKK30KKworc3RhdGljIGludCBhYmxrX3JmYzM2ODZfY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtID0gY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSk7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hYmxrY2lwaGVyX2N0eCh0Zm0pOworCXU4IGl2W0NUUl9SRkMzNjg2X0JMT0NLX1NJWkVdOworCXU4ICppbmZvID0gcmVxLT5pbmZvOworCWludCByZXQ7CisKKwkvKiBzZXQgdXAgY291bnRlciBibG9jayAqLworICAgICAgICBtZW1jcHkoaXYsIGN0eC0+bm9uY2UsIENUUl9SRkMzNjg2X05PTkNFX1NJWkUpOworCW1lbWNweShpdiArIENUUl9SRkMzNjg2X05PTkNFX1NJWkUsIGluZm8sIENUUl9SRkMzNjg2X0lWX1NJWkUpOworCisJLyogaW5pdGlhbGl6ZSBjb3VudGVyIHBvcnRpb24gb2YgY291bnRlciBibG9jayAqLworCSooX19iZTMyICopKGl2ICsgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSArIENUUl9SRkMzNjg2X0lWX1NJWkUpID0KKwkJY3B1X3RvX2JlMzIoMSk7CisKKwlyZXEtPmluZm8gPSBpdjsKKwlyZXQgPSBhYmxrX3BlcmZvcm0ocmVxLCAxKTsKKwlyZXEtPmluZm8gPSBpbmZvOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaG1hY19pbmNvbnNpc3RlbnQoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgdW5zaWduZWQgc3RhcnQsCisJCXVuc2lnbmVkIGludCBuYnl0ZXMpCit7CisJaW50IG9mZnNldCA9IDA7CisKKwlpZiAoIW5ieXRlcykKKwkJcmV0dXJuIDA7CisKKwlmb3IgKDs7KSB7CisJCWlmIChzdGFydCA8IG9mZnNldCArIHNnLT5sZW5ndGgpCisJCQlicmVhazsKKworCQlvZmZzZXQgKz0gc2ctPmxlbmd0aDsKKwkJc2cgPSBzZ19uZXh0KHNnKTsKKwl9CisJcmV0dXJuIChzdGFydCArIG5ieXRlcyA+IG9mZnNldCArIHNnLT5sZW5ndGgpOworfQorCitzdGF0aWMgaW50IGFlYWRfcGVyZm9ybShzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEsIGludCBlbmNyeXB0LAorCQlpbnQgY3J5cHRvZmZzZXQsIGludCBlZmZfY3J5cHRsZW4sIHU4ICppdikKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSA9IGNyeXB0b19hZWFkX3JlcXRmbShyZXEpOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwl1bnNpZ25lZCBpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUodGZtKTsKKwl1bnNpZ25lZCBhdXRoc2l6ZSA9IGNyeXB0b19hZWFkX2F1dGhzaXplKHRmbSk7CisJaW50IHJldCA9IC1FTk9NRU07CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXVuc2lnbmVkIGludCBjcnlwdGxlbiwgbmVudHM7CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpidWY7CisJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCWdmcF90IGZsYWdzID0gcmVxLT5iYXNlLmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQID8KKwkJCQlHRlBfS0VSTkVMIDogR0ZQX0FUT01JQzsKKworCWlmIChxbWdyX3N0YXRfZnVsbChTRU5EX1FJRCkpCisJCXJldHVybiAtRUFHQUlOOworCWlmIChhdG9taWNfcmVhZCgmY3R4LT5jb25maWd1cmluZykpCisJCXJldHVybiAtRUFHQUlOOworCisJaWYgKGVuY3J5cHQpIHsKKwkJZGlyID0gJmN0eC0+ZW5jcnlwdDsKKwkJY3J5cHRsZW4gPSByZXEtPmNyeXB0bGVuOworCX0gZWxzZSB7CisJCWRpciA9ICZjdHgtPmRlY3J5cHQ7CisJCS8qIHJlcS0+Y3J5cHRsZW4gaW5jbHVkZXMgdGhlIGF1dGhzaXplIHdoZW4gZGVjcnlwdGluZyAqLworCQljcnlwdGxlbiA9IHJlcS0+Y3J5cHRsZW4gLWF1dGhzaXplOworCQllZmZfY3J5cHRsZW4gLT0gYXV0aHNpemU7CisJfQorCWNyeXB0ID0gZ2V0X2NyeXB0X2Rlc2MoKTsKKwlpZiAoIWNyeXB0KQorCQlyZXR1cm4gcmV0OworCisJY3J5cHQtPmRhdGEuYWVhZF9yZXEgPSByZXE7CisJY3J5cHQtPmNyeXB0b19jdHggPSBkaXItPm5wZV9jdHhfcGh5czsKKwljcnlwdC0+bW9kZSA9IGRpci0+bnBlX21vZGU7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKworCWNyeXB0LT5jcnlwdF9vZmZzID0gY3J5cHRvZmZzZXQ7CisJY3J5cHQtPmNyeXB0X2xlbiA9IGVmZl9jcnlwdGxlbjsKKworCWNyeXB0LT5hdXRoX29mZnMgPSAwOworCWNyeXB0LT5hdXRoX2xlbiA9IHJlcS0+YXNzb2NsZW4gKyBpdnNpemUgKyBjcnlwdGxlbjsKKwlCVUdfT04oaXZzaXplICYmICFyZXEtPml2KTsKKwltZW1jcHkoY3J5cHQtPml2LCByZXEtPml2LCBpdnNpemUpOworCisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCUJVRygpOyAvKiAtRU5PVFNVUCBiZWNhdXNlIG9mIG15IGxhenluZXNzICovCisJfQorCisJcmVxX2N0eC0+YnVmZmVyID0gZG1hX3Bvb2xfYWxsb2MoYnVmZmVyX3Bvb2wsIGZsYWdzLCAmY3J5cHQtPnNyY19idWYpOworCWlmICghcmVxX2N0eC0+YnVmZmVyKQorCQlnb3RvIG91dDsKKwlyZXFfY3R4LT5idWZmZXItPnBoeXNfYWRkciA9IDA7CisJLyogQVNTT0MgZGF0YSAqLworCW5lbnRzID0gY291bnRfc2cocmVxLT5hc3NvYywgcmVxLT5hc3NvY2xlbik7CisJcmVxX2N0eC0+YXNzb2NfbmVudHMgPSBuZW50czsKKwlkbWFfbWFwX3NnKGRldiwgcmVxLT5hc3NvYywgbmVudHMsIERNQV9UT19ERVZJQ0UpOworCWJ1ZiA9IGNoYWludXBfYnVmZmVycyhyZXEtPmFzc29jLCByZXEtPmFzc29jbGVuLCByZXFfY3R4LT5idWZmZXIsZmxhZ3MpOworCWlmICghYnVmKQorCQlnb3RvIHVubWFwX3NnX2Fzc29jOworCS8qIElWICovCisJc2dfaW5pdF90YWJsZSgmcmVxX2N0eC0+aXZsaXN0LCAxKTsKKwlzZ19zZXRfYnVmKCZyZXFfY3R4LT5pdmxpc3QsIGl2LCBpdnNpemUpOworCWRtYV9tYXBfc2coZGV2LCAmcmVxX2N0eC0+aXZsaXN0LCAxLCBETUFfQklESVJFQ1RJT05BTCk7CisJYnVmID0gY2hhaW51cF9idWZmZXJzKCZyZXFfY3R4LT5pdmxpc3QsIGl2c2l6ZSwgYnVmLCBmbGFncyk7CisJaWYgKCFidWYpCisJCWdvdG8gdW5tYXBfc2dfaXY7CisJaWYgKHVubGlrZWx5KGhtYWNfaW5jb25zaXN0ZW50KHJlcS0+c3JjLCBjcnlwdGxlbiwgYXV0aHNpemUpKSkgeworCQkvKiBUaGUgMTIgaG1hYyBieXRlcyBhcmUgc2NhdHRlcmVkLAorCQkgKiB3ZSBuZWVkIHRvIGNvcHkgdGhlbSBpbnRvIGEgc2FmZSBidWZmZXIgKi8KKwkJcmVxX2N0eC0+aG1hY192aXJ0ID0gZG1hX3Bvb2xfYWxsb2MoYnVmZmVyX3Bvb2wsIGZsYWdzLAorCQkJCSZjcnlwdC0+aWN2X3Jldl9hZXMpOworCQlpZiAodW5saWtlbHkoIXJlcV9jdHgtPmhtYWNfdmlydCkpCisJCQlnb3RvIHVubWFwX3NnX2l2OworCQlpZiAoIWVuY3J5cHQpIHsKKwkJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShyZXFfY3R4LT5obWFjX3ZpcnQsCisJCQkJcmVxLT5zcmMsIGNyeXB0bGVuLCBhdXRoc2l6ZSwgMCk7CisJCX0KKwkJcmVxX2N0eC0+ZW5jcnlwdCA9IGVuY3J5cHQ7CisJfSBlbHNlIHsKKwkJcmVxX2N0eC0+aG1hY192aXJ0ID0gTlVMTDsKKwl9CisJLyogQ3J5cHQgKi8KKwluZW50cyA9IGNvdW50X3NnKHJlcS0+c3JjLCBjcnlwdGxlbiArIGF1dGhzaXplKTsKKwlyZXFfY3R4LT5zcmNfbmVudHMgPSBuZW50czsKKwlkbWFfbWFwX3NnKGRldiwgcmVxLT5zcmMsIG5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CisJYnVmID0gY2hhaW51cF9idWZmZXJzKHJlcS0+c3JjLCBjcnlwdGxlbiArIGF1dGhzaXplLCBidWYsIGZsYWdzKTsKKwlpZiAoIWJ1ZikKKwkJZ290byB1bm1hcF9zZ19zcmM7CisJaWYgKCFyZXFfY3R4LT5obWFjX3ZpcnQpIHsKKwkJY3J5cHQtPmljdl9yZXZfYWVzID0gYnVmLT5waHlzX2FkZHIgKyBidWYtPmJ1Zl9sZW4gLSBhdXRoc2l6ZTsKKwl9CisJY3J5cHQtPmN0bF9mbGFncyB8PSBDVExfRkxBR19QRVJGT1JNX0FFQUQ7CisJcW1ncl9wdXRfZW50cnkoU0VORF9RSUQsIGNyeXB0X3ZpcnQycGh5cyhjcnlwdCkpOworCUJVR19PTihxbWdyX3N0YXRfb3ZlcmZsb3coU0VORF9RSUQpKTsKKwlyZXR1cm4gLUVJTlBST0dSRVNTOwordW5tYXBfc2dfc3JjOgorCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+c3JjLCByZXFfY3R4LT5zcmNfbmVudHMsIERNQV9CSURJUkVDVElPTkFMKTsKKwlpZiAocmVxX2N0eC0+aG1hY192aXJ0KSB7CisJCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIHJlcV9jdHgtPmhtYWNfdmlydCwKKwkJCQljcnlwdC0+aWN2X3Jldl9hZXMpOworCX0KK3VubWFwX3NnX2l2OgorCWRtYV91bm1hcF9zZyhkZXYsICZyZXFfY3R4LT5pdmxpc3QsIDEsIERNQV9CSURJUkVDVElPTkFMKTsKK3VubWFwX3NnX2Fzc29jOgorCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+YXNzb2MsIHJlcV9jdHgtPmFzc29jX25lbnRzLCBETUFfVE9fREVWSUNFKTsKKwlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5idWZmZXIsIGNyeXB0LT5zcmNfYnVmKTsKK291dDoKKwljcnlwdC0+Y3RsX2ZsYWdzID0gQ1RMX0ZMQUdfVU5VU0VEOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9zZXR1cChzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgdW5zaWduZWQgaW50IGF1dGhzaXplKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwl1MzIgKmZsYWdzID0gJnRmbS0+YmFzZS5jcnRfZmxhZ3M7CisJdW5zaWduZWQgZGlnZXN0X2xlbiA9IGNyeXB0b19hZWFkX2FsZyh0Zm0pLT5tYXhhdXRoc2l6ZTsKKwlpbnQgcmV0OworCisJaWYgKCFjdHgtPmVuY2tleV9sZW4gJiYgIWN0eC0+YXV0aGtleV9sZW4pCisJCXJldHVybiAwOworCWluaXRfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlhdG9taWNfaW5jKCZjdHgtPmNvbmZpZ3VyaW5nKTsKKworCXJlc2V0X3NhX2RpcigmY3R4LT5lbmNyeXB0KTsKKwlyZXNldF9zYV9kaXIoJmN0eC0+ZGVjcnlwdCk7CisKKwlyZXQgPSBzZXR1cF9jaXBoZXIoJnRmbS0+YmFzZSwgMCwgY3R4LT5lbmNrZXksIGN0eC0+ZW5ja2V5X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0gc2V0dXBfY2lwaGVyKCZ0Zm0tPmJhc2UsIDEsIGN0eC0+ZW5ja2V5LCBjdHgtPmVuY2tleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2F1dGgoJnRmbS0+YmFzZSwgMCwgYXV0aHNpemUsIGN0eC0+YXV0aGtleSwKKwkJCWN0eC0+YXV0aGtleV9sZW4sIGRpZ2VzdF9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2F1dGgoJnRmbS0+YmFzZSwgMSwgYXV0aHNpemUsICBjdHgtPmF1dGhrZXksCisJCQljdHgtPmF1dGhrZXlfbGVuLCBkaWdlc3RfbGVuKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWlmICgqZmxhZ3MgJiBDUllQVE9fVEZNX1JFU19XRUFLX0tFWSkgeworCQlpZiAoKmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfV0VBS19LRVkpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfSBlbHNlIHsKKwkJCSpmbGFncyAmPSB+Q1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7CisJCX0KKwl9CitvdXQ6CisJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFlYWRfc2V0YXV0aHNpemUoc3RydWN0IGNyeXB0b19hZWFkICp0Zm0sIHVuc2lnbmVkIGludCBhdXRoc2l6ZSkKK3sKKwlpbnQgbWF4ID0gY3J5cHRvX2FlYWRfYWxnKHRmbSktPm1heGF1dGhzaXplID4+IDI7CisKKwlpZiAoKGF1dGhzaXplPj4yKSA8IDEgfHwgKGF1dGhzaXplPj4yKSA+IG1heCB8fCAoYXV0aHNpemUgJiAzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJcmV0dXJuIGFlYWRfc2V0dXAodGZtLCBhdXRoc2l6ZSk7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9zZXRrZXkoc3RydWN0IGNyeXB0b19hZWFkICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwlzdHJ1Y3QgcnRhdHRyICpydGEgPSAoc3RydWN0IHJ0YXR0ciAqKWtleTsKKwlzdHJ1Y3QgY3J5cHRvX2F1dGhlbmNfa2V5X3BhcmFtICpwYXJhbTsKKworCWlmICghUlRBX09LKHJ0YSwga2V5bGVuKSkKKwkJZ290byBiYWRrZXk7CisJaWYgKHJ0YS0+cnRhX3R5cGUgIT0gQ1JZUFRPX0FVVEhFTkNfS0VZQV9QQVJBTSkKKwkJZ290byBiYWRrZXk7CisJaWYgKFJUQV9QQVlMT0FEKHJ0YSkgPCBzaXplb2YoKnBhcmFtKSkKKwkJZ290byBiYWRrZXk7CisKKwlwYXJhbSA9IFJUQV9EQVRBKHJ0YSk7CisJY3R4LT5lbmNrZXlfbGVuID0gYmUzMl90b19jcHUocGFyYW0tPmVuY2tleWxlbik7CisKKwlrZXkgKz0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisJa2V5bGVuIC09IFJUQV9BTElHTihydGEtPnJ0YV9sZW4pOworCisJaWYgKGtleWxlbiA8IGN0eC0+ZW5ja2V5X2xlbikKKwkJZ290byBiYWRrZXk7CisKKwljdHgtPmF1dGhrZXlfbGVuID0ga2V5bGVuIC0gY3R4LT5lbmNrZXlfbGVuOworCW1lbWNweShjdHgtPmVuY2tleSwga2V5ICsgY3R4LT5hdXRoa2V5X2xlbiwgY3R4LT5lbmNrZXlfbGVuKTsKKwltZW1jcHkoY3R4LT5hdXRoa2V5LCBrZXksIGN0eC0+YXV0aGtleV9sZW4pOworCisJcmV0dXJuIGFlYWRfc2V0dXAodGZtLCBjcnlwdG9fYWVhZF9hdXRoc2l6ZSh0Zm0pKTsKK2JhZGtleToKKwljdHgtPmVuY2tleV9sZW4gPSAwOworCWNyeXB0b19hZWFkX3NldF9mbGFncyh0Zm0sIENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBhZWFkX2VuY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGFlYWRfcGVyZm9ybShyZXEsIDEsIHJlcS0+YXNzb2NsZW4gKyBpdnNpemUsCisJCQlyZXEtPmNyeXB0bGVuLCByZXEtPml2KTsKK30KKworc3RhdGljIGludCBhZWFkX2RlY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGFlYWRfcGVyZm9ybShyZXEsIDAsIHJlcS0+YXNzb2NsZW4gKyBpdnNpemUsCisJCQlyZXEtPmNyeXB0bGVuLCByZXEtPml2KTsKK30KKworc3RhdGljIGludCBhZWFkX2dpdmVuY3J5cHQoc3RydWN0IGFlYWRfZ2l2Y3J5cHRfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtID0gYWVhZF9naXZjcnlwdF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KHRmbSk7CisJdW5zaWduZWQgbGVuLCBpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUodGZtKTsKKwlfX2JlNjQgc2VxOworCisJLyogY29waWVkIGZyb20gZXNlcWl2LmMgKi8KKwlpZiAoIWN0eC0+c2FsdGVkKSB7CisJCWdldF9yYW5kb21fYnl0ZXMoY3R4LT5zYWx0LCBpdnNpemUpOworCQljdHgtPnNhbHRlZCA9IDE7CisJfQorCW1lbWNweShyZXEtPmFyZXEuaXYsIGN0eC0+c2FsdCwgaXZzaXplKTsKKwlsZW4gPSBpdnNpemU7CisJaWYgKGl2c2l6ZSA+IHNpemVvZih1NjQpKSB7CisJCW1lbXNldChyZXEtPmdpdiwgMCwgaXZzaXplIC0gc2l6ZW9mKHU2NCkpOworCQlsZW4gPSBzaXplb2YodTY0KTsKKwl9CisJc2VxID0gY3B1X3RvX2JlNjQocmVxLT5zZXEpOworCW1lbWNweShyZXEtPmdpdiArIGl2c2l6ZSAtIGxlbiwgJnNlcSwgbGVuKTsKKwlyZXR1cm4gYWVhZF9wZXJmb3JtKCZyZXEtPmFyZXEsIDEsIHJlcS0+YXJlcS5hc3NvY2xlbiwKKwkJCXJlcS0+YXJlcS5jcnlwdGxlbiAraXZzaXplLCByZXEtPmdpdik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXhwX2FsZyBpeHA0eHhfYWxnb3NbXSA9IHsKK3sKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY2JjKGRlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gREVTX0JMT0NLX1NJWkUsCisJCQkuZ2VuaXYJCT0gImVzZXFpdiIsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCisKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiZWNiKGRlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImNiYyhkZXMzX2VkZSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gREVTM19FREVfS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBERVMzX0VERV9LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfM0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJlY2IoZGVzM19lZGUpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFUzNfRURFX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gREVTM19FREVfS0VZX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EXzNERVMgfCBNT0RfRUNCIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImNiYyhhZXMpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFibGtjaXBoZXIgPSB7CisJCQkubWluX2tleXNpemUJPSBBRVNfTUlOX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gQUVTX01BWF9LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gQUVTX0JMT0NLX1NJWkUsCisJCQkuZ2VuaXYJCT0gImVzZXFpdiIsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfRU5DLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfREVDLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJlY2IoYWVzKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gQUVTX01JTl9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IEFFU19NQVhfS0VZX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9FQ0IsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfQUVTIHwgTU9EX0VDQiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY3RyKGFlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IEFFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IEFFU19NSU5fS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBBRVNfTUFYX0tFWV9TSVpFLAorCQkJLml2c2l6ZQkJPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NUUiwKKwkuY2ZnX2RlYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ1RSLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJyZmMzNjg2KGN0cihhZXMpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gQUVTX01JTl9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IEFFU19NQVhfS0VZX1NJWkUsCisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLmdlbml2CQk9ICJlc2VxaXYiLAorCQkJLnNldGtleQkJPSBhYmxrX3JmYzM2ODZfc2V0a2V5LAorCQkJLmVuY3J5cHQJPSBhYmxrX3JmYzM2ODZfY3J5cHQsCisJCQkuZGVjcnlwdAk9IGFibGtfcmZjMzY4Nl9jcnlwdCB9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DVFIsCisJLmNmZ19kZWMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NUUiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGRlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19tZDUsCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfREVDIHwgS0VZTEVOXzE5MiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGRlczNfZWRlKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19tZDUsCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfM0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGRlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0VOQyB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGRlczNfZWRlKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EXzNERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhhZXMpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZQk9IE1ENV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfbWQ1LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfRU5DLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfREVDLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGFlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ0JDX0VOQywKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9BRVMgfCBNT0RfQ0JDX0RFQywKK30gfTsKKworI2RlZmluZSBJWFBfUE9TVEZJWCAiLWl4cDR4eCIKK3N0YXRpYyBpbnQgX19pbml0IGl4cF9tb2R1bGVfaW5pdCh2b2lkKQoreworCWludCBudW0gPSBBUlJBWV9TSVpFKGl4cDR4eF9hbGdvcyk7CisJaW50IGksZXJyIDsKKworCWlmIChwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnBzZXVkb19kZXYpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXNwaW5fbG9ja19pbml0KCZkZXNjX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZlbWVyZ19sb2NrKTsKKworCWVyciA9IGluaXRfaXhwX2NyeXB0bygpOworCWlmIChlcnIpIHsKKwkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoJnBzZXVkb19kZXYpOworCQlyZXR1cm4gZXJyOworCX0KKwlmb3IgKGk9MDsgaTwgbnVtOyBpKyspIHsKKwkJc3RydWN0IGNyeXB0b19hbGcgKmNyYSA9ICZpeHA0eHhfYWxnb3NbaV0uY3J5cHRvOworCisJCWlmIChzbnByaW50ZihjcmEtPmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwKKwkJCSIlcyJJWFBfUE9TVEZJWCwgY3JhLT5jcmFfbmFtZSkgPj0KKwkJCUNSWVBUT19NQVhfQUxHX05BTUUpCisJCXsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghc3VwcG9ydF9hZXMgJiYgKGl4cDR4eF9hbGdvc1tpXS5jZmdfZW5jICYgTU9EX0FFUykpIHsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghaXhwNHh4X2FsZ29zW2ldLmhhc2gpIHsKKwkJCS8qIGJsb2NrIGNpcGhlcnMgKi8KKwkJCWNyYS0+Y3JhX3R5cGUgPSAmY3J5cHRvX2FibGtjaXBoZXJfdHlwZTsKKwkJCWNyYS0+Y3JhX2ZsYWdzID0gQ1JZUFRPX0FMR19UWVBFX0FCTEtDSVBIRVIgfAorCQkJCQkgQ1JZUFRPX0FMR19BU1lOQzsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5zZXRrZXkpCisJCQkJY3JhLT5jcmFfYWJsa2NpcGhlci5zZXRrZXkgPSBhYmxrX3NldGtleTsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5lbmNyeXB0KQorCQkJCWNyYS0+Y3JhX2FibGtjaXBoZXIuZW5jcnlwdCA9IGFibGtfZW5jcnlwdDsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5kZWNyeXB0KQorCQkJCWNyYS0+Y3JhX2FibGtjaXBoZXIuZGVjcnlwdCA9IGFibGtfZGVjcnlwdDsKKwkJCWNyYS0+Y3JhX2luaXQgPSBpbml0X3RmbV9hYmxrOworCQl9IGVsc2UgeworCQkJLyogYXV0aGVuYyAqLworCQkJY3JhLT5jcmFfdHlwZSA9ICZjcnlwdG9fYWVhZF90eXBlOworCQkJY3JhLT5jcmFfZmxhZ3MgPSBDUllQVE9fQUxHX1RZUEVfQUVBRCB8CisJCQkJCSBDUllQVE9fQUxHX0FTWU5DOworCQkJY3JhLT5jcmFfYWVhZC5zZXRrZXkgPSBhZWFkX3NldGtleTsKKwkJCWNyYS0+Y3JhX2FlYWQuc2V0YXV0aHNpemUgPSBhZWFkX3NldGF1dGhzaXplOworCQkJY3JhLT5jcmFfYWVhZC5lbmNyeXB0ID0gYWVhZF9lbmNyeXB0OworCQkJY3JhLT5jcmFfYWVhZC5kZWNyeXB0ID0gYWVhZF9kZWNyeXB0OworCQkJY3JhLT5jcmFfYWVhZC5naXZlbmNyeXB0ID0gYWVhZF9naXZlbmNyeXB0OworCQkJY3JhLT5jcmFfaW5pdCA9IGluaXRfdGZtX2FlYWQ7CisJCX0KKwkJY3JhLT5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaXhwX2N0eCk7CisJCWNyYS0+Y3JhX21vZHVsZSA9IFRISVNfTU9EVUxFOworCQljcmEtPmNyYV9hbGlnbm1hc2sgPSAzOworCQljcmEtPmNyYV9wcmlvcml0eSA9IDMwMDsKKwkJY3JhLT5jcmFfZXhpdCA9IGV4aXRfdGZtOworCQlpZiAoY3J5cHRvX3JlZ2lzdGVyX2FsZyhjcmEpKQorCQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgJyVzJ1xuIiwKKwkJCQljcmEtPmNyYV9uYW1lKTsKKwkJZWxzZQorCQkJaXhwNHh4X2FsZ29zW2ldLnJlZ2lzdGVyZWQgPSAxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGl4cF9tb2R1bGVfZXhpdCh2b2lkKQoreworCWludCBudW0gPSBBUlJBWV9TSVpFKGl4cDR4eF9hbGdvcyk7CisJaW50IGk7CisKKwlmb3IgKGk9MDsgaTwgbnVtOyBpKyspIHsKKwkJaWYgKGl4cDR4eF9hbGdvc1tpXS5yZWdpc3RlcmVkKQorCQkJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZpeHA0eHhfYWxnb3NbaV0uY3J5cHRvKTsKKwl9CisJcmVsZWFzZV9peHBfY3J5cHRvKCk7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoJnBzZXVkb19kZXYpOworfQorCittb2R1bGVfaW5pdChpeHBfbW9kdWxlX2luaXQpOworbW9kdWxlX2V4aXQoaXhwX21vZHVsZV9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FVVEhPUigiQ2hyaXN0aWFuIEhvaG5zdGFlZHQgPGNob2huc3RhZWR0QGlubm9taW5hdGUuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJJWFA0eHggaGFyZHdhcmUgY3J5cHRvIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLWFlcy5jCmluZGV4IGJiMzBlYjkuLjU0YTJhMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1hZXMuYwpAQCAtMzg1LDEyICszODUsMTIgQEAKIAlpbnQgcmV0OwogCiAJaWYgKCFjcHVfaGFzX3hjcnlwdCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBub3QgZGV0ZWN0ZWQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fTk9USUNFIFBGWCAiVklBIFBhZExvY2sgbm90IGRldGVjdGVkLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAogCWlmICghY3B1X2hhc194Y3J5cHRfZW5hYmxlZCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLXNoYS5jCmluZGV4IGM2NjZiNGUuLjQwZDU2ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1zaGEuYwpAQCAtMjU0LDEyICsyNTQsMTIgQEAKIAlpbnQgcmMgPSAtRU5PREVWOwogCiAJaWYgKCFjcHVfaGFzX3BoZSkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBIYXNoIEVuZ2luZSBub3QgZGV0ZWN0ZWQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fTk9USUNFIFBGWCAiVklBIFBhZExvY2sgSGFzaCBFbmdpbmUgbm90IGRldGVjdGVkLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAogCWlmICghY3B1X2hhc19waGVfZW5hYmxlZCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuYyBiL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTE5NDNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jCkBAIC0wLDAgKzEsMTU5NyBAQAorLyoKKyAqIHRhbGl0b3MgLSBGcmVlc2NhbGUgSW50ZWdyYXRlZCBTZWN1cml0eSBFbmdpbmUgKFNFQykgZGV2aWNlIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICoKKyAqIFNjYXR0ZXJsaXN0IENyeXB0byBBUEkgZ2x1ZSBjb2RlIGNvcGllZCBmcm9tIGZpbGVzIHdpdGggdGhlIGZvbGxvd2luZzoKKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA3IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCisgKiBDcnlwdG8gYWxnb3JpdGhtIHJlZ2lzdHJhdGlvbiBjb2RlIGNvcGllZCBmcm9tIGhpZm4gZHJpdmVyOgorICogMjAwNysgQ29weXJpZ2h0IChjKSBFdmdlbml5IFBvbHlha292IDxqb2hucG9sQDJrYS5taXB0LnJ1PgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2h3X3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisKKyNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2Flcy5oPgorI2luY2x1ZGUgPGNyeXB0by9kZXMuaD4KKyNpbmNsdWRlIDxjcnlwdG8vc2hhLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2FlYWQuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYXV0aGVuYy5oPgorCisjaW5jbHVkZSAidGFsaXRvcy5oIgorCisjZGVmaW5lIFRBTElUT1NfVElNRU9VVCAxMDAwMDAKKyNkZWZpbmUgVEFMSVRPU19NQVhfREFUQV9MRU4gNjU1MzUKKworI2RlZmluZSBERVNDX1RZUEUoZGVzY19oZHIpICgoYmUzMl90b19jcHUoZGVzY19oZHIpID4+IDMpICYgMHgxZikKKyNkZWZpbmUgUFJJTUFSWV9FVShkZXNjX2hkcikgKChiZTMyX3RvX2NwdShkZXNjX2hkcikgPj4gMjgpICYgMHhmKQorI2RlZmluZSBTRUNPTkRBUllfRVUoZGVzY19oZHIpICgoYmUzMl90b19jcHUoZGVzY19oZHIpID4+IDE2KSAmIDB4ZikKKworLyogZGVzY3JpcHRvciBwb2ludGVyIGVudHJ5ICovCitzdHJ1Y3QgdGFsaXRvc19wdHIgeworCV9fYmUxNiBsZW47CS8qIGxlbmd0aCAqLworCXU4IGpfZXh0ZW50OwkvKiBqdW1wIHRvIHNnIGxpbmsgdGFibGUgYW5kL29yIGV4dGVudCAqLworCXU4IGVwdHI7CS8qIGV4dGVuZGVkIGFkZHJlc3MgKi8KKwlfX2JlMzIgcHRyOwkvKiBhZGRyZXNzICovCit9OworCisvKiBkZXNjcmlwdG9yICovCitzdHJ1Y3QgdGFsaXRvc19kZXNjIHsKKwlfX2JlMzIgaGRyOwkJCS8qIGhlYWRlciBoaWdoIGJpdHMgKi8KKwlfX2JlMzIgaGRyX2xvOwkJCS8qIGhlYWRlciBsb3cgYml0cyAqLworCXN0cnVjdCB0YWxpdG9zX3B0ciBwdHJbN107CS8qIHB0ci9sZW4gcGFpciBhcnJheSAqLworfTsKKworLyoqCisgKiB0YWxpdG9zX3JlcXVlc3QgLSBkZXNjcmlwdG9yIHN1Ym1pc3Npb24gcmVxdWVzdAorICogQGRlc2M6IGRlc2NyaXB0b3IgcG9pbnRlciAoa2VybmVsIHZpcnR1YWwpCisgKiBAZG1hX2Rlc2M6IGRlc2NyaXB0b3IncyBwaHlzaWNhbCBidXMgYWRkcmVzcworICogQGNhbGxiYWNrOiB3aG9tIHRvIGNhbGwgd2hlbiBkZXNjcmlwdG9yIHByb2Nlc3NpbmcgaXMgZG9uZQorICogQGNvbnRleHQ6IGNhbGxlciBjb250ZXh0IChvcHRpb25hbCkKKyAqLworc3RydWN0IHRhbGl0b3NfcmVxdWVzdCB7CisJc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYzsKKwlkbWFfYWRkcl90IGRtYV9kZXNjOworCXZvaWQgKCpjYWxsYmFjaykgKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkgICAgICAgICAgICAgICAgICB2b2lkICpjb250ZXh0LCBpbnQgZXJyb3IpOworCXZvaWQgKmNvbnRleHQ7Cit9OworCitzdHJ1Y3QgdGFsaXRvc19wcml2YXRlIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IG9mX2RldmljZSAqb2ZkZXY7CisJdm9pZCBfX2lvbWVtICpyZWc7CisJaW50IGlycTsKKworCS8qIFNFQyB2ZXJzaW9uIGdlb21ldHJ5IChmcm9tIGRldmljZSB0cmVlIG5vZGUpICovCisJdW5zaWduZWQgaW50IG51bV9jaGFubmVsczsKKwl1bnNpZ25lZCBpbnQgY2hmaWZvX2xlbjsKKwl1bnNpZ25lZCBpbnQgZXhlY191bml0czsKKwl1bnNpZ25lZCBpbnQgZGVzY190eXBlczsKKworCS8qIG5leHQgY2hhbm5lbCB0byBiZSBhc3NpZ25lZCBuZXh0IGluY29taW5nIGRlc2NyaXB0b3IgKi8KKwlhdG9taWNfdCBsYXN0X2NoYW47CisKKwkvKiBwZXItY2hhbm5lbCByZXF1ZXN0IGZpZm8gKi8KKwlzdHJ1Y3QgdGFsaXRvc19yZXF1ZXN0ICoqZmlmbzsKKworCS8qCisJICogbGVuZ3RoIG9mIHRoZSByZXF1ZXN0IGZpZm8KKwkgKiBmaWZvX2xlbiBpcyBjaGZpZm9fbGVuIHJvdW5kZWQgdXAgdG8gbmV4dCBwb3dlciBvZiAyCisJICogc28gd2UgY2FuIHVzZSBiaXR3aXNlIG9wcyB0byB3cmFwCisJICovCisJdW5zaWduZWQgaW50IGZpZm9fbGVuOworCisJLyogcGVyLWNoYW5uZWwgaW5kZXggdG8gbmV4dCBmcmVlIGRlc2NyaXB0b3IgcmVxdWVzdCAqLworCWludCAqaGVhZDsKKworCS8qIHBlci1jaGFubmVsIGluZGV4IHRvIG5leHQgaW4tcHJvZ3Jlc3MvZG9uZSBkZXNjcmlwdG9yIHJlcXVlc3QgKi8KKwlpbnQgKnRhaWw7CisKKwkvKiBwZXItY2hhbm5lbCByZXF1ZXN0IHN1Ym1pc3Npb24gKGhlYWQpIGFuZCByZWxlYXNlICh0YWlsKSBsb2NrcyAqLworCXNwaW5sb2NrX3QgKmhlYWRfbG9jazsKKwlzcGlubG9ja190ICp0YWlsX2xvY2s7CisKKwkvKiByZXF1ZXN0IGNhbGxiYWNrIHRhc2tsZXQgKi8KKwlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgZG9uZV90YXNrOworCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCBlcnJvcl90YXNrOworCisJLyogbGlzdCBvZiByZWdpc3RlcmVkIGFsZ29yaXRobXMgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGFsZ19saXN0OworCisJLyogaHdybmcgZGV2aWNlICovCisJc3RydWN0IGh3cm5nIHJuZzsKK307CisKKy8qCisgKiBtYXAgdmlydHVhbCBzaW5nbGUgKGNvbnRpZ3VvdXMpIHBvaW50ZXIgdG8gaC93IGRlc2NyaXB0b3IgcG9pbnRlcgorICovCitzdGF0aWMgdm9pZCBtYXBfc2luZ2xlX3RhbGl0b3NfcHRyKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19wdHIgKnRhbGl0b3NfcHRyLAorCQkJCSAgIHVuc2lnbmVkIHNob3J0IGxlbiwgdm9pZCAqZGF0YSwKKwkJCQkgICB1bnNpZ25lZCBjaGFyIGV4dGVudCwKKwkJCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJdGFsaXRvc19wdHItPmxlbiA9IGNwdV90b19iZTE2KGxlbik7CisJdGFsaXRvc19wdHItPnB0ciA9IGNwdV90b19iZTMyKGRtYV9tYXBfc2luZ2xlKGRldiwgZGF0YSwgbGVuLCBkaXIpKTsKKwl0YWxpdG9zX3B0ci0+al9leHRlbnQgPSBleHRlbnQ7Cit9CisKKy8qCisgKiB1bm1hcCBidXMgc2luZ2xlIChjb250aWd1b3VzKSBoL3cgZGVzY3JpcHRvciBwb2ludGVyCisgKi8KK3N0YXRpYyB2b2lkIHVubWFwX3NpbmdsZV90YWxpdG9zX3B0cihzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgdGFsaXRvc19wdHIgKnRhbGl0b3NfcHRyLAorCQkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQoreworCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBiZTMyX3RvX2NwdSh0YWxpdG9zX3B0ci0+cHRyKSwKKwkJCSBiZTE2X3RvX2NwdSh0YWxpdG9zX3B0ci0+bGVuKSwgZGlyKTsKK30KKworc3RhdGljIGludCByZXNldF9jaGFubmVsKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGNoKQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDQ1IoY2gpLCBUQUxJVE9TX0NDQ1JfUkVTRVQpOworCisJd2hpbGUgKChpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCkpICYgVEFMSVRPU19DQ0NSX1JFU0VUKQorCSAgICAgICAmJiAtLXRpbWVvdXQpCisJCWNwdV9yZWxheCgpOworCisJaWYgKHRpbWVvdXQgPT0gMCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXNldCBjaGFubmVsICVkXG4iLCBjaCk7CisJCXJldHVybiAtRUlPOworCX0KKworCS8qIHNldCBkb25lIHdyaXRlYmFjayBhbmQgSVJRICovCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUl9MTyhjaCksIFRBTElUT1NfQ0NDUl9MT19DRFdFIHwKKwkJICBUQUxJVE9TX0NDQ1JfTE9fQ0RJRSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByZXNldF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX01DUiwgVEFMSVRPU19NQ1JfU1dSKTsKKworCXdoaWxlICgoaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01DUikgJiBUQUxJVE9TX01DUl9TV1IpCisJICAgICAgICYmIC0tdGltZW91dCkKKwkJY3B1X3JlbGF4KCk7CisKKwlpZiAodGltZW91dCA9PSAwKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc2V0IGRldmljZVxuIik7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogUmVzZXQgYW5kIGluaXRpYWxpemUgdGhlIGRldmljZQorICovCitzdGF0aWMgaW50IGluaXRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IGNoLCBlcnI7CisKKwkvKgorCSAqIE1hc3RlciByZXNldAorCSAqIGVycmF0YSBkb2N1bWVudGF0aW9uOiB3YXJuaW5nOiBjZXJ0YWluIFNFQyBpbnRlcnJ1cHRzCisJICogYXJlIG5vdCBmdWxseSBjbGVhcmVkIGJ5IHdyaXRpbmcgdGhlIE1DUjpTV1IgYml0LAorCSAqIHNldCBiaXQgdHdpY2UgdG8gY29tcGxldGVseSByZXNldAorCSAqLworCWVyciA9IHJlc2V0X2RldmljZShkZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSByZXNldF9kZXZpY2UoZGV2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJLyogcmVzZXQgY2hhbm5lbHMgKi8KKwlmb3IgKGNoID0gMDsgY2ggPCBwcml2LT5udW1fY2hhbm5lbHM7IGNoKyspIHsKKwkJZXJyID0gcmVzZXRfY2hhbm5lbChkZXYsIGNoKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQorCisJLyogZW5hYmxlIGNoYW5uZWwgZG9uZSBhbmQgZXJyb3IgaW50ZXJydXB0cyAqLworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lNUiwgVEFMSVRPU19JTVJfSU5JVCk7CisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfSU1SX0xPLCBUQUxJVE9TX0lNUl9MT19JTklUKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIHRhbGl0b3Nfc3VibWl0IC0gc3VibWl0cyBhIGRlc2NyaXB0b3IgdG8gdGhlIGRldmljZSBmb3IgcHJvY2Vzc2luZworICogQGRldjoJdGhlIFNFQyBkZXZpY2UgdG8gYmUgdXNlZAorICogQGRlc2M6CXRoZSBkZXNjcmlwdG9yIHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgZGV2aWNlCisgKiBAY2FsbGJhY2s6CXdob20gdG8gY2FsbCB3aGVuIHByb2Nlc3NpbmcgaXMgY29tcGxldGUKKyAqIEBjb250ZXh0OglhIGhhbmRsZSBmb3IgdXNlIGJ5IGNhbGxlciAob3B0aW9uYWwpCisgKgorICogZGVzYyBtdXN0IGNvbnRhaW4gdmFsaWQgZG1hLW1hcHBlZCAoYnVzIHBoeXNpY2FsKSBhZGRyZXNzIHBvaW50ZXJzLgorICogY2FsbGJhY2sgbXVzdCBjaGVjayBlcnIgYW5kIGZlZWRiYWNrIGluIGRlc2NyaXB0b3IgaGVhZGVyCisgKiBmb3IgZGV2aWNlIHByb2Nlc3Npbmcgc3RhdHVzLgorICovCitzdGF0aWMgaW50IHRhbGl0b3Nfc3VibWl0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkJCSAgdm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCSAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsCisJCQkJCSAgIHZvaWQgKmNvbnRleHQsIGludCBlcnJvciksCisJCQkgIHZvaWQgKmNvbnRleHQpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCB0YWxpdG9zX3JlcXVlc3QgKnJlcXVlc3Q7CisJdW5zaWduZWQgbG9uZyBmbGFncywgY2g7CisJaW50IGhlYWQ7CisKKwkvKiBzZWxlY3QgZG9uZSBub3RpZmljYXRpb24gKi8KKwlkZXNjLT5oZHIgfD0gREVTQ19IRFJfRE9ORV9OT1RJRlk7CisKKwkvKiBlbXVsYXRlIFNFQydzIHJvdW5kLXJvYmluIGNoYW5uZWwgZmlmbyBwb2xsaW5nIHNjaGVtZSAqLworCWNoID0gYXRvbWljX2luY19yZXR1cm4oJnByaXYtPmxhc3RfY2hhbikgJiAocHJpdi0+bnVtX2NoYW5uZWxzIC0gMSk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCisJaGVhZCA9IHByaXYtPmhlYWRbY2hdOworCXJlcXVlc3QgPSAmcHJpdi0+Zmlmb1tjaF1baGVhZF07CisKKwlpZiAocmVxdWVzdC0+ZGVzYykgeworCQkvKiByZXF1ZXN0IHF1ZXVlIGlzIGZ1bGwgKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwkvKiBtYXAgZGVzY3JpcHRvciBhbmQgc2F2ZSBjYWxsZXIgZGF0YSAqLworCXJlcXVlc3QtPmRtYV9kZXNjID0gZG1hX21hcF9zaW5nbGUoZGV2LCBkZXNjLCBzaXplb2YoKmRlc2MpLAorCQkJCQkgICBETUFfQklESVJFQ1RJT05BTCk7CisJcmVxdWVzdC0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKKwlyZXF1ZXN0LT5jb250ZXh0ID0gY29udGV4dDsKKworCS8qIGluY3JlbWVudCBmaWZvIGhlYWQgKi8KKwlwcml2LT5oZWFkW2NoXSA9IChwcml2LT5oZWFkW2NoXSArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisKKwlzbXBfd21iKCk7CisJcmVxdWVzdC0+ZGVzYyA9IGRlc2M7CisKKwkvKiBHTyEgKi8KKwl3bWIoKTsKKwlvdXRfYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0ZGX0xPKGNoKSwgcmVxdWVzdC0+ZG1hX2Rlc2MpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCisJcmV0dXJuIC1FSU5QUk9HUkVTUzsKK30KKworLyoKKyAqIHByb2Nlc3Mgd2hhdCB3YXMgZG9uZSwgbm90aWZ5IGNhbGxiYWNrIG9mIGVycm9yIGlmIG5vdAorICovCitzdGF0aWMgdm9pZCBmbHVzaF9jaGFubmVsKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGNoLCBpbnQgZXJyb3IsIGludCByZXNldF9jaCkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHRhbGl0b3NfcmVxdWVzdCAqcmVxdWVzdCwgc2F2ZWRfcmVxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHRhaWwsIHN0YXR1czsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT50YWlsX2xvY2tbY2hdLCBmbGFncyk7CisKKwl0YWlsID0gcHJpdi0+dGFpbFtjaF07CisJd2hpbGUgKHByaXYtPmZpZm9bY2hdW3RhaWxdLmRlc2MpIHsKKwkJcmVxdWVzdCA9ICZwcml2LT5maWZvW2NoXVt0YWlsXTsKKworCQkvKiBkZXNjcmlwdG9ycyB3aXRoIHRoZWlyIGRvbmUgYml0cyBzZXQgZG9uJ3QgZ2V0IHRoZSBlcnJvciAqLworCQlybWIoKTsKKwkJaWYgKChyZXF1ZXN0LT5kZXNjLT5oZHIgJiBERVNDX0hEUl9ET05FKSA9PSBERVNDX0hEUl9ET05FKQorCQkJc3RhdHVzID0gMDsKKwkJZWxzZQorCQkJaWYgKCFlcnJvcikKKwkJCQlicmVhazsKKwkJCWVsc2UKKwkJCQlzdGF0dXMgPSBlcnJvcjsKKworCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgcmVxdWVzdC0+ZG1hX2Rlc2MsCisJCQlzaXplb2Yoc3RydWN0IHRhbGl0b3NfZGVzYyksIERNQV9CSURJUkVDVElPTkFMKTsKKworCQkvKiBjb3B5IGVudHJpZXMgc28gd2UgY2FuIGNhbGwgY2FsbGJhY2sgb3V0c2lkZSBsb2NrICovCisJCXNhdmVkX3JlcS5kZXNjID0gcmVxdWVzdC0+ZGVzYzsKKwkJc2F2ZWRfcmVxLmNhbGxiYWNrID0gcmVxdWVzdC0+Y2FsbGJhY2s7CisJCXNhdmVkX3JlcS5jb250ZXh0ID0gcmVxdWVzdC0+Y29udGV4dDsKKworCQkvKiByZWxlYXNlIHJlcXVlc3QgZW50cnkgaW4gZmlmbyAqLworCQlzbXBfd21iKCk7CisJCXJlcXVlc3QtPmRlc2MgPSBOVUxMOworCisJCS8qIGluY3JlbWVudCBmaWZvIHRhaWwgKi8KKwkJcHJpdi0+dGFpbFtjaF0gPSAodGFpbCArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+dGFpbF9sb2NrW2NoXSwgZmxhZ3MpOworCQlzYXZlZF9yZXEuY2FsbGJhY2soZGV2LCBzYXZlZF9yZXEuZGVzYywgc2F2ZWRfcmVxLmNvbnRleHQsCisJCQkJICAgc3RhdHVzKTsKKwkJLyogY2hhbm5lbCBtYXkgcmVzdW1lIHByb2Nlc3NpbmcgaW4gc2luZ2xlIGRlc2MgZXJyb3IgY2FzZSAqLworCQlpZiAoZXJyb3IgJiYgIXJlc2V0X2NoICYmIHN0YXR1cyA9PSBlcnJvcikKKwkJCXJldHVybjsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPnRhaWxfbG9ja1tjaF0sIGZsYWdzKTsKKwkJdGFpbCA9IHByaXYtPnRhaWxbY2hdOworCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPnRhaWxfbG9ja1tjaF0sIGZsYWdzKTsKK30KKworLyoKKyAqIHByb2Nlc3MgY29tcGxldGVkIHJlcXVlc3RzIGZvciBjaGFubmVscyB0aGF0IGhhdmUgZG9uZSBzdGF0dXMKKyAqLworc3RhdGljIHZvaWQgdGFsaXRvc19kb25lKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKWRhdGE7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCBjaDsKKworCWZvciAoY2ggPSAwOyBjaCA8IHByaXYtPm51bV9jaGFubmVsczsgY2grKykKKwkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCAwLCAwKTsKK30KKworLyoKKyAqIGxvY2F0ZSBjdXJyZW50IChvZmZlbmRpbmcpIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmN1cnJlbnRfZGVzYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBjaCkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IHRhaWwgPSBwcml2LT50YWlsW2NoXTsKKwlkbWFfYWRkcl90IGN1cl9kZXNjOworCisJY3VyX2Rlc2MgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0RQUl9MTyhjaCkpOworCisJd2hpbGUgKHByaXYtPmZpZm9bY2hdW3RhaWxdLmRtYV9kZXNjICE9IGN1cl9kZXNjKSB7CisJCXRhaWwgPSAodGFpbCArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisJCWlmICh0YWlsID09IHByaXYtPnRhaWxbY2hdKSB7CisJCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IGxvY2F0ZSBjdXJyZW50IGRlc2NyaXB0b3JcbiIpOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwl9CisKKwlyZXR1cm4gcHJpdi0+Zmlmb1tjaF1bdGFpbF0uZGVzYzsKK30KKworLyoKKyAqIHVzZXIgZGlhZ25vc3RpY3M7IHJlcG9ydCByb290IGNhdXNlIG9mIGVycm9yIGJhc2VkIG9uIGV4ZWN1dGlvbiB1bml0IHN0YXR1cworICovCitzdGF0aWMgdm9pZCByZXBvcnRfZXVfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBpbnQgY2gsIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCBpOworCisJc3dpdGNoIChkZXNjLT5oZHIgJiBERVNDX0hEUl9TRUwwX01BU0spIHsKKwljYXNlIERFU0NfSERSX1NFTDBfQUZFVToKKwkJZGV2X2VycihkZXYsICJBRkVVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0FGRVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0FGRVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX0RFVToKKwkJZGV2X2VycihkZXYsICJERVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfREVVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19ERVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX01ERVVBOgorCWNhc2UgREVTQ19IRFJfU0VMMF9NREVVQjoKKwkJZGV2X2VycihkZXYsICJNREVVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01ERVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01ERVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX1JORzoKKwkJZGV2X2VycihkZXYsICJSTkdVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX1BLRVU6CisJCWRldl9lcnIoZGV2LCAiUEtFVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19QS0VVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19QS0VVSVNSX0xPKSk7CisJCWJyZWFrOworCWNhc2UgREVTQ19IRFJfU0VMMF9BRVNVOgorCQlkZXZfZXJyKGRldiwgIkFFU1VJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUVTVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUVTVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfQ1JDVToKKwkJZGV2X2VycihkZXYsICJDUkNVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX0tFVToKKwkJZGV2X2VycihkZXYsICJLRVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfS0VVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19LRVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJfQorCisJc3dpdGNoIChkZXNjLT5oZHIgJiBERVNDX0hEUl9TRUwxX01BU0spIHsKKwljYXNlIERFU0NfSERSX1NFTDFfTURFVUE6CisJY2FzZSBERVNDX0hEUl9TRUwxX01ERVVCOgorCQlkZXZfZXJyKGRldiwgIk1ERVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDFfQ1JDVToKKwkJZGV2X2VycihkZXYsICJDUkNVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJfQorCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKwkJZGV2X2VycihkZXYsICJERVNDQlVGIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0RFU0NCVUYoY2gpICsgOCppKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19ERVNDQlVGX0xPKGNoKSArIDgqaSkpOworfQorCisvKgorICogcmVjb3ZlciBmcm9tIGVycm9yIGludGVycnVwdHMKKyAqLworc3RhdGljIHZvaWQgdGFsaXRvc19lcnJvcih1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gKHN0cnVjdCBkZXZpY2UgKilkYXRhOworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKwlpbnQgY2gsIGVycm9yLCByZXNldF9kZXYgPSAwLCByZXNldF9jaCA9IDA7CisJdTMyIGlzciwgaXNyX2xvLCB2LCB2X2xvOworCisJaXNyID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUik7CisJaXNyX2xvID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUl9MTyk7CisKKwlmb3IgKGNoID0gMDsgY2ggPCBwcml2LT5udW1fY2hhbm5lbHM7IGNoKyspIHsKKwkJLyogc2tpcCBjaGFubmVscyB3aXRob3V0IGVycm9ycyAqLworCQlpZiAoIShpc3IgJiAoMSA8PCAoY2ggKiAyICsgMSkpKSkKKwkJCWNvbnRpbnVlOworCisJCWVycm9yID0gLUVJTlZBTDsKKworCQl2ID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDUFNSKGNoKSk7CisJCXZfbG8gPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NQU1JfTE8oY2gpKTsKKworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fRE9GKSB7CisJCQlkZXZfZXJyKGRldiwgImRvdWJsZSBmZXRjaCBmaWZvIG92ZXJmbG93IGVycm9yXG4iKTsKKwkJCWVycm9yID0gLUVBR0FJTjsKKwkJCXJlc2V0X2NoID0gMTsKKwkJfQorCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fU09GKSB7CisJCQkvKiBoL3cgZHJvcHBlZCBkZXNjcmlwdG9yICovCisJCQlkZXZfZXJyKGRldiwgInNpbmdsZSBmZXRjaCBmaWZvIG92ZXJmbG93IGVycm9yXG4iKTsKKwkJCWVycm9yID0gLUVBR0FJTjsKKwkJfQorCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fTURURSkKKwkJCWRldl9lcnIoZGV2LCAibWFzdGVyIGRhdGEgdHJhbnNmZXIgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fU0dETFopCisJCQlkZXZfZXJyKGRldiwgInMvZyBkYXRhIGxlbmd0aCB6ZXJvIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0ZQWikKKwkJCWRldl9lcnIoZGV2LCAiZmV0Y2ggcG9pbnRlciB6ZXJvIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0lESCkKKwkJCWRldl9lcnIoZGV2LCAiaWxsZWdhbCBkZXNjcmlwdG9yIGhlYWRlciBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19JRVUpCisJCQlkZXZfZXJyKGRldiwgImludmFsaWQgZXhlY3V0aW9uIHVuaXQgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fRVUpCisJCQlyZXBvcnRfZXVfZXJyb3IoZGV2LCBjaCwgY3VycmVudF9kZXNjKGRldiwgY2gpKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0dCKQorCQkJZGV2X2VycihkZXYsICJnYXRoZXIgYm91bmRhcnkgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fR1JMKQorCQkJZGV2X2VycihkZXYsICJnYXRoZXIgcmV0dXJuL2xlbmd0aCBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TQikKKwkJCWRldl9lcnIoZGV2LCAic2NhdHRlciBib3VuZGFyeSBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TUkwpCisJCQlkZXZfZXJyKGRldiwgInNjYXR0ZXIgcmV0dXJuL2xlbmd0aCBlcnJvclxuIik7CisKKwkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCBlcnJvciwgcmVzZXRfY2gpOworCisJCWlmIChyZXNldF9jaCkgeworCQkJcmVzZXRfY2hhbm5lbChkZXYsIGNoKTsKKwkJfSBlbHNlIHsKKwkJCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDQ1IoY2gpLAorCQkJCSAgVEFMSVRPU19DQ0NSX0NPTlQpOworCQkJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUl9MTyhjaCksIDApOworCQkJd2hpbGUgKChpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCkpICYKKwkJCSAgICAgICBUQUxJVE9TX0NDQ1JfQ09OVCkgJiYgLS10aW1lb3V0KQorCQkJCWNwdV9yZWxheCgpOworCQkJaWYgKHRpbWVvdXQgPT0gMCkgeworCQkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc3RhcnQgY2hhbm5lbCAlZFxuIiwKKwkJCQkJY2gpOworCQkJCXJlc2V0X2RldiA9IDE7CisJCQl9CisJCX0KKwl9CisJaWYgKHJlc2V0X2RldiB8fCBpc3IgJiB+VEFMSVRPU19JU1JfQ0hFUlIgfHwgaXNyX2xvKSB7CisJCWRldl9lcnIoZGV2LCAiZG9uZSBvdmVyZmxvdywgaW50ZXJuYWwgdGltZSBvdXQsIG9yIHJuZ3UgZXJyb3I6ICIKKwkJICAgICAgICAiSVNSIDB4JTA4eF8lMDh4XG4iLCBpc3IsIGlzcl9sbyk7CisKKwkJLyogcHVyZ2UgcmVxdWVzdCBxdWV1ZXMgKi8KKwkJZm9yIChjaCA9IDA7IGNoIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBjaCsrKQorCQkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCAtRUlPLCAxKTsKKworCQkvKiByZXNldCBhbmQgcmVpbml0aWFsaXplIHRoZSBkZXZpY2UgKi8KKwkJaW5pdF9kZXZpY2UoZGV2KTsKKwl9Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCB0YWxpdG9zX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGRhdGE7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiBpc3IsIGlzcl9sbzsKKworCWlzciA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JU1IpOworCWlzcl9sbyA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JU1JfTE8pOworCisJLyogYWNrICovCisJb3V0X2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JQ1IsIGlzcik7CisJb3V0X2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JQ1JfTE8sIGlzcl9sbyk7CisKKwlpZiAodW5saWtlbHkoKGlzciAmIH5UQUxJVE9TX0lTUl9DSERPTkUpIHx8IGlzcl9sbykpCisJCXRhbGl0b3NfZXJyb3IoKHVuc2lnbmVkIGxvbmcpZGF0YSk7CisJZWxzZQorCQlpZiAobGlrZWx5KGlzciAmIFRBTElUT1NfSVNSX0NIRE9ORSkpCisJCQl0YXNrbGV0X3NjaGVkdWxlKCZwcml2LT5kb25lX3Rhc2spOworCisJcmV0dXJuIChpc3IgfHwgaXNyX2xvKSA/IElSUV9IQU5ETEVEIDogSVJRX05PTkU7Cit9CisKKy8qCisgKiBod3JuZworICovCitzdGF0aWMgaW50IHRhbGl0b3Nfcm5nX2RhdGFfcHJlc2VudChzdHJ1Y3QgaHdybmcgKnJuZywgaW50IHdhaXQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gKHN0cnVjdCBkZXZpY2UgKilybmctPnByaXY7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiBvZmw7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMjA7IGkrKykgeworCQlvZmwgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVVNSX0xPKSAmCisJCSAgICAgIFRBTElUT1NfUk5HVVNSX0xPX09GTDsKKwkJaWYgKG9mbCB8fCAhd2FpdCkKKwkJCWJyZWFrOworCQl1ZGVsYXkoMTApOworCX0KKworCXJldHVybiAhIW9mbDsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3JuZ19kYXRhX3JlYWQoc3RydWN0IGh3cm5nICpybmcsIHUzMiAqZGF0YSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKXJuZy0+cHJpdjsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwkvKiBybmcgZmlmbyByZXF1aXJlcyA2NC1iaXQgYWNjZXNzZXMgKi8KKwkqZGF0YSA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVX0ZJRk8pOworCSpkYXRhID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VfRklGT19MTyk7CisKKwlyZXR1cm4gc2l6ZW9mKHUzMik7Cit9CisKK3N0YXRpYyBpbnQgdGFsaXRvc19ybmdfaW5pdChzdHJ1Y3QgaHdybmcgKnJuZykKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKXJuZy0+cHJpdjsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgaW50IHRpbWVvdXQgPSBUQUxJVE9TX1RJTUVPVVQ7CisKKwlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVUkNSX0xPLCBUQUxJVE9TX1JOR1VSQ1JfTE9fU1IpOworCXdoaWxlICghKGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVU1JfTE8pICYgVEFMSVRPU19STkdVU1JfTE9fUkQpCisJICAgICAgICYmIC0tdGltZW91dCkKKwkJY3B1X3JlbGF4KCk7CisJaWYgKHRpbWVvdXQgPT0gMCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXNldCBybmcgaHdcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvKiBzdGFydCBnZW5lcmF0aW5nICovCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVURTUl9MTywgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3JlZ2lzdGVyX3JuZyhzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcHJpdi0+cm5nLm5hbWUJCT0gZGV2X2RyaXZlcl9zdHJpbmcoZGV2KSwKKwlwcml2LT5ybmcuaW5pdAkJPSB0YWxpdG9zX3JuZ19pbml0LAorCXByaXYtPnJuZy5kYXRhX3ByZXNlbnQJPSB0YWxpdG9zX3JuZ19kYXRhX3ByZXNlbnQsCisJcHJpdi0+cm5nLmRhdGFfcmVhZAk9IHRhbGl0b3Nfcm5nX2RhdGFfcmVhZCwKKwlwcml2LT5ybmcucHJpdgkJPSAodW5zaWduZWQgbG9uZylkZXY7CisKKwlyZXR1cm4gaHdybmdfcmVnaXN0ZXIoJnByaXYtPnJuZyk7Cit9CisKK3N0YXRpYyB2b2lkIHRhbGl0b3NfdW5yZWdpc3Rlcl9ybmcoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWh3cm5nX3VucmVnaXN0ZXIoJnByaXYtPnJuZyk7Cit9CisKKy8qCisgKiBjcnlwdG8gYWxnCisgKi8KKyNkZWZpbmUgVEFMSVRPU19DUkFfUFJJT1JJVFkJCTMwMDAKKyNkZWZpbmUgVEFMSVRPU19NQVhfS0VZX1NJWkUJCTY0CisjZGVmaW5lIFRBTElUT1NfTUFYX0lWX0xFTkdUSAkJMTYgLyogbWF4IG9mIEFFU19CTE9DS19TSVpFLCBERVMzX0VERV9CTE9DS19TSVpFICovCisKKyNkZWZpbmUgTUQ1X0RJR0VTVF9TSVpFICAgMTYKKworc3RydWN0IHRhbGl0b3NfY3R4IHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJX19iZTMyIGRlc2NfaGRyX3RlbXBsYXRlOworCXU4IGtleVtUQUxJVE9TX01BWF9LRVlfU0laRV07CisJdTggaXZbVEFMSVRPU19NQVhfSVZfTEVOR1RIXTsKKwl1bnNpZ25lZCBpbnQga2V5bGVuOworCXVuc2lnbmVkIGludCBlbmNrZXlsZW47CisJdW5zaWduZWQgaW50IGF1dGhrZXlsZW47CisJdW5zaWduZWQgaW50IGF1dGhzaXplOworfTsKKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUoc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jLAorCQkJCQkJIHVuc2lnbmVkIGludCBhdXRoc2l6ZSkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKworCWN0eC0+YXV0aHNpemUgPSBhdXRoc2l6ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19zZXRrZXkoc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jLAorCQkJCQkgICAgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgcnRhdHRyICpydGEgPSAodm9pZCAqKWtleTsKKwlzdHJ1Y3QgY3J5cHRvX2F1dGhlbmNfa2V5X3BhcmFtICpwYXJhbTsKKwl1bnNpZ25lZCBpbnQgYXV0aGtleWxlbjsKKwl1bnNpZ25lZCBpbnQgZW5ja2V5bGVuOworCisJaWYgKCFSVEFfT0socnRhLCBrZXlsZW4pKQorCQlnb3RvIGJhZGtleTsKKworCWlmIChydGEtPnJ0YV90eXBlICE9IENSWVBUT19BVVRIRU5DX0tFWUFfUEFSQU0pCisJCWdvdG8gYmFka2V5OworCisJaWYgKFJUQV9QQVlMT0FEKHJ0YSkgPCBzaXplb2YoKnBhcmFtKSkKKwkJZ290byBiYWRrZXk7CisKKwlwYXJhbSA9IFJUQV9EQVRBKHJ0YSk7CisJZW5ja2V5bGVuID0gYmUzMl90b19jcHUocGFyYW0tPmVuY2tleWxlbik7CisKKwlrZXkgKz0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisJa2V5bGVuIC09IFJUQV9BTElHTihydGEtPnJ0YV9sZW4pOworCisJaWYgKGtleWxlbiA8IGVuY2tleWxlbikKKwkJZ290byBiYWRrZXk7CisKKwlhdXRoa2V5bGVuID0ga2V5bGVuIC0gZW5ja2V5bGVuOworCisJaWYgKGtleWxlbiA+IFRBTElUT1NfTUFYX0tFWV9TSVpFKQorCQlnb3RvIGJhZGtleTsKKworCW1lbWNweSgmY3R4LT5rZXksIGtleSwga2V5bGVuKTsKKworCWN0eC0+a2V5bGVuID0ga2V5bGVuOworCWN0eC0+ZW5ja2V5bGVuID0gZW5ja2V5bGVuOworCWN0eC0+YXV0aGtleWxlbiA9IGF1dGhrZXlsZW47CisKKwlyZXR1cm4gMDsKKworYmFka2V5OgorCWNyeXB0b19hZWFkX3NldF9mbGFncyhhdXRoZW5jLCBDUllQVE9fVEZNX1JFU19CQURfS0VZX0xFTik7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKKy8qCisgKiBpcHNlY19lc3BfZWRlc2MgLSBzL3ctZXh0ZW5kZWQgaXBzZWNfZXNwIGRlc2NyaXB0b3IKKyAqIEBzcmNfbmVudHM6IG51bWJlciBvZiBzZWdtZW50cyBpbiBpbnB1dCBzY2F0dGVybGlzdAorICogQGRzdF9uZW50czogbnVtYmVyIG9mIHNlZ21lbnRzIGluIG91dHB1dCBzY2F0dGVybGlzdAorICogQGRtYV9sZW46IGxlbmd0aCBvZiBkbWEgbWFwcGVkIGxpbmtfdGJsIHNwYWNlCisgKiBAZG1hX2xpbmtfdGJsOiBidXMgcGh5c2ljYWwgYWRkcmVzcyBvZiBsaW5rX3RibAorICogQGRlc2M6IGgvdyBkZXNjcmlwdG9yCisgKiBAbGlua190Ymw6IGlucHV0IGFuZCBvdXRwdXQgaC93IGxpbmsgdGFibGVzIChpZiB7c3JjLGRzdH1fbmVudHMgPiAxKQorICoKKyAqIGlmIGRlY3J5cHRpbmcgKHdpdGggYXV0aGNoZWNrKSwgb3IgZWl0aGVyIG9uZSBvZiBzcmNfbmVudHMgb3IgZHN0X25lbnRzCisgKiBpcyBncmVhdGVyIHRoYW4gMSwgYW4gaW50ZWdyaXR5IGNoZWNrIHZhbHVlIGlzIGNvbmNhdGVuYXRlZCB0byB0aGUgZW5kCisgKiBvZiBsaW5rX3RibCBkYXRhCisgKi8KK3N0cnVjdCBpcHNlY19lc3BfZWRlc2MgeworCWludCBzcmNfbmVudHM7CisJaW50IGRzdF9uZW50czsKKwlpbnQgZG1hX2xlbjsKKwlkbWFfYWRkcl90IGRtYV9saW5rX3RibDsKKwlzdHJ1Y3QgdGFsaXRvc19kZXNjIGRlc2M7CisJc3RydWN0IHRhbGl0b3NfcHRyIGxpbmtfdGJsWzBdOworfTsKKworc3RhdGljIHZvaWQgaXBzZWNfZXNwX3VubWFwKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICBzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYywKKwkJCSAgICBzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxKQoreworCXVubWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZlZGVzYy0+ZGVzYy5wdHJbNl0sIERNQV9GUk9NX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clszXSwgRE1BX1RPX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clsyXSwgRE1BX1RPX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clswXSwgRE1BX1RPX0RFVklDRSk7CisKKwlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5hc3NvYywgMSwgRE1BX1RPX0RFVklDRSk7CisKKwlpZiAoYXJlcS0+c3JjICE9IGFyZXEtPmRzdCkgeworCQlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEsCisJCQkgICAgIERNQV9UT19ERVZJQ0UpOworCQlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEsCisJCQkgICAgIERNQV9GUk9NX0RFVklDRSk7CisJfSBlbHNlIHsKKwkJZG1hX3VubWFwX3NnKGRldiwgYXJlcS0+c3JjLCBlZGVzYy0+c3JjX25lbnRzID8gOiAxLAorCQkJICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJfQorCisJaWYgKGVkZXNjLT5kbWFfbGVuKQorCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgZWRlc2MtPmRtYV9saW5rX3RibCwgZWRlc2MtPmRtYV9sZW4sCisJCQkJIERNQV9CSURJUkVDVElPTkFMKTsKK30KKworLyoKKyAqIGlwc2VjX2VzcCBkZXNjcmlwdG9yIGNhbGxiYWNrcworICovCitzdGF0aWMgdm9pZCBpcHNlY19lc3BfZW5jcnlwdF9kb25lKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLCB2b2lkICpjb250ZXh0LAorCQkJCSAgIGludCBlcnIpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqYXJlcSA9IGNvbnRleHQ7CisJc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqZWRlc2MgPQorCQkgY29udGFpbmVyX29mKGRlc2MsIHN0cnVjdCBpcHNlY19lc3BfZWRlc2MsIGRlc2MpOworCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFkX3JlcXRmbShhcmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXZvaWQgKmljdmRhdGE7CisKKwlpcHNlY19lc3BfdW5tYXAoZGV2LCBlZGVzYywgYXJlcSk7CisKKwkvKiBjb3B5IHRoZSBnZW5lcmF0ZWQgSUNWIHRvIGRzdCAqLworCWlmIChlZGVzYy0+ZG1hX2xlbikgeworCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzICsKKwkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCQlzZyA9IHNnX2xhc3QoYXJlcS0+ZHN0LCBlZGVzYy0+ZHN0X25lbnRzKTsKKwkJbWVtY3B5KChjaGFyICopc2dfdmlydChzZykgKyBzZy0+bGVuZ3RoIC0gY3R4LT5hdXRoc2l6ZSwKKwkJICAgICAgIGljdmRhdGEsIGN0eC0+YXV0aHNpemUpOworCX0KKworCWtmcmVlKGVkZXNjKTsKKworCWFlYWRfcmVxdWVzdF9jb21wbGV0ZShhcmVxLCBlcnIpOworfQorCitzdGF0aWMgdm9pZCBpcHNlY19lc3BfZGVjcnlwdF9kb25lKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLCB2b2lkICpjb250ZXh0LAorCQkJCSAgIGludCBlcnIpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxID0gY29udGV4dDsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYyA9CisJCSBjb250YWluZXJfb2YoZGVzYywgc3RydWN0IGlwc2VjX2VzcF9lZGVzYywgZGVzYyk7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYXV0aGVuYyk7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKwl2b2lkICppY3ZkYXRhOworCisJaXBzZWNfZXNwX3VubWFwKGRldiwgZWRlc2MsIHJlcSk7CisKKwlpZiAoIWVycikgeworCQkvKiBhdXRoIGNoZWNrICovCisJCWlmIChlZGVzYy0+ZG1hX2xlbikKKwkJCWljdmRhdGEgPSAmZWRlc2MtPmxpbmtfdGJsW2VkZXNjLT5zcmNfbmVudHMgKworCQkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCQllbHNlCisJCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFswXTsKKworCQlzZyA9IHNnX2xhc3QocmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEpOworCQllcnIgPSBtZW1jbXAoaWN2ZGF0YSwgKGNoYXIgKilzZ192aXJ0KHNnKSArIHNnLT5sZW5ndGggLQorCQkJICAgICBjdHgtPmF1dGhzaXplLCBjdHgtPmF1dGhzaXplKSA/IC1FQkFETVNHIDogMDsKKwl9CisKKwlrZnJlZShlZGVzYyk7CisKKwlhZWFkX3JlcXVlc3RfY29tcGxldGUocmVxLCBlcnIpOworfQorCisvKgorICogY29udmVydCBzY2F0dGVybGlzdCB0byBTRUMgaC93IGxpbmsgdGFibGUgZm9ybWF0CisgKiBzdG9wIGF0IGNyeXB0bGVuIGJ5dGVzCisgKi8KK3N0YXRpYyBpbnQgc2dfdG9fbGlua190Ymwoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50IHNnX2NvdW50LAorCQkJICAgaW50IGNyeXB0bGVuLCBzdHJ1Y3QgdGFsaXRvc19wdHIgKmxpbmtfdGJsX3B0cikKK3sKKwlpbnQgbl9zZyA9IHNnX2NvdW50OworCisJd2hpbGUgKG5fc2ctLSkgeworCQlsaW5rX3RibF9wdHItPnB0ciA9IGNwdV90b19iZTMyKHNnX2RtYV9hZGRyZXNzKHNnKSk7CisJCWxpbmtfdGJsX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYoc2dfZG1hX2xlbihzZykpOworCQlsaW5rX3RibF9wdHItPmpfZXh0ZW50ID0gMDsKKwkJbGlua190YmxfcHRyKys7CisJCWNyeXB0bGVuIC09IHNnX2RtYV9sZW4oc2cpOworCQlzZyA9IHNnX25leHQoc2cpOworCX0KKworCS8qIGFkanVzdCAoZGVjcmVhc2UpIGxhc3Qgb25lIChvciB0d28pIGVudHJ5J3MgbGVuIHRvIGNyeXB0bGVuICovCisJbGlua190YmxfcHRyLS07CisJd2hpbGUgKGxpbmtfdGJsX3B0ci0+bGVuIDw9ICgtY3J5cHRsZW4pKSB7CisJCS8qIEVtcHR5IHRoaXMgZW50cnksIGFuZCBtb3ZlIHRvIHByZXZpb3VzIG9uZSAqLworCQljcnlwdGxlbiArPSBiZTE2X3RvX2NwdShsaW5rX3RibF9wdHItPmxlbik7CisJCWxpbmtfdGJsX3B0ci0+bGVuID0gMDsKKwkJc2dfY291bnQtLTsKKwkJbGlua190YmxfcHRyLS07CisJfQorCWxpbmtfdGJsX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYoYmUxNl90b19jcHUobGlua190YmxfcHRyLT5sZW4pCisJCQkJCSsgY3J5cHRsZW4pOworCisJLyogdGFnIGVuZCBvZiBsaW5rIHRhYmxlICovCisJbGlua190YmxfcHRyLT5qX2V4dGVudCA9IERFU0NfUFRSX0xOS1RCTF9SRVRVUk47CisKKwlyZXR1cm4gc2dfY291bnQ7Cit9CisKKy8qCisgKiBmaWxsIGluIGFuZCBzdWJtaXQgaXBzZWNfZXNwIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIGludCBpcHNlY19lc3Aoc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqZWRlc2MsIHN0cnVjdCBhZWFkX3JlcXVlc3QgKmFyZXEsCisJCSAgICAgdTggKmdpdiwgdTY0IHNlcSwKKwkJICAgICB2b2lkICgqY2FsbGJhY2spIChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsCisJCQkJICAgICAgIHZvaWQgKmNvbnRleHQsIGludCBlcnJvcikpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICphZWFkID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGFlYWQpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCXN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MgPSAmZWRlc2MtPmRlc2M7CisJdW5zaWduZWQgaW50IGNyeXB0bGVuID0gYXJlcS0+Y3J5cHRsZW47CisJdW5zaWduZWQgaW50IGF1dGhzaXplID0gY3R4LT5hdXRoc2l6ZTsKKwl1bnNpZ25lZCBpbnQgaXZzaXplOworCWludCBzZ19jb3VudDsKKworCS8qIGhtYWMga2V5ICovCisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbMF0sIGN0eC0+YXV0aGtleWxlbiwgJmN0eC0+a2V5LAorCQkJICAgICAgIDAsIERNQV9UT19ERVZJQ0UpOworCS8qIGhtYWMgZGF0YSAqLworCW1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZGVzYy0+cHRyWzFdLCBzZ192aXJ0KGFyZXEtPnNyYykgLQorCQkJICAgICAgIHNnX3ZpcnQoYXJlcS0+YXNzb2MpLCBzZ192aXJ0KGFyZXEtPmFzc29jKSwgMCwKKwkJCSAgICAgICBETUFfVE9fREVWSUNFKTsKKwkvKiBjaXBoZXIgaXYgKi8KKwlpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUoYWVhZCk7CisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbMl0sIGl2c2l6ZSwgZ2l2ID86IGFyZXEtPml2LCAwLAorCQkJICAgICAgIERNQV9UT19ERVZJQ0UpOworCisJLyogY2lwaGVyIGtleSAqLworCW1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZGVzYy0+cHRyWzNdLCBjdHgtPmVuY2tleWxlbiwKKwkJCSAgICAgICAoY2hhciAqKSZjdHgtPmtleSArIGN0eC0+YXV0aGtleWxlbiwgMCwKKwkJCSAgICAgICBETUFfVE9fREVWSUNFKTsKKworCS8qCisJICogY2lwaGVyIGluCisJICogbWFwIGFuZCBhZGp1c3QgY2lwaGVyIGxlbiB0byBhZWFkIHJlcXVlc3QgY3J5cHRsZW4uCisJICogZXh0ZW50IGlzIGJ5dGVzIG9mIEhNQUMgcG9zdHBlbmRlZCB0byBjaXBoZXJ0ZXh0LAorCSAqIHR5cGljYWxseSAxMiBmb3IgaXBzZWMKKwkgKi8KKwlkZXNjLT5wdHJbNF0ubGVuID0gY3B1X3RvX2JlMTYoY3J5cHRsZW4pOworCWRlc2MtPnB0cls0XS5qX2V4dGVudCA9IGF1dGhzaXplOworCisJaWYgKGFyZXEtPnNyYyA9PSBhcmVxLT5kc3QpCisJCXNnX2NvdW50ID0gZG1hX21hcF9zZyhkZXYsIGFyZXEtPnNyYywgZWRlc2MtPnNyY19uZW50cyA/IDogMSwKKwkJCQkgICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJZWxzZQorCQlzZ19jb3VudCA9IGRtYV9tYXBfc2coZGV2LCBhcmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEsCisJCQkJICAgICAgRE1BX1RPX0RFVklDRSk7CisKKwlpZiAoc2dfY291bnQgPT0gMSkgeworCQlkZXNjLT5wdHJbNF0ucHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3MoYXJlcS0+c3JjKSk7CisJfSBlbHNlIHsKKwkJc2dfY291bnQgPSBzZ190b19saW5rX3RibChhcmVxLT5zcmMsIHNnX2NvdW50LCBjcnlwdGxlbiwKKwkJCQkJICAmZWRlc2MtPmxpbmtfdGJsWzBdKTsKKwkJaWYgKHNnX2NvdW50ID4gMSkgeworCQkJZGVzYy0+cHRyWzRdLmpfZXh0ZW50IHw9IERFU0NfUFRSX0xOS1RCTF9KVU1QOworCQkJZGVzYy0+cHRyWzRdLnB0ciA9IGNwdV90b19iZTMyKGVkZXNjLT5kbWFfbGlua190YmwpOworCQkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoY3R4LT5kZXYsIGVkZXNjLT5kbWFfbGlua190YmwsCisJCQkJCQkgICBlZGVzYy0+ZG1hX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOworCQl9IGVsc2UgeworCQkJLyogT25seSBvbmUgc2VnbWVudCBub3csIHNvIG5vIGxpbmsgdGJsIG5lZWRlZCAqLworCQkJZGVzYy0+cHRyWzRdLnB0ciA9IGNwdV90b19iZTMyKHNnX2RtYV9hZGRyZXNzKGFyZXEtPnNyYykpOworCQl9CisJfQorCisJLyogY2lwaGVyIG91dCAqLworCWRlc2MtPnB0cls1XS5sZW4gPSBjcHVfdG9fYmUxNihjcnlwdGxlbik7CisJZGVzYy0+cHRyWzVdLmpfZXh0ZW50ID0gYXV0aHNpemU7CisKKwlpZiAoYXJlcS0+c3JjICE9IGFyZXEtPmRzdCkgeworCQlzZ19jb3VudCA9IGRtYV9tYXBfc2coZGV2LCBhcmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEsCisJCQkJICAgICAgRE1BX0ZST01fREVWSUNFKTsKKwl9CisKKwlpZiAoc2dfY291bnQgPT0gMSkgeworCQlkZXNjLT5wdHJbNV0ucHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3MoYXJlcS0+ZHN0KSk7CisJfSBlbHNlIHsKKwkJc3RydWN0IHRhbGl0b3NfcHRyICpsaW5rX3RibF9wdHIgPQorCQkJJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzXTsKKwkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKworCQlkZXNjLT5wdHJbNV0ucHRyID0gY3B1X3RvX2JlMzIoKHN0cnVjdCB0YWxpdG9zX3B0ciAqKQorCQkJCQkgICAgICAgZWRlc2MtPmRtYV9saW5rX3RibCArCisJCQkJCSAgICAgICBlZGVzYy0+c3JjX25lbnRzKTsKKwkJaWYgKGFyZXEtPnNyYyA9PSBhcmVxLT5kc3QpIHsKKwkJCW1lbWNweShsaW5rX3RibF9wdHIsICZlZGVzYy0+bGlua190YmxbMF0sCisJCQkgICAgICAgZWRlc2MtPnNyY19uZW50cyAqIHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wdHIpKTsKKwkJfSBlbHNlIHsKKwkJCXNnX2NvdW50ID0gc2dfdG9fbGlua190YmwoYXJlcS0+ZHN0LCBzZ19jb3VudCwgY3J5cHRsZW4sCisJCQkJCQkgIGxpbmtfdGJsX3B0cik7CisJCX0KKwkJbGlua190YmxfcHRyICs9IHNnX2NvdW50IC0gMTsKKworCQkvKiBoYW5kbGUgY2FzZSB3aGVyZSBzZ19sYXN0IGNvbnRhaW5zIHRoZSBJQ1YgZXhjbHVzaXZlbHkgKi8KKwkJc2cgPSBzZ19sYXN0KGFyZXEtPmRzdCwgZWRlc2MtPmRzdF9uZW50cyk7CisJCWlmIChzZy0+bGVuZ3RoID09IGN0eC0+YXV0aHNpemUpCisJCQlsaW5rX3RibF9wdHItLTsKKworCQlsaW5rX3RibF9wdHItPmpfZXh0ZW50ID0gMDsKKwkJbGlua190YmxfcHRyKys7CisJCWxpbmtfdGJsX3B0ci0+al9leHRlbnQgPSBERVNDX1BUUl9MTktUQkxfUkVUVVJOOworCQlsaW5rX3RibF9wdHItPmxlbiA9IGNwdV90b19iZTE2KGF1dGhzaXplKTsKKworCQkvKiBpY3YgZGF0YSBmb2xsb3dzIGxpbmsgdGFibGVzICovCisJCWxpbmtfdGJsX3B0ci0+cHRyID0gY3B1X3RvX2JlMzIoKHN0cnVjdCB0YWxpdG9zX3B0ciAqKQorCQkJCQkJZWRlc2MtPmRtYV9saW5rX3RibCArCisJCQkJCSAgICAgICAgZWRlc2MtPnNyY19uZW50cyArCisJCQkJCQllZGVzYy0+ZHN0X25lbnRzICsgMSk7CisKKwkJZGVzYy0+cHRyWzVdLmpfZXh0ZW50IHw9IERFU0NfUFRSX0xOS1RCTF9KVU1QOworCQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShjdHgtPmRldiwgZWRlc2MtPmRtYV9saW5rX3RibCwKKwkJCQkJICAgZWRlc2MtPmRtYV9sZW4sIERNQV9CSURJUkVDVElPTkFMKTsKKwl9CisKKwkvKiBpdiBvdXQgKi8KKwltYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmRlc2MtPnB0cls2XSwgaXZzaXplLCBjdHgtPml2LCAwLAorCQkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisKKwlyZXR1cm4gdGFsaXRvc19zdWJtaXQoZGV2LCBkZXNjLCBjYWxsYmFjaywgYXJlcSk7Cit9CisKKworLyoKKyAqIGRlcml2ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gc2NhdHRlcmxpc3QKKyAqLworc3RhdGljIGludCBzZ19jb3VudChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnX2xpc3QsIGludCBuYnl0ZXMpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZyA9IHNnX2xpc3Q7CisJaW50IHNnX25lbnRzID0gMDsKKworCXdoaWxlIChuYnl0ZXMpIHsKKwkJc2dfbmVudHMrKzsKKwkJbmJ5dGVzIC09IHNnLT5sZW5ndGg7CisJCXNnID0gc2dfbmV4dChzZyk7CisJfQorCisJcmV0dXJuIHNnX25lbnRzOworfQorCisvKgorICogYWxsb2NhdGUgYW5kIG1hcCB0aGUgaXBzZWNfZXNwIGV4dGVuZGVkIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIHN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmlwc2VjX2VzcF9lZGVzY19hbGxvYyhzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxLAorCQkJCQkJICAgICBpbnQgaWN2X3N0YXNoaW5nKQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFkX3JlcXRmbShhcmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKwlpbnQgc3JjX25lbnRzLCBkc3RfbmVudHMsIGFsbG9jX2xlbiwgZG1hX2xlbjsKKworCWlmIChhcmVxLT5jcnlwdGxlbiArIGN0eC0+YXV0aHNpemUgPiBUQUxJVE9TX01BWF9EQVRBX0xFTikgeworCQlkZXZfZXJyKGN0eC0+ZGV2LCAiY3J5cHRsZW4gZXhjZWVkcyBoL3cgbWF4IGxpbWl0XG4iKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQorCisJc3JjX25lbnRzID0gc2dfY291bnQoYXJlcS0+c3JjLCBhcmVxLT5jcnlwdGxlbiArIGN0eC0+YXV0aHNpemUpOworCXNyY19uZW50cyA9IChzcmNfbmVudHMgPT0gMSkgPyAwIDogc3JjX25lbnRzOworCisJaWYgKGFyZXEtPmRzdCA9PSBhcmVxLT5zcmMpIHsKKwkJZHN0X25lbnRzID0gc3JjX25lbnRzOworCX0gZWxzZSB7CisJCWRzdF9uZW50cyA9IHNnX2NvdW50KGFyZXEtPmRzdCwgYXJlcS0+Y3J5cHRsZW4gKyBjdHgtPmF1dGhzaXplKTsKKwkJZHN0X25lbnRzID0gKGRzdF9uZW50cyA9PSAxKSA/IDAgOiBzcmNfbmVudHM7CisJfQorCisJLyoKKwkgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgYmFzZSBlZGVzYyBwbHVzIHRoZSBsaW5rIHRhYmxlcywKKwkgKiBhbGxvd2luZyBmb3IgYSBzZXBhcmF0ZSBlbnRyeSBmb3IgdGhlIGdlbmVyYXRlZCBJQ1YgKCsgMSksCisJICogYW5kIHRoZSBJQ1YgZGF0YSBpdHNlbGYKKwkgKi8KKwlhbGxvY19sZW4gPSBzaXplb2Yoc3RydWN0IGlwc2VjX2VzcF9lZGVzYyk7CisJaWYgKHNyY19uZW50cyB8fCBkc3RfbmVudHMpIHsKKwkJZG1hX2xlbiA9IChzcmNfbmVudHMgKyBkc3RfbmVudHMgKyAxKSAqCisJCQkJIHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wdHIpICsgY3R4LT5hdXRoc2l6ZTsKKwkJYWxsb2NfbGVuICs9IGRtYV9sZW47CisJfSBlbHNlIHsKKwkJZG1hX2xlbiA9IDA7CisJCWFsbG9jX2xlbiArPSBpY3Zfc3Rhc2hpbmcgPyBjdHgtPmF1dGhzaXplIDogMDsKKwl9CisKKwllZGVzYyA9IGttYWxsb2MoYWxsb2NfbGVuLCBHRlBfRE1BKTsKKwlpZiAoIWVkZXNjKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJjb3VsZCBub3QgYWxsb2NhdGUgZWRlc2NyaXB0b3JcbiIpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9CisKKwllZGVzYy0+c3JjX25lbnRzID0gc3JjX25lbnRzOworCWVkZXNjLT5kc3RfbmVudHMgPSBkc3RfbmVudHM7CisJZWRlc2MtPmRtYV9sZW4gPSBkbWFfbGVuOworCWVkZXNjLT5kbWFfbGlua190YmwgPSBkbWFfbWFwX3NpbmdsZShjdHgtPmRldiwgJmVkZXNjLT5saW5rX3RibFswXSwKKwkJCQkJICAgICBlZGVzYy0+ZG1hX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOworCisJcmV0dXJuIGVkZXNjOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19lbmNyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMgPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKworCS8qIGFsbG9jYXRlIGV4dGVuZGVkIGRlc2NyaXB0b3IgKi8KKwllZGVzYyA9IGlwc2VjX2VzcF9lZGVzY19hbGxvYyhyZXEsIDApOworCWlmIChJU19FUlIoZWRlc2MpKQorCQlyZXR1cm4gUFRSX0VSUihlZGVzYyk7CisKKwkvKiBzZXQgZW5jcnlwdCAqLworCWVkZXNjLT5kZXNjLmhkciA9IGN0eC0+ZGVzY19oZHJfdGVtcGxhdGUgfCBERVNDX0hEUl9NT0RFMF9FTkNSWVBUOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgcmVxLCBOVUxMLCAwLCBpcHNlY19lc3BfZW5jcnlwdF9kb25lKTsKK30KKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfZGVjcnlwdChzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYXV0aGVuYyk7CisJdW5zaWduZWQgaW50IGF1dGhzaXplID0gY3R4LT5hdXRoc2l6ZTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXZvaWQgKmljdmRhdGE7CisKKwlyZXEtPmNyeXB0bGVuIC09IGF1dGhzaXplOworCisJLyogYWxsb2NhdGUgZXh0ZW5kZWQgZGVzY3JpcHRvciAqLworCWVkZXNjID0gaXBzZWNfZXNwX2VkZXNjX2FsbG9jKHJlcSwgMSk7CisJaWYgKElTX0VSUihlZGVzYykpCisJCXJldHVybiBQVFJfRVJSKGVkZXNjKTsKKworCS8qIHN0YXNoIGluY29taW5nIElDViBmb3IgbGF0ZXIgY21wIHdpdGggSUNWIGdlbmVyYXRlZCBieSB0aGUgaC93ICovCisJaWYgKGVkZXNjLT5kbWFfbGVuKQorCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzICsKKwkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCWVsc2UKKwkJaWN2ZGF0YSA9ICZlZGVzYy0+bGlua190YmxbMF07CisKKwlzZyA9IHNnX2xhc3QocmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEpOworCisJbWVtY3B5KGljdmRhdGEsIChjaGFyICopc2dfdmlydChzZykgKyBzZy0+bGVuZ3RoIC0gY3R4LT5hdXRoc2l6ZSwKKwkgICAgICAgY3R4LT5hdXRoc2l6ZSk7CisKKwkvKiBkZWNyeXB0ICovCisJZWRlc2MtPmRlc2MuaGRyID0gY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSB8IERFU0NfSERSX0RJUl9JTkJPVU5EOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgcmVxLCBOVUxMLCAwLCBpcHNlY19lc3BfZGVjcnlwdF9kb25lKTsKK30KKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCgKKwlzdHJ1Y3QgYWVhZF9naXZjcnlwdF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqYXJlcSA9ICZyZXEtPmFyZXE7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjOworCisJLyogYWxsb2NhdGUgZXh0ZW5kZWQgZGVzY3JpcHRvciAqLworCWVkZXNjID0gaXBzZWNfZXNwX2VkZXNjX2FsbG9jKGFyZXEsIDApOworCWlmIChJU19FUlIoZWRlc2MpKQorCQlyZXR1cm4gUFRSX0VSUihlZGVzYyk7CisKKwkvKiBzZXQgZW5jcnlwdCAqLworCWVkZXNjLT5kZXNjLmhkciA9IGN0eC0+ZGVzY19oZHJfdGVtcGxhdGUgfCBERVNDX0hEUl9NT0RFMF9FTkNSWVBUOworCisJbWVtY3B5KHJlcS0+Z2l2LCBjdHgtPml2LCBjcnlwdG9fYWVhZF9pdnNpemUoYXV0aGVuYykpOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgYXJlcSwgcmVxLT5naXYsIHJlcS0+c2VxLAorCQkJIGlwc2VjX2VzcF9lbmNyeXB0X2RvbmUpOworfQorCitzdHJ1Y3QgdGFsaXRvc19hbGdfdGVtcGxhdGUgeworCWNoYXIgbmFtZVtDUllQVE9fTUFYX0FMR19OQU1FXTsKKwljaGFyIGRyaXZlcl9uYW1lW0NSWVBUT19NQVhfQUxHX05BTUVdOworCXVuc2lnbmVkIGludCBibG9ja3NpemU7CisJc3RydWN0IGFlYWRfYWxnIGFlYWQ7CisJc3RydWN0IGRldmljZSAqZGV2OworCV9fYmUzMiBkZXNjX2hkcl90ZW1wbGF0ZTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdGFsaXRvc19hbGdfdGVtcGxhdGUgZHJpdmVyX2FsZ3NbXSA9IHsKKwkvKiBzaW5nbGUtcGFzcyBpcHNlY19lc3AgZGVzY3JpcHRvciAqLworCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTEpLGNiYyhhZXMpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtc2hhMS1jYmMtYWVzLXRhbGl0b3MiLAorCQkuYmxvY2tzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUgPSBTSEExX0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfQUVTVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0FFU1VfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9TSEExX0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhzaGExKSxjYmMoZGVzM19lZGUpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtc2hhMS1jYmMtM2Rlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IFNIQTFfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9ERVUgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfREVVXzNERVMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1NIQTFfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTI1NiksY2JjKGFlcykpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1zaGEyNTYtY2JjLWFlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkuYWVhZCA9IHsKKwkJCS5zZXRrZXkgPSBhZWFkX2F1dGhlbmNfc2V0a2V5LAorCQkJLnNldGF1dGhzaXplID0gYWVhZF9hdXRoZW5jX3NldGF1dGhzaXplLAorCQkJLmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZW5jcnlwdCwKKwkJCS5kZWNyeXB0ID0gYWVhZF9hdXRoZW5jX2RlY3J5cHQsCisJCQkuZ2l2ZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0LAorCQkJLmdlbml2ID0gIjxidWlsdC1pbj4iLAorCQkJLml2c2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplID0gU0hBMjU2X0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfQUVTVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0FFU1VfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTZfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTI1NiksY2JjKGRlczNfZWRlKSkiLAorCQkuZHJpdmVyX25hbWUgPSAiYXV0aGVuYy1obWFjLXNoYTI1Ni1jYmMtM2Rlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IFNIQTI1Nl9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0RFVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0RFVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfM0RFUyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfU0hBMjU2X0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhhZXMpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtbWQ1LWNiYy1hZXMtdGFsaXRvcyIsCisJCS5ibG9ja3NpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmFlYWQgPSB7CisJCQkuc2V0a2V5ID0gYWVhZF9hdXRoZW5jX3NldGtleSwKKwkJCS5zZXRhdXRoc2l6ZSA9IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZSwKKwkJCS5lbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2VuY3J5cHQsCisJCQkuZGVjcnlwdCA9IGFlYWRfYXV0aGVuY19kZWNyeXB0LAorCQkJLmdpdmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCwKKwkJCS5nZW5pdiA9ICI8YnVpbHQtaW4+IiwKKwkJCS5pdnNpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IE1ENV9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0FFU1UgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9BRVNVX0NCQyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfTUQ1X0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhkZXMzX2VkZSkpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1tZDUtY2JjLTNkZXMtdGFsaXRvcyIsCisJCS5ibG9ja3NpemUgPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkuYWVhZCA9IHsKKwkJCS5zZXRrZXkgPSBhZWFkX2F1dGhlbmNfc2V0a2V5LAorCQkJLnNldGF1dGhzaXplID0gYWVhZF9hdXRoZW5jX3NldGF1dGhzaXplLAorCQkJLmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZW5jcnlwdCwKKwkJCS5kZWNyeXB0ID0gYWVhZF9hdXRoZW5jX2RlY3J5cHQsCisJCQkuZ2l2ZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0LAorCQkJLmdlbml2ID0gIjxidWlsdC1pbj4iLAorCQkJLml2c2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUgPSBNRDVfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9ERVUgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfREVVXzNERVMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX01ENV9ITUFDLAorCX0KK307CisKK3N0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgeworCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CisJc3RydWN0IGRldmljZSAqZGV2OworCV9fYmUzMiBkZXNjX2hkcl90ZW1wbGF0ZTsKKwlzdHJ1Y3QgY3J5cHRvX2FsZyBjcnlwdG9fYWxnOworfTsKKworc3RhdGljIGludCB0YWxpdG9zX2NyYV9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZyA9IHRmbS0+X19jcnRfYWxnOworCXN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgKnRhbGl0b3NfYWxnID0KKwkJIGNvbnRhaW5lcl9vZihhbGcsIHN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcsIGNyeXB0b19hbGcpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKworCS8qIHVwZGF0ZSBjb250ZXh0IHdpdGggcHRyIHRvIGRldiAqLworCWN0eC0+ZGV2ID0gdGFsaXRvc19hbGctPmRldjsKKwkvKiBjb3B5IGRlc2NyaXB0b3IgaGVhZGVyIHRlbXBsYXRlIHZhbHVlICovCisJY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSA9IHRhbGl0b3NfYWxnLT5kZXNjX2hkcl90ZW1wbGF0ZTsKKworCS8qIHJhbmRvbSBmaXJzdCBJViAqLworCWdldF9yYW5kb21fYnl0ZXMoY3R4LT5pdiwgVEFMSVRPU19NQVhfSVZfTEVOR1RIKTsKKworCXJldHVybiAwOworfQorCisvKgorICogZ2l2ZW4gdGhlIGFsZydzIGRlc2NyaXB0b3IgaGVhZGVyIHRlbXBsYXRlLCBkZXRlcm1pbmUgd2hldGhlciBkZXNjcmlwdG9yCisgKiB0eXBlIGFuZCBwcmltYXJ5L3NlY29uZGFyeSBleGVjdXRpb24gdW5pdHMgcmVxdWlyZWQgbWF0Y2ggdGhlIGh3CisgKiBjYXBhYmlsaXRpZXMgZGVzY3JpcHRpb24gcHJvdmlkZWQgaW4gdGhlIGRldmljZSB0cmVlIG5vZGUuCisgKi8KK3N0YXRpYyBpbnQgaHdfc3VwcG9ydHMoc3RydWN0IGRldmljZSAqZGV2LCBfX2JlMzIgZGVzY19oZHJfdGVtcGxhdGUpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCByZXQ7CisKKwlyZXQgPSAoMSA8PCBERVNDX1RZUEUoZGVzY19oZHJfdGVtcGxhdGUpICYgcHJpdi0+ZGVzY190eXBlcykgJiYKKwkgICAgICAoMSA8PCBQUklNQVJZX0VVKGRlc2NfaGRyX3RlbXBsYXRlKSAmIHByaXYtPmV4ZWNfdW5pdHMpOworCisJaWYgKFNFQ09OREFSWV9FVShkZXNjX2hkcl90ZW1wbGF0ZSkpCisJCXJldCA9IHJldCAmJiAoMSA8PCBTRUNPTkRBUllfRVUoZGVzY19oZHJfdGVtcGxhdGUpCisJCSAgICAgICAgICAgICAgJiBwcml2LT5leGVjX3VuaXRzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IHRhbGl0b3NfcmVtb3ZlKHN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZvZmRldi0+ZGV2OworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0X2FsZywgKm47CisJaW50IGk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodF9hbGcsIG4sICZwcml2LT5hbGdfbGlzdCwgZW50cnkpIHsKKwkJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZ0X2FsZy0+Y3J5cHRvX2FsZyk7CisJCWxpc3RfZGVsKCZ0X2FsZy0+ZW50cnkpOworCQlrZnJlZSh0X2FsZyk7CisJfQorCisJaWYgKGh3X3N1cHBvcnRzKGRldiwgREVTQ19IRFJfU0VMMF9STkcpKQorCQl0YWxpdG9zX3VucmVnaXN0ZXJfcm5nKGRldik7CisKKwlrZnJlZShwcml2LT50YWlsKTsKKwlrZnJlZShwcml2LT5oZWFkKTsKKworCWlmIChwcml2LT5maWZvKQorCQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBpKyspCisJCQlrZnJlZShwcml2LT5maWZvW2ldKTsKKworCWtmcmVlKHByaXYtPmZpZm8pOworCWtmcmVlKHByaXYtPmhlYWRfbG9jayk7CisJa2ZyZWUocHJpdi0+dGFpbF9sb2NrKTsKKworCWlmIChwcml2LT5pcnEgIT0gTk9fSVJRKSB7CisJCWZyZWVfaXJxKHByaXYtPmlycSwgZGV2KTsKKwkJaXJxX2Rpc3Bvc2VfbWFwcGluZyhwcml2LT5pcnEpOworCX0KKworCXRhc2tsZXRfa2lsbCgmcHJpdi0+ZG9uZV90YXNrKTsKKwl0YXNrbGV0X2tpbGwoJnByaXYtPmVycm9yX3Rhc2spOworCisJaW91bm1hcChwcml2LT5yZWcpOworCisJZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7CisKKwlrZnJlZShwcml2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyAqdGFsaXRvc19hbGdfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkJICAgIHN0cnVjdCB0YWxpdG9zX2FsZ190ZW1wbGF0ZQorCQkJCQkJICAgICAgICAgICAqdGVtcGxhdGUpCit7CisJc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyAqdF9hbGc7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZzsKKworCXRfYWxnID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyksIEdGUF9LRVJORUwpOworCWlmICghdF9hbGcpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJYWxnID0gJnRfYWxnLT5jcnlwdG9fYWxnOworCisJc25wcmludGYoYWxnLT5jcmFfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgdGVtcGxhdGUtPm5hbWUpOworCXNucHJpbnRmKGFsZy0+Y3JhX2RyaXZlcl9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLAorCQkgdGVtcGxhdGUtPmRyaXZlcl9uYW1lKTsKKwlhbGctPmNyYV9tb2R1bGUgPSBUSElTX01PRFVMRTsKKwlhbGctPmNyYV9pbml0ID0gdGFsaXRvc19jcmFfaW5pdDsKKwlhbGctPmNyYV9wcmlvcml0eSA9IFRBTElUT1NfQ1JBX1BSSU9SSVRZOworCWFsZy0+Y3JhX2ZsYWdzID0gQ1JZUFRPX0FMR19UWVBFX0FFQUQgfCBDUllQVE9fQUxHX0FTWU5DOworCWFsZy0+Y3JhX2Jsb2Nrc2l6ZSA9IHRlbXBsYXRlLT5ibG9ja3NpemU7CisJYWxnLT5jcmFfYWxpZ25tYXNrID0gMDsKKwlhbGctPmNyYV90eXBlID0gJmNyeXB0b19hZWFkX3R5cGU7CisJYWxnLT5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGFsaXRvc19jdHgpOworCWFsZy0+Y3JhX3UuYWVhZCA9IHRlbXBsYXRlLT5hZWFkOworCisJdF9hbGctPmRlc2NfaGRyX3RlbXBsYXRlID0gdGVtcGxhdGUtPmRlc2NfaGRyX3RlbXBsYXRlOworCXRfYWxnLT5kZXYgPSBkZXY7CisKKwlyZXR1cm4gdF9hbGc7Cit9CisKK3N0YXRpYyBpbnQgdGFsaXRvc19wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldiwKKwkJCSBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmb2ZkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gb2ZkZXYtPm5vZGU7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdjsKKwljb25zdCB1bnNpZ25lZCBpbnQgKnByb3A7CisJaW50IGksIGVycjsKKworCXByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHByaXYpOworCisJcHJpdi0+b2ZkZXYgPSBvZmRldjsKKworCXRhc2tsZXRfaW5pdCgmcHJpdi0+ZG9uZV90YXNrLCB0YWxpdG9zX2RvbmUsICh1bnNpZ25lZCBsb25nKWRldik7CisJdGFza2xldF9pbml0KCZwcml2LT5lcnJvcl90YXNrLCB0YWxpdG9zX2Vycm9yLCAodW5zaWduZWQgbG9uZylkZXYpOworCisJcHJpdi0+aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDApOworCisJaWYgKHByaXYtPmlycSA9PSBOT19JUlEpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gbWFwIGlycVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiBnZXQgdGhlIGlycSBsaW5lICovCisJZXJyID0gcmVxdWVzdF9pcnEocHJpdi0+aXJxLCB0YWxpdG9zX2ludGVycnVwdCwgMCwKKwkJCSAgZGV2X2RyaXZlcl9zdHJpbmcoZGV2KSwgZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgaXJxICVkXG4iLCBwcml2LT5pcnEpOworCQlpcnFfZGlzcG9zZV9tYXBwaW5nKHByaXYtPmlycSk7CisJCXByaXYtPmlycSA9IE5PX0lSUTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCXByaXYtPnJlZyA9IG9mX2lvbWFwKG5wLCAwKTsKKwlpZiAoIXByaXYtPnJlZykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBvZl9pb21hcFxuIik7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiBnZXQgU0VDIHZlcnNpb24gY2FwYWJpbGl0aWVzIGZyb20gZGV2aWNlIHRyZWUgKi8KKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLG51bS1jaGFubmVscyIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5udW1fY2hhbm5lbHMgPSAqcHJvcDsKKworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJmc2wsY2hhbm5lbC1maWZvLWxlbiIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5jaGZpZm9fbGVuID0gKnByb3A7CisKKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLGV4ZWMtdW5pdHMtbWFzayIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5leGVjX3VuaXRzID0gKnByb3A7CisKKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLGRlc2NyaXB0b3ItdHlwZXMtbWFzayIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5kZXNjX3R5cGVzID0gKnByb3A7CisKKwlpZiAoIWlzX3Bvd2VyX29mXzIocHJpdi0+bnVtX2NoYW5uZWxzKSB8fCAhcHJpdi0+Y2hmaWZvX2xlbiB8fAorCSAgICAhcHJpdi0+ZXhlY191bml0cyB8fCAhcHJpdi0+ZGVzY190eXBlcykgeworCQlkZXZfZXJyKGRldiwgImludmFsaWQgcHJvcGVydHkgZGF0YSBpbiBkZXZpY2UgdHJlZSBub2RlXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJfb3V0OworCX0KKworCW9mX25vZGVfcHV0KG5wKTsKKwlucCA9IE5VTEw7CisKKwlwcml2LT5oZWFkX2xvY2sgPSBrbWFsbG9jKHNpemVvZihzcGlubG9ja190KSAqIHByaXYtPm51bV9jaGFubmVscywKKwkJCQkgIEdGUF9LRVJORUwpOworCXByaXYtPnRhaWxfbG9jayA9IGttYWxsb2Moc2l6ZW9mKHNwaW5sb2NrX3QpICogcHJpdi0+bnVtX2NoYW5uZWxzLAorCQkJCSAgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2LT5oZWFkX2xvY2sgfHwgIXByaXYtPnRhaWxfbG9jaykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBmaWZvIGxvY2tzXG4iKTsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fY2hhbm5lbHM7IGkrKykgeworCQlzcGluX2xvY2tfaW5pdCgmcHJpdi0+aGVhZF9sb2NrW2ldKTsKKwkJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnRhaWxfbG9ja1tpXSk7CisJfQorCisJcHJpdi0+ZmlmbyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3JlcXVlc3QgKikgKgorCQkJICAgICBwcml2LT5udW1fY2hhbm5lbHMsIEdGUF9LRVJORUwpOworCWlmICghcHJpdi0+ZmlmbykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZXF1ZXN0IGZpZm9cbiIpOworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJcHJpdi0+Zmlmb19sZW4gPSByb3VuZHVwX3Bvd19vZl90d28ocHJpdi0+Y2hmaWZvX2xlbik7CisKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBpKyspIHsKKwkJcHJpdi0+Zmlmb1tpXSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3JlcXVlc3QpICoKKwkJCQkJcHJpdi0+Zmlmb19sZW4sIEdGUF9LRVJORUwpOworCQlpZiAoIXByaXYtPmZpZm9baV0pIHsKKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlcXVlc3QgZmlmbyAlZFxuIiwgaSk7CisJCQllcnIgPSAtRU5PTUVNOworCQkJZ290byBlcnJfb3V0OworCQl9CisJfQorCisJcHJpdi0+aGVhZCA9IGt6YWxsb2Moc2l6ZW9mKGludCkgKiBwcml2LT5udW1fY2hhbm5lbHMsIEdGUF9LRVJORUwpOworCXByaXYtPnRhaWwgPSBremFsbG9jKHNpemVvZihpbnQpICogcHJpdi0+bnVtX2NoYW5uZWxzLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYtPmhlYWQgfHwgIXByaXYtPnRhaWwpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdCBpbmRleCBzcGFjZVxuIik7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiByZXNldCBhbmQgaW5pdGlhbGl6ZSB0aGUgaC93ICovCisJZXJyID0gaW5pdF9kZXZpY2UoZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgZGV2aWNlXG4iKTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCS8qIHJlZ2lzdGVyIHRoZSBSTkcsIGlmIGF2YWlsYWJsZSAqLworCWlmIChod19zdXBwb3J0cyhkZXYsIERFU0NfSERSX1NFTDBfUk5HKSkgeworCQllcnIgPSB0YWxpdG9zX3JlZ2lzdGVyX3JuZyhkZXYpOworCQlpZiAoZXJyKSB7CisJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBod3JuZzogJWRcbiIsIGVycik7CisJCQlnb3RvIGVycl9vdXQ7CisJCX0gZWxzZQorCQkJZGV2X2luZm8oZGV2LCAiaHdybmdcbiIpOworCX0KKworCS8qIHJlZ2lzdGVyIGNyeXB0byBhbGdvcml0aG1zIHRoZSBkZXZpY2Ugc3VwcG9ydHMgKi8KKwlJTklUX0xJU1RfSEVBRCgmcHJpdi0+YWxnX2xpc3QpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZHJpdmVyX2FsZ3MpOyBpKyspIHsKKwkJaWYgKGh3X3N1cHBvcnRzKGRldiwgZHJpdmVyX2FsZ3NbaV0uZGVzY19oZHJfdGVtcGxhdGUpKSB7CisJCQlzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0X2FsZzsKKworCQkJdF9hbGcgPSB0YWxpdG9zX2FsZ19hbGxvYyhkZXYsICZkcml2ZXJfYWxnc1tpXSk7CisJCQlpZiAoSVNfRVJSKHRfYWxnKSkgeworCQkJCWVyciA9IFBUUl9FUlIodF9hbGcpOworCQkJCWdvdG8gZXJyX291dDsKKwkJCX0KKworCQkJZXJyID0gY3J5cHRvX3JlZ2lzdGVyX2FsZygmdF9hbGctPmNyeXB0b19hbGcpOworCQkJaWYgKGVycikgeworCQkJCWRldl9lcnIoZGV2LCAiJXMgYWxnIHJlZ2lzdHJhdGlvbiBmYWlsZWRcbiIsCisJCQkJCXRfYWxnLT5jcnlwdG9fYWxnLmNyYV9kcml2ZXJfbmFtZSk7CisJCQkJa2ZyZWUodF9hbGcpOworCQkJfSBlbHNlIHsKKwkJCQlsaXN0X2FkZF90YWlsKCZ0X2FsZy0+ZW50cnksICZwcml2LT5hbGdfbGlzdCk7CisJCQkJZGV2X2luZm8oZGV2LCAiJXNcbiIsCisJCQkJCSB0X2FsZy0+Y3J5cHRvX2FsZy5jcmFfZHJpdmVyX25hbWUpOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJdGFsaXRvc19yZW1vdmUob2ZkZXYpOworCWlmIChucCkKKwkJb2Zfbm9kZV9wdXQobnApOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgdGFsaXRvc19tYXRjaFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAiZnNsLHNlYzIuMCIsCisJfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0YWxpdG9zX21hdGNoKTsKKworc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgdGFsaXRvc19kcml2ZXIgPSB7CisJLm5hbWUgPSAidGFsaXRvcyIsCisJLm1hdGNoX3RhYmxlID0gdGFsaXRvc19tYXRjaCwKKwkucHJvYmUgPSB0YWxpdG9zX3Byb2JlLAorCS5yZW1vdmUgPSBfX2RldmV4aXRfcCh0YWxpdG9zX3JlbW92ZSksCit9OworCitzdGF0aWMgaW50IF9faW5pdCB0YWxpdG9zX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gb2ZfcmVnaXN0ZXJfcGxhdGZvcm1fZHJpdmVyKCZ0YWxpdG9zX2RyaXZlcik7Cit9Cittb2R1bGVfaW5pdCh0YWxpdG9zX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgdGFsaXRvc19leGl0KHZvaWQpCit7CisJb2ZfdW5yZWdpc3Rlcl9wbGF0Zm9ybV9kcml2ZXIoJnRhbGl0b3NfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHRhbGl0b3NfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BVVRIT1IoIktpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkZyZWVzY2FsZSBpbnRlZ3JhdGVkIHNlY3VyaXR5IGVuZ2luZSAoU0VDKSBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuaCBiL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDhhNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5oCkBAIC0wLDAgKzEsMTk5IEBACisvKgorICogRnJlZXNjYWxlIFNFQyAodGFsaXRvcykgZGV2aWNlIHJlZ2lzdGVyIGFuZCBkZXNjcmlwdG9yIGhlYWRlciBkZWZpbmVzCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDggRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworLyoKKyAqIFRBTElUT1NfeHh4X0xPIGFkZHJlc3NlcyBwb2ludCB0byB0aGUgbG93IGRhdGEgYml0cyAoMzItNjMpIG9mIHRoZSByZWdpc3RlcgorICovCisKKy8qIGdsb2JhbCByZWdpc3RlciBvZmZzZXQgYWRkcmVzc2VzICovCisjZGVmaW5lIFRBTElUT1NfTUNSCQkJMHgxMDMwICAvKiBtYXN0ZXIgY29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX01DUl9MTwkJCTB4MTAzOAorI2RlZmluZSAgIFRBTElUT1NfTUNSX1NXUgkJMHgxICAgICAvKiBzL3cgcmVzZXQgKi8KKyNkZWZpbmUgVEFMSVRPU19JTVIJCQkweDEwMDggIC8qIGludGVycnVwdCBtYXNrIHJlZ2lzdGVyICovCisjZGVmaW5lICAgVEFMSVRPU19JTVJfSU5JVAkJMHgxMGZmZiAvKiBlbmFibGUgY2hhbm5lbCBJUlFzICovCisjZGVmaW5lIFRBTElUT1NfSU1SX0xPCQkJMHgxMDBDCisjZGVmaW5lICAgVEFMSVRPU19JTVJfTE9fSU5JVAkJMHgyMDAwMCAvKiBhbGxvdyBSTkdVIGVycm9yIElSUXMgKi8KKyNkZWZpbmUgVEFMSVRPU19JU1IJCQkweDEwMTAgIC8qIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0lTUl9DSEVSUgkJMHhhYSAgICAvKiBjaGFubmVsIGVycm9ycyBtYXNrICovCisjZGVmaW5lICAgVEFMSVRPU19JU1JfQ0hET05FCQkweDU1ICAgIC8qIGNoYW5uZWwgZG9uZSBtYXNrICovCisjZGVmaW5lIFRBTElUT1NfSVNSX0xPCQkJMHgxMDE0CisjZGVmaW5lIFRBTElUT1NfSUNSCQkJMHgxMDE4ICAvKiBpbnRlcnJ1cHQgY2xlYXIgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19JQ1JfTE8JCQkweDEwMUMKKworLyogY2hhbm5lbCByZWdpc3RlciBhZGRyZXNzIHN0cmlkZSAqLworI2RlZmluZSBUQUxJVE9TX0NIX1NUUklERQkJMHgxMDAKKworLyogY2hhbm5lbCBjb25maWd1cmF0aW9uIHJlZ2lzdGVyICAqLworI2RlZmluZSBUQUxJVE9TX0NDQ1IoY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTEwOCkKKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfQ09OVAkJMHgyICAgIC8qIGNoYW5uZWwgY29udGludWUgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfUkVTRVQJCTB4MSAgICAvKiBjaGFubmVsIHJlc2V0ICovCisjZGVmaW5lIFRBTElUT1NfQ0NDUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTBjKQorI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9MT19DRFdFCQkweDEwICAgLyogY2hhbi4gZG9uZSB3cml0ZWJhY2sgZW5hYi4gKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfTE9fTlQJCTB4NCAgICAvKiBub3RpZmljYXRpb24gdHlwZSAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9MT19DRElFCQkweDIgICAgLyogY2hhbm5lbCBkb25lIElSUSBlbmFibGUgKi8KKworLyogQ0NQU1I6IGNoYW5uZWwgcG9pbnRlciBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19DQ1BTUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTEwKQorI2RlZmluZSBUQUxJVE9TX0NDUFNSX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExMTQpCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19ET0YJCTB4ODAwMCAvKiBkb3VibGUgRkYgd3JpdGUgb2Zsb3cgZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX1NPRgkJMHg0MDAwIC8qIHNpbmdsZSBGRiB3cml0ZSBvZmxvdyBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fTURURQkJMHgyMDAwIC8qIG1hc3RlciBkYXRhIHRyYW5zZmVyIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19TR0RMWgkweDEwMDAgLyogcy9nIGRhdGEgbGVuIHplcm8gZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0ZQWgkJMHgwODAwIC8qIGZldGNoIHB0ciB6ZXJvIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19JREgJCTB4MDQwMCAvKiBpbGxlZ2FsIGRlc2MgaGRyIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19JRVUJCTB4MDIwMCAvKiBpbnZhbGlkIEVVIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19FVQkJMHgwMTAwIC8qIEVVIGVycm9yIGRldGVjdGVkICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19HQgkJMHgwMDgwIC8qIGdhdGhlciBib3VuZGFyeSBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fR1JMCQkweDAwNDAgLyogZ2F0aGVyIHJldHVybi9sZW5ndGggZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX1NCCQkweDAwMjAgLyogc2NhdHRlciBib3VuZGFyeSBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fU1JMCQkweDAwMTAgLyogc2NhdHRlciByZXR1cm4vbGVuZ3RoIGVycm9yICovCisKKy8qIGNoYW5uZWwgZmV0Y2ggZmlmbyByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX0ZGKGNoKQkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTQ4KQorI2RlZmluZSBUQUxJVE9TX0ZGX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExNGMpCisKKy8qIGN1cnJlbnQgZGVzY3JpcHRvciBwb2ludGVyIHJlZ2lzdGVyICovCisjZGVmaW5lIFRBTElUT1NfQ0RQUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTQwKQorI2RlZmluZSBUQUxJVE9TX0NEUFJfTE8oY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTE0NCkKKworLyogZGVzY3JpcHRvciBidWZmZXIgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19ERVNDQlVGKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExODApCisjZGVmaW5lIFRBTElUT1NfREVTQ0JVRl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTg0KQorCisvKiBnYXRoZXIgbGluayB0YWJsZSAqLworI2RlZmluZSBUQUxJVE9TX0dBVEhFUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWMwKQorI2RlZmluZSBUQUxJVE9TX0dBVEhFUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWM0KQorCisvKiBzY2F0dGVyIGxpbmsgdGFibGUgKi8KKyNkZWZpbmUgVEFMSVRPU19TQ0FUVEVSKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExZTApCisjZGVmaW5lIFRBTElUT1NfU0NBVFRFUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWU0KQorCisvKiBleGVjdXRpb24gdW5pdCBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVycyAqLworI2RlZmluZSBUQUxJVE9TX0RFVUlTUgkJCTB4MjAzMCAvKiBERVMgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX0RFVUlTUl9MTwkJMHgyMDM0CisjZGVmaW5lIFRBTElUT1NfQUVTVUlTUgkJCTB4NDAzMCAvKiBBRVMgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX0FFU1VJU1JfTE8JCTB4NDAzNAorI2RlZmluZSBUQUxJVE9TX01ERVVJU1IJCQkweDYwMzAgLyogbWVzc2FnZSBkaWdlc3QgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX01ERVVJU1JfTE8JCTB4NjAzNAorI2RlZmluZSBUQUxJVE9TX0FGRVVJU1IJCQkweDgwMzAgLyogYXJjNCB1bml0ICovCisjZGVmaW5lIFRBTElUT1NfQUZFVUlTUl9MTwkJMHg4MDM0CisjZGVmaW5lIFRBTElUT1NfUk5HVUlTUgkJCTB4YTAzMCAvKiByYW5kb20gbnVtYmVyIHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19STkdVSVNSX0xPCQkweGEwMzQKKyNkZWZpbmUgVEFMSVRPU19STkdVU1IJCQkweGEwMjggLyogcm5nIHN0YXR1cyAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VTUl9MTwkJMHhhMDJjCisjZGVmaW5lICAgVEFMSVRPU19STkdVU1JfTE9fUkQJCTB4MQkvKiByZXNldCBkb25lICovCisjZGVmaW5lICAgVEFMSVRPU19STkdVU1JfTE9fT0ZMCQkweGZmMDAwMC8qIG91dHB1dCBGSUZPIGxlbmd0aCAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VEU1IJCQkweGEwMTAJLyogZGF0YSBzaXplICovCisjZGVmaW5lIFRBTElUT1NfUk5HVURTUl9MTwkJMHhhMDE0CisjZGVmaW5lIFRBTElUT1NfUk5HVV9GSUZPCQkweGE4MDAJLyogb3V0cHV0IEZJRk8gKi8KKyNkZWZpbmUgVEFMSVRPU19STkdVX0ZJRk9fTE8JCTB4YTgwNAkvKiBvdXRwdXQgRklGTyAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VSQ1IJCQkweGEwMTgJLyogcmVzZXQgY29udHJvbCAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VSQ1JfTE8JCTB4YTAxYworI2RlZmluZSAgIFRBTElUT1NfUk5HVVJDUl9MT19TUgkJMHgxCS8qIHNvZnR3YXJlIHJlc2V0ICovCisjZGVmaW5lIFRBTElUT1NfUEtFVUlTUgkJCTB4YzAzMCAvKiBwdWJsaWMga2V5IHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19QS0VVSVNSX0xPCQkweGMwMzQKKyNkZWZpbmUgVEFMSVRPU19LRVVJU1IJCQkweGUwMzAgLyoga2FzdW1pIHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19LRVVJU1JfTE8JCTB4ZTAzNAorI2RlZmluZSBUQUxJVE9TX0NSQ1VJU1IJCQkweGYwMzAgLyogY3ljbGljIHJlZHVuZGFuY3kgY2hlY2sgdW5pdCovCisjZGVmaW5lIFRBTElUT1NfQ1JDVUlTUl9MTwkJMHhmMDM0CisKKy8qCisgKiB0YWxpdG9zIGRlc2NyaXB0b3IgaGVhZGVyIChoZHIpIGJpdHMKKyAqLworCisvKiB3cml0dGVuIGJhY2sgd2hlbiBkb25lICovCisjZGVmaW5lIERFU0NfSERSX0RPTkUJCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4ZmYwMDAwMDApCisKKy8qIHByaW1hcnkgZXhlY3V0aW9uIHVuaXQgc2VsZWN0ICovCisjZGVmaW5lCURFU0NfSERSX1NFTDBfTUFTSwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweGYwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0FGRVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgxMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9ERVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgyMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9NREVVQQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDMwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX01ERVVCCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4YjAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfUk5HCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4NDAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfUEtFVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDUwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0FFU1UJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg2MDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9LRVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg3MDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9DUkNVCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4ODAwMDAwMDApCisKKy8qIHByaW1hcnkgZXhlY3V0aW9uIHVuaXQgbW9kZSAoTU9ERTApIGFuZCBkZXJpdmF0aXZlcyAqLworI2RlZmluZQlERVNDX0hEUl9NT0RFMF9FTkNSWVBUCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAxMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX0FFU1VfQ0JDCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAyMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX0RFVV9DQkMJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDQwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfREVVXzNERVMJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9JTklUCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMTAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9ITUFDCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDgwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9QQUQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDQwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9NRDUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTYJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMTAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX1NIQTEJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX01ENV9ITUFDCShERVNDX0hEUl9NT0RFMF9NREVVX01ENSB8IFwKKwkJCQkJIERFU0NfSERSX01PREUwX01ERVVfSE1BQykKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTZfSE1BQwkoREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTYgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMF9NREVVX0hNQUMpCisjZGVmaW5lCURFU0NfSERSX01PREUwX01ERVVfU0hBMV9ITUFDCShERVNDX0hEUl9NT0RFMF9NREVVX1NIQTEgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMF9NREVVX0hNQUMpCisKKy8qIHNlY29uZGFyeSBleGVjdXRpb24gdW5pdCBzZWxlY3QgKFNFTDEpICovCisjZGVmaW5lCURFU0NfSERSX1NFTDFfTUFTSwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMGYwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwxX01ERVVBCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMzAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDFfTURFVUIJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDBiMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMV9DUkNVCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwODAwMDApCisKKy8qIHNlY29uZGFyeSBleGVjdXRpb24gdW5pdCBtb2RlIChNT0RFMSkgYW5kIGRlcml2YXRpdmVzICovCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfSU5JVAlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDEwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfSE1BQwlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDA4MDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfUEFECQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDA0MDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfTUQ1CQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDAyMDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfU0hBMjU2CV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDEwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9TSEExCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9NRDVfSE1BQwkoREVTQ19IRFJfTU9ERTFfTURFVV9NRDUgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMV9NREVVX0hNQUMpCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfU0hBMjU2X0hNQUMJKERFU0NfSERSX01PREUxX01ERVVfU0hBMjU2IHwgXAorCQkJCQkgREVTQ19IRFJfTU9ERTFfTURFVV9ITUFDKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMV9NREVVX1NIQTFfSE1BQwkoREVTQ19IRFJfTU9ERTFfTURFVV9TSEExIHwgXAorCQkJCQkgREVTQ19IRFJfTU9ERTFfTURFVV9ITUFDKQorCisvKiBkaXJlY3Rpb24gb2Ygb3ZlcmFsbCBkYXRhIGZsb3cgKERJUikgKi8KKyNkZWZpbmUJREVTQ19IRFJfRElSX0lOQk9VTkQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDAwMikKKworLyogcmVxdWVzdCBkb25lIG5vdGlmaWNhdGlvbiAoRE4pICovCisjZGVmaW5lCURFU0NfSERSX0RPTkVfTk9USUZZCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDAwMDEpCisKKy8qIGRlc2NyaXB0b3IgdHlwZXMgKi8KKyNkZWZpbmUgREVTQ19IRFJfVFlQRV9BRVNVX0NUUl9OT05TTk9PUAkJX19jb25zdGFudF9jcHVfdG9fYmUzMigwIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfSVBTRUNfRVNQCQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigxIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfQ09NTU9OX05PTlNOT09QX05PX0FGRVUJX19jb25zdGFudF9jcHVfdG9fYmUzMigyIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfSE1BQ19TTk9PUF9OT19BRkVVCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoNCA8PCAzKQorCisvKiBsaW5rIHRhYmxlIGV4dGVudCBmaWVsZCBiaXRzICovCisjZGVmaW5lIERFU0NfUFRSX0xOS1RCTF9KVU1QCQkJMHg4MAorI2RlZmluZSBERVNDX1BUUl9MTktUQkxfUkVUVVJOCQkJMHgwMgorI2RlZmluZSBERVNDX1BUUl9MTktUQkxfTkVYVAkJCTB4MDEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvS2NvbmZpZyBiL2RyaXZlcnMvZmlyZXdpcmUvS2NvbmZpZwppbmRleCBmYjRkMzkxLi43NmYyNjcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2ZpcmV3aXJlL0tjb25maWcKKysrIGIvZHJpdmVycy9maXJld2lyZS9LY29uZmlnCkBAIC0xLDI4ICsxLDI2IEBACi1jb21tZW50ICJBbiBhbHRlcm5hdGl2ZSBGaXJlV2lyZSBzdGFjayBpcyBhdmFpbGFibGUgd2l0aCBFWFBFUklNRU5UQUw9eSIKK2NvbW1lbnQgIkEgbmV3IGFsdGVybmF0aXZlIEZpcmVXaXJlIHN0YWNrIGlzIGF2YWlsYWJsZSB3aXRoIEVYUEVSSU1FTlRBTD15IgogCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMPW4KIAorY29tbWVudCAiRW5hYmxlIG9ubHkgb25lIG9mIHRoZSB0d28gc3RhY2tzLCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIgorCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCisKIGNvbmZpZyBGSVJFV0lSRQotCXRyaXN0YXRlICJJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0IC0gYWx0ZXJuYXRpdmUgc3RhY2ssIEVYUEVSSU1FTlRBTCIKKwl0cmlzdGF0ZSAiTmV3IEZpcmVXaXJlIHN0YWNrLCBFWFBFUklNRU5UQUwiCiAJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKIAlzZWxlY3QgQ1JDX0lUVV9UCiAJaGVscAogCSAgVGhpcyBpcyB0aGUgIkp1anUiIEZpcmVXaXJlIHN0YWNrLCBhIG5ldyBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbgogCSAgZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MgYW5kIHNpbXBsaWNpdHkuICBZb3UgY2FuIGJ1aWxkIGVpdGhlciB0aGlzCi0JICBzdGFjaywgb3IgdGhlIGNsYXNzaWMgc3RhY2sgKHRoZSBpZWVlMTM5NCBkcml2ZXIsIG9oY2kxMzk0IGV0Yy4pCi0JICBvciBib3RoLiAgUGxlYXNlIHJlYWQgaHR0cDovL3dpa2kubGludXgxMzk0Lm9yZy9KdWp1TWlncmF0aW9uIGJlZm9yZQotCSAgeW91IGVuYWJsZSB0aGUgbmV3IHN0YWNrLgorCSAgc3RhY2ssIG9yIHRoZSBvbGQgc3RhY2sgKHRoZSBpZWVlMTM5NCBkcml2ZXIsIG9oY2kxMzk0IGV0Yy4pIG9yIGJvdGguCisJICBQbGVhc2UgcmVhZCBodHRwOi8vd2lraS5saW51eDEzOTQub3JnL0p1anVNaWdyYXRpb24gYmVmb3JlIHlvdQorCSAgZW5hYmxlIHRoZSBuZXcgc3RhY2suCiAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZQogCSAgY2FsbGVkIGZpcmV3aXJlLWNvcmUuICBJdCBmdW5jdGlvbmFsbHkgcmVwbGFjZXMgaWVlZTEzOTQsIHJhdzEzOTQsCiAJICBhbmQgdmlkZW8xMzk0LgogCi0gICAgICAgICAgTk9URToKLQotCSAgWW91IHNob3VsZCBvbmx5IGJ1aWxkIE9ORSBvZiB0aGUgc3RhY2tzLCB1bmxlc3MgeW91IFJFQUxMWSBrbm93IHdoYXQKLQkgIHlvdSBhcmUgZG9pbmcuCi0KIGNvbmZpZyBGSVJFV0lSRV9PSENJCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIE9IQ0kgRmlyZVdpcmUgaG9zdCBjb250cm9sbGVycyIKKwl0cmlzdGF0ZSAiT0hDSS0xMzk0IGNvbnRyb2xsZXJzIgogCWRlcGVuZHMgb24gUENJICYmIEZJUkVXSVJFCiAJaGVscAogCSAgRW5hYmxlIHRoaXMgZHJpdmVyIGlmIHlvdSBoYXZlIGEgRmlyZVdpcmUgY29udHJvbGxlciBiYXNlZApAQCAtMzMsMTIgKzMxLDEyIEBACiAJICBjYWxsZWQgZmlyZXdpcmUtb2hjaS4gIEl0IHJlcGxhY2VzIG9oY2kxMzk0IG9mIHRoZSBjbGFzc2ljIElFRUUgMTM5NAogCSAgc3RhY2suCiAKLSAgICAgICAgICBOT1RFOgorCSAgTk9URToKIAotCSAgWW91IHNob3VsZCBvbmx5IGJ1aWxkIG9oY2kxMzk0IG9yIGZpcmV3aXJlLW9oY2ksIGJ1dCBub3QgYm90aC4KLQkgIElmIHlvdSBuZXZlcnRoZWxlc3Mgd2FudCB0byBpbnN0YWxsIGJvdGgsIHlvdSBzaG91bGQgY29uZmlndXJlIHRoZW0KLQkgIG9ubHkgYXMgbW9kdWxlcyBhbmQgYmxhY2tsaXN0IHRoZSBkcml2ZXIocykgd2hpY2ggeW91IGRvbid0IHdhbnQgdG8KLQkgIGhhdmUgYXV0by1sb2FkZWQuICBBZGQgZWl0aGVyCisJICBZb3Ugc2hvdWxkIG9ubHkgYnVpbGQgZWl0aGVyIGZpcmV3aXJlLW9oY2kgb3IgdGhlIG9sZCBvaGNpMTM5NCBkcml2ZXIsCisJICBidXQgbm90IGJvdGguICBJZiB5b3UgbmV2ZXJ0aGVsZXNzIHdhbnQgdG8gaW5zdGFsbCBib3RoLCB5b3Ugc2hvdWxkCisJICBjb25maWd1cmUgdGhlbSBvbmx5IGFzIG1vZHVsZXMgYW5kIGJsYWNrbGlzdCB0aGUgZHJpdmVyKHMpIHdoaWNoIHlvdQorCSAgZG9uJ3Qgd2FudCB0byBoYXZlIGF1dG8tbG9hZGVkLiAgQWRkIGVpdGhlcgogCiAJICAgICAgYmxhY2tsaXN0IGZpcmV3aXJlLW9oY2kKIAkgIG9yCkBAIC02MCw3ICs1OCw3IEBACiAJZGVmYXVsdCB5CiAKIGNvbmZpZyBGSVJFV0lSRV9TQlAyCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHN0b3JhZ2UgZGV2aWNlcyAoU0JQLTIgcHJvdG9jb2wgZHJpdmVyKSIKKwl0cmlzdGF0ZSAiU3RvcmFnZSBkZXZpY2VzIChTQlAtMiBwcm90b2NvbCkiCiAJZGVwZW5kcyBvbiBGSVJFV0lSRSAmJiBTQ1NJCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB5b3UgdG8gdXNlIFNCUC0yIGRldmljZXMgY29ubmVjdGVkIHRvIGEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvZnctY2Rldi5jIGIvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKaW5kZXggZGRhMTQwMS4uYzYzOTkxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKKysrIGIvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKQEAgLTIwNSw2ICsyMDUsNyBAQAogCXJldHVybiBkZXF1ZXVlX2V2ZW50KGNsaWVudCwgYnVmZmVyLCBjb3VudCk7CiB9CiAKKy8qIGNhbGxlciBtdXN0IGhvbGQgY2FyZC0+bG9jayBzbyB0aGF0IG5vZGUgcG9pbnRlcnMgY2FuIGJlIGRlcmVmZXJlbmNlZCBoZXJlICovCiBzdGF0aWMgdm9pZAogZmlsbF9idXNfcmVzZXRfZXZlbnQoc3RydWN0IGZ3X2NkZXZfZXZlbnRfYnVzX3Jlc2V0ICpldmVudCwKIAkJICAgICBzdHJ1Y3QgY2xpZW50ICpjbGllbnQpCkBAIC0yMTQsNyArMjE1LDYgQEAKIAlldmVudC0+Y2xvc3VyZQkgICAgID0gY2xpZW50LT5idXNfcmVzZXRfY2xvc3VyZTsKIAlldmVudC0+dHlwZSAgICAgICAgICA9IEZXX0NERVZfRVZFTlRfQlVTX1JFU0VUOwogCWV2ZW50LT5nZW5lcmF0aW9uICAgID0gY2xpZW50LT5kZXZpY2UtPmdlbmVyYXRpb247Ci0Jc21wX3JtYigpOyAgICAgICAgICAgLyogbm9kZV9pZCBtdXN0IG5vdCBiZSBvbGRlciB0aGFuIGdlbmVyYXRpb24gKi8KIAlldmVudC0+bm9kZV9pZCAgICAgICA9IGNsaWVudC0+ZGV2aWNlLT5ub2RlX2lkOwogCWV2ZW50LT5sb2NhbF9ub2RlX2lkID0gY2FyZC0+bG9jYWxfbm9kZS0+bm9kZV9pZDsKIAlldmVudC0+Ym1fbm9kZV9pZCAgICA9IDA7IC8qIEZJWE1FOiBXZSBkb24ndCB0cmFjayB0aGUgQk0uICovCkBAIC0yNzQsNiArMjc0LDcgQEAKIHsKIAlzdHJ1Y3QgZndfY2Rldl9nZXRfaW5mbyAqZ2V0X2luZm8gPSBidWZmZXI7CiAJc3RydWN0IGZ3X2NkZXZfZXZlbnRfYnVzX3Jlc2V0IGJ1c19yZXNldDsKKwlzdHJ1Y3QgZndfY2FyZCAqY2FyZCA9IGNsaWVudC0+ZGV2aWNlLT5jYXJkOwogCXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAogCWNsaWVudC0+dmVyc2lvbiA9IGdldF9pbmZvLT52ZXJzaW9uOwpAQCAtMjk5LDEzICszMDAsMTcgQEAKIAljbGllbnQtPmJ1c19yZXNldF9jbG9zdXJlID0gZ2V0X2luZm8tPmJ1c19yZXNldF9jbG9zdXJlOwogCWlmIChnZXRfaW5mby0+YnVzX3Jlc2V0ICE9IDApIHsKIAkJdm9pZCBfX3VzZXIgKnVwdHIgPSB1NjRfdG9fdXB0cihnZXRfaW5mby0+YnVzX3Jlc2V0KTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorCQlzcGluX2xvY2tfaXJxc2F2ZSgmY2FyZC0+bG9jaywgZmxhZ3MpOwogCQlmaWxsX2J1c19yZXNldF9ldmVudCgmYnVzX3Jlc2V0LCBjbGllbnQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXJkLT5sb2NrLCBmbGFncyk7CisKIAkJaWYgKGNvcHlfdG9fdXNlcih1cHRyLCAmYnVzX3Jlc2V0LCBzaXplb2YoYnVzX3Jlc2V0KSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQlnZXRfaW5mby0+Y2FyZCA9IGNsaWVudC0+ZGV2aWNlLT5jYXJkLT5pbmRleDsKKwlnZXRfaW5mby0+Y2FyZCA9IGNhcmQtPmluZGV4OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2ZpcmV3aXJlL2Z3LW9oY2kuYyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCmluZGV4IDRmMDJjNTUuLjBiNjYzMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCisrKyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCkBAIC0yNjUsMjcgKzI2NSwyNSBAQAogCSAgICAhKGV2dCAmIE9IQ0kxMzk0X2J1c1Jlc2V0KSkKIAkJcmV0dXJuOwogCi0JcHJpbnRrKEtFUk5fREVCVUcgS0JVSUxEX01PRE5BTUUgIjogSVJRICIKLQkgICAgICAgIiUwOHglcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlc1xuIiwKLQkgICAgICAgZXZ0LAotCSAgICAgICBldnQgJiBPSENJMTM5NF9zZWxmSURDb21wbGV0ZQk/ICIgc2VsZklEIgkJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfUlFQa3QJCT8gIiBBUl9yZXEiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9SU1BrdAkJPyAiIEFSX3Jlc3AiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZXFUeENvbXBsZXRlCT8gIiBBVF9yZXEiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZXNwVHhDb21wbGV0ZQk/ICIgQVRfcmVzcCIJCTogIiIsCi0JICAgICAgIGV2dCAmIE9IQ0kxMzk0X2lzb2NoUngJCT8gIiBJUiIJCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9pc29jaFR4CQk/ICIgSVQiCQkJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfcG9zdGVkV3JpdGVFcnIJPyAiIHBvc3RlZFdyaXRlRXJyIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9jeWNsZVRvb0xvbmcJPyAiIGN5Y2xlVG9vTG9uZyIJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfY3ljbGU2NFNlY29uZHMJPyAiIGN5Y2xlNjRTZWNvbmRzIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZWdBY2Nlc3NGYWlsCT8gIiByZWdBY2Nlc3NGYWlsIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9idXNSZXNldAkJPyAiIGJ1c1Jlc2V0IgkJOiAiIiwKLQkgICAgICAgZXZ0ICYgfihPSENJMTM5NF9zZWxmSURDb21wbGV0ZSB8IE9IQ0kxMzk0X1JRUGt0IHwKLQkJICAgICAgIE9IQ0kxMzk0X1JTUGt0IHwgT0hDSTEzOTRfcmVxVHhDb21wbGV0ZSB8Ci0JCSAgICAgICBPSENJMTM5NF9yZXNwVHhDb21wbGV0ZSB8IE9IQ0kxMzk0X2lzb2NoUnggfAotCQkgICAgICAgT0hDSTEzOTRfaXNvY2hUeCB8IE9IQ0kxMzk0X3Bvc3RlZFdyaXRlRXJyIHwKLQkJICAgICAgIE9IQ0kxMzk0X2N5Y2xlVG9vTG9uZyB8IE9IQ0kxMzk0X2N5Y2xlNjRTZWNvbmRzIHwKLQkJICAgICAgIE9IQ0kxMzk0X3JlZ0FjY2Vzc0ZhaWwgfCBPSENJMTM5NF9idXNSZXNldCkKKwlmd19ub3RpZnkoIklSUSAlMDh4JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXNcbiIsIGV2dCwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfc2VsZklEQ29tcGxldGUJPyAiIHNlbGZJRCIJCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X1JRUGt0CQk/ICIgQVJfcmVxIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfUlNQa3QJCT8gIiBBUl9yZXNwIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfcmVxVHhDb21wbGV0ZQk/ICIgQVRfcmVxIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfcmVzcFR4Q29tcGxldGUJPyAiIEFUX3Jlc3AiCQk6ICIiLAorCSAgICBldnQgJiBPSENJMTM5NF9pc29jaFJ4CQk/ICIgSVIiCQkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfaXNvY2hUeAkJPyAiIElUIgkJCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X3Bvc3RlZFdyaXRlRXJyCT8gIiBwb3N0ZWRXcml0ZUVyciIJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfY3ljbGVUb29Mb25nCQk/ICIgY3ljbGVUb29Mb25nIgk6ICIiLAorCSAgICBldnQgJiBPSENJMTM5NF9jeWNsZTY0U2Vjb25kcwk/ICIgY3ljbGU2NFNlY29uZHMiCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X3JlZ0FjY2Vzc0ZhaWwJPyAiIHJlZ0FjY2Vzc0ZhaWwiCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X2J1c1Jlc2V0CQk/ICIgYnVzUmVzZXQiCQk6ICIiLAorCSAgICBldnQgJiB+KE9IQ0kxMzk0X3NlbGZJRENvbXBsZXRlIHwgT0hDSTEzOTRfUlFQa3QgfAorCQkgICAgT0hDSTEzOTRfUlNQa3QgfCBPSENJMTM5NF9yZXFUeENvbXBsZXRlIHwKKwkJICAgIE9IQ0kxMzk0X3Jlc3BUeENvbXBsZXRlIHwgT0hDSTEzOTRfaXNvY2hSeCB8CisJCSAgICBPSENJMTM5NF9pc29jaFR4IHwgT0hDSTEzOTRfcG9zdGVkV3JpdGVFcnIgfAorCQkgICAgT0hDSTEzOTRfY3ljbGVUb29Mb25nIHwgT0hDSTEzOTRfY3ljbGU2NFNlY29uZHMgfAorCQkgICAgT0hDSTEzOTRfcmVnQWNjZXNzRmFpbCB8IE9IQ0kxMzk0X2J1c1Jlc2V0KQogCQkJCQkJPyAiID8iCQkJOiAiIik7CiB9CiAKQEAgLTMwOCwyMyArMzA2LDIyIEBACiAJaWYgKGxpa2VseSghKHBhcmFtX2RlYnVnICYgT0hDSV9QQVJBTV9ERUJVR19TRUxGSURTKSkpCiAJCXJldHVybjsKIAotCXByaW50ayhLRVJOX0RFQlVHIEtCVUlMRF9NT0ROQU1FICI6ICVkIHNlbGZJRHMsIGdlbmVyYXRpb24gJWQsICIKLQkgICAgICAgImxvY2FsIG5vZGUgSUQgJTA0eFxuIiwgc2VsZl9pZF9jb3VudCwgZ2VuZXJhdGlvbiwgbm9kZV9pZCk7CisJZndfbm90aWZ5KCIlZCBzZWxmSURzLCBnZW5lcmF0aW9uICVkLCBsb2NhbCBub2RlIElEICUwNHhcbiIsCisJCSAgc2VsZl9pZF9jb3VudCwgZ2VuZXJhdGlvbiwgbm9kZV9pZCk7CiAKIAlmb3IgKDsgc2VsZl9pZF9jb3VudC0tOyArK3MpCiAJCWlmICgoKnMgJiAxIDw8IDIzKSA9PSAwKQotCQkJcHJpbnRrKEtFUk5fREVCVUcgInNlbGZJRCAwOiAlMDh4LCBwaHkgJWQgWyVjJWMlY10gIgotCQkJICAgICAgICIlcyBnYz0lZCAlcyAlcyVzJXNcbiIsCi0JCQkgICAgICAgKnMsICpzID4+IDI0ICYgNjMsIF9wKHMsIDYpLCBfcChzLCA0KSwgX3AocywgMiksCi0JCQkgICAgICAgc3BlZWRbKnMgPj4gMTQgJiAzXSwgKnMgPj4gMTYgJiA2MywKLQkJCSAgICAgICBwb3dlclsqcyA+PiA4ICYgN10sICpzID4+IDIyICYgMSA/ICJMIiA6ICIiLAotCQkJICAgICAgICpzID4+IDExICYgMSA/ICJjIiA6ICIiLCAqcyAmIDIgPyAiaSIgOiAiIik7CisJCQlmd19ub3RpZnkoInNlbGZJRCAwOiAlMDh4LCBwaHkgJWQgWyVjJWMlY10gIgorCQkJICAgICIlcyBnYz0lZCAlcyAlcyVzJXNcbiIsCisJCQkgICAgKnMsICpzID4+IDI0ICYgNjMsIF9wKHMsIDYpLCBfcChzLCA0KSwgX3AocywgMiksCisJCQkgICAgc3BlZWRbKnMgPj4gMTQgJiAzXSwgKnMgPj4gMTYgJiA2MywKKwkJCSAgICBwb3dlclsqcyA+PiA4ICYgN10sICpzID4+IDIyICYgMSA/ICJMIiA6ICIiLAorCQkJICAgICpzID4+IDExICYgMSA/ICJjIiA6ICIiLCAqcyAmIDIgPyAiaSIgOiAiIik7CiAJCWVsc2UKLQkJCXByaW50ayhLRVJOX0RFQlVHICJzZWxmSUQgbjogJTA4eCwgcGh5ICVkICIKLQkJCSAgICAgICAiWyVjJWMlYyVjJWMlYyVjJWNdXG4iLAotCQkJICAgICAgICpzLCAqcyA+PiAyNCAmIDYzLAotCQkJICAgICAgIF9wKHMsIDE2KSwgX3AocywgMTQpLCBfcChzLCAxMiksIF9wKHMsIDEwKSwKLQkJCSAgICAgICBfcChzLCAgOCksIF9wKHMsICA2KSwgX3AocywgIDQpLCBfcChzLCAgMikpOworCQkJZndfbm90aWZ5KCJzZWxmSUQgbjogJTA4eCwgcGh5ICVkIFslYyVjJWMlYyVjJWMlYyVjXVxuIiwKKwkJCSAgICAqcywgKnMgPj4gMjQgJiA2MywKKwkJCSAgICBfcChzLCAxNiksIF9wKHMsIDE0KSwgX3AocywgMTIpLCBfcChzLCAxMCksCisJCQkgICAgX3AocywgIDgpLCBfcChzLCAgNiksIF9wKHMsICA0KSwgX3AocywgIDIpKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmV2dHNbXSA9IHsKQEAgLTM3MywxNSArMzcwLDE0IEBACiAJCQlldnQgPSAweDFmOwogCiAJaWYgKGV2dCA9PSBPSENJMTM5NF9ldnRfYnVzX3Jlc2V0KSB7Ci0JCXByaW50ayhLRVJOX0RFQlVHICJBJWMgZXZ0X2J1c19yZXNldCwgZ2VuZXJhdGlvbiAlZFxuIiwKLQkJICAgICAgIGRpciwgKGhlYWRlclsyXSA+PiAxNikgJiAweGZmKTsKKwkJZndfbm90aWZ5KCJBJWMgZXZ0X2J1c19yZXNldCwgZ2VuZXJhdGlvbiAlZFxuIiwKKwkJICAgIGRpciwgKGhlYWRlclsyXSA+PiAxNikgJiAweGZmKTsKIAkJcmV0dXJuOwogCX0KIAogCWlmIChoZWFkZXJbMF0gPT0gfmhlYWRlclsxXSkgewotCQlwcmludGsoS0VSTl9ERUJVRyAiQSVjICVzLCAlcywgJTA4eFxuIiwKLQkJICAgICAgIGRpciwgZXZ0c1tldnRdLCBwaHlzW2hlYWRlclswXSA+PiAzMCAmIDB4M10sCi0JCSAgICAgICBoZWFkZXJbMF0pOworCQlmd19ub3RpZnkoIkElYyAlcywgJXMsICUwOHhcbiIsCisJCSAgICBkaXIsIGV2dHNbZXZ0XSwgcGh5c1toZWFkZXJbMF0gPj4gMzAgJiAweDNdLCBoZWFkZXJbMF0pOwogCQlyZXR1cm47CiAJfQogCkBAIC00MDAsMjQgKzM5NiwyMyBAQAogCiAJc3dpdGNoICh0Y29kZSkgewogCWNhc2UgMHhlOiBjYXNlIDB4YToKLQkJcHJpbnRrKEtFUk5fREVCVUcgIkElYyAlcywgJXNcbiIsCi0JCSAgICAgICBkaXIsIGV2dHNbZXZ0XSwgdGNvZGVzW3Rjb2RlXSk7CisJCWZ3X25vdGlmeSgiQSVjICVzLCAlc1xuIiwgZGlyLCBldnRzW2V2dF0sIHRjb2Rlc1t0Y29kZV0pOwogCQlicmVhazsKIAljYXNlIDB4MDogY2FzZSAweDE6IGNhc2UgMHg0OiBjYXNlIDB4NTogY2FzZSAweDk6Ci0JCXByaW50ayhLRVJOX0RFQlVHICJBJWMgc3BkICV4IHRsICUwMngsICIKLQkJICAgICAgICIlMDR4IC0+ICUwNHgsICVzLCAiCi0JCSAgICAgICAiJXMsICUwNHglMDh4JXNcbiIsCi0JCSAgICAgICBkaXIsIHNwZWVkLCBoZWFkZXJbMF0gPj4gMTAgJiAweDNmLAotCQkgICAgICAgaGVhZGVyWzFdID4+IDE2LCBoZWFkZXJbMF0gPj4gMTYsIGV2dHNbZXZ0XSwKLQkJICAgICAgIHRjb2Rlc1t0Y29kZV0sIGhlYWRlclsxXSAmIDB4ZmZmZiwgaGVhZGVyWzJdLCBzcGVjaWZpYyk7CisJCWZ3X25vdGlmeSgiQSVjIHNwZCAleCB0bCAlMDJ4LCAiCisJCSAgICAiJTA0eCAtPiAlMDR4LCAlcywgIgorCQkgICAgIiVzLCAlMDR4JTA4eCVzXG4iLAorCQkgICAgZGlyLCBzcGVlZCwgaGVhZGVyWzBdID4+IDEwICYgMHgzZiwKKwkJICAgIGhlYWRlclsxXSA+PiAxNiwgaGVhZGVyWzBdID4+IDE2LCBldnRzW2V2dF0sCisJCSAgICB0Y29kZXNbdGNvZGVdLCBoZWFkZXJbMV0gJiAweGZmZmYsIGhlYWRlclsyXSwgc3BlY2lmaWMpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9ERUJVRyAiQSVjIHNwZCAleCB0bCAlMDJ4LCAiCi0JCSAgICAgICAiJTA0eCAtPiAlMDR4LCAlcywgIgotCQkgICAgICAgIiVzJXNcbiIsCi0JCSAgICAgICBkaXIsIHNwZWVkLCBoZWFkZXJbMF0gPj4gMTAgJiAweDNmLAotCQkgICAgICAgaGVhZGVyWzFdID4+IDE2LCBoZWFkZXJbMF0gPj4gMTYsIGV2dHNbZXZ0XSwKLQkJICAgICAgIHRjb2Rlc1t0Y29kZV0sIHNwZWNpZmljKTsKKwkJZndfbm90aWZ5KCJBJWMgc3BkICV4IHRsICUwMngsICIKKwkJICAgICIlMDR4IC0+ICUwNHgsICVzLCAiCisJCSAgICAiJXMlc1xuIiwKKwkJICAgIGRpciwgc3BlZWQsIGhlYWRlclswXSA+PiAxMCAmIDB4M2YsCisJCSAgICBoZWFkZXJbMV0gPj4gMTYsIGhlYWRlclswXSA+PiAxNiwgZXZ0c1tldnRdLAorCQkgICAgdGNvZGVzW3Rjb2RlXSwgc3BlY2lmaWMpOwogCX0KIH0KIApAQCAtNTQ4LDYgKzU0MywxMSBAQAogCQlwLmhlYWRlcl9sZW5ndGggPSAxMjsKIAkJcC5wYXlsb2FkX2xlbmd0aCA9IDA7CiAJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJLyogRklYTUU6IFN0b3AgY29udGV4dCwgZGlzY2FyZCBldmVyeXRoaW5nLCBhbmQgcmVzdGFydD8gKi8KKwkJcC5oZWFkZXJfbGVuZ3RoID0gMDsKKwkJcC5wYXlsb2FkX2xlbmd0aCA9IDA7CiAJfQogCiAJcC5wYXlsb2FkID0gKHZvaWQgKikgYnVmZmVyICsgcC5oZWFkZXJfbGVuZ3RoOwpAQCAtMTQ2OCw2ICsxNDY4LDkgQEAKIAlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfSENDb250cm9sQ2xlYXIsCiAJCSAgT0hDSTEzOTRfSENDb250cm9sX25vQnl0ZVN3YXBEYXRhKTsKIAorCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9TZWxmSURCdWZmZXIsIG9oY2ktPnNlbGZfaWRfYnVzKTsKKwlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfTGlua0NvbnRyb2xDbGVhciwKKwkJICBPSENJMTM5NF9MaW5rQ29udHJvbF9yY3ZQaHlQa3QpOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9MaW5rQ29udHJvbFNldCwKIAkJICBPSENJMTM5NF9MaW5rQ29udHJvbF9yY3ZTZWxmSUQgfAogCQkgIE9IQ0kxMzk0X0xpbmtDb250cm9sX2N5Y2xlVGltZXJFbmFibGUgfApAQCAtMTQ4MSw3ICsxNDg0LDYgQEAKIAlhcl9jb250ZXh0X3J1bigmb2hjaS0+YXJfcmVxdWVzdF9jdHgpOwogCWFyX2NvbnRleHRfcnVuKCZvaGNpLT5hcl9yZXNwb25zZV9jdHgpOwogCi0JcmVnX3dyaXRlKG9oY2ksIE9IQ0kxMzk0X1NlbGZJREJ1ZmZlciwgb2hjaS0+c2VsZl9pZF9idXMpOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9QaHlVcHBlckJvdW5kLCAweDAwMDEwMDAwKTsKIAlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfSW50RXZlbnRDbGVhciwgfjApOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9JbnRNYXNrQ2xlYXIsIH4wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvZnctc2JwMi5jIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKaW5kZXggYjI0NThiYi4uMjI3ZDJlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKKysrIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKQEAgLTEwNTEsNyArMTA1MSw4IEBACiAJCQlicmVhazsKIAogCQljYXNlIFNCUDJfQ1NSX0xPR0lDQUxfVU5JVF9ESVJFQ1RPUlk6Ci0JCQlpZiAoc2JwMl9zY2FuX2xvZ2ljYWxfdW5pdF9kaXIodGd0LCBjaS5wICsgdmFsdWUpIDwgMCkKKwkJCS8qIEFkanVzdCBmb3IgdGhlIGluY3JlbWVudCBpbiB0aGUgaXRlcmF0b3IgKi8KKwkJCWlmIChzYnAyX3NjYW5fbG9naWNhbF91bml0X2Rpcih0Z3QsIGNpLnAgLSAxICsgdmFsdWUpIDwgMCkKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2ZpcmV3aXJlL2Z3LXRyYW5zYWN0aW9uLmMgYi9kcml2ZXJzL2ZpcmV3aXJlL2Z3LXRyYW5zYWN0aW9uLmMKaW5kZXggY2NmMGU0Yy4uMDNhZThhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy10cmFuc2FjdGlvbi5jCisrKyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctdHJhbnNhY3Rpb24uYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0yOTcsMzcgKzI5OCw1NSBAQAogc3RydWN0IGZ3X3BoeV9wYWNrZXQgewogCXN0cnVjdCBmd19wYWNrZXQgcGFja2V0OwogCXN0cnVjdCBjb21wbGV0aW9uIGRvbmU7CisJc3RydWN0IGtyZWYga3JlZjsKIH07CiAKLXN0YXRpYyB2b2lkCi10cmFuc21pdF9waHlfcGFja2V0X2NhbGxiYWNrKHN0cnVjdCBmd19wYWNrZXQgKnBhY2tldCwKLQkJCSAgICAgc3RydWN0IGZ3X2NhcmQgKmNhcmQsIGludCBzdGF0dXMpCitzdGF0aWMgdm9pZCBwaHlfcGFja2V0X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCit7CisJc3RydWN0IGZ3X3BoeV9wYWNrZXQgKnAgPQorCQkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBmd19waHlfcGFja2V0LCBrcmVmKTsKKwlrZnJlZShwKTsKK30KKworc3RhdGljIHZvaWQgdHJhbnNtaXRfcGh5X3BhY2tldF9jYWxsYmFjayhzdHJ1Y3QgZndfcGFja2V0ICpwYWNrZXQsCisJCQkJCSBzdHJ1Y3QgZndfY2FyZCAqY2FyZCwgaW50IHN0YXR1cykKIHsKIAlzdHJ1Y3QgZndfcGh5X3BhY2tldCAqcCA9CiAJCQljb250YWluZXJfb2YocGFja2V0LCBzdHJ1Y3QgZndfcGh5X3BhY2tldCwgcGFja2V0KTsKIAogCWNvbXBsZXRlKCZwLT5kb25lKTsKKwlrcmVmX3B1dCgmcC0+a3JlZiwgcGh5X3BhY2tldF9yZWxlYXNlKTsKIH0KIAogdm9pZCBmd19zZW5kX3BoeV9jb25maWcoc3RydWN0IGZ3X2NhcmQgKmNhcmQsCiAJCQlpbnQgbm9kZV9pZCwgaW50IGdlbmVyYXRpb24sIGludCBnYXBfY291bnQpCiB7Ci0Jc3RydWN0IGZ3X3BoeV9wYWNrZXQgcDsKKwlzdHJ1Y3QgZndfcGh5X3BhY2tldCAqcDsKKwlsb25nIHRpbWVvdXQgPSBESVZfUk9VTkRfVVAoSFosIDEwKTsKIAl1MzIgZGF0YSA9IFBIWV9JREVOVElGSUVSKFBIWV9QQUNLRVRfQ09ORklHKSB8CiAJCSAgIFBIWV9DT05GSUdfUk9PVF9JRChub2RlX2lkKSB8CiAJCSAgIFBIWV9DT05GSUdfR0FQX0NPVU5UKGdhcF9jb3VudCk7CiAKLQlwLnBhY2tldC5oZWFkZXJbMF0gPSBkYXRhOwotCXAucGFja2V0LmhlYWRlclsxXSA9IH5kYXRhOwotCXAucGFja2V0LmhlYWRlcl9sZW5ndGggPSA4OwotCXAucGFja2V0LnBheWxvYWRfbGVuZ3RoID0gMDsKLQlwLnBhY2tldC5zcGVlZCA9IFNDT0RFXzEwMDsKLQlwLnBhY2tldC5nZW5lcmF0aW9uID0gZ2VuZXJhdGlvbjsKLQlwLnBhY2tldC5jYWxsYmFjayA9IHRyYW5zbWl0X3BoeV9wYWNrZXRfY2FsbGJhY2s7Ci0JaW5pdF9jb21wbGV0aW9uKCZwLmRvbmUpOworCXAgPSBrbWFsbG9jKHNpemVvZigqcCksIEdGUF9LRVJORUwpOworCWlmIChwID09IE5VTEwpCisJCXJldHVybjsKIAotCWNhcmQtPmRyaXZlci0+c2VuZF9yZXF1ZXN0KGNhcmQsICZwLnBhY2tldCk7Ci0Jd2FpdF9mb3JfY29tcGxldGlvbigmcC5kb25lKTsKKwlwLT5wYWNrZXQuaGVhZGVyWzBdID0gZGF0YTsKKwlwLT5wYWNrZXQuaGVhZGVyWzFdID0gfmRhdGE7CisJcC0+cGFja2V0LmhlYWRlcl9sZW5ndGggPSA4OworCXAtPnBhY2tldC5wYXlsb2FkX2xlbmd0aCA9IDA7CisJcC0+cGFja2V0LnNwZWVkID0gU0NPREVfMTAwOworCXAtPnBhY2tldC5nZW5lcmF0aW9uID0gZ2VuZXJhdGlvbjsKKwlwLT5wYWNrZXQuY2FsbGJhY2sgPSB0cmFuc21pdF9waHlfcGFja2V0X2NhbGxiYWNrOworCWluaXRfY29tcGxldGlvbigmcC0+ZG9uZSk7CisJa3JlZl9zZXQoJnAtPmtyZWYsIDIpOworCisJY2FyZC0+ZHJpdmVyLT5zZW5kX3JlcXVlc3QoY2FyZCwgJnAtPnBhY2tldCk7CisJdGltZW91dCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmcC0+ZG9uZSwgdGltZW91dCk7CisJa3JlZl9wdXQoJnAtPmtyZWYsIHBoeV9wYWNrZXRfcmVsZWFzZSk7CisKKwkvKiB3aWxsIGxlYWsgcCBpZiB0aGUgY2FsbGJhY2sgaXMgbmV2ZXIgZXhlY3V0ZWQgKi8KKwlXQVJOX09OKHRpbWVvdXQgPT0gMCk7CiB9CiAKIHZvaWQgZndfZmx1c2hfdHJhbnNhY3Rpb25zKHN0cnVjdCBmd19jYXJkICpjYXJkKQpAQCAtNTcyLDcgKzU5MSw4IEBACiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJQlVHKCk7CisJCWZ3X2Vycm9yKCJFUlJPUiAtIGNvcnJ1cHQgcmVxdWVzdCByZWNlaXZlZCAtICUwOHggJTA4eCAlMDh4XG4iLAorCQkJIHAtPmhlYWRlclswXSwgcC0+aGVhZGVyWzFdLCBwLT5oZWFkZXJbMl0pOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZyBiL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZwppbmRleCBkYzJjZWM2Li5lYmI5ZTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL0tjb25maWcKKysrIGIvZHJpdmVycy9maXJtd2FyZS9LY29uZmlnCkBAIC0yNiw2ICsyNiwxNiBAQAogCSAga2VybmVsLiBTYXkgTiBpZiB5b3Ugd2FudCBFREQgZW5hYmxlZCBieSBkZWZhdWx0LiBFREQgY2FuIGJlIGR5bmFtaWNhbGx5IHNldAogCSAgdXNpbmcgdGhlIGtlcm5lbCBwYXJhbWV0ZXIgJ2VkZD17b258c2tpcG1icnxvZmZ9Jy4KIAorY29uZmlnIEZJUk1XQVJFX01FTU1BUAorICAgIGJvb2wgIkFkZCBmaXJtd2FyZS1wcm92aWRlZCBtZW1vcnkgbWFwIHRvIHN5c2ZzIiBpZiBFTUJFRERFRAorICAgIGRlZmF1bHQgKFg4Nl82NCB8fCBYODZfMzIpCisgICAgaGVscAorICAgICAgQWRkIHRoZSBmaXJtd2FyZS1wcm92aWRlZCAodW5tb2RpZmllZCkgbWVtb3J5IG1hcCB0byAvc3lzL2Zpcm13YXJlL21lbW1hcC4KKyAgICAgIFRoYXQgbWVtb3J5IG1hcCBpcyB1c2VkIGZvciBleGFtcGxlIGJ5IGtleGVjIHRvIHNldCB1cCBwYXJhbWV0ZXIgYXJlYQorICAgICAgZm9yIHRoZSBuZXh0IGtlcm5lbCwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KKworICAgICAgU2VlIGFsc28gRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1maXJtd2FyZS1tZW1tYXAuCisKIGNvbmZpZyBFRklfVkFSUwogCXRyaXN0YXRlICJFRkkgVmFyaWFibGUgU3VwcG9ydCB2aWEgc3lzZnMiCiAJZGVwZW5kcyBvbiBFRkkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Zpcm13YXJlL01ha2VmaWxlCmluZGV4IDRjOTE0NzEuLjFjM2MxNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9maXJtd2FyZS9NYWtlZmlsZQpAQCAtMTAsMyArMTAsNCBAQAogb2JqLSQoQ09ORklHX0RNSUlEKQkJKz0gZG1pLWlkLm8KIG9iai0kKENPTkZJR19JU0NTSV9JQkZUX0ZJTkQpCSs9IGlzY3NpX2liZnRfZmluZC5vCiBvYmotJChDT05GSUdfSVNDU0lfSUJGVCkJKz0gaXNjc2lfaWJmdC5vCitvYmotJChDT05GSUdfRklSTVdBUkVfTUVNTUFQKQkrPSBtZW1tYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9kZWxsX3JidS5jIGIvZHJpdmVycy9maXJtd2FyZS9kZWxsX3JidS5jCmluZGV4IDZhOGIxZTAuLjc0MzBlMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvZGVsbF9yYnUuYworKysgYi9kcml2ZXJzL2Zpcm13YXJlL2RlbGxfcmJ1LmMKQEAgLTIyMCw3ICsyMjAsNyBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyBpbnQgcGFja2V0aXplX2RhdGEodm9pZCAqZGF0YSwgc2l6ZV90IGxlbmd0aCkKK3N0YXRpYyBpbnQgcGFja2V0aXplX2RhdGEoY29uc3QgdTggKmRhdGEsIHNpemVfdCBsZW5ndGgpCiB7CiAJaW50IHJjID0gMDsKIAlpbnQgZG9uZSA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMgYi9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMKaW5kZXggYzVlM2VkNy4uNDU1NTc1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5jCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYwpAQCAtOCw2ICs4LDExIEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGFzbS9kbWkuaD4KIAorLyoKKyAqIERNSSBzdGFuZHMgZm9yICJEZXNrdG9wIE1hbmFnZW1lbnQgSW50ZXJmYWNlIi4gIEl0IGlzIHBhcnQKKyAqIG9mIGFuZCBhbiBhbnRlY2VkZW50IHRvLCBTTUJJT1MsIHdoaWNoIHN0YW5kcyBmb3IgU3lzdGVtCisgKiBNYW5hZ2VtZW50IEJJT1MuICBTZWUgZnVydGhlcjogaHR0cDovL3d3dy5kbXRmLm9yZy9zdGFuZGFyZHMKKyAqLwogc3RhdGljIGNoYXIgZG1pX2VtcHR5X3N0cmluZ1tdID0gIiAgICAgICAgIjsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBfX2luaXQgZG1pX3N0cmluZ19ub3NhdmUoY29uc3Qgc3RydWN0IGRtaV9oZWFkZXIgKmRtLCB1OCBzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9tZW1tYXAuYyBiL2RyaXZlcnMvZmlybXdhcmUvbWVtbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIzMzk5YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvbWVtbWFwLmMKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiBsaW51eC9kcml2ZXJzL2Zpcm13YXJlL21lbW1hcC5jCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNVU0UgTElOVVggUHJvZHVjdHMgR21iSAorICogIGJ5IEJlcm5oYXJkIFdhbGxlIDxid2FsbGVAc3VzZS5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2Mi4wIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS1tYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKworLyoKKyAqIERhdGEgdHlwZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworLyoKKyAqIEZpcm13YXJlIG1hcCBlbnRyeS4gQmVjYXVzZSBmaXJtd2FyZSBtZW1vcnkgbWFwcyBhcmUgZmxhdCBhbmQgbm90CisgKiBoaWVyYXJjaGljYWwsIGl0J3Mgb2sgdG8gb3JnYW5pc2UgdGhlbSBpbiBhIGxpbmtlZCBsaXN0LiBObyBwYXJlbnQKKyAqIGluZm9ybWF0aW9uIGlzIG5lY2Vzc2FyeSBhcyBmb3IgdGhlIHJlc291cmNlIHRyZWUuCisgKi8KK3N0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgeworCXJlc291cmNlX3NpemVfdAkJc3RhcnQ7CS8qIHN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UgKi8KKwlyZXNvdXJjZV9zaXplX3QJCWVuZDsJLyogZW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKGluY2wuKSAqLworCWNvbnN0IGNoYXIJCSp0eXBlOwkvKiB0eXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CS8qIGVudHJ5IGZvciB0aGUgbGlua2VkIGxpc3QgKi8KKwlzdHJ1Y3Qga29iamVjdAkJa29iajsgICAvKiBrb2JqZWN0IGZvciBlYWNoIGVudHJ5ICovCit9OworCisvKgorICogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHNzaXplX3QgbWVtbWFwX2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpOworc3RhdGljIHNzaXplX3Qgc3RhcnRfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKK3N0YXRpYyBzc2l6ZV90IGVuZF9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpOworc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpOworCisvKgorICogU3RhdGljIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSB7CisJc3RydWN0IGF0dHJpYnV0ZSBhdHRyOworCXNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKK307CisKK3N0cnVjdCBtZW1tYXBfYXR0cmlidXRlIG1lbW1hcF9zdGFydF9hdHRyID0gX19BVFRSX1JPKHN0YXJ0KTsKK3N0cnVjdCBtZW1tYXBfYXR0cmlidXRlIG1lbW1hcF9lbmRfYXR0ciAgID0gX19BVFRSX1JPKGVuZCk7CitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSBtZW1tYXBfdHlwZV9hdHRyICA9IF9fQVRUUl9STyh0eXBlKTsKKworLyoKKyAqIFRoZXNlIGFyZSBkZWZhdWx0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWRkZWQgZm9yIGV2ZXJ5IG1lbW1hcCBlbnRyeS4KKyAqLworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRlZl9hdHRyc1tdID0geworCSZtZW1tYXBfc3RhcnRfYXR0ci5hdHRyLAorCSZtZW1tYXBfZW5kX2F0dHIuYXR0ciwKKwkmbWVtbWFwX3R5cGVfYXR0ci5hdHRyLAorCU5VTEwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZnNfb3BzIG1lbW1hcF9hdHRyX29wcyA9IHsKKwkuc2hvdyA9IG1lbW1hcF9hdHRyX3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBtZW1tYXBfa3R5cGUgPSB7CisJLnN5c2ZzX29wcwk9ICZtZW1tYXBfYXR0cl9vcHMsCisJLmRlZmF1bHRfYXR0cnMJPSBkZWZfYXR0cnMsCit9OworCisvKgorICogUmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisvKgorICogRmlybXdhcmUgbWVtb3J5IG1hcCBlbnRyaWVzCisgKi8KK3N0YXRpYyBMSVNUX0hFQUQobWFwX2VudHJpZXMpOworCisvKioKKyAqIENvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiBmaXJtd2FyZV9tYXBfYWRkKCkgYW5kIGZpcm13YXJlX21hcF9hZGRfZWFybHkoKQorICogd2hpY2ggZXhwZWN0cyBhIHByZS1hbGxvY2F0ZWQgc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeS4KKyAqCisgKiBAc3RhcnQ6IFN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW5kOiAgIEVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsdXNpdmUpLgorICogQHR5cGU6ICBUeXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW50cnk6IFByZS1hbGxvY2F0ZWQgKGVpdGhlciBrbWFsbG9jKCkgb3IgYm9vdG1lbSBhbGxvY2F0b3IpLCB1bmluaXRpYWxpc2VkCisgKiAgICAgICAgIGVudHJ5LgorICovCitzdGF0aWMgaW50IGZpcm13YXJlX21hcF9hZGRfZW50cnkocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkJCSAgY29uc3QgY2hhciAqdHlwZSwKKwkJCQkgIHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5KQoreworCUJVR19PTihzdGFydCA+IGVuZCk7CisKKwllbnRyeS0+c3RhcnQgPSBzdGFydDsKKwllbnRyeS0+ZW5kID0gZW5kOworCWVudHJ5LT50eXBlID0gdHlwZTsKKwlJTklUX0xJU1RfSEVBRCgmZW50cnktPmxpc3QpOworCWtvYmplY3RfaW5pdCgmZW50cnktPmtvYmosICZtZW1tYXBfa3R5cGUpOworCisJbGlzdF9hZGRfdGFpbCgmZW50cnktPmxpc3QsICZtYXBfZW50cmllcyk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlZSA8bGludXgvZmlybXdhcmUtbWFwLmg+IGZvciBkb2N1bWVudGF0aW9uLgorICovCitpbnQgZmlybXdhcmVfbWFwX2FkZChyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCisJCSAgICAgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSksIEdGUF9BVE9NSUMpOworCVdBUk5fT04oIWVudHJ5KTsKKwlpZiAoIWVudHJ5KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldHVybiBmaXJtd2FyZV9tYXBfYWRkX2VudHJ5KHN0YXJ0LCBlbmQsIHR5cGUsIGVudHJ5KTsKK30KKworLyoKKyAqIFNlZSA8bGludXgvZmlybXdhcmUtbWFwLmg+IGZvciBkb2N1bWVudGF0aW9uLgorICovCitpbnQgX19pbml0IGZpcm13YXJlX21hcF9hZGRfZWFybHkocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkJCSAgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkpKTsKKwlXQVJOX09OKCFlbnRyeSk7CisJaWYgKCFlbnRyeSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gZmlybXdhcmVfbWFwX2FkZF9lbnRyeShzdGFydCwgZW5kLCB0eXBlLCBlbnRyeSk7Cit9CisKKy8qCisgKiBTeXNmcyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3N0YXRpYyBzc2l6ZV90IHN0YXJ0X3Nob3coc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnksIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIweCVsbHhcbiIsIGVudHJ5LT5zdGFydCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGVuZF9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiMHglbGx4XG4iLCBlbnRyeS0+ZW5kKTsKK30KKworc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXNcbiIsIGVudHJ5LT50eXBlKTsKK30KKworI2RlZmluZSB0b19tZW1tYXBfYXR0cihfYXR0cikgY29udGFpbmVyX29mKF9hdHRyLCBzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSwgYXR0cikKKyNkZWZpbmUgdG9fbWVtbWFwX2VudHJ5KG9iaikgY29udGFpbmVyX29mKG9iaiwgc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSwga29iaikKKworc3RhdGljIHNzaXplX3QgbWVtbWFwX2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnkgPSB0b19tZW1tYXBfZW50cnkoa29iaik7CisJc3RydWN0IG1lbW1hcF9hdHRyaWJ1dGUgKm1lbW1hcF9hdHRyID0gdG9fbWVtbWFwX2F0dHIoYXR0cik7CisKKwlyZXR1cm4gbWVtbWFwX2F0dHItPnNob3coZW50cnksIGJ1Zik7Cit9CisKKy8qCisgKiBJbml0aWFsaXNlcyBzdHVmZiBhbmQgYWRkcyB0aGUgZW50cmllcyBpbiB0aGUgbWFwX2VudHJpZXMgbGlzdCB0bworICogc3lzZnMuIEltcG9ydGFudCBpcyB0aGF0IGZpcm13YXJlX21hcF9hZGQoKSBhbmQgZmlybXdhcmVfbWFwX2FkZF9lYXJseSgpCisgKiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbGF0ZV9pbml0Y2FsbC4KKyAqLworc3RhdGljIGludCBfX2luaXQgbWVtbWFwX2luaXQodm9pZCkKK3sKKwlpbnQgaSA9IDA7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnk7CisJc3RydWN0IGtzZXQgKm1lbW1hcF9rc2V0OworCisJbWVtbWFwX2tzZXQgPSBrc2V0X2NyZWF0ZV9hbmRfYWRkKCJtZW1tYXAiLCBOVUxMLCBmaXJtd2FyZV9rb2JqKTsKKwlXQVJOX09OKCFtZW1tYXBfa3NldCk7CisJaWYgKCFtZW1tYXBfa3NldCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbWFwX2VudHJpZXMsIGxpc3QpIHsKKwkJZW50cnktPmtvYmoua3NldCA9IG1lbW1hcF9rc2V0OworCQlrb2JqZWN0X2FkZCgmZW50cnktPmtvYmosIE5VTEwsICIlZCIsIGkrKyk7CisJfQorCisJcmV0dXJuIDA7Cit9CitsYXRlX2luaXRjYWxsKG1lbW1hcF9pbml0KTsKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL0tjb25maWcgYi9kcml2ZXJzL2dwaW8vS2NvbmZpZwppbmRleCBiYmQyODM0Li4wMDhjMzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwaW8vS2NvbmZpZwpAQCAtMjgsMTIgKzI4LDE4IEBACiBjb21tZW50ICJJMkMgR1BJTyBleHBhbmRlcnM6IgogCiBjb25maWcgR1BJT19QQ0E5NTNYCi0JdHJpc3RhdGUgIlBDQTk1M3ggSS9PIHBvcnRzIgorCXRyaXN0YXRlICJQQ0E5NTN4LCBQQ0E5NTV4LCBhbmQgTUFYNzMxMCBJL08gcG9ydHMiCiAJZGVwZW5kcyBvbiBJMkMKIAloZWxwCi0JICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgUENBOTUzNCAoOC1iaXQpLCBQQ0E5NTM1ICgxNi1iaXQpLAotCSAgUENBOTUzNiAoNC1iaXQpLCBQQ0E5NTM3ICg0LWJpdCksIFBDQTk1MzggKDgtYml0KSwgYW5kIFBDQTk1MzkKLQkgICgxNi1iaXQpIEkvTyBwb3J0cy4gVGhlc2UgcGFydHMgYXJlIG1hZGUgYnkgTlhQIGFuZCBUSS4KKwkgIFNheSB5ZXMgaGVyZSB0byBwcm92aWRlIGFjY2VzcyB0byBzZXZlcmFsIHJlZ2lzdGVyLW9yaWVudGVkCisJICBTTUJ1cyBJL08gZXhwYW5kZXJzLCBtYWRlIG1vc3RseSBieSBOWFAgb3IgVEkuICBDb21wYXRpYmxlCisJICBtb2RlbHMgaW5jbHVkZToKKworCSAgNCBiaXRzOglwY2E5NTM2LCBwY2E5NTM3CisKKwkgIDggYml0czoJbWF4NzMxMCwgcGNhOTUzNCwgcGNhOTUzOCwgcGNhOTU1NCwgcGNhOTU1NworCisJICAxNiBiaXRzOglwY2E5NTM1LCBwY2E5NTM5LCBwY2E5NTU1CiAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHBjYTk1M3guCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vcGNhOTUzeC5jIGIvZHJpdmVycy9ncGlvL3BjYTk1M3guYwppbmRleCA3ZTQwZThhLi5hMzgwNzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vcGNhOTUzeC5jCisrKyBiL2RyaXZlcnMvZ3Bpby9wY2E5NTN4LmMKQEAgLTMzLDcgKzMzLDcgQEAKIAl7ICJwY2E5NTU0IiwgOCwgfSwKIAl7ICJwY2E5NTU1IiwgMTYsIH0sCiAJeyAicGNhOTU1NyIsIDgsIH0sCi0JLyogUkVWSVNJVCBzZXZlcmFsIHBjYTk1NXggcGFydHMgc2hvdWxkIHdvcmsgaGVyZSB0b28gKi8KKwl7ICJtYXg3MzEwIiwgOCwgfSwKIAl7IH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgcGNhOTUzeF9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNTY2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9NYWtlZmlsZQpAQCAtMCwwICsxIEBACitvYmoteQkJCSs9IGRybS8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL0tjb25maWcKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlmOWE5NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAtMCwwICsxLDI2IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCisKK2RybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRybV9kbWEubyBkcm1fZHJhd2FibGUubyBcCisJCWRybV9kcnYubyBkcm1fZm9wcy5vIGRybV9pb2N0bC5vIGRybV9pcnEubyBcCisJCWRybV9sb2NrLm8gZHJtX21lbW9yeS5vIGRybV9wcm9jLm8gZHJtX3N0dWIubyBkcm1fdm0ubyBcCisJCWRybV9hZ3BzdXBwb3J0Lm8gZHJtX3NjYXR0ZXIubyBhdGlfcGNpZ2FydC5vIGRybV9wY2kubyBcCisJCWRybV9zeXNmcy5vIGRybV9oYXNodGFiLm8gZHJtX3NtYW4ubyBkcm1fbW0ubworCitkcm0tJChDT05GSUdfQ09NUEFUKSArPSBkcm1faW9jMzIubworCitvYmotJChDT05GSUdfRFJNKQkrPSBkcm0ubworb2JqLSQoQ09ORklHX0RSTV9UREZYKQkrPSB0ZGZ4Lworb2JqLSQoQ09ORklHX0RSTV9SMTI4KQkrPSByMTI4Lworb2JqLSQoQ09ORklHX0RSTV9SQURFT04pKz0gcmFkZW9uLworb2JqLSQoQ09ORklHX0RSTV9NR0EpCSs9IG1nYS8KK29iai0kKENPTkZJR19EUk1fSTgxMCkJKz0gaTgxMC8KK29iai0kKENPTkZJR19EUk1fSTgzMCkJKz0gaTgzMC8KK29iai0kKENPTkZJR19EUk1fSTkxNSkgICs9IGk5MTUvCitvYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMvCitvYmotJChDT05GSUdfRFJNX1NBVkFHRSkrPSBzYXZhZ2UvCitvYmotJChDT05GSUdfRFJNX1ZJQSkJKz12aWEvCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vUkVBRE1FLmRybSBiL2RyaXZlcnMvZ3B1L2RybS9SRUFETUUuZHJtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL1JFQURNRS5kcm0KcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9SRUFETUUuZHJtCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRpX3BjaWdhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MzNkMGMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRpX3BjaWdhcnQuYwpAQCAtMCwwICsxLDE4MSBAQAorLyoqCisgKiBcZmlsZSBhdGlfcGNpZ2FydC5jCisgKiBBVEkgUENJIEdBUlQgc3VwcG9ydAorICoKKyAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKy8qCisgKiBDcmVhdGVkOiBXZWQgRGVjIDEzIDIxOjUyOjE5IDIwMDAgYnkgZ2FyZXRoQHZhbGludXguY29tCisgKgorICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKworIyBkZWZpbmUgQVRJX1BDSUdBUlRfUEFHRV9TSVpFCQk0MDk2CS8qKjwgUENJIEdBUlQgcGFnZSBzaXplICovCisKK3N0YXRpYyBpbnQgZHJtX2F0aV9hbGxvY19wY2lnYXJ0X3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqZ2FydF9pbmZvKQoreworCWdhcnRfaW5mby0+dGFibGVfaGFuZGxlID0gZHJtX3BjaV9hbGxvYyhkZXYsIGdhcnRfaW5mby0+dGFibGVfc2l6ZSwKKwkJCQkJCVBBR0VfU0laRSwKKwkJCQkJCWdhcnRfaW5mby0+dGFibGVfbWFzayk7CisJaWYgKGdhcnRfaW5mby0+dGFibGVfaGFuZGxlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGRybV9hdGlfZnJlZV9wY2lnYXJ0X3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqZ2FydF9pbmZvKQoreworCWRybV9wY2lfZnJlZShkZXYsIGdhcnRfaW5mby0+dGFibGVfaGFuZGxlKTsKKwlnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSA9IE5VTEw7Cit9CisKK2ludCBkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKK3sKKwlzdHJ1Y3QgZHJtX3NnX21lbSAqZW50cnkgPSBkZXYtPnNnOworCXVuc2lnbmVkIGxvbmcgcGFnZXM7CisJaW50IGk7CisJaW50IG1heF9wYWdlczsKKworCS8qIHdlIG5lZWQgdG8gc3VwcG9ydCBsYXJnZSBtZW1vcnkgY29uZmlndXJhdGlvbnMgKi8KKwlpZiAoIWVudHJ5KSB7CisJCURSTV9FUlJPUigibm8gc2NhdHRlci9nYXRoZXIgbWVtb3J5IVxuIik7CisJCXJldHVybiAwOworCX0KKworCWlmIChnYXJ0X2luZm8tPmJ1c19hZGRyKSB7CisKKwkJbWF4X3BhZ2VzID0gKGdhcnRfaW5mby0+dGFibGVfc2l6ZSAvIHNpemVvZih1MzIpKTsKKwkJcGFnZXMgPSAoZW50cnktPnBhZ2VzIDw9IG1heF9wYWdlcykKKwkJICA/IGVudHJ5LT5wYWdlcyA6IG1heF9wYWdlczsKKworCQlmb3IgKGkgPSAwOyBpIDwgcGFnZXM7IGkrKykgeworCQkJaWYgKCFlbnRyeS0+YnVzYWRkcltpXSkKKwkJCQlicmVhazsKKwkJCXBjaV91bm1hcF9wYWdlKGRldi0+cGRldiwgZW50cnktPmJ1c2FkZHJbaV0sCisJCQkJCSBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOworCQl9CisKKwkJaWYgKGdhcnRfaW5mby0+Z2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfTUFJTikKKwkJCWdhcnRfaW5mby0+YnVzX2FkZHIgPSAwOworCX0KKworCWlmIChnYXJ0X2luZm8tPmdhcnRfdGFibGVfbG9jYXRpb24gPT0gRFJNX0FUSV9HQVJUX01BSU4gJiYKKwkgICAgZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUpIHsKKwkJZHJtX2F0aV9mcmVlX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOworCX0KKworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRpX3BjaWdhcnRfY2xlYW51cCk7CisKK2ludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKK3sKKwlzdHJ1Y3QgZHJtX3NnX21lbSAqZW50cnkgPSBkZXYtPnNnOworCXZvaWQgKmFkZHJlc3MgPSBOVUxMOworCXVuc2lnbmVkIGxvbmcgcGFnZXM7CisJdTMyICpwY2lfZ2FydCwgcGFnZV9iYXNlOworCWRtYV9hZGRyX3QgYnVzX2FkZHJlc3MgPSAwOworCWludCBpLCBqLCByZXQgPSAwOworCWludCBtYXhfcGFnZXM7CisKKwlpZiAoIWVudHJ5KSB7CisJCURSTV9FUlJPUigibm8gc2NhdHRlci9nYXRoZXIgbWVtb3J5IVxuIik7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlpZiAoZ2FydF9pbmZvLT5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9NQUlOKSB7CisJCURSTV9ERUJVRygiUENJOiBubyB0YWJsZSBpbiBWUkFNOiB1c2luZyBub3JtYWwgUkFNXG4iKTsKKworCQlyZXQgPSBkcm1fYXRpX2FsbG9jX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoImNhbm5vdCBhbGxvY2F0ZSBQQ0kgR0FSVCBwYWdlIVxuIik7CisJCQlnb3RvIGRvbmU7CisJCX0KKworCQlhZGRyZXNzID0gZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUtPnZhZGRyOworCQlidXNfYWRkcmVzcyA9IGdhcnRfaW5mby0+dGFibGVfaGFuZGxlLT5idXNhZGRyOworCX0gZWxzZSB7CisJCWFkZHJlc3MgPSBnYXJ0X2luZm8tPmFkZHI7CisJCWJ1c19hZGRyZXNzID0gZ2FydF9pbmZvLT5idXNfYWRkcjsKKwkJRFJNX0RFQlVHKCJQQ0k6IEdhcnQgVGFibGU6IFZSQU0gJTA4TFggbWFwcGVkIGF0ICUwOGxYXG4iLAorCQkJICAodW5zaWduZWQgbG9uZyBsb25nKWJ1c19hZGRyZXNzLAorCQkJICAodW5zaWduZWQgbG9uZylhZGRyZXNzKTsKKwl9CisKKwlwY2lfZ2FydCA9ICh1MzIgKikgYWRkcmVzczsKKworCW1heF9wYWdlcyA9IChnYXJ0X2luZm8tPnRhYmxlX3NpemUgLyBzaXplb2YodTMyKSk7CisJcGFnZXMgPSAoZW50cnktPnBhZ2VzIDw9IG1heF9wYWdlcykKKwkgICAgPyBlbnRyeS0+cGFnZXMgOiBtYXhfcGFnZXM7CisKKwltZW1zZXQocGNpX2dhcnQsIDAsIG1heF9wYWdlcyAqIHNpemVvZih1MzIpKTsKKworCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgaSsrKSB7CisJCS8qIHdlIG5lZWQgdG8gc3VwcG9ydCBsYXJnZSBtZW1vcnkgY29uZmlndXJhdGlvbnMgKi8KKwkJZW50cnktPmJ1c2FkZHJbaV0gPSBwY2lfbWFwX3BhZ2UoZGV2LT5wZGV2LCBlbnRyeS0+cGFnZWxpc3RbaV0sCisJCQkJCQkgMCwgUEFHRV9TSVpFLCBQQ0lfRE1BX1RPREVWSUNFKTsKKwkJaWYgKGVudHJ5LT5idXNhZGRyW2ldID09IDApIHsKKwkJCURSTV9FUlJPUigidW5hYmxlIHRvIG1hcCBQQ0lHQVJUIHBhZ2VzIVxuIik7CisJCQlkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChkZXYsIGdhcnRfaW5mbyk7CisJCQlhZGRyZXNzID0gTlVMTDsKKwkJCWJ1c19hZGRyZXNzID0gMDsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCQlwYWdlX2Jhc2UgPSAodTMyKSBlbnRyeS0+YnVzYWRkcltpXTsKKworCQlmb3IgKGogPSAwOyBqIDwgKFBBR0VfU0laRSAvIEFUSV9QQ0lHQVJUX1BBR0VfU0laRSk7IGorKykgeworCQkJc3dpdGNoKGdhcnRfaW5mby0+Z2FydF9yZWdfaWYpIHsKKwkJCWNhc2UgRFJNX0FUSV9HQVJUX0lHUDoKKwkJCQkqcGNpX2dhcnQgPSBjcHVfdG9fbGUzMigocGFnZV9iYXNlKSB8IDB4Yyk7CisJCQkJYnJlYWs7CisJCQljYXNlIERSTV9BVElfR0FSVF9QQ0lFOgorCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKChwYWdlX2Jhc2UgPj4gOCkgfCAweGMpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCWNhc2UgRFJNX0FUSV9HQVJUX1BDSToKKwkJCQkqcGNpX2dhcnQgPSBjcHVfdG9fbGUzMihwYWdlX2Jhc2UpOworCQkJCWJyZWFrOworCQkJfQorCQkJcGNpX2dhcnQrKzsKKwkJCXBhZ2VfYmFzZSArPSBBVElfUENJR0FSVF9QQUdFX1NJWkU7CisJCX0KKwl9CisJcmV0ID0gMTsKKworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKwl3YmludmQoKTsKKyNlbHNlCisJbWIoKTsKKyNlbmRpZgorCisgICAgICBkb25lOgorCWdhcnRfaW5mby0+YWRkciA9IGFkZHJlc3M7CisJZ2FydF9pbmZvLT5idXNfYWRkciA9IGJ1c19hZGRyZXNzOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdGlfcGNpZ2FydF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2FncHN1cHBvcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYWdwc3VwcG9ydC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9hZ3BzdXBwb3J0LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fYWdwc3VwcG9ydC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9hdXRoLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fYXV0aC5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fYnVmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9idWZzLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2J1ZnMuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9idWZzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29udGV4dC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9jb250ZXh0LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29udGV4dC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZG1hLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9kcmF3YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcmF3YWJsZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9kcmF3YWJsZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2RyYXdhYmxlLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NDEzODcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCkBAIC0wLDAgKzEsNTQwIEBACisvKioKKyAqIFxmaWxlIGRybV9kcnYuYworICogR2VuZXJpYyBkcml2ZXIgdGVtcGxhdGUKKyAqCisgKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgorICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKgorICogVG8gdXNlIHRoaXMgdGVtcGxhdGUsIHlvdSBtdXN0IGF0IGxlYXN0IGRlZmluZSB0aGUgZm9sbG93aW5nIChzYW1wbGVzCisgKiBnaXZlbiBmb3IgdGhlIE1HQSBkcml2ZXIpOgorICoKKyAqIFxjb2RlCisgKiAjZGVmaW5lIERSSVZFUl9BVVRIT1IJIlZBIExpbnV4IFN5c3RlbXMsIEluYy4iCisgKgorICogI2RlZmluZSBEUklWRVJfTkFNRQkJIm1nYSIKKyAqICNkZWZpbmUgRFJJVkVSX0RFU0MJCSJNYXRyb3ggRzIwMC9HNDAwIgorICogI2RlZmluZSBEUklWRVJfREFURQkJIjIwMDAxMTI3IgorICoKKyAqICNkZWZpbmUgZHJtX3gJCW1nYV8jI3gKKyAqIFxlbmRjb2RlCisgKi8KKworLyoKKyAqIENyZWF0ZWQ6IFRodSBOb3YgMjMgMDM6MTA6NTAgMjAwMCBieSBnYXJldGhAdmFsaW51eC5jb20KKyAqCisgKiBDb3B5cmlnaHQgMTk5OSwgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtX2NvcmUuaCIKKworc3RhdGljIGludCBkcm1fdmVyc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisvKiogSW9jdGwgdGFibGUgKi8KK3N0YXRpYyBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0geworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1ZFUlNJT04sIGRybV92ZXJzaW9uLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfVU5JUVVFLCBkcm1fZ2V0dW5pcXVlLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfTUFHSUMsIGRybV9nZXRtYWdpYywgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfSVJRX0JVU0lELCBkcm1faXJxX2J5X2J1c2lkLCBEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9NQVAsIGRybV9nZXRtYXAsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9DTElFTlQsIGRybV9nZXRjbGllbnQsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9TVEFUUywgZHJtX2dldHN0YXRzLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TRVRfVkVSU0lPTiwgZHJtX3NldHZlcnNpb24sIERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TRVRfVU5JUVVFLCBkcm1fc2V0dW5pcXVlLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0JMT0NLLCBkcm1fbm9vcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9VTkJMT0NLLCBkcm1fbm9vcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BVVRIX01BR0lDLCBkcm1fYXV0aG1hZ2ljLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUREX01BUCwgZHJtX2FkZG1hcF9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9STV9NQVAsIGRybV9ybW1hcF9pb2N0bCwgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1NBUkVBX0NUWCwgZHJtX3NldHNhcmVhY3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9TQVJFQV9DVFgsIGRybV9nZXRzYXJlYWN0eCwgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUREX0NUWCwgZHJtX2FkZGN0eCwgRFJNX0FVVEh8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUk1fQ1RYLCBkcm1fcm1jdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9EX0NUWCwgZHJtX21vZGN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfQ1RYLCBkcm1fZ2V0Y3R4LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1dJVENIX0NUWCwgZHJtX3N3aXRjaGN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9ORVdfQ1RYLCBkcm1fbmV3Y3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1JFU19DVFgsIGRybV9yZXNjdHgsIERSTV9BVVRIKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9EUkFXLCBkcm1fYWRkZHJhdywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9STV9EUkFXLCBkcm1fcm1kcmF3LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTE9DSywgZHJtX2xvY2ssIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9VTkxPQ0ssIGRybV91bmxvY2ssIERSTV9BVVRIKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0ZJTklTSCwgZHJtX25vb3AsIERSTV9BVVRIKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9CVUZTLCBkcm1fYWRkYnVmcywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NQVJLX0JVRlMsIGRybV9tYXJrYnVmcywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9JTkZPX0JVRlMsIGRybV9pbmZvYnVmcywgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01BUF9CVUZTLCBkcm1fbWFwYnVmcywgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0ZSRUVfQlVGUywgZHJtX2ZyZWVidWZzLCBEUk1fQVVUSCksCisJLyogVGhlIERSTV9JT0NUTF9ETUEgaW9jdGwgc2hvdWxkIGJlIGRlZmluZWQgYnkgdGhlIGRyaXZlci4gKi8KKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9ETUEsIE5VTEwsIERSTV9BVVRIKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0NPTlRST0wsIGRybV9jb250cm9sLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCisjaWYgX19PU19IQVNfQUdQCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0FDUVVJUkUsIGRybV9hZ3BfYWNxdWlyZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfUkVMRUFTRSwgZHJtX2FncF9yZWxlYXNlX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9FTkFCTEUsIGRybV9hZ3BfZW5hYmxlX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9JTkZPLCBkcm1fYWdwX2luZm9faW9jdGwsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfQUxMT0MsIGRybV9hZ3BfYWxsb2NfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0ZSRUUsIGRybV9hZ3BfZnJlZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfQklORCwgZHJtX2FncF9iaW5kX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9VTkJJTkQsIGRybV9hZ3BfdW5iaW5kX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorI2VuZGlmCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TR19BTExPQywgZHJtX3NnX2FsbG9jX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NHX0ZSRUUsIGRybV9zZ19mcmVlLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfV0FJVF9WQkxBTkssIGRybV93YWl0X3ZibGFuaywgMCksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9VUERBVEVfRFJBVywgZHJtX3VwZGF0ZV9kcmF3YWJsZV9pbmZvLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorfTsKKworI2RlZmluZSBEUk1fQ09SRV9JT0NUTF9DT1VOVAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKKworLyoqCisgKiBUYWtlIGRvd24gdGhlIERSTSBkZXZpY2UuCisgKgorICogXHBhcmFtIGRldiBEUk0gZGV2aWNlIHN0cnVjdHVyZS4KKyAqCisgKiBGcmVlcyBldmVyeSByZXNvdXJjZSBpbiBccCBkZXYuCisgKgorICogXHNhIGRybV9kZXZpY2UKKyAqLworaW50IGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJc3RydWN0IGRybV9tYWdpY19lbnRyeSAqcHQsICpuZXh0OworCXN0cnVjdCBkcm1fbWFwX2xpc3QgKnJfbGlzdCwgKmxpc3RfdDsKKwlzdHJ1Y3QgZHJtX3ZtYV9lbnRyeSAqdm1hLCAqdm1hX3RlbXA7CisJaW50IGk7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlpZiAoZGV2LT5kcml2ZXItPmxhc3RjbG9zZSkKKwkJZGV2LT5kcml2ZXItPmxhc3RjbG9zZShkZXYpOworCURSTV9ERUJVRygiZHJpdmVyIGxhc3RjbG9zZSBjb21wbGV0ZWRcbiIpOworCisJaWYgKGRldi0+dW5pcXVlKSB7CisJCWRybV9mcmVlKGRldi0+dW5pcXVlLCBzdHJsZW4oZGV2LT51bmlxdWUpICsgMSwgRFJNX01FTV9EUklWRVIpOworCQlkZXYtPnVuaXF1ZSA9IE5VTEw7CisJCWRldi0+dW5pcXVlX2xlbiA9IDA7CisJfQorCisJaWYgKGRldi0+aXJxX2VuYWJsZWQpCisJCWRybV9pcnFfdW5pbnN0YWxsKGRldik7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwkvKiBGcmVlIGRyYXdhYmxlIGluZm9ybWF0aW9uIG1lbW9yeSAqLworCWRybV9kcmF3YWJsZV9mcmVlX2FsbChkZXYpOworCWRlbF90aW1lcigmZGV2LT50aW1lcik7CisKKwkvKiBDbGVhciBwaWQgbGlzdCAqLworCWlmIChkZXYtPm1hZ2ljZnJlZS5uZXh0KSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwdCwgbmV4dCwgJmRldi0+bWFnaWNmcmVlLCBoZWFkKSB7CisJCQlsaXN0X2RlbCgmcHQtPmhlYWQpOworCQkJZHJtX2h0X3JlbW92ZV9pdGVtKCZkZXYtPm1hZ2ljbGlzdCwgJnB0LT5oYXNoX2l0ZW0pOworCQkJZHJtX2ZyZWUocHQsIHNpemVvZigqcHQpLCBEUk1fTUVNX01BR0lDKTsKKwkJfQorCQlkcm1faHRfcmVtb3ZlKCZkZXYtPm1hZ2ljbGlzdCk7CisJfQorCisJLyogQ2xlYXIgQUdQIGluZm9ybWF0aW9uICovCisJaWYgKGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJiBkZXYtPmFncCkgeworCQlzdHJ1Y3QgZHJtX2FncF9tZW0gKmVudHJ5LCAqdGVtcGU7CisKKwkJLyogUmVtb3ZlIEFHUCByZXNvdXJjZXMsIGJ1dCBsZWF2ZSBkZXYtPmFncAorCQkgICBpbnRhY3QgdW50aWwgZHJ2X2NsZWFudXAgaXMgY2FsbGVkLiAqLworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIHRlbXBlLCAmZGV2LT5hZ3AtPm1lbW9yeSwgaGVhZCkgeworCQkJaWYgKGVudHJ5LT5ib3VuZCkKKwkJCQlkcm1fdW5iaW5kX2FncChlbnRyeS0+bWVtb3J5KTsKKwkJCWRybV9mcmVlX2FncChlbnRyeS0+bWVtb3J5LCBlbnRyeS0+cGFnZXMpOworCQkJZHJtX2ZyZWUoZW50cnksIHNpemVvZigqZW50cnkpLCBEUk1fTUVNX0FHUExJU1RTKTsKKwkJfQorCQlJTklUX0xJU1RfSEVBRCgmZGV2LT5hZ3AtPm1lbW9yeSk7CisKKwkJaWYgKGRldi0+YWdwLT5hY3F1aXJlZCkKKwkJCWRybV9hZ3BfcmVsZWFzZShkZXYpOworCisJCWRldi0+YWdwLT5hY3F1aXJlZCA9IDA7CisJCWRldi0+YWdwLT5lbmFibGVkID0gMDsKKwl9CisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU0cpICYmIGRldi0+c2cpIHsKKwkJZHJtX3NnX2NsZWFudXAoZGV2LT5zZyk7CisJCWRldi0+c2cgPSBOVUxMOworCX0KKworCS8qIENsZWFyIHZtYSBsaXN0IChvbmx5IGJ1aWx0IGZvciBkZWJ1Z2dpbmcpICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgdm1hX3RlbXAsICZkZXYtPnZtYWxpc3QsIGhlYWQpIHsKKwkJbGlzdF9kZWwoJnZtYS0+aGVhZCk7CisJCWRybV9mcmVlKHZtYSwgc2l6ZW9mKCp2bWEpLCBEUk1fTUVNX1ZNQVMpOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyX2xpc3QsIGxpc3RfdCwgJmRldi0+bWFwbGlzdCwgaGVhZCkgeworCQlpZiAoIShyX2xpc3QtPm1hcC0+ZmxhZ3MgJiBfRFJNX0RSSVZFUikpIHsKKwkJCWRybV9ybW1hcF9sb2NrZWQoZGV2LCByX2xpc3QtPm1hcCk7CisJCQlyX2xpc3QgPSBOVUxMOworCQl9CisJfQorCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfRE1BX1FVRVVFKSAmJiBkZXYtPnF1ZXVlbGlzdCkgeworCQlmb3IgKGkgPSAwOyBpIDwgZGV2LT5xdWV1ZV9jb3VudDsgaSsrKSB7CisJCQlpZiAoZGV2LT5xdWV1ZWxpc3RbaV0pIHsKKwkJCQlkcm1fZnJlZShkZXYtPnF1ZXVlbGlzdFtpXSwKKwkJCQkJIHNpemVvZigqZGV2LT5xdWV1ZWxpc3RbMF0pLAorCQkJCQkgRFJNX01FTV9RVUVVRVMpOworCQkJCWRldi0+cXVldWVsaXN0W2ldID0gTlVMTDsKKwkJCX0KKwkJfQorCQlkcm1fZnJlZShkZXYtPnF1ZXVlbGlzdCwKKwkJCSBkZXYtPnF1ZXVlX3Nsb3RzICogc2l6ZW9mKCpkZXYtPnF1ZXVlbGlzdCksCisJCQkgRFJNX01FTV9RVUVVRVMpOworCQlkZXYtPnF1ZXVlbGlzdCA9IE5VTEw7CisJfQorCWRldi0+cXVldWVfY291bnQgPSAwOworCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKQorCQlkcm1fZG1hX3Rha2Vkb3duKGRldik7CisKKwlpZiAoZGV2LT5sb2NrLmh3X2xvY2spIHsKKwkJZGV2LT5zaWdkYXRhLmxvY2sgPSBkZXYtPmxvY2suaHdfbG9jayA9IE5VTEw7CS8qIFNITSByZW1vdmVkICovCisJCWRldi0+bG9jay5maWxlX3ByaXYgPSBOVUxMOworCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmRldi0+bG9jay5sb2NrX3F1ZXVlKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlEUk1fREVCVUcoImxhc3RjbG9zZSBjb21wbGV0ZWRcbiIpOworCXJldHVybiAwOworfQorCisvKioKKyAqIE1vZHVsZSBpbml0aWFsaXphdGlvbi4gQ2FsbGVkIHZpYSBpbml0X21vZHVsZSBhdCBtb2R1bGUgbG9hZCB0aW1lLCBvciB2aWEKKyAqIGxpbnV4L2luaXQvbWFpbi5jICh0aGlzIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkKS4KKyAqCisgKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgorICoKKyAqIEluaXRpYWxpemVzIGFuIGFycmF5IG9mIGRybV9kZXZpY2Ugc3RydWN0dXJlcywgYW5kIGF0dGVtcHRzIHRvCisgKiBpbml0aWFsaXplIGFsbCBhdmFpbGFibGUgZGV2aWNlcywgdXNpbmcgY29uc2VjdXRpdmUgbWlub3JzLCByZWdpc3RlcmluZyB0aGUKKyAqIHN0dWJzIGFuZCBpbml0aWFsaXppbmcgdGhlIEFHUCBkZXZpY2UuCisgKgorICogRXhwYW5kcyB0aGUgXGMgRFJJVkVSX1BSRUlOSVQgYW5kIFxjIERSSVZFUl9QT1NUX0lOSVQgbWFjcm9zIGJlZm9yZSBhbmQKKyAqIGFmdGVyIHRoZSBpbml0aWFsaXphdGlvbiBmb3IgZHJpdmVyIGN1c3RvbWl6YXRpb24uCisgKi8KK2ludCBkcm1faW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKQoreworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGlkOworCWludCBpOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJZm9yIChpID0gMDsgZHJpdmVyLT5wY2lfZHJpdmVyLmlkX3RhYmxlW2ldLnZlbmRvciAhPSAwOyBpKyspIHsKKwkJcGlkID0gKHN0cnVjdCBwY2lfZGV2aWNlX2lkICopJmRyaXZlci0+cGNpX2RyaXZlci5pZF90YWJsZVtpXTsKKworCQlwZGV2ID0gTlVMTDsKKwkJLyogcGFzcyBiYWNrIGluIHBkZXYgdG8gYWNjb3VudCBmb3IgbXVsdGlwbGUgaWRlbnRpY2FsIGNhcmRzICovCisJCXdoaWxlICgocGRldiA9CisJCQlwY2lfZ2V0X3N1YnN5cyhwaWQtPnZlbmRvciwgcGlkLT5kZXZpY2UsIHBpZC0+c3VidmVuZG9yLAorCQkJCSAgICAgICBwaWQtPnN1YmRldmljZSwgcGRldikpICE9IE5VTEwpIHsKKwkJCS8qIHN0ZWFsdGggbW9kZSByZXF1aXJlcyBhIG1hbnVhbCBwcm9iZSAqLworCQkJcGNpX2Rldl9nZXQocGRldik7CisJCQlkcm1fZ2V0X2RldihwZGV2LCBwaWQsIGRyaXZlcik7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK0VYUE9SVF9TWU1CT0woZHJtX2luaXQpOworCisvKioKKyAqIENhbGxlZCB2aWEgY2xlYW51cF9tb2R1bGUoKSBhdCBtb2R1bGUgdW5sb2FkIHRpbWUuCisgKgorICogQ2xlYW5zIHVwIGFsbCBEUk0gZGV2aWNlLCBjYWxsaW5nIGRybV9sYXN0Y2xvc2UoKS4KKyAqCisgKiBcc2EgZHJtX2luaXQKKyAqLworc3RhdGljIHZvaWQgZHJtX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJRFJNX0RFQlVHKCJcbiIpOworCisJaWYgKCFkZXYpIHsKKwkJRFJNX0VSUk9SKCJjbGVhbnVwIGNhbGxlZCBubyBkZXZcbiIpOworCQlyZXR1cm47CisJfQorCisJZHJtX2xhc3RjbG9zZShkZXYpOworCisJaWYgKGRybV9jb3JlX2hhc19NVFJSKGRldikgJiYgZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmCisJICAgIGRldi0+YWdwICYmIGRldi0+YWdwLT5hZ3BfbXRyciA+PSAwKSB7CisJCWludCByZXR2YWw7CisJCXJldHZhbCA9IG10cnJfZGVsKGRldi0+YWdwLT5hZ3BfbXRyciwKKwkJCQkgIGRldi0+YWdwLT5hZ3BfaW5mby5hcGVyX2Jhc2UsCisJCQkJICBkZXYtPmFncC0+YWdwX2luZm8uYXBlcl9zaXplICogMTAyNCAqIDEwMjQpOworCQlEUk1fREVCVUcoIm10cnJfZGVsPSVkXG4iLCByZXR2YWwpOworCX0KKworCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYgZGV2LT5hZ3ApIHsKKwkJZHJtX2ZyZWUoZGV2LT5hZ3AsIHNpemVvZigqZGV2LT5hZ3ApLCBEUk1fTUVNX0FHUExJU1RTKTsKKwkJZGV2LT5hZ3AgPSBOVUxMOworCX0KKworCWlmIChkZXYtPmRyaXZlci0+dW5sb2FkKQorCQlkZXYtPmRyaXZlci0+dW5sb2FkKGRldik7CisKKwlkcm1faHRfcmVtb3ZlKCZkZXYtPm1hcF9oYXNoKTsKKwlkcm1fY3R4Yml0bWFwX2NsZWFudXAoZGV2KTsKKworCWRybV9wdXRfbWlub3IoJmRldi0+cHJpbWFyeSk7CisJaWYgKGRybV9wdXRfZGV2KGRldikpCisJCURSTV9FUlJPUigiQ2Fubm90IHVubG9hZCBtb2R1bGVcbiIpOworfQorCitpbnQgZHJtX21pbm9yc19jbGVhbnVwKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0gcHRyOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisJc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlciA9IGRhdGE7CisKKwlkZXYgPSBtaW5vci0+ZGV2OworCWlmIChtaW5vci0+ZGV2LT5kcml2ZXIgIT0gZHJpdmVyKQorCQlyZXR1cm4gMDsKKworCWlmIChtaW5vci0+dHlwZSAhPSBEUk1fTUlOT1JfTEVHQUNZKQorCQlyZXR1cm4gMDsKKworCWlmIChkZXYpCisJCXBjaV9kZXZfcHV0KGRldi0+cGRldik7CisJZHJtX2NsZWFudXAoZGV2KTsKKwlyZXR1cm4gMTsKK30KKwordm9pZCBkcm1fZXhpdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKQoreworCURSTV9ERUJVRygiXG4iKTsKKworCWlkcl9mb3JfZWFjaCgmZHJtX21pbm9yc19pZHIsICZkcm1fbWlub3JzX2NsZWFudXAsIGRyaXZlcik7CisKKwlEUk1fSU5GTygiTW9kdWxlIHVubG9hZGVkXG4iKTsKK30KKworRVhQT1JUX1NZTUJPTChkcm1fZXhpdCk7CisKKy8qKiBGaWxlIG9wZXJhdGlvbnMgc3RydWN0dXJlICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkcm1fc3R1Yl9mb3BzID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5vcGVuID0gZHJtX3N0dWJfb3BlbgorfTsKKworc3RhdGljIGludCBfX2luaXQgZHJtX2NvcmVfaW5pdCh2b2lkKQoreworCWludCByZXQgPSAtRU5PTUVNOworCisJaWRyX2luaXQoJmRybV9taW5vcnNfaWRyKTsKKworCWlmIChyZWdpc3Rlcl9jaHJkZXYoRFJNX01BSk9SLCAiZHJtIiwgJmRybV9zdHViX2ZvcHMpKQorCQlnb3RvIGVycl9wMTsKKworCWRybV9jbGFzcyA9IGRybV9zeXNmc19jcmVhdGUoVEhJU19NT0RVTEUsICJkcm0iKTsKKwlpZiAoSVNfRVJSKGRybV9jbGFzcykpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJEUk06IEVycm9yIGNyZWF0aW5nIGRybSBjbGFzcy5cbiIpOworCQlyZXQgPSBQVFJfRVJSKGRybV9jbGFzcyk7CisJCWdvdG8gZXJyX3AyOworCX0KKworCWRybV9wcm9jX3Jvb3QgPSBwcm9jX21rZGlyKCJkcmkiLCBOVUxMKTsKKwlpZiAoIWRybV9wcm9jX3Jvb3QpIHsKKwkJRFJNX0VSUk9SKCJDYW5ub3QgY3JlYXRlIC9wcm9jL2RyaVxuIik7CisJCXJldCA9IC0xOworCQlnb3RvIGVycl9wMzsKKwl9CisKKwlkcm1fbWVtX2luaXQoKTsKKworCURSTV9JTkZPKCJJbml0aWFsaXplZCAlcyAlZC4lZC4lZCAlc1xuIiwKKwkJIENPUkVfTkFNRSwgQ09SRV9NQUpPUiwgQ09SRV9NSU5PUiwgQ09SRV9QQVRDSExFVkVMLCBDT1JFX0RBVEUpOworCXJldHVybiAwOworZXJyX3AzOgorCWRybV9zeXNmc19kZXN0cm95KCk7CitlcnJfcDI6CisJdW5yZWdpc3Rlcl9jaHJkZXYoRFJNX01BSk9SLCAiZHJtIik7CisKKwlpZHJfZGVzdHJveSgmZHJtX21pbm9yc19pZHIpOworZXJyX3AxOgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBkcm1fY29yZV9leGl0KHZvaWQpCit7CisJcmVtb3ZlX3Byb2NfZW50cnkoImRyaSIsIE5VTEwpOworCWRybV9zeXNmc19kZXN0cm95KCk7CisKKwl1bnJlZ2lzdGVyX2NocmRldihEUk1fTUFKT1IsICJkcm0iKTsKKworCWlkcl9kZXN0cm95KCZkcm1fbWlub3JzX2lkcik7Cit9CisKK21vZHVsZV9pbml0KGRybV9jb3JlX2luaXQpOworbW9kdWxlX2V4aXQoZHJtX2NvcmVfZXhpdCk7CisKKy8qKgorICogR2V0IHZlcnNpb24gaW5mb3JtYXRpb24KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgorICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgorICogXHBhcmFtIGNtZCBjb21tYW5kLgorICogXHBhcmFtIGFyZyB1c2VyIGFyZ3VtZW50LCBwb2ludGluZyB0byBhIGRybV92ZXJzaW9uIHN0cnVjdHVyZS4KKyAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgorICoKKyAqIEZpbGxzIGluIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGluIFxwIGFyZy4KKyAqLworc3RhdGljIGludCBkcm1fdmVyc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3RydWN0IGRybV92ZXJzaW9uICp2ZXJzaW9uID0gZGF0YTsKKwlpbnQgbGVuOworCisJdmVyc2lvbi0+dmVyc2lvbl9tYWpvciA9IGRldi0+ZHJpdmVyLT5tYWpvcjsKKwl2ZXJzaW9uLT52ZXJzaW9uX21pbm9yID0gZGV2LT5kcml2ZXItPm1pbm9yOworCXZlcnNpb24tPnZlcnNpb25fcGF0Y2hsZXZlbCA9IGRldi0+ZHJpdmVyLT5wYXRjaGxldmVsOworCURSTV9DT1BZKHZlcnNpb24tPm5hbWUsIGRldi0+ZHJpdmVyLT5uYW1lKTsKKwlEUk1fQ09QWSh2ZXJzaW9uLT5kYXRlLCBkZXYtPmRyaXZlci0+ZGF0ZSk7CisJRFJNX0NPUFkodmVyc2lvbi0+ZGVzYywgZGV2LT5kcml2ZXItPmRlc2MpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJvY2VzcyBwZXJmb3JtcyBhbiBpb2N0bCBvbiAvZGV2L2RybS4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgorICogXHBhcmFtIGZpbGVfcHJpdiBEUk0gZmlsZSBwcml2YXRlLgorICogXHBhcmFtIGNtZCBjb21tYW5kLgorICogXHBhcmFtIGFyZyB1c2VyIGFyZ3VtZW50LgorICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogTG9va3MgdXAgdGhlIGlvY3RsIGZ1bmN0aW9uIGluIHRoZSA6OmlvY3RscyB0YWJsZSwgY2hlY2tpbmcgZm9yIHJvb3QKKyAqIHByZXZpbGVnZXMgaWYgc28gcmVxdWlyZWQsIGFuZCBkaXNwYXRjaGVzIHRvIHRoZSByZXNwZWN0aXZlIGZ1bmN0aW9uLgorICovCitpbnQgZHJtX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAorCSAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7CisJc3RydWN0IGRybV9pb2N0bF9kZXNjICppb2N0bDsKKwlkcm1faW9jdGxfdCAqZnVuYzsKKwl1bnNpZ25lZCBpbnQgbnIgPSBEUk1fSU9DVExfTlIoY21kKTsKKwlpbnQgcmV0Y29kZSA9IC1FSU5WQUw7CisJY2hhciAqa2RhdGEgPSBOVUxMOworCisJYXRvbWljX2luYygmZGV2LT5pb2N0bF9jb3VudCk7CisJYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX0lPQ1RMU10pOworCSsrZmlsZV9wcml2LT5pb2N0bF9jb3VudDsKKworCURSTV9ERUJVRygicGlkPSVkLCBjbWQ9MHglMDJ4LCBucj0weCUwMngsIGRldiAweCVseCwgYXV0aD0lZFxuIiwKKwkJICB0YXNrX3BpZF9ucihjdXJyZW50KSwgY21kLCBuciwKKwkJICAobG9uZylvbGRfZW5jb2RlX2RldihmaWxlX3ByaXYtPm1pbm9yLT5kZXZpY2UpLAorCQkgIGZpbGVfcHJpdi0+YXV0aGVudGljYXRlZCk7CisKKwlpZiAoKG5yID49IERSTV9DT1JFX0lPQ1RMX0NPVU5UKSAmJgorCSAgICAoKG5yIDwgRFJNX0NPTU1BTkRfQkFTRSkgfHwgKG5yID49IERSTV9DT01NQU5EX0VORCkpKQorCQlnb3RvIGVycl9pMTsKKwlpZiAoKG5yID49IERSTV9DT01NQU5EX0JBU0UpICYmIChuciA8IERSTV9DT01NQU5EX0VORCkgJiYKKwkgICAgKG5yIDwgRFJNX0NPTU1BTkRfQkFTRSArIGRldi0+ZHJpdmVyLT5udW1faW9jdGxzKSkKKwkJaW9jdGwgPSAmZGV2LT5kcml2ZXItPmlvY3Rsc1tuciAtIERSTV9DT01NQU5EX0JBU0VdOworCWVsc2UgaWYgKChuciA+PSBEUk1fQ09NTUFORF9FTkQpIHx8IChuciA8IERSTV9DT01NQU5EX0JBU0UpKSB7CisJCWlvY3RsID0gJmRybV9pb2N0bHNbbnJdOworCQljbWQgPSBpb2N0bC0+Y21kOworCX0gZWxzZQorCQlnb3RvIGVycl9pMTsKKworCS8qIERvIG5vdCB0cnVzdCB1c2Vyc3BhY2UsIHVzZSBvdXIgb3duIGRlZmluaXRpb24gKi8KKwlmdW5jID0gaW9jdGwtPmZ1bmM7CisJLyogaXMgdGhlcmUgYSBsb2NhbCBvdmVycmlkZT8gKi8KKwlpZiAoKG5yID09IERSTV9JT0NUTF9OUihEUk1fSU9DVExfRE1BKSkgJiYgZGV2LT5kcml2ZXItPmRtYV9pb2N0bCkKKwkJZnVuYyA9IGRldi0+ZHJpdmVyLT5kbWFfaW9jdGw7CisKKwlpZiAoIWZ1bmMpIHsKKwkJRFJNX0RFQlVHKCJubyBmdW5jdGlvblxuIik7CisJCXJldGNvZGUgPSAtRUlOVkFMOworCX0gZWxzZSBpZiAoKChpb2N0bC0+ZmxhZ3MgJiBEUk1fUk9PVF9PTkxZKSAmJiAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgfHwKKwkJICAgKChpb2N0bC0+ZmxhZ3MgJiBEUk1fQVVUSCkgJiYgIWZpbGVfcHJpdi0+YXV0aGVudGljYXRlZCkgfHwKKwkJICAgKChpb2N0bC0+ZmxhZ3MgJiBEUk1fTUFTVEVSKSAmJiAhZmlsZV9wcml2LT5tYXN0ZXIpKSB7CisJCXJldGNvZGUgPSAtRUFDQ0VTOworCX0gZWxzZSB7CisJCWlmIChjbWQgJiAoSU9DX0lOIHwgSU9DX09VVCkpIHsKKwkJCWtkYXRhID0ga21hbGxvYyhfSU9DX1NJWkUoY21kKSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIWtkYXRhKSB7CisJCQkJcmV0Y29kZSA9IC1FTk9NRU07CisJCQkJZ290byBlcnJfaTE7CisJCQl9CisJCX0KKworCQlpZiAoY21kICYgSU9DX0lOKSB7CisJCQlpZiAoY29weV9mcm9tX3VzZXIoa2RhdGEsICh2b2lkIF9fdXNlciAqKWFyZywKKwkJCQkJICAgX0lPQ19TSVpFKGNtZCkpICE9IDApIHsKKwkJCQlyZXRjb2RlID0gLUVGQVVMVDsKKwkJCQlnb3RvIGVycl9pMTsKKwkJCX0KKwkJfQorCQlyZXRjb2RlID0gZnVuYyhkZXYsIGtkYXRhLCBmaWxlX3ByaXYpOworCisJCWlmICgocmV0Y29kZSA9PSAwKSAmJiAoY21kICYgSU9DX09VVCkpIHsKKwkJCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCBrZGF0YSwKKwkJCQkJIF9JT0NfU0laRShjbWQpKSAhPSAwKQorCQkJCXJldGNvZGUgPSAtRUZBVUxUOworCQl9CisJfQorCisgICAgICBlcnJfaTE6CisJaWYgKGtkYXRhKQorCQlrZnJlZShrZGF0YSk7CisJYXRvbWljX2RlYygmZGV2LT5pb2N0bF9jb3VudCk7CisJaWYgKHJldGNvZGUpCisJCURSTV9ERUJVRygicmV0ID0gJXhcbiIsIHJldGNvZGUpOworCXJldHVybiByZXRjb2RlOworfQorCitFWFBPUlRfU1lNQk9MKGRybV9pb2N0bCk7CisKK2RybV9sb2NhbF9tYXBfdCAqZHJtX2dldHNhcmVhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9tYXBfbGlzdCAqZW50cnk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmZGV2LT5tYXBsaXN0LCBoZWFkKSB7CisJCWlmIChlbnRyeS0+bWFwICYmIGVudHJ5LT5tYXAtPnR5cGUgPT0gX0RSTV9TSE0gJiYKKwkJICAgIChlbnRyeS0+bWFwLT5mbGFncyAmIF9EUk1fQ09OVEFJTlNfTE9DSykpIHsKKwkJCXJldHVybiBlbnRyeS0+bWFwOworCQl9CisJfQorCXJldHVybiBOVUxMOworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2V0c2FyZWEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTFhNTNmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMKQEAgLTAsMCArMSw0NzEgQEAKKy8qKgorICogXGZpbGUgZHJtX2ZvcHMuYworICogRmlsZSBvcGVyYXRpb25zIGZvciBEUk0KKyAqCisgKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgorICogXGF1dGhvciBEYXJ5bGwgU3RyYXVzcyA8ZGFyeWxsQHZhbGludXguY29tPgorICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworLyoKKyAqIENyZWF0ZWQ6IE1vbiBKYW4gIDQgMDg6NTg6MzEgMTk5OSBieSBmYWl0aEB2YWxpbnV4LmNvbQorICoKKyAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm1fc2FyZWEuaCIKKyNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKworc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCisJCQkgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CisKK3N0YXRpYyBpbnQgZHJtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9sb2NhbF9tYXBfdCAqbWFwOworCWludCBpOworCWludCByZXQ7CisJdTMyIHNhcmVhcGFnZTsKKworCWlmIChkZXYtPmRyaXZlci0+Zmlyc3RvcGVuKSB7CisJCXJldCA9IGRldi0+ZHJpdmVyLT5maXJzdG9wZW4oZGV2KTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlkZXYtPm1hZ2ljZnJlZS5uZXh0ID0gTlVMTDsKKworCS8qIHByZWJ1aWxkIHRoZSBTQVJFQSAqLworCXNhcmVhcGFnZSA9IG1heF90KHVuc2lnbmVkLCBTQVJFQV9NQVgsIFBBR0VfU0laRSk7CisJaSA9IGRybV9hZGRtYXAoZGV2LCAwLCBzYXJlYXBhZ2UsIF9EUk1fU0hNLCBfRFJNX0NPTlRBSU5TX0xPQ0ssICZtYXApOworCWlmIChpICE9IDApCisJCXJldHVybiBpOworCisJYXRvbWljX3NldCgmZGV2LT5pb2N0bF9jb3VudCwgMCk7CisJYXRvbWljX3NldCgmZGV2LT52bWFfY291bnQsIDApOworCWRldi0+YnVmX3VzZSA9IDA7CisJYXRvbWljX3NldCgmZGV2LT5idWZfYWxsb2MsIDApOworCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKSB7CisJCWkgPSBkcm1fZG1hX3NldHVwKGRldik7CisJCWlmIChpIDwgMCkKKwkJCXJldHVybiBpOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldi0+Y291bnRzKTsgaSsrKQorCQlhdG9taWNfc2V0KCZkZXYtPmNvdW50c1tpXSwgMCk7CisKKwlkcm1faHRfY3JlYXRlKCZkZXYtPm1hZ2ljbGlzdCwgRFJNX01BR0lDX0hBU0hfT1JERVIpOworCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hZ2ljZnJlZSk7CisKKwlkZXYtPnNpZ2RhdGEubG9jayA9IE5VTEw7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5sb2NrLmxvY2tfcXVldWUpOworCWRldi0+cXVldWVfY291bnQgPSAwOworCWRldi0+cXVldWVfcmVzZXJ2ZWQgPSAwOworCWRldi0+cXVldWVfc2xvdHMgPSAwOworCWRldi0+cXVldWVsaXN0ID0gTlVMTDsKKwlkZXYtPmlycV9lbmFibGVkID0gMDsKKwlkZXYtPmNvbnRleHRfZmxhZyA9IDA7CisJZGV2LT5pbnRlcnJ1cHRfZmxhZyA9IDA7CisJZGV2LT5kbWFfZmxhZyA9IDA7CisJZGV2LT5sYXN0X2NvbnRleHQgPSAwOworCWRldi0+bGFzdF9zd2l0Y2ggPSAwOworCWRldi0+bGFzdF9jaGVja2VkID0gMDsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmNvbnRleHRfd2FpdCk7CisJZGV2LT5pZl92ZXJzaW9uID0gMDsKKworCWRldi0+Y3R4X3N0YXJ0ID0gMDsKKwlkZXYtPmxja19zdGFydCA9IDA7CisKKwlkZXYtPmJ1Zl9hc3luYyA9IE5VTEw7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfcmVhZGVycyk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfd3JpdGVycyk7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKgorCSAqIFRoZSBrZXJuZWwncyBjb250ZXh0IGNvdWxkIGJlIGNyZWF0ZWQgaGVyZSwgYnV0IGlzIG5vdyBjcmVhdGVkCisJICogaW4gZHJtX2RtYV9lbnF1ZXVlLiAgVGhpcyBpcyBtb3JlIHJlc291cmNlLWVmZmljaWVudCBmb3IKKwkgKiBoYXJkd2FyZSB0aGF0IGRvZXMgbm90IGRvIERNQSwgYnV0IG1heSBtZWFuIHRoYXQKKwkgKiBkcm1fc2VsZWN0X3F1ZXVlIGZhaWxzIGJldHdlZW4gdGhlIHRpbWUgdGhlIGludGVycnVwdCBpcworCSAqIGluaXRpYWxpemVkIGFuZCB0aGUgdGltZSB0aGUgcXVldWVzIGFyZSBpbml0aWFsaXplZC4KKwkgKi8KKworCXJldHVybiAwOworfQorCisvKioKKyAqIE9wZW4gZmlsZS4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlCisgKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCisgKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgorICoKKyAqIFNlYXJjaGVzIHRoZSBEUk0gZGV2aWNlIHdpdGggdGhlIHNhbWUgbWlub3IgbnVtYmVyLCBjYWxscyBvcGVuX2hlbHBlcigpLCBhbmQKKyAqIGluY3JlbWVudHMgdGhlIGRldmljZSBvcGVuIGNvdW50LiBJZiB0aGUgb3BlbiBjb3VudCB3YXMgcHJldmlvdXMgYXQgemVybywKKyAqIGkuZS4sIGl0J3MgdGhlIGZpcnN0IHRoYXQgdGhlIGRldmljZSBpcyBvcGVuLCB0aGVuIGNhbGxzIHNldHVwKCkuCisgKi8KK2ludCBkcm1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gTlVMTDsKKwlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOworCWludCByZXRjb2RlID0gMDsKKworCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7CisJaWYgKCFtaW5vcikKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXRjb2RlID0gZHJtX29wZW5faGVscGVyKGlub2RlLCBmaWxwLCBkZXYpOworCWlmICghcmV0Y29kZSkgeworCQlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfT1BFTlNdKTsKKwkJc3Bpbl9sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCQlpZiAoIWRldi0+b3Blbl9jb3VudCsrKSB7CisJCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwkJCXJldHVybiBkcm1fc2V0dXAoZGV2KTsKKwkJfQorCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwl9CisKKwlyZXR1cm4gcmV0Y29kZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX29wZW4pOworCisvKioKKyAqIEZpbGUgXGMgb3BlbiBvcGVyYXRpb24uCisgKgorICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KKyAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KKyAqCisgKiBQdXRzIHRoZSBkZXYtPmZvcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG1pbm9yIG51bWJlciBpbnRvCisgKiBccCBmaWxwLCBjYWxsIHRoZSBcYyBvcGVuIG1ldGhvZCwgYW5kIHJlc3RvcmUgdGhlIGZpbGUgb3BlcmF0aW9ucy4KKyAqLworaW50IGRybV9zdHViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IE5VTEw7CisJc3RydWN0IGRybV9taW5vciAqbWlub3I7CisJaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgZXJyID0gLUVOT0RFVjsKKwljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wczsKKworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIEJLTCBwdXNoZG93bjogbm90ZSB0aGF0IG5vdGhpbmcgZWxzZSBzZXJpYWxpemVzIGlkcl9maW5kKCkgKi8KKwlsb2NrX2tlcm5lbCgpOworCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7CisJaWYgKCFtaW5vcikKKwkJZ290byBvdXQ7CisKKwlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKKwkJZ290byBvdXQ7CisKKwlvbGRfZm9wcyA9IGZpbHAtPmZfb3A7CisJZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KCZkZXYtPmRyaXZlci0+Zm9wcyk7CisJaWYgKGZpbHAtPmZfb3AtPm9wZW4gJiYgKGVyciA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsIGZpbHApKSkgeworCQlmb3BzX3B1dChmaWxwLT5mX29wKTsKKwkJZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKKwl9CisJZm9wc19wdXQob2xkX2ZvcHMpOworCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiBlcnI7Cit9CisKKy8qKgorICogQ2hlY2sgd2hldGhlciBEUkkgd2lsbCBydW4gb24gdGhpcyBDUFUuCisgKgorICogXHJldHVybiBub24temVybyBpZiB0aGUgRFJJIHdpbGwgcnVuIG9uIHRoaXMgQ1BVLCBvciB6ZXJvIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludCBkcm1fY3B1X3ZhbGlkKHZvaWQpCit7CisjaWYgZGVmaW5lZChfX2kzODZfXykKKwlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMykKKwkJcmV0dXJuIDA7CS8qIE5vIGNtcHhjaGcgb24gYSAzODYgKi8KKyNlbmRpZgorI2lmIGRlZmluZWQoX19zcGFyY19fKSAmJiAhZGVmaW5lZChfX3NwYXJjX3Y5X18pCisJcmV0dXJuIDA7CQkvKiBObyBjbXB4Y2hnIGJlZm9yZSB2OSBzcGFyYy4gKi8KKyNlbmRpZgorCXJldHVybiAxOworfQorCisvKioKKyAqIENhbGxlZCB3aGVuZXZlciBhIHByb2Nlc3Mgb3BlbnMgL2Rldi9kcm0uCisgKgorICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KKyAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KKyAqIFxwYXJhbSBkZXYgZGV2aWNlLgorICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KKyAqCisgKiBDcmVhdGVzIGFuZCBpbml0aWFsaXplcyBhIGRybV9maWxlIHN0cnVjdHVyZSBmb3IgdGhlIGZpbGUgcHJpdmF0ZSBkYXRhIGluIFxwCisgKiBmaWxwIGFuZCBhZGQgaXQgaW50byB0aGUgZG91YmxlIGxpbmtlZCBsaXN0IGluIFxwIGRldi4KKyAqLworc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCisJCQkgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOworCXN0cnVjdCBkcm1fZmlsZSAqcHJpdjsKKwlpbnQgcmV0OworCisJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX0VYQ0wpCisJCXJldHVybiAtRUJVU1k7CS8qIE5vIGV4Y2x1c2l2ZSBvcGVucyAqLworCWlmICghZHJtX2NwdV92YWxpZCgpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCURSTV9ERUJVRygicGlkID0gJWQsIG1pbm9yID0gJWRcbiIsIHRhc2tfcGlkX25yKGN1cnJlbnQpLCBtaW5vcl9pZCk7CisKKwlwcml2ID0gZHJtX2FsbG9jKHNpemVvZigqcHJpdiksIERSTV9NRU1fRklMRVMpOworCWlmICghcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1zZXQocHJpdiwgMCwgc2l6ZW9mKCpwcml2KSk7CisJZmlscC0+cHJpdmF0ZV9kYXRhID0gcHJpdjsKKwlwcml2LT5maWxwID0gZmlscDsKKwlwcml2LT51aWQgPSBjdXJyZW50LT5ldWlkOworCXByaXYtPnBpZCA9IHRhc2tfcGlkX25yKGN1cnJlbnQpOworCXByaXYtPm1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7CisJcHJpdi0+aW9jdGxfY291bnQgPSAwOworCS8qIGZvciBjb21wYXRpYmlsaXR5IHJvb3QgaXMgYWx3YXlzIGF1dGhlbnRpY2F0ZWQgKi8KKwlwcml2LT5hdXRoZW50aWNhdGVkID0gY2FwYWJsZShDQVBfU1lTX0FETUlOKTsKKwlwcml2LT5sb2NrX2NvdW50ID0gMDsKKworCUlOSVRfTElTVF9IRUFEKCZwcml2LT5saGVhZCk7CisKKwlpZiAoZGV2LT5kcml2ZXItPm9wZW4pIHsKKwkJcmV0ID0gZGV2LT5kcml2ZXItPm9wZW4oZGV2LCBwcml2KTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIG91dF9mcmVlOworCX0KKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAobGlzdF9lbXB0eSgmZGV2LT5maWxlbGlzdCkpCisJCXByaXYtPm1hc3RlciA9IDE7CisKKwlsaXN0X2FkZCgmcHJpdi0+bGhlYWQsICZkZXYtPmZpbGVsaXN0KTsKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworI2lmZGVmIF9fYWxwaGFfXworCS8qCisJICogRGVmYXVsdCB0aGUgaG9zZQorCSAqLworCWlmICghZGV2LT5ob3NlKSB7CisJCXN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2OworCQlwY2lfZGV2ID0gcGNpX2dldF9jbGFzcyhQQ0lfQ0xBU1NfRElTUExBWV9WR0EgPDwgOCwgTlVMTCk7CisJCWlmIChwY2lfZGV2KSB7CisJCQlkZXYtPmhvc2UgPSBwY2lfZGV2LT5zeXNkYXRhOworCQkJcGNpX2Rldl9wdXQocGNpX2Rldik7CisJCX0KKwkJaWYgKCFkZXYtPmhvc2UpIHsKKwkJCXN0cnVjdCBwY2lfYnVzICpiID0gcGNpX2J1c19iKHBjaV9yb290X2J1c2VzLm5leHQpOworCQkJaWYgKGIpCisJCQkJZGV2LT5ob3NlID0gYi0+c3lzZGF0YTsKKwkJfQorCX0KKyNlbmRpZgorCisJcmV0dXJuIDA7CisgICAgICBvdXRfZnJlZToKKwlkcm1fZnJlZShwcml2LCBzaXplb2YoKnByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCXJldHVybiByZXQ7Cit9CisKKy8qKiBOby1vcC4gKi8KK2ludCBkcm1fZmFzeW5jKGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIGludCBvbikKK3sKKwlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHByaXYtPm1pbm9yLT5kZXY7CisJaW50IHJldGNvZGU7CisKKwlEUk1fREVCVUcoImZkID0gJWQsIGRldmljZSA9IDB4JWx4XG4iLCBmZCwKKwkJICAobG9uZylvbGRfZW5jb2RlX2Rldihwcml2LT5taW5vci0+ZGV2aWNlKSk7CisJcmV0Y29kZSA9IGZhc3luY19oZWxwZXIoZmQsIGZpbHAsIG9uLCAmZGV2LT5idWZfYXN5bmMpOworCWlmIChyZXRjb2RlIDwgMCkKKwkJcmV0dXJuIHJldGNvZGU7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9mYXN5bmMpOworCisvKioKKyAqIFJlbGVhc2UgZmlsZS4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlCisgKiBccGFyYW0gZmlsZV9wcml2IERSTSBmaWxlIHByaXZhdGUuCisgKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgorICoKKyAqIElmIHRoZSBoYXJkd2FyZSBsb2NrIGlzIGhlbGQgdGhlbiBmcmVlIGl0LCBhbmQgdGFrZSBpdCBhZ2FpbiBmb3IgdGhlIGtlcm5lbAorICogY29udGV4dCBzaW5jZSBpdCdzIG5lY2Vzc2FyeSB0byByZWNsYWltIGJ1ZmZlcnMuIFVubGluayB0aGUgZmlsZSBwcml2YXRlCisgKiBkYXRhIGZyb20gaXRzIGxpc3QgYW5kIGZyZWUgaXQuIERlY3JlYXNlcyB0aGUgb3BlbiBjb3VudCBhbmQgaWYgaXQgcmVhY2hlcworICogemVybyBjYWxscyBkcm1fbGFzdGNsb3NlKCkuCisgKi8KK2ludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2OworCWludCByZXRjb2RlID0gMDsKKworCWxvY2tfa2VybmVsKCk7CisKKwlEUk1fREVCVUcoIm9wZW5fY291bnQgPSAlZFxuIiwgZGV2LT5vcGVuX2NvdW50KTsKKworCWlmIChkZXYtPmRyaXZlci0+cHJlY2xvc2UpCisJCWRldi0+ZHJpdmVyLT5wcmVjbG9zZShkZXYsIGZpbGVfcHJpdik7CisKKwkvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCSAqIEJlZ2luIGlubGluZSBkcm1fcmVsZWFzZQorCSAqLworCisJRFJNX0RFQlVHKCJwaWQgPSAlZCwgZGV2aWNlID0gMHglbHgsIG9wZW5fY291bnQgPSAlZFxuIiwKKwkJICB0YXNrX3BpZF9ucihjdXJyZW50KSwKKwkJICAobG9uZylvbGRfZW5jb2RlX2RldihmaWxlX3ByaXYtPm1pbm9yLT5kZXZpY2UpLAorCQkgIGRldi0+b3Blbl9jb3VudCk7CisKKwlpZiAoZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQgJiYgZGV2LT5sb2NrLmh3X2xvY2spIHsKKwkJaWYgKGRybV9pX2hhdmVfaHdfbG9jayhkZXYsIGZpbGVfcHJpdikpIHsKKwkJCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfbG9ja2VkKGRldiwgZmlsZV9wcml2KTsKKwkJfSBlbHNlIHsKKwkJCXVuc2lnbmVkIGxvbmcgZW5kdGltZSA9IGppZmZpZXMgKyAzICogRFJNX0haOworCQkJaW50IGxvY2tlZCA9IDA7CisKKwkJCWRybV9pZGxlbG9ja190YWtlKCZkZXYtPmxvY2spOworCisJCQkvKgorCQkJICogV2FpdCBmb3IgYSB3aGlsZS4KKwkJCSAqLworCisJCQlkb3sKKwkJCQlzcGluX2xvY2tfYmgoJmRldi0+bG9jay5zcGlubG9jayk7CisJCQkJbG9ja2VkID0gZGV2LT5sb2NrLmlkbGVfaGFzX2xvY2s7CisJCQkJc3Bpbl91bmxvY2tfYmgoJmRldi0+bG9jay5zcGlubG9jayk7CisJCQkJaWYgKGxvY2tlZCkKKwkJCQkJYnJlYWs7CisJCQkJc2NoZWR1bGUoKTsKKwkJCX0gd2hpbGUgKCF0aW1lX2FmdGVyX2VxKGppZmZpZXMsIGVuZHRpbWUpKTsKKworCQkJaWYgKCFsb2NrZWQpIHsKKwkJCQlEUk1fRVJST1IoInJlY2xhaW1fYnVmZmVyc19sb2NrZWQoKSBkZWFkbG9jay4gUGxlYXNlIHJld29yayB0aGlzXG4iCisJCQkJCSAgIlx0ZHJpdmVyIHRvIHVzZSByZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZCgpIGluc3RlYWQuXG4iCisJCQkJCSAgIlx0SSB3aWxsIGdvIG9uIHJlY2xhaW1pbmcgdGhlIGJ1ZmZlcnMgYW55d2F5LlxuIik7CisJCQl9CisKKwkJCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfbG9ja2VkKGRldiwgZmlsZV9wcml2KTsKKwkJCWRybV9pZGxlbG9ja19yZWxlYXNlKCZkZXYtPmxvY2spOworCQl9CisJfQorCisJaWYgKGRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZCAmJiBkZXYtPmxvY2suaHdfbG9jaykgeworCisJCWRybV9pZGxlbG9ja190YWtlKCZkZXYtPmxvY2spOworCQlkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2lkbGVsb2NrZWQoZGV2LCBmaWxlX3ByaXYpOworCQlkcm1faWRsZWxvY2tfcmVsZWFzZSgmZGV2LT5sb2NrKTsKKworCX0KKworCWlmIChkcm1faV9oYXZlX2h3X2xvY2soZGV2LCBmaWxlX3ByaXYpKSB7CisJCURSTV9ERUJVRygiRmlsZSAlcCByZWxlYXNlZCwgZnJlZWluZyBsb2NrIGZvciBjb250ZXh0ICVkXG4iLAorCQkJICBmaWxwLCBfRFJNX0xPQ0tJTkdfQ09OVEVYVChkZXYtPmxvY2suaHdfbG9jay0+bG9jaykpOworCisJCWRybV9sb2NrX2ZyZWUoJmRldi0+bG9jaywKKwkJCSAgICAgIF9EUk1fTE9DS0lOR19DT05URVhUKGRldi0+bG9jay5od19sb2NrLT5sb2NrKSk7CisJfQorCisKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9IQVZFX0RNQSkgJiYKKwkgICAgIWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfbG9ja2VkKSB7CisJCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnMoZGV2LCBmaWxlX3ByaXYpOworCX0KKworCWRybV9mYXN5bmMoLTEsIGZpbHAsIDApOworCisJbXV0ZXhfbG9jaygmZGV2LT5jdHhsaXN0X211dGV4KTsKKwlpZiAoIWxpc3RfZW1wdHkoJmRldi0+Y3R4bGlzdCkpIHsKKwkJc3RydWN0IGRybV9jdHhfbGlzdCAqcG9zLCAqbjsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCBuLCAmZGV2LT5jdHhsaXN0LCBoZWFkKSB7CisJCQlpZiAocG9zLT50YWcgPT0gZmlsZV9wcml2ICYmCisJCQkgICAgcG9zLT5oYW5kbGUgIT0gRFJNX0tFUk5FTF9DT05URVhUKSB7CisJCQkJaWYgKGRldi0+ZHJpdmVyLT5jb250ZXh0X2R0b3IpCisJCQkJCWRldi0+ZHJpdmVyLT5jb250ZXh0X2R0b3IoZGV2LAorCQkJCQkJCQkgIHBvcy0+aGFuZGxlKTsKKworCQkJCWRybV9jdHhiaXRtYXBfZnJlZShkZXYsIHBvcy0+aGFuZGxlKTsKKworCQkJCWxpc3RfZGVsKCZwb3MtPmhlYWQpOworCQkJCWRybV9mcmVlKHBvcywgc2l6ZW9mKCpwb3MpLCBEUk1fTUVNX0NUWExJU1QpOworCQkJCS0tZGV2LT5jdHhfY291bnQ7CisJCQl9CisJCX0KKwl9CisJbXV0ZXhfdW5sb2NrKCZkZXYtPmN0eGxpc3RfbXV0ZXgpOworCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChmaWxlX3ByaXYtPnJlbW92ZV9hdXRoX29uX2Nsb3NlID09IDEpIHsKKwkJc3RydWN0IGRybV9maWxlICp0ZW1wOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnkodGVtcCwgJmRldi0+ZmlsZWxpc3QsIGxoZWFkKQorCQkJdGVtcC0+YXV0aGVudGljYXRlZCA9IDA7CisJfQorCWxpc3RfZGVsKCZmaWxlX3ByaXYtPmxoZWFkKTsKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCWlmIChkZXYtPmRyaXZlci0+cG9zdGNsb3NlKQorCQlkZXYtPmRyaXZlci0+cG9zdGNsb3NlKGRldiwgZmlsZV9wcml2KTsKKwlkcm1fZnJlZShmaWxlX3ByaXYsIHNpemVvZigqZmlsZV9wcml2KSwgRFJNX01FTV9GSUxFUyk7CisKKwkvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCSAqIEVuZCBpbmxpbmUgZHJtX3JlbGVhc2UKKwkgKi8KKworCWF0b21pY19pbmMoJmRldi0+Y291bnRzW19EUk1fU1RBVF9DTE9TRVNdKTsKKwlzcGluX2xvY2soJmRldi0+Y291bnRfbG9jayk7CisJaWYgKCEtLWRldi0+b3Blbl9jb3VudCkgeworCQlpZiAoYXRvbWljX3JlYWQoJmRldi0+aW9jdGxfY291bnQpIHx8IGRldi0+YmxvY2tlZCkgeworCQkJRFJNX0VSUk9SKCJEZXZpY2UgYnVzeTogJWQgJWRcbiIsCisJCQkJICBhdG9taWNfcmVhZCgmZGV2LT5pb2N0bF9jb3VudCksIGRldi0+YmxvY2tlZCk7CisJCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwkJCXVubG9ja19rZXJuZWwoKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwkJc3Bpbl91bmxvY2soJmRldi0+Y291bnRfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKKwkJcmV0dXJuIGRybV9sYXN0Y2xvc2UoZGV2KTsKKwl9CisJc3Bpbl91bmxvY2soJmRldi0+Y291bnRfbG9jayk7CisKKwl1bmxvY2tfa2VybmVsKCk7CisKKwlyZXR1cm4gcmV0Y29kZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3JlbGVhc2UpOworCisvKiogTm8tb3AuICovCit1bnNpZ25lZCBpbnQgZHJtX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCkKK3sKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3BvbGwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1faGFzaHRhYi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9oYXNodGFiLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2hhc2h0YWIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9oYXNodGFiLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2lvYzMyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jMzIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1faW9jdGwuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2lycS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9sb2NrLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fbG9jay5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWVtb3J5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE3NzAxMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWVtb3J5LmMKQEAgLTAsMCArMSwxODYgQEAKKy8qKgorICogXGZpbGUgZHJtX21lbW9yeS5jCisgKiBNZW1vcnkgbWFuYWdlbWVudCB3cmFwcGVycyBmb3IgRFJNCisgKgorICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KKyAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKy8qCisgKiBDcmVhdGVkOiBUaHUgRmViICA0IDE0OjAwOjM0IDE5OTkgYnkgZmFpdGhAdmFsaW51eC5jb20KKyAqCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisjaW5jbHVkZSAiZHJtUC5oIgorCisjaWZkZWYgREVCVUdfTUVNT1JZCisjaW5jbHVkZSAiZHJtX21lbW9yeV9kZWJ1Zy5oIgorI2Vsc2UKKworLyoqIE5vLW9wLiAqLwordm9pZCBkcm1fbWVtX2luaXQodm9pZCkKK3sKK30KKworLyoqCisgKiBDYWxsZWQgd2hlbiAiL3Byb2MvZHJpLyVkZXYlL21lbSIgaXMgcmVhZC4KKyAqCisgKiBccGFyYW0gYnVmIG91dHB1dCBidWZmZXIuCisgKiBccGFyYW0gc3RhcnQgc3RhcnQgb2Ygb3V0cHV0IGRhdGEuCisgKiBccGFyYW0gb2Zmc2V0IHJlcXVlc3RlZCBzdGFydCBvZmZzZXQuCisgKiBccGFyYW0gbGVuIHJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMuCisgKiBccGFyYW0gZW9mIHdoZXRoZXIgdGhlcmUgaXMgbm8gbW9yZSBkYXRhIHRvIHJldHVybi4KKyAqIFxwYXJhbSBkYXRhIHByaXZhdGUgZGF0YS4KKyAqIFxyZXR1cm4gbnVtYmVyIG9mIHdyaXR0ZW4gYnl0ZXMuCisgKgorICogTm8tb3AuCisgKi8KK2ludCBkcm1fbWVtX2luZm8oY2hhciAqYnVmLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZnNldCwKKwkJIGludCBsZW4sIGludCAqZW9mLCB2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCisvKiogV3JhcHBlciBhcm91bmQga21hbGxvYygpIGFuZCBrZnJlZSgpICovCit2b2lkICpkcm1fcmVhbGxvYyh2b2lkICpvbGRwdCwgc2l6ZV90IG9sZHNpemUsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKK3sKKwl2b2lkICpwdDsKKworCWlmICghKHB0ID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKSkpCisJCXJldHVybiBOVUxMOworCWlmIChvbGRwdCAmJiBvbGRzaXplKSB7CisJCW1lbWNweShwdCwgb2xkcHQsIG9sZHNpemUpOworCQlrZnJlZShvbGRwdCk7CisJfQorCXJldHVybiBwdDsKK30KKworI2lmIF9fT1NfSEFTX0FHUAorc3RhdGljIHZvaWQgKmFncF9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJdW5zaWduZWQgbG9uZyAqcGh5c19hZGRyX21hcCwgaSwgbnVtX3BhZ2VzID0KKwkgICAgUEFHRV9BTElHTihzaXplKSAvIFBBR0VfU0laRTsKKwlzdHJ1Y3QgZHJtX2FncF9tZW0gKmFncG1lbTsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VfbWFwOworCXZvaWQgKmFkZHI7CisKKwlzaXplID0gUEFHRV9BTElHTihzaXplKTsKKworI2lmZGVmIF9fYWxwaGFfXworCW9mZnNldCAtPSBkZXYtPmhvc2UtPm1lbV9zcGFjZS0+c3RhcnQ7CisjZW5kaWYKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoYWdwbWVtLCAmZGV2LT5hZ3AtPm1lbW9yeSwgaGVhZCkKKwkJaWYgKGFncG1lbS0+Ym91bmQgPD0gb2Zmc2V0CisJCSAgICAmJiAoYWdwbWVtLT5ib3VuZCArIChhZ3BtZW0tPnBhZ2VzIDw8IFBBR0VfU0hJRlQpKSA+PQorCQkgICAgKG9mZnNldCArIHNpemUpKQorCQkJYnJlYWs7CisJaWYgKCFhZ3BtZW0pCisJCXJldHVybiBOVUxMOworCisJLyoKKwkgKiBPSywgd2UncmUgbWFwcGluZyBBR1Agc3BhY2Ugb24gYSBjaGlwc2V0L3BsYXRmb3JtIG9uIHdoaWNoIG1lbW9yeSBhY2Nlc3NlcyBieQorCSAqIHRoZSBDUFUgZG8gbm90IGdldCByZW1hcHBlZCBieSB0aGUgR0FSVC4gIFdlIGZpeCB0aGlzIGJ5IHVzaW5nIHRoZSBrZXJuZWwncworCSAqIHBhZ2UtdGFibGUgaW5zdGVhZCAodGhhdCdzIHByb2JhYmx5IGZhc3RlciBhbnlob3cuLi4pLgorCSAqLworCS8qIG5vdGU6IHVzZSB2bWFsbG9jKCkgYmVjYXVzZSBudW1fcGFnZXMgY291bGQgYmUgbGFyZ2UuLi4gKi8KKwlwYWdlX21hcCA9IHZtYWxsb2MobnVtX3BhZ2VzICogc2l6ZW9mKHN0cnVjdCBwYWdlICopKTsKKwlpZiAoIXBhZ2VfbWFwKQorCQlyZXR1cm4gTlVMTDsKKworCXBoeXNfYWRkcl9tYXAgPQorCSAgICBhZ3BtZW0tPm1lbW9yeS0+bWVtb3J5ICsgKG9mZnNldCAtIGFncG1lbS0+Ym91bmQpIC8gUEFHRV9TSVpFOworCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7ICsraSkKKwkJcGFnZV9tYXBbaV0gPSBwZm5fdG9fcGFnZShwaHlzX2FkZHJfbWFwW2ldID4+IFBBR0VfU0hJRlQpOworCWFkZHIgPSB2bWFwKHBhZ2VfbWFwLCBudW1fcGFnZXMsIFZNX0lPUkVNQVAsIFBBR0VfQUdQKTsKKwl2ZnJlZShwYWdlX21hcCk7CisKKwlyZXR1cm4gYWRkcjsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9hbGxvY2F0ZV9tZW1vcnkoKSAqLworRFJNX0FHUF9NRU0gKmRybV9hbGxvY19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBwYWdlcywgdTMyIHR5cGUpCit7CisJcmV0dXJuIGRybV9hZ3BfYWxsb2NhdGVfbWVtb3J5KGRldi0+YWdwLT5icmlkZ2UsIHBhZ2VzLCB0eXBlKTsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9mcmVlX21lbW9yeSgpICovCitpbnQgZHJtX2ZyZWVfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCBpbnQgcGFnZXMpCit7CisJcmV0dXJuIGRybV9hZ3BfZnJlZV9tZW1vcnkoaGFuZGxlKSA/IDAgOiAtRUlOVkFMOworfQorCisvKiogV3JhcHBlciBhcm91bmQgYWdwX2JpbmRfbWVtb3J5KCkgKi8KK2ludCBkcm1fYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIHVuc2lnbmVkIGludCBzdGFydCkKK3sKKwlyZXR1cm4gZHJtX2FncF9iaW5kX21lbW9yeShoYW5kbGUsIHN0YXJ0KTsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGFncF91bmJpbmRfbWVtb3J5KCkgKi8KK2ludCBkcm1fdW5iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSkKK3sKKwlyZXR1cm4gZHJtX2FncF91bmJpbmRfbWVtb3J5KGhhbmRsZSk7Cit9CisKKyNlbHNlICAvKiAgX19PU19IQVNfQUdQICAqLworc3RhdGljIGlubGluZSB2b2lkICphZ3BfcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCXJldHVybiBOVUxMOworfQorCisjZW5kaWYJCQkJLyogYWdwICovCisKKyNlbmRpZgkJCQkvKiBkZWJ1Z19tZW1vcnkgKi8KKwordm9pZCBkcm1fY29yZV9pb3JlbWFwKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJgorCSAgICBkZXYtPmFncCAmJiBkZXYtPmFncC0+Y2FudF91c2VfYXBlcnR1cmUgJiYgbWFwLT50eXBlID09IF9EUk1fQUdQKQorCQltYXAtPmhhbmRsZSA9IGFncF9yZW1hcChtYXAtPm9mZnNldCwgbWFwLT5zaXplLCBkZXYpOworCWVsc2UKKwkJbWFwLT5oYW5kbGUgPSBpb3JlbWFwKG1hcC0+b2Zmc2V0LCBtYXAtPnNpemUpOworfQorRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwKTsKKwordm9pZCBkcm1fY29yZV9pb3JlbWFwX3djKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJbWFwLT5oYW5kbGUgPSBpb3JlbWFwX3djKG1hcC0+b2Zmc2V0LCBtYXAtPnNpemUpOworfQorRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwX3djKTsKK3ZvaWQgZHJtX2NvcmVfaW9yZW1hcGZyZWUoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpZiAoIW1hcC0+aGFuZGxlIHx8ICFtYXAtPnNpemUpCisJCXJldHVybjsKKworCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKKwkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKKwkJdnVubWFwKG1hcC0+aGFuZGxlKTsKKwllbHNlCisJCWlvdW5tYXAobWFwLT5oYW5kbGUpOworfQorRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwZnJlZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tbS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9tbS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wY2kuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fcGNpLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGNpLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3Byb2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9wcm9jLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYy5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zY2F0dGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NjYXR0ZXIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc2NhdHRlci5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjYXR0ZXIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc21hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zbWFuLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3NtYW4uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9zbWFuLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3N0dWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3R1Yi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zdHViLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3R1Yi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zeXNmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zeXNmcy5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZtLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3ZtLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fdm0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k4MTAvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mzg0NGVjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCitpODEwLXkgOj0gaTgxMF9kcnYubyBpODEwX2RtYS5vCisKK29iai0kKENPTkZJR19EUk1fSTgxMCkJKz0gaTgxMC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MTBfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2RtYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MTBfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODEwX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODEwX2Rydi5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTgzMC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NDJlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9NYWtlZmlsZQpAQCAtMCwwICsxLDggQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK2k4MzAteSA6PSBpODMwX2Rydi5vIGk4MzBfZG1hLm8gaTgzMF9pcnEubworCitvYmotJChDT05GSUdfRFJNX0k4MzApICs9IGk4MzAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgzMF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgzMF9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2lycS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZTYwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCitpOTE1LXkgOj0gaTkxNV9kcnYubyBpOTE1X2RtYS5vIGk5MTVfaXJxLm8gaTkxNV9tZW0ubworCitpOTE1LSQoQ09ORklHX0NPTVBBVCkgICArPSBpOTE1X2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYWVkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0wLDAgKzEsNjA1IEBACisvKiBpOTE1X2Rydi5jIC0tIGk4MzAsaTg0NSxpODU1LGk4NjUsaTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCisgKi8KKy8qCisgKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJpOTE1X2RybS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKyNpbmNsdWRlICJkcm1fcGNpaWRzLmgiCisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKKwlpOTE1X1BDSV9JRFMKK307CisKK2VudW0gcGlwZSB7CisgICAgUElQRV9BID0gMCwKKyAgICBQSVBFX0IsCit9OworCitzdGF0aWMgYm9vbCBpOTE1X3BpcGVfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJaWYgKHBpcGUgPT0gUElQRV9BKQorCQlyZXR1cm4gKEk5MTVfUkVBRChEUExMX0EpICYgRFBMTF9WQ09fRU5BQkxFKTsKKwllbHNlCisJCXJldHVybiAoSTkxNV9SRUFEKERQTExfQikgJiBEUExMX1ZDT19FTkFCTEUpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3NhdmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKKwl1MzIgKmFycmF5OworCWludCBpOworCisJaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQorCQlyZXR1cm47CisKKwlpZiAocGlwZSA9PSBQSVBFX0EpCisJCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOworCWVsc2UKKwkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7CisKKwlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJYXJyYXlbaV0gPSBJOTE1X1JFQUQocmVnICsgKGkgPDwgMikpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3Jlc3RvcmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKKwl1MzIgKmFycmF5OworCWludCBpOworCisJaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQorCQlyZXR1cm47CisKKwlpZiAocGlwZSA9PSBQSVBFX0EpCisJCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOworCWVsc2UKKwkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7CisKKwlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJSTkxNV9XUklURShyZWcgKyAoaSA8PCAyKSwgYXJyYXlbaV0pOworfQorCitzdGF0aWMgdTggaTkxNV9yZWFkX2luZGV4ZWQodTE2IGluZGV4X3BvcnQsIHUxNiBkYXRhX3BvcnQsIHU4IHJlZykKK3sKKwlvdXRiKHJlZywgaW5kZXhfcG9ydCk7CisJcmV0dXJuIGluYihkYXRhX3BvcnQpOworfQorCitzdGF0aWMgdTggaTkxNV9yZWFkX2FyKHUxNiBzdDAxLCB1OCByZWcsIHUxNiBwYWxldHRlX2VuYWJsZSkKK3sKKwlpbmIoc3QwMSk7CisJb3V0YihwYWxldHRlX2VuYWJsZSB8IHJlZywgVkdBX0FSX0lOREVYKTsKKwlyZXR1cm4gaW5iKFZHQV9BUl9EQVRBX1JFQUQpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3dyaXRlX2FyKHU4IHN0MDEsIHU4IHJlZywgdTggdmFsLCB1MTYgcGFsZXR0ZV9lbmFibGUpCit7CisJaW5iKHN0MDEpOworCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7CisJb3V0Yih2YWwsIFZHQV9BUl9EQVRBX1dSSVRFKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV93cml0ZV9pbmRleGVkKHUxNiBpbmRleF9wb3J0LCB1MTYgZGF0YV9wb3J0LCB1OCByZWcsIHU4IHZhbCkKK3sKKwlvdXRiKHJlZywgaW5kZXhfcG9ydCk7CisJb3V0Yih2YWwsIGRhdGFfcG9ydCk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfc2F2ZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKKworCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLworCWRldl9wcml2LT5zYXZlREFDTUFTSyA9IGluYihWR0FfREFDTUFTSyk7CisJLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLworCW91dGIoMCwgVkdBX0RBQ1JYKTsKKwkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KKwlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZURBQ0RBVEFbaV0gPSBpbmIoVkdBX0RBQ0RBVEEpOworCisJLyogTVNSIGJpdHMgKi8KKwlkZXZfcHJpdi0+c2F2ZU1TUiA9IGluYihWR0FfTVNSX1JFQUQpOworCWlmIChkZXZfcHJpdi0+c2F2ZU1TUiAmIFZHQV9NU1JfQ0dBX01PREUpIHsKKwkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOworCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfQ0dBOworCQlzdDAxID0gVkdBX1NUMDFfQ0dBOworCX0gZWxzZSB7CisJCWNyX2luZGV4ID0gVkdBX0NSX0lOREVYX01EQTsKKwkJY3JfZGF0YSA9IFZHQV9DUl9EQVRBX01EQTsKKwkJc3QwMSA9IFZHQV9TVDAxX01EQTsKKwl9CisKKwkvKiBDUlQgY29udHJvbGxlciByZWdzICovCisJaTkxNV93cml0ZV9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCAweDExLAorCQkJICAgaTkxNV9yZWFkX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEpICYKKwkJCSAgICh+MHg4MCkpOworCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZUNSW2ldID0KKwkJCWk5MTVfcmVhZF9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCBpKTsKKwkvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHVybiBvZmYgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KKwlkZXZfcHJpdi0+c2F2ZUNSWzB4MTFdICY9IH4weDgwOworCisJLyogQXR0cmlidXRlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCisJaW5iKHN0MDEpOworCWRldl9wcml2LT5zYXZlQVJfSU5ERVggPSBpbmIoVkdBX0FSX0lOREVYKTsKKwlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKKwkJZGV2X3ByaXYtPnNhdmVBUltpXSA9IGk5MTVfcmVhZF9hcihzdDAxLCBpLCAwKTsKKwlpbmIoc3QwMSk7CisJb3V0YihkZXZfcHJpdi0+c2F2ZUFSX0lOREVYLCBWR0FfQVJfSU5ERVgpOworCWluYihzdDAxKTsKKworCS8qIEdyYXBoaWNzIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCisJZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKwkJZGV2X3ByaXYtPnNhdmVHUltpXSA9CisJCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCBpKTsKKworCWRldl9wcml2LT5zYXZlR1JbMHgxMF0gPQorCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDEwKTsKKwlkZXZfcHJpdi0+c2F2ZUdSWzB4MTFdID0KKwkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMSk7CisJZGV2X3ByaXYtPnNhdmVHUlsweDE4XSA9CisJCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgpOworCisJLyogU2VxdWVuY2VyIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCWRldl9wcml2LT5zYXZlU1JbaV0gPQorCQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfcmVzdG9yZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKKworCS8qIE1TUiBiaXRzICovCisJb3V0YihkZXZfcHJpdi0+c2F2ZU1TUiwgVkdBX01TUl9XUklURSk7CisJaWYgKGRldl9wcml2LT5zYXZlTVNSICYgVkdBX01TUl9DR0FfTU9ERSkgeworCQljcl9pbmRleCA9IFZHQV9DUl9JTkRFWF9DR0E7CisJCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9DR0E7CisJCXN0MDEgPSBWR0FfU1QwMV9DR0E7CisJfSBlbHNlIHsKKwkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfTURBOworCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfTURBOworCQlzdDAxID0gVkdBX1NUMDFfTURBOworCX0KKworCS8qIFNlcXVlbmNlciByZWdpc3RlcnMsIGRvbid0IHdyaXRlIFNSMDcgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKQorCQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSwKKwkJCQkgICBkZXZfcHJpdi0+c2F2ZVNSW2ldKTsKKworCS8qIENSVCBjb250cm9sbGVyIHJlZ3MgKi8KKwkvKiBFbmFibGUgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KKwlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEsIGRldl9wcml2LT5zYXZlQ1JbMHgxMV0pOworCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQorCQlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIGksIGRldl9wcml2LT5zYXZlQ1JbaV0pOworCisJLyogR3JhcGhpY3MgY29udHJvbGxlciByZWdzICovCisJZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKwkJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIGksCisJCQkJICAgZGV2X3ByaXYtPnNhdmVHUltpXSk7CisKKwlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMCwKKwkJCSAgIGRldl9wcml2LT5zYXZlR1JbMHgxMF0pOworCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDExLAorCQkJICAgZGV2X3ByaXYtPnNhdmVHUlsweDExXSk7CisJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgsCisJCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MThdKTsKKworCS8qIEF0dHJpYnV0ZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLworCWluYihzdDAxKTsKKwlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKKwkJaTkxNV93cml0ZV9hcihzdDAxLCBpLCBkZXZfcHJpdi0+c2F2ZUFSW2ldLCAwKTsKKwlpbmIoc3QwMSk7IC8qIHN3aXRjaCBiYWNrIHRvIGluZGV4IG1vZGUgKi8KKwlvdXRiKGRldl9wcml2LT5zYXZlQVJfSU5ERVggfCAweDIwLCBWR0FfQVJfSU5ERVgpOworCWluYihzdDAxKTsKKworCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLworCW91dGIoZGV2X3ByaXYtPnNhdmVEQUNNQVNLLCBWR0FfREFDTUFTSyk7CisJLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLworCW91dGIoMCwgVkdBX0RBQ1dYKTsKKwkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KKwlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQorCQlvdXRiKGRldl9wcml2LT5zYXZlREFDREFUQVtpXSwgVkdBX0RBQ0RBVEEpOworCit9CisKK3N0YXRpYyBpbnQgaTkxNV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCisJaWYgKCFkZXYgfHwgIWRldl9wcml2KSB7CisJCXByaW50ayhLRVJOX0VSUiAiZGV2OiAlcCwgZGV2X3ByaXY6ICVwXG4iLCBkZXYsIGRldl9wcml2KTsKKwkJcHJpbnRrKEtFUk5fRVJSICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlmIChzdGF0ZS5ldmVudCA9PSBQTV9FVkVOVF9QUkVUSEFXKQorCQlyZXR1cm4gMDsKKworCXBjaV9zYXZlX3N0YXRlKGRldi0+cGRldik7CisJcGNpX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsICZkZXZfcHJpdi0+c2F2ZUxCQik7CisKKwkvKiBEaXNwbGF5IGFyYml0cmF0aW9uIGNvbnRyb2wgKi8KKwlkZXZfcHJpdi0+c2F2ZURTUEFSQiA9IEk5MTVfUkVBRChEU1BBUkIpOworCisJLyogUGlwZSAmIHBsYW5lIEEgaW5mbyAqLworCWRldl9wcml2LT5zYXZlUElQRUFDT05GID0gSTkxNV9SRUFEKFBJUEVBQ09ORik7CisJZGV2X3ByaXYtPnNhdmVQSVBFQVNSQyA9IEk5MTVfUkVBRChQSVBFQVNSQyk7CisJZGV2X3ByaXYtPnNhdmVGUEEwID0gSTkxNV9SRUFEKEZQQTApOworCWRldl9wcml2LT5zYXZlRlBBMSA9IEk5MTVfUkVBRChGUEExKTsKKwlkZXZfcHJpdi0+c2F2ZURQTExfQSA9IEk5MTVfUkVBRChEUExMX0EpOworCWlmIChJU19JOTY1RyhkZXYpKQorCQlkZXZfcHJpdi0+c2F2ZURQTExfQV9NRCA9IEk5MTVfUkVBRChEUExMX0FfTUQpOworCWRldl9wcml2LT5zYXZlSFRPVEFMX0EgPSBJOTE1X1JFQUQoSFRPVEFMX0EpOworCWRldl9wcml2LT5zYXZlSEJMQU5LX0EgPSBJOTE1X1JFQUQoSEJMQU5LX0EpOworCWRldl9wcml2LT5zYXZlSFNZTkNfQSA9IEk5MTVfUkVBRChIU1lOQ19BKTsKKwlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9BID0gSTkxNV9SRUFEKFZUT1RBTF9BKTsKKwlkZXZfcHJpdi0+c2F2ZVZCTEFOS19BID0gSTkxNV9SRUFEKFZCTEFOS19BKTsKKwlkZXZfcHJpdi0+c2F2ZVZTWU5DX0EgPSBJOTE1X1JFQUQoVlNZTkNfQSk7CisJZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKKworCWRldl9wcml2LT5zYXZlRFNQQUNOVFIgPSBJOTE1X1JFQUQoRFNQQUNOVFIpOworCWRldl9wcml2LT5zYXZlRFNQQVNUUklERSA9IEk5MTVfUkVBRChEU1BBU1RSSURFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEFTSVpFID0gSTkxNV9SRUFEKERTUEFTSVpFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEFQT1MgPSBJOTE1X1JFQUQoRFNQQVBPUyk7CisJZGV2X3ByaXYtPnNhdmVEU1BBQkFTRSA9IEk5MTVfUkVBRChEU1BBQkFTRSk7CisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJZGV2X3ByaXYtPnNhdmVEU1BBU1VSRiA9IEk5MTVfUkVBRChEU1BBU1VSRik7CisJCWRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYgPSBJOTE1X1JFQUQoRFNQQVRJTEVPRkYpOworCX0KKwlpOTE1X3NhdmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7CisJZGV2X3ByaXYtPnNhdmVQSVBFQVNUQVQgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQVNUQVQpOworCisJLyogUGlwZSAmIHBsYW5lIEIgaW5mbyAqLworCWRldl9wcml2LT5zYXZlUElQRUJDT05GID0gSTkxNV9SRUFEKFBJUEVCQ09ORik7CisJZGV2X3ByaXYtPnNhdmVQSVBFQlNSQyA9IEk5MTVfUkVBRChQSVBFQlNSQyk7CisJZGV2X3ByaXYtPnNhdmVGUEIwID0gSTkxNV9SRUFEKEZQQjApOworCWRldl9wcml2LT5zYXZlRlBCMSA9IEk5MTVfUkVBRChGUEIxKTsKKwlkZXZfcHJpdi0+c2F2ZURQTExfQiA9IEk5MTVfUkVBRChEUExMX0IpOworCWlmIChJU19JOTY1RyhkZXYpKQorCQlkZXZfcHJpdi0+c2F2ZURQTExfQl9NRCA9IEk5MTVfUkVBRChEUExMX0JfTUQpOworCWRldl9wcml2LT5zYXZlSFRPVEFMX0IgPSBJOTE1X1JFQUQoSFRPVEFMX0IpOworCWRldl9wcml2LT5zYXZlSEJMQU5LX0IgPSBJOTE1X1JFQUQoSEJMQU5LX0IpOworCWRldl9wcml2LT5zYXZlSFNZTkNfQiA9IEk5MTVfUkVBRChIU1lOQ19CKTsKKwlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9CID0gSTkxNV9SRUFEKFZUT1RBTF9CKTsKKwlkZXZfcHJpdi0+c2F2ZVZCTEFOS19CID0gSTkxNV9SRUFEKFZCTEFOS19CKTsKKwlkZXZfcHJpdi0+c2F2ZVZTWU5DX0IgPSBJOTE1X1JFQUQoVlNZTkNfQik7CisJZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKKworCWRldl9wcml2LT5zYXZlRFNQQkNOVFIgPSBJOTE1X1JFQUQoRFNQQkNOVFIpOworCWRldl9wcml2LT5zYXZlRFNQQlNUUklERSA9IEk5MTVfUkVBRChEU1BCU1RSSURFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEJTSVpFID0gSTkxNV9SRUFEKERTUEJTSVpFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEJQT1MgPSBJOTE1X1JFQUQoRFNQQlBPUyk7CisJZGV2X3ByaXYtPnNhdmVEU1BCQkFTRSA9IEk5MTVfUkVBRChEU1BCQkFTRSk7CisJaWYgKElTX0k5NjVHTShkZXYpIHx8IElTX0lHRF9HTShkZXYpKSB7CisJCWRldl9wcml2LT5zYXZlRFNQQlNVUkYgPSBJOTE1X1JFQUQoRFNQQlNVUkYpOworCQlkZXZfcHJpdi0+c2F2ZURTUEJUSUxFT0ZGID0gSTkxNV9SRUFEKERTUEJUSUxFT0ZGKTsKKwl9CisJaTkxNV9zYXZlX3BhbGV0dGUoZGV2LCBQSVBFX0IpOworCWRldl9wcml2LT5zYXZlUElQRUJTVEFUID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUJTVEFUKTsKKworCS8qIENSVCBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlQURQQSA9IEk5MTVfUkVBRChBRFBBKTsKKworCS8qIExWRFMgc3RhdGUgKi8KKwlkZXZfcHJpdi0+c2F2ZVBQX0NPTlRST0wgPSBJOTE1X1JFQUQoUFBfQ09OVFJPTCk7CisJZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MgPSBJOTE1X1JFQUQoUEZJVF9QR01fUkFUSU9TKTsKKwlkZXZfcHJpdi0+c2F2ZUJMQ19QV01fQ1RMID0gSTkxNV9SRUFEKEJMQ19QV01fQ1RMKTsKKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTDIgPSBJOTE1X1JFQUQoQkxDX1BXTV9DVEwyKTsKKwlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKKwkJZGV2X3ByaXYtPnNhdmVMVkRTID0gSTkxNV9SRUFEKExWRFMpOworCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikpCisJCWRldl9wcml2LT5zYXZlUEZJVF9DT05UUk9MID0gSTkxNV9SRUFEKFBGSVRfQ09OVFJPTCk7CisJZGV2X3ByaXYtPnNhdmVMVkRTUFBfT04gPSBJOTE1X1JFQUQoTFZEU1BQX09OKTsKKwlkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PRkYgPSBJOTE1X1JFQUQoTFZEU1BQX09GRik7CisJZGV2X3ByaXYtPnNhdmVQUF9DWUNMRSA9IEk5MTVfUkVBRChQUF9DWUNMRSk7CisKKwkvKiBGSVhNRTogc2F2ZSBUViAmIFNEVk8gc3RhdGUgKi8KKworCS8qIEZCQyBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlRkJDX0NGQl9CQVNFID0gSTkxNV9SRUFEKEZCQ19DRkJfQkFTRSk7CisJZGV2X3ByaXYtPnNhdmVGQkNfTExfQkFTRSA9IEk5MTVfUkVBRChGQkNfTExfQkFTRSk7CisJZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTDIgPSBJOTE1X1JFQUQoRkJDX0NPTlRST0wyKTsKKwlkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MID0gSTkxNV9SRUFEKEZCQ19DT05UUk9MKTsKKworCS8qIEludGVycnVwdCBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlSUlSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOworCWRldl9wcml2LT5zYXZlSUVSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0VOQUJMRV9SKTsKKwlkZXZfcHJpdi0+c2F2ZUlNUiA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9NQVNLX1IpOworCisJLyogVkdBIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMCA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMCk7CisJZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMSA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMSk7CisJZGV2X3ByaXYtPnNhdmVWQ0xLX1BPU1RfRElWID0gSTkxNV9SRUFEKFZDTEtfUE9TVF9ESVYpOworCWRldl9wcml2LT5zYXZlVkdBQ05UUkwgPSBJOTE1X1JFQUQoVkdBQ05UUkwpOworCisJLyogQ2xvY2sgZ2F0aW5nIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVEX1NUQVRFID0gSTkxNV9SRUFEKERfU1RBVEUpOworCWRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCA9IEk5MTVfUkVBRChEU1BDTEtfR0FURV9EKTsKKworCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KKwlkZXZfcHJpdi0+c2F2ZUNBQ0hFX01PREVfMCA9IEk5MTVfUkVBRChDQUNIRV9NT0RFXzApOworCisJLyogTWVtb3J5IEFyYml0cmF0aW9uIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVNSV9BUkJfU1RBVEUgPSBJOTE1X1JFQUQoTUlfQVJCX1NUQVRFKTsKKworCS8qIFNjcmF0Y2ggc3BhY2UgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlkZXZfcHJpdi0+c2F2ZVNXRjBbaV0gPSBJOTE1X1JFQUQoU1dGMCArIChpIDw8IDIpKTsKKwkJZGV2X3ByaXYtPnNhdmVTV0YxW2ldID0gSTkxNV9SRUFEKFNXRjEwICsgKGkgPDwgMikpOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZVNXRjJbaV0gPSBJOTE1X1JFQUQoU1dGMzAgKyAoaSA8PCAyKSk7CisKKwlpOTE1X3NhdmVfdmdhKGRldik7CisKKwlpZiAoc3RhdGUuZXZlbnQgPT0gUE1fRVZFTlRfU1VTUEVORCkgeworCQkvKiBTaHV0IGRvd24gdGhlIGRldmljZSAqLworCQlwY2lfZGlzYWJsZV9kZXZpY2UoZGV2LT5wZGV2KTsKKwkJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EM2hvdCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCisJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EMCk7CisJcGNpX3Jlc3RvcmVfc3RhdGUoZGV2LT5wZGV2KTsKKwlpZiAocGNpX2VuYWJsZV9kZXZpY2UoZGV2LT5wZGV2KSkKKwkJcmV0dXJuIC0xOworCXBjaV9zZXRfbWFzdGVyKGRldi0+cGRldik7CisKKwlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsIGRldl9wcml2LT5zYXZlTEJCKTsKKworCUk5MTVfV1JJVEUoRFNQQVJCLCBkZXZfcHJpdi0+c2F2ZURTUEFSQik7CisKKwkvKiBQaXBlICYgcGxhbmUgQSBpbmZvICovCisJLyogUHJpbWUgdGhlIGNsb2NrICovCisJaWYgKGRldl9wcml2LT5zYXZlRFBMTF9BICYgRFBMTF9WQ09fRU5BQkxFKSB7CisJCUk5MTVfV1JJVEUoRFBMTF9BLCBkZXZfcHJpdi0+c2F2ZURQTExfQSAmCisJCQkgICB+RFBMTF9WQ09fRU5BQkxFKTsKKwkJdWRlbGF5KDE1MCk7CisJfQorCUk5MTVfV1JJVEUoRlBBMCwgZGV2X3ByaXYtPnNhdmVGUEEwKTsKKwlJOTE1X1dSSVRFKEZQQTEsIGRldl9wcml2LT5zYXZlRlBBMSk7CisJLyogQWN0dWFsbHkgZW5hYmxlIGl0ICovCisJSTkxNV9XUklURShEUExMX0EsIGRldl9wcml2LT5zYXZlRFBMTF9BKTsKKwl1ZGVsYXkoMTUwKTsKKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJSTkxNV9XUklURShEUExMX0FfTUQsIGRldl9wcml2LT5zYXZlRFBMTF9BX01EKTsKKwl1ZGVsYXkoMTUwKTsKKworCS8qIFJlc3RvcmUgbW9kZSAqLworCUk5MTVfV1JJVEUoSFRPVEFMX0EsIGRldl9wcml2LT5zYXZlSFRPVEFMX0EpOworCUk5MTVfV1JJVEUoSEJMQU5LX0EsIGRldl9wcml2LT5zYXZlSEJMQU5LX0EpOworCUk5MTVfV1JJVEUoSFNZTkNfQSwgZGV2X3ByaXYtPnNhdmVIU1lOQ19BKTsKKwlJOTE1X1dSSVRFKFZUT1RBTF9BLCBkZXZfcHJpdi0+c2F2ZVZUT1RBTF9BKTsKKwlJOTE1X1dSSVRFKFZCTEFOS19BLCBkZXZfcHJpdi0+c2F2ZVZCTEFOS19BKTsKKwlJOTE1X1dSSVRFKFZTWU5DX0EsIGRldl9wcml2LT5zYXZlVlNZTkNfQSk7CisJSTkxNV9XUklURShCQ0xSUEFUX0EsIGRldl9wcml2LT5zYXZlQkNMUlBBVF9BKTsKKworCS8qIFJlc3RvcmUgcGxhbmUgaW5mbyAqLworCUk5MTVfV1JJVEUoRFNQQVNJWkUsIGRldl9wcml2LT5zYXZlRFNQQVNJWkUpOworCUk5MTVfV1JJVEUoRFNQQVBPUywgZGV2X3ByaXYtPnNhdmVEU1BBUE9TKTsKKwlJOTE1X1dSSVRFKFBJUEVBU1JDLCBkZXZfcHJpdi0+c2F2ZVBJUEVBU1JDKTsKKwlJOTE1X1dSSVRFKERTUEFCQVNFLCBkZXZfcHJpdi0+c2F2ZURTUEFCQVNFKTsKKwlJOTE1X1dSSVRFKERTUEFTVFJJREUsIGRldl9wcml2LT5zYXZlRFNQQVNUUklERSk7CisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJSTkxNV9XUklURShEU1BBU1VSRiwgZGV2X3ByaXYtPnNhdmVEU1BBU1VSRik7CisJCUk5MTVfV1JJVEUoRFNQQVRJTEVPRkYsIGRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYpOworCX0KKworCUk5MTVfV1JJVEUoUElQRUFDT05GLCBkZXZfcHJpdi0+c2F2ZVBJUEVBQ09ORik7CisKKwlpOTE1X3Jlc3RvcmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7CisJLyogRW5hYmxlIHRoZSBwbGFuZSAqLworCUk5MTVfV1JJVEUoRFNQQUNOVFIsIGRldl9wcml2LT5zYXZlRFNQQUNOVFIpOworCUk5MTVfV1JJVEUoRFNQQUJBU0UsIEk5MTVfUkVBRChEU1BBQkFTRSkpOworCisJLyogUGlwZSAmIHBsYW5lIEIgaW5mbyAqLworCWlmIChkZXZfcHJpdi0+c2F2ZURQTExfQiAmIERQTExfVkNPX0VOQUJMRSkgeworCQlJOTE1X1dSSVRFKERQTExfQiwgZGV2X3ByaXYtPnNhdmVEUExMX0IgJgorCQkJICAgfkRQTExfVkNPX0VOQUJMRSk7CisJCXVkZWxheSgxNTApOworCX0KKwlJOTE1X1dSSVRFKEZQQjAsIGRldl9wcml2LT5zYXZlRlBCMCk7CisJSTkxNV9XUklURShGUEIxLCBkZXZfcHJpdi0+c2F2ZUZQQjEpOworCS8qIEFjdHVhbGx5IGVuYWJsZSBpdCAqLworCUk5MTVfV1JJVEUoRFBMTF9CLCBkZXZfcHJpdi0+c2F2ZURQTExfQik7CisJdWRlbGF5KDE1MCk7CisJaWYgKElTX0k5NjVHKGRldikpCisJCUk5MTVfV1JJVEUoRFBMTF9CX01ELCBkZXZfcHJpdi0+c2F2ZURQTExfQl9NRCk7CisJdWRlbGF5KDE1MCk7CisKKwkvKiBSZXN0b3JlIG1vZGUgKi8KKwlJOTE1X1dSSVRFKEhUT1RBTF9CLCBkZXZfcHJpdi0+c2F2ZUhUT1RBTF9CKTsKKwlJOTE1X1dSSVRFKEhCTEFOS19CLCBkZXZfcHJpdi0+c2F2ZUhCTEFOS19CKTsKKwlJOTE1X1dSSVRFKEhTWU5DX0IsIGRldl9wcml2LT5zYXZlSFNZTkNfQik7CisJSTkxNV9XUklURShWVE9UQUxfQiwgZGV2X3ByaXYtPnNhdmVWVE9UQUxfQik7CisJSTkxNV9XUklURShWQkxBTktfQiwgZGV2X3ByaXYtPnNhdmVWQkxBTktfQik7CisJSTkxNV9XUklURShWU1lOQ19CLCBkZXZfcHJpdi0+c2F2ZVZTWU5DX0IpOworCUk5MTVfV1JJVEUoQkNMUlBBVF9CLCBkZXZfcHJpdi0+c2F2ZUJDTFJQQVRfQik7CisKKwkvKiBSZXN0b3JlIHBsYW5lIGluZm8gKi8KKwlJOTE1X1dSSVRFKERTUEJTSVpFLCBkZXZfcHJpdi0+c2F2ZURTUEJTSVpFKTsKKwlJOTE1X1dSSVRFKERTUEJQT1MsIGRldl9wcml2LT5zYXZlRFNQQlBPUyk7CisJSTkxNV9XUklURShQSVBFQlNSQywgZGV2X3ByaXYtPnNhdmVQSVBFQlNSQyk7CisJSTkxNV9XUklURShEU1BCQkFTRSwgZGV2X3ByaXYtPnNhdmVEU1BCQkFTRSk7CisJSTkxNV9XUklURShEU1BCU1RSSURFLCBkZXZfcHJpdi0+c2F2ZURTUEJTVFJJREUpOworCWlmIChJU19JOTY1RyhkZXYpKSB7CisJCUk5MTVfV1JJVEUoRFNQQlNVUkYsIGRldl9wcml2LT5zYXZlRFNQQlNVUkYpOworCQlJOTE1X1dSSVRFKERTUEJUSUxFT0ZGLCBkZXZfcHJpdi0+c2F2ZURTUEJUSUxFT0ZGKTsKKwl9CisKKwlJOTE1X1dSSVRFKFBJUEVCQ09ORiwgZGV2X3ByaXYtPnNhdmVQSVBFQkNPTkYpOworCisJaTkxNV9yZXN0b3JlX3BhbGV0dGUoZGV2LCBQSVBFX0IpOworCS8qIEVuYWJsZSB0aGUgcGxhbmUgKi8KKwlJOTE1X1dSSVRFKERTUEJDTlRSLCBkZXZfcHJpdi0+c2F2ZURTUEJDTlRSKTsKKwlJOTE1X1dSSVRFKERTUEJCQVNFLCBJOTE1X1JFQUQoRFNQQkJBU0UpKTsKKworCS8qIENSVCBzdGF0ZSAqLworCUk5MTVfV1JJVEUoQURQQSwgZGV2X3ByaXYtPnNhdmVBRFBBKTsKKworCS8qIExWRFMgc3RhdGUgKi8KKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJSTkxNV9XUklURShCTENfUFdNX0NUTDIsIGRldl9wcml2LT5zYXZlQkxDX1BXTV9DVEwyKTsKKwlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKKwkJSTkxNV9XUklURShMVkRTLCBkZXZfcHJpdi0+c2F2ZUxWRFMpOworCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikpCisJCUk5MTVfV1JJVEUoUEZJVF9DT05UUk9MLCBkZXZfcHJpdi0+c2F2ZVBGSVRfQ09OVFJPTCk7CisKKwlJOTE1X1dSSVRFKFBGSVRfUEdNX1JBVElPUywgZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MpOworCUk5MTVfV1JJVEUoQkxDX1BXTV9DVEwsIGRldl9wcml2LT5zYXZlQkxDX1BXTV9DVEwpOworCUk5MTVfV1JJVEUoTFZEU1BQX09OLCBkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PTik7CisJSTkxNV9XUklURShMVkRTUFBfT0ZGLCBkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PRkYpOworCUk5MTVfV1JJVEUoUFBfQ1lDTEUsIGRldl9wcml2LT5zYXZlUFBfQ1lDTEUpOworCUk5MTVfV1JJVEUoUFBfQ09OVFJPTCwgZGV2X3ByaXYtPnNhdmVQUF9DT05UUk9MKTsKKworCS8qIEZJWE1FOiByZXN0b3JlIFRWICYgU0RWTyBzdGF0ZSAqLworCisJLyogRkJDIGluZm8gKi8KKwlJOTE1X1dSSVRFKEZCQ19DRkJfQkFTRSwgZGV2X3ByaXYtPnNhdmVGQkNfQ0ZCX0JBU0UpOworCUk5MTVfV1JJVEUoRkJDX0xMX0JBU0UsIGRldl9wcml2LT5zYXZlRkJDX0xMX0JBU0UpOworCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wyLCBkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MMik7CisJSTkxNV9XUklURShGQkNfQ09OVFJPTCwgZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTCk7CisKKwkvKiBWR0Egc3RhdGUgKi8KKwlJOTE1X1dSSVRFKFZHQUNOVFJMLCBkZXZfcHJpdi0+c2F2ZVZHQUNOVFJMKTsKKwlJOTE1X1dSSVRFKFZDTEtfRElWSVNPUl9WR0EwLCBkZXZfcHJpdi0+c2F2ZVZDTEtfRElWSVNPUl9WR0EwKTsKKwlJOTE1X1dSSVRFKFZDTEtfRElWSVNPUl9WR0ExLCBkZXZfcHJpdi0+c2F2ZVZDTEtfRElWSVNPUl9WR0ExKTsKKwlJOTE1X1dSSVRFKFZDTEtfUE9TVF9ESVYsIGRldl9wcml2LT5zYXZlVkNMS19QT1NUX0RJVik7CisJdWRlbGF5KDE1MCk7CisKKwkvKiBDbG9jayBnYXRpbmcgc3RhdGUgKi8KKwlJOTE1X1dSSVRFIChEX1NUQVRFLCBkZXZfcHJpdi0+c2F2ZURfU1RBVEUpOworCUk5MTVfV1JJVEUgKERTUENMS19HQVRFX0QsIGRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCk7CisKKwkvKiBDYWNoZSBtb2RlIHN0YXRlICovCisJSTkxNV9XUklURSAoQ0FDSEVfTU9ERV8wLCBkZXZfcHJpdi0+c2F2ZUNBQ0hFX01PREVfMCB8IDB4ZmZmZjAwMDApOworCisJLyogTWVtb3J5IGFyYml0cmF0aW9uIHN0YXRlICovCisJSTkxNV9XUklURSAoTUlfQVJCX1NUQVRFLCBkZXZfcHJpdi0+c2F2ZU1JX0FSQl9TVEFURSB8IDB4ZmZmZjAwMDApOworCisJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKKwkJSTkxNV9XUklURShTV0YwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMFtpXSk7CisJCUk5MTVfV1JJVEUoU1dGMTAgKyAoaSA8PCAyKSwgZGV2X3ByaXYtPnNhdmVTV0YxW2krN10pOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorCQlJOTE1X1dSSVRFKFNXRjMwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMltpXSk7CisKKwlpOTE1X3Jlc3RvcmVfdmdhKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKKwkvKiBkb24ndCB1c2UgbXRycidzIGhlcmUsIHRoZSBYc2VydmVyIG9yIHVzZXIgc3BhY2UgYXBwIHNob3VsZAorCSAqIGRlYWwgd2l0aCB0aGVtIGZvciBpbnRlbCBoYXJkd2FyZS4KKwkgKi8KKwkuZHJpdmVyX2ZlYXR1cmVzID0KKwkgICAgRFJJVkVSX1VTRV9BR1AgfCBEUklWRVJfUkVRVUlSRV9BR1AgfCAvKiBEUklWRVJfVVNFX01UUlIgfCovCisJICAgIERSSVZFUl9IQVZFX0lSUSB8IERSSVZFUl9JUlFfU0hBUkVEIHwgRFJJVkVSX0lSUV9WQkwgfAorCSAgICBEUklWRVJfSVJRX1ZCTDIsCisJLmxvYWQgPSBpOTE1X2RyaXZlcl9sb2FkLAorCS51bmxvYWQgPSBpOTE1X2RyaXZlcl91bmxvYWQsCisJLmxhc3RjbG9zZSA9IGk5MTVfZHJpdmVyX2xhc3RjbG9zZSwKKwkucHJlY2xvc2UgPSBpOTE1X2RyaXZlcl9wcmVjbG9zZSwKKwkuc3VzcGVuZCA9IGk5MTVfc3VzcGVuZCwKKwkucmVzdW1lID0gaTkxNV9yZXN1bWUsCisJLmRldmljZV9pc19hZ3AgPSBpOTE1X2RyaXZlcl9kZXZpY2VfaXNfYWdwLAorCS52Ymxhbmtfd2FpdCA9IGk5MTVfZHJpdmVyX3ZibGFua193YWl0LAorCS52Ymxhbmtfd2FpdDIgPSBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdDIsCisJLmlycV9wcmVpbnN0YWxsID0gaTkxNV9kcml2ZXJfaXJxX3ByZWluc3RhbGwsCisJLmlycV9wb3N0aW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbCwKKwkuaXJxX3VuaW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV91bmluc3RhbGwsCisJLmlycV9oYW5kbGVyID0gaTkxNV9kcml2ZXJfaXJxX2hhbmRsZXIsCisJLnJlY2xhaW1fYnVmZmVycyA9IGRybV9jb3JlX3JlY2xhaW1fYnVmZmVycywKKwkuZ2V0X21hcF9vZnMgPSBkcm1fY29yZV9nZXRfbWFwX29mcywKKwkuZ2V0X3JlZ19vZnMgPSBkcm1fY29yZV9nZXRfcmVnX29mcywKKwkuaW9jdGxzID0gaTkxNV9pb2N0bHMsCisJLmZvcHMgPSB7CisJCSAub3duZXIgPSBUSElTX01PRFVMRSwKKwkJIC5vcGVuID0gZHJtX29wZW4sCisJCSAucmVsZWFzZSA9IGRybV9yZWxlYXNlLAorCQkgLmlvY3RsID0gZHJtX2lvY3RsLAorCQkgLm1tYXAgPSBkcm1fbW1hcCwKKwkJIC5wb2xsID0gZHJtX3BvbGwsCisJCSAuZmFzeW5jID0gZHJtX2Zhc3luYywKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisJCSAuY29tcGF0X2lvY3RsID0gaTkxNV9jb21wYXRfaW9jdGwsCisjZW5kaWYKKwl9LAorCisJLnBjaV9kcml2ZXIgPSB7CisJCSAubmFtZSA9IERSSVZFUl9OQU1FLAorCQkgLmlkX3RhYmxlID0gcGNpaWRsaXN0LAorCX0sCisKKwkubmFtZSA9IERSSVZFUl9OQU1FLAorCS5kZXNjID0gRFJJVkVSX0RFU0MsCisJLmRhdGUgPSBEUklWRVJfREFURSwKKwkubWFqb3IgPSBEUklWRVJfTUFKT1IsCisJLm1pbm9yID0gRFJJVkVSX01JTk9SLAorCS5wYXRjaGxldmVsID0gRFJJVkVSX1BBVENITEVWRUwsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpOTE1X2luaXQodm9pZCkKK3sKKwlkcml2ZXIubnVtX2lvY3RscyA9IGk5MTVfbWF4X2lvY3RsOworCXJldHVybiBkcm1faW5pdCgmZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGk5MTVfZXhpdCh2b2lkKQoreworCWRybV9leGl0KCZkcml2ZXIpOworfQorCittb2R1bGVfaW5pdChpOTE1X2luaXQpOworbW9kdWxlX2V4aXQoaTkxNV9leGl0KTsKKworTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CitNT0RVTEVfTElDRU5TRSgiR1BMIGFuZCBhZGRpdGlvbmFsIHJpZ2h0cyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczMjZkOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTAsMCArMSwxMTQyIEBACisvKiBpOTE1X2Rydi5oIC0tIFByaXZhdGUgaGVhZGVyIGZvciB0aGUgSTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCisgKi8KKy8qCisgKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBfSTkxNV9EUlZfSF8KKyNkZWZpbmUgX0k5MTVfRFJWX0hfCisKKy8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKKyAqLworCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJUdW5nc3RlbiBHcmFwaGljcywgSW5jLiIKKworI2RlZmluZSBEUklWRVJfTkFNRQkJImk5MTUiCisjZGVmaW5lIERSSVZFUl9ERVNDCQkiSW50ZWwgR3JhcGhpY3MiCisjZGVmaW5lIERSSVZFUl9EQVRFCQkiMjAwNjAxMTkiCisKKy8qIEludGVyZmFjZSBoaXN0b3J5OgorICoKKyAqIDEuMTogT3JpZ2luYWwuCisgKiAxLjI6IEFkZCBQb3dlciBNYW5hZ2VtZW50CisgKiAxLjM6IEFkZCB2Ymxhbmsgc3VwcG9ydAorICogMS40OiBGaXggY21kYnVmZmVyIHBhdGgsIGFkZCBoZWFwIGRlc3Ryb3kKKyAqIDEuNTogQWRkIHZibGFuayBwaXBlIGNvbmZpZ3VyYXRpb24KKyAqIDEuNjogLSBOZXcgaW9jdGwgZm9yIHNjaGVkdWxpbmcgYnVmZmVyIHN3YXBzIG9uIHZlcnRpY2FsIGJsYW5rCisgKiAgICAgIC0gU3VwcG9ydCB2ZXJ0aWNhbCBibGFuayBvbiBzZWNvbmRhcnkgZGlzcGxheSBwaXBlCisgKi8KKyNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCisjZGVmaW5lIERSSVZFUl9NSU5PUgkJNgorI2RlZmluZSBEUklWRVJfUEFUQ0hMRVZFTAkwCisKK3R5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9yaW5nX2J1ZmZlciB7CisJaW50IHRhaWxfbWFzazsKKwl1bnNpZ25lZCBsb25nIFN0YXJ0OworCXVuc2lnbmVkIGxvbmcgRW5kOworCXVuc2lnbmVkIGxvbmcgU2l6ZTsKKwl1OCAqdmlydHVhbF9zdGFydDsKKwlpbnQgaGVhZDsKKwlpbnQgdGFpbDsKKwlpbnQgc3BhY2U7CisJZHJtX2xvY2FsX21hcF90IG1hcDsKK30gZHJtX2k5MTVfcmluZ19idWZmZXJfdDsKKworc3RydWN0IG1lbV9ibG9jayB7CisJc3RydWN0IG1lbV9ibG9jayAqbmV4dDsKKwlzdHJ1Y3QgbWVtX2Jsb2NrICpwcmV2OworCWludCBzdGFydDsKKwlpbnQgc2l6ZTsKKwlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgLyogTlVMTDogZnJlZSwgLTE6IGhlYXAsIG90aGVyOiByZWFsIGZpbGVzICovCit9OworCit0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfdmJsX3N3YXAgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwlkcm1fZHJhd2FibGVfdCBkcndfaWQ7CisJdW5zaWduZWQgaW50IHBpcGU7CisJdW5zaWduZWQgaW50IHNlcXVlbmNlOworfSBkcm1faTkxNV92Ymxfc3dhcF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKKwlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOworCWRybV9sb2NhbF9tYXBfdCAqbW1pb19tYXA7CisKKwlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2OworCWRybV9pOTE1X3JpbmdfYnVmZmVyX3QgcmluZzsKKworCWRybV9kbWFfaGFuZGxlX3QgKnN0YXR1c19wYWdlX2RtYWg7CisJdm9pZCAqaHdfc3RhdHVzX3BhZ2U7CisJZG1hX2FkZHJfdCBkbWFfc3RhdHVzX3BhZ2U7CisJdW5zaWduZWQgbG9uZyBjb3VudGVyOworCXVuc2lnbmVkIGludCBzdGF0dXNfZ2Z4X2FkZHI7CisJZHJtX2xvY2FsX21hcF90IGh3c19tYXA7CisKKwl1bnNpZ25lZCBpbnQgY3BwOworCWludCBiYWNrX29mZnNldDsKKwlpbnQgZnJvbnRfb2Zmc2V0OworCWludCBjdXJyZW50X3BhZ2U7CisJaW50IHBhZ2VfZmxpcHBpbmc7CisJaW50IHVzZV9taV9iYXRjaGJ1ZmZlcl9zdGFydDsKKworCXdhaXRfcXVldWVfaGVhZF90IGlycV9xdWV1ZTsKKwlhdG9taWNfdCBpcnFfcmVjZWl2ZWQ7CisJYXRvbWljX3QgaXJxX2VtaXR0ZWQ7CisKKwlpbnQgdGV4X2xydV9sb2dfZ3JhbnVsYXJpdHk7CisJaW50IGFsbG93X2JhdGNoYnVmZmVyOworCXN0cnVjdCBtZW1fYmxvY2sgKmFncF9oZWFwOworCXVuc2lnbmVkIGludCBzcjAxLCBhZHBhLCBwcGNyLCBkdm9iLCBkdm9jLCBsdmRzOworCWludCB2YmxhbmtfcGlwZTsKKworCXNwaW5sb2NrX3Qgc3dhcHNfbG9jazsKKwlkcm1faTkxNV92Ymxfc3dhcF90IHZibF9zd2FwczsKKwl1bnNpZ25lZCBpbnQgc3dhcHNfcGVuZGluZzsKKworCS8qIFJlZ2lzdGVyIHN0YXRlICovCisJdTggc2F2ZUxCQjsKKwl1MzIgc2F2ZURTUEFDTlRSOworCXUzMiBzYXZlRFNQQkNOVFI7CisJdTMyIHNhdmVEU1BBUkI7CisJdTMyIHNhdmVQSVBFQUNPTkY7CisJdTMyIHNhdmVQSVBFQkNPTkY7CisJdTMyIHNhdmVQSVBFQVNSQzsKKwl1MzIgc2F2ZVBJUEVCU1JDOworCXUzMiBzYXZlRlBBMDsKKwl1MzIgc2F2ZUZQQTE7CisJdTMyIHNhdmVEUExMX0E7CisJdTMyIHNhdmVEUExMX0FfTUQ7CisJdTMyIHNhdmVIVE9UQUxfQTsKKwl1MzIgc2F2ZUhCTEFOS19BOworCXUzMiBzYXZlSFNZTkNfQTsKKwl1MzIgc2F2ZVZUT1RBTF9BOworCXUzMiBzYXZlVkJMQU5LX0E7CisJdTMyIHNhdmVWU1lOQ19BOworCXUzMiBzYXZlQkNMUlBBVF9BOworCXUzMiBzYXZlUElQRUFTVEFUOworCXUzMiBzYXZlRFNQQVNUUklERTsKKwl1MzIgc2F2ZURTUEFTSVpFOworCXUzMiBzYXZlRFNQQVBPUzsKKwl1MzIgc2F2ZURTUEFCQVNFOworCXUzMiBzYXZlRFNQQVNVUkY7CisJdTMyIHNhdmVEU1BBVElMRU9GRjsKKwl1MzIgc2F2ZVBGSVRfUEdNX1JBVElPUzsKKwl1MzIgc2F2ZUJMQ19QV01fQ1RMOworCXUzMiBzYXZlQkxDX1BXTV9DVEwyOworCXUzMiBzYXZlRlBCMDsKKwl1MzIgc2F2ZUZQQjE7CisJdTMyIHNhdmVEUExMX0I7CisJdTMyIHNhdmVEUExMX0JfTUQ7CisJdTMyIHNhdmVIVE9UQUxfQjsKKwl1MzIgc2F2ZUhCTEFOS19COworCXUzMiBzYXZlSFNZTkNfQjsKKwl1MzIgc2F2ZVZUT1RBTF9COworCXUzMiBzYXZlVkJMQU5LX0I7CisJdTMyIHNhdmVWU1lOQ19COworCXUzMiBzYXZlQkNMUlBBVF9COworCXUzMiBzYXZlUElQRUJTVEFUOworCXUzMiBzYXZlRFNQQlNUUklERTsKKwl1MzIgc2F2ZURTUEJTSVpFOworCXUzMiBzYXZlRFNQQlBPUzsKKwl1MzIgc2F2ZURTUEJCQVNFOworCXUzMiBzYXZlRFNQQlNVUkY7CisJdTMyIHNhdmVEU1BCVElMRU9GRjsKKwl1MzIgc2F2ZVZDTEtfRElWSVNPUl9WR0EwOworCXUzMiBzYXZlVkNMS19ESVZJU09SX1ZHQTE7CisJdTMyIHNhdmVWQ0xLX1BPU1RfRElWOworCXUzMiBzYXZlVkdBQ05UUkw7CisJdTMyIHNhdmVBRFBBOworCXUzMiBzYXZlTFZEUzsKKwl1MzIgc2F2ZUxWRFNQUF9PTjsKKwl1MzIgc2F2ZUxWRFNQUF9PRkY7CisJdTMyIHNhdmVEVk9BOworCXUzMiBzYXZlRFZPQjsKKwl1MzIgc2F2ZURWT0M7CisJdTMyIHNhdmVQUF9PTjsKKwl1MzIgc2F2ZVBQX09GRjsKKwl1MzIgc2F2ZVBQX0NPTlRST0w7CisJdTMyIHNhdmVQUF9DWUNMRTsKKwl1MzIgc2F2ZVBGSVRfQ09OVFJPTDsKKwl1MzIgc2F2ZV9wYWxldHRlX2FbMjU2XTsKKwl1MzIgc2F2ZV9wYWxldHRlX2JbMjU2XTsKKwl1MzIgc2F2ZUZCQ19DRkJfQkFTRTsKKwl1MzIgc2F2ZUZCQ19MTF9CQVNFOworCXUzMiBzYXZlRkJDX0NPTlRST0w7CisJdTMyIHNhdmVGQkNfQ09OVFJPTDI7CisJdTMyIHNhdmVJRVI7CisJdTMyIHNhdmVJSVI7CisJdTMyIHNhdmVJTVI7CisJdTMyIHNhdmVDQUNIRV9NT0RFXzA7CisJdTMyIHNhdmVEX1NUQVRFOworCXUzMiBzYXZlRFNQQ0xLX0dBVEVfRDsKKwl1MzIgc2F2ZU1JX0FSQl9TVEFURTsKKwl1MzIgc2F2ZVNXRjBbMTZdOworCXUzMiBzYXZlU1dGMVsxNl07CisJdTMyIHNhdmVTV0YyWzNdOworCXU4IHNhdmVNU1I7CisJdTggc2F2ZVNSWzhdOworCXU4IHNhdmVHUlsyNV07CisJdTggc2F2ZUFSX0lOREVYOworCXU4IHNhdmVBUlsyMV07CisJdTggc2F2ZURBQ01BU0s7CisJdTggc2F2ZURBQ0RBVEFbMjU2KjNdOyAvKiAyNTYgMy1ieXRlIGNvbG9ycyAqLworCXU4IHNhdmVDUlszN107Cit9IGRybV9pOTE1X3ByaXZhdGVfdDsKKworZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdOworZXh0ZXJuIGludCBpOTE1X21heF9pb2N0bDsKKworCQkJCS8qIGk5MTVfZG1hLmMgKi8KK2V4dGVybiB2b2lkIGk5MTVfa2VybmVsX2xvc3RfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKK2V4dGVybiB2b2lkIGk5MTVfZHJpdmVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGxvbmcgaTkxNV9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CisKKy8qIGk5MTVfaXJxLmMgKi8KK2V4dGVybiBpbnQgaTkxNV9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgaTkxNV9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIGludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKK2V4dGVybiBpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworZXh0ZXJuIGlycXJldHVybl90IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUyk7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gaW50IGk5MTVfdmJsYW5rX3BpcGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBpOTE1X3ZibGFua19waXBlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgaTkxNV92Ymxhbmtfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworLyogaTkxNV9tZW0uYyAqLworZXh0ZXJuIGludCBpOTE1X21lbV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfbWVtX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfbWVtX2luaXRfaGVhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBpOTE1X21lbV9kZXN0cm95X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgaTkxNV9tZW1fdGFrZWRvd24oc3RydWN0IG1lbV9ibG9jayAqKmhlYXApOworZXh0ZXJuIHZvaWQgaTkxNV9tZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBtZW1fYmxvY2sgKmhlYXApOworCisjZGVmaW5lIEk5MTVfUkVBRChyZWcpICAgICAgICAgIERSTV9SRUFEMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSkKKyNkZWZpbmUgSTkxNV9XUklURShyZWcsdmFsKSAgICAgRFJNX1dSSVRFMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCisjZGVmaW5lIEk5MTVfUkVBRDE2KHJlZykJRFJNX1JFQUQxNihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpKQorI2RlZmluZSBJOTE1X1dSSVRFMTYocmVnLHZhbCkJRFJNX1dSSVRFMTYoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCisKKyNkZWZpbmUgSTkxNV9WRVJCT1NFIDAKKworI2RlZmluZSBSSU5HX0xPQ0FMUwl1bnNpZ25lZCBpbnQgb3V0cmluZywgcmluZ21hc2ssIG91dGNvdW50OyBcCisgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBjaGFyICp2aXJ0OworCisjZGVmaW5lIEJFR0lOX0xQX1JJTkcobikgZG8gewkJCQlcCisJaWYgKEk5MTVfVkVSQk9TRSkJCQkJXAorCQlEUk1fREVCVUcoIkJFR0lOX0xQX1JJTkcoJWQpXG4iLCAobikpOwlcCisJaWYgKGRldl9wcml2LT5yaW5nLnNwYWNlIDwgKG4pKjQpCQlcCisJCWk5MTVfd2FpdF9yaW5nKGRldiwgKG4pKjQsIF9fZnVuY19fKTsJCVwKKwlvdXRjb3VudCA9IDA7CQkJCQlcCisJb3V0cmluZyA9IGRldl9wcml2LT5yaW5nLnRhaWw7CQkJXAorCXJpbmdtYXNrID0gZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrOwkJXAorCXZpcnQgPSBkZXZfcHJpdi0+cmluZy52aXJ0dWFsX3N0YXJ0OwkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBPVVRfUklORyhuKSBkbyB7CQkJCQlcCisJaWYgKEk5MTVfVkVSQk9TRSkgRFJNX0RFQlVHKCIgICBPVVRfUklORyAleFxuIiwgKGludCkobikpOwlcCisJKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikodmlydCArIG91dHJpbmcpID0gKG4pOwlcCisgICAgICAgIG91dGNvdW50Kys7CQkJCQkJXAorCW91dHJpbmcgKz0gNDsJCQkJCQlcCisJb3V0cmluZyAmPSByaW5nbWFzazsJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgQURWQU5DRV9MUF9SSU5HKCkgZG8gewkJCQkJCVwKKwlpZiAoSTkxNV9WRVJCT1NFKSBEUk1fREVCVUcoIkFEVkFOQ0VfTFBfUklORyAleFxuIiwgb3V0cmluZyk7CVwKKwlkZXZfcHJpdi0+cmluZy50YWlsID0gb3V0cmluZzsJCQkJCVwKKwlkZXZfcHJpdi0+cmluZy5zcGFjZSAtPSBvdXRjb3VudCAqIDQ7CQkJCVwKKwlJOTE1X1dSSVRFKExQX1JJTkcgKyBSSU5HX1RBSUwsIG91dHJpbmcpOwkJCVwKK30gd2hpbGUoMCkKKworZXh0ZXJuIGludCBpOTE1X3dhaXRfcmluZyhzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IG4sIGNvbnN0IGNoYXIgKmNhbGxlcik7CisKKy8qIEV4dGVuZGVkIGNvbmZpZyBzcGFjZSAqLworI2RlZmluZSBMQkIgMHhmNAorCisvKiBWR0Egc3R1ZmYgKi8KKworI2RlZmluZSBWR0FfU1QwMV9NREEgMHgzYmEKKyNkZWZpbmUgVkdBX1NUMDFfQ0dBIDB4M2RhCisKKyNkZWZpbmUgVkdBX01TUl9XUklURSAweDNjMgorI2RlZmluZSBWR0FfTVNSX1JFQUQgMHgzY2MKKyNkZWZpbmUgICBWR0FfTVNSX01FTV9FTiAoMTw8MSkKKyNkZWZpbmUgICBWR0FfTVNSX0NHQV9NT0RFICgxPDwwKQorCisjZGVmaW5lIFZHQV9TUl9JTkRFWCAweDNjNAorI2RlZmluZSBWR0FfU1JfREFUQSAweDNjNQorCisjZGVmaW5lIFZHQV9BUl9JTkRFWCAweDNjMAorI2RlZmluZSAgIFZHQV9BUl9WSURfRU4gKDE8PDUpCisjZGVmaW5lIFZHQV9BUl9EQVRBX1dSSVRFIDB4M2MwCisjZGVmaW5lIFZHQV9BUl9EQVRBX1JFQUQgMHgzYzEKKworI2RlZmluZSBWR0FfR1JfSU5ERVggMHgzY2UKKyNkZWZpbmUgVkdBX0dSX0RBVEEgMHgzY2YKKy8qIEdSMDUgKi8KKyNkZWZpbmUgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9TSElGVCAzCisjZGVmaW5lICAgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9QTEFORSAxCisvKiBHUjA2ICovCisjZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX01BU0sgMHhjCisjZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX1NISUZUIDIKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0FGRkZGIDAKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0JGRkZGIDEKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0I3RkZGIDIKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0JGRkZGIDMKKworI2RlZmluZSBWR0FfREFDTUFTSyAweDNjNgorI2RlZmluZSBWR0FfREFDUlggMHgzYzcKKyNkZWZpbmUgVkdBX0RBQ1dYIDB4M2M4CisjZGVmaW5lIFZHQV9EQUNEQVRBIDB4M2M5CisKKyNkZWZpbmUgVkdBX0NSX0lOREVYX01EQSAweDNiNAorI2RlZmluZSBWR0FfQ1JfREFUQV9NREEgMHgzYjUKKyNkZWZpbmUgVkdBX0NSX0lOREVYX0NHQSAweDNkNAorI2RlZmluZSBWR0FfQ1JfREFUQV9DR0EgMHgzZDUKKworI2RlZmluZSBHRlhfT1BfVVNFUl9JTlRFUlJVUFQJCSgoMDw8MjkpfCgyPDwyMykpCisjZGVmaW5lIEdGWF9PUF9CUkVBS1BPSU5UX0lOVEVSUlVQVAkoKDA8PDI5KXwoMTw8MjMpKQorI2RlZmluZSBDTURfUkVQT1JUX0hFQUQJCQkoNzw8MjMpCisjZGVmaW5lIENNRF9TVE9SRV9EV09SRF9JRFgJCSgoMHgyMTw8MjMpIHwgMHgxKQorI2RlZmluZSBDTURfT1BfQkFUQ0hfQlVGRkVSICAoKDB4MDw8MjkpfCgweDMwPDwyMyl8MHgxKQorCisjZGVmaW5lIElOU1RfUEFSU0VSX0NMSUVOVCAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSU5TVF9PUF9GTFVTSCAgICAgICAgMHgwMjAwMDAwMAorI2RlZmluZSBJTlNUX0ZMVVNIX01BUF9DQUNIRSAweDAwMDAwMDAxCisKKyNkZWZpbmUgQkIxX1NUQVJUX0FERFJfTUFTSyAgICh+MHg3KQorI2RlZmluZSBCQjFfUFJPVEVDVEVEICAgICAgICAgKDE8PDApCisjZGVmaW5lIEJCMV9VTlBST1RFQ1RFRCAgICAgICAoMDw8MCkKKyNkZWZpbmUgQkIyX0VORF9BRERSX01BU0sgICAgICh+MHg3KQorCisvKiBGcmFtZWJ1ZmZlciBjb21wcmVzc2lvbiAqLworI2RlZmluZSBGQkNfQ0ZCX0JBU0UJCTB4MDMyMDAgLyogNGsgcGFnZSBhbGlnbmVkICovCisjZGVmaW5lIEZCQ19MTF9CQVNFCQkweDAzMjA0IC8qIDRrIHBhZ2UgYWxpZ25lZCAqLworI2RlZmluZSBGQkNfQ09OVFJPTAkJMHgwMzIwOAorI2RlZmluZSAgIEZCQ19DVExfRU4JCSgxPDwzMSkKKyNkZWZpbmUgICBGQkNfQ1RMX1BFUklPRElDCSgxPDwzMCkKKyNkZWZpbmUgICBGQkNfQ1RMX0lOVEVSVkFMX1NISUZUICgxNikKKyNkZWZpbmUgICBGQkNfQ1RMX1VOQ09NUFJFU1NJQkxFICgxPDwxNCkKKyNkZWZpbmUgICBGQkNfQ1RMX1NUUklERV9TSElGVAkoNSkKKyNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFTk8JKDE8PDApCisjZGVmaW5lIEZCQ19DT01NQU5ECQkweDAzMjBjCisjZGVmaW5lICAgRkJDX0NNRF9DT01QUkVTUwkoMTw8MCkKKyNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAorI2RlZmluZSAgIEZCQ19TVEFUX0NPTVBSRVNTSU5HCSgxPDwzMSkKKyNkZWZpbmUgICBGQkNfU1RBVF9DT01QUkVTU0VECSgxPDwzMCkKKyNkZWZpbmUgICBGQkNfU1RBVF9NT0RJRklFRAkoMTw8MjkpCisjZGVmaW5lICAgRkJDX1NUQVRfQ1VSUkVOVF9MSU5FCSgxPDwwKQorI2RlZmluZSBGQkNfQ09OVFJPTDIJCTB4MDMyMTQKKyNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFX0RCTAkoMDw8NCkKKyNkZWZpbmUgICBGQkNfQ1RMX0lETEVfSU1NCSgwPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9GVUxMCSgxPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9MSU5FCSgyPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9ERUJVRwkoMzw8MikKKyNkZWZpbmUgICBGQkNfQ1RMX0NQVV9GRU5DRQkoMTw8MSkKKyNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQQkoMDw8MCkKKyNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQgkoMTw8MCkKKyNkZWZpbmUgRkJDX0ZFTkNFX09GRgkJMHgwMzIxYgorCisjZGVmaW5lIEZCQ19MTF9TSVpFCQkoMTUzNikKKyNkZWZpbmUgRkJDX0xMX1BBRAkJKDMyKQorCisvKiBJbnRlcnJ1cHQgYml0czoKKyAqLworI2RlZmluZSBVU0VSX0lOVF9GTEFHICAgICgxPDwxKQorI2RlZmluZSBWU1lOQ19QSVBFQl9GTEFHICgxPDw1KQorI2RlZmluZSBWU1lOQ19QSVBFQV9GTEFHICgxPDw3KQorI2RlZmluZSBIV0JfT09NX0ZMQUcgICAgICgxPDwxMykgLyogYmlubmVyIG91dCBvZiBtZW1vcnkgKi8KKworI2RlZmluZSBJOTE1UkVHX0hXU1RBTQkJMHgwMjA5OAorI2RlZmluZSBJOTE1UkVHX0lOVF9JREVOVElUWV9SCTB4MDIwYTQKKyNkZWZpbmUgSTkxNVJFR19JTlRfTUFTS19SCTB4MDIwYTgKKyNkZWZpbmUgSTkxNVJFR19JTlRfRU5BQkxFX1IJMHgwMjBhMAorCisjZGVmaW5lIEk5MTVSRUdfUElQRUFTVEFUCTB4NzAwMjQKKyNkZWZpbmUgSTkxNVJFR19QSVBFQlNUQVQJMHg3MTAyNAorCisjZGVmaW5lIEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEUJKDFVTDw8MTcpCisjZGVmaW5lIEk5MTVfVkJMQU5LX0NMRUFSCQkoMVVMPDwxKQorCisjZGVmaW5lIFNSWF9JTkRFWAkJMHgzYzQKKyNkZWZpbmUgU1JYX0RBVEEJCTB4M2M1CisjZGVmaW5lIFNSMDEJCQkxCisjZGVmaW5lIFNSMDFfU0NSRUVOX09GRgkJKDE8PDUpCisKKyNkZWZpbmUgUFBDUgkJCTB4NjEyMDQKKyNkZWZpbmUgUFBDUl9PTgkJCSgxPDwwKQorCisjZGVmaW5lIERWT0IJCQkweDYxMTQwCisjZGVmaW5lIERWT0JfT04JCQkoMTw8MzEpCisjZGVmaW5lIERWT0MJCQkweDYxMTYwCisjZGVmaW5lIERWT0NfT04JCQkoMTw8MzEpCisjZGVmaW5lIExWRFMJCQkweDYxMTgwCisjZGVmaW5lIExWRFNfT04JCQkoMTw8MzEpCisKKyNkZWZpbmUgQURQQQkJCTB4NjExMDAKKyNkZWZpbmUgQURQQV9EUE1TX01BU0sJCSh+KDM8PDEwKSkKKyNkZWZpbmUgQURQQV9EUE1TX09OCQkoMDw8MTApCisjZGVmaW5lIEFEUEFfRFBNU19TVVNQRU5ECSgxPDwxMCkKKyNkZWZpbmUgQURQQV9EUE1TX1NUQU5EQlkJKDI8PDEwKQorI2RlZmluZSBBRFBBX0RQTVNfT0ZGCQkoMzw8MTApCisKKyNkZWZpbmUgTk9QSUQgICAgICAgICAgICAgICAgICAgMHgyMDk0CisjZGVmaW5lIExQX1JJTkcJCQkweDIwMzAKKyNkZWZpbmUgSFBfUklORwkJCTB4MjA0MAorLyogVGhlIGJpbm5lciBoYXMgaXRzIG93biByaW5nIGJ1ZmZlcjoKKyAqLworI2RlZmluZSBIV0JfUklORwkJMHgyNDAwCisKKyNkZWZpbmUgUklOR19UQUlMCQkweDAwCisjZGVmaW5lIFRBSUxfQUREUgkJMHgwMDFGRkZGOAorI2RlZmluZSBSSU5HX0hFQUQJCTB4MDQKKyNkZWZpbmUgSEVBRF9XUkFQX0NPVU5UCQkweEZGRTAwMDAwCisjZGVmaW5lIEhFQURfV1JBUF9PTkUJCTB4MDAyMDAwMDAKKyNkZWZpbmUgSEVBRF9BRERSCQkweDAwMUZGRkZDCisjZGVmaW5lIFJJTkdfU1RBUlQJCTB4MDgKKyNkZWZpbmUgU1RBUlRfQUREUgkJMHgweEZGRkZGMDAwCisjZGVmaW5lIFJJTkdfTEVOCQkweDBDCisjZGVmaW5lIFJJTkdfTlJfUEFHRVMJCTB4MDAxRkYwMDAKKyNkZWZpbmUgUklOR19SRVBPUlRfTUFTSwkweDAwMDAwMDA2CisjZGVmaW5lIFJJTkdfUkVQT1JUXzY0SwkJMHgwMDAwMDAwMgorI2RlZmluZSBSSU5HX1JFUE9SVF8xMjhLCTB4MDAwMDAwMDQKKyNkZWZpbmUgUklOR19OT19SRVBPUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgUklOR19WQUxJRF9NQVNLCQkweDAwMDAwMDAxCisjZGVmaW5lIFJJTkdfVkFMSUQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgUklOR19JTlZBTElECQkweDAwMDAwMDAwCisKKy8qIEluc3RydWN0aW9uIHBhcnNlciBlcnJvciByZWc6CisgKi8KKyNkZWZpbmUgSVBFSVIJCQkweDIwODgKKworLyogU2NyYXRjaCBwYWQgZGVidWcgMCByZWc6CisgKi8KKyNkZWZpbmUgU0NQRDAJCQkweDIwOWMKKworLyogRXJyb3Igc3RhdHVzIHJlZzoKKyAqLworI2RlZmluZSBFU1IJCQkweDIwYjgKKworLyogU2Vjb25kYXJ5IERNQSBmZXRjaCBhZGRyZXNzIGRlYnVnIHJlZzoKKyAqLworI2RlZmluZSBETUFfRkFERF9TCQkweDIwZDQKKworLyogTWVtb3J5IEludGVyZmFjZSBBcmJpdHJhdGlvbiBTdGF0ZQorICovCisjZGVmaW5lIE1JX0FSQl9TVEFURQkJMHgyMGU0CisKKy8qIENhY2hlIG1vZGUgMCByZWcuCisgKiAgLSBNYW5pcHVsYXRpbmcgcmVuZGVyIGNhY2hlIGJlaGF2aW91ciBpcyBjZW50cmFsCisgKiAgICB0byB0aGUgY29uY2VwdCBvZiB6b25lIHJlbmRlcmluZywgdHVuaW5nIHRoaXMgcmVnIGNhbiBoZWxwIGF2b2lkCisgKiAgICB1bm5lY2Vzc2FyeSByZW5kZXIgY2FjaGUgcmVhZHMgYW5kIGV2ZW4gd3JpdGVzIChmb3Igei9zdGVuY2lsKQorICogICAgYXQgYmVnaW5uaW5nIGFuZCBlbmQgb2Ygc2NlbmUuCisgKgorICogLSBUbyBjaGFuZ2UgYSBiaXQsIHdyaXRlIHRvIHRoaXMgcmVnIHdpdGggYSBtYXNrIGJpdCBzZXQgYW5kIHRoZQorICogYml0IG9mIGludGVyZXN0IGVpdGhlciBzZXQgb3IgY2xlYXJlZC4gIEVHOiAoQklUPDwxNikgfCBCSVQgdG8gc2V0LgorICovCisjZGVmaW5lIENhY2hlX01vZGVfMAkJMHgyMTIwCisjZGVmaW5lIENBQ0hFX01PREVfMAkJMHgyMTIwCisjZGVmaW5lIENNMF9NQVNLX1NISUZUICAgICAgICAgIDE2CisjZGVmaW5lIENNMF9JWl9PUFRfRElTQUJMRSAgICAgICgxPDw2KQorI2RlZmluZSBDTTBfWlJfT1BUX0RJU0FCTEUgICAgICAoMTw8NSkKKyNkZWZpbmUgQ00wX0RFUFRIX0VWSUNUX0RJU0FCTEUgKDE8PDQpCisjZGVmaW5lIENNMF9DT0xPUl9FVklDVF9ESVNBQkxFICgxPDwzKQorI2RlZmluZSBDTTBfREVQVEhfV1JJVEVfRElTQUJMRSAoMTw8MSkKKyNkZWZpbmUgQ00wX1JDX09QX0ZMVVNIX0RJU0FCTEUgKDE8PDApCisKKworLyogR3JhcGhpY3MgZmx1c2ggY29udHJvbC4gIEEgQ1BVIHdyaXRlIGZsdXNoZXMgdGhlIEdXQiBvZiBhbGwgd3JpdGVzLgorICogVGhlIGRhdGEgaXMgZGlzY2FyZGVkLgorICovCisjZGVmaW5lIEdGWF9GTFNIX0NOVEwJCTB4MjE3MAorCisvKiBCaW5uZXIgY29udHJvbC4gIERlZmluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBiaW4gcG9pbnRlciBsaXN0OgorICovCisjZGVmaW5lIEJJTkNUTAkJCTB4MjQyMAorI2RlZmluZSBCQ19NQVNLCQkJKDEgPDwgOSkKKworLyogQmlubmVkIHNjZW5lIGluZm8uCisgKi8KKyNkZWZpbmUgQklOU0NFTkUJCTB4MjQyOAorI2RlZmluZSBCU19PUF9MT0FECQkoMSA8PCA4KQorI2RlZmluZSBCU19NQVNLCQkJKDEgPDwgMjIpCisKKy8qIEJpbiBjb21tYW5kIHBhcnNlciBkZWJ1ZyByZWc6CisgKi8KKyNkZWZpbmUgQkNQRAkJCTB4MjQ4MAorCisvKiBCaW4gbWVtb3J5IGNvbnRyb2wgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJNQ0QJCQkweDI0ODQKKworLyogQmluIGRhdGEgY2FjaGUgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJEQ0QJCQkweDI0ODgKKworLyogQmlubmVyIHBvaW50ZXIgY2FjaGUgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJQQ0QJCQkweDI0OGMKKworLyogQmlubmVyIHNjcmF0Y2ggcGFkIGRlYnVnIHJlZzoKKyAqLworI2RlZmluZSBCSU5TS1BECQkJMHgyNGYwCisKKy8qIEhXQiBzY3JhdGNoIHBhZCBkZWJ1ZyByZWc6CisgKi8KKyNkZWZpbmUgSFdCU0tQRAkJCTB4MjRmNAorCisvKiBCaW5uZXIgbWVtb3J5IHBvb2wgcmVnOgorICovCisjZGVmaW5lIEJNUF9CVUZGRVIJCTB4MjQzMAorI2RlZmluZSBCTVBfUEFHRV9TSVpFXzRLCSgwIDw8IDEwKQorI2RlZmluZSBCTVBfQlVGRkVSX1NJWkVfU0hJRlQJMQorI2RlZmluZSBCTVBfRU5BQkxFCQkoMSA8PCAwKQorCisvKiBHZXQvcHV0IG1lbW9yeSBmcm9tIHRoZSBiaW5uZXIgbWVtb3J5IHBvb2w6CisgKi8KKyNkZWZpbmUgQk1QX0dFVAkJCTB4MjQzOAorI2RlZmluZSBCTVBfUFVUCQkJMHgyNDQwCisjZGVmaW5lIEJNUF9PRkZTRVRfU0hJRlQJNQorCisvKiAzRCBzdGF0ZSBwYWNrZXRzOgorICovCisjZGVmaW5lIEdGWF9PUF9SQVNURVJfUlVMRVMgICAgKCgweDM8PDI5KXwoMHg3PDwyNCkpCisKKyNkZWZpbmUgR0ZYX09QX1NDSVNTT1IgICAgICAgICAoKDB4Mzw8MjkpfCgweDFjPDwyNCl8KDB4MTA8PDE5KSkKKyNkZWZpbmUgU0NfVVBEQVRFX1NDSVNTT1IgICAgICAgKDB4MTw8MSkKKyNkZWZpbmUgU0NfRU5BQkxFX01BU0sgICAgICAgICAgKDB4MTw8MCkKKyNkZWZpbmUgU0NfRU5BQkxFICAgICAgICAgICAgICAgKDB4MTw8MCkKKworI2RlZmluZSBHRlhfT1BfTE9BRF9JTkRJUkVDVCAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg3PDwxNikpCisKKyNkZWZpbmUgR0ZYX09QX1NDSVNTT1JfSU5GTyAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwoMHgxKSkKKyNkZWZpbmUgU0NJX1lNSU5fTUFTSyAgICAgICgweGZmZmY8PDE2KQorI2RlZmluZSBTQ0lfWE1JTl9NQVNLICAgICAgKDB4ZmZmZjw8MCkKKyNkZWZpbmUgU0NJX1lNQVhfTUFTSyAgICAgICgweGZmZmY8PDE2KQorI2RlZmluZSBTQ0lfWE1BWF9NQVNLICAgICAgKDB4ZmZmZjw8MCkKKworI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9FTkFCTEUJICgoMHgzPDwyOSl8KDB4MWM8PDI0KXwoMHgxMDw8MTkpKQorI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9SRUNUCSAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwxKQorI2RlZmluZSBHRlhfT1BfQ09MT1JfRkFDVE9SICAgICAgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDE8PDE2KXwweDApCisjZGVmaW5lIEdGWF9PUF9TVElQUExFICAgICAgICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODM8PDE2KSkKKyNkZWZpbmUgR0ZYX09QX01BUF9JTkZPICAgICAgICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwweDQpCisjZGVmaW5lIEdGWF9PUF9ERVNUQlVGRkVSX1ZBUlMgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODU8PDE2KXwweDApCisjZGVmaW5lIEdGWF9PUF9EUkFXUkVDVF9JTkZPICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODA8PDE2KXwoMHgzKSkKKworI2RlZmluZSBHRlhfT1BfRFJBV1JFQ1RfSU5GT19JOTY1ICgoMHg3OTAwPDwxNil8MHgyKQorCisjZGVmaW5lIFNSQ19DT1BZX0JMVF9DTUQgICAgICAgICAgICAgICAgKCgyPDwyOSl8KDB4NDM8PDIyKXw0KQorI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpfDYpCisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9BTFBIQQkoMTw8MjEpCisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9SR0IJKDE8PDIwKQorI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfU1JDX1RJTEVECSgxPDwxNSkKKyNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRAkoMTw8MTEpCisKKyNkZWZpbmUgTUlfQkFUQ0hfQlVGRkVSCQkoKDB4MzA8PDIzKXwxKQorI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQJKDB4MzE8PDIzKQorI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfRU5ECSgweEE8PDIzKQorI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFCSgxKQorI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFX0k5NjUgKDE8PDgpCisKKyNkZWZpbmUgTUlfV0FJVF9GT1JfRVZFTlQgICAgICAgKCgweDM8PDIzKSkKKyNkZWZpbmUgTUlfV0FJVF9GT1JfUExBTkVfQl9GTElQICAgICAgKDE8PDYpCisjZGVmaW5lIE1JX1dBSVRfRk9SX1BMQU5FX0FfRkxJUCAgICAgICgxPDwyKQorI2RlZmluZSBNSV9XQUlUX0ZPUl9QTEFORV9BX1NDQU5MSU5FUyAoMTw8MSkKKworI2RlZmluZSBNSV9MT0FEX1NDQU5fTElORVNfSU5DTCAgKCgweDEyPDwyMykpCisKKyNkZWZpbmUgQ01EX09QX0RJU1BMQVlCVUZGRVJfSU5GTyAoKDB4MDw8MjkpfCgweDE0PDwyMyl8MikKKyNkZWZpbmUgQVNZTkNfRkxJUCAgICAgICAgICAgICAgICAoMTw8MjIpCisjZGVmaW5lIERJU1BMQVlfUExBTkVfQSAgICAgICAgICAgKDA8PDIwKQorI2RlZmluZSBESVNQTEFZX1BMQU5FX0IgICAgICAgICAgICgxPDwyMCkKKworLyogRGlzcGxheSByZWdzICovCisjZGVmaW5lIERTUEFDTlRSICAgICAgICAgICAgICAgIDB4NzAxODAKKyNkZWZpbmUgRFNQQkNOVFIgICAgICAgICAgICAgICAgMHg3MTE4MAorI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfTUFTSyAgICAgICAgICAgICAgICAgKDE8PDI0KQorCisvKiBEZWZpbmUgdGhlIHJlZ2lvbiBvZiBpbnRlcmVzdCBmb3IgdGhlIGJpbm5lcjoKKyAqLworI2RlZmluZSBDTURfT1BfQklOX0NPTlRST0wJICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4NDw8MTYpfDQpCisKKyNkZWZpbmUgQ01EX09QX0RFU1RCVUZGRVJfSU5GTwkgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDhlPDwxNil8MSkKKworI2RlZmluZSBDTURfTUlfRkxVU0ggICAgICAgICAoMHgwNCA8PCAyMykKKyNkZWZpbmUgTUlfTk9fV1JJVEVfRkxVU0ggICAgKDEgPDwgMikKKyNkZWZpbmUgTUlfUkVBRF9GTFVTSCAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgTUlfRVhFX0ZMVVNIICAgICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgTUlfRU5EX1NDRU5FICAgICAgICAgKDEgPDwgNCkgLyogZmx1c2ggYmlubmVyIGFuZCBpbmNyIHNjZW5lIGNvdW50ICovCisjZGVmaW5lIE1JX1NDRU5FX0NPVU5UICAgICAgICgxIDw8IDMpIC8qIGp1c3QgaW5jcmVtZW50IHNjZW5lIGNvdW50ICovCisKKyNkZWZpbmUgQlJFQURDUlVNQl9CSVRTIDMxCisjZGVmaW5lIEJSRUFEQ1JVTUJfTUFTSyAoKDFVIDw8IEJSRUFEQ1JVTUJfQklUUykgLSAxKQorCisjZGVmaW5lIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpWzVdKQorI2RlZmluZSBSRUFEX0hXU1AoZGV2X3ByaXYsIHJlZykgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpW3JlZ10pCisKKyNkZWZpbmUgQkxDX1BXTV9DVEwJCTB4NjEyNTQKKyNkZWZpbmUgQkFDS0xJR0hUX01PRFVMQVRJT05fRlJFUV9TSElGVAkJKDE3KQorCisjZGVmaW5lIEJMQ19QV01fQ1RMMgkJMHg2MTI1MAorLyoqCisgKiBUaGlzIGlzIHRoZSBtb3N0IHNpZ25pZmljYW50IDE1IGJpdHMgb2YgdGhlIG51bWJlciBvZiBiYWNrbGlnaHQgY3ljbGVzIGluIGEKKyAqIGNvbXBsZXRlIGN5Y2xlIG9mIHRoZSBtb2R1bGF0ZWQgYmFja2xpZ2h0IGNvbnRyb2wuCisgKgorICogVGhlIGFjdHVhbCB2YWx1ZSBpcyB0aGlzIGZpZWxkIG11bHRpcGxpZWQgYnkgdHdvLgorICovCisjZGVmaW5lIEJBQ0tMSUdIVF9NT0RVTEFUSU9OX0ZSRVFfTUFTSwkJKDB4N2ZmZiA8PCAxNykKKyNkZWZpbmUgQkxNX0xFR0FDWV9NT0RFCQkJCSgxIDw8IDE2KQorLyoqCisgKiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgY3ljbGVzIG91dCBvZiB0aGUgYmFja2xpZ2h0IG1vZHVsYXRpb24gY3ljbGUgZm9yIHdoaWNoCisgKiB0aGUgYmFja2xpZ2h0IGlzIG9uLgorICoKKyAqIFRoaXMgZmllbGQgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBjeWNsZXMgaW4gdGhlIGNvbXBsZXRlCisgKiBiYWNrbGlnaHQgbW9kdWxhdGlvbiBjeWNsZS4KKyAqLworI2RlZmluZSBCQUNLTElHSFRfRFVUWV9DWUNMRV9TSElGVAkJKDApCisjZGVmaW5lIEJBQ0tMSUdIVF9EVVRZX0NZQ0xFX01BU0sJCSgweGZmZmYpCisKKyNkZWZpbmUgSTkxNV9HQ0ZHQwkJCTB4ZjAKKyNkZWZpbmUgSTkxNV9MT1dfRlJFUVVFTkNZX0VOQUJMRQkJKDEgPDwgNykKKyNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLXzE5MF8yMDBfTUhaCQkoMCA8PCA0KQorI2RlZmluZSBJOTE1X0RJU1BMQVlfQ0xPQ0tfMzMzX01IWgkJKDQgPDwgNCkKKyNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLX01BU0sJCQkoNyA8PCA0KQorCisjZGVmaW5lIEk4NTVfSFBMTENDCQkJMHhjMAorI2RlZmluZSBJODU1X0NMT0NLX0NPTlRST0xfTUFTSwkJCSgzIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTMzXzIwMAkJCSgwIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzIwMAkJCSgxIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzEzMwkJCSgyIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTY2XzI1MAkJCSgzIDw8IDApCisKKy8qIHAzMTcsIDMxOQorICovCisjZGVmaW5lIFZDTEsyX1ZDT19NICAgICAgICAweDYwMDggLyogdHJlYXQgYXMgMTYgYml0PyAoaW5jbHVkZXMgbXNicykgKi8KKyNkZWZpbmUgVkNMSzJfVkNPX04gICAgICAgIDB4NjAwYQorI2RlZmluZSBWQ0xLMl9WQ09fRElWX1NFTCAgMHg2MDEyCisKKyNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTAgICAweDYwMDAKKyNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTEgICAweDYwMDQKKyNkZWZpbmUgVkNMS19QT1NUX0RJVgkgICAgMHg2MDEwCisvKiogU2VsZWN0cyBhIHBvc3QgZGl2aXNvciBvZiA0IGluc3RlYWQgb2YgMi4gKi8KKyMgZGVmaW5lIFZHQTFfUERfUDJfRElWXzQJKDEgPDwgMTUpCisvKiogT3ZlcnJpZGVzIHRoZSBwMiBwb3N0IGRpdmlzb3IgZmllbGQgKi8KKyMgZGVmaW5lIFZHQTFfUERfUDFfRElWXzIJKDEgPDwgMTMpCisjIGRlZmluZSBWR0ExX1BEX1AxX1NISUZUCTgKKy8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCisjIGRlZmluZSBWR0ExX1BEX1AxX01BU0sJKDB4MWYgPDwgOCkKKy8qKiBTZWxlY3RzIGEgcG9zdCBkaXZpc29yIG9mIDQgaW5zdGVhZCBvZiAyLiAqLworIyBkZWZpbmUgVkdBMF9QRF9QMl9ESVZfNAkoMSA8PCA3KQorLyoqIE92ZXJyaWRlcyB0aGUgcDIgcG9zdCBkaXZpc29yIGZpZWxkICovCisjIGRlZmluZSBWR0EwX1BEX1AxX0RJVl8yCSgxIDw8IDUpCisjIGRlZmluZSBWR0EwX1BEX1AxX1NISUZUCTAKKy8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCisjIGRlZmluZSBWR0EwX1BEX1AxX01BU0sJKDB4MWYgPDwgMCkKKworLyogUENJIEQgc3RhdGUgY29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBEX1NUQVRFCQkweDYxMDQKKyNkZWZpbmUgRFNQQ0xLX0dBVEVfRAkweDYyMDAKKworLyogSTgzMCBDUlRDIHJlZ2lzdGVycyAqLworI2RlZmluZSBIVE9UQUxfQQkweDYwMDAwCisjZGVmaW5lIEhCTEFOS19BCTB4NjAwMDQKKyNkZWZpbmUgSFNZTkNfQQkJMHg2MDAwOAorI2RlZmluZSBWVE9UQUxfQQkweDYwMDBjCisjZGVmaW5lIFZCTEFOS19BCTB4NjAwMTAKKyNkZWZpbmUgVlNZTkNfQQkJMHg2MDAxNAorI2RlZmluZSBQSVBFQVNSQwkweDYwMDFjCisjZGVmaW5lIEJDTFJQQVRfQQkweDYwMDIwCisjZGVmaW5lIFZTWU5DU0hJRlRfQQkweDYwMDI4CisKKyNkZWZpbmUgSFRPVEFMX0IJMHg2MTAwMAorI2RlZmluZSBIQkxBTktfQgkweDYxMDA0CisjZGVmaW5lIEhTWU5DX0IJCTB4NjEwMDgKKyNkZWZpbmUgVlRPVEFMX0IJMHg2MTAwYworI2RlZmluZSBWQkxBTktfQgkweDYxMDEwCisjZGVmaW5lIFZTWU5DX0IJCTB4NjEwMTQKKyNkZWZpbmUgUElQRUJTUkMJMHg2MTAxYworI2RlZmluZSBCQ0xSUEFUX0IJMHg2MTAyMAorI2RlZmluZSBWU1lOQ1NISUZUX0IJMHg2MTAyOAorCisjZGVmaW5lIFBQX1NUQVRVUwkweDYxMjAwCisjIGRlZmluZSBQUF9PTgkJCQkJKDEgPDwgMzEpCisvKioKKyAqIEluZGljYXRlcyB0aGF0IGFsbCBkZXBlbmRlbmNpZXMgb2YgdGhlIHBhbmVsIGFyZSBvbjoKKyAqCisgKiAtIFBMTCBlbmFibGVkCisgKiAtIHBpcGUgZW5hYmxlZAorICogLSBMVkRTL0RWT0IvRFZPQyBvbgorICovCisjIGRlZmluZSBQUF9SRUFEWQkJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIFBQX1NFUVVFTkNFX05PTkUJCQkoMCA8PCAyOCkKKyMgZGVmaW5lIFBQX1NFUVVFTkNFX09OCQkJCSgxIDw8IDI4KQorIyBkZWZpbmUgUFBfU0VRVUVOQ0VfT0ZGCQkJKDIgPDwgMjgpCisjIGRlZmluZSBQUF9TRVFVRU5DRV9NQVNLCQkJMHgzMDAwMDAwMAorI2RlZmluZSBQUF9DT05UUk9MCTB4NjEyMDQKKyMgZGVmaW5lIFBPV0VSX1RBUkdFVF9PTgkJCSgxIDw8IDApCisKKyNkZWZpbmUgTFZEU1BQX09OICAgICAgIDB4NjEyMDgKKyNkZWZpbmUgTFZEU1BQX09GRiAgICAgIDB4NjEyMGMKKyNkZWZpbmUgUFBfQ1lDTEUgICAgICAgIDB4NjEyMTAKKworI2RlZmluZSBQRklUX0NPTlRST0wJMHg2MTIzMAorIyBkZWZpbmUgUEZJVF9FTkFCTEUJCQkJKDEgPDwgMzEpCisjIGRlZmluZSBQRklUX1BJUEVfTUFTSwkJCQkoMyA8PCAyOSkKKyMgZGVmaW5lIFBGSVRfUElQRV9TSElGVAkJCTI5CisjIGRlZmluZSBWRVJUX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgMTApCisjIGRlZmluZSBWRVJUX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDEwKQorIyBkZWZpbmUgVkVSVF9JTlRFUlBfTUFTSwkJCSgzIDw8IDEwKQorIyBkZWZpbmUgVkVSVF9BVVRPX1NDQUxFCQkJKDEgPDwgOSkKKyMgZGVmaW5lIEhPUklaX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgNikKKyMgZGVmaW5lIEhPUklaX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDYpCisjIGRlZmluZSBIT1JJWl9JTlRFUlBfTUFTSwkJCSgzIDw8IDYpCisjIGRlZmluZSBIT1JJWl9BVVRPX1NDQUxFCQkJKDEgPDwgNSkKKyMgZGVmaW5lIFBBTkVMXzhUTzZfRElUSEVSX0VOQUJMRQkJKDEgPDwgMykKKworI2RlZmluZSBQRklUX1BHTV9SQVRJT1MJMHg2MTIzNAorIyBkZWZpbmUgUEZJVF9WRVJUX1NDQUxFX01BU0sJCQkweGZmZjAwMDAwCisjIGRlZmluZSBQRklUX0hPUklaX1NDQUxFX01BU0sJCQkweDAwMDBmZmYwCisKKyNkZWZpbmUgUEZJVF9BVVRPX1JBVElPUwkweDYxMjM4CisKKworI2RlZmluZSBEUExMX0EJCTB4MDYwMTQKKyNkZWZpbmUgRFBMTF9CCQkweDA2MDE4CisjIGRlZmluZSBEUExMX1ZDT19FTkFCTEUJCQkoMSA8PCAzMSkKKyMgZGVmaW5lIERQTExfRFZPX0hJR0hfU1BFRUQJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIERQTExfU1lOQ0xPQ0tfRU5BQkxFCQkJKDEgPDwgMjkpCisjIGRlZmluZSBEUExMX1ZHQV9NT0RFX0RJUwkJCSgxIDw8IDI4KQorIyBkZWZpbmUgRFBMTEJfTU9ERV9EQUNfU0VSSUFMCQkJKDEgPDwgMjYpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExCX01PREVfTFZEUwkJCSgyIDw8IDI2KSAvKiBpOTE1ICovCisjIGRlZmluZSBEUExMX01PREVfTUFTSwkJCQkoMyA8PCAyNikKKyMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfMTAJKDAgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfNQkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExCX0xWRFNfUDJfQ0xPQ0tfRElWXzE0CQkoMCA8PCAyNCkgLyogaTkxNSAqLworIyBkZWZpbmUgRFBMTEJfTFZEU19QMl9DTE9DS19ESVZfNwkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfUDJfQ0xPQ0tfRElWX01BU0sJCQkweDAzMDAwMDAwIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTSwkJMHgwMGZmMDAwMCAvKiBpOTE1ICovCisvKioKKyAqICBUaGUgaTgzMCBnZW5lcmF0aW9uLCBpbiBEQUMvc2VyaWFsIG1vZGUsIGRlZmluZXMgcDEgYXMgdHdvIHBsdXMgdGhpcworICogYml0ZmllbGQsIG9yIGp1c3QgMiBpZiBQTExfUDFfRElWSURFX0JZX1RXTyBpcyBzZXQuCisgKi8KKyMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTS19JODMwCTB4MDAxZjAwMDAKKy8qKgorICogVGhlIGk4MzAgZ2VuZXJhdGlvbiwgaW4gTFZEUyBtb2RlLCBkZWZpbmVzIFAxIGFzIHRoZSBiaXQgbnVtYmVyIHNldCB3aXRoaW4KKyAqIHRoaXMgZmllbGQgKG9ubHkgb25lIGJpdCBtYXkgYmUgc2V0KS4KKyAqLworIyBkZWZpbmUgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLX0k4MzBfTFZEUwkweDAwM2YwMDAwCisjIGRlZmluZSBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUCQkxNgorIyBkZWZpbmUgUExMX1AyX0RJVklERV9CWV80CQkJKDEgPDwgMjMpIC8qIGk4MzAsIHJlcXVpcmVkIGluIERWTyBub24tZ2FuZyAqLworIyBkZWZpbmUgUExMX1AxX0RJVklERV9CWV9UV08JCQkoMSA8PCAyMSkgLyogaTgzMCAqLworIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9EUkVGQ0xLCQkJKDAgPDwgMTMpCisjIGRlZmluZSBQTExfUkVGX0lOUFVUX1RWQ0xLSU5BCQkJKDEgPDwgMTMpIC8qIGk4MzAgKi8KKyMgZGVmaW5lIFBMTF9SRUZfSU5QVVRfVFZDTEtJTkJDCQkoMiA8PCAxMykgLyogU0RWTyBUVkNMS0lOICovCisjIGRlZmluZSBQTExCX1JFRl9JTlBVVF9TUFJFQURTUEVDVFJVTUlOCSgzIDw8IDEzKQorIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9NQVNLCQkJKDMgPDwgMTMpCisjIGRlZmluZSBQTExfTE9BRF9QVUxTRV9QSEFTRV9TSElGVAkJOQorLyoKKyAqIFBhcmFsbGVsIHRvIFNlcmlhbCBMb2FkIFB1bHNlIHBoYXNlIHNlbGVjdGlvbi4KKyAqIFNlbGVjdHMgdGhlIHBoYXNlIGZvciB0aGUgMTBYIERQTEwgY2xvY2sgZm9yIHRoZSBQQ0llCisgKiBkaWdpdGFsIGRpc3BsYXkgcG9ydC4gVGhlIHJhbmdlIGlzIDQgdG8gMTM7IDEwIG9yIG1vcmUKKyAqIGlzIGp1c3QgYSBmbGlwIGRlbGF5LiBUaGUgZGVmYXVsdCBpcyA2CisgKi8KKyMgZGVmaW5lIFBMTF9MT0FEX1BVTFNFX1BIQVNFX01BU0sJCSgweGYgPDwgUExMX0xPQURfUFVMU0VfUEhBU0VfU0hJRlQpCisjIGRlZmluZSBESVNQTEFZX1JBVEVfU0VMRUNUX0ZQQTEJCSgxIDw8IDgpCisKKy8qKgorICogU0RWTyBtdWx0aXBsaWVyIGZvciA5NDVHL0dNLiBOb3QgdXNlZCBvbiA5NjUuCisgKgorICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSworICovCisjIGRlZmluZSBTRFZPX01VTFRJUExJRVJfTUFTSwkJCTB4MDAwMDAwZmYKKyMgZGVmaW5lIFNEVk9fTVVMVElQTElFUl9TSElGVF9ISVJFUwkJNAorIyBkZWZpbmUgU0RWT19NVUxUSVBMSUVSX1NISUZUX1ZHQQkJMAorCisvKiogQGRlZmdyb3VwIERQTExfTUQKKyAqIEB7CisgKi8KKy8qKiBQaXBlIEEgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLworI2RlZmluZSBEUExMX0FfTUQJCTB4MDYwMWMKKy8qKiBQaXBlIEIgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLworI2RlZmluZSBEUExMX0JfTUQJCTB4MDYwMjAKKy8qKgorICogVURJIHBpeGVsIGRpdmlkZXIsIGNvbnRyb2xsaW5nIGhvdyBtYW55IHBpeGVscyBhcmUgc3R1ZmZlZCBpbnRvIGEgcGFja2V0LgorICoKKyAqIFZhbHVlIGlzIHBpeGVscyBtaW51cyAxLiAgTXVzdCBiZSBzZXQgdG8gMSBwaXhlbCBmb3IgU0RWTy4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLCQkweDNmMDAwMDAwCisjIGRlZmluZSBEUExMX01EX1VESV9ESVZJREVSX1NISUZUCQkyNAorLyoqIFVESSBwaXhlbCBkaXZpZGVyIGZvciBWR0EsIHNhbWUgYXMgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLLiAqLworIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfTUFTSwkJMHgwMDNmMDAwMAorIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfU0hJRlQJCTE2CisvKioKKyAqIFNEVk8vVURJIHBpeGVsIG11bHRpcGxpZXIuCisgKgorICogU0RWTyByZXF1aXJlcyB0aGF0IHRoZSBidXMgY2xvY2sgcmF0ZSBiZSBiZXR3ZWVuIDEgYW5kIDIgR2h6LCBhbmQgdGhlIGJ1cworICogY2xvY2sgcmF0ZSBpcyAxMCB0aW1lcyB0aGUgRFBMTCBjbG9jay4gIEF0IGxvdyByZXNvbHV0aW9uL3JlZnJlc2ggcmF0ZQorICogbW9kZXMsIHRoZSBidXMgcmF0ZSB3b3VsZCBiZSBiZWxvdyB0aGUgbGltaXRzLCBzbyBTRFZPIGFsbG93cyBmb3Igc3R1ZmZpbmcKKyAqIGR1bW15IGJ5dGVzIGluIHRoZSBkYXRhc3RyZWFtIGF0IGFuIGluY3JlYXNlZCBjbG9jayByYXRlLCB3aXRoIGJvdGggc2lkZXMgb2YKKyAqIHRoZSBsaW5rIGtub3dpbmcgaG93IG1hbnkgYnl0ZXMgYXJlIGZpbGwuCisgKgorICogU28sIGZvciBhIG1vZGUgd2l0aCBhIGRvdGNsb2NrIG9mIDY1TWh6LCB3ZSB3b3VsZCB3YW50IHRvIGRvdWJsZSB0aGUgY2xvY2sKKyAqIHJhdGUgdG8gMTMwTWh6IHRvIGdldCBhIGJ1cyByYXRlIG9mIDEuMzBHaHouICBUaGUgRFBMTCBjbG9jayByYXRlIHdvdWxkIGJlCisgKiBzZXQgdG8gMTMwTWh6LCBhbmQgdGhlIFNEVk8gbXVsdGlwbGllciBzZXQgdG8gMnggaW4gdGhpcyByZWdpc3RlciBhbmQKKyAqIHRocm91Z2ggYW4gU0RWTyBjb21tYW5kLgorICoKKyAqIFRoaXMgcmVnaXN0ZXIgZmllbGQgaGFzIHZhbHVlcyBvZiBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgbWludXMgMSwgd2l0aAorICogYSBtYXhpbXVtIG11bHRpcGxpZXIgb2YgNSBmb3IgU0RWTy4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLCQkweDAwMDAzZjAwCisjIGRlZmluZSBEUExMX01EX1VESV9NVUxUSVBMSUVSX1NISUZUCQk4CisvKiogU0RWTy9VREkgcGl4ZWwgbXVsdGlwbGllciBmb3IgVkdBLCBzYW1lIGFzIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSy4KKyAqIFRoaXMgYmVzdCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKDMpIG9yIHRoZSBDUlQgd29uJ3Qgd29yay4gTm8sCisgKiBJIGRvbid0IGVudGlyZWx5IHVuZGVyc3RhbmQgd2hhdCB0aGlzIGRvZXMuLi4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX01VTFRJUExJRVJfTUFTSwkweDAwMDAwMDNmCisjIGRlZmluZSBEUExMX01EX1ZHQV9VRElfTVVMVElQTElFUl9TSElGVAkwCisvKiogQH0gKi8KKworI2RlZmluZSBEUExMX1RFU1QJCTB4NjA2YworIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl8xCQkJKDAgPDwgMjIpCisjIGRlZmluZSBEUExMQl9URVNUX1NEVk9fRElWXzIJCQkoMSA8PCAyMikKKyMgZGVmaW5lIERQTExCX1RFU1RfU0RWT19ESVZfNAkJCSgyIDw8IDIyKQorIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl9NQVNLCQkoMyA8PCAyMikKKyMgZGVmaW5lIERQTExCX1RFU1RfTl9CWVBBU1MJCQkoMSA8PCAxOSkKKyMgZGVmaW5lIERQTExCX1RFU1RfTV9CWVBBU1MJCQkoMSA8PCAxOCkKKyMgZGVmaW5lIERQTExCX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDE2KQorIyBkZWZpbmUgRFBMTEFfVEVTVF9OX0JZUEFTUwkJCSgxIDw8IDMpCisjIGRlZmluZSBEUExMQV9URVNUX01fQllQQVNTCQkJKDEgPDwgMikKKyMgZGVmaW5lIERQTExBX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDApCisKKyNkZWZpbmUgQURQQQkJCTB4NjExMDAKKyNkZWZpbmUgQURQQV9EQUNfRU5BQkxFCQkoMTw8MzEpCisjZGVmaW5lIEFEUEFfREFDX0RJU0FCTEUJMAorI2RlZmluZSBBRFBBX1BJUEVfU0VMRUNUX01BU0sJKDE8PDMwKQorI2RlZmluZSBBRFBBX1BJUEVfQV9TRUxFQ1QJMAorI2RlZmluZSBBRFBBX1BJUEVfQl9TRUxFQ1QJKDE8PDMwKQorI2RlZmluZSBBRFBBX1VTRV9WR0FfSFZQT0xBUklUWSAoMTw8MTUpCisjZGVmaW5lIEFEUEFfU0VUU19IVlBPTEFSSVRZCTAKKyNkZWZpbmUgQURQQV9WU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDExKQorI2RlZmluZSBBRFBBX1ZTWU5DX0NOVExfRU5BQkxFCTAKKyNkZWZpbmUgQURQQV9IU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDEwKQorI2RlZmluZSBBRFBBX0hTWU5DX0NOVExfRU5BQkxFCTAKKyNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfSElHSAkoMTw8NCkKKyNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfTE9XCTAKKyNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfSElHSAkoMTw8MykKKyNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfTE9XCTAKKworI2RlZmluZSBGUEEwCQkweDA2MDQwCisjZGVmaW5lIEZQQTEJCTB4MDYwNDQKKyNkZWZpbmUgRlBCMAkJMHgwNjA0OAorI2RlZmluZSBGUEIxCQkweDA2MDRjCisjIGRlZmluZSBGUF9OX0RJVl9NQVNLCQkJCTB4MDAzZjAwMDAKKyMgZGVmaW5lIEZQX05fRElWX1NISUZUCQkJCTE2CisjIGRlZmluZSBGUF9NMV9ESVZfTUFTSwkJCQkweDAwMDAzZjAwCisjIGRlZmluZSBGUF9NMV9ESVZfU0hJRlQJCQk4CisjIGRlZmluZSBGUF9NMl9ESVZfTUFTSwkJCQkweDAwMDAwMDNmCisjIGRlZmluZSBGUF9NMl9ESVZfU0hJRlQJCQkwCisKKworI2RlZmluZSBQT1JUX0hPVFBMVUdfRU4JCTB4NjExMTAKKyMgZGVmaW5lIFNEVk9CX0hPVFBMVUdfSU5UX0VOCQkJKDEgPDwgMjYpCisjIGRlZmluZSBTRFZPQ19IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDI1KQorIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfRU4JCQkoMSA8PCAxOCkKKyMgZGVmaW5lIENSVF9IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDkpCisjIGRlZmluZSBDUlRfSE9UUExVR19GT1JDRV9ERVRFQ1QJCSgxIDw8IDMpCisKKyNkZWZpbmUgUE9SVF9IT1RQTFVHX1NUQVQJMHg2MTExNAorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfSU5UX1NUQVRVUwkJCSgxIDw8IDExKQorIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfU1RBVFVTCQkJKDEgPDwgMTApCisjIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX01BU0sJCSgzIDw8IDgpCisjIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX0NPTE9SCQkoMyA8PCA4KQorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9NT05PCQkoMiA8PCA4KQorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9OT05FCQkoMCA8PCA4KQorIyBkZWZpbmUgU0RWT0NfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA3KQorIyBkZWZpbmUgU0RWT0JfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA2KQorCisjZGVmaW5lIFNEVk9CCQkJMHg2MTE0MAorI2RlZmluZSBTRFZPQwkJCTB4NjExNjAKKyNkZWZpbmUgU0RWT19FTkFCTEUJCQkJKDEgPDwgMzEpCisjZGVmaW5lIFNEVk9fUElQRV9CX1NFTEVDVAkJCSgxIDw8IDMwKQorI2RlZmluZSBTRFZPX1NUQUxMX1NFTEVDVAkJCSgxIDw8IDI5KQorI2RlZmluZSBTRFZPX0lOVEVSUlVQVF9FTkFCTEUJCQkoMSA8PCAyNikKKy8qKgorICogOTE1Ry9HTSBTRFZPIHBpeGVsIG11bHRpcGxpZXIuCisgKgorICogUHJvZ3JhbW1lZCB2YWx1ZSBpcyBtdWx0aXBsaWVyIC0gMSwgdXAgdG8gNXguCisgKgorICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSworICovCisjZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9NQVNLCQkJKDcgPDwgMjMpCisjZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9TSElGVAkJMjMKKyNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfTUFTSwkJCSgxNSA8PCAxOSkKKyNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfREVGQVVMVAkJKDYgPDwgMTkpCisjZGVmaW5lIFNEVk9fQ0xPQ0tfT1VUUFVUX0lOVkVSVAkJKDEgPDwgMTgpCisjZGVmaW5lIFNEVk9DX0dBTkdfTU9ERQkJCQkoMSA8PCAxNikKKyNkZWZpbmUgU0RWT19CT1JERVJfRU5BQkxFCQkJKDEgPDwgNykKKyNkZWZpbmUgU0RWT0JfUENJRV9DT05DVVJSRU5DWQkJCSgxIDw8IDMpCisjZGVmaW5lIFNEVk9fREVURUNURUQJCQkJKDEgPDwgMikKKy8qIEJpdHMgdG8gYmUgcHJlc2VydmVkIHdoZW4gd3JpdGluZyAqLworI2RlZmluZSBTRFZPQl9QUkVTRVJWRV9NQVNLCQkJKCgxIDw8IDE3KSB8ICgxIDw8IDE2KSB8ICgxIDw8IDE0KSkKKyNkZWZpbmUgU0RWT0NfUFJFU0VSVkVfTUFTSwkJCSgxIDw8IDE3KQorCisvKiogQGRlZmdyb3VwIExWRFMKKyAqIEB7CisgKi8KKy8qKgorICogVGhpcyByZWdpc3RlciBjb250cm9scyB0aGUgTFZEUyBvdXRwdXQgZW5hYmxlLCBwaXBlIHNlbGVjdGlvbiwgYW5kIGRhdGEKKyAqIGZvcm1hdCBzZWxlY3Rpb24uCisgKgorICogQWxsIG9mIHRoZSBjbG9jay9kYXRhIHBhaXJzIGFyZSBmb3JjZSBwb3dlcmVkIGRvd24gYnkgcG93ZXIgc2VxdWVuY2luZy4KKyAqLworI2RlZmluZSBMVkRTCQkJMHg2MTE4MAorLyoqCisgKiBFbmFibGVzIHRoZSBMVkRTIHBvcnQuICBUaGlzIGJpdCBtdXN0IGJlIHNldCBiZWZvcmUgRFBMTHMgYXJlIGVuYWJsZWQsIGFzCisgKiB0aGUgRFBMTCBzZW1hbnRpY3MgY2hhbmdlIHdoZW4gdGhlIExWRFMgaXMgYXNzaWduZWQgdG8gdGhhdCBwaXBlLgorICovCisjIGRlZmluZSBMVkRTX1BPUlRfRU4JCQkoMSA8PCAzMSkKKy8qKiBTZWxlY3RzIHBpcGUgQiBmb3IgTFZEUyBkYXRhLiAgTXVzdCBiZSBzZXQgb24gcHJlLTk2NS4gKi8KKyMgZGVmaW5lIExWRFNfUElQRUJfU0VMRUNUCQkoMSA8PCAzMCkKKworLyoqCisgKiBFbmFibGVzIHRoZSBBMC1BMiBkYXRhIHBhaXJzIGFuZCBDTEtBLCBjb250YWluaW5nIDE4IGJpdHMgb2YgY29sb3IgZGF0YSBwZXIKKyAqIHBpeGVsLgorICovCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9NQVNLCSgzIDw8IDgpCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9ET1dOCSgwIDw8IDgpCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9VUAkoMyA8PCA4KQorLyoqCisgKiBDb250cm9scyB0aGUgQTMgZGF0YSBwYWlyLCB3aGljaCBjb250YWlucyB0aGUgYWRkaXRpb25hbCBMU0JzIGZvciAyNCBiaXQKKyAqIG1vZGUuICBPbmx5IGVuYWJsZWQgaWYgTFZEU19BMEEyX0NMS0FfUE9XRVJfVVAgYWxzbyBpbmRpY2F0ZXMgaXQgc2hvdWxkIGJlCisgKiBvbi4KKyAqLworIyBkZWZpbmUgTFZEU19BM19QT1dFUl9NQVNLCQkoMyA8PCA2KQorIyBkZWZpbmUgTFZEU19BM19QT1dFUl9ET1dOCQkoMCA8PCA2KQorIyBkZWZpbmUgTFZEU19BM19QT1dFUl9VUAkJKDMgPDwgNikKKy8qKgorICogQ29udHJvbHMgdGhlIENMS0IgcGFpci4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgc2V0IHdoZW4gTFZEU19CMEIzX1BPV0VSX1VQCisgKiBpcyBzZXQuCisgKi8KKyMgZGVmaW5lIExWRFNfQ0xLQl9QT1dFUl9NQVNLCQkoMyA8PCA0KQorIyBkZWZpbmUgTFZEU19DTEtCX1BPV0VSX0RPV04JCSgwIDw8IDQpCisjIGRlZmluZSBMVkRTX0NMS0JfUE9XRVJfVVAJCSgzIDw8IDQpCisKKy8qKgorICogQ29udHJvbHMgdGhlIEIwLUIzIGRhdGEgcGFpcnMuICBUaGlzIG11c3QgYmUgc2V0IHRvIG1hdGNoIHRoZSBEUExMIHAyCisgKiBzZXR0aW5nIGZvciB3aGV0aGVyIHdlIGFyZSBpbiBkdWFsLWNoYW5uZWwgbW9kZS4gIFRoZSBCMyBwYWlyIHdpbGwKKyAqIGFkZGl0aW9uYWxseSBvbmx5IGJlIHBvd2VyZWQgdXAgd2hlbiBMVkRTX0EzX1BPV0VSX1VQIGlzIHNldC4KKyAqLworIyBkZWZpbmUgTFZEU19CMEIzX1BPV0VSX01BU0sJCSgzIDw8IDIpCisjIGRlZmluZSBMVkRTX0IwQjNfUE9XRVJfRE9XTgkJKDAgPDwgMikKKyMgZGVmaW5lIExWRFNfQjBCM19QT1dFUl9VUAkJKDMgPDwgMikKKworI2RlZmluZSBQSVBFQUNPTkYgMHg3MDAwOAorI2RlZmluZSBQSVBFQUNPTkZfRU5BQkxFCSgxPDwzMSkKKyNkZWZpbmUgUElQRUFDT05GX0RJU0FCTEUJMAorI2RlZmluZSBQSVBFQUNPTkZfRE9VQkxFX1dJREUJKDE8PDMwKQorI2RlZmluZSBJOTY1X1BJUEVDT05GX0FDVElWRQkoMTw8MzApCisjZGVmaW5lIFBJUEVBQ09ORl9TSU5HTEVfV0lERQkwCisjZGVmaW5lIFBJUEVBQ09ORl9QSVBFX1VOTE9DS0VEIDAKKyNkZWZpbmUgUElQRUFDT05GX1BJUEVfTE9DS0VECSgxPDwyNSkKKyNkZWZpbmUgUElQRUFDT05GX1BBTEVUVEUJMAorI2RlZmluZSBQSVBFQUNPTkZfR0FNTUEJCSgxPDwyNCkKKyNkZWZpbmUgUElQRUNPTkZfRk9SQ0VfQk9SREVSCSgxPDwyNSkKKyNkZWZpbmUgUElQRUNPTkZfUFJPR1JFU1NJVkUJKDAgPDwgMjEpCisjZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9XX0ZJRUxEX0lORElDQVRJT04JKDYgPDwgMjEpCisjZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9GSUVMRF8wX09OTFkJCSg3IDw8IDIxKQorCisjZGVmaW5lIERTUEFSQgkgIDB4NzAwMzAKKyNkZWZpbmUgRFNQQVJCX0NTVEFSVF9NQVNLCSgweDdmIDw8IDcpCisjZGVmaW5lIERTUEFSQl9DU1RBUlRfU0hJRlQJNworI2RlZmluZSBEU1BBUkJfQlNUQVJUX01BU0sJKDB4N2YpCQkgCisjZGVmaW5lIERTUEFSQl9CU1RBUlRfU0hJRlQJMAorCisjZGVmaW5lIFBJUEVCQ09ORiAweDcxMDA4CisjZGVmaW5lIFBJUEVCQ09ORl9FTkFCTEUJKDE8PDMxKQorI2RlZmluZSBQSVBFQkNPTkZfRElTQUJMRQkwCisjZGVmaW5lIFBJUEVCQ09ORl9ET1VCTEVfV0lERQkoMTw8MzApCisjZGVmaW5lIFBJUEVCQ09ORl9ESVNBQkxFCTAKKyNkZWZpbmUgUElQRUJDT05GX0dBTU1BCQkoMTw8MjQpCisjZGVmaW5lIFBJUEVCQ09ORl9QQUxFVFRFCTAKKworI2RlZmluZSBQSVBFQkdDTUFYUkVECQkweDcxMDEwCisjZGVmaW5lIFBJUEVCR0NNQVhHUkVFTgkJMHg3MTAxNAorI2RlZmluZSBQSVBFQkdDTUFYQkxVRQkJMHg3MTAxOAorI2RlZmluZSBQSVBFQlNUQVQJCTB4NzEwMjQKKyNkZWZpbmUgUElQRUJGUkFNRUhJR0gJCTB4NzEwNDAKKyNkZWZpbmUgUElQRUJGUkFNRVBJWEVMCQkweDcxMDQ0CisKKyNkZWZpbmUgRFNQQUNOVFIJCTB4NzAxODAKKyNkZWZpbmUgRFNQQkNOVFIJCTB4NzExODAKKyNkZWZpbmUgRElTUExBWV9QTEFORV9FTkFCTEUJCQkoMTw8MzEpCisjZGVmaW5lIERJU1BMQVlfUExBTkVfRElTQUJMRQkJCTAKKyNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0VOQUJMRQkJCSgxPDwzMCkKKyNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0RJU0FCTEUJCQkwCisjZGVmaW5lIERJU1BQTEFORV9QSVhGT1JNQVRfTUFTSwkJKDB4Zjw8MjYpCisjZGVmaW5lIERJU1BQTEFORV84QlBQCQkJCSgweDI8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMTVfMTZCUFAJCQkoMHg0PDwyNikKKyNkZWZpbmUgRElTUFBMQU5FXzE2QlBQCQkJCSgweDU8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMzJCUFBfTk9fQUxQSEEJCSgweDY8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMzJCUFAJCQkJKDB4Nzw8MjYpCisjZGVmaW5lIERJU1BQTEFORV9TVEVSRU9fRU5BQkxFCQkJKDE8PDI1KQorI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX0RJU0FCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX1NFTF9QSVBFX01BU0sJCQkoMTw8MjQpCisjZGVmaW5lIERJU1BQTEFORV9TRUxfUElQRV9BCQkJMAorI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfQgkJCSgxPDwyNCkKKyNkZWZpbmUgRElTUFBMQU5FX1NSQ19LRVlfRU5BQkxFCQkoMTw8MjIpCisjZGVmaW5lIERJU1BQTEFORV9TUkNfS0VZX0RJU0FCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX0xJTkVfRE9VQkxFCQkJKDE8PDIwKQorI2RlZmluZSBESVNQUExBTkVfTk9fTElORV9ET1VCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9GSVJTVAkJMAorI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX1BPTEFSSVRZX1NFQ09ORAkoMTw8MTgpCisvKiBwbGFuZSBCIG9ubHkgKi8KKyNkZWZpbmUgRElTUFBMQU5FX0FMUEhBX1RSQU5TX0VOQUJMRQkJKDE8PDE1KQorI2RlZmluZSBESVNQUExBTkVfQUxQSEFfVFJBTlNfRElTQUJMRQkJMAorI2RlZmluZSBESVNQUExBTkVfU1BSSVRFX0FCT1ZFX0RJU1BMQVlBCQkwCisjZGVmaW5lIERJU1BQTEFORV9TUFJJVEVfQUJPVkVfT1ZFUkxBWQkJKDEpCisKKyNkZWZpbmUgRFNQQUJBU0UJCTB4NzAxODQKKyNkZWZpbmUgRFNQQVNUUklERQkJMHg3MDE4OAorCisjZGVmaW5lIERTUEJCQVNFCQkweDcxMTg0CisjZGVmaW5lIERTUEJBRERSCQlEU1BCQkFTRQorI2RlZmluZSBEU1BCU1RSSURFCQkweDcxMTg4CisKKyNkZWZpbmUgRFNQQUtFWVZBTAkJMHg3MDE5NAorI2RlZmluZSBEU1BBS0VZTUFTSwkJMHg3MDE5OAorCisjZGVmaW5lIERTUEFQT1MJCQkweDcwMThDIC8qIHJlc2VydmVkICovCisjZGVmaW5lIERTUEFTSVpFCQkweDcwMTkwCisjZGVmaW5lIERTUEJQT1MJCQkweDcxMThDCisjZGVmaW5lIERTUEJTSVpFCQkweDcxMTkwCisKKyNkZWZpbmUgRFNQQVNVUkYJCTB4NzAxOUMKKyNkZWZpbmUgRFNQQVRJTEVPRkYJCTB4NzAxQTQKKworI2RlZmluZSBEU1BCU1VSRgkJMHg3MTE5QworI2RlZmluZSBEU1BCVElMRU9GRgkJMHg3MTFBNAorCisjZGVmaW5lIFZHQUNOVFJMCQkweDcxNDAwCisjIGRlZmluZSBWR0FfRElTUF9ESVNBQkxFCQkJKDEgPDwgMzEpCisjIGRlZmluZSBWR0FfMlhfTU9ERQkJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIFZHQV9QSVBFX0JfU0VMRUNUCQkJKDEgPDwgMjkpCisKKy8qCisgKiBTb21lIEJJT1Mgc2NyYXRjaCBhcmVhIHJlZ2lzdGVycy4gIFRoZSA4NDUgKGFuZCA4MzA/KSBzdG9yZSB0aGUgYW1vdW50CisgKiBvZiB2aWRlbyBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBCSU9TIGluIFNXRjEuCisgKi8KKworI2RlZmluZSBTV0YwCQkJMHg3MTQxMAorCisvKgorICogODU1IHNjcmF0Y2ggcmVnaXN0ZXJzLgorICovCisjZGVmaW5lIFNXRjEwCQkJMHg3MDQxMAorCisjZGVmaW5lIFNXRjMwCQkJMHg3MjQxNAorCisvKgorICogT3ZlcmxheSByZWdpc3RlcnMuICBUaGVzZSBhcmUgb3ZlcmxheSByZWdpc3RlcnMgYWNjZXNzZWQgdmlhIE1NSU8uCisgKiBUaG9zZSBsb2FkZWQgdmlhIHRoZSBvdmVybGF5IHJlZ2lzdGVyIHBhZ2UgYXJlIGRlZmluZWQgaW4gaTgzMF92aWRlby5jLgorICovCisjZGVmaW5lIE9WQURECQkJMHgzMDAwMAorCisjZGVmaW5lIERPVlNUQQkJCTB4MzAwMDgKKyNkZWZpbmUgT0NfQlVGCQkJKDB4Mzw8MjApCisKKyNkZWZpbmUgT0dBTUM1CQkJMHgzMDAxMAorI2RlZmluZSBPR0FNQzQJCQkweDMwMDE0CisjZGVmaW5lIE9HQU1DMwkJCTB4MzAwMTgKKyNkZWZpbmUgT0dBTUMyCQkJMHgzMDAxYworI2RlZmluZSBPR0FNQzEJCQkweDMwMDIwCisjZGVmaW5lIE9HQU1DMAkJCTB4MzAwMjQKKy8qCisgKiBQYWxldHRlIHJlZ2lzdGVycworICovCisjZGVmaW5lIFBBTEVUVEVfQQkJMHgwYTAwMAorI2RlZmluZSBQQUxFVFRFX0IJCTB4MGE4MDAKKworI2RlZmluZSBJU19JODMwKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU3NykKKyNkZWZpbmUgSVNfODQ1RyhkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1NjIpCisjZGVmaW5lIElTX0k4NVgoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgzNTgyKQorI2RlZmluZSBJU19JODU1KGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU4MikKKyNkZWZpbmUgSVNfSTg2NUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyNTcyKQorCisjZGVmaW5lIElTX0k5MTVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU4MiB8fCAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OGEpCisjZGVmaW5lIElTX0k5MTVHTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OTIpCisjZGVmaW5lIElTX0k5NDVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjc3MikKKyNkZWZpbmUgSVNfSTk0NUdNKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjdBMiB8fFwKKwkJICAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI3QUUpCisjZGVmaW5lIElTX0k5NjVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjk3MiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5ODIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOTkyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlBMiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBMDIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTEyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkE0MiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJFMDIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyRTEyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkUyMikKKworI2RlZmluZSBJU19JOTY1R00oZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTAyKQorCisjZGVmaW5lIElTX0lHRF9HTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBNDIpCisKKyNkZWZpbmUgSVNfRzRYKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkUwMiB8fCBcCisJCSAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyRTEyIHx8IFwKKwkJICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJFMjIpCisKKyNkZWZpbmUgSVNfRzMzKGRldikgICAgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlDMiB8fAlcCisJCQkoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5QjIgfHwJXAorCQkJKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOUQyKQorCisjZGVmaW5lIElTX0k5WFgoZGV2KSAoSVNfSTkxNUcoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBJU19JOTQ1RyhkZXYpIHx8IFwKKwkJICAgICAgSVNfSTk0NUdNKGRldikgfHwgSVNfSTk2NUcoZGV2KSB8fCBJU19HMzMoZGV2KSkKKworI2RlZmluZSBJU19NT0JJTEUoZGV2KSAoSVNfSTgzMChkZXYpIHx8IElTX0k4NVgoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBcCisJCQlJU19JOTQ1R00oZGV2KSB8fCBJU19JOTY1R00oZGV2KSB8fCBJU19JR0RfR00oZGV2KSkKKworI2RlZmluZSBJOTE1X05FRURfR0ZYX0hXUyhkZXYpIChJU19HMzMoZGV2KSB8fCBJU19JR0RfR00oZGV2KSB8fCBJU19HNFgoZGV2KSkKKworI2RlZmluZSBQUklNQVJZX1JJTkdCVUZGRVJfU0laRSAgICAgICAgICgxMjgqMTAyNCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaW9jMzIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pOTE1X2lvYzMyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaW9jMzIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYwMzYxMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTAsMCArMSw2MjMgQEAKKy8qIGk5MTVfaXJxLmMgLS0gSVJRIHN1cHBvcnQgZm9yIHRoZSBJOTE1IC0qLSBsaW51eC1jIC0qLQorICovCisvKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJpOTE1X2RybS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKyNkZWZpbmUgVVNFUl9JTlRfRkxBRyAoMTw8MSkKKyNkZWZpbmUgVlNZTkNfUElQRUJfRkxBRyAoMTw8NSkKKyNkZWZpbmUgVlNZTkNfUElQRUFfRkxBRyAoMTw8NykKKworI2RlZmluZSBNQVhfTk9QSUQgKCh1MzIpfjApCisKKy8qKgorICogRW1pdCBibGl0cyBmb3Igc2NoZWR1bGVkIGJ1ZmZlciBzd2Fwcy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIEhXIGxvY2sgaGVsZC4KKyAqLworc3RhdGljIHZvaWQgaTkxNV92YmxhbmtfdGFza2xldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCAqdG1wLCBoaXRzLCAqaGl0OworCWludCBuaGl0cywgbnJlY3RzLCBzbGljZVsyXSwgdXBwZXJbMl0sIGxvd2VyWzJdLCBpOworCXVuc2lnbmVkIGNvdW50ZXJbMl0gPSB7IGF0b21pY19yZWFkKCZkZXYtPnZibF9yZWNlaXZlZCksCisJCQkJYXRvbWljX3JlYWQoJmRldi0+dmJsX3JlY2VpdmVkMikgfTsKKwlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRydzsKKwlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJdTMyIGNwcCA9IGRldl9wcml2LT5jcHA7CisJdTMyIGNtZCA9IChjcHAgPT0gNCkgPyAoWFlfU1JDX0NPUFlfQkxUX0NNRCB8CisJCQkJWFlfU1JDX0NPUFlfQkxUX1dSSVRFX0FMUEhBIHwKKwkJCQlYWV9TUkNfQ09QWV9CTFRfV1JJVEVfUkdCKQorCQkJICAgICA6IFhZX1NSQ19DT1BZX0JMVF9DTUQ7CisJdTMyIHNyY19waXRjaCA9IHNhcmVhX3ByaXYtPnBpdGNoICogY3BwOworCXUzMiBkc3RfcGl0Y2ggPSBzYXJlYV9wcml2LT5waXRjaCAqIGNwcDsKKwl1MzIgcm9wY3BwID0gKDB4Y2MgPDwgMTYpIHwgKChjcHAgLSAxKSA8PCAyNCk7CisJUklOR19MT0NBTFM7CisKKwlpZiAoSVNfSTk2NUcoZGV2KSAmJiBzYXJlYV9wcml2LT5mcm9udF90aWxlZCkgeworCQljbWQgfD0gWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRDsKKwkJZHN0X3BpdGNoID4+PSAyOworCX0KKwlpZiAoSVNfSTk2NUcoZGV2KSAmJiBzYXJlYV9wcml2LT5iYWNrX3RpbGVkKSB7CisJCWNtZCB8PSBYWV9TUkNfQ09QWV9CTFRfU1JDX1RJTEVEOworCQlzcmNfcGl0Y2ggPj49IDI7CisJfQorCisJRFJNX0RFQlVHKCJcbiIpOworCisJSU5JVF9MSVNUX0hFQUQoJmhpdHMpOworCisJbmhpdHMgPSBucmVjdHMgPSAwOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwkvKiBGaW5kIGJ1ZmZlciBzd2FwcyBzY2hlZHVsZWQgZm9yIHRoaXMgdmVydGljYWwgYmxhbmsgKi8KKwlsaXN0X2Zvcl9lYWNoX3NhZmUobGlzdCwgdG1wLCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKSB7CisJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnZibF9zd2FwID0KKwkJCWxpc3RfZW50cnkobGlzdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7CisKKwkJaWYgKChjb3VudGVyW3ZibF9zd2FwLT5waXBlXSAtIHZibF9zd2FwLT5zZXF1ZW5jZSkgPiAoMTw8MjMpKQorCQkJY29udGludWU7CisKKwkJbGlzdF9kZWwobGlzdCk7CisJCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nLS07CisKKwkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwkJc3Bpbl9sb2NrKCZkZXYtPmRyd19sb2NrKTsKKworCQlkcncgPSBkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCB2Ymxfc3dhcC0+ZHJ3X2lkKTsKKworCQlpZiAoIWRydykgeworCQkJc3Bpbl91bmxvY2soJmRldi0+ZHJ3X2xvY2spOworCQkJZHJtX2ZyZWUodmJsX3N3YXAsIHNpemVvZigqdmJsX3N3YXApLCBEUk1fTUVNX0RSSVZFUik7CisJCQlzcGluX2xvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbGlzdF9mb3JfZWFjaChoaXQsICZoaXRzKSB7CisJCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2NtcCA9CisJCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOworCQkJc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvICpkcndfY21wID0KKwkJCQlkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwX2NtcC0+ZHJ3X2lkKTsKKworCQkJaWYgKGRyd19jbXAgJiYKKwkJCSAgICBkcndfY21wLT5yZWN0c1swXS55MSA+IGRydy0+cmVjdHNbMF0ueTEpIHsKKwkJCQlsaXN0X2FkZF90YWlsKGxpc3QsIGhpdCk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlzcGluX3VubG9jaygmZGV2LT5kcndfbG9jayk7CisKKwkJLyogTGlzdCBvZiBoaXRzIHdhcyBlbXB0eSwgb3Igd2UgcmVhY2hlZCB0aGUgZW5kIG9mIGl0ICovCisJCWlmIChoaXQgPT0gJmhpdHMpCisJCQlsaXN0X2FkZF90YWlsKGxpc3QsIGhpdHMucHJldik7CisKKwkJbmhpdHMrKzsKKworCQlzcGluX2xvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwl9CisKKwlpZiAobmhpdHMgPT0gMCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCQlyZXR1cm47CisJfQorCisJc3Bpbl91bmxvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKworCWk5MTVfa2VybmVsX2xvc3RfY29udGV4dChkZXYpOworCisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJQkVHSU5fTFBfUklORyg0KTsKKworCQlPVVRfUklORyhHRlhfT1BfRFJBV1JFQ1RfSU5GT19JOTY1KTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKCgoc2FyZWFfcHJpdi0+d2lkdGggLSAxKSAmIDB4ZmZmZikgfCAoKHNhcmVhX3ByaXYtPmhlaWdodCAtIDEpIDw8IDE2KSk7CisJCU9VVF9SSU5HKDApOworCQlBRFZBTkNFX0xQX1JJTkcoKTsKKwl9IGVsc2UgeworCQlCRUdJTl9MUF9SSU5HKDYpOworCisJCU9VVF9SSU5HKEdGWF9PUF9EUkFXUkVDVF9JTkZPKTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKDApOworCQlPVVRfUklORyhzYXJlYV9wcml2LT53aWR0aCB8IHNhcmVhX3ByaXYtPmhlaWdodCA8PCAxNik7CisJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPndpZHRoIHwgc2FyZWFfcHJpdi0+aGVpZ2h0IDw8IDE2KTsKKwkJT1VUX1JJTkcoMCk7CisKKwkJQURWQU5DRV9MUF9SSU5HKCk7CisJfQorCisJc2FyZWFfcHJpdi0+Y3R4T3duZXIgPSBEUk1fS0VSTkVMX0NPTlRFWFQ7CisKKwl1cHBlclswXSA9IHVwcGVyWzFdID0gMDsKKwlzbGljZVswXSA9IG1heChzYXJlYV9wcml2LT5waXBlQV9oIC8gbmhpdHMsIDEpOworCXNsaWNlWzFdID0gbWF4KHNhcmVhX3ByaXYtPnBpcGVCX2ggLyBuaGl0cywgMSk7CisJbG93ZXJbMF0gPSBzYXJlYV9wcml2LT5waXBlQV95ICsgc2xpY2VbMF07CisJbG93ZXJbMV0gPSBzYXJlYV9wcml2LT5waXBlQl95ICsgc2xpY2VbMF07CisKKwlzcGluX2xvY2soJmRldi0+ZHJ3X2xvY2spOworCisJLyogRW1pdCBibGl0cyBmb3IgYnVmZmVyIHN3YXBzLCBwYXJ0aXRpb25pbmcgYm90aCBvdXRwdXRzIGludG8gYXMgbWFueQorCSAqIHNsaWNlcyBhcyB0aGVyZSBhcmUgYnVmZmVyIHN3YXBzIHNjaGVkdWxlZCBpbiBvcmRlciB0byBhdm9pZCB0ZWFyaW5nCisJICogKGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgYSBzaW5nbGUgYnVmZmVyIHN3YXAgd291bGQgYWx3YXlzCisJICogY29tcGxldGUgYmVmb3JlIHNjYW5vdXQgc3RhcnRzKS4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpKysgPCBuaGl0czsKKwkgICAgIHVwcGVyWzBdID0gbG93ZXJbMF0sIGxvd2VyWzBdICs9IHNsaWNlWzBdLAorCSAgICAgdXBwZXJbMV0gPSBsb3dlclsxXSwgbG93ZXJbMV0gKz0gc2xpY2VbMV0pIHsKKwkJaWYgKGkgPT0gbmhpdHMpCisJCQlsb3dlclswXSA9IGxvd2VyWzFdID0gc2FyZWFfcHJpdi0+aGVpZ2h0OworCisJCWxpc3RfZm9yX2VhY2goaGl0LCAmaGl0cykgeworCQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9oaXQgPQorCQkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKwkJCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpyZWN0OworCQkJaW50IG51bV9yZWN0cywgcGlwZTsKKwkJCXVuc2lnbmVkIHNob3J0IHRvcCwgYm90dG9tOworCisJCQlkcncgPSBkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwX2hpdC0+ZHJ3X2lkKTsKKworCQkJaWYgKCFkcncpCisJCQkJY29udGludWU7CisKKwkJCXJlY3QgPSBkcnctPnJlY3RzOworCQkJcGlwZSA9IHN3YXBfaGl0LT5waXBlOworCQkJdG9wID0gdXBwZXJbcGlwZV07CisJCQlib3R0b20gPSBsb3dlcltwaXBlXTsKKworCQkJZm9yIChudW1fcmVjdHMgPSBkcnctPm51bV9yZWN0czsgbnVtX3JlY3RzLS07IHJlY3QrKykgeworCQkJCWludCB5MSA9IG1heChyZWN0LT55MSwgdG9wKTsKKwkJCQlpbnQgeTIgPSBtaW4ocmVjdC0+eTIsIGJvdHRvbSk7CisKKwkJCQlpZiAoeTEgPj0geTIpCisJCQkJCWNvbnRpbnVlOworCisJCQkJQkVHSU5fTFBfUklORyg4KTsKKworCQkJCU9VVF9SSU5HKGNtZCk7CisJCQkJT1VUX1JJTkcocm9wY3BwIHwgZHN0X3BpdGNoKTsKKwkJCQlPVVRfUklORygoeTEgPDwgMTYpIHwgcmVjdC0+eDEpOworCQkJCU9VVF9SSU5HKCh5MiA8PCAxNikgfCByZWN0LT54Mik7CisJCQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+ZnJvbnRfb2Zmc2V0KTsKKwkJCQlPVVRfUklORygoeTEgPDwgMTYpIHwgcmVjdC0+eDEpOworCQkJCU9VVF9SSU5HKHNyY19waXRjaCk7CisJCQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+YmFja19vZmZzZXQpOworCisJCQkJQURWQU5DRV9MUF9SSU5HKCk7CisJCQl9CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUoaGl0LCB0bXAsICZoaXRzKSB7CisJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfaGl0ID0KKwkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKworCQlsaXN0X2RlbChoaXQpOworCisJCWRybV9mcmVlKHN3YXBfaGl0LCBzaXplb2YoKnN3YXBfaGl0KSwgRFJNX01FTV9EUklWRVIpOworCX0KK30KKworaXJxcmV0dXJuX3QgaTkxNV9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAoc3RydWN0IGRybV9kZXZpY2UgKikgYXJnOworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTE2IHRlbXA7CisJdTMyIHBpcGVhX3N0YXRzLCBwaXBlYl9zdGF0czsKKworCXBpcGVhX3N0YXRzID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUFTVEFUKTsKKwlwaXBlYl9zdGF0cyA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVCU1RBVCk7CisKKwl0ZW1wID0gSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7CisKKwl0ZW1wICY9IChVU0VSX0lOVF9GTEFHIHwgVlNZTkNfUElQRUFfRkxBRyB8IFZTWU5DX1BJUEVCX0ZMQUcpOworCisJRFJNX0RFQlVHKCIlcyBmbGFnPSUwOHhcbiIsIF9fRlVOQ1RJT05fXywgdGVtcCk7CisKKwlpZiAodGVtcCA9PSAwKQorCQlyZXR1cm4gSVJRX05PTkU7CisKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUiwgdGVtcCk7CisJKHZvaWQpIEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOworCURSTV9SRUFETUVNT1JZQkFSUklFUigpOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpOworCisJaWYgKHRlbXAgJiBVU0VSX0lOVF9GTEFHKQorCQlEUk1fV0FLRVVQKCZkZXZfcHJpdi0+aXJxX3F1ZXVlKTsKKworCWlmICh0ZW1wICYgKFZTWU5DX1BJUEVBX0ZMQUcgfCBWU1lOQ19QSVBFQl9GTEFHKSkgeworCQlpbnQgdmJsYW5rX3BpcGUgPSBkZXZfcHJpdi0+dmJsYW5rX3BpcGU7CisKKwkJaWYgKCh2YmxhbmtfcGlwZSAmCisJCSAgICAgKERSTV9JOTE1X1ZCTEFOS19QSVBFX0EgfCBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkKKwkJICAgID09IChEUk1fSTkxNV9WQkxBTktfUElQRV9BIHwgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpIHsKKwkJCWlmICh0ZW1wICYgVlNZTkNfUElQRUFfRkxBRykKKwkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7CisJCQlpZiAodGVtcCAmIFZTWU5DX1BJUEVCX0ZMQUcpCisJCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQyKTsKKwkJfSBlbHNlIGlmICgoKHRlbXAgJiBWU1lOQ19QSVBFQV9GTEFHKSAmJgorCQkJICAgICh2YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0EpKSB8fAorCQkJICAgKCh0ZW1wICYgVlNZTkNfUElQRUJfRkxBRykgJiYKKwkJCSAgICAodmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkpCisJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7CisKKwkJRFJNX1dBS0VVUCgmZGV2LT52YmxfcXVldWUpOworCQlkcm1fdmJsX3NlbmRfc2lnbmFscyhkZXYpOworCisJCWlmIChkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA+IDApCisJCQlkcm1fbG9ja2VkX3Rhc2tsZXQoZGV2LCBpOTE1X3ZibGFua190YXNrbGV0KTsKKwkJSTkxNV9XUklURShJOTE1UkVHX1BJUEVBU1RBVCwKKwkJCXBpcGVhX3N0YXRzfEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEV8CisJCQlJOTE1X1ZCTEFOS19DTEVBUik7CisJCUk5MTVfV1JJVEUoSTkxNVJFR19QSVBFQlNUQVQsCisJCQlwaXBlYl9zdGF0c3xJOTE1X1ZCTEFOS19JTlRFUlJVUFRfRU5BQkxFfAorCQkJSTkxNV9WQkxBTktfQ0xFQVIpOworCX0KKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBpOTE1X2VtaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCVJJTkdfTE9DQUxTOworCisJaTkxNV9rZXJuZWxfbG9zdF9jb250ZXh0KGRldik7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9lbnF1ZXVlID0gKytkZXZfcHJpdi0+Y291bnRlcjsKKworCWlmIChkZXZfcHJpdi0+Y291bnRlciA+IDB4N0ZGRkZGRkZVTCkKKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZW5xdWV1ZSA9IGRldl9wcml2LT5jb3VudGVyID0gMTsKKworCUJFR0lOX0xQX1JJTkcoNik7CisJT1VUX1JJTkcoQ01EX1NUT1JFX0RXT1JEX0lEWCk7CisJT1VUX1JJTkcoMjApOworCU9VVF9SSU5HKGRldl9wcml2LT5jb3VudGVyKTsKKwlPVVRfUklORygwKTsKKwlPVVRfUklORygwKTsKKwlPVVRfUklORyhHRlhfT1BfVVNFUl9JTlRFUlJVUFQpOworCUFEVkFOQ0VfTFBfUklORygpOworCisJcmV0dXJuIGRldl9wcml2LT5jb3VudGVyOworfQorCitzdGF0aWMgaW50IGk5MTVfd2FpdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBpcnFfbnIpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCURSTV9ERUJVRygiaXJxX25yPSVkIGJyZWFkY3J1bWI9JWRcbiIsIGlycV9uciwKKwkJICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpKTsKKworCWlmIChSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpID49IGlycV9ucikKKwkJcmV0dXJuIDA7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGVyZl9ib3hlcyB8PSBJOTE1X0JPWF9XQUlUOworCisJRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+aXJxX3F1ZXVlLCAzICogRFJNX0haLAorCQkgICAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSA+PSBpcnFfbnIpOworCisJaWYgKHJldCA9PSAtRUJVU1kpIHsKKwkJRFJNX0VSUk9SKCJFQlVTWSAtLSByZWM6ICVkIGVtaXR0ZWQ6ICVkXG4iLAorCQkJICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpLCAoaW50KWRldl9wcml2LT5jb3VudGVyKTsKKwl9CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IFJFQURfQlJFQURDUlVNQihkZXZfcHJpdik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlLAorCQkJCSAgICAgIGF0b21pY190ICpjb3VudGVyKQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGludCBjdXJfdmJsYW5rOworCWludCByZXQgPSAwOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJRFJNX1dBSVRfT04ocmV0LCBkZXYtPnZibF9xdWV1ZSwgMyAqIERSTV9IWiwKKwkJICAgICgoKGN1cl92YmxhbmsgPSBhdG9taWNfcmVhZChjb3VudGVyKSkKKwkJCS0gKnNlcXVlbmNlKSA8PSAoMTw8MjMpKSk7CisKKwkqc2VxdWVuY2UgPSBjdXJfdmJsYW5rOworCisJcmV0dXJuIHJldDsKK30KKworCitpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKK3sKKwlyZXR1cm4gaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgJmRldi0+dmJsX3JlY2VpdmVkKTsKK30KKworaW50IGk5MTVfZHJpdmVyX3ZibGFua193YWl0MihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQoreworCXJldHVybiBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCAmZGV2LT52YmxfcmVjZWl2ZWQyKTsKK30KKworLyogTmVlZHMgdGhlIGxvY2sgYXMgaXQgdG91Y2hlcyB0aGUgcmluZy4KKyAqLworaW50IGk5MTVfaXJxX2VtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1faTkxNV9pcnFfZW1pdF90ICplbWl0ID0gZGF0YTsKKwlpbnQgcmVzdWx0OworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJlc3VsdCA9IGk5MTVfZW1pdF9pcnEoZGV2KTsKKworCWlmIChEUk1fQ09QWV9UT19VU0VSKGVtaXQtPmlycV9zZXEsICZyZXN1bHQsIHNpemVvZihpbnQpKSkgeworCQlEUk1fRVJST1IoImNvcHlfdG9fdXNlclxuIik7CisJCXJldHVybiAtRUZBVUxUOworCX0KKworCXJldHVybiAwOworfQorCisvKiBEb2Vzbid0IG5lZWQgdGhlIGhhcmR3YXJlIGxvY2suCisgKi8KK2ludCBpOTE1X2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfaXJxX3dhaXRfdCAqaXJxd2FpdCA9IGRhdGE7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gaTkxNV93YWl0X2lycShkZXYsIGlycXdhaXQtPmlycV9zZXEpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2VuYWJsZV9pbnRlcnJ1cHQgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MTYgZmxhZzsKKworCWZsYWcgPSAwOworCWlmIChkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9BKQorCQlmbGFnIHw9IFZTWU5DX1BJUEVBX0ZMQUc7CisJaWYgKGRldl9wcml2LT52YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpCisJCWZsYWcgfD0gVlNZTkNfUElQRUJfRkxBRzsKKworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgVVNFUl9JTlRfRkxBRyB8IGZsYWcpOworfQorCisvKiBTZXQgdGhlIHZibGFuayBtb25pdG9yIHBpcGUKKyAqLworaW50IGk5MTVfdmJsYW5rX3BpcGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfdmJsYW5rX3BpcGVfdCAqcGlwZSA9IGRhdGE7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocGlwZS0+cGlwZSAmIH4oRFJNX0k5MTVfVkJMQU5LX1BJUEVfQXxEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIGludmFsaWQgcGlwZSAweCV4XG4iLCBwaXBlLT5waXBlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGV2X3ByaXYtPnZibGFua19waXBlID0gcGlwZS0+cGlwZTsKKworCWk5MTVfZW5hYmxlX2ludGVycnVwdCAoZGV2KTsKKworCXJldHVybiAwOworfQorCitpbnQgaTkxNV92YmxhbmtfcGlwZV9nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1faTkxNV92YmxhbmtfcGlwZV90ICpwaXBlID0gZGF0YTsKKwl1MTYgZmxhZzsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWZsYWcgPSBJOTE1X1JFQUQoSTkxNVJFR19JTlRfRU5BQkxFX1IpOworCXBpcGUtPnBpcGUgPSAwOworCWlmIChmbGFnICYgVlNZTkNfUElQRUFfRkxBRykKKwkJcGlwZS0+cGlwZSB8PSBEUk1fSTkxNV9WQkxBTktfUElQRV9BOworCWlmIChmbGFnICYgVlNZTkNfUElQRUJfRkxBRykKKwkJcGlwZS0+cGlwZSB8PSBEUk1fSTkxNV9WQkxBTktfUElQRV9COworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogU2NoZWR1bGUgYnVmZmVyIHN3YXAgYXQgZ2l2ZW4gdmVydGljYWwgYmxhbmsuCisgKi8KK2ludCBpOTE1X3ZibGFua19zd2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfdmJsYW5rX3N3YXBfdCAqc3dhcCA9IGRhdGE7CisJZHJtX2k5MTVfdmJsX3N3YXBfdCAqdmJsX3N3YXA7CisJdW5zaWduZWQgaW50IHBpcGUsIHNlcXR5cGUsIGN1cnNlcTsKKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOworCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiJXMgY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGRldl9wcml2LT5zYXJlYV9wcml2LT5yb3RhdGlvbikgeworCQlEUk1fREVCVUcoIlJvdGF0aW9uIG5vdCBzdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoc3dhcC0+c2VxdHlwZSAmIH4oX0RSTV9WQkxBTktfUkVMQVRJVkUgfCBfRFJNX1ZCTEFOS19BQlNPTFVURSB8CisJCQkgICAgIF9EUk1fVkJMQU5LX1NFQ09OREFSWSB8IF9EUk1fVkJMQU5LX05FWFRPTk1JU1MpKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBzZXF1ZW5jZSB0eXBlIDB4JXhcbiIsIHN3YXAtPnNlcXR5cGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlwaXBlID0gKHN3YXAtPnNlcXR5cGUgJiBfRFJNX1ZCTEFOS19TRUNPTkRBUlkpID8gMSA6IDA7CisKKwlzZXF0eXBlID0gc3dhcC0+c2VxdHlwZSAmIChfRFJNX1ZCTEFOS19SRUxBVElWRSB8IF9EUk1fVkJMQU5LX0FCU09MVVRFKTsKKworCWlmICghKGRldl9wcml2LT52YmxhbmtfcGlwZSAmICgxIDw8IHBpcGUpKSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgcGlwZSAlZFxuIiwgcGlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwlpZiAoIWRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXAtPmRyYXdhYmxlKSkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisJCURSTV9ERUJVRygiSW52YWxpZCBkcmF3YWJsZSBJRCAlZFxuIiwgc3dhcC0+ZHJhd2FibGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwljdXJzZXEgPSBhdG9taWNfcmVhZChwaXBlID8gJmRldi0+dmJsX3JlY2VpdmVkMiA6ICZkZXYtPnZibF9yZWNlaXZlZCk7CisKKwlpZiAoc2VxdHlwZSA9PSBfRFJNX1ZCTEFOS19SRUxBVElWRSkKKwkJc3dhcC0+c2VxdWVuY2UgKz0gY3Vyc2VxOworCisJaWYgKChjdXJzZXEgLSBzd2FwLT5zZXF1ZW5jZSkgPD0gKDE8PDIzKSkgeworCQlpZiAoc3dhcC0+c2VxdHlwZSAmIF9EUk1fVkJMQU5LX05FWFRPTk1JU1MpIHsKKwkJCXN3YXAtPnNlcXVlbmNlID0gY3Vyc2VxICsgMTsKKwkJfSBlbHNlIHsKKwkJCURSTV9ERUJVRygiTWlzc2VkIHRhcmdldCBzZXF1ZW5jZVxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaChsaXN0LCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKSB7CisJCXZibF9zd2FwID0gbGlzdF9lbnRyeShsaXN0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKworCQlpZiAodmJsX3N3YXAtPmRyd19pZCA9PSBzd2FwLT5kcmF3YWJsZSAmJgorCQkgICAgdmJsX3N3YXAtPnBpcGUgPT0gcGlwZSAmJgorCQkgICAgdmJsX3N3YXAtPnNlcXVlbmNlID09IHN3YXAtPnNlcXVlbmNlKSB7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCQkJRFJNX0RFQlVHKCJBbHJlYWR5IHNjaGVkdWxlZFxuIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlpZiAoZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPj0gMTAwKSB7CisJCURSTV9ERUJVRygiVG9vIG1hbnkgc3dhcHMgcXVldWVkXG4iKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisKKwl2Ymxfc3dhcCA9IGRybV9jYWxsb2MoMSwgc2l6ZW9mKCp2Ymxfc3dhcCksIERSTV9NRU1fRFJJVkVSKTsKKworCWlmICghdmJsX3N3YXApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IHRvIHF1ZXVlIHN3YXBcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwl2Ymxfc3dhcC0+ZHJ3X2lkID0gc3dhcC0+ZHJhd2FibGU7CisJdmJsX3N3YXAtPnBpcGUgPSBwaXBlOworCXZibF9zd2FwLT5zZXF1ZW5jZSA9IHN3YXAtPnNlcXVlbmNlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlsaXN0X2FkZF90YWlsKCZ2Ymxfc3dhcC0+aGVhZCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCk7CisJZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcrKzsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworLyogZHJtX2RtYS5oIGhvb2tzCisqLwordm9pZCBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJSTkxNV9XUklURTE2KEk5MTVSRUdfSFdTVEFNLCAweGZmZmUpOworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9NQVNLX1IsIDB4MCk7CisJSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCAweDApOworfQorCit2b2lkIGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKTsKKwlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA9IDA7CisKKwlpZiAoIWRldl9wcml2LT52YmxhbmtfcGlwZSkKKwkJZGV2X3ByaXYtPnZibGFua19waXBlID0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQTsKKwlpOTE1X2VuYWJsZV9pbnRlcnJ1cHQoZGV2KTsKKwlEUk1fSU5JVF9XQUlUUVVFVUUoJmRldl9wcml2LT5pcnFfcXVldWUpOworfQorCit2b2lkIGk5MTVfZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MTYgdGVtcDsKKworCWlmICghZGV2X3ByaXYpCisJCXJldHVybjsKKworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0hXU1RBTSwgMHhmZmZmKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfTUFTS19SLCAweGZmZmYpOworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgMHgwKTsKKworCXRlbXAgPSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUiwgdGVtcCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfbWVtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfbWVtLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbWVtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL01ha2VmaWxlCkBAIC0wLDAgKzEsMTEgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK21nYS15IDo9IG1nYV9kcnYubyBtZ2FfZG1hLm8gbWdhX3N0YXRlLm8gbWdhX3dhcnAubyBtZ2FfaXJxLm8KKworbWdhLSQoQ09ORklHX0NPTVBBVCkgKz0gbWdhX2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9NR0EpCSs9IG1nYS5vCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vbWdhX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kbWEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pb2MzMi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pb2MzMi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaXJxLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV91Y29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfdWNvZGUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfdWNvZGUuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfdWNvZGUuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2Ffd2FycC5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffd2FycC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV93YXJwLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3dhcnAuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3IxMjgvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2M3MmFlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvTWFrZWZpbGUKQEAgLTAsMCArMSwxMCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQorcjEyOC15ICAgOj0gcjEyOF9kcnYubyByMTI4X2NjZS5vIHIxMjhfc3RhdGUubyByMTI4X2lycS5vCisKK3IxMjgtJChDT05GSUdfQ09NUEFUKSAgICs9IHIxMjhfaW9jMzIubworCitvYmotJChDT05GSUdfRFJNX1IxMjgpCSs9IHIxMjgubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2NjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9jY2UuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yMTI4X2NjZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2NjZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pcnEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X3N0YXRlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X3N0YXRlLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYjUyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMTAgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK3JhZGVvbi15IDo9IHJhZGVvbl9kcnYubyByYWRlb25fY3AubyByYWRlb25fc3RhdGUubyByYWRlb25fbWVtLm8gcmFkZW9uX2lycS5vIHIzMDBfY21kYnVmLm8KKworcmFkZW9uLSQoQ09ORklHX0NPTVBBVCkgKz0gcmFkZW9uX2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9SQURFT04pKz0gcmFkZW9uLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDJkZjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX2NtZGJ1Zi5jCkBAIC0wLDAgKzEsMTA3MSBAQAorLyogcjMwMF9jbWRidWYuYyAtLSBDb21tYW5kIGJ1ZmZlciBlbWlzc2lvbiBmb3IgUjMwMCAtKi0gbGludXgtYyAtKi0KKyAqCisgKiBDb3B5cmlnaHQgKEMpIFRoZSBXZWF0aGVyIENoYW5uZWwsIEluYy4gIDIwMDIuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgTmljb2xhaSBIYWVobmxlLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgV2VhdGhlciBDaGFubmVsIChUTSkgZnVuZGVkIFR1bmdzdGVuIEdyYXBoaWNzIHRvIGRldmVsb3AgdGhlCisgKiBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIFJhZGVvbiA4NTAwIGRyaXZlciB1bmRlciB0aGUgWEZyZWU4NiBsaWNlbnNlLgorICogVGhpcyBub3RpY2UgbXVzdCBiZSBwcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBOaWNvbGFpIEhhZWhubGUgPHByZWZlY3RfQGdteC5uZXQ+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorI2luY2x1ZGUgInIzMDBfcmVnLmgiCisKKyNkZWZpbmUgUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTCQk0CisKKy8qIFZhbHVlcyBmb3IgUjMwMF9SRV9DTElQUkVDVF9DTlRMIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIGNsaXByZWN0cworICovCitzdGF0aWMgY29uc3QgaW50IHIzMDBfY2xpcHJlY3RfY250bFs0XSA9IHsKKwkweEFBQUEsCisJMHhFRUVFLAorCTB4RkVGRSwKKwkweEZGRkUKK307CisKKy8qKgorICogRW1pdCB1cCB0byBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMgY2xpcHJlY3RzIGZyb20gdGhlIGdpdmVuIGNvbW1hbmQKKyAqIGJ1ZmZlciwgc3RhcnRpbmcgd2l0aCBpbmRleCBuLgorICovCitzdGF0aWMgaW50IHIzMDBfZW1pdF9jbGlwcmVjdHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLCBpbnQgbikKK3sKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7CisJaW50IG5yOworCWludCBpOworCVJJTkdfTE9DQUxTOworCisJbnIgPSBjbWRidWYtPm5ib3ggLSBuOworCWlmIChuciA+IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUykKKwkJbnIgPSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFM7CisKKwlEUk1fREVCVUcoIiVpIGNsaXByZWN0c1xuIiwgbnIpOworCisJaWYgKG5yKSB7CisJCUJFR0lOX1JJTkcoNiArIG5yICogMik7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9DTElQUkVDVF9UTF8wLCBuciAqIDIgLSAxKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IG5yOyArK2kpIHsKKwkJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVJfVU5DSEVDS0VECisJCQkgICAgKCZib3gsICZjbWRidWYtPmJveGVzW24gKyBpXSwgc2l6ZW9mKGJveCkpKSB7CisJCQkJRFJNX0VSUk9SKCJjb3B5IGNsaXByZWN0IGZhdWx0ZWRcbiIpOworCQkJCXJldHVybiAtRUZBVUxUOworCQkJfQorCisJCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgeworCQkJCWJveC54MSA9IChib3gueDEpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MSA9IChib3gueTEpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC54MiA9IChib3gueDIpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MiA9IChib3gueTIpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJfSBlbHNlIHsKKwkJCQlib3gueDEgPSAoYm94LngxICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MSA9IChib3gueTEgKyBSMzAwX0NMSVBSRUNUX09GRlNFVCkgJgorCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7CisJCQkJYm94LngyID0gKGJveC54MiArIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUKSAmCisJCQkJCVIzMDBfQ0xJUFJFQ1RfTUFTSzsKKwkJCQlib3gueTIgPSAoYm94LnkyICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCisJCQl9CisJCQlPVVRfUklORygoYm94LngxIDw8IFIzMDBfQ0xJUFJFQ1RfWF9TSElGVCkgfAorCQkJCSAoYm94LnkxIDw8IFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCkpOworCQkJT1VUX1JJTkcoKGJveC54MiA8PCBSMzAwX0NMSVBSRUNUX1hfU0hJRlQpIHwKKwkJCQkgKGJveC55MiA8PCBSMzAwX0NMSVBSRUNUX1lfU0hJRlQpKTsKKworCQl9CisKKwkJT1VUX1JJTkdfUkVHKFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCwgcjMwMF9jbGlwcmVjdF9jbnRsW25yIC0gMV0pOworCisJCS8qIFRPRE8vU0VDVVJJVFk6IEZvcmNlIHNjaXNzb3JzIHRvIGEgc2FmZSB2YWx1ZSwgb3RoZXJ3aXNlIHRoZQorCQkgKiBjbGllbnQgbWlnaHQgYmUgYWJsZSB0byB0cmFtcGxlIG92ZXIgbWVtb3J5LgorCQkgKiBUaGUgaW1wYWN0IHNob3VsZCBiZSB2ZXJ5IGxpbWl0ZWQsIGJ1dCBJJ2QgcmF0aGVyIGJlIHNhZmUgdGhhbgorCQkgKiBzb3JyeS4KKwkJICovCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9TQ0lTU09SU19UTCwgMSkpOworCQlPVVRfUklORygwKTsKKwkJT1VUX1JJTkcoUjMwMF9TQ0lTU09SU19YX01BU0sgfCBSMzAwX1NDSVNTT1JTX1lfTUFTSyk7CisJCUFEVkFOQ0VfUklORygpOworCX0gZWxzZSB7CisJCS8qIFdoeSB3ZSBhbGxvdyB6ZXJvIGNsaXByZWN0IHJlbmRlcmluZzoKKwkJICogVGhlcmUgYXJlIHNvbWUgY29tbWFuZHMgaW4gYSBjb21tYW5kIGJ1ZmZlciB0aGF0IG11c3QgYmUgc3VibWl0dGVkCisJCSAqIGV2ZW4gd2hlbiB0aGVyZSBhcmUgbm8gY2xpcHJlY3RzLCBlLmcuIERNQSBidWZmZXIgZGlzY2FyZAorCQkgKiBvciBzdGF0ZSBzZXR0aW5nICh0aG91Z2ggc3RhdGUgc2V0dGluZyBjb3VsZCBiZSBhdm9pZGVkIGJ5CisJCSAqIHNpbXVsYXRpbmcgYSBsb3NzIG9mIGNvbnRleHQpLgorCQkgKgorCQkgKiBOb3cgc2luY2UgdGhlIGNtZGJ1ZiBpbnRlcmZhY2UgaXMgc28gY2hhb3RpYyByaWdodCBub3cgKGFuZCBpcworCQkgKiBib3VuZCB0byByZW1haW4gdGhhdCB3YXkgZm9yIGEgYml0IHVudGlsIHRoaW5ncyBzZXR0bGUgZG93biksCisJCSAqIGl0IGlzIGJhc2ljYWxseSBpbXBvc3NpYmxlIHRvIGZpbHRlciBvdXQgdGhlIGNvbW1hbmRzIHRoYXQgYXJlCisJCSAqIG5lY2Vzc2FyeSBhbmQgdGhvc2UgdGhhdCBhcmVuJ3QuCisJCSAqCisJCSAqIFNvIEkgY2hvb3NlIHRoZSBzYWZlIHdheSBhbmQgZG9uJ3QgZG8gYW55IGZpbHRlcmluZyBhdCBhbGw7CisJCSAqIGluc3RlYWQsIEkgc2ltcGx5IHNldCB1cCB0aGUgZW5naW5lIHNvIHRoYXQgYWxsIHJlbmRlcmluZworCQkgKiBjYW4ndCBwcm9kdWNlIGFueSBmcmFnbWVudHMuCisJCSAqLworCQlCRUdJTl9SSU5HKDIpOworCQlPVVRfUklOR19SRUcoUjMwMF9SRV9DTElQUkVDVF9DTlRMLCAwKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1OCByMzAwX3JlZ19mbGFnc1sweDEwMDAwID4+IDJdOworCit2b2lkIHIzMDBfaW5pdF9yZWdfZmxhZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpbnQgaTsKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJbWVtc2V0KHIzMDBfcmVnX2ZsYWdzLCAwLCAweDEwMDAwID4+IDIpOworI2RlZmluZSBBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LG1hcmspIFwKKwkJZm9yKGk9KChyZWcpPj4yKTtpPCgocmVnKT4+MikrKGNvdW50KTtpKyspXAorCQkJcjMwMF9yZWdfZmxhZ3NbaV18PShtYXJrKTsKKworI2RlZmluZSBNQVJLX1NBRkUJCTEKKyNkZWZpbmUgTUFSS19DSEVDS19PRkZTRVQJMgorCisjZGVmaW5lIEFERF9SQU5HRShyZWcsIGNvdW50KQlBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LCBNQVJLX1NBRkUpCisKKwkvKiB0aGVzZSBtYXRjaCBjbWR1Y3MoKSBjb21tYW5kIGluIHIzMDBfZHJpdmVyL3IzMDAvcjMwMF9jbWRidWYuYyAqLworCUFERF9SQU5HRShSMzAwX1NFX1ZQT1JUX1hTQ0FMRSwgNik7CisJQUREX1JBTkdFKFIzMDBfVkFQX0NOVEwsIDEpOworCUFERF9SQU5HRShSMzAwX1NFX1ZURV9DTlRMLCAyKTsKKwlBRERfUkFOR0UoMHgyMTM0LCAyKTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfQ05UTF9TVEFUVVMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9JTlBVVF9DTlRMXzAsIDIpOworCUFERF9SQU5HRSgweDIxREMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9VTktOT1dOXzIyMUMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9DTElQX1hfMCwgNCk7CisJQUREX1JBTkdFKFIzMDBfVkFQX1BWU19XQUlUSURMRSwgMSk7CisJQUREX1JBTkdFKFIzMDBfVkFQX1VOS05PV05fMjI4OCwgMSk7CisJQUREX1JBTkdFKFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAsIDIpOworCUFERF9SQU5HRShSMzAwX1ZBUF9QVlNfQ05UTF8xLCAzKTsKKwlBRERfUkFOR0UoUjMwMF9HQl9FTkFCTEUsIDEpOworCUFERF9SQU5HRShSMzAwX0dCX01TUE9TMCwgNSk7CisJQUREX1JBTkdFKFIzMDBfVFhfQ05UTCwgMSk7CisJQUREX1JBTkdFKFIzMDBfVFhfRU5BQkxFLCAxKTsKKwlBRERfUkFOR0UoMHg0MjAwLCA0KTsKKwlBRERfUkFOR0UoMHg0MjE0LCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9QT0lOVFNJWkUsIDEpOworCUFERF9SQU5HRSgweDQyMzAsIDMpOworCUFERF9SQU5HRShSMzAwX1JFX0xJTkVfQ05ULCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9VTks0MjM4LCAxKTsKKwlBRERfUkFOR0UoMHg0MjYwLCAzKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9TSEFERSwgNCk7CisJQUREX1JBTkdFKFIzMDBfUkVfUE9MWUdPTl9NT0RFLCA1KTsKKwlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19DTlRMLCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiwgNCk7CisJQUREX1JBTkdFKFIzMDBfUkVfT0NDTFVTSU9OX0NOVEwsIDEpOworCUFERF9SQU5HRShSMzAwX1JFX0NVTExfQ05UTCwgMSk7CisJQUREX1JBTkdFKDB4NDJDMCwgMik7CisJQUREX1JBTkdFKFIzMDBfUlNfQ05UTF8wLCAyKTsKKworCUFERF9SQU5HRShSMzAwX1NDX0hZUEVSWiwgMik7CisJQUREX1JBTkdFKDB4NDNFOCwgMSk7CisKKwlBRERfUkFOR0UoMHg0NkE0LCA1KTsKKworCUFERF9SQU5HRShSMzAwX1JFX0ZPR19TVEFURSwgMSk7CisJQUREX1JBTkdFKFIzMDBfRk9HX0NPTE9SX1IsIDMpOworCUFERF9SQU5HRShSMzAwX1BQX0FMUEhBX1RFU1QsIDIpOworCUFERF9SQU5HRSgweDRCRDgsIDEpOworCUFERF9SQU5HRShSMzAwX1BGU19QQVJBTV8wX1gsIDY0KTsKKwlBRERfUkFOR0UoMHg0RTAwLCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SQjNEX0NCTEVORCwgMik7CisJQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUk1BU0ssIDEpOworCUFERF9SQU5HRShSMzAwX1JCM0RfQkxFTkRfQ09MT1IsIDMpOworCUFERF9SQU5HRV9NQVJLKFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAsIDEsIE1BUktfQ0hFQ0tfT0ZGU0VUKTsJLyogY2hlY2sgb2Zmc2V0ICovCisJQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUlBJVENIMCwgMSk7CisJQUREX1JBTkdFKDB4NEU1MCwgOSk7CisJQUREX1JBTkdFKDB4NEU4OCwgMSk7CisJQUREX1JBTkdFKDB4NEVBMCwgMik7CisJQUREX1JBTkdFKFIzMDBfWkJfQ05UTCwgMyk7CisJQUREX1JBTkdFKFIzMDBfWkJfRk9STUFULCA0KTsKKwlBRERfUkFOR0VfTUFSSyhSMzAwX1pCX0RFUFRIT0ZGU0VULCAxLCBNQVJLX0NIRUNLX09GRlNFVCk7CS8qIGNoZWNrIG9mZnNldCAqLworCUFERF9SQU5HRShSMzAwX1pCX0RFUFRIUElUQ0gsIDEpOworCUFERF9SQU5HRShSMzAwX1pCX0RFUFRIQ0xFQVJWQUxVRSwgMSk7CisJQUREX1JBTkdFKFIzMDBfWkJfWk1BU0tfT0ZGU0VULCAxMyk7CisKKwlBRERfUkFOR0UoUjMwMF9UWF9GSUxURVJfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX0ZJTFRFUjFfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX1NJWkVfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX0ZPUk1BVF8wLCAxNik7CisJQUREX1JBTkdFKFIzMDBfVFhfUElUQ0hfMCwgMTYpOworCS8qIFRleHR1cmUgb2Zmc2V0IGlzIGRhbmdlcm91cyBhbmQgbmVlZHMgbW9yZSBjaGVja2luZyAqLworCUFERF9SQU5HRV9NQVJLKFIzMDBfVFhfT0ZGU0VUXzAsIDE2LCBNQVJLX0NIRUNLX09GRlNFVCk7CisJQUREX1JBTkdFKFIzMDBfVFhfQ0hST01BX0tFWV8wLCAxNik7CisJQUREX1JBTkdFKFIzMDBfVFhfQk9SREVSX0NPTE9SXzAsIDE2KTsKKworCS8qIFNwb3JhZGljIHJlZ2lzdGVycyB1c2VkIGFzIHByaW1pdGl2ZXMgYXJlIGVtaXR0ZWQgKi8KKwlBRERfUkFOR0UoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCwgMSk7CisJQUREX1JBTkdFKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAxKTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8wLCA4KTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8wLCA4KTsKKworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1JWNTE1KSB7CisJCUFERF9SQU5HRShSNTAwX1ZBUF9JTkRFWF9PRkZTRVQsIDEpOworCQlBRERfUkFOR0UoUjUwMF9VU19DT05GSUcsIDIpOworCQlBRERfUkFOR0UoUjUwMF9VU19DT0RFX0FERFIsIDMpOworCQlBRERfUkFOR0UoUjUwMF9VU19GQ19DVFJMLCAxKTsKKwkJQUREX1JBTkdFKFI1MDBfUlNfSVBfMCwgMTYpOworCQlBRERfUkFOR0UoUjUwMF9SU19JTlNUXzAsIDE2KTsKKwkJQUREX1JBTkdFKFI1MDBfUkIzRF9DT0xPUl9DTEVBUl9WQUxVRV9BUiwgMik7CisJCUFERF9SQU5HRShSNTAwX1JCM0RfQ09OU1RBTlRfQ09MT1JfQVIsIDIpOworCQlBRERfUkFOR0UoUjUwMF9aQl9GSUZPX1NJWkUsIDIpOworCX0gZWxzZSB7CisJCUFERF9SQU5HRShSMzAwX1BGU19DTlRMXzAsIDMpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfTk9ERV8wLCA0KTsKKwkJQUREX1JBTkdFKFIzMDBfUEZTX1RFWElfMCwgNjQpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfSU5TVFIwXzAsIDY0KTsKKwkJQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSMV8wLCA2NCk7CisJCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjJfMCwgNjQpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfSU5TVFIzXzAsIDY0KTsKKwkJQUREX1JBTkdFKFIzMDBfUlNfSU5URVJQXzAsIDgpOworCQlBRERfUkFOR0UoUjMwMF9SU19ST1VURV8wLCA4KTsKKworCX0KK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfY2hlY2tfcmFuZ2UodW5zaWduZWQgcmVnLCBpbnQgY291bnQpCit7CisJaW50IGk7CisJaWYgKHJlZyAmIH4weGZmZmYpCisJCXJldHVybiAtMTsKKwlmb3IgKGkgPSAocmVnID4+IDIpOyBpIDwgKHJlZyA+PiAyKSArIGNvdW50OyBpKyspCisJCWlmIChyMzAwX3JlZ19mbGFnc1tpXSAhPSBNQVJLX1NBRkUpCisJCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9jYXJlZnVsbHlfY2hlY2tlZF9wYWNrZXQwKGRybV9yYWRlb25fcHJpdmF0ZV90ICoKKwkJCQkJCQkgIGRldl9wcml2LAorCQkJCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90CisJCQkJCQkJICAqIGNtZGJ1ZiwKKwkJCQkJCQkgIGRybV9yMzAwX2NtZF9oZWFkZXJfdAorCQkJCQkJCSAgaGVhZGVyKQoreworCWludCByZWc7CisJaW50IHN6OworCWludCBpOworCWludCB2YWx1ZXNbNjRdOworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucGFja2V0MC5jb3VudDsKKwlyZWcgPSAoaGVhZGVyLnBhY2tldDAucmVnaGkgPDwgOCkgfCBoZWFkZXIucGFja2V0MC5yZWdsbzsKKworCWlmICgoc3ogPiA2NCkgfHwgKHN6IDwgMCkpIHsKKwkJRFJNX0VSUk9SCisJCSAgICAoIkNhbm5vdCBlbWl0IG1vcmUgdGhhbiA2NCB2YWx1ZXMgYXQgYSB0aW1lIChyZWc9JTA0eCBzej0lZClcbiIsCisJCSAgICAgcmVnLCBzeik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgc3o7IGkrKykgeworCQl2YWx1ZXNbaV0gPSAoKGludCAqKWNtZGJ1Zi0+YnVmKVtpXTsKKwkJc3dpdGNoIChyMzAwX3JlZ19mbGFnc1socmVnID4+IDIpICsgaV0pIHsKKwkJY2FzZSBNQVJLX1NBRkU6CisJCQlicmVhazsKKwkJY2FzZSBNQVJLX0NIRUNLX09GRlNFVDoKKwkJCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgKHUzMikgdmFsdWVzW2ldKSkgeworCQkJCURSTV9FUlJPUgorCQkJCSAgICAoIk9mZnNldCBmYWlsZWQgcmFuZ2UgY2hlY2sgKHJlZz0lMDR4IHN6PSVkKVxuIiwKKwkJCQkgICAgIHJlZywgc3opOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlEUk1fRVJST1IoIlJlZ2lzdGVyICUwNHggZmFpbGVkIGNoZWNrIGFzIGZsYWc9JTAyeFxuIiwKKwkJCQkgIHJlZyArIGkgKiA0LCByMzAwX3JlZ19mbGFnc1socmVnID4+IDIpICsgaV0pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlCRUdJTl9SSU5HKDEgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChyZWcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKHZhbHVlcywgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogRW1pdHMgYSBwYWNrZXQwIHNldHRpbmcgYXJiaXRyYXJ5IHJlZ2lzdGVycy4KKyAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1Zi4KKyAqCisgKiBOb3RlIHRoYXQgY2hlY2tzIGFyZSBwZXJmb3JtZWQgb24gY29udGVudHMgYW5kIGFkZHJlc3NlcyBvZiB0aGUgcmVnaXN0ZXJzCisgKi8KK3N0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfcGFja2V0MChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCWludCByZWc7CisJaW50IHN6OworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucGFja2V0MC5jb3VudDsKKwlyZWcgPSAoaGVhZGVyLnBhY2tldDAucmVnaGkgPDwgOCkgfCBoZWFkZXIucGFja2V0MC5yZWdsbzsKKworCWlmICghc3opCisJCXJldHVybiAwOworCisJaWYgKHN6ICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHJlZyArIHN6ICogNCA+PSAweDEwMDAwKSB7CisJCURSTV9FUlJPUigiTm8gc3VjaCByZWdpc3RlcnMgaW4gaGFyZHdhcmUgcmVnPSUwNHggc3o9JWRcbiIsIHJlZywKKwkJCSAgc3opOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocjMwMF9jaGVja19yYW5nZShyZWcsIHN6KSkgeworCQkvKiBnbyBhbmQgY2hlY2sgZXZlcnl0aGluZyAqLworCQlyZXR1cm4gcjMwMF9lbWl0X2NhcmVmdWxseV9jaGVja2VkX3BhY2tldDAoZGV2X3ByaXYsIGNtZGJ1ZiwKKwkJCQkJCQkgICBoZWFkZXIpOworCX0KKwkvKiB0aGUgcmVzdCBvZiB0aGUgZGF0YSBpcyBzYWZlIHRvIGVtaXQsIHdoYXRldmVyIHRoZSB2YWx1ZXMgdGhlIHVzZXIgcGFzc2VkICovCisKKwlCRUdJTl9SSU5HKDEgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChyZWcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKiljbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogVXBsb2FkcyB1c2VyLXN1cHBsaWVkIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9ucyBvciBwYXJhbWV0ZXJzIG9udG8KKyAqIHRoZSBncmFwaGljcyBjYXJkLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3ZwdShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCSAgICBkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCWludCBzejsKKwlpbnQgYWRkcjsKKwlSSU5HX0xPQ0FMUzsKKworCXN6ID0gaGVhZGVyLnZwdS5jb3VudDsKKwlhZGRyID0gKGhlYWRlci52cHUuYWRyaGkgPDwgOCkgfCBoZWFkZXIudnB1LmFkcmxvOworCisJaWYgKCFzeikKKwkJcmV0dXJuIDA7CisJaWYgKHN6ICogMTYgPiBjbWRidWYtPmJ1ZnN6KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCUJFR0lOX1JJTkcoNSArIHN6ICogNCk7CisJLyogV2FpdCBmb3IgVkFQIHRvIGNvbWUgdG8gc2Vuc2VzLi4gKi8KKwkvKiB0aGVyZSBpcyBubyBuZWVkIHRvIGVtaXQgaXQgbXVsdGlwbGUgdGltZXMsIChvbmx5IG9uY2UgYmVmb3JlIFZBUCBpcyBwcm9ncmFtbWVkLAorCSAgIGJ1dCB0aGlzIG9wdGltaXphdGlvbiBpcyBmb3IgbGF0ZXIgKi8KKwlPVVRfUklOR19SRUcoUjMwMF9WQVBfUFZTX1dBSVRJRExFLCAwKTsKKwlPVVRfUklOR19SRUcoUjMwMF9WQVBfUFZTX1VQTE9BRF9BRERSRVNTLCBhZGRyKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFIzMDBfVkFQX1BWU19VUExPQURfREFUQSwgc3ogKiA0IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKiljbWRidWYtPmJ1Ziwgc3ogKiA0KTsKKworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiAxNjsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogMTY7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBFbWl0IGEgY2xlYXIgcGFja2V0IGZyb20gdXNlcnNwYWNlLgorICogQ2FsbGVkIGJ5IHIzMDBfZW1pdF9wYWNrZXQzLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2NsZWFyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkgICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwlSSU5HX0xPQ0FMUzsKKworCWlmICg4ICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORygxMCk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSMjAwXzNEX0RSQVdfSU1NRF8yLCA4KSk7CisJT1VUX1JJTkcoUjMwMF9QUklNX1RZUEVfUE9JTlQgfCBSMzAwX1BSSU1fV0FMS19SSU5HIHwKKwkJICgxIDw8IFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKwlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIDgpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gOCAqIDQ7CisJY21kYnVmLT5idWZzeiAtPSA4ICogNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0XzNkX2xvYWRfdmJwbnRyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCQkgICAgICAgdTMyIGhlYWRlcikKK3sKKwlpbnQgY291bnQsIGksIGs7CisjZGVmaW5lIE1BWF9BUlJBWV9QQUNLRVQgIDY0CisJdTMyIHBheWxvYWRbTUFYX0FSUkFZX1BBQ0tFVF07CisJdTMyIG5hcnJheXM7CisJUklOR19MT0NBTFM7CisKKwljb3VudCA9IChoZWFkZXIgPj4gMTYpICYgMHgzZmZmOworCisJaWYgKChjb3VudCArIDEpID4gTUFYX0FSUkFZX1BBQ0tFVCkgeworCQlEUk1fRVJST1IoIlRvbyBsYXJnZSBwYXlsb2FkIGluIDNEX0xPQURfVkJQTlRSIChjb3VudD0lZClcbiIsCisJCQkgIGNvdW50KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCW1lbXNldChwYXlsb2FkLCAwLCBNQVhfQVJSQVlfUEFDS0VUICogNCk7CisJbWVtY3B5KHBheWxvYWQsIGNtZGJ1Zi0+YnVmICsgNCwgKGNvdW50ICsgMSkgKiA0KTsKKworCS8qIGNhcmVmdWxseSBjaGVjayBwYWNrZXQgY29udGVudHMgKi8KKworCW5hcnJheXMgPSBwYXlsb2FkWzBdOworCWsgPSAwOworCWkgPSAxOworCXdoaWxlICgoayA8IG5hcnJheXMpICYmIChpIDwgKGNvdW50ICsgMSkpKSB7CisJCWkrKzsJCS8qIHNraXAgYXR0cmlidXRlIGZpZWxkICovCisJCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgcGF5bG9hZFtpXSkpIHsKKwkJCURSTV9FUlJPUgorCQkJICAgICgiT2Zmc2V0IGZhaWxlZCByYW5nZSBjaGVjayAoaz0lZCBpPSVkKSB3aGlsZSBwcm9jZXNzaW5nIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCisJCQkgICAgIGssIGkpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJaysrOworCQlpKys7CisJCWlmIChrID09IG5hcnJheXMpCisJCQlicmVhazsKKwkJLyogaGF2ZSBvbmUgbW9yZSB0byBwcm9jZXNzLCB0aGV5IGNvbWUgaW4gcGFpcnMgKi8KKwkJaWYgKCFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBwYXlsb2FkW2ldKSkgeworCQkJRFJNX0VSUk9SCisJCQkgICAgKCJPZmZzZXQgZmFpbGVkIHJhbmdlIGNoZWNrIChrPSVkIGk9JWQpIHdoaWxlIHByb2Nlc3NpbmcgM0RfTE9BRF9WQlBOVFIgcGFja2V0LlxuIiwKKwkJCSAgICAgaywgaSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlrKys7CisJCWkrKzsKKwl9CisJLyogZG8gdGhlIGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdCA/ICovCisJaWYgKChrICE9IG5hcnJheXMpIHx8IChpICE9IChjb3VudCArIDEpKSkgeworCQlEUk1fRVJST1IKKwkJICAgICgiTWFsZm9ybWVkIDNEX0xPQURfVkJQTlRSIHBhY2tldCAoaz0lZCBpPSVkIG5hcnJheXM9JWQgY291bnQrMT0lZCkuXG4iLAorCQkgICAgIGssIGksIG5hcnJheXMsIGNvdW50ICsgMSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGFsbCBjbGVhciwgb3V0cHV0IHBhY2tldCAqLworCisJQkVHSU5fUklORyhjb3VudCArIDIpOworCU9VVF9SSU5HKGhlYWRlcik7CisJT1VUX1JJTkdfVEFCTEUocGF5bG9hZCwgY291bnQgKyAxKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IChjb3VudCArIDIpICogNDsKKwljbWRidWYtPmJ1ZnN6IC09IChjb3VudCArIDIpICogNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2JpdGJsdF9tdWx0aShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJdTMyICpjbWQgPSAodTMyICopIGNtZGJ1Zi0+YnVmOworCWludCBjb3VudCwgcmV0OworCVJJTkdfTE9DQUxTOworCisJY291bnQ9KGNtZFswXT4+MTYpICYgMHgzZmZmOworCisJaWYgKGNtZFswXSAmIDB4ODAwMCkgeworCQl1MzIgb2Zmc2V0OworCisJCWlmIChjbWRbMV0gJiAoUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwKKwkJCSAgICAgIHwgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwpKSB7CisJCQlvZmZzZXQgPSBjbWRbMl0gPDwgMTA7CisJCQlyZXQgPSAhcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2Zmc2V0KTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoIkludmFsaWQgYml0Ymx0IGZpcnN0IG9mZnNldCBpcyAlMDhYXG4iLCBvZmZzZXQpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQl9CisKKwkJaWYgKChjbWRbMV0gJiBSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCkgJiYKKwkJICAgIChjbWRbMV0gJiBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKKwkJCW9mZnNldCA9IGNtZFszXSA8PCAxMDsKKwkJCXJldCA9ICFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBvZmZzZXQpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigiSW52YWxpZCBiaXRibHQgc2Vjb25kIG9mZnNldCBpcyAlMDhYXG4iLCBvZmZzZXQpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCisJCX0KKwl9CisKKwlCRUdJTl9SSU5HKGNvdW50KzIpOworCU9VVF9SSU5HKGNtZFswXSk7CisJT1VUX1JJTkdfVEFCTEUoKGludCAqKShjbWRidWYtPmJ1ZiArIDQpLCBjb3VudCArIDEpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gKGNvdW50KzIpKjQ7CisJY21kYnVmLT5idWZzeiAtPSAoY291bnQrMikqNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2luZHhfYnVmZmVyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwl1MzIgKmNtZCA9ICh1MzIgKikgY21kYnVmLT5idWY7CisJaW50IGNvdW50LCByZXQ7CisJUklOR19MT0NBTFM7CisKKwljb3VudD0oY21kWzBdPj4xNikgJiAweDNmZmY7CisKKwlpZiAoKGNtZFsxXSAmIDB4ODAwMGZmZmYpICE9IDB4ODAwMDA4MTApIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIHJlZyBhZGRyZXNzICUwOFhcbiIsIGNtZFsxXSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXQgPSAhcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgY21kWzJdKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciBvZmZzZXQgaXMgJTA4WFxuIiwgY21kWzJdKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhjb3VudCsyKTsKKwlPVVRfUklORyhjbWRbMF0pOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKikoY21kYnVmLT5idWYgKyA0KSwgY291bnQgKyAxKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IChjb3VudCsyKSo0OworCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50KzIpKjQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9yYXdfcGFja2V0Myhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwl1MzIgaGVhZGVyOworCWludCBjb3VudDsKKwlSSU5HX0xPQ0FMUzsKKworCWlmICg0ID4gY21kYnVmLT5idWZzeikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBGaXhtZSAhISBUaGlzIHNpbXBseSBlbWl0cyBhIHBhY2tldCB3aXRob3V0IG11Y2ggY2hlY2tpbmcuCisJICAgV2UgbmVlZCB0byBiZSBzbWFydGVyLiAqLworCisJLyogb2J0YWluIGZpcnN0IHdvcmQgLSBhY3R1YWwgcGFja2V0MyBoZWFkZXIgKi8KKwloZWFkZXIgPSAqKHUzMiAqKSBjbWRidWYtPmJ1ZjsKKworCS8qIElzIGl0IHBhY2tldCAzID8gKi8KKwlpZiAoKGhlYWRlciA+PiAzMCkgIT0gMHgzKSB7CisJCURSTV9FUlJPUigiTm90IGEgcGFja2V0MyBoZWFkZXIgKDB4JTA4eClcbiIsIGhlYWRlcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWNvdW50ID0gKGhlYWRlciA+PiAxNikgJiAweDNmZmY7CisKKwkvKiBDaGVjayBhZ2FpbiBub3cgdGhhdCB3ZSBrbm93IGhvdyBtdWNoIGRhdGEgdG8gZXhwZWN0ICovCisJaWYgKChjb3VudCArIDIpICogNCA+IGNtZGJ1Zi0+YnVmc3opIHsKKwkJRFJNX0VSUk9SCisJCSAgICAoIkV4cGVjdGVkIHBhY2tldDMgb2YgbGVuZ3RoICVkIGJ1dCBoYXZlIG9ubHkgJWQgYnl0ZXMgbGVmdFxuIiwKKwkJICAgICAoY291bnQgKyAyKSAqIDQsIGNtZGJ1Zi0+YnVmc3opOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBJcyBpdCBhIHBhY2tldCB0eXBlIHdlIGtub3cgYWJvdXQgPyAqLworCXN3aXRjaCAoaGVhZGVyICYgMHhmZjAwKSB7CisJY2FzZSBSQURFT05fM0RfTE9BRF9WQlBOVFI6CS8qIGxvYWQgdmVydGV4IGFycmF5IHBvaW50ZXJzICovCisJCXJldHVybiByMzAwX2VtaXRfM2RfbG9hZF92YnBudHIoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKworCWNhc2UgUkFERU9OX0NOVExfQklUQkxUX01VTFRJOgorCQlyZXR1cm4gcjMwMF9lbWl0X2JpdGJsdF9tdWx0aShkZXZfcHJpdiwgY21kYnVmKTsKKworCWNhc2UgUkFERU9OX0NQX0lORFhfQlVGRkVSOgkvKiBEUkFXX0lORFhfMiB3aXRob3V0IElORFhfQlVGRkVSIHNlZW1zIHRvIGxvY2sgdXAgdGhlIGdwdSAqLworCQlyZXR1cm4gcjMwMF9lbWl0X2luZHhfYnVmZmVyKGRldl9wcml2LCBjbWRidWYpOworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU1NRF8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIHVzaW5nIGluLXBhY2tldCB2ZXJ0ZXggZGF0YSAqLworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfVkJVRl8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIG9mIHZlcnRleCBidWZmZXJzIHNldHVwIGVsc2V3aGVyZSAqLworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU5EWF8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIHVzaW5nIGluZGljZXMgdG8gdmVydGV4IGJ1ZmZlciAqLworCWNhc2UgUkFERU9OX1dBSVRfRk9SX0lETEU6CisJY2FzZSBSQURFT05fQ1BfTk9QOgorCQkvKiB0aGVzZSBwYWNrZXRzIGFyZSBzYWZlICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9FUlJPUigiVW5rbm93biBwYWNrZXQzIGhlYWRlciAoMHglMDh4KVxuIiwgaGVhZGVyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhjb3VudCArIDIpOworCU9VVF9SSU5HKGhlYWRlcik7CisJT1VUX1JJTkdfVEFCTEUoKGludCAqKShjbWRidWYtPmJ1ZiArIDQpLCBjb3VudCArIDEpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gKGNvdW50ICsgMikgKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50ICsgMikgKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogRW1pdCBhIHJlbmRlcmluZyBwYWNrZXQzIGZyb20gdXNlcnNwYWNlLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3BhY2tldDMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQlkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKKwkJCQkJZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcikKK3sKKwlpbnQgbjsKKwlpbnQgcmV0OworCWNoYXIgKm9yaWdfYnVmID0gY21kYnVmLT5idWY7CisJaW50IG9yaWdfYnVmc3ogPSBjbWRidWYtPmJ1ZnN6OworCisJLyogVGhpcyBpcyBhIGRvLXdoaWxlLWxvb3Agc28gdGhhdCB3ZSBydW4gdGhlIGludGVyaW9yIGF0IGxlYXN0IG9uY2UsCisJICogZXZlbiBpZiBjbWRidWYtPm5ib3ggaXMgMC4gQ29tcGFyZSByMzAwX2VtaXRfY2xpcHJlY3RzIGZvciByYXRpb25hbGUuCisJICovCisJbiA9IDA7CisJZG8geworCQlpZiAoY21kYnVmLT5uYm94ID4gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTKSB7CisJCQlyZXQgPSByMzAwX2VtaXRfY2xpcHJlY3RzKGRldl9wcml2LCBjbWRidWYsIG4pOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQljbWRidWYtPmJ1ZiA9IG9yaWdfYnVmOworCQkJY21kYnVmLT5idWZzeiA9IG9yaWdfYnVmc3o7CisJCX0KKworCQlzd2l0Y2ggKGhlYWRlci5wYWNrZXQzLnBhY2tldCkgeworCQljYXNlIFIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVI6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVJcbiIpOworCQkJcmV0ID0gcjMwMF9lbWl0X2NsZWFyKGRldl9wcml2LCBjbWRidWYpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X2NsZWFyIGZhaWxlZFxuIik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUEFDS0VUM19SQVc6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDNfUkFXXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9yYXdfcGFja2V0MyhkZXZfcHJpdiwgY21kYnVmKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9yYXdfcGFja2V0MyBmYWlsZWRcbiIpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJRFJNX0VSUk9SKCJiYWQgcGFja2V0MyB0eXBlICVpIGF0ICVwXG4iLAorCQkJCSAgaGVhZGVyLnBhY2tldDMucGFja2V0LAorCQkJCSAgY21kYnVmLT5idWYgLSBzaXplb2YoaGVhZGVyKSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCW4gKz0gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTOworCX0gd2hpbGUgKG4gPCBjbWRidWYtPm5ib3gpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFNvbWUgb2YgdGhlIFIzMDAgY2hpcHMgc2VlbSB0byBiZSBleHRyZW1lbHkgdG91Y2h5IGFib3V0IHRoZSB0d28gcmVnaXN0ZXJzCisgKiB0aGF0IGFyZSBjb25maWd1cmVkIGluIHIzMDBfcGFjaWZ5LgorICogQW1vbmcgdGhlIHdvcnN0IG9mZmVuZGVycyBzZWVtcyB0byBiZSB0aGUgUjMwMCBORCAoMHg0RTQ0KTogV2hlbiB1c2Vyc3BhY2UKKyAqIHNlbmRzIGEgY29tbWFuZCBidWZmZXIgdGhhdCBjb250YWlucyBvbmx5IHN0YXRlIHNldHRpbmcgY29tbWFuZHMgYW5kIGEKKyAqIHZlcnRleCBwcm9ncmFtL3BhcmFtZXRlciB1cGxvYWQgc2VxdWVuY2UsIHRoaXMgd2lsbCBldmVudHVhbGx5IGxlYWQgdG8gYQorICogbG9ja3VwLCB1bmxlc3MgdGhlIHNlcXVlbmNlIGlzIGJyYWNrZXRlZCBieSBjYWxscyB0byByMzAwX3BhY2lmeS4KKyAqIFNvIHdlIHNob3VsZCB0YWtlIGdyZWF0IGNhcmUgdG8gKmFsd2F5cyogY2FsbCByMzAwX3BhY2lmeSBiZWZvcmUKKyAqICphbnl0aGluZyogM0QgcmVsYXRlZCwgYW5kIGFnYWluIGFmdGVyd2FyZHMuIFRoaXMgaXMgd2hhdCB0aGUKKyAqIGNhbGwgYnJhY2tldCBpbiByMzAwX2RvX2NwX2NtZGJ1ZiBpcyBmb3IuCisgKi8KKworLyoqCisgKiBFbWl0IHRoZSBzZXF1ZW5jZSB0byBwYWNpZnkgUjMwMC4KKyAqLworc3RhdGljIF9faW5saW5lX18gdm9pZCByMzAwX3BhY2lmeShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDYpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIDApKTsKKwlPVVRfUklORyhSMzAwX1JCM0RfRFNUQ0FDSEVfVU5LTk9XTl8wQSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1pCX1pDQUNIRV9DVExTVEFULCAwKSk7CisJT1VUX1JJTkcoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVF9aQ19GTFVTSF9GTFVTSF9BTkRfRlJFRXwKKwkJIFIzMDBfWkJfWkNBQ0hFX0NUTFNUQVRfWkNfRlJFRV9GUkVFKTsKKwlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DUF9OT1AsIDApKTsKKwlPVVRfUklORygweDApOworCUFEVkFOQ0VfUklORygpOworfQorCisvKioKKyAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1ZiB0byB1cGRhdGUgdGhlIGludGVybmFsIGJ1ZmZlciBhZ2UgYW5kIHN0YXRlLgorICogVGhlIGFjdHVhbCBhZ2UgZW1pdCBpcyBkb25lIGJ5IHIzMDBfZG9fY3BfY21kYnVmLCB3aGljaCBpcyB3aHkgeW91IG11c3QKKyAqIGJlIGNhcmVmdWwgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLgorICovCitzdGF0aWMgdm9pZCByMzAwX2Rpc2NhcmRfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOworCisJYnVmX3ByaXYtPmFnZSA9ICsrZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2g7CisJYnVmLT5wZW5kaW5nID0gMTsKKwlidWYtPnVzZWQgPSAwOworfQorCitzdGF0aWMgdm9pZCByMzAwX2NtZF93YWl0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCit7CisJdTMyIHdhaXRfdW50aWw7CisJUklOR19MT0NBTFM7CisKKwlpZiAoIWhlYWRlci53YWl0LmZsYWdzKQorCQlyZXR1cm47CisKKwl3YWl0X3VudGlsID0gMDsKKworCXN3aXRjaChoZWFkZXIud2FpdC5mbGFncykgeworCWNhc2UgUjMwMF9XQUlUXzJEOgorCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRTsKKwkJYnJlYWs7CisJY2FzZSBSMzAwX1dBSVRfM0Q6CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFOworCQlicmVhazsKKwljYXNlIFIzMDBfTkVXX1dBSVRfMkRfM0Q6CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8yRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEU7CisJCWJyZWFrOworCWNhc2UgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTjoKKwkJd2FpdF91bnRpbCA9IFJBREVPTl9XQUlUXzJEX0lETEV8UkFERU9OX1dBSVRfMkRfSURMRUNMRUFOOworCQlicmVhazsKKwljYXNlIFIzMDBfTkVXX1dBSVRfM0RfM0RfQ0xFQU46CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTjsKKwkJYnJlYWs7CisJY2FzZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOXzNEXzNEX0NMRUFOOgorCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRXxSQURFT05fV0FJVF8yRF9JRExFQ0xFQU47CisJCXdhaXRfdW50aWwgfD0gUkFERU9OX1dBSVRfM0RfSURMRXxSQURFT05fV0FJVF8zRF9JRExFQ0xFQU47CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9CisKKwlCRUdJTl9SSU5HKDIpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1dBSVRfVU5USUwsIDApKTsKKwlPVVRfUklORyh3YWl0X3VudGlsKTsKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIGludCByMzAwX3NjcmF0Y2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCXUzMiAqcmVmX2FnZV9iYXNlOworCXUzMiBpLCBidWZfaWR4LCBoX3BlbmRpbmc7CisJUklOR19MT0NBTFM7CisKKwlpZiAoY21kYnVmLT5idWZzeiA8CisJICAgIChzaXplb2YodTY0KSArIGhlYWRlci5zY3JhdGNoLm5fYnVmcyAqIHNpemVvZihidWZfaWR4KSkpIHsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGhlYWRlci5zY3JhdGNoLnJlZyA+PSA1KSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSsrOworCisJcmVmX2FnZV9iYXNlID0gICh1MzIgKikodW5zaWduZWQgbG9uZykqKCh1aW50NjRfdCAqKWNtZGJ1Zi0+YnVmKTsKKworCWNtZGJ1Zi0+YnVmICs9IHNpemVvZih1NjQpOworCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKHU2NCk7CisKKwlmb3IgKGk9MDsgaSA8IGhlYWRlci5zY3JhdGNoLm5fYnVmczsgaSsrKSB7CisJCWJ1Zl9pZHggPSAqKHUzMiAqKWNtZGJ1Zi0+YnVmOworCQlidWZfaWR4ICo9IDI7IC8qIDggYnl0ZXMgcGVyIGJ1ZiAqLworCisJCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHgsICZkZXZfcHJpdi0+c2NyYXRjaF9hZ2VzW2hlYWRlci5zY3JhdGNoLnJlZ10sIHNpemVvZih1MzIpKSkgeworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZoX3BlbmRpbmcsIHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCBzaXplb2YodTMyKSkpIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJaWYgKGhfcGVuZGluZyA9PSAwKSB7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWhfcGVuZGluZy0tOworCisJCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCAmaF9wZW5kaW5nLCBzaXplb2YodTMyKSkpIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGJ1Zl9pZHgpOworCQljbWRidWYtPmJ1ZnN6IC09IHNpemVvZihidWZfaWR4KTsKKwl9CisKKwlCRUdJTl9SSU5HKDIpOworCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fU0NSQVRDSF9SRUcwICsgaGVhZGVyLnNjcmF0Y2gucmVnICogNCwgMCApICk7CisJT1VUX1JJTkcoIGRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSApOworCUFEVkFOQ0VfUklORygpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogVXBsb2FkcyB1c2VyLXN1cHBsaWVkIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9ucyBvciBwYXJhbWV0ZXJzIG9udG8KKyAqIHRoZSBncmFwaGljcyBjYXJkLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgaW5saW5lIGludCByMzAwX2VtaXRfcjUwMGZwKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQkJICAgICAgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCit7CisJaW50IHN6OworCWludCBhZGRyOworCWludCB0eXBlOworCWludCBjbGFtcDsKKwlpbnQgc3RyaWRlOworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucjUwMGZwLmNvdW50OworCS8qIGFkZHJlc3MgaXMgOSBiaXRzIDAgLSA4LCBiaXQgMSBvZiBmbGFncyBpcyBwYXJ0IG9mIGFkZHJlc3MgKi8KKwlhZGRyID0gKChoZWFkZXIucjUwMGZwLmFkcmhpX2ZsYWdzICYgMSkgPDwgOCkgfCBoZWFkZXIucjUwMGZwLmFkcmxvOworCisJdHlwZSA9ICEhKGhlYWRlci5yNTAwZnAuYWRyaGlfZmxhZ3MgJiBSNTAwRlBfQ09OU1RBTlRfVFlQRSk7CisJY2xhbXAgPSAhIShoZWFkZXIucjUwMGZwLmFkcmhpX2ZsYWdzICYgUjUwMEZQX0NPTlNUQU5UX0NMQU1QKTsKKworCWFkZHIgfD0gKHR5cGUgPDwgMTYpOworCWFkZHIgfD0gKGNsYW1wIDw8IDE3KTsKKworCXN0cmlkZSA9IHR5cGUgPyA0IDogNjsKKworCURSTV9ERUJVRygicjUwMGZwICVkICVkIHR5cGU6ICVkXG4iLCBzeiwgYWRkciwgdHlwZSk7CisJaWYgKCFzeikKKwkJcmV0dXJuIDA7CisJaWYgKHN6ICogc3RyaWRlICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORygzICsgc3ogKiBzdHJpZGUpOworCU9VVF9SSU5HX1JFRyhSNTAwX0dBX1VTX1ZFQ1RPUl9JTkRFWCwgYWRkcik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSNTAwX0dBX1VTX1ZFQ1RPUl9EQVRBLCBzeiAqIHN0cmlkZSAtIDEpKTsKKwlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIHN6ICogc3RyaWRlKTsKKworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiBzdHJpZGUgKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzdHJpZGUgKiA0OworCisJcmV0dXJuIDA7Cit9CisKKworLyoqCisgKiBQYXJzZXMgYW5kIHZhbGlkYXRlcyBhIHVzZXItc3VwcGxpZWQgY29tbWFuZCBidWZmZXIgYW5kIGVtaXRzIGFwcHJvcHJpYXRlCisgKiBjb21tYW5kcyBvbiB0aGUgRE1BIHJpbmcgYnVmZmVyLgorICogQ2FsbGVkIGJ5IHRoZSBpb2N0bCBoYW5kbGVyIGZ1bmN0aW9uIHJhZGVvbl9jcF9jbWRidWYuCisgKi8KK2ludCByMzAwX2RvX2NwX2NtZGJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCXN0cnVjdCBkcm1fYnVmICpidWYgPSBOVUxMOworCWludCBlbWl0X2Rpc3BhdGNoX2FnZSA9IDA7CisJaW50IHJldCA9IDA7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKiBTZWUgdGhlIGNvbW1lbnQgYWJvdmUgcjMwMF9lbWl0X2JlZ2luM2QgZm9yIHdoeSB0aGlzIGNhbGwgbXVzdCBiZSBoZXJlLAorCSAqIGFuZCB3aGF0IHRoZSBjbGVhbnVwIGdvdG9zIGFyZSBmb3IuICovCisJcjMwMF9wYWNpZnkoZGV2X3ByaXYpOworCisJaWYgKGNtZGJ1Zi0+bmJveCA8PSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMpIHsKKwkJcmV0ID0gcjMwMF9lbWl0X2NsaXByZWN0cyhkZXZfcHJpdiwgY21kYnVmLCAwKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gY2xlYW51cDsKKwl9CisKKwl3aGlsZSAoY21kYnVmLT5idWZzeiA+PSBzaXplb2YoZHJtX3IzMDBfY21kX2hlYWRlcl90KSkgeworCQlpbnQgaWR4OworCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyOworCisJCWhlYWRlci51ID0gKih1bnNpZ25lZCBpbnQgKiljbWRidWYtPmJ1ZjsKKworCQljbWRidWYtPmJ1ZiArPSBzaXplb2YoaGVhZGVyKTsKKwkJY21kYnVmLT5idWZzeiAtPSBzaXplb2YoaGVhZGVyKTsKKworCQlzd2l0Y2ggKGhlYWRlci5oZWFkZXIuY21kX3R5cGUpIHsKKwkJY2FzZSBSMzAwX0NNRF9QQUNLRVQwOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9QQUNLRVQwXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9wYWNrZXQwKGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7CisJCQlpZiAocmV0KSB7CisJCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfcGFja2V0MCBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfVlBVOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9WUFVcbiIpOworCQkJcmV0ID0gcjMwMF9lbWl0X3ZwdShkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3ZwdSBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUEFDS0VUMzoKKwkJCURSTV9ERUJVRygiUjMwMF9DTURfUEFDS0VUM1xuIik7CisJCQlyZXQgPSByMzAwX2VtaXRfcGFja2V0MyhkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3BhY2tldDMgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGNsZWFudXA7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFIzMDBfQ01EX0VORDNEOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9FTkQzRFxuIik7CisJCQkvKiBUT0RPOgorCQkJICAgSWRlYWxseSB1c2Vyc3BhY2UgZHJpdmVyIHNob3VsZCBub3QgbmVlZCB0byBpc3N1ZSB0aGlzIGNhbGwsCisJCQkgICBpLmUuIHRoZSBkcm0gZHJpdmVyIHNob3VsZCBpc3N1ZSBpdCBhdXRvbWF0aWNhbGx5IGFuZCBwcmV2ZW50CisJCQkgICBsb2NrdXBzLgorCisJCQkgICBJbiBwcmFjdGljZSwgd2UgZG8gbm90IHVuZGVyc3RhbmQgd2h5IHRoaXMgY2FsbCBpcyBuZWVkZWQgYW5kIHdoYXQKKwkJCSAgIGl0IGRvZXMgKGV4Y2VwdCBmb3Igc29tZSB2YWd1ZSBndWVzc2VzIHRoYXQgaXQgaGFzIHRvIGRvIHdpdGggY2FjaGUKKwkJCSAgIGNvaGVyZW5jZSkgYW5kIHNvIHRoZSB1c2VyIHNwYWNlIGRyaXZlciBkb2VzIGl0LgorCisJCQkgICBPbmNlIHdlIGFyZSBzdXJlIHdoaWNoIHVzZXMgcHJldmVudCBsb2NrdXBzIHRoZSBjb2RlIGNvdWxkIGJlIG1vdmVkCisJCQkgICBpbnRvIHRoZSBrZXJuZWwgYW5kIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIHdpbGwgbm90CisJCQkgICBuZWVkIHRvIHVzZSB0aGlzIGNvbW1hbmQuCisKKwkJCSAgIE5vdGUgdGhhdCBpc3N1aW5nIHRoaXMgY29tbWFuZCBkb2VzIG5vdCBodXJ0IGFueXRoaW5nCisJCQkgICBleGNlcHQsIHBvc3NpYmx5LCBwZXJmb3JtYW5jZSAqLworCQkJcjMwMF9wYWNpZnkoZGV2X3ByaXYpOworCQkJYnJlYWs7CisKKwkJY2FzZSBSMzAwX0NNRF9DUF9ERUxBWToKKwkJCS8qIHNpbXBsZSBlbm91Z2gsIHdlIGNhbiBkbyBpdCBoZXJlICovCisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX0NQX0RFTEFZXG4iKTsKKwkJCXsKKwkJCQlpbnQgaTsKKwkJCQlSSU5HX0xPQ0FMUzsKKworCQkJCUJFR0lOX1JJTkcoaGVhZGVyLmRlbGF5LmNvdW50KTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgaGVhZGVyLmRlbGF5LmNvdW50OyBpKyspCisJCQkJCU9VVF9SSU5HKFJBREVPTl9DUF9QQUNLRVQyKTsKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfRE1BX0RJU0NBUkQ6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfRE1BX0RJU0NBUkRcbiIpOworCQkJaWR4ID0gaGVhZGVyLmRtYS5idWZfaWR4OworCQkJaWYgKGlkeCA8IDAgfHwgaWR4ID49IGRtYS0+YnVmX2NvdW50KSB7CisJCQkJRFJNX0VSUk9SKCJidWZmZXIgaW5kZXggJWQgKG9mICVkIG1heClcbiIsCisJCQkJCSAgaWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJZ290byBjbGVhbnVwOworCQkJfQorCisJCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaWR4XTsKKwkJCWlmIChidWYtPmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYgfHwgYnVmLT5wZW5kaW5nKSB7CisJCQkJRFJNX0VSUk9SKCJiYWQgYnVmZmVyICVwICVwICVkXG4iLAorCQkJCQkgIGJ1Zi0+ZmlsZV9wcml2LCBmaWxlX3ByaXYsCisJCQkJCSAgYnVmLT5wZW5kaW5nKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKworCQkJZW1pdF9kaXNwYXRjaF9hZ2UgPSAxOworCQkJcjMwMF9kaXNjYXJkX2J1ZmZlcihkZXYsIGJ1Zik7CisJCQlicmVhazsKKworCQljYXNlIFIzMDBfQ01EX1dBSVQ6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1dBSVRcbiIpOworCQkJcjMwMF9jbWRfd2FpdChkZXZfcHJpdiwgaGVhZGVyKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfU0NSQVRDSDoKKwkJCURSTV9ERUJVRygiUjMwMF9DTURfU0NSQVRDSFxuIik7CisJCQlyZXQgPSByMzAwX3NjcmF0Y2goZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfc2NyYXRjaCBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUjUwMEZQOgorCQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDwgQ0hJUF9SVjUxNSkgeworCQkJCURSTV9FUlJPUigiQ2FsbGluZyByNTAwIGNvbW1hbmQgb24gcjMwMCBjYXJkXG4iKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCURSTV9ERUJVRygiUjMwMF9DTURfUjUwMEZQXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9yNTAwZnAoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9yNTAwZnAgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGNsZWFudXA7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCURSTV9FUlJPUigiYmFkIGNtZF90eXBlICVpIGF0ICVwXG4iLAorCQkJCSAgaGVhZGVyLmhlYWRlci5jbWRfdHlwZSwKKwkJCQkgIGNtZGJ1Zi0+YnVmIC0gc2l6ZW9mKGhlYWRlcikpOworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQorCX0KKworCURSTV9ERUJVRygiRU5EXG4iKTsKKworICAgICAgY2xlYW51cDoKKwlyMzAwX3BhY2lmeShkZXZfcHJpdik7CisKKwkvKiBXZSBlbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIGFnZSBoZXJlLCBvdXRzaWRlIHRoZSBwYWNpZmllciAiYnJhY2tldHMiCisJICogZm9yIHR3byByZWFzb25zOgorCSAqICAoMSkgVGhpcyBtYXkgY29hbGVzY2UgbXVsdGlwbGUgYWdlIGVtaXNzaW9ucyBpbnRvIGEgc2luZ2xlIG9uZSBhbmQKKwkgKiAgKDIpIG1vcmUgaW1wb3J0YW50bHksIHNvbWUgY2hpcHMgbG9jayB1cCBoYXJkIHdoZW4gc2NyYXRjaCByZWdpc3RlcnMKKwkgKiAgICAgIGFyZSB3cml0dGVuIGluc2lkZSB0aGUgcGFjaWZpZXIgYnJhY2tldC4KKwkgKi8KKwlpZiAoZW1pdF9kaXNwYXRjaF9hZ2UpIHsKKwkJUklOR19MT0NBTFM7CisKKwkJLyogRW1pdCB0aGUgdmVydGV4IGJ1ZmZlciBhZ2UgKi8KKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX0RJU1BBVENIX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCk7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX3JlZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2ODAyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDBfcmVnLmgKQEAgLTAsMCArMSwxNzcyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUgTmljb2xhaSBIYWVobmxlIGV0IGFsLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KK29uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWIKK2xpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCit0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAorVEhFIEFVVEhPUihTKSBBTkQvT1IgVEhFSVIgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAorREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCitPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCitVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfUjMwMF9SRUdfSAorI2RlZmluZSBfUjMwMF9SRUdfSAorCisjZGVmaW5lIFIzMDBfTUNfSU5JVF9NSVNDX0xBVF9USU1FUgkweDE4MAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19DUFJfSU5JVF9MQVRfU0hJRlQJMAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19WRl9JTklUX0xBVF9TSElGVAk0CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AwUl9JTklUX0xBVF9TSElGVAk4CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AxUl9JTklUX0xBVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19GSVhFRF9JTklUX0xBVF9TSElGVAkxNgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19FMlJfSU5JVF9MQVRfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfU0FNRV9QQUdFX1BSSU9fU0hJRlQJMjQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfSU5JVF9MQVRfU0hJRlQJMjgKKworI2RlZmluZSBSMzAwX01DX0lOSVRfR0ZYX0xBVF9USU1FUgkweDE1NAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QwUl9JTklUX0xBVF9TSElGVAkwCisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0czRDFSX0lOSVRfTEFUX1NISUZUCTQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRzNEMlJfSU5JVF9MQVRfU0hJRlQJOAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QzUl9JTklUX0xBVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19UWDBSX0lOSVRfTEFUX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX1RYMVJfSU5JVF9MQVRfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQlJfSU5JVF9MQVRfU0hJRlQJMjQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfRlVMTF9MQVRfU0hJRlQJMjgKKworLyoKKyAqIFRoaXMgZmlsZSBjb250YWlucyByZWdpc3RlcnMgYW5kIGNvbnN0YW50cyBmb3IgdGhlIFIzMDAuIFRoZXkgaGF2ZSBiZWVuCisgKiBmb3VuZCBtb3N0bHkgYnkgZXhhbWluaW5nIGNvbW1hbmQgYnVmZmVycyBjYXB0dXJlZCB1c2luZyBnbHh0ZXN0LCBhcyB3ZWxsCisgKiBhcyBieSBleHRyYXBvbGF0aW5nIHNvbWUga25vd24gcmVnaXN0ZXJzIGFuZCBjb25zdGFudHMgZnJvbSB0aGUgUjIwMC4KKyAqIEkgYW0gZmFpcmx5IGNlcnRhaW4gdGhhdCB0aGV5IGFyZSBjb3JyZWN0IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlCisgKiBpbiBjb21tZW50cy4KKyAqLworCisjZGVmaW5lIFIzMDBfU0VfVlBPUlRfWFNDQUxFICAgICAgICAgICAgICAgIDB4MUQ5OAorI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1hPRkZTRVQgICAgICAgICAgICAgICAweDFEOUMKKyNkZWZpbmUgUjMwMF9TRV9WUE9SVF9ZU0NBTEUgICAgICAgICAgICAgICAgMHgxREEwCisjZGVmaW5lIFIzMDBfU0VfVlBPUlRfWU9GRlNFVCAgICAgICAgICAgICAgIDB4MURBNAorI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1pTQ0FMRSAgICAgICAgICAgICAgICAweDFEQTgKKyNkZWZpbmUgUjMwMF9TRV9WUE9SVF9aT0ZGU0VUICAgICAgICAgICAgICAgMHgxREFDCisKKworLyoKKyAqIFZlcnRleCBBcnJheSBQcm9jZXNzaW5nIChWQVApIENvbnRyb2wKKyAqIFN0b2xlbiBmcm9tIHIyMDAgY29kZSBmcm9tIENocmlzdG9waCBCcmlsbCAoSXQncyBhIGd1ZXNzISkKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9DTlRMCTB4MjA4MAorCisvKiBUaGlzIHJlZ2lzdGVyIGlzIHdyaXR0ZW4gZGlyZWN0bHkgYW5kIGFsc28gc3RhcnRzIGRhdGEgc2VjdGlvbgorICogaW4gbWFueSAzZCBDUF9QQUNLRVQzJ3MKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9WRl9DTlRMCTB4MjA4NAorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgMAorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTk9ORSAgICAgICAgICAgICAgICAgICAgICgwPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9JTlRTICAgICAgICAgICAgICAgICAgICgxPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORVMgICAgICAgICAgICAgICAgICAgICgyPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9TVFJJUCAgICAgICAgICAgICAgICgzPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVTICAgICAgICAgICAgICAgICg0PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfRkFOICAgICAgICAgICAgICg1PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfU1RSSVAgICAgICAgICAgICg2PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9MT09QICAgICAgICAgICAgICAgICgxMjw8MCkKKyMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTM8PDApCisjCWRlZmluZSAgUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9RVUFEX1NUUklQICAgICAgICAgICAgICAgKDE0PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9MWUdPTiAgICAgICAgICAgICAgICAgICgxNTw8MCkKKworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX19TSElGVCAgICAgICAgICAgICAgNAorCS8qIFN0YXRlIGJhc2VkIC0gZGlyZWN0IHdyaXRlcyB0byByZWdpc3RlcnMgdHJpZ2dlciB2ZXJ0ZXgKKyAgICAgICAgICAgZ2VuZXJhdGlvbiAqLworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1NUQVRFX0JBU0VEICAgICAgICAgKDA8PDQpCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1dBTEtfSU5ESUNFUyAgICAgICAgICAgICAoMTw8NCkKKyMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19WRVJURVhfTElTVCAgICAgICAgICgyPDw0KQorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1ZFUlRFWF9FTUJFRERFRCAgICAgKDM8PDQpCisKKwkvKiBJIGRvbid0IHRoaW5rIEkgc2F3IHRoZXNlIHRocmVlIHVzZWQuLiAqLworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fQ09MT1JfT1JERVJfX1NISUZUICAgICAgICAgICAgNgorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fVENMX09VVFBVVF9DVExfRU5BX19TSElGVCAgICAgOQorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJPR19TVFJFQU1fRU5BX19TSElGVCAgICAgICAgMTAKKworCS8qIGluZGV4IHNpemUgLSB3aGVuIG5vdCBzZXQgdGhlIGluZGljZXMgYXJlIGFzc3VtZWQgdG8gYmUgMTYgYml0ICovCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19JTkRFWF9TSVpFXzMyYml0ICAgICAgICAgICAgICAoMTw8MTEpCisJLyogbnVtYmVyIG9mIHZlcnRpY2VzICovCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19OVU1fVkVSVElDRVNfX1NISUZUICAgICAgICAgICAxNgorCisvKiBCRUdJTjogV2lsZCBndWVzc2VzICovCisjZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAgICAgICAgICAgIDB4MjA5MAorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUE9TX1BSRVNFTlQgICAgICgxPDwwKQorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfUFJFU0VOVCAgICgxPDwxKQorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfMV9QUkVTRU5UICgxPDwyKSAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVCAoMTw8MykgIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8wX19DT0xPUl8zX1BSRVNFTlQgKDE8PDQpICAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUFRfU0laRV9QUkVTRU5UICgxPDwxNikgLyogR1VFU1MgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xICAgICAgICAgICAweDIwOTQKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKKwkgICBvZiBjb21wb25lbnRzICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVCAwCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVCAzCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVCA2CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVCA5CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVCAxMgorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQgMTUKKyMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUIDE4CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVCAyMQorLyogRU5EOiBXaWxkIGd1ZXNzZXMgKi8KKworI2RlZmluZSBSMzAwX1NFX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgMHgyMGIwCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDAyCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDA0CisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDEwCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDIwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfWFlfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfWl9GTVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfTk9STUFMSVpFICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfU1RfREVOT1JNQUxJWkVEICAgICAgICAgICAgICAweDAwMDAxMDAwCisKKy8qIEJFR0lOOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAtIGxvdHMgb2YgdW5jZXJ0YWludGllcyAqLworCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgMHgyMTQwCisjCWRlZmluZSBSMzAwX1ZDX05PX1NXQVAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9WQ18xNkJJVF9TV0FQICAgICAgICAgICAgICAgKDEgPDwgMCkKKyMJZGVmaW5lIFIzMDBfVkNfMzJCSVRfU1dBUCAgICAgICAgICAgICAgICgyIDw8IDApCisjCWRlZmluZSBSMzAwX1ZBUF9UQ0xfQllQQVNTCQkoMSA8PCA4KQorCisvKiBnYXAgKi8KKworLyogV2hlcmUgZG8gd2UgZ2V0IG91ciB2ZXJ0ZXggZGF0YT8KKyAqCisgKiBWZXJ0ZXggZGF0YSBlaXRoZXIgY29tZXMgZWl0aGVyIGZyb20gaW1tZWRpYXRlIG1vZGUgcmVnaXN0ZXJzIG9yIGZyb20KKyAqIHZlcnRleCBhcnJheXMuCisgKiBUaGVyZSBhcHBlYXJzIHRvIGJlIG5vIG1peGVkIG1vZGUgKHRob3VnaCB3ZSBjYW4gZm9yY2UgdGhlIHBpdGNoIG9mCisgKiB2ZXJ0ZXggYXJyYXlzIHRvIDAsIGVmZmVjdGl2ZWx5IHJldXNpbmcgdGhlIHNhbWUgZWxlbWVudCBvdmVyIGFuZCBvdmVyCisgKiBhZ2FpbikuCisgKgorICogSW1tZWRpYXRlIG1vZGUgaXMgY29udHJvbGxlZCBieSB0aGUgSU5QVVRfQ05UTCByZWdpc3RlcnMuIEkgYW0gbm90IHN1cmUKKyAqIGlmIHRoZXNlIHJlZ2lzdGVycyBpbmZsdWVuY2UgdmVydGV4IGFycmF5IHByb2Nlc3NpbmcuCisgKgorICogVmVydGV4IGFycmF5cyBhcmUgY29udHJvbGxlZCB2aWEgdGhlIDNEX0xPQURfVkJQTlRSIHBhY2tldDMuCisgKgorICogSW4gYm90aCBjYXNlcywgdmVydGV4IGF0dHJpYnV0ZXMgYXJlIHRoZW4gcGFzc2VkIHRocm91Z2ggSU5QVVRfUk9VVEUuCisgKgorICogQmVnaW5uaW5nIHdpdGggSU5QVVRfUk9VVEVfMF8wIGlzIGEgbGlzdCBvZiBXT1JEcyB0aGF0IHJvdXRlIHZlcnRleCBkYXRhCisgKiBpbnRvIHRoZSB2ZXJ0ZXggcHJvY2Vzc29yJ3MgaW5wdXQgcmVnaXN0ZXJzLgorICogVGhlIGZpcnN0IHdvcmQgcm91dGVzIHRoZSBmaXJzdCBpbnB1dCwgdGhlIHNlY29uZCB3b3JkIHRoZSBzZWNvbmQsIGV0Yy4KKyAqIFRoZSBjb3JyZXNwb25kaW5nIGlucHV0IGlzIHJvdXRlZCBpbnRvIHRoZSByZWdpc3RlciB3aXRoIHRoZSBnaXZlbiBpbmRleC4KKyAqIFRoZSBsaXN0IGlzIGVuZGVkIGJ5IGEgd29yZCB3aXRoIElOUFVUX1JPVVRFX0VORCBzZXQuCisgKgorICogQWx3YXlzIHNldCBDT01QT05FTlRTXzQgaW4gaW1tZWRpYXRlIG1vZGUuCisgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzAgICAgICAgICAgICAweDIxNTAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU18xICAgICAoMCA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTXzIgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0NPTVBPTkVOVFNfMyAgICAgKDIgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU180ICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTX1JHQkEgICg0IDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV9JRFhfU0hJRlQgICAgOAorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfSURYX01BU0sgICAgICgzMSA8PCA4KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfRU5EICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9JTU1FRElBVEVfTU9ERSAgICgwIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVCAgICAgICAgICAgICgxIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9VTlNJR05FRF9CWVRFICAgICgyIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVF9DT0xPUiAgICAgICgzIDw8IDE0KSAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzEgICAgICAgICAgICAweDIxNTQKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8yICAgICAgICAgICAgMHgyMTU4CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfMyAgICAgICAgICAgIDB4MjE1QworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzQgICAgICAgICAgICAweDIxNjAKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF81ICAgICAgICAgICAgMHgyMTY0CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfNiAgICAgICAgICAgIDB4MjE2OAorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzcgICAgICAgICAgICAweDIxNkMKKworLyogZ2FwICovCisKKy8qIE5vdGVzOgorICogIC0gYWx3YXlzIHNldCB1cCB0byBwcm9kdWNlIGF0IGxlYXN0IHR3byBhdHRyaWJ1dGVzOgorICogICAgaWYgdmVydGV4IHByb2dyYW0gdXNlcyBvbmx5IHBvc2l0aW9uLCBmZ2xyeCB3aWxsIHNldCBub3JtYWwsIHRvbworICogIC0gSU5QVVRfQ05UTF8wX0NPTE9SIGFuZCBJTlBVVF9DTlRMX0NPTE9SIGJpdHMgYXJlIGFsd2F5cyBlcXVhbC4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9DTlRMXzAgICAgICAgICAgICAgICAweDIxODAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF8wX0NPTE9SICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX0NOVExfMSAgICAgICAgICAgICAgIDB4MjE4NAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1BPUyAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9OT1JNQUwgICAgICAgICAgICAweDAwMDAwMDAyCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfQ09MT1IgICAgICAgICAgICAgMHgwMDAwMDAwNAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMCAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzEgICAgICAgICAgICAgICAweDAwMDAwODAwCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEMyICAgICAgICAgICAgICAgMHgwMDAwMTAwMCAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMyAgICAgICAgICAgICAgIDB4MDAwMDIwMDAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzQgICAgICAgICAgICAgICAweDAwMDA0MDAwIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEM1ICAgICAgICAgICAgICAgMHgwMDAwODAwMCAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDNiAgICAgICAgICAgICAgIDB4MDAwMTAwMDAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzcgICAgICAgICAgICAgICAweDAwMDIwMDAwIC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBXb3JkcyBwYXJhbGxlbCB0byBJTlBVVF9ST1VURV8wOyBBbGwgd29yZHMgdGhhdCBhcmUgYWN0aXZlIGluIElOUFVUX1JPVVRFXzAKKyAqIGFyZSBzZXQgdG8gYSBzd2l6emxpbmcgYml0IHBhdHRlcm4sIG90aGVyIHdvcmRzIGFyZSAwLgorICoKKyAqIEluIGltbWVkaWF0ZSBtb2RlLCB0aGUgcGF0dGVybiBpcyBhbHdheXMgc2V0IHRvIHh5encuIEluIHZlcnRleCBhcnJheQorICogbW9kZSwgdGhlIHN3aXp6bGluZyBwYXR0ZXJuIGlzIGUuZy4gdXNlZCB0byBzZXQgencgY29tcG9uZW50cyBpbiB0ZXh0dXJlCisgKiBjb29yZGluYXRlcyB3aXRoIG9ubHkgdHdlbyBjb21wb25lbnRzLgorICovCisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMCAgICAgICAgICAgIDB4MjFFMAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfWCAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9ZICAgIDEKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX1ogICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfVyAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9aRVJPIDQKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX09ORSAgNQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfTUFTSyA3CisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1hfU0hJRlQgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfWV9TSElGVCAgICAgMworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9aX1NISUZUICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1dfU0hJRlQgICAgIDkKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfRU5BQkxFICAgICAgKDE1IDw8IDEyKQorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzEgICAgICAgICAgICAweDIxRTQKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8yICAgICAgICAgICAgMHgyMUU4CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMyAgICAgICAgICAgIDB4MjFFQworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzQgICAgICAgICAgICAweDIxRjAKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV81ICAgICAgICAgICAgMHgyMUY0CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfNiAgICAgICAgICAgIDB4MjFGOAorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzcgICAgICAgICAgICAweDIxRkMKKworLyogRU5EOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAqLworCisvKiBnYXAgKi8KKworLyogQkVHSU46IFVwbG9hZCB2ZXJ0ZXggcHJvZ3JhbSBhbmQgZGF0YSAqLworCisvKgorICogVGhlIHByb2dyYW1tYWJsZSB2ZXJ0ZXggc2hhZGVyIHVuaXQgaGFzIGEgbWVtb3J5IGJhbmsgb2YgdW5rbm93biBzaXplCisgKiB0aGF0IGNhbiBiZSB3cml0dGVuIHRvIGluIDE2IGJ5dGUgdW5pdHMgYnkgd3JpdGluZyB0aGUgYWRkcmVzcyBpbnRvCisgKiBVUExPQURfQUREUkVTUywgZm9sbG93ZWQgYnkgZGF0YSBpbiBVUExPQURfREFUQSAobXVsdGlwbGVzIG9mIDQgRFdPUkRzKS4KKyAqCisgKiBQb2ludGVycyBpbnRvIHRoZSBtZW1vcnkgYmFuayBhcmUgYWx3YXlzIGluIG11bHRpcGxlcyBvZiAxNiBieXRlcy4KKyAqCisgKiBUaGUgbWVtb3J5IGJhbmsgaXMgZGl2aWRlZCBpbnRvIGFyZWFzIHdpdGggZml4ZWQgbWVhbmluZy4KKyAqCisgKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QUk9HUkFNOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbnMuCisgKiBOYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGRyaXZlcnMgZnJvbSBBVEkgc3VnZ2VzdCBzaXplIDI1NiAoaS5lLiA0S0IpLAorICogd2hlcmVhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KKyAqCisgKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QQVJBTUVURVJTOiBWZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgorICogTmF0aXZlIHJlcG9ydGVkIGxpbWl0cyBhbmQgdGhlIFZQSSBsYXlvdXQgc3VnZ2VzdCBzaXplIDI1Niwgd2hlcmVhcworICogZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KKyAqCisgKiBBdCBhZGRyZXNzIFVQTE9BRF9QT0lOVFNJWkUgaXMgYSB2ZWN0b3IgKDAsIDAsIHBzLCAwKSwgd2hlcmUgcHMgaXMgdGhlCisgKiBmbG9hdGluZyBwb2ludCBwb2ludHNpemUuIFRoZSBleGFjdCBwdXJwb3NlIG9mIHRoaXMgc3RhdGUgaXMgdW5jZXJ0YWluLAorICogYXMgdGhlcmUgaXMgYWxzbyB0aGUgUjMwMF9SRV9QT0lOVFNJWkUgcmVnaXN0ZXIuCisgKgorICogTXVsdGlwbGUgdmVydGV4IHByb2dyYW1zIGFuZCBwYXJhbWV0ZXIgc2V0cyBjYW4gYmUgbG9hZGVkIGF0IG9uY2UsCisgKiB3aGljaCBjb3VsZCBleHBsYWluIHRoZSBzaXplIGRpc2NyZXBhbmN5LgorICovCisjZGVmaW5lIFIzMDBfVkFQX1BWU19VUExPQURfQUREUkVTUyAgICAgICAgIDB4MjIwMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfVVBMT0FEX1BST0dSQU0gICAgICAgICAgIDB4MDAwMDAwMDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUFZTX1VQTE9BRF9QQVJBTUVURVJTICAgICAgICAweDAwMDAwMjAwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19VUExPQURfUE9JTlRTSVpFICAgICAgICAgMHgwMDAwMDQwNgorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9QVlNfVVBMT0FEX0RBVEEgICAgICAgICAgICAweDIyMDgKKworLyogRU5EOiBVcGxvYWQgdmVydGV4IHByb2dyYW0gYW5kIGRhdGEgKi8KKworLyogZ2FwICovCisKKy8qIEkgZG8gbm90IGtub3cgdGhlIHB1cnBvc2Ugb2YgdGhpcyByZWdpc3Rlci4gSG93ZXZlciwgSSBkbyBrbm93IHRoYXQKKyAqIGl0IGlzIHNldCB0byAyMjFDX0NMRUFSIGZvciBjbGVhciBvcGVyYXRpb25zIGFuZCB0byAyMjFDX05PUk1BTAorICogZm9yIG5vcm1hbCByZW5kZXJpbmcuCisgKi8KKyNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjFDICAgICAgICAgICAgICAgMHgyMjFDCisjICAgICAgIGRlZmluZSBSMzAwXzIyMUNfTk9STUFMICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorIyAgICAgICBkZWZpbmUgUjMwMF8yMjFDX0NMRUFSICAgICAgICAgICAgICAgICAgIDB4MDAwMUMwMDAKKworLyogVGhlc2Ugc2VlbSB0byBiZSBwZXItcGl4ZWwgYW5kIHBlci12ZXJ0ZXggWCBhbmQgWSBjbGlwcGluZyBwbGFuZXMuIFRoZSBmaXJzdAorICogcGxhbmUgaXMgcGVyLXBpeGVsIGFuZCB0aGUgc2Vjb25kIHBsYW5lIGlzIHBlci12ZXJ0ZXguCisgKgorICogVGhpcyB3YXMgZGV0ZXJtaW5lZCBieSBleHBlcmltZW50YXRpb24gYWxvbmUgYnV0IEkgYmVsaWV2ZSBpdCBpcyBjb3JyZWN0LgorICoKKyAqIFRoZXNlIHJlZ2lzdGVycyBhcmUgY2FsbGVkIFhfUVVBRDBfMV9GTCB0byBYX1FVQUQwXzRfRkwgYnkgZ2x4dGVzdC4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9DTElQX1hfMCAgICAgICAgICAgICAgICAgICAweDIyMjAKKyNkZWZpbmUgUjMwMF9WQVBfQ0xJUF9YXzEgICAgICAgICAgICAgICAgICAgMHgyMjI0CisjZGVmaW5lIFIzMDBfVkFQX0NMSVBfWV8wICAgICAgICAgICAgICAgICAgIDB4MjIyOAorI2RlZmluZSBSMzAwX1ZBUF9DTElQX1lfMSAgICAgICAgICAgICAgICAgICAweDIyMzAKKworLyogZ2FwICovCisKKy8qIFNvbWV0aW1lcywgRU5EX09GX1BLVCBhbmQgMHgyMjg0PTAgYXJlIHRoZSBvbmx5IGNvbW1hbmRzIHNlbnQgYmV0d2VlbgorICogcmVuZGVyaW5nIGNvbW1hbmRzIGFuZCBvdmVyd3JpdGluZyB2ZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgorICogVGhlcmVmb3JlLCBJIHN1c3BlY3Qgd3JpdGluZyB6ZXJvIHRvIDB4MjI4NCBzeW5jaHJvbml6ZXMgdGhlIGVuZ2luZSBhbmQKKyAqIGF2b2lkcyBidWdzIGNhdXNlZCBieSBzdGlsbCBydW5uaW5nIHNoYWRlcnMgcmVhZGluZyBiYWQgZGF0YSBmcm9tIG1lbW9yeS4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9QVlNfV0FJVElETEUgICAgICAgICAgICAgICAweDIyODQgLyogR1VFU1MgKi8KKworLyogQWJzb2x1dGVseSBubyBjbHVlIHdoYXQgdGhpcyByZWdpc3RlciBpcyBhYm91dC4gKi8KKyNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjg4ICAgICAgICAgICAgICAgMHgyMjg4CisjICAgICAgIGRlZmluZSBSMzAwXzIyODhfUjMwMCAgICAgICAgICAgICAgICAgICAgMHgwMDc1MDAwMCAvKiAtLSBuaCAqLworIyAgICAgICBkZWZpbmUgUjMwMF8yMjg4X1JWMzUwICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgLyogLS0gVmxhZGltaXIgKi8KKworLyogZ2FwICovCisKKy8qIEFkZHJlc3NlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9uIGFyZWEgb2YgdGhlCisgKiBtZW1vcnkgYmFuay4gUFJPR1JBTV9FTkQgcG9pbnRzIHRvIHRoZSBsYXN0IGluc3RydWN0aW9uIG9mIHRoZSBhY3RpdmUKKyAqIHByb2dyYW0KKyAqCisgKiBUaGUgbWVhbmluZyBvZiB0aGUgdHdvIFVOS05PV04gZmllbGRzIGlzIG9idmlvdXNseSBub3Qga25vd24uIEhvd2V2ZXIsCisgKiBleHBlcmltZW50cyBzbyBmYXIgaGF2ZSBzaG93biB0aGF0IGJvdGggKm11c3QqIHBvaW50IHRvIGFuIGluc3RydWN0aW9uCisgKiBpbnNpZGUgdGhlIHZlcnRleCBwcm9ncmFtLCBvdGhlcndpc2UgdGhlIEdQVSBsb2NrcyB1cC4KKyAqCisgKiBmZ2xyeCB1c3VhbGx5IHNldHMgQ05UTF8zX1VOS05PV04gdG8gdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbSBhbmQKKyAqIFIzMDBfUFZTX0NOVExfMV9QT1NfRU5EX1NISUZUIHBvaW50cyB0byBpbnN0cnVjdGlvbiB3aGVyZSBsYXN0IHdyaXRlIHRvCisgKiBwb3NpdGlvbiB0YWtlcyBwbGFjZS4KKyAqCisgKiBNb3N0IGxpa2VseSB0aGlzIGlzIHVzZWQgdG8gaWdub3JlIHJlc3Qgb2YgdGhlIHByb2dyYW0gaW4gY2FzZXMKKyAqIHdoZXJlIGdyb3VwIG9mIHZlcnRzIGFyZW50IHZpc2libGUuIEZvciBzb21lIHJlYXNvbiB0aGlzICJzZWN0aW9uIgorICogaXMgc29tZXRpbWVzIGFjY2VwdGVkIG90aGVyIGluc3RydWN0aW9uIHRoYXQgaGF2ZSBubyByZWxhdGlvbnNoaXAgd2l0aAorICogcG9zaXRpb24gY2FsY3VsYXRpb25zLgorICovCisjZGVmaW5lIFIzMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAgIDB4MjJEMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8xX1BST0dSQU1fU1RBUlRfU0hJRlQgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUE9TX0VORF9TSElGVCAgICAgICAgIDEwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUFJPR1JBTV9FTkRfU0hJRlQgICAgIDIwCisvKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRoZSB0aGUgdmVydGV4IHByb2dyYW0gcGFyYW1ldGVycyBhcmVhLiAqLworI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8yICAgICAgICAgICAgICAgICAweDIyRDQKKyMgICAgICAgZGVmaW5lIFIzMDBfUFZTX0NOVExfMl9QQVJBTV9PRkZTRVRfU0hJRlQgMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8yX1BBUkFNX0NPVU5UX1NISUZUICAxNgorI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8zCSAgICAgICAgICAgMHgyMkQ4CisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOX1NISUZUIDEwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOMl9TSElGVCAwCisKKy8qIFRoZSBlbnRpcmUgcmFuZ2UgZnJvbSAweDIzMDAgdG8gMHgyQUMgaW5jbHVzaXZlIHNlZW1zIHRvIGJlIHVzZWQgZm9yCisgKiBpbW1lZGlhdGUgdmVydGljZXMKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUiAgICAgICAgICAgICAgICAweDI0NjQKKyNkZWZpbmUgUjMwMF9WQVBfVlRYX0NPTE9SX0cgICAgICAgICAgICAgICAgMHgyNDY4CisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9DT0xPUl9CICAgICAgICAgICAgICAgIDB4MjQ2QworI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8xICAgICAgICAgICAgICAweDI0OTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgyKigpICovCisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzEgICAgICAgICAgICAgIDB4MjQ5NAorI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUEtEICAgICAgICAgICAgICAweDI0OUMgLyogUkdCQSAqLworI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8yICAgICAgICAgICAgICAweDI0QTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgzKigpICovCisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzIgICAgICAgICAgICAgIDB4MjRBNAorI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWl8yICAgICAgICAgICAgICAweDI0QTgKKy8qIHdyaXRlIDAgdG8gaW5kaWNhdGUgZW5kIG9mIHBhY2tldD8gKi8KKyNkZWZpbmUgUjMwMF9WQVBfVlRYX0VORF9PRl9QS1QgICAgICAgICAgICAgMHgyNEFDCisKKy8qIGdhcCAqLworCisvKiBUaGVzZSBhcmUgdmFsdWVzIGZyb20gcjMwMF9yZWcvcjMwMF9yZWcuaCAtIHRoZXkgYXJlIGtub3duIHRvIGJlIGNvcnJlY3QKKyAqIGFuZCBhcmUgaGVyZSBzbyB3ZSBjYW4gdXNlIG9uZSByZWdpc3RlciBmaWxlIGluc3RlYWQgb2Ygc2V2ZXJhbAorICogLSBWbGFkaW1pcgorICovCisjZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzAJMHg0MDAwCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QT1NfUFJFU0VOVAkoMTw8MCkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzBfUFJFU0VOVAkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzFfUFJFU0VOVAkoMTw8MikKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVAkoMTw8MykKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzNfUFJFU0VOVAkoMTw8NCkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SX1NQQUNFCSgweGY8PDUpCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QVF9TSVpFX1BSRVNFTlQJKDB4MTw8MTYpCisKKyNkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMQkweDQwMDQKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKKwkgICBvZiBjb21wb25lbnRzICovCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVAkwCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVAkzCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVAk2CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVAk5CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQJMTUKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUCTE4CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVAkyMQorCisvKiBVTkszMCBzZWVtcyB0byBlbmFibGVzIHBvaW50IHRvIHF1YWQgdHJhbnNmb3JtYXRpb24gb24gdGV4dHVyZXMKKyAqIChvciBzb21ldGhpbmcgY2xvc2VseSByZWxhdGVkIHRvIHRoYXQpLgorICogVGhpcyBiaXQgaXMgcmF0aGVyIGZhdGFsIGF0IHRoZSB0aW1lIGJlaW5nIGR1ZSB0byBsYWNraW5ncyBhdCBwaXhlbAorICogc2hhZGVyIHNpZGUKKyAqLworI2RlZmluZSBSMzAwX0dCX0VOQUJMRQkweDQwMDgKKyMJZGVmaW5lIFIzMDBfR0JfUE9JTlRfU1RVRkZfRU5BQkxFCSgxPDwwKQorIwlkZWZpbmUgUjMwMF9HQl9MSU5FX1NUVUZGX0VOQUJMRQkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfR0JfVFJJQU5HTEVfU1RVRkZfRU5BQkxFCSgxPDwyKQorIwlkZWZpbmUgUjMwMF9HQl9TVEVOQ0lMX0FVVE9fRU5BQkxFCSgxPDw0KQorIwlkZWZpbmUgUjMwMF9HQl9VTkszMQkJCSgxPDwzMSkKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMiBiaXRzIHdpZGUgKi8KKyNkZWZpbmUgUjMwMF9HQl9URVhfUkVQTElDQVRFCTAKKyNkZWZpbmUgUjMwMF9HQl9URVhfU1QJCTEKKyNkZWZpbmUgUjMwMF9HQl9URVhfU1RSCQkyCisjCWRlZmluZSBSMzAwX0dCX1RFWDBfU09VUkNFX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX0dCX1RFWDFfU09VUkNFX1NISUZUCTE4CisjCWRlZmluZSBSMzAwX0dCX1RFWDJfU09VUkNFX1NISUZUCTIwCisjCWRlZmluZSBSMzAwX0dCX1RFWDNfU09VUkNFX1NISUZUCTIyCisjCWRlZmluZSBSMzAwX0dCX1RFWDRfU09VUkNFX1NISUZUCTI0CisjCWRlZmluZSBSMzAwX0dCX1RFWDVfU09VUkNFX1NISUZUCTI2CisjCWRlZmluZSBSMzAwX0dCX1RFWDZfU09VUkNFX1NISUZUCTI4CisjCWRlZmluZSBSMzAwX0dCX1RFWDdfU09VUkNFX1NISUZUCTMwCisKKy8qIE1TUE9TIC0gcG9zaXRpb25zIGZvciBtdWx0aXNhbXBsZSBhbnRpYWxpYXNpbmcgKD8pICovCisjZGVmaW5lIFIzMDBfR0JfTVNQT1MwCTB4NDAxMAorCS8qIHNoaWZ0cyAtIGVhY2ggb2YgdGhlIGZpZWxkcyBpcyA0IGJpdHMgKi8KKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19YMF9TSElGVAkwCisjCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTBfU0hJRlQJNAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gxX1NISUZUCTgKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19ZMV9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gyX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTJfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU0JEMF9ZCQkyNAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TQkQwX1gJCTI4CisKKyNkZWZpbmUgUjMwMF9HQl9NU1BPUzEJMHg0MDE0CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWDNfU0hJRlQJMAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1kzX1NISUZUCTQKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNF9TSElGVAk4CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWTRfU0hJRlQJMTIKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNV9TSElGVAkxNgorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1k1X1NISUZUCTIwCisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNCRDEJCTI0CisKKworI2RlZmluZSBSMzAwX0dCX1RJTEVfQ09ORklHCTB4NDAxOAorIwlkZWZpbmUgUjMwMF9HQl9USUxFX0VOQUJMRQkoMTw8MCkKKyMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1JWMzAwCTAKKyMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1IzMDAJKDM8PDEpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfUElQRV9DT1VOVF9SNDIwCSg3PDwxKQorIwlkZWZpbmUgUjMwMF9HQl9USUxFX1BJUEVfQ09VTlRfUlY0MTAJKDM8PDEpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV84CQkwCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8xNgkJKDE8PDQpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8zMgkJKDI8PDQpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMQkJKDA8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMgkJKDE8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfNAkJKDI8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfOAkJKDM8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTYJCSg0PDw2KQorIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzMyCQkoNTw8NikKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfU0laRV82NAkJKDY8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTI4CQkoNzw8NikKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfWF9TSElGVAkJOQkvKiAzIGJpdHMgd2lkZSAqLworIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9ZX1NISUZUCQkxMgkvKiAzIGJpdHMgd2lkZSAqLworIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9USUxFX0EJCTAKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfVElMRV9CCQkoMTw8MTUpCisjCWRlZmluZSBSMzAwX0dCX1NVQlBJWEVMXzFfMTIJCTAKKyMJZGVmaW5lIFIzMDBfR0JfU1VCUElYRUxfMV8xNgkJKDE8PDE2KQorCisjZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFCTB4NDAyNAorCS8qIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBpcyAyIGJpdHMgd2lkZSAqLworI2RlZmluZSBSMzAwX0dCX0ZJRk9fU0laRV8zMgkwCisjZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFXzY0CTEKKyNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMTI4CTIKKyNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMjU2CTMKKyMJZGVmaW5lIFIzMDBfU0NfSUZJRk9fU0laRV9TSElGVAkwCisjCWRlZmluZSBSMzAwX1NDX1RaRklGT19TSVpFX1NISUZUCTIKKyMJZGVmaW5lIFIzMDBfU0NfQkZJRk9fU0laRV9TSElGVAk0CisKKyMJZGVmaW5lIFIzMDBfVVNfT0ZJRk9fU0laRV9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9VU19XRklGT19TSVpFX1NISUZUCTE0CisJLyogdGhlIGZvbGxvd2luZyB1c2UgdGhlIHNhbWUgY29uc3RhbnRzIGFzIGFib3ZlLCBidXQgbWVhbmluZyBpcworCSAgIGlzIHRpbWVzIDIgKGkuZS4gaW5zdGVhZCBvZiAzMiB3b3JkcyBpdCBtZWFucyA2NCAqLworIwlkZWZpbmUgUjMwMF9SU19URklGT19TSVpFX1NISUZUCTYKKyMJZGVmaW5lIFIzMDBfUlNfQ0ZJRk9fU0laRV9TSElGVAk4CisjCWRlZmluZSBSMzAwX1VTX1JBTV9TSVpFX1NISUZUCQkxMAorCS8qIHdhdGVybWFya3MsIDMgYml0cyB3aWRlICovCisjCWRlZmluZSBSMzAwX1JTX0hJR0hXQVRFUl9DT0xfU0hJRlQJMTYKKyMJZGVmaW5lIFIzMDBfUlNfSElHSFdBVEVSX1RFWF9TSElGVAkxOQorIwlkZWZpbmUgUjMwMF9PRklGT19ISUdIV0FURVJfU0hJRlQJMjIJLyogdHdvIGJpdHMgb25seSAqLworIwlkZWZpbmUgUjMwMF9DVUJFX0ZJRk9fSElHSFdBVEVSX0NPTF9TSElGVAkyNAorCisjZGVmaW5lIFIzMDBfR0JfU0VMRUNUCTB4NDAxQworIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MwQQkJMAorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MxQQkJMQorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MyQQkJMgorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MzQQkJMworIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUXzFfMV9XCTQKKyMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9aCQk1CisjCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF9aCQkwCisjCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF8xXzFfVwkoMTw8MykKKyMJZGVmaW5lIFIzMDBfR0JfV19TRUxFQ1RfMV9XCQkwCisjCWRlZmluZSBSMzAwX0dCX1dfU0VMRUNUXzEJCSgxPDw0KQorCisjZGVmaW5lIFIzMDBfR0JfQUFfQ09ORklHCQkweDQwMjAKKyMJZGVmaW5lIFIzMDBfQUFfRElTQUJMRQkJCTB4MDAKKyMJZGVmaW5lIFIzMDBfQUFfRU5BQkxFCQkJMHgwMQorIwlkZWZpbmUgUjMwMF9BQV9TVUJTQU1QTEVTXzIJCTAKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU18zCQkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU180CQkoMjw8MSkKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU182CQkoMzw8MSkKKworLyogZ2FwICovCisKKy8qIFplcm8gdG8gZmx1c2ggY2FjaGVzLiAqLworI2RlZmluZSBSMzAwX1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDAKKyNkZWZpbmUgUjMwMF9UWF9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisKKy8qIFRoZSB1cHBlciBlbmFibGUgYml0cyBhcmUgZ3Vlc3NlZCwgYmFzZWQgb24gZmdscnggcmVwb3J0ZWQgbGltaXRzLiAqLworI2RlZmluZSBSMzAwX1RYX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAweDQxMDQKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMSAgICAgICAgICAgICAgICAgICgxIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV8yICAgICAgICAgICAgICAgICAgKDEgPDwgMikKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzMgICAgICAgICAgICAgICAgICAoMSA8PCAzKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNCAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV81ICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzYgICAgICAgICAgICAgICAgICAoMSA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNyAgICAgICAgICAgICAgICAgICgxIDw8IDcpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV84ICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzkgICAgICAgICAgICAgICAgICAoMSA8PCA5KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTEgICAgICAgICAgICAgICAgICgxIDw8IDExKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTIgICAgICAgICAgICAgICAgICgxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTMgICAgICAgICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTQgICAgICAgICAgICAgICAgICgxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTUgICAgICAgICAgICAgICAgICgxIDw8IDE1KQorCisvKiBUaGUgcG9pbnRzaXplIGlzIGdpdmVuIGluIG11bHRpcGxlcyBvZiA2LiBUaGUgcG9pbnRzaXplIGNhbiBiZQorICogZW5vcm1vdXM6IENsZWFyKCkgcmVuZGVycyBhIHNpbmdsZSBwb2ludCB0aGF0IGZpbGxzIHRoZSBlbnRpcmUKKyAqIGZyYW1lYnVmZmVyLgorICovCisjZGVmaW5lIFIzMDBfUkVfUE9JTlRTSVpFICAgICAgICAgICAgICAgICAgIDB4NDIxQworIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfWV9TSElGVCAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1lfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1BPSU5UU0laRV9YX1NISUZUICAgICAgICAgICAgMTYKKyMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1hfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDE2KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfTUFYICAgICAgICAgICAgIChSMzAwX1BPSU5UU0laRV9ZX01BU0sgLyA2KQorCisvKiBUaGUgbGluZSB3aWR0aCBpcyBnaXZlbiBpbiBtdWx0aXBsZXMgb2YgNi4KKyAqIEluIGRlZmF1bHQgbW9kZSBsaW5lcyBhcmUgY2xhc3NpZmllZCBhcyB2ZXJ0aWNhbCBsaW5lcy4KKyAqIEhPOiBob3Jpem9udGFsCisgKiBWRTogdmVydGljYWwgb3IgaG9yaXpvbnRhbAorICogSE8gJiBWRTogbm8gY2xhc3NpZmljYXRpb24KKyAqLworI2RlZmluZSBSMzAwX1JFX0xJTkVfQ05UICAgICAgICAgICAgICAgICAgICAgIDB4NDIzNAorIyAgICAgICBkZWZpbmUgUjMwMF9MSU5FU0laRV9TSElGVCAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORVNJWkVfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0xJTkVTSVpFX01BWCAgICAgICAgICAgICAoUjMwMF9MSU5FU0laRV9NQVNLIC8gNikKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfSE8gICAgICAgICAgICAgICAoMSA8PCAxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfVkUgICAgICAgICAgICAgICAoMSA8PCAxNykKKworLyogU29tZSBzb3J0IG9mIHNjYWxlIG9yIGNsYW1wIHZhbHVlIGZvciB0ZXhjb29yZGxlc3MgdGV4dHVyZXMuICovCisjZGVmaW5lIFIzMDBfUkVfVU5LNDIzOCAgICAgICAgICAgICAgICAgICAgICAgMHg0MjM4CisKKy8qIFNvbWV0aGluZyBzaGFkZSByZWxhdGVkICovCisjZGVmaW5lIFIzMDBfUkVfU0hBREUgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Mjc0CisKKyNkZWZpbmUgUjMwMF9SRV9TSEFERV9NT0RFTCAgICAgICAgICAgICAgICAgICAweDQyNzgKKyMJZGVmaW5lIFIzMDBfUkVfU0hBREVfTU9ERUxfU01PT1RIICAgICAweDNhYWFhCisjCWRlZmluZSBSMzAwX1JFX1NIQURFX01PREVMX0ZMQVQgICAgICAgMHgzOTU5NQorCisvKiBEYW5nZXJvdXMgKi8KKyNkZWZpbmUgUjMwMF9SRV9QT0xZR09OX01PREUgICAgICAgICAgICAgICAgICAweDQyODgKKyMJZGVmaW5lIFIzMDBfUE1fRU5BQkxFRCAgICAgICAgICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9QT0lOVCAgICAgICAgICAgICgwIDw8IDApCisjCWRlZmluZSBSMzAwX1BNX0JBQ0tfUE9JTlQgICAgICAgICAgICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfUE1fRlJPTlRfTElORSAgICAgICAgICAgICAoMSA8PCA0KQorIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9GSUxMICAgICAgICAgICAgICgxIDw8IDUpCisjCWRlZmluZSBSMzAwX1BNX0JBQ0tfTElORSAgICAgICAgICAgICAgKDEgPDwgNykKKyMJZGVmaW5lIFIzMDBfUE1fQkFDS19GSUxMICAgICAgICAgICAgICAoMSA8PCA4KQorCisvKiBGb2cgcGFyYW1ldGVycyAqLworI2RlZmluZSBSMzAwX1JFX0ZPR19TQ0FMRSAgICAgICAgICAgICAgICAgICAgIDB4NDI5NAorI2RlZmluZSBSMzAwX1JFX0ZPR19TVEFSVCAgICAgICAgICAgICAgICAgICAgIDB4NDI5OAorCisvKiBOb3Qgc3VyZSB3aHkgdGhlcmUgYXJlIGR1cGxpY2F0ZSBvZiBmYWN0b3IgYW5kIGNvbnN0YW50IHZhbHVlcy4KKyAqIE15IGJlc3QgZ3Vlc3Mgc28gZmFyIGlzIHRoYXQgdGhlcmUgYXJlIHNlcGFyYXRlIHpiaWFzZXMgZm9yIHRlc3QgYW5kIHdyaXRlLgorICogT3JkZXJpbmcgbWlnaHQgYmUgd3JvbmcuCisgKiBTb21lIG9mIHRoZSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IGZnbCBoYXMgYSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiB6YmlhcworICogdmlhIHBpeGVsIHNoYWRlcnMuCisgKi8KKyNkZWZpbmUgUjMwMF9SRV9aQklBU19DTlRMICAgICAgICAgICAgICAgICAgICAweDQyQTAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQTQKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQTgKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQUMKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQjAKKworLyogVGhpcyByZWdpc3RlciBuZWVkcyB0byBiZSBzZXQgdG8gKDE8PDEpIGZvciBSVjM1MCB0byBjb3JyZWN0bHkKKyAqIHBlcmZvcm0gZGVwdGggdGVzdCAoc2VlIC0tdmItdHJpYW5nbGVzIGluIHIzMDBfZGVtbykKKyAqIERvbid0IGtub3cgYWJvdXQgb3RoZXIgY2hpcHMuIC0gVmxhZGltaXIKKyAqIFRoaXMgaXMgc2V0IHRvIDMgd2hlbiBHTF9QT0xZR09OX09GRlNFVF9GSUxMIGlzIG9uLgorICogTXkgZ3Vlc3MgaXMgdGhhdCB0aGVyZSBhcmUgdHdvIGJpdHMgZm9yIGVhY2ggemJpYXMgcHJpbWl0aXZlCisgKiAoRklMTCwgTElORSwgUE9JTlQpLgorICogIE9uZSB0byBlbmFibGUgZGVwdGggdGVzdCBhbmQgb25lIGZvciBkZXB0aCB3cml0ZS4KKyAqIFlldCB0aGlzIGRvZXNudCBleHBsYWluIHdoeSBkZXB0aCB3cml0ZXMgd29yayAuLi4KKyAqLworI2RlZmluZSBSMzAwX1JFX09DQ0xVU0lPTl9DTlRMCQkgICAgMHg0MkI0CisjCWRlZmluZSBSMzAwX09DQ0xVU0lPTl9PTgkJKDE8PDEpCisKKyNkZWZpbmUgUjMwMF9SRV9DVUxMX0NOVEwgICAgICAgICAgICAgICAgICAgMHg0MkI4CisjICAgICAgIGRlZmluZSBSMzAwX0NVTExfRlJPTlQgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ1VMTF9CQUNLICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUk9OVF9GQUNFX0NDVyAgICAgICAgICAgICAgICgwIDw8IDIpCisjICAgICAgIGRlZmluZSBSMzAwX0ZST05UX0ZBQ0VfQ1cgICAgICAgICAgICAgICAgKDEgPDwgMikKKworCisvKiBCRUdJTjogUmFzdGVyaXphdGlvbiAvIEludGVycG9sYXRvcnMgLSBtYW55IGd1ZXNzZXMgKi8KKworLyogMF9VTktOT1dOXzE4IGhhcyBhbHdheXMgYmVlbiBzZXQgZXhjZXB0IGZvciBjbGVhciBvcGVyYXRpb25zLgorICogVENfQ05UIGlzIHRoZSBudW1iZXIgb2YgaW5jb21pbmcgdGV4dHVyZSBjb29yZGluYXRlIHNldHMgKGkuZS4gaXQgZGVwZW5kcworICogb24gdGhlIHZlcnRleCBwcm9ncmFtLCAqbm90KiB0aGUgZnJhZ21lbnQgcHJvZ3JhbSkKKyAqLworI2RlZmluZSBSMzAwX1JTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgICAweDQzMDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfQ05UTF9UQ19DTlRfU0hJRlQgICAgICAgICAyCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0NOVExfVENfQ05UX01BU0sgICAgICAgICAgKDcgPDwgMikKKwkvKiBudW1iZXIgb2YgY29sb3IgaW50ZXJwb2xhdG9ycyB1c2VkICovCisjCWRlZmluZSBSMzAwX1JTX0NOVExfQ0lfQ05UX1NISUZUICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9SU19DTlRMXzBfVU5LTk9XTl8xOCAgICAgICAgICgxIDw8IDE4KQorCS8qIEd1ZXNzOiBSU19DTlRMXzEgaG9sZHMgdGhlIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgUlNfUk9VVEVfbgorCSAgIHJlZ2lzdGVyLiAqLworI2RlZmluZSBSMzAwX1JTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgICAweDQzMDQKKworLyogZ2FwICovCisKKy8qIE9ubHkgdXNlZCBmb3IgdGV4dHVyZSBjb29yZGluYXRlcy4KKyAqIFVzZSB0aGUgc291cmNlIGZpZWxkIHRvIHJvdXRlIHRleHR1cmUgY29vcmRpbmF0ZSBpbnB1dCBmcm9tIHRoZQorICogdmVydGV4IHByb2dyYW0gdG8gdGhlIGRlc2lyZWQgaW50ZXJwb2xhdG9yLiBOb3RlIHRoYXQgdGhlIHNvdXJjZQorICogZmllbGQgaXMgcmVsYXRpdmUgdG8gdGhlIG91dHB1dHMgdGhlIHZlcnRleCBwcm9ncmFtICphY3R1YWxseSoKKyAqIHdyaXRlcy4gSWYgYSB2ZXJ0ZXggcHJvZ3JhbSBvbmx5IHdyaXRlcyB0ZXhjb29yZFsxXSwgdGhpcyB3aWxsCisgKiBiZSBzb3VyY2UgaW5kZXggMC4KKyAqIFNldCBJTlRFUlBfVVNFRCBvbiBhbGwgaW50ZXJwb2xhdG9ycyB0aGF0IHByb2R1Y2UgZGF0YSB1c2VkIGJ5CisgKiB0aGUgZnJhZ21lbnQgcHJvZ3JhbS4gSU5URVJQX1VTRUQgbG9va3MgbGlrZSBhIHN3aXp6bGluZyBtYXNrLAorICogYnV0IEkgaGF2ZW4ndCBzZWVuIGl0IHVzZWQgdGhhdCB3YXkuCisgKgorICogTm90ZTogVGhlIF9VTktOT1dOIGNvbnN0YW50cyBhcmUgYWx3YXlzIHNldCBpbiB0aGVpciByZXNwZWN0aXZlCisgKiByZWdpc3Rlci4gSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgbmVjZXNzYXJ5LgorICovCisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzAgICAgICAgICAgICAgICAgICAgIDB4NDMxMAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF8xICAgICAgICAgICAgICAgICAgICAweDQzMTQKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQXzFfVU5LTk9XTiAgICAgICAgICAweDQwCisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzIgICAgICAgICAgICAgICAgICAgIDB4NDMxOAorIyAgICAgICBkZWZpbmUgUjMwMF9SU19JTlRFUlBfMl9VTktOT1dOICAgICAgICAgIDB4ODAKKyNkZWZpbmUgUjMwMF9SU19JTlRFUlBfMyAgICAgICAgICAgICAgICAgICAgMHg0MzFDCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF8zX1VOS05PV04gICAgICAgICAgMHhDMAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF80ICAgICAgICAgICAgICAgICAgICAweDQzMjAKKyNkZWZpbmUgUjMwMF9SU19JTlRFUlBfNSAgICAgICAgICAgICAgICAgICAgMHg0MzI0CisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzYgICAgICAgICAgICAgICAgICAgIDB4NDMyOAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF83ICAgICAgICAgICAgICAgICAgICAweDQzMkMKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1NSQ19TSElGVCAgICAgICAgICAyCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF9TUkNfTUFTSyAgICAgICAgICAgKDcgPDwgMikKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1VTRUQgICAgICAgICAgICAgICAweDAwRDEwMDAwCisKKy8qIFRoZXNlIERXT1JEcyBjb250cm9sIGhvdyB2ZXJ0ZXggZGF0YSBpcyByb3V0ZWQgaW50byBmcmFnbWVudCBwcm9ncmFtCisgKiByZWdpc3RlcnMsIGFmdGVyIGludGVycG9sYXRvcnMuCisgKi8KKyNkZWZpbmUgUjMwMF9SU19ST1VURV8wICAgICAgICAgICAgICAgICAgICAgMHg0MzMwCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfMSAgICAgICAgICAgICAgICAgICAgIDB4NDMzNAorI2RlZmluZSBSMzAwX1JTX1JPVVRFXzIgICAgICAgICAgICAgICAgICAgICAweDQzMzgKKyNkZWZpbmUgUjMwMF9SU19ST1VURV8zICAgICAgICAgICAgICAgICAgICAgMHg0MzNDIC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfNCAgICAgICAgICAgICAgICAgICAgIDB4NDM0MCAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JTX1JPVVRFXzUgICAgICAgICAgICAgICAgICAgICAweDQzNDQgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SU19ST1VURV82ICAgICAgICAgICAgICAgICAgICAgMHg0MzQ4IC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfNyAgICAgICAgICAgICAgICAgICAgIDB4NDM0QyAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF8xICAgICAxCisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfMiAgICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzMgICAgIDMKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF80ICAgICA0CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfNSAgICAgNSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzYgICAgIDYgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF83ICAgICA3IC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0VOQUJMRSAgICAgICAgICAgICAgKDEgPDwgMykgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfREVTVF9TSElGVCAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0RFU1RfTUFTSyAgICAgICAgICAgKDMxIDw8IDYpIC8qIEdVRVNTICovCisKKy8qIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNvbG9yOiBXaGVuIHRoZSBmcmFnbWVudCBwcm9ncmFtIHVzZXMgY29sb3IsCisgKiB0aGUgUk9VVEVfMF9DT0xPUiBiaXQgaXMgc2V0IGFuZCBST1VURV8wX0NPTE9SX0RFU1QgY29udGFpbnMgdGhlCisgKiBjb2xvciByZWdpc3RlciBpbmRleC4KKyAqCisgKiBBcHBlcmVudGx5IHlvdSBtYXkgc2V0IHRoZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1IgYml0LCBidXQgbm90IHByb3ZpZGUgYW55CisgKiBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVCB2YWx1ZTsgdGhpcyBzZXR1cCBpcyB1c2VkIGZvciBjbGVhcmluZyB0aGUgc3RhdGUuCisgKiBTZWUgcjMwMF9pb2N0bC5jOnIzMDBFbWl0Q2xlYXJTdGF0ZS4gSSdtIG5vdCBzdXJlIGlmIHRoaXMgc2V0dXAgaXMgc3RyaWN0bHkKKyAqIGNvcnJlY3Qgb3Igbm90LiAtIE9saXZlci4KKyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SICAgICAgICAgICAgICgxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SX0RFU1RfU0hJRlQgIDE3CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVF9NQVNLICAgKDMxIDw8IDE3KSAvKiBHVUVTUyAqLworLyogQXMgYWJvdmUsIGJ1dCBmb3Igc2Vjb25kYXJ5IGNvbG9yICovCisjCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX0NPTE9SMSAgICAgICAgICAgICgxIDw8IDE0KQorIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9TSElGVCAxNworIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9NQVNLICAoMzEgPDwgMTcpCisjCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX1VOS05PV04xMSAgICAgICAgICgxIDw8IDExKQorLyogRU5EOiBSYXN0ZXJpemF0aW9uIC8gSW50ZXJwb2xhdG9ycyAtIG1hbnkgZ3Vlc3NlcyAqLworCisvKiBIaWVyYXJjaGljYWwgWiBFbmFibGUgKi8KKyNkZWZpbmUgUjMwMF9TQ19IWVBFUlogICAgICAgICAgICAgICAgICAgMHg0M2E0CisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9ESVNBQkxFICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfRU5BQkxFICAgICAgKDEgPDwgMCkKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX01JTiAgICAgICAgICgwIDw8IDEpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9NQVggICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzI1NiAgICAgKDAgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8xMjggICAgICgxIDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9BREpfNjQgICAgICAoMiA8PCAyKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzMyICAgICAgKDMgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8xNiAgICAgICg0IDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9BREpfOCAgICAgICAoNSA8PCAyKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzQgICAgICAgKDYgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8yICAgICAgICg3IDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9IWl9aME1JTl9OTyAoMCA8PCA1KQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfSFpfWjBNSU4gICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0haX1owTUFYX05PICgwIDw8IDYpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9IWl9aME1BWCAgICAoMSA8PCA2KQorCisjZGVmaW5lIFIzMDBfU0NfRURHRVJVTEUgICAgICAgICAgICAgICAgIDB4NDNhOAorCisvKiBCRUdJTjogU2Npc3NvcnMgYW5kIGNsaXByZWN0cyAqLworCisvKiBUaGVyZSBhcmUgZm91ciBjbGlwcGluZyByZWN0YW5nbGVzLiBUaGVpciBjb3JuZXIgY29vcmRpbmF0ZXMgYXJlIGluY2x1c2l2ZS4KKyAqIEV2ZXJ5IHBpeGVsIGlzIGFzc2lnbmVkIGEgbnVtYmVyIGZyb20gMCBhbmQgMTUgYnkgc2V0dGluZyBiaXRzIDAtMyBkZXBlbmRpbmcKKyAqIG9uIHdoZXRoZXIgdGhlIHBpeGVsIGlzIGluc2lkZSBjbGlwcmVjdHMgMC0zLCByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlLAorICogaWYgYSBwaXhlbCBpcyBpbnNpZGUgY2xpcHJlY3RzIDAgYW5kIDEsIGJ1dCBvdXRzaWRlIDIgYW5kIDMsIGl0IGlzIGFzc2lnbmVkCisgKiB0aGUgbnVtYmVyIDMgKGJpbmFyeSAwMDExKS4KKyAqIElmZiB0aGUgYml0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBpeGVsJ3MgbnVtYmVyIGluIFJFX0NMSVBSRUNUX0NOVEwgaXMgc2V0LAorICogdGhlIHBpeGVsIGlzIHJhc3Rlcml6ZWQuCisgKgorICogSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlcmUgaXMgYSBzY2lzc29ycyByZWN0YW5nbGUuIE9ubHkgcGl4ZWxzIGluc2lkZSB0aGUKKyAqIHNjaXNzb3JzIHJlY3RhbmdsZSBhcmUgZHJhd24uIChjb29yZGluYXRlcyBhcmUgaW5jbHVzaXZlKQorICoKKyAqIEZvciBzb21lIHJlYXNvbiwgdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgZnJhbWVidWZmZXIgaXMgYXQgKDE0NDAsIDE0NDApCisgKiBmb3IgdGhlIHB1cnBvc2Ugb2YgY2xpcHBpbmcgYW5kIHNjaXNzb3JzLgorICovCisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMCAgICAgICAgICAgICAgIDB4NDNCMAorI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzAgICAgICAgICAgICAgICAweDQzQjQKKyNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9UTF8xICAgICAgICAgICAgICAgMHg0M0I4CisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQlJfMSAgICAgICAgICAgICAgIDB4NDNCQworI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX1RMXzIgICAgICAgICAgICAgICAweDQzQzAKKyNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9CUl8yICAgICAgICAgICAgICAgMHg0M0M0CisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMyAgICAgICAgICAgICAgIDB4NDNDOAorI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzMgICAgICAgICAgICAgICAweDQzQ0MKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX01BU0sgICAgICAgICAgICAgICAgMHgxRkZGCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX1hfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCAgICAgICAgICAgICAxMworIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCAgICAgICAgICAgICAgIDB4NDNEMAorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQX09VVCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMCAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8xICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzEwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8yMCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzIxICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMjEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8zICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxMCAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCisKKy8qIGdhcCAqLworCisjZGVmaW5lIFIzMDBfUkVfU0NJU1NPUlNfVEwgICAgICAgICAgICAgICAgIDB4NDNFMAorI2RlZmluZSBSMzAwX1JFX1NDSVNTT1JTX0JSICAgICAgICAgICAgICAgICAweDQzRTQKKyMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCisjICAgICAgIGRlZmluZSBSMzAwX1NDSVNTT1JTX1hfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfWV9TSElGVCAgICAgICAgICAgICAxMworIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCisvKiBFTkQ6IFNjaXNzb3JzIGFuZCBjbGlwcmVjdHMgKi8KKworLyogQkVHSU46IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLworCisvKgorICogVGhlIHRleHR1cmUgc3BlY2lmaWNhdGlvbiBkd29yZHMgYXJlIGdyb3VwZWQgYnkgbWVhbmluZyBhbmQgbm90IGJ5IHRleHR1cmUKKyAqIHVuaXQuIFRoaXMgbWVhbnMgdGhhdCBlLmcuIHRoZSBvZmZzZXQgZm9yIHRleHR1cmUgaW1hZ2UgdW5pdCBOIGlzIGZvdW5kIGluCisgKiByZWdpc3RlciBUWF9PRkZTRVRfMCArICg0Kk4pCisgKi8KKyNkZWZpbmUgUjMwMF9UWF9GSUxURVJfMCAgICAgICAgICAgICAgICAgICAgMHg0NDAwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1JFUEVBVCAgICAgICAgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NSVJST1JFRCAgICAgICAgICAgICAgICAgIDEKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfQ0xBTVAgICAgICAgICAgICAgICAgICAgICA0CisjICAgICAgIGRlZmluZSBSMzAwX1RYX0NMQU1QX1RPX0VER0UgICAgICAgICAgICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9DTEFNUF9UT19CT1JERVIgICAgICAgICAgIDYKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9TX1NISUZUICAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfU19NQVNLICAgICAgICAgICAgICAgKDcgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9UX1NISUZUICAgICAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfVF9NQVNLICAgICAgICAgICAgICAgKDcgPDwgMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9RX1NISUZUICAgICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfUV9NQVNLICAgICAgICAgICAgICAgKDcgPDwgNikKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFHX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCA5KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQUdfRklMVEVSX0xJTkVBUiAgICAgICAgICgyIDw8IDkpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX01BR19GSUxURVJfTUFTSyAgICAgICAgICAgKDMgPDwgOSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCAxMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVIgICAgICAgICAoMiA8PCAxMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUX01JUF9ORUFSRVNUICAgICAgICg1ICA8PCAgMTEpCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTkVBUkVTVF9NSVBfTElORUFSICAgICAgICAoOSAgPDwgIDExKQorIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0xJTkVBUl9NSVBfTkVBUkVTVCAgICAgICAgKDYgIDw8ICAxMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVJfTUlQX0xJTkVBUiAgICAgICAgICgxMCA8PCAgMTEpCisKKy8qIE5PVEU6IE5FQVJFU1QgZG9lc250IHNlZW0gdG8gZXhpc3QuCisgKiBJbSBub3Qgc2V0aW5nIE1BR19GSUxURVJfTUFTSyBhbmQgKDMgPDwgMTEpIG9uIGZvciBhbGwKKyAqIGFuaXNvdHJvcHkgbW9kZXMgYmVjYXVzZSB0aGF0IHdvdWxkIHZvaWQgc2VsZWN0ZWQgbWFnIGZpbHRlcgorICovCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVCAgICAgICAgICAgICAoMCA8PCAxMykKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9BTklTT19MSU5FQVIgICAgICAgICAgICAgICgwIDw8IDEzKQorIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0FOSVNPX05FQVJFU1RfTUlQX05FQVJFU1QgKDEgPDwgMTMpCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVF9NSVBfTElORUFSICAoMiA8PCAxMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9NQVNLICAgKCAoMTUgPDwgMTEpIHwgKDMgPDwgMTMpICkKKyMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzFfVE9fMSAgKDAgPDwgMjEpCisjCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18yX1RPXzEgICgyIDw8IDIxKQorIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fNF9UT18xICAoNCA8PCAyMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzhfVE9fMSAgKDYgPDwgMjEpCisjCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18xNl9UT18xICg4IDw8IDIxKQorIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fTUFTSyAgICAoMTQgPDwgMjEpCisKKyNkZWZpbmUgUjMwMF9UWF9GSUxURVIxXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDQwCisjCWRlZmluZSBSMzAwX0NIUk9NQV9LRVlfTU9ERV9ESVNBQkxFICAgIDAKKyMJZGVmaW5lIFIzMDBfQ0hST01BX0tFWV9GT1JDRQkgICAgICAgMQorIwlkZWZpbmUgUjMwMF9DSFJPTUFfS0VZX0JMRU5EICAgICAgICAgICAyCisjCWRlZmluZSBSMzAwX01DX1JPVU5EX05PUk1BTCAgICAgICAgICAgICgwPDwyKQorIwlkZWZpbmUgUjMwMF9NQ19ST1VORF9NUEVHNCAgICAgICAgICAgICAoMTw8MikKKyMJZGVmaW5lIFIzMDBfTE9EX0JJQVNfTUFTSwkgICAgMHgxZmZmCisjCWRlZmluZSBSMzAwX0VER0VfQU5JU09fRURHRV9ESUFHICAgICAgICgwPDwxMykKKyMJZGVmaW5lIFIzMDBfRURHRV9BTklTT19FREdFX09OTFkgICAgICAgKDE8PDEzKQorIwlkZWZpbmUgUjMwMF9NQ19DT09SRF9UUlVOQ0FURV9ESVNBQkxFICAoMDw8MTQpCisjCWRlZmluZSBSMzAwX01DX0NPT1JEX1RSVU5DQVRFX01QRUcgICAgICgxPDwxNCkKKyMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfMF84ICAgICAgICAgICAgKDA8PDE1KQorIwlkZWZpbmUgUjMwMF9UWF9UUklfUEVSRl8xXzggICAgICAgICAgICAoMTw8MTUpCisjCWRlZmluZSBSMzAwX1RYX1RSSV9QRVJGXzFfNCAgICAgICAgICAgICgyPDwxNSkKKyMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfM184ICAgICAgICAgICAgKDM8PDE1KQorIwlkZWZpbmUgUjMwMF9BTklTT19USFJFU0hPTERfTUFTSyAgICAgICAoNzw8MTcpCisKKyNkZWZpbmUgUjMwMF9UWF9TSVpFXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDgwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dJRFRITUFTS19TSElGVCAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XSURUSE1BU0tfTUFTSyAgICAgICAgICAgICgyMDQ3IDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0hFSUdIVE1BU0tfU0hJRlQgICAgICAgICAgMTEKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfSEVJR0hUTUFTS19NQVNLICAgICAgICAgICAoMjA0NyA8PCAxMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfVU5LMjMgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFYX01JUF9MRVZFTF9TSElGVCAgICAgICAyNgorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQVhfTUlQX0xFVkVMX01BU0sgICAgICAgICgweGYgPDwgMjYpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1NJWkVfUFJPSkVDVEVEICAgICAgICAgICAgKDE8PDMwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9TSVpFX1RYUElUQ0hfRU4gICAgICAgICAgICgxPDwzMSkKKyNkZWZpbmUgUjMwMF9UWF9GT1JNQVRfMCAgICAgICAgICAgICAgICAgICAgMHg0NEMwCisJLyogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBmb3JtYXQgd29yZCBieSBXbGFkaW1pciB2YW4gZGVyIExhYW4gKi8KKwkvKiBUaGUgWCwgWSwgWiBhbmQgVyByZWZlciB0byB0aGUgbGF5b3V0IG9mIHRoZSBjb21wb25lbnRzLgorCSAgIFRoZXkgYXJlIGdpdmVuIG1lYW5pbmdzIGFzIFIsIEcsIEIgYW5kIEFscGhhIGJ5IHRoZSBzd2l6emxlCisJICAgc3BlY2lmaWNhdGlvbiAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWDgJCSAgICAweDAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gxNgkJICAgIDB4MQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTRYNAkJICAgIDB4MgorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWThYOAkJICAgIDB4MworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTE2WDE2CQkgICAgMHg0CisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aM1kzWDIJCSAgICAweDUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1o1WTZYNQkJICAgIDB4NgorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWjZZNVg1CQkgICAgMHg3CisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aMTFZMTFYMTAJCSAgICAweDgKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oxMFkxMVgxMQkJICAgIDB4OQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzRaNFk0WDQJCSAgICAweEEKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cxWjVZNVg1CQkgICAgMHhCCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9XOFo4WThYOAkJICAgIDB4QworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzJaMTBZMTBYMTAJICAgIDB4RAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzE2WjE2WTE2WDE2CSAgICAweEUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDEJCSAgICAweEYKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDMJCSAgICAweDEwCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9EWFQ1CQkgICAgMHgxMQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRDNETUZUX0N4VjhVOAkgICAgMHgxMiAgICAgLyogbm8gc3dpenpsZSAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQThSOEc4QjgJCSAgICAweDEzICAgICAvKiBubyBzd2l6emxlICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9COEc4X0I4RzgJCSAgICAweDE0ICAgICAvKiBubyBzd2l6emxlICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9HOFI4X0c4QjgJCSAgICAweDE1ICAgICAvKiBubyBzd2l6emxlICovCisJLyogMHgxNiAtIHNvbWUgMTYgYml0IGdyZWVuIGZvcm1hdC4uID8/ICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9VTksyNQkJICAgKDEgPDwgMjUpIC8qIG5vIHN3aXp6bGUgKi8KKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NVQklDX01BUAkJICAgKDEgPDwgMjYpCisKKwkvKiBnYXAgKi8KKwkvKiBGbG9hdGluZyBwb2ludCBmb3JtYXRzICovCisJLyogTm90ZSAtIGhhcmR3YXJlIHN1cHBvcnRzIGJvdGggMTYgYW5kIDMyIGJpdCBmbG9hdGluZyBwb2ludCAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2CQkgICAgMHgxOAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2QTE2CQkgICAgMHgxOQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfUjE2RzE2QjE2QTE2CSAgICAweDFBCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzIJCSAgICAweDFCCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzJBMzIJCSAgICAweDFDCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9SMzJHMzJCMzJBMzIJICAgIDB4MUQKKwkvKiBhbHBoYSBtb2RlcywgY29udmVuaWVuY2UgbW9zdGx5ICovCisJLyogaWYgeW91IGhhdmUgYWxwaGEsIHBpY2sgY29uc3RhbnQgYXBwcm9wcmlhdGUgdG8gdGhlCisJICAgbnVtYmVyIG9mIGNoYW5uZWxzICgxIGZvciBJOCwgMiBmb3IgSThBOCwgNCBmb3IgUjhHOEI4QTgsIGV0YyAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfMUNICQkgICAgMHgwMDAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FMUEhBXzJDSAkJICAgIDB4MjAwCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9BTFBIQV80Q0gJCSAgICAweDYwMAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfTk9ORQkgICAgMHhBMDAKKwkvKiBTd2l6emxpbmcgKi8KKwkvKiBjb25zdGFudHMgKi8KKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gJCTAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1kJCTEKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oJCTIKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cJCTMKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1pFUk8JNAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfT05FCTUKKwkvKiAyLjAqWiwgZXZlcnl0aGluZyBhYm92ZSAxLjAgaXMgc2V0IHRvIDAuMCAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ1VUX1oJNgorCS8qIDIuMCpXLCBldmVyeXRoaW5nIGFib3ZlIDEuMCBpcyBzZXQgdG8gMC4wICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DVVRfVwk3CisKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0JfU0hJRlQJMTgKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0dfU0hJRlQJMTUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1JfU0hJRlQJMTIKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FfU0hJRlQJOQorCS8qIENvbnZlbmllbmNlIG1hY3JvIHRvIHRha2UgY2FyZSBvZiBsYXlvdXQgYW5kIHN3aXp6bGluZyAqLworIwlkZWZpbmUgUjMwMF9FQVNZX1RYX0ZPUk1BVChCLCBHLCBSLCBBLCBGTVQpCSgJCVwKKwkJKChSMzAwX1RYX0ZPUk1BVF8jI0IpPDxSMzAwX1RYX0ZPUk1BVF9CX1NISUZUKQkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNHKTw8UjMwMF9UWF9GT1JNQVRfR19TSElGVCkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNSKTw8UjMwMF9UWF9GT1JNQVRfUl9TSElGVCkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNBKTw8UjMwMF9UWF9GT1JNQVRfQV9TSElGVCkJXAorCQl8IChSMzAwX1RYX0ZPUk1BVF8jI0ZNVCkJCQkJXAorCQkpCisJLyogVGhlc2UgY2FuIGJlIE9SZWQgd2l0aCByZXN1bHQgb2YgUjMwMF9FQVNZX1RYX0ZPUk1BVCgpCisJICAgV2UgZG9uJ3QgcmVhbGx5IGtub3cgd2hhdCB0aGV5IGRvLiBUYWtlIHZhbHVlcyBmcm9tIGEKKyAgICAgICAgICAgY29uc3RhbnQgY29sb3IgPyAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfWAkJKDE8PDUpCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DT05TVF9ZCQkoMjw8NSkKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NPTlNUX1oJCSg0PDw1KQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfVwkJKDg8PDUpCisKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1lVVl9NT0RFCQkweDAwODAwMDAwCisKKyNkZWZpbmUgUjMwMF9UWF9QSVRDSF8wCQkJICAgIDB4NDUwMCAvKiBvYnZpb3VzIG1pc3NpbmcgaW4gZ2FwICovCisjZGVmaW5lIFIzMDBfVFhfT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgIDB4NDU0MAorCS8qIEJFR0lOOiBHdWVzcyBmcm9tIFIyMDAgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9OT19TV0FQICAgICAgICAgICAoMCA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fRU5ESUFOX0JZVEVfU1dBUCAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19FTkRJQU5fV09SRF9TV0FQICAgICAgICAgKDIgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9IQUxGRFdfU1dBUCAgICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fTUFDUk9fVElMRSAgICAgICAgICAgICAgICgxIDw8IDIpCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19NSUNST19USUxFICAgICAgICAgICAgICAgKDEgPDwgMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX09GRlNFVF9NQVNLICAgICAgICAgICAgICAweGZmZmZmZmUwCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19PRkZTRVRfU0hJRlQgICAgICAgICAgICAgNQorCS8qIEVORDogR3Vlc3MgZnJvbSBSMjAwICovCisKKy8qIDMyIGJpdCBjaHJvbWEga2V5ICovCisjZGVmaW5lIFIzMDBfVFhfQ0hST01BX0tFWV8wICAgICAgICAgICAgICAgICAgICAgIDB4NDU4MAorLyogZmYwMGZmMDAgPT0geyAwLCAxLjAsIDAsIDEuMCB9ICovCisjZGVmaW5lIFIzMDBfVFhfQk9SREVSX0NPTE9SXzAgICAgICAgICAgICAgIDB4NDVDMAorCisvKiBFTkQ6IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLworCisvKiBCRUdJTjogRnJhZ21lbnQgcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KKworLyogRnJhZ21lbnQgcHJvZ3JhbXMgYXJlIHdyaXR0ZW4gZGlyZWN0bHkgaW50byByZWdpc3RlciBzcGFjZS4KKyAqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbiBzdHJlYW1zIGZvciB0ZXh0dXJlIGluc3RydWN0aW9ucyBhbmQgQUxVCisgKiBpbnN0cnVjdGlvbnMuCisgKiBJbiBvcmRlciB0byBzeW5jaHJvbml6ZSB0aGVzZSBzdHJlYW1zLCB0aGUgcHJvZ3JhbSBpcyBkaXZpZGVkIGludG8gdXAKKyAqIHRvIDQgbm9kZXMuIEVhY2ggbm9kZSBiZWdpbnMgd2l0aCBhIG51bWJlciBvZiBURVggb3BlcmF0aW9ucywgZm9sbG93ZWQKKyAqIGJ5IGEgbnVtYmVyIG9mIEFMVSBvcGVyYXRpb25zLgorICogVGhlIGZpcnN0IG5vZGUgY2FuIGhhdmUgemVybyBURVggb3BzLCBhbGwgc3Vic2VxdWVudCBub2RlcyBtdXN0IGhhdmUgYXQKKyAqIGxlYXN0CisgKiBvbmUgVEVYIG9wcy4KKyAqIEFsbCBub2RlcyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIEFMVSBvcC4KKyAqCisgKiBUaGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9kZSBpcyBzdG9yZWQgaW4gUEZTX0NOVExfMDogQSB2YWx1ZSBvZiAwIG1lYW5zCisgKiAxIG5vZGUsIGEgdmFsdWUgb2YgMyBtZWFucyA0IG5vZGVzLgorICogVGhlIHRvdGFsIGFtb3VudCBvZiBpbnN0cnVjdGlvbnMgaXMgZGVmaW5lZCBpbiBQRlNfQ05UTF8yLiBUaGUgb2Zmc2V0cyBhcmUKKyAqIG9mZnNldHMgaW50byB0aGUgcmVzcGVjdGl2ZSBpbnN0cnVjdGlvbiBzdHJlYW1zLCB3aGlsZSAqX0VORCBwb2ludHMgdG8gdGhlCisgKiBsYXN0IGluc3RydWN0aW9uIHJlbGF0aXZlIHRvIHRoaXMgb2Zmc2V0LgorICovCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgIDB4NDYwMAorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9MQVNUX05PREVTX1NISUZUICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfTEFTVF9OT0RFU19NQVNLICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9GSVJTVF9OT0RFX0hBU19URVggICgxIDw8IDMpCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgIDB4NDYwNAorLyogVGhlcmUgaXMgYW4gdW5zaGlmdGVkIHZhbHVlIGhlcmUgd2hpY2ggaGFzIHNvIGZhciBhbHdheXMgYmVlbiBlcXVhbCB0byB0aGUKKyAqIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgdGVtcG9yYXJ5IHJlZ2lzdGVyLgorICovCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYwOAorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9BTFVfT0ZGU0VUX1NISUZUICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX09GRlNFVF9NQVNLICAgICAoNjMgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX0VORF9TSElGVCAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0FMVV9FTkRfTUFTSyAgICAgICAgKDYzIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9PRkZTRVRfU0hJRlQgICAgMTIKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX09GRlNFVF9NQVNLICAgICAoMzEgPDwgMTIpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9FTkRfU0hJRlQgICAgICAgMTgKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX0VORF9NQVNLICAgICAgICAoMzEgPDwgMTgpIC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBOb2RlcyBhcmUgc3RvcmVkIGJhY2t3YXJkcy4gVGhlIGxhc3QgYWN0aXZlIG5vZGUgaXMgYWx3YXlzIHN0b3JlZCBpbgorICogUEZTX05PREVfMy4KKyAqIEV4YW1wbGU6IEluIGEgMi1ub2RlIHByb2dyYW0sIE5PREVfMCBhbmQgTk9ERV8xIGFyZSBzZXQgdG8gMC4gVGhlCisgKiBmaXJzdCBub2RlIGlzIHN0b3JlZCBpbiBOT0RFXzIsIHRoZSBzZWNvbmQgbm9kZSBpcyBzdG9yZWQgaW4gTk9ERV8zLgorICoKKyAqIE9mZnNldHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBtYXN0ZXIgb2Zmc2V0IGZyb20gUEZTX0NOVExfMi4KKyAqLworI2RlZmluZSBSMzAwX1BGU19OT0RFXzAgICAgICAgICAgICAgICAgICAgICAweDQ2MTAKKyNkZWZpbmUgUjMwMF9QRlNfTk9ERV8xICAgICAgICAgICAgICAgICAgICAgMHg0NjE0CisjZGVmaW5lIFIzMDBfUEZTX05PREVfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYxOAorI2RlZmluZSBSMzAwX1BGU19OT0RFXzMgICAgICAgICAgICAgICAgICAgICAweDQ2MUMKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfQUxVX09GRlNFVF9TSElGVCAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9PRkZTRVRfTUFTSyAgICAgKDYzIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9FTkRfU0hJRlQgICAgICAgNgorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9BTFVfRU5EX01BU0sgICAgICAgICg2MyA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfT0ZGU0VUX1NISUZUICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9PRkZTRVRfTUFTSyAgICAgKDMxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfRU5EX1NISUZUICAgICAgIDE3CisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9FTkRfTUFTSyAgICAgICAgKDMxIDw8IDE3KQorIwkJZGVmaW5lIFIzMDBfUEZTX05PREVfT1VUUFVUX0NPTE9SICAgICAgICAoMSA8PCAyMikKKyMJCWRlZmluZSBSMzAwX1BGU19OT0RFX09VVFBVVF9ERVBUSCAgICAgICAgKDEgPDwgMjMpCisKKy8qIFRFWAorICogQXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRleHR1cmUgaW5zdHJ1Y3Rpb25zIGNhbm5vdCB3cml0ZSBpbnRvIG91dHB1dAorICogcmVnaXN0ZXJzIGRpcmVjdGx5LiBBIHN1YnNlcXVlbnQgQUxVIGluc3RydWN0aW9uIGlzIGFsd2F5cyBuZWNlc3NhcnksCisgKiBldmVuIGlmIGl0J3MganVzdCBNQUQgbzAsIHIwLCAxLCAwCisgKi8KKyNkZWZpbmUgUjMwMF9QRlNfVEVYSV8wICAgICAgICAgICAgICAgICAgICAgMHg0NjIwCisjCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19TSElGVCAgICAgICAgICAgICAgMAorIwlkZWZpbmUgUjMwMF9GUElUWF9TUkNfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAwKQorCS8qIEdVRVNTICovCisjCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19DT05TVCAgICAgICAgICAgICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfRlBJVFhfRFNUX1NISUZUICAgICAgICAgICAgICA2CisjCWRlZmluZSBSMzAwX0ZQSVRYX0RTVF9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDYpCisjCWRlZmluZSBSMzAwX0ZQSVRYX0lNQUdFX1NISUZUICAgICAgICAgICAgMTEKKwkvKiBHVUVTUyBiYXNlZCBvbiBsYXlvdXQgYW5kIG5hdGl2ZSBsaW1pdHMgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJVFhfSU1BR0VfTUFTSyAgICAgICAgICAgICAoMTUgPDwgMTEpCisvKiBVbnN1cmUgaWYgdGhlc2UgYXJlIG9wY29kZXMsIG9yIHNvbWUga2luZCBvZiBiaXRmaWVsZCwgYnV0IHRoaXMgaXMgaG93CisgKiB0aGV5IHdlcmUgc2V0IHdoZW4gSSBjaGVja2VkCisgKi8KKyMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX1NISUZUCQkxNQorIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVEVYCTEKKyMJCWRlZmluZSBSMzAwX0ZQSVRYX09QX0tJTAkyCisjCQlkZWZpbmUgUjMwMF9GUElUWF9PUF9UWFAJMworIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVFhCCTQKKyMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX01BU0sgICAgICAgICAgICg3IDw8IDE1KQorCisvKiBBTFUKKyAqIFRoZSBBTFUgaW5zdHJ1Y3Rpb25zIHJlZ2lzdGVyIGJsb2NrcyBhcmUgZW51bWVyYXRlZCBhY2NvcmRpbmcgdG8gdGhlIG9yZGVyCisgKiBpbiB3aGljaCBmZ2xyeC4gSSBhc3N1bWUgdGhlcmUgaXMgc3BhY2UgZm9yIDY0IGluc3RydWN0aW9ucywgc2luY2UKKyAqIGVhY2ggYmxvY2sgaGFzIHNwYWNlIGZvciBhIG1heGltdW0gb2YgNjQgRFdPUkRzLCBhbmQgdGhpcyBtYXRjaGVzIHJlcG9ydGVkCisgKiBuYXRpdmUgbGltaXRzLgorICoKKyAqIFRoZSBiYXNpYyBmdW5jdGlvbmFsIGJsb2NrIHNlZW1zIHRvIGJlIG9uZSBNQUQgZm9yIGVhY2ggY29sb3IgYW5kIGFscGhhLAorICogYW5kIGFuIGFkZGVyIHRoYXQgYWRkcyBhbGwgY29tcG9uZW50cyBhZnRlciB0aGUgTVVMLgorICogIC0gQURELCBNVUwsIE1BRCBldGMuOiB1c2UgTUFEIHdpdGggYXBwcm9wcmlhdGUgbmV1dHJhbCBvcGVyYW5kcworICogIC0gRFA0OiBVc2UgT1VUQ19EUDQsIE9VVEFfRFA0CisgKiAgLSBEUDM6IFVzZSBPVVRDX0RQMywgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCisgKiAgLSBEUEg6IFVzZSBPVVRDX0RQNCwgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCisgKiAgLSBDTVBIOiBJZiBBUkcyID4gMC41LCByZXR1cm4gQVJHMCwgZWxzZSByZXR1cm4gQVJHMQorICogIC0gQ01QOiBJZiBBUkcyIDwgMCwgcmV0dXJuIEFSRzEsIGVsc2UgcmV0dXJuIEFSRzAKKyAqICAtIEZMUjogdXNlIEZSQytNQUQKKyAqICAtIFhQRDogdXNlIE1BRCtNQUQKKyAqICAtIFNHRSwgU0xUOiB1c2UgTUFEK0NNUAorICogIC0gUlNROiB1c2UgQUJTIG1vZGlmaWVyIGZvciBhcmd1bWVudAorICogIC0gVXNlIE9VVENfUkVQTF9BTFBIQSB0byB3cml0ZSByZXN1bHRzIG9mIGFuIGFscGhhLW9ubHkgb3BlcmF0aW9uCisgKiAgICAoZS5nLiBSQ1ApIGludG8gY29sb3IgcmVnaXN0ZXIKKyAqICAtIGFwcGFyZW50bHksIHRoZXJlJ3Mgbm8gcXVpY2sgRFNUIG9wZXJhdGlvbgorICogIC0gZmdscnggc2V0IEZQSTJfVU5LTk9XTl8zMSBvbiBhICJNQUQgZnJhZ21lbnQuY29sb3IsIHRtcDAsIHRtcDEsIHRtcDIiCisgKiAgLSBmZ2xyeCBzZXQgRlBJMl9VTktOT1dOXzMxIG9uIGEgIk1BWCByMiwgcjEsIGMwIgorICogIC0gZmdscnggb25jZSBzZXQgRlBJMF9VTktOT1dOXzMxIG9uIGEgIkZSQyByMSwgcjEiCisgKgorICogT3BlcmFuZCBzZWxlY3Rpb24KKyAqIEZpcnN0IHN0YWdlIHNlbGVjdHMgdGhyZWUgc291cmNlcyBmcm9tIHRoZSBhdmFpbGFibGUgcmVnaXN0ZXJzIGFuZAorICogY29uc3RhbnQgcGFyYW1ldGVycy4gVGhpcyBpcyBkZWZpbmVkIGluIElOU1RSMSAoY29sb3IpIGFuZCBJTlNUUjMgKGFscGhhKS4KKyAqIGZnbHJ4IHNvcnRzIHRoZSB0aHJlZSBzb3VyY2UgZmllbGRzOiBSZWdpc3RlcnMgYmVmb3JlIGNvbnN0YW50cywKKyAqIGxvd2VyIGluZGljZXMgYmVmb3JlIGhpZ2hlciBpbmRpY2VzOyBJIGRvIG5vdCBrbm93IHdoZXRoZXIgdGhpcyBpcworICogbmVjZXNzYXJ5LgorICoKKyAqIGZnbHJ4IGZpbGxzIHVudXNlZCBzb3VyY2VzIHdpdGggInJlYWQgY29uc3RhbnQgMCIKKyAqIEFjY29yZGluZyB0byBzcGVjcywgeW91IGNhbm5vdCBzZWxlY3QgbW9yZSB0aGFuIHR3byBkaWZmZXJlbnQgY29uc3RhbnRzLgorICoKKyAqIFNlY29uZCBzdGFnZSBzZWxlY3RzIHRoZSBvcGVyYW5kcyBmcm9tIHRoZSBzb3VyY2VzLiBUaGlzIGlzIGRlZmluZWQgaW4KKyAqIElOU1RSMCAoY29sb3IpIGFuZCBJTlNUUjIgKGFscGhhKS4gWW91IGNhbiBhbHNvIHNlbGVjdCB0aGUgc3BlY2lhbCBjb25zdGFudHMKKyAqIHplcm8gYW5kIG9uZS4KKyAqIFN3aXp6bGluZyBhbmQgbmVnYXRpb24gaGFwcGVucyBpbiB0aGlzIHN0YWdlLCBhcyB3ZWxsLgorICoKKyAqIEltcG9ydGFudDogQ29sb3IgYW5kIGFscGhhIHNlZW0gdG8gYmUgbW9zdGx5IHNlcGFyYXRlLCBpLmUuIHRoZWlyIHNvdXJjZXMKKyAqIHNlbGVjdGlvbiBhcHBlYXJzIHRvIGJlIGZ1bGx5IGluZGVwZW5kZW50ICh0aGUgcmVnaXN0ZXIgc3RvcmFnZSBpcyBwcm9iYWJseQorICogcGh5c2ljYWxseSBzcGxpdCBpbnRvIGEgY29sb3IgYW5kIGFuIGFscGhhIHNlY3Rpb24pLgorICogSG93ZXZlciAoYmVjYXVzZSBvZiB0aGUgYXBwYXJlbnQgcGh5c2ljYWwgc3BsaXQpLCB0aGVyZSBpcyBzb21lIGludGVyYWN0aW9uCisgKiBXUlQgc3dpenpsaW5nLiBJZiwgZm9yIGV4YW1wbGUsIHlvdSB3YW50IHRvIGxvYWQgYW4gUiBjb21wb25lbnQgaW50byBhbgorICogQWxwaGEgb3BlcmFuZCwgdGhpcyBSIGNvbXBvbmVudCBpcyB0YWtlbiBmcm9tIGEgKmNvbG9yKiBzb3VyY2UsIG5vdCBmcm9tCisgKiBhbiBhbHBoYSBzb3VyY2UuIFRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyIGRvZXNuJ3QgZXZlbiBoYXZlIHRvIGFwcGVhciBpbgorICogdGhlIGFscGhhIHNvdXJjZXMgbGlzdC4gKEkgaG9wZSB0aGlzIGFsbCBtYWtlcyBzZW5zZSB0byB5b3UpCisgKgorICogRGVzdGluYXRpb24gc2VsZWN0aW9uCisgKiBUaGUgZGVzdGluYXRpb24gcmVnaXN0ZXIgaW5kZXggaXMgaW4gRlBJMSAoY29sb3IpIGFuZCBGUEkzIChhbHBoYSkKKyAqIHRvZ2V0aGVyIHdpdGggZW5hYmxlIGJpdHMuCisgKiBUaGVyZSBhcmUgc2VwYXJhdGUgZW5hYmxlIGJpdHMgZm9yIHdyaXRpbmcgaW50byB0ZW1wb3JhcnkgcmVnaXN0ZXJzCisgKiAoRFNUQ19SRUdfKiAvRFNUQV9SRUcpIGFuZCBhbmQgcHJvZ3JhbSBvdXRwdXQgcmVnaXN0ZXJzIChEU1RDX09VVFBVVF8qCisgKiAvRFNUQV9PVVRQVVQpLiBZb3UgY2FuIHdyaXRlIHRvIGJvdGggYXQgb25jZSwgb3Igbm90IHdyaXRlIGF0IGFsbCAodGhlCisgKiBzYW1lIGluZGV4IG11c3QgYmUgdXNlZCBmb3IgYm90aCkuCisgKgorICogTm90ZTogVGhlcmUgaXMgYSBzcGVjaWFsIGZvcm0gZm9yIExSUAorICogIC0gQXJndW1lbnQgb3JkZXIgaXMgdGhlIHNhbWUgYXMgaW4gQVJCX2ZyYWdtZW50X3Byb2dyYW0uCisgKiAgLSBPcGVyYXRpb24gaXMgTUFECisgKiAgLSBBUkcxIGlzIHNldCB0byBBUkdDX1NSQzFDX0xSUC9BUkdDX1NSQzFBX0xSUAorICogIC0gU2V0IEZQSTAvRlBJMl9TUEVDSUFMX0xSUAorICogQXJiaXRyYXJ5IExSUCAoaW5jbHVkaW5nIHN1cHBvcnQgZm9yIHN3aXp6bGluZykgcmVxdWlyZXMgdmFuaWxsYSBNQUQrTUFECisgKi8KKyNkZWZpbmUgUjMwMF9QRlNfSU5TVFIxXzAgICAgICAgICAgICAgICAgICAgMHg0NkMwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMENfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDUpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMUNfU0hJRlQgICAgICAgICAgICAgNgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDExKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX1NISUZUICAgICAgICAgICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDE3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQ19NQVNLICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1NISUZUICAgICAgICAgICAgICAxOAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX0RTVENfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAxOCkKKyMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfTUFTS19TSElGVCAgICAgMjMKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19YICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19ZICAgICAgICAgICAgICAoMSA8PCAyNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19aICAgICAgICAgICAgICAoMSA8PCAyNSkKKyMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfTUFTS19TSElGVCAgMjYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9YICAgICAgICAgICAoMSA8PCAyNikKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9ZICAgICAgICAgICAoMSA8PCAyNykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9aICAgICAgICAgICAoMSA8PCAyOCkKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjNfMCAgICAgICAgICAgICAgICAgICAweDQ3QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMwQV9TSElGVCAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgNSkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMxQV9TSElGVCAgICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTEpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfU0hJRlQgICAgICAgICAgICAgMTIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTcpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDX01BU0sgICAgICAgICAgICAgICAgMHgwMDAzZmZmZgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfU0hJRlQgICAgICAgICAgICAgIDE4CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfRFNUQV9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDE4KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfUkVHICAgICAgICAgICAgICAgICgxIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfT1VUUFVUICAgICAgICAgICAgICgxIDw8IDI0KQorIwkJZGVmaW5lIFIzMDBfRlBJM19EU1RBX0RFUFRIICAgICAgICAgICAgICAoMSA8PCAyNykKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjBfMCAgICAgICAgICAgICAgICAgICAweDQ4QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1hZWiAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19YWFggICAgICAgICAgMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMENfWVlZICAgICAgICAgIDIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1paWiAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19YWVogICAgICAgICAgNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWFhYICAgICAgICAgIDUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1lZWSAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19aWlogICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWFlaICAgICAgICAgIDgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1hYWCAgICAgICAgICA5CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWVkgICAgICAgICAgMTAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1paWiAgICAgICAgICAxMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMEEgICAgICAgICAgICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQSAgICAgICAgICAgICAgMTMKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJBICAgICAgICAgICAgICAxNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfTFJQICAgICAgICAgIDE1CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19aRVJPICAgICAgICAgICAgICAgMjAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX09ORSAgICAgICAgICAgICAgICAyMQorCS8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19IQUxGICAgICAgICAgICAgICAgMjIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1laWCAgICAgICAgICAyMworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWVpYICAgICAgICAgIDI0CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWlggICAgICAgICAgMjUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1pYWSAgICAgICAgICAyNgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWlhZICAgICAgICAgIDI3CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19aWFkgICAgICAgICAgMjgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDQV9XWlkgICAgICAgICAyOQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNBX1daWSAgICAgICAgIDMwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ0FfV1pZICAgICAgICAgMzEKKworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX1NISUZUICAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19ORUcgICAgICAgICAgICAgICAoMSA8PCA1KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMUNfU0hJRlQgICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX1NISUZUICAgICAgICAgICAgIDE0CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX05FRyAgICAgICAgICAgICAgICgxIDw8IDE5KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDIwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX1NQRUNJQUxfTFJQICAgICAgICAgICAgICgxIDw8IDIxKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFEICAgICAgICAgICAgICAgICgwIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFAzICAgICAgICAgICAgICAgICgxIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFA0ICAgICAgICAgICAgICAgICgyIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUlOICAgICAgICAgICAgICAgICg0IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFYICAgICAgICAgICAgICAgICg1IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QSCAgICAgICAgICAgICAgICg3IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QICAgICAgICAgICAgICAgICg4IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRlJDICAgICAgICAgICAgICAgICg5IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfUkVQTF9BTFBIQSAgICAgICAgICgxMCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX1NBVCAgICAgICAgICAgICAgICAoMSA8PCAzMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9JTlNFUlRfTk9QICAgICAgICAgICAgICAoMSA8PCAzMSkKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjJfMCAgICAgICAgICAgICAgICAgICAweDQ5QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBDX1ggICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMwQ19ZICAgICAgICAgICAgMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMENfWiAgICAgICAgICAgIDIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzFDX1ggICAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQ19ZICAgICAgICAgICAgNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUNfWiAgICAgICAgICAgIDUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJDX1ggICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMyQ19ZICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMkNfWiAgICAgICAgICAgIDgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBBICAgICAgICAgICAgICA5CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQSAgICAgICAgICAgICAgMTAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJBICAgICAgICAgICAgICAxMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUFfTFJQICAgICAgICAgIDE1CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9aRVJPICAgICAgICAgICAgICAgMTYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX09ORSAgICAgICAgICAgICAgICAxNworCS8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9IQUxGICAgICAgICAgICAgICAgMTgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcwQV9TSElGVCAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTkVHICAgICAgICAgICAgICAgKDEgPDwgNSkKKwkvKiBHVUVTUyAqLworIwlkZWZpbmUgUjMwMF9GUEkyX0FSRzBBX0FCUwkJICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfU0hJRlQgICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQorCS8qIEdVRVNTICovCisjCWRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfQUJTCQkgKDEgPDwgMTMpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfU0hJRlQgICAgICAgICAgICAgMTQKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTQpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfTkVHICAgICAgICAgICAgICAgKDEgPDwgMTkpCisJLyogR1VFU1MgKi8KKyMJZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9BQlMJCSAoMSA8PCAyMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9TUEVDSUFMX0xSUCAgICAgICAgICAgICAoMSA8PCAyMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BRCAgICAgICAgICAgICAgICAoMCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0RQNCAgICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01JTiAgICAgICAgICAgICAgICAoMiA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BWCAgICAgICAgICAgICAgICAoMyA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0NNUCAgICAgICAgICAgICAgICAoNiA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0ZSQyAgICAgICAgICAgICAgICAoNyA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0VYMiAgICAgICAgICAgICAgICAoOCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0xHMiAgICAgICAgICAgICAgICAoOSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX1JDUCAgICAgICAgICAgICAgICAoMTAgPDwgMjMpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9SU1EgICAgICAgICAgICAgICAgKDExIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX09VVEFfU0FUICAgICAgICAgICAgICAgICgxIDw8IDMwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX1VOS05PV05fMzEgICAgICAgICAgICAgICgxIDw8IDMxKQorLyogRU5EOiBGcmFnbWVudCBwcm9ncmFtIGluc3RydWN0aW9uIHNldCAqLworCisvKiBGb2cgc3RhdGUgYW5kIGNvbG9yICovCisjZGVmaW5lIFIzMDBfUkVfRk9HX1NUQVRFICAgICAgICAgICAgICAgICAgIDB4NEJDMAorIyAgICAgICBkZWZpbmUgUjMwMF9GT0dfRU5BQkxFICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjCWRlZmluZSBSMzAwX0ZPR19NT0RFX0xJTkVBUiAgICAgICAgICAgICAgKDAgPDwgMSkKKyMJZGVmaW5lIFIzMDBfRk9HX01PREVfRVhQICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9GT0dfTU9ERV9FWFAyICAgICAgICAgICAgICAgICgyIDw8IDEpCisjCWRlZmluZSBSMzAwX0ZPR19NT0RFX01BU0sgICAgICAgICAgICAgICAgKDMgPDwgMSkKKyNkZWZpbmUgUjMwMF9GT0dfQ09MT1JfUiAgICAgICAgICAgICAgICAgICAgMHg0QkM4CisjZGVmaW5lIFIzMDBfRk9HX0NPTE9SX0cgICAgICAgICAgICAgICAgICAgIDB4NEJDQworI2RlZmluZSBSMzAwX0ZPR19DT0xPUl9CICAgICAgICAgICAgICAgICAgICAweDRCRDAKKworI2RlZmluZSBSMzAwX1BQX0FMUEhBX1RFU1QgICAgICAgICAgICAgICAgICAweDRCRDQKKyMgICAgICAgZGVmaW5lIFIzMDBfUkVGX0FMUEhBX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMGZmCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRkFJTCAgICAgICAgICAgICAgKDAgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9MRVNTICAgICAgICAgICAgICAoMSA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0xFUVVBTCAgICAgICAgICAgICgzIDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRVFVQUwgICAgICAgICAgICAgKDIgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9HRVFVQUwgICAgICAgICAgICAoNiA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0dSRUFURVIgICAgICAgICAgICg0IDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfTkVRVUFMICAgICAgICAgICAgKDUgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9QQVNTICAgICAgICAgICAgICAoNyA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX09QX01BU0sgICAgICAgICAgICg3IDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTEpCisKKy8qIGdhcCAqLworCisvKiBGcmFnbWVudCBwcm9ncmFtIHBhcmFtZXRlcnMgaW4gNy4xNiBmbG9hdGluZyBwb2ludCAqLworI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1ggICAgICAgICAgICAgICAgICAweDRDMDAKKyNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMF9ZICAgICAgICAgICAgICAgICAgMHg0QzA0CisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzBfWiAgICAgICAgICAgICAgICAgIDB4NEMwOAorI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1cgICAgICAgICAgICAgICAgICAweDRDMEMKKy8qIEdVRVNTOiBQQVJBTV8zMSBpcyBsYXN0LCBiYXNlZCBvbiBuYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGZnbHJ4ICovCisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1ggICAgICAgICAgICAgICAgIDB4NERGMAorI2RlZmluZSBSMzAwX1BGU19QQVJBTV8zMV9ZICAgICAgICAgICAgICAgICAweDRERjQKKyNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMzFfWiAgICAgICAgICAgICAgICAgMHg0REY4CisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1cgICAgICAgICAgICAgICAgIDB4NERGQworCisvKiBOb3RlczoKKyAqIC0gQUZBSUsgZmdscnggYWx3YXlzIHNldHMgQkxFTkRfVU5LTk9XTiB3aGVuIGJsZW5kaW5nIGlzIHVzZWQgaW4KKyAqICAgdGhlIGFwcGxpY2F0aW9uCisgKiAtIEFGQUlLIGZnbHJ4IGFsd2F5cyBzZXRzIEJMRU5EX05PX1NFUEFSQVRFIHdoZW4gQ0JMRU5EIGFuZCBBQkxFTkQKKyAqICAgIGFyZSBzZXQgdG8gdGhlIHNhbWUKKyAqICAgZnVuY3Rpb24gKGJvdGggcmVnaXN0ZXJzIGFyZSBhbHdheXMgc2V0IHVwIGNvbXBsZXRlbHkgaW4gYW55IGNhc2UpCisgKiAtIE1vc3QgYmxlbmQgZmxhZ3MgYXJlIHNpbXBseSBjb3BpZWQgZnJvbSBSMjAwIGFuZCBub3QgdGVzdGVkIHlldAorICovCisjZGVmaW5lIFIzMDBfUkIzRF9DQkxFTkQgICAgICAgICAgICAgICAgICAgIDB4NEUwNAorI2RlZmluZSBSMzAwX1JCM0RfQUJMRU5EICAgICAgICAgICAgICAgICAgICAweDRFMDgKKy8qIHRoZSBmb2xsb3dpbmcgb25seSBhcHBlYXIgaW4gQ0JMRU5EICovCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX1VOS05PV04gICAgICAgICAgICAgICAgICAgICgzIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX05PX1NFUEFSQVRFICAgICAgICAgICAgICAgICgxIDw8IDMpCisvKiB0aGUgZm9sbG93aW5nIGFyZSBzaGFyZWQgYmV0d2VlbiBDQkxFTkQgYW5kIEFCTEVORCAqLworIyAgICAgICBkZWZpbmUgUjMwMF9GQ05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAoMyAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX0FERF9DTEFNUCAgICAgICAgICAgICAgICgwICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fQUREX05PQ0xBTVAgICAgICAgICAgICAgKDEgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9TVUJfQ0xBTVAgICAgICAgICAgICAgICAoMiAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1NVQl9OT0NMQU1QICAgICAgICAgICAgICgzICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fTUlOICAgICAgICAgICAgICAgICAgICAgKDQgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9NQVggICAgICAgICAgICAgICAgICAgICAoNSAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1JTVUJfQ0xBTVAgICAgICAgICAgICAgICg2ICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fUlNVQl9OT0NMQU1QICAgICAgICAgICAgKDcgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9aRVJPICAgICAgICAgICAgICAgICAgICAoMzIpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORSAgICAgICAgICAgICAgICAgICAgICgzMykKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfU1JDX0NPTE9SICAgICAgICAgICAgICAgKDM0KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfU1JDX0NPTE9SICAgICAoMzUpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0RTVF9DT0xPUiAgICAgICAgICAgICAgICgzNikKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0RTVF9DT0xPUiAgICAgKDM3KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9TUkNfQUxQSEEgICAgICAgICAgICAgICAoMzgpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORV9NSU5VU19TUkNfQUxQSEEgICAgICgzOSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfRFNUX0FMUEhBICAgICAgICAgICAgICAgKDQwKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfRFNUX0FMUEhBICAgICAoNDEpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX1NSQ19BTFBIQV9TQVRVUkFURSAgICAgICg0MikKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfQ09OU1RfQ09MT1IgICAgICAgICAgICAgKDQzKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfQ09OU1RfQ09MT1IgICAoNDQpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0NPTlNUX0FMUEhBICAgICAgICAgICAgICg0NSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0NPTlNUX0FMUEhBICAgKDQ2KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAoNjMpCisjICAgICAgIGRlZmluZSBSMzAwX1NSQ19CTEVORF9TSElGVCAgICAgICAgICAgICAgICAgICgxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfRFNUX0JMRU5EX1NISUZUICAgICAgICAgICAgICAgICAgKDI0KQorI2RlZmluZSBSMzAwX1JCM0RfQkxFTkRfQ09MT1IgICAgICAgICAgICAgICAweDRFMTAKKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9STUFTSyAgICAgICAgICAgICAgICAgMHg0RTBDCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQiAgICAgICAgICAgICAgICAgKDE8PDApCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfRyAgICAgICAgICAgICAgICAgKDE8PDEpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfUiAgICAgICAgICAgICAgICAgKDE8PDIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQSAgICAgICAgICAgICAgICAgKDE8PDMpCisKKy8qIGdhcCAqLworCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAgICAgICAgICAgICAgIDB4NEUyOAorIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk9GRlNFVF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRjAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9ST0ZGU0VUMSAgICAgICAgICAgICAgMHg0RTJDIC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDIgICAgICAgICAgICAgIDB4NEUzMCAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JPRkZTRVQzICAgICAgICAgICAgICAweDRFMzQgLyogR1VFU1MgKi8KKworLyogZ2FwICovCisKKy8qIEJpdCAxNjogTGFyZ2VyIHRpbGVzCisgKiBCaXQgMTc6IDR4MiB0aWxlcworICogQml0IDE4OiBFeHRyZW1lbHkgd2VpcmQgdGlsZSBsaWtlLCBidXQgc29tZSBwaXhlbHMgZHVwbGljYXRlZD8KKyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDAgICAgICAgICAgICAgICAweDRFMzgKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09MT1JQSVRDSF9NQVNLICAgICAgICAgICAgICAweDAwMDAxRkY4IC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX1RJTEVfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTYpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX01JQ1JPVElMRV9FTkFCTEUgICAgICAgKDEgPDwgMTcpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9OT19TV0FQICAgICAgICAgKDAgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9EV09SRF9TV0FQICAgICAgKDIgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9SR0I1NjUgICAgICAgICAgKDIgPDwgMjIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9BUkdCODg4OCAgICAgICAgKDMgPDwgMjIpCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUlBJVENIMSAgICAgICAgICAgICAgIDB4NEUzQyAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDIgICAgICAgICAgICAgICAweDRFNDAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9SUElUQ0gzICAgICAgICAgICAgICAgMHg0RTQ0IC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBHdWVzcyBieSBWbGFkaW1pci4KKyAqIFNldCB0byAwQSBiZWZvcmUgM0Qgb3BlcmF0aW9ucywgc2V0IHRvIDAyIGFmdGVyd2FyZHMuCisgKi8KKy8qI2RlZmluZSBSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCAgICAgICAgICAweDRFNEMqLworIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMDIgICAgICAgICAgICAgMHgwMDAwMDAwMgorIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMEEgICAgICAgICAgICAgMHgwMDAwMDAwQQorCisvKiBnYXAgKi8KKy8qIFRoZXJlIHNlZW1zIHRvIGJlIG5vICJ3cml0ZSBvbmx5IiBzZXR0aW5nLCBzbyB1c2UgWi10ZXN0ID0gQUxXQVlTCisgKiBmb3IgdGhpcy4KKyAqIEJpdCAoMTw8OCkgaXMgdGhlICJ0ZXN0IiBiaXQuIHNvIHBsYWluIHdyaXRlIGlzIDYgIC0gdmQKKyAqLworI2RlZmluZSBSMzAwX1pCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEYwMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMX0VOQUJMRQkJICgxIDw8IDApCisjCWRlZmluZSBSMzAwX1pfRU5BQkxFCQkgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9aX1dSSVRFX0VOQUJMRQkJICgxIDw8IDIpCisjCWRlZmluZSBSMzAwX1pfU0lHTkVEX0NPTVBBUkUJCSAoMSA8PCAzKQorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMX0ZST05UX0JBQ0sJCSAoMSA8PCA0KQorCisjZGVmaW5lIFIzMDBfWkJfWlNURU5DSUxDTlRMICAgICAgICAgICAgICAgICAgIDB4NGYwNAorCS8qIGZ1bmN0aW9ucyAqLworIwlkZWZpbmUgUjMwMF9aU19ORVZFUgkJCTAKKyMJZGVmaW5lIFIzMDBfWlNfTEVTUwkJCTEKKyMJZGVmaW5lIFIzMDBfWlNfTEVRVUFMCQkJMgorIwlkZWZpbmUgUjMwMF9aU19FUVVBTAkJCTMKKyMJZGVmaW5lIFIzMDBfWlNfR0VRVUFMCQkJNAorIwlkZWZpbmUgUjMwMF9aU19HUkVBVEVSCQkJNQorIwlkZWZpbmUgUjMwMF9aU19OT1RFUVVBTAkJCTYKKyMJZGVmaW5lIFIzMDBfWlNfQUxXQVlTCQkJNworIyAgICAgICBkZWZpbmUgUjMwMF9aU19NQVNLICAgICAgICAgICAgICAgICAgICAgNworCS8qIG9wZXJhdGlvbnMgKi8KKyMJZGVmaW5lIFIzMDBfWlNfS0VFUAkJCTAKKyMJZGVmaW5lIFIzMDBfWlNfWkVSTwkJCTEKKyMJZGVmaW5lIFIzMDBfWlNfUkVQTEFDRQkJCTIKKyMJZGVmaW5lIFIzMDBfWlNfSU5DUgkJCTMKKyMJZGVmaW5lIFIzMDBfWlNfREVDUgkJCTQKKyMJZGVmaW5lIFIzMDBfWlNfSU5WRVJUCQkJNQorIwlkZWZpbmUgUjMwMF9aU19JTkNSX1dSQVAJCTYKKyMJZGVmaW5lIFIzMDBfWlNfREVDUl9XUkFQCQk3CisjCWRlZmluZSBSMzAwX1pfRlVOQ19TSElGVAkJMAorCS8qIGZyb250IGFuZCBiYWNrIHJlZmVyIHRvIG9wZXJhdGlvbnMgZG9uZSBmb3IgZnJvbnQKKwkgICBhbmQgYmFjayBmYWNlcywgaS5lLiBzZXBhcmF0ZSBzdGVuY2lsIGZ1bmN0aW9uIHN1cHBvcnQgKi8KKyMJZGVmaW5lIFIzMDBfU19GUk9OVF9GVU5DX1NISUZUCSAgICAgICAgMworIwlkZWZpbmUgUjMwMF9TX0ZST05UX1NGQUlMX09QX1NISUZUCTYKKyMJZGVmaW5lIFIzMDBfU19GUk9OVF9aUEFTU19PUF9TSElGVAk5CisjCWRlZmluZSBSMzAwX1NfRlJPTlRfWkZBSUxfT1BfU0hJRlQgICAgICAxMgorIwlkZWZpbmUgUjMwMF9TX0JBQ0tfRlVOQ19TSElGVCAgICAgICAgICAgMTUKKyMJZGVmaW5lIFIzMDBfU19CQUNLX1NGQUlMX09QX1NISUZUICAgICAgIDE4CisjCWRlZmluZSBSMzAwX1NfQkFDS19aUEFTU19PUF9TSElGVCAgICAgICAyMQorIwlkZWZpbmUgUjMwMF9TX0JBQ0tfWkZBSUxfT1BfU0hJRlQgICAgICAgMjQKKworI2RlZmluZSBSMzAwX1pCX1NURU5DSUxSRUZNQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjA4CisjCWRlZmluZSBSMzAwX1NURU5DSUxSRUZfU0hJRlQgICAgICAgMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMUkVGX01BU0sgICAgICAgIDB4MDAwMDAwZmYKKyMJZGVmaW5lIFIzMDBfU1RFTkNJTE1BU0tfU0hJRlQgICAgICA4CisjCWRlZmluZSBSMzAwX1NURU5DSUxNQVNLX01BU0sgICAgICAgMHgwMDAwZmYwMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMV1JJVEVNQVNLX1NISUZUIDE2CisjCWRlZmluZSBSMzAwX1NURU5DSUxXUklURU1BU0tfTUFTSyAgMHgwMGZmMDAwMAorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1pCX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjEwCisjCWRlZmluZSBSMzAwX0RFUFRIRk9STUFUXzE2QklUX0lOVF9aICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfREVQVEhGT1JNQVRfMTZCSVRfMTNFMyAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9ERVBUSEZPUk1BVF8yNEJJVF9JTlRfWl84QklUX1NURU5DSUwgICAoMiA8PCAwKQorLyogcmVzZXJ2ZWQgdXAgdG8gKDE1IDw8IDApICovCisjCWRlZmluZSBSMzAwX0lOVkVSVF8xM0UzX0xFQURJTkdfT05FUyAgKDAgPDwgNCkKKyMJZGVmaW5lIFIzMDBfSU5WRVJUXzEzRTNfTEVBRElOR19aRVJPUyAoMSA8PCA0KQorCisjZGVmaW5lIFIzMDBfWkJfWlRPUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0RjE0CisjCWRlZmluZSBSMzAwX1pUT1BfRElTQUJMRSAgICAgICAgICAgICAgICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfWlRPUF9FTkFCTEUgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUICAgICAgICAgICAgMHg0ZjE4CisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZMVVNIX05PX0VGRkVDVCAgICAgICgwIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZMVVNIX0ZMVVNIX0FORF9GUkVFICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZSRUVfTk9fRUZGRUNUICAgICAgICgwIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZSRUVfRlJFRSAgICAgICAgICAgICgxIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0JVU1lfSURMRSAgICAgICAgICAgICgwIDw8IDMxKQorIyAgICAgICBkZWZpbmUgUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVF9aQ19CVVNZX0JVU1kgICAgICAgICAgICAoMSA8PCAzMSkKKworI2RlZmluZSBSMzAwX1pCX0JXX0NOVEwgICAgICAgICAgICAgICAgICAgICAweDRmMWMKKyMJZGVmaW5lIFIzMDBfSElaX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9ISVpfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjCWRlZmluZSBSMzAwX0hJWl9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMSkKKyMJZGVmaW5lIFIzMDBfSElaX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9GQVNUX0ZJTExfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IDIpCisjCWRlZmluZSBSMzAwX0ZBU1RfRklMTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKKyMJZGVmaW5lIFIzMDBfUkRfQ09NUF9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PCAzKQorIwlkZWZpbmUgUjMwMF9SRF9DT01QX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjCWRlZmluZSBSMzAwX1dSX0NPTVBfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgNCkKKyMJZGVmaW5lIFIzMDBfV1JfQ09NUF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQorIwlkZWZpbmUgUjMwMF9aQl9DQl9DTEVBUl9STVcgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IDUpCisjCWRlZmluZSBSMzAwX1pCX0NCX0NMRUFSX0NBQ0hFX0xJTkVBUiAgICAgICAgICAgICAgICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfRk9SQ0VfQ09NUFJFU1NFRF9TVEVOQ0lMX1ZBTFVFX0RJU0FCTEUgICAoMCA8PCA2KQorIwlkZWZpbmUgUjMwMF9GT1JDRV9DT01QUkVTU0VEX1NURU5DSUxfVkFMVUVfRU5BQkxFICAgICgxIDw8IDYpCisKKyMJZGVmaW5lIFI1MDBfWkVRVUFMX09QVElNSVpFX0VOQUJMRSAgICAgICAgICAgICAgICAgICAoMCA8PCA3KQorIwlkZWZpbmUgUjUwMF9aRVFVQUxfT1BUSU1JWkVfRElTQUJMRSAgICAgICAgICAgICAgICAgICgxIDw8IDcpCisjCWRlZmluZSBSNTAwX1NFUVVBTF9PUFRJTUlaRV9FTkFCTEUgICAgICAgICAgICAgICAgICAgKDAgPDwgOCkKKyMJZGVmaW5lIFI1MDBfU0VRVUFMX09QVElNSVpFX0RJU0FCTEUgICAgICAgICAgICAgICAgICAoMSA8PCA4KQorCisjCWRlZmluZSBSNTAwX0JNQVNLX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMTApCisjCWRlZmluZSBSNTAwX0JNQVNLX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCisjCWRlZmluZSBSNTAwX0hJWl9FUVVBTF9SRUpFQ1RfRElTQUJMRSAgICAgICAgICAgICAgICAgKDAgPDwgMTEpCisjCWRlZmluZSBSNTAwX0hJWl9FUVVBTF9SRUpFQ1RfRU5BQkxFICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU19ESVNBQkxFICAgICAgICAgICAgICAgICAgKDAgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18xICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgKDIgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18zICAgICAgICAgICAgICAgICAgICAgICAgKDMgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU180ICAgICAgICAgICAgICAgICAgICAgICAgKDQgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU181ICAgICAgICAgICAgICAgICAgICAgICAgKDUgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9JTlZFUlRfTEVBRElOR19PTkVTICAgICAgICAgICAgICAgKDAgPDwgMTUpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9JTlZFUlRfTEVBRElOR19aRVJPUyAgICAgICAgICAgICAgKDEgPDwgMTUpCisjCWRlZmluZSBSNTAwX1RJTEVfT1ZFUldSSVRFX1JFQ09NUFJFU1NJT05fRU5BQkxFICAgICAgKDAgPDwgMTYpCisjCWRlZmluZSBSNTAwX1RJTEVfT1ZFUldSSVRFX1JFQ09NUFJFU1NJT05fRElTQUJMRSAgICAgKDEgPDwgMTYpCisjCWRlZmluZSBSNTAwX0NPTlRJR1VPVVNfNlhBQV9TQU1QTEVTX0VOQUJMRSAgICAgICAgICAgKDAgPDwgMTcpCisjCWRlZmluZSBSNTAwX0NPTlRJR1VPVVNfNlhBQV9TQU1QTEVTX0RJU0FCTEUgICAgICAgICAgKDEgPDwgMTcpCisjCWRlZmluZSBSNTAwX1BFUV9QQUNLSU5HX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMTgpCisjCWRlZmluZSBSNTAwX1BFUV9QQUNLSU5HX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTgpCisjCWRlZmluZSBSNTAwX0NPVkVSRURfUFRSX01BU0tJTkdfRElTQUJMRSAgICAgICAgICAgICAgKDAgPDwgMTgpCisjCWRlZmluZSBSNTAwX0NPVkVSRURfUFRSX01BU0tJTkdfRU5BQkxFICAgICAgICAgICAgICAgKDEgPDwgMTgpCisKKworLyogZ2FwICovCisKKy8qIFogQnVmZmVyIEFkZHJlc3MgT2Zmc2V0LgorICogQml0cyAzMSB0byA1IGFyZSB1c2VkIGZvciBhbGlnbmVkIFogYnVmZmVyIGFkZHJlc3Mgb2Zmc2V0IGZvciBtYWNybyB0aWxlcy4KKyAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIT0ZGU0VUICAgICAgICAgICAgICAgMHg0ZjIwCisKKy8qIFogQnVmZmVyIFBpdGNoIGFuZCBFbmRpYW4gQ29udHJvbCAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIUElUQ0ggICAgICAgICAgICAgICAgMHg0ZjI0CisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRIUElUQ0hfTUFTSyAgICAgICAgICAgICAgMHgwMDAwM0ZGQworIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSE1BQ1JPVElMRV9ESVNBQkxFICAgICAgKDAgPDwgMTYpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRITUFDUk9USUxFX0VOQUJMRSAgICAgICAoMSA8PCAxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhNSUNST1RJTEVfTElORUFSICAgICAgICgwIDw8IDE3KQorIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSE1JQ1JPVElMRV9USUxFRCAgICAgICAgKDEgPDwgMTcpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRITUlDUk9USUxFX1RJTEVEX1NRVUFSRSAoMiA8PCAxNykKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhFTkRJQU5fTk9fU1dBUCAgICAgICAgICgwIDw8IDE4KQorIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSEVORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRIRU5ESUFOX0RXT1JEX1NXQVAgICAgICAoMiA8PCAxOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhFTkRJQU5fSEFMRl9EV09SRF9TV0FQICgzIDw8IDE4KQorCisvKiBaIEJ1ZmZlciBDbGVhciBWYWx1ZSAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIQ0xFQVJWQUxVRSAgICAgICAgICAgICAgICAgIDB4NGYyOAorCisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfT0ZGU0VUCQkJIDB4NGYzMAorI2RlZmluZSBSMzAwX1pCX1pNQVNLX1BJVENICQkJIDB4NGYzNAorI2RlZmluZSBSMzAwX1pCX1pNQVNLX1dSSU5ERVgJCQkgMHg0ZjM4CisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfRFdPUkQJCQkgMHg0ZjNjCisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfUkRJTkRFWAkJCSAweDRmNDAKKworLyogSGllcmFyY2hpY2FsIFogTWVtb3J5IE9mZnNldCAqLworI2RlZmluZSBSMzAwX1pCX0hJWl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgIDB4NGY0NAorCisvKiBIaWVyYXJjaGljYWwgWiBXcml0ZSBJbmRleCAqLworI2RlZmluZSBSMzAwX1pCX0hJWl9XUklOREVYICAgICAgICAgICAgICAgICAgICAgIDB4NGY0OAorCisvKiBIaWVyYXJjaGljYWwgWiBEYXRhICovCisjZGVmaW5lIFIzMDBfWkJfSElaX0RXT1JEICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjRjCisKKy8qIEhpZXJhcmNoaWNhbCBaIFJlYWQgSW5kZXggKi8KKyNkZWZpbmUgUjMwMF9aQl9ISVpfUkRJTkRFWCAgICAgICAgICAgICAgICAgICAgICAweDRmNTAKKworLyogSGllcmFyY2hpY2FsIFogUGl0Y2ggKi8KKyNkZWZpbmUgUjMwMF9aQl9ISVpfUElUQ0ggICAgICAgICAgICAgICAgICAgICAgICAweDRmNTQKKworLyogWiBCdWZmZXIgWiBQYXNzIENvdW50ZXIgRGF0YSAqLworI2RlZmluZSBSMzAwX1pCX1pQQVNTX0RBVEEgICAgICAgICAgICAgICAgICAgICAgIDB4NGY1OAorCisvKiBaIEJ1ZmZlciBaIFBhc3MgQ291bnRlciBBZGRyZXNzICovCisjZGVmaW5lIFIzMDBfWkJfWlBBU1NfQUREUiAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjVjCisKKy8qIERlcHRoIGJ1ZmZlciBYIGFuZCBZIGNvb3JkaW5hdGUgb2Zmc2V0ICovCisjZGVmaW5lIFIzMDBfWkJfREVQVEhYWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgMHg0ZjYwCisjCWRlZmluZSBSMzAwX0RFUFRIWF9PRkZTRVRfU0hJRlQgIDEKKyMJZGVmaW5lIFIzMDBfREVQVEhYX09GRlNFVF9NQVNLICAgMHgwMDAwMDdGRQorIwlkZWZpbmUgUjMwMF9ERVBUSFlfT0ZGU0VUX1NISUZUICAxNworIwlkZWZpbmUgUjMwMF9ERVBUSFlfT0ZGU0VUX01BU0sgICAweDA3RkUwMDAwCisKKy8qIFNldHMgdGhlIGZpZm8gc2l6ZXMgKi8KKyNkZWZpbmUgUjUwMF9aQl9GSUZPX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAweDRmZDAKKyMJZGVmaW5lIFI1MDBfT1BfRklGT19TSVpFX0ZVTEwgICAoMCA8PCAwKQorIwlkZWZpbmUgUjUwMF9PUF9GSUZPX1NJWkVfSEFMRiAgICgxIDw8IDApCisjCWRlZmluZSBSNTAwX09QX0ZJRk9fU0laRV9RVUFURVIgKDIgPDwgMCkKKyMJZGVmaW5lIFI1MDBfT1BfRklGT19TSVpFX0VJR1RIUyAoNCA8PCAwKQorCisvKiBTdGVuY2lsIFJlZmVyZW5jZSBWYWx1ZSBhbmQgTWFzayBmb3IgYmFja2ZhY2luZyBxdWFkcyAqLworLyogUjMwMF9aQl9TVEVOQ0lMUkVGTUFTSyBoYW5kbGVzIGZyb250IGZhY2UgKi8KKyNkZWZpbmUgUjUwMF9aQl9TVEVOQ0lMUkVGTUFTS19CRiAgICAgICAgICAgICAgICAweDRmZDQKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTFJFRl9TSElGVCAgICAgICAwCisjCWRlZmluZSBSNTAwX1NURU5DSUxSRUZfTUFTSyAgICAgICAgMHgwMDAwMDBmZgorIwlkZWZpbmUgUjUwMF9TVEVOQ0lMTUFTS19TSElGVCAgICAgIDgKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTE1BU0tfTUFTSyAgICAgICAweDAwMDBmZjAwCisjCWRlZmluZSBSNTAwX1NURU5DSUxXUklURU1BU0tfU0hJRlQgMTYKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTFdSSVRFTUFTS19NQVNLICAweDAwZmYwMDAwCisKKy8qIEJFR0lOOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KKworLyogRXZlcnkgaW5zdHJ1Y3Rpb24gaXMgZm91ciBkd29yZHMgbG9uZzoKKyAqICBEV09SRCAwOiBvdXRwdXQgYW5kIG9wY29kZQorICogIERXT1JEIDE6IGZpcnN0IGFyZ3VtZW50CisgKiAgRFdPUkQgMjogc2Vjb25kIGFyZ3VtZW50CisgKiAgRFdPUkQgMzogdGhpcmQgYXJndW1lbnQKKyAqCisgKiBOb3RlczoKKyAqICAtIEFCUyByLCBhIGlzIGltcGxlbWVudGVkIGFzIE1BWCByLCBhLCAtYQorICogIC0gTU9WIGlzIGltcGxlbWVudGVkIGFzIEFERCB0byB6ZXJvCisgKiAgLSBYUEQgaXMgaW1wbGVtZW50ZWQgYXMgTVVMICsgTUFECisgKiAgLSBGTFIgaXMgaW1wbGVtZW50ZWQgYXMgRlJDICsgQURECisgKiAgLSBhcHBhcmVudGx5LCBmZ2xyeCB0cmllcyB0byBzY2hlZHVsZSBpbnN0cnVjdGlvbnMgc28gdGhhdCB0aGVyZSBpcyBhdAorICogICAgbGVhc3Qgb25lIGluc3RydWN0aW9uIGJldHdlZW4gdGhlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGFuZCB0aGUgZmlyc3QKKyAqICAgIHJlYWQgZnJvbSBzYWlkIHRlbXBvcmFyeTsgaG93ZXZlciwgdmlvbGF0aW9ucyBvZiB0aGlzIHNjaGVkdWxpbmcgYXJlCisgKiAgICBhbGxvd2VkCisgKiAgLSByZWdpc3RlciBpbmRpY2VzIHNlZW0gdG8gYmUgdW5yZWxhdGVkIHdpdGggT3BlbkdMIGFsaWFzaW5nIHRvCisgKiAgICBjb252ZW50aW9uYWwgc3RhdGUKKyAqICAtIG9ubHkgb25lIGF0dHJpYnV0ZSBhbmQgb25lIHBhcmFtZXRlciBjYW4gYmUgbG9hZGVkIGF0IGEgdGltZTsgaG93ZXZlciwKKyAqICAgIHRoZSBzYW1lIGF0dHJpYnV0ZS9wYXJhbWV0ZXIgY2FuIGJlIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQKKyAqICAtIHRoZSBzZWNvbmQgc29mdHdhcmUgYXJndW1lbnQgZm9yIFBPVyBpcyB0aGUgdGhpcmQgaGFyZHdhcmUgYXJndW1lbnQKKyAqICAgIChubyBpZGVhIHdoeSkKKyAqICAtIE1BRCB3aXRoIG9ubHkgdGVtcG9yYXJpZXMgYXMgaW5wdXQgc2VlbXMgdG8gdXNlIFZQSV9PVVRfU0VMRUNUX01BRF8yCisgKgorICogVGhlcmUgaXMgc29tZSBtYWdpYyBzdXJyb3VuZGluZyBMSVQ6CisgKiAgIFRoZSBzaW5nbGUgYXJndW1lbnQgaXMgcmVwbGljYXRlZCBhY3Jvc3MgYWxsIHRocmVlIGlucHV0cywgYnV0IHN3aXp6bGVkOgorICogICAgIEZpcnN0IGFyZ3VtZW50OiB4eXp5CisgKiAgICAgU2Vjb25kIGFyZ3VtZW50OiB4eXp4CisgKiAgICAgVGhpcmQgYXJndW1lbnQ6IHh5encKKyAqICAgV2hlbmV2ZXIgdGhlIHJlc3VsdCBpcyB1c2VkIGxhdGVyIGluIHRoZSBmcmFnbWVudCBwcm9ncmFtLCBmZ2xyeCBmb3JjZXMKKyAqICAgeCBhbmQgdyB0byBiZSAxLjAgaW4gdGhlIGlucHV0IHNlbGVjdGlvbjsgSSBkb24ndCBrbm93IHdoZXRoZXIgdGhpcyBpcworICogICBzdHJpY3RseSBuZWNlc3NhcnkKKyAqLworI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfRE9UICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01VTCAgICAgICAgICAgICAgICAgICAgICgyIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9BREQgICAgICAgICAgICAgICAgICAgICAoMyA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFEICAgICAgICAgICAgICAgICAgICAgKDQgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0RTVCAgICAgICAgICAgICAgICAgICAgICg1IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9GUkMgICAgICAgICAgICAgICAgICAgICAoNiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFYICAgICAgICAgICAgICAgICAgICAgKDcgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01JTiAgICAgICAgICAgICAgICAgICAgICg4IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9TR0UgICAgICAgICAgICAgICAgICAgICAoOSA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfU0xUICAgICAgICAgICAgICAgICAgICAgKDEwIDw8IDApCisJLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHZlY3RvcihzY2FsYXIsIHZlY3RvcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyICAgICAgICAgICAgICAgICAgICgxMiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfQVJMICAgICAgICAgICAgICAgICAgICAgKDEzIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9FWFAgICAgICAgICAgICAgICAgICAgICAoNjUgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0xPRyAgICAgICAgICAgICAgICAgICAgICg2NiA8PCAwKQorCS8qIFVzZWQgaW4gZm9nIGNvbXB1dGF0aW9ucywgc2NhbGFyKHNjYWxhcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzY3ICAgICAgICAgICAgICAgICAgICg2NyA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTElUICAgICAgICAgICAgICAgICAgICAgKDY4IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9QT1cgICAgICAgICAgICAgICAgICAgICAoNjkgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1JDUCAgICAgICAgICAgICAgICAgICAgICg3MCA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfUlNRICAgICAgICAgICAgICAgICAgICAgKDcyIDw8IDApCisJLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHNjYWxhcihzY2FsYXIpICovCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTks3MyAgICAgICAgICAgICAgICAgICAoNzMgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0VYMiAgICAgICAgICAgICAgICAgICAgICg3NSA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTEcyICAgICAgICAgICAgICAgICAgICAgKDc2IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9NQURfMiAgICAgICAgICAgICAgICAgICAoMTI4IDw8IDApCisJLyogYWxsIHRlbXBzLCB2ZWN0b3Ioc2NhbGFyLCB2ZWN0b3IsIHZlY3RvcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyOSAgICAgICAgICAgICAgICAgICgxMjkgPDwgMCkKKworI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX1RFTVBPUkFSWSAgICAgICAgKDAgPDwgOCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19DTEFTU19BRERSICAgICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIFIzMDBfVlBJX09VVF9SRUdfQ0xBU1NfUkVTVUxUICAgICAgICAgICAoMiA8PCA4KQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgKDMxIDw8IDgpCisKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgIDEzCisJLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLworI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgKDMxIDw8IDEzKQorCisjZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9YICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1dSSVRFX1kgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfV1JJVEVfWiAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9XICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKKworI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfVEVNUE9SQVJZICAgICAgICAgKDAgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX0FUVFJJQlVURSAgICAgICAgICgxIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19DTEFTU19QQVJBTUVURVIgICAgICAgICAoMiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfTk9ORSAgICAgICAgICAgICAgKDkgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQorCisjZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgICA1CisJLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLworI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgKDI1NSA8PCA1KQorCisvKiBUaGUgUjMwMCBjYW4gc2VsZWN0IGNvbXBvbmVudHMgZnJvbSB0aGUgaW5wdXQgcmVnaXN0ZXIgYXJiaXRyYXJpbHkuCisgKiBVc2UgdGhlIGZvbGxvd2luZyBjb25zdGFudHMsIHNoaWZ0ZWQgYnkgdGhlIGNvbXBvbmVudCBzaGlmdCB5b3UKKyAqIHdhbnQgdG8gc2VsZWN0CisgKi8KKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1ggICAgMAorI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWSAgICAxCisjZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9aICAgIDIKKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1cgICAgMworI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWkVSTyA0CisjZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9PTkUgIDUKKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX01BU0sgNworCisjZGVmaW5lIFIzMDBfVlBJX0lOX1hfU0hJRlQgICAgICAgICAgICAgICAgICAgICAxMworI2RlZmluZSBSMzAwX1ZQSV9JTl9ZX1NISUZUICAgICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgUjMwMF9WUElfSU5fWl9TSElGVCAgICAgICAgICAgICAgICAgICAgIDE5CisjZGVmaW5lIFIzMDBfVlBJX0lOX1dfU0hJRlQgICAgICAgICAgICAgICAgICAgICAyMgorCisjZGVmaW5lIFIzMDBfVlBJX0lOX05FR19YICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNSkKKyNkZWZpbmUgUjMwMF9WUElfSU5fTkVHX1kgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI2KQorI2RlZmluZSBSMzAwX1ZQSV9JTl9ORUdfWiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCisjZGVmaW5lIFIzMDBfVlBJX0lOX05FR19XICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKKy8qIEVORDogVmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb24gc2V0ICovCisKKy8qIEJFR0lOOiBQYWNrZXQgMyBjb21tYW5kcyAqLworCisvKiBBIHByaW1pdGl2ZSBlbWlzc2lvbiBkd29yZC4gKi8KKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTk9ORSAgICAgICAgICAgICAgICAgICAgICgwIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1BPSU5UICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FICAgICAgICAgICAgICAgICAgICAgKDIgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTElORV9TVFJJUCAgICAgICAgICAgICAgICgzIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9MSVNUICAgICAgICAgICAgICAgICAoNCA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9UUklfRkFOICAgICAgICAgICAgICAgICAgKDUgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfVFJJX1NUUklQICAgICAgICAgICAgICAgICg2IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9UWVBFMiAgICAgICAgICAgICAgICAoNyA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9SRUNUX0xJU1QgICAgICAgICAgICAgICAgKDggPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUICAgICAgICAgICg5IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUICAgICAgICAgICAoMTAgPDwgMCkKKwkvKiBHVUVTUyAoYmFzZWQgb24gcjIwMCkgKi8KKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUE9JTlRfU1BSSVRFUyAgICAgICAgICAgICgxMSA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FX0xPT1AgICAgICAgICAgICAgICAgKDEyIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTMgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUVVBRF9TVFJJUCAgICAgICAgICAgICAgICgxNCA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9QT0xZR09OICAgICAgICAgICAgICAgICAgKDE1IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAweEYKKyNkZWZpbmUgUjMwMF9QUklNX1dBTEtfSU5EICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFIzMDBfUFJJTV9XQUxLX0xJU1QgICAgICAgICAgICAgICAgICAgICAoMiA8PCA0KQorI2RlZmluZSBSMzAwX1BSSU1fV0FMS19SSU5HICAgICAgICAgICAgICAgICAgICAgKDMgPDwgNCkKKyNkZWZpbmUgUjMwMF9QUklNX1dBTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICgzIDw8IDQpCisJLyogR1VFU1MgKGJhc2VkIG9uIHIyMDApICovCisjZGVmaW5lIFIzMDBfUFJJTV9DT0xPUl9PUkRFUl9CR1JBICAgICAgICAgICAgICAoMCA8PCA2KQorI2RlZmluZSBSMzAwX1BSSU1fQ09MT1JfT1JERVJfUkdCQSAgICAgICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgUjMwMF9QUklNX05VTV9WRVJUSUNFU19TSElGVCAgICAgICAgICAgIDE2CisjZGVmaW5lIFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfTUFTSyAgICAgICAgICAgICAweGZmZmYKKworLyogRHJhdyBhIHByaW1pdGl2ZSBmcm9tIHZlcnRleCBkYXRhIGluIGFycmF5cyBsb2FkZWQgdmlhIDNEX0xPQURfVkJQTlRSLgorICogVHdvIHBhcmFtZXRlciBkd29yZHM6CisgKiAwLiBUaGUgZmlyc3QgcGFyYW1ldGVyIGFwcGVhcnMgdG8gYmUgYWx3YXlzIDAKKyAqIDEuIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgc3RhbmRhcmQgcHJpbWl0aXZlIGVtaXNzaW9uIGR3b3JkLgorICovCisjZGVmaW5lIFIzMDBfUEFDS0VUM18zRF9EUkFXX1ZCVUYgICAgICAgICAgIDB4MDAwMDI4MDAKKworLyogU3BlY2lmeSB0aGUgZnVsbCBzZXQgb2YgdmVydGV4IGFycmF5cyBhcyAoYWRkcmVzcywgc3RyaWRlKS4KKyAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB2ZXJ0ZXggYXJyYXlzIHNwZWNpZmllZC4KKyAqIFRoZSByZXN0IG9mIHRoZSBjb21tYW5kIGlzIGEgdmFyaWFibGUgbGVuZ3RoIGxpc3Qgb2YgYmxvY2tzLCB3aGVyZQorICogZWFjaCBibG9jayBpcyB0aHJlZSBkd29yZHMgbG9uZyBhbmQgc3BlY2lmaWVzIHR3byBhcnJheXMuCisgKiBUaGUgZmlyc3QgZHdvcmQgb2YgYSBibG9jayBpcyBzcGxpdCBpbnRvIHR3byB3b3JkcywgdGhlIGxvd2VyIHNpZ25pZmljYW50CisgKiB3b3JkIHJlZmVycyB0byB0aGUgZmlyc3QgYXJyYXksIHRoZSBtb3JlIHNpZ25pZmljYW50IHdvcmQgdG8gdGhlIHNlY29uZAorICogYXJyYXkgaW4gdGhlIGJsb2NrLgorICogVGhlIGxvdyBieXRlIG9mIGVhY2ggd29yZCBjb250YWlucyB0aGUgc2l6ZSBvZiBhbiBhcnJheSBlbnRyeSBpbiBkd29yZHMsCisgKiB0aGUgaGlnaCBieXRlIGNvbnRhaW5zIHRoZSBzdHJpZGUgb2YgdGhlIGFycmF5LgorICogVGhlIHNlY29uZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBmaXJzdCBhcnJheSwKKyAqIHRoZSB0aGlyZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzZWNvbmQgYXJyYXkuCisgKiBOb3RlIHRoYXQgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBhcnJheXMgaXMgb2RkLCB0aGUgdGhpcmQgZHdvcmQgb2YKKyAqIHRoZSBsYXN0IGJsb2NrIGlzIG9taXR0ZWQuCisgKi8KKyNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0xPQURfVkJQTlRSICAgICAgICAgMHgwMDAwMkYwMAorCisjZGVmaW5lIFIzMDBfUEFDS0VUM19JTkRYX0JVRkZFUiAgICAgICAgICAgIDB4MDAwMDMzMDAKKyMgICAgZGVmaW5lIFIzMDBfRUJfVU5LMV9TSElGVCAgICAgICAgICAgICAgICAgICAgICAyNAorIyAgICBkZWZpbmUgUjMwMF9FQl9VTksxICAgICAgICAgICAgICAgICAgICAoMHg4MDw8MjQpCisjICAgIGRlZmluZSBSMzAwX0VCX1VOSzIgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTAKKyNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0RSQVdfVkJVRl8yICAgICAgICAgMHgwMDAwMzQwMAorI2RlZmluZSBSMzAwX1BBQ0tFVDNfM0RfRFJBV19JTkRYXzIgICAgICAgICAweDAwMDAzNjAwCisKKy8qIEVORDogUGFja2V0IDMgY29tbWFuZHMgKi8KKworCisvKiBDb2xvciBmb3JtYXRzIGZvciAyZCBwYWNrZXRzCisgKi8KKyNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQ0k4CTIKKyNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQVJHQjE1NTUJMworI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9SR0I1NjUJNAorI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2CisjZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjMzMgk3CisjZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjgJOQorI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQorCisvKgorICogQ1AgdHlwZS0zIHBhY2tldHMKKyAqLworI2RlZmluZSBSMzAwX0NQX0NNRF9CSVRCTFRfTVVMVEkJMHhDMDAwOUIwMAorCisjZGVmaW5lIFI1MDBfVkFQX0lOREVYX09GRlNFVAkJMHgyMDhjCisKKyNkZWZpbmUgUjUwMF9HQV9VU19WRUNUT1JfSU5ERVggICAgICAgICAweDQyNTAKKyNkZWZpbmUgUjUwMF9HQV9VU19WRUNUT1JfREFUQSAgICAgICAgICAweDQyNTQKKworI2RlZmluZSBSNTAwX1JTX0lQXzAgICAgICAgICAgICAgICAgICAgIDB4NDA3NAorI2RlZmluZSBSNTAwX1JTX0lOU1RfMCAgICAgICAgICAgICAgICAgIDB4NDMyMAorCisjZGVmaW5lIFI1MDBfVVNfQ09ORklHICAgICAgICAgICAgICAgICAgMHg0NjAwCisKKyNkZWZpbmUgUjUwMF9VU19GQ19DVFJMCQkJMHg0NjI0CisjZGVmaW5lIFI1MDBfVVNfQ09ERV9BRERSCQkweDQ2MzAKKworI2RlZmluZSBSNTAwX1JCM0RfQ09MT1JfQ0xFQVJfVkFMVUVfQVIgIDB4NDZjMAorI2RlZmluZSBSNTAwX1JCM0RfQ09OU1RBTlRfQ09MT1JfQVIgICAgIDB4NGVmOAorCisjZW5kaWYgLyogX1IzMDBfUkVHX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZGU4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcC5jCkBAIC0wLDAgKzEsMTc3MyBAQAorLyogcmFkZW9uX2NwLmMgLS0gQ1Agc3VwcG9ydCBmb3IgUmFkZW9uIC0qLSBsaW51eC1jIC0qLSAqLworLyoKKyAqIENvcHlyaWdodCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCisgKiBDb3B5cmlnaHQgMjAwNyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+CisgKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorI2luY2x1ZGUgInIzMDBfcmVnLmgiCisKKyNpbmNsdWRlICJyYWRlb25fbWljcm9jb2RlLmgiCisKKyNkZWZpbmUgUkFERU9OX0ZJRk9fREVCVUcJMAorCitzdGF0aWMgaW50IHJhZGVvbl9kb19jbGVhbnVwX2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKKworc3RhdGljIHUzMiBSNTAwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwl1MzIgcmV0OworCVJBREVPTl9XUklURShSNTIwX01DX0lORF9JTkRFWCwgMHg3ZjAwMDAgfCAoYWRkciAmIDB4ZmYpKTsKKwlyZXQgPSBSQURFT05fUkVBRChSNTIwX01DX0lORF9EQVRBKTsKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB1MzIgUlM0ODBfUkVBRF9NQ0lORChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBhZGRyKQoreworCXUzMiByZXQ7CisJUkFERU9OX1dSSVRFKFJTNDgwX05CX01DX0lOREVYLCBhZGRyICYgMHhmZik7CisJcmV0ID0gUkFERU9OX1JFQUQoUlM0ODBfTkJfTUNfREFUQSk7CisJUkFERU9OX1dSSVRFKFJTNDgwX05CX01DX0lOREVYLCAweGZmKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIFJTNjkwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwl1MzIgcmV0OworCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgKGFkZHIgJiBSUzY5MF9NQ19JTkRFWF9NQVNLKSk7CisJcmV0ID0gUkFERU9OX1JFQUQoUlM2OTBfTUNfREFUQSk7CisJUkFERU9OX1dSSVRFKFJTNjkwX01DX0lOREVYLCBSUzY5MF9NQ19JTkRFWF9NQVNLKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIElHUF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCisJCXJldHVybiBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBhZGRyKTsKKwllbHNlCisJCXJldHVybiBSUzQ4MF9SRUFEX01DSU5EKGRldl9wcml2LCBhZGRyKTsKK30KKwordTMyIHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKK3sKKworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQorCQlyZXR1cm4gUjUwMF9SRUFEX01DSU5EKGRldl9wcml2LCBSVjUxNV9NQ19GQl9MT0NBVElPTik7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJcmV0dXJuIFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0ZCX0xPQ0FUSU9OKTsKKwllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCisJCXJldHVybiBSNTAwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFI1MjBfTUNfRkJfTE9DQVRJT04pOworCWVsc2UKKwkJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9NQ19GQl9MT0NBVElPTik7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBmYl9sb2MpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQorCQlSNTAwX1dSSVRFX01DSU5EKFI1MjBfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZQorCQlSQURFT05fV1JJVEUoUkFERU9OX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgdTMyIGFncF9sb2MpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKKwllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQorCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOworCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKKwkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7CisJZWxzZQorCQlSQURFT05fV1JJVEUoUkFERU9OX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9hZ3BfYmFzZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHU2NCBhZ3BfYmFzZSkKK3sKKwl1MzIgYWdwX2Jhc2VfaGkgPSB1cHBlcl8zMl9iaXRzKGFncF9iYXNlKTsKKwl1MzIgYWdwX2Jhc2VfbG8gPSBhZ3BfYmFzZSAmIDB4ZmZmZmZmZmY7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkgeworCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkgeworCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOworCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfQkFTRV8yLCBhZ3BfYmFzZV9oaSk7CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpIHsKKwkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfQkFTRV8yLCBhZ3BfYmFzZV9oaSk7CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNDgwKSB7CisJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKKwkJUkFERU9OX1dSSVRFKFJTNDgwX0FHUF9CQVNFXzIsIDApOworCX0gZWxzZSB7CisJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKKwkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjIwMCkKKwkJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0KK30KKworc3RhdGljIGludCBSQURFT05fUkVBRF9QTEwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBhZGRyKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlSQURFT05fV1JJVEU4KFJBREVPTl9DTE9DS19DTlRMX0lOREVYLCBhZGRyICYgMHgxZik7CisJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9DTE9DS19DTlRMX0RBVEEpOworfQorCitzdGF0aWMgdTMyIFJBREVPTl9SRUFEX1BDSUUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwlSQURFT05fV1JJVEU4KFJBREVPTl9QQ0lFX0lOREVYLCBhZGRyICYgMHhmZik7CisJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9QQ0lFX0RBVEEpOworfQorCisjaWYgUkFERU9OX0ZJRk9fREVCVUcKK3N0YXRpYyB2b2lkIHJhZGVvbl9zdGF0dXMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlwcmludGsoIiVzOlxuIiwgX19mdW5jX18pOworCXByaW50aygiUkJCTV9TVEFUVVMgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKSk7CisJcHJpbnRrKCJDUF9SQl9SVFBSID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKSk7CisJcHJpbnRrKCJDUF9SQl9XVFBSID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9XUFRSKSk7CisJcHJpbnRrKCJBSUNfQ05UTCA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX0NOVEwpKTsKKwlwcmludGsoIkFJQ19TVEFUID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfU1RBVCkpOworCXByaW50aygiQUlDX1BUX0JBU0UgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19QVF9CQVNFKSk7CisJcHJpbnRrKCJUTEJfQUREUiA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1RMQl9BRERSKSk7CisJcHJpbnRrKCJUTEJfREFUQSA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1RMQl9EQVRBKSk7Cit9CisjZW5kaWYKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogRW5naW5lLCBGSUZPIGNvbnRyb2wKKyAqLworCitzdGF0aWMgaW50IHJhZGVvbl9kb19waXhjYWNoZV9mbHVzaChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCXUzMiB0bXA7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgeworCQl0bXAgPSBSQURFT05fUkVBRChSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFUKTsKKwkJdG1wIHw9IFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTDsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIHRtcCk7CisKKwkJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQkJaWYgKCEoUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCkKKwkJCSAgICAgICYgUkFERU9OX1JCM0RfRENfQlVTWSkpIHsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCURSTV9VREVMQVkoMSk7CisJCX0KKwl9IGVsc2UgeworCQkvKiAzRCAqLworCQl0bXAgPSBSQURFT05fUkVBRChSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCk7CisJCXRtcCB8PSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEw7CisJCVJBREVPTl9XUklURShSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgdG1wKTsKKworCQkvKiAyRCAqLworCQl0bXAgPSBSQURFT05fUkVBRChSMzAwX0RTVENBQ0hFX0NUTFNUQVQpOworCQl0bXAgfD0gUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMOworCQlSQURFT05fV1JJVEUoUjMwMF9EU1RDQUNIRV9DVExTVEFULCB0bXApOworCisJCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJCWlmICghKFJBREVPTl9SRUFEKFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVCkKKwkJCSAgJiBSQURFT05fUkIzRF9EQ19CVVNZKSkgeworCQkJCXJldHVybiAwOworCQkJfQorCQkJRFJNX1VERUxBWSgxKTsKKwkJfQorCX0KKworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKwlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2RvX3dhaXRfZm9yX2ZpZm8oZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IGVudHJpZXMpCit7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCWludCBzbG90cyA9IChSQURFT05fUkVBRChSQURFT05fUkJCTV9TVEFUVVMpCisJCQkgICAgICYgUkFERU9OX1JCQk1fRklGT0NOVF9NQVNLKTsKKwkJaWYgKHNsb3RzID49IGVudHJpZXMpCisJCQlyZXR1cm4gMDsKKwkJRFJNX1VERUxBWSgxKTsKKwl9CisKKyNpZiBSQURFT05fRklGT19ERUJVRworCURSTV9FUlJPUigiZmFpbGVkIVxuIik7CisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisjZW5kaWYKKwlyZXR1cm4gLUVCVVNZOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJaW50IGksIHJldDsKKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCXJldCA9IHJhZGVvbl9kb193YWl0X2Zvcl9maWZvKGRldl9wcml2LCA2NCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJaWYgKCEoUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKQorCQkgICAgICAmIFJBREVPTl9SQkJNX0FDVElWRSkpIHsKKwkJCXJhZGVvbl9kb19waXhjYWNoZV9mbHVzaChkZXZfcHJpdik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlEUk1fVURFTEFZKDEpOworCX0KKworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKwlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9pbml0X3BpcGVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKK3sKKwl1aW50MzJfdCBnYl90aWxlX2NvbmZpZywgZ2JfcGlwZV9zZWwgPSAwOworCisJLyogUlM0eHgvUlM2eHgvUjR4eC9SNXh4ICovCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjQyMCkgeworCQlnYl9waXBlX3NlbCA9IFJBREVPTl9SRUFEKFI0MDBfR0JfUElQRV9TRUxFQ1QpOworCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gKChnYl9waXBlX3NlbCA+PiAxMikgJiAweDMpICsgMTsKKwl9IGVsc2UgeworCQkvKiBSM3h4ICovCisJCWlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzAwKSB8fAorCQkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjM1MCkpIHsKKwkJCWRldl9wcml2LT5udW1fZ2JfcGlwZXMgPSAyOworCQl9IGVsc2UgeworCQkJLyogUjNWeHggKi8KKwkJCWRldl9wcml2LT5udW1fZ2JfcGlwZXMgPSAxOworCQl9CisJfQorCURSTV9JTkZPKCJOdW0gcGlwZXM6ICVkXG4iLCBkZXZfcHJpdi0+bnVtX2diX3BpcGVzKTsKKworCWdiX3RpbGVfY29uZmlnID0gKFIzMDBfRU5BQkxFX1RJTElORyB8IFIzMDBfVElMRV9TSVpFXzE2IC8qfCBSMzAwX1NVQlBJWEVMXzFfMTYqLyk7CisKKwlzd2l0Y2ggKGRldl9wcml2LT5udW1fZ2JfcGlwZXMpIHsKKwljYXNlIDI6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SMzAwOyBicmVhazsKKwljYXNlIDM6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SNDIwXzNQOyBicmVhazsKKwljYXNlIDQ6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SNDIwOyBicmVhazsKKwlkZWZhdWx0OgorCWNhc2UgMTogZ2JfdGlsZV9jb25maWcgfD0gUjMwMF9QSVBFX0NPVU5UX1JWMzUwOyBicmVhazsKKwl9CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgeworCQlSQURFT05fV1JJVEVfUExMKFI1MDBfRFlOX1NDTEtfUFdNRU1fUElQRSwgKDEgfCAoKGdiX3BpcGVfc2VsID4+IDgpICYgMHhmKSA8PCA0KSk7CisJCVJBREVPTl9XUklURShSNTAwX1NVX1JFR19ERVNULCAoKDEgPDwgZGV2X3ByaXYtPm51bV9nYl9waXBlcykgLSAxKSk7CisJfQorCVJBREVPTl9XUklURShSMzAwX0dCX1RJTEVfQ09ORklHLCBnYl90aWxlX2NvbmZpZyk7CisJcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworCVJBREVPTl9XUklURShSMzAwX0RTVF9QSVBFX0NPTkZJRywgUkFERU9OX1JFQUQoUjMwMF9EU1RfUElQRV9DT05GSUcpIHwgUjMwMF9QSVBFX0FVVE9fQ09ORklHKTsKKwlSQURFT05fV1JJVEUoUjMwMF9SQjJEX0RTVENBQ0hFX01PREUsIChSQURFT05fUkVBRChSMzAwX1JCMkRfRFNUQ0FDSEVfTU9ERSkgfAorCQkJCQkgICAgICAgUjMwMF9EQ19BVVRPRkxVU0hfRU5BQkxFIHwKKwkJCQkJICAgICAgIFIzMDBfRENfRENfRElTQUJMRV9JR05PUkVfUEUpKTsKKworCit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENQIGNvbnRyb2wsIGluaXRpYWxpemF0aW9uCisgKi8KKworLyogTG9hZCB0aGUgbWljcm9jb2RlIGZvciB0aGUgQ1AgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9sb2FkX21pY3JvY29kZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCWludCBpOworCURSTV9ERUJVRygiXG4iKTsKKworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKworCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0FERFIsIDApOworCWlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMTAwKSB8fAorCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjEwMCkgfHwKKwkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYyMDApIHx8CisJICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTMTAwKSB8fAorCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzIwMCkpIHsKKwkJRFJNX0lORk8oIkxvYWRpbmcgUjEwMCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUjEwMF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSMTAwX2NwX21pY3JvY29kZVtpXVswXSk7CisJCX0KKwl9IGVsc2UgaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1IyMDApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMjUwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjI4MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlMzMDApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFIyMDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFIyMDBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjIwMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzAwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzUwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjM1MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYzODApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNDgwKSkgeworCQlEUk1fSU5GTygiTG9hZGluZyBSMzAwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSMzAwX2NwX21pY3JvY29kZVtpXVsxXSk7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKKwkJCQkgICAgIFIzMDBfY3BfbWljcm9jb2RlW2ldWzBdKTsKKwkJfQorCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjQyMCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY0MTApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFI0MDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFI0MjBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjQyMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFJTNjkwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSUzY5MF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSUzY5MF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjUyMCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MzApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I1ODApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTYwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjU3MCkpIHsKKwkJRFJNX0lORk8oIkxvYWRpbmcgUjUwMCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUjUyMF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSNTIwX2NwX21pY3JvY29kZVtpXVswXSk7CisJCX0KKwl9Cit9CisKKy8qIEZsdXNoIGFueSBwZW5kaW5nIGNvbW1hbmRzIHRvIHRoZSBDUC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBqdXN0CisgKiBwcmlvciB0byBhIHdhaXQgZm9yIGlkbGUsIGFzIGl0IGluZm9ybXMgdGhlIGVuZ2luZSB0aGF0IHRoZSBjb21tYW5kCisgKiBzdHJlYW0gaXMgZW5kaW5nLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3BfZmx1c2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlEUk1fREVCVUcoIlxuIik7CisjaWYgMAorCXUzMiB0bXA7CisKKwl0bXAgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfV1BUUikgfCAoMSA8PCAzMSk7CisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCB0bXApOworI2VuZGlmCit9CisKKy8qIFdhaXQgZm9yIHRoZSBDUCB0byBnbyBpZGxlLgorICovCitpbnQgcmFkZW9uX2RvX2NwX2lkbGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlCRUdJTl9SSU5HKDYpOworCisJUkFERU9OX1BVUkdFX0NBQ0hFKCk7CisJUkFERU9OX1BVUkdFX1pDQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworfQorCisvKiBTdGFydCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9zdGFydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygiXG4iKTsKKworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKworCVJBREVPTl9XUklURShSQURFT05fQ1BfQ1NRX0NOVEwsIGRldl9wcml2LT5jcF9tb2RlKTsKKworCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMTsKKworCUJFR0lOX1JJTkcoNik7CisKKwlSQURFT05fUFVSR0VfQ0FDSEUoKTsKKwlSQURFT05fUFVSR0VfWkNBQ0hFKCk7CisJUkFERU9OX1dBSVRfVU5USUxfSURMRSgpOworCisJQURWQU5DRV9SSU5HKCk7CisJQ09NTUlUX1JJTkcoKTsKK30KKworLyogUmVzZXQgdGhlIENvbW1hbmQgUHJvY2Vzc29yLiAgVGhpcyB3aWxsIG5vdCBmbHVzaCBhbnkgcGVuZGluZworICogY29tbWFuZHMsIHNvIHlvdSBtdXN0IHdhaXQgZm9yIHRoZSBDUCBjb21tYW5kIHN0cmVhbSB0byBjb21wbGV0ZQorICogYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3BfcmVzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwl1MzIgY3VyX3JlYWRfcHRyOworCURSTV9ERUJVRygiXG4iKTsKKworCWN1cl9yZWFkX3B0ciA9IFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKTsKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1dQVFIsIGN1cl9yZWFkX3B0cik7CisJU0VUX1JJTkdfSEVBRChkZXZfcHJpdiwgY3VyX3JlYWRfcHRyKTsKKwlkZXZfcHJpdi0+cmluZy50YWlsID0gY3VyX3JlYWRfcHRyOworfQorCisvKiBTdG9wIHRoZSBDb21tYW5kIFByb2Nlc3Nvci4gIFRoaXMgd2lsbCBub3QgZmx1c2ggYW55IHBlbmRpbmcKKyAqIGNvbW1hbmRzLCBzbyB5b3UgbXVzdCBmbHVzaCB0aGUgY29tbWFuZCBzdHJlYW0gYW5kIHdhaXQgZm9yIHRoZSBDUAorICogdG8gZ28gaWRsZSBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUuCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9zdG9wKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJRFJNX0RFQlVHKCJcbiIpOworCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9DU1FfQ05UTCwgUkFERU9OX0NTUV9QUklESVNfSU5ERElTKTsKKworCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKK30KKworLyogUmVzZXQgdGhlIGVuZ2luZS4gIFRoaXMgd2lsbCBzdG9wIHRoZSBDUCBpZiBpdCBpcyBydW5uaW5nLgorICovCitzdGF0aWMgaW50IHJhZGVvbl9kb19lbmdpbmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgY2xvY2tfY250bF9pbmRleCA9IDAsIG1jbGtfY250bCA9IDAsIHJiYm1fc29mdF9yZXNldDsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOworCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlY0MTApIHsKKwkJLyogbWF5IG5lZWQgc29tZXRoaW5nIHNpbWlsYXIgZm9yIG5ld2VyIGNoaXBzICovCisJCWNsb2NrX2NudGxfaW5kZXggPSBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCk7CisJCW1jbGtfY250bCA9IFJBREVPTl9SRUFEX1BMTChkZXYsIFJBREVPTl9NQ0xLX0NOVEwpOworCisJCVJBREVPTl9XUklURV9QTEwoUkFERU9OX01DTEtfQ05UTCwgKG1jbGtfY250bCB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fTUNMS0EgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtCIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9ZQ0xLQSB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0IgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9BSUMpKTsKKwl9CisKKwlyYmJtX3NvZnRfcmVzZXQgPSBSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKKworCVJBREVPTl9XUklURShSQURFT05fUkJCTV9TT0ZUX1JFU0VULCAocmJibV9zb2Z0X3Jlc2V0IHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9ISSB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1NFIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkUgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9QUCB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX0UyIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkIpKTsKKwlSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKKwlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgKHJiYm1fc29mdF9yZXNldCAmCisJCQkJCSAgICAgIH4oUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfSEkgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfU0UgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkUgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUFAgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfRTIgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkIpKSk7CisJUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjQxMCkgeworCQlSQURFT05fV1JJVEVfUExMKFJBREVPTl9NQ0xLX0NOVEwsIG1jbGtfY250bCk7CisJCVJBREVPTl9XUklURShSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwgY2xvY2tfY250bF9pbmRleCk7CisJCVJBREVPTl9XUklURShSQURFT05fUkJCTV9TT0ZUX1JFU0VULCByYmJtX3NvZnRfcmVzZXQpOworCX0KKworCS8qIHNldHVwIHRoZSByYXN0ZXIgcGlwZXMgKi8KKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SMzAwKQorCSAgICByYWRlb25faW5pdF9waXBlcyhkZXZfcHJpdik7CisKKwkvKiBSZXNldCB0aGUgQ1AgcmluZyAqLworCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7CisKKwkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCisJZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOworCisJLyogUmVzZXQgYW55IHBlbmRpbmcgdmVydGV4LCBpbmRpcmVjdCBidWZmZXJzICovCisJcmFkZW9uX2ZyZWVsaXN0X3Jlc2V0KGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgIGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJdTMyIHJpbmdfc3RhcnQsIGN1cl9yZWFkX3B0cjsKKwl1MzIgdG1wOworCisJLyogSW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGNvbnRyb2xsZXIuIFdpdGggbmV3IG1lbW9yeSBtYXAsIHRoZSBmYiBsb2NhdGlvbgorCSAqIGlzIG5vdCBjaGFuZ2VkLCBpdCBzaG91bGQgaGF2ZSBiZWVuIHByb3Blcmx5IGluaXRpYWxpemVkIGFscmVhZHkuIFBhcnQKKwkgKiBvZiB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBjb2RlIGJlbG93IGlzIGJvZ3VzLCBhc3N1bWluZyB0aGUgR0FSVCBpcworCSAqIGFsd2F5cyBhcHBlbmRlZCB0byB0aGUgZmIgd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBjYXNlCisJICovCisJaWYgKCFkZXZfcHJpdi0+bmV3X21lbW1hcCkKKwkJcmFkZW9uX3dyaXRlX2ZiX2xvY2F0aW9uKGRldl9wcml2LAorCQkJICAgICAoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSkgJiAweGZmZmYwMDAwKQorCQkJICAgICB8IChkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPj4gMTYpKTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCXJhZGVvbl93cml0ZV9hZ3BfYmFzZShkZXZfcHJpdiwgZGV2LT5hZ3AtPmJhc2UpOworCisJCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsCisJCQkgICAgICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArCisJCQkJZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmYwMDAwKSB8CisJCQkgICAgICAoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPj4gMTYpKSk7CisKKwkJcmluZ19zdGFydCA9IChkZXZfcHJpdi0+Y3BfcmluZy0+b2Zmc2V0CisJCQkgICAgICAtIGRldi0+YWdwLT5iYXNlCisJCQkgICAgICArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwl9IGVsc2UKKyNlbmRpZgorCQlyaW5nX3N0YXJ0ID0gKGRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQKKwkJCSAgICAgIC0gKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbAorCQkJICAgICAgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0JBU0UsIHJpbmdfc3RhcnQpOworCisJLyogU2V0IHRoZSB3cml0ZSBwb2ludGVyIGRlbGF5ICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSX0RFTEFZLCAwKTsKKworCS8qIEluaXRpYWxpemUgdGhlIHJpbmcgYnVmZmVyJ3MgcmVhZCBhbmQgd3JpdGUgcG9pbnRlcnMgKi8KKwljdXJfcmVhZF9wdHIgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUik7CisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCBjdXJfcmVhZF9wdHIpOworCVNFVF9SSU5HX0hFQUQoZGV2X3ByaXYsIGN1cl9yZWFkX3B0cik7CisJZGV2X3ByaXYtPnJpbmcudGFpbCA9IGN1cl9yZWFkX3B0cjsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfUlBUUl9BRERSLAorCQkJICAgICBkZXZfcHJpdi0+cmluZ19ycHRyLT5vZmZzZXQKKwkJCSAgICAgLSBkZXYtPmFncC0+YmFzZSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJc3RydWN0IGRybV9zZ19tZW0gKmVudHJ5ID0gZGV2LT5zZzsKKwkJdW5zaWduZWQgbG9uZyB0bXBfb2ZzLCBwYWdlX29mczsKKworCQl0bXBfb2ZzID0gZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0IC0KKwkJCQkodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsOworCQlwYWdlX29mcyA9IHRtcF9vZnMgPj4gUEFHRV9TSElGVDsKKworCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1JQVFJfQUREUiwgZW50cnktPmJ1c2FkZHJbcGFnZV9vZnNdKTsKKwkJRFJNX0RFQlVHKCJyaW5nIHJwdHI6IG9mZnNldD0weCUwOGx4IGhhbmRsZT0weCUwOGx4XG4iLAorCQkJICAodW5zaWduZWQgbG9uZyllbnRyeS0+YnVzYWRkcltwYWdlX29mc10sCisJCQkgIGVudHJ5LT5oYW5kbGUgKyB0bXBfb2ZzKTsKKwl9CisKKwkvKiBTZXQgcmluZyBidWZmZXIgc2l6ZSAqLworI2lmZGVmIF9fQklHX0VORElBTgorCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwKKwkJICAgICBSQURFT05fQlVGX1NXQVBfMzJCSVQgfAorCQkgICAgIChkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPDwgMTgpIHwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGVfbDJxdyA8PCA4KSB8CisJCSAgICAgZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3KTsKKyNlbHNlCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9DTlRMLAorCQkgICAgIChkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPDwgMTgpIHwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGVfbDJxdyA8PCA4KSB8CisJCSAgICAgZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3KTsKKyNlbmRpZgorCisJLyogU3RhcnQgd2l0aCBhc3N1bWluZyB0aGF0IHdyaXRlYmFjayBkb2Vzbid0IHdvcmsgKi8KKwlkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzID0gMDsKKworCS8qIEluaXRpYWxpemUgdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgcG9pbnRlci4gIFRoaXMgd2lsbCBjYXVzZQorCSAqIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHZhbHVlcyB0byBiZSB3cml0dGVuIG91dCB0byBtZW1vcnkKKwkgKiB3aGVuZXZlciB0aGV5IGFyZSB1cGRhdGVkLgorCSAqCisJICogV2Ugc2ltcGx5IHB1dCB0aGlzIGJlaGluZCB0aGUgcmluZyByZWFkIHBvaW50ZXIsIHRoaXMgd29ya3MKKwkgKiB3aXRoIFBDSSBHQVJUIGFzIHdlbGwgYXMgKHdoYXRldmVyIGtpbmQgb2YpIEFHUCBHQVJUCisJICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX0FERFIsIFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSX0FERFIpCisJCSAgICAgKyBSQURFT05fU0NSQVRDSF9SRUdfT0ZGU0VUKTsKKworCWRldl9wcml2LT5zY3JhdGNoID0gKChfX3ZvbGF0aWxlX18gdTMyICopCisJCQkgICAgIGRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSArCisJCQkgICAgIChSQURFT05fU0NSQVRDSF9SRUdfT0ZGU0VUIC8gc2l6ZW9mKHUzMikpKTsKKworCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9VTVNLLCAweDcpOworCisJLyogVHVybiBvbiBidXMgbWFzdGVyaW5nICovCisJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0JVU19DTlRMKSAmIH5SQURFT05fQlVTX01BU1RFUl9ESVM7CisJUkFERU9OX1dSSVRFKFJBREVPTl9CVVNfQ05UTCwgdG1wKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lID0gZGV2X3ByaXYtPnNjcmF0Y2hbMF0gPSAwOworCVJBREVPTl9XUklURShSQURFT05fTEFTVF9GUkFNRV9SRUcsIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gZGV2X3ByaXYtPnNjcmF0Y2hbMV0gPSAwOworCVJBREVPTl9XUklURShSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcsCisJCSAgICAgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2gpOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIgPSBkZXZfcHJpdi0+c2NyYXRjaFsyXSA9IDA7CisJUkFERU9OX1dSSVRFKFJBREVPTl9MQVNUX0NMRUFSX1JFRywgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIpOworCisJcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworCisJLyogU3luYyBldmVyeXRoaW5nIHVwICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9JU1lOQ19DTlRMLAorCQkgICAgIChSQURFT05fSVNZTkNfQU5ZMkRfSURMRTNEIHwKKwkJICAgICAgUkFERU9OX0lTWU5DX0FOWTNEX0lETEUyRCB8CisJCSAgICAgIFJBREVPTl9JU1lOQ19XQUlUX0lETEVHVUkgfAorCQkgICAgICBSQURFT05fSVNZTkNfQ1BTQ1JBVENIX0lETEVHVUkpKTsKKworfQorCitzdGF0aWMgdm9pZCByYWRlb25fdGVzdF93cml0ZWJhY2soZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwl1MzIgdG1wOworCisJLyogV3JpdGViYWNrIGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGV2ZXJ5d2hlcmUsIHRlc3QgaXQgaGVyZSBhbmQgcG9zc2libHkKKwkgKiBlbmFibGUgaXQgaWYgaXQgYXBwZWFycyB0byB3b3JrCisJICovCisJRFJNX1dSSVRFMzIoZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoMSksIDApOworCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9SRUcxLCAweGRlYWRiZWVmKTsKKworCWZvciAodG1wID0gMDsgdG1wIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgdG1wKyspIHsKKwkJaWYgKERSTV9SRUFEMzIoZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoMSkpID09CisJCSAgICAweGRlYWRiZWVmKQorCQkJYnJlYWs7CisJCURSTV9VREVMQVkoMSk7CisJfQorCisJaWYgKHRtcCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQpIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDE7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgdGVzdCBzdWNjZWVkZWQgaW4gJWQgdXNlY3NcbiIsIHRtcCk7CisJfSBlbHNlIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgdGVzdCBmYWlsZWRcbiIpOworCX0KKwlpZiAocmFkZW9uX25vX3diID09IDEpIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgZm9yY2VkIG9mZlxuIik7CisJfQorCisJaWYgKCFkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzKSB7CisJCS8qIERpc2FibGUgd3JpdGViYWNrIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGJ1cyBtYXN0ZXIgdHJhbnNmZXIgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9DTlRMLCBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfQ05UTCkgfAorCQkJICAgICBSQURFT05fUkJfTk9fVVBEQVRFKTsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX1VNU0ssIDApOworCX0KK30KKworLyogRW5hYmxlIG9yIGRpc2FibGUgSUdQIEdBUlQgb24gdGhlIGNoaXAgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9zZXRfaWdwZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgb24pCit7CisJdTMyIHRlbXA7CisKKwlpZiAob24pIHsKKwkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyBpZ3AgZ2FydCAlMDhYICUwOGxYICUwOFhcbiIsCisJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0LAorCQkJICAobG9uZylkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyLAorCQkJICBkZXZfcHJpdi0+Z2FydF9zaXplKTsKKworCQl0ZW1wID0gSUdQX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNDgwX01DX01JU0NfQ05UTCk7CisJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQorCQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX01DX01JU0NfQ05UTCwgKFJTNDgwX0dBUlRfSU5ERVhfUkVHX0VOIHwKKwkJCQkJCQkgICAgIFJTNjkwX0JMT0NLX0dGWF9EM19FTikpOworCQllbHNlCisJCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfTUNfTUlTQ19DTlRMLCBSUzQ4MF9HQVJUX0lOREVYX1JFR19FTik7CisKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIChSUzQ4MF9HQVJUX0VOIHwKKwkJCQkJCQkgICAgICAgUlM0ODBfVkFfU0laRV8zMk1CKSk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0ZFQVRVUkVfSUQpOworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9GRUFUVVJFX0lELCAoUlM0ODBfSEFOR19FTiB8CisJCQkJCQkJUlM0ODBfVExCX0VOQUJMRSB8CisJCQkJCQkJUlM0ODBfR1RXX0xBQ19FTiB8CisJCQkJCQkJUlM0ODBfMUxFVkVMX0dBUlQpKTsKKworCQl0ZW1wID0gZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciAmIDB4ZmZmZmYwMDA7CisJCXRlbXAgfD0gKHVwcGVyXzMyX2JpdHMoZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcikgJiAweGZmKSA8PCA0OworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9CQVNFLCB0ZW1wKTsKKworCQl0ZW1wID0gSUdQX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNDgwX0FHUF9NT0RFX0NOVEwpOworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfQUdQX01PREVfQ05UTCwgKCgxIDw8IFJTNDgwX1JFUV9UWVBFX1NOT09QX1NISUZUKSB8CisJCQkJCQkgICAgICBSUzQ4MF9SRVFfVFlQRV9TTk9PUF9ESVMpKTsKKworCQlyYWRlb25fd3JpdGVfYWdwX2Jhc2UoZGV2X3ByaXYsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKworCQlkZXZfcHJpdi0+Z2FydF9zaXplID0gMzIqMTAyNCoxMDI0OworCQl0ZW1wID0gKCgoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgLSAxICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJgorCQkJIDB4ZmZmZjAwMDApIHwgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSk7CisKKwkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgdGVtcCk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFKTsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIChSUzQ4MF9HQVJUX0VOIHwKKwkJCQkJCQkgICAgICAgUlM0ODBfVkFfU0laRV8zMk1CKSk7CisKKwkJZG8geworCQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMKTsKKwkJCWlmICgodGVtcCAmIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSkgPT0gMCkKKwkJCQlicmVhazsKKwkJCURSTV9VREVMQVkoMSk7CisJCX0gd2hpbGUgKDEpOworCisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMLAorCQkJCVJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSk7CisKKwkJZG8geworCQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMKTsKKwkJCWlmICgodGVtcCAmIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSkgPT0gMCkKKwkJCQlicmVhazsKKwkJCURSTV9VREVMQVkoMSk7CisJCX0gd2hpbGUgKDEpOworCisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMLCAwKTsKKwl9IGVsc2UgeworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfQUdQX0FERFJFU1NfU1BBQ0VfU0laRSwgMCk7CisJfQorfQorCitzdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWVnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKK3sKKwl1MzIgdG1wID0gUkFERU9OX1JFQURfUENJRShkZXZfcHJpdiwgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMKTsKKwlpZiAob24pIHsKKworCQlEUk1fREVCVUcoInByb2dyYW1taW5nIHBjaWUgJTA4WCAlMDhsWCAlMDhYXG4iLAorCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKKwkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKKwkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0RJU0NBUkRfUkRfQUREUl9MTywKKwkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9CQVNFLAorCQkJCSAgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfU1RBUlRfTE8sCisJCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0xPLAorCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgKworCQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpOworCisJCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsIDB4ZmZmZmZmYzApOyAvKiA/PyAqLworCisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKKwkJCQkgIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4pOworCX0gZWxzZSB7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKKwkJCQkgIHRtcCAmIH5SQURFT05fUENJRV9UWF9HQVJUX0VOKTsKKwl9Cit9CisKKy8qIEVuYWJsZSBvciBkaXNhYmxlIFBDSSBHQVJUIG9uIHRoZSBjaGlwICovCitzdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQoreworCXUzMiB0bXA7CisKKwlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApIHx8CisJICAgIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfSUdQR0FSVCkpIHsKKwkJcmFkZW9uX3NldF9pZ3BnYXJ0KGRldl9wcml2LCBvbik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpIHsKKwkJcmFkZW9uX3NldF9wY2llZ2FydChkZXZfcHJpdiwgb24pOworCQlyZXR1cm47CisJfQorCisJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKTsKKworCWlmIChvbikgeworCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19DTlRMLAorCQkJICAgICB0bXAgfCBSQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOworCisJCS8qIHNldCBQQ0kgR0FSVCBwYWdlLXRhYmxlIGJhc2UgYWRkcmVzcworCQkgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfUFRfQkFTRSwgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7CisKKwkJLyogc2V0IGFkZHJlc3MgcmFuZ2UgZm9yIFBDSSBhZGRyZXNzIHRyYW5zbGF0ZQorCQkgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfTE9fQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19ISV9BRERSLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydAorCQkJICAgICArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKTsKKworCQkvKiBUdXJuIG9mZiBBR1AgYXBlcnR1cmUgLS0gaXMgdGhpcyByZXF1aXJlZCBmb3IgUENJIEdBUlQ/CisJCSAqLworCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LCAweGZmZmZmZmMwKTsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BR1BfQ09NTUFORCwgMCk7CS8qIGNsZWFyIEFHUF9DT01NQU5EICovCisJfSBlbHNlIHsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKKwkJCSAgICAgdG1wICYgflJBREVPTl9QQ0lHQVJUX1RSQU5TTEFURV9FTik7CisJfQorfQorCitzdGF0aWMgaW50IHJhZGVvbl9kb19pbml0X2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBkcm1fcmFkZW9uX2luaXRfdCAqIGluaXQpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIGlmIHdlIHJlcXVpcmUgbmV3IG1lbW9yeSBtYXAgYnV0IHdlIGRvbid0IGhhdmUgaXQgZmFpbCAqLworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX05FV19NRU1NQVApICYmICFkZXZfcHJpdi0+bmV3X21lbW1hcCkgeworCQlEUk1fRVJST1IoIkNhbm5vdCBpbml0aWFsaXNlIERSTSBvbiB0aGlzIGNhcmRcblRoaXMgY2FyZCByZXF1aXJlcyBhIG5ldyBYLm9yZyBERFggZm9yIDNEXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGluaXQtPmlzX3BjaSAmJiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpIHsKKwkJRFJNX0RFQlVHKCJGb3JjaW5nIEFHUCBjYXJkIHRvIFBDSSBtb2RlXG4iKTsKKwkJZGV2X3ByaXYtPmZsYWdzICY9IH5SQURFT05fSVNfQUdQOworCX0gZWxzZSBpZiAoIShkZXZfcHJpdi0+ZmxhZ3MgJiAoUkFERU9OX0lTX0FHUCB8IFJBREVPTl9JU19QQ0kgfCBSQURFT05fSVNfUENJRSkpCisJCSAgICYmICFpbml0LT5pc19wY2kpIHsKKwkJRFJNX0RFQlVHKCJSZXN0b3JpbmcgQUdQIGZsYWdcbiIpOworCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX0FHUDsKKwl9CisKKwlpZiAoKCEoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpICYmICFkZXYtPnNnKSB7CisJCURSTV9FUlJPUigiUENJIEdBUlQgbWVtb3J5IG5vdCBhbGxvY2F0ZWQhXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGV2X3ByaXYtPnVzZWNfdGltZW91dCA9IGluaXQtPnVzZWNfdGltZW91dDsKKwlpZiAoZGV2X3ByaXYtPnVzZWNfdGltZW91dCA8IDEgfHwKKwkgICAgZGV2X3ByaXYtPnVzZWNfdGltZW91dCA+IFJBREVPTl9NQVhfVVNFQ19USU1FT1VUKSB7CisJCURSTV9ERUJVRygiVElNRU9VVCBwcm9ibGVtIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEVuYWJsZSB2Ymxhbmsgb24gQ1JUQzEgZm9yIG9sZGVyIFggc2VydmVycworCSAqLworCWRldl9wcml2LT52YmxhbmtfY3J0YyA9IERSTV9SQURFT05fVkJMQU5LX0NSVEMxOworCisJc3dpdGNoKGluaXQtPmZ1bmMpIHsKKwljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6CisJCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IyMDA7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX0lOSVRfUjMwMF9DUDoKKwkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjMwMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjEwMDsKKwl9CisKKwlkZXZfcHJpdi0+ZG9fYm94ZXMgPSAwOworCWRldl9wcml2LT5jcF9tb2RlID0gaW5pdC0+Y3BfbW9kZTsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgYW55dGhpbmcgb3RoZXIgdGhhbiBidXMtbWFzdGVyaW5nIHJpbmcgbW9kZSwKKwkgKiBidXQgdGhlIHJpbmcgY2FuIGJlIGluIGVpdGhlciBBR1Agb3IgUENJIHNwYWNlIGZvciB0aGUgcmluZworCSAqIHJlYWQgcG9pbnRlci4KKwkgKi8KKwlpZiAoKGluaXQtPmNwX21vZGUgIT0gUkFERU9OX0NTUV9QUklCTV9JTkRESVMpICYmCisJICAgIChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5EQk0pKSB7CisJCURSTV9ERUJVRygiQkFEIGNwX21vZGUgKCV4KSFcbiIsIGluaXQtPmNwX21vZGUpOworCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2ggKGluaXQtPmZiX2JwcCkgeworCWNhc2UgMTY6CisJCWRldl9wcml2LT5jb2xvcl9mbXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKKwkJYnJlYWs7CisJY2FzZSAzMjoKKwlkZWZhdWx0OgorCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4ODsKKwkJYnJlYWs7CisJfQorCWRldl9wcml2LT5mcm9udF9vZmZzZXQgPSBpbml0LT5mcm9udF9vZmZzZXQ7CisJZGV2X3ByaXYtPmZyb250X3BpdGNoID0gaW5pdC0+ZnJvbnRfcGl0Y2g7CisJZGV2X3ByaXYtPmJhY2tfb2Zmc2V0ID0gaW5pdC0+YmFja19vZmZzZXQ7CisJZGV2X3ByaXYtPmJhY2tfcGl0Y2ggPSBpbml0LT5iYWNrX3BpdGNoOworCisJc3dpdGNoIChpbml0LT5kZXB0aF9icHApIHsKKwljYXNlIDE2OgorCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8xNkJJVF9JTlRfWjsKKwkJYnJlYWs7CisJY2FzZSAzMjoKKwlkZWZhdWx0OgorCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8yNEJJVF9JTlRfWjsKKwkJYnJlYWs7CisJfQorCWRldl9wcml2LT5kZXB0aF9vZmZzZXQgPSBpbml0LT5kZXB0aF9vZmZzZXQ7CisJZGV2X3ByaXYtPmRlcHRoX3BpdGNoID0gaW5pdC0+ZGVwdGhfcGl0Y2g7CisKKwkvKiBIYXJkd2FyZSBzdGF0ZSBmb3IgZGVwdGggY2xlYXJzLiAgUmVtb3ZlIHRoaXMgaWYvd2hlbiB3ZSBubworCSAqIGxvbmdlciBjbGVhciB0aGUgZGVwdGggYnVmZmVyIHdpdGggYSAzRCByZWN0YW5nbGUuICBIYXJkLWNvZGUKKwkgKiBhbGwgdmFsdWVzIHRvIHByZXZlbnQgdW53YW50ZWQgM0Qgc3RhdGUgZnJvbSBzbGlwcGluZyB0aHJvdWdoCisJICogYW5kIHNjcmV3aW5nIHdpdGggdGhlIGNsZWFyIG9wZXJhdGlvbi4KKwkgKi8KKwlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF9jbnRsID0gKFJBREVPTl9QTEFORV9NQVNLX0VOQUJMRSB8CisJCQkJCSAgIChkZXZfcHJpdi0+Y29sb3JfZm10IDw8IDEwKSB8CisJCQkJCSAgIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0KKwkJCQkJICAgIFVDT0RFX1IxMDAgPyBSQURFT05fWkJMT0NLMTYgOiAwKSk7CisKKwlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF96c3RlbmNpbGNudGwgPQorCSAgICAoZGV2X3ByaXYtPmRlcHRoX2ZtdCB8CisJICAgICBSQURFT05fWl9URVNUX0FMV0FZUyB8CisJICAgICBSQURFT05fU1RFTkNJTF9URVNUX0FMV0FZUyB8CisJICAgICBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRSB8CisJICAgICBSQURFT05fU1RFTkNJTF9aUEFTU19SRVBMQUNFIHwKKwkgICAgIFJBREVPTl9TVEVOQ0lMX1pGQUlMX1JFUExBQ0UgfCBSQURFT05fWl9XUklURV9FTkFCTEUpOworCisJZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnNlX2NudGwgPSAoUkFERU9OX0ZGQUNFX0NVTExfQ1cgfAorCQkJCQkgUkFERU9OX0JGQUNFX1NPTElEIHwKKwkJCQkJIFJBREVPTl9GRkFDRV9TT0xJRCB8CisJCQkJCSBSQURFT05fRkxBVF9TSEFERV9WVFhfTEFTVCB8CisJCQkJCSBSQURFT05fRElGRlVTRV9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9TUEVDVUxBUl9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9GT0dfU0hBREVfRkxBVCB8CisJCQkJCSBSQURFT05fVlRYX1BJWF9DRU5URVJfT0dMIHwKKwkJCQkJIFJBREVPTl9ST1VORF9NT0RFX1RSVU5DIHwKKwkJCQkJIFJBREVPTl9ST1VORF9QUkVDXzhUSF9QSVgpOworCisKKwlkZXZfcHJpdi0+cmluZ19vZmZzZXQgPSBpbml0LT5yaW5nX29mZnNldDsKKwlkZXZfcHJpdi0+cmluZ19ycHRyX29mZnNldCA9IGluaXQtPnJpbmdfcnB0cl9vZmZzZXQ7CisJZGV2X3ByaXYtPmJ1ZmZlcnNfb2Zmc2V0ID0gaW5pdC0+YnVmZmVyc19vZmZzZXQ7CisJZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0ID0gaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQ7CisKKwlkZXZfcHJpdi0+c2FyZWEgPSBkcm1fZ2V0c2FyZWEoZGV2KTsKKwlpZiAoIWRldl9wcml2LT5zYXJlYSkgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHNhcmVhIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5jcF9yaW5nID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfb2Zmc2V0KTsKKwlpZiAoIWRldl9wcml2LT5jcF9yaW5nKSB7CisJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgY3AgcmluZyByZWdpb24hXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWRldl9wcml2LT5yaW5nX3JwdHIgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+cmluZ19ycHRyX29mZnNldCk7CisJaWYgKCFkZXZfcHJpdi0+cmluZ19ycHRyKSB7CisJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgcmluZyByZWFkIHBvaW50ZXIhXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWRldi0+YWdwX2J1ZmZlcl90b2tlbiA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OworCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+YnVmZmVyc19vZmZzZXQpOworCWlmICghZGV2LT5hZ3BfYnVmZmVyX21hcCkgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGRtYSBidWZmZXIgcmVnaW9uIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChpbml0LT5nYXJ0X3RleHR1cmVzX29mZnNldCkgeworCQlkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcyA9CisJCSAgICBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpOworCQlpZiAoIWRldl9wcml2LT5nYXJ0X3RleHR1cmVzKSB7CisJCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIEdBUlQgdGV4dHVyZSByZWdpb24hXG4iKTsKKwkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCWRldl9wcml2LT5zYXJlYV9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fc2FyZWFfdCAqKSAoKHU4ICopIGRldl9wcml2LT5zYXJlYS0+aGFuZGxlICsKKwkJCQkgICAgaW5pdC0+c2FyZWFfcHJpdl9vZmZzZXQpOworCisjaWYgX19PU19IQVNfQUdQCisJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKKwkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKKwkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOworCQlkcm1fY29yZV9pb3JlbWFwKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7CisJCWlmICghZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSB8fAorCQkgICAgIWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSB8fAorCQkgICAgIWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSkgeworCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBpb3JlbWFwIGFncCByZWdpb25zIVxuIik7CisJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSA9ICh2b2lkICopZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldDsKKwkJZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlID0KKwkJICAgICh2b2lkICopZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0OworCQlkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUgPQorCQkgICAgKHZvaWQgKilkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQ7CisKKwkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlICVwXG4iLAorCQkJICBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlKTsKKwkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgJXBcbiIsCisJCQkgIGRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSk7CisJCURSTV9ERUJVRygiZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICVwXG4iLAorCQkJICBkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpOworCX0KKworCWRldl9wcml2LT5mYl9sb2NhdGlvbiA9IChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYpIDw8IDE2OworCWRldl9wcml2LT5mYl9zaXplID0KKwkJKChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYwMDAwdSkgKyAweDEwMDAwKQorCQktIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKKworCWRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+ZnJvbnRfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKKwkJCQkJKChkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0CisJCQkJCSAgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7CisKKwlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+YmFja19waXRjaCAvIDY0KSA8PCAyMikgfAorCQkJCSAgICAgICAoKGRldl9wcml2LT5iYWNrX29mZnNldAorCQkJCQkgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7CisKKwlkZXZfcHJpdi0+ZGVwdGhfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmRlcHRoX3BpdGNoIC8gNjQpIDw8IDIyKSB8CisJCQkJCSgoZGV2X3ByaXYtPmRlcHRoX29mZnNldAorCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOworCisJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IGluaXQtPmdhcnRfc2l6ZTsKKworCS8qIE5ldyBsZXQncyBzZXQgdGhlIG1lbW9yeSBtYXAgLi4uICovCisJaWYgKGRldl9wcml2LT5uZXdfbWVtbWFwKSB7CisJCXUzMiBiYXNlID0gMDsKKworCQlEUk1fSU5GTygiU2V0dGluZyBHQVJUIGxvY2F0aW9uIGJhc2VkIG9uIG5ldyBtZW1vcnkgbWFwXG4iKTsKKworCQkvKiBJZiB1c2luZyBBR1AsIHRyeSB0byBsb2NhdGUgdGhlIEFHUCBhcGVydHVyZSBhdCB0aGUgc2FtZQorCQkgKiBsb2NhdGlvbiBpbiB0aGUgY2FyZCBhbmQgb24gdGhlIGJ1cywgdGhvdWdoIHdlIGhhdmUgdG8KKwkJICogYWxpZ24gaXQgZG93bi4KKwkJICovCisjaWYgX19PU19IQVNfQUdQCisJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCQliYXNlID0gZGV2LT5hZ3AtPmJhc2U7CisJCQkvKiBDaGVjayBpZiB2YWxpZCAqLworCQkJaWYgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpID49IGRldl9wcml2LT5mYl9sb2NhdGlvbiAmJgorCQkJICAgIGJhc2UgPCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemUgLSAxKSkgeworCQkJCURSTV9JTkZPKCJDYW4ndCB1c2UgQUdQIGJhc2UgQDB4JTA4bHgsIHdvbid0IGZpdFxuIiwKKwkJCQkJIGRldi0+YWdwLT5iYXNlKTsKKwkJCQliYXNlID0gMDsKKwkJCX0KKwkJfQorI2VuZGlmCisJCS8qIElmIG5vdCBvciBpZiBBR1AgaXMgYXQgMCAoTWFjcyksIHRyeSB0byBwdXQgaXQgZWxzZXdoZXJlICovCisJCWlmIChiYXNlID09IDApIHsKKwkJCWJhc2UgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gKyBkZXZfcHJpdi0+ZmJfc2l6ZTsKKwkJCWlmIChiYXNlIDwgZGV2X3ByaXYtPmZiX2xvY2F0aW9uIHx8CisJCQkgICAgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmZmZmZmdWwpIDwgYmFzZSkKKwkJCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uCisJCQkJCS0gZGV2X3ByaXYtPmdhcnRfc2l6ZTsKKwkJfQorCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGJhc2UgJiAweGZmYzAwMDAwdTsKKwkJaWYgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ICE9IGJhc2UpCisJCQlEUk1fSU5GTygiR0FSVCBhbGlnbmVkIGRvd24gZnJvbSAweCUwOHggdG8gMHglMDh4XG4iLAorCQkJCSBiYXNlLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJfSBlbHNlIHsKKwkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBvbGQgbWVtb3J5IG1hcFxuIik7CisJCWRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsKKwkJCVJBREVPTl9SRUFEKFJBREVPTl9DT05GSUdfQVBFUl9TSVpFKTsKKwl9CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkKKwkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0CisJCQkJCQkgLSBkZXYtPmFncC0+YmFzZQorCQkJCQkJICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCWVsc2UKKyNlbmRpZgorCQlkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCA9IChkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQKKwkJCQkJLSAodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsCisJCQkJCSsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCisJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9zaXplICVkXG4iLCBkZXZfcHJpdi0+Z2FydF9zaXplKTsKKwlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IDB4JXhcbiIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0IDB4JWx4XG4iLAorCQkgIGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0KTsKKworCWRldl9wcml2LT5yaW5nLnN0YXJ0ID0gKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlOworCWRldl9wcml2LT5yaW5nLmVuZCA9ICgodTMyICopIGRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUKKwkJCSAgICAgICsgaW5pdC0+cmluZ19zaXplIC8gc2l6ZW9mKHUzMikpOworCWRldl9wcml2LT5yaW5nLnNpemUgPSBpbml0LT5yaW5nX3NpemU7CisJZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3ID0gZHJtX29yZGVyKGluaXQtPnJpbmdfc2l6ZSAvIDgpOworCisJZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGUgPSAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2OworCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPSBkcm1fb3JkZXIoIC8qIGluaXQtPnJwdHJfdXBkYXRlICovIDQwOTYgLyA4KTsKKworCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemUgPSAvKiBpbml0LT5mZXRjaF9zaXplICovIDMyOworCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemVfbDJvdyA9IGRybV9vcmRlciggLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMiAvIDE2KTsKKwlkZXZfcHJpdi0+cmluZy50YWlsX21hc2sgPSAoZGV2X3ByaXYtPnJpbmcuc2l6ZSAvIHNpemVvZih1MzIpKSAtIDE7CisKKwlkZXZfcHJpdi0+cmluZy5oaWdoX21hcmsgPSBSQURFT05fUklOR19ISUdIX01BUks7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLworCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOworCX0gZWxzZQorI2VuZGlmCisJeworCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX21hc2sgPSBETUFfQklUX01BU0soMzIpOworCQkvKiBpZiB3ZSBoYXZlIGFuIG9mZnNldCBzZXQgZnJvbSB1c2Vyc3BhY2UgKi8KKwkJaWYgKGRldl9wcml2LT5wY2lnYXJ0X29mZnNldF9zZXQpIHsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPQorCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5vZmZzZXQgPQorCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9hcGVyX29mZnNldDsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5zaXplID0KKwkJCSAgICBkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemU7CisKKwkJCWRybV9jb3JlX2lvcmVtYXBfd2MoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9CisJCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby5tYXBwaW5nLmhhbmRsZTsKKworCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQorCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJRTsKKwkJCWVsc2UKKwkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9CisJCQkgICAgRFJNX0FUSV9HQVJUX0ZCOworCisJCQlEUk1fREVCVUcoIlNldHRpbmcgcGh5c19wY2lfZ2FydCB0byAlcCAlMDhsWFxuIiwKKwkJCQkgIGRldl9wcml2LT5nYXJ0X2luZm8uYWRkciwKKwkJCQkgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCk7CisJCX0gZWxzZSB7CisJCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpCisJCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9JR1A7CisJCQllbHNlCisJCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQorCQkJICAgIERSTV9BVElfR0FSVF9NQUlOOworCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5hZGRyID0gTlVMTDsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPSAwOworCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7CisJCQkJRFJNX0VSUk9SCisJCQkJICAgICgiQ2Fubm90IHVzZSBQQ0kgRXhwcmVzcyB3aXRob3V0IEdBUlQgaW4gRkIgbWVtb3J5XG4iKTsKKwkJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQl9CisKKwkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfaW5pdChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdCBQQ0kgR0FSVCFcbiIpOworCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJLyogVHVybiBvbiBQQ0kgR0FSVCAqLworCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDEpOworCX0KKworCXJhZGVvbl9jcF9sb2FkX21pY3JvY29kZShkZXZfcHJpdik7CisJcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoZGV2LCBkZXZfcHJpdik7CisKKwlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCisJcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworCXJhZGVvbl90ZXN0X3dyaXRlYmFjayhkZXZfcHJpdik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIE1ha2Ugc3VyZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgdGhlIHVuaW5zdGFsbCBpb2N0bAorCSAqIG1heSBub3QgaGF2ZSBiZWVuIGNhbGxlZCBmcm9tIHVzZXJzcGFjZSBhbmQgYWZ0ZXIgZGV2X3ByaXZhdGUKKwkgKiBpcyBmcmVlZCwgaXQncyB0b28gbGF0ZS4KKwkgKi8KKwlpZiAoZGV2LT5pcnFfZW5hYmxlZCkKKwkJZHJtX2lycV91bmluc3RhbGwoZGV2KTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCWlmIChkZXZfcHJpdi0+Y3BfcmluZyAhPSBOVUxMKSB7CisJCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKKwkJCWRldl9wcml2LT5jcF9yaW5nID0gTlVMTDsKKwkJfQorCQlpZiAoZGV2X3ByaXYtPnJpbmdfcnB0ciAhPSBOVUxMKSB7CisJCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOworCQkJZGV2X3ByaXYtPnJpbmdfcnB0ciA9IE5VTEw7CisJCX0KKwkJaWYgKGRldi0+YWdwX2J1ZmZlcl9tYXAgIT0gTlVMTCkgeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2LT5hZ3BfYnVmZmVyX21hcCwgZGV2KTsKKwkJCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBOVUxMOworCQl9CisJfSBlbHNlCisjZW5kaWYKKwl7CisKKwkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpIHsKKwkJCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCisJCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOworCQkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkKKwkJCQlEUk1fRVJST1IoImZhaWxlZCB0byBjbGVhbnVwIFBDSSBHQVJUIVxuIik7CisJCX0KKworCQlpZiAoZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9GQikKKwkJeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IDA7CisJCX0KKwl9CisJLyogb25seSBjbGVhciB0byB0aGUgc3RhcnQgb2YgZmxhZ3MgKi8KKwltZW1zZXQoZGV2X3ByaXYsIDAsIG9mZnNldG9mKGRybV9yYWRlb25fcHJpdmF0ZV90LCBmbGFncykpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFRoaXMgY29kZSB3aWxsIHJlaW5pdCB0aGUgUmFkZW9uIENQIGhhcmR3YXJlIGFmdGVyIGEgcmVzdW1lIGZyb20gZGlzYy4KKyAqIEFGQUlLLCBpdCB3b3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byBwaWNrbGUgdGhlIHN0YXRlIGF0IHN1c3BlbmQgdGltZSwgc28KKyAqIGhlcmUgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIFJhZGVvbiBoYXJkd2FyZSBpbml0aWFsaXNhdGlvbiBpcyByZS1kb25lIHdpdGhvdXQKKyAqIGFmZmVjdGluZyBydW5uaW5nIGFwcGxpY2F0aW9ucy4KKyAqCisgKiBDaGFybCBQLiBCb3RoYSA8aHR0cDovL2NwYm90aGEubmV0PgorICovCitzdGF0aWMgaW50IHJhZGVvbl9kb19yZXN1bWVfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJDYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCURSTV9ERUJVRygiU3RhcnRpbmcgcmFkZW9uX2RvX3Jlc3VtZV9jcCgpXG4iKTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCisJCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMCk7CisJfSBlbHNlCisjZW5kaWYKKwl7CisJCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KKwkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKKwl9CisKKwlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOworCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOworCisJcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7CisKKwlEUk1fREVCVUcoInJhZGVvbl9kb19yZXN1bWVfY3AoKSBjb21wbGV0ZVxuIik7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25faW5pdF90ICppbml0ID0gZGF0YTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoaW5pdC0+ZnVuYyA9PSBSQURFT05fSU5JVF9SMzAwX0NQKQorCQlyMzAwX2luaXRfcmVnX2ZsYWdzKGRldik7CisKKwlzd2l0Y2ggKGluaXQtPmZ1bmMpIHsKKwljYXNlIFJBREVPTl9JTklUX0NQOgorCWNhc2UgUkFERU9OX0lOSVRfUjIwMF9DUDoKKwljYXNlIFJBREVPTl9JTklUX1IzMDBfQ1A6CisJCXJldHVybiByYWRlb25fZG9faW5pdF9jcChkZXYsIGluaXQpOworCWNhc2UgUkFERU9OX0NMRUFOVVBfQ1A6CisJCXJldHVybiByYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCX0KKworCXJldHVybiAtRUlOVkFMOworfQorCitpbnQgcmFkZW9uX2NwX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmIChkZXZfcHJpdi0+Y3BfcnVubmluZykgeworCQlEUk1fREVCVUcoIndoaWxlIENQIHJ1bm5pbmdcbiIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKGRldl9wcml2LT5jcF9tb2RlID09IFJBREVPTl9DU1FfUFJJRElTX0lORERJUykgeworCQlEUk1fREVCVUcoImNhbGxlZCB3aXRoIGJvZ3VzIENQIG1vZGUgKCVkKVxuIiwKKwkJCSAgZGV2X3ByaXYtPmNwX21vZGUpOworCQlyZXR1cm4gMDsKKwl9CisKKwlyYWRlb25fZG9fY3Bfc3RhcnQoZGV2X3ByaXYpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFN0b3AgdGhlIENQLiAgVGhlIGVuZ2luZSBtdXN0IGhhdmUgYmVlbiBpZGxlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiByb3V0aW5lLgorICovCitpbnQgcmFkZW9uX2NwX3N0b3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2NwX3N0b3BfdCAqc3RvcCA9IGRhdGE7CisJaW50IHJldDsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdi0+Y3BfcnVubmluZykKKwkJcmV0dXJuIDA7CisKKwkvKiBGbHVzaCBhbnkgcGVuZGluZyBDUCBjb21tYW5kcy4gIFRoaXMgZW5zdXJlcyBhbnkgb3V0c3RhbmRpbmcKKwkgKiBjb21tYW5kcyBhcmUgZXhlY3R1dGVkIGJ5IHRoZSBlbmdpbmUgYmVmb3JlIHdlIHR1cm4gaXQgb2ZmLgorCSAqLworCWlmIChzdG9wLT5mbHVzaCkgeworCQlyYWRlb25fZG9fY3BfZmx1c2goZGV2X3ByaXYpOworCX0KKworCS8qIElmIHdlIGZhaWwgdG8gbWFrZSB0aGUgZW5naW5lIGdvIGlkbGUsIHdlIHJldHVybiBhbiBlcnJvcgorCSAqIGNvZGUgc28gdGhhdCB0aGUgRFJNIGlvY3RsIHdyYXBwZXIgY2FuIHRyeSBhZ2Fpbi4KKwkgKi8KKwlpZiAoc3RvcC0+aWRsZSkgeworCQlyZXQgPSByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCS8qIEZpbmFsbHksIHdlIGNhbiB0dXJuIG9mZiB0aGUgQ1AuICBJZiB0aGUgZW5naW5lIGlzbid0IGlkbGUsCisJICogd2Ugd2lsbCBnZXQgc29tZSBkcm9wcGVkIHRyaWFuZ2xlcyBhcyB0aGV5IHdvbid0IGJlIGZ1bGx5CisJICogcmVuZGVyZWQgYmVmb3JlIHRoZSBDUCBpcyBzaHV0IGRvd24uCisJICovCisJcmFkZW9uX2RvX2NwX3N0b3AoZGV2X3ByaXYpOworCisJLyogUmVzZXQgdGhlIGVuZ2luZSAqLworCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKworCXJldHVybiAwOworfQorCit2b2lkIHJhZGVvbl9kb19yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGksIHJldDsKKworCWlmIChkZXZfcHJpdikgeworCQlpZiAoZGV2X3ByaXYtPmNwX3J1bm5pbmcpIHsKKwkJCS8qIFN0b3AgdGhlIGNwICovCisJCQl3aGlsZSAoKHJldCA9IHJhZGVvbl9kb19jcF9pZGxlKGRldl9wcml2KSkgIT0gMCkgeworCQkJCURSTV9ERUJVRygicmFkZW9uX2RvX2NwX2lkbGUgJWRcbiIsIHJldCk7CisjaWZkZWYgX19saW51eF9fCisJCQkJc2NoZWR1bGUoKTsKKyNlbHNlCisJCQkJdHNsZWVwKCZyZXQsIFBaRVJPLCAicmRucmVsIiwgMSk7CisjZW5kaWYKKwkJCX0KKwkJCXJhZGVvbl9kb19jcF9zdG9wKGRldl9wcml2KTsKKwkJCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKwkJfQorCisJCS8qIERpc2FibGUgKmFsbCogaW50ZXJydXB0cyAqLworCQlpZiAoZGV2X3ByaXYtPm1taW8pCS8qIHJlbW92ZSB0aGlzIGFmdGVyIHBlcm1hbmVudCBhZGRtYXBzICovCisJCQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7CisKKwkJaWYgKGRldl9wcml2LT5tbWlvKSB7CS8qIHJlbW92ZSBhbGwgc3VyZmFjZXMgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0lORk8gKyAxNiAqIGksIDApOworCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfTE9XRVJfQk9VTkQgKworCQkJCQkgICAgIDE2ICogaSwgMCk7CisJCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9VUFBFUl9CT1VORCArCisJCQkJCSAgICAgMTYgKiBpLCAwKTsKKwkJCX0KKwkJfQorCisJCS8qIEZyZWUgbWVtb3J5IGhlYXAgc3RydWN0dXJlcyAqLworCQlyYWRlb25fbWVtX3Rha2Vkb3duKCYoZGV2X3ByaXYtPmdhcnRfaGVhcCkpOworCQlyYWRlb25fbWVtX3Rha2Vkb3duKCYoZGV2X3ByaXYtPmZiX2hlYXApKTsKKworCQkvKiBkZWFsbG9jYXRlIGtlcm5lbCByZXNvdXJjZXMgKi8KKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwl9Cit9CisKKy8qIEp1c3QgcmVzZXQgdGhlIENQIHJpbmcuICBDYWxsZWQgYXMgcGFydCBvZiBhbiBYIFNlcnZlciBlbmdpbmUgcmVzZXQuCisgKi8KK2ludCByYWRlb25fY3BfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fREVCVUcoImNhbGxlZCBiZWZvcmUgaW5pdCBkb25lXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmFkZW9uX2RvX2NwX3Jlc2V0KGRldl9wcml2KTsKKworCS8qIFRoZSBDUCBpcyBubyBsb25nZXIgcnVubmluZyBhZnRlciBhbiBlbmdpbmUgcmVzZXQgKi8KKwlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDA7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCXJldHVybiByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7Cit9CisKKy8qIEFkZGVkIGJ5IENoYXJsIFAuIEJvdGhhIHRvIGNhbGwgcmFkZW9uX2RvX3Jlc3VtZV9jcCgpLgorICovCitpbnQgcmFkZW9uX2NwX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKworCXJldHVybiByYWRlb25fZG9fcmVzdW1lX2NwKGRldik7Cit9CisKK2ludCByYWRlb25fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCURSTV9ERUJVRygiXG4iKTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlyZXR1cm4gcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBGdWxsc2NyZWVuIG1vZGUKKyAqLworCisvKiBLVzogRGVwcmVjYXRlZCB0byBzYXkgdGhlIGxlYXN0OgorICovCitpbnQgcmFkZW9uX2Z1bGxzY3JlZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJcmV0dXJuIDA7Cit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEZyZWVsaXN0IG1hbmFnZW1lbnQKKyAqLworCisvKiBPcmlnaW5hbCBjb21tZW50OiBGSVhNRTogUk9UQVRFX0JVRlMgaXMgYSBoYWNrIHRvIGN5Y2xlIHRocm91Z2gKKyAqICAgYnVmcyB1bnRpbCBmcmVlbGlzdCBjb2RlIGlzIHVzZWQuICBOb3RlIHRoaXMgaGlkZXMgYSBwcm9ibGVtIHdpdGgKKyAqICAgdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgKiAodXNlZCB0byBrZWVwIHRyYWNrIG9mIGxhc3QgYnVmZmVyCisgKiAgIGNvbXBsZXRlZCkgYmVpbmcgd3JpdHRlbiB0byBiZWZvcmUgKiB0aGUgbGFzdCBidWZmZXIgaGFzIGFjdHVhbGx5CisgKiAgIGNvbXBsZXRlZCByZW5kZXJpbmcuCisgKgorICogS1c6ICBJdCdzIGFsc28gYSBnb29kIHdheSB0byBmaW5kIGZyZWUgYnVmZmVycyBxdWlja2x5LgorICoKKyAqIEtXOiBJZGVhbGx5IHRoaXMgbG9vcCB3b3VsZG4ndCBleGlzdCwgYW5kIGZyZWVsaXN0X2dldCB3b3VsZG4ndAorICogc2xlZXAuICBIb3dldmVyLCBidWdzIGluIG9sZGVyIHZlcnNpb25zIG9mIHJhZGVvbl9hY2NlbC5jIG1lYW4gdGhhdAorICogd2UgZXNzZW50aWFsbHkgaGF2ZSB0byBkbyB0aGlzLCBlbHNlIG9sZCBjbGllbnRzIHdpbGwgYnJlYWsuCisgKgorICogSG93ZXZlciwgaXQgZG9lcyBsZWF2ZSBvcGVuIGEgcG90ZW50aWFsIGRlYWRsb2NrIHdoZXJlIGFsbCB0aGUKKyAqIGJ1ZmZlcnMgYXJlIGhlbGQgYnkgb3RoZXIgY2xpZW50cywgd2hpY2ggY2FuJ3QgcmVsZWFzZSB0aGVtIGJlY2F1c2UKKyAqIHRoZXkgY2FuJ3QgZ2V0IHRoZSBsb2NrLgorICovCisKK3N0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2OworCXN0cnVjdCBkcm1fYnVmICpidWY7CisJaW50IGksIHQ7CisJaW50IHN0YXJ0OworCisJaWYgKCsrZGV2X3ByaXYtPmxhc3RfYnVmID49IGRtYS0+YnVmX2NvdW50KQorCQlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCisJc3RhcnQgPSBkZXZfcHJpdi0+bGFzdF9idWY7CisKKwlmb3IgKHQgPSAwOyB0IDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgdCsrKSB7CisJCXUzMiBkb25lX2FnZSA9IEdFVF9TQ1JBVENIKDEpOworCQlEUk1fREVCVUcoImRvbmVfYWdlID0gJWRcbiIsIGRvbmVfYWdlKTsKKwkJZm9yIChpID0gc3RhcnQ7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7CisJCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaV07CisJCQlidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7CisJCQlpZiAoYnVmLT5maWxlX3ByaXYgPT0gTlVMTCB8fCAoYnVmLT5wZW5kaW5nICYmCisJCQkJCQkgICAgICAgYnVmX3ByaXYtPmFnZSA8PQorCQkJCQkJICAgICAgIGRvbmVfYWdlKSkgeworCQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcysrOworCQkJCWJ1Zi0+cGVuZGluZyA9IDA7CisJCQkJcmV0dXJuIGJ1ZjsKKwkJCX0KKwkJCXN0YXJ0ID0gMDsKKwkJfQorCisJCWlmICh0KSB7CisJCQlEUk1fVURFTEFZKDEpOworCQkJZGV2X3ByaXYtPnN0YXRzLmZyZWVsaXN0X2xvb3BzKys7CisJCX0KKwl9CisKKwlEUk1fREVCVUcoInJldHVybmluZyBOVUxMIVxuIik7CisJcmV0dXJuIE5VTEw7Cit9CisKKyNpZiAwCitzdHJ1Y3QgZHJtX2J1ZiAqcmFkZW9uX2ZyZWVsaXN0X2dldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdjsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWludCBpLCB0OworCWludCBzdGFydDsKKwl1MzIgZG9uZV9hZ2UgPSBEUk1fUkVBRDMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpKTsKKworCWlmICgrK2Rldl9wcml2LT5sYXN0X2J1ZiA+PSBkbWEtPmJ1Zl9jb3VudCkKKwkJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKKworCXN0YXJ0ID0gZGV2X3ByaXYtPmxhc3RfYnVmOworCWRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcysrOworCisJZm9yICh0ID0gMDsgdCA8IDI7IHQrKykgeworCQlmb3IgKGkgPSBzdGFydDsgaSA8IGRtYS0+YnVmX2NvdW50OyBpKyspIHsKKwkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpXTsKKwkJCWJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKKwkJCWlmIChidWYtPmZpbGVfcHJpdiA9PSAwIHx8IChidWYtPnBlbmRpbmcgJiYKKwkJCQkJCSAgICBidWZfcHJpdi0+YWdlIDw9CisJCQkJCQkgICAgZG9uZV9hZ2UpKSB7CisJCQkJZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzKys7CisJCQkJYnVmLT5wZW5kaW5nID0gMDsKKwkJCQlyZXR1cm4gYnVmOworCQkJfQorCQl9CisJCXN0YXJ0ID0gMDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKyNlbmRpZgorCit2b2lkIHJhZGVvbl9mcmVlbGlzdF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCWZvciAoaSA9IDA7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBkcm1fYnVmICpidWYgPSBkbWEtPmJ1Zmxpc3RbaV07CisJCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOworCQlidWZfcHJpdi0+YWdlID0gMDsKKwl9Cit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENQIGNvbW1hbmQgc3VibWlzc2lvbgorICovCisKK2ludCByYWRlb25fd2FpdF9yaW5nKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBuKQoreworCWRybV9yYWRlb25fcmluZ19idWZmZXJfdCAqcmluZyA9ICZkZXZfcHJpdi0+cmluZzsKKwlpbnQgaTsKKwl1MzIgbGFzdF9oZWFkID0gR0VUX1JJTkdfSEVBRChkZXZfcHJpdik7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCXUzMiBoZWFkID0gR0VUX1JJTkdfSEVBRChkZXZfcHJpdik7CisKKwkJcmluZy0+c3BhY2UgPSAoaGVhZCAtIHJpbmctPnRhaWwpICogc2l6ZW9mKHUzMik7CisJCWlmIChyaW5nLT5zcGFjZSA8PSAwKQorCQkJcmluZy0+c3BhY2UgKz0gcmluZy0+c2l6ZTsKKwkJaWYgKHJpbmctPnNwYWNlID4gbikKKwkJCXJldHVybiAwOworCisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCQlpZiAoaGVhZCAhPSBsYXN0X2hlYWQpCisJCQlpID0gMDsKKwkJbGFzdF9oZWFkID0gaGVhZDsKKworCQlEUk1fVURFTEFZKDEpOworCX0KKworCS8qIEZJWE1FOiBUaGlzIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoZSBCRUdJTl9SSU5HIG1hY3JvISAqLworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2dldF9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCSBzdHJ1Y3QgZHJtX2RtYSAqIGQpCit7CisJaW50IGk7CisJc3RydWN0IGRybV9idWYgKmJ1ZjsKKworCWZvciAoaSA9IGQtPmdyYW50ZWRfY291bnQ7IGkgPCBkLT5yZXF1ZXN0X2NvdW50OyBpKyspIHsKKwkJYnVmID0gcmFkZW9uX2ZyZWVsaXN0X2dldChkZXYpOworCQlpZiAoIWJ1ZikKKwkJCXJldHVybiAtRUJVU1k7CS8qIE5PVEU6IGJyb2tlbiBjbGllbnQgKi8KKworCQlidWYtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKworCQlpZiAoRFJNX0NPUFlfVE9fVVNFUigmZC0+cmVxdWVzdF9pbmRpY2VzW2ldLCAmYnVmLT5pZHgsCisJCQkJICAgICBzaXplb2YoYnVmLT5pZHgpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCQlpZiAoRFJNX0NPUFlfVE9fVVNFUigmZC0+cmVxdWVzdF9zaXplc1tpXSwgJmJ1Zi0+dG90YWwsCisJCQkJICAgICBzaXplb2YoYnVmLT50b3RhbCkpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJZC0+Z3JhbnRlZF9jb3VudCsrOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGRybV9kbWEgKmQgPSBkYXRhOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCS8qIFBsZWFzZSBkb24ndCBzZW5kIHVzIGJ1ZmZlcnMuCisJICovCisJaWYgKGQtPnNlbmRfY291bnQgIT0gMCkgeworCQlEUk1fRVJST1IoIlByb2Nlc3MgJWQgdHJ5aW5nIHRvIHNlbmQgJWQgYnVmZmVycyB2aWEgZHJtRE1BXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgZC0+c2VuZF9jb3VudCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFdlJ2xsIHNlbmQgeW91IGJ1ZmZlcnMuCisJICovCisJaWYgKGQtPnJlcXVlc3RfY291bnQgPCAwIHx8IGQtPnJlcXVlc3RfY291bnQgPiBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoIlByb2Nlc3MgJWQgdHJ5aW5nIHRvIGdldCAlZCBidWZmZXJzIChvZiAlZCBtYXgpXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgZC0+cmVxdWVzdF9jb3VudCwgZG1hLT5idWZfY291bnQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkLT5ncmFudGVkX2NvdW50ID0gMDsKKworCWlmIChkLT5yZXF1ZXN0X2NvdW50KSB7CisJCXJldCA9IHJhZGVvbl9jcF9nZXRfYnVmZmVycyhkZXYsIGZpbGVfcHJpdiwgZCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworaW50IHJhZGVvbl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdjsKKwlpbnQgcmV0ID0gMDsKKworCWRldl9wcml2ID0gZHJtX2FsbG9jKHNpemVvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCksIERSTV9NRU1fRFJJVkVSKTsKKwlpZiAoZGV2X3ByaXYgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1zZXQoZGV2X3ByaXYsIDAsIHNpemVvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCkpOworCWRldi0+ZGV2X3ByaXZhdGUgPSAodm9pZCAqKWRldl9wcml2OworCWRldl9wcml2LT5mbGFncyA9IGZsYWdzOworCisJc3dpdGNoIChmbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgeworCWNhc2UgQ0hJUF9SMTAwOgorCWNhc2UgQ0hJUF9SVjIwMDoKKwljYXNlIENISVBfUjIwMDoKKwljYXNlIENISVBfUjMwMDoKKwljYXNlIENISVBfUjM1MDoKKwljYXNlIENISVBfUjQyMDoKKwljYXNlIENISVBfUlY0MTA6CisJY2FzZSBDSElQX1JWNTE1OgorCWNhc2UgQ0hJUF9SNTIwOgorCWNhc2UgQ0hJUF9SVjU3MDoKKwljYXNlIENISVBfUjU4MDoKKwkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9IQVNfSElFUlo7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8qIGFsbCBvdGhlciBjaGlwcyBoYXZlIG5vIGhpZXJhcmNoaWNhbCB6IGJ1ZmZlciAqLworCQlicmVhazsKKwl9CisKKwlpZiAoZHJtX2RldmljZV9pc19hZ3AoZGV2KSkKKwkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19BR1A7CisJZWxzZSBpZiAoZHJtX2RldmljZV9pc19wY2llKGRldikpCisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfUENJRTsKKwllbHNlCisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfUENJOworCisJRFJNX0RFQlVHKCIlcyBjYXJkIGRldGVjdGVkXG4iLAorCQkgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgPyAiQUdQIiA6ICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSA/ICJQQ0lFIiA6ICJQQ0kiKSkpKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBDcmVhdGUgbWFwcGluZ3MgZm9yIHJlZ2lzdGVycyBhbmQgZnJhbWVidWZmZXIgc28gdXNlcmxhbmQgZG9lc24ndCBuZWNlc3NhcmlseQorICogaGF2ZSB0byBmaW5kIHRoZW0uCisgKi8KK2ludCByYWRlb25fZHJpdmVyX2ZpcnN0b3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWludCByZXQ7CisJZHJtX2xvY2FsX21hcF90ICptYXA7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWRldl9wcml2LT5nYXJ0X2luZm8udGFibGVfc2l6ZSA9IFJBREVPTl9QQ0lHQVJUX1RBQkxFX1NJWkU7CisKKwlyZXQgPSBkcm1fYWRkbWFwKGRldiwgZHJtX2dldF9yZXNvdXJjZV9zdGFydChkZXYsIDIpLAorCQkJIGRybV9nZXRfcmVzb3VyY2VfbGVuKGRldiwgMiksIF9EUk1fUkVHSVNURVJTLAorCQkJIF9EUk1fUkVBRF9PTkxZLCAmZGV2X3ByaXYtPm1taW8pOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWRldl9wcml2LT5mYl9hcGVyX29mZnNldCA9IGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoZGV2LCAwKTsKKwlyZXQgPSBkcm1fYWRkbWFwKGRldiwgZGV2X3ByaXYtPmZiX2FwZXJfb2Zmc2V0LAorCQkJIGRybV9nZXRfcmVzb3VyY2VfbGVuKGRldiwgMCksIF9EUk1fRlJBTUVfQlVGRkVSLAorCQkJIF9EUk1fV1JJVEVfQ09NQklOSU5HLCAmbWFwKTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCURSTV9ERUJVRygiXG4iKTsKKwlkcm1fZnJlZShkZXZfcHJpdiwgc2l6ZW9mKCpkZXZfcHJpdiksIERSTV9NRU1fRFJJVkVSKTsKKworCWRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMGVjYTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuaApAQCAtMCwwICsxLDE0MDYgQEAKKy8qIHJhZGVvbl9kcnYuaCAtLSBQcml2YXRlIGhlYWRlciBmb3IgcmFkZW9uIGRyaXZlciAtKi0gbGludXgtYyAtKi0KKyAqCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKyNpZm5kZWYgX19SQURFT05fRFJWX0hfXworI2RlZmluZSBfX1JBREVPTl9EUlZfSF9fCisKKy8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKKyAqLworCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJHYXJldGggSHVnaGVzLCBLZWl0aCBXaGl0d2VsbCwgb3RoZXJzLiIKKworI2RlZmluZSBEUklWRVJfTkFNRQkJInJhZGVvbiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MJCSJBVEkgUmFkZW9uIgorI2RlZmluZSBEUklWRVJfREFURQkJIjIwMDgwNTI4IgorCisvKiBJbnRlcmZhY2UgaGlzdG9yeToKKyAqCisgKiAxLjEgLSA/PworICogMS4yIC0gQWRkIHZlcnRleDIgaW9jdGwgKGtlaXRoKQorICogICAgIC0gQWRkIHN0ZW5jaWwgY2FwYWJpbGl0eSB0byBjbGVhciBpb2N0bCAoZ2FyZXRoLCBrZWl0aCkKKyAqICAgICAtIEluY3JlYXNlIE1BWF9URVhUVVJFX0xFVkVMUyAoYnJpYW4pCisgKiAxLjMgLSBBZGQgY21kYnVmIGlvY3RsIChrZWl0aCkKKyAqICAgICAtIEFkZCBzdXBwb3J0IGZvciBuZXcgcmFkZW9uIHBhY2tldHMgKGtlaXRoKQorICogICAgIC0gQWRkIGdldHBhcmFtIGlvY3RsIChrZWl0aCkKKyAqICAgICAtIEFkZCBmbGlwLWJ1ZmZlcnMgaW9jdGwsIGRlcHJlY2F0ZSBmdWxsc2NyZWVuIGZvbyAoa2VpdGgpLgorICogMS40IC0gQWRkIHNjcmF0Y2ggcmVnaXN0ZXJzIHRvIGdldF9wYXJhbSBpb2N0bC4KKyAqIDEuNSAtIEFkZCByMjAwIHBhY2tldHMgdG8gY21kYnVmIGlvY3RsCisgKiAgICAgLSBBZGQgcjIwMCBmdW5jdGlvbiB0byBpbml0IGlvY3RsCisgKiAgICAgLSBBZGQgJ3NjYWxhcjInIGluc3RydWN0aW9uIHRvIGNtZGJ1ZgorICogMS42IC0gQWRkIHN0YXRpYyBHQVJUIG1lbW9yeSBtYW5hZ2VyCisgKiAgICAgICBBZGQgaXJxIGhhbmRsZXIgKHdvbid0IGJlIHR1cm5lZCBvbiB1bmxlc3MgWCBzZXJ2ZXIga25vd3MgdG8pCisgKiAgICAgICBBZGQgaXJxIGlvY3RscyBhbmQgaXJxX2FjdGl2ZSBnZXRwYXJhbS4KKyAqICAgICAgIEFkZCB3YWl0IGNvbW1hbmQgZm9yIGNtZGJ1ZiBpb2N0bAorICogICAgICAgQWRkIEdBUlQgb2Zmc2V0IHF1ZXJ5IGZvciBnZXRwYXJhbQorICogMS43IC0gQWRkIHN1cHBvcnQgZm9yIGN1YmUgbWFwIHJlZ2lzdGVyczogUjIwMF9QUF9DVUJJQ19GQUNFU19bMC4uNV0KKyAqICAgICAgIGFuZCBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV9bMC4uNV0uCisgKiAgICAgICBBZGRlZCBwYWNrZXRzIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU19bMC4uNV0gYW5kCisgKiAgICAgICBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19bMC4uNV0uICAoYnJpYW4pCisgKiAxLjggLSBSZW1vdmUgbmVlZCB0byBjYWxsIGNsZWFudXAgaW9jdGxzIG9uIGxhc3QgY2xpZW50IGV4aXQgKGtlaXRoKQorICogICAgICAgQWRkICdHRVQnIHF1ZXJpZXMgZm9yIHN0YXJ0aW5nIGFkZGl0aW9uYWwgY2xpZW50cyBvbiBkaWZmZXJlbnQgVlQncy4KKyAqIDEuOSAtIEFkZCBEUk1fSU9DVExfUkFERU9OX0NQX1JFU1VNRSBpb2N0bC4KKyAqICAgICAgIEFkZCB0ZXh0dXJlIHJlY3RhbmdsZSBzdXBwb3J0IGZvciByMTAwLgorICogMS4xMC0gQWRkIFNFVFBBUkFNIGlvY3RsOyBmaXJzdCBwYXJhbWV0ZXIgdG8gc2V0IGlzIEZCX0xPQ0FUSU9OLCB3aGljaAorICogICAgICAgY2xpZW50cyB1c2UgdG8gdGVsbCB0aGUgRFJNIHdoZXJlIHRoZXkgdGhpbmsgdGhlIGZyYW1lYnVmZmVyIGlzCisgKiAgICAgICBsb2NhdGVkIGluIHRoZSBjYXJkJ3MgYWRkcmVzcyBzcGFjZQorICogMS4xMS0gQWRkIHBhY2tldCBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SIHRvIHN1cHBvcnQgR0xfRVhUX2JsZW5kX2NvbG9yCisgKiAgICAgICBhbmQgR0xfRVhUX2JsZW5kX1tmdW5jfGVxdWF0aW9uXV9zZXBhcmF0ZSBvbiByMjAwCisgKiAxLjEyLSBBZGQgUjMwMCBDUCBtaWNyb2NvZGUgc3VwcG9ydCAtIHRoaXMganVzdCBsb2FkcyB0aGUgQ1Agb24gcjMwMAorICogICAgICAgKE5vIDNEIHN1cHBvcnQgeWV0IC0ganVzdCBtaWNyb2NvZGUgbG9hZGluZykuCisgKiAxLjEzLSBBZGQgcGFja2V0IFIyMDBfRU1JVF9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgZm9yIEFSQl9wb2ludF9wYXJhbWV0ZXJzCisgKiAgICAgLSBBZGQgaHlwZXJ6IHN1cHBvcnQsIGFkZCBoeXBlcnogZmxhZ3MgdG8gY2xlYXIgaW9jdGwuCisgKiAxLjE0LSBBZGQgc3VwcG9ydCBmb3IgY29sb3IgdGlsaW5nCisgKiAgICAgLSBBZGQgUjEwMC9SMjAwIHN1cmZhY2UgYWxsb2NhdGlvbi9mcmVlIHN1cHBvcnQKKyAqIDEuMTUtIEFkZCBzdXBwb3J0IGZvciB0ZXh0dXJlIG1pY3JvIHRpbGluZworICogICAgIC0gQWRkIHN1cHBvcnQgZm9yIHIxMDAgY3ViZSBtYXBzCisgKiAxLjE2LSBBZGQgUjIwMF9FTUlUX1BQX1RSSV9QRVJGX0NOVEwgcGFja2V0IHRvIHN1cHBvcnQgYnJpbGluZWFyCisgKiAgICAgICB0ZXh0dXJlIGZpbHRlcmluZyBvbiByMjAwCisgKiAxLjE3LSBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBSMzAwICgzRCkuCisgKiAxLjE4LSBBZGQgc3VwcG9ydCBmb3IgR0xfQVRJX2ZyYWdtZW50X3NoYWRlciwgbmV3IHBhY2tldHMKKyAqICAgICAgIFIyMDBfRU1JVF9QUF9BRlNfMC8xLCBSMjAwX0VNSVRfUFBfVFhDVExBTExfMC01IChyZXBsYWNlcworICogICAgICAgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzAtNSwgMiBtb3JlIHJlZ3MpIGFuZCBSMjAwX0VNSVRfQVRGX1RGQUNUT1IKKyAqICAgICAgIChyZXBsYWNlcyBSMjAwX0VNSVRfVEZBQ1RPUl8wICg4IGNvbnN0cyBpbnN0ZWFkIG9mIDYpCisgKiAxLjE5LSBBZGQgc3VwcG9ydCBmb3IgZ2FydCB0YWJsZSBpbiBGQiBtZW1vcnkgYW5kIFBDSUUgcjMwMAorICogMS4yMC0gQWRkIHN1cHBvcnQgZm9yIHIzMDAgdGV4cmVjdAorICogMS4yMS0gQWRkIHN1cHBvcnQgZm9yIGNhcmQgdHlwZSBnZXRwYXJhbQorICogMS4yMi0gQWRkIHN1cHBvcnQgZm9yIHRleHR1cmUgY2FjaGUgZmx1c2hlcyAoUjMwMF9UWF9DTlRMKQorICogMS4yMy0gQWRkIG5ldyByYWRlb24gbWVtb3J5IG1hcCB3b3JrIGZyb20gYmVuaAorICogMS4yNC0gQWRkIGdlbmVyYWwtcHVycG9zZSBwYWNrZXQgZm9yIG1hbmlwdWxhdGluZyBzY3JhdGNoIHJlZ2lzdGVycyAocjMwMCkKKyAqIDEuMjUtIEFkZCBzdXBwb3J0IGZvciByMjAwIHZlcnRleCBwcm9ncmFtcyAoUjIwMF9FTUlUX1ZBUF9QVlNfQ05UTCwKKyAqICAgICAgIG5ldyBwYWNrZXQgdHlwZSkKKyAqIDEuMjYtIEFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBzaXplIFBDSShFKSBnYXJ0IGFwZXJ0dXJlCisgKiAxLjI3LSBBZGQgc3VwcG9ydCBmb3IgSUdQIEdBUlQKKyAqIDEuMjgtIEFkZCBzdXBwb3J0IGZvciBWQkwgb24gQ1JUQzIKKyAqIDEuMjktIFI1MDAgM0QgY21kIGJ1ZmZlciBzdXBwb3J0CisgKi8KKyNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCisjZGVmaW5lIERSSVZFUl9NSU5PUgkJMjkKKyNkZWZpbmUgRFJJVkVSX1BBVENITEVWRUwJMAorCisvKgorICogUmFkZW9uIGNoaXAgZmFtaWxpZXMKKyAqLworZW51bSByYWRlb25fZmFtaWx5IHsKKwlDSElQX1IxMDAsCisJQ0hJUF9SVjEwMCwKKwlDSElQX1JTMTAwLAorCUNISVBfUlYyMDAsCisJQ0hJUF9SUzIwMCwKKwlDSElQX1IyMDAsCisJQ0hJUF9SVjI1MCwKKwlDSElQX1JTMzAwLAorCUNISVBfUlYyODAsCisJQ0hJUF9SMzAwLAorCUNISVBfUjM1MCwKKwlDSElQX1JWMzUwLAorCUNISVBfUlYzODAsCisJQ0hJUF9SNDIwLAorCUNISVBfUlY0MTAsCisJQ0hJUF9SUzQ4MCwKKwlDSElQX1JTNjkwLAorCUNISVBfUlY1MTUsCisJQ0hJUF9SNTIwLAorCUNISVBfUlY1MzAsCisJQ0hJUF9SVjU2MCwKKwlDSElQX1JWNTcwLAorCUNISVBfUjU4MCwKKwlDSElQX0xBU1QsCit9OworCitlbnVtIHJhZGVvbl9jcF9taWNyb2NvZGVfdmVyc2lvbiB7CisJVUNPREVfUjEwMCwKKwlVQ09ERV9SMjAwLAorCVVDT0RFX1IzMDAsCit9OworCisvKgorICogQ2hpcCBmbGFncworICovCitlbnVtIHJhZGVvbl9jaGlwX2ZsYWdzIHsKKwlSQURFT05fRkFNSUxZX01BU0sgPSAweDAwMDBmZmZmVUwsCisJUkFERU9OX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCisJUkFERU9OX0lTX01PQklMSVRZID0gMHgwMDAxMDAwMFVMLAorCVJBREVPTl9JU19JR1AgPSAweDAwMDIwMDAwVUwsCisJUkFERU9OX1NJTkdMRV9DUlRDID0gMHgwMDA0MDAwMFVMLAorCVJBREVPTl9JU19BR1AgPSAweDAwMDgwMDAwVUwsCisJUkFERU9OX0hBU19ISUVSWiA9IDB4MDAxMDAwMDBVTCwKKwlSQURFT05fSVNfUENJRSA9IDB4MDAyMDAwMDBVTCwKKwlSQURFT05fTkVXX01FTU1BUCA9IDB4MDA0MDAwMDBVTCwKKwlSQURFT05fSVNfUENJID0gMHgwMDgwMDAwMFVMLAorCVJBREVPTl9JU19JR1BHQVJUID0gMHgwMTAwMDAwMFVMLAorfTsKKworI2RlZmluZSBHRVRfUklOR19IRUFEKGRldl9wcml2KQkoZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA/IFwKKyAgICAgICAgRFJNX1JFQUQzMiggIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCApIDogUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpKQorI2RlZmluZSBTRVRfUklOR19IRUFEKGRldl9wcml2LHZhbCkJRFJNX1dSSVRFMzIoIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCwgKHZhbCkgKQorCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2ZyZWVsaXN0IHsKKwl1bnNpZ25lZCBpbnQgYWdlOworCXN0cnVjdCBkcm1fYnVmICpidWY7CisJc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKm5leHQ7CisJc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKnByZXY7Cit9IGRybV9yYWRlb25fZnJlZWxpc3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9yaW5nX2J1ZmZlciB7CisJdTMyICpzdGFydDsKKwl1MzIgKmVuZDsKKwlpbnQgc2l6ZTsKKwlpbnQgc2l6ZV9sMnF3OworCisJaW50IHJwdHJfdXBkYXRlOyAvKiBEb3VibGUgV29yZHMgKi8KKwlpbnQgcnB0cl91cGRhdGVfbDJxdzsgLyogbG9nMiBRdWFkIFdvcmRzICovCisKKwlpbnQgZmV0Y2hfc2l6ZTsgLyogRG91YmxlIFdvcmRzICovCisJaW50IGZldGNoX3NpemVfbDJvdzsgLyogbG9nMiBPY3QgV29yZHMgKi8KKworCXUzMiB0YWlsOworCXUzMiB0YWlsX21hc2s7CisJaW50IHNwYWNlOworCisJaW50IGhpZ2hfbWFyazsKK30gZHJtX3JhZGVvbl9yaW5nX2J1ZmZlcl90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgeworCXUzMiByYjNkX2NudGw7CisJdTMyIHJiM2RfenN0ZW5jaWxjbnRsOworCXUzMiBzZV9jbnRsOworfSBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3Q7CisKK3N0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyB7CisJaW50NjRfdCByYWRlb25fZmJfZGVsdGE7Cit9OworCitzdHJ1Y3QgbWVtX2Jsb2NrIHsKKwlzdHJ1Y3QgbWVtX2Jsb2NrICpuZXh0OworCXN0cnVjdCBtZW1fYmxvY2sgKnByZXY7CisJaW50IHN0YXJ0OworCWludCBzaXplOworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OyAvKiBOVUxMOiBmcmVlLCAtMTogaGVhcCwgb3RoZXI6IHJlYWwgZmlsZXMgKi8KK307CisKK3N0cnVjdCByYWRlb25fc3VyZmFjZSB7CisJaW50IHJlZmNvdW50OworCXUzMiBsb3dlcjsKKwl1MzIgdXBwZXI7CisJdTMyIGZsYWdzOworfTsKKworc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgeworCWludCBzdXJmYWNlX2luZGV4OworCXUzMiBsb3dlcjsKKwl1MzIgdXBwZXI7CisJdTMyIGZsYWdzOworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9wcml2YXRlIHsKKwlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgcmluZzsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXY7CisKKwl1MzIgZmJfbG9jYXRpb247CisJdTMyIGZiX3NpemU7CisJaW50IG5ld19tZW1tYXA7CisKKwlpbnQgZ2FydF9zaXplOworCXUzMiBnYXJ0X3ZtX3N0YXJ0OworCXVuc2lnbmVkIGxvbmcgZ2FydF9idWZmZXJzX29mZnNldDsKKworCWludCBjcF9tb2RlOworCWludCBjcF9ydW5uaW5nOworCisJZHJtX3JhZGVvbl9mcmVlbGlzdF90ICpoZWFkOworCWRybV9yYWRlb25fZnJlZWxpc3RfdCAqdGFpbDsKKwlpbnQgbGFzdF9idWY7CisJdm9sYXRpbGUgdTMyICpzY3JhdGNoOworCWludCB3cml0ZWJhY2tfd29ya3M7CisKKwlpbnQgdXNlY190aW1lb3V0OworCisJaW50IG1pY3JvY29kZV92ZXJzaW9uOworCisJc3RydWN0IHsKKwkJdTMyIGJveGVzOworCQlpbnQgZnJlZWxpc3RfdGltZW91dHM7CisJCWludCBmcmVlbGlzdF9sb29wczsKKwkJaW50IHJlcXVlc3RlZF9idWZzOworCQlpbnQgbGFzdF9mcmFtZV9yZWFkczsKKwkJaW50IGxhc3RfY2xlYXJfcmVhZHM7CisJCWludCBjbGVhcnM7CisJCWludCB0ZXh0dXJlX3VwbG9hZHM7CisJfSBzdGF0czsKKworCWludCBkb19ib3hlczsKKwlpbnQgcGFnZV9mbGlwcGluZzsKKworCXUzMiBjb2xvcl9mbXQ7CisJdW5zaWduZWQgaW50IGZyb250X29mZnNldDsKKwl1bnNpZ25lZCBpbnQgZnJvbnRfcGl0Y2g7CisJdW5zaWduZWQgaW50IGJhY2tfb2Zmc2V0OworCXVuc2lnbmVkIGludCBiYWNrX3BpdGNoOworCisJdTMyIGRlcHRoX2ZtdDsKKwl1bnNpZ25lZCBpbnQgZGVwdGhfb2Zmc2V0OworCXVuc2lnbmVkIGludCBkZXB0aF9waXRjaDsKKworCXUzMiBmcm9udF9waXRjaF9vZmZzZXQ7CisJdTMyIGJhY2tfcGl0Y2hfb2Zmc2V0OworCXUzMiBkZXB0aF9waXRjaF9vZmZzZXQ7CisKKwlkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgZGVwdGhfY2xlYXI7CisKKwl1bnNpZ25lZCBsb25nIHJpbmdfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgcmluZ19ycHRyX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIGJ1ZmZlcnNfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgZ2FydF90ZXh0dXJlc19vZmZzZXQ7CisKKwlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOworCWRybV9sb2NhbF9tYXBfdCAqbW1pbzsKKwlkcm1fbG9jYWxfbWFwX3QgKmNwX3Jpbmc7CisJZHJtX2xvY2FsX21hcF90ICpyaW5nX3JwdHI7CisJZHJtX2xvY2FsX21hcF90ICpnYXJ0X3RleHR1cmVzOworCisJc3RydWN0IG1lbV9ibG9jayAqZ2FydF9oZWFwOworCXN0cnVjdCBtZW1fYmxvY2sgKmZiX2hlYXA7CisKKwkvKiBTVyBpbnRlcnJ1cHQgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBzd2lfcXVldWU7CisJYXRvbWljX3Qgc3dpX2VtaXR0ZWQ7CisJaW50IHZibGFua19jcnRjOworCXVpbnQzMl90IGlycV9lbmFibGVfcmVnOworCWludCBpcnFfZW5hYmxlZDsKKwl1aW50MzJfdCByNTAwX2Rpc3BfaXJxX3JlZzsKKworCXN0cnVjdCByYWRlb25fc3VyZmFjZSBzdXJmYWNlc1tSQURFT05fTUFYX1NVUkZBQ0VTXTsKKwlzdHJ1Y3QgcmFkZW9uX3ZpcnRfc3VyZmFjZSB2aXJ0X3N1cmZhY2VzWzIgKiBSQURFT05fTUFYX1NVUkZBQ0VTXTsKKworCXVuc2lnbmVkIGxvbmcgcGNpZ2FydF9vZmZzZXQ7CisJdW5zaWduZWQgaW50IHBjaWdhcnRfb2Zmc2V0X3NldDsKKwlzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gZ2FydF9pbmZvOworCisJdTMyIHNjcmF0Y2hfYWdlc1s1XTsKKworCS8qIHN0YXJ0aW5nIGZyb20gaGVyZSBvbiwgZGF0YSBpcyBwcmVzZXJ2ZWQgYWNjcm9zcyBhbiBvcGVuICovCisJdWludDMyX3QgZmxhZ3M7CQkvKiBzZWUgcmFkZW9uX2NoaXBfZmxhZ3MgKi8KKwl1bnNpZ25lZCBsb25nIGZiX2FwZXJfb2Zmc2V0OworCisJaW50IG51bV9nYl9waXBlczsKK30gZHJtX3JhZGVvbl9wcml2YXRlX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fYnVmX3ByaXYgeworCXUzMiBhZ2U7Cit9IGRybV9yYWRlb25fYnVmX3ByaXZfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9rY21kX2J1ZmZlciB7CisJaW50IGJ1ZnN6OworCWNoYXIgKmJ1ZjsKKwlpbnQgbmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzOworfSBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3Q7CisKK2V4dGVybiBpbnQgcmFkZW9uX25vX3diOworZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyByYWRlb25faW9jdGxzW107CitleHRlcm4gaW50IHJhZGVvbl9tYXhfaW9jdGw7CisKKy8qIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGhhcmR3YXJlIGFkZHJlc3MgaXMgaW5zaWRlIHRoZSBmcmFtZWJ1ZmZlciBvciB0aGUKKyAqIEdBUlQgYXJlYS4KKyAqLworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19vZmZzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQkgIHU2NCBvZmYpCit7CisJdTMyIGZiX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uOworCXUzMiBmYl9lbmQgPSBmYl9zdGFydCArIGRldl9wcml2LT5mYl9zaXplIC0gMTsKKwl1MzIgZ2FydF9zdGFydCA9IGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0OworCXUzMiBnYXJ0X2VuZCA9IGdhcnRfc3RhcnQgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMTsKKworCXJldHVybiAoKG9mZiA+PSBmYl9zdGFydCAmJiBvZmYgPD0gZmJfZW5kKSB8fAorCQkob2ZmID49IGdhcnRfc3RhcnQgJiYgb2ZmIDw9IGdhcnRfZW5kKSk7Cit9CisKKwkJCQkvKiByYWRlb25fY3AuYyAqLworZXh0ZXJuIGludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCByYWRlb25fY3BfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHUzMiByYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpOworCitleHRlcm4gdm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHN0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKKworZXh0ZXJuIGludCByYWRlb25fd2FpdF9yaW5nKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBuKTsKKworZXh0ZXJuIGludCByYWRlb25fZG9fY3BfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KTsKKworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ByZWluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncyk7CitleHRlcm4gaW50IHJhZGVvbl9wcmVzZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCByYWRlb25fbWVtX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX21lbV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX21lbV9pbml0X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX21lbV90YWtlZG93bihzdHJ1Y3QgbWVtX2Jsb2NrICoqaGVhcCk7CitleHRlcm4gdm9pZCByYWRlb25fbWVtX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgICAgc3RydWN0IG1lbV9ibG9jayAqaGVhcCk7CisKKwkJCQkvKiByYWRlb25faXJxLmMgKi8KK2V4dGVybiBpbnQgcmFkZW9uX2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIHZvaWQgcmFkZW9uX2RvX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJCSAgICAgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJCSAgICAgIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworZXh0ZXJuIGlycXJldHVybl90IHJhZGVvbl9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKK2V4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKK2V4dGVybiB2b2lkIHJhZGVvbl9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludDY0X3QgdmFsdWUpOworCitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKK2V4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfZmlyc3RvcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHApOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHBfcHJpdik7CitleHRlcm4gbG9uZyByYWRlb25fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJCXVuc2lnbmVkIGxvbmcgYXJnKTsKKworLyogcjMwMF9jbWRidWYuYyAqLworZXh0ZXJuIHZvaWQgcjMwMF9pbml0X3JlZ19mbGFncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCByMzAwX2RvX2NwX2NtZGJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqIGNtZGJ1Zik7CisKKy8qIEZsYWdzIGZvciBzdGF0cy5ib3hlcworICovCisjZGVmaW5lIFJBREVPTl9CT1hfRE1BX0lETEUgICAgICAweDEKKyNkZWZpbmUgUkFERU9OX0JPWF9SSU5HX0ZVTEwgICAgIDB4MgorI2RlZmluZSBSQURFT05fQk9YX0ZMSVAgICAgICAgICAgMHg0CisjZGVmaW5lIFJBREVPTl9CT1hfV0FJVF9JRExFICAgICAweDgKKyNkZWZpbmUgUkFERU9OX0JPWF9URVhUVVJFX0xPQUQgIDB4MTAKKworLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMsIHJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgYW5kIGRybUFkZE1hcCBjb25zdGFudHMKKyAqIGZvciBSYWRlb24ga2VybmVsIGRyaXZlci4KKyAqLworCisjZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORAkJMHgwZjYwCisjZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORF9QQ0lfQ09ORklHICAgMHgwMDYwCS8qIG9mZnNldCBpbiBQQ0kgY29uZmlnICovCisjCWRlZmluZSBSQURFT05fQUdQX0VOQUJMRQkoMTw8OCkKKyNkZWZpbmUgUkFERU9OX0FVWF9TQ0lTU09SX0NOVEwJCTB4MjZmMAorIwlkZWZpbmUgUkFERU9OX0VYQ0xVU0lWRV9TQ0lTU09SXzAJKDEgPDwgMjQpCisjCWRlZmluZSBSQURFT05fRVhDTFVTSVZFX1NDSVNTT1JfMQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9FWENMVVNJVkVfU0NJU1NPUl8yCSgxIDw8IDI2KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMF9FTkFCTEUJCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMV9FTkFCTEUJCSgxIDw8IDI5KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMl9FTkFCTEUJCSgxIDw8IDMwKQorCisjZGVmaW5lIFJBREVPTl9CVVNfQ05UTAkJCTB4MDAzMAorIwlkZWZpbmUgUkFERU9OX0JVU19NQVNURVJfRElTCQkoMSA8PCA2KQorCisjZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0RBVEEJCTB4MDAwYworIwlkZWZpbmUgUkFERU9OX1BMTF9XUl9FTgkJCSgxIDw8IDcpCisjZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0lOREVYCQkweDAwMDgKKyNkZWZpbmUgUkFERU9OX0NPTkZJR19BUEVSX1NJWkUJCTB4MDEwOAorI2RlZmluZSBSQURFT05fQ09ORklHX01FTVNJWkUJCTB4MDBmOAorI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVQJCTB4MDIyNAorI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVRfQ05UTAkJMHgwMjI4CisjCWRlZmluZSBSQURFT05fQ1JUQ19USUxFX0VOCQkoMSA8PCAxNSkKKyMJZGVmaW5lIFJBREVPTl9DUlRDX09GRlNFVF9GTElQX0NOVEwJKDEgPDwgMTYpCisjZGVmaW5lIFJBREVPTl9DUlRDMl9PRkZTRVQJCTB4MDMyNAorI2RlZmluZSBSQURFT05fQ1JUQzJfT0ZGU0VUX0NOVEwJMHgwMzI4CisKKyNkZWZpbmUgUkFERU9OX1BDSUVfSU5ERVggICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgUkFERU9OX1BDSUVfREFUQSAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMCTB4MTAKKyMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4JCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1VOTUFQUEVEX0FDQ0VTU19QQVNTX1RIUlUgKDAgPDwgMSkKKyMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfVU5NQVBQRURfQUNDRVNTX0NMQU1QX0xPICAoMSA8PCAxKQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9VTk1BUFBFRF9BQ0NFU1NfRElTQ0FSRCAgICgzIDw8IDEpCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX01PREVfMzJfMTI4X0NBQ0hFCSgwIDw8IDMpCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX01PREVfOF80XzEyOF9DQUNIRQkoMSA8PCAzKQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DSEtfUldfVkFMSURfRU4gICAgICAoMSA8PCA1KQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9JTlZBTElEQVRFX1RMQgkoMSA8PCA4KQorI2RlZmluZSBSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfTE8gMHgxMQorI2RlZmluZSBSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfSEkgMHgxMgorI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0JBU0UJMHgxMworI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1NUQVJUX0xPCTB4MTQKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9TVEFSVF9ISQkweDE1CisjZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0xPCTB4MTYKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9FTkRfSEkJMHgxNworCisjZGVmaW5lIFJTNDgwX05CX01DX0lOREVYICAgICAgICAgICAgICAgMHgxNjgKKyMJZGVmaW5lIFJTNDgwX05CX01DX0lORF9XUl9FTgkoMSA8PCA4KQorI2RlZmluZSBSUzQ4MF9OQl9NQ19EQVRBICAgICAgICAgICAgICAgIDB4MTZjCisKKyNkZWZpbmUgUlM2OTBfTUNfSU5ERVggICAgICAgICAgICAgICAgICAweDc4CisjICAgZGVmaW5lIFJTNjkwX01DX0lOREVYX01BU0sgICAgICAgICAgMHgxZmYKKyMgICBkZWZpbmUgUlM2OTBfTUNfSU5ERVhfV1JfRU4gICAgICAgICAoMSA8PCA5KQorIyAgIGRlZmluZSBSUzY5MF9NQ19JTkRFWF9XUl9BQ0sgICAgICAgIDB4N2YKKyNkZWZpbmUgUlM2OTBfTUNfREFUQSAgICAgICAgICAgICAgICAgICAweDdjCisKKy8qIE1DIGluZGlyZWN0IHJlZ2lzdGVycyAqLworI2RlZmluZSBSUzQ4MF9NQ19NSVNDX0NOVEwgICAgICAgICAgICAgIDB4MTgKKyMJZGVmaW5lIFJTNDgwX0RJU0FCTEVfR1RXCSgxIDw8IDEpCisvKiBzd2l0Y2ggYmV0d2VlbiBNQ0lORCBHQVJUIGFuZCBNTSBHQVJUIHJlZ2lzdGVycy4gMCA9IG1tZ2FydCwgMSA9IG1jaW5kIGdhcnQgKi8KKyMJZGVmaW5lIFJTNDgwX0dBUlRfSU5ERVhfUkVHX0VOCSgxIDw8IDEyKQorIwlkZWZpbmUgUlM2OTBfQkxPQ0tfR0ZYX0QzX0VOCSgxIDw8IDE0KQorI2RlZmluZSBSUzQ4MF9LOF9GQl9MT0NBVElPTiAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUlM0ODBfR0FSVF9GRUFUVVJFX0lEICAgICAgICAgICAweDJiCisjCWRlZmluZSBSUzQ4MF9IQU5HX0VOCSAgICAgICAgKDEgPDwgMTEpCisjCWRlZmluZSBSUzQ4MF9UTEJfRU5BQkxFCSAgICAgICAgKDEgPDwgMTgpCisjCWRlZmluZSBSUzQ4MF9QMlBfRU5BQkxFCSAgICAgICAgKDEgPDwgMTkpCisjCWRlZmluZSBSUzQ4MF9HVFdfTEFDX0VOCSAgICAgICAgKDEgPDwgMjUpCisjCWRlZmluZSBSUzQ4MF8yTEVWRUxfR0FSVAkoMCA8PCAzMCkKKyMJZGVmaW5lIFJTNDgwXzFMRVZFTF9HQVJUCSgxIDw8IDMwKQorIwlkZWZpbmUgUlM0ODBfUERDX0VOCSAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIFJTNDgwX0dBUlRfQkFTRSAgICAgICAgICAgICAgICAgMHgyYworI2RlZmluZSBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMICAgICAgICAgIDB4MmUKKyMJZGVmaW5lIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSAoMSA8PCAwKSAvKiB3YWl0IGZvciBpdCB0byBjbGVhciAqLworI2RlZmluZSBSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFICAgIDB4MzgKKyMJZGVmaW5lIFJTNDgwX0dBUlRfRU4JICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUlM0ODBfVkFfU0laRV8zMk1CCSgwIDw8IDEpCisjCWRlZmluZSBSUzQ4MF9WQV9TSVpFXzY0TUIJKDEgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMTI4TUIJKDIgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMjU2TUIJKDMgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfNTEyTUIJKDQgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMUdCCSg1IDw8IDEpCisjCWRlZmluZSBSUzQ4MF9WQV9TSVpFXzJHQgkoNiA8PCAxKQorI2RlZmluZSBSUzQ4MF9BR1BfTU9ERV9DTlRMICAgICAgICAgICAgIDB4MzkKKyMJZGVmaW5lIFJTNDgwX1BPU1RfR0FSVF9RX1NJWkUJKDEgPDwgMTgpCisjCWRlZmluZSBSUzQ4MF9OT05HQVJUX1NOT09QCSgxIDw8IDE5KQorIwlkZWZpbmUgUlM0ODBfQUdQX1JEX0JVRl9TSVpFCSgxIDw8IDIwKQorIwlkZWZpbmUgUlM0ODBfUkVRX1RZUEVfU05PT1BfU0hJRlQgMjIKKyMJZGVmaW5lIFJTNDgwX1JFUV9UWVBFX1NOT09QX01BU0sgIDB4MworIwlkZWZpbmUgUlM0ODBfUkVRX1RZUEVfU05PT1BfRElTCSgxIDw8IDI0KQorI2RlZmluZSBSUzQ4MF9NQ19NSVNDX1VNQV9DTlRMICAgICAgICAgIDB4NWYKKyNkZWZpbmUgUlM0ODBfTUNfTUNMS19DTlRMICAgICAgICAgICAgICAweDdhCisjZGVmaW5lIFJTNDgwX01DX1VNQV9EVUFMQ0hfQ05UTCAgICAgICAgMHg4NgorCisjZGVmaW5lIFJTNjkwX01DX0ZCX0xPQ0FUSU9OICAgICAgICAgICAgMHgxMDAKKyNkZWZpbmUgUlM2OTBfTUNfQUdQX0xPQ0FUSU9OICAgICAgICAgICAweDEwMQorI2RlZmluZSBSUzY5MF9NQ19BR1BfQkFTRSAgICAgICAgICAgICAgIDB4MTAyCisjZGVmaW5lIFJTNjkwX01DX0FHUF9CQVNFXzIgICAgICAgICAgICAgMHgxMDMKKworI2RlZmluZSBSNTIwX01DX0lORF9JTkRFWCAweDcwCisjZGVmaW5lIFI1MjBfTUNfSU5EX1dSX0VOICgxIDw8IDI0KQorI2RlZmluZSBSNTIwX01DX0lORF9EQVRBICAweDc0CisKKyNkZWZpbmUgUlY1MTVfTUNfRkJfTE9DQVRJT04gMHgwMQorI2RlZmluZSBSVjUxNV9NQ19BR1BfTE9DQVRJT04gMHgwMgorI2RlZmluZSBSVjUxNV9NQ19BR1BfQkFTRSAgICAgMHgwMworI2RlZmluZSBSVjUxNV9NQ19BR1BfQkFTRV8yICAgMHgwNAorCisjZGVmaW5lIFI1MjBfTUNfRkJfTE9DQVRJT04gMHgwNAorI2RlZmluZSBSNTIwX01DX0FHUF9MT0NBVElPTiAweDA1CisjZGVmaW5lIFI1MjBfTUNfQUdQX0JBU0UgICAgIDB4MDYKKyNkZWZpbmUgUjUyMF9NQ19BR1BfQkFTRV8yICAgMHgwNworCisjZGVmaW5lIFJBREVPTl9NUFBfVEJfQ09ORklHCQkweDAxYzAKKyNkZWZpbmUgUkFERU9OX01FTV9DTlRMCQkJMHgwMTQwCisjZGVmaW5lIFJBREVPTl9NRU1fU0RSQU1fTU9ERV9SRUcJMHgwMTU4CisjZGVmaW5lIFJBREVPTl9BR1BfQkFTRV8yCQkweDAxNWMgLyogcjIwMCsgb25seSAqLworI2RlZmluZSBSUzQ4MF9BR1BfQkFTRV8yCQkweDAxNjQKKyNkZWZpbmUgUkFERU9OX0FHUF9CQVNFCQkJMHgwMTcwCisKKy8qIHBpcGUgY29uZmlnIHJlZ3MgKi8KKyNkZWZpbmUgUjQwMF9HQl9QSVBFX1NFTEVDVCAgICAgICAgICAgICAweDQwMmMKKyNkZWZpbmUgUjUwMF9EWU5fU0NMS19QV01FTV9QSVBFICAgICAgICAweDAwMGQgLyogUExMICovCisjZGVmaW5lIFI1MDBfU1VfUkVHX0RFU1QgICAgICAgICAgICAgICAgMHg0MmM4CisjZGVmaW5lIFIzMDBfR0JfVElMRV9DT05GSUcgICAgICAgICAgICAgMHg0MDE4CisjICAgICAgIGRlZmluZSBSMzAwX0VOQUJMRV9USUxJTkcgICAgICAgKDEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfUElQRV9DT1VOVF9SVjM1MCAgICAoMCA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9QSVBFX0NPVU5UX1IzMDAgICAgICgzIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1BJUEVfQ09VTlRfUjQyMF8zUCAgKDYgPDwgMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfUElQRV9DT1VOVF9SNDIwICAgICAoNyA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9USUxFX1NJWkVfOCAgICAgICAgICgwIDw8IDQpCisjICAgICAgIGRlZmluZSBSMzAwX1RJTEVfU0laRV8xNiAgICAgICAgKDEgPDwgNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVElMRV9TSVpFXzMyICAgICAgICAoMiA8PCA0KQorIyAgICAgICBkZWZpbmUgUjMwMF9TVUJQSVhFTF8xXzEyICAgICAgICgwIDw8IDE2KQorIyAgICAgICBkZWZpbmUgUjMwMF9TVUJQSVhFTF8xXzE2ICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBSMzAwX0RTVF9QSVBFX0NPTkZJRyAgICAgICAgICAgIDB4MTcwYworIyAgICAgICBkZWZpbmUgUjMwMF9QSVBFX0FVVE9fQ09ORklHICAgICgxIDw8IDMxKQorI2RlZmluZSBSMzAwX1JCMkRfRFNUQ0FDSEVfTU9ERSAgICAgICAgIDB4MzQyOAorIyAgICAgICBkZWZpbmUgUjMwMF9EQ19BVVRPRkxVU0hfRU5BQkxFICgxIDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0RDX0RDX0RJU0FCTEVfSUdOT1JFX1BFICgxIDw8IDE3KQorCisjZGVmaW5lIFJBREVPTl9SQjNEX0NPTE9ST0ZGU0VUCQkweDFjNDAKKyNkZWZpbmUgUkFERU9OX1JCM0RfQ09MT1JQSVRDSAkJMHgxYzQ4CisKKyNkZWZpbmUJUkFERU9OX1NSQ19YX1kJCQkweDE1OTAKKworI2RlZmluZSBSQURFT05fRFBfR1VJX01BU1RFUl9DTlRMCTB4MTQ2YworIwlkZWZpbmUgUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMCSgxIDw8IDEpCisjCWRlZmluZSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SCSgxMyA8PCA0KQorIwlkZWZpbmUgUkFERU9OX0dNQ19CUlVTSF9OT05FCQkoMTUgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUXzE2QlBQCQkoNCA8PCA4KQorIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfMjRCUFAJCSg1IDw8IDgpCisjCWRlZmluZSBSQURFT05fR01DX0RTVF8zMkJQUAkJKDYgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX0RBVEFUWVBFX1NISUZUCTgKKyMJZGVmaW5lIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SCSgzIDw8IDEyKQorIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfTUVNT1JZCSgyIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfSE9TVF9EQVRBCSgzIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0dNQ19XUl9NU0tfRElTCQkoMSA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9ST1AzX1MJCQkweDAwY2MwMDAwCisjCWRlZmluZSBSQURFT05fUk9QM19QCQkJMHgwMGYwMDAwMAorI2RlZmluZSBSQURFT05fRFBfV1JJVEVfTUFTSwkJMHgxNmNjCisjZGVmaW5lIFJBREVPTl9TUkNfUElUQ0hfT0ZGU0VUCQkweDE0MjgKKyNkZWZpbmUgUkFERU9OX0RTVF9QSVRDSF9PRkZTRVQJCTB4MTQyYworI2RlZmluZSBSQURFT05fRFNUX1BJVENIX09GRlNFVF9DCTB4MWM4MAorIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX0xJTkVBUgkJKDAgPDwgMzApCisjCWRlZmluZSBSQURFT05fRFNUX1RJTEVfTUFDUk8JCSgxIDw8IDMwKQorIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX01JQ1JPCQkoMiA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9EU1RfVElMRV9CT1RICQkoMyA8PCAzMCkKKworI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUcwCQkweDE1ZTAKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHMQkJMHgxNWU0CisjZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzIJCTB4MTVlOAorI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUczCQkweDE1ZWMKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHNAkJMHgxNWYwCisjZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzUJCTB4MTVmNAorI2RlZmluZSBSQURFT05fU0NSQVRDSF9VTVNLCQkweDA3NzAKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfQUREUgkJMHgwNzc0CisKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hPRkYoIHggKQkJKFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQgKyA0Kih4KSkKKworI2RlZmluZSBHRVRfU0NSQVRDSCggeCApCShkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzCQkJXAorCQkJCT8gRFJNX1JFQUQzMiggZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoeCkgKSBcCisJCQkJOiBSQURFT05fUkVBRCggUkFERU9OX1NDUkFUQ0hfUkVHMCArIDQqKHgpICkgKQorCisjZGVmaW5lIFJBREVPTl9HRU5fSU5UX0NOVEwJCTB4MDA0MAorIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX01BU0sJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0sJCSgxIDw8IDkpCisjCWRlZmluZSBSQURFT05fR1VJX0lETEVfSU5UX0VOQUJMRQkoMSA8PCAxOSkKKyMJZGVmaW5lIFJBREVPTl9TV19JTlRfRU5BQkxFCQkoMSA8PCAyNSkKKworI2RlZmluZSBSQURFT05fR0VOX0lOVF9TVEFUVVMJCTB4MDA0NAorIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fQ1JUQ19WQkxBTktfU1RBVF9BQ0sJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVAkJKDEgPDwgOSkKKyMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVF9BQ0sJKDEgPDwgOSkKKyMJZGVmaW5lIFJBREVPTl9HVUlfSURMRV9JTlRfVEVTVF9BQ0sgICAgICgxIDw8IDE5KQorIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9URVNUCQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9TV19JTlRfVEVTVF9BQ0sJCSgxIDw8IDI1KQorIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9GSVJFCQkoMSA8PCAyNikKKworI2RlZmluZSBSQURFT05fSE9TVF9QQVRIX0NOVEwJCTB4MDEzMAorIwlkZWZpbmUgUkFERU9OX0hEUF9TT0ZUX1JFU0VUCQkoMSA8PCAyNikKKyMJZGVmaW5lIFJBREVPTl9IRFBfV0NfVElNRU9VVF9NQVNLCSg3IDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0hEUF9XQ19USU1FT1VUXzI4QkNMSwkoNyA8PCAyOCkKKworI2RlZmluZSBSQURFT05fSVNZTkNfQ05UTAkJMHgxNzI0CisjCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZMkRfSURMRTNECSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZM0RfSURMRTJECSgxIDw8IDEpCisjCWRlZmluZSBSQURFT05fSVNZTkNfVFJJRzJEX0lETEUzRAkoMSA8PCAyKQorIwlkZWZpbmUgUkFERU9OX0lTWU5DX1RSSUczRF9JRExFMkQJKDEgPDwgMykKKyMJZGVmaW5lIFJBREVPTl9JU1lOQ19XQUlUX0lETEVHVUkJKDEgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9JU1lOQ19DUFNDUkFUQ0hfSURMRUdVSQkoMSA8PCA1KQorCisjZGVmaW5lIFJBREVPTl9SQkJNX0dVSUNOVEwJCTB4MTcyYworIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQX05PTkUJKDAgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9IT1NUX0RBVEFfU1dBUF8xNkJJVAkoMSA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQXzMyQklUCSgyIDw8IDApCisjCWRlZmluZSBSQURFT05fSE9TVF9EQVRBX1NXQVBfSERXCSgzIDw8IDApCisKKyNkZWZpbmUgUkFERU9OX01DX0FHUF9MT0NBVElPTgkJMHgwMTRjCisjZGVmaW5lIFJBREVPTl9NQ19GQl9MT0NBVElPTgkJMHgwMTQ4CisjZGVmaW5lIFJBREVPTl9NQ0xLX0NOVEwJCTB4MDAxMgorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0EJCSgxIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0IJCSgxIDw8IDE3KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0EJCSgxIDw8IDE4KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0IJCSgxIDw8IDE5KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUMJCSgxIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fQUlDCQkoMSA8PCAyMSkKKworI2RlZmluZSBSQURFT05fUFBfQk9SREVSX0NPTE9SXzAJMHgxZDQwCisjZGVmaW5lIFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMQkweDFkNDQKKyNkZWZpbmUgUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yCTB4MWQ0OAorI2RlZmluZSBSQURFT05fUFBfQ05UTAkJCTB4MWMzOAorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfRU5BQkxFCQkoMSA8PCAgMSkKKyNkZWZpbmUgUkFERU9OX1BQX0xVTV9NQVRSSVgJCTB4MWQwMAorI2RlZmluZSBSQURFT05fUFBfTUlTQwkJCTB4MWMxNAorI2RlZmluZSBSQURFT05fUFBfUk9UX01BVFJJWF8wCQkweDFkNTgKKyNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzAJCTB4MWM1NAorI2RlZmluZSBSQURFT05fUFBfVFhPRkZTRVRfMAkJMHgxYzVjCisjZGVmaW5lIFJBREVPTl9QUF9UWEZJTFRFUl8xCQkweDFjNmMKKyNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzIJCTB4MWM4NAorCisjZGVmaW5lIFIzMDBfUkIyRF9EU1RDQUNIRV9DVExTVEFUCTB4MzQyYyAvKiB1c2UgUjMwMF9EU1RDQUNIRV9DVExTVEFUICovCisjZGVmaW5lIFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVAkJMHgxNzE0CisjCWRlZmluZSBSMzAwX1JCMkRfRENfRkxVU0gJCSgzIDw8IDApCisjCWRlZmluZSBSMzAwX1JCMkRfRENfRlJFRQkJKDMgPDwgMikKKyMJZGVmaW5lIFIzMDBfUkIyRF9EQ19GTFVTSF9BTEwJCTB4ZgorIwlkZWZpbmUgUjMwMF9SQjJEX0RDX0JVU1kJCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkIzRF9DTlRMCQkweDFjM2MKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9CTEVORF9FTkFCTEUJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9QTEFORV9NQVNLX0VOQUJMRQkJKDEgPDwgMSkKKyMJZGVmaW5lIFJBREVPTl9ESVRIRVJfRU5BQkxFCQkoMSA8PCAyKQorIwlkZWZpbmUgUkFERU9OX1JPVU5EX0VOQUJMRQkJKDEgPDwgMykKKyMJZGVmaW5lIFJBREVPTl9TQ0FMRV9ESVRIRVJfRU5BQkxFCSgxIDw8IDQpCisjCWRlZmluZSBSQURFT05fRElUSEVSX0lOSVQJCSgxIDw8IDUpCisjCWRlZmluZSBSQURFT05fUk9QX0VOQUJMRQkJKDEgPDwgNikKKyMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX0VOQUJMRQkJKDEgPDwgNykKKyMJZGVmaW5lIFJBREVPTl9aX0VOQUJMRQkJCSgxIDw8IDgpCisjCWRlZmluZSBSQURFT05fWkJMT0NLMTYJCQkoMSA8PCAxNSkKKyNkZWZpbmUgUkFERU9OX1JCM0RfREVQVEhPRkZTRVQJCTB4MWMyNAorI2RlZmluZSBSQURFT05fUkIzRF9ERVBUSENMRUFSVkFMVUUJMHgzMjMwCisjZGVmaW5lIFJBREVPTl9SQjNEX0RFUFRIUElUQ0gJCTB4MWMyOAorI2RlZmluZSBSQURFT05fUkIzRF9QTEFORU1BU0sJCTB4MWQ4NAorI2RlZmluZSBSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSwkweDFkN2MKKyNkZWZpbmUgUkFERU9OX1JCM0RfWkNBQ0hFX01PREUJCTB4MzI1MAorI2RlZmluZSBSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVAkweDMyNTQKKyMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0ZMVVNICQkoMSA8PCAwKQorIwlkZWZpbmUgUkFERU9OX1JCM0RfWkNfRlJFRQkJKDEgPDwgMikKKyMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0ZMVVNIX0FMTAkJMHg1CisjCWRlZmluZSBSQURFT05fUkIzRF9aQ19CVVNZCQkoMSA8PCAzMSkKKyNkZWZpbmUgUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCAgICAgICAgICAgICAgICAgIDB4NGYxOAorIwlkZWZpbmUgUjMwMF9aQ19GTFVTSAkJICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9aQ19GUkVFCQkgICAgICAgICgxIDw8IDEpCisjCWRlZmluZSBSMzAwX1pDX0ZMVVNIX0FMTAkJMHgzCisjCWRlZmluZSBSMzAwX1pDX0JVU1kJCSAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQJMHgzMjVjCisjCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSAkJKDMgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9SQjNEX0RDX0ZSRUUJCSgzIDw8IDIpCisjCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEwJCTB4ZgorIwlkZWZpbmUgUkFERU9OX1JCM0RfRENfQlVTWQkJKDEgPDwgMzEpCisjZGVmaW5lIFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFUICAgICAgICAgICAgICAweDRlNGMKKyMJZGVmaW5lIFIzMDBfUkIzRF9EQ19GSU5JU0gJCSgxIDw8IDQpCisjZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKKyMJZGVmaW5lIFJBREVPTl9aX1RFU1RfTUFTSwkJKDcgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9aX1RFU1RfQUxXQVlTCQkoNyA8PCA0KQorIwlkZWZpbmUgUkFERU9OX1pfSElFUkFSQ0hZX0VOQUJMRQkoMSA8PCA4KQorIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMJKDcgPDwgMTIpCisjCWRlZmluZSBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRQkoMiA8PCAxNikKKyMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX1pQQVNTX1JFUExBQ0UJKDIgPDwgMjApCisjCWRlZmluZSBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFCSgyIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX1pfQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFX1pfRElSVFkJCSgxIDw8IDI5KQorIwlkZWZpbmUgUkFERU9OX1pfV1JJVEVfRU5BQkxFCQkoMSA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9aX0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkJCTV9TT0ZUX1JFU0VUCQkweDAwZjAKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0NQCQkoMSA8PCAgMCkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hJCQkoMSA8PCAgMSkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1NFCQkoMSA8PCAgMikKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JFCQkoMSA8PCAgMykKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1BQCQkoMSA8PCAgNCkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0UyCQkoMSA8PCAgNSkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JCCQkoMSA8PCAgNikKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hEUAkJKDEgPDwgIDcpCisvKgorICogICA2OjAgIEF2YWlsYWJsZSBzbG90cyBpbiB0aGUgRklGTworICogICA4ICAgIEhvc3QgSW50ZXJmYWNlIGFjdGl2ZQorICogICA5ICAgIENQIHJlcXVlc3QgYWN0aXZlCisgKiAgIDEwICAgRklGTyByZXF1ZXN0IGFjdGl2ZQorICogICAxMSAgIEhvc3QgSW50ZXJmYWNlIHJldHJ5IGFjdGl2ZQorICogICAxMiAgIENQIHJldHJ5IGFjdGl2ZQorICogICAxMyAgIEZJRk8gcmV0cnkgYWN0aXZlCisgKiAgIDE0ICAgRklGTyBwaXBlbGluZSBidXN5CisgKiAgIDE1ICAgRXZlbnQgZW5naW5lIGJ1c3kKKyAqICAgMTYgICBDUCBjb21tYW5kIHN0cmVhbSBidXN5CisgKiAgIDE3ICAgMkQgZW5naW5lIGJ1c3kKKyAqICAgMTggICAyRCBwb3J0aW9uIG9mIHJlbmRlciBiYWNrZW5kIGJ1c3kKKyAqICAgMjAgICAzRCBzZXR1cCBlbmdpbmUgYnVzeQorICogICAyNiAgIEdBIGVuZ2luZSBidXN5CisgKiAgIDI3ICAgQ0JBIDJEIGVuZ2luZSBidXN5CisgKiAgIDMxICAgMkQgZW5naW5lIGJ1c3kgb3IgM0QgZW5naW5lIGJ1c3kgb3IgRklGTyBub3QgZW1wdHkgb3IgQ1AgYnVzeSBvcgorICogICAgICAgICAgIGNvbW1hbmQgc3RyZWFtIHF1ZXVlIG5vdCBlbXB0eSBvciBSaW5nIEJ1ZmZlciBub3QgZW1wdHkKKyAqLworI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MGU0MAorLyogU2FtZSBhcyB0aGUgcHJldmlvdXMgUkFERU9OX1JCQk1fU1RBVFVTOyB0aGlzIGlzIGEgbWlycm9yIG9mIHRoYXQgcmVnaXN0ZXIuICAqLworLyogI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MTc0MCAqLworLyogYml0cyA2OjAgYXJlIGR3b3JkIHNsb3RzIGF2YWlsYWJsZSBpbiB0aGUgY21kIGZpZm8gKi8KKyMJZGVmaW5lIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSwkJMHgwMDdmCisjCWRlZmluZSBSQURFT05fSElSUV9PTl9SQkIJKDEgPDwgIDgpCisjCWRlZmluZSBSQURFT05fQ1BSUV9PTl9SQkIJKDEgPDwgIDkpCisjCWRlZmluZSBSQURFT05fQ0ZSUV9PTl9SQkIJKDEgPDwgMTApCisjCWRlZmluZSBSQURFT05fSElSUV9JTl9SVEJVRgkoMSA8PCAxMSkKKyMJZGVmaW5lIFJBREVPTl9DUFJRX0lOX1JUQlVGCSgxIDw8IDEyKQorIwlkZWZpbmUgUkFERU9OX0NGUlFfSU5fUlRCVUYJKDEgPDwgMTMpCisjCWRlZmluZSBSQURFT05fUElQRV9CVVNZCQkoMSA8PCAxNCkKKyMJZGVmaW5lIFJBREVPTl9FTkdfRVZfQlVTWQkoMSA8PCAxNSkKKyMJZGVmaW5lIFJBREVPTl9DUF9DTURTVFJNX0JVU1kJKDEgPDwgMTYpCisjCWRlZmluZSBSQURFT05fRTJfQlVTWQkJKDEgPDwgMTcpCisjCWRlZmluZSBSQURFT05fUkIyRF9CVVNZCQkoMSA8PCAxOCkKKyMJZGVmaW5lIFJBREVPTl9SQjNEX0JVU1kJCSgxIDw8IDE5KSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVkFQX0JVU1kJCSgxIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX1JFX0JVU1kJCSgxIDw8IDIxKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVEFNX0JVU1kJCSgxIDw8IDIyKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVERNX0JVU1kJCSgxIDw8IDIzKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fUEJfQlVTWQkJKDEgPDwgMjQpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl9USU1fQlVTWQkJKDEgPDwgMjUpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl9HQV9CVVNZCQkoMSA8PCAyNikKKyMJZGVmaW5lIFJBREVPTl9DQkEyRF9CVVNZCSgxIDw8IDI3KQorIwlkZWZpbmUgUkFERU9OX1JCQk1fQUNUSVZFCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkVfTElORV9QQVRURVJOCQkweDFjZDAKKyNkZWZpbmUgUkFERU9OX1JFX01JU0MJCQkweDI2YzQKKyNkZWZpbmUgUkFERU9OX1JFX1RPUF9MRUZUCQkweDI2YzAKKyNkZWZpbmUgUkFERU9OX1JFX1dJRFRIX0hFSUdIVAkJMHgxYzQ0CisjZGVmaW5lIFJBREVPTl9SRV9TVElQUExFX0FERFIJCTB4MWNjOAorI2RlZmluZSBSQURFT05fUkVfU1RJUFBMRV9EQVRBCQkweDFjY2MKKworI2RlZmluZSBSQURFT05fU0NJU1NPUl9UTF8wCQkweDFjZDgKKyNkZWZpbmUgUkFERU9OX1NDSVNTT1JfQlJfMAkJMHgxY2RjCisjZGVmaW5lIFJBREVPTl9TQ0lTU09SX1RMXzEJCTB4MWNlMAorI2RlZmluZSBSQURFT05fU0NJU1NPUl9CUl8xCQkweDFjZTQKKyNkZWZpbmUgUkFERU9OX1NDSVNTT1JfVExfMgkJMHgxY2U4CisjZGVmaW5lIFJBREVPTl9TQ0lTU09SX0JSXzIJCTB4MWNlYworI2RlZmluZSBSQURFT05fU0VfQ09PUkRfRk1UCQkweDFjNTAKKyNkZWZpbmUgUkFERU9OX1NFX0NOVEwJCQkweDFjNGMKKyMJZGVmaW5lIFJBREVPTl9GRkFDRV9DVUxMX0NXCQkoMCA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0JGQUNFX1NPTElECQkoMyA8PCAxKQorIwlkZWZpbmUgUkFERU9OX0ZGQUNFX1NPTElECQkoMyA8PCAzKQorIwlkZWZpbmUgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QJKDMgPDwgNikKKyMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0ZMQVQJKDEgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0dPVVJBVUQJKDIgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUCQkoMSA8PCAxMCkKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9HT1VSQVVECSgyIDw8IDEwKQorIwlkZWZpbmUgUkFERU9OX1NQRUNVTEFSX1NIQURFX0ZMQVQJKDEgPDwgMTIpCisjCWRlZmluZSBSQURFT05fU1BFQ1VMQVJfU0hBREVfR09VUkFVRAkoMiA8PCAxMikKKyMJZGVmaW5lIFJBREVPTl9GT0dfU0hBREVfRkxBVAkJKDEgPDwgMTQpCisjCWRlZmluZSBSQURFT05fRk9HX1NIQURFX0dPVVJBVUQJCSgyIDw8IDE0KQorIwlkZWZpbmUgUkFERU9OX1ZQT1JUX1hZX1hGT1JNX0VOQUJMRQkoMSA8PCAyNCkKKyMJZGVmaW5lIFJBREVPTl9WUE9SVF9aX1hGT1JNX0VOQUJMRQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9WVFhfUElYX0NFTlRFUl9PR0wJKDEgPDwgMjcpCisjCWRlZmluZSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQwkJKDAgPDwgMjgpCisjCWRlZmluZSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYCSgxIDw8IDMwKQorI2RlZmluZSBSQURFT05fU0VfQ05UTF9TVEFUVVMJCTB4MjE0MAorI2RlZmluZSBSQURFT05fU0VfTElORV9XSURUSAkJMHgxZGI4CisjZGVmaW5lIFJBREVPTl9TRV9WUE9SVF9YU0NBTEUJCTB4MWQ5OAorI2RlZmluZSBSQURFT05fU0VfWkJJQVNfRkFDVE9SCQkweDFkYjAKKyNkZWZpbmUgUkFERU9OX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEIDB4MjIxMAorI2RlZmluZSBSQURFT05fU0VfVENMX09VVFBVVF9WVFhfRk1UICAgICAgICAgMHgyMjU0CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHICAgICAgICAweDIyMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9PQ1RXT1JEX1NUUklERV9TSElGVCAgMTYKKyMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9EV09SRF9DT1VOVF9TSElGVCAgICAgMjgKKyNkZWZpbmUgUkFERU9OX1NFX1RDTF9WRUNUT1JfREFUQV9SRUcgICAgICAgMHgyMjA0CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0lORFhfUkVHICAgICAgIDB4MjIwOAorIyAgICAgICBkZWZpbmUgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQgIDE2CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHICAgICAgIDB4MjIwQworI2RlZmluZSBSQURFT05fU1VSRkFDRV9BQ0NFU1NfRkxBR1MJMHgwYmY4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFX0FDQ0VTU19DTFIJMHgwYmZjCisjZGVmaW5lIFJBREVPTl9TVVJGQUNFX0NOVEwJCTB4MGIwMAorIwlkZWZpbmUgUkFERU9OX1NVUkZfVFJBTlNMQVRJT05fRElTCSgxIDw8IDgpCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX01BU0sJKDMgPDwgMjApCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0xJVFRMRQkoMCA8PCAyMCkKKyMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMF9TV1BfQklHMTYJKDEgPDwgMjApCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0JJRzMyCSgyIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9NQVNLCSgzIDw8IDIyKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9MSVRUTEUJKDAgPDwgMjIpCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDFfU1dQX0JJRzE2CSgxIDw8IDIyKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9CSUczMgkoMiA8PCAyMikKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0lORk8JCTB4MGIwYworIwlkZWZpbmUgUkFERU9OX1NVUkZfUElUQ0hTRUxfTUFTSwkoMHgxZmYgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV9NQVNLCSgzIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01BQ1JPCSgwIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01JQ1JPCSgxIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFXzMyQklUX1oJKDIgPDwgMTYpCisjCWRlZmluZSBSQURFT05fU1VSRl9USUxFX01PREVfMTZCSVRfWgkoMyA8PCAxNikKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5ECTB4MGIwNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQJMHgwYjA4CisjCWRlZmluZSBSQURFT05fU1VSRl9BRERSRVNTX0ZJWEVEX01BU0sJKDB4M2ZmIDw8IDApCisjZGVmaW5lIFJBREVPTl9TVVJGQUNFMV9JTkZPCQkweDBiMWMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UxX0xPV0VSX0JPVU5ECTB4MGIxNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTFfVVBQRVJfQk9VTkQJMHgwYjE4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFMl9JTkZPCQkweDBiMmMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UyX0xPV0VSX0JPVU5ECTB4MGIyNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTJfVVBQRVJfQk9VTkQJMHgwYjI4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFM19JTkZPCQkweDBiM2MKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UzX0xPV0VSX0JPVU5ECTB4MGIzNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTNfVVBQRVJfQk9VTkQJMHgwYjM4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNF9JTkZPCQkweDBiNGMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U0X0xPV0VSX0JPVU5ECTB4MGI0NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTRfVVBQRVJfQk9VTkQJMHgwYjQ4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNV9JTkZPCQkweDBiNWMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U1X0xPV0VSX0JPVU5ECTB4MGI1NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTVfVVBQRVJfQk9VTkQJMHgwYjU4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNl9JTkZPCQkweDBiNmMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U2X0xPV0VSX0JPVU5ECTB4MGI2NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTZfVVBQRVJfQk9VTkQJMHgwYjY4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFN19JTkZPCQkweDBiN2MKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U3X0xPV0VSX0JPVU5ECTB4MGI3NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTdfVVBQRVJfQk9VTkQJMHgwYjc4CisjZGVmaW5lIFJBREVPTl9TV19TRU1BUEhPUkUJCTB4MDEzYworCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMCQkweDE3MjAKKyMJZGVmaW5lIFJBREVPTl9XQUlUX0NSVENfUEZMSVAJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fV0FJVF8yRF9JRExFCQkoMSA8PCAxNCkKKyMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEUJCSgxIDw8IDE1KQorIwlkZWZpbmUgUkFERU9OX1dBSVRfMkRfSURMRUNMRUFOCQkoMSA8PCAxNikKKyMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTgkJKDEgPDwgMTcpCisjCWRlZmluZSBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTgkoMSA8PCAxOCkKKworI2RlZmluZSBSQURFT05fUkIzRF9aTUFTS09GRlNFVAkJMHgzMjM0CisjZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKKyMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1oJKDAgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1oJKDIgPDwgMCkKKworLyogQ1AgcmVnaXN0ZXJzICovCisjZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fQUREUgkJMHgwN2Q0CisjZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fUkFERFIJCTB4MDdkOAorI2RlZmluZSBSQURFT05fQ1BfTUVfUkFNX0RBVEFICQkweDA3ZGMKKyNkZWZpbmUgUkFERU9OX0NQX01FX1JBTV9EQVRBTAkJMHgwN2UwCisKKyNkZWZpbmUgUkFERU9OX0NQX1JCX0JBU0UJCTB4MDcwMAorI2RlZmluZSBSQURFT05fQ1BfUkJfQ05UTAkJMHgwNzA0CisjCWRlZmluZSBSQURFT05fQlVGX1NXQVBfMzJCSVQJCSgyIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1JCX05PX1VQREFURQkJKDEgPDwgMjcpCisjZGVmaW5lIFJBREVPTl9DUF9SQl9SUFRSX0FERFIJCTB4MDcwYworI2RlZmluZSBSQURFT05fQ1BfUkJfUlBUUgkJMHgwNzEwCisjZGVmaW5lIFJBREVPTl9DUF9SQl9XUFRSCQkweDA3MTQKKworI2RlZmluZSBSQURFT05fQ1BfUkJfV1BUUl9ERUxBWQkJMHgwNzE4CisjCWRlZmluZSBSQURFT05fUFJFX1dSSVRFX1RJTUVSX1NISUZUCTAKKyMJZGVmaW5lIFJBREVPTl9QUkVfV1JJVEVfTElNSVRfU0hJRlQJMjMKKworI2RlZmluZSBSQURFT05fQ1BfSUJfQkFTRQkJMHgwNzM4CisKKyNkZWZpbmUgUkFERU9OX0NQX0NTUV9DTlRMCQkweDA3NDAKKyMJZGVmaW5lIFJBREVPTl9DU1FfQ05UX1BSSU1BUllfTUFTSwkoMHhmZiA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0NTUV9QUklESVNfSU5ERElTCQkoMCA8PCAyOCkKKyMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORERJUwkJKDEgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lORERJUwkJKDIgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSVBJT19JTkRCTQkJKDMgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lOREJNCQkoNCA8PCAyOCkKKyMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORFBJTwkJKDE1IDw8IDI4KQorCisjZGVmaW5lIFJBREVPTl9BSUNfQ05UTAkJCTB4MDFkMAorIwlkZWZpbmUgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOCSgxIDw8IDApCisjZGVmaW5lIFJBREVPTl9BSUNfU1RBVAkJCTB4MDFkNAorI2RlZmluZSBSQURFT05fQUlDX1BUX0JBU0UJCTB4MDFkOAorI2RlZmluZSBSQURFT05fQUlDX0xPX0FERFIJCTB4MDFkYworI2RlZmluZSBSQURFT05fQUlDX0hJX0FERFIJCTB4MDFlMAorI2RlZmluZSBSQURFT05fQUlDX1RMQl9BRERSCQkweDAxZTQKKyNkZWZpbmUgUkFERU9OX0FJQ19UTEJfREFUQQkJMHgwMWU4CisKKy8qIENQIGNvbW1hbmQgcGFja2V0cyAqLworI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMAkJMHgwMDAwMDAwMAorIwlkZWZpbmUgUkFERU9OX09ORV9SRUdfV1IJCSgxIDw8IDE1KQorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMQkJMHg0MDAwMDAwMAorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMgkJMHg4MDAwMDAwMAorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMwkJMHhDMDAwMDAwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05PUCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05FWFRfQ0hBUiAgICAgICAgICAgICAgMHgwMDAwMTkwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1BMWV9ORVhUU0NBTiAgICAgICAgICAgMHgwMDAwMUQwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1NFVF9TQ0lTU09SUyAgICAgICAgICAgMHgwMDAwMUUwMAorCSAgICAgLyogR0VOX0lORFhfUFJJTSBpcyB1bnN1cHBvcnRlZCBzdGFydGluZyB3aXRoIFIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0JMHgwMDAwMjMwMAorIwlkZWZpbmUgUkFERU9OX1dBSVRfRk9SX0lETEUJCTB4MDAwMDI2MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX1ZCVUYJCTB4MDAwMDI4MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lNTUQJCTB4MDAwMDI5MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lORFgJCTB4MDAwMDJBMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9MT0FEX1BBTEVUVEUgICAgICAgICAgIDB4MDAwMDJDMDAKKyMJZGVmaW5lIFJBREVPTl8zRF9MT0FEX1ZCUE5UUgkJMHgwMDAwMkYwMAorIwlkZWZpbmUgUkFERU9OX01QRUdfSURDVF9NQUNST0JMT0NLCTB4MDAwMDMwMDAKKyMJZGVmaW5lIFJBREVPTl9NUEVHX0lEQ1RfTUFDUk9CTE9DS19SRVYJMHgwMDAwMzEwMAorIwlkZWZpbmUgUkFERU9OXzNEX0NMRUFSX1pNQVNLCQkweDAwMDAzMjAwCisjCWRlZmluZSBSQURFT05fQ1BfSU5EWF9CVUZGRVIJCTB4MDAwMDMzMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX1ZCVUZfMiAgICAgICAgIDB4MDAwMDM0MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lNTURfMiAgICAgICAgIDB4MDAwMDM1MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lORFhfMiAgICAgICAgIDB4MDAwMDM2MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9DTEVBUl9ISVoJCTB4MDAwMDM3MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9DTEVBUl9DTUFTSyAgICAgICAgIDB4MDAwMDM4MDIKKyMJZGVmaW5lIFJBREVPTl9DTlRMX0hPU1REQVRBX0JMVAkJMHgwMDAwOTQwMAorIwlkZWZpbmUgUkFERU9OX0NOVExfUEFJTlRfTVVMVEkJCTB4MDAwMDlBMDAKKyMJZGVmaW5lIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSQkJMHgwMDAwOUIwMAorIwlkZWZpbmUgUkFERU9OX0NOVExfU0VUX1NDSVNTT1JTCQkweEMwMDAxRTAwCisKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVF9NQVNLCQkweEMwMDAwMDAwCisjZGVmaW5lIFJBREVPTl9DUF9QQUNLRVRfQ09VTlRfTUFTSwkweDNmZmYwMDAwCisjZGVmaW5lIFJBREVPTl9DUF9QQUNLRVQwX1JFR19NQVNLCTB4MDAwMDA3ZmYKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMF9NQVNLCTB4MDAwMDA3ZmYKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMV9NQVNLCTB4MDAzZmY4MDAKKworI2RlZmluZSBSQURFT05fVlRYX1pfUFJFU0VOVAkJCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fVlRYX1BLQ09MT1JfUFJFU0VOVAkJKDEgPDwgMykKKworI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX05PTkUJCQkoMCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1BPSU5UCQkJKDEgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FCQkJKDIgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FX1NUUklQCQkoMyA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9MSVNUCQkoNCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9GQU4JCSg1IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfVFJJX1NUUklQCQkoNiA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9UWVBFMgkJKDcgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QJCSg4IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUCSg5IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QJCSgxMCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJBREVPTl9QUklNX1dBTEtfSU5ECQkJKDEgPDwgNCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19MSVNUCQkJKDIgPDwgNCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19SSU5HCQkJKDMgPDwgNCkKKyNkZWZpbmUgUkFERU9OX0NPTE9SX09SREVSX0JHUkEJCQkoMCA8PCA2KQorI2RlZmluZSBSQURFT05fQ09MT1JfT1JERVJfUkdCQQkJCSgxIDw8IDYpCisjZGVmaW5lIFJBREVPTl9NQU9TX0VOQUJMRQkJCSgxIDw8IDcpCisjZGVmaW5lIFJBREVPTl9WVFhfRk1UX1IxMjhfTU9ERQkJKDAgPDwgOCkKKyNkZWZpbmUgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUJCSgxIDw8IDgpCisjZGVmaW5lIFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQJCTE2CisKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9DSTgJCTIKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCMTU1NQkzCisjZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCNTY1CTQKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2CisjZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCMzMyCTcKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I4CTkKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQorCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9JOAkJMAorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfQUk4OAkJMQorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfUkdCMzMyCQkyCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NQkzCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9SR0I1NjUJCTQKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I0NDQ0CTUKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I4ODg4CTYKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1JHQkE4ODg4CTcKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1k4CQk4CisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9WWVVZNDIyICAgICAgICAgMTAKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1lWWVU0MjIgICAgICAgICAxMQorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfRFhUMSAgICAgICAgICAgIDEyCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9EWFQyMyAgICAgICAgICAgMTQKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0RYVDQ1ICAgICAgICAgICAxNQorCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMCAgICAgICAgICAgICAgICAweDJmMDAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF8xICAgICAgICAgICAgICAgIDB4MmYxMAorI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzIgICAgICAgICAgICAgICAgMHgyZjIwCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMyAgICAgICAgICAgICAgICAweDJmMzAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF80ICAgICAgICAgICAgICAgIDB4MmY0MAorI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzUgICAgICAgICAgICAgICAgMHgyZjUwCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfNiAgICAgICAgICAgICAgICAweDJmNjAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF83ICAgICAgICAgICAgICAgIDB4MmY3MAorI2RlZmluZSBSMjAwX1NFX1RDTF9MSUdIVF9NT0RFTF9DVExfMCAgICAgMHgyMjY4CisjZGVmaW5lIFIyMDBfUFBfVEZBQ1RPUl8wICAgICAgICAgICAgICAgICAweDJlZTAKKyNkZWZpbmUgUjIwMF9TRV9WVFhfRk1UXzAgICAgICAgICAgICAgICAgIDB4MjA4OAorI2RlZmluZSBSMjAwX1NFX1ZBUF9DTlRMICAgICAgICAgICAgICAgICAgMHgyMDgwCisjZGVmaW5lIFIyMDBfU0VfVENMX01BVFJJWF9TRUxfMCAgICAgICAgICAweDIyMzAKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfVEVYX1BST0NfQ1RMXzIgICAgICAgIDB4MjJhOAorI2RlZmluZSBSMjAwX1NFX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwgICAgMHgyMmMwCisjZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfNSAgICAgICAgICAgICAgICAweDJjYTAKKyNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl80ICAgICAgICAgICAgICAgIDB4MmM4MAorI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzMgICAgICAgICAgICAgICAgMHgyYzYwCisjZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAweDJjNDAKKyNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl8xICAgICAgICAgICAgICAgIDB4MmMyMAorI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgMHgyYzAwCisjZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfNSAgICAgICAgICAgICAgICAweDJkNzgKKyNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF80ICAgICAgICAgICAgICAgIDB4MmQ2MAorI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzMgICAgICAgICAgICAgICAgMHgyZDQ4CisjZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfMiAgICAgICAgICAgICAgICAweDJkMzAKKyNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF8xICAgICAgICAgICAgICAgIDB4MmQxOAorI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzAgICAgICAgICAgICAgICAgMHgyZDAwCisKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgIDB4MmMxOAorI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgyYzM4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfMiAgICAgICAgICAgICAweDJjNTgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18zICAgICAgICAgICAgIDB4MmM3OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzQgICAgICAgICAgICAgMHgyYzk4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfNSAgICAgICAgICAgICAweDJjYjgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCAgICAgICAgIDB4MmQwNAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8wICAgICAgICAgMHgyZDA4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzAgICAgICAgICAweDJkMGMKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMCAgICAgICAgIDB4MmQxMAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8wICAgICAgICAgMHgyZDE0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEgICAgICAgICAweDJkMWMKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfMSAgICAgICAgIDB4MmQyMAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM18xICAgICAgICAgMHgyZDI0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzEgICAgICAgICAweDJkMjgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfMSAgICAgICAgIDB4MmQyYworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yICAgICAgICAgMHgyZDM0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzIgICAgICAgICAweDJkMzgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfMiAgICAgICAgIDB4MmQzYworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF8yICAgICAgICAgMHgyZDQwCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzIgICAgICAgICAweDJkNDQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMyAgICAgICAgIDB4MmQ0YworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8zICAgICAgICAgMHgyZDUwCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzMgICAgICAgICAweDJkNTQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMyAgICAgICAgIDB4MmQ1OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8zICAgICAgICAgMHgyZDVjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQgICAgICAgICAweDJkNjQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfNCAgICAgICAgIDB4MmQ2OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM180ICAgICAgICAgMHgyZDZjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzQgICAgICAgICAweDJkNzAKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfNCAgICAgICAgIDB4MmQ3NAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81ICAgICAgICAgMHgyZDdjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzUgICAgICAgICAweDJkODAKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfNSAgICAgICAgIDB4MmQ4NAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF81ICAgICAgICAgMHgyZDg4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzUgICAgICAgICAweDJkOGMKKworI2RlZmluZSBSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgMHgyNmYwCisjZGVmaW5lIFIyMDBfU0VfVlRFX0NOVEwgICAgICAgICAgICAgICAgICAweDIwYjAKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCAgIDB4MjI1MAorI2RlZmluZSBSMjAwX1BQX1RBTV9ERUJVRzMgICAgICAgICAgICAgICAgMHgyZDljCisjZGVmaW5lIFIyMDBfUFBfQ05UTF9YICAgICAgICAgICAgICAgICAgICAweDJjYzQKKyNkZWZpbmUgUjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMgICAgICAgICAgIDB4MjE0MAorI2RlZmluZSBSMjAwX1JFX1NDSVNTT1JfVExfMCAgICAgICAgICAgICAgMHgxY2Q4CisjZGVmaW5lIFIyMDBfUkVfU0NJU1NPUl9UTF8xICAgICAgICAgICAgICAweDFjZTAKKyNkZWZpbmUgUjIwMF9SRV9TQ0lTU09SX1RMXzIgICAgICAgICAgICAgIDB4MWNlOAorI2RlZmluZSBSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQgICAgICAgICAgMHgxZDYwCisjZGVmaW5lIFIyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCAgICAgICAgICAweDI2ZjAKKyNkZWZpbmUgUjIwMF9TRV9WVFhfU1RBVEVfQ05UTCAgICAgICAgICAgIDB4MjE4MAorI2RlZmluZSBSMjAwX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgMHgyNjQ4CisjZGVmaW5lIFIyMDBfU0VfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wIDB4MjI1NAorCisjZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8wICAgICAgICAgICAgICAgIDB4MWQwNAkvKiBOUE9UICovCisjZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8xICAgICAgICAgICAgICAgIDB4MWQwYworI2RlZmluZSBSQURFT05fUFBfVEVYX1NJWkVfMiAgICAgICAgICAgICAgICAweDFkMTQKKworI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAweDFkMjQKKyNkZWZpbmUgUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgxZDI4CisjZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgIDB4MWQyYworI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAgICAgICAgICAweDFkZDAJLyogYml0cyBbMzE6NV0gKi8KKyNkZWZpbmUgUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMV8wICAgICAgICAgMHgxZTAwCisjZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMCAgICAgICAgIDB4MWUxNAorCisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0ggICAgICAgICAgIDB4MjI4NAorCisjZGVmaW5lIFNFX1ZBUF9DTlRMX19UQ0xfRU5BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgU0VfVkFQX0NOVExfX0ZPUkNFX1dfVE9fT05FX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBTRV9WQVBfQ05UTF9fVkZfTUFYX1ZUWF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCisjZGVmaW5lIFNFX1ZURV9DTlRMX19WVFhfWFlfRk1UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgU0VfVlRFX0NOVExfX1ZUWF9aX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBTRV9WVFhfRk1UXzBfX1ZUWF9aMF9QUkVTRU5UX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIFNFX1ZUWF9GTVRfMF9fVlRYX1cwX1BSRVNFTlRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgU0VfVlRYX0ZNVF8wX19WVFhfQ09MT1JfMF9GTVRfX1NISUZUICAgICAgICAgICAgICAgMHgwMDAwMDAwYgorI2RlZmluZSBSMjAwXzNEX0RSQVdfSU1NRF8yICAgICAgMHhDMDAwMzUwMAorI2RlZmluZSBSMjAwX1NFX1ZUWF9GTVRfMSAgICAgICAgICAgICAgICAgMHgyMDhjCisjZGVmaW5lIFIyMDBfUkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAweDFjNTAKKworI2RlZmluZSBSMjAwX1JCM0RfQkxFTkRDT0xPUiAgICAgICAgICAgICAgMHgzMjE4CisKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgICAgIDB4MjJjNAorCisjZGVmaW5lIFIyMDBfUFBfVFJJX1BFUkYgMHgyY2Y4CisKKyNkZWZpbmUgUjIwMF9QUF9BRlNfMCAgICAgICAgICAgICAgICAgICAgIDB4MmY4MAorI2RlZmluZSBSMjAwX1BQX0FGU18xICAgICAgICAgICAgICAgICAgICAgMHgyZjAwCS8qIHNhbWUgYXMgdHhjYmxlbmRfMCAqLworCisjZGVmaW5lIFIyMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAweDIyRDAKKworI2RlZmluZSBSNTAwX0QxQ1JUQ19TVEFUVVMgMHg2MDljCisjZGVmaW5lIFI1MDBfRDJDUlRDX1NUQVRVUyAweDY4OWMKKyNkZWZpbmUgUjUwMF9DUlRDX1ZfQkxBTksgKDE8PDApCisKKyNkZWZpbmUgUjUwMF9EMUNSVENfRlJBTUVfQ09VTlQgMHg2MGE0CisjZGVmaW5lIFI1MDBfRDJDUlRDX0ZSQU1FX0NPVU5UIDB4NjhhNAorCisjZGVmaW5lIFI1MDBfRDFNT0RFX1ZfQ09VTlRFUiAweDY1MzAKKyNkZWZpbmUgUjUwMF9EMk1PREVfVl9DT1VOVEVSIDB4NmQzMAorCisjZGVmaW5lIFI1MDBfRDFNT0RFX1ZCTEFOS19TVEFUVVMgMHg2NTM0CisjZGVmaW5lIFI1MDBfRDJNT0RFX1ZCTEFOS19TVEFUVVMgMHg2ZDM0CisjZGVmaW5lIFI1MDBfVkJMQU5LX09DQ1VSRUQgKDE8PDApCisjZGVmaW5lIFI1MDBfVkJMQU5LX0FDSyAgICAgKDE8PDQpCisjZGVmaW5lIFI1MDBfVkJMQU5LX1NUQVQgICAgKDE8PDEyKQorI2RlZmluZSBSNTAwX1ZCTEFOS19JTlQgICAgICgxPDwxNikKKworI2RlZmluZSBSNTAwX0R4TU9ERV9JTlRfTUFTSyAweDY1NDAKKyNkZWZpbmUgUjUwMF9EMU1PREVfSU5UX01BU0sgKDE8PDApCisjZGVmaW5lIFI1MDBfRDJNT0RFX0lOVF9NQVNLICgxPDw4KQorCisjZGVmaW5lIFI1MDBfRElTUF9JTlRFUlJVUFRfU1RBVFVTIDB4N2VkYworI2RlZmluZSBSNTAwX0QxX1ZCTEFOS19JTlRFUlJVUFQgKDEgPDwgNCkKKyNkZWZpbmUgUjUwMF9EMl9WQkxBTktfSU5URVJSVVBUICgxIDw8IDUpCisKKy8qIENvbnN0YW50cyAqLworI2RlZmluZSBSQURFT05fTUFYX1VTRUNfVElNRU9VVAkJMTAwMDAwCS8qIDEwMCBtcyAqLworCisjZGVmaW5lIFJBREVPTl9MQVNUX0ZSQU1FX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMAorI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcJUkFERU9OX1NDUkFUQ0hfUkVHMQorI2RlZmluZSBSQURFT05fTEFTVF9DTEVBUl9SRUcJCVJBREVPTl9TQ1JBVENIX1JFRzIKKyNkZWZpbmUgUkFERU9OX0xBU1RfU1dJX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMworI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSAkJMQorCisjZGVmaW5lIFJBREVPTl9NQVhfVkJfQUdFCQkweDdmZmZmZmZmCisjZGVmaW5lIFJBREVPTl9NQVhfVkJfVkVSVFMJCSgweGZmZmYpCisKKyNkZWZpbmUgUkFERU9OX1JJTkdfSElHSF9NQVJLCQkxMjgKKworI2RlZmluZSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFICAgICAgKDMyKjEwMjQpCisKKyNkZWZpbmUgUkFERU9OX1JFQUQocmVnKQlEUk1fUkVBRDMyKCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKKyNkZWZpbmUgUkFERU9OX1dSSVRFKHJlZyx2YWwpCURSTV9XUklURTMyKCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKKyNkZWZpbmUgUkFERU9OX1JFQUQ4KHJlZykJRFJNX1JFQUQ4KCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKKyNkZWZpbmUgUkFERU9OX1dSSVRFOChyZWcsdmFsKQlEUk1fV1JJVEU4KCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKKworI2RlZmluZSBSQURFT05fV1JJVEVfUExMKGFkZHIsIHZhbCkJCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJUkFERU9OX1dSSVRFOChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwJCQkJXAorCQkgICAgICAgKChhZGRyKSAmIDB4MWYpIHwgUkFERU9OX1BMTF9XUl9FTiApOwkJXAorCVJBREVPTl9XUklURShSQURFT05fQ0xPQ0tfQ05UTF9EQVRBLCAodmFsKSk7CQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fV1JJVEVfUENJRShhZGRyLCB2YWwpCQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCVJBREVPTl9XUklURTgoUkFERU9OX1BDSUVfSU5ERVgsCQkJCVwKKwkJCSgoYWRkcikgJiAweGZmKSk7CQkJCVwKKwlSQURFT05fV1JJVEUoUkFERU9OX1BDSUVfREFUQSwgKHZhbCkpOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUjUwMF9XUklURV9NQ0lORChhZGRyLCB2YWwpCQkJCQlcCitkbyB7CQkJCQkJCQlcCisJUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAweGZmMDAwMCB8ICgoYWRkcikgJiAweGZmKSk7CVwKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfREFUQSwgKHZhbCkpOwkJCVwKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOwlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJTNDgwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCkJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfSU5ERVgsCQkJCVwKKwkJCSgoYWRkcikgJiAweGZmKSB8IFJTNDgwX05CX01DX0lORF9XUl9FTik7CVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfREFUQSwgKHZhbCkpOwkJCVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfSU5ERVgsIDB4ZmYpOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUlM2OTBfV1JJVEVfTUNJTkQoYWRkciwgdmFsKQkJCQkJXAorZG8gewkJCQkJCQkJXAorCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfV1JfRU4gfCAoKGFkZHIpICYgUlM2OTBfTUNfSU5ERVhfTUFTSykpOwlcCisJUkFERU9OX1dSSVRFKFJTNjkwX01DX0RBVEEsIHZhbCk7CQkJXAorCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfV1JfQUNLKTsJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBJR1BfV1JJVEVfTUNJTkQoYWRkciwgdmFsKQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSAgICAgICBcCisJCVJTNjkwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCk7CQkJCVwKKwllbHNlCQkJCQkJCQlcCisJCVJTNDgwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgQ1BfUEFDS0VUMCggcmVnLCBuICkJCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQwIHwgKChuKSA8PCAxNikgfCAoKHJlZykgPj4gMikpCisjZGVmaW5lIENQX1BBQ0tFVDBfVEFCTEUoIHJlZywgbiApCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQwIHwgUkFERU9OX09ORV9SRUdfV1IgfCAoKG4pIDw8IDE2KSB8ICgocmVnKSA+PiAyKSkKKyNkZWZpbmUgQ1BfUEFDS0VUMSggcmVnMCwgcmVnMSApCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQxIHwgKCgocmVnMSkgPj4gMikgPDwgMTUpIHwgKChyZWcwKSA+PiAyKSkKKyNkZWZpbmUgQ1BfUEFDS0VUMigpCQkJCQkJCVwKKwkoUkFERU9OX0NQX1BBQ0tFVDIpCisjZGVmaW5lIENQX1BBQ0tFVDMoIHBrdCwgbiApCQkJCQkJXAorCShSQURFT05fQ1BfUEFDS0VUMyB8IChwa3QpIHwgKChuKSA8PCAxNikpCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEVuZ2luZSBjb250cm9sIGhlbHBlciBtYWNyb3MKKyAqLworCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKSBkbyB7CQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKKwlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKKwkJICAgUkFERU9OX1dBSVRfSE9TVF9JRExFQ0xFQU4pICk7CQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCkgZG8gewkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9XQUlUX1VOVElMLCAwICkgKTsJCQlcCisJT1VUX1JJTkcoIChSQURFT05fV0FJVF8zRF9JRExFQ0xFQU4gfAkJCQlcCisJCSAgIFJBREVPTl9XQUlUX0hPU1RfSURMRUNMRUFOKSApOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX1dBSVRfVU5USUxfSURMRSgpIGRvIHsJCQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKKwlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKKwkJICAgUkFERU9OX1dBSVRfM0RfSURMRUNMRUFOIHwJCQkJXAorCQkgICBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTikgKTsJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMX1BBR0VfRkxJUFBFRCgpIGRvIHsJCQkJXAorCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fV0FJVF9VTlRJTCwgMCApICk7CQkJXAorCU9VVF9SSU5HKCBSQURFT05fV0FJVF9DUlRDX1BGTElQICk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX0ZMVVNIX0NBQ0hFKCkgZG8gewkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWMjgwKSB7CVwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwKSk7CVwKKwkJT1VUX1JJTkcoUkFERU9OX1JCM0RfRENfRkxVU0gpOwkJCQlcCisJfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX0RDX0ZMVVNIKTsJCQkJXAorCX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9QVVJHRV9DQUNIRSgpIGRvIHsJCQkJCVwKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgewlcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTCk7CQkJXAorCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIDApKTsJXAorCQlPVVRfUklORyhSQURFT05fUkIzRF9EQ19GTFVTSF9BTEwpOwkJCVwKKwl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fRkxVU0hfWkNBQ0hFKCkgZG8gewkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWMjgwKSB7CVwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX1pDX0ZMVVNIKTsJCQkJXAorCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFIzMDBfWkNfRkxVU0gpOwkJCQlcCisJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX1BVUkdFX1pDQUNIRSgpIGRvIHsJCQkJCVwKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgewlcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQsIDApKTsJXAorCQlPVVRfUklORyhSQURFT05fUkIzRF9aQ19GTFVTSF9BTEwpOwkJCVwKKwl9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQlPVVRfUklORyhDUF9QQUNLRVQwKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwKSk7CVwKKwkJT1VUX1JJTkcoUjMwMF9aQ19GTFVTSF9BTEwpOwkJCQlcCisJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIE1pc2MgaGVscGVyIG1hY3JvcworICovCisKKy8qIFBlcmZib3ggZnVuY3Rpb25hbGl0eSBvbmx5LgorICovCisjZGVmaW5lIFJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTiggZGV2X3ByaXYgKQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCWlmICghKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfRE1BX0lETEUpKSB7CQlcCisJCXUzMiBoZWFkID0gR0VUX1JJTkdfSEVBRCggZGV2X3ByaXYgKTsJCQlcCisJCWlmIChoZWFkID09IGRldl9wcml2LT5yaW5nLnRhaWwpCQkJXAorCQkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfRE1BX0lETEU7CVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKCBkZXZfcHJpdiApCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CQlcCisJaWYgKCBzYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID49IFJBREVPTl9NQVhfVkJfQUdFICkgewkJXAorCQlpbnQgX19yZXQgPSByYWRlb25fZG9fY3BfaWRsZSggZGV2X3ByaXYgKTsJCVwKKwkJaWYgKCBfX3JldCApIHJldHVybiBfX3JldDsJCQkJXAorCQlzYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gMDsJCQkJXAorCQlyYWRlb25fZnJlZWxpc3RfcmVzZXQoIGRldiApOwkJCQlcCisJfQkJCQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fRElTUEFUQ0hfQUdFKCBhZ2UgKSBkbyB7CQkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9MQVNUX0RJU1BBVENIX1JFRywgMCApICk7CQlcCisJT1VUX1JJTkcoIGFnZSApOwkJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX0ZSQU1FX0FHRSggYWdlICkgZG8gewkJCQkJXAorCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fTEFTVF9GUkFNRV9SRUcsIDAgKSApOwkJXAorCU9VVF9SSU5HKCBhZ2UgKTsJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9DTEVBUl9BR0UoIGFnZSApIGRvIHsJCQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX0xBU1RfQ0xFQVJfUkVHLCAwICkgKTsJCVwKKwlPVVRfUklORyggYWdlICk7CQkJCQkJXAorfSB3aGlsZSAoMCkKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogUmluZyBjb250cm9sCisgKi8KKworI2RlZmluZSBSQURFT05fVkVSQk9TRQkwCisKKyNkZWZpbmUgUklOR19MT0NBTFMJaW50IHdyaXRlLCBfbnI7IHVuc2lnbmVkIGludCBtYXNrOyB1MzIgKnJpbmc7CisKKyNkZWZpbmUgQkVHSU5fUklORyggbiApIGRvIHsJCQkJCQlcCisJaWYgKCBSQURFT05fVkVSQk9TRSApIHsJCQkJCQlcCisJCURSTV9JTkZPKCAiQkVHSU5fUklORyggJWQgKVxuIiwgKG4pKTsJCQlcCisJfQkJCQkJCQkJXAorCWlmICggZGV2X3ByaXYtPnJpbmcuc3BhY2UgPD0gKG4pICogc2l6ZW9mKHUzMikgKSB7CQlcCisgICAgICAgICAgICAgICAgQ09NTUlUX1JJTkcoKTsJCQkJCQlcCisJCXJhZGVvbl93YWl0X3JpbmcoIGRldl9wcml2LCAobikgKiBzaXplb2YodTMyKSApOwlcCisJfQkJCQkJCQkJXAorCV9uciA9IG47IGRldl9wcml2LT5yaW5nLnNwYWNlIC09IChuKSAqIHNpemVvZih1MzIpOwkJXAorCXJpbmcgPSBkZXZfcHJpdi0+cmluZy5zdGFydDsJCQkJCVwKKwl3cml0ZSA9IGRldl9wcml2LT5yaW5nLnRhaWw7CQkJCQlcCisJbWFzayA9IGRldl9wcml2LT5yaW5nLnRhaWxfbWFzazsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBBRFZBTkNFX1JJTkcoKSBkbyB7CQkJCQkJXAorCWlmICggUkFERU9OX1ZFUkJPU0UgKSB7CQkJCQkJXAorCQlEUk1fSU5GTyggIkFEVkFOQ0VfUklORygpIHdyPTB4JTA2eCB0YWlsPTB4JTA2eFxuIiwJXAorCQkJICB3cml0ZSwgZGV2X3ByaXYtPnJpbmcudGFpbCApOwkJCVwKKwl9CQkJCQkJCQlcCisJaWYgKCgoZGV2X3ByaXYtPnJpbmcudGFpbCArIF9ucikgJiBtYXNrKSAhPSB3cml0ZSkgewkJXAorCQlEUk1fRVJST1IoCQkJCQkJXAorCQkJIkFEVkFOQ0VfUklORygpOiBtaXNtYXRjaDogbnI6ICV4IHdyaXRlOiAleCBsaW5lOiAlZFxuIiwJXAorCQkJKChkZXZfcHJpdi0+cmluZy50YWlsICsgX25yKSAmIG1hc2spLAkJXAorCQkJd3JpdGUsIF9fTElORV9fKTsJCQkJCQlcCisJfSBlbHNlCQkJCQkJCQlcCisJCWRldl9wcml2LT5yaW5nLnRhaWwgPSB3cml0ZTsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBDT01NSVRfUklORygpIGRvIHsJCQkJCQlcCisJLyogRmx1c2ggd3JpdGVzIHRvIHJpbmcgKi8JCQkJCVwKKwlEUk1fTUVNT1JZQkFSUklFUigpOwkJCQkJCVwKKwlHRVRfUklOR19IRUFEKCBkZXZfcHJpdiApOwkJCQkJXAorCVJBREVPTl9XUklURSggUkFERU9OX0NQX1JCX1dQVFIsIGRldl9wcml2LT5yaW5nLnRhaWwgKTsJCVwKKwkvKiByZWFkIGZyb20gUENJIGJ1cyB0byBlbnN1cmUgY29ycmVjdCBwb3N0aW5nICovCQlcCisJUkFERU9OX1JFQUQoIFJBREVPTl9DUF9SQl9SUFRSICk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgT1VUX1JJTkcoIHggKSBkbyB7CQkJCQkJXAorCWlmICggUkFERU9OX1ZFUkJPU0UgKSB7CQkJCQkJXAorCQlEUk1fSU5GTyggIiAgIE9VVF9SSU5HKCAweCUwOHggKSBhdCAweCV4XG4iLAkJXAorCQkJICAgKHVuc2lnbmVkIGludCkoeCksIHdyaXRlICk7CQkJXAorCX0JCQkJCQkJCVwKKwlyaW5nW3dyaXRlKytdID0gKHgpOwkJCQkJCVwKKwl3cml0ZSAmPSBtYXNrOwkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIE9VVF9SSU5HX1JFRyggcmVnLCB2YWwgKSBkbyB7CQkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIHJlZywgMCApICk7CQkJCVwKKwlPVVRfUklORyggdmFsICk7CQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBPVVRfUklOR19UQUJMRSggdGFiLCBzeiApIGRvIHsJCQkJCVwKKwlpbnQgX3NpemUgPSAoc3opOwkJCQkJXAorCWludCAqX3RhYiA9IChpbnQgKikodGFiKTsJCQkJXAorCQkJCQkJCQlcCisJaWYgKHdyaXRlICsgX3NpemUgPiBtYXNrKSB7CQkJCVwKKwkJaW50IF9pID0gKG1hc2srMSkgLSB3cml0ZTsJCQlcCisJCV9zaXplIC09IF9pOwkJCQkJXAorCQl3aGlsZSAoX2kgPiAwICkgewkJCQlcCisJCQkqKGludCAqKShyaW5nICsgd3JpdGUpID0gKl90YWIrKzsJXAorCQkJd3JpdGUrKzsJCQkJXAorCQkJX2ktLTsJCQkJCVwKKwkJfQkJCQkJCVwKKwkJd3JpdGUgPSAwOwkJCQkJXAorCQlfdGFiICs9IF9pOwkJCQkJXAorCX0JCQkJCQkJXAorCXdoaWxlIChfc2l6ZSA+IDApIHsJCQkJCVwKKwkJKihyaW5nICsgd3JpdGUpID0gKl90YWIrKzsJCQlcCisJCXdyaXRlKys7CQkJCQlcCisJCV9zaXplLS07CQkJCQlcCisJfQkJCQkJCQlcCisJd3JpdGUgJj0gbWFzazsJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZW5kaWYJCQkJLyogX19SQURFT05fRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2lvYzMyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU0MGQxOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jCkBAIC0wLDAgKzEsMzIwIEBACisvKiByYWRlb25faXJxLmMgLS0gSVJRIGhhbmRsaW5nIGZvciByYWRlb24gLSotIGxpbnV4LWMgLSotICovCisvKgorICogQ29weXJpZ2h0IChDKSBUaGUgV2VhdGhlciBDaGFubmVsLCBJbmMuICAyMDAyLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgV2VhdGhlciBDaGFubmVsIChUTSkgZnVuZGVkIFR1bmdzdGVuIEdyYXBoaWNzIHRvIGRldmVsb3AgdGhlCisgKiBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIFJhZGVvbiA4NTAwIGRyaXZlciB1bmRlciB0aGUgWEZyZWU4NiBsaWNlbnNlLgorICogVGhpcyBub3RpY2UgbXVzdCBiZSBwcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBLZWl0aCBXaGl0d2VsbCA8a2VpdGhAdHVuZ3N0ZW5ncmFwaGljcy5jb20+CisgKiAgICBNaWNoZWwgRMOkbnplciA8bWljaGVsQGRhZW56ZXIubmV0PgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2RybS5oIgorI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKKworc3RhdGljIF9faW5saW5lX18gdTMyIHJhZGVvbl9hY2tub3dsZWRnZV9pcnFzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkJCSAgICAgIHUzMiBtYXNrKQoreworCXUzMiBpcnFzID0gUkFERU9OX1JFQUQoUkFERU9OX0dFTl9JTlRfU1RBVFVTKSAmIG1hc2s7CisJaWYgKGlycXMpCisJCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9TVEFUVVMsIGlycXMpOworCXJldHVybiBpcnFzOworfQorCisvKiBJbnRlcnJ1cHRzIC0gVXNlZCBmb3IgZGV2aWNlIHN5bmNocm9uaXphdGlvbiBhbmQgZmx1c2hpbmcgaW4gdGhlCisgKiBmb2xsb3dpbmcgY2lyY3Vtc3RhbmNlczoKKyAqCisgKiAtIEV4Y2x1c2l2ZSBGQiBhY2Nlc3Mgd2l0aCBodyBpZGxlOgorICogICAgLSBXYWl0IGZvciBHVUkgSWRsZSAoPykgaW50ZXJydXB0LCB0aGVuIGRvIG5vcm1hbCBmbHVzaC4KKyAqCisgKiAtIEZyYW1lIHRocm90dGxpbmcsIE5WX2ZlbmNlOgorICogICAgLSBEcm9wIG1hcmtlciBpcnEncyBpbnRvIGNvbW1hbmQgc3RyZWFtIGFoZWFkIG9mIHRpbWUuCisgKiAgICAtIFdhaXQgb24gaXJxJ3Mgd2l0aCBsb2NrICpub3QgaGVsZCoKKyAqICAgIC0gQ2hlY2sgZWFjaCBmb3IgdGVybWluYXRpb24gY29uZGl0aW9uCisgKgorICogLSBJbnRlcm5hbGx5IGluIGNwX2dldGJ1ZmZlciwgZXRjOgorICogICAgLSBhcyBhYm92ZSwgYnV0IHdhaXQgd2l0aCBsb2NrIGhlbGQ/Pz8KKyAqCisgKiBOT1RFOiBUaGVzZSBmdW5jdGlvbnMgYXJlIG1pc2xlYWRpbmdseSBuYW1lZCAtLSB0aGUgaXJxJ3MgYXJlbid0CisgKiB0aWVkIHRvIGRtYSBhdCBhbGwsIHRoaXMgaXMganVzdCBhIGhhbmdvdmVyIGZyb20gZHJpIHByZWhpc3RvcnkuCisgKi8KKworaXJxcmV0dXJuX3QgcmFkZW9uX2RyaXZlcl9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTMyIHN0YXQ7CisKKwkvKiBPbmx5IGNvbnNpZGVyIHRoZSBiaXRzIHdlJ3JlIGludGVyZXN0ZWQgaW4gLSBvdGhlcnMgY291bGQgYmUgdXNlZAorCSAqIG91dHNpZGUgdGhlIERSTQorCSAqLworCXN0YXQgPSByYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkZXZfcHJpdiwgKFJBREVPTl9TV19JTlRfVEVTVF9BQ0sgfAorCQkJCQkJICBSQURFT05fQ1JUQ19WQkxBTktfU1RBVCB8CisJCQkJCQkgIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkpOworCWlmICghc3RhdCkKKwkJcmV0dXJuIElSUV9OT05FOworCisJc3RhdCAmPSBkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWc7CisKKwkvKiBTVyBpbnRlcnJ1cHQgKi8KKwlpZiAoc3RhdCAmIFJBREVPTl9TV19JTlRfVEVTVCkgeworCQlEUk1fV0FLRVVQKCZkZXZfcHJpdi0+c3dpX3F1ZXVlKTsKKwl9CisKKwkvKiBWQkxBTksgaW50ZXJydXB0ICovCisJaWYgKHN0YXQgJiAoUkFERU9OX0NSVENfVkJMQU5LX1NUQVR8UkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKSkgeworCQlpbnQgdmJsYW5rX2NydGMgPSBkZXZfcHJpdi0+dmJsYW5rX2NydGM7CisKKwkJaWYgKCh2YmxhbmtfY3J0YyAmCisJCSAgICAgKERSTV9SQURFT05fVkJMQU5LX0NSVEMxIHwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSA9PQorCQkgICAgKERSTV9SQURFT05fVkJMQU5LX0NSVEMxIHwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSB7CisJCQlpZiAoc3RhdCAmIFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUKQorCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKKwkJCWlmIChzdGF0ICYgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKQorCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkMik7CisJCX0gZWxzZSBpZiAoKChzdGF0ICYgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQpICYmCisJCQkgICAodmJsYW5rX2NydGMgJiBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSkpIHx8CisJCQkgICAoKHN0YXQgJiBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpICYmCisJCQkgICAgKHZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSkKKwkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKKworCQlEUk1fV0FLRVVQKCZkZXYtPnZibF9xdWV1ZSk7CisJCWRybV92Ymxfc2VuZF9zaWduYWxzKGRldik7CisJfQorCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9lbWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGludCByZXQ7CisJUklOR19MT0NBTFM7CisKKwlhdG9taWNfaW5jKCZkZXZfcHJpdi0+c3dpX2VtaXR0ZWQpOworCXJldCA9IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+c3dpX2VtaXR0ZWQpOworCisJQkVHSU5fUklORyg0KTsKKwlPVVRfUklOR19SRUcoUkFERU9OX0xBU1RfU1dJX1JFRywgcmV0KTsKKwlPVVRfUklOR19SRUcoUkFERU9OX0dFTl9JTlRfU1RBVFVTLCBSQURFT05fU1dfSU5UX0ZJUkUpOworCUFEVkFOQ0VfUklORygpOworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHJhZGVvbl93YWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IHN3aV9ucikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQorCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChSQURFT05fUkVBRChSQURFT05fTEFTVF9TV0lfUkVHKSA+PSBzd2lfbnIpCisJCXJldHVybiAwOworCisJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOworCisJRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+c3dpX3F1ZXVlLCAzICogRFJNX0haLAorCQkgICAgUkFERU9OX1JFQUQoUkFERU9OX0xBU1RfU1dJX1JFRykgPj0gc3dpX25yKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2RyaXZlcl92YmxhbmtfZG9fd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkJdW5zaWduZWQgaW50ICpzZXF1ZW5jZSwgaW50IGNydGMpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgaW50IGN1cl92Ymxhbms7CisJaW50IHJldCA9IDA7CisJaW50IGFjayA9IDA7CisJYXRvbWljX3QgKmNvdW50ZXI7CisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGNydGMgPT0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpIHsKKwkJY291bnRlciA9ICZkZXYtPnZibF9yZWNlaXZlZDsKKwkJYWNrIHw9IFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUOworCX0gZWxzZSBpZiAoY3J0YyA9PSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikgeworCQljb3VudGVyID0gJmRldi0+dmJsX3JlY2VpdmVkMjsKKwkJYWNrIHw9IFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVDsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkZXZfcHJpdiwgYWNrKTsKKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCS8qIEFzc3VtZSB0aGF0IHRoZSB1c2VyIGhhcyBtaXNzZWQgdGhlIGN1cnJlbnQgc2VxdWVuY2UgbnVtYmVyCisJICogYnkgYWJvdXQgYSBkYXkgcmF0aGVyIHRoYW4gc2hlIHdhbnRzIHRvIHdhaXQgZm9yIHllYXJzCisJICogdXNpbmcgdmVydGljYWwgYmxhbmtzLi4uCisJICovCisJRFJNX1dBSVRfT04ocmV0LCBkZXYtPnZibF9xdWV1ZSwgMyAqIERSTV9IWiwKKwkJICAgICgoKGN1cl92YmxhbmsgPSBhdG9taWNfcmVhZChjb3VudGVyKSkKKwkJICAgICAgLSAqc2VxdWVuY2UpIDw9ICgxIDw8IDIzKSkpOworCisJKnNlcXVlbmNlID0gY3VyX3ZibGFuazsKKworCXJldHVybiByZXQ7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCit7CisJcmV0dXJuIHJhZGVvbl9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpOworfQorCitpbnQgcmFkZW9uX2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKK3sKKwlyZXR1cm4gcmFkZW9uX2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMik7Cit9CisKKy8qIE5lZWRzIHRoZSBsb2NrIGFzIGl0IHRvdWNoZXMgdGhlIHJpbmcuCisgKi8KK2ludCByYWRlb25faXJxX2VtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2lycV9lbWl0X3QgKmVtaXQgPSBkYXRhOworCWludCByZXN1bHQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVzdWx0ID0gcmFkZW9uX2VtaXRfaXJxKGRldik7CisKKwlpZiAoRFJNX0NPUFlfVE9fVVNFUihlbWl0LT5pcnFfc2VxLCAmcmVzdWx0LCBzaXplb2YoaW50KSkpIHsKKwkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogRG9lc24ndCBuZWVkIHRoZSBoYXJkd2FyZSBsb2NrLgorICovCitpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9pcnFfd2FpdF90ICppcnF3YWl0ID0gZGF0YTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiByYWRlb25fd2FpdF9pcnEoZGV2LCBpcnF3YWl0LT5pcnFfc2VxKTsKK30KKwordm9pZCByYWRlb25fZW5hYmxlX2ludGVycnVwdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnID0gUkFERU9OX1NXX0lOVF9FTkFCTEU7CisJaWYgKGRldl9wcml2LT52YmxhbmtfY3J0YyAmIERSTV9SQURFT05fVkJMQU5LX0NSVEMxKQorCQlkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWcgfD0gUkFERU9OX0NSVENfVkJMQU5LX01BU0s7CisKKwlpZiAoZGV2X3ByaXYtPnZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpCisJCWRldl9wcml2LT5pcnFfZW5hYmxlX3JlZyB8PSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0s7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnKTsKKwlkZXZfcHJpdi0+aXJxX2VuYWJsZWQgPSAxOworfQorCisvKiBkcm1fZG1hLmggaG9va3MKKyovCit2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisKKwkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7CisKKwkvKiBDbGVhciBiaXRzIGlmIHRoZXkncmUgYWxyZWFkeSBoaWdoICovCisJcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZGV2X3ByaXYsIChSQURFT05fU1dfSU5UX1RFU1RfQUNLIHwKKwkJCQkJICAgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQgfAorCQkJCQkgICBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpKTsKK30KKwordm9pZCByYWRlb25fZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQorCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKworCWF0b21pY19zZXQoJmRldl9wcml2LT5zd2lfZW1pdHRlZCwgMCk7CisJRFJNX0lOSVRfV0FJVFFVRVVFKCZkZXZfcHJpdi0+c3dpX3F1ZXVlKTsKKworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7Cit9CisKK3ZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9CisJICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCWlmICghZGV2X3ByaXYpCisJCXJldHVybjsKKworCWRldl9wcml2LT5pcnFfZW5hYmxlZCA9IDA7CisKKwkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7Cit9CisKKworaW50IHJhZGVvbl92YmxhbmtfY3J0Y19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgZmxhZzsKKwl1MzIgdmFsdWU7CisKKwlmbGFnID0gUkFERU9OX1JFQUQoUkFERU9OX0dFTl9JTlRfQ05UTCk7CisJdmFsdWUgPSAwOworCisJaWYgKGZsYWcgJiBSQURFT05fQ1JUQ19WQkxBTktfTUFTSykKKwkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzE7CisKKwlpZiAoZmxhZyAmIFJBREVPTl9DUlRDMl9WQkxBTktfTUFTSykKKwkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzI7CisJcmV0dXJuIHZhbHVlOworfQorCitpbnQgcmFkZW9uX3ZibGFua19jcnRjX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQ2NF90IHZhbHVlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCWlmICh2YWx1ZSAmIH4oRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEgfCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBpbnZhbGlkIGNydGMgMHgleFxuIiwgKHVuc2lnbmVkIGludCl2YWx1ZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSAodW5zaWduZWQgaW50KXZhbHVlOworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWVtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21pY3JvY29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWljcm9jb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM0OGM5ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21pY3JvY29kZS5oCkBAIC0wLDAgKzEsMTg0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIoUykgQU5EL09SIElUUyBTVVBQTElFUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgUkFERU9OX01JQ1JPQ09ERV9ICisjZGVmaW5lIFJBREVPTl9NSUNST0NPREVfSAorCisvKiBwcm9kdWN0aW9uIHJhZGVvbiB1Y29kZSByMXh4LXI2eHggKi8KK3N0YXRpYyBjb25zdCB1MzIgUjEwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NmY1YjRkNGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGM0YzQyN2YsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWI1NjhhOTIsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNhMDljNmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YWQ0YzRjNGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNlMWFmM2QsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDhhZmFmYWYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDY0YzRjZGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNkMTBkMTAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzYyZjI0MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMTIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzYyZjI4MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDJjOTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZjAwMDEsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzMzYTM3MzAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3ZWYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwMDAwMTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDM3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4ZmZmZmZmZmYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MTAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc2NzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMzAsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMzAsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDE2MDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwOTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NjRjMDYwM2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwODAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDQwMDI1MWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNDksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTEwNTUsIDB4MDAwMDAwMTQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDQwMDI1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwNGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNjU1YjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NDQwMWIwZTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFjMTEwZTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjY2NjcwNjYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwYzI1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1NjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDEwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxMDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA4MDAwNmMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwZjkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZTAwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwOGYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwNWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGMwMDM1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNTEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNzg1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwN2UsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDc1NjMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MjAwMDcwNzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwNzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODMsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MDAwMDc1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwODMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTUsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwNTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGM2MDc1NjIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMDcwZTUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYTgsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwMDIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc4MzIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDJjOTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwNzcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDc1MWIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYzYsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYzksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4ODA0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMDgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDE0MDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwY2QsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MjBjMDcwMDAsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDAwY2YsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDA4MDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDA4MDc1MWQsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3NWMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI3NWQsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDFlMDA4MzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NjQ2NDYxNGQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Njk2ODc0MjAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwNzMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDIzOTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjIwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4N2E2ODVlNWQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWQ1ZDU1ODgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Njg2NTkxOTcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWRhMTlmNzgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWQ1ZDVkNWQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWRlZTVkNTAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZjJhY2FjYWMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTc1ZGY5ZTksIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YjFkZDBlMTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTJhZmFmYWYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4NDUyZjIzMmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4NDUyZjI3MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDEsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4M2U0ZDRhMzcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3ZWYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwMDAwMTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwMmEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDM3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4ZmZmZmZmZmYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MTAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDdmMDA3ZjAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwMmEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDE2MDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwOTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NjRjMDYwNTEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwODAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDQwMDI1MWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNWEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTEwNjQsIDB4MDAwMDAwMTQgfSwKKyAgICB7IDB4MDAwMDAwNjQsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDQwMDI1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwNWUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDFlNjU1YjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NDQwMWIwZjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFjMTEwZjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjY2NjcwNzEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwYzI1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNzEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1NjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDEwNzQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxMDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA4MDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwZjkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZTAwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwOTQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwNjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGMwMDM1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNTEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNzg1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODcsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDc1NjMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MjAwMDcwN2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwN2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOGEsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MDAwMDc1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOGQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTgsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwNTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGM2MDc1NjIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOWEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA2MDAwOTksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMDcwZjEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYTcsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwYTksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwMDIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDE2NjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjcxY2MsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDI4NmYxY2QsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYjcsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYmUsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MzgwNjcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwYmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwNzcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDc1MWIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZDEsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYTksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZDQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4ODA0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMDgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDE0MDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwZDgsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MjBjMDcwMDAsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDAwZGEsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDA4MDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDA4MDc1MWQsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDQwZDQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3NWMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI3NWQsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc5OTksIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI5OWIsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDFlMDA4MzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwNTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDczOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc4YzQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4YzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc5MjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjMwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYWUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwYjIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4Njc1NTRiNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE0YTQ0NzUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NTU1MjdkODMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE4YzhiNjUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFlZjRhZjYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFlMTRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTQ5Nzk3OTcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZGI0YWViZGQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4OWNjYzRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDE5ODk4OTgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGEwZjlhZDYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwNDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDMsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjY2U4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwM2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDQ1MWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwNTEsIDB4MDAwMDAwMjggfSwKKyAgICB7IDB4MDAwMDAwNTEsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDgwMDQ1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGEwNGIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDNjY2E1YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDU0MzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NGNjY2UwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgyNzQ1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1NjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MDIwNjEsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAyMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDEwMDAwNjQsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAxZjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYzAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDAwODAsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwODIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MTgwMDY1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwOTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMGU1NjMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxNGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwN2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MThjMGU1NjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODYsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDBjMDAwODUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwNzAwZTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwOTQsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAxMjAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAxMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MmUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDJjY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2UxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwZGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwYTYsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYWQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NzAwY2UwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwYTksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwZWUwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MGU1MWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA4MGU1MGEsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1MGIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNzAwZTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDg4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwYzIwOTQsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDg4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMDAwYzMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMTAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI4MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwYzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4NDE4MGUwMDAsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDAwYzksIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDEwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDEwMGU1MWQsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDgwYzMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGYzY2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzY2YsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzZDIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzZDMsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzOWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzOWUsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDNjMDA4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDQ1ZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNzAwZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMGUzOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4YzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZTQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZWIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDJjMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZjMsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZjAsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDgwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4YzAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxZDAwMTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYTAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDUwMGEwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjQyMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwOTksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwOWQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NGE1NTRiNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE0YTQ0NjcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NTU1MjZmNzUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE3ZTdkNjUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDlkM2RmZjYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFjNTRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Yzg4MjgyODIsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YmY0YWNmYzEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ODdiMDRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YjU4MzgzODMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGEwZjg1YmEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwNDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDMsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjY2U4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwM2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDQ1MWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwNTEsIDB4MDAwMDAwMjggfSwKKyAgICB7IDB4MDAwMDAwNTEsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDgwMDQ1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGEwNGIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDNjY2E1YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDU0MzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NGNjY2UwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgyNzQ1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1NjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MDIwNjEsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAyMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDEwMDAwNjQsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAxZjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYzAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDAwNzIsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxNGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwNmMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MThjMGU1NjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzgsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDBjMDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwNzAwYzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MmUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDJjY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2UxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwZGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOGYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOGMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwOTEsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwOTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NzAwY2UwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwOTQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwZWUwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MGU1MWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA4MGU1MGEsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1MGIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNzAwYzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDA4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMTAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI4MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4NDE4MGUwMDAsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDAwYWQsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDEwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDEwMGU1MWQsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDgwYTcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGYzY2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzY2YsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzZDIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzZDMsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzOWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzOWUsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDNjMDA4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDQ1ZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNzAwYzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMGUzOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4YzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzgsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwY2YsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDJjMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZDcsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZDQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDgwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4YzAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGUxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwMGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZGUsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAxOWUxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxZDAwMTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYTAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDUwMGEwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUlM2MDBfY3BfbWljcm9jb2RlW11bMl0gPSB7CisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMGEwLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDAwMGE0LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDRhNTU0YjRhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhNGE0NDY3LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDU1NTI2Zjc1LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhN2U3ZDY1LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhZTc0YWY2LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhZDM0YTRhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGQ2ODk4OTg5LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGNkNGFkZGNmLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDhlYmU0YWUyLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGMzOGE4YThhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhMGY4Y2M4LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGNhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDEyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlOGI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlOGI2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFhLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFjLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFlLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDIwLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODI1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDIyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMGMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMGMxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMDQxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJhLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJjLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJlLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDMwLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDMyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzkzLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzhhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzhlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDQzLCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwY2NlODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDNhLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBhMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDIwMDA0NTFkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlNTgxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0NTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlNTgxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDQ3LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBhMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDIyMDUxLCAweDAwMDAwMDI4IH0sCisgICAgeyAweDAwMDAwMDUxLCAweDAwMDAwMDI0IH0sCisgICAgeyAweDA4MDA0NTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBhMDRiLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTY1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDUyLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAzY2NhNWI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA1NDMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDIyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDRjY2NlMDVlLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4Mjc0NTY1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDVlLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDA0NTY0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDU1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwODAyMDYxLCAweDAwMDAwMDEwIH0sCisgICAgeyAweDAwMjAyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMGZmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxMDAwMDY0LCAweDAwMDAwMDEwIH0sCisgICAgeyAweDAwMWYyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWMwMGZmLCAweDAwMDAwMDA0IH0sCisgICAgeyAwMDAwMDAwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDAwMDcyLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDAwMDAwMDU1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTc2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTc3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDY5LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwYzBlNWY5LCAweDAwMDAwMGMyIH0sCisgICAgeyAweDAwMDAwMDY5LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMTRlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwNDBlNTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwYzAwMDZjLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTcwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTcxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTcyLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDc2LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwMGIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDE4YzBlNTYyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDc4LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwYzAwMDc3LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDcwMGQ1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDg0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGNhMDg2LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDA0NWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDBlNWJjLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlNWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNWJjLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMTIwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMTIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAyLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODJlLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAyY2NhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlMWNjLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA1MGRlMWNkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDk2LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwYzBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDkzLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDAwMDk4LCAweDAwMDAwMDIwIH0sCisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMDlmLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGNhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTYwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDcwMGNlMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDliLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAyNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQwMGVlMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyNDBlNTFiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwODBlNTBhLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwODBlNTBiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMjIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDcwMGQ1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGIyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4ODBlNWJkLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMGMyMDg2LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDBlNWJiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4ODBlNWJjLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMDAwMGI1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwODBlNWJkLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMDBlNWJiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwODBlNWJjLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMjEwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyODAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwYzAwMGI5LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDQxODBlMDAwLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDAwMGJiLCAweDAwMDAwMDI0IH0sCisgICAgeyAweDAxMDAwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAxMDBlNTFkLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDA0NWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDA4MGI1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBmM2NlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1M2NmLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBmM2QyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1M2QzLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBmMzlkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1MzllLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAzYzAwODMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDIwMDA0NWUwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNWUxLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMDAxLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDcwMGQyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDBlMzk0LCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlOGM0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOGM1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOGM2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI5LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTJhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGQ2LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlOTI4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI5LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTJhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGRkLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwZTAwMTE2LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDcwMGUxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0MDFjLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDIwMDA1MGU3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlMDFkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGU0LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAyYzAyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDYwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGViLCAweDAwMDAwMDM0IH0sCisgICAgeyAweDAwMDAwMGU4LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDA4MDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweGMwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWQwMDE4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWEwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGZiLCAweDAwMDAwMDM0IH0sCisgICAgeyAweDAwMDAwMDRhLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDA1MDBhMDRhLCAweDAwMDAwMDA4IH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3QgdTMyIFJTNjkwX2NwX21pY3JvY29kZVtdWzJdID0geworICAgIHsgMHgwMDAwMDBkZCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBkZiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBhMCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBhNCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0YTU1NGI0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTRhNDQ2NywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg1NTUyNmY3NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTdlN2Q2NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWQ3NGFmNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWM5NGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjYzg5ODk4OSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjMzRhZDNjNSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg4ZTRhNGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YThhOGE4YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTBmOGM0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjA0MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM5MywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4YSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4ZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0MywgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGNjZTgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDAzYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgyMDAwNDUxZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjA1MSwgMHgwMDAwMDAyOCB9LAorICAgIHsgMHgwMDAwMDA1MSwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwODAwNDUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwYTA0YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1MiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2NjYTViNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTQzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0Y2NjZTA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODI3NDU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDU2NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwMjA2MSwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDIwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTAwMDA2NCwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDFmMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFjMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwMDA3MiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwZTVmOSwgMHgwMDAwMDBjMiB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDE0ZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDA2YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2OCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMDBiMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgxOGMwZTU2MiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3OCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMGMwMDA3NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDA3MDBjYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4NCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTA4NiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDEyMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDEyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyZSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmNjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTBkZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA5NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA5MywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5OCwgMHgwMDAwMDAyMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5ZiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg3MDBjZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDA5YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDBlZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDEwMDAwMCwgMHgwMDAwMDAyYyB9LAorICAgIHsgMHgwMDAwNDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwODAwNDVjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI0MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNGQwYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwZTUxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDgwZTUwYSwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTUwYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBjYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBiNywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDBjMjA4NiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwMDBiYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIxMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjgwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDBiZSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHg0MTgwZTAwMCwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwMDBjMCwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwMTAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMTAwZTUxZCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwODBiYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2MwMDgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgyMDAwNDVlMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTVlMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDAwMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwZTM5NCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZThjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjYywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkMywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMmMwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBkOCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwODAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHhjMDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDI1MDAxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDIzMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI1MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBlNiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDI0NDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDVjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI0MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNGQwYiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFkMDAxOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFhMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwNTAwYTA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHUzMiBSNTIwX2NwX21pY3JvY29kZVtdWzJdID0geworICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5ZCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0YTU1NGI0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTRhNDQ2NywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg1NTUyNmY3NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTdlN2Q2NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhlMGRhZTZmNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWM1NGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjODgyODI4MiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhiZjRhY2ZjMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg4N2IwNGFkNSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhiNTgzODM4MywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTBmODViYSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM5MywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4YSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4ZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0MywgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGNjZTgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDAzYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgyMDAwNDUxZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjA1MSwgMHgwMDAwMDAyOCB9LAorICAgIHsgMHgwMDAwMDA1MSwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwODAwNDUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwYTA0YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1MiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2NjYTViNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTQzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0Y2NjZTA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODI3NDU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDU2NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwMjA2MSwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDIwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTAwMDA2NCwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDFmMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFjMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwMDA3MiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwZTVmOSwgMHgwMDAwMDBjMiB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDE0ZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDA2YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2OCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMDBiMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgxOGMwZTU2MiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3OCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMGMwMDA3NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDA3MDBjNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4MCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyZSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmNjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTBkZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4ZiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5MSwgMHgwMDAwMDAyMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5OCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg3MDBjZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDA5NCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDBlZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwZTUxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDgwZTUwYSwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTUwYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBjNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBhNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIxMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjgwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDBhYiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHg0MTgwZTAwMCwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwMDBhZCwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwMTAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMTAwZTUxZCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwODBhNywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZjNjZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTNjZiwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZjNkMiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTNkMywgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZjM5ZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTM5ZSwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwM2MwMDgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgyMDAwNDVlMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTVlMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDAwMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwZTM5NCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZThjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjOCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjZiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHhkZWFkYmVlZiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDExNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBkMywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNTBlNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBkNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDAxYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTAxZCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmMwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkZSwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBkYiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwODAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHhjMDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTAwZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBlNSwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDE5ZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFkMDAxOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFhMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwNTAwYTA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorfTsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zdGF0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExYzE0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zdGF0ZS5jCkBAIC0wLDAgKzEsMzIwMyBAQAorLyogcmFkZW9uX3N0YXRlLmMgLS0gU3RhdGUgc3VwcG9ydCBmb3IgUmFkZW9uIC0qLSBsaW51eC1jIC0qLSAqLworLyoKKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJkcm1fc2FyZWEuaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBjbGllbnQgc3RhdGUgY2hlY2tpbmcgYW5kIGZpeHVwCisgKi8KKworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRybV9yYWRlb25fcHJpdmF0ZV90ICoKKwkJCQkJCSAgICBkZXZfcHJpdiwKKwkJCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKiBmaWxlX3ByaXYsCisJCQkJCQkgICAgdTMyICpvZmZzZXQpCit7CisJdTY0IG9mZiA9ICpvZmZzZXQ7CisJdTMyIGZiX2VuZCA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiArIGRldl9wcml2LT5mYl9zaXplIC0gMTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJLyogSHJtIC4uLiB0aGUgc3Rvcnkgb2YgdGhlIG9mZnNldCAuLi4gU28gdGhpcyBmdW5jdGlvbiBjb252ZXJ0cworCSAqIHRoZSB2YXJpb3VzIGlkZWFzIG9mIHdoYXQgdXNlcmxhbmQgY2xpZW50cyBtaWdodCBoYXZlIGZvciBhbgorCSAqIG9mZnNldCBpbiB0aGUgY2FyZCBhZGRyZXNzIHNwYWNlIGludG8gYW4gb2Zmc2V0IGludG8gdGhlIGNhcmQKKwkgKiBhZGRyZXNzIHNwYWNlIDopIFNvIHdpdGggYSBzYW5lIGNsaWVudCwgaXQgc2hvdWxkIGp1c3Qga2VlcAorCSAqIHRoZSB2YWx1ZSBpbnRhY3QgYW5kIGp1c3QgZG8gc29tZSBib3VuZGFyeSBjaGVja2luZy4gSG93ZXZlciwKKwkgKiBub3QgYWxsIGNsaWVudHMgYXJlIHNhbmUuIFNvbWUgb2xkZXIgY2xpZW50cyBwYXNzIHVzIDAgYmFzZWQKKwkgKiBvZmZzZXRzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgZnJhbWVidWZmZXIgYW5kIHNvbWUgbWF5CisJICogYXNzdW1lIHRoZSBBR1AgYXBlcnR1cmUgaXQgYXBwZW5kZWQgdG8gdGhlIGZyYW1lYnVmZmVyLCBzbyB3ZQorCSAqIHRyeSB0byBkZXRlY3QgdGhvc2UgY2FzZXMgYW5kIGZpeCB0aGVtIHVwLgorCSAqCisJICogTm90ZTogSXQgbWlnaHQgYmUgYSBnb29kIGlkZWEgaGVyZSB0byBtYWtlIHN1cmUgdGhlIG9mZnNldCBsYW5kcworCSAqIGluIHNvbWUgImFsbG93ZWQiIGFyZWEgdG8gcHJvdGVjdCB0aGluZ3MgbGlrZSB0aGUgUENJRSBHQVJULi4uCisJICovCisKKwkvKiBGaXJzdCwgdGhlIGJlc3QgY2FzZSwgdGhlIG9mZnNldCBhbHJlYWR5IGxhbmRzIGluIGVpdGhlciB0aGUKKwkgKiBmcmFtZWJ1ZmZlciBvciB0aGUgR0FSVCBtYXBwZWQgc3BhY2UKKwkgKi8KKwlpZiAocmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2ZmKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBPaywgdGhhdCBkaWRuJ3QgaGFwcGVuLi4uIG5vdyBjaGVjayBpZiB3ZSBoYXZlIGEgemVybyBiYXNlZAorCSAqIG9mZnNldCB0aGF0IGZpdHMgaW4gdGhlIGZyYW1lYnVmZmVyICsgZ2FydCBzcGFjZSwgYXBwbHkgdGhlCisJICogbWFnaWMgb2Zmc2V0IHdlIGdldCBmcm9tIFNFVFBBUkFNIG9yIGNhbGN1bGF0ZWQgZnJvbSBmYl9sb2NhdGlvbgorCSAqLworCWlmIChvZmYgPCAoZGV2X3ByaXYtPmZiX3NpemUgKyBkZXZfcHJpdi0+Z2FydF9zaXplKSkgeworCQlyYWRlb25fcHJpdiA9IGZpbGVfcHJpdi0+ZHJpdmVyX3ByaXY7CisJCW9mZiArPSByYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhOworCX0KKworCS8qIEZpbmFsbHksIGFzc3VtZSB3ZSBhaW1lZCBhdCBhIEdBUlQgb2Zmc2V0IGlmIGJleW9uZCB0aGUgZmIgKi8KKwlpZiAob2ZmID4gZmJfZW5kKQorCQlvZmYgPSBvZmYgLSBmYl9lbmQgLSAxICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7CisKKwkvKiBOb3cgcmVjaGVjayBhbmQgZmFpbCBpZiBvdXQgb2YgYm91bmRzICovCisJaWYgKHJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIG9mZikpIHsKKwkJRFJNX0RFQlVHKCJvZmZzZXQgZml4ZWQgdXAgdG8gMHgleFxuIiwgKHVuc2lnbmVkIGludClvZmYpOworCQkqb2Zmc2V0ID0gb2ZmOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKgorCQkJCQkJICAgICBkZXZfcHJpdiwKKwkJCQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkJCQkgICAgIGludCBpZCwgdTMyICpkYXRhKQoreworCXN3aXRjaCAoaWQpIHsKKworCWNhc2UgUkFERU9OX0VNSVRfUFBfTUlTQzoKKwkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCSAgICAmZGF0YVsoUkFERU9OX1JCM0RfREVQVEhPRkZTRVQgLSBSQURFT05fUFBfTUlTQykgLyA0XSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBkZXB0aCBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fRU1JVF9QUF9DTlRMOgorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJICAgICZkYXRhWyhSQURFT05fUkIzRF9DT0xPUk9GRlNFVCAtIFJBREVPTl9QUF9DTlRMKSAvIDRdKSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGNvbG91ciBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF8xOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF80OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzU6CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmZGF0YVswXSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBSMjAwIHRleHR1cmUgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fRU1JVF9QUF9UWEZJTFRFUl8wOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzI6CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkgICAgJmRhdGFbKFJBREVPTl9QUF9UWE9GRlNFVF8wIC0gUkFERU9OX1BQX1RYRklMVEVSXzApIC8gNF0pKSB7CisJCQlEUk1fRVJST1IoIkludmFsaWQgUjEwMCB0ZXh0dXJlIG9mZnNldFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKworCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzE6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18yOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzQ6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU181OnsKKwkJCWludCBpOworCQkJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgeworCQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwKKwkJCQkJCQkJICBmaWxlX3ByaXYsCisJCQkJCQkJCSAgJmRhdGFbaV0pKSB7CisJCQkJCURSTV9FUlJPUgorCQkJCQkgICAgKCJJbnZhbGlkIFIyMDAgY3ViaWMgdGV4dHVyZSBvZmZzZXRcbiIpOworCQkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCQl9CisJCQl9CisJCQlicmVhazsKKwkJfQorCisJY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QwOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDI6eworCQkJaW50IGk7CisJCQlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CisJCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LAorCQkJCQkJCQkgIGZpbGVfcHJpdiwKKwkJCQkJCQkJICAmZGF0YVtpXSkpIHsKKwkJCQkJRFJNX0VSUk9SCisJCQkJCSAgICAoIkludmFsaWQgUjEwMCBjdWJpYyB0ZXh0dXJlIG9mZnNldFxuIik7CisJCQkJCXJldHVybiAtRUlOVkFMOworCQkJCX0KKwkJCX0KKwkJfQorCQlicmVhazsKKworCWNhc2UgUjIwMF9FTUlUX1ZBUF9DVEw6eworCQkJUklOR19MT0NBTFM7CisJCQlCRUdJTl9SSU5HKDIpOworCQkJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOworCQkJQURWQU5DRV9SSU5HKCk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFJBREVPTl9FTUlUX1JCM0RfQ09MT1JQSVRDSDoKKwljYXNlIFJBREVPTl9FTUlUX1JFX0xJTkVfUEFUVEVSTjoKKwljYXNlIFJBREVPTl9FTUlUX1NFX0xJTkVfV0lEVEg6CisJY2FzZSBSQURFT05fRU1JVF9QUF9MVU1fTUFUUklYOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfUk9UX01BVFJJWF8wOgorCWNhc2UgUkFERU9OX0VNSVRfUkIzRF9TVEVOQ0lMUkVGTUFTSzoKKwljYXNlIFJBREVPTl9FTUlUX1NFX1ZQT1JUX1hTQ0FMRToKKwljYXNlIFJBREVPTl9FTUlUX1NFX0NOVEw6CisJY2FzZSBSQURFT05fRU1JVF9TRV9DTlRMX1NUQVRVUzoKKwljYXNlIFJBREVPTl9FTUlUX1JFX01JU0M6CisJY2FzZSBSQURFT05fRU1JVF9QUF9CT1JERVJfQ09MT1JfMDoKKwljYXNlIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8xOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzI6CisJY2FzZSBSQURFT05fRU1JVF9TRV9aQklBU19GQUNUT1I6CisJY2FzZSBSQURFT05fRU1JVF9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQ6CisJY2FzZSBSQURFT05fRU1JVF9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8wOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzE6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfMjoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8zOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzQ6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNToKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF82OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzc6CisJY2FzZSBSMjAwX0VNSVRfVENMX0xJR0hUX01PREVMX0NUTF8wOgorCWNhc2UgUjIwMF9FTUlUX1RGQUNUT1JfMDoKKwljYXNlIFIyMDBfRU1JVF9WVFhfRk1UXzA6CisJY2FzZSBSMjAwX0VNSVRfTUFUUklYX1NFTEVDVF8wOgorCWNhc2UgUjIwMF9FTUlUX1RFWF9QUk9DX0NUTF8yOgorCWNhc2UgUjIwMF9FTUlUX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEw6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8xOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl80OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzU6CisJY2FzZSBSMjAwX0VNSVRfVlRFX0NOVEw6CisJY2FzZSBSMjAwX0VNSVRfT1VUUFVUX1ZUWF9DT01QX1NFTDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UQU1fREVCVUczOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NOVExfWDoKKwljYXNlIFIyMDBfRU1JVF9SQjNEX0RFUFRIWFlfT0ZGU0VUOgorCWNhc2UgUjIwMF9FTUlUX1JFX0FVWF9TQ0lTU09SX0NOVEw6CisJY2FzZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8wOgorCWNhc2UgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMToKKwljYXNlIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzI6CisJY2FzZSBSMjAwX0VNSVRfU0VfVkFQX0NOVExfU1RBVFVTOgorCWNhc2UgUjIwMF9FTUlUX1NFX1ZUWF9TVEFURV9DTlRMOgorCWNhc2UgUjIwMF9FTUlUX1JFX1BPSU5UU0laRToKKwljYXNlIFIyMDBfRU1JVF9UQ0xfSU5QVVRfVlRYX1ZFQ1RPUl9BRERSXzA6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18xOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU180OgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzU6CisJY2FzZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8wOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzI6CisJY2FzZSBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SOgorCWNhc2UgUjIwMF9FTUlUX1RDTF9QT0lOVF9TUFJJVEVfQ05UTDoKKwljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzA6CisJY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18xOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMjoKKwljYXNlIFIyMDBfRU1JVF9QUF9UUklfUEVSRl9DTlRMOgorCWNhc2UgUjIwMF9FTUlUX1BQX0FGU18wOgorCWNhc2UgUjIwMF9FTUlUX1BQX0FGU18xOgorCWNhc2UgUjIwMF9FTUlUX0FURl9URkFDVE9SOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzA6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMToKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8yOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzM6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfNDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF81OgorCWNhc2UgUjIwMF9FTUlUX1ZBUF9QVlNfQ05UTDoKKwkJLyogVGhlc2UgcGFja2V0cyBkb24ndCBjb250YWluIG1lbW9yeSBvZmZzZXRzICovCisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJVbmtub3duIHN0YXRlIHBhY2tldCBJRCAlZFxuIiwgaWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0Myhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqCisJCQkJCQkgICAgIGRldl9wcml2LAorCQkJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkJCSAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICoKKwkJCQkJCSAgICAgY21kYnVmLAorCQkJCQkJICAgICB1bnNpZ25lZCBpbnQgKmNtZHN6KQoreworCXUzMiAqY21kID0gKHUzMiAqKSBjbWRidWYtPmJ1ZjsKKwl1MzIgb2Zmc2V0LCBuYXJyYXlzOworCWludCBjb3VudCwgaSwgazsKKworCSpjbWRzeiA9IDIgKyAoKGNtZFswXSAmIFJBREVPTl9DUF9QQUNLRVRfQ09VTlRfTUFTSykgPj4gMTYpOworCisJaWYgKChjbWRbMF0gJiAweGMwMDAwMDAwKSAhPSBSQURFT05fQ1BfUEFDS0VUMykgeworCQlEUk1fRVJST1IoIk5vdCBhIHR5cGUgMyBwYWNrZXRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoNCAqICpjbWRzeiA+IGNtZGJ1Zi0+YnVmc3opIHsKKwkJRFJNX0VSUk9SKCJQYWNrZXQgc2l6ZSBsYXJnZXIgdGhhbiBzaXplIG9mIGRhdGEgcHJvdmlkZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2goY21kWzBdICYgMHhmZjAwKSB7CisJLyogWFhYIEFyZSB0aGVyZSBvbGQgZHJpdmVycyBuZWVkaW5nIG90aGVyIHBhY2tldHM/ICovCisKKwljYXNlIFJBREVPTl8zRF9EUkFXX0lNTUQ6CisJY2FzZSBSQURFT05fM0RfRFJBV19WQlVGOgorCWNhc2UgUkFERU9OXzNEX0RSQVdfSU5EWDoKKwljYXNlIFJBREVPTl9XQUlUX0ZPUl9JRExFOgorCWNhc2UgUkFERU9OX0NQX05PUDoKKwljYXNlIFJBREVPTl8zRF9DTEVBUl9aTUFTSzoKKy8qCWNhc2UgUkFERU9OX0NQX05FWFRfQ0hBUjoKKwljYXNlIFJBREVPTl9DUF9QTFlfTkVYVFNDQU46CisJY2FzZSBSQURFT05fQ1BfU0VUX1NDSVNTT1JTOiAqLyAvKiBwcm9iYWJseSBzYWZlIGJ1dCB3aWxsIG5ldmVyIG5lZWQgdGhlbT8gKi8KKwkJLyogdGhlc2UgcGFja2V0cyBhcmUgc2FmZSAqLworCQlicmVhazsKKworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU1NRF8yOgorCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfVkJVRl8yOgorCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU5EWF8yOgorCWNhc2UgUkFERU9OXzNEX0NMRUFSX0hJWjoKKwkJLyogc2FmZSBidXQgcjIwMCBvbmx5ICovCisJCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gIT0gVUNPREVfUjIwMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIDNkIHBhY2tldCBmb3IgcjEwMC1jbGFzcyBjaGlwXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fM0RfTE9BRF9WQlBOVFI6CisJCWNvdW50ID0gKGNtZFswXSA+PiAxNikgJiAweDNmZmY7CisKKwkJaWYgKGNvdW50ID4gMTgpIHsgLyogMTIgYXJyYXlzIG1heCAqLworCQkJRFJNX0VSUk9SKCJUb28gbGFyZ2UgcGF5bG9hZCBpbiAzRF9MT0FEX1ZCUE5UUiAoY291bnQ9JWQpXG4iLAorCQkJCSAgY291bnQpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBjYXJlZnVsbHkgY2hlY2sgcGFja2V0IGNvbnRlbnRzICovCisJCW5hcnJheXMgPSBjbWRbMV0gJiB+MHhjMDAwOworCQlrID0gMDsKKwkJaSA9IDI7CisJCXdoaWxlICgoayA8IG5hcnJheXMpICYmIChpIDwgKGNvdW50ICsgMikpKSB7CisJCQlpKys7CQkvKiBza2lwIGF0dHJpYnV0ZSBmaWVsZCAqLworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCQkJICAmY21kW2ldKSkgeworCQkJCURSTV9FUlJPUgorCQkJCSAgICAoIkludmFsaWQgb2Zmc2V0IChrPSVkIGk9JWQpIGluIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCisJCQkJICAgICBrLCBpKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJCWsrKzsKKwkJCWkrKzsKKwkJCWlmIChrID09IG5hcnJheXMpCisJCQkJYnJlYWs7CisJCQkvKiBoYXZlIG9uZSBtb3JlIHRvIHByb2Nlc3MsIHRoZXkgY29tZSBpbiBwYWlycyAqLworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LAorCQkJCQkJCSAgZmlsZV9wcml2LCAmY21kW2ldKSkKKwkJCXsKKwkJCQlEUk1fRVJST1IKKwkJCQkgICAgKCJJbnZhbGlkIG9mZnNldCAoaz0lZCBpPSVkKSBpbiAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQuXG4iLAorCQkJCSAgICAgaywgaSk7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQlrKys7CisJCQlpKys7CisJCX0KKwkJLyogZG8gdGhlIGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdCA/ICovCisJCWlmICgoayAhPSBuYXJyYXlzKSB8fCAoaSAhPSAoY291bnQgKyAyKSkpIHsKKwkJCURSTV9FUlJPUgorCQkJICAgICgiTWFsZm9ybWVkIDNEX0xPQURfVkJQTlRSIHBhY2tldCAoaz0lZCBpPSVkIG5hcnJheXM9JWQgY291bnQrMT0lZCkuXG4iLAorCQkJICAgICAgaywgaSwgbmFycmF5cywgY291bnQgKyAxKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fM0RfUk5EUl9HRU5fSU5EWF9QUklNOgorCQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uICE9IFVDT0RFX1IxMDApIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCAzZCBwYWNrZXQgZm9yIHIyMDAtY2xhc3MgY2hpcFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJmNtZFsxXSkpIHsKKwkJCQlEUk1fRVJST1IoIkludmFsaWQgcm5kcl9nZW5faW5keCBvZmZzZXRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fQ1BfSU5EWF9CVUZGRVI6CisJCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gIT0gVUNPREVfUjIwMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIDNkIHBhY2tldCBmb3IgcjEwMC1jbGFzcyBjaGlwXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWlmICgoY21kWzFdICYgMHg4MDAwZmZmZikgIT0gMHg4MDAwMDgxMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIHJlZyBhZGRyZXNzICUwOFhcbiIsIGNtZFsxXSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJmNtZFsyXSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciBvZmZzZXQgaXMgJTA4WFxuIiwgY21kWzJdKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fQ05UTF9IT1NUREFUQV9CTFQ6CisJY2FzZSBSQURFT05fQ05UTF9QQUlOVF9NVUxUSToKKwljYXNlIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSToKKwkJLyogTVNCIG9mIG9wY29kZTogbmV4dCBEV09SRCBHVUlfQ05UTCAqLworCQlpZiAoY21kWzFdICYgKFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMCisJCQkgICAgICB8IFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMKSkgeworCQkJb2Zmc2V0ID0gY21kWzJdIDw8IDEwOworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0CisJCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsICZvZmZzZXQpKSB7CisJCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGZpcnN0IHBhY2tldCBvZmZzZXRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQkJY21kWzJdID0gKGNtZFsyXSAmIDB4ZmZjMDAwMDApIHwgb2Zmc2V0ID4+IDEwOworCQl9CisKKwkJaWYgKChjbWRbMV0gJiBSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCkgJiYKKwkJICAgIChjbWRbMV0gJiBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKKwkJCW9mZnNldCA9IGNtZFszXSA8PCAxMDsKKwkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldAorCQkJICAgIChkZXZfcHJpdiwgZmlsZV9wcml2LCAmb2Zmc2V0KSkgeworCQkJCURSTV9FUlJPUigiSW52YWxpZCBzZWNvbmQgcGFja2V0IG9mZnNldFxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQljbWRbM10gPSAoY21kWzNdICYgMHhmZmMwMDAwMCkgfCBvZmZzZXQgPj4gMTA7CisJCX0KKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlEUk1fRVJST1IoIkludmFsaWQgcGFja2V0IHR5cGUgJXhcbiIsIGNtZFswXSAmIDB4ZmYwMCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBoYXJkd2FyZSBzdGF0ZSBwcm9ncmFtbWluZyBmdW5jdGlvbnMKKyAqLworCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHJhZGVvbl9lbWl0X2NsaXBfcmVjdChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAorCQkJCQkgICAgIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICogYm94KQoreworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCIgICBib3g6ICB4MT0lZCB5MT0lZCAgeDI9JWQgeTI9JWRcbiIsCisJCSAgYm94LT54MSwgYm94LT55MSwgYm94LT54MiwgYm94LT55Mik7CisKKwlCRUdJTl9SSU5HKDQpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX1RPUF9MRUZULCAwKSk7CisJT1VUX1JJTkcoKGJveC0+eTEgPDwgMTYpIHwgYm94LT54MSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfV0lEVEhfSEVJR0hULCAwKSk7CisJT1VUX1JJTkcoKChib3gtPnkyIC0gMSkgPDwgMTYpIHwgKGJveC0+eDIgLSAxKSk7CisJQURWQU5DRV9SSU5HKCk7Cit9CisKKy8qIEVtaXQgMS4xIHN0YXRlCisgKi8KK3N0YXRpYyBpbnQgcmFkZW9uX2VtaXRfc3RhdGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgIGRybV9yYWRlb25fY29udGV4dF9yZWdzX3QgKiBjdHgsCisJCQkgICAgIGRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3QgKiB0ZXgsCisJCQkgICAgIHVuc2lnbmVkIGludCBkaXJ0eSkKK3sKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoImRpcnR5PTB4JTA4eFxuIiwgZGlydHkpOworCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9DT05URVhUKSB7CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmY3R4LT5yYjNkX2RlcHRob2Zmc2V0KSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlcHRoIGJ1ZmZlciBvZmZzZXRcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgJmN0eC0+cmIzZF9jb2xvcm9mZnNldCkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBkZXB0aCBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJQkVHSU5fUklORygxNCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX01JU0MsIDYpKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9taXNjKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9mb2dfY29sb3IpOworCQlPVVRfUklORyhjdHgtPnJlX3NvbGlkX2NvbG9yKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2JsZW5kY250bCk7CisJCU9VVF9SSU5HKGN0eC0+cmIzZF9kZXB0aG9mZnNldCk7CisJCU9VVF9SSU5HKGN0eC0+cmIzZF9kZXB0aHBpdGNoKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3pzdGVuY2lsY250bCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0NOVEwsIDIpKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9jbnRsKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2NudGwpOworCQlPVVRfUklORyhjdHgtPnJiM2RfY29sb3JvZmZzZXQpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SQjNEX0NPTE9SUElUQ0gsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2NvbG9ycGl0Y2gpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1ZFUlRGTVQpIHsKKwkJQkVHSU5fUklORygyKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfQ09PUkRfRk1ULCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY29vcmRfZm10KTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9MSU5FKSB7CisJCUJFR0lOX1JJTkcoNSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX0xJTkVfUEFUVEVSTiwgMSkpOworCQlPVVRfUklORyhjdHgtPnJlX2xpbmVfcGF0dGVybik7CisJCU9VVF9SSU5HKGN0eC0+cmVfbGluZV9zdGF0ZSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0xJTkVfV0lEVEgsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV9saW5lX3dpZHRoKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9CVU1QTUFQKSB7CisJCUJFR0lOX1JJTkcoNSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0xVTV9NQVRSSVgsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9sdW1fbWF0cml4KTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfUk9UX01BVFJJWF8wLCAxKSk7CisJCU9VVF9SSU5HKGN0eC0+cHBfcm90X21hdHJpeF8wKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9yb3RfbWF0cml4XzEpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX01BU0tTKSB7CisJCUJFR0lOX1JJTkcoNCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssIDIpKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3N0ZW5jaWxyZWZtYXNrKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3JvcGNudGwpOworCQlPVVRfUklORyhjdHgtPnJiM2RfcGxhbmVtYXNrKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9WSUVXUE9SVCkgeworCQlCRUdJTl9SSU5HKDcpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9WUE9SVF9YU0NBTEUsIDUpKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF94c2NhbGUpOworCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3hvZmZzZXQpOworCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3lzY2FsZSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfeW9mZnNldCk7CisJCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfenNjYWxlKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF96b2Zmc2V0KTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9TRVRVUCkgeworCQlCRUdJTl9SSU5HKDQpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9DTlRMLCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY250bCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0NOVExfU1RBVFVTLCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY250bF9zdGF0dXMpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX01JU0MpIHsKKwkJQkVHSU5fUklORygyKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfTUlTQywgMCkpOworCQlPVVRfUklORyhjdHgtPnJlX21pc2MpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1RFWDApIHsKKwkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCQkgICZ0ZXhbMF0ucHBfdHhvZmZzZXQpKSB7CisJCQlEUk1fRVJST1IoIkludmFsaWQgdGV4dHVyZSBvZmZzZXQgZm9yIHVuaXQgMFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCUJFR0lOX1JJTkcoOSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX1RYRklMVEVSXzAsIDUpKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4ZmlsdGVyKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4Zm9ybWF0KTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4b2Zmc2V0KTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4Y2JsZW5kKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4YWJsZW5kKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3RmYWN0b3IpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMCwgMCkpOworCQlPVVRfUklORyh0ZXhbMF0ucHBfYm9yZGVyX2NvbG9yKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9URVgxKSB7CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmdGV4WzFdLnBwX3R4b2Zmc2V0KSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHRleHR1cmUgb2Zmc2V0IGZvciB1bml0IDFcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlCRUdJTl9SSU5HKDkpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9UWEZJTFRFUl8xLCA1KSk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGZpbHRlcik7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGZvcm1hdCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eG9mZnNldCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGNibGVuZCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGFibGVuZCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90ZmFjdG9yKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQk9SREVSX0NPTE9SXzEsIDApKTsKKwkJT1VUX1JJTkcodGV4WzFdLnBwX2JvcmRlcl9jb2xvcik7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVEVYMikgeworCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgJnRleFsyXS5wcF90eG9mZnNldCkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCB0ZXh0dXJlIG9mZnNldCBmb3IgdW5pdCAyXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJQkVHSU5fUklORyg5KTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfVFhGSUxURVJfMiwgNSkpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhmaWx0ZXIpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhmb3JtYXQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhvZmZzZXQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhjYmxlbmQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhhYmxlbmQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdGZhY3Rvcik7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yLCAwKSk7CisJCU9VVF9SSU5HKHRleFsyXS5wcF9ib3JkZXJfY29sb3IpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogRW1pdCAxLjIgc3RhdGUKKyAqLworc3RhdGljIGludCByYWRlb25fZW1pdF9zdGF0ZTIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJICAgICAgZHJtX3JhZGVvbl9zdGF0ZV90ICogc3RhdGUpCit7CisJUklOR19MT0NBTFM7CisKKwlpZiAoc3RhdGUtPmRpcnR5ICYgUkFERU9OX1VQTE9BRF9aQklBUykgeworCQlCRUdJTl9SSU5HKDMpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9aQklBU19GQUNUT1IsIDEpKTsKKwkJT1VUX1JJTkcoc3RhdGUtPmNvbnRleHQyLnNlX3piaWFzX2ZhY3Rvcik7CisJCU9VVF9SSU5HKHN0YXRlLT5jb250ZXh0Mi5zZV96Ymlhc19jb25zdGFudCk7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCXJldHVybiByYWRlb25fZW1pdF9zdGF0ZShkZXZfcHJpdiwgZmlsZV9wcml2LCAmc3RhdGUtPmNvbnRleHQsCisJCQkJIHN0YXRlLT50ZXgsIHN0YXRlLT5kaXJ0eSk7Cit9CisKKy8qIE5ldyAoMS4zKSBzdGF0ZSBtZWNoYW5pc20uICAzIGNvbW1hbmRzIChwYWNrZXQsIHNjYWxhciwgdmVjdG9yKSBpbgorICogMS4zIGNtZGJ1ZmZlcnMgYWxsb3cgYWxsIHByZXZpb3VzIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCBhcworICogdGhlIHRjbCBzY2FsYXIgYW5kIHZlY3RvciBhcmVhcy4KKyAqLworc3RhdGljIHN0cnVjdCB7CisJaW50IHN0YXJ0OworCWludCBsZW47CisJY29uc3QgY2hhciAqbmFtZTsKK30gcGFja2V0W1JBREVPTl9NQVhfU1RBVEVfUEFDS0VUU10gPSB7CisJe1JBREVPTl9QUF9NSVNDLCA3LCAiUkFERU9OX1BQX01JU0MifSwKKwl7UkFERU9OX1BQX0NOVEwsIDMsICJSQURFT05fUFBfQ05UTCJ9LAorCXtSQURFT05fUkIzRF9DT0xPUlBJVENILCAxLCAiUkFERU9OX1JCM0RfQ09MT1JQSVRDSCJ9LAorCXtSQURFT05fUkVfTElORV9QQVRURVJOLCAyLCAiUkFERU9OX1JFX0xJTkVfUEFUVEVSTiJ9LAorCXtSQURFT05fU0VfTElORV9XSURUSCwgMSwgIlJBREVPTl9TRV9MSU5FX1dJRFRIIn0sCisJe1JBREVPTl9QUF9MVU1fTUFUUklYLCAxLCAiUkFERU9OX1BQX0xVTV9NQVRSSVgifSwKKwl7UkFERU9OX1BQX1JPVF9NQVRSSVhfMCwgMiwgIlJBREVPTl9QUF9ST1RfTUFUUklYXzAifSwKKwl7UkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssIDMsICJSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSyJ9LAorCXtSQURFT05fU0VfVlBPUlRfWFNDQUxFLCA2LCAiUkFERU9OX1NFX1ZQT1JUX1hTQ0FMRSJ9LAorCXtSQURFT05fU0VfQ05UTCwgMiwgIlJBREVPTl9TRV9DTlRMIn0sCisJe1JBREVPTl9TRV9DTlRMX1NUQVRVUywgMSwgIlJBREVPTl9TRV9DTlRMX1NUQVRVUyJ9LAorCXtSQURFT05fUkVfTUlTQywgMSwgIlJBREVPTl9SRV9NSVNDIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8wLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzAifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8wLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8wIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8xLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzEifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8yLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzIifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yIn0sCisJe1JBREVPTl9TRV9aQklBU19GQUNUT1IsIDIsICJSQURFT05fU0VfWkJJQVNfRkFDVE9SIn0sCisJe1JBREVPTl9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQsIDExLCAiUkFERU9OX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCJ9LAorCXtSQURFT05fU0VfVENMX01BVEVSSUFMX0VNTUlTU0lWRV9SRUQsIDE3LAorCQkgICAgIlJBREVPTl9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzAsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzAifSwKKwl7UjIwMF9QUF9UWENCTEVORF8xLCA0LCAiUjIwMF9QUF9UWENCTEVORF8xIn0sCisJe1IyMDBfUFBfVFhDQkxFTkRfMiwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfMiJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzMsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzMifSwKKwl7UjIwMF9QUF9UWENCTEVORF80LCA0LCAiUjIwMF9QUF9UWENCTEVORF80In0sCisJe1IyMDBfUFBfVFhDQkxFTkRfNSwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfNSJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzYsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzYifSwKKwl7UjIwMF9QUF9UWENCTEVORF83LCA0LCAiUjIwMF9QUF9UWENCTEVORF83In0sCisJe1IyMDBfU0VfVENMX0xJR0hUX01PREVMX0NUTF8wLCA2LCAiUjIwMF9TRV9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAifSwKKwl7UjIwMF9QUF9URkFDVE9SXzAsIDYsICJSMjAwX1BQX1RGQUNUT1JfMCJ9LAorCXtSMjAwX1NFX1ZUWF9GTVRfMCwgNCwgIlIyMDBfU0VfVlRYX0ZNVF8wIn0sCisJe1IyMDBfU0VfVkFQX0NOVEwsIDEsICJSMjAwX1NFX1ZBUF9DTlRMIn0sCisJe1IyMDBfU0VfVENMX01BVFJJWF9TRUxfMCwgNSwgIlIyMDBfU0VfVENMX01BVFJJWF9TRUxfMCJ9LAorCXtSMjAwX1NFX1RDTF9URVhfUFJPQ19DVExfMiwgNSwgIlIyMDBfU0VfVENMX1RFWF9QUk9DX0NUTF8yIn0sCisJe1IyMDBfU0VfVENMX1VDUF9WRVJUX0JMRU5EX0NUTCwgMSwgIlIyMDBfU0VfVENMX1VDUF9WRVJUX0JMRU5EX0NUTCJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzAsIDYsICJSMjAwX1BQX1RYRklMVEVSXzAifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl8xLCA2LCAiUjIwMF9QUF9UWEZJTFRFUl8xIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMiwgNiwgIlIyMDBfUFBfVFhGSUxURVJfMiJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzMsIDYsICJSMjAwX1BQX1RYRklMVEVSXzMifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl80LCA2LCAiUjIwMF9QUF9UWEZJTFRFUl80In0sCisJe1IyMDBfUFBfVFhGSUxURVJfNSwgNiwgIlIyMDBfUFBfVFhGSUxURVJfNSJ9LAorCXtSMjAwX1BQX1RYT0ZGU0VUXzAsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzAifSwKKwl7UjIwMF9QUF9UWE9GRlNFVF8xLCAxLCAiUjIwMF9QUF9UWE9GRlNFVF8xIn0sCisJe1IyMDBfUFBfVFhPRkZTRVRfMiwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfMiJ9LAorCXtSMjAwX1BQX1RYT0ZGU0VUXzMsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzMifSwKKwl7UjIwMF9QUF9UWE9GRlNFVF80LCAxLCAiUjIwMF9QUF9UWE9GRlNFVF80In0sCisJe1IyMDBfUFBfVFhPRkZTRVRfNSwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfNSJ9LAorCXtSMjAwX1NFX1ZURV9DTlRMLCAxLCAiUjIwMF9TRV9WVEVfQ05UTCJ9LAorCXtSMjAwX1NFX1RDTF9PVVRQVVRfVlRYX0NPTVBfU0VMLCAxLAorCSAiUjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCJ9LAorCXtSMjAwX1BQX1RBTV9ERUJVRzMsIDEsICJSMjAwX1BQX1RBTV9ERUJVRzMifSwKKwl7UjIwMF9QUF9DTlRMX1gsIDEsICJSMjAwX1BQX0NOVExfWCJ9LAorCXtSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQsIDEsICJSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQifSwKKwl7UjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMLCAxLCAiUjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMIn0sCisJe1IyMDBfUkVfU0NJU1NPUl9UTF8wLCAyLCAiUjIwMF9SRV9TQ0lTU09SX1RMXzAifSwKKwl7UjIwMF9SRV9TQ0lTU09SX1RMXzEsIDIsICJSMjAwX1JFX1NDSVNTT1JfVExfMSJ9LAorCXtSMjAwX1JFX1NDSVNTT1JfVExfMiwgMiwgIlIyMDBfUkVfU0NJU1NPUl9UTF8yIn0sCisJe1IyMDBfU0VfVkFQX0NOVExfU1RBVFVTLCAxLCAiUjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMifSwKKwl7UjIwMF9TRV9WVFhfU1RBVEVfQ05UTCwgMSwgIlIyMDBfU0VfVlRYX1NUQVRFX0NOVEwifSwKKwl7UjIwMF9SRV9QT0lOVFNJWkUsIDEsICJSMjAwX1JFX1BPSU5UU0laRSJ9LAorCXtSMjAwX1NFX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCwgNCwKKwkJICAgICJSMjAwX1NFX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCJ9LAorCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzAsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzAifSwJLyogNjEgKi8KKwl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzAifSwgLyogNjIgKi8KKwl7UjIwMF9QUF9DVUJJQ19GQUNFU18xLCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU18xIn0sCisJe1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8xIn0sCisJe1IyMDBfUFBfQ1VCSUNfRkFDRVNfMiwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfMiJ9LAorCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yLCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMiJ9LAorCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzMsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzMifSwKKwl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMywgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzMifSwKKwl7UjIwMF9QUF9DVUJJQ19GQUNFU180LCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU180In0sCisJe1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV80In0sCisJe1IyMDBfUFBfQ1VCSUNfRkFDRVNfNSwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfNSJ9LAorCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81LCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNSJ9LAorCXtSQURFT05fUFBfVEVYX1NJWkVfMCwgMiwgIlJBREVPTl9QUF9URVhfU0laRV8wIn0sCisJe1JBREVPTl9QUF9URVhfU0laRV8xLCAyLCAiUkFERU9OX1BQX1RFWF9TSVpFXzEifSwKKwl7UkFERU9OX1BQX1RFWF9TSVpFXzIsIDIsICJSQURFT05fUFBfVEVYX1NJWkVfMiJ9LAorCXtSMjAwX1JCM0RfQkxFTkRDT0xPUiwgMywgIlIyMDBfUkIzRF9CTEVORENPTE9SIn0sCisJe1IyMDBfU0VfVENMX1BPSU5UX1NQUklURV9DTlRMLCAxLCAiUjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzAsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMSJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzAifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzIsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMiJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QyXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QyXzAifSwKKwl7UjIwMF9QUF9UUklfUEVSRiwgMiwgIlIyMDBfUFBfVFJJX1BFUkYifSwKKwl7UjIwMF9QUF9BRlNfMCwgMzIsICJSMjAwX1BQX0FGU18wIn0sICAgICAvKiA4NSAqLworCXtSMjAwX1BQX0FGU18xLCAzMiwgIlIyMDBfUFBfQUZTXzEifSwKKwl7UjIwMF9QUF9URkFDVE9SXzAsIDgsICJSMjAwX0FURl9URkFDVE9SIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMCwgOCwgIlIyMDBfUFBfVFhDVExBTExfMCJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzEsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzEifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl8yLCA4LCAiUjIwMF9QUF9UWENUTEFMTF8yIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMywgOCwgIlIyMDBfUFBfVFhDVExBTExfMyJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzQsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzQifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl81LCA4LCAiUjIwMF9QUF9UWENUTEFMTF81In0sCisJe1IyMDBfVkFQX1BWU19DTlRMXzEsIDIsICJSMjAwX1ZBUF9QVlNfQ05UTCJ9LAorfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogUGVyZm9ybWFuY2UgbW9uaXRvcmluZyBmdW5jdGlvbnMKKyAqLworCitzdGF0aWMgdm9pZCByYWRlb25fY2xlYXJfYm94KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkgICAgIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLCBpbnQgciwgaW50IGcsIGludCBiKQoreworCXUzMiBjb2xvcjsKKwlSSU5HX0xPQ0FMUzsKKworCXggKz0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmJveGVzWzBdLngxOworCXkgKz0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmJveGVzWzBdLnkxOworCisJc3dpdGNoIChkZXZfcHJpdi0+Y29sb3JfZm10KSB7CisJY2FzZSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NToKKwkJY29sb3IgPSAoKChyICYgMHhmOCkgPDwgOCkgfAorCQkJICgoZyAmIDB4ZmMpIDw8IDMpIHwgKChiICYgMHhmOCkgPj4gMykpOworCQlicmVhazsKKwljYXNlIFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg6CisJZGVmYXVsdDoKKwkJY29sb3IgPSAoKCgweGZmKSA8PCAyNCkgfCAociA8PCAxNikgfCAoZyA8PCA4KSB8IGIpOworCQlicmVhazsKKwl9CisKKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9EUF9XUklURV9NQVNLLCAwKSk7CisJT1VUX1JJTkcoMHhmZmZmZmZmZik7CisJQURWQU5DRV9SSU5HKCk7CisKKwlCRUdJTl9SSU5HKDYpOworCisJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkgKGRldl9wcml2LT5jb2xvcl9mbXQgPDwgOCkgfAorCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkgUkFERU9OX1JPUDNfUCB8IFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyk7CisKKwlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMSkgeworCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKKwl9IGVsc2UgeworCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOworCX0KKworCU9VVF9SSU5HKGNvbG9yKTsKKworCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOworCisJQURWQU5DRV9SSU5HKCk7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9wZXJmb3JtYW5jZV9ib3hlcyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCS8qIENvbGxhcHNlIHZhcmlvdXMgdGhpbmdzIGludG8gYSB3YWl0IGZsYWcgLS0gdHJ5aW5nIHRvCisJICogZ3Vlc3MgaWYgdXNlcnNwYXNlIHNsZXB0IC0tIGJldHRlciBqdXN0IHRvIGhhdmUgdGhlbSB0ZWxsIHVzLgorCSAqLworCWlmIChkZXZfcHJpdi0+c3RhdHMubGFzdF9mcmFtZV9yZWFkcyA+IDEgfHwKKwkgICAgZGV2X3ByaXYtPnN0YXRzLmxhc3RfY2xlYXJfcmVhZHMgPiBkZXZfcHJpdi0+c3RhdHMuY2xlYXJzKSB7CisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKwl9CisKKwlpZiAoZGV2X3ByaXYtPnN0YXRzLmZyZWVsaXN0X2xvb3BzKSB7CisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKwl9CisKKwkvKiBQdXJwbGUgYm94IGZvciBwYWdlIGZsaXBwaW5nCisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfRkxJUCkKKwkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNCwgNCwgOCwgOCwgMjU1LCAwLCAyNTUpOworCisJLyogUmVkIGJveCBpZiB3ZSBoYXZlIHRvIHdhaXQgZm9yIGlkbGUgYXQgYW55IHBvaW50CisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfV0FJVF9JRExFKQorCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCAxNiwgNCwgOCwgOCwgMjU1LCAwLCAwKTsKKworCS8qIEJsdWUgYm94OiBsb3N0IGNvbnRleHQ/CisJICovCisKKwkvKiBZZWxsb3cgYm94IGZvciB0ZXh0dXJlIHN3YXBzCisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfVEVYVFVSRV9MT0FEKQorCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCA0MCwgNCwgOCwgOCwgMjU1LCAyNTUsIDApOworCisJLyogR3JlZW4gYm94IGlmIGhhcmR3YXJlIG5ldmVyIGlkbGVzIChhcyBmYXIgYXMgd2UgY2FuIHRlbGwpCisJICovCisJaWYgKCEoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9ETUFfSURMRSkpCisJCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDY0LCA0LCA4LCA4LCAwLCAyNTUsIDApOworCisJLyogRHJhdyBiYXJzIGluZGljYXRpbmcgbnVtYmVyIG9mIGJ1ZmZlcnMgYWxsb2NhdGVkCisJICogKG5vdCBhIGdyZWF0IG1lYXN1cmUsIGVhc2lseSBjb25mdXNlZCkKKwkgKi8KKwlpZiAoZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzKSB7CisJCWlmIChkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMgPiAxMDApCisJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMgPSAxMDA7CisKKwkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNCwgMTYsCisJCQkJIGRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcywgNCwKKwkJCQkgMTk2LCAxMjgsIDEyOCk7CisJfQorCisJbWVtc2V0KCZkZXZfcHJpdi0+c3RhdHMsIDAsIHNpemVvZihkZXZfcHJpdi0+c3RhdHMpKTsKKworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBjb21tYW5kIGRpc3BhdGNoIGZ1bmN0aW9ucworICovCisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9jbGVhcihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkgICAgIGRybV9yYWRlb25fY2xlYXJfdCAqIGNsZWFyLAorCQkJCSAgICAgZHJtX3JhZGVvbl9jbGVhcl9yZWN0X3QgKiBkZXB0aF9ib3hlcykKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWRybV9yYWRlb25fZGVwdGhfY2xlYXJfdCAqZGVwdGhfY2xlYXIgPSAmZGV2X3ByaXYtPmRlcHRoX2NsZWFyOworCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcGJveCA9IHNhcmVhX3ByaXYtPmJveGVzOworCXVuc2lnbmVkIGludCBmbGFncyA9IGNsZWFyLT5mbGFnczsKKwl1MzIgcmIzZF9jbnRsID0gMCwgcmIzZF9zdGVuY2lscmVmbWFzayA9IDA7CisJaW50IGk7CisJUklOR19MT0NBTFM7CisJRFJNX0RFQlVHKCJmbGFncyA9IDB4JXhcbiIsIGZsYWdzKTsKKworCWRldl9wcml2LT5zdGF0cy5jbGVhcnMrKzsKKworCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAxKSB7CisJCXVuc2lnbmVkIGludCB0bXAgPSBmbGFnczsKKworCQlmbGFncyAmPSB+KFJBREVPTl9GUk9OVCB8IFJBREVPTl9CQUNLKTsKKwkJaWYgKHRtcCAmIFJBREVPTl9GUk9OVCkKKwkJCWZsYWdzIHw9IFJBREVPTl9CQUNLOworCQlpZiAodG1wICYgUkFERU9OX0JBQ0spCisJCQlmbGFncyB8PSBSQURFT05fRlJPTlQ7CisJfQorCisJaWYgKGZsYWdzICYgKFJBREVPTl9GUk9OVCB8IFJBREVPTl9CQUNLKSkgeworCisJCUJFR0lOX1JJTkcoNCk7CisKKwkJLyogRW5zdXJlIHRoZSAzRCBzdHJlYW0gaXMgaWRsZSBiZWZvcmUgZG9pbmcgYQorCQkgKiAyRCBmaWxsIHRvIGNsZWFyIHRoZSBmcm9udCBvciBiYWNrIGJ1ZmZlci4KKwkJICovCisJCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9EUF9XUklURV9NQVNLLCAwKSk7CisJCU9VVF9SSU5HKGNsZWFyLT5jb2xvcl9tYXNrKTsKKworCQlBRFZBTkNFX1JJTkcoKTsKKworCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgorCQkgKi8KKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQkJaW50IHggPSBwYm94W2ldLngxOworCQkJaW50IHkgPSBwYm94W2ldLnkxOworCQkJaW50IHcgPSBwYm94W2ldLngyIC0geDsKKwkJCWludCBoID0gcGJveFtpXS55MiAtIHk7CisKKwkJCURSTV9ERUJVRygiJWQsJWQtJWQsJWQgZmxhZ3MgMHgleFxuIiwKKwkJCQkgIHgsIHksIHcsIGgsIGZsYWdzKTsKKworCQkJaWYgKGZsYWdzICYgUkFERU9OX0ZST05UKSB7CisJCQkJQkVHSU5fUklORyg2KTsKKworCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKKwkJCQkJIChSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCQkJCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJCQkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkJCQkgKGRldl9wcml2LT4KKwkJCQkJICBjb2xvcl9mbXQgPDwgOCkgfAorCQkJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJCQkgUkFERU9OX1JPUDNfUCB8CisJCQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMpOworCisJCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7CisJCQkJT1VUX1JJTkcoY2xlYXItPmNsZWFyX2NvbG9yKTsKKworCQkJCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCQkJCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOworCisJCQkJQURWQU5DRV9SSU5HKCk7CisJCQl9CisKKwkJCWlmIChmbGFncyAmIFJBREVPTl9CQUNLKSB7CisJCQkJQkVHSU5fUklORyg2KTsKKworCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKKwkJCQkJIChSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCQkJCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJCQkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkJCQkgKGRldl9wcml2LT4KKwkJCQkJICBjb2xvcl9mbXQgPDwgOCkgfAorCQkJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJCQkgUkFERU9OX1JPUDNfUCB8CisJCQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMpOworCisJCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0KTsKKwkJCQlPVVRfUklORyhjbGVhci0+Y2xlYXJfY29sb3IpOworCisJCQkJT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7CisJCQkJT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7CisKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIGh5cGVyIHogY2xlYXIgKi8KKwkvKiBubyBkb2NzIGF2YWlsYWJsZSwgYmFzZWQgb24gcmV2ZXJzZSBlbmdlbmVlcmluZyBieSBTdGVwaGFuZSBNYXJjaGVzaW4gKi8KKwlpZiAoKGZsYWdzICYgKFJBREVPTl9ERVBUSCB8IFJBREVPTl9TVEVOQ0lMKSkKKwkgICAgJiYgKGZsYWdzICYgUkFERU9OX0NMRUFSX0ZBU1RaKSkgeworCisJCWludCBpOworCQlpbnQgZGVwdGhwaXhwZXJsaW5lID0KKwkJICAgIGRldl9wcml2LT5kZXB0aF9mbXQgPT0KKwkJICAgIFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1ogPyAoZGV2X3ByaXYtPmRlcHRoX3BpdGNoIC8KKwkJCQkJCSAgICAgICAyKSA6IChkZXZfcHJpdi0+CisJCQkJCQkJICAgICBkZXB0aF9waXRjaCAvIDQpOworCisJCXUzMiBjbGVhcm1hc2s7CisKKwkJdTMyIHRlbXBSQjNEX0RFUFRIQ0xFQVJWQUxVRSA9IGNsZWFyLT5jbGVhcl9kZXB0aCB8CisJCSAgICAoKGNsZWFyLT5kZXB0aF9tYXNrICYgMHhmZikgPDwgMjQpOworCisJCS8qIE1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSAzRCBzdGF0ZSBuZXh0IHRpbWUuCisJCSAqIHdlIGhhdmVuJ3QgdG91Y2hlZCBhbnkgIm5vcm1hbCIgc3RhdGUgLSBzdGlsbCBuZWVkIHRoaXM/CisJCSAqLworCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3R4X293bmVyID0gMDsKKworCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9IQVNfSElFUlopCisJCSAgICAmJiAoZmxhZ3MgJiBSQURFT05fVVNFX0hJRVJaKSkgeworCQkJLyogRklYTUUgOiByZXZlcnNlIGVuZ2luZWVyIHRoYXQgZm9yIFJ4MDAgY2FyZHMgKi8KKwkJCS8qIEZJWE1FIDogdGhlIG1hc2sgc3VwcG9zZWRseSBjb250YWlucyBsb3ctcmVzIHogdmFsdWVzLiBTbyBjYW4ndCBzZXQKKwkJCSAgIGp1c3QgdG8gdGhlIG1heCAoMHhmZj8gb3IgYWN0dWFsbHkgMHgzZmZmPyksIG5lZWQgdG8gdGFrZSB6IGNsZWFyCisJCQkgICB2YWx1ZSBpbnRvIGFjY291bnQ/ICovCisJCQkvKiBwYXR0ZXJuIHNlZW1zIHRvIHdvcmsgZm9yIHIxMDAsIHRob3VnaCBnZXQgc2xpZ2h0CisJCQkgICByZW5kZXJpbmcgZXJyb3JzIHdpdGggZ2x4Z2VhcnMuIElmIGhpZXJ6IGlzIG5vdCBlbmFibGVkIGZvciByMTAwLAorCQkJICAgb25seSA0IGJpdHMgd2hpY2ggaW5kaWNhdGUgY2xlYXIgKDE1LDE2LDMxLDMyLCBhbGwgemVybykgbWF0dGVyLCB0aGUKKwkJCSAgIG90aGVyIG9uZXMgYXJlIGlnbm9yZWQsIGFuZCB0aGUgc2FtZSBjbGVhciBtYXNrIGNhbiBiZSB1c2VkLiBUaGF0J3MKKwkJCSAgIHZlcnkgZGlmZmVyZW50IGJlaGF2aW91ciB0aGFuIFIyMDAgd2hpY2ggbmVlZHMgZGlmZmVyZW50IGNsZWFyIG1hc2sKKwkJCSAgIGFuZCBkaWZmZXJlbnQgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyIGlmIGhpZXJ6IGlzIGVuYWJsZWQgb3Igbm90ICE/IQorCQkJICovCisJCQljbGVhcm1hc2sgPSAoMHhmZiA8PCAyMikgfCAoMHhmZiA8PCA2KSB8IDB4MDAzZjAwM2Y7CisJCX0gZWxzZSB7CisJCQkvKiBjbGVhciBtYXNrIDogY2hvb3NlcyB0aGUgY2xlYXJpbmcgcGF0dGVybi4KKwkJCSAgIHJ2MjUwOiBjb3VsZCBiZSB1c2VkIHRvIGNsZWFyIG9ubHkgcGFydHMgb2YgbWFjcm90aWxlcworCQkJICAgKGJ1dCB0aGF0IHdvdWxkIGdldCByZWFsbHkgY29tcGxpY2F0ZWQuLi4pPworCQkJICAgYml0IDAgYW5kIDEgKGVpdGhlciBvciBib3RoIG9mIHRoZW0gPyE/ISkgYXJlIHVzZWQgdG8KKwkJCSAgIG5vdCBjbGVhciB0aWxlIChvciBtYXliZSBvbmUgb2YgdGhlIGJpdHMgaW5kaWNhdGVzIGlmIHRoZSB0aWxlIGlzCisJCQkgICBjb21wcmVzc2VkIG9yIG5vdCksIGJpdCAyIGFuZCAzIHRvIG5vdCBjbGVhciB0aWxlIDEsLi4uLC4KKwkJCSAgIFBhdHRlcm4gaXMgYXMgZm9sbG93czoKKwkJCSAgIHwgMCwxIHwgNCw1IHwgOCw5IHwxMiwxM3wxNiwxN3wyMCwyMXwyNCwyNXwyOCwyOXwKKwkJCSAgIGJpdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkJICAgfCAyLDMgfCA2LDcgfDEwLDExfDE0LDE1fDE4LDE5fDIyLDIzfDI2LDI3fDMwLDMxfAorCQkJICAgcnYxMDA6IGNsZWFybWFzayBjb3ZlcnMgMng4IDR4MSB0aWxlcywgYnV0IG9uZSBjbGVhciBzdGlsbAorCQkJICAgY292ZXJzIDI1NiBwaXhlbHMgPyE/CisJCQkgKi8KKwkJCWNsZWFybWFzayA9IDB4MDsKKwkJfQorCisJCUJFR0lOX1JJTkcoOCk7CisJCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX0RFUFRIQ0xFQVJWQUxVRSwKKwkJCSAgICAgdGVtcFJCM0RfREVQVEhDTEVBUlZBTFVFKTsKKwkJLyogd2hhdCBvZmZzZXQgaXMgdGhpcyBleGFjdGx5ID8gKi8KKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pNQVNLT0ZGU0VULCAwKTsKKwkJLyogbmVlZCBjdGxzdGF0LCBvdGhlcndpc2UgZ2V0IHNvbWUgc3RyYW5nZSBibGFjayBmbGlja2VyaW5nICovCisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVCwKKwkJCSAgICAgUkFERU9OX1JCM0RfWkNfRkxVU0hfQUxMKTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQkJaW50IHRpbGVvZmZzZXQsIG5ydGlsZXN4LCBucnRpbGVzeSwgajsKKwkJCS8qIGl0IGxvb2tzIGxpa2UgcjIwMCBuZWVkcyBydi1zdHlsZSBjbGVhcnMsIGF0IGxlYXN0IGlmIGhpZXJ6IGlzIG5vdCBlbmFibGVkPyAqLworCQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSEFTX0hJRVJaKQorCQkJICAgICYmICEoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApKSB7CisJCQkJLyogRklYTUUgOiBmaWd1cmUgdGhpcyBvdXQgZm9yIHIyMDAgKHdoZW4gaGllcnogaXMgZW5hYmxlZCkuIE9yCisJCQkJICAgbWF5YmUgcjIwMCBhY3R1YWxseSBkb2Vzbid0IG5lZWQgdG8gcHV0IHRoZSBsb3ctcmVzIHogdmFsdWUgaW50bworCQkJCSAgIHRoZSB0aWxlIGNhY2hlIGxpa2UgcjEwMCwgYnV0IGp1c3QgbmVlZHMgdG8gY2xlYXIgdGhlIGhpLWxldmVsIHotYnVmZmVyPworCQkJCSAgIFdvcmtzIGZvciBSMTAwLCBib3RoIHdpdGggaGllcnogYW5kIHdpdGhvdXQuCisJCQkJICAgUjEwMCBzZWVtcyB0byBvcGVyYXRlIG9uIDJ4MSA4eDggdGlsZXMsIGJ1dC4uLgorCQkJCSAgIG9kZDogb2Zmc2V0L25ydGlsZXMgbmVlZCB0byBiZSA2NCBwaXggKDQgYmxvY2spIGFsaWduZWQ/IFBvdGVudGlhbGx5CisJCQkJICAgcHJvYmxlbWF0aWMgd2l0aCByZXNvbHV0aW9ucyB3aGljaCBhcmUgbm90IDY0IHBpeCBhbGlnbmVkPyAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gMykgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNjsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgICgocGJveFtpXS54MiAmIH42MykgLQorCQkJCSAgICAgKHBib3hbaV0ueDEgJiB+NjMpKSA+PiA0OworCQkJCW5ydGlsZXN5ID0KKwkJCQkgICAgKHBib3hbaV0ueTIgPj4gMykgLSAocGJveFtpXS55MSA+PiAzKTsKKwkJCQlmb3IgKGogPSAwOyBqIDw9IG5ydGlsZXN5OyBqKyspIHsKKwkJCQkJQkVHSU5fUklORyg0KTsKKwkJCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMworCQkJCQkJIChSQURFT05fM0RfQ0xFQVJfWk1BU0ssIDIpKTsKKwkJCQkJLyogZmlyc3QgdGlsZSAqLworCQkJCQlPVVRfUklORyh0aWxlb2Zmc2V0ICogOCk7CisJCQkJCS8qIHRoZSBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgKi8KKwkJCQkJT1VUX1JJTkcobnJ0aWxlc3ggKyA0KTsKKwkJCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uICovCisJCQkJCU9VVF9SSU5HKGNsZWFybWFzayk7CisJCQkJCUFEVkFOQ0VfUklORygpOworCQkJCQl0aWxlb2Zmc2V0ICs9IGRlcHRocGl4cGVybGluZSA+PiA2OworCQkJCX0KKwkJCX0gZWxzZSBpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApIHsKKwkJCQkvKiB3b3JrcyBmb3IgcnYyNTAuICovCisJCQkJLyogZmluZCBmaXJzdCBtYWNybyB0aWxlICg4eDIgNHg0IHotcGl4ZWxzIG9uIHJ2MjUwKSAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gMykgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNTsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgIChwYm94W2ldLngyID4+IDUpIC0gKHBib3hbaV0ueDEgPj4gNSk7CisJCQkJbnJ0aWxlc3kgPQorCQkJCSAgICAocGJveFtpXS55MiA+PiAzKSAtIChwYm94W2ldLnkxID4+IDMpOworCQkJCWZvciAoaiA9IDA7IGogPD0gbnJ0aWxlc3k7IGorKykgeworCQkJCQlCRUdJTl9SSU5HKDQpOworCQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCisJCQkJCQkgKFJBREVPTl8zRF9DTEVBUl9aTUFTSywgMikpOworCQkJCQkvKiBmaXJzdCB0aWxlICovCisJCQkJCS8qIGp1ZGdpbmcgYnkgdGhlIGZpcnN0IHRpbGUgb2Zmc2V0IG5lZWRlZCwgY291bGQgcG9zc2libHkKKwkJCQkJICAgZGlyZWN0bHkgYWRkcmVzcy9jbGVhciA0eDQgdGlsZXMgaW5zdGVhZCBvZiA4eDIgKiA0eDQKKwkJCQkJICAgbWFjcm8gdGlsZXMsIHRob3VnaCB3b3VsZCBzdGlsbCBuZWVkIGNsZWFyIG1hc2sgZm9yCisJCQkJCSAgIHJpZ2h0L2JvdHRvbSBpZiB0cnVlbHkgNHg0IGdyYW51bGFyaXR5IGlzIGRlc2lyZWQgPyAqLworCQkJCQlPVVRfUklORyh0aWxlb2Zmc2V0ICogMTYpOworCQkJCQkvKiB0aGUgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyICovCisJCQkJCU9VVF9SSU5HKG5ydGlsZXN4ICsgMSk7CisJCQkJCS8qIGNsZWFyIG1hc2sgOiBjaG9vc2VzIHRoZSBjbGVhcmluZyBwYXR0ZXJuLiAqLworCQkJCQlPVVRfUklORyhjbGVhcm1hc2spOworCQkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCQkJdGlsZW9mZnNldCArPSBkZXB0aHBpeHBlcmxpbmUgPj4gNTsKKwkJCQl9CisJCQl9IGVsc2UgewkvKiBydiAxMDAgKi8KKwkJCQkvKiBydjEwMCBtaWdodCBub3QgbmVlZCA2NCBwaXggYWxpZ25tZW50LCB3aG8ga25vd3MgKi8KKwkJCQkvKiBvZmZzZXRzIGFyZSwgaG1tLCB3ZWlyZCAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gNCkgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNjsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgICgocGJveFtpXS54MiAmIH42MykgLQorCQkJCSAgICAgKHBib3hbaV0ueDEgJiB+NjMpKSA+PiA0OworCQkJCW5ydGlsZXN5ID0KKwkJCQkgICAgKHBib3hbaV0ueTIgPj4gNCkgLSAocGJveFtpXS55MSA+PiA0KTsKKwkJCQlmb3IgKGogPSAwOyBqIDw9IG5ydGlsZXN5OyBqKyspIHsKKwkJCQkJQkVHSU5fUklORyg0KTsKKwkJCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMworCQkJCQkJIChSQURFT05fM0RfQ0xFQVJfWk1BU0ssIDIpKTsKKwkJCQkJT1VUX1JJTkcodGlsZW9mZnNldCAqIDEyOCk7CisJCQkJCS8qIHRoZSBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgKi8KKwkJCQkJT1VUX1JJTkcobnJ0aWxlc3ggKyA0KTsKKwkJCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uICovCisJCQkJCU9VVF9SSU5HKGNsZWFybWFzayk7CisJCQkJCUFEVkFOQ0VfUklORygpOworCQkJCQl0aWxlb2Zmc2V0ICs9IGRlcHRocGl4cGVybGluZSA+PiA2OworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8qIFRPRE8gZG9uJ3QgYWx3YXlzIGNsZWFyIGFsbCBoaS1sZXZlbCB6IHRpbGVzICovCisJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0hBU19ISUVSWikKKwkJICAgICYmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkKKwkJICAgICYmIChmbGFncyAmIFJBREVPTl9VU0VfSElFUlopKQorCQkJLyogcjEwMCBhbmQgY2FyZHMgd2l0aG91dCBoaWVyYXJjaGljYWwgei1idWZmZXIgaGF2ZSBubyBoaWdoLWxldmVsIHotYnVmZmVyICovCisJCQkvKiBGSVhNRSA6IHRoZSBtYXNrIHN1cHBvc2VkbHkgY29udGFpbnMgbG93LXJlcyB6IHZhbHVlcy4gU28gY2FuJ3Qgc2V0CisJCQkgICBqdXN0IHRvIHRoZSBtYXggKDB4ZmY/IG9yIGFjdHVhbGx5IDB4M2ZmZj8pLCBuZWVkIHRvIHRha2UgeiBjbGVhcgorCQkJICAgdmFsdWUgaW50byBhY2NvdW50PyAqLworCQl7CisJCQlCRUdJTl9SSU5HKDQpOworCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fM0RfQ0xFQVJfSElaLCAyKSk7CisJCQlPVVRfUklORygweDApOwkvKiBGaXJzdCB0aWxlICovCisJCQlPVVRfUklORygweDNjYzApOworCQkJT1VUX1JJTkcoKDB4ZmYgPDwgMjIpIHwgKDB4ZmYgPDwgNikgfCAweDAwM2YwMDNmKTsKKwkJCUFEVkFOQ0VfUklORygpOworCQl9CisJfQorCisJLyogV2UgaGF2ZSB0byBjbGVhciB0aGUgZGVwdGggYW5kL29yIHN0ZW5jaWwgYnVmZmVycyBieQorCSAqIHJlbmRlcmluZyBhIHF1YWQgaW50byBqdXN0IHRob3NlIGJ1ZmZlcnMuICBUaHVzLCB3ZSBoYXZlIHRvCisJICogbWFrZSBzdXJlIHRoZSAzRCBlbmdpbmUgaXMgY29uZmlndXJlZCBjb3JyZWN0bHkuCisJICovCisJZWxzZSBpZiAoKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMjAwKSAmJgorCQkoZmxhZ3MgJiAoUkFERU9OX0RFUFRIIHwgUkFERU9OX1NURU5DSUwpKSkgeworCisJCWludCB0ZW1wUFBfQ05UTDsKKwkJaW50IHRlbXBSRV9DTlRMOworCQlpbnQgdGVtcFJCM0RfQ05UTDsKKwkJaW50IHRlbXBSQjNEX1pTVEVOQ0lMQ05UTDsKKwkJaW50IHRlbXBSQjNEX1NURU5DSUxSRUZNQVNLOworCQlpbnQgdGVtcFJCM0RfUExBTkVNQVNLOworCQlpbnQgdGVtcFNFX0NOVEw7CisJCWludCB0ZW1wU0VfVlRFX0NOVEw7CisJCWludCB0ZW1wU0VfVlRYX0ZNVF8wOworCQlpbnQgdGVtcFNFX1ZUWF9GTVRfMTsKKwkJaW50IHRlbXBTRV9WQVBfQ05UTDsKKwkJaW50IHRlbXBSRV9BVVhfU0NJU1NPUl9DTlRMOworCisJCXRlbXBQUF9DTlRMID0gMDsKKwkJdGVtcFJFX0NOVEwgPSAwOworCisJCXRlbXBSQjNEX0NOVEwgPSBkZXB0aF9jbGVhci0+cmIzZF9jbnRsOworCisJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCA9IGRlcHRoX2NsZWFyLT5yYjNkX3pzdGVuY2lsY250bDsKKwkJdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0sgPSAweDA7CisKKwkJdGVtcFNFX0NOVEwgPSBkZXB0aF9jbGVhci0+c2VfY250bDsKKworCQkvKiBEaXNhYmxlIFRDTCAqLworCisJCXRlbXBTRV9WQVBfQ05UTCA9ICgJLyogU0VfVkFQX0NOVExfX0ZPUkNFX1dfVE9fT05FX01BU0sgfCAgKi8KKwkJCQkJICAoMHg5IDw8CisJCQkJCSAgIFNFX1ZBUF9DTlRMX19WRl9NQVhfVlRYX05VTV9fU0hJRlQpKTsKKworCQl0ZW1wUkIzRF9QTEFORU1BU0sgPSAweDA7CisKKwkJdGVtcFJFX0FVWF9TQ0lTU09SX0NOVEwgPSAweDA7CisKKwkJdGVtcFNFX1ZURV9DTlRMID0KKwkJICAgIFNFX1ZURV9DTlRMX19WVFhfWFlfRk1UX01BU0sgfCBTRV9WVEVfQ05UTF9fVlRYX1pfRk1UX01BU0s7CisKKwkJLyogVmVydGV4IGZvcm1hdCAoWCwgWSwgWiwgVykgKi8KKwkJdGVtcFNFX1ZUWF9GTVRfMCA9CisJCSAgICBTRV9WVFhfRk1UXzBfX1ZUWF9aMF9QUkVTRU5UX01BU0sgfAorCQkgICAgU0VfVlRYX0ZNVF8wX19WVFhfVzBfUFJFU0VOVF9NQVNLOworCQl0ZW1wU0VfVlRYX0ZNVF8xID0gMHgwOworCisJCS8qCisJCSAqIERlcHRoIGJ1ZmZlciBzcGVjaWZpYyBlbmFibGVzCisJCSAqLworCQlpZiAoZmxhZ3MgJiBSQURFT05fREVQVEgpIHsKKwkJCS8qIEVuYWJsZSBkZXB0aCBidWZmZXIgKi8KKwkJCXRlbXBSQjNEX0NOVEwgfD0gUkFERU9OX1pfRU5BQkxFOworCQl9IGVsc2UgeworCQkJLyogRGlzYWJsZSBkZXB0aCBidWZmZXIgKi8KKwkJCXRlbXBSQjNEX0NOVEwgJj0gflJBREVPTl9aX0VOQUJMRTsKKwkJfQorCisJCS8qCisJCSAqIFN0ZW5jaWwgYnVmZmVyIHNwZWNpZmljIGVuYWJsZXMKKwkJICovCisJCWlmIChmbGFncyAmIFJBREVPTl9TVEVOQ0lMKSB7CisJCQl0ZW1wUkIzRF9DTlRMIHw9IFJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKKwkJCXRlbXBSQjNEX1NURU5DSUxSRUZNQVNLID0gY2xlYXItPmRlcHRoX21hc2s7CisJCX0gZWxzZSB7CisJCQl0ZW1wUkIzRF9DTlRMICY9IH5SQURFT05fU1RFTkNJTF9FTkFCTEU7CisJCQl0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyA9IDB4MDAwMDAwMDA7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0NPTVBfWkJVRikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0NPTVBSRVNTSU9OX0VOQUJMRSB8CisJCQkgICAgUkFERU9OX1pfREVDT01QUkVTU0lPTl9FTkFCTEU7CisJCX0KKwkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0hJRVJBUkNIWV9FTkFCTEU7CisJCX0KKworCQlCRUdJTl9SSU5HKDI2KTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCisJCU9VVF9SSU5HX1JFRyhSQURFT05fUFBfQ05UTCwgdGVtcFBQX0NOVEwpOworCQlPVVRfUklOR19SRUcoUjIwMF9SRV9DTlRMLCB0ZW1wUkVfQ05UTCk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9DTlRMLCB0ZW1wUkIzRF9DTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTCwgdGVtcFJCM0RfWlNURU5DSUxDTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLAorCQkJICAgICB0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9QTEFORU1BU0ssIHRlbXBSQjNEX1BMQU5FTUFTSyk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfQ05UTCwgdGVtcFNFX0NOVEwpOworCQlPVVRfUklOR19SRUcoUjIwMF9TRV9WVEVfQ05UTCwgdGVtcFNFX1ZURV9DTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVlRYX0ZNVF8wLCB0ZW1wU0VfVlRYX0ZNVF8wKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVlRYX0ZNVF8xLCB0ZW1wU0VfVlRYX0ZNVF8xKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVkFQX0NOVEwsIHRlbXBTRV9WQVBfQ05UTCk7CisJCU9VVF9SSU5HX1JFRyhSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwsIHRlbXBSRV9BVVhfU0NJU1NPUl9DTlRMKTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwkJLyogTWFrZSBzdXJlIHdlIHJlc3RvcmUgdGhlIDNEIHN0YXRlIG5leHQgdGltZS4KKwkJICovCisJCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOworCisJCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKKworCQkJLyogRnVubnkgdGhhdCB0aGlzIHNob3VsZCBiZSByZXF1aXJlZCAtLQorCQkJICogIHNldHMgdG9wLWxlZnQ/CisJCQkgKi8KKwkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJnNhcmVhX3ByaXYtPmJveGVzW2ldKTsKKworCQkJQkVHSU5fUklORygxNCk7CisJCQlPVVRfUklORyhDUF9QQUNLRVQzKFIyMDBfM0RfRFJBV19JTU1EXzIsIDEyKSk7CisJCQlPVVRfUklORygoUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QgfAorCQkJCSAgUkFERU9OX1BSSU1fV0FMS19SSU5HIHwKKwkJCQkgICgzIDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTFdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDNmODAwMDAwKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gxXSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMl0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKKwkJCU9VVF9SSU5HKDB4M2Y4MDAwMDApOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kyXSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOworCQkJT1VUX1JJTkcoMHgzZjgwMDAwMCk7CisJCQlBRFZBTkNFX1JJTkcoKTsKKwkJfQorCX0gZWxzZSBpZiAoKGZsYWdzICYgKFJBREVPTl9ERVBUSCB8IFJBREVPTl9TVEVOQ0lMKSkpIHsKKworCQlpbnQgdGVtcFJCM0RfWlNURU5DSUxDTlRMID0gZGVwdGhfY2xlYXItPnJiM2RfenN0ZW5jaWxjbnRsOworCisJCXJiM2RfY250bCA9IGRlcHRoX2NsZWFyLT5yYjNkX2NudGw7CisKKwkJaWYgKGZsYWdzICYgUkFERU9OX0RFUFRIKSB7CisJCQlyYjNkX2NudGwgfD0gUkFERU9OX1pfRU5BQkxFOworCQl9IGVsc2UgeworCQkJcmIzZF9jbnRsICY9IH5SQURFT05fWl9FTkFCTEU7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fU1RFTkNJTCkgeworCQkJcmIzZF9jbnRsIHw9IFJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKKwkJCXJiM2Rfc3RlbmNpbHJlZm1hc2sgPSBjbGVhci0+ZGVwdGhfbWFzazsJLyogbWlzbmFtZWQgZmllbGQgKi8KKwkJfSBlbHNlIHsKKwkJCXJiM2RfY250bCAmPSB+UkFERU9OX1NURU5DSUxfRU5BQkxFOworCQkJcmIzZF9zdGVuY2lscmVmbWFzayA9IDB4MDAwMDAwMDA7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0NPTVBfWkJVRikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0NPTVBSRVNTSU9OX0VOQUJMRSB8CisJCQkgICAgUkFERU9OX1pfREVDT01QUkVTU0lPTl9FTkFCTEU7CisJCX0KKwkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0hJRVJBUkNIWV9FTkFCTEU7CisJCX0KKworCQlCRUdJTl9SSU5HKDEzKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0NOVEwsIDEpKTsKKwkJT1VUX1JJTkcoMHgwMDAwMDAwMCk7CisJCU9VVF9SSU5HKHJiM2RfY250bCk7CisKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTCwgdGVtcFJCM0RfWlNURU5DSUxDTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLCByYjNkX3N0ZW5jaWxyZWZtYXNrKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1BMQU5FTUFTSywgMHgwMDAwMDAwMCk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfQ05UTCwgZGVwdGhfY2xlYXItPnNlX2NudGwpOworCQlBRFZBTkNFX1JJTkcoKTsKKworCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgorCQkgKi8KKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCisJCQkvKiBGdW5ueSB0aGF0IHRoaXMgc2hvdWxkIGJlIHJlcXVpcmVkIC0tCisJCQkgKiAgc2V0cyB0b3AtbGVmdD8KKwkJCSAqLworCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOworCisJCQlCRUdJTl9SSU5HKDE1KTsKKworCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fM0RfRFJBV19JTU1ELCAxMykpOworCQkJT1VUX1JJTkcoUkFERU9OX1ZUWF9aX1BSRVNFTlQgfAorCQkJCSBSQURFT05fVlRYX1BLQ09MT1JfUFJFU0VOVCk7CisJCQlPVVRfUklORygoUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QgfAorCQkJCSAgUkFERU9OX1BSSU1fV0FMS19SSU5HIHwKKwkJCQkgIFJBREVPTl9NQU9TX0VOQUJMRSB8CisJCQkJICBSQURFT05fVlRYX0ZNVF9SQURFT05fTU9ERSB8CisJCQkJICAoMyA8PCBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUKSkpOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTFdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMl0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlBRFZBTkNFX1JJTkcoKTsKKwkJfQorCX0KKworCS8qIEluY3JlbWVudCB0aGUgY2xlYXIgY291bnRlci4gIFRoZSBjbGllbnQtc2lkZSAzRCBkcml2ZXIgbXVzdAorCSAqIHdhaXQgb24gdGhpcyB2YWx1ZSBiZWZvcmUgcGVyZm9ybWluZyB0aGUgY2xlYXIgaW9jdGwuICBXZQorCSAqIG5lZWQgdGhpcyBiZWNhdXNlIHRoZSBjYXJkJ3Mgc28gZGFtbmVkIGZhc3QuLi4KKwkgKi8KKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9jbGVhcisrOworCisJQkVHSU5fUklORyg0KTsKKworCVJBREVPTl9DTEVBUl9BR0UoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcGJveCA9IHNhcmVhX3ByaXYtPmJveGVzOworCWludCBpOworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIERvIHNvbWUgdHJpdmlhbCBwZXJmb3JtYW5jZSBtb25pdG9yaW5nLi4uCisJICovCisJaWYgKGRldl9wcml2LT5kb19ib3hlcykKKwkJcmFkZW9uX2NwX3BlcmZvcm1hbmNlX2JveGVzKGRldl9wcml2KTsKKworCS8qIFdhaXQgZm9yIHRoZSAzRCBzdHJlYW0gdG8gaWRsZSBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGJpdGJsdC4KKwkgKiBUaGlzIHdpbGwgcHJldmVudCBkYXRhIGNvcnJ1cHRpb24gYmV0d2VlbiB0aGUgdHdvIHN0cmVhbXMuCisJICovCisJQkVHSU5fUklORygyKTsKKworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCisJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQlpbnQgeCA9IHBib3hbaV0ueDE7CisJCWludCB5ID0gcGJveFtpXS55MTsKKwkJaW50IHcgPSBwYm94W2ldLngyIC0geDsKKwkJaW50IGggPSBwYm94W2ldLnkyIC0geTsKKworCQlEUk1fREVCVUcoIiVkLCVkLSVkLCVkXG4iLCB4LCB5LCB3LCBoKTsKKworCQlCRUdJTl9SSU5HKDkpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0RQX0dVSV9NQVNURVJfQ05UTCwgMCkpOworCQlPVVRfUklORyhSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCB8CisJCQkgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAorCQkJIFJBREVPTl9HTUNfQlJVU0hfTk9ORSB8CisJCQkgKGRldl9wcml2LT5jb2xvcl9mbXQgPDwgOCkgfAorCQkJIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SIHwKKwkJCSBSQURFT05fUk9QM19TIHwKKwkJCSBSQURFT05fRFBfU1JDX1NPVVJDRV9NRU1PUlkgfAorCQkJIFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyB8IFJBREVPTl9HTUNfV1JfTVNLX0RJUyk7CisKKwkJLyogTWFrZSB0aGlzIHdvcmsgZXZlbiBpZiBmcm9udCAmIGJhY2sgYXJlIGZsaXBwZWQ6CisJCSAqLworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TUkNfUElUQ0hfT0ZGU0VULCAxKSk7CisJCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAwKSB7CisJCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOworCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7CisJCX0gZWxzZSB7CisJCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKKwkJCU9VVF9SSU5HKGRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCk7CisJCX0KKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TUkNfWF9ZLCAyKSk7CisJCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKKwkJT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7CisKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJLyogSW5jcmVtZW50IHRoZSBmcmFtZSBjb3VudGVyLiAgVGhlIGNsaWVudC1zaWRlIDNEIGRyaXZlciBtdXN0CisJICogdGhyb3R0bGUgdGhlIGZyYW1lcmF0ZSBieSB3YWl0aW5nIGZvciB0aGlzIHZhbHVlIGJlZm9yZQorCSAqIHBlcmZvcm1pbmcgdGhlIHN3YXBidWZmZXIgaW9jdGwuCisJICovCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUrKzsKKworCUJFR0lOX1JJTkcoNCk7CisKKwlSQURFT05fRlJBTUVfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKwlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7CisKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3NhcmVhICpzYXJlYSA9IChzdHJ1Y3QgZHJtX3NhcmVhICopIGRldl9wcml2LT5zYXJlYS0+aGFuZGxlOworCWludCBvZmZzZXQgPSAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMSkKKwkgICAgPyBkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0IDogZGV2X3ByaXYtPmJhY2tfb2Zmc2V0OworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygicGZDdXJyZW50UGFnZT0lZFxuIiwKKwkJICBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSk7CisKKwkvKiBEbyBzb21lIHRyaXZpYWwgcGVyZm9ybWFuY2UgbW9uaXRvcmluZy4uLgorCSAqLworCWlmIChkZXZfcHJpdi0+ZG9fYm94ZXMpIHsKKwkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfRkxJUDsKKwkJcmFkZW9uX2NwX3BlcmZvcm1hbmNlX2JveGVzKGRldl9wcml2KTsKKwl9CisKKwkvKiBVcGRhdGUgdGhlIGZyYW1lIG9mZnNldHMgZm9yIGJvdGggQ1JUQ3MKKwkgKi8KKwlCRUdJTl9SSU5HKDYpOworCisJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOworCU9VVF9SSU5HX1JFRyhSQURFT05fQ1JUQ19PRkZTRVQsCisJCSAgICAgKChzYXJlYS0+ZnJhbWUueSAqIGRldl9wcml2LT5mcm9udF9waXRjaCArCisJCSAgICAgICBzYXJlYS0+ZnJhbWUueCAqIChkZXZfcHJpdi0+Y29sb3JfZm10IC0gMikpICYgfjcpCisJCSAgICAgKyBvZmZzZXQpOworCU9VVF9SSU5HX1JFRyhSQURFT05fQ1JUQzJfT0ZGU0VULCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3J0YzJfYmFzZQorCQkgICAgICsgb2Zmc2V0KTsKKworCUFEVkFOQ0VfUklORygpOworCisJLyogSW5jcmVtZW50IHRoZSBmcmFtZSBjb3VudGVyLiAgVGhlIGNsaWVudC1zaWRlIDNEIGRyaXZlciBtdXN0CisJICogdGhyb3R0bGUgdGhlIGZyYW1lcmF0ZSBieSB3YWl0aW5nIGZvciB0aGlzIHZhbHVlIGJlZm9yZQorCSAqIHBlcmZvcm1pbmcgdGhlIHN3YXBidWZmZXIgaW9jdGwuCisJICovCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUrKzsKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9CisJCTEgLSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZTsKKworCUJFR0lOX1JJTkcoMik7CisKKwlSQURFT05fRlJBTUVfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKworCUFEVkFOQ0VfUklORygpOworfQorCitzdGF0aWMgaW50IGJhZF9wcmltX3ZlcnRleF9ucihpbnQgcHJpbWl0aXZlLCBpbnQgbnIpCit7CisJc3dpdGNoIChwcmltaXRpdmUgJiBSQURFT05fUFJJTV9UWVBFX01BU0spIHsKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfTk9ORToKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfUE9JTlQ6CisJCXJldHVybiBuciA8IDE7CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX0xJTkU6CisJCXJldHVybiAobnIgJiAxKSB8fCBuciA9PSAwOworCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9MSU5FX1NUUklQOgorCQlyZXR1cm4gbnIgPCAyOworCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9UUklfTElTVDoKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUOgorCWNhc2UgUkFERU9OX1BSSU1fVFlQRV8zVlJUX0xJTkVfTElTVDoKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfUkVDVF9MSVNUOgorCQlyZXR1cm4gbnIgJSAzIHx8IG5yID09IDA7CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX1RSSV9GQU46CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX1RSSV9TVFJJUDoKKwkJcmV0dXJuIG5yIDwgMzsKKwlkZWZhdWx0OgorCQlyZXR1cm4gMTsKKwl9Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgc3RhcnQ7CisJdW5zaWduZWQgaW50IGZpbmlzaDsKKwl1bnNpZ25lZCBpbnQgcHJpbTsKKwl1bnNpZ25lZCBpbnQgbnVtdmVydHM7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKwl1bnNpZ25lZCBpbnQgdmNfZm9ybWF0OworfSBkcm1fcmFkZW9uX3RjbF9wcmltX3Q7CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF92ZXJ0ZXgoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgc3RydWN0IGRybV9idWYgKiBidWYsCisJCQkJICAgICAgZHJtX3JhZGVvbl90Y2xfcHJpbV90ICogcHJpbSkKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWludCBvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIGJ1Zi0+b2Zmc2V0ICsgcHJpbS0+c3RhcnQ7CisJaW50IG51bXZlcnRzID0gKGludClwcmltLT5udW12ZXJ0czsKKwlpbnQgbmJveCA9IHNhcmVhX3ByaXYtPm5ib3g7CisJaW50IGkgPSAwOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJod3ByaW0gMHgleCB2Zm10IDB4JXggJWQuLiVkICVkIHZlcnRzXG4iLAorCQkgIHByaW0tPnByaW0sCisJCSAgcHJpbS0+dmNfZm9ybWF0LCBwcmltLT5zdGFydCwgcHJpbS0+ZmluaXNoLCBwcmltLT5udW12ZXJ0cyk7CisKKwlpZiAoYmFkX3ByaW1fdmVydGV4X25yKHByaW0tPnByaW0sIHByaW0tPm51bXZlcnRzKSkgeworCQlEUk1fRVJST1IoImJhZCBwcmltICV4IG51bXZlcnRzICVkXG4iLAorCQkJICBwcmltLT5wcmltLCBwcmltLT5udW12ZXJ0cyk7CisJCXJldHVybjsKKwl9CisKKwlkbyB7CisJCS8qIEVtaXQgdGhlIG5leHQgY2xpcHJlY3QgKi8KKwkJaWYgKGkgPCBuYm94KSB7CisJCQlyYWRlb25fZW1pdF9jbGlwX3JlY3QoZGV2X3ByaXYsICZzYXJlYV9wcml2LT5ib3hlc1tpXSk7CisJCX0KKworCQkvKiBFbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIHJlbmRlcmluZyBjb21tYW5kcyAqLworCQlCRUdJTl9SSU5HKDUpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OXzNEX1JORFJfR0VOX0lORFhfUFJJTSwgMykpOworCQlPVVRfUklORyhvZmZzZXQpOworCQlPVVRfUklORyhudW12ZXJ0cyk7CisJCU9VVF9SSU5HKHByaW0tPnZjX2Zvcm1hdCk7CisJCU9VVF9SSU5HKHByaW0tPnByaW0gfCBSQURFT05fUFJJTV9XQUxLX0xJU1QgfAorCQkJIFJBREVPTl9DT0xPUl9PUkRFUl9SR0JBIHwKKwkJCSBSQURFT05fVlRYX0ZNVF9SQURFT05fTU9ERSB8CisJCQkgKG51bXZlcnRzIDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKworCQlBRFZBTkNFX1JJTkcoKTsKKworCQlpKys7CisJfSB3aGlsZSAoaSA8IG5ib3gpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fYnVmICogYnVmKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7CisJUklOR19MT0NBTFM7CisKKwlidWZfcHJpdi0+YWdlID0gKytkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaDsKKworCS8qIEVtaXQgdGhlIHZlcnRleCBidWZmZXIgYWdlICovCisJQkVHSU5fUklORygyKTsKKwlSQURFT05fRElTUEFUQ0hfQUdFKGJ1Zl9wcml2LT5hZ2UpOworCUFEVkFOQ0VfUklORygpOworCisJYnVmLT5wZW5kaW5nID0gMTsKKwlidWYtPnVzZWQgPSAwOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfaW5kaXJlY3Qoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJCXN0cnVjdCBkcm1fYnVmICogYnVmLCBpbnQgc3RhcnQsIGludCBlbmQpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoImJ1Zj0lZCBzPTB4JXggZT0weCV4XG4iLCBidWYtPmlkeCwgc3RhcnQsIGVuZCk7CisKKwlpZiAoc3RhcnQgIT0gZW5kKSB7CisJCWludCBvZmZzZXQgPSAoZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQKKwkJCSAgICAgICsgYnVmLT5vZmZzZXQgKyBzdGFydCk7CisJCWludCBkd29yZHMgPSAoZW5kIC0gc3RhcnQgKyAzKSAvIHNpemVvZih1MzIpOworCisJCS8qIEluZGlyZWN0IGJ1ZmZlciBkYXRhIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YKKwkJICogZHdvcmRzLCBzbyBpZiB3ZSd2ZSBiZWVuIGdpdmVuIGFuIG9kZCBudW1iZXIgd2UgbXVzdAorCQkgKiBwYWQgdGhlIGRhdGEgd2l0aCBhIFR5cGUtMiBDUCBwYWNrZXQuCisJCSAqLworCQlpZiAoZHdvcmRzICYgMSkgeworCQkJdTMyICpkYXRhID0gKHUzMiAqKQorCQkJICAgICgoY2hhciAqKWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZQorCQkJICAgICArIGJ1Zi0+b2Zmc2V0ICsgc3RhcnQpOworCQkJZGF0YVtkd29yZHMrK10gPSBSQURFT05fQ1BfUEFDS0VUMjsKKwkJfQorCisJCS8qIEZpcmUgb2ZmIHRoZSBpbmRpcmVjdCBidWZmZXIgKi8KKwkJQkVHSU5fUklORygzKTsKKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUF9JQl9CQVNFLCAxKSk7CisJCU9VVF9SSU5HKG9mZnNldCk7CisJCU9VVF9SSU5HKGR3b3Jkcyk7CisKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfaW5kaWNlcyhzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkgICAgICAgc3RydWN0IGRybV9idWYgKiBlbHRfYnVmLAorCQkJCSAgICAgICBkcm1fcmFkZW9uX3RjbF9wcmltX3QgKiBwcmltKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJaW50IG9mZnNldCA9IGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ICsgcHJpbS0+b2Zmc2V0OworCXUzMiAqZGF0YTsKKwlpbnQgZHdvcmRzOworCWludCBpID0gMDsKKwlpbnQgc3RhcnQgPSBwcmltLT5zdGFydCArIFJBREVPTl9JTkRFWF9QUklNX09GRlNFVDsKKwlpbnQgY291bnQgPSAocHJpbS0+ZmluaXNoIC0gc3RhcnQpIC8gc2l6ZW9mKHUxNik7CisJaW50IG5ib3ggPSBzYXJlYV9wcml2LT5uYm94OworCisJRFJNX0RFQlVHKCJod3ByaW0gMHgleCB2Zm10IDB4JXggJWQuLiVkIG9mZnNldDogJXggbnIgJWRcbiIsCisJCSAgcHJpbS0+cHJpbSwKKwkJICBwcmltLT52Y19mb3JtYXQsCisJCSAgcHJpbS0+c3RhcnQsIHByaW0tPmZpbmlzaCwgcHJpbS0+b2Zmc2V0LCBwcmltLT5udW12ZXJ0cyk7CisKKwlpZiAoYmFkX3ByaW1fdmVydGV4X25yKHByaW0tPnByaW0sIGNvdW50KSkgeworCQlEUk1fRVJST1IoImJhZCBwcmltICV4IGNvdW50ICVkXG4iLCBwcmltLT5wcmltLCBjb3VudCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoc3RhcnQgPj0gcHJpbS0+ZmluaXNoIHx8IChwcmltLT5zdGFydCAmIDB4NykpIHsKKwkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgcHJpbS0+cHJpbSk7CisJCXJldHVybjsKKwl9CisKKwlkd29yZHMgPSAocHJpbS0+ZmluaXNoIC0gcHJpbS0+c3RhcnQgKyAzKSAvIHNpemVvZih1MzIpOworCisJZGF0YSA9ICh1MzIgKikgKChjaGFyICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICsKKwkJCWVsdF9idWYtPm9mZnNldCArIHByaW0tPnN0YXJ0KTsKKworCWRhdGFbMF0gPSBDUF9QQUNLRVQzKFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0sIGR3b3JkcyAtIDIpOworCWRhdGFbMV0gPSBvZmZzZXQ7CisJZGF0YVsyXSA9IHByaW0tPm51bXZlcnRzOworCWRhdGFbM10gPSBwcmltLT52Y19mb3JtYXQ7CisJZGF0YVs0XSA9IChwcmltLT5wcmltIHwKKwkJICAgUkFERU9OX1BSSU1fV0FMS19JTkQgfAorCQkgICBSQURFT05fQ09MT1JfT1JERVJfUkdCQSB8CisJCSAgIFJBREVPTl9WVFhfRk1UX1JBREVPTl9NT0RFIHwKKwkJICAgKGNvdW50IDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKworCWRvIHsKKwkJaWYgKGkgPCBuYm94KQorCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOworCisJCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChkZXYsIGVsdF9idWYsCisJCQkJCSAgICBwcmltLT5zdGFydCwgcHJpbS0+ZmluaXNoKTsKKworCQlpKys7CisJfSB3aGlsZSAoaSA8IG5ib3gpOworCit9CisKKyNkZWZpbmUgUkFERU9OX01BWF9URVhUVVJFX1NJWkUgUkFERU9OX0JVRkZFUl9TSVpFCisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2Rpc3BhdGNoX3RleHR1cmUoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkJICAgICAgZHJtX3JhZGVvbl90ZXh0dXJlX3QgKiB0ZXgsCisJCQkJICAgICAgZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCAqIGltYWdlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9idWYgKmJ1ZjsKKwl1MzIgZm9ybWF0OworCXUzMiAqYnVmZmVyOworCWNvbnN0IHU4IF9fdXNlciAqZGF0YTsKKwlpbnQgc2l6ZSwgZHdvcmRzLCB0ZXhfd2lkdGgsIGJsaXRfd2lkdGgsIHNwaXRjaDsKKwl1MzIgaGVpZ2h0OworCWludCBpOworCXUzMiB0ZXhwaXRjaCwgbWljcm90aWxlOworCXUzMiBvZmZzZXQsIGJ5dGVfb2Zmc2V0OworCVJJTkdfTE9DQUxTOworCisJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsICZ0ZXgtPm9mZnNldCkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlc3RpbmF0aW9uIG9mZnNldFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1RFWFRVUkVfTE9BRDsKKworCS8qIEZsdXNoIHRoZSBwaXhlbCBjYWNoZS4gIFRoaXMgZW5zdXJlcyBubyBwaXhlbCBkYXRhIGdldHMgbWl4ZWQKKwkgKiB1cCB3aXRoIHRoZSB0ZXh0dXJlIGRhdGEgZnJvbSB0aGUgaG9zdCBkYXRhIGJsaXQsIG90aGVyd2lzZQorCSAqIHBhcnQgb2YgdGhlIHRleHR1cmUgaW1hZ2UgbWF5IGJlIGNvcnJ1cHRlZC4KKwkgKi8KKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9GTFVTSF9DQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCS8qIFRoZSBjb21waWxlciB3b24ndCBvcHRpbWl6ZSBhd2F5IGEgZGl2aXNpb24gYnkgYSB2YXJpYWJsZSwKKwkgKiBldmVuIGlmIHRoZSBvbmx5IGxlZ2FsIHZhbHVlcyBhcmUgcG93ZXJzIG9mIHR3by4gIFRodXMsIHdlJ2xsCisJICogdXNlIGEgc2hpZnQgaW5zdGVhZC4KKwkgKi8KKwlzd2l0Y2ggKHRleC0+Zm9ybWF0KSB7CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjg4ODg6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfUkdCQTg4ODg6CisJCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7CisJCXRleF93aWR0aCA9IHRleC0+d2lkdGggKiA0OworCQlibGl0X3dpZHRoID0gaW1hZ2UtPndpZHRoICogNDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQUk4ODoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NToKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0I1NjU6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjQ0NDQ6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfVllVWTQyMjoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9ZVllVNDIyOgorCQlmb3JtYXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKKwkJdGV4X3dpZHRoID0gdGV4LT53aWR0aCAqIDI7CisJCWJsaXRfd2lkdGggPSBpbWFnZS0+d2lkdGggKiAyOworCQlicmVhazsKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9JODoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0IzMzI6CisJCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQ0k4OworCQl0ZXhfd2lkdGggPSB0ZXgtPndpZHRoICogMTsKKwkJYmxpdF93aWR0aCA9IGltYWdlLT53aWR0aCAqIDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9FUlJPUigiaW52YWxpZCB0ZXh0dXJlIGZvcm1hdCAlZFxuIiwgdGV4LT5mb3JtYXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJc3BpdGNoID0gYmxpdF93aWR0aCA+PiA2OworCWlmIChzcGl0Y2ggPT0gMCAmJiBpbWFnZS0+aGVpZ2h0ID4gMSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl0ZXhwaXRjaCA9IHRleC0+cGl0Y2g7CisJaWYgKCh0ZXhwaXRjaCA8PCAyMikgJiBSQURFT05fRFNUX1RJTEVfTUlDUk8pIHsKKwkJbWljcm90aWxlID0gMTsKKwkJaWYgKHRleF93aWR0aCA8IDY0KSB7CisJCQl0ZXhwaXRjaCAmPSB+KFJBREVPTl9EU1RfVElMRV9NSUNSTyA+PiAyMik7CisJCQkvKiB3ZSBnb3QgdGlsZWQgY29vcmRpbmF0ZXMsIHVudGlsZSB0aGVtICovCisJCQlpbWFnZS0+eCAqPSAyOworCQl9CisJfSBlbHNlCisJCW1pY3JvdGlsZSA9IDA7CisKKwkvKiB0aGlzIG1pZ2h0IGZhaWwgZm9yIHplcm8tc2l6ZWQgdXBsb2FkcyAtIGFyZSB0aG9zZSBpbGxlZ2FsPyAqLworCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgdGV4LT5vZmZzZXQgKyBpbWFnZS0+aGVpZ2h0ICoKKwkJCQlibGl0X3dpZHRoIC0gMSkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGZpbmFsIGRlc3RpbmF0aW9uIG9mZnNldFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCURSTV9ERUJVRygidGV4PSVkeCVkIGJsaXQ9JWRcbiIsIHRleF93aWR0aCwgdGV4LT5oZWlnaHQsIGJsaXRfd2lkdGgpOworCisJZG8geworCQlEUk1fREVCVUcoInRleDogb2ZzPTB4JXggcD0lZCBmPSVkIHg9JWhkIHk9JWhkIHc9JWhkIGg9JWhkXG4iLAorCQkJICB0ZXgtPm9mZnNldCA+PiAxMCwgdGV4LT5waXRjaCwgdGV4LT5mb3JtYXQsCisJCQkgIGltYWdlLT54LCBpbWFnZS0+eSwgaW1hZ2UtPndpZHRoLCBpbWFnZS0+aGVpZ2h0KTsKKworCQkvKiBNYWtlIGEgY29weSBvZiBzb21lIHBhcmFtZXRlcnMgaW4gY2FzZSB3ZSBoYXZlIHRvCisJCSAqIHVwZGF0ZSB0aGVtIGZvciBhIG11bHRpLXBhc3MgdGV4dHVyZSBibGl0LgorCQkgKi8KKwkJaGVpZ2h0ID0gaW1hZ2UtPmhlaWdodDsKKwkJZGF0YSA9IChjb25zdCB1OCBfX3VzZXIgKilpbWFnZS0+ZGF0YTsKKworCQlzaXplID0gaGVpZ2h0ICogYmxpdF93aWR0aDsKKworCQlpZiAoc2l6ZSA+IFJBREVPTl9NQVhfVEVYVFVSRV9TSVpFKSB7CisJCQloZWlnaHQgPSBSQURFT05fTUFYX1RFWFRVUkVfU0laRSAvIGJsaXRfd2lkdGg7CisJCQlzaXplID0gaGVpZ2h0ICogYmxpdF93aWR0aDsKKwkJfSBlbHNlIGlmIChzaXplIDwgNCAmJiBzaXplID4gMCkgeworCQkJc2l6ZSA9IDQ7CisJCX0gZWxzZSBpZiAoc2l6ZSA9PSAwKSB7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKKwkJaWYgKDAgJiYgIWJ1ZikgeworCQkJcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworCQkJYnVmID0gcmFkZW9uX2ZyZWVsaXN0X2dldChkZXYpOworCQl9CisJCWlmICghYnVmKSB7CisJCQlEUk1fREVCVUcoIkVBR0FJTlxuIik7CisJCQlpZiAoRFJNX0NPUFlfVE9fVVNFUih0ZXgtPmltYWdlLCBpbWFnZSwgc2l6ZW9mKCppbWFnZSkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0dXJuIC1FQUdBSU47CisJCX0KKworCQkvKiBEaXNwYXRjaCB0aGUgaW5kaXJlY3QgYnVmZmVyLgorCQkgKi8KKwkJYnVmZmVyID0KKwkJICAgICh1MzIgKikgKChjaGFyICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICsgYnVmLT5vZmZzZXQpOworCQlkd29yZHMgPSBzaXplIC8gNDsKKworI2RlZmluZSBSQURFT05fQ09QWV9NVChfYnVmLCBfZGF0YSwgX3dpZHRoKSBcCisJZG8geyBcCisJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoX2J1ZiwgX2RhdGEsIChfd2lkdGgpKSkge1wKKwkJCURSTV9FUlJPUigiRUZBVUxUIG9uIHBhZCwgJWQgYnl0ZXNcbiIsIChfd2lkdGgpKTsgXAorCQkJcmV0dXJuIC1FRkFVTFQ7IFwKKwkJfSBcCisJfSB3aGlsZSgwKQorCisJCWlmIChtaWNyb3RpbGUpIHsKKwkJCS8qIHRleHR1cmUgbWljcm8gdGlsaW5nIGluIHVzZSwgbWluaW11bSB0ZXh0dXJlIHdpZHRoIGlzIHRodXMgMTYgYnl0ZXMuCisJCQkgICBob3dldmVyLCB3ZSBjYW5ub3QgdXNlIGJsaXR0ZXIgZGlyZWN0bHkgZm9yIHRleHR1cmUgd2lkdGggPCA2NCBieXRlcywKKwkJCSAgIHNpbmNlIG1pbmltdW0gdGV4IHBpdGNoIGlzIDY0IGJ5dGVzIGFuZCB3ZSBuZWVkIHRoaXMgdG8gbWF0Y2gKKwkJCSAgIHRoZSB0ZXh0dXJlIHdpZHRoLCBvdGhlcndpc2UgdGhlIGJsaXR0ZXIgd2lsbCB0aWxlIGl0IHdyb25nLgorCQkJICAgVGh1cywgdGlsaW5nIG1hbnVhbGx5IGluIHRoaXMgY2FzZS4gQWRkaXRpb25hbGx5LCBuZWVkIHRvIHNwZWNpYWwKKwkJCSAgIGNhc2UgdGV4IGhlaWdodCA9IDEsIHNpbmNlIG91ciBhY3R1YWwgaW1hZ2Ugd2lsbCBoYXZlIGhlaWdodCAyCisJCQkgICBhbmQgd2UgbmVlZCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIHRleHR1cmUgc2l6ZQorCQkJICAgZnJvbSB1c2VyIHNwYWNlLiAqLworCQkJaWYgKHRleC0+aGVpZ2h0ID09IDEpIHsKKwkJCQlpZiAodGV4X3dpZHRoID49IDY0IHx8IHRleF93aWR0aCA8PSAxNikgeworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsCisJCQkJCQkoaW50KSh0ZXhfd2lkdGggKiBzaXplb2YodTMyKSkpOworCQkJCX0gZWxzZSBpZiAodGV4X3dpZHRoID09IDMyKSB7CisJCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwgMTYpOworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyA4LAorCQkJCQkJICAgICAgIGRhdGEgKyAxNiwgMTYpOworCQkJCX0KKwkJCX0gZWxzZSBpZiAodGV4X3dpZHRoID49IDY0IHx8IHRleF93aWR0aCA9PSAxNikgeworCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwKKwkJCQkJICAgICAgIChpbnQpKGR3b3JkcyAqIHNpemVvZih1MzIpKSk7CisJCQl9IGVsc2UgaWYgKHRleF93aWR0aCA8IDE2KSB7CisJCQkJZm9yIChpID0gMDsgaSA8IHRleC0+aGVpZ2h0OyBpKyspIHsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCB0ZXhfd2lkdGgpOworCQkJCQlidWZmZXIgKz0gNDsKKwkJCQkJZGF0YSArPSB0ZXhfd2lkdGg7CisJCQkJfQorCQkJfSBlbHNlIGlmICh0ZXhfd2lkdGggPT0gMzIpIHsKKwkJCQkvKiBUT0RPOiBtYWtlIHN1cmUgdGhpcyB3b3JrcyB3aGVuIG5vdCBmaXR0aW5nIGluIG9uZSBidWZmZXIKKwkJCQkgICAoaS5lLiAzMmJ5dGVzIHggMjA0OC4uLikgKi8KKwkJCQlmb3IgKGkgPSAwOyBpIDwgdGV4LT5oZWlnaHQ7IGkgKz0gMikgeworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsIDE2KTsKKwkJCQkJZGF0YSArPSAxNjsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyICsgOCwgZGF0YSwgMTYpOworCQkJCQlkYXRhICs9IDE2OworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyA0LCBkYXRhLCAxNik7CisJCQkJCWRhdGEgKz0gMTY7CisJCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciArIDEyLCBkYXRhLCAxNik7CisJCQkJCWRhdGEgKz0gMTY7CisJCQkJCWJ1ZmZlciArPSAxNjsKKwkJCQl9CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAodGV4X3dpZHRoID49IDMyKSB7CisJCQkJLyogVGV4dHVyZSBpbWFnZSB3aWR0aCBpcyBsYXJnZXIgdGhhbiB0aGUgbWluaW11bSwgc28gd2UKKwkJCQkgKiBjYW4gdXBsb2FkIGl0IGRpcmVjdGx5LgorCQkJCSAqLworCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwKKwkJCQkJICAgICAgIChpbnQpKGR3b3JkcyAqIHNpemVvZih1MzIpKSk7CisJCQl9IGVsc2UgeworCQkJCS8qIFRleHR1cmUgaW1hZ2Ugd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtLCBzbyB3ZQorCQkJCSAqIG5lZWQgdG8gcGFkIG91dCBlYWNoIGltYWdlIHNjYW5saW5lIHRvIHRoZSBtaW5pbXVtCisJCQkJICogd2lkdGguCisJCQkJICovCisJCQkJZm9yIChpID0gMDsgaSA8IHRleC0+aGVpZ2h0OyBpKyspIHsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCB0ZXhfd2lkdGgpOworCQkJCQlidWZmZXIgKz0gODsKKwkJCQkJZGF0YSArPSB0ZXhfd2lkdGg7CisJCQkJfQorCQkJfQorCQl9CisKKyN1bmRlZiBSQURFT05fQ09QWV9NVAorCQlieXRlX29mZnNldCA9IChpbWFnZS0+eSAmIH4yMDQ3KSAqIGJsaXRfd2lkdGg7CisJCWJ1Zi0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OworCQlidWYtPnVzZWQgPSBzaXplOworCQlvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIGJ1Zi0+b2Zmc2V0OworCQlCRUdJTl9SSU5HKDkpOworCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSSwgNSkpOworCQlPVVRfUklORyhSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCB8CisJCQkgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAorCQkJIFJBREVPTl9HTUNfQlJVU0hfTk9ORSB8CisJCQkgKGZvcm1hdCA8PCA4KSB8CisJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJIFJBREVPTl9ST1AzX1MgfAorCQkJIFJBREVPTl9EUF9TUkNfU09VUkNFX01FTU9SWSB8CisJCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTIHwgUkFERU9OX0dNQ19XUl9NU0tfRElTKTsKKwkJT1VUX1JJTkcoKHNwaXRjaCA8PCAyMikgfCAob2Zmc2V0ID4+IDEwKSk7CisJCU9VVF9SSU5HKCh0ZXhwaXRjaCA8PCAyMikgfCAoKHRleC0+b2Zmc2V0ID4+IDEwKSArIChieXRlX29mZnNldCA+PiAxMCkpKTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKChpbWFnZS0+eCA8PCAxNikgfCAoaW1hZ2UtPnkgJSAyMDQ4KSk7CisJCU9VVF9SSU5HKChpbWFnZS0+d2lkdGggPDwgMTYpIHwgaGVpZ2h0KTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJQ09NTUlUX1JJTkcoKTsKKworCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCisJCS8qIFVwZGF0ZSB0aGUgaW5wdXQgcGFyYW1ldGVycyBmb3IgbmV4dCB0aW1lICovCisJCWltYWdlLT55ICs9IGhlaWdodDsKKwkJaW1hZ2UtPmhlaWdodCAtPSBoZWlnaHQ7CisJCWltYWdlLT5kYXRhID0gKGNvbnN0IHU4IF9fdXNlciAqKWltYWdlLT5kYXRhICsgc2l6ZTsKKwl9IHdoaWxlIChpbWFnZS0+aGVpZ2h0ID4gMCk7CisKKwkvKiBGbHVzaCB0aGUgcGl4ZWwgY2FjaGUgYWZ0ZXIgdGhlIGJsaXQgY29tcGxldGVzLiAgVGhpcyBlbnN1cmVzCisJICogdGhlIHRleHR1cmUgZGF0YSBpcyB3cml0dGVuIG91dCB0byBtZW1vcnkgYmVmb3JlIHJlbmRlcmluZworCSAqIGNvbnRpbnVlcy4KKwkgKi8KKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9GTFVTSF9DQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKKwlBRFZBTkNFX1JJTkcoKTsKKwlDT01NSVRfUklORygpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCB1MzIgKiBzdGlwcGxlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGk7CisJUklOR19MT0NBTFM7CisJRFJNX0RFQlVHKCJcbiIpOworCisJQkVHSU5fUklORygzNSk7CisKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9TVElQUExFX0FERFIsIDApKTsKKwlPVVRfUklORygweDAwMDAwMDAwKTsKKworCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1JFX1NUSVBQTEVfREFUQSwgMzEpKTsKKwlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgeworCQlPVVRfUklORyhzdGlwcGxlW2ldKTsKKwl9CisKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhpbnQgc3VyZl9pbmRleCwKKwkJCQkgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisJaWYgKCFkZXZfcHJpdi0+bW1pbykKKwkJcmV0dXJuOworCisJcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworCisJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBzdXJmX2luZGV4LAorCQkgICAgIGRldl9wcml2LT5zdXJmYWNlc1tzdXJmX2luZGV4XS5mbGFncyk7CisJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9MT1dFUl9CT1VORCArIDE2ICogc3VyZl9pbmRleCwKKwkJICAgICBkZXZfcHJpdi0+c3VyZmFjZXNbc3VyZl9pbmRleF0ubG93ZXIpOworCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKyAxNiAqIHN1cmZfaW5kZXgsCisJCSAgICAgZGV2X3ByaXYtPnN1cmZhY2VzW3N1cmZfaW5kZXhdLnVwcGVyKTsKK30KKworLyogQWxsb2NhdGVzIGEgdmlydHVhbCBzdXJmYWNlCisgKiBkb2Vzbid0IGFsd2F5cyBhbGxvY2F0ZSBhIHJlYWwgc3VyZmFjZSwgd2lsbCBzdHJldGNoIGFuIGV4aXN0aW5nCisgKiBzdXJmYWNlIHdoZW4gcG9zc2libGUuCisgKgorICogTm90ZSB0aGF0IHJlZmNvdW50IGNhbiBiZSBhdCBtb3N0IDIsIHNpbmNlIGR1cmluZyBhIGZyZWUgcmVmY291bnQ9MworICogbWlnaHQgbWVhbiB3ZSBoYXZlIHRvIGFsbG9jYXRlIGEgbmV3IHN1cmZhY2Ugd2hpY2ggbWlnaHQgbm90IGFsd2F5cworICogYmUgYXZhaWxhYmxlLgorICogRm9yIGV4YW1wbGUgOiB3ZSBhbGxvY2F0ZSB0aHJlZSBjb250aWdvdXMgc3VyZmFjZXMgQUJDLiBJZiBCIGlzCisgKiBmcmVlZCwgd2Ugc3VkZGVubHkgbmVlZCB0d28gc3VyZmFjZXMgdG8gc3RvcmUgQSBhbmQgQywgd2hpY2ggbWlnaHQKKyAqIG5vdCBhbHdheXMgYmUgYXZhaWxhYmxlLgorICovCitzdGF0aWMgaW50IGFsbG9jX3N1cmZhY2UoZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QgKm5ldywKKwkJCSBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgKnM7CisJaW50IGk7CisJaW50IHZpcnRfc3VyZmFjZV9pbmRleDsKKwl1aW50MzJfdCBuZXdfdXBwZXIsIG5ld19sb3dlcjsKKworCW5ld19sb3dlciA9IG5ldy0+YWRkcmVzczsKKwluZXdfdXBwZXIgPSBuZXdfbG93ZXIgKyBuZXctPnNpemUgLSAxOworCisJLyogc2FuaXR5IGNoZWNrICovCisJaWYgKChuZXdfbG93ZXIgPj0gbmV3X3VwcGVyKSB8fCAobmV3LT5mbGFncyA9PSAwKSB8fCAobmV3LT5zaXplID09IDApIHx8CisJICAgICgobmV3X3VwcGVyICYgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKSAhPQorCSAgICAgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKQorCSAgICB8fCAoKG5ld19sb3dlciAmIFJBREVPTl9TVVJGX0FERFJFU1NfRklYRURfTUFTSykgIT0gMCkpCisJCXJldHVybiAtMTsKKworCS8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBvdmVybGFwIHdpdGggZXhpc3Rpbmcgc3VyZmFjZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ICE9IDApICYmCisJCSAgICAoKChuZXdfbG93ZXIgPj0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSAmJgorCQkgICAgICAobmV3X2xvd2VyIDwgZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyKSkgfHwKKwkJICAgICAoKG5ld19sb3dlciA8IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikgJiYKKwkJICAgICAgKG5ld191cHBlciA+IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikpKSkgeworCQkJcmV0dXJuIC0xOworCQl9CisJfQorCisJLyogZmluZCBhIHZpcnR1YWwgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKQorCQlpZiAoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbaV0uZmlsZV9wcml2ID09IDApCisJCQlicmVhazsKKwlpZiAoaSA9PSAyICogUkFERU9OX01BWF9TVVJGQUNFUykgeworCQlyZXR1cm4gLTE7CisJfQorCXZpcnRfc3VyZmFjZV9pbmRleCA9IGk7CisKKwkvKiB0cnkgdG8gcmV1c2UgYW4gZXhpc3Rpbmcgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJLyogZXh0ZW5kIGJlZm9yZSAqLworCQlpZiAoKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAxKSAmJgorCQkgICAgKG5ldy0+ZmxhZ3MgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzKSAmJgorCQkgICAgKG5ld191cHBlciArIDEgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSkgeworCQkJcyA9ICYoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbdmlydF9zdXJmYWNlX2luZGV4XSk7CisJCQlzLT5zdXJmYWNlX2luZGV4ID0gaTsKKwkJCXMtPmxvd2VyID0gbmV3X2xvd2VyOworCQkJcy0+dXBwZXIgPSBuZXdfdXBwZXI7CisJCQlzLT5mbGFncyA9IG5ldy0+ZmxhZ3M7CisJCQlzLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7CisJCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ucmVmY291bnQrKzsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlciA9IHMtPmxvd2VyOworCQkJcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhzLT5zdXJmYWNlX2luZGV4LCBkZXZfcHJpdik7CisJCQlyZXR1cm4gdmlydF9zdXJmYWNlX2luZGV4OworCQl9CisKKwkJLyogZXh0ZW5kIGFmdGVyICovCisJCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID09IDEpICYmCisJCSAgICAobmV3LT5mbGFncyA9PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0uZmxhZ3MpICYmCisJCSAgICAobmV3X2xvd2VyID09IGRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciArIDEpKSB7CisJCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKKwkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOworCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7CisJCQlzLT51cHBlciA9IG5ld191cHBlcjsKKwkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKKwkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCsrOworCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyID0gcy0+dXBwZXI7CisJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKKwkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7CisJCX0KKwl9CisKKwkvKiBva2F5LCB3ZSBuZWVkIGEgbmV3IG9uZSAqLworCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAwKSB7CisJCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKKwkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOworCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7CisJCQlzLT51cHBlciA9IG5ld191cHBlcjsKKwkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKKwkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9IDE7CisJCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ubG93ZXIgPSBzLT5sb3dlcjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciA9IHMtPnVwcGVyOworCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzID0gcy0+ZmxhZ3M7CisJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKKwkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7CisJCX0KKwl9CisKKwkvKiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZyAqLworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBmcmVlX3N1cmZhY2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAorCQkJaW50IGxvd2VyKQoreworCXN0cnVjdCByYWRlb25fdmlydF9zdXJmYWNlICpzOworCWludCBpOworCS8qIGZpbmQgdGhlIHZpcnR1YWwgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCXMgPSAmKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW2ldKTsKKwkJaWYgKHMtPmZpbGVfcHJpdikgeworCQkJaWYgKChsb3dlciA9PSBzLT5sb3dlcikgJiYgKGZpbGVfcHJpdiA9PSBzLT5maWxlX3ByaXYpKQorCQkJeworCQkJCWlmIChkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJICAgIGxvd2VyID09IHMtPmxvd2VyKQorCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJCSAgICBsb3dlciA9IHMtPnVwcGVyOworCisJCQkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KKwkJCQkgICAgdXBwZXIgPT0gcy0+dXBwZXIpCisJCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KKwkJCQkJICAgIHVwcGVyID0gcy0+bG93ZXI7CisKKwkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0ucmVmY291bnQtLTsKKwkJCQlpZiAoZGV2X3ByaXYtPnN1cmZhY2VzW3MtPnN1cmZhY2VfaW5kZXhdLgorCQkJCSAgICByZWZjb3VudCA9PSAwKQorCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJCSAgICBmbGFncyA9IDA7CisJCQkJcy0+ZmlsZV9wcml2ID0gTlVMTDsKKwkJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsCisJCQkJCQkJICBkZXZfcHJpdik7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9zdXJmYWNlc19yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCSAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCWlmIChkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5maWxlX3ByaXYgPT0gZmlsZV9wcml2KQorCQkJZnJlZV9zdXJmYWNlKGZpbGVfcHJpdiwgZGV2X3ByaXYsCisJCQkJICAgICBkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5sb3dlcik7CisJfQorfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBJT0NUTCBmdW5jdGlvbnMKKyAqLworc3RhdGljIGludCByYWRlb25fc3VyZmFjZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190ICphbGxvYyA9IGRhdGE7CisKKwlpZiAoYWxsb2Nfc3VyZmFjZShhbGxvYywgZGV2X3ByaXYsIGZpbGVfcHJpdikgPT0gLTEpCisJCXJldHVybiAtRUlOVkFMOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX3N1cmZhY2VfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3QgKm1lbWZyZWUgPSBkYXRhOworCisJaWYgKGZyZWVfc3VyZmFjZShmaWxlX3ByaXYsIGRldl9wcml2LCBtZW1mcmVlLT5hZGRyZXNzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfY2xlYXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKKwlkcm1fcmFkZW9uX2NsZWFyX3QgKmNsZWFyID0gZGF0YTsKKwlkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdCBkZXB0aF9ib3hlc1tSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTXTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKKwkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZkZXB0aF9ib3hlcywgY2xlYXItPmRlcHRoX2JveGVzLAorCQkJICAgICAgIHNhcmVhX3ByaXYtPm5ib3ggKiBzaXplb2YoZGVwdGhfYm94ZXNbMF0pKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyYWRlb25fY3BfZGlzcGF0Y2hfY2xlYXIoZGV2LCBjbGVhciwgZGVwdGhfYm94ZXMpOworCisJQ09NTUlUX1JJTkcoKTsKKwlyZXR1cm4gMDsKK30KKworLyogTm90IHN1cmUgd2h5IHRoaXMgaXNuJ3Qgc2V0IGFsbCB0aGUgdGltZToKKyAqLworc3RhdGljIGludCByYWRlb25fZG9faW5pdF9wYWdlZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJQkVHSU5fUklORyg2KTsKKwlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fQ1JUQ19PRkZTRVRfQ05UTCwgMCkpOworCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDX09GRlNFVF9DTlRMKSB8CisJCSBSQURFT05fQ1JUQ19PRkZTRVRfRkxJUF9DTlRMKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCwgMCkpOworCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCkgfAorCQkgUkFERU9OX0NSVENfT0ZGU0VUX0ZMSVBfQ05UTCk7CisJQURWQU5DRV9SSU5HKCk7CisKKwlkZXZfcHJpdi0+cGFnZV9mbGlwcGluZyA9IDE7CisKKwlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgIT0gMSkKKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPSAwOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFN3YXBwaW5nIGFuZCBmbGlwcGluZyBhcmUgZGlmZmVyZW50IG9wZXJhdGlvbnMsIG5lZWQgZGlmZmVyZW50IGlvY3Rscy4KKyAqIFRoZXkgY2FuICYgc2hvdWxkIGJlIGludGVybWl4ZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSAzZCB3aW5kb3dzLgorICovCitzdGF0aWMgaW50IHJhZGVvbl9jcF9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisKKwlpZiAoIWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nKQorCQlyYWRlb25fZG9faW5pdF9wYWdlZmxpcChkZXYpOworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoZGV2KTsKKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKKwkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7CisKKwlyYWRlb25fY3BfZGlzcGF0Y2hfc3dhcChkZXYpOworCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOworCisJQ09NTUlUX1JJTkcoKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfdmVydGV4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25fdmVydGV4X3QgKnZlcnRleCA9IGRhdGE7CisJZHJtX3JhZGVvbl90Y2xfcHJpbV90IHByaW07CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgY291bnQ9JWQgZGlzY2FyZD0lZFxuIiwKKwkJICBEUk1fQ1VSUkVOVFBJRCwgdmVydGV4LT5pZHgsIHZlcnRleC0+Y291bnQsIHZlcnRleC0+ZGlzY2FyZCk7CisKKwlpZiAodmVydGV4LT5pZHggPCAwIHx8IHZlcnRleC0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7CisJCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAorCQkJICB2ZXJ0ZXgtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmICh2ZXJ0ZXgtPnByaW0gPCAwIHx8IHZlcnRleC0+cHJpbSA+IFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QpIHsKKwkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgdmVydGV4LT5wcmltKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKwlWQl9BR0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisKKwlidWYgPSBkbWEtPmJ1Zmxpc3RbdmVydGV4LT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgorCSAqLworCWlmICh2ZXJ0ZXgtPmNvdW50KSB7CisJCWJ1Zi0+dXNlZCA9IHZlcnRleC0+Y291bnQ7CS8qIG5vdCB1c2VkPyAqLworCisJCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgeworCQkJaWYgKHJhZGVvbl9lbWl0X3N0YXRlKGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCSAgICAgICZzYXJlYV9wcml2LT5jb250ZXh0X3N0YXRlLAorCQkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCisJCQkJCSAgICAgIHNhcmVhX3ByaXYtPmRpcnR5KSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUgZmFpbGVkXG4iKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKworCQkJc2FyZWFfcHJpdi0+ZGlydHkgJj0gfihSQURFT05fVVBMT0FEX1RFWDBJTUFHRVMgfAorCQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKKwkJCQkJICAgICAgIFJBREVPTl9VUExPQURfVEVYMklNQUdFUyB8CisJCQkJCSAgICAgICBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFKTsKKwkJfQorCisJCXByaW0uc3RhcnQgPSAwOworCQlwcmltLmZpbmlzaCA9IHZlcnRleC0+Y291bnQ7CS8qIHVudXNlZCAqLworCQlwcmltLnByaW0gPSB2ZXJ0ZXgtPnByaW07CisJCXByaW0ubnVtdmVydHMgPSB2ZXJ0ZXgtPmNvdW50OworCQlwcmltLnZjX2Zvcm1hdCA9IGRldl9wcml2LT5zYXJlYV9wcml2LT52Y19mb3JtYXQ7CisKKwkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnByaW0pOworCX0KKworCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9pbmRpY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25faW5kaWNlc190ICplbHRzID0gZGF0YTsKKwlkcm1fcmFkZW9uX3RjbF9wcmltX3QgcHJpbTsKKwlpbnQgY291bnQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgc3RhcnQ9JWQgZW5kPSVkIGRpc2NhcmQ9JWRcbiIsCisJCSAgRFJNX0NVUlJFTlRQSUQsIGVsdHMtPmlkeCwgZWx0cy0+c3RhcnQsIGVsdHMtPmVuZCwKKwkJICBlbHRzLT5kaXNjYXJkKTsKKworCWlmIChlbHRzLT5pZHggPCAwIHx8IGVsdHMtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgZWx0cy0+aWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGVsdHMtPnByaW0gPCAwIHx8IGVsdHMtPnByaW0gPiBSQURFT05fUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUKSB7CisJCURSTV9FUlJPUigiYnVmZmVyIHByaW0gJWRcbiIsIGVsdHMtPnByaW0pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWJ1ZiA9IGRtYS0+YnVmbGlzdFtlbHRzLT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGVsdHMtPmlkeCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWNvdW50ID0gKGVsdHMtPmVuZCAtIGVsdHMtPnN0YXJ0KSAvIHNpemVvZih1MTYpOworCWVsdHMtPnN0YXJ0IC09IFJBREVPTl9JTkRFWF9QUklNX09GRlNFVDsKKworCWlmIChlbHRzLT5zdGFydCAmIDB4NykgeworCQlEUk1fRVJST1IoIm1pc2FsaWduZWQgYnVmZmVyIDB4JXhcbiIsIGVsdHMtPnN0YXJ0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmIChlbHRzLT5zdGFydCA8IGJ1Zi0+dXNlZCkgeworCQlEUk1fRVJST1IoIm5vIGhlYWRlciAweCV4IC0gMHgleFxuIiwgZWx0cy0+c3RhcnQsIGJ1Zi0+dXNlZCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWJ1Zi0+dXNlZCA9IGVsdHMtPmVuZDsKKworCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgeworCQlpZiAocmFkZW9uX2VtaXRfc3RhdGUoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkgICAgICAmc2FyZWFfcHJpdi0+Y29udGV4dF9zdGF0ZSwKKwkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCisJCQkJICAgICAgc2FyZWFfcHJpdi0+ZGlydHkpKSB7CisJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3N0YXRlIGZhaWxlZFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXNhcmVhX3ByaXYtPmRpcnR5ICY9IH4oUkFERU9OX1VQTE9BRF9URVgwSU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1JFUVVJUkVfUVVJRVNDRU5DRSk7CisJfQorCisJLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgorCSAqLworCXByaW0uc3RhcnQgPSBlbHRzLT5zdGFydDsKKwlwcmltLmZpbmlzaCA9IGVsdHMtPmVuZDsKKwlwcmltLnByaW0gPSBlbHRzLT5wcmltOworCXByaW0ub2Zmc2V0ID0gMDsJLyogb2Zmc2V0IGZyb20gc3RhcnQgb2YgZG1hIGJ1ZmZlcnMgKi8KKwlwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCisJcHJpbS52Y19mb3JtYXQgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+dmNfZm9ybWF0OworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGljZXMoZGV2LCBidWYsICZwcmltKTsKKwlpZiAoZWx0cy0+ZGlzY2FyZCkgeworCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCX0KKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX3RleHR1cmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3RleHR1cmVfdCAqdGV4ID0gZGF0YTsKKwlkcm1fcmFkZW9uX3RleF9pbWFnZV90IGltYWdlOworCWludCByZXQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKHRleC0+aW1hZ2UgPT0gTlVMTCkgeworCQlEUk1fRVJST1IoIm51bGwgdGV4dHVyZSBpbWFnZSFcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZpbWFnZSwKKwkJCSAgICAgICAoZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCBfX3VzZXIgKikgdGV4LT5pbWFnZSwKKwkJCSAgICAgICBzaXplb2YoaW1hZ2UpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCXJldCA9IHJhZGVvbl9jcF9kaXNwYXRjaF90ZXh0dXJlKGRldiwgZmlsZV9wcml2LCB0ZXgsICZpbWFnZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zdGlwcGxlX3QgKnN0aXBwbGUgPSBkYXRhOworCXUzMiBtYXNrWzMyXTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZtYXNrLCBzdGlwcGxlLT5tYXNrLCAzMiAqIHNpemVvZih1MzIpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX3N0aXBwbGUoZGV2LCBtYXNrKTsKKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2luZGlyZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25faW5kaXJlY3RfdCAqaW5kaXJlY3QgPSBkYXRhOworCVJJTkdfTE9DQUxTOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCURSTV9ERUJVRygiaWR4PSVkIHM9JWQgZT0lZCBkPSVkXG4iLAorCQkgIGluZGlyZWN0LT5pZHgsIGluZGlyZWN0LT5zdGFydCwgaW5kaXJlY3QtPmVuZCwKKwkJICBpbmRpcmVjdC0+ZGlzY2FyZCk7CisKKwlpZiAoaW5kaXJlY3QtPmlkeCA8IDAgfHwgaW5kaXJlY3QtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgaW5kaXJlY3QtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJYnVmID0gZG1hLT5idWZsaXN0W2luZGlyZWN0LT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGluZGlyZWN0LT5pZHgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoaW5kaXJlY3QtPnN0YXJ0IDwgYnVmLT51c2VkKSB7CisJCURSTV9FUlJPUigicmV1c2luZyBpbmRpcmVjdDogc3RhcnQ9MHgleCBhY3R1YWw9MHgleFxuIiwKKwkJCSAgaW5kaXJlY3QtPnN0YXJ0LCBidWYtPnVzZWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWJ1Zi0+dXNlZCA9IGluZGlyZWN0LT5lbmQ7CisKKwkvKiBXYWl0IGZvciB0aGUgM0Qgc3RyZWFtIHRvIGlkbGUgYmVmb3JlIHRoZSBpbmRpcmVjdCBidWZmZXIKKwkgKiBjb250YWluaW5nIDJEIGFjY2VsZXJhdGlvbiBjb21tYW5kcyBpcyBwcm9jZXNzZWQuCisJICovCisJQkVHSU5fUklORygyKTsKKworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCisJLyogRGlzcGF0Y2ggdGhlIGluZGlyZWN0IGJ1ZmZlciBmdWxsIG9mIGNvbW1hbmRzIGZyb20gdGhlCisJICogWCBzZXJ2ZXIuICBUaGlzIGlzIGluc2VjdXJlIGFuZCBpcyB0aHVzIG9ubHkgYXZhaWxhYmxlIHRvCisJICogcHJpdmlsZWdlZCBjbGllbnRzLgorCSAqLworCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChkZXYsIGJ1ZiwgaW5kaXJlY3QtPnN0YXJ0LCBpbmRpcmVjdC0+ZW5kKTsKKwlpZiAoaW5kaXJlY3QtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF92ZXJ0ZXgyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25fdmVydGV4Ml90ICp2ZXJ0ZXggPSBkYXRhOworCWludCBpOworCXVuc2lnbmVkIGNoYXIgbGFzdHN0YXRlOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCURSTV9ERUJVRygicGlkPSVkIGluZGV4PSVkIGRpc2NhcmQ9JWRcbiIsCisJCSAgRFJNX0NVUlJFTlRQSUQsIHZlcnRleC0+aWR4LCB2ZXJ0ZXgtPmRpc2NhcmQpOworCisJaWYgKHZlcnRleC0+aWR4IDwgMCB8fCB2ZXJ0ZXgtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgdmVydGV4LT5pZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisJVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCisJYnVmID0gZG1hLT5idWZsaXN0W3ZlcnRleC0+aWR4XTsKKworCWlmIChidWYtPmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJwcm9jZXNzICVkIHVzaW5nIGJ1ZmZlciBvd25lZCBieSAlcFxuIiwKKwkJCSAgRFJNX0NVUlJFTlRQSUQsIGJ1Zi0+ZmlsZV9wcml2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHNhcmVhX3ByaXYtPm5ib3ggPiBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZvciAobGFzdHN0YXRlID0gMHhmZiwgaSA9IDA7IGkgPCB2ZXJ0ZXgtPm5yX3ByaW1zOyBpKyspIHsKKwkJZHJtX3JhZGVvbl9wcmltX3QgcHJpbTsKKwkJZHJtX3JhZGVvbl90Y2xfcHJpbV90IHRjbHByaW07CisKKwkJaWYgKERSTV9DT1BZX0ZST01fVVNFUigmcHJpbSwgJnZlcnRleC0+cHJpbVtpXSwgc2l6ZW9mKHByaW0pKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmIChwcmltLnN0YXRlaWR4ICE9IGxhc3RzdGF0ZSkgeworCQkJZHJtX3JhZGVvbl9zdGF0ZV90IHN0YXRlOworCisJCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZzdGF0ZSwKKwkJCQkJICAgICAgICZ2ZXJ0ZXgtPnN0YXRlW3ByaW0uc3RhdGVpZHhdLAorCQkJCQkgICAgICAgc2l6ZW9mKHN0YXRlKSkpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJCWlmIChyYWRlb25fZW1pdF9zdGF0ZTIoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJnN0YXRlKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUyIGZhaWxlZFxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisKKwkJCWxhc3RzdGF0ZSA9IHByaW0uc3RhdGVpZHg7CisJCX0KKworCQl0Y2xwcmltLnN0YXJ0ID0gcHJpbS5zdGFydDsKKwkJdGNscHJpbS5maW5pc2ggPSBwcmltLmZpbmlzaDsKKwkJdGNscHJpbS5wcmltID0gcHJpbS5wcmltOworCQl0Y2xwcmltLnZjX2Zvcm1hdCA9IHByaW0udmNfZm9ybWF0OworCisJCWlmIChwcmltLnByaW0gJiBSQURFT05fUFJJTV9XQUxLX0lORCkgeworCQkJdGNscHJpbS5vZmZzZXQgPSBwcmltLm51bXZlcnRzICogNjQ7CisJCQl0Y2xwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCisKKwkJCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpY2VzKGRldiwgYnVmLCAmdGNscHJpbSk7CisJCX0gZWxzZSB7CisJCQl0Y2xwcmltLm51bXZlcnRzID0gcHJpbS5udW12ZXJ0czsKKwkJCXRjbHByaW0ub2Zmc2V0ID0gMDsJLyogbm90IHVzZWQgKi8KKworCQkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnRjbHByaW0pOworCQl9CisKKwkJaWYgKHNhcmVhX3ByaXYtPm5ib3ggPT0gMSkKKwkJCXNhcmVhX3ByaXYtPm5ib3ggPSAwOworCX0KKworCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9lbWl0X3BhY2tldHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCSAgICAgICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCisJCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IGlkID0gKGludCloZWFkZXIucGFja2V0LnBhY2tldF9pZDsKKwlpbnQgc3osIHJlZzsKKwlpbnQgKmRhdGEgPSAoaW50ICopY21kYnVmLT5idWY7CisJUklOR19MT0NBTFM7CisKKwlpZiAoaWQgPj0gUkFERU9OX01BWF9TVEFURV9QQUNLRVRTKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN6ID0gcGFja2V0W2lkXS5sZW47CisJcmVnID0gcGFja2V0W2lkXS5zdGFydDsKKworCWlmIChzeiAqIHNpemVvZihpbnQpID4gY21kYnVmLT5idWZzeikgeworCQlEUk1fRVJST1IoIlBhY2tldCBzaXplIHByb3ZpZGVkIGxhcmdlciB0aGFuIGRhdGEgcHJvdmlkZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXRzKGRldl9wcml2LCBmaWxlX3ByaXYsIGlkLCBkYXRhKSkgeworCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhzeiArIDEpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAocmVnLCAoc3ogLSAxKSkpOworCU9VVF9SSU5HX1RBQkxFKGRhdGEsIHN6KTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7CisJY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2VtaXRfc2NhbGFycyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3QgaGVhZGVyLAorCQkJCQkgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQoreworCWludCBzeiA9IGhlYWRlci5zY2FsYXJzLmNvdW50OworCWludCBzdGFydCA9IGhlYWRlci5zY2FsYXJzLm9mZnNldDsKKwlpbnQgc3RyaWRlID0gaGVhZGVyLnNjYWxhcnMuc3RyaWRlOworCVJJTkdfTE9DQUxTOworCisJQkVHSU5fUklORygzICsgc3opOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9TQ0FMQVJfSU5EWF9SRUcsIDApKTsKKwlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQpKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHLCBzeiAtIDEpKTsKKwlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7CisJY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOworCXJldHVybiAwOworfQorCisvKiBHb2QgdGhpcyBpcyB1Z2x5CisgKi8KK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF9zY2FsYXJzMihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKKwkJCQkJICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IHN6ID0gaGVhZGVyLnNjYWxhcnMuY291bnQ7CisJaW50IHN0YXJ0ID0gKCh1bnNpZ25lZCBpbnQpaGVhZGVyLnNjYWxhcnMub2Zmc2V0KSArIDB4MTAwOworCWludCBzdHJpZGUgPSBoZWFkZXIuc2NhbGFycy5zdHJpZGU7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDMgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVENMX1NDQUxBUl9JTkRYX1JFRywgMCkpOworCU9VVF9SSU5HKHN0YXJ0IHwgKHN0cmlkZSA8PCBSQURFT05fU0NBTF9JTkRYX0RXT1JEX1NUUklERV9TSElGVCkpOworCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1NFX1RDTF9TQ0FMQVJfREFUQV9SRUcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7CisJQURWQU5DRV9SSU5HKCk7CisJY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWN0b3JzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCisJCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IHN6ID0gaGVhZGVyLnZlY3RvcnMuY291bnQ7CisJaW50IHN0YXJ0ID0gaGVhZGVyLnZlY3RvcnMub2Zmc2V0OworCWludCBzdHJpZGUgPSBoZWFkZXIudmVjdG9ycy5zdHJpZGU7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDUgKyBzeik7CisJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9WRUNUT1JfSU5EWF9SRUcsIDApKTsKKwlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1ZFQ19JTkRYX09DVFdPUkRfU1RSSURFX1NISUZUKSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSQURFT05fU0VfVENMX1ZFQ1RPUl9EQVRBX1JFRywgKHN6IC0gMSkpKTsKKwlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWNsaW5lYXIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQkgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKKwkJCQkJICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwlpbnQgc3ogPSBoZWFkZXIudmVjbGluZWFyLmNvdW50ICogNDsKKwlpbnQgc3RhcnQgPSBoZWFkZXIudmVjbGluZWFyLmFkZHJfbG8gfCAoaGVhZGVyLnZlY2xpbmVhci5hZGRyX2hpIDw8IDgpOworCVJJTkdfTE9DQUxTOworCisgICAgICAgIGlmICghc3opCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChzeiAqIDQgPiBjbWRidWYtPmJ1ZnN6KQorICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORyg1ICsgc3opOworCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfVENMX1NUQVRFX0ZMVVNILCAwKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHLCAwKSk7CisJT1VUX1JJTkcoc3RhcnQgfCAoMSA8PCBSQURFT05fVkVDX0lORFhfT0NUV09SRF9TVFJJREVfU0hJRlQpKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0RBVEFfUkVHLCAoc3ogLSAxKSkpOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7CisJQURWQU5DRV9SSU5HKCk7CisKKwljbWRidWYtPmJ1ZiArPSBzeiAqIHNpemVvZihpbnQpOworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzaXplb2YoaW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZW1pdF9wYWNrZXQzKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgaW50IGNtZHN6OworCWludCByZXQ7CisJUklOR19MT0NBTFM7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlpZiAoKHJldCA9IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0MyhkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICBjbWRidWYsICZjbWRzeikpKSB7CisJCURSTV9FUlJPUigiUGFja2V0IHZlcmlmaWNhdGlvbiBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCUJFR0lOX1JJTkcoY21kc3opOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBjbWRzeik7CisJQURWQU5DRV9SSU5HKCk7CisKKwljbWRidWYtPmJ1ZiArPSBjbWRzeiAqIDQ7CisJY21kYnVmLT5idWZzeiAtPSBjbWRzeiAqIDQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2VtaXRfcGFja2V0M19jbGlwcmVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQkJCWludCBvcmlnX25ib3gpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7CisJdW5zaWduZWQgaW50IGNtZHN6OworCWludCByZXQ7CisJc3RydWN0IGRybV9jbGlwX3JlY3QgX191c2VyICpib3hlcyA9IGNtZGJ1Zi0+Ym94ZXM7CisJaW50IGkgPSAwOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJaWYgKChyZXQgPSByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldDMoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgY21kYnVmLCAmY21kc3opKSkgeworCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoIW9yaWdfbmJveCkKKwkJZ290byBvdXQ7CisKKwlkbyB7CisJCWlmIChpIDwgY21kYnVmLT5uYm94KSB7CisJCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZib3gsICZib3hlc1tpXSwgc2l6ZW9mKGJveCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJLyogRklYTUUgVGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCB0aW1lcyByb3VuZAorCQkJICogdGhpcyBsb29wLCBzZW5kIGEgV0FJVF9VTlRJTF8zRF9JRExFIGJlZm9yZQorCQkJICogY2FsbGluZyBlbWl0X2NsaXBfcmVjdCgpLiBUaGlzIGZpeGVzIGEKKwkJCSAqIGxvY2t1cCBvbiBmYXN0IG1hY2hpbmVzIHdoZW4gc2VuZGluZworCQkJICogc2V2ZXJhbCBjbGlwcmVjdHMgd2l0aCBhIGNtZGJ1ZiwgYXMgd2hlbgorCQkJICogd2F2aW5nIGEgMkQgd2luZG93IG92ZXIgYSAzRAorCQkJICogd2luZG93LiBTb21ldGhpbmcgaW4gdGhlIGNvbW1hbmRzIGZyb20gdXNlcgorCQkJICogc3BhY2Ugc2VlbXMgdG8gaGFuZyB0aGUgY2FyZCB3aGVuIHRoZXkncmUKKwkJCSAqIHNlbnQgc2V2ZXJhbCB0aW1lcyBpbiBhIHJvdy4gVGhhdCB3b3VsZCBiZQorCQkJICogdGhlIGNvcnJlY3QgcGxhY2UgdG8gZml4IGl0IGJ1dCB0aGlzIHdvcmtzCisJCQkgKiBhcm91bmQgaXQgdW50aWwgSSBjYW4gZmlndXJlIHRoYXQgb3V0IC0gVGltCisJCQkgKiBTbWl0aCAqLworCQkJaWYgKGkpIHsKKwkJCQlCRUdJTl9SSU5HKDIpOworCQkJCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJmJveCk7CisJCX0KKworCQlCRUdJTl9SSU5HKGNtZHN6KTsKKwkJT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIGNtZHN6KTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwl9IHdoaWxlICgrK2kgPCBjbWRidWYtPm5ib3gpOworCWlmIChjbWRidWYtPm5ib3ggPT0gMSkKKwkJY21kYnVmLT5uYm94ID0gMDsKKworICAgICAgb3V0OgorCWNtZGJ1Zi0+YnVmICs9IGNtZHN6ICogNDsKKwljbWRidWYtPmJ1ZnN6IC09IGNtZHN6ICogNDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZW1pdF93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgZmxhZ3MpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlSSU5HX0xPQ0FMUzsKKworCURSTV9ERUJVRygiJXhcbiIsIGZsYWdzKTsKKwlzd2l0Y2ggKGZsYWdzKSB7CisJY2FzZSBSQURFT05fV0FJVF8yRDoKKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fV0FJVF8zRDoKKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fV0FJVF8yRCB8IFJBREVPTl9XQUlUXzNEOgorCQlCRUdJTl9SSU5HKDIpOworCQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7CisJCUFEVkFOQ0VfUklORygpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfY21kYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gTlVMTDsKKwlpbnQgaWR4OworCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmID0gZGF0YTsKKwlkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXI7CisJaW50IG9yaWdfbmJveCwgb3JpZ19idWZzejsKKwljaGFyICprYnVmID0gTlVMTDsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChjbWRidWYtPmJ1ZnN6ID4gNjQgKiAxMDI0IHx8IGNtZGJ1Zi0+YnVmc3ogPCAwKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEFsbG9jYXRlIGFuIGluLWtlcm5lbCBhcmVhIGFuZCBjb3B5IGluIHRoZSBjbWRidWYuICBEbyB0aGlzIHRvIGF2b2lkCisJICogcmFjZXMgYmV0d2VlbiBjaGVja2luZyB2YWx1ZXMgYW5kIHVzaW5nIHRob3NlIHZhbHVlcyBpbiBvdGhlciBjb2RlLAorCSAqIGFuZCBzaW1wbHkgdG8gYXZvaWQgYSBsb3Qgb2YgZnVuY3Rpb24gY2FsbHMgdG8gY29weSBpbiBkYXRhLgorCSAqLworCW9yaWdfYnVmc3ogPSBjbWRidWYtPmJ1ZnN6OworCWlmIChvcmlnX2J1ZnN6ICE9IDApIHsKKwkJa2J1ZiA9IGRybV9hbGxvYyhjbWRidWYtPmJ1ZnN6LCBEUk1fTUVNX0RSSVZFUik7CisJCWlmIChrYnVmID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihrYnVmLCAodm9pZCBfX3VzZXIgKiljbWRidWYtPmJ1ZiwKKwkJCQkgICAgICAgY21kYnVmLT5idWZzeikpIHsKKwkJCWRybV9mcmVlKGtidWYsIG9yaWdfYnVmc3osIERSTV9NRU1fRFJJVkVSKTsKKwkJCXJldHVybiAtRUZBVUxUOworCQl9CisJCWNtZGJ1Zi0+YnVmID0ga2J1ZjsKKwl9CisKKwlvcmlnX25ib3ggPSBjbWRidWYtPm5ib3g7CisKKwlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IzMDApIHsKKwkJaW50IHRlbXA7CisJCXRlbXAgPSByMzAwX2RvX2NwX2NtZGJ1ZihkZXYsIGZpbGVfcHJpdiwgY21kYnVmKTsKKworCQlpZiAob3JpZ19idWZzeiAhPSAwKQorCQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCisJCXJldHVybiB0ZW1wOworCX0KKworCS8qIG1pY3JvY29kZV92ZXJzaW9uICE9IHIzMDAgKi8KKwl3aGlsZSAoY21kYnVmLT5idWZzeiA+PSBzaXplb2YoaGVhZGVyKSkgeworCisJCWhlYWRlci5pID0gKihpbnQgKiljbWRidWYtPmJ1ZjsKKwkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGhlYWRlcik7CisJCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKGhlYWRlcik7CisKKwkJc3dpdGNoIChoZWFkZXIuaGVhZGVyLmNtZF90eXBlKSB7CisJCWNhc2UgUkFERU9OX0NNRF9QQUNLRVQ6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF9wYWNrZXRzCisJCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsIGhlYWRlciwgY21kYnVmKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0cyBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1NDQUxBUlM6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSU1xuIik7CisJCQlpZiAocmFkZW9uX2VtaXRfc2NhbGFycyhkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9zY2FsYXJzIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfVkVDVE9SUzoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNUT1JTXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF92ZWN0b3JzKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKKwkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3ZlY3RvcnMgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUkFERU9OX0NNRF9ETUFfRElTQ0FSRDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9ETUFfRElTQ0FSRFxuIik7CisJCQlpZHggPSBoZWFkZXIuZG1hLmJ1Zl9pZHg7CisJCQlpZiAoaWR4IDwgMCB8fCBpZHggPj0gZG1hLT5idWZfY291bnQpIHsKKwkJCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCQkJICBpZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7CisJCQkJZ290byBlcnI7CisJCQl9CisKKwkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpZHhdOworCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdiB8fCBidWYtPnBlbmRpbmcpIHsKKwkJCQlEUk1fRVJST1IoImJhZCBidWZmZXIgJXAgJXAgJWRcbiIsCisJCQkJCSAgYnVmLT5maWxlX3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJICBidWYtPnBlbmRpbmcpOworCQkJCWdvdG8gZXJyOworCQkJfQorCisJCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDM6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUM1xuIik7CisJCQlpZiAocmFkZW9uX2VtaXRfcGFja2V0MyhkZXYsIGZpbGVfcHJpdiwgY21kYnVmKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0MyBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDNfQ0xJUDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9QQUNLRVQzX0NMSVBcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3BhY2tldDNfY2xpcHJlY3QKKwkJCSAgICAoZGV2LCBmaWxlX3ByaXYsIGNtZGJ1Ziwgb3JpZ19uYm94KSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0M19jbGlwIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfU0NBTEFSUzI6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSUzJcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3NjYWxhcnMyKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKKwkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3NjYWxhcnMyIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfV0FJVDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9XQUlUXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF93YWl0KGRldiwgaGVhZGVyLndhaXQuZmxhZ3MpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF93YWl0IGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBSQURFT05fQ01EX1ZFQ0xJTkVBUjoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNMSU5FQVJcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3ZlY2xpbmVhcihkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF92ZWNsaW5lYXIgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlEUk1fRVJST1IoImJhZCBjbWRfdHlwZSAlZCBhdCAlcFxuIiwKKwkJCQkgIGhlYWRlci5oZWFkZXIuY21kX3R5cGUsCisJCQkJICBjbWRidWYtPmJ1ZiAtIHNpemVvZihoZWFkZXIpKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJaWYgKG9yaWdfYnVmc3ogIT0gMCkKKwkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCisJRFJNX0RFQlVHKCJET05FXG4iKTsKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworCisgICAgICBlcnI6CisJaWYgKG9yaWdfYnVmc3ogIT0gMCkKKwkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fZ2V0cGFyYW1fdCAqcGFyYW0gPSBkYXRhOworCWludCB2YWx1ZTsKKworCURSTV9ERUJVRygicGlkPSVkXG4iLCBEUk1fQ1VSUkVOVFBJRCk7CisKKwlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgeworCWNhc2UgUkFERU9OX1BBUkFNX0dBUlRfQlVGRkVSX09GRlNFVDoKKwkJdmFsdWUgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9GUkFNRToKKwkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfZnJhbWVfcmVhZHMrKzsKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgwKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9ESVNQQVRDSDoKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgxKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9DTEVBUjoKKwkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfY2xlYXJfcmVhZHMrKzsKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgyKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fSVJRX05SOgorCQl2YWx1ZSA9IGRldi0+aXJxOworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9HQVJUX0JBU0U6CisJCXZhbHVlID0gZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX1JFR0lTVEVSX0hBTkRMRToKKwkJdmFsdWUgPSBkZXZfcHJpdi0+bW1pby0+b2Zmc2V0OworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9TVEFUVVNfSEFORExFOgorCQl2YWx1ZSA9IGRldl9wcml2LT5yaW5nX3JwdHJfb2Zmc2V0OworCQlicmVhazsKKyNpZiBCSVRTX1BFUl9MT05HID09IDMyCisJCS8qCisJCSAqIFRoaXMgaW9jdGwoKSBkb2Vzbid0IHdvcmsgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGh3X2xvY2sgaXMgYQorCQkgKiBwb2ludGVyIHdoaWNoIGNhbid0IGZpdCBpbnRvIGFuIGludC1zaXplZCB2YXJpYWJsZS4gIEFjY29yZGluZyB0bworCQkgKiBNaWNoZWwgRMOkbnplciwgdGhlIGlvY3RsKCkgaXMgb25seSB1c2VkIG9uIGVtYmVkZGVkIHBsYXRmb3Jtcywgc28KKwkJICogbm90IHN1cHBvcnRpbmcgaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4gIElmIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkKKwkJICogaXMgbmVlZGVkIG9uIDY0LWJpdCBwbGF0Zm9ybXMsIGEgbmV3IGlvY3RsKCkgd291bGQgaGF2ZSB0byBiZSBhZGRlZCwKKwkJICogc28gYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIHRoZSBlbWJlZGRlZCBwbGF0Zm9ybXMgY2FuIGJlCisJCSAqIG1haW50YWluZWQuICAtLWRhdmlkbSA0LUZlYi0yMDA0LgorCQkgKi8KKwljYXNlIFJBREVPTl9QQVJBTV9TQVJFQV9IQU5ETEU6CisJCS8qIFRoZSBsb2NrIGlzIHRoZSBmaXJzdCBkd29yZCBpbiB0aGUgc2FyZWEuICovCisJCXZhbHVlID0gKGxvbmcpZGV2LT5sb2NrLmh3X2xvY2s7CisJCWJyZWFrOworI2VuZGlmCisJY2FzZSBSQURFT05fUEFSQU1fR0FSVF9URVhfSEFORExFOgorCQl2YWx1ZSA9IGRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fU0NSQVRDSF9PRkZTRVQ6CisJCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykKKwkJCXJldHVybiAtRUlOVkFMOworCQl2YWx1ZSA9IFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQ7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX0NBUkRfVFlQRToKKwkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQorCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9QQ0lFOworCQllbHNlIGlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKQorCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9BR1A7CisJCWVsc2UKKwkJCXZhbHVlID0gUkFERU9OX0NBUkRfUENJOworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9WQkxBTktfQ1JUQzoKKwkJdmFsdWUgPSByYWRlb25fdmJsYW5rX2NydGNfZ2V0KGRldik7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX0ZCX0xPQ0FUSU9OOgorCQl2YWx1ZSA9IHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRldl9wcml2KTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTlVNX0dCX1BJUEVTOgorCQl2YWx1ZSA9IGRldl9wcml2LT5udW1fZ2JfcGlwZXM7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9ERUJVRygiSW52YWxpZCBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChEUk1fQ09QWV9UT19VU0VSKHBhcmFtLT52YWx1ZSwgJnZhbHVlLCBzaXplb2YoaW50KSkpIHsKKwkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3Bfc2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NldHBhcmFtX3QgKnNwID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJc3dpdGNoIChzcC0+cGFyYW0pIHsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9GQl9MT0NBVElPTjoKKwkJcmFkZW9uX3ByaXYgPSBmaWxlX3ByaXYtPmRyaXZlcl9wcml2OworCQlyYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uIC0KKwkJICAgIHNwLT52YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fU1dJVENIX1RJTElORzoKKwkJaWYgKHNwLT52YWx1ZSA9PSAwKSB7CisJCQlEUk1fREVCVUcoImNvbG9yIHRpbGluZyBkaXNhYmxlZFxuIik7CisJCQlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0ICY9IH5SQURFT05fRFNUX1RJTEVfTUFDUk87CisJCQlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgJj0gflJBREVPTl9EU1RfVElMRV9NQUNSTzsKKwkJCWRldl9wcml2LT5zYXJlYV9wcml2LT50aWxpbmdfZW5hYmxlZCA9IDA7CisJCX0gZWxzZSBpZiAoc3AtPnZhbHVlID09IDEpIHsKKwkJCURSTV9ERUJVRygiY29sb3IgdGlsaW5nIGVuYWJsZWRcbiIpOworCQkJZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCB8PSBSQURFT05fRFNUX1RJTEVfTUFDUk87CisJCQlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgfD0gUkFERU9OX0RTVF9USUxFX01BQ1JPOworCQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnRpbGluZ19lbmFibGVkID0gMTsKKwkJfQorCQlicmVhazsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX0xPQ0FUSU9OOgorCQlkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgPSBzcC0+dmFsdWU7CisJCWRldl9wcml2LT5wY2lnYXJ0X29mZnNldF9zZXQgPSAxOworCQlicmVhazsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9ORVdfTUVNTUFQOgorCQlkZXZfcHJpdi0+bmV3X21lbW1hcCA9IHNwLT52YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9UQUJMRV9TSVpFOgorCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBzcC0+dmFsdWU7CisJCWlmIChkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPCBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFKQorCQkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplID0gUkFERU9OX1BDSUdBUlRfVEFCTEVfU0laRTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fVkJMQU5LX0NSVEM6CisJCXJldHVybiByYWRlb25fdmJsYW5rX2NydGNfc2V0KGRldiwgc3AtPnZhbHVlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHKCJJbnZhbGlkIHBhcmFtZXRlciAlZFxuIiwgc3AtPnBhcmFtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIFdoZW4gYSBjbGllbnQgZGllczoKKyAqICAgIC0gQ2hlY2sgZm9yIGFuZCBjbGVhbiB1cCBmbGlwcGVkIHBhZ2Ugc3RhdGUKKyAqICAgIC0gRnJlZSBhbnkgYWxsb2NlZCBHQVJUIG1lbW9yeS4KKyAqICAgIC0gRnJlZSBhbnkgYWxsb2NlZCByYWRlb24gc3VyZmFjZXMuCisgKgorICogRFJNIGluZnJhc3RydWN0dXJlIHRha2VzIGNhcmUgb2YgcmVjbGFpbWluZyBkbWEgYnVmZmVycy4KKyAqLwordm9pZCByYWRlb25fZHJpdmVyX3ByZWNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWlmIChkZXYtPmRldl9wcml2YXRlKSB7CisJCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJCWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nID0gMDsKKwkJcmFkZW9uX21lbV9yZWxlYXNlKGZpbGVfcHJpdiwgZGV2X3ByaXYtPmdhcnRfaGVhcCk7CisJCXJhZGVvbl9tZW1fcmVsZWFzZShmaWxlX3ByaXYsIGRldl9wcml2LT5mYl9oZWFwKTsKKwkJcmFkZW9uX3N1cmZhY2VzX3JlbGVhc2UoZmlsZV9wcml2LCBkZXZfcHJpdik7CisJfQorfQorCit2b2lkIHJhZGVvbl9kcml2ZXJfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+ZGV2X3ByaXZhdGUpIHsKKwkJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYgJiYKKwkJICAgIGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlICE9IDApCisJCQlyYWRlb25fY3BfZGlzcGF0Y2hfZmxpcChkZXYpOworCX0KKworCXJhZGVvbl9kb19yZWxlYXNlKGRldik7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJRFJNX0RFQlVHKCJcbiIpOworCXJhZGVvbl9wcml2ID0KKwkgICAgKHN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqKQorCSAgICBkcm1fYWxsb2Moc2l6ZW9mKCpyYWRlb25fcHJpdiksIERSTV9NRU1fRklMRVMpOworCisJaWYgKCFyYWRlb25fcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmaWxlX3ByaXYtPmRyaXZlcl9wcml2ID0gcmFkZW9uX3ByaXY7CisKKwlpZiAoZGV2X3ByaXYpCisJCXJhZGVvbl9wcml2LT5yYWRlb25fZmJfZGVsdGEgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247CisJZWxzZQorCQlyYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhID0gMDsKKwlyZXR1cm4gMDsKK30KKwordm9pZCByYWRlb25fZHJpdmVyX3Bvc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2ID0KKwkgICAgZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKKworCWRybV9mcmVlKHJhZGVvbl9wcml2LCBzaXplb2YoKnJhZGVvbl9wcml2KSwgRFJNX01FTV9GSUxFUyk7Cit9CisKK3N0cnVjdCBkcm1faW9jdGxfZGVzYyByYWRlb25faW9jdGxzW10gPSB7CisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX0lOSVQsIHJhZGVvbl9jcF9pbml0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9TVEFSVCwgcmFkZW9uX2NwX3N0YXJ0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9TVE9QLCByYWRlb25fY3Bfc3RvcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfUkVTRVQsIHJhZGVvbl9jcF9yZXNldCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfSURMRSwgcmFkZW9uX2NwX2lkbGUsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfUkVTVU1FLCByYWRlb25fY3BfcmVzdW1lLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1JFU0VULCByYWRlb25fZW5naW5lX3Jlc2V0LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZVTExTQ1JFRU4sIHJhZGVvbl9mdWxsc2NyZWVuLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NXQVAsIHJhZGVvbl9jcF9zd2FwLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NMRUFSLCByYWRlb25fY3BfY2xlYXIsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fVkVSVEVYLCByYWRlb25fY3BfdmVydGV4LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lORElDRVMsIHJhZGVvbl9jcF9pbmRpY2VzLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1RFWFRVUkUsIHJhZGVvbl9jcF90ZXh0dXJlLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NUSVBQTEUsIHJhZGVvbl9jcF9zdGlwcGxlLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lORElSRUNULCByYWRlb25fY3BfaW5kaXJlY3QsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1ZFUlRFWDIsIHJhZGVvbl9jcF92ZXJ0ZXgyLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NNREJVRiwgcmFkZW9uX2NwX2NtZGJ1ZiwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9HRVRQQVJBTSwgcmFkZW9uX2NwX2dldHBhcmFtLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZMSVAsIHJhZGVvbl9jcF9mbGlwLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0FMTE9DLCByYWRlb25fbWVtX2FsbG9jLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZSRUUsIHJhZGVvbl9tZW1fZnJlZSwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JTklUX0hFQVAsIHJhZGVvbl9tZW1faW5pdF9oZWFwLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JUlFfRU1JVCwgcmFkZW9uX2lycV9lbWl0LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lSUV9XQUlULCByYWRlb25faXJxX3dhaXQsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU0VUUEFSQU0sIHJhZGVvbl9jcF9zZXRwYXJhbSwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TVVJGX0FMTE9DLCByYWRlb25fc3VyZmFjZV9hbGxvYywgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TVVJGX0ZSRUUsIHJhZGVvbl9zdXJmYWNlX2ZyZWUsIERSTV9BVVRIKQorfTsKKworaW50IHJhZGVvbl9tYXhfaW9jdGwgPSBEUk1fQVJSQVlfU0laRShyYWRlb25faW9jdGxzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2UvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4Zjg0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCkBAIC0wLDAgKzEsOSBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgPSAtSWluY2x1ZGUvZHJtCitzYXZhZ2UteSA6PSBzYXZhZ2VfZHJ2Lm8gc2F2YWdlX2JjaS5vIHNhdmFnZV9zdGF0ZS5vCisKK29iai0kKENPTkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS5vCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jIGIvZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfYmNpLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9iY2kuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2lzL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDFjMDYxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA9IC1JaW5jbHVkZS9kcm0KK3Npcy15IDo9IHNpc19kcnYubyBzaXNfbW0ubworCitvYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMubworCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zaXMvc2lzX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3Npc19tbS5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfbW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzc5ZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCit0ZGZ4LXkgOj0gdGRmeF9kcnYubworCitvYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvdGRmeF9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS90ZGZ4L3RkZnhfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1OWUyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQordmlhLXkgICAgOj0gdmlhX2lycS5vIHZpYV9kcnYubyB2aWFfbWFwLm8gdmlhX21tLm8gdmlhX2RtYS5vIHZpYV92ZXJpZmllci5vIHZpYV92aWRlby5vIHZpYV9kbWFibGl0Lm8KKworb2JqLSQoQ09ORklHX0RSTV9WSUEpCSs9dmlhLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfM2RfcmVnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV8zZF9yZWcuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX21hcC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbWFwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tbS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV92ZXJpZmllci5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX3ZlcmlmaWVyLmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX3ZpZGVvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV92aWRlby5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWRyYXcuYyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCmluZGV4IDFjYTZmNDYuLjJmZGU2YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZHJhdy5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9oaWQuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9oaWRyYXcuaD4KIApAQCAtMTU3LDYgKzE1OCw3IEBACiAJc3RydWN0IGhpZHJhd19saXN0ICpsaXN0OwogCWludCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoIShsaXN0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGhpZHJhd19saXN0KSwgR0ZQX0tFUk5FTCkpKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwpAQCAtMTgzLDYgKzE4NSw3IEBACiBvdXRfdW5sb2NrOgogCXNwaW5fdW5sb2NrKCZtaW5vcnNfbG9jayk7CiBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiAKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1My5jIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUzLmMKaW5kZXggZWQzM2ZkZC4uZjAwZjQ5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUzLmMKKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUzLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9od21vbi5oPgogI2luY2x1ZGUgPGxpbnV4L2h3bW9uLXN5c2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIC8qIHVHdXJ1MyBiYW5rIGFkZHJlc3NlcyAqLwpAQCAtMzIzLDcgKzMyNCw3IEBACiAJCXsgIkFVWDEgRmFuIiwJCTM2LCAyLCA2MCwgMSwgMCB9LAogCQl7IE5VTEwsIDAsIDAsIDAsIDAsIDAgfSB9CiAJfSwKLQl7IDB4MDAxMywgInVua25vd24iLCB7CisJeyAweDAwMTMsICJBYml0IEFXOEQiLCB7CiAJCXsgIkNQVSBDb3JlIiwJCSAwLCAwLCAxMCwgMSwgMCB9LAogCQl7ICJERFIiLAkJIDEsIDAsIDEwLCAxLCAwIH0sCiAJCXsgIkREUiBWVFQiLAkJIDIsIDAsIDEwLCAxLCAwIH0sCkBAIC0zNDksNiArMzUwLDcgQEAKIAkJeyAiQVVYMiBGYW4iLAkJMzYsIDIsIDYwLCAxLCAwIH0sCiAJCXsgIkFVWDMgRmFuIiwJCTM3LCAyLCA2MCwgMSwgMCB9LAogCQl7ICJBVVg0IEZhbiIsCQkzOCwgMiwgNjAsIDEsIDAgfSwKKwkJeyAiQVVYNSBGYW4iLAkJMzksIDIsIDYwLCAxLCAwIH0sCiAJCXsgTlVMTCwgMCwgMCwgMCwgMCwgMCB9IH0KIAl9LAogCXsgMHgwMDE0LCAiQWJpdCBBQjkgUHJvIiwgewpAQCAtMTExMSwxMSArMTExMywxMiBAQAogewogCS8qIFNlZSBpZiB0aGVyZSBpcyBhbiB1Z3VydTMgdGhlcmUuIEFuIGlkbGUgdUd1cnUzIHdpbGwgaG9sZCAweDAwIG9yCiAJICAgMHgwOCBhdCBEQVRBIGFuZCAweEFDIGF0IENNRC4gU29tZXRpbWVzIHRoZSB1R3VydTMgd2lsbCBob2xkIDB4MDUKLQkgICBhdCBDTUQgaW5zdGVhZCwgd2h5IGlzIHVua25vd24uIFNvIHdlIHRlc3QgZm9yIDB4MDUgdG9vLiAqLworCSAgIG9yIDB4NTUgYXQgQ01EIGluc3RlYWQsIHdoeSBpcyB1bmtub3duLiAqLwogCXU4IGRhdGFfdmFsID0gaW5iX3AoQUJJVF9VR1VSVTNfQkFTRSArIEFCSVRfVUdVUlUzX0RBVEEpOwogCXU4IGNtZF92YWwgPSBpbmJfcChBQklUX1VHVVJVM19CQVNFICsgQUJJVF9VR1VSVTNfQ01EKTsKIAlpZiAoKChkYXRhX3ZhbCA9PSAweDAwKSB8fCAoZGF0YV92YWwgPT0gMHgwOCkpICYmCi0JCQkoKGNtZF92YWwgPT0gMHhBQykgfHwgKGNtZF92YWwgPT0gMHgwNSkpKQorCQkJKChjbWRfdmFsID09IDB4QUMpIHx8IChjbWRfdmFsID09IDB4MDUpIHx8CisJCQkgKGNtZF92YWwgPT0gMHg1NSkpKQogCQlyZXR1cm4gQUJJVF9VR1VSVTNfQkFTRTsKIAogCUFCSVRfVUdVUlUzX0RFQlVHKCJubyBBYml0IHVHdXJ1MyBmb3VuZCwgZGF0YSA9IDB4JTAyWCwgY21kID0gIgpAQCAtMTEzOCw2ICsxMTQxLDE1IEBACiAJaW50IGFkZHJlc3MsIGVycjsKIAlzdHJ1Y3QgcmVzb3VyY2UgcmVzID0geyAuZmxhZ3MgPSBJT1JFU09VUkNFX0lPIH07CiAKKyNpZmRlZiBDT05GSUdfRE1JCisJY29uc3QgY2hhciAqYm9hcmRfdmVuZG9yID0gZG1pX2dldF9zeXN0ZW1faW5mbyhETUlfQk9BUkRfVkVORE9SKTsKKworCS8qIHNhZmV0eSBjaGVjaywgcmVmdXNlIHRvIGxvYWQgb24gbm9uIEFiaXQgbW90aGVyYm9hcmRzICovCisJaWYgKCFmb3JjZSAmJiAoIWJvYXJkX3ZlbmRvciB8fAorCQkJc3RyY21wKGJvYXJkX3ZlbmRvciwgImh0dHA6Ly93d3cuYWJpdC5jb20udHcvIikpKQorCQlyZXR1cm4gLUVOT0RFVjsKKyNlbmRpZgorCiAJYWRkcmVzcyA9IGFiaXR1Z3VydTNfZGV0ZWN0KCk7CiAJaWYgKGFkZHJlc3MgPCAwKQogCQlyZXR1cm4gYWRkcmVzczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWR0NzQ3My5jIGIvZHJpdmVycy9od21vbi9hZHQ3NDczLmMKaW5kZXggYzEwMDlkNi4uOTNkYmY1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZHQ3NDczLmMKKysrIGIvZHJpdmVycy9od21vbi9hZHQ3NDczLmMKQEAgLTMwOSw2ICszMDksOSBAQAogCQkJCQkJQURUNzQ3M19SRUdfUFdNX0JIVlIoaSkpOwogCX0KIAorCWkgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCBBRFQ3NDczX1JFR19DRkc0KTsKKwlkYXRhLT5tYXhfZHV0eV9hdF9vdmVyaGVhdCA9ICEhKGkgJiBBRFQ3NDczX0NGRzRfTUFYX0RVVFlfQVRfT1ZUKTsKKwogCWRhdGEtPmxpbWl0c19sYXN0X3VwZGF0ZWQgPSBsb2NhbF9qaWZmaWVzOwogCWRhdGEtPmxpbWl0c192YWxpZCA9IDE7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vaGRhcHMuYyBiL2RyaXZlcnMvaHdtb24vaGRhcHMuYwppbmRleCAyNmRmMDZmLi41MGYyMjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2hkYXBzLmMKKysrIGIvZHJpdmVycy9od21vbi9oZGFwcy5jCkBAIC01MTYsMTcgKzUxNiwyMyBAQAogCUhEQVBTX0RNSV9NQVRDSF9OT1JNQUwoIklCTSIsICJUaGlua1BhZCBSNTEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgUjUyIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFI2MWkiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgUjYxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MXAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MnAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQyIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFQ0MyIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgVDYxcCIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWDQwIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFg0MSIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgWDYxcyIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWjYwbSIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBaNjFtIiksCisJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFo2MXAiKSwKIAl7IC5pZGVudCA9IE5VTEwgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTc1LmMgYi9kcml2ZXJzL2h3bW9uL2xtNzUuYwppbmRleCBmYTc2OTY5Li5kZTY5OGRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtNzUuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtNzUuYwpAQCAtMjUxLDEwICsyNTEsMTMgQEAKICAgIHRoZSBTTUJ1cyBzdGFuZGFyZC4gKi8KIHN0YXRpYyBpbnQgbG03NV9yZWFkX3ZhbHVlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IHJlZykKIHsKKwlpbnQgdmFsdWU7CisKIAlpZiAocmVnID09IExNNzVfUkVHX0NPTkYpCiAJCXJldHVybiBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCByZWcpOwotCWVsc2UKLQkJcmV0dXJuIHN3YWIxNihpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCByZWcpKTsKKworCXZhbHVlID0gaTJjX3NtYnVzX3JlYWRfd29yZF9kYXRhKGNsaWVudCwgcmVnKTsKKwlyZXR1cm4gKHZhbHVlIDwgMCkgPyB2YWx1ZSA6IHN3YWIxNih2YWx1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgbG03NV93cml0ZV92YWx1ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1OCByZWcsIHUxNiB2YWx1ZSkKQEAgLTI4Nyw5ICsyOTAsMTYgQEAKIAkJaW50IGk7CiAJCWRldl9kYmcoJmNsaWVudC0+ZGV2LCAiU3RhcnRpbmcgbG03NSB1cGRhdGVcbiIpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRhdGEtPnRlbXApOyBpKyspCi0JCQlkYXRhLT50ZW1wW2ldID0gbG03NV9yZWFkX3ZhbHVlKGNsaWVudCwKLQkJCQkJCQlMTTc1X1JFR19URU1QW2ldKTsKKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0YS0+dGVtcCk7IGkrKykgeworCQkJaW50IHN0YXR1czsKKworCQkJc3RhdHVzID0gbG03NV9yZWFkX3ZhbHVlKGNsaWVudCwgTE03NV9SRUdfVEVNUFtpXSk7CisJCQlpZiAoc3RhdHVzIDwgMCkKKwkJCQlkZXZfZGJnKCZjbGllbnQtPmRldiwgInJlZyAlZCwgZXJyICVkXG4iLAorCQkJCQkJTE03NV9SRUdfVEVNUFtpXSwgc3RhdHVzKTsKKwkJCWVsc2UKKwkJCQlkYXRhLT50ZW1wW2ldID0gc3RhdHVzOworCQl9CiAJCWRhdGEtPmxhc3RfdXBkYXRlZCA9IGppZmZpZXM7CiAJCWRhdGEtPnZhbGlkID0gMTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtODUuYyBiL2RyaXZlcnMvaHdtb24vbG04NS5jCmluZGV4IDE4MmZlNmEuLmVlNWVjYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG04NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG04NS5jCkBAIC0xOTIsMjMgKzE5MiwyMCBAQAogewogCWludCBpOwogCi0JaWYgKCByYW5nZSA8IGxtODVfcmFuZ2VfbWFwWzBdICkgeyAKLQkJcmV0dXJuIDAgOwotCX0gZWxzZSBpZiAoIHJhbmdlID4gbG04NV9yYW5nZV9tYXBbMTVdICkgeworCWlmIChyYW5nZSA+PSBsbTg1X3JhbmdlX21hcFsxNV0pCiAJCXJldHVybiAxNSA7Ci0JfSBlbHNlIHsgIC8qIGZpbmQgY2xvc2VzdCBtYXRjaCAqLwotCQlmb3IgKCBpID0gMTQgOyBpID49IDAgOyAtLWkgKSB7Ci0JCQlpZiAoIHJhbmdlID4gbG04NV9yYW5nZV9tYXBbaV0gKSB7IC8qIHJhbmdlIGJyYWNrZXRlZCAqLwotCQkJCWlmICgobG04NV9yYW5nZV9tYXBbaSsxXSAtIHJhbmdlKSA8IAotCQkJCQkocmFuZ2UgLSBsbTg1X3JhbmdlX21hcFtpXSkpIHsKLQkJCQkJaSsrOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQl9CisKKwkvKiBGaW5kIHRoZSBjbG9zZXN0IG1hdGNoICovCisJZm9yIChpID0gMTQ7IGkgPj0gMDsgLS1pKSB7CisJCWlmIChyYW5nZSA+PSBsbTg1X3JhbmdlX21hcFtpXSkgeworCQkJaWYgKChsbTg1X3JhbmdlX21hcFtpICsgMV0gLSByYW5nZSkgPAorCQkJCQkocmFuZ2UgLSBsbTg1X3JhbmdlX21hcFtpXSkpCisJCQkJcmV0dXJuIGkgKyAxOworCQkJcmV0dXJuIGk7CiAJCX0KIAl9Ci0JcmV0dXJuKCBpICYgMHgwZiApOworCisJcmV0dXJuIDA7CiB9CiAjZGVmaW5lIFJBTkdFX0ZST01fUkVHKHZhbCkgKGxtODVfcmFuZ2VfbWFwWyh2YWwpJjB4MGZdKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEuYwppbmRleCBlYjY5ZmJhLi5kZGU2Y2U5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLmMKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pMmMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAKIHN0cnVjdCBweGFfaTJjIHsKIAlzcGlubG9ja190CQlsb2NrOwpAQCAtOTQ1LDMyICs5NDQsNiBAQAogCS5mdW5jdGlvbmFsaXR5CT0gaTJjX3B4YV9mdW5jdGlvbmFsaXR5LAogfTsKIAotc3RhdGljIHZvaWQgaTJjX3B4YV9lbmFibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCWlmIChjcHVfaXNfcHhhMjd4KCkpIHsKLQkJc3dpdGNoIChkZXYtPmlkKSB7Ci0JCWNhc2UgMDoKLQkJCXB4YV9ncGlvX21vZGUoR1BJTzExN19JMkNTQ0xfTUQpOwotCQkJcHhhX2dwaW9fbW9kZShHUElPMTE4X0kyQ1NEQV9NRCk7Ci0JCQlicmVhazsKLQkJY2FzZSAxOgotCQkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKLQkJCVBDRlIgfD0gUENGUl9QSTJDRU47Ci0JCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JCQlicmVhazsKLQkJfQotCX0KLX0KLQotc3RhdGljIHZvaWQgaTJjX3B4YV9kaXNhYmxlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoY3B1X2lzX3B4YTI3eCgpICYmIGRldi0+aWQgPT0gMSkgewotCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCQlQQ0ZSICY9IH5QQ0ZSX1BJMkNFTjsKLQkJbG9jYWxfaXJxX2VuYWJsZSgpOwotCX0KLX0KLQogI2RlZmluZSByZXNfbGVuKHIpCQkoKHIpLT5lbmQgLSAociktPnN0YXJ0ICsgMSkKIHN0YXRpYyBpbnQgaTJjX3B4YV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCiB7CkBAIC0xMDM2LDcgKzEwMDksNiBAQAogI2VuZGlmCiAKIAljbGtfZW5hYmxlKGkyYy0+Y2xrKTsKLQlpMmNfcHhhX2VuYWJsZShkZXYpOwogCiAJaWYgKHBsYXQpIHsKIAkJaTJjLT5hZGFwLmNsYXNzID0gcGxhdC0+Y2xhc3M7CkBAIC0xMDgwLDcgKzEwNTIsNiBAQAogCQlmcmVlX2lycShpcnEsIGkyYyk7CiBlcmVxaXJxOgogCWNsa19kaXNhYmxlKGkyYy0+Y2xrKTsKLQlpMmNfcHhhX2Rpc2FibGUoZGV2KTsKIAlpb3VubWFwKGkyYy0+cmVnX2Jhc2UpOwogZXJlbWFwOgogCWNsa19wdXQoaTJjLT5jbGspOwpAQCAtMTEwMyw3ICsxMDc0LDYgQEAKIAogCWNsa19kaXNhYmxlKGkyYy0+Y2xrKTsKIAljbGtfcHV0KGkyYy0+Y2xrKTsKLQlpMmNfcHhhX2Rpc2FibGUoZGV2KTsKIAogCWlvdW5tYXAoaTJjLT5yZWdfYmFzZSk7CiAJcmVsZWFzZV9tZW1fcmVnaW9uKGkyYy0+aW9iYXNlLCBpMmMtPmlvc2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXMzYzI0MTAuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jCmluZGV4IDEzMDVlZjEuLjllOGM4NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jCkBAIC0yOTAsMTIgKzI5MCwxMiBAQAogCQkgKiBidXMsIG9yIHN0YXJ0ZWQgYSBuZXcgaTJjIG1lc3NhZ2UKIAkJICovCiAJCQotCQlpZiAoaWljc3RhdCAgJiBTM0MyNDEwX0lJQ1NUQVRfTEFTVEJJVCAmJgorCQlpZiAoaWljc3RhdCAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUICYmCiAJCSAgICAhKGkyYy0+bXNnLT5mbGFncyAmIEkyQ19NX0lHTk9SRV9OQUspKSB7CiAJCQkvKiBhY2sgd2FzIG5vdCByZWNlaXZlZC4uLiAqLwogCiAJCQlkZXZfZGJnKGkyYy0+ZGV2LCAiYWNrIHdhcyBub3QgcmVjZWl2ZWRcbiIpOwotCQkJczNjMjR4eF9pMmNfc3RvcChpMmMsIC1FUkVNT1RFSU8pOworCQkJczNjMjR4eF9pMmNfc3RvcChpMmMsIC1FTlhJTyk7CiAJCQlnb3RvIG91dF9hY2s7CiAJCX0KIApAQCAtMzA1LDcgKzMwNSw3IEBACiAJCQlpMmMtPnN0YXRlID0gU1RBVEVfV1JJVEU7CiAKIAkJLyogdGVybWluYXRlIHRoZSB0cmFuc2ZlciBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIGRvCi0JCSAqICh1c2VkIGJ5IHRoZSBpMmMgcHJvYmUgdG8gZmluZCBkZXZpY2VzICovCisJCSAqIGFzIHRoaXMgaXMgdXNlZCBieSB0aGUgaTJjIHByb2JlIHRvIGZpbmQgZGV2aWNlcy4gKi8KIAogCQlpZiAoaXNfbGFzdG1zZyhpMmMpICYmIGkyYy0+bXNnLT5sZW4gPT0gMCkgewogCQkJczNjMjR4eF9pMmNfc3RvcChpMmMsIDApOwpAQCAtMzIzLDcgKzMyMywxNyBAQAogCQkgKiBlbmQgb2YgdGhlIG1lc3NhZ2UsIGFuZCBpZiBzbywgd29yayBvdXQgd2hhdCB0byBkbwogCQkgKi8KIAorCQlpZiAoIShpMmMtPm1zZy0+ZmxhZ3MgJiBJMkNfTV9JR05PUkVfTkFLKSkgeworCQkJaWYgKGlpY3N0YXQgJiBTM0MyNDEwX0lJQ1NUQVRfTEFTVEJJVCkgeworCQkJCWRldl9kYmcoaTJjLT5kZXYsICJXUklURTogTm8gQWNrXG4iKTsKKworCQkJCXMzYzI0eHhfaTJjX3N0b3AoaTJjLCAtRUNPTk5SRUZVU0VEKTsKKwkJCQlnb3RvIG91dF9hY2s7CisJCQl9CisJCX0KKwogCXJldHJ5X3dyaXRlOgorCiAJCWlmICghaXNfbXNnZW5kKGkyYykpIHsKIAkJCWJ5dGUgPSBpMmMtPm1zZy0+YnVmW2kyYy0+bXNnX3B0cisrXTsKIAkJCXdyaXRlYihieXRlLCBpMmMtPnJlZ3MgKyBTM0MyNDEwX0lJQ0RTKTsKQEAgLTM3NywxNyArMzg3LDYgQEAKIAkJICogZ29pbmcgdG8gZG8gYW55IG1vcmUgcmVhZC93cml0ZQogCQkgKi8KIAotCQlpZiAoIShpMmMtPm1zZy0+ZmxhZ3MgJiBJMkNfTV9JR05PUkVfTkFLKSAmJgotCQkgICAgIShpc19tc2dsYXN0KGkyYykgJiYgaXNfbGFzdG1zZyhpMmMpKSkgewotCi0JCQlpZiAoaWljc3RhdCAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUKSB7Ci0JCQkJZGV2X2RiZyhpMmMtPmRldiwgIlJFQUQ6IE5vIEFja1xuIik7Ci0KLQkJCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgLUVDT05OUkVGVVNFRCk7Ci0JCQkJZ290byBvdXRfYWNrOwotCQkJfQotCQl9Ci0KIAkJYnl0ZSA9IHJlYWRiKGkyYy0+cmVncyArIFMzQzI0MTBfSUlDRFMpOwogCQlpMmMtPm1zZy0+YnVmW2kyYy0+bXNnX3B0cisrXSA9IGJ5dGU7CiAKQEAgLTk0OSwzICs5NDgsNCBAQAogTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzLCA8YmVuQHNpbXRlYy5jby51az4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQxMC1pMmMiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQ0MC1pMmMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2lzcDEzMDFfb21hcC5jIGIvZHJpdmVycy9pMmMvY2hpcHMvaXNwMTMwMV9vbWFwLmMKaW5kZXggYjFiNDVkZC4uMDNhMzNmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvY2hpcHMvaXNwMTMwMV9vbWFwLmMKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvaXNwMTMwMV9vbWFwLmMKQEAgLTcyLDcgKzcyLDcgQEAKIH07CiAKIAotLyogYml0cyBpbiBPVEdfQ1RSTF9SRUcgKi8KKy8qIGJpdHMgaW4gT1RHX0NUUkwgKi8KIAogI2RlZmluZQlPVEdfWENFSVZfT1VUUFVUUyBcCiAJKE9UR19BU0VTU1ZMRHxPVEdfQlNFU1NFTkR8T1RHX0JTRVNTVkxEfE9UR19WQlVTVkxEfE9UR19JRCkKQEAgLTE4Niw4ICsxODYsOCBAQAogCiAvKiBvcGVyYXRpb25hbCByZWdpc3RlcnMgKi8KICNkZWZpbmUJSVNQMTMwMV9NT0RFX0NPTlRST0xfMQkJMHgwNAkvKiB1OCByZWFkLCBzZXQsICsxIGNsZWFyICovCi0jCWRlZmluZQlNQzFfU1BFRURfUkVHCQkoMSA8PCAwKQotIwlkZWZpbmUJTUMxX1NVU1BFTkRfUkVHCQkoMSA8PCAxKQorIwlkZWZpbmUJTUMxX1NQRUVECQkoMSA8PCAwKQorIwlkZWZpbmUJTUMxX1NVU1BFTkQJCSgxIDw8IDEpCiAjCWRlZmluZQlNQzFfREFUX1NFMAkJKDEgPDwgMikKICMJZGVmaW5lCU1DMV9UUkFOU1BBUkVOVAkJKDEgPDwgMykKICMJZGVmaW5lCU1DMV9CRElTX0FDT05fRU4JKDEgPDwgNCkKQEAgLTI3NCw3ICsyNzQsNyBAQAogCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX1VOREVGSU5FRDsKIAogCS8vIGlzcDEzMDFfc2V0X2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8yLCBNQzJfR0xPQkFMX1BXUl9ETik7Ci0JaXNwMTMwMV9zZXRfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsIE1DMV9TVVNQRU5EX1JFRyk7CisJaXNwMTMwMV9zZXRfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsIE1DMV9TVVNQRU5EKTsKIAogCWlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfT1RHX0NPTlRST0xfMSwgT1RHMV9JRF9QVUxMRE9XTik7CiAJaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwgTUMxX0RBVF9TRTApOwpAQCAtMjgzLDcgKzI4Myw3IEBACiBzdGF0aWMgdm9pZCBwb3dlcl91cChzdHJ1Y3QgaXNwMTMwMSAqaXNwKQogewogCS8vIGlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzIsIE1DMl9HTE9CQUxfUFdSX0ROKTsKLQlpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLCBNQzFfU1VTUEVORF9SRUcpOworCWlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsIE1DMV9TVVNQRU5EKTsKIAogCS8qIGRvIHRoaXMgb25seSB3aGVuIGNwdSBpcyBkcml2aW5nIHRyYW5zY2VpdmVyLAogCSAqIHNvIGhvc3Qgd29uJ3Qgc2VlIGEgbG93IHNwZWVkIGRldmljZS4uLgpAQCAtMzYwLDYgKzM2MCw4IEBACiAvKiBjYWxsZWQgZnJvbSBpcnEgaGFuZGxlcnMgKi8KIHN0YXRpYyB2b2lkIGFfaWRsZShzdHJ1Y3QgaXNwMTMwMSAqaXNwLCBjb25zdCBjaGFyICp0YWcpCiB7CisJdTMyIGw7CisKIAlpZiAoaXNwLT5vdGcuc3RhdGUgPT0gT1RHX1NUQVRFX0FfSURMRSkKIAkJcmV0dXJuOwogCkBAIC0zNzMsMTMgKzM3NSwxNyBAQAogCQlnYWRnZXRfc3VzcGVuZChpc3ApOwogCX0KIAlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9BX0lETEU7Ci0JaXNwLT5sYXN0X290Z19jdHJsID0gT1RHX0NUUkxfUkVHID0gT1RHX0NUUkxfUkVHICYgT1RHX1hDRUlWX09VVFBVVFM7CisJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX1hDRUlWX09VVFBVVFM7CisJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCWlzcC0+bGFzdF9vdGdfY3RybCA9IGw7CiAJcHJfZGVidWcoIiAgLS0+ICVzLyVzXG4iLCBzdGF0ZV9uYW1lKGlzcCksIHRhZyk7CiB9CiAKIC8qIGNhbGxlZCBmcm9tIGlycSBoYW5kbGVycyAqLwogc3RhdGljIHZvaWQgYl9pZGxlKHN0cnVjdCBpc3AxMzAxICppc3AsIGNvbnN0IGNoYXIgKnRhZykKIHsKKwl1MzIgbDsKKwogCWlmIChpc3AtPm90Zy5zdGF0ZSA9PSBPVEdfU1RBVEVfQl9JRExFKQogCQlyZXR1cm47CiAKQEAgLTM5Myw3ICszOTksOSBAQAogCQlnYWRnZXRfc3VzcGVuZChpc3ApOwogCX0KIAlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX0lETEU7Ci0JaXNwLT5sYXN0X290Z19jdHJsID0gT1RHX0NUUkxfUkVHID0gT1RHX0NUUkxfUkVHICYgT1RHX1hDRUlWX09VVFBVVFM7CisJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX1hDRUlWX09VVFBVVFM7CisJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCWlzcC0+bGFzdF9vdGdfY3RybCA9IGw7CiAJcHJfZGVidWcoIiAgLS0+ICVzLyVzXG4iLCBzdGF0ZV9uYW1lKGlzcCksIHRhZyk7CiB9CiAKQEAgLTQwNiw3ICs0MTQsNyBAQAogCXU4CXNyYyA9IGlzcDEzMDFfZ2V0X3U4KGlzcCwgSVNQMTMwMV9JTlRFUlJVUFRfU09VUkNFKTsKIAogCXByX2RlYnVnKCJvdGc6ICUwNngsICVzICVzLCBvdGcvJTAyeCBzdGF0LyUwMnguJTAyeFxuIiwKLQkJT1RHX0NUUkxfUkVHLCBsYWJlbCwgc3RhdGVfbmFtZShpc3ApLAorCQlvbWFwX3JlYWRsKE9UR19DVFJMKSwgbGFiZWwsIHN0YXRlX25hbWUoaXNwKSwKIAkJY3RybCwgc3RhdHVzLCBzcmMpOwogCS8qIG1vZGUgY29udHJvbCBhbmQgaXJxIGVuYWJsZXMgZG9uJ3QgY2hhbmdlIG11Y2ggKi8KICNlbmRpZgpAQCAtNDI5LDcgKzQzNyw3IEBACiBzdGF0aWMgdm9pZCBjaGVja19zdGF0ZShzdHJ1Y3QgaXNwMTMwMSAqaXNwLCBjb25zdCBjaGFyICp0YWcpCiB7CiAJZW51bSB1c2Jfb3RnX3N0YXRlCXN0YXRlID0gT1RHX1NUQVRFX1VOREVGSU5FRDsKLQl1OAkJCWZzbSA9IE9UR19URVNUX1JFRyAmIDB4MGZmOworCXU4CQkJZnNtID0gb21hcF9yZWFkdyhPVEdfVEVTVCkgJiAweDBmZjsKIAl1bnNpZ25lZAkJZXh0cmEgPSAwOwogCiAJc3dpdGNoIChmc20pIHsKQEAgLTQ5NCw3ICs1MDIsOCBAQAogCWlmIChpc3AtPm90Zy5zdGF0ZSA9PSBzdGF0ZSAmJiAhZXh0cmEpCiAJCXJldHVybjsKIAlwcl9kZWJ1Zygib3RnOiAlcyBGU00gJXMvJTAyeCwgJXMsICUwNnhcbiIsIHRhZywKLQkJc3RhdGVfc3RyaW5nKHN0YXRlKSwgZnNtLCBzdGF0ZV9uYW1lKGlzcCksIE9UR19DVFJMX1JFRyk7CisJCXN0YXRlX3N0cmluZyhzdGF0ZSksIGZzbSwgc3RhdGVfbmFtZShpc3ApLAorCQlvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiB9CiAKICNlbHNlCkBAIC01MDgsMTAgKzUxNywxMSBAQAogewogCXUzMglvdGdfY3RybDsKIAotCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHCi0JCQkmIE9UR19DVFJMX01BU0sKLQkJCSYgfk9UR19YQ0VJVl9JTlBVVFMKLQkJCSYgfihPVEdfSUR8T1RHX0FTRVNTVkxEfE9UR19WQlVTVkxEKTsKKwlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX0NUUkxfTUFTSzsKKwlvdGdfY3RybCAmPSB+T1RHX1hDRUlWX0lOUFVUUzsKKwlvdGdfY3RybCAmPSB+KE9UR19JRHxPVEdfQVNFU1NWTER8T1RHX1ZCVVNWTEQpOworCisKIAlpZiAoaW50X3NyYyAmIElOVFJfU0VTU19WTEQpCiAJCW90Z19jdHJsIHw9IE9UR19BU0VTU1ZMRDsKIAllbHNlIGlmIChpc3AtPm90Zy5zdGF0ZSA9PSBPVEdfU1RBVEVfQV9XQUlUX1ZGQUxMKSB7CkBAIC01MzQsNyArNTQ0LDcgQEAKIAkJCXJldHVybjsKIAkJfQogCX0KLQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogfQogCiAvKiBvdXRwdXRzIGZyb20gSVNQMTMwMV9PVEdfU1RBVFVTICovCkBAIC01NDIsMTUgKzU1MiwxNCBAQAogewogCXUzMglvdGdfY3RybDsKIAotCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHCi0JCQkmIE9UR19DVFJMX01BU0sKLQkJCSYgfk9UR19YQ0VJVl9JTlBVVFMKLQkJCSYgfihPVEdfQlNFU1NWTER8T1RHX0JTRVNTRU5EKTsKKwlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX0NUUkxfTUFTSzsKKwlvdGdfY3RybCAmPSB+T1RHX1hDRUlWX0lOUFVUUzsKKwlvdGdfY3RybCAmPSB+KE9UR19CU0VTU1ZMRCB8IE9UR19CU0VTU0VORCk7CiAJaWYgKG90Z19zdGF0dXMgJiBPVEdfQl9TRVNTX1ZMRCkKIAkJb3RnX2N0cmwgfD0gT1RHX0JTRVNTVkxEOwogCWVsc2UgaWYgKG90Z19zdGF0dXMgJiBPVEdfQl9TRVNTX0VORCkKIAkJb3RnX2N0cmwgfD0gT1RHX0JTRVNTRU5EOwotCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiB9CiAKIC8qIGlucHV0cyBnb2luZyB0byBJU1AxMzAxICovCkBAIC01NTksNyArNTY4LDcgQEAKIAl1MzIJb3RnX2N0cmwsIG90Z19jaGFuZ2U7CiAJdTgJc2V0ID0gT1RHMV9ETV9QVUxMRE9XTiwgY2xyID0gT1RHMV9ETV9QVUxMVVA7CiAKLQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCW90Z19jaGFuZ2UgPSBvdGdfY3RybCBeIGlzcC0+bGFzdF9vdGdfY3RybDsKIAlpc3AtPmxhc3Rfb3RnX2N0cmwgPSBvdGdfY3RybDsKIAlvdGdfY3RybCA9IG90Z19jdHJsICYgT1RHX1hDRUlWX0lOUFVUUzsKQEAgLTYzOSw2ICs2NDgsOCBAQAogCiAJLyogSE5QIHN3aXRjaCB0byBob3N0IG9yIHBlcmlwaGVyYWw7IGFuZCBTUlAgKi8KIAlpZiAob3RnX2NoYW5nZSAmIE9UR19QVUxMVVApIHsKKwkJdTMyIGw7CisKIAkJc3dpdGNoIChpc3AtPm90Zy5zdGF0ZSkgewogCQljYXNlIE9UR19TVEFURV9CX0lETEU6CiAJCQlpZiAoY2xyICYgT1RHMV9EUF9QVUxMVVApCkBAIC02NTUsNyArNjY2LDkgQEAKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCQl9Ci0JCU9UR19DVFJMX1JFRyB8PSBPVEdfUFVMTFVQOworCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJCWwgfD0gT1RHX1BVTExVUDsKKwkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOwogCX0KIAogCWNoZWNrX3N0YXRlKGlzcCwgX19mdW5jX18pOwpAQCAtNjY0LDIwICs2NzcsMjAgQEAKIAogc3RhdGljIGlycXJldHVybl90IG9tYXBfb3RnX2lycShpbnQgaXJxLCB2b2lkICpfaXNwKQogewotCXUxNgkJb3RnX2lycSA9IE9UR19JUlFfU1JDX1JFRzsKKwl1MTYJCW90Z19pcnEgPSBvbWFwX3JlYWR3KE9UR19JUlFfU1JDKTsKIAl1MzIJCW90Z19jdHJsOwogCWludAkJcmV0ID0gSVJRX05PTkU7CiAJc3RydWN0IGlzcDEzMDEJKmlzcCA9IF9pc3A7CiAKIAkvKiB1cGRhdGUgSVNQMTMwMSB0cmFuc2NpZXZlciBmcm9tIE9URyBjb250cm9sbGVyICovCiAJaWYgKG90Z19pcnEgJiBPUFJUX0NIRykgewotCQlPVEdfSVJRX1NSQ19SRUcgPSBPUFJUX0NIRzsKKwkJb21hcF93cml0ZXcoT1BSVF9DSEcsIE9UR19JUlFfU1JDKTsKIAkJaXNwMTMwMV9kZWZlcl93b3JrKGlzcCwgV09SS19VUERBVEVfSVNQKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiBTUlAgdG8gYmVjb21lIGJfcGVyaXBoZXJhbCBmYWlsZWQgKi8KIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBCX1NSUF9UTVJPVVQpIHsKLQkJcHJfZGVidWcoIm90ZzogQl9TUlBfVElNRU9VVCwgJTA2eFxuIiwgT1RHX0NUUkxfUkVHKTsKKwkJcHJfZGVidWcoIm90ZzogQl9TUlBfVElNRU9VVCwgJTA2eFxuIiwgb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogCQlub3RyZXNwb25kaW5nKGlzcCk7CiAKIAkJLyogZ2FkZ2V0IGRyaXZlcnMgdGhhdCBjYXJlIHNob3VsZCBtb25pdG9yIGFsbCBraW5kcyBvZgpAQCAtNjg3LDMxICs3MDAsMzEgQEAKIAkJaWYgKGlzcC0+b3RnLnN0YXRlID09IE9UR19TVEFURV9CX1NSUF9JTklUKQogCQkJYl9pZGxlKGlzcCwgInNycF90aW1lb3V0Iik7CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gQl9TUlBfVE1ST1VUOworCQlvbWFwX3dyaXRldyhCX1NSUF9UTVJPVVQsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiBITlAgdG8gYmVjb21lIGJfaG9zdCBmYWlsZWQgKi8KIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBCX0hOUF9GQUlMKSB7CiAJCXByX2RlYnVnKCJvdGc6ICVzIEJfSE5QX0ZBSUwsICUwNnhcbiIsCi0JCQkJc3RhdGVfbmFtZShpc3ApLCBPVEdfQ1RSTF9SRUcpOworCQkJCXN0YXRlX25hbWUoaXNwKSwgb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogCQlub3RyZXNwb25kaW5nKGlzcCk7CiAKLQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCW90Z19jdHJsIHw9IE9UR19CVVNEUk9QOwogCQlvdGdfY3RybCAmPSBPVEdfQ1RSTF9NQVNLICYgfk9UR19YQ0VJVl9JTlBVVFM7Ci0JCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCQlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCiAJCS8qIHN1YnNldCBvZiBiX3BlcmlwaGVyYWwoKS4uLiAqLwogCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX1BFUklQSEVSQUw7CiAJCXByX2RlYnVnKCIgIC0tPiBiX3BlcmlwaGVyYWxcbiIpOwogCi0JCU9UR19JUlFfU1JDX1JFRyA9IEJfSE5QX0ZBSUw7CisJCW9tYXBfd3JpdGV3KEJfSE5QX0ZBSUwsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiBkZXRlY3QgU1JQIGZyb20gQi1kZXZpY2UgLi4uICovCiAJfSBlbHNlIGlmIChvdGdfaXJxICYgQV9TUlBfREVURUNUKSB7CiAJCXByX2RlYnVnKCJvdGc6ICVzIFNSUF9ERVRFQ1QsICUwNnhcbiIsCi0JCQkJc3RhdGVfbmFtZShpc3ApLCBPVEdfQ1RSTF9SRUcpOworCQkJCXN0YXRlX25hbWUoaXNwKSwgb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogCiAJCWlzcDEzMDFfZGVmZXJfd29yayhpc3AsIFdPUktfVVBEQVRFX09URyk7CiAJCXN3aXRjaCAoaXNwLT5vdGcuc3RhdGUpIHsKQEAgLTcxOSw0OSArNzMyLDQ5IEBACiAJCQlpZiAoIWlzcC0+b3RnLmhvc3QpCiAJCQkJYnJlYWs7CiAJCQlpc3AxMzAxX2RlZmVyX3dvcmsoaXNwLCBXT1JLX0hPU1RfUkVTVU1FKTsKLQkJCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJCW90Z19jdHJsIHw9IE9UR19BX0JVU1JFUTsKIAkJCW90Z19jdHJsICY9IH4oT1RHX0JVU0RST1B8T1RHX0JfQlVTUkVRKQogCQkJCQkmIH5PVEdfWENFSVZfSU5QVVRTCiAJCQkJCSYgT1RHX0NUUkxfTUFTSzsKLQkJCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCQkJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJCX0KIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBBX1NSUF9ERVRFQ1Q7CisJCW9tYXBfd3JpdGV3KEFfU1JQX0RFVEVDVCwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIHRpbWVyIGV4cGlyZWQ6ICBUKGFfd2FpdF9iY29uKSBhbmQgbWF5YmUgVChhX3dhaXRfdnJpc2UpCiAJICogd2UgZG9uJ3QgdHJhY2sgdGhlbSBzZXBhcmF0ZWx5CiAJICovCiAJfSBlbHNlIGlmIChvdGdfaXJxICYgQV9SRVFfVE1ST1VUKSB7Ci0JCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQlwcl9pbmZvKCJvdGc6IEJDT05fVE1PVVQgZnJvbSAlcywgJTA2eFxuIiwKIAkJCQlzdGF0ZV9uYW1lKGlzcCksIG90Z19jdHJsKTsKIAkJbm90cmVzcG9uZGluZyhpc3ApOwogCiAJCW90Z19jdHJsIHw9IE9UR19CVVNEUk9QOwogCQlvdGdfY3RybCAmPSB+T1RHX0FfQlVTUkVRICYgT1RHX0NUUkxfTUFTSyAmIH5PVEdfWENFSVZfSU5QVVRTOwotCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwkJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQV9XQUlUX1ZGQUxMOwogCi0JCU9UR19JUlFfU1JDX1JFRyA9IEFfUkVRX1RNUk9VVDsKKwkJb21hcF93cml0ZXcoQV9SRVFfVE1ST1VULCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogQS1zdXBwbGllZCB2b2x0YWdlIGZlbGwgdG9vIGxvdzsgb3ZlcmN1cnJlbnQgKi8KIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBBX1ZCVVNfRVJSKSB7Ci0JCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQlwcmludGsoS0VSTl9FUlIgIm90ZzogJXMsIFZCVVNfRVJSICUwNHggY3RybCAlMDZ4XG4iLAogCQkJc3RhdGVfbmFtZShpc3ApLCBvdGdfaXJxLCBvdGdfY3RybCk7CiAKIAkJb3RnX2N0cmwgfD0gT1RHX0JVU0RST1A7CiAJCW90Z19jdHJsICY9IH5PVEdfQV9CVVNSRVEgJiBPVEdfQ1RSTF9NQVNLICYgfk9UR19YQ0VJVl9JTlBVVFM7Ci0JCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCQlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9BX1ZCVVNfRVJSOwogCi0JCU9UR19JUlFfU1JDX1JFRyA9IEFfVkJVU19FUlI7CisJCW9tYXBfd3JpdGV3KEFfVkJVU19FUlIsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiBzd2l0Y2ggZHJpdmVyOyB0aGUgdHJhbnNjaWV2ZXIgY29kZSBhY3RpdmF0ZXMgaXQsCkBAIC03NzAsNyArNzgzLDcgQEAKIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBEUklWRVJfU1dJVENIKSB7CiAJCWludAlraWNrID0gMDsKIAotCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJvdGc6ICVzLCBTV0lUQ0ggdG8gJXMsIGN0cmwgJTA2eFxuIiwKIAkJCQlzdGF0ZV9uYW1lKGlzcCksCiAJCQkJKG90Z19jdHJsICYgT1RHX0RSSVZFUl9TRUwpCkBAIC03OTMsNyArODA2LDcgQEAKIAkJfSBlbHNlIHsKIAkJCWlmICghKG90Z19jdHJsICYgT1RHX0lEKSkgewogCQkJCW90Z19jdHJsICY9IE9UR19DVFJMX01BU0sgJiB+T1RHX1hDRUlWX0lOUFVUUzsKLQkJCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybCB8IE9UR19BX0JVU1JFUTsKKwkJCQlvbWFwX3dyaXRlbChvdGdfY3RybCB8IE9UR19BX0JVU1JFUSwgT1RHX0NUUkwpOwogCQkJfQogCiAJCQlpZiAoaXNwLT5vdGcuaG9zdCkgewpAQCAtODE4LDcgKzgzMSw3IEBACiAJCQl9CiAJCX0KIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBEUklWRVJfU1dJVENIOworCQlvbWFwX3dyaXRldyhEUklWRVJfU1dJVENILCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJCWlmIChraWNrKQpAQCAtODM0LDEyICs4NDcsMTUgQEAKIAogc3RhdGljIGludCBvdGdfaW5pdChzdHJ1Y3QgaXNwMTMwMSAqaXNwKQogeworCXUzMiBsOworCiAJaWYgKCFvdGdfZGV2KQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWR1bXBfcmVncyhpc3AsIF9fZnVuY19fKTsKIAkvKiBzb21lIG9mIHRoZXNlIHZhbHVlcyBhcmUgYm9hcmQtc3BlY2lmaWMuLi4gKi8KLQlPVEdfU1lTQ09OXzJfUkVHIHw9IE9UR19FTgorCWwgPSBvbWFwX3JlYWRsKE9UR19TWVNDT05fMik7CisJbCB8PSBPVEdfRU4KIAkJLyogZm9yIEItZGV2aWNlOiAqLwogCQl8IFNSUF9HUERBVEEJCS8qIDltc2VjIEJkZXYgRCsgcHVsc2UgKi8KIAkJfCBTUlBfR1BEVkJVUwkJLyogZGlzY2hhcmdlIGFmdGVyIFZCVVMgcHVsc2UgKi8KQEAgLTg0OSwxOCArODY1LDIyIEBACiAJCXwgU1JQX0RQVwkJLyogZGV0ZWN0IDE2NytucyBTUlAgcHVsc2VzICovCiAJCXwgU1JQX0RBVEEgfCBTUlBfVkJVUwkvKiBhY2NlcHQgYm90aCBraW5kcyBvZiBTUlAgcHVsc2UgKi8KIAkJOworCW9tYXBfd3JpdGVsKGwsIE9UR19TWVNDT05fMik7CiAKIAl1cGRhdGVfb3RnMShpc3AsIGlzcDEzMDFfZ2V0X3U4KGlzcCwgSVNQMTMwMV9JTlRFUlJVUFRfU09VUkNFKSk7CiAJdXBkYXRlX290ZzIoaXNwLCBpc3AxMzAxX2dldF91OChpc3AsIElTUDEzMDFfT1RHX1NUQVRVUykpOwogCiAJY2hlY2tfc3RhdGUoaXNwLCBfX2Z1bmNfXyk7CiAJcHJfZGVidWcoIm90ZzogJXMsICVzICUwNnhcbiIsCi0JCQlzdGF0ZV9uYW1lKGlzcCksIF9fZnVuY19fLCBPVEdfQ1RSTF9SRUcpOworCQkJc3RhdGVfbmFtZShpc3ApLCBfX2Z1bmNfXywgb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogCi0JT1RHX0lSUV9FTl9SRUcgPSBEUklWRVJfU1dJVENIIHwgT1BSVF9DSEcKKwlvbWFwX3dyaXRldyhEUklWRVJfU1dJVENIIHwgT1BSVF9DSEcKIAkJCXwgQl9TUlBfVE1ST1VUIHwgQl9ITlBfRkFJTAotCQkJfCBBX1ZCVVNfRVJSIHwgQV9TUlBfREVURUNUIHwgQV9SRVFfVE1ST1VUOwotCU9UR19TWVNDT05fMl9SRUcgfD0gT1RHX0VOOworCQkJfCBBX1ZCVVNfRVJSIHwgQV9TUlBfREVURUNUIHwgQV9SRVFfVE1ST1VULCBPVEdfSVJRX0VOKTsKKworCWwgPSBvbWFwX3JlYWRsKE9UR19TWVNDT05fMik7CisJbCB8PSBPVEdfRU47CisJb21hcF93cml0ZWwobCwgT1RHX1NZU0NPTl8yKTsKIAogCXJldHVybiAwOwogfQpAQCAtOTI3LDcgKzk0NywxMSBAQAogCiBzdGF0aWMgdm9pZCBiX3BlcmlwaGVyYWwoc3RydWN0IGlzcDEzMDEgKmlzcCkKIHsKLQlPVEdfQ1RSTF9SRUcgPSBPVEdfQ1RSTF9SRUcgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwl1MzIgbDsKKworCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19YQ0VJVl9PVVRQVVRTOworCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwogCXVzYl9nYWRnZXRfdmJ1c19jb25uZWN0KGlzcC0+b3RnLmdhZGdldCk7CiAKICNpZmRlZglDT05GSUdfVVNCX09URwpAQCAtOTk5LDYgKzEwMjMsOCBAQAogCQkJaXNwX2JzdGF0ID0gMDsKIAkJfQogCX0gZWxzZSB7CisJCXUzMiBsOworCiAJCS8qIGlmIHVzZXIgdW5wbHVnZ2VkIG1pbmktQSBlbmQgb2YgY2FibGUsCiAJCSAqIGRvbid0IGJ5cGFzcyBBX1dBSVRfVkZBTEwuCiAJCSAqLwpAQCAtMTAxOSw4ICsxMDQ1LDkgQEAKIAkJCQlpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLAogCQkJCQkJTUMxX0JESVNfQUNPTl9FTik7CiAJCQkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9JRExFOwotCQkJCU9UR19DVFJMX1JFRyAmPSBPVEdfQ1RSTF9SRUcgJiBPVEdfQ1RSTF9NQVNLCi0JCQkJCQkmIH5PVEdfQ1RSTF9CSVRTOworCQkJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19DVFJMX01BU0s7CisJCQkJbCAmPSB+T1RHX0NUUkxfQklUUzsKKwkJCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIE9UR19TVEFURV9CX0lETEU6CiAJCQkJYnJlYWs7CkBAIC0xMDQ2LDcgKzEwNzMsOCBAQAogCQkJLyogRkFMTFRIUk9VR0ggKi8KIAkJY2FzZSBPVEdfU1RBVEVfQl9TUlBfSU5JVDoKIAkJCWJfaWRsZShpc3AsIF9fZnVuY19fKTsKLQkJCU9UR19DVFJMX1JFRyAmPSBPVEdfQ1RSTF9SRUcgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwkJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19YQ0VJVl9PVVRQVVRTOworCQkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOwogCQkJLyogRkFMTFRIUk9VR0ggKi8KIAkJY2FzZSBPVEdfU1RBVEVfQl9JRExFOgogCQkJaWYgKGlzcC0+b3RnLmdhZGdldCAmJiAoaXNwX2JzdGF0ICYgT1RHX0JfU0VTU19WTEQpKSB7CkBAIC0xMTMwLDExICsxMTU4LDExIEBACiAJCQljYXNlIE9UR19TVEFURV9BX1dBSVRfVlJJU0U6CiAJCQkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQV9IT1NUOwogCQkJCXByX2RlYnVnKCIgIC0tPiBhX2hvc3RcbiIpOwotCQkJCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQkJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCQkJb3RnX2N0cmwgfD0gT1RHX0FfQlVTUkVROwogCQkJCW90Z19jdHJsICY9IH4oT1RHX0JVU0RST1B8T1RHX0JfQlVTUkVRKQogCQkJCQkJJiBPVEdfQ1RSTF9NQVNLOwotCQkJCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCQkJCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIE9UR19TVEFURV9CX1dBSVRfQUNPTjoKIAkJCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX0hPU1Q7CkBAIC0xMjc0LDcgKzEzMDIsNyBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWlmICghaG9zdCkgewotCQlPVEdfSVJRX0VOX1JFRyA9IDA7CisJCW9tYXBfd3JpdGV3KDAsIE9UR19JUlFfRU4pOwogCQlwb3dlcl9kb3duKGlzcCk7CiAJCWlzcC0+b3RnLmhvc3QgPSAwOwogCQlyZXR1cm4gMDsKQEAgLTEzMjUsMTIgKzEzNTMsMTMgQEAKIGlzcDEzMDFfc2V0X3BlcmlwaGVyYWwoc3RydWN0IG90Z190cmFuc2NlaXZlciAqb3RnLCBzdHJ1Y3QgdXNiX2dhZGdldCAqZ2FkZ2V0KQogewogCXN0cnVjdCBpc3AxMzAxCSppc3AgPSBjb250YWluZXJfb2Yob3RnLCBzdHJ1Y3QgaXNwMTMwMSwgb3RnKTsKKwl1MzIgbDsKIAogCWlmICghb3RnIHx8IGlzcCAhPSB0aGVfdHJhbnNjZWl2ZXIpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKCFnYWRnZXQpIHsKLQkJT1RHX0lSUV9FTl9SRUcgPSAwOworCQlvbWFwX3dyaXRldygwLCBPVEdfSVJRX0VOKTsKIAkJaWYgKCFpc3AtPm90Zy5kZWZhdWx0X2EpCiAJCQllbmFibGVfdmJ1c19kcmF3KGlzcCwgMCk7CiAJCXVzYl9nYWRnZXRfdmJ1c19kaXNjb25uZWN0KGlzcC0+b3RnLmdhZGdldCk7CkBAIC0xMzUxLDkgKzEzODAsMTEgQEAKIAlpc3AtPm90Zy5nYWRnZXQgPSBnYWRnZXQ7CiAJLy8gRklYTUUgdXBkYXRlIGl0cyByZWZjb3VudAogCi0JT1RHX0NUUkxfUkVHID0gKE9UR19DVFJMX1JFRyAmIE9UR19DVFJMX01BU0sKLQkJCQkmIH4oT1RHX1hDRUlWX09VVFBVVFN8T1RHX0NUUkxfQklUUykpCi0JCQl8IE9UR19JRDsKKwlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfQ1RSTF9NQVNLOworCWwgJj0gfihPVEdfWENFSVZfT1VUUFVUU3xPVEdfQ1RSTF9CSVRTKTsKKwlsIHw9IE9UR19JRDsKKwlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisKIAlwb3dlcl91cChpc3ApOwogCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfSURMRTsKIApAQCAtMTQwNSwxNiArMTQzNiwxNyBAQAogCQkJfHwgaXNwLT5vdGcuc3RhdGUgIT0gT1RHX1NUQVRFX0JfSURMRSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCWlmICghKG90Z19jdHJsICYgT1RHX0JTRVNTRU5EKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlvdGdfY3RybCB8PSBPVEdfQl9CVVNSRVE7CiAJb3RnX2N0cmwgJj0gfk9UR19BX0JVU1JFUSAmIE9UR19DVFJMX01BU0s7Ci0JT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX1NSUF9JTklUOwogCi0JcHJfZGVidWcoIm90ZzogU1JQLCAlcyAuLi4gJTA2eFxuIiwgc3RhdGVfbmFtZShpc3ApLCBPVEdfQ1RSTF9SRUcpOworCXByX2RlYnVnKCJvdGc6IFNSUCwgJXMgLi4uICUwNnhcbiIsIHN0YXRlX25hbWUoaXNwKSwKKwkJCW9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKICNpZmRlZglDT05GSUdfVVNCX09URwogCWNoZWNrX3N0YXRlKGlzcCwgX19mdW5jX18pOwogI2VuZGlmCkBAIC0xNDI2LDYgKzE0NTgsNyBAQAogewogI2lmZGVmCUNPTkZJR19VU0JfT1RHCiAJc3RydWN0IGlzcDEzMDEJKmlzcCA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBpc3AxMzAxLCBvdGcpOworCXUzMiBsOwogCiAJaWYgKCFkZXYgfHwgaXNwICE9IHRoZV90cmFuc2NlaXZlcikKIAkJcmV0dXJuIC1FTk9ERVY7CkBAIC0xNDUyLDcgKzE0ODUsOSBAQAogI2VuZGlmCiAJCS8qIGNhbGxlciBtdXN0IHN1c3BlbmQgdGhlbiBjbGVhciBBX0JVU1JFUSAqLwogCQl1c2JfZ2FkZ2V0X3ZidXNfY29ubmVjdChpc3AtPm90Zy5nYWRnZXQpOwotCQlPVEdfQ1RSTF9SRUcgfD0gT1RHX0FfU0VUQl9ITlBFTjsKKwkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCQlsIHw9IE9UR19BX1NFVEJfSE5QRU47CisJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKIAogCQlicmVhazsKIAljYXNlIE9UR19TVEFURV9BX1BFUklQSEVSQUw6CkBAIC0xNDYyLDcgKzE0OTcsNyBAQAogCQlyZXR1cm4gLUVJTFNFUTsKIAl9CiAJcHJfZGVidWcoIm90ZzogSE5QICVzLCAlMDZ4IC4uLlxuIiwKLQkJc3RhdGVfbmFtZShpc3ApLCBPVEdfQ1RSTF9SRUcpOworCQlzdGF0ZV9uYW1lKGlzcCksIG9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIAljaGVja19zdGF0ZShpc3AsIF9fZnVuY19fKTsKIAlyZXR1cm4gMDsKICNlbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9pMmMtZGV2LmMgYi9kcml2ZXJzL2kyYy9pMmMtZGV2LmMKaW5kZXggZDM0YzE0Yy4uMDA2YTU4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvaTJjLWRldi5jCisrKyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMtZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCiBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgaTJjZGV2X2RyaXZlcjsKQEAgLTQ0MSwxNCArNDQyLDIwIEBACiAJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXA7CiAJc3RydWN0IGkyY19kZXYgKmkyY19kZXY7CisJaW50IHJldCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWkyY19kZXYgPSBpMmNfZGV2X2dldF9ieV9taW5vcihtaW5vcik7Ci0JaWYgKCFpMmNfZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIWkyY19kZXYpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCiAJYWRhcCA9IGkyY19nZXRfYWRhcHRlcihpMmNfZGV2LT5hZGFwLT5ucik7Ci0JaWYgKCFhZGFwKQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIWFkYXApIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCiAJLyogVGhpcyBjcmVhdGVzIGFuIGFub255bW91cyBpMmNfY2xpZW50LCB3aGljaCBtYXkgbGF0ZXIgYmUKIAkgKiBwb2ludGVkIHRvIHNvbWUgYWRkcmVzcyB1c2luZyBJMkNfU0xBVkUgb3IgSTJDX1NMQVZFX0ZPUkNFLgpAQCAtNDYwLDcgKzQ2Nyw4IEBACiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2YoKmNsaWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xpZW50KSB7CiAJCWkyY19wdXRfYWRhcHRlcihhZGFwKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OwogCX0KIAlzbnByaW50ZihjbGllbnQtPm5hbWUsIEkyQ19OQU1FX1NJWkUsICJpMmMtZGV2ICVkIiwgYWRhcC0+bnIpOwogCWNsaWVudC0+ZHJpdmVyID0gJmkyY2Rldl9kcml2ZXI7CkBAIC00NjgsNyArNDc2LDkgQEAKIAljbGllbnQtPmFkYXB0ZXIgPSBhZGFwOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGNsaWVudDsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGkyY2Rldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvS2NvbmZpZyBiL2RyaXZlcnMvaWRlL0tjb25maWcKaW5kZXggYjRmM2FlZi4uMTYwNzUzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvS2NvbmZpZworKysgYi9kcml2ZXJzL2lkZS9LY29uZmlnCkBAIC0xMDI4LDYgKzEwMjgsNyBAQAogCiBjb25maWcgQkxLX0RFVl9IRF9PTkxZCiAJYm9vbCAiT2xkIGhhcmQgZGlzayAoTUZNL1JMTC9JREUpIGRyaXZlciIKKwlkZXBlbmRzIG9uICFBUk0gfHwgQVJDSF9SUEMgfHwgQVJDSF9TSEFSSyB8fCBCUk9LRU4KIAloZWxwCiAJICBUaGVyZSBhcmUgdHdvIGRyaXZlcnMgZm9yIE1GTS9STEwvSURFIGhhcmQgZGlza3MuIE1vc3QgcGVvcGxlIHVzZQogCSAgdGhlIG5ld2VyIGVuaGFuY2VkIGRyaXZlciwgYnV0IHRoaXMgb2xkIG9uZSBpcyBzdGlsbCBhcm91bmQgZm9yIHR3bwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvYXJtL2Jhc3QtaWRlLmMgYi9kcml2ZXJzL2lkZS9hcm0vYmFzdC1pZGUuYwppbmRleCA3MTNjZWYyLi44ZThjMjgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9hcm0vYmFzdC1pZGUuYworKysgYi9kcml2ZXJzL2lkZS9hcm0vYmFzdC1pZGUuYwpAQCAtNDIsNiArNDIsNyBAQAogCiAJaHcuaW9fcG9ydHMuY3RsX2FkZHIgPSBhdXggKyAoNiAqIDB4MjApOwogCWh3LmlycSA9IGlycTsKKwlody5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiAKIAlod2lmID0gaWRlX2ZpbmRfcG9ydCgpOwogCWlmIChod2lmID09IE5VTEwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9hcm0vaWRlX2FybS5jIGIvZHJpdmVycy9pZGUvYXJtL2lkZV9hcm0uYwppbmRleCA0MjYzZmZkLi4yZjMxMWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9hcm0vaWRlX2FybS5jCisrKyBiL2RyaXZlcnMvaWRlL2FybS9pZGVfYXJtLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKIAltZW1zZXQoJmh3LCAwLCBzaXplb2YoaHcpKTsKIAlpZGVfc3RkX2luaXRfcG9ydHMoJmh3LCBiYXNlLCBjdGwpOwogCWh3LmlycSA9IElERV9BUk1fSVJROworCWh3LmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIAogCWh3aWYgPSBpZGVfZmluZF9wb3J0KCk7CiAJaWYgKGh3aWYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2FybS9wYWxtX2JrMzcxMC5jIGIvZHJpdmVycy9pZGUvYXJtL3BhbG1fYmszNzEwLmMKaW5kZXggOTYzNzhlYi4uMmYyYjRmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvYXJtL3BhbG1fYmszNzEwLmMKKysrIGIvZHJpdmVycy9pZGUvYXJtL3BhbG1fYmszNzEwLmMKQEAgLTc2LDcgKzc2LDcgQEAKIAogI2luY2x1ZGUgIi4uL2lkZS10aW1pbmcuaCIKIAotc3RhdGljIGxvbmcgaWRlX3BhbG1fY2xrOworc3RhdGljIHVuc2lnbmVkIGlkZWNsa19wZXJpb2Q7IC8qIGluIG5hbm9zZWNvbmRzICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFsbV9iazM3MTBfdWRtYXRpbWluZyBwYWxtX2JrMzcxMF91ZG1hdGltaW5nc1s2XSA9IHsKIAl7MTYwLCAyNDB9LAkJLyogVURNQSBNb2RlIDAgKi8KQEAgLTg2LDggKzg2LDYgQEAKIAl7ODUsICA2MH0sCQkvKiBVRE1BIE1vZGUgNCAqLwogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmlkZWNsa3A7Ci0KIHN0YXRpYyB2b2lkIHBhbG1fYmszNzEwX3NldHVkbWFtb2RlKHZvaWQgX19pb21lbSAqYmFzZSwgdW5zaWduZWQgaW50IGRldiwKIAkJCQkgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CkBAIC05NywxMCArOTUsMTAgQEAKIAogCS8qIERNQSBEYXRhIFNldHVwICovCiAJdDAgPSBESVZfUk9VTkRfVVAocGFsbV9iazM3MTBfdWRtYXRpbWluZ3NbbW9kZV0uY3ljbGV0aW1lLAotCQkJICBpZGVfcGFsbV9jbGspIC0gMTsKLQl0ZW52ID0gRElWX1JPVU5EX1VQKDIwLCBpZGVfcGFsbV9jbGspIC0gMTsKKwkJCSAgaWRlY2xrX3BlcmlvZCkgLSAxOworCXRlbnYgPSBESVZfUk9VTkRfVVAoMjAsIGlkZWNsa19wZXJpb2QpIC0gMTsKIAl0cnAgPSBESVZfUk9VTkRfVVAocGFsbV9iazM3MTBfdWRtYXRpbWluZ3NbbW9kZV0ucnB0aW1lLAotCQkJICAgaWRlX3BhbG1fY2xrKSAtIDE7CisJCQkgICBpZGVjbGtfcGVyaW9kKSAtIDE7CiAKIAkvKiB1ZG1hdGltIFJlZ2lzdGVyICovCiAJdmFsMTYgPSByZWFkdyhiYXNlICsgQkszNzEwX1VETUFUSU0pICYgKGRldiA/IDB4RkYwRiA6IDB4RkZGMCk7CkBAIC0xNDEsOCArMTM5LDggQEAKIAljeWNsZXRpbWUgPSBtYXhfdChpbnQsIHQtPmN5Y2xlLCBtaW5fY3ljbGUpOwogCiAJLyogRE1BIERhdGEgU2V0dXAgKi8KLQl0MCA9IERJVl9ST1VORF9VUChjeWNsZXRpbWUsIGlkZV9wYWxtX2Nsayk7Ci0JdGQgPSBESVZfUk9VTkRfVVAodC0+YWN0aXZlLCBpZGVfcGFsbV9jbGspOworCXQwID0gRElWX1JPVU5EX1VQKGN5Y2xldGltZSwgaWRlY2xrX3BlcmlvZCk7CisJdGQgPSBESVZfUk9VTkRfVVAodC0+YWN0aXZlLCBpZGVjbGtfcGVyaW9kKTsKIAl0a3cgPSB0MCAtIHRkIC0gMTsKIAl0ZCAtPSAxOwogCkBAIC0xNjgsOSArMTY2LDkgQEAKIAlzdHJ1Y3QgaWRlX3RpbWluZyAqdDsKIAogCS8qIFBJTyBEYXRhIFNldHVwICovCi0JdDAgPSBESVZfUk9VTkRfVVAoY3ljbGV0aW1lLCBpZGVfcGFsbV9jbGspOworCXQwID0gRElWX1JPVU5EX1VQKGN5Y2xldGltZSwgaWRlY2xrX3BlcmlvZCk7CiAJdDIgPSBESVZfUk9VTkRfVVAoaWRlX3RpbWluZ19maW5kX21vZGUoWEZFUl9QSU9fMCArIG1vZGUpLT5hY3RpdmUsCi0JCQkgIGlkZV9wYWxtX2Nsayk7CisJCQkgIGlkZWNsa19wZXJpb2QpOwogCiAJdDJpID0gdDAgLSB0MiAtIDE7CiAJdDIgLT0gMTsKQEAgLTE5Miw4ICsxOTAsOCBAQAogCiAJLyogVEFTS0ZJTEUgU2V0dXAgKi8KIAl0ID0gaWRlX3RpbWluZ19maW5kX21vZGUoWEZFUl9QSU9fMCArIG1vZGUpOwotCXQwID0gRElWX1JPVU5EX1VQKHQtPmN5YzhiLCBpZGVfcGFsbV9jbGspOwotCXQyID0gRElWX1JPVU5EX1VQKHQtPmFjdDhiLCBpZGVfcGFsbV9jbGspOworCXQwID0gRElWX1JPVU5EX1VQKHQtPmN5YzhiLCBpZGVjbGtfcGVyaW9kKTsKKwl0MiA9IERJVl9ST1VORF9VUCh0LT5hY3Q4YiwgaWRlY2xrX3BlcmlvZCk7CiAKIAl0MmkgPSB0MCAtIHQyIC0gMTsKIAl0MiAtPSAxOwpAQCAtMzUwLDIyICszNDgsMjIgQEAKIAogc3RhdGljIGludCBfX2RldmluaXQgcGFsbV9iazM3MTBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgY2xrICpjbGtwOworCXN0cnVjdCBjbGsgKmNsazsKIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbSwgKmlycTsKIAlpZGVfaHdpZl90ICpod2lmOwotCXZvaWQgX19pb21lbSAqYmFzZTsKLQlpbnQgcHJpYmFzZSwgaTsKKwl1bnNpZ25lZCBsb25nIGJhc2UsIHJhdGU7CisJaW50IGk7CiAJaHdfcmVnc190IGh3OwogCXU4IGlkeFs0XSA9IHsgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiB9OwogCi0JY2xrcCA9IGNsa19nZXQoTlVMTCwgIklERUNMSyIpOwotCWlmIChJU19FUlIoY2xrcCkpCisJY2xrID0gY2xrX2dldChOVUxMLCAiSURFQ0xLIik7CisJaWYgKElTX0VSUihjbGspKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlkZWNsa3AgPSBjbGtwOwotCWNsa19lbmFibGUoaWRlY2xrcCk7Ci0JaWRlX3BhbG1fY2xrID0gY2xrX2dldF9yYXRlKGlkZWNsa3ApLzEwMDAwMDsKLQlpZGVfcGFsbV9jbGsgPSAoMTAwMDAvaWRlX3BhbG1fY2xrKSArIDE7CisJY2xrX2VuYWJsZShjbGspOworCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrKTsKKwlpZGVjbGtfcGVyaW9kID0gMTAwMDAwMDAwMFVMIC8gcmF0ZTsKKwogCS8qIFJlZ2lzdGVyIHRoZSBJREUgaW50ZXJmYWNlIHdpdGggTGludXggQVRBIEludGVyZmFjZSAqLwogCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOwogCkBAIC0zNzQsMjIgKzM3MiwyNyBAQAogCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBnZXQgbWVtb3J5IHJlZ2lvbiByZXNvdXJjZVxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KKwogCWlycSA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX0lSUSwgMCk7CiAJaWYgKGlycSA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGdldCBJUlEgcmVzb3VyY2VcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQliYXNlID0gKHZvaWQgKiltZW0tPnN0YXJ0OworCWlmIChyZXF1ZXN0X21lbV9yZWdpb24obWVtLT5zdGFydCwgbWVtLT5lbmQgLSBtZW0tPnN0YXJ0ICsgMSwKKwkJCSAgICAgICAicGFsbV9iazM3MTAiKSA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlcXVlc3QgbWVtb3J5IHJlZ2lvblxuIik7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJYmFzZSA9IElPX0FERFJFU1MobWVtLT5zdGFydCk7CiAKIAkvKiBDb25maWd1cmUgdGhlIFBhbG0gQ2hpcCBjb250cm9sbGVyICovCi0JcGFsbV9iazM3MTBfY2hpcGluaXQoYmFzZSk7CisJcGFsbV9iazM3MTBfY2hpcGluaXQoKHZvaWQgX19pb21lbSAqKWJhc2UpOwogCi0JcHJpYmFzZSA9IG1lbS0+c3RhcnQgKyBJREVfUEFMTV9BVEFfUFJJX1JFR19PRkZTRVQ7CiAJZm9yIChpID0gMDsgaSA8IElERV9OUl9QT1JUUyAtIDI7IGkrKykKLQkJaHcuaW9fcG9ydHNfYXJyYXlbaV0gPSBwcmliYXNlICsgaTsKLQlody5pb19wb3J0cy5jdGxfYWRkciA9IG1lbS0+c3RhcnQgKwotCQkJSURFX1BBTE1fQVRBX1BSSV9DVExfT0ZGU0VUOworCQlody5pb19wb3J0c19hcnJheVtpXSA9IGJhc2UgKyBJREVfUEFMTV9BVEFfUFJJX1JFR19PRkZTRVQgKyBpOworCWh3LmlvX3BvcnRzLmN0bF9hZGRyID0gYmFzZSArIElERV9QQUxNX0FUQV9QUklfQ1RMX09GRlNFVDsKIAlody5pcnEgPSBpcnEtPnN0YXJ0OwogCWh3LmNoaXBzZXQgPSBpZGVfcGFsbTM3MTA7CiAKQEAgLTQwOSw5ICs0MTIsNiBAQAogCiAJaWRlX2RldmljZV9hZGQoaWR4LCAmcGFsbV9iazM3MTBfcG9ydF9pbmZvKTsKIAotCWlmICghaHdpZi0+cHJlc2VudCkKLQkJZ290byBvdXQ7Ci0KIAlyZXR1cm4gMDsKIG91dDoKIAlwcmludGsoS0VSTl9XQVJOSU5HICJQYWxtIENoaXAgQkszNzEwIElERSBSZWdpc3RlciBGYWlsXG4iKTsKQEAgLTQzNyw0ICs0MzcsMyBAQAogCiBtb2R1bGVfaW5pdChwYWxtX2JrMzcxMF9pbml0KTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLWdlbmVyaWMuYyBiL2RyaXZlcnMvaWRlL2lkZS1nZW5lcmljLmMKaW5kZXggYTYwNzNlMi4uMmQ5MjIxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLWdlbmVyaWMuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtZ2VuZXJpYy5jCkBAIC0yMiw2ICsyMiwxMCBAQAogCiAjZGVmaW5lIERSVl9OQU1FCSJpZGVfZ2VuZXJpYyIKIAorc3RhdGljIGludCBwcm9iZV9tYXNrID0gMHgwMzsKK21vZHVsZV9wYXJhbShwcm9iZV9tYXNrLCBpbnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhwcm9iZV9tYXNrLCAicHJvYmUgbWFzayBmb3IgbGVnYWN5IElTQSBJREUgcG9ydHMiKTsKKwogc3RhdGljIHNzaXplX3Qgc3RvcmVfYWRkKHN0cnVjdCBjbGFzcyAqY2xzLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBuKQogewogCWlkZV9od2lmX3QgKmh3aWY7CkBAIC04OSw2ICs5Myw5IEBACiAJdTggaWR4W01BWF9IV0lGU107CiAJaW50IGk7CiAKKwlwcmludGsoS0VSTl9JTkZPIERSVl9OQU1FICI6IHBsZWFzZSB1c2UgXCJwcm9iZV9tYXNrPTB4M2ZcIiBtb2R1bGUgIgorCQkJICJwYXJhbWV0ZXIgZm9yIHByb2JpbmcgYWxsIGxlZ2FjeSBJU0EgSURFIHBvcnRzXG4iKTsKKwogCWZvciAoaSA9IDA7IGkgPCBNQVhfSFdJRlM7IGkrKykgewogCQlpZGVfaHdpZl90ICpod2lmOwogCQl1bnNpZ25lZCBsb25nIGlvX2FkZHIgPSBpZGVfZGVmYXVsdF9pb19iYXNlKGkpOwpAQCAtOTYsNyArMTAzLDcgQEAKIAogCQlpZHhbaV0gPSAweGZmOwogCi0JCWlmIChpb19hZGRyKSB7CisJCWlmICgocHJvYmVfbWFzayAmICgxIDw8IGkpKSAmJiBpb19hZGRyKSB7CiAJCQlpZiAoIXJlcXVlc3RfcmVnaW9uKGlvX2FkZHIsIDgsIERSVl9OQU1FKSkgewogCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IEkvTyByZXNvdXJjZSAweCVsWC0weCVsWCAiCiAJCQkJCQkibm90IGZyZWUuXG4iLApAQCAtMTI1LDYgKzEzMiw3IEBACiAJCQltZW1zZXQoJmh3LCAwLCBzaXplb2YoaHcpKTsKIAkJCWlkZV9zdGRfaW5pdF9wb3J0cygmaHcsIGlvX2FkZHIsIGlvX2FkZHIgKyAweDIwNik7CiAJCQlody5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaW9fYWRkcik7CisJCQlody5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiAJCQlpZGVfaW5pdF9wb3J0X2h3KGh3aWYsICZodyk7CiAKIAkJCWlkeFtpXSA9IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtcG5wLmMgYi9kcml2ZXJzL2lkZS9pZGUtcG5wLmMKaW5kZXggNmE4OTUzZi4uYWRiZDAxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXBucC5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1wbnAuYwpAQCAtNTUsNiArNTUsNyBAQAogCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOwogCWlkZV9zdGRfaW5pdF9wb3J0cygmaHcsIGJhc2UsIGN0bCk7CiAJaHcuaXJxID0gcG5wX2lycShkZXYsIDApOworCWh3LmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIAogCWh3aWYgPSBpZGVfZmluZF9wb3J0KCk7CiAJaWYgKGh3aWYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1wcm9iZS5jIGIvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKaW5kZXggNjU1ZWM3ZS4uMjZlNjhiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKQEAgLTY0Niw4ICs2NDYsNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlnZXRfZGV2aWNlKCZod2lmLT5nZW5kZXYpOwotCiAJaHdpZi0+cG9ydGRldiA9IGRldmljZV9jcmVhdGVfZHJ2ZGF0YShpZGVfcG9ydF9jbGFzcywgJmh3aWYtPmdlbmRldiwKIAkJCQkJICAgICAgTUtERVYoMCwgMCksIGh3aWYsIGh3aWYtPm5hbWUpOwogCWlmIChJU19FUlIoaHdpZi0+cG9ydGRldikpIHsKQEAgLTEyMjAsMTYgKzEyMTgsMTIgQEAKIAljb21wbGV0ZSgmZHJpdmUtPmdlbmRldl9yZWxfY29tcCk7CiB9CiAKLSNpZm5kZWYgaWRlX2RlZmF1bHRfaXJxCi0jZGVmaW5lIGlkZV9kZWZhdWx0X2lycShpcnEpIDAKLSNlbmRpZgotCiBzdGF0aWMgaW50IGh3aWZfaW5pdChpZGVfaHdpZl90ICpod2lmKQogewogCWludCBvbGRfaXJxOwogCiAJaWYgKCFod2lmLT5pcnEpIHsKLQkJaHdpZi0+aXJxID0gaWRlX2RlZmF1bHRfaXJxKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcik7CisJCWh3aWYtPmlycSA9IF9faWRlX2RlZmF1bHRfaXJxKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcik7CiAJCWlmICghaHdpZi0+aXJxKSB7CiAJCQlwcmludGsoIiVzOiBESVNBQkxFRCwgTk8gSVJRXG4iLCBod2lmLT5uYW1lKTsKIAkJCXJldHVybiAwOwpAQCAtMTI1OSw3ICsxMjUzLDcgQEAKIAkgKglJdCBmYWlsZWQgdG8gaW5pdGlhbGlzZS4gRmluZCB0aGUgZGVmYXVsdCBJUlEgZm9yIAogCSAqCXRoaXMgcG9ydCBhbmQgdHJ5IHRoYXQuCiAJICovCi0JaHdpZi0+aXJxID0gaWRlX2RlZmF1bHRfaXJxKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcik7CisJaHdpZi0+aXJxID0gX19pZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKIAlpZiAoIWh3aWYtPmlycSkgewogCQlwcmludGsoIiVzOiBEaXNhYmxlZCB1bmFibGUgdG8gZ2V0IElSUSAlZC5cbiIsCiAJCQlod2lmLT5uYW1lLCBvbGRfaXJxKTsKQEAgLTEzMzMsOCArMTMyNyw3IEBACiBzdGF0aWMgdm9pZCBpZGVfaW5pdF9wb3J0KGlkZV9od2lmX3QgKmh3aWYsIHVuc2lnbmVkIGludCBwb3J0LAogCQkJICBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfaW5mbyAqZCkKIHsKLQlpZiAoZC0+Y2hpcHNldCAhPSBpZGVfZXRyYXgxMDApCi0JCWh3aWYtPmNoYW5uZWwgPSBwb3J0OworCWh3aWYtPmNoYW5uZWwgPSBwb3J0OwogCiAJaWYgKGQtPmNoaXBzZXQpCiAJCWh3aWYtPmNoaXBzZXQgPSBkLT5jaGlwc2V0OwpAQCAtMTUxOSw3ICsxNTEyLDcgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKGQtPmNoaXBzZXQgIT0gaWRlX2V0cmF4MTAwICYmIChpICYgMSkgJiYgbWF0ZSkgeworCQlpZiAoKGkgJiAxKSAmJiBtYXRlKSB7CiAJCQlod2lmLT5tYXRlID0gbWF0ZTsKIAkJCW1hdGUtPm1hdGUgPSBod2lmOwogCQl9CkBAIC0xNjY1LDYgKzE2NTgsNyBAQAogCiAJaWRlX3N0ZF9pbml0X3BvcnRzKGh3LCBiYXNlLCBjdGwpOwogCWh3LT5pcnEgPSBpcnE7CisJaHctPmNoaXBzZXQgPSBkLT5jaGlwc2V0OwogCiAJaHdpZiA9IGlkZV9maW5kX3BvcnRfc2xvdChkKTsKIAlpZiAoaHdpZikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLXByb2MuYyBiL2RyaXZlcnMvaWRlL2lkZS1wcm9jLmMKaW5kZXggOGQ2YWQ4MS4uOGFmODhiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXByb2MuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtcHJvYy5jCkBAIC02Myw3ICs2Myw2IEBACiAJY2FzZSBpZGVfcG1hYzoJCW5hbWUgPSAibWFjLWlvIjsJYnJlYWs7CiAJY2FzZSBpZGVfYXUxeHh4OgluYW1lID0gImF1MXh4eCI7CWJyZWFrOwogCWNhc2UgaWRlX3BhbG0zNzEwOiAgICAgIG5hbWUgPSAicGFsbTM3MTAiOyAgICAgIGJyZWFrOwotCWNhc2UgaWRlX2V0cmF4MTAwOgluYW1lID0gImV0cmF4MTAwIjsJYnJlYWs7CiAJY2FzZSBpZGVfYWNvcm46CQluYW1lID0gImFjb3JuIjsJCWJyZWFrOwogCWRlZmF1bHQ6CQluYW1lID0gIih1bmtub3duKSI7CWJyZWFrOwogCX0KQEAgLTc3LDcgKzc2LDcgQEAKIAlpZGVfaHdpZl90CSpod2lmID0gKGlkZV9od2lmX3QgKikgZGF0YTsKIAlpbnQJCWxlbjsKIAotCWlmIChod2lmICYmIGh3aWYtPm1hdGUgJiYgaHdpZi0+bWF0ZS0+cHJlc2VudCkKKwlpZiAoaHdpZiAmJiBod2lmLT5tYXRlKQogCQlsZW4gPSBzcHJpbnRmKHBhZ2UsICIlc1xuIiwgaHdpZi0+bWF0ZS0+bmFtZSk7CiAJZWxzZQogCQlsZW4gPSBzcHJpbnRmKHBhZ2UsICIobm9uZSlcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLXRhcGUuYyBiL2RyaXZlcnMvaWRlL2lkZS10YXBlLmMKaW5kZXggMWUxZjI2My4uYTNkMjI4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXRhcGUuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCkBAIC0yNDIxLDkgKzI0MjEsMTIgQEAKIAlpZiAoaSA+PSBNQVhfSFdJRlMgKiBNQVhfRFJJVkVTKQogCQlyZXR1cm4gLUVOWElPOwogCisJbG9ja19rZXJuZWwoKTsKIAl0YXBlID0gaWRlX3RhcGVfY2hyZGV2X2dldChpKTsKLQlpZiAoIXRhcGUpCisJaWYgKCF0YXBlKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKKwl9CiAKIAlkZWJ1Z19sb2coREJHX0NIUkRFViwgIkVudGVyICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTI0ODIsMTAgKzI0ODUsMTIgQEAKIAkJCX0KIAkJfQogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dF9wdXRfdGFwZToKIAlpZGVfdGFwZV9wdXQodGFwZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5jIGIvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKaW5kZXggMGM5MDhjYS4uYWI1NDVmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKQEAgLTIyNSwxMCArMjI1LDEwIEBACiAJdTggc3RhdDsKIAogCS8qCi0JICogTGFzdCBzZWN0b3Igd2FzIHRyYW5zZmVyZWQsIHdhaXQgdW50aWwgZHJpdmUgaXMgcmVhZHkuCi0JICogVGhpcyBjYW4gdGFrZSB1cCB0byAxMCB1c2VjLCBidXQgd2Ugd2lsbCB3YWl0IG1heCAxIG1zLgorCSAqIExhc3Qgc2VjdG9yIHdhcyB0cmFuc2ZlcmVkLCB3YWl0IHVudGlsIGRldmljZSBpcyByZWFkeS4gIFRoaXMgY2FuCisJICogdGFrZSB1cCB0byA2IG1zIG9uIHNvbWUgQVRBUEkgZGV2aWNlcywgc28gd2Ugd2lsbCB3YWl0IG1heCAxMCBtcy4KIAkgKi8KLQlmb3IgKHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMTAwOyByZXRyaWVzKyspIHsKKwlmb3IgKHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMTAwMDsgcmV0cmllcysrKSB7CiAJCXN0YXQgPSBpZGVfcmVhZF9zdGF0dXMoZHJpdmUpOwogCiAJCWlmIChzdGF0ICYgQlVTWV9TVEFUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLmMgYi9kcml2ZXJzL2lkZS9pZGUuYwppbmRleCBjNzU4ZGNiLi4zMDA0MzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUuYworKysgYi9kcml2ZXJzL2lkZS9pZGUuYwpAQCAtMzE1LDEzICszMTUsMTQgQEAKIAogCUJVR19PTihpbl9pbnRlcnJ1cHQoKSk7CiAJQlVHX09OKGlycXNfZGlzYWJsZWQoKSk7Ci0JbXV0ZXhfbG9jaygmaWRlX2NmZ19tdHgpOwotCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKLQlpZiAoIWh3aWYtPnByZXNlbnQpCi0JCWdvdG8gYWJvcnQ7Ci0JX19pZGVfcG9ydF91bnJlZ2lzdGVyX2RldmljZXMoaHdpZik7Ci0JaHdpZi0+cHJlc2VudCA9IDA7CiAKKwltdXRleF9sb2NrKCZpZGVfY2ZnX210eCk7CisKKwlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CisJaWYgKGh3aWYtPnByZXNlbnQpIHsKKwkJX19pZGVfcG9ydF91bnJlZ2lzdGVyX2RldmljZXMoaHdpZik7CisJCWh3aWYtPnByZXNlbnQgPSAwOworCX0KIAlzcGluX3VubG9ja19pcnEoJmlkZV9sb2NrKTsKIAogCWlkZV9wcm9jX3VucmVnaXN0ZXJfcG9ydChod2lmKTsKQEAgLTM1MSwxNiArMzUyLDE1IEBACiAJYmxrX3VucmVnaXN0ZXJfcmVnaW9uKE1LREVWKGh3aWYtPm1ham9yLCAwKSwgTUFYX0RSSVZFUzw8UEFSVE5fQklUUyk7CiAJa2ZyZWUoaHdpZi0+c2dfdGFibGUpOwogCXVucmVnaXN0ZXJfYmxrZGV2KGh3aWYtPm1ham9yLCBod2lmLT5uYW1lKTsKLQlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CiAKIAlpZiAoaHdpZi0+ZG1hX2Jhc2UpCiAJCWlkZV9yZWxlYXNlX2RtYV9lbmdpbmUoaHdpZik7CiAKKwlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CiAJLyogcmVzdG9yZSBod2lmIGRhdGEgdG8gcHJpc3RpbmUgc3RhdHVzICovCiAJaWRlX2luaXRfcG9ydF9kYXRhKGh3aWYsIGh3aWYtPmluZGV4KTsKLQotYWJvcnQ6CiAJc3Bpbl91bmxvY2tfaXJxKCZpZGVfbG9jayk7CisKIAltdXRleF91bmxvY2soJmlkZV9jZmdfbXR4KTsKIH0KIApAQCAtMTA5NCwxMyArMTA5NCw2IEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGlkZV9idXNfdHlwZSk7CiAKLXN0YXRpYyB2b2lkIGlkZV9wb3J0X2NsYXNzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqcG9ydGRldikKLXsKLQlpZGVfaHdpZl90ICpod2lmID0gZGV2X2dldF9kcnZkYXRhKHBvcnRkZXYpOwotCi0JcHV0X2RldmljZSgmaHdpZi0+Z2VuZGV2KTsKLX0KLQogaW50IGlkZV92bGJfY2xrOwogRVhQT1JUX1NZTUJPTF9HUEwoaWRlX3ZsYl9jbGspOwogCkBAIC0xMzA1LDcgKzEyOTgsNiBAQAogCQlyZXQgPSBQVFJfRVJSKGlkZV9wb3J0X2NsYXNzKTsKIAkJZ290byBvdXRfcG9ydF9jbGFzczsKIAl9Ci0JaWRlX3BvcnRfY2xhc3MtPmRldl9yZWxlYXNlID0gaWRlX3BvcnRfY2xhc3NfcmVsZWFzZTsKIAogCWluaXRfaWRlX2RhdGEoKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvbGVnYWN5L2J1ZGRoYS5jIGIvZHJpdmVycy9pZGUvbGVnYWN5L2J1ZGRoYS5jCmluZGV4IDVjNzMwZTQuLjlhMWQyN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9idWRkaGEuYworKysgYi9kcml2ZXJzL2lkZS9sZWdhY3kvYnVkZGhhLmMKQEAgLTEzOCw2ICsxMzgsOCBAQAogCiAJaHctPmlycSA9IElSUV9BTUlHQV9QT1JUUzsKIAlody0+YWNrX2ludHIgPSBhY2tfaW50cjsKKworCWh3LT5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvbGVnYWN5L2ZhbGNvbmlkZS5jIGIvZHJpdmVycy9pZGUvbGVnYWN5L2ZhbGNvbmlkZS5jCmluZGV4IDllNDQ5YTAuLmFmMTEwMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9mYWxjb25pZGUuYworKysgYi9kcml2ZXJzL2lkZS9sZWdhY3kvZmFsY29uaWRlLmMKQEAgLTgxLDYgKzgxLDggQEAKIAogCWh3LT5pcnEgPSBJUlFfTUZQX0lERTsKIAlody0+YWNrX2ludHIgPSBOVUxMOworCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIH0KIAogICAgIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvZ2F5bGUuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCmluZGV4IGE5YzI1OTMuLmZlZDdkODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaWRlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3pvcnJvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vYW1pZ2Fody5oPgpAQCAtNjIsNyArNjMsMTAgQEAKIAkJCQkJICAgICAgIEdBWUxFX05VTV9IV0lGUy0xKQogI2RlZmluZSBHQVlMRV9IQVNfQ09OVFJPTF9SRUcJKCFpZGVfZG91YmxlcikKICNkZWZpbmUgR0FZTEVfSURFUkVHX1NJWkUJKGlkZV9kb3VibGVyID8gMHgxMDAwIDogMHgyMDAwKQorCiBpbnQgaWRlX2RvdWJsZXIgPSAwOwkvKiBzdXBwb3J0IElERSBkb3VibGVycz8gKi8KK0VYUE9SVF9TWU1CT0xfR1BMKGlkZV9kb3VibGVyKTsKKwogbW9kdWxlX3BhcmFtX25hbWVkKGRvdWJsZXIsIGlkZV9kb3VibGVyLCBib29sLCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoZG91YmxlciwgImVuYWJsZSBzdXBwb3J0IGZvciBJREUgZG91YmxlcnMiKTsKICNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JREVET1VCTEVSICovCkBAIC0xMTIsNiArMTE2LDggQEAKIAogCWh3LT5pcnEgPSBJUlFfQU1JR0FfUE9SVFM7CiAJaHctPmFja19pbnRyID0gYWNrX2ludHI7CisKKwlody0+Y2hpcHNldCA9IGlkZV9nZW5lcmljOwogfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9pZGUtY3MuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9pZGUtY3MuYwppbmRleCBhYTJlYTNkLi44ZGJmNGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9sZWdhY3kvaWRlLWNzLmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L2lkZS1jcy5jCkBAIC02MywxMSArNjMsMTEgQEAKIAogI2RlZmluZSBJTlRfTU9EVUxFX1BBUk0obiwgdikgc3RhdGljIGludCBuID0gdjsgbW9kdWxlX3BhcmFtKG4sIGludCwgMCkKIAotI2lmZGVmIFBDTUNJQV9ERUJVRwotSU5UX01PRFVMRV9QQVJNKHBjX2RlYnVnLCBQQ01DSUFfREVCVUcpOworI2lmZGVmIENPTkZJR19QQ01DSUFfREVCVUcKK0lOVF9NT0RVTEVfUEFSTShwY19kZWJ1ZywgMCk7CiAjZGVmaW5lIERFQlVHKG4sIGFyZ3MuLi4pIGlmIChwY19kZWJ1Zz4obikpIHByaW50ayhLRVJOX0RFQlVHIGFyZ3MpCi1zdGF0aWMgY2hhciAqdmVyc2lvbiA9Ci0iaWRlLWNzLmMgMS4zIDIwMDIvMTAvMjYgMDU6NDU6MzEgKERhdmlkIEhpbmRzKSI7CisvKnN0YXRpYyBjaGFyICp2ZXJzaW9uID0KKyJpZGUtY3MuYyAxLjMgMjAwMi8xMC8yNiAwNTo0NTozMSAoRGF2aWQgSGluZHMpIjsqLwogI2Vsc2UKICNkZWZpbmUgREVCVUcobiwgYXJncy4uLikKICNlbmRpZgpAQCAtMTM1LDEzICsxMzUsMTcgQEAKIHsKICAgICBpZGVfaW5mb190ICppbmZvID0gbGluay0+cHJpdjsKICAgICBpZGVfaHdpZl90ICpod2lmID0gaW5mby0+aHdpZjsKKyAgICB1bnNpZ25lZCBsb25nIGRhdGFfYWRkciwgY3RsX2FkZHI7CiAKICAgICBERUJVRygwLCAiaWRlX2RldGFjaCgweCVwKVxuIiwgbGluayk7CiAKKyAgICBkYXRhX2FkZHIgPSBod2lmLT5pb19wb3J0cy5kYXRhX2FkZHI7CisgICAgY3RsX2FkZHIgID0gaHdpZi0+aW9fcG9ydHMuY3RsX2FkZHI7CisKICAgICBpZGVfcmVsZWFzZShsaW5rKTsKIAotICAgIHJlbGVhc2VfcmVnaW9uKGh3aWYtPmlvX3BvcnRzLmN0bF9hZGRyLCAxKTsKLSAgICByZWxlYXNlX3JlZ2lvbihod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIsIDgpOworICAgIHJlbGVhc2VfcmVnaW9uKGN0bF9hZGRyLCAxKTsKKyAgICByZWxlYXNlX3JlZ2lvbihkYXRhX2FkZHIsIDgpOwogCiAgICAga2ZyZWUoaW5mbyk7CiB9IC8qIGlkZV9kZXRhY2ggKi8KQEAgLTE5NCw2ICsxOTgsMTYgQEAKICAgICBpZiAoaHdpZi0+cHJlc2VudCkKIAlyZXR1cm4gaHdpZjsKIAorICAgIC8qIHJldHJ5IHJlZ2lzdHJhdGlvbiBpbiBjYXNlIGRldmljZSBpcyBzdGlsbCBzcGlubmluZyB1cCAqLworICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisJbXNsZWVwKDEwMCk7CisJaWRlX3BvcnRfc2Nhbihod2lmKTsKKwlpZiAoaHdpZi0+cHJlc2VudCkKKwkgICAgcmV0dXJuIGh3aWY7CisgICAgfQorCisgICAgcmV0dXJuIGh3aWY7CisKIG91dF9yZWxlYXNlOgogICAgIHJlbGVhc2VfcmVnaW9uKGN0bCwgMSk7CiAgICAgcmVsZWFzZV9yZWdpb24oaW8sIDgpOwpAQCAtMjIyLDcgKzIzNiw3IEBACiAJY2lzdHBsX2NmdGFibGVfZW50cnlfdCBkZmx0OwogICAgIH0gKnN0ayA9IE5VTEw7CiAgICAgY2lzdHBsX2NmdGFibGVfZW50cnlfdCAqY2ZnOwotICAgIGludCBpLCBwYXNzLCBsYXN0X3JldCA9IDAsIGxhc3RfZm4gPSAwLCBpc19rbWUgPSAwOworICAgIGludCBwYXNzLCBsYXN0X3JldCA9IDAsIGxhc3RfZm4gPSAwLCBpc19rbWUgPSAwOwogICAgIHVuc2lnbmVkIGxvbmcgaW9fYmFzZSwgY3RsX2Jhc2U7CiAgICAgaWRlX2h3aWZfdCAqaHdpZjsKIApAQCAtMzE5LDMwICszMzMsMTUgQEAKICAgICBpZiAoaXNfa21lKQogCW91dGIoMHg4MSwgY3RsX2Jhc2UrMSk7CiAKLSAgICAvKiByZXRyeSByZWdpc3RyYXRpb24gaW4gY2FzZSBkZXZpY2UgaXMgc3RpbGwgc3Bpbm5pbmcgdXAgKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgewotCWh3aWYgPSBpZGVjc19yZWdpc3Rlcihpb19iYXNlLCBjdGxfYmFzZSwgbGluay0+aXJxLkFzc2lnbmVkSVJRLCBsaW5rKTsKLQlpZiAoaHdpZikKLQkgICAgYnJlYWs7Ci0JaWYgKGxpbmstPmlvLk51bVBvcnRzMSA9PSAweDIwKSB7CisgICAgIGh3aWYgPSBpZGVjc19yZWdpc3Rlcihpb19iYXNlLCBjdGxfYmFzZSwgbGluay0+aXJxLkFzc2lnbmVkSVJRLCBsaW5rKTsKKyAgICAgaWYgKGh3aWYgPT0gTlVMTCAmJiBsaW5rLT5pby5OdW1Qb3J0czEgPT0gMHgyMCkgewogCSAgICBvdXRiKDB4MDIsIGN0bF9iYXNlICsgMHgxMCk7CiAJICAgIGh3aWYgPSBpZGVjc19yZWdpc3Rlcihpb19iYXNlICsgMHgxMCwgY3RsX2Jhc2UgKyAweDEwLAogCQkJCSAgbGluay0+aXJxLkFzc2lnbmVkSVJRLCBsaW5rKTsKLQkgICAgaWYgKGh3aWYpIHsKLQkJaW9fYmFzZSArPSAweDEwOwotCQljdGxfYmFzZSArPSAweDEwOwotCQlicmVhazsKLQkgICAgfQotCX0KLQltc2xlZXAoMTAwKTsKICAgICB9CiAKLSAgICBpZiAoaHdpZiA9PSBOVUxMKSB7Ci0JcHJpbnRrKEtFUk5fTk9USUNFICJpZGUtY3M6IGlkZV9yZWdpc3RlcigpIGF0IDB4JTNseCAmIDB4JTNseCIKLQkgICAgICAgIiwgaXJxICV1IGZhaWxlZFxuIiwgaW9fYmFzZSwgY3RsX2Jhc2UsCi0JICAgICAgIGxpbmstPmlycS5Bc3NpZ25lZElSUSk7CisgICAgaWYgKGh3aWYgPT0gTlVMTCkKIAlnb3RvIGZhaWxlZDsKLSAgICB9CiAKICAgICBpbmZvLT5uZGV2ID0gMTsKICAgICBzcHJpbnRmKGluZm8tPm5vZGUuZGV2X25hbWUsICJoZCVjIiwgJ2EnICsgaHdpZi0+aW5kZXggKiAyKTsKQEAgLTM3Niw3ICszNzUsNyBAQAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAotdm9pZCBpZGVfcmVsZWFzZShzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluaykKK3N0YXRpYyB2b2lkIGlkZV9yZWxlYXNlKHN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rKQogewogICAgIGlkZV9pbmZvX3QgKmluZm8gPSBsaW5rLT5wcml2OwogICAgIGlkZV9od2lmX3QgKmh3aWYgPSBpbmZvLT5od2lmOwpAQCAtNDExLDYgKzQxMCw3IEBACiAJUENNQ0lBX0RFVklDRV9NQU5GX0NBUkQoMHgwMDFjLCAweDAwMDEpLAkvKiBNaXRzdWJpc2hpIENGQSAqLwogCVBDTUNJQV9ERVZJQ0VfTUFORl9DQVJEKDB4MDAzMiwgMHgwNzA0KSwKIAlQQ01DSUFfREVWSUNFX01BTkZfQ0FSRCgweDAwNDUsIDB4MDQwMSksCS8qIFNhbkRpc2sgQ0ZBICovCisJUENNQ0lBX0RFVklDRV9NQU5GX0NBUkQoMHgwMDRmLCAweDAwMDApLAkvKiBLaW5nc3RvbiAqLwogCVBDTUNJQV9ERVZJQ0VfTUFORl9DQVJEKDB4MDA5OCwgMHgwMDAwKSwJLyogVG9zaGliYSAqLwogCVBDTUNJQV9ERVZJQ0VfTUFORl9DQVJEKDB4MDBhNCwgMHgwMDJkKSwKIAlQQ01DSUFfREVWSUNFX01BTkZfQ0FSRCgweDAwY2UsIDB4MDAwMCksCS8qIFNhbXN1bmcgKi8KQEAgLTQ0MCw2ICs0NDAsNyBAQAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJJTyBEQVRBIiwgIlBDSURFIiwgMHg1NDdlNjZkYywgMHg1YzVhYjE0OSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIklPIERBVEEiLCAiUENJREVJSSIsIDB4NTQ3ZTY2ZGMsIDB4YjM2NjI2NzQpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJMT09LTUVFVCIsICJDQklERTIgICAgICAiLCAweGUzN2JlMmI1LCAweDg2NzEwNDNiKSwKKwlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiTS1TeXN0ZW1zIiwgIkNGMzAwIiwgMHg3ZWQyYWQ4NywgMHg3ZTllNzhlZSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIk0tU3lzdGVtcyIsICJDRjUwMCIsIDB4N2VkMmFkODcsIDB4N2ExMzA0NWMpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDIoIk5pbmphQVRBLSIsIDB4ZWJlMGJkNzkpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJQQ01DSUEiLCAiQ0QtUk9NIiwgMHgyODFmMWM1ZCwgMHg2NjUzNjU5MSksCkBAIC00NTAsNiArNDUxLDcgQEAKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiU01JIFZFTkRPUiIsICJTTUkgUFJPRFVDVCIsIDB4MzA4OTZjOTIsIDB4NzAzY2M1ZjYpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUT1NISUJBIiwgIk1LMjAwMU1QTCIsIDB4YjQ1ODVhMWEsIDB4MzQ4OWUwMDMpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEoIlRSQU5TQ0VORCAgICA1MTJNICAgIiwgMHhkMDkwOTQ0MyksCisJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzFHQ0Y0NSIsIDB4NzA5YjFiZjEsIDB4ZjY4YjZmMzIpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFMxR0NGODAiLCAweDcwOWIxYmYxLCAweDJhNTRkNGIxKSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiVFJBTlNDRU5EIiwgIlRTMkdDRjEyMCIsIDB4NzA5YjFiZjEsIDB4OTY5YWE0ZjIpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFM0R0NGMTIwIiwgMHg3MDliMWJmMSwgMHhmNTRhOTFjOCksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvbWFjaWRlLmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvbWFjaWRlLmMKaW5kZXggY2FhMjYzMi4uMmU4NDI5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L21hY2lkZS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9tYWNpZGUuYwpAQCAtNzgsNiArNzgsOCBAQAogCiAJaHctPmlycSA9IGlycTsKIAlody0+YWNrX2ludHIgPSBhY2tfaW50cjsKKworCWh3LT5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyICptYWNfaWRlX25hbWVbXSA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvcTQwaWRlLmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvcTQwaWRlLmMKaW5kZXggNmY1MzVkMC4uOGZmNmUyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L3E0MGlkZS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9xNDBpZGUuYwpAQCAtNzAsNiArNzAsOCBAQAogCiAJaHctPmlycSA9IGlycTsKIAlody0+YWNrX2ludHIgPSBhY2tfaW50cjsKKworCWh3LT5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiB9CiAKIHN0YXRpYyB2b2lkIHE0MGlkZV9pbnB1dF9kYXRhKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2NtZDY0MC5jIGIvZHJpdmVycy9pZGUvcGNpL2NtZDY0MC5jCmluZGV4IGFhZjM4MTAuLmIzOGExOTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL2NtZDY0MC5jCkBAIC03NDcsOSArNzQ3LDExIEBACiAKIAlpZGVfc3RkX2luaXRfcG9ydHMoJmh3WzBdLCAweDFmMCwgMHgzZjYpOwogCWh3WzBdLmlycSA9IDE0OworCWh3WzBdLmNoaXBzZXQgPSBpZGVfY21kNjQwOwogCiAJaWRlX3N0ZF9pbml0X3BvcnRzKCZod1sxXSwgMHgxNzAsIDB4Mzc2KTsKIAlod1sxXS5pcnEgPSAxNTsKKwlod1sxXS5jaGlwc2V0ID0gaWRlX2NtZDY0MDsKIAogCXByaW50ayhLRVJOX0lORk8gImNtZDY0MDogYnVnZ3kgY21kNjQwJWMgaW50ZXJmYWNlIG9uICVzLCBjb25maWc9MHglMDJ4IgogCQkJICJcbiIsICdhJyArIGNtZDY0MF9jaGlwX3ZlcnNpb24gLSAxLCBidXNfdHlwZSwgY2ZyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9kZWxraW5fY2IuYyBiL2RyaXZlcnMvaWRlL3BjaS9kZWxraW5fY2IuYwppbmRleCBiOWU0NTc5Li5hZjBmMzAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wY2kvZGVsa2luX2NiLmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL2RlbGtpbl9jYi5jCkBAIC00NywxMyArNDcsMTggQEAKIAkucXVpcmtwcm9jCQk9IGlkZV91bmRlY29kZWRfc2xhdmUsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGlkZV9wb3J0X2luZm8gZGVsa2luX2NiX3BvcnRfaW5mbyA9IHsKKwkucG9ydF9vcHMJCT0gJmRlbGtpbl9jYl9wb3J0X29wcywKKwkuaG9zdF9mbGFncwkJPSBJREVfSEZMQUdfSU9fMzJCSVQgfCBJREVfSEZMQUdfVU5NQVNLX0lSUVMgfAorCQkJCSAgSURFX0hGTEFHX05PX0RNQSwKK307CisKIHN0YXRpYyBpbnQgX19kZXZpbml0CiBkZWxraW5fY2JfcHJvYmUgKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIHsKIAl1bnNpZ25lZCBsb25nIGJhc2U7CiAJaHdfcmVnc190IGh3OwogCWlkZV9od2lmX3QgKmh3aWYgPSBOVUxMOwotCWlkZV9kcml2ZV90ICpkcml2ZTsKIAlpbnQgaSwgcmM7CiAJdTggaWR4WzRdID0geyAweGZmLCAweGZmLCAweGZmLCAweGZmIH07CiAKQEAgLTc5LDYgKzg0LDcgQEAKIAltZW1zZXQoJmh3LCAwLCBzaXplb2YoaHcpKTsKIAlpZGVfc3RkX2luaXRfcG9ydHMoJmh3LCBiYXNlICsgMHgxMCwgYmFzZSArIDB4MWUpOwogCWh3LmlycSA9IGRldi0+aXJxOworCWh3LmRldiA9ICZkZXYtPmRldjsKIAlody5jaGlwc2V0ID0gaWRlX3BjaTsJCS8qIHRoaXMgZW5hYmxlcyBJUlEgc2hhcmluZyAqLwogCiAJaHdpZiA9IGlkZV9maW5kX3BvcnQoKTsKQEAgLTg5LDI2ICs5NSwxNiBAQAogCiAJaWRlX2luaXRfcG9ydF9kYXRhKGh3aWYsIGkpOwogCWlkZV9pbml0X3BvcnRfaHcoaHdpZiwgJmh3KTsKLQlod2lmLT5wb3J0X29wcyA9ICZkZWxraW5fY2JfcG9ydF9vcHM7CiAKIAlpZHhbMF0gPSBpOwogCi0JaWRlX2RldmljZV9hZGQoaWR4LCBOVUxMKTsKLQotCWlmICghaHdpZi0+cHJlc2VudCkKLQkJZ290byBvdXRfZGlzYWJsZTsKKwlpZGVfZGV2aWNlX2FkZChpZHgsICZkZWxraW5fY2JfcG9ydF9pbmZvKTsKIAogCXBjaV9zZXRfZHJ2ZGF0YShkZXYsIGh3aWYpOwotCWh3aWYtPmRldiA9ICZkZXYtPmRldjsKLQlkcml2ZSA9ICZod2lmLT5kcml2ZXNbMF07Ci0JaWYgKGRyaXZlLT5wcmVzZW50KSB7Ci0JCWRyaXZlLT5pb18zMmJpdCA9IDE7Ci0JCWRyaXZlLT51bm1hc2sgICA9IDE7Ci0JfQorCiAJcmV0dXJuIDA7CiAKIG91dF9kaXNhYmxlOgotCXByaW50ayhLRVJOX0VSUiAiZGVsa2luX2NiOiBubyBJREUgZGV2aWNlcyBmb3VuZFxuIik7CiAJcGNpX3JlbGVhc2VfcmVnaW9ucyhkZXYpOwogCXBjaV9kaXNhYmxlX2RldmljZShkZXYpOwogCXJldHVybiAtRU5PREVWOwpAQCAtMTM5LDE0ICsxMzUsMTIgQEAKIAkucmVtb3ZlCQk9IGRlbGtpbl9jYl9yZW1vdmUsCiB9OwogCi1zdGF0aWMgaW50Ci1kZWxraW5fY2JfaW5pdCAodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGRlbGtpbl9jYl9pbml0KHZvaWQpCiB7CiAJcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJmRyaXZlcik7CiB9CiAKLXN0YXRpYyB2b2lkCi1kZWxraW5fY2JfZXhpdCAodm9pZCkKK3N0YXRpYyB2b2lkIF9fZXhpdCBkZWxraW5fY2JfZXhpdCh2b2lkKQogewogCXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmZHJpdmVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9pdDgyMTMuYyBiL2RyaXZlcnMvaWRlL3BjaS9pdDgyMTMuYwppbmRleCA5MDUzYzg3Ny4uMmI3MWJkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL2l0ODIxMy5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS9pdDgyMTMuYwpAQCAtMTg0LDggKzE4NCw3IEBACiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IGl0ODIxM19pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiB7Ci0JaWRlX3NldHVwX3BjaV9kZXZpY2UoZGV2LCAmaXQ4MjEzX2NoaXBzZXRzW2lkLT5kcml2ZXJfZGF0YV0pOwotCXJldHVybiAwOworCXJldHVybiBpZGVfc2V0dXBfcGNpX2RldmljZShkZXYsICZpdDgyMTNfY2hpcHNldHNbaWQtPmRyaXZlcl9kYXRhXSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpdDgyMTNfcGNpX3RibFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL25zODc0MTUuYyBiL2RyaXZlcnMvaWRlL3BjaS9uczg3NDE1LmMKaW5kZXggZmVjNDk1NS4uYTdhNDFiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL25zODc0MTUuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvbnM4NzQxNS5jCkBAIC0yMjUsMTAgKzIyNSw2IEBACiAJcmV0dXJuIDE7CiB9CiAKLSNpZm5kZWYgaWRlX2RlZmF1bHRfaXJxCi0jZGVmaW5lIGlkZV9kZWZhdWx0X2lycShpcnEpIDAKLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBfX2RldmluaXQgaW5pdF9od2lmX25zODc0MTUgKGlkZV9od2lmX3QgKmh3aWYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKmRldiA9IHRvX3BjaV9kZXYoaHdpZi0+ZGV2KTsKQEAgLTI4OCw3ICsyODQsNyBAQAogCX0KIAogCWlmICghdXNpbmdfaW50YSkKLQkJaHdpZi0+aXJxID0gaWRlX2RlZmF1bHRfaXJxKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcik7CisJCWh3aWYtPmlycSA9IF9faWRlX2RlZmF1bHRfaXJxKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcik7CiAJZWxzZSBpZiAoIWh3aWYtPmlycSAmJiBod2lmLT5tYXRlICYmIGh3aWYtPm1hdGUtPmlycSkKIAkJaHdpZi0+aXJxID0gaHdpZi0+bWF0ZS0+aXJxOwkvKiBzaGFyZSBJUlEgd2l0aCBtYXRlICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9vcHRpNjIxLmMgYi9kcml2ZXJzL2lkZS9wY2kvb3B0aTYyMS5jCmluZGV4IDZlOTkwODAuLjcyNWM4MDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9vcHRpNjIxLmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL29wdGk2MjEuYwpAQCAtODEsOCArODEsNiBAQAogICogMC41IGRvZXNuJ3Qgd29yay4KICAqLwogCi0jZGVmaW5lIE9QVEk2MjFfREVCVUcJCS8qIGRlZmluZSBmb3IgZGVidWcgbWVzc2FnZXMgKi8KLQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC05MiwyOCArOTAsNiBAQAogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLS8vI2RlZmluZSBPUFRJNjIxX01BWF9QSU8gMwotLyogSW4gZmFjdCwgSSBkbyBub3QgaGF2ZSBhbnkgUElPIDQgZHJpdmUKLSAqIChhZGRyZXNzOiAyNSBucywgZGF0YTogNzAgbnMsIHJlY292ZXJ5OiAzNSBucyksCi0gKiBidXQgT1BUaSA4MkM2MjEgaXMgcHJvZ3JhbW1hYmxlIGFuZCBpdCBjYW4gZG8gKG1pbmltYWwgdmFsdWVzKToKLSAqIG9uIDQwTUh6IFBDSSBidXMgKHB1bHNlIDI1IG5zKToKLSAqICBhZGRyZXNzOiAyNSBucywgZGF0YTogMjUgbnMsIHJlY292ZXJ5OiA1MCBuczsKLSAqIG9uIDIwTUh6IFBDSSBidXMgKHB1bHNlIDUwIG5zKToKLSAqICBhZGRyZXNzOiA1MCBucywgZGF0YTogNTAgbnMsIHJlY292ZXJ5OiAxMDAgbnMuCi0gKi8KLQotLyogI2RlZmluZSBSRUFEX1BSRUZFVENIIDAgKi8KLS8qIFVuY29tbWVudCBmb3IgZGlzYWJsZSByZWFkIHByZWZldGNoLgotICogVGhlcmUgaXMgc29tZSByZWFkcHJlZmV0Y2ggY2FwYXRpYmlsaXR5IGluIGhkcGFybSwKLSAqIGJ1dCB3aGVuIEkgdHlwZSBoZHBhcm0gLVAgMSAvZGV2L2hkYSwgSSBnb3QgZXJyb3JzCi0gKiBhbmQgdGlsbCByZXNldCBkcml2ZSBpcyBpbmFjY2Vzc2libGUuCi0gKiBUaGlzIChodykgcmVhZCBwcmVmZXRjaCBpcyBzYWZlIG9uIG15IGRyaXZlLgotICovCi0KLSNpZm5kZWYgUkVBRF9QUkVGRVRDSAotI2RlZmluZSBSRUFEX1BSRUZFVENIIDB4NDAgLyogcmVhZCBwcmVmZXRjaCBpcyBlbmFibGVkICovCi0jZW5kaWYgLyogZWxzZSByZWFkIHByZWZldGNoIGlzIGRpc2FibGVkICovCi0KICNkZWZpbmUgUkVBRF9SRUcgMAkvKiBpbmRleCBvZiBSZWFkIGN5Y2xlIHRpbWluZyByZWdpc3RlciAqLwogI2RlZmluZSBXUklURV9SRUcgMQkvKiBpbmRleCBvZiBXcml0ZSBjeWNsZSB0aW1pbmcgcmVnaXN0ZXIgKi8KICNkZWZpbmUgQ05UUkxfUkVHIDMJLyogaW5kZXggb2YgQ29udHJvbCByZWdpc3RlciAqLwpAQCAtMTIyLDUxICs5OCw4IEBACiAKIHN0YXRpYyBpbnQgcmVnX2Jhc2U7CiAKLSNkZWZpbmUgUElPX05PVF9FWElTVCAyNTQKLSNkZWZpbmUgUElPX0RPTlRfS05PVyAyNTUKLQogc3RhdGljIERFRklORV9TUElOTE9DSyhvcHRpNjIxX2xvY2spOwogCi0vKiB0aGVyZSBhcmUgc3RvcmVkIHBpbyBudW1iZXJzIGZyb20gb3RoZXIgY2FsbHMgb2Ygb3B0aTYyMV9zZXRfcGlvX21vZGUgKi8KLXN0YXRpYyB2b2lkIGNvbXB1dGVfcGlvcyhpZGVfZHJpdmVfdCAqZHJpdmUsIGNvbnN0IHU4IHBpbykKLS8qIFN0b3JlIHZhbHVlcyBpbnRvIGRyaXZlLT5kcml2ZV9kYXRhCi0gKglzZWNvbmRfY29udHIgLSAwIGZvciBwcmltYXJ5IGNvbnRyb2xsZXIsIDEgZm9yIHNlY29uZGFyeQotICoJc2xhdmVfZHJpdmUgLSAwIC0+IHBpbyBpcyBmb3IgbWFzdGVyLCAxIC0+IHBpbyBpcyBmb3Igc2xhdmUKLSAqCXBpbyAtIFBJTyBtb2RlIGZvciBzZWxlY3RlZCBkcml2ZSAoZm9yIG90aGVyIHdlIGRvbid0IGtub3cpCi0gKi8KLXsKLQlpbnQgZDsKLQlpZGVfaHdpZl90ICpod2lmID0gSFdJRihkcml2ZSk7Ci0KLQlkcml2ZS0+ZHJpdmVfZGF0YSA9IHBpbzsKLQotCWZvciAoZCA9IDA7IGQgPCAyOyArK2QpIHsKLQkJZHJpdmUgPSAmaHdpZi0+ZHJpdmVzW2RdOwotCQlpZiAoZHJpdmUtPnByZXNlbnQpIHsKLQkJCWlmIChkcml2ZS0+ZHJpdmVfZGF0YSA9PSBQSU9fRE9OVF9LTk9XKQotCQkJCWRyaXZlLT5kcml2ZV9kYXRhID0gaWRlX2dldF9iZXN0X3Bpb19tb2RlKGRyaXZlLCAyNTUsIDMpOwotI2lmZGVmIE9QVEk2MjFfREVCVUcKLQkJCXByaW50aygiJXM6IFNlbGVjdGVkIFBJTyBtb2RlICVkXG4iLAotCQkJCWRyaXZlLT5uYW1lLCBkcml2ZS0+ZHJpdmVfZGF0YSk7Ci0jZW5kaWYKLQkJfSBlbHNlIHsKLQkJCWRyaXZlLT5kcml2ZV9kYXRhID0gUElPX05PVF9FWElTVDsKLQkJfQotCX0KLX0KLQotc3RhdGljIGludCBjbXB0X2NsayhpbnQgdGltZSwgaW50IGJ1c19zcGVlZCkKLS8qIFJldHVybnMgKHJvdW5kZWQgdXApIHRpbWUgaW4gY2xvY2tzIGZvciB0aW1lIGluIG5zLAotICogd2l0aCBidXNfc3BlZWQgaW4gTUh6LgotICogRXhhbXBsZTogYnVzX3NwZWVkID0gNDAgTUh6LCB0aW1lID0gODAgbnMKLSAqIDEwMDAvNDAgPSAyNSBucyAoY2xrIHZhbHVlKSwKLSAqIDgwLzI1ID0gMy4yLCByb3VuZGVkIHVwIHRvIDQgKEkgaG9wZSA7LSkpLgotICogVXNlIGlkZWJ1cz14eCB0byBzZWxlY3QgcmlnaHQgZnJlcXVlbmN5LgotICovCi17Ci0JcmV0dXJuICgodGltZSpidXNfc3BlZWQrOTk5KS8xMDAwKTsKLX0KLQogLyogV3JpdGUgdmFsdWUgdG8gcmVnaXN0ZXIgcmVnLCBiYXNlIG9mIHJlZ2lzdGVyCiAgKiBpcyBhdCByZWdfYmFzZSAoMHgxZjAgcHJpbWFyeSwgMHgxNzAgc2Vjb25kYXJ5LAogICogaWYgbm90IGNoYW5nZWQgYnkgUENJIGNvbmZpZ3VyYXRpb24pLgpAQCAtMTk5LDgzICsxMzIsMjkgQEAKIAlyZXR1cm4gcmV0OwogfQogCi10eXBlZGVmIHN0cnVjdCBwaW9fY2xvY2tzX3MgewotCWludAlhZGRyZXNzX3RpbWU7CS8qIEFkZHJlc3Mgc2V0dXAgKGNsb2NrcykgKi8KLQlpbnQJZGF0YV90aW1lOwkvKiBBY3RpdmUvZGF0YSBwdWxzZSAoY2xvY2tzKSAqLwotCWludAlyZWNvdmVyeV90aW1lOwkvKiBSZWNvdmVyeSB0aW1lIChjbG9ja3MpICovCi19IHBpb19jbG9ja3NfdDsKLQotc3RhdGljIHZvaWQgY29tcHV0ZV9jbG9ja3MoaW50IHBpbywgcGlvX2Nsb2Nrc190ICpjbGtzKQotewotCWlmIChwaW8gIT0gUElPX05PVF9FWElTVCkgewotCQlpbnQgYWRyX3NldHVwLCBkYXRhX3BsczsKLQkJaW50IGJ1c19zcGVlZCA9IGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCk7Ci0KLQkJYWRyX3NldHVwID0gaWRlX3Bpb190aW1pbmdzW3Bpb10uc2V0dXBfdGltZTsKLQkJZGF0YV9wbHMgPSBpZGVfcGlvX3RpbWluZ3NbcGlvXS5hY3RpdmVfdGltZTsKLQkJY2xrcy0+YWRkcmVzc190aW1lID0gY21wdF9jbGsoYWRyX3NldHVwLCBidXNfc3BlZWQpOwotCQljbGtzLT5kYXRhX3RpbWUgPSBjbXB0X2NsayhkYXRhX3BscywgYnVzX3NwZWVkKTsKLQkJY2xrcy0+cmVjb3ZlcnlfdGltZSA9IGNtcHRfY2xrKGlkZV9waW9fdGltaW5nc1twaW9dLmN5Y2xlX3RpbWUKLQkJCS0gYWRyX3NldHVwLWRhdGFfcGxzLCBidXNfc3BlZWQpOwotCQlpZiAoY2xrcy0+YWRkcmVzc190aW1lIDwgMSkKLQkJCWNsa3MtPmFkZHJlc3NfdGltZSA9IDE7Ci0JCWlmIChjbGtzLT5hZGRyZXNzX3RpbWUgPiA0KQotCQkJY2xrcy0+YWRkcmVzc190aW1lID0gNDsKLQkJaWYgKGNsa3MtPmRhdGFfdGltZSA8IDEpCi0JCQljbGtzLT5kYXRhX3RpbWUgPSAxOwotCQlpZiAoY2xrcy0+ZGF0YV90aW1lID4gMTYpCi0JCQljbGtzLT5kYXRhX3RpbWUgPSAxNjsKLQkJaWYgKGNsa3MtPnJlY292ZXJ5X3RpbWUgPCAyKQotCQkJY2xrcy0+cmVjb3ZlcnlfdGltZSA9IDI7Ci0JCWlmIChjbGtzLT5yZWNvdmVyeV90aW1lID4gMTcpCi0JCQljbGtzLT5yZWNvdmVyeV90aW1lID0gMTc7Ci0JfSBlbHNlIHsKLQkJY2xrcy0+YWRkcmVzc190aW1lID0gMTsKLQkJY2xrcy0+ZGF0YV90aW1lID0gMTsKLQkJY2xrcy0+cmVjb3ZlcnlfdGltZSA9IDI7Ci0JCS8qIG1pbmltYWwgdmFsdWVzICovCi0JfQotfQotCiBzdGF0aWMgdm9pZCBvcHRpNjIxX3NldF9waW9fbW9kZShpZGVfZHJpdmVfdCAqZHJpdmUsIGNvbnN0IHU4IHBpbykKIHsKLQkvKiBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgZHJpdmVzIHNoYXJlIHNvbWUgcmVnaXN0ZXJzLAotCSAqIHNvIHdlIGhhdmUgdG8gcHJvZ3JhbSBib3RoIGRyaXZlcwotCSAqLworCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKKwlpZGVfZHJpdmVfdCAqcGFpciA9IGlkZV9nZXRfcGFpcmVkX2RyaXZlKGRyaXZlKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXU4IHBpbzEgPSAwLCBwaW8yID0gMDsKLQlwaW9fY2xvY2tzX3QgZmlyc3QsIHNlY29uZDsKLQlpbnQgYXgsIGRyZHk7Ci0JdTggY3ljbGUxLCBjeWNsZTIsIG1pc2M7Ci0JaWRlX2h3aWZfdCAqaHdpZiA9IEhXSUYoZHJpdmUpOworCXU4IHRpbSwgbWlzYywgYWRkcl9waW8gPSBwaW8sIGNsazsKIAotCS8qIHNldHMgZHJpdmUtPmRyaXZlX2RhdGEgZm9yIGJvdGggZHJpdmVzICovCi0JY29tcHV0ZV9waW9zKGRyaXZlLCBwaW8pOwotCXBpbzEgPSBod2lmLT5kcml2ZXNbMF0uZHJpdmVfZGF0YTsKLQlwaW8yID0gaHdpZi0+ZHJpdmVzWzFdLmRyaXZlX2RhdGE7CisJLyogRFJEWSBpcyBkZWZhdWx0IDIgKGJ5IE9QVGkgRGF0YWJvb2spICovCisJc3RhdGljIGNvbnN0IHU4IGFkZHJfdGltaW5nc1syXVs1XSA9IHsKKwkJeyAweDIwLCAweDEwLCAweDAwLCAweDAwLCAweDAwIH0sCS8qIDMzIE1IeiAqLworCQl7IDB4MTAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAgfSwJLyogMjUgTUh6ICovCisJfTsKKwlzdGF0aWMgY29uc3QgdTggZGF0YV9yZWNfdGltaW5nc1syXVs1XSA9IHsKKwkJeyAweDViLCAweDQ1LCAweDMyLCAweDIxLCAweDIwIH0sCS8qIDMzIE1IeiAqLworCQl7IDB4NDgsIDB4MzQsIDB4MjEsIDB4MTAsIDB4MTAgfQkvKiAyNSBNSHogKi8KKwl9OwogCi0JY29tcHV0ZV9jbG9ja3MocGlvMSwgJmZpcnN0KTsKLQljb21wdXRlX2Nsb2NrcyhwaW8yLCAmc2Vjb25kKTsKKwlkcml2ZS0+ZHJpdmVfZGF0YSA9IFhGRVJfUElPXzAgKyBwaW87CiAKLQkvKiBheCA9IG1heChhMSxhMikgKi8KLQlheCA9IChmaXJzdC5hZGRyZXNzX3RpbWUgPCBzZWNvbmQuYWRkcmVzc190aW1lKSA/IHNlY29uZC5hZGRyZXNzX3RpbWUgOiBmaXJzdC5hZGRyZXNzX3RpbWU7Ci0KLQlkcmR5ID0gMjsgLyogRFJEWSBpcyBkZWZhdWx0IDIgKGJ5IE9QVGkgRGF0YWJvb2spICovCi0KLQljeWNsZTEgPSAoKGZpcnN0LmRhdGFfdGltZS0xKTw8NCkgIHwgKGZpcnN0LnJlY292ZXJ5X3RpbWUtMik7Ci0JY3ljbGUyID0gKChzZWNvbmQuZGF0YV90aW1lLTEpPDw0KSB8IChzZWNvbmQucmVjb3ZlcnlfdGltZS0yKTsKLQltaXNjID0gUkVBRF9QUkVGRVRDSCB8ICgoYXgtMSk8PDQpIHwgKChkcmR5LTIpPDwxKTsKLQotI2lmZGVmIE9QVEk2MjFfREVCVUcKLQlwcmludGsoIiVzOiBtYXN0ZXI6IGFkZHJlc3M6ICVkLCBkYXRhOiAlZCwgIgotCQkicmVjb3Zlcnk6ICVkLCBkcmR5OiAlZCBbY2xrXVxuIiwKLQkJaHdpZi0+bmFtZSwgYXgsIGZpcnN0LmRhdGFfdGltZSwKLQkJZmlyc3QucmVjb3ZlcnlfdGltZSwgZHJkeSk7Ci0JcHJpbnRrKCIlczogc2xhdmU6ICBhZGRyZXNzOiAlZCwgZGF0YTogJWQsICIKLQkJInJlY292ZXJ5OiAlZCwgZHJkeTogJWQgW2Nsa11cbiIsCi0JCWh3aWYtPm5hbWUsIGF4LCBzZWNvbmQuZGF0YV90aW1lLAotCQlzZWNvbmQucmVjb3ZlcnlfdGltZSwgZHJkeSk7Ci0jZW5kaWYKKwlpZiAocGFpci0+cHJlc2VudCkgeworCQlpZiAocGFpci0+ZHJpdmVfZGF0YSAmJiBwYWlyLT5kcml2ZV9kYXRhIDwgZHJpdmUtPmRyaXZlX2RhdGEpCisJCQlhZGRyX3BpbyA9IHBhaXItPmRyaXZlX2RhdGEgLSBYRkVSX1BJT18wOworCX0KIAogCXNwaW5fbG9ja19pcnFzYXZlKCZvcHRpNjIxX2xvY2ssIGZsYWdzKTsKIApAQCAtMjg5LDI0ICsxNjgsMjEgQEAKIAkodm9pZClpbmIocmVnX2Jhc2UgKyBDTlRSTF9SRUcpOwogCS8qIGlmIHJlYWRzIDB4YzAsIG5vIGludGVyZmFjZSBleGlzdD8gKi8KIAlyZWFkX3JlZyhDTlRSTF9SRUcpOwotCS8qIHJlYWQgdmVyc2lvbiwgcHJvYmFibHkgMCAqLwotCXJlYWRfcmVnKFNUUkFQX1JFRyk7CiAKLQkvKiBwcm9ncmFtIHByaW1hcnkgZHJpdmUgKi8KLQkvKiBzZWxlY3QgSW5kZXgtMCBmb3IgUmVnaXN0ZXItQSAqLwotCXdyaXRlX3JlZygwLCBNSVNDX1JFRyk7Ci0JLyogc2V0IHJlYWQgY3ljbGUgdGltaW5ncyAqLwotCXdyaXRlX3JlZyhjeWNsZTEsIFJFQURfUkVHKTsKLQkvKiBzZXQgd3JpdGUgY3ljbGUgdGltaW5ncyAqLwotCXdyaXRlX3JlZyhjeWNsZTEsIFdSSVRFX1JFRyk7CisJLyogY2hlY2sgQ0xLIHNwZWVkICovCisJY2xrID0gcmVhZF9yZWcoU1RSQVBfUkVHKSAmIDE7CiAKLQkvKiBwcm9ncmFtIHNlY29uZGFyeSBkcml2ZSAqLwotCS8qIHNlbGVjdCBJbmRleC0xIGZvciBSZWdpc3Rlci1CICovCi0Jd3JpdGVfcmVnKDEsIE1JU0NfUkVHKTsKKwlwcmludGsoS0VSTl9JTkZPICIlczogQ0xLID0gJWQgTUh6XG4iLCBod2lmLT5uYW1lLCBjbGsgPyAyNSA6IDMzKTsKKworCXRpbSAgPSBkYXRhX3JlY190aW1pbmdzW2Nsa11bcGlvXTsKKwltaXNjID0gYWRkcl90aW1pbmdzW2Nsa11bYWRkcl9waW9dOworCisJLyogc2VsZWN0IEluZGV4LTAvMSBmb3IgUmVnaXN0ZXItQS9CICovCisJd3JpdGVfcmVnKGRyaXZlLT5zZWxlY3QuYi51bml0LCBNSVNDX1JFRyk7CiAJLyogc2V0IHJlYWQgY3ljbGUgdGltaW5ncyAqLwotCXdyaXRlX3JlZyhjeWNsZTIsIFJFQURfUkVHKTsKKwl3cml0ZV9yZWcodGltLCBSRUFEX1JFRyk7CiAJLyogc2V0IHdyaXRlIGN5Y2xlIHRpbWluZ3MgKi8KLQl3cml0ZV9yZWcoY3ljbGUyLCBXUklURV9SRUcpOworCXdyaXRlX3JlZyh0aW0sIFdSSVRFX1JFRyk7CiAKIAkvKiB1c2UgUmVnaXN0ZXItQSBmb3IgZHJpdmUgMCAqLwogCS8qIHVzZSBSZWdpc3Rlci1CIGZvciBkcml2ZSAxICovCkBAIC0zMTksNDUgKzE5NSwyNiBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm9wdGk2MjFfbG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBfX2RldmluaXQgb3B0aTYyMV9wb3J0X2luaXRfZGV2cyhpZGVfaHdpZl90ICpod2lmKQotewotCWh3aWYtPmRyaXZlc1swXS5kcml2ZV9kYXRhID0gUElPX0RPTlRfS05PVzsKLQlod2lmLT5kcml2ZXNbMV0uZHJpdmVfZGF0YSA9IFBJT19ET05UX0tOT1c7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfb3BzIG9wdGk2MjFfcG9ydF9vcHMgPSB7Ci0JLnBvcnRfaW5pdF9kZXZzCQk9IG9wdGk2MjFfcG9ydF9pbml0X2RldnMsCiAJLnNldF9waW9fbW9kZQkJPSBvcHRpNjIxX3NldF9waW9fbW9kZSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfaW5mbyBvcHRpNjIxX2NoaXBzZXRzW10gX19kZXZpbml0ZGF0YSA9IHsKLQl7CS8qIDAgKi8KLQkJLm5hbWUJCT0gIk9QVEk2MjEiLAotCQkuZW5hYmxlYml0cwk9IHsgezB4NDUsIDB4ODAsIDB4MDB9LCB7MHg0MCwgMHgwOCwgMHgwMH0gfSwKLQkJLnBvcnRfb3BzCT0gJm9wdGk2MjFfcG9ydF9vcHMsCi0JCS5ob3N0X2ZsYWdzCT0gSURFX0hGTEFHX1RSVVNUX0JJT1NfRk9SX0RNQSwKLQkJLnBpb19tYXNrCT0gQVRBX1BJTzMsCi0JCS5zd2RtYV9tYXNrCT0gQVRBX1NXRE1BMiwKLQkJLm13ZG1hX21hc2sJPSBBVEFfTVdETUEyLAotCX0sIHsJLyogMSAqLwotCQkubmFtZQkJPSAiT1BUSTYyMVgiLAotCQkuZW5hYmxlYml0cwk9IHsgezB4NDUsIDB4ODAsIDB4MDB9LCB7MHg0MCwgMHgwOCwgMHgwMH0gfSwKLQkJLnBvcnRfb3BzCT0gJm9wdGk2MjFfcG9ydF9vcHMsCi0JCS5ob3N0X2ZsYWdzCT0gSURFX0hGTEFHX1RSVVNUX0JJT1NfRk9SX0RNQSwKLQkJLnBpb19tYXNrCT0gQVRBX1BJTzMsCi0JCS5zd2RtYV9tYXNrCT0gQVRBX1NXRE1BMiwKLQkJLm13ZG1hX21hc2sJPSBBVEFfTVdETUEyLAotCX0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfaW5mbyBvcHRpNjIxX2NoaXBzZXQgX19kZXZpbml0ZGF0YSA9IHsKKwkubmFtZQkJPSAiT1BUSTYyMS9YIiwKKwkuZW5hYmxlYml0cwk9IHsgezB4NDUsIDB4ODAsIDB4MDB9LCB7MHg0MCwgMHgwOCwgMHgwMH0gfSwKKwkucG9ydF9vcHMJPSAmb3B0aTYyMV9wb3J0X29wcywKKwkuaG9zdF9mbGFncwk9IElERV9IRkxBR19OT19ETUEsCisJLnBpb19tYXNrCT0gQVRBX1BJTzQsCiB9OwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBvcHRpNjIxX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIHsKLQlyZXR1cm4gaWRlX3NldHVwX3BjaV9kZXZpY2UoZGV2LCAmb3B0aTYyMV9jaGlwc2V0c1tpZC0+ZHJpdmVyX2RhdGFdKTsKKwlyZXR1cm4gaWRlX3NldHVwX3BjaV9kZXZpY2UoZGV2LCAmb3B0aTYyMV9jaGlwc2V0KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG9wdGk2MjFfcGNpX3RibFtdID0gewogCXsgUENJX1ZERVZJQ0UoT1BUSSwgUENJX0RFVklDRV9JRF9PUFRJXzgyQzYyMSksIDAgfSwKLQl7IFBDSV9WREVWSUNFKE9QVEksIFBDSV9ERVZJQ0VfSURfT1BUSV84MkM4MjUpLCAxIH0sCisJeyBQQ0lfVkRFVklDRShPUFRJLCBQQ0lfREVWSUNFX0lEX09QVElfODJDODI1KSwgMCB9LAogCXsgMCwgfSwKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgb3B0aTYyMV9wY2lfdGJsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9zaXM1NTEzLmMgYi9kcml2ZXJzL2lkZS9wY2kvc2lzNTUxMy5jCmluZGV4IDRiMGI4NWQuLmUxMjdlYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9zaXM1NTEzLmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL3NpczU1MTMuYwpAQCAtNTY5LDYgKzU2OSwxMSBAQAogewogCXN0cnVjdCBpZGVfcG9ydF9pbmZvIGQgPSBzaXM1NTEzX2NoaXBzZXQ7CiAJdTggdWRtYV9yYXRlc1tdID0geyAweDAwLCAweDAwLCAweDA3LCAweDFmLCAweDNmLCAweDNmLCAweDdmLCAweDdmIH07CisJaW50IHJjOworCisJcmMgPSBwY2lfZW5hYmxlX2RldmljZShkZXYpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCiAJaWYgKHNpc19maW5kX2ZhbWlseShkZXYpID09IDApCiAJCXJldHVybiAtRU5PVFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wcGMvbXBjOHh4LmMgYi9kcml2ZXJzL2lkZS9wcGMvbXBjOHh4LmMKaW5kZXggZjBlNjM4ZC4uMjM2ZjljMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcHBjL21wYzh4eC5jCisrKyBiL2RyaXZlcnMvaWRlL3BwYy9tcGM4eHguYwpAQCAtMzAzLDYgKzMwMyw4IEBACiAJcGNtcC0+cGNtY19wZXIgPSAweDEwMDAwMCA+PiAoMTYgKiBfc2xvdF8pOwogI2VuZGlmCS8qIENPTkZJR19JREVfOHh4X1BDQ0FSRCAqLwogCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKKwogCXJldHVybiAwOwogfQogI2VuZGlmIC8qIENPTkZJR19JREVfOHh4X1BDQ0FSRCB8fCBDT05GSUdfSURFXzh4eF9ESVJFQ1QgKi8KQEAgLTM3Nyw2ICszNzksOCBAQAogCSgoaW1tYXBfdCAqKSBJTUFQX0FERFIpLT5pbV9zaXVfY29uZi5zY19zaWVsIHw9CiAJCQkoMHg4MDAwMDAwMCA+PiBpb3BvcnRfZHNjW2RhdGFfcG9ydF0uaXJxKTsKIAorCWh3LT5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CisKIAlyZXR1cm4gMDsKIH0KICNlbmRpZgkvKiBDT05GSUdfSURFXzh4eF9ESVJFQ1QgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BwYy9wbWFjLmMgYi9kcml2ZXJzL2lkZS9wcGMvcG1hYy5jCmluZGV4IDQ4YWEwMTkuLmJhMmQ1ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BwYy9wbWFjLmMKKysrIGIvZHJpdmVycy9pZGUvcHBjL3BtYWMuYwpAQCAtNTksNyArNTksNiBAQAogCWludAkJCQlpcnE7CiAJaW50CQkJCWtpbmQ7CiAJaW50CQkJCWFhcGxfYnVzX2lkOwotCXVuc2lnbmVkCQkJY2FibGVfODAgOiAxOwogCXVuc2lnbmVkCQkJbWVkaWFiYXkgOiAxOwogCXVuc2lnbmVkCQkJYnJva2VuX2RtYSA6IDE7CiAJdW5zaWduZWQJCQlicm9rZW5fZG1hX3dhcm4gOiAxOwpAQCAtOTE4LDEwICs5MTcsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHU4IHBtYWNfaWRlX2NhYmxlX2RldGVjdChpZGVfaHdpZl90ICpod2lmKQoreworCXBtYWNfaWRlX2h3aWZfdCAqcG1pZiA9IChwbWFjX2lkZV9od2lmX3QgKilpZGVfZ2V0X2h3aWZkYXRhKGh3aWYpOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwbWlmLT5ub2RlOworCWNvbnN0IGNoYXIgKmNhYmxlID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiY2FibGUtdHlwZSIsIE5VTEwpOworCisJLyogR2V0IGNhYmxlIHR5cGUgZnJvbSBkZXZpY2UtdHJlZS4gKi8KKwlpZiAoY2FibGUgJiYgIXN0cm5jbXAoY2FibGUsICI4MC0iLCAzKSkKKwkJcmV0dXJuIEFUQV9DQkxfUEFUQTgwOworCisJLyoKKwkgKiBHNSdzIHNlZW0gdG8gaGF2ZSBpbmNvcnJlY3QgY2FibGUgdHlwZSBpbiBkZXZpY2UtdHJlZS4KKwkgKiBMZXQncyBhc3N1bWUgdGhleSBoYXZlIGEgODAgY29uZHVjdG9yIGNhYmxlLCB0aGlzIHNlZW0KKwkgKiB0byBiZSBhbHdheXMgdGhlIGNhc2UgdW5sZXNzIHRoZSB1c2VyIG11Y2tlZCBhcm91bmQuCisJICovCisJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiSzItVUFUQSIpIHx8CisJICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAic2hhc3RhLWF0YSIpKQorCQlyZXR1cm4gQVRBX0NCTF9QQVRBODA7CisKKwlyZXR1cm4gQVRBX0NCTF9QQVRBNDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfb3BzIHBtYWNfaWRlX2F0YTZfcG9ydF9vcHMgPSB7CiAJLnNldF9waW9fbW9kZQkJPSBwbWFjX2lkZV9zZXRfcGlvX21vZGUsCiAJLnNldF9kbWFfbW9kZQkJPSBwbWFjX2lkZV9zZXRfZG1hX21vZGUsCiAJLnNlbGVjdHByb2MJCT0gcG1hY19pZGVfa2F1YWlfc2VsZWN0cHJvYywKKwkuY2FibGVfZGV0ZWN0CQk9IHBtYWNfaWRlX2NhYmxlX2RldGVjdCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfb3BzIHBtYWNfaWRlX2F0YTRfcG9ydF9vcHMgPSB7CisJLnNldF9waW9fbW9kZQkJPSBwbWFjX2lkZV9zZXRfcGlvX21vZGUsCisJLnNldF9kbWFfbW9kZQkJPSBwbWFjX2lkZV9zZXRfZG1hX21vZGUsCisJLnNlbGVjdHByb2MJCT0gcG1hY19pZGVfc2VsZWN0cHJvYywKKwkuY2FibGVfZGV0ZWN0CQk9IHBtYWNfaWRlX2NhYmxlX2RldGVjdCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfb3BzIHBtYWNfaWRlX3BvcnRfb3BzID0gewpAQCAtOTQ5LDEwICs5NzgsNyBAQAogCiAvKgogICogU2V0dXAsIHJlZ2lzdGVyICYgcHJvYmUgYW4gSURFIGNoYW5uZWwgZHJpdmVuIGJ5IHRoaXMgZHJpdmVyLCB0aGlzIGlzCi0gKiBjYWxsZWQgYnkgb25lIG9mIHRoZSAyIHByb2JlIGZ1bmN0aW9ucyAobWFjaW8gb3IgUENJKS4gTm90ZSB0aGF0IGEgY2hhbm5lbAotICogdGhhdCBlbmRzIHVwIGJlZWluZyBmcmVlIG9mIGFueSBkZXZpY2UgaXMgbm90IGtlcHQgYXJvdW5kIGJ5IHRoaXMgZHJpdmVyCi0gKiAoaXQgaXMga2VwdCBpbiAyLjQpLiBUaGlzIGludHJvZHVjZSBhbiBpbnRlcmZhY2UgbnVtYmVyaW5nIGNoYW5nZSBvbiBzb21lCi0gKiByYXJlIG1hY2hpbmVzIHVuZm9ydHVuYXRlbHksIGJ1dCBpdCdzIGJldHRlciB0aGlzIHdheS4KKyAqIGNhbGxlZCBieSBvbmUgb2YgdGhlIDIgcHJvYmUgZnVuY3Rpb25zIChtYWNpbyBvciBQQ0kpLgogICovCiBzdGF0aWMgaW50IF9fZGV2aW5pdAogcG1hY19pZGVfc2V0dXBfZGV2aWNlKHBtYWNfaWRlX2h3aWZfdCAqcG1pZiwgaWRlX2h3aWZfdCAqaHdpZiwgaHdfcmVnc190ICpodykKQEAgLTk2Miw3ICs5ODgsNiBAQAogCXU4IGlkeFs0XSA9IHsgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiB9OwogCXN0cnVjdCBpZGVfcG9ydF9pbmZvIGQgPSBwbWFjX3BvcnRfaW5mbzsKIAotCXBtaWYtPmNhYmxlXzgwID0gMDsKIAlwbWlmLT5icm9rZW5fZG1hID0gcG1pZi0+YnJva2VuX2RtYV93YXJuID0gMDsKIAlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzaGFzdGEtYXRhIikpIHsKIAkJcG1pZi0+a2luZCA9IGNvbnRyb2xsZXJfc2hfYXRhNjsKQEAgLTk3OSw2ICsxMDA0LDcgQEAKIAl9IGVsc2UgaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAia2V5bGFyZ28tYXRhIikpIHsKIAkJaWYgKHN0cmNtcChucC0+bmFtZSwgImF0YS00IikgPT0gMCkgewogCQkJcG1pZi0+a2luZCA9IGNvbnRyb2xsZXJfa2xfYXRhNDsKKwkJCWQucG9ydF9vcHMgPSAmcG1hY19pZGVfYXRhNF9wb3J0X29wczsKIAkJCWQudWRtYV9tYXNrID0gQVRBX1VETUE0OwogCQl9IGVsc2UKIAkJCXBtaWYtPmtpbmQgPSBjb250cm9sbGVyX2tsX2F0YTM7CkBAIC05OTIsMjIgKzEwMTgsNiBAQAogCWJpZHAgPSBvZl9nZXRfcHJvcGVydHkobnAsICJBQVBMLGJ1cy1pZCIsIE5VTEwpOwogCXBtaWYtPmFhcGxfYnVzX2lkID0gIGJpZHAgPyAqYmlkcCA6IDA7CiAKLQkvKiBHZXQgY2FibGUgdHlwZSBmcm9tIGRldmljZS10cmVlICovCi0JaWYgKHBtaWYtPmtpbmQgPT0gY29udHJvbGxlcl9rbF9hdGE0IHx8IHBtaWYtPmtpbmQgPT0gY29udHJvbGxlcl91bl9hdGE2Ci0JICAgIHx8IHBtaWYtPmtpbmQgPT0gY29udHJvbGxlcl9rMl9hdGE2Ci0JICAgIHx8IHBtaWYtPmtpbmQgPT0gY29udHJvbGxlcl9zaF9hdGE2KSB7Ci0JCWNvbnN0IGNoYXIqIGNhYmxlID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiY2FibGUtdHlwZSIsIE5VTEwpOwotCQlpZiAoY2FibGUgJiYgIXN0cm5jbXAoY2FibGUsICI4MC0iLCAzKSkKLQkJCXBtaWYtPmNhYmxlXzgwID0gMTsKLQl9Ci0JLyogRzUncyBzZWVtIHRvIGhhdmUgaW5jb3JyZWN0IGNhYmxlIHR5cGUgaW4gZGV2aWNlLXRyZWUuIExldCdzIGFzc3VtZQotCSAqIHRoZXkgaGF2ZSBhIDgwIGNvbmR1Y3RvciBjYWJsZSwgdGhpcyBzZWVtIHRvIGJlIGFsd2F5cyB0aGUgY2FzZSB1bmxlc3MKLQkgKiB0aGUgdXNlciBtdWNrZWQgYXJvdW5kCi0JICovCi0JaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiSzItVUFUQSIpIHx8Ci0JICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAic2hhc3RhLWF0YSIpKQotCQlwbWlmLT5jYWJsZV84MCA9IDE7Ci0KIAkvKiBPbiBLYXVhaS10eXBlIGNvbnRyb2xsZXJzLCB3ZSBtYWtlIHN1cmUgdGhlIEZDUiBpcyBjb3JyZWN0ICovCiAJaWYgKHBtaWYtPmthdWFpX2ZjcikKIAkJd3JpdGVsKEtBVUFJX0ZDUl9VQVRBX01BR0lDIHwKQEAgLTEwNTMsNyArMTA2Myw2IEBACiAKIAlod2lmLT5od2lmX2RhdGEgPSBwbWlmOwogCWlkZV9pbml0X3BvcnRfaHcoaHdpZiwgaHcpOwotCWh3aWYtPmNibCA9IHBtaWYtPmNhYmxlXzgwID8gQVRBX0NCTF9QQVRBODAgOiBBVEFfQ0JMX1BBVEE0MDsKIAogCXByaW50ayhLRVJOX0lORk8gImlkZSVkOiBGb3VuZCBBcHBsZSAlcyBjb250cm9sbGVyLCBidXMgSUQgJWQlcywgaXJxICVkXG4iLAogCSAgICAgICBod2lmLT5pbmRleCwgbW9kZWxfbmFtZVtwbWlmLT5raW5kXSwgcG1pZi0+YWFwbF9idXNfaWQsCkBAIC0xMDcwLDExICsxMDc5LDYgQEAKIAkJfQogCX0KIAotI2lmZGVmIENPTkZJR19CTEtfREVWX0lERURNQV9QTUFDCi0JaWYgKHBtaWYtPmNhYmxlXzgwID09IDApCi0JCWQudWRtYV9tYXNrICY9IEFUQV9VRE1BMjsKLSNlbmRpZgotCiAJaWR4WzBdID0gaHdpZi0+aW5kZXg7CiAKIAlpZGVfZGV2aWNlX2FkZChpZHgsICZkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWVlZTEzOTQvS2NvbmZpZyBiL2RyaXZlcnMvaWVlZTEzOTQvS2NvbmZpZwppbmRleCA1NDU2NjNlLi45NWY0NWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2llZWUxMzk0L0tjb25maWcKKysrIGIvZHJpdmVycy9pZWVlMTM5NC9LY29uZmlnCkBAIC00LDcgKzQsNyBAQAogc291cmNlICJkcml2ZXJzL2ZpcmV3aXJlL0tjb25maWciCiAKIGNvbmZpZyBJRUVFMTM5NAotCXRyaXN0YXRlICJJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0IgorCXRyaXN0YXRlICJTdGFibGUgRmlyZVdpcmUgc3RhY2siCiAJZGVwZW5kcyBvbiBQQ0kgfHwgQlJPS0VOCiAJaGVscAogCSAgSUVFRSAxMzk0IGRlc2NyaWJlcyBhIGhpZ2ggcGVyZm9ybWFuY2Ugc2VyaWFsIGJ1cywgd2hpY2ggaXMgYWxzbwpAQCAtMTksMzAgKzE5LDQ1IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBzYXkgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpZWVlMTM5NC4KIAotY29tbWVudCAiU3Vic3lzdGVtIE9wdGlvbnMiCi0JZGVwZW5kcyBvbiBJRUVFMTM5NAotCi1jb25maWcgSUVFRTEzOTRfVkVSQk9TRURFQlVHCi0JYm9vbCAiRXhjZXNzaXZlIGRlYnVnZ2luZyBvdXRwdXQiCi0JZGVwZW5kcyBvbiBJRUVFMTM5NAorY29uZmlnIElFRUUxMzk0X09IQ0kxMzk0CisJdHJpc3RhdGUgIk9IQ0ktMTM5NCBjb250cm9sbGVycyIKKwlkZXBlbmRzIG9uIFBDSSAmJiBJRUVFMTM5NAogCWhlbHAKLQkgIElmIHlvdSBzYXkgWSBoZXJlLCB5b3Ugd2lsbCBnZXQgdmVyeSB2ZXJib3NlIGRlYnVnZ2luZyBsb2dzIGZyb20KLQkgIHRoZSBzdWJzeXN0ZW0gd2hpY2ggaW5jbHVkZXMgYSBkdW1wIG9mIHRoZSBoZWFkZXIgb2YgZXZlcnkgc2VudAotCSAgYW5kIHJlY2VpdmVkIHBhY2tldC4gIFRoaXMgY2FuIGFtb3VudCB0byBhIGhpZ2ggYW1vdW50IG9mIGRhdGEKLQkgIGNvbGxlY3RlZCBpbiBhIHZlcnkgc2hvcnQgdGltZSB3aGljaCBpcyB1c3VhbGx5IGFsc28gc2F2ZWQgdG8KLQkgIGRpc2sgYnkgdGhlIHN5c3RlbSBsb2dnaW5nIGRhZW1vbnMuCisJICBFbmFibGUgdGhpcyBkcml2ZXIgaWYgeW91IGhhdmUgYW4gSUVFRSAxMzk0IGNvbnRyb2xsZXIgYmFzZWQgb24gdGhlCisJICBPSENJLTEzOTQgc3BlY2lmaWNhdGlvbi4gVGhlIGN1cnJlbnQgZHJpdmVyIGlzIG9ubHkgdGVzdGVkIHdpdGggT0hDSQorCSAgY2hpcHNldHMgbWFkZSBieSBUZXhhcyBJbnN0cnVtZW50cyBhbmQgTkVDLiBNb3N0IHRoaXJkLXBhcnR5IHZlbmRvcnMKKwkgIHVzZSBvbmUgb2YgdGhlc2UgY2hpcHNldHMuICBJdCBzaG91bGQgd29yayB3aXRoIGFueSBPSENJLTEzOTQKKwkgIGNvbXBsaWFudCBjYXJkLCBob3dldmVyLgogCi0JICBTYXkgWSBpZiB5b3UgcmVhbGx5IHdhbnQgb3IgbmVlZCB0aGUgZGVidWdnaW5nIG91dHB1dCwgZXZlcnlvbmUKLQkgIGVsc2Ugc2F5cyBOLgorCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgc2F5IE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgb2hjaTEzOTQuCiAKLWNvbW1lbnQgIkNvbnRyb2xsZXJzIgotCWRlcGVuZHMgb24gSUVFRTEzOTQKKwkgIE5PVEU6CiAKLWNvbW1lbnQgIlRleGFzIEluc3RydW1lbnRzIFBDSUx5bnggcmVxdWlyZXMgSTJDIgorCSAgWW91IHNob3VsZCBvbmx5IGJ1aWxkIGVpdGhlciBvaGNpMTM5NCBvciB0aGUgbmV3IGZpcmV3aXJlLW9oY2kgZHJpdmVyLAorCSAgYnV0IG5vdCBib3RoLiAgSWYgeW91IG5ldmVydGhlbGVzcyB3YW50IHRvIGluc3RhbGwgYm90aCwgeW91IHNob3VsZAorCSAgY29uZmlndXJlIHRoZW0gb25seSBhcyBtb2R1bGVzIGFuZCBibGFja2xpc3QgdGhlIGRyaXZlcihzKSB3aGljaCB5b3UKKwkgIGRvbid0IHdhbnQgdG8gaGF2ZSBhdXRvLWxvYWRlZC4gIEFkZCBlaXRoZXIKKworCSAgICAgIGJsYWNrbGlzdCBmaXJld2lyZS1vaGNpCisJICBvcgorCSAgICAgIGJsYWNrbGlzdCBvaGNpMTM5NAorCSAgICAgIGJsYWNrbGlzdCB2aWRlbzEzOTQKKwkgICAgICBibGFja2xpc3QgZHYxMzk0CisKKwkgIHRvIC9ldGMvbW9kcHJvYmUuY29uZiBvciAvZXRjL21vZHByb2JlLmQvKiBhbmQgdXBkYXRlIG1vZHByb2JlLmNvbmYKKwkgIGRlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi4gIFRoZSBsYXR0ZXIgdHdvIG1vZHVsZXMgc2hvdWxkIGJlCisJICBibGFja2xpc3RlZCB0b2dldGhlciB3aXRoIG9oY2kxMzk0IGJlY2F1c2UgdGhleSBkZXBlbmQgb24gb2hjaTEzOTQuCisKKwkgIElmIHlvdSBoYXZlIGFuIG9sZCBtb2Rwcm9iZSB3aGljaCBkb2Vzbid0IGltcGxlbWVudCB0aGUgYmxhY2tsaXN0CisJICBkaXJlY3RpdmUsIHVzZSAiaW5zdGFsbCBtb2R1bGVuYW1lIC9iaW4vdHJ1ZSIgZm9yIHRoZSBtb2R1bGVzIHRvIGJlCisJICBibGFja2xpc3RlZC4KKworY29tbWVudCAiUENJTHlueCBjb250cm9sbGVyIHJlcXVpcmVzIEkyQyIKIAlkZXBlbmRzIG9uIElFRUUxMzk0ICYmIEkyQz1uCiAKIGNvbmZpZyBJRUVFMTM5NF9QQ0lMWU5YCi0JdHJpc3RhdGUgIlRleGFzIEluc3RydW1lbnRzIFBDSUx5bnggc3VwcG9ydCIKKwl0cmlzdGF0ZSAiUENJTHlueCBjb250cm9sbGVyIgogCWRlcGVuZHMgb24gUENJICYmIElFRUUxMzk0ICYmIEkyQwogCXNlbGVjdCBJMkNfQUxHT0JJVAogCWhlbHAKQEAgLTU3LDM1ICs3MiwxMSBAQAogCSAgUG93ZXJNYWNzIEczIEImVyBjb250YWluIHRoZSBQQ0lMeW54IGNvbnRyb2xsZXIuICBUaGVyZWZvcmUKIAkgIGFsbW9zdCBldmVyeWJvZHkgY2FuIHNheSBOIGhlcmUuCiAKLWNvbmZpZyBJRUVFMTM5NF9PSENJMTM5NAotCXRyaXN0YXRlICJPSENJLTEzOTQgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBDSSAmJiBJRUVFMTM5NAotCWhlbHAKLQkgIEVuYWJsZSB0aGlzIGRyaXZlciBpZiB5b3UgaGF2ZSBhbiBJRUVFIDEzOTQgY29udHJvbGxlciBiYXNlZCBvbiB0aGUKLQkgIE9IQ0ktMTM5NCBzcGVjaWZpY2F0aW9uLiBUaGUgY3VycmVudCBkcml2ZXIgaXMgb25seSB0ZXN0ZWQgd2l0aCBPSENJCi0JICBjaGlwc2V0cyBtYWRlIGJ5IFRleGFzIEluc3RydW1lbnRzIGFuZCBORUMuIE1vc3QgdGhpcmQtcGFydHkgdmVuZG9ycwotCSAgdXNlIG9uZSBvZiB0aGVzZSBjaGlwc2V0cy4gIEl0IHNob3VsZCB3b3JrIHdpdGggYW55IE9IQ0ktMTM5NAotCSAgY29tcGxpYW50IGNhcmQsIGhvd2V2ZXIuCi0KLQkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIG9oY2kxMzk0LgotCi1jb21tZW50ICJQcm90b2NvbHMiCi0JZGVwZW5kcyBvbiBJRUVFMTM5NAotCi1jb25maWcgSUVFRTEzOTRfVklERU8xMzk0Ci0JdHJpc3RhdGUgIk9IQ0ktMTM5NCBWaWRlbyBzdXBwb3J0IgotCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgSUVFRTEzOTRfT0hDSTEzOTQKLQloZWxwCi0JICBUaGlzIG9wdGlvbiBlbmFibGVzIHZpZGVvIGRldmljZSB1c2FnZSBmb3IgT0hDSS0xMzk0IGNhcmRzLiAgRW5hYmxlCi0JICB0aGlzIG9wdGlvbiBvbmx5IGlmIHlvdSBoYXZlIGFuIElFRUUgMTM5NCB2aWRlbyBkZXZpY2UgY29ubmVjdGVkIHRvCi0JICBhbiBPSENJLTEzOTQgY2FyZC4KLQogY29tbWVudCAiU0JQLTIgc3VwcG9ydCAoZm9yIHN0b3JhZ2UgZGV2aWNlcykgcmVxdWlyZXMgU0NTSSIKIAlkZXBlbmRzIG9uIElFRUUxMzk0ICYmIFNDU0k9bgogCiBjb25maWcgSUVFRTEzOTRfU0JQMgotCXRyaXN0YXRlICJTQlAtMiBzdXBwb3J0IChIYXJkZGlza3MgZXRjLikiCisJdHJpc3RhdGUgIlN0b3JhZ2UgZGV2aWNlcyAoU0JQLTIgcHJvdG9jb2wpIgogCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgU0NTSQogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgeW91IHRvIHVzZSBTQlAtMiBkZXZpY2VzIGNvbm5lY3RlZCB0byBhbiBJRUVFCkBAIC0xMjcsMjQgKzExOCw0NyBAQAogCiAJICBUaGUgbW9kdWxlIGlzIGNhbGxlZCBldGgxMzk0IGFsdGhvdWdoIGl0IGRvZXMgbm90IGVtdWxhdGUgRXRoZXJuZXQuCiAKK2NvbmZpZyBJRUVFMTM5NF9SQVdJTworCXRyaXN0YXRlICJyYXcxMzk0IHVzZXJzcGFjZSBpbnRlcmZhY2UiCisJZGVwZW5kcyBvbiBJRUVFMTM5NAorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgdGhlIHJhdzEzOTQgZGV2aWNlIGZpbGUgd2hpY2ggZW5hYmxlcworCSAgZGlyZWN0IGNvbW11bmljYXRpb24gb2YgdXNlciBwcm9ncmFtcyB3aXRoIElFRUUgMTM5NCBkZXZpY2VzCisJICAoaXNvY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cykuICBBbG1vc3QgYWxsIGFwcGxpY2F0aW9uIHByb2dyYW1zCisJICB3aGljaCBhY2Nlc3MgRmlyZVdpcmUgcmVxdWlyZSB0aGlzIG9wdGlvbi4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgc2F5IE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlCisJICBjYWxsZWQgcmF3MTM5NC4KKworY29uZmlnIElFRUUxMzk0X1ZJREVPMTM5NAorCXRyaXN0YXRlICJ2aWRlbzEzOTQgdXNlcnNwYWNlIGludGVyZmFjZSIKKwlkZXBlbmRzIG9uIElFRUUxMzk0ICYmIElFRUUxMzk0X09IQ0kxMzk0CisJaGVscAorCSAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciB0aGUgdmlkZW8xMzk0IGRldmljZSBmaWxlcyB3aGljaCBlbmFibGUKKwkgIGlzb2Nocm9ub3VzIGNvbW11bmljYXRpb24gb2YgdXNlciBwcm9ncmFtcyB3aXRoIElFRUUgMTM5NCBkZXZpY2VzLAorCSAgZXNwZWNpYWxseSB2aWRlbyBjYXB0dXJlIG9yIGV4cG9ydC4gIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgYnkgYWxsCisJICBsaWJkYzEzOTQgYmFzZWQgcHJvZ3JhbXMgYW5kIGJ5IHNldmVyYWwgb3RoZXIgcHJvZ3JhbXMsIGluIGFkZGl0aW9uIHRvCisJICB0aGUgcmF3MTM5NCBpbnRlcmZhY2UuICBJdCBpcyBnZW5lcmFsbHkgbm90IHJlcXVpcmVkIGZvciBEViBjYXB0dXJlLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBzYXkgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUKKwkgIGNhbGxlZCB2aWRlbzEzOTQuCisKIGNvbmZpZyBJRUVFMTM5NF9EVjEzOTQKLQl0cmlzdGF0ZSAiT0hDSS1EViBJL08gc3VwcG9ydCAoZGVwcmVjYXRlZCkiCisJdHJpc3RhdGUgImR2MTM5NCB1c2Vyc3BhY2UgaW50ZXJmYWNlIChkZXByZWNhdGVkKSIKIAlkZXBlbmRzIG9uIElFRUUxMzk0ICYmIElFRUUxMzk0X09IQ0kxMzk0CiAJaGVscAogCSAgVGhlIGR2MTM5NCBkcml2ZXIgaXMgdW5zdXBwb3J0ZWQgYW5kIG1heSBiZSByZW1vdmVkIGZyb20gTGludXggaW4gYQogCSAgZnV0dXJlIHJlbGVhc2UuICBJdHMgZnVuY3Rpb25hbGl0eSBpcyBub3cgcHJvdmlkZWQgYnkgcmF3MTM5NCB0b2dldGhlcgogCSAgd2l0aCBsaWJyYXJpZXMgc3VjaCBhcyBsaWJpZWM2MTg4My4KIAotY29uZmlnIElFRUUxMzk0X1JBV0lPCi0JdHJpc3RhdGUgIlJhdyBJRUVFMTM5NCBJL08gc3VwcG9ydCIKK2NvbmZpZyBJRUVFMTM5NF9WRVJCT1NFREVCVUcKKwlib29sICJFeGNlc3NpdmUgZGVidWdnaW5nIG91dHB1dCIKIAlkZXBlbmRzIG9uIElFRUUxMzk0CiAJaGVscAotCSAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciB0aGUgcmF3MTM5NCBkZXZpY2UgZmlsZSB3aGljaCBlbmFibGVzCi0JICBkaXJlY3QgY29tbXVuaWNhdGlvbiBvZiB1c2VyIHByb2dyYW1zIHdpdGggdGhlIElFRUUgMTM5NCBidXMgYW5kIHRodXMKLQkgIHdpdGggdGhlIGF0dGFjaGVkIHBlcmlwaGVyYWxzLiAgQWxtb3N0IGFsbCBhcHBsaWNhdGlvbiBwcm9ncmFtcyB3aGljaAotCSAgYWNjZXNzIEZpcmVXaXJlIHJlcXVpcmUgdGhpcyBvcHRpb24uCisJICBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IHdpbGwgZ2V0IHZlcnkgdmVyYm9zZSBkZWJ1Z2dpbmcgbG9ncyBmcm9tIHRoZQorCSAgaWVlZTEzOTQgZHJpdmVycywgaW5jbHVkaW5nIHNlbnQgYW5kIHJlY2VpdmVkIHBhY2tldCBoZWFkZXJzLiAgVGhpcworCSAgd2lsbCBxdWlja2x5IHJlc3VsdCBpbiBsYXJnZSBhbW91bnRzIG9mIGRhdGEgc2VudCB0byB0aGUgc3lzdGVtIGxvZy4KIAotCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgc2F5IE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlCi0JICBjYWxsZWQgcmF3MTM5NC4KKwkgIFNheSBZIGlmIHlvdSByZWFsbHkgbmVlZCB0aGUgZGVidWdnaW5nIG91dHB1dC4gIEV2ZXJ5b25lIGVsc2Ugc2F5cyBOLgogCiBlbmRtZW51CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMKaW5kZXggNzgxZWE1OS4uMDlhMmJlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYwpAQCAtNCwyOCArNCwzMyBAQAogICogQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUsIE1lbGxhbm94IFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChjKSAyMDA1IEludGVsIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpY2Vuc2VzOgorICogVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdG8geW91IHVuZGVyIGEgY2hvaWNlIG9mIG9uZSBvZiB0d28KKyAqIGxpY2Vuc2VzLiAgWW91IG1heSBjaG9vc2UgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyLCBhdmFpbGFibGUgZnJvbSB0aGUgZmlsZQorICogQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZSwgb3IgdGhlCisgKiBPcGVuSUIub3JnIEJTRCBsaWNlbnNlIGJlbG93OgogICoKLSAqIDEpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkNvbW1vbiBQdWJsaWMgTGljZW5zZSAxLjAiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9jcGwucGhwLgorICogICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKKyAqICAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcKKyAqICAgICBjb25kaXRpb25zIGFyZSBtZXQ6CiAgKgotICogMikgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiVGhlIEJTRCBMaWNlbnNlIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIuCiAgKgotICogMykgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyIiBhCi0gKiAgICBjb3B5IG9mIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBMaWNlbnNlZSBoYXMgdGhlIHJpZ2h0IHRvIGNob29zZSBvbmUgb2YgdGhlIGFib3ZlIGxpY2Vuc2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UgYW5kIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSBib3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KQEAgLTEwMCw2ICsxMDUsNyBAQAogCW1lbWNweShkZXZfYWRkci0+YnJvYWRjYXN0LCBkZXYtPmJyb2FkY2FzdCwgTUFYX0FERFJfTEVOKTsKIAlpZiAoZHN0X2Rldl9hZGRyKQogCQltZW1jcHkoZGV2X2FkZHItPmRzdF9kZXZfYWRkciwgZHN0X2Rldl9hZGRyLCBNQVhfQUREUl9MRU4pOworCWRldl9hZGRyLT5zcmNfZGV2ID0gZGV2OwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChyZG1hX2NvcHlfYWRkcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZ2VudC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWdlbnQuaAppbmRleCBmYjllZDE0Li42NjY5Mjg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZ2VudC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FnZW50LmgKQEAgLTMyLDggKzMyLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGFnZW50LmggMTM4OSAyMDA0LTEyLTI3IDIyOjU2OjQ3WiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgX19BR0VOVF9IXwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY2FjaGUuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NhY2hlLmMKaW5kZXggZTg1ZjcwMS4uNjg4ODM1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY2FjaGUuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBjYWNoZS5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY20uYwppbmRleCBhNDdmZTY0Li41NTczOGVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGNtLmMgNDMxMSAyMDA1LTEyLTA1IDE4OjQyOjAxWiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYwppbmRleCA2NzFmMTM3Li5hZTExZDVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYwpAQCAtNCwyOSArNCwzMyBAQAogICogQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUsIE1lbGxhbm94IFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDYgSW50ZWwgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLSAqIFRoaXMgU29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGljZW5zZXM6CisgKiBUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bworICogbGljZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIsIGF2YWlsYWJsZSBmcm9tIHRoZSBmaWxlCisgKiBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLCBvciB0aGUKKyAqIE9wZW5JQi5vcmcgQlNEIGxpY2Vuc2UgYmVsb3c6CiAgKgotICogMSkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiQ29tbW9uIFB1YmxpYyBMaWNlbnNlIDEuMCIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2NwbC5waHAuCisgKiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgorICogICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZworICogICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAqCi0gKiAyKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJUaGUgQlNEIExpY2Vuc2UiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lci4KICAqCi0gKiAzKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIiIGEKLSAqICAgIGNvcHkgb2Ygd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIExpY2Vuc2VlIGhhcyB0aGUgcmlnaHQgdG8gY2hvb3NlIG9uZSBvZiB0aGUgYWJvdmUgbGljZW5zZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSBhbmQgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpAQCAtMTI2LDggKzEzMCw3IEBACiAKIAlzdHJ1Y3QgY29tcGxldGlvbgljb21wOwogCWF0b21pY190CQlyZWZjb3VudDsKLQl3YWl0X3F1ZXVlX2hlYWRfdAl3YWl0X3JlbW92ZTsKLQlhdG9taWNfdAkJZGV2X3JlbW92ZTsKKwlzdHJ1Y3QgbXV0ZXgJCWhhbmRsZXJfbXV0ZXg7CiAKIAlpbnQJCQliYWNrbG9nOwogCWludAkJCXRpbWVvdXRfbXM7CkBAIC0zNTEsMjYgKzM1NCwxNSBAQAogCQljb21wbGV0ZSgmaWRfcHJpdi0+Y29tcCk7CiB9CiAKLXN0YXRpYyBpbnQgY21hX2Rpc2FibGVfcmVtb3ZlKHN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYsCitzdGF0aWMgaW50IGNtYV9kaXNhYmxlX2NhbGxiYWNrKHN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYsCiAJCQkgICAgICBlbnVtIGNtYV9zdGF0ZSBzdGF0ZSkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQ7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaWRfcHJpdi0+bG9jaywgZmxhZ3MpOwotCWlmIChpZF9wcml2LT5zdGF0ZSA9PSBzdGF0ZSkgewotCQlhdG9taWNfaW5jKCZpZF9wcml2LT5kZXZfcmVtb3ZlKTsKLQkJcmV0ID0gMDsKLQl9IGVsc2UKLQkJcmV0ID0gLUVJTlZBTDsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpZF9wcml2LT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQgY21hX2VuYWJsZV9yZW1vdmUoc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdikKLXsKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmaWRfcHJpdi0+ZGV2X3JlbW92ZSkpCi0JCXdha2VfdXAoJmlkX3ByaXYtPndhaXRfcmVtb3ZlKTsKKwltdXRleF9sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKKwlpZiAoaWRfcHJpdi0+c3RhdGUgIT0gc3RhdGUpIHsKKwkJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGNtYV9oYXNfY21fZGV2KHN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYpCkBAIC0zOTUsOCArMzg3LDcgQEAKIAltdXRleF9pbml0KCZpZF9wcml2LT5xcF9tdXRleCk7CiAJaW5pdF9jb21wbGV0aW9uKCZpZF9wcml2LT5jb21wKTsKIAlhdG9taWNfc2V0KCZpZF9wcml2LT5yZWZjb3VudCwgMSk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmaWRfcHJpdi0+d2FpdF9yZW1vdmUpOwotCWF0b21pY19zZXQoJmlkX3ByaXYtPmRldl9yZW1vdmUsIDApOworCW11dGV4X2luaXQoJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCUlOSVRfTElTVF9IRUFEKCZpZF9wcml2LT5saXN0ZW5fbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmlkX3ByaXYtPm1jX2xpc3QpOwogCWdldF9yYW5kb21fYnl0ZXMoJmlkX3ByaXYtPnNlcV9udW0sIHNpemVvZiBpZF9wcml2LT5zZXFfbnVtKTsKQEAgLTkyMyw3ICs5MTQsNyBAQAogCXN0cnVjdCByZG1hX2NtX2V2ZW50IGV2ZW50OwogCWludCByZXQgPSAwOwogCi0JaWYgKGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQ09OTkVDVCkpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKIAkJcmV0dXJuIDA7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwpAQCAtOTcwLDcgKzk2MSw3IEBACiAJCWV2ZW50LnBhcmFtLmNvbm4ucHJpdmF0ZV9kYXRhX2xlbiA9IElCX0NNX1JFSl9QUklWQVRFX0RBVEFfU0laRTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcHJpbnRrKEtFUk5fRVJSICJSRE1BIENNQTogdW5leHBlY3RlZCBJQiBDTSBldmVudDogJWQiLAorCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZFxuIiwKIAkJICAgICAgIGliX2V2ZW50LT5ldmVudCk7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTk4MCwxMiArOTcxLDEyIEBACiAJCS8qIERlc3Ryb3kgdGhlIENNIElEIGJ5IHJldHVybmluZyBhIG5vbi16ZXJvIHZhbHVlLiAqLwogCQlpZF9wcml2LT5jbV9pZC5pYiA9IE5VTEw7CiAJCWNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVNUUk9ZSU5HKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZCgmaWRfcHJpdi0+aWQpOwogCQlyZXR1cm4gcmV0OwogCX0KIG91dDoKLQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTk5OCw2ICs5ODksNyBAQAogCXVuaW9uIGNtYV9pcF9hZGRyICpzcmMsICpkc3Q7CiAJX19iZTE2IHBvcnQ7CiAJdTggaXBfdmVyOworCWludCByZXQ7CiAKIAlpZiAoY21hX2dldF9uZXRfaW5mbyhpYl9ldmVudC0+cHJpdmF0ZV9kYXRhLCBsaXN0ZW5faWQtPnBzLAogCQkJICAgICAmaXBfdmVyLCAmcG9ydCwgJnNyYywgJmRzdCkpCkBAIC0xMDIyLDEwICsxMDE0LDExIEBACiAJaWYgKHJ0LT5udW1fcGF0aHMgPT0gMikKIAkJcnQtPnBhdGhfcmVjWzFdID0gKmliX2V2ZW50LT5wYXJhbS5yZXFfcmN2ZC5hbHRlcm5hdGVfcGF0aDsKIAotCWliX2FkZHJfc2V0X3NnaWQoJnJ0LT5hZGRyLmRldl9hZGRyLCAmcnQtPnBhdGhfcmVjWzBdLnNnaWQpOwogCWliX2FkZHJfc2V0X2RnaWQoJnJ0LT5hZGRyLmRldl9hZGRyLCAmcnQtPnBhdGhfcmVjWzBdLmRnaWQpOwotCWliX2FkZHJfc2V0X3BrZXkoJnJ0LT5hZGRyLmRldl9hZGRyLCBiZTE2X3RvX2NwdShydC0+cGF0aF9yZWNbMF0ucGtleSkpOwotCXJ0LT5hZGRyLmRldl9hZGRyLmRldl90eXBlID0gUkRNQV9OT0RFX0lCX0NBOworCXJldCA9IHJkbWFfdHJhbnNsYXRlX2lwKCZpZC0+cm91dGUuYWRkci5zcmNfYWRkciwKKwkJCQkmaWQtPnJvdXRlLmFkZHIuZGV2X2FkZHIpOworCWlmIChyZXQpCisJCWdvdG8gZGVzdHJveV9pZDsKIAogCWlkX3ByaXYgPSBjb250YWluZXJfb2YoaWQsIHN0cnVjdCByZG1hX2lkX3ByaXZhdGUsIGlkKTsKIAlpZF9wcml2LT5zdGF0ZSA9IENNQV9DT05ORUNUOwpAQCAtMTA5NSw3ICsxMDg4LDcgQEAKIAlpbnQgb2Zmc2V0LCByZXQ7CiAKIAlsaXN0ZW5faWQgPSBjbV9pZC0+Y29udGV4dDsKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGxpc3Rlbl9pZCwgQ01BX0xJU1RFTikpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGxpc3Rlbl9pZCwgQ01BX0xJU1RFTikpCiAJCXJldHVybiAtRUNPTk5BQk9SVEVEOwogCiAJbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9mIGV2ZW50KTsKQEAgLTExMTYsNyArMTEwOSw3IEBACiAJCWdvdG8gb3V0OwogCX0KIAotCWF0b21pY19pbmMoJmNvbm5faWQtPmRldl9yZW1vdmUpOworCW11dGV4X2xvY2tfbmVzdGVkKCZjb25uX2lkLT5oYW5kbGVyX211dGV4LCBTSU5HTEVfREVQVEhfTkVTVElORyk7CiAJbXV0ZXhfbG9jaygmbG9jayk7CiAJcmV0ID0gY21hX2FjcXVpcmVfZGV2KGNvbm5faWQpOwogCW11dGV4X3VubG9jaygmbG9jayk7CkBAIC0xMTM4LDcgKzExMzEsNyBAQAogCQkgICAgIWNtYV9pc191ZF9wcyhjb25uX2lkLT5pZC5wcykpCiAJCQlpYl9zZW5kX2NtX21yYShjbV9pZCwgQ01BX0NNX01SQV9TRVRUSU5HLCBOVUxMLCAwKTsKIAkJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAtMTE0NywxMSArMTE0MCwxMSBAQAogCiByZWxlYXNlX2Nvbm5faWQ6CiAJY21hX2V4Y2goY29ubl9pZCwgQ01BX0RFU1RST1lJTkcpOwotCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJcmRtYV9kZXN0cm95X2lkKCZjb25uX2lkLT5pZCk7CiAKIG91dDoKLQljbWFfZW5hYmxlX3JlbW92ZShsaXN0ZW5faWQpOworCW11dGV4X3VubG9jaygmbGlzdGVuX2lkLT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMjE3LDcgKzEyMTAsNyBAQAogCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOwogCWludCByZXQgPSAwOwogCi0JaWYgKGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQ09OTkVDVCkpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKIAkJcmV0dXJuIDA7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwpAQCAtMTI2MSwxMiArMTI1NCwxMiBAQAogCQkvKiBEZXN0cm95IHRoZSBDTSBJRCBieSByZXR1cm5pbmcgYSBub24temVybyB2YWx1ZS4gKi8KIAkJaWRfcHJpdi0+Y21faWQuaXcgPSBOVUxMOwogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEyODIsNyArMTI3NSw3IEBACiAJc3RydWN0IGliX2RldmljZV9hdHRyIGF0dHI7CiAKIAlsaXN0ZW5faWQgPSBjbV9pZC0+Y29udGV4dDsKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGxpc3Rlbl9pZCwgQ01BX0xJU1RFTikpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGxpc3Rlbl9pZCwgQ01BX0xJU1RFTikpCiAJCXJldHVybiAtRUNPTk5BQk9SVEVEOwogCiAJLyogQ3JlYXRlIGEgbmV3IFJETUEgaWQgZm9yIHRoZSBuZXcgSVcgQ00gSUQgKi8KQEAgLTEyOTQsMTkgKzEyODcsMTkgQEAKIAkJZ290byBvdXQ7CiAJfQogCWNvbm5faWQgPSBjb250YWluZXJfb2YobmV3X2NtX2lkLCBzdHJ1Y3QgcmRtYV9pZF9wcml2YXRlLCBpZCk7Ci0JYXRvbWljX2luYygmY29ubl9pZC0+ZGV2X3JlbW92ZSk7CisJbXV0ZXhfbG9ja19uZXN0ZWQoJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgsIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKIAljb25uX2lkLT5zdGF0ZSA9IENNQV9DT05ORUNUOwogCiAJZGV2ID0gaXBfZGV2X2ZpbmQoJmluaXRfbmV0LCBpd19ldmVudC0+bG9jYWxfYWRkci5zaW5fYWRkci5zX2FkZHIpOwogCWlmICghZGV2KSB7CiAJCXJldCA9IC1FQUREUk5PVEFWQUlMOwotCQljbWFfZW5hYmxlX3JlbW92ZShjb25uX2lkKTsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKG5ld19jbV9pZCk7CiAJCWdvdG8gb3V0OwogCX0KIAlyZXQgPSByZG1hX2NvcHlfYWRkcigmY29ubl9pZC0+aWQucm91dGUuYWRkci5kZXZfYWRkciwgZGV2LCBOVUxMKTsKIAlpZiAocmV0KSB7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQobmV3X2NtX2lkKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTMxNSw3ICsxMzA4LDcgQEAKIAlyZXQgPSBjbWFfYWNxdWlyZV9kZXYoY29ubl9pZCk7CiAJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKIAlpZiAocmV0KSB7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQobmV3X2NtX2lkKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTMzMSw3ICsxMzI0LDcgQEAKIAogCXJldCA9IGliX3F1ZXJ5X2RldmljZShjb25uX2lkLT5pZC5kZXZpY2UsICZhdHRyKTsKIAlpZiAocmV0KSB7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQobmV3X2NtX2lkKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTM0NywxNCArMTM0MCwxNyBAQAogCQkvKiBVc2VyIHdhbnRzIHRvIGRlc3Ryb3kgdGhlIENNIElEICovCiAJCWNvbm5faWQtPmNtX2lkLml3ID0gTlVMTDsKIAkJY21hX2V4Y2goY29ubl9pZCwgQ01BX0RFU1RST1lJTkcpOwotCQljbWFfZW5hYmxlX3JlbW92ZShjb25uX2lkKTsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZjb25uX2lkLT5pZCk7CisJCWdvdG8gb3V0OwogCX0KIAorCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CisKIG91dDoKIAlpZiAoZGV2KQogCQlkZXZfcHV0KGRldik7Ci0JY21hX2VuYWJsZV9yZW1vdmUobGlzdGVuX2lkKTsKKwltdXRleF91bmxvY2soJmxpc3Rlbl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTQ0Niw3ICsxNDQyLDcgQEAKIAlyZXQgPSByZG1hX2xpc3RlbihpZCwgaWRfcHJpdi0+YmFja2xvZyk7CiAJaWYgKHJldCkKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiUkRNQSBDTUE6IGNtYV9saXN0ZW5fb25fZGV2LCBlcnJvciAlZCwgIgotCQkgICAgICAgImxpc3RlbmluZyBvbiBkZXZpY2UgJXMiLCByZXQsIGNtYV9kZXYtPmRldmljZS0+bmFtZSk7CisJCSAgICAgICAibGlzdGVuaW5nIG9uIGRldmljZSAlc1xuIiwgcmV0LCBjbWFfZGV2LT5kZXZpY2UtPm5hbWUpOwogfQogCiBzdGF0aWMgdm9pZCBjbWFfbGlzdGVuX29uX2FsbChzdHJ1Y3QgcmRtYV9pZF9wcml2YXRlICppZF9wcml2KQpAQCAtMTU4Niw3ICsxNTgyLDcgQEAKIAlzdHJ1Y3QgcmRtYV9pZF9wcml2YXRlICppZF9wcml2ID0gd29yay0+aWQ7CiAJaW50IGRlc3Ryb3kgPSAwOwogCi0JYXRvbWljX2luYygmaWRfcHJpdi0+ZGV2X3JlbW92ZSk7CisJbXV0ZXhfbG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJaWYgKCFjbWFfY29tcF9leGNoKGlkX3ByaXYsIHdvcmstPm9sZF9zdGF0ZSwgd29yay0+bmV3X3N0YXRlKSkKIAkJZ290byBvdXQ7CiAKQEAgLTE1OTUsNyArMTU5MSw3IEBACiAJCWRlc3Ryb3kgPSAxOwogCX0KIG91dDoKLQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCWNtYV9kZXJlZl9pZChpZF9wcml2KTsKIAlpZiAoZGVzdHJveSkKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CkBAIC0xNzU4LDcgKzE3NTQsNyBAQAogCXN0cnVjdCByZG1hX2NtX2V2ZW50IGV2ZW50OwogCiAJbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9mIGV2ZW50KTsKLQlhdG9taWNfaW5jKCZpZF9wcml2LT5kZXZfcmVtb3ZlKTsKKwltdXRleF9sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAogCS8qCiAJICogR3JhYiBtdXRleCB0byBibG9jayByZG1hX2Rlc3Ryb3lfaWQoKSBmcm9tIHJlbW92aW5nIHRoZSBkZXZpY2Ugd2hpbGUKQEAgLTE3ODcsMTMgKzE3ODMsMTMgQEAKIAogCWlmIChpZF9wcml2LT5pZC5ldmVudF9oYW5kbGVyKCZpZF9wcml2LT5pZCwgJmV2ZW50KSkgewogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQljbWFfZGVyZWZfaWQoaWRfcHJpdik7CiAJCXJkbWFfZGVzdHJveV9pZCgmaWRfcHJpdi0+aWQpOwogCQlyZXR1cm47CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJY21hX2RlcmVmX2lkKGlkX3ByaXYpOwogfQogCkBAIC0yMTIwLDcgKzIxMTYsNyBAQAogCXN0cnVjdCBpYl9jbV9zaWRyX3JlcF9ldmVudF9wYXJhbSAqcmVwID0gJmliX2V2ZW50LT5wYXJhbS5zaWRyX3JlcF9yY3ZkOwogCWludCByZXQgPSAwOwogCi0JaWYgKGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQ09OTkVDVCkpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKIAkJcmV0dXJuIDA7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwpAQCAtMjE1MSw3ICsyMTQ3LDcgQEAKIAkJZXZlbnQuc3RhdHVzID0gMDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcHJpbnRrKEtFUk5fRVJSICJSRE1BIENNQTogdW5leHBlY3RlZCBJQiBDTSBldmVudDogJWQiLAorCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZFxuIiwKIAkJICAgICAgIGliX2V2ZW50LT5ldmVudCk7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTIxNjEsMTIgKzIxNTcsMTIgQEAKIAkJLyogRGVzdHJveSB0aGUgQ00gSUQgYnkgcmV0dXJuaW5nIGEgbm9uLXplcm8gdmFsdWUuICovCiAJCWlkX3ByaXYtPmNtX2lkLmliID0gTlVMTDsKIAkJY21hX2V4Y2goaWRfcHJpdiwgQ01BX0RFU1RST1lJTkcpOwotCQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwkJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybiByZXQ7CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjU2NCw4ICsyNTYwLDggQEAKIAlpbnQgcmV0OwogCiAJaWRfcHJpdiA9IG1jLT5pZF9wcml2OwotCWlmIChjbWFfZGlzYWJsZV9yZW1vdmUoaWRfcHJpdiwgQ01BX0FERFJfQk9VTkQpICYmCi0JICAgIGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQUREUl9SRVNPTFZFRCkpCisJaWYgKGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9BRERSX0JPVU5EKSAmJgorCSAgICBjbWFfZGlzYWJsZV9jYWxsYmFjayhpZF9wcml2LCBDTUFfQUREUl9SRVNPTFZFRCkpCiAJCXJldHVybiAwOwogCiAJbXV0ZXhfbG9jaygmaWRfcHJpdi0+cXBfbXV0ZXgpOwpAQCAtMjU5MCwxMiArMjU4NiwxMiBAQAogCXJldCA9IGlkX3ByaXYtPmlkLmV2ZW50X2hhbmRsZXIoJmlkX3ByaXYtPmlkLCAmZXZlbnQpOwogCWlmIChyZXQpIHsKIAkJY21hX2V4Y2goaWRfcHJpdiwgQ01BX0RFU1RST1lJTkcpOwotCQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwkJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybiAwOwogCX0KIAotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI3NTQsNiArMjc1MCw3IEBACiB7CiAJc3RydWN0IHJkbWFfY21fZXZlbnQgZXZlbnQ7CiAJZW51bSBjbWFfc3RhdGUgc3RhdGU7CisJaW50IHJldCA9IDA7CiAKIAkvKiBSZWNvcmQgdGhhdCB3ZSB3YW50IHRvIHJlbW92ZSB0aGUgZGV2aWNlICovCiAJc3RhdGUgPSBjbWFfZXhjaChpZF9wcml2LCBDTUFfREVWSUNFX1JFTU9WQUwpOwpAQCAtMjc2MSwxNSArMjc1OCwxOCBAQAogCQlyZXR1cm4gMDsKIAogCWNtYV9jYW5jZWxfb3BlcmF0aW9uKGlkX3ByaXYsIHN0YXRlKTsKLQl3YWl0X2V2ZW50KGlkX3ByaXYtPndhaXRfcmVtb3ZlLCAhYXRvbWljX3JlYWQoJmlkX3ByaXYtPmRldl9yZW1vdmUpKTsKKwltdXRleF9sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAogCS8qIENoZWNrIGZvciBkZXN0cnVjdGlvbiBmcm9tIGFub3RoZXIgY2FsbGJhY2suICovCiAJaWYgKCFjbWFfY29tcChpZF9wcml2LCBDTUFfREVWSUNFX1JFTU9WQUwpKQotCQlyZXR1cm4gMDsKKwkJZ290byBvdXQ7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwogCWV2ZW50LmV2ZW50ID0gUkRNQV9DTV9FVkVOVF9ERVZJQ0VfUkVNT1ZBTDsKLQlyZXR1cm4gaWRfcHJpdi0+aWQuZXZlbnRfaGFuZGxlcigmaWRfcHJpdi0+aWQsICZldmVudCk7CisJcmV0ID0gaWRfcHJpdi0+aWQuZXZlbnRfaGFuZGxlcigmaWRfcHJpdi0+aWQsICZldmVudCk7CitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBjbWFfcHJvY2Vzc19yZW1vdmUoc3RydWN0IGNtYV9kZXZpY2UgKmNtYV9kZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jb3JlX3ByaXYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCmluZGV4IDdhZDQ3YTQuLjA1YWMzNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBjb3JlX3ByaXYuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBfQ09SRV9QUklWX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMKaW5kZXggNWFjNWZmZS4uNzkxM2I4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGRldmljZS5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9mbXJfcG9vbC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZm1yX3Bvb2wuYwppbmRleCAxMjg2ZGMxLi40NTA3MDQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9mbXJfcG9vbC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGZtcl9wb29sLmMgMjczMCAyMDA1LTA2LTI4IDE2OjQzOjAzWiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9wcml2LmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcHJpdi5oCmluZGV4IDhiNzUwMTAuLjA1Y2UzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9wcml2LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3ByaXYuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbWFkX3ByaXYuaCA1NTk2IDIwMDYtMDMtMDMgMDE6MDA6MDdaIHNlYW4uaGVmdHkgJAogICovCiAKICNpZm5kZWYgX19JQl9NQURfUFJJVl9IX18KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5jCmluZGV4IGE1ZTJhMzEuLmQwZWY3ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbWFkX3JtcHAuYyAxOTIxIDIwMDUtMDMtMDIgMjI6NTg6NDRaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlICJtYWRfcHJpdi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmgKaW5kZXggZjA2MTZmZC4uM2QzMzZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtYWRfcm1wcC5oIDE5MjEgMjAwNS0wMi0yNSAyMjo1ODo0NFogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBfX01BRF9STVBQX0hfXwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcGFja2VyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYwppbmRleCBjOTcyZDcyLi4wMTliZDRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogcGFja2VyLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zYV9xdWVyeS5jCmluZGV4IGNmNDc0ZWMuLjEzNDFkZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogc2FfcXVlcnkuYyAyODExIDIwMDUtMDctMDYgMTg6MTE6NDNaIGhhbHIgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTM2MSw3ICszNTksNyBAQAogewogCXN0cnVjdCBpYl9zYV9wb3J0ICpwb3J0ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpYl9zYV9wb3J0LCB1cGRhdGVfdGFzayk7Ci0Jc3RydWN0IGliX3NhX3NtX2FoICpuZXdfYWgsICpvbGRfYWg7CisJc3RydWN0IGliX3NhX3NtX2FoICpuZXdfYWg7CiAJc3RydWN0IGliX3BvcnRfYXR0ciBwb3J0X2F0dHI7CiAJc3RydWN0IGliX2FoX2F0dHIgICBhaF9hdHRyOwogCkBAIC0zOTcsMTIgKzM5NSw5IEBACiAJfQogCiAJc3Bpbl9sb2NrX2lycSgmcG9ydC0+YWhfbG9jayk7Ci0Jb2xkX2FoID0gcG9ydC0+c21fYWg7CiAJcG9ydC0+c21fYWggPSBuZXdfYWg7CiAJc3Bpbl91bmxvY2tfaXJxKCZwb3J0LT5haF9sb2NrKTsKIAotCWlmIChvbGRfYWgpCi0JCWtyZWZfcHV0KCZvbGRfYWgtPnJlZiwgZnJlZV9zbV9haCk7CiB9CiAKIHN0YXRpYyB2b2lkIGliX3NhX2V2ZW50KHN0cnVjdCBpYl9ldmVudF9oYW5kbGVyICpoYW5kbGVyLCBzdHJ1Y3QgaWJfZXZlbnQgKmV2ZW50KQpAQCAtNDEzLDggKzQwOCwxNyBAQAogCSAgICBldmVudC0+ZXZlbnQgPT0gSUJfRVZFTlRfUEtFWV9DSEFOR0UgfHwKIAkgICAgZXZlbnQtPmV2ZW50ID09IElCX0VWRU5UX1NNX0NIQU5HRSAgIHx8CiAJICAgIGV2ZW50LT5ldmVudCA9PSBJQl9FVkVOVF9DTElFTlRfUkVSRUdJU1RFUikgewotCQlzdHJ1Y3QgaWJfc2FfZGV2aWNlICpzYV9kZXY7Ci0JCXNhX2RldiA9IGNvbnRhaW5lcl9vZihoYW5kbGVyLCB0eXBlb2YoKnNhX2RldiksIGV2ZW50X2hhbmRsZXIpOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCQlzdHJ1Y3QgaWJfc2FfZGV2aWNlICpzYV9kZXYgPQorCQkJY29udGFpbmVyX29mKGhhbmRsZXIsIHR5cGVvZigqc2FfZGV2KSwgZXZlbnRfaGFuZGxlcik7CisJCXN0cnVjdCBpYl9zYV9wb3J0ICpwb3J0ID0KKwkJCSZzYV9kZXYtPnBvcnRbZXZlbnQtPmVsZW1lbnQucG9ydF9udW0gLSBzYV9kZXYtPnN0YXJ0X3BvcnRdOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5haF9sb2NrLCBmbGFncyk7CisJCWlmIChwb3J0LT5zbV9haCkKKwkJCWtyZWZfcHV0KCZwb3J0LT5zbV9haC0+cmVmLCBmcmVlX3NtX2FoKTsKKwkJcG9ydC0+c21fYWggPSBOVUxMOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5haF9sb2NrLCBmbGFncyk7CiAKIAkJc2NoZWR1bGVfd29yaygmc2FfZGV2LT5wb3J0W2V2ZW50LT5lbGVtZW50LnBvcnRfbnVtIC0KIAkJCQkJICAgIHNhX2Rldi0+c3RhcnRfcG9ydF0udXBkYXRlX3Rhc2spOwpAQCAtNTE5LDYgKzUyMywxMCBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcXVlcnktPnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKKwlpZiAoIXF1ZXJ5LT5wb3J0LT5zbV9haCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWVyeS0+cG9ydC0+YWhfbG9jaywgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CiAJa3JlZl9nZXQoJnF1ZXJ5LT5wb3J0LT5zbV9haC0+cmVmKTsKIAlxdWVyeS0+c21fYWggPSBxdWVyeS0+cG9ydC0+c21fYWg7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVlcnktPnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zeXNmcy5jCmluZGV4IDk1NzU2NTUuLjRkMTA0MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc3lzZnMuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogc3lzZnMuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgImNvcmVfcHJpdi5oIgpAQCAtNjY1LDYgKzY2MywxMjAgQEAKIAkuZGV2X3VldmVudCA9IGliX2RldmljZV91ZXZlbnQsCiB9OwogCisvKiBTaG93IGEgZ2l2ZW4gYW4gYXR0cmlidXRlIGluIHRoZSBzdGF0aXN0aWNzIGdyb3VwICovCitzdGF0aWMgc3NpemVfdCBzaG93X3Byb3RvY29sX3N0YXQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2aWNlLAorCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYsCisJCQkgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBpYl9kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihkZXZpY2UsIHN0cnVjdCBpYl9kZXZpY2UsIGRldik7CisJdW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyBzdGF0czsKKwlzc2l6ZV90IHJldDsKKworCXJldCA9IGRldi0+Z2V0X3Byb3RvY29sX3N0YXRzKGRldiwgJnN0YXRzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWxsdVxuIiwKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpICgodTY0ICopICZzdGF0cylbb2Zmc2V0XSk7Cit9CisKKy8qIGdlbmVyYXRlIGEgcmVhZC1vbmx5IGl3YXJwIHN0YXRpc3RpY3MgYXR0cmlidXRlICovCisjZGVmaW5lIElXX1NUQVRTX0VOVFJZKG5hbWUpCQkJCQkJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IGRldmljZSAqZGV2aWNlLAkJCVwKKwkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCVwKK3sJCQkJCQkJCQlcCisJcmV0dXJuIHNob3dfcHJvdG9jb2xfc3RhdChkZXZpY2UsIGF0dHIsIGJ1ZiwJCQlcCisJCQkJICBvZmZzZXRvZihzdHJ1Y3QgaXdfcHJvdG9jb2xfc3RhdHMsIG5hbWUpIC8gXAorCQkJCSAgc2l6ZW9mICh1NjQpKTsJCQlcCit9CQkJCQkJCQkJXAorc3RhdGljIERFVklDRV9BVFRSKG5hbWUsIFNfSVJVR08sIHNob3dfIyNuYW1lLCBOVUxMKQorCitJV19TVEFUU19FTlRSWShpcEluUmVjZWl2ZXMpOworSVdfU1RBVFNfRU5UUlkoaXBJbkhkckVycm9ycyk7CitJV19TVEFUU19FTlRSWShpcEluVG9vQmlnRXJyb3JzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5Ob1JvdXRlcyk7CitJV19TVEFUU19FTlRSWShpcEluQWRkckVycm9ycyk7CitJV19TVEFUU19FTlRSWShpcEluVW5rbm93blByb3Rvcyk7CitJV19TVEFUU19FTlRSWShpcEluVHJ1bmNhdGVkUGt0cyk7CitJV19TVEFUU19FTlRSWShpcEluRGlzY2FyZHMpOworSVdfU1RBVFNfRU5UUlkoaXBJbkRlbGl2ZXJzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0Rm9yd0RhdGFncmFtcyk7CitJV19TVEFUU19FTlRSWShpcE91dFJlcXVlc3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0RGlzY2FyZHMpOworSVdfU1RBVFNfRU5UUlkoaXBPdXROb1JvdXRlcyk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtVGltZW91dCk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtUmVxZHMpOworSVdfU1RBVFNfRU5UUlkoaXBSZWFzbU9Lcyk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtRmFpbHMpOworSVdfU1RBVFNfRU5UUlkoaXBGcmFnT0tzKTsKK0lXX1NUQVRTX0VOVFJZKGlwRnJhZ0ZhaWxzKTsKK0lXX1NUQVRTX0VOVFJZKGlwRnJhZ0NyZWF0ZXMpOworSVdfU1RBVFNfRU5UUlkoaXBJbk1jYXN0UGt0cyk7CitJV19TVEFUU19FTlRSWShpcE91dE1jYXN0UGt0cyk7CitJV19TVEFUU19FTlRSWShpcEluQmNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0QmNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcFJ0b0FsZ29yaXRobSk7CitJV19TVEFUU19FTlRSWSh0Y3BSdG9NaW4pOworSVdfU1RBVFNfRU5UUlkodGNwUnRvTWF4KTsKK0lXX1NUQVRTX0VOVFJZKHRjcE1heENvbm4pOworSVdfU1RBVFNfRU5UUlkodGNwQWN0aXZlT3BlbnMpOworSVdfU1RBVFNfRU5UUlkodGNwUGFzc2l2ZU9wZW5zKTsKK0lXX1NUQVRTX0VOVFJZKHRjcEF0dGVtcHRGYWlscyk7CitJV19TVEFUU19FTlRSWSh0Y3BFc3RhYlJlc2V0cyk7CitJV19TVEFUU19FTlRSWSh0Y3BDdXJyRXN0YWIpOworSVdfU1RBVFNfRU5UUlkodGNwSW5TZWdzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcE91dFNlZ3MpOworSVdfU1RBVFNfRU5UUlkodGNwUmV0cmFuc1NlZ3MpOworSVdfU1RBVFNfRU5UUlkodGNwSW5FcnJzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcE91dFJzdHMpOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXdfcHJvdG9fc3RhdHNfYXR0cnNbXSA9IHsKKwkmZGV2X2F0dHJfaXBJblJlY2VpdmVzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5IZHJFcnJvcnMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblRvb0JpZ0Vycm9ycy5hdHRyLAorCSZkZXZfYXR0cl9pcEluTm9Sb3V0ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkFkZHJFcnJvcnMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblVua25vd25Qcm90b3MuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblRydW5jYXRlZFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkRpc2NhcmRzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5EZWxpdmVycy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dEZvcndEYXRhZ3JhbXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBPdXRSZXF1ZXN0cy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dERpc2NhcmRzLmF0dHIsCisJJmRldl9hdHRyX2lwT3V0Tm9Sb3V0ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbVRpbWVvdXQuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbVJlcWRzLmF0dHIsCisJJmRldl9hdHRyX2lwUmVhc21PS3MuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbUZhaWxzLmF0dHIsCisJJmRldl9hdHRyX2lwRnJhZ09Lcy5hdHRyLAorCSZkZXZfYXR0cl9pcEZyYWdGYWlscy5hdHRyLAorCSZkZXZfYXR0cl9pcEZyYWdDcmVhdGVzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5NY2FzdFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBPdXRNY2FzdFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkJjYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dEJjYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl90Y3BSdG9BbGdvcml0aG0uYXR0ciwKKwkmZGV2X2F0dHJfdGNwUnRvTWluLmF0dHIsCisJJmRldl9hdHRyX3RjcFJ0b01heC5hdHRyLAorCSZkZXZfYXR0cl90Y3BNYXhDb25uLmF0dHIsCisJJmRldl9hdHRyX3RjcEFjdGl2ZU9wZW5zLmF0dHIsCisJJmRldl9hdHRyX3RjcFBhc3NpdmVPcGVucy5hdHRyLAorCSZkZXZfYXR0cl90Y3BBdHRlbXB0RmFpbHMuYXR0ciwKKwkmZGV2X2F0dHJfdGNwRXN0YWJSZXNldHMuYXR0ciwKKwkmZGV2X2F0dHJfdGNwQ3VyckVzdGFiLmF0dHIsCisJJmRldl9hdHRyX3RjcEluU2Vncy5hdHRyLAorCSZkZXZfYXR0cl90Y3BPdXRTZWdzLmF0dHIsCisJJmRldl9hdHRyX3RjcFJldHJhbnNTZWdzLmF0dHIsCisJJmRldl9hdHRyX3RjcEluRXJycy5hdHRyLAorCSZkZXZfYXR0cl90Y3BPdXRSc3RzLmF0dHIsCisJTlVMTAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaXdfc3RhdHNfZ3JvdXAgPSB7CisJLm5hbWUJPSAicHJvdG9fc3RhdHMiLAorCS5hdHRycwk9IGl3X3Byb3RvX3N0YXRzX2F0dHJzLAorfTsKKwogaW50IGliX2RldmljZV9yZWdpc3Rlcl9zeXNmcyhzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UpCiB7CiAJc3RydWN0IGRldmljZSAqY2xhc3NfZGV2ID0gJmRldmljZS0+ZGV2OwpAQCAtNzA3LDYgKzgxOSwxMiBAQAogCQl9CiAJfQogCisJaWYgKGRldmljZS0+bm9kZV90eXBlID09IFJETUFfTk9ERV9STklDICYmIGRldmljZS0+Z2V0X3Byb3RvY29sX3N0YXRzKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmY2xhc3NfZGV2LT5rb2JqLCAmaXdfc3RhdHNfZ3JvdXApOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfcHV0OworCX0KKwogCXJldHVybiAwOwogCiBlcnJfcHV0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYwppbmRleCBkN2E2ODgxLi45NDk0MDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdWNtLmMgNDMxMSAyMDA1LTEyLTA1IDE4OjQyOjAxWiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpAQCAtNDUsNiArNDMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC0xMTU5LDYgKzExNTgsNyBAQAogewogCXN0cnVjdCBpYl91Y21fZmlsZSAqZmlsZTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZmlsZSA9IGttYWxsb2Moc2l6ZW9mKCpmaWxlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFmaWxlKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYwppbmRleCBjYTRjZjNhLi4xOTVmOTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtYS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW4uaD4KICNpbmNsdWRlIDxsaW51eC9pbjYuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPHJkbWEvcmRtYV91c2VyX2NtLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl9tYXJzaGFsbC5oPgpAQCAtMTE1Niw2ICsxMTU3LDcgQEAKIAlpZiAoIWZpbGUpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlJTklUX0xJU1RfSEVBRCgmZmlsZS0+ZXZlbnRfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmZpbGUtPmN0eF9saXN0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmaWxlLT5wb2xsX3dhaXQpOwpAQCAtMTE2Myw2ICsxMTY1LDcgQEAKIAogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGZpbGU7CiAJZmlsZS0+ZmlscCA9IGZpbHA7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91ZF9oZWFkZXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCmluZGV4IDk5N2MwN2QuLjhlYzc4NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1ZF9oZWFkZXIuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKaW5kZXggZmU3OGY3ZC4uNmY3YzA5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzX21lbS5jIDI3NDMgMjAwNS0wNi0yOCAyMjoyNzo1OVogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTE1MCw3ICsxNDgsNyBAQAogCXJldCA9IDA7CiAJd2hpbGUgKG5wYWdlcykgewogCQlyZXQgPSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwgY3VyX2Jhc2UsCi0JCQkJICAgICBtaW5fdChpbnQsIG5wYWdlcywKKwkJCQkgICAgIG1pbl90KHVuc2lnbmVkIGxvbmcsIG5wYWdlcywKIAkJCQkJICAgUEFHRV9TSVpFIC8gc2l6ZW9mIChzdHJ1Y3QgcGFnZSAqKSksCiAJCQkJICAgICAxLCAhdW1lbS0+d3JpdGFibGUsIHBhZ2VfbGlzdCwgdm1hX2xpc3QpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYwppbmRleCA4NDBlZGU5Li4yNjhhMmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VzZXJfbWFkLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IHVzZXJfbWFkLmMgNTU5NiAyMDA2LTAzLTAzIDAxOjAwOjA3WiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC03NzcsNiArNzc1LDE5IEBACiB9CiAjZW5kaWYKIAorLyoKKyAqIGliX3VtYWRfb3BlbigpIGRvZXMgbm90IG5lZWQgdGhlIEJLTDoKKyAqCisgKiAgLSB1bWFkX3BvcnRbXSBhY2Nlc3NlcyBhcmUgcHJvdGVjdGVkIGJ5IHBvcnRfbG9jaywgdGhlCisgKiAgICBpYl91bWFkX3BvcnQgc3RydWN0dXJlcyBhcmUgcHJvcGVybHkgcmVmZXJlbmNlIGNvdW50ZWQsIGFuZAorICogICAgZXZlcnl0aGluZyBlbHNlIGlzIHB1cmVseSBsb2NhbCB0byB0aGUgZmlsZSBiZWluZyBjcmVhdGVkLCBzbworICogICAgcmFjZXMgYWdhaW5zdCBvdGhlciBvcGVuIGNhbGxzIGFyZSBub3QgYSBwcm9ibGVtOworICogIC0gdGhlIGlvY3RsIG1ldGhvZCBkb2VzIG5vdCBhZmZlY3QgYW55IGdsb2JhbCBzdGF0ZSBvdXRzaWRlIG9mIHRoZQorICogICAgZmlsZSBzdHJ1Y3R1cmUgYmVpbmcgb3BlcmF0ZWQgb247CisgKiAgLSB0aGUgcG9ydCBpcyBhZGRlZCB0byB1bWFkX3BvcnRbXSBhcyB0aGUgbGFzdCBwYXJ0IG9mIG1vZHVsZQorICogICAgaW5pdGlhbGl6YXRpb24gc28gdGhlIG9wZW4gbWV0aG9kIHdpbGwgZWl0aGVyIGltbWVkaWF0ZWx5IHJ1bgorICogICAgLUVOWElPLCBvciBhbGwgcmVxdWlyZWQgaW5pdGlhbGl6YXRpb24gd2lsbCBiZSBkb25lLgorICovCiBzdGF0aWMgaW50IGliX3VtYWRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgaWJfdW1hZF9wb3J0ICpwb3J0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzLmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAppbmRleCAzNzZhNTdjLi5iM2VhOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzLmggMjU1OSAyMDA1LTA2LTA2IDE5OjQzOjE2WiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgVVZFUkJTX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYwppbmRleCAyYzNiZmY1Li41NmZlYWI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX2NtZC5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1dmVyYnNfY21kLmMgMjcwOCAyMDA1LTA2LTI0IDE3OjI3OjIxWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CkBAIC05MTksNyArOTE3LDcgQEAKIAkJcmVzcC0+d2NbaV0ub3Bjb2RlIAkgICA9IHdjW2ldLm9wY29kZTsKIAkJcmVzcC0+d2NbaV0udmVuZG9yX2VyciAJICAgPSB3Y1tpXS52ZW5kb3JfZXJyOwogCQlyZXNwLT53Y1tpXS5ieXRlX2xlbiAJICAgPSB3Y1tpXS5ieXRlX2xlbjsKLQkJcmVzcC0+d2NbaV0uaW1tX2RhdGEgCSAgID0gKF9fdTMyIF9fZm9yY2UpIHdjW2ldLmltbV9kYXRhOworCQlyZXNwLT53Y1tpXS5leC5pbW1fZGF0YSAgICA9IChfX3UzMiBfX2ZvcmNlKSB3Y1tpXS5leC5pbW1fZGF0YTsKIAkJcmVzcC0+d2NbaV0ucXBfbnVtIAkgICA9IHdjW2ldLnFwLT5xcF9udW07CiAJCXJlc3AtPndjW2ldLnNyY19xcCAJICAgPSB3Y1tpXS5zcmNfcXA7CiAJCXJlc3AtPndjW2ldLndjX2ZsYWdzIAkgICA9IHdjW2ldLndjX2ZsYWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMKaW5kZXggZjgwNmRhMS4uYWVlZTg1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfbWFpbi5jCkBAIC0zMiw4ICszMiw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1dmVyYnNfbWFpbi5jIDI3MzMgMjAwNS0wNi0yOCAxOToxNDozNFogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC00MjMsNyArNDIxLDcgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZpbGUtPmFzeW5jX2ZpbGUtPmxvY2ssIGZsYWdzKTsKLQlpZiAoIWZpbGUtPmFzeW5jX2ZpbGUtPmlzX2Nsb3NlZCkgeworCWlmIChmaWxlLT5hc3luY19maWxlLT5pc19jbG9zZWQpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmlsZS0+YXN5bmNfZmlsZS0+bG9jaywgZmxhZ3MpOwogCQlyZXR1cm47CiAJfQpAQCAtNjEwLDYgKzYwOCwxOCBAQAogCQlyZXR1cm4gZmlsZS0+ZGV2aWNlLT5pYl9kZXYtPm1tYXAoZmlsZS0+dWNvbnRleHQsIHZtYSk7CiB9CiAKKy8qCisgKiBpYl91dmVyYnNfb3BlbigpIGRvZXMgbm90IG5lZWQgdGhlIEJLTDoKKyAqCisgKiAgLSBkZXZfdGFibGVbXSBhY2Nlc3NlcyBhcmUgcHJvdGVjdGVkIGJ5IG1hcF9sb2NrLCB0aGUKKyAqICAgIGliX3V2ZXJic19kZXZpY2Ugc3RydWN0dXJlcyBhcmUgcHJvcGVybHkgcmVmZXJlbmNlIGNvdW50ZWQsIGFuZAorICogICAgZXZlcnl0aGluZyBlbHNlIGlzIHB1cmVseSBsb2NhbCB0byB0aGUgZmlsZSBiZWluZyBjcmVhdGVkLCBzbworICogICAgcmFjZXMgYWdhaW5zdCBvdGhlciBvcGVuIGNhbGxzIGFyZSBub3QgYSBwcm9ibGVtOworICogIC0gdGhlcmUgaXMgbm8gaW9jdGwgbWV0aG9kIHRvIHJhY2UgYWdhaW5zdDsKKyAqICAtIHRoZSBkZXZpY2UgaXMgYWRkZWQgdG8gZGV2X3RhYmxlW10gYXMgdGhlIGxhc3QgcGFydCBvZiBtb2R1bGUKKyAqICAgIGluaXRpYWxpemF0aW9uLCB0aGUgb3BlbiBtZXRob2Qgd2lsbCBlaXRoZXIgaW1tZWRpYXRlbHkgcnVuCisgKiAgICAtRU5YSU8sIG9yIGFsbCByZXF1aXJlZCBpbml0aWFsaXphdGlvbiB3aWxsIGJlIGRvbmUuCisgKi8KIHN0YXRpYyBpbnQgaWJfdXZlcmJzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGliX3V2ZXJic19kZXZpY2UgKmRldjsKQEAgLTY1MSw3ICs2NjEsNiBAQAogCiBlcnI6CiAJa3JlZl9wdXQoJmRldi0+cmVmLCBpYl91dmVyYnNfcmVsZWFzZV9kZXYpOwotCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3ZlcmJzLmMKaW5kZXggMDUwNDIwOC4uYTdkYTliZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS92ZXJicy5jCkBAIC0zNCw4ICszNCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB2ZXJicy5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KQEAgLTMxNyw3ICszMTUsNiBAQAogfSBxcF9zdGF0ZV90YWJsZVtJQl9RUFNfRVJSICsgMV1bSUJfUVBTX0VSUiArIDFdID0gewogCVtJQl9RUFNfUkVTRVRdID0gewogCQlbSUJfUVBTX1JFU0VUXSA9IHsgLnZhbGlkID0gMSB9LAotCQlbSUJfUVBTX0VSUl0gICA9IHsgLnZhbGlkID0gMSB9LAogCQlbSUJfUVBTX0lOSVRdICA9IHsKIAkJCS52YWxpZCA9IDEsCiAJCQkucmVxX3BhcmFtID0gewpAQCAtNzU1LDYgKzc1Miw1MiBAQAogfQogRVhQT1JUX1NZTUJPTChpYl9kZXJlZ19tcik7CiAKK3N0cnVjdCBpYl9tciAqaWJfYWxsb2NfZmFzdF9yZWdfbXIoc3RydWN0IGliX3BkICpwZCwgaW50IG1heF9wYWdlX2xpc3RfbGVuKQoreworCXN0cnVjdCBpYl9tciAqbXI7CisKKwlpZiAoIXBkLT5kZXZpY2UtPmFsbG9jX2Zhc3RfcmVnX21yKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKKworCW1yID0gcGQtPmRldmljZS0+YWxsb2NfZmFzdF9yZWdfbXIocGQsIG1heF9wYWdlX2xpc3RfbGVuKTsKKworCWlmICghSVNfRVJSKG1yKSkgeworCQltci0+ZGV2aWNlICA9IHBkLT5kZXZpY2U7CisJCW1yLT5wZCAgICAgID0gcGQ7CisJCW1yLT51b2JqZWN0ID0gTlVMTDsKKwkJYXRvbWljX2luYygmcGQtPnVzZWNudCk7CisJCWF0b21pY19zZXQoJm1yLT51c2VjbnQsIDApOworCX0KKworCXJldHVybiBtcjsKK30KK0VYUE9SVF9TWU1CT0woaWJfYWxsb2NfZmFzdF9yZWdfbXIpOworCitzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICppYl9hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3Qoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQkJCSAgaW50IG1heF9wYWdlX2xpc3RfbGVuKQoreworCXN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKnBhZ2VfbGlzdDsKKworCWlmICghZGV2aWNlLT5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QpCisJCXJldHVybiBFUlJfUFRSKC1FTk9TWVMpOworCisJcGFnZV9saXN0ID0gZGV2aWNlLT5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QoZGV2aWNlLCBtYXhfcGFnZV9saXN0X2xlbik7CisKKwlpZiAoIUlTX0VSUihwYWdlX2xpc3QpKSB7CisJCXBhZ2VfbGlzdC0+ZGV2aWNlID0gZGV2aWNlOworCQlwYWdlX2xpc3QtPm1heF9wYWdlX2xpc3RfbGVuID0gbWF4X3BhZ2VfbGlzdF9sZW47CisJfQorCisJcmV0dXJuIHBhZ2VfbGlzdDsKK30KK0VYUE9SVF9TWU1CT0woaWJfYWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KTsKKwordm9pZCBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdChzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpCit7CisJcGFnZV9saXN0LT5kZXZpY2UtPmZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KHBhZ2VfbGlzdCk7Cit9CitFWFBPUlRfU1lNQk9MKGliX2ZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KTsKKwogLyogTWVtb3J5IHdpbmRvd3MgKi8KIAogc3RydWN0IGliX213ICppYl9hbGxvY19tdyhzdHJ1Y3QgaWJfcGQgKnBkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3JuaWMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9ybmljLmMKaW5kZXggOWEwNTRjNi4uZGQwNWM0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3JuaWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcm5pYy5jCkBAIC00NTQsOSArNDU0LDggQEAKIAkgICAgKElCX0RFVklDRV9SRVNJWkVfTUFYX1dSIHwKIAkgICAgIElCX0RFVklDRV9DVVJSX1FQX1NUQVRFX01PRCB8CiAJICAgICBJQl9ERVZJQ0VfU1lTX0lNQUdFX0dVSUQgfAotCSAgICAgSUJfREVWSUNFX1pFUk9fU1RBRyB8Ci0JICAgICBJQl9ERVZJQ0VfTUVNX1dJTkRPVyB8Ci0JICAgICBJQl9ERVZJQ0VfU0VORF9XX0lOVik7CisJICAgICBJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkgfAorCSAgICAgSUJfREVWSUNFX01FTV9XSU5ET1cpOwogCiAJLyogQWxsb2NhdGUgdGhlIHFwdHJfYXJyYXkgKi8KIAljMmRldi0+cXB0cl9hcnJheSA9IHZtYWxsb2MoQzJfTUFYX0NRUyAqIHNpemVvZih2b2lkICopKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX2hhbC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKaW5kZXggM2Y0NDFmYy4uZjZkNTc0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKQEAgLTE0NSw3ICsxNDUsOSBAQAogCX0KIAl3cWUgPSAoc3RydWN0IHQzX21vZGlmeV9xcF93ciAqKSBza2JfcHV0KHNrYiwgc2l6ZW9mKCp3cWUpKTsKIAltZW1zZXQod3FlLCAwLCBzaXplb2YoKndxZSkpOwotCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9RUF9NT0QsIDMsIDAsIHFwaWQsIDcpOworCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9RUF9NT0QsCisJCSAgICAgICBUM19DT01QTEVUSU9OX0ZMQUcgfCBUM19OT1RJRllfRkxBRywgMCwgcXBpZCwgNywKKwkJICAgICAgIFQzX1NPUEVPUCk7CiAJd3FlLT5mbGFncyA9IGNwdV90b19iZTMyKE1PRFFQX1dSSVRFX0VDKTsKIAlzZ2VfY21kID0gcXBpZCA8PCA4IHwgMzsKIAl3cWUtPnNnZV9jbWQgPSBjcHVfdG9fYmU2NChzZ2VfY21kKTsKQEAgLTI3Niw3ICsyNzgsNyBAQAogCWlmICghd3EtPnFwaWQpCiAJCXJldHVybiAtRU5PTUVNOwogCi0Jd3EtPnJxID0ga3phbGxvYyhkZXB0aCAqIHNpemVvZih1NjQpLCBHRlBfS0VSTkVMKTsKKwl3cS0+cnEgPSBremFsbG9jKGRlcHRoICogc2l6ZW9mKHN0cnVjdCB0M19zd3JxKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF3cS0+cnEpCiAJCWdvdG8gZXJyMTsKIApAQCAtMzAwLDYgKzMwMiw3IEBACiAJaWYgKCFrZXJuZWxfZG9tYWluKQogCQl3cS0+dWRiID0gKHU2NClyZGV2X3AtPnJuaWNfaW5mby51ZGJlbGxfcGh5c2Jhc2UgKwogCQkJCQkod3EtPnFwaWQgPDwgcmRldl9wLT5xcHNoaWZ0KTsKKwl3cS0+cmRldiA9IHJkZXZfcDsKIAlQREJHKCIlcyBxcGlkIDB4JXggZG9vcmJlbGwgMHglcCB1ZGIgMHglbGx4XG4iLCBfX2Z1bmNfXywKIAkgICAgIHdxLT5xcGlkLCB3cS0+ZG9vcmJlbGwsICh1bnNpZ25lZCBsb25nIGxvbmcpIHdxLT51ZGIpOwogCXJldHVybiAwOwpAQCAtNTU4LDcgKzU2MSw3IEBACiAJd3FlID0gKHN0cnVjdCB0M19tb2RpZnlfcXBfd3IgKikgc2tiX3B1dChza2IsIHNpemVvZigqd3FlKSk7CiAJbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKCp3cWUpKTsKIAlidWlsZF9md19yaXdyaCgoc3RydWN0IGZ3X3Jpd3JoICopIHdxZSwgVDNfV1JfUVBfTU9ELCAwLCAwLAotCQkgICAgICAgVDNfQ1RMX1FQX1RJRCwgNyk7CisJCSAgICAgICBUM19DVExfUVBfVElELCA3LCBUM19TT1BFT1ApOwogCXdxZS0+ZmxhZ3MgPSBjcHVfdG9fYmUzMihNT0RRUF9XUklURV9FQyk7CiAJc2dlX2NtZCA9ICgzVUxMIDw8IDU2KSB8IEZXX1JJX1NHRUVDX1NUQVJUIDw8IDggfCAzOwogCXdxZS0+c2dlX2NtZCA9IGNwdV90b19iZTY0KHNnZV9jbWQpOwpAQCAtNjc0LDcgKzY3Nyw3IEBACiAJCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9CUCwgZmxhZywKIAkJCSAgICAgICBRX0dFTkJJVChyZGV2X3AtPmN0cmxfcXAud3B0ciwKIAkJCQkJVDNfQ1RSTF9RUF9TSVpFX0xPRzIpLCBUM19DVFJMX1FQX0lELAotCQkJICAgICAgIHdyX2xlbik7CisJCQkgICAgICAgd3JfbGVuLCBUM19TT1BFT1ApOwogCQlpZiAoZmxhZyA9PSBUM19DT01QTEVUSU9OX0ZMQUcpCiAJCQlyaW5nX2Rvb3JiZWxsKHJkZXZfcC0+Y3RybF9xcC5kb29yYmVsbCwgVDNfQ1RSTF9RUF9JRCk7CiAJCWxlbiAtPSA5NjsKQEAgLTgxNiw2ICs4MTksMTMgQEAKIAkJCSAgICAgMCwgMCk7CiB9CiAKK2ludCBjeGlvX2FsbG9jYXRlX3N0YWcoc3RydWN0IGN4aW9fcmRldiAqcmRldl9wLCB1MzIgKnN0YWcsIHUzMiBwZGlkLCB1MzIgcGJsX3NpemUsIHUzMiBwYmxfYWRkcikKK3sKKwkqc3RhZyA9IFQzX1NUQUdfVU5TRVQ7CisJcmV0dXJuIF9fY3hpb190cHRfb3AocmRldl9wLCAwLCBzdGFnLCAwLCBwZGlkLCBUUFRfTk9OX1NIQVJFRF9NUiwKKwkJCSAgICAgMCwgMCwgMFVMTCwgMCwgMCwgcGJsX3NpemUsIHBibF9hZGRyKTsKK30KKwogaW50IGN4aW9fcmRtYV9pbml0KHN0cnVjdCBjeGlvX3JkZXYgKnJkZXZfcCwgc3RydWN0IHQzX3JkbWFfaW5pdF9hdHRyICphdHRyKQogewogCXN0cnVjdCB0M19yZG1hX2luaXRfd3IgKndxZTsKQEAgLTEyNTcsMTMgKzEyNjcsMTYgQEAKIAkJd3EtPnNxX3JwdHIgPSBDUUVfV1JJRF9TUV9XUFRSKCpod19jcWUpOwogCQlQREJHKCIlcyBjb21wbGV0aW5nIHNxIGlkeCAlbGRcbiIsIF9fZnVuY19fLAogCQkgICAgIFFfUFRSMklEWCh3cS0+c3FfcnB0ciwgd3EtPnNxX3NpemVfbG9nMikpOwotCQkqY29va2llID0gKHdxLT5zcSArCi0JCQkgICBRX1BUUjJJRFgod3EtPnNxX3JwdHIsIHdxLT5zcV9zaXplX2xvZzIpKS0+d3JfaWQ7CisJCSpjb29raWUgPSB3cS0+c3FbUV9QVFIySURYKHdxLT5zcV9ycHRyLCB3cS0+c3Ffc2l6ZV9sb2cyKV0ud3JfaWQ7CiAJCXdxLT5zcV9ycHRyKys7CiAJfSBlbHNlIHsKIAkJUERCRygiJXMgY29tcGxldGluZyBycSBpZHggJWxkXG4iLCBfX2Z1bmNfXywKIAkJICAgICBRX1BUUjJJRFgod3EtPnJxX3JwdHIsIHdxLT5ycV9zaXplX2xvZzIpKTsKLQkJKmNvb2tpZSA9ICood3EtPnJxICsgUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKSk7CisJCSpjb29raWUgPSB3cS0+cnFbUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKV0ud3JfaWQ7CisJCWlmICh3cS0+cnFbUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIpCisJCQljeGlvX2hhbF9wYmxwb29sX2ZyZWUod3EtPnJkZXYsCisJCQkJd3EtPnJxW1FfUFRSMklEWCh3cS0+cnFfcnB0ciwKKwkJCQl3cS0+cnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIsIFQzX1NUQUcwX1BCTF9TSVpFKTsKIAkJd3EtPnJxX3JwdHIrKzsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX2hhbC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKaW5kZXggNmUxMjhmNi4uNjU2ZmU0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKQEAgLTQ1LDE1ICs0NSwxNyBAQAogI2RlZmluZSBUM19DVFJMX1FQX1NJWkVfTE9HMiAgOAogI2RlZmluZSBUM19DVFJMX0NRX0lEICAgIDAKIAotLyogVEJEICovCiAjZGVmaW5lIFQzX01BWF9OVU1fUkkgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfTlVNX1FQICgxPDwxNSkKICNkZWZpbmUgVDNfTUFYX05VTV9DUSAoMTw8MTUpCiAjZGVmaW5lIFQzX01BWF9OVU1fUEQgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfUEJMX1NJWkUgMjU2CiAjZGVmaW5lIFQzX01BWF9SUV9TSVpFIDEwMjQKKyNkZWZpbmUgVDNfTUFYX1FQX0RFUFRIIChUM19NQVhfUlFfU0laRS0xKQorI2RlZmluZSBUM19NQVhfQ1FfREVQVEggODE5MgogI2RlZmluZSBUM19NQVhfTlVNX1NUQUcgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfTVJfU0laRSAweDEwMDAwMDAwMFVMTAorI2RlZmluZSBUM19QQUdFU0laRV9NQVNLIDB4ZmZmZjAwMCAgLyogNEtCLTEyOE1CICovCiAKICNkZWZpbmUgVDNfU1RBR19VTlNFVCAweGZmZmZmZmZmCiAKQEAgLTE2NSw2ICsxNjcsNyBAQAogaW50IGN4aW9fZGVyZWdfbWVtKHN0cnVjdCBjeGlvX3JkZXYgKnJkZXYsIHUzMiBzdGFnLCB1MzIgcGJsX3NpemUsCiAJCSAgIHUzMiBwYmxfYWRkcik7CiBpbnQgY3hpb19hbGxvY2F0ZV93aW5kb3coc3RydWN0IGN4aW9fcmRldiAqcmRldiwgdTMyICogc3RhZywgdTMyIHBkaWQpOworaW50IGN4aW9fYWxsb2NhdGVfc3RhZyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCB1MzIgKnN0YWcsIHUzMiBwZGlkLCB1MzIgcGJsX3NpemUsIHUzMiBwYmxfYWRkcik7CiBpbnQgY3hpb19kZWFsbG9jYXRlX3dpbmRvdyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCB1MzIgc3RhZyk7CiBpbnQgY3hpb19yZG1hX2luaXQoc3RydWN0IGN4aW9fcmRldiAqcmRldiwgc3RydWN0IHQzX3JkbWFfaW5pdF9hdHRyICphdHRyKTsKIHZvaWQgY3hpb19yZWdpc3Rlcl9ldl9jYihjeGlvX2hhbF9ldl9jYWxsYmFja19mdW5jX3QgZXZfY2IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9fd3IuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX3dyLmgKaW5kZXggZjFhMjVhOC4uMDQ2MThmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9fd3IuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb193ci5oCkBAIC0zOSw2ICszOSw5IEBACiAKICNkZWZpbmUgVDNfTUFYX1NHRSAgICAgIDQKICNkZWZpbmUgVDNfTUFYX0lOTElORQk2NAorI2RlZmluZSBUM19TVEFHMF9QQkxfU0laRSAoMiAqIFQzX01BWF9TR0UgPDwgMykKKyNkZWZpbmUgVDNfU1RBRzBfTUFYX1BCRV9MRU4gKDEyOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBUM19TVEFHMF9QQUdFX1NISUZUIDE1CiAKICNkZWZpbmUgUV9FTVBUWShycHRyLHdwdHIpICgocnB0cik9PSh3cHRyKSkKICNkZWZpbmUgUV9GVUxMKHJwdHIsd3B0cixzaXplX2xvZzIpICAoICgoKHdwdHIpLShycHRyKSk+PihzaXplX2xvZzIpKSAmJiBcCkBAIC03Miw3ICs3NSw4IEBACiAJVDNfV1JfQklORCA9IEZXX1dST1BDT0RFX1JJX0JJTkRfTVcsCiAJVDNfV1JfUkNWID0gRldfV1JPUENPREVfUklfUkVDRUlWRSwKIAlUM19XUl9JTklUID0gRldfV1JPUENPREVfUklfUkRNQV9JTklULAotCVQzX1dSX1FQX01PRCA9IEZXX1dST1BDT0RFX1JJX01PRElGWV9RUAorCVQzX1dSX1FQX01PRCA9IEZXX1dST1BDT0RFX1JJX01PRElGWV9RUCwKKwlUM19XUl9GQVNUUkVHID0gRldfV1JPUENPREVfUklfRkFTVFJFR0lTVEVSX01SCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogZW51bSB0M19yZG1hX29wY29kZSB7CkBAIC04OSw3ICs5Myw4IEBACiAJVDNfRkFTVF9SRUdJU1RFUiwKIAlUM19MT0NBTF9JTlYsCiAJVDNfUVBfTU9ELAotCVQzX0JZUEFTUworCVQzX0JZUEFTUywKKwlUM19SRE1BX1JFQURfUkVRX1dJVEhfSU5WLAogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAKIHN0YXRpYyBpbmxpbmUgZW51bSB0M19yZG1hX29wY29kZSB3cjJvcGNvZGUoZW51bSB0M193cl9vcGNvZGUgd3JvcCkKQEAgLTEwMyw2ICsxMDgsNyBAQAogCQljYXNlIFQzX1dSX0JJTkQ6IHJldHVybiBUM19CSU5EX01XOwogCQljYXNlIFQzX1dSX0lOSVQ6IHJldHVybiBUM19SRE1BX0lOSVQ7CiAJCWNhc2UgVDNfV1JfUVBfTU9EOiByZXR1cm4gVDNfUVBfTU9EOworCQljYXNlIFQzX1dSX0ZBU1RSRUc6IHJldHVybiBUM19GQVNUX1JFR0lTVEVSOwogCQlkZWZhdWx0OiBicmVhazsKIAl9CiAJcmV0dXJuIC0xOwpAQCAtMTcwLDExICsxNzYsNTQgQEAKIAlzdHJ1Y3QgdDNfc2dlIHNnbFtUM19NQVhfU0dFXTsJLyogNCsgKi8KIH07CiAKKyNkZWZpbmUgVDNfTUFYX0ZBU1RSRUdfREVQVEggMjQKKyNkZWZpbmUgVDNfTUFYX0ZBU1RSRUdfRlJBRyAxMAorCitzdHJ1Y3QgdDNfZmFzdHJlZ193ciB7CisJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLworCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLworCV9fYmUzMiBzdGFnOwkJLyogMiAqLworCV9fYmUzMiBsZW47CisJX19iZTMyIHZhX2Jhc2VfaGk7CS8qIDMgKi8KKwlfX2JlMzIgdmFfYmFzZV9sb19mYm87CisJX19iZTMyIHBhZ2VfdHlwZV9wZXJtczsgLyogNCAqLworCV9fYmUzMiByZXNlcnZlZDE7CisJX19iZTY0IHBibF9hZGRyc1swXTsJLyogNSsgKi8KK307CisKKy8qCisgKiBJZiBhIGZhc3RyZWcgd3Igc3BhbnMgbXVsdGlwbGUgd3FlcywgdGhlbiB0aGUgMm5kIGZyYWdtZW50IGxvb2sgbGlrZSB0aGlzLgorICovCitzdHJ1Y3QgdDNfcGJsX2ZyYWcgeworCXN0cnVjdCBmd19yaXdyaCB3cmg7CS8qIDAgKi8KKwlfX2JlNjQgcGJsX2FkZHJzWzE0XTsJLyogMS4uMTQgKi8KK307CisKKyNkZWZpbmUgU19GUl9QQUdFX0NPVU5UCQkyNAorI2RlZmluZSBNX0ZSX1BBR0VfQ09VTlQJCTB4ZmYKKyNkZWZpbmUgVl9GUl9QQUdFX0NPVU5UKHgpCSgoeCkgPDwgU19GUl9QQUdFX0NPVU5UKQorI2RlZmluZSBHX0ZSX1BBR0VfQ09VTlQoeCkJKCgoKHgpID4+IFNfRlJfUEFHRV9DT1VOVCkpICYgTV9GUl9QQUdFX0NPVU5UKQorCisjZGVmaW5lIFNfRlJfUEFHRV9TSVpFCQkxNgorI2RlZmluZSBNX0ZSX1BBR0VfU0laRQkJMHgxZgorI2RlZmluZSBWX0ZSX1BBR0VfU0laRSh4KQkoKHgpIDw8IFNfRlJfUEFHRV9TSVpFKQorI2RlZmluZSBHX0ZSX1BBR0VfU0laRSh4KQkoKCgoeCkgPj4gU19GUl9QQUdFX1NJWkUpKSAmIE1fRlJfUEFHRV9TSVpFKQorCisjZGVmaW5lIFNfRlJfVFlQRQkJOAorI2RlZmluZSBNX0ZSX1RZUEUJCTB4MQorI2RlZmluZSBWX0ZSX1RZUEUoeCkJCSgoeCkgPDwgU19GUl9UWVBFKQorI2RlZmluZSBHX0ZSX1RZUEUoeCkJCSgoKCh4KSA+PiBTX0ZSX1RZUEUpKSAmIE1fRlJfVFlQRSkKKworI2RlZmluZSBTX0ZSX1BFUk1TCQkwCisjZGVmaW5lIE1fRlJfUEVSTVMJCTB4ZmYKKyNkZWZpbmUgVl9GUl9QRVJNUyh4KQkJKCh4KSA8PCBTX0ZSX1BFUk1TKQorI2RlZmluZSBHX0ZSX1BFUk1TKHgpCQkoKCgoeCkgPj4gU19GUl9QRVJNUykpICYgTV9GUl9QRVJNUykKKwogc3RydWN0IHQzX2xvY2FsX2ludl93ciB7CiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwogCV9fYmUzMiBzdGFnOwkJLyogMiAqLwotCV9fYmUzMiByZXNlcnZlZDM7CisJX19iZTMyIHJlc2VydmVkOwogfTsKIAogc3RydWN0IHQzX3JkbWFfd3JpdGVfd3IgewpAQCAtMTkzLDcgKzI0Miw4IEBACiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwogCXU4IHJkbWFvcDsJCS8qIDIgKi8KLQl1OCByZXNlcnZlZFszXTsKKwl1OCBsb2NhbF9pbnY7CisJdTggcmVzZXJ2ZWRbMl07CiAJX19iZTMyIHJlbV9zdGFnOwogCV9fYmU2NCByZW1fdG87CQkvKiAzICovCiAJX19iZTMyIGxvY2FsX3N0YWc7CS8qIDQgKi8KQEAgLTIwMSwxOCArMjUxLDYgQEAKIAlfX2JlNjQgbG9jYWxfdG87CS8qIDUgKi8KIH07CiAKLWVudW0gdDNfYWRkcl90eXBlIHsKLQlUM19WQV9CQVNFRF9UTyA9IDB4MCwKLQlUM19aRVJPX0JBU0VEX1RPID0gMHgxCi19IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLQotZW51bSB0M19tZW1fcGVybXMgewotCVQzX01FTV9BQ0NFU1NfTE9DQUxfUkVBRCA9IDB4MSwKLQlUM19NRU1fQUNDRVNTX0xPQ0FMX1dSSVRFID0gMHgyLAotCVQzX01FTV9BQ0NFU1NfUkVNX1JFQUQgPSAweDQsCi0JVDNfTUVNX0FDQ0VTU19SRU1fV1JJVEUgPSAweDgKLX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCiBzdHJ1Y3QgdDNfYmluZF9td193ciB7CiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwpAQCAtMzM2LDYgKzM3NCwxMSBAQAogCV9fYmU2NCBnZW5iaXQ7CiB9OwogCitzdHJ1Y3QgdDNfd3FfaW5fZXJyIHsKKwl1NjQgZmxpdFsxM107CisJdTY0IGVycjsKK307CisKIGVudW0gcmRtYV9pbml0X3dyX2ZsYWdzIHsKIAlNUEFfSU5JVElBVE9SID0gKDE8PDApLAogCVBSSVZfUVAgPSAoMTw8MSksCkBAIC0zNDYsMTMgKzM4OSwxNiBAQAogCXN0cnVjdCB0M19yZG1hX3dyaXRlX3dyIHdyaXRlOwogCXN0cnVjdCB0M19yZG1hX3JlYWRfd3IgcmVhZDsKIAlzdHJ1Y3QgdDNfcmVjZWl2ZV93ciByZWN2OworCXN0cnVjdCB0M19mYXN0cmVnX3dyIGZhc3RyZWc7CisJc3RydWN0IHQzX3BibF9mcmFnIHBibF9mcmFnOwogCXN0cnVjdCB0M19sb2NhbF9pbnZfd3IgbG9jYWxfaW52OwogCXN0cnVjdCB0M19iaW5kX213X3dyIGJpbmQ7CiAJc3RydWN0IHQzX2J5cGFzc193ciBieXBhc3M7CiAJc3RydWN0IHQzX3JkbWFfaW5pdF93ciBpbml0OwogCXN0cnVjdCB0M19tb2RpZnlfcXBfd3IgcXBfbW9kOwogCXN0cnVjdCB0M19nZW5iaXQgZ2VuYml0OwotCXU2NCBmbGl0WzE2XTsKKwlzdHJ1Y3QgdDNfd3FfaW5fZXJyIHdxX2luX2VycjsKKwlfX2JlNjQgZmxpdFsxNl07CiB9OwogCiAjZGVmaW5lIFQzX1NRX0NRRV9GTElUCSAgMTMKQEAgLTM2NiwxMiArNDEyLDE4IEBACiAJcmV0dXJuIEdfRldfUklXUl9PUChiZTMyX3RvX2NwdSh3cWUtPm9wX3Nlb3BfZmxhZ3MpKTsKIH0KIAorZW51bSB0M193cl9oZHJfYml0cyB7CisJVDNfRU9QID0gMSwKKwlUM19TT1AgPSAyLAorCVQzX1NPUEVPUCA9IFQzX0VPUHxUM19TT1AsCit9OworCiBzdGF0aWMgaW5saW5lIHZvaWQgYnVpbGRfZndfcml3cmgoc3RydWN0IGZ3X3Jpd3JoICp3cWUsIGVudW0gdDNfd3Jfb3Bjb2RlIG9wLAogCQkJCSAgZW51bSB0M193cl9mbGFncyBmbGFncywgdTggZ2VuYml0LCB1MzIgdGlkLAotCQkJCSAgdTggbGVuKQorCQkJCSAgdTggbGVuLCB1OCBzb3Blb3ApCiB7CiAJd3FlLT5vcF9zZW9wX2ZsYWdzID0gY3B1X3RvX2JlMzIoVl9GV19SSVdSX09QKG9wKSB8Ci0JCQkJCSBWX0ZXX1JJV1JfU09QRU9QKE1fRldfUklXUl9TT1BFT1ApIHwKKwkJCQkJIFZfRldfUklXUl9TT1BFT1Aoc29wZW9wKSB8CiAJCQkJCSBWX0ZXX1JJV1JfRkxBR1MoZmxhZ3MpKTsKIAl3bWIoKTsKIAl3cWUtPmdlbl90aWRfbGVuID0gY3B1X3RvX2JlMzIoVl9GV19SSVdSX0dFTihnZW5iaXQpIHwKQEAgLTQwNCw2ICs0NTYsNyBAQAogfTsKIAogZW51bSB0cHRfbWVtX3Blcm0geworCVRQVF9NV19CSU5EID0gMHgxMCwKIAlUUFRfTE9DQUxfUkVBRCA9IDB4OCwKIAlUUFRfTE9DQUxfV1JJVEUgPSAweDQsCiAJVFBUX1JFTU9URV9SRUFEID0gMHgyLApAQCAtNjE1LDYgKzY2OCwxMSBAQAogCWludAkJCXNpZ25hbGVkOwogfTsKIAorc3RydWN0IHQzX3N3cnEgeworCV9fdTY0CQkJd3JfaWQ7CisJX191MzIJCQlwYmxfYWRkcjsKK307CisKIC8qCiAgKiBBIFQzIFdRIGltcGxlbWVudHMgYm90aCB0aGUgU1EgYW5kIFJRLgogICovCkBAIC02MzEsMTQgKzY4OSwxNSBAQAogCXUzMiBzcV93cHRyOwkJCS8qIHNxX3dwdHIgLSBzcV9ycHRyID09IGNvdW50IG9mICovCiAJdTMyIHNxX3JwdHI7CQkJLyogcGVuZGluZyB3cnMgKi8KIAl1MzIgc3Ffc2l6ZV9sb2cyOwkJLyogc3Egc2l6ZSAqLwotCXU2NCAqcnE7CQkJLyogU1cgUlEgKGhvbGRzIGNvbnN1bWVyIHdyX2lkcyAqLworCXN0cnVjdCB0M19zd3JxICpycTsJCS8qIFNXIFJRIChob2xkcyBjb25zdW1lciB3cl9pZHMgKi8KIAl1MzIgcnFfd3B0cjsJCQkvKiBycV93cHRyIC0gcnFfcnB0ciA9PSBjb3VudCBvZiAqLwogCXUzMiBycV9ycHRyOwkJCS8qIHBlbmRpbmcgd3JzICovCi0JdTY0ICpycV9vbGRlc3Rfd3I7CQkvKiBvbGRlc3Qgd3Igb24gdGhlIFNXIFJRICovCisJc3RydWN0IHQzX3N3cnEgKnJxX29sZGVzdF93cjsJLyogb2xkZXN0IHdyIG9uIHRoZSBTVyBSUSAqLwogCXUzMiBycV9zaXplX2xvZzI7CQkvKiBycSBzaXplICovCiAJdTMyIHJxX2FkZHI7CQkJLyogcnEgYWRhcHRlciBhZGRyZXNzICovCiAJdm9pZCBfX2lvbWVtICpkb29yYmVsbDsJCS8qIGtlcm5lbCBkYiAqLwogCXU2NCB1ZGI7CQkJLyogdXNlciBkYiBpZiBhbnkgKi8KKwlzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2OwogfTsKIAogc3RydWN0IHQzX2NxIHsKQEAgLTY1OSw3ICs3MTgsNyBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgY3hpb19zZXRfd3FfaW5fZXJyb3Ioc3RydWN0IHQzX3dxICp3cSkKIHsKLQl3cS0+cXVldWUtPmZsaXRbMTNdID0gMTsKKwl3cS0+cXVldWUtPndxX2luX2Vyci5lcnIgPSAxOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0M19jcWUgKmN4aW9fbmV4dF9od19jcWUoc3RydWN0IHQzX2NxICpjcSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5jCmluZGV4IDcxNTU0ZWEuLjQ0ODljODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guYwpAQCAtNzEsMTggKzcxLDE2IEBACiAJaWRyX2luaXQoJnJuaWNwLT5tbWlkcik7CiAJc3Bpbl9sb2NrX2luaXQoJnJuaWNwLT5sb2NrKTsKIAotCXJuaWNwLT5hdHRyLnZlbmRvcl9pZCA9IDB4MTY4OwotCXJuaWNwLT5hdHRyLnZlbmRvcl9wYXJ0X2lkID0gNzsKIAlybmljcC0+YXR0ci5tYXhfcXBzID0gVDNfTUFYX05VTV9RUCAtIDMyOwotCXJuaWNwLT5hdHRyLm1heF93cnMgPSAoMVVMIDw8IDI0KSAtIDE7CisJcm5pY3AtPmF0dHIubWF4X3dycyA9IFQzX01BWF9RUF9ERVBUSDsKIAlybmljcC0+YXR0ci5tYXhfc2dlX3Blcl93ciA9IFQzX01BWF9TR0U7CiAJcm5pY3AtPmF0dHIubWF4X3NnZV9wZXJfcmRtYV93cml0ZV93ciA9IFQzX01BWF9TR0U7CiAJcm5pY3AtPmF0dHIubWF4X2NxcyA9IFQzX01BWF9OVU1fQ1EgLSAxOwotCXJuaWNwLT5hdHRyLm1heF9jcWVzX3Blcl9jcSA9ICgxVUwgPDwgMjQpIC0gMTsKKwlybmljcC0+YXR0ci5tYXhfY3Flc19wZXJfY3EgPSBUM19NQVhfQ1FfREVQVEg7CiAJcm5pY3AtPmF0dHIubWF4X21lbV9yZWdzID0gY3hpb19udW1fc3RhZ3MoJnJuaWNwLT5yZGV2KTsKIAlybmljcC0+YXR0ci5tYXhfcGh5c19idWZfZW50cmllcyA9IFQzX01BWF9QQkxfU0laRTsKIAlybmljcC0+YXR0ci5tYXhfcGRzID0gVDNfTUFYX05VTV9QRCAtIDE7Ci0Jcm5pY3AtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzayA9IDB4N0ZGRjsJLyogNEtCLTEyOE1CICovCisJcm5pY3AtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzayA9IFQzX1BBR0VTSVpFX01BU0s7CiAJcm5pY3AtPmF0dHIubWF4X21yX3NpemUgPSBUM19NQVhfTVJfU0laRTsKIAlybmljcC0+YXR0ci5jYW5fcmVzaXplX3dxID0gMDsKIAlybmljcC0+YXR0ci5tYXhfcmRtYV9yZWFkc19wZXJfcXAgPSA4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmgKaW5kZXggZDI0MDlhNS4uMzc3MzQ1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5oCkBAIC00OCw4ICs0OCw2IEBACiBzdHJ1Y3QgaXdjaF9tcjsKIAogc3RydWN0IGl3Y2hfcm5pY19hdHRyaWJ1dGVzIHsKLQl1MzIgdmVuZG9yX2lkOwotCXUzMiB2ZW5kb3JfcGFydF9pZDsKIAl1MzIgbWF4X3FwczsKIAl1MzIgbWF4X3dyczsJCQkJLyogTWF4IGZvciBhbnkgU1EvUlEgKi8KIAl1MzIgbWF4X3NnZV9wZXJfd3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfY3EuYwppbmRleCA0ZWU4Y2NkLi5jZjU0NzRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX2NxLmMKQEAgLTgxLDYgKzgxLDcgQEAKIAl3Yy0+d3JfaWQgPSBjb29raWU7CiAJd2MtPnFwID0gJnFocC0+aWJxcDsKIAl3Yy0+dmVuZG9yX2VyciA9IENRRV9TVEFUVVMoY3FlKTsKKwl3Yy0+d2NfZmxhZ3MgPSAwOwogCiAJUERCRygiJXMgcXBpZCAweCV4IHR5cGUgJWQgb3Bjb2RlICVkIHN0YXR1cyAweCV4IHdyaWQgaGkgMHgleCAiCiAJICAgICAibG8gMHgleCBjb29raWUgMHglbGx4XG4iLCBfX2Z1bmNfXywKQEAgLTk0LDYgKzk1LDExIEBACiAJCWVsc2UKIAkJCXdjLT5ieXRlX2xlbiA9IDA7CiAJCXdjLT5vcGNvZGUgPSBJQl9XQ19SRUNWOworCQlpZiAoQ1FFX09QQ09ERShjcWUpID09IFQzX1NFTkRfV0lUSF9JTlYgfHwKKwkJICAgIENRRV9PUENPREUoY3FlKSA9PSBUM19TRU5EX1dJVEhfU0VfSU5WKSB7CisJCQl3Yy0+ZXguaW52YWxpZGF0ZV9ya2V5ID0gQ1FFX1dSSURfU1RBRyhjcWUpOworCQkJd2MtPndjX2ZsYWdzIHw9IElCX1dDX1dJVEhfSU5WQUxJREFURTsKKwkJfQogCX0gZWxzZSB7CiAJCXN3aXRjaCAoQ1FFX09QQ09ERShjcWUpKSB7CiAJCWNhc2UgVDNfUkRNQV9XUklURToKQEAgLTEwNSwxNyArMTExLDIwIEBACiAJCQlicmVhazsKIAkJY2FzZSBUM19TRU5EOgogCQljYXNlIFQzX1NFTkRfV0lUSF9TRToKKwkJY2FzZSBUM19TRU5EX1dJVEhfSU5WOgorCQljYXNlIFQzX1NFTkRfV0lUSF9TRV9JTlY6CiAJCQl3Yy0+b3Bjb2RlID0gSUJfV0NfU0VORDsKIAkJCWJyZWFrOwogCQljYXNlIFQzX0JJTkRfTVc6CiAJCQl3Yy0+b3Bjb2RlID0gSUJfV0NfQklORF9NVzsKIAkJCWJyZWFrOwogCi0JCS8qIHRoZXNlIGFyZW4ndCBzdXBwb3J0ZWQgeWV0ICovCi0JCWNhc2UgVDNfU0VORF9XSVRIX0lOVjoKLQkJY2FzZSBUM19TRU5EX1dJVEhfU0VfSU5WOgogCQljYXNlIFQzX0xPQ0FMX0lOVjoKKwkJCXdjLT5vcGNvZGUgPSBJQl9XQ19MT0NBTF9JTlY7CisJCQlicmVhazsKIAkJY2FzZSBUM19GQVNUX1JFR0lTVEVSOgorCQkJd2MtPm9wY29kZSA9IElCX1dDX0ZBU1RfUkVHX01SOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlwcmludGsoS0VSTl9FUlIgTU9EICJVbmV4cGVjdGVkIG9wY29kZSAlZCAiCiAJCQkgICAgICAgImluIHRoZSBDUUUgcmVjZWl2ZWQgZm9yIFFQSUQ9MHglMHhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuYwppbmRleCA4OTM0MTc4Li5iODk2NDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJpd2NoX3Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiaXdjaF9jbS5oIgogI2luY2x1ZGUgIml3Y2hfdXNlci5oIgorI2luY2x1ZGUgImNvbW1vbi5oIgogCiBzdGF0aWMgaW50IGl3Y2hfbW9kaWZ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkgICAgdTggcG9ydCwgaW50IHBvcnRfbW9kaWZ5X21hc2ssCkBAIC03NDcsNiArNzQ4LDcgQEAKIAltaHAtPmF0dHIudHlwZSA9IFRQVF9NVzsKIAltaHAtPmF0dHIuc3RhZyA9IHN0YWc7CiAJbW1pZCA9IChzdGFnKSA+PiA4OworCW1ocC0+aWJtdy5ya2V5ID0gc3RhZzsKIAlpbnNlcnRfaGFuZGxlKHJocCwgJnJocC0+bW1pZHIsIG1ocCwgbW1pZCk7CiAJUERCRygiJXMgbW1pZCAweCV4IG1ocCAlcCBzdGFnIDB4JXhcbiIsIF9fZnVuY19fLCBtbWlkLCBtaHAsIHN0YWcpOwogCXJldHVybiAmKG1ocC0+aWJtdyk7CkBAIC03NjgsNiArNzcwLDY4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaWJfbXIgKml3Y2hfYWxsb2NfZmFzdF9yZWdfbXIoc3RydWN0IGliX3BkICpwZCwgaW50IHBibF9kZXB0aCkKK3sKKwlzdHJ1Y3QgaXdjaF9kZXYgKnJocDsKKwlzdHJ1Y3QgaXdjaF9wZCAqcGhwOworCXN0cnVjdCBpd2NoX21yICptaHA7CisJdTMyIG1taWQ7CisJdTMyIHN0YWcgPSAwOworCWludCByZXQ7CisKKwlwaHAgPSB0b19pd2NoX3BkKHBkKTsKKwlyaHAgPSBwaHAtPnJocDsKKwltaHAgPSBremFsbG9jKHNpemVvZigqbWhwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtaHApCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJbWhwLT5yaHAgPSByaHA7CisJcmV0ID0gaXdjaF9hbGxvY19wYmwobWhwLCBwYmxfZGVwdGgpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUobWhwKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisJbWhwLT5hdHRyLnBibF9zaXplID0gcGJsX2RlcHRoOworCXJldCA9IGN4aW9fYWxsb2NhdGVfc3RhZygmcmhwLT5yZGV2LCAmc3RhZywgcGhwLT5wZGlkLAorCQkJCSBtaHAtPmF0dHIucGJsX3NpemUsIG1ocC0+YXR0ci5wYmxfYWRkcik7CisJaWYgKHJldCkgeworCQlpd2NoX2ZyZWVfcGJsKG1ocCk7CisJCWtmcmVlKG1ocCk7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CisJfQorCW1ocC0+YXR0ci5wZGlkID0gcGhwLT5wZGlkOworCW1ocC0+YXR0ci50eXBlID0gVFBUX05PTl9TSEFSRURfTVI7CisJbWhwLT5hdHRyLnN0YWcgPSBzdGFnOworCW1ocC0+YXR0ci5zdGF0ZSA9IDE7CisJbW1pZCA9IChzdGFnKSA+PiA4OworCW1ocC0+aWJtci5ya2V5ID0gbWhwLT5pYm1yLmxrZXkgPSBzdGFnOworCWluc2VydF9oYW5kbGUocmhwLCAmcmhwLT5tbWlkciwgbWhwLCBtbWlkKTsKKwlQREJHKCIlcyBtbWlkIDB4JXggbWhwICVwIHN0YWcgMHgleFxuIiwgX19mdW5jX18sIG1taWQsIG1ocCwgc3RhZyk7CisJcmV0dXJuICYobWhwLT5pYm1yKTsKK30KKworc3RhdGljIHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKml3Y2hfYWxsb2NfZmFzdHJlZ19wYmwoCisJCQkJCXN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCQkJaW50IHBhZ2VfbGlzdF9sZW4pCit7CisJc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqcGFnZV9saXN0OworCisJcGFnZV9saXN0ID0ga21hbGxvYyhzaXplb2YgKnBhZ2VfbGlzdCArIHBhZ2VfbGlzdF9sZW4gKiBzaXplb2YodTY0KSwKKwkJCSAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXBhZ2VfbGlzdCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlwYWdlX2xpc3QtPnBhZ2VfbGlzdCA9ICh1NjQgKikocGFnZV9saXN0ICsgMSk7CisJcGFnZV9saXN0LT5tYXhfcGFnZV9saXN0X2xlbiA9IHBhZ2VfbGlzdF9sZW47CisKKwlyZXR1cm4gcGFnZV9saXN0OworfQorCitzdGF0aWMgdm9pZCBpd2NoX2ZyZWVfZmFzdHJlZ19wYmwoc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqcGFnZV9saXN0KQoreworCWtmcmVlKHBhZ2VfbGlzdCk7Cit9CisKIHN0YXRpYyBpbnQgaXdjaF9kZXN0cm95X3FwKHN0cnVjdCBpYl9xcCAqaWJfcXApCiB7CiAJc3RydWN0IGl3Y2hfZGV2ICpyaHA7CkBAIC04NDMsNiArOTA3LDE1IEBACiAJICovCiAJc3FzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKGF0dHJzLT5jYXAubWF4X3NlbmRfd3IpOwogCXdxc2l6ZSA9IHJvdW5kdXBfcG93X29mX3R3byhycXNpemUgKyBzcXNpemUpOworCisJLyoKKwkgKiBLZXJuZWwgdXNlcnMgbmVlZCBtb3JlIHdxIHNwYWNlIGZvciBmYXN0cmVnIFdScyB3aGljaCBjYW4gdGFrZQorCSAqIDIgV1IgZnJhZ21lbnRzLgorCSAqLworCXVjb250ZXh0ID0gcGQtPnVvYmplY3QgPyB0b19pd2NoX3Vjb250ZXh0KHBkLT51b2JqZWN0LT5jb250ZXh0KSA6IE5VTEw7CisJaWYgKCF1Y29udGV4dCAmJiB3cXNpemUgPCAocnFzaXplICsgKDIgKiBzcXNpemUpKSkKKwkJd3FzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKHJxc2l6ZSArCisJCQkJcm91bmR1cF9wb3dfb2ZfdHdvKGF0dHJzLT5jYXAubWF4X3NlbmRfd3IgKiAyKSk7CiAJUERCRygiJXMgd3FzaXplICVkIHNxc2l6ZSAlZCBycXNpemUgJWRcbiIsIF9fZnVuY19fLAogCSAgICAgd3FzaXplLCBzcXNpemUsIHJxc2l6ZSk7CiAJcWhwID0ga3phbGxvYyhzaXplb2YoKnFocCksIEdGUF9LRVJORUwpOwpAQCAtODUxLDcgKzkyNCw2IEBACiAJcWhwLT53cS5zaXplX2xvZzIgPSBpbG9nMih3cXNpemUpOwogCXFocC0+d3EucnFfc2l6ZV9sb2cyID0gaWxvZzIocnFzaXplKTsKIAlxaHAtPndxLnNxX3NpemVfbG9nMiA9IGlsb2cyKHNxc2l6ZSk7Ci0JdWNvbnRleHQgPSBwZC0+dW9iamVjdCA/IHRvX2l3Y2hfdWNvbnRleHQocGQtPnVvYmplY3QtPmNvbnRleHQpIDogTlVMTDsKIAlpZiAoY3hpb19jcmVhdGVfcXAoJnJocC0+cmRldiwgIXVkYXRhLCAmcWhwLT53cSwKIAkJCSAgIHVjb250ZXh0ID8gJnVjb250ZXh0LT51Y3R4IDogJnJocC0+cmRldi51Y3R4KSkgewogCQlrZnJlZShxaHApOwpAQCAtOTM1LDEwICsxMDA3LDEwIEBACiAJcWhwLT5pYnFwLnFwX251bSA9IHFocC0+d3EucXBpZDsKIAlpbml0X3RpbWVyKCYocWhwLT50aW1lcikpOwogCVBEQkcoIiVzIHNxX251bV9lbnRyaWVzICVkLCBycV9udW1fZW50cmllcyAlZCAiCi0JICAgICAicXBpZCAweCUweCBxaHAgJXAgZG1hX2FkZHIgMHglbGx4IHNpemUgJWRcbiIsCisJICAgICAicXBpZCAweCUweCBxaHAgJXAgZG1hX2FkZHIgMHglbGx4IHNpemUgJWQgcnFfYWRkciAweCV4XG4iLAogCSAgICAgX19mdW5jX18sIHFocC0+YXR0ci5zcV9udW1fZW50cmllcywgcWhwLT5hdHRyLnJxX251bV9lbnRyaWVzLAogCSAgICAgcWhwLT53cS5xcGlkLCBxaHAsICh1bnNpZ25lZCBsb25nIGxvbmcpIHFocC0+d3EuZG1hX2FkZHIsCi0JICAgICAxIDw8IHFocC0+d3Euc2l6ZV9sb2cyKTsKKwkgICAgIDEgPDwgcWhwLT53cS5zaXplX2xvZzIsIHFocC0+d3EucnFfYWRkcik7CiAJcmV0dXJuICZxaHAtPmlicXA7CiB9CiAKQEAgLTEwMjMsNiArMTA5NSwyOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTY0IGZ3X3ZlcnNfc3RyaW5nX3RvX3U2NChzdHJ1Y3QgaXdjaF9kZXYgKml3Y2hfZGV2KQoreworCXN0cnVjdCBldGh0b29sX2RydmluZm8gaW5mbzsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CisJY2hhciAqY3AsICpuZXh0OworCXVuc2lnbmVkIGZ3X21haiwgZndfbWluLCBmd19taWM7CisKKwlydG5sX2xvY2soKTsKKwlsbGRldi0+ZXRodG9vbF9vcHMtPmdldF9kcnZpbmZvKGxsZGV2LCAmaW5mbyk7CisJcnRubF91bmxvY2soKTsKKworCW5leHQgPSBpbmZvLmZ3X3ZlcnNpb24gKyAxOworCWNwID0gc3Ryc2VwKCZuZXh0LCAiLiIpOworCXNzY2FuZihjcCwgIiVpIiwgJmZ3X21haik7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWluKTsKKwljcCA9IHN0cnNlcCgmbmV4dCwgIi4iKTsKKwlzc2NhbmYoY3AsICIlaSIsICZmd19taWMpOworCisJcmV0dXJuICgoKHU2NClmd19tYWogJiAweGZmZmYpIDw8IDMyKSB8ICgoZndfbWluICYgMHhmZmZmKSA8PCAxNikgfAorCSAgICAgICAoZndfbWljICYgMHhmZmZmKTsKK30KKwogc3RhdGljIGludCBpd2NoX3F1ZXJ5X2RldmljZShzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKIAkJCSAgICAgc3RydWN0IGliX2RldmljZV9hdHRyICpwcm9wcykKIHsKQEAgLTEwMzMsNyArMTEyOCwxMCBAQAogCWRldiA9IHRvX2l3Y2hfZGV2KGliZGV2KTsKIAltZW1zZXQocHJvcHMsIDAsIHNpemVvZiAqcHJvcHMpOwogCW1lbWNweSgmcHJvcHMtPnN5c19pbWFnZV9ndWlkLCBkZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2LT5kZXZfYWRkciwgNik7CisJcHJvcHMtPmh3X3ZlciA9IGRldi0+cmRldi50M2NkZXZfcC0+dHlwZTsKKwlwcm9wcy0+ZndfdmVyID0gZndfdmVyc19zdHJpbmdfdG9fdTY0KGRldik7CiAJcHJvcHMtPmRldmljZV9jYXBfZmxhZ3MgPSBkZXYtPmRldmljZV9jYXBfZmxhZ3M7CisJcHJvcHMtPnBhZ2Vfc2l6ZV9jYXAgPSBkZXYtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzazsKIAlwcm9wcy0+dmVuZG9yX2lkID0gKHUzMilkZXYtPnJkZXYucm5pY19pbmZvLnBkZXYtPnZlbmRvcjsKIAlwcm9wcy0+dmVuZG9yX3BhcnRfaWQgPSAodTMyKWRldi0+cmRldi5ybmljX2luZm8ucGRldi0+ZGV2aWNlOwogCXByb3BzLT5tYXhfbXJfc2l6ZSA9IGRldi0+YXR0ci5tYXhfbXJfc2l6ZTsKQEAgLTEwNDgsNiArMTE0Niw3IEBACiAJcHJvcHMtPm1heF9tciA9IGRldi0+YXR0ci5tYXhfbWVtX3JlZ3M7CiAJcHJvcHMtPm1heF9wZCA9IGRldi0+YXR0ci5tYXhfcGRzOwogCXByb3BzLT5sb2NhbF9jYV9hY2tfZGVsYXkgPSAwOworCXByb3BzLT5tYXhfZmFzdF9yZWdfcGFnZV9saXN0X2xlbiA9IFQzX01BWF9GQVNUUkVHX0RFUFRIOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDg4LDYgKzExODcsMjggQEAKIAlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPnR5cGUpOwogfQogCitzdGF0aWMgaW50IGZ3X3N1cHBvcnRzX2Zhc3RyZWcoc3RydWN0IGl3Y2hfZGV2ICppd2NoX2RldikKK3sKKwlzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvIGluZm87CisJc3RydWN0IG5ldF9kZXZpY2UgKmxsZGV2ID0gaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2OworCWNoYXIgKmNwLCAqbmV4dDsKKwl1bnNpZ25lZCBmd19tYWosIGZ3X21pbjsKKworCXJ0bmxfbG9jaygpOworCWxsZGV2LT5ldGh0b29sX29wcy0+Z2V0X2RydmluZm8obGxkZXYsICZpbmZvKTsKKwlydG5sX3VubG9jaygpOworCisJbmV4dCA9IGluZm8uZndfdmVyc2lvbisxOworCWNwID0gc3Ryc2VwKCZuZXh0LCAiLiIpOworCXNzY2FuZihjcCwgIiVpIiwgJmZ3X21haik7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWluKTsKKworCVBEQkcoIiVzIG1haiAldSBtaW4gJXVcbiIsIF9fZnVuY19fLCBmd19tYWosIGZ3X21pbik7CisKKwlyZXR1cm4gZndfbWFqID4gNiB8fCAoZndfbWFqID09IDYgJiYgZndfbWluID4gMCk7Cit9CisKIHN0YXRpYyBzc2l6ZV90IHNob3dfZndfdmVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgaXdjaF9kZXYgKml3Y2hfZGV2ID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGl3Y2hfZGV2LApAQCAtMTA5Niw3ICsxMjE3LDkgQEAKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CiAKIAlQREJHKCIlcyBkZXYgMHglcFxuIiwgX19mdW5jX18sIGRldik7CisJcnRubF9sb2NrKCk7CiAJbGxkZXYtPmV0aHRvb2xfb3BzLT5nZXRfZHJ2aW5mbyhsbGRldiwgJmluZm8pOworCXJ0bmxfdW5sb2NrKCk7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIGluZm8uZndfdmVyc2lvbik7CiB9CiAKQEAgLTExMDksNyArMTIzMiw5IEBACiAJc3RydWN0IG5ldF9kZXZpY2UgKmxsZGV2ID0gaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2OwogCiAJUERCRygiJXMgZGV2IDB4JXBcbiIsIF9fZnVuY19fLCBkZXYpOworCXJ0bmxfbG9jaygpOwogCWxsZGV2LT5ldGh0b29sX29wcy0+Z2V0X2RydmluZm8obGxkZXYsICZpbmZvKTsKKwlydG5sX3VubG9jaygpOwogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCBpbmZvLmRyaXZlcik7CiB9CiAKQEAgLTExMjMsNiArMTI0OCw2MSBAQAogCQkgICAgICAgaXdjaF9kZXYtPnJkZXYucm5pY19pbmZvLnBkZXYtPmRldmljZSk7CiB9CiAKK3N0YXRpYyBpbnQgaXdjaF9nZXRfbWliKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAorCQkJdW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyAqc3RhdHMpCit7CisJc3RydWN0IGl3Y2hfZGV2ICpkZXY7CisJc3RydWN0IHRwX21pYl9zdGF0cyBtOworCWludCByZXQ7CisKKwlQREJHKCIlcyBpYmRldiAlcFxuIiwgX19mdW5jX18sIGliZGV2KTsKKwlkZXYgPSB0b19pd2NoX2RldihpYmRldik7CisJcmV0ID0gZGV2LT5yZGV2LnQzY2Rldl9wLT5jdGwoZGV2LT5yZGV2LnQzY2Rldl9wLCBSRE1BX0dFVF9NSUIsICZtKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVOT1NZUzsKKworCW1lbXNldChzdGF0cywgMCwgc2l6ZW9mICpzdGF0cyk7CisJc3RhdHMtPml3LmlwSW5SZWNlaXZlcyA9ICgodTY0KSBtLmlwSW5SZWNlaXZlX2hpIDw8IDMyKSArCisJCQkJbS5pcEluUmVjZWl2ZV9sbzsKKwlzdGF0cy0+aXcuaXBJbkhkckVycm9ycyA9ICgodTY0KSBtLmlwSW5IZHJFcnJvcnNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBJbkhkckVycm9yc19sbzsKKwlzdGF0cy0+aXcuaXBJbkFkZHJFcnJvcnMgPSAoKHU2NCkgbS5pcEluQWRkckVycm9yc19oaSA8PCAzMikgKworCQkJCSAgIG0uaXBJbkFkZHJFcnJvcnNfbG87CisJc3RhdHMtPml3LmlwSW5Vbmtub3duUHJvdG9zID0gKCh1NjQpIG0uaXBJblVua25vd25Qcm90b3NfaGkgPDwgMzIpICsKKwkJCQkgICAgICBtLmlwSW5Vbmtub3duUHJvdG9zX2xvOworCXN0YXRzLT5pdy5pcEluRGlzY2FyZHMgPSAoKHU2NCkgbS5pcEluRGlzY2FyZHNfaGkgPDwgMzIpICsKKwkJCQkgbS5pcEluRGlzY2FyZHNfbG87CisJc3RhdHMtPml3LmlwSW5EZWxpdmVycyA9ICgodTY0KSBtLmlwSW5EZWxpdmVyc19oaSA8PCAzMikgKworCQkJCSBtLmlwSW5EZWxpdmVyc19sbzsKKwlzdGF0cy0+aXcuaXBPdXRSZXF1ZXN0cyA9ICgodTY0KSBtLmlwT3V0UmVxdWVzdHNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXRSZXF1ZXN0c19sbzsKKwlzdGF0cy0+aXcuaXBPdXREaXNjYXJkcyA9ICgodTY0KSBtLmlwT3V0RGlzY2FyZHNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXREaXNjYXJkc19sbzsKKwlzdGF0cy0+aXcuaXBPdXROb1JvdXRlcyA9ICgodTY0KSBtLmlwT3V0Tm9Sb3V0ZXNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXROb1JvdXRlc19sbzsKKwlzdGF0cy0+aXcuaXBSZWFzbVRpbWVvdXQgPSAodTY0KSBtLmlwUmVhc21UaW1lb3V0OworCXN0YXRzLT5pdy5pcFJlYXNtUmVxZHMgPSAodTY0KSBtLmlwUmVhc21SZXFkczsKKwlzdGF0cy0+aXcuaXBSZWFzbU9LcyA9ICh1NjQpIG0uaXBSZWFzbU9LczsKKwlzdGF0cy0+aXcuaXBSZWFzbUZhaWxzID0gKHU2NCkgbS5pcFJlYXNtRmFpbHM7CisJc3RhdHMtPml3LnRjcEFjdGl2ZU9wZW5zID0gKHU2NCkgbS50Y3BBY3RpdmVPcGVuczsKKwlzdGF0cy0+aXcudGNwUGFzc2l2ZU9wZW5zID0gKHU2NCkgbS50Y3BQYXNzaXZlT3BlbnM7CisJc3RhdHMtPml3LnRjcEF0dGVtcHRGYWlscyA9ICh1NjQpIG0udGNwQXR0ZW1wdEZhaWxzOworCXN0YXRzLT5pdy50Y3BFc3RhYlJlc2V0cyA9ICh1NjQpIG0udGNwRXN0YWJSZXNldHM7CisJc3RhdHMtPml3LnRjcE91dFJzdHMgPSAodTY0KSBtLnRjcE91dFJzdHM7CisJc3RhdHMtPml3LnRjcEN1cnJFc3RhYiA9ICh1NjQpIG0udGNwQ3VyckVzdGFiOworCXN0YXRzLT5pdy50Y3BJblNlZ3MgPSAoKHU2NCkgbS50Y3BJblNlZ3NfaGkgPDwgMzIpICsKKwkJCSAgICAgIG0udGNwSW5TZWdzX2xvOworCXN0YXRzLT5pdy50Y3BPdXRTZWdzID0gKCh1NjQpIG0udGNwT3V0U2Vnc19oaSA8PCAzMikgKworCQkJICAgICAgIG0udGNwT3V0U2Vnc19sbzsKKwlzdGF0cy0+aXcudGNwUmV0cmFuc1NlZ3MgPSAoKHU2NCkgbS50Y3BSZXRyYW5zU2VnX2hpIDw8IDMyKSArCisJCQkJICBtLnRjcFJldHJhbnNTZWdfbG87CisJc3RhdHMtPml3LnRjcEluRXJycyA9ICgodTY0KSBtLnRjcEluRXJyc19oaSA8PCAzMikgKworCQkJICAgICAgbS50Y3BJbkVycnNfbG87CisJc3RhdHMtPml3LnRjcFJ0b01pbiA9ICh1NjQpIG0udGNwUnRvTWluOworCXN0YXRzLT5pdy50Y3BSdG9NYXggPSAodTY0KSBtLnRjcFJ0b01heDsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIERFVklDRV9BVFRSKGh3X3JldiwgU19JUlVHTywgc2hvd19yZXYsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGZ3X3ZlciwgU19JUlVHTywgc2hvd19md192ZXIsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGhjYV90eXBlLCBTX0lSVUdPLCBzaG93X2hjYSwgTlVMTCk7CkBAIC0xMTMyLDcgKzEzMTIsNyBAQAogCSZkZXZfYXR0cl9od19yZXYsCiAJJmRldl9hdHRyX2Z3X3ZlciwKIAkmZGV2X2F0dHJfaGNhX3R5cGUsCi0JJmRldl9hdHRyX2JvYXJkX2lkCisJJmRldl9hdHRyX2JvYXJkX2lkLAogfTsKIAogaW50IGl3Y2hfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBpd2NoX2RldiAqZGV2KQpAQCAtMTE0NSw4ICsxMzI1LDEyIEBACiAJbWVtc2V0KCZkZXYtPmliZGV2Lm5vZGVfZ3VpZCwgMCwgc2l6ZW9mKGRldi0+aWJkZXYubm9kZV9ndWlkKSk7CiAJbWVtY3B5KCZkZXYtPmliZGV2Lm5vZGVfZ3VpZCwgZGV2LT5yZGV2LnQzY2Rldl9wLT5sbGRldi0+ZGV2X2FkZHIsIDYpOwogCWRldi0+aWJkZXYub3duZXIgPSBUSElTX01PRFVMRTsKLQlkZXYtPmRldmljZV9jYXBfZmxhZ3MgPQotCSAgICAoSUJfREVWSUNFX1pFUk9fU1RBRyB8IElCX0RFVklDRV9NRU1fV0lORE9XKTsKKwlkZXYtPmRldmljZV9jYXBfZmxhZ3MgPSBJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkgfCBJQl9ERVZJQ0VfTUVNX1dJTkRPVzsKKworCS8qIGN4Z2IzIHN1cHBvcnRzIFNUYWcgMC4gKi8KKwlkZXYtPmliZGV2LmxvY2FsX2RtYV9sa2V5ID0gMDsKKwlpZiAoZndfc3VwcG9ydHNfZmFzdHJlZyhkZXYpKQorCQlkZXYtPmRldmljZV9jYXBfZmxhZ3MgfD0gSUJfREVWSUNFX01FTV9NR1RfRVhURU5TSU9OUzsKIAogCWRldi0+aWJkZXYudXZlcmJzX2NtZF9tYXNrID0KIAkgICAgKDF1bGwgPDwgSUJfVVNFUl9WRVJCU19DTURfR0VUX0NPTlRFWFQpIHwKQEAgLTExOTgsMTUgKzEzODIsMTYgQEAKIAlkZXYtPmliZGV2LmFsbG9jX213ID0gaXdjaF9hbGxvY19tdzsKIAlkZXYtPmliZGV2LmJpbmRfbXcgPSBpd2NoX2JpbmRfbXc7CiAJZGV2LT5pYmRldi5kZWFsbG9jX213ID0gaXdjaF9kZWFsbG9jX213OwotCisJZGV2LT5pYmRldi5hbGxvY19mYXN0X3JlZ19tciA9IGl3Y2hfYWxsb2NfZmFzdF9yZWdfbXI7CisJZGV2LT5pYmRldi5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QgPSBpd2NoX2FsbG9jX2Zhc3RyZWdfcGJsOworCWRldi0+aWJkZXYuZnJlZV9mYXN0X3JlZ19wYWdlX2xpc3QgPSBpd2NoX2ZyZWVfZmFzdHJlZ19wYmw7CiAJZGV2LT5pYmRldi5hdHRhY2hfbWNhc3QgPSBpd2NoX211bHRpY2FzdF9hdHRhY2g7CiAJZGV2LT5pYmRldi5kZXRhY2hfbWNhc3QgPSBpd2NoX211bHRpY2FzdF9kZXRhY2g7CiAJZGV2LT5pYmRldi5wcm9jZXNzX21hZCA9IGl3Y2hfcHJvY2Vzc19tYWQ7Ci0KIAlkZXYtPmliZGV2LnJlcV9ub3RpZnlfY3EgPSBpd2NoX2FybV9jcTsKIAlkZXYtPmliZGV2LnBvc3Rfc2VuZCA9IGl3Y2hfcG9zdF9zZW5kOwogCWRldi0+aWJkZXYucG9zdF9yZWN2ID0gaXdjaF9wb3N0X3JlY2VpdmU7Ci0KKwlkZXYtPmliZGV2LmdldF9wcm90b2NvbF9zdGF0cyA9IGl3Y2hfZ2V0X21pYjsKIAogCWRldi0+aWJkZXYuaXdjbSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpd19jbV92ZXJicyksIEdGUF9LRVJORUwpOwogCWlmICghZGV2LT5pYmRldi5pd2NtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmgKaW5kZXggODM2MTYzZi4uZjVjZWNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5oCkBAIC0yOTYsMTQgKzI5Niw2IEBACiAJICAgICAgIFRQVF9MT0NBTF9SRUFEOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBpd2NoX2liX3RvX213YmluZF9hY2Nlc3MoaW50IGFjYykKLXsKLQlyZXR1cm4gKGFjYyAmIElCX0FDQ0VTU19SRU1PVEVfV1JJVEUgPyBUM19NRU1fQUNDRVNTX1JFTV9XUklURSA6IDApIHwKLQkgICAgICAgKGFjYyAmIElCX0FDQ0VTU19SRU1PVEVfUkVBRCA/IFQzX01FTV9BQ0NFU1NfUkVNX1JFQUQgOiAwKSB8Ci0JICAgICAgIChhY2MgJiBJQl9BQ0NFU1NfTE9DQUxfV1JJVEUgPyBUM19NRU1fQUNDRVNTX0xPQ0FMX1dSSVRFIDogMCkgfAotCSAgICAgICBUM19NRU1fQUNDRVNTX0xPQ0FMX1JFQUQ7Ci19Ci0KIGVudW0gaXdjaF9tbWlkX3N0YXRlIHsKIAlJV0NIX1NUQUdfU1RBVEVfVkFMSUQsCiAJSVdDSF9TVEFHX1NUQVRFX0lOVkFMSUQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9xcC5jCmluZGV4IDk5MjYxMzcuLjlhM2JlM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcXAuYwpAQCAtMzMsMTAgKzMzLDExIEBACiAjaW5jbHVkZSAiaXdjaC5oIgogI2luY2x1ZGUgIml3Y2hfY20uaCIKICNpbmNsdWRlICJjeGlvX2hhbC5oIgorI2luY2x1ZGUgImN4aW9fcmVzb3VyY2UuaCIKIAogI2RlZmluZSBOT19TVVBQT1JUIC0xCiAKLXN0YXRpYyBpbnQgaXdjaF9idWlsZF9yZG1hX3NlbmQodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorc3RhdGljIGludCBidWlsZF9yZG1hX3NlbmQodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAogCQkJCXU4ICogZmxpdF9jbnQpCiB7CiAJaW50IGk7CkBAIC00NCw1OSArNDUsNDQgQEAKIAogCXN3aXRjaCAod3ItPm9wY29kZSkgewogCWNhc2UgSUJfV1JfU0VORDoKLQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfU09MSUNJVEVEKQogCQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkRfV0lUSF9TRTsKIAkJZWxzZQogCQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkQ7CiAJCXdxZS0+c2VuZC5yZW1fc3RhZyA9IDA7CiAJCWJyZWFrOwotI2lmIDAJCQkJLyogTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgKi8KLQljYXNlIFRZUEVfU0VORF9JTlZBTElEQVRFOgotCWNhc2UgVFlQRV9TRU5EX0lOVkFMSURBVEVfSU1NRURJQVRFOgotCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORF9XSVRIX0lOVjsKLQkJd3FlLT5zZW5kLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLnJkbWEucmtleSk7CisJY2FzZSBJQl9XUl9TRU5EX1dJVEhfSU5WOgorCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX1NPTElDSVRFRCkKKwkJCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfU0VfSU5WOworCQllbHNlCisJCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORF9XSVRIX0lOVjsKKwkJd3FlLT5zZW5kLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPmV4LmludmFsaWRhdGVfcmtleSk7CiAJCWJyZWFrOwotCWNhc2UgVFlQRV9TRU5EX1NFX0lOVkFMSURBVEU6Ci0JCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfU0VfSU5WOwotCQl3cWUtPnNlbmQucmVtX3N0YWcgPSBjcHVfdG9fYmUzMih3ci0+d3IucmRtYS5ya2V5KTsKLQkJYnJlYWs7Ci0jZW5kaWYKIAlkZWZhdWx0OgotCQlicmVhazsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmICh3ci0+bnVtX3NnZSA+IFQzX01BWF9TR0UpCiAJCXJldHVybiAtRUlOVkFMOwogCXdxZS0+c2VuZC5yZXNlcnZlZFswXSA9IDA7CiAJd3FlLT5zZW5kLnJlc2VydmVkWzFdID0gMDsKIAl3cWUtPnNlbmQucmVzZXJ2ZWRbMl0gPSAwOwotCWlmICh3ci0+b3Bjb2RlID09IElCX1dSX1NFTkRfV0lUSF9JTU0pIHsKLQkJcGxlbiA9IDQ7Ci0JCXdxZS0+c2VuZC5zZ2xbMF0uc3RhZyA9IHdyLT5leC5pbW1fZGF0YTsKLQkJd3FlLT5zZW5kLnNnbFswXS5sZW4gPSBfX2NvbnN0YW50X2NwdV90b19iZTMyKDApOwotCQl3cWUtPnNlbmQubnVtX3NnbGUgPSBfX2NvbnN0YW50X2NwdV90b19iZTMyKDApOwotCQkqZmxpdF9jbnQgPSA1OwotCX0gZWxzZSB7Ci0JCXBsZW4gPSAwOwotCQlmb3IgKGkgPSAwOyBpIDwgd3ItPm51bV9zZ2U7IGkrKykgewotCQkJaWYgKChwbGVuICsgd3ItPnNnX2xpc3RbaV0ubGVuZ3RoKSA8IHBsZW4pIHsKLQkJCQlyZXR1cm4gLUVNU0dTSVpFOwotCQkJfQotCQkJcGxlbiArPSB3ci0+c2dfbGlzdFtpXS5sZW5ndGg7Ci0JCQl3cWUtPnNlbmQuc2dsW2ldLnN0YWcgPQotCQkJICAgIGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxrZXkpOwotCQkJd3FlLT5zZW5kLnNnbFtpXS5sZW4gPQotCQkJICAgIGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7Ci0JCQl3cWUtPnNlbmQuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQod3ItPnNnX2xpc3RbaV0uYWRkcik7Ci0JCX0KLQkJd3FlLT5zZW5kLm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOwotCQkqZmxpdF9jbnQgPSA0ICsgKCh3ci0+bnVtX3NnZSkgPDwgMSk7CisJcGxlbiA9IDA7CisJZm9yIChpID0gMDsgaSA8IHdyLT5udW1fc2dlOyBpKyspIHsKKwkJaWYgKChwbGVuICsgd3ItPnNnX2xpc3RbaV0ubGVuZ3RoKSA8IHBsZW4pCisJCQlyZXR1cm4gLUVNU0dTSVpFOworCisJCXBsZW4gKz0gd3ItPnNnX2xpc3RbaV0ubGVuZ3RoOworCQl3cWUtPnNlbmQuc2dsW2ldLnN0YWcgPSBjcHVfdG9fYmUzMih3ci0+c2dfbGlzdFtpXS5sa2V5KTsKKwkJd3FlLT5zZW5kLnNnbFtpXS5sZW4gPSBjcHVfdG9fYmUzMih3ci0+c2dfbGlzdFtpXS5sZW5ndGgpOworCQl3cWUtPnNlbmQuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQod3ItPnNnX2xpc3RbaV0uYWRkcik7CiAJfQorCXdxZS0+c2VuZC5udW1fc2dsZSA9IGNwdV90b19iZTMyKHdyLT5udW1fc2dlKTsKKwkqZmxpdF9jbnQgPSA0ICsgKCh3ci0+bnVtX3NnZSkgPDwgMSk7CiAJd3FlLT5zZW5kLnBsZW4gPSBjcHVfdG9fYmUzMihwbGVuKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpd2NoX2J1aWxkX3JkbWFfd3JpdGUodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorc3RhdGljIGludCBidWlsZF9yZG1hX3dyaXRlKHVuaW9uIHQzX3dyICp3cWUsIHN0cnVjdCBpYl9zZW5kX3dyICp3ciwKIAkJCQkgdTggKmZsaXRfY250KQogewogCWludCBpOwpAQCAtMTM3LDE1ICsxMjMsMTggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpd2NoX2J1aWxkX3JkbWFfcmVhZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCitzdGF0aWMgaW50IGJ1aWxkX3JkbWFfcmVhZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCiAJCQkJdTggKmZsaXRfY250KQogewogCWlmICh3ci0+bnVtX3NnZSA+IDEpCiAJCXJldHVybiAtRUlOVkFMOwogCXdxZS0+cmVhZC5yZG1hb3AgPSBUM19SRUFEX1JFUTsKKwlpZiAod3ItPm9wY29kZSA9PSBJQl9XUl9SRE1BX1JFQURfV0lUSF9JTlYpCisJCXdxZS0+cmVhZC5sb2NhbF9pbnYgPSAxOworCWVsc2UKKwkJd3FlLT5yZWFkLmxvY2FsX2ludiA9IDA7CiAJd3FlLT5yZWFkLnJlc2VydmVkWzBdID0gMDsKIAl3cWUtPnJlYWQucmVzZXJ2ZWRbMV0gPSAwOwotCXdxZS0+cmVhZC5yZXNlcnZlZFsyXSA9IDA7CiAJd3FlLT5yZWFkLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLnJkbWEucmtleSk7CiAJd3FlLT5yZWFkLnJlbV90byA9IGNwdV90b19iZTY0KHdyLT53ci5yZG1hLnJlbW90ZV9hZGRyKTsKIAl3cWUtPnJlYWQubG9jYWxfc3RhZyA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0WzBdLmxrZXkpOwpAQCAtMTU1LDYgKzE0NCw1NyBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGJ1aWxkX2Zhc3RyZWcodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorCQkJCXU4ICpmbGl0X2NudCwgaW50ICp3cl9jbnQsIHN0cnVjdCB0M193cSAqd3EpCit7CisJaW50IGk7CisJX19iZTY0ICpwOworCisJaWYgKHdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3RfbGVuID4gVDNfTUFYX0ZBU1RSRUdfREVQVEgpCisJCXJldHVybiAtRUlOVkFMOworCSp3cl9jbnQgPSAxOworCXdxZS0+ZmFzdHJlZy5zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLmZhc3RfcmVnLnJrZXkpOworCXdxZS0+ZmFzdHJlZy5sZW4gPSBjcHVfdG9fYmUzMih3ci0+d3IuZmFzdF9yZWcubGVuZ3RoKTsKKwl3cWUtPmZhc3RyZWcudmFfYmFzZV9oaSA9IGNwdV90b19iZTMyKHdyLT53ci5mYXN0X3JlZy5pb3ZhX3N0YXJ0ID4+IDMyKTsKKwl3cWUtPmZhc3RyZWcudmFfYmFzZV9sb19mYm8gPQorCQkJCWNwdV90b19iZTMyKHdyLT53ci5mYXN0X3JlZy5pb3ZhX3N0YXJ0ICYgMHhmZmZmZmZmZik7CisJd3FlLT5mYXN0cmVnLnBhZ2VfdHlwZV9wZXJtcyA9IGNwdV90b19iZTMyKAorCQlWX0ZSX1BBR0VfQ09VTlQod3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW4pIHwKKwkJVl9GUl9QQUdFX1NJWkUod3ItPndyLmZhc3RfcmVnLnBhZ2Vfc2hpZnQtMTIpIHwKKwkJVl9GUl9UWVBFKFRQVF9WQVRPKSB8CisJCVZfRlJfUEVSTVMoaXdjaF9pYl90b190cHRfYWNjZXNzKHdyLT53ci5mYXN0X3JlZy5hY2Nlc3NfZmxhZ3MpKSk7CisJcCA9ICZ3cWUtPmZhc3RyZWcucGJsX2FkZHJzWzBdOworCWZvciAoaSA9IDA7IGkgPCB3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0X2xlbjsgaSsrLCBwKyspIHsKKworCQkvKiBJZiB3ZSBuZWVkIGEgMm5kIFdSLCB0aGVuIHNldCBpdCB1cCAqLworCQlpZiAoaSA9PSBUM19NQVhfRkFTVFJFR19GUkFHKSB7CisJCQkqd3JfY250ID0gMjsKKwkJCXdxZSA9ICh1bmlvbiB0M193ciAqKSh3cS0+cXVldWUgKworCQkJCVFfUFRSMklEWCgod3EtPndwdHIrMSksIHdxLT5zaXplX2xvZzIpKTsKKwkJCWJ1aWxkX2Z3X3Jpd3JoKCh2b2lkICopd3FlLCBUM19XUl9GQVNUUkVHLCAwLAorCQkJICAgICAgIFFfR0VOQklUKHdxLT53cHRyICsgMSwgd3EtPnNpemVfbG9nMiksCisJCQkgICAgICAgMCwgMSArIHdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3RfbGVuIC0gVDNfTUFYX0ZBU1RSRUdfRlJBRywKKwkJCSAgICAgICBUM19FT1ApOworCisJCQlwID0gJndxZS0+cGJsX2ZyYWcucGJsX2FkZHJzWzBdOworCQl9CisJCSpwID0gY3B1X3RvX2JlNjQoKHU2NCl3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0LT5wYWdlX2xpc3RbaV0pOworCX0KKwkqZmxpdF9jbnQgPSA1ICsgd3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW47CisJaWYgKCpmbGl0X2NudCA+IDE1KQorCQkqZmxpdF9jbnQgPSAxNTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBidWlsZF9pbnZfc3RhZyh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCisJCQkJdTggKmZsaXRfY250KQoreworCXdxZS0+bG9jYWxfaW52LnN0YWcgPSBjcHVfdG9fYmUzMih3ci0+ZXguaW52YWxpZGF0ZV9ya2V5KTsKKwl3cWUtPmxvY2FsX2ludi5yZXNlcnZlZCA9IDA7CisJKmZsaXRfY250ID0gc2l6ZW9mKHN0cnVjdCB0M19sb2NhbF9pbnZfd3IpID4+IDM7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBUQkQ6IHRoaXMgaXMgZ29pbmcgdG8gYmUgbW92ZWQgdG8gZmlybXdhcmUuIE1pc3NpbmcgcGRpZC9xcGlkIGNoZWNrIGZvciBub3cuCiAgKi8KQEAgLTIwNSwyMyArMjQ1LDEwNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGl3Y2hfYnVpbGRfcmRtYV9yZWN2KHN0cnVjdCBpd2NoX2RldiAqcmhwLCB1bmlvbiB0M193ciAqd3FlLAorc3RhdGljIGludCBidWlsZF9yZG1hX3JlY3Yoc3RydWN0IGl3Y2hfcXAgKnFocCwgdW5pb24gdDNfd3IgKndxZSwKIAkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IpCiB7Ci0JaW50IGk7Ci0JaWYgKHdyLT5udW1fc2dlID4gVDNfTUFYX1NHRSkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaW50IGksIGVyciA9IDA7CisJdTMyIHBibF9hZGRyW1QzX01BWF9TR0VdOworCXU4IHBhZ2Vfc2l6ZVtUM19NQVhfU0dFXTsKKworCWVyciA9IGl3Y2hfc2dsMnBibF9tYXAocWhwLT5yaHAsIHdyLT5zZ19saXN0LCB3ci0+bnVtX3NnZSwgcGJsX2FkZHIsCisJCQkgICAgICAgcGFnZV9zaXplKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXdxZS0+cmVjdi5wYWdlc3pbMF0gPSBwYWdlX3NpemVbMF07CisJd3FlLT5yZWN2LnBhZ2VzelsxXSA9IHBhZ2Vfc2l6ZVsxXTsKKwl3cWUtPnJlY3YucGFnZXN6WzJdID0gcGFnZV9zaXplWzJdOworCXdxZS0+cmVjdi5wYWdlc3pbM10gPSBwYWdlX3NpemVbM107CiAJd3FlLT5yZWN2Lm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOwogCWZvciAoaSA9IDA7IGkgPCB3ci0+bnVtX3NnZTsgaSsrKSB7CiAJCXdxZS0+cmVjdi5zZ2xbaV0uc3RhZyA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxrZXkpOwogCQl3cWUtPnJlY3Yuc2dsW2ldLmxlbiA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7Ci0JCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKKworCQkvKiB0byBpbiB0aGUgV1FFID09IHRoZSBvZmZzZXQgaW50byB0aGUgcGFnZSAqLworCQl3cWUtPnJlY3Yuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQoKCh1MzIpIHdyLT5zZ19saXN0W2ldLmFkZHIpICUKKwkJCQkoMVVMIDw8ICgxMiArIHBhZ2Vfc2l6ZVtpXSkpKTsKKworCQkvKiBwYmxfYWRkciBpcyB0aGUgYWRhcHRlcnMgYWRkcmVzcyBpbiB0aGUgUEJMICovCisJCXdxZS0+cmVjdi5wYmxfYWRkcltpXSA9IGNwdV90b19iZTMyKHBibF9hZGRyW2ldKTsKIAl9CiAJZm9yICg7IGkgPCBUM19NQVhfU0dFOyBpKyspIHsKIAkJd3FlLT5yZWN2LnNnbFtpXS5zdGFnID0gMDsKIAkJd3FlLT5yZWN2LnNnbFtpXS5sZW4gPSAwOwogCQl3cWUtPnJlY3Yuc2dsW2ldLnRvID0gMDsKKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gMDsKIAl9CisJcWhwLT53cS5ycVtRX1BUUjJJRFgocWhwLT53cS5ycV93cHRyLAorCQkJICAgICBxaHAtPndxLnJxX3NpemVfbG9nMildLndyX2lkID0gd3ItPndyX2lkOworCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwKKwkJCSAgICAgcWhwLT53cS5ycV9zaXplX2xvZzIpXS5wYmxfYWRkciA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYnVpbGRfemVyb19zdGFnX3JlY3Yoc3RydWN0IGl3Y2hfcXAgKnFocCwgdW5pb24gdDNfd3IgKndxZSwKKwkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IpCit7CisJaW50IGk7CisJdTMyIHBibF9hZGRyOworCXUzMiBwYmxfb2Zmc2V0OworCisKKwkvKgorCSAqIFRoZSBUMyBIVyByZXF1aXJlcyB0aGUgUEJMIGluIHRoZSBIVyByZWN2IGRlc2NyaXB0b3IgdG8gcmVmZXJlbmNlCisJICogYSBQQkwgZW50cnkuICBTbyB3ZSBhbGxvY2F0ZSB0aGUgbWF4IG5lZWRlZCBQQkwgbWVtb3J5IGhlcmUgYW5kIHBhc3MKKwkgKiBpdCB0byB0aGUgdVAgaW4gdGhlIHJlY3YgV1IuICBUaGUgdVAgd2lsbCBidWlsZCB0aGUgUEJMIGFuZCBzZXR1cAorCSAqIHRoZSBIVyByZWN2IGRlc2NyaXB0b3IuCisJICovCisJcGJsX2FkZHIgPSBjeGlvX2hhbF9wYmxwb29sX2FsbG9jKCZxaHAtPnJocC0+cmRldiwgVDNfU1RBRzBfUEJMX1NJWkUpOworCWlmICghcGJsX2FkZHIpCisJCXJldHVybiAtRU5PTUVNOworCisJLyoKKwkgKiBDb21wdXRlIHRoZSA4QiBhbGlnbmVkIG9mZnNldC4KKwkgKi8KKwlwYmxfb2Zmc2V0ID0gKHBibF9hZGRyIC0gcWhwLT5yaHAtPnJkZXYucm5pY19pbmZvLnBibF9iYXNlKSA+PiAzOworCisJd3FlLT5yZWN2Lm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOworCisJZm9yIChpID0gMDsgaSA8IHdyLT5udW1fc2dlOyBpKyspIHsKKworCQkvKgorCQkgKiBVc2UgYSAxMjhNQiBwYWdlIHNpemUuIFRoaXMgYW5kIGFuIGltcG9zZWQgMTI4TUIKKwkJICogc2dlIGxlbmd0aCBsaW1pdCBhbGxvd3MgdXMgdG8gcmVxdWlyZSBvbmx5IGEgMi1lbnRyeSBIVworCQkgKiBQQkwgZm9yIGVhY2ggU0dFLiAgVGhpcyByZXN0cmljdGlvbiBpcyBhY2NlcHRhYmxlIHNpbmNlCisJCSAqIHNpbmNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhbGxvY2F0ZSAxMjhNQiBvZiBjb250aWd1b3VzCisJCSAqIERNQSBjb2hlcmVudCBtZW1vcnkhCisJCSAqLworCQlpZiAod3ItPnNnX2xpc3RbaV0ubGVuZ3RoID4gVDNfU1RBRzBfTUFYX1BCRV9MRU4pCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJd3FlLT5yZWN2LnBhZ2VzeltpXSA9IFQzX1NUQUcwX1BBR0VfU0hJRlQ7CisKKwkJLyoKKwkJICogVDMgcmVzdHJpY3RzIGEgcmVjdiB0byBhbGwgemVyby1zdGFnIG9yIGFsbCBub24temVyby1zdGFnLgorCQkgKi8KKwkJaWYgKHdyLT5zZ19saXN0W2ldLmxrZXkgIT0gMCkKKwkJCXJldHVybiAtRUlOVkFMOworCQl3cWUtPnJlY3Yuc2dsW2ldLnN0YWcgPSAwOworCQl3cWUtPnJlY3Yuc2dsW2ldLmxlbiA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7CisJCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gY3B1X3RvX2JlMzIocGJsX29mZnNldCk7CisJCXBibF9vZmZzZXQgKz0gMjsKKwl9CisJZm9yICg7IGkgPCBUM19NQVhfU0dFOyBpKyspIHsKKwkJd3FlLT5yZWN2LnBhZ2VzeltpXSA9IDA7CisJCXdxZS0+cmVjdi5zZ2xbaV0uc3RhZyA9IDA7CisJCXdxZS0+cmVjdi5zZ2xbaV0ubGVuID0gMDsKKwkJd3FlLT5yZWN2LnNnbFtpXS50byA9IDA7CisJCXdxZS0+cmVjdi5wYmxfYWRkcltpXSA9IDA7CisJfQorCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwKKwkJCSAgICAgcWhwLT53cS5ycV9zaXplX2xvZzIpXS53cl9pZCA9IHdyLT53cl9pZDsKKwlxaHAtPndxLnJxW1FfUFRSMklEWChxaHAtPndxLnJxX3dwdHIsCisJCQkgICAgIHFocC0+d3EucnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIgPSBwYmxfYWRkcjsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjM4LDYgKzM2MSw3IEBACiAJdTMyIG51bV93cnM7CiAJdW5zaWduZWQgbG9uZyBmbGFnOwogCXN0cnVjdCB0M19zd3NxICpzcXA7CisJaW50IHdyX2NudCA9IDE7CiAKIAlxaHAgPSB0b19pd2NoX3FwKGlicXApOwogCXNwaW5fbG9ja19pcnFzYXZlKCZxaHAtPmxvY2ssIGZsYWcpOwpAQCAtMjYyLDMzICszODYsNDUgQEAKIAkJdDNfd3JfZmxhZ3MgPSAwOwogCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX1NPTElDSVRFRCkKIAkJCXQzX3dyX2ZsYWdzIHw9IFQzX1NPTElDSVRFRF9FVkVOVF9GTEFHOwotCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX0ZFTkNFKQotCQkJdDNfd3JfZmxhZ3MgfD0gVDNfUkVBRF9GRU5DRV9GTEFHOwogCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX1NJR05BTEVEKQogCQkJdDNfd3JfZmxhZ3MgfD0gVDNfQ09NUExFVElPTl9GTEFHOwogCQlzcXAgPSBxaHAtPndxLnNxICsKIAkJICAgICAgUV9QVFIySURYKHFocC0+d3Euc3Ffd3B0ciwgcWhwLT53cS5zcV9zaXplX2xvZzIpOwogCQlzd2l0Y2ggKHdyLT5vcGNvZGUpIHsKIAkJY2FzZSBJQl9XUl9TRU5EOgotCQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CisJCWNhc2UgSUJfV1JfU0VORF9XSVRIX0lOVjoKKwkJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfRkVOQ0UpCisJCQkJdDNfd3JfZmxhZ3MgfD0gVDNfUkVBRF9GRU5DRV9GTEFHOwogCQkJdDNfd3Jfb3Bjb2RlID0gVDNfV1JfU0VORDsKLQkJCWVyciA9IGl3Y2hfYnVpbGRfcmRtYV9zZW5kKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CisJCQllcnIgPSBidWlsZF9yZG1hX3NlbmQod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKIAkJCWJyZWFrOwogCQljYXNlIElCX1dSX1JETUFfV1JJVEU6CiAJCWNhc2UgSUJfV1JfUkRNQV9XUklURV9XSVRIX0lNTToKIAkJCXQzX3dyX29wY29kZSA9IFQzX1dSX1dSSVRFOwotCQkJZXJyID0gaXdjaF9idWlsZF9yZG1hX3dyaXRlKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CisJCQllcnIgPSBidWlsZF9yZG1hX3dyaXRlKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CiAJCQlicmVhazsKIAkJY2FzZSBJQl9XUl9SRE1BX1JFQUQ6CisJCWNhc2UgSUJfV1JfUkRNQV9SRUFEX1dJVEhfSU5WOgogCQkJdDNfd3Jfb3Bjb2RlID0gVDNfV1JfUkVBRDsKIAkJCXQzX3dyX2ZsYWdzID0gMDsgLyogVDMgcmVhZHMgYXJlIGFsd2F5cyBzaWduYWxlZCAqLwotCQkJZXJyID0gaXdjaF9idWlsZF9yZG1hX3JlYWQod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKKwkJCWVyciA9IGJ1aWxkX3JkbWFfcmVhZCh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOwogCQkJaWYgKGVycikKIAkJCQlicmVhazsKIAkJCXNxcC0+cmVhZF9sZW4gPSB3cWUtPnJlYWQubG9jYWxfbGVuOwogCQkJaWYgKCFxaHAtPndxLm9sZGVzdF9yZWFkKQogCQkJCXFocC0+d3Eub2xkZXN0X3JlYWQgPSBzcXA7CiAJCQlicmVhazsKKwkJY2FzZSBJQl9XUl9GQVNUX1JFR19NUjoKKwkJCXQzX3dyX29wY29kZSA9IFQzX1dSX0ZBU1RSRUc7CisJCQllcnIgPSBidWlsZF9mYXN0cmVnKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCwKKwkJCQkJCSAmd3JfY250LCAmcWhwLT53cSk7CisJCQlicmVhazsKKwkJY2FzZSBJQl9XUl9MT0NBTF9JTlY6CisJCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX0ZFTkNFKQorCQkJCXQzX3dyX2ZsYWdzIHw9IFQzX0xPQ0FMX0ZFTkNFX0ZMQUc7CisJCQl0M193cl9vcGNvZGUgPSBUM19XUl9JTlZfU1RBRzsKKwkJCWVyciA9IGJ1aWxkX2ludl9zdGFnKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCVBEQkcoIiVzIHBvc3Qgb2YgdHlwZT0lZCBUQkQhXG4iLCBfX2Z1bmNfXywKIAkJCSAgICAgd3ItPm9wY29kZSk7CkBAIC0zMDcsMTQgKzQ0MywxNSBAQAogCiAJCWJ1aWxkX2Z3X3Jpd3JoKCh2b2lkICopIHdxZSwgdDNfd3Jfb3Bjb2RlLCB0M193cl9mbGFncywKIAkJCSAgICAgICBRX0dFTkJJVChxaHAtPndxLndwdHIsIHFocC0+d3Euc2l6ZV9sb2cyKSwKLQkJCSAgICAgICAwLCB0M193cl9mbGl0X2NudCk7CisJCQkgICAgICAgMCwgdDNfd3JfZmxpdF9jbnQsCisJCQkgICAgICAgKHdyX2NudCA9PSAxKSA/IFQzX1NPUEVPUCA6IFQzX1NPUCk7CiAJCVBEQkcoIiVzIGNvb2tpZSAweCVsbHggd3EgaWR4IDB4JXggc3dzcSBpZHggJWxkIG9wY29kZSAlZFxuIiwKIAkJICAgICBfX2Z1bmNfXywgKHVuc2lnbmVkIGxvbmcgbG9uZykgd3ItPndyX2lkLCBpZHgsCiAJCSAgICAgUV9QVFIySURYKHFocC0+d3Euc3Ffd3B0ciwgcWhwLT53cS5zcV9zaXplX2xvZzIpLAogCQkgICAgIHNxcC0+b3Bjb2RlKTsKIAkJd3IgPSB3ci0+bmV4dDsKIAkJbnVtX3dycy0tOwotCQkrKyhxaHAtPndxLndwdHIpOworCQlxaHAtPndxLndwdHIgKz0gd3JfY250OwogCQkrKyhxaHAtPndxLnNxX3dwdHIpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxaHAtPmxvY2ssIGZsYWcpOwpAQCAtMzQ1LDIxICs0ODIsMjcgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXdoaWxlICh3cikgeworCQlpZiAod3ItPm51bV9zZ2UgPiBUM19NQVhfU0dFKSB7CisJCQllcnIgPSAtRUlOVkFMOworCQkJKmJhZF93ciA9IHdyOworCQkJYnJlYWs7CisJCX0KIAkJaWR4ID0gUV9QVFIySURYKHFocC0+d3Eud3B0ciwgcWhwLT53cS5zaXplX2xvZzIpOwogCQl3cWUgPSAodW5pb24gdDNfd3IgKikgKHFocC0+d3EucXVldWUgKyBpZHgpOwogCQlpZiAobnVtX3dycykKLQkJCWVyciA9IGl3Y2hfYnVpbGRfcmRtYV9yZWN2KHFocC0+cmhwLCB3cWUsIHdyKTsKKwkJCWlmICh3ci0+c2dfbGlzdFswXS5sa2V5KQorCQkJCWVyciA9IGJ1aWxkX3JkbWFfcmVjdihxaHAsIHdxZSwgd3IpOworCQkJZWxzZQorCQkJCWVyciA9IGJ1aWxkX3plcm9fc3RhZ19yZWN2KHFocCwgd3FlLCB3cik7CiAJCWVsc2UKIAkJCWVyciA9IC1FTk9NRU07CiAJCWlmIChlcnIpIHsKIAkJCSpiYWRfd3IgPSB3cjsKIAkJCWJyZWFrOwogCQl9Ci0JCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwgcWhwLT53cS5ycV9zaXplX2xvZzIpXSA9Ci0JCQl3ci0+d3JfaWQ7CiAJCWJ1aWxkX2Z3X3Jpd3JoKCh2b2lkICopIHdxZSwgVDNfV1JfUkNWLCBUM19DT01QTEVUSU9OX0ZMQUcsCiAJCQkgICAgICAgUV9HRU5CSVQocWhwLT53cS53cHRyLCBxaHAtPndxLnNpemVfbG9nMiksCi0JCQkgICAgICAgMCwgc2l6ZW9mKHN0cnVjdCB0M19yZWNlaXZlX3dyKSA+PiAzKTsKKwkJCSAgICAgICAwLCBzaXplb2Yoc3RydWN0IHQzX3JlY2VpdmVfd3IpID4+IDMsIFQzX1NPUEVPUCk7CiAJCVBEQkcoIiVzIGNvb2tpZSAweCVsbHggaWR4IDB4JXggcnFfd3B0ciAweCV4IHJ3X3JwdHIgMHgleCAiCiAJCSAgICAgIndxZSAlcCBcbiIsIF9fZnVuY19fLCAodW5zaWduZWQgbG9uZyBsb25nKSB3ci0+d3JfaWQsCiAJCSAgICAgaWR4LCBxaHAtPndxLnJxX3dwdHIsIHFocC0+d3EucnFfcnB0ciwgd3FlKTsKQEAgLTQxOSwxMCArNTYyLDEwIEBACiAJc2dsLmxrZXkgPSBtd19iaW5kLT5tci0+bGtleTsKIAlzZ2wubGVuZ3RoID0gbXdfYmluZC0+bGVuZ3RoOwogCXdxZS0+YmluZC5yZXNlcnZlZCA9IDA7Ci0Jd3FlLT5iaW5kLnR5cGUgPSBUM19WQV9CQVNFRF9UTzsKKwl3cWUtPmJpbmQudHlwZSA9IFRQVF9WQVRPOwogCiAJLyogVEJEOiBjaGVjayBwZXJtcyAqLwotCXdxZS0+YmluZC5wZXJtcyA9IGl3Y2hfaWJfdG9fbXdiaW5kX2FjY2Vzcyhtd19iaW5kLT5td19hY2Nlc3NfZmxhZ3MpOworCXdxZS0+YmluZC5wZXJtcyA9IGl3Y2hfaWJfdG9fdHB0X2FjY2Vzcyhtd19iaW5kLT5td19hY2Nlc3NfZmxhZ3MpOwogCXdxZS0+YmluZC5tcl9zdGFnID0gY3B1X3RvX2JlMzIobXdfYmluZC0+bXItPmxrZXkpOwogCXdxZS0+YmluZC5td19zdGFnID0gY3B1X3RvX2JlMzIobXctPnJrZXkpOwogCXdxZS0+YmluZC5td19sZW4gPSBjcHVfdG9fYmUzMihtd19iaW5kLT5sZW5ndGgpOwpAQCAtNDMwLDcgKzU3Myw3IEBACiAJZXJyID0gaXdjaF9zZ2wycGJsX21hcChyaHAsICZzZ2wsIDEsICZwYmxfYWRkciwgJnBhZ2Vfc2l6ZSk7CiAJaWYgKGVycikgewogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxaHAtPmxvY2ssIGZsYWcpOwotCSAgICAgICAgcmV0dXJuIGVycjsKKwkJcmV0dXJuIGVycjsKIAl9CiAJd3FlLT5zZW5kLndyaWQuaWQwLmhpID0gcWhwLT53cS5zcV93cHRyOwogCXNxcCA9IHFocC0+d3Euc3EgKyBRX1BUUjJJRFgocWhwLT53cS5zcV93cHRyLCBxaHAtPndxLnNxX3NpemVfbG9nMik7CkBAIC00NDEsMTAgKzU4NCw5IEBACiAJc3FwLT5zaWduYWxlZCA9IChtd19iaW5kLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9TSUdOQUxFRCk7CiAJd3FlLT5iaW5kLm1yX3BibF9hZGRyID0gY3B1X3RvX2JlMzIocGJsX2FkZHIpOwogCXdxZS0+YmluZC5tcl9wYWdlc3ogPSBwYWdlX3NpemU7Ci0Jd3FlLT5mbGl0W1QzX1NRX0NPT0tJRV9GTElUXSA9IG13X2JpbmQtPndyX2lkOwogCWJ1aWxkX2Z3X3Jpd3JoKCh2b2lkICopd3FlLCBUM19XUl9CSU5ELCB0M193cl9mbGFncywKIAkJICAgICAgIFFfR0VOQklUKHFocC0+d3Eud3B0ciwgcWhwLT53cS5zaXplX2xvZzIpLCAwLAotCQkJICAgICAgICBzaXplb2Yoc3RydWN0IHQzX2JpbmRfbXdfd3IpID4+IDMpOworCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB0M19iaW5kX213X3dyKSA+PiAzLCBUM19TT1BFT1ApOwogCSsrKHFocC0+d3Eud3B0cik7CiAJKysocWhwLT53cS5zcV93cHRyKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxaHAtPmxvY2ssIGZsYWcpOwpAQCAtNzU4LDcgKzkwMCw4IEBACiAJaW5pdF9hdHRyLnFwX2RtYV9zaXplID0gKDFVTCA8PCBxaHAtPndxLnNpemVfbG9nMik7CiAJaW5pdF9hdHRyLnJxZV9jb3VudCA9IGl3Y2hfcnFlc19wb3N0ZWQocWhwKTsKIAlpbml0X2F0dHIuZmxhZ3MgPSBxaHAtPmF0dHIubXBhX2F0dHIuaW5pdGlhdG9yID8gTVBBX0lOSVRJQVRPUiA6IDA7Ci0JaW5pdF9hdHRyLmZsYWdzIHw9IGNhcGFibGUoQ0FQX05FVF9CSU5EX1NFUlZJQ0UpID8gUFJJVl9RUCA6IDA7CisJaWYgKCFxaHAtPmlicXAudW9iamVjdCkKKwkJaW5pdF9hdHRyLmZsYWdzIHw9IFBSSVZfUVA7CiAJaWYgKHBlZXIycGVlcikgewogCQlpbml0X2F0dHIucnRyX3R5cGUgPSBSVFJfUkVBRDsKIAkJaWYgKGluaXRfYXR0ci5vcmQgPT0gMCAmJiBxaHAtPmF0dHIubXBhX2F0dHIuaW5pdGlhdG9yKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9pcnEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfaXJxLmMKaW5kZXggY2UxYWIwNS4uMDc5MmQ5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9pcnEuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2lycS5jCkBAIC01MzEsNyArNTMxLDcgQEAKIHsKIAlzdHJ1Y3QgZWhjYV9lcSAqZXEgPSAmc2hjYS0+ZXE7CiAJc3RydWN0IGVoY2FfZXFlX2NhY2hlX2VudHJ5ICplcWVfY2FjaGUgPSBlcS0+ZXFlX2NhY2hlOwotCXU2NCBlcWVfdmFsdWU7CisJdTY0IGVxZV92YWx1ZSwgcmV0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGVxZV9jbnQsIGk7CiAJaW50IGVxX2VtcHR5ID0gMDsKQEAgLTU4Myw4ICs1ODMsMTMgQEAKIAkJCWVoY2FfZGJnKCZzaGNhLT5pYl9kZXZpY2UsCiAJCQkJICJObyBlcWUgZm91bmQgZm9yIGlycSBldmVudCIpOwogCQlnb3RvIHVubG9ja19pcnFfc3BpbmxvY2s7Ci0JfSBlbHNlIGlmICghaXNfaXJxKQorCX0gZWxzZSBpZiAoIWlzX2lycSkgeworCQlyZXQgPSBoaXB6X2hfZW9pKGVxLT5pc3QpOworCQlpZiAocmV0ICE9IEhfU1VDQ0VTUykKKwkJCWVoY2FfZXJyKCZzaGNhLT5pYl9kZXZpY2UsCisJCQkJICJiYWQgcmV0dXJuIGNvZGUgRU9JIC1yYyA9ICVsZFxuIiwgcmV0KTsKIAkJZWhjYV9kYmcoJnNoY2EtPmliX2RldmljZSwgImRlYWRtYW4gZm91bmQgJXggZXFlIiwgZXFlX2NudCk7CisJfQogCWlmICh1bmxpa2VseShlcWVfY250ID09IEVIQ0FfRVFFX0NBQ0hFX1NJWkUpKQogCQllaGNhX2RiZygmc2hjYS0+aWJfZGV2aWNlLCAidG9vIG1hbnkgZXFlcyBmb3Igb25lIGlycSBldmVudCIpOwogCS8qIGVuYWJsZSBpcnEgZm9yIG5ldyBwYWNrZXRzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfbWFpbi5jCmluZGV4IDQ4MjEwM2UuLjU5ODg0NGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfbWFpbi5jCkBAIC05MjMsNiArOTIzLDcgQEAKIAl9LAogCXt9LAogfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVoY2FfZGV2aWNlX3RhYmxlKTsKIAogc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgZWhjYV9kcml2ZXIgPSB7CiAJLm5hbWUgICAgICAgID0gImVoY2EiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9yZXFzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX3JlcXMuYwppbmRleCBmMDkzYjAwLi5kZDliYzY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX3JlcXMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX3JlcXMuYwpAQCAtNTQ0LDggKzU0NCwxNiBAQAogCQkgICBzdHJ1Y3QgaWJfcmVjdl93ciAqcmVjdl93ciwKIAkJICAgc3RydWN0IGliX3JlY3Zfd3IgKipiYWRfcmVjdl93cikKIHsKLQlyZXR1cm4gaW50ZXJuYWxfcG9zdF9yZWN2KGNvbnRhaW5lcl9vZihxcCwgc3RydWN0IGVoY2FfcXAsIGliX3FwKSwKLQkJCQkgIHFwLT5kZXZpY2UsIHJlY3Zfd3IsIGJhZF9yZWN2X3dyKTsKKwlzdHJ1Y3QgZWhjYV9xcCAqbXlfcXAgPSBjb250YWluZXJfb2YocXAsIHN0cnVjdCBlaGNhX3FwLCBpYl9xcCk7CisKKwkvKiBSZWplY3QgV1IgaWYgUVAgaXMgaW4gUkVTRVQgc3RhdGUgKi8KKwlpZiAodW5saWtlbHkobXlfcXAtPnN0YXRlID09IElCX1FQU19SRVNFVCkpIHsKKwkJZWhjYV9lcnIocXAtPmRldmljZSwgIkludmFsaWQgUVAgc3RhdGUgIHFwX3N0YXRlPSVkIHFwbj0leCIsCisJCQkgbXlfcXAtPnN0YXRlLCBxcC0+cXBfbnVtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIGludGVybmFsX3Bvc3RfcmVjdihteV9xcCwgcXAtPmRldmljZSwgcmVjdl93ciwgYmFkX3JlY3Zfd3IpOwogfQogCiBpbnQgZWhjYV9wb3N0X3NycV9yZWN2KHN0cnVjdCBpYl9zcnEgKnNycSwKQEAgLTY4MSw3ICs2ODksNyBAQAogCXdjLT5kbGlkX3BhdGhfYml0cyA9IGNxZS0+ZGxpZDsKIAl3Yy0+c3JjX3FwID0gY3FlLT5yZW1vdGVfcXBfbnVtYmVyOwogCXdjLT53Y19mbGFncyA9IGNxZS0+d19jb21wbGV0aW9uX2ZsYWdzOwotCXdjLT5pbW1fZGF0YSA9IGNwdV90b19iZTMyKGNxZS0+aW1tZWRpYXRlX2RhdGEpOworCXdjLT5leC5pbW1fZGF0YSA9IGNwdV90b19iZTMyKGNxZS0+aW1tZWRpYXRlX2RhdGEpOwogCXdjLT5zbCA9IGNxZS0+c2VydmljZV9sZXZlbDsKIAogcG9sbF9jcV9vbmVfZXhpdDA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5jCmluZGV4IDUyNDVlMTMuLjQxNWQzYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5jCkBAIC05MzMsMyArOTMzLDEzIEBACiAJCQkJICAgICAgIHJfY2IsCiAJCQkJICAgICAgIDAsIDAsIDAsIDApOwogfQorCit1NjQgaGlwel9oX2VvaShpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgeGlycjsKKworCWlvc3luYygpOworCXhpcnIgPSAoMHhmZlVMTCA8PCAyNCkgfCBpcnE7CisKKwlyZXR1cm4gcGxwYXJfaGNhbGxfbm9yZXRzKEhfRU9JLCB4aXJyKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmgKaW5kZXggNjBjZTAyYi4uMmMzYzZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmgKQEAgLTI2MCw1ICsyNjAsNiBAQAogCQkgICAgICBjb25zdCB1NjQgcmVzc291cmNlX2hhbmRsZSwKIAkJICAgICAgdm9pZCAqcmJsb2NrLAogCQkgICAgICB1bnNpZ25lZCBsb25nICpieXRlX2NvdW50KTsKK3U2NCBoaXB6X2hfZW9pKGludCBpcnEpOwogCiAjZW5kaWYgLyogX19IQ1BfSUZfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfY3EuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jCmluZGV4IGEwM2JkMjguLmQzODVlNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jCkBAIC04Miw3ICs4Miw3IEBACiAJCXdjLT51cXVldWVbaGVhZF0ub3Bjb2RlID0gZW50cnktPm9wY29kZTsKIAkJd2MtPnVxdWV1ZVtoZWFkXS52ZW5kb3JfZXJyID0gZW50cnktPnZlbmRvcl9lcnI7CiAJCXdjLT51cXVldWVbaGVhZF0uYnl0ZV9sZW4gPSBlbnRyeS0+Ynl0ZV9sZW47Ci0JCXdjLT51cXVldWVbaGVhZF0uaW1tX2RhdGEgPSAoX191MzIgX19mb3JjZSllbnRyeS0+aW1tX2RhdGE7CisJCXdjLT51cXVldWVbaGVhZF0uZXguaW1tX2RhdGEgPSAoX191MzIgX19mb3JjZSkgZW50cnktPmV4LmltbV9kYXRhOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLnFwX251bSA9IGVudHJ5LT5xcC0+cXBfbnVtOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLnNyY19xcCA9IGVudHJ5LT5zcmNfcXA7CiAJCXdjLT51cXVldWVbaGVhZF0ud2NfZmxhZ3MgPSBlbnRyeS0+d2NfZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfZmlsZV9vcHMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCmluZGV4IGI0NzJiMTUuLjM1ZjMwMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KIAogI2luY2x1ZGUgImlwYXRoX2tlcm5lbC5oIgpAQCAtMTgxNSw2ICsxODE2LDcgQEAKIHN0YXRpYyBpbnQgaXBhdGhfb3BlbihzdHJ1Y3QgaW5vZGUgKmluLCBzdHJ1Y3QgZmlsZSAqZnApCiB7CiAJLyogVGhlIHJlYWwgd29yayBpcyBwZXJmb3JtZWQgbGF0ZXIgaW4gaXBhdGhfYXNzaWduX3BvcnQoKSAqLworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZnAtPnByaXZhdGVfZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpcGF0aF9maWxlZGF0YSksIEdGUF9LRVJORUwpOwogCXJldHVybiBmcC0+cHJpdmF0ZV9kYXRhID8gMCA6IC1FTk9NRU07CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfaWJhNzIyMC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2liYTcyMjAuYwppbmRleCA4ZWVlNzgzLi5mYjcwNzEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfaWJhNzIyMC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9pYmE3MjIwLmMKQEAgLTIyMjgsOCArMjIyOCw4IEBACiAJCTB4ZmZmZmZmZmYsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKIAkJMHg0MDAwMDAwMSwgMHgxMzg4LCAweDE1ZSwgLyogcmVzdCAwJ3MgKi8KIAkJfTsKLQlkY250ID0gc2l6ZW9mKG1hZHBheWxvYWRfc3RhcnQpL3NpemVvZihtYWRwYXlsb2FkX3N0YXJ0WzBdKTsKLQloY250ID0gc2l6ZW9mKGhkcikvc2l6ZW9mKGhkclswXSk7CisJZGNudCA9IEFSUkFZX1NJWkUobWFkcGF5bG9hZF9zdGFydCk7CisJaGNudCA9IEFSUkFZX1NJWkUoaGRyKTsKIAlpZiAoIXN3YXBwZWQpIHsKIAkJLyogZm9yIG1haW50YWluYWJpbGl0eSwgZG8gaXQgYXQgcnVudGltZSAqLwogCQlmb3IgKGkgPSAwOyBpIDwgaGNudDsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMKaW5kZXggNWY5MzE1ZC4uYmU0ZmM5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9tYWQuYwpAQCAtMTExLDkgKzExMSw5IEBACiAJbmlwLT5yZXZpc2lvbiA9IGNwdV90b19iZTMyKChtYWpyZXYgPDwgMTYpIHwgbWlucmV2KTsKIAluaXAtPmxvY2FsX3BvcnRfbnVtID0gcG9ydDsKIAl2ZW5kb3IgPSBkZC0+aXBhdGhfdmVuZG9yaWQ7Ci0JbmlwLT52ZW5kb3JfaWRbMF0gPSAwOwotCW5pcC0+dmVuZG9yX2lkWzFdID0gdmVuZG9yID4+IDg7Ci0JbmlwLT52ZW5kb3JfaWRbMl0gPSB2ZW5kb3I7CisJbmlwLT52ZW5kb3JfaWRbMF0gPSBJUEFUSF9TUkNfT1VJXzE7CisJbmlwLT52ZW5kb3JfaWRbMV0gPSBJUEFUSF9TUkNfT1VJXzI7CisJbmlwLT52ZW5kb3JfaWRbMl0gPSBJUEFUSF9TUkNfT1VJXzM7CiAKIAlyZXR1cm4gcmVwbHkoc21wKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9yYy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKaW5kZXggMTA4ZGY2Ni4uOTc3MTA1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKQEAgLTE3MDMsMTEgKzE3MDMsMTEgQEAKIAljYXNlIE9QKFNFTkRfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJc2VuZF9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jCmluZGV4IGE0YjU1MjEuLmFmMDUxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9ydWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfcnVjLmMKQEAgLTMzMSw3ICszMzEsNyBAQAogCXN3aXRjaCAod3FlLT53ci5vcGNvZGUpIHsKIAljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gd3FlLT53ci5leC5pbW1fZGF0YTsKKwkJd2MuZXguaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOwogCQkvKiBGQUxMVEhST1VHSCAqLwogCWNhc2UgSUJfV1JfU0VORDoKIAkJaWYgKCFpcGF0aF9nZXRfcndxZShxcCwgMCkpCkBAIC0zNDIsNyArMzQyLDcgQEAKIAkJaWYgKHVubGlrZWx5KCEocXAtPnFwX2FjY2Vzc19mbGFncyAmIElCX0FDQ0VTU19SRU1PVEVfV1JJVEUpKSkKIAkJCWdvdG8gaW52X2VycjsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJd2MuaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOworCQl3Yy5leC5pbW1fZGF0YSA9IHdxZS0+d3IuZXguaW1tX2RhdGE7CiAJCWlmICghaXBhdGhfZ2V0X3J3cWUocXAsIDEpKQogCQkJZ290byBybnJfbmFrOwogCQkvKiBGQUxMVEhST1VHSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VjLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYwppbmRleCAwNTk2ZWMxLi44MmNjNTg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYwpAQCAtMzc5LDExICszNzksMTEgQEAKIAljYXNlIE9QKFNFTkRfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJc2VuZF9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpAQCAtNDgzLDExICs0ODMsMTEgQEAKIAljYXNlIE9QKFJETUFfV1JJVEVfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJcmRtYV9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwppbmRleCA3N2NhOGNhLi4zNmFhMjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwpAQCAtOTYsNyArOTYsNyBAQAogCiAJaWYgKHN3cWUtPndyLm9wY29kZSA9PSBJQl9XUl9TRU5EX1dJVEhfSU1NKSB7CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CisJCXdjLmV4LmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CiAJfQogCiAJLyoKQEAgLTQ5MiwxNCArNDkyLDE0IEBACiAJaWYgKHFwLT5pYnFwLnFwX251bSA+IDEgJiYKIAkgICAgb3Bjb2RlID09IElCX09QQ09ERV9VRF9TRU5EX09OTFlfV0lUSF9JTU1FRElBVEUpIHsKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UKLQkJCXdjLmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKIAkJaGRyc2l6ZSArPSBzaXplb2YodTMyKTsKIAl9IGVsc2UgaWYgKG9wY29kZSA9PSBJQl9PUENPREVfVURfU0VORF9PTkxZKSB7Ci0JCXdjLmltbV9kYXRhID0gMDsKKwkJd2MuZXguaW1tX2RhdGEgPSAwOwogCQl3Yy53Y19mbGFncyA9IDA7CiAJfSBlbHNlIHsKIAkJZGV2LT5uX3BrdF9kcm9wcysrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwppbmRleCA3Nzc5MTY1Li45ZTIzYWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwpAQCAtMTQ5Nyw3ICsxNDk3LDggQEAKIAkJSUJfREVWSUNFX1NZU19JTUFHRV9HVUlEIHwgSUJfREVWSUNFX1JDX1JOUl9OQUtfR0VOIHwKIAkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UIHwgSUJfREVWSUNFX1NSUV9SRVNJWkU7CiAJcHJvcHMtPnBhZ2Vfc2l6ZV9jYXAgPSBQQUdFX1NJWkU7Ci0JcHJvcHMtPnZlbmRvcl9pZCA9IGRldi0+ZGQtPmlwYXRoX3ZlbmRvcmlkOworCXByb3BzLT52ZW5kb3JfaWQgPQorCQlJUEFUSF9TUkNfT1VJXzEgPDwgMTYgfCBJUEFUSF9TUkNfT1VJXzIgPDwgOCB8IElQQVRIX1NSQ19PVUlfMzsKIAlwcm9wcy0+dmVuZG9yX3BhcnRfaWQgPSBkZXYtPmRkLT5pcGF0aF9kZXZpY2VpZDsKIAlwcm9wcy0+aHdfdmVyID0gZGV2LT5kZC0+aXBhdGhfcGNpcmV2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvY3EuYwppbmRleCA0NTIxMzE5Li4yOTlmMjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L2NxLmMKQEAgLTY2MywxOCArNjYzLDE4IEBACiAKIAkJc3dpdGNoIChjcWUtPm93bmVyX3NyX29wY29kZSAmIE1MWDRfQ1FFX09QQ09ERV9NQVNLKSB7CiAJCWNhc2UgTUxYNF9SRUNWX09QQ09ERV9SRE1BX1dSSVRFX0lNTToKLQkJCXdjLT5vcGNvZGUgICA9IElCX1dDX1JFQ1ZfUkRNQV9XSVRIX0lNTTsKLQkJCXdjLT53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwotCQkJd2MtPmltbV9kYXRhID0gY3FlLT5pbW1lZF9yc3NfaW52YWxpZDsKKwkJCXdjLT5vcGNvZGUJPSBJQl9XQ19SRUNWX1JETUFfV0lUSF9JTU07CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJY2FzZSBNTFg0X1JFQ1ZfT1BDT0RFX1NFTkQ6CiAJCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwogCQkJd2MtPndjX2ZsYWdzID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIE1MWDRfUkVDVl9PUENPREVfU0VORF9JTU06Ci0JCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwotCQkJd2MtPndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCQl3Yy0+aW1tX2RhdGEgPSBjcWUtPmltbWVkX3Jzc19pbnZhbGlkOworCQkJd2MtPm9wY29kZQk9IElCX1dDX1JFQ1Y7CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCmluZGV4IDRjMWU3MmYuLmNkY2EzYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCkBAIC0yNTUsNyArMjU1LDggQEAKIAkJCXJldHVybiBJQl9NQURfUkVTVUxUX1NVQ0NFU1M7CiAJfSBlbHNlIGlmIChpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBJQl9NR01UX0NMQVNTX1BFUkZfTUdNVCB8fAogCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzEgICB8fAotCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzIpIHsKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gTUxYNF9JQl9WRU5ET1JfQ0xBU1MyICAgfHwKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gSUJfTUdNVF9DTEFTU19DT05HX01HTVQpIHsKIAkJaWYgKGluX21hZC0+bWFkX2hkci5tZXRob2QgICE9IElCX01HTVRfTUVUSE9EX0dFVCAmJgogCQkgICAgaW5fbWFkLT5tYWRfaGRyLm1ldGhvZCAgIT0gSUJfTUdNVF9NRVRIT0RfU0VUKQogCQkJcmV0dXJuIElCX01BRF9SRVNVTFRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYwppbmRleCA0ZDYxZTMyLi5iY2Y1MDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jCkBAIC05MCw3ICs5MCw4IEBACiAJcHJvcHMtPmRldmljZV9jYXBfZmxhZ3MgICAgPSBJQl9ERVZJQ0VfQ0hBTkdFX1BIWV9QT1JUIHwKIAkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UCQl8CiAJCUlCX0RFVklDRV9TWVNfSU1BR0VfR1VJRAkJfAotCQlJQl9ERVZJQ0VfUkNfUk5SX05BS19HRU47CisJCUlCX0RFVklDRV9SQ19STlJfTkFLX0dFTgkJfAorCQlJQl9ERVZJQ0VfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9QS0VZX0NOVFIpCiAJCXByb3BzLT5kZXZpY2VfY2FwX2ZsYWdzIHw9IElCX0RFVklDRV9CQURfUEtFWV9DTlRSOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9RS0VZX0NOVFIpCkBAIC00MzcsNyArNDM4LDkgQEAKIHN0YXRpYyBpbnQgbWx4NF9pYl9tY2dfYXR0YWNoKHN0cnVjdCBpYl9xcCAqaWJxcCwgdW5pb24gaWJfZ2lkICpnaWQsIHUxNiBsaWQpCiB7CiAJcmV0dXJuIG1seDRfbXVsdGljYXN0X2F0dGFjaCh0b19tZGV2KGlicXAtPmRldmljZSktPmRldiwKLQkJCQkgICAgICZ0b19tcXAoaWJxcCktPm1xcCwgZ2lkLT5yYXcpOworCQkJCSAgICAgJnRvX21xcChpYnFwKS0+bXFwLCBnaWQtPnJhdywKKwkJCQkgICAgICEhKHRvX21xcChpYnFwKS0+ZmxhZ3MgJgorCQkJCQlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykpOwogfQogCiBzdGF0aWMgaW50IG1seDRfaWJfbWNnX2RldGFjaChzdHJ1Y3QgaWJfcXAgKmlicXAsIHVuaW9uIGliX2dpZCAqZ2lkLCB1MTYgbGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oCmluZGV4IDVjZjk5NDcuLmM0Y2Y1YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21seDRfaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tbHg0X2liLmgKQEAgLTEwMSw3ICsxMDEsOCBAQAogfTsKIAogZW51bSBtbHg0X2liX3FwX2ZsYWdzIHsKLQlNTFg0X0lCX1FQX0xTTwkJPSAxIDw8IDAKKwlNTFg0X0lCX1FQX0xTTwkJCQk9IDEgPDwgMCwKKwlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSwk9IDEgPDwgMSwKIH07CiAKIHN0cnVjdCBtbHg0X2liX3FwIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jCmluZGV4IGE4MGRmMjIuLjg5ZWI2Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvcXAuYwpAQCAtMTI5LDkgKzEyOSwxMCBAQAogCWludCBpbmQ7CiAJdm9pZCAqYnVmOwogCV9fYmUzMiBzdGFtcDsKKwlzdHJ1Y3QgbWx4NF93cWVfY3RybF9zZWcgKmN0cmw7CiAKLQlzID0gcm91bmR1cChzaXplLCAxVSA8PCBxcC0+c3Eud3FlX3NoaWZ0KTsKIAlpZiAocXAtPnNxX21heF93cWVzX3Blcl93ciA+IDEpIHsKKwkJcyA9IHJvdW5kdXAoc2l6ZSwgMVUgPDwgcXAtPnNxLndxZV9zaGlmdCk7CiAJCWZvciAoaSA9IDA7IGkgPCBzOyBpICs9IDY0KSB7CiAJCQlpbmQgPSAoaSA+PiBxcC0+c3Eud3FlX3NoaWZ0KSArIG47CiAJCQlzdGFtcCA9IGluZCAmIHFwLT5zcS53cWVfY250ID8gY3B1X3RvX2JlMzIoMHg3ZmZmZmZmZikgOgpAQCAtMTQxLDcgKzE0Miw4IEBACiAJCQkqd3FlID0gc3RhbXA7CiAJCX0KIAl9IGVsc2UgewotCQlidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCWN0cmwgPSBidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCXMgPSAoY3RybC0+ZmVuY2Vfc2l6ZSAmIDB4M2YpIDw8IDQ7CiAJCWZvciAoaSA9IDY0OyBpIDwgczsgaSArPSA2NCkgewogCQkJd3FlID0gYnVmICsgaTsKIAkJCSp3cWUgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZmKTsKQEAgLTQ1MiwxOSArNDU0LDggQEAKIAlzcGluX2xvY2tfaW5pdCgmcXAtPnJxLmxvY2spOwogCiAJcXAtPnN0YXRlCSA9IElCX1FQU19SRVNFVDsKLQlxcC0+YXRvbWljX3JkX2VuID0gMDsKLQlxcC0+cmVzcF9kZXB0aCAgID0gMDsKLQotCXFwLT5ycS5oZWFkCSAgICA9IDA7Ci0JcXAtPnJxLnRhaWwJICAgID0gMDsKLQlxcC0+c3EuaGVhZAkgICAgPSAwOwotCXFwLT5zcS50YWlsCSAgICA9IDA7Ci0JcXAtPnNxX25leHRfd3FlICAgICA9IDA7Ci0KIAlpZiAoaW5pdF9hdHRyLT5zcV9zaWdfdHlwZSA9PSBJQl9TSUdOQUxfQUxMX1dSKQogCQlxcC0+c3Ffc2lnbmFsX2JpdHMgPSBjcHVfdG9fYmUzMihNTFg0X1dRRV9DVFJMX0NRX1VQREFURSk7Ci0JZWxzZQotCQlxcC0+c3Ffc2lnbmFsX2JpdHMgPSAwOwogCiAJZXJyID0gc2V0X3JxX3NpemUoZGV2LCAmaW5pdF9hdHRyLT5jYXAsICEhcGQtPnVvYmplY3QsICEhaW5pdF9hdHRyLT5zcnEsIHFwKTsKIAlpZiAoZXJyKQpAQCAtNTA5LDYgKzUwMCw5IEBACiAJfSBlbHNlIHsKIAkJcXAtPnNxX25vX3ByZWZldGNoID0gMDsKIAorCQlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiBJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKQorCQkJcXAtPmZsYWdzIHw9IE1MWDRfSUJfUVBfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOworCiAJCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08pCiAJCQlxcC0+ZmxhZ3MgfD0gTUxYNF9JQl9RUF9MU087CiAKQEAgLTY4MiwxMCArNjc2LDE1IEBACiAJc3RydWN0IG1seDRfaWJfcXAgKnFwOwogCWludCBlcnI7CiAKLQkvKiBXZSBvbmx5IHN1cHBvcnQgTFNPLCBhbmQgb25seSBmb3Iga2VybmVsIFVEIFFQcy4gKi8KLQlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiB+SUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTykKKwkvKgorCSAqIFdlIG9ubHkgc3VwcG9ydCBMU08gYW5kIG11bHRpY2FzdCBsb29wYmFjayBibG9ja2luZywgYW5kCisJICogb25seSBmb3Iga2VybmVsIFVEIFFQcy4KKwkgKi8KKwlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiB+KElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08gfAorCQkJCQlJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTyAmJgorCisJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYmCiAJICAgIChwZC0+dW9iamVjdCB8fCBpbml0X2F0dHItPnFwX3R5cGUgIT0gSUJfUVBUX1VEKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKQEAgLTY5NCw3ICs2OTMsNyBAQAogCWNhc2UgSUJfUVBUX1VDOgogCWNhc2UgSUJfUVBUX1VEOgogCXsKLQkJcXAgPSBrbWFsbG9jKHNpemVvZiAqcXAsIEdGUF9LRVJORUwpOworCQlxcCA9IGt6YWxsb2Moc2l6ZW9mICpxcCwgR0ZQX0tFUk5FTCk7CiAJCWlmICghcXApCiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtNzE1LDcgKzcxNCw3IEBACiAJCWlmIChwZC0+dW9iamVjdCkKIAkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0JCXNxcCA9IGttYWxsb2Moc2l6ZW9mICpzcXAsIEdGUF9LRVJORUwpOworCQlzcXAgPSBremFsbG9jKHNpemVvZiAqc3FwLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFzcXApCiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtOTA2LDcgKzkwNSw4IEBACiAJCQkgICAgICAgYXR0ci0+cGF0aF9tdHUpOwogCQkJZ290byBvdXQ7CiAJCX0KLQkJY29udGV4dC0+bXR1X21zZ21heCA9IChhdHRyLT5wYXRoX210dSA8PCA1KSB8IDMxOworCQljb250ZXh0LT5tdHVfbXNnbWF4ID0gKGF0dHItPnBhdGhfbXR1IDw8IDUpIHwKKwkJCWlsb2cyKGRldi0+ZGV2LT5jYXBzLm1heF9tc2dfc3opOwogCX0KIAogCWlmIChxcC0+cnEud3FlX2NudCkKQEAgLTEwNjMsNiArMTA2Myw4IEBACiAJCWZvciAoaSA9IDA7IGkgPCBxcC0+c3Eud3FlX2NudDsgKytpKSB7CiAJCQljdHJsID0gZ2V0X3NlbmRfd3FlKHFwLCBpKTsKIAkJCWN0cmwtPm93bmVyX29wY29kZSA9IGNwdV90b19iZTMyKDEgPDwgMzEpOworCQkJaWYgKHFwLT5zcV9tYXhfd3Flc19wZXJfd3IgPT0gMSkKKwkJCQljdHJsLT5mZW5jZV9zaXplID0gMSA8PCAocXAtPnNxLndxZV9zaGlmdCAtIDQpOwogCiAJCQlzdGFtcF9zZW5kX3dxZShxcCwgaSwgMSA8PCBxcC0+c3Eud3FlX3NoaWZ0KTsKIAkJfQpAQCAtMTEyNywyMyArMTEyOSw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyIG1seDRfaWJfcXBfYXR0ciA9IHsgLnBvcnRfbnVtID0gMSB9Owotc3RhdGljIGNvbnN0IGludCBtbHg0X2liX3FwX2F0dHJfbWFza190YWJsZVtJQl9RUFRfVUQgKyAxXSA9IHsKLQkJW0lCX1FQVF9VRF0gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCQlJQl9RUF9QT1JUCQkJfAotCQkJCUlCX1FQX1FLRVkpLAotCQlbSUJfUVBUX1VDXSAgPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQkJSUJfUVBfQUNDRVNTX0ZMQUdTKSwKLQkJW0lCX1FQVF9SQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCQlJQl9RUF9QT1JUCQkJfAotCQkJCUlCX1FQX0FDQ0VTU19GTEFHUyksCi0JCVtJQl9RUFRfU01JXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUUtFWSksCi0JCVtJQl9RUFRfR1NJXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUUtFWSksCi19OwotCiBpbnQgbWx4NF9pYl9tb2RpZnlfcXAoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKIAkJICAgICAgaW50IGF0dHJfbWFzaywgc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKIHsKQEAgLTExODYsMTUgKzExNzEsNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoY3VyX3N0YXRlID09IElCX1FQU19SRVNFVCAmJiBuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgewotCQllcnIgPSBfX21seDRfaWJfbW9kaWZ5X3FwKGlicXAsICZtbHg0X2liX3FwX2F0dHIsCi0JCQkJCSAgbWx4NF9pYl9xcF9hdHRyX21hc2tfdGFibGVbaWJxcC0+cXBfdHlwZV0sCi0JCQkJCSAgSUJfUVBTX1JFU0VULCBJQl9RUFNfSU5JVCk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQkJY3VyX3N0YXRlID0gSUJfUVBTX0lOSVQ7Ci0JfQotCiAJZXJyID0gX19tbHg0X2liX21vZGlmeV9xcChpYnFwLCBhdHRyLCBhdHRyX21hc2ssIGN1cl9zdGF0ZSwgbmV3X3N0YXRlKTsKIAogb3V0OgpAQCAtMTg2NSw2ICsxODQxLDEzIEBACiAKIAlxcF9pbml0X2F0dHItPmNhcAkgICAgID0gcXBfYXR0ci0+Y2FwOwogCisJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgPSAwOworCWlmIChxcC0+ZmxhZ3MgJiBNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykKKwkJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSzsKKworCWlmIChxcC0+ZmxhZ3MgJiBNTFg0X0lCX1FQX0xTTykKKwkJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTzsKKwogb3V0OgogCW11dGV4X3VubG9jaygmcXAtPm11dGV4KTsKIAlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2FsbG9jYXRvci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2FsbG9jYXRvci5jCmluZGV4IGE3NjMwNjcuLmM1Y2NjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9hbGxvY2F0b3IuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYWxsb2NhdG9yLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX2FsbG9jYXRvci5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9hdi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKaW5kZXggNGIxMTFhOC4uMzJmNmM2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX2F2LmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jYXRhcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKaW5kZXggZTk0ODE1OC4uY2M0NDBmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KQEAgLTEyOCw3ICsxMjYsNiBAQAogc3RhdGljIHZvaWQgcG9sbF9jYXRhcyh1bnNpZ25lZCBsb25nIGRldl9wdHIpCiB7CiAJc3RydWN0IG10aGNhX2RldiAqZGV2ID0gKHN0cnVjdCBtdGhjYV9kZXYgKikgZGV2X3B0cjsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGRldi0+Y2F0YXNfZXJyLnNpemU7ICsraSkKQEAgLTEzNywxMyArMTM0LDggQEAKIAkJCXJldHVybjsKIAkJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNhdGFzX2xvY2ssIGZsYWdzKTsKLQlpZiAoIWRldi0+Y2F0YXNfZXJyLnN0b3ApCi0JCW1vZF90aW1lcigmZGV2LT5jYXRhc19lcnIudGltZXIsCi0JCQkgIGppZmZpZXMgKyBNVEhDQV9DQVRBU19QT0xMX0lOVEVSVkFMKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXRhc19sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm47CisJbW9kX3RpbWVyKCZkZXYtPmNhdGFzX2Vyci50aW1lciwKKwkJICByb3VuZF9qaWZmaWVzKGppZmZpZXMgKyBNVEhDQV9DQVRBU19QT0xMX0lOVEVSVkFMKSk7CiB9CiAKIHZvaWQgbXRoY2Ffc3RhcnRfY2F0YXNfcG9sbChzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYpCkBAIC0xNTEsNyArMTQzLDYgQEAKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAKIAlpbml0X3RpbWVyKCZkZXYtPmNhdGFzX2Vyci50aW1lcik7Ci0JZGV2LT5jYXRhc19lcnIuc3RvcCA9IDA7CiAJZGV2LT5jYXRhc19lcnIubWFwICA9IE5VTEw7CiAKIAlhZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMCkgKwpAQCAtMTgyLDEwICsxNzMsNiBAQAogCiB2b2lkIG10aGNhX3N0b3BfY2F0YXNfcG9sbChzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYpCiB7Ci0Jc3Bpbl9sb2NrX2lycSgmY2F0YXNfbG9jayk7Ci0JZGV2LT5jYXRhc19lcnIuc3RvcCA9IDE7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZjYXRhc19sb2NrKTsKLQogCWRlbF90aW1lcl9zeW5jKCZkZXYtPmNhdGFzX2Vyci50aW1lcik7CiAKIAlpZiAoZGV2LT5jYXRhc19lcnIubWFwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmMKaW5kZXggNTRkMjMwZS4uYzMzZTFjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY21kLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmgKaW5kZXggODkyOGNhNC4uNmVmZDMyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY21kLmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgTVRIQ0FfQ01EX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jb25maWdfcmVnLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY29uZmlnX3JlZy5oCmluZGV4IGFmYTU2YmYuLjc1NjcxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jb25maWdfcmVnLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NvbmZpZ19yZWcuaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY29uZmlnX3JlZy5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX0NPTkZJR19SRUdfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYwppbmRleCAyMDQwMWQyLi5kOWY0NzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYwpAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY3EuYyAxMzY5IDIwMDQtMTItMjAgMTY6MTc6MDdaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KQEAgLTYyMiwxMyArNjIwLDEzIEBACiAJCWNhc2UgSUJfT1BDT0RFX1NFTkRfTEFTVF9XSVRIX0lNTUVESUFURToKIAkJY2FzZSBJQl9PUENPREVfU0VORF9PTkxZX1dJVEhfSU1NRURJQVRFOgogCQkJZW50cnktPndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCQllbnRyeS0+aW1tX2RhdGEgPSBjcWUtPmltbV9ldHlwZV9wa2V5X2VlYzsKKwkJCWVudHJ5LT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tX2V0eXBlX3BrZXlfZWVjOwogCQkJZW50cnktPm9wY29kZSA9IElCX1dDX1JFQ1Y7CiAJCQlicmVhazsKIAkJY2FzZSBJQl9PUENPREVfUkRNQV9XUklURV9MQVNUX1dJVEhfSU1NRURJQVRFOgogCQljYXNlIElCX09QQ09ERV9SRE1BX1dSSVRFX09OTFlfV0lUSF9JTU1FRElBVEU6CiAJCQllbnRyeS0+d2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJCWVudHJ5LT5pbW1fZGF0YSA9IGNxZS0+aW1tX2V0eXBlX3BrZXlfZWVjOworCQkJZW50cnktPmV4LmltbV9kYXRhID0gY3FlLT5pbW1fZXR5cGVfcGtleV9lZWM7CiAJCQllbnRyeS0+b3Bjb2RlID0gSUJfV0NfUkVDVl9SRE1BX1dJVEhfSU1NOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZGV2LmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZGV2LmgKaW5kZXggN2JjMzJmOC4uZWU0ZDA3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2Rldi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kZXYuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfZGV2LmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgTVRIQ0FfREVWX0gKQEAgLTI3OSw3ICsyNzcsNiBAQAogc3RydWN0IG10aGNhX2NhdGFzX2VyciB7CiAJdTY0CQkJYWRkcjsKIAl1MzIgX19pb21lbQkgICAgICAgKm1hcDsKLQl1bnNpZ25lZCBsb25nCQlzdG9wOwogCXUzMgkJCXNpemU7CiAJc3RydWN0IHRpbWVyX2xpc3QJdGltZXI7CiAJc3RydWN0IGxpc3RfaGVhZAlsaXN0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2Rvb3JiZWxsLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaAppbmRleCBiMzc0ZGMzLi4xNGY1MWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfZG9vcmJlbGwuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZXEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCmluZGV4IDhiZGU3ZjkuLjRlMzZhYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9lcS5jIDEzODIgMjAwNC0xMi0yNCAwMjoyMTowMlogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWQuYwppbmRleCA4YjdlODNlLi42NDA0NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21hZC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9tYWQuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWluLmMKaW5kZXggMjAwY2YxMy4uZmI5ZjkxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFpbi5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9tYWluLmMgMTM5NiAyMDA0LTEyLTI4IDA0OjEwOjI3WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tY2cuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tY2cuYwppbmRleCBhOGFkMDcyLi4zZjVmOTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWNnLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21jZy5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9tY2cuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKaW5kZXggYjIyNDA3OS4uMWY3ZDFhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgpAQCAtMTA5LDcgKzEwNywxMSBAQAogewogCXN0cnVjdCBwYWdlICpwYWdlOwogCi0JcGFnZSA9IGFsbG9jX3BhZ2VzKGdmcF9tYXNrLCBvcmRlcik7CisJLyoKKwkgKiBVc2UgX19HRlBfWkVSTyBiZWNhdXNlIGJ1Z2d5IGZpcm13YXJlIGFzc3VtZXMgSUNNIHBhZ2VzIGFyZQorCSAqIGNsZWFyZWQsIGFuZCBzdWJ0bGUgZmFpbHVyZXMgYXJlIHNlZW4gaWYgdGhleSBhcmVuJ3QuCisJICovCisJcGFnZSA9IGFsbG9jX3BhZ2VzKGdmcF9tYXNrIHwgX19HRlBfWkVSTywgb3JkZXIpOwogCWlmICghcGFnZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5oCmluZGV4IGExYWIwNjguLmRhOWI4ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaWZuZGVmIE1USENBX01FTUZSRUVfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYwppbmRleCA4MjAyMDVkLi44NDg5YjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfbXIuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKaW5kZXggYzFlOTUwNy4uMjY2ZjE0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3BkLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmMKaW5kZXggNjA1YThkNS4uZDE2OGMyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9wcm9maWxlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5oCmluZGV4IGU3NmNiNjIuLjYyYjAwOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvZmlsZS5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1BST0ZJTEVfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYwppbmRleCBiZTM0Zjk5Li44N2FkODg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYwpAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvdmlkZXIuYyA0ODU5IDIwMDYtMDEtMDkgMjE6NTU6MTBaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPHJkbWEvaWJfc21pLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCmluZGV4IDkzNGJmOTUuLmM2MjFmODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9wcm92aWRlci5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1BST1ZJREVSX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9xcC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKaW5kZXggMDlkYzM2MS4uZjUwODFiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3FwLmMgMTM1NSAyMDA0LTEyLTE3IDE1OjIzOjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTg1MCwyMyArODQ4LDYgQEAKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGliX3FwX2F0dHIgZHVtbXlfaW5pdF9hdHRyID0geyAucG9ydF9udW0gPSAxIH07Ci1zdGF0aWMgY29uc3QgaW50IGR1bW15X2luaXRfYXR0cl9tYXNrW10gPSB7Ci0JW0lCX1FQVF9VRF0gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQlJQl9RUF9RS0VZKSwKLQlbSUJfUVBUX1VDXSAgPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJSUJfUVBfUE9SVAkJCXwKLQkJCUlCX1FQX0FDQ0VTU19GTEFHUyksCi0JW0lCX1FQVF9SQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQlJQl9RUF9BQ0NFU1NfRkxBR1MpLAotCVtJQl9RUFRfU01JXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQlJQl9RUF9RS0VZKSwKLQlbSUJfUVBUX0dTSV0gPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJSUJfUVBfUUtFWSksCi19OwotCiBpbnQgbXRoY2FfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsIGludCBhdHRyX21hc2ssCiAJCSAgICBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogewpAQCAtOTI4LDE1ICs5MDksNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoY3VyX3N0YXRlID09IElCX1FQU19SRVNFVCAmJiBuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgewotCQllcnIgPSBfX210aGNhX21vZGlmeV9xcChpYnFwLCAmZHVtbXlfaW5pdF9hdHRyLAotCQkJCQlkdW1teV9pbml0X2F0dHJfbWFza1tpYnFwLT5xcF90eXBlXSwKLQkJCQkJSUJfUVBTX1JFU0VULCBJQl9RUFNfSU5JVCk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQkJY3VyX3N0YXRlID0gSUJfUVBTX0lOSVQ7Ci0JfQotCiAJZXJyID0gX19tdGhjYV9tb2RpZnlfcXAoaWJxcCwgYXR0ciwgYXR0cl9tYXNrLCBjdXJfc3RhdGUsIG5ld19zdGF0ZSk7CiAKIG91dDoKQEAgLTEyNzcsMTAgKzEyNDksMTAgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKgotCSAqIEZvciBNTFggdHJhbnNwb3J0IHdlIG5lZWQgMiBleHRyYSBTL0cgZW50cmllczoKKwkgKiBGb3IgTUxYIHRyYW5zcG9ydCB3ZSBuZWVkIDIgZXh0cmEgc2VuZCBnYXRoZXIgZW50cmllczoKIAkgKiBvbmUgZm9yIHRoZSBoZWFkZXIgYW5kIG9uZSBmb3IgdGhlIGNoZWNrc3VtIGF0IHRoZSBlbmQKIAkgKi8KLQlpZiAocXAtPnRyYW5zcG9ydCA9PSBNTFggJiYgY2FwLT5tYXhfcmVjdl9zZ2UgKyAyID4gZGV2LT5saW1pdHMubWF4X3NnKQorCWlmIChxcC0+dHJhbnNwb3J0ID09IE1MWCAmJiBjYXAtPm1heF9zZW5kX3NnZSArIDIgPiBkZXYtPmxpbWl0cy5tYXhfc2cpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKG10aGNhX2lzX21lbWZyZWUoZGV2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcmVzZXQuYwppbmRleCA5MTkzNGYyLi5hY2I2ODE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3Jlc2V0LmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffc3JxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffc3JxLmMKaW5kZXggYTVmZmZmNi4uNGZhYmU2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3NycS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9zcnEuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2Ffc3JxLmMgMzA0NyAyMDA1LTA4LTEwIDAzOjU5OjM1WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdWFyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdWFyLmMKaW5kZXggOGI3Mjg0OC4uY2E1OTAwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Vhci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91YXIuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4JCS8qIFBBR0VfU0hJRlQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91c2VyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdXNlci5oCmluZGV4IGUxMjYyYzkuLjVmZTU2ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91c2VyLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3VzZXIuaApAQCAtMjksNyArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKICAqLwogCiAjaWZuZGVmIE1USENBX1VTRVJfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3dxZS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3dxZS5oCmluZGV4IGIzNTUxYTguLjM0MWE1YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV93cWUuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffd3FlLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3dxZS5oIDMwNDcgMjAwNS0wOC0xMCAwMzo1OTozNVogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1dRRV9ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuYwppbmRleCBhNGU5MjY5Li5kMjg4NGU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmMKQEAgLTMyOCw3ICszMjgsNyBAQAogCQlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9XUUVfSURfSURYLCBuZXNxcC0+aHdxcC5xcF9pZCk7CiAJCXU2NHRlbXAgPSAodTY0KW5lc3FwLT5uZXNxcF9jb250ZXh0X3BiYXNlOwogCQlzZXRfd3FlXzY0Yml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9RUF9XUUVfQ09OVEVYVF9MT1dfSURYLCB1NjR0ZW1wKTsKLQkJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5oCmluZGV4IDYxYjQ2ZTkuLjM5YmQ4OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuaApAQCAtOTQsOSArOTQsNiBAQAogCiAjZGVmaW5lIE1BWF9EUENfSVRFUkFUSU9OUyAgICAgICAgICAgICAgIDEyOAogCi0jZGVmaW5lIE5FU19DUVBfUkVRVUVTVF9OT19ET09SQkVMTF9SSU5HIDAKLSNkZWZpbmUgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwgICAgMQotCiAjZGVmaW5lIE5FU19EUlZfT1BUX0VOQUJMRV9NUEFfVkVSXzAgICAgIDB4MDAwMDAwMDEKICNkZWZpbmUgTkVTX0RSVl9PUFRfRElTQUJMRV9NUEFfQ1JDICAgICAgMHgwMDAwMDAwMgogI2RlZmluZSBORVNfRFJWX09QVF9ESVNBQkxFX0ZJUlNUX1dSSVRFICAweDAwMDAwMDA0CkBAIC01MzgsNyArNTM1LDExIEBACiB2b2lkIG5lc193cml0ZV8xMEdfcGh5X3JlZyhzdHJ1Y3QgbmVzX2RldmljZSAqLCB1MTYsIHU4LCB1MTYsIHUxNik7CiB2b2lkIG5lc19yZWFkXzEwR19waHlfcmVnKHN0cnVjdCBuZXNfZGV2aWNlICosIHU4LCB1OCwgdTE2KTsKIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKm5lc19nZXRfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKik7Ci12b2lkIG5lc19wb3N0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICosIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKiwgaW50KTsKK3ZvaWQgbmVzX2ZyZWVfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKm5lc2RldiwKKwkJCSAgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpOwordm9pZCBuZXNfcHV0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpOwordm9pZCBuZXNfcG9zdF9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICopOwogaW50IG5lc19hcnBfdGFibGUoc3RydWN0IG5lc19kZXZpY2UgKiwgdTMyLCB1OCAqLCB1MzIpOwogdm9pZCBuZXNfbWhfZml4KHVuc2lnbmVkIGxvbmcpOwogdm9pZCBuZXNfY2xjKHVuc2lnbmVkIGxvbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfY20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2NtLmMKaW5kZXggOWE0YjQwZi4uNmFhNTMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfY20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19jbS5jCkBAIC0xNjAzLDcgKzE2MDMsNiBAQAogCQkJcmV0dXJuIE5VTEw7CiAJCX0KIAotCQltZW1zZXQobGlzdGVuZXIsIDAsIHNpemVvZihzdHJ1Y3QgbmVzX2NtX2xpc3RlbmVyKSk7CiAJCWxpc3RlbmVyLT5sb2NfYWRkciA9IGh0b25sKGNtX2luZm8tPmxvY19hZGRyKTsKIAkJbGlzdGVuZXItPmxvY19wb3J0ID0gaHRvbnMoY21faW5mby0+bG9jX3BvcnQpOwogCQlsaXN0ZW5lci0+cmV1c2VkX25vZGUgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmMKaW5kZXggZDMyNzhmMS4uODVmMjZkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5jCkBAIC0zOTgsNyArMzk4LDcgQEAKIAluZXNhZGFwdGVyLT5iYXNlX3BkID0gMTsKIAogCW5lc2FkYXB0ZXItPmRldmljZV9jYXBfZmxhZ3MgPQotCQlJQl9ERVZJQ0VfWkVST19TVEFHIHwgSUJfREVWSUNFX01FTV9XSU5ET1c7CisJCUlCX0RFVklDRV9MT0NBTF9ETUFfTEtFWSB8IElCX0RFVklDRV9NRU1fV0lORE9XOwogCiAJbmVzYWRhcHRlci0+YWxsb2NhdGVkX3FwcyA9ICh1bnNpZ25lZCBsb25nICopJigoKHVuc2lnbmVkIGNoYXIgKiluZXNhZGFwdGVyKQogCQkJWyhzaXplb2Yoc3RydWN0IG5lc19hZGFwdGVyKSsoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLTEpKSYofihzaXplb2YodW5zaWduZWQgbG9uZyktMSkpXSk7CkBAIC0yNzEwLDM5ICsyNzEwLDExIEBACiAJCQkJCWJhcnJpZXIoKTsKIAkJCQkJY3FwX3JlcXVlc3QtPnJlcXVlc3RfZG9uZSA9IDE7CiAJCQkJCXdha2VfdXAoJmNxcF9yZXF1ZXN0LT53YWl0cSk7Ci0JCQkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQkJCQluZXNfZGVidWcoTkVTX0RCR19DUVAsICJDUVAgcmVxdWVzdCAlcCAob3Bjb2RlIDB4JTAyWCkgZnJlZWQuXG4iLAotCQkJCQkJCQljcXBfcmVxdWVzdCwKLQkJCQkJCQkJbGUzMl90b19jcHUoY3FwX3JlcXVlc3QtPmNxcF93cWUud3FlX3dvcmRzW05FU19DUVBfV1FFX09QQ09ERV9JRFhdKSYweDNmKTsKLQkJCQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCX0gZWxzZSBpZiAoY3FwX3JlcXVlc3QtPmNhbGxiYWNrKSB7Ci0JCQkJCS8qIEVudm9rZSB0aGUgY2FsbGJhY2sgcm91dGluZSAqLwotCQkJCQljcXBfcmVxdWVzdC0+Y3FwX2NhbGxiYWNrKG5lc2RldiwgY3FwX3JlcXVlc3QpOwotCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQl9CisJCQkJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCQkJfSBlbHNlIHsKLQkJCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1FQLCAiQ1FQIHJlcXVlc3QgJXAgKG9wY29kZSAweCUwMlgpIGZyZWVkLlxuIiwKLQkJCQkJCQljcXBfcmVxdWVzdCwKLQkJCQkJCQlsZTMyX3RvX2NwdShjcXBfcmVxdWVzdC0+Y3FwX3dxZS53cWVfd29yZHNbTkVTX0NRUF9XUUVfT1BDT0RFX0lEWF0pICYgMHgzZik7Ci0JCQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJCQl9IGVsc2UgewotCQkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCX0KKwkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5jYWxsYmFjaykKKwkJCQkJCWNxcF9yZXF1ZXN0LT5jcXBfY2FsbGJhY2sobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisJCQkJCW5lc19mcmVlX2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJd2FrZV91cCgmbmVzZGV2LT5jcXAud2FpdHEpOwpAQCAtMzE0OSw3ICszMTIxLDYgQEAKIHsKIAlzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2ID0gbmVzdm5pYy0+bmVzZGV2OwogCXN0cnVjdCBuZXNfaHdfY3FwX3dxZSAqY3FwX3dxZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCWludCByZXQgPSAwOwogCXUxNiBtYWpvcl9jb2RlOwpAQCAtMzE3Niw3ICszMTQ3LDcgQEAKIAluZXNfZGVidWcoTkVTX0RCR19RUCwgIldhaXRpbmcgZm9yIENRUCBjb21wbGV0aW9uIGZvciBBUEJWVC5cbiIpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAlpZiAoYWRkX3BvcnQgPT0gTkVTX01BTkFHRV9BUEJWVF9BREQpCiAJCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsIChjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lICE9IDApLApAQCAtMzE4NCwxNSArMzE1NSw5IEBACiAJbmVzX2RlYnVnKE5FU19EQkdfUVAsICJDb21wbGV0ZWQsIHJldD0ldSwgIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFhcbiIsCiAJCQlyZXQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7CiAJbWFqb3JfY29kZSA9IGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlOwotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQl9IGVsc2UgewotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCX0KLQl9CisKKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworCiAJaWYgKCFyZXQpCiAJCXJldHVybiAtRVRJTUU7CiAJZWxzZSBpZiAobWFqb3JfY29kZSkKQEAgLTMyNTIsNyArMzIxNyw3IEBACiAJCQluZXNkZXYtPmNxcC5zcV9oZWFkLCBuZXNkZXYtPmNxcC5zcV90YWlsKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMSk7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogfQogCiAKQEAgLTMyNjIsNyArMzIyNyw2IEBACiB2b2lkIGZsdXNoX3dxZXMoc3RydWN0IG5lc19kZXZpY2UgKm5lc2Rldiwgc3RydWN0IG5lc19xcCAqbmVzcXAsCiAJCXUzMiB3aGljaF93cSwgdTMyIHdhaXRfY29tcGxldGlvbikKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCXN0cnVjdCBuZXNfaHdfY3FwX3dxZSAqY3FwX3dxZTsKIAlpbnQgcmV0OwpAQCAtMzI4NSw3ICszMjQ5LDcgQEAKIAkJCWNwdV90b19sZTMyKE5FU19DUVBfRkxVU0hfV1FFUyB8IHdoaWNoX3dxKTsKIAljcXBfd3FlLT53cWVfd29yZHNbTkVTX0NRUF9XUUVfSURfSURYXSA9IGNwdV90b19sZTMyKG5lc3FwLT5od3FwLnFwX2lkKTsKIAotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCWlmICh3YWl0X2NvbXBsZXRpb24pIHsKIAkJLyogV2FpdCBmb3IgQ1FQICovCkBAIC0zMjk0LDE0ICszMjU4LDYgQEAKIAkJbmVzX2RlYnVnKE5FU19EQkdfUVAsICJGbHVzaCBTUSBRUCBXUUVzIGNvbXBsZXRlZCwgcmV0PSV1LCIKIAkJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFhcbiIsCiAJCQkJcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CisJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmgKaW5kZXggNzQ1YmY5NC4uN2I4MWUwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5oCkBAIC0xMTcyLDcgKzExNzIsNyBAQAogCXUzMiAgICBtY3JxX3FwX2lkOwogCXN0cnVjdCBuZXNfdWNvbnRleHQgKm1jcnFfdWNvbnRleHQ7CiAJc3RydWN0IG5lc19jcXBfcmVxdWVzdCogKCpnZXRfY3FwX3JlcXVlc3QpKHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYpOwotCXZvaWQgKCpwb3N0X2NxcF9yZXF1ZXN0KShzdHJ1Y3QgbmVzX2RldmljZSosIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKiwgaW50KTsKKwl2b2lkICgqcG9zdF9jcXBfcmVxdWVzdCkoc3RydWN0IG5lc19kZXZpY2UqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICopOwogCWludCAoKm1jcnFfbWNhc3RfZmlsdGVyKSggc3RydWN0IG5lc192bmljKiBuZXN2bmljLCBfX3U4KiBkbWlfYWRkciApOwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzIG5ldHN0YXRzOwogCS8qIHVzZWQgdG8gcHV0IHRoZSBuZXRkZXYgb24gdGhlIGFkYXB0ZXJzIGxvZ2ljYWwgcG9ydCBsaXN0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc191dGlscy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdXRpbHMuYwppbmRleCBmZTgzZDFiLi5mYjhjYmQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc191dGlscy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3V0aWxzLmMKQEAgLTU2NywxMiArNTY3LDM2IEBACiAJcmV0dXJuIGNxcF9yZXF1ZXN0OwogfQogCit2b2lkIG5lc19mcmVlX2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwluZXNfZGVidWcoTkVTX0RCR19DUVAsICJDUVAgcmVxdWVzdCAlcCAob3Bjb2RlIDB4JTAyWCkgZnJlZWQuXG4iLAorCQkgIGNxcF9yZXF1ZXN0LAorCQkgIGxlMzJfdG9fY3B1KGNxcF9yZXF1ZXN0LT5jcXBfd3FlLndxZV93b3Jkc1tORVNfQ1FQX1dRRV9PUENPREVfSURYXSkgJiAweDNmKTsKKworCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgeworCQlrZnJlZShjcXBfcmVxdWVzdCk7CisJfSBlbHNlIHsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKKwkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOworCX0KK30KKwordm9pZCBuZXNfcHV0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpCit7CisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpCisJCW5lc19mcmVlX2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworfQogCiAvKioKICAqIG5lc19wb3N0X2NxcF9yZXF1ZXN0CiAgKi8KIHZvaWQgbmVzX3Bvc3RfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKm5lc2RldiwKLQkJc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QsIGludCByaW5nX2Rvb3JiZWxsKQorCQkJICBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdCkKIHsKIAlzdHJ1Y3QgbmVzX2h3X2NxcF93cWUgKmNxcF93cWU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTYwMCwxMCArNjI0LDkgQEAKIAkJCQluZXNkZXYtPmNxcC5zcV9oZWFkLCBuZXNkZXYtPmNxcC5zcV90YWlsLCBuZXNkZXYtPmNxcC5zcV9zaXplLAogCQkJCWNxcF9yZXF1ZXN0LT53YWl0aW5nLCBhdG9taWNfcmVhZCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSk7CiAJCWJhcnJpZXIoKTsKLQkJaWYgKHJpbmdfZG9vcmJlbGwpIHsKLQkJCS8qIFJpbmcgZG9vcmJlbGwgKDEgV1FFcykgKi8KLQkJCW5lc193cml0ZTMyKG5lc2Rldi0+cmVncytORVNfV1FFX0FMTE9DLCAweDAxODAwMDAwIHwgbmVzZGV2LT5jcXAucXBfaWQpOwotCQl9CisKKwkJLyogUmluZyBkb29yYmVsbCAoMSBXUUVzKSAqLworCQluZXNfd3JpdGUzMihuZXNkZXYtPnJlZ3MrTkVTX1dRRV9BTExPQywgMHgwMTgwMDAwMCB8IG5lc2Rldi0+Y3FwLnFwX2lkKTsKIAogCQliYXJyaWVyKCk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJicy5jCmluZGV4IDk5YjNjNGEuLmUzOTM5ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdmVyYnMuYwpAQCAtNTUsNyArNTUsNiBAQAogICogbmVzX2FsbG9jX213CiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaWJfbXcgKm5lc19hbGxvY19tdyhzdHJ1Y3QgaWJfcGQgKmlicGQpIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfcGQgKm5lc3BkID0gdG9fbmVzcGQoaWJwZCk7CiAJc3RydWN0IG5lc192bmljICpuZXN2bmljID0gdG9fbmVzdm5pYyhpYnBkLT5kZXZpY2UpOwogCXN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYgPSBuZXN2bmljLT5uZXNkZXY7CkBAIC0xMTksNyArMTE4LDcgQEAKIAlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9TVEFHX1dRRV9TVEFHX0lEWCwgc3RhZyk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsIChjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lICE9IDApLApAQCAtMTI4LDE1ICsxMjcsNyBAQAogCQkJIiBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYLlxuIiwKIAkJCXN0YWcsIHJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsIGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKIAlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQorCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQlrZnJlZShuZXNtcik7CiAJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9tcnMsIHN0YWdfaW5kZXgpOwogCQlpZiAoIXJldCkgewpAQCAtMTQ0LDE3ICsxMzUsOCBAQAogCQl9IGVsc2UgewogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJCX0KLQl9IGVsc2UgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CiAJfQorCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAluZXNtci0+aWJtdy5ya2V5ID0gc3RhZzsKIAluZXNtci0+bW9kZSA9IElXTkVTX01FTVJFR19UWVBFX01XOwpAQCAtMTc4LDcgKzE2MCw2IEBACiAJc3RydWN0IG5lc19od19jcXBfd3FlICpjcXBfd3FlOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCWludCBlcnIgPSAwOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldDsKIAogCS8qIERlYWxsb2NhdGUgdGhlIHdpbmRvdyB3aXRoIHRoZSBhZGFwdGVyICovCkBAIC0xOTQsNyArMTc1LDcgQEAKIAlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9TVEFHX1dRRV9TVEFHX0lEWCwgaWJtdy0+cmtleSk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiV2FpdGluZyBmb3IgZGVhbGxvY2F0ZSBTVGFnIDB4JTA4WCB0byBjb21wbGV0ZS5cbiIsCkBAIC0yMDQsMzIgKzE4NSwxMiBAQAogCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiRGVhbGxvY2F0ZSBTVGFnIGNvbXBsZXRlZCwgd2FpdF9ldmVudF90aW1lb3V0IHJldCA9ICV1LCIKIAkJCSIgQ1FQIE1ham9yOk1pbm9yIGNvZGVzID0gMHglMDRYOjB4JTA0WC5cbiIsCiAJCQlyZXQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7Ci0JaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KLQkJaWYgKCFyZXQpIHsKLQkJCWVyciA9IC1FVElNRTsKLQkJfSBlbHNlIHsKLQkJCWVyciA9IC1FSU87Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9Ci0JfQorCWlmICghcmV0KQorCQllcnIgPSAtRVRJTUU7CisJZWxzZSBpZiAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpCisJCWVyciA9IC1FSU87CisKKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX21ycywKIAkJCShpYm13LT5ya2V5ICYgMHgwZmZmZmYwMCkgPj4gOCk7CkBAIC01MTYsNyArNDc3LDcgQEAKIAkJCShuZXNmbXItPm5lc21yLnBibHNfdXNlZC0xKSA6IG5lc2Ztci0+bmVzbXIucGJsc191c2VkKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KGNxcF9yZXF1ZXN0LT53YWl0cSwgKGNxcF9yZXF1ZXN0LT5yZXF1ZXN0X2RvbmUgIT0gMCksCkBAIC01MjYsMjkgKzQ4NywxMSBAQAogCQkJc3RhZywgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCiAJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJcmV0ID0gKCFyZXQpID8gLUVUSU1FIDogLUVJTzsKIAkJZ290byBmYWlsZWRfbGVhZl92cGJsX3BhZ2VzX2FsbG9jOwotCX0gZWxzZSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KIAl9Ci0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCW5lc2Ztci0+bmVzbXIuaWJmbXIubGtleSA9IHN0YWc7CiAJbmVzZm1yLT5uZXNtci5pYmZtci5ya2V5ID0gc3RhZzsKIAluZXNmbXItPmF0dHIgPSAqaWJmbXJfYXR0cjsKQEAgLTE0NzQsNyArMTQxNyw3IEBACiAJCQlzZXRfd3FlXzY0Yml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9RUF9XUUVfQ09OVEVYVF9MT1dfSURYLCB1NjR0ZW1wKTsKIAogCQkJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQkJCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwkJCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJCQkvKiBXYWl0IGZvciBDUVAgKi8KIAkJCW5lc19kZWJ1ZyhORVNfREJHX1FQLCAiV2FpdGluZyBmb3IgY3JlYXRlIGlXQVJQIFFQJXUgdG8gY29tcGxldGUuXG4iLApAQCAtMTQ4NywxNSArMTQzMCw3IEBACiAJCQkJCW5lc3FwLT5od3FwLnFwX2lkLCByZXQsIG5lc2Rldi0+Y3FwLnNxX2hlYWQsIG5lc2Rldi0+Y3FwLnNxX3RhaWwsCiAJCQkJCWNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7CiAJCQlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQl9Ci0JCQkJfQorCQkJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCQkJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX3FwcywgcXBfbnVtKTsKIAkJCQluZXNfZnJlZV9xcF9tZW0obmVzZGV2LCBuZXNxcCx2aXJ0X3dxcyk7CiAJCQkJa2ZyZWUobmVzcXAtPmFsbG9jYXRlZF9idWZmZXIpOwpAQCAtMTUwNCwxOCArMTQzOSwxMCBAQAogCQkJCX0gZWxzZSB7CiAJCQkJCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQkJCX0gZWxzZSB7Ci0JCQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJfQotCQkJCX0KIAkJCX0KIAorCQkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKKwogCQkJaWYgKGlicGQtPnVvYmplY3QpIHsKIAkJCQl1cmVzcC5tbWFwX3NxX2RiX2luZGV4ID0gbmVzcXAtPm1tYXBfc3FfZGJfaW5kZXg7CiAJCQkJdXJlc3AuYWN0dWFsX3NxX3NpemUgPSBzcV9zaXplOwpAQCAtMTgxNyw3ICsxNzQ0LDcgQEAKIAkJCWNwdV90b19sZTMyKCgodTMyKSgodTY0dGVtcCkgPj4gMzMpKSAmIDB4N0ZGRkZGRkYpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIldhaXRpbmcgZm9yIGNyZWF0ZSBpV0FSUCBDUSV1IHRvIGNvbXBsZXRlLlxuIiwKQEAgLTE4MjcsMzIgKzE3NTQsMTUgQEAKIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIkNyZWF0ZSBpV0FSUCBDUSV1IGNvbXBsZXRlZCwgd2FpdF9ldmVudF90aW1lb3V0IHJldCA9ICVkLlxuIiwKIAkJCW5lc2NxLT5od19jcS5jcV9udW1iZXIsIHJldCk7CiAJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJaWYgKCFjb250ZXh0KQogCQkJcGNpX2ZyZWVfY29uc2lzdGVudChuZXNkZXYtPnBjaWRldiwgbmVzY3EtPmNxX21lbV9zaXplLCBtZW0sCiAJCQkJCW5lc2NxLT5od19jcS5jcV9wYmFzZSk7CiAJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9jcXMsIGNxX251bSk7CiAJCWtmcmVlKG5lc2NxKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7Ci0JfSBlbHNlIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQogCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJaWYgKGNvbnRleHQpIHsKIAkJLyogZnJlZSB0aGUgbmVzcGJsICovCkBAIC0xOTMxLDcgKzE4NDEsNyBAQAogCQkobmVzY3EtPmh3X2NxLmNxX251bWJlciB8ICgodTMyKVBDSV9GVU5DKG5lc2Rldi0+cGNpZGV2LT5kZXZmbikgPDwgMTYpKSk7CiAJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX2NxcywgbmVzY3EtPmh3X2NxLmNxX251bWJlcik7CiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIldhaXRpbmcgZm9yIGRlc3Ryb3kgaVdBUlAgQ1EldSB0byBjb21wbGV0ZS5cbiIsCkBAIC0xOTQyLDM3ICsxODUyLDE4IEBACiAJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFguXG4iLAogCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlciwgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwKIAkJCWNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKLQlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCQlpZiAoIXJldCkgewotCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJpV0FSUCBDUSV1IGRlc3Ryb3kgdGltZW91dCBleHBpcmVkXG4iLAorCWlmICghcmV0KSB7CisJCW5lc19kZWJ1ZyhORVNfREJHX0NRLCAiaVdBUlAgQ1EldSBkZXN0cm95IHRpbWVvdXQgZXhwaXJlZFxuIiwKIAkJCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlcik7Ci0JCQlyZXQgPSAtRVRJTUU7Ci0JCX0gZWxzZSB7Ci0JCQluZXNfZGVidWcoTkVTX0RCR19DUSwgImlXQVJQIENRJXUgZGVzdHJveSBmYWlsZWRcbiIsCisJCXJldCA9IC1FVElNRTsKKwl9IGVsc2UgaWYgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKSB7CisJCW5lc19kZWJ1ZyhORVNfREJHX0NRLCAiaVdBUlAgQ1EldSBkZXN0cm95IGZhaWxlZFxuIiwKIAkJCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlcik7Ci0JCQlyZXQgPSAtRUlPOwotCQl9CisJCXJldCA9IC1FSU87CiAJfSBlbHNlIHsKIAkJcmV0ID0gMDsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQogCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJaWYgKG5lc2NxLT5jcV9tZW1fc2l6ZSkKIAkJcGNpX2ZyZWVfY29uc2lzdGVudChuZXNkZXYtPnBjaWRldiwgbmVzY3EtPmNxX21lbV9zaXplLApAQCAtMjA5Niw3ICsxOTg3LDcgQEAKIAliYXJyaWVyKCk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsICgwICE9IGNxcF9yZXF1ZXN0LT5yZXF1ZXN0X2RvbmUpLApAQCAtMjEwNSwxNSArMTk5Niw4IEBACiAJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFguXG4iLAogCQkJc3RhZywgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCW1ham9yX2NvZGUgPSBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZTsKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJfSBlbHNlIHsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQl9Ci0JfQorCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisKIAlpZiAoIXJldCkKIAkJcmV0dXJuIC1FVElNRTsKIAllbHNlIGlmIChtYWpvcl9jb2RlKQpAQCAtMjQ1NiwxMCArMjM0MCw4IEBACiAJCQkJCQlpZiAoKHBhZ2VfY291bnQhPTApJiYocGFnZV9jb3VudDw8MTIpLShyZWdpb24tPm9mZnNldCYoNDA5Ni0xKSk+PXJlZ2lvbi0+bGVuZ3RoKQogCQkJCQkJCWdvdG8gZW5vdWdoX3BhZ2VzOwogCQkJCQkJaWYgKChwYWdlX2NvdW50JjB4MDFGRikgPT0gMCkgewotCQkJCQkJCWlmIChwYWdlX2NvdW50PigxMDI0KjUxMikpIHsKKwkJCQkJCQlpZiAocGFnZV9jb3VudCA+PSAxMDI0ICogNTEyKSB7CiAJCQkJCQkJCWliX3VtZW1fcmVsZWFzZShyZWdpb24pOwotCQkJCQkJCQlwY2lfZnJlZV9jb25zaXN0ZW50KG5lc2Rldi0+cGNpZGV2LCA0MDk2LCB2cGJsLnBibF92YmFzZSwKLQkJCQkJCQkJCQl2cGJsLnBibF9wYmFzZSk7CiAJCQkJCQkJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsCiAJCQkJCQkJCQkJbmVzYWRhcHRlci0+YWxsb2NhdGVkX21ycywgc3RhZ19pbmRleCk7CiAJCQkJCQkJCWtmcmVlKG5lc21yKTsKQEAgLTI3NTYsNyArMjYzOCw3IEBACiAJc2V0X3dxZV8zMmJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfU1RBR19XUUVfU1RBR19JRFgsIGliX21yLT5ya2V5KTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJbmVzX2RlYnVnKE5FU19EQkdfTVIsICJXYWl0aW5nIGZvciBkZWFsbG9jYXRlIFNUYWcgMHglMDhYIGNvbXBsZXRlZFxuIiwgaWJfbXItPnJrZXkpOwpAQCAtMjc3MywxNSArMjY1NSw5IEBACiAKIAltYWpvcl9jb2RlID0gY3FwX3JlcXVlc3QtPm1ham9yX2NvZGU7CiAJbWlub3JfY29kZSA9IGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlOwotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQl9IGVsc2UgewotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCX0KLQl9CisKKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworCiAJaWYgKCFyZXQpIHsKIAkJbmVzX2RlYnVnKE5FU19EQkdfTVIsICJUaW1lb3V0IHdhaXRpbmcgdG8gZGVzdHJveSBTVGFnLCIKIAkJCQkiIGliX21yPSVwLCBya2V5ID0gMHglMDhYXG4iLApAQCAtMjkwNiw3ICsyNzgyLDYgQEAKIAkvKiBzdHJ1Y3QgaXdfY21faWQgKmNtX2lkID0gbmVzcXAtPmNtX2lkOyAqLwogCS8qIHN0cnVjdCBpd19jbV9ldmVudCBjbV9ldmVudDsgKi8KIAlzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CiAJdTE2IG1ham9yX2NvZGU7CiAKQEAgLTI5MzQsNyArMjgwOSw3IEBACiAJc2V0X3dxZV82NGJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfUVBfV1FFX0NPTlRFWFRfTE9XX0lEWCwgKHU2NCluZXNxcC0+bmVzcXBfY29udGV4dF9wYmFzZSk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCWlmICh3YWl0X2NvbXBsZXRpb24pIHsKQEAgLTI5NTIsMTUgKzI4MjcsOSBAQAogCQkJCQluZXNxcC0+aHdxcC5xcF9pZCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsCiAJCQkJCWNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlLCBuZXh0X2l3YXJwX3N0YXRlKTsKIAkJfQotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CisKKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKKwogCQlpZiAoIXJldCkKIAkJCXJldHVybiAtRVRJTUU7CiAJCWVsc2UgaWYgKG1ham9yX2NvZGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL0tjb25maWcgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL0tjb25maWcKaW5kZXggMWY3NmJhZC4uNjkxNTI1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvS2NvbmZpZwpAQCAtMSw2ICsxLDcgQEAKIGNvbmZpZyBJTkZJTklCQU5EX0lQT0lCCiAJdHJpc3RhdGUgIklQLW92ZXItSW5maW5pQmFuZCIKIAlkZXBlbmRzIG9uIE5FVERFVklDRVMgJiYgSU5FVCAmJiAoSVBWNiB8fCBJUFY2PW4pCisJc2VsZWN0IElORVRfTFJPCiAJLS0taGVscC0tLQogCSAgU3VwcG9ydCBmb3IgdGhlIElQLW92ZXItSW5maW5pQmFuZCBwcm90b2NvbCAoSVBvSUIpLiBUaGlzCiAJICB0cmFuc3BvcnRzIElQIHBhY2tldHMgb3ZlciBJbmZpbmlCYW5kIHNvIHlvdSBjYW4gdXNlIHlvdXIgSUIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWIuaAppbmRleCBjYTEyNmZjLi5iMGZmYzlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYi5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYi5oIDEzNTggMjAwNC0xMi0xNyAyMjowMDoxMVogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIF9JUE9JQl9ICkBAIC01Miw5ICs1MCwxNiBAQAogI2luY2x1ZGUgPHJkbWEvaWJfdmVyYnMuaD4KICNpbmNsdWRlIDxyZG1hL2liX3BhY2suaD4KICNpbmNsdWRlIDxyZG1hL2liX3NhLmg+CisjaW5jbHVkZSA8bGludXgvaW5ldF9scm8uaD4KIAogLyogY29uc3RhbnRzICovCiAKK2VudW0gaXBvaWJfZmx1c2hfbGV2ZWwgeworCUlQT0lCX0ZMVVNIX0xJR0hULAorCUlQT0lCX0ZMVVNIX05PUk1BTCwKKwlJUE9JQl9GTFVTSF9IRUFWWQorfTsKKwogZW51bSB7CiAJSVBPSUJfRU5DQVBfTEVOCQkgID0gNCwKIApAQCAtNjUsOCArNzAsOCBAQAogCUlQT0lCX0NNX0JVRl9TSVpFCSAgPSBJUE9JQl9DTV9NVFUgICsgSVBPSUJfRU5DQVBfTEVOLAogCUlQT0lCX0NNX0hFQURfU0laRQkgID0gSVBPSUJfQ01fQlVGX1NJWkUgJSBQQUdFX1NJWkUsCiAJSVBPSUJfQ01fUlhfU0cJCSAgPSBBTElHTihJUE9JQl9DTV9CVUZfU0laRSwgUEFHRV9TSVpFKSAvIFBBR0VfU0laRSwKLQlJUE9JQl9SWF9SSU5HX1NJWkUJICA9IDEyOCwKLQlJUE9JQl9UWF9SSU5HX1NJWkUJICA9IDY0LAorCUlQT0lCX1JYX1JJTkdfU0laRQkgID0gMjU2LAorCUlQT0lCX1RYX1JJTkdfU0laRQkgID0gMTI4LAogCUlQT0lCX01BWF9RVUVVRV9TSVpFCSAgPSA4MTkyLAogCUlQT0lCX01JTl9RVUVVRV9TSVpFCSAgPSAyLAogCUlQT0lCX0NNX01BWF9DT05OX1FQCSAgPSA0MDk2LApAQCAtODQsNyArODksNiBAQAogCUlQT0lCX0ZMQUdfU1VCSU5URVJGQUNFCSAgPSA1LAogCUlQT0lCX01DQVNUX1JVTgkJICA9IDYsCiAJSVBPSUJfU1RPUF9SRUFQRVIJICA9IDcsCi0JSVBPSUJfTUNBU1RfU1RBUlRFRAkgID0gOCwKIAlJUE9JQl9GTEFHX0FETUlOX0NNCSAgPSA5LAogCUlQT0lCX0ZMQUdfVU1DQVNUCSAgPSAxMCwKIAlJUE9JQl9GTEFHX0NTVU0JCSAgPSAxMSwKQEAgLTk2LDcgKzEwMCwxMSBAQAogCUlQT0lCX01DQVNUX0ZMQUdfQlVTWQkgID0gMiwJLyogam9pbmluZyBvciBhbHJlYWR5IGpvaW5lZCAqLwogCUlQT0lCX01DQVNUX0ZMQUdfQVRUQUNIRUQgPSAzLAogCisJSVBPSUJfTUFYX0xST19ERVNDUklQVE9SUyA9IDgsCisJSVBPSUJfTFJPX01BWF9BR0dSIAkgID0gNjQsCisKIAlNQVhfU0VORF9DUUUJCSAgPSAxNiwKKwlJUE9JQl9DTV9DT1BZQlJFQUsJICA9IDI1NiwKIH07CiAKICNkZWZpbmUJSVBPSUJfT1BfUkVDViAgICgxdWwgPDwgMzEpCkBAIC0xNDksNiArMTU3LDExIEBACiAJdTY0CQltYXBwaW5nW01BWF9TS0JfRlJBR1MgKyAxXTsKIH07CiAKK3N0cnVjdCBpcG9pYl9jbV90eF9idWYgeworCXN0cnVjdCBza19idWZmICpza2I7CisJdTY0CQltYXBwaW5nOworfTsKKwogc3RydWN0IGliX2NtX2lkOwogCiBzdHJ1Y3QgaXBvaWJfY21fZGF0YSB7CkBAIC0yMDcsNyArMjIwLDcgQEAKIAlzdHJ1Y3QgbmV0X2RldmljZSAgICpkZXY7CiAJc3RydWN0IGlwb2liX25laWdoICAqbmVpZ2g7CiAJc3RydWN0IGlwb2liX3BhdGggICAqcGF0aDsKLQlzdHJ1Y3QgaXBvaWJfdHhfYnVmICp0eF9yaW5nOworCXN0cnVjdCBpcG9pYl9jbV90eF9idWYgKnR4X3Jpbmc7CiAJdW5zaWduZWQJICAgICB0eF9oZWFkOwogCXVuc2lnbmVkCSAgICAgdHhfdGFpbDsKIAl1bnNpZ25lZCBsb25nCSAgICAgZmxhZ3M7CkBAIC0yNDksNiArMjYyLDExIEBACiAJdTE2ICAgICBtYXhfY29hbGVzY2VkX2ZyYW1lczsKIH07CiAKK3N0cnVjdCBpcG9pYl9scm8geworCXN0cnVjdCBuZXRfbHJvX21nciBscm9fbWdyOworCXN0cnVjdCBuZXRfbHJvX2Rlc2MgbHJvX2Rlc2NbSVBPSUJfTUFYX0xST19ERVNDUklQVE9SU107Cit9OworCiAvKgogICogRGV2aWNlIHByaXZhdGUgbG9ja2luZzogdHhfbG9jayBwcm90ZWN0cyBtZW1iZXJzIHVzZWQgaW4gVFggZmFzdAogICogcGF0aCAoYW5kIHdlIHVzZSBMTFRYIHNvIHVwcGVyIGxheWVycyBkb24ndCBkbyBleHRyYSBsb2NraW5nKS4KQEAgLTI2NCw3ICsyODIsNiBAQAogCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXN0cnVjdCBtdXRleCBtY2FzdF9tdXRleDsKIAlzdHJ1Y3QgbXV0ZXggdmxhbl9tdXRleDsKIAogCXN0cnVjdCByYl9yb290ICBwYXRoX3RyZWU7CkBAIC0yNzYsMTAgKzI5MywxMSBAQAogCiAJc3RydWN0IGRlbGF5ZWRfd29yayBwa2V5X3BvbGxfdGFzazsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIG1jYXN0X3Rhc2s7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX3Rhc2s7CisJc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX2xpZ2h0OworCXN0cnVjdCB3b3JrX3N0cnVjdCBmbHVzaF9ub3JtYWw7CisJc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX2hlYXZ5OwogCXN0cnVjdCB3b3JrX3N0cnVjdCByZXN0YXJ0X3Rhc2s7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBhaF9yZWFwX3Rhc2s7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IHBrZXlfZXZlbnRfdGFzazsKIAogCXN0cnVjdCBpYl9kZXZpY2UgKmNhOwogCXU4CQkgIHBvcnQ7CkBAIC0zMzUsNiArMzUzLDggQEAKIAlpbnQJaGNhX2NhcHM7CiAJc3RydWN0IGlwb2liX2V0aHRvb2xfc3QgZXRodG9vbDsKIAlzdHJ1Y3QgdGltZXJfbGlzdCBwb2xsX3RpbWVyOworCisJc3RydWN0IGlwb2liX2xybyBscm87CiB9OwogCiBzdHJ1Y3QgaXBvaWJfYWggewpAQCAtMzU5LDYgKzM3OSw3IEBACiAKIAlzdHJ1Y3QgcmJfbm9kZQkgICAgICByYl9ub2RlOwogCXN0cnVjdCBsaXN0X2hlYWQgICAgICBsaXN0OworCWludCAgCQkgICAgICB2YWxpZDsKIH07CiAKIHN0cnVjdCBpcG9pYl9uZWlnaCB7CkBAIC00MjMsMTEgKzQ0NCwxNCBAQAogCQlzdHJ1Y3QgaXBvaWJfYWggKmFkZHJlc3MsIHUzMiBxcG4pOwogdm9pZCBpcG9pYl9yZWFwX2FoKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiAKK3ZvaWQgaXBvaWJfbWFya19wYXRoc19pbnZhbGlkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogdm9pZCBpcG9pYl9mbHVzaF9wYXRocyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqaXBvaWJfaW50Zl9hbGxvYyhjb25zdCBjaGFyICpmb3JtYXQpOwogCiBpbnQgaXBvaWJfaWJfZGV2X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGliX2RldmljZSAqY2EsIGludCBwb3J0KTsKLXZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9saWdodChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwordm9pZCBpcG9pYl9pYl9kZXZfZmx1c2hfbm9ybWFsKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9oZWF2eShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogdm9pZCBpcG9pYl9wa2V5X2V2ZW50KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiB2b2lkIGlwb2liX2liX2Rldl9jbGVhbnVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogCkBAIC00NjYsOSArNDkwLDcgQEAKICNlbmRpZgogCiBpbnQgaXBvaWJfbWNhc3RfYXR0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBtbGlkLAotCQkgICAgICAgdW5pb24gaWJfZ2lkICptZ2lkKTsKLWludCBpcG9pYl9tY2FzdF9kZXRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsCi0JCSAgICAgICB1bmlvbiBpYl9naWQgKm1naWQpOworCQkgICAgICAgdW5pb24gaWJfZ2lkICptZ2lkLCBpbnQgc2V0X3FrZXkpOwogCiBpbnQgaXBvaWJfaW5pdF9xcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIGludCBpcG9pYl90cmFuc3BvcnRfZGV2X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGliX2RldmljZSAqY2EpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9jbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9jbS5jCmluZGV4IDk3ZTY3ZDMuLjBmMmQzMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfY20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQkCiAgKi8KIAogI2luY2x1ZGUgPHJkbWEvaWJfY20uaD4KQEAgLTExMywxOCArMTExLDIwIEBACiB9CiAKIHN0YXRpYyBpbnQgaXBvaWJfY21fcG9zdF9yZWNlaXZlX25vbnNycShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgaXBvaWJfY21fcnggKnJ4LCBpbnQgaWQpCisJCQkJCXN0cnVjdCBpcG9pYl9jbV9yeCAqcngsCisJCQkJCXN0cnVjdCBpYl9yZWN2X3dyICp3ciwKKwkJCQkJc3RydWN0IGliX3NnZSAqc2dlLCBpbnQgaWQpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaWJfcmVjdl93ciAqYmFkX3dyOwogCWludCBpLCByZXQ7CiAKLQlwcml2LT5jbS5yeF93ci53cl9pZCA9IGlkIHwgSVBPSUJfT1BfQ00gfCBJUE9JQl9PUF9SRUNWOworCXdyLT53cl9pZCA9IGlkIHwgSVBPSUJfT1BfQ00gfCBJUE9JQl9PUF9SRUNWOwogCiAJZm9yIChpID0gMDsgaSA8IElQT0lCX0NNX1JYX1NHOyArK2kpCi0JCXByaXYtPmNtLnJ4X3NnZVtpXS5hZGRyID0gcngtPnJ4X3JpbmdbaWRdLm1hcHBpbmdbaV07CisJCXNnZVtpXS5hZGRyID0gcngtPnJ4X3JpbmdbaWRdLm1hcHBpbmdbaV07CiAKLQlyZXQgPSBpYl9wb3N0X3JlY3YocngtPnFwLCAmcHJpdi0+Y20ucnhfd3IsICZiYWRfd3IpOworCXJldCA9IGliX3Bvc3RfcmVjdihyeC0+cXAsIHdyLCAmYmFkX3dyKTsKIAlpZiAodW5saWtlbHkocmV0KSkgewogCQlpcG9pYl93YXJuKHByaXYsICJwb3N0IHJlY3YgZmFpbGVkIGZvciBidWYgJWQgKCVkKVxuIiwgaWQsIHJldCk7CiAJCWlwb2liX2NtX2RtYV91bm1hcF9yeChwcml2LCBJUE9JQl9DTV9SWF9TRyAtIDEsCkBAIC0zMjIsMTAgKzMyMiwzMyBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBpcG9pYl9jbV9pbml0X3J4X3dyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IGliX3JlY3Zfd3IgKndyLAorCQkJCXN0cnVjdCBpYl9zZ2UgKnNnZSkKK3sKKwlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHByaXYtPmNtLm51bV9mcmFnczsgKytpKQorCQlzZ2VbaV0ubGtleSA9IHByaXYtPm1yLT5sa2V5OworCisJc2dlWzBdLmxlbmd0aCA9IElQT0lCX0NNX0hFQURfU0laRTsKKwlmb3IgKGkgPSAxOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCisJCXNnZVtpXS5sZW5ndGggPSBQQUdFX1NJWkU7CisKKwl3ci0+bmV4dCAgICA9IE5VTEw7CisJd3ItPnNnX2xpc3QgPSBwcml2LT5jbS5yeF9zZ2U7CisJd3ItPm51bV9zZ2UgPSBwcml2LT5jbS5udW1fZnJhZ3M7Cit9CisKIHN0YXRpYyBpbnQgaXBvaWJfY21fbm9uc3JxX2luaXRfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGliX2NtX2lkICpjbV9pZCwKIAkJCQkgICBzdHJ1Y3QgaXBvaWJfY21fcnggKnJ4KQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IHsKKwkJc3RydWN0IGliX3JlY3Zfd3Igd3I7CisJCXN0cnVjdCBpYl9zZ2Ugc2dlW0lQT0lCX0NNX1JYX1NHXTsKKwl9ICp0OwogCWludCByZXQ7CiAJaW50IGk7CiAKQEAgLTMzMyw2ICszNTYsMTQgQEAKIAlpZiAoIXJ4LT5yeF9yaW5nKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCXQgPSBrbWFsbG9jKHNpemVvZiAqdCwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCisJaXBvaWJfY21faW5pdF9yeF93cihkZXYsICZ0LT53ciwgdC0+c2dlKTsKKwogCXNwaW5fbG9ja19pcnEoJnByaXYtPmxvY2spOwogCiAJaWYgKHByaXYtPmNtLm5vbnNycV9jb25uX3FwID49IGlwb2liX21heF9jb25uX3FwKSB7CkBAIC0zNTEsOCArMzgyLDggQEAKIAkJCWlwb2liX3dhcm4ocHJpdiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZWNlaXZlIGJ1ZmZlciAlZFxuIiwgaSk7CiAJCQkJcmV0ID0gLUVOT01FTTsKIAkJCQlnb3RvIGVycl9jb3VudDsKLQkJCX0KLQkJcmV0ID0gaXBvaWJfY21fcG9zdF9yZWNlaXZlX25vbnNycShkZXYsIHJ4LCBpKTsKKwkJfQorCQlyZXQgPSBpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcngsICZ0LT53ciwgdC0+c2dlLCBpKTsKIAkJaWYgKHJldCkgewogCQkJaXBvaWJfd2Fybihwcml2LCAiaXBvaWJfY21fcG9zdF9yZWNlaXZlX25vbnNycSAiCiAJCQkJICAgImZhaWxlZCBmb3IgYnVmICVkXG4iLCBpKTsKQEAgLTM2Myw2ICszOTQsOCBAQAogCiAJcngtPnJlY3ZfY291bnQgPSBpcG9pYl9yZWN2cV9zaXplOwogCisJa2ZyZWUodCk7CisKIAlyZXR1cm4gMDsKIAogZXJyX2NvdW50OgpAQCAtMzcxLDYgKzQwNCw3IEBACiAJc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKIAogZXJyX2ZyZWU6CisJa2ZyZWUodCk7CiAJaXBvaWJfY21fZnJlZV9yeF9yaW5nKGRldiwgcngtPnJ4X3JpbmcpOwogCiAJcmV0dXJuIHJldDsKQEAgLTUyNSw2ICs1NTksNyBAQAogCXU2NCBtYXBwaW5nW0lQT0lCX0NNX1JYX1NHXTsKIAlpbnQgZnJhZ3M7CiAJaW50IGhhc19zcnE7CisJc3RydWN0IHNrX2J1ZmYgKnNtYWxsX3NrYjsKIAogCWlwb2liX2RiZ19kYXRhKHByaXYsICJjbSByZWN2IGNvbXBsZXRpb246IGlkICVkLCBzdGF0dXM6ICVkXG4iLAogCQkgICAgICAgd3JfaWQsIHdjLT5zdGF0dXMpOwpAQCAtNTc5LDYgKzYxNCwyMyBAQAogCQl9CiAJfQogCisJaWYgKHdjLT5ieXRlX2xlbiA8IElQT0lCX0NNX0NPUFlCUkVBSykgeworCQlpbnQgZGxlbiA9IHdjLT5ieXRlX2xlbjsKKworCQlzbWFsbF9za2IgPSBkZXZfYWxsb2Nfc2tiKGRsZW4gKyAxMik7CisJCWlmIChzbWFsbF9za2IpIHsKKwkJCXNrYl9yZXNlcnZlKHNtYWxsX3NrYiwgMTIpOworCQkJaWJfZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi0+Y2EsIHJ4X3Jpbmdbd3JfaWRdLm1hcHBpbmdbMF0sCisJCQkJCQkgICBkbGVuLCBETUFfRlJPTV9ERVZJQ0UpOworCQkJc2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YShza2IsIHNtYWxsX3NrYi0+ZGF0YSwgZGxlbik7CisJCQlpYl9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShwcml2LT5jYSwgcnhfcmluZ1t3cl9pZF0ubWFwcGluZ1swXSwKKwkJCQkJCSAgICAgIGRsZW4sIERNQV9GUk9NX0RFVklDRSk7CisJCQlza2JfcHV0KHNtYWxsX3NrYiwgZGxlbik7CisJCQlza2IgPSBzbWFsbF9za2I7CisJCQlnb3RvIGNvcGllZDsKKwkJfQorCX0KKwogCWZyYWdzID0gUEFHRV9BTElHTih3Yy0+Ynl0ZV9sZW4gLSBtaW4od2MtPmJ5dGVfbGVuLAogCQkJCQkgICAgICAodW5zaWduZWQpSVBPSUJfQ01fSEVBRF9TSVpFKSkgLyBQQUdFX1NJWkU7CiAKQEAgLTYwMSw2ICs2NTMsNyBAQAogCiAJc2tiX3B1dF9mcmFncyhza2IsIElQT0lCX0NNX0hFQURfU0laRSwgd2MtPmJ5dGVfbGVuLCBuZXdza2IpOwogCitjb3BpZWQ6CiAJc2tiLT5wcm90b2NvbCA9ICgoc3RydWN0IGlwb2liX2hlYWRlciAqKSBza2ItPmRhdGEpLT5wcm90bzsKIAlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwogCXNrYl9wdWxsKHNrYiwgSVBPSUJfRU5DQVBfTEVOKTsKQEAgLTYyMCw3ICs2NzMsMTAgQEAKIAkJCWlwb2liX3dhcm4ocHJpdiwgImlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9zcnEgZmFpbGVkICIKIAkJCQkgICAiZm9yIGJ1ZiAlZFxuIiwgd3JfaWQpOwogCX0gZWxzZSB7Ci0JCWlmICh1bmxpa2VseShpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcCwgd3JfaWQpKSkgeworCQlpZiAodW5saWtlbHkoaXBvaWJfY21fcG9zdF9yZWNlaXZlX25vbnNycShkZXYsIHAsCisJCQkJCQkJICAmcHJpdi0+Y20ucnhfd3IsCisJCQkJCQkJICBwcml2LT5jbS5yeF9zZ2UsCisJCQkJCQkJICB3cl9pZCkpKSB7CiAJCQktLXAtPnJlY3ZfY291bnQ7CiAJCQlpcG9pYl93YXJuKHByaXYsICJpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxIGZhaWxlZCAiCiAJCQkJICAgImZvciBidWYgJWRcbiIsIHdyX2lkKTsKQEAgLTY0Nyw3ICs3MDMsNyBAQAogdm9pZCBpcG9pYl9jbV9zZW5kKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcG9pYl9jbV90eCAqdHgpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3QgaXBvaWJfdHhfYnVmICp0eF9yZXE7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmVxOwogCXU2NCBhZGRyOwogCiAJaWYgKHVubGlrZWx5KHNrYi0+bGVuID4gdHgtPm10dSkpIHsKQEAgLTY3OCw3ICs3MzQsNyBAQAogCQlyZXR1cm47CiAJfQogCi0JdHhfcmVxLT5tYXBwaW5nWzBdID0gYWRkcjsKKwl0eF9yZXEtPm1hcHBpbmcgPSBhZGRyOwogCiAJaWYgKHVubGlrZWx5KHBvc3Rfc2VuZChwcml2LCB0eCwgdHgtPnR4X2hlYWQgJiAoaXBvaWJfc2VuZHFfc2l6ZSAtIDEpLAogCQkJICAgICAgIGFkZHIsIHNrYi0+bGVuKSkpIHsKQEAgLTcwMyw3ICs3NTksNyBAQAogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IGlwb2liX2NtX3R4ICp0eCA9IHdjLT5xcC0+cXBfY29udGV4dDsKIAl1bnNpZ25lZCBpbnQgd3JfaWQgPSB3Yy0+d3JfaWQgJiB+SVBPSUJfT1BfQ007Ci0Jc3RydWN0IGlwb2liX3R4X2J1ZiAqdHhfcmVxOworCXN0cnVjdCBpcG9pYl9jbV90eF9idWYgKnR4X3JlcTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaXBvaWJfZGJnX2RhdGEocHJpdiwgImNtIHNlbmQgY29tcGxldGlvbjogaWQgJWQsIHN0YXR1czogJWRcbiIsCkBAIC03MTcsNyArNzczLDcgQEAKIAogCXR4X3JlcSA9ICZ0eC0+dHhfcmluZ1t3cl9pZF07CiAKLQlpYl9kbWFfdW5tYXBfc2luZ2xlKHByaXYtPmNhLCB0eF9yZXEtPm1hcHBpbmdbMF0sIHR4X3JlcS0+c2tiLT5sZW4sIERNQV9UT19ERVZJQ0UpOworCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZywgdHhfcmVxLT5za2ItPmxlbiwgRE1BX1RPX0RFVklDRSk7CiAKIAkvKiBGSVhNRTogaXMgdGhpcyByaWdodD8gU2hvdWxkbid0IHdlIG9ubHkgaW5jcmVtZW50IG9uIHN1Y2Nlc3M/ICovCiAJKytkZXYtPnN0YXRzLnR4X3BhY2tldHM7CkBAIC0xMDg3LDcgKzExNDMsNyBAQAogc3RhdGljIHZvaWQgaXBvaWJfY21fdHhfZGVzdHJveShzdHJ1Y3QgaXBvaWJfY21fdHggKnApCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYocC0+ZGV2KTsKLQlzdHJ1Y3QgaXBvaWJfdHhfYnVmICp0eF9yZXE7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmVxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgbG9uZyBiZWdpbjsKIApAQCAtMTExNSw3ICsxMTcxLDcgQEAKIAogCXdoaWxlICgoaW50KSBwLT50eF90YWlsIC0gKGludCkgcC0+dHhfaGVhZCA8IDApIHsKIAkJdHhfcmVxID0gJnAtPnR4X3JpbmdbcC0+dHhfdGFpbCAmIChpcG9pYl9zZW5kcV9zaXplIC0gMSldOwotCQlpYl9kbWFfdW5tYXBfc2luZ2xlKHByaXYtPmNhLCB0eF9yZXEtPm1hcHBpbmdbMF0sIHR4X3JlcS0+c2tiLT5sZW4sCisJCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZywgdHhfcmVxLT5za2ItPmxlbiwKIAkJCQkgICAgRE1BX1RPX0RFVklDRSk7CiAJCWRldl9rZnJlZV9za2JfYW55KHR4X3JlcS0+c2tiKTsKIAkJKytwLT50eF90YWlsOwpAQCAtMTM4NCw3ICsxNDQwLDkgQEAKIAkJaXBvaWJfd2Fybihwcml2LCAiZW5hYmxpbmcgY29ubmVjdGVkIG1vZGUgIgogCQkJICAgIndpbGwgY2F1c2UgbXVsdGljYXN0IHBhY2tldCBkcm9wc1xuIik7CiAKKwkJcnRubF9sb2NrKCk7CiAJCWRldi0+ZmVhdHVyZXMgJj0gfihORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX1NHIHwgTkVUSUZfRl9UU08pOworCQlydG5sX3VubG9jaygpOwogCQlwcml2LT50eF93ci5zZW5kX2ZsYWdzICY9IH5JQl9TRU5EX0lQX0NTVU07CiAKIAkJaXBvaWJfZmx1c2hfcGF0aHMoZGV2KTsKQEAgLTEzOTMsMTQgKzE0NTEsMTYgQEAKIAogCWlmICghc3RyY21wKGJ1ZiwgImRhdGFncmFtXG4iKSkgewogCQljbGVhcl9iaXQoSVBPSUJfRkxBR19BRE1JTl9DTSwgJnByaXYtPmZsYWdzKTsKLQkJZGV2LT5tdHUgPSBtaW4ocHJpdi0+bWNhc3RfbXR1LCBkZXYtPm10dSk7Ci0JCWlwb2liX2ZsdXNoX3BhdGhzKGRldik7CiAKKwkJcnRubF9sb2NrKCk7CiAJCWlmICh0ZXN0X2JpdChJUE9JQl9GTEFHX0NTVU0sICZwcml2LT5mbGFncykpIHsKIAkJCWRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9TRzsKIAkJCWlmIChwcml2LT5oY2FfY2FwcyAmIElCX0RFVklDRV9VRF9UU08pCiAJCQkJZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX1RTTzsKIAkJfQorCQlkZXZfc2V0X210dShkZXYsIG1pbihwcml2LT5tY2FzdF9tdHUsIGRldi0+bXR1KSk7CisJCXJ0bmxfdW5sb2NrKCk7CisJCWlwb2liX2ZsdXNoX3BhdGhzKGRldik7CiAKIAkJcmV0dXJuIGNvdW50OwogCX0KQEAgLTE0ODUsMTUgKzE1NDUsNyBAQAogCQlwcml2LT5jbS5udW1fZnJhZ3MgID0gSVBPSUJfQ01fUlhfU0c7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IHByaXYtPmNtLm51bV9mcmFnczsgKytpKQotCQlwcml2LT5jbS5yeF9zZ2VbaV0ubGtleQk9IHByaXYtPm1yLT5sa2V5OwotCi0JcHJpdi0+Y20ucnhfc2dlWzBdLmxlbmd0aCA9IElQT0lCX0NNX0hFQURfU0laRTsKLQlmb3IgKGkgPSAxOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCi0JCXByaXYtPmNtLnJ4X3NnZVtpXS5sZW5ndGggPSBQQUdFX1NJWkU7Ci0JcHJpdi0+Y20ucnhfd3IubmV4dCA9IE5VTEw7Ci0JcHJpdi0+Y20ucnhfd3Iuc2dfbGlzdCA9IHByaXYtPmNtLnJ4X3NnZTsKLQlwcml2LT5jbS5yeF93ci5udW1fc2dlID0gcHJpdi0+Y20ubnVtX2ZyYWdzOworCWlwb2liX2NtX2luaXRfcnhfd3IoZGV2LCAmcHJpdi0+Y20ucnhfd3IsIHByaXYtPmNtLnJ4X3NnZSk7CiAKIAlpZiAoaXBvaWJfY21faGFzX3NycShkZXYpKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBpcG9pYl9yZWN2cV9zaXplOyArK2kpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfZXRodG9vbC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9ldGh0b29sLmMKaW5kZXggMTAyNzliNy4uNjZhZjVjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9ldGh0b29sLmMKQEAgLTg2LDExICs4Niw1NyBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3QgY2hhciBpcG9pYl9zdGF0c19rZXlzW11bRVRIX0dTVFJJTkdfTEVOXSA9IHsKKwkiTFJPIGFnZ3JlZ2F0ZWQiLCAiTFJPIGZsdXNoZWQiLAorCSJMUk8gYXZnIGFnZ3IiLCAiTFJPIG5vIGRlc2MiCit9OworCitzdGF0aWMgdm9pZCBpcG9pYl9nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSkKK3sKKwlzd2l0Y2ggKHN0cmluZ3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQltZW1jcHkoZGF0YSwgKmlwb2liX3N0YXRzX2tleXMsCXNpemVvZihpcG9pYl9zdGF0c19rZXlzKSk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIGludCBpcG9pYl9nZXRfc3NldF9jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgc3NldCkKK3sKKwlzd2l0Y2ggKHNzZXQpIHsKKwljYXNlIEVUSF9TU19TVEFUUzoKKwkJcmV0dXJuIEFSUkFZX1NJWkUoaXBvaWJfc3RhdHNfa2V5cyk7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCX0KK30KKworc3RhdGljIHZvaWQgaXBvaWJfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsIHVpbnQ2NF90ICpkYXRhKQoreworCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisJaW50IGluZGV4ID0gMDsKKworCS8qIEdldCBMUk8gc3RhdGlzdGljcyAqLworCWRhdGFbaW5kZXgrK10gPSBwcml2LT5scm8ubHJvX21nci5zdGF0cy5hZ2dyZWdhdGVkOworCWRhdGFbaW5kZXgrK10gPSBwcml2LT5scm8ubHJvX21nci5zdGF0cy5mbHVzaGVkOworCWlmIChwcml2LT5scm8ubHJvX21nci5zdGF0cy5mbHVzaGVkKQorCQlkYXRhW2luZGV4KytdID0gcHJpdi0+bHJvLmxyb19tZ3Iuc3RhdHMuYWdncmVnYXRlZCAvCisJCQkJcHJpdi0+bHJvLmxyb19tZ3Iuc3RhdHMuZmx1c2hlZDsKKwllbHNlCisJCWRhdGFbaW5kZXgrK10gPSAwOworCWRhdGFbaW5kZXgrK10gPSBwcml2LT5scm8ubHJvX21nci5zdGF0cy5ub19kZXNjOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGlwb2liX2V0aHRvb2xfb3BzID0gewogCS5nZXRfZHJ2aW5mbwkJPSBpcG9pYl9nZXRfZHJ2aW5mbywKIAkuZ2V0X3RzbwkJPSBldGh0b29sX29wX2dldF90c28sCiAJLmdldF9jb2FsZXNjZQkJPSBpcG9pYl9nZXRfY29hbGVzY2UsCiAJLnNldF9jb2FsZXNjZQkJPSBpcG9pYl9zZXRfY29hbGVzY2UsCisJLmdldF9mbGFncwkJPSBldGh0b29sX29wX2dldF9mbGFncywKKwkuc2V0X2ZsYWdzCQk9IGV0aHRvb2xfb3Bfc2V0X2ZsYWdzLAorCS5nZXRfc3RyaW5ncwkJPSBpcG9pYl9nZXRfc3RyaW5ncywKKwkuZ2V0X3NzZXRfY291bnQJCT0gaXBvaWJfZ2V0X3NzZXRfY291bnQsCisJLmdldF9ldGh0b29sX3N0YXRzCT0gaXBvaWJfZ2V0X2V0aHRvb2xfc3RhdHMsCiB9OwogCiB2b2lkIGlwb2liX3NldF9ldGh0b29sX29wcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9mcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9mcy5jCmluZGV4IDhiODgyYmIuLjk2MWM1ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfZnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2ZzLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX2ZzLmMgMTM4OSAyMDA0LTEyLTI3IDIyOjU2OjQ3WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfaWIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfaWIuYwppbmRleCBmNDI5YmNlLi42NmNhZmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2liLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9pYi5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl9pYi5jIDEzODYgMjAwNC0xMi0yNyAxNjoyMzoxN1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTI5MCw3ICsyODgsMTAgQEAKIAlpZiAodGVzdF9iaXQoSVBPSUJfRkxBR19DU1VNLCAmcHJpdi0+ZmxhZ3MpICYmIGxpa2VseSh3Yy0+Y3N1bV9vaykpCiAJCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlk7CiAKLQluZXRpZl9yZWNlaXZlX3NrYihza2IpOworCWlmIChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9MUk8pCisJCWxyb19yZWNlaXZlX3NrYigmcHJpdi0+bHJvLmxyb19tZ3IsIHNrYiwgTlVMTCk7CisJZWxzZQorCQluZXRpZl9yZWNlaXZlX3NrYihza2IpOwogCiByZXBvc3Q6CiAJaWYgKHVubGlrZWx5KGlwb2liX2liX3Bvc3RfcmVjZWl2ZShkZXYsIHdyX2lkKSkpCkBAIC00NDIsNiArNDQzLDkgQEAKIAl9CiAKIAlpZiAoZG9uZSA8IGJ1ZGdldCkgeworCQlpZiAoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfTFJPKQorCQkJbHJvX2ZsdXNoX2FsbCgmcHJpdi0+bHJvLmxyb19tZ3IpOworCiAJCW5ldGlmX3J4X2NvbXBsZXRlKGRldiwgbmFwaSk7CiAJCWlmICh1bmxpa2VseShpYl9yZXFfbm90aWZ5X2NxKHByaXYtPnJlY3ZfY3EsCiAJCQkJCSAgICAgIElCX0NRX05FWFRfQ09NUCB8CkBAIC04OTgsNyArOTAyLDggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgX19pcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LCBpbnQgcGtleV9ldmVudCkKK3N0YXRpYyB2b2lkIF9faXBvaWJfaWJfZGV2X2ZsdXNoKHN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiwKKwkJCQllbnVtIGlwb2liX2ZsdXNoX2xldmVsIGxldmVsKQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqY3ByaXY7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHByaXYtPmRldjsKQEAgLTkxMSw3ICs5MTYsNyBAQAogCSAqIHRoZSBwYXJlbnQgaXMgZG93bi4KIAkgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNwcml2LCAmcHJpdi0+Y2hpbGRfaW50ZnMsIGxpc3QpCi0JCV9faXBvaWJfaWJfZGV2X2ZsdXNoKGNwcml2LCBwa2V5X2V2ZW50KTsKKwkJX19pcG9pYl9pYl9kZXZfZmx1c2goY3ByaXYsIGxldmVsKTsKIAogCW11dGV4X3VubG9jaygmcHJpdi0+dmxhbl9tdXRleCk7CiAKQEAgLTkyNSw3ICs5MzAsNyBAQAogCQlyZXR1cm47CiAJfQogCi0JaWYgKHBrZXlfZXZlbnQpIHsKKwlpZiAobGV2ZWwgPT0gSVBPSUJfRkxVU0hfSEVBVlkpIHsKIAkJaWYgKGliX2ZpbmRfcGtleShwcml2LT5jYSwgcHJpdi0+cG9ydCwgcHJpdi0+cGtleSwgJm5ld19pbmRleCkpIHsKIAkJCWNsZWFyX2JpdChJUE9JQl9QS0VZX0FTU0lHTkVELCAmcHJpdi0+ZmxhZ3MpOwogCQkJaXBvaWJfaWJfZGV2X2Rvd24oZGV2LCAwKTsKQEAgLTk0MywxMSArOTQ4LDE1IEBACiAJCXByaXYtPnBrZXlfaW5kZXggPSBuZXdfaW5kZXg7CiAJfQogCi0JaXBvaWJfZGJnKHByaXYsICJmbHVzaGluZ1xuIik7CisJaWYgKGxldmVsID09IElQT0lCX0ZMVVNIX0xJR0hUKSB7CisJCWlwb2liX21hcmtfcGF0aHNfaW52YWxpZChkZXYpOworCQlpcG9pYl9tY2FzdF9kZXZfZmx1c2goZGV2KTsKKwl9CiAKLQlpcG9pYl9pYl9kZXZfZG93bihkZXYsIDApOworCWlmIChsZXZlbCA+PSBJUE9JQl9GTFVTSF9OT1JNQUwpCisJCWlwb2liX2liX2Rldl9kb3duKGRldiwgMCk7CiAKLQlpZiAocGtleV9ldmVudCkgeworCWlmIChsZXZlbCA9PSBJUE9JQl9GTFVTSF9IRUFWWSkgewogCQlpcG9pYl9pYl9kZXZfc3RvcChkZXYsIDApOwogCQlpcG9pYl9pYl9kZXZfb3BlbihkZXYpOwogCX0KQEAgLTk1NywyNyArOTY2LDM0IEBACiAJICogd2UgZ2V0IGhlcmUsIGRvbid0IGJyaW5nIGl0IGJhY2sgdXAgaWYgaXQncyBub3QgY29uZmlndXJlZCB1cAogCSAqLwogCWlmICh0ZXN0X2JpdChJUE9JQl9GTEFHX0FETUlOX1VQLCAmcHJpdi0+ZmxhZ3MpKSB7Ci0JCWlwb2liX2liX2Rldl91cChkZXYpOworCQlpZiAobGV2ZWwgPj0gSVBPSUJfRkxVU0hfTk9STUFMKQorCQkJaXBvaWJfaWJfZGV2X3VwKGRldik7CiAJCWlwb2liX21jYXN0X3Jlc3RhcnRfdGFzaygmcHJpdi0+cmVzdGFydF90YXNrKTsKIAl9CiB9CiAKLXZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2xpZ2h0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPQotCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwb2liX2Rldl9wcml2LCBmbHVzaF90YXNrKTsKKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgZmx1c2hfbGlnaHQpOwogCi0JaXBvaWJfZGJnKHByaXYsICJGbHVzaGluZyAlc1xuIiwgcHJpdi0+ZGV2LT5uYW1lKTsKLQlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCAwKTsKKwlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCBJUE9JQl9GTFVTSF9MSUdIVCk7CiB9CiAKLXZvaWQgaXBvaWJfcGtleV9ldmVudChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9ub3JtYWwoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYsIHBrZXlfZXZlbnRfdGFzayk7CisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYsIGZsdXNoX25vcm1hbCk7CiAKLQlpcG9pYl9kYmcocHJpdiwgIkZsdXNoaW5nICVzIGFuZCByZXN0YXJ0aW5nIGl0cyBRUFxuIiwgcHJpdi0+ZGV2LT5uYW1lKTsKLQlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCAxKTsKKwlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCBJUE9JQl9GTFVTSF9OT1JNQUwpOworfQorCit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9oZWF2eShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgZmx1c2hfaGVhdnkpOworCisJX19pcG9pYl9pYl9kZXZfZmx1c2gocHJpdiwgSVBPSUJfRkxVU0hfSEVBVlkpOwogfQogCiB2b2lkIGlwb2liX2liX2Rldl9jbGVhbnVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jCmluZGV4IDI0NDIwOTAuLjhiZTllYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl9tYWluLmMgMTM3NyAyMDA0LTEyLTIzIDE5OjU3OjEyWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlICJpcG9pYi5oIgpAQCAtNjIsNiArNjAsMTUgQEAKIG1vZHVsZV9wYXJhbV9uYW1lZChyZWN2X3F1ZXVlX3NpemUsIGlwb2liX3JlY3ZxX3NpemUsIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHJlY3ZfcXVldWVfc2l6ZSwgIk51bWJlciBvZiBkZXNjcmlwdG9ycyBpbiByZWNlaXZlIHF1ZXVlIik7CiAKK3N0YXRpYyBpbnQgbHJvOworbW9kdWxlX3BhcmFtKGxybywgYm9vbCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGxybywgICJFbmFibGUgTFJPIChMYXJnZSBSZWNlaXZlIE9mZmxvYWQpIik7CisKK3N0YXRpYyBpbnQgbHJvX21heF9hZ2dyID0gSVBPSUJfTFJPX01BWF9BR0dSOworbW9kdWxlX3BhcmFtKGxyb19tYXhfYWdnciwgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MobHJvX21heF9hZ2dyLCAiTFJPOiBNYXggcGFja2V0cyB0byBiZSBhZ2dyZWdhdGVkICIKKwkJIihkZWZhdWx0ID0gNjQpIik7CisKICNpZmRlZiBDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVRwogaW50IGlwb2liX2RlYnVnX2xldmVsOwogCkBAIC0zNTAsNiArMzU3LDIzIEBACiAKICNlbmRpZiAvKiBDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVRyAqLwogCit2b2lkIGlwb2liX21hcmtfcGF0aHNfaW52YWxpZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IGlwb2liX3BhdGggKnBhdGgsICp0cDsKKworCXNwaW5fbG9ja19pcnEoJnByaXYtPmxvY2spOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhdGgsIHRwLCAmcHJpdi0+cGF0aF9saXN0LCBsaXN0KSB7CisJCWlwb2liX2RiZyhwcml2LCAibWFyayBwYXRoIExJRCAweCUwNHggR0lEICIgSVBPSUJfR0lEX0ZNVCAiIGludmFsaWRcbiIsCisJCQliZTE2X3RvX2NwdShwYXRoLT5wYXRocmVjLmRsaWQpLAorCQkJSVBPSUJfR0lEX0FSRyhwYXRoLT5wYXRocmVjLmRnaWQpKTsKKwkJcGF0aC0+dmFsaWQgPSAgMDsKKwl9CisKKwlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOworfQorCiB2b2lkIGlwb2liX2ZsdXNoX3BhdGhzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTM4Niw2ICs0MTAsNyBAQAogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBwYXRoLT5kZXY7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBvaWJfYWggKmFoID0gTlVMTDsKKwlzdHJ1Y3QgaXBvaWJfYWggKm9sZF9haDsKIAlzdHJ1Y3QgaXBvaWJfbmVpZ2ggKm5laWdoLCAqdG47CiAJc3RydWN0IHNrX2J1ZmZfaGVhZCBza3F1ZXVlOwogCXN0cnVjdCBza19idWZmICpza2I7CkBAIC00MDksNiArNDM0LDcgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5sb2NrLCBmbGFncyk7CiAKKwlvbGRfYWggICA9IHBhdGgtPmFoOwogCXBhdGgtPmFoID0gYWg7CiAKIAlpZiAoYWgpIHsKQEAgLTQyMSw2ICs0NDcsMTcgQEAKIAkJCV9fc2tiX3F1ZXVlX3RhaWwoJnNrcXVldWUsIHNrYik7CiAKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5laWdoLCB0biwgJnBhdGgtPm5laWdoX2xpc3QsIGxpc3QpIHsKKwkJCWlmIChuZWlnaC0+YWgpIHsKKwkJCQlXQVJOX09OKG5laWdoLT5haCAhPSBvbGRfYWgpOworCQkJCS8qCisJCQkJICogRHJvcHBpbmcgdGhlIGFoIHJlZmVyZW5jZSBpbnNpZGUKKwkJCQkgKiBwcml2LT5sb2NrIGlzIHNhZmUgaGVyZSwgYmVjYXVzZSB3ZQorCQkJCSAqIHdpbGwgaG9sZCBvbmUgbW9yZSByZWZlcmVuY2UgZnJvbQorCQkJCSAqIHRoZSBvcmlnaW5hbCB2YWx1ZSBvZiBwYXRoLT5haCAoaWUKKwkJCQkgKiBvbGRfYWgpLgorCQkJCSAqLworCQkJCWlwb2liX3B1dF9haChuZWlnaC0+YWgpOworCQkJfQogCQkJa3JlZl9nZXQoJnBhdGgtPmFoLT5yZWYpOwogCQkJbmVpZ2gtPmFoID0gcGF0aC0+YWg7CiAJCQltZW1jcHkoJm5laWdoLT5kZ2lkLnJhdywgJnBhdGgtPnBhdGhyZWMuZGdpZC5yYXcsCkBAIC00NDMsNiArNDgwLDcgQEAKIAkJCXdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1ZSgmbmVpZ2gtPnF1ZXVlKSkpCiAJCQkJX19za2JfcXVldWVfdGFpbCgmc2txdWV1ZSwgc2tiKTsKIAkJfQorCQlwYXRoLT52YWxpZCA9IDE7CiAJfQogCiAJcGF0aC0+cXVlcnkgPSBOVUxMOwpAQCAtNDUwLDYgKzQ4OCw5IEBACiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CiAKKwlpZiAob2xkX2FoKQorCQlpcG9pYl9wdXRfYWgob2xkX2FoKTsKKwogCXdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1ZSgmc2txdWV1ZSkpKSB7CiAJCXNrYi0+ZGV2ID0gZGV2OwogCQlpZiAoZGV2X3F1ZXVlX3htaXQoc2tiKSkKQEAgLTYyMyw4ICs2NjQsOSBAQAogCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7CiAKIAlwYXRoID0gX19wYXRoX2ZpbmQoZGV2LCBwaGRyLT5od2FkZHIgKyA0KTsKLQlpZiAoIXBhdGgpIHsKLQkJcGF0aCA9IHBhdGhfcmVjX2NyZWF0ZShkZXYsIHBoZHItPmh3YWRkciArIDQpOworCWlmICghcGF0aCB8fCAhcGF0aC0+dmFsaWQpIHsKKwkJaWYgKCFwYXRoKQorCQkJcGF0aCA9IHBhdGhfcmVjX2NyZWF0ZShkZXYsIHBoZHItPmh3YWRkciArIDQpOwogCQlpZiAocGF0aCkgewogCQkJLyogcHV0IHBzZXVkb2hlYWRlciBiYWNrIG9uIGZvciBuZXh0IHRpbWUgKi8KIAkJCXNrYl9wdXNoKHNrYiwgc2l6ZW9mICpwaGRyKTsKQEAgLTkzOCw2ICs5ODAsNTQgQEAKIAkuY3JlYXRlCT0gaXBvaWJfaGFyZF9oZWFkZXIsCiB9OwogCitzdGF0aWMgaW50IGdldF9za2JfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHZvaWQgKippcGhkciwKKwkJICAgICAgIHZvaWQgKip0Y3BoLCB1NjQgKmhkcl9mbGFncywgdm9pZCAqcHJpdikKK3sKKwl1bnNpZ25lZCBpbnQgaXBfbGVuOworCXN0cnVjdCBpcGhkciAqaXBoOworCisJaWYgKHVubGlrZWx5KHNrYi0+cHJvdG9jb2wgIT0gaHRvbnMoRVRIX1BfSVApKSkKKwkJcmV0dXJuIC0xOworCisJLyoKKwkgKiBJbiB0aGUgZnV0dXJlIHdlIG1heSBhZGQgYW4gZWxzZSBjbGF1c2UgdGhhdCB2ZXJpZmllcyB0aGUKKwkgKiBjaGVja3N1bSBhbmQgYWxsb3dzIGRldmljZXMgd2hpY2ggZG8gbm90IGNhbGN1bGF0ZSBjaGVja3N1bQorCSAqIHRvIHVzZSBMUk8uCisJICovCisJaWYgKHVubGlrZWx5KHNrYi0+aXBfc3VtbWVkICE9IENIRUNLU1VNX1VOTkVDRVNTQVJZKSkKKwkJcmV0dXJuIC0xOworCisJLyogQ2hlY2sgZm9yIG5vbi1UQ1AgcGFja2V0ICovCisJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CisJaXBoID0gaXBfaGRyKHNrYik7CisJaWYgKGlwaC0+cHJvdG9jb2wgIT0gSVBQUk9UT19UQ1ApCisJCXJldHVybiAtMTsKKworCWlwX2xlbiA9IGlwX2hkcmxlbihza2IpOworCXNrYl9zZXRfdHJhbnNwb3J0X2hlYWRlcihza2IsIGlwX2xlbik7CisJKnRjcGggPSB0Y3BfaGRyKHNrYik7CisKKwkvKiBjaGVjayBpZiBJUCBoZWFkZXIgYW5kIFRDUCBoZWFkZXIgYXJlIGNvbXBsZXRlICovCisJaWYgKG50b2hzKGlwaC0+dG90X2xlbikgPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCisJCXJldHVybiAtMTsKKworCSpoZHJfZmxhZ3MgPSBMUk9fSVBWNCB8IExST19UQ1A7CisJKmlwaGRyID0gaXBoOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGlwb2liX2xyb19zZXR1cChzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYpCit7CisJcHJpdi0+bHJvLmxyb19tZ3IubWF4X2FnZ3IJID0gbHJvX21heF9hZ2dyOworCXByaXYtPmxyby5scm9fbWdyLm1heF9kZXNjCSA9IElQT0lCX01BWF9MUk9fREVTQ1JJUFRPUlM7CisJcHJpdi0+bHJvLmxyb19tZ3IubHJvX2FycgkgPSBwcml2LT5scm8ubHJvX2Rlc2M7CisJcHJpdi0+bHJvLmxyb19tZ3IuZ2V0X3NrYl9oZWFkZXIgPSBnZXRfc2tiX2hkcjsKKwlwcml2LT5scm8ubHJvX21nci5mZWF0dXJlcwkgPSBMUk9fRl9OQVBJOworCXByaXYtPmxyby5scm9fbWdyLmRldgkJID0gcHJpdi0+ZGV2OworCXByaXYtPmxyby5scm9fbWdyLmlwX3N1bW1lZF9hZ2dyID0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlk7Cit9CisKIHN0YXRpYyB2b2lkIGlwb2liX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTk3NywxMCArMTA2NywxMSBAQAogCiAJcHJpdi0+ZGV2ID0gZGV2OwogCisJaXBvaWJfbHJvX3NldHVwKHByaXYpOworCiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOwogCXNwaW5fbG9ja19pbml0KCZwcml2LT50eF9sb2NrKTsKIAotCW11dGV4X2luaXQoJnByaXYtPm1jYXN0X211dGV4KTsKIAltdXRleF9pbml0KCZwcml2LT52bGFuX211dGV4KTsKIAogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5wYXRoX2xpc3QpOwpAQCAtOTg5LDkgKzEwODAsMTAgQEAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+bXVsdGljYXN0X2xpc3QpOwogCiAJSU5JVF9ERUxBWUVEX1dPUksoJnByaXYtPnBrZXlfcG9sbF90YXNrLCBpcG9pYl9wa2V5X3BvbGwpOwotCUlOSVRfV09SSygmcHJpdi0+cGtleV9ldmVudF90YXNrLCBpcG9pYl9wa2V5X2V2ZW50KTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+bWNhc3RfdGFzaywgICBpcG9pYl9tY2FzdF9qb2luX3Rhc2spOwotCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfdGFzaywgICBpcG9pYl9pYl9kZXZfZmx1c2gpOworCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfbGlnaHQsICAgaXBvaWJfaWJfZGV2X2ZsdXNoX2xpZ2h0KTsKKwlJTklUX1dPUksoJnByaXYtPmZsdXNoX25vcm1hbCwgICBpcG9pYl9pYl9kZXZfZmx1c2hfbm9ybWFsKTsKKwlJTklUX1dPUksoJnByaXYtPmZsdXNoX2hlYXZ5LCAgIGlwb2liX2liX2Rldl9mbHVzaF9oZWF2eSk7CiAJSU5JVF9XT1JLKCZwcml2LT5yZXN0YXJ0X3Rhc2ssIGlwb2liX21jYXN0X3Jlc3RhcnRfdGFzayk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJnByaXYtPmFoX3JlYXBfdGFzaywgaXBvaWJfcmVhcF9haCk7CiB9CkBAIC0xMTU0LDYgKzEyNDYsOSBAQAogCQlwcml2LT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0lQX0NTVU07CiAJfQogCisJaWYgKGxybykKKwkJcHJpdi0+ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0xSTzsKKwogCS8qCiAJICogU2V0IHRoZSBmdWxsIG1lbWJlcnNoaXAgYml0LCBzbyB0aGF0IHdlIGpvaW4gdGhlIHJpZ2h0CiAJICogYnJvYWRjYXN0IGdyb3VwLCBldGMuCkBAIC0xMzA0LDYgKzEzOTksMTIgQEAKIAlpcG9pYl9tYXhfY29ubl9xcCA9IG1pbihpcG9pYl9tYXhfY29ubl9xcCwgSVBPSUJfQ01fTUFYX0NPTk5fUVApOwogI2VuZGlmCiAKKwkvKgorCSAqIFdoZW4gY29weWluZyBzbWFsbCByZWNlaXZlZCBwYWNrZXRzLCB3ZSBvbmx5IGNvcHkgZnJvbSB0aGUKKwkgKiBsaW5lYXIgZGF0YSBwYXJ0IG9mIHRoZSBTS0IsIHNvIHdlIHJlbHkgb24gdGhpcyBjb25kaXRpb24uCisJICovCisJQlVJTERfQlVHX09OKElQT0lCX0NNX0NPUFlCUkVBSyA+IElQT0lCX0NNX0hFQURfU0laRSk7CisKIAlyZXQgPSBpcG9pYl9yZWdpc3Rlcl9kZWJ1Z2ZzKCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbXVsdGljYXN0LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX211bHRpY2FzdC5jCmluZGV4IDNmNjYzZmIuLjFmY2M5YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbXVsdGljYXN0LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tdWx0aWNhc3QuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXBvaWJfbXVsdGljYXN0LmMgMTM2MiAyMDA0LTEyLTE4IDE1OjU2OjI5WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KQEAgLTE4OCw2ICsxODYsNyBAQAogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IGlwb2liX2FoICphaDsKIAlpbnQgcmV0OworCWludCBzZXRfcWtleSA9IDA7CiAKIAltY2FzdC0+bWNtZW1iZXIgPSAqbWNtZW1iZXI7CiAKQEAgLTIwMiw2ICsyMDEsNyBAQAogCQlwcml2LT5xa2V5ID0gYmUzMl90b19jcHUocHJpdi0+YnJvYWRjYXN0LT5tY21lbWJlci5xa2V5KTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKIAkJcHJpdi0+dHhfd3Iud3IudWQucmVtb3RlX3FrZXkgPSBwcml2LT5xa2V5OworCQlzZXRfcWtleSA9IDE7CiAJfQogCiAJaWYgKCF0ZXN0X2JpdChJUE9JQl9NQ0FTVF9GTEFHX1NFTkRPTkxZLCAmbWNhc3QtPmZsYWdzKSkgewpAQCAtMjE0LDcgKzIxNCw3IEBACiAJCX0KIAogCQlyZXQgPSBpcG9pYl9tY2FzdF9hdHRhY2goZGV2LCBiZTE2X3RvX2NwdShtY2FzdC0+bWNtZW1iZXIubWxpZCksCi0JCQkJCSAmbWNhc3QtPm1jbWVtYmVyLm1naWQpOworCQkJCQkgJm1jYXN0LT5tY21lbWJlci5tZ2lkLCBzZXRfcWtleSk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQlpcG9pYl93YXJuKHByaXYsICJjb3VsZG4ndCBhdHRhY2ggUVAgdG8gbXVsdGljYXN0IGdyb3VwICIKIAkJCQkgICBJUE9JQl9HSURfRk1UICJcbiIsCkBAIC01NzUsOCArNTc1LDExIEBACiAKIAlwcml2LT5tY2FzdF9tdHUgPSBJUE9JQl9VRF9NVFUoaWJfbXR1X2VudW1fdG9faW50KHByaXYtPmJyb2FkY2FzdC0+bWNtZW1iZXIubXR1KSk7CiAKLQlpZiAoIWlwb2liX2NtX2FkbWluX2VuYWJsZWQoZGV2KSkKLQkJZGV2LT5tdHUgPSBtaW4ocHJpdi0+bWNhc3RfbXR1LCBwcml2LT5hZG1pbl9tdHUpOworCWlmICghaXBvaWJfY21fYWRtaW5fZW5hYmxlZChkZXYpKSB7CisJCXJ0bmxfbG9jaygpOworCQlkZXZfc2V0X210dShkZXYsIG1pbihwcml2LT5tY2FzdF9tdHUsIHByaXYtPmFkbWluX210dSkpOworCQlydG5sX3VubG9jaygpOworCX0KIAogCWlwb2liX2RiZ19tY2FzdChwcml2LCAic3VjY2Vzc2Z1bGx5IGpvaW5lZCBhbGwgbXVsdGljYXN0IGdyb3Vwc1xuIik7CiAKQEAgLTU5NCwxMCArNTk3LDYgQEAKIAkJcXVldWVfZGVsYXllZF93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPm1jYXN0X3Rhc2ssIDApOwogCW11dGV4X3VubG9jaygmbWNhc3RfbXV0ZXgpOwogCi0Jc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7Ci0Jc2V0X2JpdChJUE9JQl9NQ0FTVF9TVEFSVEVELCAmcHJpdi0+ZmxhZ3MpOwotCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+bG9jayk7Ci0KIAlyZXR1cm4gMDsKIH0KIApAQCAtNjA3LDEwICs2MDYsNiBAQAogCiAJaXBvaWJfZGJnX21jYXN0KHByaXYsICJzdG9wcGluZyBtdWx0aWNhc3QgdGhyZWFkXG4iKTsKIAotCXNwaW5fbG9ja19pcnEoJnByaXYtPmxvY2spOwotCWNsZWFyX2JpdChJUE9JQl9NQ0FTVF9TVEFSVEVELCAmcHJpdi0+ZmxhZ3MpOwotCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+bG9jayk7Ci0KIAltdXRleF9sb2NrKCZtY2FzdF9tdXRleCk7CiAJY2xlYXJfYml0KElQT0lCX01DQVNUX1JVTiwgJnByaXYtPmZsYWdzKTsKIAljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5tY2FzdF90YXNrKTsKQEAgLTYzNSwxMCArNjMwLDEwIEBACiAJCQkJSVBPSUJfR0lEX0FSRyhtY2FzdC0+bWNtZW1iZXIubWdpZCkpOwogCiAJCS8qIFJlbW92ZSBvdXJzZWx2ZXMgZnJvbSB0aGUgbXVsdGljYXN0IGdyb3VwICovCi0JCXJldCA9IGlwb2liX21jYXN0X2RldGFjaChkZXYsIGJlMTZfdG9fY3B1KG1jYXN0LT5tY21lbWJlci5tbGlkKSwKLQkJCQkJICZtY2FzdC0+bWNtZW1iZXIubWdpZCk7CisJCXJldCA9IGliX2RldGFjaF9tY2FzdChwcml2LT5xcCwgJm1jYXN0LT5tY21lbWJlci5tZ2lkLAorCQkJCSAgICAgIGJlMTZfdG9fY3B1KG1jYXN0LT5tY21lbWJlci5tbGlkKSk7CiAJCWlmIChyZXQpCi0JCQlpcG9pYl93YXJuKHByaXYsICJpcG9pYl9tY2FzdF9kZXRhY2ggZmFpbGVkIChyZXN1bHQgPSAlZClcbiIsIHJldCk7CisJCQlpcG9pYl93YXJuKHByaXYsICJpYl9kZXRhY2hfbWNhc3QgZmFpbGVkIChyZXN1bHQgPSAlZClcbiIsIHJldCk7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZlcmJzLmMKaW5kZXggODc2NmQyOS4uNjgzMjUxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmVyYnMuYwpAQCAtMjksMjQgKzI5LDE3IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl92ZXJicy5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSAiaXBvaWIuaCIKIAotaW50IGlwb2liX21jYXN0X2F0dGFjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWxpZCwgdW5pb24gaWJfZ2lkICptZ2lkKQoraW50IGlwb2liX21jYXN0X2F0dGFjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWxpZCwgdW5pb24gaWJfZ2lkICptZ2lkLCBpbnQgc2V0X3FrZXkpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3QgaWJfcXBfYXR0ciAqcXBfYXR0cjsKKwlzdHJ1Y3QgaWJfcXBfYXR0ciAqcXBfYXR0ciA9IE5VTEw7CiAJaW50IHJldDsKIAl1MTYgcGtleV9pbmRleDsKIAotCXJldCA9IC1FTk9NRU07Ci0JcXBfYXR0ciA9IGttYWxsb2Moc2l6ZW9mICpxcF9hdHRyLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXFwX2F0dHIpCi0JCWdvdG8gb3V0OwotCiAJaWYgKGliX2ZpbmRfcGtleShwcml2LT5jYSwgcHJpdi0+cG9ydCwgcHJpdi0+cGtleSwgJnBrZXlfaW5kZXgpKSB7CiAJCWNsZWFyX2JpdChJUE9JQl9QS0VZX0FTU0lHTkVELCAmcHJpdi0+ZmxhZ3MpOwogCQlyZXQgPSAtRU5YSU87CkBAIC01NCwxOCArNDcsMjMgQEAKIAl9CiAJc2V0X2JpdChJUE9JQl9QS0VZX0FTU0lHTkVELCAmcHJpdi0+ZmxhZ3MpOwogCi0JLyogc2V0IGNvcnJlY3QgUUtleSBmb3IgUVAgKi8KLQlxcF9hdHRyLT5xa2V5ID0gcHJpdi0+cWtleTsKLQlyZXQgPSBpYl9tb2RpZnlfcXAocHJpdi0+cXAsIHFwX2F0dHIsIElCX1FQX1FLRVkpOwotCWlmIChyZXQpIHsKLQkJaXBvaWJfd2Fybihwcml2LCAiZmFpbGVkIHRvIG1vZGlmeSBRUCwgcmV0ID0gJWRcbiIsIHJldCk7Ci0JCWdvdG8gb3V0OworCWlmIChzZXRfcWtleSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlxcF9hdHRyID0ga21hbGxvYyhzaXplb2YgKnFwX2F0dHIsIEdGUF9LRVJORUwpOworCQlpZiAoIXFwX2F0dHIpCisJCQlnb3RvIG91dDsKKworCQkvKiBzZXQgY29ycmVjdCBRS2V5IGZvciBRUCAqLworCQlxcF9hdHRyLT5xa2V5ID0gcHJpdi0+cWtleTsKKwkJcmV0ID0gaWJfbW9kaWZ5X3FwKHByaXYtPnFwLCBxcF9hdHRyLCBJQl9RUF9RS0VZKTsKKwkJaWYgKHJldCkgeworCQkJaXBvaWJfd2Fybihwcml2LCAiZmFpbGVkIHRvIG1vZGlmeSBRUCwgcmV0ID0gJWRcbiIsIHJldCk7CisJCQlnb3RvIG91dDsKKwkJfQogCX0KIAogCS8qIGF0dGFjaCBRUCB0byBtdWx0aWNhc3QgZ3JvdXAgKi8KLQltdXRleF9sb2NrKCZwcml2LT5tY2FzdF9tdXRleCk7CiAJcmV0ID0gaWJfYXR0YWNoX21jYXN0KHByaXYtPnFwLCBtZ2lkLCBtbGlkKTsKLQltdXRleF91bmxvY2soJnByaXYtPm1jYXN0X211dGV4KTsKIAlpZiAocmV0KQogCQlpcG9pYl93YXJuKHByaXYsICJmYWlsZWQgdG8gYXR0YWNoIHRvIG11bHRpY2FzdCBncm91cCwgcmV0ID0gJWRcbiIsIHJldCk7CiAKQEAgLTc0LDIwICs3Miw2IEBACiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGlwb2liX21jYXN0X2RldGFjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWxpZCwgdW5pb24gaWJfZ2lkICptZ2lkKQotewotCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7Ci0JaW50IHJldDsKLQotCW11dGV4X2xvY2soJnByaXYtPm1jYXN0X211dGV4KTsKLQlyZXQgPSBpYl9kZXRhY2hfbWNhc3QocHJpdi0+cXAsIG1naWQsIG1saWQpOwotCW11dGV4X3VubG9jaygmcHJpdi0+bWNhc3RfbXV0ZXgpOwotCWlmIChyZXQpCi0JCWlwb2liX3dhcm4ocHJpdiwgImliX2RldGFjaF9tY2FzdCBmYWlsZWQgKHJlc3VsdCA9ICVkKVxuIiwgcmV0KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KIGludCBpcG9pYl9pbml0X3FwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTIwMSw3ICsxODUsMTAgQEAKIAlpbml0X2F0dHIucmVjdl9jcSA9IHByaXYtPnJlY3ZfY3E7CiAKIAlpZiAocHJpdi0+aGNhX2NhcHMgJiBJQl9ERVZJQ0VfVURfVFNPKQotCQlpbml0X2F0dHIuY3JlYXRlX2ZsYWdzID0gSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTzsKKwkJaW5pdF9hdHRyLmNyZWF0ZV9mbGFncyB8PSBJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPOworCisJaWYgKHByaXYtPmhjYV9jYXBzICYgSUJfREVWSUNFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykKKwkJaW5pdF9hdHRyLmNyZWF0ZV9mbGFncyB8PSBJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOwogCiAJaWYgKGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX1NHKQogCQlpbml0X2F0dHIuY2FwLm1heF9zZW5kX3NnZSA9IE1BWF9TS0JfRlJBR1MgKyAxOwpAQCAtMjg5LDE1ICsyNzYsMTcgQEAKIAlpZiAocmVjb3JkLT5lbGVtZW50LnBvcnRfbnVtICE9IHByaXYtPnBvcnQpCiAJCXJldHVybjsKIAotCWlmIChyZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1BPUlRfRVJSICAgIHx8Ci0JICAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfUE9SVF9BQ1RJVkUgfHwKLQkgICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9MSURfQ0hBTkdFICB8fAotCSAgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1NNX0NIQU5HRSAgIHx8CisJaXBvaWJfZGJnKHByaXYsICJFdmVudCAlZCBvbiBkZXZpY2UgJXMgcG9ydCAlZFxuIiwgcmVjb3JkLT5ldmVudCwKKwkJICByZWNvcmQtPmRldmljZS0+bmFtZSwgcmVjb3JkLT5lbGVtZW50LnBvcnRfbnVtKTsKKworCWlmIChyZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1NNX0NIQU5HRSB8fAogCSAgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX0NMSUVOVF9SRVJFR0lTVEVSKSB7Ci0JCWlwb2liX2RiZyhwcml2LCAiUG9ydCBzdGF0ZSBjaGFuZ2UgZXZlbnRcbiIpOwotCQlxdWV1ZV93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPmZsdXNoX3Rhc2spOworCQlxdWV1ZV93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPmZsdXNoX2xpZ2h0KTsKKwl9IGVsc2UgaWYgKHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfUE9SVF9FUlIgfHwKKwkJICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9QT1JUX0FDVElWRSB8fAorCQkgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX0xJRF9DSEFOR0UpIHsKKwkJcXVldWVfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5mbHVzaF9ub3JtYWwpOwogCX0gZWxzZSBpZiAocmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9QS0VZX0NIQU5HRSkgewotCQlpcG9pYl9kYmcocHJpdiwgIlBfS2V5IGNoYW5nZSBldmVudCBvbiBwb3J0OiVkXG4iLCBwcml2LT5wb3J0KTsKLQkJcXVldWVfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5wa2V5X2V2ZW50X3Rhc2spOworCQlxdWV1ZV93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPmZsdXNoX2hlYXZ5KTsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jCmluZGV4IDFjZGI1Y2YuLmIwOGViNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl92bGFuLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5jCmluZGV4IGFlYjU4Y2EuLjM1NmZhYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuYwpAQCAtNDIsOSArNDIsNiBAQAogICoJWmhlbnl1IFdhbmcKICAqIE1vZGlmaWVkIGJ5OgogICogICAgICBFcmV6IFppbGJlcgotICoKLSAqCi0gKiAkSWQ6IGlzY3NpX2lzZXIuYyA2OTY1IDIwMDYtMDUtMDcgMTE6MzY6MjBaIG9nZXJsaXR6ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5oCmluZGV4IGE4YzFiMzAuLjBlMTA3MDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuaApAQCAtMzYsOCArMzYsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXNjc2lfaXNlci5oIDcwNTEgMjAwNi0wNS0xMCAxMjoyOToxMVogb2dlcmxpdHogJAogICovCiAjaWZuZGVmIF9fSVNDU0lfSVNFUl9IX18KICNkZWZpbmUgX19JU0NTSV9JU0VSX0hfXwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfaW5pdGlhdG9yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9pbml0aWF0b3IuYwppbmRleCAwOGRjODFjLi4zMWFkNDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9pbml0aWF0b3IuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9pbml0aWF0b3IuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXNlcl9pbml0aWF0b3IuYyA2OTY0IDIwMDYtMDUtMDcgMTE6MTE6NDNaIG9nZXJsaXR6ICQKICAqLwogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX21lbW9yeS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfbWVtb3J5LmMKaW5kZXggY2FjNTBjNC4uODFlNDljYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfbWVtb3J5LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfbWVtb3J5LmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlzZXJfbWVtb3J5LmMgNjk2NCAyMDA2LTA1LTA3IDExOjExOjQzWiBvZ2VybGl0eiAkCiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl92ZXJicy5jCmluZGV4IGQxOWNmZTYuLjc3Y2FiZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfdmVyYnMuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXNlcl92ZXJicy5jIDcwNTEgMjAwNi0wNS0xMCAxMjoyOToxMVogb2dlcmxpdHogJAogICovCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5jCmluZGV4IDQzNTE0NTcuLmVkN2M1ZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9zcnAuYyAzOTMyIDIwMDUtMTEtMDEgMTc6MTk6MjlaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNDksOCArNDcsNiBAQAogI2luY2x1ZGUgPHNjc2kvc3JwLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX3RyYW5zcG9ydF9zcnAuaD4KIAotI2luY2x1ZGUgPHJkbWEvaWJfY2FjaGUuaD4KLQogI2luY2x1ZGUgImliX3NycC5oIgogCiAjZGVmaW5lIERSVl9OQU1FCSJpYl9zcnAiCkBAIC0xODMsMTAgKzE3OSwxMCBAQAogCWlmICghYXR0cikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlyZXQgPSBpYl9maW5kX2NhY2hlZF9wa2V5KHRhcmdldC0+c3JwX2hvc3QtPnNycF9kZXYtPmRldiwKLQkJCQkgIHRhcmdldC0+c3JwX2hvc3QtPnBvcnQsCi0JCQkJICBiZTE2X3RvX2NwdSh0YXJnZXQtPnBhdGgucGtleSksCi0JCQkJICAmYXR0ci0+cGtleV9pbmRleCk7CisJcmV0ID0gaWJfZmluZF9wa2V5KHRhcmdldC0+c3JwX2hvc3QtPnNycF9kZXYtPmRldiwKKwkJCSAgIHRhcmdldC0+c3JwX2hvc3QtPnBvcnQsCisJCQkgICBiZTE2X3RvX2NwdSh0YXJnZXQtPnBhdGgucGtleSksCisJCQkgICAmYXR0ci0+cGtleV9pbmRleCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTE4ODMsOCArMTg3OSw3IEBACiAJaWYgKHJldCkKIAkJZ290byBlcnI7CiAKLQlpYl9nZXRfY2FjaGVkX2dpZChob3N0LT5zcnBfZGV2LT5kZXYsIGhvc3QtPnBvcnQsIDAsCi0JCQkgICZ0YXJnZXQtPnBhdGguc2dpZCk7CisJaWJfcXVlcnlfZ2lkKGhvc3QtPnNycF9kZXYtPmRldiwgaG9zdC0+cG9ydCwgMCwgJnRhcmdldC0+cGF0aC5zZ2lkKTsKIAogCXNob3N0X3ByaW50ayhLRVJOX0RFQlVHLCB0YXJnZXQtPnNjc2lfaG9zdCwgUEZYCiAJCSAgICAgIm5ldyB0YXJnZXQ6IGlkX2V4dCAlMDE2bGx4IGlvY19ndWlkICUwMTZsbHggcGtleSAlMDR4ICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmgKaW5kZXggNjNkMmFlNy4uZTE4NWI5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NycC5oIDM5MzIgMjAwNS0xMS0wMSAxNzoxOToyOVogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIElCX1NSUF9ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2ZmLWNvcmUuYyBiL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCmluZGV4IGVlYmM3MjQuLjcyYzYzZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKIC8qCiAgKiBDaGVjayB0aGF0IHRoZSBlZmZlY3RfaWQgaXMgYSB2YWxpZCBlZmZlY3QgYW5kIHdoZXRoZXIgdGhlIHVzZXIKQEAgLTE2Niw4ICsxNjcsMTAgQEAKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIAorCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAJZmYtPmVmZmVjdHNbaWRdID0gKmVmZmVjdDsKIAlmZi0+ZWZmZWN0X293bmVyc1tpZF0gPSBmaWxlOworCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAogIG91dDoKIAltdXRleF91bmxvY2soJmZmLT5tdXRleCk7CkBAIC0xODksMTUgKzE5MiwyMSBAQAogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCisJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAlmZi0+cGxheWJhY2soZGV2LCBlZmZlY3RfaWQsIDApOworCWZmLT5lZmZlY3Rfb3duZXJzW2VmZmVjdF9pZF0gPSBOVUxMOworCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAogCWlmIChmZi0+ZXJhc2UpIHsKIAkJZXJyb3IgPSBmZi0+ZXJhc2UoZGV2LCBlZmZlY3RfaWQpOwotCQlpZiAoZXJyb3IpCi0JCQlyZXR1cm4gZXJyb3I7Ci0JfQorCQlpZiAoZXJyb3IpIHsKKwkJCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CisJCQlmZi0+ZWZmZWN0X293bmVyc1tlZmZlY3RfaWRdID0gZmlsZTsKKwkJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAotCWZmLT5lZmZlY3Rfb3duZXJzW2VmZmVjdF9pZF0gPSBOVUxMOworCQkJcmV0dXJuIGVycm9yOworCQl9CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNjMsOCArMjcyLDYgQEAKIAlpZiAodHlwZSAhPSBFVl9GRikKIAkJcmV0dXJuIDA7CiAKLQltdXRleF9sb2NrKCZmZi0+bXV0ZXgpOwotCiAJc3dpdGNoIChjb2RlKSB7CiAJY2FzZSBGRl9HQUlOOgogCQlpZiAoIXRlc3RfYml0KEZGX0dBSU4sIGRldi0+ZmZiaXQpIHx8IHZhbHVlID4gMHhmZmZmKQpAQCAtMjg2LDcgKzI5Myw2IEBACiAJCWJyZWFrOwogCX0KIAotCW11dGV4X3VubG9jaygmZmYtPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlucHV0X2ZmX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvaW5wdXQuYyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQuYwppbmRleCAyNzAwNmZjLi40MDhkZjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2lucHV0LmMKKysrIGIvZHJpdmVycy9pbnB1dC9pbnB1dC5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKIE1PRFVMRV9BVVRIT1IoIlZvanRlY2ggUGF2bGlrIDx2b2p0ZWNoQHN1c2UuY3o+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIklucHV0IGNvcmUiKTsKQEAgLTE1ODgsMTMgKzE1ODksMTcgQEAKIAogc3RhdGljIGludCBpbnB1dF9vcGVuX2ZpbGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IGlucHV0X2hhbmRsZXIgKmhhbmRsZXIgPSBpbnB1dF90YWJsZVtpbWlub3IoaW5vZGUpID4+IDVdOworCXN0cnVjdCBpbnB1dF9oYW5kbGVyICpoYW5kbGVyOwogCWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9sZF9mb3BzLCAqbmV3X2ZvcHMgPSBOVUxMOwogCWludCBlcnI7CiAKKwlsb2NrX2tlcm5lbCgpOwogCS8qIE5vIGxvYWQtb24tZGVtYW5kIGhlcmU/ICovCi0JaWYgKCFoYW5kbGVyIHx8ICEobmV3X2ZvcHMgPSBmb3BzX2dldChoYW5kbGVyLT5mb3BzKSkpCi0JCXJldHVybiAtRU5PREVWOworCWhhbmRsZXIgPSBpbnB1dF90YWJsZVtpbWlub3IoaW5vZGUpID4+IDVdOworCWlmICghaGFuZGxlciB8fCAhKG5ld19mb3BzID0gZm9wc19nZXQoaGFuZGxlci0+Zm9wcykpKSB7CisJCWVyciA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCS8qCiAJICogVGhhdCdzIF9yZWFsbHlfIG9kZC4gVXN1YWxseSBOVUxMIC0+b3BlbiBtZWFucyAibm90aGluZyBzcGVjaWFsIiwKQEAgLTE2MDIsNyArMTYwNyw4IEBACiAJICovCiAJaWYgKCFuZXdfZm9wcy0+b3BlbikgewogCQlmb3BzX3B1dChuZXdfZm9wcyk7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAJb2xkX2ZvcHMgPSBmaWxlLT5mX29wOwogCWZpbGUtPmZfb3AgPSBuZXdfZm9wczsKQEAgLTE2MTQsNiArMTYyMCw4IEBACiAJCWZpbGUtPmZfb3AgPSBmb3BzX2dldChvbGRfZm9wcyk7CiAJfQogCWZvcHNfcHV0KG9sZF9mb3BzKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL0tjb25maWcgYi9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZwppbmRleCAzYWQ4YmQ5Li40MzI2OTlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZwpAQCAtMTUsNyArMTUsNiBAQAogY29uZmlnIElOUFVUX1BDU1BLUgogCXRyaXN0YXRlICJQQyBTcGVha2VyIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBQQ1NQS1JfUExBVEZPUk0KLQlkZXBlbmRzIG9uIFNORF9QQ1NQPW4KIAloZWxwCiAJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRoZSBzdGFuZGFyZCBQQyBTcGVha2VyIHRvIGJlIHVzZWQgZm9yCiAJICBiZWxscyBhbmQgd2hpc3RsZXMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvaHBfc2RjX3J0Yy5jIGIvZHJpdmVycy9pbnB1dC9taXNjL2hwX3NkY19ydGMuYwppbmRleCA0NWU1ZDA1Li40OWQ4YWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvaHBfc2RjX3J0Yy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9ocF9zZGNfcnRjLmMKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2hwX3NkYy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTQwOCw2ICs0MDksNyBAQAogCiBzdGF0aWMgaW50IGhwX3NkY19ydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogICAgICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3VpbnB1dC5jIGIvZHJpdmVycy9pbnB1dC9taXNjL3VpbnB1dC5jCmluZGV4IGE1NmFkNGIuLjJiY2ZhMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy91aW5wdXQuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvdWlucHV0LmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC91aW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiBzdGF0aWMgaW50IHVpbnB1dF9kZXZfZXZlbnQoc3RydWN0IGlucHV0X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50IGNvZGUsIGludCB2YWx1ZSkKIHsKQEAgLTIyMiw2ICsyMjMsNyBAQAogCWlmICghbmV3ZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfaW5pdCgmbmV3ZGV2LT5tdXRleCk7CiAJc3Bpbl9sb2NrX2luaXQoJm5ld2Rldi0+cmVxdWVzdHNfbG9jayk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbmV3ZGV2LT5yZXF1ZXN0c193YWl0cSk7CkBAIC0yMjksNiArMjMxLDcgQEAKIAluZXdkZXYtPnN0YXRlID0gVUlTVF9ORVdfREVWSUNFOwogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gbmV3ZGV2OworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9hcHBsZXRvdWNoLmMgYi9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYwppbmRleCA4ZGQzOTQyLi5jZTZmZGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYwpAQCAtNTg5LDYgKzU4OSwyMSBAQAogCWRldi0+b3BlbiA9IDA7CiB9CiAKK3N0YXRpYyBpbnQgYXRwX2hhbmRsZV9nZXlzZXIoc3RydWN0IGF0cCAqZGV2KQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OworCisJaWYgKCFhdHBfaXNfZm91bnRhaW4oZGV2KSkgeworCQkvKiBzd2l0Y2ggdG8gcmF3IHNlbnNvciBtb2RlICovCisJCWlmIChhdHBfZ2V5c2VyX2luaXQodWRldikpCisJCQlyZXR1cm4gLUVJTzsKKworCQlwcmludGsoS0VSTl9JTkZPICJhcHBsZXRvdWNoOiBHZXlzZXIgbW9kZSBpbml0aWFsaXplZC5cbiIpOworCX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGF0cF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaWZhY2UsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKIHsKIAlzdHJ1Y3QgYXRwICpkZXY7CkBAIC02MzMsMTQgKzY0OCw2IEBACiAJZWxzZQogCQlkZXYtPmRhdGFsZW4gPSA4MTsKIAotCWlmICghYXRwX2lzX2ZvdW50YWluKGRldikpIHsKLQkJLyogc3dpdGNoIHRvIHJhdyBzZW5zb3IgbW9kZSAqLwotCQlpZiAoYXRwX2dleXNlcl9pbml0KHVkZXYpKQotCQkJZ290byBlcnJfZnJlZV9kZXZzOwotCi0JCXByaW50ayhLRVJOX0lORk8gImFwcGxldG91Y2g6IEdleXNlciBtb2RlIGluaXRpYWxpemVkLlxuIik7Ci0JfQotCiAJZGV2LT51cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOwogCWlmICghZGV2LT51cmIpCiAJCWdvdG8gZXJyX2ZyZWVfZGV2czsKQEAgLTY1NCw2ICs2NjEsMTAgQEAKIAkJCSB1c2JfcmN2aW50cGlwZSh1ZGV2LCBpbnRfaW5fZW5kcG9pbnRBZGRyKSwKIAkJCSBkZXYtPmRhdGEsIGRldi0+ZGF0YWxlbiwgYXRwX2NvbXBsZXRlLCBkZXYsIDEpOwogCisJZXJyb3IgPSBhdHBfaGFuZGxlX2dleXNlcihkZXYpOworCWlmIChlcnJvcikKKwkJZ290byBlcnJfZnJlZV9idWZmZXI7CisKIAl1c2JfbWFrZV9wYXRoKHVkZXYsIGRldi0+cGh5cywgc2l6ZW9mKGRldi0+cGh5cykpOwogCXN0cmxjYXQoZGV2LT5waHlzLCAiL2lucHV0MCIsIHNpemVvZihkZXYtPnBoeXMpKTsKIApAQCAtNzQ0LDYgKzc1NSwyMCBAQAogCXByaW50ayhLRVJOX0lORk8gImlucHV0OiBhcHBsZXRvdWNoIGRpc2Nvbm5lY3RlZFxuIik7CiB9CiAKK3N0YXRpYyBpbnQgYXRwX3JlY292ZXIoc3RydWN0IGF0cCAqZGV2KQoreworCWludCBlcnJvcjsKKworCWVycm9yID0gYXRwX2hhbmRsZV9nZXlzZXIoZGV2KTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKworCWlmIChkZXYtPm9wZW4gJiYgdXNiX3N1Ym1pdF91cmIoZGV2LT51cmIsIEdGUF9BVE9NSUMpKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGF0cF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppZmFjZSwgcG1fbWVzc2FnZV90IG1lc3NhZ2UpCiB7CiAJc3RydWN0IGF0cCAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpZmFjZSk7CkBAIC03NjQsMTIgKzc4OSwyMCBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF0cF9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlmYWNlKQoreworCXN0cnVjdCBhdHAgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaWZhY2UpOworCisJcmV0dXJuIGF0cF9yZWNvdmVyKGRldik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdHBfZHJpdmVyID0gewogCS5uYW1lCQk9ICJhcHBsZXRvdWNoIiwKIAkucHJvYmUJCT0gYXRwX3Byb2JlLAogCS5kaXNjb25uZWN0CT0gYXRwX2Rpc2Nvbm5lY3QsCiAJLnN1c3BlbmQJPSBhdHBfc3VzcGVuZCwKIAkucmVzdW1lCQk9IGF0cF9yZXN1bWUsCisJLnJlc2V0X3Jlc3VtZQk9IGF0cF9yZXNldF9yZXN1bWUsCiAJLmlkX3RhYmxlCT0gYXRwX3RhYmxlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZWRldi5jIGIvZHJpdmVycy9pbnB1dC9tb3VzZWRldi5jCmluZGV4IGI5ODk3NDguLjgxMzdlNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2VkZXYuYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlZGV2LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNkZWZpbmUgTU9VU0VERVZfTUlYCQkzMQogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTU0NSwxNiArNTQ2LDIxIEBACiAJaWYgKGkgPj0gTU9VU0VERVZfTUlOT1JTKQogCQlyZXR1cm4gLUVOT0RFVjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZXJyb3IgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm1vdXNlZGV2X3RhYmxlX211dGV4KTsKLQlpZiAoZXJyb3IpCisJaWYgKGVycm9yKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycm9yOworCX0KIAltb3VzZWRldiA9IG1vdXNlZGV2X3RhYmxlW2ldOwogCWlmIChtb3VzZWRldikKIAkJZ2V0X2RldmljZSgmbW91c2VkZXYtPmRldik7CiAJbXV0ZXhfdW5sb2NrKCZtb3VzZWRldl90YWJsZV9tdXRleCk7CiAKLQlpZiAoIW1vdXNlZGV2KQorCWlmICghbW91c2VkZXYpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAljbGllbnQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW91c2VkZXZfY2xpZW50KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGllbnQpIHsKQEAgLTU3Myw2ICs1NzksNyBAQAogCQlnb3RvIGVycl9mcmVlX2NsaWVudDsKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGNsaWVudDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKICBlcnJfZnJlZV9jbGllbnQ6CkBAIC01ODAsNiArNTg3LDcgQEAKIAlrZnJlZShjbGllbnQpOwogIGVycl9wdXRfbW91c2VkZXY6CiAJcHV0X2RldmljZSgmbW91c2VkZXYtPmRldik7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaCBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIteDg2aWE2NGlvLmgKaW5kZXggOWFhZmE5Ni4uNzhlYjc4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaAorKysgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oCkBAIC0xOTMsNiArMTkzLDEzIEBACiAJCX0sCiAJfSwKIAl7CisJCS5pZGVudCA9ICJGdWppdHN1LVNpZW1lbnMgQW1pbG8gUHJvIDIwMzAiLAorCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkZVSklUU1UgU0lFTUVOUyIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJBTUlMTyBQUk8gVjIwMzAiKSwKKwkJfSwKKwl9LAorCXsKIAkJLyoKIAkJICogTm8gZGF0YSBpcyBjb21pbmcgZnJvbSB0aGUgdG91Y2hzY3JlZW4gdW5sZXNzIEtCQwogCQkgKiBpcyBpbiBsZWdhY3kgbW9kZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYwppbmRleCA1OTJmZjU1Li4xNzBmNzFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMKKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5jCkBAIC05NTIsOCArOTUyLDEyIEBACiAJaTgwNDJfY3RyIHw9IEk4MDQyX0NUUl9BVVhESVMgfCBJODA0Ml9DVFJfS0JERElTOwogCWk4MDQyX2N0ciAmPSB+KEk4MDQyX0NUUl9BVVhJTlQgfCBJODA0Ml9DVFJfS0JESU5UKTsKIAlpZiAoaTgwNDJfY29tbWFuZCgmaTgwNDJfY3RyLCBJODA0Ml9DTURfQ1RMX1dDVFIpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaTgwNDI6IENhbid0IHdyaXRlIENUUiB0byByZXN1bWVcbiIpOwotCQlyZXR1cm4gLUVJTzsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiaTgwNDI6IENhbid0IHdyaXRlIENUUiB0byByZXN1bWUsIHJldHJ5aW5nLi4uXG4iKTsKKwkJbXNsZWVwKDUwKTsKKwkJaWYgKGk4MDQyX2NvbW1hbmQoJmk4MDQyX2N0ciwgSTgwNDJfQ01EX0NUTF9XQ1RSKSkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJpODA0MjogQ1RSIHdyaXRlIHJldHJ5IGZhaWxlZFxuIik7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQogCX0KIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL3NlcmlvX3Jhdy5jIGIvZHJpdmVycy9pbnB1dC9zZXJpby9zZXJpb19yYXcuYwppbmRleCAwNDAzNjIyLi5jOTM5N2M4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3NlcmlvL3NlcmlvX3Jhdy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vc2VyaW9fcmF3LmMKQEAgLTEwLDYgKzEwLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlvLmg+CkBAIC04MSw5ICs4MiwxMCBAQAogCXN0cnVjdCBzZXJpb19yYXdfbGlzdCAqbGlzdDsKIAlpbnQgcmV0dmFsID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJcmV0dmFsID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzZXJpb19yYXdfbXV0ZXgpOwogCWlmIChyZXR2YWwpCi0JCXJldHVybiByZXR2YWw7CisJCWdvdG8gb3V0X2JrbDsKIAogCWlmICghKHNlcmlvX3JhdyA9IHNlcmlvX3Jhd19sb2NhdGUoaW1pbm9yKGlub2RlKSkpKSB7CiAJCXJldHZhbCA9IC1FTk9ERVY7CkBAIC0xMDgsNiArMTEwLDggQEAKIAogb3V0OgogCW11dGV4X3VubG9jaygmc2VyaW9fcmF3X211dGV4KTsKK291dF9ia2w6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQveGVuLWtiZGZyb250LmMgYi9kcml2ZXJzL2lucHV0L3hlbi1rYmRmcm9udC5jCmluZGV4IDBmNDdmNDYuLjljZTNiM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQveGVuLWtiZGZyb250LmMKKysrIGIvZHJpdmVycy9pbnB1dC94ZW4ta2JkZnJvbnQuYwpAQCAtNjYsNiArNjYsOSBAQAogCQljYXNlIFhFTktCRF9UWVBFX01PVElPTjoKIAkJCWlucHV0X3JlcG9ydF9yZWwoZGV2LCBSRUxfWCwgZXZlbnQtPm1vdGlvbi5yZWxfeCk7CiAJCQlpbnB1dF9yZXBvcnRfcmVsKGRldiwgUkVMX1ksIGV2ZW50LT5tb3Rpb24ucmVsX3kpOworCQkJaWYgKGV2ZW50LT5tb3Rpb24ucmVsX3opCisJCQkJaW5wdXRfcmVwb3J0X3JlbChkZXYsIFJFTF9XSEVFTCwKKwkJCQkJCSAtZXZlbnQtPm1vdGlvbi5yZWxfeik7CiAJCQlicmVhazsKIAkJY2FzZSBYRU5LQkRfVFlQRV9LRVk6CiAJCQlkZXYgPSBOVUxMOwpAQCAtODQsNiArODcsOSBAQAogCQljYXNlIFhFTktCRF9UWVBFX1BPUzoKIAkJCWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfWCwgZXZlbnQtPnBvcy5hYnNfeCk7CiAJCQlpbnB1dF9yZXBvcnRfYWJzKGRldiwgQUJTX1ksIGV2ZW50LT5wb3MuYWJzX3kpOworCQkJaWYgKGV2ZW50LT5wb3MucmVsX3opCisJCQkJaW5wdXRfcmVwb3J0X3JlbChkZXYsIFJFTF9XSEVFTCwKKwkJCQkJCSAtZXZlbnQtPnBvcy5yZWxfeik7CiAJCQlicmVhazsKIAkJfQogCQlpZiAoZGV2KQpAQCAtMTUyLDcgKzE1OCw3IEBACiAJcHRyLT5ldmJpdFswXSA9IEJJVChFVl9LRVkpIHwgQklUKEVWX1JFTCkgfCBCSVQoRVZfQUJTKTsKIAlmb3IgKGkgPSBCVE5fTEVGVDsgaSA8PSBCVE5fVEFTSzsgaSsrKQogCQlzZXRfYml0KGksIHB0ci0+a2V5Yml0KTsKLQlwdHItPnJlbGJpdFswXSA9IEJJVChSRUxfWCkgfCBCSVQoUkVMX1kpOworCXB0ci0+cmVsYml0WzBdID0gQklUKFJFTF9YKSB8IEJJVChSRUxfWSkgfCBCSVQoUkVMX1dIRUVMKTsKIAlpbnB1dF9zZXRfYWJzX3BhcmFtcyhwdHIsIEFCU19YLCAwLCBYRU5GQl9XSURUSCwgMCwgMCk7CiAJaW5wdXRfc2V0X2Fic19wYXJhbXMocHRyLCBBQlNfWSwgMCwgWEVORkJfSEVJR0hULCAwLCAwKTsKIApAQCAtMjk0LDYgKzMwMCwxNiBAQAogCQkgKi8KIAkJaWYgKGRldi0+c3RhdGUgIT0gWGVuYnVzU3RhdGVDb25uZWN0ZWQpCiAJCQlnb3RvIEluaXRXYWl0OyAvKiBubyBJbml0V2FpdCBzZWVuIHlldCwgZnVkZ2UgaXQgKi8KKworCQkvKiBTZXQgaW5wdXQgYWJzIHBhcmFtcyB0byBtYXRjaCBiYWNrZW5kIHNjcmVlbiByZXMgKi8KKwkJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBpbmZvLT54YmRldi0+b3RoZXJlbmQsCisJCQkJICJ3aWR0aCIsICIlZCIsICZ2YWwpID4gMCkKKwkJCWlucHV0X3NldF9hYnNfcGFyYW1zKGluZm8tPnB0ciwgQUJTX1gsIDAsIHZhbCwgMCwgMCk7CisKKwkJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBpbmZvLT54YmRldi0+b3RoZXJlbmQsCisJCQkJICJoZWlnaHQiLCAiJWQiLCAmdmFsKSA+IDApCisJCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbmZvLT5wdHIsIEFCU19ZLCAwLCB2YWwsIDAsIDApOworCiAJCWJyZWFrOwogCiAJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CkBAIC0zMzcsNCArMzUzLDYgQEAKIG1vZHVsZV9pbml0KHhlbmtiZF9pbml0KTsKIG1vZHVsZV9leGl0KHhlbmtiZF9jbGVhbnVwKTsKIAorTU9EVUxFX0RFU0NSSVBUSU9OKCJYZW4gdmlydHVhbCBrZXlib2FyZC9wb2ludGVyIGRldmljZSBmcm9udGVuZCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTKCJ4ZW46dmtiZCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jIGIvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jCmluZGV4IDZjYTBiYjkuLjIwOTUxNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9jYXBpL2NhcGkuYworKysgYi9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpZmRlZiBDT05GSUdfSVNETl9DQVBJX01JRERMRVdBUkUKQEAgLTk4MywxMyArOTg0LDE3IEBACiBzdGF0aWMgaW50CiBjYXBpX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJaW50IHJldDsKKwkKKwlsb2NrX2tlcm5lbCgpOwogCWlmIChmaWxlLT5wcml2YXRlX2RhdGEpCi0JCXJldHVybiAtRUVYSVNUOwotCi0JaWYgKChmaWxlLT5wcml2YXRlX2RhdGEgPSBjYXBpZGV2X2FsbG9jKCkpID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOworCQlyZXQgPSAtRUVYSVNUOworCWVsc2UgaWYgKChmaWxlLT5wcml2YXRlX2RhdGEgPSBjYXBpZGV2X2FsbG9jKCkpID09IE5VTEwpCisJCXJldCA9IC1FTk9NRU07CisJZWxzZQorCQlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFtbnQuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhbW50LmMKaW5kZXggYzkwOTI4OS4uMWU4NWY3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFtbnQuYworKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YW1udC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKICNpbmNsdWRlICJwbGF0Zm9ybS5oIgpAQCAtMTI3LDE0ICsxMjgsMTkgQEAKIAogc3RhdGljIGludCBtYWludF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vLCBzdHJ1Y3QgZmlsZSAqZmlsZXApCiB7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CiAJLyogb25seSBvbmUgb3BlbiBpcyBhbGxvd2VkLCBzbyB3ZSB0ZXN0CiAJICAgaXQgYXRvbWljYWxseSAqLwogCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZvcGVuZWQpKQotCQlyZXR1cm4gKC1FQlVTWSk7Ci0KLQlmaWxlcC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKLQotCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlubywgZmlsZXApOworCQlyZXQgPSAtRUJVU1k7CisJZWxzZSB7CisJCWZpbGVwLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCQlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlubywgZmlsZXApOworCX0KKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBtYWludF9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZpbGUgKmZpbGVwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzaS5jIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzaS5jCmluZGV4IDc4ZjE0MWUuLmY0OTY5ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc2kuYworKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNpLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgInBsYXRmb3JtLmgiCkBAIC00MDAsNiArNDAxLDcgQEAKIAogc3RhdGljIGludCB1bV9pZGlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAoMCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc21haW4uYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc21haW4uYwppbmRleCA1ZmNiZGNjLi5mYmJjYjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNtYWluLmMKKysrIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzbWFpbi5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgInBsYXRmb3JtLmgiCiAjdW5kZWYgSURfTUFTSwpAQCAtNTgwLDYgKzU4MSw3IEBACiAgKi8KIHN0YXRpYyBpbnQgZGl2YXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTgwNiw3ICs4MDgsNiBAQAogCiAJaWYgKCFjcmVhdGVfZGl2YXNfcHJvYygpKSB7CiAjaWZkZWYgTU9EVUxFCi0JCXJlbW92ZV9kaXZhc19wcm9jKCk7CiAJCWRpdmFzX3VucmVnaXN0ZXJfY2hyZGV2KCk7CiAJCWRpdmFzZnVuY19leGl0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc3Byb2MuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc3Byb2MuYwppbmRleCBmYWU4OTU4Li4wNDA4MjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNwcm9jLmMKKysrIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzcHJvYy5jCkBAIC0xMjUsOCArMTI1LDggQEAKIAogaW50IGNyZWF0ZV9kaXZhc19wcm9jKHZvaWQpCiB7Ci0JcHJvY19jcmVhdGUoZGl2YXNfcHJvY19uYW1lLCBTX0lGUkVHIHwgU19JUlVHTywgcHJvY19uZXRfZWljb24sCi0JCSAgICAmZGl2YXNfZm9wcyk7CisJZGl2YXNfcHJvY19lbnRyeSA9IHByb2NfY3JlYXRlKGRpdmFzX3Byb2NfbmFtZSwgU19JRlJFRyB8IFNfSVJVR08sCisJCQkJCXByb2NfbmV0X2VpY29uLCAmZGl2YXNfZm9wcyk7CiAJaWYgKCFkaXZhc19wcm9jX2VudHJ5KQogCQlyZXR1cm4gKDApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaHlzZG4vaHlzZG5fcHJvY2NvbmYuYyBiL2RyaXZlcnMvaXNkbi9oeXNkbi9oeXNkbl9wcm9jY29uZi5jCmluZGV4IDE1OTA2ZDAuLjQ4NDI5OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9oeXNkbi9oeXNkbl9wcm9jY29uZi5jCisrKyBiL2RyaXZlcnMvaXNkbi9oeXNkbi9oeXNkbl9wcm9jY29uZi5jCkBAIC0yMDcsMzAgKzIwNywxNyBAQAogLyogcmVhZCBjb25mIGZpbGUgLT4gb3V0cHV0IGNhcmQgaW5mbyBkYXRhICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzc2l6ZV90Ci1oeXNkbl9jb25mX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICogb2ZmKQoraHlzZG5fY29uZl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqb2ZmKQogewogCWNoYXIgKmNwOwotCWludCBpOwogCi0JaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpIHsKLQkJaWYgKCEoY3AgPSBmaWxlLT5wcml2YXRlX2RhdGEpKQotCQkJcmV0dXJuICgtRUZBVUxUKTsJLyogc2hvdWxkIG5ldmVyIGhhcHBlbiAqLwotCQlpID0gc3RybGVuKGNwKTsJLyogZ2V0IHRvdGFsIHN0cmluZyBsZW5ndGggKi8KLQkJaWYgKCpvZmYgPCBpKSB7Ci0JCQkvKiBzdGlsbCBieXRlcyB0byB0cmFuc2ZlciAqLwotCQkJY3AgKz0gKm9mZjsJLyogcG9pbnQgdG8gZGVzaXJlZCBkYXRhIG9mZnNldCAqLwotCQkJaSAtPSAqb2ZmOwkvKiByZW1haW5pbmcgbGVuZ3RoICovCi0JCQlpZiAoaSA+IGNvdW50KQotCQkJCWkgPSBjb3VudDsJLyogbGltaXQgbGVuZ3RoIHRvIHRyYW5zZmVyICovCi0JCQlpZiAoY29weV90b191c2VyKGJ1ZiwgY3AsIGkpKQotCQkJCXJldHVybiAoLUVGQVVMVCk7CS8qIGNvcHkgZXJyb3IgKi8KLQkJCSpvZmYgKz0gaTsJLyogYWRqdXN0IG9mZnNldCAqLwotCQl9IGVsc2UKLQkJCXJldHVybiAoMCk7Ci0JfSBlbHNlCi0JCXJldHVybiAoLUVQRVJNKTsJLyogbm8gcGVybWlzc2lvbiB0byByZWFkICovCisJaWYgKCEoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkpCisJCXJldHVybiAtRVBFUk07CS8qIG5vIHBlcm1pc3Npb24gdG8gcmVhZCAqLwogCi0JcmV0dXJuIChpKTsKKwlpZiAoIShjcCA9IGZpbGUtPnByaXZhdGVfZGF0YSkpCisJCXJldHVybiAtRUZBVUxUOwkvKiBzaG91bGQgbmV2ZXIgaGFwcGVuICovCisKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgb2ZmLCBjcCwgc3RybGVuKGNwKSk7CiB9CQkJCS8qIGh5c2RuX2NvbmZfcmVhZCAqLwogCiAvKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2k0bC9pc2RuX2NvbW1vbi5jIGIvZHJpdmVycy9pc2RuL2k0bC9pc2RuX2NvbW1vbi5jCmluZGV4IDBmM2M2NmQuLjcxODhjNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9jb21tb24uYworKysgYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fY29tbW9uLmMKQEAgLTE3MzIsNyArMTczMiw3IEBACiAJaW50IGNoaWR4OwogCWludCByZXR2YWwgPSAtRU5PREVWOwogCi0KKwlsb2NrX2tlcm5lbCgpOwogCWlmIChtaW5vciA9PSBJU0ROX01JTk9SX1NUQVRVUykgewogCQlpbmZvc3RydWN0ICpwOwogCkBAIC0xNzgzLDYgKzE3ODMsNyBAQAogI2VuZGlmCiAgb3V0OgogCW5vbnNlZWthYmxlX29wZW4oaW5vLCBmaWxlcCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTE5NzcsOCArMTk3OCwxMCBAQAogCWlmICghc2tiKQogCQlyZXR1cm4gLUVOT01FTTsKIAlza2JfcmVzZXJ2ZShza2IsIGhsKTsKLQlpZiAoY29weV9mcm9tX3VzZXIoc2tiX3B1dChza2IsIGxlbiksIGJ1ZiwgbGVuKSkKKwlpZiAoY29weV9mcm9tX3VzZXIoc2tiX3B1dChza2IsIGxlbiksIGJ1ZiwgbGVuKSkgeworCQlkZXZfa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybiAtRUZBVUxUOworCX0KIAlyZXQgPSBkZXYtPmRydltkcnZpZHhdLT5pbnRlcmZhY2UtPndyaXRlYnVmX3NrYihkcnZpZHgsIGNoYW4sIDEsIHNrYik7CiAJaWYgKHJldCA8PSAwKQogCQlkZXZfa2ZyZWVfc2tiKHNrYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vc2MvaW9jdGwuYyBiL2RyaXZlcnMvaXNkbi9zYy9pb2N0bC5jCmluZGV4IDc4MTdkMjIuLjEwODEwOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9zYy9pb2N0bC5jCisrKyBiL2RyaXZlcnMvaXNkbi9zYy9pb2N0bC5jCkBAIC0yMjYsNiArMjI2LDcgQEAKIAkJICovCiAJCWlmIChjb3B5X2Zyb21fdXNlcihzcGlkLCBkYXRhLT5kYXRhcHRyLCBTQ0lPQ19TUElEU0laRSkpIHsKIAkJCWtmcmVlKHJjdm1zZyk7CisJCQlrZnJlZShzcGlkKTsKIAkJCXJldHVybiAtRUZBVUxUOwogCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGd1ZXN0L0tjb25maWcgYi9kcml2ZXJzL2xndWVzdC9LY29uZmlnCmluZGV4IDZiOGRiYjkuLjc2ZjJiMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGd1ZXN0L0tjb25maWcKKysrIGIvZHJpdmVycy9sZ3Vlc3QvS2NvbmZpZwpAQCAtMSw2ICsxLDYgQEAKIGNvbmZpZyBMR1VFU1QKIAl0cmlzdGF0ZSAiTGludXggaHlwZXJ2aXNvciBleGFtcGxlIGNvZGUiCi0JZGVwZW5kcyBvbiBYODZfMzIgJiYgRVhQRVJJTUVOVEFMICYmICFYODZfUEFFICYmIEZVVEVYICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQorCWRlcGVuZHMgb24gWDg2XzMyICYmIEVYUEVSSU1FTlRBTCAmJiAhWDg2X1BBRSAmJiBGVVRFWCAmJiAhWDg2X1ZPWUFHRVIKIAlzZWxlY3QgSFZDX0RSSVZFUgogCS0tLWhlbHAtLS0KIAkgIFRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBtb2R1bGUgd2hpY2ggYWxsb3dzIHlvdSB0byBydW4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGd1ZXN0L2xnLmggYi9kcml2ZXJzL2xndWVzdC9sZy5oCmluZGV4IDAwNWJkMDQuLjVmYWVmZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGd1ZXN0L2xnLmgKKysrIGIvZHJpdmVycy9sZ3Vlc3QvbGcuaApAQCAtMTM2LDcgKzEzNiw2IEBACiAgKiBmaXJzdCBzdGVwIGluIHRoZSBtaWdyYXRpb24gdG8gdGhlIGtlcm5lbCB0eXBlcy4gIHB0ZV9wZm4gaXMgYWxyZWFkeSBkZWZpbmVkCiAgKiBpbiB0aGUga2VybmVsLiAqLwogI2RlZmluZSBwZ2RfZmxhZ3MoeCkJKHBnZF92YWwoeCkgJiB+UEFHRV9NQVNLKQotI2RlZmluZSBwdGVfZmxhZ3MoeCkJKHB0ZV92YWwoeCkgJiB+UEFHRV9NQVNLKQogI2RlZmluZSBwZ2RfcGZuKHgpCShwZ2RfdmFsKHgpID4+IFBBR0VfU0hJRlQpCiAKIC8qIGludGVycnVwdHNfYW5kX3RyYXBzLmM6ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xndWVzdC94ODYvY29yZS5jIGIvZHJpdmVycy9sZ3Vlc3QveDg2L2NvcmUuYwppbmRleCA1MTI2ZDVkLi4yZTU1NGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC94ODYvY29yZS5jCisrKyBiL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3JlLmMKQEAgLTE3Niw3ICsxNzYsNyBAQAogCSAqIHdlIHNldCBpdCBub3csIHNvIHdlIGNhbiB0cmFwIGFuZCBwYXNzIHRoYXQgdHJhcCB0byB0aGUgR3Vlc3QgaWYgaXQKIAkgKiB1c2VzIHRoZSBGUFUuICovCiAJaWYgKGNwdS0+dHMpCi0JCWxndWVzdF9zZXRfdHMoKTsKKwkJdW5sYXp5X2ZwdShjdXJyZW50KTsKIAogCS8qIFNZU0VOVEVSIGlzIGFuIG9wdGltaXplZCB3YXkgb2YgZG9pbmcgc3lzdGVtIGNhbGxzLiAgV2UgY2FuJ3QgYWxsb3cKIAkgKiBpdCBiZWNhdXNlIGl0IGFsd2F5cyBqdW1wcyB0byBwcml2aWxlZ2UgbGV2ZWwgMC4gIEEgbm9ybWFsIEd1ZXN0CkBAIC0xOTYsNiArMTk2LDEwIEBACiAJICogdHJhcCBtYWRlIHRoZSBzd2l0Y2hlciBjb2RlIGNvbWUgYmFjaywgYW5kIGFuIGVycm9yIGNvZGUgd2hpY2ggc29tZQogCSAqIHRyYXBzIHNldC4gICovCiAKKwkgLyogUmVzdG9yZSBTWVNFTlRFUiBpZiBpdCdzIHN1cHBvc2VkIHRvIGJlIG9uLiAqLworCSBpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NFUCkpCisJCXdybXNyKE1TUl9JQTMyX1NZU0VOVEVSX0NTLCBfX0tFUk5FTF9DUywgMCk7CisKIAkvKiBJZiB0aGUgR3Vlc3QgcGFnZSBmYXVsdGVkLCB0aGVuIHRoZSBjcjIgcmVnaXN0ZXIgd2lsbCB0ZWxsIHVzIHRoZQogCSAqIGJhZCB2aXJ0dWFsIGFkZHJlc3MuICBXZSBoYXZlIHRvIGdyYWIgdGhpcyBub3csIGJlY2F1c2Ugb25jZSB3ZQogCSAqIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGFuIGludGVycnVwdCBjb3VsZCBmYXVsdCBhbmQgdGh1cyBvdmVyd3JpdGUKQEAgLTIwMywxMyArMjA3LDEyIEBACiAJaWYgKGNwdS0+cmVncy0+dHJhcG51bSA9PSAxNCkKIAkJY3B1LT5hcmNoLmxhc3RfcGFnZWZhdWx0ID0gcmVhZF9jcjIoKTsKIAkvKiBTaW1pbGFybHksIGlmIHdlIHRvb2sgYSB0cmFwIGJlY2F1c2UgdGhlIEd1ZXN0IHVzZWQgdGhlIEZQVSwKLQkgKiB3ZSBoYXZlIHRvIHJlc3RvcmUgdGhlIEZQVSBpdCBleHBlY3RzIHRvIHNlZS4gKi8KKwkgKiB3ZSBoYXZlIHRvIHJlc3RvcmUgdGhlIEZQVSBpdCBleHBlY3RzIHRvIHNlZS4KKwkgKiBtYXRoX3N0YXRlX3Jlc3RvcmUoKSBtYXkgc2xlZXAgYW5kIHdlIG1heSBldmVuIG1vdmUgb2ZmIHRvCisJICogYSBkaWZmZXJlbnQgQ1BVLiBTbyBhbGwgdGhlIGNyaXRpY2FsIHN0dWZmIHNob3VsZCBiZSBkb25lCisJICogYmVmb3JlIHRoaXMuICAqLwogCWVsc2UgaWYgKGNwdS0+cmVncy0+dHJhcG51bSA9PSA3KQogCQltYXRoX3N0YXRlX3Jlc3RvcmUoKTsKLQotCS8qIFJlc3RvcmUgU1lTRU5URVIgaWYgaXQncyBzdXBwb3NlZCB0byBiZSBvbi4gKi8KLQlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NFUCkpCi0JCXdybXNyKE1TUl9JQTMyX1NZU0VOVEVSX0NTLCBfX0tFUk5FTF9DUywgMCk7CiB9CiAKIC8qSDoxMzAgTm93IHdlJ3ZlIGV4YW1pbmVkIHRoZSBoeXBlcmNhbGwgY29kZTsgb3VyIEd1ZXN0IGNhbiBtYWtlIHJlcXVlc3RzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvYWRiLmMgYi9kcml2ZXJzL21hY2ludG9zaC9hZGIuYwppbmRleCBkYmFhZDM5Li40MGM3MGJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC9hZGIuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9hZGIuYwpAQCAtNjQ0LDEyICs2NDQsMTggQEAKIHN0YXRpYyBpbnQgYWRiX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJc3RydWN0IGFkYmRldl9zdGF0ZSAqc3RhdGU7CisJaW50IHJldCA9IDA7CiAKLQlpZiAoaW1pbm9yKGlub2RlKSA+IDAgfHwgYWRiX2NvbnRyb2xsZXIgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTlhJTzsKKwlsb2NrX2tlcm5lbCgpOworCWlmIChpbWlub3IoaW5vZGUpID4gMCB8fCBhZGJfY29udHJvbGxlciA9PSBOVUxMKSB7CisJCXJldCA9IC1FTlhJTzsKKwkJZ290byBvdXQ7CisJfQogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGFkYmRldl9zdGF0ZSksIEdGUF9LRVJORUwpOwotCWlmIChzdGF0ZSA9PSAwKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoc3RhdGUgPT0gMCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gc3RhdGU7CiAJc3Bpbl9sb2NrX2luaXQoJnN0YXRlLT5sb2NrKTsKIAlhdG9taWNfc2V0KCZzdGF0ZS0+bl9wZW5kaW5nLCAwKTsKQEAgLTY1Nyw3ICs2NjMsOSBAQAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnN0YXRlLT53YWl0X3F1ZXVlKTsKIAlzdGF0ZS0+aW51c2UgPSAxOwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgYWRiX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21hY2ludG9zaC9hbnMtbGNkLmMgYi9kcml2ZXJzL21hY2ludG9zaC9hbnMtbGNkLmMKaW5kZXggNzNjNTBiYy4uNmE4MjIxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvYW5zLWxjZC5jCisrKyBiL2RyaXZlcnMvbWFjaW50b3NoL2Fucy1sY2QuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMTE5LDYgKzEyMCw3IEBACiBzdGF0aWMgaW50CiBhbnNsY2Rfb3Blbiggc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvbWVkaWFiYXkuYyBiL2RyaXZlcnMvbWFjaW50b3NoL21lZGlhYmF5LmMKaW5kZXggODJhZGQyNi4uODE4YWJhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvbWVkaWFiYXkuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9tZWRpYWJheS5jCkBAIC04NCw3ICs4NCw3IEBACiAJaW50CQkJCWNkX2lycTsKIAlpbnQJCQkJY2RfcmV0cnk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lERV9QTUFDKSB8fCBkZWZpbmVkKENPTkZJR19NQUNfRkxPUFBZKQorI2lmIGRlZmluZWQoQ09ORklHX0JMS19ERVZfSURFX1BNQUMpCiAJaW50IAkJCQljZF9pbmRleDsKICNlbmRpZgogfTsKQEAgLTQxNyw2ICs0MTcsNyBAQAogCX0KIH0KIAorI2lmZGVmIENPTkZJR19CTEtfREVWX0lERV9QTUFDCiBpbnQgY2hlY2tfbWVkaWFfYmF5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqd2hpY2hfYmF5LCBpbnQgd2hhdCkKIHsKIAlpbnQJaTsKQEAgLTQzMiw3ICs0MzMsNiBAQAogfQogRVhQT1JUX1NZTUJPTChjaGVja19tZWRpYV9iYXkpOwogCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSURFX1BNQUMKIGludCBjaGVja19tZWRpYV9iYXlfYnlfYmFzZSh1bnNpZ25lZCBsb25nIGJhc2UsIGludCB3aGF0KQogewogCWludAlpOwpAQCAtNTU2LDcgKzU1Niw4IEBACiAJCQkJcHJpbnRrKCJtZWRpYWJheSAlZCwgcmVnaXN0ZXJpbmcgSURFLi4uXG4iLCBpKTsKIAkJCQlwbXVfc3VzcGVuZCgpOwogCQkJCWlkZV9wb3J0X3NjYW4oYmF5LT5jZF9wb3J0KTsKLQkJCQliYXktPmNkX2luZGV4ID0gYmF5LT5jZF9wb3J0LT5pbmRleDsKKwkJCQlpZiAoYmF5LT5jZF9wb3J0LT5wcmVzZW50KQorCQkJCQliYXktPmNkX2luZGV4ID0gYmF5LT5jZF9wb3J0LT5pbmRleDsKIAkJCQlwbXVfcmVzdW1lKCk7CiAJCQl9CiAJCQlpZiAoYmF5LT5jZF9pbmRleCA9PSAtMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvc211LmMgYi9kcml2ZXJzL21hY2ludG9zaC9zbXUuYwppbmRleCA3N2FkMTkyLi4zMmNiMDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC9zbXUuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9zbXUuYwpAQCAtMTksNiArMTksNyBAQAogICogICAgdGhlIHVzZXJsYW5kIGludGVyZmFjZQogICovCiAKKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC00ODMsMTIgKzQ4NCwxNSBAQAogCiAJaWYgKHNtdV9jbWRidWZfYWJzID09IDApIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJTTVU6IENvbW1hbmQgYnVmZmVyIG5vdCBhbGxvY2F0ZWQgIVxuIik7CisJCW9mX25vZGVfcHV0KG5wKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJc211ID0gYWxsb2NfYm9vdG1lbShzaXplb2Yoc3RydWN0IHNtdV9kZXZpY2UpKTsKLQlpZiAoc211ID09IE5VTEwpCisJaWYgKHNtdSA9PSBOVUxMKSB7CisJCW9mX25vZGVfcHV0KG5wKTsKIAkJcmV0dXJuIC1FTk9NRU07CisJfQogCW1lbXNldChzbXUsIDAsIHNpemVvZigqc211KSk7CiAKIAlzcGluX2xvY2tfaW5pdCgmc211LT5sb2NrKTsKQEAgLTEwODMsMTAgKzEwODcsMTIgQEAKIAlwcC0+bW9kZSA9IHNtdV9maWxlX2NvbW1hbmRzOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnBwLT53YWl0KTsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNtdV9jbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9hZGQoJnBwLT5saXN0LCAmc211X2NsaXN0KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzbXVfY2xpc3RfbG9jaywgZmxhZ3MpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHBwOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jIGIvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jCmluZGV4IDU0ZjQ5NDIuLjUzNjZkYzkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC90aGVybV9hZHQ3NDZ4LmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jCkBAIC01NjIsMTggKzU2MiwyNCBAQAogCQl0aGVybV90eXBlID0gQURUNzQ2MDsKIAllbHNlIGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgImFkdDc0NjciKSkKIAkJdGhlcm1fdHlwZSA9IEFEVDc0Njc7Ci0JZWxzZQorCWVsc2UgeworCQlvZl9ub2RlX3B1dChucCk7CiAJCXJldHVybiAtRU5PREVWOworCX0KIAogCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJod3NlbnNvci1wYXJhbXMtdmVyc2lvbiIsIE5VTEwpOwogCXByaW50ayhLRVJOX0lORk8gImFkdDc0Nng6IHZlcnNpb24gJWQgKCVzc3VwcG9ydGVkKVxuIiwgKnByb3AsCiAJCQkgKCpwcm9wID09IDEpPyIiOiJ1biIpOwotCWlmICgqcHJvcCAhPSAxKQorCWlmICgqcHJvcCAhPSAxKSB7CisJCW9mX25vZGVfcHV0KG5wKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJcHJvcCA9IG9mX2dldF9wcm9wZXJ0eShucCwgInJlZyIsIE5VTEwpOwotCWlmICghcHJvcCkKKwlpZiAoIXByb3ApIHsKKwkJb2Zfbm9kZV9wdXQobnApOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAkvKiBsb29rIGZvciBidXMgZWl0aGVyIGJ5IHBhdGggb3IgdXNpbmcgInJlZyIgKi8KIAlpZiAoc3Ryc3RyKG5wLT5mdWxsX25hbWUsICIvaTJjLWJ1c0AiKSAhPSBOVUxMKSB7CkBAIC02MTAsNiArNjE2LDcgQEAKIAkKIAlpZiAob2ZfZGV2ID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJDYW4ndCByZWdpc3RlciB0ZW1wZXJhdHVyZXMgZGV2aWNlICFcbiIpOworCQlvZl9ub2RlX3B1dChucCk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYyBiL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYwppbmRleCBkNjM2NWE5Li5kNTI0ZGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC92aWEtcG11LmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvdmlhLXBtdS5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKgogICovCiAjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC0yMDQ3LDYgKzIwNDgsNyBAQAogCXBwLT5yYl9nZXQgPSBwcC0+cmJfcHV0ID0gMDsKIAlzcGluX2xvY2tfaW5pdCgmcHAtPmxvY2spOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnBwLT53YWl0KTsKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZhbGxfcHZ0X2xvY2ssIGZsYWdzKTsKICNpZiBkZWZpbmVkKENPTkZJR19JTlBVVF9BREJISUQpICYmIGRlZmluZWQoQ09ORklHX1BNQUNfQkFDS0xJR0hUKQogCXBwLT5iYWNrbGlnaHRfbG9ja2VyID0gMDsKQEAgLTIwNTQsNiArMjA1Niw3IEBACiAJbGlzdF9hZGQoJnBwLT5saXN0LCAmYWxsX3BtdV9wdnQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFsbF9wdnRfbG9jaywgZmxhZ3MpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHBwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1jcnlwdC5jIGIvZHJpdmVycy9tZC9kbS1jcnlwdC5jCmluZGV4IDgzNWRlZjEuLmFiNmE2MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tY3J5cHQuYworKysgYi9kcml2ZXJzL21kL2RtLWNyeXB0LmMKQEAgLTQzMiw2ICs0MzIsNyBAQAogCQljYXNlIDA6CiAJCQlhdG9taWNfZGVjKCZjdHgtPnBlbmRpbmcpOwogCQkJY3R4LT5zZWN0b3IrKzsKKwkJCWNvbmRfcmVzY2hlZCgpOwogCQkJY29udGludWU7CiAKIAkJLyogZXJyb3IgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbGluZWFyLmMgYi9kcml2ZXJzL21kL2xpbmVhci5jCmluZGV4IDEwNzQ4MjQuLjZhODY2ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvbGluZWFyLmMKKysrIGIvZHJpdmVycy9tZC9saW5lYXIuYwpAQCAtNTAsMTcgKzUwLDE5IEBACiAvKioKICAqCWxpbmVhcl9tZXJnZWFibGVfYnZlYyAtLSB0ZWxsIGJpbyBsYXllciBpZiB0d28gcmVxdWVzdHMgY2FuIGJlIG1lcmdlZAogICoJQHE6IHJlcXVlc3QgcXVldWUKLSAqCUBiaW86IHRoZSBidWZmZXIgaGVhZCB0aGF0J3MgYmVlbiBidWlsdCB1cCBzbyBmYXIKKyAqCUBidm06IHByb3BlcnRpZXMgb2YgbmV3IGJpbwogICoJQGJpb3ZlYzogdGhlIHJlcXVlc3QgdGhhdCBjb3VsZCBiZSBtZXJnZWQgdG8gaXQuCiAgKgogICoJUmV0dXJuIGFtb3VudCBvZiBieXRlcyB3ZSBjYW4gdGFrZSBhdCB0aGlzIG9mZnNldAogICovCi1zdGF0aWMgaW50IGxpbmVhcl9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQorc3RhdGljIGludCBsaW5lYXJfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCQkJIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQkgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKIAlkZXZfaW5mb190ICpkZXYwOwotCXVuc2lnbmVkIGxvbmcgbWF4c2VjdG9ycywgYmlvX3NlY3RvcnMgPSBiaW8tPmJpX3NpemUgPj4gOTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJdW5zaWduZWQgbG9uZyBtYXhzZWN0b3JzLCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OworCXNlY3Rvcl90IHNlY3RvciA9IGJ2bS0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYnZtLT5iaV9iZGV2KTsKIAogCWRldjAgPSB3aGljaF9kZXYobWRkZXYsIHNlY3Rvcik7CiAJbWF4c2VjdG9ycyA9IChkZXYwLT5zaXplIDw8IDEpIC0gKHNlY3RvciAtIChkZXYwLT5vZmZzZXQ8PDEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbWQuYyBiL2RyaXZlcnMvbWQvbWQuYwppbmRleCA3Y2Y1MTJhLi4yNTgwYWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL21kLmMKKysrIGIvZHJpdmVycy9tZC9tZC5jCkBAIC0zODk3LDggKzM4OTcsMTAgQEAKIAogCQltZF9wcm9iZShkZXYsIE5VTEwsIE5VTEwpOwogCQltZGRldiA9IG1kZGV2X2ZpbmQoZGV2KTsKLQkJaWYgKCFtZGRldikgewotCQkJcHJpbnRrKEtFUk5fRVJSIAorCQlpZiAoIW1kZGV2IHx8ICFtZGRldi0+Z2VuZGlzaykgeworCQkJaWYgKG1kZGV2KQorCQkJCW1kZGV2X3B1dChtZGRldik7CisJCQlwcmludGsoS0VSTl9FUlIKIAkJCQkibWQ6IGNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIG1kIGRyaXZlLlxuIik7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMC5jIGIvZHJpdmVycy9tZC9yYWlkMC5jCmluZGV4IDkxNGMwNGQuLmJjYmI4MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDAuYworKysgYi9kcml2ZXJzL21kL3JhaWQwLmMKQEAgLTI0MSwxOCArMjQxLDIwIEBACiAvKioKICAqCXJhaWQwX21lcmdlYWJsZV9idmVjIC0tIHRlbGwgYmlvIGxheWVyIGlmIGEgdHdvIHJlcXVlc3RzIGNhbiBiZSBtZXJnZWQKICAqCUBxOiByZXF1ZXN0IHF1ZXVlCi0gKglAYmlvOiB0aGUgYnVmZmVyIGhlYWQgdGhhdCdzIGJlZW4gYnVpbHQgdXAgc28gZmFyCisgKglAYnZtOiBwcm9wZXJ0aWVzIG9mIG5ldyBiaW8KICAqCUBiaW92ZWM6IHRoZSByZXF1ZXN0IHRoYXQgY291bGQgYmUgbWVyZ2VkIHRvIGl0LgogICoKICAqCVJldHVybiBhbW91bnQgb2YgYnl0ZXMgd2UgY2FuIGFjY2VwdCBhdCB0aGlzIG9mZnNldAogICovCi1zdGF0aWMgaW50IHJhaWQwX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW9fdmVjICpiaW92ZWMpCitzdGF0aWMgaW50IHJhaWQwX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQlzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQogewogCW1kZGV2X3QgKm1kZGV2ID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHNlY3RvciA9IGJpby0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYmlvLT5iaV9iZGV2KTsKKwlzZWN0b3JfdCBzZWN0b3IgPSBidm0tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJ2bS0+YmlfYmRldik7CiAJaW50IG1heDsKIAl1bnNpZ25lZCBpbnQgY2h1bmtfc2VjdG9ycyA9IG1kZGV2LT5jaHVua19zaXplID4+IDk7Ci0JdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYmlvLT5iaV9zaXplID4+IDk7CisJdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYnZtLT5iaV9zaXplID4+IDk7CiAKIAltYXggPSAgKGNodW5rX3NlY3RvcnMgLSAoKHNlY3RvciAmIChjaHVua19zZWN0b3JzIC0gMSkpICsgYmlvX3NlY3RvcnMpKSA8PCA5OwogCWlmIChtYXggPCAwKSBtYXggPSAwOyAvKiBiaW9fYWRkIGNhbm5vdCBoYW5kbGUgYSBuZWdhdGl2ZSByZXR1cm4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEwLmMgYi9kcml2ZXJzL21kL3JhaWQxMC5jCmluZGV4IDFkZTE3ZGEuLjIyYmIyYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEwLmMKKysrIGIvZHJpdmVycy9tZC9yYWlkMTAuYwpAQCAtNDM5LDI2ICs0MzksMjcgQEAKIC8qKgogICoJcmFpZDEwX21lcmdlYWJsZV9idmVjIC0tIHRlbGwgYmlvIGxheWVyIGlmIGEgdHdvIHJlcXVlc3RzIGNhbiBiZSBtZXJnZWQKICAqCUBxOiByZXF1ZXN0IHF1ZXVlCi0gKglAYmlvOiB0aGUgYnVmZmVyIGhlYWQgdGhhdCdzIGJlZW4gYnVpbHQgdXAgc28gZmFyCisgKglAYnZtOiBwcm9wZXJ0aWVzIG9mIG5ldyBiaW8KICAqCUBiaW92ZWM6IHRoZSByZXF1ZXN0IHRoYXQgY291bGQgYmUgbWVyZ2VkIHRvIGl0LgogICoKICAqCVJldHVybiBhbW91bnQgb2YgYnl0ZXMgd2UgY2FuIGFjY2VwdCBhdCB0aGlzIG9mZnNldAogICogICAgICBJZiBuZWFyX2NvcGllcyA9PSByYWlkX2Rpc2ssIHRoZXJlIGFyZSBubyBzdHJpcGluZyBpc3N1ZXMsCiAgKiAgICAgIGJ1dCBpbiB0aGF0IGNhc2UsIHRoZSBmdW5jdGlvbiBpc24ndCBjYWxsZWQgYXQgYWxsLgogICovCi1zdGF0aWMgaW50IHJhaWQxMF9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLAotCQkJCXN0cnVjdCBiaW9fdmVjICpiaW9fdmVjKQorc3RhdGljIGludCByYWlkMTBfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCQkJIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQkgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJc2VjdG9yX3Qgc2VjdG9yID0gYnZtLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChidm0tPmJpX2JkZXYpOwogCWludCBtYXg7CiAJdW5zaWduZWQgaW50IGNodW5rX3NlY3RvcnMgPSBtZGRldi0+Y2h1bmtfc2l6ZSA+PiA5OwotCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJpby0+Ymlfc2l6ZSA+PiA5OworCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OwogCiAJbWF4ID0gIChjaHVua19zZWN0b3JzIC0gKChzZWN0b3IgJiAoY2h1bmtfc2VjdG9ycyAtIDEpKSArIGJpb19zZWN0b3JzKSkgPDwgOTsKIAlpZiAobWF4IDwgMCkgbWF4ID0gMDsgLyogYmlvX2FkZCBjYW5ub3QgaGFuZGxlIGEgbmVnYXRpdmUgcmV0dXJuICovCi0JaWYgKG1heCA8PSBiaW9fdmVjLT5idl9sZW4gJiYgYmlvX3NlY3RvcnMgPT0gMCkKLQkJcmV0dXJuIGJpb192ZWMtPmJ2X2xlbjsKKwlpZiAobWF4IDw9IGJpb3ZlYy0+YnZfbGVuICYmIGJpb19zZWN0b3JzID09IDApCisJCXJldHVybiBiaW92ZWMtPmJ2X2xlbjsKIAllbHNlCiAJCXJldHVybiBtYXg7CiB9CkBAIC0yMTM3LDYgKzIxMzgsOCBAQAogCQkgICAgIXRlc3RfYml0KEluX3N5bmMsICZkaXNrLT5yZGV2LT5mbGFncykpIHsKIAkJCWRpc2stPmhlYWRfcG9zaXRpb24gPSAwOwogCQkJbWRkZXYtPmRlZ3JhZGVkKys7CisJCQlpZiAoZGlzay0+cmRldikKKwkJCQljb25mLT5mdWxsc3luYyA9IDE7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUuYyBiL2RyaXZlcnMvbWQvcmFpZDUuYwppbmRleCBjMzdlMjU2Li45Y2U3MTU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQ1LmMKKysrIGIvZHJpdmVycy9tZC9yYWlkNS5jCkBAIC0yMDE3LDEyICsyMDE3LDcgQEAKIAkJCSAqLwogCQkJcy0+dXB0b2RhdGUrKzsKIAkJCXJldHVybiAwOyAvKiB1cHRvZGF0ZSArIGNvbXB1dGUgPT0gZGlza3MgKi8KLQkJfSBlbHNlIGlmICgocy0+dXB0b2RhdGUgPCBkaXNrcyAtIDEpICYmCi0JCQl0ZXN0X2JpdChSNV9JbnN5bmMsICZkZXYtPmZsYWdzKSkgewotCQkJLyogTm90ZTogd2UgaG9sZCBvZmYgY29tcHV0ZSBvcGVyYXRpb25zIHdoaWxlIGNoZWNrcyBhcmUKLQkJCSAqIGluIGZsaWdodCwgYnV0IHdlIHN0aWxsIHByZWZlciAnY29tcHV0ZScgb3ZlciAncmVhZCcKLQkJCSAqIGhlbmNlIHdlIG9ubHkgcmVhZCBpZiAodXB0b2RhdGUgPCAqIGRpc2tzLTEpCi0JCQkgKi8KKwkJfSBlbHNlIGlmICh0ZXN0X2JpdChSNV9JbnN5bmMsICZkZXYtPmZsYWdzKSkgewogCQkJc2V0X2JpdChSNV9MT0NLRUQsICZkZXYtPmZsYWdzKTsKIAkJCXNldF9iaXQoUjVfV2FudHJlYWQsICZkZXYtPmZsYWdzKTsKIAkJCWlmICghdGVzdF9hbmRfc2V0X2JpdChTVFJJUEVfT1BfSU8sICZzaC0+b3BzLnBlbmRpbmcpKQpAQCAtMjg5OCw2ICsyODkzLDggQEAKIAogCQlmb3IgKGkgPSBjb25mLT5yYWlkX2Rpc2tzOyBpLS07ICkgewogCQkJc2V0X2JpdChSNV9XYW50d3JpdGUsICZzaC0+ZGV2W2ldLmZsYWdzKTsKKwkJCXNldF9iaXQoUjVfTE9DS0VELCAmZGV2LT5mbGFncyk7CisJCQlzLmxvY2tlZCsrOwogCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFNUUklQRV9PUF9JTywgJnNoLT5vcHMucGVuZGluZykpCiAJCQkJc2gtPm9wcy5jb3VudCsrOwogCQl9CkBAIC0yOTExLDYgKzI5MDgsNyBAQAogCQkJY29uZi0+cmFpZF9kaXNrcyk7CiAJCXMubG9ja2VkICs9IGhhbmRsZV93cml0ZV9vcGVyYXRpb25zNShzaCwgMSwgMSk7CiAJfSBlbHNlIGlmIChzLmV4cGFuZGVkICYmCisJCSAgIHMubG9ja2VkID09IDAgJiYKIAkJIXRlc3RfYml0KFNUUklQRV9PUF9QT1NUWE9SLCAmc2gtPm9wcy5wZW5kaW5nKSkgewogCQljbGVhcl9iaXQoU1RSSVBFX0VYUEFORF9SRUFEWSwgJnNoLT5zdGF0ZSk7CiAJCWF0b21pY19kZWMoJmNvbmYtPnJlc2hhcGVfc3RyaXBlcyk7CkBAIC0zMzE2LDE1ICszMzE0LDE3IEBACiAvKiBXZSB3YW50IHJlYWQgcmVxdWVzdHMgdG8gYWxpZ24gd2l0aCBjaHVua3Mgd2hlcmUgcG9zc2libGUsCiAgKiBidXQgd3JpdGUgcmVxdWVzdHMgZG9uJ3QgbmVlZCB0by4KICAqLwotc3RhdGljIGludCByYWlkNV9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQorc3RhdGljIGludCByYWlkNV9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKKwkJCQlzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhICpidm0sCisJCQkJc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJc2VjdG9yX3Qgc2VjdG9yID0gYnZtLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChidm0tPmJpX2JkZXYpOwogCWludCBtYXg7CiAJdW5zaWduZWQgaW50IGNodW5rX3NlY3RvcnMgPSBtZGRldi0+Y2h1bmtfc2l6ZSA+PiA5OwotCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJpby0+Ymlfc2l6ZSA+PiA5OworCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OwogCi0JaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFdSSVRFKQorCWlmICgoYnZtLT5iaV9ydyAmIDEpID09IFdSSVRFKQogCQlyZXR1cm4gYmlvdmVjLT5idl9sZW47IC8qIGFsd2F5cyBhbGxvdyB3cml0ZXMgdG8gYmUgbWVyZ2VhYmxlICovCiAKIAltYXggPSAgKGNodW5rX3NlY3RvcnMgLSAoKHNlY3RvciAmIChjaHVua19zZWN0b3JzIC0gMSkpICsgYmlvX3NlY3RvcnMpKSA8PCA5OwpAQCAtNDMwNSw3ICs0MzA1LDkgQEAKIAkJCQkiIGRpc2sgJWRcbiIsIGJkZXZuYW1lKHJkZXYtPmJkZXYsYiksCiAJCQkJcmFpZF9kaXNrKTsKIAkJCXdvcmtpbmdfZGlza3MrKzsKLQkJfQorCQl9IGVsc2UKKwkJCS8qIENhbm5vdCByZWx5IG9uIGJpdG1hcCB0byBjb21wbGV0ZSByZWNvdmVyeSAqLworCQkJY29uZi0+ZnVsbHN5bmMgPSAxOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi9pci1rZXltYXBzLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi9pci1rZXltYXBzLmMKaW5kZXggYTM0ODU4MS4uOGZhOTFmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vaXIta2V5bWFwcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL2lyLWtleW1hcHMuYwpAQCAtMjIwMSwzICsyMjAxLDQxIEBACiAJWzB4MjVdID0gS0VZX1BPV0VSLAkJLyogcG93ZXIgKi8KIH07CiBFWFBPUlRfU1lNQk9MX0dQTChpcl9jb2Rlc19wb3dlcmNvbG9yX3JlYWxfYW5nZWwpOworCitJUl9LRVlUQUJfVFlQRSBpcl9jb2Rlc19hdmVybWVkaWFfYTE2ZFtJUl9LRVlUQUJfU0laRV0gPSB7CisJWzB4MjBdID0gS0VZX0xJU1QsCisJWzB4MDBdID0gS0VZX1BPV0VSLAorCVsweDI4XSA9IEtFWV8xLAorCVsweDE4XSA9IEtFWV8yLAorCVsweDM4XSA9IEtFWV8zLAorCVsweDI0XSA9IEtFWV80LAorCVsweDE0XSA9IEtFWV81LAorCVsweDM0XSA9IEtFWV82LAorCVsweDJjXSA9IEtFWV83LAorCVsweDFjXSA9IEtFWV84LAorCVsweDNjXSA9IEtFWV85LAorCVsweDEyXSA9IEtFWV9TVUJUSVRMRSwKKwlbMHgyMl0gPSBLRVlfMCwKKwlbMHgzMl0gPSBLRVlfUkVXSU5ELAorCVsweDNhXSA9IEtFWV9TSFVGRkxFLAorCVsweDAyXSA9IEtFWV9QUklOVCwKKwlbMHgxMV0gPSBLRVlfQ0hBTk5FTERPV04sCisJWzB4MzFdID0gS0VZX0NIQU5ORUxVUCwKKwlbMHgwY10gPSBLRVlfWk9PTSwKKwlbMHgxZV0gPSBLRVlfVk9MVU1FRE9XTiwKKwlbMHgzZV0gPSBLRVlfVk9MVU1FVVAsCisJWzB4MGFdID0gS0VZX01VVEUsCisJWzB4MDRdID0gS0VZX0FVRElPLAorCVsweDI2XSA9IEtFWV9SRUNPUkQsCisJWzB4MDZdID0gS0VZX1BMQVksCisJWzB4MzZdID0gS0VZX1NUT1AsCisJWzB4MTZdID0gS0VZX1BBVVNFLAorCVsweDJlXSA9IEtFWV9SRVdJTkQsCisJWzB4MGVdID0gS0VZX0ZBU1RGT1JXQVJELAorCVsweDMwXSA9IEtFWV9URVhULAorCVsweDIxXSA9IEtFWV9HUkVFTiwKKwlbMHgwMV0gPSBLRVlfQkxVRSwKKwlbMHgwOF0gPSBLRVlfRVBHLAorCVsweDJhXSA9IEtFWV9NRU5VLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGlyX2NvZGVzX2F2ZXJtZWRpYV9hMTZkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1jb21tb24uYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1jb21tb24uYwppbmRleCBmMTg5NGZlLi42ZmI1YjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhMTgyNzEtY29tbW9uLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWNvbW1vbi5jCkBAIC02NDksOSArNjQ5LDE3IEBACiAJdTggdmFsOwogCiAJaW50IHJldCA9IHRkYTE4MjcxX2xvb2t1cF9tYXAoZmUsIFJGX0NBTCwgZnJlcSwgJnZhbCk7CisJLyogVGhlIFREQTE4MjcxSEQvQzEgcmZfY2FsIG1hcCBsb29rdXAgaXMgZXhwZWN0ZWQgdG8gZ28gb3V0IG9mIHJhbmdlCisJICogZm9yIGZyZXF1ZW5jaWVzIGFib3ZlIDYxLjEgTUh6LiAgSW4gdGhlc2UgY2FzZXMsIHRoZSBpbnRlcm5hbCBSRgorCSAqIHRyYWNraW5nIGZpbHRlcnMgY2FsaWJyYXRpb24gbWVjaGFuaXNtIGlzIHVzZWQuCisJICoKKwkgKiBUaGVyZSBpcyBubyBuZWVkIHRvIHdhcm4gdGhlIHVzZXIgYWJvdXQgdGhpcy4KKwkgKi8KKwlpZiAocmV0IDwgMCkKKwkJZ290byBmYWlsOwogCiAJcmVnc1tSX0VCMTRdID0gdmFsOwotCitmYWlsOgogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1mZS5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKaW5kZXggODljMDFmYi4uOTMwNjNjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKQEAgLTQ1LDYgKzQ1LDIxIEBACiAJCQkJCSAgIFREQTE4MjcxX01BSU5fUExMLCBmb3JjZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB0ZGExODI3MV9zZXRfaWZfbm90Y2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCit7CisJc3RydWN0IHRkYTE4MjcxX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKKwl1bnNpZ25lZCBjaGFyICpyZWdzID0gcHJpdi0+dGRhMTgyNzFfcmVnczsKKworCXN3aXRjaCAocHJpdi0+bW9kZSkgeworCWNhc2UgVERBMTgyNzFfQU5BTE9HOgorCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLworCQlicmVhazsKKwljYXNlIFREQTE4MjcxX0RJR0lUQUw6CisJCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KKwkJYnJlYWs7CisJfQorfQorCiBzdGF0aWMgaW50IHRkYTE4MjcxX2NoYW5uZWxfY29uZmlndXJhdGlvbihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwKIAkJCQkJICBzdHJ1Y3QgdGRhMTgyNzFfc3RkX21hcF9pdGVtICptYXAsCiAJCQkJCSAgdTMyIGZyZXEsIHUzMiBidykKQEAgLTYwLDI1ICs3NSwxOCBAQAogCXJlZ3NbUl9FUDNdICAmPSB+MHgxZjsgLyogY2xlYXIgc3RkIGJpdHMgKi8KIAlyZWdzW1JfRVAzXSAgfD0gKG1hcC0+YWdjX21vZGUgPDwgMykgfCBtYXAtPnN0ZDsKIAotCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KLQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKKwlpZiAocHJpdi0+aWQgPT0gVERBMTgyNzFIREMyKSB7CisJCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KKwkJcmVnc1tSX0VQM10gJj0gfjB4MDQ7CisJfQogCiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAJcmVnc1tSX0VQNF0gIHw9IChtYXAtPmlmX2x2bCA8PCAyKTsKIAotCXN3aXRjaCAocHJpdi0+bW9kZSkgewotCWNhc2UgVERBMTgyNzFfQU5BTE9HOgotCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLwotCQlicmVhazsKLQljYXNlIFREQTE4MjcxX0RJR0lUQUw6Ci0JCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KLQkJYnJlYWs7Ci0JfQotCiAJLyogdXBkYXRlIEZNX1JGbiAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHg4MDsKIAlyZWdzW1JfRVA0XSAgfD0gbWFwLT5mbV9yZm4gPDwgNzsKQEAgLTk1LDYgKzEwMyw5IEBACiAJLyogZGlzYWJsZSBQb3dlciBMZXZlbCBJbmRpY2F0b3IgKi8KIAlyZWdzW1JfRVAxXSAgfD0gMHg0MDsKIAorCS8qIG1ha2Ugc3VyZSB0aGVybW9tZXRlciBpcyBvZmYgKi8KKwlyZWdzW1JfVE1dICAgJj0gfjB4MTA7CisKIAkvKiBmcmVxdWVuY3kgZGVwZW5kZW50IHBhcmFtZXRlcnMgKi8KIAogCXRkYTE4MjcxX2NhbGNfaXJfbWVhc3VyZShmZSwgJmZyZXEpOwpAQCAtMTM1LDYgKzE0Niw3IEBACiAJc3dpdGNoIChwcml2LT5yb2xlKSB7CiAJY2FzZSBUREExODI3MV9NQVNURVI6CiAJCXRkYTE4MjcxX2NhbGNfbWFpbl9wbGwoZmUsIE4pOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgNCk7CiAJCWJyZWFrOwogCWNhc2UgVERBMTgyNzFfU0xBVkU6CkBAIC0xNDIsNiArMTU0LDcgQEAKIAkJdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9DUEQsIDQpOwogCiAJCXJlZ3NbUl9NUERdID0gcmVnc1tSX0NQRF0gJiAweDdmOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgMSk7CiAJCWJyZWFrOwogCX0KQEAgLTE2MCwxMiArMTczLDE0IEBACiAKIAltc2xlZXAoMjApOwogCi0JLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCi0JaWYgKG1hcC0+Zm1fcmZuKQotCQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKLQllbHNlCi0JCXJlZ3NbUl9FUDNdIHw9IDB4MDQ7Ci0JcmV0ID0gdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9FUDMsIDEpOworCWlmIChwcml2LT5pZCA9PSBUREExODI3MUhEQzIpIHsKKwkJLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCisJCWlmIChtYXAtPmZtX3JmbikKKwkJCXJlZ3NbUl9FUDNdICY9IH4weDA0OworCQllbHNlCisJCQlyZWdzW1JfRVAzXSB8PSAweDA0OworCQlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMSk7CisJfQogZmFpbDoKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTA3LDcgKzUyMiw3IEBACiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAKIAlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXIteGMyMDI4LmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXIteGMyMDI4LmMKaW5kZXggMGNiZGUxNy4uMzBlYjA3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLXhjMjAyOC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90dW5lci14YzIwMjguYwpAQCAtMjU0LDcgKzI1NCw3IEBACiB7CiAJc3RydWN0IHhjMjAyOF9kYXRhICAgICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyAgID0gTlVMTDsKLQl1bnNpZ25lZCBjaGFyICAgICAgICAgKnAsICplbmRwOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgICAqcCwgKmVuZHA7CiAJaW50ICAgICAgICAgICAgICAgICAgIHJjID0gMDsKIAlpbnQJCSAgICAgIG4sIG5fYXJyYXk7CiAJY2hhcgkJICAgICAgbmFtZVszM107CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwLmMKaW5kZXggY2VhZTZkYi4uNDg3OGQ2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDAuYwpAQCAtMTc3LDYgKzE3Nyw3IEBACiAJeyJGTSBSYWRpby1JTlBVVDEiLCAgIDB4MDIwOCwgMHg5MDAyfQogfTsKIAorc3RhdGljIGludCAgeGM1MDAwX2lzX2Zpcm13YXJlX2xvYWRlZChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CiBzdGF0aWMgaW50ICB4YzUwMDBfd3JpdGVyZWdzKHN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdiwgdTggKmJ1ZiwgdTggbGVuKTsKIHN0YXRpYyBpbnQgIHhjNTAwMF9yZWFkcmVncyhzdHJ1Y3QgeGM1MDAwX3ByaXYgKnByaXYsIHU4ICpidWYsIHU4IGxlbik7CiBzdGF0aWMgdm9pZCB4YzUwMDBfVHVuZXJSZXNldChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CkBAIC0yNzcsNyArMjc4LDcgQEAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW50IHhjX2xvYWRfaTJjX3NlcXVlbmNlKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCB1OCBpMmNfc2VxdWVuY2VbXSkKK3N0YXRpYyBpbnQgeGNfbG9hZF9pMmNfc2VxdWVuY2Uoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIGNvbnN0IHU4ICppMmNfc2VxdWVuY2UpCiB7CiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAKQEAgLTM1Miw3ICszNTMsNyBAQAogCiBzdGF0aWMgaW50IHhjX3NodXRkb3duKHN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdikKIHsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gWENfUkVTVUxUX1NVQ0NFU1M7CiAJLyogRml4bWU6IGNhbm5vdCBicmluZyB0dW5lciBiYWNrIGFsaXZlIG9uY2Ugc2h1dGRvd24KIAkgKiAgICAgICAgd2l0aG91dCByZWxvYWRpbmcgdGhlIGRyaXZlciBtb2R1bGVzLgogCSAqICAgIHJldHVybiB4Y193cml0ZV9yZWcocHJpdiwgWFJFR19QT1dFUl9ET1dOLCAwKTsKQEAgLTY4NSw2ICs2ODYsMjUgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCB4YzUwMDBfaXNfZmlybXdhcmVfbG9hZGVkKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKQoreworCXN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdiA9IGZlLT50dW5lcl9wcml2OworCWludCByZXQ7CisJdTE2IGlkOworCisJcmV0ID0geGM1MDAwX3JlYWRyZWcocHJpdiwgWFJFR19QUk9EVUNUX0lELCAmaWQpOworCWlmIChyZXQgPT0gWENfUkVTVUxUX1NVQ0NFU1MpIHsKKwkJaWYgKGlkID09IFhDX1BST0RVQ1RfSURfRldfTk9UX0xPQURFRCkKKwkJCXJldCA9IFhDX1JFU1VMVF9SRVNFVF9GQUlMVVJFOworCQllbHNlCisJCQlyZXQgPSBYQ19SRVNVTFRfU1VDQ0VTUzsKKwl9CisKKwlkcHJpbnRrKDEsICIlcygpIHJldHVybnMgJXMgaWQgPSAweCV4XG4iLCBfX2Z1bmNfXywKKwkJcmV0ID09IFhDX1JFU1VMVF9TVUNDRVNTID8gIlRydWUiIDogIkZhbHNlIiwgaWQpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQgeGNfbG9hZF9md19hbmRfaW5pdF90dW5lcihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CiAKIHN0YXRpYyBpbnQgeGM1MDAwX3NldF9hbmFsb2dfcGFyYW1zKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLApAQCAtNjkzLDcgKzcxMyw3IEBACiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJaW50IHJldDsKIAotCWlmKHByaXYtPmZ3bG9hZGVkID09IDApCisJaWYgKHhjNTAwMF9pc19maXJtd2FyZV9sb2FkZWQoZmUpICE9IFhDX1JFU1VMVF9TVUNDRVNTKQogCQl4Y19sb2FkX2Z3X2FuZF9pbml0X3R1bmVyKGZlKTsKIAogCWRwcmludGsoMSwgIiVzKCkgZnJlcXVlbmN5PSVkIChpbiB1bml0cyBvZiA2Mi41a2h6KVxuIiwKQEAgLTgwOCwxMSArODI4LDEwIEBACiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAocHJpdi0+Zndsb2FkZWQgPT0gMCkgeworCWlmICh4YzUwMDBfaXNfZmlybXdhcmVfbG9hZGVkKGZlKSAhPSBYQ19SRVNVTFRfU1VDQ0VTUykgewogCQlyZXQgPSB4YzUwMDBfZnd1cGxvYWQoZmUpOwogCQlpZiAocmV0ICE9IFhDX1JFU1VMVF9TVUNDRVNTKQogCQkJcmV0dXJuIHJldDsKLQkJcHJpdi0+Zndsb2FkZWQgPSAxOwogCX0KIAogCS8qIFN0YXJ0IHRoZSB0dW5lciBzZWxmLWNhbGlicmF0aW9uIHByb2Nlc3MgKi8KQEAgLTg1Miw3ICs4NzEsNiBAQAogCQlyZXR1cm4gLUVSRU1PVEVJTzsKIAl9CiAJZWxzZSB7Ci0JCS8qIHByaXYtPmZ3bG9hZGVkID0gMDsgKi8KIAkJcmV0dXJuIFhDX1JFU1VMVF9TVUNDRVNTOwogCX0KIH0KQEAgLTkzMyw3ICs5NTEsNiBAQAogCQkJY2ZnLT5pMmNfYWRkcmVzcyk7CiAJCXByaW50ayhLRVJOX0lORk8KIAkJCSJ4YzUwMDA6IEZpcm13YXJlIGhhcyBiZWVuIGxvYWRlZCBwcmV2aW91c2x5XG4iKTsKLQkJcHJpdi0+Zndsb2FkZWQgPSAxOwogCQlicmVhazsKIAljYXNlIFhDX1BST0RVQ1RfSURfRldfTk9UX0xPQURFRDoKIAkJcHJpbnRrKEtFUk5fSU5GTwpAQCAtOTQxLDcgKzk1OCw2IEBACiAJCQljZmctPmkyY19hZGRyZXNzKTsKIAkJcHJpbnRrKEtFUk5fSU5GTwogCQkJInhjNTAwMDogRmlybXdhcmUgaGFzIG5vdCBiZWVuIGxvYWRlZCBwcmV2aW91c2x5XG4iKTsKLQkJcHJpdi0+Zndsb2FkZWQgPSAwOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9FUlIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDBfcHJpdi5oIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKaW5kZXggZWNlYmZlNC4uYTcyYTk4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKQEAgLTMwLDcgKzMwLDYgQEAKIAl1MzIgYmFuZHdpZHRoOwogCXU4ICB2aWRlb19zdGFuZGFyZDsKIAl1OCAgcmZfbW9kZTsKLQl1OCAgZndsb2FkZWQ7CiAKIAl2b2lkICpkZXZwdHI7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZHZiZGV2LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwppbmRleCA4YjU2ZDkyLi5lMjA4YTYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJkdmJkZXYuaCIKIAogc3RhdGljIGludCBkdmJkZXZfZGVidWc7CkBAIC03NCw2ICs3NSw3IEBACiB7CiAJc3RydWN0IGR2Yl9kZXZpY2UgKmR2YmRldjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZHZiZGV2ID0gZHZiZGV2X2ZpbmRfZGV2aWNlIChpbWlub3IoaW5vZGUpKTsKIAogCWlmIChkdmJkZXYgJiYgZHZiZGV2LT5mb3BzKSB7CkBAIC05MCw4ICs5MiwxMCBAQAogCQkJZmlsZS0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKIAkJfQogCQlmb3BzX3B1dChvbGRfZm9wcyk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycjsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMKaW5kZXggNzIwZmNkMS4uMDI4NjE1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9jeHVzYi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvY3h1c2IuYwpAQCAtMjQsNiArMjQsNyBAQAogICogc2VlIERvY3VtZW50YXRpb24vZHZiL1JFQURNRS5kdmItdXNiIGZvciBtb3JlIGluZm9ybWF0aW9uCiAgKi8KICNpbmNsdWRlIDxtZWRpYS90dW5lci5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KIAogI2luY2x1ZGUgImN4dXNiLmgiCiAKQEAgLTcwMCwxMiArNzAxLDI2IEBACiAKIAkJaWYgKGZ3LT5kYXRhW2lkb2ZmXSA9PSAoVVNCX1ZJRF9EVklDTyAmIDB4ZmYpICYmCiAJCSAgICBmdy0+ZGF0YVtpZG9mZiArIDFdID09IFVTQl9WSURfRFZJQ08gPj4gOCkgewotCQkJZnctPmRhdGFbaWRvZmYgKyAyXSA9CisJCQlzdHJ1Y3QgZmlybXdhcmUgbmV3X2Z3OworCQkJdTggKm5ld19md19kYXRhID0gdm1hbGxvYyhmdy0+c2l6ZSk7CisJCQlpbnQgcmV0OworCisJCQlpZiAoIW5ld19md19kYXRhKQorCQkJCXJldHVybiAtRU5PTUVNOworCisJCQltZW1jcHkobmV3X2Z3X2RhdGEsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CisJCQluZXdfZncuc2l6ZSA9IGZ3LT5zaXplOworCQkJbmV3X2Z3LmRhdGEgPSBuZXdfZndfZGF0YTsKKworCQkJbmV3X2Z3X2RhdGFbaWRvZmYgKyAyXSA9CiAJCQkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpICsgMTsKLQkJCWZ3LT5kYXRhW2lkb2ZmICsgM10gPQorCQkJbmV3X2Z3X2RhdGFbaWRvZmYgKyAzXSA9CiAJCQkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpID4+IDg7CiAKLQkJCXJldHVybiB1c2JfY3lwcmVzc19sb2FkX2Zpcm13YXJlKHVkZXYsIGZ3LCBDWVBSRVNTX0ZYMik7CisJCQlyZXQgPSB1c2JfY3lwcmVzc19sb2FkX2Zpcm13YXJlKHVkZXYsICZuZXdfZncsCisJCQkJCQkJQ1lQUkVTU19GWDIpOworCQkJdmZyZWUobmV3X2Z3X2RhdGEpOworCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9nbDg2MS5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9nbDg2MS5jCmluZGV4IDBhOGFjNjQuLjAzN2Y3ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ2w4NjEuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dsODYxLmMKQEAgLTQ3LDYgKzQ3LDggQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJbXNsZWVwKDEpOyAvKiBhdm9pZCBJMkMgZXJyb3JzICovCisKIAlyZXR1cm4gdXNiX2NvbnRyb2xfbXNnKGQtPnVkZXYsIHVzYl9yY3ZjdHJscGlwZShkLT51ZGV2LCAwKSwgcmVxLCB0eXBlLAogCQkJICAgICAgIHZhbHVlLCBpbmRleCwgcmJ1ZiwgcmxlbiwgMjAwMCk7CiB9CkBAIC05MiwxNiArOTQsNiBAQAogfTsKIAogLyogQ2FsbGJhY2tzIGZvciBEVkIgVVNCICovCi1zdGF0aWMgaW50IGdsODYxX2lkZW50aWZ5X3N0YXRlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LAotCQkJCXN0cnVjdCBkdmJfdXNiX2RldmljZV9wcm9wZXJ0aWVzICpwcm9wcywKLQkJCQlzdHJ1Y3QgZHZiX3VzYl9kZXZpY2VfZGVzY3JpcHRpb24gKipkZXNjLAotCQkJCWludCAqY29sZCkKLXsKLQkqY29sZCA9IDA7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHN0cnVjdCB6bDEwMzUzX2NvbmZpZyBnbDg2MV96bDEwMzUzX2NvbmZpZyA9IHsKIAkuZGVtb2RfYWRkcmVzcyA9IDB4MGYsCiAJLm5vX3R1bmVyID0gMSwKQEAgLTE3Miw3ICsxNjQsNiBAQAogCiAJLnNpemVfb2ZfcHJpdiAgICAgPSAwLAogCi0JLmlkZW50aWZ5X3N0YXRlICAgPSBnbDg2MV9pZGVudGlmeV9zdGF0ZSwKIAkubnVtX2FkYXB0ZXJzID0gMSwKIAkuYWRhcHRlciA9IHt7CiAKQEAgLTE5NCwxMyArMTg1LDE1IEBACiAKIAkubnVtX2RldmljZV9kZXNjcyA9IDIsCiAJLmRldmljZXMgPSB7Ci0JCXsgICAiTVNJIE1lZ2EgU2t5IDU1ODAxIERWQi1UIFVTQjIuMCIsCi0JCQl7ICZnbDg2MV90YWJsZVswXSwgTlVMTCB9LAotCQkJeyBOVUxMIH0sCisJCXsKKwkJCS5uYW1lID0gIk1TSSBNZWdhIFNreSA1NTgwMSBEVkItVCBVU0IyLjAiLAorCQkJLmNvbGRfaWRzID0geyBOVUxMIH0sCisJCQkud2FybV9pZHMgPSB7ICZnbDg2MV90YWJsZVswXSwgTlVMTCB9LAogCQl9LAotCQl7ICAgIkEtTElOSyBEVFUgRFZCLVQgVVNCMi4wIiwKLQkJCXsgJmdsODYxX3RhYmxlWzFdLCBOVUxMIH0sCi0JCQl7IE5VTEwgfSwKKwkJeworCQkJLm5hbWUgPSAiQS1MSU5LIERUVSBEVkItVCBVU0IyLjAiLAorCQkJLmNvbGRfaWRzID0geyBOVUxMIH0sCisJCQkud2FybV9pZHMgPSB7ICZnbDg2MV90YWJsZVsxXSwgTlVMTCB9LAogCQl9LAogCX0KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dwOHBzay5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9ncDhwc2suYwppbmRleCAyNjUzMTIwLi5kOTY1YTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dwOHBzay5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ3A4cHNrLmMKQEAgLTg2LDcgKzg2LDggQEAKIHsKIAlpbnQgcmV0OwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCXU4ICpwdHIsICpidWY7CisJY29uc3QgdTggKnB0cjsKKwl1OCAqYnVmOwogCWlmICgocmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGJjbTQ1MDBfZmlybXdhcmUsCiAJCQkJCSZkLT51ZGV2LT5kZXYpKSAhPSAwKSB7CiAJCWVycigiZGlkIG5vdCBmaW5kIHRoZSBiY200NTAwIGZpcm13YXJlIGZpbGUuICglcykgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi91bXQtMDEwLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYwppbmRleCA5ZTc2NTNiLi4xMThhYWIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYwpAQCAtMTA3LDcgKzEwNyw3IEBACiAJCQkvKiBwYXJhbWV0ZXIgZm9yIHRoZSBNUEVHMi1kYXRhIHRyYW5zZmVyICovCiAJCQkuc3RyZWFtID0gewogCQkJCS50eXBlID0gVVNCX0JVTEssCi0JCQkJLmNvdW50ID0gMjAsCisJCQkJLmNvdW50ID0gTUFYX05PX1VSQlNfRk9SX0RBVEFfU1RSRUFNLAogCQkJCS5lbmRwb2ludCA9IDB4MDYsCiAJCQkJLnUgPSB7CiAJCQkJCS5idWxrID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2F1ODUyMi5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2F1ODUyMi5jCmluZGV4IDA4NGEyODAuLjAzOTAwZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hdTg1MjIuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYXU4NTIyLmMKQEAgLTQ2MywxMCArNDYzLDEzIEBACiAJCQkgICAgICAgc3RydWN0IGR2Yl9mcm9udGVuZF9wYXJhbWV0ZXJzICpwKQogewogCXN0cnVjdCBhdTg1MjJfc3RhdGUgKnN0YXRlID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CisJaW50IHJldCA9IC1FSU5WQUw7CiAKIAlkcHJpbnRrKCIlcyhmcmVxdWVuY3k9JWQpXG4iLCBfX2Z1bmNfXywgcC0+ZnJlcXVlbmN5KTsKIAotCXN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9IHAtPmZyZXF1ZW5jeTsKKwlpZiAoKHN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9PSBwLT5mcmVxdWVuY3kpICYmCisJICAgIChzdGF0ZS0+Y3VycmVudF9tb2R1bGF0aW9uID09IHAtPnUudnNiLm1vZHVsYXRpb24pKQorCQlyZXR1cm4gMDsKIAogCWF1ODUyMl9lbmFibGVfbW9kdWxhdGlvbihmZSwgcC0+dS52c2IubW9kdWxhdGlvbik7CiAKQEAgLTQ3NiwxMSArNDc5LDE2IEBACiAJaWYgKGZlLT5vcHMudHVuZXJfb3BzLnNldF9wYXJhbXMpIHsKIAkJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkKIAkJCWZlLT5vcHMuaTJjX2dhdGVfY3RybChmZSwgMSk7Ci0JCWZlLT5vcHMudHVuZXJfb3BzLnNldF9wYXJhbXMoZmUsIHApOworCQlyZXQgPSBmZS0+b3BzLnR1bmVyX29wcy5zZXRfcGFyYW1zKGZlLCBwKTsKIAkJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkKIAkJCWZlLT5vcHMuaTJjX2dhdGVfY3RybChmZSwgMCk7CiAJfQogCisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kgPSBwLT5mcmVxdWVuY3k7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDk4LDYgKzUwNiwxNiBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF1ODUyMl9zbGVlcChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3sKKwlzdHJ1Y3QgYXU4NTIyX3N0YXRlICpzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OworCWRwcmludGsoIiVzKClcbiIsIF9fZnVuY19fKTsKKworCXN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9IDA7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhdTg1MjJfcmVhZF9zdGF0dXMoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIGZlX3N0YXR1c190ICpzdGF0dXMpCiB7CiAJc3RydWN0IGF1ODUyMl9zdGF0ZSAqc3RhdGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKQEAgLTUwOSwxMCArNTI3LDggQEAKIAlpZiAoc3RhdGUtPmN1cnJlbnRfbW9kdWxhdGlvbiA9PSBWU0JfOCkgewogCQlkcHJpbnRrKCIlcygpIENoZWNraW5nIFZTQl84XG4iLCBfX2Z1bmNfXyk7CiAJCXJlZyA9IGF1ODUyMl9yZWFkcmVnKHN0YXRlLCAweDQwODgpOwotCQlpZiAocmVnICYgMHgwMSkKLQkJCSpzdGF0dXMgfD0gRkVfSEFTX1ZJVEVSQkk7Ci0JCWlmIChyZWcgJiAweDAyKQotCQkJKnN0YXR1cyB8PSBGRV9IQVNfTE9DSyB8IEZFX0hBU19TWU5DOworCQlpZiAoKHJlZyAmIDB4MDMpID09IDB4MDMpCisJCQkqc3RhdHVzIHw9IEZFX0hBU19MT0NLIHwgRkVfSEFTX1NZTkMgfCBGRV9IQVNfVklURVJCSTsKIAl9IGVsc2UgewogCQlkcHJpbnRrKCIlcygpIENoZWNraW5nIFFBTVxuIiwgX19mdW5jX18pOwogCQlyZWcgPSBhdTg1MjJfcmVhZHJlZyhzdGF0ZSwgMHg0NTQxKTsKQEAgLTY3Miw2ICs2ODgsNyBAQAogCX0sCiAKIAkuaW5pdCAgICAgICAgICAgICAgICAgPSBhdTg1MjJfaW5pdCwKKwkuc2xlZXAgICAgICAgICAgICAgICAgPSBhdTg1MjJfc2xlZXAsCiAJLmkyY19nYXRlX2N0cmwgICAgICAgID0gYXU4NTIyX2kyY19nYXRlX2N0cmwsCiAJLnNldF9mcm9udGVuZCAgICAgICAgID0gYXU4NTIyX3NldF9mcm9udGVuZCwKIAkuZ2V0X2Zyb250ZW5kICAgICAgICAgPSBhdTg1MjJfZ2V0X2Zyb250ZW5kLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2JjbTM1MTAuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9iY20zNTEwLmMKaW5kZXggZDI2OGU2NS4uY2Y1ZTU3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2JjbTM1MTAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYmNtMzUxMC5jCkBAIC01OTAsNyArNTkwLDggQEAKICAqLwogI2RlZmluZSBCQ00zNTEwX0RFRkFVTFRfRklSTVdBUkUgImR2Yi1mZS1iY20zNTEwLTAxLmZ3IgogCi1zdGF0aWMgaW50IGJjbTM1MTBfd3JpdGVfcmFtKHN0cnVjdCBiY20zNTEwX3N0YXRlICpzdCwgdTE2IGFkZHIsIHU4ICpiLCB1MTYgbGVuKQorc3RhdGljIGludCBiY20zNTEwX3dyaXRlX3JhbShzdHJ1Y3QgYmNtMzUxMF9zdGF0ZSAqc3QsIHUxNiBhZGRyLCBjb25zdCB1OCAqYiwKKwkJCSAgICAgdTE2IGxlbikKIHsKIAlpbnQgcmV0ID0gMCxpOwogCWJjbTM1MTBfcmVnaXN0ZXJfdmFsdWUgdkgsIHZMLHZEOwpAQCAtNjE0LDcgKzYxNSw3IEBACiAJc3RydWN0IGJjbTM1MTBfc3RhdGUqIHN0ID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAl1MTYgYWRkcixsZW47Ci0JdTggICpiOworCWNvbnN0IHU4ICpiOwogCWludCByZXQsaTsKIAogCWRlYl9pbmZvKCJyZXF1ZXN0aW5nIGZpcm13YXJlXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9ueHQyMDB4LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvbnh0MjAweC5jCmluZGV4IDIzZDAyMjguLmFmMjk4MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9ueHQyMDB4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL254dDIwMHguYwpAQCAtOTMsNyArOTMsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG54dDIwMHhfd3JpdGVieXRlcyAoc3RydWN0IG54dDIwMHhfc3RhdGUqIHN0YXRlLCB1OCByZWcsIHU4ICpidWYsIHU4IGxlbikKK3N0YXRpYyBpbnQgbnh0MjAweF93cml0ZWJ5dGVzIChzdHJ1Y3Qgbnh0MjAweF9zdGF0ZSogc3RhdGUsIHU4IHJlZywKKwkJCSAgICAgICBjb25zdCB1OCAqYnVmLCB1OCBsZW4pCiB7CiAJdTggYnVmMiBbbGVuKzFdOwogCWludCBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTIxMS5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL29yNTEyMTEuYwppbmRleCA3ZWFhNDc2Li42YWZlMTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTIxMS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9vcjUxMjExLmMKQEAgLTY5LDcgKzY5LDcgQEAKIAl1MzIgY3VycmVudF9mcmVxdWVuY3k7CiB9OwogCi1zdGF0aWMgaW50IGkyY193cml0ZWJ5dGVzIChzdHJ1Y3Qgb3I1MTIxMV9zdGF0ZSogc3RhdGUsIHU4IHJlZywgdTggKmJ1ZiwKK3N0YXRpYyBpbnQgaTJjX3dyaXRlYnl0ZXMgKHN0cnVjdCBvcjUxMjExX3N0YXRlKiBzdGF0ZSwgdTggcmVnLCBjb25zdCB1OCAqYnVmLAogCQkJICAgaW50IGxlbikKIHsKIAlpbnQgZXJyOwpAQCAtNzcsNyArNzcsNyBAQAogCW1zZy5hZGRyCT0gcmVnOwogCW1zZy5mbGFncwk9IDA7CiAJbXNnLmxlbgkJPSBsZW47Ci0JbXNnLmJ1ZgkJPSBidWY7CisJbXNnLmJ1ZgkJPSAodTggKilidWY7CiAKIAlpZiAoKGVyciA9IGkyY190cmFuc2ZlciAoc3RhdGUtPmkyYywgJm1zZywgMSkpICE9IDEpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAib3I1MTIxMTogaTJjX3dyaXRlYnl0ZXMgZXJyb3IgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3MC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3MC5jCmluZGV4IGFhNzhhYTEuLjFjOWE5YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4NzAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODcwLmMKQEAgLTk4LDcgKzk4LDcgQEAKIHN0YXRpYyBpbnQgc3A4ODcwX2Zpcm13YXJlX3VwbG9hZCAoc3RydWN0IHNwODg3MF9zdGF0ZSogc3RhdGUsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CiAJc3RydWN0IGkyY19tc2cgbXNnOwotCWNoYXIgKmZ3X2J1ZiA9IGZ3LT5kYXRhOworCWNvbnN0IGNoYXIgKmZ3X2J1ZiA9IGZ3LT5kYXRhOwogCWludCBmd19wb3M7CiAJdTggdHhfYnVmWzI1NV07CiAJaW50IHR4X2xlbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4N3guYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4N3guYwppbmRleCA0OWY1NTg3Li40NTQzNjA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODd4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3eC5jCkBAIC0xNDAsNyArMTQwLDcgQEAKIAl1OCBidWYgW0JMT0NLU0laRSsyXTsKIAlpbnQgaTsKIAlpbnQgZndfc2l6ZSA9IGZ3LT5zaXplOwotCXVuc2lnbmVkIGNoYXIgKm1lbSA9IGZ3LT5kYXRhOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1lbSA9IGZ3LT5kYXRhOwogCiAJZHByaW50aygiJXNcbiIsIF9fZnVuY19fKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3N0djAyOTkuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zdHYwMjk5LmMKaW5kZXggMTc1NTYxOC4uMzU0MzViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3N0djAyOTkuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3R2MDI5OS5jCkBAIC02Myw2ICs2Myw3IEBACiAJdTMyIHN5bWJvbF9yYXRlOwogCWZlX2NvZGVfcmF0ZV90IGZlY19pbm5lcjsKIAlpbnQgZXJybW9kZTsKKwl1MzIgdWNibG9ja3M7CiB9OwogCiAjZGVmaW5lIFNUQVRVU19CRVIgMApAQCAtNTAxLDggKzUwMiwxMCBAQAogewogCXN0cnVjdCBzdHYwMjk5X3N0YXRlKiBzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OwogCi0JaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19CRVIpIHJldHVybiAwOwotCSpiZXIgPSAoc3R2MDI5OV9yZWFkcmVnIChzdGF0ZSwgMHgxZCkgPDwgOCkgfCBzdHYwMjk5X3JlYWRyZWcgKHN0YXRlLCAweDFlKTsKKwlpZiAoc3RhdGUtPmVycm1vZGUgIT0gU1RBVFVTX0JFUikKKwkJcmV0dXJuIC1FTk9TWVM7CisKKwkqYmVyID0gc3R2MDI5OV9yZWFkcmVnKHN0YXRlLCAweDFlKSB8IChzdHYwMjk5X3JlYWRyZWcoc3RhdGUsIDB4MWQpIDw8IDgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NDAsOCArNTQzLDEyIEBACiB7CiAJc3RydWN0IHN0djAyOTlfc3RhdGUqIHN0YXRlID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CiAKLQlpZiAoc3RhdGUtPmVycm1vZGUgIT0gU1RBVFVTX1VDQkxPQ0tTKSAqdWNibG9ja3MgPSAwOwotCWVsc2UgKnVjYmxvY2tzID0gKHN0djAyOTlfcmVhZHJlZyAoc3RhdGUsIDB4MWQpIDw8IDgpIHwgc3R2MDI5OV9yZWFkcmVnIChzdGF0ZSwgMHgxZSk7CisJaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19VQ0JMT0NLUykKKwkJcmV0dXJuIC1FTk9TWVM7CisKKwlzdGF0ZS0+dWNibG9ja3MgKz0gc3R2MDI5OV9yZWFkcmVnKHN0YXRlLCAweDFlKTsKKwlzdGF0ZS0+dWNibG9ja3MgKz0gKHN0djAyOTlfcmVhZHJlZyhzdGF0ZSwgMHgxZCkgPDwgOCk7CisJKnVjYmxvY2tzID0gc3RhdGUtPnVjYmxvY2tzOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwMjMuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCmluZGV4IDA3MjdiODAuLmM2ZmY1YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCkBAIC0xMTYsOSArMTE2LDEyIEBACiAJaW50IHJldDsKIAogCXJldCA9IGkyY190cmFuc2ZlciAoc3RhdGUtPmkyYywgbXNnLCAyKTsKLQlpZiAocmV0ICE9IDIpCi0JCXByaW50aygiRFZCOiBUREExMDAyMzogJXM6IHJlYWRyZWcgZXJyb3IgKHJldCA9PSAlaSlcbiIsCi0JCQkJIF9fZnVuY19fLCByZXQpOworCWlmIChyZXQgIT0gMikgeworCQlpbnQgbnVtID0gc3RhdGUtPmZyb250ZW5kLmR2YiA/IHN0YXRlLT5mcm9udGVuZC5kdmItPm51bSA6IC0xOworCQlwcmludGsoS0VSTl9FUlIgIkRWQjogVERBMTAwMjMoJWQpOiAlczogcmVhZHJlZyBlcnJvciAiCisJCQkiKHJlZyA9PSAweCUwMngsIHJldCA9PSAlaSlcbiIsCisJCQludW0sIF9fZnVuY19fLCByZWcsIHJldCk7CisJfQogCXJldHVybiBiMVswXTsKIH0KIApAQCAtMTI5LDExICsxMzIsMTIgQEAKIAlpbnQgcmV0OwogCiAJcmV0ID0gaTJjX3RyYW5zZmVyIChzdGF0ZS0+aTJjLCAmbXNnLCAxKTsKLQlpZiAocmV0ICE9IDEpCi0JCXByaW50aygiRFZCOiBUREExMDAyMyglZCk6ICVzLCB3cml0ZXJlZyBlcnJvciAiCisJaWYgKHJldCAhPSAxKSB7CisJCWludCBudW0gPSBzdGF0ZS0+ZnJvbnRlbmQuZHZiID8gc3RhdGUtPmZyb250ZW5kLmR2Yi0+bnVtIDogLTE7CisJCXByaW50ayhLRVJOX0VSUiAiRFZCOiBUREExMDAyMyglZCk6ICVzLCB3cml0ZXJlZyBlcnJvciAiCiAJCQkiKHJlZyA9PSAweCUwMngsIHZhbCA9PSAweCUwMngsIHJldCA9PSAlaSlcbiIsCi0JCQlzdGF0ZS0+ZnJvbnRlbmQuZHZiLT5udW0sIF9fZnVuY19fLCByZWcsIGRhdGEsIHJldCk7Ci0KKwkJCW51bSwgX19mdW5jX18sIHJlZywgZGF0YSwgcmV0KTsKKwl9CiAJcmV0dXJuIChyZXQgIT0gMSkgPyAtRVJFTU9URUlPIDogMDsKIH0KIApAQCAtNDY0LDcgKzQ2OCw3IEBACiAJaW50IGk7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwotCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDIzX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJc3RhdGUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGRhMTAwMjNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoc3RhdGUgPT0gTlVMTCkgZ290byBlcnJvcjsKIAogCS8qIHNldHVwIHRoZSBzdGF0ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwNDguYwppbmRleCAwOTBmYjdkLi4wYWI4ZDg2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMKQEAgLTIzMyw3ICsyMzMsNyBAQAogfQogCiBzdGF0aWMgaW50IHRkYTEwMDQ4X3dyaXRlcmVnYnVsayhzdHJ1Y3QgdGRhMTAwNDhfc3RhdGUgKnN0YXRlLCB1OCByZWcsCi0JdTggKmRhdGEsIHUxNiBsZW4pCisJCQkJIGNvbnN0IHU4ICpkYXRhLCB1MTYgbGVuKQogewogCWludCByZXQgPSAtRVJFTU9URUlPOwogCXN0cnVjdCBpMmNfbXNnIG1zZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0eC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKaW5kZXggNDk5NzM4NC4uMTQ2NWZmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKQEAgLTMxNyw3ICszMTcsNyBAQAogfQogCiBzdGF0aWMgaW50IHRkYTEwMDR4X2RvX3VwbG9hZChzdHJ1Y3QgdGRhMTAwNHhfc3RhdGUgKnN0YXRlLAotCQkJICAgICAgdW5zaWduZWQgY2hhciAqbWVtLCB1bnNpZ25lZCBpbnQgbGVuLAorCQkJICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbWVtLCB1bnNpZ25lZCBpbnQgbGVuLAogCQkJICAgICAgdTggZHNwQ29kZUNvdW50ZXJSZWcsIHU4IGRzcENvZGVJblJlZykKIHsKIAl1OCBidWZbNjVdOwpAQCAtMTI0OCwxMSArMTI0OCwxNCBAQAogCQkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyKiBpMmMpCiB7CiAJc3RydWN0IHRkYTEwMDR4X3N0YXRlICpzdGF0ZTsKKwlpbnQgaWQ7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDR4X3N0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZSkKKwlpZiAoIXN0YXRlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgYWxvY2F0ZSBtZW1vcnkgZm9yIHRkYTEwMDQ1IHN0YXRlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CisJfQogCiAJLyogc2V0dXAgdGhlIHN0YXRlICovCiAJc3RhdGUtPmNvbmZpZyA9IGNvbmZpZzsKQEAgLTEyNjAsNyArMTI2MywxNSBAQAogCXN0YXRlLT5kZW1vZF90eXBlID0gVERBMTAwNFhfREVNT0RfVERBMTAwNDU7CiAKIAkvKiBjaGVjayBpZiB0aGUgZGVtb2QgaXMgdGhlcmUgKi8KLQlpZiAodGRhMTAwNHhfcmVhZF9ieXRlKHN0YXRlLCBUREExMDA0WF9DSElQSUQpICE9IDB4MjUpIHsKKwlpZCA9IHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKTsKKwlpZiAoaWQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAidGRhMTAwNDU6IGNoaXAgaXMgbm90IGFuc3dlcmluZy4gR2l2aW5nIHVwLlxuIik7CisJCWtmcmVlKHN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKGlkICE9IDB4MjUpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIHRkYTEwMDR4IElEID0gMHglMDJ4LiBDYW4ndCBwcm9jZWVkXG4iLCBpZCk7CiAJCWtmcmVlKHN0YXRlKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMTMwNywxMSArMTMxOCwxNCBAQAogCQkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyKiBpMmMpCiB7CiAJc3RydWN0IHRkYTEwMDR4X3N0YXRlICpzdGF0ZTsKKwlpbnQgaWQ7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDR4X3N0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZSkKKwlpZiAoIXN0YXRlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgYWxvY2F0ZSBtZW1vcnkgZm9yIHRkYTEwMDQ2IHN0YXRlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CisJfQogCiAJLyogc2V0dXAgdGhlIHN0YXRlICovCiAJc3RhdGUtPmNvbmZpZyA9IGNvbmZpZzsKQEAgLTEzMTksNyArMTMzMywxNCBAQAogCXN0YXRlLT5kZW1vZF90eXBlID0gVERBMTAwNFhfREVNT0RfVERBMTAwNDY7CiAKIAkvKiBjaGVjayBpZiB0aGUgZGVtb2QgaXMgdGhlcmUgKi8KLQlpZiAodGRhMTAwNHhfcmVhZF9ieXRlKHN0YXRlLCBUREExMDA0WF9DSElQSUQpICE9IDB4NDYpIHsKKwlpZCA9IHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKTsKKwlpZiAoaWQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAidGRhMTAwNDY6IGNoaXAgaXMgbm90IGFuc3dlcmluZy4gR2l2aW5nIHVwLlxuIik7CisJCWtmcmVlKHN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCWlmIChpZCAhPSAweDQ2KSB7CisJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCB0ZGExMDA0eCBJRCA9IDB4JTAyeC4gQ2FuJ3QgcHJvY2VlZFxuIiwgaWQpOwogCQlrZnJlZShzdGF0ZSk7CiAJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9LY29uZmlnCmluZGV4IGQ0MzM5YjEuLjA3NjQzZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvS2NvbmZpZwpAQCAtMTAxLDYgKzEwMSw3IEBACiBjb25maWcgRFZCX0JVREdFVF9DSQogCXRyaXN0YXRlICJCdWRnZXQgY2FyZHMgd2l0aCBvbmJvYXJkIENJIGNvbm5lY3RvciIKIAlkZXBlbmRzIG9uIERWQl9CVURHRVRfQ09SRSAmJiBJMkMKKwlkZXBlbmRzIG9uIElOUFVUICMgZHVlIHRvIElSCiAJc2VsZWN0IERWQl9TVFYwMjk3IGlmICFEVkJfRkVfQ1VTVE9NSVNFCiAJc2VsZWN0IERWQl9TVFYwMjk5IGlmICFEVkJfRkVfQ1VTVE9NSVNFCiAJc2VsZWN0IERWQl9UREExMDA0WCBpZiAhRFZCX0ZFX0NVU1RPTUlTRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2h3LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTBfaHcuYwppbmRleCA5ZDgxMDc0Li4zYTNmNTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTBfaHcuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTBfaHcuYwpAQCAtNDI3LDYgKzQyNyw3IEBACiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJpbnRrKEtFUk5fRVJSICIlczogdGltZW91dCB3YWl0aW5nIG9uIGJ1c3kgJXMgUVVFVUVcbiIsCiAJCQkJCV9fZnVuY19fLCB0eXBlKTsKKwkJCQlhdjcxMTAtPmFybV9lcnJvcnMrKzsKIAkJCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAkJCX0KIAkJCW1zbGVlcCgxKTsKQEAgLTg1MywxMCArODU0LDggQEAKIAogc3RhdGljIGlubGluZSBpbnQgV2FpdFVudGlsQm1wTG9hZGVkKHN0cnVjdCBhdjcxMTAgKmF2NzExMCkKIHsKLQlpbnQgcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoYXY3MTEwLT5ibXBxLAorCWludCByZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoYXY3MTEwLT5ibXBxLAogCQkJCWF2NzExMC0+Ym1wX3N0YXRlICE9IEJNUF9MT0FESU5HLCAxMCpIWik7Ci0JaWYgKHJldCA9PSAtRVJFU1RBUlRTWVMpCi0JCXJldHVybiByZXQ7CiAJaWYgKHJldCA9PSAwKSB7CiAJCXByaW50aygiZHZiLXR0cGNpOiB3YXJuaW5nOiB0aW1lb3V0IHdhaXRpbmcgaW4gTG9hZEJpdG1hcDogJWQsICVkXG4iLAogCQkgICAgICAgcmV0LCBhdjcxMTAtPmJtcF9zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWJ1ZGdldC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1idWRnZXQuYwppbmRleCA1ZDJkODFhLi5iYzIwNDNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWJ1ZGdldC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItYnVkZ2V0LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAKICNpbmNsdWRlICJkdmJfZnJvbnRlbmQuaCIKICNpbmNsdWRlICJkbXhkZXYuaCIKQEAgLTI4NSwxMyArMjg2LDE5IEBACiAJcmV0dXJuIGk7CiB9CiAKLSNpbmNsdWRlICJkdmItdHR1c2ItZHNwYm9vdGNvZGUuaCIKLQogc3RhdGljIGludCB0dHVzYl9ib290X2RzcChzdHJ1Y3QgdHR1c2IgKnR0dXNiKQogeworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAJaW50IGksIGVycjsKIAl1OCBiWzQwXTsKIAorCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCAidHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbiIsCisJCQkgICAgICAgJnR0dXNiLT5kZXYtPmRldik7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgInR0dXNiLWJ1ZGdldDogZmFpbGVkIHRvIHJlcXVlc3QgZmlybXdhcmVcbiIpOworCQlyZXR1cm4gZXJyOworCX0KKwogCS8qIEJvb3RCbG9jayAqLwogCWJbMF0gPSAweGFhOwogCWJbMl0gPSAweDEzOwpAQCAtMjk5LDggKzMwNiw4IEBACiAKIAkvKiB1cGxvYWQgZHNwIGNvZGUgaW4gMzIgYnl0ZSBzdGVwcyAoMzYgZGlkbid0IHdvcmsgZm9yIG1lIC4uLikgKi8KIAkvKiAzMiBpcyBtYXggcGFja2V0IHNpemUsIG5vIG1lc3NhZ2VzIHNob3VsZCBiZSBzcGxpdHRlZC4gKi8KLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGRzcF9ib290Y29kZSk7IGkgKz0gMjgpIHsKLQkJbWVtY3B5KCZiWzRdLCAmZHNwX2Jvb3Rjb2RlW2ldLCAyOCk7CisJZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplOyBpICs9IDI4KSB7CisJCW1lbWNweSgmYls0XSwgJmZ3LT5kYXRhW2ldLCAyOCk7CiAKIAkJYlsxXSA9ICsrdHR1c2ItPmM7CiAKQEAgLTE4MjAsMyArMTgyNyw0IEBACiBNT0RVTEVfQVVUSE9SKCJIb2xnZXIgV2FlY2h0bGVyIDxob2xnZXJAY29udmVyZ2VuY2UuZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRUVVNCIERWQiBEcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgidHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1kc3Bib290Y29kZS5oIGIvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1kc3Bib290Y29kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzNjZDU0Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItZHNwYm9vdGNvZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2NDQgKzAsMCBAQAotCi0jaW5jbHVkZSA8YXNtL3R5cGVzLmg+Ci0KLXN0YXRpYyB1OCBkc3BfYm9vdGNvZGUgW10gPSB7Ci0JMHgwOCwgMHhhYSwgMHgwMCwgMHgxOCwgMHgwMCwgMHgwMywgMHgwOCwgMHgwMCwKLQkweDAwLCAweDEwLCAweDAwLCAweDAwLCAweDAxLCAweDgwLCAweDE4LCAweDVmLAotCTB4MDAsIDB4MDAsIDB4MDEsIDB4ODAsIDB4NzcsIDB4MTgsIDB4MmEsIDB4ZWIsCi0JMHg2YiwgMHhmOCwgMHgwMCwgMHgxOCwgMHgwMywgMHhmZiwgMHg2OCwgMHhmOCwKLQkweDAwLCAweDE4LCAweGZmLCAweGZlLCAweGY3LCAweGI4LCAweGY3LCAweGJlLAotCTB4ZjYsIDB4YjksIDB4ZjQsIDB4YTAsIDB4ZjYsIDB4YjcsIDB4ZjYsIDB4YjUsCi0JMHhmNiwgMHhiNiwgMHhmMCwgMHgyMCwgMHgxOSwgMHhkZiwgMHhmMSwgMHgwMCwKLQkweDAwLCAweDAxLCAweGY4LCAweDRkLCAweDAxLCAweGFiLCAweGY2LCAweGI4LAotCTB4ZjAsIDB4MjAsIDB4MTksIDB4ZGYsIDB4ZjAsIDB4NzMsIDB4MDEsIDB4YTUsCi0JMHg3ZSwgMHhmOCwgMHgwMCwgMHgxMiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDQ3LCAweGY4LCAweDAwLCAweDExLCAweDdlLCAweDkyLCAweDAwLCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4N2UsIDB4ZjgsCi0JMHgwMCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg2YywgMHg4OSwKLQkweDAxLCAweDlhLCAweGY3LCAweGI4LCAweGVlLCAweGZjLCAweGYwLCAweDIwLAotCTB4ZmYsIDB4ZmYsIDB4ZjEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ZjgsIDB4NGQsCi0JMHgwMSwgMHhiZiwgMHhmMiwgMHg3MywgMHgwMSwgMHhiOSwgMHg0ZSwgMHgwMiwKLQkweGY0LCAweDk1LCAweGY1LCAweGUzLCAweDU2LCAweDAyLCAweDdlLCAweDAwLAotCTB4MTEsIDB4MDAsIDB4ZmEsIDB4NGMsIDB4MDEsIDB4YjcsIDB4NmIsIDB4MDMsCi0JMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwgMHhlZSwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDBkLCAweGE3LCAweGYwLCAweDc0LCAweDAxLCAweGM1LCAweDRhLCAweDExLAotCTB4NGEsIDB4MTYsIDB4NzIsIDB4MTEsIDB4MmEsIDB4ZTYsIDB4MTAsIDB4ZjgsCi0JMHgwMCwgMHgxMSwgMHhmYSwgMHg0NSwgMHgwMSwgMHhkYiwgMHhmNCwgMHg5NSwKLQkweGVlLCAweGZmLCAweDQ4LCAweDExLCAweGYwLCAweDAwLCAweDJhLCAweGM2LAotCTB4ODgsIDB4MTYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ZWUsCi0JMHhmZiwgMHhmZiwgMHhmNCwgMHhlMywgMHg2YywgMHhlOSwgMHhmZiwgMHhmZiwKLQkweDAxLCAweGQ1LCAweDEwLCAweGY4LCAweDJhLCAweGU3LCAweGY4LCAweDQ1LAotCTB4MDEsIDB4ZTIsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTcsIDB4ZjQsIDB4ZTMsCi0JMHhmMCwgMHg3NCwgMHgwMSwgMHhmZiwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxNiwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweGY3LCAweGI4LCAweGU5LCAweDIwLAotCTB4NGEsIDB4MTEsIDB4MDksIDB4ZjgsIDB4MmEsIDB4ZTYsIDB4ZjgsIDB4NGUsCi0JMHgwMSwgMHhmMywgMHhmMiwgMHg3MywgMHgwMSwgMHhmZCwgMHhmNCwgMHg5NSwKLQkweGU4LCAweDAxLCAweDcyLCAweDExLCAweDJhLCAweGU2LCAweDQ5LCAweDExLAotCTB4ODAsIDB4ZTEsIDB4MmEsIDB4YzYsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhlOCwgMHgwMCwgMHg4MSwgMHhmOCwgMHgyYSwgMHhlNiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweGY0LCAweDk1LCAweGYwLCAweDczLCAweDAyLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4MGYsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhmMCwgMHg3NCwgMHgwMiwgMHgwMiwgMHg4MCwgMHhmOCwgMHgyYSwgMHgxMCwKLQkweDczLCAweDA4LCAweDAwLCAweDA5LCAweDQwLCAweGY4LCAweDJhLCAweDE1LAotCTB4ODIsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHgwMywgMHhlOCwgMHhmNSwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwMiwgMHgyMSwKLQkweDcxLCAweGY4LCAweDJhLCAweDEwLCAweDJhLCAweDE1LCAweDU2LCAweGY4LAotCTB4MmEsIDB4MGMsIDB4ZjAsIDB4ZTMsIDB4NGUsIDB4ZjgsIDB4MmEsIDB4MTYsCi0JMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwgMHgyYSwgMHgwYywgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDA2LCAweDRhLCAweDA3LCAweDRhLCAweDFkLAotCTB4NjgsIDB4ZjgsIDB4MDAsIDB4MDcsIDB4N2QsIDB4M2YsIDB4NjksIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg0MCwgMHgwMCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxZCwKLQkweGZmLCAweGZjLCAweDZiLCAweGY4LCAweDJhLCAweDBmLCAweDAwLCAweDAxLAotCTB4OGEsIDB4MWQsIDB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4ZjQsIDB4ZWIsCi0JMHhlZSwgMHhmZCwgMHg3NiwgMHhmOCwgMHgyYSwgMHgwZiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweDAwLCAweDAwLCAweDAwLCAweGZiLCAweDgwLCAweDE5LCAweDRjLAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4MTEsCi0JMHhmOSwgMHg4MCwgMHgxOSwgMHgwNywgMHg4MCwgMHhmOCwgMHgyYSwgMHgwZSwKLQkweGY5LCAweDgwLCAweDE2LCAweDY2LCAweDc2LCAweDAwLCAweDJhLCAweDEyLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4MTEsIDB4ZjksIDB4ODAsIDB4MTgsIDB4ZTMsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHgwZSwgMHhmOSwgMHg4MCwgMHgxNiwgMHg2NiwKLQkweDEwLCAweGY4LCAweDJhLCAweDBlLCAweGY5LCAweDgwLCAweDE2LCAweDg3LAotCTB4ZWUsIDB4MDMsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjYsIDB4YjgsCi0JMHhmNCwgMHg5NSwgMHhmMCwgMHgyMCwgMHg4MCwgMHgwMCwgMHgxMSwgMHhmOCwKLQkweDJhLCAweDVhLCAweGY4LCAweDRkLCAweDAyLCAweDkzLCAweDExLCAweGY4LAotCTB4MmEsIDB4OWYsIDB4ZjgsIDB4NGMsIDB4MDIsIDB4N2MsIDB4NzcsIDB4MTIsCi0JMHgyYSwgMHgzOSwgMHg0OSwgMHgxMiwgMHgwMSwgMHhmOCwgMHgyYSwgMHg5ZiwKLQkweDg5LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTEsIDB4NmMsIDB4ZTEsIDB4ZmYsIDB4YWIsIDB4MDIsIDB4OTMsCi0JMHg2YiwgMHhmOCwgMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMSwgMHhlOSwgMHgwNSwKLQkweDAxLCAweGUyLCAweDAwLCAweDAzLCAweDgxLCAweGY4LCAweDJhLCAweGEwLAotCTB4ZjAsIDB4NzMsIDB4MDIsIDB4OTUsIDB4NzIsIDB4MTEsIDB4MmEsIDB4OWYsCi0JMHhmNCwgMHg5NSwgMHgxMCwgMHhlMSwgMHgyYSwgMHgzOSwgMHg2YiwgMHhmOCwKLQkweDJhLCAweDlmLCAweDAwLCAweDAxLCAweDExLCAweGY4LCAweDJhLCAweDlmLAotCTB4MDksIDB4ZjgsIDB4MmEsIDB4YTAsIDB4ZjgsIDB4NGMsIDB4MDIsIDB4OTMsCi0JMHg3NiwgMHhmOCwgMHgyYSwgMHg1YSwgMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwKLQkweDJhLCAweDlmLCAweDAwLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGEwLAotCTB4MDAsIDB4MDAsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwKLQkweDEwLCAweGY4LCAweDJhLCAweDVhLCAweGY4LCAweDQ0LCAweDAyLCAweGIyLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4NWEsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzQsCi0JMHgwMiwgMHg1OCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDgwLCAweDAwLCAweGY0LCAweGE5LCAweGY4LCAweDMwLCAweDAyLCAweGIyLAotCTB4NDgsIDB4MTEsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4ZmYsIDB4ODAsIDB4MDAsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YiwgMHhmOSwgMHg4MCwgMHgxOCwgMHhkNiwKLQkweGVlLCAweDAyLCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweGY0LCAweDk1LAotCTB4NGEsIDB4MDgsIDB4NGEsIDB4MDksIDB4NGEsIDB4MGEsIDB4NGEsIDB4MGIsCi0JMHg0YSwgMHgwYywgMHg0YSwgMHgwZCwgMHg0YSwgMHgxMCwgMHg0YSwgMHgxMSwKLQkweDRhLCAweDEyLCAweDRhLCAweDEzLCAweDRhLCAweDE0LCAweDRhLCAweDE1LAotCTB4NGEsIDB4MTYsIDB4NGEsIDB4MTcsIDB4NGEsIDB4MTcsIDB4NGEsIDB4MTksCi0JMHg0YSwgMHgwZSwgMHg0YSwgMHgwNiwgMHg0YSwgMHgwNywgMHg0YSwgMHgxYSwKLQkweDRhLCAweDFkLCAweDRhLCAweDFiLCAweDRhLCAweDFjLCAweDY4LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4N2QsIDB4M2YsIDB4NjksIDB4ZjgsIDB4MDAsIDB4MDcsCi0JMHg0MCwgMHgwMCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxZCwgMHhmZiwgMHhmYywKLQkweDQ4LCAweDE4LCAweDY4LCAweGY4LCAweDAwLCAweDE4LCAweGZmLCAweGZlLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NGEsIDB4MDgsIDB4ZWUsIDB4ZmQsCi0JMHhmMCwgMHg3NCwgMHgwMiwgMHg1OCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweDgwLCAweDAwLCAweGY0LCAweGE5LCAweGY4LCAweDMwLAotCTB4MDIsIDB4ZWYsIDB4NDgsIDB4MTEsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4ZmYsCi0JMHg4MCwgMHgwMCwgMHgxMCwgMHhmOCwgMHgyYSwgMHg1YiwgMHhmOSwgMHg4MCwKLQkweDE4LCAweGQ2LCAweGVlLCAweDAzLCAweDhhLCAweDE4LCAweGY0LCAweDk1LAotCTB4OGEsIDB4MWMsIDB4OGEsIDB4MWIsIDB4OGEsIDB4MWQsIDB4OGEsIDB4MWEsCi0JMHg4YSwgMHgwNywgMHg4YSwgMHgwNiwgMHg4YSwgMHgwZSwgMHg4YSwgMHgxOSwKLQkweDhhLCAweDE3LCAweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDE1LAotCTB4OGEsIDB4MTQsIDB4OGEsIDB4MTMsIDB4OGEsIDB4MTIsIDB4OGEsIDB4MTEsCi0JMHg4YSwgMHgxMCwgMHg4YSwgMHgwZCwgMHg4YSwgMHgwYywgMHg4YSwgMHgwYiwKLQkweDhhLCAweDBhLCAweDhhLCAweDA5LCAweDhhLCAweDA4LCAweGY0LCAweGViLAotCTB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MzksIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwgMHgyYSwgMHgxOCwgMHgxMCwgMHhlMiwKLQkweDAwLCAweDAxLCAweDgwLCAweGUxLCAweDAwLCAweDAxLCAweDEwLCAweGUyLAotCTB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwKLQkweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwgMHg2ZiwgMHhmOCwgMHgyYSwgMHg5ZSwKLQkweDBjLCAweDg4LCAweGU4LCAweGZmLCAweDE4LCAweGUxLCAweDAwLCAweDAxLAotCTB4MWEsIDB4ZjgsIDB4MmEsIDB4OWUsIDB4ZjAsIDB4MzAsIDB4MWYsIDB4ZmYsCi0JMHg4MCwgMHhmOCwgMHgyYSwgMHg5ZSwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLAotCTB4MDAsIDB4NTUsIDB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTEsIDB4ZTIsCi0JMHgwMCwgMHgwMSwgMHg4MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMSwgMHhlMiwKLQkweDAwLCAweDAyLCAweDgxLCAweGUxLCAweDAwLCAweDAyLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDMsIDB4MDAsIDB4MDIsIDB4NDgsIDB4MDgsIDB4NmYsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHgwYywgMHg5OCwgMHhmMCwgMHgzMCwgMHgwMCwgMHhmZiwKLQkweDgwLCAweGUxLCAweDAwLCAweDA1LCAweDc2LCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgyYSwgMHgzOSwKLQkweDc2LCAweDgxLCAweDAwLCAweDU1LCAweDc3LCAweDEyLCAweDJhLCAweDE4LAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MDEsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDEsCi0JMHgxMCwgMHhlMiwgMHgwMCwgMHgwMiwgMHg4MCwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweDA0LCAweDQ4LCAweDExLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMywgMHgyYSwgMHg3NiwgMHhlOSwgMHgwMCwgMHhlNSwgMHg5OCwKLQkweGYzLCAweDAwLCAweDAwLCAweDAxLCAweGY2LCAweGI4LCAweDQ4LCAweDBiLAotCTB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsIDB4ZjgsIDB4NDMsIDB4MDMsIDB4NzEsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHhhYSwgMHhmMCwgMHg3NCwgMHgwMiwgMHg5OCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGYwLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NzEsIDB4ODEsCi0JMHgwMCwgMHgxNCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgxNSwKLQkweDQ5LCAweDExLCAweGYzLCAweDAwLCAweDAwLCAweDAyLCAweDg5LCAweDExLAotCTB4ZTcsIDB4ODIsIDB4NmQsIDB4ZWEsIDB4MDAsIDB4MDQsIDB4ZTcsIDB4ODMsCi0JMHg2ZCwgMHhlYiwgMHgwMCwgMHgwYSwgMHg3NywgMHgxYSwgMHgwMCwgMHgwNSwKLQkweGYwLCAweDcyLCAweDAzLCAweGFhLCAweDExLCAweDgxLCAweGYyLCAweGU4LAotCTB4ODAsIDB4ODIsIDB4ZTksIDB4ZmYsIDB4MTksIDB4ZTEsIDB4MDAsIDB4MDEsCi0JMHhmMSwgMHhhMCwgMHg4MSwgMHg5MiwgMHgxMSwgMHhlMSwgMHgwMCwgMHgwYywKLQkweGYyLCAweGU4LCAweDgwLCAweDgzLCAweGU5LCAweGZmLCAweDE5LCAweGUxLAotCTB4MDAsIDB4MGQsIDB4ZjEsIDB4YTAsIDB4ODEsIDB4OTMsIDB4NmQsIDB4ZTksCi0JMHgwMCwgMHgwMiwgMHg0OCwgMHgxOCwgMHg0OSwgMHgxOCwgMHg3MCwgMHgwMCwKLQkweDAwLCAweDE1LCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweGYzLCAweDAwLAotCTB4MDAsIDB4MGEsIDB4ODAsIDB4MDEsIDB4ODEsIDB4MDIsIDB4ZjIsIDB4NzQsCi0JMHgwZSwgMHg1NCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNCwgMHhlZSwgMHgxMCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGYwLCAweDc0LAotCTB4MGMsIDB4NWUsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4NWMsIDB4NzcsIDB4MTIsCi0JMHgyYSwgMHgzOSwgMHg3NiwgMHg4MiwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMSwKLQkweDJhLCAweDE4LCAweDEwLCAweGUxLCAweDAwLCAweDAxLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDEsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMiwgMHgwMCwgMHgwMywgMHgwMCwgMHgxYywKLQkweGY2LCAweGI4LCAweDU2LCAweGY4LCAweDJhLCAweDE2LCAweGYwLCAweGYwLAotCTB4ZjAsIDB4ZjgsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MDcsIDB4NTYsIDB4ZjgsCi0JMHgyYSwgMHgxNiwgMHhmMSwgMHhmMCwgMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwKLQkweDgwLCAweGUyLCAweDAwLCAweDA2LCAweDU2LCAweGY4LCAweDJhLCAweDE2LAotCTB4ZjEsIDB4ZjgsIDB4ZTgsIDB4ZmYsIDB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwNSwgMHg1NywgMHhmOCwgMHgyYSwgMHgxNiwgMHhlOCwgMHhmZiwKLQkweGYyLCAweDgwLCAweDgwLCAweGUyLCAweDAwLCAweDA0LCAweDU2LCAweGY4LAotCTB4MjcsIDB4NmMsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjgsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwYiwgMHg1NiwgMHhmOCwgMHgyNywgMHg2YywgMHhmMSwgMHhmMCwKLQkweGU4LCAweGZmLCAweGYyLCAweDgwLCAweDgwLCAweGUyLCAweDAwLCAweDBhLAotCTB4NTYsIDB4ZjgsIDB4MjcsIDB4NmMsIDB4ZjEsIDB4ZjgsIDB4ZTgsIDB4ZmYsCi0JMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwOSwgMHhlOCwgMHhmZiwKLQkweDU3LCAweGY4LCAweDI3LCAweDZjLCAweGYyLCAweDgwLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDgsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NmEsIDB4ZjAsIDB4ZjAsCi0JMHhmMCwgMHhmOCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwZiwgMHg1NiwgMHhmOCwKLQkweDI3LCAweDZhLCAweGYxLCAweGYwLCAweGU4LCAweGZmLCAweGYyLCAweDgwLAotCTB4ODAsIDB4ZTIsIDB4MDAsIDB4MGUsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NmEsCi0JMHhmMSwgMHhmOCwgMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwKLQkweDAwLCAweDBkLCAweDU3LCAweGY4LCAweDI3LCAweDZhLCAweGU4LCAweGZmLAotCTB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MGMsIDB4NzYsIDB4ZTIsCi0JMHgwMCwgMHgxMywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwgMHgwMCwgMHgxMiwKLQkweDAwLCAweDAwLCAweDZmLCAweGY4LCAweDJhLCAweDVjLCAweDBjLCAweDU4LAotCTB4ODAsIDB4ZTIsIDB4MDAsIDB4MTEsIDB4ZTgsIDB4ZmYsIDB4MTgsIDB4ZjgsCi0JMHgyYSwgMHg1YywgMHg4MCwgMHhlMiwgMHgwMCwgMHgxMCwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDE3LCAweDAwLCAweDAwLCAweDc2LCAweGUyLCAweDAwLCAweDE2LAotCTB4MDAsIDB4MDAsIDB4NmYsIDB4ZjgsIDB4MmEsIDB4OWUsIDB4MGMsIDB4NTgsCi0JMHg4MCwgMHhlMiwgMHgwMCwgMHgxNSwgMHhlOCwgMHhmZiwgMHgxOCwgMHhmOCwKLQkweDJhLCAweDllLCAweDgwLCAweGUyLCAweDAwLCAweDE0LCAweDc2LCAweGUyLAotCTB4MDAsIDB4MWIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MWEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwgMHgwMCwgMHgxOSwgMHgwMCwgMHgwMCwKLQkweDcwLCAweGUyLCAweDAwLCAweDE4LCAweDI3LCAweDZlLCAweDc2LCAweGUyLAotCTB4MDAsIDB4MWYsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MWUsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwgMHgwMCwgMHgxZCwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUyLCAweDAwLCAweDFjLCAweDAwLCAweDAwLCAweDc2LCAweGUyLAotCTB4MDAsIDB4MjAsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwKLQkweDEwLCAweGY4LCAweDJhLCAweDM4LCAweGY4LCAweDQ1LCAweDA0LCAweGVkLAotCTB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwOCwKLQkweDZkLCAweGU5LCAweGZmLCAweGRmLCAweGY2LCAweGE5LCAweGY4LCAweDIwLAotCTB4MDQsIDB4NzUsIDB4ZjAsIDB4NzMsIDB4MDQsIDB4N2QsIDB4ZjAsIDB4MTAsCi0JMHgwMCwgMHgyMSwgMHhmMCwgMHgwMCwgMHgxYSwgMHg4MywgMHg0OCwgMHgwOCwKLQkweDdlLCAweGY4LCAweDAwLCAweDA4LCAweGY0LCAweGUyLCAweGYwLCAweDc0LAotCTB4MDMsIDB4MGEsIDB4ZjAsIDB4NzMsIDB4MDQsIDB4ZWEsIDB4NDgsIDB4MTIsCi0JMHhmMiwgMHg3NCwgMHgwMywgMHgyMywgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwKLQkweGYyLCAweDc0LCAweDAzLCAweDM2LCAweGY0LCAweDk1LCAweGU4LCAweDAwLAotCTB4ZjAsIDB4NzMsIDB4MDQsIDB4ZWEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MTgsCi0JMHhlOCwgMHhmZiwgMHg2ZiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwZCwgMHg0OCwKLQkweDE4LCAweGUxLCAweDAwLCAweDA1LCAweGYyLCAweDc0LCAweDA5LCAweDY5LAotCTB4ZjQsIDB4OTUsIDB4ZjIsIDB4YTAsIDB4ZjAsIDB4NzQsIDB4MDMsIDB4MzYsCi0JMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHg3NywgMHgxMSwgMHgyYSwgMHgxOCwKLQkweGU4LCAweGZmLCAweDZmLCAweGUxLCAweDAwLCAweDA0LCAweDBkLCAweDQ4LAotCTB4MTgsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4ZjIsIDB4NzQsIDB4MDksIDB4NDEsCi0JMHhmNCwgMHg5NSwgMHhmMiwgMHhhMCwgMHhmMCwgMHg3NCwgMHgwMywgMHgzNiwKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweGYwLCAweDc0LCAweDAzLCAweDU3LAotCTB4ZjAsIDB4NzMsIDB4MDQsIDB4ZWEsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4MWMsCi0JMHhmMCwgMHg3NCwgMHgxMiwgMHhhNCwgMHhmMiwgMHg3NCwgMHgwMywgMHgzNiwKLQkweGY0LCAweDk1LCAweGU4LCAweDAwLCAweGYwLCAweDczLCAweDA0LCAweGVhLAotCTB4NDgsIDB4MTIsIDB4ZjIsIDB4NzQsIDB4MDMsIDB4ODAsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHhmMiwgMHg3NCwgMHgwMywgMHgzNiwgMHhmNCwgMHg5NSwKLQkweGU4LCAweDAwLCAweGYwLCAweDczLCAweDA0LCAweGVhLCAweDEwLCAweGY4LAotCTB4MmEsIDB4MWMsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4YzUsIDB4ZjIsIDB4NzQsCi0JMHgwMywgMHgzNiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmMCwgMHg3MywKLQkweDA0LCAweGVhLCAweDc3LCAweDExLCAweDJhLCAweDE4LCAweGU4LCAweGZmLAotCTB4NmYsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MGQsIDB4NDgsIDB4MTgsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweGYyLCAweGEwLCAweDcwLCAweDAwLCAweDAwLCAweDEyLCAweDgwLCAweDAxLAotCTB4MTAsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MGUsIDB4N2EsCi0JMHhmMiwgMHg3NCwgMHgwMywgMHgzNiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweGYwLCAweDc0LCAweDAzLCAweGJjLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4MzgsIDB4MDAsIDB4MDAsIDB4ZWUsIDB4MDIsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwKLQkweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LCAweDc3LCAweDEyLAotCTB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDEsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwgMHgwMCwgMHgwMiwgMHg4MCwgMHhlMSwKLQkweDAwLCAweDAyLCAweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweDA5LAotCTB4NDgsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTIsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMywgMHgyYSwgMHg4NiwgMHhlOSwgMHgwMCwKLQkweGU1LCAweDk4LCAweGYzLCAweDAwLCAweDAwLCAweDAxLCAweGY2LCAweGI4LAotCTB4NDgsIDB4MGIsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsIDB4ZjgsIDB4NDMsCi0JMHgwNSwgMHgwYSwgMHg3NiwgMHg4MiwgMHgwMCwgMHhhYSwgMHhmMCwgMHg3NCwKLQkweDAyLCAweDk4LCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4NzcsIDB4MTEsIDB4MmEsIDB4MzksIDB4NzYsIDB4ODEsIDB4MDAsIDB4NTUsCi0JMHg3NywgMHgxMywgMHgyYSwgMHgxOCwgMHgxMCwgMHhlMywgMHgwMCwgMHgwMSwKLQkweDgwLCAweGUxLCAweDAwLCAweDAxLCAweDEwLCAweGUzLCAweDAwLCAweDAyLAotCTB4ODAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MTMsIDB4ZTMsIDB4MDAsIDB4MDMsCi0JMHg4MSwgMHhlMSwgMHgwMCwgMHgwMywgMHg0OCwgMHgxMSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDAwLCAweGY4LCAweDRkLCAweDA1LCAweDQ0LCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4ODgsIDB4MTIsIDB4NDgsIDB4MTMsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHg4OCwgMHgxMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweGU1LCAweDk4LCAweDZkLCAweDkxLCAweGY2LCAweGI4LCAweDQ4LCAweDExLAotCTB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsIDB4ZjgsIDB4NDMsIDB4MDUsIDB4M2EsCi0JMHhmMCwgMHgyMCwgMHgyYSwgMHgzOSwgMHg0OSwgMHgxMSwgMHhmNSwgMHgwMCwKLQkweDg5LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDQsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwKLQkweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LCAweDc3LCAweDEyLAotCTB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDEsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwgMHgwMCwgMHgwMiwgMHg4MCwgMHhlMSwKLQkweDAwLCAweDAyLCAweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweDBjLAotCTB4NDgsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTIsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMywgMHgyYSwgMHg3YSwgMHhlOSwgMHgwMCwKLQkweGU1LCAweDk4LCAweGYzLCAweDAwLCAweDAwLCAweDAxLCAweGY2LCAweGI4LAotCTB4NDgsIDB4MGIsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsIDB4ZjgsIDB4NDMsCi0JMHgwNSwgMHg2YSwgMHg3NiwgMHg4MiwgMHgwMCwgMHhhYSwgMHhmMCwgMHg3NCwKLQkweDAyLCAweDk4LCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4NzcsIDB4MTEsIDB4MmEsIDB4MzksIDB4NzYsIDB4ODEsIDB4MDAsIDB4NTUsCi0JMHg3NywgMHgxMiwgMHgyYSwgMHgxOCwgMHgxMCwgMHhlMiwgMHgwMCwgMHgwMSwKLQkweDgwLCAweGUxLCAweDAwLCAweDAxLCAweDEwLCAweGUyLCAweDAwLCAweDAyLAotCTB4ODAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDMsCi0JMHgwMCwgMHgxOSwgMHg0OCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwKLQkweDg4LCAweDEyLCAweGY0LCAweDk1LCAweDc3LCAweDEzLCAweDJhLCAweDVkLAotCTB4ZTksIDB4MDAsIDB4ZTUsIDB4OTgsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmNiwgMHhiOCwgMHg0OCwgMHgwYiwgMHgwOCwgMHhmOCwgMHgyYSwgMHgzYywKLQkweGY4LCAweDQzLCAweDA1LCAweDkzLCAweDc2LCAweDgyLCAweDAwLCAweGFhLAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHg4OCwgMHgxMSwgMHgxMCwgMHhmOCwgMHgyYSwgMHgzOCwKLQkweGY4LCAweDQ0LCAweDA1LCAweGUzLCAweDEwLCAweGY4LCAweDJhLCAweGExLAotCTB4ZjgsIDB4NDQsIDB4MDUsIDB4YmEsIDB4NmMsIDB4ZTEsIDB4ZmYsIDB4NTYsCi0JMHgwNSwgMHhlMywgMHg3MiwgMHgxMiwgMHgyYSwgMHhhMSwgMHhmNCwgMHg5NSwKLQkweDcwLCAweGUyLCAweDJhLCAweDE4LCAweDAwLCAweDExLCAweDZiLCAweGY4LAotCTB4MmEsIDB4YTEsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MDUsIDB4ZTMsCi0JMHg3MiwgMHgxMiwgMHgyYSwgMHhhMSwgMHhmNCwgMHg5NSwgMHg3MCwgMHhlMiwKLQkweDJhLCAweDE4LCAweDAwLCAweDExLCAweDEwLCAweGY4LCAweDJhLCAweGExLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg2ZSwgMHhlMiwgMHhmZiwgMHhmYywgMHgwNSwgMHhkMSwKLQkweDczLCAweDEyLCAweDJhLCAweGExLCAweDQ4LCAweDExLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDUsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4YTIsIDB4MTAsIDB4ZjgsCi0JMHgyYSwgMHhhMSwgMHgwOCwgMHhmOCwgMHgyYSwgMHhhMiwgMHhmOCwgMHg0NCwKLQkweDA1LCAweGUzLCAweDZjLCAweGUxLCAweGZmLCAweGFiLCAweDA1LCAweGRkLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4MzgsIDB4MDAsIDB4MDEsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHhhMSwgMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhMiwKLQkweDAwLCAweDAwLCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweGY0LCAweDk1LAotCTB4NGEsIDB4MDgsIDB4NGEsIDB4MDksIDB4NGEsIDB4MGEsIDB4NGEsIDB4MGIsCi0JMHg0YSwgMHgwYywgMHg0YSwgMHgwZCwgMHg0YSwgMHgxMCwgMHg0YSwgMHgxMSwKLQkweDRhLCAweDEyLCAweDRhLCAweDEzLCAweDRhLCAweDE0LCAweDRhLCAweDE1LAotCTB4NGEsIDB4MTYsIDB4NGEsIDB4MTcsIDB4NGEsIDB4MTcsIDB4NGEsIDB4MTksCi0JMHg0YSwgMHgwZSwgMHg0YSwgMHgwNiwgMHg0YSwgMHgwNywgMHg0YSwgMHgxYSwKLQkweDRhLCAweDFkLCAweDRhLCAweDFiLCAweDRhLCAweDFjLCAweDY4LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4N2QsIDB4M2YsIDB4NjksIDB4ZjgsIDB4MDAsIDB4MDcsCi0JMHg0MCwgMHgwMCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxZCwgMHhmZiwgMHhmYywKLQkweDQ4LCAweDE4LCAweDY4LCAweGY4LCAweDAwLCAweDE4LCAweGZmLCAweGZlLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NGEsIDB4MDgsIDB4ZWUsIDB4ZmYsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YiwgMHhmOSwgMHg4MCwgMHgxOCwgMHgwNCwKLQkweGYwLCAweDc0LCAweDA1LCAweGEyLCAweGVlLCAweDAxLCAweDhhLCAweDE4LAotCTB4ZjQsIDB4OTUsIDB4OGEsIDB4MWMsIDB4OGEsIDB4MWIsIDB4OGEsIDB4MWQsCi0JMHg4YSwgMHgxYSwgMHg4YSwgMHgwNywgMHg4YSwgMHgwNiwgMHg4YSwgMHgwZSwKLQkweDhhLCAweDE5LCAweDhhLCAweDE3LCAweDhhLCAweDE3LCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTUsIDB4OGEsIDB4MTQsIDB4OGEsIDB4MTMsIDB4OGEsIDB4MTIsCi0JMHg4YSwgMHgxMSwgMHg4YSwgMHgxMCwgMHg4YSwgMHgwZCwgMHg4YSwgMHgwYywKLQkweDhhLCAweDBiLCAweDhhLCAweDBhLCAweDhhLCAweDA5LCAweDhhLCAweDA4LAotCTB4ZjQsIDB4ZWIsIDB4ZWUsIDB4ZmQsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4MzgsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHg1YSwgMHgwMCwgMHgwMCwKLQkweGU4LCAweDAxLCAweDRlLCAweDAwLCAweGZiLCAweDgwLCAweDE3LCAweGQ2LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4NWIsCi0JMHg3NiwgMHgwMCwgMHgyYSwgMHg4ZiwgMHhmOSwgMHg4MCwgMHgxNiwgMHhhYSwKLQkweDEwLCAweGY4LCAweDJhLCAweDViLCAweGY5LCAweDgwLCAweDE3LCAweDVjLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsIDB4MTcsIDB4NmYsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHg2NiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgxYSwKLQkweGZiLCAweDgwLCAweDE2LCAweDg3LCAweGY0LCAweDk1LCAweGU4LCAweDFhLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4NjYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWIsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHg4NywgMHhmNCwgMHg5NSwgMHhlOCwgMHgxYiwKLQkweGVlLCAweDAzLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGY0LCAweDk1LAotCTB4MTMsIDB4MDIsIDB4ODgsIDB4MTEsIDB4ZTgsIDB4MDAsIDB4ZjgsIDB4NGQsCi0JMHgwNiwgMHg2YSwgMHhmMywgMHgxMCwgMHgwMCwgMHgwMSwgMHg4OSwgMHgxYSwKLQkweGY0LCAweDk1LCAweGYwLCAweDcyLCAweDA2LCAweDY5LCAweDFjLCAweDkxLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsCi0JMHgxMiwgMHgwMywgMHgxMSwgMHgwMiwgMHhmOCwgMHg0NSwgMHgwNiwgMHg3OSwKLQkweGYwLCAweDEwLCAweDAwLCAweDAxLCAweDg4LCAweDFhLCAweGY0LCAweDk1LAotCTB4ZjAsIDB4NzIsIDB4MDYsIDB4NzgsIDB4ODEsIDB4OTEsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwKLQkweDAwLCAweDExLCAweDExLCAweDAzLCAweDYxLCAweGY4LCAweDAwLCAweDExLAotCTB4MDAsIDB4MDEsIDB4ZjgsIDB4MzAsIDB4MDYsIDB4OTEsIDB4ZjYsIDB4YjgsCi0JMHg2ZiwgMHhmOCwgMHgwMCwgMHgxMSwgMHgwYywgMHgxZiwgMHg4OCwgMHgxMSwKLQkweGYzLCAweGU4LCAweGU4LCAweGZmLCAweDE4LCAweDgxLCAweGYxLCAweGEwLAotCTB4ODEsIDB4ODEsIDB4ZjAsIDB4NzMsIDB4MDYsIDB4OWQsIDB4ZjYsIDB4YjgsCi0JMHg2ZiwgMHhmOCwgMHgwMCwgMHgxMSwgMHgwYywgMHgxZiwgMHg4OCwgMHgxMSwKLQkweGYzLCAweDMwLCAweDAwLCAweGZmLCAweGYwLCAweDIwLCAweGZmLCAweDAwLAotCTB4MTgsIDB4ODEsIDB4ZjEsIDB4YTAsIDB4ODEsIDB4ODEsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHgxMSwgMHgwMiwKLQkweDYxLCAweGY4LCAweDAwLCAweDBiLCAweDAwLCAweDAxLCAweGY4LCAweDIwLAotCTB4MDYsIDB4YjEsIDB4NDksIDB4MGIsIDB4ZjYsIDB4MWYsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwgMHhmMiwgMHg3MywKLQkweDA2LCAweGI4LCAweGYwLCAweDMwLCAweDAwLCAweGZmLCAweDQ5LCAweDBiLAotCTB4ZjYsIDB4MWYsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHgxMiwgMHg4MSwgMHhmNCwgMHg3OCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweDAyLCAweDAwLCAweDEyLAotCTB4MTMsIDB4MDMsIDB4ODgsIDB4MTEsIDB4ZTgsIDB4MDAsIDB4ZjgsIDB4NGQsCi0JMHgwNiwgMHhjYywgMHhmMywgMHgxMCwgMHgwMCwgMHgwMSwgMHg4OSwgMHgxYSwKLQkweGY0LCAweDk1LCAweGYwLCAweDcyLCAweDA2LCAweGNiLCAweDExLCAweDkyLAotCTB4ZjIsIDB4YzAsIDB4ODEsIDB4OTEsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg4OCwgMHgxMiwgMHgxMiwgMHgwMiwgMHg3MSwgMHgwMSwgMHgwMCwgMHgxMywKLQkweGY4LCAweDQ1LCAweDA2LCAweGRiLCAweGYwLCAweDEwLCAweDAwLCAweDAxLAotCTB4ODgsIDB4MWEsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4NzIsIDB4MDYsIDB4ZGEsCi0JMHhlNSwgMHg5OCwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwKLQkweDg4LCAweDExLCAweDExLCAweDA0LCAweDEwLCAweDA2LCAweDcxLCAweDA1LAotCTB4MDAsIDB4MTIsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTIsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwNiwgMHhlYSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweGY2LCAweGI4LCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweDZmLCAweGY4LAotCTB4MDAsIDB4MTIsIDB4MGYsIDB4MWYsIDB4NDgsIDB4MDgsIDB4ODEsIDB4MDAsCi0JMHhmNCwgMHg3ZiwgMHg4MCwgMHgwMSwgMHhmMiwgMHg3NCwgMHgwNiwgMHhiYSwKLQkweGY0LCAweDk1LCAweDQ4LCAweDExLCAweGVlLCAweDAyLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsIDB4ODgsIDB4MTIsCi0JMHgxMSwgMHgwNCwgMHgxMCwgMHgwNiwgMHg3MSwgMHgwNSwgMHgwMCwgMHgxMywKLQkweDYxLCAweGY4LCAweDAwLCAweDEzLCAweDAwLCAweDAxLCAweGY4LCAweDIwLAotCTB4MDcsIDB4MDksIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg4OCwgMHgxMSwgMHhmNiwgMHhiOCwgMHg2ZiwgMHhmOCwKLQkweDAwLCAweDEzLCAweDBmLCAweDFmLCAweDgxLCAweDAwLCAweDQ4LCAweDExLAotCTB4ZjQsIDB4N2YsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4NzQsIDB4MDYsIDB4Y2UsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgxMiwgMHg0OCwgMHgxMSwgMHhmMCwgMHgzMCwKLQkweGZmLCAweGZlLCAweGVlLCAweDAyLCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4NGEsIDB4MTcsIDB4ZWUsIDB4ZmMsCi0JMHhmNCwgMHg5NSwgMHg4MCwgMHgwMiwgMHg3MSwgMHgwOCwgMHgwMCwgMHgxNiwKLQkweDEwLCAweDA5LCAweDcxLCAweDBiLCAweDAwLCAweDE3LCAweDgwLCAweDAzLAotCTB4NzEsIDB4MGEsIDB4MDAsIDB4MTEsIDB4NDgsIDB4MTcsIDB4ZjgsIDB4NDUsCi0JMHgwNywgMHgzZiwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxMSwgMHgxMCwgMHgwMywKLQkweGYwLCAweDc0LCAweDA2LCAweDlmLCAweDgwLCAweDAxLCAweDcwLCAweDAwLAotCTB4MDAsIDB4MTYsIDB4MTAsIDB4MDIsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4N2IsCi0JMHg2ZCwgMHg5MSwgMHg2ZCwgMHg5NiwgMHg2YywgMHhlZiwgMHhmZiwgMHhmZiwKLQkweDA3LCAweDJmLCAweGVlLCAweDA0LCAweDhhLCAweDE3LCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHhlOCwgMHgwOCwgMHhmOCwgMHgyYSwgMHhlOSwKLQkweGY4LCAweDQ1LCAweDA3LCAweDY0LCAweDc2LCAweDAwLCAweDAwLCAweDAxLAotCTB4NjIsIDB4ZjgsIDB4MmEsIDB4ZTksIDB4MDAsIDB4NWUsIDB4ZjIsIDB4NzQsCi0JMHgxMiwgMHgwYiwgMHhmMCwgMHgwMCwgMHgzMCwgMHg0MCwgMHg3MiwgMHgxMSwKLQkweDJhLCAweGU5LCAweDc3LCAweDEwLCAweDAwLCAweDBmLCAweGY1LCAweGE5LAotCTB4ZjgsIDB4MjAsIDB4MDcsIDB4NjEsIDB4NmIsIDB4ZjgsIDB4MmEsIDB4ZTksCi0JMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywgMHgwNywgMHg2NCwgMHg3NiwgMHhmOCwKLQkweDJhLCAweGU5LCAweDAwLCAweDAwLCAweGVlLCAweDAyLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4ZTgsIDB4MDAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOCwgMHhlOCwgMHgwMCwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDA5LCAweGY2LCAweGI4LAotCTB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ZmMsIDB4M2YsIDB4NzUsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHgwZCwgMHhmMCwgMHgyMCwgMHgwYywgMHgzMCwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDBjLCAweDc2LCAweGY4LAotCTB4MmEsIDB4ZTgsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4ZTksCi0JMHgwMCwgMHgwMCwgMHg2YywgMHg4MSwgMHgwNywgMHg5MiwgMHg3NiwgMHhmOCwKLQkweDJhLCAweGVhLCAweDAwLCAweDAwLCAweGZiLCAweDgwLCAweDE2LCAweDc2LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MTAsIDB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwNywgMHhhOCwKLQkweDc2LCAweGY4LCAweDJhLCAweGVhLCAweDAwLCAweDAxLCAweGZiLCAweDgwLAotCTB4MTYsIDB4NjYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MTAsIDB4ZmIsIDB4ODAsCi0JMHgxNiwgMHg4NywgMHhmNCwgMHg5NSwgMHhlOCwgMHgxMCwgMHhlOCwgMHgwMCwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweGY2LCAweGI4LAotCTB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ZmYsIDB4ZmYsIDB4NzUsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweGY0LCAweDk1LCAweDRhLCAweDA4LCAweDRhLCAweDA5LCAweDRhLCAweDBhLAotCTB4NGEsIDB4MDYsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWQsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg3ZCwgMHgzZiwgMHg2OSwgMHhmOCwgMHgwMCwgMHgwNywKLQkweDQwLCAweDAwLCAweDY4LCAweGY4LCAweDAwLCAweDFkLCAweGZmLCAweGZjLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZWEsIDB4ZjgsIDB4NDUsIDB4MDcsIDB4ZTEsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHhlOCwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweGYwLCAweDMwLCAweDAwLCAweDBmLCAweDgwLCAweGY4LCAweDJhLCAweGU4LAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTgsIDB4ZjgsIDB4NDQsIDB4MDcsIDB4ZDYsCi0JMHhmNiwgMHhiOCwgMHhmNCwgMHg5NSwgMHhmMCwgMHgyMCwgMHhmYywgMHgzZiwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDBkLCAweGYwLCAweDIwLAotCTB4MGMsIDB4MzAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MGMsCi0JMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwKLQkweGY2LCAweGI4LCAweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZmLCAweGZmLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4OGEsIDB4MWQsCi0JMHg4YSwgMHgwNywgMHg4YSwgMHgwNiwgMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwKLQkweDhhLCAweDA4LCAweGY0LCAweGViLCAweGVlLCAweGZmLCAweGYyLCAweDc0LAotCTB4MDcsIDB4NjcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsIDB4ZWUsIDB4MDEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgwNywgMHg0YSwgMHgxZCwgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHg4YSwgMHgxZCwgMHg4YSwgMHgwNywgMHhmNCwgMHhlYiwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDAwLCAweDI4LCAweDc2LCAweDgxLCAweDI0LCAweDAwLAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHhmMiwgMHg3NCwgMHgwNywgMHg2NywgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweDc3LCAweDExLCAweDAwLCAweDFkLCAweDY4LCAweDgxLCAweDAwLCAweDdmLAotCTB4ZjYsIDB4YjgsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ZmYsIDB4ODAsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgxZCwgMHhmMCwgMHgzMCwgMHgwMSwgMHgwMCwKLQkweDFhLCAweDgxLCAweDgwLCAweDgxLCAweGYwLCAweDc0LCAweDBhLCAweDMzLAotCTB4ZjAsIDB4NzQsIDB4MTEsIDB4YWMsIDB4ZjksIDB4ODAsIDB4MTMsIDB4MjUsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg1MywgMHhmOSwgMHg4MCwgMHgxNywgMHg4MiwKLQkweGYwLCAweDc0LCAweDA2LCAweDJmLCAweGY5LCAweDgwLCAweDE0LCAweGIyLAotCTB4ZjksIDB4ODAsIDB4MTksIDB4MTAsIDB4ZjAsIDB4NzQsIDB4MGQsIDB4ZTMsCi0JMHhmMCwgMHg3NCwgMHgwNywgMHhlOCwgMHhmMCwgMHg3NCwgMHgwMiwgMHgzNiwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDYwLCAweGY4LAotCTB4MjcsIDB4N2IsIDB4ZmYsIDB4ZmYsIDB4ZjgsIDB4MzAsIDB4MDgsIDB4MzksCi0JMHg3MSwgMHhmOCwgMHgyNywgMHg3YiwgMHgyNywgMHg3OSwgMHg2MCwgMHhmOCwKLQkweDI3LCAweDc5LCAweGZmLCAweGZmLCAweGY4LCAweDMwLCAweDA4LCAweGIyLAotCTB4MTAsIDB4ZjgsIDB4MjksIDB4ODYsIDB4MDgsIDB4ZjgsIDB4MjcsIDB4NzksCi0JMHhmMCwgMHgzMCwgMHg3ZiwgMHhmZiwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweDQwLCAweDAwLCAweGY2LCAweGE5LCAweGY4LCAweDMwLAotCTB4MDgsIDB4NTgsIDB4MTAsIDB4ZjgsIDB4MjcsIDB4NzksIDB4MDgsIDB4ZjgsCi0JMHgyNywgMHg3YSwgMHhmMCwgMHgzMCwgMHg3ZiwgMHhmZiwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweDc3LCAweDEwLCAweDQwLCAweDAwLCAweGY2LCAweGE5LAotCTB4ZjgsIDB4MjAsIDB4MDgsIDB4NjMsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4NzksCi0JMHhmZiwgMHhmZiwgMHg3NiwgMHhmOCwgMHgyNywgMHg3YiwgMHhmZiwgMHhmZiwKLQkweGY3LCAweGI4LCAweGYyLCAweDczLCAweDA4LCAweGQ5LCAweGYwLCAweDIwLAotCTB4ZmYsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NzQsCi0JMHhmMCwgMHhmOSwgMHg4OCwgMHgxMSwgMHg1NiwgMHhmOCwgMHgyNywgMHg3MiwKLQkweGYwLCAweGY5LCAweDg4LCAweDEyLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4ZTcsIDB4MjAsIDB4ZjQsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MDgsIDB4OGYsCi0JMHhmMSwgMHgyMCwgMHgyNywgMHg3YywgMHg0OCwgMHgxMSwgMHhmNiwgMHgwMCwKLQkweDg4LCAweDEzLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweDgzLAotCTB4MDgsIDB4ZjgsIDB4MjcsIDB4NzksIDB4ZjAsIDB4MzAsIDB4N2YsIDB4ZmYsCi0JMHg4OCwgMHgxMywgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwKLQkweGY1LCAweGFiLCAweGY4LCAweDMwLCAweDA4LCAweDhmLCAweDZkLCAweDkxLAotCTB4NDgsIDB4MTEsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4ZmYsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhlNywgMHgyMCwgMHhmNywgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDA4LCAweDc0LCAweDZkLCAweDg5LCAweDQ4LCAweDExLCAweGYwLCAweDMwLAotCTB4MDEsIDB4ZmYsIDB4ZjAsIDB4ZTcsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MDgsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3NCwgMHg0OCwgMHgwOCwgMHhmMSwgMHhmOSwKLQkweDg5LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDcxLCAweGUxLAotCTB4MjcsIDB4N2MsIDB4MjcsIDB4N2EsIDB4NjAsIDB4ZjgsIDB4MjcsIDB4N2IsCi0JMHhmZiwgMHhmZiwgMHhmOCwgMHgzMCwgMHgwOCwgMHhhYiwgMHg0OCwgMHgwOCwKLQkweDRlLCAweGY4LCAweDI3LCAweDcyLCAweDc2LCAweGY4LCAweDI3LCAweDdiLAotCTB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4NzksIDB4ZmYsIDB4ZmYsCi0JMHhmMiwgMHg3MywgMHgwOCwgMHhkOSwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweDQ0LCAweGY4LCAweDI3LCAweDczLCAweDQwLCAweGY4LCAweDI3LCAweDc1LAotCTB4ODIsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHg4MCwgMHgwMCwgMHhmNiwgMHhhOSwgMHhmOCwgMHgyMCwgMHgwOCwgMHhkOCwKLQkweGY2LCAweGI4LCAweDEwLCAweGY4LCAweDI3LCAweDczLCAweGYwLCAweDAwLAotCTB4ODAsIDB4MDAsIDB4NDgsIDB4MDgsIDB4NGUsIDB4ZjgsIDB4MjcsIDB4NzQsCi0JMHg0OCwgMHgwOCwgMHhmMCwgMHhmOSwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweDcxLCAweGUxLCAweDI3LCAweDdjLCAweDI3LCAweDdhLAotCTB4ZjcsIDB4YjgsIDB4NTcsIDB4ZjgsIDB4MjcsIDB4NzQsIDB4ZjAsIDB4NjIsCi0JMHhmZiwgMHhmZiwgMHhmMCwgMHg0MCwgMHhmZiwgMHg4MCwgMHhmMiwgMHg4MCwKLQkweDRlLCAweGY4LCAweDI3LCAweDc0LCAweGU4LCAweDAwLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4ZWUsIDB4ZmIsCi0JMHgxMSwgMHhmOCwgMHgyNywgMHg3MSwgMHgwOSwgMHhmOCwgMHgyNywgMHg3MywKLQkweDg5LCAweDExLCAweDg4LCAweDEwLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4ZjYsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MDgsIDB4ZWQsIDB4ZjIsIDB4NzMsCi0JMHgwOSwgMHgwZSwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmNiwgMHgyMCwKLQkweDc2LCAweDAwLCAweDAwLCAweDQxLCAweGYwLCAweDc0LCAweDEyLCAweGVlLAotCTB4ODgsIDB4MTYsIDB4ZjQsIDB4OTUsIDB4ZjcsIDB4YjgsIDB4NmQsIDB4OTYsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxNiwgMHhmOCwgMHg0NywgMHgwOSwgMHgwYSwKLQkweGU3LCAweDYxLCAweDc2LCAweDAwLCAweDAwLCAweDAwLCAweDc2LCAweDAxLAotCTB4MDAsIDB4ODAsIDB4NzYsIDB4MDIsIDB4MDAsIDB4ZmYsIDB4NzYsIDB4MDMsCi0JMHgwMCwgMHgwMCwgMHhmMiwgMHg3NCwgMHgwYywgMHhiOSwgMHhmNCwgMHg5NSwKLQkweGU4LCAweDAwLCAweDZjLCAweGU5LCAweGZmLCAweGZmLCAweDA4LCAweGZiLAotCTB4NzMsIDB4MTYsIDB4MDAsIDB4MGUsIDB4ZjAsIDB4NjYsIDB4MDAsIDB4NDEsCi0JMHhlZSwgMHgwNSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweDAyLCAweDAwLCAweDEzLAotCTB4ZjYsIDB4YjgsIDB4NzcsIDB4MTEsIDB4N2YsIDB4ZmYsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHg0OCwgMHgxMSwgMHhmMiwgMHg4MCwgMHhmMCwgMHgwMCwKLQkweDgwLCAweDAwLCAweDg4LCAweDExLCAweGY2LCAweDQwLCAweGYwLCAweGUwLAotCTB4ZjEsIDB4ZjEsIDB4ZTgsIDB4MDEsIDB4ZjIsIDB4ODAsIDB4ODAsIDB4ZjgsCi0JMHgyNywgMHg3OCwgMHg3NywgMHgxMiwgMHg4MCwgMHgwMCwgMHg1NywgMHhmOCwKLQkweDI3LCAweDcyLCAweDQ4LCAweDEyLCAweGYyLCAweDgwLCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODIsIDB4MDksIDB4MzgsCi0JMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwKLQkweGYwLCAweDczLCAweDA5LCAweDNkLCAweGYwLCAweDIwLCAweDgwLCAweDAxLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4NzAsIDB4ODEsCi0JMHgwMCwgMHgxMywgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweGYwLCAweDMwLCAweDdmLCAweGZmLCAweDExLCAweGY4LCAweDI5LCAweDg2LAotCTB4ZjUsIDB4MjAsIDB4ZjMsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODksIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA5LCAweDU0LCAweGYyLCAweDczLCAweDA5LCAweDY3LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDIsIDB4NmYsIDB4ZjgsIDB4MjcsIDB4N2EsCi0JMHgwZCwgMHgyMCwgMHhmMywgMHgzMCwgMHg3ZiwgMHhmZiwgMHg4OSwgMHgxMSwKLQkweGY0LCAweDk1LCAweDc3LCAweDEwLCAweDQwLCAweDAwLCAweGY2LCAweGE5LAotCTB4ZjgsIDB4MjAsIDB4MDksIDB4NjQsIDB4ZjIsIDB4NzMsIDB4MDksIDB4NjcsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgwMSwgMHg4MCwgMHhmOCwgMHgyNywgMHg3YiwKLQkweGU4LCAweDAwLCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4MTEsIDB4ZjgsIDB4MjksIDB4ODYsIDB4ZjUsIDB4MjAsIDB4ZjMsIDB4MzAsCi0JMHg3ZiwgMHhmZiwgMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDQwLCAweDAwLCAweGY2LCAweGE5LCAweGY4LCAweDIwLCAweDA5LCAweDdhLAotCTB4ZjIsIDB4NzMsIDB4MDksIDB4OGQsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDIsCi0JMHg2ZiwgMHhmOCwgMHgyNywgMHg3YSwgMHgwZCwgMHgyMCwgMHhmMywgMHgzMCwKLQkweDdmLCAweGZmLCAweDg5LCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4NDAsIDB4MDAsIDB4ZjYsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MDksIDB4OGEsCi0JMHhmMiwgMHg3MywgMHgwOSwgMHg4ZCwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMSwKLQkweDgwLCAweGY4LCAweDI3LCAweDc5LCAweGU4LCAweDAwLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzEsIDB4MDIsCi0JMHgwMCwgMHgxMiwgMHg4OCwgMHgxMSwgMHhmNiwgMHhiOCwgMHg1NywgMHhmOCwKLQkweDI3LCAweDcyLCAweGYwLCAweDIwLCAweDdmLCAweGZmLCAweGYyLCAweDgwLAotCTB4ZjAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4ODAsIDB4ODEsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHhlOCwgMHgwMSwgMHhmMywgMHhmMSwgMHhmMiwgMHg4MCwKLQkweDgwLCAweGY4LCAweDI3LCAweDc4LCAweDc3LCAweDExLCAweDgwLCAweDAwLAotCTB4NDgsIDB4MTEsIDB4NTcsIDB4ZjgsIDB4MjcsIDB4NzIsIDB4ZjIsIDB4ODAsCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MSwKLQkweDA5LCAweGI1LCAweGU4LCAweDAwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MDksIDB4YmEsIDB4ZjAsIDB4MjAsCi0JMHg4MCwgMHgwMSwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwKLQkweDQ1LCAweGY4LCAweDI3LCAweDcxLCAweDQzLCAweGY4LCAweDI3LCAweDczLAotCTB4ODMsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZTcsIDB4MjAsCi0JMHhmNiwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwOSwgMHhjOSwgMHhmMiwgMHg3MywKLQkweDA5LCAweGU0LCAweDc3LCAweDEyLCAweDAwLCAweDAwLCAweDU3LCAweGY4LAotCTB4MjcsIDB4NzIsIDB4ZjAsIDB4MjAsIDB4N2YsIDB4ZmYsIDB4ZjIsIDB4ODAsCi0JMHg0OSwgMHgxMiwgMHhmNSwgMHgwMCwgMHhmMywgMHgwMCwgMHg4MCwgMHgwMCwKLQkweDYxLCAweGY4LCAweDAwLCAweDBiLCAweDgwLCAweDAwLCAweGY4LCAweDMwLAotCTB4MDksIDB4ZGMsIDB4ZjEsIDB4MjAsIDB4ODAsIDB4MDAsIDB4ZjUsIDB4MjAsCi0JMHg4OSwgMHgxMiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMiwgMHg2ZiwgMHhmOCwKLQkweDI3LCAweDczLCAweDBkLCAweDAwLCAweGY0LCAweDk1LCAweDQ5LCAweDBiLAotCTB4NGYsIDB4ZjgsIDB4MjcsIDB4NzIsIDB4OGEsIDB4MTEsIDB4ZmUsIDB4MDAsCi0JMHg0OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwKLQkweDRhLCAweDE3LCAweGVlLCAweGZjLCAweGY0LCAweDk1LCAweDcxLCAweDA4LAotCTB4MDAsIDB4MTYsIDB4ODgsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MDgsIDB4MzAsCi0JMHg0OCwgMHgxOCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwgMHhmMiwgMHg3NCwKLQkweDA5LCAweDhmLCAweGYwLCAweDAwLCAweDAwLCAweDAyLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsIDB4MGEsIDB4MGEsCi0JMHhmMiwgMHg3NCwgMHgwOCwgMHhkYiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNiwKLQkweDQ4LCAweDE4LCAweDcwLCAweDAwLCAweDAwLCAweDE2LCAweGYyLCAweDc0LAotCTB4MDksIDB4OGYsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ODgsIDB4MTEsCi0JMHgxMCwgMHgwMiwgMHg3MCwgMHgwMSwgMHgwMCwgMHgxMSwgMHg4MCwgMHgwMCwKLQkweGYyLCAweDc0LCAweDA2LCAweGNlLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LAotCTB4NDksIDB4MTEsIDB4NDgsIDB4MTcsIDB4ZjYsIDB4MDAsIDB4ODgsIDB4MTcsCi0JMHhlNywgMHg2MCwgMHhmNSwgMHhhOSwgMHhmOCwgMHgyMCwgMHgwYSwgMHgyZCwKLQkweDQ4LCAweDE2LCAweGY2LCAweDIwLCAweDg4LCAweDExLCAweDQ4LCAweDE4LAotCTB4NzAsIDB4MDAsIDB4MDAsIDB4MTEsIDB4ZjIsIDB4NzQsIDB4MDksIDB4OGYsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4OCwgMHgxMSwgMHg3MCwgMHgwMSwKLQkweDAwLCAweDExLCAweDEwLCAweDAyLCAweDgwLCAweDAwLCAweGYyLCAweDc0LAotCTB4MDYsIDB4Y2UsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTcsIDB4ZWUsIDB4MDQsCi0JMHg0OCwgMHgxNiwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweGVlLCAweGZkLCAweGU4LCAweDAwLCAweDRlLCAweGY4LAotCTB4MjcsIDB4NzAsIDB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MjcsIDB4NzIsCi0JMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwgMHgyNywgMHg3NCwgMHhlOCwgMHgwMCwKLQkweDRlLCAweGY4LCAweDI3LCAweDc2LCAweDc2LCAweGY4LCAweDI3LCAweDc5LAotCTB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4N2EsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhmOCwgMHgyNywgMHg3YiwgMHhmZiwgMHhmZiwgMHg3NiwgMHhmOCwKLQkweDI3LCAweDc4LCAweDAwLCAweDAwLCAweGU4LCAweDAwLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHgwMSwgMHgwMiwgMHgwMCwgMHhmMiwgMHg3NCwgMHgxMiwgMHhkYywKLQkweGYwLCAweDIwLCAweDI3LCAweDdjLCAweGVlLCAweDAzLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmMsIDB4ZjQsIDB4OTUsIDB4NGUsIDB4MDAsCi0JMHg3NywgMHgxMiwgMHg3ZiwgMHhmZiwgMHhmNiwgMHhiOCwgMHg0OSwgMHgxMiwKLQkweGYxLCAweDgwLCAweGYzLCAweDAwLCAweDgwLCAweDAwLCAweDg5LCAweDEyLAotCTB4ZjAsIDB4ZTAsIDB4ZjEsIDB4ZjEsIDB4NGYsIDB4MDIsIDB4ZTksIDB4MDEsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgwYiwgMHhmNSwgMHg0MCwgMHg1NiwgMHgwMiwKLQkweGYxLCAweDgwLCAweDgxLCAweGY4LCAweDI3LCAweDc4LCAweDc3LCAweDExLAotCTB4ODAsIDB4MDAsIDB4NTYsIDB4MDAsIDB4NDksIDB4MTEsIDB4ZjEsIDB4ODAsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MSwKLQkweDBhLCAweDgxLCAweGU4LCAweDAwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MGEsIDB4ODYsIDB4ZjAsIDB4MjAsCi0JMHg4MCwgMHgwMSwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwKLQkweDEwLCAweDgyLCAweGVlLCAweDA0LCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsIDB4ZjQsIDB4OTUsIDB4NGUsIDB4MDAsCi0JMHg3NywgMHgxMSwgMHg3ZiwgMHhmZiwgMHhmNiwgMHhiOCwgMHg0OSwgMHgxMSwKLQkweGYxLCAweDgwLCAweGYzLCAweDAwLCAweDgwLCAweDAwLCAweDg5LCAweDExLAotCTB4ZjAsIDB4ZTAsIDB4ZjEsIDB4ZjEsIDB4ZTgsIDB4MDEsIDB4ZjIsIDB4ODAsCi0JMHg4MCwgMHhmOCwgMHgyNywgMHg3OCwgMHg1NiwgMHgwMCwgMHhmMSwgMHgyMCwKLQkweDgwLCAweDAwLCAweGYxLCAweDgwLCAweGY0LCAweDk1LCAweDQ5LCAweDBiLAotCTB4ZjgsIDB4NGQsIDB4MGEsIDB4YWIsIDB4ZjAsIDB4MjAsIDB4ODAsIDB4MDEsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywKLQkweDBhLCAweGFmLCAweGU4LCAweDAwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LAotCTB4MDAsIDB4MDEsIDB4ZWUsIDB4MDIsIDB4NDgsIDB4MTEsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg4OCwgMHgxMiwgMHgxMywgMHgwMiwKLQkweDc3LCAweDExLCAweDAwLCAweDAwLCAweGY4LCAweDRkLCAweDBhLCAweGNiLAotCTB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MWEsIDB4ZjQsIDB4OTUsCi0JMHhmMCwgMHg3MiwgMHgwYSwgMHhjYSwgMHg0OCwgMHgxMSwgMHgxYywgMHhmOCwKLQkweDI5LCAweDdlLCAweDg4LCAweDExLCAweDExLCAweGY4LCAweDI5LCAweDdlLAotCTB4ZjIsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODAsIDB4ZjgsIDB4MjksIDB4N2UsCi0JMHg4MSwgMHg5MiwgMHg0OCwgMHgxMSwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweDAyLCAweDAwLCAweDExLAotCTB4ODgsIDB4MTIsIDB4ZjYsIDB4YjgsIDB4ZjAsIDB4MjAsIDB4N2YsIDB4ZmYsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg3MCwgMHhmMiwgMHg4MCwgMHhmMCwgMHgwMCwKLQkweDgwLCAweDAwLCAweDgwLCAweDgyLCAweDU3LCAweGY4LCAweDI3LCAweDcwLAotCTB4ZTgsIDB4MDEsIDB4ZjMsIDB4ZjEsIDB4ZjIsIDB4ODAsIDB4ODAsIDB4ZjgsCi0JMHgyNywgMHg3OCwgMHg3NywgMHgxMiwgMHg4MCwgMHgwMCwgMHg0OCwgMHgxMiwKLQkweDU3LCAweGY4LCAweDI3LCAweDcwLCAweGYyLCAweDgwLCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODIsIDB4MGEsIDB4ZjQsCi0JMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwKLQkweGYwLCAweDczLCAweDBhLCAweGY5LCAweGYwLCAweDIwLCAweDgwLCAweDAxLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4NDUsIDB4ZjgsCi0JMHgyNywgMHg3NSwgMHhlNywgMHgxMCwgMHg0MywgMHhmOCwgMHgyNywgMHg3MSwKLQkweDgzLCAweGY4LCAweDAwLCAweDEyLCAweDZkLCAweGU4LCAweDAwLCAweDA0LAotCTB4NmQsIDB4OGEsIDB4ZjYsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MGIsIDB4MGEsCi0JMHhmMiwgMHg3MywgMHgwYiwgMHgyNSwgMHg3NywgMHgxMSwgMHgwMCwgMHgwMCwKLQkweDU3LCAweGY4LCAweDI3LCAweDcwLCAweGYwLCAweDIwLCAweDdmLCAweGZmLAotCTB4ZjIsIDB4ODAsIDB4NDksIDB4MTEsIDB4ZjUsIDB4MDAsIDB4ZjMsIDB4MDAsCi0JMHg4MCwgMHgwMCwgMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHg4MCwgMHgwMCwKLQkweGY4LCAweDMwLCAweDBiLCAweDFkLCAweGYxLCAweDIwLCAweDgwLCAweDAwLAotCTB4ZjUsIDB4MjAsIDB4ODksIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg2ZiwgMHhmOCwgMHgyNywgMHg3MSwgMHgwZCwgMHgwMCwgMHhmNCwgMHg5NSwKLQkweDQ5LCAweDBiLCAweDRmLCAweGY4LCAweDI3LCAweDcwLCAweDQ4LCAweDExLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsCi0JMHg0YSwgMHgxNywgMHhlZSwgMHhmMCwgMHg4OCwgMHgxNywgMHgxMCwgMHgxNywKLQkweDgwLCAweDA1LCAweDEwLCAweDE2LCAweDgwLCAweDA2LCAweDEwLCAweDE1LAotCTB4ODAsIDB4MDcsIDB4NzEsIDB4MTQsIDB4MDAsIDB4MTEsIDB4MTAsIDB4MDUsCi0JMHhmMCwgMHgzMCwgMHgwMCwgMHgwMSwgMHg4OCwgMHgxMCwgMHgxMCwgMHgwNiwKLQkweGYwLCAweDMwLCAweDAwLCAweDAxLCAweDgwLCAweDA4LCAweDQ5LCAweDExLAotCTB4MTAsIDB4MDUsIDB4ZjYsIDB4MDEsIDB4ODAsIDB4MDksIDB4MTAsIDB4MDYsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDBiLCAweDRiLCAweDEwLCAweDA5LCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4ODAsIDB4MDksIDB4NzEsIDB4MDgsIDB4MDAsIDB4MTIsIDB4ZjQsIDB4YWEsCi0JMHhmOCwgMHgzMCwgMHgwYiwgMHg1NCwgMHgxMCwgMHgwOSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDAxLCAweDgwLCAweDA5LCAweDEyLCAweDA5LCAweDQ5LCAweDExLAotCTB4ZjQsIDB4N2YsIDB4ODAsIDB4MDksIDB4ZjYsIDB4MjAsIDB4ODAsIDB4MGEsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg3MCwgMHg0ZSwgMHgwYywgMHgxMCwgMHgwOSwKLQkweDgwLCAweDAwLCAweDQ4LCAweDE4LCAweGYyLCAweDc0LCAweDBhLCAweGNlLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTYsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg2YywgMHg4NiwgMHgwYiwgMHg2ZCwgMHhmMiwgMHg3MywKLQkweDBjLCAweDU5LCAweGY0LCAweDk1LCAweGU4LCAweDAwLCAweGY2LCAweGI4LAotCTB4ZjQsIDB4OTUsIDB4NTYsIDB4MGMsIDB4ZjAsIDB4ZjksIDB4ODgsIDB4MTIsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MCwgMHhlMiwgMHgyNywgMHg3YywKLQkweDI5LCAweDg2LCAweGU4LCAweDAwLCAweDgwLCAweDBlLCAweDQ4LCAweDExLAotCTB4ZjgsIDB4NDUsIDB4MGIsIDB4Y2MsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDEsCi0JMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwYiwgMHg4OSwgMHg2YywgMHhlMSwKLQkweGZmLCAweGZkLCAweDBiLCAweDhiLCAweDEwLCAweGU3LCAweDAwLCAweDAyLAotCTB4ODAsIDB4MGUsIDB4ZjAsIDB4NzMsIDB4MGIsIDB4OGIsIDB4MTAsIDB4ODcsCi0JMHg4MCwgMHgwZSwgMHhlNywgMHgxMCwgMHhmNSwgMHhhZSwgMHhmOCwgMHgyMCwKLQkweDBiLCAweGIyLCAweDcwLCAweDAwLCAweDAwLCAweDE3LCAweDcwLCAweDAxLAotCTB4MDAsIDB4MTYsIDB4MTAsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4Y2UsCi0JMHg0OCwgMHgxNywgMHg0OSwgMHgxNiwgMHhmNiwgMHgwMCwgMHg4OCwgMHgxNywKLQkweDQ4LCAweDExLCAweGY2LCAweDIwLCAweDg4LCAweDExLCAweDEwLCAweDA5LAotCTB4ZjYsIDB4MjAsIDB4ODAsIDB4MDAsIDB4NDgsIDB4MTgsIDB4ZjIsIDB4NzQsCi0JMHgwYSwgMHhjZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg4OCwgMHgxNiwKLQkweDEwLCAweDA0LCAweDcwLCAweDAwLCAweDAwLCAweDE3LCAweDcwLCAweDAxLAotCTB4MDAsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4Y2UsIDB4NDgsIDB4MTEsCi0JMHgwMCwgMHgwNCwgMHg4MCwgMHgwNCwgMHhmMCwgMHg3MywgMHgwYiwgMHhiYywKLQkweDcwLCAweDAwLCAweDAwLCAweDE3LCAweDcwLCAweDAxLCAweDAwLCAweDExLAotCTB4MTAsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4Y2UsIDB4NDgsIDB4MTEsCi0JMHgwMCwgMHgwNCwgMHg4MCwgMHgwNCwgMHg0OSwgMHgxMSwgMHg0OCwgMHgxNiwKLQkweGY2LCAweDIwLCAweDg4LCAweDE2LCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4NmMsIDB4ODYsIDB4MGIsIDB4Y2MsIDB4MTAsIDB4MGEsIDB4ODAsIDB4MDAsCi0JMHg0OCwgMHgxOCwgMHhmMiwgMHg3NCwgMHgwYSwgMHhjZSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDA0LCAweDg4LCAweDE2LCAweDEyLCAweDBhLCAweGY4LCAweDQ1LAotCTB4MGMsIDB4MzMsIDB4NzEsIDB4MGEsIDB4MDAsIDB4MTAsIDB4ZjQsIDB4YWUsCi0JMHhmOCwgMHgzMCwgMHgwYywgMHgxYywgMHg0OCwgMHgxNiwgMHhmMCwgMHhlMSwKLQkweDg4LCAweDExLCAweDEyLCAweDA4LCAweGY4LCAweDQ1LCAweDBiLCAweGRiLAotCTB4NmQsIDB4ODksIDB4MTIsIDB4MDcsIDB4ZjgsIDB4NDUsIDB4MGIsIDB4ZTksCi0JMHgxMCwgMHgwNywgMHg4MCwgMHgwMCwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxMSwKLQkweDEwLCAweDA2LCAweDgwLCAweDAxLCAweDEwLCAweDA0LCAweGYwLCAweDc0LAotCTB4MDYsIDB4ZGMsIDB4ZjAsIDB4NzMsIDB4MGIsIDB4ZWYsIDB4NDgsIDB4MTEsCi0JMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwgMHgxMCwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDBhLCAweGIzLCAweDExLCAweDBlLCAweGYxLCAweGMwLCAweDgxLCAweDBlLAotCTB4MTAsIDB4MDYsIDB4NDksIDB4MTEsIDB4ZjYsIDB4MDAsIDB4ODAsIDB4MDYsCi0JMHgxMCwgMHgwNSwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDAxLCAweDQ4LCAweDA4LCAweDZmLCAweDAwLCAweDBjLCAweDlmLAotCTB4NDgsIDB4MTgsIDB4ZjIsIDB4NzQsIDB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHgxMiwgMHgwNywgMHhmOCwgMHg0NSwgMHgwYywgMHgxMSwKLQkweDEwLCAweDA3LCAweDgwLCAweDAwLCAweDcwLCAweDAyLCAweDAwLCAweDExLAotCTB4MTAsIDB4MDYsIDB4ODAsIDB4MDEsIDB4MTAsIDB4MDQsIDB4ZjAsIDB4NzQsCi0JMHgwNiwgMHhkYywgMHhmMCwgMHg3MywgMHgwYywgMHgxNywgMHg0OCwgMHgxMSwKLQkweDZmLCAweDAwLCAweDBjLCAweDlmLCAweDEwLCAweDA0LCAweGYwLCAweDc0LAotCTB4MGEsIDB4YjMsIDB4MTEsIDB4MGUsIDB4ZjEsIDB4YzAsIDB4ODEsIDB4MGUsCi0JMHhmMCwgMHg3MywgMHgwYywgMHgzMywgMHgxMiwgMHgwNywgMHhmOCwgMHg0NSwKLQkweDBjLCAweDJhLCAweDEwLCAweDA3LCAweDgwLCAweDAwLCAweDEwLCAweDA2LAotCTB4ODAsIDB4MDEsIDB4MTAsIDB4MDUsIDB4ODAsIDB4MDIsIDB4MTAsIDB4MDQsCi0JMHhmMCwgMHg3NCwgMHgwNiwgMHhkYywgMHhmMCwgMHg3MywgMHgwYywgMHgzMCwKLQkweDEyLCAweDA1LCAweDZmLCAweDAwLCAweDBjLCAweDlmLCAweDEwLCAweDA0LAotCTB4ZjAsIDB4NzQsIDB4MGEsIDB4YjMsIDB4MTEsIDB4MGUsIDB4ZjEsIDB4YzAsCi0JMHg4MSwgMHgwZSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMSwgMHg0OCwgMHgxOCwKLQkweGYyLCAweDc0LCAweDBhLCAweGNlLCAweGYwLCAweDAwLCAweDAwLCAweDA0LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTEsIDB4NzAsIDB4ODEsIDB4MjksIDB4ODYsCi0JMHgxMCwgMHgwZSwgMHgxYywgMHhmOCwgMHgyOSwgMHg4NiwgMHg4MCwgMHgwZSwKLQkweDc2LCAweDAwLCAweDAwLCAweDAxLCAweDQ4LCAweDE4LCAweGYyLCAweDc0LAotCTB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MTAsIDB4MGUsCi0JMHg3MSwgMHgwNCwgMHgwMCwgMHgxMSwgMHg4MCwgMHg4MSwgMHgxMCwgMHhmOCwKLQkweDI5LCAweDg2LCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweGYwLCAweDMwLAotCTB4N2YsIDB4ZmYsIDB4ODAsIDB4ZjgsIDB4MjksIDB4ODYsIDB4MTAsIDB4MDksCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgwOSwgMHhlZSwgMHgxMCwKLQkweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NzUsIDB4MDgsIDB4ZjgsIDB4MjcsIDB4NzEsCi0JMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwgMHg0OCwgMHgwOCwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweGVlLCAweGZmLCAweGY0LCAweDk1LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTYsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0OCwgMHgwOCwgMHg0ZSwgMHhmOCwgMHgyOSwgMHg3YywgMHg2ZCwgMHhlZSwKLQkweGZmLCAweGZkLCAweDQ4LCAweDE2LCAweGY4LCAweDQ1LCAweDBjLCAweDk5LAotCTB4NTYsIDB4ZjgsIDB4MjksIDB4N2MsIDB4ZjAsIDB4NzQsIDB4MGEsIDB4NWEsCi0JMHg4OCwgMHgxMSwgMHgxMCwgMHhmOCwgMHgyOSwgMHg3ZCwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDAxLCAweDQ4LCAweDA4LCAweDRlLCAweGY4LCAweDI5LCAweDdjLAotCTB4MTAsIDB4ZjgsIDB4MjksIDB4ODIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhhOSwKLQkweGZhLCAweDMwLCAweDBjLCAweDk2LCAweDgwLCAweGY4LCAweDI5LCAweDgyLAotCTB4NTYsIDB4ZjgsIDB4MjksIDB4ODAsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0ZSwgMHhmOCwgMHgyOSwgMHg4MCwgMHg3MywgMHgxMSwgMHgyOSwgMHg4MiwKLQkweDZjLCAweGVlLCAweGZmLCAweGZmLCAweDBjLCAweDc2LCAweGVlLCAweDAxLAotCTB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHg3NiwgMHhmOCwgMHgyOSwgMHg4NCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwKLQkweDI5LCAweDg1LCAweDAwLCAweDAxLCAweGU4LCAweDAwLCAweDRlLCAweGY4LAotCTB4MmEsIDB4MGMsIDB4NzYsIDB4ZjgsIDB4MjksIDB4ODYsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhmOCwgMHgyOSwgMHg4NywgMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwKLQkweDI5LCAweDg4LCAweDc2LCAweDgxLCAweGFhLCAweGFhLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDEsIDB4YWEsIDB4YWEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweGVlLCAweGZjLCAweGY0LCAweDk1LCAweDcxLCAweDA2LCAweDAwLCAweDE0LAotCTB4NzEsIDB4MDcsIDB4MDAsIDB4MTMsIDB4NzEsIDB4MDgsIDB4MDAsIDB4MTIsCi0JMHg3MSwgMHgwOSwgMHgwMCwgMHgxNSwgMHg3NywgMHgxMCwgMHgwMCwgMHhmZiwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDBkLCAweDQ0LCAweDQ5LCAweDEzLAotCTB4NTMsIDB4ZjgsIDB4MmEsIDB4MGMsIDB4NGYsIDB4ZjgsIDB4MmEsIDB4MGMsCi0JMHg3MywgMHgxMiwgMHgwMCwgMHgwZSwgMHhmMSwgMHg2NiwgMHgwMCwgMHgwZCwKLQkweDg5LCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLCAweDAwLCAweDAxLAotCTB4NzEsIDB4ZTEsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MTEsIDB4ZjQsIDB4YTksCi0JMHhmOCwgMHgzMCwgMHgwZCwgMHgxNywgMHg3NywgMHgxMCwgMHgwMCwgMHgwMiwKLQkweGY0LCAweGE5LCAweGY4LCAweDMwLCAweDBjLCAweGVjLCAweDc3LCAweDExLAotCTB4MjksIDB4OGEsIDB4NzYsIDB4ODEsIDB4MDAsIDB4MDAsIDB4ZTgsIDB4MDAsCi0JMHg3NywgMHgxNCwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMywgMHgwMCwgMHgwMCwKLQkweGYwLCAweDczLCAweDBkLCAweDQ4LCAweDZjLCAweDgzLCAweDBjLCAweGZhLAotCTB4NzcsIDB4MTEsIDB4MjksIDB4OGEsIDB4NDgsIDB4MTIsIDB4ZjAsIDB4ZTgsCi0JMHhmMCwgMHg0MCwgMHg4MCwgMHgwMCwgMHg4MCwgMHg4MSwgMHhlOCwgMHgwMCwKLQkweDc3LCAweDE0LCAweDAwLCAweDAwLCAweGYwLCAweDczLCAweDBkLCAweDQ4LAotCTB4NDksIDB4MTMsIDB4ZjMsIDB4NDAsIDB4ODAsIDB4MDAsIDB4ODEsIDB4ZjgsCi0JMHgyOSwgMHg4YSwgMHg2MSwgMHhmOCwgMHgwMCwgMHgxNSwgMHgwMCwgMHgwMSwKLQkweGY4LCAweDIwLCAweDBkLCAweDA3LCAweDY5LCAweGY4LCAweDI5LCAweDhhLAotCTB4NDAsIDB4MDAsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTQsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwZCwgMHgwZiwgMHg2OSwgMHhmOCwgMHgyOSwgMHg4YSwKLQkweDIwLCAweDAwLCAweDc3LCAweDExLCAweDI5LCAweDhhLCAweDQ5LCAweDEyLAotCTB4ZjMsIDB4ZTgsIDB4MWIsIDB4ODEsIDB4ODEsIDB4ODEsIDB4ZjAsIDB4NzMsCi0JMHgwZCwgMHg0OCwgMHgxMSwgMHhmOCwgMHgyOSwgMHg4NCwgMHhmOCwgMHg0YywKLQkweDBkLCAweDM3LCAweDc3LCAweDExLCAweDI5LCAweDg4LCAweDc2LCAweDgxLAotCTB4YWEsIDB4YWEsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODUsIDB4ZjMsIDB4MTAsCi0JMHgwMCwgMHgwMSwgMHhmMywgMHg0MCwgMHhhYSwgMHgwMCwgMHg4MSwgMHhlMSwKLQkweDAwLCAweDAxLCAweDc2LCAweDAwLCAweDAwLCAweDAyLCAweDgwLCAweDAxLAotCTB4NzAsIDB4MDIsIDB4MDAsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDAsIDB4MTMsCi0JMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwKLQkweDcxLCAweGY4LCAweDI5LCAweDg1LCAweDI5LCAweDg0LCAweGYwLCAweDczLAotCTB4MGQsIDB4NzMsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDEsCi0JMHg3NiwgMHgwMiwgMHgwMCwgMHgwMCwgMHg3MCwgMHgwMywgMHgwMCwgMHgxMywKLQkweGYyLCAweDc0LCAweDBiLCAweDI4LCAweGY0LCAweDk1LCAweGU4LCAweDAwLAotCTB4ZjAsIDB4NzMsIDB4MGQsIDB4NzMsIDB4NzcsIDB4MTEsIDB4MjksIDB4OGEsCi0JMHg3MCwgMHg4MSwgMHgwMCwgMHgxMywgMHgxMSwgMHhmOCwgMHgyOSwgMHg4NCwKLQkweGY4LCAweDRjLCAweDBkLCAweDY4LCAweDc3LCAweDExLCAweDI5LCAweDg4LAotCTB4NzYsIDB4ODEsIDB4YWEsIDB4YWEsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODUsCi0JMHhmMywgMHgxMCwgMHgwMCwgMHgwMSwgMHhmMywgMHg0MCwgMHhhYSwgMHgwMCwKLQkweDgxLCAweGUxLCAweDAwLCAweDAxLCAweDc2LCAweDAwLCAweDAwLCAweDAzLAotCTB4ODAsIDB4MDEsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTQsIDB4NzAsIDB4MDMsCi0JMHgwMCwgMHgxMywgMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwKLQkweDQ4LCAweDExLCAweDcxLCAweGY4LCAweDI5LCAweDg1LCAweDI5LCAweDg0LAotCTB4ZjAsIDB4NzMsIDB4MGQsIDB4NzMsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg4MCwgMHgwMSwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxNCwgMHg3MCwgMHgwMywKLQkweDAwLCAweDEzLCAweGYyLCAweDc0LCAweDBiLCAweDI4LCAweGY0LCAweDk1LAotCTB4NDgsIDB4MTEsIDB4NmIsIDB4ZjgsIDB4MjksIDB4ODQsIDB4ZmYsIDB4ZmYsCi0JMHhlZSwgMHgwNCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweGY1LCAweDQwLCAweGY0LCAweDk1LCAweDQ4LCAweDBiLCAweGY0LCAweDc4LAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ZTEsCi0JMHhmZiwgMHhiOSwgMHgwZCwgMHg4OCwgMHhmMiwgMHg3MywgMHgwZCwgMHhhNSwKLQkweGY0LCAweDk1LCAweGU4LCAweDYwLCAweGYyLCAweDAwLCAweDAwLCAweDA2LAotCTB4NjEsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4MDAsIDB4MjAsIDB4ZjgsIDB4MzAsCi0JMHgwZCwgMHg5OCwgMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHgwMCwgMHgwMSwKLQkweGY4LCAweDIwLCAweDBkLCAweGEzLCAweGYyLCAweDAwLCAweDAwLCAweDA3LAotCTB4ZjAsIDB4NzMsIDB4MGQsIDB4YTMsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsCi0JMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwgMHgwZCwgMHhhMSwgMHhmMiwgMHg3MywKLQkweDBkLCAweGEzLCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDIsIDB4NDgsIDB4MDgsIDB4ZjQsIDB4N2YsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHhlZSwgMHhmZiwgMHhmMCwgMHg3NCwgMHgwNywgMHhmZCwKLQkweGYwLCAweDc0LCAweDA3LCAweDQ0LCAweGYwLCAweDc0LCAweDBkLCAweGI0LAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4MDUsIDB4ZjAsIDB4NzQsIDB4MDQsIDB4NjAsCi0JMHhmMCwgMHg3MywgMHgwZCwgMHhhYSwgMHhlZSwgMHhmZCwgMHgxMCwgMHhmOCwKLQkweDJhLCAweGEzLCAweGY4LCAweDQ0LCAweDBkLCAweGNiLCAweDEwLCAweGY4LAotCTB4MmEsIDB4YTQsIDB4ZjgsIDB4NDUsIDB4MGQsIDB4ZDcsIDB4NzYsIDB4MDAsCi0JMHgwMiwgMHgwMCwgMHhmMiwgMHg3NCwgMHgwOSwgMHhlOCwgMHhmMCwgMHgyMCwKLQkweDIyLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGE0LCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4YTcsIDB4MDAsIDB4MDAsIDB4ZjAsIDB4NzMsCi0JMHgwZCwgMHhkNywgMHg3NiwgMHgwMCwgMHgwMiwgMHgwMCwgMHhmMiwgMHg3NCwKLQkweDA5LCAweGU4LCAweGYwLCAweDIwLCAweDIwLCAweDAwLCAweDc2LCAweGY4LAotCTB4MmEsIDB4YTMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTcsCi0JMHgwMCwgMHgwMSwgMHhmMCwgMHg3NCwgMHgwYywgMHg1ZSwgMHhmMCwgMHhlMCwKLQkweGYwLCAweDEwLCAweDNhLCAweDk4LCAweGY4LCAweDQ3LCAweDBkLCAweGUxLAotCTB4NzYsIDB4ZjgsIDB4MjcsIDB4NmUsIDB4MDAsIDB4MDAsIDB4ZWUsIDB4MDMsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwgMHg3NywgMHgxMSwKLQkweDIwLCAweDAwLCAweDc2LCAweDAwLCAweGFhLCAweGFhLCAweDc2LCAweDAxLAotCTB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MDYsIDB4NmMsIDB4ZjQsIDB4OTUsCi0JMHg0OCwgMHgxMSwgMHg3NiwgMHgwMCwgMHg1NSwgMHg1NSwgMHg3NiwgMHgwMSwKLQkweDAyLCAweDAwLCAweDQ4LCAweDExLCAweGYyLCAweDc0LCAweDA2LCAweDZjLAotCTB4ZjAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhNCwgMHgwMCwgMHgwMCwKLQkweGU4LCAweDAwLCAweDRlLCAweDAwLCAweGZiLCAweDgwLCAweDE1LCAweDNlLAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDQsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4YTUsCi0JMHg3NiwgMHgwMCwgMHgyYSwgMHhhOCwgMHhmOSwgMHg4MCwgMHgxNCwgMHg4NywKLQkweDc2LCAweDAwLCAweDJhLCAweGFkLCAweGZiLCAweDgwLCAweDEzLCAweDYyLAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDIsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4YTUsCi0JMHhmOSwgMHg4MCwgMHgxNCwgMHg2MywgMHhmYiwgMHg4MCwgMHgxNiwgMHg2NiwKLQkweGY0LCAweDk1LCAweGU4LCAweDFjLCAweGZiLCAweDgwLCAweDE2LCAweDg3LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWMsIDB4ZTgsIDB4MDEsIDB4NGUsIDB4MDAsCi0JMHhmYiwgMHg4MCwgMHgxNywgMHhkNiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweDgwLCAweGY4LCAweDJhLCAweGE2LCAweDc2LCAweDAwLCAweDJhLCAweGI3LAotCTB4ZjksIDB4ODAsIDB4MTYsIDB4YWEsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4YTYsCi0JMHhmOSwgMHg4MCwgMHgxNywgMHg1YywgMHgxMCwgMHhmOCwgMHgyYSwgMHhhNiwKLQkweGY5LCAweDgwLCAweDE3LCAweDZmLCAweGVlLCAweDAyLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4ZjQsIDB4OTUsIDB4NGEsIDB4MDgsIDB4NGEsIDB4MDksCi0JMHg0YSwgMHgwYSwgMHg0YSwgMHgwNywgMHg0YSwgMHgxZCwgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHhhNywgMHhmOCwgMHg0NCwgMHgwZSwgMHg0YiwKLQkweDc2LCAweGY4LCAweDJhLCAweGEzLCAweDAwLCAweDAxLCAweGYwLCAweDczLAotCTB4MGUsIDB4NGUsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTQsIDB4MDAsIDB4MDEsCi0JMHg4YSwgMHgxZCwgMHg4YSwgMHgwNywgMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwKLQkweDhhLCAweDA4LCAweGY0LCAweGViLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZmUsIDB4ODgsIDB4MGUsIDB4NzEsIDB4MDgsCi0JMHgwMCwgMHgxNiwgMHg3MSwgMHgwNiwgMHgwMCwgMHgxNywgMHgxMSwgMHgwNywKLQkweGYwLCAweDY2LCAweDAwLCAweDBkLCAweGYwLCAweDAwLCAweDI1LCAweGEwLAotCTB4ODgsIDB4MTEsIDB4NzYsIDB4MDEsIDB4MDAsIDB4MDYsIDB4ODEsIDB4MDAsCi0JMHhmMiwgMHg3NCwgMHgwNiwgMHhjZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDc2LCAweDAxLCAweDAwLCAweDA2LCAweDcwLCAweDAwLCAweDAwLCAweDE2LAotCTB4NDgsIDB4MTEsIDB4ZjIsIDB4NzQsIDB4MDYsIDB4Y2UsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNywgMHg3MCwgMHg4MSwgMHgwMCwgMHgxNywgMHhlZSwgMHgwMiwKLQkweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4ODgsIDB4MGUsIDB4NzEsIDB4MDIsIDB4MDAsIDB4MTIsCi0JMHgxMSwgMHgwMywgMHhmMCwgMHg2NiwgMHgwMCwgMHgwZCwgMHhmMCwgMHgwMCwKLQkweDI0LCAweDAwLCAweDg4LCAweDExLCAweGY0LCAweDk1LCAweDcwLCAweDgxLAotCTB4MDAsIDB4MTIsIDB4NmUsIDB4ZTIsIDB4ZmYsIDB4ZmUsIDB4MGUsIDB4OGQsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhlOCwgMHgwMSwgMHg4MCwgMHhlMSwKLQkweDAwLCAweDAyLCAweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweGZmLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwYiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYywKLQkweDAwLCAweDAwLCAweDgxLCAweGUxLCAweDAwLCAweDAxLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmMsIDB4ODgsIDB4MGUsCi0JMHhmNCwgMHg5NSwgMHhmMSwgMHg2NiwgMHgwMCwgMHgwZCwgMHhmMywgMHgwMCwKLQkweDI0LCAweDAwLCAweDg5LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwYiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDAxLCAweDc2LCAweDAwLCAweDAwLCAweDAwLCAweDc2LCAweDAxLAotCTB4MDAsIDB4MDAsIDB4ODAsIDB4MDIsIDB4NzYsIDB4MDMsIDB4MDAsIDB4MDAsCi0JMHhmMiwgMHg3NCwgMHgwYywgMHhiOSwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGVlLCAweDA0LCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4ODgsIDB4MTksIDB4ZjQsIDB4OTUsIDB4NzMsIDB4MTksIDB4MDAsIDB4MGUsCi0JMHhmMSwgMHg2NiwgMHgwMCwgMHgwZCwgMHhmMiwgMHgwMCwgMHgyNCwgMHgwMCwKLQkweDc3LCAweDE1LCAweDI1LCAweGEwLCAweDc3LCAweDE0LCAweDAwLCAweDAwLAotCTB4NzcsIDB4MWEsIDB4MDAsIDB4MWYsIDB4ZjAsIDB4NzIsIDB4MGYsIDB4MTQsCi0JMHhmNiwgMHhiOCwgMHg0OSwgMHgxOSwgMHgwOSwgMHg4NSwgMHhmOCwgMHg0YywKLQkweDBmLCAweDEzLCAweGYxLCAweDAwLCAweDAwLCAweDA1LCAweDg5LCAweDExLAotCTB4NDksIDB4MTUsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTMsCi0JMHg0OSwgMHgxNSwgMHhmMywgMHgwMCwgMHgwMCwgMHgwNywgMHg4OSwgMHgxMiwKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDEwLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODAsIDB4MGYsIDB4MTMsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTAsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MCwgMHgwZiwgMHgxMywKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDEwLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODAsIDB4MGYsIDB4MTMsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MSwgMHgwZiwgMHgxMywKLQkweDZkLCAweDk0LCAweDZkLCAweGVkLCAweDAwLCAweDBkLCAweDQ4LCAweDE0LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsCi0JMHg0YSwgMHgxNywgMHhlZSwgMHhmOCwgMHg4OCwgMHgxNywgMHgxMCwgMHgwZCwKLQkweDgwLCAweDA0LCAweDEwLCAweDBjLCAweDgwLCAweDA1LCAweDcxLCAweDBlLAotCTB4MDAsIDB4MTYsIDB4NzMsIDB4MTcsIDB4MDAsIDB4MGUsIDB4ZjAsIDB4NjYsCi0JMHgwMCwgMHgwZCwgMHhmMCwgMHgwMCwgMHgyNCwgMHgwMCwgMHg4OCwgMHgxMSwKLQkweDEwLCAweGY4LCAweDI3LCAweDYzLCAweGY4LCAweDQ1LCAweDBmLCAweDMyLAotCTB4ZjIsIDB4NzQsIDB4MGUsIDB4OWYsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTcsCi0JMHgxMCwgMHhmOCwgMHgyNywgMHg2MCwgMHhmOCwgMHg0NCwgMHgwZiwgMHgzZCwKLQkweDYwLCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDAxLCAweGY4LCAweDIwLAotCTB4MGYsIDB4NmQsIDB4ZjAsIDB4NzMsIDB4MTEsIDB4MzMsIDB4MTAsIDB4MDQsCi0JMHg4MCwgMHgwMCwgMHgxMCwgMHgwNSwgMHhmMCwgMHg3NCwgMHgwNiwgMHg5ZiwKLQkweDExLCAweDA0LCAweGYzLCAweDAwLCAweDAwLCAweDAxLCAweDgxLCAweDA0LAotCTB4NmQsIDB4OGUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHgwMCwgMHgxMiwgMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwKLQkweDBmLCAweDYyLCAweDc3LCAweDEwLCAweDAwLCAweDAyLCAweGY0LCAweGFhLAotCTB4ZjgsIDB4MzAsIDB4MGYsIDB4NmQsIDB4NDUsIDB4ZTEsIDB4MDAsIDB4MGIsCi0JMHg4OCwgMHgxMCwgMHg0MywgMHhlMSwgMHgwMCwgMHgwYywgMHg4MywgMHhmOCwKLQkweDAwLCAweDEyLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGY0LCAweGFhLAotCTB4ZjgsIDB4MzAsIDB4MGYsIDB4NmQsIDB4ZjAsIDB4NzMsIDB4MGYsIDB4OTYsCi0JMHhmNSwgMHgwMCwgMHg4MSwgMHgwNCwgMHg0OSwgMHgxNiwgMHhmNSwgMHgyMCwKLQkweDg5LCAweDE2LCAweDc2LCAweGUxLCAweDAwLCAweDBjLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NDgsIDB4MTYsCi0JMHhmOCwgMHg0NSwgMHgxMSwgMHgzMywgMHhmNywgMHhiOCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDAyLCAweDAwLCAweDEyLCAweDEwLCAweGY4LCAweDAwLCAweDEyLAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDMsIDB4ZjgsIDB4NDYsIDB4MGYsIDB4OGMsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxMiwgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMywKLQkweGY4LCAweDQ1LCAweDEwLCAweDE2LCAweDc3LCAweDEwLCAweDAwLCAweDAxLAotCTB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MGYsIDB4OWMsIDB4NzcsIDB4MTAsCi0JMHgwMCwgMHgwMiwgMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgwZiwgMHhhOCwKLQkweGYwLCAweDczLCAweDBmLCAweDk2LCAweDc3LCAweDEwLCAweDAwLCAweDA0LAotCTB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MTAsIDB4YjcsIDB4NzcsIDB4MTAsCi0JMHgwMCwgMHgwNSwgMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgxMCwgMHhiYywKLQkweGYyLCAweDc0LCAweDBlLCAweDlmLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LAotCTB4ZjAsIDB4NzMsIDB4MTEsIDB4MzEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MTEsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHhlOCwgMHgwMywgMHhmNiwgMHgyMCwgMHg4OSwgMHgxMiwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweDAwLCAweDAzLCAweGY1LCAweGFhLCAweGY4LCAweDMwLAotCTB4MGYsIDB4YjYsIDB4NmIsIDB4ZjgsIDB4MjcsIDB4NmYsIDB4MDAsIDB4MDEsCi0JMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNSwgMHhhZSwKLQkweGY4LCAweDIwLCAweDBmLCAweGJkLCAweDQ4LCAweDE2LCAweDgwLCAweDA2LAotCTB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDMsCi0JMHhmNiwgMHhhYiwgMHhmOCwgMHgyMCwgMHgwZiwgMHhjOCwgMHg2YiwgMHhmOCwKLQkweDI3LCAweDZmLCAweDAwLCAweDAxLCAweDEyLCAweDA2LCAweGY4LCAweDQ1LAotCTB4MTAsIDB4MDAsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4ODAsIDB4MDAsCi0JMHgxMCwgMHgwNSwgMHg4MCwgMHgwMSwgMHgxMCwgMHgwNCwgMHg4MCwgMHgwMiwKLQkweDEwLCAweDA2LCAweDgwLCAweDAzLCAweDQ4LCAweDExLCAweGYyLCAweDc0LAotCTB4MDcsIDB4MWUsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4MTAsIDB4MDYsCi0JMHgwMCwgMHhlMSwgMHgwMCwgMHgwNCwgMHg4MCwgMHhlMSwgMHgwMCwgMHgwNCwKLQkweDEwLCAweDA2LCAweDAwLCAweGUxLCAweDAwLCAweDBjLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4ODgsIDB4MTIsIDB4MTEsIDB4MDYsIDB4MTAsIDB4MDQsCi0JMHhmNiwgMHgwMCwgMHg4MCwgMHgwNCwgMHg0OCwgMHgxNiwgMHhmNiwgMHgyMCwKLQkweDg4LCAweDE2LCAweDg5LCAweDEzLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4MDAsIDB4MDMsIDB4ZjYsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MGYsIDB4ZjUsCi0JMHg2YiwgMHhmOCwgMHgyNywgMHg2ZiwgMHgwMCwgMHgwMSwgMHg3NywgMHgxMCwKLQkweDAwLCAweDBjLCAweDcxLCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDEzLAotCTB4ZjYsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4MDAsIDB4NmIsIDB4ZjgsCi0JMHgyNywgMHg2ZiwgMHgwMCwgMHgwMSwgMHg2YywgMHhlMiwgMHhmZiwgMHhmZCwKLQkweDExLCAweDMxLCAweGY2LCAweGI4LCAweDZmLCAweGUxLCAweDAwLCAweDA1LAotCTB4MGMsIDB4NDgsIDB4NmYsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MGMsIDB4MTgsCi0JMHhmMCwgMHgzMCwgMHgwZiwgMHhmZiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMywKLQkweDgwLCAweGUxLCAweDAwLCAweDBiLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MDMsIDB4NDgsIDB4MTYsIDB4ZjgsIDB4NDUsIDB4MTEsIDB4MzMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwYywgMHgwMCwgMHgxMiwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDBiLCAweDQ5LCAweDEyLCAweGY2LCAweDIwLCAweDg4LCAweDEzLAotCTB4ZTgsIDB4MGMsIDB4ZjYsIDB4MjAsIDB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNSwgMHhhYiwgMHhmOCwgMHgyMCwgMHgxMCwgMHgyNywKLQkweDQ4LCAweDEzLCAweDgwLCAweDA2LCAweDg4LCAweDEwLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4MzAsCi0JMHg3MCwgMHgwNiwgMHgwMCwgMHgxNiwgMHgxMiwgMHgwNiwgMHhmOCwgMHg0NSwKLQkweDEwLCAweDVmLCAweDEwLCAweGUxLCAweDAwLCAweDA0LCAweDgwLCAweDAwLAotCTB4MTAsIDB4MDUsIDB4ODAsIDB4MDEsIDB4MTAsIDB4MDQsIDB4ODAsIDB4MDIsCi0JMHgxMCwgMHgwNiwgMHg4MCwgMHgwMywgMHg0OCwgMHgxMSwgMHhmMiwgMHg3NCwKLQkweDA3LCAweDFlLCAweGYwLCAweDAwLCAweDAwLCAweDA1LCAweDEwLCAweDA2LAotCTB4MDAsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHgxMCwgMHgwNiwgMHgwMCwgMHhlMSwgMHgwMCwgMHgwYywgMHg4MCwgMHhlMSwKLQkweDAwLCAweDBjLCAweDg4LCAweDEyLCAweDExLCAweDA2LCAweDEwLCAweDA0LAotCTB4ZjYsIDB4MDAsIDB4ODAsIDB4MDQsIDB4NDgsIDB4MTYsIDB4ZjYsIDB4MjAsCi0JMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDEzLCAweGY2LCAweGFiLAotCTB4ZjgsIDB4MjAsIDB4MTAsIDB4NWYsIDB4NmIsIDB4ZjgsIDB4MjcsIDB4NmYsCi0JMHgwMCwgMHgwMSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywgMHhmNiwgMHhhYSwKLQkweGY4LCAweDIwLCAweDEwLCAweDZiLCAweGYyLCAweDc0LCAweDBlLCAweDlmLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MTcsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHgwMCwgMHgxMiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywgMHhmNCwgMHhhYSwKLQkweGY4LCAweDMwLCAweDEwLCAweDdjLCAweDc3LCAweDEwLCAweDAwLCAweDBjLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MTMsIDB4ZjYsIDB4YWIsCi0JMHhmOCwgMHgzMCwgMHgxMCwgMHhiNCwgMHhlNywgMHgzMCwgMHhmNywgMHhhYSwKLQkweGY4LCAweDMwLCAweDEwLCAweGI0LCAweGYyLCAweDc0LCAweDBlLCAweGMxLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MTcsIDB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg2YywgMHg4MiwgMHgxMCwgMHg4ZCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MDUsIDB4ZjAsIDB4NzMsIDB4MTAsIDB4YjQsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHgwMCwgMHgwNCwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDBiLCAweDAwLCAweDEyLCAweGY1LCAweGFhLAotCTB4ZjgsIDB4MjAsIDB4MTAsIDB4OWEsIDB4ZjAsIDB4NzMsIDB4MTAsIDB4OWMsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHgwYywgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDcwLCAweDAxLCAweDAwLCAweDEyLCAweDcwLCAweDAyLCAweDAwLCAweDE3LAotCTB4NzYsIDB4MDMsIDB4MDAsIDB4MDEsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4NzQsCi0JMHgwYywgMHhiOSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDc3LCAweDEwLCAweDAwLCAweDBjLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MTIsIDB4ZjYsIDB4YWEsCi0JMHhmOCwgMHgyMCwgMHgxMSwgMHgxYywgMHg0OCwgMHgxNiwgMHhmOCwgMHg0NSwKLQkweDExLCAweDMzLCAweDYwLCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDA1LAotCTB4ZjgsIDB4MjAsIDB4MTAsIDB4ZGYsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MGIsCi0JMHgwOCwgMHhlMSwgMHgwMCwgMHgwYywgMHgxMSwgMHhlMSwgMHgwMCwgMHgwNCwKLQkweGY4LCAweDRkLCAweDEwLCAweGM3LCAweDZiLCAweGY4LCAweDI3LCAweDZmLAotCTB4MDAsIDB4MDEsIDB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHhmNSwgMHhhZSwgMHhmOCwgMHgyMCwgMHgxMCwgMHhjZiwgMHg0OCwgMHgxNiwKLQkweGY0LCAweDk1LCAweDQ4LCAweDA4LCAweGY4LCAweDQ1LCAweDExLCAweDE2LAotCTB4NmYsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MGQsIDB4MDAsIDB4ODEsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHgxMSwgMHgwNCwgMHhmNSwgMHgwMCwgMHg4MSwgMHgwNCwKLQkweDQ5LCAweDE2LCAweGY1LCAweDIwLCAweDg5LCAweDE2LCAweGYwLCAweDczLAotCTB4MTEsIDB4MGUsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHgwMCwgMHgxMiwgMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweGY2LCAweGFhLCAweGY4LCAweDMwLCAweDExLCAweDE2LAotCTB4NDksIDB4MTIsIDB4ZjYsIDB4MjAsIDB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNSwgMHhhZSwgMHhmOCwgMHgyMCwgMHgxMCwgMHhmMywKLQkweDQ4LCAweDE2LCAweDgwLCAweDA2LCAweDQ4LCAweDA4LCAweGY4LCAweDQ1LAotCTB4MTEsIDB4MTYsIDB4MTAsIDB4MDQsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTcsCi0JMHg4MCwgMHgwMCwgMHg3NiwgMHgwMywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwNiwKLQkweDgwLCAweDAxLCAweDEwLCAweDA1LCAweGYwLCAweDc0LCAweDBjLCAweGI5LAotCTB4MTAsIDB4MDYsIDB4MDAsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHgxMSwgMHgwNiwgMHgxMCwgMHgwNCwgMHhmNiwgMHgwMCwKLQkweDgwLCAweDA0LCAweDQ4LCAweDE2LCAweGY2LCAweDIwLCAweDg4LCAweDE2LAotCTB4MTAsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MDgsIDB4ZTEsIDB4MDAsIDB4MGIsCi0JMHhmOCwgMHg0NSwgMHgxMSwgMHgxYywgMHhmMCwgMHg3MywgMHgxMSwgMHgzMSwKLQkweGYyLCAweDc0LCAweDBlLCAweDlmLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LAotCTB4ZjAsIDB4NzMsIDB4MTEsIDB4MzMsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDAxLCAweDEwLCAweDA0LAotCTB4ODAsIDB4MDAsIDB4MTAsIDB4MDUsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4OWYsCi0JMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHgwMCwgMHhmZiwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDExLCAweDMzLCAweDZjLCAweDg2LAotCTB4MGYsIDB4NzAsIDB4ZWUsIDB4MDgsIDB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmYywKLQkweGY0LCAweDk1LCAweDcxLCAweDA2LCAweDAwLCAweDEyLCAweDg4LCAweDExLAotCTB4NzMsIDB4MTIsIDB4MDAsIDB4MGUsIDB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsCi0JMHhmMywgMHgwMCwgMHgyNCwgMHgwMCwgMHg4OSwgMHgxNCwgMHgxMywgMHg4MSwKLQkweGY3LCAweDdhLCAweGYzLCAweDMwLCAweDAwLCAweDAxLCAweDgxLCAweGY4LAotCTB4MjcsIDB4NjAsIDB4MTMsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZjcsIDB4N2MsCi0JMHhmMywgMHgzMCwgMHgwMCwgMHgwMywgMHg4MSwgMHhmOCwgMHgyNywgMHg2MSwKLQkweGU5LCAweDBmLCAweDE5LCAweGUxLCAweDAwLCAweDAxLCAweDgxLCAweGY4LAotCTB4MjcsIDB4NjIsIDB4NzEsIDB4ZTQsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MTMsCi0JMHhmNiwgMHhiOCwgMHg0OSwgMHgxMywgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwKLQkweGYzLCAweDMwLCAweDAwLCAweDBmLCAweDQ5LCAweDBiLCAweDA5LCAweGY4LAotCTB4MjcsIDB4NjIsIDB4ZjgsIDB4NGQsIDB4MTEsIDB4NzUsIDB4NzcsIDB4MTAsCi0JMHgwMCwgMHhmZiwgMHhmNCwgMHhhYiwgMHhmOCwgMHgzMCwgMHgxMSwgMHg3NSwKLQkweDU3LCAweGY4LCAweDI3LCAweDZjLCAweGYzLCAweDAwLCAweDAwLCAweDAxLAotCTB4NGYsIDB4ZjgsIDB4MjcsIDB4NmMsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4NjMsCi0JMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywgMHgxMSwgMHg3OCwgMHg3NiwgMHhmOCwKLQkweDI3LCAweDYzLCAweDAwLCAweDAwLCAweDcwLCAweGU0LCAweDAwLCAweDAzLAotCTB4MjcsIDB4NjIsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4NjQsIDB4MDAsIDB4MDAsCi0JMHgxMSwgMHhmOCwgMHgyNywgMHg2MSwgMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwKLQkweDAwLCAweDAyLCAweGY4LCAweDIwLCAweDExLCAweDhkLCAweGU5LCAweDAxLAotCTB4NmYsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MGYsIDB4MTgsIDB4ODEsIDB4ZjgsCi0JMHgyNywgMHg2NCwgMHgxMSwgMHhmOCwgMHgyNywgMHg2MSwgMHg2MSwgMHhmOCwKLQkweDAwLCAweDBiLCAweDAwLCAweDAxLCAweGY4LCAweDIwLCAweDExLCAweGE5LAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NjQsIDB4ZjEsIDB4MDAsIDB4MDAsIDB4MDQsCi0JMHg4OSwgMHgxMywgMHhlOSwgMHhiOCwgMHhmNSwgMHgyMCwgMHg4MSwgMHhmOCwKLQkweDI3LCAweDY1LCAweDYwLCAweDg0LCAweDAwLCAweDAyLCAweGY4LCAweDIwLAotCTB4MTEsIDB4YTksIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTEsIDB4NzAsIDB4MDEsCi0JMHgwMCwgMHgxMywgMHg3MCwgMHgwMiwgMHgyNywgMHg2NSwgMHhmMiwgMHg3NCwKLQkweDBmLCAweDE4LCAweGY0LCAweDk1LCAweDQ4LCAweDEyLCAweGVlLCAweDA0LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsCi0JMHg0YSwgMHgxNywgMHhlZSwgMHhmYywgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwKLQkweDI3LCAweDY2LCAweGU4LCAweDAwLCAweDRlLCAweGY4LCAweDI3LCAweDY4LAotCTB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MjcsIDB4NmMsIDB4ZTgsIDB4MDAsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg2YSwgMHg3NywgMHgxMiwgMHgyNywgMHg0MCwKLQkweDc3LCAweDExLCAweDI0LCAweDAwLCAweDc3LCAweDFhLCAweDAwLCAweDFmLAotCTB4ZjAsIDB4NzIsIDB4MTEsIDB4ZGIsIDB4NzAsIDB4OTIsIDB4MDAsIDB4MTEsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4ZmYsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYiwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLAotCTB4NmQsIDB4ZTksIDB4MDAsIDB4MGQsIDB4ZjAsIDB4MjAsIDB4MjUsIDB4YTAsCi0JMHhmMSwgMHgwMCwgMHgwMCwgMHgwNywgMHg4OSwgMHgxMSwgMHhmMSwgMHgwMCwKLQkweDAwLCAweDAxLCAweDgxLCAweDAyLCAweDg4LCAweDE2LCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTcsIDB4MDAsIDB4MjAsIDB4NzYsIDB4ODYsIDB4MDAsIDB4ZmYsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwgMHgwMCwgMHgwNiwKLQkweDEwLCAweDAyLCAweGYwLCAweDc0LCAweDA2LCAweDZjLCAweDc2LCAweDAwLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4MDEsIDB4MDAsIDB4MDYsIDB4ZjIsIDB4NzQsCi0JMHgwNiwgMHg2YywgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwgMHgxMCwgMHgwMiwKLQkweGYwLCAweDAwLCAweDAwLCAweDBkLCAweDgwLCAweDAyLCAweDZkLCAweGU5LAotCTB4MDAsIDB4MGQsIDB4NmQsIDB4ZWUsIDB4MDAsIDB4MGQsIDB4NmMsIDB4ZWYsCi0JMHhmZiwgMHhmZiwgMHgxMSwgMHhlOCwgMHhmMCwgMHg3NCwgMHgwYywgMHg5ZCwKLQkweGVlLCAweDA0LCAweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4NGEsIDB4MTcsCi0JMHhlZSwgMHhmYSwgMHg4OCwgMHgxMSwgMHgxMCwgMHgwYSwgMHg0OSwgMHgxMSwKLQkweGY4LCAweDRkLCAweDEyLCAweDlmLCAweDQ4LCAweDA4LCAweGY4LCAweDQ1LAotCTB4MTIsIDB4OWYsIDB4ODAsIDB4MDQsIDB4MTIsIDB4ODEsIDB4ZjUsIDB4NzgsCi0JMHg4OSwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHhlMiwKLQkweGZmLCAweGI5LCAweDEyLCAweDhhLCAweDYxLCAweGY4LCAweDAwLCAweDA4LAotCTB4MDAsIDB4ODAsIDB4ZjgsIDB4MzAsIDB4MTIsIDB4OGEsIDB4MTMsIDB4ZTEsCi0JMHgwMCwgMHgwMSwgMHhmMCwgMHhlOCwgMHhmNywgMHg3OCwgMHhmMSwgMHhhMCwKLQkweGYyLCAweDMwLCAweDFmLCAweGZmLCAweDg4LCAweDE3LCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTIsIDB4MjQsIDB4MDAsIDB4NzcsIDB4MTYsIDB4MDAsIDB4MDAsCi0JMHg3NywgMHgxMywgMHgwMCwgMHgyMCwgMHhmNiwgMHhiOCwgMHg0OCwgMHgxNywKLQkweDA4LCAweGUyLCAweDAwLCAweDAxLCAweGY4LCAweDQ1LCAweDEyLCAweDQyLAotCTB4NmQsIDB4ZWEsIDB4MDAsIDB4MGQsIDB4NmQsIDB4OTYsIDB4NmMsIDB4ZWIsCi0JMHhmZiwgMHhmZiwgMHgxMiwgMHgzNCwgMHhmMCwgMHg3MywgMHgxMiwgMHg5MCwKLQkweDU2LCAweGY4LCAweDI3LCAweDZhLCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NmEsIDB4NjAsIDB4ODIsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgzMCwgMHgxMiwgMHg1NCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwKLQkweGYyLCAweDc0LCAweDExLCAweDM4LCAweGY0LCAweDk1LCAweDQ4LCAweDExLAotCTB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTYsCi0JMHhmMiwgMHg3NCwgMHgxMSwgMHgzOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwKLQkweDcyLCAweDEwLCAweDJhLCAweDllLCAweGY0LCAweDk1LCAweGY0LCAweGFmLAotCTB4ZjgsIDB4MzAsIDB4MTIsIDB4NmUsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHgwMSwgMHgwMCwgMHhiYywgMHg3MCwgMHgwMiwgMHgwMCwgMHgxNiwKLQkweDc2LCAweDAzLCAweDAwLCAweDAwLCAweGYyLCAweDc0LCAweDBjLCAweGI5LAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsIDB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsCi0JMHgxMCwgMHhmOCwgMHgyNywgMHg2ZSwgMHhmOCwgMHg0NCwgMHgxMiwgMHg5MCwKLQkweDc2LCAweDAwLCAweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweGJjLAotCTB4NzAsIDB4MDIsIDB4MDAsIDB4MTYsIDB4NzYsIDB4MDMsIDB4MDAsIDB4MDAsCi0JMHhmMiwgMHg3NCwgMHgwYywgMHhiOSwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwKLQkweGYwLCAweDc0LCAweDBjLCAweDVlLCAweGYwLCAweGUwLCAweGYwLCAweDEwLAotCTB4MTMsIDB4ODgsIDB4ZjgsIDB4NDIsIDB4MTIsIDB4OTAsIDB4NzYsIDB4ZjgsCi0JMHgyNywgMHg2ZSwgMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywgMHgxMiwgMHg5MCwKLQkweDU2LCAweGY4LCAweDI3LCAweDY2LCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NjYsIDB4NmQsIDB4ZTksIDB4MDAsIDB4NWUsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg2OCwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRlLCAweGY4LCAweDI3LCAweDY4LCAweDcxLCAweDA0LCAweDAwLCAweDEyLAotCTB4NmUsIDB4ZWEsIDB4ZmYsIDB4ZmYsIDB4MTIsIDB4MTgsIDB4NzAsIDB4MDQsCi0JMHgwMCwgMHgxMiwgMHhlZSwgMHgwNiwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZlLAotCTB4ODgsIDB4MGUsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4NjYsIDB4MDAsIDB4MGQsCi0JMHhmMCwgMHgwMCwgMHgyNSwgMHhhMCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweDc2LCAweDgxLCAweDAwLCAweGZmLCAweDc2LCAweDAwLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4MDEsIDB4MDAsIDB4MDYsIDB4ZjIsIDB4NzQsCi0JMHgwNiwgMHg2YywgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwKLQkweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweDQ4LCAweDExLAotCTB4ZjIsIDB4NzQsIDB4MDYsIDB4NmMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDcsCi0JMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDg4LCAweDBlLCAweGY0LCAweDk1LCAweGYwLCAweDY2LCAweDAwLCAweDBkLAotCTB4ZjAsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZiwKLQkweDc2LCAweDgxLCAweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4ZmYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDEzLCAweDAzLCAweDg4LCAweDExLCAweGZhLCAweDRkLCAweDEyLCAweGVjLAotCTB4NzEsIDB4MDIsIDB4MDAsIDB4MTIsIDB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsCi0JMHg4OSwgMHgxYSwgMHhmNCwgMHg5NSwgMHhmMCwgMHg3MiwgMHgxMiwgMHhlYiwKLQkweDcwLCAweDkxLCAweDAwLCAweDEyLCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4ZjQsIDB4OTUsIDB4NGEsIDB4MGIsIDB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsCi0JMHhmNywgMHhiOCwgMHhlZSwgMHhmZSwgMHgxMCwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDExLCAweDA2LCAweGYxLCAweGMwLCAweDgzLCAweDAwLCAweGY0LCAweDg1LAotCTB4MTEsIDB4MDYsIDB4ZjcsIDB4ODUsIDB4ODEsIDB4MDYsIDB4ZjYsIDB4YjgsCi0JMHhlYywgMHgwZiwgMHgxZSwgMHgwNiwgMHg2MSwgMHgwMCwgMHg4MCwgMHgwMCwKLQkweGY4LCAweDIwLCAweDEzLCAweDA1LCAweGY0LCAweDg0LCAweGVlLCAweDAyLAotCTB4OGEsIDB4MGQsIDB4OGEsIDB4MGMsIDB4OGEsIDB4MGIsIDB4ZmMsIDB4MDAsCi0JMHhmNCwgMHg5NSwgMHg0YSwgMHgwYiwgMHg0YSwgMHgwYywgMHg0YSwgMHgwZCwKLQkweGVlLCAweGZlLCAweGY3LCAweGI4LCAweDgwLCAweDAwLCAweDEwLCAweGY4LAotCTB4MDAsIDB4MDgsIDB4ZjQsIDB4ODUsIDB4MTEsIDB4MDYsIDB4ZjcsIDB4ODUsCi0JMHg4MSwgMHgwNiwgMHhmNiwgMHhiOCwgMHhlYywgMHgwZiwgMHgxZSwgMHgwNiwKLQkweGYwLCAweGYwLCAweDYxLCAweDAwLCAweDgwLCAweDAwLCAweGY4LCAweDIwLAotCTB4MTMsIDB4MjAsIDB4ZjQsIDB4ODQsIDB4ZWUsIDB4MDIsIDB4OGEsIDB4MGQsCi0JMHg4YSwgMHgwYywgMHg4YSwgMHgwYiwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDc2LCAweDgxLCAweDJlLCAweGVjLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4ZWUsIDB4ZmYsIDB4NzEsIDB4ODEsCi0JMHgwMCwgMHgxMSwgMHhlZSwgMHgwMSwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHg2MiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHg3NiwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDkyLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4OTQsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHhiMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhiMywKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweGJlLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4YmYsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHhjMSwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhjMywKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweGM1LCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4YzcsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LCAweGVlLCAweGZmLAotCTB4ZjQsIDB4OTUsIDB4NzEsIDB4MDYsIDB4MDAsIDB4MTYsIDB4ZmIsIDB4ODAsCi0JMHgxNiwgMHhhMiwgMHg4OCwgMHgxNywgMHhmNCwgMHg5NSwgMHhmNywgMHhiOCwKLQkweDEwLCAweGY4LCAweDAwLCAweDE3LCAweGYwLCAweDEwLCAweDAwLCAweDAyLAotCTB4ZmEsIDB4NDYsIDB4MTMsIDB4ODgsIDB4NzcsIDB4MTEsIDB4MDAsIDB4MDAsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMiwKLQkweGY4LCAweDQ1LCAweDEzLCAweGY5LCAweDEwLCAweGY4LCAweDAwLCAweDE3LAotCTB4ZjgsIDB4NDUsIDB4MTQsIDB4MzksIDB4MTAsIDB4ZjgsIDB4MDAsIDB4MTcsCi0JMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwgMHhmOCwgMHg0NSwgMHgxNCwgMHgxZiwKLQkweGYwLCAweDczLCAweDE0LCAweDUyLCAweDEwLCAweGY4LCAweDAwLCAweDE3LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDMsIDB4ZjgsIDB4NDUsIDB4MTMsIDB4ZDMsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywgMHhmMCwgMHgxMCwgMHgwMCwgMHgwNiwKLQkweGY4LCAweDQ0LCAweDE0LCAweDUyLCAweDc3LCAweDEyLCAweDAwLCAweDdiLAotCTB4NzEsIDB4ODIsIDB4MDAsIDB4MTQsIDB4NjEsIDB4ZTQsIDB4MDAsIDB4MDcsCi0JMHgwMCwgMHg0MCwgMHhmOCwgMHgzMCwgMHgxNCwgMHg1MiwgMHg0OSwgMHgxNCwKLQkweDQ4LCAweDE3LCAweGY2LCAweDAwLCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTMsIDB4MDAsIDB4NTUsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTcsCi0JMHg2ZCwgMHhlYSwgMHgwMCwgMHgzYiwgMHhlNSwgMHgwMSwgMHgxMCwgMHhlNiwKLQkweDAwLCAweDA2LCAweDgwLCAweDgxLCAweDQ4LCAweDE0LCAweDAwLCAweGY4LAotCTB4MDAsIDB4MTcsIDB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHg1NSwgMHgxMCwgMHhlMiwgMHgwMCwgMHg0MCwgMHg4MCwgMHg4MSwKLQkweDc3LCAweDExLCAweDAwLCAweDU3LCAweDEwLCAweGU2LCAweDAwLCAweDA3LAotCTB4ODAsIDB4ODEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTUsIDB4MTAsIDB4ZTIsCi0JMHgwMCwgMHg0NSwgMHg4MCwgMHg4MSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwOCwKLQkweDc3LCAweDExLCAweDAwLCAweDU3LCAweDgwLCAweDgxLCAweDc3LCAweDExLAotCTB4MDAsIDB4NTUsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4NGEsIDB4ODAsIDB4ODEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwOSwKLQkweDgwLCAweDgxLCAweGYyLCAweDczLCAweDE0LCAweDUyLCAweDc3LCAweDExLAotCTB4MDMsIDB4YzAsIDB4NzcsIDB4MTIsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODIsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywgMHg4OCwgMHgxMywgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweDk2LCAweDFiLCAweGY4LCAweDMwLCAweDE0LCAweDUyLAotCTB4MTAsIDB4ZTMsIDB4MDAsIDB4MzUsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsCi0JMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwKLQkweDAwLCAweDA0LCAweDgwLCAweDgyLCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4MTAsIDB4ZTMsIDB4MDAsIDB4MzcsIDB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwNSwgMHg4MCwgMHg4MiwKLQkweDQ4LCAweDExLCAweGYwLCAweDQwLCAweDAwLCAweDEwLCAweGYyLCAweDczLAotCTB4MTQsIDB4NTAsIDB4ZjAsIDB4NDAsIDB4MDAsIDB4MjAsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg3YiwgMHgxMCwgMHg4MiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywKLQkweDg4LCAweDEyLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDk2LCAweDBkLAotCTB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MzQsCi0JMHg3NywgMHgxMywgMHgwMCwgMHg1NSwgMHg4MCwgMHg4MywgMHg3NywgMHgxMywKLQkweDAwLCAweDU3LCAweDEwLCAweGU2LCAweDAwLCAweDAyLCAweDgwLCAweDgzLAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MzYsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsCi0JMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwKLQkweDAwLCAweDAzLCAweDgwLCAweDgyLCAweDQ4LCAweDExLCAweGYwLCAweDQwLAotCTB4MDAsIDB4MDQsIDB4ZjIsIDB4NzMsIDB4MTQsIDB4NTAsIDB4ZjAsIDB4NDAsCi0JMHgwMCwgMHgwOCwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwgMHgxMCwgMHg4MiwKLQkweGYwLCAweDAwLCAweDAwLCAweDA3LCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4OTYsIDB4MGUsIDB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsCi0JMHgxMCwgMHhlMiwgMHgwMCwgMHgzMywgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwKLQkweDgwLCAweDgyLCAweDc3LCAweDEyLCAweDAwLCAweDU3LCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDEsIDB4ODAsIDB4ODIsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4NzMsCi0JMHgxNCwgMHg1MCwgMHhmMCwgMHg0MCwgMHgwMCwgMHgwMiwgMHg3NywgMHgxMiwKLQkweDAwLCAweDdiLCAweDEwLCAweDgyLCAweGYwLCAweDAwLCAweDAwLCAweDA3LAotCTB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4OTYsIDB4MGYsCi0JMHhmOCwgMHgzMCwgMHgxNCwgMHg1MiwgMHgxMCwgMHhlMiwgMHgwMCwgMHgzMiwKLQkweDc3LCAweDEyLCAweDAwLCAweDU1LCAweDc3LCAweDEzLCAweDAwLCAweDU3LAotCTB4ODAsIDB4ODIsIDB4NDgsIDB4MTEsIDB4ZTcsIDB4NjIsIDB4ZjAsIDB4NDAsCi0JMHgwMCwgMHgwMSwgMHhlNSwgMHgwMSwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEyLCAweDAwLCAweDdiLCAweDQ4LCAweDExLCAweDcxLCAweDgyLAotCTB4MDAsIDB4MTIsIDB4MWEsIDB4ZTIsIDB4MDAsIDB4MDcsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwNywgMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDE3LCAweDQ4LCAweDExLCAweDhhLCAweDE2LCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4NzcsIDB4MGUsCi0JMHgwMCwgMHgwNSwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwgMHhlOCwgMHgwNCwKLQkweGY2LCAweGI4LCAweDI4LCAweGUxLCAweDAwLCAweDAyLCAweGVlLCAweGZmLAotCTB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTcsIDB4ZjAsIDB4MjAsCi0JMHg4MCwgMHgwMCwgMHhlZSwgMHgwMSwgMHgxYSwgMHg4MiwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU3LCAweDgwLCAweDgyLCAweGU4LCAweDAxLCAweDMyLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4ZjUsIDB4ODIsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTQsCi0JMHhmNiwgMHg5MywgMHgxOCwgMHg4MSwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NCwKLQkweGYyLCAweGEwLCAweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4ZjQsIDB4OTUsCi0JMHg3MSwgMHgwNCwgMHgwMCwgMHgxMSwgMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwKLQkweDg4LCAweDE2LCAweGY0LCAweDk1LCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4MTAsIDB4ZTYsIDB4MDAsIDB4MDMsIDB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMiwgMHg3NywgMHgxMywKLQkweDAwLCAweDU2LCAweDgwLCAweDgyLCAweDc3LCAweDEyLCAweDAwLCAweDU2LAotCTB4MTAsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4ODAsIDB4ODIsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NiwgMHg4MCwgMHg4MiwKLQkweDc3LCAweDEyLCAweDAwLCAweDU2LCAweDEwLCAweGUxLCAweDAwLCAweDAxLAotCTB4ODAsIDB4ODIsIDB4ZTcsIDB4MTIsIDB4ZTUsIDB4MDEsIDB4ZjksIDB4ODAsCi0JMHgxNiwgMHg5YSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LCAweGVlLCAweGY5LAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MTYsCi0JMHg3NiwgMHgwMSwgMHgwMCwgMHgxNywgMHg3NiwgMHgwMiwgMHgwMCwgMHgxYSwKLQkweDc2LCAweDAzLCAweDAwLCAweDFiLCAweDc2LCAweDA0LCAweDAwLCAweDFjLAotCTB4NzYsIDB4MDUsIDB4MDAsIDB4MWQsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MTcsCi0JMHg3MSwgMHhlNywgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMSwgMHgxMCwgMHg4MSwKLQkweGY4LCAweDQ0LCAweDE0LCAweGRmLCAweGY5LCAweDgwLCAweDE2LCAweDUzLAotCTB4ZjYsIDB4YjgsIDB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjAsIDB4MjAsCi0JMHhmZiwgMHhmZiwgMHhmNiwgMHhiOCwgMHhmYiwgMHg4MCwgMHgxNiwgMHgwOCwKLQkweGYwLCAweDIwLCAweGZmLCAweGZmLCAweDc3LCAweDExLCAweDAwLCAweDdiLAotCTB4NzEsIDB4ODEsIDB4MDAsIDB4MTcsIDB4NzYsIDB4ZTcsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgwMSwgMHg0OCwgMHgxNywgMHg3NywgMHgxNiwgMHgwMCwgMHgwMCwKLQkweDc3LCAweDEwLCAweDAwLCAweDA0LCAweDc3LCAweDE1LCAweDAwLCAweDAzLAotCTB4NzcsIDB4MTQsIDB4MDAsIDB4MDIsIDB4NzcsIDB4MTMsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgzOSwgMHg3NiwgMHhlNywgMHgwMCwgMHgwOCwKLQkweDAwLCAweDFmLCAweDc2LCAweGU3LCAweDAwLCAweDA3LCAweDAwLCAweDAwLAotCTB4ODgsIDB4MGUsIDB4NzcsIDB4MWEsIDB4MDAsIDB4MDUsIDB4NDgsIDB4MTcsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwOSwgMHg4OCwgMHgxMiwgMHg0OCwgMHgxOCwKLQkweDg4LCAweDE5LCAweGU4LCAweDAwLCAweGYwLCAweDcyLCAweDE1LCAweDJjLAotCTB4NzMsIDB4MTksIDB4MDAsIDB4MTEsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHgxMSwgMHg5MSwgMHg3MywgMHgxMSwgMHgwMCwgMHgxOSwgMHg3MCwgMHhlMiwKLQkweDAwLCAweDAzLCAweDAwLCAweDE2LCAweDcwLCAweGUyLCAweDAwLCAweDA0LAotCTB4MDAsIDB4MTMsIDB4NzAsIDB4ZTIsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTQsCi0JMHg4MSwgMHhlMiwgMHgwMCwgMHgwMSwgMHg3MCwgMHhlMiwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDE1LCAweDcwLCAweGUyLCAweDAwLCAweDA3LCAweDAwLCAweDEwLAotCTB4ODAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4NzMsIDB4MGUsIDB4MDAsIDB4MTEsCi0JMHhmMSwgMHgwMCwgMHgwMCwgMHgxZSwgMHg2ZCwgMHhlZSwgMHgwMCwgMHgwNSwKLQkweDZkLCAweGViLCAweDAwLCAweDA1LCAweDZkLCAweGVjLCAweDAwLCAweDA1LAotCTB4NmQsIDB4ZWQsIDB4MDAsIDB4MDUsIDB4NmQsIDB4ZTgsIDB4MDAsIDB4MDUsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg4MSwgMHg5MSwgMHg2ZCwgMHhlYSwKLQkweDAwLCAweDA4LCAweDczLCAweDExLCAweDAwLCAweDBlLCAweGVlLCAweDA3LAotCTB4NzYsIDB4ZTcsIDB4MDAsIDB4NDEsIDB4MDAsIDB4MjQsIDB4NzYsIDB4ZTcsCi0JMHgwMCwgMHg0NiwgMHgwMCwgMHgyNSwgMHg3NiwgMHhlNywgMHgwMCwgMHg0YiwKLQkweDAwLCAweDI2LCAweDc2LCAweGU3LCAweDAwLCAweDUwLCAweDAwLCAweDI3LAotCTB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHhlZSwgMHhmZSwgMHg4OCwgMHgxMSwKLQkweDU2LCAweDA2LCAweDRlLCAweDAwLCAweGY5LCAweDgwLCAweDE2LCAweGEyLAotCTB4ZjcsIDB4YjgsIDB4MTAsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4ZjAsIDB4MTAsCi0JMHhmZiwgMHhmZiwgMHhmYSwgMHg0NSwgMHgxNSwgMHg2MCwgMHg3NywgMHgxNiwKLQkweGZmLCAweGZmLCAweDc3LCAweDEyLCAweDAwLCAweDdiLCAweDQ5LCAweDExLAotCTB4MTAsIDB4ODIsIDB4ZjYsIDB4MDMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDksCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwKLQkweGY4LCAweDQ0LCAweDE1LCAweDcxLCAweGYyLCAweDczLCAweDE1LCAweDcxLAotCTB4ZjQsIDB4OTUsIDB4ZTcsIDB4MTYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwOSwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweDc3LCAweDEyLCAweDAwLCAweDA2LCAweDEwLCAweDgxLAotCTB4ZjgsIDB4NDUsIDB4MTUsIDB4NWMsIDB4NmUsIDB4ZWEsIDB4ZmYsIDB4ZmYsCi0JMHgxNSwgMHg2OSwgMHg2ZCwgMHhlOSwgMHgwMCwgMHgwOCwgMHg3NiwgMHg4NiwKLQkweDAwLCAweDAxLCAweGU5LCAweDAxLCAweDU2LCAweDAwLCAweGYxLCAweDgwLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MGIsIDB4ZjgsIDB4NDUsIDB4MTUsIDB4N2UsCi0JMHhmYiwgMHg4MCwgMHgxNSwgMHg4NSwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNiwKLQkweGY5LCAweDgwLCAweDE2LCAweDlhLCAweGVlLCAweDAyLCAweDQ4LCAweDE2LAotCTB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsCi0JMHhlZSwgMHhmZiwgMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweDc3LCAweDEwLCAweGZmLCAweGZmLCAweGY0LCAweGE5LAotCTB4ZjgsIDB4MzAsIDB4MTUsIDB4YzQsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDMsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwgMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgzMiwgMHhmOCwKLQkweDAwLCAweDA4LCAweDc3LCAweDEyLCAweDAwLCAweDU0LCAweGU4LCAweDAxLAotCTB4ZjQsIDB4ODIsIDB4ZjQsIDB4OTMsIDB4MTgsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NCwgMHhmMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHg4MiwKLQkweDEwLCAweGUxLCAweDAwLCAweDAxLCAweGY5LCAweDgwLCAweDE2LCAweDc2LAotCTB4MTAsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NjYsCi0JMHhmMCwgMHg3MywgMHgxNiwgMHgwMywgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwKLQkweDcxLCAweDgxLCAweDAwLCAweDExLCAweDcxLCAweGUxLCAweDAwLCAweDA3LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwOSwgMHhmOSwgMHg4MCwgMHgxNSwgMHg4NSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDcxLCAweDgxLCAweDAwLCAweDExLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDksIDB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwOCwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHg3MSwgMHg4MSwKLQkweDAwLCAweDExLCAweDEwLCAweGUxLCAweDAwLCAweDA5LCAweGZiLCAweDgwLAotCTB4MTUsIDB4ODUsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHg3YiwgMHg3MSwgMHg4MSwgMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA5LCAweGZiLCAweDgwLCAweDE1LCAweDg1LCAweGYwLCAweDAwLAotCTB4MDAsIDB4MTgsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsCi0JMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwKLQkweDE1LCAweDg1LCAweGYwLCAweDAwLCAweDAwLCAweDIwLCAweDc3LCAweDExLAotCTB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MTEsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwgMHgxNSwgMHg4NSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDI4LCAweGY5LCAweDgwLCAweDE2LCAweDlhLCAweGVlLCAweDAxLAotCTB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmYsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweGZmLCAweGZmLCAweGY0LCAweGE5LCAweGY4LCAweDMwLAotCTB4MTYsIDB4NDEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTUsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgxZSwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHhmMiwgMHg3MywKLQkweDE2LCAweDRlLCAweDc2LCAweDgxLCAweDAwLCAweDAwLCAweDc3LCAweDExLAotCTB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MTEsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwKLQkweDEwLCAweGUxLCAweDAwLCAweDM5LCAweGY5LCAweDgwLCAweDE2LCAweDA4LAotCTB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4ZWUsIDB4MDEsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwKLQkweDEwLCAweDgxLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZmEsIDB4NDQsCi0JMHgxNiwgMHg2MywgMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAxLCAweGVlLCAweDAxLCAweDhhLCAweDExLCAweGY0LCAweGU0LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MTAsIDB4NGEsIDB4MTEsIDB4MzIsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHhlZSwgMHhmZiwgMHg3NywgMHgxMSwgMHgwMCwgMHgwMSwKLQkweGU4LCAweDAxLCAweGVlLCAweDAxLCAweGY0LCAweDgyLCAweDFhLCAweDgxLAotCTB4ODAsIDB4ODEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHhmMCwgMHgxMCwgMHgwMCwgMHgxMCwgMHg0YSwgMHgxMSwgMHgzMiwgMHhmOCwKLQkweDAwLCAweDA4LCAweGVlLCAweGZmLCAweGU4LCAweDAxLCAweDc3LCAweDExLAotCTB4MDAsIDB4MDAsIDB4ZjQsIDB4ODIsIDB4ZWUsIDB4MDEsIDB4ZjQsIDB4OTMsCi0JMHgxOCwgMHg4MSwgMHg4MCwgMHg4MSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweGYwLCAweDEwLCAweDAwLCAweDEwLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4MDAsIDB4MzIsIDB4ZjgsIDB4MDAsIDB4MDgsCi0JMHhlZSwgMHhmZiwgMHgxMSwgMHg4MSwgMHhlOCwgMHgwMSwgMHhlZSwgMHgwMSwKLQkweDc3LCAweDExLCAweDAwLCAweDAwLCAweGY0LCAweDgyLCAweGYyLCAweGEwLAotCTB4ODAsIDB4ODEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHhmMiwgMHg3MywgMHgxNiwgMHg5ZSwgMHhmNiwgMHhiYiwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGY0LCAweGU0LAotCTB4ZjIsIDB4NzMsIDB4MTYsIDB4YTYsIDB4ZjcsIDB4YmIsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweGY0LCAweDk1LCAweDcxLCAweDA0LAotCTB4MDAsIDB4MTYsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDBlLCAweDEwLCAweGU2LCAweDAwLCAweDBlLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4ODAsIDB4ODIsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDBkLCAweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLAotCTB4MTAsIDB4ZTYsIDB4MDAsIDB4MGQsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwYywKLQkweDEwLCAweGU2LCAweDAwLCAweDBjLCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwYiwgMHgxMCwgMHhlNiwKLQkweDAwLCAweDBiLCAweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLAotCTB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwYSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDEwLCAweGU2LCAweDAwLCAweDBhLCAweDgwLCAweDgyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwOSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwOSwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDgsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHgxMCwgMHhlNiwKLQkweDAwLCAweDA4LCAweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDcsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwKLQkweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDYsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwNiwgMHg4MCwgMHg4MiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsCi0JMHgxMCwgMHhlNiwgMHgwMCwgMHgwNSwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA0LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNCwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAzLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDMsCi0JMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDAyLCAweDEwLCAweGU2LCAweDAwLCAweDAyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4ODAsIDB4ODIsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAxLCAweDEwLCAweGU2LCAweDAwLCAweDAxLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEzLCAweGU3LCAweDYyLAotCTB4ZTUsIDB4MDEsIDB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDcxLCAweGUxLCAweDAwLCAweDA1LAotCTB4MDAsIDB4MTIsIDB4ZWUsIDB4ZmYsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHhlZSwgMHgwMSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMSwKLQkweDY5LCAweDgxLCAweDAwLCAweDAxLCAweDhhLCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweGVlLCAweGZmLCAweDc2LCAweDgyLCAweDAwLCAweDAxLCAweGVlLCAweDAxLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTEsIDB4NjksIDB4ODEsCi0JMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4OTQsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwgMHhmYSwgMHg0NCwgMHgxNywgMHg5YywKLQkweGY0LCAweDk1LCAweGVlLCAweGZmLCAweGY5LCAweDgwLCAweDE2LCAweDUzLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHg5NCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweDc2LCAweDgxLCAweDAwLCAweDAxLCAweGVlLCAweDAxLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgyMSwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgyMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDIzLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MjIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgzOCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNywgMHgwMCwgMHgzOSwKLQkweDc2LCAweGUxLCAweDAwLCAweDA4LCAweDAwLCAweDE1LCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDksIDB4MDAsIDB4MTQsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYiwgMHgwMCwgMHg0MSwKLQkweDc2LCAweGUxLCAweDAwLCAweDBjLCAweDAwLCAweDQwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGQsIDB4MDAsIDB4NDMsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGUsCi0JMHgwMCwgMHg0MiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwZiwgMHgwMCwgMHg0OCwKLQkweDc2LCAweGUxLCAweDAwLCAweDEwLCAweDAwLCAweDQ5LCAweDc2LCAweGUxLAotCTB4MDAsIDB4MTEsIDB4MDAsIDB4MWIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MTIsCi0JMHgwMCwgMHgxYSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweGVlLCAweGZkLCAweDg4LCAweDExLCAweDU2LCAweDA2LAotCTB4NGUsIDB4MDAsIDB4ZjksIDB4ODAsIDB4MTYsIDB4YTIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg3YiwgMHg3NywgMHgwZSwgMHgwMCwgMHgwOSwgMHgxMCwgMHg4MiwKLQkweDI4LCAweGY4LCAweDAwLCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDk1LAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsCi0JMHhmOCwgMHg0NSwgMHgxNywgMHhmMCwgMHhmMiwgMHg3MywgMHgxNywgMHhmZCwKLQkweDc3LCAweDExLCAweGZmLCAweGZmLCAweDc2LCAweDgxLCAweDAwLCAweDAxLAotCTB4ZTksIDB4MDEsIDB4NTYsIDB4MDAsIDB4ZjEsIDB4ODAsIDB4MTAsIDB4ZjgsCi0JMHgwMCwgMHgwYiwgMHhmOCwgMHg0NSwgMHgxNywgMHhmZCwgMHhmYiwgMHg4MCwKLQkweDE4LCAweDEwLCAweGY0LCAweDk1LCAweDQ4LCAweDExLCAweGY5LCAweDgwLAotCTB4MTYsIDB4OWEsIDB4ZWUsIDB4MDMsIDB4NDgsIDB4MTEsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGVlLCAweGZmLCAweDcxLCAweGUxLCAweDAwLCAweDAxLAotCTB4MDAsIDB4MTEsIDB4ZWUsIDB4MDEsIDB4MTAsIDB4ODEsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZiwKLQkweGZiLCAweDgwLCAweDE2LCAweGEyLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTAsIDB4ZmYsIDB4ZmYsIDB4ZjQsIDB4YTksIDB4ZjgsIDB4MzAsCi0JMHgxOCwgMHhjMywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwMiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDQsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA1LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDA2LCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwNywKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MjAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwOCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDksCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MGEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDBiLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDBjLCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwZCwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwZSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDcsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NzYsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwOCwgMHhmOSwgMHg4MCwgMHgxNiwgMHg3NiwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA3LCAweGY5LCAweDgwLCAweDE2LCAweDY2LCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDgsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NjYsIDB4ZjAsIDB4NzMsCi0JMHgxOCwgMHhkMSwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHgxMCwgMHg4MSwKLQkweGZiLCAweDgwLCAweDE4LCAweDEwLCAweGYwLCAweDAwLCAweDAwLCAweDk1LAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsIDB4ZmIsIDB4ODAsCi0JMHgxOCwgMHgxMCwgMHhmMCwgMHgwMCwgMHgwMCwgMHg5ZSwgMHhmOSwgMHg4MCwKLQkweDE2LCAweDlhLCAweGVlLCAweDAxLCAweDhhLCAweDExLCAweGY0LCAweGU0LAotCTB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4ZWUsIDB4ZmYsIDB4ZjQsIDB4OTUsCi0JMHgxMCwgMHgwNCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgxMSwKLQkweGVlLCAweDAxLCAweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4ZjQsIDB4OTUsCi0JMHg3MSwgMHgwNCwgMHgwMCwgMHgxNiwgMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MTAsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwMSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgxMiwKLQkweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDEyLAotCTB4MTAsIDB4ZTYsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ODIsIDB4ZTcsIDB4NjIsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgxMywgMHhlNSwgMHgwMSwKLQkweGY5LCAweDgwLCAweDE2LCAweDlhLCAweDhhLCAweDE2LCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4ZWUsIDB4ZmYsCi0JMHhlZSwgMHgwMSwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweGU0LCAweDRhLCAweDExLCAweDc3LCAweDExLAotCTB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjMsCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwKLQkweGZhLCAweDQ0LCAweDE5LCAweDJhLCAweGY0LCAweDk1LCAweGVlLCAweGZmLAotCTB4ZjksIDB4ODAsIDB4MTYsIDB4NTMsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmMCwgMHgwMCwgMHgwMCwgMHhiMywgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDc2LCAweDgxLCAweDAwLCAweDAxLAotCTB4ZWUsIDB4MDEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgxMywgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAzLCAweDAwLCAweDI2LCAweDc2LCAweGUxLCAweDAwLCAweDA0LAotCTB4MDAsIDB4MjUsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MjQsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA3LCAweDAwLCAweDE3LCAweDc2LCAweGUxLCAweDAwLCAweDA4LAotCTB4MDAsIDB4MzIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDksIDB4MDAsIDB4MzEsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwYSwgMHgwMCwgMHgzMCwgMHg4YSwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweGU0LCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZmYsIDB4ZjQsIDB4OTUsIDB4NzEsIDB4MDYsCi0JMHgwMCwgMHgxNywgMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY3LCAweGI4LCAweDEwLCAweGY4LCAweDAwLCAweDExLAotCTB4ZjAsIDB4MTAsIDB4ZmYsIDB4ZmYsIDB4ZmEsIDB4NDUsIDB4MTksIDB4NzMsCi0JMHg3NywgMHgxNiwgMHhmZiwgMHhmZiwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwKLQkweDc3LCAweDBlLCAweDAwLCAweDA1LCAweDEwLCAweDgyLCAweDI4LCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjQsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MSwgMHhmOCwgMHg0NCwKLQkweDE5LCAweDg0LCAweGYyLCAweDczLCAweDE5LCAweDg0LCAweGY0LCAweDk1LAotCTB4ZTcsIDB4MTYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHhiNCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEyLCAweDAwLCAweDAyLCAweDEwLCAweDgxLCAweGY4LCAweDQ1LAotCTB4MTksIDB4NmYsIDB4NmUsIDB4ZWEsIDB4ZmYsIDB4ZmYsIDB4MTksIDB4N2MsCi0JMHg2ZCwgMHhlOSwgMHgwMCwgMHgwNSwgMHg2MSwgMHhmOCwgMHgwMCwgMHgxNywKLQkweDAwLCAweDAxLCAweGZhLCAweDIwLCAweDE5LCAweDhmLCAweDc2LCAweDg2LAotCTB4MDAsIDB4MDEsIDB4ZmIsIDB4ODAsIDB4MTksIDB4OTcsIDB4ZjQsIDB4OTUsCi0JMHg0OCwgMHgxNiwgMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDE3LCAweDQ4LCAweDE2LCAweDhhLCAweDE2LCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmYsIDB4ZmIsIDB4ODAsCi0JMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweGZmLCAweGZmLCAweGY0LCAweGE5LCAweGY4LCAweDMwLCAweDE5LCAweGNjLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsIDB4NjksIDB4ODIsCi0JMHgwMCwgMHgxMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgxMiwKLQkweDY4LCAweDgyLCAweGY3LCAweGZmLCAweDcxLCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MTIsIDB4NjgsIDB4ODIsIDB4ZmIsIDB4ZmYsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHgwMCwgMHgxMiwgMHg2OCwgMHg4MiwgMHhmZiwgMHhmMCwKLQkweDcxLCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4ZmYsIDB4ZmYsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHhmZiwgMHhmZiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDEyLCAweDY5LCAweDgyLCAweDAwLCAweDIwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MTEsIDB4ZjIsIDB4NzMsIDB4MTksIDB4ZGEsCi0JMHg2OCwgMHg4MSwgMHhmZiwgMHhlZiwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwKLQkweDEwLCAweDgxLCAweGZiLCAweDgwLCAweDE5LCAweDk3LCAweGYwLCAweDAwLAotCTB4MDAsIDB4YjQsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsCi0JMHhmYiwgMHg4MCwgMHgxOSwgMHg5NywgMHhmMCwgMHgwMCwgMHgwMCwgMHhiOSwKLQkweGY5LCAweDgwLCAweDE2LCAweDlhLCAweGVlLCAweDAxLCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4MDAsIDB4YTQsIDB4MDAsIDB4MDAsIDB4MTksIDB4ZGYsCi0JMHgwMCwgMHgwMSwgMHgyYSwgMHhlNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDJhLCAweGU3LCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDJhLCAweDEyLAotCTB4MGMsIDB4MDEsIDB4YzMsIDB4NGYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgyYSwgMHgxNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgyYSwgMHgxNiwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDE5LCAweDJhLCAweDVkLAotCTB4MDAsIDB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzksCi0JMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2NywgMHgwMCwgMHg2OCwKLQkweDAwLCAweDc0LCAweDAwLCAweDIwLCAweDAwLCAweDU0LCAweDAwLCAweDY1LAotCTB4MDAsIDB4NjMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsCi0JMHgwMCwgMHg1NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2ZSwKLQkweDAwLCAweDY0LCAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDQ3LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MmEsIDB4NzYsIDB4MDAsIDB4MzAsCi0JMHgwMCwgMHgyZSwgMHgwMCwgMHgzMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwYywKLQkweDJhLCAweDdhLCAweDAwLCAweDQ2LCAweDAwLCAweDY1LCAweDAwLCAweDYyLAotCTB4MDAsIDB4MjAsIDB4MDAsIDB4MzIsIDB4MDAsIDB4MzcsIDB4MDAsIDB4MjAsCi0JMHgwMCwgMHgzMiwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMSwKLQkweDAwLCAweDAwLCAweDAwLCAweDA5LCAweDJhLCAweDg2LCAweDAwLCAweDMxLAotCTB4MDAsIDB4MzQsIDB4MDAsIDB4M2EsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MzUsCi0JMHgwMCwgMHgzYSwgMHgwMCwgMHgzMywgMHgwMCwgMHgzMywgMHgwMCwgMHgwMCwKLQkweDAwLCAweDBmLCAweDJhLCAweDhmLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MmEsIDB4OWUsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDJhLCAweGEwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDJhLCAweGExLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MmEsIDB4YTIsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHgyOSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwKLQkweDI5LCAweDgwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLAotCTB4MjksIDB4ODIsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDEsIDB4MmEsIDB4YTcsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHgyYSwgMHhhOCwgMHg3MSwgMHg0MSwKLQkweDIwLCAweDAwLCAweDIwLCAweDAwLCAweDAwLCAweDIzLCAweDA0LCAweDAwLAotCTB4MDAsIDB4MGEsIDB4MmEsIDB4YWQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MGYsIDB4MmEsIDB4YjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgMHhhMCwgMHg4MiwgMHg0MCwKLQkweDAwLCAweDA4LCAweDMwLCAweDdmLCAweDAwLCAweDgwLCAweDAxLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgyNywgMHg2ZSwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAxLCAweDI3LCAweDZmLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDksIDB4MDAsIDB4MDAsIDB4MWEsIDB4ODMsIDB4MDQsIDB4ZTgsCi0JMHgwNCwgMHhjZiwgMHgwNCwgMHhjNSwgMHgwNCwgMHhiYSwgMHgwNCwgMHhiMCwKLQkweDA0LCAweGFjLCAweDA0LCAweDljLCAweDA0LCAweDhjLCAweDA0LCAweDgxLAotCTB4MDAsIDB4NzgsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGFhLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDAyLCAweDIzLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDUsIDB4ZTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwMiwgMHhiNSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDBlLCAweDMzLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MDAsIDB4MDAsCi19OwotCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JfZGVjLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JfZGVjLmMKaW5kZXggZmVmZGMwNS4uZGU1ODI5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiX2RlYy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWRlYy90dHVzYl9kZWMuYwpAQCAtMTI3NSw3ICsxMjc1LDcgQEAKIAl1OCBiMVtdID0geyAweDYxIH07CiAJdTggKmI7CiAJY2hhciBpZHN0cmluZ1syMV07Ci0JdTggKmZpcm13YXJlID0gTlVMTDsKKwljb25zdCB1OCAqZmlybXdhcmUgPSBOVUxMOwogCXNpemVfdCBmaXJtd2FyZV9zaXplID0gMDsKIAl1MTYgZmlybXdhcmVfY3N1bSA9IDA7CiAJX19iZTE2IGZpcm13YXJlX2NzdW1fbnM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3JhZGlvL21pcm9wY20yMC1yZHMuYyBiL2RyaXZlcnMvbWVkaWEvcmFkaW8vbWlyb3BjbTIwLXJkcy5jCmluZGV4IDA2ZGZlZDkuLjNlODQwZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcmFkaW8vbWlyb3BjbTIwLXJkcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcmFkaW8vbWlyb3BjbTIwLXJkcy5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC0yNywxMyArMjgsMTYgQEAKIAlpZiAocmRzX3VzZXJzKQogCQlyZXR1cm4gLUVCVVNZOwogCisJbG9ja19rZXJuZWwoKTsKIAlyZHNfdXNlcnMrKzsKIAlpZiAoKHRleHRfYnVmZmVyPWttYWxsb2MoNjYsIEdGUF9LRVJORUwpKSA9PSAwKSB7CiAJCXJkc191c2Vycy0tOwogCQlwcmludGsoS0VSTl9OT1RJQ0UgImFjaS1yZHM6IE91dCBvZiBtZW1vcnkgYnkgb3BlbigpLi4uXG4iKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vS2NvbmZpZwppbmRleCAzYjI2ZmJkMy4uNWNjYjBhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vS2NvbmZpZwpAQCAtNzkzLDYgKzc5MywxNCBAQAogCiBpZiBWNExfVVNCX0RSSVZFUlMgJiYgVVNCCiAKK2NvbmZpZyBVU0JfVklERU9fQ0xBU1MKKwl0cmlzdGF0ZSAiVVNCIFZpZGVvIENsYXNzIChVVkMpIgorCS0tLWhlbHAtLS0KKwkgIFN1cHBvcnQgZm9yIHRoZSBVU0IgVmlkZW8gQ2xhc3MgKFVWQykuICBDdXJyZW50bHkgb25seSB2aWRlbworCSAgaW5wdXQgZGV2aWNlcywgc3VjaCBhcyB3ZWJjYW1zLCBhcmUgc3VwcG9ydGVkLgorCisJICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6IDxodHRwOi8vbGludXgtdXZjLmJlcmxpb3MuZGUvPgorCiBzb3VyY2UgImRyaXZlcnMvbWVkaWEvdmlkZW8vcHZydXNiMi9LY29uZmlnIgogCiBzb3VyY2UgImRyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L0tjb25maWciCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS92aWRlby9NYWtlZmlsZQppbmRleCBkZmYwZDZhLi5lY2JiZmFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vTWFrZWZpbGUKQEAgLTEzNiw2ICsxMzYsOCBAQAogCiBvYmotJChDT05GSUdfVklERU9fQVUwODI4KSArPSBhdTA4MjgvCiAKK29iai0kKENPTkZJR19VU0JfVklERU9fQ0xBU1MpCSs9IHV2Yy8KKwogRVhUUkFfQ0ZMQUdTICs9IC1JZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUKIEVYVFJBX0NGTEFHUyArPSAtSWRyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcwogRVhUUkFfQ0ZMQUdTICs9IC1JZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1jYXJkcy5jCmluZGV4IGEyYTY5ODMuLjg5OGUxMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1jYXJkcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1jYXJkcy5jCkBAIC03Nyw4ICs3NywxNCBAQAogCiAJLyogTWFrZSBzdXJlIHdlIHN1cHBvcnQgdGhlIGJvYXJkIG1vZGVsICovCiAJc3dpdGNoICh0di5tb2RlbCkgeworCWNhc2UgNzIwMDA6IC8qIFdpblRWLUhWUjk1MHEgKFJldGFpbCwgSVIsIEFUU0MvUUFNICovCiAJY2FzZSA3MjAwMTogLyogV2luVFYtSFZSOTUwcSAoUmV0YWlsLCBJUiwgQVRTQy9RQU0gYW5kIGJhc2ljIGFuYWxvZyB2aWRlbyAqLworCWNhc2UgNzIyMTE6IC8qIFdpblRWLUhWUjk1MHEgKE9FTSwgSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyMjIxOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIElSLCBBVFNDL1FBTSBhbmQgYmFzaWMgYW5hbG9nIHZpZGVvICovCisJY2FzZSA3MjIzMTogLyogV2luVFYtSFZSOTUwcSAoT0VNLCBJUiwgQVRTQy9RQU0gYW5kIGJhc2ljIGFuYWxvZyB2aWRlbyAqLworCWNhc2UgNzIyNDE6IC8qIFdpblRWLUhWUjk1MHEgKE9FTSwgTm8gSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KIAljYXNlIDcyMzAxOiAvKiBXaW5UVi1IVlI4NTAgKFJldGFpbCwgSVIsIEFUU0MgYW5kIGJhc2ljIGFuYWxvZyB2aWRlbyAqLworCWNhc2UgNzI1MDA6IC8qIFdpblRWLUhWUjk1MHEgKE9FTSwgTm8gSVIsIEFUU0MvUUFNICovCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiB3YXJuaW5nOiAiCkBAIC0xNzUsNiArMTgxLDE4IEBACiAJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSODUwIH0sCiAJeyBVU0JfREVWSUNFKDB4MGZlOSwgMHhkNjIwKSwKIAkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0RWSUNPX0ZVU0lPTkhEVFY3IH0sCisJeyBVU0JfREVWSUNFKDB4MjA0MCwgMHg3MjEwKSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCisJeyBVU0JfREVWSUNFKDB4MjA0MCwgMHg3MjE3KSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCisJeyBVU0JfREVWSUNFKDB4MjA0MCwgMHg3MjFiKSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCisJeyBVU0JfREVWSUNFKDB4MjA0MCwgMHg3MjFmKSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCisJeyBVU0JfREVWSUNFKDB4MjA0MCwgMHg3MjgwKSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCisJeyBVU0JfREVWSUNFKDB4MGZkOSwgMHgwMDA4KSwKKwkJLmRyaXZlcl9pbmZvID0gQVUwODI4X0JPQVJEX0hBVVBQQVVHRV9IVlI5NTBRIH0sCiAJeyB9LAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0OHh4L2J0dHYtY2FyZHMuYwppbmRleCA4ZWYwNDI0Li4xYzU2YWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0OHh4L2J0dHYtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0OHh4L2J0dHYtY2FyZHMuYwpAQCAtMzc2OCw3ICszNzY4LDggQEAKICNkZWZpbmUgQlRUVl9BTFRfRENMSwkJMHgxMDAwMDAKICNkZWZpbmUgQlRUVl9BTFRfTkNPTkZJRwkweDgwMDAwMAogCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBwdnJfYWx0ZXJhX2xvYWQoc3RydWN0IGJ0dHYgKmJ0diwgdTggKm1pY3JvLCB1MzIgbWljcm9sZW4pCitzdGF0aWMgaW50IF9fZGV2aW5pdCBwdnJfYWx0ZXJhX2xvYWQoc3RydWN0IGJ0dHYgKmJ0diwgY29uc3QgdTggKm1pY3JvLAorCQkJCSAgICAgdTMyIG1pY3JvbGVuKQogewogCXUzMiBuOwogCXU4IGJpdHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEyX2NvcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCmluZGV4IGM4YjlmZGIuLmYyZThiMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCkBAIC0zMywxMSArMzMsMTAgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogLyogI2RlZmluZSBfQ1BJQTJfREVCVUdfICovCiAKLSNpbmNsdWRlICJjcGlhMnBhdGNoLmgiCi0KICNpZmRlZiBfQ1BJQTJfREVCVUdfCiAKIHN0YXRpYyBjb25zdCBjaGFyICpibG9ja19uYW1lW10gPSB7CkBAIC04OTMsMjQgKzg5Miw1MyBAQAogICogIGFwcGx5X3ZwX3BhdGNoCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBjcGlhMl9zZW5kX29uZWJ5dGVfY29tbWFuZChzdHJ1Y3QgY2FtZXJhX2RhdGEgKmNhbSwKKwkJCQkgICAgICBzdHJ1Y3QgY3BpYTJfY29tbWFuZCAqY21kLAorCQkJCSAgICAgIHU4IHN0YXJ0LCB1OCBkYXR1bSkKK3sKKwljbWQtPmJ1ZmZlci5ibG9ja19kYXRhWzBdID0gZGF0dW07CisJY21kLT5zdGFydCA9IHN0YXJ0OworCWNtZC0+cmVnX2NvdW50ID0gMTsKKwlyZXR1cm4gY3BpYTJfc2VuZF9jb21tYW5kKGNhbSwgY21kKTsKK30KKwogc3RhdGljIGludCBhcHBseV92cF9wYXRjaChzdHJ1Y3QgY2FtZXJhX2RhdGEgKmNhbSkKIHsKLQlpbnQgaSwgajsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgZndfbmFtZVtdID0gImNwaWEyL3N0djA2NzJfdnA0LmJpbiI7CisJaW50IGksIHJldDsKIAlzdHJ1Y3QgY3BpYTJfY29tbWFuZCBjbWQ7CiAKKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgJmNhbS0+ZGV2LT5kZXYpOworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJjcGlhMjogZmFpbGVkIHRvIGxvYWQgVlAgcGF0Y2ggXCIlc1wiXG4iLAorCQkgICAgICAgZndfbmFtZSk7CisJCXJldHVybiByZXQ7CisJfQorCiAJY21kLnJlcV9tb2RlID0gQ0FNRVJBQUNDRVNTX1RZUEVfUkVQRUFUIHwgQ0FNRVJBQUNDRVNTX1ZQOwogCWNtZC5kaXJlY3Rpb24gPSBUUkFOU0ZFUl9XUklURTsKIAotCWZvciAoaSA9IDA7IGkgPCBQQVRDSF9EQVRBX1NJWkU7IGkrKykgewotCQlmb3IgKGogPSAwOyBqIDwgcGF0Y2hfZGF0YVtpXS5jb3VudDsgaisrKSB7Ci0JCQljbWQuYnVmZmVyLmJsb2NrX2RhdGFbal0gPSBwYXRjaF9kYXRhW2ldLmRhdGFbal07Ci0JCX0KKwkvKiBGaXJzdCBzZW5kIHRoZSBzdGFydCBhZGRyZXNzLi4uICovCisJY3BpYTJfc2VuZF9vbmVieXRlX2NvbW1hbmQoY2FtLCAmY21kLCAweDBBLCBmdy0+ZGF0YVswXSk7IC8qIGhpICovCisJY3BpYTJfc2VuZF9vbmVieXRlX2NvbW1hbmQoY2FtLCAmY21kLCAweDBCLCBmdy0+ZGF0YVsxXSk7IC8qIGxvICovCiAKLQkJY21kLnN0YXJ0ID0gcGF0Y2hfZGF0YVtpXS5yZWc7Ci0JCWNtZC5yZWdfY291bnQgPSBwYXRjaF9kYXRhW2ldLmNvdW50OworCS8qIC4uLiBmb2xsb3dlZCBieSB0aGUgZGF0YSBwYXlsb2FkICovCisJZm9yIChpID0gMjsgaSA8IGZ3LT5zaXplOyBpICs9IDY0KSB7CisJCWNtZC5zdGFydCA9IDB4MEM7IC8qIERhdGEgKi8KKwkJY21kLnJlZ19jb3VudCA9IG1pbl90KGludCwgNjQsIGZ3LT5zaXplIC0gaSk7CisJCW1lbWNweShjbWQuYnVmZmVyLmJsb2NrX2RhdGEsICZmdy0+ZGF0YVtpXSwgY21kLnJlZ19jb3VudCk7CiAJCWNwaWEyX3NlbmRfY29tbWFuZChjYW0sICZjbWQpOwogCX0KIAorCS8qIE5leHQgc2VuZCB0aGUgc3RhcnQgYWRkcmVzcy4uLiAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQSwgZnctPmRhdGFbMF0pOyAvKiBoaSAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQiwgZnctPmRhdGFbMV0pOyAvKiBsbyAqLworCisJLyogLi4uIGZvbGxvd2VkIGJ5IHRoZSAnZ290bycgY29tbWFuZCAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwRCwgMSk7CisKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jcGlhMi9jcGlhMnBhdGNoLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEycGF0Y2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YwODVmYi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEycGF0Y2guaAorKysgL2Rldi9udWxsCkBAIC0xLDIzMyArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqICBGaWxlbmFtZTogY3BpYTJwYXRjaC5oCi0gKgotICogIENvcHlyaWdodCAyMDAxLCBTVE1pY3JvbGVjdHJvbmljcywgSW5jLgotICoKLSAqICBDb250YWN0OiAgc3RldmUubWlsbGVyQHN0LmNvbQotICoKLSAqICBEZXNjcmlwdGlvbjoKLSAqICAgICBUaGlzIGZpbGUgY29udGFpbnMgcGF0Y2ggZGF0YSBmb3IgdGhlIENQaUEyIChzdHYwNjcyKSBWUDQuCi0gKgotICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmbmRlZiBDUElBMl9QQVRDSF9IRUFERVIKLSNkZWZpbmUgQ1BJQTJfUEFUQ0hfSEVBREVSCi0KLXR5cGVkZWYgc3RydWN0IHsKLQl1bnNpZ25lZCBjaGFyIHJlZzsKLQl1bnNpZ25lZCBjaGFyIGNvdW50OwotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGE7Ci19IGNwaWEyX3BhdGNoOwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdGFydF9hZGRyZXNzX2hpWzFdID0gewotCTB4MDEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0YXJ0X2FkZHJlc3NfbG9bMV0gPSB7Ci0JMHhCQwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2swWzY0XSA9IHsKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweEUzLCAweDA0LCAweEUzLCAweDA1LAotCTB4RTMsIDB4MDYsIDB4RTMsIDB4MDcsIDB4OTMsIDB4NDQsIDB4NTYsIDB4RDQsCi0JMHg5MywgMHg0RSwgMHg1NiwgMHg1MSwgMHg5MywgMHg0RSwgMHg1MSwgMHhENiwKLQkweDkzLCAweDRFLCAweDRGLCAweDU0LCAweDkzLCAweDRFLCAweDkyLCAweDRGLAotCTB4OTIsIDB4QTQsIDB4OTMsIDB4MDUsIDB4OTIsIDB4RjQsIDB4OTMsIDB4MUIsCi0JMHg5MiwgMHg5MiwgMHg5MSwgMHhFNiwgMHg5MiwgMHgzNiwgMHg5MiwgMHg3NCwKLQkweDkyLCAweDRBLCAweDkyLCAweDhDLCAweDkyLCAweDhFLCAweEM4LCAweEQwLAotCTB4MEIsIDB4NDIsIDB4MDIsIDB4QTAsIDB4Q0EsIDB4OTIsIDB4MDksIDB4MDIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMVs2NF0gPSB7Ci0JMHhDOSwgMHgxMCwgMHgwQSwgMHgwQSwgMHgwQSwgMHg4MSwgMHhFMywgMHhCOCwKLQkweEUzLCAweEIwLCAweEUzLCAweEE4LCAweEUzLCAweEEwLCAweEUzLCAweDk4LAotCTB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4Q0YsIDB4RDcsIDB4MEEsIDB4MTIsCi0JMHhDQywgMHg5NSwgMHgwOCwgMHhCMiwgMHgwQSwgMHgxOCwgMHhFMSwgMHgwMCwKLQkweDAxLCAweEVFLCAweDBDLCAweDA4LCAweDRBLCAweDEyLCAweEM4LCAweDE4LAotCTB4RjAsIDB4OUEsIDB4QzAsIDB4MjIsIDB4RjMsIDB4MUMsIDB4NEEsIDB4MTMsCi0JMHhGMywgMHgxNCwgMHhDOCwgMHhBMCwgMHhGMiwgMHgxNCwgMHhGMiwgMHgxQywKLQkweEVCLCAweDEzLCAweEQzLCAweEEyLCAweDYzLCAweDE2LCAweDQ4LCAweDlFCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazJbNjRdID0gewotCTB4RjAsIDB4MTgsIDB4QTQsIDB4MDMsIDB4RjMsIDB4OTMsIDB4QzAsIDB4NTgsCi0JMHhGNywgMHgxMywgMHg1MSwgMHg5QywgMHhFOSwgMHgyMCwgMHhDRiwgMHhFRiwKLQkweDYzLCAweEY5LCAweDkyLCAweDJFLCAweEQzLCAweDVGLCAweDYzLCAweEZBLAotCTB4OTIsIDB4MkUsIDB4RDMsIDB4NjcsIDB4NjMsIDB4RkIsIDB4OTIsIDB4MkUsCi0JMHhEMywgMHg2RiwgMHhFOSwgMHgxQSwgMHg2MywgMHgxNiwgMHg0OCwgMHhBNywKLQkweEYwLCAweDIwLCAweEE0LCAweDA2LCAweEYzLCAweDk0LCAweEMwLCAweDI3LAotCTB4RjcsIDB4MTQsIDB4RjUsIDB4MTMsIDB4NTEsIDB4OUQsIDB4RjYsIDB4MTMsCi0JMHg2MywgMHgxOCwgMHhDNCwgMHgyMCwgMHhDQiwgMHhFRiwgMHg2MywgMHhGQwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2szWzY0XSA9IHsKLQkweDkyLCAweDJFLCAweEQzLCAweDc3LCAweDYzLCAweEZELCAweDkyLCAweDJFLAotCTB4RDMsIDB4N0YsIDB4NjMsIDB4RkUsIDB4OTIsIDB4MkUsIDB4RDMsIDB4ODcsCi0JMHg2MywgMHhGRiwgMHg5MiwgMHgyRSwgMHhEMywgMHg4RiwgMHg2NCwgMHgzOCwKLQkweDkyLCAweDJFLCAweEQzLCAweDk3LCAweDY0LCAweDM5LCAweDkyLCAweDJFLAotCTB4RDMsIDB4OUYsIDB4RTEsIDB4MDAsIDB4RjUsIDB4M0EsIDB4RjQsIDB4M0IsCi0JMHhGNywgMHhCRiwgMHhGMiwgMHhCQywgMHhGMiwgMHgzRCwgMHhFMSwgMHgwMCwKLQkweDgwLCAweDg3LCAweDkwLCAweDgwLCAweDUxLCAweEQ1LCAweDAyLCAweDIyLAotCTB4MDIsIDB4MzIsIDB4NEIsIDB4RDMsIDB4RjcsIDB4MTEsIDB4MEIsIDB4REEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrNFs2NF0gPSB7Ci0JMHhFMSwgMHgwMCwgMHgwRSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwRCwgMHhCNSwKLQkweEUzLCAweDAyLCAweDQ4LCAweDU1LCAweEU1LCAweDEyLCAweEE0LCAweDAxLAotCTB4RTgsIDB4MUIsIDB4RTMsIDB4OTAsIDB4RjAsIDB4MTgsIDB4QTQsIDB4MDEsCi0JMHhFOCwgMHhCRiwgMHg4RCwgMHhCOCwgMHg0QiwgMHhEMSwgMHg0QiwgMHhEOCwKLQkweDBCLCAweENCLCAweDBCLCAweEMyLCAweEUxLCAweDAwLCAweEUzLCAweDAyLAotCTB4RTMsIDB4MDMsIDB4NTIsIDB4RDMsIDB4NjAsIDB4NTksIDB4RTYsIDB4OTMsCi0JMHgwRCwgMHgyMiwgMHg1MiwgMHhENCwgMHhFNiwgMHg5MywgMHgwRCwgMHgyQSwKLQkweEUzLCAweDk4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweDAyLCAweDVECi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazVbNjRdID0gewotCTB4MDIsIDB4NjMsIDB4RTMsIDB4MDIsIDB4QzgsIDB4MTIsIDB4MDIsIDB4Q0EsCi0JMHhDOCwgMHg1MiwgMHgwMiwgMHhDMiwgMHg4MiwgMHg2OCwgMHhFMywgMHgwMiwKLQkweEM4LCAweDE0LCAweDAyLCAweENBLCAweEM4LCAweDkwLCAweDAyLCAweEMyLAotCTB4MEEsIDB4RDAsIDB4QzksIDB4OTMsIDB4MEEsIDB4REEsIDB4Q0MsIDB4RDIsCi0JMHgwQSwgMHhFMiwgMHg2MywgMHgxMiwgMHgwMiwgMHhEQSwgMHgwQSwgMHg5OCwKLQkweDBBLCAweEEwLCAweDBBLCAweEE4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLAotCTB4RTMsIDB4MDIsIDB4MEEsIDB4RDAsIDB4QzksIDB4OTMsIDB4MEEsIDB4REEsCi0JMHhDQywgMHhEMiwgMHgwQSwgMHhFMiwgMHg2MywgMHgxMiwgMHgwMiwgMHhEQQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s2WzY0XSA9IHsKLQkweDBBLCAweDk4LCAweDBBLCAweEEwLCAweDBBLCAweEE4LCAweDQ5LCAweDkxLAotCTB4RTUsIDB4NkEsIDB4QTQsIDB4MDQsIDB4QzgsIDB4MTIsIDB4MDIsIDB4Q0EsCi0JMHhDOCwgMHg1MiwgMHg4MiwgMHg4OSwgMHhDOCwgMHgxNCwgMHgwMiwgMHhDQSwKLQkweEM4LCAweDkwLCAweDAyLCAweEMyLCAweEUzLCAweDkwLCAweEUxLCAweDAwLAotCTB4MDgsIDB4NjAsIDB4RTEsIDB4MDAsIDB4NDgsIDB4NTMsIDB4RTgsIDB4OTcsCi0JMHgwOCwgMHg1QSwgMHhFMSwgMHgwMCwgMHhFMywgMHgwMiwgMHhFMywgMHgwMywKLQkweDU0LCAweEQzLCAweDYwLCAweDU5LCAweEU2LCAweDkzLCAweDBELCAweDUyLAotCTB4RTMsIDB4OTgsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4MDIsIDB4OUMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrN1s2NF0gPSB7Ci0JMHhFMywgMHgwMiwgMHg1NSwgMHgxMywgMHg5MywgMHgxNywgMHg1NSwgMHgxMywKLQkweDkzLCAweDE3LCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweDc1LCAweDMwLAotCTB4RTMsIDB4MDIsIDB4RTMsIDB4MDMsIDB4NTUsIDB4NTUsIDB4NjAsIDB4NTksCi0JMHhFNiwgMHg5MywgMHgwRCwgMHhCMiwgMHhFMywgMHg5OCwgMHhFMywgMHg5MCwKLQkweEUxLCAweDAwLCAweDAyLCAweEFFLCAweEU3LCAweDkyLCAweEU5LCAweDE4LAotCTB4RUEsIDB4OUEsIDB4RTgsIDB4OTgsIDB4RTgsIDB4MTAsIDB4RTgsIDB4MTEsCi0JMHhFOCwgMHg1MSwgMHhEMiwgMHhEQSwgMHhEMiwgMHhGMywgMHhFOCwgMHgxMywKLQkweEQyLCAweEZBLCAweEU4LCAweDUwLCAweEQyLCAweEVBLCAweEU4LCAweEQwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazhbNjRdID0gewotCTB4RTgsIDB4RDEsIDB4RDMsIDB4MEEsIDB4MDMsIDB4MDksIDB4NDgsIDB4MjMsCi0JMHhFNSwgMHgyQywgMHhBMCwgMHgwMywgMHg0OCwgMHgyNCwgMHhFQSwgMHgxQywKLQkweDAzLCAweDA4LCAweEQyLCAweEUzLCAweEQzLCAweDAzLCAweEQzLCAweDEzLAotCTB4RTEsIDB4MDAsIDB4MDIsIDB4Q0IsIDB4MDUsIDB4OTMsIDB4NTcsIDB4OTMsCi0JMHhGMCwgMHg5QSwgMHhBQywgMHgwQiwgMHhFMywgMHgwNywgMHg5MiwgMHhFQSwKLQkweEUyLCAweDlGLCAweEU1LCAweDA2LCAweEUzLCAweEIwLCAweEEwLCAweDAyLAotCTB4RUIsIDB4MUUsIDB4ODIsIDB4RDcsIDB4RUEsIDB4MUUsIDB4RTIsIDB4M0IsCi0JMHg4NSwgMHg5QiwgMHhFOSwgMHgxRSwgMHhDOCwgMHg5MCwgMHg4NSwgMHg5NAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s5WzY0XSA9IHsKLQkweDAyLCAweERFLCAweDA1LCAweDgwLCAweDU3LCAweDkzLCAweEYwLCAweEJBLAotCTB4QUMsIDB4MDYsIDB4OTIsIDB4RUEsIDB4RTIsIDB4QkYsIDB4RTUsIDB4MDYsCi0JMHhBMCwgMHgwMSwgMHhFQiwgMHhCRiwgMHg4NSwgMHg4OCwgMHhFOSwgMHgzRSwKLQkweEM4LCAweDkwLCAweDg1LCAweDgxLCAweEU5LCAweDNFLCAweEYwLCAweEJBLAotCTB4RjMsIDB4MzksIDB4RjAsIDB4M0EsIDB4NjAsIDB4MTcsIDB4RjAsIDB4M0EsCi0JMHhDMCwgMHg5MCwgMHhGMCwgMHhCQSwgMHhFMSwgMHgwMCwgMHgwMCwgMHgzRiwKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweDU4LCAweDEwLCAweDYwLCAweDU5LAotCTB4RTYsIDB4OTMsIDB4MEQsIDB4QTIsIDB4NTgsIDB4MTIsIDB4RTYsIDB4OTMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMTBbNjRdID0gewotCTB4MEQsIDB4QUEsIDB4RTMsIDB4OTgsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsCi0JMHgwMywgMHgwMSwgMHhFMSwgMHgwMCwgMHgwMywgMHgwMywgMHg5QiwgMHg3RCwKLQkweDhCLCAweDhCLCAweEUzLCAweDAyLCAweEUzLCAweDAzLCAweDU4LCAweDU2LAotCTB4NjAsIDB4NTksIDB4RTYsIDB4OTMsIDB4MEQsIDB4QkEsIDB4RTMsIDB4OTgsCi0JMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwgMHgwMywgMHgwRiwgMHg5MywgMHgxMSwKLQkweEUxLCAweDAwLCAweEUzLCAweDAyLCAweDRBLCAweDExLCAweDBCLCAweDQyLAotCTB4OTEsIDB4QUYsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4RjIsIDB4OTEsCi0JMHhGMCwgMHg5MSwgMHhBMywgMHhGRSwgMHhFMSwgMHgwMCwgMHg2MCwgMHg5MgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2sxMVs2NF0gPSB7Ci0JMHhDMCwgMHg1RiwgMHhGMCwgMHgxMywgMHhGMCwgMHgxMywgMHg1OSwgMHg1QiwKLQkweEUyLCAweDEzLCAweEYwLCAweDExLCAweDVBLCAweDE5LCAweEUyLCAweDEzLAotCTB4RTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MjcsIDB4NjgsIDB4NjEsCi0JMHg3NiwgMHg2MSwgMHg2RSwgMHg2MSwgMHgwMCwgMHgwNiwgMHgwMywgMHgyQywKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweEU5LCAweDM4LCAweDU5LCAweDE1LAotCTB4NTksIDB4NUEsIDB4RjIsIDB4OUEsIDB4QkMsIDB4MEIsIDB4QTQsIDB4MEEsCi0JMHg1OSwgMHgxRSwgMHhGMywgMHgxMSwgMHhGMCwgMHgxQSwgMHhFMiwgMHhCQiwKLQkweDU5LCAweDE1LCAweEYwLCAweDExLCAweDE5LCAweDJBLCAweEU1LCAweDAyCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazEyWzU0XSA9IHsKLQkweEE0LCAweDAxLCAweEVCLCAweEJGLCAweEUzLCAweDk4LCAweEUzLCAweDkwLAotCTB4RTEsIDB4MDAsIDB4MDMsIDB4NDIsIDB4MTksIDB4MjgsIDB4RTEsIDB4MDAsCi0JMHhFOSwgMHgzMCwgMHg2MCwgMHg3OSwgMHhFMSwgMHgwMCwgMHhFMywgMHgwMywKLQkweEUzLCAweDA3LCAweDYwLCAweDc5LCAweDkzLCAweDRFLCAweEUzLCAweEI4LAotCTB4RTMsIDB4OTgsIDB4RTEsIDB4MDAsIDB4RTksIDB4MUEsIDB4RjAsIDB4MUYsCi0JMHhFMiwgMHgzMywgMHhGMCwgMHg5MSwgMHhFMiwgMHg5MiwgMHhFMCwgMHgzMiwKLQkweEYwLCAweDMxLCAweEUxLCAweDAwLCAweDAwLCAweDAwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkb19jYWxsWzFdID0gewotCTB4MDEKLX07Ci0KLQotI2RlZmluZSBQQVRDSF9EQVRBX1NJWkUgMTgKLQotc3RhdGljIGNvbnN0IGNwaWEyX3BhdGNoIHBhdGNoX2RhdGFbUEFUQ0hfREFUQV9TSVpFXSA9IHsKLQl7MHgwQSwgc2l6ZW9mKHN0YXJ0X2FkZHJlc3NfaGkpLCBzdGFydF9hZGRyZXNzX2hpfQotCSwJCQkvLyAwCi0JezB4MEIsIHNpemVvZihzdGFydF9hZGRyZXNzX2xvKSwgc3RhcnRfYWRkcmVzc19sb30KLQksCQkJLy8gMQotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2swKSwgcGF0Y2hfYmxvY2swfQotCSwJCQkvLyAyCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazEpLCBwYXRjaF9ibG9jazF9Ci0JLAkJCS8vIDMKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMiksIHBhdGNoX2Jsb2NrMn0KLQksCQkJLy8gNAotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2szKSwgcGF0Y2hfYmxvY2szfQotCSwJCQkvLyA1Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazQpLCBwYXRjaF9ibG9jazR9Ci0JLAkJCS8vIDYKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrNSksIHBhdGNoX2Jsb2NrNX0KLQksCQkJLy8gNwotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2s2KSwgcGF0Y2hfYmxvY2s2fQotCSwJCQkvLyA4Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazcpLCBwYXRjaF9ibG9jazd9Ci0JLAkJCS8vIDkKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrOCksIHBhdGNoX2Jsb2NrOH0KLQksCQkJLy8gMTAKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrOSksIHBhdGNoX2Jsb2NrOX0KLQksCQkJLy8xMQotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2sxMCksIHBhdGNoX2Jsb2NrMTB9Ci0JLAkJCS8vIDEyCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazExKSwgcGF0Y2hfYmxvY2sxMX0KLQksCQkJLy8gMTMKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMTIpLCBwYXRjaF9ibG9jazEyfQotCSwJCQkvLyAxNAotCXsweDBBLCBzaXplb2Yoc3RhcnRfYWRkcmVzc19oaSksIHN0YXJ0X2FkZHJlc3NfaGl9Ci0JLAkJCS8vIDE1Ci0JezB4MEIsIHNpemVvZihzdGFydF9hZGRyZXNzX2xvKSwgc3RhcnRfYWRkcmVzc19sb30KLQksCQkJLy8gMTYKLQl7MHgwRCwgc2l6ZW9mKGRvX2NhbGwpLCBkb19jYWxsfQkvLzE3Ci19OwotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZwppbmRleCA1Zjk0MjY5Li45YWVmZGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZwpAQCAtMTAsOCArMTAsOCBAQAogCXNlbGVjdCBWSURFT19UVkVFUFJPTQogCXNlbGVjdCBWSURFT19DWDIzNDFYCiAJc2VsZWN0IFZJREVPX0NTNTM0NQotCXNlbGVjdCBEVkJfUzVIMTQwOQotCXNlbGVjdCBNRURJQV9UVU5FUl9NWEw1MDA1UworCXNlbGVjdCBEVkJfUzVIMTQwOSBpZiAhRFZCX0ZFX0NVU1RPTUlTRQorCXNlbGVjdCBNRURJQV9UVU5FUl9NWEw1MDA1UyBpZiAhRFZCX0ZFX0NVU1RPTUlTRQogCS0tLWhlbHAtLS0KIAkgIFRoaXMgaXMgYSB2aWRlbzRsaW51eCBkcml2ZXIgZm9yIENvbmV4YW50IGN4MjM0MTggYmFzZWQKIAkgIFBDSSBjb21ibyB2aWRlbyByZWNvcmRlciBkZXZpY2VzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5jCmluZGV4IDlhMjY3NTEuLmZhY2E0M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmMKQEAgLTY5LDYgKzY5LDU4IEBACiAJCQkgICAgIG9yX3ZhbHVlKTsKIH0KIAoraW50IGN4MThfYXZfd3JpdGVfbm9fYWNmZyhzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1OCB2YWx1ZSwgaW50IG5vX2FjZmdfbWFzaykKK3sKKwlpbnQgcmV0dmFsOworCXUzMiBzYXZlZF9yZWdbOF0gPSB7MH07CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfQUZFKSB7CisJCXNhdmVkX3JlZ1swXSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19DSElQX0NUUkwpOworCQlzYXZlZF9yZWdbMV0gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfQUZFX0NUUkwpOworCX0KKworCWlmIChub19hY2ZnX21hc2sgJiBDWEFERUNfTk9fQUNGR19QTEwpIHsKKwkJc2F2ZWRfcmVnWzJdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX1BMTF9DVFJMMSk7CisJCXNhdmVkX3JlZ1szXSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19WSURfUExMX0ZSQUMpOworCX0KKworCWlmIChub19hY2ZnX21hc2sgJiBDWEFERUNfTk9fQUNGR19WSUQpIHsKKwkJc2F2ZWRfcmVnWzRdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX0hPUklaX1RJTV9DVFJMKTsKKwkJc2F2ZWRfcmVnWzVdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX1ZFUlRfVElNX0NUUkwpOworCQlzYXZlZF9yZWdbNl0gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfU1JDX0NPTUJfQ0ZHKTsKKwkJc2F2ZWRfcmVnWzddID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX0NIUk9NQV9WQklPRkZfQ0ZHKTsKKwl9CisKKwlyZXR2YWwgPSBjeDE4X2F2X3dyaXRlKGN4LCBhZGRyLCB2YWx1ZSk7CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfQUZFKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfQ0hJUF9DVFJMLCBzYXZlZF9yZWdbMF0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX0FGRV9DVFJMLCAgc2F2ZWRfcmVnWzFdKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfUExMKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfUExMX0NUUkwxLCAgICBzYXZlZF9yZWdbMl0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX1ZJRF9QTExfRlJBQywgc2F2ZWRfcmVnWzNdKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfVklEKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfSE9SSVpfVElNX0NUUkwsICAgIHNhdmVkX3JlZ1s0XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfVkVSVF9USU1fQ1RSTCwgICAgIHNhdmVkX3JlZ1s1XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfU1JDX0NPTUJfQ0ZHLCAgICAgIHNhdmVkX3JlZ1s2XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfQ0hST01BX1ZCSU9GRl9DRkcsIHNhdmVkX3JlZ1s3XSk7CisJfQorCisJcmV0dXJuIHJldHZhbDsKK30KKworaW50IGN4MThfYXZfYW5kX29yX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdW5zaWduZWQgYW5kX21hc2ssCisJCQkgICB1OCBvcl92YWx1ZSwgaW50IG5vX2FjZmdfbWFzaykKK3sKKwlyZXR1cm4gY3gxOF9hdl93cml0ZV9ub19hY2ZnKGN4LCBhZGRyLAorCQkJCSAgICAgKGN4MThfYXZfcmVhZChjeCwgYWRkcikgJiBhbmRfbWFzaykgfAorCQkJCSAgICAgb3JfdmFsdWUsIG5vX2FjZmdfbWFzayk7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIHN0YXRpYyBpbnQgc2V0X2lucHV0KHN0cnVjdCBjeDE4ICpjeCwgZW51bSBjeDE4X2F2X3ZpZGVvX2lucHV0IHZpZF9pbnB1dCwKQEAgLTE3MCwxMyArMjIyLDE1IEBACiAKIAkvKiBGb2xsb3cgc3RlcCA4YyBhbmQgOGQgb2Ygc2VjdGlvbiAzLjE2IGluIHRoZSBjeDE4X2F2IGRhdGFzaGVldCAqLwogCWlmIChzdGQgJiBWNEwyX1NURF9TRUNBTSkKLQkJY3gxOF9hdl93cml0ZShjeCwgMHg0MDIsIDApOworCQljeDE4X2F2X3dyaXRlX25vX2FjZmcoY3gsIDB4NDAyLCAwLCBDWEFERUNfTk9fQUNGR19BTEwpOwogCWVsc2UgewotCQljeDE4X2F2X3dyaXRlKGN4LCAweDQwMiwgMHgwNCk7CisJCWN4MThfYXZfd3JpdGVfbm9fYWNmZyhjeCwgMHg0MDIsIDB4MDQsIENYQURFQ19OT19BQ0ZHX0FMTCk7CiAJCWN4MThfYXZfd3JpdGUoY3gsIDB4NDlmLCAoc3RkICYgVjRMMl9TVERfTlRTQykgPyAweDE0IDogMHgxMSk7CiAJfQotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMSwgfjB4NjAsIDApOwotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMSwgfjB4NjAsIDB4NjApOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAxLCB+MHg2MCwgMCwKKwkJCQlDWEFERUNfTk9fQUNGR19QTEwgfCBDWEFERUNfTk9fQUNGR19WSUQpOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAxLCB+MHg2MCwgMHg2MCwKKwkJCQlDWEFERUNfTk9fQUNGR19QTEwgfCBDWEFERUNfTk9fQUNGR19WSUQpOwogCiAJaWYgKHN0ZCAmIFY0TDJfU1REXzUyNV82MCkgewogCQlpZiAoc3RkID09IFY0TDJfU1REX05UU0NfTV9KUCkgewpAQCAtMjI4LDcgKzI4Miw3IEBACiAKIAkJaWYgKCh2aWRfaW5wdXQgJiB+MHhmZjApIHx8CiAJCSAgICBsdW1hIDwgQ1gxOF9BVl9TVklERU9fTFVNQTEgfHwKLQkJICAgIGx1bWEgPiBDWDE4X0FWX1NWSURFT19MVU1BNCB8fAorCQkgICAgbHVtYSA+IENYMThfQVZfU1ZJREVPX0xVTUE4IHx8CiAJCSAgICBjaHJvbWEgPCBDWDE4X0FWX1NWSURFT19DSFJPTUE0IHx8CiAJCSAgICBjaHJvbWEgPiBDWDE4X0FWX1NWSURFT19DSFJPTUE4KSB7CiAJCQlDWDE4X0VSUigiMHglMDR4IGlzIG5vdCBhIHZhbGlkIHZpZGVvIGlucHV0IVxuIiwKQEAgLTI2Miw3ICszMTYsOCBAQAogCiAJY3gxOF9hdl93cml0ZShjeCwgMHgxMDMsIHJlZyk7CiAJLyogU2V0IElOUFVUX01PREUgdG8gQ29tcG9zaXRlICgwKSBvciBTLVZpZGVvICgxKSAqLwotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMSwgfjB4NiwgaXNfY29tcG9zaXRlID8gMCA6IDB4MDIpOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAxLCB+MHg2LCBpc19jb21wb3NpdGUgPyAwIDogMHgwMiwKKwkJCQlDWEFERUNfTk9fQUNGR19QTEwgfCBDWEFERUNfTk9fQUNGR19WSUQpOwogCS8qIFNldCBDSF9TRUxfQURDMiB0byAxIGlmIGlucHV0IGNvbWVzIGZyb20gQ0gzICovCiAJY3gxOF9hdl9hbmRfb3IoY3gsIDB4MTAyLCB+MHgyLCAocmVnICYgMHg4MCkgPT0gMCA/IDIgOiAwKTsKIAkvKiBTZXQgRFVBTF9NT0RFX0FEQzIgdG8gMSBpZiBpbnB1dCBjb21lcyBmcm9tIGJvdGggQ0gyIGFuZCBDSDMgKi8KQEAgLTMxOCwxMiArMzczLDEyIEBACiAJICAgVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIHdpdGggdGhlIFl1YW4gTVBDNjIyLiAqLwogCWlmIChmbXQgPj0gNCAmJiBmbXQgPCA4KSB7CiAJCS8qIFNldCBmb3JtYXQgdG8gTlRTQy1NICovCi0JCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMCwgfjB4ZiwgMSk7CisJCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAwLCB+MHhmLCAxLCBDWEFERUNfTk9fQUNGR19BRkUpOwogCQkvKiBUdXJuIG9mZiBMQ09NQiAqLwogCQljeDE4X2F2X2FuZF9vcihjeCwgMHg0N2IsIH42LCAwKTsKIAl9Ci0JY3gxOF9hdl9hbmRfb3IoY3gsIDB4NDAwLCB+MHhmLCBmbXQpOwotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMywgfjB4MywgcGFsX20pOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAwLCB+MHhmLCBmbXQsIENYQURFQ19OT19BQ0ZHX0FGRSk7CisJY3gxOF9hdl9hbmRfb3Jfbm9fYWNmZyhjeCwgMHg0MDMsIH4weDMsIHBhbF9tLCBDWEFERUNfTk9fQUNGR19BTEwpOwogCWN4MThfYXZfdmJpX3NldHVwKGN4KTsKIAlpbnB1dF9jaGFuZ2UoY3gpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5oCmluZGV4IDc4NjkwMWQuLmMxNzI4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmgKQEAgLTM3LDEyICszNywxNiBAQAogCUNYMThfQVZfQ09NUE9TSVRFNywKIAlDWDE4X0FWX0NPTVBPU0lURTgsCiAKLQkvKiBTLVZpZGVvIGlucHV0cyBjb25zaXN0IG9mIG9uZSBsdW1hIGlucHV0IChJbjEtSW40KSBPUmVkIHdpdGggb25lCisJLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluOCkgT1JlZCB3aXRoIG9uZQogCSAgIGNocm9tYSBpbnB1dCAoSW41LUluOCkgKi8KIAlDWDE4X0FWX1NWSURFT19MVU1BMSA9IDB4MTAsCiAJQ1gxOF9BVl9TVklERU9fTFVNQTIgPSAweDIwLAogCUNYMThfQVZfU1ZJREVPX0xVTUEzID0gMHgzMCwKIAlDWDE4X0FWX1NWSURFT19MVU1BNCA9IDB4NDAsCisJQ1gxOF9BVl9TVklERU9fTFVNQTUgPSAweDUwLAorCUNYMThfQVZfU1ZJREVPX0xVTUE2ID0gMHg2MCwKKwlDWDE4X0FWX1NWSURFT19MVU1BNyA9IDB4NzAsCisJQ1gxOF9BVl9TVklERU9fTFVNQTggPSAweDgwLAogCUNYMThfQVZfU1ZJREVPX0NIUk9NQTQgPSAweDQwMCwKIAlDWDE4X0FWX1NWSURFT19DSFJPTUE1ID0gMHg1MDAsCiAJQ1gxOF9BVl9TVklERU9fQ0hST01BNiA9IDB4NjAwLApAQCAtMjkxLDE0ICsyOTUsMjQgQEAKICNkZWZpbmUgQ1hBREVDX1NFTEVDVF9BVURJT19TVEFOREFSRF9GTSAgICAweEY5ICAvKiBGTSByYWRpbyAqLwogI2RlZmluZSBDWEFERUNfU0VMRUNUX0FVRElPX1NUQU5EQVJEX0FVVE8gIDB4RkYgIC8qIEF1dG8gZGV0ZWN0ICovCiAKKy8qIEZsYWdzIG9uIHdoYXQgdG8gcHJlc2VydmUgb24gd3JpdGUgdG8gMHg0MDAtMHg0MDMgd2l0aCBjeDE4X2F2Xy4qX25vX2FjZmcoKSovCisjZGVmaW5lIENYQURFQ19OT19BQ0ZHX0FGRQkweDAxIC8qIFByZXNlcnZlIDB4MTAwLTB4MTA3ICovCisjZGVmaW5lIENYQURFQ19OT19BQ0ZHX1BMTAkweDAyIC8qIFByZXNlcnZlIDB4MTA4LTB4MTBmICovCisjZGVmaW5lIENYQURFQ19OT19BQ0ZHX1ZJRAkweDA0IC8qIFByZXNlcnZlIDB4NDcwLTB4NDdmICovCisjZGVmaW5lIENYQURFQ19OT19BQ0ZHX0FMTAkweDA3CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBjeDE4X2F2LWNvcmUuYyAJCQkJCQkJICAgKi8KIGludCBjeDE4X2F2X3dyaXRlKHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIsIHU4IHZhbHVlKTsKIGludCBjeDE4X2F2X3dyaXRlNChzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1MzIgdmFsdWUpOworaW50IGN4MThfYXZfd3JpdGVfbm9fYWNmZyhzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1OCB2YWx1ZSwKKwkJCQlpbnQgbm9fYWNmZ19tYXNrKTsKIHU4IGN4MThfYXZfcmVhZChzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyKTsKIHUzMiBjeDE4X2F2X3JlYWQ0KHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIpOwogaW50IGN4MThfYXZfYW5kX29yKHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIsIHVuc2lnbmVkIG1hc2ssIHU4IHZhbHVlKTsKIGludCBjeDE4X2F2X2FuZF9vcjQoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTMyIG1hc2ssIHUzMiB2YWx1ZSk7CitpbnQgY3gxOF9hdl9hbmRfb3Jfbm9fYWNmZyhzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1bnNpZ25lZCBtYXNrLCB1OCB2YWx1ZSwKKwkJCQlpbnQgbm9fYWNmZ19tYXNrKTsKIGludCBjeDE4X2F2X2NtZChzdHJ1Y3QgY3gxOCAqY3gsIHVuc2lnbmVkIGludCBjbWQsIHZvaWQgKmFyZyk7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1maXJtd2FyZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtZmlybXdhcmUuYwppbmRleCA1MjZlMTQyLi5hMWE2YWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1maXJtd2FyZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWZpcm13YXJlLmMKQEAgLTI5LDcgKzI5LDcgQEAKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKIAl1MzIgc2l6ZTsKIAl1MzIgdjsKLQl1OCAqcHRyOworCWNvbnN0IHU4ICpwdHI7CiAJaW50IGk7CiAKIAlpZiAocmVxdWVzdF9maXJtd2FyZSgmZncsIEZXRklMRSwgJmN4LT5kZXYtPmRldikgIT0gMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmMKaW5kZXggYmFjY2QwNy4uYzI2ZTBlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5jCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJjeDE4LWRyaXZlci5oIgogI2luY2x1ZGUgImN4MTgtY2FyZHMuaCIKKyNpbmNsdWRlICJjeDE4LWF2LWNvcmUuaCIKICNpbmNsdWRlICJjeDE4LWkyYy5oIgogI2luY2x1ZGUgPG1lZGlhL2NzNTM0NS5oPgogCkBAIC01NCwyMiArNTUsMjIgQEAKIAkuaHdfYWxsID0gQ1gxOF9IV19UVkVFUFJPTSB8IENYMThfSFdfVFVORVIgfAogCQkgIENYMThfSFdfQ1M1MzQ1IHwgQ1gxOF9IV19EVkIsCiAJLnZpZGVvX2lucHV0cyA9IHsKLQkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gyMzQxOF9DT01QT1NJVEU3IH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsIENYMjM0MThfU1ZJREVPMSAgICB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDIzNDE4X0NPTVBPU0lURTMgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwgQ1gyMzQxOF9TVklERU8yICAgIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTIsIDIsIENYMjM0MThfQ09NUE9TSVRFNCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDE4X0FWX0NPTVBPU0lURTcgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMSwgICAgMSwgQ1gxOF9BVl9TVklERU8xICAgIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMThfQVZfQ09NUE9TSVRFMyB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8yLCAgICAyLCBDWDE4X0FWX1NWSURFTzIgICAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiwgMiwgQ1gxOF9BVl9DT01QT1NJVEU0IH0sCiAJfSwKIAkuYXVkaW9faW5wdXRzID0gewogCQl7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCSAgQ1gyMzQxOF9BVURJTzgsIENTNTM0NV9JTl8xIHwgQ1M1MzQ1X01DTEtfMV81IH0sCisJCSAgQ1gxOF9BVl9BVURJTzgsIENTNTM0NV9JTl8xIHwgQ1M1MzQ1X01DTEtfMV81IH0sCiAJCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4xLAotCQkgIENYMjM0MThfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMiB9LAorCQkgIENYMThfQVZfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMiB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMiwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKKwkJICBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzMgfSwKIAl9LAogCS5yYWRpb19pbnB1dCA9IHsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwKLQkJCSBDWDIzNDE4X0FVRElPX1NFUklBTCwgMCB9LAorCQkJIENYMThfQVZfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fNCB9LAogCS5kZHIgPSB7CiAJCS8qIEVTTVQgTTEzUzEyODMyNEEtNUIgbWVtb3J5ICovCiAJCS5jaGlwX2NvbmZpZyA9IDB4MDAzLApAQCAtODEsNiArODIsMTEgQEAKIAl9LAogCS5ncGlvX2luaXQuaW5pdGlhbF92YWx1ZSA9IDB4MzAwMSwKIAkuZ3Bpb19pbml0LmRpcmVjdGlvbiA9IDB4MzAwMSwKKwkuZ3Bpb19pMmNfc2xhdmVfcmVzZXQgPSB7CisJCS5hY3RpdmVfbG9fbWFzayA9IDB4MzAwMSwKKwkJLm1zZWNzX2Fzc2VydGVkID0gMTAsCisJCS5tc2Vjc19yZWNvdmVyeSA9IDQwLAorCX0sCiAJLmkyYyA9ICZjeDE4X2kyY19zdGQsCiB9OwogCkBAIC05NCwyMiArMTAwLDIyIEBACiAJLmh3X2FsbCA9IENYMThfSFdfVFZFRVBST00gfCBDWDE4X0hXX1RVTkVSIHwKIAkJICBDWDE4X0hXX0NTNTM0NSB8IENYMThfSFdfRFZCLAogCS52aWRlb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMjM0MThfQ09NUE9TSVRFNyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDIzNDE4X1NWSURFTzEgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUzIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsIENYMjM0MThfU1ZJREVPMiAgICB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyLCAyLCBDWDIzNDE4X0NPTVBPU0lURTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gxOF9BVl9DT01QT1NJVEU3IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsIENYMThfQVZfU1ZJREVPMSAgICB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDE4X0FWX0NPTVBPU0lURTMgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwgQ1gxOF9BVl9TVklERU8yICAgIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTIsIDIsIENYMThfQVZfQ09NUE9TSVRFNCB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKIAkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAorCQkgIENYMThfQVZfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKKwkJICBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjIsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCisJCSAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8zIH0sCiAJfSwKIAkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJCSBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzQgfSwKIAkuZGRyID0gewogCQkvKiBTYW1zdW5nIEs0RDI2MzIzOEctVkMzMyBtZW1vcnkgKi8KIAkJLmNoaXBfY29uZmlnID0gMHgwMDMsCkBAIC0xMjEsNiArMTI3LDExIEBACiAJfSwKIAkuZ3Bpb19pbml0LmluaXRpYWxfdmFsdWUgPSAweDMwMDEsCiAJLmdwaW9faW5pdC5kaXJlY3Rpb24gPSAweDMwMDEsCisJLmdwaW9faTJjX3NsYXZlX3Jlc2V0ID0geworCQkuYWN0aXZlX2xvX21hc2sgPSAweDMwMDEsCisJCS5tc2Vjc19hc3NlcnRlZCA9IDEwLAorCQkubXNlY3NfcmVjb3ZlcnkgPSA0MCwKKwl9LAogCS5pMmMgPSAmY3gxOF9pMmNfc3RkLAogfTsKIApAQCAtMTQxLDE5ICsxNTIsMTkgQEAKIAkuaHdfYXVkaW9fY3RybCA9IENYMThfSFdfQ1gyMzQxOCwKIAkuaHdfYWxsID0gQ1gxOF9IV19UVU5FUiwKIAkudmlkZW9faW5wdXRzID0gewotCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDIzNDE4X0NPTVBPU0lURTIgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gxOF9BVl9DT01QT1NJVEUyIH0sCiAJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsCi0JCQlDWDIzNDE4X1NWSURFT19MVU1BMyB8IENYMjM0MThfU1ZJREVPX0NIUk9NQTQgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUxIH0sCisJCQlDWDE4X0FWX1NWSURFT19MVU1BMyB8IENYMThfQVZfU1ZJREVPX0NIUk9NQTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gxOF9BVl9DT01QT1NJVEUxIH0sCiAJfSwKIAkuYXVkaW9faW5wdXRzID0gewogCQl7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCSAgQ1gyMzQxOF9BVURJTzgsIDAgfSwKKwkJICBDWDE4X0FWX0FVRElPOCwgMCB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgMCB9LAorCQkgIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJfSwKIAkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJCSBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAogCS50dW5lcnMgPSB7CiAJCXsgLnN0ZCA9IFY0TDJfU1REX0FMTCwgLnR1bmVyID0gVFVORVJfWEMyMDI4IH0sCiAJfSwKQEAgLTE4MywyMyArMTk0LDI2IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGN4MThfY2FyZCBjeDE4X2NhcmRfbXBjNzE4ID0gewogCS50eXBlID0gQ1gxOF9DQVJEX1lVQU5fTVBDNzE4LAogCS5uYW1lID0gIll1YW4gTVBDNzE4IiwKLQkuY29tbWVudCA9ICJOb3QgeWV0IHN1cHBvcnRlZCFcbiIsCi0JLnY0bDJfY2FwYWJpbGl0aWVzID0gMCwKKwkuY29tbWVudCA9ICJTb21lIENvbXBvc2l0ZSBhbmQgUy1WaWRlbyBpbnB1dHMgYXJlIGN1cnJlbnRseSB3b3JraW5nLlxuIiwKKwkudjRsMl9jYXBhYmlsaXRpZXMgPSBDWDE4X0NBUF9FTkNPREVSLAogCS5od19hdWRpb19jdHJsID0gQ1gxOF9IV19DWDIzNDE4LAogCS5od19hbGwgPSBDWDE4X0hXX1RVTkVSLAogCS52aWRlb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMjM0MThfQ09NUE9TSVRFNyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDIzNDE4X1NWSURFTzEgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUzIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMThfQVZfQ09NUE9TSVRFMiB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLAorCQkJCUNYMThfQVZfU1ZJREVPX0xVTUEzIHwgQ1gxOF9BVl9TVklERU9fQ0hST01BNCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDE4X0FWX0NPTVBPU0lURTEgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwKKwkJCQlDWDE4X0FWX1NWSURFT19MVU1BNyB8IENYMThfQVZfU1ZJREVPX0NIUk9NQTggfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiwgMiwgQ1gxOF9BVl9DT01QT1NJVEU2IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTMsIDIsIENYMThfQVZfQ09NUE9TSVRFMyB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCAwIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4xLAotCQkgIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwgQ1gxOF9BVl9BVURJTzUsICAgICAgIDAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEsICBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMiwgIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJfSwKLQkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJLnR1bmVycyA9IHsKIAkJLyogWEMzMDI4IHR1bmVyICovCiAJCXsgLnN0ZCA9IFY0TDJfU1REX0FMTCwgLnR1bmVyID0gVFVORVJfWEMyMDI4IH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuaAppbmRleCBiY2NiNjdmLi5kYzJkZDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmgKQEAgLTM2LDM2ICszNiw2IEBACiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyIAk1CiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUzIAk2CiAKLWVudW0gY3gzNDE4MF92aWRlb19pbnB1dCB7Ci0JLyogQ29tcG9zaXRlIHZpZGVvIGlucHV0cyBJbjEtSW44ICovCi0JQ1gyMzQxOF9DT01QT1NJVEUxID0gMSwKLQlDWDIzNDE4X0NPTVBPU0lURTIsCi0JQ1gyMzQxOF9DT01QT1NJVEUzLAotCUNYMjM0MThfQ09NUE9TSVRFNCwKLQlDWDIzNDE4X0NPTVBPU0lURTUsCi0JQ1gyMzQxOF9DT01QT1NJVEU2LAotCUNYMjM0MThfQ09NUE9TSVRFNywKLQlDWDIzNDE4X0NPTVBPU0lURTgsCi0KLQkvKiBTLVZpZGVvIGlucHV0cyBjb25zaXN0IG9mIG9uZSBsdW1hIGlucHV0IChJbjEtSW40KSBPUmVkIHdpdGggb25lCi0JICAgY2hyb21hIGlucHV0IChJbjUtSW44KSAqLwotCUNYMjM0MThfU1ZJREVPX0xVTUExID0gMHgxMCwKLQlDWDIzNDE4X1NWSURFT19MVU1BMiA9IDB4MjAsCi0JQ1gyMzQxOF9TVklERU9fTFVNQTMgPSAweDMwLAotCUNYMjM0MThfU1ZJREVPX0xVTUE0ID0gMHg0MCwKLQlDWDIzNDE4X1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BNSA9IDB4NTAwLAotCUNYMjM0MThfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKLQlDWDIzNDE4X1NWSURFT19DSFJPTUE3ID0gMHg3MDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BOCA9IDB4ODAwLAotCi0JLyogUy1WaWRlbyBhbGlhc2VzIGZvciBjb21tb24gbHVtYS9jaHJvbWEgY29tYmluYXRpb25zICovCi0JQ1gyMzQxOF9TVklERU8xID0gMHg1MTAsCi0JQ1gyMzQxOF9TVklERU8yID0gMHg2MjAsCi0JQ1gyMzQxOF9TVklERU8zID0gMHg3MzAsCi0JQ1gyMzQxOF9TVklERU80ID0gMHg4NDAsCi19OwotCiAvKiBhdWRpbyBpbnB1dHMgKi8KICNkZWZpbmUJQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUgkxCiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSAJMgpAQCAtNzUsMTYgKzQ1LDYgQEAKICNkZWZpbmUgQ1gxOF9DQVJEX01BWF9BVURJT19JTlBVVFMgMwogI2RlZmluZSBDWDE4X0NBUkRfTUFYX1RVTkVSUyAgCSAgIDIKIAotZW51bSBjeDIzNDE4X2F1ZGlvX2lucHV0IHsKLQkvKiBBdWRpbyBpbnB1dHM6IHNlcmlhbCBvciBJbjQtSW44ICovCi0JQ1gyMzQxOF9BVURJT19TRVJJQUwsCi0JQ1gyMzQxOF9BVURJTzQgPSA0LAotCUNYMjM0MThfQVVESU81LAotCUNYMjM0MThfQVVESU82LAotCUNYMjM0MThfQVVESU83LAotCUNYMjM0MThfQVVESU84LAotfTsKLQogLyogVjRMMiBjYXBhYmlsaXR5IGFsaWFzZXMgKi8KICNkZWZpbmUgQ1gxOF9DQVBfRU5DT0RFUiAoVjRMMl9DQVBfVklERU9fQ0FQVFVSRSB8IFY0TDJfQ0FQX1RVTkVSIHwgXAogCQkJICBWNEwyX0NBUF9BVURJTyB8IFY0TDJfQ0FQX1JFQURXUklURSkKQEAgLTExOCw2ICs3OCwxMyBAQAogCXUzMiBpbml0aWFsX3ZhbHVlOwogfTsKIAorc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgeworCXUzMiBhY3RpdmVfbG9fbWFzazsgLyogR1BJTyBvdXRwdXRzIHRoYXQgcmVzZXQgaTJjIGNoaXBzIHdoZW4gbG93ICovCisJdTMyIGFjdGl2ZV9oaV9tYXNrOyAvKiBHUElPIG91dHB1dHMgdGhhdCByZXNldCBpMmMgY2hpcHMgd2hlbiBoaWdoICovCisJaW50IG1zZWNzX2Fzc2VydGVkOyAvKiB0aW1lIHBlcmlvZCByZXNldCBtdXN0IHJlbWFpbiBhc3NlcnRlZCAqLworCWludCBtc2Vjc19yZWNvdmVyeTsgLyogdGltZSBhZnRlciBkZWFzc2VydCBmb3IgY2hpcHMgdG8gYmUgcmVhZHkgKi8KK307CisKIHN0cnVjdCBjeDE4X2NhcmRfdHVuZXIgewogCXY0bDJfc3RkX2lkIHN0ZDsgCS8qIHN0YW5kYXJkIGZvciB3aGljaCB0aGUgdHVuZXIgaXMgc3VpdGFibGUgKi8KIAlpbnQgCSAgICB0dW5lcjsgCS8qIHR1bmVyIElEIChmcm9tIHR1bmVyLmgpICovCkBAIC0xNTQsNyArMTIxLDggQEAKIAogCS8qIEdQSU8gY2FyZC1zcGVjaWZpYyBzZXR0aW5ncyAqLwogCXU4IHhjZWl2ZV9waW47IAkJLyogWENlaXZlIHR1bmVyIEdQSU8gcmVzZXQgcGluICovCi0Jc3RydWN0IGN4MThfZ3Bpb19pbml0IAkJZ3Bpb19pbml0OworCXN0cnVjdCBjeDE4X2dwaW9faW5pdCAJCSBncGlvX2luaXQ7CisJc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgZ3Bpb19pMmNfc2xhdmVfcmVzZXQ7CiAKIAlzdHJ1Y3QgY3gxOF9jYXJkX3R1bmVyIHR1bmVyc1tDWDE4X0NBUkRfTUFYX1RVTkVSU107CiAJc3RydWN0IGN4MThfY2FyZF90dW5lcl9pMmMgKmkyYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZHZiLmMKaW5kZXggYzk3NDQxNy4uY2FlMzg5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZHZiLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZHZiLmMKQEAgLTY5LDExICs2OSwyMSBAQAogCXN0cnVjdCBkdmJfZGVtdXggKmRlbXV4ID0gZmVlZC0+ZGVtdXg7CiAJc3RydWN0IGN4MThfc3RyZWFtICpzdHJlYW0gPSAoc3RydWN0IGN4MThfc3RyZWFtICopIGRlbXV4LT5wcml2OwogCXN0cnVjdCBjeDE4ICpjeCA9IHN0cmVhbS0+Y3g7Ci0JaW50IHJldCA9IC1FSU5WQUw7CisJaW50IHJldDsKIAl1MzIgdjsKIAogCUNYMThfREVCVUdfSU5GTygiU3RhcnQgZmVlZDogcGlkID0gMHgleCBpbmRleCA9ICVkXG4iLAogCQkJZmVlZC0+cGlkLCBmZWVkLT5pbmRleCk7CisKKwltdXRleF9sb2NrKCZjeC0+c2VyaWFsaXplX2xvY2spOworCXJldCA9IGN4MThfaW5pdF9vbl9maXJzdF9vcGVuKGN4KTsKKwltdXRleF91bmxvY2soJmN4LT5zZXJpYWxpemVfbG9jayk7CisJaWYgKHJldCkgeworCQlDWDE4X0VSUigiRmFpbGVkIHRvIGluaXRpYWxpemUgZmlybXdhcmUgc3RhcnRpbmcgRFZCIGZlZWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXQgPSAtRUlOVkFMOworCiAJc3dpdGNoIChjeC0+Y2FyZC0+dHlwZSkgewogCWNhc2UgQ1gxOF9DQVJEX0hWUl8xNjAwX0VTTVQ6CiAJY2FzZSBDWDE4X0NBUkRfSFZSXzE2MDBfU0FNU1VORzoKQEAgLTEwMSw2ICsxMTEsMTEgQEAKIAkJaWYgKHN0cmVhbS0+ZHZiLmZlZWRpbmcrKyA9PSAwKSB7CiAJCQlDWDE4X0RFQlVHX0lORk8oIlN0YXJ0aW5nIFRyYW5zcG9ydCBETUFcbiIpOwogCQkJcmV0ID0gY3gxOF9zdGFydF92NGwyX2VuY29kZV9zdHJlYW0oc3RyZWFtKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkJQ1gxOF9ERUJVR19JTkZPKAorCQkJCQkiRmFpbGVkIHRvIHN0YXJ0IFRyYW5zcG9ydCBETUFcbiIpOworCQkJCXN0cmVhbS0+ZHZiLmZlZWRpbmctLTsKKwkJCX0KIAkJfSBlbHNlCiAJCQlyZXQgPSAwOwogCQltdXRleF91bmxvY2soJnN0cmVhbS0+ZHZiLmZlZWRsb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uYwppbmRleCBjZWI2MzY1Li5iMzAyODMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5jCkBAIC01MywxMCArNTMsMzQgQEAKIAl3cml0ZV9yZWcoKChkaXIgJiAweGZmZmYpIDw8IDE2KSB8ICh2YWwgJiAweGZmZmYpLAogCQkJQ1gxOF9SRUdfR1BJT19PVVQxKTsKIAl3cml0ZV9yZWcoZGlyICYgMHhmZmZmMDAwMCwgQ1gxOF9SRUdfR1BJT19ESVIyKTsKLQl3cml0ZV9yZWcoKGRpciAmIDB4ZmZmZjAwMDApIHwgKCh2YWwgJiAweGZmZmYwMDAwKSA+PiAxNiksCisJd3JpdGVfcmVnX3N5bmMoKGRpciAmIDB4ZmZmZjAwMDApIHwgKCh2YWwgJiAweGZmZmYwMDAwKSA+PiAxNiksCiAJCQlDWDE4X1JFR19HUElPX09VVDIpOwogfQogCit2b2lkIGN4MThfcmVzZXRfaTJjX3NsYXZlc19ncGlvKHN0cnVjdCBjeDE4ICpjeCkKK3sKKwljb25zdCBzdHJ1Y3QgY3gxOF9ncGlvX2kyY19zbGF2ZV9yZXNldCAqcDsKKworCXAgPSAmY3gtPmNhcmQtPmdwaW9faTJjX3NsYXZlX3Jlc2V0OworCisJaWYgKChwLT5hY3RpdmVfbG9fbWFzayB8IHAtPmFjdGl2ZV9oaV9tYXNrKSA9PSAwKQorCQlyZXR1cm47CisKKwkvKiBBc3N1bWluZyB0aGF0IHRoZSBtYXNrcyBhcmUgYSBzdWJzZXQgb2YgdGhlIGJpdHMgaW4gZ3Bpb19kaXIgKi8KKworCS8qIEFzc2VydCAqLworCWN4LT5ncGlvX3ZhbCA9CisJCShjeC0+Z3Bpb192YWwgfCBwLT5hY3RpdmVfaGlfbWFzaykgJiB+KHAtPmFjdGl2ZV9sb19tYXNrKTsKKwlncGlvX3dyaXRlKGN4KTsKKwlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHAtPm1zZWNzX2Fzc2VydGVkKSk7CisKKwkvKiBEZWFzc2VydCAqLworCWN4LT5ncGlvX3ZhbCA9CisJCShjeC0+Z3Bpb192YWwgfCBwLT5hY3RpdmVfbG9fbWFzaykgJiB+KHAtPmFjdGl2ZV9oaV9tYXNrKTsKKwlncGlvX3dyaXRlKGN4KTsKKwlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHAtPm1zZWNzX3JlY292ZXJ5KSk7Cit9CisKIHZvaWQgY3gxOF9ncGlvX2luaXQoc3RydWN0IGN4MTggKmN4KQogewogCWN4LT5ncGlvX2RpciA9IGN4LT5jYXJkLT5ncGlvX2luaXQuZGlyZWN0aW9uOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5oCmluZGV4IDQxYmFjODguLjUyNWMzMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmgKQEAgLTIxLDQgKzIxLDUgQEAKICAqLwogCiB2b2lkIGN4MThfZ3Bpb19pbml0KHN0cnVjdCBjeDE4ICpjeCk7Cit2b2lkIGN4MThfcmVzZXRfaTJjX3NsYXZlc19ncGlvKHN0cnVjdCBjeDE4ICpjeCk7CiBpbnQgY3gxOF9yZXNldF90dW5lcl9ncGlvKHZvaWQgKmRldiwgaW50IGNtZCwgaW50IHZhbHVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWkyYy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKaW5kZXggMWQ2YzUxYS4uNjgwYmM0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKQEAgLTQwNSw2ICs0MDUsOCBAQAogCWN4MThfc2V0c2NsKCZjeC0+aTJjX2FsZ29fY2JfZGF0YVsxXSwgMSk7CiAJY3gxOF9zZXRzZGEoJmN4LT5pMmNfYWxnb19jYl9kYXRhWzFdLCAxKTsKIAorCWN4MThfcmVzZXRfaTJjX3NsYXZlc19ncGlvKGN4KTsKKwogCXJldHVybiBpMmNfYml0X2FkZF9idXMoJmN4LT5pMmNfYWRhcFswXSkgfHwKIAkJaTJjX2JpdF9hZGRfYnVzKCZjeC0+aTJjX2FkYXBbMV0pOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtY29yZS5jCmluZGV4IDYwN2VmZGMuLjFkYTZmMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1jb3JlLmMKQEAgLTQzMyw3ICs0MzMsNyBAQAogCQlpbnQgY2hyb21hID0gdmlkX2lucHV0ICYgMHhmMDA7CiAKIAkJaWYgKCh2aWRfaW5wdXQgJiB+MHhmZjApIHx8Ci0JCSAgICBsdW1hIDwgQ1gyNTg0MF9TVklERU9fTFVNQTEgfHwgbHVtYSA+IENYMjU4NDBfU1ZJREVPX0xVTUE0IHx8CisJCSAgICBsdW1hIDwgQ1gyNTg0MF9TVklERU9fTFVNQTEgfHwgbHVtYSA+IENYMjU4NDBfU1ZJREVPX0xVTUE4IHx8CiAJCSAgICBjaHJvbWEgPCBDWDI1ODQwX1NWSURFT19DSFJPTUE0IHx8IGNocm9tYSA+IENYMjU4NDBfU1ZJREVPX0NIUk9NQTgpIHsKIAkJCXY0bF9lcnIoY2xpZW50LCAiMHglMDR4IGlzIG5vdCBhIHZhbGlkIHZpZGVvIGlucHV0IVxuIiwKIAkJCQl2aWRfaW5wdXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtZmlybXdhcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWZpcm13YXJlLmMKaW5kZXggNjIwZDI5NS4uOGQ0ODlhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtZmlybXdhcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1maXJtd2FyZS5jCkBAIC03OSw3ICs3OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZndfd3JpdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggKmRhdGEsIGludCBzaXplKQorc3RhdGljIGludCBmd193cml0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCB1OCAqZGF0YSwgaW50IHNpemUpCiB7CiAJaWYgKGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIGRhdGEsIHNpemUpIDwgc2l6ZSkgewogCQl2NGxfZXJyKGNsaWVudCwgImZpcm13YXJlIGxvYWQgaTJjIGZhaWx1cmVcbiIpOwpAQCAtOTMsNyArOTMsOCBAQAogewogCXN0cnVjdCBjeDI1ODQwX3N0YXRlICpzdGF0ZSA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCXU4IGJ1ZmZlcls0XSwgKnB0cjsKKwl1OCBidWZmZXJbRldTRU5EXTsKKwljb25zdCB1OCAqcHRyOwogCWludCBzaXplLCByZXR2YWw7CiAKIAlpZiAoc3RhdGUtPmlzX2N4MjM4ODUpCkBAIC0xMDgsMjkgKzEwOSwyMyBAQAogCiAJYnVmZmVyWzBdID0gMHgwODsKIAlidWZmZXJbMV0gPSAweDAyOwotCWJ1ZmZlclsyXSA9IGZ3LT5kYXRhWzBdOwotCWJ1ZmZlclszXSA9IGZ3LT5kYXRhWzFdOwotCXJldHZhbCA9IGZ3X3dyaXRlKGNsaWVudCwgYnVmZmVyLCA0KTsKIAotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCXJlbGVhc2VfZmlybXdhcmUoZncpOwotCQlyZXR1cm4gcmV0dmFsOwotCX0KLQotCXNpemUgPSBmdy0+c2l6ZSAtIDI7CisJc2l6ZSA9IGZ3LT5zaXplOwogCXB0ciA9IGZ3LT5kYXRhOwogCXdoaWxlIChzaXplID4gMCkgewotCQlwdHJbMF0gPSAweDA4OwotCQlwdHJbMV0gPSAweDAyOwotCQlyZXR2YWwgPSBmd193cml0ZShjbGllbnQsIHB0ciwgbWluKEZXU0VORCwgc2l6ZSArIDIpKTsKKwkJaW50IGxlbiA9IG1pbihGV1NFTkQgLSAyLCBzaXplKTsKKworCQltZW1jcHkoYnVmZmVyICsgMiwgcHRyLCBsZW4pOworCisJCXJldHZhbCA9IGZ3X3dyaXRlKGNsaWVudCwgYnVmZmVyLCBsZW4gKyAyKTsKIAogCQlpZiAocmV0dmFsIDwgMCkgewogCQkJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJCQlyZXR1cm4gcmV0dmFsOwogCQl9CiAKLQkJc2l6ZSAtPSBGV1NFTkQgLSAyOwotCQlwdHIgKz0gRldTRU5EIC0gMjsKKwkJc2l6ZSAtPSBsZW47CisJCXB0ciArPSBsZW47CiAJfQogCiAJZW5kX2Z3X2xvYWQoY2xpZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWFsc2EuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWFsc2EuYwppbmRleCBlOTc2ZmM2Li44MGM4ODgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1hbHNhLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDg4L2N4ODgtYWxzYS5jCkBAIC0zMzIsNiArMzMyLDEyIEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlpbnQgZXJyOwogCisJaWYgKCFjaGlwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQlVHOiBjeDg4IGNhbid0IGZpbmQgZGV2aWNlIHN0cnVjdC4iCisJCQkJIiBDYW4ndCBwcm9jZWVkIHdpdGggb3BlblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwogCWVyciA9IHNuZF9wY21faHdfY29uc3RyYWludF9wb3cyKHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9QRVJJT0RTKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBfZXJyb3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYmZpcm13YXJlLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYmZpcm13YXJlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZDkyNjMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9kYWJmaXJtd2FyZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTQxNSArMCwwIEBACi0vKgotICogZGFiZGF0YS5oIC0gZGFiIHVzYiBmaXJtd2FyZSBhbmQgYml0c3RyZWFtIGRhdGEKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKLSAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAotICogbW9kaWZpY2F0aW9uLgotICovCi0KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGZpcm13YXJlW10gPSB7Ci0KLXsgIDIsIDB4MDAwMCwgMCwgezB4MjEsMHg1N30gfSwKLXsgIDMsIDB4MDAwMywgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDBiLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMTMsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAxYiwgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDIzLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMmIsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAzMywgMCwgezB4MDIsMHgwMywweDBmfSB9LAoteyAgMywgMHgwMDNiLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwNDMsIDAsIHsweDAyLDB4MDEsMHgwMH0gfSwKLXsgIDMsIDB4MDA0YiwgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDUzLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwNWIsIDAsIHsweDAyLDB4MDQsMHhiZH0gfSwKLXsgIDMsIDB4MDA2MywgMCwgezB4MDIsMHgwMSwweDY3fSB9LAoteyAgMywgMHgwMTAwLCAwLCB7MHgwMiwweDBjLDB4NWF9IH0sCi17ICAzLCAweDAxMDQsIDAsIHsweDAyLDB4MDEsMHhlZH0gfSwKLXsgIDMsIDB4MDEwOCwgMCwgezB4MDIsMHgwMiwweDUxfSB9LAoteyAgMywgMHgwMTBjLCAwLCB7MHgwMiwweDAyLDB4N2N9IH0sCi17ICAzLCAweDAxMTAsIDAsIHsweDAyLDB4MDIsMHhlNH0gfSwKLXsgIDEsIDB4MDExNCwgMCwgezB4MzJ9IH0sCi17ICAxLCAweDAxMTgsIDAsIHsweDMyfSB9LAoteyAgMywgMHgwMTFjLCAwLCB7MHgwMiwweDA1LDB4ZmR9IH0sCi17ICAzLCAweDAxMjAsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDEyNCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTI4LCAwLCB7MHgwMiwweDA0LDB4M2N9IH0sCi17ICAzLCAweDAxMmMsIDAsIHsweDAyLDB4MDQsMHg2YX0gfSwKLXsgIDMsIDB4MDEzMCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTM0LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxMzgsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDEzYywgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTQwLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNDQsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE0OCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTRjLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNTAsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE1NCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAxMCwgMHgwMTU3LCAwLCB7MHg3NSwweDgxLDB4N2YsMHhlNSwweDgyLDB4NjAsMHgwMywweDAyLDB4MDEsMHg2MX0gfSwKLXsgIDUsIDB4MDE2MSwgMCwgezB4MTIsMHgwNywweDZmLDB4MjEsMHg2NH0gfSwKLXsgIDEsIDB4MDE2NiwgMCwgezB4MzJ9IH0sCi17IDE0LCAweDAxNjcsIDAsIHsweGMwLDB4ZDAsMHhjMCwweDg2LDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGUwLDB4OTAsMHg3ZiwweDk3LDB4ZTB9IH0sCi17IDE0LCAweDAxNzUsIDAsIHsweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2OSwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9IH0sCi17IDE0LCAweDAxODMsIDAsIHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9IH0sCi17IDE0LCAweDAxOTEsIDAsIHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTB9IH0sCi17ICAzLCAweDAxOWYsIDAsIHsweDU1LDB4N2YsMHhmMH0gfSwKLXsgMTQsIDB4MDFhMiwgMCwgezB4OTAsMHg3ZiwweDlhLDB4ZTAsMHgzMCwweGU0LDB4MjMsMHg5MCwweDdmLDB4NjgsMHhmMCwweGYwLDB4ZjAsMHhmMH0gfSwKLXsgMTQsIDB4MDFiMCwgMCwgezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH0gfSwKLXsgMTQsIDB4MDFiZSwgMCwgezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH0gfSwKLXsgMTQsIDB4MDFjYywgMCwgezB4ZTUsMHhkOCwweGMyLDB4ZTMsMHhmNSwweGQ4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHg4Nn0gfSwKLXsgIDMsIDB4MDFkYSwgMCwgezB4ZDAsMHhkMCwweDMyfSB9LAoteyAgOCwgMHgwMWRkLCAwLCB7MHg3NSwweDg2LDB4MDAsMHg5MCwweGZmLDB4YzMsMHg3YywweDA1fSB9LAoteyAgNywgMHgwMWU1LCAwLCB7MHhhMywweGU1LDB4ODIsMHg0NSwweDgzLDB4NzAsMHhmOX0gfSwKLXsgIDEsIDB4MDFlYywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDAxZWQsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4ZDB9IH0sCi17IDE0LCAweDAxZmIsIDAsIHsweDc1LDB4ZDAsMHgwMCwweGMwLDB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTF9IH0sCi17IDEzLCAweDAyMDksIDAsIHsweDkwLDB4ODgsMHgwMCwweGUwLDB4ZjUsMHg0MSwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweDkwfSB9LAoteyAgOSwgMHgwMjE2LCAwLCB7MHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZTUsMHgzMiwweDYwLDB4MjF9IH0sCi17ICA0LCAweDAyMWYsIDAsIHsweDdhLDB4MDAsMHg3YiwweDAwfSB9LAoteyAxMSwgMHgwMjIzLCAwLCB7MHhjMywweGVhLDB4OTQsMHgxOCwweGViLDB4NjQsMHg4MCwweDk0LDB4ODAsMHg1MCwweDEyfSB9LAoteyAxNCwgMHgwMjJlLCAwLCB7MHg5MCwweDdmLDB4NjksMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4MGEsMHhiYSwweDAwfSB9LAoteyAgMiwgMHgwMjNjLCAwLCB7MHgwMSwweDBifSB9LAoteyAgMiwgMHgwMjNlLCAwLCB7MHg4MCwweGUzfSB9LAoteyAgMiwgMHgwMjQwLCAwLCB7MHhkMCwweDg2fSB9LAoteyAxNCwgMHgwMjQyLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwfSB9LAoteyAgMSwgMHgwMjUwLCAwLCB7MHgzMn0gfSwKLXsgMTQsIDB4MDI1MSwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTQsIDB4MDI1ZiwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MCwweDdmLDB4YWIsMHg3NH0gfSwKLXsgIDQsIDB4MDI2ZCwgMCwgezB4MDQsMHhmMCwweGQwLDB4ODZ9IH0sCi17IDExLCAweDAyNzEsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDAyN2MsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDR9IH0sCi17IDE0LCAweDAyOGEsIDAsIHsweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHhkMCwweDc1LDB4ZDB9IH0sCi17IDEzLCAweDAyOTgsIDAsIHsweDAwLDB4YzAsMHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwfSB9LAoteyAxMiwgMHgwMmE1LCAwLCB7MHg3ZiwweGFiLDB4NzQsMHgwOCwweGYwLDB4NzUsMHg2ZSwweDAwLDB4NzUsMHg2ZiwweDAyLDB4MTJ9IH0sCi17ICA2LCAweDAyYjEsIDAsIHsweDExLDB4NDQsMHg3NSwweDcwLDB4MzksMHg3NX0gfSwKLXsgIDYsIDB4MDJiNywgMCwgezB4NzEsMHgwYywweDc1LDB4NzIsMHgwMiwweDEyfSB9LAoteyAxMiwgMHgwMmJkLCAwLCB7MHgxMSwweDc1LDB4OTAsMHg3ZiwweGQ2LDB4ZTQsMHhmMCwweDc1LDB4ZDgsMHgyMCwweGQwLDB4ODZ9IH0sCi17IDE0LCAweDAyYzksIDAsIHsweGQwLDB4ZDAsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17IDEzLCAweDAyZDcsIDAsIHsweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwMmU0LCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxNCwgMHgwMmYyLCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwLDB4N2YsMHhhYiwweDc0fSB9LAoteyAgNCwgMHgwMzAwLCAwLCB7MHgxMCwweGYwLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDMwNCwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDMwZiwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNH0gfSwKLXsgMTQsIDB4MDMxZCwgMCwgezB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweGQwLDB4NzUsMHhkMH0gfSwKLXsgMTIsIDB4MDMyYiwgMCwgezB4MDAsMHhjMCwweDg2LDB4NzUsMHg4NiwweDAwLDB4NzUsMHg2ZSwweDAwLDB4NzUsMHg2ZiwweDAyfSB9LAoteyAgNywgMHgwMzM3LCAwLCB7MHgxMiwweDExLDB4NDQsMHg3NSwweDcwLDB4NDAsMHg3NX0gfSwKLXsgIDYsIDB4MDMzZSwgMCwgezB4NzEsMHgwYywweDc1LDB4NzIsMHgwMiwweDEyfSB9LAoteyAxNCwgMHgwMzQ0LCAwLCB7MHgxMSwweDc1LDB4OTAsMHg3ZiwweGQ2LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3ZiwweGQ2LDB4NzQsMHgwNiwweGYwfSB9LAoteyAgNSwgMHgwMzUyLCAwLCB7MHg3NSwweGQ4LDB4MTAsMHhkMCwweDg2fSB9LAoteyAxNCwgMHgwMzU3LCAwLCB7MHhkMCwweGQwLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAxMywgMHgwMzY1LCAwLCB7MHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTMsIDB4MDM3MiwgMCwgezB4OTAsMHg3ZiwweGE1LDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGE2LDB4NzQsMHg5YSwweGYwLDB4MTJ9IH0sCi17IDEyLCAweDAzN2YsIDAsIHsweDEwLDB4MWIsMHg5MCwweDdmLDB4YTYsMHhlNSwweDQyLDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MH0gfSwKLXsgMTMsIDB4MDM4YiwgMCwgezB4N2YsMHhhNiwweGU1LDB4NDMsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNSwweDc0LDB4NDB9IH0sCi17ICAxLCAweDAzOTgsIDAsIHsweGYwfSB9LAoteyAgMSwgMHgwMzk5LCAwLCB7MHgyMn0gfSwKLXsgMTMsIDB4MDM5YSwgMCwgezB4OTAsMHg3ZiwweGE1LDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGE2LDB4NzQsMHg5YSwweGYwLDB4MTJ9IH0sCi17IDEyLCAweDAzYTcsIDAsIHsweDEwLDB4MWIsMHg5MCwweDdmLDB4YTYsMHhlNSwweDQ0LDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MH0gfSwKLXsgMTIsIDB4MDNiMywgMCwgezB4N2YsMHhhNiwweGU1LDB4NDUsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNiwweGU1fSB9LAoteyAxMSwgMHgwM2JmLCAwLCB7MHg0NiwweGYwLDB4MTIsMHgxMCwweDFiLDB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwfSB9LAoteyAgMSwgMHgwM2NhLCAwLCB7MHgyMn0gfSwKLXsgMTAsIDB4MDNjYiwgMCwgezB4NzUsMHg0NCwweDAyLDB4NzUsMHg0NSwweDAwLDB4NzUsMHg0NiwweDAwLDB4MTJ9IH0sCi17ICA5LCAweDAzZDUsIDAsIHsweDAzLDB4OWEsMHg3NSwweDQyLDB4MDMsMHg3NSwweDQzLDB4MDAsMHgxMn0gfSwKLXsgIDIsIDB4MDNkZSwgMCwgezB4MDMsMHg3Mn0gfSwKLXsgIDEsIDB4MDNlMCwgMCwgezB4MjJ9IH0sCi17IDEyLCAweDAzZTEsIDAsIHsweDkwLDB4ODgsMHgwMCwweGU1LDB4MzYsMHhmMCwweDkwLDB4ODgsMHgwMCwweDc0LDB4MTAsMHgyNX0gfSwKLXsgIDksIDB4MDNlZCwgMCwgezB4MzYsMHhmMCwweDEyLDB4MDEsMHhkZCwweDc1LDB4NDIsMHgwMSwweDc1fSB9LAoteyAgOSwgMHgwM2Y2LCAwLCB7MHg0MywweDE4LDB4MTIsMHgwMywweDcyLDB4NzUsMHg0NCwweDAyLDB4NzV9IH0sCi17ICA5LCAweDAzZmYsIDAsezB4NDUsMHgwMCwweDc1LDB4NDYsMHgwMCwweDEyLDB4MDMsMHg5YSwweDc1fSB9LAoteyAgOCwgMHgwNDA4LCAwLHsweDQyLDB4MDMsMHg3NSwweDQzLDB4NDQsMHgxMiwweDAzLDB4NzJ9IH0sCi17ICAxLCAweDA0MTAsIDAsezB4MjJ9IH0sCi17IDE0LCAweDA0MTEsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDE0LCAweDA0MWYsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTAsMHg3ZiwweGFhLDB4NzR9IH0sCi17ICA0LCAweDA0MmQsIDAsIHsweDAyLDB4ZjAsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwNDMxLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwNDNjLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxNCwgMHgwNDRhLCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwLDB4N2YsMHhhOSwweDc0fSB9LAoteyAgNywgMHgwNDU4LCAwLCB7MHgwNCwweGYwLDB4NzUsMHgzMCwweDAxLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDQ1ZiwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDQ2YSwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTQsIDB4MDQ3OCwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MCwweDdmLDB4YWEsMHg3NH0gfSwKLXsgIDcsIDB4MDQ4NiwgMCwgezB4MDQsMHhmMCwweDc1LDB4MzEsMHgwMSwweGQwLDB4ODZ9IH0sCi17IDExLCAweDA0OGQsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDA0OTgsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDEyLCAweDA0YTYsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTUsMHhmNSwweDkxLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDRiMiwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDRiZCwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTIsIDB4MDRjYiwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNywweGY1LDB4OTEsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwNGQ3LCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxMiwgMHgwNGUyLCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZhLDB4OGEsMHgyMCwweDkwLDB4N2YsMHg5NiwweGU0LDB4ZjB9IH0sCi17ICAxLCAweDA0ZWUsIDAsIHsweDIyfSB9LAoteyAgNywgMHgwNGVmLCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZhLDB4OGEsMHgyMX0gfSwKLXsgIDEsIDB4MDRmNiwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDA0ZjcsIDAsIHsweDkwLDB4MTcsMHgxMywweGUwLDB4ZmEsMHg5MCwweDE3LDB4MTUsMHhlMCwweGZiLDB4NzQsMHg4MCwweDJhLDB4ZmF9IH0sCi17IDE0LCAweDA1MDUsIDAsIHsweDc0LDB4ODAsMHgyYiwweGZiLDB4ZWEsMHgwMywweDAzLDB4NTQsMHgzZiwweGZjLDB4ZWEsMHhjNCwweDIzLDB4NTR9IH0sCi17IDE0LCAweDA1MTMsIDAsIHsweDFmLDB4ZmEsMHgyYywweGZhLDB4ZWIsMHgwMywweDAzLDB4NTQsMHgzZiwweGZjLDB4ZWIsMHhjNCwweDIzLDB4NTR9IH0sCi17IDExLCAweDA1MjEsIDAsIHsweDFmLDB4ZmIsMHgyYywweGZiLDB4OTAsMHgxNywweDBhLDB4ZTAsMHhmYywweDYwLDB4MDJ9IH0sCi17ICAyLCAweDA1MmMsIDAsIHsweDdhLDB4MDB9IH0sCi17ICA3LCAweDA1MmUsIDAsIHsweDkwLDB4MTcsMHgwYywweGUwLDB4ZmMsMHg2MCwweDAyfSB9LAoteyAgMiwgMHgwNTM1LCAwLCB7MHg3YiwweDAwfSB9LAoteyAxMSwgMHgwNTM3LCAwLCB7MHhlYSwweDJiLDB4ZmMsMHhjMywweDEzLDB4ZjUsMHgzYSwweDc1LDB4NDQsMHgwMiwweDhifSB9LAoteyAgNywgMHgwNTQyLCAwLCB7MHg0NSwweDhhLDB4NDYsMHgxMiwweDAzLDB4OWEsMHg3NX0gfSwKLXsgIDksIDB4MDU0OSwgMCwgezB4NmUsMHgwOCwweDc1LDB4NmYsMHgwMCwweDEyLDB4MTEsMHg0NCwweDc1fSB9LAoteyAgNCwgMHgwNTUyLCAwLCB7MHg3MCwweDQ3LDB4NzUsMHg3MX0gfSwKLXsgIDgsIDB4MDU1NiwgMCwgezB4MGMsMHg3NSwweDcyLDB4MDIsMHgxMiwweDExLDB4NzUsMHg4NX0gfSwKLXsgIDUsIDB4MDU1ZSwgMCwgezB4M2EsMHg3MywweDEyLDB4MTEsMHhhMH0gfSwKLXsgIDEsIDB4MDU2MywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDA1NjQsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4OTYsMHg3NCwweDgwLDB4NjUsMHgwMiwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA1NzIsIDAsIHsweDdmLDB4ZWIsMHhlMCwweGZhLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYiwweDkwLDB4N2YsMHhlZiwweGUwLDB4ZmN9IH0sCi17IDE0LCAweDA1ODAsIDAsIHsweDMzLDB4OTUsMHhlMCwweGZkLDB4OGMsMHgwNSwweDdjLDB4MDAsMHg5MCwweDdmLDB4ZWUsMHhlMCwweGZlLDB4MzN9IH0sCi17IDE0LCAweDA1OGUsIDAsIHsweDk1LDB4ZTAsMHhmZiwweGVjLDB4MmUsMHhmYywweGVkLDB4M2YsMHhmZCwweDkwLDB4N2YsMHhlOSwweGUwLDB4ZmV9IH0sCi17ICA1LCAweDA1OWMsIDAsIHsweGJlLDB4MDEsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDA1YTEsIDAsIHsweDAyLDB4MDUsMHhmOX0gfSwKLXsgIDYsIDB4MDVhNCwgMCwgezB4YmMsMHgwMSwweDIxLDB4YmQsMHgwMCwweDFlfSB9LAoteyAxNCwgMHgwNWFhLCAwLCB7MHhlYSwweGM0LDB4MDMsMHg1NCwweGY4LDB4ZmMsMHhlYiwweDI1LDB4ZTAsMHhmZCwweDJjLDB4MjQsMHgwMCwweGZjfSB9LAoteyAxNCwgMHgwNWI4LCAwLCB7MHhlNCwweDM0LDB4MTcsMHhmZCwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmUsMHg4YywweDgyLDB4OGQsMHg4MywweGYwfSB9LAoteyAgMiwgMHgwNWM2LCAwLCB7MHg4MCwweDMxfSB9LAoteyAxNCwgMHgwNWM4LCAwLCB7MHhlYSwweGM0LDB4MDMsMHg1NCwweGY4LDB4ZmEsMHhlYiwweDI1LDB4ZTAsMHhmYiwweDJhLDB4ZmEsMHgyNCwweDAwfSB9LAoteyAxNCwgMHgwNWQ2LCAwLCB7MHhmYiwweGU0LDB4MzQsMHgxNywweGZjLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZCwweDhiLDB4ODIsMHg4YywweDgzfSB9LAoteyAxNCwgMHgwNWU0LCAwLCB7MHhmMCwweDc0LDB4MDEsMHgyYSwweDI0LDB4MDAsMHhmYSwweGU0LDB4MzQsMHgxNywweGZiLDB4OTAsMHg3ZSwweGMxfSB9LAoteyAgNywgMHgwNWYyLCAwLCB7MHhlMCwweGZjLDB4OGEsMHg4MiwweDhiLDB4ODMsMHhmMH0gfSwKLXsgIDMsIDB4MDVmOSwgMCwgezB4NzUsMHgzOCwweDAxfSB9LAoteyAgMSwgMHgwNWZjLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MDVmZCwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNH0gfSwKLXsgMTQsIDB4MDYwYiwgMCwgezB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweGQwLDB4NzUsMHhkMH0gfSwKLXsgMTMsIDB4MDYxOSwgMCwgezB4MDAsMHhjMCwweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTB9IH0sCi17IDEzLCAweDA2MjYsIDAsIHsweDdmLDB4YWEsMHg3NCwweDAxLDB4ZjAsMHgxMiwweDA1LDB4NjQsMHg3NSwweDM3LDB4MDAsMHhkMCwweDg2fSB9LAoteyAxNCwgMHgwNjMzLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAxMywgMHgwNjQxLCAwLCB7MHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDY0ZSwgMCwgezB4OTAsMHg3ZiwweGViLDB4ZTAsMHhmYSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmIsMHg5MCwweDdmLDB4ZWUsMHhlMH0gfSwKLXsgMTQsIDB4MDY1YywgMCwgezB4ZmMsMHgzMywweDk1LDB4ZTAsMHhmZCwweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmUsMHg5MCwweDdmLDB4OTYsMHg3NH0gfSwKLXsgMTQsIDB4MDY2YSwgMCwgezB4ODAsMHg2NSwweDA2LDB4ZjAsMHg5MCwweDdmLDB4MDAsMHg3NCwweDAxLDB4ZjAsMHhlYSwweGM0LDB4MDMsMHg1NH0gfSwKLXsgMTQsIDB4MDY3OCwgMCwgezB4ZjgsMHhmZSwweGViLDB4MjUsMHhlMCwweGZiLDB4MmUsMHhmZSwweDI0LDB4MDAsMHhmYiwweGU0LDB4MzQsMHgxN30gfSwKLXsgMTQsIDB4MDY4NiwgMCwgezB4ZmYsMHg4YiwweDgyLDB4OGYsMHg4MywweGUwLDB4ZmIsMHg3NCwweDAxLDB4MmUsMHgyNCwweDAwLDB4ZmUsMHhlNH0gfSwKLXsgMTQsIDB4MDY5NCwgMCwgezB4MzQsMHgxNywweGZmLDB4OGUsMHg4MiwweDhmLDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHhmZn0gfSwKLXsgIDMsIDB4MDZhMiwgMCwgezB4YmYsMHg4MSwweDBhfSB9LAoteyAxMCwgMHgwNmE1LCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlYiwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZWUsMHhmMH0gfSwKLXsgIDgsIDB4MDZhZiwgMCwgezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHhmYiwweGJiLDB4ODIsMHgxYX0gfSwKLXsgIDMsIDB4MDZiNywgMCwgezB4YmEsMHgwMSwweDBjfSB9LAoteyAxMiwgMHgwNmJhLCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlNCwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDgwLDB4MGJ9IH0sCi17IDExLCAweDA2YzYsIDAsIHsweDkwLDB4N2YsMHgwMCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4MDEsMHg3NCwweGI1LDB4ZjB9IH0sCi17ICA4LCAweDA2ZDEsIDAsIHsweDkwLDB4N2YsMHhlOSwweGUwLDB4ZmIsMHhiYiwweDgzLDB4MWJ9IH0sCi17ICAzLCAweDA2ZDksIDAsIHsweGJhLDB4MDEsMHgwZH0gfSwKLXsgMTMsIDB4MDZkYywgMCwgezB4OTAsMHg3ZiwweDAwLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDgwLDB4MGJ9IH0sCi17IDExLCAweDA2ZTksIDAsIHsweDkwLDB4N2YsMHgwMCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4MDEsMHg3NCwweDEyLDB4ZjB9IH0sCi17ICA4LCAweDA2ZjQsIDAsIHsweDkwLDB4N2YsMHhlOSwweGUwLDB4ZmIsMHhiYiwweDg0LDB4MWN9IH0sCi17ICAzLCAweDA2ZmMsIDAsIHsweGJhLDB4MDEsMHgwZH0gfSwKLXsgMTMsIDB4MDZmZiwgMCwgezB4OTAsMHg3ZiwweDAwLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDgwLDB4MGN9IH0sCi17IDEyLCAweDA3MGMsIDAsIHsweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHgwMSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDUsIDB4MDcxOCwgMCwgezB4OTAsMHg3ZiwweGI1LDB4ZWMsMHhmMH0gfSwKLXsgIDEsIDB4MDcxZCwgMCwgezB4MjJ9IH0sCi17IDEyLCAweDA3MWUsIDAsIHsweDc1LDB4MzYsMHgwZCwweDkwLDB4ODgsMHgwMCwweDc0LDB4MWQsMHhmMCwweDc1LDB4NmIsMHg4MH0gfSwKLXsgMTAsIDB4MDcyYSwgMCwgezB4NzUsMHg2YywweDNjLDB4MTIsMHgxMCwweGUyLDB4NzUsMHg2YiwweDgwLDB4NzV9IH0sCi17ICA5LCAweDA3MzQsIDAsIHsweDZjLDB4MGYsMHgxMiwweDEwLDB4ZTIsMHg3NSwweDZiLDB4ODAsMHg3NX0gfSwKLXsgIDksIDB4MDczZCwgMCwgezB4NmMsMHgwNiwweDEyLDB4MTAsMHhlMiwweDc1LDB4NmIsMHg4MCwweDc1fSB9LAoteyAgNywgMHgwNzQ2LCAwLCB7MHg2YywweDAxLDB4MTIsMHgxMCwweGUyLDB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MDc0ZCwgMCwgezB4YmEsMHhmZiwweDAwfSB9LAoteyAgMiwgMHgwNzUwLCAwLCB7MHg1MCwweDBhfSB9LAoteyAxMCwgMHgwNzUyLCAwLCB7MHhjMCwweDAyLDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwMiwweDBhLDB4ODAsMHhmMX0gfSwKLXsgMTAsIDB4MDc1YywgMCwgezB4NzUsMHg2YiwweDgwLDB4NzUsMHg2YywweDNjLDB4MTIsMHgxMCwweGUyLDB4NzV9IH0sCi17ICA4LCAweDA3NjYsIDAsIHsweDZiLDB4ODAsMHg3NSwweDZjLDB4MGYsMHgxMiwweDEwLDB4ZTJ9IH0sCi17ICAxLCAweDA3NmUsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwNzZmLCAwLCB7MHg5MCwweDdmLDB4YTEsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGFmLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDkyfSB9LAoteyAxNCwgMHgwNzdkLCAwLCB7MHg3NCwweDAyLDB4ZjAsMHg3NSwweDhlLDB4MzEsMHg3NSwweDg5LDB4MjEsMHg3NSwweDg4LDB4MDAsMHg3NSwweGM4fSB9LAoteyAxNCwgMHgwNzhiLCAwLCB7MHgwMCwweDc1LDB4OGQsMHg0MCwweDc1LDB4OTgsMHg0MCwweDc1LDB4YzAsMHg0MCwweDc1LDB4ODcsMHgwMCwweDc1fSB9LAoteyAgOSwgMHgwNzk5LCAwLCB7MHgyMCwweDAwLDB4NzUsMHgyMSwweDAwLDB4NzUsMHgyMiwweDAwLDB4NzV9IH0sCi17ICA1LCAweDA3YTIsIDAsIHsweDIzLDB4MDAsMHg3NSwweDQ3LDB4MDB9IH0sCi17ICA3LCAweDA3YTcsIDAsIHsweGMzLDB4ZTUsMHg0NywweDk0LDB4MjAsMHg1MCwweDExfSB9LAoteyAxMywgMHgwN2FlLCAwLCB7MHhlNSwweDQ3LDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4MTcsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgIDQsIDB4MDdiYiwgMCwgezB4MDUsMHg0NywweDgwLDB4ZTh9IH0sCi17ICA5LCAweDA3YmYsIDAsIHsweGU0LDB4ZjUsMHg0MCwweGY1LDB4M2YsMHhlNCwweGY1LDB4M2MsMHhmNX0gfSwKLXsgIDcsIDB4MDdjOCwgMCwgezB4M2IsMHhlNCwweGY1LDB4M2UsMHhmNSwweDNkLDB4NzV9IH0sCi17IDExLCAweDA3Y2YsIDAsIHsweDMyLDB4MDAsMHg3NSwweDM3LDB4MDAsMHg3NSwweDM5LDB4MDAsMHg5MCwweDdmLDB4OTN9IH0sCi17IDE0LCAweDA3ZGEsIDAsIHsweDc0LDB4M2MsMHhmMCwweDkwLDB4N2YsMHg5YywweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHg5NiwweDc0LDB4ODB9IH0sCi17IDE0LCAweDA3ZTgsIDAsIHsweGYwLDB4OTAsMHg3ZiwweDk0LDB4NzQsMHg3MCwweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHg4ZiwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA3ZjYsIDAsIHsweDdmLDB4OTcsMHhlNCwweGYwLDB4OTAsMHg3ZiwweDk1LDB4NzQsMHhjMiwweGYwLDB4OTAsMHg3ZiwweDk4LDB4NzR9IH0sCi17IDE0LCAweDA4MDQsIDAsIHsweDI4LDB4ZjAsMHg5MCwweDdmLDB4OWUsMHg3NCwweDI4LDB4ZjAsMHg5MCwweDdmLDB4ZjAsMHhlNCwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA4MTIsIDAsIHsweDdmLDB4ZjEsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGYyLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmMywweGU0LDB4ZjB9IH0sCi17IDE0LCAweDA4MjAsIDAsIHsweDkwLDB4N2YsMHhmNCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZjUsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGY2LDB4ZTR9IH0sCi17IDE0LCAweDA4MmUsIDAsIHsweGYwLDB4OTAsMHg3ZiwweGY3LDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmOCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4Zjl9IH0sCi17IDE0LCAweDA4M2MsIDAsIHsweDc0LDB4MzgsMHhmMCwweDkwLDB4N2YsMHhmYSwweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHhmYiwweDc0LDB4YTB9IH0sCi17IDE0LCAweDA4NGEsIDAsIHsweGYwLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweGZkLDB4NzQsMHhhMCwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA4NTgsIDAsIHsweDdmLDB4ZmUsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4ZTB9IH0sCi17IDE0LCAweDA4NjYsIDAsIHsweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlMSwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhkZCwweDc0LDB4ODB9IH0sCi17IDExLCAweDA4NzQsIDAsIHsweGYwLDB4MTIsMHgxMiwweDQzLDB4MTIsMHgwNywweDFlLDB4N2EsMHgwMCwweDdiLDB4MDB9IH0sCi17ICA5LCAweDA4N2YsIDAsIHsweGMzLDB4ZWEsMHg5NCwweDFlLDB4ZWIsMHg5NCwweDAwLDB4NTAsMHgxN30gfSwKLXsgMTIsIDB4MDg4OCwgMCwgezB4OTAsMHg4OCwweDAwLDB4ZTAsMHhmNSwweDQ3LDB4OTAsMHg4OCwweDBiLDB4ZTAsMHhmNSwweDQ3fSB9LAoteyAgOSwgMHgwODk0LCAwLCB7MHg5MCwweDdmLDB4NjgsMHhmMCwweDBhLDB4YmEsMHgwMCwweDAxLDB4MGJ9IH0sCi17ICAyLCAweDA4OWQsIDAsIHsweDgwLDB4ZTB9IH0sCi17IDEyLCAweDA4OWYsIDAsIHsweDEyLDB4MDMsMHhlMSwweDkwLDB4N2YsMHhkNiwweGU0LDB4ZjAsMHg3YSwweDAwLDB4N2IsMHgwMH0gfSwKLXsgMTMsIDB4MDhhYiwgMCwgezB4OGEsMHgwNCwweDhiLDB4MDUsMHhjMywweGVhLDB4OTQsMHhlMCwweGViLDB4OTQsMHgyZSwweDUwLDB4MWF9IH0sCi17IDE0LCAweDA4YjgsIDAsIHsweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDA1LDB4ZDB9IH0sCi17IDEwLCAweDA4YzYsIDAsIHsweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHgwYSwweGJhLDB4MDAsMHgwMSwweDBifSB9LAoteyAgMiwgMHgwOGQwLCAwLCB7MHg4MCwweGQ5fSB9LAoteyAxMywgMHgwOGQyLCAwLCB7MHg5MCwweDdmLDB4ZDYsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDdmLDB4ZDYsMHg3NCwweDA2LDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDhkZiwgMCwgezB4N2YsMHhkZSwweDc0LDB4MDUsMHhmMCwweDkwLDB4N2YsMHhkZiwweDc0LDB4MDUsMHhmMCwweDkwLDB4N2YsMHhhY30gfSwKLXsgMTQsIDB4MDhlZCwgMCwgezB4ZTQsMHhmMCwweDkwLDB4N2YsMHhhZCwweDc0LDB4MDUsMHhmMCwweDc1LDB4YTgsMHg4MCwweDc1LDB4ZjgsMHgxMH0gfSwKLXsgMTMsIDB4MDhmYiwgMCwgezB4OTAsMHg3ZiwweGFlLDB4NzQsMHgwYiwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4OCwweGYwLDB4OTB9IH0sCi17IDEyLCAweDA5MDgsIDAsIHsweDdmLDB4YWIsMHg3NCwweDA4LDB4ZjAsMHg3NSwweGU4LDB4MTEsMHg3NSwweDMyLDB4MDEsMHg3NX0gfSwKLXsgMTIsIDB4MDkxNCwgMCwgezB4MzEsMHgwMCwweDc1LDB4MzAsMHgwMCwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwNCwweGY3fSB9LAoteyAxMCwgMHgwOTIwLCAwLCB7MHhkMCwweDA1LDB4ZDAsMHgwNCwweDc1LDB4MzQsMHgwMCwweDc1LDB4MzUsMHgwMX0gfSwKLXsgMTMsIDB4MDkyYSwgMCwgezB4OTAsMHg3ZiwweGFlLDB4NzQsMHgwMywweGYwLDB4OGMsMHgwMiwweGJhLDB4MDAsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDA5MzcsIDAsIHsweDAyLDB4MGEsMHgzZn0gfSwKLXsgMTIsIDB4MDkzYSwgMCwgezB4ODUsMHgzMywweDM0LDB4OTAsMHg3ZiwweDlkLDB4NzQsMHg4ZiwweGYwLDB4OTAsMHg3ZiwweDk3fSB9LAoteyAxNCwgMHgwOTQ2LCAwLCB7MHg3NCwweDA4LDB4ZjAsMHg5MCwweDdmLDB4OWQsMHg3NCwweDg4LDB4ZjAsMHg5MCwweDdmLDB4OWEsMHhlMCwweGZhfSB9LAoteyAxMiwgMHgwOTU0LCAwLCB7MHg3NCwweDA1LDB4NWEsMHhmNSwweDMzLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHg4ZiwweGYwLDB4OTB9IH0sCi17IDEzLCAweDA5NjAsIDAsIHsweDdmLDB4OTcsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDdmLDB4OWQsMHg3NCwweDgyLDB4ZjAsMHhlNSwweDMzfSB9LAoteyAxMywgMHgwOTZkLCAwLCB7MHgyNSwweGUwLDB4ZmEsMHg5MCwweDdmLDB4OWEsMHhlMCwweDU0LDB4MDUsMHhmYiwweDRhLDB4ZjUsMHgzM30gfSwKLXsgIDIsIDB4MDk3YSwgMCwgezB4NjAsMHgwY30gfSwKLXsgMTIsIDB4MDk3YywgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5NiwweDc0LDB4ODAsMHg0YSwweGYwfSB9LAoteyAxMSwgMHgwOTg4LCAwLCB7MHg3NSwweDZlLDB4MDAsMHg3NSwweDZmLDB4MDAsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyfSB9LAoteyAxNCwgMHgwOTkzLCAwLCB7MHgxMSwweDQ0LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHg5MCwweDE3LDB4MTMsMHhlMCwweGZhLDB4NzQsMHg4MCwweDJhfSB9LAoteyAgNiwgMHgwOWExLCAwLCB7MHhmYSwweGU1LDB4MzMsMHhiNCwweDA0LDB4Mjl9IH0sCi17ICAzLCAweDA5YTcsIDAsIHsweGJhLDB4YTAsMHgwMH0gfSwKLXsgIDIsIDB4MDlhYSwgMCwgezB4NTAsMHgyNH0gfSwKLXsgMTMsIDB4MDlhYywgMCwgezB4OTAsMHgxNywweDEzLDB4ZTAsMHgwNCwweGZiLDB4MGIsMHg5MCwweDE3LDB4MTMsMHhlYiwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA5YjksIDAsIHsweDE3LDB4MTMsMHhlMCwweGZiLDB4OTAsMHgxNywweDE1LDB4ZjAsMHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDV9IH0sCi17ICA5LCAweDA5YzcsIDAsIHsweDEyLDB4MDQsMHhmNywweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMn0gfSwKLXsgIDUsIDB4MDlkMCwgMCwgezB4ZTUsMHgzMywweGI0LDB4MDIsMHgyNn0gfSwKLXsgIDYsIDB4MDlkNSwgMCwgezB4YzMsMHg3NCwweDA0LDB4OWEsMHg1MCwweDIwfSB9LAoteyAxMywgMHgwOWRiLCAwLCB7MHg5MCwweDE3LDB4MTMsMHhlMCwweGZhLDB4MWEsMHgxYSwweDkwLDB4MTcsMHgxMywweGVhLDB4ZjAsMHg5MH0gfSwKLXsgMTMsIDB4MDllOCwgMCwgezB4MTcsMHgxMywweGUwLDB4ZmEsMHg5MCwweDE3LDB4MTUsMHhmMCwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTJ9IH0sCi17ICA2LCAweDA5ZjUsIDAsIHsweDA0LDB4ZjcsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgIDUsIDB4MDlmYiwgMCwgezB4ZTUsMHgzMywweGI0LDB4MDgsMHgxZH0gfSwKLXsgIDQsIDB4MGEwMCwgMCwgezB4ZTUsMHgzNCwweDcwLDB4MTl9IH0sCi17IDEwLCAweDBhMDQsIDAsIHsweDc0LDB4MDEsMHgyNSwweDM1LDB4NTQsMHgwZiwweGY1LDB4MzUsMHg4NSwweDM1fSB9LAoteyAxMiwgMHgwYTBlLCAwLCB7MHg3NSwweDc1LDB4NzYsMHgwMCwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMywweGZlLDB4ZDB9IH0sCi17ICAzLCAweDBhMWEsIDAsIHsweDA1LDB4ZDAsMHgwNH0gfSwKLXsgIDUsIDB4MGExZCwgMCwgezB4ZTUsMHgzMywweGI0LDB4MDEsMHgxZH0gfSwKLXsgIDQsIDB4MGEyMiwgMCwgezB4ZTUsMHgzNCwweDcwLDB4MTl9IH0sCi17IDEwLCAweDBhMjYsIDAsIHsweGU1LDB4MzUsMHgyNCwweGZmLDB4NTQsMHgwZiwweGY1LDB4MzUsMHg4NSwweDM1fSB9LAoteyAxMiwgMHgwYTMwLCAwLCB7MHg3NSwweDc1LDB4NzYsMHgwMCwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMywweGZlLDB4ZDB9IH0sCi17ICAzLCAweDBhM2MsIDAsIHsweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTQsIDB4MGEzZiwgMCwgezB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDA1LDB4ZDAsMHgwNCwweDkwLDB4N2YsMHg5Nn0gfSwKLXsgMTQsIDB4MGE0ZCwgMCwgezB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5NiwweDc0LDB4N2YsMHg1YSwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHgwOH0gfSwKLXsgMTAsIDB4MGE1YiwgMCwgezB4ZjAsMHhjMywweGVjLDB4OTQsMHgwMCwweGVkLDB4OTQsMHgwMiwweDQwLDB4MDh9IH0sCi17ICA4LCAweDBhNjUsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmEsMHgyMCwweGU2LDB4MDh9IH0sCi17ICA4LCAweDBhNmQsIDAsIHsweGMzLDB4ZTQsMHg5YywweDc0LDB4MDgsMHg5ZCwweDUwLDB4MTN9IH0sCi17IDE0LCAweDBhNzUsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4OTYsMHg3NCwweDQwLDB4NjUsMHgwMiwweGYwLDB4N2N9IH0sCi17ICA1LCAweDBhODMsIDAsIHsweDAwLDB4N2QsMHgwMCwweDgwLDB4MDV9IH0sCi17ICA1LCAweDBhODgsIDAsIHsweDBjLDB4YmMsMHgwMCwweDAxLDB4MGR9IH0sCi17ICA1LCAweDBhOGQsIDAsIHsweGU1LDB4MzgsMHhiNCwweDAxLDB4MGV9IH0sCi17IDEzLCAweDBhOTIsIDAsIHsweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwNCwweGY3LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHg3NSwweDM4fSB9LAoteyAgMSwgMHgwYTlmLCAwLCB7MHgwMH0gfSwKLXsgIDcsIDB4MGFhMCwgMCwgezB4ZTUsMHgzMSwweDcwLDB4MDMsMHgwMiwweDA5LDB4MmF9IH0sCi17IDEwLCAweDBhYTcsIDAsIHsweDkwLDB4N2YsMHhjOSwweGUwLDB4ZmEsMHg3MCwweDAzLDB4MDIsMHgwYywweDJkfSB9LAoteyAxNCwgMHgwYWIxLCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg4MCwweDY1LDB4MDIsMHhmMCwweDkwfSB9LAoteyAgOSwgMHgwYWJmLCAwLCB7MHg3ZCwweGMwLDB4ZTAsMHhmYSwweGJhLDB4MmMsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBhYzgsIDAsIHsweDAyLDB4MGIsMHgzNn0gfSwKLXsgIDUsIDB4MGFjYiwgMCwgezB4NzUsMHgzMiwweDAwLDB4N2IsMHgwMH0gfSwKLXsgIDMsIDB4MGFkMCwgMCwgezB4YmIsMHg2NCwweDAwfSB9LAoteyAgMiwgMHgwYWQzLCAwLCB7MHg1MCwweDFjfSB9LAoteyAxNCwgMHgwYWQ1LCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwNSwweGQwfSB9LAoteyAxMywgMHgwYWUzLCAwLCB7MHgwNCwweGQwLDB4MDMsMHhkMCwweDAyLDB4OTAsMHg4OCwweDBmLDB4ZTAsMHhmNSwweDQ3LDB4MGIsMHg4MH0gfSwKLXsgIDEsIDB4MGFmMCwgMCwgezB4ZGZ9IH0sCi17IDEzLCAweDBhZjEsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDcsMHgxZSwweDEyLDB4MDMsMHhlMSwweDEyfSB9LAoteyAxMiwgMHgwYWZlLCAwLCB7MHgwNCwweGY3LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMCwweDAyLDB4NzUsMHg2ZSwweDAwLDB4NzV9IH0sCi17IDEzLCAweDBiMGEsIDAsIHsweDZmLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDExLDB4NDQsMHhkMCwweDA1fSB9LAoteyAgOSwgMHgwYjE3LCAwLCB7MHhkMCwweDA0LDB4ZDAsMHgwMiwweDc1LDB4NzAsMHg0ZCwweDc1LDB4NzF9IH0sCi17IDExLCAweDBiMjAsIDAsIHsweDBjLDB4NzUsMHg3MiwweDAyLDB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTJ9IH0sCi17IDExLCAweDBiMmIsIDAsIHsweDExLDB4NzUsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwLDB4MDIsMHgwMiwweDBjLDB4MmR9IH0sCi17ICAzLCAweDBiMzYsIDAsIHsweGJhLDB4MmEsMHgzYn0gfSwKLXsgMTMsIDB4MGIzOSwgMCwgezB4OTAsMHg3ZiwweDk4LDB4NzQsMHgyMCwweGYwLDB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTJ9IH0sCi17IDE0LCAweDBiNDYsIDAsIHsweDAxLDB4ZGQsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwLDB4MDIsMHg5MCwweDdmLDB4OTgsMHg3NCwweDI4LDB4ZjB9IH0sCi17ICAyLCAweDBiNTQsIDAsIHsweDdiLDB4MDB9IH0sCi17ICAzLCAweDBiNTYsIDAsIHsweGJiLDB4MGEsMHgwMH0gfSwKLXsgIDUsIDB4MGI1OSwgMCwgezB4NDAsMHgwMywweDAyLDB4MGMsMHgyZH0gfSwKLXsgMTQsIDB4MGI1ZSwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDUsMHhkMH0gfSwKLXsgIDgsIDB4MGI2YywgMCwgezB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweDBiLDB4ODAsMHhlMn0gfSwKLXsgIDMsIDB4MGI3NCwgMCwgezB4YmEsMHgyYiwweDFhfSB9LAoteyAgOCwgMHgwYjc3LCAwLCB7MHg5MCwweDdmLDB4YzksMHhlMCwweGZiLDB4YmIsMHg0MCwweDEyfSB9LAoteyAxNCwgMHgwYjdmLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEyLDB4MDUsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwfSB9LAoteyAgNCwgMHgwYjhkLCAwLCB7MHgwMiwweDAyLDB4MGMsMHgyZH0gfSwKLXsgIDMsIDB4MGI5MSwgMCwgezB4YmEsMHgxMCwweDFmfSB9LAoteyAxNCwgMHgwYjk0LCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZiLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg4MCwweDY1LDB4MDMsMHhmMCwweGMwfSB9LAoteyAxNCwgMHgwYmEyLCAwLCB7MHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMCwweDNkLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMCwweDAyfSB9LAoteyAgMywgMHgwYmIwLCAwLCB7MHgwMiwweDBjLDB4MmR9IH0sCi17ICAzLCAweDBiYjMsIDAsIHsweGJhLDB4MTEsMHgxMn0gfSwKLXsgMTQsIDB4MGJiNiwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMCwweDZhLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMH0gfSwKLXsgIDQsIDB4MGJjNCwgMCwgezB4MDIsMHgwMiwweDBjLDB4MmR9IH0sCi17ICAzLCAweDBiYzgsIDAsIHsweGJhLDB4MTIsMHgxMn0gfSwKLXsgMTQsIDB4MGJjYiwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMCwweDhmLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMH0gfSwKLXsgIDQsIDB4MGJkOSwgMCwgezB4MDIsMHgwMiwweDBjLDB4MmR9IH0sCi17ICAzLCAweDBiZGQsIDAsIHsweGJhLDB4MTMsMHgwYn0gfSwKLXsgMTEsIDB4MGJlMCwgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmYiwweDkwLDB4ODgsMHgwMCwweGYwLDB4ODAsMHg0Mn0gfSwKLXsgIDMsIDB4MGJlYiwgMCwgezB4YmEsMHgxNCwweDExfSB9LAoteyAxNCwgMHgwYmVlLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDExLDB4ZGQsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwfSB9LAoteyAgMywgMHgwYmZjLCAwLCB7MHgwMiwweDgwLDB4MmV9IH0sCi17ICAzLCAweDBiZmYsIDAsIHsweGJhLDB4MTUsMHgxZH0gfSwKLXsgMTIsIDB4MGMwMiwgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmNSwweDc1LDB4OTAsMHg3ZCwweGMyLDB4ZTAsMHhmNSwweDc2fSB9LAoteyAxNCwgMHgwYzBlLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEzLDB4ZmUsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwfSB9LAoteyAgMywgMHgwYzFjLCAwLCB7MHgwMiwweDgwLDB4MGV9IH0sCi17ICAzLCAweDBjMWYsIDAsIHsweGJhLDB4MTYsMHgwYn0gfSwKLXsgMTEsIDB4MGMyMiwgMCwgezB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEzLDB4YTMsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTEsIDB4MGMyZCwgMCwgezB4OTAsMHg3ZiwweGM5LDB4ZTQsMHhmMCwweDc1LDB4MzEsMHgwMCwweDAyLDB4MDksMHgyYX0gfSwKLXsgIDEsIDB4MGMzOCwgMCwgezB4MjJ9IH0sCi17ICA3LCAweDBjMzksIDAsIHsweDUzLDB4NTUsMHg1MCwweDQ1LDB4NGUsMHg0NCwweDAwfSB9LAoteyAgNywgMHgwYzQwLCAwLCB7MHg1MiwweDQ1LDB4NTMsMHg1NSwweDRkLDB4NDUsMHgwMH0gfSwKLXsgIDYsIDB4MGM0NywgMCwgezB4MjAsMHg1NiwweDZmLDB4NmMsMHgyMCwweDAwfSB9LAoteyAxMywgMHgwYzRkLCAwLCB7MHg0NCwweDQxLDB4NDIsMHg1NSwweDUzLDB4NDIsMHgyMCwweDc2LDB4MzEsMHgyZSwweDMwLDB4MzAsMHgwMH0gfSwKLXsgMTQsIDB4MGM1YSwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNH0gfSwKLXsgMTQsIDB4MGM2OCwgMCwgezB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweGQwLDB4NzUsMHhkMH0gfSwKLXsgMTMsIDB4MGM3NiwgMCwgezB4MDAsMHhjMCwweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTB9IH0sCi17IDE0LCAweDBjODMsIDAsIHsweDdmLDB4YWIsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4ZTgsMHhlMCwweGZhLDB4OTAsMHg3ZiwweGU5LDB4ZTB9IH0sCi17ICA2LCAweDBjOTEsIDAsIHsweGZiLDB4YmIsMHgwMCwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGM5NywgMCwgezB4MDIsMHgwZCwweDM4fSB9LAoteyAgMywgMHgwYzlhLCAwLCB7MHhiYSwweDgwLDB4MTR9IH0sCi17IDE0LCAweDBjOWQsIDAsIHsweDkwLDB4N2YsMHgwMCwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4YjV9IH0sCi17ICA2LCAweDBjYWIsIDAsIHsweDc0LDB4MDIsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDUsIDB4MGNiMSwgMCwgezB4YmEsMHg4MiwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGNiNiwgMCwgezB4MDIsMHgwZCwweDFkfSB9LAoteyAgOCwgMHgwY2I5LCAwLCB7MHg5MCwweDdmLDB4ZWMsMHhlMCwweGZjLDB4YmMsMHgwMSwweDAwfSB9LAoteyAgMiwgMHgwY2MxLCAwLCB7MHg0MCwweDIxfSB9LAoteyAgNiwgMHgwY2MzLCAwLCB7MHhjMywweDc0LDB4MDcsMHg5YywweDQwLDB4MWJ9IH0sCi17IDE0LCAweDBjYzksIDAsIHsweGVjLDB4MjQsMHhmZiwweDI1LDB4ZTAsMHhmZCwweDI0LDB4YzYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9IH0sCi17IDEzLCAweDBjZDcsIDAsIHsweDgzLDB4ZTAsMHhmZCwweDUzLDB4MDUsMHgwMSwweDkwLDB4N2YsMHgwMCwweGVkLDB4ZjAsMHg4MCwweDJifSB9LAoteyAgMywgMHgwY2U0LCAwLCB7MHhiYywweDgxLDB4MDB9IH0sCi17ICAyLCAweDBjZTcsIDAsIHsweDQwLDB4MjF9IH0sCi17ICA2LCAweDBjZTksIDAsIHsweGMzLDB4NzQsMHg4NywweDljLDB4NDAsMHgxYn0gfSwKLXsgMTQsIDB4MGNlZiwgMCwgezB4ZWMsMHgyNCwweDdmLDB4MjUsMHhlMCwweGZjLDB4MjQsMHhiNiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNX0gfSwKLXsgMTMsIDB4MGNmZCwgMCwgezB4ODMsMHhlMCwweGZjLDB4NTMsMHgwNCwweDAxLDB4OTAsMHg3ZiwweDAwLDB4ZWMsMHhmMCwweDgwLDB4MDV9IH0sCi17ICA1LCAweDBkMGEsIDAsIHsweDkwLDB4N2YsMHgwMCwweGU0LDB4ZjB9IH0sCi17IDE0LCAweDBkMGYsIDAsIHsweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICA1LCAweDBkMWQsIDAsIHsweGJhLDB4ODEsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkMjIsIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgMTQsIDB4MGQyNSwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0gfSwKLXsgIDUsIDB4MGQzMywgMCwgezB4MDIsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGQzOCwgMCwgezB4YmIsMHgwMSwweDJkfSB9LAoteyAgNiwgMHgwZDNiLCAwLCB7MHhiYSwweDAwLDB4MDMsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBkNDEsIDAsIHsweGJhLDB4MDIsMHgxMX0gfSwKLXsgMTMsIDB4MGQ0NCwgMCwgezB4NzUsMHg1OSwweDAwLDB4YzAsMHgwMiwweGMwLDB4MDMsMHgxMiwweDBlLDB4ZjAsMHhkMCwweDAzLDB4ZDB9IH0sCi17ICA0LCAweDBkNTEsIDAsIHsweDAyLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgNSwgMHgwZDU1LCAwLCB7MHhiYSwweDIxLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZDVhLCAwLCB7MHgwMiwweDBlLDB4Y2R9IH0sCi17IDExLCAweDBkNWQsIDAsIHsweDc1LDB4MzcsMHgwMSwweDkwLDB4N2YsMHhjNSwweGU0LDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBkNjgsIDAsIHsweGJiLDB4MDMsMHgxZn0gfSwKLXsgIDYsIDB4MGQ2YiwgMCwgezB4YmEsMHgwMCwweDAzLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgNSwgMHgwZDcxLCAwLCB7MHhiYSwweDAyLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZDc2LCAwLCB7MHgwMiwweDBlLDB4Y2R9IH0sCi17IDEzLCAweDBkNzksIDAsIHsweDc1LDB4NTksMHgwMSwweGMwLDB4MDIsMHhjMCwweDAzLDB4MTIsMHgwZSwweGYwLDB4ZDAsMHgwMywweGQwfSB9LAoteyAgNCwgMHgwZDg2LCAwLCB7MHgwMiwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGQ4YSwgMCwgezB4YmIsMHgwNiwweDU0fSB9LAoteyAgNSwgMHgwZDhkLCAwLCB7MHhiYSwweDgwLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZDkyLCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17ICA4LCAweDBkOTUsIDAsIHsweDkwLDB4N2YsMHhlYiwweGUwLDB4ZmMsMHhiYywweDAxLDB4MTV9IH0sCi17IDEyLCAweDBkOWQsIDAsIHsweDdjLDB4ZmIsMHg3ZCwweDBmLDB4OGQsMHgwNiwweDdmLDB4MDAsMHg5MCwweDdmLDB4ZDQsMHhlZX0gfSwKLXsgIDksIDB4MGRhOSwgMCwgezB4ZjAsMHg5MCwweDdmLDB4ZDUsMHhlYywweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAxMCwgMHgwZGIyLCAwLCB7MHg5MCwweDdmLDB4ZWIsMHhlMCwweGZjLDB4YmMsMHgwMiwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGRiYywgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAxMCwgMHgwZGJmLCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZjLDB4YmMsMHgwMCwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGRjOSwgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAxMiwgMHgwZGNjLCAwLCB7MHg3YywweDNiLDB4N2QsMHgwZiwweDhkLDB4MDYsMHg3ZiwweDAwLDB4OTAsMHg3ZiwweGQ0LDB4ZWV9IH0sCi17ICA5LCAweDBkZDgsIDAsIHsweGYwLDB4OTAsMHg3ZiwweGQ1LDB4ZWMsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDYsIDB4MGRlMSwgMCwgezB4YmIsMHgwNywweDAzLDB4MDIsMHgwZSwweGM1fSB9LAoteyAgMywgMHgwZGU3LCAwLCB7MHhiYiwweDA4LDB4MTB9IH0sCi17IDEzLCAweDBkZWEsIDAsIHsweGFjLDB4NDgsMHg5MCwweDdmLDB4MDAsMHhlYywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMywgMHgwZGY3LCAwLCB7MHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBkZmEsIDAsIHsweGJiLDB4MDksMHgzMX0gfSwKLXsgIDUsIDB4MGRmZCwgMCwgezB4YmEsMHgwMCwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGUwMiwgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAxNCwgMHgwZTA1LCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZjLDB4YzMsMHg3NCwweDAxLDB4OWMsMHg1MCwweDAzLDB4MDIsMHgwZSwweGM1fSB9LAoteyAgOCwgMHgwZTEzLCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZjLDB4YmMsMHgwMCwweDBhfSB9LAoteyAxMCwgMHgwZTFiLCAwLCB7MHg5MCwweDE3LDB4MjEsMHhlNCwweGYwLDB4OTAsMHgxNywweDIyLDB4ZTQsMHhmMH0gfSwKLXsgIDksIDB4MGUyNSwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNSwweDQ4LDB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZTJlLCAwLCB7MHhiYiwweDBhLDB4Mjd9IH0sCi17ICA1LCAweDBlMzEsIDAsIHsweGJhLDB4ODEsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBlMzYsIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgMTQsIDB4MGUzOSwgMCwgezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmYSwweDI0LDB4MjAsMHhmYSwweGU0LDB4MzQsMHgxNywweGZjLDB4OGEsMHg4Mn0gfSwKLXsgMTQsIDB4MGU0NywgMCwgezB4OGMsMHg4MywweGUwLDB4ZmEsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDMsIDB4MGU1NSwgMCwgezB4MDIsMHgwZSwweGNkfSB9LAoteyAgNSwgMHgwZTU4LCAwLCB7MHhiYiwweDBiLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZTVkLCAwLCB7MHgwMiwweDBlLDB4YTl9IH0sCi17IDEzLCAweDBlNjAsIDAsIHsweDkwLDB4MTcsMHgyMCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZhLDB4YmEsMHgwMSwweDFhfSB9LAoteyAgOCwgMHgwZTZkLCAwLCB7MHg5MCwweDdmLDB4ZWQsMHhlMCwweGZhLDB4YmEsMHgwMCwweDEyfSB9LAoteyAxNCwgMHgwZTc1LCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGZhLDB4OTAsMHgxNywweDIxLDB4ZjAsMHhjMCwweDAzLDB4MTIsMHgwNCwweGUyfSB9LAoteyAgNCwgMHgwZTgzLCAwLCB7MHhkMCwweDAzLDB4ODAsMHg0Nn0gfSwKLXsgIDgsIDB4MGU4NywgMCwgezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmYSwweGJhLDB4MDIsMHgzZX0gfSwKLXsgIDgsIDB4MGU4ZiwgMCwgezB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmYSwweGJhLDB4MDAsMHgzNn0gfSwKLXsgMTMsIDB4MGU5NywgMCwgezB4YzAsMHgwMywweDEyLDB4MDQsMHhlZiwweGQwLDB4MDMsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZhLDB4OTB9IH0sCi17ICA1LCAweDBlYTQsIDAsIHsweDE3LDB4MjIsMHhmMCwweDgwLDB4MjR9IH0sCi17ICA1LCAweDBlYTksIDAsIHsweGJiLDB4MTIsMHgwMiwweDgwLDB4MTd9IH0sCi17ICA1LCAweDBlYWUsIDAsIHsweGJiLDB4ODEsMHgwMiwweDgwLDB4MGR9IH0sCi17ICA1LCAweDBlYjMsIDAsIHsweGJiLDB4ODMsMHgwMiwweDgwLDB4MDh9IH0sCi17ICA1LCAweDBlYjgsIDAsIHsweGJiLDB4ODIsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBlYmQsIDAsIHsweGJiLDB4ODQsMHgwNX0gfSwKLXsgIDUsIDB4MGVjMCwgMCwgezB4MTIsMHgwNiwweDRlLDB4ODAsMHgwOH0gfSwKLXsgIDgsIDB4MGVjNSwgMCwgezB4OTAsMHg3ZiwweGI0LDB4NzQsMHgwMywweGYwLDB4ODAsMHgwNn0gfSwKLXsgIDYsIDB4MGVjZCwgMCwgezB4OTAsMHg3ZiwweGI0LDB4NzQsMHgwMiwweGYwfSB9LAoteyAgMiwgMHgwZWQzLCAwLCB7MHhkMCwweDg2fSB9LAoteyAxNCwgMHgwZWQ1LCAwLCB7MHhkMCwweGQwLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAxMywgMHgwZWUzLCAwLCB7MHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTEsIDB4MGVmMCwgMCwgezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNSwweDVhLDB4YzMsMHg5NCwweDAxLDB4NDAsMHgxZH0gfSwKLXsgIDcsIDB4MGVmYiwgMCwgezB4YzMsMHg3NCwweDA3LDB4OTUsMHg1YSwweDQwLDB4MTZ9IH0sCi17IDEzLCAweDBmMDIsIDAsIHsweGU1LDB4NWEsMHgyNCwweGZmLDB4MjUsMHhlMCwweGZhLDB4MjQsMHhjNiwweGY1LDB4ODIsMHhlNCwweDM0fSB9LAoteyAgOSwgMHgwZjBmLCAwLCB7MHg3ZiwweGY1LDB4ODMsMHhhYSwweDU5LDB4ZWEsMHhmMCwweDgwLDB4MjJ9IH0sCi17ICA3LCAweDBmMTgsIDAsIHsweGMzLDB4ZTUsMHg1YSwweDk0LDB4ODEsMHg0MCwweDFifSB9LAoteyAgNywgMHgwZjFmLCAwLCB7MHhjMywweDc0LDB4ODcsMHg5NSwweDVhLDB4NDAsMHgxNH0gfSwKLXsgMTMsIDB4MGYyNiwgMCwgezB4ZTUsMHg1YSwweDI0LDB4ZmYsMHgyNSwweGUwLDB4ZmEsMHgyNCwweGI2LDB4ZjUsMHg4MiwweGU0LDB4MzR9IH0sCi17ICA3LCAweDBmMzMsIDAsIHsweDdmLDB4ZjUsMHg4MywweGFhLDB4NTksMHhlYSwweGYwfSB9LAoteyAgMSwgMHgwZjNhLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MGYzYiwgMCwgezB4MDksMHgwMiwweGJhLDB4MDAsMHgwMywweDAxLDB4MDAsMHg0MCwweDAwLDB4MDksMHgwNCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgMTQsIDB4MGY0OSwgMCwgezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwOSwweDI0LDB4MDEsMHgwMCwweDAxLDB4M2QsMHgwMCwweDAxLDB4MDEsMHgwY30gfSwKLXsgMTQsIDB4MGY1NywgMCwgezB4MjQsMHgwMiwweDAxLDB4MTAsMHgwNywweDAwLDB4MDIsMHgwMywweDAwLDB4MDAsMHgwMCwweDBkLDB4MjQsMHgwNn0gfSwKLXsgMTQsIDB4MGY2NSwgMCwgezB4MDMsMHgwMSwweDAyLDB4MTUsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMn0gfSwKLXsgMTQsIDB4MGY3MywgMCwgezB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMCwweDA5LDB4MjQsMHgwMywweDA0LDB4MDIsMHgwMywweDAwLDB4MDMsMHgwMH0gfSwKLXsgMTQsIDB4MGY4MSwgMCwgezB4MDksMHgyNCwweDAzLDB4MDUsMHgwMywweDA2LDB4MDAsMHgwMSwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMH0gfSwKLXsgMTQsIDB4MGY4ZiwgMCwgezB4MDEsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwN30gfSwKLXsgMTQsIDB4MGY5ZCwgMCwgezB4MjQsMHgwMSwweDAyLDB4MDEsMHgwMSwweDAwLDB4MGIsMHgyNCwweDAyLDB4MDEsMHgwMiwweDAyLDB4MTAsMHgwMX0gfSwKLXsgMTQsIDB4MGZhYiwgMCwgezB4ODAsMHhiYiwweDAwLDB4MDksMHgwNSwweDg4LDB4MDUsMHgwMCwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNX0gfSwKLXsgMTQsIDB4MGZiOSwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgMTQsIDB4MGZjNywgMCwgezB4MDcsMHgwNSwweDgyLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LDB4MDIsMHgwMiwweDQwLDB4MDAsMHgwMH0gfSwKLXsgMTQsIDB4MGZkNSwgMCwgezB4MDksMHgwNCwweDAyLDB4MDEsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgyLDB4MDIsMHg0MH0gfSwKLXsgMTQsIDB4MGZlMywgMCwgezB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDg5LDB4MDUsMHhhMH0gfSwKLXsgMTAsIDB4MGZmMSwgMCwgezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDB9IH0sCi17IDE0LCAweDBmZmIsIDAsIHsweDEyLDB4MDEsMHgwMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NywweDA1LDB4OTksMHg5OSwweDAwLDB4MDF9IH0sCi17IDE0LCAweDEwMDksIDAsIHsweDAwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDAyLDB4YmF9IH0sCi17ICA0LCAweDEwMTcsIDAsIHsweDAwLDB4MDMsMHgwMSwweDAwfSB9LAoteyAgMiwgMHgxMDFiLCAwLCB7MHg3YSwweDAwfSB9LAoteyAgMywgMHgxMDFkLCAwLCB7MHhiYSwweDA1LDB4MDB9IH0sCi17ICAyLCAweDEwMjAsIDAsIHsweDUwLDB4MTd9IH0sCi17ICA4LCAweDEwMjIsIDAsIHsweDkwLDB4N2YsMHhhNSwweGUwLDB4ZmIsMHgzMCwweGUwLDB4MDV9IH0sCi17ICA1LCAweDEwMmEsIDAsIHsweDkwLDB4MDAsMHgwMSwweDgwLDB4MGR9IH0sCi17IDEwLCAweDEwMmYsIDAsIHsweGMwLDB4MDIsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDAyLDB4MGEsMHg4MCwweGU0fSB9LAoteyAgMywgMHgxMDM5LCAwLCB7MHg5MCwweDAwLDB4MDF9IH0sCi17ICAxLCAweDEwM2MsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxMDNkLCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGZiLDB4N2MsMHgwMCwweDdkfSB9LAoteyAgNCwgMHgxMDRiLCAwLCB7MHg3ZSwweGViLDB4NjAsMHgxMn0gfSwKLXsgMTQsIDB4MTA0ZiwgMCwgezB4ODksMHg4MiwweDhhLDB4ODMsMHhlMCwweGEzLDB4YTksMHg4MiwweGFhLDB4ODMsMHg4YywweDgyLDB4OGQsMHg4M30gfSwKLXsgIDQsIDB4MTA1ZCwgMCwgezB4ZjAsMHgwYywweGRiLDB4ZWV9IH0sCi17ICA4LCAweDEwNjEsIDAsIHsweDkwLDB4N2QsMHhjMywweGUwLDB4OTAsMHg3ZiwweGI5LDB4ZjB9IH0sCi17ICAxLCAweDEwNjksIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxMDZhLCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGZiLDB4N2MsMHhjNCwweDdkfSB9LAoteyAgNCwgMHgxMDc4LCAwLCB7MHg3ZCwweGViLDB4NjAsMHhlNX0gfSwKLXsgMTQsIDB4MTA3YywgMCwgezB4OGMsMHg4MiwweDhkLDB4ODMsMHhlMCwweDBjLDB4ODksMHg4MiwweDhhLDB4ODMsMHhmMCwweGEzLDB4YTksMHg4Mn0gfSwKLXsgIDQsIDB4MTA4YSwgMCwgezB4YWEsMHg4MywweGRiLDB4ZWV9IH0sCi17ICAxLCAweDEwOGUsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxMDhmLCAwLCB7MHg5MCwweDdmLDB4YTUsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4OTAsMHg3ZCwweGMxLDB4ZTAsMHgwNSwweDg2fSB9LAoteyAxNCwgMHgxMDlkLCAwLCB7MHhhMywweGYwLDB4MTIsMHgxMCwweDFiLDB4OTAsMHg3ZiwweGE2LDB4MDUsMHg4NiwweGEzLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgNSwgMHgxMGFiLCAwLCB7MHg2MCwweDE2LDB4YTMsMHgwNSwweDg2fSB9LAoteyAxMywgMHgxMGIwLCAwLCB7MHg5MCwweDdmLDB4YTYsMHgwNSwweDg2LDB4ZTAsMHhhMywweDA1LDB4ODYsMHhmMCwweGMwLDB4MDEsMHgxMn0gfSwKLXsgIDYsIDB4MTBiZCwgMCwgezB4MTAsMHgxYiwweGQwLDB4MDEsMHhkOSwweGVkfSB9LAoteyAgNiwgMHgxMGMzLCAwLCB7MHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjB9IH0sCi17ICAxLCAweDEwYzksIDAsIHsweDIyfSB9LAoteyAgOCwgMHgxMGNhLCAwLCB7MHg5MCwweDg4LDB4MDIsMHg3NCwweDAxLDB4ZjAsMHg3YSwweDAwfSB9LAoteyAgMywgMHgxMGQyLCAwLCB7MHhiYSwweGZmLDB4MDB9IH0sCi17ICAyLCAweDEwZDUsIDAsIHsweDUwLDB4MGF9IH0sCi17IDEwLCAweDEwZDcsIDAsIHsweGMwLDB4MDIsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDAyLDB4MGEsMHg4MCwweGYxfSB9LAoteyAgMSwgMHgxMGUxLCAwLCB7MHgyMn0gfSwKLXsgIDUsIDB4MTBlMiwgMCwgezB4ZTUsMHg2YiwweGI0LDB4YzAsMHgwOH0gfSwKLXsgIDgsIDB4MTBlNywgMCwgezB4OTAsMHg4OCwweDAzLDB4ZTUsMHg2YywweGYwLDB4ODAsMHgwNn0gfSwKLXsgIDYsIDB4MTBlZiwgMCwgezB4OTAsMHg4OCwweDAyLDB4ZTUsMHg2YywweGYwfSB9LAoteyAgNCwgMHgxMGY1LCAwLCB7MHg3YSwweDAwLDB4N2IsMHgwMH0gfSwKLXsgMTEsIDB4MTBmOSwgMCwgezB4YzMsMHhlYSwweDk0LDB4MzIsMHhlYiwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgwN30gfSwKLXsgIDUsIDB4MTEwNCwgMCwgezB4MGEsMHhiYSwweDAwLDB4MDEsMHgwYn0gfSwKLXsgIDIsIDB4MTEwOSwgMCwgezB4ODAsMHhlZX0gfSwKLXsgIDEsIDB4MTEwYiwgMCwgezB4MjJ9IH0sCi17IDEwLCAweDExMGMsIDAsIHsweDkwLDB4ODgsMHgwMywweGU1LDB4NmQsMHhmMCwweDA1LDB4MzksMHg3YSwweDAwfSB9LAoteyAgMywgMHgxMTE2LCAwLCB7MHhiYSwweDI4LDB4MDB9IH0sCi17ICAyLCAweDExMTksIDAsIHsweDUwLDB4MDN9IH0sCi17ICAzLCAweDExMWIsIDAsIHsweDBhLDB4ODAsMHhmOH0gfSwKLXsgIDUsIDB4MTExZSwgMCwgezB4ZTUsMHgzOSwweGI0LDB4MTAsMHgwOH0gfSwKLXsgIDgsIDB4MTEyMywgMCwgezB4OTAsMHg4OCwweDAyLDB4NzQsMHhjMCwweGYwLDB4ODAsMHgwZX0gfSwKLXsgIDUsIDB4MTEyYiwgMCwgezB4ZTUsMHgzOSwweGI0LDB4MjAsMHgwOX0gfSwKLXsgIDksIDB4MTEzMCwgMCwgezB4OTAsMHg4OCwweDAyLDB4NzQsMHg4MCwweGYwLDB4NzUsMHgzOSwweDAwfSB9LAoteyAgMiwgMHgxMTM5LCAwLCB7MHg3YSwweDAwfSB9LAoteyAgMywgMHgxMTNiLCAwLCB7MHhiYSwweDI4LDB4MDB9IH0sCi17ICAyLCAweDExM2UsIDAsIHsweDUwLDB4MDN9IH0sCi17ICAzLCAweDExNDAsIDAsIHsweDBhLDB4ODAsMHhmOH0gfSwKLXsgIDEsIDB4MTE0MywgMCwgezB4MjJ9IH0sCi17ICA0LCAweDExNDQsIDAsIHsweGU1LDB4NmYsMHg2MCwweDAyfSB9LAoteyAgMiwgMHgxMTQ4LCAwLCB7MHg4MCwweDA3fSB9LAoteyAgNywgMHgxMTRhLCAwLCB7MHg3YSwweDAwLDB4NzUsMHgzOSwweDAwLDB4ODAsMHgwNX0gfSwKLXsgIDUsIDB4MTE1MSwgMCwgezB4N2EsMHg0MCwweDc1LDB4MzksMHgxMH0gfSwKLXsgIDksIDB4MTE1NiwgMCwgezB4ZTUsMHg2ZSwweDJhLDB4ZmEsMHhlNSwweDZlLDB4MjUsMHgzOSwweGY1fSB9LAoteyAxMCwgMHgxMTVmLCAwLCB7MHgzOSwweDkwLDB4ODgsMHgwMiwweDc0LDB4ODAsMHgyYSwweGYwLDB4N2EsMHgwMH0gfSwKLXsgIDgsIDB4MTE2OSwgMCwgezB4YzMsMHhlYSwweDY0LDB4ODAsMHg5NCwweGE4LDB4NTAsMHgwM30gfSwKLXsgIDMsIDB4MTE3MSwgMCwgezB4MGEsMHg4MCwweGY1fSB9LAoteyAgMSwgMHgxMTc0LCAwLCB7MHgyMn0gfSwKLXsgIDYsIDB4MTE3NSwgMCwgezB4YWEsMHg3MCwweGFiLDB4NzEsMHhhYywweDcyfSB9LAoteyAxMiwgMHgxMTdiLCAwLCB7MHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHgxMiwweDE0LDB4ZWUsMHhmZCwweDYwLDB4MTh9IH0sCi17IDEzLCAweDExODcsIDAsIHsweDhkLDB4NmQsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHgxMiwweDExLDB4MGMsMHhkMCwweDA0fSB9LAoteyAgOSwgMHgxMTk0LCAwLCB7MHhkMCwweDAzLDB4ZDAsMHgwMiwweDBhLDB4YmEsMHgwMCwweDAxLDB4MGJ9IH0sCi17ICAyLCAweDExOWQsIDAsIHsweDgwLDB4ZGN9IH0sCi17ICAxLCAweDExOWYsIDAsIHsweDIyfSB9LAoteyAxMywgMHgxMWEwLCAwLCB7MHhlNSwweDczLDB4YzQsMHg1NCwweDBmLDB4ZmEsMHg1MywweDAyLDB4MGYsMHhjMywweDc0LDB4MDksMHg5YX0gfSwKLXsgIDIsIDB4MTFhZCwgMCwgezB4NTAsMHgwNn0gfSwKLXsgIDYsIDB4MTFhZiwgMCwgezB4NzQsMHgzNywweDJhLDB4ZmIsMHg4MCwweDA0fSB9LAoteyAgNCwgMHgxMWI1LCAwLCB7MHg3NCwweDMwLDB4MmEsMHhmYn0gfSwKLXsgMTIsIDB4MTFiOSwgMCwgezB4OGIsMHg2ZCwweGMwLDB4MDMsMHgxMiwweDExLDB4MGMsMHhkMCwweDAzLDB4YWEsMHg3MywweDUzfSB9LAoteyAgOCwgMHgxMWM1LCAwLCB7MHgwMiwweDBmLDB4YzMsMHg3NCwweDA5LDB4OWEsMHg1MCwweDA2fSB9LAoteyAgNiwgMHgxMWNkLCAwLCB7MHg3NCwweDM3LDB4MmEsMHhmYiwweDgwLDB4MDR9IH0sCi17ICA0LCAweDExZDMsIDAsIHsweDc0LDB4MzAsMHgyYSwweGZifSB9LAoteyAgNSwgMHgxMWQ3LCAwLCB7MHg4YiwweDZkLDB4MTIsMHgxMSwweDBjfSB9LAoteyAgMSwgMHgxMWRjLCAwLCB7MHgyMn0gfSwKLXsgIDcsIDB4MTFkZCwgMCwgezB4OTAsMHg3ZCwweGMzLDB4ZTAsMHhmYSwweDYwLDB4MGZ9IH0sCi17IDEyLCAweDExZTQsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZjUsMHg2ZSwweDkwLDB4N2QsMHhjMiwweGUwLDB4ZjUsMHg2Zn0gfSwKLXsgIDMsIDB4MTFmMCwgMCwgezB4MTIsMHgxMSwweDQ0fSB9LAoteyAxMiwgMHgxMWYzLCAwLCB7MHg5MCwweDdkLDB4ZmYsMHhlNCwweGYwLDB4NzUsMHg3MCwweGM0LDB4NzUsMHg3MSwweDdkLDB4NzV9IH0sCi17ICA1LCAweDExZmYsIDAsIHsweDcyLDB4MDEsMHgxMiwweDExLDB4NzV9IH0sCi17ICAxLCAweDEyMDQsIDAsIHsweDIyfSB9LAoteyAgMiwgMHgxMjA1LCAwLCB7MHg3YSwweDA0fSB9LAoteyAgMywgMHgxMjA3LCAwLCB7MHhiYSwweDQwLDB4MDB9IH0sCi17ICAyLCAweDEyMGEsIDAsIHsweDUwLDB4MzZ9IH0sCi17IDE0LCAweDEyMGMsIDAsIHsweGVhLDB4MjQsMHhjMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2QsMHhmNSwweDgzLDB4ZTAsMHhmYiwweDdjLDB4MDB9IH0sCi17ICAzLCAweDEyMWEsIDAsIHsweGJjLDB4MDgsMHgwMH0gfSwKLXsgIDIsIDB4MTIxZCwgMCwgezB4NTAsMHgyMH0gfSwKLXsgIDYsIDB4MTIxZiwgMCwgezB4OGIsMHgwNSwweGVkLDB4MzAsMHhlNywweDBifSB9LAoteyAxMSwgMHgxMjI1LCAwLCB7MHg5MCwweDdmLDB4OTYsMHg3NCwweDQyLDB4ZjAsMHg3NCwweGMzLDB4ZjAsMHg4MCwweDA4fSB9LAoteyAgOCwgMHgxMjMwLCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlNCwweGYwLDB4NzQsMHg4MSwweGYwfSB9LAoteyAgNywgMHgxMjM4LCAwLCB7MHhlYiwweDI1LDB4ZTAsMHhmYiwweDBjLDB4ODAsMHhkYn0gfSwKLXsgIDMsIDB4MTIzZiwgMCwgezB4MGEsMHg4MCwweGM1fSB9LAoteyAgMSwgMHgxMjQyLCAwLCB7MHgyMn0gfSwKLXsgIDQsIDB4MTI0MywgMCwgezB4N2EsMHgwMCwweDdiLDB4ZWZ9IH0sCi17ICAzLCAweDEyNDcsIDAsIHsweGJhLDB4MTAsMHgwMH0gfSwKLXsgIDIsIDB4MTI0YSwgMCwgezB4NTAsMHgyMH0gfSwKLXsgMTQsIDB4MTI0YywgMCwgezB4NzQsMHgxMSwweDJiLDB4ZmIsMHgyNCwweDAwLDB4ZmMsMHhlNCwweDM0LDB4MTgsMHhmZCwweDhjLDB4ODIsMHg4ZH0gfSwKLXsgMTQsIDB4MTI1YSwgMCwgezB4ODMsMHhlNCwweGYwLDB4ZWEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHgxOSwweGY1LDB4ODMsMHhlNH0gfSwKLXsgIDQsIDB4MTI2OCwgMCwgezB4ZjAsMHgwYSwweDgwLDB4ZGJ9IH0sCi17ICAxLCAweDEyNmMsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxMjZkLCAwLCB7MHg3NCwweGY4LDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgxMjdiLCAwLCB7MHg3NCwweGY5LDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgxMjg5LCAwLCB7MHg3NCwweGZhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgxMjk3LCAwLCB7MHg3NCwweGZiLDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgxMmE1LCAwLCB7MHg3NCwweGZmLDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAgMSwgMHgxMmIzLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTJiNCwgMCwgezB4MTIsMHgwMywweGNiLDB4MTIsMHgxMiwweDZkLDB4N2EsMHhjMCwweDdiLDB4ODcsMHg3YywweDAxLDB4NzQsMHgwMX0gfSwKLXsgMTQsIDB4MTJjMiwgMCwgezB4MmEsMHhmZCwweGU0LDB4M2IsMHhmZSwweDhjLDB4MDcsMHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHg3NH0gfSwKLXsgMTQsIDB4MTJkMCwgMCwgezB4MDEsMHgxMiwweDE0LDB4YmYsMHgyZCwweGZhLDB4ZTQsMHgzZSwweGZiLDB4OGYsMHgwNCwweDhkLDB4ODIsMHg4ZX0gfSwKLXsgMTQsIDB4MTJkZSwgMCwgezB4ODMsMHg4ZiwweGYwLDB4NzQsMHgwNiwweDEyLDB4MTQsMHhiZiwweDc0LDB4MDEsMHgyYSwweGZkLDB4ZTQsMHgzYn0gfSwKLXsgMTQsIDB4MTJlYywgMCwgezB4ZmUsMHg4YywweDA3LDB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4ZTQsMHgxMiwweDE0LDB4YmYsMHg3NH0gfSwKLXsgMTQsIDB4MTJmYSwgMCwgezB4MDEsMHgyZCwweGZhLDB4ZTQsMHgzZSwweGZiLDB4OGYsMHgwNCwweDhkLDB4ODIsMHg4ZSwweDgzLDB4OGYsMHhmMH0gfSwKLXsgMTQsIDB4MTMwOCwgMCwgezB4NzQsMHgwYiwweDEyLDB4MTQsMHhiZiwweDc0LDB4MDEsMHgyYSwweGZkLDB4ZTQsMHgzYiwweGZlLDB4OGMsMHgwN30gfSwKLXsgMTQsIDB4MTMxNiwgMCwgezB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4NzQsMHgwOCwweDEyLDB4MTQsMHhiZiwweDc0LDB4MDEsMHgyZH0gfSwKLXsgMTQsIDB4MTMyNCwgMCwgezB4ZmEsMHhlNCwweDNlLDB4ZmIsMHg4ZiwweDA0LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg4ZiwweGYwLDB4NzQsMHgwMX0gfSwKLXsgMTQsIDB4MTMzMiwgMCwgezB4MTIsMHgxNCwweGJmLDB4MmEsMHhmZCwweGU0LDB4M2IsMHhmZSwweDhjLDB4MDcsMHg4YSwweDgyLDB4OGIsMHg4M30gfSwKLXsgMTQsIDB4MTM0MCwgMCwgezB4OGMsMHhmMCwweGU0LDB4MTIsMHgxNCwweGJmLDB4NzQsMHgwMSwweDJkLDB4ZmEsMHhlNCwweDNlLDB4ZmIsMHg4Zn0gfSwKLXsgMTQsIDB4MTM0ZSwgMCwgezB4MDQsMHg4ZCwweDgyLDB4OGUsMHg4MywweDhmLDB4ZjAsMHg3NCwweDAzLDB4MTIsMHgxNCwweGJmLDB4N2QsMHgwMH0gfSwKLXsgIDMsIDB4MTM1YywgMCwgezB4YmQsMHgwNiwweDAwfSB9LAoteyAgMiwgMHgxMzVmLCAwLCB7MHg1MCwweDEyfSB9LAoteyAxMSwgMHgxMzYxLCAwLCB7MHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHgwYSwweGJhLDB4MDAsMHgwMSwweDBifSB9LAoteyAgNywgMHgxMzZjLCAwLCB7MHhlNCwweDEyLDB4MTQsMHhiZiwweDBkLDB4ODAsMHhlOX0gfSwKLXsgMTMsIDB4MTM3MywgMCwgezB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4ZTUsMHg3NCwweDEyLDB4MTQsMHhiZiwweDc0LDB4Zjl9IH0sCi17IDE0LCAweDEzODAsIDAsIHsweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4NzR9IH0sCi17IDE0LCAweDEzOGUsIDAsIHsweGZlLDB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICA2LCAweDEzOWMsIDAsIHsweDEyLDB4MDMsMHhlMSwweDEyLDB4MDQsMHhmN30gfSwKLXsgIDEsIDB4MTNhMiwgMCwgezB4MjJ9IH0sCi17IDEzLCAweDEzYTMsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZmEsMHgyNCwweDAwLDB4ZmIsMHhlNCwweDM0LDB4MTksMHhmYywweDkwfSB9LAoteyAxNCwgMHgxM2IwLCAwLCB7MHg3ZCwweGMyLDB4ZTAsMHhmZCwweDhiLDB4ODIsMHg4YywweDgzLDB4ZjAsMHg3NSwweGYwLDB4MTEsMHhlYSwweGE0fSB9LAoteyAgMywgMHgxM2JlLCAwLCB7MHhmYSwweDdiLDB4MDB9IH0sCi17ICAzLCAweDEzYzEsIDAsIHsweGJiLDB4MTAsMHgwMH0gfSwKLXsgIDIsIDB4MTNjNCwgMCwgezB4NTAsMHgyNH0gfSwKLXsgMTQsIDB4MTNjNiwgMCwgezB4ZWEsMHgyNCwweDAwLDB4ZmMsMHhlNCwweDM0LDB4MTgsMHhmZCwweGViLDB4MmMsMHhmYywweGU0LDB4M2QsMHhmZH0gfSwKLXsgMTQsIDB4MTNkNCwgMCwgezB4NzQsMHgwNCwweDJiLDB4MjQsMHhjMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2QsMHhmNSwweDgzLDB4ZTAsMHhmZX0gfSwKLXsgIDgsIDB4MTNlMiwgMCwgezB4OGMsMHg4MiwweDhkLDB4ODMsMHhmMCwweDBiLDB4ODAsMHhkN30gfSwKLXsgMTQsIDB4MTNlYSwgMCwgezB4ZWEsMHgyNCwweDAwLDB4ZmEsMHhlNCwweDM0LDB4MTgsMHhmYiwweDc0LDB4MTAsMHgyYSwweGY1LDB4ODIsMHhlNH0gfSwKLXsgIDUsIDB4MTNmOCwgMCwgezB4M2IsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgIDEsIDB4MTNmZCwgMCwgezB4MjJ9IH0sCi17ICA0LCAweDEzZmUsIDAsIHsweGU1LDB4NzYsMHg2MCwweDAyfSB9LAoteyAgMiwgMHgxNDAyLCAwLCB7MHg4MCwweDE2fSB9LAoteyAxMiwgMHgxNDA0LCAwLCB7MHg3NCwweDBmLDB4NTUsMHg3NSwweGZhLDB4OGEsMHg3NSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTR9IH0sCi17IDEwLCAweDE0MTAsIDAsIHsweDM0LDB4MTksMHhmNSwweDgzLDB4ZTAsMHhmNSwweDc0LDB4MTIsMHgxMiwweGI0fSB9LAoteyAxMCwgMHgxNDFhLCAwLCB7MHgxMiwweDEwLDB4Y2EsMHg3NSwweDZlLDB4MDAsMHg3NSwweDZmLDB4MDAsMHgxMn0gfSwKLXsgIDYsIDB4MTQyNCwgMCwgezB4MTEsMHg0NCwweDc1LDB4NzAsMHhiOSwweDc1fSB9LAoteyAgNiwgMHgxNDJhLCAwLCB7MHg3MSwweDE0LDB4NzUsMHg3MiwweDAyLDB4MTJ9IH0sCi17IDExLCAweDE0MzAsIDAsIHsweDExLDB4NzUsMHhlNSwweDc2LDB4YjQsMHgwMiwweDA0LDB4NzQsMHgwMSwweDgwLDB4MDF9IH0sCi17ICAxLCAweDE0M2IsIDAsIHsweGU0fSB9LAoteyAgMywgMHgxNDNjLCAwLCB7MHhmYSwweDcwLDB4MGZ9IH0sCi17IDEyLCAweDE0M2YsIDAsIHsweDc0LDB4MDEsMHgyNSwweDc1LDB4ZjUsMHg3MywweGMwLDB4MDIsMHgxMiwweDExLDB4YTAsMHhkMH0gfSwKLXsgIDMsIDB4MTQ0YiwgMCwgezB4MDIsMHg4MCwweDBhfSB9LAoteyAxMCwgMHgxNDRlLCAwLCB7MHg4NSwweDc1LDB4NzMsMHhjMCwweDAyLDB4MTIsMHgxMSwweGEwLDB4ZDAsMHgwMn0gfSwKLXsgMTIsIDB4MTQ1OCwgMCwgezB4NzUsMHg2ZSwweDAwLDB4NzUsMHg2ZiwweDAxLDB4YzAsMHgwMiwweDEyLDB4MTEsMHg0NCwweGQwfSB9LAoteyAgNCwgMHgxNDY0LCAwLCB7MHgwMiwweGVhLDB4NzAsMHgxYX0gfSwKLXsgMTMsIDB4MTQ2OCwgMCwgezB4NzUsMHhmMCwweDExLDB4ZTUsMHg3NSwweGE0LDB4ZmEsMHgyNCwweDAwLDB4ZmEsMHhlNCwweDM0LDB4MTh9IH0sCi17ICA5LCAweDE0NzUsIDAsIHsweGZiLDB4OGEsMHg3MCwweDhiLDB4NzEsMHg3NSwweDcyLDB4MDEsMHgxMn0gfSwKLXsgIDQsIDB4MTQ3ZSwgMCwgezB4MTEsMHg3NSwweDgwLDB4MzZ9IH0sCi17ICAyLCAweDE0ODIsIDAsIHsweDdhLDB4MDB9IH0sCi17ICAzLCAweDE0ODQsIDAsIHsweGJhLDB4MTAsMHgwMH0gfSwKLXsgIDIsIDB4MTQ4NywgMCwgezB4NTAsMHgyZn0gfSwKLXsgMTMsIDB4MTQ4OSwgMCwgezB4ZWEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHgxOSwweGY1LDB4ODMsMHhlMCwweGZiLDB4ZTV9IH0sCi17ICA0LCAweDE0OTYsIDAsIHsweDc1LDB4YjUsMHgwMywweDFifSB9LAoteyAxNCwgMHgxNDlhLCAwLCB7MHg3NSwweGYwLDB4MTEsMHhlYSwweGE0LDB4ZmIsMHgyNCwweDAwLDB4ZmIsMHhlNCwweDM0LDB4MTgsMHhmYywweDhifSB9LAoteyAgOSwgMHgxNGE4LCAwLCB7MHg3MCwweDhjLDB4NzEsMHg3NSwweDcyLDB4MDEsMHhjMCwweDAyLDB4MTJ9IH0sCi17ICA0LCAweDE0YjEsIDAsIHsweDExLDB4NzUsMHhkMCwweDAyfSB9LAoteyAgMywgMHgxNGI1LCAwLCB7MHgwYSwweDgwLDB4Y2N9IH0sCi17ICAxLCAweDE0YjgsIDAsIHsweDIyfSB9LAoteyAgNiwgMHgxNGI5LCAwLCB7MHg1MCwweDcyLDB4NmYsMHg2NywweDIwLDB4MDB9IH0sCi17IDE0LCAweDE0YmYsIDAsIHsweGM4LDB4YzAsMHhlMCwweGM4LDB4YzAsMHhlMCwweGU1LDB4ZjAsMHg2MCwweDBiLDB4MTQsMHg2MCwweDBmLDB4MTR9IH0sCi17ICA3LCAweDE0Y2QsIDAsIHsweDYwLDB4MTEsMHgxNCwweDYwLDB4MTIsMHg4MCwweDE1fSB9LAoteyAgNywgMHgxNGQ0LCAwLCB7MHhkMCwweGUwLDB4YTgsMHg4MiwweGY2LDB4ODAsMHgwZX0gfSwKLXsgIDUsIDB4MTRkYiwgMCwgezB4ZDAsMHhlMCwweGYwLDB4ODAsMHgwOX0gfSwKLXsgIDQsIDB4MTRlMCwgMCwgezB4ZDAsMHhlMCwweDgwLDB4MDV9IH0sCi17ICA1LCAweDE0ZTQsIDAsIHsweGQwLDB4ZTAsMHhhOCwweDgyLDB4ZjJ9IH0sCi17ICA0LCAweDE0ZTksIDAsIHsweGM4LDB4ZDAsMHhlMCwweGM4fSB9LAoteyAgMSwgMHgxNGVkLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTRlZSwgMCwgezB4YzgsMHhjMCwweGUwLDB4ZTUsMHhmMCwweDYwLDB4MGQsMHgxNCwweDYwLDB4MGYsMHgxNCwweDYwLDB4MGYsMHgxNH0gfSwKLXsgIDYsIDB4MTRmYywgMCwgezB4NjAsMHgxMCwweDc0LDB4ZmYsMHg4MCwweDBmfSB9LAoteyAgNSwgMHgxNTAyLCAwLCB7MHhhOCwweDgyLDB4ZTYsMHg4MCwweDBhfSB9LAoteyAgMywgMHgxNTA3LCAwLCB7MHhlMCwweDgwLDB4MDd9IH0sCi17ICA0LCAweDE1MGEsIDAsIHsweGU0LDB4OTMsMHg4MCwweDAzfSB9LAoteyAgMywgMHgxNTBlLCAwLCB7MHhhOCwweDgyLDB4ZTJ9IH0sCi17ICA0LCAweDE1MTEsIDAsIHsweGY4LDB4ZDAsMHhlMCwweGM4fSB9LAoteyAgMSwgMHgxNTE1LCAwLCB7MHgyMn0gfSwKLXsgIDAsIDB4MDAwMCwgMSwgezB9IH0KLQotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYml0c3RyZWFtW10gPSB7Ci0KLTB4MDAsMHgwOSwweDBGLDB4RjAsMHgwRiwweEYwLDB4MEYsMHhGMCwgMHgwRiwweEYwLDB4MDAsMHgwMCwweDAxLDB4NjEsMHgwMCwweDBELAotMHg2NCwweDYxLDB4NjIsMHg3NSwweDczLDB4NjIsMHg3NCwweDcyLCAweDJFLDB4NkUsMHg2MywweDY0LDB4MDAsMHg2MiwweDAwLDB4MEIsCi0weDczLDB4MzEsMHgzMCwweDc4LDB4NkMsMHg3NiwweDcxLDB4MzEsIDB4MzAsMHgzMCwweDAwLDB4NjMsMHgwMCwweDBCLDB4MzEsMHgzOSwKLTB4MzksMHgzOSwweDJGLDB4MzAsMHgzOSwweDJGLDB4MzIsMHgzNCwgMHgwMCwweDY0LDB4MDAsMHgwOSwweDMxLDB4MzAsMHgzQSwweDM0LAotMHgzMiwweDNBLDB4MzQsMHgzNiwweDAwLDB4NjUsMHgwMCwweDAwLCAweDJFLDB4QzAsMHhGRiwweDIwLDB4MTcsMHg1RiwweDlGLDB4NUIsCi0weEZFLDB4RkIsMHhCQiwweEI3LDB4QkIsMHhCQiwweEZCLDB4QkYsIDB4QUYsMHhFRiwweEZCLDB4REYsMHhCNywweEZCLDB4RkIsMHg3RiwKLTB4QkYsMHhCNywweEVGLDB4RjIsMHhGRiwweEZCLDB4RkUsMHhGRiwgMHhGRiwweEVGLDB4RkYsMHhGRSwweEZGLDB4QkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4QUYsMHhGRiwweEZBLDB4RkYsMHhGRiwweEZGLCAweEM5LDB4RkYsMHhGRiwweEZGLDB4REYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweEEzLDB4RkYsMHhGQiwKLTB4RkUsMHhGRiwweEJGLDB4RUYsMHhFMywweEZFLDB4RkYsMHhCRiwgMHhFMywweEZFLDB4RkYsMHhCRiwweDZGLDB4RkIsMHhGNiwweEZGLAotMHhCRiwweEZGLDB4NDcsMHhGRiwweEZGLDB4OUYsMHhFRSwweEY5LCAweEZFLDB4Q0YsMHg5RiwweEVGLDB4RkIsMHhDRiwweDlCLDB4RUUsCi0weEY4LDB4RkUsMHhFRiwweDhGLDB4RUUsMHhGQiwweEZFLDB4MEIsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwgMHhCRiwweEZGLDB4RkYsMHhGQywweDE3LDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwweDdGLCAweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsCi0weEZDLDB4M0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4NUYsMHhGRiwgMHhGRiwweEZELDB4RkYsMHhGRiwweERCLDB4RkYsMHhGRCwweEZGLAotMHg3NywweEZGLDB4RkQsMHhGRiwweEZGLDB4REYsMHhGRSwweEZELCAweEZGLDB4RkYsMHhGMiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFMSwKLTB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4M0YsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEUzLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsCi0weEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHg2NywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4N0YsMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4REYsMHhGRiwweEZGLDB4RkYsMHgyRiwweEZGLAotMHhGMywweEZELDB4RkYsMHg3RiwweERFLDB4RjcsMHhGRCwweEZGLCAweDdGLDB4RjcsMHg3RCwweEZGLDB4N0YsMHhERiwweEY3LDB4QkQsCi0weEZGLDB4N0YsMHhGRiwweDFGLDB4RkYsMHhFRiwweEZCLDB4RkUsIDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RUYsMHhGQiwKLTB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRiwgMHgzRiwweEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLAotMHg5RiwweEU3LDB4RkEsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLCAweDdGLDB4OUYsMHhFNywweEZGLDB4RkMsMHg3RiwweEJGLDB4QkYsCi0weEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4QjcsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwKLTB4RkYsMHhFMCwweEZELDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywgMHhGOSwweEZFLDB4N0YsMHg5RCwweEY5LDB4RkUsMHg3RCwweDlELAotMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLDB4RUQsMHhFRCwweEZGLCAweEZELDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsCi0weERGLDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsIDB4N0YsMHhERiwweEZGLDB4OUIsMHhGRiwweEVGLDB4RkIsMHhGRSwKLTB4RkIsMHhCRiwweEVGLDB4QkIsMHhGRSwweEZGLDB4QUYsMHhCQiwgMHhCRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZGLAotMHhCNywweEJGLDB4REIsMHhGNiwweEJELDB4QkYsMHg2QiwweERCLCAweEY2LDB4RjksMHhCRiwweDVCLDB4RDYsMHhGOSwweEJGLDB4NkYsCi0weERCLDB4RjYsMHhGRCwweEJGLDB4RkYsMHgwRSwweEZGLDB4RkYsIDB4RkYsMHhGRiwweDVGLDB4RkYsMHhGNywweEZGLDB4RkYsMHg3RiwKLTB4RjcsMHhCRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweERGLDB4OUYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLAotMHhGRiwweEVGLDB4RkUsMHhGRSwweEZGLDB4RkYsMHg3NywweEZGLCAweEZCLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY4LDB4M0YsCi0weEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RjQsMHg3RiwweEZGLDB4RkUsMHhGRCwgMHhCRSwweEZGLDB4REYsMHhGRSwweEZGLDB4RkYsMHhFRiwweDdGLAotMHhGRiwweENGLDB4RkYsMHhDRiwweEZGLDB4RkYsMHhGRiwweERGLCAweEU2LDB4RkYsMHhGRiwweDdGLDB4REYsMHhGNywweERELDB4N0YsCi0weDdGLDB4REYsMHhGNywweEZGLDB4N0YsMHhERiwweEQ3LDB4RkQsIDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRiwweENELDB4RkYsMHhGMiwKLTB4RkYsMHhGRiwweDRGLDB4N0YsMHhGNCwweEZGLDB4RkYsMHhGRiwgMHhFNywweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4QkIsMHhGRiwweEVGLDB4RkYsMHhGRSwweEZGLCAweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhFRiwweEZGLDB4RkIsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4NjUsIDB4RUYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZELDB4RUYsMHhGRiwKLTB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRSwweENGLDB4REYsMHhGRSwweEZGLAotMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGMywweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZFLDB4REYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4QkYsMHhGRiwgMHhGRiwweEZGLDB4RTMsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RUYsMHhFQiwweEZGLDB4RkUsMHhCRiwweEZGLCAweEVCLDB4RkYsMHhGQywweDdGLDB4RkYsMHhGRiwweEZGLDB4RUUsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweERELDB4RkYsIDB4RDYsMHhGRiwweEZELDB4QkYsMHhGRiwweEZCLDB4RkYsMHhGRSwKLTB4RkQsMHhGRiwweEZGLDB4RkQsMHhFRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhERSwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4QkYsMHhGRiwweEZELDB4RkYsMHg3RiwweEJGLCAweEZGLDB4NUYsMHhERiwweEZGLDB4RkYsMHhCRiwweDc3LDB4RkYsCi0weEZGLDB4RkYsMHg3RiwweEQ3LDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhDMywweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsMHhFRiwKLTB4RkYsMHhGRiwweEZFLDB4RkIsMHhGRiwweEZGLDB4REYsMHhCRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEVELDB4RkYsMHhCNywweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEFGLDB4N0YsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhERiwweEJGLDB4REYsMHhGMywweEZELDB4RkIsMHhGRiwweDVCLAotMHhGRCwweEZGLDB4QkYsMHhFRiwweEY3LDB4RkYsMHhGRiwweDdELCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjgsMHgzQiwweEZGLDB4QkYsCi0weDZGLDB4RkYsMHhGRSwweEZGLDB4QkYsMHhGRiwweEVCLDB4N0QsIDB4RkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGMiwweDdGLDB4RkMsMHhGRiwweDNGLDB4REYsMHhFRCwgMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHg1RiwweEY3LAotMHhCNSwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhFMCwweDNGLCAweDlGLDB4OUUsMHhGRiwweEZGLDB4RUYsMHhGRiwweERGLDB4RkYsCi0weEJGLDB4NUYsMHhCRiwweENGLDB4RjMsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4NjksMHhBRiwweDMzLDB4RkQsMHhGRiwKLTB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZDLDB4RkYsMHg3RiwgMHhEOSwweEZGLDB4REYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY1LAotMHhBMywweERGLDB4NkUsMHhERSwweEZGLDB4RkYsMHhCRCwweEZGLCAweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRSwweEU3LDB4RkQsCi0weEZGLDB4RkYsMHhGRiwweEY5LDB4RUYsMHhDNiwweEZFLDB4QjcsIDB4QUQsMHhFNSwweEY5LDB4RkYsMHhGRiwweEZGLDB4Q0YsMHhGRiwKLTB4RkYsMHhGRiwweENELDB4RkIsMHg3RiwweEZGLDB4RkYsMHhGRiwgMHhGOSwweEY2LDB4MEYsMHhERiwweEVDLDB4Q0YsMHg3RiwweEZGLAotMHhGQiwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZFLCAweEY5LDB4RkQsMHg3RiwweEZGLDB4N0YsMHhGRiwweEY5LDB4NUIsCi0weEZGLDB4NzMsMHhEQywweEZELDB4N0IsMHhERiwweEZGLDB4RkYsIDB4RkYsMHg3QiwweEZGLDB4RkYsMHhGNywweDUzLDB4RDYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RDgsMHg5RiwweEZFLDB4RkYsMHhFRiwgMHg3RiwweEVFLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhFRCwweEVELAotMHhGRCwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkIsMHg3RiwweEZGLCAweEUyLDB4N0YsMHhGRiwweDZGLDB4RDgsMHg1NywweEY3LDB4RkYsCi0weEZGLDB4RkYsMHhERiwweEZGLDB4RTgsMHhGRiwweEZGLDB4RkQsIDB4RkYsMHhGRiwweEZDLDB4N0YsMHhGRiwweEU0LDB4RkYsMHhGQiwKLTB4RUYsMHhGQiwweEZFLDB4REYsMHhCNywweEVELDB4RkYsMHhGRSwgMHhERiwweDdGLDB4RkYsMHhGRSwweDdGLDB4QjcsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4ODksMHhGRiwweEZGLDB4Q0YsMHhGMywweEZFLCAweDdGLDB4RkYsMHhFRiwweEZGLDB4RkUsMHg3RSwweDdGLDB4RkIsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjEsIDB4RkYsMHhFQiwweDdBLDB4RDUsMHhCRiwweDZGLDB4REIsMHhCRSwKLTB4RkQsMHhCNywweEQ4LDB4RjYsMHhFNSwweEJGLDB4NkYsMHhGQiwgMHhGRSwweEY1LDB4QkQsMHg3RSwweDA2LDB4RkYsMHhERiwweEY3LAotMHhGQiwweEY2LDB4RkYsMHgzRiwweEZGLDB4REIsMHhGRiwweEZGLCAweDZGLDB4RkIsMHhGNywweEZGLDB4RkYsMHhGRiwweEZCLDB4RkUsCi0weEY3LDB4QUYsMHhGRiwweEI3LDB4RUQsMHhFRiwweEY3LDB4RkUsIDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRSwweEZGLDB4RUYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4QkYsMHhGNywweEZDLDB4MUYsMHhFRSwgMHhGQiwweEZFLDB4QkQsMHhGRiwweDdGLDB4NUYsMHhENywweEZELAotMHhGQiwweDQzLDB4RkYsMHhGRiwweEZELDB4RkYsMHg1RiwweEZGLCAweEY3LDB4RkYsMHhGOSwweDNGLDB4RkYsMHhDRiwweEYzLDB4RkQsCi0weEY3LDB4N0UsMHhFRiwweEE3LDB4RjksMHhGRSwweDhGLDB4QTcsIDB4RTksMHhGMywweDdFLDB4OUYsMHhGQiwweEY4LDB4RkYsMHhGRiwKLTB4M0YsMHhGRCwweDdGLDB4NUYsMHhERiwweEZELDB4RkYsMHhGRiwgMHg1RiwweEZGLDB4RkQsMHg1RiwweEZGLDB4RkYsMHg3RiwweEZELAotMHg3RiwweEZELDB4OUYsMHhGRiwweEUwLDB4RkYsMHhGQSwweEY4LCAweEJFLDB4NkYsMHg5RiwweEU2LDB4RjgsMHhCRSwweDNGLDB4OUEsCi0weEY5LDB4QkUsMHg2RiwweDlGLDB4RTIsMHhGOSwweEZFLDB4NkYsIDB4OUYsMHhGOSwweEZGLDB4RjUsMHhGRCwweDdGLDB4Q0YsMHhERiwKLTB4RkQsMHhGRCwweDdGLDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRiwgMHhGNywweEY1LDB4RkQsMHgwRiwweERCLDB4RkYsMHhEMywweEZGLAotMHhFQiwweEZBLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGQSwweEZGLCAweEZGLDB4Q0IsMHhGQiwweEZFLDB4RkYsMHhGRiwweEVCLDB4RkEsCi0weEZFLDB4RkYsMHhGRiwweEI3LDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4QkYsMHhGRiwweERGLDB4RjUsMHhGRiwweEZGLDB4RDcsMHhGRiwKLTB4RkYsMHhGRiwweERGLDB4RDcsMHhGNSwweEZGLDB4N0YsMHhGRSwgMHg0RiwweEZGLDB4RkQsMHhGRiwweDdGLDB4N0YsMHhGRiwweEFELAotMHhFQiwweEZCLDB4RkYsMHhBRCwweEZGLDB4RkYsMHhGRiwweEZGLCAweEFGLDB4RUIsMHhGQiwweEZGLDB4RkMsMHgwRCwweEZGLDB4RkYsCi0weERGLDB4RDIsMHhGRCwweEZGLDB4RkYsMHhGRCwweEY2LDB4RkYsIDB4RkYsMHg3RiwweEZGLDB4RkYsMHgxRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGQiwweDNGLDB4N0QsMHhFQiwweDMyLDB4RkUsMHhCRiwgMHgyRiwweEVCLDB4RkEsMHhBRSwweEJELDB4RTAsMHhGQSwweDdFLAotMHhCRiwweEFELDB4RUIsMHhGQSwweEZFLDB4QkYsMHhGNSwweDdGLCAweEZGLDB4REUsMHhGRSwweEUzLDB4RkIsMHhGRiwweEZGLDB4RkYsCi0weERGLDB4RUYsMHg0RiwweERGLDB4RkYsMHg3RiwweERGLDB4RkYsIDB4RjcsMHhGRiwweEZGLDB4RjgsMHg3RiwweEZGLDB4RkYsMHhFRiwKLTB4RkIsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhERiwgMHhFRCwweEZCLDB4REYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLAotMHg4MSwweEZGLDB4RkYsMHhGRiwweEZGLDB4M0YsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRSwweERELDB4RkUsMHhFRiwweEZELDB4RkYsCi0weEZGLDB4RkIsMHhGRSwweEY3LDB4RkYsMHg5MywweEZELDB4RkIsIDB4N0UsMHhGRiwweEZFLDB4ODcsMHhFOSwweEZGLDB4N0YsMHhCMywKLTB4OUYsMHhGRSwweEZFLDB4RkYsMHhBRiwweEZELDB4RkUsMHg3RSwgMHgzRiwweEZFLDB4NjcsMHhGRiwweEZGLDB4RjcsMHhGRiwweEZGLAotMHhGQywweEY3LDB4REYsMHhGRCwweEZGLDB4N0YsMHhGRiwweEZGLCAweDdGLDB4NkQsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4MkYsCi0weEZGLDB4QkYsMHhGRiwweEZGLDB4RUUsMHhGRiwweEJFLDB4RkYsIDB4RkYsMHhGRSwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkUsMHhGRiwKLTB4RUYsMHhGRiwweEZGLDB4RkEsMHg1RiwweEZGLDB4RkYsMHhGQiwgMHhGRiwweEZGLDB4RUYsMHhGRiwweEZCLDB4RkUsMHhGRCwweEZGLAotMHhGRSwweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLCAweEZFLDB4QkYsMHhERiwweEZGLDB4RkIsMHhGRiwweEZGLDB4RjcsCi0weEZDLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4N0YsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEYyLDB4N0YsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGMywweEZGLDB4RkYsMHhGRiwweEVGLDB4RkIsMHhGRiwweEZGLAotMHhGRiwweERGLDB4RTIsMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhFNywweEZGLDB4RkQsCi0weEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLDB4RUQsIDB4RUYsMHhGRCwweEZGLDB4RkYsMHhERiwweEQ3LDB4RjUsMHhGRCwKLTB4N0YsMHg1RCwweEZELDB4RkYsMHg3RiwweERGLDB4OTcsMHhGNCwgMHhGRCwweDdCLDB4NUYsMHhGRiwweEM5LDB4RkYsMHhGQiwweEZFLAotMHhGRiwweEJGLDB4RkYsMHg1RiwweEZGLDB4RkYsMHhGNywweEZGLCAweEVGLDB4RkQsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RjcsMHhGRiwweEQ3LDB4RkQsMHg3RCwweDdGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RUYsMHhERiwweEY3LDB4RkQsMHhGRiwKLTB4QkIsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZFLDB4RTMsMHhGRiwgMHhGOSwweEZFLDB4N0YsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLAotMHhCRiwweEY5LDB4RkUsMHhGRiwweDlGLDB4RUYsMHhGOSwweEZFLCAweEZGLDB4QkYsMHhGMywweERBLDB4RkYsMHgzNywweENELDB4RjMsCi0weDdDLDB4REYsMHgzNywweENELDB4RjMsMHg3RiwweDM3LDB4Q0QsIDB4RjMsMHg3QywweERGLDB4MzcsMHhDQywweEYzLDB4N0YsMHg1QSwKLTB4QkQsMHhGNiwweEZELDB4QkYsMHg2RiwweERCLDB4RjYsMHhGRCwgMHhCRiwweDZGLDB4REUsMHhGRCwweEJGLDB4NkYsMHhEQiwweEY2LAotMHhGRCwweEJGLDB4NkYsMHhGRSwweEYxLDB4NkYsMHhFQiwweDdBLCAweERFLDB4QjcsMHhBRCwweEVCLDB4N0EsMHhERSwweEI3LDB4QUYsCi0weDdBLDB4REUsMHhCNywweEFELDB4RUIsMHg3QSwweERFLDB4QjcsIDB4RkYsMHg3RSwweEZGLDB4RkUsMHhDRCwweEIzLDB4NkMsMHhEQiwKLTB4MzYsMHhDRCwweEIzLDB4NkMsMHhERSwweENELDB4QjMsMHg2QywgMHhEQiwweDM2LDB4Q0QsMHhCMywweDZDLDB4REYsMHhDOSwweEJGLAotMHhGNywweEJELDB4RUYsMHg3QSwweDlFLDB4QTcsMHhBOSwweEVBLCAweDdBLDB4QjcsMHhCRCwweEVBLDB4N0IsMHhERSwweEE3LDB4QkQsCi0weENBLDB4NzIsMHg4RCwweDkxLDB4RkYsMHhFRiwweEZCLDB4RkUsIDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEY3LDB4RUYsMHhGQiwKLTB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRSwgMHg4NywweEZGLDB4RjYsMHhGRCwweEJGLDB4NkYsMHhEQiwweEY2LAotMHhGRCwweEJGLDB4NkYsMHhGNiwweEZELDB4QkYsMHg2RiwweERCLCAweEY2LDB4RkQsMHhCRiwweDZGLDB4RkUsMHg0RiwweEZGLDB4QkYsCi0weEVGLDB4QkIsMHhFRSwweEZCLDB4QkUsMHhFRiwweEJCLDB4RUYsIDB4QkUsMHhFRiwweEJCLDB4RUUsMHhGQiwweEJFLDB4RUYsMHhCQiwKLTB4RUYsMHhGQywweDVGLDB4RkYsMHhGRiwweEZGLDB4M0YsMHhDRiwgMHhGMywweEZDLDB4RkYsMHgzRiwweENGLDB4RkMsMHhGRiwweDNGLAotMHhDRiwweEYzLDB4RkMsMHhGRiwweDNGLDB4Q0YsMHhGRCwweDlGLCAweEZFLDB4QkYsMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLDB4QUYsCi0weEVCLDB4RkUsMHhCRiwweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsIDB4QUYsMHhFQiwweEZGLDB4RTEsMHg2RiwweEZELDB4RkYsMHg3RiwKLTB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RkQsMHhGRiwgMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEZGLAotMHg3QSwweEJGLDB4RkIsMHhGRSwweERGLDB4QjcsMHhFRCwweEZCLCAweDdFLDB4REYsMHhCNywweEZCLDB4N0UsMHhERiwweEI3LDB4RUQsCi0weEZCLDB4N0UsMHhERiwweEI3LDB4RkYsMHhDOSwweEZGLDB4RkYsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRSwgMHhGQiwweEZFLDB4QkIsMHhGRiwweEZFLDB4RkYsMHhCRiwweEVGLAotMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkUsMHhGRiwweEJGLCAweEVGLDB4RkIsMHhGRSwweEZGLDB4M0YsMHhDRiwweEZGLDB4RTcsCi0weEZFLDB4RkYsMHhGNSwweEZELDB4NzcsMHg1RCwweEQ3LDB4MzUsIDB4REQsMHg3NywweEQ3LDB4RjUsMHhDRCwweDdCLDB4NUQsMHhENywKLTB4RjUsMHhERCwweDc3LDB4RkUsMHgyNywweEZGLDB4RkYsMHg4QiwgMHhFMiwweEY4LDB4QkUsMHgyRiwweDhCLDB4RTIsMHhGOSwweEFGLAotMHg4QiwweEUyLDB4RjgsMHhCRSwweDJGLDB4OEIsMHhFMiwweEY5LCAweEZFLDB4MUYsMHhGRiwweDVGLDB4RDcsMHhGNSwweEZELDB4N0YsCi0weDVGLDB4RDcsMHhGNSwweEZGLDB4NUYsMHhENywweEY1LDB4RkQsIDB4N0YsMHg1RiwweEQ3LDB4RjUsMHhGRiwweEZBLDB4M0YsMHhGRSwKLTB4QkYsMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLDB4QUYsMHhFQiwgMHhFQywweEJGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwweEFGLAotMHhFQiwweEZGLDB4RkUsMHg3RiwweEZELDB4N0YsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTYsIDB4RkYsMHhGQSwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwKLTB4RjcsMHhGQywweEZGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwgMHhERiwweEY3LDB4RkQsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4MDIsMHhGRiwweEZFLDB4QkYsMHhBQiwweEVCLDB4RkEsIDB4QkUsMHhCRiwweDIzLDB4RUIsMHhERSwweDFGLDB4QUYsMHhFQSwKLTB4RkEsMHhGRSwweEFGLDB4QUYsMHhFQiwweEZELDB4OTcsMHhGRiwgMHhGMywweEZDLDB4N0IsMHgxRiwweENGLDB4RjEsMHhGQywweDdGLAotMHgxRiwweEYxLDB4RkMsMHg3NywweDFGLDB4Q0QsMHhGMSwweEZDLCAweEZGLDB4MUYsMHhGRSwweDg3LDB4RkYsMHhBRiwweEVGLDB4RkEsCi0weEZFLDB4RkYsMHhBRiwweEVGLDB4RkEsMHhGRCwweEJGLDB4MkIsIDB4RkIsMHg3RSwweEJGLDB4QkYsMHhFQiwweEZCLDB4RkIsMHhGQiwKLTB4REYsMHhGRiwweEZCLDB4RjcsMHhGRiwweEZGLDB4N0YsMHhGNywgMHhGNywweEZGLDB4RkQsMHhERiwweEZFLDB4RkMsMHhERiwweEZGLAotMHhERiwweEZGLDB4RkQsMHhGRiwweERBLDB4QkYsMHhGRiwweEJCLCAweEVGLDB4RkIsMHhGOSwweEZGLDB4QkUsMHhFRiwweEZCLDB4RkIsCi0weEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsIDB4RkYsMHhGNywweDdGLDB4RkQsMHhENywweEZGLDB4RkYsMHg3RiwKLTB4RkYsMHhGRiwweEZGLDB4RkUsMHhGNywweEZGLDB4RkUsMHhGRiwgMHhGNywweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhFQywweEZGLAotMHhGRiwweEZFLDB4REYsMHhCRiwweEZGLDB4RkIsMHhGRSwweEZGLCAweEJCLDB4NjgsMHhBRSwweDFGLDB4QUUsMHhGQiwweEZCLDB4RkYsCi0weEZGLDB4QkYsMHhGRiwweEQ1LDB4RkYsMHg3RiwweEZGLDB4RkYsIDB4RjcsMHhGRSwweEZFLDB4RkYsMHhCRiwweEVGLDB4OUYsMHhGRCwKLTB4N0YsMHhGRiwweENCLDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRiwgMHhCQiwweEY3LDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLAotMHhGRiwweEJGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhERSwweDNGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhBNywweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhFRiwweEZGLDB4N0YsMHhGQiwweEZELDB4RkIsIDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweENGLDB4RjMsMHg3QywKLTB4RkYsMHg3RiwweDhELDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGQiwweEZGLDB4RjcsMHhGQiwweEZFLDB4RkQsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhGRCwweDFGLCAweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwweERGLDB4RkYsCi0weEZGLDB4RkUsMHg1QywweEZGLDB4NkQsMHhGRiwweDdGLDB4QUIsIDB4RTcsMHhGMSwweEZGLDB4RkQsMHg5RiwweEZGLDB4RkYsMHhBRCwKLTB4RUIsMHg3QSwweDNGLDB4MUYsMHhGRiwweEZGLDB4RkUsMHhCRiwgMHhBRiwweEYzLDB4REUsMHhGNSwweEZGLDB4OEYsMHhGQiwweERGLAotMHhFNiwweDdGLDB4RkYsMHhERiwweEYzLDB4RkQsMHhGRiwweDdFLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEY3LDB4RjMsCi0weDdGLDB4REYsMHhGNywweEVGLDB4RkYsMHhGNiwweDNGLDB4OUYsIDB4REYsMHhGRiwweEZGLDB4RUUsMHhGRiwweEZGLDB4RUYsMHhGQiwKLTB4RkYsMHhGRiwweEY5LDB4RkIsMHhGRSwweDRGLDB4QkYsMHhFRiwgMHhCQiwweEZGLDB4NjksMHhBRiwweEFGLDB4RkMsMHhGRiwweDNGLAotMHhERCwweEZGLDB4RkMsMHhCRiwweDhGLDB4RkYsMHhGRCwweEYzLCAweEJGLDB4RUQsMHg5RSwweEZDLDB4QkYsMHg2RiwweEY1LDB4RDMsCi0weERGLDB4RkYsMHhEQiwweEQ2LDB4RjUsMHhFRiwweEZELDB4RkUsIDB4RkYsMHhCOSwweEZGLDB4MUYsMHhEMiwweEE5LDB4QUYsMHhGRiwKLTB4REIsMHhGNywweEJGLDB4RUYsMHg0NiwweEZGLDB4RkYsMHhBRCwgMHhFQiwweDdBLDB4REYsMHhFRiwweEY3LDB4RkYsMHg3RiwweEY3LAotMHg5RiwweEVELDB4RkYsMHg3RiwweEZGLDB4QUQsMHhFQiwweDdGLCAweEY1LDB4NkYsMHhGRiwweEZELDB4RkIsMHhENiwweEY0LDB4RjcsCi0weEZCLDB4RjksMHg3RSwweDdGLDB4RkYsMHg1RiwweEMyLDB4RkUsIDB4QkYsMHhGRCwweEZCLDB4MzMsMHhERiwweEY5LDB4NUIsMHhGRiwKLTB4RkYsMHhERCwweDY3LDB4N0QsMHhDRiwweEVGLDB4REIsMHhFQywgMHhGRiwweDc3LDB4REQsMHhGNywweEZELDB4RkYsMHhGRiwweERFLAotMHhBNywweEJGLDB4RDQsMHg5RiwweEZGLDB4RkYsMHhCRiwweEVGLCAweEZFLDB4RkYsMHhERiwweEVGLDB4QkIsMHhGRiwweEZGLDB4RUYsCi0weEVCLDB4RkEsMHhGRiwweEVGLDB4QkQsMHhGQiwweEZGLDB4RTIsIDB4N0YsMHhGRiwweERGLDB4REYsMHhGNywweEZELDB4QkYsMHhCQiwKLTB4NzMsMHhGNywweEZELDB4N0YsMHhERiwweERFLDB4RjcsMHhCRiwgMHhFQSwweERCLDB4RjYsMHhGRiwweEQ2LDB4RkYsMHhGRiwweDY2LAotMHhGRiwweEJFLDB4RkYsMHhCRiwweDZCLDB4RDksMHhGNiwweERGLCAweEZGLDB4RkIsMHg3RSwweDdGLDB4QjcsMHg3RSwweEZGLDB4RkUsCi0weEZGLDB4Q0QsMHhGRiwweEZFLDB4N0YsMHhGRiwweEZDLDB4RkQsIDB4M0YsMHhGQiwweEZCLDB4RjcsMHhGRiwweEZGLDB4RkIsMHhGNiwKLTB4N0QsMHhGRSwweDdGLDB4RkYsMHhGQywweEZGLDB4QjksMHhGRiwgMHhGOSwweEZBLDB4RkUsMHhCRiwweEFGLDB4NUIsMHhENiwweEVELAotMHhBRCwweDdCLDB4RjYsMHhGOSwweEJGLDB4RUYsMHhGOCwweEZBLCAweEZFLDB4QkYsMHhGRSwweEU2LDB4RkYsMHhGRiwweEY3LDB4RkQsCi0weEZGLDB4N0YsMHhCRiwweEVGLDB4RjMsMHhGRiwweEZGLDB4NkYsIDB4RjcsMHhGRSwweEZGLDB4RkYsMHhGNywweEZELDB4RkUsMHhGNywKLTB4RUYsMHhGRiwweEZCLDB4RUYsMHhGQiwweDdFLDB4REUsMHhGRSwgMHhGRiwweEJGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGQiwweEZGLAotMHhGRiwweEVGLDB4RkIsMHg2RiwweEZDLDB4MUYsMHhGRSwweEU3LCAweEZGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhEMywweEI0LDB4QkIsCi0weEZGLDB4RkYsMHhGRCwweEJGLDB4NkYsMHhFMywweEZFLDB4RkYsIDB4QkYsMHhGQywweEJGLDB4RjcsMHhDRiwweEY3LDB4RkQsMHhGRiwKLTB4MkYsMHhERiwweEFCLDB4RUEsMHhGRiwweERGLDB4RTcsMHhFQSwgMHg5QSwweEFGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGNSwweDNGLAotMHhGRCwweDdFLDB4RkYsMHhENywweEY1LDB4RkIsMHhGRiwweEZELCAweEY3LDB4RkYsMHg3RiwweEZFLDB4RjcsMHhGRCwweEZGLDB4RDcsCi0weEZGLDB4RDcsMHg3RiwweEVFLDB4N0YsMHhGQSwweDc5LDB4RkUsIDB4MkYsMHg4QiwweEU2LDB4RjksMHhGRSwweDNGLDB4OUUsMHhGOSwKLTB4QkUsMHgyRiwweDBCLDB4RTcsMHhGOSwweEZFLDB4MkYsMHg5RiwgMHhGRCwweEZGLDB4RkUsMHg3RCwweDdGLDB4NUYsMHhENywweEZGLAotMHhGRiwweDdGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHg1RiwweDk3LCAweEZGLDB4RkQsMHg3RiwweDVGLDB4RkYsMHhFMywweEZGLDB4RkYsCi0weEZBLDB4RkUsMHhCRiwweEFGLDB4RkIsMHhGQiwweEZGLDB4RkYsIDB4Q0YsMHhFQiwweEZFLDB4QkYsMHhBRiwweEZGLDB4RkEsMHhGRSwKLTB4QkYsMHhGRiwweDg3LDB4RkYsMHhGRiwweEY1LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkQsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLAotMHhGQiwweEZGLDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRSwweDBGLCAweEZGLDB4RkQsMHhFQiwweEZGLDB4RkYsMHhGNywweEZGLDB4RUYsCi0weDdCLDB4REYsMHhGRSwweEZGLDB4RkYsMHhERiwweEY3LDB4RkQsIDB4RUIsMHg3RiwweERGLDB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRCwweEJGLDB4RkYsMHg3RSwweEZBLDB4QkYsMHhDNywgMHhEQiwweEY3LDB4QkQsMHgzRiwweEZCLDB4RkYsMHhGNiwweEZGLAotMHhGQSwweEFGLDB4RkYsMHhFQiwweEZBLDB4RkUsMHgzRiwweDJGLCAweEVBLDB4RkEsMHgzRSwweEFELDB4QzksMHhCQSwweEY2LDB4QUQsCi0weEFGLDB4RUIsMHhGQSwweEY2LDB4QkYsMHhGRSwweDdGLDB4RkYsIDB4RkYsMHhGRCwweEZGLDB4RjEsMHg3RiwweDNGLDB4Q0YsMHhGMSwKLTB4RUYsMHhGRiwweDdGLDB4RkYsMHhCQywweERGLDB4REYsMHhGNywgMHhERCwweEZGLDB4RTAsMHg3RiwweEZGLDB4RkYsMHhGRSwweEZGLAotMHhGQSwweEVDLDB4QkIsMHg3RiwweDVGLDB4RkYsMHhGQiwweEVDLCAweEZGLDB4RUYsMHhCNywweEZGLDB4RjcsMHhGRiwweEZGLDB4QjUsCi0weEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwweEVFLDB4REYsIDB4NUYsMHhERiwweERFLDB4RkYsMHhBRSwweEU3LDB4NzcsMHhGRiwKLTB4RkYsMHhERiwweEY3LDB4RkYsMHhFMywweEZGLDB4RkEsMHhCQiwgMHhGRSwweEZGLDB4QUYsMHhGRCwweEZCLDB4RkUsMHhCRiwweEFCLAotMHhGOSwweEZFLDB4RkYsMHhCRiwweDdGLDB4QkYsMHhGRSwweEJELCAweEZFLDB4RDcsMHhGRiwweDlGLDB4RkQsMHhGRiwweEJFLDB4RUYsCi0weEZGLDB4RUUsMHhGRCwweEJCLDB4NUIsMHhFRiwweEZGLDB4N0YsIDB4RUYsMHhGRiwweEVGLDB4RkYsMHg3RiwweEZGLDB4NEYsMHhGRiwKLTB4RUYsMHhGQiwweEJDLDB4RkMsMHhGRiwweEZGLDB4RkYsMHhGRSwgMHhGRSwweEZELDB4RkEsMHhGRSwweEZCLDB4RkYsMHhGRCwweEYzLAotMHhGQiwweEZGLDB4RjgsMHg1RiwweEZGLDB4RkYsMHhENywweEY1LCAweEZELDB4REYsMHhFRiwweEZGLDB4RjMsMHhEQywweDVGLDB4Q0UsCi0weEY1LDB4QkQsMHhGRiwweEZGLDB4RDcsMHhGRiwweEZGLDB4RjksIDB4M0YsMHhGRiwweERGLDB4RjcsMHhGRiwweEZFLDB4RkYsMHhGRCwKLTB4RkYsMHhGQiwweEZGLDB4RjcsMHhCOSwweDdELDB4RkUsMHhERiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEY5LDB4N0YsMHhGRiwweEZFLAotMHhGRiwweEZGLDB4N0YsMHhGRiwweEZFLDB4RkYsMHhGRiwweEY3LCAweEY2LDB4RkYsMHhCRiwweEYxLDB4RjgsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RTAsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY5LDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRiwweEVGLDB4RkYsMHhGRiwKLTB4OUIsMHhGQiwweDdGLDB4RkYsMHhGRiwweEZGLDB4QzEsMHhGRiwgMHhERiwweEZGLDB4M0YsMHg1RiwweEQ3LDB4QkYsMHhFRiwweEJCLAotMHhERSwweEVFLDB4RkYsMHg3RiwweERGLDB4RkYsMHhGRSwweEY1LCAweDdGLDB4REYsMHhGRiwweDk5LDB4RkYsMHhGRiwweEZBLDB4RkYsCi0weEJGLDB4RkQsMHhFQiwweDdBLDB4RkYsMHhCNywweEZFLDB4RkUsIDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZELDB4QkYsMHhGRiwKLTB4OTcsMHhGRiwweEZELDB4RjcsMHhGRiwweDdGLDB4RjcsMHhGRiwgMHhGRiwweEZELDB4NUYsMHhGRSwweEYzLDB4RjksMHhERiwweERGLAotMHhGRiwweEZGLDB4RkMsMHhGRiwweEZGLDB4ODMsMHhGRiwweEZGLCAweEZFLDB4RkYsMHg5RSwweEVDLDB4RkIsMHhFRSwweEZGLDB4OUYsCi0weEJGLDB4RUYsMHhGRiwweEZFLDB4RUQsMHg3QiwweEZGLDB4RkYsIDB4RkYsMHhGMSwweDVBLDB4RkYsMHhGRiwweEZELDB4RkYsMHg3QywKLTB4NjksMHgzQiwweERGLDB4RkYsMHg3RiwweDFGLDB4REYsMHhGRiwgMHhGRCwweEJBLDB4RkYsMHhGRiwweEZCLDB4RkYsMHg1QiwweEJELAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEQ3LDB4QjYsMHhFRCwweEU5LCAweEZGLDB4RDYsMHhCRCwweDZGLDB4NUYsMHhGQiwweEZGLDB4RUYsCi0weEZGLDB4NUYsMHhGRSwweEY2LDB4NkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGNywweEVCLDB4N0EsMHhERiwweEZGLDB4OUYsMHg3RiwKLTB4N0YsMHhGRiwweEI3LDB4RkYsMHhGRiwweEZFLDB4REYsMHhGRiwgMHg2QywweEZGLDB4RkIsMHhGRiwweEJCLDB4NkYsMHhFQiwweEZFLAotMHhDQywweEY3LDB4QTUsMHhGQSwweDVDLDB4RjUsMHg3NSwweEJCLCAweEI3LDB4REYsMHhGRSwweDZGLDB4NUYsMHhDNSwweEJGLDB4RkQsCi0weDdCLDB4RkUsMHhGRiwweDk1LDB4RTcsMHgyOSwweENGLDB4NEYsIDB4RjUsMHg5MSwweEVFLDB4NkIsMHhERiwweEVGLDB4RkQsMHg1NCwKLTB4RjUsMHhCRCwweEIxLDB4RkYsMHhFRiwweEVFLDB4RkIsMHhCRSwgMHhCRiwweEFGLDB4RkUsMHhERSwweEJELDB4NkYsMHhEQSwweEYyLAotMHhGRiwweEFGLDB4QkUsMHhGRiwweEZGLDB4RkQsMHg3RSwweEE3LCAweEZGLDB4RjcsMHhGRiwweEJGLDB4RUYsMHg3QiwweEY2LDB4RkQsCi0weEJELDB4NEEsMHhGMiwweDg1LDB4ODUsMHhCRiwweDVCLDB4RkUsIDB4QjUsMHhGRCwweEZBLDB4RkYsMHg0RiwweEZGLDB4RkUsMHhERiwKLTB4RkYsMHhFRCwweEZGLDB4QkYsMHhGRiwweEJGLDB4N0YsMHhGRSwgMHhGRiwweEI3LDB4NkQsMHhGRiwweEY3LDB4QkYsMHhCRiwweEVGLAotMHhGRCwweDFGLDB4RkYsMHhGRSwweDdELDB4RkYsMHg2NywweEZGLCAweEZGLDB4RkYsMHgzRiwweDdGLDB4RkUsMHhCRiwweEZGLDB4RTcsCi0weERGLDB4RTcsMHhGRiwweEVGLDB4NkIsMHhGQywweDFGLDB4RkYsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhERSwweEJGLDB4QUYsMHhGQSwKLTB4RkYsMHhCNiwweEVGLDB4RjksMHhGRSwweEZGLDB4OEYsMHhFRiwgMHhEQiwweEVGLDB4QUIsMHg2RiwweEZCLDB4RkUsMHhGRiwweEZGLAotMHhFRiwweEZELDB4RkYsMHg3RiwweEZGLDB4RkYsMHhERSwweEZGLCAweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHgzRiwweEZGLDB4NkMsCi0weEZGLDB4QkYsMHhGQiwweEZGLDB4RkUsMHhGRiwweEZCLDB4RkUsIDB4REYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4QkYsMHhGRiwKLTB4RkYsMHhGRSwweEZCLDB4RkYsMHhENSwweDdGLDB4RkYsMHhGRiwgMHhFRiwweEZCLDB4RkYsMHhGRiwweEJGLDB4RUYsMHg0MywweEI1LAotMHhGRCwweDZGLDB4Q0YsMHhENiwweEJFLDB4M0YsMHg3RiwweERCLCAweEZFLDB4QzMsMHhGRiwweEZELDB4RkYsMHhBRiwweEVCLDB4RkIsCi0weEZDLDB4RkYsMHgzRSwweEVGLDB4RTgsMHhGQSwweEJELDB4Q0QsIDB4QUEsMHhGRSwweEZFLDB4N0QsMHhDRiwweEZGLDB4QjcsMHhGRiwKLTB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4NzUsMHhDRCwgMHg1MiwweEQ3LDB4RkQsMHhGQiwweEY3LDB4REQsMHhGQiwweEVGLAotMHhFQiwweEZGLDB4RkYsMHg0RiwweEZGLDB4QkYsMHg5RiwweEU3LCAweEY5LDB4RkMsMHg3RiwweDhCLDB4QzMsMHhGOSwweEFGLDB4OEYsCi0weEU3LDB4RTksMHhCRSwweDdGLDB4OUYsMHhFNiwweEY5LDB4RkMsIDB4NUYsMHhGRiwweEZGLDB4RjcsMHhGRCwweEZGLDB4N0EsMHg1RiwKLTB4RDcsMHhFRCwweEZGLDB4RkYsMHhENywweEZGLDB4REQsMHg3RiwgMHhFNywweEZGLDB4RkMsMHhGRiwweEZDLDB4M0YsMHhGRiwweEZGLAotMHhGRiwweEZCLDB4RkYsMHhGRSwweEJGLDB4QUYsMHhGRiwweEZELCAweEZGLDB4RUYsMHhGRiwweEVCLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RjcsMHg3RiwweEZGLDB4N0YsMHhERiwweEZGLDB4RkQsIDB4RkQsMHg3RiwweEZFLDB4RjcsMHhGRCwweDdGLDB4REYsMHhGRiwKLTB4RkQsMHhGRiwweEZGLDB4REYsMHhGQiwweEZGLDB4RUUsMHhGRiwgMHhGQiwweEZGLDB4RjcsMHhGRCwweEZGLDB4N0EsMHhERiwweEY1LAotMHhGRCwweEZBLDB4REYsMHhGNywweEZDLDB4RkYsMHg3RiwweERGLCAweEJGLDB4RUQsMHhGRiwweEM5LDB4RkYsMHhERiwweEZGLDB4QkYsCi0weDJGLDB4RkIsMHhGRiwweEJDLDB4QUQsMHhGRiwweEY3LDB4RkYsIDB4RkYsMHhFRiwweEQzLDB4RkYsMHg3RCwweEJGLDB4NkYsMHhGRiwKLTB4RkEsMHhGRiwweEZFLDB4QkYsMHhBRSwweEVBLDB4RkEsMHhCRSwgMHhBRCwweEE1LDB4RUIsMHhDRSwweEJGLDB4QTcsMHhFQiwweDVBLAotMHhERSwweEJELDB4QUYsMHg2QiwweEZELDB4NTcsMHhGRiwweEZGLCAweEY0LDB4N0YsMHgxRiwweDdGLDB4RkQsMHhGRiwweDdGLDB4MzYsCi0weEYwLDB4REYsMHg3OSwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkQsIDB4QkYsMHhGRiwweDg3LDB4RkYsMHhGQiwweEYzLDB4RkMsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4N0UsMHhGRiwweEJGLDB4REYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4QkYsMHhGOCwweDlGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZELCAweEY3LDB4RkMsMHhCRCwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGQiwweEY5LDB4QkYsMHhGRiwweEZGLDB4RUIsIDB4RTIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEE5LDB4QkEsMHgyRiwKLTB4RUIsMHhGOSwweEZFLDB4NzcsMHhERiwweEY3LDB4RkYsMHhGRiwgMHhGOSwweDdGLDB4RkYsMHhGRiwweDdGLDB4RUYsMHhENywweEZGLAotMHhGRCwweEZGLDB4RkIsMHhGNSwweEZGLDB4QkYsMHg2RiwweERGLCAweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGMCwweEZGLDB4RkYsCi0weEZGLDB4M0YsMHhDRiwweEZGLDB4QkEsMHhFRSwweDlCLDB4QkYsIDB4RUUsMHhENywweEZFLDB4Q0QsMHhFRiwweEZGLDB4REYsMHhCRiwKLTB4RkYsMHhGRiwweEM1LDB4RkYsMHhGRiwweEZELDB4N0YsMHg0RiwgMHhGRCwweEY2LDB4RDksMHhGRiwweDRGLDB4RDYsMHhGRCwweEJGLAotMHg2RSwweEZGLDB4RkYsMHhGNCwweDdGLDB4RkYsMHg3RiwweDhCLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwweEY5LDB4RkUsCi0weDM3LDB4RkYsMHhEOSwweEZCLDB4RjUsMHhBRiwweEZELDB4RkYsIDB4RkYsMHhGQiwweEZGLDB4RkYsMHgwNywweEZGLDB4RkYsMHhGRiwKLTB4RkIsMHhGNywweEZGLDB4RkQsMHhGRiwweDdDLDB4RkEsMHg3RSwgMHg0RiwweEZDLDB4REYsMHgxRCwweEM3LDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEFFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZCLCAweEZGLDB4RkYsMHhGRSwweEZFLDB4RkMsMHhGRiwweDdGLDB4N0YsCi0weEJGLDB4RUYsMHhGRSwweEZGLDB4RkYsMHhGRiwweDVGLDB4RkQsIDB4RkYsMHhGRiwweEZGLDB4RkQsMHg2RiwweDVBLDB4RDcsMHg3QiwKLTB4QkUsMHg1RiwweEZFLDB4MzksMHhGRiwweEY3LDB4RkYsMHhGNywgMHhGRCwweEZFLDB4QUEsMHgxRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRSwweEZFLDB4QUIsMHhBRiwweEZELDB4RkUsMHhCRiwweEZGLCAweEY3LDB4RkYsMHg3RiwweEZFLDB4OEYsMHhFMywweEZCLDB4RUUsCi0weDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFQiwweEZCLDB4RkYsIDB4RkQsMHhCRiwweEVGLDB4REYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkIsMHhFNCwweDNGLDB4RkYsMHhERiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEYzLDB4RUYsMHhCQiwweEZCLAotMHhCRiwweEVGLDB4QkIsMHhGRiwweEQ3LDB4QkYsMHhGRiwweEZGLCAweEZGLDB4MjksMHhBRiwweEY3LDB4RkYsMHhGRiwweEZCLDB4RkYsCi0weEZCLDB4RTYsMHhGRiwweDBGLDB4RkIsMHgzRiwweERGLDB4MEYsIDB4RkYsMHhBRiwweEZGLDB4RkYsMHhGRiwweEY1LDB4QzMsMHhERiwKLTB4NUYsMHhGRiwweEZGLDB4RkYsMHhGRSwweDZCLDB4Q0EsMHhCRSwgMHhCQywweEZGLDB4OUYsMHhGMiwweEJGLDB4RkYsMHhGRSwweEZBLAotMHhGRiwweEZGLDB4RUYsMHgxNiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkMsMHhERiwweDk3LDB4RkQsMHg3OSwweEZGLDB4MzcsCi0weEU3LDB4N0YsMHhGRiwweEZGLDB4QjUsMHhGRiwweEZGLDB4RjYsIDB4MkYsMHhGRiwweEZELDB4RkIsMHhGRSwweEZGLDB4RkYsMHhGRCwKLTB4NUYsMHg1NywweDVGLDB4RkYsMHhEQiwweDUyLDB4REYsMHhGRiwgMHhGRCwweEJGLDB4RkYsMHhGRiwweEZDLDB4REIsMHhGRiwweDdCLAotMHhCNSwweEZELDB4N0YsMHhGRiwweDcxLDB4OUMsMHg2RSwweEZGLCAweEY2LDB4MzUsMHhBNSwweDlCLDB4RkYsMHhGRiwweEZELDB4RkYsCi0weEZGLDB4REIsMHg5RSwweDdGLDB4RkUsMHhFRiwweEZCLDB4RkYsIDB4RkYsMHhCRCwweEVGLDB4RkYsMHhERSwweEI3LDB4RjksMHg0QiwKLTB4RkYsMHhGNSwweEVGLDB4RkYsMHhGRiwweEZGLDB4RTgsMHg3RSwgMHhGRiwweEVBLDB4REYsMHhGNywweEZGLDB4RkQsMHg2OSwweDVCLAotMHhGQywweDlGLDB4RUYsMHg3OCwweEQ2LDB4RkYsMHhFQiwweEVGLCAweEZGLDB4RkYsMHhGRiwweEU4LDB4RkYsMHhGRiwweEVELDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEUzLDB4RjksMHhGNiwweEJGLDB4RkYsIDB4RkYsMHhGRSwweERGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwKLTB4RDEsMHhGRiwweEZGLDB4RTcsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhFNywweEY5LDB4RkYsMHhCRiwweDdGLDB4RDksMHhGRiwweEZELAotMHhGRSwweDdGLDB4RkYsMHhGRSwweEZGLDB4RjksMHhGRiwweEZCLCAweEQ2LDB4REYsMHhCRiwweEVGLDB4NUIsMHhENiwweEZGLDB4QkYsCi0weEZCLDB4RjYsMHhGRiwweEJGLDB4RUYsMHhGOCwweEY2LDB4REQsIDB4QkUsMHhGRSwweDE2LDB4RkYsMHhCRiwweEVGLDB4RkYsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4NkYsMHhGQiwgMHhGRiwweEZGLDB4RkYsMHg2RiwweEYzLDB4RkYsMHhGNywweEVGLAotMHhGQiwweEZGLDB4QkYsMHhGRiwweEVGLDB4RkUsMHhGRiwweEJGLCAweEZGLDB4RkYsMHhGRiwweEJFLDB4QkYsMHhGRiwweEVGLDB4RkYsCi0weDdGLDB4RUYsMHhGRiwweEZELDB4MTcsMHhGQiwweDdCLDB4RkYsIDB4RkYsMHhGRCwweDdGLDB4REIsMHhGNiwweEY0LDB4N0YsMHhGQSwKLTB4RkUsMHhGNSwweEJGLDB4RUIsMHhFMywweEY3LDB4RkYsMHhGRiwgMHhFOSwweEJGLDB4RkYsMHhBRiwweEY3LDB4RkQsMHhGMywweDdFLAotMHg4RiwweEEzLDB4RUEsMHhGRiwweENCLDB4RjMsMHhFRSwweEZGLCAweEJGLDB4RUYsMHhGNywweEY5LDB4RkYsMHhGRSwweDdGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEY1LDB4RkIsMHhGNiwweEZGLDB4RjUsIDB4MkYsMHhGRSwweEZCLDB4RDcsMHhCRiwweEZGLDB4QkUsMHhERiwKLTB4OUYsMHhGRiwweEYwLDB4RkYsMHhGRiwweEY5LDB4RkUsMHg3RiwgMHg4RiwweEEzLDB4RjgsMHhGRSwweDZGLDB4OUYsMHhGOSwweEY2LAotMHgyRiwweDlGLDB4RTcsMHhGOSwweEZFLDB4MkYsMHg5RiwweEUxLCAweEZGLDB4RkYsMHhGRiwweDdGLDB4REYsMHhGNywweEY1LDB4RkQsCi0weDdGLDB4N0YsMHhGNSwweEZGLDB4OUYsMHg1RiwweEZCLDB4RkUsIDB4RkYsMHg3RiwweEZGLDB4RkYsMHhDQiwweEZGLDB4RkYsMHhGQiwKLTB4RkUsMHhGRiwweEJGLDB4QUYsMHhGQiwweEZFLDB4RkYsMHhERiwgMHhGRSwweEZFLDB4QkYsMHhGNywweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEM3LDB4RkYsMHhGRiwweEZELDB4RkYsMHg3RiwweERELCAweEY3LDB4RkQsMHhGRiwweEZGLDB4RDcsMHhGRiwweEZELDB4N0YsCi0weEZGLDB4RkIsMHhGRCwweEZGLDB4RkYsMHhGRSwweEVGLDB4N0YsIDB4RkQsMHhFRiwweEZCLDB4RkUsMHhGQiwweEZELDB4RkYsMHg3RiwKLTB4REYsMHhGRCwweEZGLDB4N0EsMHhERiwweEY3LDB4RkQsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHgxRiwweEZGLDB4RkYsMHhEMywweEY3LAotMHhGRiwweEZGLDB4NkYsMHhEQiwweEZGLDB4RkYsMHhFRiwweENCLCAweEY0LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsCi0weDI5LDB4RkYsMHhFOCwweERBLDB4NzYsMHg5RiwweEFGLDB4NkEsIDB4REEsMHhGRSwweDM1LDB4RUIsMHhEQSwweEQ2LDB4QkYsMHhBQiwKLTB4RUIsMHg3QSwweERFLDB4QkYsMHhENywweDdGLDB4RkYsMHhGRSwgMHhGRiwweEJGLDB4RUYsMHhGRCwweERGLDB4NzcsMHhCRiwweEZELAotMHgzNywweEVGLDB4RkYsMHhFRiwweEZGLDB4M0YsMHhGRiwweEZGLCAweEZGLDB4RkUsMHg3RiwweEZGLDB4RkYsMHhGRiwweEY3LDB4N0UsCi0weERGLDB4RkYsMHhGRiwweEZGLDB4RkEsMHhCNywweDdGLDB4RkYsIDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4ODksMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweDlGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhFNywweEZGLAotMHhGRiwweEZGLDB4RkYsMHhBQSwweEZGLDB4QUIsMHhGQiwweEZBLCAweEVGLDB4QkYsMHhGRiwweERGLDB4RkEsMHg3QiwweEI5LDB4RkUsCi0weEZFLDB4RkYsMHhGRCwweEZGLDB4RjcsMHhGRSwweDNGLDB4RkYsIDB4QjcsMHhGRiwweEY3LDB4RUUsMHhGRiwweDdGLDB4RUYsMHhGRiwKLTB4RkYsMHg3RiwweEZGLDB4MUYsMHhGQiwweEZGLDB4QkYsMHhGQiwgMHhGRSwweEZGLDB4QkQsMHhGRiwweEZGLDB4MkYsMHhGRiwweEJGLAotMHhGRiwweDdGLDB4REYsMHhGQSwweEZGLDB4RkYsMHhGQywweEVFLCAweEY1LDB4RjMsMHhCRSwweEZCLDB4MEYsMHhFRiwweEYzLDB4QkUsCi0weEVGLDB4RkMsMHg1RiwweEZGLDB4NUEsMHhGRiwweEY3LDB4REYsIDB4RkYsMHhGRiwweEZFLDB4RDUsMHhGQywweDVGLDB4RkIsMHhGMiwKLTB4RkYsMHhGRiwweDJGLDB4QkIsMHhGMywweEZGLDB4RkYsMHhCRiwgMHhGRiwweEVGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhCRiwweEZGLDB4RkYsMHhGRCwweDdCLDB4RkYsMHhERiwweEI5LCAweEZGLDB4RkIsMHhGRiwweEQ4LDB4N0YsMHhGRiwweEZGLDB4RkYsCi0weEZCLDB4RkYsMHhGQywweDdGLDB4MUYsMHhCRiwweEUwLDB4REYsIDB4RjcsMHhFRiwweEZGLDB4RkQsMHg3RiwweEZFLDB4REYsMHhGRiwKLTB4RTAsMHhGRiwweEZGLDB4RkQsMHhFRiwweEZCLDB4RkYsMHhGRSwgMHhGNywweERGLDB4RkYsMHhFQiwweDVGLDB4RkYsMHhGNywweEZGLAotMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkQsMHhGRiwweEZELCAweEZGLDB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRiwweDNCLDB4REMsCi0weEZELDB4NkQsMHg3QiwweDVGLDB4NTcsMHhGNSwweEZELDB4N0YsIDB4NUYsMHhGRiwweEIxLDB4RkYsMHhFQiwweEZGLDB4RkYsMHhGRiwKLTB4RkIsMHhGQiwweEZFLDB4RkYsMHhCRiwweEZCLDB4QkUsMHhGRiwgMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QUYsMHhGRSwweEY3LAotMHhERiwweERGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhDRiwweEYzLCAweEY4LDB4RkYsMHhENywweEZCLDB4RkYsMHg1RiwweEJGLDB4RjcsCi0weEZCLDB4RkYsMHg3RiwweEZFLDB4MjMsMHhGRiwweEZGLDB4RkUsIDB4N0YsMHhGMywweEZGLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhGMywKLTB4RkYsMHhGRiwweEY1LDB4RjksMHhGRiwweDNGLDB4RkYsMHhGRiwgMHhGMCwweDlBLDB4RkYsMHhCRSwweDdGLDB4RkYsMHhGQywweEY5LAotMHhGRiwweEZELDB4QUYsMHhFQiwweEZFLDB4QkYsMHhGRiwweENGLCAweEYzLDB4RkUsMHg3RiwweEZGLDB4RkYsMHg1QiwweEJELDB4RkYsCi0weEJDLDB4RUIsMHhGRiwweEQ3LDB4RDQsMHhBRiwweEFGLDB4RkQsIDB4RkYsMHhDRiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywKLTB4RkQsMHhGRSwweEZGLDB4NkYsMHhGRiwweEZCLDB4RkYsMHhGRiwgMHhGRiwweEZELDB4N0YsMHg1RSwweEZELDB4QkYsMHhEQiwweEY2LAotMHhGRCwweEJGLDB4NkYsMHhGQiwweEVFLDB4RkQsMHhGRiwweDdBLCAweEZGLDB4RkEsMHhGQiwweEZGLDB4M0YsMHhGQiwweEI3LDB4NUYsCi0weEQ2LDB4RjcsMHgxRiwweDcxLDB4REMsMHg3NywweDFELDB4QzcsIDB4MzEsMHhEQywweDc3LDB4REYsMHhGOSwweEJGLDB4RjUsMHg1QiwKLTB4RjQsMHhENywweDlELDB4QUUsMHhGRiwweEJGLDB4RkQsMHhCRiwgMHhEQiwweEY2LDB4RkQsMHhCRiwweDZGLDB4REIsMHhGNiwweEZFLAotMHgzRCwweDgxLDB4RkYsMHhFQiwweEZFLDB4RkUsMHhGRSwweEZGLCAweEVCLDB4N0EsMHhERiwweDdELDB4NzcsMHg3RCwweEY1LDB4NzksCi0weERGLDB4NTcsMHhERCwweEY1LDB4N0QsMHg3RSwweEU2LDB4RkYsIDB4RDYsMHgzRiwweEJGLDB4N0YsMHhGRiwweEQ0LDB4RjUsMHgzRiwKLTB4QkYsMHhGQiwweEJFLDB4RUYsMHhCMywweEVFLDB4RkIsMHg5RSwgMHhFRiwweEJCLDB4RkUsMHg4QiwweEZGLDB4RkUsMHhERiwweEI3LAotMHhFRCwweEZGLDB4RjcsMHhGRCwweEZFLDB4RkYsMHhFRiwweEJCLCAweEVFLDB4RkYsMHhCRSwweEVGLDB4QkIsMHhFRSwweEVCLDB4RkMsCi0weDFGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhFNywweEZGLDB4RjcsIDB4RkQsMHhGRiwweEVGLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwKLTB4RkUsMHhGRiwweEJGLDB4RUIsMHhGQSwweDFGLDB4RkYsMHhCNywgMHhFRiwweDVCLDB4RkUsMHhGRiwweEFGLDB4RUIsMHhERCwweEU3LAotMHhERSwweDc3LDB4OUQsMHhFNywweDc5LDB4REUsMHg3NywweDlELCAweEJGLDB4RTYsMHg2RiwweEZGLDB4RkUsMHhGRiwweEJGLDB4RUYsCi0weEZCLDB4RkUsMHhGRCwweEJGLDB4NkYsMHhGNiwweEZELDB4QkYsIDB4NkYsMHhEQiwweEY2LDB4RkQsMHhCRiwweEZGLDB4N0UsMHhGRiwKLTB4RkYsMHhGQiwweEZFLDB4RkUsMHhGRiwweEVGLDB4RkIsMHhGRCwgMHhFRiwweDdFLDB4RjcsMHhCRCwweEVGLDB4N0IsMHhERSwweEY3LAotMHhCRCwweEVGLDB4RkYsMHhENSwweEZGLDB4QkYsMHhGRiwweEVGLCAweEZFLDB4RkYsMHhGQywweDNGLDB4MEYsMHhFNywweEZFLDB4N0YsCi0weDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LDB4RkUsIDB4RjMsMHhGRiwweEZFLDB4REYsMHhBRCwweERGLDB4NjcsMHhFRSwKLTB4RkIsMHhCRiwweEVGLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwgMHhGRSwweEZGLDB4QkYsMHhFRiwweEZGLDB4MjMsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4N0YsMHhGRiwweEYzLDB4QkMsMHhEQiwweEZFLCAweEZCLDB4RkYsMHhGQiwweEJFLDB4RjcsMHhGQiwweEZGLDB4N0YsCi0weERGLDB4RkYsMHhDRiwweEZCLDB4RkYsMHg5RiwweEUzLDB4RjksIDB4QkUsMHgzRiwweDhGLDB4RTcsMHg3OSwweEZGLDB4OUQsMHhFNywKLTB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg1RiwgMHhGRiwweENGLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhERiwweEY3LAotMHhGRSwweDdGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHhGRiwweEZGLCAweEZCLDB4RkUsMHhGRiwweEZGLDB4QkYsMHhGRiwweEJGLDB4QkYsCi0weEZGLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGRiwweEZELDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRiwKLTB4RkYsMHgzRiwweEZGLDB4QkYsMHhGRiwweEY3LDB4RkYsMHhGRiwgMHg3RiwweERGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTgsMHhFRiwweEZGLCAweDVGLDB4RjcsMHhCRiwweEY5LDB4RkUsMHhERiwweEI3LDB4RkQsCi0weEZGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RjcsIDB4RkQsMHhGRiwweERELDB4RkYsMHhGMiwweEZGLDB4QkYsMHhGRiwKLTB4RkYsMHhCRiwweEZGLDB4RkYsMHgyRiwweEYyLDB4RkYsMHhCRiwgMHgyRiwweDdCLDB4RDIsMHhGNywweEJGLDB4MkYsMHhGRiwweEJCLAotMHhGRiwweEVFLDB4OEYsMHhBRiwweEVCLDB4RkEsMHhGRSwweDNGLCAweEE3LDB4NjksMHhDRSwweDhGLDB4QTQsMHhFQSwweEZBLDB4RUUsCi0weEI3LDB4QUUsMHhFQiwweEZELDB4QzcsMHhGRiwweEY3LDB4RjcsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDdGLDB4M0UsMHhGMywKLTB4NzQsMHhGRiwweDNGLDB4NEYsMHhGRiwweEU3LDB4RkYsMHgzRiwgMHhGRSwweEE3LDB4RkYsMHhGRiwweERGLDB4RjcsMHhCNywweEZGLAotMHhGNywweEZGLDB4QkEsMHhFRiwweDM3LDB4RUIsMHhGQiwweEZFLCAweEJGLDB4RkIsMHhGRSwweEYzLDB4RkYsMHhGOSwweERGLDB4RkYsCi0weEJGLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsIDB4RkQsMHhERiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RkIsMHhGRSwKLTB4RkQsMHhGRiwweEZCLDB4QkYsMHhGRSwweDNGLDB4RUQsMHhGRiwgMHhERiwweEJFLDB4M0QsMHhBNywweEZCLDB4RkEsMHgzRiwweEU2LAotMHhFMSwweEZFLDB4RkUsMHgzRiwweEVGLDB4RTMsMHhERiwweEY1LCAweDdGLDB4RkUsMHhGRiwweDdFLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEVGLDB4NkYsMHhGNiwweEZGLDB4N0QsMHhFRiwweEQ3LDB4REUsIDB4RkYsMHg3RCwweEVGLDB4RkYsMHhGMiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4N0IsMHhERSwweEZCLDB4RTYsMHhFRSwgMHhFRiwweDM3LDB4NkUsMHhGMywweDdFLDB4RUIsMHgzNywweEVGLAotMHhGRiwweEMxLDB4RkYsMHhGRSwweEZGLDB4RjcsMHhFRiwweEZGLCAweEZGLDB4RkYsMHhCRiwweDNGLDB4RDIsMHhERiwweEJGLDB4MkYsCi0weDdCLDB4RTIsMHhGRiwweEZFLDB4M0IsMHhCRCwweERCLDB4RkYsIDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRSwKLTB4RkYsMHhGQiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkIsMHhERiwgMHhGRiwweEJGLDB4RkYsMHhCNywweEZGLDB4RkYsMHhCRiwweEVGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHgwRiwweEZGLCAweDdGLDB4RkYsMHgxRiwweEVGLDB4RjEsMHhGRCwweEZGLDB4RjYsCi0weEFGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RkYsIDB4RkYsMHhGRiwweEZFLDB4OUYsMHhGRiwweEZGLDB4RkYsMHg3NywKLTB4RUYsMHhGNywweEZCLDB4RkYsMHhGRSwweDVGLDB4RkYsMHhGRiwgMHhCRiwweENGLDB4RkIsMHhGNywweERELDB4RjcsMHhGNSwweEZGLAotMHg1RiwweEQ1LDB4RjUsMHhGRCwweDdGLDB4NUYsMHhENywweEY1LCAweEZGLDB4RkIsMHgwRiwweEZGLDB4RkYsMHhBOSwweEVBLDB4N0EsCi0weEZGLDB4QUYsMHg4RiwweEZFLDB4REYsMHhBRiwweEVGLDB4RkIsIDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweERGLDB4RTUsMHg1RiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEJELDB4NTcsMHhGRiwgMHhGRiwweDZGLDB4NzcsMHhCRiwweEY3LDB4RkIsMHhGRiwweDdGLAotMHhCRiwweEY3LDB4RkYsMHhGQywweEJGLDB4RkYsMHg5RiwweEZGLCAweEZGLDB4RUYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4MUYsCi0weENGLDB4RkYsMHhGQywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsIDB4NjUsMHhBRiwweEYzLDB4N0MsMHhGRiwweDNGLDB4REYsMHhGRiwKLTB4RkQsMHhFOSwweEZFLDB4N0YsMHhFNywweEZGLDB4RkUsMHg3RiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4RTMsMHhERiwweEZCLAotMHhEQiwweEY2LDB4RkQsMHhFRiwweDVCLDB4RkIsMHhGRiwweERGLCAweEZDLDB4RkYsMHgzRiwweERGLDB4RjMsMHhGRCwweEZGLDB4N0YsCi0weERGLDB4RUYsMHg2NiwweEZGLDB4REYsMHhBRCwweEVCLDB4N0EsIDB4REUsMHhGNywweEY3LDB4RTcsMHhEOSwweEZELDB4OUYsMHg2NywKLTB4RDksMHhGNiwweDdELDB4OUYsMHhFNywweERGLDB4RjUsMHg0NywgMHhGRCwweDY1LDB4NUIsMHhENiwweEY0LDB4RkUsMHhGRiwweEVGLAotMHhGRiwweDZELDB4RjYsMHhERCwweEI3LDB4NkQsMHhEQiwweDc2LCAweERDLDB4QjcsMHg3RCwweEZBLDB4OUIsMHhGNiwweDZELDB4OUQsCi0weDY3LDB4NTksMHhERiwweEY3LDB4REQsMHhGRiwweEVCLDB4RkUsIDB4QkYsMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLDB4QUYsMHhFMywKLTB4RDEsMHg5RiwweEZGLDB4QkQsMHhCRiwweEVGLDB4RkUsMHhGNywgMHhCRiwweEJGLDB4RjcsMHhENywweDdGLDB4REQsMHhGNywweDlELAotMHhERiwweDdGLDB4REYsMHhGNywweEZGLDB4RTAsMHg3RiwweEZELCAweEMxLDB4REYsMHhGNywweEZELDB4QzcsMHg3RiwweDdGLDB4RkIsCi0weEZGLDB4QkIsMHhFQywweEZCLDB4M0UsMHhGRiwweEJGLDB4RUMsIDB4RkIsMHhGRiwweEQ4LDB4N0YsMHhCRiwweDZDLDB4RkYsMHhCRSwKLTB4RkYsMHhCRiwweEVELDB4RkYsMHhFRiwweEZFLDB4RkIsMHhCRiwgMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUUsMHhGRiwweEM1LAotMHhGRiwweEFGLDB4NkYsMHhGRiwweEZDLDB4RkQsMHgzRiwweEU3LCAweEZGLDB4RkUsMHhGRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsCi0weEVGLDB4RkIsMHhGRSwweEJGLDB4ODksMHhGRSwweEZBLDB4QkEsIDB4RkUsMHhCRiwweEFGLDB4RkIsMHhGNiwweEY1LDB4RDksMHg3RCwKLTB4OTcsMHg2NSwweEQ5LDB4NzQsMHg1RCwweDk3LDB4NjUsMHhEMywgMHhGRSwweEQ2LDB4RkYsMHhCRiwweEY3LDB4RkQsMHhGRiwweDdGLAotMHhCRiwweENGLDB4RkIsMHhGRSwweEZGLDB4RUYsMHhGQiwweEZFLCAweEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsMHhGNiwweDhGLDB4RkIsCi0weEZGLDB4RUYsMHhGQiwweDdFLDB4REIsMHhGRSwweEZGLDB4QkUsIDB4RUYsMHhFRSwweEZCLDB4QkUsMHhFRiwweEJCLDB4RUUsMHhGQiwKLTB4QkUsMHhGRiwweEZGLDB4REYsMHhGRiwweDQzLDB4RkYsMHhGRiwgMHhGQiwweEVGLDB4NUYsMHhCNywweEZFLDB4N0YsMHhFNywweEY5LAotMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweEY5LCAweEJGLDB4RkUsMHhBRiwweDc3LDB4RkQsMHhGRiwweDJGLDB4QUYsCi0weEE3LDB4RkUsMHhGRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsIDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGMSwweDdGLDB4RUYsMHhERiwKLTB4RkYsMHg5NywweEY1LDB4RUYsMHhGRiwweERGLDB4RkYsMHhGRiwgMHhCRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLAotMHhGRiwweEUwLDB4RkYsMHhGRiwweEY5LDB4RkUsMHgyRiwweDhCLCAweEUzLDB4RjgsMHhCRSwweDc3LDB4OUYsMHhGOSwweERBLDB4NzcsCi0weDlELDB4RTcsMHg3OSwweERFLDB4NzcsMHg5RiwweERELDB4RkYsIDB4RkQsMHhGRCwweDdGLDB4NUYsMHhENywweEZELDB4RkYsMHg3RiwKLTB4RTcsMHhGRSwweDdGLDB4OTcsMHhFNywweEZCLDB4RkUsMHhGRiwgMHhCRiwweEVGLDB4RkYsMHhBQiwweEZGLDB4RUYsMHhGQSwweEZFLAotMHhCRiwweEFGLDB4RkYsMHhGQSwweEZGLDB4RkYsMHhERiwweEZGLCAweEZCLDB4RkYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RkYsCi0weDY3LDB4RkYsMHhGNywweEY1LDB4RkYsMHhGRiwweEZGLDB4REYsIDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhCRCwgMHhFQiwweEZGLDB4RkYsMHhGNywweEFELDB4RUIsMHhGRiwweERGLAotMHhGRCwweEZGLDB4M0YsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLCAweERGLDB4RkYsMHg1RiwweEZGLDB4RjcsMHhGRiwweEZGLDB4RkQsCi0weEJGLDB4RkYsMHhDQiwweEY0LDB4RkYsMHg3RiwweEQzLDB4RjcsIDB4RkQsMHgzRiwweDdGLDB4RDMsMHhGNywweEZGLDB4RkMsMHgzRiwKLTB4RkYsMHhFQSwweEZBLDB4QkUsMHhBRiwweEFCLDB4RUIsMHhCQSwgMHhGNCwweDk1LDB4NkIsMHg1MiwweEQ0LDB4QUQsMHgyRiwweDRBLAotMHhEMiwweEY2LDB4QkYsMHhEMiwweDdGLDB4RjcsMHgzRiwweEZGLCAweEZGLDB4RjMsMHg3RiwweEZGLDB4RkYsMHhGNywweEZGLDB4QkEsCi0weERGLDB4RkIsMHhGRCwweEZGLDB4QkYsMHhGRiwweEZCLDB4RkYsIDB4RjgsMHg3RiwweEVBLDB4RkYsMHhGRSwweEZFLDB4REYsMHhGRiwKLTB4RjcsMHhGRiwweDdGLDB4QkIsMHhGRiwweEZGLDB4QkYsMHhERiwgMHhGQiwweEZGLDB4RkYsMHhCRiwweEZGLDB4QjEsMHg3RiwweEZGLAotMHhGQiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLCAweENGLDB4RkUsMHhGRiwweEZGLDB4RUYsMHhGRiwweEY3LDB4RkYsCi0weEZGLDB4RkYsMHhGMSwweEZGLDB4NjksMHhCRSwweEZBLDB4QkYsIDB4QUYsMHhFMiwweEZGLDB4RkUsMHhGRCwweEFGLDB4RjMsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhGQywweEZGLDB4RkYsMHgwNywgMHhGRCwweDk1LDB4REIsMHhERiwweDdGLDB4REYsMHhBRiwweEZGLAotMHhGNywweEFGLDB4MzYsMHhGRSwweEJGLDB4NjUsMHhFQiwweEY2LCAweEZFLDB4OUYsMHg2RiwweEZFLDB4MDcsMHhGRiwweENGLDB4RkYsCi0weEY4LDB4RkUsMHhGRiwweENGLDB4RkYsMHhGNiwweEZBLDB4RTcsIDB4RkIsMHhGRSwweEZGLDB4QkIsMHhFRCwweEY5LDB4RkYsMHhGRiwKLTB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRiwweDc1LDB4RkYsMHhFRiwgMHg3RSwweEZELDB4RTAsMHhFOCwweDVFLDB4RDMsMHhFNSwweEY5LAotMHgzRSwweDVGLDB4RDcsMHhGNywweEZGLDB4RkEsMHgyRiwweEZCLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4N0YsCi0weDdGLDB4RDcsMHhGNSwweDdELDB4NUYsMHg1NywweEQ1LDB4RjUsIDB4RUYsMHhGRiwweEYzLDB4N0YsMHhGQywweDdGLDB4RkYsMHhDNywKLTB4RjEsMHhGRiwweEZGLDB4MUYsMHhDRiwweEIwLDB4RkYsMHgzRiwgMHhDRiwweEYzLDB4RkMsMHhGRiwweDNGLDB4Q0UsMHhGRiwweEU0LAotMHhGRiwweERGLDB4N0YsMHhGRSwweEY3LDB4QkIsMHhGRiwweEZGLCAweERGLDB4RUYsMHhFRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsCi0weEJGLDB4QkYsMHhFRiwweEZGLDB4RDEsMHhGRiwweEZGLDB4RkYsIDB4RkQsMHhGQiwweEZGLDB4RkQsMHhGRiwweEZCLDB4OUYsMHhFOSwKLTB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHhCRiwgMHhGRiwweEIzLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGRiwweEFGLAotMHhGNywweEZGLDB4QjYsMHgzRiwweEVCLDB4RkEsMHhGRSwweEJGLCAweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsMHhGRSwweEE3LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwweEZGLDB4RkYsIDB4RkUsMHg5RiwweEY3LDB4RjksMHhGRiwweDdGLDB4OUYsMHhFNywKLTB4RkYsMHhGRiwweEZFLDB4QUYsMHg2RiwweEZGLDB4RkYsMHhGRiwgMHg5RiwweEZGLDB4REYsMHhGRiwweDdELDB4NUYsMHhERCwweEZGLAotMHhGQiwweEJGLDB4RTcsMHhCQiwweEZGLDB4RkIsMHhERiwweDZELCAweDVGLDB4N0UsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEVCLDB4RjcsMHhGRiwweEU3LDB4RUYsMHhGNywweEZGLDB4RkYsIDB4N0YsMHhGRiwweEY3LDB4RkYsMHhGQywweDhGLDB4RkYsMHhFRiwKLTB4RkQsMHhGRSwweEZGLDB4QkUsMHhGNCwweEYyLDB4N0QsMHhENywgMHhDRiwweEZGLDB4M0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweENGLDB4NkIsMHhGRiwweEJGLDB4M0YsMHhGQiwweEYyLCAweEZDLDB4N0YsMHhFQiwweEZGLDB4OUYsMHhGQSwweEZGLDB4RkYsCi0weDNGLDB4RkYsMHhGMywweEZGLDB4RkYsMHhGRCwweDcwLDB4RjcsIDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGQiwweEQ3LDB4RkUsMHhGNSwKLTB4NzcsMHhGRiwweDE1LDB4REQsMHg3NywweEZELDB4RkYsMHg3RiwgMHhERiwweEY3LDB4RkIsMHhDRCwweEJGLDB4RkYsMHhGRCwweEZGLAotMHhGRiwweERGLDB4MzcsMHhDRCwweEY5LDB4RUMsMHhGRSwweEVGLCAweEJCLDB4RjQsMHhGQiwweDNGLDB4NEYsMHhCMywweEZGLDB4RkQsCi0weENCLDB4RkYsMHhFOSwweDdFLDB4NTQsMHg5RiwweEU1LDB4NEIsIDB4QjcsMHhGRiwweERELDB4N0QsMHhDNywweDcxLDB4REQsMHg3NywKLTB4NUQsMHhENywweDc1LDB4Q0QsMHg3RiwweEQ2LDB4RkYsMHhEMywgMHhGNiwweEY5LDB4M0YsMHg2RCwweDk1LDB4QUYsMHg3RiwweEZFLAotMHhGRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLCAweEZFLDB4RjYsMHhDNywweEZGLDB4QUQsMHg3QiwweENBLDB4RkYsCi0weEJGLDB4QkYsMHhFRiwweEZELDB4RTMsMHhERiwweEI3LDB4RUQsIDB4RkIsMHg3RSwweERGLDB4MzcsMHhFRCwweEUzLDB4RkIsMHhERiwKLTB4RkYsMHg1MiwweDVDLDB4MTUsMHhGRCwweENGLDB4N0YsMHhERiwgMHhGRSwweEVGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVDLAotMHg3QiwweEZFLDB4RkYsMHhGRSwweDNFLDB4N0YsMHhEQSwweEY3LCAweEZELDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGQiwweEVGLDB4QkIsCi0weDZGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsIDB4RjcsMHg3RCwweEZGLDB4RDgsMHhGRiwweEZELDB4QkYsMHg3RiwKLTB4RkIsMHhGRiwweEZGLDB4OUYsMHhGQiwweEZFLDB4N0YsMHg5RiwgMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLDB4RUEsMHg3RiwweEY2LAotMHhCRiwweEJELDB4NkEsMHg1QSwweEY2LDB4RTUsMHhCRiwweDc3LCAweDVGLDB4NkQsMHhERCwweDc3LDB4NUQsMHhENywweDc1LDB4REQsCi0weDc3LDB4RkYsMHhBNSwweEJGLDB4Q0YsMHhGQiwweEZGLDB4RkYsIDB4QkYsMHhDRiwweEZCLDB4RkQsMHhGRiwweEJGLDB4RjMsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkQsMHhBQiwgMHhGRiwweEJGLDB4QkYsMHhGRiwweEZCLDB4RkYsMHg3RiwweEVGLAotMHhGRiwweEJFLDB4RkIsMHhFRSwweEZCLDB4QkUsMHhFRiwweEJCLCAweEVFLDB4RkIsMHhCRiwweEZGLDB4QjUsMHhGRiwweEQwLDB4QkMsCi0weEZELDB4MkYsMHg0QiwweEY3LDB4RkYsMHhGRiwweDlGLDB4RjksIDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwKLTB4RkEsMHg4RiwweEZELDB4QUIsMHhGQSwweERBLDB4QkYsMHhBRiwgMHhCMywweEZELDB4RkYsMHhCRiwweEZCLDB4RkUsMHhGRiwweEJGLAotMHhFRiwweEZCLDB4RkUsMHhGNywweEJGLDB4RkYsMHg5RiwweEZGLCAweDc3LDB4RjcsMHhCRCwweEZELDB4NzcsMHhERiwweEZGLDB4N0UsCi0weERGLDB4RUQsMHhCQiwweEZFLDB4RkYsMHhCRSwweEVGLDB4RkIsIDB4RkUsMHhGRiwweEZBLDB4M0YsMHhGRiwweEJFLDB4NkYsMHg4RiwKLTB4RTYsMHhGOSwweEZFLDB4N0YsMHg5RiwweEM3LDB4RkUsMHg3RiwgMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywweEZCLAotMHg3RiwweEZGLDB4N0YsMHhDRiwweEZGLDB4RkQsMHhGRiwweEZGLCAweERGLDB4RkIsMHhBRiwweEJGLDB4RUYsMHhGRiwweEZFLDB4RkYsCi0weDlGLDB4RUYsMHhGQiwweEZGLDB4RkMsMHhGRiwweEZCLDB4RkUsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGNywKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEY1LDB4RkYsMHhGRiwweEZGLDB4M0YsMHhERiwweEY3LAotMHhGRiwweEZGLDB4N0YsMHhFRiwweEZFLDB4RkYsMHhCRiwweEZGLCAweEZCLDB4RkYsMHhGRiwweEJGLDB4RUYsMHhGRiwweEIzLDB4N0YsCi0weEZGLDB4N0IsMHg1RSwweEY3LDB4RkQsMHhGRiwweDdCLDB4N0YsIDB4RjcsMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwKLTB4REYsMHhGNywweEZGLDB4MTcsMHhGRiwweEZGLDB4RkYsMHg3RiwgMHhGRiwweEZGLDB4REQsMHhGNiwweEZDLDB4QkYsMHhDQiwweEYyLAotMHhCQywweEJGLDB4MkYsMHhDQiwweEYyLDB4RkMsMHhCRiwweEZFLCAweDhGLDB4RkYsMHhGQSwweDdFLDB4QkYsMHhBNywweEVCLDB4REEsCi0weEZDLDB4QkYsMHhBRiwweDdBLDB4RkUsMHhCRiwweEFGLDB4RUEsIDB4RkEsMHhGRSwweEJGLDB4QUYsMHhGNCwweERGLDB4RkUsMHhGRiwKLTB4RjMsMHgzQywweDdGLDB4M0UsMHhGRiwweENGLDB4RjgsMHhCRiwgMHg4RiwweEUzLDB4RjgsMHhGRSwweDNGLDB4OEYsMHhFNywweEU4LAotMHhGRiwweEZDLDB4OUYsMHhGRiwweEZGLDB4Q0YsMHhFQiwweEIzLCAweEU3LDB4RkIsMHg3QiwweEYzLDB4RkUsMHhGRiwweENGLDB4REIsCi0weEZCLDB4RkIsMHhCRiwweDZGLDB4NkYsMHhERiwweEVDLDB4N0YsIDB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRCwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhCMiwweEJGLDB4RkYsMHhERSwweEZELDB4QkQsMHhFRiwgMHhGQiwweEY2LDB4REYsMHhFQSwweEU3LDB4REIsMHhGRSwweEJCLAotMHhGRiwweEVCLDB4RkIsMHhCRiwweDlGLDB4OEYsMHhFOCwweEZFLCAweDNGLDB4OEYsMHhBMywweEY4LDB4RkUsMHgzRiwweDhGLDB4RkYsCi0weEY4LDB4N0UsMHhGRCwweEZELDB4N0YsMHhGRiwweEZCLDB4Q0QsIDB4RkYsMHhGRCwweEZGLDB4NUYsMHhFRiwweEZELDB4RkYsMHhGRiwKLTB4REYsMHhGNywweEZELDB4RkYsMHhCRSwweDkwLDB4RkYsMHhGRiwgMHhFRSwweEZGLDB4M0YsMHhCRiwweEYzLDB4QkIsMHhGRSwweEI3LAotMHhBQiwweEZBLDB4RkUsMHhBRiwweEFELDB4RUEsMHhGQSwweERFLCAweEFCLDB4RkYsMHg2MywweEZGLDB4RkUsMHhGMiwweEZGLDB4QjMsCi0weEZGLDB4REYsMHhFRSwweDdELDB4RkYsMHgwMywweEYxLDB4RjQsIDB4M0YsMHgxRiwweEMzLDB4RjEsMHhFQywweDdGLDB4RkUsMHg2RiwKLTB4RkYsMHhGQiwweEZCLDB4RkYsMHg5RiwweEZGLDB4QkYsMHhGRiwgMHg3QiwweDVGLDB4RkQsMHhGRiwweERGLDB4RjcsMHhGRCwweEZELAotMHg3RiwweDdGLDB4REYsMHhGRSwweENGLDB4RkIsMHhGRiwweEZGLCAweEFGLDB4RkIsMHhGRiwweDFGLDB4RUYsMHhBNSwweEZELDB4QkYsCi0weERGLDB4RkIsMHg3RCwweEZGLDB4QkYsMHhERiwweEZCLDB4RkYsIDB4RkQsMHgzQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwKLTB4QUYsMHhGMywweEZGLDB4RkIsMHg3RiwweEJGLDB4RDcsMHhGQiwgMHhCRiwweDdGLDB4QkIsMHhGNywweEZGLDB4RjgsMHg3RiwweEZGLAotMHhGQSwweDVGLDB4RDcsMHhGRiwweERGLDB4N0YsMHhFRiwweEZGLCAweEZGLDB4N0YsMHhEQiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsCi0weEI3LDB4RkIsMHhFQywweEZGLDB4RkYsMHhGNywweEJGLDB4RUYsIDB4RkQsMHhGQywweEZCLDB4RkYsMHhFRiwweEYwLDB4RkUsMHgzRiwKLTB4OEYsMHhFMywweEY4LDB4RkUsMHgzRiwweDhGLDB4RUYsMHg4RCwgMHhGRiwweEZGLDB4RUYsMHg3RiwweEJGLDB4RkYsMHhGQiwweEZGLAotMHhEQiwweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEVGLDB4RDgsMHhGRiwweDJFLDB4N0YsCi0weEJFLDB4RUYsMHhGRSwweDZFLDB4RkYsMHhCRiwweEY5LDB4RkYsIDB4RkYsMHhGMywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkMsMHg2NiwweEJFLDB4NDcsMHhGMywweDdGLDB4REYsMHhGRSwgMHg4NywweDlGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFNywweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RDYsMHg2RiwweDdDLCAweEZCLDB4NEYsMHhEMiwweEZGLDB4RkQsMHgyQiwweEZFLDB4RkYsCi0weEZGLDB4RkQsMHg1RiwweEQ3LDB4RDUsMHhGNSwweDdELDB4RkYsIDB4RkYsMHhGRiwweEJGLDB4OUIsMHhGRiwweEZGLDB4REYsMHhCNywKLTB4RkYsMHhGRiwweERGLDB4RkYsMHgzRiwweENGLDB4RkUsMHg3RiwgMHhCRiwweEVGLDB4RkIsMHhGQywweEZGLDB4M0YsMHhGRiwweEQ5LAotMHhCRiwweEZFLDB4OTcsMHhFQywweDhGLDB4QjcsMHhGRSwweDlCLCAweDdELDB4RkQsMHhCNywweERELDB4NzcsMHgxRCwweEM3LDB4NzEsCi0weERELDB4NzcsMHg1RCwweEQ3LDB4RjMsMHg2RiwweEZELDB4M0YsIDB4NzMsMHhERCwweEFGLDB4RkQsMHg3QSwweEZGLDB4RkYsMHhBRiwKLTB4RkUsMHhGRCwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwgMHhFRiwweDY2LDB4N0YsMHhGRiwweEZGLDB4QkYsMHhCRiwweEZGLAotMHhGQiwweEZGLDB4RjcsMHhERiwweEZELDB4RkIsMHg3RCwweERGLCAweEI3LDB4Q0QsMHhGMywweDdDLDB4NUYsMHgzRiwweDkxLDB4M0YsCi0weEZGLDB4M0QsMHhFRiwweDdCLDB4RkYsMHhGQywweEZGLDB4Q0EsIDB4RUYsMHhGRSwweEZGLDB4QkQsMHhFRiwweEZCLDB4MUUsMHhFNywKLTB4QkIsMHhFQywweDdGLDB4QjMsMHhGRiwweEZELDB4OUYsMHhGRiwgMHhGRiwweEZFLDB4RkYsMHhGRiwweDdGLDB4QkYsMHhGQiwweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEVFLDB4RkIsMHhCRiwweERGLCAweDY3LDB4RkYsMHhGRiwweEJGLDB4RUYsMHhEQiwweEZGLDB4QkMsCi0weEZFLDB4N0YsMHhGQiwweEZGLDB4OUYsMHhFRiwweEY5LDB4RkUsIDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDg3LDB4RkYsMHhFRSwKLTB4RkIsMHhCRSwweEU1LDB4QkYsMHhFRiwweEY5LDB4RDcsMHg2NSwgMHhGNywweERELDB4RTcsMHg3RCwweERGLDB4NzcsMHg1RCwweEQ3LAotMHg3RiwweEY4LDB4OUIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLCAweEZGLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwweDdGLDB4Q0YsCi0weEYzLDB4RkMsMHhGRiwweEJGLDB4RUYsMHhGRiwweERCLDB4M0YsIDB4RUYsMHhGQiwweEZFLDB4RkYsMHhERiwweEZGLDB4RkUsMHhGQiwKLTB4QkIsMHhFRiwweEJGLDB4RUYsMHhCQiwweEVFLDB4RkIsMHhCRSwgMHhFRiwweEJCLDB4RkYsMHhGQywweDdGLDB4RkQsMHgzQiwweDVCLAotMHhENiwweEU1LDB4RkQsMHg0RiwweEMzLDB4RkIsMHhGRiwweEJGLCAweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsCi0weEI0LDB4RkYsMHhGQSwweEJDLDB4OEYsMHhCMiwweEU5LDB4RDIsIDB4MkUsMHhDRiwweEZCLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwweEVDLDB4RkYsMHhGRCwgMHhGRCwweDdGLDB4REYsMHhGNywweEU0LDB4REYsMHg1RiwweEZGLAotMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhDMywweEZGLDB4RUYsMHhFNiwweEY4LDB4RkUsCi0weDNGLDB4OEIsMHg4MywweEY5LDB4RkUsMHg3RiwweEU3LDB4RjksIDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHgxNywKLTB4RkQsMHhGRiwweEZGLDB4RkYsMHg3RiwweDVGLDB4RjcsMHgyQywgMHhGRiwweEZGLDB4RkYsMHhGRSwweDdGLDB4RkYsMHhFNywweEY5LAotMHhGRSwweDdGLDB4OUYsMHhGRSwweDJGLDB4RkYsMHhGRiwweEVGLCAweEZGLDB4RkUsMHhCRiwweEVGLDB4QUQsMHhGRiwweEZGLDB4N0YsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkUsMHhERiwweEZGLDB4REYsMHhGRiwweEZELDB4RkQsMHg3RiwKLTB4REYsMHhGNywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkEsMHgzRiwweEZFLAotMHhGNywweEZELDB4RUYsMHg3QSwweEZGLDB4QjEsMHhCRCwweEZGLCAweDdGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsCi0weEZGLDB4N0YsMHhGMywweDI3LDB4RkYsMHhERiwweEZGLDB4REQsIDB4RkYsMHhGQywweDlCLDB4RkYsMHhDQiwweEZDLDB4QkYsMHgyRiwKLTB4Q0IsMHhGMiwweEZDLDB4QkYsMHgyRiwweEM5LDB4RkYsMHhERSwgMHhGRiwweERGLDB4QUYsMHhFQiwweERBLDB4RkUsMHhCQiwweEFGLAotMHhFQiwweEY4LDB4RjcsMHhBRiwweEU4LDB4RkEsMHhGRSwweEJGLCAweEFGLDB4RUIsMHhGMiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RUYsCi0weEJELDB4RDcsMHhCRiwweEZGLDB4RkYsMHhERSwweDhGLDB4QjgsIDB4REUsMHgzNywweDhELDB4QTMsMHg3OCwweERBLDB4M0YsMHg4RiwKLTB4RkYsMHhBMSwweEZGLDB4RkYsMHhGQiwweEZCLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4QTcsMHhCRCwweEZCLDB4NzYsMHhGRCwweEJGLAotMHhFRiwweERCLDB4RkUsMHhCQiwweEJGLDB4RkUsMHgyNywweDdGLCAweEZGLDB4RkUsMHhGRSwweEZELDB4RjUsMHhGRiwweEVGLDB4RjUsCi0weERGLDB4MUYsMHhFNywweEZELDB4RkYsMHg3RiwweERGLDB4RjcsIDB4RkQsMHhGRiwweEZGLDB4Q0QsMHhGRCwweEFFLDB4RkYsMHhGQSwKLTB4M0UsMHgzRiwweEFCLDB4RkQsMHhGOCwweDdFLDB4OEYsMHhFMywgMHhGOCwweEZFLDB4M0UsMHg4RiwweEUzLDB4RjgsMHhGRiwweEZFLAotMHgxRiwweEVGLDB4REYsMHhCRiwweEZFLDB4REUsMHhERiwweEQ5LCAweEZGLDB4REYsMHhCQywweEZGLDB4RkYsMHg3RiwweEZGLDB4RUYsCi0weEZELDB4N0YsMHhERiwweEY3LDB4RjksMHgzRiwweEZFLDB4RkYsIDB4RkYsMHg2RiwweEZFLDB4REUsMHhCRiwweEY3LDB4RUQsMHhFQSwKLTB4RkQsMHg4RiwweDgzLDB4RjgsMHhFQSwweDNGLDB4OEYsMHhFRiwgMHhGRiwweEY0LDB4N0YsMHhGRiwweEVGLDB4RUYsMHg3QiwweEYzLAotMHhGMSwweDVGLDB4RkYsMHhGRiwweEYxLDB4M0IsMHg3RiwweERGLCAweEY3LDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEUwLDB4RkYsCi0weEZGLDB4RkYsMHhGNywweEZGLDB4NkYsMHhGRiwweDdGLDB4RkYsIDB4RkYsMHhGNywweERFLDB4RjcsMHhCRiwweEVGLDB4RkIsMHhGNywKLTB4RkQsMHhGRiwweEZGLDB4RjUsMHhGQSwweEZGLDB4RkYsMHhGQiwgMHhFNywweEZGLDB4RjMsMHhGOCwweDdGLDB4RjMsMHhERiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHgxRiwweEVGLCAweEJCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsCi0weEZGLDB4N0YsMHhGRiwweDlGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4Q0YsMHhGRiwweDM3LDB4RkYsMHhGRiwKLTB4N0YsMHhERiwweDc3LDB4NUQsMHhFNywweEZDLDB4RkYsMHhCRiwgMHhGNywweEY1LDB4RkIsMHhGRiwweEZGLDB4RDcsMHhGNSwweEZCLAotMHhGRiwweEZGLDB4NDUsMHhGRCwweDdGLDB4RUEsMHhGRCwweEJFLCAweEJGLDB4REYsMHhGNywweEZGLDB4RkYsMHhEQiwweEZCLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4NUYsIDB4N0YsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRSwweEZGLDB4RUYsMHhGRCwweEZGLDB4N0YsMHhERiwgMHhGRiwweEVGLDB4RkIsMHhGOCwweDBGLDB4RjMsMHhGRiwweEY5LAotMHgyRSwweEZCLDB4RkUsMHhGQywweEYzLDB4RUYsMHhGRiwweEZGLCAweEJGLDB4RkYsMHhGQiwweEU3LDB4RkYsMHhGRSwweDdFLDB4RkYsCi0weEMwLDB4NkIsMHhDRiwweEZGLDB4MzQsMHhERiwweEYxLDB4RkQsIDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweERGLDB4RjcsMHhGRCwKLTB4Q0YsMHg3RiwweDlDLDB4RkQsMHhGRCwweDZDLDB4RjcsMHhGRiwgMHhGNiwweEZELDB4RUIsMHgyQiwweDlGLDB4RkYsMHhGQywweEZFLAotMHg3RSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RDcsMHhGMywweEY3LCAweEZGLDB4RkIsMHhFMSwweEJGLDB4RkYsMHhFQiwweDdBLDB4REUsCi0weEQ3LDB4RkIsMHhGRiwweEY5LDB4RkUsMHhGRiwweEZGLDB4RjMsIDB4REUsMHg3RiwweEZELDB4RTcsMHg3RiwweEZGLDB4RkQsMHhCQiwKLTB4RkYsMHhGRiwweDdFLDB4Q0MsMHhGNiwweEFGLDB4NUYsMHg3RiwgMHhGRSwweEY0LDB4N0QsMHhGNywweEZELDB4QkIsMHg2RSwweERCLAotMHhCNywweEZGLDB4RjcsMHhERiwweDY2LDB4RkYsMHhGRiwweEY3LCAweDNELDB4Q0YsMHhERSwweEJELDB4RkYsMHhGRiwweERFLDB4REIsCi0weDhELDB4RjcsMHg3RSwweERGLDB4QjcsMHhFRiwweDdGLDB4RkYsIDB4RjYsMHg4NywweEZGLDB4RkYsMHhFRiwweEZFLDB4REUsMHhCRiwKLTB4RkYsMHhGRiwweEZGLDB4QkIsMHhFRiwweEZELDB4RkYsMHg3QiwgMHhERSwweEY3LDB4M0YsMHhGRiwweEJGLDB4RkIsMHhEQiwweEZGLAotMHhGMiwweEI2LDB4RkQsMHhCRCwweDdGLDB4RTcsMHhGRiwweEZGLCAweEZGLDB4NkYsMHhGNywweEZGLDB4RkYsMHhGRiwweEZFLDB4NzcsCi0weEZGLDB4QkYsMHhGOCwweEFGLDB4RkYsMHhERiwweEJGLDB4RkYsIDB4QkYsMHg3RiwweEZCLDB4RkYsMHhGRiwweEZGLDB4REIsMHhGRSwKLTB4RkYsMHhCRiwweEZGLDB4RkEsMHhGRiwweEZELDB4RkYsMHhGNiwgMHg3RiwweEZGLDB4OUYsMHhGRiwweEZGLDB4M0YsMHhFRiwweEY4LAotMHhFRSwweDdFLDB4OUYsMHhCQSwweEZFLDB4QkYsMHg4RiwweEVGLCAweEZFLDB4RkUsMHhGOSwweEZGLDB4RkEsMHg3RiwweEZFLDB4N0UsCi0weEJGLDB4QUYsMHhGQiwweDk2LDB4RkQsMHg5RiwweEVGLDB4NUUsIDB4NjUsMHhCRSwweEVGLDB4NUIsMHhCNiwweEZGLDB4QkUsMHhFMywKLTB4RkYsMHhCNSwweEJGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHhGRiwgMHhFRiwweERGLDB4RkUsMHhGRiwweEJGLDB4RkIsMHhGRSwweEZGLAotMHhCRiwweENGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHg5QiwweEZGLCAweEZFLDB4RkIsMHhGRSwweERGLDB4RkYsMHg3RiwweEZGLDB4RjcsCi0weEZFLDB4RkYsMHhERiwweEZCLDB4RkIsMHhGRSwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4QjcsMHhGRSwweEZBLDB4RkYsMHhBQiwKLTB4RUYsMHhGRiwweEZELDB4QjUsMHg3QiwweDdGLDB4RkIsMHhGNywgMHhGRCwweEZGLDB4RkYsMHhERCwweEZGLDB4RUYsMHg4RiwweEZGLAotMHgyRiwweEZGLDB4RkIsMHg3QywweEZGLDB4M0YsMHhERiwweDczLCAweEVCLDB4RkUsMHgzRiwweEZGLDB4RUYsMHhGQiwweEZFLDB4RkYsCi0weEVGLDB4RkQsMHhGRiwweEJGLDB4RkQsMHgwRiwweEZGLDB4RkYsIDB4RkYsMHhGNSwweEY5LDB4RkYsMHg3RiwweEQ3LDB4RkQsMHhGRiwKLTB4REYsMHhGRiwweEY3LDB4RkIsMHhGRiwweDdGLDB4QkYsMHhGRiwgMHhGRiwweEYwLDB4OUYsMHhGRiwweEZFLDB4N0YsMHg4QiwweEUzLAotMHhGOSwweERFLDB4MjcsMHg5QiwweEU2LDB4QkUsMHg3RiwweDlCLCAweEMzLDB4RjgsMHhERSwweDdGLDB4OUQsMHhFNywweEZFLDB4N0YsCi0weEZGLDB4RkYsMHg1RiwweEQ3LDB4RkYsMHhGRiwweEZGLDB4NEYsIDB4RkIsMHhGRiwweEZGLDB4N0YsMHhGRiwweEFGLDB4RkYsMHg5RiwKLTB4N0YsMHhGQiwweEZGLDB4RTgsMHhGRiwweEZGLDB4RkUsMHhCRiwgMHhBRiwweEZGLDB4RkYsMHhGRSwweEJGLDB4RUYsMHhGNywweEZGLAotMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLCAweEZDLDB4RkYsMHhGRiwweEZELDB4N0YsMHhGRiwweEZGLDB4RkYsCi0weEZELDB4M0YsMHhDRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsIDB4RkYsMHhGRCwweDdGLDB4RkYsMHhGRiwweDkzLDB4RkYsMHhGRiwKLTB4N0EsMHhERiwweEY3LDB4RkYsMHhGRiwweDdCLDB4N0YsMHhCNywgMHhFRiwweEZGLDB4RkYsMHhGRCwweEJGLDB4RkQsMHhGQiwweEZGLAotMHhGNywweEZGLDB4RDcsMHhGRiwweEZGLDB4RkYsMHhGQywweDlGLCAweDZGLDB4Q0IsMHhGRiwweEY0LDB4QkIsMHhERiwweEQ2LDB4RkQsCi0weEJGLDB4MkYsMHhEMywweEY3LDB4RkYsMHhERiwweEZGLDB4Q0YsIDB4RkYsMHhGQSwweEJFLDB4QkQsMHhBRiwweDZBLDB4REEsMHhCRSwKLTB4QkIsMHhBQiwweDNBLDB4QkUsMHgyRCwweEFFLDB4RUIsMHhEQSwgMHhGNiwweDNGLDB4QUQsMHhGNSwweERELDB4RkYsMHhDRiwweEYxLAotMHhGRiwweEY5LDB4N0YsMHhGRiwweDczLDB4RkUsMHhGRiwweENGLCAweEMzLDB4RjQsMHhGNywweDJGLDB4RjMsMHhGRiwweEZDLDB4RkYsCi0weDdDLDB4MUYsMHhGRiwweDNGLDB4NEYsMHhGRiwweDdFLDB4RkYsIDB4RUYsMHhCRCwweEY2LDB4RkUsMHhGRiwweDJCLDB4RUYsMHhEQywKLTB4RkIsMHhGRCwweEZGLDB4RkIsMHhGRiwweEVBLDB4N0IsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RjcsMHhERiwweEZGLAotMHhFMywweDdELDB4RkYsMHhCNywweEZGLDB4QkYsMHhGRiwweEZGLCAweERGLDB4RkYsMHhGOCwweEZGLDB4QkYsMHhGRiwweEJGLDB4RUIsCi0weEU3LDB4RkEsMHhGRSwweDNELDB4QkYsMHhFOSwweEZDLDB4QkYsIDB4RkYsMHhGQSwweEZCLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhEOSwKLTB4RkYsMHhGRiwweEZGLDB4RjYsMHg3RiwweEZGLDB4RjYsMHg3RCwgMHhGRiwweERGLDB4Q0YsMHhGRCwweEJGLDB4RkIsMHhFRiwweDdFLAotMHhGRiwweDdGLDB4RkYsMHhGRiwweEQzLDB4RkYsMHhGRCwweEZCLCAweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZGLDB4QkYsCi0weEZFLDB4RkYsMHhGNywweEVGLDB4RkYsMHhGRiwweEZGLDB4RkIsIDB4RkYsMHg4NywweEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4N0IsMHhGRSwweEZGLDB4RkUsMHgzQiwweEY3LDB4RjcsMHhGRiwgMHgzRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHgwRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEY3LCAweEZGLDB4RkYsMHhBRCwweEZGLDB4RkUsMHhGNywweEZGLDB4RkYsCi0weDVGLDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRCwweEZGLDB4RjUsIDB4RkYsMHhERiwweEZGLDB4QkQsMHhGRiwweEU5LDB4RkYsMHhDNywKLTB4RjMsMHhGRiwweEZGLDB4RjcsMHhGRiwweEYzLDB4RkYsMHhGOCwgMHgzQiwweEZGLDB4RkYsMHg3QiwweERGLDB4QkYsMHhGQiwweEVGLAotMHhGQiwweEZGLDB4RkIsMHhGNywweEY3LDB4QkIsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGQiwweEZGLDB4RkUsMHg3RiwweEYzLDB4N0YsCi0weDVFLDB4QjcsMHhCRiwweEZELDB4N0YsMHhGRiwweEY5LDB4N0YsIDB4RkIsMHhGRiwweEVCLDB4RkQsMHg3RiwweDdGLDB4RkYsMHhFRiwKLTB4RkIsMHhFMCwweDNGLDB4RkUsMHhCRiwweEJGLDB4REYsMHhGRiwgMHg3RSwweEZGLDB4RjcsMHhGRiwweEZGLDB4RkUsMHhCRiwweEZGLAotMHhEQiwweDc4LDB4RkYsMHhGRiwweEZGLDB4RUUsMHhBMSwweEJGLCAweEY1LDB4REUsMHhGQiwweEY3LDB4RkYsMHhGQiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhENywweEZGLDB4RkYsIDB4RkYsMHhGRiwweEVGLDB4RjAsMHhGRiwweEZGLDB4RkYsMHhGMywKLTB4RjcsMHhGRiwweEVGLDB4RkYsMHhFNywweENGLDB4RkYsMHhGQiwgMHhGRiwweEVGLDB4RkYsMHhGRiwweDlGLDB4OUYsMHhFRiwweEZDLAotMHgxNiwweEJGLDB4RkUsMHhGMywweEU0LDB4RkYsMHhGRiwweEM2LCAweEZGLDB4RTcsMHhGRiwweEZGLDB4RkQsMHhGRiwweEJGLDB4RkYsCi0weEZGLDB4M0YsMHhGRiwweEJGLDB4RDYsMHhBRiwweDdGLDB4RkUsIDB4NkIsMHg3RSwweDdGLDB4RkYsMHhBRiwweEZGLDB4RkYsMHhCRiwKLTB4RkYsMHg1RiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkUsMHhGRiwgMHhGRiwweEJELDB4REIsMHhGRiwweEZFLDB4NUYsMHhGMiwweEZGLAotMHhGRiwweDVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEVGLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweERFLDB4QkYsCi0weEZGLDB4RkYsMHhFRiwweEZCLDB4NzcsMHhGRSwweEJELDB4N0YsIDB4NUYsMHhGRiwweEZGLDB4RkYsMHhERiwweDZGLDB4RUQsMHhGRiwKLTB4RkQsMHhGRiwweDdGLDB4RkQsMHg2RiwweEZGLDB4RkYsMHg3NywgMHhEQSwweENGLDB4RkQsMHg1RiwweEZGLDB4QkYsMHhGRiwweEZGLAotMHhERiwweDdGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLCAweDY2LDB4N0YsMHhGRiwweEZFLDB4QkYsMHhFNywweEJGLDB4RkEsCi0weEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhERiwweEZGLDB4NTksIDB4RUYsMHhGRiwweEVGLDB4RkIsMHg3RiwweDg5LDB4RkYsMHhGRiwKLTB4RTksMHhGRiwweDZGLDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4N0YsMHhGMiwweEY3LDB4RkYsMHhGRiwweEVGLAotMHhGOCwweDdGLDB4RkIsMHhGRiwweEZELDB4RkYsMHhGRiwweEQ5LCAweEZGLDB4RUYsMHhCQiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RUYsCi0weERFLDB4RkYsMHhGRiwweDlGLDB4N0YsMHhERiwweEZGLDB4RjcsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwweEZGLDB4RkYsMHhBRiwKLTB4RkYsMHhGRiwweEY3LDB4M0YsMHhFQiwweDlGLDB4RkUsMHg3RiwgMHg5RSwweDdGLDB4OUYsMHhGRSwweDg3LDB4RkYsMHhFRCwweERCLAotMHg1NiwweEZGLDB4QkYsMHhBRiwweDBCLDB4RDIsMHhGRiwweEVGLCAweERCLDB4NkUsMHg3RCwweEJELDB4NkYsMHhGOCwweEZFLDB4M0YsCi0weEZBLDB4NUIsMHhGRiwweEZELDB4QkYsMHhFRiwweEZGLDB4QkYsIDB4NkYsMHhEQiwweEU2LDB4RkYsMHhGRiwweDNGLDB4RkYsMHhERiwKLTB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweERBLDB4M0YsMHhGRiwgMHhGQiwweEZFLDB4RkUsMHhGRiwweEZGLDB4REYsMHhGNywweEJELAotMHhGRiwweEZELDB4RkYsMHhGRSwweEZGLDB4RkIsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGMSwweDVGLDB4RkQsMHg5RiwweERGLDB4RkQsCi0weEZGLDB4RkQsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4NzYsIDB4RkEsMHhGRiwweEZGLDB4N0YsMHhFMywweEY4LDB4RkYsMHhBRSwKLTB4RkYsMHhGQiwweDdFLDB4OUQsMHg3MywweEZGLDB4RkEsMHg3RiwgMHhERiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkIsMHhDRCwweEZGLAotMHg3RiwweEVGLDB4RkIsMHhGRiwweEZELDB4RkYsMHhGNywweDdGLCAweDdGLDB4RUYsMHhGRiwweEVELDB4RkYsMHhGRiwweEZGLDB4QjUsCi0weEZGLDB4QkYsMHhGRiwweEJGLDB4RkQsMHhFRiwweERCLDB4RjcsIDB4RkYsMHg5MywweEZGLDB4RUYsMHhFMiwweEY5LDB4QkUsMHg3RiwKLTB4OEIsMHhFNywweEY5LDB4RkUsMHg2QiwweEU3LDB4RjksMHhGRSwgMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHg0NywweEZGLAotMHhGRiwweEZELDB4RkYsMHg5RiwweEZGLDB4RDcsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGNSwweEZGLDB4OUYsMHhGRiwweEY3LDB4RkUsCi0weEZGLDB4QkYsMHhGRSwweDZGLDB4RkYsMHhGRiwweEZCLDB4RkYsIDB4RkYsMHhGRiwweEFGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhGQiwKLTB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwgMHhERiwweEZGLDB4RkYsMHhGNywweEZGLDB4RkYsMHhGRiwweERGLAotMHhGRiwweEZGLDB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRiwweEZGLCAweDVGLDB4RkIsMHhGRSwweEZGLDB4RjgsMHgzNywweEZGLDB4RkYsCi0weEVGLDB4RkYsMHg3RiwweEZFLDB4QkYsMHhGRiwweEZGLDB4RkUsIDB4QkYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEJGLDB4RkQsMHhGRiwKLTB4N0YsMHhGQSwweDdGLDB4RkYsMHhGRiwweDZGLDB4RkYsMHhGRiwgMHg3RCwweEZGLDB4Q0YsMHhGRiwweEZGLDB4RkYsMHg0RiwweEZGLAotMHhGMiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQSwweEJGLCAweEZGLDB4QUUsMHhFQiwweEZBLDB4RkUsMHhCQiwweEFELDB4RUIsCi0weEZBLDB4RjcsMHhBRiwweDZCLDB4RkEsMHhGNiwweEJGLDB4MjUsIDB4RTksMHhGMiwweDdGLDB4NDUsMHhGRiwweEZGLDB4RkQsMHhGNywKLTB4RjcsMHhCRiwweEZGLDB4REYsMHhGRiwweEZGLDB4QkYsMHhGQiwgMHhGRiwweERGLDB4RjMsMHhGRiwweEY3LDB4M0YsMHhDRiwweEZGLAotMHhBMSwweEZGLDB4RkYsMHhCRiwweEU3LDB4RkYsMHhGRiwweDdGLCAweEZGLDB4M0QsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLDB4MkYsCi0weEZGLDB4RkIsMHhGNSwweDdGLDB4RkUsMHg1NywweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywKLTB4M0YsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRSwgMHhGNywweEVFLDB4QUYsMHhGRSwweEVFLDB4RTcsMHhGQSwweEZGLAotMHhGRSwweDlELDB4RjksMHg1RSwweEZFLDB4RkYsMHhFQiwweEZGLCAweEZGLDB4REYsMHhBNywweEZGLDB4RkYsMHhGRiwweEZDLDB4REIsCi0weEZGLDB4RkYsMHhGRiwweDdFLDB4RkIsMHhGRiwweEZGLDB4RUYsIDB4RkIsMHhGRCwweEZGLDB4REIsMHhGRiwweEZGLDB4RkYsMHhFRiwKLTB4RkYsMHhGRiwweEZGLDB4RkQsMHhCRiwweEZFLDB4QkYsMHhGRiwgMHg2RiwweDdGLDB4RkYsMHhGNywweEZGLDB4RkYsMHhGOSwweEZGLAotMHhGNywweEZGLDB4QkYsMHhERSwweEY3LDB4RkYsMHhGRiwweEZGLCAweEZBLDB4N0YsMHhGRCwweEJGLDB4NUYsMHhGRiwweEZGLDB4QkYsCi0weEZGLDB4RUQsMHhGRiwweEY3LDB4QkYsMHhGRiwweEZGLDB4RUYsIDB4RkYsMHhERiwweEZGLDB4RkYsMHhGRiwweEU2LDB4RkYsMHhGQiwKLTB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFQiwweEZGLAotMHhGRCwweEZGLDB4RjUsMHhGRiwweEY2LDB4N0YsMHhERiwweEJELCAweENGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwweEZGLDB4RkYsCi0weEZGLDB4RjksMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTMsIDB4RkYsMHhFRSwweEJGLDB4RkYsMHg3RCwweEVGLDB4RkUsMHhGRiwKLTB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEU3LDB4RkYsMHhCNSwweEFFLAotMHhGRiwweEZGLDB4QjYsMHhGRSwweEJGLDB4RkYsMHhGRiwweEJGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4MjcsMHhGRiwweEVGLDB4RkUsMHg3RiwweERGLDB4RkYsIDB4N0UsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZELDB4RkYsMHhGNywweEY5LDB4OUYsMHhGRiwgMHg1RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDdGLAotMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweDBGLDB4RkYsMHhFNywweEJGLDB4RkUsCi0weEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZDLDB4QkYsIDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhDNCwKLTB4NkIsMHhGRiwweDI5LDB4MUYsMHhGQiwweEFGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhFRiwweDFCLDB4RkUsMHhGRiwweEZDLAotMHg2RiwweEZGLDB4RkYsMHhGRCwweDZBLDB4RjcsMHhENywweEY1LCAweEJGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZFLDB4QkYsMHhGRiwweEZGLDB4RkEsMHhGRiwweEZGLDB4RjcsIDB4RkIsMHhERCwweEJGLDB4RkYsMHhFNywweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4N0YsMHhGRiwgMHhGRiwweEY1LDB4RkYsMHhGRiwweEY3LDB4RkQsMHhCMywweEVGLAotMHhGRCwweDdFLDB4NUQsMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLCAweEZELDB4N0YsMHhEMiwweEY1LDB4RkIsMHg3RSwweENCLDB4QjcsCi0weEZGLDB4RkYsMHhGRiwweEM2LDB4RkYsMHhGRCwweEVFLDB4NjMsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY2LDB4RkQsMHg2NSwKLTB4NUIsMHhERiwweEZGLDB4RDUsMHhGRiwweEZGLDB4RkYsMHhGNiwgMHhFNywweEJGLDB4RjcsMHhBOSwweEZGLDB4RkYsMHhFRCwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEVCLDB4RkYsMHhGRiwweEZGLCAweEFGLDB4RkYsMHhGRiwweEZGLDB4RjgsMHgxQiwweEZGLDB4RTMsCi0weEQwLDB4QkYsMHhGRiwweEUxLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhENywweEZGLDB4RkYsMHhGRiwweDVGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEFGLDB4RkYsMHhEQiwweDc2LDB4QkYsMHhGRiwgMHg3RiwweEZGLDB4QkYsMHhFRiwweEZFLDB4RkYsMHhCRiwweEVGLAotMHhGQiwweEZFLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGMiwweDdGLCAweEZGLDB4OUYsMHhGRSwweEJELDB4RkUsMHg3RiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGNywweDNGLDB4RUMsMHg3RiwweEY2LDB4OTUsMHhCQiwKLTB4RUYsMHhGOCwweEZFLDB4RkMsMHhCRiwweDJGLDB4REEsMHhGQywgMHhCRiwweDJGLDB4Q0IsMHhGMiwweEZDLDB4QkYsMHhFRiwweEZGLAotMHhBOSwweEJGLDB4Q0YsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZFLCAweERELDB4QjcsMHg2RCwweEY2LDB4RDksMHhCNiwweDZELDB4OUIsCi0weDc2LDB4RDksMHhCRiwweEZCLDB4RkQsMHhBMywweEZGLDB4QkYsIDB4RUYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhERiwKLTB4RkQsMHhFRiwweDdCLDB4REUsMHhGNywweEZELDB4RUYsMHg3RiwgMHhGRiwweEZGLDB4MDUsMHhGRiwweEZBLDB4RkUsMHg3RiwweEVGLAotMHhFMywweEZGLDB4RkYsMHhGRCwweDdGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4NUYsMHhGRiwweEZGLDB4RkQsMHg3RiwweEZCLDB4QUYsCi0weEZGLDB4NjMsMHhDOCwweEZGLDB4QkYsMHhFRiwweEZGLDB4RkYsIDB4RkEsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZFLDB4OUYsMHhGNywKLTB4RkYsMHhGQSwweEJGLDB4RkUsMHg5RiwweEZCLDB4N0YsMHhGRiwgMHhGRiwweEVGLDB4RDcsMHhGRiwweEZGLDB4RjUsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkQsMHg3RiwweEZGLDB4RkYsMHhCRiwweEZGLCAweEY5LDB4QkYsMHhGRiwweEJFLDB4MjcsMHg5RiwweEU3LDB4RjksCi0weEZFLDB4N0YsMHg4QiwweEU3LDB4RkUsMHg3RiwweDlGLDB4RTIsIDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywweEYxLDB4N0YsMHhGRiwKLTB4RkYsMHhGRiwweEZCLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhENywgMHhGRiwweEZGLDB4RkYsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZGLAotMHhENywweEZGLDB4RkEsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLCAweEZELDB4RkYsMHhGRiwweEZGLDB4QUYsMHhGNywweEZGLDB4RkYsCi0weEZGLDB4RUIsMHhGRiwweEZGLDB4RkYsMHhBRiwweEZGLDB4QzQsIDB4RkYsMHhGNywweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RDcsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEVCLDB4RkYsMHhGQiwweDdBLAotMHhERiwweEY3LDB4RkQsMHhGRiwweEZGLDB4RkUsMHhCRiwweEZGLCAweEZGLDB4N0YsMHhGRiwweEFGLDB4RkYsMHhGRiwweEZGLDB4RjcsCi0weEVGLDB4RTMsMHhGRiwweERELDB4RDIsMHhGRiwweERGLDB4RkYsIDB4RkYsMHhGMiwweEZDLDB4QkYsMHhDQiwweEY2LDB4RkQsMHhCRiwKLTB4MkYsMHhDQiwweEZGLDB4N0YsMHhERiwweERFLDB4QUYsMHhGRiwgMHhEQSwweEVFLDB4QkYsMHhBRiwweEU5LDB4RkEsMHhGNCwweEJELAotMHhBRiwweDVBLDB4QUUsMHhCQiwweEFCLDB4NkIsMHhEQSwweERFLCAweEJGLDB4QUQsMHhENywweDVFLDB4RkYsMHhGRiwweEJGLDB4RkMsCi0weEZGLDB4REYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsIDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGQSwKLTB4MUYsMHhGRiwweEZFLDB4RkIsMHhFRiwweEJGLDB4RkQsMHhGRiwgMHhGRCwweEJELDB4NzcsMHhGRiwweEZGLDB4RkYsMHhGRiwweDlELAotMHhFRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4N0QsMHhGRiwweEZCLCAweEZFLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUUsIDB4QkYsMHhFNCwweEZCLDB4RkYsMHhGRSwweDNGLDB4RkUsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4QUYsMHhFQSwweEZFLDB4QkYsMHhBRiwgMHhFQiwweEZBLDB4RkUsMHhGRiwweEZGLDB4RkYsMHg1NSwweEY2LAotMHhGRiwweEZFLDB4RjcsMHhGRiwweDdGLDB4RkYsMHhFQiwweEY3LCAweDVGLDB4QzUsMHhGRCwweDdGLDB4NUYsMHhENywweEY1LDB4RkYsCi0weDZGLDB4RkIsMHhGRiwweDhBLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RUIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4QkYsMHhCRiwKLTB4RUYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwgMHg3NywweERGLDB4RkIsMHhGRiwweEZELDB4N0YsMHhFRiwweEZGLAotMHhGRiwweEZGLDB4QkYsMHg3RiwweEZGLDB4REYsMHhCRiwweEZGLCAweEZCLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhFRiwweERGLDB4RkYsCi0weEZFLDB4RkYsMHg5RiwweEVGLDB4N0QsMHhGRiwweEY3LDB4RkYsIDB4N0YsMHhGRiwweEZGLDB4REYsMHhGNywweEZELDB4RkYsMHhFRiwKLTB4REYsMHhGRiwweERGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwweEZCLAotMHhGRCwweEZGLDB4QkYsMHhERiwweEQxLDB4RkYsMHhGOCwweDNCLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weDdFLDB4REIsMHhGRCwweEZGLDB4NzcsMHhEQiwweEI3LDB4N0QsIDB4QkYsMHhGQiwweEZGLDB4RjgsMHg3RiwweEVELDB4N0IsMHg1RSwKLTB4RkYsMHhGRSwweEZGLDB4RkYsMHg0RiwweEQ3LDB4RkQsMHg3RiwgMHhERiwweEQ3LDB4RjUsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLAotMHhGMiwweDNGLDB4RkUsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4QkYsMHhFRiwweEZFLDB4RkYsMHgzQiwweEVFLDB4RkYsCi0weEZDLDB4RUYsMHhGRiwweEZGLDB4RkYsMHg4NSwweEZGLDB4RkQsIDB4RkUsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZFLDB4RkYsMHhERiwKLTB4RkIsMHhGRiwweDVGLDB4QkYsMHhGRiwweEZELDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4QTgsMHhGRiwweEZGLDB4OUYsMHg5RSwweEZGLAotMHhGRiwweEZGLDB4N0YsMHhGMywweEZGLDB4RkYsMHhDRiwweEZGLCAweEY3LDB4RkQsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZDLDB4MTYsCi0weEJGLDB4Q0YsMHhBMywweEU1LDB4RUYsMHg3RiwweEZGLDB4RjMsIDB4RTQsMHhGRiwweENGLDB4OTMsMHhGQywweEZGLDB4M0YsMHhDRiwKLTB4RkYsMHhGRiwweEZGLDB4RDYsMHgwRiwweDdELDB4QkYsMHg2RSwgMHhGQiwweEY0LDB4RkMsMHhBRiwweDZELDB4REIsMHg3NywweEI3LAotMHg2RCwweERCLDB4RjYsMHhGRCwweEJGLDB4RkYsMHhGRiwweEZGLCAweEJGLDB4OUIsMHhGQSwweERFLDB4QjcsMHhCNywweEVELDB4RjksCi0weDdFLDB4QjcsMHhBQywweEVCLDB4RDYsMHhCMywweEFELDB4RUIsIDB4N0EsMHhERiwweEZGLDB4RkYsMHhGRiwweEQ4LDB4QkYsMHhGRiwKLTB4QjcsMHhFRCwweDlGLDB4NkYsMHhERCwweEY3LDB4NjgsMHhEQiwgMHgzNywweEIzLDB4NkMsMHhEQiwweDM2LDB4Q0QsMHhCMywweDdGLAotMHhGRiwweDdGLDB4RjUsMHg2RiwweEZELDB4RUYsMHg3OSwweDNELCAweEY3LDB4OTMsMHhFNCwweDdBLDB4OUUsMHhBRCwweEVBLDB4N0EsCi0weDlFLDB4RjcsMHhCRCwweEVGLDB4RkYsMHhGRiwweEZGLDB4NzYsIDB4N0YsMHhGQiwweEM2LDB4RkYsMHhCQiwweEVGLDB4REEsMHhGRSwKLTB4RkQsMHhCRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwgMHhGRiwweEZGLDB4RkIsMHhGRiwweEE1LDB4RkYsMHhGRCwweEFCLAotMHg2RiwweDc4LDB4REUsMHgxNywweDhGLDB4NzksMHhERiwweEZELCAweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweEZGLDB4RkIsCi0weEZGLDB4RkIsMHhGRiwweEVGLDB4RkIsMHhFRiwweEZCLDB4RkUsIDB4RkYsMHhCQiwweERBLDB4RjMsMHhFRiwweDNCLDB4Q0UsMHhGMywKLTB4QkMsMHhFRiwweDNGLDB4Q0YsMHhERiwweEZGLDB4QjcsMHhGRiwgMHhGRiwweEZGLDB4Q0YsMHg3MywweEZGLDB4QkYsMHhFRiwweEZGLAotMHhGMywweEZGLDB4M0YsMHhDRiwweEYzLDB4RkMsMHhGRiwweDNELCAweENGLDB4OUYsMHhGRSwweDA3LDB4RkYsMHhBRiwweEVCLDB4RkUsCi0weEZELDB4QkYsMHhFRiwweEVCLDB4RkEsMHhGRiwweEFGLDB4RUIsIDB4RkEsMHhGRSwweEJGLDB4QUYsMHhGQiwweEZFLDB4M0YsMHhGQiwKLTB4OUIsMHhGRiwweDdGLDB4REYsMHhGRiwweEYzLDB4RkUsMHhGRiwgMHhERSwweEY3LDB4QkYsMHg3QiwweERFLDB4RjcsMHhCRCwweEVGLAotMHg3QiwweEZFLDB4RkYsMHhGRiwweERGLDB4M0YsMHhGRSwweEZGLCAweEI3LDB4RkYsMHhFRiwweEY3LDB4RkYsMHhCRiwweEVELDB4RkUsCi0weERGLDB4QjcsMHhFRCwweEZCLDB4N0UsMHhERiwweEZGLDB4RkYsIDB4RkYsMHhGRCwweDVGLDB4RUYsMHhFQiwweEZBLDB4RkUsMHhGNSwKLTB4QkYsMHg2RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRSwweEY4LDB4RkYsMHhBOCwweEZGLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweDZBLDB4RkIsMHhCNywweEVGLCAweEZCLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsCi0weEVGLDB4RkIsMHhGRiwweEUwLDB4RkYsMHhGRiwweEZELDB4N0YsIDB4NUMsMHhENywweDdELDB4REYsMHhGMywweDVDLDB4RjUsMHhDRCwKLTB4NzMsMHg1RSwweEQ3LDB4QjUsMHhGRCwweDdGLDB4RUYsMHhGRiwgMHhEQiwweEZGLDB4RkYsMHhFMiwweEY4LDB4QkUsMHgyRiwweDhGLAotMHhFNywweEY4LDB4QkUsMHg2QiwweEUyLDB4RjgsMHhCRSwweDJGLCAweDhCLDB4RTIsMHhGOSwweEZFLDB4N0YsMHhFNywweEZGLDB4RDcsCi0weEY1LDB4RkQsMHg3RiwweEZGLDB4RjcsMHhGNSwweEZELDB4N0YsIDB4RDcsMHhGNSwweEZELDB4N0YsMHg1RiwweEQ3LDB4RjUsMHhGRiwKLTB4RkYsMHhGRiwweDhGLDB4RkYsMHhBRiwweEVCLDB4RkEsMHhGRiwgMHhGRiwweEJGLDB4RUIsMHhGQSwweEZGLDB4MkYsMHhFQiwweEZBLAotMHhGRSwweEJGLDB4QUYsMHhFQiwweEZGLDB4RkYsMHhGRSwweDVGLCAweEZGLDB4NUYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RDcsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwweEZFLDB4QjcsMHhGRCwKLTB4RkYsMHg3RSwweERGLDB4RjcsMHhBRCwweEZGLDB4N0YsMHhGNywgMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLAotMHhGNiwweDdGLDB4RkYsMHhGRiwweEZGLDB4REIsMHhGNiwweEZDLCAweEFGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFQywweEJGLDB4RkYsIDB4QUYsMHhFQiwweEZBLDB4RjYsMHhBQiwweDhGLDB4RUIsMHhGQSwKLTB4RjcsMHhBNSwweEVCLDB4RkEsMHhCRSwweEJGLDB4QUYsMHhFQiwgMHhGQSwweEZGLDB4NkQsMHhGRiwweEZGLDB4N0YsMHhERiwweDMzLAotMHhERCwweEZGLDB4N0YsMHhGRSwweEY3LDB4RkMsMHg3RiwweEZCLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4QTksCi0weEZGLDB4RkQsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4REYsIDB4RkYsMHhGRiwweEVGLDB4RUYsMHhGRCwweEZGLDB4N0YsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkUsMHhBNywweEZGLDB4RkYsMHhGRiwgMHg3NywweERGLDB4RjcsMHhGRCwweDlGLDB4N0YsMHhGRSwweDc3LAotMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4QUYsMHhCRiwweEFGLDB4RkYsMHhGOSwweEJFLDB4QkYsCi0weDhGLDB4RkIsMHhGRSwweEZFLDB4RUYsMHhGQiwweEZFLDB4RkYsIDB4QkYsMHhFRiwweEZCLDB4RkYsMHhGRiwweEZELDB4REYsMHg2RiwKLTB4RUYsMHhGRiwweDdGLDB4RkYsMHhCRiwweEJGLDB4REYsMHhGRiwgMHhGQywweEZGLDB4REYsMHhGNywweEZELDB4RUYsMHg3RiwweERGLAotMHhGRiwweEZGLDB4RkYsMHgzRiwweEY2LDB4RkYsMHhDRiwweEZGLCAweERCLDB4RkIsMHhGNywweEZGLDB4RUIsMHg3QSwweEZGLDB4RkYsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkUsIDB4NkQsMHhGRCwweEZGLDB4NUYsMHhGQiwweEZGLDB4RkYsMHhGNywKLTB4RkYsMHg1RiwweEY1LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEY4LDB4RkYsMHhGQiwweEZGLAotMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFNywweEY2LCAweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsCi0weEZGLDB4QzksMHhGRiwweEZGLDB4RkYsMHhCRCwweEZGLDB4QkYsIDB4QUYsMHhFRiwweEVGLDB4M0YsMHhEMSwweEZDLDB4N0YsMHhGQiwKLTB4QzcsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTMsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHg3NywweEZGLAotMHhERiwweEI3LDB4RkQsMHhGNywweEZELDB4RjcsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweDU3LDB4RkYsMHhGNywweEE1LDB4RkQsCi0weDNGLDB4REYsMHhCRiwweEJGLDB4RkUsMHg3RiwweEZGLDB4RkYsIDB4RkYsMHhERiwweEZBLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRSwKLTB4ODcsMHhGRiwweEU5LDB4RkYsMHhGRSwweEVGLDB4QkYsMHhFRiwgMHhGRSwweEZFLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZBLDB4OUYsMHhGRiwweDNGLCAweEZGLDB4RkQsMHhGRCwweDU3LDB4REYsMHhGRCwweEYzLDB4RkYsCi0weERGLDB4RkQsMHhGRiwweDVGLDB4REYsMHhGNSwweEZELDB4RkYsIDB4RkYsMHhGOSwweDhGLDB4RkYsMHhGRiwweEZGLDB4RUUsMHg3RiwKLTB4RkYsMHhGRiwweEJGLDB4NUUsMHhGRSwweEVDLDB4RkIsMHgzRiwgMHg3RiwweDlGLDB4RUYsMHhGOSwweEZGLDB4RkYsMHhDRCwweDZCLAotMHhGRiwweEZGLDB4RkYsMHhDNSwweEYzLDB4RkMsMHhGQSwweDM4LCAweEZGLDB4QUYsMHgzRiwweEVFLDB4N0YsMHg5RiwweEZGLDB4RDksCi0weEZGLDB4RkYsMHhGRCwweDdBLDB4RjcsMHhGRiwweEYzLDB4RkYsIDB4QUYsMHg2RiwweERCLDB4RjIsMHhCOSwweEU5LDB4RkIsMHhGRiwKLTB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGQiwgMHhDNSwweEJGLDB4RkYsMHhFRiwweEZGLDB4NUUsMHhCNywweEFELAotMHhDRCwweDc5LDB4N0MsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHg5MywweEZGLDB4RUYsCi0weEVBLDB4RkUsMHhCRiwweEVGLDB4NUIsMHhEMiwweENELDB4RjUsIDB4NkQsMHg3NywweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwKLTB4RkYsMHhGRiwweDY2LDB4RkYsMHhENSwweDY1LDB4N0QsMHg1RiwgMHg3NSwweDlELDB4NjUsMHg3RiwweEQ2LDB4RkIsMHg0RiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNiwweEM3LCAweEZGLDB4QkYsMHhFRiwweEZBLDB4RkUsMHhGRiwweEJGLDB4RUIsCi0weEZGLDB4REYsMHhGRiwweDdFLDB4RkYsMHhGRiwweEVGLDB4RkQsIDB4N0UsMHhENywweEZGLDB4NzgsMHhERiwweEZGLDB4NUYsMHhERiwKLTB4RjUsMHhCRiwweDdGLDB4REYsMHhDNSwweEZGLDB4M0YsMHhGNiwgMHg3RSwweEZGLDB4MEYsMHhFRiwweEYyLDB4M0UsMHhCRiwweEZGLAotMHhGQiwweDNGLDB4RkYsMHhGQiwweDdGLDB4RkYsMHhCMywweEZFLCAweEZCLDB4RjYsMHhGRCwweEZGLDB4REEsMHhGNywweEZELDB4RkYsCi0weDdGLDB4REYsMHhGNywweEJGLDB4RkYsMHhGQSwweDdGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4OUYsMHhGRiwweEYzLDB4REMsMHhGOSwKLTB4QkYsMHhDRSwweEU3LDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywgMHhGRiwweEZGLDB4RTIsMHg3RiwweEZFLDB4RkYsMHhCRiwweEVGLAotMHhFQiwweEZBLDB4RkYsMHg5RiwweDY3LDB4MUUsMHhGRiwweDhGLCAweEU3LDB4RjgsMHhGRSwweDdGLDB4OEYsMHhFRiwweEZGLDB4QkQsCi0weEJGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhERiwweEY3LDB4RkYsIDB4RkMsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkQsMHhCMywweEZGLDB4RkYsMHhFRiwgMHhGRiwweEZGLDB4QkYsMHhFRCwweEZGLDB4RkIsMHhFRSwweEZFLAotMHhGRiwweEZGLDB4RUYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4QjUsMHhGRiwweEI3LDB4RkQsMHhGRCwweDZFLDB4RkYsCi0weEZGLDB4RkUsMHhGRCwweDJGLDB4RDgsMHhGRSwweEJGLDB4OEYsIDB4RUIsMHhGOSwweEZFLDB4M0YsMHhGRiwweEZBLDB4Q0YsMHhGRiwKLTB4RTcsMHhEOSwweEZBLDB4QkYsMHhERiwweDc3LDB4RkMsMHhGQiwgMHgzRiwweEFCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLAotMHhGRiwweEZGLDB4RUUsMHgxRiwweEZGLDB4REYsMHhGNywweEZGLCAweEZGLDB4RkYsMHg1RiwweDk3LDB4MzUsMHhCRiwweDVFLDB4RkUsCi0weEJGLDB4RUYsMHhGRiwweEY3LDB4RkQsMHhGRiwweEZGLDB4RkEsIDB4QkYsMHhGRiwweEJFLDB4NkYsMHg5RiwweEU3LDB4RjgsMHhCRSwKLTB4MkYsMHg4QiwweDY2LDB4OTQsMHg3RCwweDlELDB4RTcsMHhGOSwgMHhGRSwweDdGLDB4OUYsMHhFNywweEYxLDB4N0YsMHhGRiwweEZGLAotMHhGRiwweEY3LDB4RjUsMHhGRCwweDdGLDB4NUYsMHhGQiwweEZELCAweDlFLDB4RkYsMHhGQiwweEZFLDB4RkYsMHhGRiwweEVGLDB4RkYsCi0weEZGLDB4QTAsMHhGRiwweEZGLDB4RkYsMHhCRiwweEVGLDB4RUIsIDB4RkEsMHhGRSwweEJGLDB4QjcsMHhGNywweEY3LDB4RkYsMHhGRiwKLTB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REQsMHhGRiwgMHhGRCwweEZGLDB4RkYsMHhGRiwweEQ3LDB4RkYsMHhGRiwweEZGLAotMHg3RiwweEY1LDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLCAweEJGLDB4RkYsMHhGRiwweEFCLDB4RkUsMHhGQiwweEZFLDB4RkYsCi0weEY3LDB4QUYsMHhGRiwweEZGLDB4REUsMHhGNywweEVCLDB4NUYsIDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RkYsMHhGRiwKLTB4QjMsMHhGRiwweEM5LDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhENiwweEZGLDB4RkYsMHhDQiwweEZGLDB4RkYsMHhERiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZDLDB4OEYsMHhGRiwweEJBLCAweEJFLDB4QkYsMHhBRiwweEVCLDB4NzgsMHhGRSwweEI3LDB4QUQsCi0weDNBLDB4RkUsMHhCNywweEFGLDB4RUIsMHg3QSwweEZFLDB4QkYsIDB4QUYsMHhGRiwweDlGLDB4RkYsMHhGRiwweERGLDB4RkMsMHhGRiwKLTB4RkYsMHhGRSwweEMzLDB4RkUsMHhGRiwweEZGLDB4MzMsMHhGQywgMHhGRiwweEJGLDB4REYsMHhGMywweEZGLDB4RkYsMHhCQiwweDlGLAotMHhGRiwweEZGLDB4RkYsMHhFQiwweERGLDB4RkYsMHhGRiwweEFGLCAweEY3LDB4NkYsMHhGOSwweEJGLDB4RUYsMHhGRCwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEUzLDB4N0YsMHhGRiwweEZGLDB4RkYsIDB4RkIsMHhGRiwweEZGLDB4QkYsMHhGRCwweEZCLDB4RjcsMHhGRiwKLTB4REYsMHhGNywweEZGLDB4RkUsMHhFRiwweDVGLDB4QkQsMHhGRiwgMHhGQSwweEZGLDB4RjgsMHhGRiwweEJGLDB4QUYsMHhGQiwweEZFLAotMHhGRSwweDNGLDB4RUYsMHhFOCwweEZGLDB4REYsMHhGMywweEZELCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRCwweEZGLDB4RkIsCi0weEZELDB4RkYsMHhBRiwweEZGLDB4RkYsMHhGRSwweEZFLDB4QkYsIDB4REIsMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4REYsMHhGRiwKLTB4RkQsMHhGRiwweENCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhCRiwweDZGLDB4RkYsMHg3RiwweEI3LDB4QjMsMHhGRiwweEZGLAotMHhERiwweEZGLDB4RkIsMHhFRiwweEZGLDB4RkYsMHhGRiwweDA3LCAweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhFRCwweEZGLDB4RjUsCi0weDdDLDB4RkYsMHg3RiwweEZFLDB4RkYsMHhGRiwweEVGLDB4Q0YsIDB4RkYsMHhGQiwweEZGLDB4RkYsMHgyRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGMywweEZGLDB4RkIsMHhGRiwweEZFLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLAotMHhGRCwweDFCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRSwweDdDLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEJGLDB4N0YsIDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4REIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwgMHhGRiwweEZGLDB4RjAsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweERGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEJGLDB4RkUsCi0weDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhFRiwweEZFLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEVGLDB4RkEsMHhCNSwweEZGLDB4RkYsMHhGRiwgMHhGNywweEY3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwweEZCLAotMHhGQywweEZGLDB4RkYsMHhGRSwweEZGLDB4N0YsMHhERiwweEJGLCAweEZGLDB4Q0IsMHhCRiwweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsCi0weEY5LDB4RkUsMHg3RiwweDk3LDB4RTEsMHhGRSwweDc5LDB4OUYsIDB4RTcsMHhGRCwweEZFLDB4N0YsMHhERiwweEZFLDB4MzcsMHhGRiwKLTB4RkIsMHhERSwweERFLDB4QkQsMHhFRiwweEYzLDB4RkUsMHhGQiwgMHhBRiwweEVCLDB4RkUsMHhGRiwweEZGLDB4Q0YsMHhGRiwweEZFLAotMHhGRiwweEJGLDB4RkYsMHg4RiwweEZGLDB4RUYsMHhGQiwweEZFLCAweEZGLDB4QkYsMHhFNywweEY5LDB4NUUsMHg3RiwweEVGLDB4RkIsCi0weERBLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkQsIDB4MUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwKLTB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEY3LDB4RkIsMHg3RiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZDLDB4M0YsMHhGRiwweEJGLAotMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHg3QiwweDdGLCAweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCNSwweEVGLDB4RkIsCi0weEJGLDB4RkEsMHg3RiwweEZDLDB4RkYsMHgzRiwweENGLDB4RjMsIDB4RkMsMHhGRiwweDNGLDB4Q0YsMHhCQywweEZGLDB4M0YsMHhFRiwKLTB4RjMsMHhGQywweEZFLDB4M0YsMHhDRiwweEZGLDB4RUUsMHhFRiwgMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHg2QSwweEQ3LAotMHhCNywweEZCLDB4RjgsMHhGRiwweEI3LDB4RUYsMHhCQSwweEZFLCAweEZGLDB4QkYsMHg3RiwweEU5LDB4RkYsMHhGOSwweDdFLDB4NUYsCi0weDk3LDB4RTUsMHhGOSwweEZFLDB4N0YsMHhCRiwweEY5LDB4N0UsIDB4NUYsMHg5RiwweEU1LDB4RkIsMHhGRSwweDVGLDB4QjcsMHhGRiwKLTB4QTMsMHhGRiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywgMHhGRCwweEZGLDB4NUUsMHhGNywweDdELDB4RkYsMHg3NywweERGLAotMHhGNywweEZELDB4RkYsMHg3RiwweEZGLDB4RDcsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhERiwweEZCLDB4N0YsCi0weEZGLDB4RkYsMHhFRiwweEZGLDB4RkUsMHhGQiwweEZGLDB4RkYsIDB4QkYsMHhGRSwweDhGLDB4RkYsMHhERiwweEY3LDB4RkQsMHhGRCwKLTB4N0YsMHhERiwweEY3LDB4RkQsMHgzRSwweERGLDB4RjUsMHhCRCwgMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RjcsMHhGRiwweDlGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkQsMHhGRiwweEJFLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZELDB4M0YsMHhGRiwweERGLDB4RjcsIDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHhDRiwKLTB4NzcsMHhGQywweEZGLDB4NUYsMHhERiwweEY3LDB4RkQsMHhGRiwgMHhGNCwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhFRSwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RUQsMHhGQiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEU5LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RDMsMHhGRiwweEZGLAotMHhCRiwweDNGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGQiwweEYzLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4RjcsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHgxNywweEZGLDB4RkYsMHhGRiwKLTB4REYsMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhERiwweERGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhERiwweEY3LAotMHhGRiwweDRGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkQsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweDlGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwgMHhGRiwweEZGLDB4N0EsMHgzRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjIsCi0weDdGLDB4RkYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RjgsIDB4RkUsMHhGRiwweEJGLDB4RkIsMHhGRSwweEZGLDB4OEYsMHhFQywKLTB4RkIsMHhGRSwweEZGLDB4QkYsMHhGOCwweEY3LDB4RkUsMHhGRiwgMHhCRiwweEVGLDB4RkIsMHhGRSwweEZELDB4QkYsMHhDRiwweEVDLAotMHhGRiwweDNGLDB4RUYsMHhEQiwweEY4LDB4RkYsMHhCRiwweENGLCAweEZGLDB4RjksMHhGRiwweEZGLDB4QkYsMHhGRiwweEZCLDB4RkYsCi0weEZGLDB4RkYsMHhFRiwweEZCLDB4REYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLDB4QkIsMHhGRiwKLTB4RUYsMHhGQiwweEZFLDB4RUYsMHhCRiwweEVFLDB4RUIsMHhGQiwgMHhGRSwweEZGLDB4RUYsMHhGRSwweEVFLDB4QkYsMHhGRSwweEVCLAotMHhGRiwweEVGLDB4RkYsMHgxNywweEZGLDB4N0UsMHhFQiwweEJCLCAweEZFLDB4QkYsMHhCRSwweEZCLDB4RUYsMHg1QiwweEY3LDB4QkQsCi0weEZCLDB4Q0YsMHhCRiwweEJGLDB4QkIsMHhGQiwweDdFLDB4Q0MsIDB4RUYsMHhGRgotCi19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9kYWJ1c2IuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFidXNiLmMKaW5kZXggOGQxZjhlZS4uNDhmNGI5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9kYWJ1c2IuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYnVzYi5jCkBAIC0zOCw5ICszOCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KIAogI2luY2x1ZGUgImRhYnVzYi5oIgotI2luY2x1ZGUgImRhYmZpcm13YXJlLmgiCiAKIC8qCiAgKiBWZXJzaW9uIEluZm9ybWF0aW9uCkBAIC0yOTcsNyArMjk4LDggQEAKIAlyZXR1cm4gcmV0OwogfQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi1zdGF0aWMgaW50IGRhYnVzYl93cml0ZW1lbSAocGRhYnVzYl90IHMsIGludCBwb3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW4pCitzdGF0aWMgaW50IGRhYnVzYl93cml0ZW1lbSAocGRhYnVzYl90IHMsIGludCBwb3MsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsCisJCQkgICAgaW50IGxlbikKIHsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGNoYXIgKnRyYW5zZmVyX2J1ZmZlciA9ICBrbWFsbG9jIChsZW4sIEdGUF9LRVJORUwpOwpAQCAtMzI0LDI0ICszMjYsMzUgQEAKIHN0YXRpYyBpbnQgZGFidXNiX2xvYWRtZW0gKHBkYWJ1c2JfdCBzLCBjb25zdCBjaGFyICpmbmFtZSkKIHsKIAlpbnQgcmV0OwotCVBJTlRFTF9IRVhfUkVDT1JEIHB0ciA9IGZpcm13YXJlOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAKIAlkYmcoIkVudGVyIGRhYnVzYl9sb2FkbWVtIChpbnRlcm5hbCkiKTsKIAorCXJldCA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsICJkYWJ1c2IvZmlybXdhcmUuZnciLCAmcy0+dXNiZGV2LT5kZXYpOworCWlmIChyZXQpIHsKKwkJZXJyKCJGYWlsZWQgdG8gbG9hZCBcImRhYnVzYi9maXJtd2FyZS5md1wiOiAlZFxuIiwgcmV0KTsKKwkJZ290byBvdXQ7CisJfQogCXJldCA9IGRhYnVzYl84MDUxX3Jlc2V0IChzLCAxKTsKLQl3aGlsZSAocHRyLT5UeXBlID09IDApIHsKIAotCQlkYmcoImRhYnVzYl93cml0ZW1lbTogJTA0WCAlcCAlZCkiLCBwdHItPkFkZHJlc3MsIHB0ci0+RGF0YSwgcHRyLT5MZW5ndGgpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOyByZWM7CisJICAgICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJZGJnKCJkYWJ1c2Jfd3JpdGVtZW06ICUwNFggJXAgJWQpIiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJICAgIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAotCQlyZXQgPSBkYWJ1c2Jfd3JpdGVtZW0gKHMsIHB0ci0+QWRkcmVzcywgcHRyLT5EYXRhLCBwdHItPkxlbmd0aCk7CisJCXJldCA9IGRhYnVzYl93cml0ZW1lbShzLCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLCByZWMtPmRhdGEsCisJCQkJICAgICAgIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQllcnIoImRhYnVzYl93cml0ZW1lbSBmYWlsZWQgKCVkICUwNFggJXAgJWQpIiwgcmV0LCBwdHItPkFkZHJlc3MsIHB0ci0+RGF0YSwgcHRyLT5MZW5ndGgpOworCQkJZXJyKCJkYWJ1c2Jfd3JpdGVtZW0gZmFpbGVkICglZCAlMDRYICVwICVkKSIsIHJldCwKKwkJCSAgICBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLCByZWMtPmRhdGEsCisJCQkgICAgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9Ci0JCXB0cisrOwogCX0KIAlyZXQgPSBkYWJ1c2JfODA1MV9yZXNldCAocywgMCk7Ci0KKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKKyBvdXQ6CiAJZGJnKCJkYWJ1c2JfbG9hZG1lbTogZXhpdCIpOwogCiAJcmV0dXJuIHJldDsKQEAgLTM3Niw5ICszODksOSBAQAogc3RhdGljIGludCBkYWJ1c2JfZnBnYV9kb3dubG9hZCAocGRhYnVzYl90IHMsIGNvbnN0IGNoYXIgKmZuYW1lKQogewogCXBidWxrX3RyYW5zZmVyX3QgYiA9IGttYWxsb2MgKHNpemVvZiAoYnVsa190cmFuc2Zlcl90KSwgR0ZQX0tFUk5FTCk7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAl1bnNpZ25lZCBpbnQgYmxlbiwgbjsKIAlpbnQgcmV0OwotCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IGJpdHN0cmVhbTsKIAogCWRiZygiRW50ZXIgZGFidXNiX2ZwZ2FfZG93bmxvYWQgKGludGVybmFsKSIpOwogCkBAIC0zODcsMTAgKzQwMCwxNiBAQAogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgImRhYnVzYi9iaXRzdHJlYW0uYmluIiwgJnMtPnVzYmRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCWVycigiRmFpbGVkIHRvIGxvYWQgXCJkYWJ1c2IvYml0c3RyZWFtLmJpblwiOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAliLT5waXBlID0gMTsKIAlyZXQgPSBkYWJ1c2JfZnBnYV9jbGVhciAocywgYik7CiAJbWRlbGF5ICgxMCk7Ci0JYmxlbiA9IGJ1Zls3M10gKyAoYnVmWzcyXSA8PCA4KTsKKwlibGVuID0gZnctPmRhdGFbNzNdICsgKGZ3LT5kYXRhWzcyXSA8PCA4KTsKIAogCWRiZygiQml0c3RyZWFtIGxlbjogJWkiLCBibGVuKTsKIApAQCAtNDAyLDcgKzQyMSw3IEBACiAJZm9yIChuID0gMDsgbiA8PSBibGVuICsgNjA7IG4gKz0gNjApIHsKIAkJLy8gc29tZSBjY2xrcyBmb3Igc3RhcnR1cAogCQliLT5zaXplID0gNjQ7Ci0JCW1lbWNweSAoYi0+ZGF0YSArIDQsIGJ1ZiArIDc0ICsgbiwgNjApOworCQltZW1jcHkgKGItPmRhdGEgKyA0LCBmdy0+ZGF0YSArIDc0ICsgbiwgNjApOwogCQlyZXQgPSBkYWJ1c2JfYnVsayAocywgYik7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQllcnIoImRhYnVzYl9idWxrIGZhaWxlZC4iKTsKQEAgLTQxMyw2ICs0MzIsNyBAQAogCiAJcmV0ID0gZGFidXNiX2ZwZ2FfaW5pdCAocywgYik7CiAJa2ZyZWUgKGIpOworCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCiAJZGJnKCJleGl0IGRhYnVzYl9mcGdhX2Rvd25sb2FkIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1hdWRpby5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWF1ZGlvLmMKaW5kZXggOTJiMmE2ZC4uM2MwMDYxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWF1ZGlvLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWF1ZGlvLmMKQEAgLTI2OCw2ICsyNjgsMTIgQEAKIAogCWRwcmludGsoIm9wZW5pbmcgZGV2aWNlIGFuZCB0cnlpbmcgdG8gYWNxdWlyZSBleGNsdXNpdmUgbG9ja1xuIik7CiAKKwlpZiAoIWRldikgeworCQlwcmludGsoS0VSTl9FUlIgIkJVRzogZW0yOHh4IGNhbid0IGZpbmQgZGV2aWNlIHN0cnVjdC4iCisJCQkJIiBDYW4ndCBwcm9jZWVkIHdpdGggb3BlblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwogCS8qIFNldHMgdm9sdW1lLCBtdXRlLCBldGMgKi8KIAogCWRldi0+bXV0ZSA9IDA7CkBAIC00MTUsNiArNDIxLDEyIEBACiAJc3RhdGljIGludCAgICAgICAgICBkZXZucjsKIAlpbnQgICAgICAgICAgICAgICAgIHJldCwgZXJyOwogCisJaWYgKGRldi0+aGFzX2F1ZGlvX2NsYXNzKSB7CisJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGV4dGVuc2lvbiAoaW4gdGhpcyBjYXNlCisJCSAgIHRoZSBkZXZpY2UgaXMgZXhwZWN0aW5nIHRoZSBzbmQtdXNiLWF1ZGlvIG1vZHVsZSAqLworCQlyZXR1cm4gMDsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPICJlbTI4eHgtYXVkaW8uYzogcHJvYmluZyBmb3IgZW0yOHgxICIKIAkJCSAibm9uIHN0YW5kYXJkIHVzYmF1ZGlvXG4iKTsKIAlwcmludGsoS0VSTl9JTkZPICJlbTI4eHgtYXVkaW8uYzogQ29weXJpZ2h0IChDKSAyMDA2IE1hcmt1cyAiCkBAIC00NTgsNiArNDcwLDEyIEBACiAJaWYgKGRldiA9PSBOVUxMKQogCQlyZXR1cm4gMDsKIAorCWlmIChkZXYtPmhhc19hdWRpb19jbGFzcykgeworCQkvKiBUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBleHRlbnNpb24gKGluIHRoaXMgY2FzZQorCQkgICB0aGUgZGV2aWNlIGlzIGV4cGVjdGluZyB0aGUgc25kLXVzYi1hdWRpbyBtb2R1bGUgKi8KKwkJcmV0dXJuIDA7CisJfQorCiAJaWYgKGRldi0+YWRldikgewogCQlzbmRfY2FyZF9mcmVlKGRldi0+YWRldi0+c25kY2FyZCk7CiAJCWtmcmVlKGRldi0+YWRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtY2FyZHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1jYXJkcy5jCmluZGV4IDNlNGYzYzcuLjhjYmRhNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1jYXJkcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1jYXJkcy5jCkBAIC0xNTcsNiArMTU3LDcgQEAKIAkJLnRkYTk4ODdfY29uZiA9IFREQTk4ODdfUFJFU0VOVCwKIAkJLnR1bmVyX3R5cGUgICA9IFRVTkVSX1hDMjAyOCwKIAkJLm10c19maXJtd2FyZSA9IDEsCisJCS5oYXNfZHZiICAgICAgICA9IDEsCiAJCS5kZWNvZGVyICAgICAgPSBFTTI4WFhfVFZQNTE1MCwKIAkJLmlucHV0ICAgICAgICAgID0geyB7CiAJCQkudHlwZSAgICAgPSBFTTI4WFhfVk1VWF9URUxFVklTSU9OLApAQCAtNTI0LDYgKzUyNSw5IEBACiAJcmMgPSBlbTI4eHhfcmVhZF9yZWcoZGV2LCBFTTI4WFhfUjBBX0NISVBJRCk7CiAJaWYgKHJjID4gMCkgewogCQlzd2l0Y2ggKHJjKSB7CisJCWNhc2UgQ0hJUF9JRF9FTTI4NjA6CisJCQllbTI4eHhfaW5mbygiY2hpcCBJRCBpcyBlbTI4NjBcbiIpOworCQkJYnJlYWs7CiAJCWNhc2UgQ0hJUF9JRF9FTTI4ODM6CiAJCQllbTI4eHhfaW5mbygiY2hpcCBJRCBpcyBlbTI4ODIvZW0yODgzXG4iKTsKIAkJCWRldi0+d2FpdF9hZnRlcl93cml0ZSA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtZHZiLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtZHZiLmMKaW5kZXggOGNmNDk4My4uMGIyMzMzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYwpAQCAtMzgyLDYgKzM4MiwxMSBAQAogCWludCByZXN1bHQgPSAwOwogCXN0cnVjdCBlbTI4eHhfZHZiICpkdmI7CiAKKwlpZiAoIWRldi0+aGFzX2R2YikgeworCQkvKiBUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBleHRlbnNpb24gKi8KKwkJcmV0dXJuIDA7CisJfQorCiAJZHZiID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGVtMjh4eF9kdmIpLCBHRlBfS0VSTkVMKTsKIAogCWlmIChkdmIgPT0gTlVMTCkgewpAQCAtNDQ0LDYgKzQ0OSwxMSBAQAogCiBzdGF0aWMgaW50IGR2Yl9maW5pKHN0cnVjdCBlbTI4eHggKmRldikKIHsKKwlpZiAoIWRldi0+aGFzX2R2YikgeworCQkvKiBUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBleHRlbnNpb24gKi8KKwkJcmV0dXJuIDA7CisJfQorCiAJaWYgKGRldi0+ZHZiKSB7CiAJCXVucmVnaXN0ZXJfZHZiKGRldi0+ZHZiKTsKIAkJZGV2LT5kdmIgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXJlZy5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXJlZy5oCmluZGV4IDkwNThiZWQuLmZhYzFhYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1yZWcuaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtcmVnLmgKQEAgLTg0LDUgKzg0LDYgQEAKIAogLyogRklYTUU6IE5lZWQgdG8gYmUgcG9wdWxhdGVkIHdpdGggdGhlIG90aGVyIGNoaXAgSUQncyAqLwogZW51bSBlbTI4eHhfY2hpcF9pZCB7CisJQ0hJUF9JRF9FTTI4NjAgPSAzNCwKIAlDSElQX0lEX0VNMjg4MyA9IDM2LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC12aWRlby5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXZpZGVvLmMKaW5kZXggZmIxNjNlYy4uMjg1YmM2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXZpZGVvLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXZpZGVvLmMKQEAgLTE4NDgsMzIgKzE4NDgsMjggQEAKIAogaW50IGVtMjh4eF9yZWdpc3Rlcl9leHRlbnNpb24oc3RydWN0IGVtMjh4eF9vcHMgKm9wcykKIHsKLQlzdHJ1Y3QgZW0yOHh4ICpoLCAqZGV2ID0gTlVMTDsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkoaCwgJmVtMjh4eF9kZXZsaXN0LCBkZXZsaXN0KQotCQlkZXYgPSBoOworCXN0cnVjdCBlbTI4eHggKmRldiA9IE5VTEw7CiAKIAltdXRleF9sb2NrKCZlbTI4eHhfZXh0ZW5zaW9uX2Rldmxpc3RfbG9jayk7CiAJbGlzdF9hZGRfdGFpbCgmb3BzLT5uZXh0LCAmZW0yOHh4X2V4dGVuc2lvbl9kZXZsaXN0KTsKLQlpZiAoZGV2KQotCQlvcHMtPmluaXQoZGV2KTsKLQorCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmZW0yOHh4X2Rldmxpc3QsIGRldmxpc3QpIHsKKwkJaWYgKGRldikKKwkJCW9wcy0+aW5pdChkZXYpOworCX0KIAlwcmludGsoS0VSTl9JTkZPICJFbTI4eHg6IEluaXRpYWxpemVkICglcykgZXh0ZW5zaW9uXG4iLCBvcHMtPm5hbWUpOwogCW11dGV4X3VubG9jaygmZW0yOHh4X2V4dGVuc2lvbl9kZXZsaXN0X2xvY2spOwotCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGVtMjh4eF9yZWdpc3Rlcl9leHRlbnNpb24pOwogCiB2b2lkIGVtMjh4eF91bnJlZ2lzdGVyX2V4dGVuc2lvbihzdHJ1Y3QgZW0yOHh4X29wcyAqb3BzKQogewotCXN0cnVjdCBlbTI4eHggKmgsICpkZXYgPSBOVUxMOworCXN0cnVjdCBlbTI4eHggKmRldiA9IE5VTEw7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGgsICZlbTI4eHhfZGV2bGlzdCwgZGV2bGlzdCkKLQkJZGV2ID0gaDsKLQotCWlmIChkZXYpCi0JCW9wcy0+ZmluaShkZXYpOworCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmZW0yOHh4X2Rldmxpc3QsIGRldmxpc3QpIHsKKwkJaWYgKGRldikKKwkJCW9wcy0+ZmluaShkZXYpOworCX0KIAogCW11dGV4X2xvY2soJmVtMjh4eF9leHRlbnNpb25fZGV2bGlzdF9sb2NrKTsKIAlwcmludGsoS0VSTl9JTkZPICJFbTI4eHg6IFJlbW92ZWQgKCVzKSBleHRlbnNpb25cbiIsIG9wcy0+bmFtZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL292NzY3MC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYwppbmRleCAyYmM2YmRjLi5kN2JmZDMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL292NzY3MC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vb3Y3NjcwLmMKQEAgLTQwNiw4ICs0MDYsMTAgQEAKIAlpbnQgcmV0OwogCiAJcmV0ID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGMsIHJlZyk7Ci0JaWYgKHJldCA+PSAwKQorCWlmIChyZXQgPj0gMCkgewogCQkqdmFsdWUgPSAodW5zaWduZWQgY2hhcikgcmV0OworCQlyZXQgPSAwOworCX0KIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vcHhhX2NhbWVyYS5jCmluZGV4IDdjYzhlOWIuLjVlYzViYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vcHhhX2NhbWVyYS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vcHhhX2NhbWVyYS5jCkBAIC0xMDE5LDEyICsxMDE5LDEyIEBACiAJc3RydWN0IHB4YV9jYW1lcmFfZGV2ICpwY2RldjsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAl2b2lkIF9faW9tZW0gKmJhc2U7Ci0JdW5zaWduZWQgaW50IGlycTsKKwlpbnQgaXJxOwogCWludCBlcnIgPSAwOwogCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwotCWlmICghcmVzIHx8ICFpcnEpIHsKKwlpZiAoIXJlcyB8fCBpcnEgPCAwKSB7CiAJCWVyciA9IC1FTk9ERVY7CiAJCWdvdG8gZXhpdDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1hbHNhLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1hbHNhLmMKaW5kZXggYmEzMDgyNC4uZjExOGRlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWFsc2EuYwpAQCAtNjEzLDkgKzYxMywxNSBAQAogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJc25kX2NhcmRfc2FhNzEzNF9wY21fdCAqcGNtOwogCXNuZF9jYXJkX3NhYTcxMzRfdCAqc2FhNzEzNCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IHNhYTcxMzQtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldjsKIAlpbnQgYW11eCwgZXJyOwogCisJaWYgKCFzYWE3MTM0KSB7CisJCXByaW50ayhLRVJOX0VSUiAiQlVHOiBzYWE3MTM0IGNhbid0IGZpbmQgZGV2aWNlIHN0cnVjdC4iCisJCQkJIiBDYW4ndCBwcm9jZWVkIHdpdGggb3BlblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlkZXYgPSBzYWE3MTM0LT5kZXY7CiAJbXV0ZXhfbG9jaygmZGV2LT5kbWFzb3VuZC5sb2NrKTsKIAogCWRldi0+ZG1hc291bmQucmVhZF9jb3VudCAgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY2FyZHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMKaW5kZXggYjExMTkwMy4uMjYxOGNmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jYXJkcy5jCkBAIC00MTE0LDExICs0MTE0LDcgQEAKIAkJLnJhZGlvX3R5cGUgICAgID0gVU5TRVQsCiAJCS50dW5lcl9hZGRyCT0gQUREUl9VTlNFVCwKIAkJLnJhZGlvX2FkZHIJPSBBRERSX1VOU0VULAotCQkgLyoKLQkJICAgIFRPRE86CiAJCSAubXBlZyAgICAgICAgICAgPSBTQUE3MTM0X01QRUdfRFZCLAotCQkgKi8KLQogCQkgLmlucHV0cyAgICAgICAgID0ge3sKIAkJCSAubmFtZSA9IG5hbWVfdHYsCiAJCQkgLnZtdXggPSAxLApAQCAtNDE1Nyw3ICs0MTUzLDcgQEAKIAkJfSB9LAogCQkucmFkaW8gPSB7CiAJCQkubmFtZSA9IG5hbWVfcmFkaW8sCi0JCQkuYW11eCA9IExJTkUxLAorCQkJLmFtdXggPSBUViwKIAkJfSwKIAl9LAogCVtTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9NMTE1XSA9IHsKQEAgLTQxNjcsNiArNDE2Myw3IEBACiAJCS5yYWRpb190eXBlICAgICA9IFVOU0VULAogCQkudHVuZXJfYWRkcgk9IEFERFJfVU5TRVQsCiAJCS5yYWRpb19hZGRyCT0gQUREUl9VTlNFVCwKKwkJLm1wZWcgICAgICAgICAgID0gU0FBNzEzNF9NUEVHX0RWQiwKIAkJLmlucHV0cyAgICAgICAgID0ge3sKIAkJCS5uYW1lID0gbmFtZV90diwKIAkJCS52bXV4ID0gMSwKQEAgLTUzNTEsMjIgKzUzNDgsMjEgQEAKIHsKIAlzd2l0Y2ggKGNvbW1hbmQpIHsKIAljYXNlIFhDMjAyOF9UVU5FUl9SRVNFVDoKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAweDA2ZTIwMDAwLCAweDA2ZTIwMDAwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDZhMjAwMDAsIDB4MDZhMjAwMDApOwotCQltZGVsYXkoMjUwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAweDA2ZTIwMDAwLCAwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDZhMjAwMDAsIDApOwotCQltZGVsYXkoMjUwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAweDA2ZTIwMDAwLCAweDA2ZTIwMDAwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDZhMjAwMDAsIDB4MDZhMjAwMDApOwotCQltZGVsYXkoMjUwKTsKLQkJc2FhX2FuZG9ybChTQUE3MTMzX0FOQUxPR19JT19TRUxFQ1QgPj4gMiwgMHgwMiwgMHgwMik7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9BTkFMT0dfSU5fQ1RSTDEgPj4gMiwgMHg4MSwgMHg4MSk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9BVURJT19DTE9DSzAgPj4gMiwgMHgwMzE4N2RlNywgMHgwMzE4N2RlNyk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9BVURJT19QTExfQ1RSTCA+PiAyLCAweDAzLCAweDAzKTsKLQkJc2FhX2FuZG9ybChTQUE3MTM0X0FVRElPX0NMT0NLU19QRVJfRklFTEQwID4+IDIsCi0JCQkgICAweDAwMDFlMDAwLCAweDAwMDFlMDAwKTsKLQkJcmV0dXJuIDA7CisJCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDAwMDA4MDAwLCAweDAwMDAwMDAwKTsKKwkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDAwMDgwMDAsIDB4MDAwMDgwMDApOworCQlzd2l0Y2ggKGRldi0+Ym9hcmQpIHsKKwkJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9DQVJEQlVTXzUwNjoKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMywgMCk7CisJCQltc2xlZXAoMTApOworCQkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDIzLCAxKTsKKwkJYnJlYWs7CisJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMCk7CisJCQltc2xlZXAoMTApOworCQkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDIxLCAxKTsKKwkJYnJlYWs7CisJCX0KKwlyZXR1cm4gMDsKIAl9CiAJcmV0dXJuIC1FSU5WQUw7CiB9CkBAIC01NTUzLDkgKzU1NDksNyBAQAogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHgwODAwMDAwMCwgMHgwMDAwMDAwMCk7CiAJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVUzoKLQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVNfNTA2OgogCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfTTExNToKLQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CiAJCS8qIHBvd2VyLWRvd24gdHVuZXIgY2hpcCAqLwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUE1PREUwID4+IDIsICAgMHhmZmZmZmZmZiwgMCk7CiAJCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweGZmZmZmZmZmLCAwKTsKQEAgLTU1NjUsNiArNTU1OSwxOCBAQAogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CiAJCW1zbGVlcCgxMCk7CiAJCWJyZWFrOworCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMywgMCk7CisJCW1zbGVlcCgxMCk7CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMywgMSk7CisJCWJyZWFrOworCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDIxLCAwKTsKKwkJbXNsZWVwKDEwKTsKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDIxLCAxKTsKKwkJbXNsZWVwKDEpOworCQlkZXYtPmhhc19yZW1vdGUgPSBTQUE3MTM0X1JFTU9URV9HUElPOworCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQkVIT0xEX0NPTFVNQlVTX1RWRk06CiAJCS8qIHBvd2VyLWRvd24gdHVuZXIgY2hpcCAqLwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUE1PREUwID4+IDIsICAgMHgwMDBBODAwNCwgMHgwMDBBODAwNCk7CkBAIC01NjE1LDcgKzU2MjEsOCBAQAogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUE1PREUwID4+IDIsICAgMHg4MDA0MDEwMCwgMHg4MDA0MDEwMCk7CiAJCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDgwMDQwMTAwLCAweDAwMDQwMTAwKTsKIAkJcHJpbnRrKCIlczogJXM6IGh5YnJpZCBhbmFsb2cvZHZiIGNhcmRcbiIKLQkJICAgICAgICIlczogU29ycnksIG9ubHkgdGhlIGFuYWxvZyBpbnB1dHMgYXJlIHN1cHBvcnRlZCBmb3Igbm93LlxuIiwKKwkJICAgICAgICIlczogU29ycnksIG9ubHkgYW5hbG9nIHMtdmlkZW8gYW5kIGNvbXBvc2l0ZSBpbnB1dCAiCisJCSAgICAgICAiYXJlIHN1cHBvcnRlZCBmb3Igbm93LlxuIiwKIAkJCWRldi0+bmFtZSwgY2FyZChkZXYpLm5hbWUsIGRldi0+bmFtZSk7CiAJCWJyZWFrOwogCX0KQEAgLTU2NzUsNiArNTY4Miw3IEBACiAKIAkJc3dpdGNoIChkZXYtPmJvYXJkKSB7CiAJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKKwkJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9DQVJEQlVTXzUwNjoKIAkJCWN0bC5kZW1vZCA9IFhDMzAyOF9GRV9aQVJMSU5LNDU2OwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCmluZGV4IDQ2OWY5M2EuLjM0MWIxMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCkBAIC0xNTMsMTIgKzE1MywxMiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG10MzUyX2F2ZXJfYTE2ZF9pbml0KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKQorc3RhdGljIGludCBtdDM1Ml9hdmVybWVkaWFfeGMzMDI4X2luaXQoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCiB7Ci0Jc3RhdGljIHU4IGNsb2NrX2NvbmZpZyBbXSAgPSB7IENMT0NLX0NUTCwgIDB4MzgsIDB4MmQgfTsKLQlzdGF0aWMgdTggcmVzZXQgW10gICAgICAgICA9IHsgUkVTRVQsICAgICAgMHg4MCB9OwotCXN0YXRpYyB1OCBhZGNfY3RsXzFfY2ZnIFtdID0geyBBRENfQ1RMXzEsICAweDQwIH07Ci0Jc3RhdGljIHU4IGFnY19jZmcgW10gICAgICAgPSB7IEFHQ19UQVJHRVQsIDB4MjgsIDB4YTAgfTsKKwlzdGF0aWMgdTggY2xvY2tfY29uZmlnIFtdICA9IHsgQ0xPQ0tfQ1RMLCAweDM4LCAweDJkIH07CisJc3RhdGljIHU4IHJlc2V0IFtdICAgICAgICAgPSB7IFJFU0VULCAweDgwIH07CisJc3RhdGljIHU4IGFkY19jdGxfMV9jZmcgW10gPSB7IEFEQ19DVExfMSwgMHg0MCB9OworCXN0YXRpYyB1OCBhZ2NfY2ZnIFtdICAgICAgID0geyBBR0NfVEFSR0VULCAweGUgfTsKIAlzdGF0aWMgdTggY2FwdF9yYW5nZV9jZmdbXSA9IHsgQ0FQVF9SQU5HRSwgMHgzMyB9OwogCiAJbXQzNTJfd3JpdGUoZmUsIGNsb2NrX2NvbmZpZywgICBzaXplb2YoY2xvY2tfY29uZmlnKSk7CkBAIC0xNjcsMTIgKzE2Nyw5IEBACiAJbXQzNTJfd3JpdGUoZmUsIGFkY19jdGxfMV9jZmcsICBzaXplb2YoYWRjX2N0bF8xX2NmZykpOwogCW10MzUyX3dyaXRlKGZlLCBhZ2NfY2ZnLCAgICAgICAgc2l6ZW9mKGFnY19jZmcpKTsKIAltdDM1Ml93cml0ZShmZSwgY2FwdF9yYW5nZV9jZmcsIHNpemVvZihjYXB0X3JhbmdlX2NmZykpOwotCiAJcmV0dXJuIDA7CiB9CiAKLQotCiBzdGF0aWMgaW50IG10MzUyX3Bpbm5hY2xlX3R1bmVyX3NldF9wYXJhbXMoc3RydWN0IGR2Yl9mcm9udGVuZCogZmUsCiAJCQkJCSAgIHN0cnVjdCBkdmJfZnJvbnRlbmRfcGFyYW1ldGVycyogcGFyYW1zKQogewpAQCAtMjE1LDE0ICsyMTIsMTAgQEAKIAkuZGVtb2RfaW5pdCAgICA9IG10MzUyX2F2ZXI3NzdfaW5pdCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgbXQzNTJfY29uZmlnIGF2ZXJtZWRpYV8xNmQgPSB7Ci0JLmRlbW9kX2FkZHJlc3MgPSAweGYsCi0JLmRlbW9kX2luaXQgICAgPSBtdDM1Ml9hdmVyX2ExNmRfaW5pdCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgbXQzNTJfY29uZmlnIGF2ZXJtZWRpYV9lNTA2cl9tdDM1Ml9kZXYgPSB7CitzdGF0aWMgc3RydWN0IG10MzUyX2NvbmZpZyBhdmVybWVkaWFfeGMzMDI4X210MzUyX2RldiA9IHsKIAkuZGVtb2RfYWRkcmVzcyAgID0gKDB4MWUgPj4gMSksCiAJLm5vX3R1bmVyICAgICAgICA9IDEsCisJLmRlbW9kX2luaXQgICAgICA9IG10MzUyX2F2ZXJtZWRpYV94YzMwMjhfaW5pdCwKIH07CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtOTc1LDkgKzk2OCwxMCBAQAogCQl9CiAJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKLQkJZHByaW50aygiYXZlcnR2IEExNkQgZHZiIHNldHVwXG4iKTsKLQkJZGV2LT5kdmIuZnJvbnRlbmQgPSBkdmJfYXR0YWNoKG10MzUyX2F0dGFjaCwgJmF2ZXJtZWRpYV8xNmQsCi0JCQkJCSAgICAgICAmZGV2LT5pMmNfYWRhcCk7CisJCWRwcmludGsoIkF2ZXJNZWRpYSBBMTZEIGR2YiBzZXR1cFxuIik7CisJCWRldi0+ZHZiLmZyb250ZW5kID0gZHZiX2F0dGFjaChtdDM1Ml9hdHRhY2gsCisJCQkJCQkmYXZlcm1lZGlhX3hjMzAyOF9tdDM1Ml9kZXYsCisJCQkJCQkmZGV2LT5pMmNfYWRhcCk7CiAJCWF0dGFjaF94YzMwMjggPSAxOwogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfTUQ3MTM0OgpAQCAtMTA5MSw3ICsxMDg1LDggQEAKIAkJCQkJYWRzX3RlY2hfZHVvX2NvbmZpZy50dW5lcl9hZGRyZXNzKTsKIAkJCQlnb3RvIGRldHRhY2hfZnJvbnRlbmQ7CiAJCQl9Ci0JCX0KKwkJfSBlbHNlCisJCQl3cHJpbnRrKCJmYWlsZWQgdG8gYXR0YWNoIHRkYTEwMDQ2XG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX1RFVklPTl9EVkJUXzIyMFJGOgogCQlpZiAoY29uZmlndXJlX3RkYTgyN3hfZmUoZGV2LCAmdGV2aW9uX2R2YnQyMjByZl9jb25maWcsCkBAIC0xMjYwLDExICsxMjU1LDE0IEBACiAJCQlnb3RvIGRldHRhY2hfZnJvbnRlbmQ7CiAJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CisJCWRwcmludGsoIkF2ZXJNZWRpYSBFNTA2UiBkdmIgc2V0dXBcbiIpOworCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjUsIDApOworCQltc2xlZXAoMTApOworCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjUsIDEpOwogCQlkZXYtPmR2Yi5mcm9udGVuZCA9IGR2Yl9hdHRhY2gobXQzNTJfYXR0YWNoLAotCQkJCQkgICAgICAgJmF2ZXJtZWRpYV9lNTA2cl9tdDM1Ml9kZXYsCi0JCQkJCSAgICAgICAmZGV2LT5pMmNfYWRhcCk7CisJCQkJCQkmYXZlcm1lZGlhX3hjMzAyOF9tdDM1Ml9kZXYsCisJCQkJCQkmZGV2LT5pMmNfYWRhcCk7CiAJCWF0dGFjaF94YzMwMjggPSAxOwotCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfTUQ3MTM0X0JSSURHRV8yOgogCQlkZXYtPmR2Yi5mcm9udGVuZCA9IGR2Yl9hdHRhY2godGRhMTAwODZfYXR0YWNoLAogCQkJCQkJJnNkMTg3OF80bSwgJmRldi0+aTJjX2FkYXApOwpAQCAtMTMzOCw3ICsxMzM2LDggQEAKIAlyZXR1cm4gcmV0OwogCiBkZXR0YWNoX2Zyb250ZW5kOgotCWR2Yl9mcm9udGVuZF9kZXRhY2goZGV2LT5kdmIuZnJvbnRlbmQpOworCWlmIChkZXYtPmR2Yi5mcm9udGVuZCkKKwkJZHZiX2Zyb250ZW5kX2RldGFjaChkZXYtPmR2Yi5mcm9udGVuZCk7CiAJZGV2LT5kdmIuZnJvbnRlbmQgPSBOVUxMOwogCiAJcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZW1wcmVzcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZW1wcmVzcy5jCmluZGV4IDgxNDMxZWUuLjNhZTcxYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1lbXByZXNzLmMKQEAgLTExMCw5ICsxMTAsMTAgQEAKIHsKIAlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAorCW11dGV4X2xvY2soJmRldi0+ZW1wcmVzc190c3EudmJfbG9jayk7CisKIAl2aWRlb2J1Zl9zdG9wKCZkZXYtPmVtcHJlc3NfdHNxKTsKIAl2aWRlb2J1Zl9tbWFwX2ZyZWUoJmRldi0+ZW1wcmVzc190c3EpOwotCWRldi0+ZW1wcmVzc191c2Vycy0tOwogCiAJLyogc3RvcCB0aGUgZW5jb2RlciAqLwogCXRzX3Jlc2V0X2VuY29kZXIoZGV2KTsKQEAgLTEyMSw2ICsxMjIsMTAgQEAKIAlzYWFfd3JpdGViKFNBQTcxMzRfQVVESU9fTVVURV9DVFJMLAogCQlzYWFfcmVhZGIoU0FBNzEzNF9BVURJT19NVVRFX0NUUkwpIHwgKDEgPDwgNikpOwogCisJZGV2LT5lbXByZXNzX3VzZXJzLS07CisKKwltdXRleF91bmxvY2soJmRldi0+ZW1wcmVzc190c3EudmJfbG9jayk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjE4LDggKzIyMyw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3NfZ19mbXRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZikKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXNhYTcxMzRfaTJjX2NhbGxfY2xpZW50cyhkZXYsIFZJRElPQ19HX0ZNVCwgZik7CiAKQEAgLTIzMiw4ICsyMzYsNyBAQAogc3RhdGljIGludCBlbXByZXNzX3NfZm10X2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCQlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlzYWE3MTM0X2kyY19jYWxsX2NsaWVudHMoZGV2LCBWSURJT0NfU19GTVQsIGYpOwogCkBAIC0yNDcsOCArMjUwLDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19yZXFidWZzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQlzdHJ1Y3QgdjRsMl9yZXF1ZXN0YnVmZmVycyAqcCkKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9yZXFidWZzKCZkZXYtPmVtcHJlc3NfdHNxLCBwKTsKIH0KQEAgLTI1NiwyNCArMjU4LDIxIEBACiBzdGF0aWMgaW50IGVtcHJlc3NfcXVlcnlidWYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJCXN0cnVjdCB2NGwyX2J1ZmZlciAqYikKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9xdWVyeWJ1ZigmZGV2LT5lbXByZXNzX3RzcSwgYik7CiB9CiAKIHN0YXRpYyBpbnQgZW1wcmVzc19xYnVmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LCBzdHJ1Y3QgdjRsMl9idWZmZXIgKmIpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlyZXR1cm4gdmlkZW9idWZfcWJ1ZigmZGV2LT5lbXByZXNzX3RzcSwgYik7CiB9CiAKIHN0YXRpYyBpbnQgZW1wcmVzc19kcWJ1ZihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwgc3RydWN0IHY0bDJfYnVmZmVyICpiKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJcmV0dXJuIHZpZGVvYnVmX2RxYnVmKCZkZXYtPmVtcHJlc3NfdHNxLCBiLAogCQkJCWZpbGUtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKTsKQEAgLTI4Miw4ICsyODEsNyBAQAogc3RhdGljIGludCBlbXByZXNzX3N0cmVhbW9uKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQllbnVtIHY0bDJfYnVmX3R5cGUgdHlwZSkKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9zdHJlYW1vbigmZGV2LT5lbXByZXNzX3RzcSk7CiB9CkBAIC0yOTEsOCArMjg5LDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zdHJlYW1vZmYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJCWVudW0gdjRsMl9idWZfdHlwZSB0eXBlKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJcmV0dXJuIHZpZGVvYnVmX3N0cmVhbW9mZigmZGV2LT5lbXByZXNzX3RzcSk7CiB9CkBAIC0zMDAsOCArMjk3LDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zX2V4dF9jdHJscyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCSAgICAgICBzdHJ1Y3QgdjRsMl9leHRfY29udHJvbHMgKmN0cmxzKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJLyogY291bnQgPT0gMCBpcyBhYnVzZWQgaW4gc2FhNjc1MmhzLmMsIHNvIHRoYXQgc3BlY2lhbAogCQljYXNlIGlzIGhhbmRsZWQgaGVyZSBleHBsaWNpdGx5LiAqLwpAQCAtMzIwLDggKzMxNiw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3NfZ19leHRfY3RybHMoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkgICAgICAgc3RydWN0IHY0bDJfZXh0X2NvbnRyb2xzICpjdHJscykKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCWlmIChjdHJscy0+Y3RybF9jbGFzcyAhPSBWNEwyX0NUUkxfQ0xBU1NfTVBFRykKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYwppbmRleCA5MTk2MzJiLi43NmU2NTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWlucHV0LmMKQEAgLTMyMyw2ICszMjMsMTUgQEAKIAkJc2FhX3NldGIoU0FBNzEzNF9HUElPX0dQTU9ERTEsIDB4MSk7CiAJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUFNUQVRVUzEsIDB4MSk7CiAJCWJyZWFrOworCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKKwkJaXJfY29kZXMgICAgID0gaXJfY29kZXNfYXZlcm1lZGlhX2ExNmQ7CisJCW1hc2tfa2V5Y29kZSA9IDB4MDJGMjAwOworCQltYXNrX2tleWRvd24gPSAweDAwMDQwMDsKKwkJcG9sbGluZyAgICAgID0gNTA7IC8qIG1zICovCisJCS8qIFdpdGhvdXQgdGhpcyB3ZSB3b24ndCByZWNlaXZlIGtleSB1cCBldmVudHMgKi8KKwkJc2FhX3NldGIoU0FBNzEzNF9HUElPX0dQTU9ERTEsIDB4MSk7CisJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUFNUQVRVUzEsIDB4MSk7CisJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9LV09STERfVEVSTUlOQVRPUjoKIAkJaXJfY29kZXMgICAgID0gaXJfY29kZXNfcGl4ZWx2aWV3OwogCQltYXNrX2tleWNvZGUgPSAweDAwMDAxZjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc29jX2NhbWVyYS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKaW5kZXggYTFiOTI0NC4uZDAxNWJmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKQEAgLTc2MywxNSArNzYzLDYgQEAKIAkub3duZXIJPSBUSElTX01PRFVMRSwKIH07CiAKLS8qCi0gKiBJbWFnZSBjYXB0dXJlIGhvc3QgLSB0aGlzIGlzIGEgaG9zdCBkZXZpY2UsIG5vdCBhIGJ1cyBkZXZpY2UsIHNvLAotICogbm8gYnVzIHJlZmVyZW5jZSwgbm8gcHJvYmluZy4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGFzcyBzb2NfY2FtZXJhX2hvc3RfY2xhc3MgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5uYW1lCQk9ICJjYW1lcmFfaG9zdCIsCi19OwotCiBzdGF0aWMgdm9pZCBkdW1teV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIH0KQEAgLTgwMSw3ICs3OTIsNiBAQAogCiAJLyogTnVtYmVyIG1pZ2h0IGJlIGVxdWFsIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UgSUQgKi8KIAlzcHJpbnRmKGljaS0+ZGV2LmJ1c19pZCwgImNhbWVyYV9ob3N0JWQiLCBpY2ktPm5yKTsKLQlpY2ktPmRldi5jbGFzcyA9ICZzb2NfY2FtZXJhX2hvc3RfY2xhc3M7CiAKIAltdXRleF9sb2NrKCZsaXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoaXgsICZob3N0cywgbGlzdCkgewpAQCAtMTAwMywxNCArOTkzLDkgQEAKIAlyZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJmljX2Rydik7CiAJaWYgKHJldCkKIAkJZ290byBlZHJ2cjsKLQlyZXQgPSBjbGFzc19yZWdpc3Rlcigmc29jX2NhbWVyYV9ob3N0X2NsYXNzKTsKLQlpZiAocmV0KQotCQlnb3RvIGVjbHI7CiAKIAlyZXR1cm4gMDsKIAotZWNscjoKLQlkcml2ZXJfdW5yZWdpc3RlcigmaWNfZHJ2KTsKIGVkcnZyOgogCWJ1c191bnJlZ2lzdGVyKCZzb2NfY2FtZXJhX2J1c190eXBlKTsKIAlyZXR1cm4gcmV0OwpAQCAtMTAxOCw3ICsxMDAzLDYgQEAKIAogc3RhdGljIHZvaWQgX19leGl0IHNvY19jYW1lcmFfZXhpdCh2b2lkKQogewotCWNsYXNzX3VucmVnaXN0ZXIoJnNvY19jYW1lcmFfaG9zdF9jbGFzcyk7CiAJZHJpdmVyX3VucmVnaXN0ZXIoJmljX2Rydik7CiAJYnVzX3VucmVnaXN0ZXIoJnNvY19jYW1lcmFfYnVzX3R5cGUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby92aWNhbS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby92aWNhbS5jCmluZGV4IDE3ZjU0MmQuLjQwZDA1M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlkZW8vdmljYW0uYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3VzYnZpZGVvL3ZpY2FtLmMKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAjaW5jbHVkZSAidXNidmlkZW8uaCIKIAogLy8gI2RlZmluZSBWSUNBTV9ERUJVRwpAQCAtNzAsMjg0ICs3Miw2IEBACiAKICNkZWZpbmUgVklDQU1fSEVBREVSX1NJWkUgICAgICAgNjQKIAotLyogTm90IHN1cmUgd2hhdCBhbGwgdGhlIGJ5dGVzIGluIHRoZXNlIGNoYXIKLSAqIGFycmF5cyBkbywgYnV0IHRoZXkncmUgbmVjZXNzYXJ5IHRvIG1ha2UKLSAqIHRoZSBjYW1lcmEgd29yay4KLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzZXR1cDFbXSA9IHsKLQkweEI2LCAweEMzLCAweDFGLCAweDAwLCAweDAyLCAweDY0LCAweEU3LCAweDY3LAotCTB4RkQsIDB4RkYsIDB4MEUsIDB4QzAsIDB4RTcsIDB4MDksIDB4REUsIDB4MDAsCi0JMHg4RSwgMHgwMCwgMHhDMCwgMHgwOSwgMHg0MCwgMHgwMywgMHhDMCwgMHgxNywKLQkweDQ0LCAweDAzLCAweDRCLCAweEFGLCAweEMwLCAweDA3LCAweDAwLCAweDAwLAotCTB4NEIsIDB4QUYsIDB4OTcsIDB4Q0YsIDB4MDAsIDB4MDAKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNldHVwMltdID0gewotCTB4QjYsIDB4QzMsIDB4MDMsIDB4MDAsIDB4MDMsIDB4NjQsIDB4MTgsIDB4MDAsCi0JMHgwMCwgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc2V0dXAzW10gPSB7Ci0JMHhCNiwgMHhDMywgMHgwMSwgMHgwMCwgMHgwNiwgMHg2NCwgMHgwMCwgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc2V0dXA0W10gPSB7Ci0JMHhCNiwgMHhDMywgMHg4RiwgMHgwNiwgMHgwMiwgMHg2NCwgMHhFNywgMHgwNywKLQkweDAwLCAweDAwLCAweDA4LCAweEMwLCAweEU3LCAweDA3LCAweDAwLCAweDAwLAotCTB4M0UsIDB4QzAsIDB4RTcsIDB4MDcsIDB4NTQsIDB4MDEsIDB4QUEsIDB4MDAsCi0JMHhFNywgMHgwNywgMHhDOCwgMHgwNSwgMHhCNiwgMHgwMCwgMHhFNywgMHgwNywKLQkweDQyLCAweDAxLCAweEQyLCAweDAwLCAweEU3LCAweDA3LCAweDdDLCAweDAwLAotCTB4MTYsIDB4MDAsIDB4RTcsIDB4MDcsIDB4NTYsIDB4MDAsIDB4MTgsIDB4MDAsCi0JMHhFNywgMHgwNywgMHgwNiwgMHgwMCwgMHg5MiwgMHhDMCwgMHhFNywgMHgwNywKLQkweDAwLCAweDAwLCAweDFFLCAweEMwLCAweEU3LCAweDA3LCAweEZGLCAweEZGLAotCTB4MjIsIDB4QzAsIDB4RTcsIDB4MDcsIDB4MDQsIDB4MDAsIDB4MjQsIDB4QzAsCi0JMHhFNywgMHgwNywgMHhFQywgMHgyNywgMHgyOCwgMHhDMCwgMHhFNywgMHgwNywKLQkweDE2LCAweDAxLCAweDhFLCAweDAwLCAweEU3LCAweDg3LCAweDAxLCAweDAwLAotCTB4MEUsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4RDcsIDB4MDksIDB4MDAsIDB4QzAsCi0JMHhFNywgMHg3NywgMHgwMSwgMHgwMCwgMHg5MiwgMHhDMCwgMHgwOSwgMHhDMSwKLQkweEU3LCAweDA5LCAweEZFLCAweDA1LCAweDI0LCAweDAxLCAweEU3LCAweDA5LAotCTB4MDQsIDB4MDYsIDB4MjYsIDB4MDEsIDB4RTcsIDB4MDcsIDB4MDcsIDB4MDAsCi0JMHg5MiwgMHhDMCwgMHhFNywgMHgwNSwgMHgwMCwgMHhDMCwgMHhDMCwgMHhERiwKLQkweDk3LCAweENGLCAweDE3LCAweDAwLCAweDU3LCAweDAwLCAweDE3LCAweDAyLAotCTB4RDcsIDB4MDksIDB4MDAsIDB4QzAsIDB4RTcsIDB4NzcsIDB4MDEsIDB4MDAsCi0JMHg5MiwgMHhDMCwgMHgwQSwgMHhDMSwgMHhFNywgMHg1NywgMHhGRiwgMHhGRiwKLQkweEZBLCAweDA1LCAweDBELCAweEMwLCAweEU3LCAweDU3LCAweDAwLCAweDAwLAotCTB4RkEsIDB4MDUsIDB4MEYsIDB4QzAsIDB4OUYsIDB4QUYsIDB4QzYsIDB4MDAsCi0JMHhFNywgMHgwNSwgMHgwMCwgMHhDMCwgMHhDOCwgMHgwNSwgMHhDMSwgMHgwNSwKLQkweEMwLCAweDA1LCAweEMwLCAweERGLCAweDk3LCAweENGLCAweDI3LCAweERBLAotCTB4RkEsIDB4MDUsIDB4RUYsIDB4MDcsIDB4MDEsIDB4MDAsIDB4MEIsIDB4MDYsCi0JMHg3MywgMHhDRiwgMHg5RiwgMHhBRiwgMHg3OCwgMHgwMSwgMHg5RiwgMHhBRiwKLQkweDFBLCAweDAzLCAweDZFLCAweENGLCAweEU3LCAweDA5LCAweEZDLCAweDA1LAotCTB4MjQsIDB4MDEsIDB4RTcsIDB4MDksIDB4MDIsIDB4MDYsIDB4MjYsIDB4MDEsCi0JMHhFNywgMHgwNywgMHgwNywgMHgwMCwgMHg5MiwgMHhDMCwgMHhFNywgMHgwOSwKLQkweEZDLCAweDA1LCAweEZFLCAweDA1LCAweEU3LCAweDA5LCAweDAyLCAweDA2LAotCTB4MDQsIDB4MDYsIDB4RTcsIDB4MDksIDB4MDAsIDB4MDYsIDB4RkMsIDB4MDUsCi0JMHhFNywgMHgwOSwgMHhGRSwgMHgwNSwgMHgwMCwgMHgwNiwgMHgyNywgMHhEQSwKLQkweEZBLCAweDA1LCAweEU3LCAweDU3LCAweDAxLCAweDAwLCAweEZBLCAweDA1LAotCTB4MDIsIDB4Q0EsIDB4MDQsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4OUYsIDB4QUYsCi0JMHg2NiwgMHgwNSwgMHg5NywgMHhDRiwgMHhFNywgMHgwNywgMHg0MCwgMHgwMCwKLQkweDAyLCAweDA2LCAweEM4LCAweDA5LCAweEZDLCAweDA1LCAweDlGLCAweEFGLAotCTB4REEsIDB4MDIsIDB4OTcsIDB4Q0YsIDB4Q0YsIDB4MTcsIDB4MDIsIDB4MDAsCi0JMHhFRiwgMHg1NywgMHg4MSwgMHgwMCwgMHgwOSwgMHgwNiwgMHg5RiwgMHhBMCwKLQkweEI2LCAweDAxLCAweEVGLCAweDU3LCAweDgwLCAweDAwLCAweDA5LCAweDA2LAotCTB4OUYsIDB4QTAsIDB4NDAsIDB4MDIsIDB4RUYsIDB4NTcsIDB4MDEsIDB4MDAsCi0JMHgwQiwgMHgwNiwgMHg5RiwgMHhBMCwgMHg0NiwgMHgwMywgMHhFNywgMHgwNywKLQkweDAxLCAweDAwLCAweDBBLCAweEMwLCAweDQ2LCAweEFGLCAweDQ3LCAweEFGLAotCTB4OUYsIDB4QUYsIDB4NDAsIDB4MDIsIDB4RTcsIDB4MDcsIDB4MkUsIDB4MDAsCi0JMHgwQSwgMHhDMCwgMHhFRiwgMHg4NywgMHg4MCwgMHgwMCwgMHgwOSwgMHgwNiwKLQkweDk3LCAweENGLCAweDAwLCAweDBFLCAweDAxLCAweDAwLCAweEMwLCAweDU3LAotCTB4NTEsIDB4MDAsIDB4OUYsIDB4QzAsIDB4OUUsIDB4MDIsIDB4QzAsIDB4NTcsCi0JMHg1MCwgMHgwMCwgMHgyMCwgMHhDMCwgMHhDMCwgMHg1NywgMHg1NSwgMHgwMCwKLQkweDEyLCAweEMwLCAweEMwLCAweDU3LCAweDU2LCAweDAwLCAweDlGLCAweEMwLAotCTB4NzIsIDB4MDIsIDB4OUYsIDB4Q0YsIDB4RDYsIDB4MDIsIDB4QzEsIDB4MEIsCi0JMHgwOCwgMHgwNiwgMHgwMSwgMHhEMCwgMHg2RiwgMHg5MCwgMHgwOCwgMHgwNiwKLQkweEMwLCAweDA3LCAweDA4LCAweDAwLCAweEMxLCAweDBCLCAweDA4LCAweDA2LAotCTB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4OTcsIDB4Q0YsIDB4MkYsIDB4MEUsCi0JMHgwMiwgMHgwMCwgMHgwOCwgMHgwNiwgMHhDMCwgMHgwNywgMHgwOCwgMHgwMCwKLQkweEMxLCAweDBCLCAweDA4LCAweDA2LCAweDlGLCAweEFGLCAweDI4LCAweDA1LAotCTB4OUYsIDB4Q0YsIDB4RDYsIDB4MDIsIDB4MkYsIDB4MEUsIDB4MDIsIDB4MDAsCi0JMHgwOSwgMHgwNiwgMHhFRiwgMHg4NywgMHg4MCwgMHgwMCwgMHgwOSwgMHgwNiwKLQkweDlGLCAweENGLCAweEQ2LCAweDAyLCAweEVGLCAweDY3LCAweDdGLCAweEZGLAotCTB4MDksIDB4MDYsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RkQsIDB4MjIsIDB4QzAsCi0JMHhFNywgMHg2NywgMHhFRiwgMHhGRiwgMHgyNCwgMHhDMCwgMHhFNywgMHg4NywKLQkweDEwLCAweDAwLCAweDI4LCAweEMwLCAweDlGLCAweEFGLCAweEI4LCAweDA1LAotCTB4RTcsIDB4ODcsIDB4RTAsIDB4MjEsIDB4MjQsIDB4QzAsIDB4OUYsIDB4QUYsCi0JMHhBOCwgMHgwNSwgMHhFNywgMHg4NywgMHgwOCwgMHgwMCwgMHgyNCwgMHhDMCwKLQkweEU3LCAweDY3LCAweERGLCAweEZGLCAweDI0LCAweEMwLCAweEM4LCAweDA3LAotCTB4MEEsIDB4MDAsIDB4QzAsIDB4MDcsIDB4MDAsIDB4MDAsIDB4QzEsIDB4MDcsCi0JMHgwMSwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHg5RiwgMHhBRiwKLQkweEI4LCAweDA1LCAweEMwLCAweDA3LCAweDlFLCAweDAwLCAweDlGLCAweEFGLAotCTB4NDQsIDB4MDUsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RkUsIDB4MjQsIDB4QzAsCi0JMHhDMCwgMHgwOSwgMHgyMCwgMHhDMCwgMHhFNywgMHg4NywgMHgwMCwgMHgwMSwKLQkweDI0LCAweEMwLCAweEMwLCAweDc3LCAweDAwLCAweDAyLCAweDBGLCAweEMxLAotCTB4RTcsIDB4NjcsIDB4RjcsIDB4RkYsIDB4MjQsIDB4QzAsIDB4RTcsIDB4NjcsCi0JMHhGNywgMHhGRiwgMHgyNCwgMHhDMCwgMHhFNywgMHg4NywgMHgwOCwgMHgwMCwKLQkweDI0LCAweEMwLCAweDA4LCAweERBLCAweDVFLCAweEMxLCAweEVGLCAweDA3LAotCTB4ODAsIDB4MDAsIDB4MDksIDB4MDYsIDB4OTcsIDB4Q0YsIDB4RUYsIDB4MDcsCi0JMHgwMSwgMHgwMCwgMHgwQSwgMHgwNiwgMHg5NywgMHhDRiwgMHhFRiwgMHgwNywKLQkweDAwLCAweDAwLCAweDBCLCAweDA2LCAweEVGLCAweDA3LCAweDAwLCAweDAwLAotCTB4MEEsIDB4MDYsIDB4RUYsIDB4NjcsIDB4N0YsIDB4RkYsIDB4MDksIDB4MDYsCi0JMHhFRiwgMHgwNywgMHgwMCwgMHgwMCwgMHgwRCwgMHgwNiwgMHhFNywgMHg2NywKLQkweEVGLCAweEZGLCAweDI4LCAweEMwLCAweEU3LCAweDY3LCAweDE3LCAweEQ4LAotCTB4MjQsIDB4QzAsIDB4RTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MUUsIDB4QzAsCi0JMHhFNywgMHgwNywgMHhGRiwgMHhGRiwgMHgyMiwgMHhDMCwgMHg5NywgMHhDRiwKLQkweEM4LCAweDA3LCAweDBFLCAweDA2LCAweDlGLCAweEFGLCAweERBLCAweDAyLAotCTB4RTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4RjIsIDB4MDUsIDB4RTcsIDB4MDcsCi0JMHgxMCwgMHgwMCwgMHhGNiwgMHgwNSwgMHhFNywgMHgwNywgMHgwRSwgMHgwNiwKLQkweEY0LCAweDA1LCAweEU3LCAweDA3LCAweEQ2LCAweDAyLCAweEY4LCAweDA1LAotCTB4QzgsIDB4MDcsIDB4RjIsIDB4MDUsIDB4QzEsIDB4MDcsIDB4MDAsIDB4ODAsCi0JMHg1MCwgMHhBRiwgMHg5NywgMHhDRiwgMHgyRiwgMHgwQywgMHgwMiwgMHgwMCwKLQkweDA3LCAweDA2LCAweDJGLCAweDBDLCAweDA0LCAweDAwLCAweDA2LCAweDA2LAotCTB4RTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4RjIsIDB4MDUsIDB4RTcsIDB4MDcsCi0JMHgxMCwgMHgwMCwgMHhGNiwgMHgwNSwgMHhFNywgMHgwNywgMHhFMiwgMHgwNSwKLQkweEY0LCAweDA1LCAweEU3LCAweDA3LCAweENFLCAweDAyLCAweEY4LCAweDA1LAotCTB4QzgsIDB4MDcsIDB4RjIsIDB4MDUsIDB4QzEsIDB4MDcsIDB4MDAsIDB4ODAsCi0JMHg1MSwgMHhBRiwgMHg5NywgMHhDRiwgMHg5RiwgMHhBRiwgMHg2NiwgMHgwNCwKLQkweDlGLCAweEFGLCAweDFBLCAweDAzLCAweDU5LCAweEFGLCAweDk3LCAweENGLAotCTB4QzAsIDB4MDcsIDB4MEUsIDB4MDAsIDB4QzEsIDB4MEIsIDB4MEMsIDB4MDYsCi0JMHg0MSwgMHhEMSwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywKLQkweDNDLCAweDAwLCAweDlGLCAweEFGLCAweDQ0LCAweDA1LCAweDY4LCAweDAwLAotCTB4QzAsIDB4MDcsIDB4M0IsIDB4MDAsIDB4OUYsIDB4QUYsIDB4NDQsIDB4MDUsCi0JMHg2RiwgMHgwMCwgMHgwQywgMHgwNiwgMHg2OCwgMHgwMCwgMHhFMCwgMHgwNywKLQkweDA0LCAweDAxLCAweEU4LCAweDBCLCAweDBBLCAweDA2LCAweEU4LCAweDA3LAotCTB4MDAsIDB4MDAsIDB4RTAsIDB4MDcsIDB4MDAsIDB4MDIsIDB4RTAsIDB4MDcsCi0JMHhFQywgMHgwMSwgMHhFMCwgMHgwNywgMHhGQywgMHhGRiwgMHg5NywgMHhDRiwKLQkweEU3LCAweDA3LCAweEZGLCAweEZGLCAweEZBLCAweDA1LCAweEVGLCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MEIsIDB4MDYsIDB4RTcsIDB4MDcsIDB4MEUsIDB4MDYsCi0JMHgyNCwgMHgwMSwgMHhFNywgMHgwNywgMHgwRSwgMHgwNiwgMHhGRSwgMHgwNSwKLQkweEU3LCAweDA3LCAweDQwLCAweDAwLCAweDI2LCAweDAxLCAweEU3LCAweDA3LAotCTB4NDAsIDB4MDAsIDB4MDQsIDB4MDYsIDB4RTcsIDB4MDcsIDB4MDcsIDB4MDAsCi0JMHg5MiwgMHhDMCwgMHg5NywgMHhDRiwgMHhFRiwgMHgwNywgMHgwMiwgMHgwMCwKLQkweDBCLCAweDA2LCAweDlGLCAweEFGLCAweDc4LCAweDAxLCAweEVGLCAweDc3LAotCTB4ODAsIDB4MDAsIDB4MDcsIDB4MDYsIDB4OUYsIDB4QzAsIDB4MTQsIDB4MDQsCi0JMHhFRiwgMHg3NywgMHgwMSwgMHgwMCwgMHgwNywgMHgwNiwgMHgzNywgMHhDMCwKLQkweEVGLCAweDc3LCAweDAxLCAweDAwLCAweDBELCAweDA2LCAweDBGLCAweEMxLAotCTB4RUYsIDB4MDcsIDB4MDEsIDB4MDAsIDB4MEQsIDB4MDYsIDB4QzAsIDB4MDcsCi0JMHgwMiwgMHgwMCwgMHhDMSwgMHgwNywgMHgzMCwgMHgwMCwgMHg5RiwgMHhBRiwKLQkweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDAxLCAweDAwLCAweEMxLCAweDA3LAotCTB4MDIsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzgsIDB4MDcsCi0JMHhGRiwgMHg0RiwgMHg5RiwgMHhBRiwgMHhBOCwgMHgwNSwgMHhDMCwgMHgwNywKLQkweDM4LCAweDAwLCAweDlGLCAweEFGLCAweDQ0LCAweDA1LCAweEMxLCAweDc3LAotCTB4MDMsIDB4MDAsIDB4MDIsIDB4QzEsIDB4MDgsIDB4REEsIDB4NzUsIDB4QzEsCi0JMHhDMSwgMHg3NywgMHgwMSwgMHgwMCwgMHgwQSwgMHhDMSwgMHhDMCwgMHgwNywKLQkweDAxLCAweDAwLCAweEMxLCAweDA3LCAweDAyLCAweDAwLCAweDlGLCAweEFGLAotCTB4MjgsIDB4MDUsIDB4RUYsIDB4MDcsIDB4MDEsIDB4MDAsIDB4MDYsIDB4MDYsCi0JMHgyQywgMHhDRiwgMHhDMCwgMHgwNywgMHgwMSwgMHgwMCwgMHhDMSwgMHgwNywKLQkweDA0LCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEVGLCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MDYsIDB4MjIsIDB4Q0YsIDB4RUYsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgwRCwgMHgwNiwgMHhFRiwgMHg1NywgMHgwMSwgMHgwMCwKLQkweDA2LCAweDA2LCAweDFCLCAweEMwLCAweEMwLCAweDA3LCAweDAxLCAweDAwLAotCTB4QzEsIDB4MDcsIDB4MDEsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsCi0JMHhDMCwgMHgwNywgMHgwMiwgMHgwMCwgMHhDMSwgMHgwNywgMHgzMCwgMHgwMCwKLQkweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEM4LCAweDA3LCAweEZGLCAweDRGLAotCTB4OUYsIDB4QUYsIDB4QTgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MzgsIDB4MDAsCi0JMHg5RiwgMHhBRiwgMHg0NCwgMHgwNSwgMHhDMSwgMHg2NywgMHgwMywgMHgwMCwKLQkweEMxLCAweDU3LCAweDAzLCAweDAwLCAweDAyLCAweEMwLCAweDA4LCAweERBLAotCTB4NzMsIDB4QzEsIDB4QzAsIDB4MDcsIDB4MDIsIDB4MDAsIDB4QzEsIDB4MDcsCi0JMHgxMiwgMHgwMCwgMHhFRiwgMHg1NywgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNiwKLQkweDAyLCAweEMwLCAweEMxLCAweDA3LCAweDIzLCAweDAwLCAweDlGLCAweEFGLAotCTB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MTQsIDB4MDAsIDB4QzEsIDB4MEIsCi0JMHhFQSwgMHgwNSwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywKLQkweDNFLCAweDAwLCAweDlGLCAweEFGLCAweDBBLCAweDA1LCAweEU3LCAweDA5LAotCTB4RTQsIDB4MDUsIDB4RkEsIDB4MDUsIDB4MjcsIDB4RDgsIDB4RkEsIDB4MDUsCi0JMHhFNywgMHgwNywgMHgwRSwgMHgwNiwgMHhGQywgMHgwNSwgMHhFNywgMHgwNywKLQkweDRFLCAweDA2LCAweDAwLCAweDA2LCAweEU3LCAweDA3LCAweDQwLCAweDAwLAotCTB4MDIsIDB4MDYsIDB4OUYsIDB4QUYsIDB4NjYsIDB4MDUsIDB4OUYsIDB4QUYsCi0JMHhDNiwgMHgwMCwgMHg5NywgMHhDRiwgMHhDMSwgMHgwQiwgMHhFMiwgMHgwNSwKLQkweDQxLCAweEQwLCAweDAxLCAweEQyLCAweEMxLCAweDE3LCAweDIzLCAweDAwLAotCTB4OUYsIDB4QUYsIDB4REMsIDB4MDQsIDB4QzAsIDB4MDcsIDB4MDQsIDB4MDAsCi0JMHhDMSwgMHgwQiwgMHhFMywgMHgwNSwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwKLQkweEMwLCAweDA3LCAweDA2LCAweDAwLCAweEMxLCAweDA5LCAweEU2LCAweDA1LAotCTB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MDcsIDB4MDAsCi0JMHhDMSwgMHgwOSwgMHhFNiwgMHgwNSwgMHhDMSwgMHhEMSwgMHg5RiwgMHhBRiwKLQkweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDBCLCAweDAwLCAweEMxLCAweDA5LAotCTB4RTgsIDB4MDUsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsCi0JMHgwQywgMHgwMCwgMHhDMSwgMHgwOSwgMHhFOCwgMHgwNSwgMHhDMSwgMHhEMSwKLQkweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDBELCAweDAwLAotCTB4QzEsIDB4MDcsIDB4MDksIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsCi0JMHhDMCwgMHgwNywgMHgwMywgMHgwMCwgMHhDMSwgMHgwNywgMHgzMiwgMHgwMCwKLQkweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDBGLCAweDAwLAotCTB4QzEsIDB4MDcsIDB4MDAsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsCi0JMHg5NywgMHhDRiwgMHhFNywgMHg2NywgMHhGRiwgMHhEOSwgMHgyNCwgMHhDMCwKLQkweEM4LCAweDA3LCAweDBBLCAweDAwLCAweDQwLCAweDAwLCAweEMwLCAweDY3LAotCTB4MDAsIDB4MDIsIDB4MjcsIDB4ODAsIDB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsCi0JMHgwMCwgMHgwNCwgMHgyNCwgMHhDMCwgMHhFNywgMHg2NywgMHhGRiwgMHhGOSwKLQkweDI0LCAweEMwLCAweDAxLCAweEQyLCAweDA4LCAweERBLCAweDcyLCAweEMxLAotCTB4RTcsIDB4ODcsIDB4MDAsIDB4MjAsIDB4MjQsIDB4QzAsIDB4OTcsIDB4Q0YsCi0JMHgyNywgMHgwMCwgMHgxRSwgMHhDMCwgMHhFNywgMHg4NywgMHhGRiwgMHgwMCwKLQkweDIyLCAweEMwLCAweEU3LCAweDY3LCAweDdGLCAweEZGLCAweDI0LCAweEMwLAotCTB4RTcsIDB4ODcsIDB4ODAsIDB4MDAsIDB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsCi0JMHg4MCwgMHgwMCwgMHgyNCwgMHhDMCwgMHg5NywgMHhDRiwgMHg5RiwgMHhBRiwKLQkweDBBLCAweDA1LCAweDY3LCAweDAwLCAweDFFLCAweEMwLCAweEU3LCAweDY3LAotCTB4QkYsIDB4RkYsIDB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsIDB4NDAsIDB4MDAsCi0JMHgyNCwgMHhDMCwgMHhFNywgMHg4NywgMHg0MCwgMHgwMCwgMHgyNCwgMHhDMCwKLQkweDk3LCAweENGLCAweDlGLCAweEFGLCAweDBBLCAweDA1LCAweEU3LCAweDY3LAotCTB4MDAsIDB4RkYsIDB4MjIsIDB4QzAsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RkUsCi0JMHgyNCwgMHhDMCwgMHhFNywgMHg2NywgMHhGRiwgMHhGRSwgMHgyNCwgMHhDMCwKLQkweEMxLCAweDA5LCAweDIwLCAweEMwLCAweEU3LCAweDg3LCAweDAwLCAweDAxLAotCTB4MjQsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4QzAsIDB4MDcsIDB4NDAsIDB4MDAsCi0JMHhDOCwgMHgwOSwgMHhGQywgMHgwNSwgMHhFNywgMHg2NywgMHgwMCwgMHhGRiwKLQkweDIyLCAweEMwLCAweEU3LCAweDY3LCAweEZGLCAweEZFLCAweDI0LCAweEMwLAotCTB4RTcsIDB4NjcsIDB4QkYsIDB4RkYsIDB4MjQsIDB4QzAsIDB4RTcsIDB4NjcsCi0JMHhCRiwgMHhGRiwgMHgyNCwgMHhDMCwgMHgwMCwgMHhEQSwgMHhFOCwgMHgwOSwKLQkweDIwLCAweEMwLCAweEU3LCAweDg3LCAweDQwLCAweDAwLCAweDI0LCAweEMwLAotCTB4RTcsIDB4ODcsIDB4NDAsIDB4MDAsIDB4MjQsIDB4QzAsIDB4MDAsIDB4REEsCi0JMHhFOCwgMHgwOSwgMHgyMCwgMHhDMCwgMHg2RCwgMHhDMSwgMHhFNywgMHg4NywKLQkweDAwLCAweDAxLCAweDI0LCAweEMwLCAweDk3LCAweENGLCAweEU3LCAweDA3LAotCTB4MzIsIDB4MDAsIDB4MTIsIDB4QzAsIDB4RTcsIDB4NzcsIDB4MDAsIDB4ODAsCi0JMHgxMiwgMHhDMCwgMHg3QywgMHhDMCwgMHg5NywgMHhDRiwgMHhFNywgMHgwNywKLQkweDIwLCAweDRFLCAweDEyLCAweEMwLCAweEU3LCAweDc3LCAweDAwLCAweDgwLAotCTB4MTIsIDB4QzAsIDB4N0MsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4MDksIDB4MDIsCi0JMHgxOSwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHg5NiwgMHgwOSwKLQkweDA0LCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNldHVwNVtdID0gewotCTB4QjYsIDB4QzMsIDB4MkYsIDB4MDEsIDB4MDMsIDB4NjQsIDB4MEUsIDB4MDAsCi0JMHgxNCwgMHgwMCwgMHgxQSwgMHgwMCwgMHgyMCwgMHgwMCwgMHgyNiwgMHgwMCwKLQkweDRBLCAweDAwLCAweDY0LCAweDAwLCAweDZBLCAweDAwLCAweDkyLCAweDAwLAotCTB4OUEsIDB4MDAsIDB4QTAsIDB4MDAsIDB4QjIsIDB4MDAsIDB4QjgsIDB4MDAsCi0JMHhCRSwgMHgwMCwgMHhDMiwgMHgwMCwgMHhDOCwgMHgwMCwgMHhDRSwgMHgwMCwKLQkweERDLCAweDAwLCAweERBLCAweDAwLCAweEUyLCAweDAwLCAweEUwLCAweDAwLAotCTB4RTgsIDB4MDAsIDB4RTYsIDB4MDAsIDB4RUUsIDB4MDAsIDB4RUMsIDB4MDAsCi0JMHhGMiwgMHgwMCwgMHhGOCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwQSwgMHgwMSwKLQkweDBFLCAweDAxLCAweDEyLCAweDAxLCAweDFFLCAweDAxLCAweDIyLCAweDAxLAotCTB4MjgsIDB4MDEsIDB4MkMsIDB4MDEsIDB4MzIsIDB4MDEsIDB4MzYsIDB4MDEsCi0JMHg0NCwgMHgwMSwgMHg1MCwgMHgwMSwgMHg1RSwgMHgwMSwgMHg3MiwgMHgwMSwKLQkweDc2LCAweDAxLCAweDdBLCAweDAxLCAweDgwLCAweDAxLCAweDg4LCAweDAxLAotCTB4OEMsIDB4MDEsIDB4OTQsIDB4MDEsIDB4OUMsIDB4MDEsIDB4QTAsIDB4MDEsCi0JMHhBNCwgMHgwMSwgMHhBQSwgMHgwMSwgMHhCMCwgMHgwMSwgMHhCNCwgMHgwMSwKLQkweEJBLCAweDAxLCAweEQwLCAweDAxLCAweERBLCAweDAxLCAweEY2LCAweDAxLAotCTB4RkEsIDB4MDEsIDB4MDIsIDB4MDIsIDB4MzQsIDB4MDIsIDB4M0MsIDB4MDIsCi0JMHg0NCwgMHgwMiwgMHg0QSwgMHgwMiwgMHg1MCwgMHgwMiwgMHg1NiwgMHgwMiwKLQkweDc0LCAweDAyLCAweDc4LCAweDAyLCAweDdFLCAweDAyLCAweDg0LCAweDAyLAotCTB4OEEsIDB4MDIsIDB4ODgsIDB4MDIsIDB4OTAsIDB4MDIsIDB4OEUsIDB4MDIsCi0JMHg5NCwgMHgwMiwgMHhBMiwgMHgwMiwgMHhBOCwgMHgwMiwgMHhBRSwgMHgwMiwKLQkweEI0LCAweDAyLCAweEJBLCAweDAyLCAweEI4LCAweDAyLCAweEMwLCAweDAyLAotCTB4QkUsIDB4MDIsIDB4QzQsIDB4MDIsIDB4RDAsIDB4MDIsIDB4RDQsIDB4MDIsCi0JMHhFMCwgMHgwMiwgMHhFNiwgMHgwMiwgMHhFRSwgMHgwMiwgMHhGOCwgMHgwMiwKLQkweEZDLCAweDAyLCAweDA2LCAweDAzLCAweDFFLCAweDAzLCAweDI0LCAweDAzLAotCTB4MjgsIDB4MDMsIDB4MzAsIDB4MDMsIDB4MkUsIDB4MDMsIDB4M0MsIDB4MDMsCi0JMHg0QSwgMHgwMywgMHg0RSwgMHgwMywgMHg1NCwgMHgwMywgMHg1OCwgMHgwMywKLQkweDVFLCAweDAzLCAweDY2LCAweDAzLCAweDZFLCAweDAzLCAweDdBLCAweDAzLAotCTB4ODYsIDB4MDMsIDB4OEUsIDB4MDMsIDB4OTYsIDB4MDMsIDB4QjIsIDB4MDMsCi0JMHhCOCwgMHgwMywgMHhDNiwgMHgwMywgMHhDQywgMHgwMywgMHhENCwgMHgwMywKLQkweERBLCAweDAzLCAweEU4LCAweDAzLCAweEY0LCAweDAzLCAweEZDLCAweDAzLAotCTB4MDQsIDB4MDQsIDB4MjAsIDB4MDQsIDB4MkEsIDB4MDQsIDB4MzIsIDB4MDQsCi0JMHgzNiwgMHgwNCwgMHgzRSwgMHgwNCwgMHg0NCwgMHgwNCwgMHg0MiwgMHgwNCwKLQkweDQ4LCAweDA0LCAweDRFLCAweDA0LCAweDRDLCAweDA0LCAweDU0LCAweDA0LAotCTB4NTIsIDB4MDQsIDB4NUEsIDB4MDQsIDB4NUUsIDB4MDQsIDB4NjIsIDB4MDQsCi0JMHg2OCwgMHgwNCwgMHg3NCwgMHgwNCwgMHg3QywgMHgwNCwgMHg4MCwgMHgwNCwKLQkweDg4LCAweDA0LCAweDhDLCAweDA0LCAweDk0LCAweDA0LCAweDlBLCAweDA0LAotCTB4QTIsIDB4MDQsIDB4QTYsIDB4MDQsIDB4QUUsIDB4MDQsIDB4QjQsIDB4MDQsCi0JMHhDMCwgMHgwNCwgMHhDQywgMHgwNCwgMHhEOCwgMHgwNCwgMHgyQSwgMHgwNSwKLQkweDQ2LCAweDA1LCAweDZDLCAweDA1LCAweDAwLCAweDAwCi19OwotCiAvKiBydm1hbGxvYyAvIHJ2ZnJlZSBjb3BpZWQgZnJvbSB1c2J2aWRlby5jCiAgKgogICogTm90IHN1cmUgd2h5IHRoZXNlIGFyZSBub3QgeWV0IG5vbi1zdGF0aWNzIHdoaWNoIEkgY2FuIHJlZmVyZW5jZSB0aHJvdWdoCkBAIC00NjQsMjggKzE4OCwyOCBAQAogc3RhdGljIGludAogaW5pdGlhbGl6ZV9jYW1lcmEoc3RydWN0IHZpY2FtX2NhbWVyYSAqY2FtKQogewotCWNvbnN0IHN0cnVjdCB7Ci0JCXU4ICpkYXRhOwotCQl1MzIgc2l6ZTsKLQl9IGZpcm13YXJlW10gPSB7Ci0JCXsgLmRhdGEgPSBzZXR1cDEsIC5zaXplID0gc2l6ZW9mKHNldHVwMSkgfSwKLQkJeyAuZGF0YSA9IHNldHVwMiwgLnNpemUgPSBzaXplb2Yoc2V0dXAyKSB9LAotCQl7IC5kYXRhID0gc2V0dXAzLCAuc2l6ZSA9IHNpemVvZihzZXR1cDMpIH0sCi0JCXsgLmRhdGEgPSBzZXR1cDQsIC5zaXplID0gc2l6ZW9mKHNldHVwNCkgfSwKLQkJeyAuZGF0YSA9IHNldHVwNSwgLnNpemUgPSBzaXplb2Yoc2V0dXA1KSB9LAotCQl7IC5kYXRhID0gc2V0dXAzLCAuc2l6ZSA9IHNpemVvZihzZXR1cDMpIH0sCi0JCXsgLmRhdGEgPSBOVUxMLCAuc2l6ZSA9IDAgfQotCX07CisJaW50IGVycjsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCi0JaW50IGVyciwgaTsKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZ3LCAidmljYW0vZmlybXdhcmUuZnciLCAmY2FtLT51ZGV2LT5kZXYpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBcInZpY2FtL2Zpcm13YXJlLmZ3XCI6ICVkXG4iLAorCQkgICAgICAgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CiAKLQlmb3IgKGkgPSAwLCBlcnIgPSAwOyBmaXJtd2FyZVtpXS5kYXRhICYmICFlcnI7IGkrKykgewotCQltZW1jcHkoY2FtLT5jbnRybGJ1ZiwgZmlybXdhcmVbaV0uZGF0YSwgZmlybXdhcmVbaV0uc2l6ZSk7CisJZm9yIChyZWMgPSAodm9pZCAqKWZ3LT5kYXRhOyByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQltZW1jcHkoY2FtLT5jbnRybGJ1ZiwgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogCiAJCWVyciA9IHNlbmRfY29udHJvbF9tc2coY2FtLCAweGZmLCAwLCAwLAotCQkJCSAgICAgICBjYW0tPmNudHJsYnVmLCBmaXJtd2FyZVtpXS5zaXplKTsKKwkJCQkgICAgICAgY2FtLT5jbnRybGJ1ZiwgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKKwkJaWYgKGVycikKKwkJCWJyZWFrOwogCX0KIAorCXJlbGVhc2VfZmlybXdhcmUoZncpOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTIyNiwzICs5NTAsNCBAQAogTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKIE1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoInZpY2FtL2Zpcm13YXJlLmZ3Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2OGMxOTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy9NYWtlZmlsZQpAQCAtMCwwICsxLDMgQEAKK3V2Y3ZpZGVvLW9ianMgIDo9IHV2Y19kcml2ZXIubyB1dmNfcXVldWUubyB1dmNfdjRsMi5vIHV2Y192aWRlby5vIHV2Y19jdHJsLm8gXAorCQkgIHV2Y19zdGF0dXMubyB1dmNfaXNpZ2h0Lm8KK29iai0kKENPTkZJR19VU0JfVklERU9fQ0xBU1MpICs9IHV2Y3ZpZGVvLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19jdHJsLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfY3RybC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZWU0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfY3RybC5jCkBAIC0wLDAgKzEsMTI1NiBAQAorLyoKKyAqICAgICAgdXZjX2N0cmwuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBDb250cm9scworICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworI2RlZmluZSBVVkNfQ1RSTF9OREFUQQkJMgorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQJMAorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX0JBQ0tVUAkxCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQ29udHJvbCwgZm9ybWF0cywgLi4uCisgKi8KKworc3RhdGljIHN0cnVjdCB1dmNfY29udHJvbF9pbmZvIHV2Y19jdHJsc1tdID0geworCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQlJJR0hUTkVTU19DT05UUk9MLAorCQkuaW5kZXgJCT0gMCwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0NPTlRSQVNUX0NPTlRST0wsCisJCS5pbmRleAkJPSAxLAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfSFVFX0NPTlRST0wsCisJCS5pbmRleAkJPSAyLAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSB8IFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9TQVRVUkFUSU9OX0NPTlRST0wsCisJCS5pbmRleAkJPSAzLAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfU0hBUlBORVNTX0NPTlRST0wsCisJCS5pbmRleAkJPSA0LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfR0FNTUFfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDUsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9CQUNLTElHSFRfQ09NUEVOU0FUSU9OX0NPTlRST0wsCisJCS5pbmRleAkJPSA4LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfR0FJTl9DT05UUk9MLAorCQkuaW5kZXgJCT0gOSwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1BPV0VSX0xJTkVfRlJFUVVFTkNZX0NPTlRST0wsCisJCS5pbmRleAkJPSAxMCwKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0hVRV9BVVRPX0NPTlRST0wsCisJCS5pbmRleAkJPSAxMSwKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9HRVRfREVGIHwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9BRV9NT0RFX0NPTlRST0wsCisJCS5pbmRleAkJPSAxLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX0dFVF9ERUYgfCBVVkNfQ09OVFJPTF9HRVRfUkVTCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0FFX1BSSU9SSVRZX0NPTlRST0wsCisJCS5pbmRleAkJPSAyLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRVhQT1NVUkVfVElNRV9BQlNPTFVURV9DT05UUk9MLAorCQkuaW5kZXgJCT0gMywKKwkJLnNpemUJCT0gNCwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRk9DVVNfQUJTT0xVVEVfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDUsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFIHwgVVZDX0NPTlRST0xfQVVUT19VUERBVEUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRk9DVVNfQVVUT19DT05UUk9MLAorCQkuaW5kZXgJCT0gMTcsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfR0VUX0RFRiB8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQVVUT19DT05UUk9MLAorCQkuaW5kZXgJCT0gMTIsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfR0VUX0RFRiB8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDYsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFIHwgVVZDX0NPTlRST0xfQVVUT19VUERBVEUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0FVVE9fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDEzLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX0dFVF9ERUYgfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9DT05UUk9MLAorCQkuaW5kZXgJCT0gNywKKwkJLnNpemUJCT0gNCwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUgfCBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCB1dmNfbWVudV9pbmZvIHBvd2VyX2xpbmVfZnJlcXVlbmN5X2NvbnRyb2xzW10gPSB7CisJeyAwLCAiRGlzYWJsZWQiIH0sCisJeyAxLCAiNTAgSHoiIH0sCisJeyAyLCAiNjAgSHoiIH0sCit9OworCitzdGF0aWMgc3RydWN0IHV2Y19tZW51X2luZm8gZXhwb3N1cmVfYXV0b19jb250cm9sc1tdID0geworCXsgMSwgIk1hbnVhbCBNb2RlIiB9LAorCXsgMiwgIkF1dG8gTW9kZSIgfSwKKwl7IDQsICJTaHV0dGVyIFByaW9yaXR5IE1vZGUiIH0sCisJeyA4LCAiQXBlcnR1cmUgUHJpb3JpdHkgTW9kZSIgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyB1dmNfY3RybF9tYXBwaW5nc1tdID0geworCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0JSSUdIVE5FU1MsCisJCS5uYW1lCQk9ICJCcmlnaHRuZXNzIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQlJJR0hUTkVTU19DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9DT05UUkFTVCwKKwkJLm5hbWUJCT0gIkNvbnRyYXN0IiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQ09OVFJBU1RfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9IVUUsCisJCS5uYW1lCQk9ICJIdWUiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9IVUVfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfU0FUVVJBVElPTiwKKwkJLm5hbWUJCT0gIlNhdHVyYXRpb24iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9TQVRVUkFUSU9OX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfU0hBUlBORVNTLAorCQkubmFtZQkJPSAiU2hhcnBuZXNzIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfU0hBUlBORVNTX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfR0FNTUEsCisJCS5uYW1lCQk9ICJHYW1tYSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0dBTU1BX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfQkFDS0xJR0hUX0NPTVBFTlNBVElPTiwKKwkJLm5hbWUJCT0gIkJhY2tsaWdodCBDb21wZW5zYXRpb24iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9CQUNLTElHSFRfQ09NUEVOU0FUSU9OX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfR0FJTiwKKwkJLm5hbWUJCT0gIkdhaW4iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9HQUlOX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfUE9XRVJfTElORV9GUkVRVUVOQ1ksCisJCS5uYW1lCQk9ICJQb3dlciBMaW5lIEZyZXF1ZW5jeSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1BPV0VSX0xJTkVfRlJFUVVFTkNZX0NPTlRST0wsCisJCS5zaXplCQk9IDIsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX01FTlUsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfRU5VTSwKKwkJLm1lbnVfaW5mbwk9IHBvd2VyX2xpbmVfZnJlcXVlbmN5X2NvbnRyb2xzLAorCQkubWVudV9jb3VudAk9IEFSUkFZX1NJWkUocG93ZXJfbGluZV9mcmVxdWVuY3lfY29udHJvbHMpLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfSFVFX0FVVE8sCisJCS5uYW1lCQk9ICJIdWUsIEF1dG8iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9IVUVfQVVUT19DT05UUk9MLAorCQkuc2l6ZQkJPSAxLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9CT09MRUFOLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4sCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9FWFBPU1VSRV9BVVRPLAorCQkubmFtZQkJPSAiRXhwb3N1cmUsIEF1dG8iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0FFX01PREVfQ09OVFJPTCwKKwkJLnNpemUJCT0gNCwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfTUVOVSwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CSVRNQVNLLAorCQkubWVudV9pbmZvCT0gZXhwb3N1cmVfYXV0b19jb250cm9scywKKwkJLm1lbnVfY291bnQJPSBBUlJBWV9TSVpFKGV4cG9zdXJlX2F1dG9fY29udHJvbHMpLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfRVhQT1NVUkVfQVVUT19QUklPUklUWSwKKwkJLm5hbWUJCT0gIkV4cG9zdXJlLCBBdXRvIFByaW9yaXR5IiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9BRV9QUklPUklUWV9DT05UUk9MLAorCQkuc2l6ZQkJPSAxLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9CT09MRUFOLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4sCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9FWFBPU1VSRV9BQlNPTFVURSwKKwkJLm5hbWUJCT0gIkV4cG9zdXJlIChBYnNvbHV0ZSkiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0VYUE9TVVJFX1RJTUVfQUJTT0xVVEVfQ09OVFJPTCwKKwkJLnNpemUJCT0gMzIsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9BVVRPX1dISVRFX0JBTEFOQ0UsCisJCS5uYW1lCQk9ICJXaGl0ZSBCYWxhbmNlIFRlbXBlcmF0dXJlLCBBdXRvIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9BVVRPX0NPTlRST0wsCisJCS5zaXplCQk9IDEsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0JPT0xFQU4sCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTiwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkUsCisJCS5uYW1lCQk9ICJXaGl0ZSBCYWxhbmNlIFRlbXBlcmF0dXJlIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0FVVE9fV0hJVEVfQkFMQU5DRSwKKwkJLm5hbWUJCT0gIldoaXRlIEJhbGFuY2UgQ29tcG9uZW50LCBBdXRvIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQVVUT19DT05UUk9MLAorCQkuc2l6ZQkJPSAxLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9CT09MRUFOLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4sCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9CTFVFX0JBTEFOQ0UsCisJCS5uYW1lCQk9ICJXaGl0ZSBCYWxhbmNlIEJsdWUgQ29tcG9uZW50IiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfUkVEX0JBTEFOQ0UsCisJCS5uYW1lCQk9ICJXaGl0ZSBCYWxhbmNlIFJlZCBDb21wb25lbnQiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAxNiwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfRk9DVVNfQUJTT0xVVEUsCisJCS5uYW1lCQk9ICJGb2N1cyAoYWJzb2x1dGUpIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9GT0NVU19BQlNPTFVURV9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0ZPQ1VTX0FVVE8sCisJCS5uYW1lCQk9ICJGb2N1cywgQXV0byIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRk9DVVNfQVVUT19DT05UUk9MLAorCQkuc2l6ZQkJPSAxLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9CT09MRUFOLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4sCisJfSwKK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXRpbGl0eSBmdW5jdGlvbnMKKyAqLworCitzdGF0aWMgaW5saW5lIF9fdTggKnV2Y19jdHJsX2RhdGEoc3RydWN0IHV2Y19jb250cm9sICpjdHJsLCBpbnQgaWQpCit7CisJcmV0dXJuIGN0cmwtPmRhdGEgKyBpZCAqIGN0cmwtPmluZm8tPnNpemU7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHV2Y19nZXRfYml0KGNvbnN0IF9fdTggKmRhdGEsIGludCBiaXQpCit7CisJcmV0dXJuIChkYXRhW2JpdCA+PiAzXSA+PiAoYml0ICYgNykpICYgMTsKK30KKworLyogRXh0cmFjdCB0aGUgYml0IHN0cmluZyBzcGVjaWZpZWQgYnkgbWFwcGluZy0+b2Zmc2V0IGFuZCBtYXBwaW5nLT5zaXplCisgKiBmcm9tIHRoZSBsaXR0bGUtZW5kaWFuIGRhdGEgc3RvcmVkIGF0ICdkYXRhJyBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMKKyAqIGEgc2lnbmVkIDMyYml0IGludGVnZXIuIFNpZ24gZXh0ZW5zaW9uIHdpbGwgYmUgcGVyZm9ybWVkIGlmIHRoZSBtYXBwaW5nCisgKiByZWZlcmVuY2VzIGEgc2lnbmVkIGRhdGEgdHlwZS4KKyAqLworc3RhdGljIF9fczMyIHV2Y19nZXRfbGVfdmFsdWUoY29uc3QgX191OCAqZGF0YSwKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZykKK3sKKwlpbnQgYml0cyA9IG1hcHBpbmctPnNpemU7CisJaW50IG9mZnNldCA9IG1hcHBpbmctPm9mZnNldDsKKwlfX3MzMiB2YWx1ZSA9IDA7CisJX191OCBtYXNrOworCisJZGF0YSArPSBvZmZzZXQgLyA4OworCW9mZnNldCAmPSA3OworCW1hc2sgPSAoKDFMTCA8PCBiaXRzKSAtIDEpIDw8IG9mZnNldDsKKworCWZvciAoOyBiaXRzID4gMDsgZGF0YSsrKSB7CisJCV9fdTggYnl0ZSA9ICpkYXRhICYgbWFzazsKKwkJdmFsdWUgfD0gb2Zmc2V0ID4gMCA/IChieXRlID4+IG9mZnNldCkgOiAoYnl0ZSA8PCAoLW9mZnNldCkpOworCQliaXRzIC09IDggLSAob2Zmc2V0ID4gMCA/IG9mZnNldCA6IDApOworCQlvZmZzZXQgLT0gODsKKwkJbWFzayA9ICgxIDw8IGJpdHMpIC0gMTsKKwl9CisKKwkvKiBTaWduLWV4dGVuZCB0aGUgdmFsdWUgaWYgbmVlZGVkICovCisJaWYgKG1hcHBpbmctPmRhdGFfdHlwZSA9PSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVEKQorCQl2YWx1ZSB8PSAtKHZhbHVlICYgKDEgPDwgKG1hcHBpbmctPnNpemUgLSAxKSkpOworCisJcmV0dXJuIHZhbHVlOworfQorCisvKiBTZXQgdGhlIGJpdCBzdHJpbmcgc3BlY2lmaWVkIGJ5IG1hcHBpbmctPm9mZnNldCBhbmQgbWFwcGluZy0+c2l6ZQorICogaW4gdGhlIGxpdHRsZS1lbmRpYW4gZGF0YSBzdG9yZWQgYXQgJ2RhdGEnIHRvIHRoZSB2YWx1ZSAndmFsdWUnLgorICovCitzdGF0aWMgdm9pZCB1dmNfc2V0X2xlX3ZhbHVlKF9fczMyIHZhbHVlLCBfX3U4ICpkYXRhLAorCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nKQoreworCWludCBiaXRzID0gbWFwcGluZy0+c2l6ZTsKKwlpbnQgb2Zmc2V0ID0gbWFwcGluZy0+b2Zmc2V0OworCV9fdTggbWFzazsKKworCWRhdGEgKz0gb2Zmc2V0IC8gODsKKwlvZmZzZXQgJj0gNzsKKworCWZvciAoOyBiaXRzID4gMDsgZGF0YSsrKSB7CisJCW1hc2sgPSAoKDFMTCA8PCBiaXRzKSAtIDEpIDw8IG9mZnNldDsKKwkJKmRhdGEgPSAoKmRhdGEgJiB+bWFzaykgfCAoKHZhbHVlIDw8IG9mZnNldCkgJiBtYXNrKTsKKwkJdmFsdWUgPj49IG9mZnNldCA/IG9mZnNldCA6IDg7CisJCWJpdHMgLT0gOCAtIG9mZnNldDsKKwkJb2Zmc2V0ID0gMDsKKwl9Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVGVybWluYWwgYW5kIHVuaXQgbWFuYWdlbWVudAorICovCisKK3N0YXRpYyBjb25zdCBfX3U4IHV2Y19wcm9jZXNzaW5nX2d1aWRbMTZdID0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkc7CitzdGF0aWMgY29uc3QgX191OCB1dmNfY2FtZXJhX2d1aWRbMTZdID0gVVZDX0dVSURfVVZDX0NBTUVSQTsKK3N0YXRpYyBjb25zdCBfX3U4IHV2Y19tZWRpYV90cmFuc3BvcnRfaW5wdXRfZ3VpZFsxNl0gPQorCVVWQ19HVUlEX1VWQ19NRURJQV9UUkFOU1BPUlRfSU5QVVQ7CisKK3N0YXRpYyBpbnQgdXZjX2VudGl0eV9tYXRjaF9ndWlkKHN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHksIF9fdTggZ3VpZFsxNl0pCit7CisJc3dpdGNoIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSkgeworCWNhc2UgSVRUX0NBTUVSQToKKwkJcmV0dXJuIG1lbWNtcCh1dmNfY2FtZXJhX2d1aWQsIGd1aWQsIDE2KSA9PSAwOworCisJY2FzZSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUOgorCQlyZXR1cm4gbWVtY21wKHV2Y19tZWRpYV90cmFuc3BvcnRfaW5wdXRfZ3VpZCwgZ3VpZCwgMTYpID09IDA7CisKKwljYXNlIFZDX1BST0NFU1NJTkdfVU5JVDoKKwkJcmV0dXJuIG1lbWNtcCh1dmNfcHJvY2Vzc2luZ19ndWlkLCBndWlkLCAxNikgPT0gMDsKKworCWNhc2UgVkNfRVhURU5TSU9OX1VOSVQ6CisJCXJldHVybiBtZW1jbXAoZW50aXR5LT5leHRlbnNpb24uZ3VpZEV4dGVuc2lvbkNvZGUsCisJCQkgICAgICBndWlkLCAxNikgPT0gMDsKKworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVVkMgQ29udHJvbHMKKyAqLworCitzdGF0aWMgdm9pZCBfX3V2Y19maW5kX2NvbnRyb2woc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSwgX191MzIgdjRsMl9pZCwKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqKm1hcHBpbmcsIHN0cnVjdCB1dmNfY29udHJvbCAqKmNvbnRyb2wsCisJaW50IG5leHQpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXA7CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoZW50aXR5ID09IE5VTEwpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKSB7CisJCWN0cmwgPSAmZW50aXR5LT5jb250cm9sc1tpXTsKKwkJaWYgKGN0cmwtPmluZm8gPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnkobWFwLCAmY3RybC0+aW5mby0+bWFwcGluZ3MsIGxpc3QpIHsKKwkJCWlmICgobWFwLT5pZCA9PSB2NGwyX2lkKSAmJiAhbmV4dCkgeworCQkJCSpjb250cm9sID0gY3RybDsKKwkJCQkqbWFwcGluZyA9IG1hcDsKKwkJCQlyZXR1cm47CisJCQl9CisKKwkJCWlmICgoKm1hcHBpbmcgPT0gTlVMTCB8fCAoKm1hcHBpbmcpLT5pZCA+IG1hcC0+aWQpICYmCisJCQkgICAgKG1hcC0+aWQgPiB2NGwyX2lkKSAmJiBuZXh0KSB7CisJCQkJKmNvbnRyb2wgPSBjdHJsOworCQkJCSptYXBwaW5nID0gbWFwOworCQkJfQorCQl9CisJfQorfQorCitzdHJ1Y3QgdXZjX2NvbnRyb2wgKnV2Y19maW5kX2NvbnRyb2woc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCV9fdTMyIHY0bDJfaWQsIHN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICoqbWFwcGluZykKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmwgPSBOVUxMOworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJaW50IG5leHQgPSB2NGwyX2lkICYgVjRMMl9DVFJMX0ZMQUdfTkVYVF9DVFJMOworCisJKm1hcHBpbmcgPSBOVUxMOworCisJLyogTWFzayB0aGUgcXVlcnkgZmxhZ3MuICovCisJdjRsMl9pZCAmPSBWNEwyX0NUUkxfSURfTUFTSzsKKworCS8qIEZpbmQgdGhlIGNvbnRyb2wuICovCisJX191dmNfZmluZF9jb250cm9sKHZpZGVvLT5wcm9jZXNzaW5nLCB2NGwyX2lkLCBtYXBwaW5nLCAmY3RybCwgbmV4dCk7CisJaWYgKGN0cmwgJiYgIW5leHQpCisJCXJldHVybiBjdHJsOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZ2aWRlby0+aXRlcm1zLCBjaGFpbikgeworCQlfX3V2Y19maW5kX2NvbnRyb2woZW50aXR5LCB2NGwyX2lkLCBtYXBwaW5nLCAmY3RybCwgbmV4dCk7CisJCWlmIChjdHJsICYmICFuZXh0KQorCQkJcmV0dXJuIGN0cmw7CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZ2aWRlby0+ZXh0ZW5zaW9ucywgY2hhaW4pIHsKKwkJX191dmNfZmluZF9jb250cm9sKGVudGl0eSwgdjRsMl9pZCwgbWFwcGluZywgJmN0cmwsIG5leHQpOworCQlpZiAoY3RybCAmJiAhbmV4dCkKKwkJCXJldHVybiBjdHJsOworCX0KKworCWlmIChjdHJsID09IE5VTEwgJiYgIW5leHQpCisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNvbnRyb2wgMHglMDh4IG5vdCBmb3VuZC5cbiIsCisJCQkJdjRsMl9pZCk7CisKKwlyZXR1cm4gY3RybDsKK30KKworaW50IHV2Y19xdWVyeV92NGwyX2N0cmwoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX3F1ZXJ5Y3RybCAqdjRsMl9jdHJsKQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZzsKKwlzdHJ1Y3QgdXZjX21lbnVfaW5mbyAqbWVudTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlfX3U4IGRhdGFbOF07CisJaW50IHJldDsKKworCWN0cmwgPSB1dmNfZmluZF9jb250cm9sKHZpZGVvLCB2NGwyX2N0cmwtPmlkLCAmbWFwcGluZyk7CisJaWYgKGN0cmwgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl2NGwyX2N0cmwtPmlkID0gbWFwcGluZy0+aWQ7CisJdjRsMl9jdHJsLT50eXBlID0gbWFwcGluZy0+djRsMl90eXBlOworCXN0cm5jcHkodjRsMl9jdHJsLT5uYW1lLCBtYXBwaW5nLT5uYW1lLCBzaXplb2YgdjRsMl9jdHJsLT5uYW1lKTsKKwl2NGwyX2N0cmwtPmZsYWdzID0gMDsKKworCWlmICghKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfU0VUX0NVUikpCisJCXY0bDJfY3RybC0+ZmxhZ3MgfD0gVjRMMl9DVFJMX0ZMQUdfUkVBRF9PTkxZOworCisJaWYgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0RFRikgeworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9ERUYsIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJJmRhdGEsIGN0cmwtPmluZm8tPnNpemUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCQl2NGwyX2N0cmwtPmRlZmF1bHRfdmFsdWUgPSB1dmNfZ2V0X2xlX3ZhbHVlKGRhdGEsIG1hcHBpbmcpOworCX0KKworCWlmIChtYXBwaW5nLT52NGwyX3R5cGUgPT0gVjRMMl9DVFJMX1RZUEVfTUVOVSkgeworCQl2NGwyX2N0cmwtPm1pbmltdW0gPSAwOworCQl2NGwyX2N0cmwtPm1heGltdW0gPSBtYXBwaW5nLT5tZW51X2NvdW50IC0gMTsKKwkJdjRsMl9jdHJsLT5zdGVwID0gMTsKKworCQltZW51ID0gbWFwcGluZy0+bWVudV9pbmZvOworCQlmb3IgKGkgPSAwOyBpIDwgbWFwcGluZy0+bWVudV9jb3VudDsgKytpLCArK21lbnUpIHsKKwkJCWlmIChtZW51LT52YWx1ZSA9PSB2NGwyX2N0cmwtPmRlZmF1bHRfdmFsdWUpIHsKKwkJCQl2NGwyX2N0cmwtPmRlZmF1bHRfdmFsdWUgPSBpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX01JTikgeworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9NSU4sIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJJmRhdGEsIGN0cmwtPmluZm8tPnNpemUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCQl2NGwyX2N0cmwtPm1pbmltdW0gPSB1dmNfZ2V0X2xlX3ZhbHVlKGRhdGEsIG1hcHBpbmcpOworCX0KKwlpZiAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfTUFYKSB7CisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX01BWCwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQkmZGF0YSwgY3RybC0+aW5mby0+c2l6ZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXY0bDJfY3RybC0+bWF4aW11bSA9IHV2Y19nZXRfbGVfdmFsdWUoZGF0YSwgbWFwcGluZyk7CisJfQorCWlmIChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9SRVMpIHsKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfUkVTLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCXZpZGVvLT5kZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCSZkYXRhLCBjdHJsLT5pbmZvLT5zaXplKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJdjRsMl9jdHJsLT5zdGVwID0gdXZjX2dldF9sZV92YWx1ZShkYXRhLCBtYXBwaW5nKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQ29udHJvbCB0cmFuc2FjdGlvbnMKKyAqCisgKiBUbyBtYWtlIGV4dGVuZGVkIHNldCBvcGVyYXRpb25zIGFzIGF0b21pYyBhcyB0aGUgaGFyZHdhcmUgYWxsb3dzLCBjb250cm9scworICogYXJlIGhhbmRsZWQgdXNpbmcgYmVnaW4vY29tbWl0L3JvbGxiYWNrIG9wZXJhdGlvbnMuCisgKgorICogQXQgdGhlIGJlZ2lubmluZyBvZiBhIHNldCByZXF1ZXN0LCB1dmNfY3RybF9iZWdpbiBzaG91bGQgYmUgY2FsbGVkIHRvCisgKiBpbml0aWFsaXplIHRoZSByZXF1ZXN0LiBUaGlzIGZ1bmN0aW9uIGFjcXVpcmVzIHRoZSBjb250cm9sIGxvY2suCisgKgorICogV2hlbiBzZXR0aW5nIGEgY29udHJvbCwgdGhlIG5ldyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIGNvbnRyb2wgZGF0YSBmaWVsZAorICogYXQgcG9zaXRpb24gVVZDX0NUUkxfREFUQV9DVVJSRU5ULiBUaGUgY29udHJvbCBpcyB0aGVuIG1hcmtlZCBhcyBkaXJ0eSBmb3IKKyAqIGxhdGVyIHByb2Nlc3NpbmcuIElmIHRoZSBVVkMgYW5kIFY0TDIgY29udHJvbCBzaXplcyBkaWZmZXIsIHRoZSBjdXJyZW50CisgKiB2YWx1ZSBpcyBsb2FkZWQgZnJvbSB0aGUgaGFyZHdhcmUgYmVmb3JlIHN0b3JpbmcgdGhlIG5ldyB2YWx1ZSBpbiB0aGUgZGF0YQorICogZmllbGQuCisgKgorICogQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgY29udHJvbHMgaW4gdGhlIHRyYW5zYWN0aW9uLCB1dmNfY3RybF9jb21taXQgb3IKKyAqIHV2Y19jdHJsX3JvbGxiYWNrIG11c3QgYmUgY2FsbGVkIHRvIGFwcGx5IHRoZSBwZW5kaW5nIGNoYW5nZXMgdG8gdGhlCisgKiBoYXJkd2FyZSBvciByZXZlcnQgdGhlbS4gV2hlbiBhcHBseWluZyBjaGFuZ2VzLCBhbGwgY29udHJvbHMgbWFya2VkIGFzCisgKiBkaXJ0eSB3aWxsIGJlIG1vZGlmaWVkIGluIHRoZSBVVkMgZGV2aWNlLCBhbmQgdGhlIGRpcnR5IGZsYWcgd2lsbCBiZQorICogY2xlYXJlZC4gV2hlbiByZXZlcnRpbmcgY29udHJvbHMsIHRoZSBjb250cm9sIGRhdGEgZmllbGQKKyAqIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCBpcyByZXZlcnRlZCB0byBpdHMgcHJldmlvdXMgdmFsdWUKKyAqIChVVkNfQ1RSTF9EQVRBX0JBQ0tVUCkgZm9yIGFsbCBkaXJ0eSBjb250cm9scy4gQm90aCBmdW5jdGlvbnMgcmVsZWFzZSB0aGUKKyAqIGNvbnRyb2wgbG9jay4KKyAqLworaW50IHV2Y19jdHJsX2JlZ2luKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlyZXR1cm4gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZ2aWRlby0+Y3RybF9tdXRleCkgPyAtRVJFU1RBUlRTWVMgOiAwOworfQorCitzdGF0aWMgaW50IHV2Y19jdHJsX2NvbW1pdF9lbnRpdHkoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5LCBpbnQgcm9sbGJhY2spCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwlpZiAoZW50aXR5ID09IE5VTEwpCisJCXJldHVybiAwOworCisJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpIHsKKwkJY3RybCA9ICZlbnRpdHktPmNvbnRyb2xzW2ldOworCQlpZiAoY3RybC0+aW5mbyA9PSBOVUxMIHx8ICFjdHJsLT5kaXJ0eSkKKwkJCWNvbnRpbnVlOworCisJCWlmICghcm9sbGJhY2spCisJCQlyZXQgPSB1dmNfcXVlcnlfY3RybChkZXYsIFNFVF9DVVIsIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQl1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCQkJY3RybC0+aW5mby0+c2l6ZSk7CisJCWVsc2UKKwkJCXJldCA9IDA7CisKKwkJaWYgKHJvbGxiYWNrIHx8IHJldCA8IDApCisJCQltZW1jcHkodXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkJICAgICAgIHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9CQUNLVVApLAorCQkJICAgICAgIGN0cmwtPmluZm8tPnNpemUpOworCisJCWlmICgoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfQ1VSKSA9PSAwKQorCQkJY3RybC0+bG9hZGVkID0gMDsKKworCQljdHJsLT5kaXJ0eSA9IDA7CisKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitpbnQgX191dmNfY3RybF9jb21taXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBpbnQgcm9sbGJhY2spCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwlpbnQgcmV0ID0gMDsKKworCS8qIEZpbmQgdGhlIGNvbnRyb2wuICovCisJcmV0ID0gdXZjX2N0cmxfY29tbWl0X2VudGl0eSh2aWRlby0+ZGV2LCB2aWRlby0+cHJvY2Vzc2luZywgcm9sbGJhY2spOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGRvbmU7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJnZpZGVvLT5pdGVybXMsIGNoYWluKSB7CisJCXJldCA9IHV2Y19jdHJsX2NvbW1pdF9lbnRpdHkodmlkZW8tPmRldiwgZW50aXR5LCByb2xsYmFjayk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBkb25lOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmdmlkZW8tPmV4dGVuc2lvbnMsIGNoYWluKSB7CisJCXJldCA9IHV2Y19jdHJsX2NvbW1pdF9lbnRpdHkodmlkZW8tPmRldiwgZW50aXR5LCByb2xsYmFjayk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBkb25lOworCX0KKworZG9uZToKKwltdXRleF91bmxvY2soJnZpZGVvLT5jdHJsX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQgdXZjX2N0cmxfZ2V0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqeGN0cmwpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nOworCXN0cnVjdCB1dmNfbWVudV9pbmZvICptZW51OworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwljdHJsID0gdXZjX2ZpbmRfY29udHJvbCh2aWRlbywgeGN0cmwtPmlkLCAmbWFwcGluZyk7CisJaWYgKGN0cmwgPT0gTlVMTCB8fCAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfQ1VSKSA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghY3RybC0+bG9hZGVkKSB7CisJCXJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9DVVIsIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkJCWN0cmwtPmluZm8tPnNpemUpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJaWYgKChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFKSA9PSAwKQorCQkJY3RybC0+bG9hZGVkID0gMTsKKwl9CisKKwl4Y3RybC0+dmFsdWUgPSB1dmNfZ2V0X2xlX3ZhbHVlKAorCQl1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksIG1hcHBpbmcpOworCisJaWYgKG1hcHBpbmctPnY0bDJfdHlwZSA9PSBWNEwyX0NUUkxfVFlQRV9NRU5VKSB7CisJCW1lbnUgPSBtYXBwaW5nLT5tZW51X2luZm87CisJCWZvciAoaSA9IDA7IGkgPCBtYXBwaW5nLT5tZW51X2NvdW50OyArK2ksICsrbWVudSkgeworCQkJaWYgKG1lbnUtPnZhbHVlID09IHhjdHJsLT52YWx1ZSkgeworCQkJCXhjdHJsLT52YWx1ZSA9IGk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50IHV2Y19jdHJsX3NldChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKnhjdHJsKQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZzsKKwlzMzIgdmFsdWUgPSB4Y3RybC0+dmFsdWU7CisJaW50IHJldDsKKworCWN0cmwgPSB1dmNfZmluZF9jb250cm9sKHZpZGVvLCB4Y3RybC0+aWQsICZtYXBwaW5nKTsKKwlpZiAoY3RybCA9PSBOVUxMIHx8IChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX1NFVF9DVVIpID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKG1hcHBpbmctPnY0bDJfdHlwZSA9PSBWNEwyX0NUUkxfVFlQRV9NRU5VKSB7CisJCWlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPj0gbWFwcGluZy0+bWVudV9jb3VudCkKKwkJCXJldHVybiAtRUlOVkFMOworCQl2YWx1ZSA9IG1hcHBpbmctPm1lbnVfaW5mb1t2YWx1ZV0udmFsdWU7CisJfQorCisJaWYgKCFjdHJsLT5sb2FkZWQgJiYgKGN0cmwtPmluZm8tPnNpemUgKiA4KSAhPSBtYXBwaW5nLT5zaXplKSB7CisJCWlmICgoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfQ1VSKSA9PSAwKSB7CisJCQltZW1zZXQodXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkJCTAsIGN0cmwtPmluZm8tPnNpemUpOworCQl9IGVsc2UgeworCQkJcmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX0NVUiwKKwkJCQljdHJsLT5lbnRpdHktPmlkLCB2aWRlby0+ZGV2LT5pbnRmbnVtLAorCQkJCWN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCXV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJCQljdHJsLT5pbmZvLT5zaXplKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVybiByZXQ7CisJCX0KKworCQlpZiAoKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfQVVUT19VUERBVEUpID09IDApCisJCQljdHJsLT5sb2FkZWQgPSAxOworCX0KKworCWlmICghY3RybC0+ZGlydHkpIHsKKwkJbWVtY3B5KHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9CQUNLVVApLAorCQkgICAgICAgdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkgICAgICAgY3RybC0+aW5mby0+c2l6ZSk7CisJfQorCisJdXZjX3NldF9sZV92YWx1ZSh2YWx1ZSwKKwkJdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLCBtYXBwaW5nKTsKKworCWN0cmwtPmRpcnR5ID0gMTsKKwljdHJsLT5tb2RpZmllZCA9IDE7CisJcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBEeW5hbWljIGNvbnRyb2xzCisgKi8KKworaW50IHV2Y194dV9jdHJsX3F1ZXJ5KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX3h1X2NvbnRyb2wgKnhjdHJsLCBpbnQgc2V0KQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsID0gTlVMTDsKKwl1bnNpZ25lZCBpbnQgaSwgZm91bmQgPSAwOworCV9fdTggKmRhdGE7CisJaW50IHJldDsKKworCS8qIEZpbmQgdGhlIGV4dGVuc2lvbiB1bml0LiAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmdmlkZW8tPmV4dGVuc2lvbnMsIGNoYWluKSB7CisJCWlmIChlbnRpdHktPmlkID09IHhjdHJsLT51bml0KQorCQkJYnJlYWs7CisJfQorCisJaWYgKGVudGl0eS0+aWQgIT0geGN0cmwtPnVuaXQpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiRXh0ZW5zaW9uIHVuaXQgJXUgbm90IGZvdW5kLlxuIiwKKwkJCXhjdHJsLT51bml0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogRmluZCB0aGUgY29udHJvbC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkgeworCQljdHJsID0gJmVudGl0eS0+Y29udHJvbHNbaV07CisJCWlmIChjdHJsLT5pbmZvID09IE5VTEwpCisJCQljb250aW51ZTsKKworCQlpZiAoY3RybC0+aW5mby0+c2VsZWN0b3IgPT0geGN0cmwtPnNlbGVjdG9yKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLAorCQkJIkNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQgIi8ldSBub3QgZm91bmQuXG4iLAorCQkJVVZDX0dVSURfQVJHUyhlbnRpdHktPmV4dGVuc2lvbi5ndWlkRXh0ZW5zaW9uQ29kZSksCisJCQl4Y3RybC0+c2VsZWN0b3IpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBWYWxpZGF0ZSBjb250cm9sIGRhdGEgc2l6ZS4gKi8KKwlpZiAoY3RybC0+aW5mby0+c2l6ZSAhPSB4Y3RybC0+c2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoKHNldCAmJiAhKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfU0VUX0NVUikpIHx8CisJICAgICghc2V0ICYmICEoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfQ1VSKSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdmlkZW8tPmN0cmxfbXV0ZXgpKQorCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCisJbWVtY3B5KHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9CQUNLVVApLAorCSAgICAgICB1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJICAgICAgIHhjdHJsLT5zaXplKTsKKwlkYXRhID0gdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpOworCisJaWYgKHNldCAmJiBjb3B5X2Zyb21fdXNlcihkYXRhLCB4Y3RybC0+ZGF0YSwgeGN0cmwtPnNpemUpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIHNldCA/IFNFVF9DVVIgOiBHRVRfQ1VSLCB4Y3RybC0+dW5pdCwKKwkJCSAgICAgdmlkZW8tPmRldi0+aW50Zm51bSwgeGN0cmwtPnNlbGVjdG9yLCBkYXRhLAorCQkJICAgICB4Y3RybC0+c2l6ZSk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJaWYgKCFzZXQgJiYgY29weV90b191c2VyKHhjdHJsLT5kYXRhLCBkYXRhLCB4Y3RybC0+c2l6ZSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXQ7CisJfQorCitvdXQ6CisJaWYgKHJldCkKKwkJbWVtY3B5KHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJICAgICAgIHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9CQUNLVVApLAorCQkgICAgICAgeGN0cmwtPnNpemUpOworCisJbXV0ZXhfdW5sb2NrKCZ2aWRlby0+Y3RybF9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN1c3BlbmQvcmVzdW1lCisgKi8KKworLyoKKyAqIFJlc3RvcmUgY29udHJvbCB2YWx1ZXMgYWZ0ZXIgcmVzdW1lLCBza2lwcGluZyBjb250cm9scyB0aGF0IGhhdmVuJ3QgYmVlbgorICogY2hhbmdlZC4KKyAqCisgKiBUT0RPCisgKiAtIERvbid0IHJlc3RvcmUgbW9kaWZpZWQgY29udHJvbHMgdGhhdCBhcmUgYmFjayB0byB0aGVpciBkZWZhdWx0IHZhbHVlLgorICogLSBIYW5kbGUgcmVzdG9yZSBvcmRlciAoQXV0by1FeHBvc3VyZSBNb2RlIHNob3VsZCBiZSByZXN0b3JlZCBiZWZvcmUKKyAqICAgRXhwb3N1cmUgVGltZSkuCisgKi8KK2ludCB1dmNfY3RybF9yZXN1bWVfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCS8qIFdhbGsgdGhlIGVudGl0aWVzIGxpc3QgYW5kIHJlc3RvcmUgY29udHJvbHMgd2hlbiBwb3NzaWJsZS4gKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKworCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkgeworCQkJY3RybCA9ICZlbnRpdHktPmNvbnRyb2xzW2ldOworCisJCQlpZiAoY3RybC0+aW5mbyA9PSBOVUxMIHx8ICFjdHJsLT5tb2RpZmllZCB8fAorCQkJICAgIChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX1JFU1RPUkUpID09IDApCisJCQkJY29udGludWU7CisKKwkJCXByaW50ayhLRVJOX0lORk8gInJlc3RvcmluZyBjb250cm9sICIgVVZDX0dVSURfRk9STUFUCisJCQkJIi8ldS8ldVxuIiwgVVZDX0dVSURfQVJHUyhjdHJsLT5pbmZvLT5lbnRpdHkpLAorCQkJCWN0cmwtPmluZm8tPmluZGV4LCBjdHJsLT5pbmZvLT5zZWxlY3Rvcik7CisJCQljdHJsLT5kaXJ0eSA9IDE7CisJCX0KKworCQlyZXQgPSB1dmNfY3RybF9jb21taXRfZW50aXR5KGRldiwgZW50aXR5LCAwKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQ29udHJvbCBhbmQgbWFwcGluZyBoYW5kbGluZworICovCisKK3N0YXRpYyB2b2lkIHV2Y19jdHJsX2FkZF9jdHJsKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm8pCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmwgPSBOVUxMOworCWludCByZXQsIGZvdW5kID0gMDsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQlpZiAoIXV2Y19lbnRpdHlfbWF0Y2hfZ3VpZChlbnRpdHksIGluZm8tPmVudGl0eSkpCisJCQljb250aW51ZTsKKworCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkgeworCQkJY3RybCA9ICZlbnRpdHktPmNvbnRyb2xzW2ldOworCQkJaWYgKGN0cmwtPmluZGV4ID09IGluZm8tPmluZGV4KSB7CisJCQkJZm91bmQgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJaWYgKGZvdW5kKQorCQkJYnJlYWs7CisJfQorCisJaWYgKCFmb3VuZCkKKwkJcmV0dXJuOworCisJaWYgKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpID09IFZDX0VYVEVOU0lPTl9VTklUKSB7CisJCS8qIENoZWNrIGlmIHRoZSBkZXZpY2UgY29udHJvbCBpbmZvcm1hdGlvbiBhbmQgbGVuZ3RoIG1hdGNoCisJCSAqIHRoZSB1c2VyIHN1cHBsaWVkIGluZm9ybWF0aW9uLgorCQkgKi8KKwkJX191MzIgZmxhZ3M7CisJCV9fbGUxNiBzaXplOworCQlfX3U4IGluZjsKKworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKGRldiwgR0VUX0xFTiwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCWRldi0+aW50Zm51bSwgaW5mby0+c2VsZWN0b3IsIChfX3U4ICopJnNpemUsIDIpKSA8IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkdFVF9MRU4gZmFpbGVkIG9uICIKKwkJCQkiY29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVCAiLyV1ICglZCkuXG4iLAorCQkJCVVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwgaW5mby0+c2VsZWN0b3IsCisJCQkJcmV0KTsKKwkJCXJldHVybjsKKwkJfQorCisJCWlmIChpbmZvLT5zaXplICE9IGxlMTZfdG9fY3B1KHNpemUpKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDb250cm9sICIgVVZDX0dVSURfRk9STUFUCisJCQkJIi8ldSBzaXplIGRvZXNuJ3QgbWF0Y2ggdXNlciBzdXBwbGllZCAiCisJCQkJInZhbHVlLlxuIiwgVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLAorCQkJCWluZm8tPnNlbGVjdG9yKTsKKwkJCXJldHVybjsKKwkJfQorCisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwoZGV2LCBHRVRfSU5GTywgY3RybC0+ZW50aXR5LT5pZCwKKwkJCWRldi0+aW50Zm51bSwgaW5mby0+c2VsZWN0b3IsICZpbmYsIDEpKSA8IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkdFVF9JTkZPIGZhaWxlZCBvbiAiCisJCQkJImNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQgIi8ldSAoJWQpLlxuIiwKKwkJCQlVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksIGluZm8tPnNlbGVjdG9yLAorCQkJCXJldCk7CisJCQlyZXR1cm47CisJCX0KKworCQlmbGFncyA9IGluZm8tPmZsYWdzOworCQlpZiAoKChmbGFncyAmIFVWQ19DT05UUk9MX0dFVF9DVVIpICYmICEoaW5mICYgKDEgPDwgMCkpKSB8fAorCQkgICAgKChmbGFncyAmIFVWQ19DT05UUk9MX1NFVF9DVVIpICYmICEoaW5mICYgKDEgPDwgMSkpKSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ29udHJvbCAiCisJCQkJVVZDX0dVSURfRk9STUFUICIvJXUgZmxhZ3MgZG9uJ3QgbWF0Y2ggIgorCQkJCSJzdXBwb3J0ZWQgb3BlcmF0aW9ucy5cbiIsCisJCQkJVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLCBpbmZvLT5zZWxlY3Rvcik7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwljdHJsLT5pbmZvID0gaW5mbzsKKwljdHJsLT5kYXRhID0ga21hbGxvYyhjdHJsLT5pbmZvLT5zaXplICogVVZDX0NUUkxfTkRBVEEsIEdGUF9LRVJORUwpOworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkFkZGVkIGNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQgIi8ldSAiCisJCSJ0byBkZXZpY2UgJXMgZW50aXR5ICV1XG4iLCBVVkNfR1VJRF9BUkdTKGN0cmwtPmluZm8tPmVudGl0eSksCisJCWN0cmwtPmluZm8tPnNlbGVjdG9yLCBkZXYtPnVkZXYtPmRldnBhdGgsIGVudGl0eS0+aWQpOworfQorCisvKgorICogQWRkIGFuIGl0ZW0gdG8gdGhlIFVWQyBjb250cm9sIGluZm9ybWF0aW9uIGxpc3QsIGFuZCBpbnN0YW50aWF0ZSBhIGNvbnRyb2wKKyAqIHN0cnVjdHVyZSBmb3IgZWFjaCBkZXZpY2UgdGhhdCBzdXBwb3J0cyB0aGUgY29udHJvbC4KKyAqLworaW50IHV2Y19jdHJsX2FkZF9pbmZvKHN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvKQoreworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICpjdHJsOworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXY7CisJaW50IHJldCA9IDA7CisKKwkvKiBGaW5kIG1hdGNoaW5nIGNvbnRyb2xzIGJ5IHdhbGtpbmcgdGhlIGRldmljZXMsIGVudGl0aWVzIGFuZAorCSAqIGNvbnRyb2xzIGxpc3QuCisJICovCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKworCS8qIEZpcnN0IGNoZWNrIGlmIHRoZSBsaXN0IGNvbnRhaW5zIGEgY29udHJvbCBtYXRjaGluZyB0aGUgbmV3IG9uZS4KKwkgKiBCYWlsIG91dCBpZiBpdCBkb2VzLgorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3RybCwgJnV2Y19kcml2ZXIuY29udHJvbHMsIGxpc3QpIHsKKwkJaWYgKG1lbWNtcChjdHJsLT5lbnRpdHksIGluZm8tPmVudGl0eSwgMTYpKQorCQkJY29udGludWU7CisKKwkJaWYgKGN0cmwtPnNlbGVjdG9yID09IGluZm8tPnNlbGVjdG9yKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDb250cm9sICIKKwkJCQlVVkNfR1VJRF9GT1JNQVQgIi8ldSBpcyBhbHJlYWR5IGRlZmluZWQuXG4iLAorCQkJCVVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwgaW5mby0+c2VsZWN0b3IpOworCQkJcmV0ID0gLUVFWElTVDsKKwkJCWdvdG8gZW5kOworCQl9CisJCWlmIChjdHJsLT5pbmRleCA9PSBpbmZvLT5pbmRleCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ29udHJvbCAiCisJCQkJVVZDX0dVSURfRk9STUFUICIvJXUgd291bGQgb3ZlcndyaXRlIGluZGV4ICIKKwkJCQkiJWQuXG4iLCBVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksCisJCQkJaW5mby0+c2VsZWN0b3IsIGluZm8tPmluZGV4KTsKKwkJCXJldCA9IC1FRVhJU1Q7CisJCQlnb3RvIGVuZDsKKwkJfQorCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmdXZjX2RyaXZlci5kZXZpY2VzLCBsaXN0KQorCQl1dmNfY3RybF9hZGRfY3RybChkZXYsIGluZm8pOworCisJSU5JVF9MSVNUX0hFQUQoJmluZm8tPm1hcHBpbmdzKTsKKwlsaXN0X2FkZF90YWlsKCZpbmZvLT5saXN0LCAmdXZjX2RyaXZlci5jb250cm9scyk7CitlbmQ6CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK2ludCB1dmNfY3RybF9hZGRfbWFwcGluZyhzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZykKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbzsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwOworCWludCByZXQgPSAtRUlOVkFMOworCisJaWYgKG1hcHBpbmctPmlkICYgflY0TDJfQ1RSTF9JRF9NQVNLKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNhbid0IGFkZCBtYXBwaW5nICclcycgd2l0aCAiCisJCQkiaW52YWxpZCBjb250cm9sIGlkIDB4JTA4eFxuIiwgbWFwcGluZy0+bmFtZSwKKwkJCW1hcHBpbmctPmlkKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluZm8sICZ1dmNfZHJpdmVyLmNvbnRyb2xzLCBsaXN0KSB7CisJCWlmIChtZW1jbXAoaW5mby0+ZW50aXR5LCBtYXBwaW5nLT5lbnRpdHksIDE2KSB8fAorCQkJaW5mby0+c2VsZWN0b3IgIT0gbWFwcGluZy0+c2VsZWN0b3IpCisJCQljb250aW51ZTsKKworCQlpZiAoaW5mby0+c2l6ZSAqIDggPCBtYXBwaW5nLT5zaXplICsgbWFwcGluZy0+b2Zmc2V0KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJNYXBwaW5nICclcycgd291bGQgIgorCQkJCSJvdmVyZmxvdyBjb250cm9sICIgVVZDX0dVSURfRk9STUFUICIvJXVcbiIsCisJCQkJbWFwcGluZy0+bmFtZSwgVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLAorCQkJCWluZm8tPnNlbGVjdG9yKTsKKwkJCXJldCA9IC1FT1ZFUkZMT1c7CisJCQlnb3RvIGVuZDsKKwkJfQorCisJCS8qIENoZWNrIGlmIHRoZSBsaXN0IGNvbnRhaW5zIGEgbWFwcGluZyBtYXRjaGluZyB0aGUgbmV3IG9uZS4KKwkJICogQmFpbCBvdXQgaWYgaXQgZG9lcy4KKwkJICovCisJCWxpc3RfZm9yX2VhY2hfZW50cnkobWFwLCAmaW5mby0+bWFwcGluZ3MsIGxpc3QpIHsKKwkJCWlmIChtYXAtPmlkID09IG1hcHBpbmctPmlkKSB7CisJCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiTWFwcGluZyAnJXMnIGlzICIKKwkJCQkJImFscmVhZHkgZGVmaW5lZC5cbiIsIG1hcHBpbmctPm5hbWUpOworCQkJCXJldCA9IC1FRVhJU1Q7CisJCQkJZ290byBlbmQ7CisJCQl9CisJCX0KKworCQltYXBwaW5nLT5jdHJsID0gaW5mbzsKKwkJbGlzdF9hZGRfdGFpbCgmbWFwcGluZy0+bGlzdCwgJmluZm8tPm1hcHBpbmdzKTsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQWRkaW5nIG1hcHBpbmcgJXMgdG8gY29udHJvbCAiCisJCQlVVkNfR1VJRF9GT1JNQVQgIi8ldS5cbiIsIG1hcHBpbmctPm5hbWUsCisJCQlVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksIGluZm8tPnNlbGVjdG9yKTsKKworCQlyZXQgPSAwOworCQlicmVhazsKKwl9CitlbmQ6CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGRldmljZSBjb250cm9scy4KKyAqLworaW50IHV2Y19jdHJsX2luaXRfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm87CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJdW5zaWduZWQgaW50IGk7CisKKwkvKiBXYWxrIHRoZSBlbnRpdGllcyBsaXN0IGFuZCBpbnN0YW50aWF0ZSBjb250cm9scyAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQl1bnNpZ25lZCBpbnQgYkNvbnRyb2xTaXplID0gMCwgbmNvbnRyb2xzID0gMDsKKwkJX191OCAqYm1Db250cm9scyA9IE5VTEw7CisKKwkJaWYgKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpID09IFZDX0VYVEVOU0lPTl9VTklUKSB7CisJCQlibUNvbnRyb2xzID0gZW50aXR5LT5leHRlbnNpb24uYm1Db250cm9sczsKKwkJCWJDb250cm9sU2l6ZSA9IGVudGl0eS0+ZXh0ZW5zaW9uLmJDb250cm9sU2l6ZTsKKwkJfSBlbHNlIGlmIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSA9PSBWQ19QUk9DRVNTSU5HX1VOSVQpIHsKKwkJCWJtQ29udHJvbHMgPSBlbnRpdHktPnByb2Nlc3NpbmcuYm1Db250cm9sczsKKwkJCWJDb250cm9sU2l6ZSA9IGVudGl0eS0+cHJvY2Vzc2luZy5iQ29udHJvbFNpemU7CisJCX0gZWxzZSBpZiAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkgPT0gSVRUX0NBTUVSQSkgeworCQkJYm1Db250cm9scyA9IGVudGl0eS0+Y2FtZXJhLmJtQ29udHJvbHM7CisJCQliQ29udHJvbFNpemUgPSBlbnRpdHktPmNhbWVyYS5iQ29udHJvbFNpemU7CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgYkNvbnRyb2xTaXplOyArK2kpCisJCQluY29udHJvbHMgKz0gaHdlaWdodDgoYm1Db250cm9sc1tpXSk7CisKKwkJaWYgKG5jb250cm9scyA9PSAwKQorCQkJY29udGludWU7CisKKwkJZW50aXR5LT5jb250cm9scyA9IGt6YWxsb2MobmNvbnRyb2xzKnNpemVvZiAqY3RybCwgR0ZQX0tFUk5FTCk7CisJCWlmIChlbnRpdHktPmNvbnRyb2xzID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQllbnRpdHktPm5jb250cm9scyA9IG5jb250cm9sczsKKworCQljdHJsID0gZW50aXR5LT5jb250cm9sczsKKwkJZm9yIChpID0gMDsgaSA8IGJDb250cm9sU2l6ZSAqIDg7ICsraSkgeworCQkJaWYgKHV2Y19nZXRfYml0KGJtQ29udHJvbHMsIGkpID09IDApCisJCQkJY29udGludWU7CisKKwkJCWN0cmwtPmVudGl0eSA9IGVudGl0eTsKKwkJCWN0cmwtPmluZGV4ID0gaTsKKwkJCWN0cmwrKzsKKwkJfQorCX0KKworCS8qIFdhbGsgdGhlIGNvbnRyb2xzIGluZm8gbGlzdCBhbmQgYXNzb2NpYXRlIHRoZW0gd2l0aCB0aGUgZGV2aWNlCisJICogY29udHJvbHMsIHRoZW4gYWRkIHRoZSBkZXZpY2UgdG8gdGhlIGdsb2JhbCBkZXZpY2UgbGlzdC4gVGhpcyBoYXMKKwkgKiB0byBiZSBkb25lIHdoaWxlIGhvbGRpbmcgdGhlIGNvbnRyb2xzIGxvY2ssIHRvIG1ha2Ugc3VyZQorCSAqIHV2Y19jdHJsX2FkZF9pbmZvKCkgd2lsbCBub3QgZ2V0IGNhbGxlZCBpbi1iZXR3ZWVuLgorCSAqLworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbmZvLCAmdXZjX2RyaXZlci5jb250cm9scywgbGlzdCkKKwkJdXZjX2N0cmxfYWRkX2N0cmwoZGV2LCBpbmZvKTsKKworCWxpc3RfYWRkX3RhaWwoJmRldi0+bGlzdCwgJnV2Y19kcml2ZXIuZGV2aWNlcyk7CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDbGVhbnVwIGRldmljZSBjb250cm9scy4KKyAqLwordm9pZCB1dmNfY3RybF9jbGVhbnVwX2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJdW5zaWduZWQgaW50IGk7CisKKwkvKiBSZW1vdmUgdGhlIGRldmljZSBmcm9tIHRoZSBnbG9iYWwgZGV2aWNlcyBsaXN0ICovCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKwlpZiAoZGV2LT5saXN0Lm5leHQgIT0gTlVMTCkKKwkJbGlzdF9kZWwoJmRldi0+bGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKQorCQkJa2ZyZWUoZW50aXR5LT5jb250cm9sc1tpXS5kYXRhKTsKKworCQlrZnJlZShlbnRpdHktPmNvbnRyb2xzKTsKKwl9Cit9CisKK3ZvaWQgdXZjX2N0cmxfaW5pdCh2b2lkKQoreworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICpjdHJsID0gdXZjX2N0cmxzOworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICpjZW5kID0gY3RybCArIEFSUkFZX1NJWkUodXZjX2N0cmxzKTsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZyA9IHV2Y19jdHJsX21hcHBpbmdzOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptZW5kID0KKwkJbWFwcGluZyArIEFSUkFZX1NJWkUodXZjX2N0cmxfbWFwcGluZ3MpOworCisJZm9yICg7IGN0cmwgPCBjZW5kOyArK2N0cmwpCisJCXV2Y19jdHJsX2FkZF9pbmZvKGN0cmwpOworCisJZm9yICg7IG1hcHBpbmcgPCBtZW5kOyArK21hcHBpbmcpCisJCXV2Y19jdHJsX2FkZF9tYXBwaW5nKG1hcHBpbmcpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2RyaXZlci5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2RyaXZlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwY2VkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfZHJpdmVyLmMKQEAgLTAsMCArMSwxOTU1IEBACisvKgorICogICAgICB1dmNfZHJpdmVyLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisvKgorICogVGhpcyBkcml2ZXIgYWltcyB0byBzdXBwb3J0IHZpZGVvIGlucHV0IGRldmljZXMgY29tcGxpYW50IHdpdGggdGhlICdVU0IKKyAqIFZpZGVvIENsYXNzJyBzcGVjaWZpY2F0aW9uLgorICoKKyAqIFRoZSBkcml2ZXIgZG9lc24ndCBzdXBwb3J0IHRoZSBkZXByZWNhdGVkIHY0bDEgaW50ZXJmYWNlLiBJdCBpbXBsZW1lbnRzIHRoZQorICogbW1hcCBjYXB0dXJlIG1ldGhvZCBvbmx5LCBhbmQgZG9lc24ndCBkbyBhbnkgaW1hZ2UgZm9ybWF0IGNvbnZlcnNpb24gaW4KKyAqIHNvZnR3YXJlLiBJZiB5b3VyIHVzZXItc3BhY2UgYXBwbGljYXRpb24gZG9lc24ndCBzdXBwb3J0IFlVWVYgb3IgTUpQRUcsIGZpeAorICogaXQgOi0pLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBNSlBFRyBkYXRhIGhhdmUgYmVlbiBzdHJpcHBlZCBmcm9tIHRoZWlyCisgKiBIdWZmbWFuIHRhYmxlcyAoREhUIG1hcmtlciksIHlvdSB3aWxsIG5lZWQgdG8gYWRkIGl0IGJhY2sgaWYgeW91ciBKUEVHCisgKiBjb2RlYyBjYW4ndCBoYW5kbGUgTUpQRUcgZGF0YS4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKworI2luY2x1ZGUgPG1lZGlhL3Y0bDItY29tbW9uLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZT4iCisjZGVmaW5lIERSSVZFUl9ERVNDCQkiVVNCIFZpZGVvIENsYXNzIGRyaXZlciIKKyNpZm5kZWYgRFJJVkVSX1ZFUlNJT04KKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04JCSJ2MC4xLjAiCisjZW5kaWYKKworc3RhdGljIHVuc2lnbmVkIGludCB1dmNfcXVpcmtzX3BhcmFtOwordW5zaWduZWQgaW50IHV2Y190cmFjZV9wYXJhbTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBDb250cm9sLCBmb3JtYXRzLCAuLi4KKyAqLworCitzdGF0aWMgc3RydWN0IHV2Y19mb3JtYXRfZGVzYyB1dmNfZm10c1tdID0geworCXsKKwkJLm5hbWUJCT0gIllVViA0OjI6MiAoWVVZVikiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfWVVZMiwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfWVVZViwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIllVViA0OjI6MCAoTlYxMikiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfTlYxMiwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfTlYxMiwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIk1KUEVHIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX01KUEVHLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9NSlBFRywKKwl9LAorCXsKKwkJLm5hbWUJCT0gIllWVSA0OjI6MCAoWVYxMikiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfWVYxMiwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfWVZVNDIwLAorCX0sCisJeworCQkubmFtZQkJPSAiWVVWIDQ6MjowIChJNDIwKSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9JNDIwLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVY0MjAsCisJfSwKKwl7CisJCS5uYW1lCQk9ICJZVVYgNDoyOjIgKFVZVlkpIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX1VZVlksCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX1VZVlksCisJfSwKKwl7CisJCS5uYW1lCQk9ICJHcmV5c2NhbGUiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfWTgwMCwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfR1JFWSwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIlJHQiBCYXllciIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9CWTgsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX1NCR0dSOCwKKwl9LAorfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVdGlsaXR5IGZ1bmN0aW9ucworICovCisKK3N0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqdXZjX2ZpbmRfZW5kcG9pbnQoc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cywKKwkJX191OCBlcGFkZHIpCit7CisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcDsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBhbHRzLT5kZXNjLmJOdW1FbmRwb2ludHM7ICsraSkgeworCQllcCA9ICZhbHRzLT5lbmRwb2ludFtpXTsKKwkJaWYgKGVwLT5kZXNjLmJFbmRwb2ludEFkZHJlc3MgPT0gZXBhZGRyKQorCQkJcmV0dXJuIGVwOworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IHV2Y19mb3JtYXRfZGVzYyAqdXZjX2Zvcm1hdF9ieV9ndWlkKGNvbnN0IF9fdTggZ3VpZFsxNl0pCit7CisJdW5zaWduZWQgaW50IGxlbiA9IEFSUkFZX1NJWkUodXZjX2ZtdHMpOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7CisJCWlmIChtZW1jbXAoZ3VpZCwgdXZjX2ZtdHNbaV0uZ3VpZCwgMTYpID09IDApCisJCQlyZXR1cm4gJnV2Y19mbXRzW2ldOworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgX191MzIgdXZjX2NvbG9yc3BhY2UoY29uc3QgX191OCBwcmltYXJpZXMpCit7CisJc3RhdGljIGNvbnN0IF9fdTggY29sb3JwcmltYXJpZXNbXSA9IHsKKwkJMCwKKwkJVjRMMl9DT0xPUlNQQUNFX1NSR0IsCisJCVY0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX00sCisJCVY0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHLAorCQlWNEwyX0NPTE9SU1BBQ0VfU01QVEUxNzBNLAorCQlWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNLAorCX07CisKKwlpZiAocHJpbWFyaWVzIDwgQVJSQVlfU0laRShjb2xvcnByaW1hcmllcykpCisJCXJldHVybiBjb2xvcnByaW1hcmllc1twcmltYXJpZXNdOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFNpbXBsaWZ5IGEgZnJhY3Rpb24gdXNpbmcgYSBzaW1wbGUgY29udGludWVkIGZyYWN0aW9uIGRlY29tcG9zaXRpb24uIFRoZQorICogaWRlYSBoZXJlIGlzIHRvIGNvbnZlcnQgZnJhY3Rpb25zIHN1Y2ggYXMgMzMzMzMzLzEwMDAwMDAwIHRvIDEvMzAgdXNpbmcKKyAqIDMyIGJpdCBhcml0aG1ldGljIG9ubHkuIFRoZSBhbGdvcml0aG0gaXMgbm90IHBlcmZlY3QgYW5kIHJlbGllcyB1cG9uIHR3bworICogYXJiaXRyYXJ5IHBhcmFtZXRlcnMgdG8gcmVtb3ZlIG5vbi1zaWduaWZpY2F0aXZlIHRlcm1zIGZyb20gdGhlIHNpbXBsZQorICogY29udGludWVkIGZyYWN0aW9uIGRlY29tcG9zaXRpb24uIFVzaW5nIDggYW5kIDMzMyBmb3Igbl90ZXJtcyBhbmQgdGhyZXNob2xkCisgKiByZXNwZWN0aXZlbHkgc2VlbXMgdG8gZ2l2ZSBuaWNlIHJlc3VsdHMuCisgKi8KK3ZvaWQgdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKHVpbnQzMl90ICpudW1lcmF0b3IsIHVpbnQzMl90ICpkZW5vbWluYXRvciwKKwkJdW5zaWduZWQgaW50IG5fdGVybXMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQpCit7CisJdWludDMyX3QgKmFuOworCXVpbnQzMl90IHgsIHksIHI7CisJdW5zaWduZWQgaW50IGksIG47CisKKwlhbiA9IGttYWxsb2Mobl90ZXJtcyAqIHNpemVvZiAqYW4sIEdGUF9LRVJORUwpOworCWlmIChhbiA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKiBDb252ZXJ0IHRoZSBmcmFjdGlvbiB0byBhIHNpbXBsZSBjb250aW51ZWQgZnJhY3Rpb24uIFNlZQorCSAqIGh0dHA6Ly9tYXRoZm9ydW0ub3JnL2RyLm1hdGgvZmFxL2ZhcS5mcmFjdGlvbnMuaHRtbAorCSAqIFN0b3AgaWYgdGhlIGN1cnJlbnQgdGVybSBpcyBiaWdnZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4KKwkgKiB0aHJlc2hvbGQuCisJICovCisJeCA9ICpudW1lcmF0b3I7CisJeSA9ICpkZW5vbWluYXRvcjsKKworCWZvciAobiA9IDA7IG4gPCBuX3Rlcm1zICYmIHkgIT0gMDsgKytuKSB7CisJCWFuW25dID0geCAvIHk7CisJCWlmIChhbltuXSA+PSB0aHJlc2hvbGQpIHsKKwkJCWlmIChuIDwgMikKKwkJCQluKys7CisJCQlicmVhazsKKwkJfQorCisJCXIgPSB4IC0gYW5bbl0gKiB5OworCQl4ID0geTsKKwkJeSA9IHI7CisJfQorCisJLyogRXhwYW5kIHRoZSBzaW1wbGUgY29udGludWVkIGZyYWN0aW9uIGJhY2sgdG8gYW4gaW50ZWdlciBmcmFjdGlvbi4gKi8KKwl4ID0gMDsKKwl5ID0gMTsKKworCWZvciAoaSA9IG47IGkgPiAwOyAtLWkpIHsKKwkJciA9IHk7CisJCXkgPSBhbltpLTFdICogeSArIHg7CisJCXggPSByOworCX0KKworCSpudW1lcmF0b3IgPSB5OworCSpkZW5vbWluYXRvciA9IHg7CisJa2ZyZWUoYW4pOworfQorCisvKiBDb252ZXJ0IGEgZnJhY3Rpb24gdG8gYSBmcmFtZSBpbnRlcnZhbCBpbiAxMDBucyBtdWx0aXBsZXMuIFRoZSBpZGVhIGhlcmUgaXMKKyAqIHRvIGNvbXB1dGUgbnVtZXJhdG9yIC8gZGVub21pbmF0b3IgKiAxMDAwMDAwMCB1c2luZyAzMiBiaXQgZml4ZWQgcG9pbnQKKyAqIGFyaXRobWV0aWMgb25seS4KKyAqLwordWludDMyX3QgdXZjX2ZyYWN0aW9uX3RvX2ludGVydmFsKHVpbnQzMl90IG51bWVyYXRvciwgdWludDMyX3QgZGVub21pbmF0b3IpCit7CisJdWludDMyX3QgbXVsdGlwbGllcjsKKworCS8qIFNhdHVyYXRlIHRoZSByZXN1bHQgaWYgdGhlIG9wZXJhdGlvbiB3b3VsZCBvdmVyZmxvdy4gKi8KKwlpZiAoZGVub21pbmF0b3IgPT0gMCB8fAorCSAgICBudW1lcmF0b3IvZGVub21pbmF0b3IgPj0gKCh1aW50MzJfdCktMSkvMTAwMDAwMDApCisJCXJldHVybiAodWludDMyX3QpLTE7CisKKwkvKiBEaXZpZGUgYm90aCB0aGUgZGVub21pbmF0b3IgYW5kIHRoZSBtdWx0aXBsaWVyIGJ5IHR3byB1bnRpbAorCSAqIG51bWVyYXRvciAqIG11bHRpcGxpZXIgZG9lc24ndCBvdmVyZmxvdy4gSWYgYW55b25lIGtub3dzIGEgYmV0dGVyCisJICogYWxnb3JpdGhtIHBsZWFzZSBsZXQgbWUga25vdy4KKwkgKi8KKwltdWx0aXBsaWVyID0gMTAwMDAwMDA7CisJd2hpbGUgKG51bWVyYXRvciA+ICgodWludDMyX3QpLTEpL211bHRpcGxpZXIpIHsKKwkJbXVsdGlwbGllciAvPSAyOworCQlkZW5vbWluYXRvciAvPSAyOworCX0KKworCXJldHVybiBkZW5vbWluYXRvciA/IG51bWVyYXRvciAqIG11bHRpcGxpZXIgLyBkZW5vbWluYXRvciA6IDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVGVybWluYWwgYW5kIHVuaXQgbWFuYWdlbWVudAorICovCisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2VudGl0eSAqdXZjX2VudGl0eV9ieV9pZChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBpbnQgaWQpCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQlpZiAoZW50aXR5LT5pZCA9PSBpZCkKKwkJCXJldHVybiBlbnRpdHk7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2VudGl0eSAqdXZjX2VudGl0eV9ieV9yZWZlcmVuY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwlpbnQgaWQsIHN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHkpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoZW50aXR5ID09IE5VTEwpCisJCWVudGl0eSA9IGxpc3RfZW50cnkoJmRldi0+ZW50aXRpZXMsIHN0cnVjdCB1dmNfZW50aXR5LCBsaXN0KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQlzd2l0Y2ggKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpKSB7CisJCWNhc2UgVFRfU1RSRUFNSU5HOgorCQkJaWYgKGVudGl0eS0+b3V0cHV0LmJTb3VyY2VJRCA9PSBpZCkKKwkJCQlyZXR1cm4gZW50aXR5OworCQkJYnJlYWs7CisKKwkJY2FzZSBWQ19QUk9DRVNTSU5HX1VOSVQ6CisJCQlpZiAoZW50aXR5LT5wcm9jZXNzaW5nLmJTb3VyY2VJRCA9PSBpZCkKKwkJCQlyZXR1cm4gZW50aXR5OworCQkJYnJlYWs7CisKKwkJY2FzZSBWQ19TRUxFQ1RPUl9VTklUOgorCQkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+c2VsZWN0b3IuYk5ySW5QaW5zOyArK2kpCisJCQkJaWYgKGVudGl0eS0+c2VsZWN0b3IuYmFTb3VyY2VJRFtpXSA9PSBpZCkKKwkJCQkJcmV0dXJuIGVudGl0eTsKKwkJCWJyZWFrOworCisJCWNhc2UgVkNfRVhURU5TSU9OX1VOSVQ6CisJCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5leHRlbnNpb24uYk5ySW5QaW5zOyArK2kpCisJCQkJaWYgKGVudGl0eS0+ZXh0ZW5zaW9uLmJhU291cmNlSURbaV0gPT0gaWQpCisJCQkJCXJldHVybiBlbnRpdHk7CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERlc2NyaXB0b3JzIGhhbmRsaW5nCisgKi8KKworc3RhdGljIGludCB1dmNfcGFyc2VfZm9ybWF0KHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbWluZywgc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCwKKwlfX3UzMiAqKmludGVydmFscywgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgYnVmbGVuKQoreworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmID0gc3RyZWFtaW5nLT5pbnRmOworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMgPSBpbnRmLT5jdXJfYWx0c2V0dGluZzsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdF9kZXNjICpmbXRkZXNjOworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gYnVmZmVyOworCXVuc2lnbmVkIGludCBpbnRlcnZhbDsKKwl1bnNpZ25lZCBpbnQgaSwgbjsKKwlfX3U4IGZ0eXBlOworCisJZm9ybWF0LT50eXBlID0gYnVmZmVyWzJdOworCWZvcm1hdC0+aW5kZXggPSBidWZmZXJbM107CisKKwlzd2l0Y2ggKGJ1ZmZlclsyXSkgeworCWNhc2UgVlNfRk9STUFUX1VOQ09NUFJFU1NFRDoKKwljYXNlIFZTX0ZPUk1BVF9GUkFNRV9CQVNFRDoKKwkJaWYgKGJ1ZmxlbiA8IDI3KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQgRk9STUFUIGVycm9yXG4iLAorCQkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIEZpbmQgdGhlIGZvcm1hdCBkZXNjcmlwdG9yIGZyb20gaXRzIEdVSUQuICovCisJCWZtdGRlc2MgPSB1dmNfZm9ybWF0X2J5X2d1aWQoJmJ1ZmZlcls1XSk7CisKKwkJaWYgKGZtdGRlc2MgIT0gTlVMTCkgeworCQkJc3RybmNweShmb3JtYXQtPm5hbWUsIGZtdGRlc2MtPm5hbWUsCisJCQkJc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisJCQlmb3JtYXQtPmZjYyA9IGZtdGRlc2MtPmZjYzsKKwkJfSBlbHNlIHsKKwkJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiVW5rbm93biB2aWRlbyBmb3JtYXQgIgorCQkJCVVWQ19HVUlEX0ZPUk1BVCAiXG4iLAorCQkJCVVWQ19HVUlEX0FSR1MoJmJ1ZmZlcls1XSkpOworCQkJc25wcmludGYoZm9ybWF0LT5uYW1lLCBzaXplb2YgZm9ybWF0LT5uYW1lLAorCQkJCVVWQ19HVUlEX0ZPUk1BVCwgVVZDX0dVSURfQVJHUygmYnVmZmVyWzVdKSk7CisJCQlmb3JtYXQtPmZjYyA9IDA7CisJCX0KKworCQlmb3JtYXQtPmJwcCA9IGJ1ZmZlclsyMV07CisJCWlmIChidWZmZXJbMl0gPT0gVlNfRk9STUFUX1VOQ09NUFJFU1NFRCkgeworCQkJZnR5cGUgPSBWU19GUkFNRV9VTkNPTVBSRVNTRUQ7CisJCX0gZWxzZSB7CisJCQlmdHlwZSA9IFZTX0ZSQU1FX0ZSQU1FX0JBU0VEOworCQkJaWYgKGJ1ZmZlclsyN10pCisJCQkJZm9ybWF0LT5mbGFncyA9IFVWQ19GTVRfRkxBR19DT01QUkVTU0VEOworCQl9CisJCWJyZWFrOworCisJY2FzZSBWU19GT1JNQVRfTUpQRUc6CisJCWlmIChidWZsZW4gPCAxMSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkIEZPUk1BVCBlcnJvclxuIiwKKwkJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlzdHJuY3B5KGZvcm1hdC0+bmFtZSwgIk1KUEVHIiwgc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisJCWZvcm1hdC0+ZmNjID0gVjRMMl9QSVhfRk1UX01KUEVHOworCQlmb3JtYXQtPmZsYWdzID0gVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQ7CisJCWZvcm1hdC0+YnBwID0gMDsKKwkJZnR5cGUgPSBWU19GUkFNRV9NSlBFRzsKKwkJYnJlYWs7CisKKwljYXNlIFZTX0ZPUk1BVF9EVjoKKwkJaWYgKGJ1ZmxlbiA8IDkpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZCBGT1JNQVQgZXJyb3JcbiIsCisJCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJc3dpdGNoIChidWZmZXJbOF0gJiAweDdmKSB7CisJCWNhc2UgMDoKKwkJCXN0cm5jcHkoZm9ybWF0LT5uYW1lLCAiU0QtRFYiLCBzaXplb2YgZm9ybWF0LT5uYW1lKTsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQlzdHJuY3B5KGZvcm1hdC0+bmFtZSwgIlNETC1EViIsIHNpemVvZiBmb3JtYXQtPm5hbWUpOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCXN0cm5jcHkoZm9ybWF0LT5uYW1lLCAiSEQtRFYiLCBzaXplb2YgZm9ybWF0LT5uYW1lKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkOiB1bmtub3duIERWIGZvcm1hdCAldVxuIiwKKwkJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsIGJ1ZmZlcls4XSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXN0cm5jYXQoZm9ybWF0LT5uYW1lLCBidWZmZXJbOF0gJiAoMSA8PCA3KSA/ICIgNjBIeiIgOiAiIDUwSHoiLAorCQkJc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisKKwkJZm9ybWF0LT5mY2MgPSBWNEwyX1BJWF9GTVRfRFY7CisJCWZvcm1hdC0+ZmxhZ3MgPSBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRCB8IFVWQ19GTVRfRkxBR19TVFJFQU07CisJCWZvcm1hdC0+YnBwID0gMDsKKwkJZnR5cGUgPSAwOworCisJCS8qIENyZWF0ZSBhIGR1bW15IGZyYW1lIGRlc2NyaXB0b3IuICovCisJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbMF07CisJCW1lbXNldCgmZm9ybWF0LT5mcmFtZVswXSwgMCwgc2l6ZW9mIGZvcm1hdC0+ZnJhbWVbMF0pOworCQlmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlID0gMTsKKwkJZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwgPSAxOworCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsID0gKmludGVydmFsczsKKwkJKigqaW50ZXJ2YWxzKSsrID0gMTsKKwkJZm9ybWF0LT5uZnJhbWVzID0gMTsKKwkJYnJlYWs7CisKKwljYXNlIFZTX0ZPUk1BVF9NUEVHMlRTOgorCWNhc2UgVlNfRk9STUFUX1NUUkVBTV9CQVNFRDoKKwkJLyogTm90IHN1cHBvcnRlZCB5ZXQuICovCisJZGVmYXVsdDoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJICAgICAgICJpbnRlcmZhY2UgJWQgdW5zdXBwb3J0ZWQgZm9ybWF0ICV1XG4iLAorCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlciwKKwkJICAgICAgIGJ1ZmZlclsyXSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCBmb3JtYXQgJXMuXG4iLCBmb3JtYXQtPm5hbWUpOworCisJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwlidWZmZXIgKz0gYnVmZmVyWzBdOworCisJLyogUGFyc2UgdGhlIGZyYW1lIGRlc2NyaXB0b3JzLiBPbmx5IHVuY29tcHJlc3NlZCwgTUpQRUcgYW5kIGZyYW1lCisJICogYmFzZWQgZm9ybWF0cyBoYXZlIGZyYW1lIGRlc2NyaXB0b3JzLgorCSAqLworCXdoaWxlIChidWZsZW4gPiAyICYmIGJ1ZmZlclsyXSA9PSBmdHlwZSkgeworCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2Zvcm1hdC0+bmZyYW1lc107CisKKwkJaWYgKGZ0eXBlICE9IFZTX0ZSQU1FX0ZSQU1FX0JBU0VEKQorCQkJbiA9IGJ1ZmxlbiA+IDI1ID8gYnVmZmVyWzI1XSA6IDA7CisJCWVsc2UKKwkJCW4gPSBidWZsZW4gPiAyMSA/IGJ1ZmZlclsyMV0gOiAwOworCisJCW4gPSBuID8gbiA6IDM7CisKKwkJaWYgKGJ1ZmxlbiA8IDI2ICsgNCpuKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQgRlJBTUUgZXJyb3JcbiIsIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWZyYW1lLT5iRnJhbWVJbmRleCA9IGJ1ZmZlclszXTsKKwkJZnJhbWUtPmJtQ2FwYWJpbGl0aWVzID0gYnVmZmVyWzRdOworCQlmcmFtZS0+d1dpZHRoID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzVdKTsKKwkJZnJhbWUtPndIZWlnaHQgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbN10pOworCQlmcmFtZS0+ZHdNaW5CaXRSYXRlID0gbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzldKTsKKwkJZnJhbWUtPmR3TWF4Qml0UmF0ZSA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlclsxM10pOworCQlpZiAoZnR5cGUgIT0gVlNfRlJBTUVfRlJBTUVfQkFTRUQpIHsKKwkJCWZyYW1lLT5kd01heFZpZGVvRnJhbWVCdWZmZXJTaXplID0KKwkJCQlsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbMTddKTsKKwkJCWZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsID0KKwkJCQlsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbMjFdKTsKKwkJCWZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUgPSBidWZmZXJbMjVdOworCQl9IGVsc2UgeworCQkJZnJhbWUtPmR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemUgPSAwOworCQkJZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwgPQorCQkJCWxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlclsxN10pOworCQkJZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSA9IGJ1ZmZlclsyMV07CisJCX0KKwkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbCA9ICppbnRlcnZhbHM7CisKKwkJLyogU2V2ZXJhbCBVVkMgY2hpcHNldHMgc2NyZXcgdXAgZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZQorCQkgKiBjb21wbGV0ZWx5LiBPYnNlcnZlZCBiZWhhdmlvdXJzIHJhbmdlIGZyb20gc2V0dGluZyB0aGUKKwkJICogdmFsdWUgdG8gMS4xeCB0aGUgYWN0dWFsIGZyYW1lIHNpemUgb2YgaGFyZHdpcmluZyB0aGUKKwkJICogMTYgbG93IGJpdHMgdG8gMC4gVGhpcyByZXN1bHRzIGluIGEgaGlnaGVyIHRoYW4gbmVjZXNzYXJ5CisJCSAqIG1lbW9yeSB1c2FnZSBhcyB3ZWxsIGFzIGEgd3JvbmcgaW1hZ2Ugc2l6ZSBpbmZvcm1hdGlvbi4gRm9yCisJCSAqIHVuY29tcHJlc3NlZCBmb3JtYXRzIHRoaXMgY2FuIGJlIGZpeGVkIGJ5IGNvbXB1dGluZyB0aGUKKwkJICogdmFsdWUgZnJvbSB0aGUgZnJhbWUgc2l6ZS4KKwkJICovCisJCWlmICghKGZvcm1hdC0+ZmxhZ3MgJiBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRCkpCisJCQlmcmFtZS0+ZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZSA9IGZvcm1hdC0+YnBwCisJCQkJKiBmcmFtZS0+d1dpZHRoICogZnJhbWUtPndIZWlnaHQgLyA4OworCisJCS8qIFNvbWUgYm9ndXMgZGV2aWNlcyByZXBvcnQgZHdNaW5GcmFtZUludGVydmFsIGVxdWFsIHRvCisJCSAqIGR3TWF4RnJhbWVJbnRlcnZhbCBhbmQgaGF2ZSBkd0ZyYW1lSW50ZXJ2YWxTdGVwIHNldCB0bworCQkgKiB6ZXJvLiBTZXR0aW5nIGFsbCBudWxsIGludGVydmFscyB0byAxIGZpeGVzIHRoZSBwcm9ibGVtIGFuZAorCQkgKiBzb21lIG90aGVyIGRpdmlzaW9ucyBieSB6ZXJvIHdoaWNoIGNvdWxkIGhhcHBlbi4KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHsKKwkJCWludGVydmFsID0gbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzI2KzQqaV0pOworCQkJKigqaW50ZXJ2YWxzKSsrID0gaW50ZXJ2YWwgPyBpbnRlcnZhbCA6IDE7CisJCX0KKworCQkvKiBNYWtlIHN1cmUgdGhhdCB0aGUgZGVmYXVsdCBmcmFtZSBpbnRlcnZhbCBzdGF5cyBiZXR3ZWVuCisJCSAqIHRoZSBib3VuZGFyaWVzLgorCQkgKi8KKwkJbiAtPSBmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlID8gMSA6IDI7CisJCWZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsID0KKwkJCW1pbihmcmFtZS0+ZHdGcmFtZUludGVydmFsW25dLAorCQkJICAgIG1heChmcmFtZS0+ZHdGcmFtZUludGVydmFsWzBdLAorCQkJCWZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsKSk7CisKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIi0gJXV4JXUgKCV1LiV1IGZwcylcbiIsCisJCQlmcmFtZS0+d1dpZHRoLCBmcmFtZS0+d0hlaWdodCwKKwkJCTEwMDAwMDAwL2ZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsLAorCQkJKDEwMDAwMDAwMC9mcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCklMTApOworCisJCWZvcm1hdC0+bmZyYW1lcysrOworCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCWlmIChidWZsZW4gPiAyICYmIGJ1ZmZlclsyXSA9PSBWU19TVElMTF9JTUFHRV9GUkFNRSkgeworCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCWlmIChidWZsZW4gPiAyICYmIGJ1ZmZlclsyXSA9PSBWU19DT0xPUkZPUk1BVCkgeworCQlpZiAoYnVmbGVuIDwgNikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkIENPTE9SRk9STUFUIGVycm9yXG4iLAorCQkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWZvcm1hdC0+Y29sb3JzcGFjZSA9IHV2Y19jb2xvcnNwYWNlKGJ1ZmZlclszXSk7CisKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwlyZXR1cm4gYnVmZmVyIC0gc3RhcnQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3BhcnNlX3N0cmVhbWluZyhzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQoreworCXN0cnVjdCB1dmNfc3RyZWFtaW5nICpzdHJlYW1pbmcgPSBOVUxMOworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQ7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cyA9ICZpbnRmLT5hbHRzZXR0aW5nWzBdOworCXVuc2lnbmVkIGNoYXIgKl9idWZmZXIsICpidWZmZXIgPSBhbHRzLT5leHRyYTsKKwlpbnQgX2J1ZmxlbiwgYnVmbGVuID0gYWx0cy0+ZXh0cmFsZW47CisJdW5zaWduZWQgaW50IG5mb3JtYXRzID0gMCwgbmZyYW1lcyA9IDAsIG5pbnRlcnZhbHMgPSAwOworCXVuc2lnbmVkIGludCBzaXplLCBpLCBuLCBwOworCV9fdTMyICppbnRlcnZhbDsKKwlfX3UxNiBwc2l6ZTsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKworCWlmIChpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlU3ViQ2xhc3MKKwkJIT0gU0NfVklERU9TVFJFQU1JTkcpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCBpbnRlcmZhY2UgJWQgaXNuJ3QgYSAiCisJCQkidmlkZW8gc3RyZWFtaW5nIGludGVyZmFjZVxuIiwgZGV2LT51ZGV2LT5kZXZudW0sCisJCQlpbnRmLT5hbHRzZXR0aW5nWzBdLmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmICh1c2JfZHJpdmVyX2NsYWltX2ludGVyZmFjZSgmdXZjX2RyaXZlci5kcml2ZXIsIGludGYsIGRldikpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCBpbnRlcmZhY2UgJWQgaXMgYWxyZWFkeSAiCisJCQkiY2xhaW1lZFxuIiwgZGV2LT51ZGV2LT5kZXZudW0sCisJCQlpbnRmLT5hbHRzZXR0aW5nWzBdLmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXN0cmVhbWluZyA9IGt6YWxsb2Moc2l6ZW9mICpzdHJlYW1pbmcsIEdGUF9LRVJORUwpOworCWlmIChzdHJlYW1pbmcgPT0gTlVMTCkgeworCQl1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlKCZ1dmNfZHJpdmVyLmRyaXZlciwgaW50Zik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW11dGV4X2luaXQoJnN0cmVhbWluZy0+bXV0ZXgpOworCXN0cmVhbWluZy0+aW50ZiA9IHVzYl9nZXRfaW50ZihpbnRmKTsKKwlzdHJlYW1pbmctPmludGZudW0gPSBpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyOworCisJLyogVGhlIFBpY28gaU1hZ2Ugd2ViY2FtIGhhcyBpdHMgY2xhc3Mtc3BlY2lmaWMgaW50ZXJmYWNlIGRlc2NyaXB0b3JzCisJICogYWZ0ZXIgdGhlIGVuZHBvaW50IGRlc2NyaXB0b3JzLgorCSAqLworCWlmIChidWZsZW4gPT0gMCkgeworCQlmb3IgKGkgPSAwOyBpIDwgYWx0cy0+ZGVzYy5iTnVtRW5kcG9pbnRzOyArK2kpIHsKKwkJCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXAgPSAmYWx0cy0+ZW5kcG9pbnRbaV07CisKKwkJCWlmIChlcC0+ZXh0cmFsZW4gPT0gMCkKKwkJCQljb250aW51ZTsKKworCQkJaWYgKGVwLT5leHRyYWxlbiA+IDIgJiYKKwkJCSAgICBlcC0+ZXh0cmFbMV0gPT0gVVNCX0RUX0NTX0lOVEVSRkFDRSkgeworCQkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJ0cnlpbmcgZXh0cmEgZGF0YSAiCisJCQkJCSJmcm9tIGVuZHBvaW50ICV1LlxuIiwgaSk7CisJCQkJYnVmZmVyID0gYWx0cy0+ZW5kcG9pbnRbaV0uZXh0cmE7CisJCQkJYnVmbGVuID0gYWx0cy0+ZW5kcG9pbnRbaV0uZXh0cmFsZW47CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwkvKiBTa2lwIHRoZSBzdGFuZGFyZCBpbnRlcmZhY2UgZGVzY3JpcHRvcnMuICovCisJd2hpbGUgKGJ1ZmxlbiA+IDIgJiYgYnVmZmVyWzFdICE9IFVTQl9EVF9DU19JTlRFUkZBQ0UpIHsKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwlpZiAoYnVmbGVuIDw9IDIpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIm5vIGNsYXNzLXNwZWNpZmljIHN0cmVhbWluZyAiCisJCQkiaW50ZXJmYWNlIGRlc2NyaXB0b3JzIGZvdW5kLlxuIik7CisJCWdvdG8gZXJyb3I7CisJfQorCisJLyogUGFyc2UgdGhlIGhlYWRlciBkZXNjcmlwdG9yLiAqLworCWlmIChidWZmZXJbMl0gPT0gVlNfT1VUUFVUX0hFQURFUikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIGludGVyZmFjZSAiCisJCQkiJWQgT1VUUFVUIEhFQURFUiBkZXNjcmlwdG9yIGlzIG5vdCBzdXBwb3J0ZWQuXG4iLAorCQkJZGV2LT51ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCWdvdG8gZXJyb3I7CisJfSBlbHNlIGlmIChidWZmZXJbMl0gPT0gVlNfSU5QVVRfSEVBREVSKSB7CisJCXAgPSBidWZsZW4gPj0gNSA/IGJ1ZmZlclszXSA6IDA7CisJCW4gPSBidWZsZW4gPj0gMTIgPyBidWZmZXJbMTJdIDogMDsKKworCQlpZiAoYnVmbGVuIDwgMTMgKyBwKm4gfHwgYnVmZmVyWzJdICE9IFZTX0lOUFVUX0hFQURFUikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyAiCisJCQkJImludGVyZmFjZSAlZCBJTlBVVCBIRUFERVIgZGVzY3JpcHRvciBpcyAiCisJCQkJImludmFsaWQuXG4iLCBkZXYtPnVkZXYtPmRldm51bSwKKwkJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJZ290byBlcnJvcjsKKwkJfQorCisJCXN0cmVhbWluZy0+aGVhZGVyLmJOdW1Gb3JtYXRzID0gcDsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYkVuZHBvaW50QWRkcmVzcyA9IGJ1ZmZlcls2XTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYm1JbmZvID0gYnVmZmVyWzddOworCQlzdHJlYW1pbmctPmhlYWRlci5iVGVybWluYWxMaW5rID0gYnVmZmVyWzhdOworCQlzdHJlYW1pbmctPmhlYWRlci5iU3RpbGxDYXB0dXJlTWV0aG9kID0gYnVmZmVyWzldOworCQlzdHJlYW1pbmctPmhlYWRlci5iVHJpZ2dlclN1cHBvcnQgPSBidWZmZXJbMTBdOworCQlzdHJlYW1pbmctPmhlYWRlci5iVHJpZ2dlclVzYWdlID0gYnVmZmVyWzExXTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYkNvbnRyb2xTaXplID0gbjsKKworCQlzdHJlYW1pbmctPmhlYWRlci5ibWFDb250cm9scyA9IGttYWxsb2MocCpuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHN0cmVhbWluZy0+aGVhZGVyLmJtYUNvbnRyb2xzID09IE5VTEwpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIGVycm9yOworCQl9CisKKwkJbWVtY3B5KHN0cmVhbWluZy0+aGVhZGVyLmJtYUNvbnRyb2xzLCAmYnVmZmVyWzEzXSwgcCpuKTsKKwl9IGVsc2UgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIGludGVyZmFjZSAiCisJCQkiJWQgSEVBREVSIGRlc2NyaXB0b3Igbm90IGZvdW5kLlxuIiwgZGV2LT51ZGV2LT5kZXZudW0sCisJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQlnb3RvIGVycm9yOworCX0KKworCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJYnVmZmVyICs9IGJ1ZmZlclswXTsKKworCV9idWZmZXIgPSBidWZmZXI7CisJX2J1ZmxlbiA9IGJ1ZmxlbjsKKworCS8qIENvdW50IHRoZSBmb3JtYXQgYW5kIGZyYW1lIGRlc2NyaXB0b3JzLiAqLworCXdoaWxlIChfYnVmbGVuID4gMikgeworCQlzd2l0Y2ggKF9idWZmZXJbMl0pIHsKKwkJY2FzZSBWU19GT1JNQVRfVU5DT01QUkVTU0VEOgorCQljYXNlIFZTX0ZPUk1BVF9NSlBFRzoKKwkJY2FzZSBWU19GT1JNQVRfRlJBTUVfQkFTRUQ6CisJCQluZm9ybWF0cysrOworCQkJYnJlYWs7CisKKwkJY2FzZSBWU19GT1JNQVRfRFY6CisJCQkvKiBEViBmb3JtYXQgaGFzIG5vIGZyYW1lIGRlc2NyaXB0b3IuIFdlIHdpbGwgY3JlYXRlIGEKKwkJCSAqIGR1bW15IGZyYW1lIGRlc2NyaXB0b3Igd2l0aCBhIGR1bW15IGZyYW1lIGludGVydmFsLgorCQkJICovCisJCQluZm9ybWF0cysrOworCQkJbmZyYW1lcysrOworCQkJbmludGVydmFscysrOworCQkJYnJlYWs7CisKKwkJY2FzZSBWU19GT1JNQVRfTVBFRzJUUzoKKwkJY2FzZSBWU19GT1JNQVRfU1RSRUFNX0JBU0VEOgorCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyAiCisJCQkJImludGVyZmFjZSAlZCBGT1JNQVQgJXUgaXMgbm90IHN1cHBvcnRlZC5cbiIsCisJCQkJZGV2LT51ZGV2LT5kZXZudW0sCisJCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyLCBfYnVmZmVyWzJdKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVlNfRlJBTUVfVU5DT01QUkVTU0VEOgorCQljYXNlIFZTX0ZSQU1FX01KUEVHOgorCQkJbmZyYW1lcysrOworCQkJaWYgKF9idWZsZW4gPiAyNSkKKwkJCQluaW50ZXJ2YWxzICs9IF9idWZmZXJbMjVdID8gX2J1ZmZlclsyNV0gOiAzOworCQkJYnJlYWs7CisKKwkJY2FzZSBWU19GUkFNRV9GUkFNRV9CQVNFRDoKKwkJCW5mcmFtZXMrKzsKKwkJCWlmIChfYnVmbGVuID4gMjEpCisJCQkJbmludGVydmFscyArPSBfYnVmZmVyWzIxXSA/IF9idWZmZXJbMjFdIDogMzsKKwkJCWJyZWFrOworCQl9CisKKwkJX2J1ZmxlbiAtPSBfYnVmZmVyWzBdOworCQlfYnVmZmVyICs9IF9idWZmZXJbMF07CisJfQorCisJaWYgKG5mb3JtYXRzID09IDApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyBpbnRlcmZhY2UgIgorCQkJIiVkIGhhcyBubyBzdXBwb3J0ZWQgZm9ybWF0cyBkZWZpbmVkLlxuIiwKKwkJCWRldi0+dWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQlnb3RvIGVycm9yOworCX0KKworCXNpemUgPSBuZm9ybWF0cyAqIHNpemVvZiAqZm9ybWF0ICsgbmZyYW1lcyAqIHNpemVvZiAqZnJhbWUKKwkgICAgICsgbmludGVydmFscyAqIHNpemVvZiAqaW50ZXJ2YWw7CisJZm9ybWF0ID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoZm9ybWF0ID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlmcmFtZSA9IChzdHJ1Y3QgdXZjX2ZyYW1lICopJmZvcm1hdFtuZm9ybWF0c107CisJaW50ZXJ2YWwgPSAoX191MzIgKikmZnJhbWVbbmZyYW1lc107CisKKwlzdHJlYW1pbmctPmZvcm1hdCA9IGZvcm1hdDsKKwlzdHJlYW1pbmctPm5mb3JtYXRzID0gbmZvcm1hdHM7CisKKwkvKiBQYXJzZSB0aGUgZm9ybWF0IGRlc2NyaXB0b3JzLiAqLworCXdoaWxlIChidWZsZW4gPiAyKSB7CisJCXN3aXRjaCAoYnVmZmVyWzJdKSB7CisJCWNhc2UgVlNfRk9STUFUX1VOQ09NUFJFU1NFRDoKKwkJY2FzZSBWU19GT1JNQVRfTUpQRUc6CisJCWNhc2UgVlNfRk9STUFUX0RWOgorCQljYXNlIFZTX0ZPUk1BVF9GUkFNRV9CQVNFRDoKKwkJCWZvcm1hdC0+ZnJhbWUgPSBmcmFtZTsKKwkJCXJldCA9IHV2Y19wYXJzZV9mb3JtYXQoZGV2LCBzdHJlYW1pbmcsIGZvcm1hdCwKKwkJCQkmaW50ZXJ2YWwsIGJ1ZmZlciwgYnVmbGVuKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCWdvdG8gZXJyb3I7CisKKwkJCWZyYW1lICs9IGZvcm1hdC0+bmZyYW1lczsKKwkJCWZvcm1hdCsrOworCisJCQlidWZsZW4gLT0gcmV0OworCQkJYnVmZmVyICs9IHJldDsKKwkJCWNvbnRpbnVlOworCisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJLyogUGFyc2UgdGhlIGFsdGVybmF0ZSBzZXR0aW5ncyB0byBmaW5kIHRoZSBtYXhpbXVtIGJhbmR3aWR0aC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgaW50Zi0+bnVtX2FsdHNldHRpbmc7ICsraSkgeworCQlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwOworCQlhbHRzID0gJmludGYtPmFsdHNldHRpbmdbaV07CisJCWVwID0gdXZjX2ZpbmRfZW5kcG9pbnQoYWx0cywKKwkJCQlzdHJlYW1pbmctPmhlYWRlci5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJaWYgKGVwID09IE5VTEwpCisJCQljb250aW51ZTsKKworCQlwc2l6ZSA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLndNYXhQYWNrZXRTaXplKTsKKwkJcHNpemUgPSAocHNpemUgJiAweDA3ZmYpICogKDEgKyAoKHBzaXplID4+IDExKSAmIDMpKTsKKwkJaWYgKHBzaXplID4gc3RyZWFtaW5nLT5tYXhwc2l6ZSkKKwkJCXN0cmVhbWluZy0+bWF4cHNpemUgPSBwc2l6ZTsKKwl9CisKKwlsaXN0X2FkZF90YWlsKCZzdHJlYW1pbmctPmxpc3QsICZkZXYtPnN0cmVhbWluZyk7CisJcmV0dXJuIDA7CisKK2Vycm9yOgorCXVzYl9kcml2ZXJfcmVsZWFzZV9pbnRlcmZhY2UoJnV2Y19kcml2ZXIuZHJpdmVyLCBpbnRmKTsKKwl1c2JfcHV0X2ludGYoaW50Zik7CisJa2ZyZWUoc3RyZWFtaW5nLT5mb3JtYXQpOworCWtmcmVlKHN0cmVhbWluZy0+aGVhZGVyLmJtYUNvbnRyb2xzKTsKKwlrZnJlZShzdHJlYW1pbmcpOworCXJldHVybiByZXQ7Cit9CisKKy8qIFBhcnNlIHZlbmRvci1zcGVjaWZpYyBleHRlbnNpb25zLiAqLworc3RhdGljIGludCB1dmNfcGFyc2VfdmVuZG9yX2NvbnRyb2woc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwljb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBidWZsZW4pCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBkZXYtPnVkZXY7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cyA9IGRldi0+aW50Zi0+Y3VyX2FsdHNldHRpbmc7CisJc3RydWN0IHV2Y19lbnRpdHkgKnVuaXQ7CisJdW5zaWduZWQgaW50IG4sIHA7CisJaW50IGhhbmRsZWQgPSAwOworCisJc3dpdGNoIChsZTE2X3RvX2NwdShkZXYtPnVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpKSB7CisJY2FzZSAweDA0NmQ6CQkvKiBMb2dpdGVjaCAqLworCQlpZiAoYnVmZmVyWzFdICE9IDB4NDEgfHwgYnVmZmVyWzJdICE9IDB4MDEpCisJCQlicmVhazsKKworCQkvKiBMb2dpdGVjaCBpbXBsZW1lbnRzIHNldmVyYWwgdmVuZG9yIHNwZWNpZmljIGZ1bmN0aW9ucworCQkgKiB0aHJvdWdoIHZlbmRvciBzcGVjaWZpYyBleHRlbnNpb24gdW5pdHMgKExYVSkuCisJCSAqCisJCSAqIFRoZSBMWFUgZGVzY3JpcHRvcnMgYXJlIHNpbWlsYXIgdG8gWFUgZGVzY3JpcHRvcnMKKwkJICogKHNlZSAiVVNCIERldmljZSBWaWRlbyBDbGFzcyBmb3IgVmlkZW8gRGV2aWNlcyIsIHNlY3Rpb24KKwkJICogMy43LjIuNiAiRXh0ZW5zaW9uIFVuaXQgRGVzY3JpcHRvciIpIHdpdGggdGhlIGZvbGxvd2luZworCQkgKiBkaWZmZXJlbmNlczoKKwkJICoKKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgKiAwCQliTGVuZ3RoCQkxCSBOdW1iZXIKKwkJICoJU2l6ZSBvZiB0aGlzIGRlc2NyaXB0b3IsIGluIGJ5dGVzOiAyNCtwK24qMgorCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAqIDIzK3ArbglibUNvbnRyb2xzVHlwZQlOCUJpdG1hcAorCQkgKiAJSW5kaXZpZHVhbCBiaXRzIGluIHRoZSBzZXQgYXJlIGRlZmluZWQ6CisJCSAqIAkwOiBBYnNvbHV0ZQorCQkgKiAJMTogUmVsYXRpdmUKKwkJICoKKwkJICogCVRoaXMgYml0c2V0IGlzIG1hcHBlZCBleGFjdGx5IHRoZSBzYW1lIGFzIGJtQ29udHJvbHMuCisJCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICogMjMrcCtuKjIJYlJlc2VydmVkCTEJQm9vbGVhbgorCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAqIDI0K3ArbioyCWlFeHRlbnNpb24JMQlJbmRleAorCQkgKglJbmRleCBvZiBhIHN0cmluZyBkZXNjcmlwdG9yIHRoYXQgZGVzY3JpYmVzIHRoaXMKKwkJICoJZXh0ZW5zaW9uIHVuaXQuCisJCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICovCisJCXAgPSBidWZsZW4gPj0gMjIgPyBidWZmZXJbMjFdIDogMDsKKwkJbiA9IGJ1ZmxlbiA+PSAyNSArIHAgPyBidWZmZXJbMjIrcF0gOiAwOworCisJCWlmIChidWZsZW4gPCAyNSArIHAgKyAyKm4pIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIEVYVEVOU0lPTl9VTklUIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCWJyZWFrOworCQl9CisKKwkJdW5pdCA9IGt6YWxsb2Moc2l6ZW9mICp1bml0ICsgcCArIDIqbiwgR0ZQX0tFUk5FTCk7CisJCWlmICh1bml0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl1bml0LT5pZCA9IGJ1ZmZlclszXTsKKwkJdW5pdC0+dHlwZSA9IFZDX0VYVEVOU0lPTl9VTklUOworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmd1aWRFeHRlbnNpb25Db2RlLCAmYnVmZmVyWzRdLCAxNik7CisJCXVuaXQtPmV4dGVuc2lvbi5iTnVtQ29udHJvbHMgPSBidWZmZXJbMjBdOworCQl1bml0LT5leHRlbnNpb24uYk5ySW5QaW5zID0KKwkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlclsyMV0pOworCQl1bml0LT5leHRlbnNpb24uYmFTb3VyY2VJRCA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdDsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5iYVNvdXJjZUlELCAmYnVmZmVyWzIyXSwgcCk7CisJCXVuaXQtPmV4dGVuc2lvbi5iQ29udHJvbFNpemUgPSBidWZmZXJbMjIrcF07CisJCXVuaXQtPmV4dGVuc2lvbi5ibUNvbnRyb2xzID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0ICsgcDsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJtQ29udHJvbHNUeXBlID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0CisJCQkJCSAgICAgICArIHAgKyBuOworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmJtQ29udHJvbHMsICZidWZmZXJbMjMrcF0sIDIqbik7CisKKwkJaWYgKGJ1ZmZlclsyNCtwKzIqbl0gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzI0K3ArMipuXSwgdW5pdC0+bmFtZSwKKwkJCQkgICBzaXplb2YgdW5pdC0+bmFtZSk7CisJCWVsc2UKKwkJCXNwcmludGYodW5pdC0+bmFtZSwgIkV4dGVuc2lvbiAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdW5pdC0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQloYW5kbGVkID0gMTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIGhhbmRsZWQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3BhcnNlX3N0YW5kYXJkX2NvbnRyb2woc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwljb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBidWZsZW4pCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBkZXYtPnVkZXY7CisJc3RydWN0IHV2Y19lbnRpdHkgKnVuaXQsICp0ZXJtOworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmOworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMgPSBkZXYtPmludGYtPmN1cl9hbHRzZXR0aW5nOworCXVuc2lnbmVkIGludCBpLCBuLCBwLCBsZW47CisJX191MTYgdHlwZTsKKworCXN3aXRjaCAoYnVmZmVyWzJdKSB7CisJY2FzZSBWQ19IRUFERVI6CisJCW4gPSBidWZsZW4gPj0gMTIgPyBidWZmZXJbMTFdIDogMDsKKworCQlpZiAoYnVmbGVuIDwgMTIgfHwgYnVmbGVuIDwgMTIgKyBuKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBIRUFERVIgZXJyb3JcbiIsIHVkZXYtPmRldm51bSwKKwkJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlkZXYtPnV2Y192ZXJzaW9uID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzNdKTsKKwkJZGV2LT5jbG9ja19mcmVxdWVuY3kgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbN10pOworCisJCS8qIFBhcnNlIGFsbCBVU0IgVmlkZW8gU3RyZWFtaW5nIGludGVyZmFjZXMuICovCisJCWZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHsKKwkJCWludGYgPSB1c2JfaWZudW1fdG9faWYodWRldiwgYnVmZmVyWzEyK2ldKTsKKwkJCWlmIChpbnRmID09IE5VTEwpIHsKKwkJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkICIKKwkJCQkJImludGVyZmFjZSAlZCBkb2Vzbid0IGV4aXN0c1xuIiwKKwkJCQkJdWRldi0+ZGV2bnVtLCBpKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJdXZjX3BhcnNlX3N0cmVhbWluZyhkZXYsIGludGYpOworCQl9CisJCWJyZWFrOworCisJY2FzZSBWQ19JTlBVVF9URVJNSU5BTDoKKwkJaWYgKGJ1ZmxlbiA8IDgpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIElOUFVUX1RFUk1JTkFMIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJLyogTWFrZSBzdXJlIHRoZSB0ZXJtaW5hbCB0eXBlIE1TQiBpcyBub3QgbnVsbCwgb3RoZXJ3aXNlIGl0CisJCSAqIGNvdWxkIGJlIGNvbmZ1c2VkIHdpdGggYSB1bml0LgorCQkgKi8KKwkJdHlwZSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls0XSk7CisJCWlmICgodHlwZSAmIDB4ZmYwMCkgPT0gMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgSU5QVVRfVEVSTUlOQUwgJWQgaGFzIGludmFsaWQgIgorCQkJCSJ0eXBlIDB4JTA0eCwgc2tpcHBpbmdcbiIsIHVkZXYtPmRldm51bSwKKwkJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsCisJCQkJYnVmZmVyWzNdLCB0eXBlKTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJbiA9IDA7CisJCXAgPSAwOworCQlsZW4gPSA4OworCisJCWlmICh0eXBlID09IElUVF9DQU1FUkEpIHsKKwkJCW4gPSBidWZsZW4gPj0gMTUgPyBidWZmZXJbMTRdIDogMDsKKwkJCWxlbiA9IDE1OworCisJCX0gZWxzZSBpZiAodHlwZSA9PSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUKSB7CisJCQluID0gYnVmbGVuID49IDkgPyBidWZmZXJbOF0gOiAwOworCQkJcCA9IGJ1ZmxlbiA+PSAxMCArIG4gPyBidWZmZXJbOStuXSA6IDA7CisJCQlsZW4gPSAxMDsKKwkJfQorCisJCWlmIChidWZsZW4gPCBsZW4gKyBuICsgcCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgSU5QVVRfVEVSTUlOQUwgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQl0ZXJtID0ga3phbGxvYyhzaXplb2YgKnRlcm0gKyBuICsgcCwgR0ZQX0tFUk5FTCk7CisJCWlmICh0ZXJtID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl0ZXJtLT5pZCA9IGJ1ZmZlclszXTsKKwkJdGVybS0+dHlwZSA9IHR5cGUgfCBVVkNfVEVSTV9JTlBVVDsKKworCQlpZiAoVVZDX0VOVElUWV9UWVBFKHRlcm0pID09IElUVF9DQU1FUkEpIHsKKwkJCXRlcm0tPmNhbWVyYS5iQ29udHJvbFNpemUgPSBuOworCQkJdGVybS0+Y2FtZXJhLmJtQ29udHJvbHMgPSAoX191OCAqKXRlcm0gKyBzaXplb2YgKnRlcm07CisJCQl0ZXJtLT5jYW1lcmEud09iamVjdGl2ZUZvY2FsTGVuZ3RoTWluID0KKwkJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbOF0pOworCQkJdGVybS0+Y2FtZXJhLndPYmplY3RpdmVGb2NhbExlbmd0aE1heCA9CisJCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzEwXSk7CisJCQl0ZXJtLT5jYW1lcmEud09jdWxhckZvY2FsTGVuZ3RoID0KKwkJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbMTJdKTsKKwkJCW1lbWNweSh0ZXJtLT5jYW1lcmEuYm1Db250cm9scywgJmJ1ZmZlclsxNV0sIG4pOworCQl9IGVsc2UgaWYgKFVWQ19FTlRJVFlfVFlQRSh0ZXJtKSA9PSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUKSB7CisJCQl0ZXJtLT5tZWRpYS5iQ29udHJvbFNpemUgPSBuOworCQkJdGVybS0+bWVkaWEuYm1Db250cm9scyA9IChfX3U4ICopdGVybSArIHNpemVvZiAqdGVybTsKKwkJCXRlcm0tPm1lZGlhLmJUcmFuc3BvcnRNb2RlU2l6ZSA9IHA7CisJCQl0ZXJtLT5tZWRpYS5ibVRyYW5zcG9ydE1vZGVzID0gKF9fdTggKil0ZXJtCisJCQkJCQkgICAgICsgc2l6ZW9mICp0ZXJtICsgbjsKKwkJCW1lbWNweSh0ZXJtLT5tZWRpYS5ibUNvbnRyb2xzLCAmYnVmZmVyWzldLCBuKTsKKwkJCW1lbWNweSh0ZXJtLT5tZWRpYS5ibVRyYW5zcG9ydE1vZGVzLCAmYnVmZmVyWzEwK25dLCBwKTsKKwkJfQorCisJCWlmIChidWZmZXJbN10gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzddLCB0ZXJtLT5uYW1lLAorCQkJCSAgIHNpemVvZiB0ZXJtLT5uYW1lKTsKKwkJZWxzZSBpZiAoVVZDX0VOVElUWV9UWVBFKHRlcm0pID09IElUVF9DQU1FUkEpCisJCQlzcHJpbnRmKHRlcm0tPm5hbWUsICJDYW1lcmEgJXUiLCBidWZmZXJbM10pOworCQllbHNlIGlmIChVVkNfRU5USVRZX1RZUEUodGVybSkgPT0gSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVCkKKwkJCXNwcmludGYodGVybS0+bmFtZSwgIk1lZGlhICV1IiwgYnVmZmVyWzNdKTsKKwkJZWxzZQorCQkJc3ByaW50Zih0ZXJtLT5uYW1lLCAiSW5wdXQgJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnRlcm0tPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX09VVFBVVF9URVJNSU5BTDoKKwkJaWYgKGJ1ZmxlbiA8IDkpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIE9VVFBVVF9URVJNSU5BTCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0aGUgdGVybWluYWwgdHlwZSBNU0IgaXMgbm90IG51bGwsIG90aGVyd2lzZSBpdAorCQkgKiBjb3VsZCBiZSBjb25mdXNlZCB3aXRoIGEgdW5pdC4KKwkJICovCisJCXR5cGUgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbNF0pOworCQlpZiAoKHR5cGUgJiAweGZmMDApID09IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIE9VVFBVVF9URVJNSU5BTCAlZCBoYXMgaW52YWxpZCAiCisJCQkJInR5cGUgMHglMDR4LCBza2lwcGluZ1xuIiwgdWRldi0+ZGV2bnVtLAorCQkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlciwgYnVmZmVyWzNdLCB0eXBlKTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJdGVybSA9IGt6YWxsb2Moc2l6ZW9mICp0ZXJtLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHRlcm0gPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXRlcm0tPmlkID0gYnVmZmVyWzNdOworCQl0ZXJtLT50eXBlID0gdHlwZSB8IFVWQ19URVJNX09VVFBVVDsKKwkJdGVybS0+b3V0cHV0LmJTb3VyY2VJRCA9IGJ1ZmZlcls3XTsKKworCQlpZiAoYnVmZmVyWzhdICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlcls4XSwgdGVybS0+bmFtZSwKKwkJCQkgICBzaXplb2YgdGVybS0+bmFtZSk7CisJCWVsc2UKKwkJCXNwcmludGYodGVybS0+bmFtZSwgIk91dHB1dCAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdGVybS0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQlicmVhazsKKworCWNhc2UgVkNfU0VMRUNUT1JfVU5JVDoKKwkJcCA9IGJ1ZmxlbiA+PSA1ID8gYnVmZmVyWzRdIDogMDsKKworCQlpZiAoYnVmbGVuIDwgNSB8fCBidWZsZW4gPCA2ICsgcCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgU0VMRUNUT1JfVU5JVCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXVuaXQgPSBremFsbG9jKHNpemVvZiAqdW5pdCArIHAsIEdGUF9LRVJORUwpOworCQlpZiAodW5pdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdW5pdC0+aWQgPSBidWZmZXJbM107CisJCXVuaXQtPnR5cGUgPSBidWZmZXJbMl07CisJCXVuaXQtPnNlbGVjdG9yLmJOckluUGlucyA9IGJ1ZmZlcls0XTsKKwkJdW5pdC0+c2VsZWN0b3IuYmFTb3VyY2VJRCA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdDsKKwkJbWVtY3B5KHVuaXQtPnNlbGVjdG9yLmJhU291cmNlSUQsICZidWZmZXJbNV0sIHApOworCisJCWlmIChidWZmZXJbNStwXSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbNStwXSwgdW5pdC0+bmFtZSwKKwkJCQkgICBzaXplb2YgdW5pdC0+bmFtZSk7CisJCWVsc2UKKwkJCXNwcmludGYodW5pdC0+bmFtZSwgIlNlbGVjdG9yICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ1bml0LT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWJyZWFrOworCisJY2FzZSBWQ19QUk9DRVNTSU5HX1VOSVQ6CisJCW4gPSBidWZsZW4gPj0gOCA/IGJ1ZmZlcls3XSA6IDA7CisJCXAgPSBkZXYtPnV2Y192ZXJzaW9uID49IDB4MDExMCA/IDEwIDogOTsKKworCQlpZiAoYnVmbGVuIDwgcCArIG4pIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIFBST0NFU1NJTkdfVU5JVCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXVuaXQgPSBremFsbG9jKHNpemVvZiAqdW5pdCArIG4sIEdGUF9LRVJORUwpOworCQlpZiAodW5pdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdW5pdC0+aWQgPSBidWZmZXJbM107CisJCXVuaXQtPnR5cGUgPSBidWZmZXJbMl07CisJCXVuaXQtPnByb2Nlc3NpbmcuYlNvdXJjZUlEID0gYnVmZmVyWzRdOworCQl1bml0LT5wcm9jZXNzaW5nLndNYXhNdWx0aXBsaWVyID0KKwkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls1XSk7CisJCXVuaXQtPnByb2Nlc3NpbmcuYkNvbnRyb2xTaXplID0gYnVmZmVyWzddOworCQl1bml0LT5wcm9jZXNzaW5nLmJtQ29udHJvbHMgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQ7CisJCW1lbWNweSh1bml0LT5wcm9jZXNzaW5nLmJtQ29udHJvbHMsICZidWZmZXJbOF0sIG4pOworCQlpZiAoZGV2LT51dmNfdmVyc2lvbiA+PSAweDAxMTApCisJCQl1bml0LT5wcm9jZXNzaW5nLmJtVmlkZW9TdGFuZGFyZHMgPSBidWZmZXJbOStuXTsKKworCQlpZiAoYnVmZmVyWzgrbl0gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzgrbl0sIHVuaXQtPm5hbWUsCisJCQkJICAgc2l6ZW9mIHVuaXQtPm5hbWUpOworCQllbHNlCisJCQlzcHJpbnRmKHVuaXQtPm5hbWUsICJQcm9jZXNzaW5nICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ1bml0LT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWJyZWFrOworCisJY2FzZSBWQ19FWFRFTlNJT05fVU5JVDoKKwkJcCA9IGJ1ZmxlbiA+PSAyMiA/IGJ1ZmZlclsyMV0gOiAwOworCQluID0gYnVmbGVuID49IDI0ICsgcCA/IGJ1ZmZlclsyMitwXSA6IDA7CisKKwkJaWYgKGJ1ZmxlbiA8IDI0ICsgcCArIG4pIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIEVYVEVOU0lPTl9VTklUIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJdW5pdCA9IGt6YWxsb2Moc2l6ZW9mICp1bml0ICsgcCArIG4sIEdGUF9LRVJORUwpOworCQlpZiAodW5pdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdW5pdC0+aWQgPSBidWZmZXJbM107CisJCXVuaXQtPnR5cGUgPSBidWZmZXJbMl07CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uZ3VpZEV4dGVuc2lvbkNvZGUsICZidWZmZXJbNF0sIDE2KTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJOdW1Db250cm9scyA9IGJ1ZmZlclsyMF07CisJCXVuaXQtPmV4dGVuc2lvbi5iTnJJblBpbnMgPQorCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzIxXSk7CisJCXVuaXQtPmV4dGVuc2lvbi5iYVNvdXJjZUlEID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0OworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmJhU291cmNlSUQsICZidWZmZXJbMjJdLCBwKTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJDb250cm9sU2l6ZSA9IGJ1ZmZlclsyMitwXTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJtQ29udHJvbHMgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQgKyBwOworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmJtQ29udHJvbHMsICZidWZmZXJbMjMrcF0sIG4pOworCisJCWlmIChidWZmZXJbMjMrcCtuXSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbMjMrcCtuXSwgdW5pdC0+bmFtZSwKKwkJCQkgICBzaXplb2YgdW5pdC0+bmFtZSk7CisJCWVsc2UKKwkJCXNwcmludGYodW5pdC0+bmFtZSwgIkV4dGVuc2lvbiAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdW5pdC0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCBhbiB1bmtub3duIENTX0lOVEVSRkFDRSAiCisJCQkiZGVzY3JpcHRvciAoJXUpXG4iLCBidWZmZXJbMl0pOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfcGFyc2VfY29udHJvbChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMgPSBkZXYtPmludGYtPmN1cl9hbHRzZXR0aW5nOworCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciA9IGFsdHMtPmV4dHJhOworCWludCBidWZsZW4gPSBhbHRzLT5leHRyYWxlbjsKKwlpbnQgcmV0OworCisJLyogUGFyc2UgdGhlIGRlZmF1bHQgYWx0ZXJuYXRlIHNldHRpbmcgb25seSwgYXMgdGhlIFVWQyBzcGVjaWZpY2F0aW9uCisJICogZGVmaW5lcyBhIHNpbmdsZSBhbHRlcm5hdGUgc2V0dGluZywgdGhlIGRlZmF1bHQgYWx0ZXJuYXRlIHNldHRpbmcKKwkgKiB6ZXJvLgorCSAqLworCisJd2hpbGUgKGJ1ZmxlbiA+IDIpIHsKKwkJaWYgKHV2Y19wYXJzZV92ZW5kb3JfY29udHJvbChkZXYsIGJ1ZmZlciwgYnVmbGVuKSB8fAorCQkgICAgYnVmZmVyWzFdICE9IFVTQl9EVF9DU19JTlRFUkZBQ0UpCisJCQlnb3RvIG5leHRfZGVzY3JpcHRvcjsKKworCQlpZiAoKHJldCA9IHV2Y19wYXJzZV9zdGFuZGFyZF9jb250cm9sKGRldiwgYnVmZmVyLCBidWZsZW4pKSA8IDApCisJCQlyZXR1cm4gcmV0OworCituZXh0X2Rlc2NyaXB0b3I6CisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJLyogQ2hlY2sgaWYgdGhlIG9wdGlvbmFsIHN0YXR1cyBlbmRwb2ludCBpcyBwcmVzZW50LiAqLworCWlmIChhbHRzLT5kZXNjLmJOdW1FbmRwb2ludHMgPT0gMSkgeworCQlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwID0gJmFsdHMtPmVuZHBvaW50WzBdOworCQlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmRlc2MgPSAmZXAtPmRlc2M7CisKKwkJaWYgKHVzYl9lbmRwb2ludF9pc19pbnRfaW4oZGVzYykgJiYKKwkJICAgIGxlMTZfdG9fY3B1KGRlc2MtPndNYXhQYWNrZXRTaXplKSA+PSA4ICYmCisJCSAgICBkZXNjLT5iSW50ZXJ2YWwgIT0gMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIGEgU3RhdHVzIGVuZHBvaW50ICIKKwkJCQkiKGFkZHIgJTAyeCkuXG4iLCBkZXNjLT5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJCWRldi0+aW50X2VwID0gZXA7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVU0IgcHJvYmUgYW5kIGRpc2Nvbm5lY3QKKyAqLworCisvKgorICogVW5yZWdpc3RlciB0aGUgdmlkZW8gZGV2aWNlcy4KKyAqLworc3RhdGljIHZvaWQgdXZjX3VucmVnaXN0ZXJfdmlkZW8oc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT52aWRlby52ZGV2KSB7CisJCWlmIChkZXYtPnZpZGVvLnZkZXYtPm1pbm9yID09IC0xKQorCQkJdmlkZW9fZGV2aWNlX3JlbGVhc2UoZGV2LT52aWRlby52ZGV2KTsKKwkJZWxzZQorCQkJdmlkZW9fdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LT52aWRlby52ZGV2KTsKKwkJZGV2LT52aWRlby52ZGV2ID0gTlVMTDsKKwl9Cit9CisKKy8qCisgKiBTY2FuIHRoZSBVVkMgZGVzY3JpcHRvcnMgdG8gbG9jYXRlIGEgY2hhaW4gc3RhcnRpbmcgYXQgYW4gT3V0cHV0IFRlcm1pbmFsCisgKiBhbmQgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIHVuaXRzOgorICoKKyAqIC0gYSBVU0IgU3RyZWFtaW5nIE91dHB1dCBUZXJtaW5hbAorICogLSB6ZXJvIG9yIG9uZSBQcm9jZXNzaW5nIFVuaXQKKyAqIC0gemVybywgb25lIG9yIG1vZGUgc2luZ2xlLWlucHV0IFNlbGVjdG9yIFVuaXRzCisgKiAtIHplcm8gb3Igb25lIG11bHRpcGxlLWlucHV0IFNlbGVjdG9yIFVuaXRzLCBwcm92aWRlZCBhbGwgaW5wdXRzIGFyZQorICogICBjb25uZWN0ZWQgdG8gaW5wdXQgdGVybWluYWxzCisgKiAtIHplcm8sIG9uZSBvciBtb2RlIHNpbmdsZS1pbnB1dCBFeHRlbnNpb24gVW5pdHMKKyAqIC0gb25lIENhbWVyYSBJbnB1dCBUZXJtaW5hbCwgb3Igb25lIG9yIG1vcmUgRXh0ZXJuYWwgdGVybWluYWxzLgorICoKKyAqIEEgc2lkZSBmb3J3YXJkIHNjYW4gaXMgbWFkZSBvbiBlYWNoIGRldGVjdGVkIGVudGl0eSB0byBjaGVjayBmb3IgYWRkaXRpb25hbAorICogZXh0ZW5zaW9uIHVuaXRzLgorICovCitzdGF0aWMgaW50IHV2Y19zY2FuX2NoYWluX2VudGl0eShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSkKK3sKKwlzd2l0Y2ggKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpKSB7CisJY2FzZSBWQ19FWFRFTlNJT05fVU5JVDoKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiIDwtIFhVICVkIiwgZW50aXR5LT5pZCk7CisKKwkJaWYgKGVudGl0eS0+ZXh0ZW5zaW9uLmJOckluUGlucyAhPSAxKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRXh0ZW5zaW9uIHVuaXQgJWQgaGFzIG1vcmUgIgorCQkJCSJ0aGFuIDEgaW5wdXQgcGluLlxuIiwgZW50aXR5LT5pZCk7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQlsaXN0X2FkZF90YWlsKCZlbnRpdHktPmNoYWluLCAmdmlkZW8tPmV4dGVuc2lvbnMpOworCQlicmVhazsKKworCWNhc2UgVkNfUFJPQ0VTU0lOR19VTklUOgorCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCIgPC0gUFUgJWQiLCBlbnRpdHktPmlkKTsKKworCQlpZiAodmlkZW8tPnByb2Nlc3NpbmcgIT0gTlVMTCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIG11bHRpcGxlICIKKwkJCQkiUHJvY2Vzc2luZyBVbml0cyBpbiBjaGFpbi5cbiIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJdmlkZW8tPnByb2Nlc3NpbmcgPSBlbnRpdHk7CisJCWJyZWFrOworCisJY2FzZSBWQ19TRUxFQ1RPUl9VTklUOgorCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCIgPC0gU1UgJWQiLCBlbnRpdHktPmlkKTsKKworCQkvKiBTaW5nbGUtaW5wdXQgc2VsZWN0b3IgdW5pdHMgYXJlIGlnbm9yZWQuICovCisJCWlmIChlbnRpdHktPnNlbGVjdG9yLmJOckluUGlucyA9PSAxKQorCQkJYnJlYWs7CisKKwkJaWYgKHZpZGVvLT5zZWxlY3RvciAhPSBOVUxMKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgbXVsdGlwbGUgU2VsZWN0b3IgIgorCQkJCSJVbml0cyBpbiBjaGFpbi5cbiIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJdmlkZW8tPnNlbGVjdG9yID0gZW50aXR5OworCQlicmVhazsKKworCWNhc2UgSVRUX1ZFTkRPUl9TUEVDSUZJQzoKKwljYXNlIElUVF9DQU1FUkE6CisJY2FzZSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUOgorCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCIgPC0gSVQgJWRcbiIsIGVudGl0eS0+aWQpOworCisJCWxpc3RfYWRkX3RhaWwoJmVudGl0eS0+Y2hhaW4sICZ2aWRlby0+aXRlcm1zKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiVW5zdXBwb3J0ZWQgZW50aXR5IHR5cGUgIgorCQkJIjB4JTA0eCBmb3VuZCBpbiBjaGFpbi5cbiIsIFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y19zY2FuX2NoYWluX2ZvcndhcmQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHksIHN0cnVjdCB1dmNfZW50aXR5ICpwcmV2KQoreworCXN0cnVjdCB1dmNfZW50aXR5ICpmb3J3YXJkOworCWludCBmb3VuZDsKKworCS8qIEZvcndhcmQgc2NhbiAqLworCWZvcndhcmQgPSBOVUxMOworCWZvdW5kID0gMDsKKworCXdoaWxlICgxKSB7CisJCWZvcndhcmQgPSB1dmNfZW50aXR5X2J5X3JlZmVyZW5jZSh2aWRlby0+ZGV2LCBlbnRpdHktPmlkLAorCQkJZm9yd2FyZCk7CisJCWlmIChmb3J3YXJkID09IE5VTEwpCisJCQlicmVhazsKKworCQlpZiAoVVZDX0VOVElUWV9UWVBFKGZvcndhcmQpICE9IFZDX0VYVEVOU0lPTl9VTklUIHx8CisJCSAgICBmb3J3YXJkID09IHByZXYpCisJCQljb250aW51ZTsKKworCQlpZiAoZm9yd2FyZC0+ZXh0ZW5zaW9uLmJOckluUGlucyAhPSAxKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRXh0ZW5zaW9uIHVuaXQgJWQgaGFzIgorCQkJCSJtb3JlIHRoYW4gMSBpbnB1dCBwaW4uXG4iLCBlbnRpdHktPmlkKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCWxpc3RfYWRkX3RhaWwoJmZvcndhcmQtPmNoYWluLCAmdmlkZW8tPmV4dGVuc2lvbnMpOworCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKSB7CisJCQlpZiAoIWZvdW5kKQorCQkJCXByaW50aygiICgtPiBYVSIpOworCisJCQlwcmludGsoIiAlZCIsIGZvcndhcmQtPmlkKTsKKwkJCWZvdW5kID0gMTsKKwkJfQorCX0KKwlpZiAoZm91bmQpCisJCXByaW50aygiKSIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3NjYW5fY2hhaW5fYmFja3dhcmQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHkpCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKnRlcm07CisJaW50IGlkID0gLTEsIGk7CisKKwlzd2l0Y2ggKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpKSB7CisJY2FzZSBWQ19FWFRFTlNJT05fVU5JVDoKKwkJaWQgPSBlbnRpdHktPmV4dGVuc2lvbi5iYVNvdXJjZUlEWzBdOworCQlicmVhazsKKworCWNhc2UgVkNfUFJPQ0VTU0lOR19VTklUOgorCQlpZCA9IGVudGl0eS0+cHJvY2Vzc2luZy5iU291cmNlSUQ7CisJCWJyZWFrOworCisJY2FzZSBWQ19TRUxFQ1RPUl9VTklUOgorCQkvKiBTaW5nbGUtaW5wdXQgc2VsZWN0b3IgdW5pdHMgYXJlIGlnbm9yZWQuICovCisJCWlmIChlbnRpdHktPnNlbGVjdG9yLmJOckluUGlucyA9PSAxKSB7CisJCQlpZCA9IGVudGl0eS0+c2VsZWN0b3IuYmFTb3VyY2VJRFswXTsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiIDwtIElUIik7CisKKwkJdmlkZW8tPnNlbGVjdG9yID0gZW50aXR5OworCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5zZWxlY3Rvci5iTnJJblBpbnM7ICsraSkgeworCQkJaWQgPSBlbnRpdHktPnNlbGVjdG9yLmJhU291cmNlSURbaV07CisJCQl0ZXJtID0gdXZjX2VudGl0eV9ieV9pZCh2aWRlby0+ZGV2LCBpZCk7CisJCQlpZiAodGVybSA9PSBOVUxMIHx8ICFVVkNfRU5USVRZX0lTX0lURVJNKHRlcm0pKSB7CisJCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIlNlbGVjdG9yIHVuaXQgJWQgIgorCQkJCQkiaW5wdXQgJWQgaXNuJ3QgY29ubmVjdGVkIHRvIGFuICIKKwkJCQkJImlucHV0IHRlcm1pbmFsXG4iLCBlbnRpdHktPmlkLCBpKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisKKwkJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQkJcHJpbnRrKCIgJWQiLCB0ZXJtLT5pZCk7CisKKwkJCWxpc3RfYWRkX3RhaWwoJnRlcm0tPmNoYWluLCAmdmlkZW8tPml0ZXJtcyk7CisJCQl1dmNfc2Nhbl9jaGFpbl9mb3J3YXJkKHZpZGVvLCB0ZXJtLCBlbnRpdHkpOworCQl9CisKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiXG4iKTsKKworCQlpZCA9IDA7CisJCWJyZWFrOworCX0KKworCXJldHVybiBpZDsKK30KKworc3RhdGljIGludCB1dmNfc2Nhbl9jaGFpbihzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSwgKnByZXY7CisJaW50IGlkOworCisJZW50aXR5ID0gdmlkZW8tPm90ZXJtOworCXV2Y190cmFjZShVVkNfVFJBQ0VfUFJPQkUsICJTY2FubmluZyBVVkMgY2hhaW46IE9UICVkIiwgZW50aXR5LT5pZCk7CisJaWQgPSBlbnRpdHktPm91dHB1dC5iU291cmNlSUQ7CisJd2hpbGUgKGlkICE9IDApIHsKKwkJcHJldiA9IGVudGl0eTsKKwkJZW50aXR5ID0gdXZjX2VudGl0eV9ieV9pZCh2aWRlby0+ZGV2LCBpZCk7CisJCWlmIChlbnRpdHkgPT0gTlVMTCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIHJlZmVyZW5jZSB0byAiCisJCQkJInVua25vd24gZW50aXR5ICVkLlxuIiwgaWQpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJLyogUHJvY2VzcyBlbnRpdHkgKi8KKwkJaWYgKHV2Y19zY2FuX2NoYWluX2VudGl0eSh2aWRlbywgZW50aXR5KSA8IDApCisJCQlyZXR1cm4gLTE7CisKKwkJLyogRm9yd2FyZCBzY2FuICovCisJCWlmICh1dmNfc2Nhbl9jaGFpbl9mb3J3YXJkKHZpZGVvLCBlbnRpdHksIHByZXYpIDwgMCkKKwkJCXJldHVybiAtMTsKKworCQkvKiBTdG9wIHdoZW4gYSB0ZXJtaW5hbCBpcyBmb3VuZC4gKi8KKwkJaWYgKCFVVkNfRU5USVRZX0lTX1VOSVQoZW50aXR5KSkKKwkJCWJyZWFrOworCisJCS8qIEJhY2t3YXJkIHNjYW4gKi8KKwkJaWQgPSB1dmNfc2Nhbl9jaGFpbl9iYWNrd2FyZCh2aWRlbywgZW50aXR5KTsKKwkJaWYgKGlkIDwgMCkKKwkJCXJldHVybiBpZDsKKwl9CisKKwkvKiBJbml0aWFsaXplIHRoZSB2aWRlbyBidWZmZXJzIHF1ZXVlLiAqLworCXV2Y19xdWV1ZV9pbml0KCZ2aWRlby0+cXVldWUpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZWdpc3RlciB0aGUgdmlkZW8gZGV2aWNlcy4KKyAqCisgKiBUaGUgZHJpdmVyIGN1cnJlbnRseSBzdXBwb3J0cyBhIHNpbmdsZSB2aWRlbyBkZXZpY2UgcGVyIGNvbnRyb2wgaW50ZXJmYWNlCisgKiBvbmx5LiBUaGUgdGVybWluYWwgYW5kIHVuaXRzIG11c3QgbWF0Y2ggdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6CisgKgorICogSVRUX0NBTUVSQSAtPiBWQ19QUk9DRVNTSU5HX1VOSVQgLT4gVkNfRVhURU5TSU9OX1VOSVR7MCxufSAtPiBUVF9TVFJFQU1JTkcKKyAqCisgKiBUaGUgRXh0ZW5zaW9uIFVuaXRzLCBpZiBwcmVzZW50LCBtdXN0IGhhdmUgYSBzaW5nbGUgaW5wdXQgcGluLiBUaGUKKyAqIFByb2Nlc3NpbmcgVW5pdCBhbmQgRXh0ZW5zaW9uIFVuaXRzIGNhbiBiZSBpbiBhbnkgb3JkZXIuIEFkZGl0aW9uYWwKKyAqIEV4dGVuc2lvbiBVbml0cyBjb25uZWN0ZWQgdG8gdGhlIG1haW4gY2hhaW4gYXMgc2luZ2xlLXVuaXQgYnJhbmNoZXMgYXJlCisgKiBhbHNvIHN1cHBvcnRlZC4KKyAqLworc3RhdGljIGludCB1dmNfcmVnaXN0ZXJfdmlkZW8oc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2OworCXN0cnVjdCB1dmNfZW50aXR5ICp0ZXJtOworCWludCBmb3VuZCA9IDAsIHJldDsKKworCS8qIENoZWNrIGlmIHRoZSBjb250cm9sIGludGVyZmFjZSBtYXRjaGVzIHRoZSBzdHJ1Y3R1cmUgd2UgZXhwZWN0LiAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkodGVybSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbWluZzsKKworCQlpZiAoVVZDX0VOVElUWV9UWVBFKHRlcm0pICE9IFRUX1NUUkVBTUlORykKKwkJCWNvbnRpbnVlOworCisJCW1lbXNldCgmZGV2LT52aWRlbywgMCwgc2l6ZW9mIGRldi0+dmlkZW8pOworCQltdXRleF9pbml0KCZkZXYtPnZpZGVvLmN0cmxfbXV0ZXgpOworCQlJTklUX0xJU1RfSEVBRCgmZGV2LT52aWRlby5pdGVybXMpOworCQlJTklUX0xJU1RfSEVBRCgmZGV2LT52aWRlby5leHRlbnNpb25zKTsKKwkJZGV2LT52aWRlby5vdGVybSA9IHRlcm07CisJCWRldi0+dmlkZW8uZGV2ID0gZGV2OworCQlpZiAodXZjX3NjYW5fY2hhaW4oJmRldi0+dmlkZW8pIDwgMCkKKwkJCWNvbnRpbnVlOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnkoc3RyZWFtaW5nLCAmZGV2LT5zdHJlYW1pbmcsIGxpc3QpIHsKKwkJCWlmIChzdHJlYW1pbmctPmhlYWRlci5iVGVybWluYWxMaW5rID09IHRlcm0tPmlkKSB7CisJCQkJZGV2LT52aWRlby5zdHJlYW1pbmcgPSBzdHJlYW1pbmc7CisJCQkJZm91bmQgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJaWYgKGZvdW5kKQorCQkJYnJlYWs7CisJfQorCisJaWYgKCFmb3VuZCkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIk5vIHZhbGlkIHZpZGVvIGNoYWluIGZvdW5kLlxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiRm91bmQgYSB2YWxpZCB2aWRlbyBjaGFpbiAoIik7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkodGVybSwgJmRldi0+dmlkZW8uaXRlcm1zLCBjaGFpbikgeworCQkJcHJpbnRrKCIlZCIsIHRlcm0tPmlkKTsKKwkJCWlmICh0ZXJtLT5jaGFpbi5uZXh0ICE9ICZkZXYtPnZpZGVvLml0ZXJtcykKKwkJCQlwcmludGsoIiwiKTsKKwkJfQorCQlwcmludGsoIiAtPiAlZCkuXG4iLCBkZXYtPnZpZGVvLm90ZXJtLT5pZCk7CisJfQorCisJLyogSW5pdGlhbGl6ZSB0aGUgc3RyZWFtaW5nIGludGVyZmFjZSB3aXRoIGRlZmF1bHQgc3RyZWFtaW5nCisJICogcGFyYW1ldGVycy4KKwkgKi8KKwlpZiAoKHJldCA9IHV2Y192aWRlb19pbml0KCZkZXYtPnZpZGVvKSkgPCAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9FUlIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZGV2aWNlICIKKwkJCSIoJWQpLlxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwkvKiBSZWdpc3RlciB0aGUgZGV2aWNlIHdpdGggVjRMLiAqLworCXZkZXYgPSB2aWRlb19kZXZpY2VfYWxsb2MoKTsKKwlpZiAodmRldiA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwkvKiBXZSBhbHJlYWR5IGhvbGQgYSByZWZlcmVuY2UgdG8gZGV2LT51ZGV2LiBUaGUgdmlkZW8gZGV2aWNlIHdpbGwgYmUKKwkgKiB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZSByZWZlcmVuY2UgaXMgcmVsZWFzZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8KKwkgKiBnZXQgYW5vdGhlciBvbmUuCisJICovCisJdmRldi0+ZGV2ID0gJmRldi0+aW50Zi0+ZGV2OworCXZkZXYtPnR5cGUgPSAwOworCXZkZXYtPnR5cGUyID0gMDsKKwl2ZGV2LT5taW5vciA9IC0xOworCXZkZXYtPmZvcHMgPSAmdXZjX2ZvcHM7CisJdmRldi0+cmVsZWFzZSA9IHZpZGVvX2RldmljZV9yZWxlYXNlOworCXN0cm5jcHkodmRldi0+bmFtZSwgZGV2LT5uYW1lLCBzaXplb2YgdmRldi0+bmFtZSk7CisKKwkvKiBTZXQgdGhlIGRyaXZlciBkYXRhIGJlZm9yZSBjYWxsaW5nIHZpZGVvX3JlZ2lzdGVyX2RldmljZSwgb3RoZXJ3aXNlCisJICogdXZjX3Y0bDJfb3BlbiBtaWdodCByYWNlIHVzLgorCSAqCisJICogRklYTUU6IHVzYl9zZXRfaW50ZmRhdGEgaGFzbid0IGJlZW4gY2FsbGVkIHNvIGZhci4gSXMgdGhhdCBhCisJICogCSAgcHJvYmxlbSA/IERvZXMgYW55IGZ1bmN0aW9uIHdoaWNoIGNvdWxkIGJlIGNhbGxlZCBoZXJlIGdldAorCSAqIAkgIGEgcG9pbnRlciB0byB0aGUgdXNiX2ludGVyZmFjZSA/CisJICovCisJZGV2LT52aWRlby52ZGV2ID0gdmRldjsKKwl2aWRlb19zZXRfZHJ2ZGF0YSh2ZGV2LCAmZGV2LT52aWRlbyk7CisKKwlpZiAodmlkZW9fcmVnaXN0ZXJfZGV2aWNlKHZkZXYsIFZGTF9UWVBFX0dSQUJCRVIsIC0xKSA8IDApIHsKKwkJZGV2LT52aWRlby52ZGV2ID0gTlVMTDsKKwkJdmlkZW9fZGV2aWNlX3JlbGVhc2UodmRldik7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIERlbGV0ZSB0aGUgVVZDIGRldmljZS4KKyAqCisgKiBDYWxsZWQgYnkgdGhlIGtlcm5lbCB3aGVuIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGUgdXZjX2RldmljZSBzdHJ1Y3R1cmUKKyAqIGlzIHJlbGVhc2VkLgorICoKKyAqIFVucmVnaXN0ZXJpbmcgdGhlIHZpZGVvIGRldmljZXMgaXMgZG9uZSBoZXJlIGJlY2F1c2UgZXZlcnkgb3BlbmVkIGluc3RhbmNlCisgKiBtdXN0IGJlIGNsb3NlZCBiZWZvcmUgdGhlIGRldmljZSBjYW4gYmUgdW5yZWdpc3RlcmVkLiBBbiBhbHRlcm5hdGl2ZSB3b3VsZAorICogaGF2ZSBiZWVuIHRvIHVzZSBhbm90aGVyIHJlZmVyZW5jZSBjb3VudCBmb3IgdXZjX3Y0bDJfb3Blbi91dmNfcmVsZWFzZSwgYW5kCisgKiB1bnJlZ2lzdGVyIHRoZSB2aWRlbyBkZXZpY2VzIG9uIGRpc2Nvbm5lY3Qgd2hlbiB0aGF0IHJlZmVyZW5jZSBjb3VudCBkcm9wcworICogdG8gemVyby4KKyAqCisgKiBBcyB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZnRlciBvciBkdXJpbmcgZGlzY29ubmVjdCgpLCBhbGwgVVJCcyBoYXZlCisgKiBhbHJlYWR5IGJlZW4gY2FuY2VsZWQgYnkgdGhlIFVTQiBjb3JlLiBUaGVyZSBpcyBubyBuZWVkIHRvIGtpbGwgdGhlCisgKiBpbnRlcnJ1cHQgVVJCIG1hbnVhbGx5LgorICovCit2b2lkIHV2Y19kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpCit7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgdXZjX2RldmljZSwga3JlZik7CisJc3RydWN0IGxpc3RfaGVhZCAqcCwgKm47CisKKwkvKiBVbnJlZ2lzdGVyIHRoZSB2aWRlbyBkZXZpY2UgKi8KKwl1dmNfdW5yZWdpc3Rlcl92aWRlbyhkZXYpOworCXVzYl9wdXRfaW50ZihkZXYtPmludGYpOworCXVzYl9wdXRfZGV2KGRldi0+dWRldik7CisKKwl1dmNfc3RhdHVzX2NsZWFudXAoZGV2KTsKKwl1dmNfY3RybF9jbGVhbnVwX2RldmljZShkZXYpOworCisJbGlzdF9mb3JfZWFjaF9zYWZlKHAsIG4sICZkZXYtPmVudGl0aWVzKSB7CisJCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJCWVudGl0eSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHV2Y19lbnRpdHksIGxpc3QpOworCQlrZnJlZShlbnRpdHkpOworCX0KKworCWxpc3RfZm9yX2VhY2hfc2FmZShwLCBuLCAmZGV2LT5zdHJlYW1pbmcpIHsKKwkJc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbWluZzsKKwkJc3RyZWFtaW5nID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgdXZjX3N0cmVhbWluZywgbGlzdCk7CisJCXVzYl9kcml2ZXJfcmVsZWFzZV9pbnRlcmZhY2UoJnV2Y19kcml2ZXIuZHJpdmVyLAorCQkJc3RyZWFtaW5nLT5pbnRmKTsKKwkJdXNiX3B1dF9pbnRmKHN0cmVhbWluZy0+aW50Zik7CisJCWtmcmVlKHN0cmVhbWluZy0+Zm9ybWF0KTsKKwkJa2ZyZWUoc3RyZWFtaW5nLT5oZWFkZXIuYm1hQ29udHJvbHMpOworCQlrZnJlZShzdHJlYW1pbmcpOworCX0KKworCWtmcmVlKGRldik7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAorCQkgICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldjsKKwlpbnQgcmV0OworCisJaWYgKGlkLT5pZFZlbmRvciAmJiBpZC0+aWRQcm9kdWN0KQorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1BST0JFLCAiUHJvYmluZyBrbm93biBVVkMgZGV2aWNlICVzICIKKwkJCQkiKCUwNHg6JTA0eClcbiIsIHVkZXYtPmRldnBhdGgsIGlkLT5pZFZlbmRvciwKKwkJCQlpZC0+aWRQcm9kdWN0KTsKKwllbHNlCisJCXV2Y190cmFjZShVVkNfVFJBQ0VfUFJPQkUsICJQcm9iaW5nIGdlbmVyaWMgVVZDIGRldmljZSAlc1xuIiwKKwkJCQl1ZGV2LT5kZXZwYXRoKTsKKworCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIGRldmljZSBhbmQgaW5pdGlhbGl6ZSBpdCAqLworCWlmICgoZGV2ID0ga3phbGxvYyhzaXplb2YgKmRldiwgR0ZQX0tFUk5FTCkpID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJSU5JVF9MSVNUX0hFQUQoJmRldi0+ZW50aXRpZXMpOworCUlOSVRfTElTVF9IRUFEKCZkZXYtPnN0cmVhbWluZyk7CisJa3JlZl9pbml0KCZkZXYtPmtyZWYpOworCisJZGV2LT51ZGV2ID0gdXNiX2dldF9kZXYodWRldik7CisJZGV2LT5pbnRmID0gdXNiX2dldF9pbnRmKGludGYpOworCWRldi0+aW50Zm51bSA9IGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXI7CisJZGV2LT5xdWlya3MgPSBpZC0+ZHJpdmVyX2luZm8gfCB1dmNfcXVpcmtzX3BhcmFtOworCisJaWYgKHVkZXYtPnByb2R1Y3QgIT0gTlVMTCkKKwkJc3RybmNweShkZXYtPm5hbWUsIHVkZXYtPnByb2R1Y3QsIHNpemVvZiBkZXYtPm5hbWUpOworCWVsc2UKKwkJc25wcmludGYoZGV2LT5uYW1lLCBzaXplb2YgZGV2LT5uYW1lLAorCQkJIlVWQyBDYW1lcmEgKCUwNHg6JTA0eCkiLAorCQkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvciksCisJCQlsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpOworCisJLyogUGFyc2UgdGhlIFZpZGVvIENsYXNzIGNvbnRyb2wgZGVzY3JpcHRvciAqLworCWlmICh1dmNfcGFyc2VfY29udHJvbChkZXYpIDwgMCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1BST0JFLCAiVW5hYmxlIHRvIHBhcnNlIFVWQyAiCisJCQkiZGVzY3JpcHRvcnMuXG4iKTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIkZvdW5kIFVWQyAldS4lMDJ1IGRldmljZSAlcyAoJTA0eDolMDR4KVxuIiwKKwkJZGV2LT51dmNfdmVyc2lvbiA+PiA4LCBkZXYtPnV2Y192ZXJzaW9uICYgMHhmZiwKKwkJdWRldi0+cHJvZHVjdCA/IHVkZXYtPnByb2R1Y3QgOiAiPHVubmFtZWQ+IiwKKwkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvciksCisJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSk7CisKKwlpZiAodXZjX3F1aXJrc19wYXJhbSAhPSAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiRm9yY2luZyBkZXZpY2UgcXVpcmtzIDB4JXggYnkgbW9kdWxlICIKKwkJCSJwYXJhbWV0ZXIgZm9yIHRlc3RpbmcgcHVycG9zZS5cbiIsIHV2Y19xdWlya3NfcGFyYW0pOworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIlBsZWFzZSByZXBvcnQgcmVxdWlyZWQgcXVpcmtzIHRvIHRoZSAiCisJCQkibGludXgtdXZjLWRldmVsIG1haWxpbmcgbGlzdC5cbiIpOworCX0KKworCS8qIEluaXRpYWxpemUgY29udHJvbHMgKi8KKwlpZiAodXZjX2N0cmxfaW5pdF9kZXZpY2UoZGV2KSA8IDApCisJCWdvdG8gZXJyb3I7CisKKwkvKiBSZWdpc3RlciB0aGUgdmlkZW8gZGV2aWNlcyAqLworCWlmICh1dmNfcmVnaXN0ZXJfdmlkZW8oZGV2KSA8IDApCisJCWdvdG8gZXJyb3I7CisKKwkvKiBTYXZlIG91ciBkYXRhIHBvaW50ZXIgaW4gdGhlIGludGVyZmFjZSBkYXRhICovCisJdXNiX3NldF9pbnRmZGF0YShpbnRmLCBkZXYpOworCisJLyogSW5pdGlhbGl6ZSB0aGUgaW50ZXJydXB0IFVSQiAqLworCWlmICgocmV0ID0gdXZjX3N0YXR1c19pbml0KGRldikpIDwgMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIlVuYWJsZSB0byBpbml0aWFsaXplIHRoZSBzdGF0dXMgIgorCQkJImVuZHBvaW50ICglZCksIHN0YXR1cyBpbnRlcnJ1cHQgd2lsbCBub3QgYmUgIgorCQkJInN1cHBvcnRlZC5cbiIsIHJldCk7CisJfQorCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9QUk9CRSwgIlVWQyBkZXZpY2UgaW5pdGlhbGl6ZWQuXG4iKTsKKwlyZXR1cm4gMDsKKworZXJyb3I6CisJa3JlZl9wdXQoJmRldi0+a3JlZiwgdXZjX2RlbGV0ZSk7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQoreworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpOworCisJLyogU2V0IHRoZSBVU0IgaW50ZXJmYWNlIGRhdGEgdG8gTlVMTC4gVGhpcyBjYW4gYmUgZG9uZSBvdXRzaWRlIHRoZQorCSAqIGxvY2ssIGFzIHRoZXJlJ3Mgbm8gb3RoZXIgcmVhZGVyLgorCSAqLworCXVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7CisKKwlpZiAoaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZVN1YkNsYXNzID09IFNDX1ZJREVPU1RSRUFNSU5HKQorCQlyZXR1cm47CisKKwkvKiB1dmNfdjRsMl9vcGVuKCkgbWlnaHQgcmFjZSB1dmNfZGlzY29ubmVjdCgpLiBBIHN0YXRpYyBkcml2ZXItd2lkZQorCSAqIGxvY2sgaXMgbmVlZGVkIHRvIHByZXZlbnQgdXZjX2Rpc2Nvbm5lY3QgZnJvbSByZWxlYXNpbmcgaXRzCisJICogcmVmZXJlbmNlIHRvIHRoZSB1dmNfZGV2aWNlIGluc3RhbmNlIGFmdGVyIHV2Y192NGwyX29wZW4oKSByZWNlaXZlZAorCSAqIHRoZSBwb2ludGVyIHRvIHRoZSBkZXZpY2UgKHZpZGVvX2RldmRhdGEpIGJ1dCBiZWZvcmUgaXQgZ290IHRoZQorCSAqIGNoYW5jZSB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50IChrcmVmX2dldCkuCisJICovCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKworCWRldi0+c3RhdGUgfD0gVVZDX0RFVl9ESVNDT05ORUNURUQ7CisJa3JlZl9wdXQoJmRldi0+a3JlZiwgdXZjX2RlbGV0ZSk7CisKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIHBtX21lc3NhZ2VfdCBtZXNzYWdlKQoreworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVVNQRU5ELCAiU3VzcGVuZGluZyBpbnRlcmZhY2UgJXVcbiIsCisJCWludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCisJLyogQ29udHJvbHMgYXJlIGNhY2hlZCBvbiB0aGUgZmx5IHNvIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSBzYXZlZC4gKi8KKwlpZiAoaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZVN1YkNsYXNzID09IFNDX1ZJREVPQ09OVFJPTCkKKwkJcmV0dXJuIHV2Y19zdGF0dXNfc3VzcGVuZChkZXYpOworCisJaWYgKGRldi0+dmlkZW8uc3RyZWFtaW5nLT5pbnRmICE9IGludGYpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVVNQRU5ELCAiU3VzcGVuZDogdmlkZW8gc3RyZWFtaW5nIFVTQiAiCisJCQkJImludGVyZmFjZSBtaXNtYXRjaC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gdXZjX3ZpZGVvX3N1c3BlbmQoJmRldi0+dmlkZW8pOworfQorCitzdGF0aWMgaW50IHV2Y19yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCit7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7CisJaW50IHJldDsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfU1VTUEVORCwgIlJlc3VtaW5nIGludGVyZmFjZSAldVxuIiwKKwkJaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisKKwlpZiAoaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZVN1YkNsYXNzID09IFNDX1ZJREVPQ09OVFJPTCkgeworCQlpZiAoKHJldCA9IHV2Y19jdHJsX3Jlc3VtZV9kZXZpY2UoZGV2KSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXR1cm4gdXZjX3N0YXR1c19yZXN1bWUoZGV2KTsKKwl9CisKKwlpZiAoZGV2LT52aWRlby5zdHJlYW1pbmctPmludGYgIT0gaW50ZikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NVU1BFTkQsICJSZXN1bWU6IHZpZGVvIHN0cmVhbWluZyBVU0IgIgorCQkJCSJpbnRlcmZhY2UgbWlzbWF0Y2guXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIHV2Y192aWRlb19yZXN1bWUoJmRldi0+dmlkZW8pOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cAorICovCisKKy8qCisgKiBUaGUgTG9naXRlY2ggY2FtZXJhcyBsaXN0ZWQgYmVsb3cgaGF2ZSB0aGVpciBpbnRlcmZhY2UgY2xhc3Mgc2V0IHRvCisgKiBWRU5ET1JfU1BFQyBiZWNhdXNlIHRoZXkgZG9uJ3QgYW5ub3VuY2UgdGhlbXNlbHZlcyBhcyBVVkMgZGV2aWNlcywgZXZlbgorICogdGhvdWdoIHRoZXkgYXJlIGNvbXBsaWFudC4KKyAqLworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIHV2Y19pZHNbXSA9IHsKKwkvKiBBTGkgTTU2MDYgKENsZXZvIE01NDBTUikgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0MDIsCisJICAuaWRQcm9kdWN0CQk9IDB4NTYwNiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBDcmVhdGl2ZSBMaXZlISBPcHRpYSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQxZSwKKwkgIC5pZFByb2R1Y3QJCT0gMHg0MDU3LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIE1pY3Jvc29mdCBMaWZlY2FtIE5YLTYwMDAgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NWUsCisJICAuaWRQcm9kdWN0CQk9IDB4MDBmOCwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBNaWNyb3NvZnQgTGlmZWNhbSBWWC03MDAwICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDVlLAorCSAgLmlkUHJvZHVjdAkJPSAweDA3MjMsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gRnVzaW9uICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzEsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIE9yYml0IE1QICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzIsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIFBybyBmb3IgTm90ZWJvb2sgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjMywKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gUHJvIDUwMDAgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjNSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gT0VNIERlbGwgTm90ZWJvb2sgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjNiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gT0VNIENpc2NvIFZUIENhbWVyYSBJSSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGM3LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBBcHBsZSBCdWlsdC1JbiBpU2lnaHQgKi8KKwl7IC5tYXRjaF9mbGFncyAgICAgICAgICA9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDVhYywKKwkgIC5pZFByb2R1Y3QJCT0gMHg4NTAxLAorCSAgLmJJbnRlcmZhY2VDbGFzcyAgICAgID0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcyAgID0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wgICA9IDAsCisJICAuZHJpdmVyX2luZm8gCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVgKKwkJCQl8IFVWQ19RVUlSS19CVUlMVElOX0lTSUdIVCB9LAorCS8qIEdlbmVzeXMgTG9naWMgVVNCIDIuMCBQQyBDYW1lcmEgKi8KKwl7IC5tYXRjaF9mbGFncyAgICAgICAgICA9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yICAgICAgICAgICAgID0gMHgwNWUzLAorCSAgLmlkUHJvZHVjdCAgICAgICAgICAgID0gMHgwNTA1LAorCSAgLmJJbnRlcmZhY2VDbGFzcyAgICAgID0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcyAgID0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wgICA9IDAsCisJICAuZHJpdmVyX2luZm8gICAgICAgICAgPSBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRCB9LAorCS8qIFNpbGljb24gTW90aW9uIFNNMzcxICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwOTBjLAorCSAgLmlkUHJvZHVjdAkJPSAweGIzNzEsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogTVQ2MjI3ICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwZThkLAorCSAgLmlkUHJvZHVjdAkJPSAweDAwMDQsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogU3ludGVrIChIUCBTcGFydGFuKSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MTc0ZiwKKwkgIC5pZFByb2R1Y3QJCT0gMHg1MjEyLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQgfSwKKwkvKiBTeW50ZWsgKEFzdXMgVTNTKSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MTc0ZiwKKwkgIC5pZFByb2R1Y3QJCT0gMHg4YTMzLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQgfSwKKwkvKiBFY2FtbSBQaWNvIGlNYWdlICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgxOGNkLAorCSAgLmlkUHJvZHVjdAkJPSAweGNhZmUsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfRVhUUkFGSUVMRFMgfSwKKwkvKiBCb2RlbGluIFByb1Njb3BlSFIgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZfSEkKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgxOWFiLAorCSAgLmlkUHJvZHVjdAkJPSAweDEwMDAsCisJICAuYmNkRGV2aWNlX2hpCQk9IDB4MDEyNiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19TVEFUVVNfSU5URVJWQUwgfSwKKwkvKiBTaUdtYSBNaWNybyBVU0IgV2ViIENhbWVyYSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MWM0ZiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgzMDAwLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWAorCQkJCXwgVVZDX1FVSVJLX0lHTk9SRV9TRUxFQ1RPUl9VTklUfSwKKwkvKiBBY2VyIE9FTSBXZWJjYW0gLSBVbmtub3duIHZlbmRvciAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4NTk4NiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMTAwLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIFBhY2thcmQgQmVsbCBPRU0gV2ViY2FtICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHg1OTg2LAorCSAgLmlkUHJvZHVjdAkJPSAweDAxMDEsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogQWNlciBDcnlzdGFsIEV5ZSB3ZWJjYW0gKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDU5ODYsCisJICAuaWRQcm9kdWN0CQk9IDB4MDEwMiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBBY2VyIE9yYmlDYW0gLSBVbmtub3duIHZlbmRvciAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4NTk4NiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMjAwLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIEdlbmVyaWMgVVNCIFZpZGVvIENsYXNzICovCisJeyBVU0JfSU5URVJGQUNFX0lORk8oVVNCX0NMQVNTX1ZJREVPLCAxLCAwKSB9LAorCXt9Cit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgdXZjX2lkcyk7CisKK3N0cnVjdCB1dmNfZHJpdmVyIHV2Y19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUJCT0gInV2Y3ZpZGVvIiwKKwkJLnByb2JlCQk9IHV2Y19wcm9iZSwKKwkJLmRpc2Nvbm5lY3QJPSB1dmNfZGlzY29ubmVjdCwKKwkJLnN1c3BlbmQJPSB1dmNfc3VzcGVuZCwKKwkJLnJlc3VtZQkJPSB1dmNfcmVzdW1lLAorCQkuaWRfdGFibGUJPSB1dmNfaWRzLAorCQkuc3VwcG9ydHNfYXV0b3N1c3BlbmQgPSAxLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCB1dmNfaW5pdCh2b2lkKQoreworCWludCByZXN1bHQ7CisKKwlJTklUX0xJU1RfSEVBRCgmdXZjX2RyaXZlci5kZXZpY2VzKTsKKwlJTklUX0xJU1RfSEVBRCgmdXZjX2RyaXZlci5jb250cm9scyk7CisJbXV0ZXhfaW5pdCgmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKwltdXRleF9pbml0KCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCisJdXZjX2N0cmxfaW5pdCgpOworCisJcmVzdWx0ID0gdXNiX3JlZ2lzdGVyKCZ1dmNfZHJpdmVyLmRyaXZlcik7CisJaWYgKHJlc3VsdCA9PSAwKQorCQlwcmludGsoS0VSTl9JTkZPIERSSVZFUl9ERVNDICIgKCIgRFJJVkVSX1ZFUlNJT04gIilcbiIpOworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCB1dmNfY2xlYW51cCh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyKCZ1dmNfZHJpdmVyLmRyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KHV2Y19pbml0KTsKK21vZHVsZV9leGl0KHV2Y19jbGVhbnVwKTsKKworbW9kdWxlX3BhcmFtX25hbWVkKHF1aXJrcywgdXZjX3F1aXJrc19wYXJhbSwgdWludCwgU19JUlVHT3xTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MocXVpcmtzLCAiRm9yY2VkIGRldmljZSBxdWlya3MiKTsKK21vZHVsZV9wYXJhbV9uYW1lZCh0cmFjZSwgdXZjX3RyYWNlX3BhcmFtLCB1aW50LCBTX0lSVUdPfFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyh0cmFjZSwgIlRyYWNlIGxldmVsIGJpdG1hc2siKTsKKworTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfVkVSU0lPTihEUklWRVJfVkVSU0lPTik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfaXNpZ2h0LmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfaXNpZ2h0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdiZGVmZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19pc2lnaHQuYwpAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqICAgICAgdXZjX2lzaWdodC5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIGlTaWdodCBzdXBwb3J0CisgKgorICoJQ29weXJpZ2h0IChDKSAyMDA2LTIwMDcKKyAqCQlJdmFuIE4uIFpsYXRldiA8Y29udGFjdEBpLW56Lm5ldD4KKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworLyogQnVpbHQtaW4gaVNpZ2h0IHdlYmNhbXMgaW1wbGVtZW50cyBtb3N0IG9mIFVWQyAxLjAgZXhjZXB0IGEKKyAqIGRpZmZlcmVudCBwYWNrZXQgZm9ybWF0LiBJbnN0ZWFkIG9mIHNlbmRpbmcgYSBoZWFkZXIgYXQgdGhlCisgKiBiZWdpbm5pbmcgb2YgZWFjaCBpc29jaHJvbm91cyB0cmFuc2ZlciBwYXlsb2FkLCB0aGUgd2ViY2FtIHNlbmRzIGEKKyAqIHNpbmdsZSBoZWFkZXIgcGVyIGltYWdlIChvbiBpdHMgb3duIGluIGEgcGFja2V0KSwgZm9sbG93ZWQgYnkKKyAqIHBhY2tldHMgY29udGFpbmluZyBkYXRhIG9ubHkuCisgKgorICogT2Zmc2V0ICAgU2l6ZSAoYnl0ZXMpCURlc2NyaXB0aW9uCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIDB4MDAgCTEgICAJSGVhZGVyIGxlbmd0aAorICogMHgwMSAJMSAgIAlGbGFncyAoVVZDLWNvbXBsaWFudCkKKyAqIDB4MDIgCTQgICAJQWx3YXlzIGVxdWFsIHRvICcxMTIyMzM0NCcKKyAqIDB4MDYgCTggICAJQWx3YXlzIGVxdWFsIHRvICdkZWFkYmVlZmRlYWRmYWNlJworICogMHgwZSAJMTYgIAlVbmtub3duCisgKgorICogVGhlIGhlYWRlciBjYW4gYmUgcHJlZml4ZWQgYnkgYW4gb3B0aW9uYWwsIHVua25vd24tcHVycG9zZSBieXRlLgorICovCisKK3N0YXRpYyBpbnQgaXNpZ2h0X2RlY29kZShzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwKKwkJY29uc3QgX191OCAqZGF0YSwgdW5zaWduZWQgaW50IGxlbikKK3sKKwlzdGF0aWMgY29uc3QgX191OCBoZHJbXSA9IHsKKwkJMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwKKwkJMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwKKwkJMHhkZSwgMHhhZCwgMHhmYSwgMHhjZQorCX07CisKKwl1bnNpZ25lZCBpbnQgbWF4bGVuLCBuYnl0ZXM7CisJX191OCAqbWVtOworCWludCBpc19oZWFkZXIgPSAwOworCisJaWYgKGJ1ZiA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWlmICgobGVuID49IDE0ICYmIG1lbWNtcCgmZGF0YVsyXSwgaGRyLCAxMikgPT0gMCkgfHwKKwkgICAgKGxlbiA+PSAxNSAmJiBtZW1jbXAoJmRhdGFbM10sIGhkciwgMTIpID09IDApKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJpU2lnaHQgaGVhZGVyIGZvdW5kXG4iKTsKKwkJaXNfaGVhZGVyID0gMTsKKwl9CisKKwkvKiBTeW5jaHJvbml6ZSB0byB0aGUgaW5wdXQgc3RyZWFtIGJ5IHdhaXRpbmcgZm9yIGEgaGVhZGVyIHBhY2tldC4gKi8KKwlpZiAoYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX0FDVElWRSkgeworCQlpZiAoIWlzX2hlYWRlcikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkRyb3BwaW5nIHBhY2tldCAob3V0IG9mICIKKwkJCQkgICJzeW5jKS5cbiIpOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9BQ1RJVkU7CisJfQorCisJLyogTWFyayB0aGUgYnVmZmVyIGFzIGRvbmUgaWYgd2UncmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyBmcmFtZS4KKwkgKgorCSAqIEVtcHR5IGJ1ZmZlcnMgKGJ5dGVzdXNlZCA9PSAwKSBkb24ndCB0cmlnZ2VyIGVuZCBvZiBmcmFtZSBkZXRlY3Rpb24KKwkgKiBhcyBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gcmV0dXJuIGFuIGVtcHR5IGJ1ZmZlci4KKwkgKi8KKwlpZiAoaXNfaGVhZGVyICYmIGJ1Zi0+YnVmLmJ5dGVzdXNlZCAhPSAwKSB7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0RPTkU7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCS8qIENvcHkgdGhlIHZpZGVvIGRhdGEgdG8gdGhlIGJ1ZmZlci4gU2tpcCBoZWFkZXIgcGFja2V0cywgYXMgdGhleQorCSAqIGNvbnRhaW4gbm8gZGF0YS4KKwkgKi8KKwlpZiAoIWlzX2hlYWRlcikgeworCQltYXhsZW4gPSBidWYtPmJ1Zi5sZW5ndGggLSBidWYtPmJ1Zi5ieXRlc3VzZWQ7CisJCW1lbSA9IHF1ZXVlLT5tZW0gKyBidWYtPmJ1Zi5tLm9mZnNldCArIGJ1Zi0+YnVmLmJ5dGVzdXNlZDsKKwkJbmJ5dGVzID0gbWluKGxlbiwgbWF4bGVuKTsKKwkJbWVtY3B5KG1lbSwgZGF0YSwgbmJ5dGVzKTsKKwkJYnVmLT5idWYuYnl0ZXN1c2VkICs9IG5ieXRlczsKKworCQlpZiAobGVuID4gbWF4bGVuIHx8IGJ1Zi0+YnVmLmJ5dGVzdXNlZCA9PSBidWYtPmJ1Zi5sZW5ndGgpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJGcmFtZSBjb21wbGV0ZSAiCisJCQkJICAiKG92ZXJmbG93KS5cbiIpOworCQkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRE9ORTsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCit2b2lkIHV2Y192aWRlb19kZWNvZGVfaXNpZ2h0KHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKQoreworCWludCByZXQsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdXJiLT5udW1iZXJfb2ZfcGFja2V0czsgKytpKSB7CisJCWlmICh1cmItPmlzb19mcmFtZV9kZXNjW2ldLnN0YXR1cyA8IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJVU0IgaXNvY2hyb25vdXMgZnJhbWUgIgorCQkJCSAgImxvc3QgKCVkKS5cbiIsCisJCQkJICB1cmItPmlzb19mcmFtZV9kZXNjW2ldLnN0YXR1cyk7CisJCX0KKworCQkvKiBEZWNvZGUgdGhlIHBheWxvYWQgcGFja2V0LgorCQkgKiB1dmNfdmlkZW9fZGVjb2RlIGlzIGVudGVyZWQgdHdpY2Ugd2hlbiBhIGZyYW1lIHRyYW5zaXRpb24KKwkJICogaGFzIGJlZW4gZGV0ZWN0ZWQgYmVjYXVzZSB0aGUgZW5kIG9mIGZyYW1lIGNhbiBvbmx5IGJlCisJCSAqIHJlbGlhYmx5IGRldGVjdGVkIHdoZW4gdGhlIGZpcnN0IHBhY2tldCBvZiB0aGUgbmV3IGZyYW1lCisJCSAqIGlzIHByb2Nlc3NlZC4gVGhlIGZpcnN0IHBhc3MgZGV0ZWN0cyB0aGUgdHJhbnNpdGlvbiBhbmQKKwkJICogY2xvc2VzIHRoZSBwcmV2aW91cyBmcmFtZSdzIGJ1ZmZlciwgdGhlIHNlY29uZCBwYXNzCisJCSAqIHByb2Nlc3NlcyB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgcGF5bG9hZCBvZiB0aGUgbmV3IGZyYW1lLgorCQkgKi8KKwkJZG8geworCQkJcmV0ID0gaXNpZ2h0X2RlY29kZSgmdmlkZW8tPnF1ZXVlLCBidWYsCisJCQkJCXVyYi0+dHJhbnNmZXJfYnVmZmVyICsKKwkJCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5vZmZzZXQsCisJCQkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uYWN0dWFsX2xlbmd0aCk7CisKKwkJCWlmIChidWYgPT0gTlVMTCkKKwkJCQlicmVhazsKKworCQkJaWYgKGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9ET05FIHx8CisJCQkgICAgYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0VSUk9SKQorCQkJCWJ1ZiA9IHV2Y19xdWV1ZV9uZXh0X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCQl9IHdoaWxlIChyZXQgPT0gLUVBR0FJTik7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3F1ZXVlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfcXVldWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTIzZjBlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3F1ZXVlLmMKQEAgLTAsMCArMSw0NzcgQEAKKy8qCisgKiAgICAgIHV2Y19xdWV1ZS5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIEJ1ZmZlcnMgbWFuYWdlbWVudAorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFZpZGVvIGJ1ZmZlcnMgcXVldWUgbWFuYWdlbWVudC4KKyAqCisgKiBWaWRlbyBxdWV1ZXMgaXMgaW5pdGlhbGl6ZWQgYnkgdXZjX3F1ZXVlX2luaXQoKS4gVGhlIGZ1bmN0aW9uIHBlcmZvcm1zCisgKiBiYXNpYyBpbml0aWFsaXphdGlvbiBvZiB0aGUgdXZjX3ZpZGVvX3F1ZXVlIHN0cnVjdCBhbmQgbmV2ZXIgZmFpbHMuCisgKgorICogVmlkZW8gYnVmZmVyIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgYXJlIHBlcmZvcm1lZCBieSB1dmNfYWxsb2NfYnVmZmVycyBhbmQKKyAqIHV2Y19mcmVlX2J1ZmZlcnMgcmVzcGVjdGl2ZWx5LiBUaGUgZm9ybWVyIGFjcXVpcmVzIHRoZSB2aWRlbyBxdWV1ZSBsb2NrLAorICogd2hpbGUgdGhlIGxhdGVyIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIGxvY2sgaGVsZCAoc28gdGhhdCBhbGxvY2F0aW9uIGNhbgorICogZnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBidWZmZXJzKS4gVHJ5aW5nIHRvIGZyZWUgYnVmZmVycyB0aGF0IGFyZSBtYXBwZWQKKyAqIHRvIHVzZXIgc3BhY2Ugd2lsbCByZXR1cm4gLUVCVVNZLgorICoKKyAqIFZpZGVvIGJ1ZmZlcnMgYXJlIG1hbmFnZWQgdXNpbmcgdHdvIHF1ZXVlcy4gSG93ZXZlciwgdW5saWtlIG1vc3QgVVNCIHZpZGVvCisgKiBkcml2ZXJzIHdoaWNoIHVzZSBhbiBpbiBxdWV1ZSBhbmQgYW4gb3V0IHF1ZXVlLCB3ZSB1c2UgYSBtYWluIHF1ZXVlIHdoaWNoCisgKiBob2xkcyBhbGwgcXVldWVkIGJ1ZmZlcnMgKGJvdGggJ2VtcHR5JyBhbmQgJ2RvbmUnIGJ1ZmZlcnMpLCBhbmQgYW4gaXJxCisgKiBxdWV1ZSB3aGljaCBob2xkcyBlbXB0eSBidWZmZXJzLiBUaGlzIGRlc2lnbiAoY29waWVkIGZyb20gdmlkZW8tYnVmKQorICogbWluaW1pemVzIGxvY2tpbmcgaW4gaW50ZXJydXB0LCBhcyBvbmx5IG9uZSBxdWV1ZSBpcyBzaGFyZWQgYmV0d2VlbgorICogaW50ZXJydXB0IGFuZCB1c2VyIGNvbnRleHRzLgorICoKKyAqIFVzZSBjYXNlcworICogLS0tLS0tLS0tCisgKgorICogVW5sZXNzIHN0YXRlZCBvdGhlcndpc2UsIGFsbCBvcGVyYXRpb25zIHdoaWNoIG1vZGlmeSB0aGUgaXJxIGJ1ZmZlcnMgcXVldWUKKyAqIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIGlycSBzcGlubG9jay4KKyAqCisgKiAxLiBUaGUgdXNlciBxdWV1ZXMgdGhlIGJ1ZmZlcnMsIHN0YXJ0cyBzdHJlYW1pbmcgYW5kIGRlcXVldWVzIGEgYnVmZmVyLgorICoKKyAqICAgIFRoZSBidWZmZXJzIGFyZSBhZGRlZCB0byB0aGUgbWFpbiBhbmQgaXJxIHF1ZXVlcy4gQm90aCBvcGVyYXRpb25zIGFyZQorICogICAgcHJvdGVjdGVkIGJ5IHRoZSBxdWV1ZSBsb2NrLCBhbmQgdGhlIGxhdGVydCBpcyBwcm90ZWN0ZWQgYnkgdGhlIGlycQorICogICAgc3BpbmxvY2sgYXMgd2VsbC4KKyAqCisgKiAgICBUaGUgY29tcGxldGlvbiBoYW5kbGVyIGZldGNoZXMgYSBidWZmZXIgZnJvbSB0aGUgaXJxIHF1ZXVlIGFuZCBmaWxscyBpdAorICogICAgd2l0aCB2aWRlbyBkYXRhLiBJZiBubyBidWZmZXIgaXMgYXZhaWxhYmxlIChpcnEgcXVldWUgZW1wdHkpLCB0aGUgaGFuZGxlcgorICogICAgcmV0dXJucyBpbW1lZGlhdGVseS4KKyAqCisgKiAgICBXaGVuIHRoZSBidWZmZXIgaXMgZnVsbCwgdGhlIGNvbXBsZXRpb24gaGFuZGxlciByZW1vdmVzIGl0IGZyb20gdGhlIGlycQorICogICAgcXVldWUsIG1hcmtzIGl0IGFzIHJlYWR5IChVVkNfQlVGX1NUQVRFX0RPTkUpIGFuZCB3YWtlIGl0cyB3YWl0IHF1ZXVlLgorICogICAgQXQgdGhhdCBwb2ludCwgYW55IHByb2Nlc3Mgd2FpdGluZyBvbiB0aGUgYnVmZmVyIHdpbGwgYmUgd29rZW4gdXAuIElmIGEKKyAqICAgIHByb2Nlc3MgdHJpZXMgdG8gZGVxdWV1ZSBhIGJ1ZmZlciBhZnRlciBpdCBoYXMgYmVlbiBtYXJrZWQgcmVhZHksIHRoZQorICogICAgZGVxdWVpbmcgd2lsbCBzdWNjZWVkIGltbWVkaWF0ZWx5LgorICoKKyAqIDIuIEJ1ZmZlcnMgYXJlIHF1ZXVlZCwgdXNlciBpcyB3YWl0aW5nIG9uIGEgYnVmZmVyIGFuZCB0aGUgZGV2aWNlIGdldHMKKyAqICAgIGRpc2Nvbm5lY3RlZC4KKyAqCisgKiAgICBXaGVuIHRoZSBkZXZpY2UgaXMgZGlzY29ubmVjdGVkLCB0aGUga2VybmVsIGNhbGxzIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIKKyAqICAgIHdpdGggYW4gYXBwcm9wcmlhdGUgc3RhdHVzIGNvZGUuIFRoZSBoYW5kbGVyIG1hcmtzIGFsbCBidWZmZXJzIGluIHRoZQorICogICAgaXJxIHF1ZXVlIGFzIGJlaW5nIGVycm9uZW91cyAoVVZDX0JVRl9TVEFURV9FUlJPUikgYW5kIHdha2VzIHRoZW0gdXAgc28KKyAqICAgIHRoYXQgYW55IHByb2Nlc3Mgd2FpdGluZyBvbiBhIGJ1ZmZlciBnZXRzIHdva2VuIHVwLgorICoKKyAqICAgIFdha2luZyB1cCB1cCB0aGUgZmlyc3QgYnVmZmVyIG9uIHRoZSBpcnEgbGlzdCBpcyBub3QgZW5vdWdoLCBhcyB0aGUKKyAqICAgIHByb2Nlc3Mgd2FpdGluZyBvbiB0aGUgYnVmZmVyIG1pZ2h0IHJlc3RhcnQgdGhlIGRlcXVldWUgb3BlcmF0aW9uCisgKiAgICBpbW1lZGlhdGVseS4KKyAqCisgKi8KKwordm9pZCB1dmNfcXVldWVfaW5pdChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSkKK3sKKwltdXRleF9pbml0KCZxdWV1ZS0+bXV0ZXgpOworCXNwaW5fbG9ja19pbml0KCZxdWV1ZS0+aXJxbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnF1ZXVlLT5tYWlucXVldWUpOworCUlOSVRfTElTVF9IRUFEKCZxdWV1ZS0+aXJxcXVldWUpOworfQorCisvKgorICogQWxsb2NhdGUgdGhlIHZpZGVvIGJ1ZmZlcnMuCisgKgorICogUGFnZXMgYXJlIHJlc2VydmVkIHRvIG1ha2Ugc3VyZSB0aGV5IHdpbGwgbm90IGJlIHN3YXBlZCwgYXMgdGhleSB3aWxsIGJlCisgKiBmaWxsZWQgaW4gVVJCIGNvbXBsZXRpb24gaGFuZGxlci4KKyAqCisgKiBCdWZmZXJzIHdpbGwgYmUgaW5kaXZpZHVhbGx5IG1hcHBlZCwgc28gdGhleSBtdXN0IGFsbCBiZSBwYWdlIGFsaWduZWQuCisgKi8KK2ludCB1dmNfYWxsb2NfYnVmZmVycyhzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgdW5zaWduZWQgaW50IG5idWZmZXJzLAorCQl1bnNpZ25lZCBpbnQgYnVmbGVuZ3RoKQoreworCXVuc2lnbmVkIGludCBidWZzaXplID0gUEFHRV9BTElHTihidWZsZW5ndGgpOworCXVuc2lnbmVkIGludCBpOworCXZvaWQgKm1lbSA9IE5VTEw7CisJaW50IHJldDsKKworCWlmIChuYnVmZmVycyA+IFVWQ19NQVhfVklERU9fQlVGRkVSUykKKwkJbmJ1ZmZlcnMgPSBVVkNfTUFYX1ZJREVPX0JVRkZFUlM7CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCisJaWYgKChyZXQgPSB1dmNfZnJlZV9idWZmZXJzKHF1ZXVlKSkgPCAwKQorCQlnb3RvIGRvbmU7CisKKwkvKiBCYWlsIG91dCBpZiBubyBidWZmZXJzIHNob3VsZCBiZSBhbGxvY2F0ZWQuICovCisJaWYgKG5idWZmZXJzID09IDApCisJCWdvdG8gZG9uZTsKKworCS8qIERlY3JlbWVudCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgdW50aWwgYWxsb2NhdGlvbiBzdWNjZWVkcy4gKi8KKwlmb3IgKDsgbmJ1ZmZlcnMgPiAwOyAtLW5idWZmZXJzKSB7CisJCW1lbSA9IHZtYWxsb2NfMzIobmJ1ZmZlcnMgKiBidWZzaXplKTsKKwkJaWYgKG1lbSAhPSBOVUxMKQorCQkJYnJlYWs7CisJfQorCisJaWYgKG1lbSA9PSBOVUxMKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZG9uZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbmJ1ZmZlcnM7ICsraSkgeworCQltZW1zZXQoJnF1ZXVlLT5idWZmZXJbaV0sIDAsIHNpemVvZiBxdWV1ZS0+YnVmZmVyW2ldKTsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYuaW5kZXggPSBpOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5tLm9mZnNldCA9IGkgKiBidWZzaXplOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5sZW5ndGggPSBidWZsZW5ndGg7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLnR5cGUgPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkU7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLnNlcXVlbmNlID0gMDsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYuZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLm1lbW9yeSA9IFY0TDJfTUVNT1JZX01NQVA7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLmZsYWdzID0gMDsKKwkJaW5pdF93YWl0cXVldWVfaGVhZCgmcXVldWUtPmJ1ZmZlcltpXS53YWl0KTsKKwl9CisKKwlxdWV1ZS0+bWVtID0gbWVtOworCXF1ZXVlLT5jb3VudCA9IG5idWZmZXJzOworCXF1ZXVlLT5idWZfc2l6ZSA9IGJ1ZnNpemU7CisJcmV0ID0gbmJ1ZmZlcnM7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBGcmVlIHRoZSB2aWRlbyBidWZmZXJzLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgcXVldWUgbG9jayBoZWxkLgorICovCitpbnQgdXZjX2ZyZWVfYnVmZmVycyhzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBxdWV1ZS0+Y291bnQ7ICsraSkgeworCQlpZiAocXVldWUtPmJ1ZmZlcltpXS52bWFfdXNlX2NvdW50ICE9IDApCisJCQlyZXR1cm4gLUVCVVNZOworCX0KKworCWlmIChxdWV1ZS0+Y291bnQpIHsKKwkJdmZyZWUocXVldWUtPm1lbSk7CisJCXF1ZXVlLT5jb3VudCA9IDA7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fdXZjX3F1ZXJ5X2J1ZmZlcihzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmKQoreworCW1lbWNweSh2NGwyX2J1ZiwgJmJ1Zi0+YnVmLCBzaXplb2YgKnY0bDJfYnVmKTsKKworCWlmIChidWYtPnZtYV91c2VfY291bnQpCisJCXY0bDJfYnVmLT5mbGFncyB8PSBWNEwyX0JVRl9GTEFHX01BUFBFRDsKKworCXN3aXRjaCAoYnVmLT5zdGF0ZSkgeworCWNhc2UgVVZDX0JVRl9TVEFURV9FUlJPUjoKKwljYXNlIFVWQ19CVUZfU1RBVEVfRE9ORToKKwkJdjRsMl9idWYtPmZsYWdzIHw9IFY0TDJfQlVGX0ZMQUdfRE9ORTsKKwkJYnJlYWs7CisJY2FzZSBVVkNfQlVGX1NUQVRFX1FVRVVFRDoKKwljYXNlIFVWQ19CVUZfU1RBVEVfQUNUSVZFOgorCQl2NGwyX2J1Zi0+ZmxhZ3MgfD0gVjRMMl9CVUZfRkxBR19RVUVVRUQ7CisJCWJyZWFrOworCWNhc2UgVVZDX0JVRl9TVEFURV9JRExFOgorCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KK30KKworaW50IHV2Y19xdWVyeV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYpCit7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCWlmICh2NGwyX2J1Zi0+aW5kZXggPj0gcXVldWUtPmNvdW50KSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlfX3V2Y19xdWVyeV9idWZmZXIoJnF1ZXVlLT5idWZmZXJbdjRsMl9idWYtPmluZGV4XSwgdjRsMl9idWYpOworCitkb25lOgorICAgICAgIG11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKyAgICAgICByZXR1cm4gcmV0OworfQorCisvKgorICogUXVldWUgYSB2aWRlbyBidWZmZXIuIEF0dGVtcHRpbmcgdG8gcXVldWUgYSBidWZmZXIgdGhhdCBoYXMgYWxyZWFkeSBiZWVuCisgKiBxdWV1ZWQgd2lsbCByZXR1cm4gLUVJTlZBTC4KKyAqLworaW50IHV2Y19xdWV1ZV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1ZikKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldCA9IDA7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJRdWV1aW5nIGJ1ZmZlciAldS5cbiIsIHY0bDJfYnVmLT5pbmRleCk7CisKKwlpZiAodjRsMl9idWYtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFIHx8CisJICAgIHY0bDJfYnVmLT5tZW1vcnkgIT0gVjRMMl9NRU1PUllfTU1BUCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gSW52YWxpZCBidWZmZXIgdHlwZSAoJXUpICIKKwkJCSJhbmQvb3IgbWVtb3J5ICgldSkuXG4iLCB2NGwyX2J1Zi0+dHlwZSwKKwkJCXY0bDJfYnVmLT5tZW1vcnkpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCWlmICh2NGwyX2J1Zi0+aW5kZXggPj0gcXVldWUtPmNvdW50KSAgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gT3V0IG9mIHJhbmdlIGluZGV4LlxuIik7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlidWYgPSAmcXVldWUtPmJ1ZmZlclt2NGwyX2J1Zi0+aW5kZXhdOworCWlmIChidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfSURMRSkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gSW52YWxpZCBidWZmZXIgc3RhdGUgIgorCQkJIigldSkuXG4iLCBidWYtPnN0YXRlKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCWlmIChxdWV1ZS0+ZmxhZ3MgJiBVVkNfUVVFVUVfRElTQ09OTkVDVEVEKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZG9uZTsKKwl9CisJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfUVVFVUVEOworCWJ1Zi0+YnVmLmJ5dGVzdXNlZCA9IDA7CisJbGlzdF9hZGRfdGFpbCgmYnVmLT5zdHJlYW0sICZxdWV1ZS0+bWFpbnF1ZXVlKTsKKwlsaXN0X2FkZF90YWlsKCZidWYtPnF1ZXVlLCAmcXVldWUtPmlycXF1ZXVlKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCitkb25lOgorCW11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHV2Y19xdWV1ZV93YWl0b24oc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwgaW50IG5vbmJsb2NraW5nKQoreworCWlmIChub25ibG9ja2luZykgeworCQlyZXR1cm4gKGJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9RVUVVRUQgJiYKKwkJCWJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9BQ1RJVkUpCisJCQk/IDAgOiAtRUFHQUlOOworCX0KKworCXJldHVybiB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoYnVmLT53YWl0LAorCQlidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfUVVFVUVEICYmCisJCWJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9BQ1RJVkUpOworfQorCisvKgorICogRGVxdWV1ZSBhIHZpZGVvIGJ1ZmZlci4gSWYgbm9uYmxvY2tpbmcgaXMgZmFsc2UsIGJsb2NrIHVudGlsIGEgYnVmZmVyIGlzCisgKiBhdmFpbGFibGUuCisgKi8KK2ludCB1dmNfZGVxdWV1ZV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYsIGludCBub25ibG9ja2luZykKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmOworCWludCByZXQgPSAwOworCisJaWYgKHY0bDJfYnVmLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSB8fAorCSAgICB2NGwyX2J1Zi0+bWVtb3J5ICE9IFY0TDJfTUVNT1JZX01NQVApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIEludmFsaWQgYnVmZmVyIHR5cGUgKCV1KSAiCisJCQkiYW5kL29yIG1lbW9yeSAoJXUpLlxuIiwgdjRsMl9idWYtPnR5cGUsCisJCQl2NGwyX2J1Zi0+bWVtb3J5KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKwlpZiAobGlzdF9lbXB0eSgmcXVldWUtPm1haW5xdWV1ZSkpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIEVtcHR5IGJ1ZmZlciBxdWV1ZS5cbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJYnVmID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUtPm1haW5xdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIsIHN0cmVhbSk7CisJaWYgKChyZXQgPSB1dmNfcXVldWVfd2FpdG9uKGJ1Ziwgbm9uYmxvY2tpbmcpKSA8IDApCisJCWdvdG8gZG9uZTsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIkRlcXVldWluZyBidWZmZXIgJXUgKCV1LCAldSBieXRlcykuXG4iLAorCQlidWYtPmJ1Zi5pbmRleCwgYnVmLT5zdGF0ZSwgYnVmLT5idWYuYnl0ZXN1c2VkKTsKKworCXN3aXRjaCAoYnVmLT5zdGF0ZSkgeworCWNhc2UgVVZDX0JVRl9TVEFURV9FUlJPUjoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW1ddIENvcnJ1cHRlZCBkYXRhICIKKwkJCSIodHJhbnNtaXNzaW9uIGVycm9yKS5cbiIpOworCQlyZXQgPSAtRUlPOworCWNhc2UgVVZDX0JVRl9TVEFURV9ET05FOgorCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9JRExFOworCQlicmVhazsKKworCWNhc2UgVVZDX0JVRl9TVEFURV9JRExFOgorCWNhc2UgVVZDX0JVRl9TVEFURV9RVUVVRUQ6CisJY2FzZSBVVkNfQlVGX1NUQVRFX0FDVElWRToKKwlkZWZhdWx0OgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gSW52YWxpZCBidWZmZXIgc3RhdGUgJXUgIgorCQkJIihkcml2ZXIgYnVnPykuXG4iLCBidWYtPnN0YXRlKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCWxpc3RfZGVsKCZidWYtPnN0cmVhbSk7CisJX191dmNfcXVlcnlfYnVmZmVyKGJ1ZiwgdjRsMl9idWYpOworCitkb25lOgorCW11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogUG9sbCB0aGUgdmlkZW8gcXVldWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHZpZGVvIHF1ZXVlIHBvbGxpbmcgYW5kIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkKKyAqIHRoZSBkZXZpY2UgcG9sbCBoYW5kbGVyLgorICovCit1bnNpZ25lZCBpbnQgdXZjX3F1ZXVlX3BvbGwoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIHN0cnVjdCBmaWxlICpmaWxlLAorCQlwb2xsX3RhYmxlICp3YWl0KQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWY7CisJdW5zaWduZWQgaW50IG1hc2sgPSAwOworCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKwlpZiAobGlzdF9lbXB0eSgmcXVldWUtPm1haW5xdWV1ZSkpIHsKKwkJbWFzayB8PSBQT0xMRVJSOworCQlnb3RvIGRvbmU7CisJfQorCWJ1ZiA9IGxpc3RfZmlyc3RfZW50cnkoJnF1ZXVlLT5tYWlucXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyLCBzdHJlYW0pOworCisJcG9sbF93YWl0KGZpbGUsICZidWYtPndhaXQsIHdhaXQpOworCWlmIChidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRE9ORSB8fAorCSAgICBidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRVJST1IpCisJCW1hc2sgfD0gUE9MTElOIHwgUE9MTFJETk9STTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisJcmV0dXJuIG1hc2s7Cit9CisKKy8qCisgKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgdmlkZW8gYnVmZmVycyBxdWV1ZS4KKyAqCisgKiBUaGUgcXVldWUgbXVzdCBiZSBlbmFibGVkIGJlZm9yZSBzdGFydGluZyB2aWRlbyBhY3F1aXNpdGlvbiBhbmQgbXVzdCBiZQorICogZGlzYWJsZWQgYWZ0ZXIgc3RvcHBpbmcgaXQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB2aWRlbyBidWZmZXJzIHF1ZXVlCisgKiBzdGF0ZSBjYW4gYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgYmVmb3JlIGJ1ZmZlcnMgYXJlIGFjY2Vzc2VkIGZyb20gdGhlCisgKiBpbnRlcnJ1cHQgaGFuZGxlci4KKyAqCisgKiBFbmFibGluZyB0aGUgdmlkZW8gcXVldWUgaW5pdGlhbGl6ZXMgcGFyYW1ldGVycyAoc3VjaCBhcyBzZXF1ZW5jZSBudW1iZXIsCisgKiBzeW5jIHBhdHRlcm4sIC4uLikuIElmIHRoZSBxdWV1ZSBpcyBhbHJlYWR5IGVuYWJsZWQsIHJldHVybiAtRUJVU1kuCisgKgorICogRGlzYWJsaW5nIHRoZSB2aWRlbyBxdWV1ZSBjYW5jZWxzIHRoZSBxdWV1ZSBhbmQgcmVtb3ZlcyBhbGwgYnVmZmVycyBmcm9tCisgKiB0aGUgbWFpbiBxdWV1ZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbid0IGJlIGNhbGxlZCBmcm9tIGludGVycnVwdCBjb250ZXh0LiBVc2UKKyAqIHV2Y19xdWV1ZV9jYW5jZWwoKSBpbnN0ZWFkLgorICovCitpbnQgdXZjX3F1ZXVlX2VuYWJsZShzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgaW50IGVuYWJsZSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0ID0gMDsKKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisJaWYgKGVuYWJsZSkgeworCQlpZiAodXZjX3F1ZXVlX3N0cmVhbWluZyhxdWV1ZSkpIHsKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCQlxdWV1ZS0+c2VxdWVuY2UgPSAwOworCQlxdWV1ZS0+ZmxhZ3MgfD0gVVZDX1FVRVVFX1NUUkVBTUlORzsKKwl9IGVsc2UgeworCQl1dmNfcXVldWVfY2FuY2VsKHF1ZXVlLCAwKTsKKwkJSU5JVF9MSVNUX0hFQUQoJnF1ZXVlLT5tYWlucXVldWUpOworCisJCWZvciAoaSA9IDA7IGkgPCBxdWV1ZS0+Y291bnQ7ICsraSkKKwkJCXF1ZXVlLT5idWZmZXJbaV0uc3RhdGUgPSBVVkNfQlVGX1NUQVRFX0lETEU7CisKKwkJcXVldWUtPmZsYWdzICY9IH5VVkNfUVVFVUVfU1RSRUFNSU5HOworCX0KKworZG9uZToKKwltdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENhbmNlbCB0aGUgdmlkZW8gYnVmZmVycyBxdWV1ZS4KKyAqCisgKiBDYW5jZWxsaW5nIHRoZSBxdWV1ZSBtYXJrcyBhbGwgYnVmZmVycyBvbiB0aGUgaXJxIHF1ZXVlIGFzIGVycm9uZW91cywKKyAqIHdha2VzIHRoZW0gdXAgYW5kIHJlbW92ZSB0aGVtIGZyb20gdGhlIHF1ZXVlLgorICoKKyAqIElmIHRoZSBkaXNjb25uZWN0IHBhcmFtZXRlciBpcyBzZXQsIGZ1cnRoZXIgY2FsbHMgdG8gdXZjX3F1ZXVlX2J1ZmZlciB3aWxsCisgKiBmYWlsIHdpdGggLUVOT0RFVi4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFjcXVpcmVzIHRoZSBpcnEgc3BpbmxvY2sgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBpbnRlcnJ1cHQKKyAqIGNvbnRleHQuCisgKi8KK3ZvaWQgdXZjX3F1ZXVlX2NhbmNlbChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgaW50IGRpc2Nvbm5lY3QpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisJd2hpbGUgKCFsaXN0X2VtcHR5KCZxdWV1ZS0+aXJxcXVldWUpKSB7CisJCWJ1ZiA9IGxpc3RfZmlyc3RfZW50cnkoJnF1ZXVlLT5pcnFxdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIsCisJCQkJICAgICAgIHF1ZXVlKTsKKwkJbGlzdF9kZWwoJmJ1Zi0+cXVldWUpOworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9FUlJPUjsKKwkJd2FrZV91cCgmYnVmLT53YWl0KTsKKwl9CisJLyogVGhpcyBtdXN0IGJlIHByb3RlY3RlZCBieSB0aGUgaXJxbG9jayBzcGlubG9jayB0byBhdm9pZCByYWNlCisJICogY29uZGl0aW9ucyBiZXR3ZWVuIHV2Y19xdWV1ZV9idWZmZXIgYW5kIHRoZSBkaXNjb25uZWN0aW9uIGV2ZW50IHRoYXQKKwkgKiBjb3VsZCByZXN1bHQgaW4gYW4gaW50ZXJydXB0aWJsZSB3YWl0IGluIHV2Y19kZXF1ZXVlX2J1ZmZlci4gRG8gbm90CisJICogYmxpbmRseSByZXBsYWNlIHRoaXMgbG9naWMgYnkgY2hlY2tpbmcgZm9yIHRoZSBVVkNfREVWX0RJU0NPTk5FQ1RFRAorCSAqIHN0YXRlIG91dHNpZGUgdGhlIHF1ZXVlIGNvZGUuCisJICovCisJaWYgKGRpc2Nvbm5lY3QpCisJCXF1ZXVlLT5mbGFncyB8PSBVVkNfUVVFVUVfRElTQ09OTkVDVEVEOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7Cit9CisKK3N0cnVjdCB1dmNfYnVmZmVyICp1dmNfcXVldWVfbmV4dF9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKm5leHRidWY7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWlmICgocXVldWUtPmZsYWdzICYgVVZDX1FVRVVFX0RST1BfSU5DT01QTEVURSkgJiYKKwkgICAgYnVmLT5idWYubGVuZ3RoICE9IGJ1Zi0+YnVmLmJ5dGVzdXNlZCkgeworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9RVUVVRUQ7CisJCWJ1Zi0+YnVmLmJ5dGVzdXNlZCA9IDA7CisJCXJldHVybiBidWY7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisJbGlzdF9kZWwoJmJ1Zi0+cXVldWUpOworCWlmICghbGlzdF9lbXB0eSgmcXVldWUtPmlycXF1ZXVlKSkKKwkJbmV4dGJ1ZiA9IGxpc3RfZmlyc3RfZW50cnkoJnF1ZXVlLT5pcnFxdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIsCisJCQkJCSAgIHF1ZXVlKTsKKwllbHNlCisJCW5leHRidWYgPSBOVUxMOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisKKwlidWYtPmJ1Zi5zZXF1ZW5jZSA9IHF1ZXVlLT5zZXF1ZW5jZSsrOworCWRvX2dldHRpbWVvZmRheSgmYnVmLT5idWYudGltZXN0YW1wKTsKKworCXdha2VfdXAoJmJ1Zi0+d2FpdCk7CisJcmV0dXJuIG5leHRidWY7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfc3RhdHVzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfc3RhdHVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU5MDg0ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19zdGF0dXMuYwpAQCAtMCwwICsxLDIwNyBAQAorLyoKKyAqICAgICAgdXZjX3N0YXR1cy5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIFN0YXR1cyBlbmRwb2ludAorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi9pbnB1dC5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIElucHV0IGRldmljZQorICovCitzdGF0aWMgaW50IHV2Y19pbnB1dF9pbml0KHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBkZXYtPnVkZXY7CisJc3RydWN0IGlucHV0X2RldiAqaW5wdXQ7CisJY2hhciAqcGh5cyA9IE5VTEw7CisJaW50IHJldDsKKworCWlucHV0ID0gaW5wdXRfYWxsb2NhdGVfZGV2aWNlKCk7CisJaWYgKGlucHV0ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJcGh5cyA9IGttYWxsb2MoNiArIHN0cmxlbih1ZGV2LT5idXMtPmJ1c19uYW1lKSArIHN0cmxlbih1ZGV2LT5kZXZwYXRoKSwKKwkJCUdGUF9LRVJORUwpOworCWlmIChwaHlzID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJvcjsKKwl9CisJc3ByaW50ZihwaHlzLCAidXNiLSVzLSVzIiwgdWRldi0+YnVzLT5idXNfbmFtZSwgdWRldi0+ZGV2cGF0aCk7CisKKwlpbnB1dC0+bmFtZSA9IGRldi0+bmFtZTsKKwlpbnB1dC0+cGh5cyA9IHBoeXM7CisJdXNiX3RvX2lucHV0X2lkKHVkZXYsICZpbnB1dC0+aWQpOworCWlucHV0LT5kZXYucGFyZW50ID0gJmRldi0+aW50Zi0+ZGV2OworCisJc2V0X2JpdChFVl9LRVksIGlucHV0LT5ldmJpdCk7CisJc2V0X2JpdChCVE5fMCwgaW5wdXQtPmtleWJpdCk7CisKKwlpZiAoKHJldCA9IGlucHV0X3JlZ2lzdGVyX2RldmljZShpbnB1dCkpIDwgMCkKKwkJZ290byBlcnJvcjsKKworCWRldi0+aW5wdXQgPSBpbnB1dDsKKwlyZXR1cm4gMDsKKworZXJyb3I6CisJaW5wdXRfZnJlZV9kZXZpY2UoaW5wdXQpOworCWtmcmVlKHBoeXMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19pbnB1dF9jbGVhbnVwKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+aW5wdXQpCisJCWlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGRldi0+aW5wdXQpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3RhdHVzIGludGVycnVwdCBlbmRwb2ludAorICovCitzdGF0aWMgdm9pZCB1dmNfZXZlbnRfc3RyZWFtaW5nKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIF9fdTggKmRhdGEsIGludCBsZW4pCit7CisJaWYgKGxlbiA8IDMpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVEFUVVMsICJJbnZhbGlkIHN0cmVhbWluZyBzdGF0dXMgZXZlbnQgIgorCQkJCSJyZWNlaXZlZC5cbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKGRhdGFbMl0gPT0gMCkgeworCQlpZiAobGVuIDwgNCkKKwkJCXJldHVybjsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVEFUVVMsICJCdXR0b24gKGludGYgJXUpICVzIGxlbiAlZFxuIiwKKwkJCWRhdGFbMV0sIGRhdGFbM10gPyAicHJlc3NlZCIgOiAicmVsZWFzZWQiLCBsZW4pOworCQlpZiAoZGV2LT5pbnB1dCkKKwkJCWlucHV0X3JlcG9ydF9rZXkoZGV2LT5pbnB1dCwgQlROXzAsIGRhdGFbM10pOworCX0gZWxzZSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1RBVFVTLCAiU3RyZWFtICV1IGVycm9yIGV2ZW50ICUwMnggJTAyeCAiCisJCQkibGVuICVkLlxuIiwgZGF0YVsxXSwgZGF0YVsyXSwgZGF0YVszXSwgbGVuKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19ldmVudF9jb250cm9sKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIF9fdTggKmRhdGEsIGludCBsZW4pCit7CisJY2hhciAqYXR0cnNbM10gPSB7ICJ2YWx1ZSIsICJpbmZvIiwgImZhaWx1cmUiIH07CisKKwlpZiAobGVuIDwgNiB8fCBkYXRhWzJdICE9IDAgfHwgZGF0YVs0XSA+IDIpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVEFUVVMsICJJbnZhbGlkIGNvbnRyb2wgc3RhdHVzIGV2ZW50ICIKKwkJCQkicmVjZWl2ZWQuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXV2Y190cmFjZShVVkNfVFJBQ0VfU1RBVFVTLCAiQ29udHJvbCAldS8ldSAlcyBjaGFuZ2UgbGVuICVkLlxuIiwKKwkJZGF0YVsxXSwgZGF0YVszXSwgYXR0cnNbZGF0YVs0XV0sIGxlbik7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19zdGF0dXNfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKQoreworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXYgPSB1cmItPmNvbnRleHQ7CisJaW50IGxlbiwgcmV0OworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJYnJlYWs7CisKKwljYXNlIC1FTk9FTlQ6CQkvKiB1c2Jfa2lsbF91cmIoKSBjYWxsZWQuICovCisJY2FzZSAtRUNPTk5SRVNFVDoJLyogdXNiX3VubGlua191cmIoKSBjYWxsZWQuICovCisJY2FzZSAtRVNIVVRET1dOOgkvKiBUaGUgZW5kcG9pbnQgaXMgYmVpbmcgZGlzYWJsZWQuICovCisJY2FzZSAtRVBST1RPOgkJLyogRGV2aWNlIGlzIGRpc2Nvbm5lY3RlZCAocmVwb3J0ZWQgYnkgc29tZQorCQkJCSAqIGhvc3QgY29udHJvbGxlcikuICovCisJCXJldHVybjsKKworCWRlZmF1bHQ6CisJCXV2Y19wcmludGsoS0VSTl9XQVJOSU5HLCAiTm9uLXplcm8gc3RhdHVzICglZCkgaW4gc3RhdHVzICIKKwkJCSJjb21wbGV0aW9uIGhhbmRsZXIuXG4iLCB1cmItPnN0YXR1cyk7CisJCXJldHVybjsKKwl9CisKKwlsZW4gPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJaWYgKGxlbiA+IDApIHsKKwkJc3dpdGNoIChkZXYtPnN0YXR1c1swXSAmIDB4MGYpIHsKKwkJY2FzZSBVVkNfU1RBVFVTX1RZUEVfQ09OVFJPTDoKKwkJCXV2Y19ldmVudF9jb250cm9sKGRldiwgZGV2LT5zdGF0dXMsIGxlbik7CisJCQlicmVhazsKKworCQljYXNlIFVWQ19TVEFUVVNfVFlQRV9TVFJFQU1JTkc6CisJCQl1dmNfZXZlbnRfc3RyZWFtaW5nKGRldiwgZGV2LT5zdGF0dXMsIGxlbik7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJ1bmtub3duIGV2ZW50IHR5cGUgJXUuXG4iLAorCQkJCWRldi0+c3RhdHVzWzBdKTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogUmVzdWJtaXQgdGhlIFVSQi4gKi8KKwl1cmItPmludGVydmFsID0gZGV2LT5pbnRfZXAtPmRlc2MuYkludGVydmFsOworCWlmICgocmV0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgPCAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9FUlIsICJGYWlsZWQgdG8gcmVzdWJtaXQgc3RhdHVzIFVSQiAoJWQpLlxuIiwKKwkJCXJldCk7CisJfQorfQorCitpbnQgdXZjX3N0YXR1c19pbml0KHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCA9IGRldi0+aW50X2VwOworCXVuc2lnbmVkIGludCBwaXBlOworCWludCBpbnRlcnZhbDsKKworCWlmIChlcCA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCXV2Y19pbnB1dF9pbml0KGRldik7CisKKwlkZXYtPmludF91cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOworCWlmIChkZXYtPmludF91cmIgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwaXBlID0gdXNiX3JjdmludHBpcGUoZGV2LT51ZGV2LCBlcC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzKTsKKworCS8qIEZvciBoaWdoLXNwZWVkIGludGVycnVwdCBlbmRwb2ludHMsIHRoZSBiSW50ZXJ2YWwgdmFsdWUgaXMgdXNlZCBhcworCSAqIGFuIGV4cG9uZW50IG9mIHR3by4gU29tZSBkZXZlbG9wZXJzIGZvcmdvdCBhYm91dCBpdC4KKwkgKi8KKwlpbnRlcnZhbCA9IGVwLT5kZXNjLmJJbnRlcnZhbDsKKwlpZiAoaW50ZXJ2YWwgPiAxNiAmJiBkZXYtPnVkZXYtPnNwZWVkID09IFVTQl9TUEVFRF9ISUdIICYmCisJICAgIChkZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19TVEFUVVNfSU5URVJWQUwpKQorCQlpbnRlcnZhbCA9IGZscyhpbnRlcnZhbCkgLSAxOworCisJdXNiX2ZpbGxfaW50X3VyYihkZXYtPmludF91cmIsIGRldi0+dWRldiwgcGlwZSwKKwkJZGV2LT5zdGF0dXMsIHNpemVvZiBkZXYtPnN0YXR1cywgdXZjX3N0YXR1c19jb21wbGV0ZSwKKwkJZGV2LCBpbnRlcnZhbCk7CisKKwlyZXR1cm4gdXNiX3N1Ym1pdF91cmIoZGV2LT5pbnRfdXJiLCBHRlBfS0VSTkVMKTsKK30KKwordm9pZCB1dmNfc3RhdHVzX2NsZWFudXAoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwl1c2Jfa2lsbF91cmIoZGV2LT5pbnRfdXJiKTsKKwl1c2JfZnJlZV91cmIoZGV2LT5pbnRfdXJiKTsKKwl1dmNfaW5wdXRfY2xlYW51cChkZXYpOworfQorCitpbnQgdXZjX3N0YXR1c19zdXNwZW5kKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJdXNiX2tpbGxfdXJiKGRldi0+aW50X3VyYik7CisJcmV0dXJuIDA7Cit9CisKK2ludCB1dmNfc3RhdHVzX3Jlc3VtZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCWlmIChkZXYtPmludF91cmIgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gdXNiX3N1Ym1pdF91cmIoZGV2LT5pbnRfdXJiLCBHRlBfS0VSTkVMKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192NGwyLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdjRsMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMGE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdjRsMi5jCkBAIC0wLDAgKzEsMTEwNSBAQAorLyoKKyAqICAgICAgdXZjX3Y0bDIuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBWNEwyIEFQSQorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKworI2luY2x1ZGUgPG1lZGlhL3Y0bDItY29tbW9uLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFY0TDIgaW50ZXJmYWNlCisgKi8KKworLyoKKyAqIE1hcHBpbmcgVjRMMiBjb250cm9scyB0byBVVkMgY29udHJvbHMgY2FuIGJlIHN0cmFpZ2hmb3J3YXJkIGlmIGRvbmUgd2VsbC4KKyAqIE1vc3Qgb2YgdGhlIFVWQyBjb250cm9scyBleGlzdCBpbiBWNEwyLCBhbmQgY2FuIGJlIG1hcHBlZCBkaXJlY3RseS4gU29tZQorICogbXVzdCBiZSBncm91cGVkIChmb3IgaW5zdGFuY2UgdGhlIFJlZCBCYWxhbmNlLCBCbHVlIEJhbGFuY2UgYW5kIERvIFdoaXRlCisgKiBCYWxhbmNlIFY0TDIgY29udHJvbHMgdXNlIHRoZSBXaGl0ZSBCYWxhbmNlIENvbXBvbmVudCBVVkMgY29udHJvbCkgb3IKKyAqIG90aGVyd2lzZSB0cmFuc2xhdGVkLiBUaGUgYXBwcm9hY2ggd2UgdGFrZSBoZXJlIGlzIHRvIHVzZSBhIHRyYW5zbGF0aW9uCisgKiB0YWJsZSBmb3IgdGhlIGNvbnRyb2xzIHdoaWNoIGNhbiBiZSBtYXBwZWQgZGlyZWN0bHksIGFuZCBoYW5kbGUgdGhlIG90aGVycworICogbWFudWFsbHkuCisgKi8KK3N0YXRpYyBpbnQgdXZjX3Y0bDJfcXVlcnlfbWVudShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfcXVlcnltZW51ICpxdWVyeV9tZW51KQoreworCXN0cnVjdCB1dmNfbWVudV9pbmZvICptZW51X2luZm87CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmc7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCisJY3RybCA9IHV2Y19maW5kX2NvbnRyb2wodmlkZW8sIHF1ZXJ5X21lbnUtPmlkLCAmbWFwcGluZyk7CisJaWYgKGN0cmwgPT0gTlVMTCB8fCBtYXBwaW5nLT52NGwyX3R5cGUgIT0gVjRMMl9DVFJMX1RZUEVfTUVOVSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAocXVlcnlfbWVudS0+aW5kZXggPj0gbWFwcGluZy0+bWVudV9jb3VudCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW51X2luZm8gPSAmbWFwcGluZy0+bWVudV9pbmZvW3F1ZXJ5X21lbnUtPmluZGV4XTsKKwlzdHJuY3B5KHF1ZXJ5X21lbnUtPm5hbWUsIG1lbnVfaW5mby0+bmFtZSwgMzIpOworCXJldHVybiAwOworfQorCisvKgorICogRmluZCB0aGUgZnJhbWUgaW50ZXJ2YWwgY2xvc2VzdCB0byB0aGUgcmVxdWVzdGVkIGZyYW1lIGludGVydmFsIGZvciB0aGUKKyAqIGdpdmVuIGZyYW1lIGZvcm1hdCBhbmQgc2l6ZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBieSB0aGUgZGV2aWNlIGFzIHBhcnQgb2YKKyAqIHRoZSBWaWRlbyBQcm9iZSBhbmQgQ29tbWl0IG5lZ290aWF0aW9uLCBidXQgc29tZSBoYXJkd2FyZSBkb24ndCBpbXBsZW1lbnQKKyAqIHRoYXQgZmVhdHVyZS4KKyAqLworc3RhdGljIF9fdTMyIHV2Y190cnlfZnJhbWVfaW50ZXJ2YWwoc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUsIF9fdTMyIGludGVydmFsKQoreworCXVuc2lnbmVkIGludCBpOworCisJaWYgKGZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUpIHsKKwkJX191MzIgYmVzdCA9IC0xLCBkaXN0OworCisJCWZvciAoaSA9IDA7IGkgPCBmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlOyArK2kpIHsKKwkJCWRpc3QgPSBpbnRlcnZhbCA+IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbaV0KKwkJCSAgICAgPyBpbnRlcnZhbCAtIGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbaV0KKwkJCSAgICAgOiBmcmFtZS0+ZHdGcmFtZUludGVydmFsW2ldIC0gaW50ZXJ2YWw7CisKKwkJCWlmIChkaXN0ID4gYmVzdCkKKwkJCQlicmVhazsKKworCQkJYmVzdCA9IGRpc3Q7CisJCX0KKworCQlpbnRlcnZhbCA9IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbaS0xXTsKKwl9IGVsc2UgeworCQljb25zdCBfX3UzMiBtaW4gPSBmcmFtZS0+ZHdGcmFtZUludGVydmFsWzBdOworCQljb25zdCBfX3UzMiBtYXggPSBmcmFtZS0+ZHdGcmFtZUludGVydmFsWzFdOworCQljb25zdCBfX3UzMiBzdGVwID0gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFsyXTsKKworCQlpbnRlcnZhbCA9IG1pbiArIChpbnRlcnZhbCAtIG1pbiArIHN0ZXAvMikgLyBzdGVwICogc3RlcDsKKwkJaWYgKGludGVydmFsID4gbWF4KQorCQkJaW50ZXJ2YWwgPSBtYXg7CisJfQorCisJcmV0dXJuIGludGVydmFsOworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX3RyeV9mb3JtYXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZm10LCBzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpwcm9iZSwKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqKnV2Y19mb3JtYXQsIHN0cnVjdCB1dmNfZnJhbWUgKip1dmNfZnJhbWUpCit7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCA9IE5VTEw7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSBOVUxMOworCV9fdTE2IHJ3LCByaDsKKwl1bnNpZ25lZCBpbnQgZCwgbWF4ZDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlfX3UzMiBpbnRlcnZhbDsKKwlpbnQgcmV0ID0gMDsKKwlfX3U4ICpmY2M7CisKKwlpZiAoZm10LT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmY2MgPSAoX191OCAqKSZmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQ7CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9GT1JNQVQsICJUcnlpbmcgZm9ybWF0IDB4JTA4eCAoJWMlYyVjJWMpOiAldXgldS5cbiIsCisJCQlmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQsCisJCQlmY2NbMF0sIGZjY1sxXSwgZmNjWzJdLCBmY2NbM10sCisJCQlmbXQtPmZtdC5waXgud2lkdGgsIGZtdC0+Zm10LnBpeC5oZWlnaHQpOworCisJLyogQ2hlY2sgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LiAqLworCWZvciAoaSA9IDA7IGkgPCB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0czsgKytpKSB7CisJCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaV07CisJCWlmIChmb3JtYXQtPmZjYyA9PSBmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZm9ybWF0ID09IE5VTEwgfHwgZm9ybWF0LT5mY2MgIT0gZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0KSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRk9STUFULCAiVW5zdXBwb3J0ZWQgZm9ybWF0IDB4JTA4eC5cbiIsCisJCQkJZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogRmluZCB0aGUgY2xvc2VzdCBpbWFnZSBzaXplLiBUaGUgZGlzdGFuY2UgYmV0d2VlbiBpbWFnZSBzaXplcyBpcworCSAqIHRoZSBzaXplIGluIHBpeGVscyBvZiB0aGUgbm9uLW92ZXJsYXBwaW5nIHJlZ2lvbnMgYmV0d2VlbiB0aGUKKwkgKiByZXF1ZXN0ZWQgc2l6ZSBhbmQgdGhlIGZyYW1lLXNwZWNpZmllZCBzaXplLgorCSAqLworCXJ3ID0gZm10LT5mbXQucGl4LndpZHRoOworCXJoID0gZm10LT5mbXQucGl4LmhlaWdodDsKKwltYXhkID0gKHVuc2lnbmVkIGludCktMTsKKworCWZvciAoaSA9IDA7IGkgPCBmb3JtYXQtPm5mcmFtZXM7ICsraSkgeworCQlfX3UxNiB3ID0gZm9ybWF0LT5mcmFtZVtpXS53V2lkdGg7CisJCV9fdTE2IGggPSBmb3JtYXQtPmZyYW1lW2ldLndIZWlnaHQ7CisKKwkJZCA9IG1pbih3LCBydykgKiBtaW4oaCwgcmgpOworCQlkID0gdypoICsgcncqcmggLSAyKmQ7CisJCWlmIChkIDwgbWF4ZCkgeworCQkJbWF4ZCA9IGQ7CisJCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2ldOworCQl9CisKKwkJaWYgKG1heGQgPT0gMCkKKwkJCWJyZWFrOworCX0KKworCWlmIChmcmFtZSA9PSBOVUxMKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRk9STUFULCAiVW5zdXBwb3J0ZWQgc2l6ZSAldXgldS5cbiIsCisJCQkJZm10LT5mbXQucGl4LndpZHRoLCBmbXQtPmZtdC5waXguaGVpZ2h0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogVXNlIHRoZSBkZWZhdWx0IGZyYW1lIGludGVydmFsLiAqLworCWludGVydmFsID0gZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWw7CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9GT1JNQVQsICJVc2luZyBkZWZhdWx0IGZyYW1lIGludGVydmFsICV1LiV1IHVzICIKKwkJIigldS4ldSBmcHMpLlxuIiwgaW50ZXJ2YWwvMTAsIGludGVydmFsJTEwLCAxMDAwMDAwMC9pbnRlcnZhbCwKKwkJKDEwMDAwMDAwMC9pbnRlcnZhbCklMTApOworCisJLyogU2V0IHRoZSBmb3JtYXQgaW5kZXgsIGZyYW1lIGluZGV4IGFuZCBmcmFtZSBpbnRlcnZhbC4gKi8KKwltZW1zZXQocHJvYmUsIDAsIHNpemVvZiAqcHJvYmUpOworCXByb2JlLT5ibUhpbnQgPSAxOwkvKiBkd0ZyYW1lSW50ZXJ2YWwgKi8KKwlwcm9iZS0+YkZvcm1hdEluZGV4ID0gZm9ybWF0LT5pbmRleDsKKwlwcm9iZS0+YkZyYW1lSW5kZXggPSBmcmFtZS0+YkZyYW1lSW5kZXg7CisJcHJvYmUtPmR3RnJhbWVJbnRlcnZhbCA9IHV2Y190cnlfZnJhbWVfaW50ZXJ2YWwoZnJhbWUsIGludGVydmFsKTsKKwkvKiBTb21lIHdlYmNhbXMgc3RhbGwgdGhlIHByb2JlIGNvbnRyb2wgc2V0IHJlcXVlc3Qgd2hlbiB0aGUKKwkgKiBkd01heFZpZGVvRnJhbWVTaXplIGZpZWxkIGlzIHNldCB0byB6ZXJvLiBUaGUgVVZDIHNwZWNpZmljYXRpb24KKwkgKiBjbGVhcmx5IHN0YXRlcyB0aGF0IHRoZSBmaWVsZCBpcyByZWFkLW9ubHkgZnJvbSB0aGUgaG9zdCwgc28gdGhpcworCSAqIGlzIGEgd2ViY2FtIGJ1Zy4gU2V0IGR3TWF4VmlkZW9GcmFtZVNpemUgdG8gdGhlIHZhbHVlIHJlcG9ydGVkIGJ5CisJICogdGhlIHdlYmNhbSB0byB3b3JrIGFyb3VuZCB0aGUgcHJvYmxlbS4KKwkgKgorCSAqIFRoZSB3b3JrYXJvdW5kIGNvdWxkIHByb2JhYmx5IGJlIGVuYWJsZWQgZm9yIGFsbCB3ZWJjYW1zLCBzbyB0aGUKKwkgKiBxdWlyayBjYW4gYmUgcmVtb3ZlZCBpZiBuZWVkZWQuIEl0J3MgY3VycmVudGx5IHVzZWZ1bCB0byBkZXRlY3QKKwkgKiB3ZWJjYW0gYnVncyBhbmQgZml4IHRoZW0gYmVmb3JlIHRoZXkgaGl0IHRoZSBtYXJrZXQgKHByb3ZpZGluZworCSAqIGRldmVsb3BlcnMgdGVzdCB0aGVpciB3ZWJjYW1zIHdpdGggdGhlIExpbnV4IGRyaXZlciBhcyB3ZWxsIGFzIHdpdGgKKwkgKiB0aGUgV2luZG93cyBkcml2ZXIpLgorCSAqLworCWlmICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfUFJPQkVfRVhUUkFGSUVMRFMpCisJCXByb2JlLT5kd01heFZpZGVvRnJhbWVTaXplID0KKwkJCXZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKworCS8qIFByb2JlIHRoZSBkZXZpY2UgKi8KKwlpZiAoKHJldCA9IHV2Y19wcm9iZV92aWRlbyh2aWRlbywgcHJvYmUpKSA8IDApCisJCWdvdG8gZG9uZTsKKworCWZtdC0+Zm10LnBpeC53aWR0aCA9IGZyYW1lLT53V2lkdGg7CisJZm10LT5mbXQucGl4LmhlaWdodCA9IGZyYW1lLT53SGVpZ2h0OworCWZtdC0+Zm10LnBpeC5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsKKwlmbXQtPmZtdC5waXguYnl0ZXNwZXJsaW5lID0gZm9ybWF0LT5icHAgKiBmcmFtZS0+d1dpZHRoIC8gODsKKwlmbXQtPmZtdC5waXguc2l6ZWltYWdlID0gcHJvYmUtPmR3TWF4VmlkZW9GcmFtZVNpemU7CisJZm10LT5mbXQucGl4LmNvbG9yc3BhY2UgPSBmb3JtYXQtPmNvbG9yc3BhY2U7CisJZm10LT5mbXQucGl4LnByaXYgPSAwOworCisJaWYgKHV2Y19mb3JtYXQgIT0gTlVMTCkKKwkJKnV2Y19mb3JtYXQgPSBmb3JtYXQ7CisJaWYgKHV2Y19mcmFtZSAhPSBOVUxMKQorCQkqdXZjX2ZyYW1lID0gZnJhbWU7CisKK2RvbmU6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9nZXRfZm9ybWF0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmZtdCkKK3sKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0ID0gdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2Zvcm1hdDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN1cl9mcmFtZTsKKworCWlmIChmbXQtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChmb3JtYXQgPT0gTlVMTCB8fCBmcmFtZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdCA9IGZvcm1hdC0+ZmNjOworCWZtdC0+Zm10LnBpeC53aWR0aCA9IGZyYW1lLT53V2lkdGg7CisJZm10LT5mbXQucGl4LmhlaWdodCA9IGZyYW1lLT53SGVpZ2h0OworCWZtdC0+Zm10LnBpeC5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsKKwlmbXQtPmZtdC5waXguYnl0ZXNwZXJsaW5lID0gZm9ybWF0LT5icHAgKiBmcmFtZS0+d1dpZHRoIC8gODsKKwlmbXQtPmZtdC5waXguc2l6ZWltYWdlID0gdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFZpZGVvRnJhbWVTaXplOworCWZtdC0+Zm10LnBpeC5jb2xvcnNwYWNlID0gZm9ybWF0LT5jb2xvcnNwYWNlOworCWZtdC0+Zm10LnBpeC5wcml2ID0gMDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX3NldF9mb3JtYXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZm10KQoreworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgcHJvYmU7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKKwlpbnQgcmV0OworCisJaWYgKGZtdC0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHV2Y19xdWV1ZV9zdHJlYW1pbmcoJnZpZGVvLT5xdWV1ZSkpCisJCXJldHVybiAtRUJVU1k7CisKKwlyZXQgPSB1dmNfdjRsMl90cnlfZm9ybWF0KHZpZGVvLCBmbXQsICZwcm9iZSwgJmZvcm1hdCwgJmZyYW1lKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCAmcHJvYmUsIDApKSA8IDApCisJCXJldHVybiByZXQ7CisKKwltZW1jcHkoJnZpZGVvLT5zdHJlYW1pbmctPmN0cmwsICZwcm9iZSwgc2l6ZW9mIHByb2JlKTsKKwl2aWRlby0+c3RyZWFtaW5nLT5jdXJfZm9ybWF0ID0gZm9ybWF0OworCXZpZGVvLT5zdHJlYW1pbmctPmN1cl9mcmFtZSA9IGZyYW1lOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfZ2V0X3N0cmVhbXBhcm0oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdjRsMl9zdHJlYW1wYXJtICpwYXJtKQoreworCXVpbnQzMl90IG51bWVyYXRvciwgZGVub21pbmF0b3I7CisKKwlpZiAocGFybS0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCXJldHVybiAtRUlOVkFMOworCisJbnVtZXJhdG9yID0gdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd0ZyYW1lSW50ZXJ2YWw7CisJZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJm51bWVyYXRvciwgJmRlbm9taW5hdG9yLCA4LCAzMzMpOworCisJbWVtc2V0KHBhcm0sIDAsIHNpemVvZiAqcGFybSk7CisJcGFybS0+dHlwZSA9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRTsKKwlwYXJtLT5wYXJtLmNhcHR1cmUuY2FwYWJpbGl0eSA9IFY0TDJfQ0FQX1RJTUVQRVJGUkFNRTsKKwlwYXJtLT5wYXJtLmNhcHR1cmUuY2FwdHVyZW1vZGUgPSAwOworCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUubnVtZXJhdG9yID0gbnVtZXJhdG9yOworCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUuZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcjsKKwlwYXJtLT5wYXJtLmNhcHR1cmUuZXh0ZW5kZWRtb2RlID0gMDsKKwlwYXJtLT5wYXJtLmNhcHR1cmUucmVhZGJ1ZmZlcnMgPSAwOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfc2V0X3N0cmVhbXBhcm0oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdjRsMl9zdHJlYW1wYXJtICpwYXJtKQoreworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2ZyYW1lOworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgcHJvYmU7CisJdWludDMyX3QgaW50ZXJ2YWw7CisJaW50IHJldDsKKworCWlmIChwYXJtLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAodXZjX3F1ZXVlX3N0cmVhbWluZygmdmlkZW8tPnF1ZXVlKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCW1lbWNweSgmcHJvYmUsICZ2aWRlby0+c3RyZWFtaW5nLT5jdHJsLCBzaXplb2YgcHJvYmUpOworCWludGVydmFsID0gdXZjX2ZyYWN0aW9uX3RvX2ludGVydmFsKAorCQkJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5udW1lcmF0b3IsCisJCQlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLmRlbm9taW5hdG9yKTsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfRk9STUFULCAiU2V0dGluZyBmcmFtZSBpbnRlcnZhbCB0byAldS8ldSAoJXUpLlxuIiwKKwkJCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUubnVtZXJhdG9yLAorCQkJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5kZW5vbWluYXRvciwKKwkJCWludGVydmFsKTsKKwlwcm9iZS5kd0ZyYW1lSW50ZXJ2YWwgPSB1dmNfdHJ5X2ZyYW1lX2ludGVydmFsKGZyYW1lLCBpbnRlcnZhbCk7CisKKwkvKiBQcm9iZSB0aGUgZGV2aWNlIHdpdGggdGhlIG5ldyBzZXR0aW5ncy4gKi8KKwlpZiAoKHJldCA9IHV2Y19wcm9iZV92aWRlbyh2aWRlbywgJnByb2JlKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogQ29tbWl0IHRoZSBuZXcgc2V0dGluZ3MuICovCisJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sICZwcm9iZSwgMCkpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCW1lbWNweSgmdmlkZW8tPnN0cmVhbWluZy0+Y3RybCwgJnByb2JlLCBzaXplb2YgcHJvYmUpOworCisJLyogUmV0dXJuIHRoZSBhY3R1YWwgZnJhbWUgcGVyaW9kLiAqLworCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUubnVtZXJhdG9yID0gcHJvYmUuZHdGcmFtZUludGVydmFsOworCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUuZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJnBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUubnVtZXJhdG9yLAorCQkJCSZwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLmRlbm9taW5hdG9yLAorCQkJCTgsIDMzMyk7CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBQcml2aWxlZ2UgbWFuYWdlbWVudAorICovCisKKy8qCisgKiBQcml2aWxlZ2UgbWFuYWdlbWVudCBpcyB0aGUgbXVsdGlwbGUtb3BlbiBpbXBsZW1lbnRhdGlvbiBiYXNpcy4gVGhlIGN1cnJlbnQKKyAqIGltcGxlbWVudGF0aW9uIGlzIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQgZm9yIHRoZSBlbmQtdXNlciBhbmQgZG9lc24ndAorICogcmVxdWlyZSBleHBsaWNpdCB1c2Ugb2YgdGhlIFZJRElPQ19HX1BSSU9SSVRZIGFuZCBWSURJT0NfU19QUklPUklUWSBpb2N0bHMuCisgKiBUaG9zZSBpb2N0bHMgZW5hYmxlIGZpbmVyIGNvbnRyb2wgb24gdGhlIGRldmljZSAoYnkgbWFraW5nIHBvc3NpYmxlIGZvciBhCisgKiB1c2VyIHRvIHJlcXVlc3QgZXhjbHVzaXZlIGFjY2VzcyB0byBhIGRldmljZSksIGJ1dCBhcmUgbm90IG1hdHVyZSB5ZXQuCisgKiBTd2l0Y2hpbmcgdG8gdGhlIFY0TDIgcHJpb3JpdHkgbWVjaGFuaXNtIG1pZ2h0IGJlIGNvbnNpZGVyZWQgaW4gdGhlIGZ1dHVyZQorICogaWYgdGhpcyBzaXR1YXRpb24gY2hhbmdlcy4KKyAqCisgKiBFYWNoIG9wZW4gaW5zdGFuY2Ugb2YgYSBVVkMgZGV2aWNlIGNhbiBlaXRoZXIgYmUgaW4gYSBwcml2aWxlZ2VkIG9yCisgKiB1bnByaXZpbGVnZWQgc3RhdGUuIE9ubHkgYSBzaW5nbGUgaW5zdGFuY2UgY2FuIGJlIGluIGEgcHJpdmlsZWdlZCBzdGF0ZSBhdAorICogYSBnaXZlbiB0aW1lLiBUcnlpbmcgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24gd2hpY2ggcmVxdWlyZXMgcHJpdmlsZWdlcyB3aWxsCisgKiBhdXRvbWF0aWNhbGx5IGFjcXVpcmUgdGhlIHJlcXVpcmVkIHByaXZpbGVnZXMgaWYgcG9zc2libGUsIG9yIHJldHVybiAtRUJVU1kKKyAqIG90aGVyd2lzZS4gUHJpdmlsZWdlcyBhcmUgZGlzbWlzc2VkIHdoZW4gY2xvc2luZyB0aGUgaW5zdGFuY2UuCisgKgorICogT3BlcmF0aW9ucyB3aGljaCByZXF1aXJlIHByaXZpbGVnZXMgYXJlOgorICoKKyAqIC0gVklESU9DX1NfSU5QVVQKKyAqIC0gVklESU9DX1NfUEFSTQorICogLSBWSURJT0NfU19GTVQKKyAqIC0gVklESU9DX1RSWV9GTVQKKyAqIC0gVklESU9DX1JFUUJVRlMKKyAqLworc3RhdGljIGludCB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKHN0cnVjdCB1dmNfZmggKmhhbmRsZSkKK3sKKwlpbnQgcmV0ID0gMDsKKworCS8qIEFsd2F5cyBzdWNjZWVkIGlmIHRoZSBoYW5kbGUgaXMgYWxyZWFkeSBwcml2aWxlZ2VkLiAqLworCWlmIChoYW5kbGUtPnN0YXRlID09IFVWQ19IQU5ETEVfQUNUSVZFKQorCQlyZXR1cm4gMDsKKworCS8qIENoZWNrIGlmIHRoZSBkZXZpY2UgYWxyZWFkeSBoYXMgYSBwcml2aWxlZ2VkIGhhbmRsZS4gKi8KKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCWlmIChhdG9taWNfaW5jX3JldHVybigmaGFuZGxlLT5kZXZpY2UtPmFjdGl2ZSkgIT0gMSkgeworCQlhdG9taWNfZGVjKCZoYW5kbGUtPmRldmljZS0+YWN0aXZlKTsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIGRvbmU7CisJfQorCisJaGFuZGxlLT5zdGF0ZSA9IFVWQ19IQU5ETEVfQUNUSVZFOworCitkb25lOgorCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB1dmNfZGlzbWlzc19wcml2aWxlZ2VzKHN0cnVjdCB1dmNfZmggKmhhbmRsZSkKK3sKKwlpZiAoaGFuZGxlLT5zdGF0ZSA9PSBVVkNfSEFORExFX0FDVElWRSkKKwkJYXRvbWljX2RlYygmaGFuZGxlLT5kZXZpY2UtPmFjdGl2ZSk7CisKKwloYW5kbGUtPnN0YXRlID0gVVZDX0hBTkRMRV9QQVNTSVZFOworfQorCitzdGF0aWMgaW50IHV2Y19oYXNfcHJpdmlsZWdlcyhzdHJ1Y3QgdXZjX2ZoICpoYW5kbGUpCit7CisJcmV0dXJuIGhhbmRsZS0+c3RhdGUgPT0gVVZDX0hBTkRMRV9BQ1RJVkU7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVjRMMiBmaWxlIG9wZXJhdGlvbnMKKyAqLworCitzdGF0aWMgaW50IHV2Y192NGwyX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldjsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW87CisJc3RydWN0IHV2Y19maCAqaGFuZGxlOworCWludCByZXQgPSAwOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX29wZW5cbiIpOworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisJdmRldiA9IHZpZGVvX2RldmRhdGEoZmlsZSk7CisJdmlkZW8gPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsKKworCWlmICh2aWRlby0+ZGV2LT5zdGF0ZSAmIFVWQ19ERVZfRElTQ09OTkVDVEVEKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlyZXQgPSB1c2JfYXV0b3BtX2dldF9pbnRlcmZhY2UodmlkZW8tPmRldi0+aW50Zik7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZG9uZTsKKworCS8qIENyZWF0ZSB0aGUgZGV2aWNlIGhhbmRsZS4gKi8KKwloYW5kbGUgPSBremFsbG9jKHNpemVvZiAqaGFuZGxlLCBHRlBfS0VSTkVMKTsKKwlpZiAoaGFuZGxlID09IE5VTEwpIHsKKwkJdXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPmludGYpOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGRvbmU7CisJfQorCisJaGFuZGxlLT5kZXZpY2UgPSB2aWRlbzsKKwloYW5kbGUtPnN0YXRlID0gVVZDX0hBTkRMRV9QQVNTSVZFOworCWZpbGUtPnByaXZhdGVfZGF0YSA9IGhhbmRsZTsKKworCWtyZWZfZ2V0KCZ2aWRlby0+ZGV2LT5rcmVmKTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPSB2aWRlb19kZXZkYXRhKGZpbGUpOworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyA9IHZpZGVvX2dldF9kcnZkYXRhKHZkZXYpOworCXN0cnVjdCB1dmNfZmggKmhhbmRsZSA9IChzdHJ1Y3QgdXZjX2ZoICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX3JlbGVhc2VcbiIpOworCisJLyogT25seSBmcmVlIHJlc291cmNlcyBpZiB0aGlzIGlzIGEgcHJpdmlsZWdlZCBoYW5kbGUuICovCisJaWYgKHV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKSB7CisJCXV2Y192aWRlb19lbmFibGUodmlkZW8sIDApOworCisJCW11dGV4X2xvY2soJnZpZGVvLT5xdWV1ZS5tdXRleCk7CisJCWlmICh1dmNfZnJlZV9idWZmZXJzKCZ2aWRlby0+cXVldWUpIDwgMCkKKwkJCXV2Y19wcmludGsoS0VSTl9FUlIsICJ1dmNfdjRsMl9yZWxlYXNlOiBVbmFibGUgdG8gIgorCQkJCQkiZnJlZSBidWZmZXJzLlxuIik7CisJCW11dGV4X3VubG9jaygmdmlkZW8tPnF1ZXVlLm11dGV4KTsKKwl9CisKKwkvKiBSZWxlYXNlIHRoZSBmaWxlIGhhbmRsZS4gKi8KKwl1dmNfZGlzbWlzc19wcml2aWxlZ2VzKGhhbmRsZSk7CisJa2ZyZWUoaGFuZGxlKTsKKwlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCisJdXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPmludGYpOworCWtyZWZfcHV0KCZ2aWRlby0+ZGV2LT5rcmVmLCB1dmNfZGVsZXRlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9kb19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9IHZpZGVvX2RldmRhdGEoZmlsZSk7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvID0gdmlkZW9fZ2V0X2RydmRhdGEodmRldik7CisJc3RydWN0IHV2Y19maCAqaGFuZGxlID0gKHN0cnVjdCB1dmNfZmggKilmaWxlLT5wcml2YXRlX2RhdGE7CisJaW50IHJldCA9IDA7CisKKwlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX0lPQ1RMKQorCQl2NGxfcHJpbnRrX2lvY3RsKGNtZCk7CisKKwlzd2l0Y2ggKGNtZCkgeworCS8qIFF1ZXJ5IGNhcGFiaWxpdGllcyAqLworCWNhc2UgVklESU9DX1FVRVJZQ0FQOgorCXsKKwkJc3RydWN0IHY0bDJfY2FwYWJpbGl0eSAqY2FwID0gYXJnOworCisJCW1lbXNldChjYXAsIDAsIHNpemVvZiAqY2FwKTsKKwkJc3RybmNweShjYXAtPmRyaXZlciwgInV2Y3ZpZGVvIiwgc2l6ZW9mIGNhcC0+ZHJpdmVyKTsKKwkJc3RybmNweShjYXAtPmNhcmQsIHZkZXYtPm5hbWUsIDMyKTsKKwkJc3RybmNweShjYXAtPmJ1c19pbmZvLCB2aWRlby0+ZGV2LT51ZGV2LT5idXMtPmJ1c19uYW1lLAorCQkJc2l6ZW9mIGNhcC0+YnVzX2luZm8pOworCQljYXAtPnZlcnNpb24gPSBEUklWRVJfVkVSU0lPTl9OVU1CRVI7CisJCWNhcC0+Y2FwYWJpbGl0aWVzID0gVjRMMl9DQVBfVklERU9fQ0FQVFVSRQorCQkJCSAgfCBWNEwyX0NBUF9TVFJFQU1JTkc7CisJCWJyZWFrOworCX0KKworCS8qIEdldCwgU2V0ICYgUXVlcnkgY29udHJvbCAqLworCWNhc2UgVklESU9DX1FVRVJZQ1RSTDoKKwkJcmV0dXJuIHV2Y19xdWVyeV92NGwyX2N0cmwodmlkZW8sIGFyZyk7CisKKwljYXNlIFZJRElPQ19HX0NUUkw6CisJeworCQlzdHJ1Y3QgdjRsMl9jb250cm9sICpjdHJsID0gYXJnOworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCB4Y3RybDsKKworCQltZW1zZXQoJnhjdHJsLCAwLCBzaXplb2YgeGN0cmwpOworCQl4Y3RybC5pZCA9IGN0cmwtPmlkOworCisJCXV2Y19jdHJsX2JlZ2luKHZpZGVvKTsKKwkJcmV0ID0gdXZjX2N0cmxfZ2V0KHZpZGVvLCAmeGN0cmwpOworCQl1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCWlmIChyZXQgPj0gMCkKKwkJCWN0cmwtPnZhbHVlID0geGN0cmwudmFsdWU7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1NfQ1RSTDoKKwl7CisJCXN0cnVjdCB2NGwyX2NvbnRyb2wgKmN0cmwgPSBhcmc7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sIHhjdHJsOworCisJCW1lbXNldCgmeGN0cmwsIDAsIHNpemVvZiB4Y3RybCk7CisJCXhjdHJsLmlkID0gY3RybC0+aWQ7CisJCXhjdHJsLnZhbHVlID0gY3RybC0+dmFsdWU7CisKKwkJdXZjX2N0cmxfYmVnaW4odmlkZW8pOworCQlyZXQgPSB1dmNfY3RybF9zZXQodmlkZW8sICZ4Y3RybCk7CisJCWlmIChyZXQgPCAwKSB7CisJCQl1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJCXJldCA9IHV2Y19jdHJsX2NvbW1pdCh2aWRlbyk7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1FVRVJZTUVOVToKKwkJcmV0dXJuIHV2Y192NGwyX3F1ZXJ5X21lbnUodmlkZW8sIGFyZyk7CisKKwljYXNlIFZJRElPQ19HX0VYVF9DVFJMUzoKKwl7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9scyAqY3RybHMgPSBhcmc7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICpjdHJsID0gY3RybHMtPmNvbnRyb2xzOworCQl1bnNpZ25lZCBpbnQgaTsKKworCQl1dmNfY3RybF9iZWdpbih2aWRlbyk7CisJCWZvciAoaSA9IDA7IGkgPCBjdHJscy0+Y291bnQ7ICsrY3RybCwgKytpKSB7CisJCQlyZXQgPSB1dmNfY3RybF9nZXQodmlkZW8sIGN0cmwpOworCQkJaWYgKHJldCA8IDApIHsKKwkJCQl1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCQkJY3RybHMtPmVycm9yX2lkeCA9IGk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJfQorCQljdHJscy0+ZXJyb3JfaWR4ID0gMDsKKwkJcmV0ID0gdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19TX0VYVF9DVFJMUzoKKwljYXNlIFZJRElPQ19UUllfRVhUX0NUUkxTOgorCXsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2xzICpjdHJscyA9IGFyZzsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKmN0cmwgPSBjdHJscy0+Y29udHJvbHM7CisJCXVuc2lnbmVkIGludCBpOworCisJCXJldCA9IHV2Y19jdHJsX2JlZ2luKHZpZGVvKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWZvciAoaSA9IDA7IGkgPCBjdHJscy0+Y291bnQ7ICsrY3RybCwgKytpKSB7CisJCQlyZXQgPSB1dmNfY3RybF9zZXQodmlkZW8sIGN0cmwpOworCQkJaWYgKHJldCA8IDApIHsKKwkJCQl1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCQkJY3RybHMtPmVycm9yX2lkeCA9IGk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJfQorCisJCWN0cmxzLT5lcnJvcl9pZHggPSAwOworCisJCWlmIChjbWQgPT0gVklESU9DX1NfRVhUX0NUUkxTKQorCQkJcmV0ID0gdXZjX2N0cmxfY29tbWl0KHZpZGVvKTsKKwkJZWxzZQorCQkJcmV0ID0gdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQlicmVhazsKKwl9CisKKwkvKiBHZXQsIFNldCAmIEVudW0gaW5wdXQgKi8KKwljYXNlIFZJRElPQ19FTlVNSU5QVVQ6CisJeworCQljb25zdCBzdHJ1Y3QgdXZjX2VudGl0eSAqc2VsZWN0b3IgPSB2aWRlby0+c2VsZWN0b3I7CisJCXN0cnVjdCB2NGwyX2lucHV0ICppbnB1dCA9IGFyZzsKKwkJc3RydWN0IHV2Y19lbnRpdHkgKml0ZXJtID0gTlVMTDsKKwkJdTMyIGluZGV4ID0gaW5wdXQtPmluZGV4OworCQlpbnQgcGluID0gMDsKKworCQlpZiAoc2VsZWN0b3IgPT0gTlVMTCB8fAorCQkgICAgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19JR05PUkVfU0VMRUNUT1JfVU5JVCkpIHsKKwkJCWlmIChpbmRleCAhPSAwKQorCQkJCXJldHVybiAtRUlOVkFMOworCQkJaXRlcm0gPSBsaXN0X2ZpcnN0X2VudHJ5KCZ2aWRlby0+aXRlcm1zLAorCQkJCQlzdHJ1Y3QgdXZjX2VudGl0eSwgY2hhaW4pOworCQkJcGluID0gaXRlcm0tPmlkOworCQl9IGVsc2UgaWYgKHBpbiA8IHNlbGVjdG9yLT5zZWxlY3Rvci5iTnJJblBpbnMpIHsKKwkJCXBpbiA9IHNlbGVjdG9yLT5zZWxlY3Rvci5iYVNvdXJjZUlEW2luZGV4XTsKKwkJCWxpc3RfZm9yX2VhY2hfZW50cnkoaXRlcm0sIHZpZGVvLT5pdGVybXMubmV4dCwgY2hhaW4pIHsKKwkJCQlpZiAoaXRlcm0tPmlkID09IHBpbikKKwkJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoaXRlcm0gPT0gTlVMTCB8fCBpdGVybS0+aWQgIT0gcGluKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJbWVtc2V0KGlucHV0LCAwLCBzaXplb2YgKmlucHV0KTsKKwkJaW5wdXQtPmluZGV4ID0gaW5kZXg7CisJCXN0cm5jcHkoaW5wdXQtPm5hbWUsIGl0ZXJtLT5uYW1lLCBzaXplb2YgaW5wdXQtPm5hbWUpOworCQlpZiAoVVZDX0VOVElUWV9UWVBFKGl0ZXJtKSA9PSBJVFRfQ0FNRVJBKQorCQkJaW5wdXQtPnR5cGUgPSBWNEwyX0lOUFVUX1RZUEVfQ0FNRVJBOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19HX0lOUFVUOgorCXsKKwkJdTggaW5wdXQ7CisKKwkJaWYgKHZpZGVvLT5zZWxlY3RvciA9PSBOVUxMIHx8CisJCSAgICAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX0lHTk9SRV9TRUxFQ1RPUl9VTklUKSkgeworCQkJKihpbnQgKilhcmcgPSAwOworCQkJYnJlYWs7CisJCX0KKworCQlyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfQ1VSLCB2aWRlby0+c2VsZWN0b3ItPmlkLAorCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgU1VfSU5QVVRfU0VMRUNUX0NPTlRST0wsCisJCQkmaW5wdXQsIDEpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJKihpbnQgKilhcmcgPSBpbnB1dCAtIDE7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1NfSU5QVVQ6CisJeworCQl1OCBpbnB1dCA9ICoodTMyICopYXJnICsgMTsKKworCQlpZiAoKHJldCA9IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoaGFuZGxlKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAodmlkZW8tPnNlbGVjdG9yID09IE5VTEwgfHwKKwkJICAgICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfSUdOT1JFX1NFTEVDVE9SX1VOSVQpKSB7CisJCQlpZiAoaW5wdXQgIT0gMSkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKGlucHV0ID4gdmlkZW8tPnNlbGVjdG9yLT5zZWxlY3Rvci5iTnJJblBpbnMpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlyZXR1cm4gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgU0VUX0NVUiwgdmlkZW8tPnNlbGVjdG9yLT5pZCwKKwkJCXZpZGVvLT5kZXYtPmludGZudW0sIFNVX0lOUFVUX1NFTEVDVF9DT05UUk9MLAorCQkJJmlucHV0LCAxKTsKKwl9CisKKwkvKiBUcnksIEdldCwgU2V0ICYgRW51bSBmb3JtYXQgKi8KKwljYXNlIFZJRElPQ19FTlVNX0ZNVDoKKwl7CisJCXN0cnVjdCB2NGwyX2ZtdGRlc2MgKmZtdCA9IGFyZzsKKwkJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdDsKKworCQlpZiAoZm10LT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSB8fAorCQkgICAgZm10LT5pbmRleCA+PSB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0cykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbZm10LT5pbmRleF07CisJCWZtdC0+ZmxhZ3MgPSAwOworCQlpZiAoZm9ybWF0LT5mbGFncyAmIFVWQ19GTVRfRkxBR19DT01QUkVTU0VEKQorCQkJZm10LT5mbGFncyB8PSBWNEwyX0ZNVF9GTEFHX0NPTVBSRVNTRUQ7CisJCXN0cm5jcHkoZm10LT5kZXNjcmlwdGlvbiwgZm9ybWF0LT5uYW1lLAorCQkJc2l6ZW9mIGZtdC0+ZGVzY3JpcHRpb24pOworCQlmbXQtPmRlc2NyaXB0aW9uW3NpemVvZiBmbXQtPmRlc2NyaXB0aW9uIC0gMV0gPSAwOworCQlmbXQtPnBpeGVsZm9ybWF0ID0gZm9ybWF0LT5mY2M7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1RSWV9GTVQ6CisJeworCQlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIHByb2JlOworCisJCWlmICgocmV0ID0gdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhoYW5kbGUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldHVybiB1dmNfdjRsMl90cnlfZm9ybWF0KHZpZGVvLCBhcmcsICZwcm9iZSwgTlVMTCwgTlVMTCk7CisJfQorCisJY2FzZSBWSURJT0NfU19GTVQ6CisJCWlmICgocmV0ID0gdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhoYW5kbGUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldHVybiB1dmNfdjRsMl9zZXRfZm9ybWF0KHZpZGVvLCBhcmcpOworCisJY2FzZSBWSURJT0NfR19GTVQ6CisJCXJldHVybiB1dmNfdjRsMl9nZXRfZm9ybWF0KHZpZGVvLCBhcmcpOworCisJLyogRnJhbWUgc2l6ZSBlbnVtZXJhdGlvbiAqLworCWNhc2UgVklESU9DX0VOVU1fRlJBTUVTSVpFUzoKKwl7CisJCXN0cnVjdCB2NGwyX2ZybXNpemVlbnVtICpmc2l6ZSA9IGFyZzsKKwkJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCA9IE5VTEw7CisJCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworCQlpbnQgaTsKKworCQkvKiBMb29rIGZvciB0aGUgZ2l2ZW4gcGl4ZWwgZm9ybWF0ICovCisJCWZvciAoaSA9IDA7IGkgPCB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0czsgaSsrKSB7CisJCQlpZiAodmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ldLmZjYyA9PQorCQkJCQlmc2l6ZS0+cGl4ZWxfZm9ybWF0KSB7CisJCQkJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpXTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlpZiAoZm9ybWF0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoZnNpemUtPmluZGV4ID49IGZvcm1hdC0+bmZyYW1lcykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbZnNpemUtPmluZGV4XTsKKwkJZnNpemUtPnR5cGUgPSBWNEwyX0ZSTVNJWkVfVFlQRV9ESVNDUkVURTsKKwkJZnNpemUtPmRpc2NyZXRlLndpZHRoID0gZnJhbWUtPndXaWR0aDsKKwkJZnNpemUtPmRpc2NyZXRlLmhlaWdodCA9IGZyYW1lLT53SGVpZ2h0OworCQlicmVhazsKKwl9CisKKwkvKiBGcmFtZSBpbnRlcnZhbCBlbnVtZXJhdGlvbiAqLworCWNhc2UgVklESU9DX0VOVU1fRlJBTUVJTlRFUlZBTFM6CisJeworCQlzdHJ1Y3QgdjRsMl9mcm1pdmFsZW51bSAqZml2YWwgPSBhcmc7CisJCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOworCQlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IE5VTEw7CisJCWludCBpOworCisJCS8qIExvb2sgZm9yIHRoZSBnaXZlbiBwaXhlbCBmb3JtYXQgYW5kIGZyYW1lIHNpemUgKi8KKwkJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzOyBpKyspIHsKKwkJCWlmICh2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaV0uZmNjID09CisJCQkJCWZpdmFsLT5waXhlbF9mb3JtYXQpIHsKKwkJCQlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ldOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChmb3JtYXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWZvciAoaSA9IDA7IGkgPCBmb3JtYXQtPm5mcmFtZXM7IGkrKykgeworCQkJaWYgKGZvcm1hdC0+ZnJhbWVbaV0ud1dpZHRoID09IGZpdmFsLT53aWR0aCAmJgorCQkJICAgIGZvcm1hdC0+ZnJhbWVbaV0ud0hlaWdodCA9PSBmaXZhbC0+aGVpZ2h0KSB7CisJCQkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtpXTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlpZiAoZnJhbWUgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmIChmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlKSB7CisJCQlpZiAoZml2YWwtPmluZGV4ID49IGZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUpCisJCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJCWZpdmFsLT50eXBlID0gVjRMMl9GUk1JVkFMX1RZUEVfRElTQ1JFVEU7CisJCQlmaXZhbC0+ZGlzY3JldGUubnVtZXJhdG9yID0KKwkJCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsW2ZpdmFsLT5pbmRleF07CisJCQlmaXZhbC0+ZGlzY3JldGUuZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwkJCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmZml2YWwtPmRpc2NyZXRlLm51bWVyYXRvciwKKwkJCQkmZml2YWwtPmRpc2NyZXRlLmRlbm9taW5hdG9yLCA4LCAzMzMpOworCQl9IGVsc2UgeworCQkJZml2YWwtPnR5cGUgPSBWNEwyX0ZSTUlWQUxfVFlQRV9TVEVQV0lTRTsKKwkJCWZpdmFsLT5zdGVwd2lzZS5taW4ubnVtZXJhdG9yID0KKwkJCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsWzBdOworCQkJZml2YWwtPnN0ZXB3aXNlLm1pbi5kZW5vbWluYXRvciA9IDEwMDAwMDAwOworCQkJZml2YWwtPnN0ZXB3aXNlLm1heC5udW1lcmF0b3IgPQorCQkJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMV07CisJCQlmaXZhbC0+c3RlcHdpc2UubWF4LmRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJCQlmaXZhbC0+c3RlcHdpc2Uuc3RlcC5udW1lcmF0b3IgPQorCQkJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMl07CisJCQlmaXZhbC0+c3RlcHdpc2Uuc3RlcC5kZW5vbWluYXRvciA9IDEwMDAwMDAwOworCQkJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZmaXZhbC0+c3RlcHdpc2UubWluLm51bWVyYXRvciwKKwkJCQkmZml2YWwtPnN0ZXB3aXNlLm1pbi5kZW5vbWluYXRvciwgOCwgMzMzKTsKKwkJCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmZml2YWwtPnN0ZXB3aXNlLm1heC5udW1lcmF0b3IsCisJCQkJJmZpdmFsLT5zdGVwd2lzZS5tYXguZGVub21pbmF0b3IsIDgsIDMzMyk7CisJCQl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJmZpdmFsLT5zdGVwd2lzZS5zdGVwLm51bWVyYXRvciwKKwkJCQkmZml2YWwtPnN0ZXB3aXNlLnN0ZXAuZGVub21pbmF0b3IsIDgsIDMzMyk7CisJCX0KKwkJYnJlYWs7CisJfQorCisJLyogR2V0ICYgU2V0IHN0cmVhbWluZyBwYXJhbWV0ZXJzICovCisJY2FzZSBWSURJT0NfR19QQVJNOgorCQlyZXR1cm4gdXZjX3Y0bDJfZ2V0X3N0cmVhbXBhcm0odmlkZW8sIGFyZyk7CisKKwljYXNlIFZJRElPQ19TX1BBUk06CisJCWlmICgocmV0ID0gdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhoYW5kbGUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldHVybiB1dmNfdjRsMl9zZXRfc3RyZWFtcGFybSh2aWRlbywgYXJnKTsKKworCS8qIENyb3BwaW5nIGFuZCBzY2FsaW5nICovCisJY2FzZSBWSURJT0NfQ1JPUENBUDoKKwl7CisJCXN0cnVjdCB2NGwyX2Nyb3BjYXAgKmNjYXAgPSBhcmc7CisJCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2ZyYW1lOworCisJCWlmIChjY2FwLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWNjYXAtPmJvdW5kcy5sZWZ0ID0gMDsKKwkJY2NhcC0+Ym91bmRzLnRvcCA9IDA7CisJCWNjYXAtPmJvdW5kcy53aWR0aCA9IGZyYW1lLT53V2lkdGg7CisJCWNjYXAtPmJvdW5kcy5oZWlnaHQgPSBmcmFtZS0+d0hlaWdodDsKKworCQljY2FwLT5kZWZyZWN0ID0gY2NhcC0+Ym91bmRzOworCisJCWNjYXAtPnBpeGVsYXNwZWN0Lm51bWVyYXRvciA9IDE7CisJCWNjYXAtPnBpeGVsYXNwZWN0LmRlbm9taW5hdG9yID0gMTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfR19DUk9QOgorCWNhc2UgVklESU9DX1NfQ1JPUDoKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBCdWZmZXJzICYgc3RyZWFtaW5nICovCisJY2FzZSBWSURJT0NfUkVRQlVGUzoKKwl7CisJCXN0cnVjdCB2NGwyX3JlcXVlc3RidWZmZXJzICpyYiA9IGFyZzsKKwkJdW5zaWduZWQgaW50IGJ1ZnNpemUgPQorCQkJdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFZpZGVvRnJhbWVTaXplOworCisJCWlmIChyYi0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgfHwKKwkJICAgIHJiLT5tZW1vcnkgIT0gVjRMMl9NRU1PUllfTU1BUCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmICgocmV0ID0gdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhoYW5kbGUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IHV2Y19hbGxvY19idWZmZXJzKCZ2aWRlby0+cXVldWUsIHJiLT5jb3VudCwgYnVmc2l6ZSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAoISh2aWRlby0+c3RyZWFtaW5nLT5jdXJfZm9ybWF0LT5mbGFncyAmCisJCSAgICBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRCkpCisJCQl2aWRlby0+cXVldWUuZmxhZ3MgfD0gVVZDX1FVRVVFX0RST1BfSU5DT01QTEVURTsKKworCQlyYi0+Y291bnQgPSByZXQ7CisJCXJldCA9IDA7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1FVRVJZQlVGOgorCXsKKwkJc3RydWN0IHY0bDJfYnVmZmVyICpidWYgPSBhcmc7CisKKwkJaWYgKGJ1Zi0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoIXV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQlyZXR1cm4gdXZjX3F1ZXJ5X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCX0KKworCWNhc2UgVklESU9DX1FCVUY6CisJCWlmICghdXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXJldHVybiB1dmNfcXVldWVfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGFyZyk7CisKKwljYXNlIFZJRElPQ19EUUJVRjoKKwkJaWYgKCF1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJcmV0dXJuIHV2Y19kZXF1ZXVlX2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBhcmcsCisJCQlmaWxlLT5mX2ZsYWdzICYgT19OT05CTE9DSyk7CisKKwljYXNlIFZJRElPQ19TVFJFQU1PTjoKKwl7CisJCWludCAqdHlwZSA9IGFyZzsKKworCQlpZiAoKnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKCF1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJaWYgKChyZXQgPSB1dmNfdmlkZW9fZW5hYmxlKHZpZGVvLCAxKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfU1RSRUFNT0ZGOgorCXsKKwkJaW50ICp0eXBlID0gYXJnOworCisJCWlmICgqdHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoIXV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQlyZXR1cm4gdXZjX3ZpZGVvX2VuYWJsZSh2aWRlbywgMCk7CisJfQorCisJLyogQW5hbG9nIHZpZGVvIHN0YW5kYXJkcyBtYWtlIG5vIHNlbnNlIGZvciBkaWdpdGFsIGNhbWVyYXMuICovCisJY2FzZSBWSURJT0NfRU5VTVNURDoKKwljYXNlIFZJRElPQ19RVUVSWVNURDoKKwljYXNlIFZJRElPQ19HX1NURDoKKwljYXNlIFZJRElPQ19TX1NURDoKKworCWNhc2UgVklESU9DX09WRVJMQVk6CisKKwljYXNlIFZJRElPQ19FTlVNQVVESU86CisJY2FzZSBWSURJT0NfRU5VTUFVRE9VVDoKKworCWNhc2UgVklESU9DX0VOVU1PVVRQVVQ6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfSU9DVEwsICJVbnN1cHBvcnRlZCBpb2N0bCAweCUwOHhcbiIsIGNtZCk7CisJCXJldHVybiAtRUlOVkFMOworCisJLyogRHluYW1pYyBjb250cm9scy4gKi8KKwljYXNlIFVWQ0lPQ19DVFJMX0FERDoKKwl7CisJCXN0cnVjdCB1dmNfeHVfY29udHJvbF9pbmZvICp4aW5mbyA9IGFyZzsKKwkJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm87CisKKwkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQorCQkJcmV0dXJuIC1FUEVSTTsKKworCQlpbmZvID0ga21hbGxvYyhzaXplb2YgKmluZm8sIEdGUF9LRVJORUwpOworCQlpZiAoaW5mbyA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJbWVtY3B5KGluZm8tPmVudGl0eSwgeGluZm8tPmVudGl0eSwgc2l6ZW9mIGluZm8tPmVudGl0eSk7CisJCWluZm8tPmluZGV4ID0geGluZm8tPmluZGV4OworCQlpbmZvLT5zZWxlY3RvciA9IHhpbmZvLT5zZWxlY3RvcjsKKwkJaW5mby0+c2l6ZSA9IHhpbmZvLT5zaXplOworCQlpbmZvLT5mbGFncyA9IHhpbmZvLT5mbGFnczsKKworCQlpbmZvLT5mbGFncyB8PSBVVkNfQ09OVFJPTF9HRVRfTUlOIHwgVVZDX0NPTlRST0xfR0VUX01BWCB8CisJCQkJVVZDX0NPTlRST0xfR0VUX1JFUyB8IFVWQ19DT05UUk9MX0dFVF9ERUY7CisKKwkJcmV0ID0gdXZjX2N0cmxfYWRkX2luZm8oaW5mbyk7CisJCWlmIChyZXQgPCAwKQorCQkJa2ZyZWUoaW5mbyk7CisJCWJyZWFrOworCX0KKworCWNhc2UgVVZDSU9DX0NUUkxfTUFQOgorCXsKKwkJc3RydWN0IHV2Y194dV9jb250cm9sX21hcHBpbmcgKnhtYXAgPSBhcmc7CisJCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXA7CisKKwkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQorCQkJcmV0dXJuIC1FUEVSTTsKKworCQltYXAgPSBrbWFsbG9jKHNpemVvZiAqbWFwLCBHRlBfS0VSTkVMKTsKKwkJaWYgKG1hcCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJbWFwLT5pZCA9IHhtYXAtPmlkOworCQltZW1jcHkobWFwLT5uYW1lLCB4bWFwLT5uYW1lLCBzaXplb2YgbWFwLT5uYW1lKTsKKwkJbWVtY3B5KG1hcC0+ZW50aXR5LCB4bWFwLT5lbnRpdHksIHNpemVvZiBtYXAtPmVudGl0eSk7CisJCW1hcC0+c2VsZWN0b3IgPSB4bWFwLT5zZWxlY3RvcjsKKwkJbWFwLT5zaXplID0geG1hcC0+c2l6ZTsKKwkJbWFwLT5vZmZzZXQgPSB4bWFwLT5vZmZzZXQ7CisJCW1hcC0+djRsMl90eXBlID0geG1hcC0+djRsMl90eXBlOworCQltYXAtPmRhdGFfdHlwZSA9IHhtYXAtPmRhdGFfdHlwZTsKKworCQlyZXQgPSB1dmNfY3RybF9hZGRfbWFwcGluZyhtYXApOworCQlpZiAocmV0IDwgMCkKKwkJCWtmcmVlKG1hcCk7CisJCWJyZWFrOworCX0KKworCWNhc2UgVVZDSU9DX0NUUkxfR0VUOgorCQlyZXR1cm4gdXZjX3h1X2N0cmxfcXVlcnkodmlkZW8sIGFyZywgMCk7CisKKwljYXNlIFVWQ0lPQ19DVFJMX1NFVDoKKwkJcmV0dXJuIHV2Y194dV9jdHJsX3F1ZXJ5KHZpZGVvLCBhcmcsIDEpOworCisJZGVmYXVsdDoKKwkJaWYgKChyZXQgPSB2NGxfY29tcGF0X3RyYW5zbGF0ZV9pb2N0bChpbm9kZSwgZmlsZSwgY21kLCBhcmcsCisJCQl1dmNfdjRsMl9kb19pb2N0bCkpID09IC1FTk9JT0NUTENNRCkKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfSU9DVEwsICJVbmtub3duIGlvY3RsIDB4JTA4eFxuIiwKKwkJCQkgIGNtZCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfaW9jdGxcbiIpOworCXJldHVybiB2aWRlb191c2VyY29weShpbm9kZSwgZmlsZSwgY21kLCBhcmcsIHV2Y192NGwyX2RvX2lvY3RsKTsKK30KKworc3RhdGljIHNzaXplX3QgdXZjX3Y0bDJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmRhdGEsCisJCSAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfcmVhZDogbm90IGltcGxlbWVudGVkLlxuIik7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKKy8qCisgKiBWTUEgb3BlcmF0aW9ucy4KKyAqLworc3RhdGljIHZvaWQgdXZjX3ZtX29wZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZmZlciA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOworCWJ1ZmZlci0+dm1hX3VzZV9jb3VudCsrOworfQorCitzdGF0aWMgdm9pZCB1dmNfdm1fY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZmZlciA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOworCWJ1ZmZlci0+dm1hX3VzZV9jb3VudC0tOworfQorCitzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHV2Y192bV9vcHMgPSB7CisJLm9wZW4JCT0gdXZjX3ZtX29wZW4sCisJLmNsb3NlCQk9IHV2Y192bV9jbG9zZSwKK307CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9IHZpZGVvX2RldmRhdGEoZmlsZSk7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvID0gdmlkZW9fZ2V0X2RydmRhdGEodmRldik7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZmZlcjsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwl1bnNpZ25lZCBsb25nIGFkZHIsIHN0YXJ0LCBzaXplOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQgPSAwOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX21tYXBcbiIpOworCisJc3RhcnQgPSB2bWEtPnZtX3N0YXJ0OworCXNpemUgPSB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7CisKKwltdXRleF9sb2NrKCZ2aWRlby0+cXVldWUubXV0ZXgpOworCisJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5xdWV1ZS5jb3VudDsgKytpKSB7CisJCWJ1ZmZlciA9ICZ2aWRlby0+cXVldWUuYnVmZmVyW2ldOworCQlpZiAoKGJ1ZmZlci0+YnVmLm0ub2Zmc2V0ID4+IFBBR0VfU0hJRlQpID09IHZtYS0+dm1fcGdvZmYpCisJCQlicmVhazsKKwl9CisKKwlpZiAoaSA9PSB2aWRlby0+cXVldWUuY291bnQgfHwgc2l6ZSAhPSB2aWRlby0+cXVldWUuYnVmX3NpemUpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCS8qCisJICogVk1fSU8gbWFya3MgdGhlIGFyZWEgYXMgYmVpbmcgYW4gbW1hcGVkIHJlZ2lvbiBmb3IgSS9PIHRvIGEKKwkgKiBkZXZpY2UuIEl0IGFsc28gcHJldmVudHMgdGhlIHJlZ2lvbiBmcm9tIGJlaW5nIGNvcmUgZHVtcGVkLgorCSAqLworCXZtYS0+dm1fZmxhZ3MgfD0gVk1fSU87CisKKwlhZGRyID0gKHVuc2lnbmVkIGxvbmcpdmlkZW8tPnF1ZXVlLm1lbSArIGJ1ZmZlci0+YnVmLm0ub2Zmc2V0OworCXdoaWxlIChzaXplID4gMCkgeworCQlwYWdlID0gdm1hbGxvY190b19wYWdlKCh2b2lkICopYWRkcik7CisJCWlmICgocmV0ID0gdm1faW5zZXJ0X3BhZ2Uodm1hLCBzdGFydCwgcGFnZSkpIDwgMCkKKwkJCWdvdG8gZG9uZTsKKworCQlzdGFydCArPSBQQUdFX1NJWkU7CisJCWFkZHIgKz0gUEFHRV9TSVpFOworCQlzaXplIC09IFBBR0VfU0laRTsKKwl9CisKKwl2bWEtPnZtX29wcyA9ICZ1dmNfdm1fb3BzOworCXZtYS0+dm1fcHJpdmF0ZV9kYXRhID0gYnVmZmVyOworCXV2Y192bV9vcGVuKHZtYSk7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZ2aWRlby0+cXVldWUubXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgdXZjX3Y0bDJfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCkKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2ID0gdmlkZW9fZGV2ZGF0YShmaWxlKTsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8gPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9wb2xsXG4iKTsKKworCXJldHVybiB1dmNfcXVldWVfcG9sbCgmdmlkZW8tPnF1ZXVlLCBmaWxlLCB3YWl0KTsKK30KKworc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1dmNfZm9wcyA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLm9wZW4JCT0gdXZjX3Y0bDJfb3BlbiwKKwkucmVsZWFzZQk9IHV2Y192NGwyX3JlbGVhc2UsCisJLmlvY3RsCQk9IHV2Y192NGwyX2lvY3RsLAorCS5jb21wYXRfaW9jdGwJPSB2NGxfY29tcGF0X2lvY3RsMzIsCisJLmxsc2VlawkJPSBub19sbHNlZWssCisJLnJlYWQJCT0gdXZjX3Y0bDJfcmVhZCwKKwkubW1hcAkJPSB1dmNfdjRsMl9tbWFwLAorCS5wb2xsCQk9IHV2Y192NGwyX3BvbGwsCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3ZpZGVvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdmlkZW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmFmMWZiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3ZpZGVvLmMKQEAgLTAsMCArMSw5MzQgQEAKKy8qCisgKiAgICAgIHV2Y192aWRlby5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIFZpZGVvIGhhbmRsaW5nCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CisKKyNpbmNsdWRlIDxtZWRpYS92NGwyLWNvbW1vbi5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVVkMgQ29udHJvbHMKKyAqLworCitzdGF0aWMgaW50IF9fdXZjX3F1ZXJ5X2N0cmwoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgX191OCBxdWVyeSwgX191OCB1bml0LAorCQkJX191OCBpbnRmbnVtLCBfX3U4IGNzLCB2b2lkICpkYXRhLCBfX3UxNiBzaXplLAorCQkJaW50IHRpbWVvdXQpCit7CisJX191OCB0eXBlID0gVVNCX1RZUEVfQ0xBU1MgfCBVU0JfUkVDSVBfSU5URVJGQUNFOworCXVuc2lnbmVkIGludCBwaXBlOworCWludCByZXQ7CisKKwlwaXBlID0gKHF1ZXJ5ICYgMHg4MCkgPyB1c2JfcmN2Y3RybHBpcGUoZGV2LT51ZGV2LCAwKQorCQkJICAgICAgOiB1c2Jfc25kY3RybHBpcGUoZGV2LT51ZGV2LCAwKTsKKwl0eXBlIHw9IChxdWVyeSAmIDB4ODApID8gVVNCX0RJUl9JTiA6IFVTQl9ESVJfT1VUOworCisJcmV0ID0gdXNiX2NvbnRyb2xfbXNnKGRldi0+dWRldiwgcGlwZSwgcXVlcnksIHR5cGUsIGNzIDw8IDgsCisJCQl1bml0IDw8IDggfCBpbnRmbnVtLCBkYXRhLCBzaXplLCB0aW1lb3V0KTsKKworCWlmIChyZXQgIT0gc2l6ZSkgeworCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAiRmFpbGVkIHRvIHF1ZXJ5ICgldSkgVVZDIGNvbnRyb2wgJXUgIgorCQkJIih1bml0ICV1KSA6ICVkIChleHAuICV1KS5cbiIsIHF1ZXJ5LCBjcywgdW5pdCwgcmV0LAorCQkJc2l6ZSk7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCitpbnQgdXZjX3F1ZXJ5X2N0cmwoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgX191OCBxdWVyeSwgX191OCB1bml0LAorCQkJX191OCBpbnRmbnVtLCBfX3U4IGNzLCB2b2lkICpkYXRhLCBfX3UxNiBzaXplKQoreworCXJldHVybiBfX3V2Y19xdWVyeV9jdHJsKGRldiwgcXVlcnksIHVuaXQsIGludGZudW0sIGNzLCBkYXRhLCBzaXplLAorCQkJCVVWQ19DVFJMX0NPTlRST0xfVElNRU9VVCk7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19maXh1cF9idWZmZXJfc2l6ZShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqY3RybCkKK3sKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0OworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworCisJaWYgKGN0cmwtPmJGb3JtYXRJbmRleCA8PSAwIHx8CisJICAgIGN0cmwtPmJGb3JtYXRJbmRleCA+IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzKQorCQlyZXR1cm47CisKKwlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2N0cmwtPmJGb3JtYXRJbmRleCAtIDFdOworCisJaWYgKGN0cmwtPmJGcmFtZUluZGV4IDw9IDAgfHwKKwkgICAgY3RybC0+YkZyYW1lSW5kZXggPiBmb3JtYXQtPm5mcmFtZXMpCisJCXJldHVybjsKKworCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbY3RybC0+YkZyYW1lSW5kZXggLSAxXTsKKworCWlmICghKGZvcm1hdC0+ZmxhZ3MgJiBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRCkgfHwKKwkgICAgIChjdHJsLT5kd01heFZpZGVvRnJhbWVTaXplID09IDAgJiYKKwkgICAgICB2aWRlby0+ZGV2LT51dmNfdmVyc2lvbiA8IDB4MDExMCkpCisJCWN0cmwtPmR3TWF4VmlkZW9GcmFtZVNpemUgPQorCQkJZnJhbWUtPmR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemU7Cit9CisKK3N0YXRpYyBpbnQgdXZjX2dldF92aWRlb19jdHJsKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpjdHJsLCBpbnQgcHJvYmUsIF9fdTggcXVlcnkpCit7CisJX191OCBkYXRhWzM0XTsKKwlfX3U4IHNpemU7CisJaW50IHJldDsKKworCXNpemUgPSB2aWRlby0+ZGV2LT51dmNfdmVyc2lvbiA+PSAweDAxMTAgPyAzNCA6IDI2OworCXJldCA9IF9fdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgcXVlcnksIDAsIHZpZGVvLT5zdHJlYW1pbmctPmludGZudW0sCisJCXByb2JlID8gVlNfUFJPQkVfQ09OVFJPTCA6IFZTX0NPTU1JVF9DT05UUk9MLCAmZGF0YSwgc2l6ZSwKKwkJVVZDX0NUUkxfU1RSRUFNSU5HX1RJTUVPVVQpOworCisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwljdHJsLT5ibUhpbnQgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzBdKTsKKwljdHJsLT5iRm9ybWF0SW5kZXggPSBkYXRhWzJdOworCWN0cmwtPmJGcmFtZUluZGV4ID0gZGF0YVszXTsKKwljdHJsLT5kd0ZyYW1lSW50ZXJ2YWwgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZkYXRhWzRdKTsKKwljdHJsLT53S2V5RnJhbWVSYXRlID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVs4XSk7CisJY3RybC0+d1BGcmFtZVJhdGUgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzEwXSk7CisJY3RybC0+d0NvbXBRdWFsaXR5ID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVsxMl0pOworCWN0cmwtPndDb21wV2luZG93U2l6ZSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbMTRdKTsKKwljdHJsLT53RGVsYXkgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzE2XSk7CisJY3RybC0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZSA9CisJCWxlMzJfdG9fY3B1KGdldF91bmFsaWduZWQoKF9fbGUzMiAqKSZkYXRhWzE4XSkpOworCWN0cmwtPmR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZSA9CisJCWxlMzJfdG9fY3B1KGdldF91bmFsaWduZWQoKF9fbGUzMiAqKSZkYXRhWzIyXSkpOworCisJaWYgKHNpemUgPT0gMzQpIHsKKwkJY3RybC0+ZHdDbG9ja0ZyZXF1ZW5jeSA9CisJCQlsZTMyX3RvX2NwdShnZXRfdW5hbGlnbmVkKChfX2xlMzIgKikmZGF0YVsyNl0pKTsKKwkJY3RybC0+Ym1GcmFtaW5nSW5mbyA9IGRhdGFbMzBdOworCQljdHJsLT5iUHJlZmVyZWRWZXJzaW9uID0gZGF0YVszMV07CisJCWN0cmwtPmJNaW5WZXJzaW9uID0gZGF0YVszMl07CisJCWN0cmwtPmJNYXhWZXJzaW9uID0gZGF0YVszM107CisJfSBlbHNlIHsKKwkJY3RybC0+ZHdDbG9ja0ZyZXF1ZW5jeSA9IHZpZGVvLT5kZXYtPmNsb2NrX2ZyZXF1ZW5jeTsKKwkJY3RybC0+Ym1GcmFtaW5nSW5mbyA9IDA7CisJCWN0cmwtPmJQcmVmZXJlZFZlcnNpb24gPSAwOworCQljdHJsLT5iTWluVmVyc2lvbiA9IDA7CisJCWN0cmwtPmJNYXhWZXJzaW9uID0gMDsKKwl9CisKKwkvKiBTb21lIGJyb2tlbiBkZXZpY2VzIHJldHVybiBhIG51bGwgb3Igd3JvbmcgZHdNYXhWaWRlb0ZyYW1lU2l6ZS4KKwkgKiBUcnkgdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBmb3JtYXQgYW5kIGZyYW1lIGRlc2NyaXB0b3IuCisJICovCisJdXZjX2ZpeHVwX2J1ZmZlcl9zaXplKHZpZGVvLCBjdHJsKTsKKworCXJldHVybiAwOworfQorCitpbnQgdXZjX3NldF92aWRlb19jdHJsKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpjdHJsLCBpbnQgcHJvYmUpCit7CisJX191OCBkYXRhWzM0XTsKKwlfX3U4IHNpemU7CisKKwlzaXplID0gdmlkZW8tPmRldi0+dXZjX3ZlcnNpb24gPj0gMHgwMTEwID8gMzQgOiAyNjsKKwltZW1zZXQoZGF0YSwgMCwgc2l6ZW9mIGRhdGEpOworCisJKihfX2xlMTYgKikmZGF0YVswXSA9IGNwdV90b19sZTE2KGN0cmwtPmJtSGludCk7CisJZGF0YVsyXSA9IGN0cmwtPmJGb3JtYXRJbmRleDsKKwlkYXRhWzNdID0gY3RybC0+YkZyYW1lSW5kZXg7CisJKihfX2xlMzIgKikmZGF0YVs0XSA9IGNwdV90b19sZTMyKGN0cmwtPmR3RnJhbWVJbnRlcnZhbCk7CisJKihfX2xlMTYgKikmZGF0YVs4XSA9IGNwdV90b19sZTE2KGN0cmwtPndLZXlGcmFtZVJhdGUpOworCSooX19sZTE2ICopJmRhdGFbMTBdID0gY3B1X3RvX2xlMTYoY3RybC0+d1BGcmFtZVJhdGUpOworCSooX19sZTE2ICopJmRhdGFbMTJdID0gY3B1X3RvX2xlMTYoY3RybC0+d0NvbXBRdWFsaXR5KTsKKwkqKF9fbGUxNiAqKSZkYXRhWzE0XSA9IGNwdV90b19sZTE2KGN0cmwtPndDb21wV2luZG93U2l6ZSk7CisJKihfX2xlMTYgKikmZGF0YVsxNl0gPSBjcHVfdG9fbGUxNihjdHJsLT53RGVsYXkpOworCS8qIE5vdGU6IFNvbWUgb2YgdGhlIGZpZWxkcyBiZWxvdyBhcmUgbm90IHJlcXVpcmVkIGZvciBJTiBkZXZpY2VzIChzZWUKKwkgKiBVVkMgc3BlYywgNC4zLjEuMSksIGJ1dCB3ZSBzdGlsbCBjb3B5IHRoZW0gaW4gY2FzZSBzdXBwb3J0IGZvciBPVVQKKwkgKiBkZXZpY2VzIGlzIGFkZGVkIGluIHRoZSBmdXR1cmUuICovCisJcHV0X3VuYWxpZ25lZChjcHVfdG9fbGUzMihjdHJsLT5kd01heFZpZGVvRnJhbWVTaXplKSwKKwkJKF9fbGUzMiAqKSZkYXRhWzE4XSk7CisJcHV0X3VuYWxpZ25lZChjcHVfdG9fbGUzMihjdHJsLT5kd01heFBheWxvYWRUcmFuc2ZlclNpemUpLAorCQkoX19sZTMyICopJmRhdGFbMjJdKTsKKworCWlmIChzaXplID09IDM0KSB7CisJCXB1dF91bmFsaWduZWQoY3B1X3RvX2xlMzIoY3RybC0+ZHdDbG9ja0ZyZXF1ZW5jeSksCisJCQkoX19sZTMyICopJmRhdGFbMjZdKTsKKwkJZGF0YVszMF0gPSBjdHJsLT5ibUZyYW1pbmdJbmZvOworCQlkYXRhWzMxXSA9IGN0cmwtPmJQcmVmZXJlZFZlcnNpb247CisJCWRhdGFbMzJdID0gY3RybC0+Yk1pblZlcnNpb247CisJCWRhdGFbMzNdID0gY3RybC0+Yk1heFZlcnNpb247CisJfQorCisJcmV0dXJuIF9fdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgU0VUX0NVUiwgMCwKKwkJdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bSwKKwkJcHJvYmUgPyBWU19QUk9CRV9DT05UUk9MIDogVlNfQ09NTUlUX0NPTlRST0wsICZkYXRhLCBzaXplLAorCQlVVkNfQ1RSTF9TVFJFQU1JTkdfVElNRU9VVCk7Cit9CisKK2ludCB1dmNfcHJvYmVfdmlkZW8oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKnByb2JlKQoreworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgcHJvYmVfbWluLCBwcm9iZV9tYXg7CisJX191MTYgYmFuZHdpZHRoOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZ2aWRlby0+c3RyZWFtaW5nLT5tdXRleCk7CisKKwkvKiBQZXJmb3JtIHByb2JpbmcuIFRoZSBkZXZpY2Ugc2hvdWxkIGFkanVzdCB0aGUgcmVxdWVzdGVkIHZhbHVlcworCSAqIGFjY29yZGluZyB0byBpdHMgY2FwYWJpbGl0aWVzLiBIb3dldmVyLCBzb21lIGRldmljZXMsIG5hbWVseSB0aGUKKwkgKiBmaXJzdCBnZW5lcmF0aW9uIFVWQyBMb2dpdGVjaCB3ZWJjYW1zLCBkb24ndCBpbXBsZW1lbnQgdGhlIFZpZGVvCisJICogUHJvYmUgY29udHJvbCBwcm9wZXJseSwgYW5kIGp1c3QgcmV0dXJuIHRoZSBuZWVkZWQgYmFuZHdpZHRoLiBGb3IKKwkgKiB0aGF0IHJlYXNvbiwgaWYgdGhlIG5lZWRlZCBiYW5kd2lkdGggZXhjZWVkcyB0aGUgbWF4aW11bSBhdmFpbGFibGUKKwkgKiBiYW5kd2lkdGgsIHRyeSB0byBsb3dlciB0aGUgcXVhbGl0eS4KKwkgKi8KKwlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDEpKSA8IDApCisJCWdvdG8gZG9uZTsKKworCS8qIEdldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMgZm9yIGNvbXByZXNzaW9uIHNldHRpbmdzLiAqLworCWlmICghKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19QUk9CRV9NSU5NQVgpKSB7CisJCXJldCA9IHV2Y19nZXRfdmlkZW9fY3RybCh2aWRlbywgJnByb2JlX21pbiwgMSwgR0VUX01JTik7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBkb25lOworCQlyZXQgPSB1dmNfZ2V0X3ZpZGVvX2N0cmwodmlkZW8sICZwcm9iZV9tYXgsIDEsIEdFVF9NQVgpOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gZG9uZTsKKworCQlwcm9iZS0+d0NvbXBRdWFsaXR5ID0gcHJvYmVfbWF4LndDb21wUXVhbGl0eTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgMjsgKytpKSB7CisJCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMSkpIDwgMCB8fAorCQkgICAgKHJldCA9IHV2Y19nZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDEsIEdFVF9DVVIpKSA8IDApCisJCQlnb3RvIGRvbmU7CisKKwkJaWYgKHZpZGVvLT5zdHJlYW1pbmctPmludGYtPm51bV9hbHRzZXR0aW5nID09IDEpCisJCQlicmVhazsKKworCQliYW5kd2lkdGggPSBwcm9iZS0+ZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplOworCQlpZiAoYmFuZHdpZHRoIDw9IHZpZGVvLT5zdHJlYW1pbmctPm1heHBzaXplKQorCQkJYnJlYWs7CisKKwkJaWYgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19QUk9CRV9NSU5NQVgpIHsKKwkJCXJldCA9IC1FTk9TUEM7CisJCQlnb3RvIGRvbmU7CisJCX0KKworCQkvKiBUT0RPOiBuZWdvdGlhdGUgY29tcHJlc3Npb24gcGFyYW1ldGVycyAqLworCQlwcm9iZS0+d0tleUZyYW1lUmF0ZSA9IHByb2JlX21pbi53S2V5RnJhbWVSYXRlOworCQlwcm9iZS0+d1BGcmFtZVJhdGUgPSBwcm9iZV9taW4ud1BGcmFtZVJhdGU7CisJCXByb2JlLT53Q29tcFF1YWxpdHkgPSBwcm9iZV9tYXgud0NvbXBRdWFsaXR5OworCQlwcm9iZS0+d0NvbXBXaW5kb3dTaXplID0gcHJvYmVfbWluLndDb21wV2luZG93U2l6ZTsKKwl9CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZ2aWRlby0+c3RyZWFtaW5nLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBWaWRlbyBjb2RlY3MKKyAqLworCisvKiBWYWx1ZXMgZm9yIGJtSGVhZGVySW5mbyAoVmlkZW8gYW5kIFN0aWxsIEltYWdlIFBheWxvYWQgSGVhZGVycywgMi40LjMuMykgKi8KKyNkZWZpbmUgVVZDX1NUUkVBTV9FT0gJKDEgPDwgNykKKyNkZWZpbmUgVVZDX1NUUkVBTV9FUlIJKDEgPDwgNikKKyNkZWZpbmUgVVZDX1NUUkVBTV9TVEkJKDEgPDwgNSkKKyNkZWZpbmUgVVZDX1NUUkVBTV9SRVMJKDEgPDwgNCkKKyNkZWZpbmUgVVZDX1NUUkVBTV9TQ1IJKDEgPDwgMykKKyNkZWZpbmUgVVZDX1NUUkVBTV9QVFMJKDEgPDwgMikKKyNkZWZpbmUgVVZDX1NUUkVBTV9FT0YJKDEgPDwgMSkKKyNkZWZpbmUgVVZDX1NUUkVBTV9GSUQJKDEgPDwgMCkKKworLyogVmlkZW8gcGF5bG9hZCBkZWNvZGluZyBpcyBoYW5kbGVkIGJ5IHV2Y192aWRlb19kZWNvZGVfc3RhcnQoKSwKKyAqIHV2Y192aWRlb19kZWNvZGVfZGF0YSgpIGFuZCB1dmNfdmlkZW9fZGVjb2RlX2VuZCgpLgorICoKKyAqIHV2Y192aWRlb19kZWNvZGVfc3RhcnQgaXMgY2FsbGVkIHdpdGggVVJCIGRhdGEgYXQgdGhlIHN0YXJ0IG9mIGEgYnVsayBvcgorICogaXNvY2hyb25vdXMgcGF5bG9hZC4gSXQgcHJvY2Vzc2VzIGhlYWRlciBkYXRhIGFuZCByZXR1cm5zIHRoZSBoZWFkZXIgc2l6ZQorICogaW4gYnl0ZXMgaWYgc3VjY2Vzc2Z1bC4gSWYgYW4gZXJyb3Igb2NjdXJzLCBpdCByZXR1cm5zIGEgbmVnYXRpdmUgZXJyb3IKKyAqIGNvZGUuIFRoZSBmb2xsb3dpbmcgZXJyb3IgY29kZXMgaGF2ZSBzcGVjaWFsIG1lYW5pbmdzLgorICoKKyAqIC0gRUFHQUlOIGluZm9ybXMgdGhlIGNhbGxlciB0aGF0IHRoZSBjdXJyZW50IHZpZGVvIGJ1ZmZlciBzaG91bGQgYmUgbWFya2VkCisgKiAgIGFzIGRvbmUsIGFuZCB0aGF0IHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGFnYWluIHdpdGggdGhlIHNhbWUgZGF0YQorICogICBhbmQgYSBuZXcgdmlkZW8gYnVmZmVyLiBUaGlzIGlzIHVzZWQgd2hlbiBlbmQgb2YgZnJhbWUgY29uZGl0aW9ucyBjYW4gYmUKKyAqICAgcmVsaWFibHkgZGV0ZWN0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBmcmFtZSBvbmx5LgorICoKKyAqIElmIGFuIGVycm9yIG90aGVyIHRoYW4gLUVBR0FJTiBpcyByZXR1cm5lZCwgdGhlIGNhbGxlciB3aWxsIGRyb3AgdGhlIGN1cnJlbnQKKyAqIHBheWxvYWQuIE5vIGNhbGwgdG8gdXZjX3ZpZGVvX2RlY29kZV9kYXRhIGFuZCB1dmNfdmlkZW9fZGVjb2RlX2VuZCB3aWxsIGJlCisgKiBtYWRlIHVudGlsIHRoZSBuZXh0IHBheWxvYWQuIC1FTk9EQVRBIGNhbiBiZSB1c2VkIHRvIGRyb3AgdGhlIGN1cnJlbnQKKyAqIHBheWxvYWQgaWYgbm8gb3RoZXIgZXJyb3IgY29kZSBpcyBhcHByb3ByaWF0ZS4KKyAqCisgKiB1dmNfdmlkZW9fZGVjb2RlX2RhdGEgaXMgY2FsbGVkIGZvciBldmVyeSBVUkIgd2l0aCBVUkIgZGF0YS4gSXQgY29waWVzIHRoZQorICogZGF0YSB0byB0aGUgdmlkZW8gYnVmZmVyLgorICoKKyAqIHV2Y192aWRlb19kZWNvZGVfZW5kIGlzIGNhbGxlZCB3aXRoIGhlYWRlciBkYXRhIGF0IHRoZSBlbmQgb2YgYSBidWxrIG9yCisgKiBpc29jaHJvbm91cyBwYXlsb2FkLiBJdCBwZXJmb3JtcyBhbnkgYWRkaXRpb25hbCBoZWFkZXIgZGF0YSBwcm9jZXNzaW5nIGFuZAorICogcmV0dXJucyAwIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBpZiBhbiBlcnJvciBvY2N1cmVkLiBBcyBoZWFkZXIgZGF0YSBoYXZlCisgKiBhbHJlYWR5IGJlZW4gcHJvY2Vzc2VkIGJ5IHV2Y192aWRlb19kZWNvZGVfc3RhcnQsIHRoaXMgZnVuY3Rpb25zIGlzbid0CisgKiByZXF1aXJlZCB0byBwZXJmb3JtIHNhbml0eSBjaGVja3MgYSBzZWNvbmQgdGltZS4KKyAqCisgKiBGb3IgaXNvY2hyb25vdXMgdHJhbnNmZXJzIHdoZXJlIGEgcGF5bG9hZCBpcyBhbHdheXMgdHJhbnNmZXJlZCBpbiBhIHNpbmdsZQorICogVVJCLCB0aGUgdGhyZWUgZnVuY3Rpb25zIHdpbGwgYmUgY2FsbGVkIGluIGEgcm93LgorICoKKyAqIFRvIGxldCB0aGUgZGVjb2RlciBwcm9jZXNzIGhlYWRlciBkYXRhIGFuZCB1cGRhdGUgaXRzIGludGVybmFsIHN0YXRlIGV2ZW4KKyAqIHdoZW4gbm8gdmlkZW8gYnVmZmVyIGlzIGF2YWlsYWJsZSwgdXZjX3ZpZGVvX2RlY29kZV9zdGFydCBtdXN0IGJlIHByZXBhcmVkCisgKiB0byBiZSBjYWxsZWQgd2l0aCBhIE5VTEwgYnVmIHBhcmFtZXRlci4gdXZjX3ZpZGVvX2RlY29kZV9kYXRhIGFuZAorICogdXZjX3ZpZGVvX2RlY29kZV9lbmQgd2lsbCBuZXZlciBiZSBjYWxsZWQgd2l0aCBhIE5VTEwgYnVmZmVyLgorICovCitzdGF0aWMgaW50IHV2Y192aWRlb19kZWNvZGVfc3RhcnQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLCBjb25zdCBfX3U4ICpkYXRhLCBpbnQgbGVuKQoreworCV9fdTggZmlkOworCisJLyogU2FuaXR5IGNoZWNrczoKKwkgKiAtIHBhY2tldCBtdXN0IGJlIGF0IGxlYXN0IDIgYnl0ZXMgbG9uZworCSAqIC0gYkhlYWRlckxlbmd0aCB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDIgYnl0ZXMgKHNlZSBhYm92ZSkKKwkgKiAtIGJIZWFkZXJMZW5ndGggdmFsdWUgY2FuJ3QgYmUgbGFyZ2VyIHRoYW4gdGhlIHBhY2tldCBzaXplLgorCSAqLworCWlmIChsZW4gPCAyIHx8IGRhdGFbMF0gPCAyIHx8IGRhdGFbMF0gPiBsZW4pCisJCXJldHVybiAtRUlOVkFMOworCisJLyogU2tpcCBwYXlsb2FkcyBtYXJrZWQgd2l0aCB0aGUgZXJyb3IgYml0ICgiZXJyb3IgZnJhbWVzIikuICovCisJaWYgKGRhdGFbMV0gJiBVVkNfU1RSRUFNX0VSUikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRHJvcHBpbmcgcGF5bG9hZCAoZXJyb3IgYml0ICIKKwkJCSAgInNldCkuXG4iKTsKKwkJcmV0dXJuIC1FTk9EQVRBOworCX0KKworCWZpZCA9IGRhdGFbMV0gJiBVVkNfU1RSRUFNX0ZJRDsKKworCS8qIFN0b3JlIHRoZSBwYXlsb2FkIEZJRCBiaXQgYW5kIHJldHVybiBpbW1lZGlhdGVseSB3aGVuIHRoZSBidWZmZXIgaXMKKwkgKiBOVUxMLgorCSAqLworCWlmIChidWYgPT0gTlVMTCkgeworCQl2aWRlby0+bGFzdF9maWQgPSBmaWQ7CisJCXJldHVybiAtRU5PREFUQTsKKwl9CisKKwkvKiBTeW5jaHJvbml6ZSB0byB0aGUgaW5wdXQgc3RyZWFtIGJ5IHdhaXRpbmcgZm9yIHRoZSBGSUQgYml0IHRvIGJlCisJICogdG9nZ2xlZCB3aGVuIHRoZSB0aGUgYnVmZmVyIHN0YXRlIGlzIG5vdCBVVkNfQlVGX1NUQVRFX0FDVElWRS4KKwkgKiBxdWV1ZS0+bGFzdF9maWQgaXMgaW5pdGlhbGl6ZWQgdG8gLTEsIHNvIHRoZSBmaXJzdCBpc29jaHJvbm91cworCSAqIGZyYW1lIHdpbGwgYWx3YXlzIGJlIGluIHN5bmMuCisJICoKKwkgKiBJZiB0aGUgZGV2aWNlIGRvZXNuJ3QgdG9nZ2xlIHRoZSBGSUQgYml0LCBpbnZlcnQgdmlkZW8tPmxhc3RfZmlkCisJICogd2hlbiB0aGUgRU9GIGJpdCBpcyBzZXQgdG8gZm9yY2Ugc3luY2hyb25pc2F0aW9uIG9uIHRoZSBuZXh0IHBhY2tldC4KKwkgKi8KKwlpZiAoYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX0FDVElWRSkgeworCQlpZiAoZmlkID09IHZpZGVvLT5sYXN0X2ZpZCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkRyb3BwaW5nIHBheWxvYWQgKG91dCBvZiAiCisJCQkJInN5bmMpLlxuIik7CisJCQlpZiAoKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19TVFJFQU1fTk9fRklEKSAmJgorCQkJICAgIChkYXRhWzFdICYgVVZDX1NUUkVBTV9FT0YpKQorCQkJCXZpZGVvLT5sYXN0X2ZpZCBePSBVVkNfU1RSRUFNX0ZJRDsKKwkJCXJldHVybiAtRU5PREFUQTsKKwkJfQorCisJCS8qIFRPRE86IEhhbmRsZSBQVFMgYW5kIFNDUi4gKi8KKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfQUNUSVZFOworCX0KKworCS8qIE1hcmsgdGhlIGJ1ZmZlciBhcyBkb25lIGlmIHdlJ3JlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBuZXcgZnJhbWUuCisJICogRW5kIG9mIGZyYW1lIGRldGVjdGlvbiBpcyBiZXR0ZXIgaW1wbGVtZW50ZWQgYnkgY2hlY2tpbmcgdGhlIEVPRgorCSAqIGJpdCAoRklEIGJpdCB0b2dnbGluZyBpcyBkZWxheWVkIGJ5IG9uZSBmcmFtZSBjb21wYXJlZCB0byB0aGUgRU9GCisJICogYml0KSwgYnV0IHNvbWUgZGV2aWNlcyBkb24ndCBzZXQgdGhlIGJpdCBhdCBlbmQgb2YgZnJhbWUgKGFuZCB0aGUKKwkgKiBsYXN0IHBheWxvYWQgY2FuIGJlIGxvc3QgYW55d2F5KS4gV2UgdGh1cyBtdXN0IGNoZWNrIGlmIHRoZSBGSUQgaGFzCisJICogYmVlbiB0b2dnbGVkLgorCSAqCisJICogcXVldWUtPmxhc3RfZmlkIGlzIGluaXRpYWxpemVkIHRvIC0xLCBzbyB0aGUgZmlyc3QgaXNvY2hyb25vdXMKKwkgKiBmcmFtZSB3aWxsIG5ldmVyIHRyaWdnZXIgYW4gZW5kIG9mIGZyYW1lIGRldGVjdGlvbi4KKwkgKgorCSAqIEVtcHR5IGJ1ZmZlcnMgKGJ5dGVzdXNlZCA9PSAwKSBkb24ndCB0cmlnZ2VyIGVuZCBvZiBmcmFtZSBkZXRlY3Rpb24KKwkgKiBhcyBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gcmV0dXJuIGFuIGVtcHR5IGJ1ZmZlci4gVGhpcyBhbHNvCisJICogYXZvaWRzIGRldGVjdGluZyBhbmQgb2YgZnJhbWUgY29uZGl0aW9ucyBhdCBGSUQgdG9nZ2xpbmcgaWYgdGhlCisJICogcHJldmlvdXMgcGF5bG9hZCBoYWQgdGhlIEVPRiBiaXQgc2V0LgorCSAqLworCWlmIChmaWQgIT0gdmlkZW8tPmxhc3RfZmlkICYmIGJ1Zi0+YnVmLmJ5dGVzdXNlZCAhPSAwKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJGcmFtZSBjb21wbGV0ZSAoRklEIGJpdCAiCisJCQkJInRvZ2dsZWQpLlxuIik7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0RPTkU7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCXZpZGVvLT5sYXN0X2ZpZCA9IGZpZDsKKworCXJldHVybiBkYXRhWzBdOworfQorCitzdGF0aWMgdm9pZCB1dmNfdmlkZW9fZGVjb2RlX2RhdGEoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLCBjb25zdCBfX3U4ICpkYXRhLCBpbnQgbGVuKQoreworCXN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlID0gJnZpZGVvLT5xdWV1ZTsKKwl1bnNpZ25lZCBpbnQgbWF4bGVuLCBuYnl0ZXM7CisJdm9pZCAqbWVtOworCisJaWYgKGxlbiA8PSAwKQorCQlyZXR1cm47CisKKwkvKiBDb3B5IHRoZSB2aWRlbyBkYXRhIHRvIHRoZSBidWZmZXIuICovCisJbWF4bGVuID0gYnVmLT5idWYubGVuZ3RoIC0gYnVmLT5idWYuYnl0ZXN1c2VkOworCW1lbSA9IHF1ZXVlLT5tZW0gKyBidWYtPmJ1Zi5tLm9mZnNldCArIGJ1Zi0+YnVmLmJ5dGVzdXNlZDsKKwluYnl0ZXMgPSBtaW4oKHVuc2lnbmVkIGludClsZW4sIG1heGxlbik7CisJbWVtY3B5KG1lbSwgZGF0YSwgbmJ5dGVzKTsKKwlidWYtPmJ1Zi5ieXRlc3VzZWQgKz0gbmJ5dGVzOworCisJLyogQ29tcGxldGUgdGhlIGN1cnJlbnQgZnJhbWUgaWYgdGhlIGJ1ZmZlciBzaXplIHdhcyBleGNlZWRlZC4gKi8KKwlpZiAobGVuID4gbWF4bGVuKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJGcmFtZSBjb21wbGV0ZSAob3ZlcmZsb3cpLlxuIik7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0RPTkU7CisJfQorfQorCitzdGF0aWMgdm9pZCB1dmNfdmlkZW9fZGVjb2RlX2VuZChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYsIGNvbnN0IF9fdTggKmRhdGEsIGludCBsZW4pCit7CisJLyogTWFyayB0aGUgYnVmZmVyIGFzIGRvbmUgaWYgdGhlIEVPRiBtYXJrZXIgaXMgc2V0LiAqLworCWlmIChkYXRhWzFdICYgVVZDX1NUUkVBTV9FT0YgJiYgYnVmLT5idWYuYnl0ZXN1c2VkICE9IDApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkZyYW1lIGNvbXBsZXRlIChFT0YgZm91bmQpLlxuIik7CisJCWlmIChkYXRhWzBdID09IGxlbikKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJFT0YgaW4gZW1wdHkgcGF5bG9hZC5cbiIpOworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9ET05FOworCQlpZiAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQpCisJCQl2aWRlby0+bGFzdF9maWQgXj0gVVZDX1NUUkVBTV9GSUQ7CisJfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVSQiBoYW5kbGluZworICovCisKKy8qCisgKiBDb21wbGV0aW9uIGhhbmRsZXIgZm9yIHZpZGVvIFVSQnMuCisgKi8KK3N0YXRpYyB2b2lkIHV2Y192aWRlb19kZWNvZGVfaXNvYyhzdHJ1Y3QgdXJiICp1cmIsCisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKQoreworCXU4ICptZW07CisJaW50IHJldCwgaTsKKworCWZvciAoaSA9IDA7IGkgPCB1cmItPm51bWJlcl9vZl9wYWNrZXRzOyArK2kpIHsKKwkJaWYgKHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uc3RhdHVzIDwgMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIlVTQiBpc29jaHJvbm91cyBmcmFtZSAiCisJCQkJImxvc3QgKCVkKS5cbiIsIHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uc3RhdHVzKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogRGVjb2RlIHRoZSBwYXlsb2FkIGhlYWRlci4gKi8KKwkJbWVtID0gdXJiLT50cmFuc2Zlcl9idWZmZXIgKyB1cmItPmlzb19mcmFtZV9kZXNjW2ldLm9mZnNldDsKKwkJZG8geworCQkJcmV0ID0gdXZjX3ZpZGVvX2RlY29kZV9zdGFydCh2aWRlbywgYnVmLCBtZW0sCisJCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5hY3R1YWxfbGVuZ3RoKTsKKwkJCWlmIChyZXQgPT0gLUVBR0FJTikKKwkJCQlidWYgPSB1dmNfcXVldWVfbmV4dF9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwkJfSB3aGlsZSAocmV0ID09IC1FQUdBSU4pOworCisJCWlmIChyZXQgPCAwKQorCQkJY29udGludWU7CisKKwkJLyogRGVjb2RlIHRoZSBwYXlsb2FkIGRhdGEuICovCisJCXV2Y192aWRlb19kZWNvZGVfZGF0YSh2aWRlbywgYnVmLCBtZW0gKyByZXQsCisJCQl1cmItPmlzb19mcmFtZV9kZXNjW2ldLmFjdHVhbF9sZW5ndGggLSByZXQpOworCisJCS8qIFByb2Nlc3MgdGhlIGhlYWRlciBhZ2Fpbi4gKi8KKwkJdXZjX3ZpZGVvX2RlY29kZV9lbmQodmlkZW8sIGJ1ZiwgbWVtLCByZXQpOworCisJCWlmIChidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRE9ORSB8fAorCQkgICAgYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0VSUk9SKQorCQkJYnVmID0gdXZjX3F1ZXVlX25leHRfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJfQorfQorCitzdGF0aWMgdm9pZCB1dmNfdmlkZW9fZGVjb2RlX2J1bGsoc3RydWN0IHVyYiAqdXJiLAorCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgc3RydWN0IHV2Y19idWZmZXIgKmJ1ZikKK3sKKwl1OCAqbWVtOworCWludCBsZW4sIHJldDsKKworCW1lbSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOworCWxlbiA9IHVyYi0+YWN0dWFsX2xlbmd0aDsKKwl2aWRlby0+YnVsay5wYXlsb2FkX3NpemUgKz0gbGVuOworCisJLyogSWYgdGhlIFVSQiBpcyB0aGUgZmlyc3Qgb2YgaXRzIHBheWxvYWQsIGRlY29kZSBhbmQgc2F2ZSB0aGUKKwkgKiBoZWFkZXIuCisJICovCisJaWYgKHZpZGVvLT5idWxrLmhlYWRlcl9zaXplID09IDApIHsKKwkJZG8geworCQkJcmV0ID0gdXZjX3ZpZGVvX2RlY29kZV9zdGFydCh2aWRlbywgYnVmLCBtZW0sIGxlbik7CisJCQlpZiAocmV0ID09IC1FQUdBSU4pCisJCQkJYnVmID0gdXZjX3F1ZXVlX25leHRfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJCX0gd2hpbGUgKHJldCA9PSAtRUFHQUlOKTsKKworCQkvKiBJZiBhbiBlcnJvciBvY2N1cmVkIHNraXAgdGhlIHJlc3Qgb2YgdGhlIHBheWxvYWQuICovCisJCWlmIChyZXQgPCAwIHx8IGJ1ZiA9PSBOVUxMKSB7CisJCQl2aWRlby0+YnVsay5za2lwX3BheWxvYWQgPSAxOworCQkJcmV0dXJuOworCQl9CisKKwkJdmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUgPSByZXQ7CisJCW1lbWNweSh2aWRlby0+YnVsay5oZWFkZXIsIG1lbSwgdmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUpOworCisJCW1lbSArPSByZXQ7CisJCWxlbiAtPSByZXQ7CisJfQorCisJLyogVGhlIGJ1ZmZlciBxdWV1ZSBtaWdodCBoYXZlIGJlZW4gY2FuY2VsbGVkIHdoaWxlIGEgYnVsayB0cmFuc2ZlcgorCSAqIHdhcyBpbiBwcm9ncmVzcywgc28gd2UgY2FuIHJlYWNoIGhlcmUgd2l0aCBidWYgZXF1YWwgdG8gTlVMTC4gTWFrZQorCSAqIHN1cmUgYnVmIGlzIG5ldmVyIGRlcmVmZXJlbmNlZCBpZiBOVUxMLgorCSAqLworCisJLyogUHJvY2VzcyB2aWRlbyBkYXRhLiAqLworCWlmICghdmlkZW8tPmJ1bGsuc2tpcF9wYXlsb2FkICYmIGJ1ZiAhPSBOVUxMKQorCQl1dmNfdmlkZW9fZGVjb2RlX2RhdGEodmlkZW8sIGJ1ZiwgbWVtLCBsZW4pOworCisJLyogRGV0ZWN0IHRoZSBwYXlsb2FkIGVuZCBieSBhIFVSQiBzbWFsbGVyIHRoYW4gdGhlIG1heGltdW0gc2l6ZSAob3IKKwkgKiBhIHBheWxvYWQgc2l6ZSBlcXVhbCB0byB0aGUgbWF4aW11bSkgYW5kIHByb2Nlc3MgdGhlIGhlYWRlciBhZ2Fpbi4KKwkgKi8KKwlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoIDwgdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoIHx8CisJICAgIHZpZGVvLT5idWxrLnBheWxvYWRfc2l6ZSA+PSB2aWRlby0+YnVsay5tYXhfcGF5bG9hZF9zaXplKSB7CisJCWlmICghdmlkZW8tPmJ1bGsuc2tpcF9wYXlsb2FkICYmIGJ1ZiAhPSBOVUxMKSB7CisJCQl1dmNfdmlkZW9fZGVjb2RlX2VuZCh2aWRlbywgYnVmLCB2aWRlby0+YnVsay5oZWFkZXIsCisJCQkJdmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUpOworCQkJaWYgKGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9ET05FIHx8CisJCQkgICAgYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0VSUk9SKQorCQkJCWJ1ZiA9IHV2Y19xdWV1ZV9uZXh0X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCQl9CisKKwkJdmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUgPSAwOworCQl2aWRlby0+YnVsay5za2lwX3BheWxvYWQgPSAwOworCQl2aWRlby0+YnVsay5wYXlsb2FkX3NpemUgPSAwOworCX0KK30KKworc3RhdGljIHZvaWQgdXZjX3ZpZGVvX2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYikKK3sKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8gPSB1cmItPmNvbnRleHQ7CisJc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUgPSAmdmlkZW8tPnF1ZXVlOworCXN0cnVjdCB1dmNfYnVmZmVyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJdXZjX3ByaW50ayhLRVJOX1dBUk5JTkcsICJOb24temVybyBzdGF0dXMgKCVkKSBpbiB2aWRlbyAiCisJCQkiY29tcGxldGlvbiBoYW5kbGVyLlxuIiwgdXJiLT5zdGF0dXMpOworCisJY2FzZSAtRU5PRU5UOgkJLyogdXNiX2tpbGxfdXJiKCkgY2FsbGVkLiAqLworCQlpZiAodmlkZW8tPmZyb3plbikKKwkJCXJldHVybjsKKworCWNhc2UgLUVDT05OUkVTRVQ6CS8qIHVzYl91bmxpbmtfdXJiKCkgY2FsbGVkLiAqLworCWNhc2UgLUVTSFVURE9XTjoJLyogVGhlIGVuZHBvaW50IGlzIGJlaW5nIGRpc2FibGVkLiAqLworCQl1dmNfcXVldWVfY2FuY2VsKHF1ZXVlLCB1cmItPnN0YXR1cyA9PSAtRVNIVVRET1dOKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCWlmICghbGlzdF9lbXB0eSgmcXVldWUtPmlycXF1ZXVlKSkKKwkJYnVmID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUtPmlycXF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciwKKwkJCQkgICAgICAgcXVldWUpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisKKwl2aWRlby0+ZGVjb2RlKHVyYiwgdmlkZW8sIGJ1Zik7CisKKwlpZiAoKHJldCA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQykpIDwgMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAiRmFpbGVkIHRvIHJlc3VibWl0IHZpZGVvIFVSQiAoJWQpLlxuIiwKKwkJCXJldCk7CisJfQorfQorCisvKgorICogVW5pbml0aWFsaXplIGlzb2Nocm9ub3VzL2J1bGsgVVJCcyBhbmQgZnJlZSB0cmFuc2ZlciBidWZmZXJzLgorICovCitzdGF0aWMgdm9pZCB1dmNfdW5pbml0X3ZpZGVvKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlzdHJ1Y3QgdXJiICp1cmI7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgVVZDX1VSQlM7ICsraSkgeworCQlpZiAoKHVyYiA9IHZpZGVvLT51cmJbaV0pID09IE5VTEwpCisJCQljb250aW51ZTsKKworCQl1c2Jfa2lsbF91cmIodXJiKTsKKwkJLyogdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoIGlzIG5vdCB0b3VjaGVkIGJ5IFVTQiBjb3JlLCBzbworCQkgKiB3ZSBjYW4gdXNlIGl0IGhlcmUgYXMgdGhlIGJ1ZmZlciBsZW5ndGguCisJCSAqLworCQlpZiAodmlkZW8tPnVyYl9idWZmZXJbaV0pIHsKKwkJCXVzYl9idWZmZXJfZnJlZSh2aWRlby0+ZGV2LT51ZGV2LAorCQkJCXVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKKwkJCQl2aWRlby0+dXJiX2J1ZmZlcltpXSwgdXJiLT50cmFuc2Zlcl9kbWEpOworCQkJdmlkZW8tPnVyYl9idWZmZXJbaV0gPSBOVUxMOworCQl9CisKKwkJdXNiX2ZyZWVfdXJiKHVyYik7CisJCXZpZGVvLT51cmJbaV0gPSBOVUxMOworCX0KK30KKworLyoKKyAqIEluaXRpYWxpemUgaXNvY2hyb25vdXMgVVJCcyBhbmQgYWxsb2NhdGUgdHJhbnNmZXIgYnVmZmVycy4gVGhlIHBhY2tldCBzaXplCisgKiBpcyBnaXZlbiBieSB0aGUgZW5kcG9pbnQuCisgKi8KK3N0YXRpYyBpbnQgdXZjX2luaXRfdmlkZW9faXNvYyhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCkKK3sKKwlzdHJ1Y3QgdXJiICp1cmI7CisJdW5zaWduZWQgaW50IG5wYWNrZXRzLCBpLCBqOworCV9fdTE2IHBzaXplOworCV9fdTMyIHNpemU7CisKKwkvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgaXNvY2hyb25vdXMgcGFja2V0cyB0byBhbGxvY2F0ZSBieSBkaXZpZGluZworCSAqIHRoZSBtYXhpbXVtIHZpZGVvIGZyYW1lIHNpemUgYnkgdGhlIHBhY2tldCBzaXplLiBMaW1pdCB0aGUgcmVzdWx0CisJICogdG8gVVZDX01BWF9JU09fUEFDS0VUUy4KKwkgKi8KKwlwc2l6ZSA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLndNYXhQYWNrZXRTaXplKTsKKwlwc2l6ZSA9IChwc2l6ZSAmIDB4MDdmZikgKiAoMSArICgocHNpemUgPj4gMTEpICYgMykpOworCisJc2l6ZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKwlpZiAoc2l6ZSA+IFVWQ19NQVhfRlJBTUVfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlucGFja2V0cyA9IChzaXplICsgcHNpemUgLSAxKSAvIHBzaXplOworCWlmIChucGFja2V0cyA+IFVWQ19NQVhfSVNPX1BBQ0tFVFMpCisJCW5wYWNrZXRzID0gVVZDX01BWF9JU09fUEFDS0VUUzsKKworCXNpemUgPSBucGFja2V0cyAqIHBzaXplOworCisJZm9yIChpID0gMDsgaSA8IFVWQ19VUkJTOyArK2kpIHsKKwkJdXJiID0gdXNiX2FsbG9jX3VyYihucGFja2V0cywgR0ZQX0tFUk5FTCk7CisJCWlmICh1cmIgPT0gTlVMTCkgeworCQkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCXZpZGVvLT51cmJfYnVmZmVyW2ldID0gdXNiX2J1ZmZlcl9hbGxvYyh2aWRlby0+ZGV2LT51ZGV2LAorCQkJc2l6ZSwgR0ZQX0tFUk5FTCwgJnVyYi0+dHJhbnNmZXJfZG1hKTsKKwkJaWYgKHZpZGVvLT51cmJfYnVmZmVyW2ldID09IE5VTEwpIHsKKwkJCXVzYl9mcmVlX3VyYih1cmIpOworCQkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCXVyYi0+ZGV2ID0gdmlkZW8tPmRldi0+dWRldjsKKwkJdXJiLT5jb250ZXh0ID0gdmlkZW87CisJCXVyYi0+cGlwZSA9IHVzYl9yY3Zpc29jcGlwZSh2aWRlby0+ZGV2LT51ZGV2LAorCQkJCWVwLT5kZXNjLmJFbmRwb2ludEFkZHJlc3MpOworCQl1cmItPnRyYW5zZmVyX2ZsYWdzID0gVVJCX0lTT19BU0FQIHwgVVJCX05PX1RSQU5TRkVSX0RNQV9NQVA7CisJCXVyYi0+aW50ZXJ2YWwgPSBlcC0+ZGVzYy5iSW50ZXJ2YWw7CisJCXVyYi0+dHJhbnNmZXJfYnVmZmVyID0gdmlkZW8tPnVyYl9idWZmZXJbaV07CisJCXVyYi0+Y29tcGxldGUgPSB1dmNfdmlkZW9fY29tcGxldGU7CisJCXVyYi0+bnVtYmVyX29mX3BhY2tldHMgPSBucGFja2V0czsKKwkJdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gc2l6ZTsKKworCQlmb3IgKGogPSAwOyBqIDwgbnBhY2tldHM7ICsraikgeworCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tqXS5vZmZzZXQgPSBqICogcHNpemU7CisJCQl1cmItPmlzb19mcmFtZV9kZXNjW2pdLmxlbmd0aCA9IHBzaXplOworCQl9CisKKwkJdmlkZW8tPnVyYltpXSA9IHVyYjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYnVsayBVUkJzIGFuZCBhbGxvY2F0ZSB0cmFuc2ZlciBidWZmZXJzLiBUaGUgcGFja2V0IHNpemUgaXMKKyAqIGdpdmVuIGJ5IHRoZSBlbmRwb2ludC4KKyAqLworc3RhdGljIGludCB1dmNfaW5pdF92aWRlb19idWxrKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwKQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwl1bnNpZ25lZCBpbnQgcGlwZSwgaTsKKwlfX3UxNiBwc2l6ZTsKKwlfX3UzMiBzaXplOworCisJLyogQ29tcHV0ZSB0aGUgYnVsayBVUkIgc2l6ZS4gU29tZSBkZXZpY2VzIHNldCB0aGUgbWF4aW11bSBwYXlsb2FkCisJICogc2l6ZSB0byBhIHZhbHVlIHRvbyBoaWdoIGZvciBtZW1vcnktY29uc3RyYWluZWQgZGV2aWNlcy4gV2UgbXVzdAorCSAqIHRoZW4gdHJhbnNmZXIgdGhlIHBheWxvYWQgYWNjcm9zcyBtdWx0aXBsZSBVUkJzLiBUbyBiZSBjb25zaXN0YW50CisJICogd2l0aCBpc29jaHJvbm91cyBtb2RlLCBhbGxvY2F0ZSBtYXhpbXVtIFVWQ19NQVhfSVNPX1BBQ0tFVFMgcGVyIGJ1bGsKKwkgKiBVUkIuCisJICovCisJcHNpemUgPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy53TWF4UGFja2V0U2l6ZSkgJiAweDA3ZmY7CisJc2l6ZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplOworCXZpZGVvLT5idWxrLm1heF9wYXlsb2FkX3NpemUgPSBzaXplOworCWlmIChzaXplID4gcHNpemUgKiBVVkNfTUFYX0lTT19QQUNLRVRTKQorCQlzaXplID0gcHNpemUgKiBVVkNfTUFYX0lTT19QQUNLRVRTOworCisJcGlwZSA9IHVzYl9yY3ZidWxrcGlwZSh2aWRlby0+ZGV2LT51ZGV2LCBlcC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzKTsKKworCWZvciAoaSA9IDA7IGkgPCBVVkNfVVJCUzsgKytpKSB7CisJCXVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisJCWlmICh1cmIgPT0gTlVMTCkgeworCQkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCXZpZGVvLT51cmJfYnVmZmVyW2ldID0gdXNiX2J1ZmZlcl9hbGxvYyh2aWRlby0+ZGV2LT51ZGV2LAorCQkJc2l6ZSwgR0ZQX0tFUk5FTCwgJnVyYi0+dHJhbnNmZXJfZG1hKTsKKwkJaWYgKHZpZGVvLT51cmJfYnVmZmVyW2ldID09IE5VTEwpIHsKKwkJCXVzYl9mcmVlX3VyYih1cmIpOworCQkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCXVzYl9maWxsX2J1bGtfdXJiKHVyYiwgdmlkZW8tPmRldi0+dWRldiwgcGlwZSwKKwkJCXZpZGVvLT51cmJfYnVmZmVyW2ldLCBzaXplLCB1dmNfdmlkZW9fY29tcGxldGUsCisJCQl2aWRlbyk7CisJCXVyYi0+dHJhbnNmZXJfZmxhZ3MgPSBVUkJfTk9fVFJBTlNGRVJfRE1BX01BUDsKKworCQl2aWRlby0+dXJiW2ldID0gdXJiOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogSW5pdGlhbGl6ZSBpc29jaHJvbm91cy9idWxrIFVSQnMgYW5kIGFsbG9jYXRlIHRyYW5zZmVyIGJ1ZmZlcnMuCisgKi8KK3N0YXRpYyBpbnQgdXZjX2luaXRfdmlkZW8oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmID0gdmlkZW8tPnN0cmVhbWluZy0+aW50ZjsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzOworCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXAgPSBOVUxMOworCWludCBpbnRmbnVtID0gdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bTsKKwl1bnNpZ25lZCBpbnQgYmFuZHdpZHRoLCBwc2l6ZSwgaTsKKwlpbnQgcmV0OworCisJdmlkZW8tPmxhc3RfZmlkID0gLTE7CisJdmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUgPSAwOworCXZpZGVvLT5idWxrLnNraXBfcGF5bG9hZCA9IDA7CisJdmlkZW8tPmJ1bGsucGF5bG9hZF9zaXplID0gMDsKKworCWlmIChpbnRmLT5udW1fYWx0c2V0dGluZyA+IDEpIHsKKwkJLyogSXNvY2hyb25vdXMgZW5kcG9pbnQsIHNlbGVjdCB0aGUgYWx0ZXJuYXRlIHNldHRpbmcuICovCisJCWJhbmR3aWR0aCA9IHZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplOworCisJCWlmIChiYW5kd2lkdGggPT0gMCkgeworCQkJdXZjX3ByaW50ayhLRVJOX1dBUk5JTkcsICJkZXZpY2UgJXMgcmVxdWVzdGVkIG51bGwgIgorCQkJCSJiYW5kd2lkdGgsIGRlZmF1bHRpbmcgdG8gbG93ZXN0LlxuIiwKKwkJCQl2aWRlby0+dmRldi0+bmFtZSk7CisJCQliYW5kd2lkdGggPSAxOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IGludGYtPm51bV9hbHRzZXR0aW5nOyArK2kpIHsKKwkJCWFsdHMgPSAmaW50Zi0+YWx0c2V0dGluZ1tpXTsKKwkJCWVwID0gdXZjX2ZpbmRfZW5kcG9pbnQoYWx0cywKKwkJCQl2aWRlby0+c3RyZWFtaW5nLT5oZWFkZXIuYkVuZHBvaW50QWRkcmVzcyk7CisJCQlpZiAoZXAgPT0gTlVMTCkKKwkJCQljb250aW51ZTsKKworCQkJLyogQ2hlY2sgaWYgdGhlIGJhbmR3aWR0aCBpcyBoaWdoIGVub3VnaC4gKi8KKwkJCXBzaXplID0gbGUxNl90b19jcHUoZXAtPmRlc2Mud01heFBhY2tldFNpemUpOworCQkJcHNpemUgPSAocHNpemUgJiAweDA3ZmYpICogKDEgKyAoKHBzaXplID4+IDExKSAmIDMpKTsKKwkJCWlmIChwc2l6ZSA+PSBiYW5kd2lkdGgpCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaSA+PSBpbnRmLT5udW1fYWx0c2V0dGluZykKKwkJCXJldHVybiAtRUlPOworCisJCWlmICgocmV0ID0gdXNiX3NldF9pbnRlcmZhY2UodmlkZW8tPmRldi0+dWRldiwgaW50Zm51bSwgaSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gdXZjX2luaXRfdmlkZW9faXNvYyh2aWRlbywgZXApOworCX0gZWxzZSB7CisJCS8qIEJ1bGsgZW5kcG9pbnQsIHByb2NlZWQgdG8gVVJCIGluaXRpYWxpemF0aW9uLiAqLworCQllcCA9IHV2Y19maW5kX2VuZHBvaW50KCZpbnRmLT5hbHRzZXR0aW5nWzBdLAorCQkJCXZpZGVvLT5zdHJlYW1pbmctPmhlYWRlci5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJaWYgKGVwID09IE5VTEwpCisJCQlyZXR1cm4gLUVJTzsKKworCQlyZXQgPSB1dmNfaW5pdF92aWRlb19idWxrKHZpZGVvLCBlcCk7CisJfQorCisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKiBTdWJtaXQgdGhlIFVSQnMuICovCisJZm9yIChpID0gMDsgaSA8IFVWQ19VUkJTOyArK2kpIHsKKwkJaWYgKChyZXQgPSB1c2Jfc3VibWl0X3VyYih2aWRlby0+dXJiW2ldLCBHRlBfS0VSTkVMKSkgPCAwKSB7CisJCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAiRmFpbGVkIHRvIHN1Ym1pdCBVUkIgJXUgIgorCQkJCQkiKCVkKS5cbiIsIGksIHJldCk7CisJCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN1c3BlbmQvcmVzdW1lCisgKi8KKworLyoKKyAqIFN0b3Agc3RyZWFtaW5nIHdpdGhvdXQgZGlzYWJsaW5nIHRoZSB2aWRlbyBxdWV1ZS4KKyAqCisgKiBUbyBsZXQgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyByZXN1bWUgd2l0aG91dCB0cm91YmxlLCB3ZSBtdXN0IG5vdCB0b3VjaCB0aGUKKyAqIHZpZGVvIGJ1ZmZlcnMgaW4gYW55IHdheS4gV2UgbWFyayB0aGUgZGV2aWNlIGFzIGZyb3plbiB0byBtYWtlIHN1cmUgdGhlIFVSQgorICogY29tcGxldGlvbiBoYW5kbGVyIHdvbid0IHRyeSB0byBjYW5jZWwgdGhlIHF1ZXVlIHdoZW4gd2Uga2lsbCB0aGUgVVJCcy4KKyAqLworaW50IHV2Y192aWRlb19zdXNwZW5kKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlpZiAoIXV2Y19xdWV1ZV9zdHJlYW1pbmcoJnZpZGVvLT5xdWV1ZSkpCisJCXJldHVybiAwOworCisJdmlkZW8tPmZyb3plbiA9IDE7CisJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJdXNiX3NldF9pbnRlcmZhY2UodmlkZW8tPmRldi0+dWRldiwgdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bSwgMCk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZWNvbmZpZ3VyZSB0aGUgdmlkZW8gaW50ZXJmYWNlIGFuZCByZXN0YXJ0IHN0cmVhbWluZyBpZiBpdCB3YXMgZW5hYmxlCisgKiBiZWZvcmUgc3VzcGVuZC4KKyAqCisgKiBJZiBhbiBlcnJvciBvY2N1cnMsIGRpc2FibGUgdGhlIHZpZGVvIHF1ZXVlLiBUaGlzIHdpbGwgd2FrZSBhbGwgcGVuZGluZworICogYnVmZmVycywgbWFraW5nIHN1cmUgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyBhcmUgbm90aWZpZWQgb2YgdGhlIHByb2JsZW0KKyAqIGluc3RlYWQgb2Ygd2FpdGluZyBmb3JldmVyLgorICovCitpbnQgdXZjX3ZpZGVvX3Jlc3VtZShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJaW50IHJldDsKKworCXZpZGVvLT5mcm96ZW4gPSAwOworCisJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sICZ2aWRlby0+c3RyZWFtaW5nLT5jdHJsLCAwKSkgPCAwKSB7CisJCXV2Y19xdWV1ZV9lbmFibGUoJnZpZGVvLT5xdWV1ZSwgMCk7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCF1dmNfcXVldWVfc3RyZWFtaW5nKCZ2aWRlby0+cXVldWUpKQorCQlyZXR1cm4gMDsKKworCWlmICgocmV0ID0gdXZjX2luaXRfdmlkZW8odmlkZW8pKSA8IDApCisJCXV2Y19xdWV1ZV9lbmFibGUoJnZpZGVvLT5xdWV1ZSwgMCk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFZpZGVvIGRldmljZQorICovCisKKy8qCisgKiBJbml0aWFsaXplIHRoZSBVVkMgdmlkZW8gZGV2aWNlIGJ5IHJldHJpZXZpbmcgdGhlIGRlZmF1bHQgZm9ybWF0IGFuZAorICogY29tbWl0dGluZyBpdC4KKyAqCisgKiBTb21lIGNhbWVyYXMgKG5hbWVseSB0aGUgRnVqaSBGaW5lcGl4KSBzZXQgdGhlIGZvcm1hdCBhbmQgZnJhbWUKKyAqIGluZGV4ZXMgdG8gemVyby4gVGhlIFVWQyBzdGFuZGFyZCBkb2Vzbid0IGNsZWFybHkgbWFrZSB0aGlzIGEgc3BlYworICogdmlvbGF0aW9uLCBzbyB0cnkgdG8gc2lsZW50bHkgZml4IHRoZSB2YWx1ZXMgaWYgcG9zc2libGUuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBkZXZpY2Ugd2l0aCBWNEwuCisgKi8KK2ludCB1dmNfdmlkZW9faW5pdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqcHJvYmUgPSAmdmlkZW8tPnN0cmVhbWluZy0+Y3RybDsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0ID0gTlVMTDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IE5VTEw7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWlmICh2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0cyA9PSAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiTm8gc3VwcG9ydGVkIHZpZGVvIGZvcm1hdHMgZm91bmQuXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQWx0ZXJuYXRlIHNldHRpbmcgMCBzaG91bGQgYmUgdGhlIGRlZmF1bHQsIHlldCB0aGUgWEJveCBMaXZlIFZpc2lvbgorCSAqIENhbSAoYW5kIHBvc3NpYmx5IG90aGVyIGRldmljZXMpIGNyYXNoIG9yIG90aGVyd2lzZSBtaXNiZWhhdmUgaWYKKwkgKiB0aGV5IGRvbid0IHJlY2VpdmUgYSBTRVRfSU5URVJGQUNFIHJlcXVlc3QgYmVmb3JlIGFueSBvdGhlciB2aWRlbworCSAqIGNvbnRyb2wgcmVxdWVzdC4KKwkgKi8KKwl1c2Jfc2V0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT51ZGV2LCB2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtLCAwKTsKKworCS8qIFNvbWUgd2ViY2FtcyBkb24ndCBzdXBvcnQgR0VUX0RFRiByZXF1ZXN0IG9uIHRoZSBwcm9iZSBjb250cm9sLiBXZQorCSAqIGZhbGwgYmFjayB0byBHRVRfQ1VSIGlmIEdFVF9ERUYgZmFpbHMuCisJICovCisJaWYgKChyZXQgPSB1dmNfZ2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAxLCBHRVRfREVGKSkgPCAwICYmCisJICAgIChyZXQgPSB1dmNfZ2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAxLCBHRVRfQ1VSKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogQ2hlY2sgaWYgdGhlIGRlZmF1bHQgZm9ybWF0IGRlc2NyaXB0b3IgZXhpc3RzLiBVc2UgdGhlIGZpcnN0CisJICogYXZhaWxhYmxlIGZvcm1hdCBvdGhlcndpc2UuCisJICovCisJZm9yIChpID0gdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHM7IGkgPiAwOyAtLWkpIHsKKwkJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpLTFdOworCQlpZiAoZm9ybWF0LT5pbmRleCA9PSBwcm9iZS0+YkZvcm1hdEluZGV4KQorCQkJYnJlYWs7CisJfQorCisJaWYgKGZvcm1hdC0+bmZyYW1lcyA9PSAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiTm8gZnJhbWUgZGVzY3JpcHRvciBmb3VuZCBmb3IgdGhlICIKKwkJCSJkZWZhdWx0IGZvcm1hdC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBaZXJvIGJGcmFtZUluZGV4IG1pZ2h0IGJlIGNvcnJlY3QuIFN0cmVhbS1iYXNlZCBmb3JtYXRzIChpbmNsdWRpbmcKKwkgKiBNUEVHLTIgVFMgYW5kIERWKSBkbyBub3Qgc3VwcG9ydCBmcmFtZXMgYnV0IGhhdmUgYSBkdW1teSBmcmFtZQorCSAqIGRlc2NyaXB0b3Igd2l0aCBiRnJhbWVJbmRleCBzZXQgdG8gemVyby4gSWYgdGhlIGRlZmF1bHQgZnJhbWUKKwkgKiBkZXNjcmlwdG9yIGlzIG5vdCBmb3VuZCwgdXNlIHRoZSBmaXJzdCBhdmFsYWJsZSBmcmFtZS4KKwkgKi8KKwlmb3IgKGkgPSBmb3JtYXQtPm5mcmFtZXM7IGkgPiAwOyAtLWkpIHsKKwkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtpLTFdOworCQlpZiAoZnJhbWUtPmJGcmFtZUluZGV4ID09IHByb2JlLT5iRnJhbWVJbmRleCkKKwkJCWJyZWFrOworCX0KKworCS8qIENvbW1pdCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4gKi8KKwlwcm9iZS0+YkZvcm1hdEluZGV4ID0gZm9ybWF0LT5pbmRleDsKKwlwcm9iZS0+YkZyYW1lSW5kZXggPSBmcmFtZS0+YkZyYW1lSW5kZXg7CisJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAwKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2Zvcm1hdCA9IGZvcm1hdDsKKwl2aWRlby0+c3RyZWFtaW5nLT5jdXJfZnJhbWUgPSBmcmFtZTsKKwlhdG9taWNfc2V0KCZ2aWRlby0+YWN0aXZlLCAwKTsKKworCS8qIFNlbGVjdCB0aGUgdmlkZW8gZGVjb2RpbmcgZnVuY3Rpb24gKi8KKwlpZiAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX0JVSUxUSU5fSVNJR0hUKQorCQl2aWRlby0+ZGVjb2RlID0gdXZjX3ZpZGVvX2RlY29kZV9pc2lnaHQ7CisJZWxzZSBpZiAodmlkZW8tPnN0cmVhbWluZy0+aW50Zi0+bnVtX2FsdHNldHRpbmcgPiAxKQorCQl2aWRlby0+ZGVjb2RlID0gdXZjX3ZpZGVvX2RlY29kZV9pc29jOworCWVsc2UKKwkJdmlkZW8tPmRlY29kZSA9IHV2Y192aWRlb19kZWNvZGVfYnVsazsKKworCXJldHVybiAwOworfQorCisvKgorICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIHZpZGVvIHN0cmVhbS4KKyAqLworaW50IHV2Y192aWRlb19lbmFibGUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBpbnQgZW5hYmxlKQoreworCWludCByZXQ7CisKKwlpZiAoIWVuYWJsZSkgeworCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJdXNiX3NldF9pbnRlcmZhY2UodmlkZW8tPmRldi0+dWRldiwKKwkJCXZpZGVvLT5zdHJlYW1pbmctPmludGZudW0sIDApOworCQl1dmNfcXVldWVfZW5hYmxlKCZ2aWRlby0+cXVldWUsIDApOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoKHJldCA9IHV2Y19xdWV1ZV9lbmFibGUoJnZpZGVvLT5xdWV1ZSwgMSkpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiB1dmNfaW5pdF92aWRlbyh2aWRlbyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmN2aWRlby5oIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjdmlkZW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTk1YTc4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjdmlkZW8uaApAQCAtMCwwICsxLDc5NiBAQAorI2lmbmRlZiBfVVNCX1ZJREVPX0hfCisjZGVmaW5lIF9VU0JfVklERU9fSF8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorCisKKy8qCisgKiBEeW5hbWljIGNvbnRyb2xzCisgKi8KKworLyogRGF0YSB0eXBlcyBmb3IgVVZDIGNvbnRyb2wgZGF0YSAqLworI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfUkFXCQkwCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQJMQorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQJMgorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTgkzCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9FTlVNCQk0CisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9CSVRNQVNLCTUKKworLyogQ29udHJvbCBmbGFncyAqLworI2RlZmluZSBVVkNfQ09OVFJPTF9TRVRfQ1VSCSgxIDw8IDApCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9DVVIJKDEgPDwgMSkKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX01JTgkoMSA8PCAyKQorI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfTUFYCSgxIDw8IDMpCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9SRVMJKDEgPDwgNCkKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX0RFRgkoMSA8PCA1KQorLyogQ29udHJvbCBzaG91bGQgYmUgc2F2ZWQgYXQgc3VzcGVuZCBhbmQgcmVzdG9yZWQgYXQgcmVzdW1lLiAqLworI2RlZmluZSBVVkNfQ09OVFJPTF9SRVNUT1JFCSgxIDw8IDYpCisvKiBDb250cm9sIGNhbiBiZSB1cGRhdGVkIGJ5IHRoZSBjYW1lcmEuICovCisjZGVmaW5lIFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFCSgxIDw8IDcpCisKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX1JBTkdFCShVVkNfQ09OVFJPTF9HRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX01JTiB8IFwKKwkJCQkgVVZDX0NPTlRST0xfR0VUX01BWCB8IFVWQ19DT05UUk9MX0dFVF9SRVMgfCBcCisJCQkJIFVWQ19DT05UUk9MX0dFVF9ERUYpCisKK3N0cnVjdCB1dmNfeHVfY29udHJvbF9pbmZvIHsKKwlfX3U4IGVudGl0eVsxNl07CisJX191OCBpbmRleDsKKwlfX3U4IHNlbGVjdG9yOworCV9fdTE2IHNpemU7CisJX191MzIgZmxhZ3M7Cit9OworCitzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfbWFwcGluZyB7CisJX191MzIgaWQ7CisJX191OCBuYW1lWzMyXTsKKwlfX3U4IGVudGl0eVsxNl07CisJX191OCBzZWxlY3RvcjsKKworCV9fdTggc2l6ZTsKKwlfX3U4IG9mZnNldDsKKwllbnVtIHY0bDJfY3RybF90eXBlIHY0bDJfdHlwZTsKKwlfX3UzMiBkYXRhX3R5cGU7Cit9OworCitzdHJ1Y3QgdXZjX3h1X2NvbnRyb2wgeworCV9fdTggdW5pdDsKKwlfX3U4IHNlbGVjdG9yOworCV9fdTE2IHNpemU7CisJX191OCBfX3VzZXIgKmRhdGE7Cit9OworCisjZGVmaW5lIFVWQ0lPQ19DVFJMX0FERAkJX0lPVygnVScsIDEsIHN0cnVjdCB1dmNfeHVfY29udHJvbF9pbmZvKQorI2RlZmluZSBVVkNJT0NfQ1RSTF9NQVAJCV9JT1dSKCdVJywgMiwgc3RydWN0IHV2Y194dV9jb250cm9sX21hcHBpbmcpCisjZGVmaW5lIFVWQ0lPQ19DVFJMX0dFVAkJX0lPV1IoJ1UnLCAzLCBzdHJ1Y3QgdXZjX3h1X2NvbnRyb2wpCisjZGVmaW5lIFVWQ0lPQ19DVFJMX1NFVAkJX0lPVygnVScsIDQsIHN0cnVjdCB1dmNfeHVfY29udHJvbCkKKworI2lmZGVmIF9fS0VSTkVMX18KKworI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVWQyBjb25zdGFudHMKKyAqLworCisjZGVmaW5lIFNDX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBTQ19WSURFT0NPTlRST0wgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgU0NfVklERU9TVFJFQU1JTkcgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFNDX1ZJREVPX0lOVEVSRkFDRV9DT0xMRUNUSU9OICAgMHgwMworCisjZGVmaW5lIFBDX1BST1RPQ09MX1VOREVGSU5FRCAgICAgICAgICAgMHgwMAorCisjZGVmaW5lIENTX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgMHgyMAorI2RlZmluZSBDU19ERVZJQ0UgICAgICAgICAgICAgICAgICAgICAgIDB4MjEKKyNkZWZpbmUgQ1NfQ09ORklHVVJBVElPTiAgICAgICAgICAgICAgICAweDIyCisjZGVmaW5lIENTX1NUUklORyAgICAgICAgICAgICAgICAgICAgICAgMHgyMworI2RlZmluZSBDU19JTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgIDB4MjQKKyNkZWZpbmUgQ1NfRU5EUE9JTlQgICAgICAgICAgICAgICAgICAgICAweDI1CisKKy8qIFZpZGVvQ29udHJvbCBjbGFzcyBzcGVjaWZpYyBpbnRlcmZhY2UgZGVzY3JpcHRvciAqLworI2RlZmluZSBWQ19ERVNDUklQVE9SX1VOREVGSU5FRCAgICAgICAgIDB4MDAKKyNkZWZpbmUgVkNfSEVBREVSICAgICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFZDX0lOUFVUX1RFUk1JTkFMICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBWQ19PVVRQVVRfVEVSTUlOQUwgICAgICAgICAgICAgIDB4MDMKKyNkZWZpbmUgVkNfU0VMRUNUT1JfVU5JVCAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIFZDX1BST0NFU1NJTkdfVU5JVCAgICAgICAgICAgICAgMHgwNQorI2RlZmluZSBWQ19FWFRFTlNJT05fVU5JVCAgICAgICAgICAgICAgIDB4MDYKKworLyogVmlkZW9TdHJlYW1pbmcgY2xhc3Mgc3BlY2lmaWMgaW50ZXJmYWNlIGRlc2NyaXB0b3IgKi8KKyNkZWZpbmUgVlNfVU5ERUZJTkVEICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIFZTX0lOUFVUX0hFQURFUiAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBWU19PVVRQVVRfSEVBREVSICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgVlNfU1RJTExfSU1BR0VfRlJBTUUgICAgICAgICAgICAweDAzCisjZGVmaW5lIFZTX0ZPUk1BVF9VTkNPTVBSRVNTRUQgICAgICAgICAgMHgwNAorI2RlZmluZSBWU19GUkFNRV9VTkNPTVBSRVNTRUQgICAgICAgICAgIDB4MDUKKyNkZWZpbmUgVlNfRk9STUFUX01KUEVHICAgICAgICAgICAgICAgICAweDA2CisjZGVmaW5lIFZTX0ZSQU1FX01KUEVHICAgICAgICAgICAgICAgICAgMHgwNworI2RlZmluZSBWU19GT1JNQVRfTVBFRzJUUyAgICAgICAgICAgICAgIDB4MGEKKyNkZWZpbmUgVlNfRk9STUFUX0RWICAgICAgICAgICAgICAgICAgICAweDBjCisjZGVmaW5lIFZTX0NPTE9SRk9STUFUICAgICAgICAgICAgICAgICAgMHgwZAorI2RlZmluZSBWU19GT1JNQVRfRlJBTUVfQkFTRUQgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgVlNfRlJBTUVfRlJBTUVfQkFTRUQgICAgICAgICAgICAweDExCisjZGVmaW5lIFZTX0ZPUk1BVF9TVFJFQU1fQkFTRUQgICAgICAgICAgMHgxMgorCisvKiBFbmRwb2ludCB0eXBlICovCisjZGVmaW5lIEVQX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBFUF9HRU5FUkFMICAgICAgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgRVBfRU5EUE9JTlQgICAgICAgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIEVQX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgMHgwMworCisvKiBSZXF1ZXN0IGNvZGVzICovCisjZGVmaW5lIFJDX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBTRVRfQ1VSICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgR0VUX0NVUiAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCisjZGVmaW5lIEdFVF9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgMHg4MgorI2RlZmluZSBHRVRfTUFYICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODMKKyNkZWZpbmUgR0VUX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAweDg0CisjZGVmaW5lIEdFVF9MRU4gICAgICAgICAgICAgICAgICAgICAgICAgMHg4NQorI2RlZmluZSBHRVRfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgIDB4ODYKKyNkZWZpbmUgR0VUX0RFRiAgICAgICAgICAgICAgICAgICAgICAgICAweDg3CisKKy8qIFZpZGVvQ29udHJvbCBpbnRlcmZhY2UgY29udHJvbHMgKi8KKyNkZWZpbmUgVkNfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAweDAwCisjZGVmaW5lIFZDX1ZJREVPX1BPV0VSX01PREVfQ09OVFJPTCAgICAgMHgwMQorI2RlZmluZSBWQ19SRVFVRVNUX0VSUk9SX0NPREVfQ09OVFJPTCAgIDB4MDIKKworLyogVGVybWluYWwgY29udHJvbHMgKi8KKyNkZWZpbmUgVEVfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAweDAwCisKKy8qIFNlbGVjdG9yIFVuaXQgY29udHJvbHMgKi8KKyNkZWZpbmUgU1VfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAweDAwCisjZGVmaW5lIFNVX0lOUFVUX1NFTEVDVF9DT05UUk9MICAgICAgICAgMHgwMQorCisvKiBDYW1lcmEgVGVybWluYWwgY29udHJvbHMgKi8KKyNkZWZpbmUgQ1RfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAJCTB4MDAKKyNkZWZpbmUgQ1RfU0NBTk5JTkdfTU9ERV9DT05UUk9MICAgICAgICAJCTB4MDEKKyNkZWZpbmUgQ1RfQUVfTU9ERV9DT05UUk9MICAgICAgICAgICAgICAJCTB4MDIKKyNkZWZpbmUgQ1RfQUVfUFJJT1JJVFlfQ09OVFJPTCAgICAgICAgICAJCTB4MDMKKyNkZWZpbmUgQ1RfRVhQT1NVUkVfVElNRV9BQlNPTFVURV9DT05UUk9MICAgICAgICAgICAgICAgMHgwNAorI2RlZmluZSBDVF9FWFBPU1VSRV9USU1FX1JFTEFUSVZFX0NPTlRST0wgICAgICAgICAgICAgICAweDA1CisjZGVmaW5lIENUX0ZPQ1VTX0FCU09MVVRFX0NPTlRST0wgICAgICAgCQkweDA2CisjZGVmaW5lIENUX0ZPQ1VTX1JFTEFUSVZFX0NPTlRST0wgICAgICAgCQkweDA3CisjZGVmaW5lIENUX0ZPQ1VTX0FVVE9fQ09OVFJPTCAgICAgICAgICAgCQkweDA4CisjZGVmaW5lIENUX0lSSVNfQUJTT0xVVEVfQ09OVFJPTCAgICAgICAgCQkweDA5CisjZGVmaW5lIENUX0lSSVNfUkVMQVRJVkVfQ09OVFJPTCAgICAgICAgCQkweDBhCisjZGVmaW5lIENUX1pPT01fQUJTT0xVVEVfQ09OVFJPTCAgICAgICAgCQkweDBiCisjZGVmaW5lIENUX1pPT01fUkVMQVRJVkVfQ09OVFJPTCAgICAgICAgCQkweDBjCisjZGVmaW5lIENUX1BBTlRJTFRfQUJTT0xVVEVfQ09OVFJPTCAgICAgCQkweDBkCisjZGVmaW5lIENUX1BBTlRJTFRfUkVMQVRJVkVfQ09OVFJPTCAgICAgCQkweDBlCisjZGVmaW5lIENUX1JPTExfQUJTT0xVVEVfQ09OVFJPTCAgICAgICAgCQkweDBmCisjZGVmaW5lIENUX1JPTExfUkVMQVRJVkVfQ09OVFJPTCAgICAgICAgCQkweDEwCisjZGVmaW5lIENUX1BSSVZBQ1lfQ09OVFJPTCAgICAgICAgICAgICAgCQkweDExCisKKy8qIFByb2Nlc3NpbmcgVW5pdCBjb250cm9scyAqLworI2RlZmluZSBQVV9DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIAkJMHgwMAorI2RlZmluZSBQVV9CQUNLTElHSFRfQ09NUEVOU0FUSU9OX0NPTlRST0wgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFBVX0JSSUdIVE5FU1NfQ09OVFJPTCAgICAgICAgICAgCQkweDAyCisjZGVmaW5lIFBVX0NPTlRSQVNUX0NPTlRST0wgICAgICAgICAgICAgCQkweDAzCisjZGVmaW5lIFBVX0dBSU5fQ09OVFJPTCAgICAgICAgICAgICAgICAgCQkweDA0CisjZGVmaW5lIFBVX1BPV0VSX0xJTkVfRlJFUVVFTkNZX0NPTlRST0wgCQkweDA1CisjZGVmaW5lIFBVX0hVRV9DT05UUk9MICAgICAgICAgICAgICAgICAgCQkweDA2CisjZGVmaW5lIFBVX1NBVFVSQVRJT05fQ09OVFJPTCAgICAgICAgICAgCQkweDA3CisjZGVmaW5lIFBVX1NIQVJQTkVTU19DT05UUk9MICAgICAgICAgICAgCQkweDA4CisjZGVmaW5lIFBVX0dBTU1BX0NPTlRST0wgICAgICAgICAgICAgICAgCQkweDA5CisjZGVmaW5lIFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQ09OVFJPTCAgICAgICAgICAgIDB4MGEKKyNkZWZpbmUgUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9BVVRPX0NPTlRST0wgICAgICAgMHgwYgorI2RlZmluZSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9DT05UUk9MICAgICAgICAgICAgICAweDBjCisjZGVmaW5lIFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0FVVE9fQ09OVFJPTCAgICAgICAgIDB4MGQKKyNkZWZpbmUgUFVfRElHSVRBTF9NVUxUSVBMSUVSX0NPTlRST0wgICAJCTB4MGUKKyNkZWZpbmUgUFVfRElHSVRBTF9NVUxUSVBMSUVSX0xJTUlUX0NPTlRST0wgICAgICAgICAgICAgMHgwZgorI2RlZmluZSBQVV9IVUVfQVVUT19DT05UUk9MICAgICAgICAgICAgIAkJMHgxMAorI2RlZmluZSBQVV9BTkFMT0dfVklERU9fU1RBTkRBUkRfQ09OVFJPTCAgICAgICAgICAgICAgICAweDExCisjZGVmaW5lIFBVX0FOQUxPR19MT0NLX1NUQVRVU19DT05UUk9MICAgCQkweDEyCisKKyNkZWZpbmUgTFhVX01PVE9SX1BBTlRJTFRfUkVMQVRJVkVfQ09OVFJPTAkJMHgwMQorI2RlZmluZSBMWFVfTU9UT1JfUEFOVElMVF9SRVNFVF9DT05UUk9MCQkJMHgwMgorI2RlZmluZSBMWFVfTU9UT1JfRk9DVVNfTU9UT1JfQ09OVFJPTAkJCTB4MDMKKworLyogVmlkZW9TdHJlYW1pbmcgaW50ZXJmYWNlIGNvbnRyb2xzICovCisjZGVmaW5lIFZTX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgMHgwMAorI2RlZmluZSBWU19QUk9CRV9DT05UUk9MICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgVlNfQ09NTUlUX0NPTlRST0wgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFZTX1NUSUxMX1BST0JFX0NPTlRST0wgICAgICAgICAgMHgwMworI2RlZmluZSBWU19TVElMTF9DT01NSVRfQ09OVFJPTCAgICAgICAgIDB4MDQKKyNkZWZpbmUgVlNfU1RJTExfSU1BR0VfVFJJR0dFUl9DT05UUk9MICAweDA1CisjZGVmaW5lIFZTX1NUUkVBTV9FUlJPUl9DT0RFX0NPTlRST0wgICAgMHgwNgorI2RlZmluZSBWU19HRU5FUkFURV9LRVlfRlJBTUVfQ09OVFJPTCAgIDB4MDcKKyNkZWZpbmUgVlNfVVBEQVRFX0ZSQU1FX1NFR01FTlRfQ09OVFJPTCAweDA4CisjZGVmaW5lIFZTX1NZTkNfREVMQVlfQ09OVFJPTCAgICAgICAgICAgMHgwOQorCisjZGVmaW5lIFRUX1ZFTkRPUl9TUEVDSUZJQyAgICAgICAgICAgICAgMHgwMTAwCisjZGVmaW5lIFRUX1NUUkVBTUlORyAgICAgICAgICAgICAgICAgICAgMHgwMTAxCisKKy8qIElucHV0IFRlcm1pbmFsIHR5cGVzICovCisjZGVmaW5lIElUVF9WRU5ET1JfU1BFQ0lGSUMgICAgICAgICAgICAgMHgwMjAwCisjZGVmaW5lIElUVF9DQU1FUkEgICAgICAgICAgICAgICAgICAgICAgMHgwMjAxCisjZGVmaW5lIElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQgICAgICAgMHgwMjAyCisKKy8qIE91dHB1dCBUZXJtaW5hbCB0eXBlcyAqLworI2RlZmluZSBPVFRfVkVORE9SX1NQRUNJRklDICAgICAgICAgICAgIDB4MDMwMAorI2RlZmluZSBPVFRfRElTUExBWSAgICAgICAgICAgICAgICAgICAgIDB4MDMwMQorI2RlZmluZSBPVFRfTUVESUFfVFJBTlNQT1JUX09VVFBVVCAgICAgIDB4MDMwMgorCisvKiBFeHRlcm5hbCBUZXJtaW5hbCB0eXBlcyAqLworI2RlZmluZSBFWFRFUk5BTF9WRU5ET1JfU1BFQ0lGSUMgICAgICAgIDB4MDQwMAorI2RlZmluZSBDT01QT1NJVEVfQ09OTkVDVE9SICAgICAgICAgICAgIDB4MDQwMQorI2RlZmluZSBTVklERU9fQ09OTkVDVE9SICAgICAgICAgICAgICAgIDB4MDQwMgorI2RlZmluZSBDT01QT05FTlRfQ09OTkVDVE9SICAgICAgICAgICAgIDB4MDQwMworCisjZGVmaW5lIFVWQ19URVJNX0lOUFVUCQkJMHgwMDAwCisjZGVmaW5lIFVWQ19URVJNX09VVFBVVAkJCTB4ODAwMAorCisjZGVmaW5lIFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpCQkoKGVudGl0eSktPnR5cGUgJiAweDdmZmYpCisjZGVmaW5lIFVWQ19FTlRJVFlfSVNfVU5JVChlbnRpdHkpCSgoKGVudGl0eSktPnR5cGUgJiAweGZmMDApID09IDApCisjZGVmaW5lIFVWQ19FTlRJVFlfSVNfVEVSTShlbnRpdHkpCSgoKGVudGl0eSktPnR5cGUgJiAweGZmMDApICE9IDApCisjZGVmaW5lIFVWQ19FTlRJVFlfSVNfSVRFUk0oZW50aXR5KSBcCisJKCgoZW50aXR5KS0+dHlwZSAmIDB4ODAwMCkgPT0gVVZDX1RFUk1fSU5QVVQpCisjZGVmaW5lIFVWQ19FTlRJVFlfSVNfT1RFUk0oZW50aXR5KSBcCisJKCgoZW50aXR5KS0+dHlwZSAmIDB4ODAwMCkgPT0gVVZDX1RFUk1fT1VUUFVUKQorCisjZGVmaW5lIFVWQ19TVEFUVVNfVFlQRV9DT05UUk9MCQkxCisjZGVmaW5lIFVWQ19TVEFUVVNfVFlQRV9TVFJFQU1JTkcJMgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEdVSURzCisgKi8KKyNkZWZpbmUgVVZDX0dVSURfVVZDX0NBTUVSQSBcCisJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIFwKKwkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMX0KKyNkZWZpbmUgVVZDX0dVSURfVVZDX09VVFBVVCBcCisJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIFwKKwkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMn0KKyNkZWZpbmUgVVZDX0dVSURfVVZDX01FRElBX1RSQU5TUE9SVF9JTlBVVCBcCisJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIFwKKwkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwM30KKyNkZWZpbmUgVVZDX0dVSURfVVZDX1BST0NFU1NJTkcgXAorCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCBcCisJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDF9CisjZGVmaW5lIFVWQ19HVUlEX1VWQ19TRUxFQ1RPUiBcCisJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIFwKKwkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMn0KKworI2RlZmluZSBVVkNfR1VJRF9MT0dJVEVDSF9ERVZfSU5GTyBcCisJezB4ODIsIDB4MDYsIDB4NjEsIDB4NjMsIDB4NzAsIDB4NTAsIDB4YWIsIDB4NDksIFwKKwkgMHhiOCwgMHhjYywgMHhiMywgMHg4NSwgMHg1ZSwgMHg4ZCwgMHgyMiwgMHgxZX0KKyNkZWZpbmUgVVZDX0dVSURfTE9HSVRFQ0hfVVNFUl9IVyBcCisJezB4ODIsIDB4MDYsIDB4NjEsIDB4NjMsIDB4NzAsIDB4NTAsIDB4YWIsIDB4NDksIFwKKwkgMHhiOCwgMHhjYywgMHhiMywgMHg4NSwgMHg1ZSwgMHg4ZCwgMHgyMiwgMHgxZn0KKyNkZWZpbmUgVVZDX0dVSURfTE9HSVRFQ0hfVklERU8gXAorCXsweDgyLCAweDA2LCAweDYxLCAweDYzLCAweDcwLCAweDUwLCAweGFiLCAweDQ5LCBcCisJIDB4YjgsIDB4Y2MsIDB4YjMsIDB4ODUsIDB4NWUsIDB4OGQsIDB4MjIsIDB4NTB9CisjZGVmaW5lIFVWQ19HVUlEX0xPR0lURUNIX01PVE9SIFwKKwl7MHg4MiwgMHgwNiwgMHg2MSwgMHg2MywgMHg3MCwgMHg1MCwgMHhhYiwgMHg0OSwgXAorCSAweGI4LCAweGNjLCAweGIzLCAweDg1LCAweDVlLCAweDhkLCAweDIyLCAweDU2fQorCisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9NSlBFRyBcCisJeyAnTScsICAnSicsICAnUCcsICAnRycsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX1lVWTIgXAorCXsgJ1knLCAgJ1UnLCAgJ1knLCAgJzInLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9OVjEyIFwKKwl7ICdOJywgICdWJywgICcxJywgICcyJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfWVYxMiBcCisJeyAnWScsICAnVicsICAnMScsICAnMicsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX0k0MjAgXAorCXsgJ0knLCAgJzQnLCAgJzInLCAgJzAnLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9VWVZZIFwKKwl7ICdVJywgICdZJywgICdWJywgICdZJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfWTgwMCBcCisJeyAnWScsICAnOCcsICAnMCcsICAnMCcsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX0JZOCBcCisJeyAnQicsICAnWScsICAnOCcsICAnICcsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERyaXZlciBzcGVjaWZpYyBjb25zdGFudHMuCisgKi8KKworI2RlZmluZSBEUklWRVJfVkVSU0lPTl9OVU1CRVIJS0VSTkVMX1ZFUlNJT04oMCwgMSwgMCkKKworLyogTnVtYmVyIG9mIGlzb2Nocm9ub3VzIFVSQnMuICovCisjZGVmaW5lIFVWQ19VUkJTCQk1CisvKiBNYXhpbXVtIG51bWJlciBvZiBwYWNrZXRzIHBlciBpc29jaHJvbm91cyBVUkIuICovCisjZGVmaW5lIFVWQ19NQVhfSVNPX1BBQ0tFVFMJNDAKKy8qIE1heGltdW0gZnJhbWUgc2l6ZSBpbiBieXRlcywgZm9yIHNhbml0eSBjaGVja2luZy4gKi8KKyNkZWZpbmUgVVZDX01BWF9GUkFNRV9TSVpFCSgxNioxMDI0KjEwMjQpCisvKiBNYXhpbXVtIG51bWJlciBvZiB2aWRlbyBidWZmZXJzLiAqLworI2RlZmluZSBVVkNfTUFYX1ZJREVPX0JVRkZFUlMJMzIKKworI2RlZmluZSBVVkNfQ1RSTF9DT05UUk9MX1RJTUVPVVQJMzAwCisjZGVmaW5lIFVWQ19DVFJMX1NUUkVBTUlOR19USU1FT1VUCTEwMDAKKworLyogRGV2aWNlcyBxdWlya3MgKi8KKyNkZWZpbmUgVVZDX1FVSVJLX1NUQVRVU19JTlRFUlZBTAkweDAwMDAwMDAxCisjZGVmaW5lIFVWQ19RVUlSS19QUk9CRV9NSU5NQVgJCTB4MDAwMDAwMDIKKyNkZWZpbmUgVVZDX1FVSVJLX1BST0JFX0VYVFJBRklFTERTCTB4MDAwMDAwMDQKKyNkZWZpbmUgVVZDX1FVSVJLX0JVSUxUSU5fSVNJR0hUCTB4MDAwMDAwMDgKKyNkZWZpbmUgVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQJCTB4MDAwMDAwMTAKKyNkZWZpbmUgVVZDX1FVSVJLX0lHTk9SRV9TRUxFQ1RPUl9VTklUCTB4MDAwMDAwMjAKKworLyogRm9ybWF0IGZsYWdzICovCisjZGVmaW5lIFVWQ19GTVRfRkxBR19DT01QUkVTU0VECQkweDAwMDAwMDAxCisjZGVmaW5lIFVWQ19GTVRfRkxBR19TVFJFQU0JCTB4MDAwMDAwMDIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBTdHJ1Y3R1cmVzLgorICovCisKK3N0cnVjdCB1dmNfZGV2aWNlOworCisvKiBUT0RPOiBQdXQgdGhlIG1vc3QgZnJlcXVlbnRseSBhY2Nlc3NlZCBmaWVsZHMgYXQgdGhlIGJlZ2lubmluZyBvZgorICogc3RydWN0dXJlcyB0byBtYXhpbWl6ZSBjYWNoZSBlZmZpY2llbmN5LgorICovCitzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIHsKKwlfX3UxNiBibUhpbnQ7CisJX191OCAgYkZvcm1hdEluZGV4OworCV9fdTggIGJGcmFtZUluZGV4OworCV9fdTMyIGR3RnJhbWVJbnRlcnZhbDsKKwlfX3UxNiB3S2V5RnJhbWVSYXRlOworCV9fdTE2IHdQRnJhbWVSYXRlOworCV9fdTE2IHdDb21wUXVhbGl0eTsKKwlfX3UxNiB3Q29tcFdpbmRvd1NpemU7CisJX191MTYgd0RlbGF5OworCV9fdTMyIGR3TWF4VmlkZW9GcmFtZVNpemU7CisJX191MzIgZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplOworCV9fdTMyIGR3Q2xvY2tGcmVxdWVuY3k7CisJX191OCAgYm1GcmFtaW5nSW5mbzsKKwlfX3U4ICBiUHJlZmVyZWRWZXJzaW9uOworCV9fdTggIGJNaW5WZXJzaW9uOworCV9fdTggIGJNYXhWZXJzaW9uOworfTsKKworc3RydWN0IHV2Y19tZW51X2luZm8geworCV9fdTMyIHZhbHVlOworCV9fdTggbmFtZVszMl07Cit9OworCitzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCBsaXN0X2hlYWQgbWFwcGluZ3M7CisKKwlfX3U4IGVudGl0eVsxNl07CisJX191OCBpbmRleDsKKwlfX3U4IHNlbGVjdG9yOworCisJX191MTYgc2l6ZTsKKwlfX3UzMiBmbGFnczsKK307CisKK3N0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqY3RybDsKKworCV9fdTMyIGlkOworCV9fdTggbmFtZVszMl07CisJX191OCBlbnRpdHlbMTZdOworCV9fdTggc2VsZWN0b3I7CisKKwlfX3U4IHNpemU7CisJX191OCBvZmZzZXQ7CisJZW51bSB2NGwyX2N0cmxfdHlwZSB2NGwyX3R5cGU7CisJX191MzIgZGF0YV90eXBlOworCisJc3RydWN0IHV2Y19tZW51X2luZm8gKm1lbnVfaW5mbzsKKwlfX3UzMiBtZW51X2NvdW50OworfTsKKworc3RydWN0IHV2Y19jb250cm9sIHsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvOworCisJX191OCBpbmRleDsJLyogVXNlZCB0byBtYXRjaCB0aGUgdXZjX2NvbnRyb2wgZW50cnkgd2l0aCBhCisJCQkgICB1dmNfY29udHJvbF9pbmZvLiAqLworCV9fdTggZGlydHkgOiAxLAorCSAgICAgbG9hZGVkIDogMSwKKwkgICAgIG1vZGlmaWVkIDogMTsKKworCV9fdTggKmRhdGE7Cit9OworCitzdHJ1Y3QgdXZjX2Zvcm1hdF9kZXNjIHsKKwljaGFyICpuYW1lOworCV9fdTggZ3VpZFsxNl07CisJX191MzIgZmNjOworfTsKKworLyogVGhlIHRlcm0gJ2VudGl0eScgcmVmZXJzIHRvIGJvdGggVVZDIHVuaXRzIGFuZCBVVkMgdGVybWluYWxzLgorICoKKyAqIFRoZSB0eXBlIGZpZWxkIGlzIGVpdGhlciB0aGUgdGVybWluYWwgdHlwZSAod1Rlcm1pbmFsVHlwZSBpbiB0aGUgdGVybWluYWwKKyAqIGRlc2NyaXB0b3IpLCBvciB0aGUgdW5pdCB0eXBlIChiRGVzY3JpcHRvclN1YnR5cGUgaW4gdGhlIHVuaXQgZGVzY3JpcHRvcikuCisgKiBBcyB0aGUgYkRlc2NyaXB0b3JTdWJ0eXBlIGZpZWxkIGlzIG9uZSBieXRlIGxvbmcsIHRoZSB0eXBlIHZhbHVlIHdpbGwKKyAqIGFsd2F5cyBoYXZlIGEgbnVsbCBNU0IgZm9yIHVuaXRzLiBBbGwgdGVybWluYWwgdHlwZXMgZGVmaW5lZCBieSB0aGUgVVZDCisgKiBzcGVjaWZpY2F0aW9uIGhhdmUgYSBub24tbnVsbCBNU0IsIHNvIGl0IGlzIHNhZmUgdG8gdXNlIHRoZSBNU0IgdG8KKyAqIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB1bml0cyBhbmQgdGVybWluYWxzIGFzIGxvbmcgYXMgdGhlIGRlc2NyaXB0b3IgcGFyc2luZworICogY29kZSBtYWtlcyBzdXJlIHRlcm1pbmFsIHR5cGVzIGhhdmUgYSBub24tbnVsbCBNU0IuCisgKgorICogRm9yIHRlcm1pbmFscywgdGhlIHR5cGUncyBtb3N0IHNpZ25pZmljYW50IGJpdCBzdG9yZXMgdGhlIHRlcm1pbmFsCisgKiBkaXJlY3Rpb24gKGVpdGhlciBVVkNfVEVSTV9JTlBVVCBvciBVVkNfVEVSTV9PVVRQVVQpLiBUaGUgdHlwZSBmaWVsZCBzaG91bGQKKyAqIGFsd2F5cyBiZSBhY2Nlc3NlZCB3aXRoIHRoZSBVVkNfRU5USVRZXyogbWFjcm9zIGFuZCBuZXZlciBkaXJlY3RseS4KKyAqLworCitzdHJ1Y3QgdXZjX2VudGl0eSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwkJLyogRW50aXR5IGFzIHBhcnQgb2YgYSBVVkMgZGV2aWNlLiAqLworCXN0cnVjdCBsaXN0X2hlYWQgY2hhaW47CQkvKiBFbnRpdHkgYXMgcGFydCBvZiBhIHZpZGVvIGRldmljZQorCQkJCQkgKiBjaGFpbi4gKi8KKwlfX3U4IGlkOworCV9fdTE2IHR5cGU7CisJY2hhciBuYW1lWzY0XTsKKworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCV9fdTE2IHdPYmplY3RpdmVGb2NhbExlbmd0aE1pbjsKKwkJCV9fdTE2IHdPYmplY3RpdmVGb2NhbExlbmd0aE1heDsKKwkJCV9fdTE2IHdPY3VsYXJGb2NhbExlbmd0aDsKKwkJCV9fdTggIGJDb250cm9sU2l6ZTsKKwkJCV9fdTggICpibUNvbnRyb2xzOworCQl9IGNhbWVyYTsKKworCQlzdHJ1Y3QgeworCQkJX191OCAgYkNvbnRyb2xTaXplOworCQkJX191OCAgKmJtQ29udHJvbHM7CisJCQlfX3U4ICBiVHJhbnNwb3J0TW9kZVNpemU7CisJCQlfX3U4ICAqYm1UcmFuc3BvcnRNb2RlczsKKwkJfSBtZWRpYTsKKworCQlzdHJ1Y3QgeworCQkJX191OCAgYlNvdXJjZUlEOworCQl9IG91dHB1dDsKKworCQlzdHJ1Y3QgeworCQkJX191OCAgYlNvdXJjZUlEOworCQkJX191MTYgd01heE11bHRpcGxpZXI7CisJCQlfX3U4ICBiQ29udHJvbFNpemU7CisJCQlfX3U4ICAqYm1Db250cm9sczsKKwkJCV9fdTggIGJtVmlkZW9TdGFuZGFyZHM7CisJCX0gcHJvY2Vzc2luZzsKKworCQlzdHJ1Y3QgeworCQkJX191OCAgYk5ySW5QaW5zOworCQkJX191OCAgKmJhU291cmNlSUQ7CisJCX0gc2VsZWN0b3I7CisKKwkJc3RydWN0IHsKKwkJCV9fdTggIGd1aWRFeHRlbnNpb25Db2RlWzE2XTsKKwkJCV9fdTggIGJOdW1Db250cm9sczsKKwkJCV9fdTggIGJOckluUGluczsKKwkJCV9fdTggICpiYVNvdXJjZUlEOworCQkJX191OCAgYkNvbnRyb2xTaXplOworCQkJX191OCAgKmJtQ29udHJvbHM7CisJCQlfX3U4ICAqYm1Db250cm9sc1R5cGU7CisJCX0gZXh0ZW5zaW9uOworCX07CisKKwl1bnNpZ25lZCBpbnQgbmNvbnRyb2xzOworCXN0cnVjdCB1dmNfY29udHJvbCAqY29udHJvbHM7Cit9OworCitzdHJ1Y3QgdXZjX2ZyYW1lIHsKKwlfX3U4ICBiRnJhbWVJbmRleDsKKwlfX3U4ICBibUNhcGFiaWxpdGllczsKKwlfX3UxNiB3V2lkdGg7CisJX191MTYgd0hlaWdodDsKKwlfX3UzMiBkd01pbkJpdFJhdGU7CisJX191MzIgZHdNYXhCaXRSYXRlOworCV9fdTMyIGR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemU7CisJX191OCAgYkZyYW1lSW50ZXJ2YWxUeXBlOworCV9fdTMyIGR3RGVmYXVsdEZyYW1lSW50ZXJ2YWw7CisJX191MzIgKmR3RnJhbWVJbnRlcnZhbDsKK307CisKK3N0cnVjdCB1dmNfZm9ybWF0IHsKKwlfX3U4IHR5cGU7CisJX191OCBpbmRleDsKKwlfX3U4IGJwcDsKKwlfX3U4IGNvbG9yc3BhY2U7CisJX191MzIgZmNjOworCV9fdTMyIGZsYWdzOworCisJY2hhciBuYW1lWzMyXTsKKworCXVuc2lnbmVkIGludCBuZnJhbWVzOworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworfTsKKworc3RydWN0IHV2Y19zdHJlYW1pbmdfaGVhZGVyIHsKKwlfX3U4IGJOdW1Gb3JtYXRzOworCV9fdTggYkVuZHBvaW50QWRkcmVzczsKKwlfX3U4IGJUZXJtaW5hbExpbms7CisJX191OCBiQ29udHJvbFNpemU7CisJX191OCAqYm1hQ29udHJvbHM7CisJLyogVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIHVzZWQgYnkgaW5wdXQgaGVhZGVycyBvbmx5LiAqLworCV9fdTggYm1JbmZvOworCV9fdTggYlN0aWxsQ2FwdHVyZU1ldGhvZDsKKwlfX3U4IGJUcmlnZ2VyU3VwcG9ydDsKKwlfX3U4IGJUcmlnZ2VyVXNhZ2U7Cit9OworCitzdHJ1Y3QgdXZjX3N0cmVhbWluZyB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGY7CisJaW50IGludGZudW07CisJX191MTYgbWF4cHNpemU7CisKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19oZWFkZXIgaGVhZGVyOworCisJdW5zaWduZWQgaW50IG5mb3JtYXRzOworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQ7CisKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIGN0cmw7CisJc3RydWN0IHV2Y19mb3JtYXQgKmN1cl9mb3JtYXQ7CisJc3RydWN0IHV2Y19mcmFtZSAqY3VyX2ZyYW1lOworCisJc3RydWN0IG11dGV4IG11dGV4OworfTsKKworZW51bSB1dmNfYnVmZmVyX3N0YXRlIHsKKwlVVkNfQlVGX1NUQVRFX0lETEUgICAgICAgPSAwLAorCVVWQ19CVUZfU1RBVEVfUVVFVUVEICAgICA9IDEsCisJVVZDX0JVRl9TVEFURV9BQ1RJVkUgICAgID0gMiwKKwlVVkNfQlVGX1NUQVRFX0RPTkUgICAgICAgPSAzLAorCVVWQ19CVUZfU1RBVEVfRVJST1IgICAgICA9IDQsCit9OworCitzdHJ1Y3QgdXZjX2J1ZmZlciB7CisJdW5zaWduZWQgbG9uZyB2bWFfdXNlX2NvdW50OworCXN0cnVjdCBsaXN0X2hlYWQgc3RyZWFtOworCisJLyogVG91Y2hlZCBieSBpbnRlcnJ1cHQgaGFuZGxlci4gKi8KKwlzdHJ1Y3QgdjRsMl9idWZmZXIgYnVmOworCXN0cnVjdCBsaXN0X2hlYWQgcXVldWU7CisJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKKwllbnVtIHV2Y19idWZmZXJfc3RhdGUgc3RhdGU7Cit9OworCisjZGVmaW5lIFVWQ19RVUVVRV9TVFJFQU1JTkcJCSgxIDw8IDApCisjZGVmaW5lIFVWQ19RVUVVRV9ESVNDT05ORUNURUQJCSgxIDw8IDEpCisjZGVmaW5lIFVWQ19RVUVVRV9EUk9QX0lOQ09NUExFVEUJKDEgPDwgMikKKworc3RydWN0IHV2Y192aWRlb19xdWV1ZSB7CisJdm9pZCAqbWVtOworCXVuc2lnbmVkIGludCBmbGFnczsKKwlfX3UzMiBzZXF1ZW5jZTsKKworCXVuc2lnbmVkIGludCBjb3VudDsKKwl1bnNpZ25lZCBpbnQgYnVmX3NpemU7CisJc3RydWN0IHV2Y19idWZmZXIgYnVmZmVyW1VWQ19NQVhfVklERU9fQlVGRkVSU107CisJc3RydWN0IG11dGV4IG11dGV4OwkvKiBwcm90ZWN0cyBidWZmZXJzIGFuZCBtYWlucXVldWUgKi8KKwlzcGlubG9ja190IGlycWxvY2s7CS8qIHByb3RlY3RzIGlycXF1ZXVlICovCisKKwlzdHJ1Y3QgbGlzdF9oZWFkIG1haW5xdWV1ZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGlycXF1ZXVlOworfTsKKworc3RydWN0IHV2Y192aWRlb19kZXZpY2UgeworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXY7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldjsKKwlhdG9taWNfdCBhY3RpdmU7CisJdW5zaWduZWQgaW50IGZyb3plbiA6IDE7CisKKwlzdHJ1Y3QgbGlzdF9oZWFkIGl0ZXJtczsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqb3Rlcm07CisJc3RydWN0IHV2Y19lbnRpdHkgKnByb2Nlc3Npbmc7CisJc3RydWN0IHV2Y19lbnRpdHkgKnNlbGVjdG9yOworCXN0cnVjdCBsaXN0X2hlYWQgZXh0ZW5zaW9uczsKKwlzdHJ1Y3QgbXV0ZXggY3RybF9tdXRleDsKKworCXN0cnVjdCB1dmNfdmlkZW9fcXVldWUgcXVldWU7CisKKwkvKiBWaWRlbyBzdHJlYW1pbmcgb2JqZWN0LCBtdXN0IGFsd2F5cyBiZSBub24tTlVMTC4gKi8KKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZyAqc3RyZWFtaW5nOworCisJdm9pZCAoKmRlY29kZSkgKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQkJc3RydWN0IHV2Y19idWZmZXIgKmJ1Zik7CisKKwkvKiBDb250ZXh0IGRhdGEgdXNlZCBieSB0aGUgYnVsayBjb21wbGV0aW9uIGhhbmRsZXIuICovCisJc3RydWN0IHsKKwkJX191OCBoZWFkZXJbMjU2XTsKKwkJdW5zaWduZWQgaW50IGhlYWRlcl9zaXplOworCQlpbnQgc2tpcF9wYXlsb2FkOworCQlfX3UzMiBwYXlsb2FkX3NpemU7CisJCV9fdTMyIG1heF9wYXlsb2FkX3NpemU7CisJfSBidWxrOworCisJc3RydWN0IHVyYiAqdXJiW1VWQ19VUkJTXTsKKwljaGFyICp1cmJfYnVmZmVyW1VWQ19VUkJTXTsKKworCV9fdTggbGFzdF9maWQ7Cit9OworCitlbnVtIHV2Y19kZXZpY2Vfc3RhdGUgeworCVVWQ19ERVZfRElTQ09OTkVDVEVEID0gMSwKK307CisKK3N0cnVjdCB1dmNfZGV2aWNlIHsKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldjsKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZjsKKwlfX3UzMiBxdWlya3M7CisJaW50IGludGZudW07CisJY2hhciBuYW1lWzMyXTsKKworCWVudW0gdXZjX2RldmljZV9zdGF0ZSBzdGF0ZTsKKwlzdHJ1Y3Qga3JlZiBrcmVmOworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKworCS8qIFZpZGVvIGNvbnRyb2wgaW50ZXJmYWNlICovCisJX191MTYgdXZjX3ZlcnNpb247CisJX191MzIgY2xvY2tfZnJlcXVlbmN5OworCisJc3RydWN0IGxpc3RfaGVhZCBlbnRpdGllczsKKworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlIHZpZGVvOworCisJLyogU3RhdHVzIEludGVycnVwdCBFbmRwb2ludCAqLworCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqaW50X2VwOworCXN0cnVjdCB1cmIgKmludF91cmI7CisJX191OCBzdGF0dXNbMTZdOworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0OworCisJLyogVmlkZW8gU3RyZWFtaW5nIGludGVyZmFjZXMgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIHN0cmVhbWluZzsKK307CisKK2VudW0gdXZjX2hhbmRsZV9zdGF0ZSB7CisJVVZDX0hBTkRMRV9QQVNTSVZFCT0gMCwKKwlVVkNfSEFORExFX0FDVElWRQk9IDEsCit9OworCitzdHJ1Y3QgdXZjX2ZoIHsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqZGV2aWNlOworCWVudW0gdXZjX2hhbmRsZV9zdGF0ZSBzdGF0ZTsKK307CisKK3N0cnVjdCB1dmNfZHJpdmVyIHsKKwlzdHJ1Y3QgdXNiX2RyaXZlciBkcml2ZXI7CisKKwlzdHJ1Y3QgbXV0ZXggb3Blbl9tdXRleDsJLyogcHJvdGVjdHMgZnJvbSBvcGVuL2Rpc2Nvbm5lY3QgcmFjZSAqLworCisJc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VzOwkvKiBzdHJ1Y3QgdXZjX2RldmljZSBsaXN0ICovCisJc3RydWN0IGxpc3RfaGVhZCBjb250cm9sczsJLyogc3RydWN0IHV2Y19jb250cm9sX2luZm8gbGlzdCAqLworCXN0cnVjdCBtdXRleCBjdHJsX211dGV4OwkvKiBwcm90ZWN0cyBjb250cm9scyBhbmQgZGV2aWNlcworCQkJCQkgICBsaXN0cyAqLworfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBEZWJ1Z2dpbmcsIHByaW50aW5nIGFuZCBsb2dnaW5nCisgKi8KKworI2RlZmluZSBVVkNfVFJBQ0VfUFJPQkUJCSgxIDw8IDApCisjZGVmaW5lIFVWQ19UUkFDRV9ERVNDUgkJKDEgPDwgMSkKKyNkZWZpbmUgVVZDX1RSQUNFX0NPTlRST0wJKDEgPDwgMikKKyNkZWZpbmUgVVZDX1RSQUNFX0ZPUk1BVAkoMSA8PCAzKQorI2RlZmluZSBVVkNfVFJBQ0VfQ0FQVFVSRQkoMSA8PCA0KQorI2RlZmluZSBVVkNfVFJBQ0VfQ0FMTFMJCSgxIDw8IDUpCisjZGVmaW5lIFVWQ19UUkFDRV9JT0NUTAkJKDEgPDwgNikKKyNkZWZpbmUgVVZDX1RSQUNFX0ZSQU1FCQkoMSA8PCA3KQorI2RlZmluZSBVVkNfVFJBQ0VfU1VTUEVORAkoMSA8PCA4KQorI2RlZmluZSBVVkNfVFJBQ0VfU1RBVFVTCSgxIDw8IDkpCisKK2V4dGVybiB1bnNpZ25lZCBpbnQgdXZjX3RyYWNlX3BhcmFtOworCisjZGVmaW5lIHV2Y190cmFjZShmbGFnLCBtc2cuLi4pIFwKKwlkbyB7IFwKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIGZsYWcpIFwKKwkJCXByaW50ayhLRVJOX0RFQlVHICJ1dmN2aWRlbzogIiBtc2cpOyBcCisJfSB3aGlsZSAoMCkKKworI2RlZmluZSB1dmNfcHJpbnRrKGxldmVsLCBtc2cuLi4pIFwKKwlwcmludGsobGV2ZWwgInV2Y3ZpZGVvOiAiIG1zZykKKworI2RlZmluZSBVVkNfR1VJRF9GT1JNQVQgIiUwMnglMDJ4JTAyeCUwMngtJTAyeCUwMngtJTAyeCUwMngtJTAyeCUwMngtIiBcCisJCQkiJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IgorI2RlZmluZSBVVkNfR1VJRF9BUkdTKGd1aWQpIFwKKwkoZ3VpZClbM10sICAoZ3VpZClbMl0sICAoZ3VpZClbMV0sICAoZ3VpZClbMF0sIFwKKwkoZ3VpZClbNV0sICAoZ3VpZClbNF0sIFwKKwkoZ3VpZClbN10sICAoZ3VpZClbNl0sIFwKKwkoZ3VpZClbOF0sICAoZ3VpZClbOV0sIFwKKwkoZ3VpZClbMTBdLCAoZ3VpZClbMTFdLCAoZ3VpZClbMTJdLCBcCisJKGd1aWQpWzEzXSwgKGd1aWQpWzE0XSwgKGd1aWQpWzE1XQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogSW50ZXJuYWwgZnVuY3Rpb25zLgorICovCisKKy8qIENvcmUgZHJpdmVyICovCitleHRlcm4gc3RydWN0IHV2Y19kcml2ZXIgdXZjX2RyaXZlcjsKK2V4dGVybiB2b2lkIHV2Y19kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpOworCisvKiBWaWRlbyBidWZmZXJzIHF1ZXVlIG1hbmFnZW1lbnQuICovCitleHRlcm4gdm9pZCB1dmNfcXVldWVfaW5pdChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSk7CitleHRlcm4gaW50IHV2Y19hbGxvY19idWZmZXJzKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQl1bnNpZ25lZCBpbnQgbmJ1ZmZlcnMsIHVuc2lnbmVkIGludCBidWZsZW5ndGgpOworZXh0ZXJuIGludCB1dmNfZnJlZV9idWZmZXJzKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlKTsKK2V4dGVybiBpbnQgdXZjX3F1ZXJ5X2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1Zik7CitleHRlcm4gaW50IHV2Y19xdWV1ZV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYpOworZXh0ZXJuIGludCB1dmNfZGVxdWV1ZV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYsIGludCBub25ibG9ja2luZyk7CitleHRlcm4gaW50IHV2Y19xdWV1ZV9lbmFibGUoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIGludCBlbmFibGUpOworZXh0ZXJuIHZvaWQgdXZjX3F1ZXVlX2NhbmNlbChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgaW50IGRpc2Nvbm5lY3QpOworZXh0ZXJuIHN0cnVjdCB1dmNfYnVmZmVyICp1dmNfcXVldWVfbmV4dF9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYpOworZXh0ZXJuIHVuc2lnbmVkIGludCB1dmNfcXVldWVfcG9sbChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpOworc3RhdGljIGlubGluZSBpbnQgdXZjX3F1ZXVlX3N0cmVhbWluZyhzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSkKK3sKKwlyZXR1cm4gcXVldWUtPmZsYWdzICYgVVZDX1FVRVVFX1NUUkVBTUlORzsKK30KKworLyogVjRMMiBpbnRlcmZhY2UgKi8KK2V4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHV2Y19mb3BzOworCisvKiBWaWRlbyAqLworZXh0ZXJuIGludCB1dmNfdmlkZW9faW5pdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pOworZXh0ZXJuIGludCB1dmNfdmlkZW9fc3VzcGVuZChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pOworZXh0ZXJuIGludCB1dmNfdmlkZW9fcmVzdW1lKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyk7CitleHRlcm4gaW50IHV2Y192aWRlb19lbmFibGUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBpbnQgZW5hYmxlKTsKK2V4dGVybiBpbnQgdXZjX3Byb2JlX3ZpZGVvKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqcHJvYmUpOworZXh0ZXJuIGludCB1dmNfcXVlcnlfY3RybChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBfX3U4IHF1ZXJ5LCBfX3U4IHVuaXQsCisJCV9fdTggaW50Zm51bSwgX191OCBjcywgdm9pZCAqZGF0YSwgX191MTYgc2l6ZSk7CitleHRlcm4gaW50IHV2Y19zZXRfdmlkZW9fY3RybChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKmN0cmwsIGludCBwcm9iZSk7CisKKy8qIFN0YXR1cyAqLworZXh0ZXJuIGludCB1dmNfc3RhdHVzX2luaXQoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCB1dmNfc3RhdHVzX2NsZWFudXAoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gaW50IHV2Y19zdGF0dXNfc3VzcGVuZChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgdXZjX3N0YXR1c19yZXN1bWUoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CisKKy8qIENvbnRyb2xzICovCitleHRlcm4gc3RydWN0IHV2Y19jb250cm9sICp1dmNfZmluZF9jb250cm9sKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJX191MzIgdjRsMl9pZCwgc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKiptYXBwaW5nKTsKK2V4dGVybiBpbnQgdXZjX3F1ZXJ5X3Y0bDJfY3RybChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB2NGwyX3F1ZXJ5Y3RybCAqdjRsMl9jdHJsKTsKKworZXh0ZXJuIGludCB1dmNfY3RybF9hZGRfaW5mbyhzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbyk7CitleHRlcm4gaW50IHV2Y19jdHJsX2FkZF9tYXBwaW5nKHN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nKTsKK2V4dGVybiBpbnQgdXZjX2N0cmxfaW5pdF9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCB1dmNfY3RybF9jbGVhbnVwX2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgdXZjX2N0cmxfcmVzdW1lX2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIHV2Y19jdHJsX2luaXQodm9pZCk7CisKK2V4dGVybiBpbnQgdXZjX2N0cmxfYmVnaW4oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKTsKK2V4dGVybiBpbnQgX191dmNfY3RybF9jb21taXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBpbnQgcm9sbGJhY2spOworc3RhdGljIGlubGluZSBpbnQgdXZjX2N0cmxfY29tbWl0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlyZXR1cm4gX191dmNfY3RybF9jb21taXQodmlkZW8sIDApOworfQorc3RhdGljIGlubGluZSBpbnQgdXZjX2N0cmxfcm9sbGJhY2soc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXJldHVybiBfX3V2Y19jdHJsX2NvbW1pdCh2aWRlbywgMSk7Cit9CisKK2V4dGVybiBpbnQgdXZjX2N0cmxfZ2V0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKnhjdHJsKTsKK2V4dGVybiBpbnQgdXZjX2N0cmxfc2V0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKnhjdHJsKTsKKworZXh0ZXJuIGludCB1dmNfeHVfY3RybF9xdWVyeShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfeHVfY29udHJvbCAqY3RybCwgaW50IHNldCk7CisKKy8qIFV0aWxpdHkgZnVuY3Rpb25zICovCitleHRlcm4gdm9pZCB1dmNfc2ltcGxpZnlfZnJhY3Rpb24odWludDMyX3QgKm51bWVyYXRvciwgdWludDMyX3QgKmRlbm9taW5hdG9yLAorCQl1bnNpZ25lZCBpbnQgbl90ZXJtcywgdW5zaWduZWQgaW50IHRocmVzaG9sZCk7CitleHRlcm4gdWludDMyX3QgdXZjX2ZyYWN0aW9uX3RvX2ludGVydmFsKHVpbnQzMl90IG51bWVyYXRvciwKKwkJdWludDMyX3QgZGVub21pbmF0b3IpOworZXh0ZXJuIHN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqdXZjX2ZpbmRfZW5kcG9pbnQoCisJCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMsIF9fdTggZXBhZGRyKTsKKworLyogUXVpcmtzIHN1cHBvcnQgKi8KK3ZvaWQgdXZjX3ZpZGVvX2RlY29kZV9pc2lnaHQoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYpOworCisjZW5kaWYgLyogX19LRVJORUxfXyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdmlkZW9kZXYuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdmlkZW9kZXYuYwppbmRleCAzMWU4YWYwLi43NjQ5ODYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpZGVvZGV2LmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby92aWRlb2Rldi5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ttb2QuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIApAQCAtNTEsMTIgKzUyLDUxIEBACiAjZGVmaW5lIFZJREVPX05VTV9ERVZJQ0VTCTI1NgogI2RlZmluZSBWSURFT19OQU1FICAgICAgICAgICAgICAidmlkZW80bGludXgiCiAKK3N0cnVjdCBzdGRfZGVzY3IgeworCXY0bDJfc3RkX2lkIHN0ZDsKKwljb25zdCBjaGFyICpkZXNjcjsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RkX2Rlc2NyIHN0YW5kYXJkc1tdID0geworCXsgVjRMMl9TVERfTlRTQywgCSJOVFNDIiAgICAgIH0sCisJeyBWNEwyX1NURF9OVFNDX00sIAkiTlRTQy1NIiAgICB9LAorCXsgVjRMMl9TVERfTlRTQ19NX0pQLCAJIk5UU0MtTS1KUCIgfSwKKwl7IFY0TDJfU1REX05UU0NfTV9LUiwJIk5UU0MtTS1LUiIgfSwKKwl7IFY0TDJfU1REX05UU0NfNDQzLCAJIk5UU0MtNDQzIiAgfSwKKwl7IFY0TDJfU1REX1BBTCwgCSJQQUwiICAgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfQkcsIAkiUEFMLUJHIiAgICB9LAorCXsgVjRMMl9TVERfUEFMX0IsIAkiUEFMLUIiICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0IxLCAJIlBBTC1CMSIgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9HLCAJIlBBTC1HIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9ILCAJIlBBTC1IIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9JLCAJIlBBTC1JIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9ESywgCSJQQUwtREsiICAgIH0sCisJeyBWNEwyX1NURF9QQUxfRCwgCSJQQUwtRCIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfRDEsIAkiUEFMLUQxIiAgICB9LAorCXsgVjRMMl9TVERfUEFMX0ssIAkiUEFMLUsiICAgICB9LAorCXsgVjRMMl9TVERfUEFMX00sIAkiUEFMLU0iICAgICB9LAorCXsgVjRMMl9TVERfUEFMX04sIAkiUEFMLU4iICAgICB9LAorCXsgVjRMMl9TVERfUEFMX05jLCAJIlBBTC1OYyIgICAgfSwKKwl7IFY0TDJfU1REX1BBTF82MCwgCSJQQUwtNjAiICAgIH0sCisJeyBWNEwyX1NURF9TRUNBTSwgCSJTRUNBTSIgICAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9CLCAJIlNFQ0FNLUIiICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0csIAkiU0VDQU0tRyIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fSCwgCSJTRUNBTS1IIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9ESywgCSJTRUNBTS1ESyIgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9ELCAJIlNFQ0FNLUQiICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0ssIAkiU0VDQU0tSyIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fSzEsIAkiU0VDQU0tSzEiICB9LAorCXsgVjRMMl9TVERfU0VDQU1fTCwgCSJTRUNBTS1MIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9MQywgCSJTRUNBTS1MYyIgIH0sCisJeyAwLCAJCQkiVW5rbm93biIgICB9Cit9OworCiAvKiB2aWRlbzRsaW51eCBzdGFuZGFyZCBJRCBjb252ZXJzaW9uIHRvIHN0YW5kYXJkIG5hbWUKICAqLwotY2hhciAqdjRsMl9ub3JtX3RvX25hbWUodjRsMl9zdGRfaWQgaWQpCitjb25zdCBjaGFyICp2NGwyX25vcm1fdG9fbmFtZSh2NGwyX3N0ZF9pZCBpZCkKIHsKLQljaGFyICpuYW1lOwogCXUzMiBteWlkID0gaWQ7CisJaW50IGk7CiAKIAkvKiBIQUNLOiBwcGMzMiBhcmNoaXRlY3R1cmUgZG9lc24ndCBoYXZlIF9fdWNtcGRpMiBmdW5jdGlvbiB0byBoYW5kbGUKIAkgICA2NCBiaXQgY29tcGFyYXRpb25zLiBTbywgb24gdGhhdCBhcmNoaXRlY3R1cmUsIHdpdGggc29tZSBnY2MKQEAgLTY0LDExMCArMTA0LDE3IEBACiAJICovCiAJQlVHX09OKG15aWQgIT0gaWQpOwogCi0Jc3dpdGNoIChteWlkKSB7Ci0JY2FzZSBWNEwyX1NURF9QQUw6Ci0JCW5hbWUgPSAiUEFMIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfQkc6Ci0JCW5hbWUgPSAiUEFMLUJHIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfREs6Ci0JCW5hbWUgPSAiUEFMLURLIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfQjoKLQkJbmFtZSA9ICJQQUwtQiI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0IxOgotCQluYW1lID0gIlBBTC1CMSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0c6Ci0JCW5hbWUgPSAiUEFMLUciOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9IOgotCQluYW1lID0gIlBBTC1IIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfSToKLQkJbmFtZSA9ICJQQUwtSSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0Q6Ci0JCW5hbWUgPSAiUEFMLUQiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9EMToKLQkJbmFtZSA9ICJQQUwtRDEiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9LOgotCQluYW1lID0gIlBBTC1LIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfTToKLQkJbmFtZSA9ICJQQUwtTSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX046Ci0JCW5hbWUgPSAiUEFMLU4iOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9OYzoKLQkJbmFtZSA9ICJQQUwtTmMiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF82MDoKLQkJbmFtZSA9ICJQQUwtNjAiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX05UU0M6Ci0JCW5hbWUgPSAiTlRTQyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfTlRTQ19NOgotCQluYW1lID0gIk5UU0MtTSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfTlRTQ19NX0pQOgotCQluYW1lID0gIk5UU0MtTS1KUCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfTlRTQ180NDM6Ci0JCW5hbWUgPSAiTlRTQy00NDMiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX05UU0NfTV9LUjoKLQkJbmFtZSA9ICJOVFNDLU0tS1IiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNOgotCQluYW1lID0gIlNFQ0FNIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9ESzoKLQkJbmFtZSA9ICJTRUNBTS1ESyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fQjoKLQkJbmFtZSA9ICJTRUNBTS1CIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9EOgotCQluYW1lID0gIlNFQ0FNLUQiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0c6Ci0JCW5hbWUgPSAiU0VDQU0tRyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fSDoKLQkJbmFtZSA9ICJTRUNBTS1IIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9LOgotCQluYW1lID0gIlNFQ0FNLUsiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0sxOgotCQluYW1lID0gIlNFQ0FNLUsxIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9MOgotCQluYW1lID0gIlNFQ0FNLUwiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0xDOgotCQluYW1lID0gIlNFQ0FNLUxDIjsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJbmFtZSA9ICJVbmtub3duIjsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIG5hbWU7CisJZm9yIChpID0gMDsgc3RhbmRhcmRzW2ldLnN0ZDsgaSsrKQorCQlpZiAobXlpZCA9PSBzdGFuZGFyZHNbaV0uc3RkKQorCQkJYnJlYWs7CisJcmV0dXJuIHN0YW5kYXJkc1tpXS5kZXNjcjsKIH0KIEVYUE9SVF9TWU1CT0wodjRsMl9ub3JtX3RvX25hbWUpOwogCiAvKiBGaWxsIGluIHRoZSBmaWVsZHMgb2YgYSB2NGwyX3N0YW5kYXJkIHN0cnVjdHVyZSBhY2NvcmRpbmcgdG8gdGhlCiAgICAnaWQnIGFuZCAndHJhbnNtaXNzaW9uJyBwYXJhbWV0ZXJzLiAgUmV0dXJucyBuZWdhdGl2ZSBvbiBlcnJvci4gICovCiBpbnQgdjRsMl92aWRlb19zdGRfY29uc3RydWN0KHN0cnVjdCB2NGwyX3N0YW5kYXJkICp2cywKLQkJCSAgICAgaW50IGlkLCBjaGFyICpuYW1lKQorCQkJICAgICBpbnQgaWQsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJdTMyIGluZGV4ID0gdnMtPmluZGV4OwogCkBAIC00OTYsNiArNDQzLDcgQEAKIAogCWlmKG1pbm9yPj1WSURFT19OVU1fREVWSUNFUykKIAkJcmV0dXJuIC1FTk9ERVY7CisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZ2aWRlb2Rldl9sb2NrKTsKIAl2Zmw9dmlkZW9fZGV2aWNlW21pbm9yXTsKIAlpZih2Zmw9PU5VTEwpIHsKQEAgLTUwNSw2ICs0NTMsNyBAQAogCQl2Zmw9dmlkZW9fZGV2aWNlW21pbm9yXTsKIAkJaWYgKHZmbD09TlVMTCkgewogCQkJbXV0ZXhfdW5sb2NrKCZ2aWRlb2Rldl9sb2NrKTsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAtRU5PREVWOwogCQl9CiAJfQpAQCAtNTE4LDYgKzQ2Nyw3IEBACiAJfQogCWZvcHNfcHV0KG9sZF9mb3BzKTsKIAltdXRleF91bmxvY2soJnZpZGVvZGV2X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0xMjE4LDk1ICsxMTY4LDQwIEBACiAJY2FzZSBWSURJT0NfRU5VTVNURDoKIAl7CiAJCXN0cnVjdCB2NGwyX3N0YW5kYXJkICpwID0gYXJnOwotCQl2NGwyX3N0ZF9pZCBpZCA9IHZmZC0+dHZub3JtcyxjdXJyX2lkPTA7Ci0JCXVuc2lnbmVkIGludCBpbmRleCA9IHAtPmluZGV4LGk7CisJCXY0bDJfc3RkX2lkIGlkID0gdmZkLT50dm5vcm1zLCBjdXJyX2lkID0gMDsKKwkJdW5zaWduZWQgaW50IGluZGV4ID0gcC0+aW5kZXgsIGksIGogPSAwOworCQljb25zdCBjaGFyICpkZXNjciA9ICIiOwogCi0JCWlmIChpbmRleDwwKSB7Ci0JCQlyZXQ9LUVJTlZBTDsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJLyogUmV0dXJuIG5vcm0gYXJyYXkgb24gYSBjYW5vbmljYWwgd2F5ICovCi0JCWZvciAoaT0wO2k8PSBpbmRleCAmJiBpZDsgaSsrKSB7Ci0JCQlpZiAoIChpZCAmIFY0TDJfU1REX1BBTCkgPT0gVjRMMl9TVERfUEFMKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9CRykgPT0gVjRMMl9TVERfUEFMX0JHKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9CRzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9ESykgPT0gVjRMMl9TVERfUEFMX0RLKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9ESzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9CKSA9PSBWNEwyX1NURF9QQUxfQikgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfQjsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9CMSkgPT0gVjRMMl9TVERfUEFMX0IxKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9CMTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9HKSA9PSBWNEwyX1NURF9QQUxfRykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfRzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9IKSA9PSBWNEwyX1NURF9QQUxfSCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfSDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9JKSA9PSBWNEwyX1NURF9QQUxfSSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfSTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9EKSA9PSBWNEwyX1NURF9QQUxfRCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfRDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9EMSkgPT0gVjRMMl9TVERfUEFMX0QxKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9EMTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9LKSA9PSBWNEwyX1NURF9QQUxfSykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfSzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9NKSA9PSBWNEwyX1NURF9QQUxfTSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfTTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9OKSA9PSBWNEwyX1NURF9QQUxfTikgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfTjsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF9OYykgPT0gVjRMMl9TVERfUEFMX05jKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9OYzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1BBTF82MCkgPT0gVjRMMl9TVERfUEFMXzYwKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF82MDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX05UU0MpID09IFY0TDJfU1REX05UU0MpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfTlRTQzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX05UU0NfTSkgPT0gVjRMMl9TVERfTlRTQ19NKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX05UU0NfTTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX05UU0NfTV9KUCkgPT0gVjRMMl9TVERfTlRTQ19NX0pQKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX05UU0NfTV9KUDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX05UU0NfNDQzKSA9PSBWNEwyX1NURF9OVFNDXzQ0MykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9OVFNDXzQ0MzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX05UU0NfTV9LUikgPT0gVjRMMl9TVERfTlRTQ19NX0tSKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX05UU0NfTV9LUjsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNKSA9PSBWNEwyX1NURF9TRUNBTSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0RLKSA9PSBWNEwyX1NURF9TRUNBTV9ESykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9ESzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0IpID09IFY0TDJfU1REX1NFQ0FNX0IpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fQjsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0QpID09IFY0TDJfU1REX1NFQ0FNX0QpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fRDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0cpID09IFY0TDJfU1REX1NFQ0FNX0cpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fRzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0gpID09IFY0TDJfU1REX1NFQ0FNX0gpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fSDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0spID09IFY0TDJfU1REX1NFQ0FNX0spIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fSzsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0sxKSA9PSBWNEwyX1NURF9TRUNBTV9LMSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9LMTsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0wpID09IFY0TDJfU1REX1NFQ0FNX0wpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fTDsKLQkJCX0gZWxzZSBpZiAoIChpZCAmIFY0TDJfU1REX1NFQ0FNX0xDKSA9PSBWNEwyX1NURF9TRUNBTV9MQykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9MQzsKLQkJCX0gZWxzZSB7CisJCS8qIFJldHVybiBub3JtIGFycmF5IGluIGEgY2Fub25pY2FsIHdheSAqLworCQlmb3IgKGkgPSAwOyBpIDw9IGluZGV4ICYmIGlkOyBpKyspIHsKKwkJCS8qIGxhc3Qgc3RkIHZhbHVlIGluIHRoZSBzdGFuZGFyZHMgYXJyYXkgaXMgMCwgc28gdGhpcworCQkJICAgd2hpbGUgYWx3YXlzIGVuZHMgdGhlcmUgc2luY2UgKGlkICYgMCkgPT0gMC4gKi8KKwkJCXdoaWxlICgoaWQgJiBzdGFuZGFyZHNbal0uc3RkKSAhPSBzdGFuZGFyZHNbal0uc3RkKQorCQkJCWorKzsKKwkJCWN1cnJfaWQgPSBzdGFuZGFyZHNbal0uc3RkOworCQkJZGVzY3IgPSBzdGFuZGFyZHNbal0uZGVzY3I7CisJCQlqKys7CisJCQlpZiAoY3Vycl9pZCA9PSAwKQogCQkJCWJyZWFrOwotCQkJfQotCQkJaWQgJj0gfmN1cnJfaWQ7CisJCQlpZiAoY3Vycl9pZCAhPSBWNEwyX1NURF9QQUwgJiYKKwkJCSAgICBjdXJyX2lkICE9IFY0TDJfU1REX1NFQ0FNICYmCisJCQkgICAgY3Vycl9pZCAhPSBWNEwyX1NURF9OVFNDKQorCQkJCWlkICY9IH5jdXJyX2lkOwogCQl9Ci0JCWlmIChpPD1pbmRleCkKKwkJaWYgKGkgPD0gaW5kZXgpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQl2NGwyX3ZpZGVvX3N0ZF9jb25zdHJ1Y3QocCwgY3Vycl9pZCx2NGwyX25vcm1fdG9fbmFtZShjdXJyX2lkKSk7CisJCXY0bDJfdmlkZW9fc3RkX2NvbnN0cnVjdChwLCBjdXJyX2lkLCBkZXNjcik7CiAJCXAtPmluZGV4ID0gaW5kZXg7CiAKLQkJZGJnYXJnIChjbWQsICJpbmRleD0lZCwgaWQ9JUxkLCBuYW1lPSVzLCBmcHM9JWQvJWQsICIKKwkJZGJnYXJnKGNtZCwgImluZGV4PSVkLCBpZD0lTGQsIG5hbWU9JXMsIGZwcz0lZC8lZCwgIgogCQkJCSJmcmFtZWxpbmVzPSVkXG4iLCBwLT5pbmRleCwKIAkJCQkodW5zaWduZWQgbG9uZyBsb25nKXAtPmlkLCBwLT5uYW1lLAogCQkJCXAtPmZyYW1lcGVyaW9kLm51bWVyYXRvciwKIAkJCQlwLT5mcmFtZXBlcmlvZC5kZW5vbWluYXRvciwKIAkJCQlwLT5mcmFtZWxpbmVzKTsKIAotCQlyZXQ9MDsKKwkJcmV0ID0gMDsKIAkJYnJlYWs7CiAJfQogCWNhc2UgVklESU9DX0dfU1REOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby92aXZpLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpdmkuYwppbmRleCA4NDViZTE4Li41ZmY5YTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpdmkuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpdmkuYwpAQCAtMzI3LDEzICszMjcsMTQgQEAKIAlpbnQgaG1heCAgPSBidWYtPnZiLmhlaWdodDsKIAlpbnQgd21heCAgPSBidWYtPnZiLndpZHRoOwogCXN0cnVjdCB0aW1ldmFsIHRzOwotCWNoYXIgKnRtcGJ1ZiA9IGttYWxsb2Mod21heCAqIDIsIEdGUF9BVE9NSUMpOworCWNoYXIgKnRtcGJ1ZjsKIAl2b2lkICp2YnVmID0gdmlkZW9idWZfdG9fdm1hbGxvYygmYnVmLT52Yik7CiAKLQlpZiAoIXRtcGJ1ZikKKwlpZiAoIXZidWYpCiAJCXJldHVybjsKIAotCWlmICghdmJ1ZikKKwl0bXBidWYgPSBrbWFsbG9jKHdtYXggKiAyLCBHRlBfQVRPTUlDKTsKKwlpZiAoIXRtcGJ1ZikKIAkJcmV0dXJuOwogCiAJZm9yIChoID0gMDsgaCA8IGhtYXg7IGgrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYwppbmRleCBkYjNjODkyLi5kNDBkNmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYworKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYwpAQCAtMTY4Niw5ICsxNjg2LDE0IEBACiAJCWlvYy0+YnVzX3R5cGUgPSBTQVM7CiAJfQogCi0JaWYgKGlvYy0+YnVzX3R5cGUgPT0gU0FTICYmIG1wdF9tc2lfZW5hYmxlID09IC0xKQotCQlpb2MtPm1zaV9lbmFibGUgPSAxOwotCWVsc2UKKwlpZiAobXB0X21zaV9lbmFibGUgPT0gLTEpIHsKKwkJLyogRW5hYmxlIG9uIFNBUywgZGlzYWJsZSBvbiBGQyBhbmQgU1BJICovCisJCWlmIChpb2MtPmJ1c190eXBlID09IFNBUykKKwkJCWlvYy0+bXNpX2VuYWJsZSA9IDE7CisJCWVsc2UKKwkJCWlvYy0+bXNpX2VuYWJsZSA9IDA7CisJfSBlbHNlCisJCS8qIGZvbGxvdyBmbGFnOiAwIC0gZGlzYWJsZTsgMSAtIGVuYWJsZSAqLwogCQlpb2MtPm1zaV9lbmFibGUgPSBtcHRfbXNpX2VuYWJsZTsKIAogCWlmIChpb2MtPmVycmF0YV9mbGFnXzEwNjQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYwppbmRleCBlNjMwYjUwLi5jNTk0NjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmMKQEAgLTU0OCwxMSArNTQ4LDE1IEBACiBtcHRjdGxfZmFzeW5jKGludCBmZCwgc3RydWN0IGZpbGUgKmZpbGVwLCBpbnQgbW9kZSkKIHsKIAlNUFRfQURBUFRFUgkqaW9jOworCWludCByZXQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoaW9jLCAmaW9jX2xpc3QsIGxpc3QpCiAJCWlvYy0+YWVuX2V2ZW50X3JlYWRfZmxhZz0wOwogCi0JcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZpbGVwLCBtb2RlLCAmYXN5bmNfcXVldWUpOworCXJldCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGVwLCBtb2RlLCAmYXN5bmNfcXVldWUpOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzcGkuYwppbmRleCAyNWJjZmNmLi4xZWZmY2E0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMKQEAgLTEyNjYsMTMgKzEyNjYsMTggQEAKIHN0YXRpYyBpbnQKIG1wdHNwaV9pb2NfcmVzZXQoTVBUX0FEQVBURVIgKmlvYywgaW50IHJlc2V0X3BoYXNlKQogewotCXN0cnVjdCBfTVBUX1NDU0lfSE9TVCAqaGQgPSBzaG9zdF9wcml2KGlvYy0+c2gpOwogCWludCByYzsKIAogCXJjID0gbXB0c2NzaWhfaW9jX3Jlc2V0KGlvYywgcmVzZXRfcGhhc2UpOwogCi0JaWYgKHJlc2V0X3BoYXNlID09IE1QVF9JT0NfUE9TVF9SRVNFVCkKKwkvKiBvbmx5IHRyeSB0byBkbyBhIHJlbmVnb3RpYXRpb24gaWYgd2UncmUgcHJvcGVybHkgc2V0IHVwCisJICogaWYgd2UgZ2V0IGFuIGlvYyBmYXVsdCBvbiBicmluZ3VwLCBpb2MtPnNoIHdpbGwgYmUgTlVMTCAqLworCWlmIChyZXNldF9waGFzZSA9PSBNUFRfSU9DX1BPU1RfUkVTRVQgJiYKKwkgICAgaW9jLT5zaCkgeworCQlzdHJ1Y3QgX01QVF9TQ1NJX0hPU1QgKmhkID0gc2hvc3RfcHJpdihpb2MtPnNoKTsKKwogCQltcHRzcGlfZHZfcmVuZWdvdGlhdGUoaGQpOworCX0KIAogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9pMm8vaTJvX2NvbmZpZy5jIGIvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fY29uZmlnLmMKaW5kZXggYzBmYjc3ZC4uNDIzOGRlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fY29uZmlnLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fY29uZmlnLmMKQEAgLTEwNjEsNiArMTA2MSw3IEBACiAJaWYgKCF0bXApCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSAodm9pZCAqKShpMm9fY2ZnX2luZm9faWQrKyk7CiAJdG1wLT5mcCA9IGZpbGU7CiAJdG1wLT5mYXN5bmMgPSBOVUxMOwpAQCAtMTA3NCw2ICsxMDc1LDcgQEAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaTJvX2NvbmZpZ19sb2NrLCBmbGFncyk7CiAJb3Blbl9maWxlcyA9IHRtcDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpMm9fY29uZmlnX2xvY2ssIGZsYWdzKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwODIsMTUgKzEwODQsMTcgQEAKIHsKIAl1bG9uZyBpZCA9ICh1bG9uZykgZnAtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgaTJvX2NmZ19pbmZvICpwOworCWludCByZXQgPSAtRUJBREY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWZvciAocCA9IG9wZW5fZmlsZXM7IHA7IHAgPSBwLT5uZXh0KQogCQlpZiAocC0+cV9pZCA9PSBpZCkKIAkJCWJyZWFrOwogCi0JaWYgKCFwKQotCQlyZXR1cm4gLUVCQURGOwotCi0JcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZwLCBvbiwgJnAtPmZhc3luYyk7CisJaWYgKHApCisJCXJldCA9IGZhc3luY19oZWxwZXIoZmQsIGZwLCBvbiwgJnAtPmZhc3luYyk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY2ZnX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvYXRtZWxfcHdtLmMgYi9kcml2ZXJzL21pc2MvYXRtZWxfcHdtLmMKaW5kZXggMGQ1Y2UwMy4uNWI1YTE0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2F0bWVsX3B3bS5jCisrKyBiL2RyaXZlcnMvbWlzYy9hdG1lbF9wd20uYwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJcC0+YmFzZSA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CiAJaWYgKCFwLT5iYXNlKQogCQlnb3RvIGZhaWw7Ci0JcC0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAibWNrIik7CisJcC0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAicHdtX2NsayIpOwogCWlmIChJU19FUlIocC0+Y2xrKSkgewogCQlzdGF0dXMgPSBQVFJfRVJSKHAtPmNsayk7CiAJCXAtPmNsayA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGRwdWZ0cnMvaGRwdV9jcHVzdGF0ZS5jIGIvZHJpdmVycy9taXNjL2hkcHVmdHJzL2hkcHVfY3B1c3RhdGUuYwppbmRleCBmZjUxYWI2Li4xNzZmZTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvaGRwdWZ0cnMvaGRwdV9jcHVzdGF0ZS5jCisrKyBiL2RyaXZlcnMvbWlzYy9oZHB1ZnRycy9oZHB1X2NwdXN0YXRlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9oZHB1X2ZlYXR1cmVzLmg+CkBAIC0xNTEsNyArMTUyLDEzIEBACiAKIHN0YXRpYyBpbnQgY3B1c3RhdGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlyZXR1cm4gY3B1c3RhdGVfZ2V0X3JlZigoZmlsZS0+Zl9mbGFncyAmIE9fRVhDTCkpOworCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IGNwdXN0YXRlX2dldF9yZWYoKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKTsKKwl1bmxvY2tfa2VybmVsKCk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNwdXN0YXRlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvcGhhbnRvbS5jIGIvZHJpdmVycy9taXNjL3BoYW50b20uYwppbmRleCA3MWQxYzg0Li4xODYxNjI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvcGhhbnRvbS5jCisrKyBiL2RyaXZlcnMvbWlzYy9waGFudG9tLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvcGhhbnRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0yMTIsMTMgKzIxMywxNyBAQAogCXN0cnVjdCBwaGFudG9tX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsCiAJCQlzdHJ1Y3QgcGhhbnRvbV9kZXZpY2UsIGNkZXYpOwogCisJbG9ja19rZXJuZWwoKTsKIAlub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIAotCWlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+b3Blbl9sb2NrKSkKKwlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPm9wZW5fbG9jaykpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCX0KIAogCWlmIChkZXYtPm9wZW5lZCkgewogCQltdXRleF91bmxvY2soJmRldi0+b3Blbl9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTIyOSw3ICsyMzQsNyBAQAogCWF0b21pY19zZXQoJmRldi0+Y291bnRlciwgMCk7CiAJZGV2LT5vcGVuZWQrKzsKIAltdXRleF91bmxvY2soJmRldi0+b3Blbl9sb2NrKTsKLQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3NvbnktbGFwdG9wLmMgYi9kcml2ZXJzL21pc2Mvc29ueS1sYXB0b3AuYwppbmRleCAwMGU0OGUyLi42MDc3NWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2Mvc29ueS1sYXB0b3AuYworKysgYi9kcml2ZXJzL21pc2Mvc29ueS1sYXB0b3AuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KQEAgLTE5MjcsOCArMTkyOCwxMCBAQAogc3RhdGljIGludCBzb255cGlfbWlzY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCS8qIEZsdXNoIGlucHV0IHF1ZXVlIG9uIGZpcnN0IG9wZW4gKi8KKwlsb2NrX2tlcm5lbCgpOwogCWlmIChhdG9taWNfaW5jX3JldHVybigmc29ueXBpX2NvbXBhdC5vcGVuX2NvdW50KSA9PSAxKQogCQlrZmlmb19yZXNldChzb255cGlfY29tcGF0LmZpZm8pOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3RoaW5rcGFkX2FjcGkuYyBiL2RyaXZlcnMvbWlzYy90aGlua3BhZF9hY3BpLmMKaW5kZXggYTBjZTBiMi4uYjU5NjkyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL3RoaW5rcGFkX2FjcGkuYworKysgYi9kcml2ZXJzL21pc2MvdGhpbmtwYWRfYWNwaS5jCkBAIC0xMjkzLDcgKzEyOTMsNyBAQAogCQltdXRleF9sb2NrKCZ0cGFjcGlfaW5wdXRkZXZfc2VuZF9tdXRleCk7CiAKIAkJaW5wdXRfcmVwb3J0X3N3aXRjaCh0cGFjcGlfaW5wdXRkZXYsCi0JCQkJICAgIFNXX1JBRElPLCAhIXdsc3cpOworCQkJCSAgICBTV19SRktJTExfQUxMLCAhIXdsc3cpOwogCQlpbnB1dF9zeW5jKHRwYWNwaV9pbnB1dGRldik7CiAKIAkJbXV0ZXhfdW5sb2NrKCZ0cGFjcGlfaW5wdXRkZXZfc2VuZF9tdXRleCk7CkBAIC0xOTIxLDYgKzE5MjEsMjkgQEAKIAkmZGV2X2F0dHJfaG90a2V5X3dha2V1cF9ob3R1bnBsdWdfY29tcGxldGUuYXR0ciwKIH07CiAKK3N0YXRpYyB2b2lkIGhvdGtleV9leGl0KHZvaWQpCit7CisjaWZkZWYgQ09ORklHX1RISU5LUEFEX0FDUElfSE9US0VZX1BPTEwKKwlob3RrZXlfcG9sbF9zdG9wX3N5bmMoKTsKKyNlbmRpZgorCisJaWYgKGhvdGtleV9kZXZfYXR0cmlidXRlcykKKwkJZGVsZXRlX2F0dHJfc2V0KGhvdGtleV9kZXZfYXR0cmlidXRlcywgJnRwYWNwaV9wZGV2LT5kZXYua29iaik7CisKKwlrZnJlZShob3RrZXlfa2V5Y29kZV9tYXApOworCisJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleSkgeworCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfRVhJVCwKKwkJCSAgICJyZXN0b3Jpbmcgb3JpZ2luYWwgaG90IGtleSBtYXNrXG4iKTsKKwkJLyogbm8gc2hvcnQtY2lyY3VpdCBib29sZWFuIG9wZXJhdG9yIGJlbG93ISAqLworCQlpZiAoKGhvdGtleV9tYXNrX3NldChob3RrZXlfb3JpZ19tYXNrKSB8CisJCSAgICAgaG90a2V5X3N0YXR1c19zZXQoaG90a2V5X29yaWdfc3RhdHVzKSkgIT0gMCkKKwkJCXByaW50ayhUUEFDUElfRVJSCisJCQkgICAgICAgImZhaWxlZCB0byByZXN0b3JlIGhvdCBrZXkgbWFzayAiCisJCQkgICAgICAgInRvIEJJT1MgZGVmYXVsdHNcbiIpOworCX0KK30KKwogc3RhdGljIGludCBfX2luaXQgaG90a2V5X2luaXQoc3RydWN0IGlibV9pbml0X3N0cnVjdCAqaWlibSkKIHsKIAkvKiBSZXF1aXJlbWVudHMgZm9yIGNoYW5naW5nIHRoZSBkZWZhdWx0IGtleW1hcHM6CkBAIC0yMDYwLDIyNiArMjA4MywyMjAgQEAKIAl2ZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsICJob3RrZXlzIGFyZSAlc1xuIiwKIAkJc3RyX3N1cHBvcnRlZCh0cF9mZWF0dXJlcy5ob3RrZXkpKTsKIAotCWlmICh0cF9mZWF0dXJlcy5ob3RrZXkpIHsKLQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzID0gY3JlYXRlX2F0dHJfc2V0KDEzLCBOVUxMKTsKLQkJaWYgKCFob3RrZXlfZGV2X2F0dHJpYnV0ZXMpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQkJcmVzID0gYWRkX21hbnlfdG9fYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAotCQkJCWhvdGtleV9hdHRyaWJ1dGVzLAotCQkJCUFSUkFZX1NJWkUoaG90a2V5X2F0dHJpYnV0ZXMpKTsKKwlpZiAoIXRwX2ZlYXR1cmVzLmhvdGtleSkKKwkJcmV0dXJuIDE7CisKKwlob3RrZXlfZGV2X2F0dHJpYnV0ZXMgPSBjcmVhdGVfYXR0cl9zZXQoMTMsIE5VTEwpOworCWlmICghaG90a2V5X2Rldl9hdHRyaWJ1dGVzKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXMgPSBhZGRfbWFueV90b19hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCisJCQlob3RrZXlfYXR0cmlidXRlcywKKwkJCUFSUkFZX1NJWkUoaG90a2V5X2F0dHJpYnV0ZXMpKTsKKwlpZiAocmVzKQorCQlnb3RvIGVycl9leGl0OworCisJLyogbWFzayBub3Qgc3VwcG9ydGVkIG9uIDU3MCwgNjAwZS94LCA3NzBlLCA3NzB4LCBBMjFlLCBBMnhtL3AsCisJICAgQTMwLCBSMzAsIFIzMSwgVDIwLTIyLCBYMjAtMjEsIFgyMi0yNC4gIERldGVjdGVkIGJ5IGNoZWNraW5nCisJICAgZm9yIEhLRVkgaW50ZXJmYWNlIHZlcnNpb24gMHgxMDAgKi8KKwlpZiAoYWNwaV9ldmFsZihoa2V5X2hhbmRsZSwgJmhrZXl2LCAiTUhLViIsICJxZCIpKSB7CisJCWlmICgoaGtleXYgPj4gOCkgIT0gMSkgeworCQkJcHJpbnRrKFRQQUNQSV9FUlIgInVua25vd24gdmVyc2lvbiBvZiB0aGUgIgorCQkJICAgICAgICJIS0VZIGludGVyZmFjZTogMHgleFxuIiwgaGtleXYpOworCQkJcHJpbnRrKFRQQUNQSV9FUlIgInBsZWFzZSByZXBvcnQgdGhpcyB0byAlc1xuIiwKKwkJCSAgICAgICBUUEFDUElfTUFJTCk7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogTUhLViAweDEwMCBpbiBBMzEsIFI0MCwgUjQwZSwKKwkJCSAqIFQ0eCwgWDMxLCBhbmQgbGF0ZXIKKwkJCSAqLworCQkJdHBfZmVhdHVyZXMuaG90a2V5X21hc2sgPSAxOworCQl9CisJfQorCisJdmRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULCAiaG90a2V5IG1hc2tzIGFyZSAlc1xuIiwKKwkJc3RyX3N1cHBvcnRlZCh0cF9mZWF0dXJlcy5ob3RrZXlfbWFzaykpOworCisJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrKSB7CisJCWlmICghYWNwaV9ldmFsZihoa2V5X2hhbmRsZSwgJmhvdGtleV9hbGxfbWFzaywKKwkJCQkiTUhLQSIsICJxZCIpKSB7CisJCQlwcmludGsoVFBBQ1BJX0VSUgorCQkJICAgICAgICJtaXNzaW5nIE1IS0EgaGFuZGxlciwgIgorCQkJICAgICAgICJwbGVhc2UgcmVwb3J0IHRoaXMgdG8gJXNcbiIsCisJCQkgICAgICAgVFBBQ1BJX01BSUwpOworCQkJLyogRk4rRjEyLCBGTitGNCwgRk4rRjMgKi8KKwkJCWhvdGtleV9hbGxfbWFzayA9IDB4MDgwY1U7CisJCX0KKwl9CisKKwkvKiBob3RrZXlfc291cmNlX21hc2sgKm11c3QqIGJlIHplcm8gZm9yCisJICogdGhlIGZpcnN0IGhvdGtleV9tYXNrX2dldCAqLworCXJlcyA9IGhvdGtleV9zdGF0dXNfZ2V0KCZob3RrZXlfb3JpZ19zdGF0dXMpOworCWlmIChyZXMpCisJCWdvdG8gZXJyX2V4aXQ7CisKKwlpZiAodHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKKwkJcmVzID0gaG90a2V5X21hc2tfZ2V0KCk7CiAJCWlmIChyZXMpCi0JCQlyZXR1cm4gcmVzOworCQkJZ290byBlcnJfZXhpdDsKIAotCQkvKiBtYXNrIG5vdCBzdXBwb3J0ZWQgb24gNTcwLCA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwKLQkJICAgQTMwLCBSMzAsIFIzMSwgVDIwLTIyLCBYMjAtMjEsIFgyMi0yNC4gIERldGVjdGVkIGJ5IGNoZWNraW5nCi0JCSAgIGZvciBIS0VZIGludGVyZmFjZSB2ZXJzaW9uIDB4MTAwICovCi0JCWlmIChhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmaGtleXYsICJNSEtWIiwgInFkIikpIHsKLQkJCWlmICgoaGtleXYgPj4gOCkgIT0gMSkgewotCQkJCXByaW50ayhUUEFDUElfRVJSICJ1bmtub3duIHZlcnNpb24gb2YgdGhlICIKLQkJCQkgICAgICAgIkhLRVkgaW50ZXJmYWNlOiAweCV4XG4iLCBoa2V5dik7Ci0JCQkJcHJpbnRrKFRQQUNQSV9FUlIgInBsZWFzZSByZXBvcnQgdGhpcyB0byAlc1xuIiwKLQkJCQkgICAgICAgVFBBQ1BJX01BSUwpOwotCQkJfSBlbHNlIHsKLQkJCQkvKgotCQkJCSAqIE1IS1YgMHgxMDAgaW4gQTMxLCBSNDAsIFI0MGUsCi0JCQkJICogVDR4LCBYMzEsIGFuZCBsYXRlcgotCQkJCSAqLwotCQkJCXRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrID0gMTsKLQkJCX0KLQkJfQotCi0JCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImhvdGtleSBtYXNrcyBhcmUgJXNcbiIsCi0JCQlzdHJfc3VwcG9ydGVkKHRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrKSk7Ci0KLQkJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrKSB7Ci0JCQlpZiAoIWFjcGlfZXZhbGYoaGtleV9oYW5kbGUsICZob3RrZXlfYWxsX21hc2ssCi0JCQkJCSJNSEtBIiwgInFkIikpIHsKLQkJCQlwcmludGsoVFBBQ1BJX0VSUgotCQkJCSAgICAgICAibWlzc2luZyBNSEtBIGhhbmRsZXIsICIKLQkJCQkgICAgICAgInBsZWFzZSByZXBvcnQgdGhpcyB0byAlc1xuIiwKLQkJCQkgICAgICAgVFBBQ1BJX01BSUwpOwotCQkJCS8qIEZOK0YxMiwgRk4rRjQsIEZOK0YzICovCi0JCQkJaG90a2V5X2FsbF9tYXNrID0gMHgwODBjVTsKLQkJCX0KLQkJfQotCi0JCS8qIGhvdGtleV9zb3VyY2VfbWFzayAqbXVzdCogYmUgemVybyBmb3IKLQkJICogdGhlIGZpcnN0IGhvdGtleV9tYXNrX2dldCAqLwotCQlyZXMgPSBob3RrZXlfc3RhdHVzX2dldCgmaG90a2V5X29yaWdfc3RhdHVzKTsKLQkJaWYgKCFyZXMgJiYgdHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKLQkJCXJlcyA9IGhvdGtleV9tYXNrX2dldCgpOwotCQkJaG90a2V5X29yaWdfbWFzayA9IGhvdGtleV9tYXNrOwotCQkJaWYgKCFyZXMpIHsKLQkJCQlyZXMgPSBhZGRfbWFueV90b19hdHRyX3NldCgKLQkJCQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAotCQkJCQlob3RrZXlfbWFza19hdHRyaWJ1dGVzLAotCQkJCQlBUlJBWV9TSVpFKGhvdGtleV9tYXNrX2F0dHJpYnV0ZXMpKTsKLQkJCX0KLQkJfQorCQlob3RrZXlfb3JpZ19tYXNrID0gaG90a2V5X21hc2s7CisJCXJlcyA9IGFkZF9tYW55X3RvX2F0dHJfc2V0KAorCQkJCWhvdGtleV9kZXZfYXR0cmlidXRlcywKKwkJCQlob3RrZXlfbWFza19hdHRyaWJ1dGVzLAorCQkJCUFSUkFZX1NJWkUoaG90a2V5X21hc2tfYXR0cmlidXRlcykpOworCQlpZiAocmVzKQorCQkJZ290byBlcnJfZXhpdDsKKwl9CiAKICNpZmRlZiBDT05GSUdfVEhJTktQQURfQUNQSV9IT1RLRVlfUE9MTAotCQlpZiAodHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKLQkJCWhvdGtleV9zb3VyY2VfbWFzayA9IFRQQUNQSV9IS0VZX05WUkFNX0dPT0RfTUFTSwotCQkJCQkJJiB+aG90a2V5X2FsbF9tYXNrOwotCQl9IGVsc2UgewotCQkJaG90a2V5X3NvdXJjZV9tYXNrID0gVFBBQ1BJX0hLRVlfTlZSQU1fR09PRF9NQVNLOwotCQl9CisJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrKSB7CisJCWhvdGtleV9zb3VyY2VfbWFzayA9IFRQQUNQSV9IS0VZX05WUkFNX0dPT0RfTUFTSworCQkJCQkmIH5ob3RrZXlfYWxsX21hc2s7CisJfSBlbHNlIHsKKwkJaG90a2V5X3NvdXJjZV9tYXNrID0gVFBBQ1BJX0hLRVlfTlZSQU1fR09PRF9NQVNLOworCX0KIAotCQl2ZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsCi0JCQkgICAgImhvdGtleSBzb3VyY2UgbWFzayAweCUwOHgsIHBvbGxpbmcgZnJlcSAlZFxuIiwKLQkJCSAgICBob3RrZXlfc291cmNlX21hc2ssIGhvdGtleV9wb2xsX2ZyZXEpOworCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKKwkJICAgICJob3RrZXkgc291cmNlIG1hc2sgMHglMDh4LCBwb2xsaW5nIGZyZXEgJWRcbiIsCisJCSAgICBob3RrZXlfc291cmNlX21hc2ssIGhvdGtleV9wb2xsX2ZyZXEpOwogI2VuZGlmCiAKLQkJLyogTm90IGFsbCB0aGlua3BhZHMgaGF2ZSBhIGhhcmR3YXJlIHJhZGlvIHN3aXRjaCAqLwotCQlpZiAoIXJlcyAmJiBhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmc3RhdHVzLCAiV0xTVyIsICJxZCIpKSB7Ci0JCQl0cF9mZWF0dXJlcy5ob3RrZXlfd2xzdyA9IDE7Ci0JCQlwcmludGsoVFBBQ1BJX0lORk8KLQkJCQkicmFkaW8gc3dpdGNoIGZvdW5kOyByYWRpb3MgYXJlICVzXG4iLAotCQkJCWVuYWJsZWQoc3RhdHVzLCAwKSk7Ci0JCQlyZXMgPSBhZGRfdG9fYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAotCQkJCQkmZGV2X2F0dHJfaG90a2V5X3JhZGlvX3N3LmF0dHIpOwotCQl9CisJLyogTm90IGFsbCB0aGlua3BhZHMgaGF2ZSBhIGhhcmR3YXJlIHJhZGlvIHN3aXRjaCAqLworCWlmIChhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmc3RhdHVzLCAiV0xTVyIsICJxZCIpKSB7CisJCXRwX2ZlYXR1cmVzLmhvdGtleV93bHN3ID0gMTsKKwkJcHJpbnRrKFRQQUNQSV9JTkZPCisJCQkicmFkaW8gc3dpdGNoIGZvdW5kOyByYWRpb3MgYXJlICVzXG4iLAorCQkJZW5hYmxlZChzdGF0dXMsIDApKTsKKwkJcmVzID0gYWRkX3RvX2F0dHJfc2V0KGhvdGtleV9kZXZfYXR0cmlidXRlcywKKwkJCQkmZGV2X2F0dHJfaG90a2V5X3JhZGlvX3N3LmF0dHIpOworCX0KIAotCQkvKiBGb3IgWDQxdCwgWDYwdCwgWDYxdCBUYWJsZXRzLi4uICovCi0JCWlmICghcmVzICYmIGFjcGlfZXZhbGYoaGtleV9oYW5kbGUsICZzdGF0dXMsICJNSEtHIiwgInFkIikpIHsKLQkJCXRwX2ZlYXR1cmVzLmhvdGtleV90YWJsZXQgPSAxOwotCQkJcHJpbnRrKFRQQUNQSV9JTkZPCi0JCQkJInBvc3NpYmxlIHRhYmxldCBtb2RlIHN3aXRjaCBmb3VuZDsgIgotCQkJCSJUaGlua1BhZCBpbiAlcyBtb2RlXG4iLAotCQkJCShzdGF0dXMgJiBUUF9IT1RLRVlfVEFCTEVUX01BU0spPwotCQkJCQkidGFibGV0IiA6ICJsYXB0b3AiKTsKLQkJCXJlcyA9IGFkZF90b19hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCi0JCQkJCSZkZXZfYXR0cl9ob3RrZXlfdGFibGV0X21vZGUuYXR0cik7Ci0JCX0KKwkvKiBGb3IgWDQxdCwgWDYwdCwgWDYxdCBUYWJsZXRzLi4uICovCisJaWYgKCFyZXMgJiYgYWNwaV9ldmFsZihoa2V5X2hhbmRsZSwgJnN0YXR1cywgIk1IS0ciLCAicWQiKSkgeworCQl0cF9mZWF0dXJlcy5ob3RrZXlfdGFibGV0ID0gMTsKKwkJcHJpbnRrKFRQQUNQSV9JTkZPCisJCQkicG9zc2libGUgdGFibGV0IG1vZGUgc3dpdGNoIGZvdW5kOyAiCisJCQkiVGhpbmtQYWQgaW4gJXMgbW9kZVxuIiwKKwkJCShzdGF0dXMgJiBUUF9IT1RLRVlfVEFCTEVUX01BU0spPworCQkJCSJ0YWJsZXQiIDogImxhcHRvcCIpOworCQlyZXMgPSBhZGRfdG9fYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAorCQkJCSZkZXZfYXR0cl9ob3RrZXlfdGFibGV0X21vZGUuYXR0cik7CisJfQogCi0JCWlmICghcmVzKQotCQkJcmVzID0gcmVnaXN0ZXJfYXR0cl9zZXRfd2l0aF9zeXNmcygKLQkJCQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAotCQkJCQkmdHBhY3BpX3BkZXYtPmRldi5rb2JqKTsKLQkJaWYgKHJlcykKLQkJCXJldHVybiByZXM7CisJaWYgKCFyZXMpCisJCXJlcyA9IHJlZ2lzdGVyX2F0dHJfc2V0X3dpdGhfc3lzZnMoCisJCQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAorCQkJCSZ0cGFjcGlfcGRldi0+ZGV2LmtvYmopOworCWlmIChyZXMpCisJCWdvdG8gZXJyX2V4aXQ7CiAKLQkJLyogU2V0IHVwIGtleSBtYXAgKi8KKwkvKiBTZXQgdXAga2V5IG1hcCAqLwogCi0JCWhvdGtleV9rZXljb2RlX21hcCA9IGttYWxsb2MoVFBBQ1BJX0hPVEtFWV9NQVBfU0laRSwKLQkJCQkJCUdGUF9LRVJORUwpOwotCQlpZiAoIWhvdGtleV9rZXljb2RlX21hcCkgewotCQkJcHJpbnRrKFRQQUNQSV9FUlIKLQkJCQkiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Iga2V5IG1hcFxuIik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJfQorCWhvdGtleV9rZXljb2RlX21hcCA9IGttYWxsb2MoVFBBQ1BJX0hPVEtFWV9NQVBfU0laRSwKKwkJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKCFob3RrZXlfa2V5Y29kZV9tYXApIHsKKwkJcHJpbnRrKFRQQUNQSV9FUlIKKwkJCSJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBrZXkgbWFwXG4iKTsKKwkJcmVzID0gLUVOT01FTTsKKwkJZ290byBlcnJfZXhpdDsKKwl9CiAKLQkJaWYgKHRoaW5rcGFkX2lkLnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0xFTk9WTykgewotCQkJZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsCi0JCQkJICAgInVzaW5nIExlbm92byBkZWZhdWx0IGhvdCBrZXkgbWFwXG4iKTsKLQkJCW1lbWNweShob3RrZXlfa2V5Y29kZV9tYXAsICZsZW5vdm9fa2V5Y29kZV9tYXAsCi0JCQkJVFBBQ1BJX0hPVEtFWV9NQVBfU0laRSk7CisJaWYgKHRoaW5rcGFkX2lkLnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0xFTk9WTykgeworCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKKwkJCSAgICJ1c2luZyBMZW5vdm8gZGVmYXVsdCBob3Qga2V5IG1hcFxuIik7CisJCW1lbWNweShob3RrZXlfa2V5Y29kZV9tYXAsICZsZW5vdm9fa2V5Y29kZV9tYXAsCisJCQlUUEFDUElfSE9US0VZX01BUF9TSVpFKTsKKwl9IGVsc2UgeworCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKKwkJCSAgICJ1c2luZyBJQk0gZGVmYXVsdCBob3Qga2V5IG1hcFxuIik7CisJCW1lbWNweShob3RrZXlfa2V5Y29kZV9tYXAsICZpYm1fa2V5Y29kZV9tYXAsCisJCQlUUEFDUElfSE9US0VZX01BUF9TSVpFKTsKKwl9CisKKwlzZXRfYml0KEVWX0tFWSwgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7CisJc2V0X2JpdChFVl9NU0MsIHRwYWNwaV9pbnB1dGRldi0+ZXZiaXQpOworCXNldF9iaXQoTVNDX1NDQU4sIHRwYWNwaV9pbnB1dGRldi0+bXNjYml0KTsKKwl0cGFjcGlfaW5wdXRkZXYtPmtleWNvZGVzaXplID0gVFBBQ1BJX0hPVEtFWV9NQVBfVFlQRVNJWkU7CisJdHBhY3BpX2lucHV0ZGV2LT5rZXljb2RlbWF4ID0gVFBBQ1BJX0hPVEtFWV9NQVBfTEVOOworCXRwYWNwaV9pbnB1dGRldi0+a2V5Y29kZSA9IGhvdGtleV9rZXljb2RlX21hcDsKKwlmb3IgKGkgPSAwOyBpIDwgVFBBQ1BJX0hPVEtFWV9NQVBfTEVOOyBpKyspIHsKKwkJaWYgKGhvdGtleV9rZXljb2RlX21hcFtpXSAhPSBLRVlfUkVTRVJWRUQpIHsKKwkJCXNldF9iaXQoaG90a2V5X2tleWNvZGVfbWFwW2ldLAorCQkJCXRwYWNwaV9pbnB1dGRldi0+a2V5Yml0KTsKIAkJfSBlbHNlIHsKLQkJCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAotCQkJCSAgICJ1c2luZyBJQk0gZGVmYXVsdCBob3Qga2V5IG1hcFxuIik7Ci0JCQltZW1jcHkoaG90a2V5X2tleWNvZGVfbWFwLCAmaWJtX2tleWNvZGVfbWFwLAotCQkJCVRQQUNQSV9IT1RLRVlfTUFQX1NJWkUpOworCQkJaWYgKGkgPCBzaXplb2YoaG90a2V5X3Jlc2VydmVkX21hc2spKjgpCisJCQkJaG90a2V5X3Jlc2VydmVkX21hc2sgfD0gMSA8PCBpOwogCQl9Ci0KLQkJc2V0X2JpdChFVl9LRVksIHRwYWNwaV9pbnB1dGRldi0+ZXZiaXQpOwotCQlzZXRfYml0KEVWX01TQywgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7Ci0JCXNldF9iaXQoTVNDX1NDQU4sIHRwYWNwaV9pbnB1dGRldi0+bXNjYml0KTsKLQkJdHBhY3BpX2lucHV0ZGV2LT5rZXljb2Rlc2l6ZSA9IFRQQUNQSV9IT1RLRVlfTUFQX1RZUEVTSVpFOwotCQl0cGFjcGlfaW5wdXRkZXYtPmtleWNvZGVtYXggPSBUUEFDUElfSE9US0VZX01BUF9MRU47Ci0JCXRwYWNwaV9pbnB1dGRldi0+a2V5Y29kZSA9IGhvdGtleV9rZXljb2RlX21hcDsKLQkJZm9yIChpID0gMDsgaSA8IFRQQUNQSV9IT1RLRVlfTUFQX0xFTjsgaSsrKSB7Ci0JCQlpZiAoaG90a2V5X2tleWNvZGVfbWFwW2ldICE9IEtFWV9SRVNFUlZFRCkgewotCQkJCXNldF9iaXQoaG90a2V5X2tleWNvZGVfbWFwW2ldLAotCQkJCQl0cGFjcGlfaW5wdXRkZXYtPmtleWJpdCk7Ci0JCQl9IGVsc2UgewotCQkJCWlmIChpIDwgc2l6ZW9mKGhvdGtleV9yZXNlcnZlZF9tYXNrKSo4KQotCQkJCQlob3RrZXlfcmVzZXJ2ZWRfbWFzayB8PSAxIDw8IGk7Ci0JCQl9Ci0JCX0KLQotCQlpZiAodHBfZmVhdHVyZXMuaG90a2V5X3dsc3cpIHsKLQkJCXNldF9iaXQoRVZfU1csIHRwYWNwaV9pbnB1dGRldi0+ZXZiaXQpOwotCQkJc2V0X2JpdChTV19SQURJTywgdHBhY3BpX2lucHV0ZGV2LT5zd2JpdCk7Ci0JCX0KLQkJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV90YWJsZXQpIHsKLQkJCXNldF9iaXQoRVZfU1csIHRwYWNwaV9pbnB1dGRldi0+ZXZiaXQpOwotCQkJc2V0X2JpdChTV19UQUJMRVRfTU9ERSwgdHBhY3BpX2lucHV0ZGV2LT5zd2JpdCk7Ci0JCX0KLQotCQkvKiBEbyBub3QgaXNzdWUgZHVwbGljYXRlIGJyaWdodG5lc3MgY2hhbmdlIGV2ZW50cyB0bwotCQkgKiB1c2Vyc3BhY2UgKi8KLQkJaWYgKCF0cF9mZWF0dXJlcy5icmlnaHRfYWNwaW1vZGUpCi0JCQkvKiB1cGRhdGUgYnJpZ2h0X2FjcGltb2RlLi4uICovCi0JCQl0cGFjcGlfY2hlY2tfc3RkX2FjcGlfYnJpZ2h0bmVzc19zdXBwb3J0KCk7Ci0KLQkJaWYgKHRwX2ZlYXR1cmVzLmJyaWdodF9hY3BpbW9kZSkgewotCQkJcHJpbnRrKFRQQUNQSV9JTkZPCi0JCQkgICAgICAgIlRoaXMgVGhpbmtQYWQgaGFzIHN0YW5kYXJkIEFDUEkgYmFja2xpZ2h0ICIKLQkJCSAgICAgICAiYnJpZ2h0bmVzcyBjb250cm9sLCBzdXBwb3J0ZWQgYnkgdGhlIEFDUEkgIgotCQkJICAgICAgICJ2aWRlbyBkcml2ZXJcbiIpOwotCQkJcHJpbnRrKFRQQUNQSV9OT1RJQ0UKLQkJCSAgICAgICAiRGlzYWJsaW5nIHRoaW5rcGFkLWFjcGkgYnJpZ2h0bmVzcyBldmVudHMgIgotCQkJICAgICAgICJieSBkZWZhdWx0Li4uXG4iKTsKLQotCQkJLyogVGhlIGhvdGtleV9yZXNlcnZlZF9tYXNrIGNoYW5nZSBiZWxvdyBpcyBub3QKLQkJCSAqIG5lY2Vzc2FyeSB3aGlsZSB0aGUga2V5cyBhcmUgYXQgS0VZX1JFU0VSVkVEIGluIHRoZQotCQkJICogZGVmYXVsdCBtYXAsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCBsZWF2ZSBpdAotCQkJICogaGVyZSBhcyBhIG1hcmtlciBvZiB3aGF0IHdlIGhhdmUgdG8gZG8sIGVzcGVjaWFsbHkKLQkJCSAqIHdoZW4gd2UgZmluYWxseSBiZWNvbWUgYWJsZSB0byBzZXQgdGhpcyBhdCBydW50aW1lCi0JCQkgKiBvbiByZXNwb25zZSB0byBYLm9yZyByZXF1ZXN0cyAqLwotCQkJaG90a2V5X3Jlc2VydmVkX21hc2sgfD0KLQkJCQkoMSA8PCBUUF9BQ1BJX0hPVEtFWVNDQU5fRk5IT01FKQotCQkJCXwgKDEgPDwgVFBfQUNQSV9IT1RLRVlTQ0FOX0ZORU5EKTsKLQkJfQotCi0JCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAotCQkJCSJlbmFibGluZyBob3Qga2V5IGhhbmRsaW5nXG4iKTsKLQkJcmVzID0gaG90a2V5X3N0YXR1c19zZXQoMSk7Ci0JCWlmIChyZXMpCi0JCQlyZXR1cm4gcmVzOwotCQlyZXMgPSBob3RrZXlfbWFza19zZXQoKChob3RrZXlfYWxsX21hc2sgfCBob3RrZXlfc291cmNlX21hc2spCi0JCQkJCSYgfmhvdGtleV9yZXNlcnZlZF9tYXNrKQotCQkJCQl8IGhvdGtleV9vcmlnX21hc2spOwotCQlpZiAocmVzIDwgMCAmJiByZXMgIT0gLUVOWElPKQotCQkJcmV0dXJuIHJlczsKLQotCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKLQkJCQkibGVnYWN5IGhvdCBrZXkgcmVwb3J0aW5nIG92ZXIgcHJvY2ZzICVzXG4iLAotCQkJCShob3RrZXlfcmVwb3J0X21vZGUgPCAyKSA/Ci0JCQkJCSJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOwotCi0JCXRwYWNwaV9pbnB1dGRldi0+b3BlbiA9ICZob3RrZXlfaW5wdXRkZXZfb3BlbjsKLQkJdHBhY3BpX2lucHV0ZGV2LT5jbG9zZSA9ICZob3RrZXlfaW5wdXRkZXZfY2xvc2U7Ci0KLQkJaG90a2V5X3BvbGxfc2V0dXBfc2FmZSgxKTsKLQkJdHBhY3BpX2lucHV0X3NlbmRfcmFkaW9zdygpOwotCQl0cGFjcGlfaW5wdXRfc2VuZF90YWJsZXRzdygpOwogCX0KIAotCXJldHVybiAodHBfZmVhdHVyZXMuaG90a2V5KT8gMCA6IDE7Ci19Ci0KLXN0YXRpYyB2b2lkIGhvdGtleV9leGl0KHZvaWQpCi17Ci0jaWZkZWYgQ09ORklHX1RISU5LUEFEX0FDUElfSE9US0VZX1BPTEwKLQlob3RrZXlfcG9sbF9zdG9wX3N5bmMoKTsKLSNlbmRpZgotCi0JaWYgKHRwX2ZlYXR1cmVzLmhvdGtleSkgewotCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfRVhJVCwKLQkJCSAgICJyZXN0b3Jpbmcgb3JpZ2luYWwgaG90IGtleSBtYXNrXG4iKTsKLQkJLyogbm8gc2hvcnQtY2lyY3VpdCBib29sZWFuIG9wZXJhdG9yIGJlbG93ISAqLwotCQlpZiAoKGhvdGtleV9tYXNrX3NldChob3RrZXlfb3JpZ19tYXNrKSB8Ci0JCSAgICAgaG90a2V5X3N0YXR1c19zZXQoaG90a2V5X29yaWdfc3RhdHVzKSkgIT0gMCkKLQkJCXByaW50ayhUUEFDUElfRVJSCi0JCQkgICAgICAgImZhaWxlZCB0byByZXN0b3JlIGhvdCBrZXkgbWFzayAiCi0JCQkgICAgICAgInRvIEJJT1MgZGVmYXVsdHNcbiIpOworCWlmICh0cF9mZWF0dXJlcy5ob3RrZXlfd2xzdykgeworCQlzZXRfYml0KEVWX1NXLCB0cGFjcGlfaW5wdXRkZXYtPmV2Yml0KTsKKwkJc2V0X2JpdChTV19SRktJTExfQUxMLCB0cGFjcGlfaW5wdXRkZXYtPnN3Yml0KTsKKwl9CisJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV90YWJsZXQpIHsKKwkJc2V0X2JpdChFVl9TVywgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7CisJCXNldF9iaXQoU1dfVEFCTEVUX01PREUsIHRwYWNwaV9pbnB1dGRldi0+c3diaXQpOwogCX0KIAotCWlmIChob3RrZXlfZGV2X2F0dHJpYnV0ZXMpIHsKLQkJZGVsZXRlX2F0dHJfc2V0KGhvdGtleV9kZXZfYXR0cmlidXRlcywgJnRwYWNwaV9wZGV2LT5kZXYua29iaik7Ci0JCWhvdGtleV9kZXZfYXR0cmlidXRlcyA9IE5VTEw7CisJLyogRG8gbm90IGlzc3VlIGR1cGxpY2F0ZSBicmlnaHRuZXNzIGNoYW5nZSBldmVudHMgdG8KKwkgKiB1c2Vyc3BhY2UgKi8KKwlpZiAoIXRwX2ZlYXR1cmVzLmJyaWdodF9hY3BpbW9kZSkKKwkJLyogdXBkYXRlIGJyaWdodF9hY3BpbW9kZS4uLiAqLworCQl0cGFjcGlfY2hlY2tfc3RkX2FjcGlfYnJpZ2h0bmVzc19zdXBwb3J0KCk7CisKKwlpZiAodHBfZmVhdHVyZXMuYnJpZ2h0X2FjcGltb2RlKSB7CisJCXByaW50ayhUUEFDUElfSU5GTworCQkgICAgICAgIlRoaXMgVGhpbmtQYWQgaGFzIHN0YW5kYXJkIEFDUEkgYmFja2xpZ2h0ICIKKwkJICAgICAgICJicmlnaHRuZXNzIGNvbnRyb2wsIHN1cHBvcnRlZCBieSB0aGUgQUNQSSAiCisJCSAgICAgICAidmlkZW8gZHJpdmVyXG4iKTsKKwkJcHJpbnRrKFRQQUNQSV9OT1RJQ0UKKwkJICAgICAgICJEaXNhYmxpbmcgdGhpbmtwYWQtYWNwaSBicmlnaHRuZXNzIGV2ZW50cyAiCisJCSAgICAgICAiYnkgZGVmYXVsdC4uLlxuIik7CisKKwkJLyogVGhlIGhvdGtleV9yZXNlcnZlZF9tYXNrIGNoYW5nZSBiZWxvdyBpcyBub3QKKwkJICogbmVjZXNzYXJ5IHdoaWxlIHRoZSBrZXlzIGFyZSBhdCBLRVlfUkVTRVJWRUQgaW4gdGhlCisJCSAqIGRlZmF1bHQgbWFwLCBidXQgYmV0dGVyIHNhZmUgdGhhbiBzb3JyeSwgbGVhdmUgaXQKKwkJICogaGVyZSBhcyBhIG1hcmtlciBvZiB3aGF0IHdlIGhhdmUgdG8gZG8sIGVzcGVjaWFsbHkKKwkJICogd2hlbiB3ZSBmaW5hbGx5IGJlY29tZSBhYmxlIHRvIHNldCB0aGlzIGF0IHJ1bnRpbWUKKwkJICogb24gcmVzcG9uc2UgdG8gWC5vcmcgcmVxdWVzdHMgKi8KKwkJaG90a2V5X3Jlc2VydmVkX21hc2sgfD0KKwkJCSgxIDw8IFRQX0FDUElfSE9US0VZU0NBTl9GTkhPTUUpCisJCQl8ICgxIDw8IFRQX0FDUElfSE9US0VZU0NBTl9GTkVORCk7CiAJfQorCisJZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsICJlbmFibGluZyBob3Qga2V5IGhhbmRsaW5nXG4iKTsKKwlyZXMgPSBob3RrZXlfc3RhdHVzX3NldCgxKTsKKwlpZiAocmVzKSB7CisJCWhvdGtleV9leGl0KCk7CisJCXJldHVybiByZXM7CisJfQorCXJlcyA9IGhvdGtleV9tYXNrX3NldCgoKGhvdGtleV9hbGxfbWFzayB8IGhvdGtleV9zb3VyY2VfbWFzaykKKwkJCQkmIH5ob3RrZXlfcmVzZXJ2ZWRfbWFzaykKKwkJCQl8IGhvdGtleV9vcmlnX21hc2spOworCWlmIChyZXMgPCAwICYmIHJlcyAhPSAtRU5YSU8pIHsKKwkJaG90a2V5X2V4aXQoKTsKKwkJcmV0dXJuIHJlczsKKwl9CisKKwlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKKwkJCSJsZWdhY3kgaG90IGtleSByZXBvcnRpbmcgb3ZlciBwcm9jZnMgJXNcbiIsCisJCQkoaG90a2V5X3JlcG9ydF9tb2RlIDwgMikgPworCQkJCSJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOworCisJdHBhY3BpX2lucHV0ZGV2LT5vcGVuID0gJmhvdGtleV9pbnB1dGRldl9vcGVuOworCXRwYWNwaV9pbnB1dGRldi0+Y2xvc2UgPSAmaG90a2V5X2lucHV0ZGV2X2Nsb3NlOworCisJaG90a2V5X3BvbGxfc2V0dXBfc2FmZSgxKTsKKwl0cGFjcGlfaW5wdXRfc2VuZF9yYWRpb3N3KCk7CisJdHBhY3BpX2lucHV0X3NlbmRfdGFibGV0c3coKTsKKworCXJldHVybiAwOworCitlcnJfZXhpdDoKKwlkZWxldGVfYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLCAmdHBhY3BpX3BkZXYtPmRldi5rb2JqKTsKKwlob3RrZXlfZGV2X2F0dHJpYnV0ZXMgPSBOVUxMOworCisJcmV0dXJuIChyZXMgPCAwKT8gcmVzIDogMTsKIH0KIAogc3RhdGljIHZvaWQgaG90a2V5X25vdGlmeShzdHJ1Y3QgaWJtX3N0cnVjdCAqaWJtLCB1MzIgZXZlbnQpCkBAIC0zMzE5LDcgKzMzMzYsNyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBsaWdodF9pbml0KHN0cnVjdCBpYm1faW5pdF9zdHJ1Y3QgKmlpYm0pCiB7Ci0JaW50IHJjID0gMDsKKwlpbnQgcmM7CiAKIAl2ZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsICJpbml0aWFsaXppbmcgbGlnaHQgc3ViZHJpdmVyXG4iKTsKIApAQCAtMzMzNywyMCArMzM1NCwyMyBAQAogCQl0cF9mZWF0dXJlcy5saWdodF9zdGF0dXMgPQogCQkJYWNwaV9ldmFsZihlY19oYW5kbGUsIE5VTEwsICJLQkxUIiwgInF2Iik7CiAKLQl2ZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsICJsaWdodCBpcyAlc1xuIiwKLQkJc3RyX3N1cHBvcnRlZCh0cF9mZWF0dXJlcy5saWdodCkpOworCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImxpZ2h0IGlzICVzLCBsaWdodCBzdGF0dXMgaXMgJXNcbiIsCisJCXN0cl9zdXBwb3J0ZWQodHBfZmVhdHVyZXMubGlnaHQpLAorCQlzdHJfc3VwcG9ydGVkKHRwX2ZlYXR1cmVzLmxpZ2h0X3N0YXR1cykpOwogCi0JaWYgKHRwX2ZlYXR1cmVzLmxpZ2h0KSB7Ci0JCXJjID0gbGVkX2NsYXNzZGV2X3JlZ2lzdGVyKCZ0cGFjcGlfcGRldi0+ZGV2LAotCQkJCQkgICAmdHBhY3BpX2xlZF90aGlua2xpZ2h0LmxlZF9jbGFzc2Rldik7Ci0JfQorCWlmICghdHBfZmVhdHVyZXMubGlnaHQpCisJCXJldHVybiAxOworCisJcmMgPSBsZWRfY2xhc3NkZXZfcmVnaXN0ZXIoJnRwYWNwaV9wZGV2LT5kZXYsCisJCQkJICAgJnRwYWNwaV9sZWRfdGhpbmtsaWdodC5sZWRfY2xhc3NkZXYpOwogCiAJaWYgKHJjIDwgMCkgewogCQl0cF9mZWF0dXJlcy5saWdodCA9IDA7CiAJCXRwX2ZlYXR1cmVzLmxpZ2h0X3N0YXR1cyA9IDA7Ci0JfSBlbHNlIHsKLQkJcmMgPSAodHBfZmVhdHVyZXMubGlnaHQpPyAwIDogMTsKKwl9IGVsc2UgIHsKKwkJcmMgPSAwOwogCX0KKwogCXJldHVybiByYzsKIH0KIApAQCAtMzgzMyw3ICszODUzLDcgQEAKIAkidHBhY3BpOjpzdGFuZGJ5IiwKIH07CiAKLXN0YXRpYyBpbnQgbGVkX2dldF9zdGF0dXModW5zaWduZWQgaW50IGxlZCkKK3N0YXRpYyBpbnQgbGVkX2dldF9zdGF0dXMoY29uc3QgdW5zaWduZWQgaW50IGxlZCkKIHsKIAlpbnQgc3RhdHVzOwogCWVudW0gbGVkX3N0YXR1c190IGxlZF9zOwpAQCAtMzg1Nyw0MSArMzg3Nyw0MiBAQAogCS8qIG5vdCByZWFjaGVkICovCiB9CiAKLXN0YXRpYyBpbnQgbGVkX3NldF9zdGF0dXModW5zaWduZWQgaW50IGxlZCwgZW51bSBsZWRfc3RhdHVzX3QgbGVkc3RhdHVzKQorc3RhdGljIGludCBsZWRfc2V0X3N0YXR1cyhjb25zdCB1bnNpZ25lZCBpbnQgbGVkLAorCQkJICBjb25zdCBlbnVtIGxlZF9zdGF0dXNfdCBsZWRzdGF0dXMpCiB7CiAJLyogb2ZmLCBvbiwgYmxpbmsuIEluZGV4IGlzIGxlZF9zdGF0dXNfdCAqLwotCXN0YXRpYyBjb25zdCBpbnQgbGVkX3NsZWRfYXJnMVtdID0geyAwLCAxLCAzIH07Ci0Jc3RhdGljIGNvbnN0IGludCBsZWRfZXhwX2hsYmxbXSA9IHsgMCwgMCwgMSB9OwkvKiBsZWQjICogKi8KLQlzdGF0aWMgY29uc3QgaW50IGxlZF9leHBfaGxjbFtdID0geyAwLCAxLCAxIH07CS8qIGxlZCMgKiAqLwotCXN0YXRpYyBjb25zdCBpbnQgbGVkX2xlZF9hcmcxW10gPSB7IDAsIDB4ODAsIDB4YzAgfTsKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGxlZF9zbGVkX2FyZzFbXSA9IHsgMCwgMSwgMyB9OworCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbGVkX2xlZF9hcmcxW10gPSB7IDAsIDB4ODAsIDB4YzAgfTsKIAogCWludCByYyA9IDA7CiAKIAlzd2l0Y2ggKGxlZF9zdXBwb3J0ZWQpIHsKIAljYXNlIFRQQUNQSV9MRURfNTcwOgotCQkJLyogNTcwICovCi0JCQlsZWQgPSAxIDw8IGxlZDsKLQkJCWlmICghYWNwaV9ldmFsZihsZWRfaGFuZGxlLCBOVUxMLCBOVUxMLCAidmRkIiwKLQkJCQkJbGVkLCBsZWRfc2xlZF9hcmcxW2xlZHN0YXR1c10pKQotCQkJCXJjID0gLUVJTzsKLQkJCWJyZWFrOworCQkvKiA1NzAgKi8KKwkJaWYgKGxlZCA+IDcpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJaWYgKCFhY3BpX2V2YWxmKGxlZF9oYW5kbGUsIE5VTEwsIE5VTEwsICJ2ZGQiLAorCQkJCSgxIDw8IGxlZCksIGxlZF9zbGVkX2FyZzFbbGVkc3RhdHVzXSkpCisJCQlyYyA9IC1FSU87CisJCWJyZWFrOwogCWNhc2UgVFBBQ1BJX0xFRF9PTEQ6Ci0JCQkvKiA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwgVDIwLTIyLCBYMjAgKi8KLQkJCWxlZCA9IDEgPDwgbGVkOwotCQkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMTVMsIGxlZCk7Ci0JCQlpZiAocmMgPj0gMCkKLQkJCQlyYyA9IGVjX3dyaXRlKFRQQUNQSV9MRURfRUNfSExCTCwKLQkJCQkJICAgICAgbGVkICogbGVkX2V4cF9obGJsW2xlZHN0YXR1c10pOwotCQkJaWYgKHJjID49IDApCi0JCQkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMQ0wsCi0JCQkJCSAgICAgIGxlZCAqIGxlZF9leHBfaGxjbFtsZWRzdGF0dXNdKTsKLQkJCWJyZWFrOworCQkvKiA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwgVDIwLTIyLCBYMjAgKi8KKwkJaWYgKGxlZCA+IDcpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMTVMsICgxIDw8IGxlZCkpOworCQlpZiAocmMgPj0gMCkKKwkJCXJjID0gZWNfd3JpdGUoVFBBQ1BJX0xFRF9FQ19ITEJMLAorCQkJCSAgICAgIChsZWRzdGF0dXMgPT0gVFBBQ1BJX0xFRF9CTElOSykgPDwgbGVkKTsKKwkJaWYgKHJjID49IDApCisJCQlyYyA9IGVjX3dyaXRlKFRQQUNQSV9MRURfRUNfSExDTCwKKwkJCQkgICAgICAobGVkc3RhdHVzICE9IFRQQUNQSV9MRURfT0ZGKSA8PCBsZWQpOworCQlicmVhazsKIAljYXNlIFRQQUNQSV9MRURfTkVXOgotCQkJLyogYWxsIG90aGVycyAqLwotCQkJaWYgKCFhY3BpX2V2YWxmKGxlZF9oYW5kbGUsIE5VTEwsIE5VTEwsICJ2ZGQiLAotCQkJCQlsZWQsIGxlZF9sZWRfYXJnMVtsZWRzdGF0dXNdKSkKLQkJCQlyYyA9IC1FSU87Ci0JCQlicmVhazsKKwkJLyogYWxsIG90aGVycyAqLworCQlpZiAoIWFjcGlfZXZhbGYobGVkX2hhbmRsZSwgTlVMTCwgTlVMTCwgInZkZCIsCisJCQkJbGVkLCBsZWRfbGVkX2FyZzFbbGVkc3RhdHVzXSkpCisJCQlyYyA9IC1FSU87CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJjID0gLUVOWElPOwogCX0KQEAgLTM5NzgsNyArMzk5OSw2IEBACiAJfQogCiAJa2ZyZWUodHBhY3BpX2xlZHMpOwotCXRwYWNwaV9sZWRzID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBfX2luaXQgbGVkX2luaXQoc3RydWN0IGlibV9pbml0X3N0cnVjdCAqaWlibSkKQEAgLTQ4MDIsNyArNDgyMiw2IEBACiAJCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfRVhJVCwKIAkJCSAgICAiY2FsbGluZyBiYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoKVxuIik7CiAJCWJhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihpYm1fYmFja2xpZ2h0X2RldmljZSk7Ci0JCWlibV9iYWNrbGlnaHRfZGV2aWNlID0gTlVMTDsKIAl9CiB9CiAKQEAgLTU3NjQsMTEgKzU3ODMsMTYgQEAKIAkgICAgZmFuX2NvbnRyb2xfYWNjZXNzX21vZGUgIT0gVFBBQ1BJX0ZBTl9XUl9OT05FKSB7CiAJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZ0cGFjcGlfc2Vuc29yc19wZGV2LT5kZXYua29iaiwKIAkJCQkJICZmYW5fYXR0cl9ncm91cCk7Ci0JCWlmICghKHJjIDwgMCkpCi0JCQlyYyA9IGRyaXZlcl9jcmVhdGVfZmlsZSgmdHBhY3BpX2h3bW9uX3Bkcml2ZXIuZHJpdmVyLAotCQkJCQkmZHJpdmVyX2F0dHJfZmFuX3dhdGNoZG9nKTsKIAkJaWYgKHJjIDwgMCkKIAkJCXJldHVybiByYzsKKworCQlyYyA9IGRyaXZlcl9jcmVhdGVfZmlsZSgmdHBhY3BpX2h3bW9uX3Bkcml2ZXIuZHJpdmVyLAorCQkJCQkmZHJpdmVyX2F0dHJfZmFuX3dhdGNoZG9nKTsKKwkJaWYgKHJjIDwgMCkgeworCQkJc3lzZnNfcmVtb3ZlX2dyb3VwKCZ0cGFjcGlfc2Vuc29yc19wZGV2LT5kZXYua29iaiwKKwkJCQkJJmZhbl9hdHRyX2dyb3VwKTsKKwkJCXJldHVybiByYzsKKwkJfQogCQlyZXR1cm4gMDsKIAl9IGVsc2UKIAkJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2lteG1tYy5jIGIvZHJpdmVycy9tbWMvaG9zdC9pbXhtbWMuYwppbmRleCA5NWYzM2U4Li5lZWQyMTFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9ob3N0L2lteG1tYy5jCisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvaW14bW1jLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbWMvaG9zdC5oPgogI2luY2x1ZGUgPGxpbnV4L21tYy9jYXJkLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUgPGFzbS9kbWEuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTkyLDYgKzkzLDggQEAKIAl1bnNpZ25lZCBjaGFyCQlhY3R1YWxfYnVzX3dpZHRoOwogCiAJaW50CQkJcHJldl9jbWRfY29kZTsKKworCXN0cnVjdCBjbGsJCSpjbGs7CiB9OwogCiAjZGVmaW5lIElNWE1DSV9QRU5EX0lSUV9iCTAKQEAgLTg0MSw3ICs4NDQsNyBAQAogCQkvKiBUaGUgcHJlc2NhbGVyIGlzIDUgZm9yIFBFUkNMSzIgZXF1YWwgdG8gOTZNSHoKIAkJICogdGhlbiA5Nk1IeiAvIDUgPSAxOS4yIE1IegogCQkgKi8KLQkJY2xrPWlteF9nZXRfcGVyY2xrMigpOworCQljbGsgPSBjbGtfZ2V0X3JhdGUoaG9zdC0+Y2xrKTsKIAkJcHJlc2NhbGVyPShjbGsrKENMS19SQVRFKjcpLzgpL0NMS19SQVRFOwogCQlzd2l0Y2gocHJlc2NhbGVyKSB7CiAJCWNhc2UgMDoKQEAgLTk5NCw2ICs5OTcsMTMgQEAKIAlob3N0LT5yZXMgPSByOwogCWhvc3QtPmlycSA9IGlycTsKIAorCWhvc3QtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInBlcmNsazIiKTsKKwlpZiAoSVNfRVJSKGhvc3QtPmNsaykpIHsKKwkJcmV0ID0gUFRSX0VSUihob3N0LT5jbGspOworCQlnb3RvIG91dDsKKwl9CisJY2xrX2VuYWJsZShob3N0LT5jbGspOworCiAJaW14X2dwaW9fbW9kZShQQjhfUEZfU0RfREFUMCk7CiAJaW14X2dwaW9fbW9kZShQQjlfUEZfU0RfREFUMSk7CiAJaW14X2dwaW9fbW9kZShQQjEwX1BGX1NEX0RBVDIpOwpAQCAtMTAxNyw4ICsxMDI3LDggQEAKIAlob3N0LT5pbWFzayA9IElNWE1DSV9JTlRfTUFTS19ERUZBVUxUOwogCU1NQ19JTlRfTUFTSyA9IGhvc3QtPmltYXNrOwogCi0KLQlpZihpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbygmaG9zdC0+ZG1hLCBEUklWRVJfTkFNRSwgRE1BX1BSSU9fTE9XKTwwKXsKKwlob3N0LT5kbWEgPSBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyhEUklWRVJfTkFNRSwgRE1BX1BSSU9fTE9XKTsKKwlpZihob3N0LT5kbWEgPCAwKSB7CiAJCWRldl9lcnIobW1jX2Rldihob3N0LT5tbWMpLCAiaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8gZmFpbGVkXG4iKTsKIAkJcmV0ID0gLUVCVVNZOwogCQlnb3RvIG91dDsKQEAgLTEwNTMsNiArMTA2MywxMCBAQAogCQkJaW14X2RtYV9mcmVlKGhvc3QtPmRtYSk7CiAJCQlob3N0LT5kbWFfYWxsb2NhdGVkPTA7CiAJCX0KKwkJaWYgKGhvc3QtPmNsaykgeworCQkJY2xrX2Rpc2FibGUoaG9zdC0+Y2xrKTsKKwkJCWNsa19wdXQoaG9zdC0+Y2xrKTsKKwkJfQogCX0KIAlpZiAobW1jKQogCQltbWNfZnJlZV9ob3N0KG1tYyk7CkBAIC0xMDgyLDYgKzEwOTYsOSBAQAogCiAJCXRhc2tsZXRfa2lsbCgmaG9zdC0+dGFza2xldCk7CiAKKwkJY2xrX2Rpc2FibGUoaG9zdC0+Y2xrKTsKKwkJY2xrX3B1dChob3N0LT5jbGspOworCiAJCXJlbGVhc2VfcmVzb3VyY2UoaG9zdC0+cmVzKTsKIAogCQltbWNfZnJlZV9ob3N0KG1tYyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3B4YW1jaS5jIGIvZHJpdmVycy9tbWMvaG9zdC9weGFtY2kuYwppbmRleCA2NTIxMGZjLi5kODk0NzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9ob3N0L3B4YW1jaS5jCisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMKQEAgLTExNCw2ICsxMTQsNyBAQAogCXVuc2lnbmVkIGludCBub2IgPSBkYXRhLT5ibG9ja3M7CiAJdW5zaWduZWQgbG9uZyBsb25nIGNsa3M7CiAJdW5zaWduZWQgaW50IHRpbWVvdXQ7CisJYm9vbCBkYWxnbiA9IDA7CiAJdTMyIGRjbWQ7CiAJaW50IGk7CiAKQEAgLTE1Miw2ICsxNTMsOSBAQAogCQlob3N0LT5zZ19jcHVbaV0uZGNtZCA9IGRjbWQgfCBsZW5ndGg7CiAJCWlmIChsZW5ndGggJiAzMSAmJiAhKGRhdGEtPmZsYWdzICYgTU1DX0RBVEFfUkVBRCkpCiAJCQlob3N0LT5zZ19jcHVbaV0uZGNtZCB8PSBEQ01EX0VORElSUUVOOworCQkvKiBOb3QgYWxpZ25lZCB0byA4LWJ5dGUgYm91bmRhcnk/ICovCisJCWlmIChzZ19kbWFfYWRkcmVzcygmZGF0YS0+c2dbaV0pICYgMHg3KQorCQkJZGFsZ24gPSAxOwogCQlpZiAoZGF0YS0+ZmxhZ3MgJiBNTUNfREFUQV9SRUFEKSB7CiAJCQlob3N0LT5zZ19jcHVbaV0uZHNhZHIgPSBob3N0LT5yZXMtPnN0YXJ0ICsgTU1DX1JYRklGTzsKIAkJCWhvc3QtPnNnX2NwdVtpXS5kdGFkciA9IHNnX2RtYV9hZGRyZXNzKCZkYXRhLT5zZ1tpXSk7CkBAIC0xNjUsNiArMTY5LDE1IEBACiAJaG9zdC0+c2dfY3B1W2hvc3QtPmRtYV9sZW4gLSAxXS5kZGFkciA9IEREQURSX1NUT1A7CiAJd21iKCk7CiAKKwkvKgorCSAqIFRoZSBQWEEyN3ggRE1BIGNvbnRyb2xsZXIgZW5jb3VudGVycyBvdmVyaGVhZCB3aGVuIHdvcmtpbmcgd2l0aAorCSAqIHVuYWxpZ25lZCAodG8gOC1ieXRlIGJvdW5kYXJpZXMpIGRhdGEsIHNvIHN3aXRjaCBvbiBieXRlIGFsaWdubWVudAorCSAqIG1vZGUgb25seSBpZiB3ZSBoYXZlIHVuYWxpZ25lZCBkYXRhLgorCSAqLworCWlmIChkYWxnbikKKwkJREFMR04gfD0gKDEgPDwgaG9zdC0+ZG1hKTsKKwllbHNlCisJCURBTEdOICY9ICgxIDw8IGhvc3QtPmRtYSk7CiAJRERBRFIoaG9zdC0+ZG1hKSA9IGhvc3QtPnNnX2RtYTsKIAlEQ1NSKGhvc3QtPmRtYSkgPSBEQ1NSX1JVTjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYwppbmRleCAwN2MyMDQ4Li5iNDEzYWE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jCkBAIC01NSw2ICs1NSwxMCBAQAogI2RlZmluZSBTREhDSV9RVUlSS18zMkJJVF9ETUFfU0laRQkJCSgxPDw3KQogLyogQ29udHJvbGxlciBuZWVkcyB0byBiZSByZXNldCBhZnRlciBlYWNoIHJlcXVlc3QgdG8gc3RheSBzdGFibGUgKi8KICNkZWZpbmUgU0RIQ0lfUVVJUktfUkVTRVRfQUZURVJfUkVRVUVTVAkJCSgxPDw4KQorLyogQ29udHJvbGxlciBuZWVkcyB2b2x0YWdlIGFuZCBwb3dlciB3cml0ZXMgdG8gaGFwcGVuIHNlcGFyYXRlbHkgKi8KKyNkZWZpbmUgU0RIQ0lfUVVJUktfTk9fU0lNVUxUX1ZERF9BTkRfUE9XRVIJCSgxPDw5KQorLyogQ29udHJvbGxlciBoYXMgYW4gb2ZmLWJ5LW9uZSBpc3N1ZSB3aXRoIHRpbWVvdXQgdmFsdWUgKi8KKyNkZWZpbmUgU0RIQ0lfUVVJUktfSU5DUl9USU1FT1VUX0NPTlRST0wJCSgxPDwxMCkKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaV9pZHNbXSBfX2RldmluaXRkYXRhID0gewogCXsKQEAgLTExNSw3ICsxMTksOCBAQAogCQkuc3VidmVuZG9yICAgICAgPSBQQ0lfQU5ZX0lELAogCQkuc3ViZGV2aWNlICAgICAgPSBQQ0lfQU5ZX0lELAogCQkuZHJpdmVyX2RhdGEgICAgPSBTREhDSV9RVUlSS19TSU5HTEVfUE9XRVJfV1JJVEUgfAotCQkJCSAgU0RIQ0lfUVVJUktfUkVTRVRfQ01EX0RBVEFfT05fSU9TLAorCQkJCSAgU0RIQ0lfUVVJUktfUkVTRVRfQ01EX0RBVEFfT05fSU9TIHwKKwkJCQkgIFNESENJX1FVSVJLX0JST0tFTl9ETUEsCiAJfSwKIAogCXsKQEAgLTEyNCw3ICsxMjksMTcgQEAKIAkJLnN1YnZlbmRvciAgICAgID0gUENJX0FOWV9JRCwKIAkJLnN1YmRldmljZSAgICAgID0gUENJX0FOWV9JRCwKIAkJLmRyaXZlcl9kYXRhICAgID0gU0RIQ0lfUVVJUktfU0lOR0xFX1BPV0VSX1dSSVRFIHwKLQkJCQkgIFNESENJX1FVSVJLX1JFU0VUX0NNRF9EQVRBX09OX0lPUywKKwkJCQkgIFNESENJX1FVSVJLX1JFU0VUX0NNRF9EQVRBX09OX0lPUyB8CisJCQkJICBTREhDSV9RVUlSS19CUk9LRU5fRE1BLAorCX0sCisKKwl7CisJCS52ZW5kb3IgICAgICAgICA9IFBDSV9WRU5ET1JfSURfTUFSVkVMTCwKKwkJLmRldmljZSAgICAgICAgID0gUENJX0RFVklDRV9JRF9NQVJWRUxMX0NBRkVfU0QsCisJCS5zdWJ2ZW5kb3IgICAgICA9IFBDSV9BTllfSUQsCisJCS5zdWJkZXZpY2UgICAgICA9IFBDSV9BTllfSUQsCisJCS5kcml2ZXJfZGF0YSAgICA9IFNESENJX1FVSVJLX05PX1NJTVVMVF9WRERfQU5EX1BPV0VSIHwKKwkJCQkgIFNESENJX1FVSVJLX0lOQ1JfVElNRU9VVF9DT05UUk9MLAogCX0sCiAKIAl7CkBAIC00NjksNiArNDg0LDEzIEBACiAJCQlicmVhazsKIAl9CiAKKwkvKgorCSAqIENvbXBlbnNhdGUgZm9yIGFuIG9mZi1ieS1vbmUgZXJyb3IgaW4gdGhlIENhRmUgaGFyZHdhcmU7IG90aGVyd2lzZSwKKwkgKiBhIHRvby1zbWFsbCBjb3VudCBnaXZlcyB1cyBpbnRlcnJ1cHQgdGltZW91dHMuCisJICovCisJaWYgKChob3N0LT5jaGlwLT5xdWlya3MgJiBTREhDSV9RVUlSS19JTkNSX1RJTUVPVVRfQ09OVFJPTCkpCisJCWNvdW50Kys7CisKIAlpZiAoY291bnQgPj0gMHhGKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBUb28gbGFyZ2UgdGltZW91dCByZXF1ZXN0ZWQhXG4iLAogCQkJbW1jX2hvc3RuYW1lKGhvc3QtPm1tYykpOwpAQCAtNzc0LDYgKzc5NiwxNCBAQAogCQlCVUcoKTsKIAl9CiAKKwkvKgorCSAqIEF0IGxlYXN0IHRoZSBDYUZlIGNoaXAgZ2V0cyBjb25mdXNlZCBpZiB3ZSBzZXQgdGhlIHZvbHRhZ2UKKwkgKiBhbmQgc2V0IHR1cm4gb24gcG93ZXIgYXQgdGhlIHNhbWUgdGltZSwgc28gc2V0IHRoZSB2b2x0YWdlIGZpcnN0LgorCSAqLworCWlmICgoaG9zdC0+Y2hpcC0+cXVpcmtzICYgU0RIQ0lfUVVJUktfTk9fU0lNVUxUX1ZERF9BTkRfUE9XRVIpKQorCQl3cml0ZWIocHdyICYgflNESENJX1BPV0VSX09OLAorCQkJCWhvc3QtPmlvYWRkciArIFNESENJX1BPV0VSX0NPTlRST0wpOworCiAJd3JpdGViKHB3ciwgaG9zdC0+aW9hZGRyICsgU0RIQ0lfUE9XRVJfQ09OVFJPTCk7CiAKIG91dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvd2JzZC5jIGIvZHJpdmVycy9tbWMvaG9zdC93YnNkLmMKaW5kZXggYmU2MjRhMC4uYzMwM2U3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvaG9zdC93YnNkLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC93YnNkLmMKQEAgLTE0NTcsMTcgKzE0NTcsNyBAQAogCWludCByZXQ7CiAKIAkvKgotCSAqIEFsbG9jYXRlIGludGVycnVwdC4KLQkgKi8KLQotCXJldCA9IHJlcXVlc3RfaXJxKGlycSwgd2JzZF9pcnEsIElSUUZfU0hBUkVELCBEUklWRVJfTkFNRSwgaG9zdCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWhvc3QtPmlycSA9IGlycTsKLQotCS8qCi0JICogU2V0IHVwIHRhc2tsZXRzLgorCSAqIFNldCB1cCB0YXNrbGV0cy4gTXVzdCBiZSBkb25lIGJlZm9yZSByZXF1ZXN0aW5nIGludGVycnVwdC4KIAkgKi8KIAl0YXNrbGV0X2luaXQoJmhvc3QtPmNhcmRfdGFza2xldCwgd2JzZF90YXNrbGV0X2NhcmQsCiAJCQkodW5zaWduZWQgbG9uZylob3N0KTsKQEAgLTE0ODAsNiArMTQ3MCwxNSBAQAogCXRhc2tsZXRfaW5pdCgmaG9zdC0+ZmluaXNoX3Rhc2tsZXQsIHdic2RfdGFza2xldF9maW5pc2gsCiAJCQkodW5zaWduZWQgbG9uZylob3N0KTsKIAorCS8qCisJICogQWxsb2NhdGUgaW50ZXJydXB0LgorCSAqLworCXJldCA9IHJlcXVlc3RfaXJxKGlycSwgd2JzZF9pcnEsIElSUUZfU0hBUkVELCBEUklWRVJfTkFNRSwgaG9zdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWhvc3QtPmlycSA9IGlycTsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9mdGwuYyBiL2RyaXZlcnMvbXRkL2Z0bC5jCmluZGV4IDRhNzliMTguLjVjMjk4NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL2Z0bC5jCisrKyBiL2RyaXZlcnMvbXRkL2Z0bC5jCkBAIC0xMzAsMTAgKzEzMCw2IEBACiAgICAgdV9pbnQxNl90CQlEYXRhVW5pdHM7CiAgICAgdV9pbnQzMl90CQlCbG9ja3NQZXJVbml0OwogICAgIGVyYXNlX3VuaXRfaGVhZGVyX3QJaGVhZGVyOwotI2lmIDAKLSAgICByZWdpb25faW5mb190CXJlZ2lvbjsKLSAgICBtZW1vcnlfaGFuZGxlX3QJaGFuZGxlOwotI2VuZGlmCiB9IHBhcnRpdGlvbl90OwogCiAvKiBQYXJ0aXRpb24gc3RhdGUgZmxhZ3MgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL21hcHMvb21hcF9ub3IuYyBiL2RyaXZlcnMvbXRkL21hcHMvb21hcF9ub3IuYwppbmRleCBjMTJkODA1Li42OGVlYzZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tYXBzL29tYXBfbm9yLmMKKysrIGIvZHJpdmVycy9tdGQvbWFwcy9vbWFwX25vci5jCkBAIC02MCwxMyArNjAsMjIgQEAKIHN0YXRpYyB2b2lkIG9tYXBfc2V0X3ZwcChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwgaW50IGVuYWJsZSkKIHsKIAlzdGF0aWMgaW50CWNvdW50OworCXUzMiBsOwogCi0JaWYgKGVuYWJsZSkgewotCQlpZiAoY291bnQrKyA9PSAwKQotCQkJT01BUF9FTUlGU19DT05GSUdfUkVHIHw9IE9NQVBfRU1JRlNfQ09ORklHX1dQOwotCX0gZWxzZSB7Ci0JCWlmIChjb3VudCAmJiAoLS1jb3VudCA9PSAwKSkKLQkJCU9NQVBfRU1JRlNfQ09ORklHX1JFRyAmPSB+T01BUF9FTUlGU19DT05GSUdfV1A7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CisJCWlmIChlbmFibGUpIHsKKwkJCWlmIChjb3VudCsrID09IDApIHsKKwkJCQlsID0gb21hcF9yZWFkbChFTUlGU19DT05GSUcpOworCQkJCWwgfD0gT01BUF9FTUlGU19DT05GSUdfV1A7CisJCQkJb21hcF93cml0ZWwobCwgRU1JRlNfQ09ORklHKTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmIChjb3VudCAmJiAoLS1jb3VudCA9PSAwKSkgeworCQkJCWwgPSBvbWFwX3JlYWRsKEVNSUZTX0NPTkZJRyk7CisJCQkJbCAmPSB+T01BUF9FTUlGU19DT05GSUdfV1A7CisJCQkJb21hcF93cml0ZWwobCwgRU1JRlNfQ09ORklHKTsKKwkJCX0KKwkJfQogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbWFwcy9wY21jaWFtdGQuYyBiL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMKaW5kZXggMTkxMmQ5Ni4uMGNjMzE2NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMKKysrIGIvZHJpdmVycy9tdGQvbWFwcy9wY21jaWFtdGQuYwpAQCAtNDk4LDE3ICs0OTgsMTQgQEAKIAlpbnQgaTsKIAljb25maWdfaW5mb190IHQ7CiAJc3RhdGljIGNoYXIgKnByb2Jlc1tdID0geyAiamVkZWNfcHJvYmUiLCAiY2ZpX3Byb2JlIiB9OwotCWNpc2luZm9fdCBjaXNpbmZvOwogCWludCBuZXdfbmFtZSA9IDA7CiAKIAlERUJVRygzLCAibGluaz0weCVwIiwgbGluayk7CiAKIAlERUJVRygyLCAiVmFsaWRhdGluZyBDSVMiKTsKLQlyZXQgPSBwY21jaWFfdmFsaWRhdGVfY2lzKGxpbmssICZjaXNpbmZvKTsKKwlyZXQgPSBwY21jaWFfdmFsaWRhdGVfY2lzKGxpbmssIE5VTEwpOwogCWlmKHJldCAhPSBDU19TVUNDRVNTKSB7CiAJCWNzX2Vycm9yKGxpbmssIEdldFR1cGxlRGF0YSwgcmV0KTsKLQl9IGVsc2UgewotCQlERUJVRygyLCAiVmFsaWRhdGVDSVMgZm91bmQgJWQgY2hhaW5zIiwgY2lzaW5mby5DaGFpbnMpOwogCX0KIAogCWNhcmRfc2V0dGluZ3MoZGV2LCBsaW5rLCAmbmV3X25hbWUpOwpAQCAtNTYzLDkgKzU2MCw3IEBACiAJREVCVUcoMSwgIkFsbG9jYXRlZCBhIHdpbmRvdyBvZiAlZEtpQiIsIGRldi0+d2luX3NpemUgPj4gMTApOwogCiAJLyogR2V0IHdyaXRlIHByb3RlY3Qgc3RhdHVzICovCi0JQ1NfQ0hFQ0soR2V0U3RhdHVzLCBwY21jaWFfZ2V0X3N0YXR1cyhsaW5rLCAmc3RhdHVzKSk7Ci0JREVCVUcoMiwgInN0YXR1cyB2YWx1ZTogMHgleCB3aW5kb3cgaGFuZGxlID0gMHglOC44bHgiLAotCSAgICAgIHN0YXR1cy5DYXJkU3RhdGUsICh1bnNpZ25lZCBsb25nKWxpbmstPndpbik7CisJREVCVUcoMiwgIndpbmRvdyBoYW5kbGUgPSAweCU4LjhseCIsICh1bnNpZ25lZCBsb25nKWxpbmstPndpbik7CiAJZGV2LT53aW5fYmFzZSA9IGlvcmVtYXAocmVxLkJhc2UsIHJlcS5TaXplKTsKIAlpZighZGV2LT53aW5fYmFzZSkgewogCQllcnIoImlvcmVtYXAoJWx1LCAldSkgZmFpbGVkIiwgcmVxLkJhc2UsIHJlcS5TaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL210ZGNoYXIuYyBiL2RyaXZlcnMvbXRkL210ZGNoYXIuYwppbmRleCA1ZDNhYzUxLi4xMjlkNDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tdGRjaGFyLmMKKysrIGIvZHJpdmVycy9tdGQvbXRkY2hhci5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvY29tcGF0bWFjLmg+CkBAIC04Niw2ICs4Nyw3IEBACiB7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlpbnQgZGV2bnVtID0gbWlub3IgPj4gMTsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZDsKIAlzdHJ1Y3QgbXRkX2ZpbGVfaW5mbyAqbWZpOwogCkBAIC05OCwzMSArMTAwLDM5IEBACiAJaWYgKChmaWxlLT5mX21vZGUgJiAyKSAmJiAobWlub3IgJiAxKSkKIAkJcmV0dXJuIC1FQUNDRVM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW10ZCA9IGdldF9tdGRfZGV2aWNlKE5VTEwsIGRldm51bSk7CiAKLQlpZiAoSVNfRVJSKG10ZCkpCi0JCXJldHVybiBQVFJfRVJSKG10ZCk7CisJaWYgKElTX0VSUihtdGQpKSB7CisJCXJldCA9IFBUUl9FUlIobXRkKTsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKE1URF9BQlNFTlQgPT0gbXRkLT50eXBlKSB7CiAJCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAKIAkvKiBZb3UgY2FuJ3Qgb3BlbiBpdCBSVyBpZiBpdCdzIG5vdCBhIHdyaXRlYWJsZSBkZXZpY2UgKi8KIAlpZiAoKGZpbGUtPmZfbW9kZSAmIDIpICYmICEobXRkLT5mbGFncyAmIE1URF9XUklURUFCTEUpKSB7CiAJCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JCXJldHVybiAtRUFDQ0VTOworCQlyZXQgPSAtRUFDQ0VTOworCQlnb3RvIG91dDsKIAl9CiAKIAltZmkgPSBremFsbG9jKHNpemVvZigqbWZpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtZmkpIHsKIAkJcHV0X210ZF9kZXZpY2UobXRkKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OwogCX0KIAltZmktPm10ZCA9IG10ZDsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBtZmk7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0gLyogbXRkX29wZW4gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL29yaW9uX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCmluZGV4IDU5ZTA1YTEuLmVlMmFjMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCkBAIC04NSw2ICs4NSw5IEBACiAJbmMtPmNtZF9jdHJsID0gb3Jpb25fbmFuZF9jbWRfY3RybDsKIAluYy0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwogCisJaWYgKGJvYXJkLT5jaGlwX2RlbGF5KQorCQluYy0+Y2hpcF9kZWxheSA9IGJvYXJkLT5jaGlwX2RlbGF5OworCiAJaWYgKGJvYXJkLT53aWR0aCA9PSAxNikKIAkJbmMtPm9wdGlvbnMgfD0gTkFORF9CVVNXSURUSF8xNjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL2NkZXYuYyBiL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMKaW5kZXggOWQ2YWFlNS4uODkxOTNiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvdWJpL2NkZXYuYworKysgYi9kcml2ZXJzL210ZC91YmkvY2Rldi5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bXRkL3ViaS11c2VyLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vZGl2NjQuaD4KQEAgLTEwMyw5ICsxMDQsMTIgQEAKIAlzdHJ1Y3QgdWJpX3ZvbHVtZV9kZXNjICpkZXNjOwogCWludCB2b2xfaWQgPSBpbWlub3IoaW5vZGUpIC0gMSwgbW9kZSwgdWJpX251bTsKIAorCWxvY2tfa2VybmVsKCk7CiAJdWJpX251bSA9IHViaV9tYWpvcjJudW0oaW1ham9yKGlub2RlKSk7Ci0JaWYgKHViaV9udW0gPCAwKQorCWlmICh1YmlfbnVtIDwgMCkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiB1YmlfbnVtOworCX0KIAogCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURSkKIAkJbW9kZSA9IFVCSV9SRUFEV1JJVEU7CkBAIC0xMTUsNiArMTE5LDcgQEAKIAlkYmdfbXNnKCJvcGVuIHZvbHVtZSAlZCwgbW9kZSAlZCIsIHZvbF9pZCwgbW9kZSk7CiAKIAlkZXNjID0gdWJpX29wZW5fdm9sdW1lKHViaV9udW0sIHZvbF9pZCwgbW9kZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCWlmIChJU19FUlIoZGVzYykpCiAJCXJldHVybiBQVFJfRVJSKGRlc2MpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC8zYzU5eC5jIGIvZHJpdmVycy9uZXQvM2M1OXguYwppbmRleCAyZWRkYThjLi5hYWJhZDhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC8zYzU5eC5jCisrKyBiL2RyaXZlcnMvbmV0LzNjNTl4LmMKQEAgLTE3NjgsOSArMTc2OCwxMCBAQAogCWNhc2UgWENWUl9NSUk6IGNhc2UgWENWUl9OV0FZOgogCQl7CiAJCQlvayA9IDE7Ci0JCQlzcGluX2xvY2tfYmgoJnZwLT5sb2NrKTsKKwkJCS8qIEludGVycnVwdHMgYXJlIGFscmVhZHkgZGlzYWJsZWQgKi8KKwkJCXNwaW5fbG9jaygmdnAtPmxvY2spOwogCQkJdm9ydGV4X2NoZWNrX21lZGlhKGRldiwgMCk7Ci0JCQlzcGluX3VubG9ja19iaCgmdnAtPmxvY2spOworCQkJc3Bpbl91bmxvY2soJnZwLT5sb2NrKTsKIAkJfQogCQlicmVhazsKIAkgIGRlZmF1bHQ6CQkJCQkvKiBPdGhlciBtZWRpYSB0eXBlcyBoYW5kbGVkIGJ5IFR4IHRpbWVvdXRzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvNzk5MC5jIGIvZHJpdmVycy9uZXQvNzk5MC5jCmluZGV4IDc1MGE0NmYuLmFkNmI4YTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0Lzc5OTAuYworKysgYi9kcml2ZXJzL25ldC83OTkwLmMKQEAgLTUwNiw2ICs1MDYsNyBAQAogCiAJcmV0dXJuIHJlczsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX29wZW4pOwogCiBpbnQgbGFuY2VfY2xvc2UgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01MjEsNiArNTIyLDcgQEAKIAogICAgICAgICByZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX2Nsb3NlKTsKIAogdm9pZCBsYW5jZV90eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01MjksNyArNTMxLDcgQEAKIAlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsKIAluZXRpZl93YWtlX3F1ZXVlIChkZXYpOwogfQotCitFWFBPUlRfU1lNQk9MX0dQTChsYW5jZV90eF90aW1lb3V0KTsKIAogaW50IGxhbmNlX3N0YXJ0X3htaXQgKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01ODYsNiArNTg4LDcgQEAKIAogICAgICAgICByZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX3N0YXJ0X3htaXQpOwogCiAvKiB0YWtlbiBmcm9tIHRoZSBkZXBjYSBkcml2ZXIgdmlhIGEyMDY1LmMgKi8KIHN0YXRpYyB2b2lkIGxhbmNlX2xvYWRfbXVsdGljYXN0IChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpAQCAtNjU0LDYgKzY1Nyw3IEBACiAJaWYgKCFzdG9wcGVkKQogCQluZXRpZl9zdGFydF9xdWV1ZSAoZGV2KTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX3NldF9tdWx0aWNhc3QpOwogCiAjaWZkZWYgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIKIHZvaWQgbGFuY2VfcG9sbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L0tjb25maWcKaW5kZXggZGQwZWM5ZS4uNDVhNDFiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9LY29uZmlnCkBAIC0yMTcsNyArMjE3LDcgQEAKIAogY29uZmlnIE1BQ0IKIAl0cmlzdGF0ZSAiQXRtZWwgTUFDQiBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MUNBUDkKKwlkZXBlbmRzIG9uIEFWUjMyIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05RzIwIHx8IEFSQ0hfQVQ5MUNBUDkKIAlzZWxlY3QgUEhZTElCCiAJaGVscAogCSAgVGhlIEF0bWVsIE1BQ0IgZXRoZXJuZXQgaW50ZXJmYWNlIGlzIGZvdW5kIG9uIG1hbnkgQVQzMiBhbmQgQVQ5MQpAQCAtMjQyNiw3ICsyNDI2LDcgQEAKIAogY29uZmlnIEVIRUEKIAl0cmlzdGF0ZSAiZUhFQSBFdGhlcm5ldCBzdXBwb3J0IgotCWRlcGVuZHMgb24gSUJNRUJVUyAmJiBJTkVUICYmIFNQQVJTRU1FTSAmJiBNRU1PUllfSE9UUExVRworCWRlcGVuZHMgb24gSUJNRUJVUyAmJiBJTkVUICYmIFNQQVJTRU1FTQogCXNlbGVjdCBJTkVUX0xSTwogCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBJQk0gcFNlcmllcyBlSEVBIGV0aGVybmV0IGFkYXB0ZXIuCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hcm0vZXRoZXJoLmMgYi9kcml2ZXJzL25ldC9hcm0vZXRoZXJoLmMKaW5kZXggMDAwODFkMi4uZTlkMTVlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYXJtL2V0aGVyaC5jCisrKyBiL2RyaXZlcnMvbmV0L2FybS9ldGhlcmguYwpAQCAtNjQ3LDcgKzY0Nyw3IEBACiAJc3RydWN0IGVpX2RldmljZSAqZWlfbG9jYWw7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZXRoZXJoX3ByaXYgKmVoOwotCWludCBpLCByZXQ7CisJaW50IHJldDsKIAlERUNMQVJFX01BQ19CVUYobWFjKTsKIAogCWV0aGVyaF9iYW5uZXIoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F0bHgvYXRsMS5jIGIvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKaW5kZXggNmRkYzkxMS4uM2M3OThhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKKysrIGIvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKQEAgLTQ3MSw3ICs0NzEsNiBAQAogCQkJbWVtY3B5KGh3LT5wZXJtX21hY19hZGRyLCBldGhfYWRkciwgRVRIX0FMRU4pOwogCQkJcmV0dXJuIDA7CiAJCX0KLQkJcmV0dXJuIDE7CiAJfQogCiAJLyogc2VlIGlmIFNQSSBGTEFHUyBleGlzdCA/ICovCkBAIC02MzcsMjIgKzYzNiw2IEBACiB9CiAKIC8qCi0gKiBGb3JjZSB0aGUgUEhZIGludG8gcG93ZXIgc2F2aW5nIG1vZGUgdXNpbmcgdmVuZG9yIG1hZ2ljLgotICovCi0jaWZkZWYgQ09ORklHX1BNCi1zdGF0aWMgdm9pZCBhdGwxX3BoeV9lbnRlcl9wb3dlcl9zYXZpbmcoc3RydWN0IGF0bDFfaHcgKmh3KQotewotCWF0bDFfd3JpdGVfcGh5X3JlZyhodywgTUlJX0RCR19BRERSLCAwKTsKLQlhdGwxX3dyaXRlX3BoeV9yZWcoaHcsIE1JSV9EQkdfREFUQSwgMHgxMjRFKTsKLQlhdGwxX3dyaXRlX3BoeV9yZWcoaHcsIE1JSV9EQkdfQUREUiwgMik7Ci0JYXRsMV93cml0ZV9waHlfcmVnKGh3LCBNSUlfREJHX0RBVEEsIDB4MzAwMCk7Ci0JYXRsMV93cml0ZV9waHlfcmVnKGh3LCBNSUlfREJHX0FERFIsIDMpOwotCWF0bDFfd3JpdGVfcGh5X3JlZyhodywgTUlJX0RCR19EQVRBLCAwKTsKLQotfQotI2VuZGlmCi0KLS8qCiAgKiBSZXNldHMgdGhlIFBIWSBhbmQgbWFrZSBhbGwgY29uZmlnIHZhbGlkYXRlCiAgKiBodyAtIFN0cnVjdCBjb250YWluaW5nIHZhcmlhYmxlcyBhY2Nlc3NlZCBieSBzaGFyZWQgY29kZQogICoKQEAgLTI4NjAsNyArMjg0Myw2IEBACiAJY3RybCB8PSBQQ0lFX1BIWU1JU0NfRk9SQ0VfUkNWX0RFVDsKIAlpb3dyaXRlMzIoY3RybCwgaHctPmh3X2FkZHIgKyBSRUdfUENJRV9QSFlNSVNDKTsKIAlpb3JlYWQzMihody0+aHdfYWRkciArIFJFR19QQ0lFX1BIWU1JU0MpOwotCWF0bDFfcGh5X2VudGVyX3Bvd2VyX3NhdmluZyhodyk7CiAJaHctPnBoeV9jb25maWd1cmVkID0gZmFsc2U7CiAJcGNpX2VuYWJsZV93YWtlKHBkZXYsIHBjaV9jaG9vc2Vfc3RhdGUocGRldiwgc3RhdGUpLCAwKTsKIGV4aXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibngyLmMgYi9kcml2ZXJzL25ldC9ibngyLmMKaW5kZXggNGI0NmU2OC4uMzY3YjZkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm54Mi5jCisrKyBiL2RyaXZlcnMvbmV0L2JueDIuYwpAQCAtNTcyNCwxNCArNTcyNCwxMiBAQAogCWlmICghbmV0aWZfcnVubmluZyhicC0+ZGV2KSkKIAkJcmV0dXJuOwogCi0JYnAtPmluX3Jlc2V0X3Rhc2sgPSAxOwogCWJueDJfbmV0aWZfc3RvcChicCk7CiAKIAlibngyX2luaXRfbmljKGJwKTsKIAogCWF0b21pY19zZXQoJmJwLT5pbnRyX3NlbSwgMSk7CiAJYm54Ml9uZXRpZl9zdGFydChicCk7Ci0JYnAtPmluX3Jlc2V0X3Rhc2sgPSAwOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNTkwNywxMiArNTkwNSw3IEBACiAJc3RydWN0IGJueDIgKmJwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAl1MzIgcmVzZXRfY29kZTsKIAotCS8qIENhbGxpbmcgZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSBtYXkgZGVhZGxvY2sgYmVjYXVzZQotCSAqIGxpbmt3YXRjaF9ldmVudCgpIG1heSBiZSBvbiB0aGUgd29ya3F1ZXVlIGFuZCBpdCB3aWxsIHRyeSB0byBnZXQKLQkgKiB0aGUgcnRubF9sb2NrIHdoaWNoIHdlIGFyZSBob2xkaW5nLgotCSAqLwotCXdoaWxlIChicC0+aW5fcmVzZXRfdGFzaykKLQkJbXNsZWVwKDEpOworCWNhbmNlbF93b3JrX3N5bmMoJmJwLT5yZXNldF90YXNrKTsKIAogCWJueDJfZGlzYWJsZV9pbnRfc3luYyhicCk7CiAJYm54Ml9uYXBpX2Rpc2FibGUoYnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm54Mi5oIGIvZHJpdmVycy9uZXQvYm54Mi5oCmluZGV4IDFlYWY1YmIuLjIzNzdjYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDIuaAorKysgYi9kcml2ZXJzL25ldC9ibngyLmgKQEAgLTY2NTYsNyArNjY1Niw2IEBACiAJaW50CQkJY3VycmVudF9pbnRlcnZhbDsKIAlzdHJ1Y3QJCQl0aW1lcl9saXN0IHRpbWVyOwogCXN0cnVjdCB3b3JrX3N0cnVjdAlyZXNldF90YXNrOwotCWludAkJCWluX3Jlc2V0X3Rhc2s7CiAKIAkvKiBVc2VkIHRvIHN5bmNocm9uaXplIHBoeSBhY2Nlc3Nlcy4gKi8KIAlzcGlubG9ja190CQlwaHlfbG9jazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueDJ4LmMgYi9kcml2ZXJzL25ldC9ibngyeC5jCmluZGV4IDdiZGI1YWYuLjcwY2JhNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDJ4LmMKKysrIGIvZHJpdmVycy9uZXQvYm54MnguYwpAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKiBCYXNlZCBvbiBjb2RlIGZyb20gTWljaGFlbCBDaGFuJ3MgYm54MiBkcml2ZXIKICAqIFVEUCBDU1VNIGVycmF0YSB3b3JrYXJvdW5kIGJ5IEFyaWsgR2VuZGVsbWFuCiAgKiBTbG93cGF0aCByZXdvcmsgYnkgVmxhZGlzbGF2IFpvbG90YXJvdgpAQCAtNzQsNyArNzUsNyBAQAogCSJCcm9hZGNvbSBOZXRYdHJlbWUgSUkgNTc3MVggMTBHaWdhYml0IEV0aGVybmV0IERyaXZlciAiCiAJRFJWX01PRFVMRV9OQU1FICIgIiBEUlZfTU9EVUxFX1ZFUlNJT04gIiAoIiBEUlZfTU9EVUxFX1JFTERBVEUgIilcbiI7CiAKLU1PRFVMRV9BVVRIT1IoIkVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIkVsaWV6ZXIgVGFtaXIiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQnJvYWRjb20gTmV0WHRyZW1lIElJIEJDTTU3NzEwIERyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX1ZFUlNJT04oRFJWX01PRFVMRV9WRVJTSU9OKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueDJ4LmggYi9kcml2ZXJzL25ldC9ibngyeC5oCmluZGV4IDRmMGMwZDMuLjhlNjhkMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDJ4LmgKKysrIGIvZHJpdmVycy9uZXQvYm54MnguaApAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKiBCYXNlZCBvbiBjb2RlIGZyb20gTWljaGFlbCBDaGFuJ3MgYm54MiBkcml2ZXIKICAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibngyeF9pbml0LmggYi9kcml2ZXJzL25ldC9ibngyeF9pbml0LmgKaW5kZXggZGNhZWNjNS4uMzcwNjg2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm54MnhfaW5pdC5oCisrKyBiL2RyaXZlcnMvbmV0L2JueDJ4X2luaXQuaApAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKi8KIAogI2lmbmRlZiBCTlgyWF9JTklUX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKaW5kZXggNTc5YmVlNC4uOGU4ZWJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKQEAgLTY4Niw4ICs2ODYsOSBAQAogaW50IHQzX3NlZXByb21fd3Aoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGludCBlbmFibGUpOwogaW50IHQzX2dldF90cF92ZXJzaW9uKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1MzIgKnZlcnMpOwogaW50IHQzX2NoZWNrX3Rwc3JhbV92ZXJzaW9uKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBpbnQgKm11c3RfbG9hZCk7Ci1pbnQgdDNfY2hlY2tfdHBzcmFtKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1OCAqdHBfcmFtLCB1bnNpZ25lZCBpbnQgc2l6ZSk7Ci1pbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpkYXRhKTsKK2ludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHU4ICp0cF9yYW0sCisJCSAgICB1bnNpZ25lZCBpbnQgc2l6ZSk7CitpbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGNvbnN0IHU4ICpkYXRhKTsKIGludCB0M19yZWFkX2ZsYXNoKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgYWRkciwKIAkJICB1bnNpZ25lZCBpbnQgbndvcmRzLCB1MzIgKmRhdGEsIGludCBieXRlX29yaWVudGVkKTsKIGludCB0M19sb2FkX2Z3KHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBjb25zdCB1OCAqIGZ3X2RhdGEsIHVuc2lnbmVkIGludCBzaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX2N0bF9kZWZzLmggYi9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19jdGxfZGVmcy5oCmluZGV4IDZjNGYzMjAuLmVkMGVjZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX2N0bF9kZWZzLmgKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfY3RsX2RlZnMuaApAQCAtNTQsNiArNTQsNyBAQAogCVJETUFfQ1FfRElTQUJMRQkJPSAxNiwKIAlSRE1BX0NUUkxfUVBfU0VUVVAJPSAxNywKIAlSRE1BX0dFVF9NRU0JCT0gMTgsCisJUkRNQV9HRVRfTUlCCQk9IDE5LAogCiAJR0VUX1JYX1BBR0VfSU5GTwk9IDUwLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX29mZmxvYWQuYyBiL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX29mZmxvYWQuYwppbmRleCBmZjljMDEzLi5jZjI2OTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19vZmZsb2FkLmMKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfb2ZmbG9hZC5jCkBAIC0zMDMsNiArMzAzLDEyIEBACiAJCXNwaW5fdW5sb2NrX2lycSgmYWRhcHRlci0+c2dlLnJlZ19sb2NrKTsKIAkJYnJlYWs7CiAJfQorCWNhc2UgUkRNQV9HRVRfTUlCOiB7CisJCXNwaW5fbG9jaygmYWRhcHRlci0+c3RhdHNfbG9jayk7CisJCXQzX3RwX2dldF9taWJfc3RhdHMoYWRhcHRlciwgKHN0cnVjdCB0cF9taWJfc3RhdHMgKilkYXRhKTsKKwkJc3Bpbl91bmxvY2soJmFkYXB0ZXItPnN0YXRzX2xvY2spOworCQlicmVhazsKKwl9CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVPUE5PVFNVUFA7CiAJfQpAQCAtMzgxLDYgKzM4Nyw3IEBACiAJY2FzZSBSRE1BX0NRX0RJU0FCTEU6CiAJY2FzZSBSRE1BX0NUUkxfUVBfU0VUVVA6CiAJY2FzZSBSRE1BX0dFVF9NRU06CisJY2FzZSBSRE1BX0dFVF9NSUI6CiAJCWlmICghb2ZmbG9hZF9ydW5uaW5nKGFkYXB0ZXIpKQogCQkJcmV0dXJuIC1FQUdBSU47CiAJCXJldHVybiBjeGdiX3JkbWFfY3RsKGFkYXB0ZXIsIHJlcSwgZGF0YSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jeGdiMy90M19ody5jIGIvZHJpdmVycy9uZXQvY3hnYjMvdDNfaHcuYwppbmRleCBkNDA1YTkzLi40N2Q1MTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy90M19ody5jCisrKyBiL2RyaXZlcnMvbmV0L2N4Z2IzL3QzX2h3LmMKQEAgLTkyMyw3ICs5MjMsOCBAQAogICoJQ2hlY2tzIGlmIGFuIGFkYXB0ZXIncyB0cCBzcmFtIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgZHJpdmVyLgogICoJUmV0dXJucyAwIGlmIHRoZSB2ZXJzaW9ucyBhcmUgY29tcGF0aWJsZSwgYSBuZWdhdGl2ZSBlcnJvciBvdGhlcndpc2UuCiAgKi8KLWludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHU4ICp0cF9zcmFtLCB1bnNpZ25lZCBpbnQgc2l6ZSkKK2ludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHU4ICp0cF9zcmFtLAorCQkgICAgdW5zaWduZWQgaW50IHNpemUpCiB7CiAJdTMyIGNzdW07CiAJdW5zaWduZWQgaW50IGk7CkBAIC0yODc1LDEwICsyODc2LDEwIEBACiAgKgogICoJV3JpdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBwcm90b2NvbCBTUkFNLgogICovCi1pbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpkYXRhKQoraW50IHQzX3NldF9wcm90b19zcmFtKHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1OCAqZGF0YSkKIHsKIAlpbnQgaTsKLQlfX2JlMzIgKmJ1ZiA9IChfX2JlMzIgKilkYXRhOworCWNvbnN0IF9fYmUzMiAqYnVmID0gKGNvbnN0IF9fYmUzMiAqKWRhdGE7CiAKIAlmb3IgKGkgPSAwOyBpIDwgUFJPVE9fU1JBTV9MSU5FUzsgaSsrKSB7CiAJCXQzX3dyaXRlX3JlZyhhZGFwLCBBX1RQX0VNQkVEX09QX0ZJRUxENSwgYmUzMl90b19jcHUoKmJ1ZisrKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jeGdiMy92ZXJzaW9uLmggYi9kcml2ZXJzL25ldC9jeGdiMy92ZXJzaW9uLmgKaW5kZXggYTAxNzdmYy4uMjlkYjcxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3hnYjMvdmVyc2lvbi5oCisrKyBiL2RyaXZlcnMvbmV0L2N4Z2IzL3ZlcnNpb24uaApAQCAtMzgsNyArMzgsNyBAQAogI2RlZmluZSBEUlZfVkVSU0lPTiAiMS4wLWtvIgogCiAvKiBGaXJtd2FyZSB2ZXJzaW9uICovCi0jZGVmaW5lIEZXX1ZFUlNJT05fTUFKT1IgNgorI2RlZmluZSBGV19WRVJTSU9OX01BSk9SIDcKICNkZWZpbmUgRldfVkVSU0lPTl9NSU5PUiAwCiAjZGVmaW5lIEZXX1ZFUlNJT05fTUlDUk8gMAogI2VuZGlmCQkJCS8qIF9fQ0hFTFNJT19WRVJTSU9OX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2UxMDAuYyBiL2RyaXZlcnMvbmV0L2UxMDAuYwppbmRleCBmM2NiYTVlLi4xMDM3YjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9lMTAwLmMKKysrIGIvZHJpdmVycy9uZXQvZTEwMC5jCkBAIC0xODAzLDYgKzE4MDMsOCBAQAogCWlmIChyeC0+cHJldi0+c2tiKSB7CiAJCXN0cnVjdCByZmQgKnByZXZfcmZkID0gKHN0cnVjdCByZmQgKilyeC0+cHJldi0+c2tiLT5kYXRhOwogCQlwdXRfdW5hbGlnbmVkX2xlMzIocngtPmRtYV9hZGRyLCAmcHJldl9yZmQtPmxpbmspOworCQlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UobmljLT5wZGV2LCByeC0+cHJldi0+ZG1hX2FkZHIsCisJCQlzaXplb2Yoc3RydWN0IHJmZCksIFBDSV9ETUFfVE9ERVZJQ0UpOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRodG9vbC5jCmluZGV4IDcwMTUzMWUuLmEzZjZhOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGh0b29sLmMKQEAgLTM0Nyw3ICszNDcsNyBAQAogCWVsc2UKIAkJbmV0ZGV2LT5mZWF0dXJlcyAmPSB+TkVUSUZfRl9UU087CiAKLQlpZiAoZGF0YSkKKwlpZiAoZGF0YSAmJiAoYWRhcHRlci0+aHcubWFjX3R5cGUgPiBlMTAwMF84MjU0N19yZXZfMikpCiAJCW5ldGRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9UU082OwogCWVsc2UKIAkJbmV0ZGV2LT5mZWF0dXJlcyAmPSB+TkVUSUZfRl9UU082OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDBlL25ldGRldi5jIGIvZHJpdmVycy9uZXQvZTEwMDBlL25ldGRldi5jCmluZGV4IGNhYjE4MzUuLjY0OGE4N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2UxMDAwZS9uZXRkZXYuYworKysgYi9kcml2ZXJzL25ldC9lMTAwMGUvbmV0ZGV2LmMKQEAgLTI1MzUsNyArMjUzNSw4IEBACiAJYWRhcHRlci0+bGlua19zcGVlZCA9IDA7CiAJYWRhcHRlci0+bGlua19kdXBsZXggPSAwOwogCi0JZTEwMDBlX3Jlc2V0KGFkYXB0ZXIpOworCWlmICghcGNpX2NoYW5uZWxfb2ZmbGluZShhZGFwdGVyLT5wZGV2KSkKKwkJZTEwMDBlX3Jlc2V0KGFkYXB0ZXIpOwogCWUxMDAwX2NsZWFuX3R4X3JpbmcoYWRhcHRlcik7CiAJZTEwMDBfY2xlYW5fcnhfcmluZyhhZGFwdGVyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZWhlYS9laGVhLmggYi9kcml2ZXJzL25ldC9laGVhL2VoZWEuaAppbmRleCBmZTg3MmZiLi5lMDE5MjZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9laGVhL2VoZWEuaAorKysgYi9kcml2ZXJzL25ldC9laGVhL2VoZWEuaApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjZGVmaW5lIERSVl9OQU1FCSJlaGVhIgotI2RlZmluZSBEUlZfVkVSU0lPTgkiRUhFQV8wMDkxIgorI2RlZmluZSBEUlZfVkVSU0lPTgkiRUhFQV8wMDkyIgogCiAvKiBlSEVBIGNhcGFiaWxpdHkgZmxhZ3MgKi8KICNkZWZpbmUgRExQQVJfUE9SVF9BRERfUkVNIDEKQEAgLTQ1Miw3ICs0NTIsNyBAQAogc3RydWN0IGVoZWFfYmNtY19yZWdfYXJyYXkgewogCXN0cnVjdCBlaGVhX2JjbWNfcmVnX2VudHJ5ICphcnI7CiAJaW50IG51bV9lbnRyaWVzOwotCXN0cnVjdCBtdXRleCBsb2NrOworCXNwaW5sb2NrX3QgbG9jazsKIH07CiAKICNkZWZpbmUgRUhFQV9QT1JUX1VQIDEKQEAgLTQ3OCw2ICs0NzgsNyBAQAogCWludCBudW1fYWRkX3R4X3FwczsKIAlpbnQgbnVtX21jczsKIAlpbnQgcmVzZXRzOworCXU2NCBmbGFnczsKIAl1NjQgbWFjX2FkZHI7CiAJdTMyIGxvZ2ljYWxfcG9ydF9pZDsKIAl1MzIgcG9ydF9zcGVlZDsKQEAgLTUwMSw3ICs1MDIsOCBAQAogfTsKIAogZW51bSBlaGVhX2ZsYWdfYml0cyB7Ci0JX19FSEVBX1NUT1BfWEZFUgorCV9fRUhFQV9TVE9QX1hGRVIsCisJX19FSEVBX0RJU0FCTEVfUE9SVF9SRVNFVAogfTsKIAogdm9pZCBlaGVhX3NldF9ldGh0b29sX29wcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2VoZWEvZWhlYV9tYWluLmMgYi9kcml2ZXJzL25ldC9laGVhL2VoZWFfbWFpbi5jCmluZGV4IDI4N2E2MTkuLjA5MjBiNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2VoZWEvZWhlYV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZWhlYS9laGVhX21haW4uYwpAQCAtMTE4LDYgKzExOCw3IEBACiAJfSwKIAl7fSwKIH07CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaGVhX2RldmljZV90YWJsZSk7CiAKIHN0YXRpYyBzdHJ1Y3Qgb2ZfcGxhdGZvcm1fZHJpdmVyIGVoZWFfZHJpdmVyID0gewogCS5uYW1lID0gImVoZWEiLApAQCAtMTM3LDYgKzEzOCwxMiBAQAogCX0KIH0KIAordm9pZCBlaGVhX3NjaGVkdWxlX3BvcnRfcmVzZXQoc3RydWN0IGVoZWFfcG9ydCAqcG9ydCkKK3sKKwlpZiAoIXRlc3RfYml0KF9fRUhFQV9ESVNBQkxFX1BPUlRfUkVTRVQsICZwb3J0LT5mbGFncykpCisJCXNjaGVkdWxlX3dvcmsoJnBvcnQtPnJlc2V0X3Rhc2spOworfQorCiBzdGF0aWMgdm9pZCBlaGVhX3VwZGF0ZV9maXJtd2FyZV9oYW5kbGVzKHZvaWQpCiB7CiAJc3RydWN0IGVoZWFfZndfaGFuZGxlX2VudHJ5ICphcnIgPSBOVUxMOwpAQCAtMjQxLDcgKzI0OCw3IEBACiAJCX0KIAogCWlmIChudW1fcmVnaXN0cmF0aW9ucykgewotCQlhcnIgPSBremFsbG9jKG51bV9yZWdpc3RyYXRpb25zICogc2l6ZW9mKCphcnIpLCBHRlBfS0VSTkVMKTsKKwkJYXJyID0ga3phbGxvYyhudW1fcmVnaXN0cmF0aW9ucyAqIHNpemVvZigqYXJyKSwgR0ZQX0FUT01JQyk7CiAJCWlmICghYXJyKQogCQkJcmV0dXJuOyAgLyogS2VlcCB0aGUgZXhpc3RpbmcgYXJyYXkgKi8KIAl9IGVsc2UKQEAgLTMwMSw3ICszMDgsNyBAQAogCiAJbWVtc2V0KHN0YXRzLCAwLCBzaXplb2YoKnN0YXRzKSk7CiAKLQljYjIgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7CisJY2IyID0ga3phbGxvYyhQQUdFX1NJWkUsIEdGUF9BVE9NSUMpOwogCWlmICghY2IyKSB7CiAJCWVoZWFfZXJyb3IoIm5vIG1lbSBmb3IgY2IyIik7CiAJCWdvdG8gb3V0OwpAQCAtNTg3LDcgKzU5NCw3IEBACiAJCQkJICAgIlJlc2V0dGluZyBwb3J0LiIsIHByLT5xcC0+aW5pdF9hdHRyLnFwX25yKTsKIAkJCWVoZWFfZHVtcChjcWUsIHNpemVvZigqY3FlKSwgIkNRRSIpOwogCQl9Ci0JCXNjaGVkdWxlX3dvcmsoJnByLT5wb3J0LT5yZXNldF90YXNrKTsKKwkJZWhlYV9zY2hlZHVsZV9wb3J0X3Jlc2V0KHByLT5wb3J0KTsKIAkJcmV0dXJuIDE7CiAJfQogCkBAIC02MTYsNyArNjIzLDcgQEAKIAkqdGNwaCA9IHRjcF9oZHIoc2tiKTsKIAogCS8qIGNoZWNrIGlmIGlwIGhlYWRlciBhbmQgdGNwIGhlYWRlciBhcmUgY29tcGxldGUgKi8KLQlpZiAoaXBoLT50b3RfbGVuIDwgaXBfbGVuICsgdGNwX2hkcmxlbihza2IpKQorCWlmIChudG9ocyhpcGgtPnRvdF9sZW4pIDwgaXBfbGVuICsgdGNwX2hkcmxlbihza2IpKQogCQlyZXR1cm4gLTE7CiAKIAkqaGRyX2ZsYWdzID0gTFJPX0lQVjQgfCBMUk9fVENQOwpAQCAtNzY1LDcgKzc3Miw3IEBACiAJCQllaGVhX2Vycm9yKCJTZW5kIENvbXBsZXRpb24gRXJyb3I6IFJlc2V0dGluZyBwb3J0Iik7CiAJCQlpZiAobmV0aWZfbXNnX3R4X2Vycihwci0+cG9ydCkpCiAJCQkJZWhlYV9kdW1wKGNxZSwgc2l6ZW9mKCpjcWUpLCAiU2VuZCBDUUUiKTsKLQkJCXNjaGVkdWxlX3dvcmsoJnByLT5wb3J0LT5yZXNldF90YXNrKTsKKwkJCWVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChwci0+cG9ydCk7CiAJCQlicmVhazsKIAkJfQogCkBAIC04ODUsNyArODkyLDcgQEAKIAkJZXFlID0gZWhlYV9wb2xsX2VxKHBvcnQtPnFwX2VxKTsKIAl9CiAKLQlzY2hlZHVsZV93b3JrKCZwb3J0LT5yZXNldF90YXNrKTsKKwllaGVhX3NjaGVkdWxlX3BvcnRfcmVzZXQocG9ydCk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0xNzYzLDI1ICsxNzcwLDI5IEBACiAKIAltZW1jcHkoZGV2LT5kZXZfYWRkciwgbWFjX2FkZHItPnNhX2RhdGEsIGRldi0+YWRkcl9sZW4pOwogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCS8qIERlcmVnaXN0ZXIgb2xkIE1BQyBpbiBwSFlQICovCi0JcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX0RFUkVHX0JDTUMpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0X3VwcmVnczsKKwlpZiAocG9ydC0+c3RhdGUgPT0gRUhFQV9QT1JUX1VQKSB7CisJCXJldCA9IGVoZWFfYnJvYWRjYXN0X3JlZ19oZWxwZXIocG9ydCwgSF9ERVJFR19CQ01DKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X3VwcmVnczsKKwl9CiAKIAlwb3J0LT5tYWNfYWRkciA9IGNiMC0+cG9ydF9tYWNfYWRkciA8PCAxNjsKIAogCS8qIFJlZ2lzdGVyIG5ldyBNQUMgaW4gcEhZUCAqLwotCXJldCA9IGVoZWFfYnJvYWRjYXN0X3JlZ19oZWxwZXIocG9ydCwgSF9SRUdfQkNNQyk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfdXByZWdzOworCWlmIChwb3J0LT5zdGF0ZSA9PSBFSEVBX1BPUlRfVVApIHsKKwkJcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX1JFR19CQ01DKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X3VwcmVnczsKKwl9CiAKIAlyZXQgPSAwOwogCiBvdXRfdXByZWdzOgogCWVoZWFfdXBkYXRlX2JjbWNfcmVnaXN0cmF0aW9ucygpOwotCW11dGV4X3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogb3V0X2ZyZWU6CiAJa2ZyZWUoY2IwKTsKIG91dDoKQEAgLTE5NDMsNyArMTk1NCw3IEBACiAJfQogCWVoZWFfcHJvbWlzY3VvdXMoZGV2LCAwKTsKIAotCW11dGV4X2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAKIAlpZiAoZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSkgewogCQllaGVhX2FsbG11bHRpKGRldiwgMSk7CkBAIC0xOTc0LDcgKzE5ODUsNyBAQAogCX0KIG91dDoKIAllaGVhX3VwZGF0ZV9iY21jX3JlZ2lzdHJhdGlvbnMoKTsKLQltdXRleF91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAlyZXR1cm47CiB9CiAKQEAgLTI0OTMsNyArMjUwNCw3IEBACiAJCX0KIAl9CiAKLQltdXRleF9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX1JFR19CQ01DKTsKIAlpZiAocmV0KSB7CkBAIC0yNTE2LDcgKzI1MjcsNyBAQAogCQllaGVhX2luZm8oIkZhaWxlZCBzdGFydGluZyAlcy4gcmV0PSVpIiwgZGV2LT5uYW1lLCByZXQpOwogCiAJZWhlYV91cGRhdGVfYmNtY19yZWdpc3RyYXRpb25zKCk7Ci0JbXV0ZXhfdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAKIAllaGVhX3VwZGF0ZV9maXJtd2FyZV9oYW5kbGVzKCk7CiAJbXV0ZXhfdW5sb2NrKCZlaGVhX2Z3X2hhbmRsZXMubG9jayk7CkBAIC0yNTcxLDcgKzI1ODIsNyBAQAogCiAJbXV0ZXhfbG9jaygmZWhlYV9md19oYW5kbGVzLmxvY2spOwogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAllaGVhX2Ryb3BfbXVsdGljYXN0X2xpc3QoZGV2KTsKIAllaGVhX2Jyb2FkY2FzdF9yZWdfaGVscGVyKHBvcnQsIEhfREVSRUdfQkNNQyk7CiAKQEAgLTI1ODAsNyArMjU5MSw3IEBACiAJcG9ydC0+c3RhdGUgPSBFSEVBX1BPUlRfRE9XTjsKIAogCWVoZWFfdXBkYXRlX2JjbWNfcmVnaXN0cmF0aW9ucygpOwotCW11dGV4X3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJcmV0ID0gZWhlYV9jbGVhbl9hbGxfcG9ydHJlcyhwb3J0KTsKIAlpZiAocmV0KQpAQCAtMjYwMSwxMiArMjYxMiwxNCBAQAogCWlmIChuZXRpZl9tc2dfaWZkb3duKHBvcnQpKQogCQllaGVhX2luZm8oImRpc2FibGluZyBwb3J0ICVzIiwgZGV2LT5uYW1lKTsKIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJc2V0X2JpdChfX0VIRUFfRElTQUJMRV9QT1JUX1JFU0VULCAmcG9ydC0+ZmxhZ3MpOworCWNhbmNlbF93b3JrX3N5bmMoJnBvcnQtPnJlc2V0X3Rhc2spOwogCW11dGV4X2xvY2soJnBvcnQtPnBvcnRfbG9jayk7CiAJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwogCXBvcnRfbmFwaV9kaXNhYmxlKHBvcnQpOwogCXJldCA9IGVoZWFfZG93bihkZXYpOwogCW11dGV4X3VubG9jaygmcG9ydC0+cG9ydF9sb2NrKTsKKwljbGVhcl9iaXQoX19FSEVBX0RJU0FCTEVfUE9SVF9SRVNFVCwgJnBvcnQtPmZsYWdzKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yOTM2LDcgKzI5NDksNyBAQAogCiAJaWYgKG5ldGlmX2NhcnJpZXJfb2soZGV2KSAmJgogCSAgICAhdGVzdF9iaXQoX19FSEVBX1NUT1BfWEZFUiwgJmVoZWFfZHJpdmVyX2ZsYWdzKSkKLQkJc2NoZWR1bGVfd29yaygmcG9ydC0+cmVzZXRfdGFzayk7CisJCWVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChwb3J0KTsKIH0KIAogaW50IGVoZWFfc2Vuc2VfYWRhcHRlcl9hdHRyKHN0cnVjdCBlaGVhX2FkYXB0ZXIgKmFkYXB0ZXIpCkBAIC0zNTg1LDcgKzM1OTgsNyBAQAogCW1lbXNldCgmZWhlYV9iY21jX3JlZ3MsIDAsIHNpemVvZihlaGVhX2JjbWNfcmVncykpOwogCiAJbXV0ZXhfaW5pdCgmZWhlYV9md19oYW5kbGVzLmxvY2spOwotCW11dGV4X2luaXQoJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fbG9ja19pbml0KCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCXJldCA9IGNoZWNrX21vZHVsZV9wYXJtKCk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2VuYzI4ajYwLmMgYi9kcml2ZXJzL25ldC9lbmMyOGo2MC5jCmluZGV4IDQ2YTkwZTkuLmMwNWNiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2VuYzI4ajYwLmMKKysrIGIvZHJpdmVycy9uZXQvZW5jMjhqNjAuYwpAQCAtNDAwLDI2ICs0MDAsMzEgQEAKIAltdXRleF91bmxvY2soJnByaXYtPmxvY2spOwogfQogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtc2VjMjBfdG9famlmZmllczsKKworc3RhdGljIGludCBwb2xsX3JlYWR5KHN0cnVjdCBlbmMyOGo2MF9uZXQgKnByaXYsIHU4IHJlZywgdTggbWFzaywgdTggdmFsKQoreworCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKyBtc2VjMjBfdG9famlmZmllczsKKworCS8qIDIwIG1zZWMgdGltZW91dCByZWFkICovCisJd2hpbGUgKChub2xvY2tfcmVnYl9yZWFkKHByaXYsIHJlZykgJiBtYXNrKSAhPSB2YWwpIHsKKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgdGltZW91dCkpIHsKKwkJCWlmIChuZXRpZl9tc2dfZHJ2KHByaXYpKQorCQkJCWRldl9kYmcoJnByaXYtPnNwaS0+ZGV2LAorCQkJCQkicmVnICUwMnggcmVhZHkgdGltZW91dCFcbiIsIHJlZyk7CisJCQlyZXR1cm4gLUVUSU1FRE9VVDsKKwkJfQorCQljcHVfcmVsYXgoKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBXYWl0IHVudGlsIHRoZSBQSFkgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLgogICovCiBzdGF0aWMgaW50IHdhaXRfcGh5X3JlYWR5KHN0cnVjdCBlbmMyOGo2MF9uZXQgKnByaXYpCiB7Ci0JdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArIDIwICogSFogLyAxMDAwOwotCWludCByZXQgPSAxOwotCi0JLyogMjAgbXNlYyB0aW1lb3V0IHJlYWQgKi8KLQl3aGlsZSAobm9sb2NrX3JlZ2JfcmVhZChwcml2LCBNSVNUQVQpICYgTUlTVEFUX0JVU1kpIHsKLQkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgdGltZW91dCkpIHsKLQkJCWlmIChuZXRpZl9tc2dfZHJ2KHByaXYpKQotCQkJCXByaW50ayhLRVJOX0RFQlVHIERSVl9OQU1FCi0JCQkJCSI6IFBIWSByZWFkeSB0aW1lb3V0IVxuIik7Ci0JCQlyZXQgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJY3B1X3JlbGF4KCk7Ci0JfQotCXJldHVybiByZXQ7CisJcmV0dXJuIHBvbGxfcmVhZHkocHJpdiwgTUlTVEFULCBNSVNUQVRfQlVTWSwgMCkgPyAwIDogMTsKIH0KIAogLyoKQEAgLTU5NCw2ICs1OTksMzIgQEAKIAlub2xvY2tfcmVnd193cml0ZShwcml2LCBFVFhOREwsIGVuZCk7CiB9CiAKKy8qCisgKiBMb3cgcG93ZXIgbW9kZSBzaHJpbmtzIHBvd2VyIGNvbnN1bXB0aW9uIGFib3V0IDEwMHgsIHNvIHdlJ2QgbGlrZQorICogdGhlIGNoaXAgdG8gYmUgaW4gdGhhdCBtb2RlIHdoZW5ldmVyIGl0J3MgaW5hY3RpdmUuICAoSG93ZXZlciwgd2UKKyAqIGNhbid0IHN0YXkgaW4gbG93cG93ZXIgbW9kZSBkdXJpbmcgc3VzcGVuZCB3aXRoIFdPTCBhY3RpdmUuKQorICovCitzdGF0aWMgdm9pZCBlbmMyOGo2MF9sb3dwb3dlcihzdHJ1Y3QgZW5jMjhqNjBfbmV0ICpwcml2LCBib29sIGlzX2xvdykKK3sKKwlpZiAobmV0aWZfbXNnX2Rydihwcml2KSkKKwkJZGV2X2RiZygmcHJpdi0+c3BpLT5kZXYsICIlcyBwb3dlci4uLlxuIiwKKwkJCQlpc19sb3cgPyAibG93IiA6ICJoaWdoIik7CisKKwltdXRleF9sb2NrKCZwcml2LT5sb2NrKTsKKwlpZiAoaXNfbG93KSB7CisJCW5vbG9ja19yZWdfYmZjbHIocHJpdiwgRUNPTjEsIEVDT04xX1JYRU4pOworCQlwb2xsX3JlYWR5KHByaXYsIEVTVEFULCBFU1RBVF9SWEJVU1ksIDApOworCQlwb2xsX3JlYWR5KHByaXYsIEVDT04xLCBFQ09OMV9UWFJUUywgMCk7CisJCS8qIEVDT04yX1ZSUFMgd2FzIHNldCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKi8KKwkJbm9sb2NrX3JlZ19iZnNldChwcml2LCBFQ09OMiwgRUNPTjJfUFdSU1YpOworCX0gZWxzZSB7CisJCW5vbG9ja19yZWdfYmZjbHIocHJpdiwgRUNPTjIsIEVDT04yX1BXUlNWKTsKKwkJcG9sbF9yZWFkeShwcml2LCBFU1RBVCwgRVNUQVRfQ0xLUkRZLCBFU1RBVF9DTEtSRFkpOworCQkvKiBjYWxsZXIgc2V0cyBFQ09OMV9SWEVOICovCisJfQorCW11dGV4X3VubG9jaygmcHJpdi0+bG9jayk7Cit9CisKIHN0YXRpYyBpbnQgZW5jMjhqNjBfaHdfaW5pdChzdHJ1Y3QgZW5jMjhqNjBfbmV0ICpwcml2KQogewogCXU4IHJlZzsKQEAgLTYxMiw4ICs2NDMsOCBAQAogCXByaXYtPnR4X3JldHJ5X2NvdW50ID0gMDsKIAlwcml2LT5tYXhfcGtfY291bnRlciA9IDA7CiAJcHJpdi0+cnhmaWx0ZXIgPSBSWEZJTFRFUl9OT1JNQUw7Ci0JLyogZW5hYmxlIGFkZHJlc3MgYXV0byBpbmNyZW1lbnQgKi8KLQlub2xvY2tfcmVnYl93cml0ZShwcml2LCBFQ09OMiwgRUNPTjJfQVVUT0lOQyk7CisJLyogZW5hYmxlIGFkZHJlc3MgYXV0byBpbmNyZW1lbnQgYW5kIHZvbHRhZ2UgcmVndWxhdG9yIHBvd2Vyc2F2ZSAqLworCW5vbG9ja19yZWdiX3dyaXRlKHByaXYsIEVDT04yLCBFQ09OMl9BVVRPSU5DIHwgRUNPTjJfVlJQUyk7CiAKIAlub2xvY2tfcnhmaWZvX2luaXQocHJpdiwgUlhTVEFSVF9JTklULCBSWEVORF9JTklUKTsKIAlub2xvY2tfdHhmaWZvX2luaXQocHJpdiwgVFhTVEFSVF9JTklULCBUWEVORF9JTklUKTsKQEAgLTY5MCw3ICs3MjEsNyBAQAogCiBzdGF0aWMgdm9pZCBlbmMyOGo2MF9od19lbmFibGUoc3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdikKIHsKLQkvKiBlbmFibGUgaW50ZXJydXRwcyAqLworCS8qIGVuYWJsZSBpbnRlcnJ1cHRzICovCiAJaWYgKG5ldGlmX21zZ19odyhwcml2KSkKIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXMoKSBlbmFibGluZyBpbnRlcnJ1cHRzLlxuIiwKIAkJCV9fRlVOQ1RJT05fXyk7CkBAIC03MjYsMTUgKzc1NywxMiBAQAogCWludCByZXQgPSAwOwogCiAJaWYgKCFwcml2LT5od19lbmFibGUpIHsKLQkJaWYgKGF1dG9uZWcgPT0gQVVUT05FR19ESVNBQkxFICYmIHNwZWVkID09IFNQRUVEXzEwKSB7CisJCS8qIGxpbmsgaXMgaW4gbG93IHBvd2VyIG1vZGUgbm93OyBkdXBsZXggc2V0dGluZworCQkgKiB3aWxsIHRha2UgZWZmZWN0IG9uIG5leHQgZW5jMjhqNjBfaHdfaW5pdCgpLgorCQkgKi8KKwkJaWYgKGF1dG9uZWcgPT0gQVVUT05FR19ESVNBQkxFICYmIHNwZWVkID09IFNQRUVEXzEwKQogCQkJcHJpdi0+ZnVsbF9kdXBsZXggPSAoZHVwbGV4ID09IERVUExFWF9GVUxMKTsKLQkJCWlmICghZW5jMjhqNjBfaHdfaW5pdChwcml2KSkgewotCQkJCWlmIChuZXRpZl9tc2dfZHJ2KHByaXYpKQotCQkJCQlkZXZfZXJyKCZuZGV2LT5kZXYsCi0JCQkJCQkiaHdfcmVzZXQoKSBmYWlsZWRcbiIpOwotCQkJCXJldCA9IC1FSU5WQUw7Ci0JCQl9Ci0JCX0gZWxzZSB7CisJCWVsc2UgewogCQkJaWYgKG5ldGlmX21zZ19saW5rKHByaXYpKQogCQkJCWRldl93YXJuKCZuZGV2LT5kZXYsCiAJCQkJCSJ1bnN1cHBvcnRlZCBsaW5rIHNldHRpbmdcbiIpOwpAQCAtMTMwNyw3ICsxMzM1LDggQEAKIAkJfQogCQlyZXR1cm4gLUVBRERSTk9UQVZBSUw7CiAJfQotCS8qIFJlc2V0IHRoZSBoYXJkd2FyZSBoZXJlICovCisJLyogUmVzZXQgdGhlIGhhcmR3YXJlIGhlcmUgKGFuZCB0YWtlIGl0IG91dCBvZiBsb3cgcG93ZXIgbW9kZSkgKi8KKwllbmMyOGo2MF9sb3dwb3dlcihwcml2LCBmYWxzZSk7CiAJZW5jMjhqNjBfaHdfZGlzYWJsZShwcml2KTsKIAlpZiAoIWVuYzI4ajYwX2h3X2luaXQocHJpdikpIHsKIAkJaWYgKG5ldGlmX21zZ19pZnVwKHByaXYpKQpAQCAtMTMzNyw2ICsxMzY2LDcgQEAKIAkJcHJpbnRrKEtFUk5fREVCVUcgRFJWX05BTUUgIjogJXMoKSBlbnRlclxuIiwgX19GVU5DVElPTl9fKTsKIAogCWVuYzI4ajYwX2h3X2Rpc2FibGUocHJpdik7CisJZW5jMjhqNjBfbG93cG93ZXIocHJpdiwgdHJ1ZSk7CiAJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwogCiAJcmV0dXJuIDA7CkBAIC0xNTM3LDYgKzE1NjcsOCBAQAogCWRldi0+d2F0Y2hkb2dfdGltZW8gPSBUWF9USU1FT1VUOwogCVNFVF9FVEhUT09MX09QUyhkZXYsICZlbmMyOGo2MF9ldGh0b29sX29wcyk7CiAKKwllbmMyOGo2MF9sb3dwb3dlcihwcml2LCB0cnVlKTsKKwogCXJldCA9IHJlZ2lzdGVyX25ldGRldihkZXYpOwogCWlmIChyZXQpIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9iZShwcml2KSkKQEAgLTE1NTYsNyArMTU4OCw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKK3N0YXRpYyBpbnQgX19kZXZleGl0IGVuYzI4ajYwX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBlbmMyOGo2MF9uZXQgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoJnNwaS0+ZGV2KTsKIApAQCAtMTU3MywxNSArMTYwNSwxNiBAQAogc3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGVuYzI4ajYwX2RyaXZlciA9IHsKIAkuZHJpdmVyID0gewogCQkgICAubmFtZSA9IERSVl9OQU1FLAotCQkgICAuYnVzID0gJnNwaV9idXNfdHlwZSwKIAkJICAgLm93bmVyID0gVEhJU19NT0RVTEUsCi0JCSAgIH0sCisJIH0sCiAJLnByb2JlID0gZW5jMjhqNjBfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKGVuYzI4ajYwX3JlbW92ZSksCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdCBlbmMyOGo2MF9pbml0KHZvaWQpCiB7CisJbXNlYzIwX3RvX2ppZmZpZXMgPSBtc2Vjc190b19qaWZmaWVzKDIwKTsKKwogCXJldHVybiBzcGlfcmVnaXN0ZXJfZHJpdmVyKCZlbmMyOGo2MF9kcml2ZXIpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mZWNfbXBjNTJ4eC5jIGIvZHJpdmVycy9uZXQvZmVjX21wYzUyeHguYwppbmRleCA1ZjljNDJlLi4zMjllZGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9mZWNfbXBjNTJ4eC5jCisrKyBiL2RyaXZlcnMvbmV0L2ZlY19tcGM1Mnh4LmMKQEAgLTc4LDcgKzc4LDcgQEAKIE1PRFVMRV9QQVJNX0RFU0MobWFjLCAic2l4IGhleCBkaWdpdHMsIGllLiAweDEsMHgyLDB4YzAsMHgwMSwweGJhLDB4YmUiKTsKIAogI2RlZmluZSBNUEM1Mnh4X01FU1NBR0VTX0RFRkFVTFQgKCBORVRJRl9NU0dfRFJWIHwgTkVUSUZfTVNHX1BST0JFIHwgXAotCQlORVRJRl9NU0dfTElOSyB8IE5FVElGX01TR19JRkRPV04gfCBORVRJRl9NU0dfSUZET1dOICkKKwkJTkVUSUZfTVNHX0xJTksgfCBORVRJRl9NU0dfSUZET1dOIHwgTkVUSUZfTVNHX0lGVVApCiBzdGF0aWMgaW50IGRlYnVnID0gLTE7CS8qIHRoZSBhYm92ZSBkZWZhdWx0ICovCiBtb2R1bGVfcGFyYW0oZGVidWcsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiZGVidWdnaW5nIG1lc3NhZ2VzIGxldmVsIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mb3JjZWRldGguYyBiL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCmluZGV4IDllY2E5N2YuLjIwZDRmZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCkBAIC0zMjczLDYgKzMyNzMsMjAgQEAKIAlkcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBsaW5rIGNoYW5nZSBub3RpZmljYXRpb24gZG9uZS5cbiIsIGRldi0+bmFtZSk7CiB9CiAKK3N0YXRpYyB2b2lkIG52X21zaV93b3JrYXJvdW5kKHN0cnVjdCBmZV9wcml2ICpucCkKK3sKKworCS8qIE5lZWQgdG8gdG9nZ2xlIHRoZSBtc2kgaXJxIG1hc2sgd2l0aGluIHRoZSBldGhlcm5ldCBkZXZpY2UsCisJICogb3RoZXJ3aXNlLCBmdXR1cmUgaW50ZXJydXB0cyB3aWxsIG5vdCBiZSBkZXRlY3RlZC4KKwkgKi8KKwlpZiAobnAtPm1zaV9mbGFncyAmIE5WX01TSV9FTkFCTEVEKSB7CisJCXU4IF9faW9tZW0gKmJhc2UgPSBucC0+YmFzZTsKKworCQl3cml0ZWwoMCwgYmFzZSArIE52UmVnTVNJSXJxTWFzayk7CisJCXdyaXRlbChOVlJFR19NU0lfVkVDVE9SXzBfRU5BQkxFRCwgYmFzZSArIE52UmVnTVNJSXJxTWFzayk7CisJfQorfQorCiBzdGF0aWMgaXJxcmV0dXJuX3QgbnZfbmljX2lycShpbnQgZm9vLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSAoc3RydWN0IG5ldF9kZXZpY2UgKikgZGF0YTsKQEAgLTMyOTUsNiArMzMwOSw4IEBACiAJCWlmICghKGV2ZW50cyAmIG5wLT5pcnFtYXNrKSkKIAkJCWJyZWFrOwogCisJCW52X21zaV93b3JrYXJvdW5kKG5wKTsKKwogCQlzcGluX2xvY2soJm5wLT5sb2NrKTsKIAkJbnZfdHhfZG9uZShkZXYpOwogCQlzcGluX3VubG9jaygmbnAtPmxvY2spOwpAQCAtMzQxMCw2ICszNDI2LDggQEAKIAkJaWYgKCEoZXZlbnRzICYgbnAtPmlycW1hc2spKQogCQkJYnJlYWs7CiAKKwkJbnZfbXNpX3dvcmthcm91bmQobnApOworCiAJCXNwaW5fbG9jaygmbnAtPmxvY2spOwogCQludl90eF9kb25lX29wdGltaXplZChkZXYsIFRYX1dPUktfUEVSX0xPT1ApOwogCQlzcGluX3VubG9jaygmbnAtPmxvY2spOwpAQCAtMzc1MCw2ICszNzY4LDggQEAKIAlpZiAoIShldmVudHMgJiBOVlJFR19JUlFfVElNRVIpKQogCQlyZXR1cm4gSVJRX1JFVFZBTCgwKTsKIAorCW52X21zaV93b3JrYXJvdW5kKG5wKTsKKwogCXNwaW5fbG9jaygmbnAtPmxvY2spOwogCW5wLT5pbnRyX3Rlc3QgPSAxOwogCXNwaW5fdW5sb2NrKCZucC0+bG9jayk7CkBAIC00MTc0LDEyICs0MTk0LDIzIEBACiAKIAluZXRpZl9jYXJyaWVyX29mZihkZXYpOwogCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwogCQludl9kaXNhYmxlX2lycShkZXYpOwogCQluZXRpZl90eF9sb2NrX2JoKGRldik7Ci0JCXNwaW5fbG9jaygmbnAtPmxvY2spOworCQkvKiB3aXRoIHBsYWluIHNwaW5sb2NrIGxvY2tkZXAgY29tcGxhaW5zICovCisJCXNwaW5fbG9ja19pcnFzYXZlKCZucC0+bG9jaywgZmxhZ3MpOwogCQkvKiBzdG9wIGVuZ2luZXMgKi8KKwkJLyogRklYTUU6CisJCSAqIHRoaXMgY2FuIHRha2Ugc29tZSB0aW1lLCBhbmQgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQKKwkJICogZHVlIHRvIHNwaW5fbG9ja19pcnFzYXZlLCBidXQgbGV0J3MgaG9wZSBubyBkYWVtb24KKwkJICogaXMgZ29pbmcgdG8gY2hhbmdlIHRoZSBzZXR0aW5ncyB2ZXJ5IG9mdGVuLi4uCisJCSAqIFdvcnN0IGNhc2U6CisJCSAqIE5WX1JYU1RPUF9ERUxBWTFNQVggKyBOVl9UWFNUT1BfREVMQVkxTUFYCisJCSAqICsgc29tZSBtaW5vciBkZWxheXMsIHdoaWNoIGlzIHVwIHRvIGEgc2Vjb25kIGFwcHJveGltYXRlbHkKKwkJICovCiAJCW52X3N0b3Bfcnh0eChkZXYpOwotCQlzcGluX3VubG9jaygmbnAtPmxvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZucC0+bG9jaywgZmxhZ3MpOwogCQluZXRpZl90eF91bmxvY2tfYmgoZGV2KTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZzX2VuZXQvbWFjLWZjYy5jIGIvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKaW5kZXggZTM2MzIxMS4uODI2OGIzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKKysrIGIvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKQEAgLTQ2Myw2ICs0NjMsOSBAQAogCWVsc2UKIAkJQzMyKGZjY3AsIGZjY19mcHNtciwgRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKTsKIAorCS8qIFJlc3RvcmUgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBzZXR0aW5ncyAqLworCXNldF9tdWx0aWNhc3RfbGlzdChkZXYpOworCiAJUzMyKGZjY3AsIGZjY19nZm1yLCBGQ0NfR0ZNUl9FTlIgfCBGQ0NfR0ZNUl9FTlQpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMKaW5kZXggZGRlOWM3ZS4uMDBiYzdmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vYmF5Y29tX2VwcC5jCisrKyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2JheWNvbV9lcHAuYwpAQCAtOTU5LDcgKzk1OSw3IEBACiAJdW5zaWduZWQgY2hhciB0bXBbMV07CiAKIAliYy0+d29ya19ydW5uaW5nID0gMDsKLQlmbHVzaF9zY2hlZHVsZWRfd29yaygpOworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmYmMtPnJ1bl93b3JrKTsKIAliYy0+c3RhdCA9IEVQUF9EQ0RCSVQ7CiAJdG1wWzBdID0gMDsKIAlwcC0+b3BzLT5lcHBfd3JpdGVfYWRkcihwcCwgdG1wLCAxLCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2RtYXNjYy5jIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vZG1hc2NjLmMKaW5kZXggMGI5NDgzMy4uZThjZmFkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vZG1hc2NjLmMKKysrIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vZG1hc2NjLmMKQEAgLTEwNzcsOCArMTA3Nyw2IEBACiAKIHN0YXRpYyB2b2lkIHN0YXJ0X3RpbWVyKHN0cnVjdCBzY2NfcHJpdiAqcHJpdiwgaW50IHQsIGludCByMTUpCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQogCW91dGIocHJpdi0+dG1yX21vZGUsIHByaXYtPnRtcl9jdHJsKTsKIAlpZiAodCA9PSAwKSB7CiAJCXRtX2lzcihwcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL0tjb25maWcgYi9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9LY29uZmlnCmluZGV4IDBkM2U3MzguLjcwYTMyNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvS2NvbmZpZwpAQCAtMSw2ICsxLDcgQEAKIGNvbmZpZyBJQk1fTkVXX0VNQUMKIAl0cmlzdGF0ZSAiSUJNIEVNQUMgRXRoZXJuZXQgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIFBQQ19EQ1IgJiYgUFBDX01FUkdFCisJc2VsZWN0IENSQzMyCiAJaGVscAogCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIElCTSBFTUFDIGZhbWlseSBvZiBFdGhlcm5ldCBjb250cm9sbGVycwogCSAgdHlwaWNhbGx5IGZvdW5kIG9uIDR4eCBlbWJlZGRlZCBQb3dlclBDIGNoaXBzLCBidXQgYWxzbyBvbiB0aGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL2NvcmUuYyBiL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL2NvcmUuYwppbmRleCA1ZDIxMDhjLi5iYWJjNzlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvY29yZS5jCkBAIC0xNjM2LDYgKzE2MzYsMTIgQEAKIAkJCWdvdG8gbmV4dDsKIAkJfQogCisJCWlmIChsZW4gPCBFVEhfSExFTikgeworCQkJKytkZXYtPmVzdGF0cy5yeF9kcm9wcGVkX3N0YWNrOworCQkJZW1hY19yZWN5Y2xlX3J4X3NrYihkZXYsIHNsb3QsIGxlbik7CisJCQlnb3RvIG5leHQ7CisJCX0KKwogCQlpZiAobGVuICYmIGxlbiA8IEVNQUNfUlhfQ09QWV9USFJFU0gpIHsKIAkJCXN0cnVjdCBza19idWZmICpjb3B5X3NrYiA9CiAJCQkgICAgYWxsb2Nfc2tiKGxlbiArIEVNQUNfUlhfU0tCX0hFQURST09NICsgMiwgR0ZQX0FUT01JQyk7CkBAIC0yNzE5LDYgKzI3MjUsOCBAQAogCS8qIENsZWFuIHJpbmdzICovCiAJbWVtc2V0KGRldi0+dHhfZGVzYywgMCwgTlVNX1RYX0JVRkYgKiBzaXplb2Yoc3RydWN0IG1hbF9kZXNjcmlwdG9yKSk7CiAJbWVtc2V0KGRldi0+cnhfZGVzYywgMCwgTlVNX1JYX0JVRkYgKiBzaXplb2Yoc3RydWN0IG1hbF9kZXNjcmlwdG9yKSk7CisJbWVtc2V0KGRldi0+dHhfc2tiLCAwLCBOVU1fVFhfQlVGRiAqIHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSk7CisJbWVtc2V0KGRldi0+cnhfc2tiLCAwLCBOVU1fUlhfQlVGRiAqIHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSk7CiAKIAkvKiBBdHRhY2ggdG8gWk1JSSwgaWYgbmVlZGVkICovCiAJaWYgKGVtYWNfaGFzX2ZlYXR1cmUoZGV2LCBFTUFDX0ZUUl9IQVNfWk1JSSkgJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lnYi9pZ2JfbWFpbi5jIGIvZHJpdmVycy9uZXQvaWdiL2lnYl9tYWluLmMKaW5kZXggYWUzOThmMC4uZTc5YTI2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaWdiL2lnYl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvaWdiL2lnYl9tYWluLmMKQEAgLTcxOCw3ICs3MTgsOCBAQAogCWFkYXB0ZXItPmxpbmtfc3BlZWQgPSAwOwogCWFkYXB0ZXItPmxpbmtfZHVwbGV4ID0gMDsKIAotCWlnYl9yZXNldChhZGFwdGVyKTsKKwlpZiAoIXBjaV9jaGFubmVsX29mZmxpbmUoYWRhcHRlci0+cGRldikpCisJCWlnYl9yZXNldChhZGFwdGVyKTsKIAlpZ2JfY2xlYW5fYWxsX3R4X3JpbmdzKGFkYXB0ZXIpOwogCWlnYl9jbGVhbl9hbGxfcnhfcmluZ3MoYWRhcHRlcik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGcuYyBiL2RyaXZlcnMvbmV0L2lwZy5jCmluZGV4IDliMzU4ZjYuLjJjMDNmNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwZy5jCisrKyBiL2RyaXZlcnMvbmV0L2lwZy5jCkBAIC01NzcsMTIgKzU3NywxMiBAQAogCQkvKiBOSUMgdG8gYmUgY29uZmlndXJlZCBpbiBwcm9taXNjdW91cyBtb2RlLiAqLwogCQlyZWNlaXZlbW9kZSA9IElQR19STV9SRUNFSVZFQUxMRlJBTUVTOwogCX0gZWxzZSBpZiAoKGRldi0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkpIHx8Ci0JCSAgIChkZXYtPmZsYWdzICYgSUZGX01VTFRJQ0FTVCAmCisJCSAgICgoZGV2LT5mbGFncyAmIElGRl9NVUxUSUNBU1QpICYmCiAJCSAgICAoZGV2LT5tY19jb3VudCA+IElQR19NVUxUSUNBU1RfSEFTSFRBQkxFX1NJWkUpKSkgewogCQkvKiBOSUMgdG8gYmUgY29uZmlndXJlZCB0byByZWNlaXZlIGFsbCBtdWx0aWNhc3QKIAkJICogZnJhbWVzLiAqLwogCQlyZWNlaXZlbW9kZSB8PSBJUEdfUk1fUkVDRUlWRU1VTFRJQ0FTVDsKLQl9IGVsc2UgaWYgKGRldi0+ZmxhZ3MgJiBJRkZfTVVMVElDQVNUICYgKGRldi0+bWNfY291bnQgPiAwKSkgeworCX0gZWxzZSBpZiAoKGRldi0+ZmxhZ3MgJiBJRkZfTVVMVElDQVNUKSAmJiAoZGV2LT5tY19jb3VudCA+IDApKSB7CiAJCS8qIE5JQyB0byBiZSBjb25maWd1cmVkIHRvIHJlY2VpdmUgc2VsZWN0ZWQKIAkJICogbXVsdGljYXN0IGFkZHJlc3Nlcy4gKi8KIAkJcmVjZWl2ZW1vZGUgfD0gSVBHX1JNX1JFQ0VJVkVNVUxUSUNBU1RIQVNIOwpAQCAtMTI3MSw3ICsxMjcxLDcgQEAKIAogCQkJZnJhbWVsZW4gPSBsZTY0X3RvX2NwdShyeGZkLT5yZnMpICYgSVBHX1JGU19SWEZSQU1FTEVOOwogCi0JCQllbmRmcmFtZUxlbiA9IGZyYW1lbGVuIC0ganVtYm8tPmN1cnJlbnRfc2l6ZTsKKwkJCWVuZGZyYW1lbGVuID0gZnJhbWVsZW4gLSBqdW1iby0+Y3VycmVudF9zaXplOwogCQkJLyoKIAkJCWlmIChmcmFtZWxlbiA+IElQR19SWEZSQUdfU0laRSkKIAkJCQlmcmFtZWxlbj1JUEdfUlhGUkFHX1NJWkU7CkBAIC0xMjc5LDggKzEyNzksOCBAQAogCQkJaWYgKGZyYW1lbGVuID4gSVBHX1JYU1VQUE9SVF9TSVpFKQogCQkJCWRldl9rZnJlZV9za2JfaXJxKGp1bWJvLT5za2IpOwogCQkJZWxzZSB7Ci0JCQkJbWVtY3B5KHNrYl9wdXQoanVtYm8tPnNrYiwgZW5kZnJhbWVMZW4pLAotCQkJCSAgICAgICBza2ItPmRhdGEsIGVuZGZyYW1lTGVuKTsKKwkJCQltZW1jcHkoc2tiX3B1dChqdW1iby0+c2tiLCBlbmRmcmFtZWxlbiksCisJCQkJICAgICAgIHNrYi0+ZGF0YSwgZW5kZnJhbWVsZW4pOwogCiAJCQkJanVtYm8tPnNrYi0+cHJvdG9jb2wgPQogCQkJCSAgICBldGhfdHlwZV90cmFucyhqdW1iby0+c2tiLCBkZXYpOwpAQCAtMTM1MiwxNiArMTM1MiwxNiBAQAogCiAJCXN3aXRjaCAoaXBnX25pY19yeF9jaGVja19mcmFtZV90eXBlKGRldikpIHsKIAkJY2FzZSBGUkFNRV9XSVRIX1NUQVJUX1dJVEhfRU5EOgotCQkJaXBnX25pY19yeF93aXRoX3N0YXJ0X2FuZF9lbmQoZGV2LCB0cCwgcnhmZCwgZW50cnkpOworCQkJaXBnX25pY19yeF93aXRoX3N0YXJ0X2FuZF9lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfV0lUSF9TVEFSVDoKLQkJCWlwZ19uaWNfcnhfd2l0aF9zdGFydChkZXYsIHRwLCByeGZkLCBlbnRyeSk7CisJCQlpcGdfbmljX3J4X3dpdGhfc3RhcnQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfV0lUSF9FTkQ6Ci0JCQlpcGdfbmljX3J4X3dpdGhfZW5kKGRldiwgdHAsIHJ4ZmQsIGVudHJ5KTsKKwkJCWlwZ19uaWNfcnhfd2l0aF9lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfTk9fU1RBUlRfTk9fRU5EOgotCQkJaXBnX25pY19yeF9ub19zdGFydF9ub19lbmQoZGV2LCB0cCwgcnhmZCwgZW50cnkpOworCQkJaXBnX25pY19yeF9ub19zdGFydF9ub19lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0xODA4LDcgKzE4MDgsNyBAQAogCS8qIGluaXRpYWxpemUgSlVNQk8gRnJhbWUgY29udHJvbCB2YXJpYWJsZSAqLwogCXNwLT5qdW1iby5mb3VuZF9zdGFydCA9IDA7CiAJc3AtPmp1bWJvLmN1cnJlbnRfc2l6ZSA9IDA7Ci0Jc3AtPmp1bWJvLnNrYiA9IDA7CisJc3AtPmp1bWJvLnNrYiA9IE5VTEw7CiAJZGV2LT5tdHUgPSBJUEdfVFhGUkFHX1NJWkU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9LY29uZmlnIGIvZHJpdmVycy9uZXQvaXJkYS9LY29uZmlnCmluZGV4IGNlODE2YmEuLmU2MzE3NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9pcmRhL0tjb25maWcKQEAgLTMyOSw2ICszMjksNyBAQAogY29uZmlnIE1DU19GSVIKIAl0cmlzdGF0ZSAiTW9zQ2hpcCBNQ1M3NzgwIElyREEtVVNCIGRvbmdsZSIKIAlkZXBlbmRzIG9uIElSREEgJiYgVVNCICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBDUkMzMgogCWhlbHAKIAkgIFNheSBZIG9yIE0gaGVyZSBpZiB5b3Ugd2FudCB0byBidWlsZCBzdXBwb3J0IGZvciB0aGUgTW9zQ2hpcAogCSAgTUNTNzc4MCBJckRBLVVTQiBicmlkZ2UgZGV2aWNlIGRyaXZlci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lyZGEvaXJkYS11c2IuYyBiL2RyaXZlcnMvbmV0L2lyZGEvaXJkYS11c2IuYwppbmRleCA2ZjUwZWQ3Li4xOGI0NzFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL2lyZGEtdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvaXJkYS9pcmRhLXVzYi5jCkBAIC0xMDI0LDcgKzEwMjQsNyBAQAogICogICBVcGxvYWQgZmlybXdhcmUgY29kZSB0byBTaWdtYVRlbCA0MjFYIElSREEtVVNCIGRvbmdsZQogICovCiBzdGF0aWMgaW50IHN0aXI0MjF4X2Z3X3VwbG9hZChzdHJ1Y3QgaXJkYV91c2JfY2IgKnNlbGYsCi0JCQkgICAgIHVuc2lnbmVkIGNoYXIgKnBhdGNoLAorCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwYXRjaCwKIAkJCSAgICAgY29uc3QgdW5zaWduZWQgaW50IHBhdGNoX2xlbikKIHsKICAgICAgICAgaW50IHJldCA9IC1FTk9NRU07CkBAIC0xMDczLDExICsxMDczLDExIEBACiAgICovCiBzdGF0aWMgaW50IHN0aXI0MjF4X3BhdGNoX2RldmljZShzdHJ1Y3QgaXJkYV91c2JfY2IgKnNlbGYpCiB7Ci0gICAgICAgIHVuc2lnbmVkIGludCBpOwotICAgICAgICBpbnQgcmV0OwotICAgICAgICBjaGFyIHN0aXI0MjF4X2Z3X25hbWVbMTFdOwotICAgICAgICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwotICAgICAgICB1bnNpZ25lZCBjaGFyICpmd192ZXJzaW9uX3B0cjsgLyogcG9pbnRlciB0byB2ZXJzaW9uIHN0cmluZyAqLworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisJY2hhciBzdGlyNDIxeF9md19uYW1lWzExXTsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmZ3X3ZlcnNpb25fcHRyOyAvKiBwb2ludGVyIHRvIHZlcnNpb24gc3RyaW5nICovCiAJdW5zaWduZWQgbG9uZyBmd192ZXJzaW9uID0gMDsKIAogICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9uc2MtaXJjYy5jIGIvZHJpdmVycy9uZXQvaXJkYS9uc2MtaXJjYy5jCmluZGV4IGE3NzE0ZGEuLmVmZmMxY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvbnNjLWlyY2MuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL25zYy1pcmNjLmMKQEAgLTE1Miw2ICsxNTIsNyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBwbnBfZGV2aWNlX2lkIG5zY19pcmNjX3BucF90YWJsZVtdID0gewogCXsgLmlkID0gIk5TQzYwMDEiLCAuZHJpdmVyX2RhdGEgPSAwIH0sCiAJeyAuaWQgPSAiSUJNMDA3MSIsIC5kcml2ZXJfZGF0YSA9IDAgfSwKKwl7IC5pZCA9ICJIV1BDMjI0IiwgLmRyaXZlcl9kYXRhID0gMCB9LAogCXsgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9weGFmaWNwX2lyLmMgYi9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYwppbmRleCBkNWMyZDI3Li5mNzZiMGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYwpAQCAtMTMsMTYgKzEzLDggQEAKICAqCiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxuZXQvaXJkYS9pcmRhLmg+CkBAIC0zMCwxNyArMjIsOSBAQAogI2luY2x1ZGUgPG5ldC9pcmRhL3dyYXBwZXIuaD4KICNpbmNsdWRlIDxuZXQvaXJkYS9pcmRhX2RldmljZS5oPgogCi0jaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgotCi0jaWZkZWYgQ09ORklHX01BQ0hfTUFJTlNUT05FCi0jaW5jbHVkZSA8YXNtL2FyY2gvbWFpbnN0b25lLmg+Ci0jZW5kaWYKIAogI2RlZmluZSBJclNSX1JYUExfTkVHX0lTX1pFUk8gKDE8PDQpCiAjZGVmaW5lIElyU1JfUlhQTF9QT1NfSVNfWkVSTyAweDAKQEAgLTE2MywxMCArMTQ3LDYgQEAKIAkJCS8qIHNldCBib2FyZCB0cmFuc2NlaXZlciB0byBTSVIgbW9kZSAqLwogCQkJc2ktPnBkYXRhLT50cmFuc2NlaXZlcl9tb2RlKHNpLT5kZXYsIElSX1NJUk1PREUpOwogCi0JCQkvKiBjb25maWd1cmUgR1BJTzQ2LzQ3ICovCi0JCQlweGFfZ3Bpb19tb2RlKEdQSU80Nl9TVFJYRF9NRCk7Ci0JCQlweGFfZ3Bpb19tb2RlKEdQSU80N19TVFRYRF9NRCk7Ci0KIAkJCS8qIGVuYWJsZSB0aGUgU1RVQVJUIGNsb2NrICovCiAJCQlweGFfaXJkYV9lbmFibGVfc2lyY2xrKHNpKTsKIAkJfQpAQCAtMjAxLDEwICsxODEsNiBAQAogCQkvKiBzZXQgYm9hcmQgdHJhbnNjZWl2ZXIgdG8gRklSIG1vZGUgKi8KIAkJc2ktPnBkYXRhLT50cmFuc2NlaXZlcl9tb2RlKHNpLT5kZXYsIElSX0ZJUk1PREUpOwogCi0JCS8qIGNvbmZpZ3VyZSBHUElPNDYvNDcgKi8KLQkJcHhhX2dwaW9fbW9kZShHUElPNDZfSUNQUlhEX01EKTsKLQkJcHhhX2dwaW9fbW9kZShHUElPNDdfSUNQVFhEX01EKTsKLQogCQkvKiBlbmFibGUgdGhlIEZJQ1AgY2xvY2sgKi8KIAkJcHhhX2lyZGFfZW5hYmxlX2ZpcmNsayhzaSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lyZGEvdmlhLWlyY2MuYyBiL2RyaXZlcnMvbmV0L2lyZGEvdmlhLWlyY2MuYwppbmRleCA1OGUxMjg3Li4wNGFkMzU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL3ZpYS1pcmNjLmMKKysrIGIvZHJpdmVycy9uZXQvaXJkYS92aWEtaXJjYy5jCkBAIC0xNTQ2LDYgKzE1NDYsNyBAQAogCQkJSVJEQV9XQVJOSU5HKCIlcywgdW5hYmxlIHRvIGFsbG9jYXRlIGRtYTI9JWRcbiIsCiAJCQkJICAgICBkcml2ZXJfbmFtZSwgc2VsZi0+aW8uZG1hMik7CiAJCQlmcmVlX2lycShzZWxmLT5pby5pcnEsIHNlbGYpOworCQkJZnJlZV9kbWEoc2VsZi0+aW8uZG1hKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtMTYwNiw2ICsxNjA3LDggQEAKIAlFbkFsbEludChpb2Jhc2UsIE9GRik7CiAJZnJlZV9pcnEoc2VsZi0+aW8uaXJxLCBkZXYpOwogCWZyZWVfZG1hKHNlbGYtPmlvLmRtYSk7CisJaWYgKHNlbGYtPmlvLmRtYTIgIT0gc2VsZi0+aW8uZG1hKQorCQlmcmVlX2RtYShzZWxmLT5pby5kbWEyKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfODI1OTguYyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlXzgyNTk4LmMKaW5kZXggNjMyMWIwNS4uMmYzOGU4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfODI1OTguYworKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV84MjU5OC5jCkBAIC01OCw4ICs1OCw4IEBACiAKIHN0YXRpYyBzMzIgaXhnYmVfZ2V0X2ludmFyaWFudHNfODI1OTgoc3RydWN0IGl4Z2JlX2h3ICpodykKIHsKLQlody0+bWFjLm51bV9yeF9xdWV1ZXMgPSBJWEdCRV84MjU5OF9NQVhfVFhfUVVFVUVTOwotCWh3LT5tYWMubnVtX3R4X3F1ZXVlcyA9IElYR0JFXzgyNTk4X01BWF9SWF9RVUVVRVM7CisJaHctPm1hYy5udW1fcnhfcXVldWVzID0gSVhHQkVfODI1OThfTUFYX1JYX1FVRVVFUzsKKwlody0+bWFjLm51bV90eF9xdWV1ZXMgPSBJWEdCRV84MjU5OF9NQVhfVFhfUVVFVUVTOwogCWh3LT5tYWMubnVtX3J4X2FkZHJzID0gSVhHQkVfODI1OThfUkFSX0VOVFJJRVM7CiAKIAkvKiBQSFkgb3BzIGFyZSBmaWxsZWQgaW4gYnkgZGVmYXVsdCBwcm9wZXJseSBmb3IgRmliZXIgb25seSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfbWFpbi5jCmluZGV4IDdiODU5MjIuLjhmMDQ2MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9tYWluLmMKQEAgLTE5NjksNyArMTk2OSw4IEBACiAJbmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTsKIAluZXRpZl9zdG9wX3F1ZXVlKG5ldGRldik7CiAKLQlpeGdiZV9yZXNldChhZGFwdGVyKTsKKwlpZiAoIXBjaV9jaGFubmVsX29mZmxpbmUoYWRhcHRlci0+cGRldikpCisJCWl4Z2JlX3Jlc2V0KGFkYXB0ZXIpOwogCWl4Z2JlX2NsZWFuX2FsbF90eF9yaW5ncyhhZGFwdGVyKTsKIAlpeGdiZV9jbGVhbl9hbGxfcnhfcmluZ3MoYWRhcHRlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY2IuYyBiL2RyaXZlcnMvbmV0L21hY2IuYwppbmRleCA5MmRjY2Q0Li4wYTU3NDVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNiLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjYi5jCkBAIC0xMjc3LDggKzEyNzcsNDUgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBtYWNiX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOworCisJbmV0aWZfZGV2aWNlX2RldGFjaChuZXRkZXYpOworCisjaWZuZGVmIENPTkZJR19BUkNIX0FUOTEKKwljbGtfZGlzYWJsZShicC0+aGNsayk7CisjZW5kaWYKKwljbGtfZGlzYWJsZShicC0+cGNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtYWNiX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOworCisJY2xrX2VuYWJsZShicC0+cGNsayk7CisjaWZuZGVmIENPTkZJR19BUkNIX0FUOTEKKwljbGtfZW5hYmxlKGJwLT5oY2xrKTsKKyNlbmRpZgorCisJbmV0aWZfZGV2aWNlX2F0dGFjaChuZXRkZXYpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBtYWNiX3N1c3BlbmQJTlVMTAorI2RlZmluZSBtYWNiX3Jlc3VtZQlOVUxMCisjZW5kaWYKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbWFjYl9kcml2ZXIgPSB7CiAJLnJlbW92ZQkJPSBfX2V4aXRfcChtYWNiX3JlbW92ZSksCisJLnN1c3BlbmQJPSBtYWNiX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBtYWNiX3Jlc3VtZSwKIAkuZHJpdmVyCQk9IHsKIAkJLm5hbWUJCT0gIm1hY2IiLAogCQkub3duZXIJPSBUSElTX01PRFVMRSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvZncuYyBiL2RyaXZlcnMvbmV0L21seDQvZncuYwppbmRleCBkODJmMjc1Li4yYjUwMDZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tbHg0L2Z3LmMKKysrIGIvZHJpdmVycy9uZXQvbWx4NC9mdy5jCkBAIC0xMDEsNiArMTAxLDM0IEBACiAJCQltbHg0X2RiZyhkZXYsICIgICAgJXNcbiIsIGZuYW1lW2ldKTsKIH0KIAoraW50IG1seDRfTU9EX1NUQVRfQ0ZHKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgKmNmZykKK3sKKwlzdHJ1Y3QgbWx4NF9jbWRfbWFpbGJveCAqbWFpbGJveDsKKwl1MzIgKmluYm94OworCWludCBlcnIgPSAwOworCisjZGVmaW5lIE1PRF9TVEFUX0NGR19JTl9TSVpFCQkweDEwMAorCisjZGVmaW5lIE1PRF9TVEFUX0NGR19QR19TWl9NX09GRlNFVAkweDAwMgorI2RlZmluZSBNT0RfU1RBVF9DRkdfUEdfU1pfT0ZGU0VUCTB4MDAzCisKKwltYWlsYm94ID0gbWx4NF9hbGxvY19jbWRfbWFpbGJveChkZXYpOworCWlmIChJU19FUlIobWFpbGJveCkpCisJCXJldHVybiBQVFJfRVJSKG1haWxib3gpOworCWluYm94ID0gbWFpbGJveC0+YnVmOworCisJbWVtc2V0KGluYm94LCAwLCBNT0RfU1RBVF9DRkdfSU5fU0laRSk7CisKKwlNTFg0X1BVVChpbmJveCwgY2ZnLT5sb2dfcGdfc3osIE1PRF9TVEFUX0NGR19QR19TWl9PRkZTRVQpOworCU1MWDRfUFVUKGluYm94LCBjZmctPmxvZ19wZ19zel9tLCBNT0RfU1RBVF9DRkdfUEdfU1pfTV9PRkZTRVQpOworCisJZXJyID0gbWx4NF9jbWQoZGV2LCBtYWlsYm94LT5kbWEsIDAsIDAsIE1MWDRfQ01EX01PRF9TVEFUX0NGRywKKwkJCU1MWDRfQ01EX1RJTUVfQ0xBU1NfQSk7CisKKwltbHg0X2ZyZWVfY21kX21haWxib3goZGV2LCBtYWlsYm94KTsKKwlyZXR1cm4gZXJyOworfQorCiBpbnQgbWx4NF9RVUVSWV9ERVZfQ0FQKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9kZXZfY2FwICpkZXZfY2FwKQogewogCXN0cnVjdCBtbHg0X2NtZF9tYWlsYm94ICptYWlsYm94OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9mdy5oIGIvZHJpdmVycy9uZXQvbWx4NC9mdy5oCmluZGV4IDMwNmNiOWIuLmEwZTA0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvZncuaAorKysgYi9kcml2ZXJzL25ldC9tbHg0L2Z3LmgKQEAgLTM4LDYgKzM4LDExIEBACiAjaW5jbHVkZSAibWx4NC5oIgogI2luY2x1ZGUgImljbS5oIgogCitzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgeworCXU4IGxvZ19wZ19zejsKKwl1OCBsb2dfcGdfc3pfbTsKK307CisKIHN0cnVjdCBtbHg0X2Rldl9jYXAgewogCWludCBtYXhfc3JxX3N6OwogCWludCBtYXhfcXBfc3o7CkBAIC0xNjIsNSArMTY3LDYgQEAKIGludCBtbHg0X01BUF9JQ01fQVVYKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9pY20gKmljbSk7CiBpbnQgbWx4NF9VTk1BUF9JQ01fQVVYKHN0cnVjdCBtbHg0X2RldiAqZGV2KTsKIGludCBtbHg0X05PUChzdHJ1Y3QgbWx4NF9kZXYgKmRldik7CitpbnQgbWx4NF9NT0RfU1RBVF9DRkcoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X21vZF9zdGF0X2NmZyAqY2ZnKTsKIAogI2VuZGlmIC8qIE1MWDRfRldfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9tYWluLmMgYi9kcml2ZXJzL25ldC9tbHg0L21haW4uYwppbmRleCBhNmFhNDlmLi5kMzczNjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tbHg0L21haW4uYworKysgYi9kcml2ZXJzL25ldC9tbHg0L21haW4uYwpAQCAtNDg1LDYgKzQ4NSw3IEBACiAJc3RydWN0IG1seDRfcHJpdgkgICpwcml2ID0gbWx4NF9wcml2KGRldik7CiAJc3RydWN0IG1seDRfYWRhcHRlcgkgICBhZGFwdGVyOwogCXN0cnVjdCBtbHg0X2Rldl9jYXAJICAgZGV2X2NhcDsKKwlzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgICBtbHg0X2NmZzsKIAlzdHJ1Y3QgbWx4NF9wcm9maWxlCSAgIHByb2ZpbGU7CiAJc3RydWN0IG1seDRfaW5pdF9oY2FfcGFyYW0gaW5pdF9oY2E7CiAJdTY0IGljbV9zaXplOwpAQCAtNTAyLDYgKzUwMywxMiBAQAogCQlyZXR1cm4gZXJyOwogCX0KIAorCW1seDRfY2ZnLmxvZ19wZ19zel9tID0gMTsKKwltbHg0X2NmZy5sb2dfcGdfc3ogPSAwOworCWVyciA9IG1seDRfTU9EX1NUQVRfQ0ZHKGRldiwgJm1seDRfY2ZnKTsKKwlpZiAoZXJyKQorCQltbHg0X3dhcm4oZGV2LCAiRmFpbGVkIHRvIG92ZXJyaWRlIGxvZ19wZ19zeiBwYXJhbWV0ZXJcbiIpOworCiAJZXJyID0gbWx4NF9kZXZfY2FwKGRldiwgJmRldl9jYXApOwogCWlmIChlcnIpIHsKIAkJbWx4NF9lcnIoZGV2LCAiUVVFUllfREVWX0NBUCBjb21tYW5kIGZhaWxlZCwgYWJvcnRpbmcuXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvbWNnLmMgYi9kcml2ZXJzL25ldC9tbHg0L21jZy5jCmluZGV4IDU3ZjdmMWYuLmI0YjU3ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvbWNnLmMKKysrIGIvZHJpdmVycy9uZXQvbWx4NC9tY2cuYwpAQCAtMzgsNiArMzgsOSBAQAogCiAjaW5jbHVkZSAibWx4NC5oIgogCisjZGVmaW5lIE1HTV9RUE5fTUFTSyAgICAgICAweDAwRkZGRkZGCisjZGVmaW5lIE1HTV9CTENLX0xCX0JJVCAgICAzMAorCiBzdHJ1Y3QgbWx4NF9tZ20gewogCV9fYmUzMgkJCW5leHRfZ2lkX2luZGV4OwogCV9fYmUzMgkJCW1lbWJlcnNfY291bnQ7CkBAIC0xNTMsNyArMTU2LDggQEAKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0pCitpbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0sCisJCQkgIGludCBibG9ja19tY2FzdF9sb29wYmFjaykKIHsKIAlzdHJ1Y3QgbWx4NF9wcml2ICpwcml2ID0gbWx4NF9wcml2KGRldik7CiAJc3RydWN0IG1seDRfY21kX21haWxib3ggKm1haWxib3g7CkBAIC0yMDIsMTMgKzIwNiwxOCBAQAogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBtZW1iZXJzX2NvdW50OyArK2kpCi0JCWlmIChtZ20tPnFwW2ldID09IGNwdV90b19iZTMyKHFwLT5xcG4pKSB7CisJCWlmICgoYmUzMl90b19jcHUobWdtLT5xcFtpXSkgJiBNR01fUVBOX01BU0spID09IHFwLT5xcG4pIHsKIAkJCW1seDRfZGJnKGRldiwgIlFQICUwNnggYWxyZWFkeSBhIG1lbWJlciBvZiBNR01cbiIsIHFwLT5xcG4pOwogCQkJZXJyID0gMDsKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQltZ20tPnFwW21lbWJlcnNfY291bnQrK10gPSBjcHVfdG9fYmUzMihxcC0+cXBuKTsKKwlpZiAoYmxvY2tfbWNhc3RfbG9vcGJhY2spCisJCW1nbS0+cXBbbWVtYmVyc19jb3VudCsrXSA9IGNwdV90b19iZTMyKChxcC0+cXBuICYgTUdNX1FQTl9NQVNLKSB8CisJCQkJCQkgICAgICAgKDEgPDwgTUdNX0JMQ0tfTEJfQklUKSk7CisJZWxzZQorCQltZ20tPnFwW21lbWJlcnNfY291bnQrK10gPSBjcHVfdG9fYmUzMihxcC0+cXBuICYgTUdNX1FQTl9NQVNLKTsKKwogCW1nbS0+bWVtYmVyc19jb3VudCAgICAgICA9IGNwdV90b19iZTMyKG1lbWJlcnNfY291bnQpOwogCiAJZXJyID0gbWx4NF9XUklURV9NQ0coZGV2LCBpbmRleCwgbWFpbGJveCk7CkBAIC0yODMsNyArMjkyLDcgQEAKIAogCW1lbWJlcnNfY291bnQgPSBiZTMyX3RvX2NwdShtZ20tPm1lbWJlcnNfY291bnQpOwogCWZvciAobG9jID0gLTEsIGkgPSAwOyBpIDwgbWVtYmVyc19jb3VudDsgKytpKQotCQlpZiAobWdtLT5xcFtpXSA9PSBjcHVfdG9fYmUzMihxcC0+cXBuKSkKKwkJaWYgKChiZTMyX3RvX2NwdShtZ20tPnFwW2ldKSAmIE1HTV9RUE5fTUFTSykgPT0gcXAtPnFwbikKIAkJCWxvYyA9IGk7CiAKIAlpZiAobG9jID09IC0xKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9teXJpMTBnZS9teXJpMTBnZS5jIGIvZHJpdmVycy9uZXQvbXlyaTEwZ2UvbXlyaTEwZ2UuYwppbmRleCBlMGQ3NmM3Li44MjNiYjZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9teXJpMTBnZS9teXJpMTBnZS5jCisrKyBiL2RyaXZlcnMvbmV0L215cmkxMGdlL215cmkxMGdlLmMKQEAgLTUyOSw2ICs1MjksNyBAQAogCXVuc2lnbmVkIGNyYywgcmVyZWFkX2NyYzsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZ3AtPnBkZXYtPmRldjsKKwl1bnNpZ25lZCBjaGFyICpmd19yZWFkYmFjazsKIAlzdHJ1Y3QgbWNwX2dlbl9oZWFkZXIgKmhkcjsKIAlzaXplX3QgaGRyX29mZnNldDsKIAlpbnQgc3RhdHVzOwpAQCAtNTcxLDkgKzU3MiwxNSBAQAogCQltYigpOwogCQlyZWFkYihtZ3AtPnNyYW0pOwogCX0KKwlmd19yZWFkYmFjayA9IHZtYWxsb2MoZnctPnNpemUpOworCWlmICghZndfcmVhZGJhY2spIHsKKwkJc3RhdHVzID0gLUVOT01FTTsKKwkJZ290byBhYm9ydF93aXRoX2Z3OworCX0KIAkvKiBjb3JydXB0aW9uIGNoZWNraW5nIGlzIGdvb2QgZm9yIHBhcml0eSByZWNvdmVyeSBhbmQgYnVnZ3kgY2hpcHNldCAqLwotCW1lbWNweV9mcm9taW8oZnctPmRhdGEsIG1ncC0+c3JhbSArIE1ZUkkxMEdFX0ZXX09GRlNFVCwgZnctPnNpemUpOwotCXJlcmVhZF9jcmMgPSBjcmMzMih+MCwgZnctPmRhdGEsIGZ3LT5zaXplKTsKKwltZW1jcHlfZnJvbWlvKGZ3X3JlYWRiYWNrLCBtZ3AtPnNyYW0gKyBNWVJJMTBHRV9GV19PRkZTRVQsIGZ3LT5zaXplKTsKKwlyZXJlYWRfY3JjID0gY3JjMzIofjAsIGZ3X3JlYWRiYWNrLCBmdy0+c2l6ZSk7CisJdmZyZWUoZndfcmVhZGJhY2spOwogCWlmIChjcmMgIT0gcmVyZWFkX2NyYykgewogCQlkZXZfZXJyKGRldiwgIkNSQyBmYWlsZWQoZnctbGVuPSV1KSwgZ290IDB4JXggKGV4cGVjdCAweCV4KVxuIiwKIAkJCSh1bnNpZ25lZClmdy0+c2l6ZSwgcmVyZWFkX2NyYywgY3JjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljLmggYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pYy5oCmluZGV4IDhjYjI5ZjUuLmRhNGM0ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljLmgKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWMuaApAQCAtNzc2LDcgKzc3Niw2IEBACiAKIAl1OCByZXZpc2lvbl9pZDsKIAl1MTYgYm9hcmRfdHlwZTsKLQl1MTYgbWF4X3BvcnRzOwogCXN0cnVjdCBuZXR4ZW5fYm9hcmRfaW5mbyBib2FyZGNmZzsKIAl1MzIgeGdfbGlua3VwOwogCXUzMiBxZ19saW5rc3VwOwpAQCAtODYzLDYgKzg2Miw3IEBACiAJdW5zaWduZWQgY2hhciBtYWNfYWRkcltFVEhfQUxFTl07CiAJaW50IG10dTsKIAlpbnQgcG9ydG51bTsKKwl1OCBwaHlzaWNhbF9wb3J0OwogCiAJc3RydWN0IHdvcmtfc3RydWN0IHdhdGNoZG9nX3Rhc2s7CiAJc3RydWN0IHRpbWVyX2xpc3Qgd2F0Y2hkb2dfdGltZXI7CkBAIC0xMDM0LDcgKzEwMzQsNiBAQAogCiAvKiBGdW5jdGlvbnMgZnJvbSBuZXR4ZW5fbmljX2lzci5jICovCiB2b2lkIG5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfc3coc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKTsKLXZvaWQgbmV0eGVuX2luaXRpYWxpemVfYWRhcHRlcl9odyhzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpOwogdm9pZCAqbmV0eGVuX2FsbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzaXplX3Qgc3osIGRtYV9hZGRyX3QgKiBwdHIsCiAJCSAgIHN0cnVjdCBwY2lfZGV2ICoqdXNlZF9kZXYpOwogdm9pZCBuZXR4ZW5faW5pdGlhbGl6ZV9hZGFwdGVyX29wcyhzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpOwpAQCAtMTA3NywyMCArMTA3Niw2IEBACiAKICNkZWZpbmUgTlVNX1NVUFBPUlRFRF9CT0FSRFMgQVJSQVlfU0laRShuZXR4ZW5fYm9hcmRzKQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2V0X2JyZF9wb3J0X2J5X3R5cGUodTMyIHR5cGUsIGludCAqcG9ydHMpCi17Ci0JaW50IGksIGZvdW5kID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX1NVUFBPUlRFRF9CT0FSRFM7ICsraSkgewotCQlpZiAobmV0eGVuX2JvYXJkc1tpXS5icmR0eXBlID09IHR5cGUpIHsKLQkJCSpwb3J0cyA9IG5ldHhlbl9ib2FyZHNbaV0ucG9ydHM7Ci0JCQlmb3VuZCA9IDE7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlpZiAoIWZvdW5kKQotCQkqcG9ydHMgPSAwOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0X2JyZF9uYW1lX2J5X3R5cGUodTMyIHR5cGUsIGNoYXIgKm5hbWUpCiB7CiAJaW50IGksIGZvdW5kID0gMDsKQEAgLTExNjksNSArMTE1NCw0IEBACiAKIGV4dGVybiBzdHJ1Y3QgZXRodG9vbF9vcHMgbmV0eGVuX25pY19ldGh0b29sX29wczsKIAotZXh0ZXJuIGludCBwaHlzaWNhbF9wb3J0W107CS8qIHBoeXNpY2FsIHBvcnQgIyBmcm9tIHZpcnR1YWwgcG9ydC4qLwogI2VuZGlmCQkJCS8qIF9fTkVUWEVOX05JQ19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfZXRodG9vbC5jCmluZGV4IDZlOThkODMuLjcyMzQ4N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19ldGh0b29sLmMKQEAgLTM2OSw3ICszNjksNyBAQAogCQlmb3IgKGkgPSAzOyBuaXVfcmVnaXN0ZXJzW21vZGVdLnJlZ1tpIC0gM10gIT0gLTE7IGkrKykgewogCQkJLyogR0I6IHBvcnQgc3BlY2lmaWMgcmVnaXN0ZXJzICovCiAJCQlpZiAobW9kZSA9PSAwICYmIGkgPj0gMTkpCi0JCQkJd2luZG93ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXSAqCisJCQkJd2luZG93ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydCAqCiAJCQkJCU5FVFhFTl9OSUNfUE9SVF9XSU5ET1c7CiAKIAkJCU5FVFhFTl9OSUNfTE9DS0VEX1JFQURfUkVHKG5pdV9yZWdpc3RlcnNbbW9kZV0uCkBAIC01MjcsNyArNTI3LDcgQEAKIHsKIAlzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIgPSBuZXRkZXZfcHJpdihkZXYpOwogCV9fdTMyIHZhbDsKLQlpbnQgcG9ydCA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJaW50IHBvcnQgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCiAJaWYgKGFkYXB0ZXItPmFody5ib2FyZF90eXBlID09IE5FVFhFTl9OSUNfR0JFKSB7CiAJCWlmICgocG9ydCA8IDApIHx8IChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKSkKQEAgLTU3Myw3ICs1NzMsNyBAQAogewogCXN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciA9IG5ldGRldl9wcml2KGRldik7CiAJX191MzIgdmFsOwotCWludCBwb3J0ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcG9ydCA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJLyogcmVhZCBtb2RlICovCiAJaWYgKGFkYXB0ZXItPmFody5ib2FyZF90eXBlID09IE5FVFhFTl9OSUNfR0JFKSB7CiAJCWlmICgocG9ydCA8IDApIHx8IChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2h3LmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19ody5jCmluZGV4IGFmNzM1NjQuLmM0M2QwNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2h3LmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaHcuYwpAQCAtMzk2LDExICszOTYsOCBAQAogCX0KIAlhZGFwdGVyLT5pbnRyX3NjaGVtZSA9IHJlYWRsKAogCQlORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfTklDX0NBUEFCSUxJVElFU19GVykpOwotCXByaW50ayhLRVJOX05PVElDRSAiJXM6IEZXIGNhcGFiaWxpdGllczoweCV4XG4iLCBuZXR4ZW5fbmljX2RyaXZlcl9uYW1lLAotCQkJYWRhcHRlci0+aW50cl9zY2hlbWUpOwogCWFkYXB0ZXItPm1zaV9tb2RlID0gcmVhZGwoCiAJCU5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9OSUNfTVNJX01PREVfRlcpKTsKLQlEUFJJTlRLKElORk8sICJSZWNlaXZlIFBlZyByZWFkeSB0b28uIHN0YXJ0aW5nIHN0dWZmXG4iKTsKIAogCWFkZHIgPSBuZXR4ZW5fYWxsb2MoYWRhcHRlci0+YWh3LnBkZXYsCiAJCQkgICAgc2l6ZW9mKHN0cnVjdCBuZXR4ZW5fcmluZ19jdHgpICsKQEAgLTQwOCw4ICs0MDUsNiBAQAogCQkJICAgIChkbWFfYWRkcl90ICopICYgYWRhcHRlci0+Y3R4X2Rlc2NfcGh5c19hZGRyLAogCQkJICAgICZhZGFwdGVyLT5jdHhfZGVzY19wZGV2KTsKIAotCXByaW50ayhLRVJOX0lORk8gImN0eF9kZXNjX3BoeXNfYWRkcjogMHglbGx4XG4iLAotCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKSBhZGFwdGVyLT5jdHhfZGVzY19waHlzX2FkZHIpOwogCWlmIChhZGRyID09IE5VTEwpIHsKIAkJRFBSSU5USyhFUlIsICJiYWQgcmV0dXJuIGZyb20gcGNpX2FsbG9jX2NvbnNpc3RlbnRcbiIpOwogCQllcnIgPSAtRU5PTUVNOwpAQCAtNDI5LDggKzQyNCw2IEBACiAJCQkgICAgYWRhcHRlci0+bWF4X3R4X2Rlc2NfY291bnQsCiAJCQkgICAgKGRtYV9hZGRyX3QgKikgJiBody0+Y21kX2Rlc2NfcGh5c19hZGRyLAogCQkJICAgICZhZGFwdGVyLT5haHcuY21kX2Rlc2NfcGRldik7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiY21kX2Rlc2NfcGh5c19hZGRyOiAweCVsbHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGh3LT5jbWRfZGVzY19waHlzX2FkZHIpOwogCiAJaWYgKGFkZHIgPT0gTlVMTCkgewogCQlEUFJJTlRLKEVSUiwgImJhZCByZXR1cm4gZnJvbSBwY2lfYWxsb2NfY29uc2lzdGVudFxuIik7CkBAIC0xMDMyLDE1ICsxMDI1LDE1IEBACiBpbnQgbmV0eGVuX25pY19zZXRfbXR1X2diKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciwgaW50IG5ld19tdHUpCiB7CiAJbmV0eGVuX25pY193cml0ZV93MChhZGFwdGVyLAotCQkJTkVUWEVOX05JVV9HQl9NQVhfRlJBTUVfU0laRSgKLQkJCQlwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dKSwgbmV3X210dSk7CisJCU5FVFhFTl9OSVVfR0JfTUFYX0ZSQU1FX1NJWkUoYWRhcHRlci0+cGh5c2ljYWxfcG9ydCksCisJCW5ld19tdHUpOwogCXJldHVybiAwOwogfQogCiBpbnQgbmV0eGVuX25pY19zZXRfbXR1X3hnYihzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBuZXdfbXR1KQogewogCW5ld19tdHUgKz0gTkVUWEVOX05JVV9IRFJTSVpFICsgTkVUWEVOX05JVV9UTFJTSVpFOwotCWlmIChwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dID09IDApCisJaWYgKGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQgPT0gMCkKIAkJbmV0eGVuX25pY193cml0ZV93MChhZGFwdGVyLCBORVRYRU5fTklVX1hHRV9NQVhfRlJBTUVfU0laRSwKIAkJCQluZXdfbXR1KTsKIAllbHNlCkBAIC0xMDUxLDcgKzEwNDQsNyBAQAogCiB2b2lkIG5ldHhlbl9uaWNfaW5pdF9uaXVfZ2Ioc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKQogewotCW5ldHhlbl9uaXVfZ2JlX2luaXRfcG9ydChhZGFwdGVyLCBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dKTsKKwluZXR4ZW5fbml1X2diZV9pbml0X3BvcnQoYWRhcHRlciwgYWRhcHRlci0+cGh5c2ljYWxfcG9ydCk7CiB9CiAKIHZvaWQKQEAgLTExMjcsNyArMTEyMCw2IEBACiAKIHZvaWQgbmV0eGVuX25pY19mbGFzaF9wcmludChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpCiB7Ci0JaW50IHZhbGlkID0gMTsKIAl1MzIgZndfbWFqb3IgPSAwOwogCXUzMiBmd19taW5vciA9IDA7CiAJdTMyIGZ3X2J1aWxkID0gMDsKQEAgLTExMzcsNzAgKzExMjksNjIgQEAKIAlfX2xlMzIgKnB0cjMyOwogCiAJc3RydWN0IG5ldHhlbl9ib2FyZF9pbmZvICpib2FyZF9pbmZvID0gJihhZGFwdGVyLT5haHcuYm9hcmRjZmcpOwotCWlmIChib2FyZF9pbmZvLT5tYWdpYyAhPSBORVRYRU5fQkRJTkZPX01BR0lDKSB7Ci0JCXByaW50awotCQkgICAgKCJOZXRYZW4gVW5rbm93biBib2FyZCBjb25maWcsIFJlYWQgMHgleCBleHBlY3RlZCBhcyAweCV4XG4iLAotCQkgICAgIGJvYXJkX2luZm8tPm1hZ2ljLCBORVRYRU5fQkRJTkZPX01BR0lDKTsKLQkJdmFsaWQgPSAwOwotCX0KLQlpZiAoYm9hcmRfaW5mby0+aGVhZGVyX3ZlcnNpb24gIT0gTkVUWEVOX0JESU5GT19WRVJTSU9OKSB7Ci0JCXByaW50aygiTmV0WGVuIFVua25vd24gYm9hcmQgY29uZmlnIHZlcnNpb24uIgotCQkgICAgICAgIiBSZWFkICV4LCBleHBlY3RlZCAleFxuIiwKLQkJICAgICAgIGJvYXJkX2luZm8tPmhlYWRlcl92ZXJzaW9uLCBORVRYRU5fQkRJTkZPX1ZFUlNJT04pOwotCQl2YWxpZCA9IDA7Ci0JfQotCWlmICh2YWxpZCkgewotCQlwdHIzMiA9ICh1MzIgKikmc2VyaWFsX251bTsKLQkJYWRkciA9IE5FVFhFTl9VU0VSX1NUQVJUICsKLQkJICAgICAgIG9mZnNldG9mKHN0cnVjdCBuZXR4ZW5fbmV3X3VzZXJfaW5mbywgc2VyaWFsX251bSk7Ci0JCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJCWlmIChuZXR4ZW5fcm9tX2Zhc3RfcmVhZChhZGFwdGVyLCBhZGRyLCBwdHIzMikgPT0gLTEpIHsKLQkJCQlwcmludGsoIiVzOiBFUlJPUiByZWFkaW5nICVzIGJvYXJkIHVzZXJhcmVhLlxuIiwKLQkJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSwKLQkJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JCQkJcmV0dXJuOwotCQkJfQotCQkJcHRyMzIrKzsKLQkJCWFkZHIgKz0gc2l6ZW9mKHUzMik7Ci0JCX0KIAorCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDA7CisKKwlwdHIzMiA9ICh1MzIgKikmc2VyaWFsX251bTsKKwlhZGRyID0gTkVUWEVOX1VTRVJfU1RBUlQgKworCSAgICAgICBvZmZzZXRvZihzdHJ1Y3QgbmV0eGVuX25ld191c2VyX2luZm8sIHNlcmlhbF9udW0pOworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJaWYgKG5ldHhlbl9yb21fZmFzdF9yZWFkKGFkYXB0ZXIsIGFkZHIsIHB0cjMyKSA9PSAtMSkgeworCQkJcHJpbnRrKCIlczogRVJST1IgcmVhZGluZyAlcyBib2FyZCB1c2VyYXJlYS5cbiIsCisJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSwKKwkJCSAgICAgICBuZXR4ZW5fbmljX2RyaXZlcl9uYW1lKTsKKwkJCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDE7CisJCQlyZXR1cm47CisJCX0KKwkJcHRyMzIrKzsKKwkJYWRkciArPSBzaXplb2YodTMyKTsKKwl9CisKKwlmd19tYWpvciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCisJCQkJCSAgICAgIE5FVFhFTl9GV19WRVJTSU9OX01BSk9SKSk7CisJZndfbWlub3IgPSByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLAorCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NSU5PUikpOworCWZ3X2J1aWxkID0KKwkgICAgcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgTkVUWEVOX0ZXX1ZFUlNJT05fU1VCKSk7CisKKwlpZiAoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7CiAJCWdldF9icmRfbmFtZV9ieV90eXBlKGJvYXJkX2luZm8tPmJvYXJkX3R5cGUsIGJyZF9uYW1lKTsKIAogCQlwcmludGsoIk5ldFhlbiAlcyBCb2FyZCBTL04gJXMgIENoaXAgaWQgMHgleFxuIiwKLQkJICAgICAgIGJyZF9uYW1lLCBzZXJpYWxfbnVtLCBib2FyZF9pbmZvLT5jaGlwX2lkKTsKLQotCQlwcmludGsoIk5ldFhlbiAlcyBCb2FyZCAjJWQsIENoaXAgaWQgMHgleFxuIiwKLQkJICAgICAgIGJvYXJkX2luZm8tPmJvYXJkX3R5cGUgPT0gMHgwYiA/ICJYR0IiIDogIkdCRSIsCi0JCSAgICAgICBib2FyZF9pbmZvLT5ib2FyZF9udW0sIGJvYXJkX2luZm8tPmNoaXBfaWQpOwotCQlmd19tYWpvciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCi0JCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NQUpPUikpOwotCQlmd19taW5vciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCi0JCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NSU5PUikpOwotCQlmd19idWlsZCA9Ci0JCSAgICByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBORVRYRU5fRldfVkVSU0lPTl9TVUIpKTsKLQotCQlwcmludGsoIk5ldFhlbiBGaXJtd2FyZSB2ZXJzaW9uICVkLiVkLiVkXG4iLCBmd19tYWpvciwgZndfbWlub3IsCi0JCSAgICAgICBmd19idWlsZCk7CisJCQkJYnJkX25hbWUsIHNlcmlhbF9udW0sIGJvYXJkX2luZm8tPmNoaXBfaWQpOworCQlwcmludGsoIk5ldFhlbiBGaXJtd2FyZSB2ZXJzaW9uICVkLiVkLiVkXG4iLCBmd19tYWpvciwKKwkJCQlmd19taW5vciwgZndfYnVpbGQpOwogCX0KKwogCWlmIChmd19tYWpvciAhPSBfTkVUWEVOX05JQ19MSU5VWF9NQUpPUikgewotCQlwcmludGsoS0VSTl9FUlIgIlRoZSBtaXNtYXRjaCBpbiBkcml2ZXIgdmVyc2lvbiBhbmQgZmlybXdhcmUgIgotCQkgICAgICAgInZlcnNpb24gbWFqb3IgbnVtYmVyXG4iCi0JCSAgICAgICAiRHJpdmVyIHZlcnNpb24gbWFqb3IgbnVtYmVyID0gJWQgXHQiCi0JCSAgICAgICAiRmlybXdhcmUgdmVyc2lvbiBtYWpvciBudW1iZXIgPSAlZCBcbiIsCi0JCSAgICAgICBfTkVUWEVOX05JQ19MSU5VWF9NQUpPUiwgZndfbWFqb3IpOwogCQlhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2ggPSAxOwogCX0KIAlpZiAoZndfbWlub3IgIT0gX05FVFhFTl9OSUNfTElOVVhfTUlOT1IgJiYKIAkJCWZ3X21pbm9yICE9IChfTkVUWEVOX05JQ19MSU5VWF9NSU5PUiArIDEpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiVGhlIG1pc21hdGNoIGluIGRyaXZlciB2ZXJzaW9uIGFuZCBmaXJtd2FyZSAiCi0JCSAgICAgICAidmVyc2lvbiBtaW5vciBudW1iZXJcbiIKLQkJICAgICAgICJEcml2ZXIgdmVyc2lvbiBtaW5vciBudW1iZXIgPSAlZCBcdCIKLQkJICAgICAgICJGaXJtd2FyZSB2ZXJzaW9uIG1pbm9yIG51bWJlciA9ICVkIFxuIiwKLQkJICAgICAgIF9ORVRYRU5fTklDX0xJTlVYX01JTk9SLCBmd19taW5vcik7CiAJCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDE7CiAJfQotCWlmIChhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpCi0JCXByaW50ayhLRVJOX0lORk8gIlVzZSB0aGUgZHJpdmVyIHdpdGggdmVyc2lvbiBubyAlZC4lZC54eHhcbiIsCi0JCSAgICAgICBmd19tYWpvciwgZndfbWlub3IpOworCWlmIChhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogZHJpdmVyIGFuZCBmaXJtd2FyZSB2ZXJzaW9uIG1pc21hdGNoXG4iLAorCQkJCWFkYXB0ZXItPm5ldGRldi0+bmFtZSk7CisJCXJldHVybjsKKwl9CisKKwlzd2l0Y2ggKGFkYXB0ZXItPmFody5ib2FyZF90eXBlKSB7CisJY2FzZSBORVRYRU5fTklDX0dCRToKKwkJZGV2X2luZm8oJmFkYXB0ZXItPnBkZXYtPmRldiwgIiVzOiBHYkUgcG9ydCBpbml0aWFsaXplZFxuIiwKKwkJCQlhZGFwdGVyLT5uZXRkZXYtPm5hbWUpOworCQlicmVhazsKKwljYXNlIE5FVFhFTl9OSUNfWEdCRToKKwkJZGV2X2luZm8oJmFkYXB0ZXItPnBkZXYtPmRldiwgIiVzOiBYR2JFIHBvcnQgaW5pdGlhbGl6ZWRcbiIsCisJCQkJYWRhcHRlci0+bmV0ZGV2LT5uYW1lKTsKKwkJYnJlYWs7CisJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19pbml0LmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19pbml0LmMKaW5kZXggNDVmYTMzZS4uNzBkMWIyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaW5pdC5jCisrKyBiL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2luaXQuYwpAQCAtMjAzLDIxICsyMDMsNiBAQAogCX0KIH0KIAotdm9pZCBuZXR4ZW5faW5pdGlhbGl6ZV9hZGFwdGVyX2h3KHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKLXsKLQlpbnQgcG9ydHMgPSAwOwotCXN0cnVjdCBuZXR4ZW5fYm9hcmRfaW5mbyAqYm9hcmRfaW5mbyA9ICYoYWRhcHRlci0+YWh3LmJvYXJkY2ZnKTsKLQotCWlmIChuZXR4ZW5fbmljX2dldF9ib2FyZF9pbmZvKGFkYXB0ZXIpICE9IDApCi0JCXByaW50aygiJXM6IEVycm9yIGdldHRpbmcgYm9hcmQgY29uZmlnIGluZm8uXG4iLAotCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JZ2V0X2JyZF9wb3J0X2J5X3R5cGUoYm9hcmRfaW5mby0+Ym9hcmRfdHlwZSwgJnBvcnRzKTsKLQlpZiAocG9ydHMgPT0gMCkKLQkJcHJpbnRrKEtFUk5fRVJSICIlczogVW5rbm93biBib2FyZCB0eXBlXG4iLAotCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JYWRhcHRlci0+YWh3Lm1heF9wb3J0cyA9IHBvcnRzOwotfQotCiB2b2lkIG5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfb3BzKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKIAlzd2l0Y2ggKGFkYXB0ZXItPmFody5ib2FyZF90eXBlKSB7CkBAIC03NjUsMTggKzc1MCwxMyBAQAogCiBpbnQgbmV0eGVuX3Bpbml0X2Zyb21fcm9tKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciwgaW50IHZlcmJvc2UpCiB7Ci0JaW50IGFkZHIsIHZhbCwgc3RhdHVzOworCWludCBhZGRyLCB2YWw7CiAJaW50IG4sIGk7CiAJaW50IGluaXRfZGVsYXkgPSAwOwogCXN0cnVjdCBjcmJfYWRkcl9wYWlyICpidWY7CiAJdTMyIG9mZjsKIAogCS8qIHJlc2V0YWxsICovCi0Jc3RhdHVzID0gbmV0eGVuX25pY19nZXRfYm9hcmRfaW5mbyhhZGFwdGVyKTsKLQlpZiAoc3RhdHVzKQotCQlwcmludGsoIiVzOiBuZXR4ZW5fcGluaXRfZnJvbV9yb206IEVycm9yIGdldHRpbmcgYm9hcmQgaW5mb1xuIiwKLQkJICAgICAgIG5ldHhlbl9uaWNfZHJpdmVyX25hbWUpOwotCiAJbmV0eGVuX2NyYl93cml0ZWxpdF9hZGFwdGVyKGFkYXB0ZXIsIE5FVFhFTl9ST01VU0JfR0xCX1NXX1JFU0VULAogCQkJCSAgICBORVRYRU5fUk9NQlVTX1JFU0VUKTsKIApAQCAtODYwLDEwICs4NDAsMTAgQEAKIAkJCQluZXR4ZW5fbmljX3BjaV9jaGFuZ2VfY3Jid2luZG93KGFkYXB0ZXIsIDEpOwogCQkJfQogCQkJaWYgKGluaXRfZGVsYXkgPT0gMSkgewotCQkJCW1zbGVlcCgyMDAwKTsKKwkJCQltc2xlZXAoMTAwMCk7CiAJCQkJaW5pdF9kZWxheSA9IDA7CiAJCQl9Ci0JCQltc2xlZXAoMjApOworCQkJbXNsZWVwKDEpOwogCQl9CiAJCWtmcmVlKGJ1Zik7CiAKQEAgLTkzOCwxMiArOTE4LDI4IEBACiAKIHZvaWQgbmV0eGVuX2ZyZWVfYWRhcHRlcl9vZmZsb2FkKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKKwlpbnQgaTsKKwogCWlmIChhZGFwdGVyLT5kdW1teV9kbWEuYWRkcikgewotCQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0ZXItPmFody5wZGV2LAorCQlpID0gMTAwOworCQlkbyB7CisJCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3JlcXVlc3QoYWRhcHRlcikgPT0gMSkKKwkJCQlicmVhazsKKwkJCW1zbGVlcCg1MCk7CisJCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3BvbGxfcmVzdWx0KGFkYXB0ZXIpID09IDEpCisJCQkJYnJlYWs7CisJCX0gd2hpbGUgKC0taSk7CisKKwkJaWYgKGkpIHsKKwkJCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+YWh3LnBkZXYsCiAJCQkJICAgIE5FVFhFTl9IT1NUX0RVTU1ZX0RNQV9TSVpFLAogCQkJCSAgICBhZGFwdGVyLT5kdW1teV9kbWEuYWRkciwKIAkJCQkgICAgYWRhcHRlci0+ZHVtbXlfZG1hLnBoeXNfYWRkcik7Ci0JCWFkYXB0ZXItPmR1bW15X2RtYS5hZGRyID0gTlVMTDsKKwkJCWFkYXB0ZXItPmR1bW15X2RtYS5hZGRyID0gTlVMTDsKKwkJfSBlbHNlIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCisJCQkJCWFkYXB0ZXItPm5ldGRldi0+bmFtZSk7CisJCX0KIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2lzci5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKaW5kZXggZjQ4NzYxNS4uOTZjZWM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKQEAgLTE0NSw3ICsxNDUsNyBAQAogCiAJLyogdmVyaWZ5IHRoZSBvZmZzZXQgKi8KIAl2YWwgPSByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfWEdfU1RBVEUpKTsKLQl2YWwgPSB2YWwgPj4gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwl2YWwgPSB2YWwgPj4gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAlpZiAodmFsID09IGFkYXB0ZXItPmFody5xZ19saW5rc3VwKQogCQlyZXR1cm47CiAKQEAgLTE5OSw3ICsxOTksNyBAQAogCiAJLyogV0lORE9XID0gMSAqLwogCXZhbCA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9YR19TVEFURSkpOwotCXZhbCA+Pj0gKHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV0gKiA4KTsKKwl2YWwgPj49IChhZGFwdGVyLT5waHlzaWNhbF9wb3J0ICogOCk7CiAJdmFsICY9IDB4ZmY7CiAKIAlpZiAoYWRhcHRlci0+YWh3LnhnX2xpbmt1cCA9PSAxICYmIHZhbCAhPSBYR19MSU5LX1VQKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMKaW5kZXggNzE0NGMyNS4uNjNjZDY3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX21haW4uYwpAQCAtNzAsMTcgKzcwLDE5IEBACiBzdGF0aWMgaXJxcmV0dXJuX3QgbmV0eGVuX2ludHIoaW50IGlycSwgdm9pZCAqZGF0YSk7CiBzdGF0aWMgaXJxcmV0dXJuX3QgbmV0eGVuX21zaV9pbnRyKGludCBpcnEsIHZvaWQgKmRhdGEpOwogCi1pbnQgcGh5c2ljYWxfcG9ydFtdID0gezAsIDEsIDIsIDN9OwotCiAvKiAgUENJIERldmljZSBJRCBUYWJsZSAgKi8KKyNkZWZpbmUgRU5UUlkoZGV2aWNlKSBcCisJe1BDSV9ERVZJQ0UoMHg0MDQwLCAoZGV2aWNlKSksIFwKKwkuY2xhc3MgPSBQQ0lfQ0xBU1NfTkVUV09SS19FVEhFUk5FVCA8PCA4LCAuY2xhc3NfbWFzayA9IH4wfQorCiBzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgbmV0eGVuX3BjaV90YmxbXSBfX2RldmluaXRkYXRhID0gewotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDAxKX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDIpfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAwMyl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDA0KX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDUpfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAyNCl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDI1KX0sCisJRU5UUlkoMHgwMDAxKSwKKwlFTlRSWSgweDAwMDIpLAorCUVOVFJZKDB4MDAwMyksCisJRU5UUlkoMHgwMDA0KSwKKwlFTlRSWSgweDAwMDUpLAorCUVOVFJZKDB4MDAyNCksCisJRU5UUlkoMHgwMDI1KSwKIAl7MCx9CiB9OwogCkBAIC0yODgsMTAgKzI5MCwxMSBAQAogCWludCBwY2lfZnVuY19pZCA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKIAlERUNMQVJFX01BQ19CVUYobWFjKTsKIAotCXByaW50ayhLRVJOX0lORk8gIiVzIFxuIiwgbmV0eGVuX25pY19kcml2ZXJfc3RyaW5nKTsKKwlpZiAocGNpX2Z1bmNfaWQgPT0gMCkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgXG4iLCBuZXR4ZW5fbmljX2RyaXZlcl9zdHJpbmcpOwogCiAJaWYgKHBkZXYtPmNsYXNzICE9IDB4MDIwMDAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiJOZXRYZW4gZnVuY3Rpb24gJWQsIGNsYXNzICV4IHdpbGwgbm90ICIKKwkJcHJpbnRrKEtFUk5fREVCVUcgIk5ldFhlbiBmdW5jdGlvbiAlZCwgY2xhc3MgJXggd2lsbCBub3QgIgogCQkJCSJiZSBlbmFibGVkLlxuIixwY2lfZnVuY19pZCwgcGRldi0+Y2xhc3MpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBAIC00NTAsOCArNDUzLDEyIEBACiAJICovCiAJYWRhcHRlci0+Y3Vycl93aW5kb3cgPSAyNTU7CiAKLQkvKiBpbml0aWFsaXplIHRoZSBhZGFwdGVyICovCi0JbmV0eGVuX2luaXRpYWxpemVfYWRhcHRlcl9odyhhZGFwdGVyKTsKKwlpZiAobmV0eGVuX25pY19nZXRfYm9hcmRfaW5mbyhhZGFwdGVyKSAhPSAwKSB7CisJCXByaW50aygiJXM6IEVycm9yIGdldHRpbmcgYm9hcmQgY29uZmlnIGluZm8uXG4iLAorCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7CisJCWVyciA9IC1FSU87CisJCWdvdG8gZXJyX291dF9pb3VubWFwOworCX0KIAogCS8qCiAJICogIEFkYXB0ZXIgaW4gb3VyIGNhc2UgaXMgcXVhZCBwb3J0IHNvIGluaXRpYWxpemUgaXQgYmVmb3JlCkBAIC01MzAsMTcgKzUzNywxNSBAQAogCW5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfc3coYWRhcHRlcik7CS8qIGluaXRpYWxpemUgdGhlIGJ1ZmZlcnMgaW4gYWRhcHRlciAqLwogCiAJLyogTWV6eiBjYXJkcyBoYXZlIFBDSSBmdW5jdGlvbiAwLDIsMyBlbmFibGVkICovCi0JaWYgKChhZGFwdGVyLT5haHcuYm9hcmRjZmcuYm9hcmRfdHlwZSA9PSBORVRYRU5fQlJEVFlQRV9QMl9TQjMxXzEwR19JTUVaKQotCQkmJiAocGNpX2Z1bmNfaWQgPj0gMikpCisJc3dpdGNoIChhZGFwdGVyLT5haHcuYm9hcmRjZmcuYm9hcmRfdHlwZSkgeworCWNhc2UgTkVUWEVOX0JSRFRZUEVfUDJfU0IzMV8xMEdfSU1FWjoKKwljYXNlIE5FVFhFTl9CUkRUWVBFX1AyX1NCMzFfMTBHX0hNRVo6CisJCWlmIChwY2lfZnVuY19pZCA+PSAyKQogCQkJYWRhcHRlci0+cG9ydG51bSA9IHBjaV9mdW5jX2lkIC0gMjsKLQotI2lmZGVmIENPTkZJR19JQTY0Ci0JaWYoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7Ci0JCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKLQkJdWRlbGF5KDUwMCk7Ci0JCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKIAl9Ci0jZW5kaWYKIAogCWluaXRfdGltZXIoJmFkYXB0ZXItPndhdGNoZG9nX3RpbWVyKTsKIAlhZGFwdGVyLT5haHcueGdfbGlua3VwID0gMDsKQEAgLTYxMywxMSArNjE4LDE4IEBACiAJCQkJZXJyID0gLUVOT0RFVjsKIAkJCQlnb3RvIGVycl9vdXRfZnJlZV9kZXY7CiAJCSAgICB9CisJCX0gZWxzZSB7CisJCQl3cml0ZWwoMCwgTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwKKwkJCQkJCUNSQl9DTURQRUdfU1RBVEUpKTsKKwkJCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKKwkJCW1zbGVlcCgxKTsKKwkJCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOworCQkJbmV0eGVuX3BoYW50b21faW5pdChhZGFwdGVyLCBORVRYRU5fTklDX1BFR19UVU5FKTsKIAkJfQogCiAJCS8qIGNsZWFyIHRoZSByZWdpc3RlciBmb3IgZnV0dXJlIHVubG9hZHMvbG9hZHMgKi8KIAkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIE5FVFhFTl9DQU1fUkFNKDB4MWZjKSkpOwotCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCisJCWRldl9pbmZvKCZwZGV2LT5kZXYsICJjbWRwZWcgc3RhdGU6IDB4JTB4XG4iLAogCQkJcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgQ1JCX0NNRFBFR19TVEFURSkpKTsKIAogCQkvKgpAQCAtNjM5LDkgKzY1MSwxMCBAQAogCS8qCiAJICogU2VlIGlmIHRoZSBmaXJtd2FyZSBnYXZlIHVzIGEgdmlydHVhbC1waHlzaWNhbCBwb3J0IG1hcHBpbmcuCiAJICovCisJYWRhcHRlci0+cGh5c2ljYWxfcG9ydCA9IGFkYXB0ZXItPnBvcnRudW07CiAJaSA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9WMlAoYWRhcHRlci0+cG9ydG51bSkpKTsKIAlpZiAoaSAhPSAweDU1NTU1NTU1KQotCQlwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dID0gaTsKKwkJYWRhcHRlci0+cGh5c2ljYWxfcG9ydCA9IGk7CiAKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwogCW5ldGlmX3N0b3BfcXVldWUobmV0ZGV2KTsKQEAgLTY1NCwyMiArNjY3LDkgQEAKIAkJZ290byBlcnJfb3V0X2ZyZWVfZGV2OwogCX0KIAorCW5ldHhlbl9uaWNfZmxhc2hfcHJpbnQoYWRhcHRlcik7CiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGFkYXB0ZXIpOwogCi0Jc3dpdGNoIChhZGFwdGVyLT5haHcuYm9hcmRfdHlwZSkgewotCQljYXNlIE5FVFhFTl9OSUNfR0JFOgotCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6IFFVQUQgR2JFIGJvYXJkIGluaXRpYWxpemVkXG4iLAotCQkJICAgICAgIG5ldHhlbl9uaWNfZHJpdmVyX25hbWUpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBORVRYRU5fTklDX1hHQkU6Ci0JCQlwcmludGsoS0VSTl9JTkZPICIlczogWEdiRSBib2FyZCBpbml0aWFsaXplZFxuIiwKLQkJCQkJbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JCQlicmVhazsKLQl9Ci0KLQlhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2ggPSAwOwotCiAJcmV0dXJuIDA7CiAKIGVycl9vdXRfZnJlZV9kZXY6CkBAIC03NjAsNTUgKzc2MCw4IEBACiAKIAl2ZnJlZShhZGFwdGVyLT5jbWRfYnVmX2Fycik7CiAKLQlpZiAoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7Ci0JCWlmIChpbml0X2Zpcm13YXJlX2RvbmUpIHsKLQkJCWkgPSAxMDA7Ci0JCQlkbyB7Ci0JCQkJaWYgKGRtYV93YXRjaGRvZ19zaHV0ZG93bl9yZXF1ZXN0KGFkYXB0ZXIpID09IDEpCi0JCQkJCWJyZWFrOwotCQkJCW1zbGVlcCgxMDApOwotCQkJCWlmIChkbWFfd2F0Y2hkb2dfc2h1dGRvd25fcG9sbF9yZXN1bHQoYWRhcHRlcikgPT0gMSkKLQkJCQkJYnJlYWs7Ci0JCQl9IHdoaWxlICgtLWkpOwotCi0JCQlpZiAoaSA9PSAwKQotCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCi0JCQkJCQluZXRkZXYtPm5hbWUpOwotCi0JCQkvKiBjbGVhciB0aGUgcmVnaXN0ZXIgZm9yIGZ1dHVyZSB1bmxvYWRzL2xvYWRzICovCi0JCQl3cml0ZWwoMCwgTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgTkVUWEVOX0NBTV9SQU0oMHgxZmMpKSk7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCi0JCQkJcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgQ1JCX0NNRFBFR19TVEFURSkpKTsKLQotCQkJLyogbGVhdmUgdGhlIGh3IGluIHRoZSBzYW1lIHN0YXRlIGFzIHJlYm9vdCAqLwotCQkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9DTURQRUdfU1RBVEUpKTsKLQkJCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKLQkJCW1zbGVlcCgxKTsKLQkJCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOwotCQkJbmV0eGVuX3BoYW50b21faW5pdChhZGFwdGVyLCBORVRYRU5fTklDX1BFR19UVU5FKTsKLQkJfQotCi0JCS8qIGNsZWFyIHRoZSByZWdpc3RlciBmb3IgZnV0dXJlIHVubG9hZHMvbG9hZHMgKi8KLQkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIE5FVFhFTl9DQU1fUkFNKDB4MWZjKSkpOwotCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCi0JCQlyZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfQ01EUEVHX1NUQVRFKSkpOwotCi0JCWkgPSAxMDA7Ci0JCWRvIHsKLQkJCWlmIChkbWFfd2F0Y2hkb2dfc2h1dGRvd25fcmVxdWVzdChhZGFwdGVyKSA9PSAxKQotCQkJCWJyZWFrOwotCQkJbXNsZWVwKDEwMCk7Ci0JCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3BvbGxfcmVzdWx0KGFkYXB0ZXIpID09IDEpCi0JCQkJYnJlYWs7Ci0JCX0gd2hpbGUgKC0taSk7Ci0KLQkJaWYgKGkpIHsKLQkJCW5ldHhlbl9mcmVlX2FkYXB0ZXJfb2ZmbG9hZChhZGFwdGVyKTsKLQkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCi0JCQkJCW5ldGRldi0+bmFtZSk7Ci0JCX0KLQl9CisJaWYgKGFkYXB0ZXItPnBvcnRudW0gPT0gMCkKKwkJbmV0eGVuX2ZyZWVfYWRhcHRlcl9vZmZsb2FkKGFkYXB0ZXIpOwogCiAJaWYgKGFkYXB0ZXItPmlycSkKIAkJZnJlZV9pcnEoYWRhcHRlci0+aXJxLCBhZGFwdGVyKTsKQEAgLTg0MCwxMyArNzkzLDE1IEBACiAJaXJxX2hhbmRsZXJfdCBoYW5kbGVyOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBJUlFGX1NBTVBMRV9SQU5ET007CiAKKwlpZiAoYWRhcHRlci0+ZHJpdmVyX21pc21hdGNoKQorCQlyZXR1cm4gLUVJTzsKKwogCWlmIChhZGFwdGVyLT5pc191cCAhPSBORVRYRU5fQURBUFRFUl9VUF9NQUdJQykgewogCQllcnIgPSBuZXR4ZW5faW5pdF9maXJtd2FyZShhZGFwdGVyKTsKIAkJaWYgKGVyciAhPSAwKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBpbml0IGZpcm13YXJlXG4iKTsKIAkJCXJldHVybiAtRUlPOwogCQl9Ci0JCW5ldHhlbl9uaWNfZmxhc2hfcHJpbnQoYWRhcHRlcik7CiAKIAkJLyogc2V0dXAgYWxsIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBQaGFudG9tLi4uICovCiAJCS8qIHRoaXMgaW5jbHVkZSB0aGUgZGVzY3JpcHRvcnMgZm9yIHJjdiwgdHgsIGFuZCBzdGF0dXMgKi8KQEAgLTg5NSwxNCArODUwLDEyIEBACiAJaWYgKGFkYXB0ZXItPnNldF9tdHUpCiAJCWFkYXB0ZXItPnNldF9tdHUoYWRhcHRlciwgbmV0ZGV2LT5tdHUpOwogCi0JaWYgKCFhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpCi0JCW1vZF90aW1lcigmYWRhcHRlci0+d2F0Y2hkb2dfdGltZXIsIGppZmZpZXMpOworCW1vZF90aW1lcigmYWRhcHRlci0+d2F0Y2hkb2dfdGltZXIsIGppZmZpZXMpOwogCiAJbmFwaV9lbmFibGUoJmFkYXB0ZXItPm5hcGkpOwogCW5ldHhlbl9uaWNfZW5hYmxlX2ludChhZGFwdGVyKTsKIAotCWlmICghYWRhcHRlci0+ZHJpdmVyX21pc21hdGNoKQotCQluZXRpZl9zdGFydF9xdWV1ZShuZXRkZXYpOworCW5ldGlmX3N0YXJ0X3F1ZXVlKG5ldGRldik7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX25pdS5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKaW5kZXggMWM4NTJhNy4uYTNiYzdjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKQEAgLTk0LDcgKzk0LDcgQEAKIAlsb25nIHRpbWVvdXQgPSAwOwogCWxvbmcgcmVzdWx0ID0gMDsKIAlsb25nIHJlc3RvcmUgPSAwOwotCWxvbmcgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlsb25nIHBoeSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJX191MzIgYWRkcmVzczsKIAlfX3UzMiBjb21tYW5kOwogCV9fdTMyIHN0YXR1czsKQEAgLTE5MCw3ICsxOTAsNyBAQAogCWxvbmcgdGltZW91dCA9IDA7CiAJbG9uZyByZXN1bHQgPSAwOwogCWxvbmcgcmVzdG9yZSA9IDA7Ci0JbG9uZyBwaHkgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCWxvbmcgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAlfX3UzMiBhZGRyZXNzOwogCV9fdTMyIGNvbW1hbmQ7CiAJX191MzIgc3RhdHVzOwpAQCAtNDU2LDcgKzQ1Niw3IEBACiAKIGludCBuZXR4ZW5fbml1X3hnX2luaXRfcG9ydChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBwb3J0KQogewotCXUzMiBwb3J0bnVtID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwl1MzIgcG9ydG51bSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAKIAluZXR4ZW5fY3JiX3dyaXRlbGl0X2FkYXB0ZXIoYWRhcHRlciwKIAkJTkVUWEVOX05JVV9YR0VfQ09ORklHXzErKDB4MTAwMDAqcG9ydG51bSksIDB4MTQ0Nyk7CkBAIC01NzMsNyArNTczLDcgQEAKIHsKIAl1MzIgc3RhdGlvbmhpZ2g7CiAJdTMyIHN0YXRpb25sb3c7Ci0JaW50IHBoeSA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJaW50IHBoeSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJdTggdmFsWzhdOwogCiAJaWYgKGFkZHIgPT0gTlVMTCkKQEAgLTYwNCw3ICs2MDQsNyBAQAogewogCXU4IHRlbXBbNF07CiAJdTMyIHZhbDsKLQlpbnQgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAl1bnNpZ25lZCBjaGFyIG1hY19hZGRyWzZdOwogCWludCBpOwogCURFQ0xBUkVfTUFDX0JVRihtYWMpOwpAQCAtNzI0LDcgKzcyNCw3IEBACiBpbnQgbmV0eGVuX25pdV9kaXNhYmxlX2diZV9wb3J0KHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKIAlfX3UzMiBtYWNfY2ZnMDsKLQl1MzIgcG9ydCA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJdTMyIHBvcnQgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCiAJaWYgKHBvcnQgPiBORVRYRU5fTklVX01BWF9HQkVfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzQwLDcgKzc0MCw3IEBACiBpbnQgbmV0eGVuX25pdV9kaXNhYmxlX3hnX3BvcnQoc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKQogewogCV9fdTMyIG1hY19jZmc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfWEdfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzU3LDcgKzc1Nyw3IEBACiAJCQkJICAgIG5ldHhlbl9uaXVfcHJvbV9tb2RlX3QgbW9kZSkKIHsKIAlfX3UzMiByZWc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTgxNCw3ICs4MTQsNyBAQAogaW50IG5ldHhlbl9uaXVfeGdfbWFjYWRkcl9zZXQoc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyLAogCQkJICAgICAgbmV0eGVuX2V0aGVybmV0X21hY2FkZHJfdCBhZGRyKQogewotCWludCBwaHkgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCWludCBwaHkgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCXU4IHRlbXBbNF07CiAJdTMyIHZhbDsKIApAQCAtODY3LDcgKzg2Nyw3IEBACiBpbnQgbmV0eGVuX25pdV94Z19tYWNhZGRyX2dldChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkgICAgICBuZXR4ZW5fZXRoZXJuZXRfbWFjYWRkcl90ICogYWRkcikKIHsKLQlpbnQgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAl1MzIgc3RhdGlvbmhpZ2g7CiAJdTMyIHN0YXRpb25sb3c7CiAJdTggdmFsWzhdOwpAQCAtODk2LDcgKzg5Niw3IEBACiAJCQkJICAgICAgIG5ldHhlbl9uaXVfcHJvbV9tb2RlX3QgbW9kZSkKIHsKIAlfX3UzMiByZWc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfWEdfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jIGIvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jCmluZGV4IDNiMmE2YzUuLjk5M2Q4N2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Bhc2VtaV9tYWMuYworKysgYi9kcml2ZXJzL25ldC9wYXNlbWlfbWFjLmMKQEAgLTI3Nyw3ICsyNzcsNyBAQAogCSp0Y3BoID0gdGNwX2hkcihza2IpOwogCiAJLyogY2hlY2sgaWYgaXAgaGVhZGVyIGFuZCB0Y3AgaGVhZGVyIGFyZSBjb21wbGV0ZSAqLwotCWlmIChpcGgtPnRvdF9sZW4gPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCisJaWYgKG50b2hzKGlwaC0+dG90X2xlbikgPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCiAJCXJldHVybiAtMTsKIAogCSpoZHJfZmxhZ3MgPSBMUk9fSVBWNCB8IExST19UQ1A7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY21jaWEvYXhuZXRfY3MuYyBiL2RyaXZlcnMvbmV0L3BjbWNpYS9heG5ldF9jcy5jCmluZGV4IGNlOTVjNWQuLjcwZDAxMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BjbWNpYS9heG5ldF9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3BjbWNpYS9heG5ldF9jcy5jCkBAIC01MjUsMTIgKzUyNSwxNCBAQAogICAgIGludCByZXQ7CiAgICAgYXhuZXRfZGV2X3QgKmluZm8gPSBQUklWKGRldik7CiAgICAgc3RydWN0IHBjbWNpYV9kZXZpY2UgKmxpbmsgPSBpbmZvLT5wX2RldjsKKyAgICB1bnNpZ25lZCBpbnQgbmljX2Jhc2UgPSBkZXYtPmJhc2VfYWRkcjsKICAgICAKICAgICBERUJVRygyLCAiYXhuZXRfb3BlbignJXMnKVxuIiwgZGV2LT5uYW1lKTsKIAogICAgIGlmICghcGNtY2lhX2Rldl9wcmVzZW50KGxpbmspKQogCXJldHVybiAtRU5PREVWOwogCisgICAgb3V0Yl9wKDB4RkYsIG5pY19iYXNlICsgRU4wX0lTUik7IC8qIENsZWFyIGJvZ3VzIGludHIuICovCiAgICAgcmV0ID0gcmVxdWVzdF9pcnEoZGV2LT5pcnEsIGVpX2lycV93cmFwcGVyLCBJUlFGX1NIQVJFRCwgImF4bmV0X2NzIiwgZGV2KTsKICAgICBpZiAocmV0KQogCSAgICByZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGNtY2lhL3BjbmV0X2NzLmMgYi9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYwppbmRleCBmZDgxNThhLi4yZDRjNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYworKysgYi9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYwpAQCAtOTY5LDYgKzk2OSw3IEBACiAgICAgaW50IHJldDsKICAgICBwY25ldF9kZXZfdCAqaW5mbyA9IFBSSVYoZGV2KTsKICAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluayA9IGluZm8tPnBfZGV2OworICAgIHVuc2lnbmVkIGludCBuaWNfYmFzZSA9IGRldi0+YmFzZV9hZGRyOwogCiAgICAgREVCVUcoMiwgInBjbmV0X29wZW4oJyVzJylcbiIsIGRldi0+bmFtZSk7CiAKQEAgLTk3Niw2ICs5NzcsOCBAQAogCXJldHVybiAtRU5PREVWOwogCiAgICAgc2V0X21pc2NfcmVnKGRldik7CisKKyAgICBvdXRiX3AoMHhGRiwgbmljX2Jhc2UgKyBFTjBfSVNSKTsgLyogQ2xlYXIgYm9ndXMgaW50ci4gKi8KICAgICByZXQgPSByZXF1ZXN0X2lycShkZXYtPmlycSwgZWlfaXJxX3dyYXBwZXIsIElSUUZfU0hBUkVELCBkZXZfaW5mbywgZGV2KTsKICAgICBpZiAocmV0KQogCSAgICByZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcF9nZW5lcmljLmMKaW5kZXggMWY0Y2EyYi4uODM2MjVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwX2dlbmVyaWMuYworKysgYi9kcml2ZXJzL25ldC9wcHBfZ2VuZXJpYy5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvaWZfYXJwLmg+CiAjaW5jbHVkZSA8bGludXgvaXAuaD4KICNpbmNsdWRlIDxsaW51eC90Y3AuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcndzZW0uaD4KICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KQEAgLTM1Myw2ICszNTQsNyBAQAogICovCiBzdGF0aWMgaW50IHBwcF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyoKIAkgKiBUaGlzIGNvdWxkIChzaG91bGQ/KSBiZSBlbmZvcmNlZCBieSB0aGUgcGVybWlzc2lvbnMgb24gL2Rldi9wcHAuCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBwb2UuYwppbmRleCA1OGEyNmE0Li5mYzZmNGI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHBvZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcG9lLmMKQEAgLTM0MSwxMiArMzQxLDYgQEAKIAlzdHJ1Y3QgcHBwb3hfc29jayAqcmVsYXlfcG87CiAKIAlpZiAoc2stPnNrX3N0YXRlICYgUFBQT1hfQk9VTkQpIHsKLQkJc3RydWN0IHBwcG9lX2hkciAqcGggPSBwcHBvZV9oZHIoc2tiKTsKLQkJaW50IGxlbiA9IG50b2hzKHBoLT5sZW5ndGgpOwotCQlza2JfcHVsbF9yY3N1bShza2IsIHNpemVvZihzdHJ1Y3QgcHBwb2VfaGRyKSk7Ci0JCWlmIChwc2tiX3RyaW1fcmNzdW0oc2tiLCBsZW4pKQotCQkJZ290byBhYm9ydF9rZnJlZTsKLQogCQlwcHBfaW5wdXQoJnBvLT5jaGFuLCBza2IpOwogCX0gZWxzZSBpZiAoc2stPnNrX3N0YXRlICYgUFBQT1hfUkVMQVkpIHsKIAkJcmVsYXlfcG8gPSBnZXRfaXRlbV9ieV9hZGRyKCZwby0+cHBwb2VfcmVsYXkpOwpAQCAtMzU3LDcgKzM1MSw2IEBACiAJCWlmICgoc2tfcHBwb3gocmVsYXlfcG8pLT5za19zdGF0ZSAmIFBQUE9YX0NPTk5FQ1RFRCkgPT0gMCkKIAkJCWdvdG8gYWJvcnRfcHV0OwogCi0JCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBwcHBvZV9oZHIpKTsKIAkJaWYgKCFfX3BwcG9lX3htaXQoc2tfcHBwb3gocmVsYXlfcG8pLCBza2IpKQogCQkJZ290byBhYm9ydF9wdXQ7CiAJfSBlbHNlIHsKQEAgLTM4OCw2ICszODEsNyBAQAogewogCXN0cnVjdCBwcHBvZV9oZHIgKnBoOwogCXN0cnVjdCBwcHBveF9zb2NrICpwbzsKKwlpbnQgbGVuOwogCiAJaWYgKCEoc2tiID0gc2tiX3NoYXJlX2NoZWNrKHNrYiwgR0ZQX0FUT01JQykpKQogCQlnb3RvIG91dDsKQEAgLTM5OSwxMCArMzkzLDIxIEBACiAJCWdvdG8gZHJvcDsKIAogCXBoID0gcHBwb2VfaGRyKHNrYik7CisJbGVuID0gbnRvaHMocGgtPmxlbmd0aCk7CisKKwlza2JfcHVsbF9yY3N1bShza2IsIHNpemVvZigqcGgpKTsKKwlpZiAoc2tiLT5sZW4gPCBsZW4pCisJCWdvdG8gZHJvcDsKIAogCXBvID0gZ2V0X2l0ZW0ocGgtPnNpZCwgZXRoX2hkcihza2IpLT5oX3NvdXJjZSwgZGV2LT5pZmluZGV4KTsKLQlpZiAocG8gIT0gTlVMTCkKLQkJcmV0dXJuIHNrX3JlY2VpdmVfc2tiKHNrX3BwcG94KHBvKSwgc2tiLCAwKTsKKwlpZiAoIXBvKQorCQlnb3RvIGRyb3A7CisKKwlpZiAocHNrYl90cmltX3Jjc3VtKHNrYiwgbGVuKSkKKwkJZ290byBkcm9wOworCisJcmV0dXJuIHNrX3JlY2VpdmVfc2tiKHNrX3BwcG94KHBvKSwgc2tiLCAwKTsKKwogZHJvcDoKIAlrZnJlZV9za2Ioc2tiKTsKIG91dDoKQEAgLTQyNywxMiArNDMyLDEyIEBACiAJaWYgKGRldl9uZXQoZGV2KSAhPSAmaW5pdF9uZXQpCiAJCWdvdG8gYWJvcnQ7CiAKLQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHBwcG9lX2hkcikpKQotCQlnb3RvIGFib3J0OwotCiAJaWYgKCEoc2tiID0gc2tiX3NoYXJlX2NoZWNrKHNrYiwgR0ZQX0FUT01JQykpKQogCQlnb3RvIG91dDsKIAorCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgcHBwb2VfaGRyKSkpCisJCWdvdG8gYWJvcnQ7CisKIAlwaCA9IHBwcG9lX2hkcihza2IpOwogCWlmIChwaC0+Y29kZSAhPSBQQURUX0NPREUpCiAJCWdvdG8gYWJvcnQ7CkBAIC05MzcsMTIgKzk0MiwxMCBAQAogCW0tPm1zZ19uYW1lbGVuID0gMDsKIAogCWlmIChza2IpIHsKLQkJc3RydWN0IHBwcG9lX2hkciAqcGggPSBwcHBvZV9oZHIoc2tiKTsKLQkJY29uc3QgaW50IGxlbiA9IG50b2hzKHBoLT5sZW5ndGgpOwotCi0JCWVycm9yID0gbWVtY3B5X3RvaW92ZWMobS0+bXNnX2lvdiwgKHVuc2lnbmVkIGNoYXIgKikgJnBoLT50YWdbMF0sIGxlbik7CisJCXRvdGFsX2xlbiA9IG1pbl90KHNpemVfdCwgdG90YWxfbGVuLCBza2ItPmxlbik7CisJCWVycm9yID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBtLT5tc2dfaW92LCB0b3RhbF9sZW4pOwogCQlpZiAoZXJyb3IgPT0gMCkKLQkJCWVycm9yID0gbGVuOworCQkJZXJyb3IgPSB0b3RhbF9sZW47CiAJfQogCiAJa2ZyZWVfc2tiKHNrYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHBvbDJ0cC5jIGIvZHJpdmVycy9uZXQvcHBwb2wydHAuYwppbmRleCA3MGNmZGI0Li5mOTI5ODgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHBvbDJ0cC5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcG9sMnRwLmMKQEAgLTc4MywxNCArNzgzLDE4IEBACiAJZXJyID0gMDsKIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShzaywgZmxhZ3MgJiB+TVNHX0RPTlRXQUlULAogCQkJCWZsYWdzICYgTVNHX0RPTlRXQUlULCAmZXJyKTsKLQlpZiAoc2tiKSB7Ci0JCWVyciA9IG1lbWNweV90b2lvdmVjKG1zZy0+bXNnX2lvdiwgKHVuc2lnbmVkIGNoYXIgKikgc2tiLT5kYXRhLAotCQkJCSAgICAgc2tiLT5sZW4pOwotCQlpZiAoZXJyIDwgMCkKLQkJCWdvdG8gZG9fc2tiX2ZyZWU7Ci0JCWVyciA9IHNrYi0+bGVuOwotCX0KLWRvX3NrYl9mcmVlOgorCWlmICghc2tiKQorCQlnb3RvIGVuZDsKKworCWlmIChsZW4gPiBza2ItPmxlbikKKwkJbGVuID0gc2tiLT5sZW47CisJZWxzZSBpZiAobGVuIDwgc2tiLT5sZW4pCisJCW1zZy0+bXNnX2ZsYWdzIHw9IE1TR19UUlVOQzsKKworCWVyciA9IHNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKHNrYiwgMCwgbXNnLT5tc2dfaW92LCBsZW4pOworCWlmIChsaWtlbHkoZXJyID09IDApKQorCQllcnIgPSBsZW47CisKIAlrZnJlZV9za2Ioc2tiKTsKIGVuZDoKIAlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcWxhM3h4eC5jIGIvZHJpdmVycy9uZXQvcWxhM3h4eC5jCmluZGV4IGI3ZjdiMjIuLmJjY2VlNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3FsYTN4eHguYworKysgYi9kcml2ZXJzL25ldC9xbGEzeHh4LmMKQEAgLTM3MDEsNyArMzcwMSw5IEBACiAJCXByaW50ayhLRVJOX0VSUiBQRlgKIAkJCQkiJXM6IERyaXZlciB1cC9kb3duIGN5Y2xlIGZhaWxlZCwgIgogCQkJCSJjbG9zaW5nIGRldmljZVxuIixxZGV2LT5uZGV2LT5uYW1lKTsKKwkJcnRubF9sb2NrKCk7CiAJCWRldl9jbG9zZShxZGV2LT5uZGV2KTsKKwkJcnRubF91bmxvY2soKTsKIAkJcmV0dXJuIC0xOwogCX0KIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3I2MDQwLmMgYi9kcml2ZXJzL25ldC9yNjA0MC5jCmluZGV4IDE2OWVkYzEuLjUwNGE0OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3I2MDQwLmMKKysrIGIvZHJpdmVycy9uZXQvcjYwNDAuYwpAQCAtMjczLDcgKzI3Myw3IEBACiAJZG1hX2FkZHJfdCBtYXBwaW5nID0gZGVzY19kbWE7CiAKIAl3aGlsZSAoc2l6ZS0tID4gMCkgewotCQltYXBwaW5nICs9IHNpemVvZihzaXplb2YoKmRlc2MpKTsKKwkJbWFwcGluZyArPSBzaXplb2YoKmRlc2MpOwogCQlkZXNjLT5uZGVzYyA9IGNwdV90b19sZTMyKG1hcHBpbmcpOwogCQlkZXNjLT52bmRlc2NwID0gZGVzYyArIDE7CiAJCWRlc2MrKzsKQEAgLTczMyw3ICs3MzMsNyBAQAogCX0KIAogCS8qIFRpbWVyIGFjdGl2ZSBhZ2FpbiAqLwotCW1vZF90aW1lcigmbHAtPnRpbWVyLCBqaWZmaWVzICsgcm91bmRfamlmZmllcyhIWikpOworCW1vZF90aW1lcigmbHAtPnRpbWVyLCByb3VuZF9qaWZmaWVzKGppZmZpZXMgKyBIWikpOwogfQogCiAvKiBSZWFkL3NldCBNQUMgYWRkcmVzcyByb3V0aW5lcyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvczJpby5jIGIvZHJpdmVycy9uZXQvczJpby5jCmluZGV4IGI1YzFlNjYuLmFlN2I2OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3MyaW8uYworKysgYi9kcml2ZXJzL25ldC9zMmlvLmMKQEAgLTI2MjUsOSArMjYyNSw3IEBACiAJCQlyeGRwMS0+QnVmZmVyMF9wdHIgPSBwY2lfbWFwX3NpbmdsZQogCQkJICAgIChyaW5nLT5wZGV2LCBza2ItPmRhdGEsIHNpemUgLSBORVRfSVBfQUxJR04sCiAJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDEtPkJ1ZmZlcjBfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAxLT5CdWZmZXIwX3B0ciA9PQotCQkJCURNQV9FUlJPUl9DT0RFKSkKKwkJCWlmKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMS0+QnVmZmVyMF9wdHIpKQogCQkJCWdvdG8gcGNpX21hcF9mYWlsZWQ7CiAKIAkJCXJ4ZHAtPkNvbnRyb2xfMiA9CkBAIC0yNjU3LDYgKzI2NTUsNyBAQAogCQkJc2tiLT5kYXRhID0gKHZvaWQgKikgKHVuc2lnbmVkIGxvbmcpdG1wOwogCQkJc2tiX3Jlc2V0X3RhaWxfcG9pbnRlcihza2IpOwogCisJCQkvKiBBSzogY2hlY2sgaXMgd3JvbmcuIDAgY2FuIGJlIHZhbGlkIGRtYSBhZGRyZXNzICovCiAJCQlpZiAoIShyeGRwMy0+QnVmZmVyMF9wdHIpKQogCQkJCXJ4ZHAzLT5CdWZmZXIwX3B0ciA9CiAJCQkJICAgcGNpX21hcF9zaW5nbGUocmluZy0+cGRldiwgYmEtPmJhXzAsCkBAIC0yNjY1LDggKzI2NjQsNyBAQAogCQkJCXBjaV9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShyaW5nLT5wZGV2LAogCQkJCShkbWFfYWRkcl90KSByeGRwMy0+QnVmZmVyMF9wdHIsCiAJCQkJICAgIEJVRjBfTEVOLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMy0+QnVmZmVyMF9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDMtPkJ1ZmZlcjBfcHRyID09IERNQV9FUlJPUl9DT0RFKSkKKwkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjBfcHRyKSkKIAkJCQlnb3RvIHBjaV9tYXBfZmFpbGVkOwogCiAJCQlyeGRwLT5Db250cm9sXzIgPSBTRVRfQlVGRkVSMF9TSVpFXzMoQlVGMF9MRU4pOwpAQCAtMjY4MSwxOCArMjY3OSwxNyBAQAogCQkJCShyaW5nLT5wZGV2LCBza2ItPmRhdGEsIHJpbmctPm10dSArIDQsCiAJCQkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwogCi0JCQkJaWYoIChyeGRwMy0+QnVmZmVyMl9wdHIgPT0gMCkgfHwKLQkJCQkJKHJ4ZHAzLT5CdWZmZXIyX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpCisJCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMl9wdHIpKQogCQkJCQlnb3RvIHBjaV9tYXBfZmFpbGVkOwogCisJCQkJLyogQUs6IGNoZWNrIGlzIHdyb25nICovCiAJCQkJaWYgKCFyeGRwMy0+QnVmZmVyMV9wdHIpCiAJCQkJCXJ4ZHAzLT5CdWZmZXIxX3B0ciA9CiAJCQkJCQlwY2lfbWFwX3NpbmdsZShyaW5nLT5wZGV2LAogCQkJCQkJYmEtPmJhXzEsIEJVRjFfTEVOLAogCQkJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKIAotCQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjFfcHRyID09IDApIHx8Ci0JCQkJCShyeGRwMy0+QnVmZmVyMV9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKSB7CisJCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMV9wdHIpKSB7CiAJCQkJCXBjaV91bm1hcF9zaW5nbGUKIAkJCQkJCShyaW5nLT5wZGV2LAogCQkJCQkJKGRtYV9hZGRyX3QpKHVuc2lnbmVkIGxvbmcpCkBAIC00MjY0LDE2ICs0MjYxLDE0IEBACiAJCXR4ZHAtPkJ1ZmZlcl9Qb2ludGVyID0gcGNpX21hcF9zaW5nbGUoc3AtPnBkZXYsCiAJCQkJCWZpZm8tPnVmb19pbl9iYW5kX3YsCiAJCQkJCXNpemVvZih1NjQpLCBQQ0lfRE1BX1RPREVWSUNFKTsKLQkJaWYoKHR4ZHAtPkJ1ZmZlcl9Qb2ludGVyID09IDApIHx8Ci0JCQkodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gRE1BX0VSUk9SX0NPREUpKQorCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHR4ZHAtPkJ1ZmZlcl9Qb2ludGVyKSkKIAkJCWdvdG8gcGNpX21hcF9mYWlsZWQ7CiAJCXR4ZHArKzsKIAl9CiAKIAl0eGRwLT5CdWZmZXJfUG9pbnRlciA9IHBjaV9tYXBfc2luZ2xlCiAJICAgIChzcC0+cGRldiwgc2tiLT5kYXRhLCBmcmdfbGVuLCBQQ0lfRE1BX1RPREVWSUNFKTsKLQlpZigodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gMCkgfHwKLQkJKHR4ZHAtPkJ1ZmZlcl9Qb2ludGVyID09IERNQV9FUlJPUl9DT0RFKSkKKwlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHR4ZHAtPkJ1ZmZlcl9Qb2ludGVyKSkKIAkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAogCXR4ZHAtPkhvc3RfQ29udHJvbCA9ICh1bnNpZ25lZCBsb25nKSBza2I7CkBAIC02ODg0LDEwICs2ODc5LDggQEAKIAkJCQlwY2lfbWFwX3NpbmdsZSggc3AtPnBkZXYsICgqc2tiKS0+ZGF0YSwKIAkJCQkJc2l6ZSAtIE5FVF9JUF9BTElHTiwKIAkJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDEtPkJ1ZmZlcjBfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAxLT5CdWZmZXIwX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpIHsKKwkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDEtPkJ1ZmZlcjBfcHRyKSkKIAkJCQlnb3RvIG1lbWFsbG9jX2ZhaWxlZDsKLQkJCX0KIAkJCXJ4ZHAtPkhvc3RfQ29udHJvbCA9ICh1bnNpZ25lZCBsb25nKSAoKnNrYik7CiAJCX0KIAl9IGVsc2UgaWYgKChzcC0+cnhkX21vZGUgPT0gUlhEX01PREVfM0IpICYmIChyeGRwLT5Ib3N0X0NvbnRyb2wgPT0gMCkpIHsKQEAgLTY5MTMsMTUgKzY5MDYsMTIgQEAKIAkJCQlwY2lfbWFwX3NpbmdsZShzcC0+cGRldiwgKCpza2IpLT5kYXRhLAogCQkJCQkgICAgICAgZGV2LT5tdHUgKyA0LAogCQkJCQkgICAgICAgUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjJfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAzLT5CdWZmZXIyX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpIHsKKwkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjJfcHRyKSkKIAkJCQlnb3RvIG1lbWFsbG9jX2ZhaWxlZDsKLQkJCX0KIAkJCXJ4ZHAzLT5CdWZmZXIwX3B0ciA9ICp0ZW1wMCA9CiAJCQkJcGNpX21hcF9zaW5nbGUoIHNwLT5wZGV2LCBiYS0+YmFfMCwgQlVGMF9MRU4sCiAJCQkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMy0+QnVmZmVyMF9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDMtPkJ1ZmZlcjBfcHRyID09IERNQV9FUlJPUl9DT0RFKSkgeworCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMF9wdHIpKSB7CiAJCQkJcGNpX3VubWFwX3NpbmdsZSAoc3AtPnBkZXYsCiAJCQkJCShkbWFfYWRkcl90KXJ4ZHAzLT5CdWZmZXIyX3B0ciwKIAkJCQkJZGV2LT5tdHUgKyA0LCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwpAQCAtNjkzMyw4ICs2OTIzLDcgQEAKIAkJCXJ4ZHAzLT5CdWZmZXIxX3B0ciA9ICp0ZW1wMSA9CiAJCQkJcGNpX21hcF9zaW5nbGUoc3AtPnBkZXYsIGJhLT5iYV8xLCBCVUYxX0xFTiwKIAkJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAzLT5CdWZmZXIxX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMy0+QnVmZmVyMV9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKSB7CisJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIxX3B0cikpIHsKIAkJCQlwY2lfdW5tYXBfc2luZ2xlIChzcC0+cGRldiwKIAkJCQkJKGRtYV9hZGRyX3QpcnhkcDMtPkJ1ZmZlcjBfcHRyLAogCQkJCQlCVUYwX0xFTiwgUENJX0RNQV9GUk9NREVWSUNFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3MyaW8uaCBiL2RyaXZlcnMvbmV0L3MyaW8uaAppbmRleCA0NzA2ZjdmLi4xODI3YjY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zMmlvLmgKKysrIGIvZHJpdmVycy9uZXQvczJpby5oCkBAIC03NSwxMCArNzUsNiBAQAogLyogREVCVUcgbWVzc2FnZSBwcmludC4gKi8KICNkZWZpbmUgREJHX1BSSU5UKGRiZ19sZXZlbCwgYXJncy4uLikgIGlmKCEoZGVidWdfbGV2ZWw8ZGJnX2xldmVsKSkgcHJpbnRrKGFyZ3MpCiAKLSNpZm5kZWYgRE1BX0VSUk9SX0NPREUKLSNkZWZpbmUgRE1BX0VSUk9SX0NPREUgICAgICAgICAgKH4oZG1hX2FkZHJfdCkweDApCi0jZW5kaWYKLQogLyogUHJvdG9jb2wgYXNzaXN0IGZlYXR1cmVzIG9mIHRoZSBOSUMgKi8KICNkZWZpbmUgTDNfQ0tTVU1fT0sgMHhGRkZGCiAjZGVmaW5lIEw0X0NLU1VNX09LIDB4RkZGRgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbi5jIGIvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbi5jCmluZGV4IGQzZjc0OWMuLjc5MGRiODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb24uYworKysgYi9kcml2ZXJzL25ldC9zZmMvZmFsY29uLmMKQEAgLTczMyw4ICs3MzMsMTAgQEAKIAkJCWNvbnRpbnVlOwogCQlicmVhazsKIAl9Ci0JaWYgKHJjKQorCWlmIChyYykgewogCQlFRlhfRVJSKGVmeCwgImZhaWxlZCB0byBmbHVzaCByeCBxdWV1ZSAlZFxuIiwgcnhfcXVldWUtPnF1ZXVlKTsKKwkJZWZ4X3NjaGVkdWxlX3Jlc2V0KGVmeCwgUkVTRVRfVFlQRV9JTlZJU0lCTEUpOworCX0KIAogCS8qIFJlbW92ZSBSWCBkZXNjcmlwdG9yIHJpbmcgZnJvbSBjYXJkICovCiAJRUZYX1pFUk9fT1dPUkQocnhfZGVzY19wdHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2t5Mi5jIGIvZHJpdmVycy9uZXQvc2t5Mi5jCmluZGV4IDNiYjYwNTMuLmM4YTVlZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NreTIuYworKysgYi9kcml2ZXJzL25ldC9za3kyLmMKQEAgLTExOCw2ICsxMTgsNyBAQAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIDB4NDM1MikgfSwgLyogODhFODAzOCAqLwogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIDB4NDM1MykgfSwgLyogODhFODAzOSAqLwogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIDB4NDM1NCkgfSwgLyogODhFODA0MCAqLworCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIDB4NDM1NSkgfSwgLyogODhFODA0MFQgKi8KIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTYpIH0sIC8qIDg4RUMwMzMgKi8KIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTcpIH0sIC8qIDg4RTgwNDIgKi8KIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNUEpIH0sIC8qIDg4RTgwNDggKi8KQEAgLTQ0MDQsNyArNDQwNSw5IEBACiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiJXM6IGNvdWxkIG5vdCB1cDogJWRcbiIsCiAJCQkJICAgICAgIGRldi0+bmFtZSwgZXJyKTsKKwkJCQlydG5sX2xvY2soKTsKIAkJCQlkZXZfY2xvc2UoZGV2KTsKKwkJCQlydG5sX3VubG9jaygpOwogCQkJCWdvdG8gb3V0OwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbWM5MTF4LmMgYi9kcml2ZXJzL25ldC9zbWM5MTF4LmMKaW5kZXggNGUyODAwMi4uZTJlZTkxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTExeC5jCisrKyBiL2RyaXZlcnMvbmV0L3NtYzkxMXguYwpAQCAtMTM2LDcgKzEzNiw2IEBACiAKIAkvKiB3b3JrIHF1ZXVlICovCiAJc3RydWN0IHdvcmtfc3RydWN0IHBoeV9jb25maWd1cmU7Ci0JaW50IHdvcmtfcGVuZGluZzsKIAogCWludCB0eF90aHJvdHRsZTsKIAlzcGlubG9ja190IGxvY2s7CkBAIC05NjAsMTEgKzk1OSwxMSBAQAogCSAqIFdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGlmIHBoeV90eXBlIGlzIHplcm8uCiAJICovCiAJaWYgKGxwLT5waHlfdHlwZSA9PSAwKQotCQkgZ290byBzbWM5MTF4X3BoeV9jb25maWd1cmVfZXhpdF9ub2xvY2s7CisJCXJldHVybjsKIAogCWlmIChzbWM5MTF4X3BoeV9yZXNldChkZXYsIHBoeWFkZHIpKSB7CiAJCXByaW50aygiJXM6IFBIWSByZXNldCB0aW1lZCBvdXRcbiIsIGRldi0+bmFtZSk7Ci0JCWdvdG8gc21jOTExeF9waHlfY29uZmlndXJlX2V4aXRfbm9sb2NrOworCQlyZXR1cm47CiAJfQogCXNwaW5fbG9ja19pcnFzYXZlKCZscC0+bG9jaywgZmxhZ3MpOwogCkBAIC0xMDMzLDggKzEwMzIsNiBAQAogCiBzbWM5MTF4X3BoeV9jb25maWd1cmVfZXhpdDoKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZscC0+bG9jaywgZmxhZ3MpOwotc21jOTExeF9waHlfY29uZmlndXJlX2V4aXRfbm9sb2NrOgotCWxwLT53b3JrX3BlbmRpbmcgPSAwOwogfQogCiAvKgpAQCAtMTM1NiwxMSArMTM1Myw4IEBACiAJICogc21jOTExeF9waHlfY29uZmlndXJlKCkgY2FsbHMgbXNsZWVwKCkgd2hpY2ggY2FsbHMgc2NoZWR1bGVfdGltZW91dCgpCiAJICogd2hpY2ggY2FsbHMgc2NoZWR1bGUoKS4JIEhlbmNlIHdlIHVzZSBhIHdvcmsgcXVldWUuCiAJICovCi0JaWYgKGxwLT5waHlfdHlwZSAhPSAwKSB7Ci0JCWlmIChzY2hlZHVsZV93b3JrKCZscC0+cGh5X2NvbmZpZ3VyZSkpIHsKLQkJCWxwLT53b3JrX3BlbmRpbmcgPSAxOwotCQl9Ci0JfQorCWlmIChscC0+cGh5X3R5cGUgIT0gMCkKKwkJc2NoZWR1bGVfd29yaygmbHAtPnBoeV9jb25maWd1cmUpOwogCiAJLyogV2UgY2FuIGFjY2VwdCBUWCBwYWNrZXRzIGFnYWluICovCiAJZGV2LT50cmFuc19zdGFydCA9IGppZmZpZXM7CkBAIC0xNTMxLDE2ICsxNTI1LDggQEAKIAlpZiAobHAtPnBoeV90eXBlICE9IDApIHsKIAkJLyogV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBubyBjYWxscyB0bwogCQkgKiBzbWM5MTF4X3BoeV9jb25maWd1cmUgYXJlIHBlbmRpbmcuCi0KLQkJICogZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSBjYW5ub3QgYmUgY2FsbGVkIGJlY2F1c2Ugd2UKLQkJICogYXJlIHJ1bm5pbmcgd2l0aCB0aGUgbmV0bGluayBzZW1hcGhvcmUgaGVsZCAoZnJvbQotCQkgKiBkZXZpbmV0X2lvY3RsKCkpIGFuZCB0aGUgcGVuZGluZyB3b3JrIHF1ZXVlCi0JCSAqIGNvbnRhaW5zIGxpbmt3YXRjaF9ldmVudCgpIChzY2hlZHVsZWQgYnkKLQkJICogbmV0aWZfY2Fycmllcl9vZmYoKSBhYm92ZSkuIGxpbmt3YXRjaF9ldmVudCgpIGFsc28KLQkJICogd2FudHMgdGhlIG5ldGxpbmsgc2VtYXBob3JlLgogCQkgKi8KLQkJd2hpbGUgKGxwLT53b3JrX3BlbmRpbmcpCi0JCQlzY2hlZHVsZSgpOworCQljYW5jZWxfd29ya19zeW5jKCZscC0+cGh5X2NvbmZpZ3VyZSk7CiAJCXNtYzkxMXhfcGh5X3Bvd2VyZG93bihkZXYsIGxwLT5taWkucGh5X2lkKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NtYzkxeC5jIGIvZHJpdmVycy9uZXQvc21jOTF4LmMKaW5kZXggYTE4OGUzMy4uZjIwNTFiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTF4LmMKKysrIGIvZHJpdmVycy9uZXQvc21jOTF4LmMKQEAgLTEwMTYsMTUgKzEwMTYsOCBAQAogCiAJLyogV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBubyBjYWxscyB0byBzbWNfcGh5X2NvbmZpZ3VyZSBhcmUKIAkgICBwZW5kaW5nLgotCi0JICAgZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSBjYW5ub3QgYmUgY2FsbGVkIGJlY2F1c2Ugd2UgYXJlCi0JICAgcnVubmluZyB3aXRoIHRoZSBuZXRsaW5rIHNlbWFwaG9yZSBoZWxkIChmcm9tCi0JICAgZGV2aW5ldF9pb2N0bCgpKSBhbmQgdGhlIHBlbmRpbmcgd29yayBxdWV1ZSBjb250YWlucwotCSAgIGxpbmt3YXRjaF9ldmVudCgpIChzY2hlZHVsZWQgYnkgbmV0aWZfY2Fycmllcl9vZmYoKQotCSAgIGFib3ZlKS4gbGlua3dhdGNoX2V2ZW50KCkgYWxzbyB3YW50cyB0aGUgbmV0bGluayBzZW1hcGhvcmUuCiAJKi8KLQl3aGlsZShscC0+d29ya19wZW5kaW5nKQotCQl5aWVsZCgpOworCWNhbmNlbF93b3JrX3N5bmMoJmxwLT5waHlfY29uZmlndXJlKTsKIAogCWJtY3IgPSBzbWNfcGh5X3JlYWQoZGV2LCBwaHksIE1JSV9CTUNSKTsKIAlzbWNfcGh5X3dyaXRlKGRldiwgcGh5LCBNSUlfQk1DUiwgYm1jciB8IEJNQ1JfUERPV04pOwpAQCAtMTE2MSw3ICsxMTU0LDYgQEAKIHNtY19waHlfY29uZmlndXJlX2V4aXQ6CiAJU01DX1NFTEVDVF9CQU5LKGxwLCAyKTsKIAlzcGluX3VubG9ja19pcnEoJmxwLT5sb2NrKTsKLQlscC0+d29ya19wZW5kaW5nID0gMDsKIH0KIAogLyoKQEAgLTEzODksMTEgKzEzODEsOCBAQAogCSAqIHNtY19waHlfY29uZmlndXJlKCkgY2FsbHMgbXNsZWVwKCkgd2hpY2ggY2FsbHMgc2NoZWR1bGVfdGltZW91dCgpCiAJICogd2hpY2ggY2FsbHMgc2NoZWR1bGUoKS4gIEhlbmNlIHdlIHVzZSBhIHdvcmsgcXVldWUuCiAJICovCi0JaWYgKGxwLT5waHlfdHlwZSAhPSAwKSB7Ci0JCWlmIChzY2hlZHVsZV93b3JrKCZscC0+cGh5X2NvbmZpZ3VyZSkpIHsKLQkJCWxwLT53b3JrX3BlbmRpbmcgPSAxOwotCQl9Ci0JfQorCWlmIChscC0+cGh5X3R5cGUgIT0gMCkKKwkJc2NoZWR1bGVfd29yaygmbHAtPnBoeV9jb25maWd1cmUpOwogCiAJLyogV2UgY2FuIGFjY2VwdCBUWCBwYWNrZXRzIGFnYWluICovCiAJZGV2LT50cmFuc19zdGFydCA9IGppZmZpZXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbWM5MXguaCBiL2RyaXZlcnMvbmV0L3NtYzkxeC5oCmluZGV4IDY5ZTk3YTEuLjg2MDY4MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NtYzkxeC5oCisrKyBiL2RyaXZlcnMvbmV0L3NtYzkxeC5oCkBAIC05MywxNCArOTMsMTQgQEAKICNkZWZpbmUgU01DX2luc3coYSwgciwgcCwgbCkgCWluc3cgKCh1bnNpZ25lZCBsb25nICopKChhKSArIChyKSksIHAsIGwpCiAjIGVuZGlmCiAvKiBjaGVjayBpZiB0aGUgbWFjIGluIHJlZyBpcyB2YWxpZCAqLwotI2RlZmluZSBTTUNfR0VUX01BQ19BRERSKGFkZHIpCQkJCQlcCisjZGVmaW5lIFNNQ19HRVRfTUFDX0FERFIobHAsIGFkZHIpCQkJCVwKIAlkbyB7CQkJCQkJCVwKIAkJdW5zaWduZWQgaW50IF9fdjsJCQkJXAotCQlfX3YgPSBTTUNfaW53KGlvYWRkciwgQUREUjBfUkVHKTsJCVwKKwkJX192ID0gU01DX2ludyhpb2FkZHIsIEFERFIwX1JFRyhscCkpOwkJXAogCQlhZGRyWzBdID0gX192OyBhZGRyWzFdID0gX192ID4+IDg7CQlcCi0JCV9fdiA9IFNNQ19pbncoaW9hZGRyLCBBRERSMV9SRUcpOwkJXAorCQlfX3YgPSBTTUNfaW53KGlvYWRkciwgQUREUjFfUkVHKGxwKSk7CQlcCiAJCWFkZHJbMl0gPSBfX3Y7IGFkZHJbM10gPSBfX3YgPj4gODsJCVwKLQkJX192ID0gU01DX2ludyhpb2FkZHIsIEFERFIyX1JFRyk7CQlcCisJCV9fdiA9IFNNQ19pbncoaW9hZGRyLCBBRERSMl9SRUcobHApKTsJCVwKIAkJYWRkcls0XSA9IF9fdjsgYWRkcls1XSA9IF9fdiA+PiA4OwkJXAogCQlpZiAoKih1MzIgKikoJmFkZHJbMF0pID09IDB4RkZGRkZGRkYpIHsJCVwKIAkJCXJhbmRvbV9ldGhlcl9hZGRyKGFkZHIpOwkJXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGMzNTgxNS5jIGIvZHJpdmVycy9uZXQvdGMzNTgxNS5jCmluZGV4IDEwZTRlODUuLmIwN2I4Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RjMzU4MTUuYworKysgYi9kcml2ZXJzL25ldC90YzM1ODE1LmMKQEAgLTEzOTQsNiArMTM5NCw3IEBACiAJdGMzNTgxNV9jaGlwX2luaXQoZGV2KTsKIAlzcGluX3VubG9ja19pcnEoJmxwLT5sb2NrKTsKIAorCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7CiAJLyogc2NoZWR1bGUgYSBsaW5rIHN0YXRlIGNoZWNrICovCiAJcGh5X3N0YXJ0KGxwLT5waHlfZGV2KTsKIApAQCAtMTczNSw3ICsxNzM2LDYgQEAKIAkJCXNrYiA9IGxwLT5yeF9za2JzW2N1cl9iZF0uc2tiOwogCQkJcHJlZmV0Y2goc2tiLT5kYXRhKTsKIAkJCWxwLT5yeF9za2JzW2N1cl9iZF0uc2tiID0gTlVMTDsKLQkJCWxwLT5mYmxfY291bnQtLTsKIAkJCXBjaV91bm1hcF9zaW5nbGUobHAtPnBjaV9kZXYsCiAJCQkJCSBscC0+cnhfc2tic1tjdXJfYmRdLnNrYl9kbWEsCiAJCQkJCSBSWF9CVUZfU0laRSwgUENJX0RNQV9GUk9NREVWSUNFKTsKQEAgLTE3OTEsNiArMTc5MSw3IEBACiAjaWZkZWYgVEMzNTgxNV9VU0VfUEFDS0VEQlVGRkVSCiAJCQl3aGlsZSAobHAtPmZibF9jdXJpZCAhPSBpZCkKICNlbHNlCisJCQlscC0+ZmJsX2NvdW50LS07CiAJCQl3aGlsZSAobHAtPmZibF9jb3VudCA8IFJYX0JVRl9OVU0pCiAjZW5kaWYKIAkJCXsKQEAgLTI0NTMsNiArMjQ1NCw3IEBACiAJCXJldHVybiAwOwogCXBjaV9zZXRfcG93ZXJfc3RhdGUocGRldiwgUENJX0QwKTsKIAl0YzM1ODE1X3Jlc3RhcnQoZGV2KTsKKwluZXRpZl9jYXJyaWVyX29mZihkZXYpOwogCWlmIChscC0+cGh5X2RldikKIAkJcGh5X3N0YXJ0KGxwLT5waHlfZGV2KTsKIAluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZzMuYyBiL2RyaXZlcnMvbmV0L3RnMy5jCmluZGV4IDA3YjNmNzcuLmNjNGJkZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RnMy5jCisrKyBiL2RyaXZlcnMvbmV0L3RnMy5jCkBAIC02NCw4ICs2NCw4IEBACiAKICNkZWZpbmUgRFJWX01PRFVMRV9OQU1FCQkidGczIgogI2RlZmluZSBQRlggRFJWX01PRFVMRV9OQU1FCSI6ICIKLSNkZWZpbmUgRFJWX01PRFVMRV9WRVJTSU9OCSIzLjkyIgotI2RlZmluZSBEUlZfTU9EVUxFX1JFTERBVEUJIk1heSAyLCAyMDA4IgorI2RlZmluZSBEUlZfTU9EVUxFX1ZFUlNJT04JIjMuOTIuMSIKKyNkZWZpbmUgRFJWX01PRFVMRV9SRUxEQVRFCSJKdW5lIDksIDIwMDgiCiAKICNkZWZpbmUgVEczX0RFRl9NQUNfTU9ERQkwCiAjZGVmaW5lIFRHM19ERUZfUlhfTU9ERQkJMApAQCAtMTI5NSw2ICsxMjk1LDIxIEBACiAJCQkJICAgICBHUkNfTENMQ1RSTF9HUElPX09VVFBVVDAgfAogCQkJCSAgICAgR1JDX0xDTENUUkxfR1BJT19PVVRQVVQxKSwKIAkJCQkgICAgMTAwKTsKKwkJfSBlbHNlIGlmICh0cC0+cGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfVElHT04zXzU3NjEpIHsKKwkJCS8qIFRoZSA1NzYxIG5vbi1lIGRldmljZSBzd2FwcyBHUElPIDAgYW5kIEdQSU8gMi4gKi8KKwkJCXUzMiBncmNfbG9jYWxfY3RybCA9IEdSQ19MQ0xDVFJMX0dQSU9fT0UwIHwKKwkJCQkJICAgICBHUkNfTENMQ1RSTF9HUElPX09FMSB8CisJCQkJCSAgICAgR1JDX0xDTENUUkxfR1BJT19PRTIgfAorCQkJCQkgICAgIEdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMCB8CisJCQkJCSAgICAgR1JDX0xDTENUUkxfR1BJT19PVVRQVVQxIHwKKwkJCQkJICAgICB0cC0+Z3JjX2xvY2FsX2N0cmw7CisJCQl0dzMyX3dhaXRfZihHUkNfTE9DQUxfQ1RSTCwgZ3JjX2xvY2FsX2N0cmwsIDEwMCk7CisKKwkJCWdyY19sb2NhbF9jdHJsIHw9IEdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMjsKKwkJCXR3MzJfd2FpdF9mKEdSQ19MT0NBTF9DVFJMLCBncmNfbG9jYWxfY3RybCwgMTAwKTsKKworCQkJZ3JjX2xvY2FsX2N0cmwgJj0gfkdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMDsKKwkJCXR3MzJfd2FpdF9mKEdSQ19MT0NBTF9DVFJMLCBncmNfbG9jYWxfY3RybCwgMTAwKTsKIAkJfSBlbHNlIHsKIAkJCXUzMiBub19ncGlvMjsKIAkJCXUzMiBncmNfbG9jYWxfY3RybCA9IDA7CkBAIC0zMTY4LDggKzMxODMsNyBAQAogCWVyciB8PSB0ZzNfcmVhZHBoeSh0cCwgTUlJX0JNQ1IsICZibWNyKTsKIAogCWlmICgodHAtPmxpbmtfY29uZmlnLmF1dG9uZWcgPT0gQVVUT05FR19FTkFCTEUpICYmICFmb3JjZV9yZXNldCAmJgotCSAgICAodHAtPnRnM19mbGFnczIgJiBURzNfRkxHMl9QQVJBTExFTF9ERVRFQ1QpICYmCi0JICAgICB0cC0+bGlua19jb25maWcuZmxvd2N0cmwgPT0gdHAtPmxpbmtfY29uZmlnLmFjdGl2ZV9mbG93Y3RybCkgeworCSAgICAodHAtPnRnM19mbGFnczIgJiBURzNfRkxHMl9QQVJBTExFTF9ERVRFQ1QpKSB7CiAJCS8qIGRvIG5vdGhpbmcsIGp1c3QgY2hlY2sgZm9yIGxpbmsgdXAgYXQgdGhlIGVuZCAqLwogCX0gZWxzZSBpZiAodHAtPmxpbmtfY29uZmlnLmF1dG9uZWcgPT0gQVVUT05FR19FTkFCTEUpIHsKIAkJdTMyIGFkdiwgbmV3X2FkdjsKQEAgLTg1OTksNyArODYxMyw3IEBACiAJCSAgIChjbWQtPnNwZWVkID09IFNQRUVEXzEwMDApKQogCQlyZXR1cm4gLUVJTlZBTDsKIAllbHNlIGlmICgoY21kLT5zcGVlZCA9PSBTUEVFRF8xMDAwKSAmJgotCQkgKHRwLT50ZzNfZmxhZ3MyICYgVEczX0ZMQUdfMTBfMTAwX09OTFkpKQorCQkgKHRwLT50ZzNfZmxhZ3MgJiBURzNfRkxBR18xMF8xMDBfT05MWSkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJdGczX2Z1bGxfbG9jayh0cCwgMCk7CkBAIC0xMTc2OCw2ICsxMTc4MiwxNSBAQAogCWlmIChHRVRfQVNJQ19SRVYodHAtPnBjaV9jaGlwX3Jldl9pZCkgPT0gQVNJQ19SRVZfNTc1NSkKIAkJdHAtPmdyY19sb2NhbF9jdHJsIHw9IEdSQ19MQ0xDVFJMX0dQSU9fVUFSVF9TRUw7CiAKKwlpZiAodHAtPnBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX1RJR09OM181NzYxKSB7CisJCS8qIFR1cm4gb2ZmIHRoZSBkZWJ1ZyBVQVJULiAqLworCQl0cC0+Z3JjX2xvY2FsX2N0cmwgfD0gR1JDX0xDTENUUkxfR1BJT19VQVJUX1NFTDsKKwkJaWYgKHRwLT50ZzNfZmxhZ3MyICYgVEczX0ZMRzJfSVNfTklDKQorCQkJLyogS2VlcCBWTWFpbiBwb3dlci4gKi8KKwkJCXRwLT5ncmNfbG9jYWxfY3RybCB8PSBHUkNfTENMQ1RSTF9HUElPX09FMCB8CisJCQkJCSAgICAgIEdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMDsKKwl9CisKIAkvKiBGb3JjZSB0aGUgY2hpcCBpbnRvIEQwLiAqLwogCWVyciA9IHRnM19zZXRfcG93ZXJfc3RhdGUodHAsIFBDSV9EMCk7CiAJaWYgKGVycikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMgYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuYwppbmRleCA1ZjFjNTA3Li5mYTczZTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuYworKysgYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgogI2luY2x1ZGUgPGxpbnV4L3RyZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTU5LDcgKzYwLDYgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAic21jdHIuaCIgICAgICAgICAgICAgICAvKiBPdXIgU3R1ZmYgKi8KLSNpbmNsdWRlICJzbWN0cl9maXJtd2FyZS5oIiAgICAgIC8qIFNNQyBhZGFwdGVyIGZpcm13YXJlICovCiAKIHN0YXRpYyBjaGFyIHZlcnNpb25bXSBfX2luaXRkYXRhID0gS0VSTl9JTkZPICJzbWN0ci5jOiB2MS40IDcvMTIvMDAgYnkganNjaGxzdEBzYW1iYS5vcmdcbiI7CiBzdGF0aWMgY29uc3QgY2hhciBjYXJkbmFtZVtdID0gInNtY3RyIjsKQEAgLTEwMyw3ICsxMDMsOCBAQAogc3RhdGljIGludCBzbWN0cl9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIAogLyogRCAqLwotc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CitzdGF0aWMgaW50IHNtY3RyX2RlY29kZV9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCSBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KTsKIHN0YXRpYyBpbnQgc21jdHJfZGlzYWJsZV8xNmJpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIHN0YXRpYyBpbnQgc21jdHJfZGlzYWJsZV9hZGFwdGVyX2N0cmxfc3RvcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiBzdGF0aWMgaW50IHNtY3RyX2Rpc2FibGVfYmljX2ludChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKQEAgLTc0OCw3ICs3NDksOCBAQAogICAgICAgICByZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50IHNtY3RyX2RlY29kZV9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKIHsKICAgICAgICAgc3RydWN0IG5ldF9sb2NhbCAqdHAgPSBuZXRkZXZfcHJpdihkZXYpOwogICAgICAgICBzaG9ydCBiaXQgPSAweDgwLCBzaGlmdCA9IDEyOwpAQCAtNzYyLDEwICs3NjQsMTAgQEAKICAgICAgICAgaWYoc21jdHJfZGVidWcgPiAxMCkKICAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9ERUJVRyAiJXM6IHNtY3RyX2RlY29kZV9maXJtd2FyZVxuIiwgZGV2LT5uYW1lKTsKIAotICAgICAgICB3ZWlnaHQgID0gKihsb25nICopKHRwLT5wdHJfdWNvZGUgKyBXRUlHSFRfT0ZGU0VUKTsKLSAgICAgICAgdHNpemUgICA9ICooX191OCAqKSh0cC0+cHRyX3Vjb2RlICsgVFJFRV9TSVpFX09GRlNFVCk7Ci0gICAgICAgIHRyZWUgICAgPSAoREVDT0RFX1RSRUVfTk9ERSAqKSh0cC0+cHRyX3Vjb2RlICsgVFJFRV9PRkZTRVQpOwotICAgICAgICB1Y29kZSAgID0gKF9fdTggKikodHAtPnB0cl91Y29kZSArIFRSRUVfT0ZGU0VUCisgICAgICAgIHdlaWdodCAgPSAqKGxvbmcgKikoZnctPmRhdGEgKyBXRUlHSFRfT0ZGU0VUKTsKKyAgICAgICAgdHNpemUgICA9ICooX191OCAqKShmdy0+ZGF0YSArIFRSRUVfU0laRV9PRkZTRVQpOworICAgICAgICB0cmVlICAgID0gKERFQ09ERV9UUkVFX05PREUgKikoZnctPmRhdGEgKyBUUkVFX09GRlNFVCk7CisgICAgICAgIHVjb2RlICAgPSAoX191OCAqKShmdy0+ZGF0YSArIFRSRUVfT0ZGU0VUCiAgICAgICAgICAgICAgICAgICAgICAgICArICh0c2l6ZSAqIHNpemVvZihERUNPREVfVFJFRV9OT0RFKSkpOwogICAgICAgICBtZW0gICAgID0gKF9fdTE2ICopKHRwLT5yYW1fYWNjZXNzKTsKIApAQCAtMjk2MywzNCArMjk2NSw0NCBAQAogc3RhdGljIGludCBzbWN0cl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAgICAgICAgIHN0cnVjdCBuZXRfbG9jYWwgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogICAgICAgICBfX3UxNiBpLCBjaGVja3N1bSA9IDA7CiAgICAgICAgIGludCBlcnIgPSAwOwogCiAgICAgICAgIGlmKHNtY3RyX2RlYnVnID4gMTApCiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBzbWN0cl9sb2FkX2Zpcm13YXJlXG4iLCBkZXYtPm5hbWUpOwogCi0gICAgICAgIHRwLT5wdHJfdWNvZGUgICAgICAgICAgID0gc21jdHJfY29kZTsKKwlpZiAocmVxdWVzdF9maXJtd2FyZSgmZncsICJ0cl9zbWN0ci5iaW4iLCAmZGV2LT5kZXYpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGZpcm13YXJlIG5vdCBmb3VuZFxuIiwgZGV2LT5uYW1lKTsKKwkJcmV0dXJuIChVQ09ERV9OT1RfUFJFU0VOVCk7CisJfQorCiAgICAgICAgIHRwLT5udW1fb2ZfdHhfYnVmZnMgICAgID0gNDsKICAgICAgICAgdHAtPm1vZGVfYml0cyAgICAgICAgICB8PSBVTUFDOwogICAgICAgICB0cC0+cmVjZWl2ZV9tYXNrICAgICAgICA9IDA7CiAgICAgICAgIHRwLT5tYXhfcGFja2V0X3NpemUgICAgID0gNDE3NzsKIAogICAgICAgICAvKiBDYW4gb25seSB1cGxvYWQgdGhlIGZpcm13YXJlIG9uY2UgcGVyIGFkYXB0ZXIgcmVzZXQuICovCi0gICAgICAgIGlmKHRwLT5taWNyb2NvZGVfdmVyc2lvbiAhPSAwKQotICAgICAgICAgICAgICAgIHJldHVybiAoVUNPREVfUFJFU0VOVCk7CisgICAgICAgIGlmICh0cC0+bWljcm9jb2RlX3ZlcnNpb24gIT0gMCkgeworCQllcnIgPSAoVUNPREVfUFJFU0VOVCk7CisJCWdvdG8gb3V0OworCX0KIAogICAgICAgICAvKiBWZXJpZnkgdGhlIGZpcm13YXJlIGV4aXN0cyBhbmQgaXMgdGhlcmUgaW4gdGhlIHJpZ2h0IGFtb3VudC4gKi8KLSAgICAgICAgaWYgKCF0cC0+cHRyX3Vjb2RlCi0gICAgICAgICAgICAgICAgfHwgKCoodHAtPnB0cl91Y29kZSArIFVDT0RFX1ZFUlNJT05fT0ZGU0VUKSA8IFVDT0RFX1ZFUlNJT04pKQorICAgICAgICBpZiAoIWZ3LT5kYXRhCisgICAgICAgICAgICAgICAgfHwgKCooZnctPmRhdGEgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkgPCBVQ09ERV9WRVJTSU9OKSkKICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiAoVUNPREVfTk9UX1BSRVNFTlQpOworICAgICAgICAgICAgICAgIGVyciA9IChVQ09ERV9OT1RfUFJFU0VOVCk7CisJCWdvdG8gb3V0OwogICAgICAgICB9CiAKICAgICAgICAgLyogVUNPREVfU0laRSBpcyBub3QgaW5jbHVkZWQgaW4gQ2hlY2tzdW0uICovCi0gICAgICAgIGZvcihpID0gMDsgaSA8ICooKF9fdTE2ICopKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9TSVpFX09GRlNFVCkpOyBpICs9IDIpCi0gICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gKigoX191MTYgKikodHAtPnB0cl91Y29kZSArIDIgKyBpKSk7Ci0gICAgICAgIGlmKGNoZWNrc3VtKQotICAgICAgICAgICAgICAgIHJldHVybiAoVUNPREVfTk9UX1BSRVNFTlQpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCAqKChfX3UxNiAqKShmdy0+ZGF0YSArIFVDT0RFX1NJWkVfT0ZGU0VUKSk7IGkgKz0gMikKKyAgICAgICAgICAgICAgICBjaGVja3N1bSArPSAqKChfX3UxNiAqKShmdy0+ZGF0YSArIDIgKyBpKSk7CisgICAgICAgIGlmIChjaGVja3N1bSkgeworCQllcnIgPSAoVUNPREVfTk9UX1BSRVNFTlQpOworCQlnb3RvIG91dDsKKwl9CiAKICAgICAgICAgLyogQXQgdGhpcyBwb2ludCB3ZSBoYXZlIGEgdmFsaWQgZmlybXdhcmUgaW1hZ2UsIGxldHMga2ljayBpdCBvbiB1cC4gKi8KICAgICAgICAgc21jdHJfZW5hYmxlX2FkYXB0ZXJfcmFtKGRldik7CkBAIC0yOTk4LDcgKzMwMTAsNyBAQAogICAgICAgICBzbWN0cl9zZXRfcGFnZShkZXYsIChfX3U4ICopdHAtPnJhbV9hY2Nlc3MpOwogCiAgICAgICAgIGlmKChzbWN0cl9jaGVja3N1bV9maXJtd2FyZShkZXYpKQotICAgICAgICAgICAgICAgIHx8ICgqKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkKKyAgICAgICAgICAgICAgICB8fCAoKihmdy0+ZGF0YSArIFVDT0RFX1ZFUlNJT05fT0ZGU0VUKQogICAgICAgICAgICAgICAgID4gdHAtPm1pY3JvY29kZV92ZXJzaW9uKSkKICAgICAgICAgewogICAgICAgICAgICAgICAgIHNtY3RyX2VuYWJsZV9hZGFwdGVyX2N0cmxfc3RvcmUoZGV2KTsKQEAgLTMwMDcsOSArMzAxOSw5IEBACiAgICAgICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgQ1NfUkFNX1NJWkU7IGkgKz0gMikKICAgICAgICAgICAgICAgICAgICAgICAgICooKF9fdTE2ICopKHRwLT5yYW1fYWNjZXNzICsgaSkpID0gMDsKIAotICAgICAgICAgICAgICAgIHNtY3RyX2RlY29kZV9maXJtd2FyZShkZXYpOworICAgICAgICAgICAgICAgIHNtY3RyX2RlY29kZV9maXJtd2FyZShkZXYsIGZ3KTsKIAotICAgICAgICAgICAgICAgIHRwLT5taWNyb2NvZGVfdmVyc2lvbiA9ICoodHAtPnB0cl91Y29kZSArIFVDT0RFX1ZFUlNJT05fT0ZGU0VUKTsgICAgICAgICAgICAgICAgKigoX191MTYgKikodHAtPnJhbV9hY2Nlc3MgKyBDU19SQU1fVkVSU0lPTl9PRkZTRVQpKQorICAgICAgICAgICAgICAgIHRwLT5taWNyb2NvZGVfdmVyc2lvbiA9ICooZnctPmRhdGEgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCk7ICAgICAgICAgICAgICAgICooKF9fdTE2ICopKHRwLT5yYW1fYWNjZXNzICsgQ1NfUkFNX1ZFUlNJT05fT0ZGU0VUKSkKICAgICAgICAgICAgICAgICAgICAgICAgID0gKHRwLT5taWNyb2NvZGVfdmVyc2lvbiA8PCA4KTsKICAgICAgICAgICAgICAgICAqKChfX3UxNiAqKSh0cC0+cmFtX2FjY2VzcyArIENTX1JBTV9DSEVDS1NVTV9PRkZTRVQpKQogICAgICAgICAgICAgICAgICAgICAgICAgPSB+KHRwLT5taWNyb2NvZGVfdmVyc2lvbiA8PCA4KSArIDE7CkBAIC0zMDIzLDcgKzMwMzUsOCBAQAogICAgICAgICAgICAgICAgIGVyciA9IFVDT0RFX1BSRVNFTlQ7CiAKICAgICAgICAgc21jdHJfZGlzYWJsZV8xNmJpdChkZXYpOwotCisgb3V0OgorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogICAgICAgICByZXR1cm4gKGVycik7CiB9CiAKQEAgLTU2NTEsNiArNTY2NCw3IEBACiBzdGF0aWMgaW50IGlycVtTTUNUUl9NQVhfQURBUFRFUlNdOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoInRyX3NtY3RyLmJpbiIpOwogCiBtb2R1bGVfcGFyYW1fYXJyYXkoaW8sIGludCwgTlVMTCwgMCk7CiBtb2R1bGVfcGFyYW1fYXJyYXkoaXJxLCBpbnQsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmggYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuaAppbmRleCA4OGRmYTJlLi41MmRmN2RkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuaAorKysgYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHIuaApAQCAtMTA0Miw4ICsxMDQyLDYgQEAKICAgICAgICAgX191MTYgICAgICAgICAgICBmdW5jdGlvbmFsX2FkZHJlc3NbMl07CiAgICAgICAgIF9fdTE2ICAgICAgICAgICAgYml0d2lzZV9ncm91cF9hZGRyZXNzWzJdOwogCi0JY29uc3QgX191OCAgICAgICAqcHRyX3Vjb2RlOwotCiAJX191OAkJY2xlYW51cDsKIAogCXN0cnVjdCBza19idWZmX2hlYWQgU2VuZFNrYlF1ZXVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyX2Zpcm13YXJlLmggYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHJfZmlybXdhcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZTUwZGRmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0cl9maXJtd2FyZS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTc4ICswLDAgQEAKLS8qCi0gKiBUaGUgZmlybXdhcmUgdGhpcyBkcml2ZXIgZG93bmxvYWRzIGludG8gdGhlIHRva2VucmluZyBjYXJkIGlzIGEKLSAqIHNlcGFyYXRlIHByb2dyYW0gYW5kIGlzIG5vdCBHUEwnZCBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhlIExpbnV4Ci0gKiBzaWRlIGRyaXZlciBhbmQgdGhlIHJvdXRpbmUgdGhhdCBsb2FkcyB0aGlzIGRhdGEgaW50byB0aGUgY2FyZCBhcmUuCi0gKgotICogVGhpcyBmaXJtd2FyZSBpcyBsaWNlbnNlZCB0byB5b3Ugc3RyaWN0bHkgZm9yIHVzZSBpbiBjb25qdW5jdGlvbgotICogd2l0aCB0aGUgdXNlIG9mIFNNQyBUb2tlblJpbmcgYWRhcHRlcnMuIFRoZXJlIGlzIG5vIHdhcmFudHkKLSAqIGV4cHJlc3NlZCBvciBpbXBsaWVkIGFib3V0IGl0cyBmaXRuZXNzIGZvciBhbnkgcHVycG9zZS4KLSAqLwotCi0vKiBzbWN0cl9maXJtd2FyZS5oOiBTTUMgVG9rZW5SaW5nIGRyaXZlciBmaXJtd2FyZSBkdW1wIGZvciBMaW51eC4KLSAqCi0gKiBOb3RlczoKLSAqICAtIFRoaXMgaXMgYW4gOEsgYmluYXJ5IGltYWdlLiAoTUNULkJJTiB2Ni4zQzEgMDMvMDEvOTUpCi0gKgotICogQXV0aG9yczoKLSAqICAtIEpheSBTY2h1bGlzdCA8anNjaGxzdEBzYW1iYS5vcmc+Ci0gKi8KLQotCi0jaWYgZGVmaW5lZChDT05GSUdfU01DVFIpIHx8IGRlZmluZWQoQ09ORklHX1NNQ1RSX01PRFVMRSkKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc21jdHJfY29kZVtdID0gewotCTB4MEJDLCAweDAxRCwgMHgwMTIsIDB4MDNCLCAweDA2MywgMHgwQjQsIDB4MEU5LCAweDAwMCwKLQkweDAwMCwgMHgwMUYsIDB4MDAwLCAweDAwMSwgMHgwMDEsIDB4MDAwLCAweDAwMiwgMHgwMDUsCi0JMHgwMDEsIDB4MDAwLCAweDAwNiwgMHgwMDMsIDB4MDAxLCAweDAwMCwgMHgwMDQsIDB4MDA5LAotCTB4MDAxLCAweDAwMCwgMHgwMEEsIDB4MDA3LCAweDAwMSwgMHgwMDAsIDB4MDA4LCAweDAwQiwKLQkweDAwMSwgMHgwMDAsIDB4MDBDLCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMEYsCi0JMHgwMDEsIDB4MDAwLCAweDAxMCwgMHgwMEQsIDB4MDAxLCAweDAwMCwgMHgwMEUsIDB4MDEzLAotCTB4MDAxLCAweDAwMCwgMHgwMTQsIDB4MDExLCAweDAwMSwgMHgwMDAsIDB4MDEyLCAweDAwMCwKLQkweDAwMCwgMHgwMDUsIDB4MDAwLCAweDAxNSwgMHgwMDEsIDB4MDAwLCAweDAxNiwgMHgwMTksCi0JMHgwMDEsIDB4MDAwLCAweDAxQSwgMHgwMTcsIDB4MDAxLCAweDAwMCwgMHgwMTgsIDB4MDAwLAotCTB4MDAwLCAweDAwRSwgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDEsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMDQsIDB4MDAwLCAweDAxQiwgMHgwMDEsIDB4MDAwLCAweDAxQywgMHgwMDAsCi0JMHgwMDAsIDB4MDA3LCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwRiwgMHgwMDAsIDB4MDAwLAotCTB4MDAwLCAweDAwQiwgMHgwMDAsIDB4MDFELCAweDAwMSwgMHgwMDAsIDB4MDFFLCAweDAwMCwKLQkweDAwMCwgMHgwMDgsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDAyLCAweDAwMCwgMHgwMDAsCi0JMHgwMDAsIDB4MDBDLCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwNiwgMHgwMDAsIDB4MDAwLAotCTB4MDAwLCAweDAwRCwgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDMsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMEEsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDA5LCAweDAwMCwgMHgwMDQsCi0JMHgwNzgsIDB4MEM2LCAweDBCQywgMHgwMDEsIDB4MDk0LCAweDAwNCwgMHgwOTMsIDB4MDgwLAotCTB4MEM4LCAweDA0MCwgMHgwNjIsIDB4MEU5LCAweDBEQSwgMHgwMUMsIDB4MDJDLCAweDAxNSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTgsCi0JMHgwMEIsIDB4MEU5LCAweDBFNSwgMHgwRDUsIDB4MDk1LCAweDBDMSwgMHgwOUQsIDB4MDc3LAotCTB4MENFLCAweDBCQiwgMHgwQTAsIDB4MDZFLCAweDAxQywgMHgwMDUsIDB4MEY2LCAweDA3NywKLQkweDBDNiwgMHgwMDIsIDB4MEZBLCAweDA5NiwgMHgwNzAsIDB4MEU4LCAweDAxRCwgMHgwQzAsCi0JMHgwMTcsIDB4MDBFLCAweDAwMiwgMHgwRkEsIDB4MDU4LCAweDA3RCwgMHgwQzAsIDB4MDVGLAotCTB4MDcyLCAweDBDRSwgMHgwRUMsIDB4MEE0LCAweDBDMywgMHgwODQsIDB4MDkwLCAweDA3QSwKLQkweDAzMCwgMHgwQ0QsIDB4MDhELCAweDA3OSwgMHgwMTksIDB4MEU3LCAweDA2QywgMHgwMjQsCi0JMHgwMjcsIDB4MDlDLCAweDAwOCwgMHgwMzksIDB4MDA3LCAweDAzOCwgMHgwQTgsIDB4MDRBLAotCTB4MDRDLCAweDBFQSwgMHgwNEQsIDB4MDk4LCAweDA5QiwgMHgwMjQsIDB4MDRDLCAweDBDMCwKLQkweDAyNiwgMHgwRDMsIDB4MEU3LCAweDA1NCwgMHgwNUEsIDB4MDRELCAweDBGMiwgMHgwNEMsCi0JMHgwMEMsIDB4MDEzLCAweDAyMywgMHgwNDksIDB4MDkwLCAweDAzMiwgMHgwNkUsIDB4MEE0LAotCTB4MERGLCAweDA5MywgMHgwNzEsIDB4MDEzLCAweDA3NywgMHgwMjYsIDB4MEUxLCAweDAyNiwKLQkweDBGOCwgMHgwMjYsIDB4MDBDLCAweDA0QywgMHgwMTIsIDB4MDI2LCAweDAwOCwgMHgwMDksCi0JMHgwODIsIDB4MDgyLCAweDA2MCwgMHgwQTksIDB4MDMwLCAweDA3OSwgMHgwMzYsIDB4MEIwLAotCTB4MEIyLCAweDBBOCwgMHgwQTcsIDB4MDcyLCAweDA2NCwgMHgwOEYsIDB4MDlCLCAweDAzMywKLQkweDAzMywgMHgwRjksIDB4MEI4LCAweDAzOSwgMHgwRDUsIDB4MDExLCAweDA3MywgMHgwQUEsCi0JMHgwNzUsIDB4MDI2LCAweDA1RCwgMHgwMjYsIDB4MDUxLCAweDA5MywgMHgwMkEsIDB4MDQ5LAotCTB4MDk0LCAweDBDOSwgMHgwOTUsIDB4MDg5LCAweDBCQywgMHgwNEQsIDB4MEM4LCAweDA5QiwKLQkweDA4MCwgMHgwOUIsIDB4MEEwLCAweDA5OSwgMHgwMDYsIDB4MDRDLCAweDA4NiwgMHgwMjYsCi0JMHgwNTgsIDB4MDlCLCAweDBBNCwgMHgwOUIsIDB4MDk5LCAweDAzNywgMHgwNjIsIDB4MDZDLAotCTB4MDY3LCAweDA5QiwgMHgwMzMsIDB4MDMwLCAweDBCRiwgMHgwMzYsIDB4MDY2LCAweDA2MSwKLQkweDBCRiwgMHgwMzYsIDB4MEVDLCAweDBDNSwgMHgwQkQsIDB4MDY2LCAweDA4MiwgMHgwNUEsCi0JMHgwNTAsIDB4MDMxLCAweDBENSwgMHgwOUQsIDB4MDk4LCAweDAxOCwgMHgwMjksIDB4MDNDLAotCTB4MDk4LCAweDA4NiwgMHgwNEMsIDB4MDE3LCAweDAyNiwgMHgwM0UsIDB4MDJDLCAweDBCOCwKLQkweDA2OSwgMHgwM0IsIDB4MDQ5LCAweDAyRSwgMHgwQjQsIDB4MDA4LCAweDA0MywgMHgwMUEsCi0JMHgwQTQsIDB4MEY5LCAweDBCMywgMHgwNTEsIDB4MEYxLCAweDAxMCwgMHgwRjMsIDB4MDQzLAotCTB4MENELCAweDAwOCwgMHgwNkYsIDB4MDYzLCAweDA3OSwgMHgwQjMsIDB4MDMzLCAweDAwRSwKLQkweDAxMywgMHgwOTgsIDB4MDQ5LCAweDA5OCwgMHgwMDQsIDB4MERBLCAweDA3QywgMHgwRTAsCi0JMHgwNTIsIDB4MDc5LCAweDAzMSwgMHgwMEMsIDB4MDk4LCAweDAyRSwgMHgwNEQsIDB4MEFDLAotCTB4MDJDLCAweDA4NCwgMHgwMTQsIDB4MEVFLCAweDA0QywgMHgwRkUsIDB4MDY3LCAweDA1RSwKLQkweDBFNCwgMHgwOUEsIDB4MDc1LCAweDAyOSwgMHgwRDcsIDB4MEE5LCAweDAzNSwgMHgwM0EsCi0JMHgwOTQsIDB4MDVCLCAweDBENSwgMHgwOUIsIDB4MDU4LCAweDBCNCwgMHgwQUYsIDB4MDc1LAotCTB4MDY2LCAweDBBRiwgMHgwMTQsIDB4MEE5LCAweDBFRiwgMHgwNDAsIDB4MDk1LCAweDAyNSwKLQkweDAwOCwgMHgwQjksIDB4MEFELCAweDA0MiwgMHgwRkMsIDB4MEQ4LCAweDBEOSwgMHgwOEMsCi0JMHgwMzMsIDB4MDBFLCAweDAxMywgMHgwOTgsIDB4MDY2LCAweDAxRSwgMHgwNDUsIDB4MEFDLAotCTB4MEIwLCAweDAwQywgMHgwNDIsIDB4MEQzLCAweDBDQywgMHgwQTYsIDB4MDEyLCAweDA2MiwKLQkweDBERSwgMHgwQjQsIDB4MEIxLCAweDA4MCwgMHgwNDksIDB4MDdELCAweDBBMiwgMHgwREUsCi0JMHgwQjQsIDB4MDE4LCAweDBDMCwgMHgwMjQsIDB4MDg0LCAweDBFNiwgMHgwNTQsIDB4MEY1LAotCTB4MDgzLCAweDA0NiwgMHgwMDEsIDB4MDY4LCAweDAxQSwgMHgwNjMsIDB4MDBDLCAweDBDNiwKLQkweDAxMiwgMHgwNjQsIDB4MEZBLCAweDA0QywgMHgwMzUsIDB4MDFDLCAweDAyQywgMHgwMEUsCi0JMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLAotCTB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUQsIDB4MEQ3LCAweDAwMiwKLQkweDA3MCwgMHgwRTAsIDB4MDRDLCAweDBGMywgMHgwQTEsIDB4MEMxLCAweDBENSwgMHgwQzAsCi0JMHgwM0MsIDB4MEI5LCAweDA2OSwgMHgwMzksIDB4MDYwLCAweDA0RSwgMHgwNTgsIDB4MDc3LAotCTB4MDAyLCAweDA2NywgMHgwOTMsIDB4MDNDLCAweDA5OSwgMHgwRTQsIDB4MENGLCAweDAzOCwKLQkweDAxQywgMHgwOTcsIDB4MDJFLCAweDA0MCwgMHgwMUIsIDB4MDkwLCAweDAzMSwgMHgwNDYsCi0JMHgwQTMsIDB4MDVFLCAweDAwRSwgMHgwODgsIDB4MDM0LCAweDA2QSwgMHgwMzUsIDB4MEUwLAotCTB4MEU4LCAweDBBQSwgMHgwMzUsIDB4MDFBLCAweDBBOSwgMHgwRjUsIDB4MDE1LCAweDA0NiwKLQkweDBBMywgMHgwRUEsIDB4MDdELCAweDA0QSwgMHgwQTMsIDB4MDUxLCAweDBBQSwgMHgwOUYsCi0JMHgwNzAsIDB4MDU0LCAweDBBNiwgMHgwNTcsIDB4MDJFLCAweDBCNCwgMHgwQ0QsIDB4MEM4LAotCTB4MEEzLCAweDAwQywgMHgwQzEsIDB4MERBLCAweDBDNiwgMHgwRTEsIDB4MENCLCAweDA3QSwKLQkweDBENCwgMHgwMUMsIDB4MDY4LCAweDBGRiwgMHgwQ0YsIDB4MDU1LCAweDBBOCwgMHgwQzAsCi0JMHgwMkQsIDB4MDg1LCAweDAxMSwgMHgwMTcsIDB4MDQ0LCAweDAyQSwgMHgwMzAsIDB4MDBCLAotCTB4MDRBLCAweDA4OCwgMHgwQzIsIDB4MDRELCAweDBCNSwgMHgwMjAsIDB4MEQ1LCAweDAyNiwKLQkweDAwMSwgMHgwNjksIDB4MDUxLCAweDA2OSwgMHgwNTIsIDB4MDE5LCAweDA1MiwgMHgwNjAsCi0JMHgwMTYsIDB4MDk1LCAweDAxNiwgMHgwODIsIDB4MDk2LCAweDA1NCwgMHgwOTgsIDB4MDA1LAotCTB4MEE1LCAweDA0NSwgMHgwRjMsIDB4MERELCAweDA2QSwgMHgwRjksIDB4MDI4LCAweDAxOCwKLQkweDBFRiwgMHgwMDAsIDB4MDMwLCAweDAzMCwgMHgwNTEsIDB4MDRFLCAweDA0NCwgMHgwNUQsCi0JMHgwMTIsIDB4MEQxLCAweDA0MywgMHgwRTYsIDB4MDEyLCAweDA2RiwgMHgwOUUsIDB4MEJBLAotCTB4MENDLCAweDBERiwgMHgwMjUsIDB4MDAzLCAweDAxRCwgMHgwRTAsIDB4MDA2LCAweDAwNiwKLQkweDAwQSwgMHgwMzAsIDB4MENDLCAweDBBOSwgMHgwRUIsIDB4MDJELCAweDAwMCwgMHgwODYsCi0JMHgwQTYsIDB4MDEyLCAweDA2NSwgMHgwNEYsIDB4MDU2LCAweDBENiwgMHgwNjUsIDB4MDQ5LAotCTB4MDVGLCAweDAzRCwgMHgwRTgsIDB4MDM3LCAweDBDOSwgMHgwNDAsIDB4MEM3LCAweDA3OCwKLQkweDAwMSwgMHgwODEsIDB4MDgyLCAweDA4QywgMHgwMzMsIDB4MDE4LCAweDA0OSwgMHgwODAsCi0JMHgwQUUsIDB4MDQwLCAweDBDNSwgMHgwMTgsIDB4MDA1LCAweDA5QywgMHgwNkQsIDB4MDE4LAotCTB4MDY2LCAweDAwRSwgMHgwRjMsIDB4MEEwLCAweDBDNiwgMHgwMTIsIDB4MDYyLCAweDBERSwKLQkweDBGNSwgMHgwMDQsIDB4MEI0LCAweDBBQywgMHgwNkIsIDB4MEM2LCAweDAxOSwgMHgwOTEsCi0JMHgwNzMsIDB4MDA1LCAweDA0OCwgMHgwMkUsIDB4MDcyLCAweDA5NCwgMHgwODAsIDB4MDczLAotCTB4MEExLCAweDBDOCwgMHgwNDcsIDB4MDM2LCAweDA2NiwgMHgwNjQsIDB4MDJGLCAweDAzNiwKLQkweDA2NiwgMHgwNjQsIDB4MDA3LCAweDA5OSwgMHgwMDIsIDB4MDkxLCAweDA4RSwgMHgwNzIsCi0JMHgwRDEsIDB4MDBGLCAweDA5RCwgMHgwMDYsIDB4MDMxLCAweDA3MywgMHgwQTAsIDB4MEMzLAotCTB4MDUxLCAweDA2QSwgMHgwMUEsIDB4MDIwLCAweDBCRiwgMHgwM0EsIDB4MDBDLCAweDAyQywKLQkweDA3MywgMHgwODcsIDB4MDQzLCAweDA1RSwgMHgwNjAsIDB4MDAyLCAweDAyMywgMHgwRkMsCi0JMHgwRTAsIDB4MEQ2LCAweDAzNSwgMHgwRUYsIDB4MDlFLCAweDBGNSwgMHgwRUYsIDB4MDkyLAotCTB4MDgxLCAweDA4RSwgMHgwRjAsIDB4MDAzLCAweDAwMywgMHgwMDUsIDB4MDE4LCAweDA2NiwKLQkweDA0NSwgMHgwQ0MsIDB4MDBCLCAweDA0OCwgMHgwMkUsIDB4MDcwLCAweDAwQSwgMHgwNDAsCi0JMHgwMzksIDB4MEQwLCAweDBFNCwgMHgwMjMsIDB4MDlCLCAweDAzMywgMHgwMzIsIDB4MDE3LAotCTB4MDlCLCAweDAzMywgMHgwMzIsIDB4MDAzLCAweDBDQywgMHgwODUsIDB4MDQ4LCAweDBDNywKLQkweDAzOCwgMHgwMTQsIDB4MEE1LCAweDBDRSwgMHgwMjksIDB4MDdFLCAweDBEMiwgMHgwODAsCi0JMHgwQTEsIDB4MEE4LCAweDBCNCwgMHgwNDgsIDB4MDg4LCAweDAyRiwgMHgwQ0UsIDB4MDgzLAotCTB4MDBCLCAweDAxQywgMHgwRTEsIDB4MEQwLCAweDBENywgMHgwOTgsIDB4MDA0LCAweDA4OCwKLQkweDA4NywgMHgwQ0UsIDB4MDk2LCAweDAzMSwgMHgwNzMsIDB4MEE1LCAweDA4RiwgMHgwRjMsCi0JMHgwODMsIDB4MDU4LCAweDBENywgMHgwQkUsIDB4MDdCLCAweDA4MiwgMHgwQUYsIDB4MDkyLAotCTB4MDgxLCAweDA4RSwgMHgwRjAsIDB4MDAzLCAweDAwMywgMHgwMDUsIDB4MDE4LCAweDA2NiwKLQkweDA0NSwgMHgwQ0MsIDB4MDE1LCAweDAyMCwgMHgwQjksIDB4MEM4LCAweDAyOSwgMHgwMDAsCi0JMHgwRTcsIDB4MDQzLCAweDA5MCwgMHgwOEUsIDB4MDZDLCAweDBDQywgMHgwQzgsIDB4MDVFLAotCTB4MDZDLCAweDBDQywgMHgwQzgsIDB4MDBGLCAweDAzMiwgMHgwMDUsIDB4MDIzLCAweDAxQywKLQkweDBFNCwgMHgwNTAsIDB4MEQ0LCAweDA1QSwgMHgwMTcsIDB4MDg4LCAweDAyRiwgMHgwQ0UsCi0JMHgwODMsIDB4MDEwLCAweDBGOSwgMHgwRDAsIDB4MDIzLCAweDAxNywgMHgwM0EsIDB4MDA0LAotCTB4MDM1LCAweDBFNiwgMHgwMDAsIDB4MDIyLCAweDAxNiwgMHgwMzksIDB4MEMzLCAweDBBMywKLQkweDBGQywgMHgwRTAsIDB4MEQ2LCAweDAzNSwgMHgwRTAsIDB4MEJGLCAweDBGNCwgMHgwMTgsCi0JMHgwRjIsIDB4MDJELCAweDA0RCwgMHgwNDMsIDB4MDUxLCAweDA2RSwgMHgwNUEsIDB4MDIyLAotCTB4MDFGLCAweDAzMCwgMHgwRDQsIDB4MDE3LCAweDBFNywgMHgwNDEsIDB4MDkxLCAweDA3MywKLQkweDAwNSwgMHgwNDgsIDB4MDJFLCAweDA3NywgMHgwNjksIDB4MDAwLCAweDBFNywgMHgwNDMsCi0JMHgwOTAsIDB4MDhFLCAweDA2QywgMHgwQ0MsIDB4MEM4LCAweDA1RSwgMHgwNkMsIDB4MENDLAotCTB4MEM4LCAweDAwRiwgMHgwMzIsIDB4MDA1LCAweDAyMywgMHgwMUMsIDB4MEVGLCAweDA0QywKLQkweDA0RSwgMHgwMDYsIDB4MDA0LCAweDBDOSwgMHgwOUUsIDB4MDBCLCAweDBGRiwgMHgwNDEsCi0JMHgwOEYsIDB4MDIyLCAweDBENCwgMHgwRDQsIDB4MDM1LCAweDAxNiwgMHgwRTUsIDB4MEEyLAotCTB4MDIxLCAweDBGMywgMHgwNUEsIDB4MDgyLCAweDBGQywgMHgwRTgsIDB4MDMyLCAweDAyRSwKLQkweDA2MCwgMHgwQTksIDB4MDA1LCAweDBDRSwgMHgwMTMsIDB4MDQ4LCAweDAwNywgMHgwM0EsCi0JMHgwMUMsIDB4MDg0LCAweDA3MywgMHgwNjYsIDB4MDY2LCAweDA0MiwgMHgwRjMsIDB4MDY2LAotCTB4MDY2LCAweDA0MCwgMHgwNzksIDB4MDkwLCAweDAyOSwgMHgwMTgsIDB4MEU3LCAweDAwQSwKLQkweDA5OCwgMHgwOUMsIDB4MDBBLCAweDA5RSwgMHgwQjUsIDB4MDEyLCAweDA1QywgMHgwN0MsCi0JMHgwQzMsIDB4MDMxLCAweDA4QiwgMHgwOTgsIDB4MDJBLCAweDA3QywgMHgwRDMsIDB4MEVELAotCTB4MDM4LCAweDBFOSwgMHgwRDMsIDB4MDRFLCAweDA3NCwgMHgwRUQsIDB4MDQ5LCAweDA5RSwKLQkweDAwQiwgMHgwRkYsIDB4MDQxLCAweDA4RiwgMHgwMjIsIDB4MEQ0LCAweDBENCwgMHgwMzUsCi0JMHgwMTYsIDB4MEU1LCAweDBBMiwgMHgwMkQsIDB4MEVCLCAweDA0NSwgMHgwMzMsIDB4MDhGLAotCTB4MEZDLCAweDBGNywgMHgwQTAsIDB4MDVGLCAweDAyNSwgMHgwMDMsIDB4MDFELCAweDBFNCwKLQkweDAwRSwgMHgwMDYsIDB4MDBBLCAweDAzMCwgMHgwQ0MsIDB4MDBDLCAweDBGMywgMHgwRUIsCi0JMHgwNDAsIDB4MERFLCAweDA2MSwgMHgwQTgsIDB4MDcwLCAweDA5MiwgMHgwMEEsIDB4MDAwLAotCTB4MEUxLCAweDAyNCwgMHgwMUUsIDB4MDAwLCAweDBFMSwgMHgwMjQsIDB4MDFFLCAweDAwMCwKLQkweDBFMSwgMHgwMjQsIDB4MDFFLCAweDAwMCwgMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDAsCi0JMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDEsIDB4MDBGLCAweDA5OCwgMHgwMkEsIDB4MDBCLAotCTB4MEYzLCAweDBBMCwgMHgwQzgsIDB4MEI5LCAweDBBMiwgMHgwQTQsIDB4MDE3LCAweDAzQSwKLQkweDA2OSwgMHgwMDAsIDB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA3NSwgMHgwNDgsCi0JMHgwNUUsIDB4MDcwLCAweDA2OSwgMHgwMDEsIDB4MEU2LCAweDAwMCwgMHgwNTIsIDB4MDMxLAotCTB4MENDLCAweDAxOCwgMHgwMTQsIDB4MEE1LCAweDBDQywgMHgwMDksIDB4MDgyLCAweDA5NCwKLQkweDA3MywgMHgwMEMsIDB4MEEwLCAweDA5MSwgMHgwRjUsIDB4MDI1LCAweDBDQywgMHgwMDcsCi0JMHgwMDYsIDB4MDg0LCAweDA4NCwgMHgwOUYsIDB4MDMwLCAweDBBMiwgMHgwQTQsIDB4MDdELAotCTB4MDUwLCAweDA3NSwgMHgwQTYsIDB4MDY1LCAweDAwMSwgMHgwNEEsIDB4MDhFLCAweDBCNCwKLQkweDBDQywgMHgwQzQsIDB4MDM1LCAweDA1NCwgMHgwNzUsIDB4MDY2LCAweDBBNCwgMHgwOTcsCi0JMHgwN0EsIDB4MDg5LCAweDA1MCwgMHgwNTMsIDB4MDEzLCAweDA4MCwgMHgwMTksIDB4MEUzLAotCTB4MDQ5LCAweDA1QywgMHgwNkQsIDB4MENFLCAweDBBOSwgMHgwNDAsIDB4MDM1LCAweDAwNiwKLQkweDA3OCwgMHgwRDIsIDB4MDU3LCAweDAwNiwgMHgwRjEsIDB4MEIzLCAweDAyQSwgMHgwOEQsCi0JMHgwOTcsIDB4MDIzLCAweDA2MiwgMHgwOTIsIDB4MDVELCAweDA2OSwgMHgwOTksIDB4MDFDLAotCTB4MDZBLCAweDAzNiwgMHgwRTYsIDB4MENELCAweDA0NiwgMHgwMTIsIDB4MDZGLCAweDA5RSwKLQkweDBFMSwgMHgwQUIsIDB4MEU0LCAweDBBMywgMHgwMEMsIDB4MEMwLCAweDBERSwgMHgwQUMsCi0JMHgwRDQsIDB4MDBELCAweDAyOCwgMHgwMUIsIDB4MEQwLCAweDAxMiwgMHgwQTUsIDB4MDAwLAotCTB4MEY4LCAweDA0QiwgMHgwQUQsIDB4MDMzLCAweDAyOCwgMHgwMDYsIDB4MEEwLCAweDBERSwKLQkweDAxNCwgMHgwOTcsIDB4MDNBLCAweDA4OSwgMHgwNUQsIDB4MEMwLCAweDAwRCwgMHgwRTMsCi0JMHgwMDYsIDB4MDkwLCAweDA5MiwgMHgwNUQsIDB4MDY5LCAweDA5OCwgMHgwNjYsIDB4MEI5LAotCTB4MDE5LCAweDA5NSwgMHgwRTQsIDB4MEE4LCAweDBDRiwgMHgwOUQsIDB4MDMzLCAweDAxOCwKLQkweDA0OSwgMHgwQkUsIDB4MDdCLCAweDA4NiwgMHgwQUYsIDB4MDkyLCAweDA4QywgMHgwMzMsCi0JMHgwMjQsIDB4MDE0LCAweDAwQywgMHgwRjQsIDB4MDgzLCAweDAyNCwgMHgwMjEsIDB4MEMyLAotCTB4MDcwLCAweDBCRiwgMHgwRjQsIDB4MDE4LCAweDBGMiwgMHgwMkQsIDB4MDRELCAweDA0MywKLQkweDA1MSwgMHgwNkUsIDB4MDVBLCAweDAyMiwgMHgwMUYsIDB4MDMyLCAweDBBOCwgMHgwMkYsCi0JMHgwQ0UsIDB4MDgzLCAweDAyMiwgMHgwRTYsIDB4MDA1LCAweDBBNCwgMHgwMTcsIDB4MDNBLAotCTB4MDY5LCAweDAwMCwgMHgwRTcsIDB4MDQzLCAweDA5MCwgMHgwOEUsIDB4MDc1LCAweDA0OCwKLQkweDA1RSwgMHgwNzAsIDB4MDY5LCAweDAwMSwgMHgwRTYsIDB4MDQyLCAweDBBNCwgMHgwNjMsCi0JMHgwOTgsIDB4MDAyLCAweDAyOSwgMHgwNEIsIDB4MDlBLCAweDAyOSwgMHgwNzgsIDB4MEU5LAotCTB4MDQwLCAweDA1MywgMHgwMTMsIDB4MDgxLCAweDA4MSwgMHgwMzIsIDB4MDY3LCAweDA4MiwKLQkweDBGRiwgMHgwRDAsIDB4MDYzLCAweDBDOCwgMHgwQjUsIDB4MDM1LCAweDAwRCwgMHgwNDUsCi0JMHgwQUUsIDB4MDUwLCAweDAwOCwgMHgwN0MsIDB4MEUwLCAweDBEMCwgMHgwNUYsIDB4MDlELAotCTB4MDA2LCAweDA0NSwgMHgwQ0MsIDB4MDAxLCAweDBBNCwgMHgwMTcsIDB4MDNBLCAweDA2OSwKLQkweDAwMCwgMHgwRTcsIDB4MDQzLCAweDA5MCwgMHgwOEUsIDB4MDc1LCAweDA0OCwgMHgwNUUsCi0JMHgwNzAsIDB4MDY5LCAweDAwMSwgMHgwRTYsIDB4MDU5LCAweDBBNCwgMHgwNjMsIDB4MDk4LAotCTB4MDFDLCAweDA1MiwgMHgwOTcsIDB4MDNCLCAweDAzMCwgMHgwNTIsIDB4MDhFLCAweDA3RCwKLQkweDAyQSwgMHgwMDksIDB4MDFGLCAweDA1MSwgMHgwRUIsIDB4MEE0LCAweDBBNCwgMHgwMEEsCi0JMHgwQjksIDB4MDk0LCAweDA4NywgMHgwQUUsIDB4MEM1LCAweDAzMSwgMHgwMzgsIDB4MDAyLAotCTB4MEZGLCAweDBEMCwgMHgwNjMsIDB4MEM4LCAweDBCNSwgMHgwMzUsIDB4MDBELCAweDA0NSwKLQkweDBBRSwgMHgwNTAsIDB4MDA4LCAweDA3QywgMHgwRUEsIDB4MDIwLCAweDBCRiwgMHgwM0EsCi0JMHgwMEMsIDB4MDhCLCAweDA5QSwgMHgwMTYsIDB4MDkwLCAweDA1QywgMHgwRTksIDB4MEE0LAotCTB4MDAzLCAweDA5RCwgMHgwMEUsIDB4MDQyLCAweDAzOSwgMHgwRDUsIDB4MDIxLCAweDA3OSwKLQkweDA5NSwgMHgwNDgsIDB4MDBGLCAweDAzMCwgMHgwMEEsIDB4MDkxLCAweDA4RSwgMHgwNjAsCi0JMHgwRUIsIDB4MDI5LCAweDA3MywgMHgwMDAsIDB4MDA5LCAweDA1NCwgMHgwMDQsIDB4MENBLAotCTB4MDgyLCAweDA2NSwgMHgwNTIsIDB4MDY1LCAweDBFNCwgMHgwQ0EsIDB4MDIyLCAweDA2NSwKLQkweDA3MiwgMHgwNjUsIDB4MDA5LCAweDAzMiwgMHgwRTAsIDB4MDk5LCAweDA3MiwgMHgwNEMsCi0JMHgwQzQsIDB4MEUwLCAweDAwQiwgMHgwRkYsIDB4MDQxLCAweDA4RiwgMHgwMjIsIDB4MEQ0LAotCTB4MEQ0LCAweDAzNSwgMHgwMTYsIDB4MEI5LCAweDA0MCwgMHgwMjEsIDB4MEYzLCAweDA4QSwKLQkweDA4MiwgMHgwRkMsIDB4MEU4LCAweDAzMiwgMHgwMkUsIDB4MDYwLCAweDBBOSwgMHgwMDUsCi0JMHgwQ0UsIDB4MDlBLCAweDA0MCwgMHgwMzksIDB4MEQwLCAweDBFNCwgMHgwMjMsIDB4MDlELAotCTB4MDUyLCAweDAxNywgMHgwOTksIDB4MDU0LCAweDA2MSwgMHgwOTksIDB4MDAxLCAweDBFNiwKLQkweDA0MCwgMHgwQTQsIDB4MDYzLCAweDA5OCwgMHgwMDQsIDB4MEIxLCAweDA4NCwgMHgwOTgsCi0JMHgwMTgsIDB4MEVGLCAweDAyRCwgMHgwMDMsIDB4MDA1LCAweDAzMSwgMHgwMzgsIDB4MDAyLAotCTB4MEZGLCAweDBEMCwgMHgwNjMsIDB4MEM4LCAweDBCNSwgMHgwMzUsIDB4MDBELCAweDA0NSwKLQkweDBCOSwgMHgwNjgsIDB4MDg4LCAweDA3QywgMHgwRTAsIDB4MDUwLCAweDA1RiwgMHgwOUQsCi0JMHgwMDYsIDB4MDQ1LCAweDBDQywgMHgwODEsIDB4MDQ4LCAweDAyRSwgMHgwNzEsIDB4MDM0LAotCTB4MDhGLCAweDA0OCwgMHgwMDEsIDB4MDQ4LCAweDAxNSwgMHgwMjEsIDB4MDA1LCAweDAyMSwKLQkweDBFOSwgMHgwMEEsIDB4MDUyLCAweDAwMywgMHgwQ0UsIDB4MDVBLCAweDA0NiwgMHgwMzksCi0JMHgwQ0YsIDB4MDQ3LCAweDA4RSwgMHgwNjAsIDB4MEFCLCAweDAxQSwgMHgwRjMsIDB4MDUzLAotCTB4MDQzLCAweDBFQiwgMHgwMzUsIDB4MDI0LCAweDBCOCwgMHgwMUIsIDB4MDMwLCAweDAwNywKLQkweDAwOSwgMHgwOEEsIDB4MDc0LCAweDAyRiwgMHgwN0UsIDB4MDQxLCAweDA3NCwgMHgwMUUsCi0JMHgwMUQsIDB4MDBELCAweDA4NywgMHgwNDYsIDB4MDQ5LCAweDBENSwgMHgwOTUsIDB4MEQxLAotCTB4MEQ1LCAweDBENSwgMHgwQkIsIDB4MEE5LCAweDA0RSwgMHgwODIsIDB4MDlELCAweDAwNSwKLQkweDAzQSwgMHgwMEEsIDB4MDc0LCAweDAxNCwgMHgwRTgsIDB4MDI5LCAweDBEMCwgMHgwNDIsCi0JMHgwNzQsIDB4MDVCLCAweDBDRSwgMHgwNTAsIDB4MEM0LCAweDAwNywgMHgwNDUsIDB4MEJDLAotCTB4MEUyLCAweDAwQywgMHgwNDAsIDB4MDc0LCAweDA1QiwgMHgwQ0UsIDB4MDgzLCAweDAwNCwKLQkweDBGOSwgMHgwOTUsIDB4MDRELCAweDAxMywgMHgwNjMsIDB4MDVFLCAweDA2RiwgMHgwMzEsCi0JMHgwM0IsIDB4MEEwLCAweDA4QiwgMHgwQTIsIDB4MEM1LCAweDAzOSwgMHgwOEQsIDB4MDc4LAotCTB4MDNBLCAweDAyMiwgMHgwQTAsIDB4MDAwLCAweDA2QiwgMHgwQzEsIDB4MEQxLCAweDA1NCwKLQkweDA2MCwgMHgwMTYsIDB4MEQ5LCAweDA5MSwgMHgwQTIsIDB4MEU3LCAweDA0MywgMHgwOEMsCi0JMHgwMjQsIDB4MERDLCAweDAxQywgMHgwRTAsIDB4MDUxLCAweDAxNywgMHgwMzksIDB4MDZCLAotCTB4MDNCLCAweDBDQywgMHgwNEIsIDB4MDQyLCAweDAyRSwgMHgwNkIsIDB4MDUwLCAweDBCRiwKLQkweDAzNiwgMHgwMzYsIDB4MDY1LCAweDA0RiwgMHgwN0EsIDB4MDE4LCAweDA1NSwgMHgwMjUsCi0JMHgwNzgsIDB4MDk4LCAweDAyMywgMHgwRTcsIDB4MDUwLCAweDAzRSwgMHgwRjMsIDB4MDgxLAotCTB4MDRDLCAweDAwMiwgMHgwNkQsIDB4MDNFLCAweDA3MSwgMHgwNTMsIDB4MEFGLCAweDA3OCwKLQkweDBBOSwgMHgwRDQsIDB4MEE2LCAweDAyOSwgMHgwQjEsIDB4MEJDLCAweDBEOSwgMHgwOTksCi0JMHgwQjIsIDB4MDhFLCAweDA2MiwgMHgwOEYsIDB4MDIyLCAweDAyRSwgMHgwNzUsIDB4MDE2LAotCTB4MEIwLCAweDBCMiwgMHgwQUIsIDB4MDIzLCAweDAyOCwgMHgwMTYsIDB4MDU0LCAweDA1MiwKLQkweDAzMSwgMHgwQkMsIDB4MEQ5LCAweDA5OSwgMHgwQjIsIDB4MDhFLCAweDA2NiwgMHgwMTksCi0JMHgwMDIsIDB4MDJFLCAweDA3NSwgMHgwMTYsIDB4MDUwLCAweDAyQywgMHgwQTksIDB4MEM4LAotCTB4MEM2LCAweDBGNSwgMHgwMjAsIDB4MEQzLCAweDBFNCwgMHgwN0YsIDB4MDRGLCAweDA5QywKLQkweDAwQSwgMHgwRDYsIDB4MDE2LCAweDA3RiwgMHgwOTAsIDB4MEVFLCAweDA0QywgMHgwRUIsCi0JMHgwQ0YsIDB4MEUyLCAweDA4OCwgMHgwQkEsIDB4MDJGLCAweDA0MiwgMHgwODYsIDB4MEFFLAotCTB4MEJELCAweDBFNSwgMHgwQTcsIDB4MDUyLCAweDA5RiwgMHgwOTMsIDB4MDYzLCAweDA3OSwKLQkweDBFQiwgMHgwMzMsIDB4MDA4LCAweDBGOSwgMHgwOTQsIDB4MDUyLCAweDA0NywgMHgwQ0QsCi0JMHgwOTksIDB4MDI1LCAweDA2RiwgMHgwM0EsIDB4MDBDLCAweDAxMywgMHgwRTYsIDB4MDU1LAotCTB4MDM0LCAweDA0QywgMHgwNUEsIDB4MDRELCAweDBCNSwgMHgwMjMsIDB4MDk1LCAweDBBNSwKLQkweDA0OCwgMHgwMTEsIDB4MDVBLCAweDAwQSwgMHgwNDMsIDB4MDk1LCAweDBBQywgMHgwMkMsCi0JMHgwQkEsIDB4MDI0LCAweDAwNSwgMHgwNDksIDB4MEIxLCAweDBCQywgMHgwQ0EsIDB4MEE3LAotCTB4MDcyLCAweDA2QywgMHgwNkIsIDB4MEM1LCAweDBCRCwgMHgwRTgsIDB4MDMxLCAweDA2OSwKLQkweDA1MiwgMHgwNUQsIDB4MDA2LCAweDAxMiwgMHgwNjUsIDB4MDNFLCAweDBCMSwgMHgwNTAsCi0JMHgwNEMsIDB4MDdELCAweDA0RiwgMHgwQUMsIDB4MDBBLCAweDAzMCwgMHgwMEIsIDB4MDM2LAotCTB4MDY0LCAweDAxMSwgMHgwNzMsIDB4MDhBLCAweDA4MywgMHgwOEUsIDB4MDc1LCAweDAxMiwKLQkweDA5RiwgMHgwN0IsIDB4MEQyLCAweDA5OSwgMHgwNTgsIDB4MEVFLCAweDA4MiwgMHgwMkUsCi0JMHgwNzcsIDB4MEEwLCAweDBFMywgMHgwOUQsIDB4MDVELCAweDA0RiwgMHgwQkMsIDB4MDJBLAotCTB4MDUzLCAweDAyOSwgMHgwNTMsIDB4MERFLCAweDA5MywgMHgwMjQsIDB4MEJBLCAweDBCMywKLQkweDAzNiwgMHgwQUEsIDB4MDRBLCAweDBDNiwgMHgwNzksIDB4MEQ0LCAweDBCOSwgMHgwREUsCi0JMHgwNjIsIDB4MDVBLCAweDAxMSwgMHgwNzMsIDB4MDUwLCAweDA1MCwgMHgwQkYsIDB4MDM3LAotCTB4MDM2LCAweDA2RiwgMHgwMTMsIDB4MDIzLCAweDBCQSwgMHgwMEMsIDB4MDI0LCAweDBDRSwKLQkweDBCRCwgMHgwRTIsIDB4MEE3LCAweDA1MiwgMHgwQjIsIDB4MDhFLCAweDA2QiwgMHgwNjAsCi0JMHgwNjIsIDB4MDJFLCAweDA3NSwgMHgwMTMsIDB4MDMwLCAweDBBQywgMHgwQTAsIDB4MDU5LAotCTB4MENBLCAweDA2NCwgMHgwNjMsIDB4MDc5LCAweDBCMywgMHgwMzMsIDB4MDY1LCAweDAxQywKLQkweDBDQywgMHgwMzIsIDB4MDA0LCAweDA1QywgMHgwRUEsIDB4MDJDLCAweDBBMCwgMHgwNTksCi0JMHgwREYsIDB4MDIzLCAweDAxQiwgMHgwRDQsIDB4MDgzLCAweDA1MiwgMHgwNDcsIDB4MERELAotCTB4MDc5LCAweDA5NiwgMHgwRDQsIDB4MDlFLCAweDBCMywgMHgwNTIsIDB4MDRCLCAweDBBMiwKLQkweDA1QSwgMHgwMUEsIDB4MDhELCAweDA1RCwgMHgwN0IsIDB4MDgyLCAweDBBNywgMHgwNTIsCi0JMHgwQjIsIDB4MDhFLCAweDA2NiwgMHgwMTksIDB4MDAyLCAweDAyRSwgMHgwNzUsIDB4MDE2LAotCTB4MDUwLCAweDAyQywgMHgwOEMsIDB4MDMyLCAweDAxRCwgMHgwN0IsIDB4MDhFLCAweDBBNywKLQkweDA1MiwgMHgwQjEsIDB4MEJDLCAweDBEOSwgMHgwOTksIDB4MDk4LCAweDAwNCwgMHgwREEsCi0JMHgwN0MsIDB4MEUyLCAweDBBQywgMHgwRkUsIDB4MDY2LCAweDAxOSwgMHgwMDIsIDB4MDJFLAotCTB4MDY1LCAweDA1MCwgMHgwQkYsIDB4MDMzLCAweDA2NiwgMHgwNjQsIDB4MEZFLCAweDA3NCwKLQkweDAxOCwgMHgwODYsIDB4MDRDLCAweDAxNywgMHgwMjYsIDB4MEQ2LCAweDAxNiwgMHgwNTIsCi0JMHgwMzksIDB4MDE4LCAweDBERSwgMHgwN0EsIDB4MENDLCAweDBDMiwgMHgwM0UsIDB4MDY1LAotCTB4MDE0LCAweDA5MSwgMHgwRjMsIDB4MDY2LCAweDA0OSwgMHgwMDgsIDB4MDZFLCAweDA4MywKLQkweDAwOSwgMHgwMzMsIDB4MEFGLCAweDAzMSwgMHgwRUQsIDB4MDBELCAweDA5RCwgMHgwMDYsCi0JMHgwMTIsIDB4MDYyLCAweDAyQSwgMHgwMzEsIDB4MDhELCAweDA2RCwgMHgwRTcsIDB4MDQxLAotCTB4MDgyLCAweDA3QywgMHgwQ0EsIDB4MEE2LCAweDA4OSwgMHgwODcsIDB4MDA5LCAweDAyRSwKLQkweDAyOSwgMHgwQjEsIDB4MEFGLCAweDAxMCwgMHgwMzksIDB4MEQ2LCAweDA2NCwgMHgwOTcsCi0JMHgwMzAsIDB4MDFELCAweDA0MiwgMHgwNzUsIDB4MDkzLCAweDA0NCwgMHgwMDIsIDB4MDhDLAotCTB4MDI0LCAweDBEMiwgMHgwN0EsIDB4MEIzLCAweDA1MCwgMHgwRjYsIDB4MDg5LCAweDAwNSwKLQkweDA0MywgMHgwNUUsIDB4MDYxLCAweDA5OCwgMHgwQzAsIDB4MDJDLCAweDA5MiwgMHgwMjUsCi0JMHgwM0MsIDB4MDhCLCAweDAyNCwgMHgwODksIDB4MDQ5LCAweDAwNSwgMHgwNDksIDB4MEU3LAotCTB4MDBDLCAweDBCOSwgMHgwODQsIDB4MDk4LCAweDBCNywgMHgwQUQsIDB4MDMzLCAweDA0NCwKLQkweDBBRSwgMHgwNUEsIDB4MDUxLCAweDA4NiwgMHgwNjAsIDB4MDlGLCAweDAzOCwgMHgwQTksCi0JMHgwQTIsIDB4MDZDLCAweDA2QiwgMHgwQzQsIDB4MDhFLCAweDBGNCwgMHgwNUUsIDB4MDQ5LAotCTB4MDQ2LCAweDAxMiwgMHgwNjIsIDB4MERFLCAweDBCNCwgMHgwQ0QsIDB4MDIxLCAweDA1QywKLQkweDBCNCwgMHgwQTMsIDB4MDBDLCAweDBDMSwgMHgwM0UsIDB4MDcyLCAweDAyOSwgMHgwQTIsCi0JMHgwNkMsIDB4MDZCLCAweDBDNiwgMHgwMTIsIDB4MDYyLCAweDA0NywgMHgwRjAsIDB4MEU4LAotCTB4MEMzLCAweDAzMiwgMHgwMDQsIDB4MDM1LCAweDA0MCwgMHgwOTIsIDB4MEE0LCAweDA4MiwKLQkweDA4OCwgMHgwMTAsIDB4MDkyLCAweDA3QywgMHgwQ0IsIDB4MEQ0LCAweDAyRiwgMHgwQTQsCi0JMHgwMDIsIDB4MDExLCAweDA4NCwgMHgwOTgsIDB4MEI3LCAweDBBRCwgMHgwMzMsIDB4MDQ0LAotCTB4MEFFLCAweDA1QSwgMHgwNTEsIDB4MDg2LCAweDA2MCwgMHgwOUYsIDB4MDM4LCAweDBBOSwKLQkweDBBMiwgMHgwNkMsIDB4MDZCLCAweDBDNCwgMHgwOEUsIDB4MEY0LCAweDA1RSwgMHgwNDksCi0JMHgwNDQsIDB4MDA4LCAweDA0OSwgMHgwM0UsIDB4MDY1LCAweDBFQSwgMHgwMTcsIDB4MEQyLAotCTB4MDAxLCAweDAwOCwgMHgwQzIsIDB4MDRDLCAweDA1QiwgMHgwRDYsIDB4MDk5LCAweDBBNCwKLQkweDAyQiwgMHgwOTYsIDB4MDk0LCAweDA2MSwgMHgwOTgsIDB4MDI3LCAweDBDRSwgMHgwNDUsCi0JMHgwMzQsIDB4MDRELCAweDA4RCwgMHgwNzgsIDB4MDgxLCAweDAwOSwgMHgwMjcsIDB4MENDLAotCTB4MEJELCAweDAxMiwgMHgwMjgsIDB4MDZDLCAweDA1OCwgMHgwQUYsIDB4MEI2LCAweDBGMywKLQkweDBBMCwgMHgwQzEsIDB4MDNFLCAweDA2NSwgMHgwNTMsIDB4MDQ0LCAweDBEOCwgMHgwRDcsCi0JMHgwOTIsIDB4MDhFLCAweDA3RCwgMHgwNEIsIDB4MEMyLCAweDBGQSwgMHgwNjEsIDB4MDI2LAotCTB4MDA2LCAweDAzQSwgMHgwQjMsIDB4MDZCLCAweDAwMywgMHgwMDUsIDB4MDQ5LCAweDBFNywKLQkweDAwQywgMHgwQjksIDB4MDZGLCAweDA1QSwgMHgwNjYsIDB4MDk1LCAweDA1QywgMHgwQjQsCi0JMHgwQTMsIDB4MDBDLCAweDBDMSwgMHgwM0UsIDB4MDcwLCAweDAyOSwgMHgwQTIsIDB4MDZFLAotCTB4MEE0LCAweDBERiwgMHgwOTMsIDB4MDcxLCAweDAxMywgMHgwNzcsIDB4MDI2LCAweDBFMSwKLQkweDAyNiwgMHgwRjgsIDB4MDI2LCAweDBDNiwgMHgwQkMsIDB4MDk0LCAweDA3MywgMHgwRjksCi0JMHgwMkYsIDB4MDBCLCAweDBFOSwgMHgwODQsIDB4MDk4LCAweDAxOCwgMHgwRUEsIDB4MENDLAotCTB4MEVDLCAweDAwQywgMHgwMTUsIDB4MDI3LCAweDA5QywgMHgwMzIsIDB4MEZGLCAweDAzRCwKLQkweDA1NiwgMHgwQUYsIDB4MDkyLCAweDA4QiwgMHgwN0EsIDB4MEQzLCAweDAzNSwgMHgwRDUsCi0JMHgwQ0IsIDB4MDRBLCAweDAzMCwgMHgwQ0MsIDB4MDEzLCAweDBFNywgMHgwMDIsIDB4MDlBLAotCTB4MDI2LCAweDBDNiwgMHgwQkMsIDB4MDk0LCAweDA3MywgMHgwNDEsIDB4MDk3LCAweDA5MSwKLQkweDBGNCwgMHgwODMsIDB4MENFLCAweDAwNCwgMHgwMjAsIDB4MDYyLCAweDA4QiwgMHgwMDUsCi0JMHgwMTYsIDB4MDQ5LCAweDA4QywgMHgwMjQsIDB4MEMwLCAweDBDNywgMHgwNTYsIDB4MDkwLAotCTB4MEMwLCAweDBDMSwgMHgwNTIsIDB4MDc5LCAweDBDMywgMHgwMkUsIDB4MDVCLCAweDBENSwKLQkweDBBNiwgMHgwNzIsIDB4MEQyLCAweDA5NCwgMHgwRkEsIDB4MEFELCAweDA1OCwgMHgwQzgsCi0JMHgwRkEsIDB4MDlGLCAweDA1NCwgMHgwQjMsIDB4MDMyLCAweDA0QiwgMHgwQjksIDB4MDU0LAotCTB4MEE2LCAweDA1MSwgMHgwODYsIDB4MDZCLCAweDA3OSwgMHgwRDAsIDB4MDYwLCAweDA5RiwKLQkweDAzMiwgMHgwMDUsIDB4MDM0LCAweDA0RCwgMHgwOEQsIDB4MDdBLCAweDA0RCwgMHgwMUUsCi0JMHgwN0EsIDB4MEIzLCAweDA1MSwgMHgwMDAsIDB4MEE5LCAweDAzRCwgMHgwNTksIDB4MEE4LAotCTB4MDdCLCAweDA0NCwgMHgwODIsIDB4MEExLCAweDBBRiwgMHgwNEEsIDB4MDhELCAweDA1MiwKLQkweDBBOSwgMHgwNTIsIDB4MDQxLCAweDA0OSwgMHgwNEYsIDB4MDNBLCAweDAyRSwgMHgwNDAsCi0JMHgwQTQsIDB4MDk5LCAweDA1MCwgMHgwQkUsIDB4MDkwLCAweDAwOCwgMHgwNTIsIDB4MDc5LAotCTB4MEMzLCAweDAyRSwgMHgwNjEsIDB4MDI2LCAweDAyRCwgMHgwRUIsIDB4MDRDLCAweDBEMCwKLQkweDAxNSwgMHgwQ0IsIDB4MDRBLCAweDAzMCwgMHgwQ0MsIDB4MDEzLCAweDBFNywgMHgwMDIsCi0JMHgwOUEsIDB4MDI2LCAweDBDNiwgMHgwQkMsIDB4MDQ4LCAweDBGRSwgMHgwMUQsIDB4MDI1LAotCTB4MDQ2LCAweDBBOSwgMHgwNTQsIDB4MEE5LCAweDAyMCwgMHgwQTQsIDB4MEE3LCAweDA5RCwKLQkweDAxNywgMHgwMjAsIDB4MDUyLCAweDA0QywgMHgwQTgsIDB4MDVGLCAweDA0OCwgMHgwMDQsCi0JMHgwMjMsIDB4MDA5LCAweDAzMSwgMHgwNkYsIDB4MDVBLCAweDA2NiwgMHgwODAsIDB4MEFFLAotCTB4MDVBLCAweDA1MSwgMHgwODYsIDB4MDYwLCAweDA5RiwgMHgwMzgsIDB4MDE0LCAweDBEMSwKLQkweDAzNiwgMHgwMzUsIDB4MEU0LCAweDBBNywgMHgwOUQsIDB4MDE3LCAweDAyMCwgMHgwNTIsCi0JMHgwNEMsIDB4MEEyLCAweDA0NSwgMHgwMEQsIDB4MDhCLCAweDAxNSwgMHgwRjQsIDB4MDkxLAotCTB4MERFLCAweDA4QiwgMHgwQzksIDB4MDI4LCAweDBDMiwgMHgwNEMsIDB4MDVCLCAweDBENiwKLQkweDA5OSwgMHgwQTksIDB4MDVDLCAweDBCNCwgMHgwQTMsIDB4MDBDLCAweDBENiwgMHgwRjMsCi0JMHgwQTAsIDB4MEMxLCAweDAzRSwgMHgwNjQsIDB4MDBBLCAweDA2OCwgMHgwOUIsIDB4MDFBLAotCTB4MEYxLCAweDA2RCwgMHgwNEMsIDB4MEFBLCAweDA5MiwgMHgwRTAsIDB4MDM2LCAweDA5NCwKLQkweDA3MCwgMHgwOUIsIDB4MDI5LCAweDA3OCwgMHgwMTMsIDB4MEFFLCAweDBCMywgMHgwQUEsCi0JMHgwODUsIDB4MEQ0LCAweDA0MywgMHgwNzUsIDB4MDA5LCAweDAzQSwgMHgwQzksIDB4MEVCLAotCTB4MDM1LCAweDAyNCwgMHgwQjgsIDB4MDFCLCAweDAzMiwgMHgwOEUsIDB4MDEzLCAweDA0OCwKLQkweDA3RSwgMHgwNEUsIDB4MEZELCAweDA0MCwgMHgwRkQsIDB4MDQwLCAweDBGRCwgMHgwNDAsCi0JMHgwRkQsIDB4MDQwLCAweDBGRCwgMHgwNDAsIDB4MEZDLCAweDAxMywgMHgwRjQsIDB4MDIxLAotCTB4MEY5LCAweDAxNywgMHgwNDUsIDB4MDhBLCAweDAzMCwgMHgwMEIsIDB4MDMzLCAweDA1RiwKLQkweDA4MywgMHgwQTIsIDB4MDJBLCAweDAzMCwgMHgwMEIsIDB4MDMzLCAweDA1RiwgMHgwODMsCi0JMHgwQTIsIDB4MEE4LCAweDBDMCwgMHgwMkQsIDB4MEIzLCAweDAyMCwgMHgwNzAsIDB4MDkyLAotCTB4MDEzLCAweDA5QSwgMHgwREUsIDB4MDc0LCAweDAxOCwgMHgwMjcsIDB4MENDLCAweDBBQSwKLQkweDA2OCwgMHgwOUIsIDB4MDFBLCAweDBGNywgMHgwMDcsIDB4MDQ1LCAweDA1MSwgMHgwODAsCi0JMHgwNUIsIDB4MDY2LCAweDA0NywgMHgwMDcsIDB4MDM4LCAweDBBOCwgMHgwMjMsIDB4MEU3LAotCTB4MDUxLCAweDAxMSwgMHgwM0YsIDB4MEUwLCAweDBFOCwgMHgwODUsIDB4MDQ2LCAweDAwMSwKLQkweDA2RCwgMHgwOTksIDB4MDA2LCAweDAxMiwgMHgwNjUsIDB4MDRGLCAweDA3QSwgMHgwMjAsCi0JMHgwMjQsIDB4MEJBLCAweDBCMywgMHgwMzIsIDB4MDE1LCAweDAyNSwgMHgwN0IsIDB4MEFELAotCTB4MDMzLCAweDA3OCwgMHgwQUUsIDB4MDBFLCAweDA3MywgMHgwRDAsIDB4MDQ3LCAweDBDRSwKLQkweDBBNywgMHgwMzAsIDB4MENDLCAweDA0NCwgMHgwRkYsIDB4MDgzLCAweDBBMiwgMHgwQTgsCi0JMHgwQzAsIDB4MDJDLCAweDBEOSwgMHgwOTEsIDB4MEMxLCAweDBEMSwgMHgwMTUsIDB4MDE4LAotCTB4MDA1LCAweDA5QiwgMHgwMzIsIDB4MDA4LCAweDBCQSwgMHgwMkMsIDB4MDUxLCAweDA4MCwKLQkweDA1OSwgMHgwQjMsIDB4MDIwLCAweDA3MCwgMHgwOTIsIDB4MEUyLCAweDA5OCwgMHgwODksCi0JMHgwRkQsIDB4MEJDLCAweDBFRSwgMHgwMTgsIDB4MDkwLCAweDBGQywgMHgwOEIsIDB4MEEyLAotCTB4MEM1LCAweDAyQiwgMHgwMEQsIDB4MDc4LCAweDAzQSwgMHgwMjIsIDB4MEE1LCAweDA2MSwKLQkweDBBRiwgMHgwMDcsIDB4MDQ1LCAweDA1MSwgMHgwODAsIDB4MDVCLCAweDA2NiwgMHgwNDQsCi0JMHgwOUUsIDB4MEIzLCAweDA1MiwgMHgwNEIsIDB4MDgzLCAweDBBRCwgMHgwQzcsIDB4MDA5LAotCTB4MEJFLCAweDAxRiwgMHgwOUYsIDB4MDc0LCAweDA2NSwgMHgwNUQsIDB4MDBBLCAweDAxNywKLQkweDA3QywgMHgwQUIsIDB4MEEwLCAweDBDMiwgMHgwNEMsIDB4MDM4LCAweDA0OSwgMHgwMTIsCi0JMHgwMkUsIDB4MDM4LCAweDA0OSwgMHgwMDcsIDB4MEEzLCAweDAwQywgMHgwQzEsIDB4MDNFLAotCTB4MDY1LCAweDA1MywgMHgwNDQsIDB4MEQ4LCAweDBENywgMHgwQUQsIDB4MEU3LCAweDAwMCwKLQkweDAzMiwgMHgwNEIsIDB4MDlCLCAweDAzMywgMHgwMzQsIDB4MDRBLCAweDAwMywgMHgwMDAsCi0JMHgwOUQsIDB4MDI1LCAweDBDRSwgMHgwODMsIDB4MDI0LCAweDBCOCwgMHgwMTksIDB4MDk5LAotCTB4MDhDLCAweDAwMiwgMHgwMTIsIDB4MDRCLCAweDBBMSwgMHgwOTksIDB4MEQ4LCAweDBDMCwKLQkweDAyNywgMHgwNDksIDB4MDczLCAweDBDRiwgMHgwRjksIDB4MDNDLCAweDBGNCwgMHgwN0MsCi0JMHgwRTcsIDB4MDk4LCAweDAwNCwgMHgwRTksIDB4MDJFLCAweDA3RiwgMHgwMzksIDB4MEUzLAotCTB4MDRGLCAweDA0NiwgMHgwNTMsIDB4MEMwLCAweDA2MCwgMHgwMTMsIDB4MEE0LCAweDBCOSwKLQkweDBFNSwgMHgwM0MsIDB4MDAzLCAweDBERSwgMHgwOEYsIDB4MDlDLCAweDBGMywgMHgwMDAsCi0JMHgwOUMsIDB4MDZGLCAweDBDRiwgMHgwM0UsIDB4MDg1LCAweDBGOSwgMHgwQTMsIDB4MDM2LAotCTB4MDAyLCAweDAxRSwgMHgwNjAsIDB4MDM4LCAweDA5MiwgMHgwM0UsIDB4MDYzLCAweDAxQSwKLQkweDAxMCwgMHgwOUYsIDB4MENGLCAweDAxOCwgMHgwMTAsIDB4MDkyLCAweDBCQywgMHgwRDAsCi0JMHgwQTQsIDB4MDBDLCAweDBEQywgMHgwQzAsIDB4MDBGLCAweDA5QywgMHgwOTcsIDB4MDM0LAotCTB4MDYyLCAweDBCNiwgMHgwRTcsIDB4MEYzLCAweDBGMywgMHgwQTUsIDB4MENGLCAweDAxOCwKLQkweDA0MiwgMHgwMzQsIDB4MDFDLCAweDBDMiwgMHgwQ0EsIDB4MEZBLCAweDA4RSwgMHgwNjgsCi0JMHgwNTIsIDB4MDA2LCAweDBBRiwgMHgwM0MsIDB4MEEzLCAweDAwRCwgMHgwQkYsIDB4MDlFLAotCTB4MDUwLCAweDBFMSwgMHgwRDEsIDB4MDczLCAweDBDQSwgMHgwRTAsIDB4MDNBLCAweDBGQywKLQkweDBDMSwgMHgwMDksIDB4MDFBLCAweDAxRSwgMHgwNkEsIDB4MDVDLCAweDA1QiwgMHgwOEUsCi0JMHgwNjMsIDB4MDRFLCAweDA3NywgMHgwNzMsIDB4MENDLCAweDA2MSwgMHgwNjcsIDB4MERELAotCTB4MEU2LCAweDA2QywgMHgwNDgsIDB4MEQxLCAweDBGMywgMHgwMUIsIDB4MDI0LCAweDA2OSwKLQkweDA1MSwgMHgwMDgsIDB4MEQ0LCAweDA0MiwgMHgwMUIsIDB4MEY0LCAweDA2NywgMHgwRDEsCi0JMHgwODAsIDB4MDRFLCAweDAyRiwgMHgwRDAsIDB4MDhDLCAweDBEOCwgMHgwMzAsIDB4MDA5LAotCTB4MEMyLCAweDAxRSwgMHgwODAsIDB4MDFDLCAweDA0NiwgMHgwMDEsIDB4MDNBLCAweDA0NywKLQkweDBEMCwgMHgwMzEsIDB4MEExLCAweDAwNiwgMHgwMDEsIDB4MDNBLCAweDA3RiwgMHgwNDYsCi0JMHgwMzAsIDB4MDIxLCAweDAxOCwgMHgwMDQsIDB4MEU5LCAweDA1RSwgMHgwODQsIDB4MDI5LAotCTB4MDAwLCAweDBDMCwgMHgwMjcsIDB4MENELCAweDBEMCwgMHgwMDAsIDB4MDdDLCAweDA5OCwKLQkweDAwNCwgMHgwRjksIDB4MDJFLCAweDA4NCwgMHgwNjIsIDB4MDhDLCAweDAwMiwgMHgwN0QsCi0JMHgwQkEsIDB4MDNFLCAweDA3RSwgMHgwNEMsIDB4MDAyLCAweDA3RCwgMHgwMkUsIDB4MDhDLAotCTB4MDYxLCAweDAwOCwgMHgwMzAsIDB4MDA5LCAweDBGNCwgMHgwMUQsIDB4MDAxLCAweDA2NSwKLQkweDA3MywgMHgwMDAsIDB4MDlGLCAweDA1MSwgMHgwRDAsIDB4MDg1LCAweDAyMCwgMHgwMTgsCi0JMHgwMDQsIDB4MEZBLCAweDBCRCwgMHgwMTksIDB4MDQ2LCAweDAxOCwgMHgwQzAsIDB4MDI3LAotCTB4MERGLCAweDBEMSwgMHgwOTQsIDB4MDM4LCAweDA0QywgMHgwMDIsIDB4MDdELCAweDAxNywKLQkweDA0NiwgMHgwNTcsIDB4MDAxLCAweDAzMCwgMHgwMDksIDB4MEY1LCAweDBGQSwgMHgwMDEsCi0JMHgwMDksIDB4MDA2LCAweDAwMSwgMHgwM0UsIDB4MDg3LCAweDBBMSwgMHgwNEIsIDB4MDg4LAotCTB4MEMwLCAweDAyNywgMHgwREMsIDB4MDc0LCAweDAwRCwgMHgwMzksIDB4MEQzLCAweDAwMCwKLQkweDA5RiwgMHgwNzMsIDB4MEQwLCAweDAzMCwgMHgwQjMsIDB4MDk4LCAweDAwNCwgMHgwRkIsCi0JMHgwQkQsIDB4MDA2LCAweDBDNCwgMHgwODMsIDB4MDAwLCAweDA5RiwgMHgwNDcsIDB4MEQwLAotCTB4MDM2LCAweDA0OCwgMHgwQ0MsIDB4MDAyLCAweDA3MSwgMHgwQkYsIDB4MDNGLCAweDA5QSwKLQkweDAxNywgMHgwRTYsIDB4MDNGLCAweDAwOCwgMHgwMjEsIDB4MEU2LCAweDA5MiwgMHgwQTQsCi0JMHgwOEYsIDB4MDlBLCAweDAxMCwgMHgwMzEsIDB4MEE3LCAweDBGMywgMHgwMTAsIDB4MEIxLAotCTB4MDg0LCAweDBBRiwgMHgwM0EsIDB4MEFDLCAweDBEQywgMHgwRjcsIDB4MDczLCAweDBGMiwKLQkweDA1QywgMHgwQzYsIDB4MDJBLCAweDBEQiwgMHgwOUUsIDB4MDdFLCAweDA3RSwgMHgwOTcsCi0JMHgwMzEsIDB4MDA4LCAweDA2MywgMHgwRDAsIDB4MDczLCAweDA3QiwgMHgwNDMsIDB4MEE4LAotCTB4MEU2LCAweDAzRCwgMHgwMzQsIDB4MEVBLCAweDBGMywgMHgwRTMsIDB4MDE1LCAweDBCRiwKLQkweDA5RiwgMHgwMTgsIDB4MDVGLCAweDA0NSwgMHgwQ0YsIDB4MEU4LCAweDA5RiwgMHgwNUYsCi0JMHgwOUEsIDB4MDVCLCAweDAwMywgMHgwRDAsIDB4MEYzLCAweDBEMywgMHgwQ0UsIDB4MDM3LAotCTB4MDFDLCAweDBEMCwgMHgwMEYsIDB4MEJCLCAweDA5RSwgMHgwNjgsIDB4MDc4LCAweDAzQiwKLQkweDBCQywgMHgwQ0EsIDB4MDMxLCAweDBFOCwgMHgwRjksIDB4MEEyLCAweDAwMiwgMHgwMTIsCi0JMHgwQTIsIDB4MDczLCAweDA1MSwgMHgwMDgsIDB4MDZGLCAweDBEMSwgMHgwRjMsIDB4MDQ2LAotCTB4MDAxLCAweDAzOCwgMHgwQkYsIDB4MDQwLCAweDBGQywgMHgwMjMsIDB4MDAwLCAweDA5QywKLQkweDAyMSwgMHgwRTgsIDB4MDQ5LCAweDA1MSwgMHgwODAsIDB4MDRFLCAweDA5MSwgMHgwRjQsCi0JMHgwMjEsIDB4MDAzLCAweDAxOSwgMHgwODAsIDB4MDRFLCAweDA5RiwgMHgwRDAsIDB4MDIxLAotCTB4MDYzLCAweDAwNiwgMHgwMDEsIDB4MDNBLCAweDA1NiwgMHgwOEMsIDB4MDAyLCAweDA3NCwKLQkweDBGRSwgMHgwNzUsIDB4MDQ5LCAweDA1RSwgMHgwNjMsIDB4MEQzLCAweDA0QSwgMHgwNTQsCi0JMHgwNDIsIDB4MDM1LCAweDAxMywgMHgwQTcsIDB4MEQxLCAweDA4MCwgMHgwNEUsIDB4MDk1LAotCTB4MEU4LCAweDAxRSwgMHgwOUEsIDB4MDRDLCAweDAwMiwgMHgwN0MsIDB4MERELCAweDAxQiwKLQkweDBCOSwgMHgwRTYsIDB4MDAxLCAweDAzRSwgMHgwNEIsIDB4MEEwLCAweDA2MiwgMHgwQTMsCi0JMHgwMDAsIDB4MDlGLCAweDA2RSwgMHgwOEMsIDB4MEZDLCAweDBGMywgMHgwMDAsIDB4MDlGLAotCTB4MDRCLCAweDBBMCwgMHgwNDIsIDB4MDE4LCAweDBDQywgMHgwMDIsIDB4MDdELCAweDAwNywKLQkweDA0MywgMHgwREEsIDB4MDEzLCAweDAwMCwgMHgwOUYsIDB4MDUxLCAweDBEMCwgMHgwM0QsCi0JMHgwMzQsIDB4MDk4LCAweDAwNCwgMHgwRkEsIDB4MEJELCAweDAxQywgMHgwNjIsIDB4MDhDLAotCTB4MDAyLCAweDA3RCwgMHgwRkQsIDB4MDFDLCAweDA2MSwgMHgwNzMsIDB4MDAwLCAweDA5RiwKLQkweDA0NSwgMHgwRDEsIDB4MEY0LCAweDA0RSwgMHgwNjAsIDB4MDEzLCAweDBFQiwgMHgwRjQsCi0JMHgwMjUsIDB4MEIwLCAweDAzMywgMHgwMDAsIDB4MDlGLCAweDA0MywgMHgwRDEsIDB4MEE3LAotCTB4MDlDLCAweDAxOCwgMHgwMDQsIDB4MEZCLCAweDA4RSwgMHgwODQsIDB4MDAzLCAweDBFOSwKLQkweDA4MCwgMHgwNEYsIDB4MEI5LCAweDBFOCwgMHgwNDMsIDB4MEMxLCAweDAzMCwgMHgwMDksCi0JMHgwRjcsIDB4MDdBLCAweDAwQSwgMHgwMzEsIDB4MDk4LCAweDAwNCwgMHgwRkEsIDB4MDNFLAotCTB4MDg0LCAweDA0MCwgMHgwNDEsIDB4MDgwLCAweDA0RSwgMHgwODIsIDB4MEU3LCAweDA0MSwKLQkweDA4NywgMHgwMDksIDB4MDIzLCAweDAwNCwgMHgwMjMsIDB4MDAwLCAweDA5RCwgMHgwMDUsCi0JMHgwQ0UsIDB4MDk2LCAweDAxQywgMHgwMjQsIDB4MDhDLCAweDAxMCwgMHgwOEMsIDB4MDAyLAotCTB4MDc0LCAweDAxNywgMHgwM0EsIDB4MDA0LCAweDAzOCwgMHgwNDksIDB4MDE4LCAweDAyMSwKLQkweDAxOCwgMHgwMDQsIDB4MEU4LCAweDAyRSwgMHgwNzQsIDB4MDUwLCAweDBFMSwgMHgwMjQsCi0JMHgwNjAsIDB4MDg0LCAweDA2MCwgMHgwMTMsIDB4MEEwLCAweDBCOSwgMHgwRDQsIDB4MDExLAotCTB4MEMyLCAweDA0OCwgMHgwQzEsIDB4MDA4LCAweDBDMCwgMHgwMjcsIDB4MDQxLCAweDA3MywKLQkweDBBOCwgMHgwMjMsIDB4MDg0LCAweDA5MSwgMHgwODIsIDB4MDExLCAweDA4MCwgMHgwNEUsCi0JMHgwODIsIDB4MEU3LCAweDA1MiwgMHgwOEUsIDB4MDEyLCAweDA0NiwgMHgwMDgsIDB4MDQ2LAotCTB4MDAxLCAweDAzQSwgMHgwMEIsIDB4MDlELCAweDA0MCwgMHgwMUMsIDB4MDI0LCAweDA4QywKLQkweDAxMCwgMHgwOEMsIDB4MDAyLCAweDA3NCwgMHgwMTcsIDB4MDNBLCAweDAwOSwgMHgwMEUsCi0JMHgwMTIsIDB4MDQ2LCAweDAwOCwgMHgwNDYsIDB4MDAxLCAweDAzQSwgMHgwMEIsIDB4MDk4LAotCTB4MDZBLCAweDAxQywgMHgwMjQsIDB4MEIwLCAweDBFMSwgMHgwMTgsIDB4MDA0LCAweDBFOCwKLQkweDAyRSwgMHgwNkIsIDB4MDUwLCAweDBFMSwgMHgwMjUsIDB4MDg3LCAweDAwOCwgMHgwQzAsCi0JMHgwMjcsIDB4MDQxLCAweDA3MywgMHgwMDUsIDB4MDQzLCAweDA4NCwgMHgwOTYsIDB4MDFDLAotCTB4MDIzLCAweDAwMCwgMHgwOUQsIDB4MDA1LCAweDBDQywgMHgwQUEsIDB4MDFDLCAweDAyNCwKLQkweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRTgsIDB4MDJFLCAweDA3MCwgMHgwNjgsCi0JMHgwNzAsIDB4MDkyLCAweDBDMywgMHgwODQsIDB4MDYwLCAweDAxMywgMHgwRTUsIDB4MDQ0LAotCTB4MEY5LCAweDA0MCwgMHgwOUQsIDB4MDA1LCAweDBDRSwgMHgwNUEsIDB4MDFDLCAweDAyNCwKLQkweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRjksIDB4MEQxLCAweDAzRSwgMHgwNzAsCi0JMHgwMjcsIDB4MENGLCAweDAxMywgMHgwRTUsIDB4MDQ0LCAweDAyQywgMHgwQTAsIDB4MDQyLAotCTB4MENCLCAweDA4OSwgMHgwRjIsIDB4MDIxLCAweDAzQSwgMHgwMEIsIDB4MDlDLCAweDAwQSwKLQkweDAxQywgMHgwMjQsIDB4MEIwLCAweDBFMSwgMHgwMTgsIDB4MDA0LCAweDBGOSwgMHgwRDEsCi0JMHgwMEIsIDB4MDM4LCAweDAxMCwgMHgwQjMsIDB4MEM0LCAweDAyMSwgMHgwMzksIDB4MDM2LAotCTB4MDVDLCAweDA0MiwgMHgwQzgsIDB4MDg0LCAweDAyQiwgMHgwNzksIDB4MEQwLCAweDA2MSwKLQkweDBDMiwgMHgwNzQsIDB4MDE1LCAweDAyNCwgMHgwQkEsIDB4MEQzLCAweDAzMSwgMHgwRTUsCi0JMHgwNTksIDB4MDA4LCAweDAyOSwgMHgwMDgsIDB4MEUwLCAweDA2NiwgMHgwNjMsIDB4MDQyLAotCTB4MDk1LCAweDAxMiwgMHgwODEsIDB4MDAwLCAweDAyOSwgMHgwMEIsIDB4MEMxLCAweDA1MSwKLQkweDAyNCwgMHgwQjgsIDB4MDE5LCAweDA5OSwgMHgwOTAsIDB4MDIyLCAweDA5MCwgMHgwQjQsCi0JMHgwMTgsIDB4MEEwLCAweDA5MSwgMHgwNDEsIDB4MDAxLCAweDA0MSwgMHgwNDEsIDB4MDQxLAotCTB4MDUyLCAweDA4MywgMHgwQ0EsIDB4MDQwLCAweDAyOCwgMHgwNjgsIDB4MDI5LCAweDAwOCwKLQkweDBCQSwgMHgwMTYsIDB4MDEwLCAweDA5QywgMHgwOTksIDB4MDBCLCAweDA1NiwgMHgwOTQsCi0JMHgwOTAsIDB4MDUyLCAweDAxNSwgMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwMUEsIDB4MDJBLAotCTB4MEQyLCAweDA5MCwgMHgwMjUsIDB4MEQzLCAweDAwMCwgMHgwOUQsIDB4MDI4LCAweDBBQiwKLQkweDA0QSwgMHgwNDIsIDB4MDE3LCAweDA0QywgMHgwMDIsIDB4MDcwLCAweDBENCwgMHgwODQsCi0JMHgwMkUsIDB4MDk4LCAweDAwNCwgMHgwRTEsIDB4MDJBLCAweDA0MiwgMHgwMTcsIDB4MDRDLAotCTB4MDAyLCAweDA3MCwgMHgwODIsIDB4MDkwLCAweDA0QiwgMHgwQTYsIDB4MDAxLCAweDAzOCwKLQkweDA1MSwgMHgwNDgsIDB4MDQyLCAweDBFOSwgMHgwODAsIDB4MDRFLCAweDAxNSwgMHgwQTQsCi0JMHgwMjEsIDB4MDc0LCAweDBDMCwgMHgwMjcsIDB4MDBGLCAweDBBNCwgMHgwMTIsIDB4MEU5LAotCTB4MDgwLCAweDA0RSwgMHgwODIsIDB4MEFDLCAweDA4MCwgMHgwQUMsIDB4MEEwLCAweDBBQywKLQkweDBBOSwgMHgwNTksIDB4MEU1LCAweDA2NCwgMHgwNDUsIDB4MDY1LCAweDBDQSwgMHgwQzgsCi0JMHgwNEEsIDB4MENFLCAweDAwQSwgMHgwQ0UsIDB4MDRBLCAweDBDRSwgMHgwOTUsIDB4MDkxLAotCTB4MDk1LCAweDA5NCwgMHgwOTUsIDB4MDkzLCAweDAyOSwgMHgwMjUsIDB4MEMwLCAweDBDQywKLQkweDBDQywgMHgwODgsIDB4MEE0LCAweDA5NywgMHgwNTYsIDB4MDM2LCAweDA2NCwgMHgwNzIsCi0JMHgwOTAsIDB4MDU0LCAweDA4QSwgMHgwOUMsIDB4MDQ1LCAweDAwOCwgMHgwQjksIDB4MEI3LAotCTB4MDY2LCAweDAxMiwgMHgwOTMsIDB4MDA5LCAweDBDOSwgMHgwQjIsIDB4MDc0LCAweDA4RSwKLQkweDBCQSwgMHgwNjAsIDB4MDEzLCAweDBFNSwgMHgwMzQsIDB4MDhFLCAweDBCQSwgMHgwNjAsCi0JMHgwMTMsIDB4MEU0LCAweDA3NCwgMHgwOEUsIDB4MEJBLCAweDA2MCwgMHgwMTMsIDB4MEU1LAotCTB4MDY5LCAweDAxRCwgMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwQ0EsIDB4MDI5LCAweDAxRCwKLQkweDA3NCwgMHgwQzAsIDB4MDI3LCAweDBDRSwgMHgwRDIsIDB4MDI1LCAweDBEMywgMHgwMDAsCi0JMHgwOUYsIDB4MDM4LCAweDBBNCwgMHgwNEIsIDB4MEE2LCAweDAwMSwgMHgwM0UsIDB4MDVFLAotCTB4MDkxLCAweDAyRSwgMHgwOTgsIDB4MDA0LCAweDBGOSwgMHgwMTUsIDB4MDIyLCAweDA1RCwKLQkweDAzMCwgMHgwMDksIDB4MEYzLCAweDBFOSwgMHgwMTIsIDB4MEU5LCAweDA4MCwgMHgwNEYsCi0JMHgwOTAsIDB4MDUyLCAweDAyNSwgMHgwRDMsIDB4MDAwLCAweDA5RCwgMHgwQzUsIDB4MDQ4LAotCTB4MDI1LCAweDBEMywgMHgwMDAsIDB4MDlDLCAweDA0NSwgMHgwQ0UsIDB4MENELCAweDAwOSwKLQkweDBDOSwgMHgwQjIsIDB4MDFBLCAweDA0NCwgMHgwQkEsIDB4MDYwLCAweDAxMywgMHgwRTcsCi0JMHgwMzQsIDB4MDg5LCAweDA3NCwgMHgwQzAsIDB4MDI3LCAweDAxQywgMHgwMjcsIDB4MEI3LAotCTB4MDlDLCAweDA4MCwgMHgwQzIsIDB4MEQ3LCAweDA3NiwgMHgwNTksIDB4MDlCLCAweDA5MywKLQkweDAwQywgMHgwNjQsIDB4MEMzLCAweDAxRCwgMHgwMUIsIDB4MEY0LCAweDA0NSwgMHgwNEIsCi0JMHgwQzcsIDB4MEM2LCAweDAzQSwgMHgwMzcsIDB4MEU4LCAweDA4MSwgMHgwNEIsIDB4MEM3LAotCTB4MEM2LCAweDAzQSwgMHgwMzcsIDB4MEU4LCAweDA5MSwgMHgwNEIsIDB4MEM3LCAweDBDNiwKLQkweDAzMiwgMHgwNjEsIDB4MDhFLCAweDBCMywgMHgwQkMsIDB4MEMzLCAweDA0QSwgMHgwMjIsCi0JMHgwRTYsIDB4MEI1LCAweDAyNCwgMHgwOTcsIDB4MDcxLCAweDBDOSwgMHgwODcsIDB4MEI0LAotCTB4MDMxLCAweDBBRSwgMHgwNzMsIDB4MEEyLCAweDBDRiwgMHgwMzksIDB4MEQyLCAweDA1RCwKLQkweDAwNCwgMHgwNDQsIDB4MDQyLCAweDBDMCwgMHgwRDYsIDB4MERFLCAweDA3MSwgMHgwMDYsCi0JMHgwMTYsIDB4MEJCLCAweDBEQiwgMHgwQ0UsIDB4MDgzLCAweDAwQywgMHgwNjQsIDB4MEMzLAotCTB4MDFELCAweDAzMSwgMHgwMTMsIDB4MDA0LCAweDBGOSwgMHgwOTUsIDB4MDRELCAweDAxMywKLQkweDAzMiwgMHgwOTMsIDB4MDYzLCAweDA1RSwgMHgwNjYsIDB4MDE0LCAweDBDQywgMHgwMjksCi0JMHgwMkEsIDB4MDUzLCAweDAzMCwgMHgwQTYsIDB4MDYxLCAweDA0QywgMHgwQzIsIDB4MDk5LAotCTB4MDg1LCAweDAzQSwgMHgwNzIsIDB4MENDLCAweDBDMiwgMHgwOTksIDB4MDg1LCAweDAwNiwKLQkweDAxQiwgMHgwQjMsIDB4MDBBLCAweDA2NiwgMHgwMTQsIDB4MDE0LCAweDAyNCwgMHgwOTksCi0JMHgwODUsIDB4MDMzLCAweDAwQSwgMHgwMDgsIDB4MEIxLCAweDA4NiwgMHgwNjEsIDB4MDRDLAotCTB4MEMyLCAweDA4NCwgMHgwMjEsIDB4MDY4LCAweDA3MywgMHgwM0IsIDB4MDMwLCAweDBBNiwKLQkweDA2MSwgMHgwNDEsIDB4MDRFLCAweDBBNSwgMHgwOTgsIDB4MDUzLCAweDAzMCwgMHgwQUMsCi0JMHgwNTksIDB4MDc2LCAweDA2MSwgMHgwNEMsIDB4MEMyLCAweDBCMCwgMHgwOEQsIDB4MEQ2LAotCTB4MDYxLCAweDA0QywgMHgwQzIsIDB4MEIwLCAweDAyQywgMHgwRjYsIDB4MDYxLCAweDA0QywKLQkweDBDMiwgMHgwQjEsIDB4MDhDLCAweDBBNSwgMHgwOTgsIDB4MDUzLCAweDAzMCwgMHgwQUMsCi0JMHgwMEYsIDB4MDI0LCAweDBDQywgMHgwMjksIDB4MDk4LCAweDA1NiwgMHgwMEYsIDB4MDI4LAotCTB4MDY2LCAweDAxNSwgMHgwOTIsIDB4MDFBLCAweDAxOSwgMHgwODUsIDB4MDMzLCAweDAwQSwKLQkweDBDQSwgMHgwODUsIDB4MDBDLCAweDBDMiwgMHgwOTksIDB4MDg1LCAweDA2NSwgMHgwQzMsCi0JMHgwRDksIDB4MDg1LCAweDAzMywgMHgwMEEsIDB4MENFLCAweDA3MCwgMHgwODYsIDB4MDYxLAotCTB4MDRDLCAweDBDMiwgMHgwQjMsIDB4MDk3LCAweDA3MSwgMHgwMEMsIDB4MDk5LCAweDAzQiwKLQkweDBDQywgMHgwODMsIDB4MDU4LCAweDAwQiwgMHgwRUEsIDB4MDc3LCAweDA5RCwgMHgwMDYsCi0JMHgwNEEsIDB4MEJFLCAweDAwNCwgMHgwNzQsIDB4MDYwLCAweDBFMCwgMHgwRDEsIDB4MDRFLAotCTB4MDM4LCAweDA0QywgMHgwM0UsIDB4MEVFLCAweDAzRSwgMHgwRUUsIDB4MDNFLCAweDBFRSwKLQkweDAzRSwgMHgwRUUsIDB4MDMwLCAweDBCQiwgMHgwQ0EsIDB4MEUxLCAweDAxRiwgMHgwNzcsCi0JMHgwMUYsIDB4MDc3LCAweDAxRiwgMHgwNzcsIDB4MDFGLCAweDA3NywgMHgwMjcsIDB4MDcwLAotCTB4MDhGLCAweDBCQiwgMHgwODAsIDB4MDBFLCAweDAxMSwgMHgwRjcsIDB4MDcxLCAweDBGNywKLQkweDA3QywgMHgwNkYsIDB4MDNDLCAweDBCMywgMHgwMzYsIDB4MDAyLCAweDBGQiwgMHgwOEQsCi0JMHgwRTYsIDB4MDU1LCAweDA3MCwgMHgwN0YsIDB4MDJELCAweDAyNCwgMHgwNjksIDB4MDU1LAotCTB4MDRGLCAweDA1OCwgMHgwQTksIDB4MDIzLCAweDAxRiwgMHgwNTQsIDB4MEY3LCAweDA4QSwKLQkweDA5NSwgMHgwMjUsIDB4MDJCLCAweDA3NSwgMHgwMEMsIDB4MENDLCAweDBBQywgMHgwNTYsCi0JMHgwNTEsIDB4MENDLCAweDA1MSwgMHgwRTQsIDB4MDQ1LCAweDBDRSwgMHgwQTIsIDB4MDEyLAotCTB4MDM5LCAweDBDMCwgMHgwQTAsIDB4MEFGLCAweDA1NiwgMHgwNkEsIDB4MDQ5LCAweDA3RiwKLQkweDAwMiwgMHgwOEMsIDB4MDA5LCAweDBGOCwgMHgwMEIsIDB4MEVCLCAweDBBRiwgMHgwNTYsCi0JMHgwNzYsIDB4MDY3LCAweDA1MiwgMHgwQjIsIDB4MDhFLCAweDA2OSwgMHgwQTcsIDB4MDExLAotCTB4MDczLCAweDBBOCwgMHgwQjEsIDB4MEJDLCAweDBDQSwgMHgwQTAsIDB4MEE5LCAweDAzNiwKLQkweDA1MCwgMHgwMkMsIDB4MDk4LCAweDBFNywgMHgwMEEsIDB4MEY1LCAweDA2NiwgMHgwQTQsCi0JMHgwOTcsIDB4MEUyLCAweDA1QSwgMHgwMzAsIDB4MDI3LCAweDBCQSwgMHgwRjcsIDB4MDgzLAotCTB4MDRFLCAweDBBNSwgMHgwMzMsIDB4MDBBLCAweDA2NiwgMHgwMTUsIDB4MDhELCAweDBFNiwKLQkweDA1NSwgMHgwMzksIDB4MEQyLCAweDBBNywgMHgwQUMsIDB4MDU0LCAweDA2MCwgMHgwMTYsCi0JMHgwNzAsIDB4MDFCLCAweDA3MiwgMHgwOEUsIDB4MDYyLCAweDA4RiwgMHgwMjIsIDB4MDJFLAotCTB4MDc1LCAweDAxNiwgMHgwMDIsIDB4MEZCLCAweDA4RCwgMHgwRTYsIDB4MDBBLCAweDA5NSwKLQkweDAzRCwgMHgwNjIsIDB4MEEzLCAweDAwMCwgMHgwQjcsIDB4MDAxLCAweDBCNSwgMHgwNTMsCi0JMHgwREUsIDB4MDJBLCAweDA1NCwgMHgwOTQsIDB4MEFELCAweDBENCwgMHgwMzMsIDB4MDMyLAotCTB4MEIxLCAweDA1OSwgMHgwNDcsIDB4MDMxLCAweDA0NywgMHgwOTEsIDB4MDE3LCAweDAzQSwKLQkweDA4OCwgMHgwNDgsIDB4MEU3LCAweDAwMiwgMHgwQjAsIDB4MDE3LCAweDBEQywgMHgwNjcsCi0JMHgwOUQsIDB4MDRCLCAweDA4RCwgMHgwRTcsIDB4MDUyLCAweDBBQSwgMHgwN0IsIDB4MEQ0LAotCTB4MEFBLCAweDA5MiwgMHgwQkQsIDB4MEQ2LCAweDA5OSwgMHgwQkMsIDB4MDU2LCAweDAwMiwKLQkweDBGQiwgMHgwOEMsIDB4MEYzLCAweDA2NiwgMHgwNjYsIDB4MEM2LCAweDBGMywgMHgwNjYsCi0JMHgwNjYsIDB4MDYyLCAweDA5OSwgMHgwMkEsIDB4MEY4LCAweDAxOCwgMHgwNjgsIDB4MDcwLAotCTB4MEIwLCAweDA4QSwgMHgwMEQsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1MiwKLQkweDAzMiwgMHgwRTEsIDB4MDQwLCAweDA1QywgMHgwMzgsIDB4MDBCLCAweDBFQSwgMHgwOUIsCi0JMHgwODcsIDB4MDAxLCAweDA3RCwgMHgwQzAsIDB4MDVGLCAweDA3MCwgMHgwMTcsIDB4MERDLAotCTB4MDA1LCAweDBGNSwgMHgwREMsIDB4MDlCLCAweDAwMSwgMHgwN0QsIDB4MDYxLCAweDA0RCwKLQkweDA4MCwgMHgwQkUsIDB4MEE3LCAweDA3OSwgMHgwODIsIDB4MEEyLCAweDAxRiwgMHgwNTAsCi0JMHgwMTUsIDB4MDJBLCAweDA4RiwgMHgwOEIsIDB4MDFDLCAweDBFNSwgMHgwQTUsIDB4MDEzLAotCTB4MDg0LCAweDA1OCwgMHgwRTcsIDB4MDAyLCAweDA5MSwgMHgwNTQsIDB4MDA1LCAweDAwMiwKLQkweDA0QiwgMHgwQkQsIDB4MDIyLCAweDAxQSwgMHgwOTQsIDB4MDdGLCAweDA5QywgMHgwMUEsCi0JMHgwQzAsIDB4MDVGLCAweDA0MiwgMHgwMUEsIDB4MDIxLCAweDBEMSwgMHgwODAsIDB4MDU5LAotCTB4MEMwLCAweDA2RCwgMHgwMUMsIDB4MDJDLCAweDAwQSwgMHgwODMsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU0LCAweDAxQywgMHgwQjgsIDB4MDVDLCAweDA2RSwgMHgwMTcsIDB4MDlDLAotCTB4MDJGLCAweDAzOCwgMHgwNUUsIDB4MDcwLCAweDBFNywgMHgwQjgsIDB4MDVFLCAweDA3MCwKLQkweDBCQywgMHgwRTEsIDB4MDc5LCAweDBDMiwgMHgwRjMsIDB4MDg1LCAweDBFNywgMHgwMEIsCi0JMHgwQ0UsIDB4MDE3LCAweDA5QywgMHgwMjksIDB4MDlDLCAweDAyOSwgMHgwOUMsIDB4MDI5LAotCTB4MDlDLCAweDAyMywgMHgwMEYsIDB4MDU4LCAweDAxNCwgMHgwRUUsIDB4MDM1LCAweDA3NywKLQkweDAyNiwgMHgwMjEsIDB4MDkzLCAweDAwNSwgMHgwQzksIDB4MEIwLCAweDAxNywgMHgwRDIsCi0JMHgwMUQsIDB4MDE4LCAweDA4QSwgMHgwMjEsIDB4MDkzLCAweDAwNSwgMHgwQzksIDB4MEIwLAotCTB4MDE3LCAweDBEMSwgMHgwODcsIDB4MEFDLCAweDAwQSwgMHgwNzQsIDB4MDBGLCAweDBBRSwKLQkweDBGNSwgMHgwNUEsIDB4MDgyLCAweDBBMywgMHgwRTQsIDB4MDNBLCAweDAzMSwgMHgwMTQsCi0JMHgwQkIsIDB4MEQ3LCAweDA1OSwgMHgwOTksIDB4MDc0LCAweDBBMiwgMHgwMTksIDB4MDMwLAotCTB4MDVDLCAweDA5QiwgMHgwMDEsIDB4MDdELCAweDAxOCwgMHgwN0EsIDB4MEMwLCAweDBBNywKLQkweDA0MCwgMHgwRjgsIDB4MDQzLCAweDBENCwgMHgwNjMsIDB4MDg5LCAweDAyNSwgMHgwRDAsCi0JMHgwMTAsIDB4MEQ2LCAweDAxQywgMHgwNkEsIDB4MDEwLCAweDBGNSwgMHgwNTUsIDB4MDg5LAotCTB4MDI1LCAweDBEMSwgMHgwNTEsIDB4MDY2LCAweDAxRiwgMHgwNTEsIDB4MEY1LCAweDA5MSwKLQkweDA0OSwgMHgwMkUsIDB4MDg5LCAweDAxNSwgMHgwOTgsIDB4MDZBLCAweDBBMywgMHgwRTAsCi0JMHgwOEEsIDB4MDk0LCAweDA2NSwgMHgwNjQsIDB4MDBFLCAweDAxMywgMHgwMTcsIDB4MDM4LAotCTB4MEE4LCAweDA4NiwgMHgwNEMsIDB4MDE3LCAweDAyNiwgMHgwQzAsIDB4MDVGLCAweDA0NiwKLQkweDAxRSwgMHgwQjAsIDB4MDI4LCAweDA2MywgMHgwMUYsIDB4MDA4LCAweDA3QSwgMHgwOEMsCi0JMHgwNzEsIDB4MDI0LCAweDBCQSwgMHgwMDIsIDB4MDFBLCAweDBEMCwgMHgwMEQsIDB4MDQyLAotCTB4MDFFLCAweDBBQSwgMHgwQjEsIDB4MDI0LCAweDBCQSwgMHgwMkEsIDB4MDJELCAweDAzMSwKLQkweDBGNSwgMHgwMUYsIDB4MDU4LCAweDA3NCwgMHgwOTIsIDB4MEU4LCAweDA4NywgMHgwNUEsCi0JMHgwNjMsIDB4MDUyLCAweDBERSwgMHgwRjQsIDB4MDUxLCAweDA2OSwgMHgwNEEsIDB4MDNFLAotCTB4MDA5LCAweDA2OSwgMHgwNDYsIDB4MDUwLCAweDBGMCwgMHgwRTEsIDB4MDMxLCAweDA3MywKLQkweDAwNSwgMHgwNDUsIDB4MEJELCAweDA1OSwgMHgwOEQsIDB4MDhCLCAweDA0QSwgMHgwN0MsCi0JMHgwRDMsIDB4MEVELCAweDAzOCwgMHgwRTksIDB4MEQzLCAweDA0RSwgMHgwNzQsIDB4MEVELAotCTB4MDQ0LCAweDAzMiwgMHgwNjAsIDB4MEI5LCAweDAzNiwgMHgwMDIsIDB4MEZBLCAweDA1QiwKLQkweDBERSwgMHgwOEEsIDB4MDJELCAweDAyOSwgMHgwRDAsIDB4MEUxLCAweDAyMSwgMHgwRjUsCi0JMHgwQTMsIDB4MDkyLCAweDAyMSwgMHgwRjIsIDB4MDE5LCAweDAzMCwgMHgwNUMsIDB4MDlCLAotCTB4MDAxLCAweDA3RCwgMHgwMjEsIDB4MEY1LCAweDBBMCwgMHgwQzYsIDB4MDAxLCAweDA2NywKLQkweDAwMSwgMHgwQjQsIDB4MDQ1LCAweDBDRSwgMHgwQTUsIDB4MDEyLCAweDAzOSwgMHgwRDQsCi0JMHgwMUMsIDB4MDA1LCAweDBGNCwgMHgwNDAsIDB4MEExLCAweDBDMiwgMHgwQzMsIDB4MDUwLAotCTB4MDZBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwKLQkweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDA4MSwgMHgwQUYsCi0JMHgwODYsIDB4MDlGLCAweDAxOSwgMHgwMUIsIDB4MEU3LCAweDA4MSwgMHgwRjMsIDB4MDY1LAotCTB4MEYyLCAweDA4MCwgMHgwQkUsIDB4MDcwLCAweDAxNywgMHgwREYsIDB4MERGLCAweDAzOCwKLQkweDAwQiwgMHgwRUIsIDB4MDBELCAweDBDMywgMHgwODAsIDB4MEJFLCAweDBBNywgMHgwMEYsCi0JMHgwOTUsIDB4MDRGLCAweDA1QSwgMHgwOTQsIDB4MEMwLCAweDAyQywgMHgwRDgsIDB4MEIxLAotCTB4MEE3LCAweDBDRSwgMHgwNUEsIDB4MDExLCAweDA3MywgMHgwQTgsIDB4MDNBLCAweDBDMiwKLQkweDBDQywgMHgwQjYsIDB4MDMwLCAweDAxNywgMHgwREMsIDB4MDZGLCAweDAzNSwgMHgwQTksCi0JMHgwODAsIDB4MDRELCAweDBBNywgMHgwQ0UsIDB4MDJBLCAweDAxOCwgMHgwNzksIDB4MEM1LAotCTB4MDQ5LCAweDBERSwgMHgwNjEsIDB4MEE4LCAweDAyMiwgMHgwRTcsIDB4MDUwLCAweDAzMywKLQkweDBGOSwgMHgwOTgsIDB4MDY0LCAweDAwOCwgMHgwQjksIDB4MDk1LCAweDA0MiwgMHgwRkMsCi0JMHgwQ0MsIDB4MEQ5LCAweDA5NSwgMHgwM0QsIDB4MDYyLCAweDBBMiwgMHgwNDgsIDB4MEQ0LAotCTB4MDQ4LCAweDBFNywgMHgwMDIsIDB4MDg4LCAweDBCOSwgMHgwQzEsIDB4MEEwLCAweDBFMywKLQkweDA5RCwgMHgwNEUsIDB4MDYyLCAweDBFNiwgMHgwQ0MsIDB4MEM2LCAweDA2QiwgMHgwQ0UsCi0JMHgwODMsIDB4MDEwLCAweDBDOSwgMHgwODIsIDB4MEU0LCAweDBEQSwgMHgwQzIsIDB4MEM4LAotCTB4MDFFLCAweDBDMywgMHgwQjksIDB4MDM2LCAweDAwMiwgMHgwRkEsIDB4MEE5LCAweDBFQiwKLQkweDA0RSwgMHgwMzAsIDB4MDMwLCAweDBGQSwgMHgwMEQsIDB4MEYwLCAweDBBOSwgMHgwRUIsCi0JMHgwNDAsIDB4MEI5LCAweDAwRiwgMHgwQUEsIDB4MDdBLCAweDBEMiwgMHgwQzIsIDB4MEM4LAotCTB4MEZBLCAweDBBNywgMHgwQUQsIDB4MDQxLCAweDAwQSwgMHgwNDcsIDB4MEQ1LCAweDAzRCwKLQkweDA2OCwgMHgwQUMsIDB4MEYxLCAweDBGNSwgMHgwNEYsIDB4MDVBLCAweDA5NywgMHgwNTQsCi0JMHgwN0QsIDB4MDRGLCAweDBBOCwgMHgwQUEsIDB4MDU1LCAweDAxRiwgMHgwMTEsIDB4MDczLAotCTB4MDVBLCAweDBCMCwgMHgwMTcsIDB4MERFLCAweDA1RCwgMHgwNTksIDB4MEE5LCAweDAyNSwKLQkweDBEMCwgMHgwNTUsIDB4MDJBLCAweDA0NiwgMHgwQkMsIDB4MEI4LCAweDAyMiwgMHgwQUUsCi0JMHgwNDUsIDB4MDI5LCAweDAzRSwgMHgwMTQsIDB4MEZBLCAweDBFMSwgMHgwOTksIDB4MDk0LAotCTB4MENBLCAweDA0QSwgMHgwQkUsIDB4MDNELCAweDBENiwgMHgwOTksIDB4MDkyLCAweDA1RCwKLQkweDAxNSwgMHgwMTcsIDB4MEM4LCAweDBENywgMHgwREMsIDB4MDE1LCAweDAxNywgMHgwOEEsCi0JMHgwNDAsIDB4MDFGLCAweDAwQSwgMHgwOUUsIDB4MEFDLCAweDBDOSwgMHgwNjUsIDB4MDQ5LAotCTB4MDVDLCAweDAxRCwgMHgwMTAsIDB4MDY4LCAweDA0QSwgMHgwM0UsIDB4MDVCLCAweDBERSwKLQkweDA4MywgMHgwMTYsIDB4MDk1LCAweDA4MCwgMHgwQkUsIDB4MDkxLCAweDA3NCwgMHgwNTgsCi0JMHgwQTQsIDB4MDAwLCAweDA3QywgMHgwMzgsIDB4MEU3LCAweDA1NiwgMHgwMzAsIDB4MDE3LAotCTB4MERGLCAweDA3NSwgMHgwQTYsIDB4MDY0LCAweDA5NywgMHgwNDUsIDB4MDIwLCAweDA5RCwKLQkweDAwMywgMHgwNUYsIDB4MDcwLCAweDA1NCwgMHgwNUUsIDB4MDI5LCAweDAxRCwgMHgwRjAsCi0JMHgwQTksIDB4MEVBLCAweDBDQywgMHgwODYsIDB4MDU0LCAweDA5NSwgMHgwQzEsIDB4MEQxLAotCTB4MDA2LCAweDA4MywgMHgwMEYsIDB4MEFBLCAweDA3QiwgMHgwRDAsIDB4MDY1LCAweDA0OSwKLQkweDA0NSwgMHgwQkQsIDB4MEU5LCAweDA2MiwgMHgwRDIsIDB4MDkxLCAweDBERiwgMHgwMDQsCi0JMHgwNUQsIDB4MDE2LCAweDAyOSwgMHgwMUMsIDB4MDdELCAweDA0RiwgMHgwQUMsIDB4MDFBLAotCTB4MDQ3LCAweDAxQSwgMHgwQTksIDB4MEY1LCAweDA2NywgMHgwNjYsIDB4MDUzLCAweDAyOCwKLQkweDBCNywgMHgwQkQsIDB4MDJDLCAweDA1QSwgMHgwNTIsIDB4MDNCLCAweDBFMywgMHgwREQsCi0JMHgwNTksIDB4MEE5LCAweDAyNSwgMHgwRDEsIDB4MEE4LCAweDBBQywgMHgwMDgsIDB4MDZCLAotCTB4MEVFLCAweDAwOCwgMHgwQUIsIDB4MEM1LCAweDAyMCwgMHgwMkYsIDB4MDg1LCAweDA0RiwKLQkweDA1NiwgMHgwNjYsIDB4MDc1LCAweDA0OSwgMHgwNUMsIDB4MDFDLCAweDAxOCwgMHgwMUQsCi0JMHgwODEsIDB4MEMyLCAweDA2NCwgMHgwMDUsIDB4MEYwLCAweDA4MCwgMHgwQkUsIDB4MDM1LAotCTB4MDVDLCAweDBEMCwgMHgwMTcsIDB4MEMyLCAweDA1NSwgMHgwRjAsIDB4MDk1LCAweDA3QywKLQkweDAyNSwgMHgwNUYsIDB4MDA4LCAweDAwQiwgMHgwRTEsIDB4MDAxLCAweDA3QywgMHgwN0IsCi0JMHgwQUIsIDB4MDM1LCAweDAyNCwgMHgwQkEsIDB4MDEwLCAweDA1NSwgMHgwOTMsIDB4MDFBLAotCTB4MEZCLCAweDA4MiwgMHgwMkEsIDB4MEYxLCAweDA0OCwgMHgwRDcsIDB4MEMyLCAweDBBNywKLQkweDBBQiwgMHgwMzEsIDB4MEIyLCAweDBBNCwgMHgwQUMsIDB4MDYzLCAweDA5RCwgMHgwNEEsCi0JMHgwOEQsIDB4MDdDLCAweDA3QiwgMHgwQUIsIDB4MDM1LCAweDAyNCwgMHgwQkEsIDB4MDEwLAotCTB4MDU0LCAweDAzMCwgMHgwOEQsIDB4MDdELCAweDBDMSwgMHgwMTUsIDB4MDc4LCAweDBBQywKLQkweDA2RiwgMHgwNUEsIDB4MDk0LCAweDA2MCwgMHgwMUEsIDB4MEUzLCAweDA3OSwgMHgwRDQsCi0JMHgwQUEsIDB4MDRGLCAweDA4NSwgMHgwNEYsIDB4MDU2LCAweDA2NiwgMHgwRDUsIDB4MDQ5LAotCTB4MDU4LCAweDBDNywgMHgwM0EsIDB4MDk1LCAweDA0OSwgMHgwRjAsIDB4MDQ1LCAweDBEMSwKLQkweDA2MiwgMHgwOTQsIDB4MDg2LCAweDBCQywgMHgwMUQsIDB4MDEzLCAweDBEMiwgMHgwOTAsCi0JMHgwRkYsIDB4MENGLCAweDA3QSwgMHgwODMsIDB4MEYyLCAweDA1MCwgMHgwMzEsIDB4MERFLAotCTB4MDAwLCAweDA2MCwgMHgwNjAsIDB4MEExLCAweDAxNywgMHgwMzUsIDB4MEE4LCAweDA1RiwKLQkweDA5QiwgMHgwMUIsIDB4MDM3LCAweDAwNywgMHgwNDQsIDB4MDFBLCAweDAzMCwgMHgwMEIsCi0JMHgwMzgsIDB4MDBELCAweDBCQywgMHgwMUMsIDB4MEUwLCAweDBEMCwgMHgwNDcsIDB4MENFLAotCTB4MEEwLCAweDBBQSwgMHgwN0EsIDB4MEExLCAweDA5OCwgMHgwNkEsIDB4MDkyLCAweDA5NSwKLQkweDAzRCwgMHgwNjgsIDB4MDMxLCAweDA4MCwgMHgwNUIsIDB4MDgwLCAweDBEQSwgMHgwQTksCi0JMHgwRUYsIDB4MDQxLCAweDA5NSwgMHgwMjUsIDB4MDE2LCAweDBGNywgMHgwQTUsIDB4MDhCLAotCTB4MDRBLCAweDBDNiwgMHgwNzksIDB4MEIzLCAweDAzMywgMHgwNjAsIDB4MDJGLCAweDBBQSwKLQkweDA5RSwgMHgwQjEsIDB4MDUxLCAweDA4MCwgMHgwNTksIDB4MDlFLCAweDBDQSwgMHgwQTcsCi0JMHgwQUMsIDB4MDBBLCAweDAzMCwgMHgwMEIsIDB4MDY3LCAweDBCMiwgMHgwQUQsIDB4MEQ1LAotCTB4MERBLCAweDA5MiwgMHgwNUQsIDB4MDE3LCAweDBBMywgMHgwMDAsIDB4MEIzLCAweDAyRCwKLQkweDA5NSwgMHgwNkUsIDB4MDA4LCAweDBBOSwgMHgwNTgsIDB4MEExLCAweDAxNywgMHgwM0EsCi0JMHgwOEIsIDB4MDAxLCAweDA3RCwgMHgwNTQsIDB4MEY3LCAweDA4RSwgMHgwOTUsIDB4MDI1LAotCTB4MDA4LCAweDAxQywgMHgwRTAsIDB4MDU2LCAweDAwMiwgMHgwRkIsIDB4MEMxLCAweDBEMSwKLQkweDAxNSwgMHgwMTgsIDB4MDA1LCAweDA5MiwgMHgwNkIsIDB4MDNDLCAweDAxRCwgMHgwMTIsCi0JMHgwMjgsIDB4MEMwLCAweDAyQywgMHgwQTUsIDB4MDZDLCAweDAxMSwgMHgwNzAsIDB4MDE3LAotCTB4MEIyLCAweDAzOCwgMHgwNEQsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLCAweDBCNCwKLQkweDBFQywgMHgwNEEsIDB4MEVELCAweDBCMywgMHgwOUUsIDB4MDAyLCAweDBGQiwgMHgwODAsCi0JMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQjEsIDB4MDM5LCAweDA5MywgMHgwM0UsIDB4MDZELAotCTB4MEU3LCAweDAxMCwgMHgwNjAsIDB4MDlGLCAweDAzMiwgMHgwQTksIDB4MEEyLCAweDA2QywKLQkweDAwNSwgMHgwRjQsIDB4MDQwLCAweDBFNiwgMHgwMEEsIDB4MDk1LCAweDAzRCwgMHgwNkEsCi0JMHgwMjMsIDB4MDAwLCAweDBCMywgMHgwODAsIDB4MERBLCAweDBBNywgMHgwRDYsIDB4MDJBLAotCTB4MDAzLCAweDAwRCwgMHgwNzAsIDB4MDE3LCAweDBEMiwgMHgwMkUsIDB4MDc2LCAweDAyOSwKLQkweDA0RiwgMHgwQkMsIDB4MDU0LCAweDBBNiwgMHgwNTEsIDB4MDZGLCAweDA3QSwgMHgwNTgsCi0JMHgwQjQsIDB4MEFDLCAweDAwNSwgMHgwRjQsIDB4MDhCLCAweDBBMiwgMHgwRjQsIDB4MDBFLAotCTB4MDM1LCAweDAwRCwgMHgwNDksIDB4MDJFLCAweDBCNCwgMHgwQ0MsIDB4MDE4LCAweDBBNSwKLQkweDBDOCwgMHgwRjgsIDB4MDRBLCAweDA5NywgMHgwMjMsIDB4MEUxLCAweDAwNSwgMHgwMkUsCi0JMHgwNDcsIDB4MEMyLCAweDA4QSwgMHgwNUMsIDB4MDhGLCAweDA4NSwgMHgwNjksIDB4MDcyLAotCTB4MDNFLCAweDAxRiwgMHgwNEEsIDB4MEMzLCAweDA1NSwgMHgwMUYsIDB4MDU2LCAweDA0MywKLQkweDAzMiwgMHgwOEMsIDB4MEEzLCAweDA1RSwgMHgwNjAsIDB4MEE4LCAweDA0NSwgMHgwQ0UsCi0JMHgwMEQsIDB4MDYwLCAweDAyRiwgMHgwQTMsIDB4MDg0LCAweDA5RCwgMHgwRDgsIDB4MEYwLAotCTB4MDE3LCAweDBEMiwgMHgwMkUsIDB4MDBFLCAweDAxQiwgMHgwMjMsIDB4MDg0LCAweDBEOCwKLQkweDAwQiwgMHgwRUIsIDB4MDg5LCAweDBGMywgMHgwODAsIDB4MEJFLCAweDBFMCwgMHgwMkYsCi0JMHgwQkIsIDB4MDM5LCAweDA4NSwgMHgwREYsIDB4MDIyLCAweDAwMywgMHgwRTcsIDB4MDAxLAotCTB4MDdELCAweDBDMCwgMHgwNUYsIDB4MDcwLCAweDAxNywgMHgwRDEsIDB4MDE3LCAweDAzOCwKLQkweDAxNCwgMHgwNUIsIDB4MEQ2LCAweDBBMiwgMHgwNzQsIDB4MDBELCAweDA0QiwgMHgwN0EsCi0JMHgwQjMsIDB4MDMxLCAweDA5NiwgMHgwOTQsIDB4MDZCLCAweDBDQywgMHgwMzUsIDB4MDIzLAotCTB4MEQ3LCAweDA0OSwgMHgwNDgsIDB4MDE1LCAweDA3MywgMHgwMjksIDB4MDBGLCAweDA1RCwKLQkweDA4QSwgMHgwQzAsIDB4MDVGLCAweDA0RCwgMHgwNzksIDB4MDg0LCAweDAzNSwgMHgwODAsCi0JMHgwQkUsIDB4MDg4LCAweDAxQywgMHgwQzMsIDB4MDUyLCAweDA5RiwgMHgwNTksIDB4MDY4LAotCTB4MEMwLCAweDAyQywgMHgwRTAsIDB4MDM2LCAweDBBQSwgMHgwN0IsIDB4MENELCAweDA0QSwKLQkweDA5MiwgMHgwQkUsIDB4MEYzLCAweDA4MSwgMHgwNEEsIDB4MDdELCAweDA1QiwgMHgwNTksCi0JMHgwOTQsIDB4MENBLCAweDAxQywgMHgwMjQsIDB4MEVFLCAweDBDNywgMHgwODAsIDB4MEJFLAotCTB4MDg4LCAweDAxQywgMHgwQzMsIDB4MDUyLCAweDA5RiwgMHgwNTksIDB4MDY4LCAweDBDMCwKLQkweDAyQywgMHgwRTAsIDB4MDM2LCAweDBBQSwgMHgwN0IsIDB4MENELCAweDA0QSwgMHgwOTIsCi0JMHgwQkUsIDB4MEYzLCAweDA4MSwgMHgwNDMsIDB4MDg0LCAweDA5QywgMHgwN0IsIDB4MDM4LAotCTB4MDBCLCAweDBFQiwgMHgwQUYsIDB4MDcwLCAweDBENCwgMHgwRUEsIDB4MDUzLCAweDAwMCwKLQkweDA5QiwgMHgwNEYsIDB4MDlDLCAweDA1NCwgMHgwMzAsIDB4MEYzLCAweDA4QSwgMHgwOTQsCi0JMHgwRkEsIDB4MEI2LCAweDBCMywgMHgwMjksIDB4MDk0LCAweDAyMiwgMHgwRTYsIDB4MDFBLAotCTB4MDg1LCAweDBGOSwgMHgwQjAsIDB4MDU5LCAweDA5MywgMHgwRjksIDB4MEQyLCAweDBDNCwKLQkweDAzMiwgMHgwNjAsIDB4MEI5LCAweDAzNiwgMHgwQjAsIDB4MEIzLCAweDA5MCwgMHgwRDksCi0JMHgwNzcsIDB4MDI2LCAweDAxQywgMHgwMjcsIDB4MDIyLCAweDBFOCwgMHgwOTYsIDB4MEI0LAotCTB4MDIzLCAweDBFQSwgMHgwOUUsIDB4MEI1LCAweDAxMSwgMHgwODAsIDB4MDU5LCAweDA2NSwKLQkweDA4NiwgMHgwMjAsIDB4MDczLCAweDA5NiwgMHgwOEQsIDB4MDc5LCAweDBBRCwgMHgwNTgsCi0JMHgwMEIsIDB4MEU5LCAweDAxNywgMHgwNDQsIDB4MDhBLCAweDA0QSwgMHgwMDcsIDB4MEQ3LAotCTB4MDdBLCAweDA4MiwgMHgwQTEsIDB4MDkwLCAweDBGQSwgMHgwRUYsIDB4MDAxLCAweDA1NCwKLQkweDBCQSwgMHgwNTAsIDB4MEQ0LCAweDA1OSwgMHgwMUUsIDB4MDJDLCAweDBFOSwgMHgwRjMsCi0JMHgwOEEsIDB4MDk5LCAweDA4NSwgMHgwNkIsIDB4MDBCLCAweDAyMywgMHgwMTUsIDB4MDk3LAotCTB4MDcyLCAweDA2MSwgMHgwMTcsIDB4MDMwLCAweDBENCwgMHgwMkMsIDB4MDczLCAweDA4NywKLQkweDA0OCwgMHgwQUEsIDB4MDAyLCAweDA4MSwgMHgwMjUsIDB4MERFLCAweDA5MSwgMHgwMEQsCi0JMHgwNEEsIDB4MEMwLCAweDA1RiwgMHgwN0UsIDB4MEQyLCAweDA4MCwgMHgwQTUsIDB4MDNFLAotCTB4MEIyLCAweDBEMCwgMHgwQzgsIDB4MDZCLCAweDA4MCwgMHgwQkUsIDB4MDg4LCAweDAxQywKLQkweDBFQSwgMHgwMDksIDB4MDE3LCAweDA0NCwgMHgwMUEsIDB4MDM3LCAweDAxQSwgMHgwOTEsCi0JMHgwNzQsIDB4MDU4LCAweDBBMywgMHgwNzEsIDB4MEFGLCAweDAwNywgMHgwNDQsIDB4MDU0LAotCTB4MDZFLCAweDAzNSwgMHgwRTAsIDB4MEU4LCAweDBBQSwgMHgwNjQsIDB4MDBGLCAweDA5MCwKLQkweDBGQSwgMHgwRDAsIDB4MDYzLCAweDAwMCwgMHgwQjMsIDB4MDgwLCAweDBEQSwgMHgwMkMsCi0JMHgwNzMsIDB4MDg3LCAweDA0OCwgMHgwQUEsIDB4MDAyLCAweDA4MSwgMHgwMjUsIDB4MERFLAotCTB4MDkxLCAweDAwRCwgMHgwNEEsIDB4MEMwLCAweDA1RiwgMHgwNDgsIDB4MEJBLCAweDAyNywKLQkweDBBMywgMHgwMDAsIDB4MEI3LCAweDAwMSwgMHgwQjcsIDB4MDRGLCAweDA5QywgMHgwQjQsCi0JMHgwNkIsIDB4MENDLCAweDAzNSwgMHgwMTYsIDB4MEY1LCAweDA2NiwgMHgwNjMsIDB4MDJELAotCTB4MDI5LCAweDAxRSwgMHgwQkEsIDB4MDRBLCAweDA0MCwgMHgwQUIsIDB4MDk5LCAweDA0OCwKLQkweDA3QSwgMHgwRUMsIDB4MDUwLCAweDA4QiwgMHgwOUMsIDB4MDA4LCAweDAyMiwgMHgwRkMsCi0JMHgwRjksIDB4MEIyLCAweDA1NSwgMHgwM0QsIDB4MDYyLCAweDBBOSwgMHgwMjMsIDB4MDUxLAotCTB4MDIzLCAweDA5QywgMHgwMEEsIDB4MDNDLCAweDA3MywgMHgwMEQsIDB4MDQ0LCAweDA1QywKLQkweDBFMSwgMHgwNTAsIDB4MDcxLCAweDBDRSwgMHgwQTEsIDB4MDFGLCAweDBFNywgMHgwMTUsCi0JMHgwNkIsIDB4MDBCLCAweDAyNSwgMHgwRUQsIDB4MDBCLCAweDA5MywgMHgwNjAsIDB4MDJGLAotCTB4MEFBLCAweDA5RSwgMHgwQUMsIDB4MDM2LCAweDA2NSwgMHgwNDksIDB4MDVGLCAweDA3QSwKLQkweDAyMCwgMHgwNTAsIDB4MDA4LCAweDA3RiwgMHgwRUYsIDB4MDM5LCAweDAxNCwgMHgwNDksCi0JMHgwMDEsIDB4MDExLCAweDA4MSwgMHgwMDQsIDB4MDYwLCAweDA0MCwgMHgwQ0MsIDB4MDU5LAotCTB4MEMwLCAweDBBRCwgMHgwMjMsIDB4MEVCLCAweDA0MSwgMHgwQjAsIDB4MDgxLCAweDBGMiwKLQkweDAzQSwgMHgwNDEsIDB4MEFBLCAweDA1MCwgMHgwNDMsIDB4MEU0LCAweDBENCwgMHgwODYsCi0JMHgwNTQsIDB4MEEwLCAweDA4NywgMHgwQzEsIDB4MDUyLCAweDBDQSwgMHgwOTMsIDB4MDAxLAotCTB4MDMyLCAweDA1NCwgMHgwOUQsIDB4MDI0LCAweDAwMiwgMHgwMDAsIDB4MDAwLCAweDA1MiwKLQkweDBBRiwgMHgwMTYsIDB4MDQ2LCAweDBBNywgMHgwOTEsIDB4MDY3LCAweDAwOCwgMHgwQjQsCi0JMHgwMDQsIDB4MDUxLCAweDBGMSwgMHgwNjUsIDB4MDE5LCAweDBCNCwgMHgwNkUsIDB4MDJELAotCTB4MEMwLCAweDBBRCwgMHgwNDksIDB4MDAwLCAweDA5MiwgMHgwNTcsIDB4MDFCLCAweDA3NCwKLQkweDA0NSwgMHgwNUYsIDB4MDIzLCAweDA1MSwgMHgwQjcsIDB4MDQ0LCAweDAwQSwgMHgwMTAsCi0JMHgwMDYsIDB4MEEzLCAweDA2RSwgMHgwOEIsIDB4MDZCLCAweDAwOCwgMHgwMUYsIDB4MDE5LAotCTB4MEQxLCAweDBFNiwgMHgwODAsIDB4MDgyLCAweDA4MCwgMHgwNTQsIDB4MDA0LCAweDAyQSwKLQkweDA0NSwgMHgwOTEsIDB4MEE5LCAweDBFNCwgMHgwNTksIDB4MEMyLCAweDAyRCwgMHgwMDEsCi0JMHgwMTQsIDB4MDA0LCAweDA1MCwgMHgwRDMsIDB4MEZDLCAweDA1NSwgMHgwODQsIDB4MDYxLAotCTB4MEQ5LCAweDA4MCwgMHgwNTEsIDB4MDJGLCAweDBFMiwgMHgwMUYsIDB4MDQ2LCAweDA1RiwKLQkweDA0MCwgMHgwRTAsIDB4MDIwLCAweDAxNSwgMHgwNEEsIDB4MEJDLCAweDA1OSwgMHgwMUEsCi0JMHgwOUUsIDB4MDQ1LCAweDA5QywgMHgwMjIsIDB4MEQwLCAweDAxMSwgMHgwNDgsIDB4MENCLAotCTB4MEU4LCAweDAxNCwgMHgwMDgsIDB4MDAxLCAweDA1NCwgMHgwMTUsIDB4MEUyLCAweDBDOCwKLQkweDBENCwgMHgwRjIsIDB4MDJDLCAweDBFMSwgMHgwMTYsIDB4MDgwLCAweDA4QSwgMHgwNDYsCi0JMHgwNUYsIDB4MDUyLCAweDA3QywgMHgwRDksIDB4MEE4LCAweDBGOCwgMHgwODgsIDB4MEQwLAotCTB4MDVBLCAweDAzQywgMHgwRDIsIDB4MDVDLCAweDA1QiwgMHgwODAsIDB4MERBLCAweDBBNywKLQkweDBENiwgMHgwNUEsIDB4MDA4LCAweDA4NiwgMHgwQTQsIDB4MDVELCAweDAxNywgMHgwQTAsCi0JMHgwQzMsIDB4MDUyLCAweDAyRSwgMHgwODgsIDB4MEE4LCAweDAyMiwgMHgwMUYsIDB4MDUzLAotCTB4MEVBLCAweDBEQSwgMHgwQ0MsIDB4MEE2LCAweDA1MCwgMHgwRTEsIDB4MDI3LCAweDA3NiwKLQkweDAzQywgMHgwMDUsIDB4MEY1LCAweDA0RiwgMHgwQUIsIDB4MDZCLCAweDAzMiwgMHgwOTksCi0JMHgwNDMsIDB4MDg0LCAweDA5QywgMHgwN0IsIDB4MDM4LCAweDAwQiwgMHgwRTksIDB4MDI3LAotCTB4MEFDLCAweDBENCwgMHgwOTIsIDB4MEUwLCAweDAwRSwgMHgwREEsIDB4MDM4LCAweDA0RCwKLQkweDA4MCwgMHgwQkUsIDB4MEU2LCAweDA3RCwgMHgwNTAsIDB4MEJBLCAweDA1MSwgMHgwQUUsCi0JMHgwNjYsIDB4MEVGLCAweDBCQywgMHgwREMsIDB4MDdCLCAweDA4NywgMHgwMUUsIDB4MDAyLAotCTB4MEZBLCAweDA5MywgMHgwRTYsIDB4MENELCAweDA0NywgMHgwQzQsIDB4MDQzLCAweDBDRCwKLQkweDAwRiwgMHgwMzQsIDB4MDlELCAweDBBMywgMHgwMDAsIDB4MEIwLCAweDA1NSwgMHgwMDEsCi0JMHgwQUUsIDB4MDAzLCAweDA4NCwgMHgwMDQsIDB4MENFLCAweDAwMSwgMHgwRDAsIDB4MEUxLAotCTB4MDcwLCAweDAwMiwgMHgwODAsIDB4MDBFLCAweDA4OSwgMHgwRTksIDB4MDIyLCAweDAxRiwKLQkweDBFMCwgMHgwRTgsIDB4MDk2LCAweDBCMCwgMHgwMTEsIDB4MEY0LCAweDBDMiwgMHgwQ0UsCi0JMHgwMDMsIDB4MDZBLCAweDA0NCwgMHgwMkQsIDB4MEMwLCAweDA2RCwgMHgwNDgsIDB4MDA1LAotCTB4MEI4LCAweDAwRCwgMHgwQTMsIDB4MDAwLCAweDBCNywgMHgwNzYsIDB4MEQ1LCAweDBERSwKLQkweDBCMSwgMHgwNTAsIDB4MERDLCAweDA3RCwgMHgwNzcsIDB4MEJDLCAweDA1NCwgMHgwQkEsCi0JMHgwNTIsIDB4MDdGLCAweDA1OCwgMHgwMTQsIDB4MDM0LCAweDAwRiwgMHgwOUEsIDB4MEYzLAotCTB4MDgxLCAweDA1OCwgMHgwMEIsIDB4MEVBLCAweDBFRiwgMHgwNTgsIDB4MDE0LCAweDA2MCwKLQkweDAxNiwgMHgwQTUsIDB4MDZDLCAweDAyRSwgMHgwRjcsIDB4MDgxLCAweDA0QiwgMHgwQTUsCi0JMHgwNkYsIDB4MDdELCAweDA1RCwgMHgwRUUsIDB4MEI1LCAweDAyRSwgMHgwOTUsIDB4MDgwLAotCTB4MEJFLCAweDBGMCwgMHgwNzMsIDB4MEJELCAweDAwNCwgMHgwN0MsIDB4MEVBLCAweDBGRSwKLQkweDBFQiwgMHgwNEMsIDB4MERFLCAweDAyOSwgMHgwNTMsIDB4MERELCAweDA2QSwgMHgwNTQsCi0JMHgwOTQsIDB4MEE5LCAweDBFQSwgMHgwMEEsIDB4MDhDLCAweDAwMiwgMHgwRDYsIDB4MDRDLAotCTB4MDNDLCAweDAwNSwgMHgwRjQsIDB4MDAwLCAweDBFQSwgMHgwQ0QsIDB4MDU2LCAweDBBRiwKLQkweDBDMCwgMHgwNDcsIDB4MEQyLCAweDA5QywgMHgwOEQsIDB4MDI5LCAweDBDQSwgMHgwRTAsCi0JMHgwMkYsIDB4MEFFLCAweDBCRCwgMHgwNzUsIDB4MDk5LCAweDA5RCwgMHgwNEEsIDB4MEY5LAotCTB4MEVGLCAweDA1MSwgMHgwN0MsIDB4MDk0LCAweDAwQywgMHgwNzcsIDB4MDgwLCAweDAxOCwKLQkweDAxOCwgMHgwMjksIDB4MDJBLCAweDBGOCwgMHgwRTAsIDB4MEU4LCAweDBBQSwgMHgwMzAsCi0JMHgwMEIsIDB4MDJBLCAweDA5OCwgMHgwN0MsIDB4MDFELCAweDAxMSwgMHgwNTEsIDB4MDgwLAotCTB4MDU5LCAweDA1NCwgMHgwQzMsIDB4MDUxLCAweDBGNSwgMHgwMUIsIDB4MDMzLCAweDAyNCwKLQkweDBCQiwgMHgwODIsIDB4MEE1LCAweDAxOSwgMHgwNUMsIDB4MDFELCAweDAxMCwgMHgwMjgsCi0JMHgwQzAsIDB4MDJDLCAweDA5QSwgMHgwQzcsIDB4MEMxLCAweDBEMSwgMHgwMjIsIDB4MDhDLAotCTB4MDAyLCAweDBDOSwgMHgwOTQsIDB4MDY0LCAweDA1QywgMHgwMEMsIDB4MEQ2LCAweDA4RSwKLQkweDAxMywgMHgwNjAsIDB4MDJGLCAweDBCOCwgMHgwMEIsIDB4MEVBLCAweDAzMCwgMHgwRTMsCi0JMHgwQzAsIDB4MDVGLCAweDA0OCwgMHgwREMsIDB4MDc4LCAweDAwQiwgMHgwRTgsIDB4MDAwLAotCTB4MEUzLCAweDBDMCwgMHgwNUYsIDB4MDZDLCAweDAzOCwgMHgwRDUsIDB4MDJFLCAweDAzNSwKLQkweDA0RiwgMHgwNUEsIDB4MDhBLCAweDA2MSwgMHgwQUEsIDB4MDlGLCAweDA1NiwgMHgwMUIsCi0JMHgwMzIsIDB4MDk5LCAweDA0NiwgMHgwNDIsIDB4MEM4LCAweDAwMSwgMHgwMEMsIDB4MDQ1LAotCTB4MENFLCAweDBBNSwgMHgwMTcsIDB4MEU2LCAweDBDNiwgMHgwQ0UsIDB4MEE5LCAweDBFQiwKLQkweDAxNSwgMHgwMTYsIDB4MDQ2LCAweDBBMiwgMHgwNDcsIDB4MDM4LCAweDAxNCwgMHgwNDMsCi0JMHgwMjYsIDB4MDIyLCAweDBFNywgMHgwM0QsIDB4MDYwLCAweDAyRiwgMHgwQUEsIDB4MDlFLAotCTB4MEI1LCAweDAxMiwgMHgwRTAsIDB4MDdGLCAweDAwMSwgMHgwN0QsIDB4MEUzLCAweDBFNywKLQkweDAwMiwgMHgwOTMsIDB4MEY5LCAweDA5NSwgMHgwNDQsIDB4MDVDLCAweDBFNSwgMHgwQTAsCi0JMHgwRTMsIDB4MDlELCAweDA0QSwgMHgwN0YsIDB4MDlDLCAweDA1NCwgMHgwQTksIDB4MEVCLAotCTB4MDUxLCAweDAwNSwgMHgwNDYsIDB4MEI5LCAweDBGQywgMHgwQzAsIDB4MDFCLCAweDAyMiwKLQkweDAyRSwgMHgwNjQsIDB4MDU0LCAweDAyRiwgMHgwQ0QsIDB4MDQ2LCAweDBDQywgMHgwQTcsCi0JMHgwRDUsIDB4MDg2LCAweDBDQywgMHgwQTYsIDB4MDUwLCAweDA1NSwgMHgwQzYsIDB4MDQ1LAotCTB4MENFLCAweDA1QSwgMHgwMEUsIDB4MDM5LCAweDBENCwgMHgwQTcsIDB4MEY5LCAweDBDNSwKLQkweDA0QSwgMHgwOUUsIDB4MEI1LCAweDAxMSwgMHgwODAsIDB4MDU5LCAweDBDMCwgMHgwNkQsCi0JMHgwQ0YsIDB4MEU2LCAweDAwMCwgMHgwRDksIDB4MDExLCAweDA3MywgMHgwMjIsIDB4MEExLAotCTB4MDdFLCAweDA2QSwgMHgwMzYsIDB4MDY1LCAweDAzRSwgMHgwQUMsIDB4MDM2LCAweDA2NSwKLQkweDAzMiwgMHgwQjAsIDB4MDE3LCAweDBERCwgMHgwM0UsIDB4MDcyLCAweDBEMiwgMHgwNzksCi0JMHgwMzEsIDB4MDBDLCAweDA5OCwgMHgwMkUsIDB4MDRDLCAweDAyMCwgMHgwNzMsIDB4MDJBLAotCTB4MDhGLCAweDBGMywgMHgwOEEsIDB4MEFELCAweDBFNywgMHgwNDEsIDB4MDgyLCAweDA3QywKLQkweDBDQSwgMHgwQTYsIDB4MDg5LCAweDBCNSwgMHgwODUsIDB4MDlGLCAweDBCMCwgMHgwRjAsCi0JMHgwMTcsIDB4MEQ1LCAweDAxRiwgMHgwNTQsIDB4MDU0LCAweDAyNSwgMHgwMUEsIDB4MEE4LAotCTB4MEZGLCAweDAyQSwgMHgwOTQsIDB4MDY1LCAweDAxMSwgMHgwRDcsIDB4MDQ5LCAweDA0NCwKLQkweDBENSwgMHgwQ0MsIDB4MEEwLCAweDA1NSwgMHgwRDgsIDB4MEFFLCAweDAwRSwgMHgwODgsCi0JMHgwMTQsIDB4MDYwLCAweDAxNiwgMHgwNEQsIDB4MDYzLCAweDAyMiwgMHgwRTAsIDB4MDcyLAotCTB4MDg2LCAweDAzOCwgMHgwNEQsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLCAweDBCOCwKLQkweDAwQiwgMHgwRUUsIDB4MDAyLCAweDBGQiwgMHgwODEsIDB4MDM4LCAweDBGMCwgMHgwMTcsCi0JMHgwRDcsIDB4MEQ3LCAweDAxRSwgMHgwMDIsIDB4MEZBLCAweDBGQSwgMHgwRTMsIDB4MEMwLAotCTB4MDVGLCAweDA0QywgMHgwODUsIDB4MDkwLCAweDAwMiwgMHgwMTgsIDB4MEM4LCAweDA1QiwKLQkweDA4MCwgMHgwREEsIDB4MDMwLCAweDAwQiwgMHgwNzAsIDB4MDFCLCAweDA0QywgMHgwMjIsCi0JMHgwRDMsIDB4MDRDLCAweDAzMywgMHgwMDMsIDB4MDhDLCAweDAyRSwgMHgwNEMsIDB4MDQzLAotCTB4MDI2LCAweDBEMCwgMHgwRjUsIDB4MDYzLCAweDA2NiwgMHgwRDAsIDB4MDk1LCAweDBBNywKLQkweDBDRSwgMHgwNDUsIDB4MDMzLCAweDAwQSwgMHgwRDYsIDB4MDE2LCAweDA0MiwgMHgwMzgsCi0JMHgwNkUsIDB4MEU0LCAweDBDRSwgMHgwQkQsIDB4MDU5LCAweDAyQywgMHgwRDIsIDB4MEFCLAotCTB4MEJBLCAweDA5NCwgMHgwOUQsIDB4MEU2LCAweDAxQSwgMHgwQjAsIDB4MDE3LCAweDBENSwKLQkweDA0RiwgMHgwNUEsIDB4MDhCLCAweDAwOSwgMHgwMUEsIDB4MDg4LCAweDBCOSwgMHgwQzUsCi0JMHgwNDIsIDB4MDQ3LCAweDAzMCwgMHgwRDQsIDB4MDMyLCAweDAxNiwgMHgwNzIsIDB4MDg4LAotCTB4MDY1LCAweDBCRCwgMHgwNTksIDB4MDk5LCAweDAyNSwgMHgwQTUsIDB4MDYwLCAweDAyRiwKLQkweDBCOCwgMHgwNjAsIDB4MEYzLCAweDAwOCwgMHgwQjcsIDB4MDRBLCAweDAxQSwgMHgwOEYsCi0JMHgwQUIsIDB4MDBELCAweDA5OSwgMHgwNDYsIDB4MDUxLCAweDBBRiwgMHgwMzgsIDB4MEE4LAotCTB4MDhFLCAweDA5MCwgMHgwNjUsIDB4MDEzLCAweDA1MiwgMHgwMTgsIDB4MEEwLCAweDA1NCwKLQkweDBCMSwgMHgwNDIsIDB4MDJFLCAweDA2MSwgMHgwQTgsIDB4MDQ4LCAweDBFNywgMHgwMkQsCi0JMHgwMTYsIDB4MEY3LCAweDBBOCwgMHgwMDUsIDB4MEE1LCAweDA2MCwgMHgwMkYsIDB4MEE0LAotCTB4MDc1LCAweDBEMiwgMHgwNTEsIDB4MDM1LCAweDA3MywgMHgwMjgsIDB4MDE1LCAweDA3NiwKLQkweDAyQiwgMHgwODMsIDB4MEEyLCAweDAwNSwgMHgwMTgsIDB4MDA1LCAweDA5MywgMHgwNTgsCi0JMHgwQzgsIDB4MEI4LCAweDAwNiwgMHgwMjgsIDB4MDYzLCAweDA4NCwgMHgwRDgsIDB4MDBCLAotCTB4MEVFLCAweDAwMiwgMHgwRkIsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLCAweDBBMCwKLQkweDA0MywgMHgwQTcsIDB4MDAxLCAweDA3RCwgMHgwNEMsIDB4MEUzLCAweDBDMCwgMHgwNUYsCi0JMHgwNzAsIDB4MDE3LCAweDBEQywgMHgwMDUsIDB4MEY0LCAweDA2NCwgMHgwMkQsIDB4MEMwLAotCTB4MDZELCAweDAxOCwgMHgwMDUsIDB4MEI4LCAweDAwRCwgMHgwQTUsIDB4MEJELCAweDA2QSwKLQkweDAyMywgMHgwODYsIDB4MEFBLCAweDA5RSwgMHgwQjUsIDB4MDExLCAweDBBNCwgMHgwNkEsCi0JMHgwQTMsIDB4MEVBLCAweDA4QSwgMHgwOEQsIDB4MDIzLCAweDBFMSwgMHgwMTcsIDB4MDM4LAotCTB4MDM0LCAweDA2OSwgMHgwNzEsIDB4MDk4LCAweDA0NSwgMHgwQTYsIDB4MDk4LCAweDA2QSwKLQkweDAzRSwgMHgwQUMsIDB4MDM2LCAweDA2NSwgMHgwMTksIDB4MDQ2LCAweDBCQywgMHgwRTIsCi0JMHgwQTIsIDB4MDNBLCAweDA0MSwgMHgwOTQsIDB4MDRELCAweDA0OCwgMHgwNjIsIDB4MDgxLAotCTB4MDUyLCAweDBDNSwgMHgwMTYsIDB4MEY3LCAweDBBOCwgMHgwOEIsIDB4MDRBLCAweDA1NCwKLQkweDBGNSwgMHgwQTgsIDB4MDhDLCAweDAwMiwgMHgwREMsIDB4MDA2LCAweDBEMSwgMHgwMDMsCi0JMHgwOUMsIDB4MEI0LCAweDBBOSwgMHgwRUUsIDB4MDBBLCAweDA5NSwgMHgwMjUsIDB4MDJBLAotCTB4MDdBLCAweDBBRCwgMHgwNDYsIDB4MDAxLCAweDA2NywgMHgwMDEsIDB4MEI1LCAweDBENywKLQkweDBBQywgMHgwMEEsIDB4MDMwLCAweDAwQiwgMHgwNkMsIDB4MDQ5LCAweDAzNSwgMHgwRTYsCi0JMHgwQjUsIDB4MDY3LCAweDBGMywgMHgwMDAsIDB4MDZDLCAweDA4OCwgMHgwQjksIDB4MDkxLAotCTB4MDUwLCAweDBCRiwgMHgwMzEsIDB4MDFCLCAweDAzMiwgMHgwQTcsIDB4MEI4LCAweDA2OCwKLQkweDA5NSwgMHgwMjUsIDB4MDdCLCAweDBBRCwgMHgwMzMsIDB4MDc4LCAweDBBNywgMHgwQ0QsCi0JMHgwM0UsIDB4MEQzLCAweDA4RSwgMHgwOUQsIDB4MDM0LCAweDBFNywgMHgwNEUsIDB4MEQ0LAotCTB4MDIyLCAweDBFNywgMHgwMDYsIDB4MDg0LCAweDA4RSwgMHgwNjAsIDB4MEE4LCAweDBGRiwKLQkweDAzOCwgMHgwQUIsIDB4MDgzLCAweDA5QywgMHgwMkEsIDB4MDA4LCAweDBGOSwgMHgwRDQsCi0JMHgwMjAsIDB4MDYzLCAweDBCQywgMHgwMUEsIDB4MDA2LCAweDAwQSwgMHgwQzAsIDB4MDVGLAotCTB4MDQ2LCAweDA0MiwgMHgwREMsIDB4MDA2LCAweDBEMSwgMHgwODAsIDB4MDVCLCAweDA4MCwKLQkweDBEQSwgMHgwMjIsIDB4MEU2LCAweDAxQSwgMHgwODQsIDB4MDhFLCAweDA3MiwgMHgwRDEsCi0JMHgwNkYsIDB4MDVBLCAweDA4MCwgMHgwODcsIDB4MDFBLCAweDBBQSwgMHgwN0EsIDB4MEQ0LAotCTB4MDQ4LCAweDBDOCwgMHgwRDUsIDB4MDQ3LCAweDBENSwgMHgwMTUsIDB4MDIzLCAweDAyMywKLQkweDBFMSwgMHgwMTcsIDB4MDM4LCAweDAzNCwgMHgwOEMsIDB4MEJBLCAweDA0QiwgMHgwN0IsCi0JMHgwRDQsIDB4MDAyLCAweDBEMiwgMHgwOEMsIDB4MDIyLCAweDBEQywgMHgwMDYsIDB4MEQ1LAotCTB4MDFGLCAweDA1NiwgMHgwMUIsIDB4MDMyLCAweDA4QywgMHgwQTMsIDB4MDVFLCAweDA3MSwKLQkweDA1MSwgMHgwMUQsIDB4MDIwLCAweDBDQSwgMHgwMjYsIDB4MEE0LCAweDAzMSwgMHgwNDAsCi0JMHgwQTksIDB4MDYyLCAweDBCMCwgMHgwMTcsIDB4MERGLCAweDA5RSwgMHgwRjQsIDB4MEI3LAotCTB4MEM5LCAweDA0MCwgMHgwQzcsIDB4MDc4LCAweDAwMSwgMHgwODEsIDB4MDgyLCAweDBCOCwKLQkweDAzOCwgMHgwMzksIDB4MDQ5LCAweDAxQywgMHgwMjYsIDB4MEMwLCAweDA1RiwgMHgwNzAsCi0JMHgwMTcsIDB4MEQ0LCAweDBBQiwgMHgwRTEsIDB4MDJBLCAweDBGOCwgMHgwNEEsIDB4MEJFLAotCTB4MDEyLCAweDBBRiwgMHgwOEYsIDB4MDk3LCAweDA0RiwgMHgwQ0IsIDB4MEE3LCAweDAwMSwKLQkweDA3RCwgMHgwREEsIDB4MDgwLCAweDBBQSwgMHgwOTEsIDB4MDY0LCAweDA3RiwgMHgwNEEsCi0JMHgwODEsIDB4MEQ1LCAweDAyMiwgMHgwQzgsIDB4MEZFLCAweDA4MiwgMHgwODAsIDB4MDI1LAotCTB4MDQ4LCAweDBCMiwgMHgwM0UsIDB4MEJCLCAweDBEQywgMHgwMzUsIDB4MDJFLCAweDA5NCwKLQkweDAwNywgMHgwRTgsIDB4MDhBLCAweDA5QywgMHgwMDMsIDB4MEUyLCAweDA0QiwgMHgwQTUsCi0JMHgwNzcsIDB4MEFCLCAweDBCMywgMHgwMzIsIDB4MEU5LCAweDA0QiwgMHgwQkQsIDB4MDU5LAotCTB4MDg2LCAweDA4NCwgMHgwOTcsIDB4MDdBLCAweDAwNCwgMHgwQkEsIDB4MDUzLCAweDBFMSwKLQkweDAzMiwgMHgwRUYsIDB4MDUwLCAweDBENCwgMHgwRTYsIDB4MDM1LCAweDA1MywgMHgwRUIsCi0JMHgwMDIsIDB4MDlDLCAweDBDNywgMHgwRDcsIDB4MDdBLCAweDBCMywgMHgwMzAsIDB4MEQyLAotCTB4MDVELCAweDBFQSwgMHgwMDIsIDB4MEU5LCAweDA0NCwgMHgwNUQsIDB4MDE2LCAweDAyOCwKLQkweDBDMCwgMHgwMkMsIDB4MEUwLCAweDAzNiwgMHgwOTEsIDB4MDc0LCAweDA0NSwgMHgwNTksCi0JMHgwMTgsIDB4MEQ1LCAweDA0RiwgMHgwQUMsIDB4MDBBLCAweDBDNCwgMHgwMzUsIDB4MDMwLAotCTB4MDhCLCAweDAzOCwgMHgwNjksIDB4MDJCLCAweDBCRCwgMHgwNTksIDB4MDk4LCAweDA2OSwKLQkweDAyRSwgMHgwRjUsIDB4MDEyLCAweDBFOSwgMHgwNTgsIDB4MDY3LCAweDA0QSwgMHgwRUYsCi0JMHgwNTAsIDB4MEQ1LCAweDA4RSwgMHgwM0UsIDB4MDFDLCAweDBBNCwgMHgwQjAsIDB4MENFLAotCTB4MDkzLCAweDAyMSwgMHgwNkUsIDB4MDFBLCAweDA0OCwgMHgwMUYsIDB4MEEyLCAweDAyQSwKLQkweDBDMywgMHgwMEQsIDB4MDU3LCAweDA3QSwgMHgwQjMsIDB4MDBELCAweDAwOSwgMHgwMkUsCi0JMHgwRjQsIDB4MDQzLCAweDA1RCwgMHgwMjgsIDB4MDhCLCAweDA4MywgMHgwMjAsIDB4MDkyLAotCTB4MDM4LCAweDA0RCwgMHgwODAsIDB4MEJFLCAweDBFMCwgMHgwMkYsIDB4MEFDLCAweDAxNywKLQkweDA0OSwgMHgwQjMsIDB4MEE1LCAweDA4MiwgMHgwRTksIDB4MDNFLCAweDBFOSwgMHgwMzYsCi0JMHgwNzQsIDB4MEUwLCAweDAyRiwgMHgwQTYsIDB4MENFLCAweDA5QywgMHgwMDUsIDB4MEY0LAotCTB4MEMyLCAweDAyQywgMHgwOEMsIDB4MDUyLCAweDA1NywgMHgwN0EsIDB4MEQ0LCAweDA4RCwKLQkweDA0OCwgMHgwRkEsIDB4MEVGLCAweDA1MCwgMHgwRDUsIDB4MEFFLCAweDAzNSwgMHgwNTMsCi0JMHgwRUIsIDB4MDAyLCAweDA4NiwgMHgwMjEsIDB4MEFBLCAweDBFRiwgMHgwNTYsIDB4MDY2LAotCTB4MDFBLCAweDA0QiwgMHgwQkQsIDB4MDQ0LCAweDBCQSwgMHgwNTAsIDB4MEM0LCAweDBFOSwKLQkweDA1MywgMHgwRUIsIDB4MDAyLCAweDA4NiwgMHgwODEsIDB4MEY1LCAweDBERSwgMHgwQTEsCi0JMHgwQTgsIDB4MDYyLCAweDAxRiwgMHgwNUQsIDB4MEZFLCAweDBBMiwgMHgwNUQsIDB4MDI5LAotCTB4MDc3LCAweDBBOCwgMHgwNkEsIDB4MDYxLCAweDA4RCwgMHgwNDAsIDB4MEZELCAweDAxMSwKLQkweDA1MywgMHgwMEMsIDB4MDZBLCAweDBBNywgMHgwRDYsIDB4MDA1LCAweDAzMCwgMHgwQzcsCi0JMHgwRDcsIDB4MDdGLCAweDBBOSwgMHgwNTcsIDB4MDRBLCAweDA1RCwgMHgwRUIsIDB4MDQ4LAotCTB4MDFCLCAweDAwQywgMHgwN0MsIDB4MDhCLCAweDA5RCwgMHgwOEEsIDB4MDUzLCAweDBFRiwKLQkweDA2NiwgMHgwOTQsIDB4MENBLCAweDA1NCwgMHgwRjUsIDB4MEEwLCAweDBDNiwgMHgwMDEsCi0JMHgwNkUsIDB4MDAzLCAweDA2QSwgMHgwOUYsIDB4MDU2LCAweDA3NiwgMHgwNjUsIDB4MDMyLAotCTB4MDhCLCAweDA3QiwgMHgwRDIsIDB4MEM1LCAweDBBNSwgMHgwNjAsIDB4MDJGLCAweDBBQSwKLQkweDA3RCwgMHgwNjUsIDB4MEEzLCAweDAwMCwgMHgwQjcsIDB4MDAxLCAweDBCNCwgMHgwQzgsCi0JMHgwNUEsIDB4MDA3LCAweDA4RiwgMHgwRUQsIDB4MDAxLCAweDBENSwgMHgwMjcsIDB4MDkxLAotCTB4MDY3LCAweDAwMSwgMHgwQjQsIDB4MDhCLCAweDA5QywgMHgwNTQsIDB4MDFDLCAweDA3MywKLQkweDBBOCwgMHgwODQsIDB4MDVDLCAweDBDMSwgMHgwNTAsIDB4MEJGLCAweDAzNiwgMHgwNTYsCi0JMHgwNjAsIDB4MEFCLCAweDA4QywgMHgwOEIsIDB4MDlDLCAweDA1NCwgMHgwMUMsIDB4MDczLAotCTB4MEE4LCAweDA4NCwgMHgwNUMsIDB4MEMxLCAweDA1MCwgMHgwQkYsIDB4MDM2LCAweDA1NiwKLQkweDA2QywgMHgwMDUsIDB4MEY1LCAweDA1MywgMHgwRDYsIDB4MEEyLCAweDAzMCwgMHgwMEIsCi0JMHgwMjksIDB4MDVCLCAweDAxOSwgMHgwRkMsIDB4MEY2LCAweDA5NCwgMHgwNDUsIDB4MENGLAotCTB4MDE1LCAweDAwQiwgMHgwRjMsIDB4MDNDLCAweDBCMywgMHgwMkEsIDB4MDdBLCAweDBDNSwKLQkweDA0NiwgMHgwMDEsIDB4MDY0LCAweDA4QSwgMHgwMzEsIDB4MDIzLCAweDA5QywgMHgwMEEsCi0JMHgwNUQsIDB4MEVBLCAweDAzNCwgMHgwMzMsIDB4MDJFLCAweDA5NSwgMHgwQzcsIDB4MENFLAotCTB4MDJBLCAweDA0RiwgMHgwRTYsIDB4MDUwLCAweDAyMCwgMHgwQjksIDB4MDMxLCAweDAwQywKLQkweDA5QiwgMHgwRUYsIDB4MDM5LCAweDAxNCwgMHgwNDUsIDB4MENFLCAweDA0NSwgMHgwMDcsCi0JMHgwMUMsIDB4MEVBLCAweDA0NiwgMHgwODcsIDB4MEFCLCAweDAxQiwgMHgwMzYsIDB4MDg0LAotCTB4MEE3LCAweDA1RSwgMHgwQUMsIDB4MDk2LCAweDA2NywgMHgwNTIsIDB4MEIwLCAweDAxNywKLQkweDBEQywgMHgwRkUsIDB4MDdCLCAweDA0QSwgMHgwMjIsIDB4MEU3LCAweDA4QSwgMHgwODUsCi0JMHgwRjksIDB4MDlFLCAweDA1OSwgMHgwOTcsIDB4MDdBLCAweDA4RCwgMHgwMEMsIDB4MENCLAotCTB4MEE1LCAweDAyNywgMHgwRjMsIDB4MEEwLCAweDA0NCwgMHgwMzIsIDB4MDYwLCAweDBCOSwKLQkweDAzNywgMHgwREUsIDB4MDcyLCAweDAyOCwgMHgwOEIsIDB4MDlDLCAweDA4QSwgMHgwMEUsCi0JMHgwMzksIDB4MEQ0LCAweDA4QywgMHgwMDUsIDB4MEY3LCAweDBFNywgMHgwQjgsIDB4MDJBLAotCTB4MEY5LCAweDAyOCwgMHgwMTgsIDB4MEVGLCAweDAwMCwgMHgwMzAsIDB4MDMwLCAweDA1NywKLQkweDAwNywgMHgwNDQsIDB4MDBBLCAweDA1MCwgMHgwOEYsIDB4MEYwLCAweDA3MywgMHgwOTEsCi0JMHgwNDEsIDB4MDFGLCAweDAzQSwgMHgwOTAsIDB4MDQ1LCAweDBDMCwgMHgwQkIsIDB4MDE4LAotCTB4MEUxLCAweDAzNiwgMHgwMDIsIDB4MEZCLCAweDBGQiwgMHgwOUUsIDB4MDAyLCAweDBGQSwKLQkweDBFRSwgMHgwRTcsIDB4MEY1LCAweDBDRiwgMHgwMDEsIDB4MDdELCAweDAxMCwgMHgwNUMsCi0JMHgwRjAsIDB4MDE3LCAweDBEMSwgMHgwMDUsIDB4MENGLCAweDAwMSwgMHgwN0QsIDB4MDUzLAotCTB4MEVCLCAweDAyRCwgMHgwMTgsIDB4MDA1LCAweDBCOCwgMHgwMEQsIDB4MEE2LCAweDA0MiwKLQkweDBEQywgMHgwMDYsIDB4MEQzLCAweDAxNywgMHgwMzUsIDB4MEE4LCAweDA4QiwgMHgwOUMsCi0JMHgwMEEsIDB4MDBFLCAweDAzOSwgMHgwRDQsIDB4MDBDLCAweDBGRSwgMHgwN0IsIDB4MDRBLAotCTB4MDIyLCAweDBFNiwgMHgwNTUsIDB4MDBCLCAweDBGMywgMHgwMzEsIDB4MEIzLCAweDA2MCwKLQkweDAyRiwgMHgwQkMsIDB4MDdDLCAweDBFMiwgMHgwQTQsIDB4MEZFLCAweDA2NSwgMHgwNTEsCi0JMHgwMTcsIDB4MDM4LCAweDAxNCwgMHgwMUMsIDB4MDczLCAweDBBOCwgMHgwMTksIDB4MEZDLAotCTB4MEY2LCAweDA5NCwgMHgwNDUsIDB4MENDLCAweDBBQSwgMHgwMTcsIDB4MEU2LCAweDA2MywKLQkweDA2NiwgMHgwMEEsIDB4MEI4LCAweDBDQywgMHgwODUsIDB4MEExLCAweDA1OCwgMHgwRjYsCi0JMHgwQTIsIDB4MDM1LCAweDA0OCwgMHgwNDgsIDB4MDdGLCAweDA0QSwgMHgwODksIDB4MDk1LAotCTB4MDIxLCAweDAyMSwgMHgwRkQsIDB4MDA1LCAweDAwMiwgMHgwNTQsIDB4MDlFLCAweDA0NSwKLQkweDA5MSwgMHgwMEUsIDB4MDNDLCAweDAwNSwgMHgwRjUsIDB4MDA3LCAweDA0MCwgMHgwNTUsCi0JMHgwNDgsIDB4MDUyLCAweDAzRSwgMHgwODYsIDB4MEEwLCAweDA3NSwgMHgwNDgsIDB4MDUyLAotCTB4MDNFLCAweDBCNSwgMHgwMDAsIDB4MDRBLCAweDA5QywgMHgwMDAsIDB4MDZCLCAweDBDNywKLQkweDBDRSwgMHgwNDUsIDB4MDI3LCAweDBGMywgMHgwMkEsIDB4MDg0LCAweDAzNywgMHgwMzUsCi0JMHgwREUsIDB4MEEwLCAweDBBQiwgMHgwMjMsIDB4MDFBLCAweDBBRSwgMHgwRjUsIDB4MDgzLAotCTB4MDU5LCAweDAxOCwgMHgwRDcsIDB4MDQzLCAweDBERSwgMHgwMkEsIDB4MEQwLCAweDA5NCwKLQkweDBFQiwgMHgwREUsIDB4MDA1LCAweDAzQSwgMHgwOTUsIDB4MDlGLCAweDBDQywgMHgwQzMsCi0JMHgwMjAsIDB4MDQ1LCAweDBDQywgMHgwQUEsIDB4MDE3LCAweDBFNiwgMHgwNjYsIDB4MENDLAotCTB4MDQzLCAweDAyNiwgMHgwNEYsIDB4MEU3LCAweDA0MSwgMHgwMjIsIDB4MDJFLCAweDA3MCwKLQkweDA2OCwgMHgwMzgsIDB4MEU3LCAweDA1MywgMHgwRTAsIDB4MDJGLCAweDBBQiwgMHgwQkMsCi0JMHgwMTIsIDB4MEQyLCAweDBFOSwgMHgwNTgsIDB4MDBCLCAweDBFQSwgMHgwQTcsIDB4MEFELAotCTB4MDQ1LCAweDBBMSwgMHgwMUYsIDB4MEMwLCAweDA1RiwgMHgwNzgsIDB4MDM5LCAweDBDOCwKLQkweDBBMCwgMHgwOEYsIDB4MDlELCAweDA0OCwgMHgwMUMsIDB4MDI0LCAweDBFRSwgMHgwQzcsCi0JMHgwODAsIDB4MEJFLCAweDBCQSwgMHgwRjUsIDB4MDZELCAweDA2NiwgMHgwNDksIDB4MDc3LAotCTB4MDBELCAweDA0RSwgMHgwQTUsIDB4MDMwLCAweDAwOSwgMHgwQjQsIDB4MEY5LCAweDBDNSwKLQkweDA0MywgMHgwMEYsIDB4MDM4LCAweDBBOSwgMHgwM0YsIDB4MDlELCAweDAwMiwgMHgwRkIsCi0JMHgwQ0UsIDB4MDQ1LCAweDAxMSwgMHgwNzMsIDB4MDkxLCAweDA0MSwgMHgwQzcsIDB4MDNBLAotCTB4MDkxLCAweDA5RiwgMHgwQ0YsIDB4MDY5LCAweDA0NCwgMHgwNUMsIDB4MEYxLCAweDA1MCwKLQkweDBCRiwgMHgwMzMsIDB4MENCLCAweDAzMiwgMHgwQTcsIDB4MEFDLCAweDA1NCwgMHgwOTAsCi0JMHgwOEQsIDB4MDQ0LCAweDA4RSwgMHgwNzAsIDB4MDI5LCAweDA3NywgMHgwQTgsIDB4MEQwLAotCTB4MENDLCAweDBCQSwgMHgwNTYsIDB4MEIwLCAweDBCMiwgMHgwOUQsIDB4MDhDLCAweDA4NiwKLQkweDA0QywgMHgwMTcsIDB4MDI2LCAweDA3NywgMHgwMjYsIDB4MDFDLCAweDAyNywgMHgwMUMsCi0JMHgwMjQsIDB4MDlFLCAweDAyMywgMHgwNjEsIDB4MEJFLCAweDA4RSwgMHgwMTIsIDB4MDRGLAotCTB4MDExLCAweDA4NywgMHgwMUMsIDB4MEVBLCAweDA1QywgMHgwMDUsIDB4MEY1LCAweDBENywKLQkweDBCOCwgMHgwNkEsIDB4MDc1LCAweDAyOSwgMHgwNzcsIDB4MEFCLCAweDAwRCwgMHgwOTksCi0JMHgwNzQsIDB4MEE1LCAweDA0RiwgMHgwNzIsIDB4MEEwLCAweDBBQSwgMHgwNEEsIDB4MEM2LAotCTB4MEYzLCAweDA2NiwgMHgwNjYsIDB4MEM2LCAweDAzOSwgMHgwODIsIDB4MEFGLCAweDA3NSwKLQkweDBBNiwgMHgwNkYsIDB4MDE0LCAweDA2QiwgMHgwQ0UsIDB4MDA1LCAweDA3MCwgMHgwNzMsCi0JMHgwOTYsIDB4MDgyLCAweDAzRSwgMHgwNzUsIDB4MDI4LCAweDBFMSwgMHgwM0EsIDB4MEE3LAotCTB4MEFELCAweDA0NCwgMHgwNjAsIDB4MDE2LCAweDA1MiwgMHgwQjYsIDB4MDFELCAweDA3QSwKLQkweDBCNiwgMHgwQjMsIDB4MDI0LCAweDBCQiwgMHgwODYsIDB4MEE3LCAweDA1MiwgMHgwOTgsCi0JMHgwMDQsIDB4MERBLCAweDA3QywgMHgwRTIsIDB4MEExLCAweDA4NywgMHgwOUMsIDB4MDU1LAotCTB4MEY3LCAweDA5QywgMHgwQjUsIDB4MEFDLCAweDAyQywgMHgwOTUsIDB4MDMzLCAweDBCOSwKLQkweDAzMSwgMHgwMDUsIDB4MEQ5LCAweDA1MywgMHgwRDYsIDB4MEEyLCAweDAzMCwgMHgwMEIsCi0JMHgwMjksIDB4MDVCLCAweDAwMiwgMHgwMkUsIDB4MDYxLCAweDA1QSwgMHgwMTcsIDB4MEU2LAotCTB4MDlDLCAweDBCMywgMHgwMkEsIDB4MDdBLCAweDBDNSwgMHgwNDAsIDB4MDIxLCAweDBBOCwKLQkweDA5MSwgMHgwQ0UsIDB4MDA1LCAweDAyNywgMHgwRjMsIDB4MEE1LCAweDA4OCwgMHgwNjQsCi0JMHgwQzEsIDB4MDcyLCAweDA2NSwgMHgwNEYsIDB4MDU4LCAweDAxNCwgMHgwMEMsIDB4MDhELAotCTB4MDdFLCAweDBGMywgMHgwODEsIDB4MDQ0LCAweDA1QywgMHgwRUYsIDB4MDQxLCAweDBDNywKLQkweDAzQSwgMHgwQkUsIDB4MDAyLCAweDBGQSwgMHgwQTksIDB4MEVBLCAweDBDRSwgMHgwQ0MsCi0JMHgwQTksIDB4MDI5LCAweDA1MywgMHgwRDYsIDB4MEEyLCAweDA0NiwgMHgwNDcsIDB4MERELAotCTB4MDdBLCAweDBDMCwgMHgwQTMsIDB4MDAwLCAweDA4NiwgMHgwRTIsIDB4MDlCLCAweDAyOSwKLQkweDA3OCwgMHgwOEIsIDB4MDgxLCAweDAwOSwgMHgwOTgsIDB4MDcwLCAweDA5QiwgMHgwMjksCi0JMHgwNzksIDB4MDVELCAweDBEOSwgMHgwNzIsIDB4MEVELCAweDA5NCwgMHgwQkMsIDB4MEI5LAotCTB4MDc2LCAweDAxMywgMHgwM0IsIDB4MDJBLCAweDA1RCwgMHgwQjIsIDB4MDk3LCAweDA5NSwKLQkweDAyRSwgMHgwRDksIDB4MDRCLCAweDBDQSwgMHgwN0QsIDB4MDVCLCAweDA1OSwgMHgwOTQsCi0JMHgwQ0EsIDB4MDFDLCAweDAyNCwgMHgwRUUsIDB4MEM3LCAweDA5NCwgMHgwQkMsIDB4MEMwLAotCTB4MDI2LCAweDBEMywgMHgwRTcsIDB4MDE1LCAweDAwQywgMHgwM0MsIDB4MEUyLCAweDBBQywKLQkweDBGRSwgMHgwN0IsIDB4MDRBLCAweDAyMiwgMHgwRTcsIDB4MDhBLCAweDA4NSwgMHgwRjksCi0JMHgwOUUsIDB4MDU5LCAweDA5NywgMHgwN0EsIDB4MDhELCAweDAwQywgMHgwQ0IsIDB4MEE1LAotCTB4MDI3LCAweDBGMywgMHgwQTAsIDB4MDQxLCAweDA3MiwgMHgwNjIsIDB4MDE5LCAweDAzNywKLQkweDBERSwgMHgwNzAsIDB4MDI4LCAweDA4QiwgMHgwOUMsIDB4MDhBLCAweDAwRSwgMHgwMzksCi0JMHgwRDQsIDB4MDhELCAweDAwRiwgMHgwNTYsIDB4MDM2LCAweDA2RCwgMHgwMDksIDB4MDRFLAotCTB4MEJELCAweDA1OSwgMHgwMkMsIDB4MENFLCAweDBBNSwgMHgwNkIsIDB4MDBCLCAweDAyMiwKLQkweDBEOSwgMHgwOUQsIDB4MEM5LCAweDBCMiwgMHgwOTcsIDB4MEJFLCAweDBGMywgMHgwODEsCi0JMHgwNEEsIDB4MDdELCAweDA2NSwgMHgwQTMsIDB4MDAwLCAweDA5MywgMHgwOEYsIDB4MDY3LAotCTB4MDI5LCAweDA3OCwgMHgwQzIsIDB4MDRELCAweDBDMSwgMHgwRDEsIDB4MDA2LCAweDA4MiwKLQkweDAzMSwgMHgwQUYsIDB4MDA3LCAweDAzOCwgMHgwMzQsIDB4MDExLCAweDBGMywgMHgwQTgsCi0JMHgwMkEsIDB4MDlFLCAweDBBOCwgMHgwNjYsIDB4MDFBLCAweDBBNCwgMHgwQTUsIDB4MDRGLAotCTB4MDVBLCAweDAwQywgMHgwMTEsIDB4MDhGLCAweDBBQSwgMHgwN0IsIDB4MEQwLCAweDA2NSwKLQkweDA0OSwgMHgwNDUsIDB4MEJELCAweDBFOSwgMHgwNjIsIDB4MEQyLCAweDBCMSwgMHgwOUUsCi0JMHgwNkMsIDB4MENDLCAweDBDNiwgMHgwMTksIDB4MDg3LCAweDAwOSwgMHgwQzMsIDB4MDhFLAotCTB4MDc1LCAweDA0MSwgMHgwMUYsIDB4MDNBLCAweDBBNSwgMHgwMTMsIDB4MEQ1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDVBLCAweDBDQywgMHgwOTAKLSB9OwotCi0jZW5kaWYJLyogZGVmaW5lZChDT05GSUdfU01DVFIpIHx8IGRlZmluZWQoQ09ORklHX1NNQ1RSX01PRFVMRSkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bGlwL3R1bGlwX2NvcmUuYyBiL2RyaXZlcnMvbmV0L3R1bGlwL3R1bGlwX2NvcmUuYwppbmRleCA1NTY3MGI1Li5hZjhkMmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90dWxpcC90dWxpcF9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvdHVsaXAvdHVsaXBfY29yZS5jCkBAIC03MzEsNyArNzMxLDcgQEAKIAl2b2lkIF9faW9tZW0gKmlvYWRkciA9IHRwLT5iYXNlX2FkZHI7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2FuY2VsX3dvcmtfc3luYygmdHAtPm1lZGlhX3dvcmspOwogCiAjaWZkZWYgQ09ORklHX1RVTElQX05BUEkKIAluYXBpX2Rpc2FibGUoJnRwLT5uYXBpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggMGNlMDdhMy4uZWJhMTI3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9mY250bC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTMxMyw2ICszMTQsMjEgQEAKIAogCXN3aXRjaCAodHVuLT5mbGFncyAmIFRVTl9UWVBFX01BU0spIHsKIAljYXNlIFRVTl9UVU5fREVWOgorCQlpZiAodHVuLT5mbGFncyAmIFRVTl9OT19QSSkgeworCQkJc3dpdGNoIChza2ItPmRhdGFbMF0gJiAweGYwKSB7CisJCQljYXNlIDB4NDA6CisJCQkJcGkucHJvdG8gPSBodG9ucyhFVEhfUF9JUCk7CisJCQkJYnJlYWs7CisJCQljYXNlIDB4NjA6CisJCQkJcGkucHJvdG8gPSBodG9ucyhFVEhfUF9JUFY2KTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJdHVuLT5kZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKKwkJCQlrZnJlZV9za2Ioc2tiKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJfQorCiAJCXNrYl9yZXNldF9tYWNfaGVhZGVyKHNrYik7CiAJCXNrYi0+cHJvdG9jb2wgPSBwaS5wcm90bzsKIAkJc2tiLT5kZXYgPSB0dW4tPmRldjsKQEAgLTU4Nyw2ICs2MDMsMTIgQEAKIAl0dW4tPmF0dGFjaGVkID0gMTsKIAlnZXRfbmV0KGRldl9uZXQodHVuLT5kZXYpKTsKIAorCS8qIE1ha2Ugc3VyZSBwZXJzaXN0ZW50IGRldmljZXMgZG8gbm90IGdldCBzdHVjayBpbgorCSAqIHhvZmYgc3RhdGUuCisJICovCisJaWYgKG5ldGlmX3J1bm5pbmcodHVuLT5kZXYpKQorCQluZXRpZl93YWtlX3F1ZXVlKHR1bi0+ZGV2KTsKKwogCXN0cmNweShpZnItPmlmcl9uYW1lLCB0dW4tPmRldi0+bmFtZSk7CiAJcmV0dXJuIDA7CiAKQEAgLTc4MSwyMiArODAzLDI2IEBACiAKIAlEQkcoS0VSTl9JTkZPICIlczogdHVuX2Nocl9mYXN5bmMgJWRcbiIsIHR1bi0+ZGV2LT5uYW1lLCBvbik7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWlmICgocmV0ID0gZmFzeW5jX2hlbHBlcihmZCwgZmlsZSwgb24sICZ0dW4tPmZhc3luYykpIDwgMCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBvdXQ7CiAKIAlpZiAob24pIHsKIAkJcmV0ID0gX19mX3NldG93bihmaWxlLCB0YXNrX3BpZChjdXJyZW50KSwgUElEVFlQRV9QSUQsIDApOwogCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJCWdvdG8gb3V0OwogCQl0dW4tPmZsYWdzIHw9IFRVTl9GQVNZTkM7CiAJfSBlbHNlCiAJCXR1bi0+ZmxhZ3MgJj0gflRVTl9GQVNZTkM7Ci0KLQlyZXR1cm4gMDsKKwlyZXQgPSAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHR1bl9jaHJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlEQkcxKEtFUk5fSU5GTyAidHVuWDogdHVuX2Nocl9vcGVuXG4iKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2thd2V0aC5jIGIvZHJpdmVycy9uZXQvdXNiL2thd2V0aC5jCmluZGV4IDBkY2ZjMDMuLmQ2ODI5ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGguYworKysgYi9kcml2ZXJzL25ldC91c2Iva2F3ZXRoLmMKQEAgLTU3LDEzICs1NywxMiBAQAogI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogCiAjdW5kZWYgREVCVUcKIAotI2luY2x1ZGUgImthd2V0aGZ3LmgiCi0KICNkZWZpbmUgS0FXRVRIX01UVQkJCTE1MTQKICNkZWZpbmUgS0FXRVRIX0JVRl9TSVpFCQkJMTY2NAogI2RlZmluZSBLQVdFVEhfVFhfVElNRU9VVAkJKDUgKiBIWikKQEAgLTEwOCw2ICsxMDcsMTAgQEAKIE1PRFVMRV9BVVRIT1IoIk1pY2hhZWwgWmFwcGUgPHphcG1hbkBpbnRlcmxhbi5uZXQ+LCBTdGVwaGFuZSBBbG5ldCA8c3RlcGhhbmVAdS1waWNhcmRpZS5mcj4sIEJyYWQgSGFyZHMgPGJoYXJkc0BiaWdwb25kLm5ldC5hdT4gYW5kIE9saXZlciBOZXVrdW0gPG9saXZlckBuZXVrdW0ub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJLTDVVU0IxMDEgVVNCIEV0aGVybmV0IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJrYXdldGgvbmV3X2NvZGUuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC9uZXdfY29kZV9maXguYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC90cmlnZ2VyX2NvZGUuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZVtdID0gImthd2V0aCI7CiAKQEAgLTM4NSwxNyArMzg4LDI4IEBACiAgKiAgICAga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBpbnQga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKHN0cnVjdCBrYXdldGhfZGV2aWNlICprYXdldGgsCi0JCQkJICAgIF9fdTggKmRhdGEsCi0JCQkJICAgIF9fdTE2IGRhdGFfbGVuLAorCQkJCSAgICBjb25zdCBjaGFyICpmd25hbWUsCiAJCQkJICAgIF9fdTggaW50ZXJydXB0LAogCQkJCSAgICBfX3U4IHR5cGUpCiB7Ci0JaWYoZGF0YV9sZW4gPiBLQVdFVEhfRklSTVdBUkVfQlVGX1NJWkUpCXsKLQkJZXJyKCJGaXJtd2FyZSB0b28gYmlnOiAlZCIsIGRhdGFfbGVuKTsKLQkJcmV0dXJuIC1FTk9TUEM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwlpbnQgZGF0YV9sZW47CisJaW50IHJldDsKKworCXJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd25hbWUsICZrYXdldGgtPmRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCWVycigiRmlybXdhcmUgcmVxdWVzdCBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAotCW1lbWNweShrYXdldGgtPmZpcm13YXJlX2J1ZiwgZGF0YSwgZGF0YV9sZW4pOworCWlmIChmdy0+c2l6ZSA+IEtBV0VUSF9GSVJNV0FSRV9CVUZfU0laRSkgeworCQllcnIoIkZpcm13YXJlIHRvbyBiaWc6ICV6dSIsIGZ3LT5zaXplKTsKKwkJcmV0dXJuIC1FTk9TUEM7CisJfQorCWRhdGFfbGVuID0gZnctPnNpemU7CisJbWVtY3B5KGthd2V0aC0+ZmlybXdhcmVfYnVmLCBmdy0+ZGF0YSwgZnctPnNpemUpOworCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAKIAlrYXdldGgtPmZpcm13YXJlX2J1ZlsyXSA9IChkYXRhX2xlbiAmIDB4RkYpIC0gNzsKIAlrYXdldGgtPmZpcm13YXJlX2J1ZlszXSA9IGRhdGFfbGVuID4+IDg7CkBAIC00MDYsOCArNDIwLDcgQEAKIAkJICAga2F3ZXRoLT5maXJtd2FyZV9idWZbMl0pOwogCiAJZGJnKCJEb3dubG9hZGluZyBmaXJtd2FyZSBhdCAlcCB0byBrYXdldGggZGV2aWNlIGF0ICVwIiwKLQkgICAgZGF0YSwKLQkgICAga2F3ZXRoKTsKKwkgICAgZnctPmRhdGEsIGthd2V0aCk7CiAJZGJnKCJGaXJtd2FyZSBsZW5ndGg6ICVkIiwgZGF0YV9sZW4pOwogCiAJcmV0dXJuIGthd2V0aF9jb250cm9sKGthd2V0aCwKQEAgLTcwNiw3ICs3MTksNyBAQAogCXVzYl9raWxsX3VyYihrYXdldGgtPnJ4X3VyYik7CiAJdXNiX2tpbGxfdXJiKGthd2V0aC0+dHhfdXJiKTsKIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZrYXdldGgtPmxvd21lbV93b3JrKTsKIAogCS8qIGEgc2NoZWR1bGVkIHdvcmsgbWF5IGhhdmUgcmVzdWJtaXR0ZWQsCiAJICAgd2UgaGl0IHRoZW0gYWdhaW4gKi8KQEAgLTEwMDksOCArMTAyMiw3IEBACiAJCWluZm8oIkRvd25sb2FkaW5nIGZpcm13YXJlLi4uIik7CiAJCWthd2V0aC0+ZmlybXdhcmVfYnVmID0gKF9fdTggKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CiAJCWlmICgocmVzdWx0ID0ga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKGthd2V0aCwKLQkJCQkJCSAgICAgIGthd2V0aF9uZXdfY29kZSwKLQkJCQkJCSAgICAgIGxlbl9rYXdldGhfbmV3X2NvZGUsCisJCQkJCQkgICAgICAia2F3ZXRoL25ld19jb2RlLmJpbiIsCiAJCQkJCQkgICAgICAxMDAsCiAJCQkJCQkgICAgICAyKSkgPCAwKSB7CiAJCQllcnIoIkVycm9yIGRvd25sb2FkaW5nIGZpcm13YXJlICglZCkiLCByZXN1bHQpOwpAQCAtMTAxOCw4ICsxMDMwLDcgQEAKIAkJfQogCiAJCWlmICgocmVzdWx0ID0ga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKGthd2V0aCwKLQkJCQkJCSAgICAgIGthd2V0aF9uZXdfY29kZV9maXgsCi0JCQkJCQkgICAgICBsZW5fa2F3ZXRoX25ld19jb2RlX2ZpeCwKKwkJCQkJCSAgICAgICJrYXdldGgvbmV3X2NvZGVfZml4LmJpbiIsCiAJCQkJCQkgICAgICAxMDAsCiAJCQkJCQkgICAgICAzKSkgPCAwKSB7CiAJCQllcnIoIkVycm9yIGRvd25sb2FkaW5nIGZpcm13YXJlIGZpeCAoJWQpIiwgcmVzdWx0KTsKQEAgLTEwMjcsOCArMTAzOCw3IEBACiAJCX0KIAogCQlpZiAoKHJlc3VsdCA9IGthd2V0aF9kb3dubG9hZF9maXJtd2FyZShrYXdldGgsCi0JCQkJCQkgICAgICBrYXdldGhfdHJpZ2dlcl9jb2RlLAotCQkJCQkJICAgICAgbGVuX2thd2V0aF90cmlnZ2VyX2NvZGUsCisJCQkJCQkgICAgICAia2F3ZXRoL3RyaWdnZXJfY29kZS5iaW4iLAogCQkJCQkJICAgICAgMTI2LAogCQkJCQkJICAgICAgMikpIDwgMCkgewogCQkJZXJyKCJFcnJvciBkb3dubG9hZGluZyB0cmlnZ2VyIGNvZGUgKCVkKSIsIHJlc3VsdCk7CkBAIC0xMDM3LDggKzEwNDcsNyBAQAogCQl9CiAKIAkJaWYgKChyZXN1bHQgPSBrYXdldGhfZG93bmxvYWRfZmlybXdhcmUoa2F3ZXRoLAotCQkJCQkJICAgICAga2F3ZXRoX3RyaWdnZXJfY29kZV9maXgsCi0JCQkJCQkgICAgICBsZW5fa2F3ZXRoX3RyaWdnZXJfY29kZV9maXgsCisJCQkJCQkgICAgICAia2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluIiwKIAkJCQkJCSAgICAgIDEyNiwKIAkJCQkJCSAgICAgIDMpKSA8IDApIHsKIAkJCWVycigiRXJyb3IgZG93bmxvYWRpbmcgdHJpZ2dlciBjb2RlIGZpeCAoJWQpIiwgcmVzdWx0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGhmdy5oIGIvZHJpdmVycy9uZXQvdXNiL2thd2V0aGZ3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmODVmY2IuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2thd2V0aGZ3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NTcgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIE5PVEU6IEI2L0MzIGlzIGRhdGEgaGVhZGVyIHNpZ25hdHVyZSAgICovCi0vKiAgICAgICAweEFBLzB4QkIgaXMgZGF0YSBsZW5ndGggPSB0b3RhbCAqLwotLyogICAgICAgYnl0ZXMgLSA3LCAweENDIGlzIHR5cGUsIDB4REQgaXMgKi8KLS8qICAgICAgIGludGVycnVwdCB0byB1c2UuICAgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF90cmlnZ2VyX2NvZGUKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIF9fdTgga2F3ZXRoX3RyaWdnZXJfY29kZVtdID0gCi17Ci0gICAgMHhCNiwgMHhDMywgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwKLSAgICAweGM4LCAweDA3LCAweGEwLCAweDAwLCAweGYwLCAweDA3LCAweDVlLCAweDAwLAotICAgIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4MGEsIDB4MDAsIDB4MDgsIDB4MDAsCi0gICAgMHhmMCwgMHgwOSwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHhlNywgMHgwNywKLSAgICAweDM2LCAweDAwLCAweDAwLCAweDAwLCAweGYwLCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4NTAsIDB4YzMsIDB4MTAsIDB4YzAsCi0gICAgMHhmMCwgMHgwOSwgMHgwZSwgMHhjMCwgMHgwMCwgMHgwMCwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweDBlLCAweGMwLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4MTcsIDB4MDIsIDB4YzgsIDB4MDcsIDB4YTAsIDB4MDAsCi0gICAgMHhlNywgMHgxNywgMHg1MCwgMHhjMywgMHgxMCwgMHhjMCwgMHgzMCwgMHhkOCwKLSAgICAweDA0LCAweDAwLCAweDMwLCAweDVjLCAweDA4LCAweDAwLCAweDA0LCAweDAwLAotICAgIDB4YjAsIDB4YzAsIDB4MDYsIDB4MDAsIDB4YzgsIDB4MDUsIDB4ZTcsIDB4MDUsCi0gICAgMHgwMCwgMHhjMCwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwgMHg0OSwgMHhhZiwKLSAgICAweGMwLCAweDA3LCAweDAwLCAweDAwLCAweDYwLCAweGFmLCAweDRhLCAweGFmLAotICAgIDB4MDAsIDB4MGMsIDB4MGMsIDB4MDAsIDB4NDAsIDB4ZDIsIDB4MDAsIDB4MWMsCi0gICAgMHgwYywgMHgwMCwgMHg0MCwgMHhkMiwgMHgzMCwgMHgwMCwgMHgwOCwgMHgwMCwKLSAgICAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweGYwLCAweDA3LAotICAgIDB4ODYsIDB4MDAsIDB4MDYsIDB4MDAsIDB4NjcsIDB4Y2YsIDB4MjcsIDB4MGMsCi0gICAgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyNywgMHgwYywgMHgwMCwgMHgwMCwKLSAgICAweDBlLCAweGMwLCAweDQ5LCAweGFmLCAweDY0LCAweGFmLCAweGMwLCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4NGIsIDB4YWYsIDB4NGEsIDB4YWYsIDB4NWEsIDB4Y2YsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDk0LCAweDAwLCAweDA1LCAweDAwLAotICAgIDB4MDAsIDB4MDAKLX07Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF90cmlnZ2VyX2NvZGVfZml4Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBfX3U4IGthd2V0aF90cmlnZ2VyX2NvZGVfZml4W10gPSAKLXsKLSAgICAweEI2LCAweEMzLCAweEFBLCAweEJCLCAweENDLCAweERELAotICAgIDB4MDIsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTgsIDB4MDAsIDB4M2UsIDB4MDAsCi0gICAgMHg4MCwgMHgwMCwgMHg5OCwgMHgwMCwgMHhhYSwgMHgwMCwKLSAgICAweDAwLCAweDAwCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF9uZXdfY29kZQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgX191OCBrYXdldGhfbmV3X2NvZGVbXSA9IAotewotICAgIDB4QjYsIDB4QzMsIDB4QUEsIDB4QkIsIDB4Q0MsIDB4REQsCi0gICAgMHg5ZiwgMHhjZiwgMHhkZSwgMHgwNiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGM0LCAweDA2LCAweDk3LCAweGMxLCAweGU3LCAweDY3LCAweGZmLCAweDFmLAotICAgIDB4MjgsIDB4YzAsIDB4ZTcsIDB4ODcsIDB4MDAsIDB4MDQsIDB4MjQsIDB4YzAsCi0gICAgMHhlNywgMHg2NywgMHhmZiwgMHhmOSwgMHgyMiwgMHhjMCwgMHg5NywgMHhjZiwKLSAgICAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGU3LCAweDA5LCAweGEyLCAweGMwLAotICAgIDB4YmUsIDB4MDYsIDB4OWYsIDB4YWYsIDB4MzYsIDB4MDAsIDB4ZTcsIDB4MDUsCi0gICAgMHgwMCwgMHhjMCwgMHhhNywgMHhjZiwgMHhiYywgMHgwNiwgMHg5NywgMHhjZiwKLSAgICAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweGI4LCAweDA2LCAweGE3LCAweGExLAotICAgIDB4YjgsIDB4MDYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHgxNCwgMHgwOCwgMHgwYSwgMHhjMCwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGE0LCAweGMwLCAweGE3LCAweGMwLCAweDdhLCAweDA2LCAweDlmLCAweGFmLAotICAgIDB4OTIsIDB4MDcsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MTQsIDB4MDgsCi0gICAgMHhlNywgMHg1NywgMHhmZiwgMHhmZiwgMHhiYSwgMHgwNiwgMHg5ZiwgMHhhMCwKLSAgICAweDM4LCAweDAwLCAweGU3LCAweDU5LCAweGJhLCAweDA2LCAweGJlLCAweDA2LAotICAgIDB4OWYsIDB4YTAsIDB4MzgsIDB4MDAsIDB4YzgsIDB4MDksIDB4Y2EsIDB4MDYsCi0gICAgMHgwOCwgMHg2MiwgMHg5ZiwgMHhhMSwgMHgzNiwgMHgwOCwgMHhjMCwgMHgwOSwKLSAgICAweDc2LCAweDA2LCAweDAwLCAweDYwLCAweGE3LCAweGMwLCAweDdhLCAweDA2LAotICAgIDB4OWYsIDB4YWYsIDB4Y2MsIDB4MDIsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhiOCwgMHgwNiwgMHhhNywgMHhjMSwgMHg3YSwgMHgwNiwgMHg5ZiwgMHhhZiwKLSAgICAweDA0LCAweDAwLCAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweDhlLCAweDA2LAotICAgIDB4MGEsIDB4YzEsIDB4ZTcsIDB4MDksIDB4MjAsIDB4YzAsIDB4MTAsIDB4MDgsCi0gICAgMHhlNywgMHhkMCwgMHgxMCwgMHgwOCwgMHhlNywgMHg2NywgMHg0MCwgMHgwMCwKLSAgICAweDEwLCAweDA4LCAweDlmLCAweGFmLCAweDkyLCAweDBjLCAweGMwLCAweDA5LAotICAgIDB4ZDAsIDB4MDYsIDB4MDAsIDB4NjAsIDB4MDUsIDB4YzQsIDB4YzAsIDB4NTksCi0gICAgMHhiZSwgMHgwNiwgMHgwMiwgMHhjMCwgMHg5ZiwgMHhhZiwgMHhlYywgMHgwMCwKLSAgICAweDlmLCAweGFmLCAweDM0LCAweDAyLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YTYsIDB4MDYsIDB4OWYsIDB4YTAsIDB4N2EsIDB4MDIsIDB4YTcsIDB4Y2YsCi0gICAgMHg3YSwgMHgwNiwgMHg0OCwgMHgwMiwgMHhlNywgMHgwOSwgMHhiZSwgMHgwNiwKLSAgICAweGQwLCAweDA2LCAweGM4LCAweDM3LCAweDA0LCAweDAwLCAweDlmLCAweGFmLAotICAgIDB4MDgsIDB4MDMsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhjZSwgMHgwNiwgMHg5NywgMHhjMCwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwKLSAgICAweGMxLCAweGRmLCAweGM4LCAweDA5LCAweGM2LCAweDA2LCAweDA4LCAweDYyLAotICAgIDB4MTQsIDB4YzAsIDB4MjcsIDB4MDQsIDB4YzYsIDB4MDYsIDB4MTAsIDB4OTQsCi0gICAgMHhmMCwgMHgwNywgMHgxMCwgMHgwOCwgMHgwMiwgMHgwMCwgMHhjMSwgMHgwNywKLSAgICAweDAxLCAweDAwLCAweDcwLCAweDAwLCAweDA0LCAweDAwLCAweGYwLCAweDA3LAotICAgIDB4MzAsIDB4MDEsIDB4MDYsIDB4MDAsIDB4NTAsIDB4YWYsIDB4ZTcsIDB4MDcsCi0gICAgMHhmZiwgMHhmZiwgMHhkMCwgMHgwNiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGNlLCAweDA2LCAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLAotICAgIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4NDgsIDB4MDIsCi0gICAgMHhkMCwgMHgwOSwgMHhjNiwgMHgwNiwgMHgyNywgMHgwMiwgMHhjNiwgMHgwNiwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLCAweDQ4LCAweDAyLAotICAgIDB4YzgsIDB4MzcsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGMsIDB4MGMsIDB4MDAsCi0gICAgMHgwMCwgMHg2MCwgMHgyMSwgMHhjMCwgMHhjMCwgMHgzNywgMHgzZSwgMHgwMCwKLSAgICAweDIzLCAweGM5LCAweGMwLCAweDU3LCAweGI0LCAweDA1LCAweDFiLCAweGM4LAotICAgIDB4YzAsIDB4MTcsIDB4M2YsIDB4MDAsIDB4YzAsIDB4NjcsIDB4YzAsIDB4ZmYsCi0gICAgMHgzMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDA0LCAweDAwLCAweDAwLCAweDAyLCAweGMwLCAweDE3LCAweDRjLCAweDAwLAotICAgIDB4MzAsIDB4MDAsIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4YTAsIDB4MDEsCi0gICAgMHgwYSwgMHgwMCwgMHg0OCwgMHgwMiwgMHhjMSwgMHgwNywgMHgwMiwgMHgwMCwKLSAgICAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGMxLCAweGRmLCAweDUxLCAweGFmLAotICAgIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsIDB4OWYsIDB4YWYsCi0gICAgMHgwOCwgMHgwMywgMHg5ZiwgMHhhZiwgMHg3YSwgMHgwMiwgMHg5NywgMHhjZiwKLSAgICAweDlmLCAweGFmLCAweDdhLCAweDAyLCAweGM5LCAweDM3LCAweDA0LCAweDAwLAotICAgIDB4YzEsIDB4ZGYsIDB4YzgsIDB4MDksIDB4YTIsIDB4MDYsIDB4NTAsIDB4MDIsCi0gICAgMHg2NywgMHgwMiwgMHhhMiwgMHgwNiwgMHhkMSwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDI3LCAweGQ4LCAweGFhLCAweDA2LCAweGMwLCAweGRmLCAweDlmLCAweGFmLAotICAgIDB4YzQsIDB4MDEsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhkMiwgMHgwNiwgMHg5NywgMHhjMSwgMHhlNywgMHg1NywgMHgwMSwgMHgwMCwKLSAgICAweGE4LCAweDA2LCAweDk3LCAweGMwLCAweGM4LCAweDA5LCAweGEwLCAweDA2LAotICAgIDB4MDgsIDB4NjIsIDB4OTcsIDB4YzAsIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsCi0gICAgMHgwZSwgMHgwMCwgMHgyNywgMHgwMCwgMHgzNCwgMHgwMSwgMHgyNywgMHgwYywKLSAgICAweDBjLCAweDAwLCAweDM2LCAweDAxLCAweGU3LCAweDA3LCAweDUwLCAweGMzLAotICAgIDB4MTIsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4Y2MsIDB4MGIsIDB4MDIsIDB4MDAsCi0gICAgMHhlNywgMHgwNywgMHgwMSwgMHgwMCwgMHhhOCwgMHgwNiwgMHhlNywgMHgwNywKLSAgICAweDA1LCAweDAwLCAweDkwLCAweGMwLCAweDk3LCAweGNmLCAweGM4LCAweDA5LAotICAgIDB4YTQsIDB4MDYsIDB4MDgsIDB4NjIsIDB4MDIsIDB4YzAsIDB4MTAsIDB4NjQsCi0gICAgMHgwNywgMHhjMSwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg5ZSwgMHgwNiwKLSAgICAweGU3LCAweDA3LCAweDcyLCAweDA0LCAweDI0LCAweDAwLCAweDk3LCAweGNmLAotICAgIDB4MjcsIDB4MDQsIDB4YTQsIDB4MDYsIDB4YzgsIDB4MTcsIDB4MGUsIDB4MDAsCi0gICAgMHgyNywgMHgwMiwgMHg5ZSwgMHgwNiwgMHhlNywgMHgwNywgMHg4MCwgMHgwNCwKLSAgICAweDI0LCAweDAwLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LCAweDAwLCAweGMwLAotICAgIDB4YzEsIDB4ZGYsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OTAsIDB4MDYsCi0gICAgMHgxMywgMHhjMSwgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweDllLCAweDA2LCAweDEzLCAweGMwLCAweGU3LCAweDA5LAotICAgIDB4OWUsIDB4MDYsIDB4MzAsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4ZjIsIDB4MDUsCi0gICAgMHgzMiwgMHgwMSwgMHhlNywgMHgwNywgMHgxMCwgMHgwMCwgMHg5NiwgMHhjMCwKLSAgICAweGU3LCAweDA5LCAweDllLCAweDA2LCAweDkwLCAweDA2LCAweDA0LCAweGNmLAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OWUsIDB4MDYsIDB4MDIsIDB4YzEsCi0gICAgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwKLSAgICAweDk3LCAweGNmLCAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGMxLCAweGRmLAotICAgIDB4MDgsIDB4OTIsIDB4ZTcsIDB4NTcsIDB4MDIsIDB4MDAsIDB4YWEsIDB4MDYsCi0gICAgMHgwMiwgMHhjMywgMHhjOCwgMHgwOSwgMHhhNCwgMHgwNiwgMHgyNywgMHgwMiwKLSAgICAweGE2LCAweDA2LCAweDA4LCAweDYyLCAweDAzLCAweGMxLCAweGU3LCAweDA1LAotICAgIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsIDB4MjcsIDB4MDQsIDB4YTQsIDB4MDYsCi0gICAgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHhmMCwgMHgwNywgMHg0MCwgMHgwMCwKLSAgICAweDA4LCAweDAwLCAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLAotICAgIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsIDB4MGMsIDB4MDAsIDB4MzAsIDB4MDAsCi0gICAgMHgwNiwgMHgwMCwgMHhmMCwgMHgwNywgMHg0NiwgMHgwMSwgMHgwYSwgMHgwMCwKLSAgICAweGM4LCAweDE3LCAweDA0LCAweDAwLCAweGMxLCAweDA3LCAweDAyLCAweDAwLAotICAgIDB4NTEsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHg5NiwgMHgwNiwgMHg5NywgMHhjMCwgMHhjMSwgMHhkZiwgMHhjOCwgMHgwOSwKLSAgICAweDk2LCAweDA2LCAweDI3LCAweDA0LCAweDk2LCAweDA2LCAweDI3LCAweDUyLAotICAgIDB4OTgsIDB4MDYsIDB4MDMsIDB4YzEsIDB4ZTcsIDB4MDcsIDB4OTYsIDB4MDYsCi0gICAgMHg5OCwgMHgwNiwgMHhjMCwgMHhkZiwgMHgxNywgMHgwMiwgMHhjOCwgMHgxNywKLSAgICAweDBlLCAweDAwLCAweDlmLCAweGFmLCAweGJhLCAweDAzLCAweGM4LCAweDA1LAotICAgIDB4MDAsIDB4NjAsIDB4MDMsIDB4YzAsIDB4OWYsIDB4YWYsIDB4MjQsIDB4MDMsCi0gICAgMHg5NywgMHhjZiwgMHg5ZiwgMHhhZiwgMHgwOCwgMHgwMywgMHg5NywgMHhjZiwKLSAgICAweDU3LCAweDAyLCAweGM5LCAweDA3LCAweGE0LCAweDA2LCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4MDgsIDB4NjIsIDB4MWIsIDB4YzAsCi0gICAgMHg1MCwgMHgwNCwgMHgxMSwgMHgwMiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwKLSAgICAweGM5LCAweDA1LCAweDk3LCAweGNmLCAweDk3LCAweDAyLCAweGNhLCAweDA5LAotICAgIDB4ZDYsIDB4MDYsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MDQsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgwNiwgMHgwMCwgMHhjYSwgMHgxNywKLSAgICAweDJjLCAweDAwLCAweGY4LCAweDc3LCAweDAxLCAweDAwLCAweDBlLCAweDAwLAotICAgIDB4MDYsIDB4YzAsIDB4Y2EsIDB4ZDksIDB4ZjgsIDB4NTcsIDB4ZmYsIDB4MDAsCi0gICAgMHgwZSwgMHgwMCwgMHgwMSwgMHhjMSwgMHhjYSwgMHhkOSwgMHgyMiwgMHgxYywKLSAgICAweDBjLCAweDAwLCAweGUyLCAweDI3LCAweDAwLCAweDAwLCAweGUyLCAweDE3LAotICAgIDB4MDEsIDB4MDAsIDB4ZTIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MDUsCi0gICAgMHgwMCwgMHgwYywgMHgwYywgMHgwMCwgMHhjMCwgMHgxNywgMHg0MSwgMHgwMCwKLSAgICAweGMwLCAweDY3LCAweGMwLCAweGZmLCAweDMwLCAweDAwLCAweDA4LCAweDAwLAotICAgIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsIDB4MGMsIDB4MDAsIDB4MzAsIDB4MDAsCi0gICAgMHgwNiwgMHgwMCwgMHhmMCwgMHgwNywgMHhkYSwgMHgwMCwgMHgwYSwgMHgwMCwKLSAgICAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDBjLAotICAgIDB4MDgsIDB4MDAsIDB4NDAsIDB4ZDEsIDB4MDEsIDB4MDAsIDB4YzAsIDB4MTksCi0gICAgMHhjZSwgMHgwNiwgMHhjMCwgMHg1OSwgMHhjMiwgMHgwNiwgMHgwNCwgMHhjOSwKLSAgICAweDQ5LCAweGFmLCAweDlmLCAweGFmLCAweGVjLCAweDAwLCAweDRhLCAweGFmLAotICAgIDB4NjcsIDB4MTAsIDB4Y2UsIDB4MDYsIDB4YzgsIDB4MTcsIDB4MDQsIDB4MDAsCi0gICAgMHhjMSwgMHgwNywgMHgwMSwgMHgwMCwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwKLSAgICAweGMxLCAweGRmLCAweDUwLCAweGFmLCAweGU3LCAweDA1LCAweDAwLCAweGMwLAotICAgIDB4OTcsIDB4Y2YsIDB4YzAsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzEsIDB4MDksCi0gICAgMHhhYywgMHgwNiwgMHhjMSwgMHg3NywgMHgwMSwgMHgwMCwgMHg5NywgMHhjMSwKLSAgICAweGQ4LCAweDc3LCAweDAxLCAweDAwLCAweDEyLCAweGMwLCAweGM5LCAweDA3LAotICAgIDB4NmEsIDB4MDYsIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDQsIDB4MDQsIDB4YzEsCi0gICAgMHhjMSwgMHg3NywgMHgwOCwgMHgwMCwgMHgxMywgMHhjMCwgMHg5NywgMHhjZiwKLSAgICAweGMxLCAweDc3LCAweDAyLCAweDAwLCAweDk3LCAweGMxLCAweGMxLCAweDc3LAotICAgIDB4MTAsIDB4MDAsIDB4MGMsIDB4YzAsIDB4OWYsIDB4YWYsIDB4MmMsIDB4MDQsCi0gICAgMHg5NywgMHhjZiwgMHhjMSwgMHg3NywgMHgwNCwgMHgwMCwgMHgwNiwgMHhjMCwKLSAgICAweGM5LCAweDA3LCAweDcwLCAweDA2LCAweDlmLCAweGFmLCAweDA4LCAweDA0LAotICAgIDB4OTcsIDB4YzAsIDB4MDAsIDB4Y2YsIDB4MDAsIDB4OTAsIDB4OTcsIDB4Y2YsCi0gICAgMHg1MCwgMHg1NCwgMHg5NywgMHhjMSwgMHg3MCwgMHg1YywgMHgwMiwgMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDk3LCAweGMxLCAweDcwLCAweDVjLCAweDA0LCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4OTcsIDB4Y2YsIDB4ODAsIDB4MDEsIDB4YzAsIDB4MDAsCi0gICAgMHg2MCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgxOCwgMHgwMCwgMHgwYywgMHgwMCwKLSAgICAweDA2LCAweDAwLCAweDAwLCAweDAwLCAweGNiLCAweDA5LCAweGIyLCAweDA2LAotICAgIDB4Y2MsIDB4MDksIDB4YjQsIDB4MDYsIDB4MGIsIDB4NTMsIDB4MTEsIDB4YzAsCi0gICAgMHhjOSwgMHgwMiwgMHhjYSwgMHgwNywgMHgxYywgMHgwNCwgMHg5ZiwgMHhhZiwKLSAgICAweDA4LCAweDA0LCAweDk3LCAweGMwLCAweDBhLCAweGM4LCAweDgyLCAweDA4LAotICAgIDB4MGEsIDB4Y2YsIDB4ODIsIDB4MDgsIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDQsCi0gICAgMHg5NywgMHhjMCwgMHgwNSwgMHhjMiwgMHg4OSwgMHgzMCwgMHg4MiwgMHg2MCwKLSAgICAweDc4LCAweGMxLCAweDAwLCAweDkwLCAweDk3LCAweGNmLCAweDg5LCAweDEwLAotICAgIDB4MDksIDB4NTMsIDB4NzksIDB4YzIsIDB4ODksIDB4MzAsIDB4ODIsIDB4MDgsCi0gICAgMHg3YSwgMHhjZiwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwgMHhjMCwgMHhkZiwKLSAgICAweDk3LCAweGNmLCAweGU3LCAweDA5LCAweDk2LCAweGMwLCAweDkyLCAweDA2LAotICAgIDB4ZTcsIDB4MDksIDB4OTgsIDB4YzAsIDB4OTQsIDB4MDYsIDB4MGYsIDB4Y2YsCi0gICAgMHhlNywgMHgwOSwgMHg5NiwgMHhjMCwgMHg5MiwgMHgwNiwgMHhlNywgMHgwOSwKLSAgICAweDk4LCAweGMwLCAweDk0LCAweDA2LCAweGU3LCAweDA5LCAweDllLCAweDA2LAotICAgIDB4MzAsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4ZjIsIDB4MDUsIDB4MzIsIDB4MDEsCi0gICAgMHhlNywgMHgwNywgMHgxMCwgMHgwMCwgMHg5NiwgMHhjMCwgMHhkNywgMHgwOSwKLSAgICAweDAwLCAweGMwLCAweDE3LCAweDAyLCAweGM4LCAweDA5LCAweDkwLCAweDA2LAotICAgIDB4YzgsIDB4MzcsIDB4MGUsIDB4MDAsIDB4ZTcsIDB4NzcsIDB4MmEsIDB4MDAsCi0gICAgMHg5MiwgMHgwNiwgMHgzMCwgMHhjMCwgMHg5NywgMHgwMiwgMHhjYSwgMHgwOSwKLSAgICAweGQ2LCAweDA2LCAweGU3LCAweDc3LCAweDIwLCAweDAwLCAweDkyLCAweDA2LAotICAgIDB4MGUsIDB4YzAsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MTAsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMCwgMHhlNywgMHg3NywKLSAgICAweDBhLCAweDAwLCAweDkyLCAweDA2LCAweGNhLCAweDA1LCAweDFlLCAweGMwLAotICAgIDB4OTcsIDB4MDIsIDB4Y2EsIDB4MDksIDB4ZDYsIDB4MDYsIDB4ZjIsIDB4MTcsCi0gICAgMHgwMSwgMHgwMCwgMHgwYywgMHgwMCwgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDBlLCAweDAwLCAweGU3LCAweDc3LCAweDAyLCAweDAwLCAweDkyLCAweDA2LAotICAgIDB4MDcsIDB4YzAsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4NDQsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMCwgMHgwNiwgMHhjZiwKLSAgICAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDYwLCAweDAwLCAweGYyLCAweDI3LAotICAgIDB4MDAsIDB4MDAsIDB4NjIsIDB4MDAsIDB4Y2EsIDB4MDUsIDB4OWYsIDB4YWYsCi0gICAgMHgwOCwgMHgwMywgMHgwZiwgMHhjZiwgMHg1NywgMHgwMiwgMHgwOSwgMHgwMiwKLSAgICAweGYxLCAweDA5LCAweDk0LCAweDA2LCAweDBjLCAweDAwLCAweGYxLCAweGRhLAotICAgIDB4MGMsIDB4MDAsIDB4YzgsIDB4MDksIDB4OTgsIDB4MDYsIDB4NTAsIDB4MDIsCi0gICAgMHg2NywgMHgwMiwgMHg5OCwgMHgwNiwgMHhkMSwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGM5LCAweDA1LCAweGU3LCAweDA5LCAweDllLCAweDA2LCAweDkwLCAweDA2LAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OTAsIDB4MDYsIDB4MDIsIDB4YzAsCi0gICAgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhjOCwgMHgwNSwgMHhlNywgMHgwNSwKLSAgICAweDAwLCAweGMwLCAweGMwLCAweGRmLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4MTcsIDB4MDAsIDB4MTcsIDB4MDIsIDB4OTcsIDB4MDIsCi0gICAgMHhjMCwgMHgwOSwgMHg5MiwgMHhjMCwgMHhlNywgMHgwNywgMHgwNCwgMHgwMCwKLSAgICAweDkwLCAweGMwLCAweGNhLCAweDA5LCAweGQ2LCAweDA2LCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4YTgsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4NmEsIDB4MDQsCi0gICAgMHgwMiwgMHgwMCwgMHhjMCwgMHg3NywgMHgwMiwgMHgwMCwgMHgwOCwgMHhjMCwKLSAgICAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDUwLCAweDAwLCAweGYyLCAweDI3LAotICAgIDB4MDAsIDB4MDAsIDB4NTIsIDB4MDAsIDB4OWYsIDB4Y2YsIDB4MjQsIDB4MDYsCi0gICAgMHhjMCwgMHg3NywgMHgxMCwgMHgwMCwgMHgwNiwgMHhjMCwgMHhmMiwgMHgxNywKLSAgICAweDAxLCAweDAwLCAweDU4LCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLAotICAgIDB4NWEsIDB4MDAsIDB4YzAsIDB4NzcsIDB4ODAsIDB4MDAsIDB4MDYsIDB4YzAsCi0gICAgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwgMHg3MCwgMHgwMCwgMHhmMiwgMHgyNywKLSAgICAweDAwLCAweDAwLCAweDcyLCAweDAwLCAweGMwLCAweDc3LCAweDA4LCAweDAwLAotICAgIDB4MWQsIDB4YzEsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MDgsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgwYSwgMHgwMCwgMHhjMCwgMHg3NywKLSAgICAweDAwLCAweDAyLCAweDA2LCAweGMwLCAweGYyLCAweDE3LCAweDAxLCAweDAwLAotICAgIDB4NjQsIDB4MDAsIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4NjYsIDB4MDAsCi0gICAgMHhjMCwgMHg3NywgMHg0MCwgMHgwMCwgMHgwNiwgMHhjMCwgMHhmMiwgMHgxNywKLSAgICAweDAxLCAweDAwLCAweDVjLCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLAotICAgIDB4NWUsIDB4MDAsIDB4YzAsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MDEsIDB4YzAsCi0gICAgMHgxYiwgMHhjZiwgMHgxYSwgMHhjZiwgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLCAweDAyLCAweDAwLAotICAgIDB4YzgsIDB4MDksIDB4MzQsIDB4MDEsIDB4Y2EsIDB4MTcsIDB4MTQsIDB4MDAsCi0gICAgMHhkOCwgMHg3NywgMHgwMSwgMHgwMCwgMHgwNSwgMHhjMCwgMHhjYSwgMHhkOSwKLSAgICAweGQ4LCAweDU3LCAweGZmLCAweDAwLCAweDAxLCAweGMwLCAweGNhLCAweGQ5LAotICAgIDB4ZTIsIDB4MTksIDB4OTQsIDB4YzAsIDB4ZTIsIDB4MjcsIDB4MDAsIDB4MDAsCi0gICAgMHhlMiwgMHgxNywgMHgwMSwgMHgwMCwgMHhlMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDlmLCAweGFmLCAweDQwLCAweDA2LCAweDlmLCAweGFmLCAweGM0LCAweDAxLAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4ZDIsIDB4MDYsIDB4OWYsIDB4YTEsCi0gICAgMHgwZSwgMHgwYSwgMHhjYSwgMHgwNSwgMHhjOCwgMHgwNSwgMHhjMCwgMHgwNSwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweGMwLCAweGRmLCAweDk3LCAweGNmLAotICAgIDB4YzgsIDB4MDksIDB4YTAsIDB4MDYsIDB4MDgsIDB4NjIsIDB4OTcsIDB4YzAsCi0gICAgMHgyNywgMHgwNCwgMHhhMCwgMHgwNiwgMHgyNywgMHg1MiwgMHhhMiwgMHgwNiwKLSAgICAweDAzLCAweGMxLCAweGU3LCAweDA3LCAweGEwLCAweDA2LCAweGEyLCAweDA2LAotICAgIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDMsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhhYSwgMHgwNiwgMHgwMiwgMHhjMCwgMHgyNywgMHhkYSwgMHhhYSwgMHgwNiwKLSAgICAweDk3LCAweGNmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgzZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4ZmYsIDB4ZmYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwgMHhmYiwgMHgxMywgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDgwLCAweGIyLCAweDAwLCAweDA2LCAweGMyLCAweGU3LCAweDA3LAotICAgIDB4ZWUsIDB4MGIsIDB4MTIsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4MzQsIDB4MGMsCi0gICAgMHhiMiwgMHgwMCwgMHhlNywgMHgwNywgMHhjNiwgMHgwNywgMHhmMiwgMHgwMiwKLSAgICAweGM4LCAweDA5LCAweGI0LCAweDAwLCAweGY4LCAweDA3LCAweDAyLCAweDAwLAotICAgIDB4MGQsIDB4MDAsIDB4ZDcsIDB4MDksIDB4MGUsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHgwZSwgMHhjMCwgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwKLSAgICAweGM4LCAweDE3LCAweDA5LCAweDAwLCAweGM5LCAweDA3LCAweGRhLCAweDA2LAotICAgIDB4YzAsIDB4MDcsIDB4MDQsIDB4MDAsIDB4NjgsIDB4MGEsIDB4MDAsIDB4ZGEsCi0gICAgMHg3ZCwgMHhjMSwgMHhlNywgMHgwOSwgMHhjMCwgMHgwMCwgMHg3YywgMHgwNiwKLSAgICAweGU3LCAweDA5LCAweGJlLCAweDAwLCAweDc4LCAweDA2LCAweGU3LCAweDA5LAotICAgIDB4MTAsIDB4MDAsIDB4YmMsIDB4MDYsIDB4YzgsIDB4MDcsIDB4ZDYsIDB4MDcsCi0gICAgMHg5ZiwgMHhhZiwgMHhhZSwgMHgwNywgMHg5ZiwgMHhhZiwgMHgwMCwgMHgwYSwKLSAgICAweGM4LCAweDA5LCAweGRlLCAweDAwLCAweDAwLCAweDBlLCAweDBmLCAweDAwLAotICAgIDB4NDEsIDB4OTAsIDB4OWYsIDB4ZGUsIDB4MDYsIDB4MDAsIDB4NDQsIDB4YWYsCi0gICAgMHgyNywgMHgwMCwgMHhiMiwgMHgwNiwgMHgyNywgMHgwMCwgMHhiNCwgMHgwNiwKLSAgICAweDI3LCAweDAwLCAweGI2LCAweDA2LCAweGMwLCAweDA3LCAweDc0LCAweDAwLAotICAgIDB4NDQsIDB4YWYsIDB4MjcsIDB4MDAsIDB4ZDYsIDB4MDYsIDB4MDgsIDB4MDAsCi0gICAgMHgwMCwgMHg5MCwgMHhjMSwgMHgwNywgMHgzYSwgMHgwMCwgMHgyMCwgMHgwMCwKLSAgICAweDAxLCAweGRhLCAweDdkLCAweGMxLCAweDlmLCAweGFmLCAweGJhLCAweDA5LAotICAgIDB4YzAsIDB4MDcsIDB4NDQsIDB4MDAsIDB4NDgsIDB4YWYsIDB4MjcsIDB4MDAsCi0gICAgMHg3YSwgMHgwNiwgMHg5ZiwgMHhhZiwgMHg5NiwgMHgwYSwgMHhlNywgMHgwNywKLSAgICAweDAxLCAweDAwLCAweGMwLCAweDA2LCAweGU3LCAweDA1LCAweDBlLCAweGMwLAotICAgIDB4OTcsIDB4Y2YsIDB4NDksIDB4YWYsIDB4ZTcsIDB4ODcsIDB4NDMsIDB4MDAsCi0gICAgMHgwZSwgMHhjMCwgMHhlNywgMHgwNywgMHhmZiwgMHhmZiwgMHhiZSwgMHgwNiwKLSAgICAweDlmLCAweGFmLCAweGFlLCAweDBhLCAweGMwLCAweDA3LCAweDAxLCAweDAwLAotICAgIDB4NjAsIDB4YWYsIDB4NGEsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4MDAsIDB4MDgsCi0gICAgMHgwOSwgMHgwOCwgMHgxMSwgMHgwOCwgMHgwMCwgMHhkYSwgMHg3YywgMHhjMSwKLSAgICAweDk3LCAweGNmLCAweDY3LCAweDA0LCAweGNjLCAweDAyLCAweGMwLCAweGRmLAotICAgIDB4NTEsIDB4OTQsIDB4YjEsIDB4YWYsIDB4MDYsIDB4MDAsIDB4YzEsIDB4ZGYsCi0gICAgMHhjOSwgMHgwOSwgMHhjYywgMHgwMiwgMHg0OSwgMHg2MiwgMHg3NSwgMHhjMSwKLSAgICAweGMwLCAweGRmLCAweGE3LCAweGNmLCAweGQ2LCAweDAyLCAweDBlLCAweDAwLAotICAgIDB4MjQsIDB4MDAsIDB4ODAsIDB4MDQsIDB4MjIsIDB4MDAsIDB4NGUsIDB4MDUsCi0gICAgMHhkMCwgMHgwMCwgMHgwZSwgMHgwYSwgMHhhYSwgMHgwMCwgMHgzMCwgMHgwOCwKLSAgICAweGJlLCAweDAwLCAweDRhLCAweDBhLCAweDEwLCAweDAwLCAweDIwLCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4NmUsIDB4MDQsIDB4MDIsIDB4MDAsIDB4NmEsIDB4MDQsCi0gICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyNCwgMHhjMCwgMHgwNCwgMHgwNCwKLSAgICAweDI4LCAweGMwLCAweGZlLCAweGZiLCAweDFlLCAweGMwLCAweDAwLCAweDA0LAotICAgIDB4MjIsIDB4YzAsIDB4ZmYsIDB4ZjQsIDB4YzAsIDB4MDAsIDB4OTAsIDB4MDksCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwgMHg1NiwgMHgwOCwKLSAgICAweDYwLCAweDA4LCAweGQwLCAweDA4LCAweGRhLCAweDA4LCAweDAwLCAweDA5LAotICAgIDB4MDQsIDB4MDksIDB4MDgsIDB4MDksIDB4MzIsIDB4MDksIDB4NDIsIDB4MDksCi0gICAgMHg1MCwgMHgwOSwgMHg1MiwgMHgwOSwgMHg1YSwgMHgwOSwgMHg1YSwgMHgwOSwKLSAgICAweDI3LCAweDAyLCAweGNhLCAweDA2LCAweDk3LCAweGNmLCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MDYsIDB4MGEsIDB4MGUsIDB4MDEsIDB4MDAsCi0gICAgMHhjYSwgMHg1NywgMHgwZSwgMHgwMCwgMHg5ZiwgMHhjMywgMHg1YSwgMHgwOSwKLSAgICAweGNhLCAweDM3LCAweDAwLCAweDAwLCAweDlmLCAweGMyLCAweDVhLCAweDA5LAotICAgIDB4MGEsIDB4ZDIsIDB4YjIsIDB4Y2YsIDB4MTYsIDB4MDgsIDB4YzgsIDB4MDksCi0gICAgMHhkZSwgMHgwMCwgMHgwNywgMHgwNiwgMHg5ZiwgMHhjZiwgMHg2YywgMHgwOSwKLSAgICAweDE3LCAweDAyLCAweGM4LCAweDA5LCAweGRlLCAweDAwLCAweDAwLCAweDBlLAotICAgIDB4MGYsIDB4MDAsIDB4NDEsIDB4OTAsIDB4OWYsIDB4ZGUsIDB4MDYsIDB4MDAsCi0gICAgMHhjOCwgMHgwNSwgMHgzMCwgMHg1MCwgMHgwNiwgMHgwMCwgMHg5ZiwgMHhjOCwKLSAgICAweDVhLCAweDA5LCAweDI3LCAweDBjLCAweDAyLCAweDAwLCAweGIwLCAweDA2LAotICAgIDB4YzAsIDB4MDksIDB4YjIsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YjQsIDB4MDYsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHhhZSwgMHgwNiwgMHgyNywgMHgwMCwKLSAgICAweDgwLCAweDA2LCAweDAwLCAweDFjLCAweDA2LCAweDAwLCAweDI3LCAweDAwLAotICAgIDB4YjYsIDB4MDYsIDB4NDEsIDB4OTAsIDB4NjcsIDB4NTAsIDB4YjAsIDB4MDYsCi0gICAgMHgwZCwgMHhjMCwgMHg2NywgMHgwMCwgMHg3ZSwgMHgwNiwgMHgyNywgMHgwYywKLSAgICAweDA2LCAweDAwLCAweDgyLCAweDA2LCAweGU3LCAweDA3LCAweGJjLCAweDA4LAotICAgIDB4ODQsIDB4MDYsIDB4YzgsIDB4MDcsIDB4N2UsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHg1MSwgMHhhZiwgMHg5NywgMHhjZiwgMHg5ZiwgMHhhZiwgMHg0OCwgMHgwYywKLSAgICAweGU3LCAweDA5LCAweGI2LCAweDA2LCAweGI0LCAweDA2LCAweGU3LCAweDA5LAotICAgIDB4YjAsIDB4MDYsIDB4YWUsIDB4MDYsIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHgyNywgMHgwYywgMHgwMiwgMHgwMCwgMHhhYywgMHgwNiwgMHg1OSwgMHhhZiwKLSAgICAweDk3LCAweGNmLCAweDA5LCAweDBjLCAweDAyLCAweDAwLCAweDA5LCAweGRhLAotICAgIDB4NDksIDB4ZDIsIDB4YzksIDB4MTksIDB4ZDYsIDB4MDYsIDB4YzgsIDB4MDcsCi0gICAgMHg3ZSwgMHgwNiwgMHhlMCwgMHgwNywgMHgwMCwgMHgwMCwgMHg2MCwgMHgwMiwKLSAgICAweGUwLCAweDA3LCAweDA0LCAweDAwLCAweGQwLCAweDA3LCAweGNjLCAweDA4LAotICAgIDB4NDgsIDB4ZGIsIDB4NDEsIDB4OTAsIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHg1OSwgMHhhZiwgMHg5NywgMHhjZiwgMHg1OSwgMHhhZiwgMHg5NywgMHhjZiwKLSAgICAweGYwLCAweDU3LCAweDA2LCAweDAwLCAweDA2LCAweDAwLCAweDI1LCAweGMxLAotICAgIDB4ZTcsIDB4MDcsIDB4NzAsIDB4MDYsIDB4ODAsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHg2NywgMHgwMCwgMHg3ZSwgMHgwNiwgMHgyNywgMHgwYywgMHgwNiwgMHgwMCwKLSAgICAweDgyLCAweDA2LCAweGU3LCAweDA3LCAweDhjLCAweDA5LCAweDg0LCAweDA2LAotICAgIDB4YzgsIDB4MDcsIDB4N2UsIDB4MDYsIDB4NDEsIDB4OTAsIDB4NTEsIDB4YWYsCi0gICAgMHg5NywgMHhjZiwgMHgwNywgMHgwYywgMHgwNiwgMHgwMCwgMHhjNywgMHg1NywKLSAgICAweDA2LCAweDAwLCAweDBmLCAweGMxLCAweGM4LCAweDA3LCAweDcwLCAweDA2LAotICAgIDB4MTUsIDB4Y2YsIDB4MDAsIDB4MGMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4ZGEsCi0gICAgMHg0MCwgMHhkMSwgMHgyNywgMHgwMCwgMHhjMiwgMHgwNiwgMHgxZSwgMHhjZiwKLSAgICAweDFkLCAweGNmLCAweDI3LCAweDBjLCAweDAyLCAweDAwLCAweGNjLCAweDA2LAotICAgIDB4MTksIDB4Y2YsIDB4MjcsIDB4MDIsIDB4MjAsIDB4MDEsIDB4ZTcsIDB4MDcsCi0gICAgMHgwOCwgMHgwMCwgMHgyMiwgMHgwMSwgMHhlNywgMHgwNywgMHgxMywgMHgwMCwKLSAgICAweGIwLCAweGMwLCAweDk3LCAweGNmLCAweDQxLCAweDkwLCAweDY3LCAweDAwLAotICAgIDB4N2UsIDB4MDYsIDB4ZTcsIDB4MDEsIDB4ODIsIDB4MDYsIDB4MjcsIDB4MDIsCi0gICAgMHg4MCwgMHgwNiwgMHhlNywgMHgwNywgMHg4YywgMHgwOSwgMHg4NCwgMHgwNiwKLSAgICAweGM4LCAweDA3LCAweDdlLCAweDA2LCAweGMxLCAweDA3LCAweDAwLCAweDgwLAotICAgIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHgwMCwgMHg2MCwgMHgwNSwgMHhjMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGM0LCAweDA2LCAweGE3LCAweGNmLCAweDdjLCAweDA2LCAweDlmLCAweGFmLAotICAgIDB4MDAsIDB4MGEsIDB4ZTcsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzQsIDB4MDYsCi0gICAgMHg0OSwgMHhhZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHgwNywgMHhhZiwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDRhLCAweGFmLCAweGE3LCAweGNmLAotICAgIDB4N2MsIDB4MDYsIDB4YzAsIDB4MDcsIDB4ZmUsIDB4N2YsIDB4NDQsIDB4YWYsCi0gICAgMHg0MCwgMHgwMCwgMHhjMCwgMHgzNywgMHgwMCwgMHgwMSwgMHg0MSwgMHg5MCwKLSAgICAweGMwLCAweDM3LCAweDA4LCAweDAwLCAweGRmLCAweGRlLCAweDUwLCAweDA2LAotICAgIDB4YzAsIDB4NTcsIDB4MTAsIDB4MDAsIDB4MDIsIDB4YzIsIDB4YzAsIDB4MDcsCi0gICAgMHgxMCwgMHgwMCwgMHgyNywgMHgwMCwgMHg5YSwgMHgwNiwgMHg0MSwgMHg5MCwKLSAgICAweDlmLCAweGRlLCAweDQwLCAweDA2LCAweDQ0LCAweGFmLCAweDI3LCAweDAwLAotICAgIDB4OWMsIDB4MDYsIDB4YzAsIDB4MDksIDB4OWEsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHgwMCwgMHhkMiwgMHgwMCwgMHhkOCwgMHg5ZiwgMHhkZSwgMHgwOCwgMHgwMCwKLSAgICAweDQ0LCAweGFmLCAweDI3LCAweDAwLCAweGM4LCAweDA2LCAweDk3LCAweGNmLAotICAgIDB4ZTcsIDB4ODcsIDB4MDAsIDB4ODQsIDB4MjgsIDB4YzAsIDB4ZTcsIDB4NjcsCi0gICAgMHhmZiwgMHhmYiwgMHgyNCwgMHhjMCwgMHg5NywgMHhjZiwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweGQyLCAweDA2LCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YTgsIDB4MDYsIDB4OTcsIDB4YzEsIDB4OWYsIDB4YWYsIDB4MDAsIDB4MGEsCi0gICAgMHhlNywgMHg4NywgMHgwMCwgMHgwNiwgMHgyMiwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDkwLCAweGMwLCAweGU3LCAweDY3LCAweGZlLCAweGZmLAotICAgIDB4M2UsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MjYsIDB4MDAsIDB4MGEsIDB4YzAsCi0gICAgMHhlNywgMHg4NywgMHgwMSwgMHgwMCwgMHgzZSwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweGZmLCAweGZmLCAweGJlLCAweDA2LCAweDlmLCAweGFmLCAweDEwLCAweDBiLAotICAgIDB4OTcsIDB4Y2YsIDB4MTcsIDB4MDAsIDB4YTcsIDB4YWYsIDB4NzgsIDB4MDYsCi0gICAgMHhjMCwgMHgwNSwgMHgyNywgMHgwMCwgMHg3NiwgMHgwNiwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweGQyLCAweDA2LCAweDlmLCAweGFmLCAweDAwLCAweDBhLAotICAgIDB4ZTcsIDB4MDcsIDB4MGMsIDB4MDAsIDB4NDAsIDB4YzAsIDB4OWYsIDB4YWYsCi0gICAgMHgxMCwgMHgwYiwgMHgwMCwgMHg5MCwgMHgyNywgMHgwMCwgMHhhNiwgMHgwNiwKLSAgICAweDI3LCAweDAwLCAweGFhLCAweDA2LCAweGU3LCAweDA5LCAweGIyLCAweDA2LAotICAgIDB4YjQsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YWUsIDB4MDYsIDB4MjcsIDB4MDAsCi0gICAgMHhhYywgMHgwNiwgMHg5ZiwgMHhhZiwgMHhhZSwgMHgwYSwgMHhjMCwgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDI3LCAweDAwLCAweGIyLCAweDAyLCAweDI3LCAweDAwLAotICAgIDB4YjQsIDB4MDIsIDB4MjcsIDB4MDAsIDB4OGUsIDB4MDYsIDB4YzAsIDB4MDcsCi0gICAgMHgwNiwgMHgwMCwgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwgMHhjOCwgMHgxNywKLSAgICAweDAzLCAweDAwLCAweGM5LCAweDA3LCAweDcwLCAweDA2LCAweDI5LCAweDBhLAotICAgIDB4MDAsIDB4ZGEsIDB4N2QsIDB4YzEsIDB4OTcsIDB4Y2YsIDB4ZDcsIDB4MDksCi0gICAgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwgMHgwMCwgMHg5MCwgMHgyNywgMHgwMCwKLSAgICAweDk2LCAweDA2LCAweGU3LCAweDA3LCAweDk2LCAweDA2LCAweDk4LCAweDA2LAotICAgIDB4MjcsIDB4MDAsIDB4YTAsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4YTAsIDB4MDYsCi0gICAgMHhhMiwgMHgwNiwgMHgyNywgMHgwMCwgMHhhNiwgMHgwNiwgMHgyNywgMHgwMCwKLSAgICAweDkwLCAweDA2LCAweDI3LCAweDAwLCAweDllLCAweDA2LCAweGM4LCAweDA5LAotICAgIDB4OWMsIDB4MDYsIDB4YzEsIDB4MDksIDB4OWEsIDB4MDYsIDB4YzksIDB4MDcsCi0gICAgMHhhNCwgMHgwNiwgMHgxMSwgMHgwMiwgMHgwOSwgMHgwMiwgMHhjOCwgMHgxNywKLSAgICAweDQwLCAweDA2LCAweDAxLCAweGRhLCAweDdhLCAweGMxLCAweDUxLCAweDk0LAotICAgIDB4YzgsIDB4MDksIDB4YzgsIDB4MDYsIDB4YzksIDB4MDcsIDB4YzYsIDB4MDYsCi0gICAgMHhjMSwgMHgwOSwgMHg5YSwgMHgwNiwgMHgxMSwgMHgwMiwgMHgwOSwgMHgwMiwKLSAgICAweGM4LCAweDE3LCAweDA4LCAweDAwLCAweDAxLCAweGRhLCAweDdhLCAweGMxLAotICAgIDB4NTEsIDB4OTQsIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHg3NiwgMHgwNiwgMHg5NywgMHhjMCwKLSAgICAweDlmLCAweGFmLCAweDA0LCAweDAwLCAweGU3LCAweDA5LCAweGJlLCAweDA2LAotICAgIDB4YmEsIDB4MDYsIDB4ZTcsIDB4NTcsIDB4ZmYsIDB4ZmYsIDB4YmEsIDB4MDYsCi0gICAgMHgwNCwgMHhjMSwgMHhlNywgMHgwNywgMHgxMCwgMHgwYiwgMHhiOCwgMHgwNiwKLSAgICAweDk3LCAweGNmLCAweGU3LCAweDE3LCAweDMyLCAweDAwLCAweGJhLCAweDA2LAotICAgIDB4ZTcsIDB4NjcsIDB4ZmYsIDB4MDcsIDB4YmEsIDB4MDYsIDB4ZTcsIDB4MDcsCi0gICAgMHg0NiwgMHgwYiwgMHhiOCwgMHgwNiwgMHg5NywgMHhjZiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweGMwLCAweDA2LCAweDIzLCAweGMwLCAweGU3LCAweDA3LAotICAgIDB4MDQsIDB4MDAsIDB4OTAsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4ODAsCi0gICAgMHg4MCwgMHhjMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwKLSAgICAweGU3LCAweDA3LCAweDAwLCAweDgwLCAweDgwLCAweGMwLCAweGMwLCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4YzAsIDB4MDcsIDB4MDAsIDB4MDAsIDB4YzAsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwKLSAgICAweGU3LCAweDA3LCAweDAwLCAweDgwLCAweDgwLCAweGMwLCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4ODAsIDB4NDAsIDB4YzAsIDB4YzAsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg0MCwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDgwLCAweGMwLCAweGU3LCAweDA3LCAweDA0LCAweDAwLAotICAgIDB4OTAsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDIsIDB4NDAsIDB4YzAsCi0gICAgMHhlNywgMHgwNywgMHgwYywgMHgwMiwgMHg0MCwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweGMwLCAweDA2LCAweGU3LCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4YjgsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4ZDIsIDB4MDYsCi0gICAgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwgMHg5ZiwgMHhhZiwKLSAgICAweDM0LCAweDAyLCAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDlmLCAweGFmLAotICAgIDB4YzQsIDB4MDEsIDB4OTcsIDB4Y2YsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsCi0gICAgMHgxNywgMHgwMCwgMHgxNywgMHgwMiwgMHg5NywgMHgwMiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweGE4LCAweDA2LCAweDA2LCAweGMwLCAweGMwLCAweDA5LAotICAgIDB4OTIsIDB4YzAsIDB4YzAsIDB4NzcsIDB4MDksIDB4MDIsIDB4OWYsIDB4YzEsCi0gICAgMHg1YywgMHgwNSwgMHg5ZiwgMHhjZiwgMHgzMiwgMHgwNiwgMHhkNywgMHgwOSwKLSAgICAweDBlLCAweGMwLCAweGU3LCAweDA3LCAweDAwLCAweDAwLCAweDBlLCAweGMwLAotICAgIDB4OWYsIDB4YWYsIDB4MDIsIDB4MGMsIDB4ZTcsIDB4MDUsIDB4MGUsIDB4YzAsCi0gICAgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHgxNywgMHgwMiwKLSAgICAweGM4LCAweDA5LCAweGIwLCAweGMwLCAweGU3LCAweDY3LCAweGZlLCAweDdmLAotICAgIDB4YjAsIDB4YzAsIDB4YzgsIDB4NzcsIDB4MDAsIDB4MjAsIDB4OWYsIDB4YzEsCi0gICAgMHg2NCwgMHhlYiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHhjOCwgMHgwMiwKLSAgICAweDlmLCAweGMxLCAweDgwLCAweGViLCAweGM4LCAweDk5LCAweGNhLCAweDAyLAotICAgIDB4YzgsIDB4NjcsIDB4MDQsIDB4MDAsIDB4OWYsIDB4YzEsIDB4OTYsIDB4ZWIsCi0gICAgMHg5ZiwgMHhjZiwgMHg0YywgMHhlYiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGE2LCAweGMwLCAweGU3LCAweDA5LCAweGIwLCAweGMwLCAweGM4LCAweDAyLAotICAgIDB4ZTcsIDB4MDcsIDB4MDMsIDB4MDAsIDB4YjAsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhjMCwgMHgwOSwgMHhiMCwgMHgwNiwgMHhjMCwgMHgzNywgMHgwMSwgMHgwMCwKLSAgICAweDk3LCAweGM5LCAweGM5LCAweDA5LCAweGIyLCAweDA2LCAweDAyLCAweDAwLAotICAgIDB4NDEsIDB4OTAsIDB4NDgsIDB4MDIsIDB4YzksIDB4MTcsIDB4MDYsIDB4MDAsCi0gICAgMHg5ZiwgMHhhZiwgMHgwOCwgMHgwNCwgMHg5ZiwgMHhhMiwgMHg3MiwgMHgwYywKLSAgICAweDAyLCAweGRhLCAweDc3LCAweGMxLCAweDQxLCAweDYwLCAweDcxLCAweGMxLAotICAgIDB4OTcsIDB4Y2YsIDB4MTcsIDB4MDIsIDB4NTcsIDB4MDIsIDB4NDMsIDB4MDQsCi0gICAgMHgyMSwgMHgwNCwgMHhlMCwgMHgwMCwgMHg0MywgMHgwNCwgMHgyMSwgMHgwNCwKLSAgICAweGUwLCAweDAwLCAweDQzLCAweDA0LCAweDIxLCAweDA0LCAweGUwLCAweDAwLAotICAgIDB4YzEsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzksIDB4MDUsIDB4YzgsIDB4MDUsCi0gICAgMHg5NywgMHhjZiwgMHhlNywgMHgwNywgMHgwMSwgMHgwMCwgMHg4ZSwgMHgwNiwKLSAgICAweGM4LCAweDA3LCAweDg2LCAweDA2LCAweGU3LCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4ODYsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4MTAsIDB4MDgsIDB4ODgsIDB4MDYsCi0gICAgMHhlNywgMHgwNywgMHgwNCwgMHgwMCwgMHg4YSwgMHgwNiwgMHhlNywgMHgwNywKLSAgICAweGJjLCAweDBjLCAweDhjLCAweDA2LCAweGMxLCAweDA3LCAweDAzLCAweDgwLAotICAgIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHg4ZSwgMHgwNiwgMHg5NywgMHhjZiwKLSAgICAweDAwLCAweDAwCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF9uZXdfY29kZV9maXgKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIF9fdTgga2F3ZXRoX25ld19jb2RlX2ZpeFtdID0gCi17Ci0gICAgMHhCNiwgMHhDMywgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwKLSAgICAweDAyLCAweDAwLCAweDA4LCAweDAwLCAweDI4LCAweDAwLCAweDJjLCAweDAwLAotICAgIDB4MzQsIDB4MDAsIDB4M2MsIDB4MDAsIDB4NDAsIDB4MDAsIDB4NDgsIDB4MDAsCi0gICAgMHg1NCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1ZSwgMHgwMCwgMHg2NCwgMHgwMCwKLSAgICAweDY4LCAweDAwLCAweDZlLCAweDAwLCAweDZjLCAweDAwLCAweDcyLCAweDAwLAotICAgIDB4NzYsIDB4MDAsIDB4N2MsIDB4MDAsIDB4ODAsIDB4MDAsIDB4ODYsIDB4MDAsCi0gICAgMHg4YSwgMHgwMCwgMHg5MCwgMHgwMCwgMHg5NCwgMHgwMCwgMHg5OCwgMHgwMCwKLSAgICAweDllLCAweDAwLCAweGE2LCAweDAwLCAweGFhLCAweDAwLCAweGIwLCAweDAwLAotICAgIDB4YjQsIDB4MDAsIDB4YjgsIDB4MDAsIDB4YzAsIDB4MDAsIDB4YzYsIDB4MDAsCi0gICAgMHhjYSwgMHgwMCwgMHhkMCwgMHgwMCwgMHhkNCwgMHgwMCwgMHhkOCwgMHgwMCwKLSAgICAweGUwLCAweDAwLCAweGRlLCAweDAwLCAweGU4LCAweDAwLCAweGYwLCAweDAwLAotICAgIDB4ZmMsIDB4MDAsIDB4MDQsIDB4MDEsIDB4MGEsIDB4MDEsIDB4MTgsIDB4MDEsCi0gICAgMHgyMiwgMHgwMSwgMHgyOCwgMHgwMSwgMHgzYSwgMHgwMSwgMHgzZSwgMHgwMSwKLSAgICAweDdlLCAweDAxLCAweDk4LCAweDAxLCAweDljLCAweDAxLCAweGEyLCAweDAxLAotICAgIDB4YWMsIDB4MDEsIDB4YjIsIDB4MDEsIDB4YmEsIDB4MDEsIDB4YzAsIDB4MDEsCi0gICAgMHhjOCwgMHgwMSwgMHhkMCwgMHgwMSwgMHhkNiwgMHgwMSwgMHhmNCwgMHgwMSwKLSAgICAweGZjLCAweDAxLCAweDA4LCAweDAyLCAweDE2LCAweDAyLCAweDFhLCAweDAyLAotICAgIDB4MjIsIDB4MDIsIDB4MmEsIDB4MDIsIDB4MmUsIDB4MDIsIDB4M2UsIDB4MDIsCi0gICAgMHg0NCwgMHgwMiwgMHg0YSwgMHgwMiwgMHg1MCwgMHgwMiwgMHg2NCwgMHgwMiwKLSAgICAweDYyLCAweDAyLCAweDZjLCAweDAyLCAweDcyLCAweDAyLCAweDg2LCAweDAyLAotICAgIDB4OGMsIDB4MDIsIDB4OTAsIDB4MDIsIDB4OWUsIDB4MDIsIDB4YmMsIDB4MDIsCi0gICAgMHhkMCwgMHgwMiwgMHhkOCwgMHgwMiwgMHhkYywgMHgwMiwgMHhlMCwgMHgwMiwKLSAgICAweGU4LCAweDAyLCAweGU2LCAweDAyLCAweGY0LCAweDAyLCAweGZlLCAweDAyLAotICAgIDB4MDQsIDB4MDMsIDB4MGMsIDB4MDMsIDB4MjgsIDB4MDMsIDB4N2MsIDB4MDMsCi0gICAgMHg5MCwgMHgwMywgMHg5NCwgMHgwMywgMHg5YywgMHgwMywgMHhhMiwgMHgwMywKLSAgICAweGMwLCAweDAzLCAweGQwLCAweDAzLCAweGQ0LCAweDAzLCAweGVlLCAweDAzLAotICAgIDB4ZmEsIDB4MDMsIDB4ZmUsIDB4MDMsIDB4MmUsIDB4MDQsIDB4MzIsIDB4MDQsCi0gICAgMHgzYywgMHgwNCwgMHg0MCwgMHgwNCwgMHg0ZSwgMHgwNCwgMHg3NiwgMHgwNCwKLSAgICAweDdjLCAweDA0LCAweDg0LCAweDA0LCAweDhhLCAweDA0LCAweDhlLCAweDA0LAotICAgIDB4YTYsIDB4MDQsIDB4YjAsIDB4MDQsIDB4YjgsIDB4MDQsIDB4YmUsIDB4MDQsCi0gICAgMHhkMiwgMHgwNCwgMHhkYywgMHgwNCwgMHhlZSwgMHgwNCwgMHgxMCwgMHgwNSwKLSAgICAweDFhLCAweDA1LCAweDI0LCAweDA1LCAweDJhLCAweDA1LCAweDM2LCAweDA1LAotICAgIDB4MzQsIDB4MDUsIDB4M2MsIDB4MDUsIDB4NDIsIDB4MDUsIDB4NjQsIDB4MDUsCi0gICAgMHg2YSwgMHgwNSwgMHg2ZSwgMHgwNSwgMHg4NiwgMHgwNSwgMHgyMiwgMHgwNiwKLSAgICAweDI2LCAweDA2LCAweDJjLCAweDA2LCAweDMwLCAweDA2LCAweDQyLCAweDA2LAotICAgIDB4NGEsIDB4MDYsIDB4NGUsIDB4MDYsIDB4NTYsIDB4MDYsIDB4NTQsIDB4MDYsCi0gICAgMHg1YSwgMHgwNiwgMHg2MCwgMHgwNiwgMHg2NiwgMHgwNiwgMHhlOCwgMHgwNiwKLSAgICAweGVlLCAweDA2LCAweGY0LCAweDA2LCAweDE2LCAweDA3LCAweDI2LCAweDA3LAotICAgIDB4MmMsIDB4MDcsIDB4MzIsIDB4MDcsIDB4MzYsIDB4MDcsIDB4M2EsIDB4MDcsCi0gICAgMHgzZSwgMHgwNywgMHg1MiwgMHgwNywgMHg1NiwgMHgwNywgMHg1YSwgMHgwNywKLSAgICAweDY0LCAweDA3LCAweDc2LCAweDA3LCAweDdhLCAweDA3LCAweDgwLCAweDA3LAotICAgIDB4ODQsIDB4MDcsIDB4OGEsIDB4MDcsIDB4OWUsIDB4MDcsIDB4YTIsIDB4MDcsCi0gICAgMHhkYSwgMHgwNywgMHhkZSwgMHgwNywgMHhlMiwgMHgwNywgMHhlNiwgMHgwNywKLSAgICAweGVhLCAweDA3LCAweGVlLCAweDA3LCAweGYyLCAweDA3LCAweGY2LCAweDA3LAotICAgIDB4MGUsIDB4MDgsIDB4MTYsIDB4MDgsIDB4MTgsIDB4MDgsIDB4MWEsIDB4MDgsCi0gICAgMHgxYywgMHgwOCwgMHgxZSwgMHgwOCwgMHgyMCwgMHgwOCwgMHgyMiwgMHgwOCwKLSAgICAweDI0LCAweDA4LCAweDI2LCAweDA4LCAweDI4LCAweDA4LCAweDJhLCAweDA4LAotICAgIDB4MmMsIDB4MDgsIDB4MmUsIDB4MDgsIDB4MzIsIDB4MDgsIDB4M2EsIDB4MDgsCi0gICAgMHg0NiwgMHgwOCwgMHg0ZSwgMHgwOCwgMHg1NCwgMHgwOCwgMHg1ZSwgMHgwOCwKLSAgICAweDc4LCAweDA4LCAweDdlLCAweDA4LCAweDgyLCAweDA4LCAweDg2LCAweDA4LAotICAgIDB4OGMsIDB4MDgsIDB4OTAsIDB4MDgsIDB4OTgsIDB4MDgsIDB4OWUsIDB4MDgsCi0gICAgMHhhNCwgMHgwOCwgMHhhYSwgMHgwOCwgMHhiMCwgMHgwOCwgMHhhZSwgMHgwOCwKLSAgICAweGI0LCAweDA4LCAweGJlLCAweDA4LCAweGM0LCAweDA4LCAweGMyLCAweDA4LAotICAgIDB4Y2EsIDB4MDgsIDB4YzgsIDB4MDgsIDB4ZDQsIDB4MDgsIDB4ZTQsIDB4MDgsCi0gICAgMHhlOCwgMHgwOCwgMHhmNiwgMHgwOCwgMHgxNCwgMHgwOSwgMHgxMiwgMHgwOSwKLSAgICAweDFhLCAweDA5LCAweDIwLCAweDA5LCAweDI2LCAweDA5LCAweDI0LCAweDA5LAotICAgIDB4MmEsIDB4MDksIDB4M2UsIDB4MDksIDB4NGMsIDB4MDksIDB4NTYsIDB4MDksCi0gICAgMHg3MCwgMHgwOSwgMHg3NCwgMHgwOSwgMHg3OCwgMHgwOSwgMHg3ZSwgMHgwOSwKLSAgICAweDdjLCAweDA5LCAweDgyLCAweDA5LCAweDk4LCAweDA5LCAweDljLCAweDA5LAotICAgIDB4YTAsIDB4MDksIDB4YTYsIDB4MDksIDB4YjgsIDB4MDksIDB4ZGMsIDB4MDksCi0gICAgMHhlOCwgMHgwOSwgMHhlYywgMHgwOSwgMHhmYywgMHgwOSwgMHgxMiwgMHgwYSwKLSAgICAweDE4LCAweDBhLCAweDFlLCAweDBhLCAweDQyLCAweDBhLCAweDQ2LCAweDBhLAotICAgIDB4NGUsIDB4MGEsIDB4NTQsIDB4MGEsIDB4NWEsIDB4MGEsIDB4NWUsIDB4MGEsCi0gICAgMHg2OCwgMHgwYSwgMHg2ZSwgMHgwYSwgMHg3MiwgMHgwYSwgMHg3OCwgMHgwYSwKLSAgICAweDc2LCAweDBhLCAweDdjLCAweDBhLCAweDgwLCAweDBhLCAweDg0LCAweDBhLAotICAgIDB4OTQsIDB4MGEsIDB4YTQsIDB4MGEsIDB4YjgsIDB4MGEsIDB4YmUsIDB4MGEsCi0gICAgMHhiYywgMHgwYSwgMHhjMiwgMHgwYSwgMHhjOCwgMHgwYSwgMHhjNiwgMHgwYSwKLSAgICAweGNjLCAweDBhLCAweGQwLCAweDBhLCAweGQ0LCAweDBhLCAweGQ4LCAweDBhLAotICAgIDB4ZGMsIDB4MGEsIDB4ZTAsIDB4MGEsIDB4ZjIsIDB4MGEsIDB4ZjYsIDB4MGEsCi0gICAgMHhmYSwgMHgwYSwgMHgxNCwgMHgwYiwgMHgxYSwgMHgwYiwgMHgyMCwgMHgwYiwKLSAgICAweDFlLCAweDBiLCAweDI2LCAweDBiLCAweDJlLCAweDBiLCAweDJjLCAweDBiLAotICAgIDB4MzYsIDB4MGIsIDB4M2MsIDB4MGIsIDB4NDIsIDB4MGIsIDB4NDAsIDB4MGIsCi0gICAgMHg0YSwgMHgwYiwgMHhhYSwgMHgwYiwgMHhiMCwgMHgwYiwgMHhiNiwgMHgwYiwKLSAgICAweGMwLCAweDBiLCAweGM4LCAweDBiLCAweGRhLCAweDBiLCAweGU4LCAweDBiLAotICAgIDB4ZWMsIDB4MGIsIDB4ZmEsIDB4MGIsIDB4NGEsIDB4MGMsIDB4NTQsIDB4MGMsCi0gICAgMHg2MiwgMHgwYywgMHg2NiwgMHgwYywgMHg5NiwgMHgwYywgMHg5YSwgMHgwYywKLSAgICAweGEwLCAweDBjLCAweGE2LCAweDBjLCAweGE0LCAweDBjLCAweGFjLCAweDBjLAotICAgIDB4YjIsIDB4MGMsIDB4YjAsIDB4MGMsIDB4YzAsIDB4MGMsCi0gICAgMHgwMCwgMHgwMAotfTsKLQotCi1zdGF0aWMgY29uc3QgaW50IGxlbl9rYXdldGhfdHJpZ2dlcl9jb2RlID0gc2l6ZW9mKGthd2V0aF90cmlnZ2VyX2NvZGUpOwotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX3RyaWdnZXJfY29kZV9maXggPSBzaXplb2Yoa2F3ZXRoX3RyaWdnZXJfY29kZV9maXgpOwotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX25ld19jb2RlID0gc2l6ZW9mKGthd2V0aF9uZXdfY29kZSk7Ci1zdGF0aWMgY29uc3QgaW50IGxlbl9rYXdldGhfbmV3X2NvZGVfZml4ID0gc2l6ZW9mKGthd2V0aF9uZXdfY29kZV9maXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IDU0NTBlYWMuLjQ0NTIzMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTQ0LDExICs0NCwxNSBAQAogCS8qIFRoZSBza2Igd2UgY291bGRuJ3Qgc2VuZCBiZWNhdXNlIGJ1ZmZlcnMgd2VyZSBmdWxsLiAqLwogCXN0cnVjdCBza19idWZmICpsYXN0X3htaXRfc2tiOwogCisJLyogSWYgd2UgbmVlZCB0byBmcmVlIGluIGEgdGltZXIsIHRoaXMgaXMgaXQuICovCisJc3RydWN0IHRpbWVyX2xpc3QgeG1pdF9mcmVlX3RpbWVyOworCiAJLyogTnVtYmVyIG9mIGlucHV0IGJ1ZmZlcnMsIGFuZCBtYXggd2UndmUgZXZlciBoYWQuICovCiAJdW5zaWduZWQgaW50IG51bSwgbWF4OwogCiAJLyogRm9yIGNsZWFuaW5nIHVwIGFmdGVyIHRyYW5zbWlzc2lvbi4gKi8KIAlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgdGFza2xldDsKKwlib29sIGZyZWVfaW5fdGFza2xldDsKIAogCS8qIFJlY2VpdmUgJiBzZW5kIHF1ZXVlcy4gKi8KIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHJlY3Y7CkBAIC03Miw3ICs3Niw3IEBACiAJLyogU3VwcHJlc3MgZnVydGhlciBpbnRlcnJ1cHRzLiAqLwogCXN2cS0+dnFfb3BzLT5kaXNhYmxlX2NiKHN2cSk7CiAKLQkvKiBXZSB3ZXJlIHdhaXRpbmcgZm9yIG1vcmUgb3V0cHV0IGJ1ZmZlcnMuICovCisJLyogV2Ugd2VyZSBwcm9iYWJseSB3YWl0aW5nIGZvciBtb3JlIG91dHB1dCBidWZmZXJzLiAqLwogCW5ldGlmX3dha2VfcXVldWUodmktPmRldik7CiAKIAkvKiBNYWtlIHN1cmUgd2UgcmUteG1pdCBsYXN0X3htaXRfc2tiOiBpZiB0aGVyZSBhcmUgbm8gbW9yZSBwYWNrZXRzCkBAIC05NCw5ICs5OCw3IEBACiAJQlVHX09OKGxlbiA+IE1BWF9QQUNLRVRfTEVOKTsKIAogCXNrYl90cmltKHNrYiwgbGVuKTsKLQlza2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBkZXYpOwotCXByX2RlYnVnKCJSZWNlaXZpbmcgc2tiIHByb3RvIDB4JTA0eCBsZW4gJWkgdHlwZSAlaVxuIiwKLQkJIG50b2hzKHNrYi0+cHJvdG9jb2wpLCBza2ItPmxlbiwgc2tiLT5wa3RfdHlwZSk7CisKIAlkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHNrYi0+bGVuOwogCWRldi0+c3RhdHMucnhfcGFja2V0cysrOwogCkBAIC0xMDYsNiArMTA4LDEwIEBACiAJCQlnb3RvIGZyYW1lX2VycjsKIAl9CiAKKwlza2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBkZXYpOworCXByX2RlYnVnKCJSZWNlaXZpbmcgc2tiIHByb3RvIDB4JTA0eCBsZW4gJWkgdHlwZSAlaVxuIiwKKwkJIG50b2hzKHNrYi0+cHJvdG9jb2wpLCBza2ItPmxlbiwgc2tiLT5wa3RfdHlwZSk7CisKIAlpZiAoaGRyLT5nc29fdHlwZSAhPSBWSVJUSU9fTkVUX0hEUl9HU09fTk9ORSkgewogCQlwcl9kZWJ1ZygiR1NPIVxuIik7CiAJCXN3aXRjaCAoaGRyLT5nc29fdHlwZSAmIH5WSVJUSU9fTkVUX0hEUl9HU09fRUNOKSB7CkBAIC0yMzgsOSArMjQ0LDI1IEBACiAJfQogfQogCisvKiBJZiB0aGUgdmlydGlvIHRyYW5zcG9ydCBkb2Vzbid0IGFsd2F5cyBub3RpZnkgdXMgd2hlbiBhbGwgaW4tZmxpZ2h0IHBhY2tldHMKKyAqIGFyZSBjb25zdW1lZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIHRoaXMgZnVuY3Rpb24gb24gYSB0aW1lciB0byBmcmVlIHRoZW0uICovCitzdGF0aWMgdm9pZCB4bWl0X2ZyZWUodW5zaWduZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpID0gKHZvaWQgKilkYXRhOworCisJbmV0aWZfdHhfbG9jayh2aS0+ZGV2KTsKKworCWZyZWVfb2xkX3htaXRfc2ticyh2aSk7CisKKwlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmdmktPnNlbmQpKQorCQltb2RfdGltZXIoJnZpLT54bWl0X2ZyZWVfdGltZXIsIGppZmZpZXMgKyAoSFovMTApKTsKKworCW5ldGlmX3R4X3VubG9jayh2aS0+ZGV2KTsKK30KKwogc3RhdGljIGludCB4bWl0X3NrYihzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgbnVtOworCWludCBudW0sIGVycjsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dbMitNQVhfU0tCX0ZSQUdTXTsKIAlzdHJ1Y3QgdmlydGlvX25ldF9oZHIgKmhkcjsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpkZXN0ID0gKChzdHJ1Y3QgZXRoaGRyICopc2tiLT5kYXRhKS0+aF9kZXN0OwpAQCAtMjgzLDcgKzMwNSwxMSBAQAogCXZuZXRfaGRyX3RvX3NnKHNnLCBza2IpOwogCW51bSA9IHNrYl90b19zZ3ZlYyhza2IsIHNnKzEsIDAsIHNrYi0+bGVuKSArIDE7CiAKLQlyZXR1cm4gdmktPnN2cS0+dnFfb3BzLT5hZGRfYnVmKHZpLT5zdnEsIHNnLCBudW0sIDAsIHNrYik7CisJZXJyID0gdmktPnN2cS0+dnFfb3BzLT5hZGRfYnVmKHZpLT5zdnEsIHNnLCBudW0sIDAsIHNrYik7CisJaWYgKCFlcnIgJiYgIXZpLT5mcmVlX2luX3Rhc2tsZXQpCisJCW1vZF90aW1lcigmdmktPnhtaXRfZnJlZV90aW1lciwgamlmZmllcyArIChIWi8xMCkpOworCisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIHZvaWQgeG1pdF90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKQEAgLTI5NSw2ICszMjEsOCBAQAogCQl2aS0+c3ZxLT52cV9vcHMtPmtpY2sodmktPnN2cSk7CiAJCXZpLT5sYXN0X3htaXRfc2tiID0gTlVMTDsKIAl9CisJaWYgKHZpLT5mcmVlX2luX3Rhc2tsZXQpCisJCWZyZWVfb2xkX3htaXRfc2ticyh2aSk7CiAJbmV0aWZfdHhfdW5sb2NrX2JoKHZpLT5kZXYpOwogfQogCkBAIC00MzUsNiArNDYzLDEwIEBACiAJdmktPnZkZXYgPSB2ZGV2OwogCXZkZXYtPnByaXYgPSB2aTsKIAorCS8qIElmIHRoZXkgZ2l2ZSB1cyBhIGNhbGxiYWNrIHdoZW4gYWxsIGJ1ZmZlcnMgYXJlIGRvbmUsIHdlIGRvbid0IG5lZWQKKwkgKiB0aGUgdGltZXIuICovCisJdmktPmZyZWVfaW5fdGFza2xldCA9IHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LFZJUlRJT19GX05PVElGWV9PTl9FTVBUWSk7CisKIAkvKiBXZSBleHBlY3QgdHdvIHZpcnRxdWV1ZXMsIHJlY2VpdmUgdGhlbiBzZW5kLiAqLwogCXZpLT5ydnEgPSB2ZGV2LT5jb25maWctPmZpbmRfdnEodmRldiwgMCwgc2tiX3JlY3ZfZG9uZSk7CiAJaWYgKElTX0VSUih2aS0+cnZxKSkgewpAQCAtNDU0LDYgKzQ4Niw5IEBACiAKIAl0YXNrbGV0X2luaXQoJnZpLT50YXNrbGV0LCB4bWl0X3Rhc2tsZXQsICh1bnNpZ25lZCBsb25nKXZpKTsKIAorCWlmICghdmktPmZyZWVfaW5fdGFza2xldCkKKwkJc2V0dXBfdGltZXIoJnZpLT54bWl0X2ZyZWVfdGltZXIsIHhtaXRfZnJlZSwgKHVuc2lnbmVkIGxvbmcpdmkpOworCiAJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7CiAJaWYgKGVycikgewogCQlwcl9kZWJ1ZygidmlydGlvX25ldDogcmVnaXN0ZXJpbmcgZGV2aWNlIGZhaWxlZFxuIik7CkBAIC00OTEsNiArNTI2LDkgQEAKIAkvKiBTdG9wIGFsbCB0aGUgdmlydHF1ZXVlcy4gKi8KIAl2ZGV2LT5jb25maWctPnJlc2V0KHZkZXYpOwogCisJaWYgKCF2aS0+ZnJlZV9pbl90YXNrbGV0KQorCQlkZWxfdGltZXJfc3luYygmdmktPnhtaXRfZnJlZV90aW1lcik7CisKIAkvKiBGcmVlIG91ciBza2JzIGluIHNlbmQgYW5kIHJlY3YgcXVldWVzLCBpZiBhbnkuICovCiAJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZ2aS0+cmVjdikpICE9IE5VTEwpIHsKIAkJa2ZyZWVfc2tiKHNrYik7CkBAIC01MTQsNyArNTUyLDcgQEAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmVhdHVyZXNbXSA9IHsKIAlWSVJUSU9fTkVUX0ZfQ1NVTSwgVklSVElPX05FVF9GX0dTTywgVklSVElPX05FVF9GX01BQywKIAlWSVJUSU9fTkVUX0ZfSE9TVF9UU080LCBWSVJUSU9fTkVUX0ZfSE9TVF9VRk8sIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYsCi0JVklSVElPX05FVF9GX0hPU1RfRUNOLAorCVZJUlRJT19ORVRfRl9IT1NUX0VDTiwgVklSVElPX0ZfTk9USUZZX09OX0VNUFRZLAogfTsKIAogc3RhdGljIHN0cnVjdCB2aXJ0aW9fZHJpdmVyIHZpcnRpb19uZXQgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vY29zYS5jIGIvZHJpdmVycy9uZXQvd2FuL2Nvc2EuYwppbmRleCBiMGZjZTEzLi41ODI3MzI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4vY29zYS5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9jb3NhLmMKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI3VuZGVmIENPU0FfU0xPV19JTwkvKiBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5ICovCiAKQEAgLTk3MCwxNSArOTcxLDIxIEBACiAJc3RydWN0IGNoYW5uZWxfZGF0YSAqY2hhbjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBuOworCWludCByZXQgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoKG49aW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpPj5DQVJEX01JTk9SX0JJVFMpCi0JCT49IG5yX2NhcmRzKQotCQlyZXR1cm4gLUVOT0RFVjsKKwkJPj0gbnJfY2FyZHMpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCWNvc2EgPSBjb3NhX2NhcmRzK247CiAKIAlpZiAoKG49aW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpCi0JCSYgKCgxPDxDQVJEX01JTk9SX0JJVFMpLTEpKSA+PSBjb3NhLT5uY2hhbm5lbHMpCi0JCXJldHVybiAtRU5PREVWOworCQkmICgoMTw8Q0FSRF9NSU5PUl9CSVRTKS0xKSkgPj0gY29zYS0+bmNoYW5uZWxzKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAljaGFuID0gY29zYS0+Y2hhbiArIG47CiAJCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gY2hhbjsKQEAgLTk4Nyw3ICs5OTQsOCBAQAogCiAJaWYgKGNoYW4tPnVzYWdlIDwgMCkgeyAvKiBpbiBuZXRkZXYgbW9kZSAqLwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb3NhLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAtRUJVU1k7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCWNvc2EtPnVzYWdlKys7CiAJY2hhbi0+dXNhZ2UrKzsKQEAgLTk5Niw3ICsxMDA0LDkgQEAKIAljaGFuLT5zZXR1cF9yeCA9IGNocmRldl9zZXR1cF9yeDsKIAljaGFuLT5yeF9kb25lID0gY2hyZGV2X3J4X2RvbmU7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29zYS0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNvc2FfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2ZyLmMgYi9kcml2ZXJzL25ldC93YW4vaGRsY19mci5jCmluZGV4IDUyMGJiMGIuLjZkMzUxNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2ZyLmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYwpAQCAtMTAwOCw2ICsxMDA4LDcgQEAKIAkJc3RhdHMtPnJ4X2J5dGVzICs9IHNrYi0+bGVuOwogCQlpZiAocHZjLT5zdGF0ZS5iZWNuKQogCQkJc3RhdHMtPnJ4X2NvbXByZXNzZWQrKzsKKwkJc2tiLT5kZXYgPSBkZXY7CiAJCW5ldGlmX3J4KHNrYik7CiAJCXJldHVybiBORVRfUlhfU1VDQ0VTUzsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKaW5kZXggMjQ5ZTE4MC4uMDY5ZjhiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYworKysgYi9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgveDI1Lmg+CiAjaW5jbHVkZSA8bGludXgvbGFwYi5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KICNpbmNsdWRlICJ4MjVfYXN5LmgiCiAKICNpbmNsdWRlIDxuZXQveDI1ZGV2aWNlLmg+CkBAIC02MDEsOCArNjAyLDEwIEBACiAJaWYgKCFzbCB8fCBzbC0+bWFnaWMgIT0gWDI1X0FTWV9NQUdJQykKIAkJcmV0dXJuOwogCisJcnRubF9sb2NrKCk7CiAJaWYgKHNsLT5kZXYtPmZsYWdzICYgSUZGX1VQKQogCQlkZXZfY2xvc2Uoc2wtPmRldik7CisJcnRubF91bmxvY2soKTsKIAogCXR0eS0+ZGlzY19kYXRhID0gTlVMTDsKIAlzbC0+dHR5ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC5jCmluZGV4IDQzOGU2M2UuLmQxYWNlZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwuYwpAQCAtNTYwLDcgKzU2MCw3IEBACiBzdGF0aWMgdm9pZCBidWlsZF93cGFfbWliKHN0cnVjdCBhdG1lbF9wcml2YXRlICpwcml2KTsKIHN0YXRpYyBpbnQgYXRtZWxfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICpycSwgaW50IGNtZCk7CiBzdGF0aWMgdm9pZCBhdG1lbF9jb3B5X3RvX2NhcmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IGRlc3QsCi0JCQkgICAgICAgdW5zaWduZWQgY2hhciAqc3JjLCB1MTYgbGVuKTsKKwkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsIHUxNiBsZW4pOwogc3RhdGljIHZvaWQgYXRtZWxfY29weV90b19ob3N0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKmRlc3QsCiAJCQkgICAgICAgdTE2IHNyYywgdTE2IGxlbik7CiBzdGF0aWMgdm9pZCBhdG1lbF9zZXRfZ2NyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBtYXNrKTsKQEAgLTM4NTMsNyArMzg1Myw3IEBACiAJaWYgKHByaXYtPmNhcmRfdHlwZSA9PSBDQVJEX1RZUEVfRUVQUk9NKSB7CiAJCS8qIGNvcHkgaW4gZmlybXdhcmUgaWYgbmVlZGVkICovCiAJCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZndfZW50cnkgPSBOVUxMOwotCQl1bnNpZ25lZCBjaGFyICpmdzsKKwkJY29uc3QgdW5zaWduZWQgY2hhciAqZnc7CiAJCWludCBsZW4gPSBwcml2LT5maXJtd2FyZV9sZW5ndGg7CiAJCWlmICghKGZ3ID0gcHJpdi0+ZmlybXdhcmUpKSB7CiAJCQlpZiAocHJpdi0+ZmlybXdhcmVfdHlwZSA9PSBBVE1FTF9GV19UWVBFX05PTkUpIHsKQEAgLTQxMjAsNyArNDEyMCw3IEBACiB9CiAKIHN0YXRpYyB2b2lkIGF0bWVsX2NvcHlfdG9fY2FyZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgZGVzdCwKLQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpzcmMsIHUxNiBsZW4pCisJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3JjLCB1MTYgbGVuKQogewogCWludCBpOwogCWF0bWVsX3dyaXRlQVIoZGV2LCBkZXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaAppbmRleCBkZmE0YmRkLi5kM2RiMjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvYjQzLmgKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2I0My5oCkBAIC02MzAsNyArNjMwLDYgQEAKIAogLyogQ29udGV4dCBpbmZvcm1hdGlvbiBmb3IgYSBub2lzZSBjYWxjdWxhdGlvbiAoTGluayBRdWFsaXR5KS4gKi8KIHN0cnVjdCBiNDNfbm9pc2VfY2FsY3VsYXRpb24gewotCXU4IGNoYW5uZWxfYXRfc3RhcnQ7CiAJYm9vbCBjYWxjdWxhdGlvbl9ydW5uaW5nOwogCXU4IG5yX3NhbXBsZXM7CiAJczggc2FtcGxlc1s4XVs0XTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9kbWEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9kbWEuYwppbmRleCA2ZGNiYjNjLi5lMjNmMmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5jCkBAIC03OTUsNjYgKzc5NSwyMyBAQAogewogCXN0cnVjdCBiNDNfZG1hcmluZyAqcmluZzsKIAlpbnQgZXJyOwotCWludCBucl9zbG90czsKIAlkbWFfYWRkcl90IGRtYV90ZXN0OwogCiAJcmluZyA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5nKQogCQlnb3RvIG91dDsKLQlyaW5nLT50eXBlID0gdHlwZTsKIAotCW5yX3Nsb3RzID0gQjQzX1JYUklOR19TTE9UUzsKKwlyaW5nLT5ucl9zbG90cyA9IEI0M19SWFJJTkdfU0xPVFM7CiAJaWYgKGZvcl90eCkKLQkJbnJfc2xvdHMgPSBCNDNfVFhSSU5HX1NMT1RTOworCQlyaW5nLT5ucl9zbG90cyA9IEI0M19UWFJJTkdfU0xPVFM7CiAKLQlyaW5nLT5tZXRhID0ga2NhbGxvYyhucl9zbG90cywgc2l6ZW9mKHN0cnVjdCBiNDNfZG1hZGVzY19tZXRhKSwKKwlyaW5nLT5tZXRhID0ga2NhbGxvYyhyaW5nLT5ucl9zbG90cywgc2l6ZW9mKHN0cnVjdCBiNDNfZG1hZGVzY19tZXRhKSwKIAkJCSAgICAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5nLT5tZXRhKQogCQlnb3RvIGVycl9rZnJlZV9yaW5nOwotCWlmIChmb3JfdHgpIHsKLQkJcmluZy0+dHhoZHJfY2FjaGUgPSBrY2FsbG9jKG5yX3Nsb3RzLAotCQkJCQkgICAgYjQzX3R4aGRyX3NpemUoZGV2KSwKLQkJCQkJICAgIEdGUF9LRVJORUwpOwotCQlpZiAoIXJpbmctPnR4aGRyX2NhY2hlKQotCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKIAotCQkvKiB0ZXN0IGZvciBhYmlsaXR5IHRvIGRtYSB0byB0eGhkcl9jYWNoZSAqLwotCQlkbWFfdGVzdCA9IGRtYV9tYXBfc2luZ2xlKGRldi0+ZGV2LT5kbWFfZGV2LAotCQkJCQkgIHJpbmctPnR4aGRyX2NhY2hlLAotCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJCSAgRE1BX1RPX0RFVklDRSk7Ci0KLQkJaWYgKGI0M19kbWFfbWFwcGluZ19lcnJvcihyaW5nLCBkbWFfdGVzdCwKLQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgewotCQkJLyogdWdoIHJlYWxsb2MgKi8KLQkJCWtmcmVlKHJpbmctPnR4aGRyX2NhY2hlKTsKLQkJCXJpbmctPnR4aGRyX2NhY2hlID0ga2NhbGxvYyhucl9zbG90cywKLQkJCQkJCSAgICBiNDNfdHhoZHJfc2l6ZShkZXYpLAotCQkJCQkJICAgIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKLQkJCWlmICghcmluZy0+dHhoZHJfY2FjaGUpCi0JCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKLQotCQkJZG1hX3Rlc3QgPSBkbWFfbWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKLQkJCQkJCSAgcmluZy0+dHhoZHJfY2FjaGUsCi0JCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJCQkgIERNQV9UT19ERVZJQ0UpOwotCi0JCQlpZiAoYjQzX2RtYV9tYXBwaW5nX2Vycm9yKHJpbmcsIGRtYV90ZXN0LAotCQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgewotCi0JCQkJYjQzZXJyKGRldi0+d2wsCi0JCQkJICAgICAgICJUWEhEUiBETUEgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyX2tmcmVlX3R4aGRyX2NhY2hlOwotCQkJfQotCQl9Ci0KLQkJZG1hX3VubWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKLQkJCQkgZG1hX3Rlc3QsIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJIERNQV9UT19ERVZJQ0UpOwotCX0KLQorCXJpbmctPnR5cGUgPSB0eXBlOwogCXJpbmctPmRldiA9IGRldjsKLQlyaW5nLT5ucl9zbG90cyA9IG5yX3Nsb3RzOwogCXJpbmctPm1taW9fYmFzZSA9IGI0M19kbWFjb250cm9sbGVyX2Jhc2UodHlwZSwgY29udHJvbGxlcl9pbmRleCk7CiAJcmluZy0+aW5kZXggPSBjb250cm9sbGVyX2luZGV4OwogCWlmICh0eXBlID09IEI0M19ETUFfNjRCSVQpCkBAIC04NzksNiArODM2LDQ4IEBACiAJcmluZy0+bGFzdF9pbmplY3RlZF9vdmVyZmxvdyA9IGppZmZpZXM7CiAjZW5kaWYKIAorCWlmIChmb3JfdHgpIHsKKwkJcmluZy0+dHhoZHJfY2FjaGUgPSBrY2FsbG9jKHJpbmctPm5yX3Nsb3RzLAorCQkJCQkgICAgYjQzX3R4aGRyX3NpemUoZGV2KSwKKwkJCQkJICAgIEdGUF9LRVJORUwpOworCQlpZiAoIXJpbmctPnR4aGRyX2NhY2hlKQorCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKKworCQkvKiB0ZXN0IGZvciBhYmlsaXR5IHRvIGRtYSB0byB0eGhkcl9jYWNoZSAqLworCQlkbWFfdGVzdCA9IGRtYV9tYXBfc2luZ2xlKGRldi0+ZGV2LT5kbWFfZGV2LAorCQkJCQkgIHJpbmctPnR4aGRyX2NhY2hlLAorCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJCSAgRE1BX1RPX0RFVklDRSk7CisKKwkJaWYgKGI0M19kbWFfbWFwcGluZ19lcnJvcihyaW5nLCBkbWFfdGVzdCwKKwkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgeworCQkJLyogdWdoIHJlYWxsb2MgKi8KKwkJCWtmcmVlKHJpbmctPnR4aGRyX2NhY2hlKTsKKwkJCXJpbmctPnR4aGRyX2NhY2hlID0ga2NhbGxvYyhyaW5nLT5ucl9zbG90cywKKwkJCQkJCSAgICBiNDNfdHhoZHJfc2l6ZShkZXYpLAorCQkJCQkJICAgIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwkJCWlmICghcmluZy0+dHhoZHJfY2FjaGUpCisJCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKKworCQkJZG1hX3Rlc3QgPSBkbWFfbWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKKwkJCQkJCSAgcmluZy0+dHhoZHJfY2FjaGUsCisJCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJCQkgIERNQV9UT19ERVZJQ0UpOworCisJCQlpZiAoYjQzX2RtYV9tYXBwaW5nX2Vycm9yKHJpbmcsIGRtYV90ZXN0LAorCQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgeworCisJCQkJYjQzZXJyKGRldi0+d2wsCisJCQkJICAgICAgICJUWEhEUiBETUEgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyX2tmcmVlX3R4aGRyX2NhY2hlOworCQkJfQorCQl9CisKKwkJZG1hX3VubWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKKwkJCQkgZG1hX3Rlc3QsIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJIERNQV9UT19ERVZJQ0UpOworCX0KKwogCWVyciA9IGFsbG9jX3JpbmdtZW1vcnkocmluZyk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfa2ZyZWVfdHhoZHJfY2FjaGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbGVkcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2xlZHMuYwppbmRleCAzNmE5YzQyLi43NmY0YzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbGVkcy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9sZWRzLmMKQEAgLTcyLDYgKzcyLDkgQEAKIAlzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYgPSBsZWQtPmRldjsKIAlib29sIHJhZGlvX2VuYWJsZWQ7CiAKKwlpZiAodW5saWtlbHkoYjQzX3N0YXR1cyhkZXYpIDwgQjQzX1NUQVRfSU5JVElBTElaRUQpKQorCQlyZXR1cm47CisKIAkvKiBDaGVja2luZyB0aGUgcmFkaW8tZW5hYmxlZCBzdGF0dXMgaGVyZSBpcyBzbGlnaHRseSByYWN5LAogCSAqIGJ1dCB3ZSB3YW50IHRvIGF2b2lkIHRoZSBsb2NraW5nIG92ZXJoZWFkIGFuZCB3ZSBkb24ndCBjYXJlCiAJICogd2hldGhlciB0aGUgTEVEIGhhcyB0aGUgd3Jvbmcgc3RhdGUgZm9yIGEgc2Vjb25kLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMKaW5kZXggNmMzZDllYS4uYTcwODI3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbWFpbi5jCkBAIC0xMTQ1LDcgKzExNDUsNiBAQAogCWI0M19qc3NpX3dyaXRlKGRldiwgMHg3RjdGN0Y3Rik7CiAJYjQzX3dyaXRlMzIoZGV2LCBCNDNfTU1JT19NQUNDTUQsCiAJCSAgICBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKSB8IEI0M19NQUNDTURfQkdOT0lTRSk7Ci0JQjQzX1dBUk5fT04oZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCAhPSBkZXYtPnBoeS5jaGFubmVsKTsKIH0KIAogc3RhdGljIHZvaWQgYjQzX2NhbGN1bGF0ZV9saW5rX3F1YWxpdHkoc3RydWN0IGI0M193bGRldiAqZGV2KQpAQCAtMTE1NCw3ICsxMTUzLDYgQEAKIAogCWlmIChkZXYtPm5vaXNlY2FsYy5jYWxjdWxhdGlvbl9ydW5uaW5nKQogCQlyZXR1cm47Ci0JZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCA9IGRldi0+cGh5LmNoYW5uZWw7CiAJZGV2LT5ub2lzZWNhbGMuY2FsY3VsYXRpb25fcnVubmluZyA9IDE7CiAJZGV2LT5ub2lzZWNhbGMubnJfc2FtcGxlcyA9IDA7CiAKQEAgLTExNzEsOSArMTE2OSwxNiBAQAogCiAJLyogQm90dG9tIGhhbGYgb2YgTGluayBRdWFsaXR5IGNhbGN1bGF0aW9uLiAqLwogCisJLyogUG9zc2libGUgcmFjZSBjb25kaXRpb246IEl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIKKwkgKiBjaGFuZ2VkIHRvIGEgZGlmZmVyZW50IGNoYW5uZWwgaW4gdGhlIG1lYW50aW1lIHNpbmNlIHdlCisJICogc3RhcnRlZCB0aGUgY2FsY3VsYXRpb24uIFdlIGlnbm9yZSB0aGF0IGZhY3QsIHNpbmNlIGl0J3MKKwkgKiBub3QgcmVhbGx5IHRoYXQgbXVjaCBvZiBhIHByb2JsZW0uIFRoZSBiYWNrZ3JvdW5kIG5vaXNlIGlzCisJICogYW4gZXN0aW1hdGlvbiBvbmx5IGFueXdheS4gU2xpZ2h0bHkgd3JvbmcgcmVzdWx0cyB3aWxsIGdldCBkYW1wZWQKKwkgKiBieSB0aGUgYXZlcmFnaW5nIG9mIHRoZSA4IHNhbXBsZSByb3VuZHMuIEFkZGl0aW9uYWxseSB0aGUKKwkgKiB2YWx1ZSBpcyBzaG9ydGxpdmVkLiBTbyBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBuZXh0IG5vaXNlCisJICogY2FsY3VsYXRpb24gcm91bmQgc29vbi4gKi8KKwogCUI0M19XQVJOX09OKCFkZXYtPm5vaXNlY2FsYy5jYWxjdWxhdGlvbl9ydW5uaW5nKTsKLQlpZiAoZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCAhPSBwaHktPmNoYW5uZWwpCi0JCWdvdG8gZHJvcF9jYWxjdWxhdGlvbjsKIAkqKChfX2xlMzIgKilub2lzZSkgPSBjcHVfdG9fbGUzMihiNDNfanNzaV9yZWFkKGRldikpOwogCWlmIChub2lzZVswXSA9PSAweDdGIHx8IG5vaXNlWzFdID09IDB4N0YgfHwKIAkgICAgbm9pc2VbMl0gPT0gMHg3RiB8fCBub2lzZVszXSA9PSAweDdGKQpAQCAtMTIxNCwxMSArMTIxOSwxMCBAQAogCQkJYXZlcmFnZSAtPSA0ODsKIAogCQlkZXYtPnN0YXRzLmxpbmtfbm9pc2UgPSBhdmVyYWdlOwotCSAgICAgIGRyb3BfY2FsY3VsYXRpb246CiAJCWRldi0+bm9pc2VjYWxjLmNhbGN1bGF0aW9uX3J1bm5pbmcgPSAwOwogCQlyZXR1cm47CiAJfQotICAgICAgZ2VuZXJhdGVfbmV3OgorZ2VuZXJhdGVfbmV3OgogCWI0M19nZW5lcmF0ZV9ub2lzZV9zYW1wbGUoZGV2KTsKIH0KIApAQCAtMjg3OSwxMiArMjg4MywxMSBAQAogCiAJaWYgKHVubGlrZWx5KHNrYi0+bGVuIDwgMiArIDIgKyA2KSkgewogCQkvKiBUb28gc2hvcnQsIHRoaXMgY2FuJ3QgYmUgYSB2YWxpZCBmcmFtZS4gKi8KLQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKLQkJcmV0dXJuIE5FVERFVl9UWF9PSzsKKwkJZ290byBkcm9wX3BhY2tldDsKIAl9CiAJQjQzX1dBUk5fT04oc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFncyk7CiAJaWYgKHVubGlrZWx5KCFkZXYpKQotCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CisJCWdvdG8gZHJvcF9wYWNrZXQ7CiAKIAkvKiBUcmFuc21pc3Npb25zIG9uIHNlcGVyYXRlIHF1ZXVlcyBjYW4gcnVuIGNvbmN1cnJlbnRseS4gKi8KIAlyZWFkX2xvY2tfaXJxc2F2ZSgmd2wtPnR4X2xvY2ssIGZsYWdzKTsKQEAgLTI5MDAsNyArMjkwMywxMiBAQAogCXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJndsLT50eF9sb2NrLCBmbGFncyk7CiAKIAlpZiAodW5saWtlbHkoZXJyKSkKLQkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOworCQlnb3RvIGRyb3BfcGFja2V0OworCXJldHVybiBORVRERVZfVFhfT0s7CisKK2Ryb3BfcGFja2V0OgorCS8qIFdlIGNhbiBub3QgdHJhbnNtaXQgdGhpcyBwYWNrZXQuIERyb3AgaXQuICovCisJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvZG1hLmMKaW5kZXggYzk5MGY4Ny4uOTNkZGMxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L2RtYS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9kbWEuYwpAQCAtODc2LDYgKzg3Niw3IEBACiAJaWYgKCFyaW5nKQogCQlnb3RvIG91dDsKIAlyaW5nLT50eXBlID0gdHlwZTsKKwlyaW5nLT5kZXYgPSBkZXY7CiAKIAlucl9zbG90cyA9IEI0M2xlZ2FjeV9SWFJJTkdfU0xPVFM7CiAJaWYgKGZvcl90eCkKQEAgLTkyMiw3ICs5MjMsNiBAQAogCQkJCSBETUFfVE9fREVWSUNFKTsKIAl9CiAKLQlyaW5nLT5kZXYgPSBkZXY7CiAJcmluZy0+bnJfc2xvdHMgPSBucl9zbG90czsKIAlyaW5nLT5tbWlvX2Jhc2UgPSBiNDNsZWdhY3lfZG1hY29udHJvbGxlcl9iYXNlKHR5cGUsIGNvbnRyb2xsZXJfaW5kZXgpOwogCXJpbmctPmluZGV4ID0gY29udHJvbGxlcl9pbmRleDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvbWFpbi5jCmluZGV4IDIwNDA3N2MuLjNlNjEyZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L21haW4uYwpAQCAtMjM3OCw4ICsyMzc4LDEwIEBACiAJfSBlbHNlCiAJCWVyciA9IGI0M2xlZ2FjeV9kbWFfdHgoZGV2LCBza2IsIGN0bCk7CiBvdXQ6Ci0JaWYgKHVubGlrZWx5KGVycikpCi0JCXJldHVybiBORVRERVZfVFhfQlVTWTsKKwlpZiAodW5saWtlbHkoZXJyKSkgeworCQkvKiBEcm9wIHRoZSBwYWNrZXQuICovCisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJfQogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfODAyMTFfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfODAyMTFfcnguYwppbmRleCA0ZmQ3MzgwLi4wMjBmNDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwXzgwMjExX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF84MDIxMV9yeC5jCkBAIC02NCw3ICs2NCw3IEBACiAJaW50IGhkcmxlbiwgcGhkcmxlbiwgaGVhZF9uZWVkLCB0YWlsX25lZWQ7CiAJdTE2IGZjOwogCWludCBwcmlzbV9oZWFkZXIsIHJldDsKLQlzdHJ1Y3QgaWVlZTgwMjExX2hkcl80YWRkciAqaGRyOworCXN0cnVjdCBpZWVlODAyMTFfaGRyXzRhZGRyICpmaGRyOwogCiAJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOwogCWxvY2FsID0gaWZhY2UtPmxvY2FsOwpAQCAtODMsOCArODMsOCBAQAogCQlwaGRybGVuID0gMDsKIAl9CiAKLQloZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHJfNGFkZHIgKikgc2tiLT5kYXRhOwotCWZjID0gbGUxNl90b19jcHUoaGRyLT5mcmFtZV9jdGwpOworCWZoZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHJfNGFkZHIgKikgc2tiLT5kYXRhOworCWZjID0gbGUxNl90b19jcHUoZmhkci0+ZnJhbWVfY3RsKTsKIAogCWlmICh0eXBlID09IFBSSVNNMl9SWF9NR01UICYmIChmYyAmIElFRUU4MDIxMV9GQ1RMX1ZFUlMpKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogZHJvcHBlZCBtYW5hZ2VtZW50IGZyYW1lIHdpdGggaGVhZGVyICIKQEAgLTU1MSw3ICs1NTEsNyBAQAogCSAgICAgaGRyLT5hZGRyMVsyXSAhPSAweGZmIHx8IGhkci0+YWRkcjFbM10gIT0gMHhmZiB8fAogCSAgICAgaGRyLT5hZGRyMVs0XSAhPSAweGZmIHx8IGhkci0+YWRkcjFbNV0gIT0gMHhmZikpIHsKIAkJLyogUkEgKG9yIEJTU0lEKSBpcyBub3Qgb3VycyAtIGRyb3AgKi8KLQkJUERFQlVHKERFQlVHX0VYVFJBLCAiJXM6IHJlY2VpdmVkIFdEUyBmcmFtZSB3aXRoICIKKwkJUERFQlVHKERFQlVHX0VYVFJBMiwgIiVzOiByZWNlaXZlZCBXRFMgZnJhbWUgd2l0aCAiCiAJCSAgICAgICAibm90IG93biBvciBicm9hZGNhc3QgJXM9JXNcbiIsCiAJCSAgICAgICBsb2NhbC0+ZGV2LT5uYW1lLAogCQkgICAgICAgZmMgJiBJRUVFODAyMTFfRkNUTF9GUk9NRFMgPyAiUkEiIDogIkJTU0lEIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfYXAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfYXAuYwppbmRleCAwYWNkOTU4Li5hYjk4MWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2FwLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9hcC5jCkBAIC0xOTMwLDcgKzE5MzAsNyBAQAogCQlQREVCVUcoREVCVUdfUFMsICIgICBQU1BPTEwgYW5kIEFJRFsxNToxNF0gbm90IHNldFxuIik7CiAJCXJldHVybjsKIAl9Ci0JYWlkICY9IH5CSVQoMTUpICYgfkJJVCgxNCk7CisJYWlkICY9IH4oQklUKDE1KSB8IEJJVCgxNCkpOwogCWlmIChhaWQgPT0gMCB8fCBhaWQgPiBNQVhfQUlEX1RBQkxFX1NJWkUpIHsKIAkJUERFQlVHKERFQlVHX1BTLCAiICAgaW52YWxpZCBhaWQ9JWRcbiIsIGFpZCk7CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYwppbmRleCBlZDQzMTdhMS4uM2I0ZTU1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYwpAQCAtNTMzLDEwICs1MzMsMTAgQEAKIGRvIHsgbGFzdF9mbiA9IChmbik7IGlmICgobGFzdF9yZXQgPSAocmV0KSkgIT0gMCkgZ290byBjc19mYWlsZWQ7IH0gd2hpbGUgKDApCiAKICNkZWZpbmUgQ0ZHX0NIRUNLMihmbiwgcmV0ZikgXAotZG8geyBpbnQgcmV0ID0gKHJldGYpOyBcCi1pZiAocmV0ICE9IDApIHsgXAotCVBERUJVRyhERUJVR19FWFRSQSwgIkNhcmRTZXJ2aWNlcygiICNmbiAiKSByZXR1cm5lZCAlZFxuIiwgcmV0KTsgXAotCWNzX2Vycm9yKGxpbmssIGZuLCByZXQpOyBcCitkbyB7IGludCBfcmV0ID0gKHJldGYpOyBcCitpZiAoX3JldCAhPSAwKSB7IFwKKwlQREVCVUcoREVCVUdfRVhUUkEsICJDYXJkU2VydmljZXMoIiAjZm4gIikgcmV0dXJuZWQgJWRcbiIsIF9yZXQpOyBcCisJY3NfZXJyb3IobGluaywgZm4sIF9yZXQpOyBcCiAJZ290byBuZXh0X2VudHJ5OyBcCiB9IFwKIH0gd2hpbGUgKDApCkBAIC03NzcsOCArNzc3LDEwIEBACiAJaW50IGRldl9vcGVuID0gMDsKIAlzdHJ1Y3QgaG9zdGFwX2ludGVyZmFjZSAqaWZhY2UgPSBOVUxMOwogCi0JaWYgKGRldikKLQkJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmYWNlID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCVBERUJVRyhERUJVR19FWFRSQSwgIiVzOiBDU19FVkVOVF9QTV9TVVNQRU5EXG4iLCBkZXZfaW5mbyk7CiAJaWYgKGlmYWNlICYmIGlmYWNlLT5sb2NhbCkKQEAgLTc5OCw4ICs4MDAsMTAgQEAKIAlpbnQgZGV2X29wZW4gPSAwOwogCXN0cnVjdCBob3N0YXBfaW50ZXJmYWNlICppZmFjZSA9IE5VTEw7CiAKLQlpZiAoZGV2KQotCQlpZmFjZSA9IG5ldGRldl9wcml2KGRldik7CisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOwogCiAJUERFQlVHKERFQlVHX0VYVFJBLCAiJXM6IENTX0VWRU5UX1BNX1JFU1VNRVxuIiwgZGV2X2luZm8pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2h3LmMKaW5kZXggY2RmOTBjNC4uOTM2ZjUyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9ody5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfaHcuYwpAQCAtMjgzNSw3ICsyODM1LDcgQEAKIHsKIAlsb2NhbF9pbmZvX3QgKmxvY2FsID0gKGxvY2FsX2luZm9fdCAqKSBkYXRhOwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBsb2NhbC0+ZGV2OwotCXUxNiBjaGFubmVsOworCXUxNiBjaGFuOwogCiAJaWYgKGxvY2FsLT5wYXNzaXZlX3NjYW5faW50ZXJ2YWwgPD0gMCkKIAkJcmV0dXJuOwpAQCAtMjg3MiwxMSArMjg3MiwxMSBAQAogCiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogcGFzc2l2ZSBzY2FuIGNoYW5uZWwgJWRcbiIsCiAJCSAgICAgICBkZXYtPm5hbWUsIGxvY2FsLT5wYXNzaXZlX3NjYW5fY2hhbm5lbCk7Ci0JCWNoYW5uZWwgPSBsb2NhbC0+cGFzc2l2ZV9zY2FuX2NoYW5uZWw7CisJCWNoYW4gPSBsb2NhbC0+cGFzc2l2ZV9zY2FuX2NoYW5uZWw7CiAJCWxvY2FsLT5wYXNzaXZlX3NjYW5fc3RhdGUgPSBQQVNTSVZFX1NDQU5fV0FJVDsKIAkJbG9jYWwtPnBhc3NpdmVfc2Nhbl90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaIC8gMTA7CiAJfSBlbHNlIHsKLQkJY2hhbm5lbCA9IGxvY2FsLT5jaGFubmVsOworCQljaGFuID0gbG9jYWwtPmNoYW5uZWw7CiAJCWxvY2FsLT5wYXNzaXZlX3NjYW5fc3RhdGUgPSBQQVNTSVZFX1NDQU5fTElTVEVOOwogCQlsb2NhbC0+cGFzc2l2ZV9zY2FuX3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsKIAkJCWxvY2FsLT5wYXNzaXZlX3NjYW5faW50ZXJ2YWwgKiBIWjsKQEAgLTI4ODQsOSArMjg4NCw5IEBACiAKIAlpZiAoaGZhMzg0eF9jbWRfY2FsbGJhY2soZGV2LCBIRkEzODRYX0NNRENPREVfVEVTVCB8CiAJCQkJIChIRkEzODRYX1RFU1RfQ0hBTkdFX0NIQU5ORUwgPDwgOCksCi0JCQkJIGNoYW5uZWwsIE5VTEwsIDApKQorCQkJCSBjaGFuLCBOVUxMLCAwKSkKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogcGFzc2l2ZSBzY2FuIGNoYW5uZWwgc2V0ICVkICIKLQkJICAgICAgICJmYWlsZWRcbiIsIGRldi0+bmFtZSwgY2hhbm5lbCk7CisJCSAgICAgICAiZmFpbGVkXG4iLCBkZXYtPm5hbWUsIGNoYW4pOwogCiAJYWRkX3RpbWVyKCZsb2NhbC0+cGFzc2l2ZV9zY2FuX3RpbWVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKaW5kZXggMjBkMzg3Zi4uYTM4ZTg1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKQEAgLTU5NCw3ICs1OTQsOCBAQAogfQogCiAKLWludCBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGNoYXIgKmhhZGRyKQorc3RhdGljIGludCBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCisJCQkJICAgICB1bnNpZ25lZCBjaGFyICpoYWRkcikKIHsKIAlzdHJ1Y3QgaG9zdGFwX2ludGVyZmFjZSAqaWZhY2UgPSBuZXRkZXZfcHJpdihza2ItPmRldik7CiAJbG9jYWxfaW5mb190ICpsb2NhbCA9IGlmYWNlLT5sb2NhbDsKQEAgLTY4Miw3ICs2ODMsMTMgQEAKIAkJbmV0aWZfZGV2aWNlX2RldGFjaChkZXYpOwogCX0KIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2FuY2VsX3dvcmtfc3luYygmbG9jYWwtPnJlc2V0X3F1ZXVlKTsKKwljYW5jZWxfd29ya19zeW5jKCZsb2NhbC0+c2V0X211bHRpY2FzdF9saXN0X3F1ZXVlKTsKKwljYW5jZWxfd29ya19zeW5jKCZsb2NhbC0+c2V0X3RpbV9xdWV1ZSk7CisjaWZuZGVmIFBSSVNNMl9OT19TVEFUSU9OX01PREVTCisJY2FuY2VsX3dvcmtfc3luYygmbG9jYWwtPmluZm9fcXVldWUpOworI2VuZGlmCisJY2FuY2VsX3dvcmtfc3luYygmbG9jYWwtPmNvbW1zX3F1YWxfdXBkYXRlKTsKIAogCW1vZHVsZV9wdXQobG9jYWwtPmh3X21vZHVsZSk7CiAKQEAgLTg1MSw3ICs4NTgsNiBAQAogCS5yZWJ1aWxkCT0gZXRoX3JlYnVpbGRfaGVhZGVyLAogCS5jYWNoZQkJPSBldGhfaGVhZGVyX2NhY2hlLAogCS5jYWNoZV91cGRhdGUJPSBldGhfaGVhZGVyX2NhY2hlX3VwZGF0ZSwKLQogCS5wYXJzZQkJPSBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlLAogfTsKIEVYUE9SVF9TWU1CT0woaG9zdGFwXzgwMjExX29wcyk7CkBAIC0xMTQ0LDcgKzExNTAsNiBAQAogRVhQT1JUX1NZTUJPTChob3N0YXBfc2V0X2F1dGhfYWxncyk7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9kdW1wX3J4X2hlYWRlcik7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9kdW1wX3R4X2hlYWRlcik7Ci1FWFBPUlRfU1lNQk9MKGhvc3RhcF84MDIxMV9oZWFkZXJfcGFyc2UpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfODAyMTFfZ2V0X2hkcmxlbik7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9nZXRfc3RhdHMpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfc2V0dXBfZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzIyMDAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzIyMDAuYwppbmRleCA3MjkzMzY3Li42ZTcwNDYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MjIwMC5jCkBAIC0xNzUzLDYgKzE3NTMsOCBAQAogCiAJCWlmIChwcml2LT53b3JrcXVldWUpIHsKIAkJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3Rfc2Nhbik7CisJCQljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X2RpcmVjdF9zY2FuKTsKKwkJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3RfcGFzc2l2ZV9zY2FuKTsKIAkJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnNjYW5fZXZlbnQpOwogCQl9CiAJCXF1ZXVlX3dvcmsocHJpdi0+d29ya3F1ZXVlLCAmcHJpdi0+ZG93bik7CkBAIC0yMDA1LDYgKzIwMDcsOCBAQAogCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnByaXYtPndhaXRfY29tbWFuZF9xdWV1ZSk7CiAJCXByaXYtPnN0YXR1cyAmPSB+KFNUQVRVU19BU1NPQ0lBVEVEIHwgU1RBVFVTX0FTU09DSUFUSU5HKTsKIAkJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9zY2FuKTsKKwkJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2Nhbik7CisJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3RfcGFzc2l2ZV9zY2FuKTsKIAkJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9ldmVudCk7CiAJCXNjaGVkdWxlX3dvcmsoJnByaXYtPmxpbmtfZG93bik7CiAJCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsICZwcml2LT5yZl9raWxsLCAyICogSFopOwpAQCAtNDcxMiw2ICs0NzE2LDEyIEBACiAJCQlwcml2LT5zdGF0dXMgJj0gflNUQVRVU19TQ0FOX0ZPUkNFRDsKICNlbmRpZgkJCQkvKiBDT05GSUdfSVBXMjIwMF9NT05JVE9SICovCiAKKwkJCS8qIERvIHF1ZXVlZCBkaXJlY3Qgc2NhbnMgZmlyc3QgKi8KKwkJCWlmIChwcml2LT5zdGF0dXMgJiBTVEFUVVNfRElSRUNUX1NDQU5fUEVORElORykgeworCQkJCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsCisJCQkJCQkgICAmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2NhbiwgMCk7CisJCQl9CisKIAkJCWlmICghKHByaXYtPnN0YXR1cyAmIChTVEFUVVNfQVNTT0NJQVRFRCB8CiAJCQkJCSAgICAgIFNUQVRVU19BU1NPQ0lBVElORyB8CiAJCQkJCSAgICAgIFNUQVRVU19ST0FNSU5HIHwKQEAgLTYyNjcsNyArNjI3Nyw3IEBACiAJfQogfQogCi1zdGF0aWMgaW50IGlwd19yZXF1ZXN0X3NjYW5faGVscGVyKHN0cnVjdCBpcHdfcHJpdiAqcHJpdiwgaW50IHR5cGUpCitzdGF0aWMgaW50IGlwd19yZXF1ZXN0X3NjYW5faGVscGVyKHN0cnVjdCBpcHdfcHJpdiAqcHJpdiwgaW50IHR5cGUsIGludCBkaXJlY3QpCiB7CiAJc3RydWN0IGlwd19zY2FuX3JlcXVlc3RfZXh0IHNjYW47CiAJaW50IGVyciA9IDAsIHNjYW5fdHlwZTsKQEAgLTYyNzgsMjIgKzYyODgsMzEgQEAKIAogCW11dGV4X2xvY2soJnByaXYtPm11dGV4KTsKIAorCWlmIChkaXJlY3QgJiYgKHByaXYtPmRpcmVjdF9zY2FuX3NzaWRfbGVuID09IDApKSB7CisJCUlQV19ERUJVR19IQygiRGlyZWN0IHNjYW4gcmVxdWVzdGVkIGJ1dCBubyBTU0lEIHRvIHNjYW4gZm9yXG4iKTsKKwkJcHJpdi0+c3RhdHVzICY9IH5TVEFUVVNfRElSRUNUX1NDQU5fUEVORElORzsKKwkJZ290byBkb25lOworCX0KKwogCWlmIChwcml2LT5zdGF0dXMgJiBTVEFUVVNfU0NBTk5JTkcpIHsKLQkJSVBXX0RFQlVHX0hDKCJDb25jdXJyZW50IHNjYW4gcmVxdWVzdGVkLiAgSWdub3JpbmcuXG4iKTsKLQkJcHJpdi0+c3RhdHVzIHw9IFNUQVRVU19TQ0FOX1BFTkRJTkc7CisJCUlQV19ERUJVR19IQygiQ29uY3VycmVudCBzY2FuIHJlcXVlc3RlZC4gIFF1ZXVpbmcuXG4iKTsKKwkJcHJpdi0+c3RhdHVzIHw9IGRpcmVjdCA/IFNUQVRVU19ESVJFQ1RfU0NBTl9QRU5ESU5HIDoKKwkJCQkJU1RBVFVTX1NDQU5fUEVORElORzsKIAkJZ290byBkb25lOwogCX0KIAogCWlmICghKHByaXYtPnN0YXR1cyAmIFNUQVRVU19TQ0FOX0ZPUkNFRCkgJiYKIAkgICAgcHJpdi0+c3RhdHVzICYgU1RBVFVTX1NDQU5fQUJPUlRJTkcpIHsKIAkJSVBXX0RFQlVHX0hDKCJTY2FuIHJlcXVlc3Qgd2hpbGUgYWJvcnQgcGVuZGluZy4gIFF1ZXVpbmcuXG4iKTsKLQkJcHJpdi0+c3RhdHVzIHw9IFNUQVRVU19TQ0FOX1BFTkRJTkc7CisJCXByaXYtPnN0YXR1cyB8PSBkaXJlY3QgPyBTVEFUVVNfRElSRUNUX1NDQU5fUEVORElORyA6CisJCQkJCVNUQVRVU19TQ0FOX1BFTkRJTkc7CiAJCWdvdG8gZG9uZTsKIAl9CiAKIAlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX1JGX0tJTExfTUFTSykgewotCQlJUFdfREVCVUdfSEMoIkFib3J0aW5nIHNjYW4gZHVlIHRvIFJGIEtpbGwgYWN0aXZhdGlvblxuIik7Ci0JCXByaXYtPnN0YXR1cyB8PSBTVEFUVVNfU0NBTl9QRU5ESU5HOworCQlJUFdfREVCVUdfSEMoIlF1ZXVpbmcgc2NhbiBkdWUgdG8gUkYgS2lsbCBhY3RpdmF0aW9uXG4iKTsKKwkJcHJpdi0+c3RhdHVzIHw9IGRpcmVjdCA/IFNUQVRVU19ESVJFQ1RfU0NBTl9QRU5ESU5HIDoKKwkJCQkJU1RBVFVTX1NDQU5fUEVORElORzsKIAkJZ290byBkb25lOwogCX0KIApAQCAtNjMyMSw2ICs2MzQwLDcgQEAKIAkJY3B1X3RvX2xlMTYoMjApOwogCiAgIAlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fUEFTU0lWRV9GVUxMX0RXRUxMX1NDQU5dID0gY3B1X3RvX2xlMTYoMTIwKTsKKwlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0RJUkVDVF9TQ0FOXSA9IGNwdV90b19sZTE2KDIwKTsKIAogI2lmZGVmIENPTkZJR19JUFcyMjAwX01PTklUT1IKIAlpZiAocHJpdi0+aWVlZS0+aXdfbW9kZSA9PSBJV19NT0RFX01PTklUT1IpIHsKQEAgLTYzNjAsMTMgKzYzODAsMjMgQEAKIAkJCWNwdV90b19sZTE2KDIwMDApOwogCX0gZWxzZSB7CiAjZW5kaWYJCQkJLyogQ09ORklHX0lQVzIyMDBfTU9OSVRPUiAqLwotCQkvKiBJZiB3ZSBhcmUgcm9hbWluZywgdGhlbiBtYWtlIHRoaXMgYSBkaXJlY3RlZCBzY2FuIGZvciB0aGUKLQkJICogY3VycmVudCBuZXR3b3JrLiAgT3RoZXJ3aXNlLCBlbnN1cmUgdGhhdCBldmVyeSBvdGhlciBzY2FuCi0JCSAqIGlzIGEgZmFzdCBjaGFubmVsIGhvcCBzY2FuICovCi0JCWlmICgocHJpdi0+c3RhdHVzICYgU1RBVFVTX1JPQU1JTkcpCi0JCSAgICB8fCAoIShwcml2LT5zdGF0dXMgJiBTVEFUVVNfQVNTT0NJQVRFRCkKLQkJCSYmIChwcml2LT5jb25maWcgJiBDRkdfU1RBVElDX0VTU0lEKQotCQkJJiYgKGxlMzJfdG9fY3B1KHNjYW4uZnVsbF9zY2FuX2luZGV4KSAlIDIpKSkgeworCQkvKiBIb25vciBkaXJlY3Qgc2NhbnMgZmlyc3QsIG90aGVyd2lzZSBpZiB3ZSBhcmUgcm9hbWluZyBtYWtlCisJCSAqIHRoaXMgYSBkaXJlY3Qgc2NhbiBmb3IgdGhlIGN1cnJlbnQgbmV0d29yay4gIEZpbmFsbHksCisJCSAqIGVuc3VyZSB0aGF0IGV2ZXJ5IG90aGVyIHNjYW4gaXMgYSBmYXN0IGNoYW5uZWwgaG9wIHNjYW4gKi8KKwkJaWYgKGRpcmVjdCkgeworCQkJZXJyID0gaXB3X3NlbmRfc3NpZChwcml2LCBwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkLAorCQkJICAgICAgICAgICAgICAgICAgICBwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkX2xlbik7CisJCQlpZiAoZXJyKSB7CisJCQkJSVBXX0RFQlVHX0hDKCJBdHRlbXB0IHRvIHNlbmQgU1NJRCBjb21tYW5kICAiCisJCQkJCSAgICAgImZhaWxlZFxuIik7CisJCQkJZ290byBkb25lOworCQkJfQorCisJCQlzY2FuX3R5cGUgPSBJUFdfU0NBTl9BQ1RJVkVfQlJPQURDQVNUX0FORF9ESVJFQ1RfU0NBTjsKKwkJfSBlbHNlIGlmICgocHJpdi0+c3RhdHVzICYgU1RBVFVTX1JPQU1JTkcpCisJCQkgICB8fCAoIShwcml2LT5zdGF0dXMgJiBTVEFUVVNfQVNTT0NJQVRFRCkKKwkJCSAgICAgICAmJiAocHJpdi0+Y29uZmlnICYgQ0ZHX1NUQVRJQ19FU1NJRCkKKwkJCSAgICAgICAmJiAobGUzMl90b19jcHUoc2Nhbi5mdWxsX3NjYW5faW5kZXgpICUgMikpKSB7CiAJCQllcnIgPSBpcHdfc2VuZF9zc2lkKHByaXYsIHByaXYtPmVzc2lkLCBwcml2LT5lc3NpZF9sZW4pOwogCQkJaWYgKGVycikgewogCQkJCUlQV19ERUJVR19IQygiQXR0ZW1wdCB0byBzZW5kIFNTSUQgY29tbWFuZCAiCkBAIC02MzkxLDcgKzY0MjEsMTIgQEAKIAl9CiAKIAlwcml2LT5zdGF0dXMgfD0gU1RBVFVTX1NDQU5OSU5HOwotCXByaXYtPnN0YXR1cyAmPSB+U1RBVFVTX1NDQU5fUEVORElORzsKKwlpZiAoZGlyZWN0KSB7CisJCXByaXYtPnN0YXR1cyAmPSB+U1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkc7CisJCXByaXYtPmRpcmVjdF9zY2FuX3NzaWRfbGVuID0gMDsKKwl9IGVsc2UKKwkJcHJpdi0+c3RhdHVzICY9IH5TVEFUVVNfU0NBTl9QRU5ESU5HOworCiAJcXVldWVfZGVsYXllZF93b3JrKHByaXYtPndvcmtxdWV1ZSwgJnByaXYtPnNjYW5fY2hlY2ssCiAJCQkgICBJUFdfU0NBTl9DSEVDS19XQVRDSERPRyk7CiBkb25lOgpAQCAtNjQwMiwxNSArNjQzNywyMiBAQAogc3RhdGljIHZvaWQgaXB3X3JlcXVlc3RfcGFzc2l2ZV9zY2FuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgaXB3X3ByaXYgKnByaXYgPQotCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwd19wcml2LCByZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7Ci0gIAlpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihwcml2LCBJV19TQ0FOX1RZUEVfUEFTU0lWRSk7CisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXB3X3ByaXYsIHJlcXVlc3RfcGFzc2l2ZV9zY2FuLndvcmspOworCWlwd19yZXF1ZXN0X3NjYW5faGVscGVyKHByaXYsIElXX1NDQU5fVFlQRV9QQVNTSVZFLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgaXB3X3JlcXVlc3Rfc2NhbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGlwd19wcml2ICpwcml2ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcHdfcHJpdiwgcmVxdWVzdF9zY2FuLndvcmspOwotCWlwd19yZXF1ZXN0X3NjYW5faGVscGVyKHByaXYsIElXX1NDQU5fVFlQRV9BQ1RJVkUpOworCWlwd19yZXF1ZXN0X3NjYW5faGVscGVyKHByaXYsIElXX1NDQU5fVFlQRV9BQ1RJVkUsIDApOworfQorCitzdGF0aWMgdm9pZCBpcHdfcmVxdWVzdF9kaXJlY3Rfc2NhbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGlwd19wcml2ICpwcml2ID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcHdfcHJpdiwgcmVxdWVzdF9kaXJlY3Rfc2Nhbi53b3JrKTsKKwlpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihwcml2LCBJV19TQ0FOX1RZUEVfQUNUSVZFLCAxKTsKIH0KIAogc3RhdGljIHZvaWQgaXB3X2JnX2Fib3J0X3NjYW4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpAQCAtOTQ3Nyw5OSArOTUxOSwzOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGlwd19yZXF1ZXN0X2RpcmVjdF9zY2FuKHN0cnVjdCBpcHdfcHJpdiAqcHJpdiwgY2hhciAqZXNzaWQsCi0JCQkJICAgaW50IGVzc2lkX2xlbikKLXsKLQlzdHJ1Y3QgaXB3X3NjYW5fcmVxdWVzdF9leHQgc2NhbjsKLQlpbnQgZXJyID0gMCwgc2Nhbl90eXBlOwotCi0JaWYgKCEocHJpdi0+c3RhdHVzICYgU1RBVFVTX0lOSVQpIHx8Ci0JICAgIChwcml2LT5zdGF0dXMgJiBTVEFUVVNfRVhJVF9QRU5ESU5HKSkKLQkJcmV0dXJuIDA7Ci0KLQltdXRleF9sb2NrKCZwcml2LT5tdXRleCk7Ci0KLQlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX1JGX0tJTExfTUFTSykgewotCQlJUFdfREVCVUdfSEMoIkFib3J0aW5nIHNjYW4gZHVlIHRvIFJGIGtpbGwgYWN0aXZhdGlvblxuIik7Ci0JCXByaXYtPnN0YXR1cyB8PSBTVEFUVVNfU0NBTl9QRU5ESU5HOwotCQlnb3RvIGRvbmU7Ci0JfQotCi0JSVBXX0RFQlVHX0hDKCJzdGFydGluZyByZXF1ZXN0IGRpcmVjdCBzY2FuIVxuIik7Ci0KLQlpZiAocHJpdi0+c3RhdHVzICYgKFNUQVRVU19TQ0FOTklORyB8IFNUQVRVU19TQ0FOX0FCT1JUSU5HKSkgewotCQkvKiBXZSBzaG91bGQgbm90IHNsZWVwIGhlcmU7IG90aGVyd2lzZSB3ZSB3aWxsIGJsb2NrIG1vc3QKLQkJICogb2YgdGhlIHN5c3RlbSAoZm9yIGluc3RhbmNlLCB3ZSBob2xkIHJ0bmxfbG9jayB3aGVuIHdlCi0JCSAqIGdldCBoZXJlKS4KLQkJICovCi0JCWVyciA9IC1FQUdBSU47Ci0JCWdvdG8gZG9uZTsKLQl9Ci0JbWVtc2V0KCZzY2FuLCAwLCBzaXplb2Yoc2NhbikpOwotCi0JaWYgKHByaXYtPmNvbmZpZyAmIENGR19TUEVFRF9TQ0FOKQotCQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9TQ0FOXSA9Ci0JCSAgICBjcHVfdG9fbGUxNigzMCk7Ci0JZWxzZQotCQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9TQ0FOXSA9Ci0JCSAgICBjcHVfdG9fbGUxNigyMCk7Ci0KLQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9BTkRfRElSRUNUX1NDQU5dID0KLQkgICAgY3B1X3RvX2xlMTYoMjApOwotCXNjYW4uZHdlbGxfdGltZVtJUFdfU0NBTl9QQVNTSVZFX0ZVTExfRFdFTExfU0NBTl0gPSBjcHVfdG9fbGUxNigxMjApOwotCXNjYW4uZHdlbGxfdGltZVtJUFdfU0NBTl9BQ1RJVkVfRElSRUNUX1NDQU5dID0gY3B1X3RvX2xlMTYoMjApOwotCi0Jc2Nhbi5mdWxsX3NjYW5faW5kZXggPSBjcHVfdG9fbGUzMihpZWVlODAyMTFfZ2V0X3NjYW5zKHByaXYtPmllZWUpKTsKLQotCWVyciA9IGlwd19zZW5kX3NzaWQocHJpdiwgZXNzaWQsIGVzc2lkX2xlbik7Ci0JaWYgKGVycikgewotCQlJUFdfREVCVUdfSEMoIkF0dGVtcHQgdG8gc2VuZCBTU0lEIGNvbW1hbmQgZmFpbGVkXG4iKTsKLQkJZ290byBkb25lOwotCX0KLQlzY2FuX3R5cGUgPSBJUFdfU0NBTl9BQ1RJVkVfQlJPQURDQVNUX0FORF9ESVJFQ1RfU0NBTjsKLQotCWlwd19hZGRfc2Nhbl9jaGFubmVscyhwcml2LCAmc2Nhbiwgc2Nhbl90eXBlKTsKLQotCWVyciA9IGlwd19zZW5kX3NjYW5fcmVxdWVzdF9leHQocHJpdiwgJnNjYW4pOwotCWlmIChlcnIpIHsKLQkJSVBXX0RFQlVHX0hDKCJTZW5kaW5nIHNjYW4gY29tbWFuZCBmYWlsZWQ6ICUwOFhcbiIsIGVycik7Ci0JCWdvdG8gZG9uZTsKLQl9Ci0KLQlwcml2LT5zdGF0dXMgfD0gU1RBVFVTX1NDQU5OSU5HOwotCi0gICAgICBkb25lOgotCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOwotCXJldHVybiBlcnI7Ci19Ci0KIHN0YXRpYyBpbnQgaXB3X3d4X3NldF9zY2FuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3QgaXdfcmVxdWVzdF9pbmZvICppbmZvLAogCQkJICAgdW5pb24gaXdyZXFfZGF0YSAqd3JxdSwgY2hhciAqZXh0cmEpCiB7CiAJc3RydWN0IGlwd19wcml2ICpwcml2ID0gaWVlZTgwMjExX3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXdfc2Nhbl9yZXEgKnJlcSA9IChzdHJ1Y3QgaXdfc2Nhbl9yZXEgKilleHRyYTsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrID0gTlVMTDsKIAogCW11dGV4X2xvY2soJnByaXYtPm11dGV4KTsKKwogCXByaXYtPnVzZXJfcmVxdWVzdGVkX3NjYW4gPSAxOwotCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOwogCiAJaWYgKHdycXUtPmRhdGEubGVuZ3RoID09IHNpemVvZihzdHJ1Y3QgaXdfc2Nhbl9yZXEpKSB7CiAJCWlmICh3cnF1LT5kYXRhLmZsYWdzICYgSVdfU0NBTl9USElTX0VTU0lEKSB7Ci0JCQlpcHdfcmVxdWVzdF9kaXJlY3Rfc2Nhbihwcml2LCByZXEtPmVzc2lkLAotCQkJCQkJcmVxLT5lc3NpZF9sZW4pOwotCQkJcmV0dXJuIDA7CisJCQlpbnQgbGVuID0gbWluKChpbnQpcmVxLT5lc3NpZF9sZW4sCisJCQkgICAgICAgICAgICAgIChpbnQpc2l6ZW9mKHByaXYtPmRpcmVjdF9zY2FuX3NzaWQpKTsKKwkJCW1lbWNweShwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkLCByZXEtPmVzc2lkLCBsZW4pOworCQkJcHJpdi0+ZGlyZWN0X3NjYW5fc3NpZF9sZW4gPSBsZW47CisJCQl3b3JrID0gJnByaXYtPnJlcXVlc3RfZGlyZWN0X3NjYW47CisJCX0gZWxzZSBpZiAocmVxLT5zY2FuX3R5cGUgPT0gSVdfU0NBTl9UWVBFX1BBU1NJVkUpIHsKKwkJCXdvcmsgPSAmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW47CiAJCX0KLQkJaWYgKHJlcS0+c2Nhbl90eXBlID09IElXX1NDQU5fVFlQRV9QQVNTSVZFKSB7Ci0JCQlxdWV1ZV93b3JrKHByaXYtPndvcmtxdWV1ZSwKLQkJCQkgICAmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4pOwotCQkJcmV0dXJuIDA7Ci0JCX0KKwl9IGVsc2UgeworCQkvKiBOb3JtYWwgYWN0aXZlIGJyb2FkY2FzdCBzY2FuICovCisJCXdvcmsgPSAmcHJpdi0+cmVxdWVzdF9zY2FuOwogCX0KIAorCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOworCiAJSVBXX0RFQlVHX1dYKCJTdGFydCBzY2FuXG4iKTsKIAotCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsICZwcml2LT5yZXF1ZXN0X3NjYW4sIDApOworCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsIHdvcmssIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDczMSw2ICsxMDcxMiw4IEBACiAJfQogCiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X2RpcmVjdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9ldmVudCk7CiAJaXB3X3Jlc2V0X3N0YXRzKHByaXYpOwogCS8qIEVuc3VyZSB0aGUgcmF0ZSBpcyB1cGRhdGVkIGltbWVkaWF0ZWx5ICovCkBAIC0xMDc2MSw2ICsxMDc0NCw4IEBACiAKIAkvKiBDYW5jZWwgYW55IHF1ZXVlZCB3b3JrIC4uLiAqLwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3Rfc2Nhbik7CisJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2Nhbik7CisJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4pOwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPmFkaG9jX2NoZWNrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5nYXRoZXJfc3RhdHMpOwogCkBAIC0xMDgwMCw4ICsxMDc4NSw5IEBACiAJSU5JVF9XT1JLKCZwcml2LT51cCwgaXB3X2JnX3VwKTsKIAlJTklUX1dPUksoJnByaXYtPmRvd24sIGlwd19iZ19kb3duKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cmVxdWVzdF9zY2FuLCBpcHdfcmVxdWVzdF9zY2FuKTsKKwlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2NhbiwgaXB3X3JlcXVlc3RfZGlyZWN0X3NjYW4pOworCUlOSVRfREVMQVlFRF9XT1JLKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2NhbiwgaXB3X3JlcXVlc3RfcGFzc2l2ZV9zY2FuKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+c2Nhbl9ldmVudCwgaXB3X3NjYW5fZXZlbnQpOwotCUlOSVRfV09SSygmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4sIGlwd19yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJSU5JVF9ERUxBWUVEX1dPUksoJnByaXYtPmdhdGhlcl9zdGF0cywgaXB3X2JnX2dhdGhlcl9zdGF0cyk7CiAJSU5JVF9XT1JLKCZwcml2LT5hYm9ydF9zY2FuLCBpcHdfYmdfYWJvcnRfc2Nhbik7CiAJSU5JVF9XT1JLKCZwcml2LT5yb2FtLCBpcHdfYmdfcm9hbSk7CkBAIC0xMTgzNSw2ICsxMTgyMSw4IEBACiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+YWRob2NfY2hlY2spOwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPmdhdGhlcl9zdGF0cyk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X2RpcmVjdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9ldmVudCk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmZfa2lsbCk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9jaGVjayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmgKaW5kZXggY2QzMjk1Yi4uZDRhYjI4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MjIwMC5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzIyMDAuaApAQCAtMTAzNyw2ICsxMDM3LDcgQEAKICNkZWZpbmUgU1RBVFVTX0RJU0FTU09DX1BFTkRJTkcgKDE8PDEyKQogI2RlZmluZSBTVEFUVVNfU1RBVEVfUEVORElORyAgICAoMTw8MTMpCiAKKyNkZWZpbmUgU1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkcgKDE8PDE5KQogI2RlZmluZSBTVEFUVVNfU0NBTl9QRU5ESU5HICAgICAoMTw8MjApCiAjZGVmaW5lIFNUQVRVU19TQ0FOTklORyAgICAgICAgICgxPDwyMSkKICNkZWZpbmUgU1RBVFVTX1NDQU5fQUJPUlRJTkcgICAgKDE8PDIyKQpAQCAtMTI5Miw2ICsxMjkzLDggQEAKIAlzdHJ1Y3QgaXdfcHVibGljX2RhdGEgd2lyZWxlc3NfZGF0YTsKIAogCWludCB1c2VyX3JlcXVlc3RlZF9zY2FuOworCXU4IGRpcmVjdF9zY2FuX3NzaWRbSVdfRVNTSURfTUFYX1NJWkVdOworCXU4IGRpcmVjdF9zY2FuX3NzaWRfbGVuOwogCiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxdWV1ZTsKIApAQCAtMTMwMSw4ICsxMzA0LDkgQEAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgc3lzdGVtX2NvbmZpZzsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcnhfcmVwbGVuaXNoOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVxdWVzdF9zY2FuOworCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVxdWVzdF9kaXJlY3Rfc2NhbjsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlcXVlc3RfcGFzc2l2ZV9zY2FuOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgc2Nhbl9ldmVudDsKLSAgCXN0cnVjdCB3b3JrX3N0cnVjdCByZXF1ZXN0X3Bhc3NpdmVfc2NhbjsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgYWRhcHRlcl9yZXN0YXJ0OwogCXN0cnVjdCBkZWxheWVkX3dvcmsgcmZfa2lsbDsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LWxlZC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMzk0NS1sZWQuYwppbmRleCBkMjAwZDA4Li44YjE1MjhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LWxlZC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUtbGVkLmMKQEAgLTIyOSwxNCArMjI5LDE1IEBACiAJbGVkLT5sZWRfZGV2LmJyaWdodG5lc3Nfc2V0ID0gaXdsMzk0NV9sZWRfYnJpZ2h0bmVzc19zZXQ7CiAJbGVkLT5sZWRfZGV2LmRlZmF1bHRfdHJpZ2dlciA9IHRyaWdnZXI7CiAKKwlsZWQtPnByaXYgPSBwcml2OworCWxlZC0+dHlwZSA9IHR5cGU7CisKIAlyZXQgPSBsZWRfY2xhc3NkZXZfcmVnaXN0ZXIoZGV2aWNlLCAmbGVkLT5sZWRfZGV2KTsKIAlpZiAocmV0KSB7CiAJCUlXTF9FUlJPUigiRXJyb3I6IGZhaWxlZCB0byByZWdpc3RlciBsZWQgaGFuZGxlci5cbiIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCWxlZC0+cHJpdiA9IHByaXY7Ci0JbGVkLT50eXBlID0gdHlwZTsKIAlsZWQtPnJlZ2lzdGVyZWQgPSAxOwogCiAJaWYgKHNldF9sZWQgJiYgbGVkLT5sZWRfb24pCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LmMKaW5kZXggNjJhM2Q4Zi4uNTVhYzg1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMzk0NS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUuYwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAKIAlpZiAocHJpbnRfc3VtbWFyeSkgewogCQljaGFyICp0aXRsZTsKLQkJdTMyIHJhdGU7CisJCWludCByYXRlOwogCiAJCWlmIChodW5kcmVkKQogCQkJdGl0bGUgPSAiMTAwRnJhbWVzIjsKQEAgLTQ4Nyw3ICs0ODcsNyBAQAogCQkgKiAgICBidXQgeW91IGNhbiBoYWNrIGl0IHRvIHNob3cgbW9yZSwgaWYgeW91J2QgbGlrZSB0by4gKi8KIAkJaWYgKGRhdGFmcmFtZSkKIAkJCUlXTF9ERUJVR19SWCgiJXM6IG1oZD0weCUwNHgsIGRzdD0weCUwMngsICIKLQkJCQkgICAgICJsZW49JXUsIHJzc2k9JWQsIGNobmw9JWQsIHJhdGU9JXUsIFxuIiwKKwkJCQkgICAgICJsZW49JXUsIHJzc2k9JWQsIGNobmw9JWQsIHJhdGU9JWQsIFxuIiwKIAkJCQkgICAgIHRpdGxlLCBmYywgaGVhZGVyLT5hZGRyMVs1XSwKIAkJCQkgICAgIGxlbmd0aCwgcnNzaSwgY2hhbm5lbCwgcmF0ZSk7CiAJCWVsc2UgewpAQCAtNTg4LDggKzU4OCwxMiBAQAogCiAJaWYgKHJhdGUgPT0gLTEpCiAJCWl3bDM5NDVfcnQtPnJ0X3JhdGUgPSAwOwotCWVsc2UKKwllbHNlIHsKKwkJaWYgKHN0YXRzLT5iYW5kID09IElFRUU4MDIxMV9CQU5EXzVHSFopCisJCQlyYXRlICs9IElXTF9GSVJTVF9PRkRNX1JBVEU7CisKIAkJaXdsMzk0NV9ydC0+cnRfcmF0ZSA9IGl3bDM5NDVfcmF0ZXNbcmF0ZV0uaWVlZTsKKwl9CiAKIAkvKiBhbnRlbm5hIG51bWJlciAqLwogCWFudGVubmEgPSBwaHlfZmxhZ3NfaHcgJiBSWF9SRVNfUEhZX0ZMQUdTX0FOVEVOTkFfTVNLOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS5jCmluZGV4IGJmMTllYjguLmRlMzMwYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTQ5NjUuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC00OTY1LmMKQEAgLTM1MjgsOCArMzUyOCwxMiBAQAogCiAJaWYgKHJhdGUgPT0gLTEpCiAJCWl3bDQ5NjVfcnQtPnJ0X3JhdGUgPSAwOwotCWVsc2UKKwllbHNlIHsKKwkJaWYgKHN0YXRzLT5iYW5kID09IElFRUU4MDIxMV9CQU5EXzVHSFopCisJCQlyYXRlICs9IElXTF9GSVJTVF9PRkRNX1JBVEU7CisKIAkJaXdsNDk2NV9ydC0+cnRfcmF0ZSA9IGl3bDQ5NjVfcmF0ZXNbcmF0ZV0uaWVlZTsKKwl9CiAKIAkvKgogCSAqICJhbnRlbm5hIG51bWJlciIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDM5NDUtYmFzZS5jCmluZGV4IDEzOTI1YjYuLjYwMjdlMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wzOTQ1LWJhc2UuYwpAQCAtMjIyNyw3ICsyMjI3LDEwIEBACiAJfQogCiAJSVdMX0RFQlVHX0lORk8oIlN0YXJ0aW5nIHNjYW4uLi5cbiIpOwotCXByaXYtPnNjYW5fYmFuZHMgPSAyOworCWlmIChwcml2LT5jZmctPnNrdSAmIElXTF9TS1VfRykKKwkJcHJpdi0+c2Nhbl9iYW5kcyB8PSBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWik7CisJaWYgKHByaXYtPmNmZy0+c2t1ICYgSVdMX1NLVV9BKQorCQlwcml2LT5zY2FuX2JhbmRzIHw9IEJJVChJRUVFODAyMTFfQkFORF81R0haKTsKIAlzZXRfYml0KFNUQVRVU19TQ0FOTklORywgJnByaXYtPnN0YXR1cyk7CiAJcHJpdi0+c2Nhbl9zdGFydCA9IGppZmZpZXM7CiAJcHJpdi0+c2Nhbl9wYXNzX3N0YXJ0ID0gcHJpdi0+c2Nhbl9zdGFydDsKQEAgLTMzNTIsMTMgKzMzNTUsMTggQEAKIAljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5zY2FuX2NoZWNrKTsKIAogCUlXTF9ERUJVR19JTkZPKCJTY2FuIHBhc3Mgb24gJXNHSHogdG9vayAlZG1zXG4iLAotCQkgICAgICAgKHByaXYtPnNjYW5fYmFuZHMgPT0gMikgPyAiMi40IiA6ICI1LjIiLAorCQkgICAgICAgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpID8KKwkJCQkJCQkiMi40IiA6ICI1LjIiLAogCQkgICAgICAgamlmZmllc190b19tc2VjcyhlbGFwc2VkX2ppZmZpZXMKIAkJCQkJKHByaXYtPnNjYW5fcGFzc19zdGFydCwgamlmZmllcykpKTsKIAotCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0Ci0JICogb2YgcGVuZGluZyBiYW5kcyB0byBzY2FuICovCi0JcHJpdi0+c2Nhbl9iYW5kcy0tOworCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcKKwkgKiBiYW5kcyB0byBzY2FuLCBiYW5kIEcgcHJlY2VkZXMgQSBpbiBvcmRlciBvZiBzY2FubmluZworCSAqIGFzIHNlZW4gaW4gaXdsMzk0NV9iZ19yZXF1ZXN0X3NjYW4gKi8KKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyAmPSB+QklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWVsc2UgaWYgKHByaXYtPnNjYW5fYmFuZHMgJiAgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAKIAkvKiBJZiBhIHJlcXVlc3QgdG8gYWJvcnQgd2FzIGdpdmVuLCBvciB0aGUgc2NhbiBkaWQgbm90IHN1Y2NlZWQKIAkgKiB0aGVuIHdlIHJlc2V0IHRoZSBzY2FuIHN0YXRlIG1hY2hpbmUgYW5kIHRlcm1pbmF0ZSwKQEAgLTQ5NzIsNyArNDk4MCw3IEBACiAKIAkJY2hfaW5mbyA9IGl3bDM5NDVfZ2V0X2NoYW5uZWxfaW5mbyhwcml2LCBiYW5kLCBzY2FuX2NoLT5jaGFubmVsKTsKIAkJaWYgKCFpc19jaGFubmVsX3ZhbGlkKGNoX2luZm8pKSB7Ci0JCQlJV0xfREVCVUdfU0NBTigiQ2hhbm5lbCAlZCBpcyBJTlZBTElEIGZvciB0aGlzIFNLVS5cbiIsCisJCQlJV0xfREVCVUdfU0NBTigiQ2hhbm5lbCAlZCBpcyBJTlZBTElEIGZvciB0aGlzIGJhbmQuXG4iLAogCQkJCSAgICAgICBzY2FuX2NoLT5jaGFubmVsKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MzE1LDIxICs2MzIzLDE2IEBACiAKIAkvKiBmbGFncyArIHJhdGUgc2VsZWN0aW9uICovCiAKLQlzd2l0Y2ggKHByaXYtPnNjYW5fYmFuZHMpIHsKLQljYXNlIDI6CisJaWYgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpIHsKIAkJc2Nhbi0+ZmxhZ3MgPSBSWE9OX0ZMR19CQU5EXzI0R19NU0sgfCBSWE9OX0ZMR19BVVRPX0RFVEVDVF9NU0s7CiAJCXNjYW4tPnR4X2NtZC5yYXRlID0gSVdMX1JBVEVfMU1fUExDUDsKIAkJc2Nhbi0+Z29vZF9DUkNfdGggPSAwOwogCQliYW5kID0gSUVFRTgwMjExX0JBTkRfMkdIWjsKLQkJYnJlYWs7Ci0KLQljYXNlIDE6CisJfSBlbHNlIGlmIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKSB7CiAJCXNjYW4tPnR4X2NtZC5yYXRlID0gSVdMX1JBVEVfNk1fUExDUDsKIAkJc2Nhbi0+Z29vZF9DUkNfdGggPSBJV0xfR09PRF9DUkNfVEg7CiAJCWJhbmQgPSBJRUVFODAyMTFfQkFORF81R0haOwotCQlicmVhazsKLQotCWRlZmF1bHQ6CisJfSBlbHNlIHsKIAkJSVdMX1dBUk5JTkcoIkludmFsaWQgc2NhbiBiYW5kIGNvdW50XG4iKTsKIAkJZ290byBkb25lOwogCX0KQEAgLTY2ODQsNyArNjY4Nyw4IEBACiAKIAlpZiAocHJpdi0+aXdfbW9kZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9NTlRSKSB7CiAJCUlXTF9ERUJVR19NQUM4MDIxMSgibGVhdmUgLSBtb25pdG9yXG4iKTsKLQkJcmV0dXJuIC0xOworCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOworCQlyZXR1cm4gMDsKIAl9CiAKIAlJV0xfREVCVUdfVFgoImRldi0+eG1pdCglZCBieXRlcykgYXQgcmF0ZSAweCUwMnhcbiIsIHNrYi0+bGVuLApAQCAtNjc3MCw3ICs2Nzc0LDcgQEAKIAljaF9pbmZvID0gaXdsMzk0NV9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGNvbmYtPmNoYW5uZWwtPmJhbmQsCiAJCQkJCSAgIGNvbmYtPmNoYW5uZWwtPmh3X3ZhbHVlKTsKIAlpZiAoIWlzX2NoYW5uZWxfdmFsaWQoY2hfaW5mbykpIHsKLQkJSVdMX0RFQlVHX1NDQU4oIkNoYW5uZWwgJWQgWyVkXSBpcyBJTlZBTElEIGZvciB0aGlzIFNLVS5cbiIsCisJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIFslZF0gaXMgSU5WQUxJRCBmb3IgdGhpcyBiYW5kLlxuIiwKIAkJCSAgICAgICBjb25mLT5jaGFubmVsLT5od192YWx1ZSwgY29uZi0+Y2hhbm5lbC0+YmFuZCk7CiAJCUlXTF9ERUJVR19NQUM4MDIxMSgibGVhdmUgLSBpbnZhbGlkIGNoYW5uZWxcbiIpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDQ5NjUtYmFzZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2w0OTY1LWJhc2UuYwppbmRleCA4ODNiNDJmLi4wYmQ1NWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDQ5NjUtYmFzZS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsNDk2NS1iYXNlLmMKQEAgLTE3NzQsNyArMTc3NCwxMCBAQAogCX0KIAogCUlXTF9ERUJVR19JTkZPKCJTdGFydGluZyBzY2FuLi4uXG4iKTsKLQlwcml2LT5zY2FuX2JhbmRzID0gMjsKKwlpZiAocHJpdi0+Y2ZnLT5za3UgJiBJV0xfU0tVX0cpCisJCXByaXYtPnNjYW5fYmFuZHMgfD0gQklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWlmIChwcml2LT5jZmctPnNrdSAmIElXTF9TS1VfQSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyB8PSBCSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAJc2V0X2JpdChTVEFUVVNfU0NBTk5JTkcsICZwcml2LT5zdGF0dXMpOwogCXByaXYtPnNjYW5fc3RhcnQgPSBqaWZmaWVzOwogCXByaXYtPnNjYW5fcGFzc19zdGFydCA9IHByaXYtPnNjYW5fc3RhcnQ7CkBAIC0zMDIzLDggKzMwMjYsOSBAQAogCiAJSVdMX0RFQlVHX1RYX1JFUExZKCJUeCBxdWV1ZSByZWNsYWltICVkXG4iLCBpbmRleCk7CiAJaWYgKGluZGV4ICE9IC0xKSB7Ci0JCWludCBmcmVlZCA9IGl3bDQ5NjVfdHhfcXVldWVfcmVjbGFpbShwcml2LCB0eHFfaWQsIGluZGV4KTsKICNpZmRlZiBDT05GSUdfSVdMNDk2NV9IVAorCQlpbnQgZnJlZWQgPSBpd2w0OTY1X3R4X3F1ZXVlX3JlY2xhaW0ocHJpdiwgdHhxX2lkLCBpbmRleCk7CisKIAkJaWYgKHRpZCAhPSBNQVhfVElEX0NPVU5UKQogCQkJcHJpdi0+c3RhdGlvbnNbc3RhX2lkXS50aWRbdGlkXS50ZmRzX2luX3F1ZXVlIC09IGZyZWVkOwogCQlpZiAoaXdsNDk2NV9xdWV1ZV9zcGFjZSgmdHhxLT5xKSA+IHR4cS0+cS5sb3dfbWFyayAmJgpAQCAtMzI3NiwxMyArMzI4MCwxOCBAQAogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnNjYW5fY2hlY2spOwogCiAJSVdMX0RFQlVHX0lORk8oIlNjYW4gcGFzcyBvbiAlc0dIeiB0b29rICVkbXNcbiIsCi0JCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyA9PSAyKSA/ICIyLjQiIDogIjUuMiIsCisJCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkgPworCQkJCQkJIjIuNCIgOiAiNS4yIiwKIAkJICAgICAgIGppZmZpZXNfdG9fbXNlY3MoZWxhcHNlZF9qaWZmaWVzCiAJCQkJCShwcml2LT5zY2FuX3Bhc3Nfc3RhcnQsIGppZmZpZXMpKSk7CiAKLQkvKiBSZW1vdmUgdGhpcyBzY2FubmVkIGJhbmQgZnJvbSB0aGUgbGlzdAotCSAqIG9mIHBlbmRpbmcgYmFuZHMgdG8gc2NhbiAqLwotCXByaXYtPnNjYW5fYmFuZHMtLTsKKwkvKiBSZW1vdmUgdGhpcyBzY2FubmVkIGJhbmQgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nCisJICogYmFuZHMgdG8gc2NhbiwgYmFuZCBHIHByZWNlZGVzIEEgaW4gb3JkZXIgb2Ygc2Nhbm5pbmcKKwkgKiBhcyBzZWVuIGluIGl3bF9iZ19yZXF1ZXN0X3NjYW4gKi8KKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyAmPSB+QklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWVsc2UgaWYgKHByaXYtPnNjYW5fYmFuZHMgJiAgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAKIAkvKiBJZiBhIHJlcXVlc3QgdG8gYWJvcnQgd2FzIGdpdmVuLCBvciB0aGUgc2NhbiBkaWQgbm90IHN1Y2NlZWQKIAkgKiB0aGVuIHdlIHJlc2V0IHRoZSBzY2FuIHN0YXRlIG1hY2hpbmUgYW5kIHRlcm1pbmF0ZSwKQEAgLTMyOTIsNyArMzMwMSw3IEBACiAJCWNsZWFyX2JpdChTVEFUVVNfU0NBTl9BQk9SVElORywgJnByaXYtPnN0YXR1cyk7CiAJfSBlbHNlIHsKIAkJLyogSWYgdGhlcmUgYXJlIG1vcmUgYmFuZHMgb24gdGhpcyBzY2FuIHBhc3MgcmVzY2hlZHVsZSAqLwotCQlpZiAocHJpdi0+c2Nhbl9iYW5kcyA+IDApCisJCWlmIChwcml2LT5zY2FuX2JhbmRzKQogCQkJZ290byByZXNjaGVkdWxlOwogCX0KIApAQCAtNDYzNSwxMCArNDY0NCw5IEBACiAKIAkJc2Nhbl9jaC0+Y2hhbm5lbCA9IGllZWU4MDIxMV9mcmVxdWVuY3lfdG9fY2hhbm5lbChjaGFubmVsc1tpXS5jZW50ZXJfZnJlcSk7CiAKLQkJY2hfaW5mbyA9IGl3bF9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGJhbmQsCi0JCQkJCSBzY2FuX2NoLT5jaGFubmVsKTsKKwkJY2hfaW5mbyA9IGl3bF9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGJhbmQsIHNjYW5fY2gtPmNoYW5uZWwpOwogCQlpZiAoIWlzX2NoYW5uZWxfdmFsaWQoY2hfaW5mbykpIHsKLQkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgU0tVLlxuIiwKKwkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgYmFuZC5cbiIsCiAJCQkJICAgICAgIHNjYW5fY2gtPmNoYW5uZWwpOwogCQkJY29udGludWU7CiAJCX0KQEAgLTU4MzAsOCArNTgzOCw3IEBACiAJc2Nhbi0+dHhfY21kLnN0b3BfdGltZS5saWZlX3RpbWUgPSBUWF9DTURfTElGRV9USU1FX0lORklOSVRFOwogCiAKLQlzd2l0Y2ggKHByaXYtPnNjYW5fYmFuZHMpIHsKLQljYXNlIDI6CisJaWYgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpIHsKIAkJc2Nhbi0+ZmxhZ3MgPSBSWE9OX0ZMR19CQU5EXzI0R19NU0sgfCBSWE9OX0ZMR19BVVRPX0RFVEVDVF9NU0s7CiAJCXNjYW4tPnR4X2NtZC5yYXRlX25fZmxhZ3MgPQogCQkJCWl3bDQ5NjVfaHdfc2V0X3JhdGVfbl9mbGFncyhJV0xfUkFURV8xTV9QTENQLApAQCAtNTgzOSwxNyArNTg0NiwxMyBAQAogCiAJCXNjYW4tPmdvb2RfQ1JDX3RoID0gMDsKIAkJYmFuZCA9IElFRUU4MDIxMV9CQU5EXzJHSFo7Ci0JCWJyZWFrOwotCi0JY2FzZSAxOgorCX0gZWxzZSBpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF81R0haKSkgewogCQlzY2FuLT50eF9jbWQucmF0ZV9uX2ZsYWdzID0KIAkJCQlpd2w0OTY1X2h3X3NldF9yYXRlX25fZmxhZ3MoSVdMX1JBVEVfNk1fUExDUCwKIAkJCQlSQVRFX01DU19BTlRfQl9NU0spOwogCQlzY2FuLT5nb29kX0NSQ190aCA9IElXTF9HT09EX0NSQ19USDsKIAkJYmFuZCA9IElFRUU4MDIxMV9CQU5EXzVHSFo7Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKKwl9IGVsc2UgewogCQlJV0xfV0FSTklORygiSW52YWxpZCBzY2FuIGJhbmQgY291bnRcbiIpOwogCQlnb3RvIGRvbmU7CiAJfQpAQCAtNjIzNCw3ICs2MjM3LDggQEAKIAogCWlmIChwcml2LT5pd19tb2RlID09IElFRUU4MDIxMV9JRl9UWVBFX01OVFIpIHsKIAkJSVdMX0RFQlVHX01BQzgwMjExKCJsZWF2ZSAtIG1vbml0b3JcbiIpOwotCQlyZXR1cm4gLTE7CisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJCXJldHVybiAwOwogCX0KIAogCUlXTF9ERUJVR19UWCgiZGV2LT54bWl0KCVkIGJ5dGVzKSBhdCByYXRlIDB4JTAyeFxuIiwgc2tiLT5sZW4sCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9jbWQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCmluZGV4IDYzMjhiOTUuLjgxMjRmZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCkBAIC0xODQyLDYgKzE4NDIsOSBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAKKwkvKiBXZSBkb24ndCBnZXQgYSByZXNwb25zZSBvbiB0aGUgc2xlZXAtY29uZmlybWF0aW9uICovCisJcHJpdi0+ZG5sZF9zZW50ID0gRE5MRF9SRVNfUkVDRUlWRUQ7CisKIAkvKiBJZiBub3RoaW5nIHRvIGRvLCBnbyBiYWNrIHRvIHNsZWVwICg/KSAqLwogCWlmICghX19rZmlmb19sZW4ocHJpdi0+ZXZlbnRfZmlmbykgJiYgIXByaXYtPnJlc3BfbGVuW3ByaXYtPnJlc3BfaWR4XSkKIAkJcHJpdi0+cHNzdGF0ZSA9IFBTX1NUQVRFX1NMRUVQOwpAQCAtMTkwNCwxMiArMTkwNywxMiBAQAogCiAJbGJzX2RlYl9lbnRlcihMQlNfREVCX0hPU1QpOwogCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAJaWYgKHByaXYtPmRubGRfc2VudCkgewogCQlhbGxvd2VkID0gMDsKIAkJbGJzX2RlYl9ob3N0KCJkbmxkX3NlbnQgd2FzIHNldFxuIik7CiAJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAJLyogSW4tcHJvZ3Jlc3MgY29tbWFuZD8gKi8KIAlpZiAocHJpdi0+Y3VyX2NtZCkgewogCQlhbGxvd2VkID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX2NzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9jcy5jCmluZGV4IDU0MjgwZTIuLmQwNzViNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX2NzLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfY3MuYwpAQCAtMTIyLDcgKzEyMiw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgaWZfY3Nfd3JpdGUxNl9yZXAoCiAJc3RydWN0IGlmX2NzX2NhcmQgKmNhcmQsCiAJdWludCByZWcsCi0Jdm9pZCAqYnVmLAorCWNvbnN0IHZvaWQgKmJ1ZiwKIAl1bnNpZ25lZCBsb25nIGNvdW50KQogewogCWlmIChkZWJ1Z19vdXRwdXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9zZGlvLmMKaW5kZXggNTFmNjY0Yi4uM2RkNTM3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfc2Rpby5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX3NkaW8uYwpAQCAtMzkyLDcgKzM5Miw3IEBACiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogCXU4ICpjaHVua19idWZmZXI7CiAJdTMyIGNodW5rX3NpemU7Ci0JdTggKmZpcm13YXJlOworCWNvbnN0IHU4ICpmaXJtd2FyZTsKIAlzaXplX3Qgc2l6ZTsKIAogCWxic19kZWJfZW50ZXIoTEJTX0RFQl9TRElPKTsKQEAgLTUwOCw3ICs1MDgsNyBAQAogCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAl1OCAqY2h1bmtfYnVmZmVyOwogCXUzMiBjaHVua19zaXplOwotCXU4ICpmaXJtd2FyZTsKKwljb25zdCB1OCAqZmlybXdhcmU7CiAJc2l6ZV90IHNpemUsIHJlcV9zaXplOwogCiAJbGJzX2RlYl9lbnRlcihMQlNfREVCX1NESU8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYwppbmRleCA4MDMyZGY3Li40ZGNkNDA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYwpAQCAtMjkzLDcgKzI5Myw3IEBACiBzdGF0aWMgaW50IGlmX3VzYl9zZW5kX2Z3X3BrdChzdHJ1Y3QgaWZfdXNiX2NhcmQgKmNhcmRwKQogewogCXN0cnVjdCBmd2RhdGEgKmZ3ZGF0YSA9IGNhcmRwLT5lcF9vdXRfYnVmOwotCXVpbnQ4X3QgKmZpcm13YXJlID0gY2FyZHAtPmZ3LT5kYXRhOworCWNvbnN0IHVpbnQ4X3QgKmZpcm13YXJlID0gY2FyZHAtPmZ3LT5kYXRhOwogCiAJLyogSWYgd2UgZ290IGEgQ1JDIGZhaWx1cmUgb24gdGhlIGxhc3QgYmxvY2ssIGJhY2sKIAkgICB1cCBhbmQgcmV0cnkgaXQgKi8KQEAgLTc0Niw3ICs3NDYsNyBAQAogICogICAgICAgICBsZW4gICAgICAgICAgICAgICBpbWFnZSBsZW5ndGgKICAqICBAcmV0dXJuICAgICAwIG9yIC0xCiAgKi8KLXN0YXRpYyBpbnQgY2hlY2tfZndmaWxlX2Zvcm1hdCh1aW50OF90ICpkYXRhLCB1aW50MzJfdCB0b3RsZW4pCitzdGF0aWMgaW50IGNoZWNrX2Z3ZmlsZV9mb3JtYXQoY29uc3QgdWludDhfdCAqZGF0YSwgdWludDMyX3QgdG90bGVuKQogewogCXVpbnQzMl90IGJpbmNtZCwgZXhpdDsKIAl1aW50MzJfdCBibGtzaXplLCBvZmZzZXQsIGxlbjsKQEAgLTkyNSw2ICs5MjUsNyBAQAogCS5pZF90YWJsZSA9IGlmX3VzYl90YWJsZSwKIAkuc3VzcGVuZCA9IGlmX3VzYl9zdXNwZW5kLAogCS5yZXN1bWUgPSBpZl91c2JfcmVzdW1lLAorCS5yZXNldF9yZXN1bWUgPSBpZl91c2JfcmVzdW1lLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgaWZfdXNiX2luaXRfbW9kdWxlKHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9tYWluLmMKaW5kZXggZTFmMDY2MC4uYWNmYzRiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL21haW4uYwpAQCAtNzMyLDggKzczMiw4IEBACiAJCWxic19kZWJfdGhyZWFkKCI0OiBjdXJyZW50dHhza2IgJXAsIGRubGRfc2VudCAlZFxuIiwKIAkJICAgICAgIHByaXYtPmN1cnJlbnR0eHNrYiwgcHJpdi0+ZG5sZF9zZW50KTsKIAotCQlzcGluX2xvY2tfaXJxKCZwcml2LT5kcml2ZXJfbG9jayk7CiAJCS8qIFByb2Nlc3MgYW55IHBlbmRpbmcgY29tbWFuZCByZXNwb25zZSAqLworCQlzcGluX2xvY2tfaXJxKCZwcml2LT5kcml2ZXJfbG9jayk7CiAJCXJlc3BfaWR4ID0gcHJpdi0+cmVzcF9pZHg7CiAJCWlmIChwcml2LT5yZXNwX2xlbltyZXNwX2lkeF0pIHsKIAkJCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+ZHJpdmVyX2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvc2Nhbi5jCmluZGV4IGQ0NDhjOTcwLi4zODdkNDg3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvc2Nhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL3NjYW4uYwpAQCAtNTY3LDExICs1NjcsMTEgQEAKIAlwb3MgKz0gODsKIAogCS8qIGJlYWNvbiBpbnRlcnZhbCBpcyAyIGJ5dGVzIGxvbmcgKi8KLQlic3MtPmJlYWNvbnBlcmlvZCA9IGxlMTZfdG9fY3B1cCgodm9pZCAqKSBwb3MpOworCWJzcy0+YmVhY29ucGVyaW9kID0gZ2V0X3VuYWxpZ25lZF9sZTE2KHBvcyk7CiAJcG9zICs9IDI7CiAKIAkvKiBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGlzIDIgYnl0ZXMgbG9uZyAqLwotCWJzcy0+Y2FwYWJpbGl0eSA9IGxlMTZfdG9fY3B1cCgodm9pZCAqKSBwb3MpOworCWJzcy0+Y2FwYWJpbGl0eSA9IGdldF91bmFsaWduZWRfbGUxNihwb3MpOwogCWxic19kZWJfc2NhbigicHJvY2Vzc19ic3M6IGNhcGFiaWxpdGllcyAweCUwNHhcbiIsIGJzcy0+Y2FwYWJpbGl0eSk7CiAJcG9zICs9IDI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYwppbmRleCAxNjEwYTczLi44MTVjMDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9wNTQvcDU0dXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jCkBAIC0zNzYsNyArMzc2LDggQEAKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5ID0gTlVMTDsKIAlpbnQgZXJyLCBhbGVuOwogCXU4IGNhcnJ5ID0gMDsKLQl1OCAqYnVmLCAqdG1wLCAqZGF0YTsKKwl1OCAqYnVmLCAqdG1wOworCWNvbnN0IHU4ICpkYXRhOwogCXVuc2lnbmVkIGludCBsZWZ0LCByZW1haW5zLCBibG9ja19zaXplOwogCXN0cnVjdCB4Ml9oZWFkZXIgKmhkcjsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CkBAIC01MjMsNyArNTI0LDcgQEAKIAl2b2lkICpidWY7CiAJX19sZTMyIHJlZzsKIAl1bnNpZ25lZCBpbnQgcmVtYWlucywgb2Zmc2V0OwotCXU4ICpkYXRhOworCWNvbnN0IHU4ICpkYXRhOwogCiAJYnVmID0ga21hbGxvYyg1MTIsIEdGUF9LRVJORUwpOwogCWlmICghYnVmKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9wcmlzbTU0L2lzbHBjaV9ldGguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCmluZGV4IDc2MmU4NWIuLmU0M2JhZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCkBAIC0yOTAsNyArMjkwLDcgQEAKIAogCQlhdnMtPnZlcnNpb24gPSBjcHVfdG9fYmUzMihQODAyMTFDQVBUVVJFX1ZFUlNJT04pOwogCQlhdnMtPmxlbmd0aCA9IGNwdV90b19iZTMyKHNpemVvZiAoc3RydWN0IGF2c184MDIxMV8xX2hlYWRlcikpOwotCQlhdnMtPm1hY3RpbWUgPSBjcHVfdG9fYmU2NChsZTY0X3RvX2NwdShjbG9jaykpOworCQlhdnMtPm1hY3RpbWUgPSBjcHVfdG9fYmU2NChjbG9jayk7CiAJCWF2cy0+aG9zdHRpbWUgPSBjcHVfdG9fYmU2NChqaWZmaWVzKTsKIAkJYXZzLT5waHl0eXBlID0gY3B1X3RvX2JlMzIoNik7CS8qT0ZETTogNiBmb3IgKGcpLCA4IGZvciAoYSkgKi8KIAkJYXZzLT5jaGFubmVsID0gY3B1X3RvX2JlMzIoY2hhbm5lbF9vZl9mcmVxKGZyZXEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9LY29uZmlnIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL0tjb25maWcKaW5kZXggYWIxMDI5ZS4uMmQ2MTE4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL0tjb25maWcKQEAgLTMyLDEyICszMiwxMyBAQAogY29uZmlnIFJUMlgwMF9MSUJfUkZLSUxMCiAJYm9vbGVhbgogCWRlcGVuZHMgb24gUlQyWDAwX0xJQgorCWRlcGVuZHMgb24gSU5QVVQKIAlzZWxlY3QgUkZLSUxMCiAJc2VsZWN0IElOUFVUX1BPTExERVYKIAogY29uZmlnIFJUMlgwMF9MSUJfTEVEUwogCWJvb2xlYW4KLQlkZXBlbmRzIG9uIFJUMlgwMF9MSUIKKwlkZXBlbmRzIG9uIFJUMlgwMF9MSUIgJiYgTkVXX0xFRFMKIAogY29uZmlnIFJUMjQwMFBDSQogCXRyaXN0YXRlICJSYWxpbmsgcnQyNDAwIHBjaS9wY21jaWEgc3VwcG9ydCIKQEAgLTUxLDcgKzUyLDcgQEAKIAogY29uZmlnIFJUMjQwMFBDSV9SRktJTEwKIAlib29sICJSVDI0MDAgcmZraWxsIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBSVDI0MDBQQ0kKKwlkZXBlbmRzIG9uIFJUMjQwMFBDSSAmJiBJTlBVVAogCXNlbGVjdCBSVDJYMDBfTElCX1JGS0lMTAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBpbnRlZ3JhdGVkIHJ0MjQwMCBkZXZpY2VzIHRoYXQgZmVhdHVyZSBhCkBAIC02MCw3ICs2MSw3IEBACiAKIGNvbmZpZyBSVDI0MDBQQ0lfTEVEUwogCWJvb2wgIlJUMjQwMCBsZWRzIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBSVDI0MDBQQ0kKKwlkZXBlbmRzIG9uIFJUMjQwMFBDSSAmJiBORVdfTEVEUwogCXNlbGVjdCBMRURTX0NMQVNTCiAJc2VsZWN0IFJUMlgwMF9MSUJfTEVEUwogCS0tLWhlbHAtLS0KQEAgLTc4LDcgKzc5LDcgQEAKIAogY29uZmlnIFJUMjUwMFBDSV9SRktJTEwKIAlib29sICJSVDI1MDAgcmZraWxsIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBSVDI1MDBQQ0kKKwlkZXBlbmRzIG9uIFJUMjUwMFBDSSAmJiBJTlBVVAogCXNlbGVjdCBSVDJYMDBfTElCX1JGS0lMTAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBpbnRlZ3JhdGVkIHJ0MjUwMCBkZXZpY2VzIHRoYXQgZmVhdHVyZSBhCkBAIC04Nyw3ICs4OCw3IEBACiAKIGNvbmZpZyBSVDI1MDBQQ0lfTEVEUwogCWJvb2wgIlJUMjUwMCBsZWRzIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBSVDI1MDBQQ0kKKwlkZXBlbmRzIG9uIFJUMjUwMFBDSSAmJiBORVdfTEVEUwogCXNlbGVjdCBMRURTX0NMQVNTCiAJc2VsZWN0IFJUMlgwMF9MSUJfTEVEUwogCS0tLWhlbHAtLS0KQEAgLTEwNyw3ICsxMDgsNyBAQAogCiBjb25maWcgUlQ2MVBDSV9SRktJTEwKIAlib29sICJSVDYxIHJma2lsbCBzdXBwb3J0IgotCWRlcGVuZHMgb24gUlQ2MVBDSQorCWRlcGVuZHMgb24gUlQ2MVBDSSAmJiBJTlBVVAogCXNlbGVjdCBSVDJYMDBfTElCX1JGS0lMTAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBpbnRlZ3JhdGVkIHJ0NjEgZGV2aWNlcyB0aGF0IGZlYXR1cmUgYQpAQCAtMTE2LDcgKzExNyw3IEBACiAKIGNvbmZpZyBSVDYxUENJX0xFRFMKIAlib29sICJSVDYxIGxlZHMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUNjFQQ0kKKwlkZXBlbmRzIG9uIFJUNjFQQ0kgJiYgTkVXX0xFRFMKIAlzZWxlY3QgTEVEU19DTEFTUwogCXNlbGVjdCBSVDJYMDBfTElCX0xFRFMKIAktLS1oZWxwLS0tCkBAIC0xMzMsNyArMTM0LDcgQEAKIAogY29uZmlnIFJUMjUwMFVTQl9MRURTCiAJYm9vbCAiUlQyNTAwIGxlZHMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUMjUwMFVTQgorCWRlcGVuZHMgb24gUlQyNTAwVVNCICYmIE5FV19MRURTCiAJc2VsZWN0IExFRFNfQ0xBU1MKIAlzZWxlY3QgUlQyWDAwX0xJQl9MRURTCiAJLS0taGVscC0tLQpAQCAtMTUyLDcgKzE1Myw3IEBACiAKIGNvbmZpZyBSVDczVVNCX0xFRFMKIAlib29sICJSVDczIGxlZHMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUNzNVU0IKKwlkZXBlbmRzIG9uIFJUNzNVU0IgJiYgTkVXX0xFRFMKIAlzZWxlY3QgTEVEU19DTEFTUwogCXNlbGVjdCBSVDJYMDBfTElCX0xFRFMKIAktLS1oZWxwLS0tCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMKaW5kZXggNTYwYjljNy4uYjM2ZWQxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjQwMHBjaS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYwpAQCAtNzMxLDYgKzczMSwxNyBAQAogCQkJICAgKHJ0MngwMGRldi0+cngtPmRhdGFfc2l6ZSAvIDEyOCkpOwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIENTUjksIHJlZyk7CiAKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIENTUjE0LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVFNGX0NPVU5ULCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVFNGX1NZTkMsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQkNOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVENGUCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RBVElNVywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0JFQUNPTl9HRU4sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9DRlBfQ09VTlRfUFJFTE9BRCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ01fUFJFTE9BRCwgMCk7CisJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgQ1NSMTQsIHJlZyk7CisKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDTlQzLCAweDNmMDgwMDAwKTsKIAogCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgQVJDU1IwLCAmcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDBwY2kuYwppbmRleCBhNWVkNTRiLi5mNzczMWZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwcGNpLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHBjaS5jCkBAIC04MjQsNiArODI0LDE3IEBACiAJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjExX0NXX1NFTEVDVCwgMCk7CiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgQ1NSMTEsIHJlZyk7CiAKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIENTUjE0LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVFNGX0NPVU5ULCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVFNGX1NZTkMsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQkNOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVENGUCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RBVElNVywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0JFQUNPTl9HRU4sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9DRlBfQ09VTlRfUFJFTE9BRCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ01fUFJFTE9BRCwgMCk7CisJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgQ1NSMTQsIHJlZyk7CisKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDTlQzLCAwKTsKIAogCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgVFhDU1I4LCAmcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDB1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDB1c2IuYwppbmRleCBmZGJkMGVmLi5kOTA1MTJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVzYi5jCkBAIC0xMzgsMTEgKzEzOCw4IEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQyNTAwdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBXcml0ZSBmYWlsZWQuXG4iKTsKLQkJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7Ci0JCXJldHVybjsKLQl9CisJaWYgKHJ0MngwMF9nZXRfZmllbGQxNihyZWcsIFBIWV9DU1I4X0JVU1kpKQorCQlnb3RvIGV4aXRfZmFpbDsKIAogCS8qCiAJICogV3JpdGUgdGhlIGRhdGEgaW50byB0aGUgQkJQLgpAQCAtMTU1LDYgKzE1MiwxMyBAQAogCXJ0MjUwMHVzYl9yZWdpc3Rlcl93cml0ZV9sb2NrKHJ0MngwMGRldiwgUEhZX0NTUjcsIHJlZyk7CiAKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjggcmVnaXN0ZXIgYnVzeS4gV3JpdGUgZmFpbGVkLlxuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0MjUwMHVzYl9iYnBfcmVhZChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LApAQCAtMTY4LDEwICsxNzIsOCBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0MjUwMHVzYl9iYnBfY2hlY2socnQyeDAwZGV2KTsKLQlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpIHsKLQkJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjggcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgcmVxdWVzdCBpbnRvIHRoZSBCQlAuCkBAIC0xODYsMTcgKzE4OCwyMSBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0MjUwMHVzYl9iYnBfY2hlY2socnQyeDAwZGV2KTsKLQlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpIHsKLQkJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjggcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKLQkJKnZhbHVlID0gMHhmZjsKLQkJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7Ci0JCXJldHVybjsKLQl9CisJaWYgKHJ0MngwMF9nZXRfZmllbGQxNihyZWcsIFBIWV9DU1I4X0JVU1kpKQorCQlnb3RvIGV4aXRfZmFpbDsKIAogCXJ0MjUwMHVzYl9yZWdpc3Rlcl9yZWFkX2xvY2socnQyeDAwZGV2LCBQSFlfQ1NSNywgJnJlZyk7CiAJKnZhbHVlID0gcnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjdfREFUQSk7CiAKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjggcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKKwkqdmFsdWUgPSAweGZmOwogfQogCiBzdGF0aWMgdm9pZCBydDI1MDB1c2JfcmZfd3JpdGUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwKQEAgLTc5NSw2ICs4MDEsMTMgQEAKIAlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1I4X0JCUF9JRDFfVkFMSUQsIDApOwogCXJ0MjUwMHVzYl9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSOCwgcmVnKTsKIAorCXJ0MjUwMHVzYl9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgVFhSWF9DU1IxOSwgJnJlZyk7CisJcnQyeDAwX3NldF9maWVsZDE2KCZyZWcsIFRYUlhfQ1NSMTlfVFNGX0NPVU5ULCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDE2KCZyZWcsIFRYUlhfQ1NSMTlfVEJDTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDE2KCZyZWcsIFRYUlhfQ1NSMTlfQkVBQ09OX0dFTiwgMCk7CisJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IxOSwgcmVnKTsKKwogCXJ0MjUwMHVzYl9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSMjEsIDB4ZTc4Zik7CiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgTUFDX0NTUjksIDB4ZmYxZCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDAuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDAuaAppbmRleCA2MTFkOTgzLi5hNzRlMWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwLmgKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oCkBAIC01MTEsOCArNTExLDggQEAKIAkgKi8KIAlpbnQgKCpwcm9iZV9odykgKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpOwogCWNoYXIgKigqZ2V0X2Zpcm13YXJlX25hbWUpIChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KTsKLQl1MTYgKCpnZXRfZmlybXdhcmVfY3JjKSAodm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbik7Ci0JaW50ICgqbG9hZF9maXJtd2FyZSkgKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIHZvaWQgKmRhdGEsCisJdTE2ICgqZ2V0X2Zpcm13YXJlX2NyYykgKGNvbnN0IHZvaWQgKmRhdGEsIGNvbnN0IHNpemVfdCBsZW4pOworCWludCAoKmxvYWRfZmlybXdhcmUpIChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCBjb25zdCB2b2lkICpkYXRhLAogCQkJICAgICAgY29uc3Qgc2l6ZV90IGxlbik7CiAKIAkvKgpAQCAtODIxLDYgKzgyMSw3IEBACiAJLyoKIAkgKiBTY2hlZHVsZWQgd29yay4KIAkgKi8KKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd29ya3F1ZXVlOwogCXN0cnVjdCB3b3JrX3N0cnVjdCBpbnRmX3dvcms7CiAJc3RydWN0IHdvcmtfc3RydWN0IGZpbHRlcl93b3JrOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwZGV2LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwZGV2LmMKaW5kZXggMjY3M2Q1Ni4uYzk5N2Q0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBkZXYuYwpAQCAtNzUsNyArNzUsNyBAQAogCiAJcnQyeDAwbGliX3Jlc2V0X2xpbmtfdHVuZXIocnQyeDAwZGV2KTsKIAotCXF1ZXVlX2RlbGF5ZWRfd29yayhydDJ4MDBkZXYtPmh3LT53b3JrcXVldWUsCisJcXVldWVfZGVsYXllZF93b3JrKHJ0MngwMGRldi0+d29ya3F1ZXVlLAogCQkJICAgJnJ0MngwMGRldi0+bGluay53b3JrLCBMSU5LX1RVTkVfSU5URVJWQUwpOwogfQogCkBAIC0xMzcsMTQgKzEzNyw2IEBACiAJCXJldHVybjsKIAogCS8qCi0JICogU3RvcCBhbGwgc2NoZWR1bGVkIHdvcmsuCi0JICovCi0JaWYgKHdvcmtfcGVuZGluZygmcnQyeDAwZGV2LT5pbnRmX3dvcmspKQotCQljYW5jZWxfd29ya19zeW5jKCZydDJ4MDBkZXYtPmludGZfd29yayk7Ci0JaWYgKHdvcmtfcGVuZGluZygmcnQyeDAwZGV2LT5maWx0ZXJfd29yaykpCi0JCWNhbmNlbF93b3JrX3N5bmMoJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmspOwotCi0JLyoKIAkgKiBTdG9wIHRoZSBUWCBxdWV1ZXMuCiAJICovCiAJaWVlZTgwMjExX3N0b3BfcXVldWVzKHJ0MngwMGRldi0+aHcpOwpAQCAtMzk4LDggKzM5MCw4IEBACiAJICogSW5jcmVhc2UgdHVuZXIgY291bnRlciwgYW5kIHJlc2NoZWR1bGUgdGhlIG5leHQgbGluayB0dW5lciBydW4uCiAJICovCiAJcnQyeDAwZGV2LT5saW5rLmNvdW50Kys7Ci0JcXVldWVfZGVsYXllZF93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+bGluay53b3JrLAotCQkJICAgTElOS19UVU5FX0lOVEVSVkFMKTsKKwlxdWV1ZV9kZWxheWVkX3dvcmsocnQyeDAwZGV2LT53b3JrcXVldWUsCisJCQkgICAmcnQyeDAwZGV2LT5saW5rLndvcmssIExJTktfVFVORV9JTlRFUlZBTCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0MngwMGxpYl9wYWNrZXRmaWx0ZXJfc2NoZWR1bGVkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTQzMyw2ICs0MjUsMTUgQEAKIAogCXNwaW5fdW5sb2NrKCZpbnRmLT5sb2NrKTsKIAorCS8qCisJICogSXQgaXMgcG9zc2libGUgdGhlIHJhZGlvIHdhcyBkaXNhYmxlZCB3aGlsZSB0aGUgd29yayBoYWQgYmVlbgorCSAqIHNjaGVkdWxlZC4gSWYgdGhhdCBoYXBwZW5zIHdlIHNob3VsZCByZXR1cm4gaGVyZSBpbW1lZGlhdGVseSwKKwkgKiBub3RlIHRoYXQgaW4gdGhlIHNwaW5sb2NrIHByb3RlY3RlZCBhcmVhIGFib3ZlIHRoZSBkZWxheWVkX2ZsYWdzCisJICogaGF2ZSBiZWVuIGNsZWFyZWQgY29ycmVjdGx5LgorCSAqLworCWlmICghdGVzdF9iaXQoREVWSUNFX0VOQUJMRURfUkFESU8sICZydDJ4MDBkZXYtPmZsYWdzKSkKKwkJcmV0dXJuOworCiAJaWYgKGRlbGF5ZWRfZmxhZ3MgJiBERUxBWUVEX1VQREFURV9CRUFDT04pIHsKIAkJc2tiID0gaWVlZTgwMjExX2JlYWNvbl9nZXQocnQyeDAwZGV2LT5odywgdmlmLCAmY29udHJvbCk7CiAJCWlmIChza2IgJiYgcnQyeDAwZGV2LT5vcHMtPmh3LT5iZWFjb25fdXBkYXRlKHJ0MngwMGRldi0+aHcsCkBAIC00NDEsNyArNDQyLDcgQEAKIAl9CiAKIAlpZiAoZGVsYXllZF9mbGFncyAmIERFTEFZRURfQ09ORklHX0VSUCkKLQkJcnQyeDAwbGliX2NvbmZpZ19lcnAocnQyeDAwZGV2LCBpbnRmLCAmaW50Zi0+Y29uZik7CisJCXJ0MngwMGxpYl9jb25maWdfZXJwKHJ0MngwMGRldiwgaW50ZiwgJmNvbmYpOwogCiAJaWYgKGRlbGF5ZWRfZmxhZ3MgJiBERUxBWUVEX0xFRF9BU1NPQykKIAkJcnQyeDAwbGVkc19sZWRfYXNzb2MocnQyeDAwZGV2LCAhIXJ0MngwMGRldi0+aW50Zl9hc3NvY2lhdGVkKTsKQEAgLTQ4Nyw3ICs0ODgsNyBAQAogCQkJCQkJICAgcnQyeDAwbGliX2JlYWNvbmRvbmVfaXRlciwKIAkJCQkJCSAgIHJ0MngwMGRldik7CiAKLQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKKwlxdWV1ZV93b3JrKHJ0MngwMGRldi0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5pbnRmX3dvcmspOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocnQyeDAwbGliX2JlYWNvbmRvbmUpOwogCkBAIC0xMTMwLDYgKzExMzEsMTAgQEAKIAkvKgogCSAqIEluaXRpYWxpemUgY29uZmlndXJhdGlvbiB3b3JrLgogCSAqLworCXJ0MngwMGRldi0+d29ya3F1ZXVlID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoInJ0MngwMGxpYiIpOworCWlmICghcnQyeDAwZGV2LT53b3JrcXVldWUpCisJCWdvdG8gZXhpdDsKKwogCUlOSVRfV09SSygmcnQyeDAwZGV2LT5pbnRmX3dvcmssIHJ0MngwMGxpYl9pbnRmX3NjaGVkdWxlZCk7CiAJSU5JVF9XT1JLKCZydDJ4MDBkZXYtPmZpbHRlcl93b3JrLCBydDJ4MDBsaWJfcGFja2V0ZmlsdGVyX3NjaGVkdWxlZCk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJnJ0MngwMGRldi0+bGluay53b3JrLCBydDJ4MDBsaWJfbGlua190dW5lcik7CkBAIC0xMTkwLDYgKzExOTUsMTMgQEAKIAlydDJ4MDBsZWRzX3VucmVnaXN0ZXIocnQyeDAwZGV2KTsKIAogCS8qCisJICogU3RvcCBhbGwgcXVldWVkIHdvcmsuIE5vdGUgdGhhdCBtb3N0IHRhc2tzIHdpbGwgYWxyZWFkeSBiZSBoYWx0ZWQKKwkgKiBkdXJpbmcgcnQyeDAwbGliX2Rpc2FibGVfcmFkaW8oKSBhbmQgcnQyeDAwbGliX3VuaW5pdGlhbGl6ZSgpLgorCSAqLworCWZsdXNoX3dvcmtxdWV1ZShydDJ4MDBkZXYtPndvcmtxdWV1ZSk7CisJZGVzdHJveV93b3JrcXVldWUocnQyeDAwZGV2LT53b3JrcXVldWUpOworCisJLyoKIAkgKiBGcmVlIGllZWU4MDIxMV9odyBtZW1vcnkuCiAJICovCiAJcnQyeDAwbGliX3JlbW92ZV9odyhydDJ4MDBkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jCmluZGV4IDg3ZTI4MGEuLjljYjAyM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBtYWMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwbWFjLmMKQEAgLTQyOCw3ICs0MjgsNyBAQAogCWlmICghdGVzdF9iaXQoRFJJVkVSX1JFUVVJUkVfU0NIRURVTEVELCAmcnQyeDAwZGV2LT5mbGFncykpCiAJCXJ0MngwMGRldi0+b3BzLT5saWItPmNvbmZpZ19maWx0ZXIocnQyeDAwZGV2LCAqdG90YWxfZmxhZ3MpOwogCWVsc2UKLQkJcXVldWVfd29yayhydDJ4MDBkZXYtPmh3LT53b3JrcXVldWUsICZydDJ4MDBkZXYtPmZpbHRlcl93b3JrKTsKKwkJcXVldWVfd29yayhydDJ4MDBkZXYtPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmspOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocnQyeDAwbWFjX2NvbmZpZ3VyZV9maWx0ZXIpOwogCkBAIC01MDksNyArNTA5LDcgQEAKIAltZW1jcHkoJmludGYtPmNvbmYsIGJzc19jb25mLCBzaXplb2YoKmJzc19jb25mKSk7CiAJaWYgKGRlbGF5ZWQpIHsKIAkJaW50Zi0+ZGVsYXllZF9mbGFncyB8PSBkZWxheWVkOwotCQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKKwkJcXVldWVfd29yayhydDJ4MDBkZXYtPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKIAl9CiAJc3Bpbl91bmxvY2soJmludGYtPmxvY2spOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5jCmluZGV4IDk3MWFmMjUuLjYwODkzZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBwY2kuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmMKQEAgLTQxMiw4ICs0MTIsNyBAQAogCWlmIChwY2lfc2V0X213aShwY2lfZGV2KSkKIAkJRVJST1JfUFJPQkUoIk1XSSBub3QgYXZhaWxhYmxlLlxuIik7CiAKLQlpZiAocGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfNjRCSVRfTUFTSykgJiYKLQkgICAgcGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfMzJCSVRfTUFTSykpIHsKKwlpZiAocGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfMzJCSVRfTUFTSykpIHsKIAkJRVJST1JfUFJPQkUoIlBDSSBETUEgbm90IHN1cHBvcnRlZC5cbiIpOwogCQlyZXR2YWwgPSAtRUlPOwogCQlnb3RvIGV4aXRfZGlzYWJsZV9kZXZpY2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmgKaW5kZXggOWQxY2RiOS4uYjQxOTY3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBwY2kuaApAQCAtODIsNyArODIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkCiBydDJ4MDBwY2lfcmVnaXN0ZXJfbXVsdGl3cml0ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LAogCQkJICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICB2b2lkICp2YWx1ZSwgY29uc3QgdTE2IGxlbmd0aCkKKwkJCSAgICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBjb25zdCB1MTYgbGVuZ3RoKQogewogCW1lbWNweV90b2lvKHJ0MngwMGRldi0+Y3NyLmJhc2UgKyBvZmZzZXQsIHZhbHVlLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHVzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHVzYi5jCmluZGV4IDVhMzMxNjcuLmU1Y2VhZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDB1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwdXNiLmMKQEAgLTM2Miw2ICszNjIsMTIgQEAKIAkJfQogCX0KIAorCS8qCisJICogS2lsbCBndWFyZGlhbiB1cmIgKGlmIHJlcXVpcmVkIGJ5IGRyaXZlcikuCisJICovCisJaWYgKCF0ZXN0X2JpdChEUklWRVJfUkVRVUlSRV9CRUFDT05fR1VBUkQsICZydDJ4MDBkZXYtPmZsYWdzKSkKKwkJcmV0dXJuOworCiAJZm9yIChpID0gMDsgaSA8IHJ0MngwMGRldi0+YmNuLT5saW1pdDsgaSsrKSB7CiAJCXByaXZfYmNuID0gcnQyeDAwZGV2LT5iY24tPmVudHJpZXNbaV0ucHJpdl9kYXRhOwogCQl1c2Jfa2lsbF91cmIocHJpdl9iY24tPnVyYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ2MXBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NjFwY2kuYwppbmRleCAxNGJjN2IyLi41ODBmOTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ2MXBjaS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDYxcGNpLmMKQEAgLTkxNSw3ICs5MTUsNyBAQAogCXJldHVybiBmd19uYW1lOwogfQogCi1zdGF0aWMgdTE2IHJ0NjFwY2lfZ2V0X2Zpcm13YXJlX2NyYyh2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKQorc3RhdGljIHUxNiBydDYxcGNpX2dldF9maXJtd2FyZV9jcmMoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAl1MTYgY3JjOwogCkBAIC05MzIsNyArOTMyLDcgQEAKIAlyZXR1cm4gY3JjOwogfQogCi1zdGF0aWMgaW50IHJ0NjFwY2lfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCB2b2lkICpkYXRhLAorc3RhdGljIGludCBydDYxcGNpX2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgY29uc3Qgdm9pZCAqZGF0YSwKIAkJCQkgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAlpbnQgaTsKQEAgLTEyMDEsNiArMTIwMSwxNSBAQAogCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjhfQUNLX0NUU181NE1CUywgNDIpOwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSOCwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgVFhSWF9DU1I5LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X0JFQUNPTl9JTlRFUlZBTCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UU0ZfVElDS0lORywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UQlRUX0VOQUJMRSwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9CRUFDT05fR0VOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RJTUVTVEFNUF9DT01QRU5TQVRFLCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjksIHJlZyk7CisKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjE1LCAweDAwMDAwMDBmKTsKIAogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIE1BQ19DU1I2LCAweDAwMDAwZmZmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDczdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ3M3VzYi5jCmluZGV4IGRhMTlhM2EuLjZhNjJkNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDczdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYwpAQCAtMTM0LDExICsxMzQsOCBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0NzN1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1IzIHJlZ2lzdGVyIGJ1c3kuIFdyaXRlIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBCQlAuCkBAIC0xNTEsNiArMTQ4LDEzIEBACiAKIAlydDczdXNiX3JlZ2lzdGVyX3dyaXRlX2xvY2socnQyeDAwZGV2LCBQSFlfQ1NSMywgcmVnKTsKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gV3JpdGUgZmFpbGVkLlxuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0NzN1c2JfYmJwX3JlYWQoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwKQEAgLTE2NCwxMSArMTY4LDggQEAKIAkgKiBXYWl0IHVudGlsIHRoZSBCQlAgYmVjb21lcyByZWFkeS4KIAkgKi8KIAlyZWcgPSBydDczdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMzIocmVnLCBQSFlfQ1NSM19CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSMyByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgcmVxdWVzdCBpbnRvIHRoZSBCQlAuCkBAIC0xODQsMTQgKzE4NSwxOSBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0NzN1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1IzIHJlZ2lzdGVyIGJ1c3kuIFJlYWQgZmFpbGVkLlxuIik7Ci0JCSp2YWx1ZSA9IDB4ZmY7Ci0JCXJldHVybjsKLQl9CisJaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKQorCQlnb3RvIGV4aXRfZmFpbDsKIAogCSp2YWx1ZSA9IHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX1ZBTFVFKTsKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKKwkqdmFsdWUgPSAweGZmOwogfQogCiBzdGF0aWMgdm9pZCBydDczdXNiX3JmX3dyaXRlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsCkBAIC04NTAsNyArODU2LDcgQEAKIAlyZXR1cm4gRklSTVdBUkVfUlQyNTcxOwogfQogCi1zdGF0aWMgdTE2IHJ0NzN1c2JfZ2V0X2Zpcm13YXJlX2NyYyh2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKQorc3RhdGljIHUxNiBydDczdXNiX2dldF9maXJtd2FyZV9jcmMoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAl1MTYgY3JjOwogCkBAIC04NjcsMTMgKzg3MywxMyBAQAogCXJldHVybiBjcmM7CiB9CiAKLXN0YXRpYyBpbnQgcnQ3M3VzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIHZvaWQgKmRhdGEsCitzdGF0aWMgaW50IHJ0NzN1c2JfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCBjb25zdCB2b2lkICpkYXRhLAogCQkJCSBjb25zdCBzaXplX3QgbGVuKQogewogCXVuc2lnbmVkIGludCBpOwogCWludCBzdGF0dXM7CiAJdTMyIHJlZzsKLQljaGFyICpwdHIgPSBkYXRhOworCWNvbnN0IGNoYXIgKnB0ciA9IGRhdGE7CiAJY2hhciAqY2FjaGU7CiAJaW50IGJ1ZmxlbjsKIAlpbnQgdGltZW91dDsKQEAgLTEwMDAsNiArMTAwNiwxNSBAQAogCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjhfQUNLX0NUU181NE1CUywgNDIpOwogCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjgsIHJlZyk7CiAKKwlydDczdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWFJYX0NTUjksICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfQkVBQ09OX0lOVEVSVkFMLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RTRl9USUNLSU5HLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RTRl9TWU5DLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RCVFRfRU5BQkxFLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X0JFQUNPTl9HRU4sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVElNRVNUQU1QX0NPTVBFTlNBVEUsIDApOworCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjksIHJlZyk7CisKIAlydDczdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IxNSwgMHgwMDAwMDAwZik7CiAKIAlydDczdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBNQUNfQ1NSNiwgJnJlZyk7CkBAIC0yMTMxLDYgKzIxNDYsNyBAQAogCS8qIEQtTGluayAqLwogCXsgVVNCX0RFVklDRSgweDA3ZDEsIDB4M2MwMyksIFVTQl9ERVZJQ0VfREFUQSgmcnQ3M3VzYl9vcHMpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDdkMSwgMHgzYzA0KSwgVVNCX0RFVklDRV9EQVRBKCZydDczdXNiX29wcykgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwN2QxLCAweDNjMDYpLCBVU0JfREVWSUNFX0RBVEEoJnJ0NzN1c2Jfb3BzKSB9LAogCXsgVVNCX0RFVklDRSgweDA3ZDEsIDB4M2MwNyksIFVTQl9ERVZJQ0VfREFUQSgmcnQ3M3VzYl9vcHMpIH0sCiAJLyogR2VtdGVrICovCiAJeyBVU0JfREVWSUNFKDB4MTVhOSwgMHgwMDA0KSwgVVNCX0RFVklDRV9EQVRBKCZydDczdXNiX29wcykgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIwMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKaW5kZXggZDVjMGM2Ni4uNzhiYWEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIHN0YXRpYyBpbnQgemQxMjAxX2Z3X3VwbG9hZChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYXBmdykKIHsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5OwotCWNoYXIgKmRhdGE7CisJY29uc3QgY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBsb25nIGxlbjsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGNoYXIgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwppbmRleCA2NDI0ZTVhLi42OTRlOTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwpAQCAtNzE5LDcgKzcxOSw3IEBACiAJZmMgPSBsZTE2X3RvX2NwdSgqKChfX2xlMTYgKikgYnVmZmVyKSk7CiAKIAlpc19xb3MgPSAoKGZjICYgSUVFRTgwMjExX0ZDVExfRlRZUEUpID09IElFRUU4MDIxMV9GVFlQRV9EQVRBKSAmJgotCQkgKChmYyAmIElFRUU4MDIxMV9GQ1RMX1NUWVBFKSA9PSBJRUVFODAyMTFfU1RZUEVfUU9TX0RBVEEpOworCQkgKGZjICYgSUVFRTgwMjExX1NUWVBFX1FPU19EQVRBKTsKIAlpc180YWRkciA9IChmYyAmIChJRUVFODAyMTFfRkNUTF9UT0RTIHwgSUVFRTgwMjExX0ZDVExfRlJPTURTKSkgPT0KIAkJICAgKElFRUU4MDIxMV9GQ1RMX1RPRFMgfCBJRUVFODAyMTFfRkNUTF9GUk9NRFMpOwogCW5lZWRfcGFkZGluZyA9IGlzX3FvcyBeIGlzXzRhZGRyOwpAQCAtNzY1LDYgKzc2NSw3IEBACiB7CiAJc3RydWN0IHpkX21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsKIAltYWMtPnR5cGUgPSBJRUVFODAyMTFfSUZfVFlQRV9JTlZBTElEOworCXpkX3NldF9iZWFjb25faW50ZXJ2YWwoJm1hYy0+Y2hpcCwgMCk7CiAJemRfd3JpdGVfbWFjX2FkZHIoJm1hYy0+Y2hpcCwgTlVMTCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIxMXJ3L3pkX3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKaW5kZXggODk0MWY1ZS4uNmNkYWQ5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKQEAgLTY0LDYgKzY0LDcgQEAKIAl7IFVTQl9ERVZJQ0UoMHgwNzliLCAweDAwNjIpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDE1ODIsIDB4NjAwMyksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDUwZCwgMHg3MDVjKSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwODNhLCAweGU1MDYpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDA4M2EsIDB4NDUwNSksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ3MSwgMHgxMjM2KSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2IxLCAweDAwMjQpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwppbmRleCBkMjZmNjliLi5lZjY3MWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtMTMyNCw3ICsxMzI0LDcgQEAKIAkJZ290byBmYWlsOwogCX0KIAotCXR4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3R4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCXR4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3R4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCF0eHMpIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgImFsbG9jYXRpbmcgdHggcmluZyBwYWdlIik7CkBAIC0xMzQwLDcgKzEzNDAsNyBAQAogCX0KIAogCWluZm8tPnR4X3JpbmdfcmVmID0gZXJyOwotCXJ4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3J4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCXJ4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3J4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCFyeHMpIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgImFsbG9jYXRpbmcgcnggcmluZyBwYWdlIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcmlzYy9laXNhX2VlcHJvbS5jIGIvZHJpdmVycy9wYXJpc2MvZWlzYV9lZXByb20uYwppbmRleCA4NmU5Yzg0Li41YWMyMDc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BhcmlzYy9laXNhX2VlcHJvbS5jCisrKyBiL2RyaXZlcnMvcGFyaXNjL2Vpc2FfZWVwcm9tLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtODMsNiArODQsOCBAQAogCiBzdGF0aWMgaW50IGVpc2FfZWVwcm9tX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKKwogCWlmIChmaWxlLT5mX21vZGUgJiAyKQogCQlyZXR1cm4gLUVJTlZBTDsKICAgIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvYWNjZXNzLmMgYi9kcml2ZXJzL3BjaS9hY2Nlc3MuYwppbmRleCBlYzhmNzAwLi4zOWJiOTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9hY2Nlc3MuYworKysgYi9kcml2ZXJzL3BjaS9hY2Nlc3MuYwpAQCAtMTc4LDggKzE3OCw3IEBACiAJaW50IHJldDsKIAlpbnQgYmVnaW4sIGVuZCwgaTsKIAotCWlmIChwb3MgPCAwIHx8IHBvcyA+IFBDSV9WUERfUENJMjJfU0laRSB8fAotCSAgICBzaXplID4gUENJX1ZQRF9QQ0kyMl9TSVpFICAtIHBvcykKKwlpZiAocG9zIDwgMCB8fCBwb3MgPiB2cGQtPmJhc2UubGVuIHx8IHNpemUgPiB2cGQtPmJhc2UubGVuICAtIHBvcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJuIDA7CkBAIC0yMjMsOCArMjIyLDggQEAKIAl1MzIgdmFsOwogCWludCByZXQ7CiAKLQlpZiAocG9zIDwgMCB8fCBwb3MgPiBQQ0lfVlBEX1BDSTIyX1NJWkUgfHwgcG9zICYgMyB8fAotCSAgICBzaXplID4gUENJX1ZQRF9QQ0kyMl9TSVpFIC0gcG9zIHx8IHNpemUgPCA0KQorCWlmIChwb3MgPCAwIHx8IHBvcyA+IHZwZC0+YmFzZS5sZW4gfHwgcG9zICYgMyB8fAorCSAgICBzaXplID4gdnBkLT5iYXNlLmxlbiAtIHBvcyB8fCBzaXplIDwgNCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl2YWwgPSAodTgpICpidWYrKzsKQEAgLTI1NSwxMSArMjU0LDYgQEAKIAlyZXR1cm4gNDsKIH0KIAotc3RhdGljIGludCBwY2lfdnBkX3BjaTIyX2dldF9zaXplKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0JcmV0dXJuIFBDSV9WUERfUENJMjJfU0laRTsKLX0KLQogc3RhdGljIHZvaWQgcGNpX3ZwZF9wY2kyMl9yZWxlYXNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJa2ZyZWUoY29udGFpbmVyX29mKGRldi0+dnBkLCBzdHJ1Y3QgcGNpX3ZwZF9wY2kyMiwgYmFzZSkpOwpAQCAtMjY4LDcgKzI2Miw2IEBACiBzdGF0aWMgc3RydWN0IHBjaV92cGRfb3BzIHBjaV92cGRfcGNpMjJfb3BzID0gewogCS5yZWFkID0gcGNpX3ZwZF9wY2kyMl9yZWFkLAogCS53cml0ZSA9IHBjaV92cGRfcGNpMjJfd3JpdGUsCi0JLmdldF9zaXplID0gcGNpX3ZwZF9wY2kyMl9nZXRfc2l6ZSwKIAkucmVsZWFzZSA9IHBjaV92cGRfcGNpMjJfcmVsZWFzZSwKIH07CiAKQEAgLTI4NCw2ICsyNzcsNyBAQAogCWlmICghdnBkKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCXZwZC0+YmFzZS5sZW4gPSBQQ0lfVlBEX1BDSTIyX1NJWkU7CiAJdnBkLT5iYXNlLm9wcyA9ICZwY2lfdnBkX3BjaTIyX29wczsKIAlzcGluX2xvY2tfaW5pdCgmdnBkLT5sb2NrKTsKIAl2cGQtPmNhcCA9IGNhcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvYWNwaXBocF9nbHVlLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2FjcGlwaHBfZ2x1ZS5jCmluZGV4IDY0ODU5NmQuLjkxMTU2ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvYWNwaXBocF9nbHVlLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9hY3BpcGhwX2dsdWUuYwpAQCAtNzAwLDkgKzcwMCwxMCBAQAogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgaGFuZGxlLCAodTMyKTEsCiAJCQkJY2xlYW51cF9wMnBfYnJpZGdlLCBOVUxMLCBOVUxMKTsKIAotCWlmICghKGJyaWRnZSA9IGFjcGlwaHBfaGFuZGxlX3RvX2JyaWRnZShoYW5kbGUpKSkKLQkJcmV0dXJuIEFFX09LOwotCWNsZWFudXBfYnJpZGdlKGJyaWRnZSk7CisJYnJpZGdlID0gYWNwaXBocF9oYW5kbGVfdG9fYnJpZGdlKGhhbmRsZSk7CisJaWYgKGJyaWRnZSkKKwkJY2xlYW51cF9icmlkZ2UoYnJpZGdlKTsKKwogCXJldHVybiBBRV9PSzsKIH0KIApAQCAtNzE1LDkgKzcxNiwxOSBAQAogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgaGFuZGxlLAogCQkJCSh1MzIpMSwgY2xlYW51cF9wMnBfYnJpZGdlLCBOVUxMLCBOVUxMKTsKIAorCS8qCisJICogT24gcm9vdCBicmlkZ2VzIHdpdGggaG90cGx1ZyBzbG90cyBkaXJlY3RseSB1bmRlcm5lYXRoIChpZSwKKwkgKiBubyBwMnAgYnJpZGdlIGluYmV0d2VlbiksIHdlIGNhbGwgY2xlYW51cF9icmlkZ2UoKS4gCisJICoKKwkgKiBUaGUgZWxzZSBjbGF1c2UgY2xlYW5zIHVwIHJvb3QgYnJpZGdlcyB0aGF0IGVpdGhlciBoYWQgbm8KKwkgKiBob3RwbHVnIHNsb3RzIGF0IGFsbCwgb3IgaGFkIGEgcDJwIGJyaWRnZSB1bmRlcm5lYXRoLgorCSAqLwogCWJyaWRnZSA9IGFjcGlwaHBfaGFuZGxlX3RvX2JyaWRnZShoYW5kbGUpOwogCWlmIChicmlkZ2UpCiAJCWNsZWFudXBfYnJpZGdlKGJyaWRnZSk7CisJZWxzZQorCQlhY3BpX3JlbW92ZV9ub3RpZnlfaGFuZGxlcihoYW5kbGUsIEFDUElfU1lTVEVNX05PVElGWSwKKwkJCQkJICAgaGFuZGxlX2hvdHBsdWdfZXZlbnRfYnJpZGdlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICogZ2V0X2FwaWNfcGNpX2luZm8oYWNwaV9oYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvcGNpL2ludGVsLWlvbW11LmMKaW5kZXggNjZjMGZkMi4uYmIwNjQyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYworKysgYi9kcml2ZXJzL3BjaS9pbnRlbC1pb21tdS5jCkBAIC0xNjM3LDEyICsxNjM3LDQzIEBACiB9CiAKICNpZmRlZiBDT05GSUdfRE1BUl9HRlhfV0EKLWV4dGVybiBpbnQgYXJjaF9nZXRfcmFtX3JhbmdlKGludCBzbG90LCB1NjQgKmFkZHIsIHU2NCAqc2l6ZSk7CitzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKwlpbnQgcmV0OworfTsKKworc3RhdGljIGludCBfX2luaXQgaW9tbXVfcHJlcGFyZV93b3JrX2ZuKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuLCB2b2lkICpkYXRheCkKK3sKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICopZGF0YXg7CisKKwlkYXRhLT5yZXQgPSBpb21tdV9wcmVwYXJlX2lkZW50aXR5X21hcChkYXRhLT5wZGV2LAorCQkJCXN0YXJ0X3Bmbjw8UEFHRV9TSElGVCwgZW5kX3Bmbjw8UEFHRV9TSElGVCk7CisJcmV0dXJuIGRhdGEtPnJldDsKKworfQorCitzdGF0aWMgaW50IF9faW5pdCBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJaW50IG5pZDsKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIGRhdGE7CisKKwlkYXRhLnBkZXYgPSBwZGV2OworCWRhdGEucmV0ID0gMDsKKworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgeworCQl3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCBpb21tdV9wcmVwYXJlX3dvcmtfZm4sICZkYXRhKTsKKwkJaWYgKGRhdGEucmV0KQorCQkJcmV0dXJuIGRhdGEucmV0OworCX0KKwlyZXR1cm4gZGF0YS5yZXQ7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9wcmVwYXJlX2dmeF9tYXBwaW5nKHZvaWQpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBOVUxMOwotCXU2NCBiYXNlLCBzaXplOwotCWludCBzbG90OwogCWludCByZXQ7CiAKIAlmb3JfZWFjaF9wY2lfZGV2KHBkZXYpIHsKQEAgLTE2NTEsMTcgKzE2ODIsOSBAQAogCQkJY29udGludWU7CiAJCXByaW50ayhLRVJOX0lORk8gIklPTU1VOiBnZnggZGV2aWNlICVzIDEtMSBtYXBwaW5nXG4iLAogCQkJcGNpX25hbWUocGRldikpOwotCQlzbG90ID0gYXJjaF9nZXRfcmFtX3JhbmdlKDAsICZiYXNlLCAmc2l6ZSk7Ci0JCXdoaWxlIChzbG90ID49IDApIHsKLQkJCXJldCA9IGlvbW11X3ByZXBhcmVfaWRlbnRpdHlfbWFwKHBkZXYsCi0JCQkJCWJhc2UsIGJhc2UgKyBzaXplKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byBlcnJvcjsKLQkJCXNsb3QgPSBhcmNoX2dldF9yYW1fcmFuZ2Uoc2xvdCwgJmJhc2UsICZzaXplKTsKLQkJfQotCQljb250aW51ZTsKLWVycm9yOgotCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOworCQlyZXQgPSBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMocGRldik7CisJCWlmIChyZXQpCisJCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOwogCX0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCmluZGV4IDcyY2Y2MWUuLmUxNjM3YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMKQEAgLTE4MSw3ICsxODEsNyBAQAogCSAgIGFueSBuZWVkIHRvIGNoYW5nZSBpdC4gKi8KIAlzdHJ1Y3QgbWVtcG9saWN5ICpvbGRwb2w7CiAJY3B1bWFza190IG9sZG1hc2sgPSBjdXJyZW50LT5jcHVzX2FsbG93ZWQ7Ci0JaW50IG5vZGUgPSBwY2lidXNfdG9fbm9kZShkZXYtPmJ1cyk7CisJaW50IG5vZGUgPSBkZXZfdG9fbm9kZSgmZGV2LT5kZXYpOwogCiAJaWYgKG5vZGUgPj0gMCkgewogCQlub2RlX3RvX2NwdW1hc2tfcHRyKG5vZGVjcHVtYXNrLCBub2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKaW5kZXggMjcxZDQxYy4uOWM3MTg1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKKysrIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKQEAgLTQ4OSwxMyArNDg5LDEzIEBACiAgKiBAa29iajoga29iamVjdCBmb3IgbWFwcGluZwogICogQGF0dHI6IHN0cnVjdCBiaW5fYXR0cmlidXRlIGZvciB0aGUgZmlsZSBiZWluZyBtYXBwZWQKICAqIEB2bWE6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCBwYXNzZWQgaW50byB0aGUgbW1hcAorICogQHdyaXRlX2NvbWJpbmU6IDEgZm9yIHdyaXRlX2NvbWJpbmUgbWFwcGluZwogICoKICAqIFVzZSB0aGUgcmVndWxhciBQQ0kgbWFwcGluZyByb3V0aW5lcyB0byBtYXAgYSBQQ0kgcmVzb3VyY2UgaW50byB1c2Vyc3BhY2UuCi0gKiBGSVhNRTogd3JpdGUgY29tYmluaW5nPyAgbWF5YmUgYXV0b21hdGljIGZvciBwcmVmZXRjaGFibGUgcmVnaW9ucz8KICAqLwogc3RhdGljIGludAogcGNpX21tYXBfcmVzb3VyY2Uoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAotCQkgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQorCQkgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBpbnQgd3JpdGVfY29tYmluZSkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29udGFpbmVyX29mKGtvYmosCiAJCQkJCQkgICAgICAgc3RydWN0IGRldmljZSwga29iaikpOwpAQCAtNTE4LDcgKzUxOCwyMSBAQAogCXZtYS0+dm1fcGdvZmYgKz0gc3RhcnQgPj4gUEFHRV9TSElGVDsKIAltbWFwX3R5cGUgPSByZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9NRU0gPyBwY2lfbW1hcF9tZW0gOiBwY2lfbW1hcF9pbzsKIAotCXJldHVybiBwY2lfbW1hcF9wYWdlX3JhbmdlKHBkZXYsIHZtYSwgbW1hcF90eXBlLCAwKTsKKwlyZXR1cm4gcGNpX21tYXBfcGFnZV9yYW5nZShwZGV2LCB2bWEsIG1tYXBfdHlwZSwgd3JpdGVfY29tYmluZSk7Cit9CisKK3N0YXRpYyBpbnQKK3BjaV9tbWFwX3Jlc291cmNlX3VjKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlyZXR1cm4gcGNpX21tYXBfcmVzb3VyY2Uoa29iaiwgYXR0ciwgdm1hLCAwKTsKK30KKworc3RhdGljIGludAorcGNpX21tYXBfcmVzb3VyY2Vfd2Moc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAorCQkgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXJldHVybiBwY2lfbW1hcF9yZXNvdXJjZShrb2JqLCBhdHRyLCB2bWEsIDEpOwogfQogCiAvKioKQEAgLTU0MSw5ICs1NTUsNDYgQEAKIAkJCXN5c2ZzX3JlbW92ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIHJlc19hdHRyKTsKIAkJCWtmcmVlKHJlc19hdHRyKTsKIAkJfQorCisJCXJlc19hdHRyID0gcGRldi0+cmVzX2F0dHJfd2NbaV07CisJCWlmIChyZXNfYXR0cikgeworCQkJc3lzZnNfcmVtb3ZlX2Jpbl9maWxlKCZwZGV2LT5kZXYua29iaiwgcmVzX2F0dHIpOworCQkJa2ZyZWUocmVzX2F0dHIpOworCQl9CiAJfQogfQogCitzdGF0aWMgaW50IHBjaV9jcmVhdGVfYXR0cihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG51bSwgaW50IHdyaXRlX2NvbWJpbmUpCit7CisJLyogYWxsb2NhdGUgYXR0cmlidXRlIHN0cnVjdHVyZSwgcGlnZ3liYWNrIGF0dHJpYnV0ZSBuYW1lICovCisJaW50IG5hbWVfbGVuID0gd3JpdGVfY29tYmluZSA/IDEzIDogMTA7CisJc3RydWN0IGJpbl9hdHRyaWJ1dGUgKnJlc19hdHRyOworCWludCByZXR2YWw7CisKKwlyZXNfYXR0ciA9IGt6YWxsb2Moc2l6ZW9mKCpyZXNfYXR0cikgKyBuYW1lX2xlbiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc19hdHRyKSB7CisJCWNoYXIgKnJlc19hdHRyX25hbWUgPSAoY2hhciAqKShyZXNfYXR0ciArIDEpOworCisJCWlmICh3cml0ZV9jb21iaW5lKSB7CisJCQlwZGV2LT5yZXNfYXR0cl93Y1tudW1dID0gcmVzX2F0dHI7CisJCQlzcHJpbnRmKHJlc19hdHRyX25hbWUsICJyZXNvdXJjZSVkX3djIiwgbnVtKTsKKwkJCXJlc19hdHRyLT5tbWFwID0gcGNpX21tYXBfcmVzb3VyY2Vfd2M7CisJCX0gZWxzZSB7CisJCQlwZGV2LT5yZXNfYXR0cltudW1dID0gcmVzX2F0dHI7CisJCQlzcHJpbnRmKHJlc19hdHRyX25hbWUsICJyZXNvdXJjZSVkIiwgbnVtKTsKKwkJCXJlc19hdHRyLT5tbWFwID0gcGNpX21tYXBfcmVzb3VyY2VfdWM7CisJCX0KKwkJcmVzX2F0dHItPmF0dHIubmFtZSA9IHJlc19hdHRyX25hbWU7CisJCXJlc19hdHRyLT5hdHRyLm1vZGUgPSBTX0lSVVNSIHwgU19JV1VTUjsKKwkJcmVzX2F0dHItPnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIG51bSk7CisJCXJlc19hdHRyLT5wcml2YXRlID0gJnBkZXYtPnJlc291cmNlW251bV07CisJCXJldHZhbCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIHJlc19hdHRyKTsKKwl9IGVsc2UKKwkJcmV0dmFsID0gLUVOT01FTTsKKworCXJldHVybiByZXR2YWw7Cit9CisKIC8qKgogICogcGNpX2NyZWF0ZV9yZXNvdXJjZV9maWxlcyAtIGNyZWF0ZSByZXNvdXJjZSBmaWxlcyBpbiBzeXNmcyBmb3IgQGRldgogICogQGRldjogZGV2IGluIHF1ZXN0aW9uCkBAIC01NTcsMzEgKzYwOCwxOSBAQAogCiAJLyogRXhwb3NlIHRoZSBQQ0kgcmVzb3VyY2VzIGZyb20gdGhpcyBkZXZpY2UgYXMgZmlsZXMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgUENJX1JPTV9SRVNPVVJDRTsgaSsrKSB7Ci0JCXN0cnVjdCBiaW5fYXR0cmlidXRlICpyZXNfYXR0cjsKIAogCQkvKiBza2lwIGVtcHR5IHJlc291cmNlcyAqLwogCQlpZiAoIXBjaV9yZXNvdXJjZV9sZW4ocGRldiwgaSkpCiAJCQljb250aW51ZTsKIAotCQkvKiBhbGxvY2F0ZSBhdHRyaWJ1dGUgc3RydWN0dXJlLCBwaWdneWJhY2sgYXR0cmlidXRlIG5hbWUgKi8KLQkJcmVzX2F0dHIgPSBremFsbG9jKHNpemVvZigqcmVzX2F0dHIpICsgMTAsIEdGUF9BVE9NSUMpOwotCQlpZiAocmVzX2F0dHIpIHsKLQkJCWNoYXIgKnJlc19hdHRyX25hbWUgPSAoY2hhciAqKShyZXNfYXR0ciArIDEpOworCQlyZXR2YWwgPSBwY2lfY3JlYXRlX2F0dHIocGRldiwgaSwgMCk7CisJCS8qIGZvciBwcmVmZXRjaGFibGUgcmVzb3VyY2VzLCBjcmVhdGUgYSBXQyBtYXBwYWJsZSBmaWxlICovCisJCWlmICghcmV0dmFsICYmIHBkZXYtPnJlc291cmNlW2ldLmZsYWdzICYgSU9SRVNPVVJDRV9QUkVGRVRDSCkKKwkJCXJldHZhbCA9IHBjaV9jcmVhdGVfYXR0cihwZGV2LCBpLCAxKTsKIAotCQkJcGRldi0+cmVzX2F0dHJbaV0gPSByZXNfYXR0cjsKLQkJCXNwcmludGYocmVzX2F0dHJfbmFtZSwgInJlc291cmNlJWQiLCBpKTsKLQkJCXJlc19hdHRyLT5hdHRyLm5hbWUgPSByZXNfYXR0cl9uYW1lOwotCQkJcmVzX2F0dHItPmF0dHIubW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSOwotCQkJcmVzX2F0dHItPnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIGkpOwotCQkJcmVzX2F0dHItPm1tYXAgPSBwY2lfbW1hcF9yZXNvdXJjZTsKLQkJCXJlc19hdHRyLT5wcml2YXRlID0gJnBkZXYtPnJlc291cmNlW2ldOwotCQkJcmV0dmFsID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKCZwZGV2LT5kZXYua29iaiwgcmVzX2F0dHIpOwotCQkJaWYgKHJldHZhbCkgewotCQkJCXBjaV9yZW1vdmVfcmVzb3VyY2VfZmlsZXMocGRldik7Ci0JCQkJcmV0dXJuIHJldHZhbDsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCXJldHVybiAtRU5PTUVNOworCQlpZiAocmV0dmFsKSB7CisJCQlwY2lfcmVtb3ZlX3Jlc291cmNlX2ZpbGVzKHBkZXYpOworCQkJcmV0dXJuIHJldHZhbDsKIAkJfQogCX0KIAlyZXR1cm4gMDsKQEAgLTY5Nyw5ICs3MzYsOSBAQAogCQlhdHRyID0ga3phbGxvYyhzaXplb2YoKmF0dHIpLCBHRlBfQVRPTUlDKTsKIAkJaWYgKGF0dHIpIHsKIAkJCXBkZXYtPnZwZC0+YXR0ciA9IGF0dHI7Ci0JCQlhdHRyLT5zaXplID0gcGRldi0+dnBkLT5vcHMtPmdldF9zaXplKHBkZXYpOworCQkJYXR0ci0+c2l6ZSA9IHBkZXYtPnZwZC0+bGVuOwogCQkJYXR0ci0+YXR0ci5uYW1lID0gInZwZCI7Ci0JCQlhdHRyLT5hdHRyLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUjsKKwkJCWF0dHItPmF0dHIubW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSOwogCQkJYXR0ci0+cmVhZCA9IHBjaV9yZWFkX3ZwZDsKIAkJCWF0dHItPndyaXRlID0gcGNpX3dyaXRlX3ZwZDsKIAkJCXJldHZhbCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIGF0dHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmggYi9kcml2ZXJzL3BjaS9wY2kuaAppbmRleCAwYTQ5N2MxYi4uMDA0MDhjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLmgKKysrIGIvZHJpdmVycy9wY2kvcGNpLmgKQEAgLTIxLDExICsyMSwxMSBAQAogc3RydWN0IHBjaV92cGRfb3BzIHsKIAlpbnQgKCpyZWFkKShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcG9zLCBpbnQgc2l6ZSwgY2hhciAqYnVmKTsKIAlpbnQgKCp3cml0ZSkoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBvcywgaW50IHNpemUsIGNvbnN0IGNoYXIgKmJ1Zik7Ci0JaW50ICgqZ2V0X3NpemUpKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIH07CiAKIHN0cnVjdCBwY2lfdnBkIHsKKwl1bnNpZ25lZCBpbnQgbGVuOwogCXN0cnVjdCBwY2lfdnBkX29wcyAqb3BzOwogCXN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyOyAvKiBkZXNjcmlwdG9yIGZvciBzeXNmcyBWUEQgZW50cnkgKi8KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9xdWlya3MuYyBiL2RyaXZlcnMvcGNpL3F1aXJrcy5jCmluZGV4IGRhYmI1NjMuLjMzOGEzZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jCisrKyBiL2RyaXZlcnMvcGNpL3F1aXJrcy5jCkBAIC0xNjcwLDYgKzE2NzAsNDggQEAKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0VBUkxZKFBDSV9WRU5ET1JfSURfVklBLCAweDMyNGUsIHF1aXJrX3ZpYV9jeDcwMF9wY2lfcGFya2luZ19jYWNoaW5nKTsKIAorLyoKKyAqIEZvciBCcm9hZGNvbSA1NzA2LCA1NzA4LCA1NzA5IHJldi4gQSBuaWNzLCBhbnkgcmVhZCBiZXlvbmQgdGhlCisgKiBWUEQgZW5kIHRhZyB3aWxsIGhhbmcgdGhlIGRldmljZS4gIFRoaXMgcHJvYmxlbSB3YXMgaW5pdGlhbGx5CisgKiBvYnNlcnZlZCB3aGVuIGEgdnBkIGVudHJ5IHdhcyBjcmVhdGVkIGluIHN5c2ZzCisgKiAoJy9zeXMvYnVzL3BjaS9kZXZpY2VzLzxpZD4vdnBkJykuICAgQSByZWFkIHRvIHRoaXMgc3lzZnMgZW50cnkKKyAqIHdpbGwgZHVtcCAzMmsgb2YgZGF0YS4gIFJlYWRpbmcgYSBmdWxsIDMyayB3aWxsIGNhdXNlIGFuIGFjY2VzcworICogYmV5b25kIHRoZSBWUEQgZW5kIHRhZyBjYXVzaW5nIHRoZSBkZXZpY2UgdG8gaGFuZy4gIE9uY2UgdGhlIGRldmljZQorICogaXMgaHVuZywgdGhlIGJueDIgZHJpdmVyIHdpbGwgbm90IGJlIGFibGUgdG8gcmVzZXQgdGhlIGRldmljZS4KKyAqIFdlIGJlbGlldmUgdGhhdCBpdCBpcyBsZWdhbCB0byByZWFkIGJleW9uZCB0aGUgZW5kIHRhZyBhbmQKKyAqIHRoZXJlZm9yZSB0aGUgc29sdXRpb24gaXMgdG8gbGltaXQgdGhlIHJlYWQvd3JpdGUgbGVuZ3RoLgorICovCitzdGF0aWMgdm9pZCBfX2RldmluaXQgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZChzdHJ1Y3QgcGNpX2RldiAqZGV2KQoreworCS8qICBPbmx5IGRpc2FibGUgdGhlIFZQRCBjYXBhYmlsaXR5IGZvciA1NzA2LCA1NzA4LCBhbmQgNTcwOSByZXYuIEEgKi8KKwlpZiAoKGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfTlgyXzU3MDYpIHx8CisJICAgIChkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX05YMl81NzA4KSB8fAorCSAgICAoKGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfTlgyXzU3MDkpICYmCisJICAgICAoZGV2LT5yZXZpc2lvbiAmIDB4ZjApID09IDB4MCkpIHsKKwkJaWYgKGRldi0+dnBkKQorCQkJZGV2LT52cGQtPmxlbiA9IDB4ODA7CisJfQorfQorCitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA2LAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwNlMsCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA4LAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwOFMsCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA5LAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwOVMsCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CisKICNpZmRlZiBDT05GSUdfUENJX01TSQogLyogU29tZSBjaGlwc2V0cyBkbyBub3Qgc3VwcG9ydCBNU0kuIFdlIGNhbm5vdCBlYXNpbHkgcmVseSBvbiBzZXR0aW5nCiAgKiBQQ0lfQlVTX0ZMQUdTX05PX01TSSBpbiBpdHMgYnVzIGZsYWdzIGJlY2F1c2UgdGhlcmUgYXJlIGFjdHVhbGx5CkBAIC0xNjg1LDYgKzE3MjcsNyBAQAogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9TRVJWRVJXT1JLUywgUENJX0RFVklDRV9JRF9TRVJWRVJXT1JLU19HQ05CX0xFLCBxdWlya19kaXNhYmxlX2FsbF9tc2kpOwogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JTNDAwXzIwMCwgcXVpcmtfZGlzYWJsZV9hbGxfbXNpKTsKIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SUzQ4MCwgcXVpcmtfZGlzYWJsZV9hbGxfbXNpKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfVklBLCBQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzMzYsIHF1aXJrX2Rpc2FibGVfYWxsX21zaSk7CiBERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0RFVklDRV9JRF9WSUFfVlQzMzUxLCBxdWlya19kaXNhYmxlX2FsbF9tc2kpOwogCiAvKiBEaXNhYmxlIE1TSSBvbiBjaGlwc2V0cyB0aGF0IGFyZSBrbm93biB0byBub3Qgc3VwcG9ydCBpdCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvS2NvbmZpZyBiL2RyaXZlcnMvcGNtY2lhL0tjb25maWcKaW5kZXggMWIwZWI1YS4uZTQ1NDAyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvS2NvbmZpZworKysgYi9kcml2ZXJzL3BjbWNpYS9LY29uZmlnCkBAIC0yNjMsNiArMjYzLDEzIEBACiAJICBTYXkgWSBoZXJlIHRvIHN1cHBvcnQgdGhlIENvbXBhY3RGbGFzaCBjb250cm9sbGVyIG9uIE9NQVAuCiAJICBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IHN1cHBvcnQgIlRydWUgSURFIiBtb2RlLgogCitjb25maWcgQkZJTl9DRlBDTUNJQQorCXRyaXN0YXRlICJCbGFja2ZpbiBDb21wYWN0Rmxhc2ggUENNQ0lBIERyaXZlciIKKwlkZXBlbmRzIG9uIFBDTUNJQSAmJiBCTEFDS0ZJTgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gc3VwcG9ydCB0aGUgQ29tcGFjdEZsYXNoIFBDTUNJQSBkcml2ZXIgZm9yIEJsYWNrZmluLgorCisKIGNvbmZpZyBBVDkxX0NGCiAJdHJpc3RhdGUgIkFUOTEgQ29tcGFjdEZsYXNoIENvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBQQ01DSUEgJiYgQVJDSF9BVDkxUk05MjAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9NYWtlZmlsZSBiL2RyaXZlcnMvcGNtY2lhL01ha2VmaWxlCmluZGV4IDZmNjQ3OGIuLjg1YzZjYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcGNtY2lhL01ha2VmaWxlCkBAIC0zNiw2ICszNiw3IEBACiBvYmotJChDT05GSUdfUENNQ0lBX1ZSQzQxNzEpCQkJKz0gdnJjNDE3MV9jYXJkLm8KIG9iai0kKENPTkZJR19QQ01DSUFfVlJDNDE3MykJCQkrPSB2cmM0MTczX2NhcmR1Lm8KIG9iai0kKENPTkZJR19PTUFQX0NGKQkJCQkrPSBvbWFwX2NmLm8KK29iai0kKENPTkZJR19CRklOX0NGUENNQ0lBKQkJCSs9IGJmaW5fY2ZfcGNtY2lhLm8KIG9iai0kKENPTkZJR19BVDkxX0NGKQkJCQkrPSBhdDkxX2NmLm8KIG9iai0kKENPTkZJR19FTEVDVFJBX0NGKQkJCSs9IGVsZWN0cmFfY2YubwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfZ2VuZXJpYy5oIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX2dlbmVyaWMuaAppbmRleCAxZTQ2N2JiLi5hNTNlZjU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfZ2VuZXJpYy5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9nZW5lcmljLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCkBAIC0zNCw5ICszMyw5IEBACiAjZGVmaW5lIEFVMTAwMF9QQ01DSUFfSU9fU1BFRUQgICAgICAgKDI1NSkKICNkZWZpbmUgQVUxMDAwX1BDTUNJQV9NRU1fU1BFRUQgICAgICAoMzAwKQogCi0jZGVmaW5lIEFVMVhfU09DSzBfSU8gICAgICAgIDB4RjAwMDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzBfUEhZU19BVFRSIDB4RjQwMDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzBfUEhZU19NRU0gIDB4RjgwMDAwMDAwCisjZGVmaW5lIEFVMVhfU09DSzBfSU8gICAgICAgIDB4RjAwMDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzBfUEhZU19BVFRSIDB4RjQwMDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzBfUEhZU19NRU0gIDB4RjgwMDAwMDAwVUxMCiAvKiBwc2V1ZG8gMzIgYml0IHBoeXMgYWRkcmVzc2VzLCB3aGljaCBnZXQgZml4ZWQgdXAgdG8gdGhlCiAgKiByZWFsIDM2IGJpdCBhZGRyZXNzIGluIGZpeHVwX2JpZ3BoeXNfYWRkcigpICovCiAjZGVmaW5lIEFVMVhfU09DSzBfUFNFVURPX1BIWVNfQVRUUiAweEY0MDAwMDAwCkBAIC00NSwxNiArNDQsMjAgQEAKIC8qIHBjbWNpYSBzb2NrZXQgMSBuZWVkcyBleHRlcm5hbCBnbHVlIGxvZ2ljIHNvIHRoZSBtZW1vcnkgbWFwCiAgKiBkaWZmZXJzIGZyb20gYm9hcmQgdG8gYm9hcmQuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTAwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjExMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxNTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTU1MCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjEyMDApCi0jZGVmaW5lIEFVMVhfU09DSzFfSU8gICAgICAgIDB4RjA4MDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzFfUEhZU19BVFRSIDB4RjQ4MDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzFfUEhZU19NRU0gIDB4Rjg4MDAwMDAwCisjaWYgZGVmaW5lZChDT05GSUdfTUlQU19QQjEwMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxMTAwKSB8fCBcCisgICAgZGVmaW5lZChDT05GSUdfTUlQU19QQjE1MDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxNTUwKSB8fCBcCisgICAgZGVmaW5lZChDT05GSUdfTUlQU19QQjEyMDApCisjZGVmaW5lIEFVMVhfU09DSzFfSU8gICAgICAgIDB4RjA4MDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzFfUEhZU19BVFRSIDB4RjQ4MDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzFfUEhZU19NRU0gIDB4Rjg4MDAwMDAwVUxMCiAjZGVmaW5lIEFVMVhfU09DSzFfUFNFVURPX1BIWVNfQVRUUiAweEY0ODAwMDAwCiAjZGVmaW5lIEFVMVhfU09DSzFfUFNFVURPX1BIWVNfTUVNICAweEY4ODAwMDAwCi0jZWxpZiBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTAwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjExMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxNTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTU1MCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjEyMDApCi0jZGVmaW5lIEFVMVhfU09DSzFfSU8gICAgICAgIDB4RjA0MDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzFfUEhZU19BVFRSIDB4RjQ0MDAwMDAwCi0jZGVmaW5lIEFVMVhfU09DSzFfUEhZU19NRU0gIDB4Rjg0MDAwMDAwCisjZWxpZiBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTAwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjExMDApIHx8IFwKKyAgICAgIGRlZmluZWQoQ09ORklHX01JUFNfREIxNTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTU1MCkgfHwgXAorICAgICAgZGVmaW5lZChDT05GSUdfTUlQU19EQjEyMDApCisjZGVmaW5lIEFVMVhfU09DSzFfSU8gICAgICAgIDB4RjA0MDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzFfUEhZU19BVFRSIDB4RjQ0MDAwMDAwVUxMCisjZGVmaW5lIEFVMVhfU09DSzFfUEhZU19NRU0gIDB4Rjg0MDAwMDAwVUxMCiAjZGVmaW5lIEFVMVhfU09DSzFfUFNFVURPX1BIWVNfQVRUUiAweEY0NDAwMDAwCiAjZGVmaW5lIEFVMVhfU09DSzFfUFNFVURPX1BIWVNfTUVNICAweEY4NDAwMDAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9wYjF4MDAuYyBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9wYjF4MDAuYwppbmRleCAxNTdlNDE0Li5hYTFjZDRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfcGIxeDAwLmMKKysrIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX3BiMXgwMC5jCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2J1c19vcHMuaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX3h4czE1MDAuYyBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF94eHMxNTAwLmMKaW5kZXggYzc4ZWQ1My4uOGE5YjE4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX3h4czE1MDAuYworKysgYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfeHhzMTUwMC5jCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2J1c19vcHMuaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvYmZpbl9jZl9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL2JmaW5fY2ZfcGNtY2lhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI3MzM4OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGNtY2lhL2JmaW5fY2ZfcGNtY2lhLmMKQEAgLTAsMCArMSwzMzkgQEAKKy8qCisgKiBmaWxlOiBkcml2ZXJzL3BjbWNpYS9iZmluX2NmLmMKKyAqCisgKiBiYXNlZCBvbjogZHJpdmVycy9wY21jaWEvb21hcF9jZi5jCisgKiBvbWFwX2NmLmMgLS0gT01BUCAxNnh4IENvbXBhY3RGbGFzaCBjb250cm9sbGVyIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNSBEYXZpZCBCcm93bmVsbAorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDggTWljaGFlbCBIZW5uZXJpY2ggQW5hbG9nIERldmljZXMgSW5jLgorICoKKyAqIGJ1Z3M6ICAgICAgICAgZW50ZXIgYnVncyBhdCBodHRwOi8vYmxhY2tmaW4udWNsaW51eC5vcmcvCisgKgorICogdGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgZ251IGdlbmVyYWwgcHVibGljIGxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgZnJlZSBzb2Z0d2FyZSBmb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiB0aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCB3aXRob3V0IGFueSB3YXJyYW50eTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBtZXJjaGFudGFiaWxpdHkgb3IgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuICBzZWUgdGhlCisgKiBnbnUgZ2VuZXJhbCBwdWJsaWMgbGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIGdudSBnZW5lcmFsIHB1YmxpYyBsaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIGNvcHlpbmcuCisgKiBpZiBub3QsIHdyaXRlIHRvIHRoZSBmcmVlIHNvZnR3YXJlIGZvdW5kYXRpb24sCisgKiA1OSB0ZW1wbGUgcGxhY2UgLSBzdWl0ZSAzMzAsIGJvc3RvbiwgbWEgMDIxMTEtMTMwNywgdXNhLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgorI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorCisjZGVmaW5lCVNaXzFLCTB4MDAwMDA0MDAKKyNkZWZpbmUJU1pfOEsJMHgwMDAwMjAwMAorI2RlZmluZQlTWl8ySwkoMiAqIFNaXzFLKQorCisjZGVmaW5lCVBPTExfSU5URVJWQUwJKDIgKiBIWikKKworI2RlZmluZQlDRl9BVEFTRUxfRU5BIAkweDIwMzExODAyCS8qIEludmVydHMgUkVTRVQgKi8KKyNkZWZpbmUJQ0ZfQVRBU0VMX0RJUyAJMHgyMDMxMTgwMAorCisjZGVmaW5lIGJmaW5fY2ZfcHJlc2VudChwZngpIChncGlvX2dldF92YWx1ZShwZngpKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX25hbWVbXSA9ICJiZmluX2NmX3BjbWNpYSI7CisKK3N0cnVjdCBiZmluX2NmX3NvY2tldCB7CisJc3RydWN0IHBjbWNpYV9zb2NrZXQgc29ja2V0OworCisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisJdW5zaWduZWQgcHJlc2VudDoxOworCXVuc2lnbmVkIGFjdGl2ZToxOworCisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKwl1bnNpZ25lZCBsb25nIHBoeXNfY2ZfaW87CisJdW5zaWduZWQgbG9uZyBwaHlzX2NmX2F0dHI7CisJdV9pbnQgaXJxOworCXVfc2hvcnQgY2RfcGZ4OworfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgaW50IGJmaW5fY2ZfcmVzZXQodm9pZCkKK3sKKwlvdXR3KDAsIENGX0FUQVNFTF9FTkEpOworCW1kZWxheSgyMDApOworCW91dHcoMCwgQ0ZfQVRBU0VMX0RJUyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiZmluX2NmX3NzX2luaXQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCit7CisJcmV0dXJuIDA7Cit9CisKKy8qIHRoZSB0aW1lciBpcyBwcmltYXJpbHkgdG8ga2ljayB0aGlzIHNvY2tldCdzIHBjY2FyZGQgKi8KK3N0YXRpYyB2b2lkIGJmaW5fY2ZfdGltZXIodW5zaWduZWQgbG9uZyBfY2YpCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZiA9ICh2b2lkICopX2NmOworCXVuc2lnbmVkIHNob3J0IHByZXNlbnQgPSBiZmluX2NmX3ByZXNlbnQoY2YtPmNkX3BmeCk7CisKKwlpZiAocHJlc2VudCAhPSBjZi0+cHJlc2VudCkgeworCQljZi0+cHJlc2VudCA9IHByZXNlbnQ7CisJCWRldl9kYmcoJmNmLT5wZGV2LT5kZXYsICI6IGNhcmQgJXNcbiIsCisJCQkgcHJlc2VudCA/ICJwcmVzZW50IiA6ICJnb25lIik7CisJCXBjbWNpYV9wYXJzZV9ldmVudHMoJmNmLT5zb2NrZXQsIFNTX0RFVEVDVCk7CisJfQorCisJaWYgKGNmLT5hY3RpdmUpCisJCW1vZF90aW1lcigmY2YtPnRpbWVyLCBqaWZmaWVzICsgUE9MTF9JTlRFUlZBTCk7Cit9CisKK3N0YXRpYyBpbnQgYmZpbl9jZl9nZXRfc3RhdHVzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1X2ludCAqc3ApCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKworCWlmICghc3ApCisJCXJldHVybiAtRUlOVkFMOworCisJY2YgPSBjb250YWluZXJfb2Yocywgc3RydWN0IGJmaW5fY2Zfc29ja2V0LCBzb2NrZXQpOworCisJaWYgKGJmaW5fY2ZfcHJlc2VudChjZi0+Y2RfcGZ4KSkgeworCQkqc3AgPSBTU19SRUFEWSB8IFNTX0RFVEVDVCB8IFNTX1BPV0VST04gfCBTU18zVkNBUkQ7CisJCXMtPmlycS5Bc3NpZ25lZElSUSA9IDA7CisJCXMtPnBjaV9pcnEgPSBjZi0+aXJxOworCisJfSBlbHNlCisJCSpzcCA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2JmaW5fY2Zfc2V0X3NvY2tldChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqc29jaywgc3RydWN0IHNvY2tldF9zdGF0ZV90ICpzKQoreworCisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKwljZiA9IGNvbnRhaW5lcl9vZihzb2NrLCBzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQsIHNvY2tldCk7CisKKwlzd2l0Y2ggKHMtPlZjYykgeworCWNhc2UgMDoKKwljYXNlIDMzOgorCQlicmVhazsKKwljYXNlIDUwOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocy0+ZmxhZ3MgJiBTU19SRVNFVCkgeworCQlkaXNhYmxlX2lycShjZi0+aXJxKTsKKwkJYmZpbl9jZl9yZXNldCgpOworCQllbmFibGVfaXJxKGNmLT5pcnEpOworCX0KKworCWRldl9kYmcoJmNmLT5wZGV2LT5kZXYsICI6IFZjYyAlZCwgaW9faXJxICVkLCBmbGFncyAlMDR4IGNzYyAlMDR4XG4iLAorCQkgcy0+VmNjLCBzLT5pb19pcnEsIHMtPmZsYWdzLCBzLT5jc2NfbWFzayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiZmluX2NmX3NzX3N1c3BlbmQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCit7CisJcmV0dXJuIGJmaW5fY2Zfc2V0X3NvY2tldChzLCAmZGVhZF9zb2NrZXQpOworfQorCisvKiByZWdpb25zIGFyZSAySyBlYWNoOiAgbWVtLCBhdHRyaWIsIGlvIChhbmQgcmVzZXJ2ZWQtZm9yLWlkZSkgKi8KKworc3RhdGljIGludCBiZmluX2NmX3NldF9pb19tYXAoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY2NhcmRfaW9fbWFwICppbykKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCisJY2YgPSBjb250YWluZXJfb2Yocywgc3RydWN0IGJmaW5fY2Zfc29ja2V0LCBzb2NrZXQpOworCWlvLT5mbGFncyAmPSBNQVBfQUNUSVZFIHwgTUFQX0FUVFJJQiB8IE1BUF8xNkJJVDsKKwlpby0+c3RhcnQgPSBjZi0+cGh5c19jZl9pbzsKKwlpby0+c3RvcCA9IGlvLT5zdGFydCArIFNaXzJLIC0gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorYmZpbl9jZl9zZXRfbWVtX21hcChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHBjY2FyZF9tZW1fbWFwICptYXApCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKworCWlmIChtYXAtPmNhcmRfc3RhcnQpCisJCXJldHVybiAtRUlOVkFMOworCWNmID0gY29udGFpbmVyX29mKHMsIHN0cnVjdCBiZmluX2NmX3NvY2tldCwgc29ja2V0KTsKKwltYXAtPnN0YXRpY19zdGFydCA9IGNmLT5waHlzX2NmX2lvOworCW1hcC0+ZmxhZ3MgJj0gTUFQX0FDVElWRSB8IE1BUF9BVFRSSUIgfCBNQVBfMTZCSVQ7CisJaWYgKG1hcC0+ZmxhZ3MgJiBNQVBfQVRUUklCKQorCQltYXAtPnN0YXRpY19zdGFydCA9IGNmLT5waHlzX2NmX2F0dHI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwY2NhcmRfb3BlcmF0aW9ucyBiZmluX2NmX29wcyA9IHsKKwkuaW5pdCA9IGJmaW5fY2Zfc3NfaW5pdCwKKwkuc3VzcGVuZCA9IGJmaW5fY2Zfc3Nfc3VzcGVuZCwKKwkuZ2V0X3N0YXR1cyA9IGJmaW5fY2ZfZ2V0X3N0YXR1cywKKwkuc2V0X3NvY2tldCA9IGJmaW5fY2Zfc2V0X3NvY2tldCwKKwkuc2V0X2lvX21hcCA9IGJmaW5fY2Zfc2V0X2lvX21hcCwKKwkuc2V0X21lbV9tYXAgPSBiZmluX2NmX3NldF9tZW1fbWFwLAorfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBpbnQgX19kZXZpbml0IGJmaW5fY2ZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCXN0cnVjdCByZXNvdXJjZSAqaW9fbWVtLCAqYXR0cl9tZW07CisJaW50IGlycTsKKwl1bnNpZ25lZCBzaG9ydCBjZF9wZng7CisJaW50IHN0YXR1cyA9IDA7CisKKwlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQmxhY2tmaW4gQ29tcGFjdEZsYXNoL1BDTUNJQSBTb2NrZXQgRHJpdmVyXG4iKTsKKworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKCFpcnEpCisJCXJldHVybiAtRUlOVkFMOworCisJY2RfcGZ4ID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsJLypDYXJkIERldGVjdCBHUElPIFBJTiAqLworCisJaWYgKGdwaW9fcmVxdWVzdChjZF9wZngsICJwY21jaWE6IENEIikpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkgICAgICAgIkZhaWxlZCBybyByZXF1ZXN0IENhcmQgRGV0ZWN0IEdQSU9fJWRcbiIsCisJCSAgICAgICBjZF9wZngpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKwlncGlvX2RpcmVjdGlvbl9pbnB1dChjZF9wZngpOworCisJY2YgPSBremFsbG9jKHNpemVvZiAqY2YsIEdGUF9LRVJORUwpOworCWlmICghY2YpIHsKKwkJZ3Bpb19mcmVlKGNkX3BmeCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWNmLT5jZF9wZnggPSBjZF9wZng7CisKKwlzZXR1cF90aW1lcigmY2YtPnRpbWVyLCBiZmluX2NmX3RpbWVyLCAodW5zaWduZWQgbG9uZyljZik7CisKKwljZi0+cGRldiA9IHBkZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2YpOworCisJY2YtPmlycSA9IGlycTsKKwljZi0+c29ja2V0LnBjaV9pcnEgPSBpcnE7CisKKwlzZXRfaXJxX3R5cGUoaXJxLCBJUlFGX1RSSUdHRVJfTE9XKTsKKworCWlvX21lbSA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJYXR0cl9tZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDEpOworCisJaWYgKCFpb19tZW0gfHwgIWF0dHJfbWVtKQorCQlnb3RvIGZhaWwwOworCisJY2YtPnBoeXNfY2ZfaW8gPSBpb19tZW0tPnN0YXJ0OworCWNmLT5waHlzX2NmX2F0dHIgPSBhdHRyX21lbS0+c3RhcnQ7CisKKwkvKiBwY21jaWEgbGF5ZXIgb25seSByZW1hcHMgInJlYWwiIG1lbW9yeSAqLworCWNmLT5zb2NrZXQuaW9fb2Zmc2V0ID0gKHVuc2lnbmVkIGxvbmcpCisJICAgIGlvcmVtYXAoY2YtPnBoeXNfY2ZfaW8sIFNaXzJLKTsKKworCWlmICghY2YtPnNvY2tldC5pb19vZmZzZXQpCisJCWdvdG8gZmFpbDA7CisKKwlkZXZfZXJyKCZwZGV2LT5kZXYsICI6IG9uIGlycSAlZFxuIiwgaXJxKTsKKworCWRldl9kYmcoJnBkZXYtPmRldiwgIjogJXNcbiIsCisJCSBiZmluX2NmX3ByZXNlbnQoY2YtPmNkX3BmeCkgPyAicHJlc2VudCIgOiAiKG5vdCBwcmVzZW50KSIpOworCisJY2YtPnNvY2tldC5vd25lciA9IFRISVNfTU9EVUxFOworCWNmLT5zb2NrZXQuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CisJY2YtPnNvY2tldC5vcHMgPSAmYmZpbl9jZl9vcHM7CisJY2YtPnNvY2tldC5yZXNvdXJjZV9vcHMgPSAmcGNjYXJkX3N0YXRpY19vcHM7CisJY2YtPnNvY2tldC5mZWF0dXJlcyA9IFNTX0NBUF9QQ0NBUkQgfCBTU19DQVBfU1RBVElDX01BUAorCSAgICB8IFNTX0NBUF9NRU1fQUxJR047CisJY2YtPnNvY2tldC5tYXBfc2l6ZSA9IFNaXzJLOworCisJc3RhdHVzID0gcGNtY2lhX3JlZ2lzdGVyX3NvY2tldCgmY2YtPnNvY2tldCk7CisJaWYgKHN0YXR1cyA8IDApCisJCWdvdG8gZmFpbDI7CisKKwljZi0+YWN0aXZlID0gMTsKKwltb2RfdGltZXIoJmNmLT50aW1lciwgamlmZmllcyArIFBPTExfSU5URVJWQUwpOworCXJldHVybiAwOworCitmYWlsMjoKKwlpb3VubWFwKCh2b2lkIF9faW9tZW0gKiljZi0+c29ja2V0LmlvX29mZnNldCk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKGNmLT5waHlzX2NmX2lvLCBTWl84Syk7CisKK2ZhaWwwOgorCWdwaW9fZnJlZShjZi0+Y2RfcGZ4KTsKKwlrZnJlZShjZik7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBiZmluX2NmX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBiZmluX2NmX3NvY2tldCAqY2YgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWdwaW9fZnJlZShjZi0+Y2RfcGZ4KTsKKwljZi0+YWN0aXZlID0gMDsKKwlwY21jaWFfdW5yZWdpc3Rlcl9zb2NrZXQoJmNmLT5zb2NrZXQpOworCWRlbF90aW1lcl9zeW5jKCZjZi0+dGltZXIpOworCWlvdW5tYXAoKHZvaWQgX19pb21lbSAqKWNmLT5zb2NrZXQuaW9fb2Zmc2V0KTsKKwlyZWxlYXNlX21lbV9yZWdpb24oY2YtPnBoeXNfY2ZfaW8sIFNaXzhLKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKwlrZnJlZShjZik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmZpbl9jZl9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBtZXNnKQoreworCXJldHVybiBwY21jaWFfc29ja2V0X2Rldl9zdXNwZW5kKCZwZGV2LT5kZXYsIG1lc2cpOworfQorCitzdGF0aWMgaW50IGJmaW5fY2ZfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIHBjbWNpYV9zb2NrZXRfZGV2X3Jlc3VtZSgmcGRldi0+ZGV2KTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmZpbl9jZl9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJICAgLm5hbWUgPSAoY2hhciAqKWRyaXZlcl9uYW1lLAorCQkgICAub3duZXIgPSBUSElTX01PRFVMRSwKKwkJICAgfSwKKwkucHJvYmUgPSBiZmluX2NmX3Byb2JlLAorCS5yZW1vdmUgPSBfX2RldmV4aXRfcChiZmluX2NmX3JlbW92ZSksCisJLnN1c3BlbmQgPSBiZmluX2NmX3N1c3BlbmQsCisJLnJlc3VtZSA9IGJmaW5fY2ZfcmVzdW1lLAorfTsKKworc3RhdGljIGludCBfX2luaXQgYmZpbl9jZl9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmYmZpbl9jZl9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYmZpbl9jZl9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmJmaW5fY2ZfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoYmZpbl9jZl9pbml0KTsKK21vZHVsZV9leGl0KGJmaW5fY2ZfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIk1pY2hhZWwgSGVubmVyaWNoIDxoZW5uZXJpY2hAYmxhY2tmaW4udWNsaW51eC5vcmc+IikKK01PRFVMRV9ERVNDUklQVElPTigiQkZJTiBDRi9QQ01DSUEgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9jYXJkYnVzLmMgYi9kcml2ZXJzL3BjbWNpYS9jYXJkYnVzLmMKaW5kZXggZmIyZjM4ZC4uOTExY2EwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY2FyZGJ1cy5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2NhcmRidXMuYwpAQCAtMzAsMTEgKzMwLDkgQEAKICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2Npc3RwbC5jIGIvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKaW5kZXggMzYzNzk1My4uOWZjZmYwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKQEAgLTE0MzksMTAgKzE0MzgsMTEgQEAKICAgICAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi1pbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCBjaXNpbmZvX3QgKmluZm8pCitpbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCB1bnNpZ25lZCBpbnQgKmluZm8pCiB7CiAgICAgdHVwbGVfdCAqdHVwbGU7CiAgICAgY2lzcGFyc2VfdCAqcDsKKyAgICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOwogICAgIGludCByZXQsIHJlc2VydmVkLCBkZXZfb2sgPSAwLCBpZGVudF9vayA9IDA7CiAKICAgICBpZiAoIXMpCkBAIC0xNDU3LDcgKzE0NTcsNyBAQAogCXJldHVybiBDU19PVVRfT0ZfUkVTT1VSQ0U7CiAgICAgfQogCi0gICAgaW5mby0+Q2hhaW5zID0gcmVzZXJ2ZWQgPSAwOworICAgIGNvdW50ID0gcmVzZXJ2ZWQgPSAwOwogICAgIHR1cGxlLT5EZXNpcmVkVHVwbGUgPSBSRVRVUk5fRklSU1RfVFVQTEU7CiAgICAgdHVwbGUtPkF0dHJpYnV0ZXMgPSBUVVBMRV9SRVRVUk5fQ09NTU9OOwogICAgIHJldCA9IHBjY2FyZF9nZXRfZmlyc3RfdHVwbGUocywgZnVuY3Rpb24sIHR1cGxlKTsKQEAgLTE0ODIsNyArMTQ4Miw3IEBACiAgICAgaWYgKCFkZXZfb2sgJiYgIWlkZW50X29rKQogCWdvdG8gZG9uZTsKIAotICAgIGZvciAoaW5mby0+Q2hhaW5zID0gMTsgaW5mby0+Q2hhaW5zIDwgTUFYX1RVUExFUzsgaW5mby0+Q2hhaW5zKyspIHsKKyAgICBmb3IgKGNvdW50ID0gMTsgY291bnQgPCBNQVhfVFVQTEVTOyBjb3VudCsrKSB7CiAJcmV0ID0gcGNjYXJkX2dldF9uZXh0X3R1cGxlKHMsIGZ1bmN0aW9uLCB0dXBsZSk7CiAJaWYgKHJldCAhPSBDU19TVUNDRVNTKSBicmVhazsKIAlpZiAoKCh0dXBsZS0+VHVwbGVDb2RlID4gMHgyMykgJiYgKHR1cGxlLT5UdXBsZUNvZGUgPCAweDQwKSkgfHwKQEAgLTE0OTAsMTEgKzE0OTAsMTMgQEAKIAkgICAgKCh0dXBsZS0+VHVwbGVDb2RlID4gMHg5MCkgJiYgKHR1cGxlLT5UdXBsZUNvZGUgPCAweGZmKSkpCiAJICAgIHJlc2VydmVkKys7CiAgICAgfQotICAgIGlmICgoaW5mby0+Q2hhaW5zID09IE1BWF9UVVBMRVMpIHx8IChyZXNlcnZlZCA+IDUpIHx8Ci0JKCghZGV2X29rIHx8ICFpZGVudF9vaykgJiYgKGluZm8tPkNoYWlucyA+IDEwKSkpCi0JaW5mby0+Q2hhaW5zID0gMDsKKyAgICBpZiAoKGNvdW50KSB8fCAocmVzZXJ2ZWQgPiA1KSB8fAorCSgoIWRldl9vayB8fCAhaWRlbnRfb2spICYmIChjb3VudCA+IDEwKSkpCisJY291bnQgPSAwOwogCiBkb25lOgorICAgIGlmIChpbmZvKQorCSAgICAqaW5mbyA9IGNvdW50OwogICAgIGtmcmVlKHR1cGxlKTsKICAgICBrZnJlZShwKTsKICAgICByZXR1cm4gQ1NfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2NzLmMgYi9kcml2ZXJzL3BjbWNpYS9jcy5jCmluZGV4IDI5Mjc2YmQuLmQxMjA3MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2NzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvY3MuYwpAQCAtMzIsMTEgKzMyLDkgQEAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgogCi0jZGVmaW5lIElOX0NBUkRfU0VSVklDRVMKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzcmVnLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RzLmg+CkBAIC0yMzgsNyArMjM2LDYgQEAKIAogCWluaXRfY29tcGxldGlvbigmc29ja2V0LT5zb2NrZXRfcmVsZWFzZWQpOwogCWluaXRfY29tcGxldGlvbigmc29ja2V0LT50aHJlYWRfZG9uZSk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmc29ja2V0LT50aHJlYWRfd2FpdCk7CiAJbXV0ZXhfaW5pdCgmc29ja2V0LT5za3RfbXV0ZXgpOwogCXNwaW5fbG9ja19pbml0KCZzb2NrZXQtPnRocmVhZF9sb2NrKTsKIApAQCAtMjc4LDEwICsyNzUsOSBAQAogCiAJY3NfZGJnKHNvY2tldCwgMCwgInBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCgweCVwKVxuIiwgc29ja2V0LT5vcHMpOwogCi0JaWYgKHNvY2tldC0+dGhyZWFkKSB7Ci0JCXdha2VfdXAoJnNvY2tldC0+dGhyZWFkX3dhaXQpOworCWlmIChzb2NrZXQtPnRocmVhZCkKIAkJa3RocmVhZF9zdG9wKHNvY2tldC0+dGhyZWFkKTsKLQl9CisKIAlyZWxlYXNlX2Npc19tZW0oc29ja2V0KTsKIAogCS8qIHJlbW92ZSBmcm9tIG91ciBvd24gbGlzdCAqLwpAQCAtNjM1LDcgKzYzMSw2IEBACiBzdGF0aWMgaW50IHBjY2FyZGQodm9pZCAqX19za3QpCiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnNrdCA9IF9fc2t0OwotCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOwogCWludCByZXQ7CiAKIAlza3QtPnRocmVhZCA9IGN1cnJlbnQ7CkBAIC02NTYsNyArNjUxLDYgQEAKIAlpZiAocmV0KQogCQlkZXZfd2Fybigmc2t0LT5kZXYsICJlcnIgJWQgYWRkaW5nIHNvY2tldCBhdHRyaWJ1dGVzXG4iLCByZXQpOwogCi0JYWRkX3dhaXRfcXVldWUoJnNrdC0+dGhyZWFkX3dhaXQsICZ3YWl0KTsKIAljb21wbGV0ZSgmc2t0LT50aHJlYWRfZG9uZSk7CiAKIAlzZXRfZnJlZXphYmxlKCk7CkBAIC02OTQsOCArNjg4LDYgQEAKIAkvKiBtYWtlIHN1cmUgd2UgYXJlIHJ1bm5pbmcgYmVmb3JlIHdlIGV4aXQgKi8KIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwogCi0JcmVtb3ZlX3dhaXRfcXVldWUoJnNrdC0+dGhyZWFkX3dhaXQsICZ3YWl0KTsKLQogCS8qIHJlbW92ZSBmcm9tIHRoZSBkZXZpY2UgY29yZSAqLwogCXBjY2FyZF9zeXNmc19yZW1vdmVfc29ja2V0KCZza3QtPmRldik7CiAJZGV2aWNlX3VucmVnaXN0ZXIoJnNrdC0+ZGV2KTsKQEAgLTcxNiw3ICs3MDgsNyBAQAogCQlzLT50aHJlYWRfZXZlbnRzIHw9IGV2ZW50czsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+dGhyZWFkX2xvY2ssIGZsYWdzKTsKIAotCQl3YWtlX3VwKCZzLT50aHJlYWRfd2FpdCk7CisJCXdha2VfdXBfcHJvY2VzcyhzLT50aHJlYWQpOwogCX0KIH0gLyogcGNtY2lhX3BhcnNlX2V2ZW50cyAqLwogRVhQT1JUX1NZTUJPTChwY21jaWFfcGFyc2VfZXZlbnRzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2NzX2ludGVybmFsLmggYi9kcml2ZXJzL3BjbWNpYS9jc19pbnRlcm5hbC5oCmluZGV4IGU3ZDVkMTQuLjYzZGMxYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2NzX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9wY21jaWEvY3NfaW50ZXJuYWwuaApAQCAtMjYsMTggKzI2LDYgQEAKICNkZWZpbmUgQ0xJRU5UX1dJTl9SRVEoaSkJKDB4MTw8KGkpKQogI2RlZmluZSBDTElFTlRfQ0FSREJVUwkJMHg4MDAwCiAKLSNkZWZpbmUgUkVHSU9OX01BR0lDCTB4RTNDOQotdHlwZWRlZiBzdHJ1Y3QgcmVnaW9uX3QgewotICAgIHVfc2hvcnQJCXJlZ2lvbl9tYWdpYzsKLSAgICB1X3Nob3J0CQlzdGF0ZTsKLSAgICBkZXZfaW5mb190CQlkZXZfaW5mbzsKLSAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZQkqbXRkOwotICAgIHVfaW50CQlNZWRpYUlEOwotICAgIHJlZ2lvbl9pbmZvX3QJaW5mbzsKLX0gcmVnaW9uX3Q7Ci0KLSNkZWZpbmUgUkVHSU9OX1NUQUxFCTB4MDEKLQogLyogRWFjaCBjYXJkIGZ1bmN0aW9uIGdldHMgb25lIG9mIHRoZXNlIGd1eXMgKi8KIHR5cGVkZWYgc3RydWN0IGNvbmZpZ190IHsKIAlzdHJ1Y3Qga3JlZglyZWY7CkBAIC0xMzAsNyArMTE4LDYgQEAKIGludCBwY21jaWFfZ2V0X3dpbmRvdyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgd2luZG93X2hhbmRsZV90ICpoYW5kbGUsIGludCBpZHgsIHdpbl9yZXFfdCAqcmVxKTsKIGludCBwY2NhcmRfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjb25maWdfaW5mb190ICpjb25maWcpOwogaW50IHBjY2FyZF9yZXNldF9jYXJkKHN0cnVjdCBwY21jaWFfc29ja2V0ICpza3QpOwotaW50IHBjY2FyZF9nZXRfc3RhdHVzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNzX3N0YXR1c190ICpzdGF0dXMpOwogCiAKIHN0cnVjdCBwY21jaWFfY2FsbGJhY2t7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9kcy5jIGIvZHJpdmVycy9wY21jaWEvZHMuYwppbmRleCBlNDA3NzU0Li40MTc0ZDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9kcy5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2RzLmMKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgpAQCAtNzQxLDkgKzc0MCw4IEBACiAKIHN0YXRpYyBpbnQgcGNtY2lhX2NhcmRfYWRkKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKQogewotCWNpc2luZm9fdCBjaXNpbmZvOwogCWNpc3RwbF9sb25nbGlua19tZmNfdCBtZmM7Ci0JdW5zaWduZWQgaW50IG5vX2Z1bmNzLCBpOworCXVuc2lnbmVkIGludCBub19mdW5jcywgaSwgbm9fY2hhaW5zOwogCWludCByZXQgPSAwOwogCiAJaWYgKCEocy0+cmVzb3VyY2Vfc2V0dXBfZG9uZSkpIHsKQEAgLTc1Nyw4ICs3NTUsOCBAQAogCQlyZXR1cm4gLUVBR0FJTjsgLyogdHJ5IGFnYWluLCBidXQgbGF0ZXIuLi4gKi8KIAl9CiAKLQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmY2lzaW5mbyk7Ci0JaWYgKHJldCB8fCAhY2lzaW5mby5DaGFpbnMpIHsKKwlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmbm9fY2hhaW5zKTsKKwlpZiAocmV0IHx8ICFub19jaGFpbnMpIHsKIAkJZHNfZGJnKDAsICJpbnZhbGlkIENJUyBvciBpbnZhbGlkIHJlc291cmNlc1xuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KQEAgLTg1Miw3ICs4NTAsNyBAQAogewogCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzID0gZGV2LT5zb2NrZXQ7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKLQljaGFyIHBhdGhbMjBdOworCWNoYXIgcGF0aFtGSVJNV0FSRV9OQU1FX01BWF07CiAJaW50IHJldCA9IC1FTk9NRU07CiAJaW50IG5vX2Z1bmNzOwogCWludCBvbGRfZnVuY3M7CkBAIC04NjQsNyArODYyLDcgQEAKIAogCWRzX2RiZygxLCAidHJ5aW5nIHRvIGxvYWQgQ0lTIGZpbGUgJXNcbiIsIGZpbGVuYW1lKTsKIAotCWlmIChzdHJsZW4oZmlsZW5hbWUpID4gMTQpIHsKKwlpZiAoc3RybGVuKGZpbGVuYW1lKSA+IChGSVJNV0FSRV9OQU1FX01BWCAtIDEpKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInBjbWNpYTogQ0lTIGZpbGVuYW1lIGlzIHRvbyBsb25nIFslc11cbiIsCiAJCQlmaWxlbmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jIGIvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jCmluZGV4IGYyZTgxMGYuLmZiMmJjMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2hkNjQ0NjVfc3MuYworKysgYi9kcml2ZXJzL3BjbWNpYS9oZDY0NDY1X3NzLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogJElkOiBoZDY0NDY1X3NzLmMsdiAxLjcgMjAwMy8wNy8wNiAxNDo0Mjo1MCBsZXRoYWwgRXhwICQKLSAqCiAgKiBEZXZpY2UgZHJpdmVyIGZvciB0aGUgUENNQ0lBIGNvbnRyb2xsZXIgbW9kdWxlIG9mIHRoZQogICogSGl0YWNoaSBIRDY0NDY1IGhhbmRoZWxkIGNvbXBhbmlvbiBjaGlwLgogICoKQEAgLTQ4LDcgKzQ2LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAjZGVmaW5lIE1PRE5BTUUgImhkNjQ0NjVfc3MiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTIuYyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCmluZGV4IGUxMzYxODYuLjQ2NTYxZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCkBAIC01LDggKzUsNiBAQAogICoKICAqIEF1dGhvcjogQXJqYW4gVmFuIERlIFZlbiA8YXJqYW52QHJlZGhhdC5jb20+CiAgKiBMb29zbHkgYmFzZWQgb24gaTgyMzY1LmMgZnJvbSB0aGUgcGNtY2lhLWNzIHBhY2thZ2UKLSAqCi0gKiAkSWQ6IGk4MjA5MmFhLmMsdiAxLjIgMjAwMS8xMC8yMyAxNDo0MzozNCBhcmphbnYgRXhwICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oIGIvZHJpdmVycy9wY21jaWEvaTgyMDkyYWEuaAppbmRleCBiMGQ0NTMzLi44ODM2ZDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5MmFhLmgKQEAgLTMsOCArMyw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KIAotLyogJElkOiBpODIwOTJhYS5oLHYgMS4xLjEuMSAyMDAxLzA5LzE5IDE0OjUzOjE1IGR3bXcyIEV4cCAkICovCi0KIC8qIERlYnVnaW5nIGRlZmluZXMgKi8KICNpZmRlZiBOT1RSQUNFCiAjZGVmaW5lIGVudGVyKHgpICAgcHJpbnRrKCJFbnRlcjogJXMsICVzIGxpbmUgJWlcbiIseCxfX0ZJTEVfXyxfX0xJTkVfXykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2k4MjM2NS5jIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKaW5kZXggMzJhMmFiMS4uNjhmNmIyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKKysrIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKQEAgLTEyNjMsNyArMTI2Myw3IEBACiAKICAgICByZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwogICAgIGlmIChyZXQpCi0JcmV0dXJuIHJldDsKKwlnb3RvIGVycl9vdXQ7CiAKICAgICBpODIzNjVfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJpODIzNjUiLCAwKTsKICAgICBpZiAoaTgyMzY1X2RldmljZSkgewpAQCAtMTI3MywxMCArMTI3Myw4IEBACiAgICAgfSBlbHNlCiAJICAgIHJldCA9IC1FTk9NRU07CiAKLSAgICBpZiAocmV0KSB7Ci0JZHJpdmVyX3VucmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwotCXJldHVybiByZXQ7Ci0gICAgfQorICAgIGlmIChyZXQpCisJZ290byBlcnJfZHJpdmVyX3VucmVnaXN0ZXI7CiAKICAgICBwcmludGsoS0VSTl9JTkZPICJJbnRlbCBJU0EgUENJQyBwcm9iZTogIik7CiAgICAgc29ja2V0cyA9IDA7CkBAIC0xMjg1LDE2ICsxMjgzLDE3IEBACiAKICAgICBpZiAoc29ja2V0cyA9PSAwKSB7CiAJcHJpbnRrKCJub3QgZm91bmQuXG4iKTsKLQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKLQlyZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOwotCWRyaXZlcl91bnJlZ2lzdGVyKCZpODIzNjVfZHJpdmVyKTsKLQlyZXR1cm4gLUVOT0RFVjsKKwlyZXQgPSAtRU5PREVWOworCWdvdG8gZXJyX2Rldl91bnJlZ2lzdGVyOwogICAgIH0KIAogICAgIC8qIFNldCB1cCBpbnRlcnJ1cHQgaGFuZGxlcihzKSAqLwogICAgIGlmIChncmFiX2lycSAhPSAwKQotCXJlcXVlc3RfaXJxKGNzX2lycSwgcGNpY19pbnRlcnJ1cHQsIDAsICJpODIzNjUiLCBwY2ljX2ludGVycnVwdCk7Ci0gICAgCisJcmV0ID0gcmVxdWVzdF9pcnEoY3NfaXJxLCBwY2ljX2ludGVycnVwdCwgMCwgImk4MjM2NSIsIHBjaWNfaW50ZXJydXB0KTsKKworICAgIGlmIChyZXQpCisJZ290byBlcnJfc29ja2V0X3JlbGVhc2U7CisKICAgICAvKiByZWdpc3RlciBzb2NrZXRzIHdpdGggdGhlIHBjbWNpYSBjb3JlICovCiAgICAgZm9yIChpID0gMDsgaSA8IHNvY2tldHM7IGkrKykgewogCSAgICBzb2NrZXRbaV0uc29ja2V0LmRldi5wYXJlbnQgPSAmaTgyMzY1X2RldmljZS0+ZGV2OwpAQCAtMTMyNCw3ICsxMzIzLDIzIEBACiAgICAgfQogICAgIAogICAgIHJldHVybiAwOwotICAgIAorZXJyX3NvY2tldF9yZWxlYXNlOgorICAgIGZvciAoaSA9IDA7IGkgPCBzb2NrZXRzOyBpKyspIHsKKwkvKiBUdXJuIG9mZiBhbGwgaW50ZXJydXB0IHNvdXJjZXMhICovCisJaTM2NV9zZXQoaSwgSTM2NV9DU0NJTlQsIDApOworCXJlbGVhc2VfcmVnaW9uKHNvY2tldFtpXS5pb2FkZHIsIDIpOworICAgIH0KK2Vycl9kZXZfdW5yZWdpc3RlcjoKKyAgICBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKKyAgICByZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOworI2lmZGVmIENPTkZJR19QTlAKKyAgICBpZiAoaTgyMzY1X3BucGRldikKKwlwbnBfZGlzYWJsZV9kZXYoaTgyMzY1X3BucGRldik7CisjZW5kaWYKK2Vycl9kcml2ZXJfdW5yZWdpc3RlcjoKKyAgICBkcml2ZXJfdW5yZWdpc3RlcigmaTgyMzY1X2RyaXZlcik7CitlcnJfb3V0OgorICAgIHJldHVybiByZXQ7CiB9IC8qIGluaXRfaTgyMzY1ICovCiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2k4MjM2NSh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL204eHhfcGNtY2lhLmMKaW5kZXggYWM3MGQyYy4uMTNhNWZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS9tOHh4X3BjbWNpYS5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIG04eHhfcGNtY2lhLmMgLSBMaW51eCBQQ01DSUEgc29ja2V0IGRyaXZlciBmb3IgdGhlIG1wYzh4eCBzZXJpZXMuCiAgKgotICogKEMpIDE5OTktMjAwMCBNYWdudXMgRGFtbSA8ZGFtbUBiaXRzbWFydC5jb20+CisgKiAoQykgMTk5OS0yMDAwIE1hZ251cyBEYW1tIDxkYW1tQG9wZW5zb3VyY2Uuc2U+CiAgKiAoQykgMjAwMS0yMDAyIE1vbnRhdmlzdGEgU29mdHdhcmUsIEluYy4KICAqICAgICA8bWxvY2tlQG12aXN0YS5jb20+CiAgKgpAQCAtNjAsNyArNjAsNiBAQAogI2luY2x1ZGUgPGFzbS9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxhc20vb2ZfcGxhdGZvcm0uaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMgYi9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMKaW5kZXggNDYzMTRiNC4uNTY5Yjc0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvb21hcF9jZi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL29tYXBfY2YuYwpAQCAtMzgsMTkgKzM4LDE5IEBACiAjZGVmaW5lCUNGX0JBU0UJMHhmZmZlMjgwMAogCiAvKiBzdGF0dXM7IHJlYWQgYWZ0ZXIgSVJRICovCi0jZGVmaW5lIENGX1NUQVRVU19SRUcJCV9fUkVHMTYoQ0ZfQkFTRSArIDB4MDApCisjZGVmaW5lIENGX1NUQVRVUwkJCShDRl9CQVNFICsgMHgwMCkKICMJZGVmaW5lCUNGX1NUQVRVU19CQURfUkVBRAkoMSA8PCAyKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0JBRF9XUklURQkoMSA8PCAxKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0NBUkRfREVURUNUCSgxIDw8IDApCiAKIC8qIHdoaWNoIGNoaXBzZWxlY3QgKENTMC4uQ1MzKSBpcyB1c2VkIGZvciBDRiAoYWN0aXZlIGxvdykgKi8KLSNkZWZpbmUgQ0ZfQ0ZHX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwMikKKyNkZWZpbmUgQ0ZfQ0ZHCQkJCShDRl9CQVNFICsgMHgwMikKIAogLyogY2FyZCByZXNldCAqLwotI2RlZmluZSBDRl9DT05UUk9MX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ0ZfQ09OVFJPTAkJCShDRl9CQVNFICsgMHgwNCkKICMJZGVmaW5lCUNGX0NPTlRST0xfUkVTRVQJKDEgPDwgMCkKIAotI2RlZmluZSBvbWFwX2NmX3ByZXNlbnQoKSAoIShDRl9TVEFUVVNfUkVHICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKKyNkZWZpbmUgb21hcF9jZl9wcmVzZW50KCkgKCEob21hcF9yZWFkdyhDRl9TVEFUVVMpICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTEzOSwxMSArMTM5LDExIEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWNvbnRyb2wgPSBDRl9DT05UUk9MX1JFRzsKKwljb250cm9sID0gb21hcF9yZWFkdyhDRl9DT05UUk9MKTsKIAlpZiAocy0+ZmxhZ3MgJiBTU19SRVNFVCkKLQkJQ0ZfQ09OVFJPTF9SRUcgPSBDRl9DT05UUk9MX1JFU0VUOworCQlvbWFwX3dyaXRldyhDRl9DT05UUk9MX1JFU0VULCBDRl9DT05UUk9MKTsKIAllbHNlCi0JCUNGX0NPTlRST0xfUkVHID0gMDsKKwkJb21hcF93cml0ZXcoMCwgQ0ZfQ09OVFJPTCk7CiAKIAlwcl9kZWJ1ZygiJXM6IFZjYyAlZCwgaW9faXJxICVkLCBmbGFncyAlMDR4IGNzYyAlMDR4XG4iLAogCQlkcml2ZXJfbmFtZSwgcy0+VmNjLCBzLT5pb19pcnEsIHMtPmZsYWdzLCBzLT5jc2NfbWFzayk7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAlvbWFwX2NmZ19yZWcoVjEwXzE2MTBfQ0ZfSVJFUSk7CiAJb21hcF9jZmdfcmVnKFcxMF8xNjEwX0NGX1JFU0VUKTsKIAotCUNGX0NGR19SRUcgPSB+KDEgPDwgc2VnKTsKKwlvbWFwX3dyaXRldyh+KDEgPDwgc2VnKSwgQ0ZfQ0ZHKTsKIAogCXByX2luZm8oIiVzOiBjcyVkIG9uIGlycSAlZFxuIiwgZHJpdmVyX25hbWUsIHNlZywgaXJxKTsKIApAQCAtMjc5LDE0ICsyNzksMTUgQEAKIAkgKiBDRi9QQ01DSUEgdmFyaWFudHMuLi4KIAkgKi8KIAlwcl9kZWJ1ZygiJXM6IGNzJWQsIHByZXZpb3VzIGNjcyAlMDh4IGFjcyAlMDh4XG4iLCBkcml2ZXJfbmFtZSwKLQkJCXNlZywgRU1JRlNfQ0NTKHNlZyksIEVNSUZTX0FDUyhzZWcpKTsKLQlFTUlGU19DQ1Moc2VnKSA9IDB4MDAwNGExYjM7CS8qIHN5bmNoIG1vZGUgNCBldGMgKi8KLQlFTUlGU19BQ1Moc2VnKSA9IDB4MDAwMDAwMDA7CS8qIE9FIGhvbGQvc2V0dXAgKi8KKwkJc2VnLCBvbWFwX3JlYWRsKEVNSUZTX0NDUyhzZWcpKSwgb21hcF9yZWFkbChFTUlGU19BQ1Moc2VnKSkpOworCW9tYXBfd3JpdGVsKDB4MDAwNGExYjMsIEVNSUZTX0NDUyhzZWcpKTsJLyogc3luY2ggbW9kZSA0IGV0YyAqLworCW9tYXBfd3JpdGVsKDB4MDAwMDAwMDAsIEVNSUZTX0FDUyhzZWcpKTsJLyogT0UgaG9sZC9zZXR1cCAqLwogCiAJLyogQ0YgdXNlcyBhcm14b3JfY2ssIHdoaWNoIGlzICJhbHdheXMiIGF2YWlsYWJsZSAqLwogCiAJcHJfZGVidWcoIiVzOiBzdHMgJTA0eCBjZmcgJTA0eCBjb250cm9sICUwNHggJXNcbiIsIGRyaXZlcl9uYW1lLAotCQlDRl9TVEFUVVNfUkVHLCBDRl9DRkdfUkVHLCBDRl9DT05UUk9MX1JFRywKKwkJb21hcF9yZWFkdyhDRl9TVEFUVVMpLCBvbWFwX3JlYWR3KENGX0NGRyksCisJCW9tYXBfcmVhZHcoQ0ZfQ09OVFJPTCksCiAJCW9tYXBfY2ZfcHJlc2VudCgpID8gInByZXNlbnQiIDogIihub3QgcHJlc2VudCkiKTsKIAogCWNmLT5zb2NrZXQub3duZXIgPSBUSElTX01PRFVMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9pb2N0bC5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKaW5kZXggNWYxODZhYi4uNDE5Zjk3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKQEAgLTI3LDEyICsyNywxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgorI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KIApAQCAtMTM4LDYgKzEzOSwxNTQgQEAKIH0KICNlbmRpZgogCisKKyNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCisKK3N0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKK3sKKwlpbnQgaXJxOworCXUzMiBtYXNrOworCisJaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROworCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKKwkJcmV0dXJuIENTX0JBRF9JUlE7CisKKwlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCisJCXJldHVybiAwOworCisJbWFzayA9IDEgPDwgaXJxOworCisJaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKKwkJcmV0dXJuIDA7CisKKwlzLT5pcnFfbWFzayAmPSB+bWFzazsKKworCXJldHVybiAwOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7CisJcmV0dXJuIENTX1NVQ0NFU1M7Cit9CisKKyNlbmRpZgorCitzdGF0aWMgaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKQoreworCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzOworCWludCByZXQgPSBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZG93bl9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOworCWxpc3RfZm9yX2VhY2hfZW50cnkocywgJnBjbWNpYV9zb2NrZXRfbGlzdCwgc29ja2V0X2xpc3QpIHsKKworCQlpZiAoYWRqLT5SZXNvdXJjZSA9PSBSRVNfSVJRKQorCQkJcmV0ID0gYWRqdXN0X2lycShzLCBhZGopOworCisJCWVsc2UgaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX2lvKSB7CisJCQl1bnNpZ25lZCBsb25nIGJlZ2luLCBlbmQ7CisKKwkJCS8qIHlvdSBjYW4ndCB1c2UgdGhlIG9sZCBpbnRlcmZhY2UgaWYgdGhlIG5ldworCQkJICogb25lIHdhcyB1c2VkIGJlZm9yZSAqLworCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCWlmICgocy0+cmVzb3VyY2Vfc2V0dXBfbmV3KSAmJgorCQkJICAgICEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkgeworCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQljb250aW51ZTsKKwkJCX0gZWxzZSBpZiAoIShzLT5yZXNvdXJjZV9zZXR1cF9vbGQpKQorCQkJCXMtPnJlc291cmNlX3NldHVwX29sZCA9IDE7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisKKwkJCXN3aXRjaCAoYWRqLT5SZXNvdXJjZSkgeworCQkJY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgorCQkJCWJlZ2luID0gYWRqLT5yZXNvdXJjZS5tZW1vcnkuQmFzZTsKKwkJCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7CisJCQkJaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX21lbSkKKwkJCQkJcmV0ID1zLT5yZXNvdXJjZV9vcHMtPmFkZF9tZW0ocywgYWRqLT5BY3Rpb24sIGJlZ2luLCBlbmQpOworCQkJY2FzZSBSRVNfSU9fUkFOR0U6CisJCQkJYmVnaW4gPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0OworCQkJCWVuZCA9IGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQgKyBhZGotPnJlc291cmNlLmlvLk51bVBvcnRzIC0gMTsKKwkJCQlpZiAocy0+cmVzb3VyY2Vfb3BzLT5hZGRfaW8pCisJCQkJCXJldCA9IHMtPnJlc291cmNlX29wcy0+YWRkX2lvKHMsIGFkai0+QWN0aW9uLCBiZWdpbiwgZW5kKTsKKwkJCX0KKwkJCWlmICghcmV0KSB7CisJCQkJLyogYXMgdGhlcmUncyBubyB3YXkgd2Uga25vdyB0aGlzIGlzIHRoZQorCQkJCSAqIGxhc3QgY2FsbCB0byBhZGp1c3RfcmVzb3VyY2VfaW5mbywgd2UKKwkJCQkgKiBhbHdheXMgbmVlZCB0byBhc3N1bWUgdGhpcyBpcyB0aGUgbGF0ZXN0CisJCQkJICogb25lLi4uICovCisJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQlzLT5yZXNvdXJjZV9zZXR1cF9kb25lID0gMTsKKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisJCQl9CisJCX0KKwl9CisJdXBfcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKKworCXJldHVybiAocmV0KTsKK30KKworLyoqIHBjY2FyZF9nZXRfc3RhdHVzCisgKgorICogR2V0IHRoZSBjdXJyZW50IHNvY2tldCBzdGF0ZSBiaXRzLiAgV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgbGF0Y2hlZAorICogU29ja2V0U3RhdGUgeWV0OiBJIGhhdmVuJ3Qgc2VlbiBhbnkgcG9pbnQgZm9yIGl0LgorICovCisKK3N0YXRpYyBpbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsCisJCQkgICAgIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKKwkJCSAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKK3sKKwljb25maWdfdCAqYzsKKwlpbnQgdmFsOworCisJcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOworCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOworCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQorCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOworCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQorCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKKworCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7CisKKwlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKKwkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKKwkJdV9jaGFyIHJlZzsKKwkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7CisJCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJCX0gZWxzZSB7CisJCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKKwkJfQorCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgeworCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOworCQl9CisJCXJldHVybiBDU19TVUNDRVNTOworCX0KKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOworCXJldHVybiBDU19TVUNDRVNTOworfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLworCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgIFRoZXNlIG1hbmFnZSBhIHJpbmcgYnVmZmVyIG9mIGV2ZW50cyBwZW5kaW5nIGZvciBvbmUgdXNlciBwcm9jZXNzCkBAIC0zOTcsMjAgKzU0NiwyNyBAQAogICAgIHN0cnVjdCBwY21jaWFfc29ja2V0ICpzOwogICAgIHVzZXJfaW5mb190ICp1c2VyOwogICAgIHN0YXRpYyBpbnQgd2FybmluZ19wcmludGVkID0gMDsKKyAgICBpbnQgcmV0ID0gMDsKIAogICAgIGRzX2RiZygwLCAiZHNfb3Blbihzb2NrZXQgJWQpXG4iLCBpKTsKIAorICAgIGxvY2tfa2VybmVsKCk7CiAgICAgcyA9IHBjbWNpYV9nZXRfc29ja2V0X2J5X25yKGkpOwotICAgIGlmICghcykKLQkgICAgcmV0dXJuIC1FTk9ERVY7CisgICAgaWYgKCFzKSB7CisJICAgIHJldCA9IC1FTk9ERVY7CisJICAgIGdvdG8gb3V0OworICAgIH0KICAgICBzID0gcGNtY2lhX2dldF9zb2NrZXQocyk7Ci0gICAgaWYgKCFzKQotCSAgICByZXR1cm4gLUVOT0RFVjsKKyAgICBpZiAoIXMpIHsKKwkgICAgcmV0ID0gLUVOT0RFVjsKKwkgICAgZ290byBvdXQ7CisgICAgfQogCiAgICAgaWYgKChmaWxlLT5mX2ZsYWdzICYgT19BQ0NNT0RFKSAhPSBPX1JET05MWSkgewogCSAgICBpZiAocy0+cGNtY2lhX3N0YXRlLmJ1c3kpIHsKIAkJICAgIHBjbWNpYV9wdXRfc29ja2V0KHMpOwotCQkgICAgcmV0dXJuIC1FQlVTWTsKKwkJICAgIHJldCA9IC1FQlVTWTsKKwkJICAgIGdvdG8gb3V0OwogCSAgICB9CiAJZWxzZQogCSAgICBzLT5wY21jaWFfc3RhdGUuYnVzeSA9IDE7CkBAIC00MTksNyArNTc1LDggQEAKICAgICB1c2VyID0ga21hbGxvYyhzaXplb2YodXNlcl9pbmZvX3QpLCBHRlBfS0VSTkVMKTsKICAgICBpZiAoIXVzZXIpIHsKIAkgICAgcGNtY2lhX3B1dF9zb2NrZXQocyk7Ci0JICAgIHJldHVybiAtRU5PTUVNOworCSAgICByZXQgPSAtRU5PTUVNOworCSAgICBnb3RvIG91dDsKICAgICB9CiAgICAgdXNlci0+ZXZlbnRfdGFpbCA9IHVzZXItPmV2ZW50X2hlYWQgPSAwOwogICAgIHVzZXItPm5leHQgPSBzLT51c2VyOwpAQCAtNDQxLDcgKzU5OCw5IEBACiAKICAgICBpZiAocy0+cGNtY2lhX3N0YXRlLnByZXNlbnQpCiAJcXVldWVfZXZlbnQodXNlciwgQ1NfRVZFTlRfQ0FSRF9JTlNFUlRJT04pOwotICAgIHJldHVybiAwOworb3V0OgorICAgIHVubG9ja19rZXJuZWwoKTsKKyAgICByZXR1cm4gcmV0OwogfSAvKiBkc19vcGVuICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtNTQ2LDggKzcwNSw2IEBACiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi1leHRlcm4gaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKTsKLQogc3RhdGljIGludCBkc19pb2N0bChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlLAogCQkgICAgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQogewpAQCAtNjQ5LDcgKzgwNiw3IEBACiAJbXV0ZXhfbG9jaygmcy0+c2t0X211dGV4KTsKIAlwY21jaWFfdmFsaWRhdGVfbWVtKHMpOwogCW11dGV4X3VubG9jaygmcy0+c2t0X211dGV4KTsKLQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvKTsKKwlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvLkNoYWlucyk7CiAJYnJlYWs7CiAgICAgY2FzZSBEU19TVVNQRU5EX0NBUkQ6CiAJcmV0ID0gcGNtY2lhX3N1c3BlbmRfY2FyZChzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9yZXNvdXJjZS5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKaW5kZXggMWQxMjhmYi4uNDg4NGExOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKQEAgLTIxLDExICsyMSw5IEBACiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KQEAgLTMxMSw3NCArMzA5LDYgQEAKIEVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF93aW5kb3cpOwogCiAKLS8qKiBwY2NhcmRfZ2V0X3N0YXR1cwotICoKLSAqIEdldCB0aGUgY3VycmVudCBzb2NrZXQgc3RhdGUgYml0cy4gIFdlIGRvbid0IHN1cHBvcnQgdGhlIGxhdGNoZWQKLSAqIFNvY2tldFN0YXRlIHlldDogSSBoYXZlbid0IHNlZW4gYW55IHBvaW50IGZvciBpdC4KLSAqLwotCi1pbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKLQkJICAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKLXsKLQljb25maWdfdCAqYzsKLQlpbnQgdmFsOwotCi0Jcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOwotCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOwotCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQotCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOwotCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQotCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKLQotCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7Ci0KLQlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKLQkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKLQkJdV9jaGFyIHJlZzsKLQkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7Ci0JCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKLQkJfQotCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgewotCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOwotCQl9Ci0JCXJldHVybiBDU19TVUNDRVNTOwotCX0KLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOwotCXJldHVybiBDU19TVUNDRVNTOwotfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLwotCi1pbnQgcGNtY2lhX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjc19zdGF0dXNfdCAqc3RhdHVzKQotewotCXJldHVybiBwY2NhcmRfZ2V0X3N0YXR1cyhwX2Rldi0+c29ja2V0LCBwX2Rldiwgc3RhdHVzKTsKLX0KLUVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF9zdGF0dXMpOwotCi0KLQogLyoqIHBjbWNpYV9nZXRfbWVtX3BhZ2UKICAqCiAgKiBDaGFuZ2UgdGhlIGNhcmQgYWRkcmVzcyBvZiBhbiBhbHJlYWR5IG9wZW4gbWVtb3J5IHdpbmRvdy4KQEAgLTgxMiw2ICs3NDIsMTUgQEAKIAkJdHlwZSA9IElSUUZfU0hBUkVEOwogCiAjaWZkZWYgQ09ORklHX1BDTUNJQV9QUk9CRQorCisjaWZkZWYgSVJRX05PQVVUT0VOCisJLyogaWYgdGhlIHVuZGVybHlpbmcgSVJRIGluZnJhc3RydWN0dXJlIGFsbG93cyBmb3IgaXQsIG9ubHkgYWxsb2NhdGUKKwkgKiB0aGUgSVJRLCBidXQgZG8gbm90IGVuYWJsZSBpdAorCSAqLworCWlmICghKHJlcS0+QXR0cmlidXRlcyAmIElSUV9IQU5ETEVfUFJFU0VOVCkpCisJCXR5cGUgfD0gSVJRX05PQVVUT0VOOworI2VuZGlmIC8qIElSUV9OT0FVVE9FTiAqLworCiAJaWYgKHMtPmlycS5Bc3NpZ25lZElSUSAhPSAwKSB7CiAJCS8qIElmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBhc3NpZ25lZCwgaXQgbXVzdCBiZSB0aGUgc2FtZSAqLwogCQlpcnEgPSBzLT5pcnEuQXNzaWduZWRJUlE7CkBAIC05NjYsNyArOTA1LDcgQEAKIAlwY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uKHBfZGV2KTsKIAlwY21jaWFfcmVsZWFzZV9pbyhwX2RldiwgJnBfZGV2LT5pbyk7CiAJcGNtY2lhX3JlbGVhc2VfaXJxKHBfZGV2LCAmcF9kZXYtPmlycSk7Ci0JaWYgKCZwX2Rldi0+d2luKQorCWlmIChwX2Rldi0+d2luKQogCQlwY21jaWFfcmVsZWFzZV93aW5kb3cocF9kZXYtPndpbik7CiB9CiBFWFBPUlRfU1lNQk9MKHBjbWNpYV9kaXNhYmxlX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2Jhc2UuYwppbmRleCA5NDE0MTYzLi5jY2ZkZjE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9iYXNlLmMKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogCiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfY21feDI3MC5jCmluZGV4IGU3YWIwNjAuLmYxMjNmY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2NtX3gyNzAuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KQEAgLTEzMCw3ICsxMzEsNyBAQAogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gY214MjcwX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBjbXgyNzBfcGNtY2lhX3NodXRkb3duLApAQCAtMTQ3LDE1ICsxNDgsMjEgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX2FybWNvcmUoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljbXgyNzBfcGNtY2lhX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygicHhhMnh4LXBjbWNpYSIsIC0xKTsKIAogCWlmICghY214MjcwX3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JY214MjcwX3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJmNteDI3MF9wY21jaWFfb3BzOworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShjbXgyNzBfcGNtY2lhX2RldmljZSwgJmNteDI3MF9wY21jaWFfb3BzLAorCQkJCSAgICAgICBzaXplb2YoY214MjcwX3BjbWNpYV9vcHMpKTsKIAotCXByaW50ayhLRVJOX0lORk8gIlJlZ2lzdGVyaW5nIGNtLXgyNzAgUENNQ0lBIGludGVyZmFjZS5cbiIpOwotCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoY214MjcwX3BjbWNpYV9kZXZpY2UpOworCWlmIChyZXQgPT0gMCkgeworCQlwcmludGsoS0VSTl9JTkZPICJSZWdpc3RlcmluZyBjbS14MjcwIFBDTUNJQSBpbnRlcmZhY2UuXG4iKTsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChjbXgyNzBfcGNtY2lhX2RldmljZSk7CisJfQogCiAJaWYgKHJldCkKIAkJcGxhdGZvcm1fZGV2aWNlX3B1dChjbXgyNzBfcGNtY2lhX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMKaW5kZXggMTQ1Yjg1ZS4uOTJkMWNjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcHhhMnh4X21haW5zdG9uZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9tYWluc3RvbmUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgpAQCAtMTM2LDcgKzEzNyw3IEBACiB7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gbXN0X3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBtc3RfcGNtY2lhX2h3X3NodXRkb3duLApAQCAtMTUzLDEzICsxNTQsMTcgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX21haW5zdG9uZSgpKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCW1zdF9wY21jaWFfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJweGEyeHgtcGNtY2lhIiwgLTEpOwogCWlmICghbXN0X3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXN0X3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJm1zdF9wY21jaWFfb3BzOwotCi0JcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKG1zdF9wY21jaWFfZGV2aWNlLCAmbXN0X3BjbWNpYV9vcHMsCisJCQkJICAgICAgIHNpemVvZihtc3RfcGNtY2lhX29wcykpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CiAKIAlpZiAocmV0KQogCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KG1zdF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfc2hhcnBzbC5jCmluZGV4IGQ1YzMzYmQuLmQ3MWY5M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X3NoYXJwc2wuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJc2hhcnBzbF9wY21jaWFfaW5pdF9yZXNldChza3QpOwogfQogCi1zdGF0aWMgc3RydWN0IHBjbWNpYV9sb3dfbGV2ZWwgc2hhcnBzbF9wY21jaWFfb3BzID0geworc3RhdGljIHN0cnVjdCBwY21jaWFfbG93X2xldmVsIHNoYXJwc2xfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lciAgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQgICAgICAgICAgICAgICAgPSBzaGFycHNsX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93biAgICAgICAgICAgID0gc2hhcnBzbF9wY21jaWFfaHdfc2h1dGRvd24sCkBAIC0yNjEsMTAgKzI2MSwxMiBAQAogCWlmICghc2hhcnBzbF9wY21jaWFfZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBsYXRmb3JtX2RhdGEgPSAmc2hhcnBzbF9wY21jaWFfb3BzOwotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBhcmVudCA9IHBsYXRmb3JtX3Njb29wX2NvbmZpZy0+ZGV2c1swXS5kZXY7Ci0KLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHNoYXJwc2xfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHNoYXJwc2xfcGNtY2lhX2RldmljZSwKKwkJCSZzaGFycHNsX3BjbWNpYV9vcHMsIHNpemVvZihzaGFycHNsX3BjbWNpYV9vcHMpKTsKKwlpZiAocmV0ID09IDApIHsKKwkJc2hhcnBzbF9wY21jaWFfZGV2aWNlLT5kZXYucGFyZW50ID0gcGxhdGZvcm1fc2Nvb3BfY29uZmlnLT5kZXZzWzBdLmRldjsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChzaGFycHNsX3BjbWNpYV9kZXZpY2UpOworCX0KIAogCWlmIChyZXQpCiAJCXBsYXRmb3JtX2RldmljZV9wdXQoc2hhcnBzbF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX21nci5jCmluZGV4IGNlMjIyNjIuLmMwZTJhZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19tZ3IuYwpAQCAtMjEsODYgKzIxLDYgQEAKICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAKLSNpZmRlZiBDT05GSUdfUENNQ0lBX0lPQ1RMCi0KLSNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCi0KLXN0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKLXsKLQlpbnQgaXJxOwotCXUzMiBtYXNrOwotCi0JaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROwotCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKLQkJcmV0dXJuIENTX0JBRF9JUlE7Ci0KLQlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCi0JCXJldHVybiAwOwotCi0JbWFzayA9IDEgPDwgaXJxOwotCi0JaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKLQkJcmV0dXJuIDA7Ci0KLQlzLT5pcnFfbWFzayAmPSB+bWFzazsKLQotCXJldHVybiAwOwotfQotCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7Ci0JcmV0dXJuIENTX1NVQ0NFU1M7Ci19Ci0KLSNlbmRpZgotCi0KLWludCBwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8oYWRqdXN0X3QgKmFkaikKLXsKLQlzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqczsKLQlpbnQgcmV0ID0gQ1NfVU5TVVBQT1JURURfRlVOQ1RJT047Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWRvd25fcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHMsICZwY21jaWFfc29ja2V0X2xpc3QsIHNvY2tldF9saXN0KSB7Ci0KLQkJaWYgKGFkai0+UmVzb3VyY2UgPT0gUkVTX0lSUSkKLQkJCXJldCA9IGFkanVzdF9pcnEocywgYWRqKTsKLQotCQllbHNlIGlmIChzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZSkgewotCi0JCQkvKiB5b3UgY2FuJ3QgdXNlIHRoZSBvbGQgaW50ZXJmYWNlIGlmIHRoZSBuZXcKLQkJCSAqIG9uZSB3YXMgdXNlZCBiZWZvcmUgKi8KLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQlpZiAoKHMtPnJlc291cmNlX3NldHVwX25ldykgJiYKLQkJCSAgICAhKHMtPnJlc291cmNlX3NldHVwX29sZCkpIHsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQkJY29udGludWU7Ci0JCQl9IGVsc2UgaWYgKCEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkKLQkJCQlzLT5yZXNvdXJjZV9zZXR1cF9vbGQgPSAxOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgZmxhZ3MpOwotCi0JCQlyZXQgPSBzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZShzLCBhZGopOwotCQkJaWYgKCFyZXQpIHsKLQkJCQkvKiBhcyB0aGVyZSdzIG5vIHdheSB3ZSBrbm93IHRoaXMgaXMgdGhlCi0JCQkJICogbGFzdCBjYWxsIHRvIGFkanVzdF9yZXNvdXJjZV9pbmZvLCB3ZQotCQkJCSAqIGFsd2F5cyBuZWVkIHRvIGFzc3VtZSB0aGlzIGlzIHRoZSBsYXRlc3QKLQkJCQkgKiBvbmUuLi4gKi8KLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgZmxhZ3MpOwotCQkJCXMtPnJlc291cmNlX3NldHVwX2RvbmUgPSAxOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCX0KLQl1cF9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOwotCi0JcmV0dXJuIChyZXQpOwotfQotRVhQT1JUX1NZTUJPTChwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8pOwotCi0jZW5kaWYKLQogaW50IHBjbWNpYV92YWxpZGF0ZV9tZW0oc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCiB7CiAJaWYgKHMtPnJlc291cmNlX29wcy0+dmFsaWRhdGVfbWVtKQpAQCAtMTY0LDcgKzg0LDggQEAKIAkuYWRqdXN0X2lvX3JlZ2lvbiA9IE5VTEwsCiAJLmZpbmRfaW8gPSBOVUxMLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKQEAgLTI2NCw3ICsxODUsOCBAQAogCS5hZGp1c3RfaW9fcmVnaW9uID0gaW9keW5fYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IGlvZHluX2ZpbmRfaW9fcmVnaW9uLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX25vbnN0YXRpYy5jCmluZGV4IDBmY2Y3NjMuLmQwYzFkNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19ub25zdGF0aWMuYwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKQEAgLTI2MSwyMSArMjYwLDIyIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAogLyogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgY2FyZHMgd2l0aCBhIHZhbGlkIENJUyAqLwotc3RhdGljIGludCByZWFkYWJsZShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHJlc291cmNlICpyZXMsIGNpc2luZm9fdCAqaW5mbykKK3N0YXRpYyBpbnQgcmVhZGFibGUoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCByZXNvdXJjZSAqcmVzLAorCQkgICAgdW5zaWduZWQgaW50ICpjb3VudCkKIHsKIAlpbnQgcmV0ID0gLTE7CiAKIAlzLT5jaXNfbWVtLnJlcyA9IHJlczsKIAlzLT5jaXNfdmlydCA9IGlvcmVtYXAocmVzLT5zdGFydCwgcy0+bWFwX3NpemUpOwogCWlmIChzLT5jaXNfdmlydCkgewotCQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCBpbmZvKTsKKwkJcmV0ID0gcGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgY291bnQpOwogCQkvKiBpbnZhbGlkYXRlIG1hcHBpbmcgYW5kIENJUyBjYWNoZSAqLwogCQlpb3VubWFwKHMtPmNpc192aXJ0KTsKIAkJcy0+Y2lzX3ZpcnQgPSBOVUxMOwogCQlkZXN0cm95X2Npc19jYWNoZShzKTsKIAl9CiAJcy0+Y2lzX21lbS5yZXMgPSBOVUxMOwotCWlmICgocmV0ICE9IDApIHx8IChpbmZvLT5DaGFpbnMgPT0gMCkpCisJaWYgKChyZXQgIT0gMCkgfHwgKGNvdW50ID09IDApKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gMTsKIH0KQEAgLTMxNiw3ICszMTYsNyBAQAogY2lzX3JlYWRhYmxlKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczEsICpyZXMyOwotCWNpc2luZm9fdCBpbmZvMSwgaW5mbzI7CisJdW5zaWduZWQgaW50IGluZm8xLCBpbmZvMjsKIAlpbnQgcmV0ID0gMDsKIAogCXJlczEgPSBjbGFpbV9yZWdpb24ocywgYmFzZSwgc2l6ZS8yLCBJT1JFU09VUkNFX01FTSwgImNzIG1lbW9yeSBwcm9iZSIpOwpAQCAtMzMwLDcgKzMzMCw3IEBACiAJZnJlZV9yZWdpb24ocmVzMik7CiAJZnJlZV9yZWdpb24ocmVzMSk7CiAKLQlyZXR1cm4gKHJldCA9PSAyKSAmJiAoaW5mbzEuQ2hhaW5zID09IGluZm8yLkNoYWlucyk7CisJcmV0dXJuIChyZXQgPT0gMikgJiYgKGluZm8xID09IGluZm8yKTsKIH0KIAogc3RhdGljIGludApAQCAtNzY2LDIxICs3NjYsNiBAQAogfQogCiAKLXN0YXRpYyBpbnQgbm9uc3RhdGljX2FkanVzdF9yZXNvdXJjZV9pbmZvKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKQotewotCXVuc2lnbmVkIGxvbmcgZW5kOwotCi0Jc3dpdGNoIChhZGotPlJlc291cmNlKSB7Ci0JY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7Ci0JCXJldHVybiBhZGp1c3RfbWVtb3J5KHMsIGFkai0+QWN0aW9uLCBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlLCBlbmQpOwotCWNhc2UgUkVTX0lPX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0ICsgYWRqLT5yZXNvdXJjZS5pby5OdW1Qb3J0cyAtIDE7Ci0JCXJldHVybiBhZGp1c3RfaW8ocywgYWRqLT5BY3Rpb24sIGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQsIGVuZCk7Ci0JfQotCXJldHVybiBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKLX0KLQogI2lmZGVmIENPTkZJR19QQ0kKIHN0YXRpYyBpbnQgbm9uc3RhdGljX2F1dG9hZGRfcmVzb3VyY2VzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKQogewpAQCAtODg5LDcgKzg3NCw4IEBACiAJLmFkanVzdF9pb19yZWdpb24gPSBub25zdGF0aWNfYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IG5vbnN0YXRpY19maW5kX2lvX3JlZ2lvbiwKIAkuZmluZF9tZW0gPSBub25zdGF0aWNfZmluZF9tZW1fcmVnaW9uLAotCS5hZGp1c3RfcmVzb3VyY2UgPSBub25zdGF0aWNfYWRqdXN0X3Jlc291cmNlX2luZm8sCisJLmFkZF9pbyA9IGFkanVzdF9pbywKKwkuYWRkX21lbSA9IGFkanVzdF9tZW1vcnksCiAJLmluaXQgPSBub25zdGF0aWNfaW5pdCwKIAkuZXhpdCA9IG5vbnN0YXRpY19yZWxlYXNlX3Jlc291cmNlX2RiLAogfTsKQEAgLTEwMDgsNDEgKzk5NCwzNCBAQAogfQogc3RhdGljIERFVklDRV9BVFRSKGF2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLCAwNjAwLCBzaG93X21lbV9kYiwgc3RvcmVfbWVtX2RiKTsKIAotc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpwY2NhcmRfcnNyY19hdHRyaWJ1dGVzW10gPSB7Ci0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfaW8sCi0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLAorc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnBjY2FyZF9yc3JjX2F0dHJpYnV0ZXNbXSA9IHsKKwkmZGV2X2F0dHJfYXZhaWxhYmxlX3Jlc291cmNlc19pby5hdHRyLAorCSZkZXZfYXR0cl9hdmFpbGFibGVfcmVzb3VyY2VzX21lbS5hdHRyLAogCU5VTEwsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByc3JjX2F0dHJpYnV0ZXMgPSB7CisJLmF0dHJzID0gcGNjYXJkX3JzcmNfYXR0cmlidXRlcywKK307CisKIHN0YXRpYyBpbnQgX19kZXZpbml0IHBjY2FyZF9zeXNmc19hZGRfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKmNsYXNzX2ludGYpCiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqKmF0dHI7Ci0JaW50IHJldCA9IDA7CisKIAlpZiAocy0+cmVzb3VyY2Vfb3BzICE9ICZwY2NhcmRfbm9uc3RhdGljX29wcykKIAkJcmV0dXJuIDA7Ci0KLQlmb3IgKGF0dHIgPSBwY2NhcmRfcnNyY19hdHRyaWJ1dGVzOyAqYXR0cjsgYXR0cisrKSB7Ci0JCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICphdHRyKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7CisJcmV0dXJuIHN5c2ZzX2NyZWF0ZV9ncm91cCgmZGV2LT5rb2JqLCAmcnNyY19hdHRyaWJ1dGVzKTsKIH0KIAogc3RhdGljIHZvaWQgX19kZXZleGl0IHBjY2FyZF9zeXNmc19yZW1vdmVfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlICpjbGFzc19pbnRmKQogewogCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKiphdHRyOwogCiAJaWYgKHMtPnJlc291cmNlX29wcyAhPSAmcGNjYXJkX25vbnN0YXRpY19vcHMpCiAJCXJldHVybjsKLQotCWZvciAoYXR0ciA9IHBjY2FyZF9yc3JjX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspCi0JCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICphdHRyKTsKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJmRldi0+a29iaiwgJnJzcmNfYXR0cmlidXRlcyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlIHBjY2FyZF9yc3JjX2ludGVyZmFjZSBfX3JlZmRhdGEgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmggYi9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmgKaW5kZXggMWVkYzFkYS4uOTFlZjZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29jX2NvbW1vbi5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL3NvY19jb21tb24uaApAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3NvY2tldF9zeXNmcy5jIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKaW5kZXggNTYyMzg0ZC4uMDA2YTI5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKQEAgLTI3LDExICsyNyw5IEBACiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kcy5oPgpAQCAtMjkzLDcgKzI5MSw3IEBACiAJCWNvdW50ID0gMDsKIAllbHNlIHsKIAkJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnM7Ci0JCWNpc2luZm9fdCBjaXNpbmZvOworCQl1bnNpZ25lZCBpbnQgY2hhaW5zOwogCiAJCWlmIChvZmYgKyBjb3VudCA+IHNpemUpCiAJCQljb3VudCA9IHNpemUgLSBvZmY7CkBAIC0zMDIsOSArMzAwLDkgQEAKIAogCQlpZiAoIShzLT5zdGF0ZSAmIFNPQ0tFVF9QUkVTRU5UKSkKIAkJCXJldHVybiAtRU5PREVWOwotCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNpc2luZm8pKQorCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNoYWlucykpCiAJCQlyZXR1cm4gLUVJTzsKLQkJaWYgKCFjaXNpbmZvLkNoYWlucykKKwkJaWYgKCFjaGFpbnMpCiAJCQlyZXR1cm4gLUVOT0RBVEE7CiAKIAkJY291bnQgPSBwY2NhcmRfZXh0cmFjdF9jaXMocywgYnVmLCBvZmYsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3RpMTEzeC5oIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKaW5kZXggZDI5NjU3Yi4uMTI5ZGI3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKKysrIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKQEAgLTE1NSw3ICsxNTUsNyBAQAogI2RlZmluZSBFTkVfVEVTVF9DOV9UTFRFTkFCTEUJCTB4MDIKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjAJCTB4MDQKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEJCTB4MDgKLSNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEUJCShFTkVfVEVTVF9DOV9QRkVOQUJMRV9GMCB8IEVORV9URVNUX0M5X1BGRU5BQkxFX0YwKQorI2RlZmluZSBFTkVfVEVTVF9DOV9QRkVOQUJMRQkJKEVORV9URVNUX0M5X1BGRU5BQkxFX0YwIHwgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEpCiAjZGVmaW5lIEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAJMHg0MAogI2RlZmluZSBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxCTB4ODAKICNkZWZpbmUgRU5FX1RFU1RfQzlfV1BESVNBTEJMRQkJKEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAgfCBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxKQpAQCAtNjkyLDcgKzY5Miw3IEBACiAJCWdvdG8gb3V0OwogCiAJLyogY2hlY2sgc3RhdGUgKi8KLQl5ZW50YV9nZXRfc3RhdHVzKCZzb2NrZXQtPnNvY2tldCwgJnN0YXRlKTsKKwl5ZW50YV9nZXRfc3RhdHVzKCZzbG90Mi0+c29ja2V0LCAmc3RhdGUpOwogCWlmIChzdGF0ZSAmIFNTX0RFVEVDVCkgewogCQlyZXQgPSAwOwogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG5wL3BucGFjcGkvcnNwYXJzZXIuYyBiL2RyaXZlcnMvcG5wL3BucGFjcGkvcnNwYXJzZXIuYwppbmRleCAwMjAxYzhhLi40NmM3OTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BucC9wbnBhY3BpL3JzcGFyc2VyLmMKKysrIGIvZHJpdmVycy9wbnAvcG5wYWNwaS9yc3BhcnNlci5jCkBAIC01MCwxNSArNTAsMTcgQEAKIAkJCWZsYWdzID0gSU9SRVNPVVJDRV9JUlFfSElHSEVER0U7CiAJfQogCi0JaWYgKHNoYXJlYWJsZSkKKwlpZiAoc2hhcmVhYmxlID09IEFDUElfU0hBUkVEKQogCQlmbGFncyB8PSBJT1JFU09VUkNFX0lSUV9TSEFSRUFCTEU7CiAKIAlyZXR1cm4gZmxhZ3M7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY29kZV9pcnFfZmxhZ3MoaW50IGZsYWcsIGludCAqdHJpZ2dlcmluZywgaW50ICpwb2xhcml0eSkKK3N0YXRpYyB2b2lkIGRlY29kZV9pcnFfZmxhZ3Moc3RydWN0IHBucF9kZXYgKmRldiwgaW50IGZsYWdzLCBpbnQgKnRyaWdnZXJpbmcsCisJCQkgICAgIGludCAqcG9sYXJpdHksIGludCAqc2hhcmVhYmxlKQogewotCXN3aXRjaCAoZmxhZykgeworCXN3aXRjaCAoZmxhZ3MgJiAoSU9SRVNPVVJDRV9JUlFfTE9XTEVWRUwgfCBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwgfAorCQkJIElPUkVTT1VSQ0VfSVJRX0xPV0VER0UgIHwgSU9SRVNPVVJDRV9JUlFfSElHSEVER0UpKSB7CiAJY2FzZSBJT1JFU09VUkNFX0lSUV9MT1dMRVZFTDoKIAkJKnRyaWdnZXJpbmcgPSBBQ1BJX0xFVkVMX1NFTlNJVElWRTsKIAkJKnBvbGFyaXR5ID0gQUNQSV9BQ1RJVkVfTE9XOwpAQCAtNzUsNyArNzcsMTggQEAKIAkJKnRyaWdnZXJpbmcgPSBBQ1BJX0VER0VfU0VOU0lUSVZFOwogCQkqcG9sYXJpdHkgPSBBQ1BJX0FDVElWRV9ISUdIOwogCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKCZkZXYtPmRldiwgImNhbid0IGVuY29kZSBpbnZhbGlkIElSUSBtb2RlICUjeFxuIiwKKwkJCWZsYWdzKTsKKwkJKnRyaWdnZXJpbmcgPSBBQ1BJX0VER0VfU0VOU0lUSVZFOworCQkqcG9sYXJpdHkgPSBBQ1BJX0FDVElWRV9ISUdIOworCQlicmVhazsKIAl9CisKKwlpZiAoZmxhZ3MgJiBJT1JFU09VUkNFX0lSUV9TSEFSRUFCTEUpCisJCSpzaGFyZWFibGUgPSBBQ1BJX1NIQVJFRDsKKwllbHNlCisJCSpzaGFyZWFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKIH0KIAogc3RhdGljIHZvaWQgcG5wYWNwaV9wYXJzZV9hbGxvY2F0ZWRfaXJxcmVzb3VyY2Uoc3RydWN0IHBucF9kZXYgKmRldiwKQEAgLTc0Miw2ICs3NTUsOSBAQAogCWlmIChwbnBhY3BpX3N1cHBvcnRlZF9yZXNvdXJjZShyZXMpKSB7CiAJCSgqcmVzb3VyY2UpLT50eXBlID0gcmVzLT50eXBlOwogCQkoKnJlc291cmNlKS0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBhY3BpX3Jlc291cmNlKTsKKwkJaWYgKHJlcy0+dHlwZSA9PSBBQ1BJX1JFU09VUkNFX1RZUEVfSVJRKQorCQkJKCpyZXNvdXJjZSktPmRhdGEuaXJxLmRlc2NyaXB0b3JfbGVuZ3RoID0KKwkJCQkJcmVzLT5kYXRhLmlycS5kZXNjcmlwdG9yX2xlbmd0aDsKIAkJKCpyZXNvdXJjZSkrKzsKIAl9CiAKQEAgLTc4OCwyMiArODA0LDIxIEBACiAJCQkgICAgICAgc3RydWN0IHJlc291cmNlICpwKQogewogCXN0cnVjdCBhY3BpX3Jlc291cmNlX2lycSAqaXJxID0gJnJlc291cmNlLT5kYXRhLmlycTsKLQlpbnQgdHJpZ2dlcmluZywgcG9sYXJpdHk7CisJaW50IHRyaWdnZXJpbmcsIHBvbGFyaXR5LCBzaGFyZWFibGU7CiAKLQlkZWNvZGVfaXJxX2ZsYWdzKHAtPmZsYWdzICYgSU9SRVNPVVJDRV9CSVRTLCAmdHJpZ2dlcmluZywgJnBvbGFyaXR5KTsKKwlkZWNvZGVfaXJxX2ZsYWdzKGRldiwgcC0+ZmxhZ3MsICZ0cmlnZ2VyaW5nLCAmcG9sYXJpdHksICZzaGFyZWFibGUpOwogCWlycS0+dHJpZ2dlcmluZyA9IHRyaWdnZXJpbmc7CiAJaXJxLT5wb2xhcml0eSA9IHBvbGFyaXR5OwotCWlmICh0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUpCi0JCWlycS0+c2hhcmFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKLQllbHNlCi0JCWlycS0+c2hhcmFibGUgPSBBQ1BJX1NIQVJFRDsKKwlpcnEtPnNoYXJhYmxlID0gc2hhcmVhYmxlOwogCWlycS0+aW50ZXJydXB0X2NvdW50ID0gMTsKIAlpcnEtPmludGVycnVwdHNbMF0gPSBwLT5zdGFydDsKIAotCWRldl9kYmcoJmRldi0+ZGV2LCAiICBlbmNvZGUgaXJxICVkICVzICVzICVzXG4iLCAoaW50KSBwLT5zdGFydCwKKwlkZXZfZGJnKCZkZXYtPmRldiwgIiAgZW5jb2RlIGlycSAlZCAlcyAlcyAlcyAoJWQtYnl0ZSBkZXNjcmlwdG9yKVxuIiwKKwkJKGludCkgcC0+c3RhcnQsCiAJCXRyaWdnZXJpbmcgPT0gQUNQSV9MRVZFTF9TRU5TSVRJVkUgPyAibGV2ZWwiIDogImVkZ2UiLAogCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9MT1cgPyAibG93IiA6ICJoaWdoIiwKLQkJaXJxLT5zaGFyYWJsZSA9PSBBQ1BJX1NIQVJFRCA/ICJzaGFyZWQiIDogImV4Y2x1c2l2ZSIpOworCQlpcnEtPnNoYXJhYmxlID09IEFDUElfU0hBUkVEID8gInNoYXJlZCIgOiAiZXhjbHVzaXZlIiwKKwkJaXJxLT5kZXNjcmlwdG9yX2xlbmd0aCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBucGFjcGlfZW5jb2RlX2V4dF9pcnEoc3RydWN0IHBucF9kZXYgKmRldiwKQEAgLTgxMSwxNiArODI2LDEzIEBACiAJCQkJICAgc3RydWN0IHJlc291cmNlICpwKQogewogCXN0cnVjdCBhY3BpX3Jlc291cmNlX2V4dGVuZGVkX2lycSAqZXh0ZW5kZWRfaXJxID0gJnJlc291cmNlLT5kYXRhLmV4dGVuZGVkX2lycTsKLQlpbnQgdHJpZ2dlcmluZywgcG9sYXJpdHk7CisJaW50IHRyaWdnZXJpbmcsIHBvbGFyaXR5LCBzaGFyZWFibGU7CiAKLQlkZWNvZGVfaXJxX2ZsYWdzKHAtPmZsYWdzICYgSU9SRVNPVVJDRV9CSVRTLCAmdHJpZ2dlcmluZywgJnBvbGFyaXR5KTsKKwlkZWNvZGVfaXJxX2ZsYWdzKGRldiwgcC0+ZmxhZ3MsICZ0cmlnZ2VyaW5nLCAmcG9sYXJpdHksICZzaGFyZWFibGUpOwogCWV4dGVuZGVkX2lycS0+cHJvZHVjZXJfY29uc3VtZXIgPSBBQ1BJX0NPTlNVTUVSOwogCWV4dGVuZGVkX2lycS0+dHJpZ2dlcmluZyA9IHRyaWdnZXJpbmc7CiAJZXh0ZW5kZWRfaXJxLT5wb2xhcml0eSA9IHBvbGFyaXR5OwotCWlmICh0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUpCi0JCWV4dGVuZGVkX2lycS0+c2hhcmFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKLQllbHNlCi0JCWV4dGVuZGVkX2lycS0+c2hhcmFibGUgPSBBQ1BJX1NIQVJFRDsKKwlleHRlbmRlZF9pcnEtPnNoYXJhYmxlID0gc2hhcmVhYmxlOwogCWV4dGVuZGVkX2lycS0+aW50ZXJydXB0X2NvdW50ID0gMTsKIAlleHRlbmRlZF9pcnEtPmludGVycnVwdHNbMF0gPSBwLT5zdGFydDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9wb3dlcl9zdXBwbHlfc3lzZnMuYyBiL2RyaXZlcnMvcG93ZXIvcG93ZXJfc3VwcGx5X3N5c2ZzLmMKaW5kZXggYzQ0NGQ2Yi4uNDkyMTVkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9wb3dlcl9zdXBwbHlfc3lzZnMuYworKysgYi9kcml2ZXJzL3Bvd2VyL3Bvd2VyX3N1cHBseV9zeXNmcy5jCkBAIC0yMDEsNyArMjAxLDcgQEAKIAogCWRldl9kYmcoZGV2LCAidWV2ZW50XG4iKTsKIAotCWlmICghcHN5KSB7CisJaWYgKCFwc3kgfHwgIXBzeS0+ZGV2KSB7CiAJCWRldl9kYmcoZGV2LCAiTm8gcG93ZXIgc3VwcGx5IHlldFxuIik7CiAJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9yYXBpZGlvL3Jpby1kcml2ZXIuYyBiL2RyaXZlcnMvcmFwaWRpby9yaW8tZHJpdmVyLmMKaW5kZXggM2NlOWYzZC4uOTU2ZDNlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9yYXBpZGlvL3Jpby1kcml2ZXIuYworKysgYi9kcml2ZXJzL3JhcGlkaW8vcmlvLWRyaXZlci5jCkBAIC0xMDEsOCArMTAxLDggQEAKIAkJaWYgKGVycm9yID49IDApIHsKIAkJCXJkZXYtPmRyaXZlciA9IHJkcnY7CiAJCQllcnJvciA9IDA7CisJCX0gZWxzZQogCQkJcmlvX2Rldl9wdXQocmRldik7Ci0JCX0KIAl9CiAJcmV0dXJuIGVycm9yOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvS2NvbmZpZyBiL2RyaXZlcnMvcnRjL0tjb25maWcKaW5kZXggNjBmOGFmYy4uZmM4NWJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvS2NvbmZpZworKysgYi9kcml2ZXJzL3J0Yy9LY29uZmlnCkBAIC0yNTYsNiArMjU2LDE3IEBACiAJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28gdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgcnRjLXMzNTM5MGEuCiAKK2NvbmZpZyBSVENfRFJWX0ZNMzEzMAorCXRyaXN0YXRlICJSYW10cm9uIEZNMzEzMCIKKwloZWxwCisJICBJZiB5b3Ugc2F5IFkgaGVyZSB5b3Ugd2lsbCBnZXQgc3VwcG9ydCBmb3IgdGhlCisJICBSYW10cm9uIEZNMzEzMCBSVEMgY2hpcHMuCisJICBSYW10cm9uIEZNMzEzMCBpcyBhIGNoaXAgd2l0aCB0d28gc2VwYXJhdGUgZGV2aWNlcyBpbnNpZGUsCisJICBSVEMgY2xvY2sgYW5kIEZSQU0uIFRoaXMgZHJpdmVyIHByb3ZpZGVzIG9ubHkgUlRDIGZ1bmN0aW9uYWxpdHkuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbyB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBydGMtZm0zMTMwLgorCiBlbmRpZiAjIEkyQwogCiBjb21tZW50ICJTUEkgUlRDIGRyaXZlcnMiCkBAIC00NTgsNiArNDY5LDE2IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBydGMtdnI0MXh4LgogCitjb25maWcgUlRDX0RSVl9QTDAzMAorCXRyaXN0YXRlICJBUk0gQU1CQSBQTDAzMCBSVEMiCisJZGVwZW5kcyBvbiBBUk1fQU1CQQorCWhlbHAKKwkgIElmIHlvdSBzYXkgWSBoZXJlIHlvdSB3aWxsIGdldCBhY2Nlc3MgdG8gQVJNIEFNQkEKKwkgIFByaW1lQ2VsbCBQTDAzMCBSVEMgZm91bmQgb24gY2VydGFpbiBBUk0gU09Dcy4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcnRjLXBsMDMwLgorCiBjb25maWcgUlRDX0RSVl9QTDAzMQogCXRyaXN0YXRlICJBUk0gQU1CQSBQTDAzMSBSVEMiCiAJZGVwZW5kcyBvbiBBUk1fQU1CQQpAQCAtNDg0LDEyICs1MDUsMTMgQEAKIAkgIHRoaXMgaXMgcG93ZXJlZCBieSB0aGUgYmFja3VwIHBvd2VyIHN1cHBseS4KIAogY29uZmlnIFJUQ19EUlZfQVQ5MVNBTTkKLQl0cmlzdGF0ZSAiQVQ5MVNBTTl4IgorCXRyaXN0YXRlICJBVDkxU0FNOXgvQVQ5MUNBUDkiCiAJZGVwZW5kcyBvbiBBUkNIX0FUOTEgJiYgIShBUkNIX0FUOTFSTTkyMDAgfHwgQVJDSF9BVDkxWDQwKQogCWhlbHAKLQkgIFJUQyBkcml2ZXIgZm9yIHRoZSBBdG1lbCBBVDkxU0FNOXggaW50ZXJuYWwgUlRUIChSZWFsIFRpbWUgVGltZXIpLgotCSAgVGhlc2UgdGltZXJzIGFyZSBwb3dlcmVkIGJ5IHRoZSBiYWNrdXAgcG93ZXIgc3VwcGx5IChzdWNoIGFzIGEKLQkgIHNtYWxsIGNvaW4gY2VsbCBiYXR0ZXJ5KSwgYnV0IGRvIG5vdCBuZWVkIHRvIGJlIHVzZWQgYXMgUlRDcy4KKwkgIFJUQyBkcml2ZXIgZm9yIHRoZSBBdG1lbCBBVDkxU0FNOXggYW5kIEFUOTFDQVA5IGludGVybmFsIFJUVAorCSAgKFJlYWwgVGltZSBUaW1lcikuIFRoZXNlIHRpbWVycyBhcmUgcG93ZXJlZCBieSB0aGUgYmFja3VwIHBvd2VyCisJICBzdXBwbHkgKHN1Y2ggYXMgYSBzbWFsbCBjb2luIGNlbGwgYmF0dGVyeSksIGJ1dCBkbyBub3QgbmVlZCB0bworCSAgYmUgdXNlZCBhcyBSVENzLgogCiAJICAoT24gQVQ5MVNBTTlybCBjaGlwcyB5b3UgcHJvYmFibHkgd2FudCB0byB1c2UgdGhlIGRlZGljYXRlZCBSVEMKIAkgIG1vZHVsZSBhbmQgbGVhdmUgdGhlIFJUVCBhdmFpbGFibGUgZm9yIG90aGVyIHVzZXMuKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvTWFrZWZpbGUgYi9kcml2ZXJzL3J0Yy9NYWtlZmlsZQppbmRleCBlYmU4NzFjLi5iNWQ5ZDY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3J0Yy9NYWtlZmlsZQpAQCAtMzEsNiArMzEsNyBAQAogb2JqLSQoQ09ORklHX1JUQ19EUlZfRFMxNjcyKQkrPSBydGMtZHMxNjcyLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0RTMTc0MikJKz0gcnRjLWRzMTc0Mi5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9FUDkzWFgpCSs9IHJ0Yy1lcDkzeHgubworb2JqLSQoQ09ORklHX1JUQ19EUlZfRk0zMTMwKQkrPSBydGMtZm0zMTMwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0lTTDEyMDgpCSs9IHJ0Yy1pc2wxMjA4Lm8KIG9iai0kKENPTkZJR19SVENfRFJWX000MVQ4MCkJKz0gcnRjLW00MXQ4MC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9NNDhUNTkpCSs9IHJ0Yy1tNDh0NTkubwpAQCAtNDAsNyArNDEsOSBAQAogb2JqLSQoQ09ORklHX1JUQ19EUlZfT01BUCkJKz0gcnRjLW9tYXAubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUENGODU2MykJKz0gcnRjLXBjZjg1NjMubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUENGODU4MykJKz0gcnRjLXBjZjg1ODMubworb2JqLSQoQ09ORklHX1JUQ19EUlZfUEwwMzApCSs9IHJ0Yy1wbDAzMC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9QTDAzMSkJKz0gcnRjLXBsMDMxLm8KK29iai0kKENPTkZJR19SVENfRFJWX1BQQykJKz0gcnRjLXBwYy5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9SOTcwMSkJKz0gcnRjLXI5NzAxLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1JTNUMzMTMpCSs9IHJ0Yy1yczVjMzEzLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1JTNUMzNDgpCSs9IHJ0Yy1yczVjMzQ4Lm8KQEAgLTU0LDQgKzU3LDMgQEAKIG9iai0kKENPTkZJR19SVENfRFJWX1YzMDIwKQkrPSBydGMtdjMwMjAubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfVlI0MVhYKQkrPSBydGMtdnI0MXh4Lm8KIG9iai0kKENPTkZJR19SVENfRFJWX1gxMjA1KQkrPSBydGMteDEyMDUubwotb2JqLSQoQ09ORklHX1JUQ19EUlZfUFBDKQkrPSBydGMtcHBjLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2ludGVyZmFjZS5jIGIvZHJpdmVycy9ydGMvaW50ZXJmYWNlLmMKaW5kZXggN2UzYWQ0Zi4uNThiNzMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvaW50ZXJmYWNlLmMKKysrIGIvZHJpdmVycy9ydGMvaW50ZXJmYWNlLmMKQEAgLTEyNiwxMiArMTI2LDI1IEBACiAJaW50IGVycjsKIAlzdHJ1Y3QgcnRjX3RpbWUgYmVmb3JlLCBub3c7CiAJaW50IGZpcnN0X3RpbWUgPSAxOworCXVuc2lnbmVkIGxvbmcgdF9ub3csIHRfYWxtOworCWVudW0geyBub25lLCBkYXksIG1vbnRoLCB5ZWFyIH0gbWlzc2luZyA9IG5vbmU7CisJdW5zaWduZWQgZGF5czsKIAotCS8qIFRoZSBsb3dlciBsZXZlbCBSVEMgZHJpdmVyIG1heSBub3QgYmUgY2FwYWJsZSBvZiBmaWxsaW5nCi0JICogaW4gYWxsIGZpZWxkcyBvZiB0aGUgcnRjX3RpbWUgc3RydWN0IChlZy4gcnRjLWNtb3MpLAotCSAqIGFuZCBzbyBtaWdodCBpbnN0ZWFkIHJldHVybiAtMSBpbiBzb21lIGZpZWxkcy4KLQkgKiBXZSBkZWFsIHdpdGggdGhhdCBoZXJlIGJ5IGdyYWJiaW5nIGEgY3VycmVudCBSVEMgdGltZXN0YW1wCi0JICogYW5kIHVzaW5nIHZhbHVlcyBmcm9tIHRoYXQgZm9yIGFueSBtaXNzaW5nICgtMSkgdmFsdWVzLgorCS8qIFRoZSBsb3dlciBsZXZlbCBSVEMgZHJpdmVyIG1heSByZXR1cm4gLTEgaW4gc29tZSBmaWVsZHMsCisJICogY3JlYXRpbmcgaW52YWxpZCBhbGFybS0+dGltZSB2YWx1ZXMsIGZvciByZWFzb25zIGxpa2U6CisJICoKKwkgKiAgIC0gVGhlIGhhcmR3YXJlIG1heSBub3QgYmUgY2FwYWJsZSBvZiBmaWxsaW5nIHRoZW0gaW47CisJICogICAgIG1hbnkgYWxhcm1zIG1hdGNoIG9ubHkgb24gdGltZS1vZi1kYXkgZmllbGRzLCBub3QKKwkgKiAgICAgZGF5L21vbnRoL3llYXIgY2FsZW5kYXIgZGF0YS4KKwkgKgorCSAqICAgLSBTb21lIGhhcmR3YXJlIHVzZXMgaWxsZWdhbCB2YWx1ZXMgYXMgIndpbGRjYXJkIiBtYXRjaAorCSAqICAgICB2YWx1ZXMsIHdoaWNoIG5vbi1MaW51eCBmaXJtd2FyZSAobGlrZSBhIEJJT1MpIG1heSB0cnkKKwkgKiAgICAgdG8gc2V0IHVwIGFzIGUuZy4gImFsYXJtIDE1IG1pbnV0ZXMgYWZ0ZXIgZWFjaCBob3VyIi4KKwkgKiAgICAgTGludXggdXNlcyBvbmx5IG9uZXNob3QgYWxhcm1zLgorCSAqCisJICogV2hlbiB3ZSBzZWUgdGhhdCBoZXJlLCB3ZSBkZWFsIHdpdGggaXQgYnkgdXNpbmcgdmFsdWVzIGZyb20KKwkgKiBhIGN1cnJlbnQgUlRDIHRpbWVzdGFtcCBmb3IgYW55IG1pc3NpbmcgKC0xKSB2YWx1ZXMuICBUaGUKKwkgKiBSVEMgZHJpdmVyIHByZXZlbnRzICJwZXJpb2RpYyBhbGFybSIgbW9kZXMuCiAJICoKIAkgKiBCdXQgdGhpcyBjYW4gYmUgcmFjZXksIGJlY2F1c2Ugc29tZSBmaWVsZHMgb2YgdGhlIFJUQyB0aW1lc3RhbXAKIAkgKiBtYXkgaGF2ZSB3cmFwcGVkIGluIHRoZSBpbnRlcnZhbCBzaW5jZSB3ZSByZWFkIHRoZSBSVEMgYWxhcm0sCkBAIC0xNzQsNiArMTg3LDEwIEBACiAJCWlmICghYWxhcm0tPmVuYWJsZWQpCiAJCQlyZXR1cm4gMDsKIAorCQkvKiBmdWxsLWZ1bmN0aW9uIFJUQ3Mgd29uJ3QgaGF2ZSBzdWNoIG1pc3NpbmcgZmllbGRzICovCisJCWlmIChydGNfdmFsaWRfdG0oJmFsYXJtLT50aW1lKSA9PSAwKQorCQkJcmV0dXJuIDA7CisKIAkJLyogZ2V0IHRoZSAiYWZ0ZXIiIHRpbWVzdGFtcCwgdG8gZGV0ZWN0IHdyYXBwZWQgZmllbGRzICovCiAJCWVyciA9IHJ0Y19yZWFkX3RpbWUocnRjLCAmbm93KTsKIAkJaWYgKGVyciA8IDApCkBAIC0xODMsMjIgKzIwMCw4NSBAQAogCX0gd2hpbGUgKCAgIGJlZm9yZS50bV9taW4gICAhPSBub3cudG1fbWluCiAJCSB8fCBiZWZvcmUudG1faG91ciAgIT0gbm93LnRtX2hvdXIKIAkJIHx8IGJlZm9yZS50bV9tb24gICAhPSBub3cudG1fbW9uCi0JCSB8fCBiZWZvcmUudG1feWVhciAgIT0gbm93LnRtX3llYXIKLQkJIHx8IGJlZm9yZS50bV9pc2RzdCAhPSBub3cudG1faXNkc3QpOworCQkgfHwgYmVmb3JlLnRtX3llYXIgICE9IG5vdy50bV95ZWFyKTsKIAotCS8qIEZpbGwgaW4gYW55IG1pc3NpbmcgYWxhcm0gZmllbGRzIHVzaW5nIHRoZSB0aW1lc3RhbXAgKi8KKwkvKiBGaWxsIGluIHRoZSBtaXNzaW5nIGFsYXJtIGZpZWxkcyB1c2luZyB0aGUgdGltZXN0YW1wOyB3ZQorCSAqIGtub3cgdGhlcmUncyBhdCBsZWFzdCBvbmUgc2luY2UgYWxhcm0tPnRpbWUgaXMgaW52YWxpZC4KKwkgKi8KIAlpZiAoYWxhcm0tPnRpbWUudG1fc2VjID09IC0xKQogCQlhbGFybS0+dGltZS50bV9zZWMgPSBub3cudG1fc2VjOwogCWlmIChhbGFybS0+dGltZS50bV9taW4gPT0gLTEpCiAJCWFsYXJtLT50aW1lLnRtX21pbiA9IG5vdy50bV9taW47CiAJaWYgKGFsYXJtLT50aW1lLnRtX2hvdXIgPT0gLTEpCiAJCWFsYXJtLT50aW1lLnRtX2hvdXIgPSBub3cudG1faG91cjsKLQlpZiAoYWxhcm0tPnRpbWUudG1fbWRheSA9PSAtMSkKKworCS8qIEZvciBzaW1wbGljaXR5LCBvbmx5IHN1cHBvcnQgZGF0ZSByb2xsb3ZlciBmb3Igbm93ICovCisJaWYgKGFsYXJtLT50aW1lLnRtX21kYXkgPT0gLTEpIHsKIAkJYWxhcm0tPnRpbWUudG1fbWRheSA9IG5vdy50bV9tZGF5OwotCWlmIChhbGFybS0+dGltZS50bV9tb24gPT0gLTEpCisJCW1pc3NpbmcgPSBkYXk7CisJfQorCWlmIChhbGFybS0+dGltZS50bV9tb24gPT0gLTEpIHsKIAkJYWxhcm0tPnRpbWUudG1fbW9uID0gbm93LnRtX21vbjsKLQlpZiAoYWxhcm0tPnRpbWUudG1feWVhciA9PSAtMSkKKwkJaWYgKG1pc3NpbmcgPT0gbm9uZSkKKwkJCW1pc3NpbmcgPSBtb250aDsKKwl9CisJaWYgKGFsYXJtLT50aW1lLnRtX3llYXIgPT0gLTEpIHsKIAkJYWxhcm0tPnRpbWUudG1feWVhciA9IG5vdy50bV95ZWFyOworCQlpZiAobWlzc2luZyA9PSBub25lKQorCQkJbWlzc2luZyA9IHllYXI7CisJfQorCisJLyogd2l0aCBsdWNrLCBubyByb2xsb3ZlciBpcyBuZWVkZWQgKi8KKwlydGNfdG1fdG9fdGltZSgmbm93LCAmdF9ub3cpOworCXJ0Y190bV90b190aW1lKCZhbGFybS0+dGltZSwgJnRfYWxtKTsKKwlpZiAodF9ub3cgPCB0X2FsbSkKKwkJZ290byBkb25lOworCisJc3dpdGNoIChtaXNzaW5nKSB7CisKKwkvKiAyNCBob3VyIHJvbGxvdmVyIC4uLiBpZiBpdCdzIG5vdyAxMGFtIE1vbmRheSwgYW4gYWxhcm0gdGhhdAorCSAqIHRoYXQgd2lsbCB0cmlnZ2VyIGF0IDVhbSB3aWxsIGRvIHNvIGF0IDVhbSBUdWVzZGF5LCB3aGljaAorCSAqIGNvdWxkIGFsc28gYmUgaW4gdGhlIG5leHQgbW9udGggb3IgeWVhci4gIFRoaXMgaXMgYSBjb21tb24KKwkgKiBjYXNlLCBlc3BlY2lhbGx5IGZvciBQQ3MuCisJICovCisJY2FzZSBkYXk6CisJCWRldl9kYmcoJnJ0Yy0+ZGV2LCAiYWxhcm0gcm9sbG92ZXI6ICVzXG4iLCAiZGF5Iik7CisJCXRfYWxtICs9IDI0ICogNjAgKiA2MDsKKwkJcnRjX3RpbWVfdG9fdG0odF9hbG0sICZhbGFybS0+dGltZSk7CisJCWJyZWFrOworCisJLyogTW9udGggcm9sbG92ZXIgLi4uIGlmIGl0J3MgdGhlIDMxdGgsIGFuIGFsYXJtIG9uIHRoZSAzcmQgd2lsbAorCSAqIGJlIG5leHQgbW9udGguICBBbiBhbGFybSBtYXRjaGluZyBvbiB0aGUgMzB0aCwgMjl0aCwgb3IgMjh0aAorCSAqIG1heSBlbmQgdXAgaW4gdGhlIG1vbnRoIGFmdGVyIHRoYXQhICBNYW55IG5ld2VyIFBDcyBzdXBwb3J0CisJICogdGhpcyB0eXBlIG9mIGFsYXJtLgorCSAqLworCWNhc2UgbW9udGg6CisJCWRldl9kYmcoJnJ0Yy0+ZGV2LCAiYWxhcm0gcm9sbG92ZXI6ICVzXG4iLCAibW9udGgiKTsKKwkJZG8geworCQkJaWYgKGFsYXJtLT50aW1lLnRtX21vbiA8IDExKQorCQkJCWFsYXJtLT50aW1lLnRtX21vbisrOworCQkJZWxzZSB7CisJCQkJYWxhcm0tPnRpbWUudG1fbW9uID0gMDsKKwkJCQlhbGFybS0+dGltZS50bV95ZWFyKys7CisJCQl9CisJCQlkYXlzID0gcnRjX21vbnRoX2RheXMoYWxhcm0tPnRpbWUudG1fbW9uLAorCQkJCQlhbGFybS0+dGltZS50bV95ZWFyKTsKKwkJfSB3aGlsZSAoZGF5cyA8IGFsYXJtLT50aW1lLnRtX21kYXkpOworCQlicmVhazsKKworCS8qIFllYXIgcm9sbG92ZXIgLi4uIGVhc3kgZXhjZXB0IGZvciBsZWFwIHllYXJzISAqLworCWNhc2UgeWVhcjoKKwkJZGV2X2RiZygmcnRjLT5kZXYsICJhbGFybSByb2xsb3ZlcjogJXNcbiIsICJ5ZWFyIik7CisJCWRvIHsKKwkJCWFsYXJtLT50aW1lLnRtX3llYXIrKzsKKwkJfSB3aGlsZSAoIXJ0Y192YWxpZF90bSgmYWxhcm0tPnRpbWUpKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlkZXZfd2FybigmcnRjLT5kZXYsICJhbGFybSByb2xsb3ZlciBub3QgaGFuZGxlZFxuIik7CisJfQorCitkb25lOgogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocnRjX3JlYWRfYWxhcm0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWF0MzJhcDcwMHguYyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDMyYXA3MDB4LmMKaW5kZXggNDIyNDRmMS4uOTBiOWE2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWF0MzJhcDcwMHguYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQzMmFwNzAweC5jCkBAIC05NCw4ICs5NCwxMSBAQAogewogCXN0cnVjdCBydGNfYXQzMmFwNzAweCAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKKwlzcGluX2xvY2tfaXJxKCZydGMtPmxvY2spOwogCXJ0Y190aW1lX3RvX3RtKHJ0Yy0+YWxhcm1fdGltZSwgJmFscm0tPnRpbWUpOwotCWFscm0tPnBlbmRpbmcgPSBydGNfcmVhZGwocnRjLCBJTVIpICYgUlRDX0JJVChJTVJfVE9QSSkgPyAxIDogMDsKKwlhbHJtLT5lbmFibGVkID0gcnRjX3JlYWRsKHJ0YywgSU1SKSAmIFJUQ19CSVQoSU1SX1RPUEkpID8gMSA6IDA7CisJYWxybS0+cGVuZGluZyA9IHJ0Y19yZWFkbChydGMsIElTUikgJiBSVENfQklUKElTUl9UT1BJKSA/IDEgOiAwOworCXNwaW5fdW5sb2NrX2lycSgmcnRjLT5sb2NrKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTE5LDcgKzEyMiw3IEBACiAJc3Bpbl9sb2NrX2lycSgmcnRjLT5sb2NrKTsKIAlydGMtPmFsYXJtX3RpbWUgPSBhbGFybV91bml4X3RpbWU7CiAJcnRjX3dyaXRlbChydGMsIFRPUCwgcnRjLT5hbGFybV90aW1lKTsKLQlpZiAoYWxybS0+cGVuZGluZykKKwlpZiAoYWxybS0+ZW5hYmxlZCkKIAkJcnRjX3dyaXRlbChydGMsIENUUkwsIHJ0Y19yZWFkbChydGMsIENUUkwpCiAJCQkJfCBSVENfQklUKENUUkxfVE9QRU4pKTsKIAllbHNlCkBAIC0yNjIsNiArMjY1LDcgQEAKIAl9CiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBydGMpOworCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKIAogCWRldl9pbmZvKCZwZGV2LT5kZXYsICJBdG1lbCBSVEMgZm9yIEFUMzJBUDcwMHggYXQgJTA4bHggaXJxICVsZFxuIiwKIAkJCSh1bnNpZ25lZCBsb25nKXJ0Yy0+cmVncywgcnRjLT5pcnEpOwpAQCAtMjgxLDYgKzI4NSw4IEBACiB7CiAJc3RydWN0IHJ0Y19hdDMyYXA3MDB4ICpydGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAorCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAwKTsKKwogCWZyZWVfaXJxKHJ0Yy0+aXJxLCBydGMpOwogCWlvdW5tYXAocnRjLT5yZWdzKTsKIAlydGNfZGV2aWNlX3VucmVnaXN0ZXIocnRjLT5ydGMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMKaW5kZXggMzllNjRhYi4uOWMzZGI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jCkBAIC0yOSwxMCArMjksNiBAQAogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9ydGMuaD4KIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxc2FtOS5jCmluZGV4IDM4ZDg3NDIuLmYwMjQ2ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1hdDkxc2FtOS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxc2FtOS5jCkBAIC0xOSw3ICsxOSw2IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KIAotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfcnR0Lmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMgYi9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jCmluZGV4IGQwNjBhMDYuLmQ3YmI5YmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWNtb3MuYwpAQCAtOTA1LDE5ICs5MDUsNyBAQAogCS5yZXN1bWUJCT0gY21vc19wbnBfcmVzdW1lLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgY21vc19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHBucF9yZWdpc3Rlcl9kcml2ZXIoJmNtb3NfcG5wX2RyaXZlcik7Ci19Ci1tb2R1bGVfaW5pdChjbW9zX2luaXQpOwotCi1zdGF0aWMgdm9pZCBfX2V4aXQgY21vc19leGl0KHZvaWQpCi17Ci0JcG5wX3VucmVnaXN0ZXJfZHJpdmVyKCZjbW9zX3BucF9kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQoY21vc19leGl0KTsKLQotI2Vsc2UJLyogbm8gUE5QICovCisjZW5kaWYJLyogQ09ORklHX1BOUCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC05NTgsMjAgKzk0NiwzMyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBjbW9zX2luaXQodm9pZCkKIHsKKyNpZmRlZglDT05GSUdfUE5QCisJaWYgKHBucF9wbGF0Zm9ybV9kZXZpY2VzKQorCQlyZXR1cm4gcG5wX3JlZ2lzdGVyX2RyaXZlcigmY21vc19wbnBfZHJpdmVyKTsKKwllbHNlCisJCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJmNtb3NfcGxhdGZvcm1fZHJpdmVyLAorCQkJY21vc19wbGF0Zm9ybV9wcm9iZSk7CisjZWxzZQogCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJmNtb3NfcGxhdGZvcm1fZHJpdmVyLAogCQkJY21vc19wbGF0Zm9ybV9wcm9iZSk7CisjZW5kaWYgLyogQ09ORklHX1BOUCAqLwogfQogbW9kdWxlX2luaXQoY21vc19pbml0KTsKIAogc3RhdGljIHZvaWQgX19leGl0IGNtb3NfZXhpdCh2b2lkKQogeworI2lmZGVmCUNPTkZJR19QTlAKKwlpZiAocG5wX3BsYXRmb3JtX2RldmljZXMpCisJCXBucF91bnJlZ2lzdGVyX2RyaXZlcigmY21vc19wbnBfZHJpdmVyKTsKKwllbHNlCisJCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZjbW9zX3BsYXRmb3JtX2RyaXZlcik7CisjZWxzZQogCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZjbW9zX3BsYXRmb3JtX2RyaXZlcik7CisjZW5kaWYgLyogQ09ORklHX1BOUCAqLwogfQogbW9kdWxlX2V4aXQoY21vc19leGl0KTsKIAogCi0jZW5kaWYJLyogIVBOUCAqLwotCiBNT0RVTEVfQVVUSE9SKCJEYXZpZCBCcm93bmVsbCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIFBDLXN0eWxlICdDTU9TJyBSVENzIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtZGV2LmMgYi9kcml2ZXJzL3J0Yy9ydGMtZGV2LmMKaW5kZXggOTBkZmEwZC4uMDExNGE3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWRldi5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1kZXYuYwpAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcnRjLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJydGMtY29yZS5oIgogCiBzdGF0aWMgZGV2X3QgcnRjX2RldnQ7CkBAIC0yNiw4ICsyNywxMSBAQAogCQkJCQlzdHJ1Y3QgcnRjX2RldmljZSwgY2hhcl9kZXYpOwogCWNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzICpvcHMgPSBydGMtPm9wczsKIAotCWlmICh0ZXN0X2FuZF9zZXRfYml0X2xvY2soUlRDX0RFVl9CVVNZLCAmcnRjLT5mbGFncykpCi0JCXJldHVybiAtRUJVU1k7CisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdF9sb2NrKFJUQ19ERVZfQlVTWSwgJnJ0Yy0+ZmxhZ3MpKSB7CisJCWVyciA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcnRjOwogCkBAIC0zNywxMSArNDEsMTMgQEAKIAkJcnRjLT5pcnFfZGF0YSA9IDA7CiAJCXNwaW5fdW5sb2NrX2lycSgmcnRjLT5pcnFfbG9jayk7CiAKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZyAqLwogCWNsZWFyX2JpdF91bmxvY2soUlRDX0RFVl9CVVNZLCAmcnRjLT5mbGFncyk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1mbTMxMzAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1mbTMxMzAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmZkZmNiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ydGMvcnRjLWZtMzEzMC5jCkBAIC0wLDAgKzEsNTAxIEBACisvKgorICogcnRjLWZtMzEzMC5jIC0gUlRDIGRyaXZlciBmb3IgUmFtdHJvbiBGTTMxMzAgSTJDIGNoaXAuCisgKgorICogIENvcHlyaWdodCAoQykgMjAwOCBTZXJnZXkgTGFwaW4KKyAqICBCYXNlZCBvbiBkczEzMDcgZHJpdmVyIGJ5IEphbWVzIENoYXBtYW4gYW5kIERhdmlkIEJyb3duZWxsCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcnRjLmg+CisjaW5jbHVkZSA8bGludXgvYmNkLmg+CisKKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MCSgweDApCisjZGVmaW5lIEZNMzEzMF9DQUxfQ09OVFJPTAkoMHgxKQorI2RlZmluZSBGTTMxMzBfUlRDX1NFQ09ORFMJKDB4MikKKyNkZWZpbmUgRk0zMTMwX1JUQ19NSU5VVEVTCSgweDMpCisjZGVmaW5lIEZNMzEzMF9SVENfSE9VUlMJKDB4NCkKKyNkZWZpbmUgRk0zMTMwX1JUQ19EQVkJCSgweDUpCisjZGVmaW5lIEZNMzEzMF9SVENfREFURQkJKDB4NikKKyNkZWZpbmUgRk0zMTMwX1JUQ19NT05USFMJKDB4NykKKyNkZWZpbmUgRk0zMTMwX1JUQ19ZRUFSUwkoMHg4KQorCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9TRUNPTkRTCSgweDkpCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9NSU5VVEVTCSgweGEpCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9IT1VSUwkoMHhiKQorI2RlZmluZSBGTTMxMzBfQUxBUk1fREFURQkoMHhjKQorI2RlZmluZSBGTTMxMzBfQUxBUk1fTU9OVEhTCSgweGQpCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9XUF9DT05UUk9MCSgweGUpCisKKyNkZWZpbmUgRk0zMTMwX0NBTF9DT05UUk9MX0JJVF9uT1NDRU4gKDEgPDwgNykgLyogT3NjaWFsbGF0b3IgZW5hYmxlZCAqLworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0xCICgxIDw8IDcpIC8qIExvdyBiYXR0ZXJ5ICovCisjZGVmaW5lIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUYgKDEgPDwgNikgLyogQWxhcm0gZmxhZyAqLworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0NGICgxIDw8IDUpIC8qIENlbnR1cnkgb3ZlcmZsb3cgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9QT1IgKDEgPDwgNCkgLyogUG93ZXIgb24gcmVzZXQgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRU4gKDEgPDwgMykgLyogQWxhcm0gZW5hYmxlICovCisjZGVmaW5lIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQ0FMICgxIDw8IDIpIC8qIENhbGlicmF0aW9uIG1vZGUgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9XUklURSAoMSA8PCAxKSAvKiBXPTEgLT4gd3JpdGUgbW9kZSBXPTAgbm9ybWFsICovCisjZGVmaW5lIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfUkVBRCAoMSA8PCAwKSAvKiBSPTEgLT4gcmVhZCBtb2RlIFI9MCBub3JtYWwgKi8KKworI2RlZmluZSBGTTMxMzBfQ0xPQ0tfUkVHUyA3CisjZGVmaW5lIEZNMzEzMF9BTEFSTV9SRUdTIDUKKworc3RydWN0IGZtMzEzMCB7CisJdTgJCQlyZWdfYWRkcl90aW1lOworCXU4IAkJCXJlZ19hZGRyX2FsYXJtOworCXU4CQkJcmVnc1sxNV07CisJc3RydWN0IGkyY19tc2cJCW1zZ1s0XTsKKwlzdHJ1Y3QgaTJjX2NsaWVudAkqY2xpZW50OworCXN0cnVjdCBydGNfZGV2aWNlCSpydGM7CisJaW50CQkJZGF0YV92YWxpZDsKKwlpbnQJCQlhbGFybTsKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgZm0zMTMwX2lkW10gPSB7CisJeyAiZm0zMTMwIiwgMCB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBmbTMxMzBfaWQpOworCisjZGVmaW5lIEZNMzEzMF9NT0RFX05PUk1BTAkJMAorI2RlZmluZSBGTTMxMzBfTU9ERV9XUklURQkJMQorI2RlZmluZSBGTTMxMzBfTU9ERV9SRUFECQkyCisKK3N0YXRpYyB2b2lkIGZtMzEzMF9ydGNfbW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBtb2RlKQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gPQorCQlpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoZm0zMTMwLT5jbGllbnQsIEZNMzEzMF9SVENfQ09OVFJPTCk7CisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBGTTMxMzBfTU9ERV9OT1JNQUw6CisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICY9CisJCQl+KEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfV1JJVEUgfAorCQkJRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9SRUFEKTsKKwkJYnJlYWs7CisJY2FzZSBGTTMxMzBfTU9ERV9XUklURToKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gfD0gRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9XUklURTsKKwkJYnJlYWs7CisJY2FzZSBGTTMxMzBfTU9ERV9SRUFEOgorCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSB8PSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1JFQUQ7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9kYmcoZGV2LCAiaW52YWxpZCBtb2RlICVkXG4iLCBtb2RlKTsKKwkJYnJlYWs7CisJfQorCS8qIENoZWNraW5nIGZvciBhbGFybSAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUYpIHsKKwkJZm0zMTMwLT5hbGFybSA9IDE7CisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICY9IH5GTTMxMzBfUlRDX0NPTlRST0xfQklUX0FGOworCX0KKwlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGZtMzEzMC0+Y2xpZW50LAorCQkgRk0zMTMwX1JUQ19DT05UUk9MLCBmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSk7Cit9CisKK3N0YXRpYyBpbnQgZm0zMTMwX2dldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0KQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludAkJdG1wOworCisJaWYgKCFmbTMxMzAtPmRhdGFfdmFsaWQpIHsKKwkJLyogV2UgaGF2ZSBpbnZhbGlkIGRhdGEgaW4gUlRDLCBwcm9iYWJseSBkdWUKKwkJdG8gYmF0dGVyeSBmYXVsdHMgb3Igb3RoZXIgcHJvYmxlbXMuIFJldHVybiBFSU8KKwkJZm9yIG5vdywgaXQgd2lsbCBhbGxvdyB1cyB0byBzZXQgZGF0YSBsYXRlciBpbnN0ZWQKKwkJb2YgZXJyb3IgZHVyaW5nIHByb2Jpbmcgd2hpY2ggZGlzYWJsZXMgZGV2aWNlICovCisJCXJldHVybiAtRUlPOworCX0KKwlmbTMxMzBfcnRjX21vZGUoZGV2LCBGTTMxMzBfTU9ERV9SRUFEKTsKKworCS8qIHJlYWQgdGhlIFJUQyBkYXRlIGFuZCB0aW1lIHJlZ2lzdGVycyBhbGwgYXQgb25jZSAqLworCXRtcCA9IGkyY190cmFuc2Zlcih0b19pMmNfYWRhcHRlcihmbTMxMzAtPmNsaWVudC0+ZGV2LnBhcmVudCksCisJCQlmbTMxMzAtPm1zZywgMik7CisJaWYgKHRtcCAhPSAyKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgZXJyb3IgJWRcbiIsICJyZWFkIiwgdG1wKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJZm0zMTMwX3J0Y19tb2RlKGRldiwgRk0zMTMwX01PREVfTk9STUFMKTsKKworCWRldl9kYmcoZGV2LCAiJXM6ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCIKKwkJCSIlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4XG4iLAorCQkJInJlYWQiLAorCQkJZm0zMTMwLT5yZWdzWzBdLCBmbTMxMzAtPnJlZ3NbMV0sCisJCQlmbTMxMzAtPnJlZ3NbMl0sIGZtMzEzMC0+cmVnc1szXSwKKwkJCWZtMzEzMC0+cmVnc1s0XSwgZm0zMTMwLT5yZWdzWzVdLAorCQkJZm0zMTMwLT5yZWdzWzZdLCBmbTMxMzAtPnJlZ3NbN10sCisJCQlmbTMxMzAtPnJlZ3NbOF0sIGZtMzEzMC0+cmVnc1s5XSwKKwkJCWZtMzEzMC0+cmVnc1sweGFdLCBmbTMxMzAtPnJlZ3NbMHhiXSwKKwkJCWZtMzEzMC0+cmVnc1sweGNdLCBmbTMxMzAtPnJlZ3NbMHhkXSwKKwkJCWZtMzEzMC0+cmVnc1sweGVdKTsKKworCXQtPnRtX3NlYyA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfU0VDT05EU10gJiAweDdmKTsKKwl0LT50bV9taW4gPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX01JTlVURVNdICYgMHg3Zik7CisJdG1wID0gZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfSE9VUlNdICYgMHgzZjsKKwl0LT50bV9ob3VyID0gQkNEMkJJTih0bXApOworCXQtPnRtX3dkYXkgPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0RBWV0gJiAweDA3KSAtIDE7CisJdC0+dG1fbWRheSA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfREFURV0gJiAweDNmKTsKKwl0bXAgPSBmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19NT05USFNdICYgMHgxZjsKKwl0LT50bV9tb24gPSBCQ0QyQklOKHRtcCkgLSAxOworCisJLyogYXNzdW1lIDIwWVkgbm90IDE5WVksIGFuZCBpZ25vcmUgQ0YgYml0ICovCisJdC0+dG1feWVhciA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfWUVBUlNdKSArIDEwMDsKKworCWRldl9kYmcoZGV2LCAiJXMgc2Vjcz0lZCwgbWlucz0lZCwgIgorCQkiaG91cnM9JWQsIG1kYXk9JWQsIG1vbj0lZCwgeWVhcj0lZCwgd2RheT0lZFxuIiwKKwkJInJlYWQiLCB0LT50bV9zZWMsIHQtPnRtX21pbiwKKwkJdC0+dG1faG91ciwgdC0+dG1fbWRheSwKKwkJdC0+dG1fbW9uLCB0LT50bV95ZWFyLCB0LT50bV93ZGF5KTsKKworCS8qIGluaXRpYWwgY2xvY2sgc2V0dGluZyBjYW4gYmUgdW5kZWZpbmVkICovCisJcmV0dXJuIHJ0Y192YWxpZF90bSh0KTsKK30KKworCitzdGF0aWMgaW50IGZtMzEzMF9zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdCkKK3sKKwlzdHJ1Y3QgZm0zMTMwICpmbTMxMzAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlpbnQJCXRtcCwgaTsKKwl1OAkJKmJ1ZiA9IGZtMzEzMC0+cmVnczsKKworCWRldl9kYmcoZGV2LCAiJXMgc2Vjcz0lZCwgbWlucz0lZCwgIgorCQkiaG91cnM9JWQsIG1kYXk9JWQsIG1vbj0lZCwgeWVhcj0lZCwgd2RheT0lZFxuIiwKKwkJIndyaXRlIiwgdC0+dG1fc2VjLCB0LT50bV9taW4sCisJCXQtPnRtX2hvdXIsIHQtPnRtX21kYXksCisJCXQtPnRtX21vbiwgdC0+dG1feWVhciwgdC0+dG1fd2RheSk7CisKKwkvKiBmaXJzdCByZWdpc3RlciBhZGRyICovCisJYnVmW0ZNMzEzMF9SVENfU0VDT05EU10gPSBCSU4yQkNEKHQtPnRtX3NlYyk7CisJYnVmW0ZNMzEzMF9SVENfTUlOVVRFU10gPSBCSU4yQkNEKHQtPnRtX21pbik7CisJYnVmW0ZNMzEzMF9SVENfSE9VUlNdID0gQklOMkJDRCh0LT50bV9ob3VyKTsKKwlidWZbRk0zMTMwX1JUQ19EQVldID0gQklOMkJDRCh0LT50bV93ZGF5ICsgMSk7CisJYnVmW0ZNMzEzMF9SVENfREFURV0gPSBCSU4yQkNEKHQtPnRtX21kYXkpOworCWJ1ZltGTTMxMzBfUlRDX01PTlRIU10gPSBCSU4yQkNEKHQtPnRtX21vbiArIDEpOworCisJLyogYXNzdW1lIDIwWVkgbm90IDE5WVkgKi8KKwl0bXAgPSB0LT50bV95ZWFyIC0gMTAwOworCWJ1ZltGTTMxMzBfUlRDX1lFQVJTXSA9IEJJTjJCQ0QodG1wKTsKKworCWRldl9kYmcoZGV2LCAiJXM6ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMngiCisJCSIlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCSJ3cml0ZSIsIGJ1ZlswXSwgYnVmWzFdLCBidWZbMl0sIGJ1ZlszXSwKKwkJYnVmWzRdLCBidWZbNV0sIGJ1Zls2XSwgYnVmWzddLAorCQlidWZbOF0sIGJ1Zls5XSwgYnVmWzB4YV0sIGJ1ZlsweGJdLAorCQlidWZbMHhjXSwgYnVmWzB4ZF0sIGJ1ZlsweGVdKTsKKworCWZtMzEzMF9ydGNfbW9kZShkZXYsIEZNMzEzMF9NT0RFX1dSSVRFKTsKKworCS8qIFdyaXRpbmcgdGltZSByZWdpc3RlcnMsIHdlIGRvbid0IHN1cHBvcnQgbXVsdGlieXRlIHRyYW5zZmVycyAqLworCWZvciAoaSA9IDA7IGkgPCBGTTMxMzBfQ0xPQ0tfUkVHUzsgaSsrKSB7CisJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZm0zMTMwLT5jbGllbnQsCisJCQkJCUZNMzEzMF9SVENfU0VDT05EUyArIGksCisJCQkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX1NFQ09ORFMgKyBpXSk7CisJfQorCisJZm0zMTMwX3J0Y19tb2RlKGRldiwgRk0zMTMwX01PREVfTk9STUFMKTsKKworCS8qIFdlIGFzc3VtZSBoZXJlIHRoYXQgZGF0YSBhcmUgdmFsaWQgb25jZSB3cml0dGVuICovCisJaWYgKCFmbTMxMzAtPmRhdGFfdmFsaWQpCisJCWZtMzEzMC0+ZGF0YV92YWxpZCA9IDE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZm0zMTMwX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgZm0zMTMwICpmbTMxMzAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlpbnQgdG1wOworCXN0cnVjdCBydGNfdGltZSAqdG0gPSAmYWxybS0+dGltZTsKKwkvKiByZWFkIHRoZSBSVEMgYWxhcm0gcmVnaXN0ZXJzIGFsbCBhdCBvbmNlICovCisJdG1wID0gaTJjX3RyYW5zZmVyKHRvX2kyY19hZGFwdGVyKGZtMzEzMC0+Y2xpZW50LT5kZXYucGFyZW50KSwKKwkJCSZmbTMxMzAtPm1zZ1syXSwgMik7CisJaWYgKHRtcCAhPSAyKSB7CisJCWRldl9lcnIoZGV2LCAiJXMgZXJyb3IgJWRcbiIsICJyZWFkIiwgdG1wKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCWRldl9kYmcoZGV2LCAiYWxhcm0gcmVhZCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX1NFQ09ORFNdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9NSU5VVEVTXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fSE9VUlNdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9EQVRFXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTU9OVEhTXSk7CisKKworCXRtLT50bV9zZWMJPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fU0VDT05EU10gJiAweDdGKTsKKwl0bS0+dG1fbWluCT0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX01JTlVURVNdICYgMHg3Rik7CisJdG0tPnRtX2hvdXIJPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fSE9VUlNdICYgMHgzRik7CisJdG0tPnRtX21kYXkJPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fREFURV0gJiAweDNGKTsKKwl0bS0+dG1fbW9uCT0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX01PTlRIU10gJiAweDFGKTsKKwlpZiAodG0tPnRtX21vbiA+IDApCisJCXRtLT50bV9tb24gLT0gMTsgLyogUlRDIGlzIDEtMTIsIHRtX21vbiBpcyAwLTExICovCisJZGV2X2RiZyhkZXYsICIlcyBzZWNzPSVkLCBtaW5zPSVkLCAiCisJCSJob3Vycz0lZCwgbWRheT0lZCwgbW9uPSVkLCB5ZWFyPSVkLCB3ZGF5PSVkXG4iLAorCQkicmVhZCBhbGFybSIsIHRtLT50bV9zZWMsIHRtLT50bV9taW4sCisJCXRtLT50bV9ob3VyLCB0bS0+dG1fbWRheSwKKwkJdG0tPnRtX21vbiwgdG0tPnRtX3llYXIsIHRtLT50bV93ZGF5KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGZtMzEzMF9zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgZm0zMTMwICpmbTMxMzAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgcnRjX3RpbWUgKnRtID0gJmFscm0tPnRpbWU7CisJaW50IGk7CisKKwlkZXZfZGJnKGRldiwgIiVzIHNlY3M9JWQsIG1pbnM9JWQsICIKKwkJImhvdXJzPSVkLCBtZGF5PSVkLCBtb249JWQsIHllYXI9JWQsIHdkYXk9JWRcbiIsCisJCSJ3cml0ZSBhbGFybSIsIHRtLT50bV9zZWMsIHRtLT50bV9taW4sCisJCXRtLT50bV9ob3VyLCB0bS0+dG1fbWRheSwKKwkJdG0tPnRtX21vbiwgdG0tPnRtX3llYXIsIHRtLT50bV93ZGF5KTsKKworCWlmICh0bS0+dG1fc2VjICE9IC0xKQorCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX1NFQ09ORFNdID0KKwkJCUJJTjJCQ0QodG0tPnRtX3NlYykgfCAweDgwOworCisJaWYgKHRtLT50bV9taW4gIT0gLTEpCisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTUlOVVRFU10gPQorCQkJQklOMkJDRCh0bS0+dG1fbWluKSB8IDB4ODA7CisKKwlpZiAodG0tPnRtX2hvdXIgIT0gLTEpCisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fSE9VUlNdID0KKwkJCUJJTjJCQ0QodG0tPnRtX2hvdXIpIHwgMHg4MDsKKworCWlmICh0bS0+dG1fbWRheSAhPSAtMSkKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9EQVRFXSA9CisJCQlCSU4yQkNEKHRtLT50bV9tZGF5KSB8IDB4ODA7CisKKwlpZiAodG0tPnRtX21vbiAhPSAtMSkKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9NT05USFNdID0KKwkJCUJJTjJCQ0QodG0tPnRtX21vbiArIDEpIHwgMHg4MDsKKworCWRldl9kYmcoZGV2LCAiYWxhcm0gd3JpdGUgJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4XG4iLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9TRUNPTkRTXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTUlOVVRFU10sCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX0hPVVJTXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fREFURV0sCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX01PTlRIU10pOworCS8qIFdyaXRpbmcgdGltZSByZWdpc3RlcnMsIHdlIGRvbid0IHN1cHBvcnQgbXVsdGlieXRlIHRyYW5zZmVycyAqLworCWZvciAoaSA9IDA7IGkgPCBGTTMxMzBfQUxBUk1fUkVHUzsgaSsrKSB7CisJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZm0zMTMwLT5jbGllbnQsCisJCQkJCUZNMzEzMF9BTEFSTV9TRUNPTkRTICsgaSwKKwkJCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9TRUNPTkRTICsgaV0pOworCX0KKwlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSA9CisJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MKTsKKwkvKiBDaGVja2luZyBmb3IgYWxhcm0gKi8KKwlpZiAoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0FGKSB7CisJCWZtMzEzMC0+YWxhcm0gPSAxOworCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmPSB+Rk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRjsKKwl9CisJaWYgKGFscm0tPmVuYWJsZWQpIHsKKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MLAorCQkJKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYKKwkJCQl+KEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQ0FMKSkgfAorCQkJCQlGTTMxMzBfUlRDX0NPTlRST0xfQklUX0FFTik7CisJfSBlbHNlIHsKKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJgorCQkJCX4oRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRU4pKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRjX2NsYXNzX29wcyBmbTMxMzBfcnRjX29wcyA9IHsKKwkucmVhZF90aW1lCT0gZm0zMTMwX2dldF90aW1lLAorCS5zZXRfdGltZQk9IGZtMzEzMF9zZXRfdGltZSwKKwkucmVhZF9hbGFybQk9IGZtMzEzMF9yZWFkX2FsYXJtLAorCS5zZXRfYWxhcm0JPSBmbTMxMzBfc2V0X2FsYXJtLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGZtMzEzMF9kcml2ZXI7CisKK3N0YXRpYyBpbnQgX19kZXZpbml0IGZtMzEzMF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAorCQkJCSAgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCBmbTMxMzAJCSpmbTMxMzA7CisJaW50CQkJZXJyID0gLUVOT0RFVjsKKwlpbnQJCQl0bXA7CisJc3RydWN0IGkyY19hZGFwdGVyCSphZGFwdGVyID0gdG9faTJjX2FkYXB0ZXIoY2xpZW50LT5kZXYucGFyZW50KTsKKworCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoYWRhcHRlciwKKwkJCUkyQ19GVU5DX0kyQyB8IEkyQ19GVU5DX1NNQlVTX1dSSVRFX0JZVEVfREFUQSkpCisJCXJldHVybiAtRUlPOworCisJZm0zMTMwID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGZtMzEzMCksIEdGUF9LRVJORUwpOworCisJaWYgKCFmbTMxMzApCisJCXJldHVybiAtRU5PTUVNOworCisJZm0zMTMwLT5jbGllbnQgPSBjbGllbnQ7CisJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgZm0zMTMwKTsKKwlmbTMxMzAtPnJlZ19hZGRyX3RpbWUgPSBGTTMxMzBfUlRDX1NFQ09ORFM7CisJZm0zMTMwLT5yZWdfYWRkcl9hbGFybSA9IEZNMzEzMF9BTEFSTV9TRUNPTkRTOworCisJLyogTWVzc2FnZXMgdG8gcmVhZCB0aW1lICovCisJZm0zMTMwLT5tc2dbMF0uYWRkciA9IGNsaWVudC0+YWRkcjsKKwlmbTMxMzAtPm1zZ1swXS5mbGFncyA9IDA7CisJZm0zMTMwLT5tc2dbMF0ubGVuID0gMTsKKwlmbTMxMzAtPm1zZ1swXS5idWYgPSAmZm0zMTMwLT5yZWdfYWRkcl90aW1lOworCisJZm0zMTMwLT5tc2dbMV0uYWRkciA9IGNsaWVudC0+YWRkcjsKKwlmbTMxMzAtPm1zZ1sxXS5mbGFncyA9IEkyQ19NX1JEOworCWZtMzEzMC0+bXNnWzFdLmxlbiA9IEZNMzEzMF9DTE9DS19SRUdTOworCWZtMzEzMC0+bXNnWzFdLmJ1ZiA9ICZmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19TRUNPTkRTXTsKKworCS8qIE1lc3NhZ2VzIHRvIHJlYWQgYWxhcm0gKi8KKwlmbTMxMzAtPm1zZ1syXS5hZGRyID0gY2xpZW50LT5hZGRyOworCWZtMzEzMC0+bXNnWzJdLmZsYWdzID0gMDsKKwlmbTMxMzAtPm1zZ1syXS5sZW4gPSAxOworCWZtMzEzMC0+bXNnWzJdLmJ1ZiA9ICZmbTMxMzAtPnJlZ19hZGRyX2FsYXJtOworCisJZm0zMTMwLT5tc2dbM10uYWRkciA9IGNsaWVudC0+YWRkcjsKKwlmbTMxMzAtPm1zZ1szXS5mbGFncyA9IEkyQ19NX1JEOworCWZtMzEzMC0+bXNnWzNdLmxlbiA9IEZNMzEzMF9BTEFSTV9SRUdTOworCWZtMzEzMC0+bXNnWzNdLmJ1ZiA9ICZmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX1NFQ09ORFNdOworCisJZm0zMTMwLT5kYXRhX3ZhbGlkID0gMDsKKworCXRtcCA9IGkyY190cmFuc2ZlcihhZGFwdGVyLCBmbTMxMzAtPm1zZywgNCk7CisJaWYgKHRtcCAhPSA0KSB7CisJCXByX2RlYnVnKCJyZWFkIGVycm9yICVkXG4iLCB0bXApOworCQllcnIgPSAtRUlPOworCQlnb3RvIGV4aXRfZnJlZTsKKwl9CisKKwlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSA9CisJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIEZNMzEzMF9SVENfQ09OVFJPTCk7CisJZm0zMTMwLT5yZWdzW0ZNMzEzMF9DQUxfQ09OVFJPTF0gPQorCQlpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCBGTTMxMzBfQ0FMX0NPTlRST0wpOworCisJLyogQ2hlY2tpbmcgZm9yIGFsYXJtICovCisJaWYgKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRikgeworCQlmbTMxMzAtPmFsYXJtID0gMTsKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJj0gfkZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUY7CisJfQorCisJLyogRGlzYWJsaW5nIGNhbGlicmF0aW9uIG1vZGUgKi8KKwlpZiAoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0NBTCkKKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEZNMzEzMF9SVENfQ09OVFJPTCwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYKKwkJCQl+KEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQ0FMKSk7CisJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIkRpc2FibGluZyBjYWxpYnJhdGlvbiBtb2RlIVxuIik7CisKKwkvKiBEaXNhYmxpbmcgcmVhZCBhbmQgd3JpdGUgbW9kZXMgKi8KKwlpZiAoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1dSSVRFIHx8CisJICAgIGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9SRUFEKQorCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJgorCQkJCX4oRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9SRUFEIHwKKwkJCQkJRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9XUklURSkpOworCQlkZXZfd2FybigmY2xpZW50LT5kZXYsICJEaXNhYmxpbmcgUkVBRCBvciBXUklURSBtb2RlIVxuIik7CisKKwkvKiBvc2NpbGxhdG9yIG9mZj8gIHR1cm4gaXQgb24sIHNvIGNsb2NrIGNhbiB0aWNrLiAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX0NBTF9DT05UUk9MXSAmIEZNMzEzMF9DQUxfQ09OVFJPTF9CSVRfbk9TQ0VOKQorCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX0NBTF9DT05UUk9MLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9DQUxfQ09OVFJPTF0gJgorCQkJCX4oRk0zMTMwX0NBTF9DT05UUk9MX0JJVF9uT1NDRU4pKTsKKworCS8qIG9zY2lsbGF0b3IgZmF1bHQ/ICBjbGVhciBmbGFnLCBhbmQgd2FybiAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfTEIpCisJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIkxvdyBiYXR0ZXJ5IVxuIik7CisKKwkvKiBvc2NpbGxhdG9yIGZhdWx0PyAgY2xlYXIgZmxhZywgYW5kIHdhcm4gKi8KKwlpZiAoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1BPUikgeworCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJgorCQkJCX5GTTMxMzBfUlRDX0NPTlRST0xfQklUX1BPUik7CisJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIlNFVCBUSU1FIVxuIik7CisJfQorCS8qIEFDUyBpcyBjb250cm9sbGVkIGJ5IGFsYXJtICovCisJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEZNMzEzMF9BTEFSTV9XUF9DT05UUk9MLCAweDgwKTsKKworCS8qIFRPRE8gKi8KKwkvKiBUT0RPIG5lZWQgdG8gc2FuaXR5IGNoZWNrIGFsYXJtICovCisJdG1wID0gZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfU0VDT05EU107CisJdG1wID0gQkNEMkJJTih0bXAgJiAweDdmKTsKKwlpZiAodG1wID4gNjApCisJCWdvdG8gZXhpdF9iYWQ7CisJdG1wID0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19NSU5VVEVTXSAmIDB4N2YpOworCWlmICh0bXAgPiA2MCkKKwkJZ290byBleGl0X2JhZDsKKworCXRtcCA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfREFURV0gJiAweDNmKTsKKwlpZiAodG1wID09IDAgfHwgdG1wID4gMzEpCisJCWdvdG8gZXhpdF9iYWQ7CisKKwl0bXAgPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX01PTlRIU10gJiAweDFmKTsKKwlpZiAodG1wID09IDAgfHwgdG1wID4gMTIpCisJCWdvdG8gZXhpdF9iYWQ7CisKKwl0bXAgPSBmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19IT1VSU107CisKKwlmbTMxMzAtPmRhdGFfdmFsaWQgPSAxOworCitleGl0X2JhZDoKKwlpZiAoIWZtMzEzMC0+ZGF0YV92YWxpZCkKKwkJZGV2X2RiZygmY2xpZW50LT5kZXYsCisJCQkJIiVzOiAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMngiCisJCQkJIiUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQkiYm9ndXMgcmVnaXN0ZXJzIiwKKwkJCWZtMzEzMC0+cmVnc1swXSwgZm0zMTMwLT5yZWdzWzFdLAorCQkJZm0zMTMwLT5yZWdzWzJdLCBmbTMxMzAtPnJlZ3NbM10sCisJCQlmbTMxMzAtPnJlZ3NbNF0sIGZtMzEzMC0+cmVnc1s1XSwKKwkJCWZtMzEzMC0+cmVnc1s2XSwgZm0zMTMwLT5yZWdzWzddLAorCQkJZm0zMTMwLT5yZWdzWzhdLCBmbTMxMzAtPnJlZ3NbOV0sCisJCQlmbTMxMzAtPnJlZ3NbMHhhXSwgZm0zMTMwLT5yZWdzWzB4Yl0sCisJCQlmbTMxMzAtPnJlZ3NbMHhjXSwgZm0zMTMwLT5yZWdzWzB4ZF0sCisJCQlmbTMxMzAtPnJlZ3NbMHhlXSk7CisKKwkvKiBXZSB3b24ndCBiYWlsIG91dCBoZXJlIGJlY2F1c2Ugd2UganVzdCBnb3QgaW52YWxpZCBkYXRhLgorCSAgIFRpbWUgc2V0dGluZyBmcm9tIHUtYm9vdCBkb2Vzbid0IHdvcmsgYW55d2F5ICovCisJZm0zMTMwLT5ydGMgPSBydGNfZGV2aWNlX3JlZ2lzdGVyKGNsaWVudC0+bmFtZSwgJmNsaWVudC0+ZGV2LAorCQkJCSZmbTMxMzBfcnRjX29wcywgVEhJU19NT0RVTEUpOworCWlmIChJU19FUlIoZm0zMTMwLT5ydGMpKSB7CisJCWVyciA9IFBUUl9FUlIoZm0zMTMwLT5ydGMpOworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKKwkJCSJ1bmFibGUgdG8gcmVnaXN0ZXIgdGhlIGNsYXNzIGRldmljZVxuIik7CisJCWdvdG8gZXhpdF9mcmVlOworCX0KKwlyZXR1cm4gMDsKK2V4aXRfZnJlZToKKwlrZnJlZShmbTMxMzApOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IGZtMzEzMF9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3QgZm0zMTMwICpmbTMxMzAgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKworCXJ0Y19kZXZpY2VfdW5yZWdpc3RlcihmbTMxMzAtPnJ0Yyk7CisJa2ZyZWUoZm0zMTMwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGZtMzEzMF9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUJPSAicnRjLWZtMzEzMCIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0sCisJLnByb2JlCQk9IGZtMzEzMF9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKGZtMzEzMF9yZW1vdmUpLAorCS5pZF90YWJsZQk9IGZtMzEzMF9pZCwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGZtMzEzMF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZmbTMxMzBfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KGZtMzEzMF9pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IGZtMzEzMF9leGl0KHZvaWQpCit7CisJaTJjX2RlbF9kcml2ZXIoJmZtMzEzMF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQoZm0zMTMwX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlJUQyBkcml2ZXIgZm9yIEZNMzEzMCIpOworTU9EVUxFX0FVVEhPUigiU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1tNDF0ODAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1tNDF0ODAuYwppbmRleCBhM2UwODgwLi4wYTE5YzA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtbTQxdDgwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLW00MXQ4MC5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgpAQCAtNjU1LDEyICs2NTYsMTYgQEAKIHN0YXRpYyBpbnQgd2R0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJaWYgKE1JTk9SKGlub2RlLT5pX3JkZXYpID09IFdBVENIRE9HX01JTk9SKSB7Ci0JCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZ3ZHRfaXNfb3BlbikpCisJCWxvY2tfa2VybmVsKCk7CisJCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZ3ZHRfaXNfb3BlbikpIHsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAtRUJVU1k7CisJCX0KIAkJLyoKIAkJICoJQWN0aXZhdGUKIAkJICovCiAJCXdkdF9pc19vcGVuID0gMTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gMDsKIAl9CiAJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtb21hcC5jIGIvZHJpdmVycy9ydGMvcnRjLW9tYXAuYwppbmRleCA1OGY4MWM3Li5lYjIzZDg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtb21hcC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1vbWFwLmMKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KIAogCiAvKiBUaGUgT01BUDEgUlRDIGlzIGEgeWVhci9tb250aC9kYXkvaG91cnMvbWludXRlcy9zZWNvbmRzIEJDRCBjbG9jawpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXBjZjg1NjMuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTYzLmMKaW5kZXggMGZjNGMzNi4uNzQ4YTUwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXBjZjg1NjMuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jCkBAIC0zMDIsNiArMzAyLDcgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHBjZjg1NjNfaWRbXSA9IHsKIAl7ICJwY2Y4NTYzIiwgMCB9LAorCXsgInJ0Yzg1NjQiLCAwIH0sCiAJeyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIHBjZjg1NjNfaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXBsMDMwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDQ4ZWViCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ydGMvcnRjLXBsMDMwLmMKQEAgLTAsMCArMSwyMTcgQEAKKy8qCisgKiAgbGludXgvZHJpdmVycy9ydGMvcnRjLXBsMDMwLmMKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgRGVlcCBCbHVlIFNvbHV0aW9ucyBMdGQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9hbWJhL2J1cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisKKyNkZWZpbmUgUlRDX0RSCQkoMCkKKyNkZWZpbmUgUlRDX01SCQkoNCkKKyNkZWZpbmUgUlRDX1NUQVQJKDgpCisjZGVmaW5lIFJUQ19FT0kJCSg4KQorI2RlZmluZSBSVENfTFIJCSgxMikKKyNkZWZpbmUgUlRDX0NSCQkoMTYpCisjZGVmaW5lIFJUQ19DUl9NSUUJKDEgPDwgMCkKKworc3RydWN0IHBsMDMwX3J0YyB7CisJc3RydWN0IHJ0Y19kZXZpY2UJKnJ0YzsKKwl2b2lkIF9faW9tZW0JCSpiYXNlOworfTsKKworc3RhdGljIGlycXJldHVybl90IHBsMDMwX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gZGV2X2lkOworCXdyaXRlbCgwLCBydGMtPmJhc2UgKyBSVENfRU9JKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfb3BlbihzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHBsMDMwX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQoreworfQorCitzdGF0aWMgaW50IHBsMDMwX2lvY3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJcmV0dXJuIC1FTk9JT0NUTENNRDsKK30KKworc3RhdGljIGludCBwbDAzMF9yZWFkX2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlydGNfdGltZV90b190bShyZWFkbChydGMtPmJhc2UgKyBSVENfTVIpLCAmYWxybS0+dGltZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfc2V0X2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgbG9uZyB0aW1lOworCWludCByZXQ7CisKKwkvKgorCSAqIEF0IHRoZSBtb21lbnQsIHdlIGNhbiBvbmx5IGRlYWwgd2l0aCBub24td2lsZGNhcmRlZCBhbGFybSB0aW1lcy4KKwkgKi8KKwlyZXQgPSBydGNfdmFsaWRfdG0oJmFscm0tPnRpbWUpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gcnRjX3RtX3RvX3RpbWUoJmFscm0tPnRpbWUsICZ0aW1lKTsKKwlpZiAocmV0ID09IDApCisJCXdyaXRlbCh0aW1lLCBydGMtPmJhc2UgKyBSVENfTVIpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXJ0Y190aW1lX3RvX3RtKHJlYWRsKHJ0Yy0+YmFzZSArIFJUQ19EUiksIHRtKTsKKworCXJldHVybiAwOworfQorCisvKgorICogU2V0IHRoZSBSVEMgdGltZS4gIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IGFjY3VyYXRlbHkgc2V0CisgKiB0aGUgcG9pbnQgYXQgd2hpY2ggdGhlIGNvdW50ZXIgdXBkYXRlcy4KKyAqCisgKiBBbHNvLCBzaW5jZSBSVENfTFIgaXMgdHJhbnNmZXJyZWQgdG8gUlRDX0NSIG9uIG5leHQgcmlzaW5nCisgKiBlZGdlIG9mIHRoZSAxSHogY2xvY2ssIHdlIG11c3Qgd3JpdGUgdGhlIHRpbWUgb25lIHNlY29uZAorICogaW4gYWR2YW5jZS4KKyAqLworc3RhdGljIGludCBwbDAzMF9zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgbG9uZyB0aW1lOworCWludCByZXQ7CisKKwlyZXQgPSBydGNfdG1fdG9fdGltZSh0bSwgJnRpbWUpOworCWlmIChyZXQgPT0gMCkKKwkJd3JpdGVsKHRpbWUgKyAxLCBydGMtPmJhc2UgKyBSVENfTFIpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzIHBsMDMwX29wcyA9IHsKKwkub3BlbgkJPSBwbDAzMF9vcGVuLAorCS5yZWxlYXNlCT0gcGwwMzBfcmVsZWFzZSwKKwkuaW9jdGwJCT0gcGwwMzBfaW9jdGwsCisJLnJlYWRfdGltZQk9IHBsMDMwX3JlYWRfdGltZSwKKwkuc2V0X3RpbWUJPSBwbDAzMF9zZXRfdGltZSwKKwkucmVhZF9hbGFybQk9IHBsMDMwX3JlYWRfYWxhcm0sCisJLnNldF9hbGFybQk9IHBsMDMwX3NldF9hbGFybSwKK307CisKK3N0YXRpYyBpbnQgcGwwMzBfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYsIHZvaWQgKmlkKQoreworCXN0cnVjdCBwbDAzMF9ydGMgKnJ0YzsKKwlpbnQgcmV0OworCisJcmV0ID0gYW1iYV9yZXF1ZXN0X3JlZ2lvbnMoZGV2LCBOVUxMKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9yZXE7CisKKwlydGMgPSBrbWFsbG9jKHNpemVvZigqcnRjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFydGMpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfcnRjOworCX0KKworCXJ0Yy0+YmFzZSA9IGlvcmVtYXAoZGV2LT5yZXMuc3RhcnQsIFNaXzRLKTsKKwlpZiAoIXJ0Yy0+YmFzZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9tYXA7CisJfQorCisJX19yYXdfd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19DUik7CisJX19yYXdfd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19FT0kpOworCisJYW1iYV9zZXRfZHJ2ZGF0YShkZXYsIHJ0Yyk7CisKKwlyZXQgPSByZXF1ZXN0X2lycShkZXYtPmlycVswXSwgcGwwMzBfaW50ZXJydXB0LCBJUlFGX0RJU0FCTEVELAorCQkJICAicnRjLXBsMDMwIiwgcnRjKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9pcnE7CisKKwlydGMtPnJ0YyA9IHJ0Y19kZXZpY2VfcmVnaXN0ZXIoInBsMDMwIiwgJmRldi0+ZGV2LCAmcGwwMzBfb3BzLAorCQkJCSAgICAgICBUSElTX01PRFVMRSk7CisJaWYgKElTX0VSUihydGMtPnJ0YykpIHsKKwkJcmV0ID0gUFRSX0VSUihydGMtPnJ0Yyk7CisJCWdvdG8gZXJyX3JlZzsKKwl9CisKKwlyZXR1cm4gMDsKKworIGVycl9yZWc6CisJZnJlZV9pcnEoZGV2LT5pcnFbMF0sIHJ0Yyk7CisgZXJyX2lycToKKwlpb3VubWFwKHJ0Yy0+YmFzZSk7CisgZXJyX21hcDoKKwlrZnJlZShydGMpOworIGVycl9ydGM6CisJYW1iYV9yZWxlYXNlX3JlZ2lvbnMoZGV2KTsKKyBlcnJfcmVxOgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBwbDAzMF9ydGMgKnJ0YyA9IGFtYmFfZ2V0X2RydmRhdGEoZGV2KTsKKworCWFtYmFfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKKworCXdyaXRlbCgwLCBydGMtPmJhc2UgKyBSVENfQ1IpOworCisJZnJlZV9pcnEoZGV2LT5pcnFbMF0sIHJ0Yyk7CisJcnRjX2RldmljZV91bnJlZ2lzdGVyKHJ0Yy0+cnRjKTsKKwlpb3VubWFwKHJ0Yy0+YmFzZSk7CisJa2ZyZWUocnRjKTsKKwlhbWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYW1iYV9pZCBwbDAzMF9pZHNbXSA9IHsKKwl7CisJCS5pZAk9IDB4MDAwNDEwMzAsCisJCS5tYXNrCT0gMHgwMDBmZmZmZiwKKwl9LAorCXsgMCwgMCB9LAorfTsKKworc3RhdGljIHN0cnVjdCBhbWJhX2RyaXZlciBwbDAzMF9kcml2ZXIgPSB7CisJLmRydgkJPSB7CisJCS5uYW1lCT0gInJ0Yy1wbDAzMCIsCisJfSwKKwkucHJvYmUJCT0gcGwwMzBfcHJvYmUsCisJLnJlbW92ZQkJPSBwbDAzMF9yZW1vdmUsCisJLmlkX3RhYmxlCT0gcGwwMzBfaWRzLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcGwwMzBfaW5pdCh2b2lkKQoreworCXJldHVybiBhbWJhX2RyaXZlcl9yZWdpc3RlcigmcGwwMzBfZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHBsMDMwX2V4aXQodm9pZCkKK3sKKwlhbWJhX2RyaXZlcl91bnJlZ2lzdGVyKCZwbDAzMF9kcml2ZXIpOworfQorCittb2R1bGVfaW5pdChwbDAzMF9pbml0KTsKK21vZHVsZV9leGl0KHBsMDMwX2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCJSdXNzZWxsIEtpbmcgPHJta0Bhcm0ubGludXgub3JnLnVrPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBUk0gQU1CQSBQTDAzMCBSVEMgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGwwMzEuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jCmluZGV4IDJmZDQ5ZWQuLjA4YjQ2MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jCkBAIC0xMiwyMyArMTIsMTIgQEAKICAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgogICogMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwotCi0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcnRjLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvcG0uaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KLQogI2luY2x1ZGUgPGxpbnV4L2FtYmEvYnVzLmg+Ci0KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKIC8qCiAgKiBSZWdpc3RlciBkZWZpbml0aW9ucwpAQCAtMTQyLDEzICsxMzEsMTIgQEAKIHsKIAlzdHJ1Y3QgcGwwMzFfbG9jYWwgKmxkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZhZGV2LT5kZXYpOwogCi0JaWYgKGxkYXRhKSB7Ci0JCWRldl9zZXRfZHJ2ZGF0YSgmYWRldi0+ZGV2LCBOVUxMKTsKLQkJZnJlZV9pcnEoYWRldi0+aXJxWzBdLCBsZGF0YS0+cnRjKTsKLQkJcnRjX2RldmljZV91bnJlZ2lzdGVyKGxkYXRhLT5ydGMpOwotCQlpb3VubWFwKGxkYXRhLT5iYXNlKTsKLQkJa2ZyZWUobGRhdGEpOwotCX0KKwlhbWJhX3NldF9kcnZkYXRhKGFkZXYsIE5VTEwpOworCWZyZWVfaXJxKGFkZXYtPmlycVswXSwgbGRhdGEtPnJ0Yyk7CisJcnRjX2RldmljZV91bnJlZ2lzdGVyKGxkYXRhLT5ydGMpOworCWlvdW5tYXAobGRhdGEtPmJhc2UpOworCWtmcmVlKGxkYXRhKTsKKwlhbWJhX3JlbGVhc2VfcmVnaW9ucyhhZGV2KTsKIAogCXJldHVybiAwOwogfQpAQCAtMTU4LDEzICsxNDYsMTUgQEAKIAlpbnQgcmV0OwogCXN0cnVjdCBwbDAzMV9sb2NhbCAqbGRhdGE7CiAKKwlyZXQgPSBhbWJhX3JlcXVlc3RfcmVnaW9ucyhhZGV2LCBOVUxMKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9yZXE7CiAKIAlsZGF0YSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBwbDAzMV9sb2NhbCksIEdGUF9LRVJORUwpOwogCWlmICghbGRhdGEpIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CiAJfQotCWRldl9zZXRfZHJ2ZGF0YSgmYWRldi0+ZGV2LCBsZGF0YSk7CiAKIAlsZGF0YS0+YmFzZSA9IGlvcmVtYXAoYWRldi0+cmVzLnN0YXJ0LAogCQkJICAgICAgYWRldi0+cmVzLmVuZCAtIGFkZXYtPnJlcy5zdGFydCArIDEpOwpAQCAtMTczLDYgKzE2Myw4IEBACiAJCWdvdG8gb3V0X25vX3JlbWFwOwogCX0KIAorCWFtYmFfc2V0X2RydmRhdGEoYWRldiwgbGRhdGEpOworCiAJaWYgKHJlcXVlc3RfaXJxKGFkZXYtPmlycVswXSwgcGwwMzFfaW50ZXJydXB0LCBJUlFGX0RJU0FCTEVELAogCQkJInJ0Yy1wbDAzMSIsIGxkYXRhLT5ydGMpKSB7CiAJCXJldCA9IC1FSU87CkBAIC0xOTIsMTAgKzE4NCwxMiBAQAogCWZyZWVfaXJxKGFkZXYtPmlycVswXSwgbGRhdGEtPnJ0Yyk7CiBvdXRfbm9faXJxOgogCWlvdW5tYXAobGRhdGEtPmJhc2UpOworCWFtYmFfc2V0X2RydmRhdGEoYWRldiwgTlVMTCk7CiBvdXRfbm9fcmVtYXA6Ci0JZGV2X3NldF9kcnZkYXRhKCZhZGV2LT5kZXYsIE5VTEwpOwogCWtmcmVlKGxkYXRhKTsKIG91dDoKKwlhbWJhX3JlbGVhc2VfcmVnaW9ucyhhZGV2KTsKK2Vycl9yZXE6CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXMzYy5jIGIvZHJpdmVycy9ydGMvcnRjLXMzYy5jCmluZGV4IGYyNmUwY2EuLmZlZDg2ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1zM2MuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtczNjLmMKQEAgLTI2LDEwICsyNiw2IEBACiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3MtcnRjLmg+CiAKIC8qIEkgaGF2ZSB5ZXQgdG8gZmluZCBhbiBTM0MgaW1wbGVtZW50YXRpb24gd2l0aCBtb3JlIHRoYW4gb25lCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtc2ExMTAwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtc2ExMTAwLmMKaW5kZXggODJmNjJkMi4uZjQ3Mjk0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXNhMTEwMC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1zYTExMDAuYwpAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGFzbS9ydGMuaD4KIAogI2lmZGVmIENPTkZJR19BUkNIX1BYQQogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CkBAIC00Nyw2ICs0Niw0MiBAQAogc3RhdGljIHN0cnVjdCBydGNfdGltZSBydGNfYWxhcm07CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHNhMTEwMF9ydGNfbG9jayk7CiAKK3N0YXRpYyBpbmxpbmUgaW50IHJ0Y19wZXJpb2RpY19hbGFybShzdHJ1Y3QgcnRjX3RpbWUgKnRtKQoreworCXJldHVybiAgKHRtLT50bV95ZWFyID09IC0xKSB8fAorCQkoKHVuc2lnbmVkKXRtLT50bV9tb24gPj0gMTIpIHx8CisJCSgodW5zaWduZWQpKHRtLT50bV9tZGF5IC0gMSkgPj0gMzEpIHx8CisJCSgodW5zaWduZWQpdG0tPnRtX2hvdXIgPiAyMykgfHwKKwkJKCh1bnNpZ25lZCl0bS0+dG1fbWluID4gNTkpIHx8CisJCSgodW5zaWduZWQpdG0tPnRtX3NlYyA+IDU5KTsKK30KKworLyoKKyAqIENhbGN1bGF0ZSB0aGUgbmV4dCBhbGFybSB0aW1lIGdpdmVuIHRoZSByZXF1ZXN0ZWQgYWxhcm0gdGltZSBtYXNrCisgKiBhbmQgdGhlIGN1cnJlbnQgdGltZS4KKyAqLworc3RhdGljIHZvaWQgcnRjX25leHRfYWxhcm1fdGltZShzdHJ1Y3QgcnRjX3RpbWUgKm5leHQsIHN0cnVjdCBydGNfdGltZSAqbm93LCBzdHJ1Y3QgcnRjX3RpbWUgKmFscm0pCit7CisJdW5zaWduZWQgbG9uZyBuZXh0X3RpbWU7CisJdW5zaWduZWQgbG9uZyBub3dfdGltZTsKKworCW5leHQtPnRtX3llYXIgPSBub3ctPnRtX3llYXI7CisJbmV4dC0+dG1fbW9uID0gbm93LT50bV9tb247CisJbmV4dC0+dG1fbWRheSA9IG5vdy0+dG1fbWRheTsKKwluZXh0LT50bV9ob3VyID0gYWxybS0+dG1faG91cjsKKwluZXh0LT50bV9taW4gPSBhbHJtLT50bV9taW47CisJbmV4dC0+dG1fc2VjID0gYWxybS0+dG1fc2VjOworCisJcnRjX3RtX3RvX3RpbWUobm93LCAmbm93X3RpbWUpOworCXJ0Y190bV90b190aW1lKG5leHQsICZuZXh0X3RpbWUpOworCisJaWYgKG5leHRfdGltZSA8IG5vd190aW1lKSB7CisJCS8qIEFkdmFuY2Ugb25lIGRheSAqLworCQluZXh0X3RpbWUgKz0gNjAgKiA2MCAqIDI0OworCQlydGNfdGltZV90b190bShuZXh0X3RpbWUsIG5leHQpOworCX0KK30KKwogc3RhdGljIGludCBydGNfdXBkYXRlX2FsYXJtKHN0cnVjdCBydGNfdGltZSAqYWxybSkKIHsKIAlzdHJ1Y3QgcnRjX3RpbWUgYWxhcm1fdG0sIG5vd190bTsKQEAgLTMzMSwxNCArMzY2LDE0IEBACiAJCVJDTlIgPSAwOwogCX0KIAorCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKKwogCXJ0YyA9IHJ0Y19kZXZpY2VfcmVnaXN0ZXIocGRldi0+bmFtZSwgJnBkZXYtPmRldiwgJnNhMTEwMF9ydGNfb3BzLAogCQkJCVRISVNfTU9EVUxFKTsKIAogCWlmIChJU19FUlIocnRjKSkKIAkJcmV0dXJuIFBUUl9FUlIocnRjKTsKIAotCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKLQogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHJ0Yyk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy14MTIwNS5jIGIvZHJpdmVycy9ydGMvcnRjLXgxMjA1LmMKaW5kZXggZWFmNTU5NC4uN2RjZmJhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXgxMjA1LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXgxMjA1LmMKQEAgLTcxLDYgKzcxLDcgQEAKICNkZWZpbmUgWDEyMDVfU1JfUlRDRgkJMHgwMQkvKiBDbG9jayBmYWlsdXJlICovCiAjZGVmaW5lIFgxMjA1X1NSX1dFTAkJMHgwMgkvKiBXcml0ZSBFbmFibGUgTGF0Y2ggKi8KICNkZWZpbmUgWDEyMDVfU1JfUldFTAkJMHgwNAkvKiBSZWdpc3RlciBXcml0ZSBFbmFibGUgKi8KKyNkZWZpbmUgWDEyMDVfU1JfQUwwCQkweDIwCS8qIEFsYXJtIDAgbWF0Y2ggKi8KIAogI2RlZmluZSBYMTIwNV9EVFJfRFRSMAkJMHgwMQogI2RlZmluZSBYMTIwNV9EVFJfRFRSMQkJMHgwMgpAQCAtNzgsNiArNzksOCBAQAogCiAjZGVmaW5lIFgxMjA1X0hSX01JTAkJMHg4MAkvKiBTZXQgaW4gY2NyLmhvdXIgZm9yIDI0IGhyIG1vZGUgKi8KIAorI2RlZmluZSBYMTIwNV9JTlRfQUwwRQkJMHgyMAkvKiBBbGFybSAwIGVuYWJsZSAqLworCiBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgeDEyMDVfZHJpdmVyOwogCiAvKgpAQCAtODksOCArOTIsOCBAQAogCQkJCXVuc2lnbmVkIGNoYXIgcmVnX2Jhc2UpCiB7CiAJdW5zaWduZWQgY2hhciBkdF9hZGRyWzJdID0geyAwLCByZWdfYmFzZSB9OwotCiAJdW5zaWduZWQgY2hhciBidWZbOF07CisJaW50IGk7CiAKIAlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CiAJCXsgY2xpZW50LT5hZGRyLCAwLCAyLCBkdF9hZGRyIH0sCS8qIHNldHVwIHJlYWQgcHRyICovCkBAIC05OCw3ICsxMDEsNyBAQAogCX07CiAKIAkvKiByZWFkIGRhdGUgcmVnaXN0ZXJzICovCi0JaWYgKChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikpICE9IDIpIHsKKwlpZiAoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpICE9IDIpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC0xMTAsNiArMTEzLDExIEBACiAJCWJ1ZlswXSwgYnVmWzFdLCBidWZbMl0sIGJ1ZlszXSwKIAkJYnVmWzRdLCBidWZbNV0sIGJ1Zls2XSwgYnVmWzddKTsKIAorCS8qIE1hc2sgb3V0IHRoZSBlbmFibGUgYml0cyBpZiB0aGVzZSBhcmUgYWxhcm0gcmVnaXN0ZXJzICovCisJaWYgKHJlZ19iYXNlIDwgWDEyMDVfQ0NSX0JBU0UpCisJCWZvciAoaSA9IDA7IGkgPD0gNDsgaSsrKQorCQkJYnVmW2ldICY9IDB4N0Y7CisKIAl0bS0+dG1fc2VjID0gQkNEMkJJTihidWZbQ0NSX1NFQ10pOwogCXRtLT50bV9taW4gPSBCQ0QyQklOKGJ1ZltDQ1JfTUlOXSk7CiAJdG0tPnRtX2hvdXIgPSBCQ0QyQklOKGJ1ZltDQ1JfSE9VUl0gJiAweDNGKTsgLyogaHIgaXMgMC0yMyAqLwpAQCAtMTM4LDcgKzE0Niw3IEBACiAJfTsKIAogCS8qIHJlYWQgc3RhdHVzIHJlZ2lzdGVyICovCi0JaWYgKChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikpICE9IDIpIHsKKwlpZiAoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpICE9IDIpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC0xNDcsMTAgKzE1NSwxMSBAQAogfQogCiBzdGF0aWMgaW50IHgxMjA1X3NldF9kYXRldGltZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtLAotCQkJCWludCBkYXRldG9vLCB1OCByZWdfYmFzZSkKKwkJCWludCBkYXRldG9vLCB1OCByZWdfYmFzZSwgdW5zaWduZWQgY2hhciBhbG1fZW5hYmxlKQogewotCWludCBpLCB4ZmVyOworCWludCBpLCB4ZmVyLCBuYnl0ZXM7CiAJdW5zaWduZWQgY2hhciBidWZbOF07CisJdW5zaWduZWQgY2hhciByZGF0YVsxMF0gPSB7IDAsIHJlZ19iYXNlIH07CiAKIAlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB3ZWxbM10gPSB7IDAsIFgxMjA1X1JFR19TUiwKIAkJCQkJCVgxMjA1X1NSX1dFTCB9OwpAQCAtMTg5LDYgKzE5OCwxMSBAQAogCQlidWZbQ0NSX1kyS10gPSBCSU4yQkNEKHRtLT50bV95ZWFyIC8gMTAwKTsKIAl9CiAKKwkvKiBJZiB3cml0aW5nIGFsYXJtIHJlZ2lzdGVycywgc2V0IGNvbXBhcmUgYml0cyBvbiByZWdpc3RlcnMgMC00ICovCisJaWYgKHJlZ19iYXNlIDwgWDEyMDVfQ0NSX0JBU0UpCisJCWZvciAoaSA9IDA7IGkgPD0gNDsgaSsrKQorCQkJYnVmW2ldIHw9IDB4ODA7CisKIAkvKiB0aGlzIHNlcXVlbmNlIGlzIHJlcXVpcmVkIHRvIHVubG9jayB0aGUgY2hpcCAqLwogCWlmICgoeGZlciA9IGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIHdlbCwgMykpICE9IDMpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogd2VsIC0gJWRcbiIsIF9fZnVuY19fLCB4ZmVyKTsKQEAgLTIwMCwxOSArMjE0LDU3IEBACiAJCXJldHVybiAtRUlPOwogCX0KIAotCS8qIHdyaXRlIHJlZ2lzdGVyJ3MgZGF0YSAqLwotCWZvciAoaSA9IDA7IGkgPCAoZGF0ZXRvbyA/IDggOiAzKTsgaSsrKSB7Ci0JCXVuc2lnbmVkIGNoYXIgcmRhdGFbM10gPSB7IDAsIHJlZ19iYXNlICsgaSwgYnVmW2ldIH07CiAKLQkJeGZlciA9IGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIHJkYXRhLCAzKTsKKwkvKiB3cml0ZSByZWdpc3RlcidzIGRhdGEgKi8KKwlpZiAoZGF0ZXRvbykKKwkJbmJ5dGVzID0gODsKKwllbHNlCisJCW5ieXRlcyA9IDM7CisJZm9yIChpID0gMDsgaSA8IG5ieXRlczsgaSsrKQorCQlyZGF0YVsyK2ldID0gYnVmW2ldOworCisJeGZlciA9IGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIHJkYXRhLCBuYnl0ZXMrMik7CisJaWYgKHhmZXIgIT0gbmJ5dGVzKzIpIHsKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsCisJCQkiJXM6IHJlc3VsdD0lZCBhZGRyPSUwMngsIGRhdGE9JTAyeFxuIiwKKwkJCV9fZnVuY19fLAorCQkJIHhmZXIsIHJkYXRhWzFdLCByZGF0YVsyXSk7CisJCXJldHVybiAtRUlPOworCX0KKworCS8qIElmIHdlIHdyb3RlIHRvIHRoZSBub252b2xhdGlsZSByZWdpb24sIHdhaXQgMTBtc2VjIGZvciB3cml0ZSBjeWNsZSovCisJaWYgKHJlZ19iYXNlIDwgWDEyMDVfQ0NSX0JBU0UpIHsKKwkJdW5zaWduZWQgY2hhciBhbDBlWzNdID0geyAwLCBYMTIwNV9SRUdfSU5ULCAwIH07CisKKwkJbXNsZWVwKDEwKTsKKworCQkvKiAuLi5hbmQgc2V0IG9yIGNsZWFyIHRoZSBBTDBFIGJpdCBpbiB0aGUgSU5UIHJlZ2lzdGVyICovCisKKwkJLyogTmVlZCB0byBzZXQgUldFTCBhZ2FpbiBhcyB0aGUgd3JpdGUgaGFzIGNsZWFyZWQgaXQgKi8KKwkJeGZlciA9IGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIHJ3ZWwsIDMpOwogCQlpZiAoeGZlciAhPSAzKSB7CiAJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKLQkJCQkiJXM6IHhmZXI9JWQgYWRkcj0lMDJ4LCBkYXRhPSUwMnhcbiIsCisJCQkJIiVzOiBhbG9lIHJ3ZWwgLSAlZFxuIiwKIAkJCQlfX2Z1bmNfXywKLQkJCQkgeGZlciwgcmRhdGFbMV0sIHJkYXRhWzJdKTsKKwkJCQl4ZmVyKTsKIAkJCXJldHVybiAtRUlPOwogCQl9Ci0JfTsKKworCQlpZiAoYWxtX2VuYWJsZSkKKwkJCWFsMGVbMl0gPSBYMTIwNV9JTlRfQUwwRTsKKworCQl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgYWwwZSwgMyk7CisJCWlmICh4ZmVyICE9IDMpIHsKKwkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAorCQkJCSIlczogYWwwZSAtICVkXG4iLAorCQkJCV9fZnVuY19fLAorCQkJCXhmZXIpOworCQkJcmV0dXJuIC1FSU87CisJCX0KKworCQkvKiBhbmQgd2FpdCAxMG1zZWMgYWdhaW4gZm9yIHRoaXMgd3JpdGUgdG8gY29tcGxldGUgKi8KKwkJbXNsZWVwKDEwKTsKKwl9CiAKIAkvKiBkaXNhYmxlIGZ1cnRoZXIgd3JpdGVzICovCiAJaWYgKCh4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgZGlzd2UsIDMpKSAhPSAzKSB7CkBAIC0yMzAsOSArMjgyLDkgQEAKIAogCXRtLnRtX2hvdXIgPSB0bS50bV9taW4gPSB0bS50bV9zZWMgPSAwOwogCi0JaWYgKChlcnIgPSB4MTIwNV9zZXRfZGF0ZXRpbWUoY2xpZW50LCAmdG0sIDAsIFgxMjA1X0NDUl9CQVNFKSkgPCAwKQotCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKLQkJCSJ1bmFibGUgdG8gcmVzdGFydCB0aGUgb3NjaWxsYXRvclxuIik7CisJZXJyID0geDEyMDVfc2V0X2RhdGV0aW1lKGNsaWVudCwgJnRtLCAwLCBYMTIwNV9DQ1JfQkFTRSwgMCk7CisJaWYgKGVyciA8IDApCisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAidW5hYmxlIHRvIHJlc3RhcnQgdGhlIG9zY2lsbGF0b3JcbiIpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTI0OCw3ICszMDAsNyBAQAogCX07CiAKIAkvKiByZWFkIGR0ciByZWdpc3RlciAqLwotCWlmICgoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpKSAhPSAyKSB7CisJaWYgKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSAhPSAyKSB7CiAJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiJXM6IHJlYWQgZXJyb3JcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FSU87CiAJfQpAQCAtMjgwLDcgKzMzMiw3IEBACiAJfTsKIAogCS8qIHJlYWQgYXRyIHJlZ2lzdGVyICovCi0JaWYgKChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikpICE9IDIpIHsKKwlpZiAoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpICE9IDIpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC00MDMsMTQgKzQ1NSwzMyBAQAogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19yZWFkX2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCiB7Ci0JcmV0dXJuIHgxMjA1X2dldF9kYXRldGltZSh0b19pMmNfY2xpZW50KGRldiksCi0JCSZhbHJtLT50aW1lLCBYMTIwNV9BTE0wX0JBU0UpOworCWludCBlcnI7CisJdW5zaWduZWQgY2hhciBpbnRyZWcsIHN0YXR1czsKKwlzdGF0aWMgdW5zaWduZWQgY2hhciBpbnRfYWRkclsyXSA9IHsgMCwgWDEyMDVfUkVHX0lOVCB9OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7CisJc3RydWN0IGkyY19tc2cgbXNnc1tdID0geworCQl7IGNsaWVudC0+YWRkciwgMCwgMiwgaW50X2FkZHIgfSwgICAgICAgIC8qIHNldHVwIHJlYWQgcHRyICovCisJCXsgY2xpZW50LT5hZGRyLCBJMkNfTV9SRCwgMSwgJmludHJlZyB9LCAgLyogcmVhZCBJTlQgcmVnaXN0ZXIgKi8KKwl9OworCisJLyogcmVhZCBpbnRlcnJ1cHQgcmVnaXN0ZXIgYW5kIHN0YXR1cyByZWdpc3RlciAqLworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlPOworCX0KKwllcnIgPSB4MTIwNV9nZXRfc3RhdHVzKGNsaWVudCwgJnN0YXR1cyk7CisJaWYgKGVyciA9PSAwKSB7CisJCWFscm0tPnBlbmRpbmcgPSAoc3RhdHVzICYgWDEyMDVfU1JfQUwwKSA/IDEgOiAwOworCQlhbHJtLT5lbmFibGVkID0gKGludHJlZyAmIFgxMjA1X0lOVF9BTDBFKSA/IDEgOiAwOworCQllcnIgPSB4MTIwNV9nZXRfZGF0ZXRpbWUoY2xpZW50LCAmYWxybS0+dGltZSwgWDEyMDVfQUxNMF9CQVNFKTsKKwl9CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCB4MTIwNV9ydGNfc2V0X2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCiB7CiAJcmV0dXJuIHgxMjA1X3NldF9kYXRldGltZSh0b19pMmNfY2xpZW50KGRldiksCi0JCSZhbHJtLT50aW1lLCAxLCBYMTIwNV9BTE0wX0JBU0UpOworCQkmYWxybS0+dGltZSwgMSwgWDEyMDVfQUxNMF9CQVNFLCBhbHJtLT5lbmFibGVkKTsKIH0KIAogc3RhdGljIGludCB4MTIwNV9ydGNfcmVhZF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKQEAgLTQyMiw3ICs0OTMsNyBAQAogc3RhdGljIGludCB4MTIwNV9ydGNfc2V0X3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQogewogCXJldHVybiB4MTIwNV9zZXRfZGF0ZXRpbWUodG9faTJjX2NsaWVudChkZXYpLAotCQl0bSwgMSwgWDEyMDVfQ0NSX0JBU0UpOworCQl0bSwgMSwgWDEyMDVfQ0NSX0JBU0UsIDApOwogfQogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19wcm9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNlcV9maWxlICpzZXEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZC5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2QuYwppbmRleCAxYTQwMjU2Li4xYjZjNTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZC5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkLmMKQEAgLTk5NSwxNCArOTk1LDE0IEBACiAJbm93ID0gZ2V0X2Nsb2NrKCk7CiAKIAlEQkZfRVZFTlQoREJGX0VSUiwgIkludGVycnVwdDogYnVzX2lkICVzIENTL0RTICUwNHggaXAgJTA4eCIsCi0JCSAgY2Rldi0+ZGV2LmJ1c19pZCwgKChpcmItPnNjc3cuY3N0YXQ8PDgpfGlyYi0+c2Nzdy5kc3RhdCksCi0JCSAgKHVuc2lnbmVkIGludCkgaW50cGFybSk7CisJCSAgY2Rldi0+ZGV2LmJ1c19pZCwgKChpcmItPnNjc3cuY21kLmNzdGF0IDw8IDgpIHwKKwkJICBpcmItPnNjc3cuY21kLmRzdGF0KSwgKHVuc2lnbmVkIGludCkgaW50cGFybSk7CiAKIAkvKiBjaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0cyAqLwogCWNxciA9IChzdHJ1Y3QgZGFzZF9jY3dfcmVxICopIGludHBhcm07Ci0JaWYgKCFjcXIgfHwgKChpcmItPnNjc3cuY2MgPT0gMSkgJiYKLQkJICAgICAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYKLQkJICAgICAoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpICkgeworCWlmICghY3FyIHx8ICgoaXJiLT5zY3N3LmNtZC5jYyA9PSAxKSAmJgorCQkgICAgIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYKKwkJICAgICAoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkgewogCQlpZiAoY3FyICYmIGNxci0+c3RhdHVzID09IERBU0RfQ1FSX0lOX0lPKQogCQkJY3FyLT5zdGF0dXMgPSBEQVNEX0NRUl9RVUVVRUQ7CiAJCWRldmljZSA9IGRhc2RfZGV2aWNlX2Zyb21fY2Rldl9sb2NrZWQoY2Rldik7CkBAIC0xMDI1LDcgKzEwMjUsNyBAQAogCiAJLyogQ2hlY2sgZm9yIGNsZWFyIHBlbmRpbmcgKi8KIAlpZiAoY3FyLT5zdGF0dXMgPT0gREFTRF9DUVJfQ0xFQVJfUEVORElORyAmJgotCSAgICBpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CisJICAgIGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CiAJCWNxci0+c3RhdHVzID0gREFTRF9DUVJfQ0xFQVJFRDsKIAkJZGFzZF9kZXZpY2VfY2xlYXJfdGltZXIoZGV2aWNlKTsKIAkJd2FrZV91cCgmZGFzZF9mbHVzaF93cSk7CkBAIC0xMDQxLDExICsxMDQxLDExIEBACiAJCXJldHVybjsKIAl9CiAJREJGX0RFVl9FVkVOVChEQkZfREVCVUcsIGRldmljZSwgIkludDogQ1MvRFMgMHglMDR4IGZvciBjcXIgJXAiLAotCQkgICAgICAoKGlyYi0+c2Nzdy5jc3RhdCA8PCA4KSB8IGlyYi0+c2Nzdy5kc3RhdCksIGNxcik7CisJCSAgICAgICgoaXJiLT5zY3N3LmNtZC5jc3RhdCA8PCA4KSB8IGlyYi0+c2Nzdy5jbWQuZHN0YXQpLCBjcXIpOwogCW5leHQgPSBOVUxMOwogCWV4cGlyZXMgPSAwOwotCWlmIChpcmItPnNjc3cuZHN0YXQgPT0gKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSAmJgotCSAgICBpcmItPnNjc3cuY3N0YXQgPT0gMCAmJiAhaXJiLT5lc3cuZXN3MC5lcncuY29ucykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCkgJiYKKwkgICAgaXJiLT5zY3N3LmNtZC5jc3RhdCA9PSAwICYmICFpcmItPmVzdy5lc3cwLmVydy5jb25zKSB7CiAJCS8qIHJlcXVlc3Qgd2FzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgKi8KIAkJY3FyLT5zdGF0dXMgPSBEQVNEX0NRUl9TVUNDRVNTOwogCQljcXItPnN0b3BjbGsgPSBub3c7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF8zOTkwX2VycC5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfMzk5MF9lcnAuYwppbmRleCBlNjcwMGRmLi41YzZlNmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF8zOTkwX2VycC5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkXzM5OTBfZXJwLmMKQEAgLTE1NzIsNyArMTU3Miw3IEBACiAKIAkvKiBkZXRlcm1pbmUgdGhlIGFkZHJlc3Mgb2YgdGhlIENDVyB0byBiZSByZXN0YXJ0ZWQgKi8KIAkvKiBJbXByZWNpc2UgZW5kaW5nIGlzIG5vdCBzZXQgLT4gYWRkciBmcm9tIElSQi1TQ1NXICovCi0JY3BhID0gZGVmYXVsdF9lcnAtPnJlZmVycy0+aXJiLnNjc3cuY3BhOworCWNwYSA9IGRlZmF1bHRfZXJwLT5yZWZlcnMtPmlyYi5zY3N3LmNtZC5jcGE7CiAKIAlpZiAoY3BhID09IDApIHsKIApAQCAtMTcyNSw3ICsxNzI1LDcgQEAKIAogCS8qIGRldGVybWluZSB0aGUgYWRkcmVzcyBvZiB0aGUgQ0NXIHRvIGJlIHJlc3RhcnRlZCAqLwogCS8qIEltcHJlY2lzZSBlbmRpbmcgaXMgbm90IHNldCAtPiBhZGRyIGZyb20gSVJCLVNDU1cgKi8KLQljcGEgPSBwcmV2aW91c19lcnAtPmlyYi5zY3N3LmNwYTsKKwljcGEgPSBwcmV2aW91c19lcnAtPmlyYi5zY3N3LmNtZC5jcGE7CiAKIAlpZiAoY3BhID09IDApIHsKIApAQCAtMjE3MSw3ICsyMTcxLDcgQEAKIHsKIAlzdHJ1Y3QgZGFzZF9kZXZpY2UgKmRldmljZSA9IGVycC0+c3RhcnRkZXY7CiAKLQlpZiAoZXJwLT5yZWZlcnMtPmlyYi5zY3N3LmNzdGF0ICYgKFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLCisJaWYgKGVycC0+cmVmZXJzLT5pcmIuc2Nzdy5jbWQuY3N0YXQgJiAoU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsKIAkJCQkJICAgfCBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKSkgewogCQlERVZfTUVTU0FHRShLRVJOX0RFQlVHLCBkZXZpY2UsICIlcyIsCiAJCQkgICAgImNoYW5uZWwgb3IgaW50ZXJmYWNlIGNvbnRyb2wgY2hlY2siKTsKQEAgLTIzNTIsOSArMjM1Miw5IEBACiAKIAlpZiAoKGNxcjEtPmlyYi5lc3cuZXN3MC5lcncuY29ucyA9PSAwKSAmJgogCSAgICAoY3FyMi0+aXJiLmVzdy5lc3cwLmVydy5jb25zID09IDApKQl7Ci0JCWlmICgoY3FyMS0+aXJiLnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsgfAorCQlpZiAoKGNxcjEtPmlyYi5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCQkJCSAgICAgU0NITl9TVEFUX0NITl9DVFJMX0NISykpID09Ci0JCSAgICAoY3FyMi0+aXJiLnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsgfAorCQkgICAgKGNxcjItPmlyYi5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCQkJCSAgICAgU0NITl9TVEFUX0NITl9DVFJMX0NISykpKQogCQkJcmV0dXJuIDE7IC8qIG1hdGNoIHdpdGggaWZjYyovCiAJfQpAQCAtMjYyMiw4ICsyNjIyLDkgQEAKIAl9CiAKIAkvKiBkb3VibGUtY2hlY2sgaWYgY3VycmVudCBlcnAvY3FyIHdhcyBzdWNjZXNzZnVsbCAqLwotCWlmICgoY3FyLT5pcmIuc2Nzdy5jc3RhdCA9PSAweDAwKSAmJgotCSAgICAoY3FyLT5pcmIuc2Nzdy5kc3RhdCA9PSAoREVWX1NUQVRfQ0hOX0VORHxERVZfU1RBVF9ERVZfRU5EKSkpIHsKKwlpZiAoKGNxci0+aXJiLnNjc3cuY21kLmNzdGF0ID09IDB4MDApICYmCisJICAgIChjcXItPmlyYi5zY3N3LmNtZC5kc3RhdCA9PQorCSAgICAgKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSkpIHsKIAogCQlERVZfTUVTU0FHRShLRVJOX0RFQlVHLCBkZXZpY2UsCiAJCQkgICAgIkVSUCBjYWxsZWQgZm9yIHN1Y2Nlc3NmdWwgcmVxdWVzdCAlcCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vja2QuYyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vja2QuYwppbmRleCBhMGVkYWUwLi5lMGI3NzIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9lY2tkLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWNrZC5jCkBAIC0xNDA0LDEzICsxNDA0LDE0IEBACiAKIAkvKiBmaXJzdCBvZiBhbGwgY2hlY2sgZm9yIHN0YXRlIGNoYW5nZSBwZW5kaW5nIGludGVycnVwdCAqLwogCW1hc2sgPSBERVZfU1RBVF9BVFRFTlRJT04gfCBERVZfU1RBVF9ERVZfRU5EIHwgREVWX1NUQVRfVU5JVF9FWENFUDsKLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIG1hc2spID09IG1hc2spIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBtYXNrKSA9PSBtYXNrKSB7CiAJCWRhc2RfZ2VuZXJpY19oYW5kbGVfc3RhdGVfY2hhbmdlKGRldmljZSk7CiAJCXJldHVybjsKIAl9CiAKIAkvKiBzdW1tYXJ5IHVuaXQgY2hlY2sgKi8KLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmIGlyYi0+ZWN3WzddID09IDB4MEQpIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgorCSAgICAoaXJiLT5lY3dbN10gPT0gMHgwRCkpIHsKIAkJZGFzZF9hbGlhc19oYW5kbGVfc3VtbWFyeV91bml0X2NoZWNrKGRldmljZSwgaXJiKTsKIAkJcmV0dXJuOwogCX0KQEAgLTIwNjgsMTEgKzIwNjksMTEgQEAKIAkJICAgICAgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkKTsKIAlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCSAgICAgICAiIGluIHJlcTogJXAgQ1M6IDB4JTAyWCBEUzogMHglMDJYXG4iLCByZXEsCi0JCSAgICAgICBpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5kc3RhdCk7CisJCSAgICAgICBpcmItPnNjc3cuY21kLmNzdGF0LCBpcmItPnNjc3cuY21kLmRzdGF0KTsKIAlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCSAgICAgICAiIGRldmljZSAlczogRmFpbGluZyBDQ1c6ICVwXG4iLAogCQkgICAgICAgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkLAotCQkgICAgICAgKHZvaWQgKikgKGFkZHJfdCkgaXJiLT5zY3N3LmNwYSk7CisJCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY21kLmNwYSk7CiAJaWYgKGlyYi0+ZXN3LmVzdzAuZXJ3LmNvbnMpIHsKIAkJZm9yIChzbCA9IDA7IHNsIDwgNDsgc2wrKykgewogCQkJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUgpAQCAtMjEyMiw3ICsyMTIzLDggQEAKIAkJLyogc2Nzdy0+Y2RhIGlzIGVpdGhlciB2YWxpZCBvciB6ZXJvICAqLwogCQlsZW4gPSAwOwogCQlmcm9tID0gKyt0bzsKLQkJZmFpbCA9IChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jcGE7IC8qIGZhaWxpbmcgQ0NXICovCisJCWZhaWwgPSAoc3RydWN0IGNjdzEgKikoYWRkcl90KQorCQkJCWlyYi0+c2Nzdy5jbWQuY3BhOyAvKiBmYWlsaW5nIENDVyAqLwogCQlpZiAoZnJvbSA8ICBmYWlsIC0gMikgewogCQkJZnJvbSA9IGZhaWwgLSAyOyAgICAgLyogdGhlcmUgaXMgYSBnYXAgLSBwcmludCBoZWFkZXIgKi8KIAkJCWxlbiArPSBzcHJpbnRmKHBhZ2UsIEtFUk5fRVJSIFBSSU5US19IRUFERVIgIi4uLi4uLlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9lZXIuYyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jCmluZGV4IDZlNTNhYjYuLjI5ZGE0NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgpAQCAtNTI1LDYgKzUyNiw3IEBACiAJZWVyYiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBlZXJidWZmZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWVlcmIpCiAJCXJldHVybiAtRU5PTUVNOworCWxvY2tfa2VybmVsKCk7CiAJZWVyYi0+YnVmZmVyX3BhZ2VfY291bnQgPSBlZXJfcGFnZXM7CiAJaWYgKGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50IDwgMSB8fAogCSAgICBlZXJiLT5idWZmZXJfcGFnZV9jb3VudCA+IElOVF9NQVggLyBQQUdFX1NJWkUpIHsKQEAgLTUzMiw2ICs1MzQsNyBAQAogCQlNRVNTQUdFKEtFUk5fV0FSTklORywgImNhbid0IG9wZW4gZGV2aWNlIHNpbmNlIG1vZHVsZSAiCiAJCQkicGFyYW1ldGVyIGVlcl9wYWdlcyBpcyBzbWFsbGVyIHRoZW4gMSBvciIKIAkJCSIgYmlnZ2VyIHRoZW4gJWQiLCAoaW50KShJTlRfTUFYIC8gUEFHRV9TSVpFKSk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWVlcmItPmJ1ZmZlcnNpemUgPSBlZXJiLT5idWZmZXJfcGFnZV9jb3VudCAqIFBBR0VfU0laRTsKQEAgLTUzOSwxMiArNTQyLDE0IEBACiAJCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAgICAgICAgIGlmICghZWVyYi0+YnVmZmVyKSB7CiAJCWtmcmVlKGVlcmIpOworCQl1bmxvY2tfa2VybmVsKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAJfQogCWlmIChkYXNkX2Vlcl9hbGxvY2F0ZV9idWZmZXJfcGFnZXMoZWVyYi0+YnVmZmVyLAogCQkJCQkgICBlZXJiLT5idWZmZXJfcGFnZV9jb3VudCkpIHsKIAkJa2ZyZWUoZWVyYi0+YnVmZmVyKTsKIAkJa2ZyZWUoZWVyYik7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGVlcmI7CkBAIC01NTIsNiArNTU3LDcgQEAKIAlsaXN0X2FkZCgmZWVyYi0+bGlzdCwgJmJ1ZmZlcmxpc3QpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmJ1ZmZlcmxvY2ssIGZsYWdzKTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3BlbihpbnAsZmlscCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2ZiYS5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMKaW5kZXggMTE2NjExNS4uYWVlNDY1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMKQEAgLTIyMiw3ICsyMjIsNyBAQAogCiAJLyogZmlyc3Qgb2YgYWxsIGNoZWNrIGZvciBzdGF0ZSBjaGFuZ2UgcGVuZGluZyBpbnRlcnJ1cHQgKi8KIAltYXNrID0gREVWX1NUQVRfQVRURU5USU9OIHwgREVWX1NUQVRfREVWX0VORCB8IERFVl9TVEFUX1VOSVRfRVhDRVA7Ci0JaWYgKChpcmItPnNjc3cuZHN0YXQgJiBtYXNrKSA9PSBtYXNrKSB7CisJaWYgKChpcmItPnNjc3cuY21kLmRzdGF0ICYgbWFzaykgPT0gbWFzaykgewogCQlkYXNkX2dlbmVyaWNfaGFuZGxlX3N0YXRlX2NoYW5nZShkZXZpY2UpOwogCQlyZXR1cm47CiAJfQpAQCAtNDQ5LDExICs0NDksMTEgQEAKIAkJICAgICAgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkKTsKIAlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCSAgICAgICAiIGluIHJlcTogJXAgQ1M6IDB4JTAyWCBEUzogMHglMDJYXG4iLCByZXEsCi0JCSAgICAgICBpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5kc3RhdCk7CisJCSAgICAgICBpcmItPnNjc3cuY21kLmNzdGF0LCBpcmItPnNjc3cuY21kLmRzdGF0KTsKIAlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCSAgICAgICAiIGRldmljZSAlczogRmFpbGluZyBDQ1c6ICVwXG4iLAogCQkgICAgICAgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkLAotCQkgICAgICAgKHZvaWQgKikgKGFkZHJfdCkgaXJiLT5zY3N3LmNwYSk7CisJCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY21kLmNwYSk7CiAJaWYgKGlyYi0+ZXN3LmVzdzAuZXJ3LmNvbnMpIHsKIAkJZm9yIChzbCA9IDA7IHNsIDwgNDsgc2wrKykgewogCQkJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUgpAQCAtNDk4LDExICs0OTgsMTEgQEAKIAogCS8qIHByaW50IGZhaWxpbmcgQ0NXIGFyZWEgKi8KIAlsZW4gPSAwOwotCWlmIChhY3QgPCAgKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jcGEpIC0gMikgewotCQlhY3QgPSAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNwYSkgLSAyOworCWlmIChhY3QgPCAgKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKSAtIDIpIHsKKwkJYWN0ID0gKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKSAtIDI7CiAJCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIgIi4uLi4uLlxuIik7CiAJfQotCWVuZCA9IG1pbigoc3RydWN0IGNjdzEgKikoYWRkcl90KSBpcmItPnNjc3cuY3BhICsgMiwgbGFzdCk7CisJZW5kID0gbWluKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhICsgMiwgbGFzdCk7CiAJd2hpbGUgKGFjdCA8PSBlbmQpIHsKIAkJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUgogCQkJICAgICAgICIgQ0NXICVwOiAlMDhYICUwOFggREFUOiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGNzc2Jsay5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rjc3NibGsuYwppbmRleCBiYjUyZDJmLi4wMWZjZGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGNzc2Jsay5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMKQEAgLTE2NywxMCArMTY3LDggQEAKIAlzdHJ1Y3QgZGNzc2Jsa19kZXZfaW5mbyAqZGV2X2luZm87CiAJaW50IHJjOwogCi0JaWYgKChjb3VudCA+IDEpICYmIChpbmJ1ZlsxXSAhPSAnXG4nKSAmJiAoaW5idWZbMV0gIT0gJ1wwJykpIHsKLQkJUFJJTlRfV0FSTigiSW52YWxpZCB2YWx1ZSwgbXVzdCBiZSAwIG9yIDFcbiIpOworCWlmICgoY291bnQgPiAxKSAmJiAoaW5idWZbMV0gIT0gJ1xuJykgJiYgKGluYnVmWzFdICE9ICdcMCcpKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJZG93bl93cml0ZSgmZGNzc2Jsa19kZXZpY2VzX3NlbSk7CiAJZGV2X2luZm8gPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgZGNzc2Jsa19kZXZfaW5mbywgZGV2KTsKIAlpZiAoYXRvbWljX3JlYWQoJmRldl9pbmZvLT51c2VfY291bnQpKSB7CkBAIC0yMTUsNyArMjEzLDYgQEAKIAkJCXNldF9kaXNrX3JvKGRldl9pbmZvLT5nZCwgMCk7CiAJCX0KIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIHZhbHVlLCBtdXN0IGJlIDAgb3IgMVxuIik7CiAJCXJjID0gLUVJTlZBTDsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMjU4LDEwICsyNTUsOCBAQAogewogCXN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvICpkZXZfaW5mbzsKIAotCWlmICgoY291bnQgPiAxKSAmJiAoaW5idWZbMV0gIT0gJ1xuJykgJiYgKGluYnVmWzFdICE9ICdcMCcpKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgdmFsdWUsIG11c3QgYmUgMCBvciAxXG4iKTsKKwlpZiAoKGNvdW50ID4gMSkgJiYgKGluYnVmWzFdICE9ICdcbicpICYmIChpbmJ1ZlsxXSAhPSAnXDAnKSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCWRldl9pbmZvID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGRjc3NibGtfZGV2X2luZm8sIGRldik7CiAKIAlkb3duX3dyaXRlKCZkY3NzYmxrX2RldmljZXNfc2VtKTsKQEAgLTI4OSw3ICsyODQsNiBAQAogCQl9CiAJfSBlbHNlIHsKIAkJdXBfd3JpdGUoJmRjc3NibGtfZGV2aWNlc19zZW0pOwotCQlQUklOVF9XQVJOKCJJbnZhbGlkIHZhbHVlLCBtdXN0IGJlIDAgb3IgMVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAl1cF93cml0ZSgmZGNzc2Jsa19kZXZpY2VzX3NlbSk7CkBAIC00NDEsNyArNDM1LDYgQEAKIAlnb3RvIG91dDsKIAogdW5yZWdpc3Rlcl9kZXY6Ci0JUFJJTlRfRVJSKCJkZXZpY2VfY3JlYXRlX2ZpbGUoKSBmYWlsZWQhXG4iKTsKIAlsaXN0X2RlbCgmZGV2X2luZm8tPmxoKTsKIAlibGtfY2xlYW51cF9xdWV1ZShkZXZfaW5mby0+ZGNzc2Jsa19xdWV1ZSk7CiAJZGV2X2luZm8tPmdkLT5xdWV1ZSA9IE5VTEw7CkBAIC03MDIsMTAgKzY5NSw4IEBACiBzdGF0aWMgdm9pZCBfX2V4aXQKIGRjc3NibGtfZXhpdCh2b2lkKQogewotCVBSSU5UX0RFQlVHKCJEQ1NTQkxPQ0sgRVhJVC4uLlxuIik7CiAJczM5MF9yb290X2Rldl91bnJlZ2lzdGVyKGRjc3NibGtfcm9vdF9kZXYpOwogCXVucmVnaXN0ZXJfYmxrZGV2KGRjc3NibGtfbWFqb3IsIERDU1NCTEtfTkFNRSk7Ci0JUFJJTlRfREVCVUcoIi4uLmZpbmlzaGVkIVxuIik7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0CkBAIC03MTMsMjcgKzcwNCwyMSBAQAogewogCWludCByYzsKIAotCVBSSU5UX0RFQlVHKCJEQ1NTQkxPQ0sgSU5JVC4uLlxuIik7CiAJZGNzc2Jsa19yb290X2RldiA9IHMzOTBfcm9vdF9kZXZfcmVnaXN0ZXIoImRjc3NibGsiKTsKLQlpZiAoSVNfRVJSKGRjc3NibGtfcm9vdF9kZXYpKSB7Ci0JCVBSSU5UX0VSUigiZGV2aWNlX3JlZ2lzdGVyKCkgZmFpbGVkIVxuIik7CisJaWYgKElTX0VSUihkY3NzYmxrX3Jvb3RfZGV2KSkKIAkJcmV0dXJuIFBUUl9FUlIoZGNzc2Jsa19yb290X2Rldik7Ci0JfQogCXJjID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRjc3NibGtfcm9vdF9kZXYsICZkZXZfYXR0cl9hZGQpOwogCWlmIChyYykgewotCQlQUklOVF9FUlIoImRldmljZV9jcmVhdGVfZmlsZShhZGQpIGZhaWxlZCFcbiIpOwogCQlzMzkwX3Jvb3RfZGV2X3VucmVnaXN0ZXIoZGNzc2Jsa19yb290X2Rldik7CiAJCXJldHVybiByYzsKIAl9CiAJcmMgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGNzc2Jsa19yb290X2RldiwgJmRldl9hdHRyX3JlbW92ZSk7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX0VSUigiZGV2aWNlX2NyZWF0ZV9maWxlKHJlbW92ZSkgZmFpbGVkIVxuIik7CiAJCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihkY3NzYmxrX3Jvb3RfZGV2KTsKIAkJcmV0dXJuIHJjOwogCX0KIAlyYyA9IHJlZ2lzdGVyX2Jsa2RldigwLCBEQ1NTQkxLX05BTUUpOwogCWlmIChyYyA8IDApIHsKLQkJUFJJTlRfRVJSKCJDYW4ndCBnZXQgZHluYW1pYyBtYWpvciFcbiIpOwogCQlzMzkwX3Jvb3RfZGV2X3VucmVnaXN0ZXIoZGNzc2Jsa19yb290X2Rldik7CiAJCXJldHVybiByYzsKIAl9CkBAIC03NDIsNyArNzI3LDYgQEAKIAogCWRjc3NibGtfY2hlY2tfcGFyYW1zKCk7CiAKLQlQUklOVF9ERUJVRygiLi4uZmluaXNoZWQhXG4iKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Jsb2NrL3hwcmFtLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2sveHByYW0uYwppbmRleCBmMjMxYmMyLi5kZDliOTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2sveHByYW0uYworKysgYi9kcml2ZXJzL3MzOTAvYmxvY2sveHByYW0uYwpAQCAtMTAwLDE1ICsxMDAsMTAgQEAKIAkJOiAiK2QiIChjYykgOiAiYSIgKF9fcGEocGFnZV9hZGRyKSksICJkIiAoeHBhZ2VfaW5kZXgpIDogImNjIik7CiAJaWYgKGNjID09IDMpCiAJCXJldHVybiAtRU5YSU87Ci0JaWYgKGNjID09IDIpIHsKLQkJUFJJTlRfRVJSKCJleHBhbmRlZCBzdG9yYWdlIGxvc3QhXG4iKTsKKwlpZiAoY2MgPT0gMikKIAkJcmV0dXJuIC1FTlhJTzsKLQl9Ci0JaWYgKGNjID09IDEpIHsKLQkJUFJJTlRfRVJSKCJwYWdlIGluIGZhaWxlZCBmb3IgcGFnZSBpbmRleCAldS5cbiIsCi0JCQkgIHhwYWdlX2luZGV4KTsKKwlpZiAoY2MgPT0gMSkKIAkJcmV0dXJuIC1FSU87Ci0JfQogCXJldHVybiAwOwogfQogCkBAIC0xMzUsMTUgKzEzMCwxMCBAQAogCQk6ICIrZCIgKGNjKSA6ICJhIiAoX19wYShwYWdlX2FkZHIpKSwgImQiICh4cGFnZV9pbmRleCkgOiAiY2MiKTsKIAlpZiAoY2MgPT0gMykKIAkJcmV0dXJuIC1FTlhJTzsKLQlpZiAoY2MgPT0gMikgewotCQlQUklOVF9FUlIoImV4cGFuZGVkIHN0b3JhZ2UgbG9zdCFcbiIpOworCWlmIChjYyA9PSAyKQogCQlyZXR1cm4gLUVOWElPOwotCX0KLQlpZiAoY2MgPT0gMSkgewotCQlQUklOVF9FUlIoInBhZ2Ugb3V0IGZhaWxlZCBmb3IgcGFnZSBpbmRleCAldS5cbiIsCi0JCQkgIHhwYWdlX2luZGV4KTsKKwlpZiAoY2MgPT0gMSkKIAkJcmV0dXJuIC1FSU87Ci0JfQogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjE1LmMgYi9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjE1LmMKaW5kZXggM2U1NjUzYy4uZDNlYzliNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvY29uMzIxNS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYwpAQCAtOTMsOSArOTMsNiBAQAogCXN0cnVjdCByYXczMjE1X3JlcSAqcXVldWVkX3dyaXRlOy8qIHBvaW50ZXIgdG8gcXVldWVkIHdyaXRlIHJlcXVlc3RzICovCiAJd2FpdF9xdWV1ZV9oZWFkX3QgZW1wdHlfd2FpdDsgLyogd2FpdCBxdWV1ZSBmb3IgZmx1c2hpbmcgKi8KIAlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsgICAgICAvKiB0aW1lciBmb3IgZGVsYXllZCBvdXRwdXQgKi8KLQljaGFyICptZXNzYWdlOwkJICAgICAgLyogcGVuZGluZyBtZXNzYWdlIGZyb20gcmF3MzIxNV9pcnEgKi8KLQlpbnQgbXNnX2RzdGF0OwkJICAgICAgLyogZHN0YXQgZm9yIHBlbmRpbmcgbWVzc2FnZSAqLwotCWludCBtc2dfY3N0YXQ7CQkgICAgICAvKiBjc3RhdCBmb3IgcGVuZGluZyBtZXNzYWdlICovCiAJaW50IGxpbmVfcG9zOwkJICAgICAgLyogcG9zaXRpb24gb24gdGhlIGxpbmUgKGZvciB0YWJzKSAqLwogCWNoYXIgdWJ1ZmZlcls4MF07CSAgICAgIC8qIGNvcHlfZnJvbV91c2VyIGJ1ZmZlciAqLwogfTsKQEAgLTM1OSwxMSArMzU2LDYgQEAKIAlyYXczMjE1X21rX3dyaXRlX3JlcShyYXcpOwogCXJhdzMyMTVfdHJ5X2lvKHJhdyk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2socmF3LT5jZGV2KSwgZmxhZ3MpOwotCS8qIENoZWNrIGZvciBwZW5kaW5nIG1lc3NhZ2UgZnJvbSByYXczMjE1X2lycSAqLwotCWlmIChyYXctPm1lc3NhZ2UgIT0gTlVMTCkgewotCQlwcmludGsocmF3LT5tZXNzYWdlLCByYXctPm1zZ19kc3RhdCwgcmF3LT5tc2dfY3N0YXQpOwotCQlyYXctPm1lc3NhZ2UgPSBOVUxMOwotCX0KIAl0dHkgPSByYXctPnR0eTsKIAlpZiAodHR5ICE9IE5VTEwgJiYKIAkgICAgUkFXMzIxNV9CVUZGRVJfU0laRSAtIHJhdy0+Y291bnQgPj0gUkFXMzIxNV9NSU5fU1BBQ0UpIHsKQEAgLTM4MSwyMCArMzczLDE0IEBACiAJc3RydWN0IHJhdzMyMTVfcmVxICpyZXE7CiAJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKIAlpbnQgY3N0YXQsIGRzdGF0OwotCWludCBjb3VudCwgc2xlbjsKKwlpbnQgY291bnQ7CiAKIAlyYXcgPSBjZGV2LT5kZXYuZHJpdmVyX2RhdGE7CiAJcmVxID0gKHN0cnVjdCByYXczMjE1X3JlcSAqKSBpbnRwYXJtOwotCWNzdGF0ID0gaXJiLT5zY3N3LmNzdGF0OwotCWRzdGF0ID0gaXJiLT5zY3N3LmRzdGF0OwotCWlmIChjc3RhdCAhPSAwKSB7Ci0JCXJhdy0+bWVzc2FnZSA9IEtFUk5fV0FSTklORwotCQkJIkdvdCBub256ZXJvIGNoYW5uZWwgc3RhdHVzIGluIHJhdzMyMTVfaXJxICIKLQkJCSIoZGV2IHN0cyAweCUyeCwgc2NoIHN0cyAweCUyeCkiOwotCQlyYXctPm1zZ19kc3RhdCA9IGRzdGF0OwotCQlyYXctPm1zZ19jc3RhdCA9IGNzdGF0OworCWNzdGF0ID0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKKwlkc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CisJaWYgKGNzdGF0ICE9IDApCiAJCXRhc2tsZXRfc2NoZWR1bGUoJnJhdy0+dGFza2xldCk7Ci0JfQogCWlmIChkc3RhdCAmIDB4MDEpIHsgLyogd2UgZ290IGEgdW5pdCBleGNlcHRpb24gKi8KIAkJZHN0YXQgJj0gfjB4MDE7CSAvKiB3ZSBjYW4gaWdub3JlIGl0ICovCiAJfQpAQCAtNDA0LDggKzM5MCw2IEBACiAJCQlicmVhazsKIAkJLyogQXR0ZW50aW9uIGludGVycnVwdCwgc29tZW9uZSBoaXQgdGhlIGVudGVyIGtleSAqLwogCQlyYXczMjE1X21rX3JlYWRfcmVxKHJhdyk7Ci0JCWlmIChNQUNISU5FX0lTX1AzOTApCi0JCQltZW1zZXQocmF3LT5pbmJ1ZiwgMCwgUkFXMzIxNV9JTkJVRl9TSVpFKTsKIAkJdGFza2xldF9zY2hlZHVsZSgmcmF3LT50YXNrbGV0KTsKIAkJYnJlYWs7CiAJY2FzZSAweDA4OgpAQCAtNDE1LDcgKzM5OSw3IEBACiAJCQlyZXR1cm47CQkgICAgIC8qIFRoYXQgc2hvdWxkbid0IGhhcHBlbiAuLi4gKi8KIAkJaWYgKHJlcS0+dHlwZSA9PSBSQVczMjE1X1JFQUQpIHsKIAkJCS8qIHN0b3JlIHJlc2lkdWFsIGNvdW50LCB0aGVuIHdhaXQgZm9yIGRldmljZSBlbmQgKi8KLQkJCXJlcS0+cmVzaWR1YWwgPSBpcmItPnNjc3cuY291bnQ7CisJCQlyZXEtPnJlc2lkdWFsID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAkJfQogCQlpZiAoZHN0YXQgPT0gMHgwOCkKIAkJCWJyZWFrOwpAQCAtNDI4LDExICs0MTIsNiBAQAogCiAJCQl0dHkgPSByYXctPnR0eTsKIAkJCWNvdW50ID0gMTYwIC0gcmVxLT5yZXNpZHVhbDsKLQkJCWlmIChNQUNISU5FX0lTX1AzOTApIHsKLQkJCQlzbGVuID0gc3RybmxlbihyYXctPmluYnVmLCBSQVczMjE1X0lOQlVGX1NJWkUpOwotCQkJCWlmIChjb3VudCA+IHNsZW4pCi0JCQkJCWNvdW50ID0gc2xlbjsKLQkJCX0gZWxzZQogCQkJRUJDQVNDKHJhdy0+aW5idWYsIGNvdW50KTsKIAkJCWNjaGFyID0gY3RybGNoYXJfaGFuZGxlKHJhdy0+aW5idWYsIGNvdW50LCB0dHkpOwogCQkJc3dpdGNoIChjY2hhciAmIENUUkxDSEFSX01BU0spIHsKQEAgLTQ4MSwxMSArNDYwLDYgQEAKIAkJCXJhdy0+ZmxhZ3MgJj0gflJBVzMyMTVfV09SS0lORzsKIAkJCXJhdzMyMTVfZnJlZV9yZXEocmVxKTsKIAkJfQotCQlyYXctPm1lc3NhZ2UgPSBLRVJOX1dBUk5JTkcKLQkJCSJTcHVyaW91cyBpbnRlcnJ1cHQgaW4gaW4gcmF3MzIxNV9pcnEgIgotCQkJIihkZXYgc3RzIDB4JTJ4LCBzY2ggc3RzIDB4JTJ4KSI7Ci0JCXJhdy0+bXNnX2RzdGF0ID0gZHN0YXQ7Ci0JCXJhdy0+bXNnX2NzdGF0ID0gY3N0YXQ7CiAJCXRhc2tsZXRfc2NoZWR1bGUoJnJhdy0+dGFza2xldCk7CiAJfQogCXJldHVybjsKQEAgLTg4Myw3ICs4NTcsNiBAQAogCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHJhdy0+YnVmZmVyLCBSQVczMjE1X0JVRkZFUl9TSVpFKTsKIAkJZnJlZV9ib290bWVtKCh1bnNpZ25lZCBsb25nKSByYXcsIHNpemVvZihzdHJ1Y3QgcmF3MzIxNV9pbmZvKSk7CiAJCXJhdzMyMTVbMF0gPSBOVUxMOwotCQlwcmludGsoIkNvdWxkbid0IGZpbmQgYSAzMjE1IGNvbnNvbGUgZGV2aWNlXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCXJlZ2lzdGVyX2NvbnNvbGUoJmNvbjMyMTUpOwpAQCAtMTE1Nyw3ICsxMTMwLDYgQEAKIAl0dHlfc2V0X29wZXJhdGlvbnMoZHJpdmVyLCAmdHR5MzIxNV9vcHMpOwogCXJldCA9IHR0eV9yZWdpc3Rlcl9kcml2ZXIoZHJpdmVyKTsKIAlpZiAocmV0KSB7Ci0JCXByaW50aygiQ291bGRuJ3QgcmVnaXN0ZXIgdHR5MzIxNSBkcml2ZXJcbiIpOwogCQlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCQlyZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyNzAuYyBiL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyNzAuYwppbmRleCAwYjA0MDU1Li4zYzA3OTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjcwLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzI3MC5jCkBAIC00MTEsMTUgKzQxMSwxNSBAQAogY29uMzI3MF9pcnEoc3RydWN0IGNvbjMyNzAgKmNwLCBzdHJ1Y3QgcmF3MzI3MF9yZXF1ZXN0ICpycSwgc3RydWN0IGlyYiAqaXJiKQogewogCS8qIEhhbmRsZSBBVFROLiBTY2hlZHVsZSB0YXNrbGV0IHRvIHJlYWQgYWlkLiAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pCiAJCWNvbjMyNzBfaXNzdWVfcmVhZChjcCk7CiAKIAlpZiAocnEpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKIAkJCXJxLT5yYyA9IC1FSU87CiAJCWVsc2UKIAkJCS8qIE5vcm1hbCBlbmQuIENvcHkgcmVzaWR1YWwgY291bnQuICovCi0JCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNvdW50OworCQkJcnEtPnJlc2NudCA9IGlyYi0+c2Nzdy5jbWQuY291bnQ7CiAJfQogCXJldHVybiBSQVczMjcwX0lPX0RPTkU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9mczMyNzAuYyBiL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jCmluZGV4IGVmMzZmMjEzLi5kMThlNmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9mczMyNzAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9mczMyNzAuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vY2N3ZGV2Lmg+CiAjaW5jbHVkZSA8YXNtL2Npby5oPgpAQCAtMjE2LDE3ICsyMTcsMTcgQEAKIGZzMzI3MF9pcnEoc3RydWN0IGZzMzI3MCAqZnAsIHN0cnVjdCByYXczMjcwX3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJLyogSGFuZGxlIEFUVE4uIFNldCBpbmRpY2F0aW9uIGFuZCB3YWtlIHdhaXRlcnMgZm9yIGF0dGVudGlvbi4gKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJZnAtPmF0dGVudGlvbiA9IDE7CiAJCXdha2VfdXAoJmZwLT53YWl0KTsKIAl9CiAKIAlpZiAocnEpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKIAkJCXJxLT5yYyA9IC1FSU87CiAJCWVsc2UKIAkJCS8qIE5vcm1hbCBlbmQuIENvcHkgcmVzaWR1YWwgY291bnQuICovCi0JCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNvdW50OworCQkJcnEtPnJlc2NudCA9IGlyYi0+c2Nzdy5jbWQuY291bnQ7CiAJfQogCXJldHVybiBSQVczMjcwX0lPX0RPTkU7CiB9CkBAIC00MjEsNiArNDIyLDcgQEAKIAogCWlmIChpbWFqb3IoZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkgIT0gSUJNX0ZTMzI3MF9NQUpPUikKIAkJcmV0dXJuIC1FTk9ERVY7CisJbG9ja19rZXJuZWwoKTsKIAltaW5vciA9IGltaW5vcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKIAkvKiBDaGVjayBmb3IgbWlub3IgMCBtdWx0aXBsZXhlci4gKi8KIAlpZiAobWlub3IgPT0gMCkgewpAQCAtNDI5LDcgKzQzMSw4IEBACiAJCXR0eSA9IGdldF9jdXJyZW50X3R0eSgpOwogCQlpZiAoIXR0eSB8fCB0dHktPmRyaXZlci0+bWFqb3IgIT0gSUJNX1RUWTMyNzBfTUFKT1IpIHsKIAkJCW11dGV4X3VubG9jaygmdHR5X211dGV4KTsKLQkJCXJldHVybiAtRU5PREVWOworCQkJcmMgPSAtRU5PREVWOworCQkJZ290byBvdXQ7CiAJCX0KIAkJbWlub3IgPSB0dHktPmluZGV4ICsgUkFXMzI3MF9GSVJTVE1JTk9SOwogCQltdXRleF91bmxvY2soJnR0eV9tdXRleCk7CkBAIC00MzgsMTkgKzQ0MSwyMiBAQAogCWZwID0gKHN0cnVjdCBmczMyNzAgKikgcmF3MzI3MF9maW5kX3ZpZXcoJmZzMzI3MF9mbiwgbWlub3IpOwogCWlmICghSVNfRVJSKGZwKSkgewogCQlyYXczMjcwX3B1dF92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiAtRUJVU1k7CisJCXJjID0gLUVCVVNZOworCQlnb3RvIG91dDsKIAl9CiAJLyogQWxsb2NhdGUgZnVsbHNjcmVlbiB2aWV3IHN0cnVjdHVyZS4gKi8KIAlmcCA9IGZzMzI3MF9hbGxvY192aWV3KCk7Ci0JaWYgKElTX0VSUihmcCkpCi0JCXJldHVybiBQVFJfRVJSKGZwKTsKKwlpZiAoSVNfRVJSKGZwKSkgeworCQlyYyA9IFBUUl9FUlIoZnApOworCQlnb3RvIG91dDsKKwl9CiAKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmcC0+d2FpdCk7CiAJZnAtPmZzX3BpZCA9IGdldF9waWQodGFza19waWQoY3VycmVudCkpOwogCXJjID0gcmF3MzI3MF9hZGRfdmlldygmZnAtPnZpZXcsICZmczMyNzBfZm4sIG1pbm9yKTsKIAlpZiAocmMpIHsKIAkJZnMzMjcwX2ZyZWVfdmlldygmZnAtPnZpZXcpOwotCQlyZXR1cm4gcmM7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qIEFsbG9jYXRlIGlkYWwtYnVmZmVyLiAqLwpAQCAtNDU4LDcgKzQ2NCw4IEBACiAJaWYgKElTX0VSUihpYikpIHsKIAkJcmF3MzI3MF9wdXRfdmlldygmZnAtPnZpZXcpOwogCQlyYXczMjcwX2RlbF92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiBQVFJfRVJSKGZwKTsKKwkJcmMgPSBQVFJfRVJSKGZwKTsKKwkJZ290byBvdXQ7CiAJfQogCWZwLT5yZGJ1ZiA9IGliOwogCkBAIC00NjYsOSArNDczLDExIEBACiAJaWYgKHJjKSB7CiAJCXJhdzMyNzBfcHV0X3ZpZXcoJmZwLT52aWV3KTsKIAkJcmF3MzI3MF9kZWxfdmlldygmZnAtPnZpZXcpOwotCQlyZXR1cm4gcmM7CisJCWdvdG8gb3V0OwogCX0KIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBmcDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTUxMiwxMSArNTIxLDggQEAKIAlpbnQgcmM7CiAKIAlyYyA9IHJlZ2lzdGVyX2NocmRldihJQk1fRlMzMjcwX01BSk9SLCAiZnMzMjcwIiwgJmZzMzI3MF9mb3BzKTsKLQlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJmczMyNzAgY2FuJ3QgZ2V0IG1ham9yIG51bWJlciAlZDogZXJybm8gJWRcbiIsCi0JCSAgICAgICBJQk1fRlMzMjcwX01BSk9SLCByYyk7CisJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0JfQogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9tb25yZWFkZXIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbnJlYWRlci5jCmluZGV4IDFlMWY1MDYuLjM1ZmQ4ZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL21vbnJlYWRlci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbnJlYWRlci5jCkBAIC0zLDE0ICszLDE0IEBACiAgKgogICogQ2hhcmFjdGVyIGRldmljZSBkcml2ZXIgZm9yIHJlYWRpbmcgei9WTSAqTU9OSVRPUiBzZXJ2aWNlIHJlY29yZHMuCiAgKgotICogQ29weXJpZ2h0IDIwMDQgSUJNIENvcnBvcmF0aW9uLCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSC4KLSAqCi0gKiBBdXRob3I6IEdlcmFsZCBTY2hhZWZlciA8Z2VyYWxkc2NAZGUuaWJtLmNvbT4KKyAqICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA0LCAyMDA4CisgKiAgIEF1dGhvcjogR2VyYWxkIFNjaGFlZmVyIDxnZXJhbGQuc2NoYWVmZXJAZGUuaWJtLmNvbT4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC0xOCwxMiArMTgsMTEgQEAKICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPG5ldC9pdWN2L2l1Y3YuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9lYmNkaWMuaD4KICNpbmNsdWRlIDxhc20vZXh0bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvcG9sbC5oPgotI2luY2x1ZGUgPG5ldC9pdWN2L2l1Y3YuaD4KLQogCiAvLyNkZWZpbmUgTU9OX0RFQlVHCQkJLyogRGVidWcgbWVzc2FnZXMgb24vb2ZmICovCiAKQEAgLTE1MiwxMCArMTUxLDcgQEAKIAkgICAgKG1vbl9tY2FfZW5kKG1vbm1zZykgPiBtb25fZGNzc19lbmQpIHx8CiAJICAgIChtb25fbWNhX3N0YXJ0KG1vbm1zZykgPCBtb25fZGNzc19zdGFydCkgfHwKIAkgICAgKChtb25fbWNhX3R5cGUobW9ubXNnLCAxKSA9PSAwKSAmJiAobW9uX21jYV90eXBlKG1vbm1zZywgMikgPT0gMCkpKQotCXsKLQkJUF9ERUJVRygiUkVBRCwgSUdOT1JFRCBJTlZBTElEIE1DQVxuXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCXJldHVybiAwOwogfQogCkBAIC0xNjQsMTAgKzE2MCw2IEBACiB7CiAJaW50IHJjOwogCi0JUF9ERUJVRygicmVhZCwgUkVQTFk6IHBhdGhpZCA9IDB4JTA0WCwgbXNnaWQgPSAweCUwOFgsIHRyZ2NscyA9ICIKLQkJIjB4JTA4WFxuXG4iLAotCQltb25wcml2LT5wYXRoLT5wYXRoaWQsIG1vbm1zZy0+bXNnLmlkLCBtb25tc2ctPm1zZy5jbGFzcyk7Ci0KIAlyYyA9IGl1Y3ZfbWVzc2FnZV9yZXBseShtb25wcml2LT5wYXRoLCAmbW9ubXNnLT5tc2csCiAJCQkJSVVDVl9JUFJNREFUQSwgTlVMTCwgMCk7CiAJYXRvbWljX2RlYygmbW9ucHJpdi0+bXNnbGltX2NvdW50KTsKQEAgLTIwMiwxNSArMTk0LDEyIEBACiAJc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2OwogCiAJbW9ucHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtb25fcHJpdmF0ZSksIEdGUF9LRVJORUwpOwotCWlmICghbW9ucHJpdikgewotCQlQX0VSUk9SKCJubyBtZW1vcnkgZm9yIG1vbnByaXZcbiIpOworCWlmICghbW9ucHJpdikKIAkJcmV0dXJuIE5VTEw7Ci0JfQogCWZvciAoaSA9IDA7IGkgPCBNT05fTVNHTElNOyBpKyspIHsKIAkJbW9ucHJpdi0+bXNnX2FycmF5W2ldID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vbl9tc2cpLAogCQkJCQkJICAgIEdGUF9LRVJORUwpOwogCQlpZiAoIW1vbnByaXYtPm1zZ19hcnJheVtpXSkgewotCQkJUF9FUlJPUigib3Blbiwgbm8gbWVtb3J5IGZvciBtc2dfYXJyYXlcbiIpOwogCQkJbW9uX2ZyZWVfbWVtKG1vbnByaXYpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0KQEAgLTIxOCw0MSArMjA3LDEwIEBACiAJcmV0dXJuIG1vbnByaXY7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBtb25fcmVhZF9kZWJ1ZyhzdHJ1Y3QgbW9uX21zZyAqbW9ubXNnLAotCQkJCSAgc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2KQotewotI2lmZGVmIE1PTl9ERUJVRwotCXU4IG1zZ190eXBlWzJdLCBtY2FfdHlwZTsKLQl1bnNpZ25lZCBsb25nIHJlY29yZHNfbGVuOwotCi0JcmVjb3Jkc19sZW4gPSBtb25fcmVjX2VuZChtb25tc2cpIC0gbW9uX3JlY19zdGFydChtb25tc2cpICsgMTsKLQotCW1lbWNweShtc2dfdHlwZSwgJm1vbm1zZy0+bXNnLmNsYXNzLCAyKTsKLQlFQkNBU0MobXNnX3R5cGUsIDIpOwotCW1jYV90eXBlID0gbW9uX21jYV90eXBlKG1vbm1zZywgMCk7Ci0JRUJDQVNDKCZtY2FfdHlwZSwgMSk7Ci0KLQlQX0RFQlVHKCJyZWFkLCBtb25fcmVhZF9pbmRleCA9ICVpLCBtb25fd3JpdGVfaW5kZXggPSAlaVxuIiwKLQkJbW9ucHJpdi0+cmVhZF9pbmRleCwgbW9ucHJpdi0+d3JpdGVfaW5kZXgpOwotCVBfREVCVUcoInJlYWQsIHBhdGhpZCA9IDB4JTA0WCwgbXNnaWQgPSAweCUwOFgsIHRyZ2NscyA9IDB4JTA4WFxuIiwKLQkJbW9ucHJpdi0+cGF0aC0+cGF0aGlkLCBtb25tc2ctPm1zZy5pZCwgbW9ubXNnLT5tc2cuY2xhc3MpOwotCVBfREVCVUcoInJlYWQsIG1zZ190eXBlID0gJyVjJWMnLCBtY2FfdHlwZSA9ICclYycgLyAweCVYIC8gMHglWFxuIiwKLQkJbXNnX3R5cGVbMF0sIG1zZ190eXBlWzFdLCBtY2FfdHlwZSA/IG1jYV90eXBlIDogJ1gnLAotCQltb25fbWNhX3R5cGUobW9ubXNnLCAxKSwgbW9uX21jYV90eXBlKG1vbm1zZywgMikpOwotCVBfREVCVUcoInJlYWQsIE1DQTogc3RhcnQgPSAweCVsWCwgZW5kID0gMHglbFhcbiIsCi0JCW1vbl9tY2Ffc3RhcnQobW9ubXNnKSwgbW9uX21jYV9lbmQobW9ubXNnKSk7Ci0JUF9ERUJVRygicmVhZCwgUkVDOiBzdGFydCA9IDB4JVgsIGVuZCA9IDB4JVgsIGxlbiA9ICVsdVxuXG4iLAotCQltb25fcmVjX3N0YXJ0KG1vbm1zZyksIG1vbl9yZWNfZW5kKG1vbm1zZyksIHJlY29yZHNfbGVuKTsKLQlpZiAobW9uX21jYV9zaXplKG1vbm1zZykgPiAxMikKLQkJUF9ERUJVRygiUkVBRCwgTU9SRSBUSEFOIE9ORSBNQ0FcblxuIik7Ci0jZW5kaWYKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIG1vbl9uZXh0X21jYShzdHJ1Y3QgbW9uX21zZyAqbW9ubXNnKQogewogCWlmIChsaWtlbHkoKG1vbl9tY2Ffc2l6ZShtb25tc2cpIC0gbW9ubXNnLT5tY2Ffb2Zmc2V0KSA9PSAxMikpCiAJCXJldHVybjsKLQlQX0RFQlVHKCJSRUFELCBORVhUIE1DQVxuXG4iKTsKIAltb25tc2ctPm1jYV9vZmZzZXQgKz0gMTI7CiAJbW9ubXNnLT5wb3MgPSAwOwogfQpAQCAtMjY5LDcgKzIyNyw2IEBACiAJCW1vbm1zZy0+bXNnbGltX3JlYWNoZWQgPSAwOwogCQltb25tc2ctPnBvcyA9IDA7CiAJCW1vbm1zZy0+bWNhX29mZnNldCA9IDA7Ci0JCVBfV0FSTklORygicmVhZCwgbWVzc2FnZSBsaW1pdCByZWFjaGVkXG4iKTsKIAkJbW9ucHJpdi0+cmVhZF9pbmRleCA9IChtb25wcml2LT5yZWFkX2luZGV4ICsgMSkgJQogCQkJCSAgICAgIE1PTl9NU0dMSU07CiAJCWF0b21pY19kZWMoJm1vbnByaXYtPnJlYWRfcmVhZHkpOwpAQCAtMjg2LDEwICsyNDMsNiBAQAogewogCXN0cnVjdCBtb25fcHJpdmF0ZSAqbW9ucHJpdiA9IHBhdGgtPnByaXZhdGU7CiAKLQlQX0RFQlVHKCJJVUNWIGNvbm5lY3Rpb24gY29tcGxldGVkXG4iKTsKLQlQX0RFQlVHKCJJVUNWIEFDQ0VQVCAoZnJvbSAqTU9OSVRPUik6IFZlcnNpb24gPSAweCUwMlgsIEV2ZW50ID0gIgotCQkiMHglMDJYLCBTYW1wbGUgPSAweCUwMlhcbiIsCi0JCWlwdXNlclswXSwgaXB1c2VyWzFdLCBpcHVzZXJbMl0pOwogCWF0b21pY19zZXQoJm1vbnByaXYtPml1Y3ZfY29ubmVjdGVkLCAxKTsKIAl3YWtlX3VwKCZtb25fY29ubl93YWl0X3F1ZXVlKTsKIH0KQEAgLTMxMCw3ICsyNjMsNiBAQAogewogCXN0cnVjdCBtb25fcHJpdmF0ZSAqbW9ucHJpdiA9IHBhdGgtPnByaXZhdGU7CiAKLQlQX0RFQlVHKCJJVUNWIG1lc3NhZ2UgcGVuZGluZ1xuIik7CiAJbWVtY3B5KCZtb25wcml2LT5tc2dfYXJyYXlbbW9ucHJpdi0+d3JpdGVfaW5kZXhdLT5tc2csCiAJICAgICAgIG1zZywgc2l6ZW9mKCptc2cpKTsKIAlpZiAoYXRvbWljX2luY19yZXR1cm4oJm1vbnByaXYtPm1zZ2xpbV9jb3VudCkgPT0gTU9OX01TR0xJTSkgewpAQCAtMzQwLDYgKzI5Miw3IEBACiAJLyoKIAkgKiBvbmx5IG9uZSB1c2VyIGFsbG93ZWQKIAkgKi8KKwlsb2NrX2tlcm5lbCgpOwogCXJjID0gLUVCVVNZOwogCWlmICh0ZXN0X2FuZF9zZXRfYml0KE1PTl9JTl9VU0UsICZtb25faW5fdXNlKSkKIAkJZ290byBvdXQ7CkBAIC0zNzUsOCArMzI4LDggQEAKIAkJcmMgPSAtRUlPOwogCQlnb3RvIG91dF9wYXRoOwogCX0KLQlQX0lORk8oIm9wZW4sIGVzdGFibGlzaGVkIGNvbm5lY3Rpb24gdG8gKk1PTklUT1Igc2VydmljZVxuXG4iKTsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBtb25wcml2OworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CiAKIG91dF9wYXRoOgpAQCAtMzg2LDYgKzMzOSw3IEBACiBvdXRfdXNlOgogCWNsZWFyX2JpdChNT05fSU5fVVNFLCAmbW9uX2luX3VzZSk7CiBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApAQCAtNDAwLDggKzM1NCw2IEBACiAJcmMgPSBpdWN2X3BhdGhfc2V2ZXIobW9ucHJpdi0+cGF0aCwgdXNlcl9kYXRhX3NldmVyKTsKIAlpZiAocmMpCiAJCVBfRVJST1IoImNsb3NlLCBpdWN2X3NldmVyIGZhaWxlZCB3aXRoIHJjID0gJWlcbiIsIHJjKTsKLQllbHNlCi0JCVBfSU5GTygiY2xvc2UsIHRlcm1pbmF0ZWQgY29ubmVjdGlvbiB0byAqTU9OSVRPUiBzZXJ2aWNlXG4iKTsKIAogCWF0b21pY19zZXQoJm1vbnByaXYtPml1Y3Zfc2V2ZXJlZCwgMCk7CiAJYXRvbWljX3NldCgmbW9ucHJpdi0+aXVjdl9jb25uZWN0ZWQsIDApOwpAQCAtNDQyLDEwICszOTQsOCBAQAogCQltb25tc2cgPSBtb25wcml2LT5tc2dfYXJyYXlbbW9ucHJpdi0+cmVhZF9pbmRleF07CiAJfQogCi0JaWYgKCFtb25tc2ctPnBvcykgeworCWlmICghbW9ubXNnLT5wb3MpCiAJCW1vbm1zZy0+cG9zID0gbW9uX21jYV9zdGFydChtb25tc2cpICsgbW9ubXNnLT5tY2Ffb2Zmc2V0OwotCQltb25fcmVhZF9kZWJ1Zyhtb25tc2csIG1vbnByaXYpOwotCX0KIAlpZiAobW9uX2NoZWNrX21jYShtb25tc2cpKQogCQlnb3RvIHJlcGx5OwogCkBAIC01MzEsNyArNDgxLDYgQEAKIAkJUF9FUlJPUigiZmFpbGVkIHRvIHJlZ2lzdGVyIHdpdGggaXVjdiBkcml2ZXJcbiIpOwogCQlyZXR1cm4gcmM7CiAJfQotCVBfSU5GTygib3BlbiwgcmVnaXN0ZXJlZCB3aXRoIElVQ1ZcbiIpOwogCiAJcmMgPSBzZWdtZW50X3R5cGUobW9uX2Rjc3NfbmFtZSk7CiAJaWYgKHJjIDwgMCkgewpAQCAtNTU1LDEzICs1MDQsOCBAQAogCWRjc3NfbWtuYW1lKG1vbl9kY3NzX25hbWUsICZ1c2VyX2RhdGFfY29ubmVjdFs4XSk7CiAKIAlyYyA9IG1pc2NfcmVnaXN0ZXIoJm1vbl9kZXYpOwotCWlmIChyYyA8IDAgKSB7Ci0JCVBfRVJST1IoIm1pc2NfcmVnaXN0ZXIgZmFpbGVkLCByYyA9ICVpXG4iLCByYyk7CisJaWYgKHJjIDwgMCApCiAJCWdvdG8gb3V0OwotCX0KLQlQX0lORk8oIkxvYWRlZCBzZWdtZW50ICVzIGZyb20gJXAgdG8gJXAsIHNpemUgPSAlbHUgQnl0ZVxuIiwKLQkJbW9uX2Rjc3NfbmFtZSwgKHZvaWQgKikgbW9uX2Rjc3Nfc3RhcnQsICh2b2lkICopIG1vbl9kY3NzX2VuZCwKLQkJbW9uX2Rjc3NfZW5kIC0gbW9uX2Rjc3Nfc3RhcnQgKyAxKTsKIAlyZXR1cm4gMDsKIAogb3V0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvbW9ud3JpdGVyLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9tb253cml0ZXIuYwppbmRleCBhODZjMDUzLi40ZDcxYWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9tb253cml0ZXIuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9tb253cml0ZXIuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTE3OSwxMCArMTgwLDEyIEBACiAJbW9ucHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtb25fcHJpdmF0ZSksIEdGUF9LRVJORUwpOwogCWlmICghbW9ucHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CisJbG9ja19rZXJuZWwoKTsKIAlJTklUX0xJU1RfSEVBRCgmbW9ucHJpdi0+bGlzdCk7CiAJbW9ucHJpdi0+aGRyX3RvX3JlYWQgPSBzaXplb2YobW9ucHJpdi0+aGRyKTsKIAltdXRleF9pbml0KCZtb25wcml2LT50aHJlYWRfbXV0ZXgpOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IG1vbnByaXY7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvcmF3MzI3MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvcmF3MzI3MC5jCmluZGV4IDg0OGVmN2UuLjgxYTk2ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3JhdzMyNzAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9yYXczMjcwLmMKQEAgLTE1MywxOSArMTUzLDEwIEBACiAJc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnE7CiAKIAlycSA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihzdHJ1Y3QgcmF3MzI3MCkpOwotCWlmICghcnEpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCW1lbXNldChycSwgMCwgc2l6ZW9mKHN0cnVjdCByYXczMjcwX3JlcXVlc3QpKTsKIAogCS8qIGFsbG9jIG91dHB1dCBidWZmZXIuICovCi0JaWYgKHNpemUgPiAwKSB7CisJaWYgKHNpemUgPiAwKQogCQlycS0+YnVmZmVyID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZSk7Ci0JCWlmICghcnEtPmJ1ZmZlcikgewotCQkJZnJlZV9ib290bWVtKCh1bnNpZ25lZCBsb25nKSBycSwKLQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgcmF3MzI3MCkpOwotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JCX0KLQl9CiAJcnEtPnNpemUgPSBzaXplOwogCUlOSVRfTElTVF9IRUFEKCZycS0+bGlzdCk7CiAKQEAgLTM3MiwxNyArMzYzLDE3IEBACiAKIAlpZiAoSVNfRVJSKGlyYikpCiAJCXJjID0gUkFXMzI3MF9JT19SRVRSWTsKLQllbHNlIGlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfSEFMVF9GVU5DKSB7CiAJCXJxLT5yYyA9IC1FSU87CiAJCXJjID0gUkFXMzI3MF9JT19ET05FOwotCX0gZWxzZSBpZiAoaXJiLT5zY3N3LmRzdGF0ID09ICAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQgfAotCQkJCQlERVZfU1RBVF9VTklUX0VYQ0VQKSkgeworCX0gZWxzZSBpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQgfAorCQkJCQkgICBERVZfU1RBVF9VTklUX0VYQ0VQKSkgewogCQkvKiBIYW5kbGUgQ0UtREUtVUUgYW5kIHN1YnNlcXVlbnQgVURFICovCiAJCXNldF9iaXQoUkFXMzI3MF9GTEFHU19CVVNZLCAmcnAtPmZsYWdzKTsKIAkJcmMgPSBSQVczMjcwX0lPX0JVU1k7CiAJfSBlbHNlIGlmICh0ZXN0X2JpdChSQVczMjcwX0ZMQUdTX0JVU1ksICZycC0+ZmxhZ3MpKSB7CiAJCS8qIFdhaXQgZm9yIFVERSBpZiBidXN5IGZsYWcgaXMgc2V0LiAqLwotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgeworCQlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKIAkJCWNsZWFyX2JpdChSQVczMjcwX0ZMQUdTX0JVU1ksICZycC0+ZmxhZ3MpOwogCQkJLyogR290IGl0LCBub3cgcmV0cnkuICovCiAJCQlyYyA9IFJBVzMyNzBfSU9fUkVUUlk7CkBAIC00OTcsNyArNDg4LDcgQEAKIAkgKiBVbml0LUNoZWNrIFByb2Nlc3Npbmc6CiAJICogRXhwZWN0IENvbW1hbmQgUmVqZWN0IG9yIEludGVydmVudGlvbiBSZXF1aXJlZC4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgewogCQkvKiBSZXF1ZXN0IGZpbmlzaGVkIGFibm9ybWFsbHkuICovCiAJCWlmIChpcmItPmVjd1swXSAmIFNOUzBfSU5URVJWRU5USU9OX1JFUSkgewogCQkJc2V0X2JpdChSQVczMjcwX0ZMQUdTX0JVU1ksICZ2aWV3LT5kZXYtPmZsYWdzKTsKQEAgLTUwNSwxNiArNDk2LDE2IEBACiAJCX0KIAl9CiAJaWYgKHJxKSB7Ci0JCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgewogCQkJaWYgKGlyYi0+ZWN3WzBdICYgU05TMF9DTURfUkVKRUNUKQogCQkJCXJxLT5yYyA9IC1FT1BOT1RTVVBQOwogCQkJZWxzZQogCQkJCXJxLT5yYyA9IC1FSU87CiAJCX0gZWxzZQogCQkJLyogUmVxdWVzdCBmaW5pc2hlZCBub3JtYWxseS4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CiAJCXNldF9iaXQoUkFXMzI3MF9GTEFHU19BVFROLCAmdmlldy0+ZGV2LT5mbGFncyk7CiAJCXdha2VfdXAoJnJhdzMyNzBfd2FpdF9xdWV1ZSk7CiAJfQpAQCAtNjE5LDcgKzYxMCw2IEBACiAJCXJwLT5jb2xzID0gMTMyOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9XQVJOSU5HICJ2cmRjY3JtZCBpcyAweCUuOHhcbiIsIG1vZGVsKTsKIAkJcmMgPSAtRU9QTk9UU1VQUDsKIAkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscC5jCmluZGV4IDJjN2ExZWUuLjNjOGIyNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwLmMKQEAgLTUwNiw2ICs1MDYsOCBAQAogCWlmIChzY2J1Zi0+dmFsaWRpdHlfc2NscF9zZW5kX21hc2spCiAJCXNjbHBfc2VuZF9tYXNrID0gc2NidWYtPnNjbHBfc2VuZF9tYXNrOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjbHBfbG9jaywgZmxhZ3MpOworCWlmIChzY2J1Zi0+dmFsaWRpdHlfc2NscF9hY3RpdmVfZmFjaWxpdHlfbWFzaykKKwkJc2NscF9mYWNpbGl0aWVzID0gc2NidWYtPnNjbHBfYWN0aXZlX2ZhY2lsaXR5X21hc2s7CiAJc2NscF9kaXNwYXRjaF9zdGF0ZV9jaGFuZ2UoKTsKIH0KIApAQCAtNzgyLDExICs3ODQsOSBAQAogCS8qIElzIHRoaXMgdGhlIGludGVycnVwdCB3ZSBhcmUgd2FpdGluZyBmb3I/ICovCiAJaWYgKGZpbmlzaGVkX3NjY2IgPT0gMCkKIAkJcmV0dXJuOwotCWlmIChmaW5pc2hlZF9zY2NiICE9ICh1MzIpIChhZGRyX3QpIHNjbHBfaW5pdF9zY2NiKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgU0NMUF9IRUFERVIgInVuc29saWNpdGVkIGludGVycnVwdCAiCi0JCSAgICAgICAiZm9yIGJ1ZmZlciBhdCAweCV4XG4iLCBmaW5pc2hlZF9zY2NiKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAoZmluaXNoZWRfc2NjYiAhPSAodTMyKSAoYWRkcl90KSBzY2xwX2luaXRfc2NjYikKKwkJcGFuaWMoInNjbHA6IHVuc29saWNpdGVkIGludGVycnVwdCBmb3IgYnVmZmVyIGF0IDB4JXhcbiIsCisJCSAgICAgIGZpbmlzaGVkX3NjY2IpOwogCXNwaW5fbG9jaygmc2NscF9sb2NrKTsKIAlpZiAoc2NscF9ydW5uaW5nX3N0YXRlID09IHNjbHBfcnVubmluZ19zdGF0ZV9ydW5uaW5nKSB7CiAJCXNjbHBfaW5pdF9yZXEuc3RhdHVzID0gU0NMUF9SRVFfRE9ORTsKQEAgLTg4Myw4ICs4ODMsNiBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJjOwogCi0JaWYgKCFNQUNISU5FX0hBU19TQ0xQKQotCQlyZXR1cm4gLUVOT0RFVjsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF9sb2NrLCBmbGFncyk7CiAJLyogQ2hlY2sgZm9yIHByZXZpb3VzIG9yIHJ1bm5pbmcgaW5pdGlhbGl6YXRpb24gKi8KIAlpZiAoc2NscF9pbml0X3N0YXRlICE9IHNjbHBfaW5pdF9zdGF0ZV91bmluaXRpYWxpemVkKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NtZC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jbWQuYwppbmRleCBiNWMyMzM5Li4wYzJiNzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NtZC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMKQEAgLTExLDYgKzExLDkgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgorI2luY2x1ZGUgPGxpbnV4L21lbW9yeS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgogI2luY2x1ZGUgPGFzbS9zY2xwLmg+CiAjaW5jbHVkZSAic2NscC5oIgpAQCAtNDMsNiArNDYsOCBAQAogCiB1NjQgc2NscF9mYWNpbGl0aWVzOwogc3RhdGljIHU4IHNjbHBfZmFjODQ7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHJ6bTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcm5tYXg7CiAKIHN0YXRpYyBpbnQgX19pbml0IHNjbHBfY21kX3N5bmNfZWFybHkoc2NscF9jbWR3X3QgY21kLCB2b2lkICpzY2NiKQogewpAQCAtNjIsNyArNjcsNyBAQAogCXJldHVybiByYzsKIH0KIAotdm9pZCBfX2luaXQgc2NscF9yZWFkX2luZm9fZWFybHkodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCBzY2xwX3JlYWRfaW5mb19lYXJseSh2b2lkKQogewogCWludCByYzsKIAlpbnQgaTsKQEAgLTkyLDM0ICs5NywzMyBAQAogCiB2b2lkIF9faW5pdCBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KHZvaWQpCiB7Ci0JaWYgKCFlYXJseV9yZWFkX2luZm9fc2NjYl92YWxpZCkKLQkJcmV0dXJuOwotCXNjbHBfZmFjaWxpdGllcyA9IGVhcmx5X3JlYWRfaW5mb19zY2NiLmZhY2lsaXRpZXM7Ci0Jc2NscF9mYWM4NCA9IGVhcmx5X3JlYWRfaW5mb19zY2NiLmZhYzg0OwotfQotCi11bnNpZ25lZCBsb25nIGxvbmcgX19pbml0IHNjbHBfbWVtb3J5X2RldGVjdCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBtZW1zaXplOwogCXN0cnVjdCByZWFkX2luZm9fc2NjYiAqc2NjYjsKIAorCXNjbHBfcmVhZF9pbmZvX2Vhcmx5KCk7CiAJaWYgKCFlYXJseV9yZWFkX2luZm9fc2NjYl92YWxpZCkKLQkJcmV0dXJuIDA7CisJCXJldHVybjsKKwogCXNjY2IgPSAmZWFybHlfcmVhZF9pbmZvX3NjY2I7Ci0JaWYgKHNjY2ItPnJuc2l6ZSkKLQkJbWVtc2l6ZSA9IHNjY2ItPnJuc2l6ZSA8PCAyMDsKLQllbHNlCi0JCW1lbXNpemUgPSBzY2NiLT5ybnNpemUyIDw8IDIwOwotCWlmIChzY2NiLT5ybm1heCkKLQkJbWVtc2l6ZSAqPSBzY2NiLT5ybm1heDsKLQllbHNlCi0JCW1lbXNpemUgKj0gc2NjYi0+cm5tYXgyOwotCXJldHVybiBtZW1zaXplOworCXNjbHBfZmFjaWxpdGllcyA9IHNjY2ItPmZhY2lsaXRpZXM7CisJc2NscF9mYWM4NCA9IHNjY2ItPmZhYzg0OworCXJubWF4ID0gc2NjYi0+cm5tYXggPyBzY2NiLT5ybm1heCA6IHNjY2ItPnJubWF4MjsKKwlyem0gPSBzY2NiLT5ybnNpemUgPyBzY2NiLT5ybnNpemUgOiBzY2NiLT5ybnNpemUyOworCXJ6bSA8PD0gMjA7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9ybm1heCh2b2lkKQoreworCXJldHVybiBybm1heDsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIHNjbHBfZ2V0X3J6bSh2b2lkKQoreworCXJldHVybiByem07CiB9CiAKIC8qCi0gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHNjbHBfbWVtb3J5X2RldGVjdCgpLCB3aGljaCBnZXRzIGNhbGxlZAotICogZWFybHkgZnJvbSBlYXJseS5jIGNvZGUuIFRoZXJlZm9yZSB0aGUgc2NjYiBzaG91bGQgaGF2ZSB2YWxpZCBjb250ZW50cy4KKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgc2NscF9mYWNpbGl0aWVzX2RldGVjdCgpLCB3aGljaCBnZXRzCisgKiBjYWxsZWQgZnJvbSBlYXJseS5jIGNvZGUuIFRoZXJlZm9yZSB0aGUgc2NjYiBzaG91bGQgaGF2ZSB2YWxpZCBjb250ZW50cy4KICAqLwogdm9pZCBfX2luaXQgc2NscF9nZXRfaXBsX2luZm8oc3RydWN0IHNjbHBfaXBsX2luZm8gKmluZm8pCiB7CkBAIC0yNzgsNiArMjgyLDMwNSBAQAogCXJldHVybiBkb19jcHVfY29uZmlndXJlKFNDTFBfQ01EV19ERUNPTkZJR1VSRV9DUFUgfCBjcHUgPDwgOCk7CiB9CiAKKyNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKKworc3RhdGljIERFRklORV9NVVRFWChzY2xwX21lbV9tdXRleCk7CitzdGF0aWMgTElTVF9IRUFEKHNjbHBfbWVtX2xpc3QpOworc3RhdGljIHU4IHNjbHBfbWF4X3N0b3JhZ2VfaWQ7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBzY2xwX3N0b3JhZ2VfaWRzWzI1NiAvIEJJVFNfUEVSX0xPTkddOworCitzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXUxNiBybjsKKwlpbnQgc3RhbmRieTsKKwlpbnQgdXNlY291bnQ7Cit9OworCitzdHJ1Y3QgYXNzaWduX3N0b3JhZ2Vfc2NjYiB7CisJc3RydWN0IHNjY2JfaGVhZGVyIGhlYWRlcjsKKwl1MTYgcm47Cit9IF9fcGFja2VkOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHJuMmFkZHIodTE2IHJuKQoreworCXJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKSAocm4gLSAxKSAqIHJ6bTsKK30KKworc3RhdGljIGludCBkb19hc3NpZ25fc3RvcmFnZShzY2xwX2NtZHdfdCBjbWQsIHUxNiBybikKK3sKKwlzdHJ1Y3QgYXNzaWduX3N0b3JhZ2Vfc2NjYiAqc2NjYjsKKwlpbnQgcmM7CisKKwlzY2NiID0gKHZvaWQgKikgZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjY2IpCisJCXJldHVybiAtRU5PTUVNOworCXNjY2ItPmhlYWRlci5sZW5ndGggPSBQQUdFX1NJWkU7CisJc2NjYi0+cm4gPSBybjsKKwlyYyA9IGRvX3N5bmNfcmVxdWVzdChjbWQsIHNjY2IpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisJc3dpdGNoIChzY2NiLT5oZWFkZXIucmVzcG9uc2VfY29kZSkgeworCWNhc2UgMHgwMDIwOgorCWNhc2UgMHgwMTIwOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyYyA9IC1FSU87CisJCWJyZWFrOworCX0KK291dDoKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpIHNjY2IpOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBzY2xwX2Fzc2lnbl9zdG9yYWdlKHUxNiBybikKK3sKKwlyZXR1cm4gZG9fYXNzaWduX3N0b3JhZ2UoMHgwMDBkMDAwMSwgcm4pOworfQorCitzdGF0aWMgaW50IHNjbHBfdW5hc3NpZ25fc3RvcmFnZSh1MTYgcm4pCit7CisJcmV0dXJuIGRvX2Fzc2lnbl9zdG9yYWdlKDB4MDAwYzAwMDEsIHJuKTsKK30KKworc3RydWN0IGF0dGFjaF9zdG9yYWdlX3NjY2IgeworCXN0cnVjdCBzY2NiX2hlYWRlciBoZWFkZXI7CisJdTE2IDoxNjsKKwl1MTYgYXNzaWduZWQ7CisJdTMyIDozMjsKKwl1MzIgZW50cmllc1swXTsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyBpbnQgc2NscF9hdHRhY2hfc3RvcmFnZSh1OCBpZCkKK3sKKwlzdHJ1Y3QgYXR0YWNoX3N0b3JhZ2Vfc2NjYiAqc2NjYjsKKwlpbnQgcmM7CisJaW50IGk7CisKKwlzY2NiID0gKHZvaWQgKikgZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjY2IpCisJCXJldHVybiAtRU5PTUVNOworCXNjY2ItPmhlYWRlci5sZW5ndGggPSBQQUdFX1NJWkU7CisJcmMgPSBkb19zeW5jX3JlcXVlc3QoMHgwMDA4MDAwMSB8IGlkIDw8IDgsIHNjY2IpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisJc3dpdGNoIChzY2NiLT5oZWFkZXIucmVzcG9uc2VfY29kZSkgeworCWNhc2UgMHgwMDIwOgorCQlzZXRfYml0KGlkLCBzY2xwX3N0b3JhZ2VfaWRzKTsKKwkJZm9yIChpID0gMDsgaSA8IHNjY2ItPmFzc2lnbmVkOyBpKyspCisJCQlzY2xwX3VuYXNzaWduX3N0b3JhZ2Uoc2NjYi0+ZW50cmllc1tpXSA+PiAxNik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJjID0gLUVJTzsKKwkJYnJlYWs7CisJfQorb3V0OgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZykgc2NjYik7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHNjbHBfbWVtX2NoYW5nZV9zdGF0ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJIGludCBvbmxpbmUpCit7CisJc3RydWN0IG1lbW9yeV9pbmNyZW1lbnQgKmluY3I7CisJdW5zaWduZWQgbG9uZyBsb25nIGlzdGFydDsKKwlpbnQgcmMgPSAwOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbmNyLCAmc2NscF9tZW1fbGlzdCwgbGlzdCkgeworCQlpc3RhcnQgPSBybjJhZGRyKGluY3ItPnJuKTsKKwkJaWYgKHN0YXJ0ICsgc2l6ZSAtIDEgPCBpc3RhcnQpCisJCQlicmVhazsKKwkJaWYgKHN0YXJ0ID4gaXN0YXJ0ICsgcnptIC0gMSkKKwkJCWNvbnRpbnVlOworCQlpZiAob25saW5lKSB7CisJCQlpZiAoaW5jci0+dXNlY291bnQrKykKKwkJCQljb250aW51ZTsKKwkJCS8qCisJCQkgKiBEb24ndCBicmVhayB0aGUgbG9vcCBpZiBvbmUgYXNzaWduIGZhaWxzLiBMb29wIG1heQorCQkJICogYmUgd2Fsa2VkIGFnYWluIG9uIENBTkNFTCBhbmQgd2UgY2FuJ3Qgc2F2ZQorCQkJICogaW5mb3JtYXRpb24gaWYgc3RhdGUgY2hhbmdlZCBiZWZvcmUgb3Igbm90LgorCQkJICogU28gY29udGludWUgYW5kIGluY3JlYXNlIHVzZWNvdW50IGZvciBhbGwgaW5jcmVtZW50cy4KKwkJCSAqLworCQkJcmMgfD0gc2NscF9hc3NpZ25fc3RvcmFnZShpbmNyLT5ybik7CisJCX0gZWxzZSB7CisJCQlpZiAoLS1pbmNyLT51c2Vjb3VudCkKKwkJCQljb250aW51ZTsKKwkJCXNjbHBfdW5hc3NpZ25fc3RvcmFnZShpbmNyLT5ybik7CisJCX0KKwl9CisJcmV0dXJuIHJjID8gLUVJTyA6IDA7Cit9CisKK3N0YXRpYyBpbnQgc2NscF9tZW1fbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKKwkJCSAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBzdGFydCwgc2l6ZTsKKwlzdHJ1Y3QgbWVtb3J5X25vdGlmeSAqYXJnOworCXVuc2lnbmVkIGNoYXIgaWQ7CisJaW50IHJjID0gMDsKKworCWFyZyA9IGRhdGE7CisJc3RhcnQgPSBhcmctPnN0YXJ0X3BmbiA8PCBQQUdFX1NISUZUOworCXNpemUgPSBhcmctPm5yX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CisJbXV0ZXhfbG9jaygmc2NscF9tZW1fbXV0ZXgpOworCWZvciAoaWQgPSAwOyBpZCA8PSBzY2xwX21heF9zdG9yYWdlX2lkOyBpZCsrKQorCQlpZiAoIXRlc3RfYml0KGlkLCBzY2xwX3N0b3JhZ2VfaWRzKSkKKwkJCXNjbHBfYXR0YWNoX3N0b3JhZ2UoaWQpOworCXN3aXRjaCAoYWN0aW9uKSB7CisJY2FzZSBNRU1fT05MSU5FOgorCQlicmVhazsKKwljYXNlIE1FTV9HT0lOR19PTkxJTkU6CisJCXJjID0gc2NscF9tZW1fY2hhbmdlX3N0YXRlKHN0YXJ0LCBzaXplLCAxKTsKKwkJYnJlYWs7CisJY2FzZSBNRU1fQ0FOQ0VMX09OTElORToKKwkJc2NscF9tZW1fY2hhbmdlX3N0YXRlKHN0YXJ0LCBzaXplLCAwKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmMgPSAtRUlOVkFMOworCQlicmVhazsKKwl9CisJbXV0ZXhfdW5sb2NrKCZzY2xwX21lbV9tdXRleCk7CisJcmV0dXJuIHJjID8gTk9USUZZX0JBRCA6IE5PVElGWV9PSzsKK30KKworc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBzY2xwX21lbV9uYiA9IHsKKwkubm90aWZpZXJfY2FsbCA9IHNjbHBfbWVtX25vdGlmaWVyLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGFkZF9tZW1vcnlfbWVyZ2VkKHUxNiBybikKK3sKKwlzdGF0aWMgdTE2IGZpcnN0X3JuLCBudW07CisJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBzaXplOworCisJaWYgKHJuICYmIGZpcnN0X3JuICYmIChmaXJzdF9ybiArIG51bSA9PSBybikpIHsKKwkJbnVtKys7CisJCXJldHVybjsKKwl9CisJaWYgKCFmaXJzdF9ybikKKwkJZ290byBza2lwX2FkZDsKKwlzdGFydCA9IHJuMmFkZHIoZmlyc3Rfcm4pOworCXNpemUgPSAodW5zaWduZWQgbG9uZyBsb25nICkgbnVtICogcnptOworCWlmIChzdGFydCA+PSBWTUVNX01BWF9QSFlTKQorCQlnb3RvIHNraXBfYWRkOworCWlmIChzdGFydCArIHNpemUgPiBWTUVNX01BWF9QSFlTKQorCQlzaXplID0gVk1FTV9NQVhfUEhZUyAtIHN0YXJ0OworCWFkZF9tZW1vcnkoMCwgc3RhcnQsIHNpemUpOworc2tpcF9hZGQ6CisJZmlyc3Rfcm4gPSBybjsKKwludW0gPSAxOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2NscF9hZGRfc3RhbmRieV9tZW1vcnkodm9pZCkKK3sKKwlzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCAqaW5jcjsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5jciwgJnNjbHBfbWVtX2xpc3QsIGxpc3QpCisJCWlmIChpbmNyLT5zdGFuZGJ5KQorCQkJYWRkX21lbW9yeV9tZXJnZWQoaW5jci0+cm4pOworCWFkZF9tZW1vcnlfbWVyZ2VkKDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5zZXJ0X2luY3JlbWVudCh1MTYgcm4sIGludCBzdGFuZGJ5LCBpbnQgYXNzaWduZWQpCit7CisJc3RydWN0IG1lbW9yeV9pbmNyZW1lbnQgKmluY3IsICpuZXdfaW5jcjsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2OworCXUxNiBsYXN0X3JuOworCisJbmV3X2luY3IgPSBremFsbG9jKHNpemVvZigqbmV3X2luY3IpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5ld19pbmNyKQorCQlyZXR1cm47CisJbmV3X2luY3ItPnJuID0gcm47CisJbmV3X2luY3ItPnN0YW5kYnkgPSBzdGFuZGJ5OworCWxhc3Rfcm4gPSAwOworCXByZXYgPSAmc2NscF9tZW1fbGlzdDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluY3IsICZzY2xwX21lbV9saXN0LCBsaXN0KSB7CisJCWlmIChhc3NpZ25lZCAmJiBpbmNyLT5ybiA+IHJuKQorCQkJYnJlYWs7CisJCWlmICghYXNzaWduZWQgJiYgaW5jci0+cm4gLSBsYXN0X3JuID4gMSkKKwkJCWJyZWFrOworCQlsYXN0X3JuID0gaW5jci0+cm47CisJCXByZXYgPSAmaW5jci0+bGlzdDsKKwl9CisJaWYgKCFhc3NpZ25lZCkKKwkJbmV3X2luY3ItPnJuID0gbGFzdF9ybiArIDE7CisJaWYgKG5ld19pbmNyLT5ybiA+IHJubWF4KSB7CisJCWtmcmVlKG5ld19pbmNyKTsKKwkJcmV0dXJuOworCX0KKwlsaXN0X2FkZCgmbmV3X2luY3ItPmxpc3QsIHByZXYpOworfQorCitzdHJ1Y3QgcmVhZF9zdG9yYWdlX3NjY2IgeworCXN0cnVjdCBzY2NiX2hlYWRlciBoZWFkZXI7CisJdTE2IG1heF9pZDsKKwl1MTYgYXNzaWduZWQ7CisJdTE2IHN0YW5kYnk7CisJdTE2IDoxNjsKKwl1MzIgZW50cmllc1swXTsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyBpbnQgX19pbml0IHNjbHBfZGV0ZWN0X3N0YW5kYnlfbWVtb3J5KHZvaWQpCit7CisJc3RydWN0IHJlYWRfc3RvcmFnZV9zY2NiICpzY2NiOworCWludCBpLCBpZCwgYXNzaWduZWQsIHJjOworCisJaWYgKCFlYXJseV9yZWFkX2luZm9fc2NjYl92YWxpZCkKKwkJcmV0dXJuIDA7CisJaWYgKChzY2xwX2ZhY2lsaXRpZXMgJiAweGUwMDAwMDAwMDAwMFVMTCkgIT0gMHhlMDAwMDAwMDAwMDBVTEwpCisJCXJldHVybiAwOworCXJjID0gLUVOT01FTTsKKwlzY2NiID0gKHZvaWQgKikgX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjY2IpCisJCWdvdG8gb3V0OworCWFzc2lnbmVkID0gMDsKKwlmb3IgKGlkID0gMDsgaWQgPD0gc2NscF9tYXhfc3RvcmFnZV9pZDsgaWQrKykgeworCQltZW1zZXQoc2NjYiwgMCwgUEFHRV9TSVpFKTsKKwkJc2NjYi0+aGVhZGVyLmxlbmd0aCA9IFBBR0VfU0laRTsKKwkJcmMgPSBkb19zeW5jX3JlcXVlc3QoMHgwMDA0MDAwMSB8IGlkIDw8IDgsIHNjY2IpOworCQlpZiAocmMpCisJCQlnb3RvIG91dDsKKwkJc3dpdGNoIChzY2NiLT5oZWFkZXIucmVzcG9uc2VfY29kZSkgeworCQljYXNlIDB4MDAxMDoKKwkJCXNldF9iaXQoaWQsIHNjbHBfc3RvcmFnZV9pZHMpOworCQkJZm9yIChpID0gMDsgaSA8IHNjY2ItPmFzc2lnbmVkOyBpKyspIHsKKwkJCQlpZiAoIXNjY2ItPmVudHJpZXNbaV0pCisJCQkJCWNvbnRpbnVlOworCQkJCWFzc2lnbmVkKys7CisJCQkJaW5zZXJ0X2luY3JlbWVudChzY2NiLT5lbnRyaWVzW2ldID4+IDE2LCAwLCAxKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIDB4MDMxMDoKKwkJCWJyZWFrOworCQljYXNlIDB4MDQxMDoKKwkJCWZvciAoaSA9IDA7IGkgPCBzY2NiLT5hc3NpZ25lZDsgaSsrKSB7CisJCQkJaWYgKCFzY2NiLT5lbnRyaWVzW2ldKQorCQkJCQljb250aW51ZTsKKwkJCQlhc3NpZ25lZCsrOworCQkJCWluc2VydF9pbmNyZW1lbnQoc2NjYi0+ZW50cmllc1tpXSA+PiAxNiwgMSwgMSk7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXJjID0gLUVJTzsKKwkJCWJyZWFrOworCQl9CisJCWlmICghcmMpCisJCQlzY2xwX21heF9zdG9yYWdlX2lkID0gc2NjYi0+bWF4X2lkOworCX0KKwlpZiAocmMgfHwgbGlzdF9lbXB0eSgmc2NscF9tZW1fbGlzdCkpCisJCWdvdG8gb3V0OworCWZvciAoaSA9IDE7IGkgPD0gcm5tYXggLSBhc3NpZ25lZDsgaSsrKQorCQlpbnNlcnRfaW5jcmVtZW50KDAsIDEsIDApOworCXJjID0gcmVnaXN0ZXJfbWVtb3J5X25vdGlmaWVyKCZzY2xwX21lbV9uYik7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKwlzY2xwX2FkZF9zdGFuZGJ5X21lbW9yeSgpOworb3V0OgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZykgc2NjYik7CisJcmV0dXJuIHJjOworfQorX19pbml0Y2FsbChzY2xwX2RldGVjdF9zdGFuZGJ5X21lbW9yeSk7CisKKyNlbmRpZiAvKiBDT05GSUdfTUVNT1JZX0hPVFBMVUcgKi8KKwogLyoKICAqIENoYW5uZWwgcGF0aCBjb25maWd1cmF0aW9uIHJlbGF0ZWQgZnVuY3Rpb25zLgogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2Nvbi5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb24uYwppbmRleCBlYWQxMDQzLi43ZTYxOWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2Nvbi5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uLmMKQEAgLTE0LDE0ICsxNCwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC90ZXJtaW9zLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAKICNpbmNsdWRlICJzY2xwLmgiCiAjaW5jbHVkZSAic2NscF9ydy5oIgogI2luY2x1ZGUgInNjbHBfdHR5LmgiCiAKLSNkZWZpbmUgU0NMUF9DT05fUFJJTlRfSEVBREVSICJzY2xwIGNvbnNvbGUgZHJpdmVyOiAiCi0KICNkZWZpbmUgc2NscF9jb25zb2xlX21ham9yIDQJCS8qIFRUWUFVWF9NQUpPUiAqLwogI2RlZmluZSBzY2xwX2NvbnNvbGVfbWlub3IgNjQKICNkZWZpbmUgc2NscF9jb25zb2xlX25hbWUgICJ0dHlTIgpAQCAtMjIyLDggKzIyMSw2IEBACiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfY29uX3BhZ2VzKTsKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0NPTlNPTEVfUEFHRVM7IGkrKykgewogCQlwYWdlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKLQkJaWYgKHBhZ2UgPT0gTlVMTCkKLQkJCXJldHVybiAtRU5PTUVNOwogCQlsaXN0X2FkZF90YWlsKChzdHJ1Y3QgbGlzdF9oZWFkICopIHBhZ2UsICZzY2xwX2Nvbl9wYWdlcyk7CiAJfQogCUlOSVRfTElTVF9IRUFEKCZzY2xwX2Nvbl9vdXRxdWV1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NvbmZpZy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb25maWcuYwppbmRleCBhZDA1YTg3Li5mZmY0ZmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NvbmZpZy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uZmlnLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CisjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KQEAgLTQwLDkgKzQxLDE5IEBACiAJcHV0X29ubGluZV9jcHVzKCk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fcmVmIHNjbHBfY3B1X2NoYW5nZV9ub3RpZnkoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQorc3RhdGljIGludCBzY2xwX2NwdV9rdGhyZWFkKHZvaWQgKmRhdGEpCiB7CiAJc21wX3Jlc2Nhbl9jcHVzKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fcmVmIHNjbHBfY3B1X2NoYW5nZV9ub3RpZnkoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCS8qIENhbid0IGNhbGwgc21wX3Jlc2Nhbl9jcHVzKCkgZnJvbSAgd29ya3F1ZXVlIGNvbnRleHQgc2luY2UgaXQgbWF5CisJICogZGVhZGxvY2sgaW4gY2FzZSBvZiBjcHUgaG90cGx1Zy4gU28gd2UgaGF2ZSB0byBjcmVhdGUgYSBrZXJuZWwKKwkgKiB0aHJlYWQgaW4gb3JkZXIgdG8gY2FsbCBpdC4KKwkgKi8KKwlrdGhyZWFkX3J1bihzY2xwX2NwdV9rdGhyZWFkLCBOVUxMLCAiY3B1X3Jlc2NhbiIpOwogfQogCiBzdGF0aWMgdm9pZCBzY2xwX2NvbmZfcmVjZWl2ZXJfZm4oc3RydWN0IGV2YnVmX2hlYWRlciAqZXZidWYpCkBAIC03NCwxMCArODUsOCBAQAogCUlOSVRfV09SSygmc2NscF9jcHVfY2hhbmdlX3dvcmssIHNjbHBfY3B1X2NoYW5nZV9ub3RpZnkpOwogCiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX2NvbmZfcmVnaXN0ZXIpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgVEFHICJmYWlsZWQgdG8gcmVnaXN0ZXIgKCVkKS5cbiIsIHJjKTsKKwlpZiAocmMpCiAJCXJldHVybiByYzsKLQl9CiAKIAlpZiAoIShzY2xwX2NvbmZfcmVnaXN0ZXIuc2NscF9zZW5kX21hc2sgJiBFVlRZUF9DT05GTUdNREFUQV9NQVNLKSkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HIFRBRyAibm8gY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NwaV9zeXMuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY3BpX3N5cy5jCmluZGV4IDlmMzc0NTYuLmQ4ODdiZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY3BpX3N5cy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY3BpX3N5cy5jCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIENQSV9MRU5HVEhfTkFNRSA4CiAjZGVmaW5lIENQSV9MRU5HVEhfTEVWRUwgMTYKIAorc3RhdGljIERFRklORV9NVVRFWChzY2xwX2NwaV9tdXRleCk7CisKIHN0cnVjdCBjcGlfZXZidWYgewogCXN0cnVjdCBldmJ1Zl9oZWFkZXIgaGVhZGVyOwogCXU4CWlkX2Zvcm1hdDsKQEAgLTEyNCwyMSArMTI2LDE1IEBACiAJaW50IHJlc3BvbnNlOwogCiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX2NwaV9ldmVudCk7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNwaTogY291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSJ0byBoYXJkd2FyZSBjb25zb2xlLlxuIik7CisJaWYgKHJjKQogCQlnb3RvIG91dDsKLQl9CiAJaWYgKCEoc2NscF9jcGlfZXZlbnQuc2NscF9yZWNlaXZlX21hc2sgJiBFVlRZUF9DVExQUk9HSURFTlRfTUFTSykpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY3BpOiBubyBjb250cm9sIHByb2dyYW0gIgotCQkJImlkZW50aWZpY2F0aW9uIHN1cHBvcnRcbiIpOwogCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dF91bnJlZ2lzdGVyOwogCX0KIAogCXJlcSA9IGNwaV9wcmVwYXJlX3JlcSgpOwogCWlmIChJU19FUlIocmVxKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJjcGk6IGNvdWxkIG5vdCBhbGxvY2F0ZSByZXF1ZXN0XG4iKTsKIAkJcmMgPSBQVFJfRVJSKHJlcSk7CiAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7CiAJfQpAQCAtMTQ4LDEwICsxNDQsOCBAQAogCiAJLyogQWRkIHJlcXVlc3QgdG8gc2NscCBxdWV1ZSAqLwogCXJjID0gc2NscF9hZGRfcmVxdWVzdChyZXEpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJjcGk6IGNvdWxkIG5vdCBzdGFydCByZXF1ZXN0XG4iKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0X2ZyZWVfcmVxOwotCX0KIAogCXdhaXRfZm9yX2NvbXBsZXRpb24oJmNvbXBsZXRpb24pOwogCkBAIC0yMjMsNyArMjE3LDEyIEBACiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fbmFtZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCXN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKLQlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3RlbV9uYW1lKTsKKwlpbnQgcmM7CisKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmMgPSBzbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgc3lzdGVtX25hbWUpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJldHVybiByYzsKIH0KIAogc3RhdGljIHNzaXplX3Qgc3lzdGVtX25hbWVfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCkBAIC0yMzcsNyArMjM2LDkgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV9uYW1lLCBidWYpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCiAJcmV0dXJuIGxlbjsKIH0KQEAgLTI0OCw3ICsyNDksMTIgQEAKIHN0YXRpYyBzc2l6ZV90IHN5c3BsZXhfbmFtZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCiB7Ci0JcmV0dXJuIHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiVzXG4iLCBzeXNwbGV4X25hbWUpOworCWludCByYzsKKworCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKKwlyYyA9IHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiVzXG4iLCBzeXNwbGV4X25hbWUpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJldHVybiByYzsKIH0KIAogc3RhdGljIHNzaXplX3Qgc3lzcGxleF9uYW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLApAQCAtMjYyLDcgKzI2OCw5IEBACiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJc2V0X3N0cmluZyhzeXNwbGV4X25hbWUsIGJ1Zik7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAKIAlyZXR1cm4gbGVuOwogfQpAQCAtMjczLDcgKzI4MSwxMiBAQAogc3RhdGljIHNzaXplX3Qgc3lzdGVtX3R5cGVfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCiB7Ci0JcmV0dXJuIHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiVzXG4iLCBzeXN0ZW1fdHlwZSk7CisJaW50IHJjOworCisJbXV0ZXhfbG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJjID0gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3RlbV90eXBlKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKKwlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IHN5c3RlbV90eXBlX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLApAQCAtMjg3LDcgKzMwMCw5IEBACiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJc2V0X3N0cmluZyhzeXN0ZW1fdHlwZSwgYnVmKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAogCXJldHVybiBsZW47CiB9CkBAIC0yOTgsOCArMzEzLDExIEBACiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fbGV2ZWxfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJCQkgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQogewotCXVuc2lnbmVkIGxvbmcgbG9uZyBsZXZlbCA9IHN5c3RlbV9sZXZlbDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgbGV2ZWw7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJbGV2ZWwgPSBzeXN0ZW1fbGV2ZWw7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJcmV0dXJuIHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiUjMDE4bGx4XG4iLCBsZXZlbCk7CiB9CiAKQEAgLTMyMCw4ICszMzgsOSBAQAogCWlmICgqZW5kcCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJc3lzdGVtX2xldmVsID0gbGV2ZWw7Ci0KKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAlyZXR1cm4gbGVuOwogfQogCkBAIC0zMzQsNyArMzUzLDkgQEAKIHsKIAlpbnQgcmM7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJcmMgPSBjcGlfcmVxKCk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKQEAgLTM3MywxMiArMzk0LDE2IEBACiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAJc2V0X3N0cmluZyhzeXN0ZW1fbmFtZSwgc3lzdGVtKTsKIAlzZXRfc3RyaW5nKHN5c3BsZXhfbmFtZSwgc3lzcGxleCk7CiAJc2V0X3N0cmluZyhzeXN0ZW1fdHlwZSwgdHlwZSk7CiAJc3lzdGVtX2xldmVsID0gbGV2ZWw7CiAKLQlyZXR1cm4gY3BpX3JlcSgpOworCXJjID0gY3BpX3JlcSgpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOworCisJcmV0dXJuIHJjOwogfQogRVhQT1JUX1NZTUJPTChzY2xwX2NwaV9zZXRfZGF0YSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcXVpZXNjZS5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9xdWllc2NlLmMKaW5kZXggNDVmZjI1ZS4uODRjMTkxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9xdWllc2NlLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9xdWllc2NlLmMKQEAgLTUxLDEzICs1MSw3IEBACiBzdGF0aWMgaW50IF9faW5pdAogc2NscF9xdWllc2NlX2luaXQodm9pZCkKIHsKLQlpbnQgcmM7Ci0KLQlyYyA9IHNjbHBfcmVnaXN0ZXIoJnNjbHBfcXVpZXNjZV9ldmVudCk7Ci0JaWYgKHJjKQotCQlwcmludGsoS0VSTl9XQVJOSU5HICJzY2xwOiBjb3VsZCBub3QgcmVnaXN0ZXIgcXVpZXNjZSBoYW5kbGVyICIKLQkJICAgICAgICIocmM9JWQpXG4iLCByYyk7Ci0JcmV0dXJuIHJjOworCXJldHVybiBzY2xwX3JlZ2lzdGVyKCZzY2xwX3F1aWVzY2VfZXZlbnQpOwogfQogCiBtb2R1bGVfaW5pdChzY2xwX3F1aWVzY2VfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3J3LmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3J3LmMKaW5kZXggZGEwOTc4MS4uNzEwYWY0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9ydy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYwpAQCAtMTksOCArMTksNiBAQAogI2luY2x1ZGUgInNjbHAuaCIKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAKLSNkZWZpbmUgU0NMUF9SV19QUklOVF9IRUFERVIgInNjbHAgbG93IGxldmVsIGRyaXZlcjogIgotCiAvKgogICogVGhlIHJvb20gZm9yIHRoZSBTQ0NCIChvbmx5IGZvciB3cml0aW5nKSBpcyBub3QgZXF1YWwgdG8gYSBwYWdlcyBzaXplCiAgKiAoYXMgaXQgaXMgc3BlY2lmaWVkIGFzIHRoZSBtYXhpbXVtIHNpemUgaW4gdGhlIFNDTFAgZG9jdW1lbnRhdGlvbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfc2RpYXMuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfc2RpYXMuYwppbmRleCAxYzA2NDk3Li44Yjg1NDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3NkaWFzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9zZGlhcy5jCkBAIC0yMzksMTAgKzIzOSw4IEBACiAJZGVidWdfcmVnaXN0ZXJfdmlldyhzZGlhc19kYmYsICZkZWJ1Z19zcHJpbnRmX3ZpZXcpOwogCWRlYnVnX3NldF9sZXZlbChzZGlhc19kYmYsIDYpOwogCXJjID0gc2NscF9yZWdpc3Rlcigmc2NscF9zZGlhc19yZWdpc3Rlcik7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygic2NscCByZWdpc3RlciBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJcmV0dXJuIHJjOwotCX0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzZGlhc193cSk7CiAJVFJBQ0UoImluaXQgZG9uZVxuIik7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuYwppbmRleCA0MGIxMTUyLi40MzRiYTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmMKQEAgLTEzLDcgKzEzLDYgQEAKICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KLSNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTI1LDggKzI0LDYgQEAKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAjaW5jbHVkZSAic2NscF90dHkuaCIKIAotI2RlZmluZSBTQ0xQX1RUWV9QUklOVF9IRUFERVIgInNjbHAgdHR5IGRyaXZlcjogIgotCiAvKgogICogc2l6ZSBvZiBhIGJ1ZmZlciB0aGF0IGNvbGxlY3RzIHNpbmdsZSBjaGFyYWN0ZXJzIGNvbWluZyBpbgogICogdmlhIHNjbHBfdHR5X3B1dF9jaGFyKCkKQEAgLTUwLDggKzQ3LDYgQEAKIHN0YXRpYyBzdHJ1Y3Qgc2NscF9idWZmZXIgKnNjbHBfdHR5YnVmOwogLyogVGltZXIgZm9yIGRlbGF5ZWQgb3V0cHV0IG9mIGNvbnNvbGUgbWVzc2FnZXMuICovCiBzdGF0aWMgc3RydWN0IHRpbWVyX2xpc3Qgc2NscF90dHlfdGltZXI7Ci0vKiBXYWl0cXVldWUgdG8gd2FpdCBmb3IgYnVmZmVycyB0byBnZXQgZW1wdHkuICovCi1zdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3Qgc2NscF90dHlfd2FpdHE7CiAKIHN0YXRpYyBzdHJ1Y3QgdHR5X3N0cnVjdCAqc2NscF90dHk7CiBzdGF0aWMgdW5zaWduZWQgY2hhciBzY2xwX3R0eV9jaGFyc1tTQ0xQX1RUWV9CVUZfU0laRV07CkBAIC01OSwxOSArNTQsMTEgQEAKIAogc3RydWN0IHR0eV9kcml2ZXIgKnNjbHBfdHR5X2RyaXZlcjsKIAotc3RhdGljIHN0cnVjdCBzY2xwX2lvY3RscyBzY2xwX2lvY3RsczsKLXN0YXRpYyBzdHJ1Y3Qgc2NscF9pb2N0bHMgc2NscF9pb2N0bHNfaW5pdCA9Ci17Ci0JOCwJCQkvKiAxIGhvci4gdGFiLiA9IDggc3BhY2VzICovCi0JMCwJCQkvKiBubyBlY2hvIG9mIGlucHV0IGJ5IHRoaXMgZHJpdmVyICovCi0JODAsCQkJLyogODAgY2hhcmFjdGVycy9saW5lICovCi0JMSwJCQkvKiB3cml0ZSBhZnRlciAxLzEwIHMgd2l0aG91dCBmaW5hbCBuZXcgbGluZSAqLwotCU1BWF9LTUVNX1BBR0VTLAkJLyogcXVpY2sgZml4OiBhdm9pZCBfX2FsbG9jX3BhZ2VzICovCi0JTUFYX0tNRU1fUEFHRVMsCQkvKiB0YWtlIDMyLzY0IHBhZ2VzIGZyb20ga2VybmVsIG1lbW9yeSwgKi8KLQkwLAkJCS8qIGRvIG5vdCBjb252ZXJ0IHRvIGxvd2VyIGNhc2UgKi8KLQkweDZjCQkJLyogdG8gc2VwcmF0ZSB1cHBlciBhbmQgbG93ZXIgY2FzZSAqLwotCQkJCS8qICgnJScgaW4gRUJDRElDKSAqLwotfTsKK3N0YXRpYyBpbnQgc2NscF90dHlfdG9sb3dlcjsKK3N0YXRpYyBpbnQgc2NscF90dHlfY29sdW1ucyA9IDgwOworCisjZGVmaW5lIFNQQUNFU19QRVJfVEFCIDgKKyNkZWZpbmUgQ0FTRV9ERUxJTUlURVIgMHg2YyAvKiB0byBzZXBhcmF0ZSB1cHBlciBhbmQgbG93ZXIgY2FzZSAoJSBpbiBFQkNESUMpICovCiAKIC8qIFRoaXMgcm91dGluZSBpcyBjYWxsZWQgd2hlbmV2ZXIgd2UgdHJ5IHRvIG9wZW4gYSBTQ0xQIHRlcm1pbmFsLiAqLwogc3RhdGljIGludApAQCAtOTIsMTM2ICs3OSw2IEBACiAJc2NscF90dHkgPSBOVUxMOwogfQogCi0vKiBleGVjdXRlIGNvbW1hbmRzIHRvIGNvbnRyb2wgdGhlIGkvbyBiZWhhdmlvdXIgb2YgdGhlIFNDTFAgdHR5IGF0IHJ1bnRpbWUgKi8KLXN0YXRpYyBpbnQKLXNjbHBfdHR5X2lvY3RsKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCBmaWxlICogZmlsZSwKLQkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgb2J1ZjsKLQlpbnQgY2hlY2s7Ci0JaW50IHJjOwotCi0JaWYgKHR0eS0+ZmxhZ3MgJiAoMSA8PCBUVFlfSU9fRVJST1IpKQotCQlyZXR1cm4gLUVJTzsKLQlyYyA9IDA7Ci0JY2hlY2sgPSAwOwotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBUSU9DU0NMUFNIVEFCOgotCQkvKiBzZXQgd2lkdGggb2YgaG9yaXpvbnRhbCB0YWIJKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmh0YWIsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJZWxzZQotCQkJY2hlY2sgPSAxOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0hUQUI6Ci0JCS8qIGdldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYgkqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuaHRhYiwgKHVuc2lnbmVkIHNob3J0IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0VDSE86Ci0JCS8qIGVuYWJsZS9kaXNhYmxlIGVjaG8gb2YgaW5wdXQgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmVjaG8sICh1bnNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0VDSE86Ci0JCS8qIElzIGVjaG8gb2YgaW5wdXQgZW5hYmxlZCA/ICAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuZWNobywgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBTQ09MUzoKLQkJLyogc2V0IG51bWJlciBvZiBjb2x1bW5zIGZvciBvdXRwdXQgICovCi0JCWlmIChnZXRfdXNlcihzY2xwX2lvY3Rscy5jb2x1bW5zLCAodW5zaWduZWQgc2hvcnQgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWVsc2UKLQkJCWNoZWNrID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdDT0xTOgotCQkvKiBnZXQgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIG91dHB1dCAgKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLmNvbHVtbnMsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNOTDoKLQkJLyogZW5hYmxlL2Rpc2FibGUgd3JpdGluZyB3aXRob3V0IGZpbmFsIG5ldyBsaW5lIGNoYXJhY3RlciAgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmZpbmFsX25sLCAoc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHTkw6Ci0JCS8qIElzIHdyaXRpbmcgd2l0aG91dCBmaW5hbCBuZXcgbGluZSBjaGFyYWN0ZXIgZW5hYmxlZCA/ICAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuZmluYWxfbmwsIChzaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNPQlVGOgotCQkvKgotCQkgKiBzZXQgdGhlIG1heGltdW0gYnVmZmVycyBzaXplIGZvciBvdXRwdXQsIHdpbGwgYmUgcm91bmRlZAotCQkgKiB1cCB0byBuZXh0IDRrQiBib3VuZGFyeSBhbmQgc3RvcmVkIGFzIG51bWJlciBvZiBTQ0NCcwotCQkgKiAoNGtCIEJ1ZmZlcnMpIGxpbWl0YXRpb246IDI1NiB4IDRrQgotCQkgKi8KLQkJaWYgKGdldF91c2VyKG9idWYsICh1bnNpZ25lZCBpbnQgX191c2VyICopIGFyZykgPT0gMCkgewotCQkJaWYgKG9idWYgJiAweEZGRikKLQkJCQlzY2xwX2lvY3Rscy5tYXhfc2NjYiA9IChvYnVmID4+IDEyKSArIDE7Ci0JCQllbHNlCi0JCQkJc2NscF9pb2N0bHMubWF4X3NjY2IgPSAob2J1ZiA+PiAxMik7Ci0JCX0gZWxzZQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR09CVUY6Ci0JCS8qIGdldCB0aGUgbWF4aW11bSBidWZmZXJzIHNpemUgZm9yIG91dHB1dCAgKi8KLQkJb2J1ZiA9IHNjbHBfaW9jdGxzLm1heF9zY2NiIDw8IDEyOwotCQlpZiAocHV0X3VzZXIob2J1ZiwgKHVuc2lnbmVkIGludCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdLQlVGOgotCQkvKiBnZXQgdGhlIG51bWJlciBvZiBidWZmZXJzIGdvdCBmcm9tIGtlcm5lbCBhdCBzdGFydHVwICovCi0JCWlmIChwdXRfdXNlcihzY2xwX2lvY3Rscy5rbWVtX3NjY2IsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNDQVNFOgotCQkvKiBlbmFibGUvZGlzYWJsZSBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSAqLwotCQlpZiAoZ2V0X3VzZXIoc2NscF9pb2N0bHMudG9sb3dlciwgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHQ0FTRToKLQkJLyogSXMgY29udmVyc2lvbiBmcm9tIHVwcGVyIHRvIGxvd2VyIGNhc2Ugb2YgaW5wdXQgZW5hYmxlZD8gKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLnRvbG93ZXIsICh1bnNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0RFTElNOgotCQkvKgotCQkgKiBzZXQgc3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCBmb3Igc2VwYXJhdGluZyB1cHBlciBhbmQKLQkJICogbG93ZXIgY2FzZSwgMHgwMCBkaXNhYmxlcyB0aGlzIGZlYXR1cmUKLQkJICovCi0JCWlmIChnZXRfdXNlcihzY2xwX2lvY3Rscy5kZWxpbSwgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHREVMSU06Ci0JCS8qCi0JCSAqIGdldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZAotCQkgKiBsb3dlciBjYXNlLCAweDAwIGRpc2FibGVzIHRoaXMgZmVhdHVyZQotCQkgKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLmRlbGltLCAodW5zaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNJTklUOgotCQkvKiBzZXQgaW5pdGlhbCAoZGVmYXVsdCkgc2NscCBpb2N0bHMgICovCi0JCXNjbHBfaW9jdGxzID0gc2NscF9pb2N0bHNfaW5pdDsKLQkJY2hlY2sgPSAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyYyA9IC1FTk9JT0NUTENNRDsKLQkJYnJlYWs7Ci0JfQotCWlmIChjaGVjaykgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCkgewotCQkJc2NscF9zZXRfaHRhYihzY2xwX3R0eWJ1Ziwgc2NscF9pb2N0bHMuaHRhYik7Ci0JCQlzY2xwX3NldF9jb2x1bW5zKHNjbHBfdHR5YnVmLCBzY2xwX2lvY3Rscy5jb2x1bW5zKTsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JfQotCXJldHVybiByYzsKLX0KLQogLyoKICAqIFRoaXMgcm91dGluZSByZXR1cm5zIHRoZSBudW1iZXJzIG9mIGNoYXJhY3RlcnMgdGhlIHR0eSBkcml2ZXIKICAqIHdpbGwgYWNjZXB0IGZvciBxdWV1aW5nIHRvIGJlIHdyaXR0ZW4uICBUaGlzIG51bWJlciBpcyBzdWJqZWN0CkBAIC0yNjgsNyArMTI1LDYgQEAKIAkJCQkJICAgIHN0cnVjdCBzY2xwX2J1ZmZlciwgbGlzdCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAl9IHdoaWxlIChidWZmZXIgJiYgc2NscF9lbWl0X2J1ZmZlcihidWZmZXIsIHNjbHBfdHR5YnVmX2NhbGxiYWNrKSk7Ci0Jd2FrZV91cCgmc2NscF90dHlfd2FpdHEpOwogCS8qIGNoZWNrIGlmIHRoZSB0dHkgbmVlZHMgYSB3YWtlIHVwIGNhbGwgKi8KIAlpZiAoc2NscF90dHkgIT0gTlVMTCkgewogCQl0dHlfd2FrZXVwKHNjbHBfdHR5KTsKQEAgLTMxNiwzNyArMTcyLDM3IEBACiAvKgogICogV3JpdGUgYSBzdHJpbmcgdG8gdGhlIHNjbHAgdHR5LgogICovCi1zdGF0aWMgdm9pZAotc2NscF90dHlfd3JpdGVfc3RyaW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IGNvdW50KQorc3RhdGljIGludCBzY2xwX3R0eV93cml0ZV9zdHJpbmcoY29uc3QgdW5zaWduZWQgY2hhciAqc3RyLCBpbnQgY291bnQsIGludCBtYXlfZmFpbCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXZvaWQgKnBhZ2U7CiAJaW50IHdyaXR0ZW47CisJaW50IG92ZXJhbGxfd3JpdHRlbjsKIAlzdHJ1Y3Qgc2NscF9idWZmZXIgKmJ1ZjsKIAogCWlmIChjb3VudCA8PSAwKQotCQlyZXR1cm47CisJCXJldHVybiAwOworCW92ZXJhbGxfd3JpdHRlbiA9IDA7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAlkbyB7CiAJCS8qIENyZWF0ZSBhIHNjbHAgb3V0cHV0IGJ1ZmZlciBpZiBub25lIGV4aXN0cyB5ZXQgKi8KIAkJaWYgKHNjbHBfdHR5YnVmID09IE5VTEwpIHsKIAkJCXdoaWxlIChsaXN0X2VtcHR5KCZzY2xwX3R0eV9wYWdlcykpIHsKIAkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JCQkJaWYgKGluX2ludGVycnVwdCgpKQotCQkJCQlzY2xwX3N5bmNfd2FpdCgpOworCQkJCWlmIChtYXlfZmFpbCkKKwkJCQkJZ290byBvdXQ7CiAJCQkJZWxzZQotCQkJCQl3YWl0X2V2ZW50KHNjbHBfdHR5X3dhaXRxLAotCQkJCQkJIWxpc3RfZW1wdHkoJnNjbHBfdHR5X3BhZ2VzKSk7CisJCQkJCXNjbHBfc3luY193YWl0KCk7CiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAkJCX0KIAkJCXBhZ2UgPSBzY2xwX3R0eV9wYWdlcy5uZXh0OwogCQkJbGlzdF9kZWwoKHN0cnVjdCBsaXN0X2hlYWQgKikgcGFnZSk7Ci0JCQlzY2xwX3R0eWJ1ZiA9IHNjbHBfbWFrZV9idWZmZXIocGFnZSwKLQkJCQkJCSAgICAgICBzY2xwX2lvY3Rscy5jb2x1bW5zLAotCQkJCQkJICAgICAgIHNjbHBfaW9jdGxzLmh0YWIpOworCQkJc2NscF90dHlidWYgPSBzY2xwX21ha2VfYnVmZmVyKHBhZ2UsIHNjbHBfdHR5X2NvbHVtbnMsCisJCQkJCQkgICAgICAgU1BBQ0VTX1BFUl9UQUIpOwogCQl9CiAJCS8qIHRyeSB0byB3cml0ZSB0aGUgc3RyaW5nIHRvIHRoZSBjdXJyZW50IG91dHB1dCBidWZmZXIgKi8KIAkJd3JpdHRlbiA9IHNjbHBfd3JpdGUoc2NscF90dHlidWYsIHN0ciwgY291bnQpOworCQlvdmVyYWxsX3dyaXR0ZW4gKz0gd3JpdHRlbjsKIAkJaWYgKHdyaXR0ZW4gPT0gY291bnQpCiAJCQlicmVhazsKIAkJLyoKQEAgLTM2MywyNyArMjE5LDE3IEBACiAJCWNvdW50IC09IHdyaXR0ZW47CiAJfSB3aGlsZSAoY291bnQgPiAwKTsKIAkvKiBTZXR1cCB0aW1lciB0byBvdXRwdXQgY3VycmVudCBjb25zb2xlIGJ1ZmZlciBhZnRlciAxLzEwIHNlY29uZCAqLwotCWlmIChzY2xwX2lvY3Rscy5maW5hbF9ubCkgewotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCAmJgotCQkgICAgc2NscF9jaGFyc19pbl9idWZmZXIoc2NscF90dHlidWYpICE9IDAgJiYKLQkJICAgICF0aW1lcl9wZW5kaW5nKCZzY2xwX3R0eV90aW1lcikpIHsKLQkJCWluaXRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKLQkJCXNjbHBfdHR5X3RpbWVyLmZ1bmN0aW9uID0gc2NscF90dHlfdGltZW91dDsKLQkJCXNjbHBfdHR5X3RpbWVyLmRhdGEgPSAwVUw7Ci0JCQlzY2xwX3R0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaLzEwOwotCQkJYWRkX3RpbWVyKCZzY2xwX3R0eV90aW1lcik7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCAmJgotCQkgICAgc2NscF9jaGFyc19pbl9idWZmZXIoc2NscF90dHlidWYpICE9IDApIHsKLQkJCWJ1ZiA9IHNjbHBfdHR5YnVmOwotCQkJc2NscF90dHlidWYgPSBOVUxMOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQkJX19zY2xwX3R0eWJ1Zl9lbWl0KGJ1Zik7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQl9CisJaWYgKHNjbHBfdHR5YnVmICYmIHNjbHBfY2hhcnNfaW5fYnVmZmVyKHNjbHBfdHR5YnVmKSAmJgorCSAgICAhdGltZXJfcGVuZGluZygmc2NscF90dHlfdGltZXIpKSB7CisJCWluaXRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKKwkJc2NscF90dHlfdGltZXIuZnVuY3Rpb24gPSBzY2xwX3R0eV90aW1lb3V0OworCQlzY2xwX3R0eV90aW1lci5kYXRhID0gMFVMOworCQlzY2xwX3R0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaLzEwOworCQlhZGRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOworb3V0OgorCXJldHVybiBvdmVyYWxsX3dyaXR0ZW47CiB9CiAKIC8qCkBAIC0zOTUsMTEgKzI0MSwxMCBAQAogc2NscF90dHlfd3JpdGUoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCiB7CiAJaWYgKHNjbHBfdHR5X2NoYXJzX2NvdW50ID4gMCkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAl9Ci0Jc2NscF90dHlfd3JpdGVfc3RyaW5nKGJ1ZiwgY291bnQpOwotCXJldHVybiBjb3VudDsKKwlyZXR1cm4gc2NscF90dHlfd3JpdGVfc3RyaW5nKGJ1ZiwgY291bnQsIDEpOwogfQogCiAvKgpAQCAtNDE3LDkgKzI2MiwxMCBAQAogewogCXNjbHBfdHR5X2NoYXJzW3NjbHBfdHR5X2NoYXJzX2NvdW50KytdID0gY2g7CiAJaWYgKGNoID09ICdcbicgfHwgc2NscF90dHlfY2hhcnNfY291bnQgPj0gU0NMUF9UVFlfQlVGX1NJWkUpIHsKLQkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCk7CisJCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQsIDApOwogCQlzY2xwX3R0eV9jaGFyc19jb3VudCA9IDA7Ci0JfSByZXR1cm4gMTsKKwl9CisJcmV0dXJuIDE7CiB9CiAKIC8qCkBAIC00MzAsNyArMjc2LDcgQEAKIHNjbHBfdHR5X2ZsdXNoX2NoYXJzKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiB7CiAJaWYgKHNjbHBfdHR5X2NoYXJzX2NvdW50ID4gMCkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAl9CiB9CkBAIC00NjksNyArMzE1LDcgQEAKIHNjbHBfdHR5X2ZsdXNoX2J1ZmZlcihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogewogCWlmIChzY2xwX3R0eV9jaGFyc19jb3VudCA+IDApIHsKLQkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCk7CisJCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQsIDApOwogCQlzY2xwX3R0eV9jaGFyc19jb3VudCA9IDA7CiAJfQogfQpAQCAtNTE3LDkgKzM2Myw3IEBACiAgKiBtb2RpZml5IG9yaWdpbmFsIHN0cmluZywKICAqIHJldHVybnMgbGVuZ3RoIG9mIHJlc3VsdGluZyBzdHJpbmcKICAqLwotc3RhdGljIGludAotc2NscF9zd2l0Y2hfY2FzZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQsCi0JCSAgdW5zaWduZWQgY2hhciBkZWxpbSwgaW50IHRvbG93ZXIpCitzdGF0aWMgaW50IHNjbHBfc3dpdGNoX2Nhc2VzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQogewogCXVuc2lnbmVkIGNoYXIgKmlwLCAqb3A7CiAJaW50IHRvZ2dsZTsKQEAgLTUyOSw5ICszNzMsOSBAQAogCWlwID0gb3AgPSBidWY7CiAJd2hpbGUgKGNvdW50LS0gPiAwKSB7CiAJCS8qIGNvbXBhcmUgd2l0aCBzcGVjaWFsIGNoYXJhY3RlciAqLwotCQlpZiAoKmlwID09IGRlbGltKSB7CisJCWlmICgqaXAgPT0gQ0FTRV9ERUxJTUlURVIpIHsKIAkJCS8qIGZvbGxvd2VkIGJ5IGFub3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXI/ICovCi0JCQlpZiAoY291bnQgJiYgaXBbMV0gPT0gZGVsaW0pIHsKKwkJCWlmIChjb3VudCAmJiBpcFsxXSA9PSBDQVNFX0RFTElNSVRFUikgewogCQkJCS8qCiAJCQkJICogLi4uIHRoZW4gcHV0IGEgc2luZ2xlIGNvcHkgb2YgdGhlIHNwZWNpYWwKIAkJCQkgKiBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCBzdHJpbmcKQEAgLTU1MCw3ICszOTQsNyBAQAogCQkJLyogbm90IHRoZSBzcGVjaWFsIGNoYXJhY3RlciAqLwogCQkJaWYgKHRvZ2dsZSkKIAkJCQkvKiBidXQgY2FzZSBzd2l0Y2hpbmcgaXMgb24gKi8KLQkJCQlpZiAodG9sb3dlcikKKwkJCQlpZiAoc2NscF90dHlfdG9sb3dlcikKIAkJCQkJLyogc3dpdGNoIHRvIHVwcGVyY2FzZSAqLwogCQkJCQkqb3ArKyA9IF9lYmNfdG91cHBlclsoaW50KSAqaXArK107CiAJCQkJZWxzZQpAQCAtNTcwLDMwICs0MTQsMTIgQEAKIAlpbnQgY291bnQ7CiAKIAljb3VudCA9IGVuZCAtIHN0YXJ0OwotCS8qCi0JICogaWYgc2V0IGluIGlvY3RsIGNvbnZlcnQgRUJDRElDIHRvIGxvd2VyIGNhc2UKLQkgKiAobW9kaWZ5IG9yaWdpbmFsIGlucHV0IGluIFNDQ0IpCi0JICovCi0JaWYgKHNjbHBfaW9jdGxzLnRvbG93ZXIpCisJaWYgKHNjbHBfdHR5X3RvbG93ZXIpCiAJCUVCQ19UT0xPV0VSKHN0YXJ0LCBjb3VudCk7Ci0KLQkvKgotCSAqIGlmIHNldCBpbiBpb2N0bCBmaW5kIG91dCBjaGFyYWN0ZXJzIGluIGxvd2VyIG9yIHVwcGVyIGNhc2UKLQkgKiAoZGVwZW5kcyBvbiBjdXJyZW50IGNhc2UpIHNlcGFyYXRlZCBieSBhIHNwZWNpYWwgY2hhcmFjdGVyLAotCSAqIHdvcmtzIG9uIEVCQ0RJQwotCSAqLwotCWlmIChzY2xwX2lvY3Rscy5kZWxpbSkKLQkJY291bnQgPSBzY2xwX3N3aXRjaF9jYXNlcyhzdGFydCwgY291bnQsCi0JCQkJCSAgc2NscF9pb2N0bHMuZGVsaW0sCi0JCQkJCSAgc2NscF9pb2N0bHMudG9sb3dlcik7Ci0KKwljb3VudCA9IHNjbHBfc3dpdGNoX2Nhc2VzKHN0YXJ0LCBjb3VudCk7CiAJLyogY29udmVydCBFQkNESUMgdG8gQVNDSUkgKG1vZGlmeSBvcmlnaW5hbCBpbnB1dCBpbiBTQ0NCKSAqLwogCXNjbHBfZWJjYXNjX3N0cihzdGFydCwgY291bnQpOwogCi0JLyogaWYgc2V0IGluIGlvY3RsIHdyaXRlIG9wZXJhdG9ycyBpbnB1dCB0byBjb25zb2xlICAqLwotCWlmIChzY2xwX2lvY3Rscy5lY2hvKQotCQlzY2xwX3R0eV93cml0ZShzY2xwX3R0eSwgc3RhcnQsIGNvdW50KTsKLQogCS8qIHRyYW5zZmVyIGlucHV0IHRvIGhpZ2ggbGV2ZWwgZHJpdmVyICovCiAJc2NscF90dHlfaW5wdXQoc3RhcnQsIGNvdW50KTsKIH0KQEAgLTcxNyw3ICs1NDMsNiBAQAogCS53cml0ZV9yb29tID0gc2NscF90dHlfd3JpdGVfcm9vbSwKIAkuY2hhcnNfaW5fYnVmZmVyID0gc2NscF90dHlfY2hhcnNfaW5fYnVmZmVyLAogCS5mbHVzaF9idWZmZXIgPSBzY2xwX3R0eV9mbHVzaF9idWZmZXIsCi0JLmlvY3RsID0gc2NscF90dHlfaW9jdGwsCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdApAQCAtNzM2LDkgKzU2MSw2IEBACiAKIAlyYyA9IHNjbHBfcndfaW5pdCgpOwogCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgU0NMUF9UVFlfUFJJTlRfSEVBREVSCi0JCSAgICAgICAiY291bGQgbm90IHJlZ2lzdGVyIHR0eSAtICIKLQkJICAgICAgICJzY2xwX3J3X2luaXQgcmV0dXJuZWQgJWRcbiIsIHJjKTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJjOwogCX0KQEAgLTc1NCw3ICs1NzYsNiBAQAogCX0KIAlJTklUX0xJU1RfSEVBRCgmc2NscF90dHlfb3V0cXVldWUpOwogCXNwaW5fbG9ja19pbml0KCZzY2xwX3R0eV9sb2NrKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzY2xwX3R0eV93YWl0cSk7CiAJaW5pdF90aW1lcigmc2NscF90dHlfdGltZXIpOwogCXNjbHBfdHR5YnVmID0gTlVMTDsKIAlzY2xwX3R0eV9idWZmZXJfY291bnQgPSAwOwpAQCAtNzYzLDExICs1ODQsMTAgQEAKIAkJICogc2F2ZSA0IGNoYXJhY3RlcnMgZm9yIHRoZSBDUFUgbnVtYmVyCiAJCSAqIHdyaXR0ZW4gYXQgc3RhcnQgb2YgZWFjaCBsaW5lIGJ5IFZNL0NQCiAJCSAqLwotCQlzY2xwX2lvY3Rsc19pbml0LmNvbHVtbnMgPSA3NjsKKwkJc2NscF90dHlfY29sdW1ucyA9IDc2OwogCQkvKiBjYXNlIGlucHV0IGxpbmVzIHRvIGxvd2VyY2FzZSAqLwotCQlzY2xwX2lvY3Rsc19pbml0LnRvbG93ZXIgPSAxOworCQlzY2xwX3R0eV90b2xvd2VyID0gMTsKIAl9Ci0Jc2NscF9pb2N0bHMgPSBzY2xwX2lvY3Rsc19pbml0OwogCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAlzY2xwX3R0eSA9IE5VTEw7CiAKQEAgLTc5Miw5ICs2MTIsNiBAQAogCXR0eV9zZXRfb3BlcmF0aW9ucyhkcml2ZXIsICZzY2xwX29wcyk7CiAJcmMgPSB0dHlfcmVnaXN0ZXJfZHJpdmVyKGRyaXZlcik7CiAJaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBTQ0xQX1RUWV9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInR0eV9yZWdpc3Rlcl9kcml2ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJjOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmggYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5oCmluZGV4IDBjZTJjMWYuLjRiOTY1YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmgKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuaApAQCAtMTEsNjEgKzExLDggQEAKICNpZm5kZWYgX19TQ0xQX1RUWV9IX18KICNkZWZpbmUgX19TQ0xQX1RUWV9IX18KIAotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KIAotLyogVGhpcyBpcyB0aGUgdHlwZSBvZiBkYXRhIHN0cnVjdHVyZXMgc3RvcmluZyBzY2xwIGlvY3RsIHNldHRpbmcuICovCi1zdHJ1Y3Qgc2NscF9pb2N0bHMgewotCXVuc2lnbmVkIHNob3J0IGh0YWI7Ci0JdW5zaWduZWQgY2hhciBlY2hvOwotCXVuc2lnbmVkIHNob3J0IGNvbHVtbnM7Ci0JdW5zaWduZWQgY2hhciBmaW5hbF9ubDsKLQl1bnNpZ25lZCBzaG9ydCBtYXhfc2NjYjsKLQl1bnNpZ25lZCBzaG9ydCBrbWVtX3NjY2I7CS8qIGNhbid0IGJlIG1vZGlmaWVkIGF0IHJ1biB0aW1lICovCi0JdW5zaWduZWQgY2hhciB0b2xvd2VyOwotCXVuc2lnbmVkIGNoYXIgZGVsaW07Ci19OwotCi0vKiBtdXN0IGJlIHVuaXF1ZSwgRklYTUU6IG11c3QgYmUgYWRkZWQgaW4gRG9jdW1lbnRhdGlvbi9pb2N0bF9udW1iZXIudHh0ICovCi0jZGVmaW5lIFNDTFBfSU9DVExfTEVUVEVSICdCJwotCi0vKiBzZXQgd2lkdGggb2YgaG9yaXpvbnRhbCB0YWJ1bGF0b3IgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSFRBQglfSU9XKFNDTFBfSU9DVExfTEVUVEVSLCAwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIGVuYWJsZS9kaXNhYmxlIGVjaG8gb2YgaW5wdXQgKGluZGVwZW5kZW50IGZyb20gbGluZSBkaXNjaXBsaW5lKSAqLwotI2RlZmluZSBUSU9DU0NMUFNFQ0hPCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDEsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgbnVtYmVyIG9mIGNvbHVtcyBmb3Igb3V0cHV0ICovCi0jZGVmaW5lIFRJT0NTQ0xQU0NPTFMJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBlbmFibGUvZGlzYWJsZSB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyICovCi0jZGVmaW5lIFRJT0NTQ0xQU05MCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDQsIHNpZ25lZCBjaGFyKQotLyogc2V0IHRoZSBtYXhpbXVtIGJ1ZmZlcnMgc2l6ZSBmb3Igb3V0cHV0LCByb3VuZGVkIHVwIHRvIG5leHQgNGtCIGJvdW5kYXJ5ICovCi0jZGVmaW5lIFRJT0NTQ0xQU09CVUYJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBzZXQgaW5pdGlhbCAoZGVmYXVsdCkgc2NscCBpb2N0bHMgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSU5JVAlfSU8oU0NMUF9JT0NUTF9MRVRURVIsIDYpCi0vKiBlbmFibGUvZGlzYWJsZSBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCAqLwotI2RlZmluZSBUSU9DU0NMUFNDQVNFCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDcsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgc3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCBmb3Igc2VwYXJhdGluZyB1cHBlciBhbmQgbG93ZXIgY2FzZSwgKi8KLS8qIDB4MDAgZGlzYWJsZXMgdGhpcyBmZWF0dXJlICovCi0jZGVmaW5lIFRJT0NTQ0xQU0RFTElNCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDksIHVuc2lnbmVkIGNoYXIpCi0KLS8qIGdldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYnVsYXRvciAqLwotI2RlZmluZSBUSU9DU0NMUEdIVEFCCV9JT1IoU0NMUF9JT0NUTF9MRVRURVIsIDEwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIElzIGVjaG8gb2YgaW5wdXQgZW5hYmxlZCA/IChpbmRlcGVuZGVudCBmcm9tIGxpbmUgZGlzY2lwbGluZSkgKi8KLSNkZWZpbmUgVElPQ1NDTFBHRUNITwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMSwgdW5zaWduZWQgY2hhcikKLS8qIGdldCBudW1iZXIgb2YgY29sdW1zIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ09MUwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyIGVuYWJsZWQgPyAqLwotI2RlZmluZSBUSU9DU0NMUEdOTAlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNCwgc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG1heGltdW0gYnVmZmVycyBzaXplIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHT0JVRglfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCBlbmFibGVkID8gKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ0FTRQlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNywgdW5zaWduZWQgY2hhcikKLS8qIGdldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZCBsb3dlciBjYXNlLCAqLwotLyogMHgwMCBkaXNhYmxlcyB0aGlzIGZlYXR1cmUgKi8KLSNkZWZpbmUgVElPQ1NDTFBHREVMSU0JX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMTksIHVuc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG51bWJlciBvZiBidWZmZXJzL3BhZ2VzIGdvdCBmcm9tIGtlcm5lbCBhdCBzdGFydHVwICovCi0jZGVmaW5lIFRJT0NTQ0xQR0tCVUYJX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMjAsIHVuc2lnbmVkIHNob3J0KQotCiBleHRlcm4gc3RydWN0IHR0eV9kcml2ZXIgKnNjbHBfdHR5X2RyaXZlcjsKIAogI2VuZGlmCS8qIF9fU0NMUF9UVFlfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMKaW5kZXggNjI1NzZhZi4uYWQ1MTczOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF92dDIyMC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdnQyMjAuYwpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAic2NscC5oIgogCi0jZGVmaW5lIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSIAkic2NscCB2dDIyMCB0dHkgZHJpdmVyOiAiCiAjZGVmaW5lIFNDTFBfVlQyMjBfTUFKT1IJCVRUWV9NQUpPUgogI2RlZmluZSBTQ0xQX1ZUMjIwX01JTk9SCQk2NQogI2RlZmluZSBTQ0xQX1ZUMjIwX0RSSVZFUl9OQU1FCQkic2NscF92dDIyMCIKQEAgLTgyLDggKzgxLDggQEAKIC8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGN1cnJlbnQgcmVxdWVzdCBidWZmZXIgKi8KIHN0YXRpYyBpbnQgc2NscF92dDIyMF9idWZmZXJlZF9jaGFyczsKIAotLyogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCAqLwotc3RhdGljIGludCBzY2xwX3Z0MjIwX2luaXRpYWxpemVkID0gMDsKKy8qIENvdW50ZXIgY29udHJvbGxpbmcgY29yZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24uICovCitzdGF0aWMgaW50IF9faW5pdGRhdGEgc2NscF92dDIyMF9pbml0X2NvdW50OwogCiAvKiBGbGFnIGluZGljYXRpbmcgdGhhdCBzY2xwX3Z0MjIwX2N1cnJlbnRfcmVxdWVzdCBzaG91bGQgcmVhbGx5CiAgKiBoYXZlIGJlZW4gYWxyZWFkeSBxdWV1ZWQgYnV0IHdhc24ndCBiZWNhdXNlIHRoZSBTQ0xQIHdhcyBwcm9jZXNzaW5nCkBAIC02MDksMTAgKzYwOCw4IEBACiAJc2NscF92dDIyMF9lbWl0X2N1cnJlbnQoKTsKIH0KIAotLyoKLSAqIEluaXRpYWxpemUgYWxsIHJlbGV2YW50IGNvbXBvbmVudHMgYW5kIHJlZ2lzdGVyIGRyaXZlciB3aXRoIHN5c3RlbS4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IF9fc2NscF92dDIyMF9jbGVhbnVwKHZvaWQpCisvKiBSZWxlYXNlIGFsbG9jYXRlZCBwYWdlcy4gKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBfX3NjbHBfdnQyMjBfZnJlZV9wYWdlcyh2b2lkKQogewogCXN0cnVjdCBsaXN0X2hlYWQgKnBhZ2UsICpwOwogCkBAIC02MjMsMjEgKzYyMCwzMCBAQAogCQllbHNlCiAJCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHBhZ2UsIFBBR0VfU0laRSk7CiAJfQotCWlmICghbGlzdF9lbXB0eSgmc2NscF92dDIyMF9yZWdpc3Rlci5saXN0KSkKLQkJc2NscF91bnJlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKLQlzY2xwX3Z0MjIwX2luaXRpYWxpemVkID0gMDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgX19zY2xwX3Z0MjIwX2luaXQodm9pZCkKKy8qIFJlbGVhc2UgbWVtb3J5IGFuZCB1bnJlZ2lzdGVyIGZyb20gc2NscCBjb3JlLiBDb250cm9sbGVkIGJ5IGluaXQgY291bnRpbmcgLQorICogb25seSB0aGUgbGFzdCBpbnZva2VyIHdpbGwgYWN0dWFsbHkgcGVyZm9ybSB0aGVzZSBhY3Rpb25zLiAqLworc3RhdGljIHZvaWQgX19pbml0IF9fc2NscF92dDIyMF9jbGVhbnVwKHZvaWQpCit7CisJc2NscF92dDIyMF9pbml0X2NvdW50LS07CisJaWYgKHNjbHBfdnQyMjBfaW5pdF9jb3VudCAhPSAwKQorCQlyZXR1cm47CisJc2NscF91bnJlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKKwlfX3NjbHBfdnQyMjBfZnJlZV9wYWdlcygpOworfQorCisvKiBBbGxvY2F0ZSBidWZmZXIgcGFnZXMgYW5kIHJlZ2lzdGVyIHdpdGggc2NscCBjb3JlLiBDb250cm9sbGVkIGJ5IGluaXQKKyAqIGNvdW50aW5nIC0gb25seSB0aGUgZmlyc3QgaW52b2tlciB3aWxsIGFjdHVhbGx5IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4gKi8KK3N0YXRpYyBpbnQgX19pbml0IF9fc2NscF92dDIyMF9pbml0KGludCBudW1fcGFnZXMpCiB7CiAJdm9pZCAqcGFnZTsKIAlpbnQgaTsKLQlpbnQgbnVtX3BhZ2VzOwogCWludCByYzsKIAotCWlmIChzY2xwX3Z0MjIwX2luaXRpYWxpemVkKQorCXNjbHBfdnQyMjBfaW5pdF9jb3VudCsrOworCWlmIChzY2xwX3Z0MjIwX2luaXRfY291bnQgIT0gMSkKIAkJcmV0dXJuIDA7Ci0Jc2NscF92dDIyMF9pbml0aWFsaXplZCA9IDE7CiAJc3Bpbl9sb2NrX2luaXQoJnNjbHBfdnQyMjBfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfdnQyMjBfZW1wdHkpOwogCUlOSVRfTElTVF9IRUFEKCZzY2xwX3Z0MjIwX291dHF1ZXVlKTsKQEAgLTY0OSwyNCArNjU1LDIyIEBACiAJc2NscF92dDIyMF9mbHVzaF9sYXRlciA9IDA7CiAKIAkvKiBBbGxvY2F0ZSBwYWdlcyBmb3Igb3V0cHV0IGJ1ZmZlcmluZyAqLwotCW51bV9wYWdlcyA9IHNsYWJfaXNfYXZhaWxhYmxlKCkgPyBNQVhfS01FTV9QQUdFUyA6IE1BWF9DT05TT0xFX1BBR0VTOwogCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7IGkrKykgewogCQlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKIAkJCXBhZ2UgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCQllbHNlCiAJCQlwYWdlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKIAkJaWYgKCFwYWdlKSB7Ci0JCQlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyYyA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKIAkJfQogCQlsaXN0X2FkZF90YWlsKChzdHJ1Y3QgbGlzdF9oZWFkICopIHBhZ2UsICZzY2xwX3Z0MjIwX2VtcHR5KTsKIAl9CiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKK291dDoKIAlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSCi0JCSAgICAgICAiY291bGQgbm90IHJlZ2lzdGVyIHZ0MjIwIC0gIgotCQkgICAgICAgInNjbHBfcmVnaXN0ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwkJX19zY2xwX3Z0MjIwX2ZyZWVfcGFnZXMoKTsKKwkJc2NscF92dDIyMF9pbml0X2NvdW50LS07CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTY4OSwxNSArNjkzLDEzIEBACiB7CiAJc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlcjsKIAlpbnQgcmM7Ci0JaW50IGNsZWFudXA7CiAKIAkvKiBOb3RlOiB3ZSdyZSBub3QgdGVzdGluZyBmb3IgQ09OU09MRV9JU19TQ0xQIGhlcmUgdG8gcHJlc2VydmUKIAkgKiBzeW1tZXRyeSBiZXR3ZWVuIFZNIGFuZCBMUEFSIHN5c3RlbXMgcmVnYXJkaW5nIHR0eVMxLiAqLwogCWRyaXZlciA9IGFsbG9jX3R0eV9kcml2ZXIoMSk7CiAJaWYgKCFkcml2ZXIpCiAJCXJldHVybiAtRU5PTUVNOwotCWNsZWFudXAgPSAhc2NscF92dDIyMF9pbml0aWFsaXplZDsKLQlyYyA9IF9fc2NscF92dDIyMF9pbml0KCk7CisJcmMgPSBfX3NjbHBfdnQyMjBfaW5pdChNQVhfS01FTV9QQUdFUyk7CiAJaWYgKHJjKQogCQlnb3RvIG91dF9kcml2ZXI7CiAKQEAgLTcxMywxOCArNzE1LDEzIEBACiAJdHR5X3NldF9vcGVyYXRpb25zKGRyaXZlciwgJnNjbHBfdnQyMjBfb3BzKTsKIAogCXJjID0gdHR5X3JlZ2lzdGVyX2RyaXZlcihkcml2ZXIpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgU0NMUF9WVDIyMF9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInR0eV9yZWdpc3Rlcl9kcml2ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0X2luaXQ7Ci0JfQogCXNjbHBfdnQyMjBfZHJpdmVyID0gZHJpdmVyOwogCXJldHVybiAwOwogCiBvdXRfaW5pdDoKLQlpZiAoY2xlYW51cCkKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwogb3V0X2RyaXZlcjoKIAlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCXJldHVybiByYzsKQEAgLTc3NSw3ICs3NzIsNyBAQAogCiAJaWYgKCFDT05TT0xFX0lTX1NDTFApCiAJCXJldHVybiAwOwotCXJjID0gX19zY2xwX3Z0MjIwX2luaXQoKTsKKwlyYyA9IF9fc2NscF92dDIyMF9pbml0KE1BWF9DT05TT0xFX1BBR0VTKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAkvKiBBdHRhY2ggbGludXggY29uc29sZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNHh4LmMgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM0eHguYwppbmRleCA4NzRhZGYzLi4yMmNhMzQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM0eHguYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM0eHguYwpAQCAtMTk2LDcgKzE5Niw3IEBACiBzdGF0aWMgaW50CiB0YXBlXzM0eHhfdW5zb2xpY2l0ZWRfaXJxKHN0cnVjdCB0YXBlX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgaXJiICppcmIpCiB7Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSAweDg1IC8qIFJFQURZICovKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4NSkgeyAvKiBSRUFEWSAqLwogCQkvKiBBIG1lZGl1bSB3YXMgaW5zZXJ0ZWQgaW4gdGhlIGRyaXZlLiAqLwogCQlEQkZfRVZFTlQoNiwgInh1dWQgbWVkXG4iKTsKIAkJdGFwZV8zNHh4X2RlbGV0ZV9zYmlkX2Zyb20oZGV2aWNlLCAwKTsKQEAgLTg0NCwyMiArODQ0LDIyIEBACiAJaWYgKHJlcXVlc3QgPT0gTlVMTCkKIAkJcmV0dXJuIHRhcGVfMzR4eF91bnNvbGljaXRlZF9pcnEoZGV2aWNlLCBpcmIpOwogCi0JaWYgKChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgotCSAgICAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgJiYKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpICYmCiAJICAgIChyZXF1ZXN0LT5vcCA9PSBUT19XUkkpKSB7CiAJCS8qIFdyaXRlIGF0IGVuZCBvZiB2b2x1bWUgKi8KIAkJUFJJTlRfSU5GTygiRW5kIG9mIHZvbHVtZVxuIik7IC8qIFhYWCAqLwogCQlyZXR1cm4gdGFwZV8zNHh4X2VycF9mYWlsZWQocmVxdWVzdCwgLUVOT1NQQyk7CiAJfQogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQlyZXR1cm4gdGFwZV8zNHh4X3VuaXRfY2hlY2soZGV2aWNlLCByZXF1ZXN0LCBpcmIpOwogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKIAkJLyoKIAkJICogQSB1bml0IGV4Y2VwdGlvbiBvY2N1cnMgb24gc2tpcHBpbmcgb3ZlciBhIHRhcGVtYXJrIGJsb2NrLgogCQkgKi8KLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSB7CiAJCQlpZiAocmVxdWVzdC0+b3AgPT0gVE9fQlNCIHx8IHJlcXVlc3QtPm9wID09IFRPX0ZTQikKIAkJCQlyZXF1ZXN0LT5yZXNjbnQrKzsKIAkJCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzU5MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNTkwLmMKaW5kZXggODI0NmVmMy4uODM5OTg3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNTkwLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNTkwLmMKQEAgLTgzNywxMyArODM3LDEzIEBACiBzdGF0aWMgaW50CiB0YXBlXzM1OTBfdW5zb2xpY2l0ZWRfaXJxKHN0cnVjdCB0YXBlX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgaXJiICppcmIpCiB7Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSBERVZfU1RBVF9DSE5fRU5EKQorCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IERFVl9TVEFUX0NITl9FTkQpCiAJCS8qIFByb2JhYmx5IHJlc3VsdCBvZiBoYWx0IHNzY2ggKi8KIAkJcmV0dXJuIFRBUEVfSU9fUEVORElORzsKLQllbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgPT0gMHg4NSkKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IDB4ODUpCiAJCS8qIERldmljZSBSZWFkeSAqLwogCQlEQkZfRVZFTlQoMywgInVuc29sLmlycSEgdGFwZSByZWFkeTogJTA4eFxuIiwgZGV2aWNlLT5jZGV2X2lkKTsKLQllbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CiAJCXRhcGVfMzU5MF9zY2hlZHVsZV93b3JrKGRldmljZSwgVE9fUkVBRF9BVFRNU0cpOwogCX0gZWxzZSB7CiAJCURCRl9FVkVOVCgzLCAidW5zb2wuaXJxISBkZXYgZW5kOiAlMDh4XG4iLCBkZXZpY2UtPmNkZXZfaWQpOwpAQCAtMTUxNSwxOCArMTUxNSwxOSBAQAogCWlmIChyZXF1ZXN0ID09IE5VTEwpCiAJCXJldHVybiB0YXBlXzM1OTBfdW5zb2xpY2l0ZWRfaXJxKGRldmljZSwgaXJiKTsKIAotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgJiYKLQkgICAgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpICYmIChyZXF1ZXN0LT5vcCA9PSBUT19XUkkpKSB7CisJaWYgKChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSAmJgorCSAgICAocmVxdWVzdC0+b3AgPT0gVE9fV1JJKSkgewogCQkvKiBXcml0ZSBhdCBlbmQgb2Ygdm9sdW1lICovCiAJCURCRl9FVkVOVCgyLCAiRW5kIG9mIHZvbHVtZVxuIik7CiAJCXJldHVybiB0YXBlXzM1OTBfZXJwX2ZhaWxlZChkZXZpY2UsIHJlcXVlc3QsIGlyYiwgLUVOT1NQQyk7CiAJfQogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQlyZXR1cm4gdGFwZV8zNTkwX3VuaXRfY2hlY2soZGV2aWNlLCByZXF1ZXN0LCBpcmIpOwogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSBERVZfU1RBVF9VTklUX0VYQ0VQKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IERFVl9TVEFUX1VOSVRfRVhDRVApIHsKIAkJCWlmIChyZXF1ZXN0LT5vcCA9PSBUT19GU0IgfHwgcmVxdWVzdC0+b3AgPT0gVE9fQlNCKQogCQkJCXJlcXVlc3QtPnJlc2NudCsrOwogCQkJZWxzZQpAQCAtMTUzNiwxMiArMTUzNywxMiBAQAogCQlyZXR1cm4gdGFwZV8zNTkwX2RvbmUoZGV2aWNlLCByZXF1ZXN0KTsKIAl9CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQ0hOX0VORCkgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQ0hOX0VORCkgewogCQlEQkZfRVZFTlQoMiwgImNhbm5lbCBlbmRcbiIpOwogCQlyZXR1cm4gVEFQRV9JT19QRU5ESU5HOwogCX0KIAotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgewogCQlEQkZfRVZFTlQoMiwgIlVuaXQgQXR0ZW50aW9uIHdoZW4gYnVzeS4uXG4iKTsKIAkJcmV0dXJuIFRBUEVfSU9fUEVORElORzsKIAl9CkBAIC0xNTk4LDcgKzE1OTksNyBAQAogCXJjID0gdGFwZV8zNTkwX3JlYWRfZGV2X2NoYXJzKGRldmljZSwgcmRjX2RhdGEpOwogCWlmIChyYykgewogCQlEQkZfTEgoMywgIlJlYWQgZGV2aWNlIGNoYXJhY3RlcmlzdGljcyBmYWlsZWQhXG4iKTsKLQkJZ290byBmYWlsX2ttYWxsb2M7CisJCWdvdG8gZmFpbF9yZGNfZGF0YTsKIAl9CiAJcmMgPSB0YXBlX3N0ZF9hc3NpZ24oZGV2aWNlKTsKIAlpZiAocmMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NoYXIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCmluZGV4IGViZTg0MDYuLjY4NzcyMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbXRpby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC0yODksMjEgKzI5MCwyNiBAQAogCWlmIChpbWFqb3IoZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkgIT0gdGFwZWNoYXJfbWFqb3IpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAltaW5vciA9IGltaW5vcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKIAlkZXZpY2UgPSB0YXBlX2dldF9kZXZpY2UobWlub3IgLyBUQVBFX01JTk9SU19QRVJfREVWKTsKIAlpZiAoSVNfRVJSKGRldmljZSkpIHsKIAkJREJGX0VWRU5UKDMsICJUQ0hBUjpvcGVuOiB0YXBlX2dldF9kZXZpY2UoKSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihkZXZpY2UpOworCQlyYyA9IFBUUl9FUlIoZGV2aWNlKTsKKwkJZ290byBvdXQ7CiAJfQogCiAKIAlyYyA9IHRhcGVfb3BlbihkZXZpY2UpOwogCWlmIChyYyA9PSAwKSB7CiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9IGRldmljZTsKLQkJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworCQlyYyA9IG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogCX0KLQl0YXBlX3B1dF9kZXZpY2UoZGV2aWNlKTsKKwllbHNlCisJCXRhcGVfcHV0X2RldmljZShkZXZpY2UpOwogCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jb3JlLmMgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYwppbmRleCBjMjBlM2M1Li4xODFhNTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYwpAQCAtODM5LDcgKzgzOSw3IEBACiAKIAlQUklOVF9JTkZPKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKIAlQUklOVF9JTkZPKCJEU1RBVCA6ICUwMnggIENTVEFUOiAlMDJ4CUNQQTogJTA0eFxuIiwKLQkJICAgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5jcGEpOworCQkgICBpcmItPnNjc3cuY21kLmRzdGF0LCBpcmItPnNjc3cuY21kLmNzdGF0LCBpcmItPnNjc3cuY21kLmNwYSk7CiAJUFJJTlRfSU5GTygiREVWSUNFOiAlc1xuIiwgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkKTsKIAlpZiAocmVxdWVzdCAhPSBOVUxMKQogCQlQUklOVF9JTkZPKCJPUAkgIDogJXNcbiIsIHRhcGVfb3BfdmVyYm9zZVtyZXF1ZXN0LT5vcF0pOwpAQCAtODY3LDcgKzg2Nyw3IEBACiAJZWxzZQogCQlvcCA9ICItLS0iOwogCURCRl9FVkVOVCgzLCAiRFNUQVQgOiAlMDJ4ICAgQ1NUQVQ6ICUwMnhcbiIsCi0JCSAgaXJiLT5zY3N3LmRzdGF0LGlyYi0+c2Nzdy5jc3RhdCk7CisJCSAgaXJiLT5zY3N3LmNtZC5kc3RhdCwgaXJiLT5zY3N3LmNtZC5jc3RhdCk7CiAJREJGX0VWRU5UKDMsICJERVZJQ0U6ICUwOHggT1BcdDogJXNcbiIsIGRldmljZS0+Y2Rldl9pZCwgb3ApOwogCXNwdHIgPSAodW5zaWduZWQgaW50ICopIGlyYi0+ZWN3OwogCURCRl9FVkVOVCgzLCAiJTA4eCAlMDh4XG4iLCBzcHRyWzBdLCBzcHRyWzFdKTsKQEAgLTEwODMsMTAgKzEwODMsMTEgQEAKIAkgKiBlcnJvciBtaWdodCBzdGlsbCBhcHBseS4gU28gd2UganVzdCBzY2hlZHVsZSB0aGUgcmVxdWVzdCB0byBiZQogCSAqIHN0YXJ0ZWQgbGF0ZXIuCiAJICovCi0JaWYgKGlyYi0+c2Nzdy5jYyAhPSAwICYmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCWlmIChpcmItPnNjc3cuY21kLmNjICE9IDAgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgogCSAgICAocmVxdWVzdC0+c3RhdHVzID09IFRBUEVfUkVRVUVTVF9JTl9JTykpIHsKIAkJREJGX0VWRU5UKDMsIiglMDh4KTogZGVmZXJyZWQgY2M9JWksIGZjdGw9JWkuIHJlc3RhcnRpbmdcbiIsCi0JCQlkZXZpY2UtPmNkZXZfaWQsIGlyYi0+c2Nzdy5jYywgaXJiLT5zY3N3LmZjdGwpOworCQkJZGV2aWNlLT5jZGV2X2lkLCBpcmItPnNjc3cuY21kLmNjLCBpcmItPnNjc3cuY21kLmZjdGwpOwogCQlyZXF1ZXN0LT5zdGF0dXMgPSBUQVBFX1JFUVVFU1RfUVVFVUVEOwogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldmljZS0+dGFwZV9kbnIsIEhaKTsKIAkJcmV0dXJuOwpAQCAtMTA5NCw4ICsxMDk1LDggQEAKIAogCS8qIE1heSBiZSBhbiB1bnNvbGljaXRlZCBpcnEgKi8KIAlpZihyZXF1ZXN0ICE9IE5VTEwpCi0JCXJlcXVlc3QtPnJlc2NudCA9IGlyYi0+c2Nzdy5jb3VudDsKLQllbHNlIGlmICgoaXJiLT5zY3N3LmRzdGF0ID09IDB4ODUgfHwgaXJiLT5zY3N3LmRzdGF0ID09IDB4ODApICYmCisJCXJlcXVlc3QtPnJlc2NudCA9IGlyYi0+c2Nzdy5jbWQuY291bnQ7CisJZWxzZSBpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4NSB8fCBpcmItPnNjc3cuY21kLmRzdGF0ID09IDB4ODApICYmCiAJCSAhbGlzdF9lbXB0eSgmZGV2aWNlLT5yZXFfcXVldWUpKSB7CiAJCS8qIE5vdCBSZWFkeSB0byBSZWFkeSBhZnRlciBsb25nIGJ1c3kgPyAqLwogCQlzdHJ1Y3QgdGFwZV9yZXF1ZXN0ICpyZXE7CkBAIC0xMTExLDcgKzExMTIsNyBAQAogCQkJcmV0dXJuOwogCQl9CiAJfQotCWlmIChpcmItPnNjc3cuZHN0YXQgIT0gMHgwYykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICE9IDB4MGMpIHsKIAkJLyogU2V0IHRoZSAnT05MSU5FJyBmbGFnIGRlcGVuZGluZyBvbiBzZW5zZSBieXRlIDEgKi8KIAkJaWYoKigoKF9fdTggKikgaXJiLT5lY3cpICsgMSkgJiBTRU5TRV9EUklWRV9PTkxJTkUpCiAJCQlkZXZpY2UtPnRhcGVfZ2VuZXJpY19zdGF0dXMgfD0gR01UX09OTElORSh+MCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90dHkzMjcwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci90dHkzMjcwLmMKaW5kZXggNTA0MzE1MC4uYTdmZTYzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdHR5MzI3MC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3R0eTMyNzAuYwpAQCAtNjYzLDcgKzY2Myw3IEBACiB0dHkzMjcwX2lycShzdHJ1Y3QgdHR5MzI3MCAqdHAsIHN0cnVjdCByYXczMjcwX3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJLyogSGFuZGxlIEFUVE4uIFNjaGVkdWxlIHRhc2tsZXQgdG8gcmVhZCBhaWQuICovCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CiAJCWlmICghdHAtPnRocm90dGxlKQogCQkJdHR5MzI3MF9pc3N1ZV9yZWFkKHRwLCAwKTsKIAkJZWxzZQpAQCAtNjcxLDExICs2NzEsMTEgQEAKIAl9CiAKIAlpZiAocnEpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKIAkJCXJxLT5yYyA9IC1FSU87CiAJCWVsc2UKIAkJCS8qIE5vcm1hbCBlbmQuIENvcHkgcmVzaWR1YWwgY291bnQuICovCi0JCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNvdW50OworCQkJcnEtPnJlc2NudCA9IGlyYi0+c2Nzdy5jbWQuY291bnQ7CiAJfQogCXJldHVybiBSQVczMjcwX0lPX0RPTkU7CiB9CkBAIC0xNzkyLDE1ICsxNzkyLDEyIEBACiAJdHR5X3NldF9vcGVyYXRpb25zKGRyaXZlciwgJnR0eTMyNzBfb3BzKTsKIAlyZXQgPSB0dHlfcmVnaXN0ZXJfZHJpdmVyKGRyaXZlcik7CiAJaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgInR0eTMyNzAgcmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoICVkXG4iLCByZXQpOwogCQlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAl0dHkzMjcwX2RyaXZlciA9IGRyaXZlcjsKIAlyZXQgPSByYXczMjcwX3JlZ2lzdGVyX25vdGlmaWVyKHR0eTMyNzBfbm90aWZpZXIpOwogCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ0dHkzMjcwIG5vdGlmaWVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQgIgotCQkgICAgICAgIndpdGggJWRcbiIsIHJldCk7CiAJCXB1dF90dHlfZHJpdmVyKGRyaXZlcik7CiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3ZtY3AuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtY3AuYwppbmRleCAyZjQxOWIwLi4wOWU3ZDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci92bWNwLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdm1jcC5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL2NwY21kLmg+CiAjaW5jbHVkZSA8YXNtL2RlYnVnLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTM5LDExICs0MCwxNCBAQAogCXNlc3Npb24gPSBrbWFsbG9jKHNpemVvZigqc2Vzc2lvbiksIEdGUF9LRVJORUwpOwogCWlmICghc2Vzc2lvbikKIAkJcmV0dXJuIC1FTk9NRU07CisKKwlsb2NrX2tlcm5lbCgpOwogCXNlc3Npb24tPmJ1ZnNpemUgPSBQQUdFX1NJWkU7CiAJc2Vzc2lvbi0+cmVzcG9uc2UgPSBOVUxMOwogCXNlc3Npb24tPnJlc3Bfc2l6ZSA9IDA7CiAJbXV0ZXhfaW5pdCgmc2Vzc2lvbi0+bXV0ZXgpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHNlc3Npb247CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIH0KIApAQCAtNjEsMzAgKzY1LDI0IEBACiBzdGF0aWMgc3NpemVfdAogdm1jcF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmZiwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCiB7Ci0Jc2l6ZV90IHRvY29weTsKKwlzc2l6ZV90IHJldDsKKwlzaXplX3Qgc2l6ZTsKIAlzdHJ1Y3Qgdm1jcF9zZXNzaW9uICpzZXNzaW9uOwogCi0Jc2Vzc2lvbiA9IChzdHJ1Y3Qgdm1jcF9zZXNzaW9uICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCXNlc3Npb24gPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmc2Vzc2lvbi0+bXV0ZXgpKQogCQlyZXR1cm4gLUVSRVNUQVJUU1lTOwogCWlmICghc2Vzc2lvbi0+cmVzcG9uc2UpIHsKIAkJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5tdXRleCk7CiAJCXJldHVybiAwOwogCX0KLQlpZiAoKnBwb3MgPiBzZXNzaW9uLT5yZXNwX3NpemUpIHsKLQkJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5tdXRleCk7Ci0JCXJldHVybiAwOwotCX0KLQl0b2NvcHkgPSBtaW4oc2Vzc2lvbi0+cmVzcF9zaXplIC0gKHNpemVfdCkgKCpwcG9zKSwgY291bnQpOwotCXRvY29weSA9IG1pbih0b2NvcHksIHNlc3Npb24tPmJ1ZnNpemUgLSAoc2l6ZV90KSAoKnBwb3MpKTsKKwlzaXplID0gbWluX3Qoc2l6ZV90LCBzZXNzaW9uLT5yZXNwX3NpemUsIHNlc3Npb24tPmJ1ZnNpemUpOworCXJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZmYsIGNvdW50LCBwcG9zLAorCQkJCQlzZXNzaW9uLT5yZXNwb25zZSwgc2l6ZSk7CiAKLQlpZiAoY29weV90b191c2VyKGJ1ZmYsIHNlc3Npb24tPnJlc3BvbnNlICsgKCpwcG9zKSwgdG9jb3B5KSkgewotCQltdXRleF91bmxvY2soJnNlc3Npb24tPm11dGV4KTsKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQogCW11dGV4X3VubG9jaygmc2Vzc2lvbi0+bXV0ZXgpOwotCSpwcG9zICs9IHRvY29weTsKLQlyZXR1cm4gdG9jb3B5OworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHNzaXplX3QKQEAgLTE5OCwyNyArMTk2LDIzIEBACiAJCVBSSU5UX1dBUk4oInovVk0gQ1AgaW50ZXJmYWNlIGlzIG9ubHkgYXZhaWxhYmxlIHVuZGVyIHovVk1cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CisKIAl2bWNwX2RlYnVnID0gZGVidWdfcmVnaXN0ZXIoInZtY3AiLCAxLCAxLCAyNDApOwotCWlmICghdm1jcF9kZWJ1ZykgewotCQlQUklOVF9FUlIoInovVk0gQ1AgaW50ZXJmYWNlIG5vdCBsb2FkZWQuIENvdWxkIG5vdCByZWdpc3RlciAiCi0JCQkgICAiZGVidWcgZmVhdHVyZVxuIik7CisJaWYgKCF2bWNwX2RlYnVnKQogCQlyZXR1cm4gLUVOT01FTTsKLQl9CisKIAlyZXQgPSBkZWJ1Z19yZWdpc3Rlcl92aWV3KHZtY3BfZGVidWcsICZkZWJ1Z19oZXhfYXNjaWlfdmlldyk7CiAJaWYgKHJldCkgewotCQlQUklOVF9FUlIoInovVk0gQ1AgaW50ZXJmYWNlIG5vdCBsb2FkZWQuIENvdWxkIG5vdCByZWdpc3RlciAiCi0JCQkgICJkZWJ1ZyBmZWF0dXJlIHZpZXcuIEVycm9yIGNvZGU6ICVkXG4iLCByZXQpOwogCQlkZWJ1Z191bnJlZ2lzdGVyKHZtY3BfZGVidWcpOwogCQlyZXR1cm4gcmV0OwogCX0KKwogCXJldCA9IG1pc2NfcmVnaXN0ZXIoJnZtY3BfZGV2KTsKIAlpZiAocmV0KSB7Ci0JCVBSSU5UX0VSUigiei9WTSBDUCBpbnRlcmZhY2Ugbm90IGxvYWRlZC4gQ291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSAgICJtaXNjIGRldmljZS4gRXJyb3IgY29kZTogJWRcbiIsIHJldCk7CiAJCWRlYnVnX3VucmVnaXN0ZXIodm1jcF9kZWJ1Zyk7CiAJCXJldHVybiByZXQ7CiAJfQotCVBSSU5UX0lORk8oInovVk0gQ1AgaW50ZXJmYWNlIGxvYWRlZFxuIik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjI2LDcgKzIyMCw2IEBACiB7CiAJbWlzY19kZXJlZ2lzdGVyKCZ2bWNwX2Rldik7CiAJZGVidWdfdW5yZWdpc3Rlcih2bWNwX2RlYnVnKTsKLQlQUklOVF9JTkZPKCJ6L1ZNIENQIGludGVyZmFjZSB1bmxvYWRlZC5cbiIpOwogfQogCiBtb2R1bGVfaW5pdCh2bWNwX2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm1sb2dyZHIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtbG9ncmRyLmMKaW5kZXggMmMyNDI4Yy4uYzMxZmFlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdm1sb2dyZHIuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bWxvZ3Jkci5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgva21vZC5oPgogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogCiAKQEAgLTIxNiw5ICsyMTcsNyBAQAogCWNoYXIgKnRhaWw7CiAJaW50IGxlbixpOwogCi0JcHJpbnRrIChLRVJOX0RFQlVHICJ2bWxvZ3JkcjogcXVlcnkgY29tbWFuZDogJXNcbiIsIGNwX2NvbW1hbmQpOwogCWNwY21kKGNwX2NvbW1hbmQsIGNwX3Jlc3BvbnNlLCBzaXplb2YoY3BfcmVzcG9uc2UpLCBOVUxMKTsKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZXNwb25zZTogJXMiLCBjcF9yZXNwb25zZSk7CiAJbGVuID0gc3RybmxlbihjcF9yZXNwb25zZSxzaXplb2YoY3BfcmVzcG9uc2UpKTsKIAkvLyBub3cgdGhlIHBhcnNpbmcKIAl0YWlsPXN0cm5jaHIoY3BfcmVzcG9uc2UsbGVuLCc9Jyk7CkBAIC0yNjgsMTEgKzI2Nyw3IEBACiAJCQkgbG9ncHRyLT5yZWNvcmRpbmdfbmFtZSwKIAkJCSBxaWRfc3RyaW5nKTsKIAotCQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgY29tbWFuZDogJXNcbiIsCi0JCQljcF9jb21tYW5kKTsKIAkJY3BjbWQoY3BfY29tbWFuZCwgY3BfcmVzcG9uc2UsIHNpemVvZihjcF9yZXNwb25zZSksIE5VTEwpOwotCQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgcmVzcG9uc2U6ICVzIiwKLQkJCWNwX3Jlc3BvbnNlKTsKIAl9CiAKIAltZW1zZXQoY3BfY29tbWFuZCwgMHgwMCwgc2l6ZW9mKGNwX2NvbW1hbmQpKTsKQEAgLTI4MiwxMCArMjc3LDcgQEAKIAkJb25vZmYsCiAJCXFpZF9zdHJpbmcpOwogCi0JcHJpbnRrIChLRVJOX0RFQlVHICJ2bWxvZ3JkcjogcmVjb3JkaW5nIGNvbW1hbmQ6ICVzXG4iLCBjcF9jb21tYW5kKTsKIAljcGNtZChjcF9jb21tYW5kLCBjcF9yZXNwb25zZSwgc2l6ZW9mKGNwX3Jlc3BvbnNlKSwgTlVMTCk7Ci0JcHJpbnRrIChLRVJOX0RFQlVHICJ2bWxvZ3JkcjogcmVjb3JkaW5nIHJlc3BvbnNlOiAlcyIsCi0JCWNwX3Jlc3BvbnNlKTsKIAkvKiBUaGUgcmVjb3JkaW5nIGNvbW1hbmQgd2lsbCB1c3VhbGx5IGFuc3dlciB3aXRoICdDb21tYW5kIGNvbXBsZXRlJwogCSAqIG9uIHN1Y2Nlc3MsIGJ1dCB3aGVuIHRoZSBzcGVjaWZpYyBzZXJ2aWNlIHdhcyBuZXZlciBjb25uZWN0ZWQKIAkgKiBiZWZvcmUgdGhlbiB0aGVyZSBtaWdodCBiZSBhbiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uYWwgbWVzc2FnZQpAQCAtMzE5LDkgKzMxMSwxMSBAQAogCQlyZXR1cm4gLUVOT1NZUzsKIAogCS8qIEJlc3VyZSB0aGlzIGRldmljZSBoYXNuJ3QgYWxyZWFkeSBiZWVuIG9wZW5lZCAqLworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2JoKCZsb2dwdHItPnByaXZfbG9jayk7CiAJaWYgKGxvZ3B0ci0+ZGV2X2luX3VzZSkJewogCQlzcGluX3VubG9ja19iaCgmbG9ncHRyLT5wcml2X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCWxvZ3B0ci0+ZGV2X2luX3VzZSA9IDE7CkBAIC0zNjUsNyArMzU5LDkgQEAKIAkJICAgfHwgKGxvZ3B0ci0+aXVjdl9wYXRoX3NldmVyZWQpKTsKIAlpZiAobG9ncHRyLT5pdWN2X3BhdGhfc2V2ZXJlZCkKIAkJZ290byBvdXRfcmVjb3JkOwotIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisgCXJldCA9IG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogCiBvdXRfcmVjb3JkOgogCWlmIChsb2dwdHItPmF1dG9yZWNvcmRpbmcpCkBAIC0zNzUsNiArMzcxLDcgQEAKIAlsb2dwdHItPnBhdGggPSBOVUxMOwogb3V0X2RldjoKIAlsb2dwdHItPmRldl9pbl91c2UgPSAwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gLUVJTzsKIH0KIApAQCAtNTY3LDEwICs1NjQsNyBAQAogCQkJICJSRUNPUkRJTkcgJXMgUFVSR0UgIiwKIAkJCSBwcml2LT5yZWNvcmRpbmdfbmFtZSk7CiAKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgY29tbWFuZDogJXNcbiIsIGNwX2NvbW1hbmQpOwogCWNwY21kKGNwX2NvbW1hbmQsIGNwX3Jlc3BvbnNlLCBzaXplb2YoY3BfcmVzcG9uc2UpLCBOVUxMKTsKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgcmVzcG9uc2U6ICVzIiwKLQkJY3BfcmVzcG9uc2UpOwogCiAJcmV0dXJuIGNvdW50OwogfQpAQCAtNjgyLDI4ICs2NzYsMjAgQEAKIAogCS8qIFJlZ2lzdGVyIHdpdGggaXVjdiBkcml2ZXIgKi8KIAlyZXQgPSBpdWN2X3JlZ2lzdGVyKCZ2bWxvZ3Jkcl9pdWN2X2hhbmRsZXIsIDEpOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAidm1sb2dyZHI6IGZhaWxlZCB0byByZWdpc3RlciB3aXRoICIKLQkJCSJpdWN2IGRyaXZlclxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXQ7Ci0JfQogCiAJcmV0ID0gZHJpdmVyX3JlZ2lzdGVyKCZ2bWxvZ3Jkcl9kcml2ZXIpOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIHJlZ2lzdGVyIGRyaXZlci5cbiIpOworCWlmIChyZXQpCiAJCWdvdG8gb3V0X2l1Y3Y7Ci0JfQogCiAJcmV0ID0gZHJpdmVyX2NyZWF0ZV9maWxlKCZ2bWxvZ3Jkcl9kcml2ZXIsCiAJCQkJICZkcml2ZXJfYXR0cl9yZWNvcmRpbmdfc3RhdHVzKTsKLQlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidm1sb2dyZHI6IGZhaWxlZCB0byBhZGQgZHJpdmVyIGF0dHJpYnV0ZS5cbiIpOworCWlmIChyZXQpCiAJCWdvdG8gb3V0X2RyaXZlcjsKLQl9CiAKIAl2bWxvZ3Jkcl9jbGFzcyA9IGNsYXNzX2NyZWF0ZShUSElTX01PRFVMRSwgInZtbG9ncmRyIik7CiAJaWYgKElTX0VSUih2bWxvZ3Jkcl9jbGFzcykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIGNyZWF0ZSBjbGFzcy5cbiIpOwogCQlyZXQgPSBQVFJfRVJSKHZtbG9ncmRyX2NsYXNzKTsKIAkJdm1sb2dyZHJfY2xhc3MgPSBOVUxMOwogCQlnb3RvIG91dF9hdHRyOwpAQCAtODcxLDEyICs4NTcsMTAgQEAKIAlyYyA9IHZtbG9ncmRyX3JlZ2lzdGVyX2NkZXYoZGV2KTsKIAlpZiAocmMpCiAJCWdvdG8gY2xlYW51cDsKLQlwcmludGsgKEtFUk5fSU5GTyAidm1sb2dyZHI6IGRyaXZlciBsb2FkZWRcbiIpOwogCXJldHVybiAwOwogCiBjbGVhbnVwOgogCXZtbG9ncmRyX2NsZWFudXAoKTsKLQlwcmludGsgKEtFUk5fRVJSICJ2bWxvZ3JkcjogZHJpdmVyIG5vdCBsb2FkZWQuXG4iKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTg4NCw3ICs4NjgsNiBAQAogc3RhdGljIHZvaWQgX19leGl0IHZtbG9ncmRyX2V4aXQodm9pZCkKIHsKIAl2bWxvZ3Jkcl9jbGVhbnVwKCk7Ci0JcHJpbnRrIChLRVJOX0lORk8gInZtbG9ncmRyOiBkcml2ZXIgdW5sb2FkZWRcbiIpOwogCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm11ci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm11ci5jCmluZGV4IDgzYWU5YTguLjBhOWYxY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3ZtdXIuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bXVyLmMKQEAgLTksNiArOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vY2lvLmg+CkBAIC0yNzcsNyArMjc4LDggQEAKIAlzdHJ1Y3QgdXJkZXYgKnVyZDsKIAogCVRSQUNFKCJ1cl9pbnRfaGFuZGxlcjogaW50cGFybT0weCVseCBjc3RhdD0lMDJ4IGRzdGF0PSUwMnggcmVzPSV1XG4iLAotCSAgICAgIGludHBhcm0sIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY291bnQpOworCSAgICAgIGludHBhcm0sIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuZHN0YXQsCisJICAgICAgaXJiLT5zY3N3LmNtZC5jb3VudCk7CiAKIAlpZiAoIWludHBhcm0pIHsKIAkJVFJBQ0UoInVyX2ludF9oYW5kbGVyOiB1bnNvbGljaXRlZCBpbnRlcnJ1cHRcbiIpOwpAQCAtMjg4LDcgKzI5MCw3IEBACiAJLyogT24gc3BlY2lhbCBjb25kaXRpb25zIGlyYiBpcyBhbiBlcnJvciBwb2ludGVyICovCiAJaWYgKElTX0VSUihpcmIpKQogCQl1cmQtPmlvX3JlcXVlc3RfcmMgPSBQVFJfRVJSKGlyYik7Ci0JZWxzZSBpZiAoaXJiLT5zY3N3LmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCkpCisJZWxzZSBpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQpKQogCQl1cmQtPmlvX3JlcXVlc3RfcmMgPSAwOwogCWVsc2UKIAkJdXJkLT5pb19yZXF1ZXN0X3JjID0gLUVJTzsKQEAgLTY2OCw3ICs2NzAsNyBAQAogCiAJaWYgKGFjY21vZGUgPT0gT19SRFdSKQogCQlyZXR1cm4gLUVBQ0NFUzsKLQorCWxvY2tfa2VybmVsKCk7CiAJLyoKIAkgKiBXZSB0cmVhdCB0aGUgbWlub3IgbnVtYmVyIGFzIHRoZSBkZXZubyBvZiB0aGUgdXIgZGV2aWNlCiAJICogdG8gZmluZCBpbiB0aGUgZHJpdmVyIHRyZWUuCkBAIC02NzYsOCArNjc4LDEwIEBACiAJZGV2bm8gPSBNSU5PUihmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2KTsKIAogCXVyZCA9IHVyZGV2X2dldF9mcm9tX2Rldm5vKGRldm5vKTsKLQlpZiAoIXVyZCkKLQkJcmV0dXJuIC1FTlhJTzsKKwlpZiAoIXVyZCkgeworCQlyYyA9IC1FTlhJTzsKKwkJZ290byBvdXQ7CisJfQogCiAJc3Bpbl9sb2NrKCZ1cmQtPm9wZW5fbG9jayk7CiAJd2hpbGUgKHVyZC0+b3Blbl9mbGFnKSB7CkBAIC03MjAsNiArNzI0LDcgQEAKIAkJZ290byBmYWlsX3VyZmlsZV9mcmVlOwogCXVyZi0+ZmlsZV9yZWNsZW4gPSByYzsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSB1cmY7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBmYWlsX3VyZmlsZV9mcmVlOgpAQCAtNzMwLDYgKzczNSw4IEBACiAJc3Bpbl91bmxvY2soJnVyZC0+b3Blbl9sb2NrKTsKIGZhaWxfcHV0OgogCXVyZGV2X3B1dCh1cmQpOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3Ztd2F0Y2hkb2cuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3Ztd2F0Y2hkb2cuYwppbmRleCAxOWY4Mzg5Li4yMWEyYTgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci92bXdhdGNoZG9nLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdm13YXRjaGRvZy5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC93YXRjaGRvZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vZWJjZGljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC05MiwyMyArOTMsMTUgQEAKIAogCWZ1bmMgPSB2bXdkdF9jb25jZWFsID8gKHdkdF9pbml0IHwgd2R0X2NvbmNlYWwpIDogd2R0X2luaXQ7CiAJcmV0ID0gX19kaWFnMjg4KGZ1bmMsIHZtd2R0X2ludGVydmFsLCBlYmNfY21kLCBsZW4pOworCVdBUk5fT04ocmV0ICE9IDApOwogCWtmcmVlKGViY19jbWQpOwotCi0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogcHJvYmxlbSBzZXR0aW5nIGludGVydmFsICVkLCAiCi0JCQkiY21kICVzXG4iLCBfX2Z1bmNfXywgdm13ZHRfaW50ZXJ2YWwsCi0JCQl2bXdkdF9jbWQpOwotCX0KIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHZtd2R0X2Rpc2FibGUodm9pZCkKIHsKIAlpbnQgcmV0ID0gX19kaWFnMjg4KHdkdF9jYW5jZWwsIDAsICIiLCAwKTsKLQlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBwcm9ibGVtIGRpc2FibGluZyB3YXRjaGRvZ1xuIiwKLQkJCV9fZnVuY19fKTsKLQl9CisJV0FSTl9PTihyZXQgIT0gMCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTIxLDIxICsxMTQsMjMgQEAKIAlzdGF0aWMgY2hhciBfX2luaXRkYXRhIGViY19iZWdpbltdID0gewogCQkxOTQsIDE5NywgMTk5LCAyMDEsIDIxMwogCX07Ci0JaWYgKF9fZGlhZzI4OCh3ZHRfaW5pdCwgMTUsIGViY19iZWdpbiwgc2l6ZW9mKGViY19iZWdpbikpICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiei9WTSB3YXRjaGRvZyBub3QgYXZhaWxhYmxlXG4iKTsKKwlpZiAoX19kaWFnMjg4KHdkdF9pbml0LCAxNSwgZWJjX2JlZ2luLCBzaXplb2YoZWJjX2JlZ2luKSkgIT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCXJldHVybiB2bXdkdF9kaXNhYmxlKCk7CiB9CiAKIHN0YXRpYyBpbnQgdm13ZHRfb3BlbihzdHJ1Y3QgaW5vZGUgKmksIHN0cnVjdCBmaWxlICpmKQogewogCWludCByZXQ7Ci0JaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJnZtd2R0X2lzX29wZW4pKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJnZtd2R0X2lzX29wZW4pKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAJcmV0ID0gdm13ZHRfa2VlcGFsaXZlKCk7CiAJaWYgKHJldCkKIAkJY2xlYXJfYml0KDAsICZ2bXdkdF9pc19vcGVuKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldCA/IHJldCA6IG5vbnNlZWthYmxlX29wZW4oaSwgZik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3pjb3JlLmMgYi9kcml2ZXJzL3MzOTAvY2hhci96Y29yZS5jCmluZGV4IGJiYmQxNGUuLjA0N2RkOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3pjb3JlLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvemNvcmUuYwpAQCAtMjIzLDEyICsyMjMsMTAgQEAKIAkvKiBnZXQgaW5mbyBmb3IgYm9vdCBjcHUgZnJvbSBsb3djb3JlLCBzdG9yZWQgaW4gdGhlIEhTQSAqLwogCiAJc2EgPSBrbWFsbG9jKHNpemVvZigqc2EpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXNhKSB7Ci0JCUVSUk9SX01TRygia21hbGxvYyBmYWlsZWQ6ICVzOiAlaVxuIixfX2Z1bmNfXywgX19MSU5FX18pOworCWlmICghc2EpCiAJCXJldHVybiAtRU5PTUVNOwotCX0KIAlpZiAobWVtY3B5X2hzYV9rZXJuZWwoc2EsIHN5c19pbmZvLnNhX2Jhc2UsIHN5c19pbmZvLnNhX3NpemUpIDwgMCkgewotCQlFUlJPUl9NU0coImNvdWxkIG5vdCBjb3B5IGZyb20gSFNBXG4iKTsKKwkJVFJBQ0UoImNvdWxkIG5vdCBjb3B5IGZyb20gSFNBXG4iKTsKIAkJa2ZyZWUoc2EpOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC01MTEsNiArNTA5LDggQEAKICAqLwogc3RhdGljIGludCBfX2luaXQgc3lzX2luZm9faW5pdChlbnVtIGFyY2hfaWQgYXJjaCkKIHsKKwlpbnQgcmM7CisKIAlzd2l0Y2ggKGFyY2gpIHsKIAljYXNlIEFSQ0hfUzM5MFg6CiAJCU1TRygiREVURUNURUQgJ1MzOTBYICg2NCBiaXQpIE9TJ1xuIik7CkBAIC01MjksMTAgKzUyOSw5IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlzeXNfaW5mby5hcmNoID0gYXJjaDsKLQlpZiAoaW5pdF9jcHVfaW5mbyhhcmNoKSkgewotCQlFUlJPUl9NU0coImdldCBjcHUgaW5mbyBmYWlsZWRcbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9CisJcmMgPSBpbml0X2NwdV9pbmZvKGFyY2gpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCXN5c19pbmZvLm1lbV9zaXplID0gcmVhbF9tZW1vcnlfc2l6ZTsKIAogCXJldHVybiAwOwpAQCAtNTQ0LDEyICs1NDMsMTIgQEAKIAogCXJjID0gc2NscF9zZGlhc19ibGtfY291bnQoKTsKIAlpZiAocmMgPCAwKSB7Ci0JCUVSUk9SX01TRygiQ291bGQgbm90IGRldGVybWluZSBIU0Egc2l6ZVxuIik7CisJCVRSQUNFKCJDb3VsZCBub3QgZGV0ZXJtaW5lIEhTQSBzaXplXG4iKTsKIAkJcmV0dXJuIHJjOwogCX0KIAlhY3RfaHNhX3NpemUgPSAocmMgLSAxKSAqIFBBR0VfU0laRTsKIAlpZiAoYWN0X2hzYV9zaXplIDwgWkZDUERVTVBfSFNBX1NJWkUpIHsKLQkJRVJST1JfTVNHKCJIU0Egc2l6ZSB0b28gc21hbGw6ICVpXG4iLCBhY3RfaHNhX3NpemUpOworCQlUUkFDRSgiSFNBIHNpemUgdG9vIHNtYWxsOiAlaVxuIiwgYWN0X2hzYV9zaXplKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiAwOwpAQCAtNTkwLDE2ICs1ODksMTIgQEAKIAkJZ290byBmYWlsOwogCiAJcmMgPSBjaGVja19zZGlhcygpOwotCWlmIChyYykgewotCQlFUlJPUl9NU0coIkR1bXAgaW5pdGlhbGl6YXRpb24gZmFpbGVkXG4iKTsKKwlpZiAocmMpCiAJCWdvdG8gZmFpbDsKLQl9CiAKIAlyYyA9IG1lbWNweV9oc2Ffa2VybmVsKCZhcmNoLCBfX0xDX0FSX01PREVfSUQsIDEpOwotCWlmIChyYykgewotCQlFUlJPUl9NU0coInNkaWFsIG1lbWNweSBmb3IgYXJjaCBpZCBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJZ290byBmYWlsOwotCX0KIAogI2lmbmRlZiBfX3MzOTB4X18KIAlpZiAoYXJjaCA9PSBBUkNIX1MzOTBYKSB7CkBAIC02MTAsMTAgKzYwNSw4IEBACiAjZW5kaWYKIAogCXJjID0gc3lzX2luZm9faW5pdChhcmNoKTsKLQlpZiAocmMpIHsKLQkJRVJST1JfTVNHKCJhcmNoIGluaXQgZmFpbGVkXG4iKTsKKwlpZiAocmMpCiAJCWdvdG8gZmFpbDsKLQl9CiAKIAl6Y29yZV9oZWFkZXJfaW5pdChhcmNoLCAmemNvcmVfaGVhZGVyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9NYWtlZmlsZSBiL2RyaXZlcnMvczM5MC9jaW8vTWFrZWZpbGUKaW5kZXggY2ZhZjc3Yi4uOTFlOWUzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3MzOTAvY2lvL01ha2VmaWxlCkBAIC0yLDkgKzIsMTEgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBTLzM5MCBjb21tb24gaS9vIGRyaXZlcnMKICMKIAotb2JqLXkgKz0gYWlycS5vIGJsYWNrbGlzdC5vIGNoc2MubyBjaW8ubyBjc3MubyBjaHAubyBpZHNldC5vCitvYmoteSArPSBhaXJxLm8gYmxhY2tsaXN0Lm8gY2hzYy5vIGNpby5vIGNzcy5vIGNocC5vIGlkc2V0Lm8gaXNjLm8gc2Nzdy5vIFwKKwlmY3gubyBpdGN3Lm8KIGNjd19kZXZpY2Utb2JqcyArPSBkZXZpY2UubyBkZXZpY2VfZnNtLm8gZGV2aWNlX29wcy5vCiBjY3dfZGV2aWNlLW9ianMgKz0gZGV2aWNlX2lkLm8gZGV2aWNlX3BnaWQubyBkZXZpY2Vfc3RhdHVzLm8KIG9iai15ICs9IGNjd19kZXZpY2UubyBjbWYubworb2JqLSQoQ09ORklHX0NIU0NfU0NIKSArPSBjaHNjX3NjaC5vCiBvYmotJChDT05GSUdfQ0NXR1JPVVApICs9IGNjd2dyb3VwLm8KIG9iai0kKENPTkZJR19RRElPKSArPSBxZGlvLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vYWlycS5jIGIvZHJpdmVycy9zMzkwL2Npby9haXJxLmMKaW5kZXggYjdhMDdhOC4uZmU2Y2VhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9haXJxLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9haXJxLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogCiAjaW5jbHVkZSA8YXNtL2FpcnEuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CiAKICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjaW9fZGVidWcuaCIKQEAgLTMzLDE1ICszNCwxNSBAQAogCXZvaWQgKmRydl9kYXRhOwogfTsKIAotc3RhdGljIHVuaW9uIGluZGljYXRvcl90IGluZGljYXRvcnM7Ci1zdGF0aWMgc3RydWN0IGFpcnFfdCAqYWlycXNbTlJfQUlSUVNdOworc3RhdGljIHVuaW9uIGluZGljYXRvcl90IGluZGljYXRvcnNbTUFYX0lTQ107CitzdGF0aWMgc3RydWN0IGFpcnFfdCAqYWlycXNbTUFYX0lTQ11bTlJfQUlSUVNdOwogCi1zdGF0aWMgaW50IHJlZ2lzdGVyX2FpcnEoc3RydWN0IGFpcnFfdCAqYWlycSkKK3N0YXRpYyBpbnQgcmVnaXN0ZXJfYWlycShzdHJ1Y3QgYWlycV90ICphaXJxLCB1OCBpc2MpCiB7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTlJfQUlSUVM7IGkrKykKLQkJaWYgKCFjbXB4Y2hnKCZhaXJxc1tpXSwgTlVMTCwgYWlycSkpCisJCWlmICghY21weGNoZygmYWlycXNbaXNjXVtpXSwgTlVMTCwgYWlycSkpCiAJCQlyZXR1cm4gaTsKIAlyZXR1cm4gLUVOT01FTTsKIH0KQEAgLTUwLDE4ICs1MSwyMSBAQAogICogczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCgpIC0gcmVnaXN0ZXIgYWRhcHRlciBpbnRlcnJ1cHQgaGFuZGxlcgogICogQGhhbmRsZXI6IGFkYXB0ZXIgaGFuZGxlciB0byBiZSByZWdpc3RlcmVkCiAgKiBAZHJ2X2RhdGE6IGRyaXZlciBkYXRhIHBhc3NlZCB3aXRoIGVhY2ggY2FsbCB0byB0aGUgaGFuZGxlcgorICogQGlzYzogaXNjIGZvciB3aGljaCB0aGUgaGFuZGxlciBzaG91bGQgYmUgY2FsbGVkCiAgKgogICogUmV0dXJuczoKICAqICBQb2ludGVyIHRvIHRoZSBpbmRpY2F0b3IgdG8gYmUgdXNlZCBvbiBzdWNjZXNzCiAgKiAgRVJSX1BUUigpIGlmIHJlZ2lzdHJhdGlvbiBmYWlsZWQKICAqLwogdm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QgaGFuZGxlciwKLQkJCQkgICAgICB2b2lkICpkcnZfZGF0YSkKKwkJCQkgICAgICB2b2lkICpkcnZfZGF0YSwgdTggaXNjKQogewogCXN0cnVjdCBhaXJxX3QgKmFpcnE7CiAJY2hhciBkYmZfdHh0WzE2XTsKIAlpbnQgcmV0OwogCisJaWYgKGlzYyA+IE1BWF9JU0MpCisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCWFpcnEgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgYWlycV90KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFhaXJxKSB7CiAJCXJldCA9IC1FTk9NRU07CkBAIC02OSwzNCArNzMsMzUgQEAKIAl9CiAJYWlycS0+aGFuZGxlciA9IGhhbmRsZXI7CiAJYWlycS0+ZHJ2X2RhdGEgPSBkcnZfZGF0YTsKLQlyZXQgPSByZWdpc3Rlcl9haXJxKGFpcnEpOwotCWlmIChyZXQgPCAwKQotCQlrZnJlZShhaXJxKTsKKworCXJldCA9IHJlZ2lzdGVyX2FpcnEoYWlycSwgaXNjKTsKIG91dDoKIAlzbnByaW50ZihkYmZfdHh0LCBzaXplb2YoZGJmX3R4dCksICJyYWlycTolZCIsIHJldCk7CiAJQ0lPX1RSQUNFX0VWRU5UKDQsIGRiZl90eHQpOwotCWlmIChyZXQgPCAwKQorCWlmIChyZXQgPCAwKSB7CisJCWtmcmVlKGFpcnEpOwogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwotCWVsc2UKLQkJcmV0dXJuICZpbmRpY2F0b3JzLmJ5dGVbcmV0XTsKKwl9IGVsc2UKKwkJcmV0dXJuICZpbmRpY2F0b3JzW2lzY10uYnl0ZVtyZXRdOwogfQogRVhQT1JUX1NZTUJPTChzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KTsKIAogLyoqCiAgKiBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQgLSB1bnJlZ2lzdGVyIGFkYXB0ZXIgaW50ZXJydXB0IGhhbmRsZXIKICAqIEBpbmQ6IGluZGljYXRvciBmb3Igd2hpY2ggdGhlIGhhbmRsZXIgaXMgdG8gYmUgdW5yZWdpc3RlcmVkCisgKiBAaXNjOiBpbnRlcnJ1cHRpb24gc3ViY2xhc3MKICAqLwotdm9pZCBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodm9pZCAqaW5kKQordm9pZCBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodm9pZCAqaW5kLCB1OCBpc2MpCiB7CiAJc3RydWN0IGFpcnFfdCAqYWlycTsKIAljaGFyIGRiZl90eHRbMTZdOwogCWludCBpOwogCi0JaSA9IChpbnQpICgoYWRkcl90KSBpbmQpIC0gKChhZGRyX3QpICZpbmRpY2F0b3JzLmJ5dGVbMF0pOworCWkgPSAoaW50KSAoKGFkZHJfdCkgaW5kKSAtICgoYWRkcl90KSAmaW5kaWNhdG9yc1tpc2NdLmJ5dGVbMF0pOwogCXNucHJpbnRmKGRiZl90eHQsIHNpemVvZihkYmZfdHh0KSwgInVyYWlycTolZCIsIGkpOwogCUNJT19UUkFDRV9FVkVOVCg0LCBkYmZfdHh0KTsKLQlpbmRpY2F0b3JzLmJ5dGVbaV0gPSAwOwotCWFpcnEgPSB4Y2hnKCZhaXJxc1tpXSwgTlVMTCk7CisJaW5kaWNhdG9yc1tpc2NdLmJ5dGVbaV0gPSAwOworCWFpcnEgPSB4Y2hnKCZhaXJxc1tpc2NdW2ldLCBOVUxMKTsKIAkvKgogCSAqIEFsbG93IGludGVycnVwdHMgdG8gY29tcGxldGUuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgYWlycSBoYW5kbGUKIAkgKiBpcyBubyBsb25nZXIgcmVmZXJlbmNlZCBieSBhbnkgaW50ZXJydXB0IGhhbmRsZXIuCkBAIC0xMDgsNyArMTEzLDcgQEAKIAogI2RlZmluZSBJTkRJQ0FUT1JfTUFTSwkoMHhmZlVMIDw8ICgoTlJfQUlSUVNfUEVSX1dPUkQgLSAxKSAqIDgpKQogCi12b2lkIGRvX2FkYXB0ZXJfSU8odm9pZCkKK3ZvaWQgZG9fYWRhcHRlcl9JTyh1OCBpc2MpCiB7CiAJaW50IHc7CiAJaW50IGk7CkBAIC0xMjAsMjIgKzEyNSwyMiBAQAogCSAqIGZldGNoIG9wZXJhdGlvbnMuCiAJICovCiAJZm9yICh3ID0gMDsgdyA8IE5SX0FJUlFfV09SRFM7IHcrKykgewotCQl3b3JkID0gaW5kaWNhdG9ycy53b3JkW3ddOworCQl3b3JkID0gaW5kaWNhdG9yc1tpc2NdLndvcmRbd107CiAJCWkgPSB3ICogTlJfQUlSUVNfUEVSX1dPUkQ7CiAJCS8qCiAJCSAqIENoZWNrIGJ5dGVzIHdpdGhpbiB3b3JkIGZvciBhY3RpdmUgaW5kaWNhdG9ycy4KIAkJICovCiAJCXdoaWxlICh3b3JkKSB7CiAJCQlpZiAod29yZCAmIElORElDQVRPUl9NQVNLKSB7Ci0JCQkJYWlycSA9IGFpcnFzW2ldOworCQkJCWFpcnEgPSBhaXJxc1tpc2NdW2ldOwogCQkJCWlmIChsaWtlbHkoYWlycSkpCi0JCQkJCWFpcnEtPmhhbmRsZXIoJmluZGljYXRvcnMuYnl0ZVtpXSwKKwkJCQkJYWlycS0+aGFuZGxlcigmaW5kaWNhdG9yc1tpc2NdLmJ5dGVbaV0sCiAJCQkJCQkgICAgICBhaXJxLT5kcnZfZGF0YSk7CiAJCQkJZWxzZQogCQkJCQkvKgogCQkJCQkgKiBSZXNldCBpbGwtYmVoYXZlZCBpbmRpY2F0b3IuCiAJCQkJCSAqLwotCQkJCQlpbmRpY2F0b3JzLmJ5dGVbaV0gPSAwOworCQkJCQlpbmRpY2F0b3JzW2lzY10uYnl0ZVtpXSA9IDA7CiAJCQl9CiAJCQl3b3JkIDw8PSA4OwogCQkJaSsrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9ibGFja2xpc3QuYyBiL2RyaXZlcnMvczM5MC9jaW8vYmxhY2tsaXN0LmMKaW5kZXggYTRhNWYyZS4uMGJmY2JiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9ibGFja2xpc3QuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2JsYWNrbGlzdC5jCkBAIC05Nyw4ICs5Nyw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcGFyc2VfYnVzaWQoY2hhciAqc3RyLCBpbnQgKmNzc2lkLCBpbnQgKnNzaWQsIGludCAqZGV2bm8sCi0JCSAgICAgICBpbnQgbXNndHJpZ2dlcikKK3N0YXRpYyBpbnQgcGFyc2VfYnVzaWQoY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQgKmNzc2lkLCB1bnNpZ25lZCBpbnQgKnNzaWQsCisJCSAgICAgICB1bnNpZ25lZCBpbnQgKmRldm5vLCBpbnQgbXNndHJpZ2dlcikKIHsKIAljaGFyICpzdHJfd29yazsKIAlpbnQgdmFsLCByYywgcmV0OwpAQCAtMTQ4LDcgKzE0OCw3IEBACiBzdGF0aWMgaW50IGJsYWNrbGlzdF9wYXJzZV9wYXJhbWV0ZXJzKGNoYXIgKnN0ciwgcmFuZ2VfYWN0aW9uIGFjdGlvbiwKIAkJCQkgICAgICBpbnQgbXNndHJpZ2dlcikKIHsKLQlpbnQgZnJvbV9jc3NpZCwgdG9fY3NzaWQsIGZyb21fc3NpZCwgdG9fc3NpZCwgZnJvbSwgdG87CisJdW5zaWduZWQgaW50IGZyb21fY3NzaWQsIHRvX2Nzc2lkLCBmcm9tX3NzaWQsIHRvX3NzaWQsIGZyb20sIHRvOwogCWludCByYywgdG90YWxyYzsKIAljaGFyICpwYXJtOwogCXJhbmdlX2FjdGlvbiByYTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2hwLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2NocC5jCmluZGV4IDI5N2NkY2UuLmRiMDBiMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2hwLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaHAuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgogI2luY2x1ZGUgPGFzbS9zY2xwLmg+CiAKKyNpbmNsdWRlICIuLi9zMzkwbWFjaC5oIgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNzcy5oIgogI2luY2x1ZGUgImlvYXNtLmgiCkBAIC05NCw2ICs5NSw3IEBACiAJfQogCXJldHVybiBvcG07CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaHBfZ2V0X3NjaF9vcG0pOwogCiAvKioKICAqIGNocF9pc19yZWdpc3RlcmVkIC0gY2hlY2sgaWYgYSBjaGFubmVsLXBhdGggaXMgcmVnaXN0ZXJlZApAQCAtMTIxLDExICsxMjMsOCBAQAogCUNJT19UUkFDRV9FVkVOVCgyLCBkYmZfdGV4dCk7CiAKIAlzdGF0dXMgPSBjaHBfZ2V0X3N0YXR1cyhjaHBpZCk7Ci0JaWYgKCFvbiAmJiAhc3RhdHVzKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiY2lvOiBjaHBpZCAleC4lMDJ4IGlzIGFscmVhZHkgb2ZmbGluZVxuIiwKLQkJICAgICAgIGNocGlkLmNzc2lkLCBjaHBpZC5pZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlpZiAoIW9uICYmICFzdGF0dXMpCisJCXJldHVybiAwOwogCiAJc2V0X2NocF9sb2dpY2FsbHlfb25saW5lKGNocGlkLCBvbik7CiAJY2hzY19jaHBfdmFyeShjaHBpZCwgb24pOwpAQCAtMTQxLDIxICsxNDAsMTQgQEAKIHsKIAlzdHJ1Y3QgY2hhbm5lbF9wYXRoICpjaHA7CiAJc3RydWN0IGRldmljZSAqZGV2aWNlOwotCXVuc2lnbmVkIGludCBzaXplOwogCiAJZGV2aWNlID0gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBkZXZpY2UsIGtvYmopOwogCWNocCA9IHRvX2NoYW5uZWxwYXRoKGRldmljZSk7CiAJaWYgKCFjaHAtPmNtZ19jaGFycykKIAkJcmV0dXJuIDA7CiAKLQlzaXplID0gc2l6ZW9mKHN0cnVjdCBjbWdfY2hhcnMpOwotCi0JaWYgKG9mZiA+IHNpemUpCi0JCXJldHVybiAwOwotCWlmIChvZmYgKyBjb3VudCA+IHNpemUpCi0JCWNvdW50ID0gc2l6ZSAtIG9mZjsKLQltZW1jcHkoYnVmLCBjaHAtPmNtZ19jaGFycyArIG9mZiwgY291bnQpOwotCXJldHVybiBjb3VudDsKKwlyZXR1cm4gbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgJm9mZiwKKwkJCQljaHAtPmNtZ19jaGFycywgc2l6ZW9mKHN0cnVjdCBjbWdfY2hhcnMpKTsKIH0KIAogc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlIGNocF9tZWFzdXJlbWVudF9jaGFyc19hdHRyID0gewpAQCAtNDA1LDcgKzM5Nyw3IEBACiAJCSBjaHBpZC5pZCk7CiAKIAkvKiBPYnRhaW4gY2hhbm5lbCBwYXRoIGRlc2NyaXB0aW9uIGFuZCBmaWxsIGl0IGluLiAqLwotCXJldCA9IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjcmlwdGlvbihjaHBpZCwgJmNocC0+ZGVzYyk7CisJcmV0ID0gY2hzY19kZXRlcm1pbmVfYmFzZV9jaGFubmVsX3BhdGhfZGVzYyhjaHBpZCwgJmNocC0+ZGVzYyk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZnJlZTsKIAlpZiAoKGNocC0+ZGVzYy5mbGFncyAmIDB4ODApID09IDApIHsKQEAgLTQxMyw4ICs0MDUsNyBAQAogCQlnb3RvIG91dF9mcmVlOwogCX0KIAkvKiBHZXQgY2hhbm5lbC1tZWFzdXJlbWVudCBjaGFyYWN0ZXJpc3RpY3MuICovCi0JaWYgKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgJiYgY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNjbWMKLQkgICAgJiYgY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pIHsKKwlpZiAoY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNjbWMgJiYgY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pIHsKIAkJcmV0ID0gY2hzY19nZXRfY2hhbm5lbF9tZWFzdXJlbWVudF9jaGFycyhjaHApOwogCQlpZiAocmV0KQogCQkJZ290byBvdXRfZnJlZTsKQEAgLTQ3NiwyNiArNDY3LDc0IEBACiAKIC8qKgogICogY2hwX3Byb2Nlc3NfY3J3IC0gcHJvY2VzcyBjaGFubmVsLXBhdGggc3RhdHVzIGNoYW5nZQotICogQGlkOiBjaGFubmVsLXBhdGggSUQgbnVtYmVyCi0gKiBAc3RhdHVzOiBub24temVybyBpZiBjaGFubmVsLXBhdGggaGFzIGJlY29tZSBhdmFpbGFibGUsIHplcm8gb3RoZXJ3aXNlCisgKiBAY3J3MDogY2hhbm5lbCByZXBvcnQtd29yZCB0byBoYW5kbGVyCisgKiBAY3J3MTogc2Vjb25kIGNoYW5uZWwtcmVwb3J0IHdvcmQgKGFsd2F5cyBOVUxMKQorICogQG92ZXJmbG93OiBjcncgb3ZlcmZsb3cgaW5kaWNhdGlvbgogICoKICAqIEhhbmRsZSBjaGFubmVsLXJlcG9ydC13b3JkcyBpbmRpY2F0aW5nIHRoYXQgdGhlIHN0YXR1cyBvZiBhIGNoYW5uZWwtcGF0aAogICogaGFzIGNoYW5nZWQuCiAgKi8KLXZvaWQgY2hwX3Byb2Nlc3NfY3J3KGludCBpZCwgaW50IHN0YXR1cykKK3N0YXRpYyB2b2lkIGNocF9wcm9jZXNzX2NydyhzdHJ1Y3QgY3J3ICpjcncwLCBzdHJ1Y3QgY3J3ICpjcncxLAorCQkJICAgIGludCBvdmVyZmxvdykKIHsKIAlzdHJ1Y3QgY2hwX2lkIGNocGlkOwogCisJaWYgKG92ZXJmbG93KSB7CisJCWNzc19zY2hlZHVsZV9ldmFsX2FsbCgpOworCQlyZXR1cm47CisJfQorCUNJT19DUldfRVZFTlQoMiwgIkNSVyByZXBvcnRzIHNsY3Q9JWQsIG9mbHc9JWQsICIKKwkJICAgICAgImNobj0lZCwgcnNjPSVYLCBhbmM9JWQsIGVyYz0lWCwgcnNpZD0lWFxuIiwKKwkJICAgICAgY3J3MC0+c2xjdCwgY3J3MC0+b2ZsdywgY3J3MC0+Y2huLCBjcncwLT5yc2MsIGNydzAtPmFuYywKKwkJICAgICAgY3J3MC0+ZXJjLCBjcncwLT5yc2lkKTsKKwkvKgorCSAqIENoZWNrIGZvciBzb2xpY2l0ZWQgbWFjaGluZSBjaGVja3MuIFRoZXNlIGFyZQorCSAqIGNyZWF0ZWQgYnkgcmVzZXQgY2hhbm5lbCBwYXRoIGFuZCBuZWVkIG5vdCBiZQorCSAqIGhhbmRsZWQgaGVyZS4KKwkgKi8KKwlpZiAoY3J3MC0+c2xjdCkgeworCQlDSU9fQ1JXX0VWRU5UKDIsICJzb2xpY2l0ZWQgbWFjaGluZSBjaGVjayBmb3IgIgorCQkJICAgICAgImNoYW5uZWwgcGF0aCAlMDJYXG4iLCBjcncwLT5yc2lkKTsKKwkJcmV0dXJuOworCX0KIAljaHBfaWRfaW5pdCgmY2hwaWQpOwotCWNocGlkLmlkID0gaWQ7Ci0JaWYgKHN0YXR1cykgeworCWNocGlkLmlkID0gY3J3MC0+cnNpZDsKKwlzd2l0Y2ggKGNydzAtPmVyYykgeworCWNhc2UgQ1JXX0VSQ19JUEFSTTogLyogUGF0aCBoYXMgY29tZS4gKi8KIAkJaWYgKCFjaHBfaXNfcmVnaXN0ZXJlZChjaHBpZCkpCiAJCQljaHBfbmV3KGNocGlkKTsKIAkJY2hzY19jaHBfb25saW5lKGNocGlkKTsKLQl9IGVsc2UKKwkJYnJlYWs7CisJY2FzZSBDUldfRVJDX1BFUlJJOiAvKiBQYXRoIGhhcyBnb25lLiAqLworCWNhc2UgQ1JXX0VSQ19QRVJSTjoKIAkJY2hzY19jaHBfb2ZmbGluZShjaHBpZCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCUNJT19DUldfRVZFTlQoMiwgIkRvbid0IGtub3cgaG93IHRvIGhhbmRsZSBlcmM9JXhcbiIsCisJCQkgICAgICBjcncwLT5lcmMpOworCX0KIH0KIAoraW50IGNocF9zc2RfZ2V0X21hc2soc3RydWN0IGNoc2Nfc3NkX2luZm8gKnNzZCwgc3RydWN0IGNocF9saW5rICpsaW5rKQoreworCWludCBpOworCWludCBtYXNrOworCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQltYXNrID0gMHg4MCA+PiBpOworCQlpZiAoIShzc2QtPnBhdGhfbWFzayAmIG1hc2spKQorCQkJY29udGludWU7CisJCWlmICghY2hwX2lkX2lzX2VxdWFsKCZzc2QtPmNocGlkW2ldLCAmbGluay0+Y2hwaWQpKQorCQkJY29udGludWU7CisJCWlmICgoc3NkLT5mbGFfdmFsaWRfbWFzayAmIG1hc2spICYmCisJCSAgICAoKHNzZC0+ZmxhW2ldICYgbGluay0+ZmxhX21hc2spICE9IGxpbmstPmZsYSkpCisJCQljb250aW51ZTsKKwkJcmV0dXJuIG1hc2s7CisJfQorCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY2hwX3NzZF9nZXRfbWFzayk7CisKIHN0YXRpYyBpbmxpbmUgaW50IGluZm9fYml0X251bShzdHJ1Y3QgY2hwX2lkIGlkKQogewogCXJldHVybiBpZC5pZCArIGlkLmNzc2lkICogKF9fTUFYX0NIUElEICsgMSk7CkBAIC01NzUsNiArNjE0LDcgQEAKIHsKIAlzdHJ1Y3QgY2hwX2lkIGNocGlkOwogCWVudW0gY2ZnX3Rhc2tfdCB0OworCWludCByYzsKIAogCW11dGV4X2xvY2soJmNmZ19sb2NrKTsKIAl0ID0gY2ZnX25vbmU7CkBAIC01ODksMTQgKzYyOSwyNCBAQAogCiAJc3dpdGNoICh0KSB7CiAJY2FzZSBjZmdfY29uZmlndXJlOgotCQlzY2xwX2NocF9jb25maWd1cmUoY2hwaWQpOwotCQlpbmZvX2V4cGlyZSgpOwotCQljaHNjX2NocF9vbmxpbmUoY2hwaWQpOworCQlyYyA9IHNjbHBfY2hwX2NvbmZpZ3VyZShjaHBpZCk7CisJCWlmIChyYykKKwkJCUNJT19NU0dfRVZFTlQoMiwgImNocDogc2NscF9jaHBfY29uZmlndXJlKCV4LiUwMngpPSIKKwkJCQkgICAgICAiJWRcbiIsIGNocGlkLmNzc2lkLCBjaHBpZC5pZCwgcmMpOworCQllbHNlIHsKKwkJCWluZm9fZXhwaXJlKCk7CisJCQljaHNjX2NocF9vbmxpbmUoY2hwaWQpOworCQl9CiAJCWJyZWFrOwogCWNhc2UgY2ZnX2RlY29uZmlndXJlOgotCQlzY2xwX2NocF9kZWNvbmZpZ3VyZShjaHBpZCk7Ci0JCWluZm9fZXhwaXJlKCk7Ci0JCWNoc2NfY2hwX29mZmxpbmUoY2hwaWQpOworCQlyYyA9IHNjbHBfY2hwX2RlY29uZmlndXJlKGNocGlkKTsKKwkJaWYgKHJjKQorCQkJQ0lPX01TR19FVkVOVCgyLCAiY2hwOiBzY2xwX2NocF9kZWNvbmZpZ3VyZSgleC4lMDJ4KT0iCisJCQkJICAgICAgIiVkXG4iLCBjaHBpZC5jc3NpZCwgY2hwaWQuaWQsIHJjKTsKKwkJZWxzZSB7CisJCQlpbmZvX2V4cGlyZSgpOworCQkJY2hzY19jaHBfb2ZmbGluZShjaHBpZCk7CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBjZmdfbm9uZToKIAkJLyogR2V0IHVwZGF0ZWQgaW5mb3JtYXRpb24gYWZ0ZXIgbGFzdCBjaGFuZ2UuICovCkBAIC02NTQsMTAgKzcwNCwxNiBAQAogc3RhdGljIGludCBfX2luaXQgY2hwX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgY2hwX2lkIGNocGlkOworCWludCByZXQ7CiAKKwlyZXQgPSBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1BBVEgsIGNocF9wcm9jZXNzX2Nydyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAljaHBfd3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSgiY2lvX2NocCIpOwotCWlmICghY2hwX3dxKQorCWlmICghY2hwX3dxKSB7CisJCXMzOTBfdW5yZWdpc3Rlcl9jcndfaGFuZGxlcihDUldfUlNDX0NQQVRIKTsKIAkJcmV0dXJuIC1FTk9NRU07CisJfQogCUlOSVRfV09SSygmY2ZnX3dvcmssIGNmZ19mdW5jKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjZmdfd2FpdF9xdWV1ZSk7CiAJaWYgKGluZm9fdXBkYXRlKCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2NocC5oIGIvZHJpdmVycy9zMzkwL2Npby9jaHAuaAppbmRleCA2NTI4NjU2Li4yNmMzZDIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2NocC5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hwLmgKQEAgLTEyLDEyICsxMiwyNCBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgogI2luY2x1ZGUgImNoc2MuaCIKKyNpbmNsdWRlICJjc3MuaCIKIAogI2RlZmluZSBDSFBfU1RBVFVTX1NUQU5EQlkJCTAKICNkZWZpbmUgQ0hQX1NUQVRVU19DT05GSUdVUkVECQkxCiAjZGVmaW5lIENIUF9TVEFUVVNfUkVTRVJWRUQJCTIKICNkZWZpbmUgQ0hQX1NUQVRVU19OT1RfUkVDT0dOSVpFRAkzCiAKKyNkZWZpbmUgQ0hQX09OTElORSAwCisjZGVmaW5lIENIUF9PRkZMSU5FIDEKKyNkZWZpbmUgQ0hQX1ZBUllfT04gMgorI2RlZmluZSBDSFBfVkFSWV9PRkYgMworCitzdHJ1Y3QgY2hwX2xpbmsgeworCXN0cnVjdCBjaHBfaWQgY2hwaWQ7CisJdTMyIGZsYV9tYXNrOworCXUxNiBmbGE7Cit9OworCiBzdGF0aWMgaW5saW5lIGludCBjaHBfdGVzdF9iaXQodTggKmJpdG1hcCwgaW50IG51bSkKIHsKIAlpbnQgYnl0ZSA9IG51bSA+PiAzOwpAQCAtNDIsMTIgKzU0LDExIEBACiB1OCBjaHBfZ2V0X3NjaF9vcG0oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CiBpbnQgY2hwX2lzX3JlZ2lzdGVyZWQoc3RydWN0IGNocF9pZCBjaHBpZCk7CiB2b2lkICpjaHBfZ2V0X2NocF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwotdm9pZCBjaHBfcHJvY2Vzc19jcncoaW50IGlkLCBpbnQgYXZhaWxhYmxlKTsKIHZvaWQgY2hwX3JlbW92ZV9jbWdfYXR0cihzdHJ1Y3QgY2hhbm5lbF9wYXRoICpjaHApOwogaW50IGNocF9hZGRfY21nX2F0dHIoc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwKTsKIGludCBjaHBfbmV3KHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogdm9pZCBjaHBfY2ZnX3NjaGVkdWxlKHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBjb25maWd1cmUpOwogdm9pZCBjaHBfY2ZnX2NhbmNlbF9kZWNvbmZpZ3VyZShzdHJ1Y3QgY2hwX2lkIGNocGlkKTsKIGludCBjaHBfaW5mb19nZXRfc3RhdHVzKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwotCitpbnQgY2hwX3NzZF9nZXRfbWFzayhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqLCBzdHJ1Y3QgY2hwX2xpbmsgKik7CiAjZW5kaWYgLyogUzM5MF9DSFBfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwppbmRleCA1ZGU4NjkwLi42NTI2NGEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwpAQCAtMiw4ICsyLDcgQEAKICAqICBkcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwogICogICBTLzM5MCBjb21tb24gSS9PIHJvdXRpbmVzIC0tIGNoYW5uZWwgc3Vic3lzdGVtIGNhbGwKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMiBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwKLSAqCQkJICAgICAgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTksMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgQXJuZCBCZXJnbWFubiAoYXJuZGJAZGUuaWJtLmNvbSkKQEAgLTE2LDcgKzE1LDkgQEAKIAogI2luY2x1ZGUgPGFzbS9jaW8uaD4KICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KKyNpbmNsdWRlIDxhc20vY2hzYy5oPgogCisjaW5jbHVkZSAiLi4vczM5MG1hY2guaCIKICNpbmNsdWRlICJjc3MuaCIKICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjaW9fZGVidWcuaCIKQEAgLTEyNyw3NyArMTI4LDEyIEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBjaGVja19mb3JfaW9fb25fcGF0aChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBpbnQgbWFzaykKLXsKLQlpbnQgY2M7Ci0KLQljYyA9IHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKTsKLQlpZiAoY2MpCi0JCXJldHVybiAwOwotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAmJiBzY2gtPnNjaGliLnBtY3cubHB1bSA9PSBtYXNrKQotCQlyZXR1cm4gMTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdGVybWluYXRlX2ludGVybmFsX2lvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0JaWYgKGNpb19jbGVhcihzY2gpKSB7Ci0JCS8qIFJlY2hlY2sgZGV2aWNlIGluIGNhc2UgY2xlYXIgZmFpbGVkLiAqLwotCQlzY2gtPmxwbSA9IDA7Ci0JCWlmIChkZXZpY2VfdHJpZ2dlcl92ZXJpZnkoc2NoKSAhPSAwKQotCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Ci0JCXJldHVybjsKLQl9Ci0JLyogUmVxdWVzdCByZXRyeSBvZiBpbnRlcm5hbCBvcGVyYXRpb24uICovCi0JZGV2aWNlX3NldF9pbnRyZXRyeShzY2gpOwotCS8qIENhbGwgaGFuZGxlci4gKi8KLQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnRlcm1pbmF0aW9uKQotCQlzY2gtPmRyaXZlci0+dGVybWluYXRpb24oc2NoKTsKLX0KLQogc3RhdGljIGludCBzMzkwX3N1YmNoYW5uZWxfcmVtb3ZlX2NocGlkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHZvaWQgKmRhdGEpCiB7Ci0JaW50IGo7Ci0JaW50IG1hc2s7Ci0Jc3RydWN0IGNocF9pZCAqY2hwaWQgPSBkYXRhOwotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gajsKLQkJaWYgKChzY2gtPnNjaGliLnBtY3cucGltICYgbWFzaykgJiYKLQkJICAgIChzY2gtPnNjaGliLnBtY3cuY2hwaWRbal0gPT0gY2hwaWQtPmlkKSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaiA+PSA4KQotCQlyZXR1cm4gMDsKLQogCXNwaW5fbG9ja19pcnEoc2NoLT5sb2NrKTsKLQotCXN0c2NoKHNjaC0+c2NoaWQsICZzY2hpYik7Ci0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2hpYikpCi0JCWdvdG8gb3V0X3VucmVnOwotCW1lbWNweSgmc2NoLT5zY2hpYiwgJnNjaGliLCBzaXplb2Yoc3RydWN0IHNjaGliKSk7Ci0JLyogQ2hlY2sgZm9yIHNpbmdsZSBwYXRoIGRldmljZXMuICovCi0JaWYgKHNjaC0+c2NoaWIucG1jdy5waW0gPT0gMHg4MCkKLQkJZ290byBvdXRfdW5yZWc7Ci0KLQlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgewotCQlpZiAoZGV2aWNlX2lzX29ubGluZShzY2gpKQotCQkJZGV2aWNlX2tpbGxfaW8oc2NoKTsKLQkJZWxzZSB7Ci0JCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoKTsKLQkJCS8qIFJlLXN0YXJ0IHBhdGggdmVyaWZpY2F0aW9uLiAqLwotCQkJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogdHJpZ2dlciBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KLQkJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0JCWVsc2UgaWYgKHNjaC0+bHBtID09IG1hc2spCisJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQpCisJCWlmIChzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KHNjaCwgZGF0YSwgQ0hQX09GRkxJTkUpICE9IDApCiAJCQlnb3RvIG91dF91bnJlZzsKLQl9Ci0KIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIAlyZXR1cm4gMDsKIApAQCAtMjExLDE1ICsxNDcsMTggQEAKIHZvaWQgY2hzY19jaHBfb2ZmbGluZShzdHJ1Y3QgY2hwX2lkIGNocGlkKQogewogCWNoYXIgZGJmX3R4dFsxNV07CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAKIAlzcHJpbnRmKGRiZl90eHQsICJjaHByJXguJTAyeCIsIGNocGlkLmNzc2lkLCBjaHBpZC5pZCk7CiAJQ0lPX1RSQUNFX0VWRU5UKDIsIGRiZl90eHQpOwogCiAJaWYgKGNocF9nZXRfc3RhdHVzKGNocGlkKSA8PSAwKQogCQlyZXR1cm47CisJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGNocF9saW5rKSk7CisJbGluay5jaHBpZCA9IGNocGlkOwogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCiAJY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCgpOwotCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKHMzOTBfc3ViY2hhbm5lbF9yZW1vdmVfY2hwaWQsIE5VTEwsICZjaHBpZCk7CisJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoczM5MF9zdWJjaGFubmVsX3JlbW92ZV9jaHBpZCwgTlVMTCwgJmxpbmspOwogfQogCiBzdGF0aWMgaW50IHMzOTBfcHJvY2Vzc19yZXNfYWNjX25ld19zY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvaWQgKmRhdGEpCkBAIC0yNDIsNjcgKzE4MSwyNSBAQAogCXJldHVybiAwOwogfQogCi1zdHJ1Y3QgcmVzX2FjY19kYXRhIHsKLQlzdHJ1Y3QgY2hwX2lkIGNocGlkOwotCXUzMiBmbGFfbWFzazsKLQl1MTYgZmxhOwotfTsKLQotc3RhdGljIGludCBnZXRfcmVzX2NocGlkX21hc2soc3RydWN0IGNoc2Nfc3NkX2luZm8gKnNzZCwKLQkJCSAgICAgIHN0cnVjdCByZXNfYWNjX2RhdGEgKmRhdGEpCi17Ci0JaW50IGk7Ci0JaW50IG1hc2s7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0JCW1hc2sgPSAweDgwID4+IGk7Ci0JCWlmICghKHNzZC0+cGF0aF9tYXNrICYgbWFzaykpCi0JCQljb250aW51ZTsKLQkJaWYgKCFjaHBfaWRfaXNfZXF1YWwoJnNzZC0+Y2hwaWRbaV0sICZkYXRhLT5jaHBpZCkpCi0JCQljb250aW51ZTsKLQkJaWYgKChzc2QtPmZsYV92YWxpZF9tYXNrICYgbWFzaykgJiYKLQkJICAgICgoc3NkLT5mbGFbaV0gJiBkYXRhLT5mbGFfbWFzaykgIT0gZGF0YS0+ZmxhKSkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gbWFzazsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgX19zMzkwX3Byb2Nlc3NfcmVzX2FjYyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCB2b2lkICpkYXRhKQogewotCWludCBjaHBfbWFzaywgb2xkX2xwbTsKLQlzdHJ1Y3QgcmVzX2FjY19kYXRhICpyZXNfZGF0YSA9IGRhdGE7Ci0KIAlzcGluX2xvY2tfaXJxKHNjaC0+bG9jayk7Ci0JY2hwX21hc2sgPSBnZXRfcmVzX2NocGlkX21hc2soJnNjaC0+c3NkX2luZm8sIHJlc19kYXRhKTsKLQlpZiAoY2hwX21hc2sgPT0gMCkKLQkJZ290byBvdXQ7Ci0JaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKLQkJZ290byBvdXQ7Ci0Jb2xkX2xwbSA9IHNjaC0+bHBtOwotCXNjaC0+bHBtID0gKChzY2gtPnNjaGliLnBtY3cucGltICYKLQkJICAgICBzY2gtPnNjaGliLnBtY3cucGFtICYKLQkJICAgICBzY2gtPnNjaGliLnBtY3cucG9tKQotCQkgICAgfCBjaHBfbWFzaykgJiBzY2gtPm9wbTsKLQlpZiAoIW9sZF9scG0gJiYgc2NoLT5scG0pCi0JCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKLQllbHNlIGlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dmVyaWZ5KQotCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci1vdXQ6CisJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQpCisJCXNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQoc2NoLCBkYXRhLCBDSFBfT05MSU5FKTsKIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBzMzkwX3Byb2Nlc3NfcmVzX2FjYyAoc3RydWN0IHJlc19hY2NfZGF0YSAqcmVzX2RhdGEpCitzdGF0aWMgdm9pZCBzMzkwX3Byb2Nlc3NfcmVzX2FjYyhzdHJ1Y3QgY2hwX2xpbmsgKmxpbmspCiB7CiAJY2hhciBkYmZfdHh0WzE1XTsKIAotCXNwcmludGYoZGJmX3R4dCwgImFjY3ByJXguJTAyeCIsIHJlc19kYXRhLT5jaHBpZC5jc3NpZCwKLQkJcmVzX2RhdGEtPmNocGlkLmlkKTsKKwlzcHJpbnRmKGRiZl90eHQsICJhY2NwciV4LiUwMngiLCBsaW5rLT5jaHBpZC5jc3NpZCwKKwkJbGluay0+Y2hwaWQuaWQpOwogCUNJT19UUkFDRV9FVkVOVCggMiwgZGJmX3R4dCk7Ci0JaWYgKHJlc19kYXRhLT5mbGEgIT0gMCkgewotCQlzcHJpbnRmKGRiZl90eHQsICJmbGEleCIsIHJlc19kYXRhLT5mbGEpOworCWlmIChsaW5rLT5mbGEgIT0gMCkgeworCQlzcHJpbnRmKGRiZl90eHQsICJmbGEleCIsIGxpbmstPmZsYSk7CiAJCUNJT19UUkFDRV9FVkVOVCggMiwgZGJmX3R4dCk7CiAJfQogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCkBAIC0zMTUsNyArMjEyLDcgQEAKIAkgKiB3aWxsIHdlIGhhdmUgdG8gZG8uCiAJICovCiAJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoX19zMzkwX3Byb2Nlc3NfcmVzX2FjYywKLQkJCQkgICBzMzkwX3Byb2Nlc3NfcmVzX2FjY19uZXdfc2NoLCByZXNfZGF0YSk7CisJCQkJICAgczM5MF9wcm9jZXNzX3Jlc19hY2NfbmV3X3NjaCwgbGluayk7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTM4OCw3ICsyODUsNyBAQAogCiBzdGF0aWMgdm9pZCBjaHNjX3Byb2Nlc3Nfc2VpX3Jlc19hY2Moc3RydWN0IGNoc2Nfc2VpX2FyZWEgKnNlaV9hcmVhKQogewotCXN0cnVjdCByZXNfYWNjX2RhdGEgcmVzX2RhdGE7CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAJc3RydWN0IGNocF9pZCBjaHBpZDsKIAlpbnQgc3RhdHVzOwogCkBAIC00MDQsMTggKzMwMSwxOCBAQAogCQljaHBfbmV3KGNocGlkKTsKIAllbHNlIGlmICghc3RhdHVzKQogCQlyZXR1cm47Ci0JbWVtc2V0KCZyZXNfZGF0YSwgMCwgc2l6ZW9mKHN0cnVjdCByZXNfYWNjX2RhdGEpKTsKLQlyZXNfZGF0YS5jaHBpZCA9IGNocGlkOworCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKHN0cnVjdCBjaHBfbGluaykpOworCWxpbmsuY2hwaWQgPSBjaHBpZDsKIAlpZiAoKHNlaV9hcmVhLT52ZiAmIDB4YzApICE9IDApIHsKLQkJcmVzX2RhdGEuZmxhID0gc2VpX2FyZWEtPmZsYTsKKwkJbGluay5mbGEgPSBzZWlfYXJlYS0+ZmxhOwogCQlpZiAoKHNlaV9hcmVhLT52ZiAmIDB4YzApID09IDB4YzApCiAJCQkvKiBmdWxsIGxpbmsgYWRkcmVzcyAqLwotCQkJcmVzX2RhdGEuZmxhX21hc2sgPSAweGZmZmY7CisJCQlsaW5rLmZsYV9tYXNrID0gMHhmZmZmOwogCQllbHNlCiAJCQkvKiBsaW5rIGFkZHJlc3MgKi8KLQkJCXJlc19kYXRhLmZsYV9tYXNrID0gMHhmZjAwOworCQkJbGluay5mbGFfbWFzayA9IDB4ZmYwMDsKIAl9Ci0JczM5MF9wcm9jZXNzX3Jlc19hY2MoJnJlc19kYXRhKTsKKwlzMzkwX3Byb2Nlc3NfcmVzX2FjYygmbGluayk7CiB9CiAKIHN0cnVjdCBjaHBfY29uZmlnX2RhdGEgewpAQCAtNDgwLDE3ICszNzcsMjUgQEAKIAl9CiB9CiAKLXZvaWQgY2hzY19wcm9jZXNzX2Nydyh2b2lkKQorc3RhdGljIHZvaWQgY2hzY19wcm9jZXNzX2NydyhzdHJ1Y3QgY3J3ICpjcncwLCBzdHJ1Y3QgY3J3ICpjcncxLCBpbnQgb3ZlcmZsb3cpCiB7CiAJc3RydWN0IGNoc2Nfc2VpX2FyZWEgKnNlaV9hcmVhOwogCisJaWYgKG92ZXJmbG93KSB7CisJCWNzc19zY2hlZHVsZV9ldmFsX2FsbCgpOworCQlyZXR1cm47CisJfQorCUNJT19DUldfRVZFTlQoMiwgIkNSVyByZXBvcnRzIHNsY3Q9JWQsIG9mbHc9JWQsICIKKwkJICAgICAgImNobj0lZCwgcnNjPSVYLCBhbmM9JWQsIGVyYz0lWCwgcnNpZD0lWFxuIiwKKwkJICAgICAgY3J3MC0+c2xjdCwgY3J3MC0+b2ZsdywgY3J3MC0+Y2huLCBjcncwLT5yc2MsIGNydzAtPmFuYywKKwkJICAgICAgY3J3MC0+ZXJjLCBjcncwLT5yc2lkKTsKIAlpZiAoIXNlaV9wYWdlKQogCQlyZXR1cm47CiAJLyogQWNjZXNzIHRvIHNlaV9wYWdlIGlzIHNlcmlhbGl6ZWQgdGhyb3VnaCBtYWNoaW5lIGNoZWNrIGhhbmRsZXIKIAkgKiB0aHJlYWQsIHNvIG5vIG5lZWQgZm9yIGxvY2tpbmcuICovCiAJc2VpX2FyZWEgPSBzZWlfcGFnZTsKIAotCUNJT19UUkFDRV9FVkVOVCggMiwgInByY3NzIik7CisJQ0lPX1RSQUNFX0VWRU5UKDIsICJwcmNzcyIpOwogCWRvIHsKIAkJbWVtc2V0KHNlaV9hcmVhLCAwLCBzaXplb2YoKnNlaV9hcmVhKSk7CiAJCXNlaV9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKQEAgLTUwOSwxMTQgKzQxNCwzNiBAQAogCX0gd2hpbGUgKHNlaV9hcmVhLT5mbGFncyAmIDB4ODApOwogfQogCi1zdGF0aWMgaW50IF9fY2hwX2FkZF9uZXdfc2NoKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWlmIChzdHNjaF9lcnIoc2NoaWQsICZzY2hpYikpCi0JCS8qIFdlJ3JlIHRocm91Z2ggKi8KLQkJcmV0dXJuIC1FTlhJTzsKLQotCS8qIFB1dCBpdCBvbiB0aGUgc2xvdyBwYXRoLiAqLwotCWNzc19zY2hlZHVsZV9ldmFsKHNjaGlkKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IF9fY2hwX2FkZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCB2b2lkICpkYXRhKQotewotCWludCBpLCBtYXNrOwotCXN0cnVjdCBjaHBfaWQgKmNocGlkID0gZGF0YTsKLQotCXNwaW5fbG9ja19pcnEoc2NoLT5sb2NrKTsKLQlmb3IgKGk9MDsgaTw4OyBpKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gaTsKLQkJaWYgKChzY2gtPnNjaGliLnBtY3cucGltICYgbWFzaykgJiYKLQkJICAgIChzY2gtPnNjaGliLnBtY3cuY2hwaWRbaV0gPT0gY2hwaWQtPmlkKSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaT09OCkgewotCQlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikpIHsKLQkJc3Bpbl91bmxvY2tfaXJxKHNjaC0+bG9jayk7Ci0JCWNzc19zY2hlZHVsZV9ldmFsKHNjaC0+c2NoaWQpOwotCQlyZXR1cm4gMDsKLQl9Ci0Jc2NoLT5scG0gPSAoKHNjaC0+c2NoaWIucG1jdy5waW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wb20pCi0JCSAgICB8IG1hc2spICYgc2NoLT5vcG07Ci0KLQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCi0Jc3Bpbl91bmxvY2tfaXJxKHNjaC0+bG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogdm9pZCBjaHNjX2NocF9vbmxpbmUoc3RydWN0IGNocF9pZCBjaHBpZCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOworCXN0cnVjdCBjaHBfbGluayBsaW5rOwogCiAJc3ByaW50ZihkYmZfdHh0LCAiY2FkZCV4LiUwMngiLCBjaHBpZC5jc3NpZCwgY2hwaWQuaWQpOwogCUNJT19UUkFDRV9FVkVOVCgyLCBkYmZfdHh0KTsKIAogCWlmIChjaHBfZ2V0X3N0YXR1cyhjaHBpZCkgIT0gMCkgeworCQltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwkJbGluay5jaHBpZCA9IGNocGlkOwogCQkvKiBXYWl0IHVudGlsIHByZXZpb3VzIGFjdGlvbnMgaGF2ZSBzZXR0bGVkLiAqLwogCQljc3Nfd2FpdF9mb3Jfc2xvd19wYXRoKCk7Ci0JCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKF9fY2hwX2FkZCwgX19jaHBfYWRkX25ld19zY2gsCi0JCQkJCSAgICZjaHBpZCk7CisJCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKF9fczM5MF9wcm9jZXNzX3Jlc19hY2MsIE5VTEwsCisJCQkJCSAgICZsaW5rKTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkIF9fczM5MF9zdWJjaGFubmVsX3ZhcnlfY2hwaWQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKIAkJCQkJIHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBvbikKIHsKLQlpbnQgY2hwLCBvbGRfbHBtOwotCWludCBtYXNrOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAKKwltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwlsaW5rLmNocGlkID0gY2hwaWQ7CiAJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0Jb2xkX2xwbSA9IHNjaC0+bHBtOwotCWZvciAoY2hwID0gMDsgY2hwIDwgODsgY2hwKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gY2hwOwotCQlpZiAoIShzY2gtPnNzZF9pbmZvLnBhdGhfbWFzayAmIG1hc2spKQotCQkJY29udGludWU7Ci0JCWlmICghY2hwX2lkX2lzX2VxdWFsKCZzY2gtPnNzZF9pbmZvLmNocGlkW2NocF0sICZjaHBpZCkpCi0JCQljb250aW51ZTsKLQotCQlpZiAob24pIHsKLQkJCXNjaC0+b3BtIHw9IG1hc2s7Ci0JCQlzY2gtPmxwbSB8PSBtYXNrOwotCQkJaWYgKCFvbGRfbHBtKQotCQkJCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKLQkJCWVsc2UgaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQkJYnJlYWs7Ci0JCX0KLQkJc2NoLT5vcG0gJj0gfm1hc2s7Ci0JCXNjaC0+bHBtICY9IH5tYXNrOwotCQlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgewotCQkJaWYgKGRldmljZV9pc19vbmxpbmUoc2NoKSkKLQkJCQkvKiBQYXRoIHZlcmlmaWNhdGlvbiBpcyBkb25lIGFmdGVyIGtpbGxpbmcuICovCi0JCQkJZGV2aWNlX2tpbGxfaW8oc2NoKTsKLQkJCWVsc2UgewotCQkJCS8qIEtpbGwgYW5kIHJldHJ5IGludGVybmFsIEkvTy4gKi8KLQkJCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoKTsKLQkJCQkvKiBSZS1zdGFydCBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KLQkJCQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQkJfQotCQl9IGVsc2UgaWYgKCFzY2gtPmxwbSkgewotCQkJaWYgKGRldmljZV90cmlnZ2VyX3ZlcmlmeShzY2gpICE9IDApCi0JCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Ci0JCX0gZWxzZSBpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCXNjaC0+ZHJpdmVyLT52ZXJpZnkoc2NoKTsKLQkJYnJlYWs7Ci0JfQorCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KQorCQlzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KHNjaCwgJmxpbmssCisJCQkJICAgICAgIG9uID8gQ0hQX1ZBUllfT04gOiBDSFBfVkFSWV9PRkYpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTY1Niw2ICs0ODMsMTAgQEAKICAqLwogaW50IGNoc2NfY2hwX3Zhcnkoc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IG9uKQogeworCXN0cnVjdCBjaHBfbGluayBsaW5rOworCisJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGNocF9saW5rKSk7CisJbGluay5jaHBpZCA9IGNocGlkOwogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCiAJY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCgpOwogCS8qCkBAIC02NjQsMTAgKzQ5NSwxMCBAQAogCiAJaWYgKG9uKQogCQlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChzMzkwX3N1YmNoYW5uZWxfdmFyeV9jaHBpZF9vbiwKLQkJCQkJICAgX19zMzkwX3ZhcnlfY2hwaWRfb24sICZjaHBpZCk7CisJCQkJCSAgIF9fczM5MF92YXJ5X2NocGlkX29uLCAmbGluayk7CiAJZWxzZQogCQlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChzMzkwX3N1YmNoYW5uZWxfdmFyeV9jaHBpZF9vZmYsCi0JCQkJCSAgIE5VTEwsICZjaHBpZCk7CisJCQkJCSAgIE5VTEwsICZsaW5rKTsKIAogCXJldHVybiAwOwogfQpAQCAtNzk3LDIzICs2MjgsMzMgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2NyaXB0aW9uKHN0cnVjdCBjaHBfaWQgY2hwaWQsCi0JCQkJCSAgICBzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgKmRlc2MpCitpbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2Moc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IGZtdCwgaW50IHJmbXQsCisJCQkJICAgICBpbnQgYywgaW50IG0sCisJCQkJICAgICBzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3QgKnJlc3ApCiB7CiAJaW50IGNjb2RlLCByZXQ7CiAKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKLQkJdTMyIDogMjQ7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIGMgOiAxOworCQl1MzIgZm10IDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogNDsKKwkJdTMyIHJmbXQgOiA0OwogCQl1MzIgZmlyc3RfY2hwaWQgOiA4OwogCQl1MzIgOiAyNDsKIAkJdTMyIGxhc3RfY2hwaWQgOiA4OwogCQl1MzIgemVyb2VzMTsKIAkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOwotCQl1MzIgemVyb2VzMjsKLQkJc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjIGRlc2M7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOwogCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY3BkX2FyZWE7CiAKKwlpZiAoKHJmbXQgPT0gMSkgJiYgIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5mY3MpCisJCXJldHVybiAtRUlOVkFMOworCWlmICgocmZtdCA9PSAyKSAmJiAhY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmNpYikKKwkJcmV0dXJuIC1FSU5WQUw7CiAJc2NwZF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCWlmICghc2NwZF9hcmVhKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTgyMSw4ICs2NjIsMTMgQEAKIAlzY3BkX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOwogCXNjcGRfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDAyOwogCisJc2NwZF9hcmVhLT5jc3NpZCA9IGNocGlkLmNzc2lkOwogCXNjcGRfYXJlYS0+Zmlyc3RfY2hwaWQgPSBjaHBpZC5pZDsKIAlzY3BkX2FyZWEtPmxhc3RfY2hwaWQgPSBjaHBpZC5pZDsKKwlzY3BkX2FyZWEtPm0gPSBtOworCXNjcGRfYXJlYS0+YyA9IGM7CisJc2NwZF9hcmVhLT5mbXQgPSBmbXQ7CisJc2NwZF9hcmVhLT5yZm10ID0gcmZtdDsKIAogCWNjb2RlID0gY2hzYyhzY3BkX2FyZWEpOwogCWlmIChjY29kZSA+IDApIHsKQEAgLTgzMyw4ICs2NzksNyBAQAogCXJldCA9IGNoc2NfZXJyb3JfZnJvbV9yZXNwb25zZShzY3BkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOwogCWlmIChyZXQgPT0gMCkKIAkJLyogU3VjY2Vzcy4gKi8KLQkJbWVtY3B5KGRlc2MsICZzY3BkX2FyZWEtPmRlc2MsCi0JCSAgICAgICBzaXplb2Yoc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjKSk7CisJCW1lbWNweShyZXNwLCAmc2NwZF9hcmVhLT5yZXNwb25zZSwgc2NwZF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOwogCWVsc2UKIAkJQ0lPX0NSV19FVkVOVCgyLCAiY2hzYzogc2NwZCBmYWlsZWQgKHJjPSUwNHgpXG4iLAogCQkJICAgICAgc2NwZF9hcmVhLT5yZXNwb25zZS5jb2RlKTsKQEAgLTg0Miw2ICs2ODcsMjUgQEAKIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NwZF9hcmVhKTsKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTF9HUEwoY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2MpOworCitpbnQgY2hzY19kZXRlcm1pbmVfYmFzZV9jaGFubmVsX3BhdGhfZGVzYyhzdHJ1Y3QgY2hwX2lkIGNocGlkLAorCQkJCQkgIHN0cnVjdCBjaGFubmVsX3BhdGhfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3QgKmNoc2NfcmVzcDsKKwlpbnQgcmV0OworCisJY2hzY19yZXNwID0ga3phbGxvYyhzaXplb2YoKmNoc2NfcmVzcCksIEdGUF9LRVJORUwpOworCWlmICghY2hzY19yZXNwKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXQgPSBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzYyhjaHBpZCwgMCwgMCwgMCwgMCwgY2hzY19yZXNwKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9mcmVlOworCW1lbWNweShkZXNjLCAmY2hzY19yZXNwLT5kYXRhLCBjaHNjX3Jlc3AtPmxlbmd0aCk7CitvdXRfZnJlZToKKwlrZnJlZShjaHNjX3Jlc3ApOworCXJldHVybiByZXQ7Cit9CiAKIHN0YXRpYyB2b2lkCiBjaHNjX2luaXRpYWxpemVfY21nX2NoYXJzKHN0cnVjdCBjaGFubmVsX3BhdGggKmNocCwgdTggY21jdiwKQEAgLTkzNywxNSArODAxLDIzIEBACiAKIGludCBfX2luaXQgY2hzY19hbGxvY19zZWlfYXJlYSh2b2lkKQogeworCWludCByZXQ7CisKIAlzZWlfcGFnZSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKLQlpZiAoIXNlaV9wYWdlKQorCWlmICghc2VpX3BhZ2UpIHsKIAkJQ0lPX01TR19FVkVOVCgwLCAiQ2FuJ3QgYWxsb2NhdGUgcGFnZSBmb3IgcHJvY2Vzc2luZyBvZiAiCiAJCQkgICAgICAiY2hzYyBtYWNoaW5lIGNoZWNrcyFcbiIpOwotCXJldHVybiAoc2VpX3BhZ2UgPyAwIDogLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlyZXQgPSBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTLCBjaHNjX3Byb2Nlc3NfY3J3KTsKKwlpZiAocmV0KQorCQlrZnJlZShzZWlfcGFnZSk7CisJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBfX2luaXQgY2hzY19mcmVlX3NlaV9hcmVhKHZvaWQpCiB7CisJczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTKTsKIAlrZnJlZShzZWlfcGFnZSk7CiB9CiAKQEAgLTEwNDMsMyArOTE1LDUyIEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcyk7CiBFWFBPUlRfU1lNQk9MX0dQTChjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3MpOworCitpbnQgY2hzY19zc3RwYyh2b2lkICpwYWdlLCB1bnNpZ25lZCBpbnQgb3AsIHUxNiBjdHJsKQoreworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1bnNpZ25lZCBpbnQgcnN2ZDA7CisJCXVuc2lnbmVkIGludCBvcCA6IDg7CisJCXVuc2lnbmVkIGludCByc3ZkMSA6IDg7CisJCXVuc2lnbmVkIGludCBjdHJsIDogMTY7CisJCXVuc2lnbmVkIGludCByc3ZkMls1XTsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1bnNpZ25lZCBpbnQgcnN2ZDNbN107CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnJyOworCWludCByYzsKKworCW1lbXNldChwYWdlLCAwLCBQQUdFX1NJWkUpOworCXJyID0gcGFnZTsKKwlyci0+cmVxdWVzdC5sZW5ndGggPSAweDAwMjA7CisJcnItPnJlcXVlc3QuY29kZSA9IDB4MDAzMzsKKwlyci0+b3AgPSBvcDsKKwlyci0+Y3RybCA9IGN0cmw7CisJcmMgPSBjaHNjKHJyKTsKKwlpZiAocmMpCisJCXJldHVybiAtRUlPOworCXJjID0gKHJyLT5yZXNwb25zZS5jb2RlID09IDB4MDAwMSkgPyAwIDogLUVJTzsKKwlyZXR1cm4gcmM7Cit9CisKK2ludCBjaHNjX3NzdHBpKHZvaWQgKnBhZ2UsIHZvaWQgKnJlc3VsdCwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXVuc2lnbmVkIGludCByc3ZkMFszXTsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQljaGFyIGRhdGFbc2l6ZV07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnJyOworCWludCByYzsKKworCW1lbXNldChwYWdlLCAwLCBQQUdFX1NJWkUpOworCXJyID0gcGFnZTsKKwlyci0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJcnItPnJlcXVlc3QuY29kZSA9IDB4MDAzODsKKwlyYyA9IGNoc2MocnIpOworCWlmIChyYykKKwkJcmV0dXJuIC1FSU87CisJbWVtY3B5KHJlc3VsdCwgJnJyLT5kYXRhLCBzaXplKTsKKwlyZXR1cm4gKHJyLT5yZXNwb25zZS5jb2RlID09IDB4MDAwMSkgPyAwIDogLUVJTzsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaAppbmRleCBkMWY1ZGIxLi5mYjZjNGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaApAQCAtNCw3ICs0LDggQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL2Noc2MuaD4KKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogI2RlZmluZSBDSFNDX1NEQV9PQ19NU1MgICAweDIKIApAQCAtMzYsMTQgKzM3LDE1IEBACiAKIHN0cnVjdCBjaGFubmVsX3BhdGg7CiAKLWV4dGVybiB2b2lkIGNoc2NfcHJvY2Vzc19jcncodm9pZCk7Ci0KIHN0cnVjdCBjc3NfZ2VuZXJhbF9jaGFyIHsKLQl1NjQgOiA0MTsKKwl1NjQgOiAxMjsKKwl1MzIgZHluaW8gOiAxOwkgLyogYml0IDEyICovCisJdTMyIDogMjg7CiAJdTMyIGFpZiA6IDE7ICAgICAvKiBiaXQgNDEgKi8KIAl1MzIgOiAzOwogCXUzMiBtY3NzIDogMTsgICAgLyogYml0IDQ1ICovCi0JdTMyIDogMjsKKwl1MzIgZmNzIDogMTsJIC8qIGJpdCA0NiAqLworCXUzMiA6IDE7CiAJdTMyIGV4dF9tYiA6IDE7ICAvKiBiaXQgNDggKi8KIAl1MzIgOiA3OwogCXUzMiBhaWZfdGRkIDogMTsgLyogYml0IDU2ICovCkBAIC01MSw3ICs1MywxMSBAQAogCXUzMiBxZWJzbSA6IDE7ICAgLyogYml0IDU4ICovCiAJdTMyIDogODsKIAl1MzIgYWlmX29zYSA6IDE7IC8qIGJpdCA2NyAqLwotCXUzMiA6IDI4OworCXUzMiA6IDE0OworCXUzMiBjaWIgOiAxOwkgLyogYml0IDgyICovCisJdTMyIDogNTsKKwl1MzIgZmN4IDogMTsJIC8qIGJpdCA4OCAqLworCXUzMiA6IDc7CiB9X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0cnVjdCBjc3NfY2hzY19jaGFyIHsKQEAgLTc4LDcgKzg0LDYgQEAKIGV4dGVybiBpbnQgY2hzY19nZXRfc3NkX2luZm8oc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsCiAJCQkgICAgIHN0cnVjdCBjaHNjX3NzZF9pbmZvICpzc2QpOwogZXh0ZXJuIGludCBjaHNjX2RldGVybWluZV9jc3NfY2hhcmFjdGVyaXN0aWNzKHZvaWQpOwotZXh0ZXJuIGludCBjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsOwogZXh0ZXJuIGludCBjaHNjX2FsbG9jX3NlaV9hcmVhKHZvaWQpOwogZXh0ZXJuIHZvaWQgY2hzY19mcmVlX3NlaV9hcmVhKHZvaWQpOwogCkBAIC04Nyw4ICs5MiwxMSBAQAogZXh0ZXJuIGludCBjaHNjX3NlY20oc3RydWN0IGNoYW5uZWxfc3Vic3lzdGVtICosIGludCk7CiAKIGludCBjaHNjX2NocF92YXJ5KHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBvbik7Ci1pbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2NyaXB0aW9uKHN0cnVjdCBjaHBfaWQgY2hwaWQsCi0JCQkJCSAgICBzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgKmRlc2MpOworaW50IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBmbXQsIGludCByZm10LAorCQkJCSAgICAgaW50IGMsIGludCBtLAorCQkJCSAgICAgc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0ICpyZXNwKTsKK2ludCBjaHNjX2RldGVybWluZV9iYXNlX2NoYW5uZWxfcGF0aF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQsCisJCQkJCSAgc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjICpkZXNjKTsKIHZvaWQgY2hzY19jaHBfb25saW5lKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogdm9pZCBjaHNjX2NocF9vZmZsaW5lKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogaW50IGNoc2NfZ2V0X2NoYW5uZWxfbWVhc3VyZW1lbnRfY2hhcnMoc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2hzY19zY2guYyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzY19zY2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWNhODdhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5jCkBAIC0wLDAgKzEsODIwIEBACisvKgorICogRHJpdmVyIGZvciBzMzkwIGNoc2Mgc3ViY2hhbm5lbHMKKyAqCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqIEF1dGhvcihzKTogQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlIDxhc20vY2hzYy5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KKworI2luY2x1ZGUgImNpby5oIgorI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgorI2luY2x1ZGUgImNzcy5oIgorI2luY2x1ZGUgImNoc2Nfc2NoLmgiCisjaW5jbHVkZSAiaW9hc20uaCIKKworc3RhdGljIGRlYnVnX2luZm9fdCAqY2hzY19kZWJ1Z19tc2dfaWQ7CitzdGF0aWMgZGVidWdfaW5mb190ICpjaHNjX2RlYnVnX2xvZ19pZDsKKworI2RlZmluZSBDSFNDX01TRyhpbXAsIGFyZ3MuLi4pIGRvIHsJCQkJCVwKKwkJZGVidWdfc3ByaW50Zl9ldmVudChjaHNjX2RlYnVnX21zZ19pZCwgaW1wICwgIyNhcmdzKTsJXAorCX0gd2hpbGUgKDApCisKKyNkZWZpbmUgQ0hTQ19MT0coaW1wLCB0eHQpIGRvIHsJCQkJCVwKKwkJZGVidWdfdGV4dF9ldmVudChjaHNjX2RlYnVnX2xvZ19pZCwgaW1wICwgdHh0KTsJXAorCX0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkIENIU0NfTE9HX0hFWChpbnQgbGV2ZWwsIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpCit7CisJd2hpbGUgKGxlbmd0aCA+IDApIHsKKwkJZGVidWdfZXZlbnQoY2hzY19kZWJ1Z19sb2dfaWQsIGxldmVsLCBkYXRhLCBsZW5ndGgpOworCQlsZW5ndGggLT0gY2hzY19kZWJ1Z19sb2dfaWQtPmJ1Zl9zaXplOworCQlkYXRhICs9IGNoc2NfZGVidWdfbG9nX2lkLT5idWZfc2l6ZTsKKwl9Cit9CisKK01PRFVMRV9BVVRIT1IoIklCTSBDb3Jwb3JhdGlvbiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJkcml2ZXIgZm9yIHMzOTAgY2hzYyBzdWJjaGFubmVscyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCitzdGF0aWMgdm9pZCBjaHNjX3N1YmNoYW5uZWxfaXJxKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJc3RydWN0IGNoc2NfcHJpdmF0ZSAqcHJpdmF0ZSA9IHNjaC0+cHJpdmF0ZTsKKwlzdHJ1Y3QgY2hzY19yZXF1ZXN0ICpyZXF1ZXN0ID0gcHJpdmF0ZS0+cmVxdWVzdDsKKwlzdHJ1Y3QgaXJiICppcmIgPSAoc3RydWN0IGlyYiAqKV9fTENfSVJCOworCisJQ0hTQ19MT0coNCwgImlyYiIpOworCUNIU0NfTE9HX0hFWCg0LCBpcmIsIHNpemVvZigqaXJiKSk7CisJLyogQ29weSBpcmIgdG8gcHJvdmlkZWQgcmVxdWVzdCBhbmQgc2V0IGRvbmUuICovCisJaWYgKCFyZXF1ZXN0KSB7CisJCUNIU0NfTVNHKDAsICJJbnRlcnJ1cHQgb24gc2NoIDAuJXguJTA0eCB3aXRoIG5vIHJlcXVlc3RcbiIsCisJCQkgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubyk7CisJCXJldHVybjsKKwl9CisJcHJpdmF0ZS0+cmVxdWVzdCA9IE5VTEw7CisJbWVtY3B5KCZyZXF1ZXN0LT5pcmIsIGlyYiwgc2l6ZW9mKCppcmIpKTsKKwlzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CisJY29tcGxldGUoJnJlcXVlc3QtPmNvbXBsZXRpb24pOworCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKK30KKworc3RhdGljIGludCBjaHNjX3N1YmNoYW5uZWxfcHJvYmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgY2hzY19wcml2YXRlICpwcml2YXRlOworCWludCByZXQ7CisKKwlDSFNDX01TRyg2LCAiRGV0ZWN0ZWQgY2hzYyBzdWJjaGFubmVsIDAuJXguJTA0eFxuIiwKKwkJIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8pOworCXNjaC0+aXNjID0gQ0hTQ19TQ0hfSVNDOworCXByaXZhdGUgPSBremFsbG9jKHNpemVvZigqcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghcHJpdmF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisJcmV0ID0gY2lvX2VuYWJsZV9zdWJjaGFubmVsKHNjaCwgKHUzMikodW5zaWduZWQgbG9uZylzY2gpOworCWlmIChyZXQpIHsKKwkJQ0hTQ19NU0coMCwgIkZhaWxlZCB0byBlbmFibGUgMC4leC4lMDR4OiAlZFxuIiwKKwkJCSBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCByZXQpOworCQlrZnJlZShwcml2YXRlKTsKKwl9IGVsc2UgeworCQlzY2gtPnByaXZhdGUgPSBwcml2YXRlOworCQlpZiAoc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzKSB7CisJCQlzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOworCQkJa29iamVjdF91ZXZlbnQoJnNjaC0+ZGV2LmtvYmosIEtPQkpfQUREKTsKKwkJfQorCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2Nfc3ViY2hhbm5lbF9yZW1vdmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgY2hzY19wcml2YXRlICpwcml2YXRlOworCisJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOworCXByaXZhdGUgPSBzY2gtPnByaXZhdGU7CisJc2NoLT5wcml2YXRlID0gTlVMTDsKKwlpZiAocHJpdmF0ZS0+cmVxdWVzdCkgeworCQljb21wbGV0ZSgmcHJpdmF0ZS0+cmVxdWVzdC0+Y29tcGxldGlvbik7CisJCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKKwl9CisJa2ZyZWUocHJpdmF0ZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2Nfc3ViY2hhbm5lbF9zaHV0ZG93bihzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsKK30KKworc3RhdGljIHN0cnVjdCBjc3NfZGV2aWNlX2lkIGNoc2Nfc3ViY2hhbm5lbF9pZHNbXSA9IHsKKwl7IC5tYXRjaF9mbGFncyA9IDB4MSwgLnR5cGUgPVNVQkNIQU5ORUxfVFlQRV9DSFNDLCB9LAorCXsgLyogZW5kIG9mIGxpc3QgKi8gfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKGNzcywgY2hzY19zdWJjaGFubmVsX2lkcyk7CisKK3N0YXRpYyBzdHJ1Y3QgY3NzX2RyaXZlciBjaHNjX3N1YmNoYW5uZWxfZHJpdmVyID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5zdWJjaGFubmVsX3R5cGUgPSBjaHNjX3N1YmNoYW5uZWxfaWRzLAorCS5pcnEgPSBjaHNjX3N1YmNoYW5uZWxfaXJxLAorCS5wcm9iZSA9IGNoc2Nfc3ViY2hhbm5lbF9wcm9iZSwKKwkucmVtb3ZlID0gY2hzY19zdWJjaGFubmVsX3JlbW92ZSwKKwkuc2h1dGRvd24gPSBjaHNjX3N1YmNoYW5uZWxfc2h1dGRvd24sCisJLm5hbWUgPSAiY2hzY19zdWJjaGFubmVsIiwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfaW5pdF9kYmZzKHZvaWQpCit7CisJY2hzY19kZWJ1Z19tc2dfaWQgPSBkZWJ1Z19yZWdpc3RlcigiY2hzY19tc2ciLCAxNiwgMSwKKwkJCQkJICAgMTYgKiBzaXplb2YobG9uZykpOworCWlmICghY2hzY19kZWJ1Z19tc2dfaWQpCisJCWdvdG8gb3V0OworCWRlYnVnX3JlZ2lzdGVyX3ZpZXcoY2hzY19kZWJ1Z19tc2dfaWQsICZkZWJ1Z19zcHJpbnRmX3ZpZXcpOworCWRlYnVnX3NldF9sZXZlbChjaHNjX2RlYnVnX21zZ19pZCwgMik7CisJY2hzY19kZWJ1Z19sb2dfaWQgPSBkZWJ1Z19yZWdpc3RlcigiY2hzY19sb2ciLCAxNiwgMSwgMTYpOworCWlmICghY2hzY19kZWJ1Z19sb2dfaWQpCisJCWdvdG8gb3V0OworCWRlYnVnX3JlZ2lzdGVyX3ZpZXcoY2hzY19kZWJ1Z19sb2dfaWQsICZkZWJ1Z19oZXhfYXNjaWlfdmlldyk7CisJZGVidWdfc2V0X2xldmVsKGNoc2NfZGVidWdfbG9nX2lkLCAyKTsKKwlyZXR1cm4gMDsKK291dDoKKwlpZiAoY2hzY19kZWJ1Z19tc2dfaWQpCisJCWRlYnVnX3VucmVnaXN0ZXIoY2hzY19kZWJ1Z19tc2dfaWQpOworCXJldHVybiAtRU5PTUVNOworfQorCitzdGF0aWMgdm9pZCBjaHNjX3JlbW92ZV9kYmZzKHZvaWQpCit7CisJZGVidWdfdW5yZWdpc3RlcihjaHNjX2RlYnVnX2xvZ19pZCk7CisJZGVidWdfdW5yZWdpc3RlcihjaHNjX2RlYnVnX21zZ19pZCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfaW5pdF9zY2hfZHJpdmVyKHZvaWQpCit7CisJcmV0dXJuIGNzc19kcml2ZXJfcmVnaXN0ZXIoJmNoc2Nfc3ViY2hhbm5lbF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBjaHNjX2NsZWFudXBfc2NoX2RyaXZlcih2b2lkKQoreworCWNzc19kcml2ZXJfdW5yZWdpc3RlcigmY2hzY19zdWJjaGFubmVsX2RyaXZlcik7Cit9CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soY2hzY19sb2NrKTsKKworc3RhdGljIGludCBjaHNjX3N1YmNoYW5uZWxfbWF0Y2hfbmV4dF9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNjaC0+c2NoaWIucG1jdy5lbmEgJiYgIXNjc3dfZmN0bCgmc2NoLT5zY2hpYi5zY3N3KTsKK30KKworc3RhdGljIHN0cnVjdCBzdWJjaGFubmVsICpjaHNjX2dldF9uZXh0X3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisKKwlkZXYgPSBkcml2ZXJfZmluZF9kZXZpY2UoJmNoc2Nfc3ViY2hhbm5lbF9kcml2ZXIuZHJ2LAorCQkJCSBzY2ggPyAmc2NoLT5kZXYgOiBOVUxMLCBOVUxMLAorCQkJCSBjaHNjX3N1YmNoYW5uZWxfbWF0Y2hfbmV4dF9mcmVlKTsKKwlyZXR1cm4gZGV2ID8gdG9fc3ViY2hhbm5lbChkZXYpIDogTlVMTDsKK30KKworLyoqCisgKiBjaHNjX2FzeW5jKCkgLSB0cnkgdG8gc3RhcnQgYSBjaHNjIHJlcXVlc3QgYXN5bmNocm9ub3VzbHkKKyAqIEBjaHNjX2FyZWE6IHJlcXVlc3QgdG8gYmUgc3RhcnRlZAorICogQHJlcXVlc3Q6IHJlcXVlc3Qgc3RydWN0dXJlIHRvIGFzc29jaWF0ZQorICoKKyAqIFRyaWVzIHRvIHN0YXJ0IGEgY2hzYyByZXF1ZXN0IG9uIG9uZSBvZiB0aGUgZXhpc3RpbmcgY2hzYyBzdWJjaGFubmVscy4KKyAqIFJldHVybnM6CisgKiAgJTAgaWYgdGhlIHJlcXVlc3Qgd2FzIHBlcmZvcm1lZCBzeW5jaHJvbm91c2x5CisgKiAgJS1FSU5QUk9HUkVTUyBpZiB0aGUgcmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAqICAlLUVCVVNZIGlmIGFsbCBjaHNjIHN1YmNoYW5uZWxzIGFyZSBidXN5CisgKiAgJS1FTk9ERVYgaWYgbm8gY2hzYyBzdWJjaGFubmVscyBhcmUgYXZhaWxhYmxlCisgKiBDb250ZXh0OgorICogIGludGVycnVwdHMgZGlzYWJsZWQsIGNoc2NfbG9jayBoZWxkCisgKi8KK3N0YXRpYyBpbnQgY2hzY19hc3luYyhzdHJ1Y3QgY2hzY19hc3luY19hcmVhICpjaHNjX2FyZWEsCisJCSAgICAgIHN0cnVjdCBjaHNjX3JlcXVlc3QgKnJlcXVlc3QpCit7CisJaW50IGNjOworCXN0cnVjdCBjaHNjX3ByaXZhdGUgKnByaXZhdGU7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IE5VTEw7CisJaW50IHJldCA9IC1FTk9ERVY7CisJY2hhciBkYmZbMTBdOworCisJY2hzY19hcmVhLT5oZWFkZXIua2V5ID0gUEFHRV9ERUZBVUxUX0tFWTsKKwl3aGlsZSAoKHNjaCA9IGNoc2NfZ2V0X25leHRfc3ViY2hhbm5lbChzY2gpKSkgeworCQlzcGluX2xvY2soc2NoLT5sb2NrKTsKKwkJcHJpdmF0ZSA9IHNjaC0+cHJpdmF0ZTsKKwkJaWYgKHByaXZhdGUtPnJlcXVlc3QpIHsKKwkJCXNwaW5fdW5sb2NrKHNjaC0+bG9jayk7CisJCQlyZXQgPSAtRUJVU1k7CisJCQljb250aW51ZTsKKwkJfQorCQljaHNjX2FyZWEtPmhlYWRlci5zaWQgPSBzY2gtPnNjaGlkOworCQlDSFNDX0xPRygyLCAic2NoaWQiKTsKKwkJQ0hTQ19MT0dfSEVYKDIsICZzY2gtPnNjaGlkLCBzaXplb2Yoc2NoLT5zY2hpZCkpOworCQljYyA9IGNoc2MoY2hzY19hcmVhKTsKKwkJc3ByaW50ZihkYmYsICJjYzolZCIsIGNjKTsKKwkJQ0hTQ19MT0coMiwgZGJmKTsKKwkJc3dpdGNoIChjYykgeworCQljYXNlIDA6CisJCQlyZXQgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgMToKKwkJCXNjaC0+c2NoaWIuc2Nzdy5jbWQuZmN0bCB8PSBTQ1NXX0ZDVExfU1RBUlRfRlVOQzsKKwkJCXJldCA9IC1FSU5QUk9HUkVTUzsKKwkJCXByaXZhdGUtPnJlcXVlc3QgPSByZXF1ZXN0OworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0ID0gLUVOT0RFVjsKKwkJfQorCQlzcGluX3VubG9jayhzY2gtPmxvY2spOworCQlDSFNDX01TRygyLCAiY2hzYyBvbiAwLiV4LiUwNHggcmV0dXJuZWQgY2M9JWRcbiIsCisJCQkgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgY2MpOworCQlpZiAocmV0ID09IC1FSU5QUk9HUkVTUykKKwkJCXJldHVybiAtRUlOUFJPR1JFU1M7CisJCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2NfbG9nX2NvbW1hbmQoc3RydWN0IGNoc2NfYXN5bmNfYXJlYSAqY2hzY19hcmVhKQoreworCWNoYXIgZGJmWzEwXTsKKworCXNwcmludGYoZGJmLCAiQ0hTQzoleCIsIGNoc2NfYXJlYS0+aGVhZGVyLmNvZGUpOworCUNIU0NfTE9HKDAsIGRiZik7CisJQ0hTQ19MT0dfSEVYKDAsIGNoc2NfYXJlYSwgMzIpOworfQorCitzdGF0aWMgaW50IGNoc2NfZXhhbWluZV9pcmIoc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdCkKK3sKKwlpbnQgYmFja2VkX3VwOworCisJaWYgKCFzY3N3X3N0Y3RsKCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKQorCQlyZXR1cm4gLUVJTzsKKwliYWNrZWRfdXAgPSBzY3N3X2NzdGF0KCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ0hOX1NUQVRfQ0hBSU5fQ0hFQ0s7CisJcmVxdWVzdC0+aXJiLnNjc3cuY21kLmNzdGF0ICY9IH5TQ0hOX1NUQVRfQ0hBSU5fQ0hFQ0s7CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSA9PSAwKQorCQlyZXR1cm4gMDsKKwlpZiAoIWJhY2tlZF91cCkKKwkJcmV0dXJuIDA7CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9QUk9HX0NIRUNLKQorCQlyZXR1cm4gLUVJTzsKKwlpZiAoc2Nzd19jc3RhdCgmcmVxdWVzdC0+aXJiLnNjc3cpICYgU0NITl9TVEFUX1BST1RfQ0hFQ0spCisJCXJldHVybiAtRVBFUk07CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9DSE5fREFUQV9DSEspCisJCXJldHVybiAtRUFHQUlOOworCWlmIChzY3N3X2NzdGF0KCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKQorCQlyZXR1cm4gLUVBR0FJTjsKKwlyZXR1cm4gLUVJTzsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX3N0YXJ0KHZvaWQgX191c2VyICp1c2VyX2FyZWEpCit7CisJc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdDsKKwlzdHJ1Y3QgY2hzY19hc3luY19hcmVhICpjaHNjX2FyZWE7CisJaW50IHJldDsKKwljaGFyIGRiZlsxMF07CisKKwlpZiAoIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5keW5pbykKKwkJLyogSXQgbWFrZXMgbm8gc2Vuc2UgdG8gdHJ5LiAqLworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2hzY19hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0RNQSB8IEdGUF9LRVJORUwpOworCWlmICghY2hzY19hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXF1ZXN0ID0ga3phbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJlcXVlc3QpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaW5pdF9jb21wbGV0aW9uKCZyZXF1ZXN0LT5jb21wbGV0aW9uKTsKKwlpZiAoY29weV9mcm9tX3VzZXIoY2hzY19hcmVhLCB1c2VyX2FyZWEsIFBBR0VfU0laRSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJY2hzY19sb2dfY29tbWFuZChjaHNjX2FyZWEpOworCXNwaW5fbG9ja19pcnEoJmNoc2NfbG9jayk7CisJcmV0ID0gY2hzY19hc3luYyhjaHNjX2FyZWEsIHJlcXVlc3QpOworCXNwaW5fdW5sb2NrX2lycSgmY2hzY19sb2NrKTsKKwlpZiAocmV0ID09IC1FSU5QUk9HUkVTUykgeworCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZyZXF1ZXN0LT5jb21wbGV0aW9uKTsKKwkJcmV0ID0gY2hzY19leGFtaW5lX2lyYihyZXF1ZXN0KTsKKwl9CisJLyogY29weSBhcmVhIGJhY2sgdG8gdXNlciAqLworCWlmICghcmV0KQorCQlpZiAoY29weV90b191c2VyKHVzZXJfYXJlYSwgY2hzY19hcmVhLCBQQUdFX1NJWkUpKQorCQkJcmV0ID0gLUVGQVVMVDsKK291dF9mcmVlOgorCXNwcmludGYoZGJmLCAicmV0OiVkIiwgcmV0KTsKKwlDSFNDX0xPRygwLCBkYmYpOworCWtmcmVlKHJlcXVlc3QpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyljaHNjX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9pbmZvX2NoYW5uZWxfcGF0aCh2b2lkIF9fdXNlciAqdXNlcl9jZCkKK3sKKwlzdHJ1Y3QgY2hzY19jaHBfY2QgKmNkOworCWludCByZXQsIGNjb2RlOworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1MzIgOiAyOworCQl1MzIgbSA6IDE7CisJCXUzMiA6IDE7CisJCXUzMiBmbXQxIDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogODsKKwkJdTMyIGZpcnN0X2NocGlkIDogODsKKwkJdTMyIDogMjQ7CisJCXUzMiBsYXN0X2NocGlkIDogODsKKwkJdTMyIDogMzI7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAyMF07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNjcGNkX2FyZWE7CisKKwlzY3BjZF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NwY2RfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY2QgPSBremFsbG9jKHNpemVvZigqY2QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNkKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjZCwgdXNlcl9jZCwgc2l6ZW9mKCpjZCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNjcGNkX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOworCXNjcGNkX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAyODsKKwlzY3BjZF9hcmVhLT5tID0gY2QtPm07CisJc2NwY2RfYXJlYS0+Zm10MSA9IGNkLT5mbXQ7CisJc2NwY2RfYXJlYS0+Y3NzaWQgPSBjZC0+Y2hwaWQuY3NzaWQ7CisJc2NwY2RfYXJlYS0+Zmlyc3RfY2hwaWQgPSBjZC0+Y2hwaWQuaWQ7CisJc2NwY2RfYXJlYS0+bGFzdF9jaHBpZCA9IGNkLT5jaHBpZC5pZDsKKworCWNjb2RlID0gY2hzYyhzY3BjZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2NwY2RfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNjcGNkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjcGNkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNkLT5jcGNiLCAmc2NwY2RfYXJlYS0+cmVzcG9uc2UsIHNjcGNkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NkLCBjZCwgc2l6ZW9mKCpjZCkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NwY2RfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2luZm9fY3Uodm9pZCBfX3VzZXIgKnVzZXJfY2QpCit7CisJc3RydWN0IGNoc2NfY3VfY2QgKmNkOworCWludCByZXQsIGNjb2RlOworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1MzIgOiAyOworCQl1MzIgbSA6IDE7CisJCXUzMiA6IDE7CisJCXUzMiBmbXQxIDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogODsKKwkJdTMyIGZpcnN0X2N1biA6IDg7CisJCXUzMiA6IDI0OworCQl1MzIgbGFzdF9jdW4gOiA4OworCQl1MzIgOiAzMjsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1OCBkYXRhW1BBR0VfU0laRSAtIDIwXTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqc2N1Y2RfYXJlYTsKKworCXNjdWNkX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYgKCFzY3VjZF9hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwljZCA9IGt6YWxsb2Moc2l6ZW9mKCpjZCksIEdGUF9LRVJORUwpOworCWlmICghY2QpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKGNvcHlfZnJvbV91c2VyKGNkLCB1c2VyX2NkLCBzaXplb2YoKmNkKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJc2N1Y2RfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJc2N1Y2RfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDI4OworCXNjdWNkX2FyZWEtPm0gPSBjZC0+bTsKKwlzY3VjZF9hcmVhLT5mbXQxID0gY2QtPmZtdDsKKwlzY3VjZF9hcmVhLT5jc3NpZCA9IGNkLT5jc3NpZDsKKwlzY3VjZF9hcmVhLT5maXJzdF9jdW4gPSBjZC0+Y3VuOworCXNjdWNkX2FyZWEtPmxhc3RfY3VuID0gY2QtPmN1bjsKKworCWNjb2RlID0gY2hzYyhzY3VjZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2N1Y2RfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNjdWNkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjdWNkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNkLT5jdWNiLCAmc2N1Y2RfYXJlYS0+cmVzcG9uc2UsIHNjdWNkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NkLCBjZCwgc2l6ZW9mKCpjZCkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2N1Y2RfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2luZm9fc2NoX2N1KHZvaWQgX191c2VyICp1c2VyX2N1ZCkKK3sKKwlzdHJ1Y3QgY2hzY19zY2hfY3VkICpjdWQ7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogNTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgOiAyOworCQl1MzIgc3NpZCA6IDI7CisJCXUzMiBmaXJzdF9zY2ggOiAxNjsKKwkJdTMyIDogODsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIGxhc3Rfc2NoIDogMTY7CisJCXUzMiA6IDMyOworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzc2N1ZF9hcmVhOworCisJc3NjdWRfYXJlYSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNzY3VkX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCWN1ZCA9IGt6YWxsb2Moc2l6ZW9mKCpjdWQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWN1ZCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoY3VkLCB1c2VyX2N1ZCwgc2l6ZW9mKCpjdWQpKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlzc2N1ZF9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKKwlzc2N1ZF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMDY7CisJc3NjdWRfYXJlYS0+bSA9IGN1ZC0+c2NoaWQubTsKKwlzc2N1ZF9hcmVhLT5mbXQxID0gY3VkLT5mbXQ7CisJc3NjdWRfYXJlYS0+c3NpZCA9IGN1ZC0+c2NoaWQuc3NpZDsKKwlzc2N1ZF9hcmVhLT5maXJzdF9zY2ggPSBjdWQtPnNjaGlkLnNjaF9ubzsKKwlzc2N1ZF9hcmVhLT5jc3NpZCA9IGN1ZC0+c2NoaWQuY3NzaWQ7CisJc3NjdWRfYXJlYS0+bGFzdF9zY2ggPSBjdWQtPnNjaGlkLnNjaF9ubzsKKworCWNjb2RlID0gY2hzYyhzc2N1ZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc3NjdWRfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNzY3VkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNzY3VkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmN1ZC0+c2N1YiwgJnNzY3VkX2FyZWEtPnJlc3BvbnNlLCBzc2N1ZF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9jdWQsIGN1ZCwgc2l6ZW9mKCpjdWQpKSkKKwkJcmV0ID0gLUVGQVVMVDsKKwllbHNlCisJCXJldCA9IDA7CitvdXRfZnJlZToKKwlrZnJlZShjdWQpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzc2N1ZF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfY29uZl9pbmZvKHZvaWQgX191c2VyICp1c2VyX2NpKQoreworCXN0cnVjdCBjaHNjX2NvbmZfaW5mbyAqY2k7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogMTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiA2OworCQl1MzIgc3NpZCA6IDI7CisJCXUzMiA6IDg7CisJCXU2NCA6IDY0OworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY2lfYXJlYTsKKworCXNjaV9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NpX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCWNpID0ga3phbGxvYyhzaXplb2YoKmNpKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjaSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoY2ksIHVzZXJfY2ksIHNpemVvZigqY2kpKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlzY2lfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJc2NpX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAxMjsKKwlzY2lfYXJlYS0+bSA9IGNpLT5pZC5tOworCXNjaV9hcmVhLT5mbXQxID0gY2ktPmZtdDsKKwlzY2lfYXJlYS0+Y3NzaWQgPSBjaS0+aWQuY3NzaWQ7CisJc2NpX2FyZWEtPnNzaWQgPSBjaS0+aWQuc3NpZDsKKworCWNjb2RlID0gY2hzYyhzY2lfYXJlYSk7CisJaWYgKGNjb2RlICE9IDApIHsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKHNjaV9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2NpOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjaV9hcmVhLT5yZXNwb25zZS5jb2RlKTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJbWVtY3B5KCZjaS0+c2NpZCwgJnNjaV9hcmVhLT5yZXNwb25zZSwgc2NpX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NpLCBjaSwgc2l6ZW9mKCpjaSkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNpKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NpX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9jb25mX2NvbXBfbGlzdCh2b2lkIF9fdXNlciAqdXNlcl9jY2wpCit7CisJc3RydWN0IGNoc2NfY29tcF9saXN0ICpjY2w7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiBjdHlwZSA6IDg7CisJCXUzMiA6IDQ7CisJCXUzMiBmbXQgOiA0OworCQl1MzIgOiAxNjsKKwkJdTY0IDogNjQ7CisJCXUzMiBsaXN0X3Bhcm1bMl07CisJCXU2NCA6IDY0OworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMzZdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY2NsX2FyZWE7CisJc3RydWN0IHsKKwkJdTMyIG0gOiAxOworCQl1MzIgOiAzMTsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogMTY7CisJCXUzMiBjaHBpZCA6IDg7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKmNocGlkX3Bhcm07CisJc3RydWN0IHsKKwkJdTMyIGZfY3NzaWQgOiA4OworCQl1MzIgbF9jc3NpZCA6IDg7CisJCXUzMiA6IDE2OworCQl1MzIgcmVzOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpjc3NpZHNfcGFybTsKKworCXNjY2xfYXJlYSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjY2xfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY2NsID0ga3phbGxvYyhzaXplb2YoKmNjbCksIEdGUF9LRVJORUwpOworCWlmICghY2NsKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjY2wsIHVzZXJfY2NsLCBzaXplb2YoKmNjbCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNjY2xfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMjA7CisJc2NjbF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMzA7CisJc2NjbF9hcmVhLT5mbXQgPSBjY2wtPnJlcS5mbXQ7CisJc2NjbF9hcmVhLT5jdHlwZSA9IGNjbC0+cmVxLmN0eXBlOworCXN3aXRjaCAoc2NjbF9hcmVhLT5jdHlwZSkgeworCWNhc2UgQ0NMX0NVX09OX0NIUDoKKwljYXNlIENDTF9JT1BfQ0hQOgorCQljaHBpZF9wYXJtID0gKHZvaWQgKikmc2NjbF9hcmVhLT5saXN0X3Bhcm07CisJCWNocGlkX3Bhcm0tPm0gPSBjY2wtPnJlcS5jaHBpZC5tOworCQljaHBpZF9wYXJtLT5jc3NpZCA9IGNjbC0+cmVxLmNocGlkLmNocC5jc3NpZDsKKwkJY2hwaWRfcGFybS0+Y2hwaWQgPSBjY2wtPnJlcS5jaHBpZC5jaHAuaWQ7CisJCWJyZWFrOworCWNhc2UgQ0NMX0NTU19JTUc6CisJY2FzZSBDQ0xfQ1NTX0lNR19DT05GX0NIQVI6CisJCWNzc2lkc19wYXJtID0gKHZvaWQgKikmc2NjbF9hcmVhLT5saXN0X3Bhcm07CisJCWNzc2lkc19wYXJtLT5mX2Nzc2lkID0gY2NsLT5yZXEuY3NzaWRzLmZfY3NzaWQ7CisJCWNzc2lkc19wYXJtLT5sX2Nzc2lkID0gY2NsLT5yZXEuY3NzaWRzLmxfY3NzaWQ7CisJCWJyZWFrOworCX0KKwljY29kZSA9IGNoc2Moc2NjbF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2NjbF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2NjbDogcmVzcG9uc2UgY29kZT0leFxuIiwKKwkJCSBzY2NsX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNjbC0+c2NjbCwgJnNjY2xfYXJlYS0+cmVzcG9uc2UsIHNjY2xfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfY2NsLCBjY2wsIHNpemVvZigqY2NsKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoY2NsKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NjbF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfY2hwZCh2b2lkIF9fdXNlciAqdXNlcl9jaHBkKQoreworCXN0cnVjdCBjaHNjX2NwZF9pbmZvICpjaHBkOworCWludCByZXQ7CisKKwljaHBkID0ga3phbGxvYyhzaXplb2YoKmNocGQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNocGQpCisJCXJldHVybiAtRU5PTUVNOworCWlmIChjb3B5X2Zyb21fdXNlcihjaHBkLCB1c2VyX2NocGQsIHNpemVvZigqY2hwZCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXJldCA9IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjKGNocGQtPmNocGlkLCBjaHBkLT5mbXQsCisJCQkJCSAgICAgICBjaHBkLT5yZm10LCBjaHBkLT5jLCBjaHBkLT5tLAorCQkJCQkgICAgICAgJmNocGQtPmNocGRiKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9mcmVlOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9jaHBkLCBjaHBkLCBzaXplb2YoKmNocGQpKSkKKwkJcmV0ID0gLUVGQVVMVDsKK291dF9mcmVlOgorCWtmcmVlKGNocGQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9kY2FsKHZvaWQgX191c2VyICp1c2VyX2RjYWwpCit7CisJc3RydWN0IGNoc2NfZGNhbCAqZGNhbDsKKwlpbnQgcmV0LCBjY29kZTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdTMyIGF0eXBlIDogODsKKwkJdTMyIDogNDsKKwkJdTMyIGZtdCA6IDQ7CisJCXUzMiA6IDE2OworCQl1MzIgcmVzMFsyXTsKKwkJdTMyIGxpc3RfcGFybVsyXTsKKwkJdTMyIHJlczFbMl07CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAzNl07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNkY2FsX2FyZWE7CisKKwlzZGNhbF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2RjYWxfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJZGNhbCA9IGt6YWxsb2Moc2l6ZW9mKCpkY2FsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkY2FsKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihkY2FsLCB1c2VyX2RjYWwsIHNpemVvZigqZGNhbCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNkY2FsX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDIwOworCXNkY2FsX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAzNDsKKwlzZGNhbF9hcmVhLT5hdHlwZSA9IGRjYWwtPnJlcS5hdHlwZTsKKwlzZGNhbF9hcmVhLT5mbXQgPSBkY2FsLT5yZXEuZm10OworCW1lbWNweSgmc2RjYWxfYXJlYS0+bGlzdF9wYXJtLCAmZGNhbC0+cmVxLmxpc3RfcGFybSwKKwkgICAgICAgc2l6ZW9mKHNkY2FsX2FyZWEtPmxpc3RfcGFybSkpOworCisJY2NvZGUgPSBjaHNjKHNkY2FsX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzZGNhbF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2RjYWw6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc2RjYWxfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmZGNhbC0+c2RjYWwsICZzZGNhbF9hcmVhLT5yZXNwb25zZSwKKwkgICAgICAgc2RjYWxfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfZGNhbCwgZGNhbCwgc2l6ZW9mKCpkY2FsKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoZGNhbCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXNkY2FsX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBsb25nIGNoc2NfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlDSFNDX01TRygyLCAiY2hzY19pb2N0bCBjYWxsZWQsIGNtZD0leFxuIiwgY21kKTsKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgQ0hTQ19TVEFSVDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfc3RhcnQoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DSEFOTkVMX1BBVEg6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fY2hhbm5lbF9wYXRoKCh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDSFNDX0lORk9fQ1U6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fY3UoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19TQ0hfQ1U6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fc2NoX2N1KCh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDSFNDX0lORk9fQ0k6CisJCXJldHVybiBjaHNjX2lvY3RsX2NvbmZfaW5mbygodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX0NDTDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfY29uZl9jb21wX2xpc3QoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DUEQ6CisJCXJldHVybiBjaHNjX2lvY3RsX2NocGQoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19EQ0FMOgorCQlyZXR1cm4gY2hzY19pb2N0bF9kY2FsKCh2b2lkIF9fdXNlciAqKWFyZyk7CisJZGVmYXVsdDogLyogdW5rbm93biBpb2N0bCBudW1iZXIgKi8KKwkJcmV0dXJuIC1FTk9JT0NUTENNRDsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNoc2NfZm9wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkudW5sb2NrZWRfaW9jdGwgPSBjaHNjX2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPSBjaHNjX2lvY3RsLAorfTsKKworc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIGNoc2NfbWlzY19kZXZpY2UgPSB7CisJLm1pbm9yID0gTUlTQ19EWU5BTUlDX01JTk9SLAorCS5uYW1lID0gImNoc2MiLAorCS5mb3BzID0gJmNoc2NfZm9wcywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfbWlzY19pbml0KHZvaWQpCit7CisJcmV0dXJuIG1pc2NfcmVnaXN0ZXIoJmNoc2NfbWlzY19kZXZpY2UpOworfQorCitzdGF0aWMgdm9pZCBjaHNjX21pc2NfY2xlYW51cCh2b2lkKQoreworCW1pc2NfZGVyZWdpc3RlcigmY2hzY19taXNjX2RldmljZSk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2Nfc2NoX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gY2hzY19pbml0X2RiZnMoKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCWlzY19yZWdpc3RlcihDSFNDX1NDSF9JU0MpOworCXJldCA9IGNoc2NfaW5pdF9zY2hfZHJpdmVyKCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZGJmOworCXJldCA9IGNoc2NfbWlzY19pbml0KCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZHJpdmVyOworCXJldHVybiByZXQ7CitvdXRfZHJpdmVyOgorCWNoc2NfY2xlYW51cF9zY2hfZHJpdmVyKCk7CitvdXRfZGJmOgorCWlzY191bnJlZ2lzdGVyKENIU0NfU0NIX0lTQyk7CisJY2hzY19yZW1vdmVfZGJmcygpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBjaHNjX3NjaF9leGl0KHZvaWQpCit7CisJY2hzY19taXNjX2NsZWFudXAoKTsKKwljaHNjX2NsZWFudXBfc2NoX2RyaXZlcigpOworCWlzY191bnJlZ2lzdGVyKENIU0NfU0NIX0lTQyk7CisJY2hzY19yZW1vdmVfZGJmcygpOworfQorCittb2R1bGVfaW5pdChjaHNjX3NjaF9pbml0KTsKK21vZHVsZV9leGl0KGNoc2Nfc2NoX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5oIGIvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWViZmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2Nfc2NoLmgKQEAgLTAsMCArMSwxMyBAQAorI2lmbmRlZiBfQ0hTQ19TQ0hfSAorI2RlZmluZSBfQ0hTQ19TQ0hfSAorCitzdHJ1Y3QgY2hzY19yZXF1ZXN0IHsKKwlzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOworCXN0cnVjdCBpcmIgaXJiOworfTsKKworc3RydWN0IGNoc2NfcHJpdmF0ZSB7CisJc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdDsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaW8uYyBiL2RyaXZlcnMvczM5MC9jaW8vY2lvLmMKaW5kZXggODJjNmEyZC4uMzNiZmY4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jaW8uYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Npby5jCkBAIC0yLDcgKzIsNyBAQAogICogIGRyaXZlcnMvczM5MC9jaW8vY2lvLmMKICAqICAgUy8zOTAgY29tbW9uIEkvTyByb3V0aW5lcyAtLSBsb3cgbGV2ZWwgaS9vIGNhbGxzCiAgKgotICogICAgQ29weXJpZ2h0IChDKSBJQk0gQ29ycC4gMTk5OSwyMDA2CisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTksMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgQXJuZCBCZXJnbWFubiAoYXJuZGJAZGUuaWJtLmNvbSkKQEAgLTI0LDcgKzI0LDkgQEAKICNpbmNsdWRlIDxhc20vaXBsLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSA8YXNtL2FpcnEuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CiAjaW5jbHVkZSA8YXNtL2NwdS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjc3MuaCIKICNpbmNsdWRlICJjaHNjLmgiCkBAIC03Miw3ICs3NCw2IEBACiAJCWRlYnVnX3VucmVnaXN0ZXIoY2lvX2RlYnVnX3RyYWNlX2lkKTsKIAlpZiAoY2lvX2RlYnVnX2Nyd19pZCkKIAkJZGVidWdfdW5yZWdpc3RlcihjaW9fZGVidWdfY3J3X2lkKTsKLQlwcmludGsoS0VSTl9XQVJOSU5HImNpbzogY291bGQgbm90IGluaXRpYWxpemUgZGVidWdnaW5nXG4iKTsKIAlyZXR1cm4gLTE7CiB9CiAKQEAgLTEyOCw3ICsxMjksNyBAQAogCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAlpcnFfZW50ZXIgKCk7CiAJc3Bpbl9sb2NrKHNjaC0+bG9jayk7Ci0JbWVtY3B5ICgmc2NoLT5zY2hpYi5zY3N3LCAmaXJiLT5zY3N3LCBzaXplb2YgKHN0cnVjdCBzY3N3KSk7CisJbWVtY3B5KCZzY2gtPnNjaGliLnNjc3csICZpcmItPnNjc3csIHNpemVvZih1bmlvbiBzY3N3KSk7CiAJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5pcnEpCiAJCXNjaC0+ZHJpdmVyLT5pcnEoc2NoKTsKIAlzcGluX3VubG9jayhzY2gtPmxvY2spOwpAQCAtMTY3LDMwICsxNjgsMzAgQEAKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKLQlzdHJ1Y3Qgb3JiICpvcmI7CisJdW5pb24gb3JiICpvcmI7CiAKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgInN0SU8iKTsKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgc2NoLT5kZXYuYnVzX2lkKTsKIAogCW9yYiA9ICZ0b19pb19wcml2YXRlKHNjaCktPm9yYjsKIAkvKiBzY2ggaXMgYWx3YXlzIHVuZGVyIDJHLiAqLwotCW9yYi0+aW50cGFybSA9ICh1MzIpKGFkZHJfdClzY2g7Ci0Jb3JiLT5mbXQgPSAxOworCW9yYi0+Y21kLmludHBhcm0gPSAodTMyKShhZGRyX3Qpc2NoOworCW9yYi0+Y21kLmZtdCA9IDE7CiAKLQlvcmItPnBmY2ggPSBzY2gtPm9wdGlvbnMucHJlZmV0Y2ggPT0gMDsKLQlvcmItPnNwbmQgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZDsKLQlvcmItPnNzaWMgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZCAmJiBzY2gtPm9wdGlvbnMuaW50ZXI7Ci0Jb3JiLT5scG0gPSAobHBtICE9IDApID8gbHBtIDogc2NoLT5scG07CisJb3JiLT5jbWQucGZjaCA9IHNjaC0+b3B0aW9ucy5wcmVmZXRjaCA9PSAwOworCW9yYi0+Y21kLnNwbmQgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZDsKKwlvcmItPmNtZC5zc2ljID0gc2NoLT5vcHRpb25zLnN1c3BlbmQgJiYgc2NoLT5vcHRpb25zLmludGVyOworCW9yYi0+Y21kLmxwbSA9IChscG0gIT0gMCkgPyBscG0gOiBzY2gtPmxwbTsKICNpZmRlZiBDT05GSUdfNjRCSVQKIAkvKgogCSAqIGZvciA2NCBiaXQgd2UgYWx3YXlzIHN1cHBvcnQgNjQgYml0IElEQVdzIHdpdGggNGsgcGFnZSBzaXplIG9ubHkKIAkgKi8KLQlvcmItPmM2NCA9IDE7Ci0Jb3JiLT5pMmsgPSAwOworCW9yYi0+Y21kLmM2NCA9IDE7CisJb3JiLT5jbWQuaTJrID0gMDsKICNlbmRpZgotCW9yYi0+a2V5ID0ga2V5ID4+IDQ7CisJb3JiLT5jbWQua2V5ID0ga2V5ID4+IDQ7CiAJLyogaXNzdWUgIlN0YXJ0IFN1YmNoYW5uZWwiICovCi0Jb3JiLT5jcGEgPSAoX191MzIpIF9fcGEoY3BhKTsKKwlvcmItPmNtZC5jcGEgPSAoX191MzIpIF9fcGEoY3BhKTsKIAljY29kZSA9IHNzY2goc2NoLT5zY2hpZCwgb3JiKTsKIAogCS8qIHByb2Nlc3MgY29uZGl0aW9uIGNvZGUgKi8KQEAgLTIwMiw3ICsyMDMsNyBAQAogCQkvKgogCQkgKiBpbml0aWFsaXplIGRldmljZSBzdGF0dXMgaW5mb3JtYXRpb24KIAkJICovCi0JCXNjaC0+c2NoaWIuc2Nzdy5hY3RsIHw9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOworCQlzY2gtPnNjaGliLnNjc3cuY21kLmFjdGwgfD0gU0NTV19BQ1RMX1NUQVJUX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToJCS8qIHN0YXR1cyBwZW5kaW5nICovCiAJY2FzZSAyOgkJLyogYnVzeSAqLwpAQCAtMjM3LDcgKzIzOCw3IEBACiAKIAlzd2l0Y2ggKGNjb2RlKSB7CiAJY2FzZSAwOgotCQlzY2gtPnNjaGliLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfUkVTVU1FX1BFTkQ7CisJCXNjaC0+c2NoaWIuc2Nzdy5jbWQuYWN0bCB8PSBTQ1NXX0FDVExfUkVTVU1FX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToKIAkJcmV0dXJuIC1FQlVTWTsKQEAgLTI3Nyw3ICsyNzgsNyBAQAogCiAJc3dpdGNoIChjY29kZSkgewogCWNhc2UgMDoKLQkJc2NoLT5zY2hpYi5zY3N3LmFjdGwgfD0gU0NTV19BQ1RMX0hBTFRfUEVORDsKKwkJc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsIHw9IFNDU1dfQUNUTF9IQUxUX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToJCS8qIHN0YXR1cyBwZW5kaW5nICovCiAJY2FzZSAyOgkJLyogYnVzeSAqLwpAQCAtMzEyLDcgKzMxMyw3IEBACiAKIAlzd2l0Y2ggKGNjb2RlKSB7CiAJY2FzZSAwOgotCQlzY2gtPnNjaGliLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfQ0xFQVJfUEVORDsKKwkJc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsIHw9IFNDU1dfQUNUTF9DTEVBUl9QRU5EOwogCQlyZXR1cm4gMDsKIAlkZWZhdWx0OgkJLyogZGV2aWNlIG5vdCBvcGVyYXRpb25hbCAqLwogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTM4Nyw4ICszODgsMTAgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0vKgotICogRW5hYmxlIHN1YmNoYW5uZWwuCisvKioKKyAqIGNpb19lbmFibGVfc3ViY2hhbm5lbCAtIGVuYWJsZSBhIHN1YmNoYW5uZWwuCisgKiBAc2NoOiBzdWJjaGFubmVsIHRvIGJlIGVuYWJsZWQKKyAqIEBpbnRwYXJtOiBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyIHRvIHNldAogICovCiBpbnQgY2lvX2VuYWJsZV9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHUzMiBpbnRwYXJtKQogewpAQCAtNDM0LDEyICs0MzcsMTMgQEAKIAlDSU9fVFJBQ0VfRVZFTlQgKDIsIGRiZl90eHQpOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaW9fZW5hYmxlX3N1YmNoYW5uZWwpOwogCi0vKgotICogRGlzYWJsZSBzdWJjaGFubmVsLgorLyoqCisgKiBjaW9fZGlzYWJsZV9zdWJjaGFubmVsIC0gZGlzYWJsZSBhIHN1YmNoYW5uZWwuCisgKiBAc2NoOiBzdWJjaGFubmVsIHRvIGRpc2FibGUKICAqLwotaW50Ci1jaW9fZGlzYWJsZV9zdWJjaGFubmVsIChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoraW50IGNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKQEAgLTQ1NSw3ICs0NTksNyBAQAogCWlmIChjY29kZSA9PSAzKQkJLyogTm90IG9wZXJhdGlvbmFsLiAqLwogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQorCWlmIChzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgIT0gMCkKIAkJLyoKIAkJICogdGhlIGRpc2FibGUgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIHdoaWxlIHRoZXJlIGFyZQogCQkgKiAgcmVxdWVzdHMgcGVuZGluZyBmb3IgY29tcGxldGlvbiAhCkBAIC00ODQsNiArNDg4LDcgQEAKIAlDSU9fVFJBQ0VfRVZFTlQgKDIsIGRiZl90eHQpOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaW9fZGlzYWJsZV9zdWJjaGFubmVsKTsKIAogaW50IGNpb19jcmVhdGVfc2NoX2xvY2soc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKQEAgLTQ5NCwyNyArNDk5LDYxIEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qCi0gKiBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbCgpCitzdGF0aWMgaW50IGNpb19jaGVja19kZXZub19ibGFja2xpc3RlZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCWlmIChpc19ibGFja2xpc3RlZChzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWIucG1jdy5kZXYpKSB7CisJCS8qCisJCSAqIFRoaXMgZGV2aWNlIG11c3Qgbm90IGJlIGtub3duIHRvIExpbnV4LiBTbyB3ZSBzaW1wbHkKKwkJICogc2F5IHRoYXQgdGhlcmUgaXMgbm8gZGV2aWNlIGFuZCByZXR1cm4gRU5PREVWLgorCQkgKi8KKwkJQ0lPX01TR19FVkVOVCg2LCAiQmxhY2tsaXN0ZWQgZGV2aWNlIGRldGVjdGVkICIKKwkJCSAgICAgICJhdCBkZXZubyAlMDRYLCBzdWJjaGFubmVsIHNldCAleFxuIiwKKwkJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5kZXYsIHNjaC0+c2NoaWQuc3NpZCk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjaW9fdmFsaWRhdGVfaW9fc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCS8qIEluaXRpYWxpemF0aW9uIGZvciBpbyBzdWJjaGFubmVscy4gKi8KKwlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIERldm5vIGlzIHZhbGlkLiAqLworCXJldHVybiBjaW9fY2hlY2tfZGV2bm9fYmxhY2tsaXN0ZWQoc2NoKTsKK30KKworc3RhdGljIGludCBjaW9fdmFsaWRhdGVfbXNnX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwkvKiBJbml0aWFsaXphdGlvbiBmb3IgbWVzc2FnZSBzdWJjaGFubmVscy4gKi8KKwlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIERldm5vIGlzIHZhbGlkLiAqLworCXJldHVybiBjaW9fY2hlY2tfZGV2bm9fYmxhY2tsaXN0ZWQoc2NoKTsKK30KKworLyoqCisgKiBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbCAtIGJhc2ljIHZhbGlkYXRpb24gb2Ygc3ViY2hhbm5lbAorICogQHNjaDogc3ViY2hhbm5lbCBzdHJ1Y3R1cmUgdG8gYmUgZmlsbGVkIG91dAorICogQHNjaGlkOiBzdWJjaGFubmVsIGlkCiAgKgogICogRmluZCBvdXQgc3ViY2hhbm5lbCB0eXBlIGFuZCBpbml0aWFsaXplIHN0cnVjdCBzdWJjaGFubmVsLgogICogUmV0dXJuIGNvZGVzOgotICogICBTVUJDSEFOTkVMX1RZUEVfSU8gZm9yIGEgbm9ybWFsIGlvIHN1YmNoYW5uZWwKLSAqICAgU1VCQ0hBTk5FTF9UWVBFX0NIU0MgZm9yIGEgY2hzYyBzdWJjaGFubmVsCi0gKiAgIFNVQkNIQU5ORUxfVFlQRV9NRVNTQUdFIGZvciBhIG1lc3NhZ2luZyBzdWJjaGFubmVsCi0gKiAgIFNVQkNIQU5ORUxfVFlQRV9BRE0gZm9yIGEgYWRtKD8pIHN1YmNoYW5uZWwKKyAqICAgMCBvbiBzdWNjZXNzCiAgKiAgIC1FTlhJTyBmb3Igbm9uLWRlZmluZWQgc3ViY2hhbm5lbHMKLSAqICAgLUVOT0RFViBmb3Igc3ViY2hhbm5lbHMgd2l0aCBpbnZhbGlkIGRldmljZSBudW1iZXIgb3IgYmxhY2tsaXN0ZWQgZGV2aWNlcworICogICAtRU5PREVWIGZvciBpbnZhbGlkIHN1YmNoYW5uZWxzIG9yIGJsYWNrbGlzdGVkIGRldmljZXMKKyAqICAgLUVJTyBmb3Igc3ViY2hhbm5lbHMgaW4gYW4gaW52YWxpZCBzdWJjaGFubmVsIHNldAogICovCi1pbnQKLWNpb192YWxpZGF0ZV9zdWJjaGFubmVsIChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKK2ludCBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKIAlpbnQgZXJyOwogCi0Jc3ByaW50ZiAoZGJmX3R4dCwgInZhbHNjaCV4Iiwgc2NoaWQuc2NoX25vKTsKLQlDSU9fVFJBQ0VfRVZFTlQgKDQsIGRiZl90eHQpOworCXNwcmludGYoZGJmX3R4dCwgInZhbHNjaCV4Iiwgc2NoaWQuc2NoX25vKTsKKwlDSU9fVFJBQ0VfRVZFTlQoNCwgZGJmX3R4dCk7CiAKIAkvKiBOdWtlIGFsbCBmaWVsZHMuICovCiAJbWVtc2V0KHNjaCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsKSk7CkBAIC01NDYsNjUgKzU4NSwyMSBAQAogCS8qIENvcHkgc3ViY2hhbm5lbCB0eXBlIGZyb20gcGF0aCBtYW5hZ2VtZW50IGNvbnRyb2wgd29yZC4gKi8KIAlzY2gtPnN0ID0gc2NoLT5zY2hpYi5wbWN3LnN0OwogCi0JLyoKLQkgKiAuLi4ganVzdCBiZWluZyBjdXJpb3VzIHdlIGNoZWNrIGZvciBub24gSS9PIHN1YmNoYW5uZWxzCi0JICovCi0JaWYgKHNjaC0+c3QgIT0gMCkgewotCQlDSU9fTVNHX0VWRU5UKDQsICJTdWJjaGFubmVsIDAuJXguJTA0eCByZXBvcnRzICIKLQkJCSAgICAgICJub24tSS9PIHN1YmNoYW5uZWwgdHlwZSAlMDRYXG4iLAotCQkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgc2NoLT5zdCk7Ci0JCS8qIFdlIHN0b3AgaGVyZSBmb3Igbm9uLWlvIHN1YmNoYW5uZWxzLiAqLwotCQllcnIgPSBzY2gtPnN0OwotCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjaC0+c3QpIHsKKwljYXNlIFNVQkNIQU5ORUxfVFlQRV9JTzoKKwkJZXJyID0gY2lvX3ZhbGlkYXRlX2lvX3N1YmNoYW5uZWwoc2NoKTsKKwkJYnJlYWs7CisJY2FzZSBTVUJDSEFOTkVMX1RZUEVfTVNHOgorCQllcnIgPSBjaW9fdmFsaWRhdGVfbXNnX3N1YmNoYW5uZWwoc2NoKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZXJyID0gMDsKIAl9Ci0KLQkvKiBJbml0aWFsaXphdGlvbiBmb3IgaW8gc3ViY2hhbm5lbHMuICovCi0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2gtPnNjaGliKSkgewotCQllcnIgPSAtRU5PREVWOworCWlmIChlcnIpCiAJCWdvdG8gb3V0OwotCX0KIAotCS8qIERldm5vIGlzIHZhbGlkLiAqLwotCWlmIChpc19ibGFja2xpc3RlZCAoc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGliLnBtY3cuZGV2KSkgewotCQkvKgotCQkgKiBUaGlzIGRldmljZSBtdXN0IG5vdCBiZSBrbm93biB0byBMaW51eC4gU28gd2Ugc2ltcGx5Ci0JCSAqIHNheSB0aGF0IHRoZXJlIGlzIG5vIGRldmljZSBhbmQgcmV0dXJuIEVOT0RFVi4KLQkJICovCi0JCUNJT19NU0dfRVZFTlQoNiwgIkJsYWNrbGlzdGVkIGRldmljZSBkZXRlY3RlZCAiCi0JCQkgICAgICAiYXQgZGV2bm8gJTA0WCwgc3ViY2hhbm5lbCBzZXQgJXhcbiIsCi0JCQkgICAgICBzY2gtPnNjaGliLnBtY3cuZGV2LCBzY2gtPnNjaGlkLnNzaWQpOwotCQllcnIgPSAtRU5PREVWOwotCQlnb3RvIG91dDsKLQl9Ci0JaWYgKGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQotCQlzY2gtPm9wbSA9IDB4ZmY7Ci0JZWxzZQotCQlzY2gtPm9wbSA9IGNocF9nZXRfc2NoX29wbShzY2gpOwotCXNjaC0+bHBtID0gc2NoLT5zY2hpYi5wbWN3LnBhbSAmIHNjaC0+b3BtOwotCXNjaC0+aXNjID0gMzsKLQotCUNJT19NU0dfRVZFTlQoNiwgIkRldGVjdGVkIGRldmljZSAlMDR4IG9uIHN1YmNoYW5uZWwgMC4leC4lMDRYICIKLQkJICAgICAgIi0gUElNID0gJTAyWCwgUEFNID0gJTAyWCwgUE9NID0gJTAyWFxuIiwKLQkJICAgICAgc2NoLT5zY2hpYi5wbWN3LmRldiwgc2NoLT5zY2hpZC5zc2lkLAotCQkgICAgICBzY2gtPnNjaGlkLnNjaF9ubywgc2NoLT5zY2hpYi5wbWN3LnBpbSwKLQkJICAgICAgc2NoLT5zY2hpYi5wbWN3LnBhbSwgc2NoLT5zY2hpYi5wbWN3LnBvbSk7Ci0KLQkvKgotCSAqIFdlIG5vdyBoYXZlIHRvIGluaXRpYWxseSAuLi4KLQkgKiAgLi4uIGVuYWJsZSAiY29uY3VycmVudCBzZW5zZSIKLQkgKiAgLi4uIGVuYWJsZSAibXVsdGlwYXRoIG1vZGUiIGlmIG1vcmUgdGhhbiBvbmUKLQkgKgkgIENIUElEIGlzIGF2YWlsYWJsZS4gVGhpcyBpcyBkb25lIHJlZ2FyZGxlc3MKLQkgKgkgIHdoZXRoZXIgbXVsdGlwbGUgcGF0aHMgYXJlIGF2YWlsYWJsZSBmb3IgdXMuCi0JICovCi0Jc2NoLT5zY2hpYi5wbWN3LmNzZW5zZSA9IDE7CS8qIGNvbmN1cnJlbnQgc2Vuc2UgKi8KLQlzY2gtPnNjaGliLnBtY3cuZW5hID0gMDsKLQlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCi0JCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7CS8qIG11bHRpcGF0aCBtb2RlICovCi0JLyogY2xlYW4gdXAgcG9zc2libGUgcmVzaWR1YWwgY21mIHN0dWZmICovCi0Jc2NoLT5zY2hpYi5wbWN3Lm1tZSA9IDA7Ci0Jc2NoLT5zY2hpYi5wbWN3Lm1iZmMgPSAwOwotCXNjaC0+c2NoaWIucG1jdy5tYmkgPSAwOwotCXNjaC0+c2NoaWIubWJhID0gMDsKKwlDSU9fTVNHX0VWRU5UKDQsICJTdWJjaGFubmVsIDAuJXguJTA0eCByZXBvcnRzIHN1YmNoYW5uZWwgdHlwZSAlMDRYXG4iLAorCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCBzY2gtPnN0KTsKIAlyZXR1cm4gMDsKIG91dDoKIAlpZiAoIWNpb19pc19jb25zb2xlKHNjaGlkKSkKQEAgLTY0NSw3ICs2NDAsNyBAQAogCQkgKi8KIAkJaWYgKHRwaV9pbmZvLT5hZGFwdGVyX0lPID09IDEgJiYKIAkJICAgIHRwaV9pbmZvLT5pbnRfdHlwZSA9PSBJT19JTlRFUlJVUFRfVFlQRSkgewotCQkJZG9fYWRhcHRlcl9JTygpOworCQkJZG9fYWRhcHRlcl9JTyh0cGlfaW5mby0+aXNjKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXNjaCA9IChzdHJ1Y3Qgc3ViY2hhbm5lbCAqKSh1bnNpZ25lZCBsb25nKXRwaV9pbmZvLT5pbnRwYXJtOwpAQCAtNzA0LDkgKzY5OSw5IEBACiAJaWYgKCFjb25zb2xlX3N1YmNoYW5uZWxfaW5fdXNlKQogCQlyZXR1cm47CiAKLQkvKiBkaXNhYmxlIGFsbCBidXQgaXNjIDcgKGNvbnNvbGUgZGV2aWNlKSAqLworCS8qIGRpc2FibGUgYWxsIGJ1dCB0aGUgY29uc29sZSBpc2MgKi8KIAlfX2N0bF9zdG9yZSAoc2F2ZV9jcjYsIDYsIDYpOwotCWNyNiA9IDB4MDEwMDAwMDA7CisJY3I2ID0gMVVMIDw8ICgzMSAtIENPTlNPTEVfSVNDKTsKIAlfX2N0bF9sb2FkIChjcjYsIDYsIDYpOwogCiAJZG8gewpAQCAtNzE0LDcgKzcwOSw3IEBACiAJCWlmICghY2lvX3RwaSgpKQogCQkJY3B1X3JlbGF4KCk7CiAJCXNwaW5fbG9jayhjb25zb2xlX3N1YmNoYW5uZWwubG9jayk7Ci0JfSB3aGlsZSAoY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnNjc3cuYWN0bCAhPSAwKTsKKwl9IHdoaWxlIChjb25zb2xlX3N1YmNoYW5uZWwuc2NoaWIuc2Nzdy5jbWQuYWN0bCAhPSAwKTsKIAkvKgogCSAqIHJlc3RvcmUgcHJldmlvdXMgaXNjIHZhbHVlCiAJICovCkBAIC03NTksNyArNzU0LDYgQEAKIAkJLyogdW5saWtlIGluIDIuNCwgd2UgY2Fubm90IGF1dG9wcm9iZSBoZXJlLCBzaW5jZQogCQkgKiB0aGUgY2hhbm5lbCBzdWJzeXN0ZW0gaXMgbm90IGZ1bGx5IGluaXRpYWxpemVkLgogCQkgKiBXaXRoIHNvbWUgbHVjaywgdGhlIEhXQyBjb25zb2xlIGNhbiB0YWtlIG92ZXIgKi8KLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBObyBjY3cgY29uc29sZSBmb3VuZCFcbiIpOwogCQlyZXR1cm4gLTE7CiAJfQogCXJldHVybiBjb25zb2xlX2lycTsKQEAgLTc3Niw2ICs3NzAsNyBAQAogCXNjaF9ubyA9IGNpb19nZXRfY29uc29sZV9zY2hfbm8oKTsKIAlpZiAoc2NoX25vID09IC0xKSB7CiAJCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IE5vIGNjdyBjb25zb2xlIGZvdW5kIVxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAltZW1zZXQoJmNvbnNvbGVfc3ViY2hhbm5lbCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsKSk7CkBAIC03ODgsMTUgKzc4MywxNSBAQAogCX0KIAogCS8qCi0JICogZW5hYmxlIGNvbnNvbGUgSS9PLWludGVycnVwdCBzdWJjbGFzcyA3CisJICogZW5hYmxlIGNvbnNvbGUgSS9PLWludGVycnVwdCBzdWJjbGFzcwogCSAqLwotCWN0bF9zZXRfYml0KDYsIDI0KTsKLQljb25zb2xlX3N1YmNoYW5uZWwuaXNjID0gNzsKLQljb25zb2xlX3N1YmNoYW5uZWwuc2NoaWIucG1jdy5pc2MgPSA3OworCWlzY19yZWdpc3RlcihDT05TT0xFX0lTQyk7CisJY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnBtY3cuaXNjID0gQ09OU09MRV9JU0M7CiAJY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnBtY3cuaW50cGFybSA9CiAJCSh1MzIpKGFkZHJfdCkmY29uc29sZV9zdWJjaGFubmVsOwogCXJldCA9IGNpb19tb2RpZnkoJmNvbnNvbGVfc3ViY2hhbm5lbCk7CiAJaWYgKHJldCkgeworCQlpc2NfdW5yZWdpc3RlcihDT05TT0xFX0lTQyk7CiAJCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOwogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KQEAgLTgwOCw3ICs4MDMsNyBAQAogewogCWNvbnNvbGVfc3ViY2hhbm5lbC5zY2hpYi5wbWN3LmludHBhcm0gPSAwOwogCWNpb19tb2RpZnkoJmNvbnNvbGVfc3ViY2hhbm5lbCk7Ci0JY3RsX2NsZWFyX2JpdCg2LCAyNCk7CisJaXNjX3VucmVnaXN0ZXIoQ09OU09MRV9JU0MpOwogCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOwogfQogCkBAIC04NjIsNyArODU3LDcgQEAKIH0KIAogc3RhdGljIGludAotX19jbGVhcl9zdWJjaGFubmVsX2Vhc3koc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpCitfX2NsZWFyX2lvX3N1YmNoYW5uZWxfZWFzeShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKIHsKIAlpbnQgcmV0cnk7CiAKQEAgLTg4MSw2ICs4NzYsMTIgQEAKIAlyZXR1cm4gLUVCVVNZOwogfQogCitzdGF0aWMgdm9pZCBfX2NsZWFyX2Noc2Nfc3ViY2hhbm5lbF9lYXN5KHZvaWQpCit7CisJLyogSXQgc2VlbXMgd2UgY2FuIG9ubHkgd2FpdCBmb3IgYSBiaXQgaGVyZSA6LyAqLworCXVkZWxheV9yZXNldCgxMDApOworfQorCiBzdGF0aWMgaW50IHBnbV9jaGVja19vY2N1cmVkOwogCiBzdGF0aWMgdm9pZCBjaW9fcmVzZXRfcGdtX2NoZWNrX2hhbmRsZXIodm9pZCkKQEAgLTkxOSwxMSArOTIwLDIyIEBACiAJY2FzZSAtRU5PREVWOgogCQlicmVhazsKIAlkZWZhdWx0OiAvKiAtRUJVU1kgKi8KLQkJaWYgKF9fY2xlYXJfc3ViY2hhbm5lbF9lYXN5KHNjaGlkKSkKLQkJCWJyZWFrOyAvKiBnaXZlIHVwLi4uICovCisJCXN3aXRjaCAoc2NoaWIucG1jdy5zdCkgeworCQljYXNlIFNVQkNIQU5ORUxfVFlQRV9JTzoKKwkJCWlmIChfX2NsZWFyX2lvX3N1YmNoYW5uZWxfZWFzeShzY2hpZCkpCisJCQkJZ290byBvdXQ7IC8qIGdpdmUgdXAuLi4gKi8KKwkJCWJyZWFrOworCQljYXNlIFNVQkNIQU5ORUxfVFlQRV9DSFNDOgorCQkJX19jbGVhcl9jaHNjX3N1YmNoYW5uZWxfZWFzeSgpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQkvKiBObyBkZWZhdWx0IGNsZWFyIHN0cmF0ZWd5ICovCisJCQlicmVhazsKKwkJfQogCQlzdHNjaChzY2hpZCwgJnNjaGliKTsKIAkJX19kaXNhYmxlX3N1YmNoYW5uZWxfZWFzeShzY2hpZCwgJnNjaGliKTsKIAl9CitvdXQ6CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEwNjYsMyArMTA3OCw2MSBAQAogCWlwbGluZm8tPmlzX3FkaW8gPSBzY2hpYi5wbWN3LnFmOwogCXJldHVybiAwOwogfQorCisvKioKKyAqIGNpb190bV9zdGFydF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAc2NoOiBzdWJjaGFubmVsIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKiBAa2V5OiBzdG9yYWdlIGtleSB0byB1c2UgZm9yIHN0b3JhZ2UgYWNjZXNzCisgKgorICogU3RhcnQgdGhlIHRjdyBvbiB0aGUgZ2l2ZW4gc3ViY2hhbm5lbC4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IGNpb190bV9zdGFydF9rZXkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgc3RydWN0IHRjdyAqdGN3LCB1OCBscG0sIHU4IGtleSkKK3sKKwlpbnQgY2M7CisJdW5pb24gb3JiICpvcmIgPSAmdG9faW9fcHJpdmF0ZShzY2gpLT5vcmI7CisKKwltZW1zZXQob3JiLCAwLCBzaXplb2YodW5pb24gb3JiKSk7CisJb3JiLT50bS5pbnRwYXJtID0gKHUzMikgKGFkZHJfdCkgc2NoOworCW9yYi0+dG0ua2V5ID0ga2V5ID4+IDQ7CisJb3JiLT50bS5iID0gMTsKKwlvcmItPnRtLmxwbSA9IGxwbSA/IGxwbSA6IHNjaC0+bHBtOworCW9yYi0+dG0udGN3ID0gKHUzMikgKGFkZHJfdCkgdGN3OworCWNjID0gc3NjaChzY2gtPnNjaGlkLCBvcmIpOworCXN3aXRjaCAoY2MpIHsKKwljYXNlIDA6CisJCXJldHVybiAwOworCWNhc2UgMToKKwljYXNlIDI6CisJCXJldHVybiAtRUJVU1k7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGNpb19zdGFydF9oYW5kbGVfbm90b3BlcihzY2gsIGxwbSk7CisJfQorfQorCisvKioKKyAqIGNpb190bV9pbnRyZyAtIHBlcmZvcm0gaW50ZXJyb2dhdGUgZnVuY3Rpb24KKyAqIEBzY2ggLSBzdWJjaGFubmVsIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIGludGVycm9nYXRlIGZ1bmN0aW9uCisgKgorICogSWYgdGhlIHNwZWNpZmllZCBzdWJjaGFubmVsIGlzIHJ1bm5pbmcgaW4gdHJhbnNwb3J0LW1vZGUsIHBlcmZvcm0gdGhlCisgKiBpbnRlcnJvZ2F0ZSBmdW5jdGlvbi4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8gb3RoZXJ3aWUuCisgKi8KK2ludCBjaW9fdG1faW50cmcoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlpbnQgY2M7CisKKwlpZiAoIXRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiLnRtLmIpCisJCXJldHVybiAtRUlOVkFMOworCWNjID0geHNjaChzY2gtPnNjaGlkKTsKKwlzd2l0Y2ggKGNjKSB7CisJY2FzZSAwOgorCWNhc2UgMjoKKwkJcmV0dXJuIDA7CisJY2FzZSAxOgorCQlyZXR1cm4gLUVCVVNZOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PREVWOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2lvLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Npby5oCmluZGV4IDZlOTMzYWUuLjNiMjM2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2lvLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaW8uaApAQCAtMyw5ICszLDEyIEBACiAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisjaW5jbHVkZSA8YXNtL3NjaGlkLmg+CiAjaW5jbHVkZSAiY2hzYy5oIgotI2luY2x1ZGUgInNjaGlkLmgiCiAKIC8qCiAgKiBwYXRoIG1hbmFnZW1lbnQgY29udHJvbCB3b3JkCkBAIC0xMyw3ICsxNiw3IEBACiBzdHJ1Y3QgcG1jdyB7CiAJdTMyIGludHBhcm07CQkvKiBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyICovCiAJdTMyIHFmCSA6IDE7CQkvKiBxZGlvIGZhY2lsaXR5ICovCi0JdTMyIHJlczAgOiAxOwkJLyogcmVzZXJ2ZWQgemVyb3MgKi8KKwl1MzIgdwkgOiAxOwogCXUzMiBpc2MgIDogMzsJCS8qIGludGVycnVwdGlvbiBzdWJsYXNzICovCiAJdTMyIHJlczUgOiAzOwkJLyogcmVzZXJ2ZWQgemVyb3MgKi8KIAl1MzIgZW5hICA6IDE7CQkvKiBlbmFibGVkICovCkBAIC00Nyw3ICs1MCw3IEBACiAgKi8KIHN0cnVjdCBzY2hpYiB7CiAJc3RydWN0IHBtY3cgcG1jdzsJIC8qIHBhdGggbWFuYWdlbWVudCBjb250cm9sIHdvcmQgKi8KLQlzdHJ1Y3Qgc2NzdyBzY3N3OwkgLyogc3ViY2hhbm5lbCBzdGF0dXMgd29yZCAqLworCXVuaW9uIHNjc3cgc2NzdzsJIC8qIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQgKi8KIAlfX3U2NCBtYmE7ICAgICAgICAgICAgICAgLyogbWVhc3VyZW1lbnQgYmxvY2sgYWRkcmVzcyAqLwogCV9fdTggbWRhWzRdOwkJIC8qIG1vZGVsIGRlcGVuZGVudCBhcmVhICovCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwpAQCAtOTksOCArMTAyLDExIEBACiBleHRlcm4gaW50IGNpb19nZXRfb3B0aW9ucyAoc3RydWN0IHN1YmNoYW5uZWwgKik7CiBleHRlcm4gaW50IGNpb19tb2RpZnkgKHN0cnVjdCBzdWJjaGFubmVsICopOwogCitpbnQgY2lvX3RtX3N0YXJ0X2tleShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3QgdGN3ICp0Y3csIHU4IGxwbSwgdTgga2V5KTsKK2ludCBjaW9fdG1faW50cmcoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CisKIGludCBjaW9fY3JlYXRlX3NjaF9sb2NrKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkb19hZGFwdGVyX0lPKHZvaWQpOwordm9pZCBkb19hZGFwdGVyX0lPKHU4IGlzYyk7CiB2b2lkIGRvX0lSUShzdHJ1Y3QgcHRfcmVncyAqKTsKIAogLyogVXNlIHdpdGggY2FyZS4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY21mLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2NtZi5jCmluZGV4IDI4MDhiNjguLmE5MGIyOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY21mLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jbWYuYwpAQCAtMzQxLDEyICszNDEsMTIgQEAKIAlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChzY2gtPnNjaGliLnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSB7CisJaWYgKHNjc3dfZmN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSB7CiAJCS8qIERvbid0IGNvcHkgaWYgYSBzdGFydCBmdW5jdGlvbiBpcyBpbiBwcm9ncmVzcy4gKi8KLQkJaWYgKCghKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpICYmCi0JCSAgICAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgJgorCQlpZiAoKCEoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpICYmCisJCSAgICAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYKIAkJICAgICAoU0NTV19BQ1RMX0RFVkFDVCB8IFNDU1dfQUNUTF9TQ0hBQ1QpKSAmJgotCQkgICAgKCEoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkpCisJCSAgICAoIShzY3N3X3N0Y3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkpCiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAljbWJfZGF0YSA9IGNkZXYtPnByaXZhdGUtPmNtYjsKQEAgLTYxMiw5ICs2MTIsNiBAQAogCQkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZyltZW0sIGdldF9vcmRlcihzaXplKSk7CiAJCX0gZWxzZSBpZiAoIW1lbSkgewogCQkJLyogbm8gbHVjayAqLwotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBmYWlsZWQgdG8gYWxsb2NhdGUgYXJlYSAiCi0JCQkgICAgICAgImZvciBtZWFzdXJpbmcgJWQgc3ViY2hhbm5lbHNcbiIsCi0JCQkgICAgICAgY21iX2FyZWEubnVtX2NoYW5uZWxzKTsKIAkJCXJldCA9IC1FTk9NRU07CiAJCQlnb3RvIG91dDsKIAkJfSBlbHNlIHsKQEAgLTEyMzAsMTMgKzEyMjcsOSBAQAogCXN3aXRjaCAodmFsKSB7CiAJY2FzZSAwOgogCQlyZXQgPSBkaXNhYmxlX2NtZihjZGV2KTsKLQkJaWYgKHJldCkKLQkJCWRldl9pbmZvKCZjZGV2LT5kZXYsICJkaXNhYmxlX2NtZiBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAkJYnJlYWs7CiAJY2FzZSAxOgogCQlyZXQgPSBlbmFibGVfY21mKGNkZXYpOwotCQlpZiAocmV0ICYmIHJldCAhPSAtRUJVU1kpCi0JCQlkZXZfaW5mbygmY2Rldi0+ZGV2LCAiZW5hYmxlX2NtZiBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMzQ0LDggKzEzMzcsNyBAQAogCSAqIHRvIGJhc2ljIG1vZGUuCiAJICovCiAJaWYgKGZvcm1hdCA9PSBDTUZfQVVUT0RFVEVDVCkgewotCQlpZiAoIWNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgfHwKLQkJICAgICFjc3NfZ2VuZXJhbF9jaGFyYWN0ZXJpc3RpY3MuZXh0X21iKSB7CisJCWlmICghY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmV4dF9tYikgewogCQkJZm9ybWF0ID0gQ01GX0JBU0lDOwogCQl9IGVsc2UgewogCQkJZm9ybWF0ID0gQ01GX0VYVEVOREVEOwpAQCAtMTM2NSw4ICsxMzU3LDYgQEAKIAkJY21ib3BzID0gJmNtYm9wc19leHRlbmRlZDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcHJpbnRrKEtFUk5fRVJSICJjaW86IEludmFsaWQgZm9ybWF0ICVkIGZvciBjaGFubmVsICIKLQkJCSJtZWFzdXJlbWVudCBmYWNpbGl0eVxuIiwgZm9ybWF0KTsKIAkJcmV0dXJuIDE7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jIGIvZHJpdmVycy9zMzkwL2Npby9jc3MuYwppbmRleCBhNzY5NTY1Li40NmMwMjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmMKQEAgLTIsOCArMiw3IEBACiAgKiAgZHJpdmVycy9zMzkwL2Npby9jc3MuYwogICogIGRyaXZlciBmb3IgY2hhbm5lbCBzdWJzeXN0ZW0KICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEFybmQgQmVyZ21hbm4gKGFybmRiQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqLwpAQCAtMTQsNyArMTMsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAorI2luY2x1ZGUgIi4uL3MzOTBtYWNoLmgiCiAjaW5jbHVkZSAiY3NzLmgiCiAjaW5jbHVkZSAiY2lvLmgiCiAjaW5jbHVkZSAiY2lvX2RlYnVnLmgiCkBAIC0zMCw4ICszMSw2IEBACiAKIHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY2hhbm5lbF9zdWJzeXN0ZW1zW19fTUFYX0NTU0lEICsgMV07CiAKLWludCBjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsID0gMDsKLQogaW50CiBmb3JfZWFjaF9zdWJjaGFubmVsKGludCgqZm4pKHN0cnVjdCBzdWJjaGFubmVsX2lkLCB2b2lkICopLCB2b2lkICpkYXRhKQogewpAQCAtMTIxLDI1ICsxMjAsNiBAQAogCQlrZnJlZShzY2gpOwogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KLQotCWlmIChzY2gtPnN0ICE9IFNVQkNIQU5ORUxfVFlQRV9JTykgewotCQkvKiBGb3Igbm93IHdlIGlnbm9yZSBhbGwgbm9uLWlvIHN1YmNoYW5uZWxzLiAqLwotCQlrZnJlZShzY2gpOwotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQl9Ci0KLQkvKiAKLQkgKiBTZXQgaW50cGFybSB0byBzdWJjaGFubmVsIGFkZHJlc3MuCi0JICogVGhpcyBpcyBmaW5lIGV2ZW4gb24gNjRiaXQgc2luY2UgdGhlIHN1YmNoYW5uZWwgaXMgYWx3YXlzIGxvY2F0ZWQKLQkgKiB1bmRlciAyRy4KLQkgKi8KLQlzY2gtPnNjaGliLnBtY3cuaW50cGFybSA9ICh1MzIpKGFkZHJfdClzY2g7Ci0JcmV0ID0gY2lvX21vZGlmeShzY2gpOwotCWlmIChyZXQpIHsKLQkJa2ZyZWUoc2NoLT5sb2NrKTsKLQkJa2ZyZWUoc2NoKTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQl9CiAJcmV0dXJuIHNjaDsKIH0KIApAQCAtMTc3LDEyICsxNTcsMTggQEAKIAlyZXR1cm4gcmV0OwogfQogCisvKioKKyAqIGNzc19zY2hfZGV2aWNlX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVyIGEgc3ViY2hhbm5lbAorICogQHNjaDogc3ViY2hhbm5lbCB0byBiZSB1bnJlZ2lzdGVyZWQKKyAqLwogdm9pZCBjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCiB7CiAJbXV0ZXhfbG9jaygmc2NoLT5yZWdfbXV0ZXgpOwotCWRldmljZV91bnJlZ2lzdGVyKCZzY2gtPmRldik7CisJaWYgKGRldmljZV9pc19yZWdpc3RlcmVkKCZzY2gtPmRldikpCisJCWRldmljZV91bnJlZ2lzdGVyKCZzY2gtPmRldik7CiAJbXV0ZXhfdW5sb2NrKCZzY2gtPnJlZ19tdXRleCk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKTsKIAogc3RhdGljIHZvaWQgc3NkX2Zyb21fcG1jdyhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqc3NkLCBzdHJ1Y3QgcG1jdyAqcG1jdykKIHsKQEAgLTIyOSw2ICsyMTUsNDEgQEAKIAl9CiB9CiAKK3N0YXRpYyBzc2l6ZV90IHR5cGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJTAxeFxuIiwgc2NoLT5zdCk7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUih0eXBlLCAwNDQ0LCB0eXBlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBtb2RhbGlhc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkgICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiY3NzOnQlMDFYXG4iLCBzY2gtPnN0KTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKG1vZGFsaWFzLCAwNDQ0LCBtb2RhbGlhc19zaG93LCBOVUxMKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnN1YmNoX2F0dHJzW10gPSB7CisJJmRldl9hdHRyX3R5cGUuYXR0ciwKKwkmZGV2X2F0dHJfbW9kYWxpYXMuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgc3ViY2hfYXR0cl9ncm91cCA9IHsKKwkuYXR0cnMgPSBzdWJjaF9hdHRycywKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpkZWZhdWx0X3N1YmNoX2F0dHJfZ3JvdXBzW10gPSB7CisJJnN1YmNoX2F0dHJfZ3JvdXAsCisJTlVMTCwKK307CisKIHN0YXRpYyBpbnQgY3NzX3JlZ2lzdGVyX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKIAlpbnQgcmV0OwpAQCAtMjM3LDE2ICsyNTgsMTcgQEAKIAlzY2gtPmRldi5wYXJlbnQgPSAmY2hhbm5lbF9zdWJzeXN0ZW1zWzBdLT5kZXZpY2U7CiAJc2NoLT5kZXYuYnVzID0gJmNzc19idXNfdHlwZTsKIAlzY2gtPmRldi5yZWxlYXNlID0gJmNzc19zdWJjaGFubmVsX3JlbGVhc2U7Ci0Jc2NoLT5kZXYuZ3JvdXBzID0gc3ViY2hfYXR0cl9ncm91cHM7CisJc2NoLT5kZXYuZ3JvdXBzID0gZGVmYXVsdF9zdWJjaF9hdHRyX2dyb3VwczsKIAkvKgogCSAqIFdlIGRvbid0IHdhbnQgdG8gZ2VuZXJhdGUgdWV2ZW50cyBmb3IgSS9PIHN1YmNoYW5uZWxzIHRoYXQgZG9uJ3QKIAkgKiBoYXZlIGEgd29ya2luZyBjY3cgZGV2aWNlIGJlaGluZCB0aGVtIHNpbmNlIHRoZXkgd2lsbCBiZQogCSAqIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBjYW4gYmUgdXNlZCBhbnl3YXksIHNvIHdlIGRlbGF5IHRoZSBhZGQKIAkgKiB1ZXZlbnQgdW50aWwgYWZ0ZXIgZGV2aWNlIHJlY29nbml0aW9uIHdhcyBzdWNjZXNzZnVsLgorCSAqIE5vdGUgdGhhdCB3ZSBzdXBwcmVzcyB0aGUgdWV2ZW50IGZvciBhbGwgc3ViY2hhbm5lbCB0eXBlczsKKwkgKiB0aGUgc3ViY2hhbm5lbCBkcml2ZXIgY2FuIGRlY2lkZSBpdHNlbGYgd2hlbiBpdCB3YW50cyB0byBpbmZvcm0KKwkgKiB1c2Vyc3BhY2Ugb2YgaXRzIGV4aXN0ZW5jZS4KIAkgKi8KLQlpZiAoIWNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQotCQkvKiBDb25zb2xlIGlzIHNwZWNpYWwsIG5vIG5lZWQgdG8gc3VwcHJlc3MuICovCi0JCXNjaC0+ZGV2LnVldmVudF9zdXBwcmVzcyA9IDE7CisJc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzID0gMTsKIAljc3NfdXBkYXRlX3NzZF9pbmZvKHNjaCk7CiAJLyogbWFrZSBpdCBrbm93biB0byB0aGUgc3lzdGVtICovCiAJcmV0ID0gY3NzX3NjaF9kZXZpY2VfcmVnaXN0ZXIoc2NoKTsKQEAgLTI1NSwxMCArMjc3LDE5IEBACiAJCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KKwlpZiAoIXNjaC0+ZHJpdmVyKSB7CisJCS8qCisJCSAqIE5vIGRyaXZlciBtYXRjaGVkLiBHZW5lcmF0ZSB0aGUgdWV2ZW50IG5vdyBzbyB0aGF0CisJCSAqIGEgZml0dGluZyBkcml2ZXIgbW9kdWxlIG1heSBiZSBsb2FkZWQgYmFzZWQgb24gdGhlCisJCSAqIG1vZGFsaWFzLgorCQkgKi8KKwkJc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzID0gMDsKKwkJa29iamVjdF91ZXZlbnQoJnNjaC0+ZGV2LmtvYmosIEtPQkpfQUREKTsKKwl9CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBjc3NfcHJvYmVfZGV2aWNlKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQoraW50IGNzc19wcm9iZV9kZXZpY2Uoc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoOwpAQCAtMzAxLDExNiArMzMyLDEyIEBACiB7CiAJaWYgKChzY2hpYi0+cG1jdy5zdCA9PSBTVUJDSEFOTkVMX1RZUEVfSU8pICYmICFzY2hpYi0+cG1jdy5kbnYpCiAJCXJldHVybiAwOworCWlmICgoc2NoaWItPnBtY3cuc3QgPT0gU1VCQ0hBTk5FTF9UWVBFX01TRykgJiYgIXNjaGliLT5wbWN3LncpCisJCXJldHVybiAwOwogCXJldHVybiAxOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoY3NzX3NjaF9pc192YWxpZCk7CiAKLXN0YXRpYyBpbnQgY3NzX2dldF9zdWJjaGFubmVsX3N0YXR1cyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoaWIpKQotCQlyZXR1cm4gQ0lPX0dPTkU7Ci0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2hpYikpCi0JCXJldHVybiBDSU9fR09ORTsKLQlpZiAoc2NoLT5zY2hpYi5wbWN3LmRudiAmJiAoc2NoaWIucG1jdy5kZXYgIT0gc2NoLT5zY2hpYi5wbWN3LmRldikpCi0JCXJldHVybiBDSU9fUkVWQUxJREFURTsKLQlpZiAoIXNjaC0+bHBtKQotCQlyZXR1cm4gQ0lPX05PX1BBVEg7Ci0JcmV0dXJuIENJT19PUEVSOwotfQotCi1zdGF0aWMgaW50IGNzc19ldmFsdWF0ZV9rbm93bl9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBzbG93KQotewotCWludCBldmVudCwgcmV0LCBkaXNjOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JZW51bSB7IE5PTkUsIFVOUkVHSVNURVIsIFVOUkVHSVNURVJfUFJPQkUsIFJFUFJPQkUgfSBhY3Rpb247Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQlkaXNjID0gZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChzY2gpOwotCWlmIChkaXNjICYmIHNsb3cpIHsKLQkJLyogRGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBkaXJlY3RseSBvbmx5LiovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAwOwotCX0KLQkvKiBObyBpbnRlcnJ1cHQgYWZ0ZXIgbWFjaGluZSBjaGVjayAtIGtpbGwgcGVuZGluZyB0aW1lcnMuICovCi0JZGV2aWNlX2tpbGxfcGVuZGluZ190aW1lcihzY2gpOwotCWlmICghZGlzYyAmJiAhc2xvdykgewotCQkvKiBOb24tZGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBvbiB0aGUgc2xvdyBwYXRoLiAqLwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQlyZXR1cm4gLUVBR0FJTjsKLQl9Ci0JZXZlbnQgPSBjc3NfZ2V0X3N1YmNoYW5uZWxfc3RhdHVzKHNjaCk7Ci0JQ0lPX01TR19FVkVOVCg0LCAiRXZhbHVhdGluZyBzY2hpZCAwLiV4LiUwNHgsIGV2ZW50ICVkLCAlcywgJXMgcGF0aC5cbiIsCi0JCSAgICAgIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIGV2ZW50LAotCQkgICAgICBkaXNjID8gImRpc2Nvbm5lY3RlZCIgOiAibm9ybWFsIiwKLQkJICAgICAgc2xvdyA/ICJzbG93IiA6ICJmYXN0Iik7Ci0JLyogQW5hbHl6ZSBzdWJjaGFubmVsIHN0YXR1cy4gKi8KLQlhY3Rpb24gPSBOT05FOwotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIENJT19OT19QQVRIOgotCQlpZiAoZGlzYykgewotCQkJLyogQ2hlY2sgaWYgcGF0aHMgaGF2ZSBiZWNvbWUgYXZhaWxhYmxlLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJCWJyZWFrOwotCQl9Ci0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgQ0lPX0dPTkU6Ci0JCS8qIFByZXZlbnQgdW53YW50ZWQgZWZmZWN0cyB3aGVuIG9wZW5pbmcgbG9jay4gKi8KLQkJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOwotCQlkZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChzY2gpOwotCQkvKiBBc2sgZHJpdmVyIHdoYXQgdG8gZG8gd2l0aCBkZXZpY2UuICovCi0JCWFjdGlvbiA9IFVOUkVHSVNURVI7Ci0JCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+bm90aWZ5KSB7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQkJcmV0ID0gc2NoLT5kcml2ZXItPm5vdGlmeShzY2gsIGV2ZW50KTsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQkJaWYgKHJldCkKLQkJCQlhY3Rpb24gPSBOT05FOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgQ0lPX1JFVkFMSURBVEU6Ci0JCS8qIERldmljZSB3aWxsIGJlIHJlbW92ZWQsIHNvIG5vIG5vdGlmeSBuZWNlc3NhcnkuICovCi0JCWlmIChkaXNjKQotCQkJLyogUmVwcm9iZSBiZWNhdXNlIGltbWVkaWF0ZSB1bnJlZ2lzdGVyIG1pZ2h0IGJsb2NrLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJZWxzZQotCQkJYWN0aW9uID0gVU5SRUdJU1RFUl9QUk9CRTsKLQkJYnJlYWs7Ci0JY2FzZSBDSU9fT1BFUjoKLQkJaWYgKGRpc2MpCi0JCQkvKiBHZXQgZGV2aWNlIG9wZXJhdGlvbmFsIGFnYWluLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJYnJlYWs7Ci0JfQotCS8qIFBlcmZvcm0gYWN0aW9uLiAqLwotCXJldCA9IDA7Ci0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIFVOUkVHSVNURVI6Ci0JY2FzZSBVTlJFR0lTVEVSX1BST0JFOgotCQkvKiBVbnJlZ2lzdGVyIGRldmljZSAod2lsbCB1c2Ugc3ViY2hhbm5lbCBsb2NrKS4gKi8KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkJY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzY2gpOwotCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQotCQkvKiBSZXNldCBpbnRwYXJtIHRvIHplcm9lcy4gKi8KLQkJc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAwOwotCQljaW9fbW9kaWZ5KHNjaCk7Ci0JCWJyZWFrOwotCWNhc2UgUkVQUk9CRToKLQkJZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzY2gpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkvKiBQcm9iZSBpZiBuZWNlc3NhcnkuICovCi0JaWYgKGFjdGlvbiA9PSBVTlJFR0lTVEVSX1BST0JFKQotCQlyZXQgPSBjc3NfcHJvYmVfZGV2aWNlKHNjaC0+c2NoaWQpOwotCi0JcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIGludCBjc3NfZXZhbHVhdGVfbmV3X3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIGludCBzbG93KQogewogCXN0cnVjdCBzY2hpYiBzY2hpYjsKQEAgLTQyOSw2ICszNTYsMjEgQEAKIAlyZXR1cm4gY3NzX3Byb2JlX2RldmljZShzY2hpZCk7CiB9CiAKK3N0YXRpYyBpbnQgY3NzX2V2YWx1YXRlX2tub3duX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IHNsb3cpCit7CisJaW50IHJldCA9IDA7CisKKwlpZiAoc2NoLT5kcml2ZXIpIHsKKwkJaWYgKHNjaC0+ZHJpdmVyLT5zY2hfZXZlbnQpCisJCQlyZXQgPSBzY2gtPmRyaXZlci0+c2NoX2V2ZW50KHNjaCwgc2xvdyk7CisJCWVsc2UKKwkJCWRldl9kYmcoJnNjaC0+ZGV2LAorCQkJCSJHb3Qgc3ViY2hhbm5lbCBtYWNoaW5lIGNoZWNrIGJ1dCAiCisJCQkJIm5vIHNjaF9ldmVudCBoYW5kbGVyIHByb3ZpZGVkLlxuIik7CisJfQorCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyB2b2lkIGNzc19ldmFsdWF0ZV9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCBpbnQgc2xvdykKIHsKIAlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoOwpAQCAtNTk2LDE4ICs1MzgsMjkgQEAKIC8qCiAgKiBDYWxsZWQgZnJvbSB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzdWJjaGFubmVsIHJlcG9ydCB3b3Jkcy4KICAqLwotdm9pZCBjc3NfcHJvY2Vzc19jcncoaW50IHJzaWQxLCBpbnQgcnNpZDIpCitzdGF0aWMgdm9pZCBjc3NfcHJvY2Vzc19jcncoc3RydWN0IGNydyAqY3J3MCwgc3RydWN0IGNydyAqY3J3MSwgaW50IG92ZXJmbG93KQogewogCXN0cnVjdCBzdWJjaGFubmVsX2lkIG1jaGtfc2NoaWQ7CiAKLQlDSU9fQ1JXX0VWRU5UKDIsICJzb3VyY2UgaXMgc3ViY2hhbm5lbCAlMDRYLCBzdWJzeXN0ZW0gaWQgJXhcbiIsCi0JCSAgICAgIHJzaWQxLCByc2lkMik7CisJaWYgKG92ZXJmbG93KSB7CisJCWNzc19zY2hlZHVsZV9ldmFsX2FsbCgpOworCQlyZXR1cm47CisJfQorCUNJT19DUldfRVZFTlQoMiwgIkNSVzAgcmVwb3J0cyBzbGN0PSVkLCBvZmx3PSVkLCAiCisJCSAgICAgICJjaG49JWQsIHJzYz0lWCwgYW5jPSVkLCBlcmM9JVgsIHJzaWQ9JVhcbiIsCisJCSAgICAgIGNydzAtPnNsY3QsIGNydzAtPm9mbHcsIGNydzAtPmNobiwgY3J3MC0+cnNjLCBjcncwLT5hbmMsCisJCSAgICAgIGNydzAtPmVyYywgY3J3MC0+cnNpZCk7CisJaWYgKGNydzEpCisJCUNJT19DUldfRVZFTlQoMiwgIkNSVzEgcmVwb3J0cyBzbGN0PSVkLCBvZmx3PSVkLCAiCisJCQkgICAgICAiY2huPSVkLCByc2M9JVgsIGFuYz0lZCwgZXJjPSVYLCByc2lkPSVYXG4iLAorCQkJICAgICAgY3J3MS0+c2xjdCwgY3J3MS0+b2ZsdywgY3J3MS0+Y2huLCBjcncxLT5yc2MsCisJCQkgICAgICBjcncxLT5hbmMsIGNydzEtPmVyYywgY3J3MS0+cnNpZCk7CiAJaW5pdF9zdWJjaGFubmVsX2lkKCZtY2hrX3NjaGlkKTsKLQltY2hrX3NjaGlkLnNjaF9ubyA9IHJzaWQxOwotCWlmIChyc2lkMiAhPSAwKQotCQltY2hrX3NjaGlkLnNzaWQgPSAocnNpZDIgPj4gOCkgJiAzOworCW1jaGtfc2NoaWQuc2NoX25vID0gY3J3MC0+cnNpZDsKKwlpZiAoY3J3MSkKKwkJbWNoa19zY2hpZC5zc2lkID0gKGNydzEtPnJzaWQgPj4gOCkgJiAzOwogCi0JLyogCisJLyoKIAkgKiBTaW5jZSB3ZSBhcmUgYWx3YXlzIHByZXNlbnRlZCB3aXRoIElQSSBpbiB0aGUgQ1JXLCB3ZSBoYXZlIHRvCiAJICogdXNlIHN0c2NoKCkgdG8gZmluZCBvdXQgaWYgdGhlIHN1YmNoYW5uZWwgaW4gcXVlc3Rpb24gaGFzIGNvbWUKIAkgKiBvciBnb25lLgpAQCAtNjU4LDcgKzYxMSw3IEBACiBzdGF0aWMgdm9pZCBfX2luaXQKIGNzc19nZW5lcmF0ZV9wZ2lkKHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY3NzLCB1MzIgdG9kX2hpZ2gpCiB7Ci0JaWYgKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgJiYgY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLm1jc3MpIHsKKwlpZiAoY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLm1jc3MpIHsKIAkJY3NzLT5nbG9iYWxfcGdpZC5wZ2lkX2hpZ2guZXh0X2Nzc2lkLnZlcnNpb24gPSAweDgwOwogCQljc3MtPmdsb2JhbF9wZ2lkLnBnaWRfaGlnaC5leHRfY3NzaWQuY3NzaWQgPSBjc3MtPmNzc2lkOwogCX0gZWxzZSB7CkBAIC03OTUsOCArNzQ4LDYgQEAKIAlyZXQgPSBjaHNjX2RldGVybWluZV9jc3NfY2hhcmFjdGVyaXN0aWNzKCk7CiAJaWYgKHJldCA9PSAtRU5PTUVNKQogCQlnb3RvIG91dDsgLyogTm8gbmVlZCB0byBjb250aW51ZS4gKi8KLQlpZiAocmV0ID09IDApCi0JCWNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgPSAxOwogCiAJcmV0ID0gY2hzY19hbGxvY19zZWlfYXJlYSgpOwogCWlmIChyZXQpCkBAIC04MDYsNiArNzU3LDEwIEBACiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKKwlyZXQgPSBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfU0NILCBjc3NfcHJvY2Vzc19jcncpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCiAJaWYgKChyZXQgPSBidXNfcmVnaXN0ZXIoJmNzc19idXNfdHlwZSkpKQogCQlnb3RvIG91dDsKIApAQCAtODM2LDggKzc5MSw3IEBACiAJCXJldCA9IGRldmljZV9yZWdpc3RlcigmY3NzLT5kZXZpY2UpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXRfZnJlZV9hbGw7Ci0JCWlmIChjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsICYmCi0JCSAgICBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkgeworCQlpZiAoY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pIHsKIAkJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZSgmY3NzLT5kZXZpY2UsCiAJCQkJCQkgJmRldl9hdHRyX2NtX2VuYWJsZSk7CiAJCQlpZiAocmV0KQpAQCAtODUyLDcgKzgwNiw4IEBACiAJCWdvdG8gb3V0X3BzZXVkbzsKIAljc3NfaW5pdF9kb25lID0gMTsKIAotCWN0bF9zZXRfYml0KDYsIDI4KTsKKwkvKiBFbmFibGUgZGVmYXVsdCBpc2MgZm9yIEkvTyBzdWJjaGFubmVscy4gKi8KKwlpc2NfcmVnaXN0ZXIoSU9fU0NIX0lTQyk7CiAKIAlmb3JfZWFjaF9zdWJjaGFubmVsKF9faW5pdF9jaGFubmVsX3N1YnN5c3RlbSwgTlVMTCk7CiAJcmV0dXJuIDA7CkBAIC04NzUsNyArODMwLDcgQEAKIAkJaS0tOwogCQljc3MgPSBjaGFubmVsX3N1YnN5c3RlbXNbaV07CiAJCWRldmljZV91bnJlZ2lzdGVyKCZjc3MtPnBzZXVkb19zdWJjaGFubmVsLT5kZXYpOwotCQlpZiAoY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCAmJiBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkKKwkJaWYgKGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zZWNtKQogCQkJZGV2aWNlX3JlbW92ZV9maWxlKCZjc3MtPmRldmljZSwKIAkJCQkJICAgJmRldl9hdHRyX2NtX2VuYWJsZSk7CiAJCWRldmljZV91bnJlZ2lzdGVyKCZjc3MtPmRldmljZSk7CkBAIC04ODMsNiArODM4LDcgQEAKIG91dF9idXM6CiAJYnVzX3VucmVnaXN0ZXIoJmNzc19idXNfdHlwZSk7CiBvdXQ6CisJczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTKTsKIAljaHNjX2ZyZWVfc2VpX2FyZWEoKTsKIAlrZnJlZShzbG93X3N1YmNoYW5uZWxfc2V0KTsKIAlwcmludGsoS0VSTl9XQVJOSU5HImNpbzogZmFpbGVkIHRvIGluaXRpYWxpemUgY3NzIGRyaXZlciAoJWQpIVxuIiwKQEAgLTg5NSwxOSArODUxLDE2IEBACiAJcmV0dXJuIHNjaCA9PSB0b19jc3Moc2NoLT5kZXYucGFyZW50KS0+cHNldWRvX3N1YmNoYW5uZWw7CiB9CiAKLS8qCi0gKiBmaW5kIGEgZHJpdmVyIGZvciBhIHN1YmNoYW5uZWwuIFRoZXkgaWRlbnRpZnkgYnkgdGhlIHN1YmNoYW5uZWwKLSAqIHR5cGUgd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgdGhlIGNvbnNvbGUgc3ViY2hhbm5lbCBkcml2ZXIgaGFzIGl0cyBvd24KLSAqIHN1YmNoYW5uZWwgdHlwZSBhbHRob3VnaCB0aGUgZGV2aWNlIGlzIGFuIGkvbyBzdWJjaGFubmVsCi0gKi8KLXN0YXRpYyBpbnQKLWNzc19idXNfbWF0Y2ggKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydikKK3N0YXRpYyBpbnQgY3NzX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCiB7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRvX3N1YmNoYW5uZWwoZGV2KTsKIAlzdHJ1Y3QgY3NzX2RyaXZlciAqZHJpdmVyID0gdG9fY3NzZHJpdmVyKGRydik7CisJc3RydWN0IGNzc19kZXZpY2VfaWQgKmlkOwogCi0JaWYgKHNjaC0+c3QgPT0gZHJpdmVyLT5zdWJjaGFubmVsX3R5cGUpCi0JCXJldHVybiAxOworCWZvciAoaWQgPSBkcml2ZXItPnN1YmNoYW5uZWxfdHlwZTsgaWQtPm1hdGNoX2ZsYWdzOyBpZCsrKSB7CisJCWlmIChzY2gtPnN0ID09IGlkLT50eXBlKQorCQkJcmV0dXJuIDE7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC05NDUsMTIgKzg5OCwyNSBAQAogCQlzY2gtPmRyaXZlci0+c2h1dGRvd24oc2NoKTsKIH0KIAorc3RhdGljIGludCBjc3NfdWV2ZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KQoreworCXN0cnVjdCBzdWJjaGFubmVsICpzY2ggPSB0b19zdWJjaGFubmVsKGRldik7CisJaW50IHJldDsKKworCXJldCA9IGFkZF91ZXZlbnRfdmFyKGVudiwgIlNUPSUwMVgiLCBzY2gtPnN0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldCA9IGFkZF91ZXZlbnRfdmFyKGVudiwgIk1PREFMSUFTPWNzczp0JTAxWCIsIHNjaC0+c3QpOworCXJldHVybiByZXQ7Cit9CisKIHN0cnVjdCBidXNfdHlwZSBjc3NfYnVzX3R5cGUgPSB7CiAJLm5hbWUgICAgID0gImNzcyIsCiAJLm1hdGNoICAgID0gY3NzX2J1c19tYXRjaCwKIAkucHJvYmUgICAgPSBjc3NfcHJvYmUsCiAJLnJlbW92ZSAgID0gY3NzX3JlbW92ZSwKIAkuc2h1dGRvd24gPSBjc3Nfc2h1dGRvd24sCisJLnVldmVudCAgID0gY3NzX3VldmVudCwKIH07CiAKIC8qKgpAQCAtOTg1LDQgKzk1MSwzIEBACiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIEVYUE9SVF9TWU1CT0woY3NzX2J1c190eXBlKTsKLUVYUE9SVF9TWU1CT0xfR1BMKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jc3MuaCBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmgKaW5kZXggZTE5MTM1MS4uNTdlYmYxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jc3MuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5oCkBAIC05LDggKzksNyBAQAogCiAjaW5jbHVkZSA8YXNtL2Npby5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgotCi0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogLyoKICAqIHBhdGggZ3JvdXBpbmcgc3R1ZmYKQEAgLTU4LDIwICs1NywyOCBAQAogCV9fdTMyIHRvZF9oaWdoOwkJLyogaGlnaCB3b3JkIFRPRCBjbG9jayAqLwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAKLS8qCi0gKiBBIGNzcyBkcml2ZXIgaGFuZGxlcyBhbGwgc3ViY2hhbm5lbHMgb2Ygb25lIHR5cGUuCi0gKiBDdXJyZW50bHksIHdlIG9ubHkgY2FyZSBhYm91dCBJL08gc3ViY2hhbm5lbHMgKHR5cGUgMCksIHRoZXNlCi0gKiBoYXZlIGEgY2N3X2RldmljZSBjb25uZWN0ZWQgdG8gdGhlbS4KLSAqLwogc3RydWN0IHN1YmNoYW5uZWw7CitzdHJ1Y3QgY2hwX2xpbms7CisvKioKKyAqIHN0cnVjdCBjc3NfZHJpdmVyIC0gZGV2aWNlIGRyaXZlciBmb3Igc3ViY2hhbm5lbHMKKyAqIEBvd25lcjogb3duaW5nIG1vZHVsZQorICogQHN1YmNoYW5uZWxfdHlwZTogc3ViY2hhbm5lbCB0eXBlIHN1cHBvcnRlZCBieSB0aGlzIGRyaXZlcgorICogQGRydjogZW1iZWRkZWQgZGV2aWNlIGRyaXZlciBzdHJ1Y3R1cmUKKyAqIEBpcnE6IGNhbGxlZCBvbiBpbnRlcnJ1cHRzCisgKiBAY2hwX2V2ZW50OiBjYWxsZWQgZm9yIGV2ZW50cyBhZmZlY3RpbmcgYSBjaGFubmVsIHBhdGgKKyAqIEBzY2hfZXZlbnQ6IGNhbGxlZCBmb3IgZXZlbnRzIGFmZmVjdGluZyB0aGUgc3ViY2hhbm5lbAorICogQHByb2JlOiBmdW5jdGlvbiBjYWxsZWQgb24gcHJvYmUKKyAqIEByZW1vdmU6IGZ1bmN0aW9uIGNhbGxlZCBvbiByZW1vdmUKKyAqIEBzaHV0ZG93bjogY2FsbGVkIGF0IGRldmljZSBzaHV0ZG93bgorICogQG5hbWU6IG5hbWUgb2YgdGhlIGRldmljZSBkcml2ZXIKKyAqLwogc3RydWN0IGNzc19kcml2ZXIgewogCXN0cnVjdCBtb2R1bGUgKm93bmVyOwotCXVuc2lnbmVkIGludCBzdWJjaGFubmVsX3R5cGU7CisJc3RydWN0IGNzc19kZXZpY2VfaWQgKnN1YmNoYW5uZWxfdHlwZTsKIAlzdHJ1Y3QgZGV2aWNlX2RyaXZlciBkcnY7CiAJdm9pZCAoKmlycSkoc3RydWN0IHN1YmNoYW5uZWwgKik7Ci0JaW50ICgqbm90aWZ5KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBpbnQpOwotCXZvaWQgKCp2ZXJpZnkpKHN0cnVjdCBzdWJjaGFubmVsICopOwotCXZvaWQgKCp0ZXJtaW5hdGlvbikoc3RydWN0IHN1YmNoYW5uZWwgKik7CisJaW50ICgqY2hwX2V2ZW50KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBzdHJ1Y3QgY2hwX2xpbmsgKiwgaW50KTsKKwlpbnQgKCpzY2hfZXZlbnQpKHN0cnVjdCBzdWJjaGFubmVsICosIGludCk7CiAJaW50ICgqcHJvYmUpKHN0cnVjdCBzdWJjaGFubmVsICopOwogCWludCAoKnJlbW92ZSkoc3RydWN0IHN1YmNoYW5uZWwgKik7CiAJdm9pZCAoKnNodXRkb3duKShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKQEAgLTg5LDEzICs5NiwxMyBAQAogZXh0ZXJuIHZvaWQgY3NzX2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBjc3NfZHJpdmVyICopOwogCiBleHRlcm4gdm9pZCBjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBzdWJjaGFubmVsICopOwotZXh0ZXJuIHN0cnVjdCBzdWJjaGFubmVsICogZ2V0X3N1YmNoYW5uZWxfYnlfc2NoaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQpOworZXh0ZXJuIGludCBjc3NfcHJvYmVfZGV2aWNlKHN0cnVjdCBzdWJjaGFubmVsX2lkKTsKK2V4dGVybiBzdHJ1Y3Qgc3ViY2hhbm5lbCAqZ2V0X3N1YmNoYW5uZWxfYnlfc2NoaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQpOwogZXh0ZXJuIGludCBjc3NfaW5pdF9kb25lOwogaW50IGZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKGludCAoKmZuX2tub3duKShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCB2b2lkICopLAogCQkJICAgICAgIGludCAoKmZuX3Vua25vd24pKHN0cnVjdCBzdWJjaGFubmVsX2lkLAogCQkJICAgICAgIHZvaWQgKiksIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGludCBmb3JfZWFjaF9zdWJjaGFubmVsKGludCgqZm4pKHN0cnVjdCBzdWJjaGFubmVsX2lkLCB2b2lkICopLCB2b2lkICopOwotZXh0ZXJuIHZvaWQgY3NzX3Byb2Nlc3NfY3J3KGludCwgaW50KTsKIGV4dGVybiB2b2lkIGNzc19yZWl0ZXJhdGVfc3ViY2hhbm5lbHModm9pZCk7CiB2b2lkIGNzc191cGRhdGVfc3NkX2luZm8oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CiAKQEAgLTEyMSwyMCArMTI4LDYgQEAKIGV4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgY3NzX2J1c190eXBlOwogZXh0ZXJuIHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY2hhbm5lbF9zdWJzeXN0ZW1zW107CiAKLS8qIFNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgZGlzY29ubmVjdGVkIHN0YXRlLiAqLwotaW50IGRldmljZV9pc19kaXNjb25uZWN0ZWQoc3RydWN0IHN1YmNoYW5uZWwgKik7Ci12b2lkIGRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkZXZpY2VfdHJpZ2dlcl9yZXByb2JlKHN0cnVjdCBzdWJjaGFubmVsICopOwotCi0vKiBIZWxwZXIgZnVuY3Rpb25zIGZvciB2YXJ5IG9uL29mZi4gKi8KLWludCBkZXZpY2VfaXNfb25saW5lKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkZXZpY2Vfa2lsbF9pbyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXZvaWQgZGV2aWNlX3NldF9pbnRyZXRyeShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKTsKLWludCBkZXZpY2VfdHJpZ2dlcl92ZXJpZnkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7Ci0KLS8qIE1hY2hpbmUgY2hlY2sgaGVscGVyIGZ1bmN0aW9uLiAqLwotdm9pZCBkZXZpY2Vfa2lsbF9wZW5kaW5nX3RpbWVyKHN0cnVjdCBzdWJjaGFubmVsICopOwotCiAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGJ1aWxkIGxpc3RzIGZvciB0aGUgc2xvdyBwYXRoLiAqLwogdm9pZCBjc3Nfc2NoZWR1bGVfZXZhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCk7CiB2b2lkIGNzc19zY2hlZHVsZV9ldmFsX2FsbCh2b2lkKTsKQEAgLTE0NSw2ICsxMzgsNCBAQAogCiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnNsb3dfcGF0aF93cTsKIHZvaWQgY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCh2b2lkKTsKLQotZXh0ZXJuIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnN1YmNoX2F0dHJfZ3JvdXBzW107CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCmluZGV4IGUyMjgxM2QuLmU4MThkMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuYwpAQCAtMiw4ICsyLDcgQEAKICAqICBkcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCiAgKiAgYnVzIGRyaXZlciBmb3IgY2N3IGRldmljZXMKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEFybmQgQmVyZ21hbm4gKGFybmRiQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgTWFydGluIFNjaHdpZGVmc2t5IChzY2h3aWRlZnNreUBkZS5pYm0uY29tKQpAQCAtMjMsNyArMjIsOSBAQAogI2luY2x1ZGUgPGFzbS9jaW8uaD4KICNpbmNsdWRlIDxhc20vcGFyYW0uaD4JCS8qIEhaICovCiAjaW5jbHVkZSA8YXNtL2NtYi5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAorI2luY2x1ZGUgImNocC5oIgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgogI2luY2x1ZGUgImNzcy5oIgpAQCAtMTI1LDE5ICsxMjYsMjQgQEAKIHN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfaXJxKHN0cnVjdCBzdWJjaGFubmVsICopOwogc3RhdGljIGludCBpb19zdWJjaGFubmVsX3Byb2JlKHN0cnVjdCBzdWJjaGFubmVsICopOwogc3RhdGljIGludCBpb19zdWJjaGFubmVsX3JlbW92ZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXN0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9ub3RpZnkoc3RydWN0IHN1YmNoYW5uZWwgKiwgaW50KTsKLXN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICopOwotc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9pb3Rlcm0oc3RydWN0IHN1YmNoYW5uZWwgKik7CiBzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX3NodXRkb3duKHN0cnVjdCBzdWJjaGFubmVsICopOworc3RhdGljIGludCBpb19zdWJjaGFubmVsX3NjaF9ldmVudChzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBpbnQpOworc3RhdGljIGludCBpb19zdWJjaGFubmVsX2NocF9ldmVudChzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBzdHJ1Y3QgY2hwX2xpbmsgKiwKKwkJCQkgICBpbnQpOworCitzdGF0aWMgc3RydWN0IGNzc19kZXZpY2VfaWQgaW9fc3ViY2hhbm5lbF9pZHNbXSA9IHsKKwl7IC5tYXRjaF9mbGFncyA9IDB4MSwgLnR5cGUgPSBTVUJDSEFOTkVMX1RZUEVfSU8sIH0sCisJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoY3NzLCBpb19zdWJjaGFubmVsX2lkcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgY3NzX2RyaXZlciBpb19zdWJjaGFubmVsX2RyaXZlciA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKLQkuc3ViY2hhbm5lbF90eXBlID0gU1VCQ0hBTk5FTF9UWVBFX0lPLAorCS5zdWJjaGFubmVsX3R5cGUgPSBpb19zdWJjaGFubmVsX2lkcywKIAkubmFtZSA9ICJpb19zdWJjaGFubmVsIiwKIAkuaXJxID0gaW9fc3ViY2hhbm5lbF9pcnEsCi0JLm5vdGlmeSA9IGlvX3N1YmNoYW5uZWxfbm90aWZ5LAotCS52ZXJpZnkgPSBpb19zdWJjaGFubmVsX3ZlcmlmeSwKLQkudGVybWluYXRpb24gPSBpb19zdWJjaGFubmVsX2lvdGVybSwKKwkuc2NoX2V2ZW50ID0gaW9fc3ViY2hhbm5lbF9zY2hfZXZlbnQsCisJLmNocF9ldmVudCA9IGlvX3N1YmNoYW5uZWxfY2hwX2V2ZW50LAogCS5wcm9iZSA9IGlvX3N1YmNoYW5uZWxfcHJvYmUsCiAJLnJlbW92ZSA9IGlvX3N1YmNoYW5uZWxfcmVtb3ZlLAogCS5zaHV0ZG93biA9IGlvX3N1YmNoYW5uZWxfc2h1dGRvd24sCkBAIC00ODcsMjUgKzQ5MywyMiBAQAogCQljY3dfZGV2aWNlX3NldF9vbmxpbmUoY2Rldik7CiAJcmV0dXJuIDA7CiB9Ci1zdGF0aWMgdm9pZCBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IGZvcmNlKQorc3RhdGljIGludCBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IGZvcmNlKQogewogCWludCByZXQ7CiAKIAlyZXQgPSBvbmxpbmVfc3RvcmVfcmVjb2dfYW5kX29ubGluZShjZGV2KTsKIAlpZiAocmV0KQotCQlyZXR1cm47CisJCXJldHVybiByZXQ7CiAJaWYgKGZvcmNlICYmIGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9CT1hFRCkgewogCQlyZXQgPSBjY3dfZGV2aWNlX3N0bGNrKGNkZXYpOwotCQlpZiAocmV0KSB7Ci0JCQlkZXZfd2FybigmY2Rldi0+ZGV2LAotCQkJCSAiY2N3X2RldmljZV9zdGxjayByZXR1cm5lZCAlZCFcbiIsIHJldCk7Ci0JCQlyZXR1cm47Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAJCWlmIChjZGV2LT5pZC5jdV90eXBlID09IDApCiAJCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9IERFVl9TVEFURV9OT1RfT1BFUjsKIAkJb25saW5lX3N0b3JlX3JlY29nX2FuZF9vbmxpbmUoY2Rldik7CiAJfQotCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IG9ubGluZV9zdG9yZSAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKQEAgLTUzOCw4ICs1NDEsOSBAQAogCQlyZXQgPSBjb3VudDsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQlvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShjZGV2LCBmb3JjZSk7Ci0JCXJldCA9IGNvdW50OworCQlyZXQgPSBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShjZGV2LCBmb3JjZSk7CisJCWlmICghcmV0KQorCQkJcmV0ID0gY291bnQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldCA9IC1FSU5WQUw7CkBAIC01ODQsMTkgKzU4OCwxNCBAQAogc3RhdGljIERFVklDRV9BVFRSKG9ubGluZSwgMDY0NCwgb25saW5lX3Nob3csIG9ubGluZV9zdG9yZSk7CiBzdGF0aWMgREVWSUNFX0FUVFIoYXZhaWxhYmlsaXR5LCAwNDQ0LCBhdmFpbGFibGVfc2hvdywgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICogc3ViY2hfYXR0cnNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppb19zdWJjaGFubmVsX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX2NocGlkcy5hdHRyLAogCSZkZXZfYXR0cl9waW1wYW1wb20uYXR0ciwKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgc3ViY2hfYXR0cl9ncm91cCA9IHsKLQkuYXR0cnMgPSBzdWJjaF9hdHRycywKLX07Ci0KLXN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnN1YmNoX2F0dHJfZ3JvdXBzW10gPSB7Ci0JJnN1YmNoX2F0dHJfZ3JvdXAsCi0JTlVMTCwKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCA9IHsKKwkuYXR0cnMgPSBpb19zdWJjaGFubmVsX2F0dHJzLAogfTsKIAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKiBjY3dkZXZfYXR0cnNbXSA9IHsKQEAgLTc5MCw3ICs3ODksNyBAQAogCXNjaF9zZXRfY2RldihzY2gsIGNkZXYpOwogCWNkZXYtPnByaXZhdGUtPnNjaGlkID0gc2NoLT5zY2hpZDsKIAljZGV2LT5jY3dsb2NrID0gc2NoLT5sb2NrOwotCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKKwljY3dfZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShjZGV2KTsKIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIH0KIApAQCAtMTAzNyw3ICsxMDM2LDYgQEAKIAlzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlICpwcml2OwogCiAJc2NoX3NldF9jZGV2KHNjaCwgY2Rldik7Ci0Jc2NoLT5kcml2ZXIgPSAmaW9fc3ViY2hhbm5lbF9kcml2ZXI7CiAJY2Rldi0+Y2N3bG9jayA9IHNjaC0+bG9jazsKIAogCS8qIEluaXQgcHJpdmF0ZSBkYXRhLiAqLwpAQCAtMTEyMiw4ICsxMTIwLDMzIEBACiAJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX0lOVEVSUlVQVCk7CiB9CiAKLXN0YXRpYyBpbnQKLWlvX3N1YmNoYW5uZWxfcHJvYmUgKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX2luaXRfZmllbGRzKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJaWYgKGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQorCQlzY2gtPm9wbSA9IDB4ZmY7CisJZWxzZQorCQlzY2gtPm9wbSA9IGNocF9nZXRfc2NoX29wbShzY2gpOworCXNjaC0+bHBtID0gc2NoLT5zY2hpYi5wbWN3LnBhbSAmIHNjaC0+b3BtOworCXNjaC0+aXNjID0gY2lvX2lzX2NvbnNvbGUoc2NoLT5zY2hpZCkgPyBDT05TT0xFX0lTQyA6IElPX1NDSF9JU0M7CisKKwlDSU9fTVNHX0VWRU5UKDYsICJEZXRlY3RlZCBkZXZpY2UgJTA0eCBvbiBzdWJjaGFubmVsIDAuJXguJTA0WCIKKwkJICAgICAgIiAtIFBJTSA9ICUwMlgsIFBBTSA9ICUwMlgsIFBPTSA9ICUwMlhcbiIsCisJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5kZXYsIHNjaC0+c2NoaWQuc3NpZCwKKwkJICAgICAgc2NoLT5zY2hpZC5zY2hfbm8sIHNjaC0+c2NoaWIucG1jdy5waW0sCisJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0sIHNjaC0+c2NoaWIucG1jdy5wb20pOworCS8qIEluaXRpYWxseSBzZXQgdXAgc29tZSBmaWVsZHMgaW4gdGhlIHBtY3cuICovCisJc2NoLT5zY2hpYi5wbWN3LmVuYSA9IDA7CisJc2NoLT5zY2hpYi5wbWN3LmNzZW5zZSA9IDE7CS8qIGNvbmN1cnJlbnQgc2Vuc2UgKi8KKwlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCisJCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7IC8qIG11bHRpcGF0aCBtb2RlICovCisJLyogY2xlYW4gdXAgcG9zc2libGUgcmVzaWR1YWwgY21mIHN0dWZmICovCisJc2NoLT5zY2hpYi5wbWN3Lm1tZSA9IDA7CisJc2NoLT5zY2hpYi5wbWN3Lm1iZmMgPSAwOworCXNjaC0+c2NoaWIucG1jdy5tYmkgPSAwOworCXNjaC0+c2NoaWIubWJhID0gMDsKK30KKworc3RhdGljIGludCBpb19zdWJjaGFubmVsX3Byb2JlKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCiB7CiAJc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CiAJaW50IHJjOwpAQCAtMTEzMiwxMSArMTE1NSwyMSBAQAogCiAJY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCWlmIChjZGV2KSB7CisJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZzY2gtPmRldi5rb2JqLAorCQkJCQkmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKKwkJaWYgKHJjKQorCQkJQ0lPX01TR19FVkVOVCgwLCAiRmFpbGVkIHRvIGNyZWF0ZSBpbyBzdWJjaGFubmVsICIKKwkJCQkgICAgICAiYXR0cmlidXRlcyBmb3Igc3ViY2hhbm5lbCAiCisJCQkJICAgICAgIjAuJXguJTA0eCAocmM9JWQpXG4iLAorCQkJCSAgICAgIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIHJjKTsKIAkJLyoKIAkJICogVGhpcyBzdWJjaGFubmVsIGFscmVhZHkgaGFzIGFuIGFzc29jaWF0ZWQgY2N3X2RldmljZS4KLQkJICogUmVnaXN0ZXIgaXQgYW5kIGV4aXQuIFRoaXMgaGFwcGVucyBmb3IgYWxsIGVhcmx5Ci0JCSAqIGRldmljZSwgZS5nLiB0aGUgY29uc29sZS4KKwkJICogVGhyb3cgdGhlIGRlbGF5ZWQgdWV2ZW50IGZvciB0aGUgc3ViY2hhbm5lbCwgcmVnaXN0ZXIKKwkJICogdGhlIGNjd19kZXZpY2UgYW5kIGV4aXQuIFRoaXMgaGFwcGVucyBmb3IgYWxsIGVhcmx5CisJCSAqIGRldmljZXMsIGUuZy4gdGhlIGNvbnNvbGUuCiAJCSAqLworCQlzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOworCQlrb2JqZWN0X3VldmVudCgmc2NoLT5kZXYua29iaiwgS09CSl9BREQpOwogCQljZGV2LT5kZXYuZ3JvdXBzID0gY2N3ZGV2X2F0dHJfZ3JvdXBzOwogCQlkZXZpY2VfaW5pdGlhbGl6ZSgmY2Rldi0+ZGV2KTsKIAkJY2N3X2RldmljZV9yZWdpc3RlcihjZGV2KTsKQEAgLTExNTIsMTcgKzExODUsMjQgQEAKIAkJCWdldF9kZXZpY2UoJmNkZXYtPmRldik7CiAJCXJldHVybiAwOwogCX0KKwlpb19zdWJjaGFubmVsX2luaXRfZmllbGRzKHNjaCk7CiAJLyoKIAkgKiBGaXJzdCBjaGVjayBpZiBhIGZpdHRpbmcgZGV2aWNlIG1heSBiZSBmb3VuZCBhbW9uZ3N0IHRoZQogCSAqIGRpc2Nvbm5lY3RlZCBkZXZpY2VzIG9yIGluIHRoZSBvcnBoYW5hZ2UuCiAJICovCiAJZGV2X2lkLmRldm5vID0gc2NoLT5zY2hpYi5wbWN3LmRldjsKIAlkZXZfaWQuc3NpZCA9IHNjaC0+c2NoaWQuc3NpZDsKKwlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmc2NoLT5kZXYua29iaiwKKwkJCQkmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKIAkvKiBBbGxvY2F0ZSBJL08gc3ViY2hhbm5lbCBwcml2YXRlIGRhdGEuICovCiAJc2NoLT5wcml2YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGlvX3N1YmNoYW5uZWxfcHJpdmF0ZSksCiAJCQkgICAgICAgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmICghc2NoLT5wcml2YXRlKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoIXNjaC0+cHJpdmF0ZSkgeworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2VycjsKKwl9CiAJY2RldiA9IGdldF9kaXNjX2Njd2Rldl9ieV9kZXZfaWQoJmRldl9pZCwgTlVMTCk7CiAJaWYgKCFjZGV2KQogCQljZGV2ID0gZ2V0X29ycGhhbmVkX2Njd2Rldl9ieV9kZXZfaWQodG9fY3NzKHNjaC0+ZGV2LnBhcmVudCksCkBAIC0xMTgxLDggKzEyMjEsOCBAQAogCX0KIAljZGV2ID0gaW9fc3ViY2hhbm5lbF9jcmVhdGVfY2N3ZGV2KHNjaCk7CiAJaWYgKElTX0VSUihjZGV2KSkgewotCQlrZnJlZShzY2gtPnByaXZhdGUpOwotCQlyZXR1cm4gUFRSX0VSUihjZGV2KTsKKwkJcmMgPSBQVFJfRVJSKGNkZXYpOworCQlnb3RvIG91dF9lcnI7CiAJfQogCXJjID0gaW9fc3ViY2hhbm5lbF9yZWNvZyhjZGV2LCBzY2gpOwogCWlmIChyYykgewpAQCAtMTE5MSw5ICsxMjMxLDEyIEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CiAJCWlmIChjZGV2LT5kZXYucmVsZWFzZSkKIAkJCWNkZXYtPmRldi5yZWxlYXNlKCZjZGV2LT5kZXYpOwotCQlrZnJlZShzY2gtPnByaXZhdGUpOworCQlnb3RvIG91dF9lcnI7CiAJfQotCisJcmV0dXJuIDA7CitvdXRfZXJyOgorCWtmcmVlKHNjaC0+cHJpdmF0ZSk7CisJc3lzZnNfcmVtb3ZlX2dyb3VwKCZzY2gtPmRldi5rb2JqLCAmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTEyMTQsNiArMTI1Nyw3IEBACiAJY2N3X2RldmljZV91bnJlZ2lzdGVyKGNkZXYpOwogCXB1dF9kZXZpY2UoJmNkZXYtPmRldik7CiAJa2ZyZWUoc2NoLT5wcml2YXRlKTsKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJnNjaC0+ZGV2LmtvYmosICZpb19zdWJjaGFubmVsX2F0dHJfZ3JvdXApOwogCXJldHVybiAwOwogfQogCkBAIC0xMjI0LDExICsxMjY4LDcgQEAKIAljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7CiAJaWYgKCFjZGV2KQogCQlyZXR1cm4gMDsKLQlpZiAoIWNkZXYtPmRydikKLQkJcmV0dXJuIDA7Ci0JaWYgKCFjZGV2LT5vbmxpbmUpCi0JCXJldHVybiAwOwotCXJldHVybiBjZGV2LT5kcnYtPm5vdGlmeSA/IGNkZXYtPmRydi0+bm90aWZ5KGNkZXYsIGV2ZW50KSA6IDA7CisJcmV0dXJuIGNjd19kZXZpY2Vfbm90aWZ5KGNkZXYsIGV2ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF92ZXJpZnkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKQEAgLTEyNDAsMjAgKzEyODAsOTQgQEAKIAkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKIH0KIAotc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9pb3Rlcm0oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3N0YXRpYyBpbnQgY2hlY2tfZm9yX2lvX29uX3BhdGgoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IG1hc2spCit7CisJaW50IGNjOworCisJY2MgPSBzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CisJaWYgKGNjKQorCQlyZXR1cm4gMDsKKwlpZiAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYmIHNjaC0+c2NoaWIucG1jdy5scHVtID09IG1hc2spCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKKwkJCQkgIHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQoreworCWlmIChjaW9fY2xlYXIoc2NoKSkgeworCQkvKiBSZWNoZWNrIGRldmljZSBpbiBjYXNlIGNsZWFyIGZhaWxlZC4gKi8KKwkJc2NoLT5scG0gPSAwOworCQlpZiAoY2Rldi0+b25saW5lKQorCQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKKwkJZWxzZQorCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7CisJCXJldHVybjsKKwl9CisJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfQ0xFQVJfVkVSSUZZOworCS8qIFJlcXVlc3QgcmV0cnkgb2YgaW50ZXJuYWwgb3BlcmF0aW9uLiAqLworCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMTsKKwkvKiBDYWxsIGhhbmRsZXIuICovCisJaWYgKGNkZXYtPmhhbmRsZXIpCisJCWNkZXYtPmhhbmRsZXIoY2RldiwgY2Rldi0+cHJpdmF0ZS0+aW50cGFybSwKKwkJCSAgICAgIEVSUl9QVFIoLUVJTykpOworfQorCitzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX3Rlcm1pbmF0ZV9wYXRoKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHU4IG1hc2spCiB7CiAJc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CiAKIAljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7CiAJaWYgKCFjZGV2KQogCQlyZXR1cm47Ci0JLyogSW50ZXJuYWwgSS9PIHdpbGwgYmUgcmV0cmllZCBieSB0aGUgaW50ZXJydXB0IGhhbmRsZXIuICovCi0JaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KQotCQlyZXR1cm47Ci0JY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfQ0xFQVJfVkVSSUZZOwotCWlmIChjZGV2LT5oYW5kbGVyKQotCQljZGV2LT5oYW5kbGVyKGNkZXYsIGNkZXYtPnByaXZhdGUtPmludHBhcm0sCi0JCQkgICAgICBFUlJfUFRSKC1FSU8pKTsKKwlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgeworCQlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX09OTElORSkKKwkJCWNjd19kZXZpY2Vfa2lsbF9pbyhjZGV2KTsKKwkJZWxzZSB7CisJCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoLCBjZGV2KTsKKwkJCS8qIFJlLXN0YXJ0IHBhdGggdmVyaWZpY2F0aW9uLiAqLworCQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKKwkJfQorCX0gZWxzZQorCQkvKiB0cmlnZ2VyIHBhdGggdmVyaWZpY2F0aW9uLiAqLworCQlkZXZfZnNtX2V2ZW50KGNkZXYsIERFVl9FVkVOVF9WRVJJRlkpOworCit9CisKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9jaHBfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKKwkJCQkgICBzdHJ1Y3QgY2hwX2xpbmsgKmxpbmssIGludCBldmVudCkKK3sKKwlpbnQgbWFzazsKKworCW1hc2sgPSBjaHBfc3NkX2dldF9tYXNrKCZzY2gtPnNzZF9pbmZvLCBsaW5rKTsKKwlpZiAoIW1hc2spCisJCXJldHVybiAwOworCXN3aXRjaCAoZXZlbnQpIHsKKwljYXNlIENIUF9WQVJZX09GRjoKKwkJc2NoLT5vcG0gJj0gfm1hc2s7CisJCXNjaC0+bHBtICY9IH5tYXNrOworCQlpb19zdWJjaGFubmVsX3Rlcm1pbmF0ZV9wYXRoKHNjaCwgbWFzayk7CisJCWJyZWFrOworCWNhc2UgQ0hQX1ZBUllfT046CisJCXNjaC0+b3BtIHw9IG1hc2s7CisJCXNjaC0+bHBtIHw9IG1hc2s7CisJCWlvX3N1YmNoYW5uZWxfdmVyaWZ5KHNjaCk7CisJCWJyZWFrOworCWNhc2UgQ0hQX09GRkxJTkU6CisJCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikpCisJCQlyZXR1cm4gLUVOWElPOworCQlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJCWlvX3N1YmNoYW5uZWxfdGVybWluYXRlX3BhdGgoc2NoLCBtYXNrKTsKKwkJYnJlYWs7CisJY2FzZSBDSFBfT05MSU5FOgorCQlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQorCQkJcmV0dXJuIC1FTlhJTzsKKwkJc2NoLT5scG0gfD0gbWFzayAmIHNjaC0+b3BtOworCQlpb19zdWJjaGFubmVsX3ZlcmlmeShzY2gpOworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xMjg1LDYgKzEzOTksMTk1IEBACiAJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOwogfQogCitzdGF0aWMgaW50IGlvX3N1YmNoYW5uZWxfZ2V0X3N0YXR1cyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCXN0cnVjdCBzY2hpYiBzY2hpYjsKKworCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoaWIpIHx8ICFzY2hpYi5wbWN3LmRudikKKwkJcmV0dXJuIENJT19HT05FOworCWlmIChzY2gtPnNjaGliLnBtY3cuZG52ICYmIChzY2hpYi5wbWN3LmRldiAhPSBzY2gtPnNjaGliLnBtY3cuZGV2KSkKKwkJcmV0dXJuIENJT19SRVZBTElEQVRFOworCWlmICghc2NoLT5scG0pCisJCXJldHVybiBDSU9fTk9fUEFUSDsKKwlyZXR1cm4gQ0lPX09QRVI7Cit9CisKK3N0YXRpYyBpbnQgZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlpZiAoIWNkZXYpCisJCXJldHVybiAwOworCXJldHVybiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRCB8fAorCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfRElTQ09OTkVDVEVEX1NFTlNFX0lEKTsKK30KKworc3RhdGljIGludCByZWNvdmVyeV9jaGVjayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXYgPSB0b19jY3dkZXYoZGV2KTsKKwlpbnQgKnJlZG8gPSBkYXRhOworCisJc3Bpbl9sb2NrX2lycShjZGV2LT5jY3dsb2NrKTsKKwlzd2l0Y2ggKGNkZXYtPnByaXZhdGUtPnN0YXRlKSB7CisJY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEOgorCQlDSU9fTVNHX0VWRU5UKDMsICJyZWNvdmVyeTogdHJpZ2dlciAwLiV4LiUwNHhcbiIsCisJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuc3NpZCwKKwkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubyk7CisJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7CisJCSpyZWRvID0gMTsKKwkJYnJlYWs7CisJY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEX1NFTlNFX0lEOgorCQkqcmVkbyA9IDE7CisJCWJyZWFrOworCX0KKwlzcGluX3VubG9ja19pcnEoY2Rldi0+Y2N3bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmVjb3Zlcnlfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqdW51c2VkKQoreworCWludCByZWRvID0gMDsKKworCWJ1c19mb3JfZWFjaF9kZXYoJmNjd19idXNfdHlwZSwgTlVMTCwgJnJlZG8sIHJlY292ZXJ5X2NoZWNrKTsKKwlpZiAocmVkbykgeworCQlzcGluX2xvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKKwkJaWYgKCF0aW1lcl9wZW5kaW5nKCZyZWNvdmVyeV90aW1lcikpIHsKKwkJCWlmIChyZWNvdmVyeV9waGFzZSA8IEFSUkFZX1NJWkUocmVjb3ZlcnlfZGVsYXkpIC0gMSkKKwkJCQlyZWNvdmVyeV9waGFzZSsrOworCQkJbW9kX3RpbWVyKCZyZWNvdmVyeV90aW1lciwgamlmZmllcyArCisJCQkJICByZWNvdmVyeV9kZWxheVtyZWNvdmVyeV9waGFzZV0gKiBIWik7CisJCX0KKwkJc3Bpbl91bmxvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKKwl9IGVsc2UKKwkJQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IGVuZFxuIik7Cit9CisKK3N0YXRpYyBERUNMQVJFX1dPUksocmVjb3Zlcnlfd29yaywgcmVjb3Zlcnlfd29ya19mdW5jKTsKKworc3RhdGljIHZvaWQgcmVjb3ZlcnlfZnVuYyh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJLyoKKwkgKiBXZSBjYW4ndCBkbyBvdXIgcmVjb3ZlcnkgaW4gc29mdGlycSBjb250ZXh0IGFuZCBpdCdzIG5vdAorCSAqIHBlcmZvcm1hbmNlIGNyaXRpY2FsLCBzbyB3ZSBzY2hlZHVsZSBpdC4KKwkgKi8KKwlzY2hlZHVsZV93b3JrKCZyZWNvdmVyeV93b3JrKTsKK30KKworc3RhdGljIHZvaWQgY2N3X2RldmljZV9zY2hlZHVsZV9yZWNvdmVyeSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlDSU9fTVNHX0VWRU5UKDQsICJyZWNvdmVyeTogc2NoZWR1bGVcbiIpOworCXNwaW5fbG9ja19pcnFzYXZlKCZyZWNvdmVyeV9sb2NrLCBmbGFncyk7CisJaWYgKCF0aW1lcl9wZW5kaW5nKCZyZWNvdmVyeV90aW1lcikgfHwgKHJlY292ZXJ5X3BoYXNlICE9IDApKSB7CisJCXJlY292ZXJ5X3BoYXNlID0gMDsKKwkJbW9kX3RpbWVyKCZyZWNvdmVyeV90aW1lciwgamlmZmllcyArIHJlY292ZXJ5X2RlbGF5WzBdICogSFopOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyZWNvdmVyeV9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIGRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQoreworCWlmICghY2RldikKKwkJcmV0dXJuOworCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CisJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIgPSAwOworCWNkZXYtPnByaXZhdGUtPnN0YXRlID0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRDsKKwlpZiAoY2Rldi0+b25saW5lKQorCQljY3dfZGV2aWNlX3NjaGVkdWxlX3JlY292ZXJ5KCk7Cit9CisKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9zY2hfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IHNsb3cpCit7CisJaW50IGV2ZW50LCByZXQsIGRpc2M7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwllbnVtIHsgTk9ORSwgVU5SRUdJU1RFUiwgVU5SRUdJU1RFUl9QUk9CRSwgUkVQUk9CRSB9IGFjdGlvbjsKKwlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKKworCXNwaW5fbG9ja19pcnFzYXZlKHNjaC0+bG9jaywgZmxhZ3MpOworCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKKwlkaXNjID0gZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChjZGV2KTsKKwlpZiAoZGlzYyAmJiBzbG93KSB7CisJCS8qIERpc2Nvbm5lY3RlZCBkZXZpY2VzIGFyZSBldmFsdWF0ZWQgZGlyZWN0bHkgb25seS4qLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisJLyogTm8gaW50ZXJydXB0IGFmdGVyIG1hY2hpbmUgY2hlY2sgLSBraWxsIHBlbmRpbmcgdGltZXJzLiAqLworCWlmIChjZGV2KQorCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOworCWlmICghZGlzYyAmJiAhc2xvdykgeworCQkvKiBOb24tZGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBvbiB0aGUgc2xvdyBwYXRoLiAqLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJZXZlbnQgPSBpb19zdWJjaGFubmVsX2dldF9zdGF0dXMoc2NoKTsKKwlDSU9fTVNHX0VWRU5UKDQsICJFdmFsdWF0aW5nIHNjaGlkIDAuJXguJTA0eCwgZXZlbnQgJWQsICVzLCAlcyBwYXRoLlxuIiwKKwkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgZXZlbnQsCisJCSAgICAgIGRpc2MgPyAiZGlzY29ubmVjdGVkIiA6ICJub3JtYWwiLAorCQkgICAgICBzbG93ID8gInNsb3ciIDogImZhc3QiKTsKKwkvKiBBbmFseXplIHN1YmNoYW5uZWwgc3RhdHVzLiAqLworCWFjdGlvbiA9IE5PTkU7CisJc3dpdGNoIChldmVudCkgeworCWNhc2UgQ0lPX05PX1BBVEg6CisJCWlmIChkaXNjKSB7CisJCQkvKiBDaGVjayBpZiBwYXRocyBoYXZlIGJlY29tZSBhdmFpbGFibGUuICovCisJCQlhY3Rpb24gPSBSRVBST0JFOworCQkJYnJlYWs7CisJCX0KKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBDSU9fR09ORToKKwkJLyogUHJldmVudCB1bndhbnRlZCBlZmZlY3RzIHdoZW4gb3BlbmluZyBsb2NrLiAqLworCQljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7CisJCWRldmljZV9zZXRfZGlzY29ubmVjdGVkKGNkZXYpOworCQkvKiBBc2sgZHJpdmVyIHdoYXQgdG8gZG8gd2l0aCBkZXZpY2UuICovCisJCWFjdGlvbiA9IFVOUkVHSVNURVI7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CisJCXJldCA9IGlvX3N1YmNoYW5uZWxfbm90aWZ5KHNjaCwgZXZlbnQpOworCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJaWYgKHJldCkKKwkJCWFjdGlvbiA9IE5PTkU7CisJCWJyZWFrOworCWNhc2UgQ0lPX1JFVkFMSURBVEU6CisJCS8qIERldmljZSB3aWxsIGJlIHJlbW92ZWQsIHNvIG5vIG5vdGlmeSBuZWNlc3NhcnkuICovCisJCWlmIChkaXNjKQorCQkJLyogUmVwcm9iZSBiZWNhdXNlIGltbWVkaWF0ZSB1bnJlZ2lzdGVyIG1pZ2h0IGJsb2NrLiAqLworCQkJYWN0aW9uID0gUkVQUk9CRTsKKwkJZWxzZQorCQkJYWN0aW9uID0gVU5SRUdJU1RFUl9QUk9CRTsKKwkJYnJlYWs7CisJY2FzZSBDSU9fT1BFUjoKKwkJaWYgKGRpc2MpCisJCQkvKiBHZXQgZGV2aWNlIG9wZXJhdGlvbmFsIGFnYWluLiAqLworCQkJYWN0aW9uID0gUkVQUk9CRTsKKwkJYnJlYWs7CisJfQorCS8qIFBlcmZvcm0gYWN0aW9uLiAqLworCXJldCA9IDA7CisJc3dpdGNoIChhY3Rpb24pIHsKKwljYXNlIFVOUkVHSVNURVI6CisJY2FzZSBVTlJFR0lTVEVSX1BST0JFOgorCQkvKiBVbnJlZ2lzdGVyIGRldmljZSAod2lsbCB1c2Ugc3ViY2hhbm5lbCBsb2NrKS4gKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzY2gpOworCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKKworCQkvKiBSZXNldCBpbnRwYXJtIHRvIHplcm9lcy4gKi8KKwkJc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAwOworCQljaW9fbW9kaWZ5KHNjaCk7CisJCWJyZWFrOworCWNhc2UgUkVQUk9CRToKKwkJY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoY2Rldik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCS8qIFByb2JlIGlmIG5lY2Vzc2FyeS4gKi8KKwlpZiAoYWN0aW9uID09IFVOUkVHSVNURVJfUFJPQkUpCisJCXJldCA9IGNzc19wcm9iZV9kZXZpY2Uoc2NoLT5zY2hpZCk7CisKKwlyZXR1cm4gcmV0OworfQorCiAjaWZkZWYgQ09ORklHX0NDV19DT05TT0xFCiBzdGF0aWMgc3RydWN0IGNjd19kZXZpY2UgY29uc29sZV9jZGV2Owogc3RhdGljIHN0cnVjdCBjY3dfZGV2aWNlX3ByaXZhdGUgY29uc29sZV9wcml2YXRlOwpAQCAtMTI5NywxNCArMTYwMCwxNiBAQAogCXJldHVybiAmY2N3X2NvbnNvbGVfbG9jazsKIH0KIAotc3RhdGljIGludAotY2N3X2RldmljZV9jb25zb2xlX2VuYWJsZSAoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitzdGF0aWMgaW50IGNjd19kZXZpY2VfY29uc29sZV9lbmFibGUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsCisJCQkJICAgICBzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewogCWludCByYzsKIAogCS8qIEF0dGFjaCBzdWJjaGFubmVsIHByaXZhdGUgZGF0YS4gKi8KIAlzY2gtPnByaXZhdGUgPSBjaW9fZ2V0X2NvbnNvbGVfcHJpdigpOwogCW1lbXNldChzY2gtPnByaXZhdGUsIDAsIHNpemVvZihzdHJ1Y3QgaW9fc3ViY2hhbm5lbF9wcml2YXRlKSk7CisJaW9fc3ViY2hhbm5lbF9pbml0X2ZpZWxkcyhzY2gpOworCXNjaC0+ZHJpdmVyID0gJmlvX3N1YmNoYW5uZWxfZHJpdmVyOwogCS8qIEluaXRpYWxpemUgdGhlIGNjd19kZXZpY2Ugc3RydWN0dXJlLiAqLwogCWNkZXYtPmRldi5wYXJlbnQ9ICZzY2gtPmRldjsKIAlyYyA9IGlvX3N1YmNoYW5uZWxfcmVjb2coY2Rldiwgc2NoKTsKQEAgLTE1MTUsNzEgKzE4MjAsNiBAQAogCXJldHVybiBzY2gtPnNjaGlkOwogfQogCi1zdGF0aWMgaW50IHJlY292ZXJ5X2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiA9IHRvX2Njd2RldihkZXYpOwotCWludCAqcmVkbyA9IGRhdGE7Ci0KLQlzcGluX2xvY2tfaXJxKGNkZXYtPmNjd2xvY2spOwotCXN3aXRjaCAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUpIHsKLQljYXNlIERFVl9TVEFURV9ESVNDT05ORUNURUQ6Ci0JCUNJT19NU0dfRVZFTlQoNCwgInJlY292ZXJ5OiB0cmlnZ2VyIDAuJXguJTA0eFxuIiwKLQkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5zc2lkLAotCQkJICAgICAgY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkLmRldm5vKTsKLQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKLQkJKnJlZG8gPSAxOwotCQlicmVhazsKLQljYXNlIERFVl9TVEFURV9ESVNDT05ORUNURURfU0VOU0VfSUQ6Ci0JCSpyZWRvID0gMTsKLQkJYnJlYWs7Ci0JfQotCXNwaW5fdW5sb2NrX2lycShjZGV2LT5jY3dsb2NrKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCByZWNvdmVyeV93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp1bnVzZWQpCi17Ci0JaW50IHJlZG8gPSAwOwotCi0JYnVzX2Zvcl9lYWNoX2RldigmY2N3X2J1c190eXBlLCBOVUxMLCAmcmVkbywgcmVjb3ZlcnlfY2hlY2spOwotCWlmIChyZWRvKSB7Ci0JCXNwaW5fbG9ja19pcnEoJnJlY292ZXJ5X2xvY2spOwotCQlpZiAoIXRpbWVyX3BlbmRpbmcoJnJlY292ZXJ5X3RpbWVyKSkgewotCQkJaWYgKHJlY292ZXJ5X3BoYXNlIDwgQVJSQVlfU0laRShyZWNvdmVyeV9kZWxheSkgLSAxKQotCQkJCXJlY292ZXJ5X3BoYXNlKys7Ci0JCQltb2RfdGltZXIoJnJlY292ZXJ5X3RpbWVyLCBqaWZmaWVzICsKLQkJCQkgIHJlY292ZXJ5X2RlbGF5W3JlY292ZXJ5X3BoYXNlXSAqIEhaKTsKLQkJfQotCQlzcGluX3VubG9ja19pcnEoJnJlY292ZXJ5X2xvY2spOwotCX0gZWxzZQotCQlDSU9fTVNHX0VWRU5UKDQsICJyZWNvdmVyeTogZW5kXG4iKTsKLX0KLQotc3RhdGljIERFQ0xBUkVfV09SSyhyZWNvdmVyeV93b3JrLCByZWNvdmVyeV93b3JrX2Z1bmMpOwotCi1zdGF0aWMgdm9pZCByZWNvdmVyeV9mdW5jKHVuc2lnbmVkIGxvbmcgZGF0YSkKLXsKLQkvKgotCSAqIFdlIGNhbid0IGRvIG91ciByZWNvdmVyeSBpbiBzb2Z0aXJxIGNvbnRleHQgYW5kIGl0J3Mgbm90Ci0JICogcGVyZm9ybWFuY2UgY3JpdGljYWwsIHNvIHdlIHNjaGVkdWxlIGl0LgotCSAqLwotCXNjaGVkdWxlX3dvcmsoJnJlY292ZXJ5X3dvcmspOwotfQotCi12b2lkIGNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3Zlcnkodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IHNjaGVkdWxlXG4iKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOwotCWlmICghdGltZXJfcGVuZGluZygmcmVjb3ZlcnlfdGltZXIpIHx8IChyZWNvdmVyeV9waGFzZSAhPSAwKSkgewotCQlyZWNvdmVyeV9waGFzZSA9IDA7Ci0JCW1vZF90aW1lcigmcmVjb3ZlcnlfdGltZXIsIGppZmZpZXMgKyByZWNvdmVyeV9kZWxheVswXSAqIEhaKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOwotfQotCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2Vfc2V0X29ubGluZSk7CiBFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2Vfc2V0X29mZmxpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuaCBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmgKaW5kZXggY2IwODA5Mi4uOTgwMGE4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5oCkBAIC04OCw4ICs4OCw2IEBACiBpbnQgY2N3X2RldmljZV9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKik7CiBpbnQgY2N3X2RldmljZV9vZmZsaW5lKHN0cnVjdCBjY3dfZGV2aWNlICopOwogCi12b2lkIGNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3Zlcnkodm9pZCk7Ci0KIC8qIEZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIGRldmljZSBzdGF0dXMgYW5kIGJhc2ljIHNlbnNlIHN0dWZmLiAqLwogdm9pZCBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfaXJiKHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCBpcmIgKik7CiB2b2lkIGNjd19kZXZpY2VfYWNjdW11bGF0ZV9iYXNpY19zZW5zZShzdHJ1Y3QgY2N3X2RldmljZSAqLCBzdHJ1Y3QgaXJiICopOwpAQCAtMTE4LDYgKzExNiwxMSBAQAogCiBpbnQgY2N3X2RldmljZV9zdGxjayhzdHJ1Y3QgY2N3X2RldmljZSAqKTsKIAorLyogSGVscGVyIGZ1bmN0aW9uIGZvciBtYWNoaW5lIGNoZWNrIGhhbmRsaW5nLiAqLwordm9pZCBjY3dfZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzdHJ1Y3QgY2N3X2RldmljZSAqKTsKK3ZvaWQgY2N3X2RldmljZV9raWxsX2lvKHN0cnVjdCBjY3dfZGV2aWNlICopOworaW50IGNjd19kZXZpY2Vfbm90aWZ5KHN0cnVjdCBjY3dfZGV2aWNlICosIGludCk7CisKIC8qIHFkaW8gbmVlZHMgdGhpcy4gKi8KIHZvaWQgY2N3X2RldmljZV9zZXRfdGltZW91dChzdHJ1Y3QgY2N3X2RldmljZSAqLCBpbnQpOwogZXh0ZXJuIHN0cnVjdCBzdWJjaGFubmVsX2lkIGNjd19kZXZpY2VfZ2V0X3N1YmNoYW5uZWxfaWQoc3RydWN0IGNjd19kZXZpY2UgKik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9mc20uYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCmluZGV4IGUyNjhkNWEuLjhiNWZlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCkBAIC0yLDggKzIsNyBAQAogICogZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfZnNtLmMKICAqIGZpbml0ZSBzdGF0ZSBtYWNoaW5lIGZvciBkZXZpY2UgaGFuZGxpbmcKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgTWFydGluIFNjaHdpZGVmc2t5IChzY2h3aWRlZnNreUBkZS5pYm0uY29tKQogICovCkBAIC0yNyw2NSArMjYsNiBAQAogCiBzdGF0aWMgaW50IHRpbWVvdXRfbG9nX2VuYWJsZWQ7CiAKLWludAotZGV2aWNlX2lzX29ubGluZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIChjZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfT05MSU5FKTsKLX0KLQotaW50Ci1kZXZpY2VfaXNfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gKGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9ESVNDT05ORUNURUQgfHwKLQkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRF9TRU5TRV9JRCk7Ci19Ci0KLXZvaWQKLWRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKLQljZGV2LT5wcml2YXRlLT5mbGFncy5mYWtlX2lyYiA9IDA7Ci0JY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfRElTQ09OTkVDVEVEOwotCWlmIChjZGV2LT5vbmxpbmUpCi0JCWNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3ZlcnkoKTsKLX0KLQotdm9pZCBkZXZpY2Vfc2V0X2ludHJldHJ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAxOwotfQotCi1pbnQgZGV2aWNlX3RyaWdnZXJfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2IHx8ICFjZGV2LT5vbmxpbmUpCi0JCXJldHVybiAtRUlOVkFMOwotCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgX19pbml0IGNjd190aW1lb3V0X2xvZ19zZXR1cChjaGFyICp1bnVzZWQpCiB7CiAJdGltZW91dF9sb2dfZW5hYmxlZCA9IDE7CkBAIC05OSwzMSArMzksNDMgQEAKIAlzdHJ1Y3Qgc2NoaWIgc2NoaWI7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKIAlzdHJ1Y3QgaW9fc3ViY2hhbm5lbF9wcml2YXRlICpwcml2YXRlOworCXVuaW9uIG9yYiAqb3JiOwogCWludCBjYzsKIAogCXNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CiAJcHJpdmF0ZSA9IHRvX2lvX3ByaXZhdGUoc2NoKTsKKwlvcmIgPSAmcHJpdmF0ZS0+b3JiOwogCWNjID0gc3RzY2goc2NoLT5zY2hpZCwgJnNjaGliKTsKIAogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSB0aW1lb3V0IG9jY3VycmVkIGF0ICVsbHgsICIKIAkgICAgICAgImRldmljZSBpbmZvcm1hdGlvbjpcbiIsIGdldF9jbG9jaygpKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IG9yYjpcbiIpOwogCXByaW50X2hleF9kdW1wKEtFUk5fV0FSTklORywgImNpbzogICIsIERVTVBfUFJFRklYX05PTkUsIDE2LCAxLAotCQkgICAgICAgJnByaXZhdGUtPm9yYiwgc2l6ZW9mKHByaXZhdGUtPm9yYiksIDApOworCQkgICAgICAgb3JiLCBzaXplb2YoKm9yYiksIDApOwogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSBidXMgaWQ6ICVzXG4iLCBjZGV2LT5kZXYuYnVzX2lkKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN1YmNoYW5uZWwgYnVzIGlkOiAlc1xuIiwgc2NoLT5kZXYuYnVzX2lkKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN1YmNoYW5uZWwgbHBtOiAlMDJ4LCBvcG06ICUwMngsICIKIAkgICAgICAgInZwbTogJTAyeFxuIiwgc2NoLT5scG0sIHNjaC0+b3BtLCBzY2gtPnZwbSk7CiAKLQlpZiAoKHZvaWQgKikoYWRkcl90KXByaXZhdGUtPm9yYi5jcGEgPT0gJnByaXZhdGUtPnNlbnNlX2NjdyB8fAotCSAgICAodm9pZCAqKShhZGRyX3QpcHJpdmF0ZS0+b3JiLmNwYSA9PSBjZGV2LT5wcml2YXRlLT5pY2N3cykKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJvZ3JhbSAoaW50ZXJuKTpcbiIpOwotCWVsc2UKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJvZ3JhbTpcbiIpOworCWlmIChvcmItPnRtLmIpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBvcmIgaW5kaWNhdGVzIHRyYW5zcG9ydCBtb2RlXG4iKTsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IHRjdzpcbiIpOworCQlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKKwkJCSAgICAgICAodm9pZCAqKShhZGRyX3Qpb3JiLT50bS50Y3csCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB0Y3cpLCAwKTsKKwl9IGVsc2UgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IG9yYiBpbmRpY2F0ZXMgY29tbWFuZCBtb2RlXG4iKTsKKwkJaWYgKCh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEgPT0gJnByaXZhdGUtPnNlbnNlX2NjdyB8fAorCQkgICAgKHZvaWQgKikoYWRkcl90KW9yYi0+Y21kLmNwYSA9PSBjZGV2LT5wcml2YXRlLT5pY2N3cykKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogbGFzdCBjaGFubmVsIHByb2dyYW0gIgorCQkJICAgICAgICIoaW50ZXJuKTpcbiIpOworCQllbHNlCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGxhc3QgY2hhbm5lbCBwcm9ncmFtOlxuIik7CiAKLQlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKLQkJICAgICAgICh2b2lkICopKGFkZHJfdClwcml2YXRlLT5vcmIuY3BhLAotCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBjY3cxKSwgMCk7CisJCXByaW50X2hleF9kdW1wKEtFUk5fV0FSTklORywgImNpbzogICIsIERVTVBfUFJFRklYX05PTkUsIDE2LCAxLAorCQkJICAgICAgICh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEsCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBjY3cxKSwgMCk7CisJfQogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSBzdGF0ZTogJWRcbiIsCiAJICAgICAgIGNkZXYtPnByaXZhdGUtPnN0YXRlKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN0b3JlIHN1YmNoYW5uZWwgcmV0dXJuZWQ6IGNjPSVkXG4iLCBjYyk7CkBAIC0xNzEsMTggKzEyMyw2IEBACiAJYWRkX3RpbWVyKCZjZGV2LT5wcml2YXRlLT50aW1lcik7CiB9CiAKLS8qIEtpbGwgYW55IHBlbmRpbmcgdGltZXJzIGFmdGVyIG1hY2hpbmUgY2hlY2suICovCi12b2lkCi1kZXZpY2Vfa2lsbF9wZW5kaW5nX3RpbWVyKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKLX0KLQogLyoKICAqIENhbmNlbCBydW5uaW5nIGkvby4gVGhpcyBpcyBjYWxsZWQgcmVwZWF0ZWRseSBzaW5jZSBoYWx0L2NsZWFyIGFyZQogICogYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMuIFdlIGRvIG9uZSB0cnkgd2l0aCBjaW9fY2FuY2VsLCB0d28gdHJpZXMKQEAgLTIwNSwxNSArMTQ1LDE4IEBACiAJCS8qIE5vdCBvcGVyYXRpb25hbCAtPiBkb25lLiAqLwogCQlyZXR1cm4gMDsKIAkvKiBTdGFnZSAxOiBjYW5jZWwgaW8uICovCi0JaWYgKCEoc2NoLT5zY2hpYi5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfSEFMVF9QRU5EKSAmJgotCSAgICAhKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX0NMRUFSX1BFTkQpKSB7Ci0JCXJldCA9IGNpb19jYW5jZWwoc2NoKTsKLQkJaWYgKHJldCAhPSAtRUlOVkFMKQotCQkJcmV0dXJuIHJldDsKLQkJLyogY2FuY2VsIGlvIHVuc3VjY2Vzc2Z1bC4gRnJvbSBub3cgb24gaXQgaXMgYXN5bmNocm9ub3VzLiAqLworCWlmICghKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9IQUxUX1BFTkQpICYmCisJICAgICEoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19BQ1RMX0NMRUFSX1BFTkQpKSB7CisJCWlmICghc2Nzd19pc190bSgmc2NoLT5zY2hpYi5zY3N3KSkgeworCQkJcmV0ID0gY2lvX2NhbmNlbChzY2gpOworCQkJaWYgKHJldCAhPSAtRUlOVkFMKQorCQkJCXJldHVybiByZXQ7CisJCX0KKwkJLyogY2FuY2VsIGlvIHVuc3VjY2Vzc2Z1bCBvciBub3QgYXBwbGljYWJsZSAodHJhbnNwb3J0IG1vZGUpLgorCQkgKiBDb250aW51ZSB3aXRoIGFzeW5jaHJvbm91cyBpbnN0cnVjdGlvbnMuICovCiAJCWNkZXYtPnByaXZhdGUtPmlyZXRyeSA9IDM7CS8qIDMgaGFsdCByZXRyaWVzLiAqLwogCX0KLQlpZiAoIShzY2gtPnNjaGliLnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgeworCWlmICghKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgewogCQkvKiBTdGFnZSAyOiBoYWx0IGlvLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+aXJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5pcmV0cnktLTsKQEAgLTM4OCwzNCArMzMxLDMwIEBACiAJfQogfQogCitpbnQgY2N3X2RldmljZV9ub3RpZnkoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCBldmVudCkKK3sKKwlpZiAoIWNkZXYtPmRydikKKwkJcmV0dXJuIDA7CisJaWYgKCFjZGV2LT5vbmxpbmUpCisJCXJldHVybiAwOworCXJldHVybiBjZGV2LT5kcnYtPm5vdGlmeSA/IGNkZXYtPmRydi0+bm90aWZ5KGNkZXYsIGV2ZW50KSA6IDA7Cit9CisKIHN0YXRpYyB2b2lkCiBjY3dfZGV2aWNlX29wZXJfbm90aWZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlICpwcml2OwogCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCXN0cnVjdCBzdWJjaGFubmVsICpzY2g7CiAJaW50IHJldDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlLCBraWNrX3dvcmspOwogCWNkZXYgPSBwcml2LT5jZGV2OwotCXNwaW5fbG9ja19pcnFzYXZlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKLQlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwotCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+bm90aWZ5KSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwotCQlyZXQgPSBzY2gtPmRyaXZlci0+bm90aWZ5KHNjaCwgQ0lPX09QRVIpOwotCQlzcGluX2xvY2tfaXJxc2F2ZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7Ci0JfSBlbHNlCi0JCXJldCA9IDA7CisJcmV0ID0gY2N3X2RldmljZV9ub3RpZnkoY2RldiwgQ0lPX09QRVIpOwogCWlmIChyZXQpIHsKIAkJLyogUmVlbmFibGUgY2hhbm5lbCBtZWFzdXJlbWVudHMsIGlmIG5lZWRlZC4gKi8KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7CiAJCWNtZl9yZWVuYWJsZShjZGV2KTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwogCQl3YWtlX3VwKCZjZGV2LT5wcml2YXRlLT53YWl0X3EpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKLQlpZiAoIXJldCkKKwl9IGVsc2UKIAkJLyogRHJpdmVyIGRvZXNuJ3Qgd2FudCBkZXZpY2UgYmFjay4gKi8KIAkJY2N3X2RldmljZV9kb191bnJlZ19yZXJlZyh3b3JrKTsKIH0KQEAgLTYyMSwxMCArNTYwLDExIEBACiAJCS8qIERlbGl2ZXIgZmFrZSBpcmIgdG8gZGV2aWNlIGRyaXZlciwgaWYgbmVlZGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIpIHsKIAkJCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY2MgPSAxOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZmN0bCA9IFNDU1dfRkNUTF9TVEFSVF9GVU5DOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuYWN0bCA9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuc3RjdGwgPSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EOworCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmNjID0gMTsKKwkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5mY3RsID0gU0NTV19GQ1RMX1NUQVJUX0ZVTkM7CisJCQljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCA9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOworCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLnN0Y3RsID0KKwkJCQlTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EOwogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIgPSAwOwogCQkJaWYgKGNkZXYtPmhhbmRsZXIpCiAJCQkJY2Rldi0+aGFuZGxlcihjZGV2LCBjZGV2LT5wcml2YXRlLT5pbnRwYXJtLApAQCAtNzE4LDEzICs2NTgsMTAgQEAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikgfHwgIXNjaC0+c2NoaWIucG1jdy5kbnYpCiAJCXJldHVybiAtRU5PREVWOwotCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKSB7Ci0JCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQotCQkJcmV0dXJuIC1FQlVTWTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQorCWlmIChzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgIT0gMCkKIAkJcmV0dXJuIC1FQlVTWTsKKwlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJLyogQXJlIHdlIGRvaW5nIHBhdGggZ3JvdXBpbmc/ICovCiAJaWYgKCFjZGV2LT5wcml2YXRlLT5vcHRpb25zLnBncm91cCkgewogCQkvKiBObywgc2V0IHN0YXRlIG9mZmxpbmUgaW1tZWRpYXRlbHkuICovCkBAIC03OTksOSArNzM2LDkgQEAKIAkgKi8KIAlzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CiAKLQlpZiAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgIT0gMCB8fAotCSAgICAoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHsKKwlpZiAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICE9IDAgfHwKKwkgICAgKHNjc3dfc3RjdGwoJnNjaC0+c2NoaWIuc2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCSAgICAoc2Nzd19zdGN0bCgmY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cpICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHsKIAkJLyoKIAkJICogTm8gZmluYWwgc3RhdHVzIHlldCBvciBmaW5hbCBzdGF0dXMgbm90IHlldCBkZWxpdmVyZWQKIAkJICogdG8gdGhlIGRldmljZSBkcml2ZXIuIENhbid0IGRvIHBhdGggdmVyZmljYXRpb24gbm93LApAQCAtODIzLDEzICs3NjAsMTMgQEAKIGNjd19kZXZpY2VfaXJxKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBlbnVtIGRldl9ldmVudCBkZXZfZXZlbnQpCiB7CiAJc3RydWN0IGlyYiAqaXJiOworCWludCBpc19jbWQ7CiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKKwlpc19jbWQgPSAhc2Nzd19pc190bSgmaXJiLT5zY3N3KTsKIAkvKiBDaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0LiAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgIAkJKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpCi0JICAgICYmICghaXJiLT5zY3N3LmNjKSkgewotCQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJaWYgKCFzY3N3X2lzX3NvbGljaXRlZCgmaXJiLT5zY3N3KSkgeworCQlpZiAoaXNfY21kICYmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYKIAkJICAgICFpcmItPmVzdy5lc3cwLmVydy5jb25zKSB7CiAJCQkvKiBVbml0IGNoZWNrIGJ1dCBubyBzZW5zZSBkYXRhLiBOZWVkIGJhc2ljIHNlbnNlLiAqLwogCQkJaWYgKGNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKSAhPSAwKQpAQCAtODQ4LDcgKzc4NSw3IEBACiAJfQogCS8qIEFjY3VtdWxhdGUgc3RhdHVzIGFuZCBmaW5kIG91dCBpZiBhIGJhc2ljIHNlbnNlIGlzIG5lZWRlZC4gKi8KIAljY3dfZGV2aWNlX2FjY3VtdWxhdGVfaXJiKGNkZXYsIGlyYik7Ci0JaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UpIHsKKwlpZiAoaXNfY21kICYmIGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UpIHsKIAkJaWYgKGNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKSA9PSAwKSB7CiAJCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9IERFVl9TVEFURV9XNFNFTlNFOwogCQl9CkBAIC04OTIsOSArODI5LDkgQEAKIAogCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCS8qIENoZWNrIGZvciB1bnNvbGljaXRlZCBpbnRlcnJ1cHQuICovCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAJCShTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKSB7Ci0JCWlmIChpcmItPnNjc3cuY2MgPT0gMSkKKwlpZiAoc2Nzd19zdGN0bCgmaXJiLT5zY3N3KSA9PQorCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgeworCQlpZiAoc2Nzd19jYygmaXJiLT5zY3N3KSA9PSAxKQogCQkJLyogQmFzaWMgc2Vuc2UgaGFzbid0IHN0YXJ0ZWQuIFRyeSBhZ2Fpbi4gKi8KIAkJCWNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKTsKIAkJZWxzZSB7CkBAIC05MTIsNyArODQ5LDggQEAKIAkgKiBvbmx5IGRlbGl2ZXIgdGhlIGhhbHQvY2xlYXIgaW50ZXJydXB0IHRvIHRoZSBkZXZpY2UgZHJpdmVyIGFzIGlmIGl0CiAJICogaGFkIGtpbGxlZCB0aGUgb3JpZ2luYWwgcmVxdWVzdC4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmZjdGwgJiAoU0NTV19GQ1RMX0NMRUFSX0ZVTkMgfCBTQ1NXX0ZDVExfSEFMVF9GVU5DKSkgeworCWlmIChzY3N3X2ZjdGwoJmlyYi0+c2NzdykgJgorCSAgICAoU0NTV19GQ1RMX0NMRUFSX0ZVTkMgfCBTQ1NXX0ZDVExfSEFMVF9GVU5DKSkgewogCQkvKiBSZXRyeSBCYXNpYyBTZW5zZSBpZiByZXF1ZXN0ZWQuICovCiAJCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAwOwpAQCAtOTg2LDEyICs5MjQsMTAgQEAKIAkJCSAgICAgIEVSUl9QVFIoLUVJTykpOwogfQogCi12b2lkIGRldmljZV9raWxsX2lvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit2b2lkIGNjd19kZXZpY2Vfa2lsbF9pbyhzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwogCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCXJldCA9IGNjd19kZXZpY2VfY2FuY2VsX2hhbHRfY2xlYXIoY2Rldik7CiAJaWYgKHJldCA9PSAtRUJVU1kpIHsKIAkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAzKkhaKTsKQEAgLTEwMjEsOSArOTU3LDkgQEAKIAljYXNlIERFVl9FVkVOVF9JTlRFUlJVUFQ6CiAJCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCQkvKiBDaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0LiAqLwotCQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCA9PQorCQlpZiAoKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgPT0KIAkJICAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgJiYKLQkJICAgICghaXJiLT5zY3N3LmNjKSkKKwkJICAgICghc2Nzd19jYygmaXJiLT5zY3N3KSkpCiAJCQkvKiBGSVhNRTogd2Ugc2hvdWxkIHJlc3RhcnQgc3RsY2sgaGVyZSwgYnV0IHRoaXMKIAkJCSAqIGlzIGV4dHJlbWVseSB1bmxpa2VseSAuLi4gKi8KIAkJCWdvdG8gb3V0X3dha2V1cDsKQEAgLTEwNTUsMTcgKzk5MSwxNCBAQAogCWNjd19kZXZpY2Vfc2Vuc2VfaWRfc3RhcnQoY2Rldik7CiB9CiAKLXZvaWQKLWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3ZvaWQgY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCiB7Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKIAotCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKLQlpZiAoIWNkZXYpCi0JCXJldHVybjsKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRCkKIAkJcmV0dXJuOwogCisJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAkvKiBVcGRhdGUgc29tZSB2YWx1ZXMuICovCiAJaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKIAkJcmV0dXJuOwpAQCAtMTA4MSw3ICsxMDE0LDYgQEAKIAlzY2gtPnNjaGliLnBtY3cuZW5hID0gMDsKIAlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCiAJCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7Ci0Jc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAodTMyKShhZGRyX3Qpc2NoOwogCS8qIFdlIHNob3VsZCBhbHNvIHVkYXRlIHNzZCBpbmZvLCBidXQgdGhpcyBoYXMgdG8gd2FpdC4gKi8KIAkvKiBDaGVjayBpZiB0aGlzIGlzIGFub3RoZXIgZGV2aWNlIHdoaWNoIGFwcGVhcmVkIG9uIHRoZSBzYW1lIHNjaC4gKi8KIAlpZiAoc2NoLT5zY2hpYi5wbWN3LmRldiAhPSBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8pIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2lkLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCmluZGV4IGNiYTcwMjA1Li4xYmRhYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2lkLmMKQEAgLTE5Niw3ICsxOTYsNyBAQAogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7CiAKIAkvKiBDaGVjayB0aGUgZXJyb3IgY2FzZXMuICovCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2Vuc2UgSUQgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTIzNCwxMCArMjM0LDEwIEBACiAJCQkgICAgICBpcmItPmVjd1s2XSwgaXJiLT5lY3dbN10pOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAzKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgPT0gMykgewogCQl1OCBscG07CiAKLQkJbHBtID0gdG9faW9fcHJpdmF0ZShzY2gpLT5vcmIubHBtOworCQlscG0gPSB0b19pb19wcml2YXRlKHNjaCktPm9yYi5jbWQubHBtOwogCQlpZiAoKGxwbSAmIHNjaC0+c2NoaWIucG1jdy5waW0gJiBzY2gtPnNjaGliLnBtY3cucGFtKSAhPSAwKQogCQkJQ0lPX01TR19FVkVOVCg0LCAiU2Vuc2VJRCA6IHBhdGggJTAyWCBmb3IgZGV2aWNlICUwNHggIgogCQkJCSAgICAgICJvbiBzdWJjaGFubmVsIDAuJXguJTA0eCBpcyAiCkBAIC0yNDgsOSArMjQ4LDkgQEAKIAl9CiAKIAkvKiBEaWQgd2UgZ2V0IGEgcHJvcGVyIGFuc3dlciA/ICovCi0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAwICYmIGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSAhPSAweEZGRkYgJiYKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAwICYmIGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSAhPSAweEZGRkYgJiYKIAkgICAgY2Rldi0+cHJpdmF0ZS0+c2Vuc2VpZC5yZXNlcnZlZCA9PSAweEZGKSB7Ci0JCWlmIChpcmItPnNjc3cuY291bnQgPCBzaXplb2Yoc3RydWN0IHNlbnNlaWQpIC0gOCkKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY291bnQgPCBzaXplb2Yoc3RydWN0IHNlbnNlaWQpIC0gOCkKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmVzaWQgPSAxOwogCQlyZXR1cm4gMDsgLyogU3VjY2VzcyAqLwogCX0KQEAgLTI2MCw3ICsyNjAsNyBAQAogCQkgICAgICAic3ViY2hhbm5lbCAwLiV4LiUwNHggcmV0dXJucyBzdGF0dXMgJTAyWCUwMlhcbiIsCiAJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLAogCQkgICAgICBzY2gtPnNjaGlkLnNjaF9ubywKLQkJICAgICAgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY3N0YXQpOworCQkgICAgICBpcmItPnNjc3cuY21kLmRzdGF0LCBpcmItPnNjc3cuY21kLmNzdGF0KTsKIAlyZXR1cm4gLUVBR0FJTjsKIH0KIApAQCAtMjc3LDkgKzI3Nyw5IEBACiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAkvKiBSZXRyeSBzZW5zZSBpZCwgaWYgbmVlZGVkLiAqLwotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewotCQlpZiAoKGlyYi0+c2Nzdy5jYyA9PSAxKSB8fCAhaXJiLT5zY3N3LmFjdGwpIHsKKwkJaWYgKChpcmItPnNjc3cuY21kLmNjID09IDEpIHx8ICFpcmItPnNjc3cuY21kLmFjdGwpIHsKIAkJCXJldCA9IF9fY2N3X2RldmljZV9zZW5zZV9pZF9zdGFydChjZGV2KTsKIAkJCWlmIChyZXQgJiYgcmV0ICE9IC1FQlVTWSkKIAkJCQljY3dfZGV2aWNlX3NlbnNlX2lkX2RvbmUoY2RldiwgcmV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKaW5kZXggZjMwOGFkNS4uZWUxYTI4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxhc20vY2N3ZGV2Lmg+CiAjaW5jbHVkZSA8YXNtL2lkYWxzLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgogCiAjaW5jbHVkZSAiY2lvLmgiCiAjaW5jbHVkZSAiY2lvX2RlYnVnLmgiCkBAIC0xNzksOCArMTgwLDggQEAKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FIHx8Ci0JICAgICgoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKLQkgICAgICEoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkgfHwKKwkgICAgKChzY2gtPnNjaGliLnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKKwkgICAgICEoc2NoLT5zY2hpYi5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykpIHx8CiAJICAgIGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvdmVyaWZ5KQogCQlyZXR1cm4gLUVCVVNZOwogCXJldCA9IGNpb19zZXRfb3B0aW9ucyAoc2NoLCBmbGFncyk7CkBAIC0zNzksNyArMzgwLDcgQEAKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX05PVF9PUEVSKQogCQlyZXR1cm4gLUVOT0RFVjsKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSB8fAotCSAgICAhKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCisJICAgICEoc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCiAJCXJldHVybiAtRUlOVkFMOwogCXJldHVybiBjaW9fcmVzdW1lKHNjaCk7CiB9CkBAIC00MDQsNyArNDA1LDcgQEAKIAkgKiAgLSBmYXN0IG5vdGlmaWNhdGlvbiB3YXMgcmVxdWVzdGVkIChwcmltYXJ5IHN0YXR1cykKIAkgKiAgLSB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzCiAJICovCi0Jc3RjdGwgPSBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5zdGN0bDsKKwlzdGN0bCA9IHNjc3dfc3RjdGwoJmNkZXYtPnByaXZhdGUtPmlyYi5zY3N3KTsKIAllbmRpbmdfc3RhdHVzID0gKHN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAogCQkoc3RjdGwgPT0gKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHx8CiAJCShzdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKQEAgLTUyOCwxNCArNTI5LDE1IEBACiAJCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsgLy9GSVhNRTogcmV0dXJuIGNvZGU/CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9Ci0JY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKKwljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCB8PSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCXdhaXRfZXZlbnQoY2Rldi0+cHJpdmF0ZS0+d2FpdF9xLCBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5hY3RsID09IDApOworCXdhaXRfZXZlbnQoY2Rldi0+cHJpdmF0ZS0+d2FpdF9xLAorCQkgICBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCA9PSAwKTsKIAlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKIAljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7IC8vRklYTUU6IHJldHVybiBjb2RlPwotCWlmICgoY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZHN0YXQgIT0KKwlpZiAoKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5kc3RhdCAhPQogCSAgICAgKERFVl9TVEFUX0NITl9FTkR8REVWX1NUQVRfREVWX0VORCkpIHx8Ci0JICAgIChjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jc3RhdCAhPSAwKSkKKwkgICAgKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5jc3RhdCAhPSAwKSkKIAkJcmV0ID0gLUVJTzsKIAkvKiBDbGVhciBpcmIuICovCiAJbWVtc2V0KCZjZGV2LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CkBAIC01NjgsNiArNTcwLDEyMiBAQAogfQogRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX2dldF9pZCk7CiAKKy8qKgorICogY2N3X2RldmljZV90bV9zdGFydF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGtleTogc3RvcmFnZSBrZXkgdG8gdXNlIGZvciBzdG9yYWdlIGFjY2VzcworICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIGNjdyBkZXZpY2UuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtLCB1OCBrZXkpCit7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKKwlpbnQgcmM7CisKKwlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOworCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKQorCQlyZXR1cm4gLUVJTzsKKwkvKiBBZGp1c3QgcmVxdWVzdGVkIHBhdGggbWFzayB0byBleGNsdWRlZCB2YXJpZWQgb2ZmIHBhdGhzLiAqLworCWlmIChscG0pIHsKKwkJbHBtICY9IHNjaC0+b3BtOworCQlpZiAobHBtID09IDApCisJCQlyZXR1cm4gLUVBQ0NFUzsKKwl9CisJcmMgPSBjaW9fdG1fc3RhcnRfa2V5KHNjaCwgdGN3LCBscG0sIGtleSk7CisJaWYgKHJjID09IDApCisJCWNkZXYtPnByaXZhdGUtPmludHBhcm0gPSBpbnRwYXJtOworCXJldHVybiByYzsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF9rZXkpOworCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGtleTogc3RvcmFnZSBrZXkgdG8gdXNlIGZvciBzdG9yYWdlIGFjY2VzcworICogQGV4cGlyZXM6IHRpbWUgc3BhbiBpbiBqaWZmaWVzIGFmdGVyIHdoaWNoIHRvIGFib3J0IHJlcXVlc3QKKyAqCisgKiBTdGFydCB0aGUgdGN3IG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbiBzdWNjZXNzLCBub24temVybworICogb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJCSAgICB1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSwgdTgga2V5LAorCQkJCSAgICBpbnQgZXhwaXJlcykKK3sKKwlpbnQgcmV0OworCisJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCBleHBpcmVzKTsKKwlyZXQgPSBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShjZGV2LCB0Y3csIGludHBhcm0sIGxwbSwga2V5KTsKKwlpZiAocmV0ICE9IDApCisJCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0X2tleSk7CisKKy8qKgorICogY2N3X2RldmljZV90bV9zdGFydCAtIHBlcmZvcm0gc3RhcnQgZnVuY3Rpb24KKyAqIEBjZGV2OiBjY3cgZGV2aWNlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBpbnRwYXJtOiB1c2VyIGRlZmluZWQgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgaW50ZXJydXB0IGhhbmRsZXIKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKgorICogU3RhcnQgdGhlIHRjdyBvbiB0aGUgZ2l2ZW4gY2N3IGRldmljZS4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IGNjd19kZXZpY2VfdG1fc3RhcnQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCXVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtKQoreworCXJldHVybiBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShjZGV2LCB0Y3csIGludHBhcm0sIGxwbSwKKwkJCQkgICAgICAgUEFHRV9ERUZBVUxUX0tFWSk7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1fc3RhcnQpOworCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dCAtIHBlcmZvcm0gc3RhcnQgZnVuY3Rpb24KKyAqIEBjZGV2OiBjY3cgZGV2aWNlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBpbnRwYXJtOiB1c2VyIGRlZmluZWQgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgaW50ZXJydXB0IGhhbmRsZXIKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKiBAZXhwaXJlczogdGltZSBzcGFuIGluIGppZmZpZXMgYWZ0ZXIgd2hpY2ggdG8gYWJvcnQgcmVxdWVzdAorICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIGNjdyBkZXZpY2UuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X3RpbWVvdXQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSwgaW50IGV4cGlyZXMpCit7CisJcmV0dXJuIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoY2RldiwgdGN3LCBpbnRwYXJtLCBscG0sCisJCQkJCSAgICAgICBQQUdFX0RFRkFVTFRfS0VZLCBleHBpcmVzKTsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KTsKKworLyoqCisgKiBjY3dfZGV2aWNlX3RtX2ludHJnIC0gcGVyZm9ybSBpbnRlcnJvZ2F0ZSBmdW5jdGlvbgorICogQGNkZXY6IGNjdyBkZXZpY2Ugb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgaW50ZXJyb2dhdGUgZnVuY3Rpb24KKyAqCisgKiBQZXJmb3JtIGFuIGludGVycm9nYXRlIGZ1bmN0aW9uIG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbgorICogc3VjY2Vzcywgbm9uLXplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9pbnRyZyhzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKKworCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKQorCQlyZXR1cm4gLUVJTzsKKwlpZiAoIXNjc3dfaXNfdG0oJnNjaC0+c2NoaWIuc2NzdykgfHwKKwkgICAgIShzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgfCBTQ1NXX0FDVExfU1RBUlRfUEVORCkpCisJCXJldHVybiAtRUlOVkFMOworCXJldHVybiBjaW9fdG1faW50cmcoc2NoKTsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9pbnRyZyk7CisKIC8vIEZJWE1FOiB0aGVzZSBoYXZlIHRvIGdvOgogCiBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYwppbmRleCA1Y2Y3YmUwLi44NmJjOTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9wZ2lkLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCkBAIC0yOCwxMyArMjgsMTMgQEAKICAqIEhlbHBlciBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnRlcnJ1cHQgY29udGV4dCB0byBkZWNpZGUgd2hldGhlciBhbgogICogb3BlcmF0aW9uIHNob3VsZCBiZSB0cmllZCBhZ2Fpbi4KICAqLwotc3RhdGljIGludCBfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KHN0cnVjdCBzY3N3ICpzY3N3KQorc3RhdGljIGludCBfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KHVuaW9uIHNjc3cgKnNjc3cpCiB7CiAJLyogQ0MgaXMgb25seSB2YWxpZCBpZiBzdGFydCBmdW5jdGlvbiBiaXQgaXMgc2V0LiAqLwotCWlmICgoc2Nzdy0+ZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJiBzY3N3LT5jYyA9PSAxKQorCWlmICgoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYgc2Nzdy0+Y21kLmNjID09IDEpCiAJCXJldHVybiAxOwogCS8qIE5vIG1vcmUgYWN0aXZpdHkuIEZvciBzZW5zZSBhbmQgc2V0IFBHSUQgd2Ugc3R1YmJvcm5seSB0cnkgYWdhaW4uICovCi0JaWYgKCFzY3N3LT5hY3RsKQorCWlmICghc2Nzdy0+Y21kLmFjdGwpCiAJCXJldHVybiAxOwogCXJldHVybiAwOwogfQpAQCAtMTI1LDcgKzEyNSw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2Vuc2UgUEdJRCBpZiByZXF1ZXN0ZWQuICovCiAJCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAwOwpAQCAtMTU1LDEwICsxNTUsMTAgQEAKIAkJCSAgICAgIGlyYi0+ZWN3WzZdLCBpcmItPmVjd1s3XSk7CiAJCXJldHVybiAtRUFHQUlOOwogCX0KLQlpZiAoaXJiLT5zY3N3LmNjID09IDMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAzKSB7CiAJCXU4IGxwbTsKIAotCQlscG0gPSB0b19pb19wcml2YXRlKHNjaCktPm9yYi5scG07CisJCWxwbSA9IHRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiLmNtZC5scG07CiAJCUNJT19NU0dfRVZFTlQoMywgIlNOSUQgLSBEZXZpY2UgJTA0eCBvbiBTdWJjaGFubmVsIDAuJXguJTA0eCwiCiAJCQkgICAgICAiIGxwbSAlMDJYLCBiZWNhbWUgJ25vdCBvcGVyYXRpb25hbCdcbiIsCiAJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIHNjaC0+c2NoaWQuc3NpZCwKQEAgLTE4OCw3ICsxODgsNyBAQAogCiAJaXJiID0gKHN0cnVjdCBpcmIgKikgX19MQ19JUkI7CiAKLQlpZiAoaXJiLT5zY3N3LnN0Y3RsID09CisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpIHsKIAkJaWYgKF9fY2N3X2RldmljZV9zaG91bGRfcmV0cnkoJmlyYi0+c2NzdykpIHsKIAkJCXJldCA9IF9fY2N3X2RldmljZV9zZW5zZV9wZ2lkX3N0YXJ0KGNkZXYpOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2V0IFBHSUQgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTM1NSw3ICszNTUsNyBAQAogCQkJICAgICAgaXJiLT5lY3dbNl0sIGlyYi0+ZWN3WzddKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQotCWlmIChpcmItPnNjc3cuY2MgPT0gMykgeworCWlmIChpcmItPnNjc3cuY21kLmNjID09IDMpIHsKIAkJQ0lPX01TR19FVkVOVCgzLCAiU1BJRCAtIERldmljZSAlMDR4IG9uIFN1YmNoYW5uZWwgMC4leC4lMDR4LCIKIAkJCSAgICAgICIgbHBtICUwMlgsIGJlY2FtZSAnbm90IG9wZXJhdGlvbmFsJ1xuIiwKIAkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLApAQCAtMzc2LDcgKzM3Niw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgTk9QIGlmIHJlcXVlc3RlZC4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSA9IDA7CkBAIC0zODQsNyArMzg0LDcgQEAKIAkJfQogCQlyZXR1cm4gLUVUSU1FOwogCX0KLQlpZiAoaXJiLT5zY3N3LmNjID09IDMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAzKSB7CiAJCUNJT19NU0dfRVZFTlQoMywgIk5PUCAtIERldmljZSAlMDR4IG9uIFN1YmNoYW5uZWwgMC4leC4lMDR4LCIKIAkJCSAgICAgICIgbHBtICUwMlgsIGJlY2FtZSAnbm90IG9wZXJhdGlvbmFsJ1xuIiwKIAkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLApAQCAtNDM4LDcgKzQzOCw3IEBACiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewogCQlpZiAoX19jY3dfZGV2aWNlX3Nob3VsZF9yZXRyeSgmaXJiLT5zY3N3KSkKIAkJCV9fY2N3X2RldmljZV92ZXJpZnlfc3RhcnQoY2Rldik7CkBAIC01NDQsNyArNTQ0LDcgQEAKIAogCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCA9PQorCWlmIChpcmItPnNjc3cuY21kLnN0Y3RsID09CiAJICAgIChTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKSB7CiAJCWlmIChfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KCZpcmItPnNjc3cpKQogCQkJX19jY3dfZGV2aWNlX2Rpc2JhbmRfc3RhcnQoY2Rldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCmluZGV4IDRhMzg5OTMuLjFiMDNjNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCkBAIC0yOSw5ICsyOSwxMSBAQAogc3RhdGljIHZvaWQKIGNjd19kZXZpY2VfbXNnX2NvbnRyb2xfY2hlY2soc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoIShpcmItPnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0NITl9EQVRBX0NISyB8Ci0JCQkJIFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfAotCQkJCSBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykpKQorCWNoYXIgZGJmX3RleHRbMTVdOworCisJaWYgKCFzY3N3X2lzX3ZhbGlkX2NzdGF0KCZpcmItPnNjc3cpIHx8CisJICAgICEoc2Nzd19jc3RhdCgmaXJiLT5zY3N3KSAmIChTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwKKwkgICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLIHwgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEspKSkKIAkJcmV0dXJuOwogCUNJT19NU0dfRVZFTlQoMCwgIkNoYW5uZWwtQ2hlY2sgb3IgSW50ZXJmYWNlLUNvbnRyb2wtQ2hlY2sgIgogCQkgICAgICAicmVjZWl2ZWQiCkBAIC0zOSwxNSArNDEsMTAgQEAKIAkJICAgICAgIjogJTAyWCBzY2hfc3RhdCA6ICUwMlhcbiIsCiAJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc3NpZCwKIAkJICAgICAgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vLAotCQkgICAgICBpcmItPnNjc3cuZHN0YXQsIGlyYi0+c2Nzdy5jc3RhdCk7Ci0KLQlpZiAoaXJiLT5zY3N3LmNjICE9IDMpIHsKLQkJY2hhciBkYmZfdGV4dFsxNV07Ci0KLQkJc3ByaW50ZihkYmZfdGV4dCwgImNoayV4IiwgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vKTsKLQkJQ0lPX1RSQUNFX0VWRU5UKDAsIGRiZl90ZXh0KTsKLQkJQ0lPX0hFWF9FVkVOVCgwLCBpcmIsIHNpemVvZiAoc3RydWN0IGlyYikpOwotCX0KKwkJICAgICAgc2Nzd19kc3RhdCgmaXJiLT5zY3N3KSwgc2Nzd19jc3RhdCgmaXJiLT5zY3N3KSk7CisJc3ByaW50ZihkYmZfdGV4dCwgImNoayV4IiwgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vKTsKKwlDSU9fVFJBQ0VfRVZFTlQoMCwgZGJmX3RleHQpOworCUNJT19IRVhfRVZFTlQoMCwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOwogfQogCiAvKgpAQCAtODEsMTIgKzc4LDEyIEBACiAJICogYXJlIGNvbmRpdGlvbiB0aGF0IGhhdmUgdG8gYmUgbWV0IGZvciB0aGUgZXh0ZW5kZWQgY29udHJvbAogCSAqIGJpdCB0byBoYXZlIG1lYW5pbmcuIFNpY2suCiAJICovCi0JY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZWN0bCA9IDA7Ci0JaWYgKChpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykgJiYKLQkgICAgIShpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykpCi0JCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmVjdGwgPSBpcmItPnNjc3cuZWN0bDsKKwljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZWN0bCA9IDA7CisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpICYmCisJICAgICEoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSkKKwkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmVjdGwgPSBpcmItPnNjc3cuY21kLmVjdGw7CiAJLyogQ2hlY2sgaWYgZXh0ZW5kZWQgY29udHJvbCB3b3JkIGlzIHZhbGlkLiAqLwotCWlmICghY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZWN0bCkKKwlpZiAoIWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5lY3RsKQogCQlyZXR1cm47CiAJLyogQ29weSBjb25jdXJyZW50IHNlbnNlIC8gbW9kZWwgZGVwZW5kZW50IGluZm9ybWF0aW9uLiAqLwogCW1lbWNweSAoJmNkZXYtPnByaXZhdGUtPmlyYi5lY3csIGlyYi0+ZWN3LCBzaXplb2YgKGlyYi0+ZWN3KSk7CkBAIC05OCwxMSArOTUsMTIgQEAKIHN0YXRpYyBpbnQKIGNjd19kZXZpY2VfYWNjdW11bGF0ZV9lc3dfdmFsaWQoc3RydWN0IGlyYiAqaXJiKQogewotCWlmICghaXJiLT5zY3N3LmVzd2YgJiYgaXJiLT5zY3N3LnN0Y3RsID09IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpCisJaWYgKCFpcmItPnNjc3cuY21kLmVzd2YgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkpCiAJCXJldHVybiAwOwotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0gCi0JICAgIAkJKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCi0JICAgICEoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkKKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICEoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCiAJCXJldHVybiAwOwogCXJldHVybiAxOwogfQpAQCAtMTI1LDcgKzEyMyw3IEBACiAJY2Rldl9pcmItPmVzdy5lc3cxLmxwdW0gPSBpcmItPmVzdy5lc3cxLmxwdW07CiAKIAkvKiBDb3B5IHN1YmNoYW5uZWwgbG9nb3V0IGluZm9ybWF0aW9uIGlmIGVzdyBpcyBvZiBmb3JtYXQgMC4gKi8KLQlpZiAoaXJiLT5zY3N3LmVzd2YpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5lc3dmKSB7CiAJCWNkZXZfc3VibG9nID0gJmNkZXZfaXJiLT5lc3cuZXN3MC5zdWJsb2c7CiAJCXN1YmxvZyA9ICZpcmItPmVzdy5lc3cwLnN1YmxvZzsKIAkJLyogQ29weSBleHRlbmRlZCBzdGF0dXMgZmxhZ3MuICovCkBAIC0xMzQsNyArMTMyLDcgQEAKIAkJICogQ29weSBmaWVsZHMgdGhhdCBoYXZlIGEgbWVhbmluZyBmb3IgY2hhbm5lbCBkYXRhIGNoZWNrCiAJCSAqIGNoYW5uZWwgY29udHJvbCBjaGVjayBhbmQgaW50ZXJmYWNlIGNvbnRyb2wgY2hlY2suCiAJCSAqLwotCQlpZiAoaXJiLT5zY3N3LmNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fREFUQV9DSEsgfAorCQlpZiAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwKIAkJCQkgICAgICAgU0NITl9TVEFUX0NITl9DVFJMX0NISyB8CiAJCQkJICAgICAgIFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLKSkgewogCQkJLyogQ29weSBhbmNpbGxhcnkgcmVwb3J0IGJpdC4gKi8KQEAgLTE1NSw3ICsxNTMsNyBAQAogCQkvKiBDb3B5IGkvby1lcnJvciBhbGVydC4gKi8KIAkJY2Rldl9zdWJsb2ctPmlvZXJyID0gc3VibG9nLT5pb2VycjsKIAkJLyogQ29weSBjaGFubmVsIHBhdGggdGltZW91dCBiaXQuICovCi0JCWlmIChpcmItPnNjc3cuY3N0YXQgJiBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykKIAkJCWNkZXZfaXJiLT5lc3cuZXN3MC5lcncuY3B0ID0gaXJiLT5lc3cuZXN3MC5lcncuY3B0OwogCQkvKiBDb3B5IGZhaWxpbmcgc3RvcmFnZSBhZGRyZXNzIHZhbGlkaXR5IGZsYWcuICovCiAJCWNkZXZfaXJiLT5lc3cuZXN3MC5lcncuZnNhdmYgPSBpcmItPmVzdy5lc3cwLmVydy5mc2F2ZjsKQEAgLTIwMCwyNCArMTk4LDI0IEBACiAJICogSWYgbm90LCB0aGUgcmVtYWluaW5nIGJpdCBoYXZlIG5vIG1lYW5pbmcgYW5kIHdlIG11c3QgaWdub3JlIHRoZW0uCiAJICogVGhlIGVzdyBpcyBub3QgbWVhbmluZ2Z1bCBhcyB3ZWxsLi4uCiAJICovCi0JaWYgKCEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpCisJaWYgKCEoc2Nzd19zdGN0bCgmaXJiLT5zY3N3KSAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQogCQlyZXR1cm47CiAKIAkvKiBDaGVjayBmb3IgY2hhbm5lbCBjaGVja3MgYW5kIGludGVyZmFjZSBjb250cm9sIGNoZWNrcy4gKi8KIAljY3dfZGV2aWNlX21zZ19jb250cm9sX2NoZWNrKGNkZXYsIGlyYik7CiAKIAkvKiBDaGVjayBmb3IgcGF0aCBub3Qgb3BlcmF0aW9uYWwuICovCi0JaWYgKGlyYi0+c2Nzdy5wbm8gJiYgaXJiLT5zY3N3LmZjdGwgIT0gMCAmJgotCSAgICAoIShpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgfHwKLQkgICAgIChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSkKKwlpZiAoc2Nzd19pc192YWxpZF9wbm8oJmlyYi0+c2NzdykgJiYgc2Nzd19wbm8oJmlyYi0+c2NzdykpCiAJCWNjd19kZXZpY2VfcGF0aF9ub3RvcGVyKGNkZXYpOwotCisJLyogTm8gaXJiIGFjY3VtdWxhdGlvbiBmb3IgdHJhbnNwb3J0IG1vZGUgaXJicy4gKi8KKwlpZiAoc2Nzd19pc190bSgmaXJiLT5zY3N3KSkgeworCQltZW1jcHkoJmNkZXYtPnByaXZhdGUtPmlyYiwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOworCQlyZXR1cm47CisJfQogCS8qCiAJICogRG9uJ3QgYWNjdW11bGF0ZSB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzLgogCSAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgJiYKLQkgICAgKCFpcmItPnNjc3cuY2MpKQorCWlmICghc2Nzd19pc19zb2xpY2l0ZWQoJmlyYi0+c2NzdykpCiAJCXJldHVybjsKIAogCWNkZXZfaXJiID0gJmNkZXYtPnByaXZhdGUtPmlyYjsKQEAgLTIyNyw2MiArMjI1LDYzIEBACiAJICogc3RhdHVzIGF0IHRoZSBzdWJjaGFubmVsIGhhcyBiZWVuIGNsZWFyZWQgYW5kIHdlIG11c3Qgbm90IHBhc3MKIAkgKiBpbnRlcm1lZGlhdGUgYWNjdW11bGF0ZWQgc3RhdHVzIHRvIHRoZSBkZXZpY2UgZHJpdmVyLgogCSAqLwotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKQorCWlmIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykKIAkJbWVtc2V0KCZjZGV2LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CiAKIAkvKiBDb3B5IGJpdHMgd2hpY2ggYXJlIHZhbGlkIG9ubHkgZm9yIHRoZSBzdGFydCBmdW5jdGlvbi4gKi8KLQlpZiAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgeworCWlmIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgewogCQkvKiBDb3B5IGtleS4gKi8KLQkJY2Rldl9pcmItPnNjc3cua2V5ID0gaXJiLT5zY3N3LmtleTsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmtleSA9IGlyYi0+c2Nzdy5jbWQua2V5OwogCQkvKiBDb3B5IHN1c3BlbmQgY29udHJvbCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LnNjdGwgPSBpcmItPnNjc3cuc2N0bDsKKwkJY2Rldl9pcmItPnNjc3cuY21kLnNjdGwgPSBpcmItPnNjc3cuY21kLnNjdGw7CiAJCS8qIEFjY3VtdWxhdGUgZGVmZXJyZWQgY29uZGl0aW9uIGNvZGUuICovCi0JCWNkZXZfaXJiLT5zY3N3LmNjIHw9IGlyYi0+c2Nzdy5jYzsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmNjIHw9IGlyYi0+c2Nzdy5jbWQuY2M7CiAJCS8qIENvcHkgY2N3IGZvcm1hdCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LmZtdCA9IGlyYi0+c2Nzdy5mbXQ7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5mbXQgPSBpcmItPnNjc3cuY21kLmZtdDsKIAkJLyogQ29weSBwcmVmZXRjaCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LnBmY2ggPSBpcmItPnNjc3cucGZjaDsKKwkJY2Rldl9pcmItPnNjc3cuY21kLnBmY2ggPSBpcmItPnNjc3cuY21kLnBmY2g7CiAJCS8qIENvcHkgaW5pdGlhbC1zdGF0dXMtaW50ZXJydXB0aW9uLWNvbnRyb2wuICovCi0JCWNkZXZfaXJiLT5zY3N3LmlzaWMgPSBpcmItPnNjc3cuaXNpYzsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmlzaWMgPSBpcmItPnNjc3cuY21kLmlzaWM7CiAJCS8qIENvcHkgYWRkcmVzcyBsaW1pdCBjaGVja2luZyBjb250cm9sLiAqLwotCQljZGV2X2lyYi0+c2Nzdy5hbGNjID0gaXJiLT5zY3N3LmFsY2M7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5hbGNjID0gaXJiLT5zY3N3LmNtZC5hbGNjOwogCQkvKiBDb3B5IHN1cHByZXNzIHN1c3BlbmQgYml0LiAqLwotCQljZGV2X2lyYi0+c2Nzdy5zc2kgPSBpcmItPnNjc3cuc3NpOworCQljZGV2X2lyYi0+c2Nzdy5jbWQuc3NpID0gaXJiLT5zY3N3LmNtZC5zc2k7CiAJfQogCiAJLyogVGFrZSBjYXJlIG9mIHRoZSBleHRlbmRlZCBjb250cm9sIGJpdCBhbmQgZXh0ZW5kZWQgY29udHJvbCB3b3JkLiAqLwogCWNjd19kZXZpY2VfYWNjdW11bGF0ZV9lY3coY2RldiwgaXJiKTsKIAkgICAgCiAJLyogQWNjdW11bGF0ZSBmdW5jdGlvbiBjb250cm9sLiAqLwotCWNkZXZfaXJiLT5zY3N3LmZjdGwgfD0gaXJiLT5zY3N3LmZjdGw7CisJY2Rldl9pcmItPnNjc3cuY21kLmZjdGwgfD0gaXJiLT5zY3N3LmNtZC5mY3RsOwogCS8qIENvcHkgYWN0aXZpdHkgY29udHJvbC4gKi8KLQljZGV2X2lyYi0+c2Nzdy5hY3RsPSBpcmItPnNjc3cuYWN0bDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuYWN0bCA9IGlyYi0+c2Nzdy5jbWQuYWN0bDsKIAkvKiBBY2N1bXVsYXRlIHN0YXR1cyBjb250cm9sLiAqLwotCWNkZXZfaXJiLT5zY3N3LnN0Y3RsIHw9IGlyYi0+c2Nzdy5zdGN0bDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuc3RjdGwgfD0gaXJiLT5zY3N3LmNtZC5zdGN0bDsKIAkvKgogCSAqIENvcHkgY2N3IGFkZHJlc3MgaWYgaXQgaXMgdmFsaWQuIFRoaXMgaXMgYSBiaXQgc2ltcGxpZmllZAogCSAqIGJ1dCBzaG91bGQgYmUgY2xvc2UgZW5vdWdoIGZvciBhbGwgcHJhY3RpY2FsIHB1cnBvc2VzLgogCSAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgfHwKLQkgICAgKChpcmItPnNjc3cuc3RjdGwgPT0gCisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgfHwKKwkgICAgKChpcmItPnNjc3cuY21kLnN0Y3RsID09CiAJICAgICAgKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSAmJgotCSAgICAgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX0RFVkFDVCkgJiYKLQkgICAgIChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TQ0hBQ1QpKSB8fAotCSAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkKLQkJY2Rldl9pcmItPnNjc3cuY3BhID0gaXJiLT5zY3N3LmNwYTsKKwkgICAgIChpcmItPnNjc3cuY21kLmFjdGwgJiBTQ1NXX0FDVExfREVWQUNUKSAmJgorCSAgICAgKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TQ0hBQ1QpKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCisJCWNkZXZfaXJiLT5zY3N3LmNtZC5jcGEgPSBpcmItPnNjc3cuY21kLmNwYTsKIAkvKiBBY2N1bXVsYXRlIGRldmljZSBzdGF0dXMsIGJ1dCBub3QgdGhlIGRldmljZSBidXN5IGZsYWcuICovCi0JY2Rldl9pcmItPnNjc3cuZHN0YXQgJj0gfkRFVl9TVEFUX0JVU1k7CisJY2Rldl9pcmItPnNjc3cuY21kLmRzdGF0ICY9IH5ERVZfU1RBVF9CVVNZOwogCS8qIGRzdGF0IGlzIG5vdCBhbHdheXMgdmFsaWQuICovCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCAmCisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgJgogCSAgICAoU0NTV19TVENUTF9QUklNX1NUQVRVUyB8IFNDU1dfU1RDVExfU0VDX1NUQVRVUwogCSAgICAgfCBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUyB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkKLQkJY2Rldl9pcmItPnNjc3cuZHN0YXQgfD0gaXJiLT5zY3N3LmRzdGF0OworCQljZGV2X2lyYi0+c2Nzdy5jbWQuZHN0YXQgfD0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAkvKiBBY2N1bXVsYXRlIHN1YmNoYW5uZWwgc3RhdHVzLiAqLwotCWNkZXZfaXJiLT5zY3N3LmNzdGF0IHw9IGlyYi0+c2Nzdy5jc3RhdDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuY3N0YXQgfD0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKIAkvKiBDb3B5IHJlc2lkdWFsIGNvdW50IGlmIGl0IGlzIHZhbGlkLiAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKLQkgICAgKGlyYi0+c2Nzdy5jc3RhdCAmIH4oU0NITl9TVEFUX1BDSSB8IFNDSE5fU1RBVF9JTkNPUlJfTEVOKSkgPT0gMCkKLQkJY2Rldl9pcmItPnNjc3cuY291bnQgPSBpcmItPnNjc3cuY291bnQ7CisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiB+KFNDSE5fU1RBVF9QQ0kgfCBTQ0hOX1NUQVRfSU5DT1JSX0xFTikpCisJICAgICA9PSAwKQorCQljZGV2X2lyYi0+c2Nzdy5jbWQuY291bnQgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCiAJLyogVGFrZSBjYXJlIG9mIGJpdHMgaW4gdGhlIGV4dGVuZGVkIHN0YXR1cyB3b3JkLiAqLwogCWNjd19kZXZpY2VfYWNjdW11bGF0ZV9lc3coY2RldiwgaXJiKTsKQEAgLTI5OSw3ICsyOTgsNyBAQAogCSAqCSBzZW5zZSBmYWNpbGl0eSBhdmFpbGFibGUvc3VwcG9ydGVkIHdoZW4gZW5hYmxpbmcgdGhlCiAJICoJIGNvbmN1cnJlbnQgc2Vuc2UgZmFjaWxpdHkuCiAJICovCi0JaWYgKChjZGV2X2lyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJaWYgKChjZGV2X2lyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgogCSAgICAhKGNkZXZfaXJiLT5lc3cuZXN3MC5lcncuY29ucykpCiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAxOwogfQpAQCAtMzE3LDcgKzMxNiw3IEBACiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAogCS8qIEEgc2Vuc2UgaXMgcmVxdWlyZWQsIGNhbiB3ZSBkbyBpdCBub3cgPyAqLwotCWlmICgoaXJiLT5zY3N3LmFjdGwgICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgIT0gMCkKKwlpZiAoc2Nzd19hY3RsKCZpcmItPnNjc3cpICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkKIAkJLyoKIAkJICogd2UgcmVjZWl2ZWQgYW4gVW5pdCBDaGVjayBidXQgd2UgaGF2ZSBubyBmaW5hbAogCQkgKiAgc3RhdHVzIHlldCwgdGhlcmVmb3JlIHdlIG11c3QgZGVsYXkgdGhlIFNFTlNFCkBAIC0zNTUsMjAgKzM1NCwxOCBAQAogCSAqIElmIG5vdCwgdGhlIHJlbWFpbmluZyBiaXQgaGF2ZSBubyBtZWFuaW5nIGFuZCB3ZSBtdXN0IGlnbm9yZSB0aGVtLgogCSAqIFRoZSBlc3cgaXMgbm90IG1lYW5pbmdmdWwgYXMgd2VsbC4uLgogCSAqLwotCWlmICghKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQorCWlmICghKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkKIAkJcmV0dXJuOwogCiAJLyogQ2hlY2sgZm9yIGNoYW5uZWwgY2hlY2tzIGFuZCBpbnRlcmZhY2UgY29udHJvbCBjaGVja3MuICovCiAJY2N3X2RldmljZV9tc2dfY29udHJvbF9jaGVjayhjZGV2LCBpcmIpOwogCiAJLyogQ2hlY2sgZm9yIHBhdGggbm90IG9wZXJhdGlvbmFsLiAqLwotCWlmIChpcmItPnNjc3cucG5vICYmIGlyYi0+c2Nzdy5mY3RsICE9IDAgJiYKLQkgICAgKCEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8Ci0JICAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpCisJaWYgKHNjc3dfaXNfdmFsaWRfcG5vKCZpcmItPnNjc3cpICYmIHNjc3dfcG5vKCZpcmItPnNjc3cpKQogCQljY3dfZGV2aWNlX3BhdGhfbm90b3BlcihjZGV2KTsKIAotCWlmICghKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCi0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSkgeworCWlmICghKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpKSB7CiAJCWNkZXYtPnByaXZhdGUtPmlyYi5lc3cuZXN3MC5lcncuY29ucyA9IDE7CiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAwOwogCX0KQEAgLTM4NiwxMSArMzgzLDExIEBACiBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfYW5kX3NlbnNlKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJY2N3X2RldmljZV9hY2N1bXVsYXRlX2lyYihjZGV2LCBpcmIpOwotCWlmICgoaXJiLT5zY3N3LmFjdGwgICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgIT0gMCkKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuYWN0bCAgJiAoU0NTV19BQ1RMX0RFVkFDVCB8IFNDU1dfQUNUTF9TQ0hBQ1QpKSAhPSAwKQogCQlyZXR1cm4gLUVCVVNZOwogCS8qIENoZWNrIGZvciBiYXNpYyBzZW5zZS4gKi8KIAlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZG9zZW5zZSAmJgotCSAgICAhKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spKSB7CisJICAgICEoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spKSB7CiAJCWNkZXYtPnByaXZhdGUtPmlyYi5lc3cuZXN3MC5lcncuY29ucyA9IDE7CiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAwOwogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZmN4LmMgYi9kcml2ZXJzL3MzOTAvY2lvL2ZjeC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNjc3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2ZjeC5jCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgYXNzZW1ibGluZyBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KKyNpbmNsdWRlICJjaW8uaCIKKworLyoqCisgKiB0Y3dfZ2V0X2ludHJnIC0gcmV0dXJuIHBvaW50ZXIgdG8gYXNzb2NpYXRlZCBpbnRlcnJvZ2F0ZSB0Y3cKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIHRjdworICoKKyAqIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGludGVycm9nYXRlIHRjdyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCB0Y3cKKyAqIG9yICVOVUxMIGlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgaW50ZXJyb2dhdGUgdGN3LgorICovCitzdHJ1Y3QgdGN3ICp0Y3dfZ2V0X2ludHJnKHN0cnVjdCB0Y3cgKnRjdykKK3sKKwlyZXR1cm4gKHN0cnVjdCB0Y3cgKikgKChhZGRyX3QpIHRjdy0+aW50cmcpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfZ2V0X2ludHJnKTsKKworLyoqCisgKiB0Y3dfZ2V0X2RhdGEgLSByZXR1cm4gcG9pbnRlciB0byBpbnB1dC9vdXRwdXQgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqCisgKiBSZXR1cm4gdGhlIGlucHV0IG9yIG91dHB1dCBkYXRhIGFkZHJlc3Mgc3BlY2lmaWVkIGluIHRoZSB0Y3cgZGVwZW5kaW5nCisgKiBvbiB3aGV0aGVyIHRoZSByLWJpdCBvciB0aGUgdy1iaXQgaXMgc2V0LiBJZiBuZWl0aGVyIGJpdCBpcyBzZXQsIHJldHVybgorICogJU5VTEwuCisgKi8KK3ZvaWQgKnRjd19nZXRfZGF0YShzdHJ1Y3QgdGN3ICp0Y3cpCit7CisJaWYgKHRjdy0+cikKKwkJcmV0dXJuICh2b2lkICopICgoYWRkcl90KSB0Y3ctPmlucHV0KTsKKwlpZiAodGN3LT53KQorCQlyZXR1cm4gKHZvaWQgKikgKChhZGRyX3QpIHRjdy0+b3V0cHV0KTsKKwlyZXR1cm4gTlVMTDsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF9kYXRhKTsKKworLyoqCisgKiB0Y3dfZ2V0X3RjY2IgLSByZXR1cm4gcG9pbnRlciB0byB0Y2NiIGFzc29jaWF0ZWQgd2l0aCB0Y3cKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIHRjdworICoKKyAqIFJldHVybiBwb2ludGVyIHRvIHRoZSB0Y2NiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRjdy4KKyAqLworc3RydWN0IHRjY2IgKnRjd19nZXRfdGNjYihzdHJ1Y3QgdGN3ICp0Y3cpCit7CisJcmV0dXJuIChzdHJ1Y3QgdGNjYiAqKSAoKGFkZHJfdCkgdGN3LT50Y2NiKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF90Y2NiKTsKKworLyoqCisgKiB0Y3dfZ2V0X3RzYiAtIHJldHVybiBwb2ludGVyIHRvIHRzYiBhc3NvY2lhdGVkIHdpdGggdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqCisgKiBSZXR1cm4gcG9pbnRlciB0byB0aGUgdHNiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRjdy4KKyAqLworc3RydWN0IHRzYiAqdGN3X2dldF90c2Ioc3RydWN0IHRjdyAqdGN3KQoreworCXJldHVybiAoc3RydWN0IHRzYiAqKSAoKGFkZHJfdCkgdGN3LT50c2IpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfZ2V0X3RzYik7CisKKy8qKgorICogdGN3X2luaXQgLSBpbml0aWFsaXplIHRjdyBkYXRhIHN0cnVjdHVyZQorICogQHRjdzogcG9pbnRlciB0byB0aGUgdGN3IHRvIGJlIGluaXRpYWxpemVkCisgKiBAcjogaW5pdGlhbCB2YWx1ZSBvZiB0aGUgci1iaXQKKyAqIEB3OiBpbml0aWFsIHZhbHVlIG9mIHRoZSB3LWJpdAorICoKKyAqIEluaXRpYWxpemUgYWxsIGZpZWxkcyBvZiB0aGUgc3BlY2lmaWVkIHRjdyBkYXRhIHN0cnVjdHVyZSB3aXRoIHplcm8gYW5kCisgKiBmaWxsIGluIHRoZSBmb3JtYXQsIGZsYWdzLCByIGFuZCB3IGZpZWxkcy4KKyAqLwordm9pZCB0Y3dfaW5pdChzdHJ1Y3QgdGN3ICp0Y3csIGludCByLCBpbnQgdykKK3sKKwltZW1zZXQodGN3LCAwLCBzaXplb2Yoc3RydWN0IHRjdykpOworCXRjdy0+Zm9ybWF0ID0gVENXX0ZPUk1BVF9ERUZBVUxUOworCXRjdy0+ZmxhZ3MgPSBUQ1dfRkxBR1NfVElEQVdfRk9STUFUKFRDV19USURBV19GT1JNQVRfREVGQVVMVCk7CisJaWYgKHIpCisJCXRjdy0+ciA9IDE7CisJaWYgKHcpCisJCXRjdy0+dyA9IDE7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19pbml0KTsKKworc3RhdGljIGlubGluZSBzaXplX3QgdGNhX3NpemUoc3RydWN0IHRjY2IgKnRjY2IpCit7CisJcmV0dXJuIHRjY2ItPnRjYWgudGNhbCAtIDEyOworfQorCitzdGF0aWMgdTMyIGNhbGNfZGN3X2NvdW50KHN0cnVjdCB0Y2NiICp0Y2NiKQoreworCWludCBvZmZzZXQ7CisJc3RydWN0IGRjdyAqZGN3OworCXUzMiBjb3VudCA9IDA7CisJc2l6ZV90IHNpemU7CisKKwlzaXplID0gdGNhX3NpemUodGNjYik7CisJZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBzaXplOykgeworCQlkY3cgPSAoc3RydWN0IGRjdyAqKSAmdGNjYi0+dGNhW29mZnNldF07CisJCWNvdW50ICs9IGRjdy0+Y291bnQ7CisJCWlmICghKGRjdy0+ZmxhZ3MgJiBEQ1dfRkxBR1NfQ0MpKQorCQkJYnJlYWs7CisJCW9mZnNldCArPSBzaXplb2Yoc3RydWN0IGRjdykgKyBBTElHTigoaW50KSBkY3ctPmNkX2NvdW50LCA0KTsKKwl9CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgdTMyIGNhbGNfY2JjX3NpemUoc3RydWN0IHRpZGF3ICp0aWRhdywgaW50IG51bSkKK3sKKwlpbnQgaTsKKwl1MzIgY2JjX2RhdGE7CisJdTMyIGNiY19jb3VudCA9IDA7CisJdTY0IGRhdGFfY291bnQgPSAwOworCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCWlmICh0aWRhd1tpXS5mbGFncyAmIFRJREFXX0ZMQUdTX0xBU1QpCisJCQlicmVhazsKKwkJLyogVE9ETzogZmluZCBvdXQgaWYgcGFkZGluZyBhcHBsaWVzIHRvIHRvdGFsIG9mIGRhdGEKKwkJICogdHJhbnNmZXJyZWQgb3IgZGF0YSB0cmFuc2ZlcnJlZCBieSB0aGlzIHRpZGF3LiBBc3N1bXB0aW9uOgorCQkgKiBhcHBsaWVzIHRvIHRvdGFsLiAqLworCQlkYXRhX2NvdW50ICs9IHRpZGF3W2ldLmNvdW50OworCQlpZiAodGlkYXdbaV0uZmxhZ3MgJiBUSURBV19GTEFHU19JTlNFUlRfQ0JDKSB7CisJCQljYmNfZGF0YSA9IDQgKyBBTElHTihkYXRhX2NvdW50LCA0KSAtIGRhdGFfY291bnQ7CisJCQljYmNfY291bnQgKz0gY2JjX2RhdGE7CisJCQlkYXRhX2NvdW50ICs9IGNiY19kYXRhOworCQl9CisJfQorCXJldHVybiBjYmNfY291bnQ7Cit9CisKKy8qKgorICogdGN3X2ZpbmFsaXplIC0gZmluYWxpemUgdGN3IGxlbmd0aCBmaWVsZHMgYW5kIHRpZGF3IGxpc3QKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIHRjdworICogQG51bV90aWRhd3M6IHRoZSBudW1iZXIgb2YgdGlkYXdzIHVzZWQgdG8gYWRkcmVzcyBpbnB1dC9vdXRwdXQgZGF0YSBvciB6ZXJvCisgKiBpZiBubyB0aWRhIGlzIHVzZWQKKyAqCisgKiBDYWxjdWxhdGUgdGhlIGlucHV0LS9vdXRwdXQtY291bnQgYW5kIHRjY2JsIGZpZWxkIGluIHRoZSB0Y3csIGFkZCBhCisgKiB0Y2F0IHRoZSB0Y2NiIGFuZCB0ZXJtaW5hdGUgdGhlIGRhdGEgdGlkYXcgbGlzdCBpZiB1c2VkLgorICoKKyAqIE5vdGU6IGluIGNhc2UgaW5wdXQtIG9yIG91dHB1dC10aWRhIGlzIHVzZWQsIHRoZSB0aWRhdy1saXN0IG11c3QgYmUgc3RvcmVkCisgKiBpbiBjb250aWd1b3VzIHN0b3JhZ2UgKG5vIHR0aWMpLiBUaGUgdGNhbCBmaWVsZCBpbiB0aGUgdGNjYiBtdXN0IGJlCisgKiB1cC10by1kYXRlLgorICovCit2b2lkIHRjd19maW5hbGl6ZShzdHJ1Y3QgdGN3ICp0Y3csIGludCBudW1fdGlkYXdzKQoreworCXN0cnVjdCB0aWRhdyAqdGlkYXc7CisJc3RydWN0IHRjY2IgKnRjY2I7CisJc3RydWN0IHRjY2JfdGNhdCAqdGNhdDsKKwl1MzIgY291bnQ7CisKKwkvKiBUZXJtaW5hdGUgdGlkYXcgbGlzdC4gKi8KKwl0aWRhdyA9IHRjd19nZXRfZGF0YSh0Y3cpOworCWlmIChudW1fdGlkYXdzID4gMCkKKwkJdGlkYXdbbnVtX3RpZGF3cyAtIDFdLmZsYWdzIHw9IFRJREFXX0ZMQUdTX0xBU1Q7CisJLyogQWRkIHRjYXQgdG8gdGNjYi4gKi8KKwl0Y2NiID0gdGN3X2dldF90Y2NiKHRjdyk7CisJdGNhdCA9IChzdHJ1Y3QgdGNjYl90Y2F0ICopICZ0Y2NiLT50Y2FbdGNhX3NpemUodGNjYildOworCW1lbXNldCh0Y2F0LCAwLCBzaXplb2YodGNhdCkpOworCS8qIENhbGN1bGF0ZSB0Y3cgaW5wdXQvb3V0cHV0IGNvdW50IGFuZCB0Y2F0IHRyYW5zcG9ydCBjb3VudC4gKi8KKwljb3VudCA9IGNhbGNfZGN3X2NvdW50KHRjY2IpOworCWlmICh0Y3ctPncgJiYgKHRjdy0+ZmxhZ3MgJiBUQ1dfRkxBR1NfT1VUUFVUX1RJREEpKQorCQljb3VudCArPSBjYWxjX2NiY19zaXplKHRpZGF3LCBudW1fdGlkYXdzKTsKKwlpZiAodGN3LT5yKQorCQl0Y3ctPmlucHV0X2NvdW50ID0gY291bnQ7CisJZWxzZSBpZiAodGN3LT53KQorCQl0Y3ctPm91dHB1dF9jb3VudCA9IGNvdW50OworCXRjYXQtPmNvdW50ID0gQUxJR04oY291bnQsIDQpICsgNDsKKwkvKiBDYWxjdWxhdGUgdGNjYmwuICovCisJdGN3LT50Y2NibCA9IChzaXplb2Yoc3RydWN0IHRjY2IpICsgdGNhX3NpemUodGNjYikgKworCQkgICAgICBzaXplb2Yoc3RydWN0IHRjY2JfdGNhdCkgLSAyMCkgPj4gMjsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2ZpbmFsaXplKTsKKworLyoqCisgKiB0Y3dfc2V0X2ludHJnIC0gc2V0IHRoZSBpbnRlcnJvZ2F0ZSB0Y3cgYWRkcmVzcyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAaW50cmdfdGN3OiB0aGUgYWRkcmVzcyBvZiB0aGUgaW50ZXJyb2dhdGUgdGN3CisgKgorICogU2V0IHRoZSBhZGRyZXNzIG9mIHRoZSBpbnRlcnJvZ2F0ZSB0Y3cgaW4gdGhlIHNwZWNpZmllZCB0Y3cuCisgKi8KK3ZvaWQgdGN3X3NldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3csIHN0cnVjdCB0Y3cgKmludHJnX3RjdykKK3sKKwl0Y3ctPmludHJnID0gKHUzMikgKChhZGRyX3QpIGludHJnX3Rjdyk7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfaW50cmcpOworCisvKioKKyAqIHRjd19zZXRfZGF0YSAtIHNldCBkYXRhIGFkZHJlc3MgYW5kIHRpZGEgZmxhZyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAZGF0YTogdGhlIGRhdGEgYWRkcmVzcworICogQHVzZV90aWRhbDogemVybyBvZiB0aGUgZGF0YSBhZGRyZXNzIHNwZWNpZmllcyBhIGNvbnRpZ3VvdXMgYmxvY2sgb2YgZGF0YSwKKyAqIG5vbi16ZXJvIGlmIGl0IHNwZWNpZmllcyBhIGxpc3QgaWYgdGlkYXdzLgorICoKKyAqIFNldCB0aGUgaW5wdXQvb3V0cHV0IGRhdGEgYWRkcmVzcyBvZiBhIHRjdyAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUKKyAqIHItZmxhZyBhbmQgdy1mbGFnKS4gSWYgQHVzZV90aWRhbCBpcyBub24temVybywgdGhlIGNvcnJlc3BvbmRpbmcgdGlkYSBmbGFnCisgKiBpcyBzZXQgYXMgd2VsbC4KKyAqLwordm9pZCB0Y3dfc2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3LCB2b2lkICpkYXRhLCBpbnQgdXNlX3RpZGFsKQoreworCWlmICh0Y3ctPnIpIHsKKwkJdGN3LT5pbnB1dCA9ICh1NjQpICgoYWRkcl90KSBkYXRhKTsKKwkJaWYgKHVzZV90aWRhbCkKKwkJCXRjdy0+ZmxhZ3MgfD0gVENXX0ZMQUdTX0lOUFVUX1RJREE7CisJfSBlbHNlIGlmICh0Y3ctPncpIHsKKwkJdGN3LT5vdXRwdXQgPSAodTY0KSAoKGFkZHJfdCkgZGF0YSk7CisJCWlmICh1c2VfdGlkYWwpCisJCQl0Y3ctPmZsYWdzIHw9IFRDV19GTEFHU19PVVRQVVRfVElEQTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfZGF0YSk7CisKKy8qKgorICogdGN3X3NldF90Y2NiIC0gc2V0IHRjY2IgYWRkcmVzcyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAdGNjYjogdGhlIHRjY2IgYWRkcmVzcworICoKKyAqIFNldCB0aGUgYWRkcmVzcyBvZiB0aGUgdGNjYiBpbiB0aGUgc3BlY2lmaWVkIHRjdy4KKyAqLwordm9pZCB0Y3dfc2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGNjYiAqdGNjYikKK3sKKwl0Y3ctPnRjY2IgPSAodTY0KSAoKGFkZHJfdCkgdGNjYik7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfdGNjYik7CisKKy8qKgorICogdGN3X3NldF90c2IgLSBzZXQgdHNiIGFkZHJlc3Mgb2YgYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQHRzYjogdGhlIHRzYiBhZGRyZXNzCisgKgorICogU2V0IHRoZSBhZGRyZXNzIG9mIHRoZSB0c2IgaW4gdGhlIHNwZWNpZmllZCB0Y3cuCisgKi8KK3ZvaWQgdGN3X3NldF90c2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdHNiICp0c2IpCit7CisJdGN3LT50c2IgPSAodTY0KSAoKGFkZHJfdCkgdHNiKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X3NldF90c2IpOworCisvKioKKyAqIHRjY2JfaW5pdCAtIGluaXRpYWxpemUgdGNjYgorICogQHRjY2I6IHRoZSB0Y2NiIGFkZHJlc3MKKyAqIEBzaXplOiB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSB0Y2NiCisgKiBAc2FjOiB0aGUgc2VydmljZS1hY3Rpb24tY29kZSB0byBiZSB1c2VyCisgKgorICogSW5pdGlhbGl6ZSB0aGUgaGVhZGVyIG9mIHRoZSBzcGVjaWZpZWQgdGNjYiBieSByZXNldHRpbmcgYWxsIHZhbHVlcyB0byB6ZXJvCisgKiBhbmQgZmlsbGluZyBpbiBkZWZhdWx0cyBmb3IgZm9ybWF0LCBzYWMgYW5kIGluaXRpYWwgdGNhbCBmaWVsZHMuCisgKi8KK3ZvaWQgdGNjYl9pbml0KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3Qgc2l6ZSwgdTMyIHNhYykKK3sKKwltZW1zZXQodGNjYiwgMCwgc2l6ZSk7CisJdGNjYi0+dGNhaC5mb3JtYXQgPSBUQ0NCX0ZPUk1BVF9ERUZBVUxUOworCXRjY2ItPnRjYWguc2FjID0gc2FjOworCXRjY2ItPnRjYWgudGNhbCA9IDEyOworfQorRVhQT1JUX1NZTUJPTCh0Y2NiX2luaXQpOworCisvKioKKyAqIHRzYl9pbml0IC0gaW5pdGlhbGl6ZSB0c2IKKyAqIEB0c2I6IHRoZSB0c2IgYWRkcmVzcworICoKKyAqIEluaXRpYWxpemUgdGhlIHNwZWNpZmllZCB0c2IgYnkgcmVzZXR0aW5nIGFsbCB2YWx1ZXMgdG8gemVyby4KKyAqLwordm9pZCB0c2JfaW5pdChzdHJ1Y3QgdHNiICp0c2IpCit7CisJbWVtc2V0KHRzYiwgMCwgc2l6ZW9mKHRzYikpOworfQorRVhQT1JUX1NZTUJPTCh0c2JfaW5pdCk7CisKKy8qKgorICogdGNjYl9hZGRfZGN3IC0gYWRkIGEgZGN3IHRvIHRoZSB0Y2NiCisgKiBAdGNjYjogdGhlIHRjY2IgYWRkcmVzcworICogQHRjY2Jfc2l6ZTogdGhlIG1heGltdW0gdGNjYiBzaXplCisgKiBAY21kOiB0aGUgZGN3IGNvbW1hbmQKKyAqIEBmbGFnczogZmxhZ3MgZm9yIHRoZSBkY3cKKyAqIEBjZDogcG9pbnRlciB0byBjb250cm9sIGRhdGEgZm9yIHRoaXMgZGN3IG9yIE5VTEwgaWYgbm9uZSBpcyByZXF1aXJlZAorICogQGNkX2NvdW50OiBudW1iZXIgb2YgY29udHJvbCBkYXRhIGJ5dGVzIGZvciB0aGlzIGRjdworICogQGNvdW50OiBudW1iZXIgb2YgZGF0YSBieXRlcyBmb3IgdGhpcyBkY3cKKyAqCisgKiBBZGQgYSBuZXcgZGN3IHRvIHRoZSBzcGVjaWZpZWQgdGNjYiBieSB3cml0aW5nIHRoZSBkY3cgaW5mb3JtYXRpb24gc3BlY2lmaWVkCisgKiBieSBAY21kLCBAZmxhZ3MsIEBjZCwgQGNkX2NvdW50IGFuZCBAY291bnQgdG8gdGhlIHRjYSBvZiB0aGUgdGNjYi4gUmV0dXJuCisgKiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFkZGVkIGRjdyBvbiBzdWNjZXNzIG9yIC0lRU5PU1BDIGlmIHRoZSBuZXcgZGN3CisgKiB3b3VsZCBleGNlZWQgdGhlIGF2YWlsYWJsZSBzcGFjZSBhcyBkZWZpbmVkIGJ5IEB0Y2NiX3NpemUuCisgKgorICogTm90ZTogdGhlIHRjYWwgZmllbGQgb2YgdGhlIHRjY2IgaGVhZGVyIHdpbGwgYmUgdXBkYXRlcyB0byByZWZsZWN0IGFkZGVkCisgKiBjb250ZW50LgorICovCitzdHJ1Y3QgZGN3ICp0Y2NiX2FkZF9kY3coc3RydWN0IHRjY2IgKnRjY2IsIHNpemVfdCB0Y2NiX3NpemUsIHU4IGNtZCwgdTggZmxhZ3MsCisJCQkgdm9pZCAqY2QsIHU4IGNkX2NvdW50LCB1MzIgY291bnQpCit7CisJc3RydWN0IGRjdyAqZGN3OworCWludCBzaXplOworCWludCB0Y2Ffb2Zmc2V0OworCisJLyogQ2hlY2sgZm9yIHNwYWNlLiAqLworCXRjYV9vZmZzZXQgPSB0Y2Ffc2l6ZSh0Y2NiKTsKKwlzaXplID0gQUxJR04oc2l6ZW9mKHN0cnVjdCBkY3cpICsgY2RfY291bnQsIDQpOworCWlmIChzaXplb2Yoc3RydWN0IHRjY2JfdGNhaCkgKyB0Y2Ffb2Zmc2V0ICsgc2l6ZSArCisJICAgIHNpemVvZihzdHJ1Y3QgdGNjYl90Y2F0KSA+IHRjY2Jfc2l6ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CisJLyogQWRkIGRjdyB0byB0Y2EuICovCisJZGN3ID0gKHN0cnVjdCBkY3cgKikgJnRjY2ItPnRjYVt0Y2Ffb2Zmc2V0XTsKKwltZW1zZXQoZGN3LCAwLCBzaXplKTsKKwlkY3ctPmNtZCA9IGNtZDsKKwlkY3ctPmZsYWdzID0gZmxhZ3M7CisJZGN3LT5jb3VudCA9IGNvdW50OworCWRjdy0+Y2RfY291bnQgPSBjZF9jb3VudDsKKwlpZiAoY2QpCisJCW1lbWNweSgmZGN3LT5jZFswXSwgY2QsIGNkX2NvdW50KTsKKwl0Y2NiLT50Y2FoLnRjYWwgKz0gc2l6ZTsKKwlyZXR1cm4gZGN3OworfQorRVhQT1JUX1NZTUJPTCh0Y2NiX2FkZF9kY3cpOworCisvKioKKyAqIHRjd19hZGRfdGlkYXcgLSBhZGQgYSB0aWRhdyB0byBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAbnVtX3RpZGF3czogdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHRpZGF3cworICogQGZsYWdzOiBmbGFncyBmb3IgdGhlIG5ldyB0aWRhdworICogQGFkZHI6IGFkZHJlc3MgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBjb3VudDogY291bnQgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqCisgKiBBZGQgYSBuZXcgdGlkYXcgdG8gdGhlIGlucHV0L291dHB1dCBkYXRhIHRpZGF3LWxpc3Qgb2YgdGhlIHNwZWNpZmllZCB0Y3cKKyAqIChkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSByLWZsYWcgYW5kIHctZmxhZykgYW5kIHJldHVybiBhIHBvaW50ZXIgdG8KKyAqIHRoZSBuZXcgdGlkYXcuCisgKgorICogTm90ZTogdGhlIHRpZGF3LWxpc3QgaXMgYXNzdW1lZCB0byBiZSBjb250aWd1b3VzIHdpdGggbm8gdHRpY3MuIFRoZSBjYWxsZXIKKyAqIG11c3QgZW5zdXJlIHRoYXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGZvciB0aGUgbmV3IHRpZGF3LiBUaGUgbGFzdC10aWRhdworICogZmxhZyBmb3IgdGhlIGxhc3QgdGlkYXcgaW4gdGhlIGxpc3Qgd2lsbCBiZSBzZXQgYnkgdGN3X2ZpbmFsaXplLgorICovCitzdHJ1Y3QgdGlkYXcgKnRjd19hZGRfdGlkYXcoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cywgdTggZmxhZ3MsCisJCQkgICAgdm9pZCAqYWRkciwgdTMyIGNvdW50KQoreworCXN0cnVjdCB0aWRhdyAqdGlkYXc7CisKKwkvKiBBZGQgdGlkYXcgdG8gdGlkYXctbGlzdC4gKi8KKwl0aWRhdyA9ICgoc3RydWN0IHRpZGF3ICopIHRjd19nZXRfZGF0YSh0Y3cpKSArIG51bV90aWRhd3M7CisJbWVtc2V0KHRpZGF3LCAwLCBzaXplb2Yoc3RydWN0IHRpZGF3KSk7CisJdGlkYXctPmZsYWdzID0gZmxhZ3M7CisJdGlkYXctPmNvdW50ID0gY291bnQ7CisJdGlkYXctPmFkZHIgPSAodTY0KSAoKGFkZHJfdCkgYWRkcik7CisJcmV0dXJuIHRpZGF3OworfQorRVhQT1JUX1NZTUJPTCh0Y3dfYWRkX3RpZGF3KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaWRzZXQuaCBiL2RyaXZlcnMvczM5MC9jaW8vaWRzZXQuaAppbmRleCAxNDQ0NjZhLi41MjgwNjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lkc2V0LmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pZHNldC5oCkBAIC04LDcgKzgsNyBAQAogI2lmbmRlZiBTMzkwX0lEU0VUX0gKICNkZWZpbmUgUzM5MF9JRFNFVF9IIFMzOTBfSURTRVRfSAogCi0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogc3RydWN0IGlkc2V0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lvX3NjaC5oIGIvZHJpdmVycy9zMzkwL2Npby9pb19zY2guaAppbmRleCA4YzYxMzE2Li4zZjhmMWNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lvX3NjaC5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaW9fc2NoLmgKQEAgLTEsMTIgKzEsMTIgQEAKICNpZm5kZWYgUzM5MF9JT19TQ0hfSAogI2RlZmluZSBTMzkwX0lPX1NDSF9ICiAKLSNpbmNsdWRlICJzY2hpZC5oIgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAvKgotICogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sKKyAqIGNvbW1hbmQtbW9kZSBvcGVyYXRpb24gcmVxdWVzdCBibG9jawogICovCi1zdHJ1Y3Qgb3JiIHsKK3N0cnVjdCBjbWRfb3JiIHsKIAl1MzIgaW50cGFybTsJLyogaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLwogCXUzMiBrZXkgIDogNDsJLyogZmxhZ3MsIGxpa2Uga2V5LCBzdXNwZW5kIGNvbnRyb2wsIGV0Yy4gKi8KIAl1MzIgc3BuZCA6IDE7CS8qIHN1c3BlbmQgY29udHJvbCAqLwpAQCAtMjgsOCArMjgsMzYgQEAKIAl1MzIgY3BhOwkvKiBjaGFubmVsIHByb2dyYW0gYWRkcmVzcyAqLwogfSAgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg0KSkpOwogCisvKgorICogdHJhbnNwb3J0LW1vZGUgb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sKKyAqLworc3RydWN0IHRtX29yYiB7CisJdTMyIGludHBhcm07CisJdTMyIGtleTo0OworCXUzMiA6OTsKKwl1MzIgYjoxOworCXUzMiA6MjsKKwl1MzIgbHBtOjg7CisJdTMyIDo3OworCXUzMiB4OjE7CisJdTMyIHRjdzsKKwl1MzIgcHJpbzo4OworCXUzMiA6ODsKKwl1MzIgcnN2cGdtOjg7CisJdTMyIDo4OworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgOjMyOworCXUzMiA6MzI7Cit9ICBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDQpKSk7CisKK3VuaW9uIG9yYiB7CisJc3RydWN0IGNtZF9vcmIgY21kOworCXN0cnVjdCB0bV9vcmIgdG07Cit9ICBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDQpKSk7CisKIHN0cnVjdCBpb19zdWJjaGFubmVsX3ByaXZhdGUgewotCXN0cnVjdCBvcmIgb3JiOwkJLyogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sgKi8KKwl1bmlvbiBvcmIgb3JiOwkJLyogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sgKi8KIAlzdHJ1Y3QgY2N3MSBzZW5zZV9jY3c7CS8qIHN0YXRpYyBjY3cgZm9yIHNlbnNlIGNvbW1hbmQgKi8KIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoOCkpKTsKIApAQCAtOTUsMTYgKzEyMywxOCBAQAogCXZvaWQgKmNtYl93YWl0OwkJCS8qIGRlZmVycmVkIGNtYiBlbmFibGUvZGlzYWJsZSAqLwogfTsKIAotc3RhdGljIGlubGluZSBpbnQgc3NjaChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCwgdm9sYXRpbGUgc3RydWN0IG9yYiAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IHNzY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvbGF0aWxlIHVuaW9uIG9yYiAqYWRkcikKIHsKIAlyZWdpc3RlciBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCByZWcxIGFzbSgiMSIpID0gc2NoaWQ7Ci0JaW50IGNjb2RlOworCWludCBjY29kZSA9IC1FSU87CiAKIAlhc20gdm9sYXRpbGUoCiAJCSIJc3NjaAkwKCUyKVxuIgotCQkiCWlwbQklMFxuIgotCQkiCXNybAklMCwyOCIKLQkJOiAiPWQiIChjY29kZSkgOiAiZCIgKHJlZzEpLCAiYSIgKGFkZHIpLCAibSIgKCphZGRyKSA6ICJjYyIpOworCQkiMDoJaXBtCSUwXG4iCisJCSIJc3JsCSUwLDI4XG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwgMWIpCisJCTogIitkIiAoY2NvZGUpIDogImQiIChyZWcxKSwgImEiIChhZGRyKSwgIm0iICgqYWRkcikgOiAiY2MiKTsKIAlyZXR1cm4gY2NvZGU7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaW9hc20uaCBiL2RyaXZlcnMvczM5MC9jaW8vaW9hc20uaAppbmRleCA2NTJlYTM2Li45ZmEyYWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lvYXNtLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pb2FzbS5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBTMzkwX0NJT19JT0FTTV9ICiAKICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KLSNpbmNsdWRlICJzY2hpZC5oIgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAvKgogICogVFBJIGluZm8gc3RydWN0dXJlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lzYy5jIGIvZHJpdmVycy9zMzkwL2Npby9pc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTkyMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pc2MuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogRnVuY3Rpb25zIGZvciByZWdpc3RyYXRpb24gb2YgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzc2VzIG9uIHMzOTAuCisgKgorICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiBBdXRob3JzOiBTZWJhc3RpYW4gT3R0IDxzZWJvdHRAbGludXgudm5ldC5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KKworc3RhdGljIHVuc2lnbmVkIGludCBpc2NfcmVmc1tNQVhfSVNDICsgMV07CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGlzY19yZWZfbG9jayk7CisKKworLyoqCisgKiBpc2NfcmVnaXN0ZXIgLSByZWdpc3RlciBhbiBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzLgorICogQGlzYzogSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyB0byByZWdpc3RlcgorICoKKyAqIFRoZSBudW1iZXIgb2YgdXNlcnMgZm9yIEBpc2MgaXMgaW5jcmVhc2VkLiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1c2VyIHRvCisgKiByZWdpc3RlciBAaXNjLCB0aGUgY29ycmVzcG9uZGluZyBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzIG1hc2sgaXMgZW5hYmxlZC4KKyAqCisgKiBDb250ZXh0OgorICogICBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGJlIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLwordm9pZCBpc2NfcmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYykKK3sKKwlpZiAoaXNjID4gTUFYX0lTQykgeworCQlXQVJOX09OKDEpOworCQlyZXR1cm47CisJfQorCisJc3Bpbl9sb2NrKCZpc2NfcmVmX2xvY2spOworCWlmIChpc2NfcmVmc1tpc2NdID09IDApCisJCWN0bF9zZXRfYml0KDYsIDMxIC0gaXNjKTsKKwlpc2NfcmVmc1tpc2NdKys7CisJc3Bpbl91bmxvY2soJmlzY19yZWZfbG9jayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpc2NfcmVnaXN0ZXIpOworCisvKioKKyAqIGlzY191bnJlZ2lzdGVyIC0gdW5yZWdpc3RlciBhbiBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzLgorICogQGlzYzogSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyB0byB1bnJlZ2lzdGVyCisgKgorICogVGhlIG51bWJlciBvZiB1c2VycyBmb3IgQGlzYyBpcyBkZWNyZWFzZWQuIElmIHRoaXMgaXMgdGhlIGxhc3QgdXNlciB0bworICogdW5yZWdpc3RlciBAaXNjLCB0aGUgY29ycmVzcG9uZGluZyBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzIG1hc2sgaXMKKyAqIGRpc2FibGVkLgorICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgaWYgaXNjX3JlZ2lzdGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkCisgKiBiZWZvcmUgYnkgdGhlIGRyaXZlciBmb3IgQGlzYy4KKyAqCisgKiBDb250ZXh0OgorICogICBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGJlIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLwordm9pZCBpc2NfdW5yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaXNjKQoreworCXNwaW5fbG9jaygmaXNjX3JlZl9sb2NrKTsKKwkvKiBjaGVjayBmb3IgbWlzdXNlICovCisJaWYgKGlzYyA+IE1BWF9JU0MgfHwgaXNjX3JlZnNbaXNjXSA9PSAwKSB7CisJCVdBUk5fT04oMSk7CisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisJaWYgKGlzY19yZWZzW2lzY10gPT0gMSkKKwkJY3RsX2NsZWFyX2JpdCg2LCAzMSAtIGlzYyk7CisJaXNjX3JlZnNbaXNjXS0tOworb3V0X3VubG9jazoKKwlzcGluX3VubG9jaygmaXNjX3JlZl9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGlzY191bnJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaXRjdy5jIGIvZHJpdmVycy9zMzkwL2Npby9pdGN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdkYTlhYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaXRjdy5jCkBAIC0wLDAgKzEsMzI3IEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgaW5jcmVtZW50YWwgY29uc3RydWN0aW9uIG9mIGZjeCBlbmFibGVkIEkvTyBjb250cm9sIGJsb2Nrcy4KKyAqCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogUGV0ZXIgT2JlcnBhcmxlaXRlciA8cGV0ZXIub2JlcnBhcmxlaXRlckBkZS5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgorI2luY2x1ZGUgPGFzbS9pdGN3Lmg+CisKKy8qKgorICogc3RydWN0IGl0Y3cgLSBpbmNyZW1lbnRhbCB0Y3cgaGVscGVyIGRhdGEgdHlwZQorICoKKyAqIFRoaXMgc3RydWN0dXJlIHNlcnZlcyBhcyBhIGhhbmRsZSBmb3IgdGhlIGluY3JlbWVudGFsIGNvbnN0cnVjdGlvbiBvZiBhCisgKiB0Y3cgYW5kIGFzc29jaWF0ZWQgdGNjYiwgdHNiLCBkYXRhIHRpZGF3LWxpc3QgcGx1cyBhbiBvcHRpb25hbCBpbnRlcnJvZ2F0ZQorICogdGN3IGFuZCBhc3NvY2lhdGVkIGRhdGEuIFRoZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGNvbnRhaW5lZCBpbnNpZGUgYSBzaW5nbGUKKyAqIGNvbnRpZ3VvdXMgYnVmZmVyIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgorICoKKyAqIFRoZSBpdGN3IGNvbnN0cnVjdGlvbiBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIG92ZXJhbGwgZGF0YSBpbnRlZ3JpdHk6CisgKiAtIHJlc2V0IHVudXNlZCBmaWVsZHMgdG8gemVybworICogLSBmaWxsIGluIHJlcXVpcmVkIHBvaW50ZXJzCisgKiAtIGVuc3VyZSByZXF1aXJlZCBhbGlnbm1lbnQgZm9yIGRhdGEgc3RydWN0dXJlcworICogLSBwcmV2ZW50IGRhdGEgc3RydWN0dXJlcyB0byBjcm9zcyA0ay1ieXRlIGJvdW5kYXJ5IHdoZXJlIHJlcXVpcmVkCisgKiAtIGNhbGN1bGF0ZSB0Y2NiLXJlbGF0ZWQgbGVuZ3RoIGZpZWxkcworICogLSBvcHRpb25hbGx5IHByb3ZpZGUgcmVhZHktbWFkZSBpbnRlcnJvZ2F0ZSB0Y3cgYW5kIGFzc29jaWF0ZWQgc3RydWN0dXJlcworICoKKyAqIFJlc3RyaWN0aW9ucyBhcHBseSB0byB0aGUgaXRjd3MgY3JlYXRlZCB3aXRoIHRoZXNlIGNvbnN0cnVjdGlvbiBmdW5jdGlvbnM6CisgKiAtIHRpZGEgb25seSBzdXBwb3J0ZWQgZm9yIGRhdGEgYWRkcmVzcywgbm90IGZvciB0Y2NiCisgKiAtIG9ubHkgY29udGlndW91cyB0aWRhdy1saXN0cyAobm8gdHRpYykKKyAqIC0gdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIHBlciBpdGN3IG1heSBub3QgZXhjZWVkIDRrIGJ5dGVzCisgKiAtIGVpdGhlciByZWFkIG9yIHdyaXRlIG9wZXJhdGlvbiAobWF5IG5vdCB3b3JrIHdpdGggcj0wIGFuZCB3PTApCisgKgorICogRXhhbXBsZToKKyAqIHN0cnVjdCBpdGN3ICppdGN3OworICogdm9pZCAqYnVmZmVyOworICogc2l6ZV90IHNpemU7CisgKgorICogc2l6ZSA9IGl0Y3dfY2FsY19zaXplKDEsIDIsIDApOworICogYnVmZmVyID0ga21hbGxvYyhzaXplLCBHRlBfRE1BKTsKKyAqIGlmICghYnVmZmVyKQorICoJcmV0dXJuIC1FTk9NRU07CisgKiBpdGN3ID0gaXRjd19pbml0KGJ1ZmZlciwgc2l6ZSwgSVRDV19PUF9SRUFELCAxLCAyLCAwKTsKKyAqIGlmIChJU19FUlIoaXRjdykpCisgKglyZXR1cm4gUFRSX0VSKGl0Y3cpOworICogaXRjd19hZGRfZGN3KGl0Y3csIDB4MiwgMCwgTlVMTCwgMCwgNzIpOworICogaXRjd19hZGRfdGlkYXcoaXRjdywgMCwgMHgzMDAwMCwgMjApOworICogaXRjd19hZGRfdGlkYXcoaXRjdywgMCwgMHg0MDAwMCwgNTIpOworICogaXRjd19maW5hbGl6ZShpdGN3KTsKKyAqCisgKi8KK3N0cnVjdCBpdGN3IHsKKwlzdHJ1Y3QgdGN3ICp0Y3c7CisJc3RydWN0IHRjdyAqaW50cmdfdGN3OworCWludCBudW1fdGlkYXdzOworCWludCBtYXhfdGlkYXdzOworCWludCBpbnRyZ19udW1fdGlkYXdzOworCWludCBpbnRyZ19tYXhfdGlkYXdzOworfTsKKworLyoqCisgKiBpdGN3X2dldF90Y3cgLSByZXR1cm4gcG9pbnRlciB0byB0Y3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICoKKyAqIFJldHVybiBwb2ludGVyIHRvIHRoZSB0Y3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGN3LgorICovCitzdHJ1Y3QgdGN3ICppdGN3X2dldF90Y3coc3RydWN0IGl0Y3cgKml0Y3cpCit7CisJcmV0dXJuIGl0Y3ctPnRjdzsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19nZXRfdGN3KTsKKworLyoqCisgKiBpdGN3X2NhbGNfc2l6ZSAtIHJldHVybiB0aGUgc2l6ZSBvZiBhbiBpdGN3IHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMKKyAqIEBpbnRyZzogaWYgbm9uLXplcm8sIGFkZCBhbiBpbnRlcnJvZ2F0ZSB0Y3cKKyAqIEBtYXhfdGlkYXdzOiBtYXhpbXVtIG51bWJlciBvZiB0aWRhd3MgdG8gYmUgdXNlZCBmb3IgZGF0YSBhZGRyZXNzaW5nIG9yIHplcm8KKyAqIGlmIG5vIHRpZGEgaXMgdG8gYmUgdXNlZC4KKyAqIEBpbnRyZ19tYXhfdGlkYXdzOiBtYXhpbXVtIG51bWJlciBvZiB0aWRhd3MgdG8gYmUgdXNlZCBmb3IgZGF0YSBhZGRyZXNzaW5nCisgKiBieSB0aGUgaW50ZXJyb2dhdGUgdGN3LCBpZiBzcGVjaWZpZWQKKyAqCisgKiBDYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIHRvIGhvbGQgYW4gaXRjdyB3aXRoIHRoZQorICogZ2l2ZW4gcGFyYW1ldGVycyBhbmQgYXNzdW1pbmcgdGNjYnMgd2l0aCBtYXhpbXVtIHNpemUuCisgKgorICogTm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgc2l6ZSBhbHNvIGNvbnRhaW5zIGJ5dGVzIG5lZWRlZCBmb3IgYWxpZ25tZW50CisgKiBwYWRkaW5nIGFzIHdlbGwgYXMgcGFkZGluZyB0byBlbnN1cmUgdGhhdCBkYXRhIHN0cnVjdHVyZXMgZG9uJ3QgY3Jvc3MgYQorICogNGstYm91bmRhcnkgd2hlcmUgcmVxdWlyZWQuCisgKi8KK3NpemVfdCBpdGN3X2NhbGNfc2l6ZShpbnQgaW50cmcsIGludCBtYXhfdGlkYXdzLCBpbnQgaW50cmdfbWF4X3RpZGF3cykKK3sKKwlzaXplX3QgbGVuOworCisJLyogTWFpbiBkYXRhLiAqLworCWxlbiA9IHNpemVvZihzdHJ1Y3QgaXRjdyk7CisJbGVuICs9IC8qIFRDVyAqLyBzaXplb2Yoc3RydWN0IHRjdykgKyAvKiBUQ0NCICovIFRDQ0JfTUFYX1NJWkUgKworCSAgICAgICAvKiBUU0IgKi8gc2l6ZW9mKHN0cnVjdCB0c2IpICsKKwkgICAgICAgLyogVElEQUwgKi8gbWF4X3RpZGF3cyAqIHNpemVvZihzdHJ1Y3QgdGlkYXcpOworCS8qIEludGVycm9nYXRlIGRhdGEuICovCisJaWYgKGludHJnKSB7CisJCWxlbiArPSAvKiBUQ1cgKi8gc2l6ZW9mKHN0cnVjdCB0Y3cpICsgLyogVENDQiAqLyBUQ0NCX01BWF9TSVpFICsKKwkJICAgICAgIC8qIFRTQiAqLyBzaXplb2Yoc3RydWN0IHRzYikgKworCQkgICAgICAgLyogVElEQUwgKi8gaW50cmdfbWF4X3RpZGF3cyAqIHNpemVvZihzdHJ1Y3QgdGlkYXcpOworCX0KKwkvKiBNYXhpbXVtIHJlcXVpcmVkIGFsaWdubWVudCBwYWRkaW5nLiAqLworCWxlbiArPSAvKiBJbml0aWFsIFRDVyAqLyA2MyArIC8qIEludGVycm9nYXRlIFRDQ0IgKi8gNzsKKwkvKiBNYXhpbXVtIHBhZGRpbmcgZm9yIHN0cnVjdHVyZXMgdGhhdCBtYXkgbm90IGNyb3NzIDRrIGJvdW5kYXJ5LiAqLworCWlmICgobWF4X3RpZGF3cyA+IDApIHx8IChpbnRyZ19tYXhfdGlkYXdzID4gMCkpCisJCWxlbiArPSBtYXgobWF4X3RpZGF3cywgaW50cmdfbWF4X3RpZGF3cykgKgorCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB0aWRhdykgLSAxOworCXJldHVybiBsZW47Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfY2FsY19zaXplKTsKKworI2RlZmluZSBDUk9TUzRLKHgsIGwpCSgoKHgpICYgfjQwOTUpICE9ICgoeCArIGwpICYgfjQwOTUpKQorCitzdGF0aWMgaW5saW5lIHZvaWQgKmZpdF9jaHVuayhhZGRyX3QgKnN0YXJ0LCBhZGRyX3QgZW5kLCBzaXplX3QgbGVuLAorCQkJICAgICAgaW50IGFsaWduLCBpbnQgY2hlY2tfNGspCit7CisJYWRkcl90IGFkZHI7CisKKwlhZGRyID0gQUxJR04oKnN0YXJ0LCBhbGlnbik7CisJaWYgKGNoZWNrXzRrICYmIENST1NTNEsoYWRkciwgbGVuKSkgeworCQlhZGRyID0gQUxJR04oYWRkciwgNDA5Nik7CisJCWFkZHIgPSBBTElHTihhZGRyLCBhbGlnbik7CisJfQorCWlmIChhZGRyICsgbGVuID4gZW5kKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKKwkqc3RhcnQgPSBhZGRyICsgbGVuOworCXJldHVybiAodm9pZCAqKSBhZGRyOworfQorCisvKioKKyAqIGl0Y3dfaW5pdCAtIGluaXRpYWxpemUgaW5jcmVtZW50YWwgdGN3IGRhdGEgc3RydWN0dXJlCisgKiBAYnVmZmVyOiBhZGRyZXNzIG9mIGJ1ZmZlciB0byB1c2UgZm9yIGRhdGEgc3RydWN0dXJlcworICogQHNpemU6IG51bWJlciBvZiBieXRlcyBpbiBidWZmZXIKKyAqIEBvcDogJUlUQ1dfT1BfUkVBRCBmb3IgYSByZWFkIG9wZXJhdGlvbiB0Y3csICVJVENXX09QX1dSSVRFIGZvciBhIHdyaXRlCisgKiBvcGVyYXRpb24gdGN3CisgKiBAaW50cmc6IGlmIG5vbi16ZXJvLCBhZGQgYW5kIGluaXRpYWxpemUgYW4gaW50ZXJyb2dhdGUgdGN3CisgKiBAbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZyBvciB6ZXJvCisgKiBpZiBubyB0aWRhIGlzIHRvIGJlIHVzZWQuCisgKiBAaW50cmdfbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZworICogYnkgdGhlIGludGVycm9nYXRlIHRjdywgaWYgc3BlY2lmaWVkCisgKgorICogUHJlcGFyZSB0aGUgc3BlY2lmaWVkIGJ1ZmZlciB0byBiZSB1c2VkIGFzIGFuIGluY3JlbWVudGFsIHRjdywgaS5lLiBhCisgKiBoZWxwZXIgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgYSB2YWxpZCB0Y3cgYnkKKyAqIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gb3RoZXIgaGVscGVyIGZ1bmN0aW9ucy4gTm90ZTogdGhlIGJ1ZmZlciBuZWVkcyB0byBiZQorICogbG9jYXRlZCBiZWxvdyB0aGUgMkcgYWRkcmVzcyBsaW1pdC4gVGhlIHJlc3VsdGluZyB0Y3cgaGFzIHRoZSBmb2xsb3dpbmcKKyAqIHJlc3RyaWN0aW9uczoKKyAqICAtIG5vIHRjY2IgdGlkYWwKKyAqICAtIGlucHV0L291dHB1dCB0aWRhbCBpcyBjb250aWd1b3VzIChubyB0dGljKQorICogIC0gdG90YWwgZGF0YSBzaG91bGQgbm90IGV4Y2VlZCA0aworICogIC0gdGN3IHNwZWNpZmllcyBlaXRoZXIgcmVhZCBvciB3cml0ZSBvcGVyYXRpb24KKyAqCisgKiBPbiBzdWNjZXNzLCByZXR1cm4gcG9pbnRlciB0byB0aGUgcmVzdWx0aW5nIGluY3JlbWVudGFsIHRjdyBkYXRhIHN0cnVjdHVyZSwKKyAqIEVSUl9QVFIgb3RoZXJ3aXNlLgorICovCitzdHJ1Y3QgaXRjdyAqaXRjd19pbml0KHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUsIGludCBvcCwgaW50IGludHJnLAorCQkgICAgICAgaW50IG1heF90aWRhd3MsIGludCBpbnRyZ19tYXhfdGlkYXdzKQoreworCXN0cnVjdCBpdGN3ICppdGN3OworCXZvaWQgKmNodW5rOworCWFkZHJfdCBzdGFydDsKKwlhZGRyX3QgZW5kOworCisJLyogQ2hlY2sgZm9yIDJHIGxpbWl0LiAqLworCXN0YXJ0ID0gKGFkZHJfdCkgYnVmZmVyOworCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwlpZiAoZW5kID4gKDEgPDwgMzEpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwltZW1zZXQoYnVmZmVyLCAwLCBzaXplKTsKKwkvKiBJVENXLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IGl0Y3cpLCAxLCAwKTsKKwlpZiAoSVNfRVJSKGNodW5rKSkKKwkJcmV0dXJuIGNodW5rOworCWl0Y3cgPSBjaHVuazsKKwlpdGN3LT5tYXhfdGlkYXdzID0gbWF4X3RpZGF3czsKKwlpdGN3LT5pbnRyZ19tYXhfdGlkYXdzID0gaW50cmdfbWF4X3RpZGF3czsKKwkvKiBNYWluIFRDVy4gKi8KKwljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0Y3cpLCA2NCwgMCk7CisJaWYgKElTX0VSUihjaHVuaykpCisJCXJldHVybiBjaHVuazsKKwlpdGN3LT50Y3cgPSBjaHVuazsKKwl0Y3dfaW5pdChpdGN3LT50Y3csIChvcCA9PSBJVENXX09QX1JFQUQpID8gMSA6IDAsCisJCSAob3AgPT0gSVRDV19PUF9XUklURSkgPyAxIDogMCk7CisJLyogSW50ZXJyb2dhdGUgVENXLiAqLworCWlmIChpbnRyZykgeworCQljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0Y3cpLCA2NCwgMCk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQlpdGN3LT5pbnRyZ190Y3cgPSBjaHVuazsKKwkJdGN3X2luaXQoaXRjdy0+aW50cmdfdGN3LCAxLCAwKTsKKwkJdGN3X3NldF9pbnRyZyhpdGN3LT50Y3csIGl0Y3ctPmludHJnX3Rjdyk7CisJfQorCS8qIERhdGEgVElEQUwuICovCisJaWYgKG1heF90aWRhd3MgPiAwKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRpZGF3KSAqCisJCQkJICBtYXhfdGlkYXdzLCAxNiwgMSk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0Y3dfc2V0X2RhdGEoaXRjdy0+dGN3LCBjaHVuaywgMSk7CisJfQorCS8qIEludGVycm9nYXRlIGRhdGEgVElEQUwuICovCisJaWYgKGludHJnICYmIChpbnRyZ19tYXhfdGlkYXdzID4gMCkpIHsKKwkJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdGlkYXcpICoKKwkJCQkgIGludHJnX21heF90aWRhd3MsIDE2LCAxKTsKKwkJaWYgKElTX0VSUihjaHVuaykpCisJCQlyZXR1cm4gY2h1bms7CisJCXRjd19zZXRfZGF0YShpdGN3LT5pbnRyZ190Y3csIGNodW5rLCAxKTsKKwl9CisJLyogVFNCLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRzYiksIDgsIDApOworCWlmIChJU19FUlIoY2h1bmspKQorCQlyZXR1cm4gY2h1bms7CisJdHNiX2luaXQoY2h1bmspOworCXRjd19zZXRfdHNiKGl0Y3ctPnRjdywgY2h1bmspOworCS8qIEludGVycm9nYXRlIFRTQi4gKi8KKwlpZiAoaW50cmcpIHsKKwkJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdHNiKSwgOCwgMCk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0c2JfaW5pdChjaHVuayk7CisJCXRjd19zZXRfdHNiKGl0Y3ctPmludHJnX3RjdywgY2h1bmspOworCX0KKwkvKiBUQ0NCLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBUQ0NCX01BWF9TSVpFLCA4LCAwKTsKKwlpZiAoSVNfRVJSKGNodW5rKSkKKwkJcmV0dXJuIGNodW5rOworCXRjY2JfaW5pdChjaHVuaywgVENDQl9NQVhfU0laRSwgVENDQl9TQUNfREVGQVVMVCk7CisJdGN3X3NldF90Y2NiKGl0Y3ctPnRjdywgY2h1bmspOworCS8qIEludGVycm9nYXRlIFRDQ0IuICovCisJaWYgKGludHJnKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBUQ0NCX01BWF9TSVpFLCA4LCAwKTsKKwkJaWYgKElTX0VSUihjaHVuaykpCisJCQlyZXR1cm4gY2h1bms7CisJCXRjY2JfaW5pdChjaHVuaywgVENDQl9NQVhfU0laRSwgVENDQl9TQUNfSU5UUkcpOworCQl0Y3dfc2V0X3RjY2IoaXRjdy0+aW50cmdfdGN3LCBjaHVuayk7CisJCXRjY2JfYWRkX2RjdyhjaHVuaywgVENDQl9NQVhfU0laRSwgRENXX0NNRF9JTlRSRywgMCwgTlVMTCwKKwkJCSAgICAgc2l6ZW9mKHN0cnVjdCBkY3dfaW50cmdfZGF0YSksIDApOworCQl0Y3dfZmluYWxpemUoaXRjdy0+aW50cmdfdGN3LCAwKTsKKwl9CisJcmV0dXJuIGl0Y3c7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfaW5pdCk7CisKKy8qKgorICogaXRjd19hZGRfZGN3IC0gYWRkIGEgZGN3IHRvIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICogQGNtZDogdGhlIGRjdyBjb21tYW5kCisgKiBAZmxhZ3M6IGZsYWdzIGZvciB0aGUgZGN3CisgKiBAY2Q6IGFkZHJlc3Mgb2YgY29udHJvbCBkYXRhIGZvciB0aGlzIGRjdyBvciBOVUxMIGlmIG5vbmUgaXMgcmVxdWlyZWQKKyAqIEBjZF9jb3VudDogbnVtYmVyIG9mIGNvbnRyb2wgZGF0YSBieXRlcyBmb3IgdGhpcyBkY3cKKyAqIEBjb3VudDogbnVtYmVyIG9mIGRhdGEgYnl0ZXMgZm9yIHRoaXMgZGN3CisgKgorICogQWRkIGEgbmV3IGRjdyB0byB0aGUgc3BlY2lmaWVkIGl0Y3cgYnkgd3JpdGluZyB0aGUgZGN3IGluZm9ybWF0aW9uIHNwZWNpZmllZAorICogYnkgQGNtZCwgQGZsYWdzLCBAY2QsIEBjZF9jb3VudCBhbmQgQGNvdW50IHRvIHRoZSB0Y2Egb2YgdGhlIHRjY2IuIFJldHVybgorICogYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhZGRlZCBkY3cgb24gc3VjY2VzcyBvciAtJUVOT1NQQyBpZiB0aGUgbmV3IGRjdworICogd291bGQgZXhjZWVkIHRoZSBhdmFpbGFibGUgc3BhY2UuCisgKgorICogTm90ZTogdGhlIHRjYWwgZmllbGQgb2YgdGhlIHRjY2IgaGVhZGVyIHdpbGwgYmUgdXBkYXRlZCB0byByZWZsZWN0IGFkZGVkCisgKiBjb250ZW50LgorICovCitzdHJ1Y3QgZGN3ICppdGN3X2FkZF9kY3coc3RydWN0IGl0Y3cgKml0Y3csIHU4IGNtZCwgdTggZmxhZ3MsIHZvaWQgKmNkLAorCQkJIHU4IGNkX2NvdW50LCB1MzIgY291bnQpCit7CisJcmV0dXJuIHRjY2JfYWRkX2Rjdyh0Y3dfZ2V0X3RjY2IoaXRjdy0+dGN3KSwgVENDQl9NQVhfU0laRSwgY21kLAorCQkJICAgIGZsYWdzLCBjZCwgY2RfY291bnQsIGNvdW50KTsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19hZGRfZGN3KTsKKworLyoqCisgKiBpdGN3X2FkZF90aWRhdyAtIGFkZCBhIHRpZGF3IHRvIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICogQGZsYWdzOiBmbGFncyBmb3IgdGhlIG5ldyB0aWRhdworICogQGFkZHI6IGFkZHJlc3MgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBjb3VudDogY291bnQgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqCisgKiBBZGQgYSBuZXcgdGlkYXcgdG8gdGhlIGlucHV0L291dHB1dCBkYXRhIHRpZGF3LWxpc3Qgb2YgdGhlIHNwZWNpZmllZCBpdGN3CisgKiAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgci1mbGFnIGFuZCB3LWZsYWcpLiBSZXR1cm4gYSBwb2ludGVyIHRvCisgKiB0aGUgbmV3IHRpZGF3IG9uIHN1Y2Nlc3Mgb3IgLSVFTk9TUEMgaWYgdGhlIG5ldyB0aWRhdyB3b3VsZCBleGNlZWQgdGhlCisgKiBhdmFpbGFibGUgc3BhY2UuCisgKgorICogTm90ZTogdGhlIHRpZGF3LWxpc3QgaXMgYXNzdW1lZCB0byBiZSBjb250aWd1b3VzIHdpdGggbm8gdHRpY3MuIFRoZQorICogbGFzdC10aWRhdyBmbGFnIGZvciB0aGUgbGFzdCB0aWRhdyBpbiB0aGUgbGlzdCB3aWxsIGJlIHNldCBieSBpdGN3X2ZpbmFsaXplLgorICovCitzdHJ1Y3QgdGlkYXcgKml0Y3dfYWRkX3RpZGF3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBmbGFncywgdm9pZCAqYWRkciwgdTMyIGNvdW50KQoreworCWlmIChpdGN3LT5udW1fdGlkYXdzID49IGl0Y3ctPm1heF90aWRhd3MpCisJCXJldHVybiBFUlJfUFRSKC1FTk9TUEMpOworCXJldHVybiB0Y3dfYWRkX3RpZGF3KGl0Y3ctPnRjdywgaXRjdy0+bnVtX3RpZGF3cysrLCBmbGFncywgYWRkciwgY291bnQpOworfQorRVhQT1JUX1NZTUJPTChpdGN3X2FkZF90aWRhdyk7CisKKy8qKgorICogaXRjd19zZXRfZGF0YSAtIHNldCBkYXRhIGFkZHJlc3MgYW5kIHRpZGEgZmxhZyBvZiB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqIEBhZGRyOiB0aGUgZGF0YSBhZGRyZXNzCisgKiBAdXNlX3RpZGFsOiB6ZXJvIG9mIHRoZSBkYXRhIGFkZHJlc3Mgc3BlY2lmaWVzIGEgY29udGlndW91cyBibG9jayBvZiBkYXRhLAorICogbm9uLXplcm8gaWYgaXQgc3BlY2lmaWVzIGEgbGlzdCBpZiB0aWRhd3MuCisgKgorICogU2V0IHRoZSBpbnB1dC9vdXRwdXQgZGF0YSBhZGRyZXNzIG9mIHRoZSBpdGN3IChkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZQorICogci1mbGFnIGFuZCB3LWZsYWcpLiBJZiBAdXNlX3RpZGFsIGlzIG5vbi16ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB0aWRhIGZsYWcKKyAqIGlzIHNldCBhcyB3ZWxsLgorICovCit2b2lkIGl0Y3dfc2V0X2RhdGEoc3RydWN0IGl0Y3cgKml0Y3csIHZvaWQgKmFkZHIsIGludCB1c2VfdGlkYWwpCit7CisJdGN3X3NldF9kYXRhKGl0Y3ctPnRjdywgYWRkciwgdXNlX3RpZGFsKTsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19zZXRfZGF0YSk7CisKKy8qKgorICogaXRjd19maW5hbGl6ZSAtIGNhbGN1bGF0ZSBsZW5ndGggYW5kIGNvdW50IGZpZWxkcyBvZiB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqCisgKiBDYWxjdWxhdGUgdGN3IGlucHV0LS9vdXRwdXQtY291bnQgYW5kIHRjY2JsIGZpZWxkcyBhbmQgYWRkIGEgdGNhdCB0aGUgdGNjYi4KKyAqIEluIGNhc2UgaW5wdXQtIG9yIG91dHB1dC10aWRhIGlzIHVzZWQsIHRoZSB0aWRhdy1saXN0IG11c3QgYmUgc3RvcmVkIGluCisgKiBjb250aW51b3VzIHN0b3JhZ2UgKG5vIHR0aWMpLiBUaGUgdGNhbCBmaWVsZCBpbiB0aGUgdGNjYiBtdXN0IGJlCisgKiB1cC10by1kYXRlLgorICovCit2b2lkIGl0Y3dfZmluYWxpemUoc3RydWN0IGl0Y3cgKml0Y3cpCit7CisJdGN3X2ZpbmFsaXplKGl0Y3ctPnRjdywgaXRjdy0+bnVtX3RpZGF3cyk7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfZmluYWxpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9xZGlvLmMgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYwppbmRleCA0NDVjZjM2Li4yYmYzNmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYwpAQCAtMjA4Miw3ICsyMDgyLDYgQEAKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIAl3YWtlX3VwKCZjZGV2LT5wcml2YXRlLT53YWl0X3EpOwogfQogCkBAIC0yMTIxLDYgKzIxMjAsOCBAQAogCQljYXNlIC1FSU86CiAJCQlRRElPX1BSSU5UX0VSUigiaS9vIGVycm9yIG9uIGRldmljZSAlc1xuIiwKIAkJCQkgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCk7CisJCQlxZGlvX3NldF9zdGF0ZShpcnFfcHRyLCBRRElPX0lSUV9TVEFURV9FUlIpOworCQkJd2FrZV91cCgmY2Rldi0+cHJpdmF0ZS0+d2FpdF9xKTsKIAkJCXJldHVybjsKIAkJY2FzZSAtRVRJTUVET1VUOgogCQkJcWRpb190aW1lb3V0X2hhbmRsZXIoY2Rldik7CkBAIC0yMTM5LDggKzIxNDAsOCBAQAogCVFESU9fREJGX1RFWFQ0KDAsIHRyYWNlLCBkYmZfdGV4dCk7CiAjZW5kaWYgLyogQ09ORklHX1FESU9fREVCVUcgKi8KIAotICAgICAgICBjc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLSAgICAgICAgZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAogCXN3aXRjaCAoaXJxX3B0ci0+c3RhdGUpIHsKIAljYXNlIFFESU9fSVJRX1NUQVRFX0lOQUNUSVZFOgpAQCAtMjM1Myw5ICsyMzU0LDYgQEAKIHsKIAljaGFyIGRiZl90ZXh0WzE1XTsKIAotCWlmICghY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCkKLQkJcmV0dXJuIC1FSU87Ci0KIAkvKiBDaGVjayBmb3IgYml0IDQxLiAqLwogCWlmICghY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmFpZikgewogCQlRRElPX1BSSU5UX1dBUk4oIkFkYXB0ZXIgaW50ZXJydXB0aW9uIGZhY2lsaXR5IG5vdCAiIFwKQEAgLTI2NjcsMTIgKzI2NjUsMTIgQEAKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2soY2RldiksIGZsYWdzKTsKIAl9IGVsc2UgaWYgKHJjID09IDApIHsKIAkJcWRpb19zZXRfc3RhdGUoaXJxX3B0ciwgUURJT19JUlFfU1RBVEVfQ0xFQU5VUCk7Ci0JCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgdGltZW91dCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLGZsYWdzKTsKIAotCQl3YWl0X2V2ZW50KGNkZXYtPnByaXZhdGUtPndhaXRfcSwKLQkJCSAgIGlycV9wdHItPnN0YXRlID09IFFESU9fSVJRX1NUQVRFX0lOQUNUSVZFIHx8Ci0JCQkgICBpcnFfcHRyLT5zdGF0ZSA9PSBRRElPX0lSUV9TVEFURV9FUlIpOworCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChjZGV2LT5wcml2YXRlLT53YWl0X3EsCisJCQlpcnFfcHRyLT5zdGF0ZSA9PSBRRElPX0lSUV9TVEFURV9JTkFDVElWRSB8fAorCQkJaXJxX3B0ci0+c3RhdGUgPT0gUURJT19JUlFfU1RBVEVfRVJSLAorCQkJdGltZW91dCk7CiAJfSBlbHNlIHsKIAkJUURJT19QUklOVF9JTkZPKCJjY3dfZGV2aWNlX3toYWx0LGNsZWFyfSByZXR1cm5lZCAlZCBmb3IgIgogCQkJCSJkZXZpY2UgJXNcbiIsIHJlc3VsdCwgY2Rldi0+ZGV2LmJ1c19pZCk7CkBAIC0yNjkyLDcgKzI2OTAsNiBAQAogCiAJLyogSWdub3JlIGVycm9ycy4gKi8KIAlxZGlvX3NldF9zdGF0ZShpcnFfcHRyLCBRRElPX0lSUV9TVEFURV9JTkFDVElWRSk7Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIG91dDoKIAl1cCgmaXJxX3B0ci0+c2V0dGluZ191cF9zZW1hKTsKIAlyZXR1cm4gcmVzdWx0OwpAQCAtMjkwNywxMyArMjkwNCwxMCBAQAogCVFESU9fREJGX1RFWFQwKDAsc2V0dXAsZGJmX3RleHQpOwogCVFESU9fREJGX1RFWFQwKDAsdHJhY2UsZGJmX3RleHQpOwogCi0JaWYgKHFkaW9fZXN0YWJsaXNoX2lycV9jaGVja19mb3JfZXJyb3JzKGNkZXYsIGNzdGF0LCBkc3RhdCkpIHsKLQkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKKwlpZiAocWRpb19lc3RhYmxpc2hfaXJxX2NoZWNrX2Zvcl9lcnJvcnMoY2RldiwgY3N0YXQsIGRzdGF0KSkKIAkJcmV0dXJuOwotCX0KIAogCXFkaW9fc2V0X3N0YXRlKGlycV9wdHIsUURJT19JUlFfU1RBVEVfRVNUQUJMSVNIRUQpOwotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CiB9CiAKIGludApAQCAtMzE5Niw4ICszMTkwLDYgQEAKIAkJCQlpcnFfcHRyLT5zY2hpZC5zc2lkLCBpcnFfcHRyLT5zY2hpZC5zY2hfbm8sCiAJCQkJcmVzdWx0LCByZXN1bHQyKTsKIAkJcmVzdWx0PXJlc3VsdDI7Ci0JCWlmIChyZXN1bHQpCi0JCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwogCX0KIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLHNhdmVmbGFncyk7CkBAIC0zMjc5LDcgKzMyNzEsNiBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLHNhdmVmbGFncyk7CiAKLQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwogCWNjd19kZXZpY2Vfc2V0X29wdGlvbnMoY2RldiwgQ0NXREVWX1JFUE9SVF9BTEwpOwogCXJlc3VsdD1jY3dfZGV2aWNlX3N0YXJ0KGNkZXYsJmlycV9wdHItPmNjdyxRRElPX0RPSU5HX0FDVElWQVRFLAogCQkJCTAsIERPSU9fREVOWV9QUkVGRVRDSCk7CkBAIC0zNzIyLDcgKzM3MTMsOCBAQAogCWNoYXIgZGJmX3RleHRbMjBdOwogCiAJdGlxZGlvX2luZCA9Ci0JCXMzOTBfcmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQoJnRpcWRpb190aGluaW50X2hhbmRsZXIsIE5VTEwpOworCQlzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KCZ0aXFkaW9fdGhpbmludF9oYW5kbGVyLCBOVUxMLAorCQkJCQkJVElRRElPX1RISU5JTlRfSVNDKTsKIAlpZiAoSVNfRVJSKHRpcWRpb19pbmQpKSB7CiAJCXNwcmludGYoZGJmX3RleHQsICJyZWd0aG4lbHgiLCBQVFJfRVJSKHRpcWRpb19pbmQpKTsKIAkJUURJT19EQkZfVEVYVDAoMCxzZXR1cCxkYmZfdGV4dCk7CkBAIC0zNzM4LDcgKzM3MzAsOCBAQAogdGlxZGlvX3VucmVnaXN0ZXJfdGhpbmludHModm9pZCkKIHsKIAlpZiAodGlxZGlvX2luZCkKLQkJczM5MF91bnJlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KHRpcWRpb19pbmQpOworCQlzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodGlxZGlvX2luZCwKKwkJCQkJCSAgVElRRElPX1RISU5JTlRfSVNDKTsKIH0KIAogc3RhdGljIGludApAQCAtMzg5OSw2ICszODkyLDcgQEAKIAkJCQkJICAgIHFkaW9fbWVtcG9vbF9hbGxvYywKIAkJCQkJICAgIHFkaW9fbWVtcG9vbF9mcmVlLCBOVUxMKTsKIAorCWlzY19yZWdpc3RlcihRRElPX0FJUlFfSVNDKTsKIAlpZiAodGlxZGlvX2NoZWNrX2Noc2NfYXZhaWxhYmlsaXR5KCkpCiAJCVFESU9fUFJJTlRfRVJSKCJOb3QgYWxsIENIU0NzIHN1cHBvcnRlZC4gQ29udGludWluZy5cbiIpOwogCkBAIC0zOTExLDYgKzM5MDUsNyBAQAogY2xlYW51cF9RRElPKHZvaWQpCiB7CiAJdGlxZGlvX3VucmVnaXN0ZXJfdGhpbmludHMoKTsKKwlpc2NfdW5yZWdpc3RlcihRRElPX0FJUlFfSVNDKTsKIAlxZGlvX3JlbW92ZV9wcm9jZnNfZW50cnkoKTsKIAlxZGlvX3JlbGVhc2VfcWRpb19tZW1vcnkoKTsKIAlxZGlvX3VucmVnaXN0ZXJfZGJmX3ZpZXdzKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uaCBiL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCmluZGV4IGMzZGY2YjIuLjc2NTYwODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCkBAIC0yLDggKzIsOCBAQAogI2RlZmluZSBfQ0lPX1FESU9fSAogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLQotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL2lzYy5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAjaWZkZWYgQ09ORklHX1FESU9fREVCVUcKICNkZWZpbmUgUURJT19WRVJCT1NFX0xFVkVMIDkKQEAgLTI2LDcgKzI2LDcgQEAKICAqLwogI2RlZmluZSBJUURJT19GSUxMX0xFVkVMX1RPX1BPTEwgNAogCi0jZGVmaW5lIFRJUURJT19USElOSU5UX0lTQyAzCisjZGVmaW5lIFRJUURJT19USElOSU5UX0lTQyBRRElPX0FJUlFfSVNDCiAjZGVmaW5lIFRJUURJT19ERUxBWV9UQVJHRVQgMAogI2RlZmluZSBRRElPX0JVU1lfQklUX1BBVElFTkNFIDEwMCAvKiBpbiBtaWNyb3NlY3MgKi8KICNkZWZpbmUgUURJT19CVVNZX0JJVF9HSVZFX1VQIDEwMDAwMDAwIC8qIDEwIHNlY29uZHMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vc2NoaWQuaCBiL2RyaXZlcnMvczM5MC9jaW8vc2NoaWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQzMjhmZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3NjaGlkLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0jaWZuZGVmIFMzOTBfU0NISURfSAotI2RlZmluZSBTMzkwX1NDSElEX0gKLQotc3RydWN0IHN1YmNoYW5uZWxfaWQgewotCV9fdTMyIHJlc2VydmVkOjEzOwotCV9fdTMyIHNzaWQ6MjsKLQlfX3UzMiBvbmU6MTsKLQlfX3UzMiBzY2hfbm86MTY7Ci19IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwotCi0KLS8qIEhlbHBlciBmdW5jdGlvbiBmb3Igc2FuZSBzdGF0ZSBvZiBwcmUtYWxsb2NhdGVkIHN1YmNoYW5uZWxfaWQuICovCi1zdGF0aWMgaW5saW5lIHZvaWQKLWluaXRfc3ViY2hhbm5lbF9pZChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQpCi17Ci0JbWVtc2V0KHNjaGlkLCAwLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKLQlzY2hpZC0+b25lID0gMTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQKLXNjaGlkX2VxdWFsKHN0cnVjdCBzdWJjaGFubmVsX2lkICpzY2hpZDEsIHN0cnVjdCBzdWJjaGFubmVsX2lkICpzY2hpZDIpCi17Ci0JcmV0dXJuICFtZW1jbXAoc2NoaWQxLCBzY2hpZDIsIHNpemVvZihzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCkpOwotfQotCi0jZW5kaWYgLyogUzM5MF9TQ0hJRF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL3Njc3cuYyBiL2RyaXZlcnMvczM5MC9jaW8vc2Nzdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZGEyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL3Njc3cuYwpAQCAtMCwwICsxLDg0MyBAQAorLyoKKyAqICBIZWxwZXIgZnVuY3Rpb25zIGZvciBzY3N3IGFjY2Vzcy4KKyAqCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogUGV0ZXIgT2JlcnBhcmxlaXRlciA8cGV0ZXIub2JlcnBhcmxlaXRlckBkZS5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlICJjc3MuaCIKKyNpbmNsdWRlICJjaHNjLmgiCisKKy8qKgorICogc2Nzd19pc190bSAtIGNoZWNrIGZvciB0cmFuc3BvcnQgbW9kZSBzY3N3CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyBhIHRyYW5zcG9ydCBtb2RlIHNjc3csIHplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfaXNfdG0odW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmZjeCAmJiAoc2Nzdy0+dG0ueCA9PSAxKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc190bSk7CisKKy8qKgorICogc2Nzd19rZXkgLSByZXR1cm4gc2NzdyBrZXkgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBrZXkgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2tleSh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0ua2V5OworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5rZXk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfa2V5KTsKKworLyoqCisgKiBzY3N3X2Vzd2YgLSByZXR1cm4gc2NzdyBlc3dmIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uZXN3ZjsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZXN3ZjsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19lc3dmKTsKKworLyoqCisgKiBzY3N3X2NjIC0gcmV0dXJuIHNjc3cgY2MgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmNjOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5jYzsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jYyk7CisKKy8qKgorICogc2Nzd19lY3RsIC0gcmV0dXJuIHNjc3cgZWN0bCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmVjdGw7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmVjdGw7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZWN0bCk7CisKKy8qKgorICogc2Nzd19wbm8gLSByZXR1cm4gc2NzdyBwbm8gZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwbm8gZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X3Bubyh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0ucG5vOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5wbm87Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfcG5vKTsKKworLyoqCisgKiBzY3N3X2ZjdGwgLSByZXR1cm4gc2NzdyBmY3RsIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZmN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uZmN0bDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZmN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19mY3RsKTsKKworLyoqCisgKiBzY3N3X2FjdGwgLSByZXR1cm4gc2NzdyBhY3RsIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgYWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfYWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uYWN0bDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuYWN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19hY3RsKTsKKworLyoqCisgKiBzY3N3X3N0Y3RsIC0gcmV0dXJuIHNjc3cgc3RjdGwgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLnN0Y3RsOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5zdGN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19zdGN0bCk7CisKKy8qKgorICogc2Nzd19kc3RhdCAtIHJldHVybiBzY3N3IGRzdGF0IGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZHN0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3LT50bS5kc3RhdDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZHN0YXQ7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZHN0YXQpOworCisvKioKKyAqIHNjc3dfY3N0YXQgLSByZXR1cm4gc2NzdyBjc3RhdCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uY3N0YXQ7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmNzdGF0OworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NzdGF0KTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9rZXkgLSBjaGVjayBrZXkgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGtleSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9rZXkodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9rZXkpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX3NjdGwgLSBjaGVjayBmY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBmY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9zY3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9lc3dmKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZXN3Zik7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfY2MgLSBjaGVjayBjYyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY2MgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJICAgICAgIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfY2MpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCAtIGNoZWNrIGZtdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZm10IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfcGZjaCAtIGNoZWNrIHBmY2ggZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHBmY2ggZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfcGZjaCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3BmY2gpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2lzaWMgLSBjaGVjayBpc2ljIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBpc2ljIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2lzaWModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9pc2ljKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9hbGNjIC0gY2hlY2sgYWxjYyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgYWxjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9hbGNjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfYWxjYyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfc3NpIC0gY2hlY2sgc3NpIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzc2kgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfc3NpKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfc3NpKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF96Y2MgLSBjaGVjayB6Y2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHpjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF96Y2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJICAgICAgIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3pjYyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCAtIGNoZWNrIGVjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgIShzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfcG5vIC0gY2hlY2sgcG5vIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBwbm8gZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAhPSAwKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKCEoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8CisJCSAoKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSAmJgorCQkgIChzY3N3LT5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3Bubyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCAtIGNoZWNrIGZjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2ZjdGwpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2FjdGwgLSBjaGVjayBhY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBhY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2FjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9hY3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9zdGN0bCAtIGNoZWNrIHN0Y3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9zdGN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9kc3RhdCAtIGNoZWNrIGRzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBkc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5jYyAhPSAzKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZHN0YXQpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0IC0gY2hlY2sgY3N0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLmNjICE9IDMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9rZXkgLSBjaGVjayBrZXkgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGtleSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2tleSk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9lc3dmKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2NjIC0gY2hlY2sgY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNjIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9jYyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9jYyk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mbXQgLSBjaGVjayBmbXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZtdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZm10KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZm10KTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX3ggLSBjaGVjayB4IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSB4IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF94KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfeCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9xIC0gY2hlY2sgcSBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgcSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfcSh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3EpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZWN0bCAtIGNoZWNrIGVjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgIShzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9wbm8gLSBjaGVjayBwbm8gZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHBubyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5mY3RsICE9IDApICYmCisJICAgICAgIChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgICghKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8CisJCSAoKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpICYmCisJCSAgKHNjc3ctPnRtLmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3Bubyk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mY3RsIC0gY2hlY2sgZmN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZmN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZmN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9hY3RsIC0gY2hlY2sgYWN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgYWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfYWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfYWN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9zdGN0bCAtIGNoZWNrIHN0Y3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3N0Y3RsKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2RzdGF0IC0gY2hlY2sgZHN0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGRzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uY2MgIT0gMyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZHN0YXQpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfY3N0YXQgLSBjaGVjayBjc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY3N0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgIChzY3N3LT50bS5jYyAhPSAzKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mY3hzIC0gY2hlY2sgZmN4cyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZmN4cyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN4cyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2ZjeHMpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfc2NoeHMgLSBjaGVjayBzY2h4cyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc2NoeHMgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5jc3RhdCAmIChTQ0hOX1NUQVRfUFJPR19DSEVDSyB8CisJCQkJICBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCQkJICBTQ0hOX1NUQVRfUFJPVF9DSEVDSyB8CisJCQkJICBTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfc2NoeHMpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfYWN0bCAtIGNoZWNrIGFjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGFjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2FjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfYWN0bChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9hY3RsKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2NjIC0gY2hlY2sgY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNjIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfY2Moc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfY2Moc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfY2MpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfY3N0YXQgLSBjaGVjayBjc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY3N0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9jc3RhdChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9jc3RhdChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9kc3RhdCAtIGNoZWNrIGRzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBkc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2RzdGF0KHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2RzdGF0KTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2VjdGwgLSBjaGVjayBlY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBlY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9lY3RsKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2VjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfZXN3ZihzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9lc3dmKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2Vzd2YpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfZmN0bCAtIGNoZWNrIGZjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9mY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfZmN0bChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9mY3RsKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2tleSAtIGNoZWNrIGtleSBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUga2V5IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2tleShzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9rZXkoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfa2V5KTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX3BubyAtIGNoZWNrIHBubyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgcG5vIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX3BubyhzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9wbm8oc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfcG5vKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX3N0Y3RsIC0gY2hlY2sgc3RjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHN0Y3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfc3RjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfc3RjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfc3RjdGwpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3NvbGljaXRlZCAtIGNoZWNrIGZvciBzb2xpY2l0ZWQgc2NzdworICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY29tbWFuZCBtb2RlIHNjc3cgaW5kaWNhdGVzIHRoYXQgdGhlIGFzc29jaWF0ZWQKKyAqIHN0YXR1cyBjb25kaXRpb24gaXMgc29saWNpdGVkLCB6ZXJvIGlmIGl0IGlzIHVuc29saWNpdGVkLgorICovCitpbnQgc2Nzd19jbWRfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuY2MgIT0gMCkgfHwgKHNjc3ctPmNtZC5zdGN0bCAhPQorCQkoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3NvbGljaXRlZCk7CisKKy8qKgorICogc2Nzd190bV9pc19zb2xpY2l0ZWQgLSBjaGVjayBmb3Igc29saWNpdGVkIHNjc3cKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHRyYW5zcG9ydCBtb2RlIHNjc3cgaW5kaWNhdGVzIHRoYXQgdGhlIGFzc29jaWF0ZWQKKyAqIHN0YXR1cyBjb25kaXRpb24gaXMgc29saWNpdGVkLCB6ZXJvIGlmIGl0IGlzIHVuc29saWNpdGVkLgorICovCitpbnQgc2Nzd190bV9pc19zb2xpY2l0ZWQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLmNjICE9IDApIHx8IChzY3N3LT50bS5zdGN0bCAhPQorCQkoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfc29saWNpdGVkKTsKKworLyoqCisgKiBzY3N3X2lzX3NvbGljaXRlZCAtIGNoZWNrIGZvciBzb2xpY2l0ZWQgc2NzdworICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgdHJhbnNwb3J0IG9yIGNvbW1hbmQgbW9kZSBzY3N3IGluZGljYXRlcyB0aGF0IHRoZQorICogYXNzb2NpYXRlZCBzdGF0dXMgY29uZGl0aW9uIGlzIHNvbGljaXRlZCwgemVybyBpZiBpdCBpcyB1bnNvbGljaXRlZC4KKyAqLworaW50IHNjc3dfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3NvbGljaXRlZChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc19zb2xpY2l0ZWQoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfc29saWNpdGVkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5jCmluZGV4IGExYWIzZTMuLjYyYjZiNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuYwpAQCAtMzQsMTMgKzM0LDE1IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxhc20vczM5MF9yZGV2Lmg+CiAjaW5jbHVkZSA8YXNtL3Jlc2V0Lmg+CisjaW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAKICNpbmNsdWRlICJhcF9idXMuaCIKIAogLyogU29tZSBwcm90b3R5cGVzLiAqLwogc3RhdGljIHZvaWQgYXBfc2Nhbl9idXMoc3RydWN0IHdvcmtfc3RydWN0ICopOwogc3RhdGljIHZvaWQgYXBfcG9sbF9hbGwodW5zaWduZWQgbG9uZyk7Ci1zdGF0aWMgdm9pZCBhcF9wb2xsX3RpbWVvdXQodW5zaWduZWQgbG9uZyk7CitzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgYXBfcG9sbF90aW1lb3V0KHN0cnVjdCBocnRpbWVyICopOwogc3RhdGljIGludCBhcF9wb2xsX3RocmVhZF9zdGFydCh2b2lkKTsKIHN0YXRpYyB2b2lkIGFwX3BvbGxfdGhyZWFkX3N0b3Aodm9pZCk7CiBzdGF0aWMgdm9pZCBhcF9yZXF1ZXN0X3RpbWVvdXQodW5zaWduZWQgbG9uZyk7CkBAIC04MCwxMiArODIsMTUgQEAKIC8qCiAgKiBUYXNrbGV0ICYgdGltZXIgZm9yIEFQIHJlcXVlc3QgcG9sbGluZy4KICAqLwotc3RhdGljIHN0cnVjdCB0aW1lcl9saXN0IGFwX3BvbGxfdGltZXIgPSBUSU1FUl9JTklUSUFMSVpFUihhcF9wb2xsX3RpbWVvdXQsMCwwKTsKIHN0YXRpYyBERUNMQVJFX1RBU0tMRVQoYXBfdGFza2xldCwgYXBfcG9sbF9hbGwsIDApOwogc3RhdGljIGF0b21pY190IGFwX3BvbGxfcmVxdWVzdHMgPSBBVE9NSUNfSU5JVCgwKTsKIHN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChhcF9wb2xsX3dhaXQpOwogc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqYXBfcG9sbF9rdGhyZWFkID0gTlVMTDsKIHN0YXRpYyBERUZJTkVfTVVURVgoYXBfcG9sbF90aHJlYWRfbXV0ZXgpOworc3RhdGljIHN0cnVjdCBocnRpbWVyIGFwX3BvbGxfdGltZXI7CisvKiBJbiBMUEFSIHBvbGwgd2l0aCA0a0h6IGZyZXF1ZW5jeS4gUG9sbCBldmVyeSAyNTAwMDAgbmFub3NlY29uZHMuCisgKiBJZiB6L1ZNIGNoYW5nZSB0byAxNTAwMDAwIG5hbm9zZWNvbmRzIHRvIGFkanVzdCB0byB6L1ZNIHBvbGxpbmcuKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcG9sbF90aW1lb3V0ID0gMjUwMDAwOwogCiAvKioKICAqIGFwX2ludHJ1Y3Rpb25zX2F2YWlsYWJsZSgpIC0gVGVzdCBpZiBBUCBpbnN0cnVjdGlvbnMgYXJlIGF2YWlsYWJsZS4KQEAgLTYzNiwxMSArNjQxLDM5IEBACiAKIHN0YXRpYyBCVVNfQVRUUihwb2xsX3RocmVhZCwgMDY0NCwgYXBfcG9sbF90aHJlYWRfc2hvdywgYXBfcG9sbF90aHJlYWRfc3RvcmUpOwogCitzdGF0aWMgc3NpemVfdCBwb2xsX3RpbWVvdXRfc2hvdyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY2hhciAqYnVmKQoreworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVsbHVcbiIsIHBvbGxfdGltZW91dCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHBvbGxfdGltZW91dF9zdG9yZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY29uc3QgY2hhciAqYnVmLAorCQkJCSAgc2l6ZV90IGNvdW50KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0aW1lOworCWt0aW1lX3QgaHJfdGltZTsKKworCS8qIDEyMCBzZWNvbmRzID0gbWF4aW11bSBwb2xsIGludGVydmFsICovCisJaWYgKHNzY2FuZihidWYsICIlbGx1XG4iLCAmdGltZSkgIT0gMSB8fCB0aW1lIDwgMSB8fCB0aW1lID4gMTIwMDAwMDAwMDAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlwb2xsX3RpbWVvdXQgPSB0aW1lOworCWhyX3RpbWUgPSBrdGltZV9zZXQoMCwgcG9sbF90aW1lb3V0KTsKKworCWlmICghaHJ0aW1lcl9pc19xdWV1ZWQoJmFwX3BvbGxfdGltZXIpIHx8CisJICAgICFocnRpbWVyX2ZvcndhcmQoJmFwX3BvbGxfdGltZXIsIGFwX3BvbGxfdGltZXIuZXhwaXJlcywgaHJfdGltZSkpIHsKKwkJYXBfcG9sbF90aW1lci5leHBpcmVzID0gaHJfdGltZTsKKwkJaHJ0aW1lcl9zdGFydCgmYXBfcG9sbF90aW1lciwgaHJfdGltZSwgSFJUSU1FUl9NT0RFX0FCUyk7CisJfQorCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIEJVU19BVFRSKHBvbGxfdGltZW91dCwgMDY0NCwgcG9sbF90aW1lb3V0X3Nob3csIHBvbGxfdGltZW91dF9zdG9yZSk7CisKIHN0YXRpYyBzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSAqY29uc3QgYXBfYnVzX2F0dHJzW10gPSB7CiAJJmJ1c19hdHRyX2FwX2RvbWFpbiwKIAkmYnVzX2F0dHJfY29uZmlnX3RpbWUsCiAJJmJ1c19hdHRyX3BvbGxfdGhyZWFkLAotCU5VTEwKKwkmYnVzX2F0dHJfcG9sbF90aW1lb3V0LAorCU5VTEwsCiB9OwogCiAvKioKQEAgLTg5NSw5ICs5MjgsMTAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGFwX3NjaGVkdWxlX3BvbGxfdGltZXIodm9pZCkKIHsKLQlpZiAodGltZXJfcGVuZGluZygmYXBfcG9sbF90aW1lcikpCisJaWYgKGhydGltZXJfaXNfcXVldWVkKCZhcF9wb2xsX3RpbWVyKSkKIAkJcmV0dXJuOwotCW1vZF90aW1lcigmYXBfcG9sbF90aW1lciwgamlmZmllcyArIEFQX1BPTExfVElNRSk7CisJaHJ0aW1lcl9zdGFydCgmYXBfcG9sbF90aW1lciwga3RpbWVfc2V0KDAsIHBvbGxfdGltZW91dCksCisJCSAgICAgIEhSVElNRVJfTU9ERV9BQlMpOwogfQogCiAvKioKQEAgLTExMTUsMTMgKzExNDksMTQgQEAKIAogLyoqCiAgKiBhcF9wb2xsX3RpbWVvdXQoKTogQVAgcmVjZWl2ZSBwb2xsaW5nIGZvciBmaW5pc2hlZCBBUCByZXF1ZXN0cy4KLSAqIEB1bnVzZWQ6IFVudXNlZCB2YXJpYWJsZS4KKyAqIEB1bnVzZWQ6IFVudXNlZCBwb2ludGVyLgogICoKLSAqIFNjaGVkdWxlcyB0aGUgQVAgdGFza2xldC4KKyAqIFNjaGVkdWxlcyB0aGUgQVAgdGFza2xldCB1c2luZyBhIGhpZ2ggcmVzb2x1dGlvbiB0aW1lci4KICAqLwotc3RhdGljIHZvaWQgYXBfcG9sbF90aW1lb3V0KHVuc2lnbmVkIGxvbmcgdW51c2VkKQorc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGFwX3BvbGxfdGltZW91dChzdHJ1Y3QgaHJ0aW1lciAqdW51c2VkKQogewogCXRhc2tsZXRfc2NoZWR1bGUoJmFwX3Rhc2tsZXQpOworCXJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsKIH0KIAogLyoqCkBAIC0xMzQ0LDYgKzEzNzksMTQgQEAKIAlhcF9jb25maWdfdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBhcF9jb25maWdfdGltZSAqIEhaOwogCWFkZF90aW1lcigmYXBfY29uZmlnX3RpbWVyKTsKIAorCS8qIFNldHVwIHRoZSBoaWdoIHJlc3VsdGlvbiBwb2xsIHRpbWVyLgorCSAqIElmIHdlIGFyZSBydW5uaW5nIHVuZGVyIHovVk0gYWRqdXN0IHBvbGxpbmcgdG8gei9WTSBwb2xsaW5nIHJhdGUuCisJICovCisJaWYgKE1BQ0hJTkVfSVNfVk0pCisJCXBvbGxfdGltZW91dCA9IDE1MDAwMDA7CisJaHJ0aW1lcl9pbml0KCZhcF9wb2xsX3RpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9BQlMpOworCWFwX3BvbGxfdGltZXIuZnVuY3Rpb24gPSBhcF9wb2xsX3RpbWVvdXQ7CisKIAkvKiBTdGFydCB0aGUgbG93IHByaW9yaXR5IEFQIGJ1cyBwb2xsIHRocmVhZC4gKi8KIAlpZiAoYXBfdGhyZWFkX2ZsYWcpIHsKIAkJcmMgPSBhcF9wb2xsX3RocmVhZF9zdGFydCgpOwpAQCAtMTM1NSw3ICsxMzk4LDcgQEAKIAogb3V0X3dvcms6CiAJZGVsX3RpbWVyX3N5bmMoJmFwX2NvbmZpZ190aW1lcik7Ci0JZGVsX3RpbWVyX3N5bmMoJmFwX3BvbGxfdGltZXIpOworCWhydGltZXJfY2FuY2VsKCZhcF9wb2xsX3RpbWVyKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShhcF93b3JrX3F1ZXVlKTsKIG91dF9yb290OgogCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihhcF9yb290X2RldmljZSk7CkBAIC0xMzg2LDcgKzE0MjksNyBAQAogCWFwX3Jlc2V0X2RvbWFpbigpOwogCWFwX3BvbGxfdGhyZWFkX3N0b3AoKTsKIAlkZWxfdGltZXJfc3luYygmYXBfY29uZmlnX3RpbWVyKTsKLQlkZWxfdGltZXJfc3luYygmYXBfcG9sbF90aW1lcik7CisJaHJ0aW1lcl9jYW5jZWwoJmFwX3BvbGxfdGltZXIpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGFwX3dvcmtfcXVldWUpOwogCXRhc2tsZXRfa2lsbCgmYXBfdGFza2xldCk7CiAJczM5MF9yb290X2Rldl91bnJlZ2lzdGVyKGFwX3Jvb3RfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmggYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5oCmluZGV4IGMxZTEyMDAuLjQ0NjM3OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuaApAQCAtOTIsNiArOTIsOCBAQAogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9QQ0lYQ0MJNQogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9DRVgyQQk2CiAjZGVmaW5lIEFQX0RFVklDRV9UWVBFX0NFWDJDCTcKKyNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYMkEyCTgKKyNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYMkMyCTkKIAogLyoKICAqIEFQIHJlc2V0IGZsYWcgc3RhdGVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCmluZGV4IDRkMzZlODAuLmNiMjJiOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9od19yYW5kb20uaD4KQEAgLTMwMCw3ICszMDEsOSBAQAogICovCiBzdGF0aWMgaW50IHpjcnlwdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWxvY2tfa2VybmVsKCk7CiAJYXRvbWljX2luYygmemNyeXB0X29wZW5fY291bnQpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTA2OCwxMCArMTA3MSw4IEBACiAKICNkZWZpbmUgTEJVRlNJWkUgMTIwMFVMCiAJbGJ1ZiA9IGttYWxsb2MoTEJVRlNJWkUsIEdGUF9LRVJORUwpOwotCWlmICghbGJ1ZikgewotCQlQUklOVEsoImttYWxsb2MgZmFpbGVkIVxuIik7CisJaWYgKCFsYnVmKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlsb2NhbF9jb3VudCA9IG1pbihMQlVGU0laRSAtIDEsIGNvdW50KTsKIAlpZiAoY29weV9mcm9tX3VzZXIobGJ1ZiwgYnVmZmVyLCBsb2NhbF9jb3VudCkgIT0gMCkgewpAQCAtMTA4MSwyMyArMTA4MiwxNSBAQAogCWxidWZbbG9jYWxfY291bnRdID0gJ1wwJzsKIAogCXB0ciA9IHN0cnN0cihsYnVmLCAiT25saW5lIGRldmljZXMiKTsKLQlpZiAoIXB0cikgewotCQlQUklOVEsoIlVuYWJsZSB0byBwYXJzZSBkYXRhIChtaXNzaW5nIFwiT25saW5lIGRldmljZXNcIilcbiIpOworCWlmICghcHRyKQogCQlnb3RvIG91dDsKLQl9CiAJcHRyID0gc3Ryc3RyKHB0ciwgIlxuIik7Ci0JaWYgKCFwdHIpIHsKLQkJUFJJTlRLKCJVbmFibGUgdG8gcGFyc2UgZGF0YSAobWlzc2luZyBuZXdsaW5lICIKLQkJICAgICAgICJhZnRlciBcIk9ubGluZSBkZXZpY2VzXCIpXG4iKTsKKwlpZiAoIXB0cikKIAkJZ290byBvdXQ7Ci0JfQogCXB0cisrOwogCi0JaWYgKHN0cnN0cihwdHIsICJXYWl0aW5nIHdvcmsgZWxlbWVudCBjb3VudHMiKSA9PSBOVUxMKSB7Ci0JCVBSSU5USygiVW5hYmxlIHRvIHBhcnNlIGRhdGEgKG1pc3NpbmcgIgotCQkgICAgICAgIlwiV2FpdGluZyB3b3JrIGVsZW1lbnQgY291bnRzXCIpXG4iKTsKKwlpZiAoc3Ryc3RyKHB0ciwgIldhaXRpbmcgd29yayBlbGVtZW50IGNvdW50cyIpID09IE5VTEwpCiAJCWdvdG8gb3V0OwotCX0KIAogCWZvciAoaiA9IDA7IGogPCA2NCAmJiAqcHRyOyBwdHIrKykgewogCQkvKgpAQCAtMTE5NywxNiArMTE5MCwxMiBAQAogCiAJLyogUmVnaXN0ZXIgdGhlIHJlcXVlc3Qgc3ByYXllci4gKi8KIAlyYyA9IG1pc2NfcmVnaXN0ZXIoJnpjcnlwdF9taXNjX2RldmljZSk7Ci0JaWYgKHJjIDwgMCkgewotCQlQUklOVEtXKEtFUk5fRVJSICJtaXNjX3JlZ2lzdGVyIChtaW5vciAlZCkgZmFpbGVkIHdpdGggJWRcbiIsCi0JCQl6Y3J5cHRfbWlzY19kZXZpY2UubWlub3IsIHJjKTsKKwlpZiAocmMgPCAwKQogCQlnb3RvIG91dDsKLQl9CiAKIAkvKiBTZXQgdXAgdGhlIHByb2MgZmlsZSBzeXN0ZW0gKi8KIAl6Y3J5cHRfZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeSgiZHJpdmVyL3o5MGNyeXB0IiwgMDY0NCwgTlVMTCk7CiAJaWYgKCF6Y3J5cHRfZW50cnkpIHsKLQkJUFJJTlRLKCJDb3VsZG4ndCBjcmVhdGUgejkwY3J5cHQgcHJvYyBlbnRyeVxuIik7CiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBvdXRfbWlzYzsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuaCBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCmluZGV4IDVjNmUyMjIuLjFkMWVjNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCkBAIC0zMCwzNCArMzAsNiBAQAogI2lmbmRlZiBfWkNSWVBUX0FQSV9IXwogI2RlZmluZSBfWkNSWVBUX0FQSV9IXwogCi0vKioKLSAqIE1hY3JvIGRlZmluaXRpb25zCi0gKgotICogUERFQlVHIGRlYnVncyBpbiB0aGUgZm9ybSAiemNyeXB0OiBmdW5jdGlvbl9uYW1lIC0+IG1lc3NhZ2UiCi0gKgotICogUFJJTlRLIGlzIGxpa2UgUERFQlVHLCBleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgZW5hYmxlZAotICogUFJJTlRLTiBpcyBsaWtlIFBSSU5USywgZXhjZXB0IHRoYXQgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgZnVuY3Rpb24gbmFtZQotICogUFJJTlRLVyBpcyBsaWtlIFBSSU5USywgZXhjZXB0IHRoYXQgaXQgdXNlcyBLRVJOX1dBUk5JTkcKLSAqIFBSSU5US0MgaXMgbGlrZSBQUklOVEssIGV4Y2VwdCB0aGF0IGl0IHVzZXMgS0VSTl9DUklUCi0gKi8KLSNkZWZpbmUgREVWX05BTUUJInpjcnlwdCIKLQotI2RlZmluZSBQUklOVEsoZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgREVWX05BTUUgIjogJXMgLT4gIiBmbXQsIF9fZnVuY19fICwgIyMgYXJncykKLSNkZWZpbmUgUFJJTlRLTihmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9ERUJVRyBERVZfTkFNRSAiOiAiIGZtdCwgIyMgYXJncykKLSNkZWZpbmUgUFJJTlRLVyhmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIERFVl9OQU1FICI6ICVzIC0+ICIgZm10LCBfX2Z1bmNfXyAsICMjIGFyZ3MpCi0jZGVmaW5lIFBSSU5US0MoZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fQ1JJVCBERVZfTkFNRSAiOiAlcyAtPiAiIGZtdCwgX19mdW5jX18gLCAjIyBhcmdzKQotCi0jaWZkZWYgWkNSWVBUX0RFQlVHCi0jZGVmaW5lIFBERUJVRyhmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9ERUJVRyBERVZfTkFNRSAiOiAlcyAtPiAiIGZtdCwgX19mdW5jX18gLCAjIyBhcmdzKQotI2Vsc2UKLSNkZWZpbmUgUERFQlVHKGZtdCwgYXJncy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLQogI2luY2x1ZGUgImFwX2J1cy5oIgogI2luY2x1ZGUgPGFzbS96Y3J5cHQuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4MmEuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2NleDJhLmMKaW5kZXggMDg2NTdmNi4uNTRmNGNiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4MmEuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9jZXgyYS5jCkBAIC00OSw2ICs0OSw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9jZXgyYV9pZHNbXSA9IHsKIAl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQSkgfSwKKwl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQTIpIH0sCiAJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAogfTsKIApAQCAtMjQyLDkgKzI0Myw2IEBACiAJCXJldHVybiBjb252ZXJ0X3R5cGU4MCh6ZGV2LCByZXBseSwKIAkJCQkgICAgICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfZXJyb3IuaCBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2Vycm9yLmgKaW5kZXggM2UyN2ZlNy4uMDNiYTI3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfZXJyb3IuaAorKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9lcnJvci5oCkBAIC05MiwxMCArOTIsNiBAQAogewogCXN0cnVjdCBlcnJvcl9oZHIgKmVoZHIgPSByZXBseS0+bWVzc2FnZTsKIAotCVBSSU5USygiSGFyZHdhcmUgZXJyb3IgOiBUeXBlICUwMnggTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCSAgICAgICBlaGRyLT50eXBlLCAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlICsgNCkpOwotCiAJc3dpdGNoIChlaGRyLT5yZXBseV9jb2RlKSB7CiAJY2FzZSBSRVA4Ml9FUlJPUl9PUEVSQU5EX0lOVkFMSUQ6CiAJY2FzZSBSRVA4Ml9FUlJPUl9PUEVSQU5EX1NJWkU6CkBAIC0xMjMsOCArMTE5LDYgQEAKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CiAJZGVmYXVsdDoKLQkJUFJJTlRLVygidW5rbm93biB0eXBlICUwMnggcmVwbHkgY29kZSA9ICVkXG4iLAotCQkJZWhkci0+dHlwZSwgZWhkci0+cmVwbHlfY29kZSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNhLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYS5jCmluZGV4IDZlOTNiNDcuLjEyZGE0ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNhLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2EuYwpAQCAtMjI2LDkgKzIyNiw2IEBACiAJCXJldHVybiBjb252ZXJ0X3R5cGU4NCh6ZGV2LCByZXBseSwKIAkJCQkgICAgICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2MuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNjLmMKaW5kZXggMTdlYTU2Yy4uNzc5OTUyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2MuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYy5jCkBAIC0zNjEsMjYgKzM2MSwxOCBAQAogCXNlcnZpY2VfcmMgPSBsZTE2X3RvX2NwdShtc2ctPmNwcmIuY2NwX3J0Y29kZSk7CiAJaWYgKHVubGlrZWx5KHNlcnZpY2VfcmMgIT0gMCkpIHsKIAkJc2VydmljZV9ycyA9IGxlMTZfdG9fY3B1KG1zZy0+Y3ByYi5jY3BfcnNjb2RlKTsKLQkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY2KSB7Ci0JCQlQREVCVUcoIkJhZCBibG9jayBmb3JtYXQgb24gUENJQ0NcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjUpIHsKLQkJCVBERUJVRygiUHJvYmFibHkgYW4gZXZlbiBtb2R1bHVzIG9uIFBDSUNDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY1KQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KIAkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDc3MCkgewotCQkJUERFQlVHKCJJbnZhbGlkIGtleSBsZW5ndGggb24gUENJQ0NcbiIpOwogCQkJemRldi0+bWF4X21vZF9zaXplID0gUENJQ0NfTUFYX01PRF9TSVpFX09MRDsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3ODMpIHsKLQkJCVBERUJVRygiRXh0ZW5kZWQgYml0bGVuZ3RocyBub3QgZW5hYmxlZCBvbiBQQ0lDQ1xuIik7CiAJCQl6ZGV2LT5tYXhfbW9kX3NpemUgPSBQQ0lDQ19NQVhfTU9EX1NJWkVfT0xEOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KLQkJUFJJTlRLKCJVbmtub3duIHNlcnZpY2UgcmMvcnMgKFBDSUNDKTogJWQvJWRcbiIsCi0JCSAgICAgICBzZXJ2aWNlX3JjLCBzZXJ2aWNlX3JzKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNDM0LDkgKzQyNiw2IEBACiAJCQkJCSAgICAgIG91dHB1dGRhdGEsIG91dHB1dGRhdGFsZW5ndGgpOwogCQkvKiBubyBicmVhaywgaW5jb3JyZWN0IGNwcmIgdmVyc2lvbiBpcyBhbiB1bmtub3duIHJlc3BvbnNlICovCiAJZGVmYXVsdDogLyogVW5rbm93biByZXNwb25zZSB0eXBlLCB0aGlzIHNob3VsZCBORVZFUiBFVkVSIGhhcHBlbiAqLwotCQlQUklOVEsoIlVucmVjb2duaXplZCBNZXNzYWdlIEhlYWRlcjogJTA4eCUwOHhcbiIsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIChyZXBseS0+bWVzc2FnZSs0KSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaXhjYy5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKaW5kZXggMGJjOWIzMS4uZDhhZDM2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKQEAgLTcyLDYgKzcyLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9wY2l4Y2NfaWRzW10gPSB7CiAJeyBBUF9ERVZJQ0UoQVBfREVWSUNFX1RZUEVfUENJWENDKSB9LAogCXsgQVBfREVWSUNFKEFQX0RFVklDRV9UWVBFX0NFWDJDKSB9LAorCXsgQVBfREVWSUNFKEFQX0RFVklDRV9UWVBFX0NFWDJDMikgfSwKIAl7IC8qIGVuZCBvZiBsaXN0ICovIH0sCiB9OwogCkBAIC0yODksMzggKzI5MCwxOSBAQAogCWFwX21zZy0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCB0eXBlNl9oZHIpICsKIAkJQ0VJTDQoeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgpICsKIAkJeGNSQi0+cmVxdWVzdF9kYXRhX2xlbmd0aDsKLQlpZiAoYXBfbXNnLT5sZW5ndGggPiBQQ0lYQ0NfTUFYX1hDUkJfTUVTU0FHRV9TSVpFKSB7Ci0JCVBSSU5USygiQ29tYmluZWQgbWVzc2FnZSBpcyB0b28gbGFyZ2UgKCVsZC8lZC8lZCkuXG4iLAotCQkgICAgc2l6ZW9mKHN0cnVjdCB0eXBlNl9oZHIpLAotCQkgICAgeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgsCi0JCSAgICB4Y1JCLT5yZXF1ZXN0X2RhdGFfbGVuZ3RoKTsKKwlpZiAoYXBfbXNnLT5sZW5ndGggPiBQQ0lYQ0NfTUFYX1hDUkJfTUVTU0FHRV9TSVpFKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0JaWYgKENFSUw0KHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCkgPgotCSAgICBQQ0lYQ0NfTUFYX1hDUkJfUkVQTFlfU0laRSkgewotCQlQREVCVUcoIlJlcGx5IENQUkIgbGVuZ3RoIGlzIHRvbyBsYXJnZSAoJWQpLlxuIiwKLQkJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKTsKKwlpZiAoQ0VJTDQoeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9SRVBMWV9TSVpFKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0JaWYgKENFSUw0KHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9EQVRBX1NJWkUpIHsKLQkJUERFQlVHKCJSZXBseSBkYXRhIGJsb2NrIGxlbmd0aCBpcyB0b28gbGFyZ2UgKCVkKS5cbiIsCi0JCSAgICB4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCk7CisJaWYgKENFSUw0KHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9EQVRBX1NJWkUpCiAJCXJldHVybiAtRUZBVUxUOwotCX0KIAlyZXBseWxlbiA9IENFSUw0KHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCkgKwogCQlDRUlMNCh4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCkgKwogCQlzaXplb2Yoc3RydWN0IHR5cGU4Nl9mbXQyX21zZyk7CiAJaWYgKHJlcGx5bGVuID4gUENJWENDX01BWF9YQ1JCX1JFU1BPTlNFX1NJWkUpIHsKLQkJUERFQlVHKCJSZXBseSBDUFJCICsgZGF0YSBibG9jayA+IFBDSVhDQ19NQVhfWENSQl9SRVNQT05TRV9TSVpFIgotCQkgICAgICAgIiAoJWQvJWQvJWQpLlxuIiwKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgdHlwZTg2X2ZtdDJfbXNnKSwKLQkJICAgICAgIHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCwKLQkJICAgICAgIHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKTsKIAkJeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoID0gUENJWENDX01BWF9YQ1JCX1JFU1BPTlNFX1NJWkUgLQogCQkJKHNpemVvZihzdHJ1Y3QgdHlwZTg2X2ZtdDJfbXNnKSArCiAJCQkgICAgQ0VJTDQoeGNSQi0+cmVwbHlfZGF0YV9sZW5ndGgpKTsKLQkJUERFQlVHKCJDYXBwaW5nIFJlcGx5IENQUkIgbGVuZ3RoIGF0ICVkXG4iLAotCQkgICAgICAgeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoKTsKIAl9CiAKIAkvKiBwcmVwYXJlIHR5cGU2IGhlYWRlciAqLwpAQCAtMzM5LDExICszMjEsOCBAQAogCQkgICAgeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlpZiAobXNnLT5jcHJieC5jcHJiX2xlbiArIHNpemVvZihtc2ctPmhkci5mdW5jdGlvbl9jb2RlKSA+Ci0JICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKSB7Ci0JCVBERUJVRygiY3ByYl9sZW4gdG9vIGxhcmdlICglZC8lZClcbiIsIG1zZy0+Y3ByYnguY3ByYl9sZW4sCi0JCSAgICB4Y1JCLT5yZXF1ZXN0X2NvbnRyb2xfYmxrX2xlbmd0aCk7CisJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAJZnVuY3Rpb25fY29kZSA9ICgodW5zaWduZWQgY2hhciAqKSZtc2ctPmNwcmJ4KSArIG1zZy0+Y3ByYnguY3ByYl9sZW47CiAJbWVtY3B5KG1zZy0+aGRyLmZ1bmN0aW9uX2NvZGUsIGZ1bmN0aW9uX2NvZGUsIHNpemVvZihtc2ctPmhkci5mdW5jdGlvbl9jb2RlKSk7CiAKQEAgLTQ3MSwyOSArNDUwLDE4IEBACiAJc2VydmljZV9yYyA9IG1zZy0+Y3ByYnguY2NwX3J0Y29kZTsKIAlpZiAodW5saWtlbHkoc2VydmljZV9yYyAhPSAwKSkgewogCQlzZXJ2aWNlX3JzID0gbXNnLT5jcHJieC5jY3BfcnNjb2RlOwotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpIHsKLQkJCVBERUJVRygiQmFkIGJsb2NrIGZvcm1hdCBvbiBQQ0lYQ0MvQ0VYMkNcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjUpIHsKLQkJCVBERUJVRygiUHJvYmFibHkgYW4gZXZlbiBtb2R1bHVzIG9uIFBDSVhDQy9DRVgyQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA2NSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3NzApIHsKLQkJCVBERUJVRygiSW52YWxpZCBrZXkgbGVuZ3RoIG9uIFBDSVhDQy9DRVgyQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3NzApCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQogCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNzgzKSB7Ci0JCQlQREVCVUcoIkV4dGVuZGVkIGJpdGxlbmd0aHMgbm90IGVuYWJsZWQgb24gUENJWENDL0NFWDJDXG4iKTsKIAkJCXpkZXYtPm1pbl9tb2Rfc2l6ZSA9IFBDSVhDQ19NSU5fTU9EX1NJWkVfT0xEOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KLQkJaWYgKHNlcnZpY2VfcmMgPT0gMTIgJiYgc2VydmljZV9ycyA9PSA3NjkpIHsKLQkJCVBERUJVRygiSW52YWxpZCBrZXkgb24gUENJWENDL0NFWDJDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gMTIgJiYgc2VydmljZV9ycyA9PSA3NjkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlQUklOVEsoIlVua25vd24gc2VydmljZSByYy9ycyAoUENJWENDL0NFWDJDKTogJWQvJWRcbiIsCi0JCSAgICAgICBzZXJ2aWNlX3JjLCBzZXJ2aWNlX3JzKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNTY5LDExICs1MzcsOCBAQAogCX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgKm1zZyA9IHJlcGx5LT5tZXNzYWdlOwogCWNoYXIgKmRhdGEgPSByZXBseS0+bWVzc2FnZTsKIAotCWlmIChtc2ctPmNwcmJ4LmNjcF9ydGNvZGUgIT0gMCB8fCBtc2ctPmNwcmJ4LmNjcF9yc2NvZGUgIT0gMCkgewotCQlQREVCVUcoIlJORyByZXNwb25zZSBlcnJvciBvbiBQQ0lYQ0MvQ0VYMkMgcmM9JWh1L3JzPSVodVxuIiwKLQkJICAgICAgIHJjLCBycyk7CisJaWYgKG1zZy0+Y3ByYnguY2NwX3J0Y29kZSAhPSAwIHx8IG1zZy0+Y3ByYnguY2NwX3JzY29kZSAhPSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJbWVtY3B5KGJ1ZmZlciwgZGF0YSArIG1zZy0+Zm10Mi5vZmZzZXQyLCBtc2ctPmZtdDIuY291bnQyKTsKIAlyZXR1cm4gbXNnLT5mbXQyLmNvdW50MjsKIH0KQEAgLTU5OCw5ICs1NjMsNiBAQAogCQkJCQkJICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CkBAIC02MjcsOSArNTg5LDYgQEAKIAkJCXJldHVybiBjb252ZXJ0X3R5cGU4Nl94Y3JiKHpkZXYsIHJlcGx5LCB4Y1JCKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl4Y1JCLT5zdGF0dXMgPSAweDAwMDgwNDRETDsgLyogSEREX0ludmFsaWRQYXJtICovCiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwpAQCAtNjUzLDkgKzYxMiw2IEBACiAJCQlyZXR1cm4gY29udmVydF90eXBlODZfcm5nKHpkZXYsIHJlcGx5LCBkYXRhKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CkBAIC03MDAsMTAgKzY1Niw3IEBACiAJCQltZW1jcHkobXNnLT5tZXNzYWdlLCByZXBseS0+bWVzc2FnZSwgbGVuZ3RoKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJUFJJTlRLKCJJbnZhbGlkIGludGVybmFsIHJlc3BvbnNlIHR5cGU6ICVpXG4iLAotCQkJICAgIHJlc3BfdHlwZS0+dHlwZSk7Ci0JCQltZW1jcHkobXNnLT5tZXNzYWdlLCAmZXJyb3JfcmVwbHksCi0JCQkgICAgc2l6ZW9mIGVycm9yX3JlcGx5KTsKKwkJCW1lbWNweShtc2ctPm1lc3NhZ2UsICZlcnJvcl9yZXBseSwgc2l6ZW9mIGVycm9yX3JlcGx5KTsKIAkJfQogCX0gZWxzZQogCQltZW1jcHkobXNnLT5tZXNzYWdlLCByZXBseS0+bWVzc2FnZSwgc2l6ZW9mIGVycm9yX3JlcGx5KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jIGIvZHJpdmVycy9zMzkwL25ldC9jbGF3LmMKaW5kZXggMDRhMWQ3Yi4uYzY0NDY2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jbGF3LmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9jbGF3LmMKQEAgLTcwMyw3ICs3MDMsOCBAQAogCWlmICghY2Rldi0+ZGV2LmRyaXZlcl9kYXRhKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fV0FSTklORyAiY2xhdzogdW5zb2xpY2l0ZWQgaW50ZXJydXB0IGZvciBkZXZpY2U6IgogCQkgCSIlcyByZWNlaXZlZCBjLSUwMnggZC0lMDJ4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCxpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5kc3RhdCk7CisJCSAgICAgICBjZGV2LT5kZXYuYnVzX2lkLCBpcmItPnNjc3cuY21kLmNzdGF0LAorCQkgICAgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCk7CiAjaWZkZWYgRlVOQ1RSQUNFCiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiY2xhdzogJXMoKSAiCiAJCQkiZXhpdCBvbiBsaW5lICVkXG4iLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTczMiwyMiArNzMzLDIzIEBACiAjaWZkZWYgSU9UUkFDRQogICAgICAgICBwcmludGsoS0VSTl9JTkZPICIlczogaW50ZXJydXB0IGZvciBkZXZpY2U6ICUwNHggIgogCQkicmVjZWl2ZWQgYy0lMDJ4IGQtJTAyeCBzdGF0ZS0lMDJ4XG4iLAotICAgICAgICAgICAgICAgIGRldi0+bmFtZSwgcF9jaC0+ZGV2bm8sIGlyYi0+c2Nzdy5jc3RhdCwKLQkJaXJiLT5zY3N3LmRzdGF0LCBwX2NoLT5jbGF3X3N0YXRlKTsKKwkgICAgICAgZGV2LT5uYW1lLCBwX2NoLT5kZXZubywgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkgICAgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCwgcF9jaC0+Y2xhd19zdGF0ZSk7CiAjZW5kaWYKIAogCS8qIENvcHkgaW50ZXJydXB0aW9uIHJlc3BvbnNlIGJsb2NrLiAqLwogCW1lbWNweShwX2NoLT5pcmIsIGlyYiwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKIAogICAgICAgICAvKiBDaGVjayBmb3IgZ29vZCBzdWJjaGFubmVsIHJldHVybiBjb2RlLCBvdGhlcndpc2UgZXJyb3IgbWVzc2FnZSAqLwotICAgICAgICBpZiAoaXJiLT5zY3N3LmNzdGF0ICAmJiAgIShpcmItPnNjc3cuY3N0YXQgJiBTQ0hOX1NUQVRfUENJKSkgeworCWlmIChpcmItPnNjc3cuY21kLmNzdGF0ICYmICEoaXJiLT5zY3N3LmNtZC5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IHN1YmNoYW5uZWwgY2hlY2sgZm9yIGRldmljZTogJTA0eCAtIgogCQkJIiBTY2ggU3RhdCAlMDJ4ICBEZXYgU3RhdCAlMDJ4IENQQSAtICUwNHhcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPm5hbWUsIHBfY2gtPmRldm5vLAotCQkJaXJiLT5zY3N3LmNzdGF0LCBpcmItPnNjc3cuZHN0YXQsaXJiLT5zY3N3LmNwYSk7CisJCQlpcmItPnNjc3cuY21kLmNzdGF0LCBpcmItPnNjc3cuY21kLmRzdGF0LAorCQkJaXJiLT5zY3N3LmNtZC5jcGEpOwogI2lmZGVmIElPVFJBQ0UKIAkJZHVtcGl0KChjaGFyICopaXJiLHNpemVvZihzdHJ1Y3QgaXJiKSk7Ci0JCWR1bXBpdCgoY2hhciAqKSh1bnNpZ25lZCBsb25nKWlyYi0+c2Nzdy5jcGEsCisJCWR1bXBpdCgoY2hhciAqKSh1bnNpZ25lZCBsb25nKWlyYi0+c2Nzdy5jbWQuY3BhLAogCQkJc2l6ZW9mKHN0cnVjdCBjY3cxKSk7CiAjZW5kaWYKICNpZmRlZiBGVU5DVFJBQ0UKQEAgLTc1OSwyMiArNzYxLDI0IEBACiAgICAgICAgIH0KIAogICAgICAgICAvKiBDaGVjayB0aGUgcmVhc29uLWNvZGUgb2YgYSB1bml0IGNoZWNrICovCi0gICAgICAgIGlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogICAgICAgICAgICAgICAgIGNjd19jaGVja191bml0X2NoZWNrKHBfY2gsIGlyYi0+ZWN3WzBdKTsKLSAgICAgICAgfQogCiAgICAgICAgIC8qIFN0YXRlIG1hY2hpbmUgdG8gYnJpbmcgdGhlIGNvbm5lY3Rpb24gdXAsIGRvd24gYW5kIHRvIHJlc3RhcnQgKi8KLSAgICAgICAgcF9jaC0+bGFzdF9kc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwlwX2NoLT5sYXN0X2RzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAogICAgICAgICBzd2l0Y2ggKHBfY2gtPmNsYXdfc3RhdGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIENMQVdfU1RPUDovKiBIQUxUX0lPIGJ5IGNsYXdfcmVsZWFzZSAoaGFsdCBzZXF1ZW5jZSkgKi8KICNpZmRlZiBERUJVR01TRwogICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IENMQVdfU1RPUCBlbnRlclxuIiwgZGV2LT5uYW1lKTsKICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKLQkgICAgCQkocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8Ci0JICAgIAkJKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAgCQkoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfCBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CisJCQlpZiAoISgocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCAmCisJCQkgICAgICAgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAorCQkJICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkJU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJCShTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8CisJCQkJIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKICNpZmRlZiBGVU5DVFJBQ0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6JXMgRXhpdCBvbiBsaW5lICVkXG4iLAogCQkJCQlkZXYtPm5hbWUsX19mdW5jX18sX19MSU5FX18pOwpAQCAtNzk4LDEwICs4MDIsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBwcm9jZXNzIENMQVdfU1RBVF9IQUxUX0lPXG4iLAogCQkJCWRldi0+bmFtZSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0KLQkgICAgIAkJKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCQkJICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgIChTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8CisJCQkgICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CiAjaWZkZWYgRlVOQ1RSQUNFCiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6JXMgRXhpdCBvbiBsaW5lICVkXG4iLAogCQkJCQlkZXYtPm5hbWUsX19mdW5jX18sX19MSU5FX18pOwpAQCAtODI4LDggKzgzNSw4IEBACiAJCQkJCSJpbnRlcnJ1cHQgZm9yIGRldmljZToiCiAJCQkJIAkiJXMgcmVjZWl2ZWQgYy0lMDJ4IGQtJTAyeFxuIiwKICAgICAgICAgICAgICAgICAJCSAgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCwKLQkJCQkJaXJiLT5zY3N3LmNzdGF0LAotCQkJCQlpcmItPnNjc3cuZHN0YXQpOworCQkJCQlpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJCQlpcmItPnNjc3cuY21kLmRzdGF0KTsKIAkJCQlyZXR1cm47CiAJCQkJfQogI2lmZGVmIERFQlVHTVNHCkBAIC04NDQsNyArODUxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBjYXNlIENMQVdfU1RBUlRfUkVBRDoKIAkJCUNMQVdfREJGX1RFWFQoNCx0cmFjZSwiUmVhZElSUSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBfY2gtPmlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKKwkJCWlmIChwX2NoLT5pcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoMCwgKHZvaWQgKikmcF9jaC0+SU9fYWN0aXZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwX2NoLT5pcmItPmVjd1swXSAmIDB4NDEpID09IDB4NDEgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwX2NoLT5pcmItPmVjd1swXSAmIDB4NDApID09IDB4NDAgfHwKQEAgLTg2Myw4ICs4NzAsOCBAQAogCQkJCQlDTEFXX0RCRl9URVhUKDQsdHJhY2UsIm5vdHJkeSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocF9jaC0+aXJiLT5zY3N3LmNzdGF0ICYgU0NITl9TVEFUX1BDSSkgJiYKLQkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmRzdGF0PT0wKSkgeworCQkJaWYgKChwX2NoLT5pcmItPnNjc3cuY21kLmNzdGF0ICYgU0NITl9TVEFUX1BDSSkgJiYKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAwKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdF9hbmRfc2V0X2JpdChDTEFXX0JIX0FDVElWRSwKIAkJCQkJKHZvaWQgKikmcF9jaC0+ZmxhZ19hKSA9PSAwKSB7CiAJCQkJCXRhc2tsZXRfc2NoZWR1bGUoJnBfY2gtPnRhc2tsZXQpOwpAQCAtODc5LDEwICs4ODYsMTMgQEAKIAkJCQlDTEFXX0RCRl9URVhUKDQsdHJhY2UsIlBDSV9yZWFkIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmKCEoKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKLQkgICAgCQkgKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAJCSAocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAJCSAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfCBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CisJCQlpZiAoISgocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCAmCisJCQkgICAgICAgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAorCQkJICAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkJCSAgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgIChTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8CisJCQkgICAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgewogI2lmZGVmIEZVTkNUUkFDRQogCQkJCXByaW50ayhLRVJOX0lORk8gIiVzOiVzIEV4aXQgb24gbGluZSAlZFxuIiwKIAkJCQkJZGV2LT5uYW1lLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTkxMSw3ICs5MjEsNyBAQAogCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJSZElSUVhpdCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGNhc2UgQ0xBV19TVEFSVF9XUklURToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwX2NoLT5pcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJCQlpZiAocF9jaC0+aXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IFVuaXQgQ2hlY2sgT2NjdXJlZCBpbiAiCiAJCQkJCSJ3cml0ZSBjaGFubmVsXG4iLGRldi0+bmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX2JpdCgwLCAodm9pZCAqKSZwX2NoLT5JT19hY3RpdmUpOwpAQCAtOTM0LDE2ICs5NDQsMTkgQEAKIAkJCQlDTEFXX0RCRl9URVhUKDQsdHJhY2UsInJzdHJ0d3J0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwX2NoLT5pcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSB7CisJCQlpZiAocF9jaC0+aXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoMCwgKHZvaWQgKikmcF9jaC0+SU9fYWN0aXZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICIlczogVW5pdCBFeGNlcHRpb24gIgogCQkJCQkJIk9jY3VyZWQgaW4gd3JpdGUgY2hhbm5lbFxuIiwKIAkJCQkJCWRldi0+bmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZighKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0KLQkgICAgIAkJKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8CisJCQkgICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgICAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJICAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKICNpZmRlZiBGVU5DVFJBQ0UKIAkJCQlwcmludGsoS0VSTl9JTkZPICIlczolcyBFeGl0IG9uIGxpbmUgJWRcbiIsCiAJCQkJCWRldi0+bmFtZSxfX2Z1bmNfXyxfX0xJTkVfXyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fZnNtcy5jIGIvZHJpdmVycy9zMzkwL25ldC9jdGNtX2ZzbXMuYwppbmRleCAyYTEwNmYzLi43ZTZiZDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fZnNtcy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9mc21zLmMKQEAgLTI1Nyw5ICsyNTcsOSBAQAogCWlmIChkdXJhdGlvbiA+IGNoLT5wcm9mLnR4X3RpbWUpCiAJCWNoLT5wcm9mLnR4X3RpbWUgPSBkdXJhdGlvbjsKIAotCWlmIChjaC0+aXJiLT5zY3N3LmNvdW50ICE9IDApCisJaWYgKGNoLT5pcmItPnNjc3cuY21kLmNvdW50ICE9IDApCiAJCWN0Y21fcHJfZGVidWcoIiVzOiBUWCBub3QgY29tcGxldGUsIHJlbWFpbmluZyAlZCBieXRlc1xuIiwKLQkJCSAgICAgZGV2LT5uYW1lLCBjaC0+aXJiLT5zY3N3LmNvdW50KTsKKwkJCSAgICAgZGV2LT5uYW1lLCBjaC0+aXJiLT5zY3N3LmNtZC5jb3VudCk7CiAJZnNtX2RlbHRpbWVyKCZjaC0+dGltZXIpOwogCXdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJmNoLT5pb19xdWV1ZSkpKSB7CiAJCXByaXYtPnN0YXRzLnR4X3BhY2tldHMrKzsKQEAgLTM1Myw3ICszNTMsNyBAQAogCXN0cnVjdCBjaGFubmVsICpjaCA9IGFyZzsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gY2gtPm5ldGRldjsKIAlzdHJ1Y3QgY3RjbV9wcml2ICpwcml2ID0gZGV2LT5wcml2OwotCWludCBsZW4gPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNvdW50OworCWludCBsZW4gPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNtZC5jb3VudDsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gY2gtPnRyYW5zX3NrYjsKIAlfX3UxNiBibG9ja19sZW4gPSAqKChfX3UxNiAqKXNrYi0+ZGF0YSk7CiAJaW50IGNoZWNrX2xlbjsKQEAgLTEyMzQsOSArMTIzNCw5IEBACiAJaWYgKGR1cmF0aW9uID4gY2gtPnByb2YudHhfdGltZSkKIAkJY2gtPnByb2YudHhfdGltZSA9IGR1cmF0aW9uOwogCi0JaWYgKGNoLT5pcmItPnNjc3cuY291bnQgIT0gMCkKKwlpZiAoY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQgIT0gMCkKIAkJY3RjbV9wcl9kZWJ1ZygiJXM6IFRYIG5vdCBjb21wbGV0ZSwgcmVtYWluaW5nICVkIGJ5dGVzXG4iLAotCQkJCWRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jb3VudCk7CisJCQkJZGV2LT5uYW1lLCBjaC0+aXJiLT5zY3N3LmNtZC5jb3VudCk7CiAJZnNtX2RlbHRpbWVyKCZjaC0+dGltZXIpOwogCXdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJmNoLT5pb19xdWV1ZSkpKSB7CiAJCXByaXYtPnN0YXRzLnR4X3BhY2tldHMrKzsKQEAgLTEzOTQsNyArMTM5NCw3IEBACiAJc3RydWN0IHNrX2J1ZmYJCSpza2IgPSBjaC0+dHJhbnNfc2tiOwogCXN0cnVjdCBza19idWZmCQkqbmV3X3NrYjsKIAl1bnNpZ25lZCBsb25nCXNhdmVmbGFncyA9IDA7CS8qIGF2b2lkcyBjb21waWxlciB3YXJuaW5nICovCi0JaW50IGxlbgk9IGNoLT5tYXhfYnVmc2l6ZSAtIGNoLT5pcmItPnNjc3cuY291bnQ7CisJaW50IGxlbgk9IGNoLT5tYXhfYnVmc2l6ZSAtIGNoLT5pcmItPnNjc3cuY21kLmNvdW50OwogCiAJaWYgKGRvX2RlYnVnX2RhdGEpIHsKIAkJQ1RDTV9EQkZfVEVYVF8oVFJBQ0UsIENUQ19EQkZfREVCVUcsICJtcGNfY2hfcnggJXMgY3A6JWkgJXNcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9jdGNtX21haW4uYwppbmRleCBkNTI4NDNkLi42YjEzYzFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9tYWluLmMKQEAgLTEyMzYsOCArMTIzNiw4IEBACiAJLyogQ2hlY2sgZm9yIHVuc29saWNpdGVkIGludGVycnVwdHMuICovCiAJaWYgKGNnZGV2ID09IE5VTEwpIHsKIAkJY3RjbV9wcl93YXJuKCJjdGNtOiBHb3QgdW5zb2xpY2l0ZWQgaXJxOiAlcyBjLSUwMnggZC0lMDJ4XG4iLAotCQkJICAgIGNkZXYtPmRldi5idXNfaWQsIGlyYi0+c2Nzdy5jc3RhdCwKLQkJCSAgICBpcmItPnNjc3cuZHN0YXQpOworCQkJICAgIGNkZXYtPmRldi5idXNfaWQsIGlyYi0+c2Nzdy5jbWQuY3N0YXQsCisJCQkgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTEyNjYsNDAgKzEyNjYsNDAgQEAKIAkJCQkicmVjZWl2ZWQgYy0lMDJ4IGQtJTAyeFxuIiwKIAkJCQlkZXYtPm5hbWUsCiAJCQkJY2gtPmlkLAotCQkJCWlyYi0+c2Nzdy5jc3RhdCwKLQkJCQlpcmItPnNjc3cuZHN0YXQpOworCQkJCWlyYi0+c2Nzdy5jbWQuY3N0YXQsCisJCQkJaXJiLT5zY3N3LmNtZC5kc3RhdCk7CiAKIAkvKiBDb3B5IGludGVycnVwdGlvbiByZXNwb25zZSBibG9jay4gKi8KIAltZW1jcHkoY2gtPmlyYiwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOwogCiAJLyogQ2hlY2sgZm9yIGdvb2Qgc3ViY2hhbm5lbCByZXR1cm4gY29kZSwgb3RoZXJ3aXNlIGVycm9yIG1lc3NhZ2UgKi8KLQlpZiAoaXJiLT5zY3N3LmNzdGF0KSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuY3N0YXQpIHsKIAkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9TQ19VTktOT1dOLCBjaCk7CiAJCWN0Y21fcHJfd2FybigiJXM6IHN1YmNoYW5uZWwgY2hlY2sgZm9yIGRldjogJXMgLSAlMDJ4ICUwMnhcbiIsCi0JCQkgICAgZGV2LT5uYW1lLCBjaC0+aWQsIGlyYi0+c2Nzdy5jc3RhdCwKLQkJCSAgICBpcmItPnNjc3cuZHN0YXQpOworCQkJICAgIGRldi0+bmFtZSwgY2gtPmlkLCBpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCQlyZXR1cm47CiAJfQogCiAJLyogQ2hlY2sgdGhlIHJlYXNvbi1jb2RlIG9mIGEgdW5pdCBjaGVjayAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAJCWNjd191bml0X2NoZWNrKGNoLCBpcmItPmVjd1swXSk7CiAJCXJldHVybjsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0JVU1kpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0JVU1kpIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pCiAJCQlmc21fZXZlbnQoY2gtPmZzbSwgQ1RDX0VWRU5UX0FUVE5CVVNZLCBjaCk7CiAJCWVsc2UKIAkJCWZzbV9ldmVudChjaC0+ZnNtLCBDVENfRVZFTlRfQlVTWSwgY2gpOwogCQlyZXR1cm47CiAJfQotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgewogCQlmc21fZXZlbnQoY2gtPmZzbSwgQ1RDX0VWRU5UX0FUVE4sIGNoKTsKIAkJcmV0dXJuOwogCX0KLQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKLQkgICAgKGlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAoaXJiLT5zY3N3LnN0Y3RsID09CisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAgKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKQogCQlmc21fZXZlbnQoY2gtPmZzbSwgQ1RDX0VWRU5UX0ZJTlNUQVQsIGNoKTsKIAllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5jIGIvZHJpdmVycy9zMzkwL25ldC9jdTMwODguYwppbmRleCA4ZTc2OTczLi5mNGEzMjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmMKQEAgLTM2LDcgKzM2LDYgQEAKIAkiQ1RDL0EiLAogCSJFU0NPTiBjaGFubmVsIiwKIAkiRklDT04gY2hhbm5lbCIsCi0JIlAzOTAgTENTIGNhcmQiLAogCSJPU0EgTENTIGNhcmQiLAogCSJDTEFXIGNoYW5uZWwgZGV2aWNlIiwKIAkidW5rbm93biBjaGFubmVsIHR5cGUiLApAQCAtNDksNyArNDgsNiBAQAogCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4MDgpLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfcGFyYWxsZWwgfSwKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDFmKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX2VzY29uIH0sCiAJeyBDQ1dfREVWSUNFKDB4MzA4OCwgMHgxZSksIC5kcml2ZXJfaW5mbyA9IGNoYW5uZWxfdHlwZV9maWNvbiB9LAotCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4MDEpLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfcDM5MCB9LAogCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4NjApLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfb3NhMiB9LAogCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4NjEpLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfY2xhdyB9LAogCXsgLyogZW5kIG9mIGxpc3QgKi8gfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguaCBiL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmgKaW5kZXggMTc1MzY2MS4uZDg1NThhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguaAorKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5oCkBAIC0xNyw5ICsxNyw2IEBACiAJLyogRGV2aWNlIGlzIGEgRklDT04gY2hhbm5lbCAqLwogCWNoYW5uZWxfdHlwZV9maWNvbiwKIAotCS8qIERldmljZSBpcyBhIFAzOTAgTENTIGNhcmQgKi8KLQljaGFubmVsX3R5cGVfcDM5MCwKLQogCS8qIERldmljZSBpcyBhIE9TQTIgY2FyZCAqLwogCWNoYW5uZWxfdHlwZV9vc2EyLAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2xjcy5jIGIvZHJpdmVycy9zMzkwL25ldC9sY3MuYwppbmRleCBkZDIyZjRiLi42ZGUyODM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L2xjcy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvbGNzLmMKQEAgLTEzMjcsOCArMTMyNyw4IEBACiAJY2hhciAqc2Vuc2U7CiAKIAlzZW5zZSA9IChjaGFyICopIGlyYi0+ZWN3OwotCWNzdGF0ID0gaXJiLT5zY3N3LmNzdGF0OwotCWRzdGF0ID0gaXJiLT5zY3N3LmRzdGF0OworCWNzdGF0ID0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKKwlkc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKIAlpZiAoY3N0YXQgJiAoU0NITl9TVEFUX0NITl9DVFJMX0NISyB8IFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJICAgICBTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwgU0NITl9TVEFUX0NIQUlOX0NIRUNLIHwKQEAgLTEzODgsMTEgKzEzODgsMTMgQEAKIAllbHNlCiAJCWNoYW5uZWwgPSAmY2FyZC0+d3JpdGU7CiAKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCUxDU19EQkZfVEVYVF8oNSwgdHJhY2UsICJSaW50JXMiLGNkZXYtPmRldi5idXNfaWQpOwotCUxDU19EQkZfVEVYVF8oNSwgdHJhY2UsICIlNHglNHgiLGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0KTsKLQlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IixpcmItPnNjc3cuZmN0bCwgaXJiLT5zY3N3LmFjdGwpOworCUxDU19EQkZfVEVYVF8oNSwgdHJhY2UsICIlNHglNHgiLCBpcmItPnNjc3cuY21kLmNzdGF0LAorCQkgICAgICBpcmItPnNjc3cuY21kLmRzdGF0KTsKKwlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IiwgaXJiLT5zY3N3LmNtZC5mY3RsLAorCQkgICAgICBpcmItPnNjc3cuY21kLmFjdGwpOwogCiAJLyogQ2hlY2sgZm9yIGNoYW5uZWwgYW5kIGRldmljZSBlcnJvcnMgcHJlc2VudGVkICovCiAJcmMgPSBsY3NfZ2V0X3Byb2JsZW0oY2RldiwgaXJiKTsKQEAgLTE0MTAsMTEgKzE0MTIsMTEgQEAKIAl9CiAJLyogSG93IGZhciBpbiB0aGUgY2N3IGNoYWluIGhhdmUgd2UgcHJvY2Vzc2VkPyAqLwogCWlmICgoY2hhbm5lbC0+c3RhdGUgIT0gTENTX0NIX1NUQVRFX0lOSVQpICYmCi0JICAgIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSkgewotCQlpbmRleCA9IChzdHJ1Y3QgY2N3MSAqKSBfX3ZhKChhZGRyX3QpIGlyYi0+c2Nzdy5jcGEpCisJICAgIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykpIHsKKwkJaW5kZXggPSAoc3RydWN0IGNjdzEgKikgX192YSgoYWRkcl90KSBpcmItPnNjc3cuY21kLmNwYSkKIAkJCS0gY2hhbm5lbC0+Y2N3czsKLQkJaWYgKChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpIHx8Ci0JCSAgICAoaXJiLT5zY3N3LmNzdGF0ICYgU0NITl9TVEFUX1BDSSkpCisJCWlmICgoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkgfHwKKwkJICAgIChpcmItPnNjc3cuY21kLmNzdGF0ICYgU0NITl9TVEFUX1BDSSkpCiAJCQkvKiBCbG9vZHkgaW8gc3Vic3lzdGVtIHRlbGxzIHVzIGxpZXMgYWJvdXQgY3BhLi4uICovCiAJCQlpbmRleCA9IChpbmRleCAtIDEpICYgKExDU19OVU1fQlVGRlMgLSAxKTsKIAkJd2hpbGUgKGNoYW5uZWwtPmlvX2lkeCAhPSBpbmRleCkgewpAQCAtMTQyNSwyNSArMTQyNywyNCBAQAogCQl9CiAJfQogCi0JaWYgKChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB8fAotCSAgICAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQ0hOX0VORCkgfHwKLQkgICAgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spKQorCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHx8CisJICAgIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQ0hOX0VORCkgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSkKIAkJLyogTWFyayBjaGFubmVsIGFzIHN0b3BwZWQuICovCiAJCWNoYW5uZWwtPnN0YXRlID0gTENTX0NIX1NUQVRFX1NUT1BQRUQ7Ci0JZWxzZSBpZiAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKQorCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpCiAJCS8qIENDVyBleGVjdXRpb24gc3RvcHBlZCBvbiBhIHN1c3BlbmQgYml0LiAqLwogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9TVVNQRU5ERUQ7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX0hBTFRfRlVOQykgewotCQlpZiAoaXJiLT5zY3N3LmNjICE9IDApIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX0hBTFRfRlVOQykgeworCQlpZiAoaXJiLT5zY3N3LmNtZC5jYyAhPSAwKSB7CiAJCQljY3dfZGV2aWNlX2hhbHQoY2hhbm5lbC0+Y2N3ZGV2LCAoYWRkcl90KSBjaGFubmVsKTsKIAkJCXJldHVybjsKIAkJfQogCQkvKiBUaGUgY2hhbm5lbCBoYXMgYmVlbiBzdG9wcGVkIGJ5IGhhbHRfSU8uICovCiAJCWNoYW5uZWwtPnN0YXRlID0gTENTX0NIX1NUQVRFX0hBTFRFRDsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpCiAJCWNoYW5uZWwtPnN0YXRlID0gTENTX0NIX1NUQVRFX0NMRUFSRUQ7Ci0JfQogCS8qIERvIHRoZSByZXN0IGluIHRoZSB0YXNrbGV0LiAqLwogCXRhc2tsZXRfc2NoZWR1bGUoJmNoYW5uZWwtPmlycV90YXNrbGV0KTsKIH0KQEAgLTE3NjEsNyArMTc2Miw3IEBACiAJCQkJbmV0aWZfY2Fycmllcl9vZmYoY2FyZC0+ZGV2KTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJUFJJTlRfSU5GTygiVU5SRUNPR05JWkVEIExHVyBDT01NQU5EXG4iKTsKKwkJCUxDU19EQkZfVEVYVCg1LCB0cmFjZSwgIm5vTEdXY21kIik7CiAJCQlicmVhazsKIAkJfQogCX0gZWxzZQpAQCAtMjA0MiwxMyArMjA0MywxMiBAQAogCUxDU19EQkZfVEVYVCgyLCBzZXR1cCwgImFkZF9kZXYiKTsKICAgICAgICAgY2FyZCA9IGxjc19hbGxvY19jYXJkKCk7CiAgICAgICAgIGlmICghY2FyZCkgewotICAgICAgICAgICAgICAgIFBSSU5UX0VSUigiQWxsb2NhdGlvbiBvZiBsY3MgY2FyZCBmYWlsZWRcbiIpOworCQlMQ1NfREJGX1RFWFRfKDIsIHNldHVwLCAiICByYyVkIiwgLUVOT01FTSk7CiAJCXB1dF9kZXZpY2UoJmNjd2dkZXYtPmRldik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0KIAlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmNjd2dkZXYtPmRldi5rb2JqLCAmbGNzX2F0dHJfZ3JvdXApOwogCWlmIChyZXQpIHsKLSAgICAgICAgICAgICAgICBQUklOVF9FUlIoIkNyZWF0aW5nIGF0dHJpYnV0ZXMgZmFpbGVkIik7CiAJCWxjc19mcmVlX2NhcmQoY2FyZCk7CiAJCXB1dF9kZXZpY2UoJmNjd2dkZXYtPmRldik7CiAJCXJldHVybiByZXQ7CkBAIC0yMTQwLDcgKzIxNDAsNiBAQAogCWRlZmF1bHQ6CiAJCUxDU19EQkZfVEVYVCgzLCBzZXR1cCwgImVycmluaXQiKTsKIAkJUFJJTlRfRVJSKCJMQ1M6IEluaXRpYWxpemF0aW9uIGZhaWxlZFxuIik7Ci0JCVBSSU5UX0VSUigiTENTOiBObyBkZXZpY2UgZm91bmQhXG4iKTsKIAkJZ290byBvdXQ7CiAJfQogCWlmICghZGV2KQpAQCAtMjI2OSw3ICsyMjY4LDYgQEAKIAlpZiAoIWNhcmQpCiAJCXJldHVybjsKIAotCVBSSU5UX0lORk8oIlJlbW92aW5nIGxjcyBncm91cCBkZXZpY2UgLi4uLlxuIik7CiAJTENTX0RCRl9URVhUKDMsIHNldHVwLCAicmVtZGV2Iik7CiAJTENTX0RCRl9IRVgoMywgc2V0dXAsICZjYXJkLCBzaXplb2Yodm9pZCopKTsKIAlpZiAoY2N3Z2Rldi0+c3RhdGUgPT0gQ0NXR1JPVVBfT05MSU5FKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYyBiL2RyaXZlcnMvczM5MC9uZXQvbmV0aXVjdi5jCmluZGV4IGU0YmE2YTAuLjkyNDJiNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvbmV0aXVjdi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvbmV0aXVjdi5jCkBAIC02MjUsOSArNjI1LDYgQEAKIAkJb2Zmc2V0ICs9IGhlYWRlci0+bmV4dDsKIAkJaGVhZGVyLT5uZXh0IC09IE5FVElVQ1ZfSERSTEVOOwogCQlpZiAoc2tiX3RhaWxyb29tKHBza2IpIDwgaGVhZGVyLT5uZXh0KSB7Ci0JCQlQUklOVF9XQVJOKCIlczogSWxsZWdhbCBuZXh0IGZpZWxkIGluIGl1Y3YgaGVhZGVyOiAiCi0JCQkgICAgICAgIiVkID4gJWRcbiIsCi0JCQkgICAgICAgZGV2LT5uYW1lLCBoZWFkZXItPm5leHQsIHNrYl90YWlscm9vbShwc2tiKSk7CiAJCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAiSWxsZWdhbCBuZXh0IGZpZWxkOiAlZCA+ICVkXG4iLAogCQkJCWhlYWRlci0+bmV4dCwgc2tiX3RhaWxyb29tKHBza2IpKTsKIAkJCXJldHVybjsKQEAgLTYzNiw4ICs2MzMsNiBAQAogCQlza2JfcmVzZXRfbWFjX2hlYWRlcihwc2tiKTsKIAkJc2tiID0gZGV2X2FsbG9jX3NrYihwc2tiLT5sZW4pOwogCQlpZiAoIXNrYikgewotCQkJUFJJTlRfV0FSTigiJXMgT3V0IG9mIG1lbW9yeSBpbiBuZXRpdWN2X3VucGFja19za2JcbiIsCi0JCQkgICAgICAgZGV2LT5uYW1lKTsKIAkJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwKIAkJCQkiT3V0IG9mIG1lbW9yeSBpbiBuZXRpdWN2X3VucGFja19za2JcbiIpOwogCQkJcHJpdnB0ci0+c3RhdHMucnhfZHJvcHBlZCsrOwpAQCAtNjc0LDcgKzY2OSw2IEBACiAKIAlpZiAoIWNvbm4tPm5ldGRldikgewogCQlpdWN2X21lc3NhZ2VfcmVqZWN0KGNvbm4tPnBhdGgsIG1zZyk7Ci0JCVBSSU5UX1dBUk4oIlJlY2VpdmVkIGRhdGEgZm9yIHVubGlua2VkIGNvbm5lY3Rpb25cbiIpOwogCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkgICAgICAiUmVjZWl2ZWQgZGF0YSBmb3IgdW5saW5rZWQgY29ubmVjdGlvblxuIik7CiAJCXJldHVybjsKQEAgLTY4Miw4ICs2NzYsNiBAQAogCWlmIChtc2ctPmxlbmd0aCA+IGNvbm4tPm1heF9idWZmc2l6ZSkgewogCQlpdWN2X21lc3NhZ2VfcmVqZWN0KGNvbm4tPnBhdGgsIG1zZyk7CiAJCXByaXZwdHItPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKLQkJUFJJTlRfV0FSTigibXNnbGVuICVkID4gbWF4X2J1ZmZzaXplICVkXG4iLAotCQkJICAgbXNnLT5sZW5ndGgsIGNvbm4tPm1heF9idWZmc2l6ZSk7CiAJCUlVQ1ZfREJGX1RFWFRfKGRhdGEsIDIsICJtc2dsZW4gJWQgPiBtYXhfYnVmZnNpemUgJWRcbiIsCiAJCQkgICAgICAgbXNnLT5sZW5ndGgsIGNvbm4tPm1heF9idWZmc2l6ZSk7CiAJCXJldHVybjsKQEAgLTY5NSw3ICs2ODcsNiBAQAogCQkJCSAgbXNnLT5sZW5ndGgsIE5VTEwpOwogCWlmIChyYyB8fCBtc2ctPmxlbmd0aCA8IDUpIHsKIAkJcHJpdnB0ci0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCVBSSU5UX1dBUk4oIml1Y3ZfcmVjZWl2ZSByZXR1cm5lZCAlMDh4XG4iLCByYyk7CiAJCUlVQ1ZfREJGX1RFWFRfKGRhdGEsIDIsICJyYyAlZCBmcm9tIGl1Y3ZfcmVjZWl2ZVxuIiwgcmMpOwogCQlyZXR1cm47CiAJfQpAQCAtNzc4LDcgKzc2OSw2IEBACiAJCWZzbV9uZXdzdGF0ZShmaSwgQ09OTl9TVEFURV9JRExFKTsKIAkJaWYgKHByaXZwdHIpCiAJCQlwcml2cHRyLT5zdGF0cy50eF9lcnJvcnMgKz0gdHhwYWNrZXRzOwotCQlQUklOVF9XQVJOKCJpdWN2X3NlbmQgcmV0dXJuZWQgJTA4eFxuIiwJcmMpOwogCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAicmMgJWQgZnJvbSBpdWN2X3NlbmRcbiIsIHJjKTsKIAl9IGVsc2UgewogCQlpZiAocHJpdnB0cikgewpAQCAtODA2LDggKzc5Niw2IEBACiAJcGF0aC0+ZmxhZ3MgPSAwOwogCXJjID0gaXVjdl9wYXRoX2FjY2VwdChwYXRoLCAmbmV0aXVjdl9oYW5kbGVyLCBOVUxMLCBjb25uKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfV0FSTigiJXM6IElVQ1YgYWNjZXB0IGZhaWxlZCB3aXRoIGVycm9yICVkXG4iLAotCQkgICAgICAgbmV0ZGV2LT5uYW1lLCByYyk7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAicmMgJWQgZnJvbSBpdWN2X2FjY2VwdCIsIHJjKTsKIAkJcmV0dXJuOwogCX0KQEAgLTg3Myw3ICs4NjEsNyBAQAogCUlVQ1ZfREJGX1RFWFQodHJhY2UsIDMsIF9fZnVuY19fKTsKIAogCWZzbV9uZXdzdGF0ZShmaSwgQ09OTl9TVEFURV9TVEFSVFdBSVQpOwotCVBSSU5UX0RFQlVHKCIlcygnJXMnKTogY29ubmVjdGluZyAuLi5cbiIsCisJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICIlcygnJXMnKTogY29ubmVjdGluZyAuLi5cbiIsCiAJCSAgICBjb25uLT5uZXRkZXYtPm5hbWUsIGNvbm4tPnVzZXJpZCk7CiAKIAkvKgpAQCAtOTY4LDggKzk1Niw4IEBACiAJc3RydWN0IGl1Y3ZfY29ubmVjdGlvbiAqY29ubiA9IGFyZzsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gY29ubi0+bmV0ZGV2OwogCi0JUFJJTlRfV0FSTigiJXM6IENhbm5vdCBjb25uZWN0IHdpdGhvdXQgdXNlcm5hbWVcbiIsIG5ldGRldi0+bmFtZSk7Ci0JSVVDVl9EQkZfVEVYVChkYXRhLCAyLCAiY29ubl9hY3Rpb25faW52YWwgY2FsbGVkXG4iKTsKKwlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAiJXMoJyVzJyk6IGNvbm5fYWN0aW9uX2ludmFsIGNhbGxlZFxuIiwKKwkJbmV0ZGV2LT5uYW1lLCBjb25uLT51c2VyaWQpOwogfQogCiBzdGF0aWMgY29uc3QgZnNtX25vZGUgY29ubl9mc21bXSA9IHsKQEAgLTEwNzcsOSArMTA2NSw2IEBACiAJCQkJImNvbm5lY3Rpb24gaXMgdXAgYW5kIHJ1bm5pbmdcbiIpOwogCQkJYnJlYWs7CiAJCWNhc2UgREVWX1NUQVRFX1NUT1BXQUlUOgotCQkJUFJJTlRfSU5GTygKLQkJCSAgICAgICAiJXM6IGdvdCBjb25uZWN0aW9uIFVQIGV2ZW50IGR1cmluZyBzaHV0ZG93biFcbiIsCi0JCQkgICAgICAgZGV2LT5uYW1lKTsKIAkJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwKIAkJCQkiZGV2X2FjdGlvbl9jb25udXA6IGluIERFVl9TVEFURV9TVE9QV0FJVFxuIik7CiAJCQlicmVhazsKQEAgLTExNzQsOCArMTE1OSw2IEBACiAJCQluc2tiID0gYWxsb2Nfc2tiKHNrYi0+bGVuICsgTkVUSVVDVl9IRFJMRU4gKwogCQkJCQkgTkVUSVVDVl9IRFJMRU4sIEdGUF9BVE9NSUMgfCBHRlBfRE1BKTsKIAkJCWlmICghbnNrYikgewotCQkJCVBSSU5UX1dBUk4oIiVzOiBDb3VsZCBub3QgYWxsb2NhdGUgdHhfc2tiXG4iLAotCQkJCSAgICAgICBjb25uLT5uZXRkZXYtPm5hbWUpOwogCQkJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgImFsbG9jX3NrYiBmYWlsZWRcbiIpOwogCQkJCXJjID0gLUVOT01FTTsKIAkJCQlyZXR1cm4gcmM7CkBAIC0xMjIzLDcgKzEyMDYsNiBAQAogCQkJCXNrYl9wdWxsKHNrYiwgTkVUSVVDVl9IRFJMRU4pOwogCQkJCXNrYl90cmltKHNrYiwgc2tiLT5sZW4gLSBORVRJVUNWX0hEUkxFTik7CiAJCQl9Ci0JCQlQUklOVF9XQVJOKCJpdWN2X3NlbmQgcmV0dXJuZWQgJTA4eFxuIiwJcmMpOwogCQkJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgInJjICVkIGZyb20gaXVjdl9zZW5kXG4iLCByYyk7CiAJCX0gZWxzZSB7CiAJCQlpZiAoY29waWVkKQpAQCAtMTI5MywxNCArMTI3NSwxMSBAQAogCSAqIFNvbWUgc2FuaXR5IGNoZWNrcyAuLi4KIAkgKi8KIAlpZiAoc2tiID09IE5VTEwpIHsKLQkJUFJJTlRfV0FSTigiJXM6IE5VTEwgc2tfYnVmZiBwYXNzZWRcbiIsIGRldi0+bmFtZSk7CiAJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgIm5ldGl1Y3ZfdHg6IHNrYiBpcyBOVUxMXG4iKTsKIAkJcHJpdnB0ci0+c3RhdHMudHhfZHJvcHBlZCsrOwogCQlyZXR1cm4gMDsKIAl9CiAJaWYgKHNrYl9oZWFkcm9vbShza2IpIDwgTkVUSVVDVl9IRFJMRU4pIHsKLQkJUFJJTlRfV0FSTigiJXM6IEdvdCBza19idWZmIHdpdGggaGVhZCByb29tIDwgJWxkIGJ5dGVzXG4iLAotCQkgICAgICAgZGV2LT5uYW1lLCBORVRJVUNWX0hEUkxFTik7CiAJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwKIAkJCSJuZXRpdWN2X3R4OiBza2JfaGVhZHJvb20gPCBORVRJVUNWX0hEUkxFTlxuIik7CiAJCWRldl9rZnJlZV9za2Ioc2tiKTsKQEAgLTEzOTMsNyArMTM3Miw2IEBACiAKIAlJVUNWX0RCRl9URVhUKHRyYWNlLCAzLCBfX2Z1bmNfXyk7CiAJaWYgKGNvdW50ID4gOSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiB1c2VybmFtZSB0b28gbG9uZyAoJWQpIVxuIiwgKGludCkgY291bnQpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwKIAkJCSAgICAgICAiJWQgaXMgbGVuZ3RoIG9mIHVzZXJuYW1lXG4iLCAoaW50KSBjb3VudCk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTQwOSw3ICsxMzg3LDYgQEAKIAkJCS8qIHRyYWlsaW5nIGxmLCBncnIgKi8KIAkJCWJyZWFrOwogCQl9Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEludmFsaWQgY2hhciAlYyBpbiB1c2VybmFtZSFcbiIsICpwKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkgICAgICAgInVzZXJuYW1lOiBpbnZhbGlkIGNoYXJhY3RlciAlY1xuIiwgKnApOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE0MjEsMTggKzEzOTgsMTUgQEAKIAlpZiAobWVtY21wKHVzZXJuYW1lLCBwcml2LT5jb25uLT51c2VyaWQsIDkpICYmCiAJICAgIChuZGV2LT5mbGFncyAmIChJRkZfVVAgfCBJRkZfUlVOTklORykpKSB7CiAJCS8qIHVzZXJuYW1lIGNoYW5nZWQgd2hpbGUgdGhlIGludGVyZmFjZSBpcyBhY3RpdmUuICovCi0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IGRldmljZSAlcyBhY3RpdmUsIGNvbm5lY3RlZCB0byAlc1xuIiwKLQkJCSAgIGRldi0+YnVzX2lkLCBwcml2LT5jb25uLT51c2VyaWQpOwotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiB1c2VyIGNhbm5vdCBiZSB1cGRhdGVkXG4iKTsKIAkJSVVDVl9EQkZfVEVYVChzZXR1cCwgMiwgInVzZXJfd3JpdGU6IGRldmljZSBhY3RpdmVcbiIpOwotCQlyZXR1cm4gLUVCVVNZOworCQlyZXR1cm4gLUVQRVJNOwogCX0KIAlyZWFkX2xvY2tfYmgoJml1Y3ZfY29ubmVjdGlvbl9yd2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3AsICZpdWN2X2Nvbm5lY3Rpb25fbGlzdCwgbGlzdCkgewogCQlpZiAoIXN0cm5jbXAodXNlcm5hbWUsIGNwLT51c2VyaWQsIDkpICYmIGNwLT5uZXRkZXYgIT0gbmRldikgewogCQkJcmVhZF91bmxvY2tfYmgoJml1Y3ZfY29ubmVjdGlvbl9yd2xvY2spOwotCQkJUFJJTlRfV0FSTigibmV0aXVjdjogQ29ubmVjdGlvbiB0byAlcyBhbHJlYWR5ICIKLQkJCQkgICAiZXhpc3RzXG4iLCB1c2VybmFtZSk7CisJCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwgInVzZXJfd3JpdGU6IENvbm5lY3Rpb24gIgorCQkJCSJ0byAlcyBhbHJlYWR5IGV4aXN0c1xuIiwgdXNlcm5hbWUpOwogCQkJcmV0dXJuIC1FRVhJU1Q7CiAJCX0KIAl9CkBAIC0xNDY2LDEzICsxNDQwLDEwIEBACiAJYnMxID0gc2ltcGxlX3N0cnRvdWwoYnVmLCAmZSwgMCk7CiAKIAlpZiAoZSAmJiAoIWlzc3BhY2UoKmUpKSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBJbnZhbGlkIGNoYXJhY3RlciBpbiBidWZmZXIhXG4iKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJidWZmZXJfd3JpdGU6IGludmFsaWQgY2hhciAlY1xuIiwgKmUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKGJzMSA+IE5FVElVQ1ZfQlVGU0laRV9NQVgpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogR2l2ZW4gYnVmZmVyIHNpemUgJWQgdG9vIGxhcmdlLlxuIiwKLQkJCWJzMSk7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLAogCQkJImJ1ZmZlcl93cml0ZTogYnVmZmVyIHNpemUgJWQgdG9vIGxhcmdlXG4iLAogCQkJYnMxKTsKQEAgLTE0ODAsMTYgKzE0NTEsMTIgQEAKIAl9CiAJaWYgKChuZGV2LT5mbGFncyAmIElGRl9SVU5OSU5HKSAmJgogCSAgICAoYnMxIDwgKG5kZXYtPm10dSArIE5FVElVQ1ZfSERSTEVOICsgMikpKSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEdpdmVuIGJ1ZmZlciBzaXplICVkIHRvbyBzbWFsbC5cbiIsCi0JCQliczEpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwKIAkJCSJidWZmZXJfd3JpdGU6IGJ1ZmZlciBzaXplICVkIHRvbyBzbWFsbFxuIiwKIAkJCWJzMSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlpZiAoYnMxIDwgKDU3NiArIE5FVElVQ1ZfSERSTEVOICsgTkVUSVVDVl9IRFJMRU4pKSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEdpdmVuIGJ1ZmZlciBzaXplICVkIHRvbyBzbWFsbC5cbiIsCi0JCQliczEpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwKIAkJCSJidWZmZXJfd3JpdGU6IGJ1ZmZlciBzaXplICVkIHRvbyBzbWFsbFxuIiwKIAkJCWJzMSk7CkBAIC0xOTYzLDcgKzE5MzAsNiBAQAogCiAJSVVDVl9EQkZfVEVYVCh0cmFjZSwgMywgX19mdW5jX18pOwogCWlmIChjb3VudD45KSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IHVzZXJuYW1lIHRvbyBsb25nICglZCkhXG4iLCAoaW50KWNvdW50KTsKIAkJSVVDVl9EQkZfVEVYVChzZXR1cCwgMiwgImNvbm5fd3JpdGU6IHRvbyBsb25nXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTk3Niw3ICsxOTQyLDYgQEAKIAkJaWYgKCpwID09ICdcbicpCiAJCQkvKiB0cmFpbGluZyBsZiwgZ3JyICovCiAJCQlicmVhazsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogSW52YWxpZCBjaGFyYWN0ZXIgaW4gdXNlcm5hbWUhXG4iKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkgICAgICAgImNvbm5fd3JpdGU6IGludmFsaWQgY2hhcmFjdGVyICVjXG4iLCAqcCk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTk4OSw4ICsxOTU0LDggQEAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNwLCAmaXVjdl9jb25uZWN0aW9uX2xpc3QsIGxpc3QpIHsKIAkJaWYgKCFzdHJuY21wKHVzZXJuYW1lLCBjcC0+dXNlcmlkLCA5KSkgewogCQkJcmVhZF91bmxvY2tfYmgoJml1Y3ZfY29ubmVjdGlvbl9yd2xvY2spOwotCQkJUFJJTlRfV0FSTigibmV0aXVjdjogQ29ubmVjdGlvbiB0byAlcyBhbHJlYWR5ICIKLQkJCQkgICAiZXhpc3RzXG4iLCB1c2VybmFtZSk7CisJCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwgImNvbm5fd3JpdGU6IENvbm5lY3Rpb24gIgorCQkJCSJ0byAlcyBhbHJlYWR5IGV4aXN0c1xuIiwgdXNlcm5hbWUpOwogCQkJcmV0dXJuIC1FRVhJU1Q7CiAJCX0KIAl9CkBAIC0xOTk4LDkgKzE5NjMsNiBAQAogCiAJZGV2ID0gbmV0aXVjdl9pbml0X25ldGRldmljZSh1c2VybmFtZSk7CiAJaWYgKCFkZXYpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogQ291bGQgbm90IGFsbG9jYXRlIG5ldHdvcmsgZGV2aWNlICIKLQkJCSAgICJzdHJ1Y3R1cmUgZm9yIHVzZXIgJyVzJ1xuIiwKLQkJCSAgIG5ldGl1Y3ZfcHJpbnRuYW1lKHVzZXJuYW1lKSk7CiAJCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJOVUxMIGZyb20gbmV0aXVjdl9pbml0X25ldGRldmljZVxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KQEAgLTIwMjAsMTUgKzE5ODIsMTIgQEAKIAlpZiAocmMpCiAJCWdvdG8gb3V0X3VucmVnOwogCi0JUFJJTlRfSU5GTygiJXM6ICclcydcbiIsIGRldi0+bmFtZSwgbmV0aXVjdl9wcmludG5hbWUodXNlcm5hbWUpKTsKIAogCXJldHVybiBjb3VudDsKIAogb3V0X3VucmVnOgogCW5ldGl1Y3ZfdW5yZWdpc3Rlcl9kZXZpY2UocHJpdi0+ZGV2KTsKIG91dF9mcmVlX25kZXY6Ci0JUFJJTlRfV0FSTigibmV0aXVjdjogQ291bGQgbm90IHJlZ2lzdGVyICclcydcbiIsIGRldi0+bmFtZSk7Ci0JSVVDVl9EQkZfVEVYVChzZXR1cCwgMiwgImNvbm5fd3JpdGU6IGNvdWxkIG5vdCByZWdpc3RlclxuIik7CiAJbmV0aXVjdl9mcmVlX25ldGRldmljZShkZXYpOwogCXJldHVybiByYzsKIH0KQEAgLTIwNzMsMTQgKzIwMzIsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU5UX1dBUk4oIm5ldGl1Y3Y6ICVzIGNhbm5vdCBiZSByZW1vdmVkXG4iLAogCQkJCSAgIG5kZXYtPm5hbWUpOwogCQkJSVVDVl9EQkZfVEVYVChkYXRhLCAyLCAicmVtb3ZlX3dyaXRlOiBzdGlsbCBhY3RpdmVcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsKKwkJCXJldHVybiAtRVBFUk07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJfbmV0ZGV2KG5kZXYpOwogICAgICAgICAgICAgICAgIG5ldGl1Y3ZfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKICAgICAgICAgICAgICAgICByZXR1cm4gY291bnQ7CiAgICAgICAgIH0KIAlyZWFkX3VubG9ja19iaCgmaXVjdl9jb25uZWN0aW9uX3J3bG9jayk7Ci0gICAgICAgIFBSSU5UX1dBUk4oIm5ldGl1Y3Y6IG5ldCBkZXZpY2UgJXMgdW5rbm93blxuIiwgbmFtZSk7CiAJSVVDVl9EQkZfVEVYVChkYXRhLCAyLCAicmVtb3ZlX3dyaXRlOiB1bmtub3duIGRldmljZVxuIik7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogfQpAQCAtMjE0OCw3ICsyMTA2LDYgQEAKIAluZXRpdWN2X2RyaXZlci5ncm91cHMgPSBuZXRpdWN2X2Rydl9hdHRyX2dyb3VwczsKIAlyYyA9IGRyaXZlcl9yZWdpc3RlcigmbmV0aXVjdl9kcml2ZXIpOwogCWlmIChyYykgewotCQlQUklOVF9FUlIoIk5FVElVQ1Y6IGZhaWxlZCB0byByZWdpc3RlciBkcml2ZXIuXG4iKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJyZXQgJWQgZnJvbSBkcml2ZXJfcmVnaXN0ZXJcbiIsIHJjKTsKIAkJZ290byBvdXRfaXVjdjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKaW5kZXggNDM2YmYxZi4uMGFjNTRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwpAQCAtMjkwLDkgKzI5MCw2IEBACiAJCQljYXJkLT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9TRyB8CiAJCQkJCQlORVRJRl9GX0hXX0NTVU07CiAJCX0gZWxzZSB7Ci0JCQlQUklOVF9XQVJOKCJUU08gbm90IHN1cHBvcnRlZCBvbiAlcy4gIgotCQkJCSAgICJsYXJnZV9zZW5kIHNldCB0byAnbm8nLlxuIiwKLQkJCQkgICBjYXJkLT5kZXYtPm5hbWUpOwogCQkJY2FyZC0+ZGV2LT5mZWF0dXJlcyAmPSB+KE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9TRyB8CiAJCQkJCQlORVRJRl9GX0hXX0NTVU0pOwogCQkJY2FyZC0+b3B0aW9ucy5sYXJnZV9zZW5kID0gUUVUSF9MQVJHRV9TRU5EX05POwpAQCAtNDIzLDcgKzQyMCw3IEBACiAJCQkJUUVUSF9EQkZfVEVYVChUUkFDRSwgMywgInVybGEiKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6Ci0JCQkJUFJJTlRfV0FSTigiUmVjZWl2ZWQgZGF0YSBpcyBJUEEgIgorCQkJCVFFVEhfREJGX01FU1NBR0UoMiwgIlJlY2VpdmVkIGRhdGEgaXMgSVBBICIKIAkJCQkJICAgImJ1dCBub3QgYSByZXBseSFcbiIpOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtNzM4LDggKzczNSw4IEBACiAJY2hhciAqc2Vuc2U7CiAKIAlzZW5zZSA9IChjaGFyICopIGlyYi0+ZWN3OwotCWNzdGF0ID0gaXJiLT5zY3N3LmNzdGF0OwotCWRzdGF0ID0gaXJiLT5zY3N3LmRzdGF0OworCWNzdGF0ID0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKKwlkc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKIAlpZiAoY3N0YXQgJiAoU0NITl9TVEFUX0NITl9DVFJMX0NISyB8IFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJICAgICBTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwgU0NITl9TVEFUX0NIQUlOX0NIRUNLIHwKQEAgLTgyNiw4ICs4MjMsOCBAQAogCiAJaWYgKF9fcWV0aF9jaGVja19pcmJfZXJyb3IoY2RldiwgaW50cGFybSwgaXJiKSkKIAkJcmV0dXJuOwotCWNzdGF0ID0gaXJiLT5zY3N3LmNzdGF0OwotCWRzdGF0ID0gaXJiLT5zY3N3LmRzdGF0OworCWNzdGF0ID0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKKwlkc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKIAljYXJkID0gQ0FSRF9GUk9NX0NERVYoY2Rldik7CiAJaWYgKCFjYXJkKQpAQCAtODQ1LDEwICs4NDIsMTAgQEAKIAl9CiAJYXRvbWljX3NldCgmY2hhbm5lbC0+aXJxX3BlbmRpbmcsIDApOwogCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9DTEVBUl9GVU5DKSkKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9DTEVBUl9GVU5DKSkKIAkJY2hhbm5lbC0+c3RhdGUgPSBDSF9TVEFURV9TVE9QUEVEOwogCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMpKQorCWlmIChpcmItPnNjc3cuY21kLmZjdGwgJiAoU0NTV19GQ1RMX0hBTFRfRlVOQykpCiAJCWNoYW5uZWwtPnN0YXRlID0gQ0hfU1RBVEVfSEFMVEVEOwogCiAJLypsZXQncyB3YWtlIHVwIGltbWVkaWF0ZWx5IG9uIGRhdGEgY2hhbm5lbCovCkBAIC0xNDA3LDEyICsxNDA0LDYgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbmxpbmUgX191MTYgcWV0aF9yYXdfZGV2bm9fZnJvbV9idXNfaWQoY2hhciAqaWQpCi17Ci0JaWQgKz0gKHN0cmxlbihpZCkgLSA0KTsKLQlyZXR1cm4gKF9fdTE2KSBzaW1wbGVfc3RydG91bChpZCwgJmlkLCAxNik7Ci19Ci0KIHN0YXRpYyBpbnQgcWV0aF9pZHhfYWN0aXZhdGVfZ2V0X2Fuc3dlcihzdHJ1Y3QgcWV0aF9jaGFubmVsICpjaGFubmVsLAogCQl2b2lkICgqaWR4X3JlcGx5X2NiKShzdHJ1Y3QgcWV0aF9jaGFubmVsICosCiAJCQlzdHJ1Y3QgcWV0aF9jbWRfYnVmZmVyICopKQpAQCAtMTQzOSw3ICsxNDMwLDcgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdldF9jY3dkZXZfbG9jayhjaGFubmVsLT5jY3dkZXYpLCBmbGFncyk7CiAKIAlpZiAocmMpIHsKLQkJUFJJTlRfRVJSKCJFcnJvcjIgaW4gYWN0aXZhdGluZyBjaGFubmVsIHJjPSVkXG4iLCByYyk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkVycm9yMiBpbiBhY3RpdmF0aW5nIGNoYW5uZWwgcmM9JWRcbiIsIHJjKTsKIAkJUUVUSF9EQkZfVEVYVF8oU0VUVVAsIDIsICIyZXJyJWQiLCByYyk7CiAJCWF0b21pY19zZXQoJmNoYW5uZWwtPmlycV9wZW5kaW5nLCAwKTsKIAkJd2FrZV91cCgmY2FyZC0+d2FpdF9xKTsKQEAgLTE0NjgsNiArMTQ1OSw3IEBACiAJX191MTYgdGVtcDsKIAlfX3U4IHRtcDsKIAlpbnQgcmM7CisJc3RydWN0IGNjd19kZXZfaWQgdGVtcF9kZXZpZDsKIAogCWNhcmQgPSBDQVJEX0ZST01fQ0RFVihjaGFubmVsLT5jY3dkZXYpOwogCkBAIC0xNDk0LDggKzE0ODYsOCBAQAogCSAgICAgICAmY2FyZC0+dG9rZW4uaXNzdWVyX3JtX3csIFFFVEhfTVBDX1RPS0VOX0xFTkdUSCk7CiAJbWVtY3B5KFFFVEhfSURYX0FDVF9GVU5DX0xFVkVMKGlvYi0+ZGF0YSksCiAJICAgICAgICZjYXJkLT5pbmZvLmZ1bmNfbGV2ZWwsIHNpemVvZihfX3UxNikpOwotCXRlbXAgPSBxZXRoX3Jhd19kZXZub19mcm9tX2J1c19pZChDQVJEX0RERVZfSUQoY2FyZCkpOwotCW1lbWNweShRRVRIX0lEWF9BQ1RfUURJT19ERVZfQ1VBKGlvYi0+ZGF0YSksICZ0ZW1wLCAyKTsKKwljY3dfZGV2aWNlX2dldF9pZChDQVJEX0RERVYoY2FyZCksICZ0ZW1wX2RldmlkKTsKKwltZW1jcHkoUUVUSF9JRFhfQUNUX1FESU9fREVWX0NVQShpb2ItPmRhdGEpLCAmdGVtcF9kZXZpZC5kZXZubywgMik7CiAJdGVtcCA9IChjYXJkLT5pbmZvLmN1bGEgPDwgOCkgKyBjYXJkLT5pbmZvLnVuaXRfYWRkcjI7CiAJbWVtY3B5KFFFVEhfSURYX0FDVF9RRElPX0RFVl9SRUFMQUREUihpb2ItPmRhdGEpLCAmdGVtcCwgMik7CiAKQEAgLTE1MDgsNyArMTUwMCw4IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2soY2hhbm5lbC0+Y2N3ZGV2KSwgZmxhZ3MpOwogCiAJaWYgKHJjKSB7Ci0JCVBSSU5UX0VSUigiRXJyb3IxIGluIGFjdGl2YXRpbmcgY2hhbm5lbC4gcmM9JWRcbiIsIHJjKTsKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiRXJyb3IxIGluIGFjdGl2YXRpbmcgY2hhbm5lbC4gcmM9JWRcbiIsCisJCQlyYyk7CiAJCVFFVEhfREJGX1RFWFRfKFNFVFVQLCAyLCAiMWVyciVkIiwgcmMpOwogCQlhdG9taWNfc2V0KCZjaGFubmVsLT5pcnFfcGVuZGluZywgMCk7CiAJCXdha2VfdXAoJmNhcmQtPndhaXRfcSk7CkBAIC0xNjU4LDcgKzE2NTEsNiBAQAogCiAJcmVwbHkgPSBxZXRoX2FsbG9jX3JlcGx5KGNhcmQpOwogCWlmICghcmVwbHkpIHsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IGFsbG9jIHFldGhfcmVwbHkhXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCXJlcGx5LT5jYWxsYmFjayA9IHJlcGx5X2NiOwpAQCAtMjYxMiwxNSArMjYwNCw5IEBACiAJCWlmIChuZXdjb3VudCA8IGNvdW50KSB7CiAJCQkvKiB3ZSBhcmUgaW4gbWVtb3J5IHNob3J0YWdlIHNvIHdlIHN3aXRjaCBiYWNrIHRvCiAJCQkgICB0cmFkaXRpb25hbCBza2IgYWxsb2NhdGlvbiBhbmQgZHJvcCBwYWNrYWdlcyAqLwotCQkJaWYgKCFhdG9taWNfcmVhZCgmY2FyZC0+Zm9yY2VfYWxsb2Nfc2tiKSAmJgotCQkJICAgIG5ldF9yYXRlbGltaXQoKSkKLQkJCQlQUklOVF9XQVJOKCJTd2l0Y2ggdG8gYWxsb2Mgc2tiXG4iKTsKIAkJCWF0b21pY19zZXQoJmNhcmQtPmZvcmNlX2FsbG9jX3NrYiwgMyk7CiAJCQljb3VudCA9IG5ld2NvdW50OwogCQl9IGVsc2UgewotCQkJaWYgKChhdG9taWNfcmVhZCgmY2FyZC0+Zm9yY2VfYWxsb2Nfc2tiKSA9PSAxKSAmJgotCQkJICAgIG5ldF9yYXRlbGltaXQoKSkKLQkJCQlQUklOVF9XQVJOKCJTd2l0Y2ggdG8gc2dcbiIpOwogCQkJYXRvbWljX2FkZF91bmxlc3MoJmNhcmQtPmZvcmNlX2FsbG9jX3NrYiwgLTEsIDApOwogCQl9CiAKQEAgLTMwMzQsNyArMzAyMCw3IEBACiAJCWVsZW1lbnRzX25lZWRlZCA9IDEgKyAoKCgoKHVuc2lnbmVkIGxvbmcpIGhkcikgJSBQQUdFX1NJWkUpCiAJCQkrIHNrYi0+bGVuKSA+PiBQQUdFX1NISUZUKTsKIAlpZiAoKGVsZW1lbnRzX25lZWRlZCArIGVsZW1zKSA+IFFFVEhfTUFYX0JVRkZFUl9FTEVNRU5UUyhjYXJkKSkgewotCQlQUklOVF9FUlIoIkludmFsaWQgc2l6ZSBvZiBJUCBwYWNrZXQgIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJJbnZhbGlkIHNpemUgb2YgSVAgcGFja2V0ICIKIAkJCSIoTnVtYmVyPSVkIC8gTGVuZ3RoPSVkKS4gRGlzY2FyZGVkLlxuIiwKIAkJCShlbGVtZW50c19uZWVkZWQrZWxlbXMpLCBza2ItPmxlbik7CiAJCXJldHVybiAwOwpAQCAtMzI0Nyw4ICszMjMzLDYgQEAKIAkJCSAqIGZyZWUgYnVmZmVycykgdG8gaGFuZGxlIGVkZHAgY29udGV4dCAqLwogCQkJaWYgKHFldGhfZWRkcF9jaGVja19idWZmZXJzX2Zvcl9jb250ZXh0KHF1ZXVlLCBjdHgpCiAJCQkJPCAwKSB7Ci0JCQkJaWYgKG5ldF9yYXRlbGltaXQoKSkKLQkJCQkJUFJJTlRfV0FSTigiZWRkcCB0eF9kcm9wcGVkIDFcbiIpOwogCQkJCXJjID0gLUVCVVNZOwogCQkJCWdvdG8gb3V0OwogCQkJfQpAQCAtMzI2MCw3ICszMjQ0LDYgQEAKIAkJdG1wID0gcWV0aF9lZGRwX2ZpbGxfYnVmZmVyKHF1ZXVlLCBjdHgsCiAJCQkJCQlxdWV1ZS0+bmV4dF9idWZfdG9fZmlsbCk7CiAJCWlmICh0bXAgPCAwKSB7Ci0JCQlQUklOVF9FUlIoImVkZHAgdHhfZHJvcHBlZCAyXG4iKTsKIAkJCXJjID0gLUVCVVNZOwogCQkJZ290byBvdXQ7CiAJCX0KQEAgLTM2MDIsOCArMzU4NSw2IEBACiAKIAlpZiAoKCFxZXRoX2FkcF9zdXBwb3J0ZWQoY2FyZCwgSVBBX1NFVEFEUF9TRVRfU05NUF9DT05UUk9MKSkgJiYKIAkgICAgKCFjYXJkLT5vcHRpb25zLmxheWVyMikpIHsKLQkJUFJJTlRfV0FSTigiU05NUCBRdWVyeSBNSUJTIG5vdCBzdXBwb3J0ZWQgIgotCQkJICAgIm9uICVzIVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAJLyogc2tpcCA0IGJ5dGVzIChkYXRhX2xlbiBzdHJ1Y3QgbWVtYmVyKSB0byBnZXQgcmVxX2xlbiAqLwpAQCAtMzYzNCw3ICszNjE1LDcgQEAKIAlyYyA9IHFldGhfc2VuZF9pcGFfc25tcF9jbWQoY2FyZCwgaW9iLCBRRVRIX1NFVEFEUF9CQVNFX0xFTiArIHJlcV9sZW4sCiAJCQkJICAgIHFldGhfc25tcF9jb21tYW5kX2NiLCAodm9pZCAqKSZxaW5mbyk7CiAJaWYgKHJjKQotCQlQUklOVF9XQVJOKCJTTk1QIGNvbW1hbmQgZmFpbGVkIG9uICVzOiAoMHgleClcbiIsCisJCVFFVEhfREJGX01FU1NBR0UoMiwgIlNOTVAgY29tbWFuZCBmYWlsZWQgb24gJXM6ICgweCV4KVxuIiwKIAkJCSAgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksIHJjKTsKIAllbHNlIHsKIAkJaWYgKGNvcHlfdG9fdXNlcih1ZGF0YSwgcWluZm8udWRhdGEsIHFpbmZvLnVkYXRhX2xlbikpCkBAIC0zODA3LDggKzM3ODgsOCBAQAogCWlmIChtcG5vKQogCQltcG5vID0gbWluKG1wbm8gLSAxLCBRRVRIX01BWF9QT1JUTk8pOwogCWlmIChjYXJkLT5pbmZvLnBvcnRubyA+IG1wbm8pIHsKLQkJUFJJTlRfRVJSKCJEZXZpY2UgJXMgZG9lcyBub3Qgb2ZmZXIgcG9ydCBudW1iZXIgJWQgXG4uIiwKLQkJCUNBUkRfQlVTX0lEKGNhcmQpLCBjYXJkLT5pbmZvLnBvcnRubyk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkRldmljZSAlcyBkb2VzIG5vdCBvZmZlciBwb3J0IG51bWJlciAlZCIKKwkJCSJcbi4iLCBDQVJEX0JVU19JRChjYXJkKSwgY2FyZC0+aW5mby5wb3J0bm8pOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTM5ODUsOCArMzk2Niw2IEBACiAJcmV0dXJuIHNrYjsKIG5vX21lbToKIAlpZiAobmV0X3JhdGVsaW1pdCgpKSB7Ci0JCVBSSU5UX1dBUk4oIk5vIG1lbW9yeSBmb3IgcGFja2V0IHJlY2VpdmVkIG9uICVzLlxuIiwKLQkJCSAgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlRRVRIX0RCRl9URVhUKFRSQUNFLCAyLCAibm9za2JtZW0iKTsKIAkJUUVUSF9EQkZfVEVYVF8oVFJBQ0UsIDIsICIlcyIsIENBUkRfQlVTX0lEKGNhcmQpKTsKIAl9CkBAIC00MDA0LDE1ICszOTgzLDE3IEBACiAJfQogfQogCi12b2lkIHFldGhfZGJmX2xvbmd0ZXh0KGVudW0gcWV0aF9kYmZfbmFtZXMgZGJmX25peCwgaW50IGxldmVsLCBjaGFyICp0ZXh0LCAuLi4pCit2b2lkIHFldGhfZGJmX2xvbmd0ZXh0KGVudW0gcWV0aF9kYmZfbmFtZXMgZGJmX25peCwgaW50IGxldmVsLCBjaGFyICpmbXQsIC4uLikKIHsKIAljaGFyIGRiZl90eHRfYnVmWzMyXTsKKwl2YV9saXN0IGFyZ3M7CiAKIAlpZiAobGV2ZWwgPiAocWV0aF9kYmZbZGJmX25peF0uaWQpLT5sZXZlbCkKIAkJcmV0dXJuOwotCXNucHJpbnRmKGRiZl90eHRfYnVmLCBzaXplb2YoZGJmX3R4dF9idWYpLCB0ZXh0KTsKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCXZzbnByaW50ZihkYmZfdHh0X2J1Ziwgc2l6ZW9mKGRiZl90eHRfYnVmKSwgZm10LCBhcmdzKTsKKwl2YV9lbmQoYXJncyk7CiAJZGVidWdfdGV4dF9ldmVudChxZXRoX2RiZltkYmZfbml4XS5pZCwgbGV2ZWwsIGRiZl90eHRfYnVmKTsKLQkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHFldGhfZGJmX2xvbmd0ZXh0KTsKIApAQCAtNDExMSw3ICs0MDkyLDYgQEAKIAogCXJjID0gcWV0aF9kZXRlcm1pbmVfY2FyZF90eXBlKGNhcmQpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCIlczogbm90IGEgdmFsaWQgY2FyZCB0eXBlXG4iLCBfX2Z1bmNfXyk7CiAJCVFFVEhfREJGX1RFWFRfKFNFVFVQLCAyLCAiM2VyciVkIiwgcmMpOwogCQlnb3RvIGVycl9jYXJkOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX29mZmwuYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX29mZmwuYwppbmRleCA4MjJkZjgzLi40NTI4NzRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9vZmZsLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfb2ZmbC5jCkBAIC0xMjIsOCArMTIyLDggQEAKIAkJCWlmIChlbGVtZW50ID09IDApCiAJCQkJcmV0dXJuIC1FQlVTWTsKIAkJCWVsc2UgewotCQkJCVBSSU5UX1dBUk4oImNvdWxkIG9ubHkgcGFydGlhbGx5IGZpbGwgZWRkcCAiCi0JCQkJCSAgICJidWZmZXIhXG4iKTsKKwkJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZCBvbmx5IHBhcnRpYWxseSBmaWxsIgorCQkJCQkiZWRkcCBidWZmZXIhXG4iKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KIAkJfQpAQCAtMTQzLDggKzE0Myw2IEBACiAJCWlmIChtdXN0X3JlZmNudCkgewogCQkJbXVzdF9yZWZjbnQgPSAwOwogCQkJaWYgKHFldGhfZWRkcF9idWZfcmVmX2NvbnRleHQoYnVmLCBjdHgpKSB7Ci0JCQkJUFJJTlRfV0FSTigibm8gbWVtb3J5IHRvIGNyZWF0ZSBlZGRwIGNvbnRleHQgIgotCQkJCQkgICAicmVmZXJlbmNlXG4iKTsKIAkJCQlnb3RvIG91dF9jaGVjazsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwppbmRleCAwOGE1MGYwLi5jMjZlODQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwpAQCAtMTI5LDcgKzEyOSw2IEBACiAKIAlwb3J0bm8gPSBzaW1wbGVfc3RydG91bChidWYsICZ0bXAsIDE2KTsKIAlpZiAocG9ydG5vID4gUUVUSF9NQVhfUE9SVE5PKSB7Ci0JCVBSSU5UX1dBUk4oInBvcnRubyAweCVYIGlzIG91dCBvZiByYW5nZVxuIiwgcG9ydG5vKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0yMjMsOCArMjIyLDYgQEAKIAkgKiBpZiB0aG91Z2ggd2UgaGF2ZSB0byBwZXJtaXQgcHJpb3JpdHkgcXVldWVpbmcKIAkgKi8KIAlpZiAoY2FyZC0+cWRpby5ub19vdXRfcXVldWVzID09IDEpIHsKLQkJUFJJTlRfV0FSTigiUHJpb3JpdHkgcXVldWVpbmcgZGlzYWJsZWQgZHVlICIKLQkJCSAgICJ0byBoYXJkd2FyZSBsaW1pdGF0aW9ucyFcbiIpOwogCQljYXJkLT5xZGlvLmRvX3ByaW9fcXVldWVpbmcgPSBRRVRIX1BSSU9RX0RFRkFVTFQ7CiAJCXJldHVybiAtRVBFUk07CiAJfQpAQCAtMjUwLDcgKzI0Nyw2IEBACiAJCWNhcmQtPnFkaW8uZG9fcHJpb19xdWV1ZWluZyA9IFFFVEhfTk9fUFJJT19RVUVVRUlORzsKIAkJY2FyZC0+cWRpby5kZWZhdWx0X291dF9xdWV1ZSA9IFFFVEhfREVGQVVMVF9RVUVVRTsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJVbmtub3duIHF1ZXVlaW5nIHR5cGUgJyVzJ1xuIiwgdG1wKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTI5MSw5ICsyODcsNiBAQAogCQkoKGNudCA+IFFFVEhfSU5fQlVGX0NPVU5UX01BWCkgPyBRRVRIX0lOX0JVRl9DT1VOVF9NQVggOiBjbnQpOwogCWlmIChvbGRfY250ICE9IGNudCkgewogCQlyYyA9IHFldGhfcmVhbGxvY19idWZmZXJfcG9vbChjYXJkLCBjbnQpOwotCQlpZiAocmMpCi0JCQlQUklOVF9XQVJOKCJFcnJvciAoJWQpIHdoaWxlIHNldHRpbmcgIgotCQkJCSAgICJidWZmZXIgY291bnQuXG4iLCByYyk7CiAJfQogCXJldHVybiBjb3VudDsKIH0KQEAgLTM1NSw3ICszNDgsNiBAQAogCQljYXJkLT5wZXJmX3N0YXRzLmluaXRpYWxfcnhfcGFja2V0cyA9IGNhcmQtPnN0YXRzLnJ4X3BhY2tldHM7CiAJCWNhcmQtPnBlcmZfc3RhdHMuaW5pdGlhbF90eF9wYWNrZXRzID0gY2FyZC0+c3RhdHMudHhfcGFja2V0czsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJwZXJmb3JtYW5jZV9zdGF0czogd3JpdGUgMCBvciAxIHRvIHRoaXMgZmlsZSFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtMzk5LDcgKzM5MSw2IEBACiAJCW5ld2RpcyA9IFFFVEhfRElTQ0lQTElORV9MQVlFUjI7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCVBSSU5UX1dBUk4oImxheWVyMjogd3JpdGUgMCBvciAxIHRvIHRoaXMgZmlsZSFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTQ2Myw3ICs0NTQsNiBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcCh0bXAsICJUU08iKSkgewogCQl0eXBlID0gUUVUSF9MQVJHRV9TRU5EX1RTTzsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJsYXJnZV9zZW5kOiBpbnZhbGlkIG1vZGUgJXMhXG4iLCB0bXApOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKGNhcmQtPm9wdGlvbnMubGFyZ2Vfc2VuZCA9PSB0eXBlKQpAQCAtNTAzLDggKzQ5Myw2IEBACiAJaWYgKGkgPD0gbWF4X3ZhbHVlKSB7CiAJCSp2YWx1ZSA9IGk7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigiYmxrdCB0b3RhbCB0aW1lOiB3cml0ZSB2YWx1ZXMgYmV0d2VlbiIKLQkJCSAgICIgMCBhbmQgJWQgdG8gdGhpcyBmaWxlIVxuIiwgbWF4X3ZhbHVlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCmluZGV4IDg2ZWM1MGQuLmY2ODJmN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYwpAQCAtMTAxLDE5ICsxMDEsMTYgQEAKIHsKIAlzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkOwogCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2OwotCXVuc2lnbmVkIGNoYXIgKnJlYWRubzsKLQlfX3UxNiB0ZW1wX2Rldl9ubywgY2FyZF9kZXZfbm87Ci0JY2hhciAqZW5kcDsKKwlfX3UxNiB0ZW1wX2Rldl9ubzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBjY3dfZGV2X2lkIHJlYWRfZGV2aWQ7CiAKIAluZGV2ID0gTlVMTDsKIAltZW1jcHkoJnRlbXBfZGV2X25vLCByZWFkX2Rldl9ubywgMik7CiAJcmVhZF9sb2NrX2lycXNhdmUoJnFldGhfY29yZV9jYXJkX2xpc3Qucndsb2NrLCBmbGFncyk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjYXJkLCAmcWV0aF9jb3JlX2NhcmRfbGlzdC5saXN0LCBsaXN0KSB7Ci0JCXJlYWRubyA9IENBUkRfUkRFVl9JRChjYXJkKTsKLQkJcmVhZG5vICs9IChzdHJsZW4ocmVhZG5vKSAtIDQpOwotCQljYXJkX2Rldl9ubyA9IHNpbXBsZV9zdHJ0b3VsKHJlYWRubywgJmVuZHAsIDE2KTsKLQkJaWYgKGNhcmRfZGV2X25vID09IHRlbXBfZGV2X25vKSB7CisJCWNjd19kZXZpY2VfZ2V0X2lkKENBUkRfUkRFVihjYXJkKSwgJnJlYWRfZGV2aWQpOworCQlpZiAocmVhZF9kZXZpZC5kZXZubyA9PSB0ZW1wX2Rldl9ubykgewogCQkJbmRldiA9IGNhcmQtPmRldjsKIAkJCWJyZWFrOwogCQl9CkBAIC0xMzQsMTQgKzEzMSwxNCBAQAogCW1hYyA9ICZjbWQtPmRhdGEuc2V0ZGVsbWFjLm1hY1swXTsKIAkvKiBNQUMgYWxyZWFkeSByZWdpc3RlcmVkLCBuZWVkZWQgaW4gY291cGxlL3VuY291cGxlIGNhc2UgKi8KIAlpZiAoY21kLT5oZHIucmV0dXJuX2NvZGUgPT0gMHgyMDA1KSB7Ci0JCVBSSU5UX1dBUk4oIkdyb3VwIE1BQyAlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCAiIFwKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiR3JvdXAgTUFDICUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4ICIKIAkJCSAgImFscmVhZHkgZXhpc3Rpbmcgb24gJXMgXG4iLAogCQkJICBtYWNbMF0sIG1hY1sxXSwgbWFjWzJdLCBtYWNbM10sIG1hY1s0XSwgbWFjWzVdLAogCQkJICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKIAkJY21kLT5oZHIucmV0dXJuX2NvZGUgPSAwOwogCX0KIAlpZiAoY21kLT5oZHIucmV0dXJuX2NvZGUpCi0JCVBSSU5UX0VSUigiQ291bGQgbm90IHNldCBncm91cCBNQUMgIiBcCisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkNvdWxkIG5vdCBzZXQgZ3JvdXAgTUFDICIKIAkJCSAgIiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IG9uICVzOiAleFxuIiwKIAkJCSAgbWFjWzBdLCBtYWNbMV0sIG1hY1syXSwgbWFjWzNdLCBtYWNbNF0sIG1hY1s1XSwKIAkJCSAgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwgY21kLT5oZHIucmV0dXJuX2NvZGUpOwpAQCAtMTY2LDcgKzE2Myw3IEBACiAJY21kID0gKHN0cnVjdCBxZXRoX2lwYV9jbWQgKikgZGF0YTsKIAltYWMgPSAmY21kLT5kYXRhLnNldGRlbG1hYy5tYWNbMF07CiAJaWYgKGNtZC0+aGRyLnJldHVybl9jb2RlKQotCQlQUklOVF9FUlIoIkNvdWxkIG5vdCBkZWxldGUgZ3JvdXAgTUFDICIgXAorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJDb3VsZCBub3QgZGVsZXRlIGdyb3VwIE1BQyAiCiAJCQkgICIlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCBvbiAlczogJXhcbiIsCiAJCQkgIG1hY1swXSwgbWFjWzFdLCBtYWNbMl0sIG1hY1szXSwgbWFjWzRdLCBtYWNbNV0sCiAJCQkgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksIGNtZC0+aGRyLnJldHVybl9jb2RlKTsKQEAgLTE4NiwxMCArMTgzLDggQEAKIAogCW1jID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHFldGhfbWNfbWFjKSwgR0ZQX0FUT01JQyk7CiAKLQlpZiAoIW1jKSB7Ci0JCVBSSU5UX0VSUigibm8gbWVtIHZvciBtYyBtYWMgYWRkcmVzc1xuIik7CisJaWYgKCFtYykKIAkJcmV0dXJuOwotCX0KIAogCW1lbWNweShtYy0+bWNfYWRkciwgbWFjLCBPU0FfQUREUl9MRU4pOwogCW1jLT5tY19hZGRybGVuID0gT1NBX0FERFJfTEVOOwpAQCAtMjgwLDcgKzI3NSw3IEBACiAJUUVUSF9EQkZfVEVYVChUUkFDRSwgMiwgIkwyc2R2Y2IiKTsKIAljbWQgPSAoc3RydWN0IHFldGhfaXBhX2NtZCAqKSBkYXRhOwogCWlmIChjbWQtPmhkci5yZXR1cm5fY29kZSkgewotCQlQUklOVF9FUlIoIkVycm9yIGluIHByb2Nlc3NpbmcgVkxBTiAlaSBvbiAlczogMHgleC4gIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJFcnJvciBpbiBwcm9jZXNzaW5nIFZMQU4gJWkgb24gJXM6IDB4JXguICIKIAkJCSAgIkNvbnRpbnVpbmdcbiIsIGNtZC0+ZGF0YS5zZXRkZWx2bGFuLnZsYW5faWQsCiAJCQkgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksIGNtZC0+aGRyLnJldHVybl9jb2RlKTsKIAkJUUVUSF9EQkZfVEVYVF8oVFJBQ0UsIDIsICJMMlZMJTR4IiwgY21kLT5oZHIuY29tbWFuZCk7CkBAIC0zMzMsOCArMzI4LDYgQEAKIAkJc3Bpbl9sb2NrX2JoKCZjYXJkLT52bGFubG9jayk7CiAJCWxpc3RfYWRkX3RhaWwoJmlkLT5saXN0LCAmY2FyZC0+dmlkX2xpc3QpOwogCQlzcGluX3VubG9ja19iaCgmY2FyZC0+dmxhbmxvY2spOwotCX0gZWxzZSB7Ci0JCVBSSU5UX0VSUigibm8gbWVtb3J5IGZvciB2aWRcbiIpOwogCX0KIH0KIApAQCAtNTUwLDE2ICs1NDMsMTUgQEAKIAogCXJjID0gcWV0aF9xdWVyeV9zZXRhZGFwdGVycGFybXMoY2FyZCk7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX1dBUk4oImNvdWxkIG5vdCBxdWVyeSBhZGFwdGVyIHBhcmFtZXRlcnMgb24gZGV2aWNlICVzOiAiCi0JCQkgICAieCV4XG4iLCBDQVJEX0JVU19JRChjYXJkKSwgcmMpOworCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZCBub3QgcXVlcnkgYWRhcHRlciBwYXJhbWV0ZXJzIG9uICIKKwkJCSJkZXZpY2UgJXM6IHgleFxuIiwgQ0FSRF9CVVNfSUQoY2FyZCksIHJjKTsKIAl9CiAKIAlpZiAoY2FyZC0+aW5mby5ndWVzdGxhbikgewogCQlyYyA9IHFldGhfc2V0YWRwcGFybXNfY2hhbmdlX21hY2FkZHIoY2FyZCk7CiAJCWlmIChyYykgewotCQkJUFJJTlRfV0FSTigiY291bGRuJ3QgZ2V0IE1BQyBhZGRyZXNzIG9uICIKLQkJCSAgICJkZXZpY2UgJXM6IHgleFxuIiwKLQkJCSAgIENBUkRfQlVTX0lEKGNhcmQpLCByYyk7CisJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZG4ndCBnZXQgTUFDIGFkZHJlc3Mgb24gIgorCQkJCSJkZXZpY2UgJXM6IHgleFxuIiwgQ0FSRF9CVVNfSUQoY2FyZCksIHJjKTsKIAkJCVFFVEhfREJGX1RFWFRfKFNFVFVQLCAyLCAiMWVyciVkIiwgcmMpOwogCQkJcmV0dXJuIHJjOwogCQl9CkBAIC01ODUsOCArNTc3LDYgQEAKIAl9CiAKIAlpZiAoY2FyZC0+aW5mby50eXBlID09IFFFVEhfQ0FSRF9UWVBFX09TTikgewotCQlQUklOVF9XQVJOKCJTZXR0aW5nIE1BQyBhZGRyZXNzIG9uICVzIGlzIG5vdCBzdXBwb3J0ZWQuXG4iLAotCQkJICAgZGV2LT5uYW1lKTsKIAkJUUVUSF9EQkZfVEVYVChUUkFDRSwgMywgInNldG1jT1NOIik7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CkBAIC02NjYsNyArNjU2LDcgQEAKIAkJY3R4ID0gcWV0aF9lZGRwX2NyZWF0ZV9jb250ZXh0KGNhcmQsIG5ld19za2IsIGhkciwKIAkJCQkJCXNrYi0+c2stPnNrX3Byb3RvY29sKTsKIAkJaWYgKGN0eCA9PSBOVUxMKSB7Ci0JCQlQUklOVF9XQVJOKCJjb3VsZCBub3QgY3JlYXRlIGVkZHAgY29udGV4dFxuIik7CisJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZCBub3QgY3JlYXRlIGVkZHAgY29udGV4dFxuIik7CiAJCQlnb3RvIHR4X2Ryb3A7CiAJCX0KIAl9IGVsc2UgewpAQCAtNzMxLDYgKzcyMSw3IEBACiAJaWYgKChuZXdfc2tiICE9IHNrYikgJiYgbmV3X3NrYikKIAkJZGV2X2tmcmVlX3NrYl9hbnkobmV3X3NrYik7CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwluZXRpZl93YWtlX3F1ZXVlKGRldik7CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIApAQCAtMTE1NSw3ICsxMTQ2LDcgQEAKIAkJCSAgICAgIChhZGRyX3QpIGlvYiwgMCwgMCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2soY2FyZC0+d3JpdGUuY2N3ZGV2KSwgZmxhZ3MpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCJxZXRoX29zbl9zZW5kX2NvbnRyb2xfZGF0YTogIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJxZXRoX29zbl9zZW5kX2NvbnRyb2xfZGF0YTogIgogCQkJICAgImNjd19kZXZpY2Vfc3RhcnQgcmMgPSAlaVxuIiwgcmMpOwogCQlRRVRIX0RCRl9URVhUXyhUUkFDRSwgMiwgIiBlcnIlZCIsIHJjKTsKIAkJcWV0aF9yZWxlYXNlX2J1ZmZlcihpb2ItPmNoYW5uZWwsIGlvYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwppbmRleCA5NGE4ZWFkLi4wNmRlYWVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKQEAgLTMxMSw3ICszMTEsNiBAQAogCiAJYWRkciA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBxZXRoX2lwYWRkciksIEdGUF9BVE9NSUMpOwogCWlmIChhZGRyID09IE5VTEwpIHsKLQkJUFJJTlRfV0FSTigiTm90IGVub3VnaCBtZW1vcnkgdG8gYWRkIGFkZHJlc3NcbiIpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAJYWRkci0+dHlwZSA9IFFFVEhfSVBfVFlQRV9OT1JNQUw7CkBAIC02NDksMTUgKzY0OCw2IEBACiAJCX0KIAl9CiBvdXRfaW52YWw6Ci0JUFJJTlRfV0FSTigiUm91dGluZyB0eXBlICclcycgbm90IHN1cHBvcnRlZCBmb3IgaW50ZXJmYWNlICVzLlxuIgotCQkgICAiUm91dGVyIHN0YXR1cyBzZXQgdG8gJ25vIHJvdXRlcicuXG4iLAotCQkgICAoKCp0eXBlID09IFBSSU1BUllfUk9VVEVSKT8gInByaW1hcnkgcm91dGVyIiA6Ci0JCSAgICAoKnR5cGUgPT0gU0VDT05EQVJZX1JPVVRFUik/ICJzZWNvbmRhcnkgcm91dGVyIiA6Ci0JCSAgICAoKnR5cGUgPT0gUFJJTUFSWV9DT05ORUNUT1IpPyAicHJpbWFyeSBjb25uZWN0b3IiIDoKLQkJICAgICgqdHlwZSA9PSBTRUNPTkRBUllfQ09OTkVDVE9SKT8gInNlY29uZGFyeSBjb25uZWN0b3IiIDoKLQkJICAgICgqdHlwZSA9PSBNVUxUSUNBU1RfUk9VVEVSKT8gIm11bHRpY2FzdCByb3V0ZXIiIDoKLQkJICAgICJ1bmtub3duIiksCi0JCSAgIGNhcmQtPmRldi0+bmFtZSk7CiAJKnR5cGUgPSBOT19ST1VURVI7CiB9CiAKQEAgLTY3NCw5ICs2NjQsOSBAQAogCQkJCSAgUUVUSF9QUk9UX0lQVjQpOwogCWlmIChyYykgewogCQljYXJkLT5vcHRpb25zLnJvdXRlNC50eXBlID0gTk9fUk9VVEVSOwotCQlQUklOVF9XQVJOKCJFcnJvciAoMHglMDR4KSB3aGlsZSBzZXR0aW5nIHJvdXRpbmcgdHlwZSBvbiAlcy4gIgotCQkJICAgIlR5cGUgc2V0IHRvICdubyByb3V0ZXInLlxuIiwKLQkJCSAgIHJjLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiRXJyb3IgKDB4JTA0eCkgd2hpbGUgc2V0dGluZyByb3V0aW5nIHR5cGUiCisJCQkiIG9uICVzLiBUeXBlIHNldCB0byAnbm8gcm91dGVyJy5cbiIsIHJjLAorCQkJUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTY5Nyw5ICs2ODcsOSBAQAogCQkJCSAgUUVUSF9QUk9UX0lQVjYpOwogCWlmIChyYykgewogCQljYXJkLT5vcHRpb25zLnJvdXRlNi50eXBlID0gTk9fUk9VVEVSOwotCQlQUklOVF9XQVJOKCJFcnJvciAoMHglMDR4KSB3aGlsZSBzZXR0aW5nIHJvdXRpbmcgdHlwZSBvbiAlcy4gIgotCQkJICAgIlR5cGUgc2V0IHRvICdubyByb3V0ZXInLlxuIiwKLQkJCSAgIHJjLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiRXJyb3IgKDB4JTA0eCkgd2hpbGUgc2V0dGluZyByb3V0aW5nIHR5cGUiCisJCQkiIG9uICVzLiBUeXBlIHNldCB0byAnbm8gcm91dGVyJy5cbiIsIHJjLAorCQkJUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJfQogI2VuZGlmCiAJcmV0dXJuIHJjOwpAQCAtNzM3LDcgKzcyNyw2IEBACiAJCWlmICghbWVtY21wKGlwYXRvZS0+YWRkciwgbmV3LT5hZGRyLAogCQkJICAgIChpcGF0b2UtPnByb3RvID09IFFFVEhfUFJPVF9JUFY0KT8gNDoxNikgJiYKIAkJICAgIChpcGF0b2UtPm1hc2tfYml0cyA9PSBuZXctPm1hc2tfYml0cykpIHsKLQkJCVBSSU5UX1dBUk4oImlwYXRvIGVudHJ5IGFscmVhZHkgZXhpc3RzIVxuIik7CiAJCQlyYyA9IC1FRVhJU1Q7CiAJCQlicmVhazsKIAkJfQpAQCAtODAyLDcgKzc5MSw2IEBACiAJCXJjID0gLUVFWElTVDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXJkLT5pcF9sb2NrLCBmbGFncyk7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX1dBUk4oIkNhbm5vdCBhZGQgVklQQS4gQWRkcmVzcyBhbHJlYWR5IGV4aXN0cyFcbiIpOwogCQlyZXR1cm4gcmM7CiAJfQogCWlmICghcWV0aF9sM19hZGRfaXAoY2FyZCwgaXBhZGRyKSkKQEAgLTg2Nyw3ICs4NTUsNiBAQAogCQlyYyA9IC1FRVhJU1Q7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2FyZC0+aXBfbG9jaywgZmxhZ3MpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCJDYW5ub3QgYWRkIFJYSVAuIEFkZHJlc3MgYWxyZWFkeSBleGlzdHMhXG4iKTsKIAkJcmV0dXJuIHJjOwogCX0KIAlpZiAoIXFldGhfbDNfYWRkX2lwKGNhcmQsIGlwYWRkcikpCkBAIC05NTcsMTUgKzk0NCw4IEBACiAJZWxzZQogCQlyYyA9IHFldGhfbDNfc2VuZF9zZXRkZWxpcChjYXJkLCBhZGRyLCBJUEFfQ01EX0RFTElQLAogCQkJCQlhZGRyLT5kZWxfZmxhZ3MpOwotCWlmIChyYykgeworCWlmIChyYykKIAkJUUVUSF9EQkZfVEVYVChUUkFDRSwgMiwgImZhaWxlZCIpOwotCQkvKiBUT0RPOiByZS1hY3RpdmF0ZSB0aGlzIHdhcm5pbmcgYXMgc29vbiBhcyB3ZSBoYXZlIGEKLQkJICogY2xlYW4gbWlyY28gY29kZQotCQlxZXRoX2lwYWRkcl90b19zdHJpbmcoYWRkci0+cHJvdG8sICh1OCAqKSZhZGRyLT51LCBidWYpOwotCQlQUklOVF9XQVJOKCJDb3VsZCBub3QgZGVyZWdpc3RlciBJUCBhZGRyZXNzICVzIChyYz0leClcbiIsCi0JCQkgICBidWYsIHJjKTsKLQkJKi8KLQl9CiAKIAlyZXR1cm4gcmM7CiB9CkBAIC0xMDIwLDIzICsxMDAwLDIzIEBACiAJCQkJCUlQQV9TRVRBRFBfU0VUX0JST0FEQ0FTVF9NT0RFLAogCQkJCQljYXJkLT5vcHRpb25zLmJyb2FkY2FzdF9tb2RlKTsKIAkJaWYgKHJjKQotCQkJUFJJTlRfV0FSTigiY291bGRuJ3Qgc2V0IGJyb2FkY2FzdCBtb2RlIG9uICIKKwkJCVFFVEhfREJGX01FU1NBR0UoMiwgImNvdWxkbid0IHNldCBicm9hZGNhc3QgbW9kZSBvbiAiCiAJCQkJICAgImRldmljZSAlczogeCV4XG4iLAogCQkJCSAgIENBUkRfQlVTX0lEKGNhcmQpLCByYyk7CiAJCXJjID0gcWV0aF9sM19zZW5kX3NldGFkcF9tb2RlKGNhcmQsCiAJCQkJCUlQQV9TRVRBRFBfQUxURVJfTUFDX0FERFJFU1MsCiAJCQkJCWNhcmQtPm9wdGlvbnMubWFjYWRkcl9tb2RlKTsKIAkJaWYgKHJjKQotCQkJUFJJTlRfV0FSTigiY291bGRuJ3Qgc2V0IG1hY2FkZHIgbW9kZSBvbiAiCisJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZG4ndCBzZXQgbWFjYWRkciBtb2RlIG9uICIKIAkJCQkgICAiZGV2aWNlICVzOiB4JXhcbiIsIENBUkRfQlVTX0lEKGNhcmQpLCByYyk7CiAJCXJldHVybiByYzsKIAl9CiAJaWYgKGNhcmQtPm9wdGlvbnMuYnJvYWRjYXN0X21vZGUgPT0gUUVUSF9UUl9CUk9BRENBU1RfTE9DQUwpCi0JCVBSSU5UX1dBUk4oInNldCBhZGFwdGVyIHBhcmFtZXRlcnMgbm90IGF2YWlsYWJsZSAiCisJCVFFVEhfREJGX01FU1NBR0UoMiwgInNldCBhZGFwdGVyIHBhcmFtZXRlcnMgbm90IGF2YWlsYWJsZSAiCiAJCQkgICAidG8gc2V0IGJyb2FkY2FzdCBtb2RlLCB1c2luZyBBTExSSU5HUyAiCiAJCQkgICAib24gZGV2aWNlICVzOlxuIiwgQ0FSRF9CVVNfSUQoY2FyZCkpOwogCWlmIChjYXJkLT5vcHRpb25zLm1hY2FkZHJfbW9kZSA9PSBRRVRIX1RSX01BQ0FERFJfQ0FOT05JQ0FMKQotCQlQUklOVF9XQVJOKCJzZXQgYWRhcHRlciBwYXJhbWV0ZXJzIG5vdCBhdmFpbGFibGUgIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJzZXQgYWRhcHRlciBwYXJhbWV0ZXJzIG5vdCBhdmFpbGFibGUgIgogCQkJICAgInRvIHNldCBtYWNhZGRyIG1vZGUsIHVzaW5nIE5PTkNBTk9OSUNBTCAiCiAJCQkgICAib24gZGV2aWNlICVzOlxuIiwgQ0FSRF9CVVNfSUQoY2FyZCkpOwogCXJldHVybiAwOwpAQCAtMjA3MCw3ICsyMDUwLDcgQEAKIAkJY2FyZCA9IG5ldGRldl9wcml2KGRldik7CiAJZWxzZSBpZiAocmMgPT0gUUVUSF9WTEFOX0NBUkQpCiAJCWNhcmQgPSBuZXRkZXZfcHJpdih2bGFuX2Rldl9pbmZvKGRldiktPnJlYWxfZGV2KTsKLQlpZiAoY2FyZC0+b3B0aW9ucy5sYXllcjIpCisJaWYgKGNhcmQgJiYgY2FyZC0+b3B0aW9ucy5sYXllcjIpCiAJCWNhcmQgPSBOVUxMOwogCVFFVEhfREJGX1RFWFRfKFRSQUNFLCA0LCAiJWQiLCByYyk7CiAJcmV0dXJuIGNhcmQgOwpAQCAtMjE4Miw4ICsyMTYyLDYgQEAKIAlpZiAoY2FyZC0+aW5mby5ndWVzdGxhbikKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmICghcWV0aF9pc19zdXBwb3J0ZWQoY2FyZCwgSVBBX0FSUF9QUk9DRVNTSU5HKSkgewotCQlQUklOVF9XQVJOKCJBUlAgcHJvY2Vzc2luZyBub3Qgc3VwcG9ydGVkICIKLQkJCSAgICJvbiAlcyFcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCXJjID0gcWV0aF9sM19zZW5kX3NpbXBsZV9zZXRhc3NwYXJtcyhjYXJkLCBJUEFfQVJQX1BST0NFU1NJTkcsCkBAIC0yMTkxLDggKzIxNjksOCBAQAogCQkJCQkgIG5vX2VudHJpZXMpOwogCWlmIChyYykgewogCQl0bXAgPSByYzsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IHNldCBudW1iZXIgb2YgQVJQIGVudHJpZXMgb24gJXM6ICIKLQkJCSIlcyAoMHgleC8lZClcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksCisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkNvdWxkIG5vdCBzZXQgbnVtYmVyIG9mIEFSUCBlbnRyaWVzIG9uICIKKwkJCSIlczogJXMgKDB4JXgvJWQpXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAogCQkJcWV0aF9sM19hcnBfZ2V0X2Vycm9yX2NhdXNlKCZyYyksIHRtcCwgdG1wKTsKIAl9CiAJcmV0dXJuIHJjOwpAQCAtMjI2MCw5ICsyMjM4LDYgQEAKIAkJCXFkYXRhLT5ub19lbnRyaWVzICogdWVudHJ5X3NpemUpewogCQlRRVRIX0RCRl9URVhUXyhUUkFDRSwgNCwgInFhZXIzJWkiLCAtRU5PTUVNKTsKIAkJY21kLT5oZHIucmV0dXJuX2NvZGUgPSAtRU5PTUVNOwotCQlQUklOVF9XQVJOKCJxdWVyeSBBUlAgdXNlciBzcGFjZSBidWZmZXIgaXMgdG9vIHNtYWxsIGZvciAiCi0JCQkgICAidGhlIHJldHVybmVkIG51bWJlciBvZiBBUlAgZW50cmllcy4gIgotCQkJICAgIkFib3J0aW5nIHF1ZXJ5IVxuIik7CiAJCWdvdG8gb3V0X2Vycm9yOwogCX0KIAlRRVRIX0RCRl9URVhUXyhUUkFDRSwgNCwgImFub3JlJWkiLApAQCAtMjMyNCw4ICsyMjk5LDYgQEAKIAogCWlmICghcWV0aF9pc19zdXBwb3J0ZWQoY2FyZCwvKklQQV9RVUVSWV9BUlBfQUREUl9JTkZPKi8KIAkJCSAgICAgICBJUEFfQVJQX1BST0NFU1NJTkcpKSB7Ci0JCVBSSU5UX1dBUk4oIkFSUCBwcm9jZXNzaW5nIG5vdCBzdXBwb3J0ZWQgIgotCQkJICAgIm9uICVzIVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAJLyogZ2V0IHNpemUgb2YgdXNlcnNwYWNlIGJ1ZmZlciBhbmQgbWFza19iaXRzIC0+IDYgYnl0ZXMgKi8KQEAgLTIzNDQsNyArMjMxNyw3IEBACiAJCQkJICAgcWV0aF9sM19hcnBfcXVlcnlfY2IsICh2b2lkICopJnFpbmZvKTsKIAlpZiAocmMpIHsKIAkJdG1wID0gcmM7Ci0JCVBSSU5UX1dBUk4oIkVycm9yIHdoaWxlIHF1ZXJ5aW5nIEFSUCBjYWNoZSBvbiAlczogJXMgIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJFcnJvciB3aGlsZSBxdWVyeWluZyBBUlAgY2FjaGUgb24gJXM6ICVzICIKIAkJCSIoMHgleC8lZClcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksCiAJCQlxZXRoX2wzX2FycF9nZXRfZXJyb3JfY2F1c2UoJnJjKSwgdG1wLCB0bXApOwogCQlpZiAoY29weV90b191c2VyKHVkYXRhLCBxaW5mby51ZGF0YSwgNCkpCkBAIC0yMzc1LDggKzIzNDgsNiBAQAogCWlmIChjYXJkLT5pbmZvLmd1ZXN0bGFuKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJaWYgKCFxZXRoX2lzX3N1cHBvcnRlZChjYXJkLCBJUEFfQVJQX1BST0NFU1NJTkcpKSB7Ci0JCVBSSU5UX1dBUk4oIkFSUCBwcm9jZXNzaW5nIG5vdCBzdXBwb3J0ZWQgIgotCQkJICAgIm9uICVzIVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKQEAgLTIzOTEsMTAgKzIzNjIsOSBAQAogCWlmIChyYykgewogCQl0bXAgPSByYzsKIAkJcWV0aF9sM19pcGFkZHI0X3RvX3N0cmluZygodTggKillbnRyeS0+aXBhZGRyLCBidWYpOwotCQlQUklOVF9XQVJOKCJDb3VsZCBub3QgYWRkIEFSUCBlbnRyeSBmb3IgYWRkcmVzcyAlcyBvbiAlczogIgotCQkJICAgIiVzICgweCV4LyVkKVxuIiwKLQkJCSAgIGJ1ZiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKLQkJCSAgIHFldGhfbDNfYXJwX2dldF9lcnJvcl9jYXVzZSgmcmMpLCB0bXAsIHRtcCk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkNvdWxkIG5vdCBhZGQgQVJQIGVudHJ5IGZvciBhZGRyZXNzICVzICIKKwkJCSJvbiAlczogJXMgKDB4JXgvJWQpXG4iLCBidWYsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksCisJCQlxZXRoX2wzX2FycF9nZXRfZXJyb3JfY2F1c2UoJnJjKSwgdG1wLCB0bXApOwogCX0KIAlyZXR1cm4gcmM7CiB9CkBAIC0yNDE3LDggKzIzODcsNiBAQAogCWlmIChjYXJkLT5pbmZvLmd1ZXN0bGFuKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJaWYgKCFxZXRoX2lzX3N1cHBvcnRlZChjYXJkLCBJUEFfQVJQX1BST0NFU1NJTkcpKSB7Ci0JCVBSSU5UX1dBUk4oIkFSUCBwcm9jZXNzaW5nIG5vdCBzdXBwb3J0ZWQgIgotCQkJICAgIm9uICVzIVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAJbWVtY3B5KGJ1ZiwgZW50cnksIDEyKTsKQEAgLTI0MzMsMTAgKzI0MDEsOSBAQAogCQl0bXAgPSByYzsKIAkJbWVtc2V0KGJ1ZiwgMCwgMTYpOwogCQlxZXRoX2wzX2lwYWRkcjRfdG9fc3RyaW5nKCh1OCAqKWVudHJ5LT5pcGFkZHIsIGJ1Zik7Ci0JCVBSSU5UX1dBUk4oIkNvdWxkIG5vdCBkZWxldGUgQVJQIGVudHJ5IGZvciBhZGRyZXNzICVzIG9uICVzOiAiCi0JCQkgICAiJXMgKDB4JXgvJWQpXG4iLAotCQkJICAgYnVmLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAotCQkJICAgcWV0aF9sM19hcnBfZ2V0X2Vycm9yX2NhdXNlKCZyYyksIHRtcCwgdG1wKTsKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiQ291bGQgbm90IGRlbGV0ZSBBUlAgZW50cnkgZm9yIGFkZHJlc3MgJXMiCisJCQkiIG9uICVzOiAlcyAoMHgleC8lZClcbiIsIGJ1ZiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKKwkJCXFldGhfbDNfYXJwX2dldF9lcnJvcl9jYXVzZSgmcmMpLCB0bXAsIHRtcCk7CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTI0NTYsMTYgKzI0MjMsMTQgQEAKIAlpZiAoY2FyZC0+aW5mby5ndWVzdGxhbiB8fCAoY2FyZC0+aW5mby50eXBlID09IFFFVEhfQ0FSRF9UWVBFX0lRRCkpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAlpZiAoIXFldGhfaXNfc3VwcG9ydGVkKGNhcmQsIElQQV9BUlBfUFJPQ0VTU0lORykpIHsKLQkJUFJJTlRfV0FSTigiQVJQIHByb2Nlc3Npbmcgbm90IHN1cHBvcnRlZCAiCi0JCQkgICAib24gJXMhXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAlyYyA9IHFldGhfbDNfc2VuZF9zaW1wbGVfc2V0YXNzcGFybXMoY2FyZCwgSVBBX0FSUF9QUk9DRVNTSU5HLAogCQkJCQkgIElQQV9DTURfQVNTX0FSUF9GTFVTSF9DQUNIRSwgMCk7CiAJaWYgKHJjKSB7CiAJCXRtcCA9IHJjOwotCQlQUklOVF9XQVJOKCJDb3VsZCBub3QgZmx1c2ggQVJQIGNhY2hlIG9uICVzOiAlcyAoMHgleC8lZClcbiIsCi0JCQlRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJDb3VsZCBub3QgZmx1c2ggQVJQIGNhY2hlIG9uICVzOiAlcyAiCisJCQkiKDB4JXgvJWQpXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAogCQkJcWV0aF9sM19hcnBfZ2V0X2Vycm9yX2NhdXNlKCZyYyksIHRtcCwgdG1wKTsKIAl9CiAJcmV0dXJuIHJjOwpAQCAtMjcyNCw3ICsyNjg5LDcgQEAKIAkJY3R4ID0gcWV0aF9lZGRwX2NyZWF0ZV9jb250ZXh0KGNhcmQsIG5ld19za2IsIGhkciwKIAkJCQkJCXNrYi0+c2stPnNrX3Byb3RvY29sKTsKIAkJaWYgKGN0eCA9PSBOVUxMKSB7Ci0JCQlQUklOVF9XQVJOKCJjb3VsZCBub3QgY3JlYXRlIGVkZHAgY29udGV4dFxuIik7CisJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZCBub3QgY3JlYXRlIGVkZHAgY29udGV4dFxuIik7CiAJCQlnb3RvIHR4X2Ryb3A7CiAJCX0KIAl9IGVsc2UgewpAQCAtMjc5Miw2ICsyNzU3LDcgQEAKIAlpZiAoKG5ld19za2IgIT0gc2tiKSAmJiBuZXdfc2tiKQogCQlkZXZfa2ZyZWVfc2tiX2FueShuZXdfc2tiKTsKIAlkZXZfa2ZyZWVfc2tiX2FueShza2IpOworCW5ldGlmX3dha2VfcXVldWUoZGV2KTsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKaW5kZXggMDhmNTFmZC4uYWMxOTkzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYwpAQCAtODUsNyArODUsNiBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcCh0bXAsICJtdWx0aWNhc3Rfcm91dGVyIikpIHsKIAkJcm91dGUtPnR5cGUgPSBNVUxUSUNBU1RfUk9VVEVSOwogCX0gZWxzZSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgcm91dGluZyB0eXBlICclcycuXG4iLCB0bXApOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKCgoY2FyZC0+c3RhdGUgPT0gQ0FSRF9TVEFURV9TT0ZUU0VUVVApIHx8CkBAIC0xMzcsOSArMTM2LDYgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoIXFldGhfaXNfc3VwcG9ydGVkKGNhcmQsIElQQV9JUFY2KSkgewotCQlQUklOVF9XQVJOKCJJUHY2IG5vdCBzdXBwb3J0ZWQgZm9yIGludGVyZmFjZSAlcy5cbiIKLQkJCSAgICJSb3V0aW5nIHN0YXR1cyBubyBjaGFuZ2VkLlxuIiwKLQkJCSAgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVOT1RTVVBQOwogCX0KIApAQCAtMTc5LDcgKzE3NSw2IEBACiAJaWYgKChpID09IDApIHx8IChpID09IDEpKQogCQljYXJkLT5vcHRpb25zLmZha2VfYnJvYWRjYXN0ID0gaTsKIAllbHNlIHsKLQkJUFJJTlRfV0FSTigiZmFrZV9icm9hZGNhc3Q6IHdyaXRlIDAgb3IgMSB0byB0aGlzIGZpbGUhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTIyMCw3ICsyMTUsNiBAQAogCiAJaWYgKCEoKGNhcmQtPmluZm8ubGlua190eXBlID09IFFFVEhfTElOS19UWVBFX0hTVFIpIHx8CiAJICAgICAgKGNhcmQtPmluZm8ubGlua190eXBlID09IFFFVEhfTElOS19UWVBFX0xBTkVfVFIpKSkgewotCQlQUklOVF9XQVJOKCJEZXZpY2UgaXMgbm90IGEgdG9rZW5yaW5nIGRldmljZSFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTIzMyw4ICsyMjcsNiBAQAogCQljYXJkLT5vcHRpb25zLmJyb2FkY2FzdF9tb2RlID0gUUVUSF9UUl9CUk9BRENBU1RfQUxMUklOR1M7CiAJCXJldHVybiBjb3VudDsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJicm9hZGNhc3RfbW9kZTogaW52YWxpZCBtb2RlICVzIVxuIiwKLQkJCSAgIHRtcCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC0yNzUsNyArMjY3LDYgQEAKIAogCWlmICghKChjYXJkLT5pbmZvLmxpbmtfdHlwZSA9PSBRRVRIX0xJTktfVFlQRV9IU1RSKSB8fAogCSAgICAgIChjYXJkLT5pbmZvLmxpbmtfdHlwZSA9PSBRRVRIX0xJTktfVFlQRV9MQU5FX1RSKSkpIHsKLQkJUFJJTlRfV0FSTigiRGV2aWNlIGlzIG5vdCBhIHRva2VucmluZyBkZXZpY2UhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0yODUsNyArMjc2LDYgQEAKIAkJCVFFVEhfVFJfTUFDQUREUl9DQU5PTklDQUwgOgogCQkJUUVUSF9UUl9NQUNBRERSX05PTkNBTk9OSUNBTDsKIAllbHNlIHsKLQkJUFJJTlRfV0FSTigiY2Fub25pY2FsX21hY2FkZHI6IHdyaXRlIDAgb3IgMSB0byB0aGlzIGZpbGUhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTMyNyw3ICszMTcsNiBAQAogCWVsc2UgaWYgKCFzdHJjbXAodG1wLCAibm9fY2hlY2tzdW1taW5nIikpCiAJCWNhcmQtPm9wdGlvbnMuY2hlY2tzdW1fdHlwZSA9IE5PX0NIRUNLU1VNTUlORzsKIAllbHNlIHsKLQkJUFJJTlRfV0FSTigiVW5rbm93biBjaGVja3N1bW1pbmcgdHlwZSAnJXMnXG4iLCB0bXApOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtMzgyLDggKzM3MSw2IEBACiAJfSBlbHNlIGlmICghc3RyY21wKHRtcCwgIjAiKSkgewogCQljYXJkLT5pcGF0by5lbmFibGVkID0gMDsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJpcGF0b19lbmFibGU6IHdyaXRlIDAsIDEgb3IgJ3RvZ2dsZScgdG8gIgotCQkJICAgInRoaXMgZmlsZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC00MjIsOCArNDA5LDYgQEAKIAl9IGVsc2UgaWYgKCFzdHJjbXAodG1wLCAiMCIpKSB7CiAJCWNhcmQtPmlwYXRvLmludmVydDQgPSAwOwogCX0gZWxzZSB7Ci0JCVBSSU5UX1dBUk4oImlwYXRvX2ludmVydDQ6IHdyaXRlIDAsIDEgb3IgJ3RvZ2dsZScgdG8gIgotCQkJICAgInRoaXMgZmlsZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC00ODYsMTMgKzQ3MSwxMCBAQAogCS8qIGdldCBhZGRyZXNzIHN0cmluZyAqLwogCWVuZCA9IHN0cmNocihzdGFydCwgJy8nKTsKIAlpZiAoIWVuZCB8fCAoZW5kIC0gc3RhcnQgPj0gNDApKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgZm9ybWF0IGZvciBpcGF0b19hZGR4L2RlbHguICIKLQkJCSAgICJVc2UgPGlwIGFkZHI+LzxtYXNrIGJpdHM+XG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXN0cm5jcHkoYnVmZmVyLCBzdGFydCwgZW5kIC0gc3RhcnQpOwogCWlmIChxZXRoX2wzX3N0cmluZ190b19pcGFkZHIoYnVmZmVyLCBwcm90bywgYWRkcikpIHsKLQkJUFJJTlRfV0FSTigiSW52YWxpZCBJUCBhZGRyZXNzIGZvcm1hdCFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJc3RhcnQgPSBlbmQgKyAxOwpAQCAtNTAwLDcgKzQ4Miw2IEBACiAJaWYgKCFzdHJsZW4oc3RhcnQpIHx8CiAJICAgICh0bXAgPT0gc3RhcnQpIHx8CiAJICAgICgqbWFza19iaXRzID4gKChwcm90byA9PSBRRVRIX1BST1RfSVBWNCkgPyAzMiA6IDEyOCkpKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgbWFzayBiaXRzIGZvciBpcGF0b19hZGR4L2RlbHggIVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gMDsKQEAgLTUyMCw3ICs1MDEsNiBAQAogCiAJaXBhdG9lID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHFldGhfaXBhdG9fZW50cnkpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWlwYXRvZSkgewotCQlQUklOVF9XQVJOKCJObyBtZW1vcnkgdG8gYWxsb2NhdGUgaXBhdG8gZW50cnlcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAJaXBhdG9lLT5wcm90byA9IHByb3RvOwpAQCAtNjA5LDggKzU4OSw2IEBACiAJfSBlbHNlIGlmICghc3RyY21wKHRtcCwgIjAiKSkgewogCQljYXJkLT5pcGF0by5pbnZlcnQ2ID0gMDsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJpcGF0b19pbnZlcnQ2OiB3cml0ZSAwLCAxIG9yICd0b2dnbGUnIHRvICIKLQkJCSAgICJ0aGlzIGZpbGVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtNzI0LDcgKzcwMiw2IEBACiAJCSB1OCAqYWRkcikKIHsKIAlpZiAocWV0aF9sM19zdHJpbmdfdG9faXBhZGRyKGJ1ZiwgcHJvdG8sIGFkZHIpKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgSVAgYWRkcmVzcyBmb3JtYXQhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiAwOwpAQCAtODkxLDcgKzg2OCw2IEBACiAJCSB1OCAqYWRkcikKIHsKIAlpZiAocWV0aF9sM19zdHJpbmdfdG9faXBhZGRyKGJ1ZiwgcHJvdG8sIGFkZHIpKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgSVAgYWRkcmVzcyBmb3JtYXQhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9zbXNnaXVjdi5jIGIvZHJpdmVycy9zMzkwL25ldC9zbXNnaXVjdi5jCmluZGV4IDg3MzVhNDEuLjE2NGUwOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvc21zZ2l1Y3YuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3Ntc2dpdWN2LmMKQEAgLTE1NiwxMSArMTU2LDggQEAKIAlpZiAocmMgIT0gMCkKIAkJZ290byBvdXQ7CiAJcmMgPSBpdWN2X3JlZ2lzdGVyKCZzbXNnX2hhbmRsZXIsIDEpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgIlNNU0dJVUNWOiBmYWlsZWQgdG8gcmVnaXN0ZXIgdG8gaXVjdiIpOwotCQlyYyA9IC1FSU87CS8qIGJldHRlciBlcnJubyA/ICovCisJaWYgKHJjKQogCQlnb3RvIG91dF9kcml2ZXI7Ci0JfQogCXNtc2dfcGF0aCA9IGl1Y3ZfcGF0aF9hbGxvYygyNTUsIDAsIEdGUF9LRVJORUwpOwogCWlmICghc21zZ19wYXRoKSB7CiAJCXJjID0gLUVOT01FTTsKQEAgLTE2OCwxMSArMTY1LDggQEAKIAl9CiAJcmMgPSBpdWN2X3BhdGhfY29ubmVjdChzbXNnX3BhdGgsICZzbXNnX2hhbmRsZXIsICIqTVNHICAgICIsCiAJCQkgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiU01TR0lVQ1Y6IGZhaWxlZCB0byBjb25uZWN0IHRvICpNU0ciKTsKLQkJcmMgPSAtRUlPOwkvKiBiZXR0ZXIgZXJybm8gPyAqLworCWlmIChyYykKIAkJZ290byBvdXRfZnJlZTsKLQl9CiAJY3BjbWQoIlNFVCBTTVNHIElVQ1YiLCBOVUxMLCAwLCBOVUxMKTsKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmMgYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guYwppbmRleCA1MDgwZjM0Li44MzRlOWVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvczM5MG1hY2guYworKysgYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guYwpAQCAtMiwxMCArMiwxMCBAQAogICogIGRyaXZlcnMvczM5MC9zMzkwbWFjaC5jCiAgKiAgIFMvMzkwIG1hY2hpbmUgY2hlY2sgaGFuZGxlcgogICoKLSAqICBTMzkwIHZlcnNpb24KLSAqICAgIENvcHlyaWdodCAoQykgMjAwMCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDAsMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSkKKyAqCQkgQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0xOCwxMCArMTgsNiBAQAogI2luY2x1ZGUgPGFzbS9ldHIuaD4KICNpbmNsdWRlIDxhc20vbG93Y29yZS5oPgogI2luY2x1ZGUgPGFzbS9jaW8uaD4KLSNpbmNsdWRlICJjaW8vY2lvLmgiCi0jaW5jbHVkZSAiY2lvL2Noc2MuaCIKLSNpbmNsdWRlICJjaW8vY3NzLmgiCi0jaW5jbHVkZSAiY2lvL2NocC5oIgogI2luY2x1ZGUgInMzOTBtYWNoLmgiCiAKIHN0YXRpYyBzdHJ1Y3Qgc2VtYXBob3JlIG1fc2VtOwpAQCAtMzYsMTMgKzMyLDQwIEBACiAJZm9yKDs7KTsKIH0KIAorc3RhdGljIGNyd19oYW5kbGVyX3QgY3J3X2hhbmRsZXJzW05SX1JTQ1NdOworCisvKioKKyAqIHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoKSAtIHJlZ2lzdGVyIGEgY2hhbm5lbCByZXBvcnQgd29yZCBoYW5kbGVyCisgKiBAcnNjOiByZXBvcnRpbmcgc291cmNlIGNvZGUgdG8gaGFuZGxlCisgKiBAaGFuZGxlcjogaGFuZGxlciB0byBiZSByZWdpc3RlcmVkCisgKgorICogUmV0dXJucyAlMCBvbiBzdWNjZXNzIGFuZCBhIG5lZ2F0aXZlIGVycm9yIHZhbHVlIG90aGVyd2lzZS4KKyAqLworaW50IHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoaW50IHJzYywgY3J3X2hhbmRsZXJfdCBoYW5kbGVyKQoreworCWlmICgocnNjIDwgMCkgfHwgKHJzYyA+PSBOUl9SU0NTKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFjbXB4Y2hnKCZjcndfaGFuZGxlcnNbcnNjXSwgTlVMTCwgaGFuZGxlcikpCisJCXJldHVybiAwOworCXJldHVybiAtRUJVU1k7Cit9CisKKy8qKgorICogczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKCkgLSB1bnJlZ2lzdGVyIGEgY2hhbm5lbCByZXBvcnQgd29yZCBoYW5kbGVyCisgKiBAcnNjOiByZXBvcnRpbmcgc291cmNlIGNvZGUgdG8gaGFuZGxlCisgKi8KK3ZvaWQgczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKGludCByc2MpCit7CisJaWYgKChyc2MgPCAwKSB8fCAocnNjID49IE5SX1JTQ1MpKQorCQlyZXR1cm47CisJeGNoZygmY3J3X2hhbmRsZXJzW3JzY10sIE5VTEwpOworCXN5bmNocm9uaXplX3NjaGVkKCk7Cit9CisKIC8qCiAgKiBSZXRyaWV2ZSBDUldzIGFuZCBjYWxsIGZ1bmN0aW9uIHRvIGhhbmRsZSBldmVudC4KLSAqCi0gKiBOb3RlIDogd2UgY3VycmVudGx5IHByb2Nlc3MgQ1JXcyBmb3IgaW8gYW5kIGNoc2Mgc3ViY2hhbm5lbHMgb25seQogICovCi1zdGF0aWMgaW50Ci1zMzkwX2NvbGxlY3RfY3J3X2luZm8odm9pZCAqcGFyYW0pCitzdGF0aWMgaW50IHMzOTBfY29sbGVjdF9jcndfaW5mbyh2b2lkICpwYXJhbSkKIHsKIAlzdHJ1Y3QgY3J3IGNyd1syXTsKIAlpbnQgY2NvZGU7CkBAIC04NCw1NyArMTA3LDI0IEBACiAJCSAgICAgICBjcndbY2hhaW5dLnJzaWQpOwogCQkvKiBDaGVjayBmb3Igb3ZlcmZsb3dzLiAqLwogCQlpZiAoY3J3W2NoYWluXS5vZmx3KSB7CisJCQlpbnQgaTsKKwogCQkJcHJfZGVidWcoIiVzOiBjcncgb3ZlcmZsb3cgZGV0ZWN0ZWQhXG4iLCBfX2Z1bmNfXyk7Ci0JCQljc3Nfc2NoZWR1bGVfZXZhbF9hbGwoKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBOUl9SU0NTOyBpKyspIHsKKwkJCQlpZiAoY3J3X2hhbmRsZXJzW2ldKQorCQkJCQljcndfaGFuZGxlcnNbaV0oTlVMTCwgTlVMTCwgMSk7CisJCQl9CiAJCQljaGFpbiA9IDA7CiAJCQljb250aW51ZTsKIAkJfQotCQlzd2l0Y2ggKGNyd1tjaGFpbl0ucnNjKSB7Ci0JCWNhc2UgQ1JXX1JTQ19TQ0g6Ci0JCQlpZiAoY3J3WzBdLmNobiAmJiAhY2hhaW4pCi0JCQkJYnJlYWs7Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIHN1YmNoYW5uZWwgJTA0WFxuIiwgY3J3WzBdLnJzaWQpOwotCQkJY3NzX3Byb2Nlc3NfY3J3KGNyd1swXS5yc2lkLCBjaGFpbiA/IGNyd1sxXS5yc2lkIDogMCk7Ci0JCQlicmVhazsKLQkJY2FzZSBDUldfUlNDX01PTklUT1I6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIG1vbml0b3JpbmcgZmFjaWxpdHlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DUEFUSDoKLQkJCXByX2RlYnVnKCJzb3VyY2UgaXMgY2hhbm5lbCBwYXRoICUwMlhcbiIsIGNyd1swXS5yc2lkKTsKLQkJCS8qCi0JCQkgKiBDaGVjayBmb3Igc29saWNpdGVkIG1hY2hpbmUgY2hlY2tzLiBUaGVzZSBhcmUKLQkJCSAqIGNyZWF0ZWQgYnkgcmVzZXQgY2hhbm5lbCBwYXRoIGFuZCBuZWVkIG5vdCBiZQotCQkJICogcmVwb3J0ZWQgdG8gdGhlIGNvbW1vbiBJL08gbGF5ZXIuCi0JCQkgKi8KLQkJCWlmIChjcndbY2hhaW5dLnNsY3QpIHsKLQkJCQlwcl9kZWJ1Zygic29saWNpdGVkIG1hY2hpbmUgY2hlY2sgZm9yICIKLQkJCQkJICJjaGFubmVsIHBhdGggJTAyWFxuIiwgY3J3WzBdLnJzaWQpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJc3dpdGNoIChjcndbMF0uZXJjKSB7Ci0JCQljYXNlIENSV19FUkNfSVBBUk06IC8qIFBhdGggaGFzIGNvbWUuICovCi0JCQkJY2hwX3Byb2Nlc3NfY3J3KGNyd1swXS5yc2lkLCAxKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgQ1JXX0VSQ19QRVJSSTogLyogUGF0aCBoYXMgZ29uZS4gKi8KLQkJCWNhc2UgQ1JXX0VSQ19QRVJSTjoKLQkJCQljaHBfcHJvY2Vzc19jcncoY3J3WzBdLnJzaWQsIDApOwotCQkJCWJyZWFrOwotCQkJZGVmYXVsdDoKLQkJCQlwcl9kZWJ1ZygiRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGVyYz0leFxuIiwKLQkJCQkJIGNyd1swXS5lcmMpOwotCQkJfQotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DT05GSUc6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIGNvbmZpZ3VyYXRpb24tYWxlcnQgZmFjaWxpdHlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DU1M6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIGNoYW5uZWwgc3Vic3lzdGVtXG4iKTsKLQkJCWNoc2NfcHJvY2Vzc19jcncoKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcHJfZGVidWcoInVua25vd24gc291cmNlXG4iKTsKLQkJCWJyZWFrOworCQlpZiAoY3J3WzBdLmNobiAmJiAhY2hhaW4pIHsKKwkJCWNoYWluKys7CisJCQljb250aW51ZTsKIAkJfQorCQlpZiAoY3J3X2hhbmRsZXJzW2Nyd1tjaGFpbl0ucnNjXSkKKwkJCWNyd19oYW5kbGVyc1tjcndbY2hhaW5dLnJzY10oJmNyd1swXSwKKwkJCQkJCSAgICAgY2hhaW4gPyAmY3J3WzFdIDogTlVMTCwKKwkJCQkJCSAgICAgMCk7CiAJCS8qIGNoYWluIGlzIGFsd2F5cyAwIG9yIDEgaGVyZS4gKi8KIAkJY2hhaW4gPSBjcndbY2hhaW5dLmNobiA/IGNoYWluICsgMSA6IDA7CiAJfQpAQCAtMjA3LDYgKzE5Nyw3IEBACiAJCWRvX2V4aXQoU0lHU0VHVik7CiAJfQogfQorRVhQT1JUX1NZTUJPTF9HUEwoczM5MF9oYW5kbGVfbWNjayk7CiAKIC8qCiAgKiByZXR1cm5zIDAgaWYgYWxsIHJlZ2lzdGVycyBjb3VsZCBiZSB2YWxpZGF0ZWQKQEAgLTQ2Nyw2ICs0NTgsMTAgQEAKIAkJCWV0cl9zeW5jX2NoZWNrKCk7CiAJCWlmIChTMzkwX2xvd2NvcmUuZXh0ZXJuYWxfZGFtYWdlX2NvZGUgJiAoMVUgPDwgRURfRVRSX1NXSVRDSCkpCiAJCQlldHJfc3dpdGNoX3RvX2xvY2FsKCk7CisJCWlmIChTMzkwX2xvd2NvcmUuZXh0ZXJuYWxfZGFtYWdlX2NvZGUgJiAoMVUgPDwgRURfU1RQX1NZTkMpKQorCQkJc3RwX3N5bmNfY2hlY2soKTsKKwkJaWYgKFMzOTBfbG93Y29yZS5leHRlcm5hbF9kYW1hZ2VfY29kZSAmICgxVSA8PCBFRF9TVFBfSVNMQU5EKSkKKwkJCXN0cF9pc2xhbmRfY2hlY2soKTsKIAl9CiAKIAlpZiAobWNpLT5zZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9zMzkwbWFjaC5oIGIvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmgKaW5kZXggY2E2ODFmOS4uZDM5ZjhiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmgKKysrIGIvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmgKQEAgLTcyLDYgKzcyLDEzIEBACiAJX191MzIgcnNpZCAgICA6IDE2OyAgIC8qIHJlcG9ydGluZy1zb3VyY2UgSUQgKi8KIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCit0eXBlZGVmIHZvaWQgKCpjcndfaGFuZGxlcl90KShzdHJ1Y3QgY3J3ICosIHN0cnVjdCBjcncgKiwgaW50KTsKKworZXh0ZXJuIGludCBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKGludCByc2MsIGNyd19oYW5kbGVyX3QgaGFuZGxlcik7CitleHRlcm4gdm9pZCBzMzkwX3VucmVnaXN0ZXJfY3J3X2hhbmRsZXIoaW50IHJzYyk7CisKKyNkZWZpbmUgTlJfUlNDUyAxNgorCiAjZGVmaW5lIENSV19SU0NfTU9OSVRPUiAgMHgyICAvKiBtb25pdG9yaW5nIGZhY2lsaXR5ICovCiAjZGVmaW5lIENSV19SU0NfU0NIICAgICAgMHgzICAvKiBzdWJjaGFubmVsICovCiAjZGVmaW5lIENSV19SU0NfQ1BBVEggICAgMHg0ICAvKiBjaGFubmVsIHBhdGggKi8KQEAgLTEwNSw2ICsxMTIsOSBAQAogI2RlZmluZSBFRF9FVFJfU1lOQwkxMgkvKiBFeHRlcm5hbCBkYW1hZ2UgRVRSIHN5bmMgY2hlY2sgKi8KICNkZWZpbmUgRURfRVRSX1NXSVRDSAkxMwkvKiBFeHRlcm5hbCBkYW1hZ2UgRVRSIHN3aXRjaCB0byBsb2NhbCAqLwogCisjZGVmaW5lIEVEX1NUUF9TWU5DCTcJLyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBzeW5jIGNoZWNrICovCisjZGVmaW5lIEVEX1NUUF9JU0xBTkQJNgkvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIGlzbGFuZCBjaGVjayAqLworCiBzdHJ1Y3QgcHRfcmVnczsKIAogdm9pZCBzMzkwX2hhbmRsZV9tY2NrKHZvaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvYnBwLmMgYi9kcml2ZXJzL3NidXMvY2hhci9icHAuYwppbmRleCAwM2M5NjYwLi5iYmEyMWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9icHAuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9icHAuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQyOSw2ICs0MzAsNyBAQAogICAgICAgdW5zaWduZWQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwogICAgICAgaW50IHJldDsKIAorICAgICAgbG9ja19rZXJuZWwoKTsKICAgICAgIHNwaW5fbG9jaygmYnBwX29wZW5fbG9jayk7CiAgICAgICByZXQgPSAwOwogICAgICAgaWYgKG1pbm9yID49IEJQUF9OTykgewpAQCAtNDQ0LDYgKzQ0Niw3IEBACiAJICAgICAgfQogICAgICAgfQogICAgICAgc3Bpbl91bmxvY2soJmJwcF9vcGVuX2xvY2spOworICAgICAgdW5sb2NrX2tlcm5lbCgpOwogCiAgICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvY3B3YXRjaGRvZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvY3B3YXRjaGRvZy5jCmluZGV4IDIzNTcwMzQuLjIzYWJmZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL2Nwd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9jcHdhdGNoZG9nLmMKQEAgLTI3OSw2ICsyNzksNyBAQAogCiBzdGF0aWMgaW50IHdkX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzd2l0Y2goaW1pbm9yKGlub2RlKSkKIAl7CiAJCWNhc2UgV0QwX01JTk9SOgpAQCAtMjkxLDYgKzI5Miw3IEBACiAJCQlmLT5wcml2YXRlX2RhdGEgPSAmd2RfZGV2LndhdGNoZG9nW1dEMl9JRF07CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybigtRU5PREVWKTsKIAl9CiAKQEAgLTMwNCwxMSArMzA2LDEzIEBACiAJCQkJCQkodm9pZCAqKXdkX2Rldi5yZWdzKSkgewogCQkJcHJpbnRrKCIlczogQ2Fubm90IHJlZ2lzdGVyIElSUSAlZFxuIiwgCiAJCQkJV0RfT0JQTkFNRSwgd2RfZGV2LmlycSk7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4oLUVCVVNZKTsKIAkJfQogCQl3ZF9kZXYuaW5pdGlhbGl6ZWQgPSAxOwogCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4obm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZikpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9kaXNwbGF5N3NlZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvZGlzcGxheTdzZWcuYwppbmRleCAzMjc5YTFiLi5kOGY1YzBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9kaXNwbGF5N3NlZy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL2Rpc3BsYXk3c2VnLmMKQEAgLTk0LDYgKzk0LDcgQEAKIHsKIAlpZiAoRDdTX01JTk9SICE9IGltaW5vcihpbm9kZSkpCiAJCXJldHVybiAtRU5PREVWOworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJYXRvbWljX2luYygmZDdzX3VzZXJzKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2VudmN0cmwuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2VudmN0cmwuYwppbmRleCBkYWRhYmVmLi5hNDA4NDAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9lbnZjdHJsLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvZW52Y3RybC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ttb2QuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2VidXMuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtNjk0LDYgKzY5NSw3IEBACiBzdGF0aWMgaW50CiBlbnZjdHJsX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvZmxhc2guYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2ZsYXNoLmMKaW5kZXggNDRlMDM5OC4uN2Q5NWUxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvZmxhc2guYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9mbGFzaC5jCkBAIC0xMjcsOSArMTI3LDEzIEBACiBzdGF0aWMgaW50CiBmbGFzaF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICh2b2lkICopJmZsYXNoLmJ1c3kpICE9IDApCisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZmbGFzaC5idXN5KSAhPSAwKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2pzZmxhc2guYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2pzZmxhc2guYwppbmRleCA0YjcwNzlmLi4yYmVjOWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9qc2ZsYXNoLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvanNmbGFzaC5jCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTQxNywxMSArNDE4LDE3IEBACiAKIHN0YXRpYyBpbnQganNmX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCkKIHsKLQotCWlmIChqc2YwLmJhc2UgPT0gMCkgcmV0dXJuIC1FTlhJTzsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZqc2YwLmJ1c3kpICE9IDApCisJbG9ja19rZXJuZWwoKTsKKwlpZiAoanNmMC5iYXNlID09IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOworCQlyZXR1cm4gLUVOWElPOworCX0KKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZqc2YwLmJ1c3kpICE9IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsJLyogWFhYIFdoYXQgc2VjdXJpdHk/ICovCiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL29wZW5wcm9tLmMgYi9kcml2ZXJzL3NidXMvY2hhci9vcGVucHJvbS5jCmluZGV4IGZiZmViODkuLjI5ZGM3MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL29wZW5wcm9tLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvb3BlbnByb20uYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTY4OSw5ICs2OTAsMTEgQEAKIAlpZiAoIWRhdGEpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlkYXRhLT5jdXJyZW50X25vZGUgPSBvZl9maW5kX25vZGVfYnlfcGF0aCgiLyIpOwogCWRhdGEtPmxhc3Rub2RlID0gZGF0YS0+Y3VycmVudF9ub2RlOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9ICh2b2lkICopIGRhdGE7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9yaW93YXRjaGRvZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvcmlvd2F0Y2hkb2cuYwppbmRleCBhMmZjNmI4Li44OGMwZmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9yaW93YXRjaGRvZy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3Jpb3dhdGNoZG9nLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9lYnVzLmg+CkBAIC0xMTYsNiArMTE3LDcgQEAKIAogc3RhdGljIGludCByaW93ZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9ydGMuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCmluZGV4IDE4ZDE4ZjEuLmIwNDI5OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCkBAIC0xMiw2ICsxMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTIxMyw2ICsyMTQsNyBAQAogewogCWludCByZXQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnEoJm1vc3Rla19sb2NrKTsKIAlpZiAocnRjX2J1c3kpIHsKIAkJcmV0ID0gLUVCVVNZOwpAQCAtMjIxLDYgKzIyMyw3IEBACiAJCXJldCA9IDA7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmbW9zdGVrX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci91Y3RybC5jIGIvZHJpdmVycy9zYnVzL2NoYXIvdWN0cmwuYwppbmRleCAzODNmMzJjLi41MTNiYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci91Y3RybC5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3VjdHJsLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMjExLDggKzIxMiwxMCBAQAogc3RhdGljIGludAogdWN0cmxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCXVjdHJsX2dldF9ldmVudF9zdGF0dXMoKTsKIAl1Y3RybF9nZXRfZXh0ZXJuYWxfc3RhdHVzKCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMgYi9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMKaW5kZXggZDRmOGZjZC4uMWY2Y2I4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvdmZjX2Rldi5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3ZmY19kZXYuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vb3BlbnByb20uaD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KQEAgLTE3OCwxNCArMTc5LDE3IEBACiB7CiAJc3RydWN0IHZmY19kZXYgKmRldjsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZ2ZmNfZGV2X2xvY2spOwogCWRldiA9IHZmY19nZXRfZGV2X3B0cihpbWlub3IoaW5vZGUpKTsKIAlpZiAoZGV2ID09IE5VTEwpIHsKIAkJc3Bpbl91bmxvY2soJnZmY19kZXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCWlmIChkZXYtPmJ1c3kpIHsKIAkJc3Bpbl91bmxvY2soJnZmY19kZXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTIwMiw2ICsyMDYsNyBAQAogCXZmY19jYXB0c3RhdF9yZXNldChkZXYpOwogCQogCXZmY191bmxvY2tfZGV2aWNlKGRldik7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jIGIvZHJpdmVycy9zY3NpLzN3LTl4eHguYwppbmRleCA4NjdmNmZkLi43MDQ1NTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKQEAgLTg0LDYgKzg0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtODYyLDExICs4NjMsMTMgQEAKIH0gLyogRW5kIHR3YV9jaHJkZXZfaW9jdGwoKSAqLwogCiAvKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgb3BlbiBmb3IgdGhlIGNoYXJhY3RlciBkZXZpY2UgKi8KKy8qIE5PVEUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmFjZSB3aXRoIHJlbW92ZS4gKi8KIHN0YXRpYyBpbnQgdHdhX2NocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vcl9udW1iZXI7CiAJaW50IHJldHZhbCA9IFRXX0lPQ1RMX0VSUk9SX09TX0VOT0RFVjsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJbWlub3JfbnVtYmVyID0gaW1pbm9yKGlub2RlKTsKIAlpZiAobWlub3JfbnVtYmVyID49IHR3YV9kZXZpY2VfZXh0ZW5zaW9uX2NvdW50KQogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMgYi9kcml2ZXJzL3Njc2kvM3cteHh4eC5jCmluZGV4IDhjMjIzMjkuLmEwNTM3ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMKKysrIGIvZHJpdmVycy9zY3NpLzN3LXh4eHguYwpAQCAtMTk4LDYgKzE5OCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KQEAgLTEwMjcsMTAgKzEwMjgsMTIgQEAKIH0gLyogRW5kIHR3X2NocmRldl9pb2N0bCgpICovCiAKIC8qIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBvcGVuIGZvciB0aGUgY2hhcmFjdGVyIGRldmljZSAqLworLyogTk9URSB0aGF0IHRoaXMgZnVuY3Rpb24gcmFjZXMgd2l0aCByZW1vdmUuICovCiBzdGF0aWMgaW50IHR3X2NocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vcl9udW1iZXI7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWRwcmludGsoS0VSTl9XQVJOSU5HICIzdy14eHh4OiB0d19pb2N0bF9vcGVuKClcbiIpOwogCiAJbWlub3JfbnVtYmVyID0gaW1pbm9yKGlub2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jCmluZGV4IDFmN2M4MzYuLjY4YzE0MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC02NjcsNiArNjY4LDcgQEAKIAl1bnNpZ25lZCBtaW5vcl9udW1iZXIgPSBpbWlub3IoaW5vZGUpOwogCWludCBlcnIgPSAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsgIC8qIEJLTCBwdXNoZG93bjogbm90aGluZyBlbHNlIHByb3RlY3RzIHRoaXMgbGlzdCAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoYWFjLCAmYWFjX2RldmljZXMsIGVudHJ5KSB7CiAJCWlmIChhYWMtPmlkID09IG1pbm9yX251bWJlcikgewogCQkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gYWFjOwpAQCAtNjc0LDYgKzY3Niw3IEBACiAJCQlicmVhazsKIAkJfQogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gZXJyOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuYyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmMKaW5kZXggNDQ0NmUzZC4uODYzMGE3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuYworKysgYi9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5jCkBAIC0xMDkzLDkgKzEwOTMsOSBAQAogICogQGJ5dGVzX3RvX3ZlcmlmeTogdG90YWwgYnl0ZXMgdG8gdmVyaWZ5CiAgKi8KIGludCBhc2RfdmVyaWZ5X2ZsYXNoX3NlZyhzdHJ1Y3QgYXNkX2hhX3N0cnVjdCAqYXNkX2hhLAotCQl2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3ZlcmlmeSkKKwkJCSBjb25zdCB2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3ZlcmlmeSkKIHsKLQl1OCAqc3JjX2J1ZjsKKwljb25zdCB1OCAqc3JjX2J1ZjsKIAl1OCBmbGFzaF9jaGFyOwogCWludCBlcnI7CiAJdTMyIG52X29mZnNldCwgcmVnLCBpOwpAQCAtMTEwNSw3ICsxMTA1LDcgQEAKIAogCWVyciA9IEZMQVNIX09LOwogCW52X29mZnNldCA9IGRlc3Rfb2Zmc2V0OwotCXNyY19idWYgPSAodTggKilzcmM7CisJc3JjX2J1ZiA9IChjb25zdCB1OCAqKXNyYzsKIAlmb3IgKGkgPSAwOyBpIDwgYnl0ZXNfdG9fdmVyaWZ5OyBpKyspIHsKIAkJZmxhc2hfY2hhciA9IGFzZF9yZWFkX3JlZ19ieXRlKGFzZF9oYSwgcmVnICsgbnZfb2Zmc2V0ICsgaSk7CiAJCWlmIChmbGFzaF9jaGFyICE9IHNyY19idWZbaV0pIHsKQEAgLTExMjQsOSArMTEyNCw5IEBACiAgKiBAYnl0ZXNfdG9fd3JpdGU6IHRvdGFsIGJ5dGVzIHRvIHdyaXRlCiAgKi8KIGludCBhc2Rfd3JpdGVfZmxhc2hfc2VnKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCi0JCXZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fd3JpdGUpCisJCQljb25zdCB2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3dyaXRlKQogewotCXU4ICpzcmNfYnVmOworCWNvbnN0IHU4ICpzcmNfYnVmOwogCXUzMiBudl9vZmZzZXQsIHJlZywgaTsKIAlpbnQgZXJyOwogCkBAIC0xMTUzLDcgKzExNTMsNyBAQAogCQlyZXR1cm4gZXJyOwogCX0KIAotCXNyY19idWYgPSAodTggKilzcmM7CisJc3JjX2J1ZiA9IChjb25zdCB1OCAqKXNyYzsKIAlmb3IgKGkgPSAwOyBpIDwgYnl0ZXNfdG9fd3JpdGU7IGkrKykgewogCQkvKiBTZXR1cCBwcm9ncmFtIGNvbW1hbmQgc2VxdWVuY2UgKi8KIAkJc3dpdGNoIChhc2RfaGEtPmh3X3Byb2YuZmxhc2gubWV0aG9kKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5oIGIvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuaAppbmRleCBiYjk3OTVhLi5hMDZkYzAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5oCisrKyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmgKQEAgLTExMCw5ICsxMTAsOSBAQAogfTsKIAogaW50IGFzZF92ZXJpZnlfZmxhc2hfc2VnKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCi0JCXZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fdmVyaWZ5KTsKKwkJY29uc3Qgdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b192ZXJpZnkpOwogaW50IGFzZF93cml0ZV9mbGFzaF9zZWcoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSwKLQkJdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b193cml0ZSk7CisJCWNvbnN0IHZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fd3JpdGUpOwogaW50IGFzZF9jaGtfd3JpdGVfc3RhdHVzKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCiAJCXUzMiBzZWN0b3JfYWRkciwgdTggZXJhc2VfZmxhZyk7CiBpbnQgYXNkX2NoZWNrX2ZsYXNoX3R5cGUoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3NlcS5jIGIvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZXEuYwppbmRleCBmNDI3MmFjLi44Zjk4ZTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3NlcS5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2VxLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnNlcXVlbmNlcl9mdzsKIHN0YXRpYyB1MTYgY3NlcV92ZWNzW0NTRVFfTlVNX1ZFQ1NdLCBsc2VxX3ZlY3NbTFNFUV9OVU1fVkVDU10sIG1vZGUyX3Rhc2ssCiAJY3NlcV9pZGxlX2xvb3AsIGxzZXFfaWRsZV9sb29wOwotc3RhdGljIHU4ICpjc2VxX2NvZGUsICpsc2VxX2NvZGU7CitzdGF0aWMgY29uc3QgdTggKmNzZXFfY29kZSwgKmxzZXFfY29kZTsKIHN0YXRpYyB1MzIgY3NlcV9jb2RlX3NpemUsIGxzZXFfY29kZV9zaXplOwogCiBzdGF0aWMgdTE2IGZpcnN0X3NjYl9zaXRlX25vID0gMHhGRkZGOwpAQCAtMTIzNSw3ICsxMjM1LDggQEAKIHN0YXRpYyBpbnQgYXNkX3JlcXVlc3RfZmlybXdhcmUoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSkKIHsKIAlpbnQgZXJyLCBpOwotCXN0cnVjdCBzZXF1ZW5jZXJfZmlsZV9oZWFkZXIgaGVhZGVyLCAqaGRyX3B0cjsKKwlzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyIGhlYWRlcjsKKwljb25zdCBzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyICpoZHJfcHRyOwogCXUzMiBjc3VtID0gMDsKIAl1MTYgKnB0cl9jc2VxX3ZlY3MsICpwdHJfbHNlcV92ZWNzOwogCkBAIC0xMjQ5LDcgKzEyNTAsNyBAQAogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQloZHJfcHRyID0gKHN0cnVjdCBzZXF1ZW5jZXJfZmlsZV9oZWFkZXIgKilzZXF1ZW5jZXJfZnctPmRhdGE7CisJaGRyX3B0ciA9IChjb25zdCBzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyICopc2VxdWVuY2VyX2Z3LT5kYXRhOwogCiAJaGVhZGVyLmNzdW0gPSBsZTMyX3RvX2NwdShoZHJfcHRyLT5jc3VtKTsKIAloZWFkZXIubWFqb3IgPSBsZTMyX3RvX2NwdShoZHJfcHRyLT5tYWpvcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL0tjb25maWcgYi9kcml2ZXJzL3Njc2kvYXJtL0tjb25maWcKaW5kZXggNzIzNjE0My4uYTg1ODdmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZwpAQCAtMyw3ICszLDcgQEAKICMKIGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zCiAJdHJpc3RhdGUgIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUkNIX0FDT1JOICYmIFNDU0kgJiYgQlJPS0VOCisJZGVwZW5kcyBvbiBBUkNIX0FDT1JOICYmIFNDU0kKIAlzZWxlY3QgU0NTSV9TUElfQVRUUlMKIAloZWxwCiAJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEFjb3JuIFNDU0kgY2FyZCAoYWthMzApLiBJZiB5b3UgaGF2ZSBhbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2ktaW8uUyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLWlvLlMKaW5kZXggOTM0NjdlNi4uNWNlYmUzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2ktaW8uUworKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS1pby5TCkBAIC0xMCwxNyArMTAsMTAgQEAKICNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKLSNpZiAoSU9fQkFTRSA9PSAoUENJT19CQVNFICYgMHhmZjAwMDAwMCkpCi0jZGVmaW5lIEFERFIob2ZmLHJlZykJCQkJCQlcCi0JCXRzdAlvZmYsICQweDgwMDAwMDAwCQkJO1wKLQkJbW92CXJlZywgJElPX0JBU0UJCQkJO1wKLQkJb3JyZXEJcmVnLCByZWcsICQoUENJT19CQVNFICYgMHgwMGZmMDAwMCkKLSNlbHNlCi0jZGVmaW5lIEFERFIob2ZmLHJlZykJCQkJCQlcCi0JCXRzdAlvZmYsICQweDgwMDAwMDAwCQkJO1wKLQkJbW92bmUJcmVnLCAkSU9fQkFTRQkJCQk7XAotCQltb3ZlcQlyZWcsICQoUENJT19CQVNFICYgMHhmZjAwMDAwMCkJCTtcCi0JCW9ycmVxCXJlZywgcmVnLCAkKFBDSU9fQkFTRSAmIDB4MDBmZjAwMDApCisjaWYgZGVmaW5lZChfX0FQQ1NfMzJfXykKKyNkZWZpbmUgTE9BRFJFR1ModCxyLGwuLi4pCWxkbSMjdAlyLCBsCisjZWxpZiBkZWZpbmVkKF9fQVBDU18yNl9fKQorI2RlZmluZSBMT0FEUkVHUyh0LHIsbC4uLikJbGRtIyN0CXIsIGwjI14KICNlbmRpZgogCiBAIFB1cnBvc2U6IHRyYW5zZmVyIGEgYmxvY2sgb2YgZGF0YSBmcm9tIHRoZSBhY29ybiBzY3NpIGNhcmQgdG8gbWVtb3J5CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYwppbmRleCA4ZTUzZjAyLi45MThjY2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMKQEAgLTEyMywxMiArMTIzLDYgQEAKICNkZWZpbmUgREJHKGNtZCx4eHguLi4pIHh4eAogI2VuZGlmCiAKLSNpZm5kZWYgU1RSSU5HSUZZCi0jZGVmaW5lIFNUUklOR0lGWSh4KSAjeAotI2VuZGlmCi0jZGVmaW5lIFNUUngoeCkgU1RSSU5HSUZZKHgpCi0jZGVmaW5lIE5PX1dSSVRFX1NUUiBTVFJ4KE5PX1dSSVRFKQotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CkBAIC0xNDEsOSArMTM1LDEwIEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZ2lmeS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2VjYXJkLmg+CiAKICNpbmNsdWRlICIuLi9zY3NpLmgiCkBAIC0yMDMsNDQgKzE5OCw0NiBAQAogICogTWlzY2VsbGFuZW91cwogICovCiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotc2JpY19hcm1fd3JpdGUodW5zaWduZWQgaW50IGlvX3BvcnQsIGludCByZWcsIGludCB2YWx1ZSkKKy8qIE9mZnNldHMgZnJvbSBNRU1DIGJhc2UgKi8KKyNkZWZpbmUgU0JJQ19SRUdJRFgJMHgyMDAwCisjZGVmaW5lIFNCSUNfUkVHVkFMCTB4MjAwNAorI2RlZmluZSBETUFDX09GRlNFVAkweDMwMDAKKworLyogT2Zmc2V0cyBmcm9tIEZBU1QgSU9DIGJhc2UgKi8KKyNkZWZpbmUgSU5UX1JFRwkJMHgyMDAwCisjZGVmaW5lIFBBR0VfUkVHCTB4MzAwMAorCitzdGF0aWMgaW5saW5lIHZvaWQgc2JpY19hcm1fd3JpdGUoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQogewotICAgIF9fcmF3X3dyaXRlYihyZWcsIGlvX3BvcnQpOwotICAgIF9fcmF3X3dyaXRlYih2YWx1ZSwgaW9fcG9ydCArIDQpOworICAgIHdyaXRlYihyZWcsIGhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCk7CisgICAgd3JpdGViKHZhbHVlLCBob3N0LT5iYXNlICsgU0JJQ19SRUdWQUwpOwogfQogCi0jZGVmaW5lIHNiaWNfYXJtX3dyaXRlbmV4dChpbyx2YWwpIFwKLQlfX3Jhd193cml0ZWIoKHZhbCksIChpbykgKyA0KQotCi1zdGF0aWMgaW5saW5lCi1pbnQgc2JpY19hcm1fcmVhZCh1bnNpZ25lZCBpbnQgaW9fcG9ydCwgaW50IHJlZykKK3N0YXRpYyBpbmxpbmUgaW50IHNiaWNfYXJtX3JlYWQoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgaW50IHJlZykKIHsKICAgICBpZihyZWcgPT0gU0JJQ19BU1IpCi0JICAgcmV0dXJuIF9fcmF3X3JlYWRsKGlvX3BvcnQpICYgMjU1OwotICAgIF9fcmF3X3dyaXRlYihyZWcsIGlvX3BvcnQpOwotICAgIHJldHVybiBfX3Jhd19yZWFkbChpb19wb3J0ICsgNCkgJiAyNTU7CisJICAgcmV0dXJuIHJlYWRsKGhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCkgJiAyNTU7CisgICAgd3JpdGViKHJlZywgaG9zdC0+YmFzZSArIFNCSUNfUkVHSURYKTsKKyAgICByZXR1cm4gcmVhZGwoaG9zdC0+YmFzZSArIFNCSUNfUkVHVkFMKSAmIDI1NTsKIH0KIAotI2RlZmluZSBzYmljX2FybV9yZWFkbmV4dChpbykgXAotCV9fcmF3X3JlYWRiKChpbykgKyA0KQorI2RlZmluZSBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgdmFsKQl3cml0ZWIoKHZhbCksIChob3N0KS0+YmFzZSArIFNCSUNfUkVHVkFMKQorI2RlZmluZSBzYmljX2FybV9yZWFkbmV4dChob3N0KSAJcmVhZGIoKGhvc3QpLT5iYXNlICsgU0JJQ19SRUdWQUwpCiAKICNpZmRlZiBVU0VfRE1BQwotI2RlZmluZSBkbWFjX3JlYWQoaW9fcG9ydCxyZWcpIFwKLQlpbmIoKGlvX3BvcnQpICsgKHJlZykpCisjZGVmaW5lIGRtYWNfcmVhZChob3N0LHJlZykgXAorCXJlYWRiKChob3N0KS0+YmFzZSArIERNQUNfT0ZGU0VUICsgKChyZWcpIDw8IDIpKQogCi0jZGVmaW5lIGRtYWNfd3JpdGUoaW9fcG9ydCxyZWcsdmFsdWUpIFwKLQkoeyBvdXRiKCh2YWx1ZSksIChpb19wb3J0KSArIChyZWcpKTsgfSkKKyNkZWZpbmUgZG1hY193cml0ZShob3N0LHJlZyx2YWx1ZSkgXAorCSh7IHdyaXRlYigodmFsdWUpLCAoaG9zdCktPmJhc2UgKyBETUFDX09GRlNFVCArICgocmVnKSA8PCAyKSk7IH0pCiAKLSNkZWZpbmUgZG1hY19jbGVhcmludHIoaW9fcG9ydCkgXAotCSh7IG91dGIoMCwgKGlvX3BvcnQpKTsgfSkKKyNkZWZpbmUgZG1hY19jbGVhcmludHIoaG9zdCkgCXdyaXRlYigwLCAoaG9zdCktPmZhc3QgKyBJTlRfUkVHKQogCi1zdGF0aWMgaW5saW5lCi11bnNpZ25lZCBpbnQgZG1hY19hZGRyZXNzKHVuc2lnbmVkIGludCBpb19wb3J0KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZG1hY19hZGRyZXNzKEFTX0hvc3QgKmhvc3QpCiB7Ci0gICAgcmV0dXJuIGRtYWNfcmVhZChpb19wb3J0LCBETUFDX1RYQURSSEkpIDw8IDE2IHwKLQkgICBkbWFjX3JlYWQoaW9fcG9ydCwgRE1BQ19UWEFEUk1EKSA8PCA4IHwKLQkgICBkbWFjX3JlYWQoaW9fcG9ydCwgRE1BQ19UWEFEUkxPKTsKKyAgICByZXR1cm4gZG1hY19yZWFkKGhvc3QsIERNQUNfVFhBRFJISSkgPDwgMTYgfAorCSAgIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQURSTUQpIDw8IDggfAorCSAgIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQURSTE8pOwogfQogCiBzdGF0aWMKQEAgLTI0OCwxNSArMjQ1LDE1IEBACiB7CiAJdW5zaWduZWQgaW50IG1vZGUsIGFkZHIsIGxlbjsKIAotCW1vZGUgPSBkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTU9ERUNPTik7Ci0JYWRkciA9IGRtYWNfYWRkcmVzcyhob3N0LT5kbWEuaW9fcG9ydCk7Ci0JbGVuICA9IGRtYWNfcmVhZChob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWENOVEhJKSA8PCA4IHwKLQkgICAgICAgZG1hY19yZWFkKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05UTE8pOworCW1vZGUgPSBkbWFjX3JlYWQoaG9zdCwgRE1BQ19NT0RFQ09OKTsKKwlhZGRyID0gZG1hY19hZGRyZXNzKGhvc3QpOworCWxlbiAgPSBkbWFjX3JlYWQoaG9zdCwgRE1BQ19UWENOVEhJKSA8PCA4IHwKKwkgICAgICAgZG1hY19yZWFkKGhvc3QsIERNQUNfVFhDTlRMTyk7CiAKIAlwcmludGsoInNjc2klZDogJXM6IERNQUMgJTAyeCBAJTA2eCslMDR4IG1zayAlMDJ4LCAiLAogCQlob3N0LT5ob3N0LT5ob3N0X25vLCB3aGVyZSwKIAkJbW9kZSwgYWRkciwgKGxlbiArIDEpICYgMHhmZmZmLAotCQlkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRykpOworCQlkbWFjX3JlYWQoaG9zdCwgRE1BQ19NQVNLUkVHKSk7CiAKIAlwcmludGsoIkRNQSBAJTA2eCwgIiwgaG9zdC0+ZG1hLnN0YXJ0X2FkZHIpOwogCXByaW50aygiQkggQCVwICslMDR4LCAiLCBob3N0LT5zY3NpLlNDcC5wdHIsCkBAIC0yNzIsOSArMjY5LDkgQEAKIHsKICAgICB1bnNpZ25lZCBsb25nIGxlbmd0aDsKIAotICAgIGxlbmd0aCA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RSQU5TQ05USCkgPDwgMTY7Ci0gICAgbGVuZ3RoIHw9IHNiaWNfYXJtX3JlYWRuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCkgPDwgODsKLSAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdC0+c2NzaS5pb19wb3J0KTsKKyAgICBsZW5ndGggPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfVFJBTlNDTlRIKSA8PCAxNjsKKyAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdCkgPDwgODsKKyAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdCk7CiAKICAgICByZXR1cm4gbGVuZ3RoOwogfQpAQCAtMjg1LDcgKzI4Miw3IEBACiAJaW50IGFzcjsKIAogCWRvIHsKLQkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKKwkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CiAKIAkJaWYgKChhc3IgJiBzdGF0X21hc2spID09IHN0YXQpCiAJCQlyZXR1cm4gMDsKQEAgLTMwNCw3ICszMDEsNyBAQAogICAgIGlmIChhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9DSVAsIDAsIDEwMDAsICJpc3N1aW5nIGNvbW1hbmQiKSkKIAlyZXR1cm4gLTE7CiAKLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ01ORCwgY29tbWFuZCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBjb21tYW5kKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtMzMxLDIwICszMjgsMjAgQEAKIAogICAgIC8qIGFzc2VydCByZXNldCBsaW5lICovCiAgICAgaG9zdC0+Y2FyZC5wYWdlX3JlZyA9IDB4ODA7Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgLyogd2FpdCAzIGNzLiAgU0NTSSBzdGFuZGFyZCBzYXlzIDI1bXMuICovCiAgICAgYWNvcm5zY3NpX2NzZGVsYXkoMyk7CiAKICAgICBob3N0LT5jYXJkLnBhZ2VfcmVnID0gMDsKLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICAvKgogICAgICAqIFNob3VsZCBnZXQgYSByZXNldCBmcm9tIHRoZSBjYXJkCiAgICAgICovCiAgICAgdGltZW91dCA9IDEwMDA7CiAgICAgZG8gewotCWlmIChpbmIoaG9zdC0+Y2FyZC5pb19pbnRyKSAmIDgpCisJaWYgKHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKSAmIDgpCiAJICAgIGJyZWFrOwogCXVkZWxheSgxKTsKICAgICB9IHdoaWxlICgtLXRpbWVvdXQpOwpAQCAtMzUzLDE5ICszNTAsMTkgQEAKIAlwcmludGsoInNjc2klZDogdGltZW91dCB3aGlsZSByZXNldHRpbmcgY2FyZFxuIiwKIAkJaG9zdC0+aG9zdC0+aG9zdF9ubyk7CiAKLSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOwotICAgIHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NTUik7CisgICAgc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CisgICAgc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUik7CiAKICAgICAvKiBzZXR1cCBzYmljIC0gV0QzM0M5M0EgKi8KLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfT1dOSUQsIE9XTklEX0VBRiB8IGhvc3QtPmhvc3QtPnRoaXNfaWQpOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfUkVTRVQpOwogCiAgICAgLyoKICAgICAgKiBDb21tYW5kIHNob3VsZCBjYXVzZSBhIHJlc2V0IGludGVycnVwdAogICAgICAqLwogICAgIHRpbWVvdXQgPSAxMDAwOwogICAgIGRvIHsKLQlpZiAoaW5iKGhvc3QtPmNhcmQuaW9faW50cikgJiA4KQorCWlmIChyZWFkYihob3N0LT5mYXN0ICsgSU5UX1JFRykgJiA4KQogCSAgICBicmVhazsKIAl1ZGVsYXkoMSk7CiAgICAgfSB3aGlsZSAoLS10aW1lb3V0KTsKQEAgLTM3NCwyNiArMzcxLDI2IEBACiAJcHJpbnRrKCJzY3NpJWQ6IHRpbWVvdXQgd2hpbGUgcmVzZXR0aW5nIGNhcmRcbiIsCiAJCWhvc3QtPmhvc3QtPmhvc3Rfbm8pOwogCi0gICAgc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKLSAgICBpZiAoc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKSAhPSAweDAxKQorICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworICAgIGlmIChzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKSAhPSAweDAxKQogCXByaW50ayhLRVJOX0NSSVQgInNjc2klZDogV0QzM0M5M0EgZGlkbid0IGdpdmUgZW5oYW5jZWQgcmVzZXQgaW50ZXJydXB0XG4iLAogCQlob3N0LT5ob3N0LT5ob3N0X25vKTsKIAotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RJTUVPVVQsIFRJTUVPVVRfVElNRSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgU1lOQ0hUUkFOU0ZFUl8yREJBKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CiAKICAgICBob3N0LT5jYXJkLnBhZ2VfcmVnID0gMHg0MDsKLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICAvKiBzZXR1cCBkbWFjIC0gdVBDNzEwNzEgKi8KLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0lOSVQsIDApOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19JTklULCAwKTsKICNpZmRlZiBVU0VfRE1BQwotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfSU5JVCwgSU5JVF84QklUKTsKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0NIQU5ORUwsIENIQU5ORUxfMCk7Ci0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19ERVZDT04wLCBJTklUX0RFVkNPTjApOwotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfREVWQ09OMSwgSU5JVF9ERVZDT04xKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfSU5JVCwgSU5JVF84QklUKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfQ0hBTk5FTCwgQ0hBTk5FTF8wKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfREVWQ09OMCwgSU5JVF9ERVZDT04wKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfREVWQ09OMSwgSU5JVF9ERVZDT04xKTsKICNlbmRpZgogCiAgICAgaG9zdC0+U0NwbnQgPSBOVUxMOwpAQCAtNzQxLDkgKzczOCw5IEBACiAgICAgICogSWYgd2UgaGF2ZSBhbiBpbnRlcnJ1cHQgcGVuZGluZywgdGhlbiB3ZSBtYXkgaGF2ZSBiZWVuIHJlc2VsZWN0ZWQuCiAgICAgICogSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHdyaXRlIHRvIHRoZSByZWdpc3RlcnMKICAgICAgKi8KLSAgICBpZiAoIShzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpICYgKEFTUl9JTlR8QVNSX0JTWXxBU1JfQ0lQKSkpIHsKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREVTVElELCBTQ3BudC0+ZGV2aWNlLT5pZCk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0NNTkQsIENNTkRfU0VMV0lUSEFUTik7CisgICAgaWYgKCEoc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUikgJiAoQVNSX0lOVHxBU1JfQlNZfEFTUl9DSVApKSkgeworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREVTVElELCBTQ3BudC0+ZGV2aWNlLT5pZCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX1NFTFdJVEhBVE4pOwogICAgIH0KIAogICAgIC8qCkBAIC04MDcsNyArODA0LDcgQEAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCA9ICpTQ3BudHA7CiAKICAgICAvKiBjbGVhbiB1cCAqLwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU09VUkNFSUQsIFNPVVJDRUlEX0VSIHwgU09VUkNFSURfRFNQKTsKIAogICAgIGhvc3QtPnN0YXRzLmZpbnMgKz0gMTsKIApAQCAtOTE4LDEzICs5MTUsMTMgQEAKIHZvaWQgYWNvcm5zY3NpX2RhdGFfcmVhZChBU19Ib3N0ICpob3N0LCBjaGFyICpwdHIsCiAJCQkJIHVuc2lnbmVkIGludCBzdGFydF9hZGRyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewotICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX2luKGludCBwb3J0LCBjaGFyICpidWYsIGludCBsZW4pOworICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX2luKHZvaWQgX19pb21lbSAqLCBjaGFyICpidWYsIGludCBsZW4pOwogICAgIHVuc2lnbmVkIGludCBwYWdlLCBvZmZzZXQsIGxlbiA9IGxlbmd0aDsKIAogICAgIHBhZ2UgPSAoc3RhcnRfYWRkciA+PiAxMik7CiAgICAgb2Zmc2V0ID0gc3RhcnRfYWRkciAmICgoMSA8PCAxMikgLSAxKTsKIAotICAgIG91dGIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgd2hpbGUgKGxlbiA+IDApIHsKIAl1bnNpZ25lZCBpbnQgdGhpc19sZW47CkBAIC05MzQsNyArOTMxLDcgQEAKIAllbHNlCiAJICAgIHRoaXNfbGVuID0gbGVuOwogCi0JX19hY29ybnNjc2lfaW4oaG9zdC0+Y2FyZC5pb19yYW0gKyAob2Zmc2V0IDw8IDEpLCBwdHIsIHRoaXNfbGVuKTsKKwlfX2Fjb3Juc2NzaV9pbihob3N0LT5iYXNlICsgKG9mZnNldCA8PCAxKSwgcHRyLCB0aGlzX2xlbik7CiAKIAlvZmZzZXQgKz0gdGhpc19sZW47CiAJcHRyICs9IHRoaXNfbGVuOwpAQCAtOTQzLDEwICs5NDAsMTAgQEAKIAlpZiAob2Zmc2V0ID09ICgxIDw8IDEyKSkgewogCSAgICBvZmZzZXQgPSAwOwogCSAgICBwYWdlICsrOwotCSAgICBvdXRiKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworCSAgICB3cml0ZWIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAJfQogICAgIH0KLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiB9CiAKIC8qCkBAIC05NjMsMTMgKzk2MCwxMyBAQAogdm9pZCBhY29ybnNjc2lfZGF0YV93cml0ZShBU19Ib3N0ICpob3N0LCBjaGFyICpwdHIsCiAJCQkJIHVuc2lnbmVkIGludCBzdGFydF9hZGRyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewotICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX291dChpbnQgcG9ydCwgY2hhciAqYnVmLCBpbnQgbGVuKTsKKyAgICBleHRlcm4gdm9pZCBfX2Fjb3Juc2NzaV9vdXQodm9pZCBfX2lvbWVtICosIGNoYXIgKmJ1ZiwgaW50IGxlbik7CiAgICAgdW5zaWduZWQgaW50IHBhZ2UsIG9mZnNldCwgbGVuID0gbGVuZ3RoOwogCiAgICAgcGFnZSA9IChzdGFydF9hZGRyID4+IDEyKTsKICAgICBvZmZzZXQgPSBzdGFydF9hZGRyICYgKCgxIDw8IDEyKSAtIDEpOwogCi0gICAgb3V0YigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKyAgICB3cml0ZWIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICB3aGlsZSAobGVuID4gMCkgewogCXVuc2lnbmVkIGludCB0aGlzX2xlbjsKQEAgLTk3OSw3ICs5NzYsNyBAQAogCWVsc2UKIAkgICAgdGhpc19sZW4gPSBsZW47CiAKLQlfX2Fjb3Juc2NzaV9vdXQoaG9zdC0+Y2FyZC5pb19yYW0gKyAob2Zmc2V0IDw8IDEpLCBwdHIsIHRoaXNfbGVuKTsKKwlfX2Fjb3Juc2NzaV9vdXQoaG9zdC0+YmFzZSArIChvZmZzZXQgPDwgMSksIHB0ciwgdGhpc19sZW4pOwogCiAJb2Zmc2V0ICs9IHRoaXNfbGVuOwogCXB0ciArPSB0aGlzX2xlbjsKQEAgLTk4OCwxMCArOTg1LDEwIEBACiAJaWYgKG9mZnNldCA9PSAoMSA8PCAxMikpIHsKIAkgICAgb2Zmc2V0ID0gMDsKIAkgICAgcGFnZSArKzsKLQkgICAgb3V0YigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKwkgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCX0KICAgICB9Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogfQogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTAwOCw4ICsxMDA1LDggQEAKIHN0YXRpYyBpbmxpbmUKIHZvaWQgYWNvcm5zY3NpX2RtYV9zdG9wKEFTX0hvc3QgKmhvc3QpCiB7Ci0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKLSAgICBkbWFjX2NsZWFyaW50cihob3N0LT5kbWEuaW9faW50cl9jbGVhcik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOworICAgIGRtYWNfY2xlYXJpbnRyKGhvc3QpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogICAgIERCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgInN0b3AiKSk7CkBAIC0xMDMxLDcgKzEwMjgsNyBAQAogCiAgICAgaG9zdC0+ZG1hLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKIAotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOwogCiAgICAgaWYgKGRpcmVjdGlvbiA9PSBETUFfT1VUKSB7CiAjaWYgKERFQlVHICYgREVCVUdfTk9fV1JJVEUpCkBAIC0xMDYyLDEzICsxMDU5LDEzIEBACiAJCQkJbGVuZ3RoKTsKIAogCWxlbmd0aCAtPSAxOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgbGVuZ3RoKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgYWRkcmVzcyA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSSEksIDApOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTU9ERUNPTiwgbW9kZSk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09GRik7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQ05UTE8sIGxlbmd0aCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJMTywgYWRkcmVzcyk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTUQsIGFkZHJlc3MgPj4gOCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSSEksIDApOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NT0RFQ09OLCBtb2RlKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogCURCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgInN0cnQiKSk7CkBAIC0xMDg4LDggKzEwODUsOCBAQAogc3RhdGljCiB2b2lkIGFjb3Juc2NzaV9kbWFfY2xlYW51cChBU19Ib3N0ICpob3N0KQogewotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7Ci0gICAgZG1hY19jbGVhcmludHIoaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIpOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKKyAgICBkbWFjX2NsZWFyaW50cihob3N0KTsKIAogICAgIC8qCiAgICAgICogQ2hlY2sgZm9yIGEgcGVuZGluZyB0cmFuc2ZlcgpAQCAtMTExNiw3ICsxMTEzLDcgQEAKIAkvKgogCSAqIENhbGN1bGF0ZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNmZXJyZWQgZnJvbSBETUEuCiAJICovCi0JdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdC0+ZG1hLmlvX3BvcnQpIC0gaG9zdC0+ZG1hLnN0YXJ0X2FkZHI7CisJdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdCkgLSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKIAlob3N0LT5kbWEudHJhbnNmZXJyZWQgKz0gdHJhbnNmZXJyZWQ7CiAKIAlpZiAoaG9zdC0+ZG1hLmRpcmVjdGlvbiA9PSBETUFfSU4pCkBAIC0xMTUyLDEzICsxMTQ5LDEzIEBACiAgICAgREJHKGhvc3QtPlNDcG50LCBhY29ybnNjc2lfZHVtcGRtYShob3N0LCAiaW50aSIpKTsKICNlbmRpZgogCi0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKLSAgICBkbWFjX2NsZWFyaW50cihob3N0LT5kbWEuaW9faW50cl9jbGVhcik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOworICAgIGRtYWNfY2xlYXJpbnRyKGhvc3QpOwogCiAgICAgLyoKICAgICAgKiBDYWxjdWxhdGUgYW1vdW50IHRyYW5zZmVycmVkIHZpYSBETUEKICAgICAgKi8KLSAgICB0cmFuc2ZlcnJlZCA9IGRtYWNfYWRkcmVzcyhob3N0LT5kbWEuaW9fcG9ydCkgLSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKKyAgICB0cmFuc2ZlcnJlZCA9IGRtYWNfYWRkcmVzcyhob3N0KSAtIGhvc3QtPmRtYS5zdGFydF9hZGRyOwogICAgIGhvc3QtPmRtYS50cmFuc2ZlcnJlZCArPSB0cmFuc2ZlcnJlZDsKIAogICAgIC8qCkBAIC0xMTkwLDEyICsxMTg3LDEyIEBACiAJCQkJbGVuZ3RoKTsKIAogCWxlbmd0aCAtPSAxOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgbGVuZ3RoKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgYWRkcmVzcyA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSSEksIDApOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVExPLCBsZW5ndGgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVEhJLCBsZW5ndGggPj4gOCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUk1ELCBhZGRyZXNzID4+IDgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCAwKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogCURCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgImludG8iKSk7CkBAIC0xMjA5LDE1ICsxMjA2LDE1IEBACiAJICogYXR0ZW50aW9uIGNvbmRpdGlvbi4gIFdlIGNvbnRpbnVlIGdpdmluZyBvbmUgYnl0ZSB1bnRpbAogCSAqIHRoZSBkZXZpY2UgcmVjb2duaXNlcyB0aGUgYXR0ZW50aW9uLgogCSAqLwotCWlmIChkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfU1RBVFVTKSAmIFNUQVRVU19SUTApIHsKKwlpZiAoZG1hY19yZWFkKGhvc3QsIERNQUNfU1RBVFVTKSAmIFNUQVRVU19SUTApIHsKIAkgICAgYWNvcm5zY3NpX2Fib3J0Y21kKGhvc3QsIGhvc3QtPlNDcG50LT50YWcpOwogCi0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRISSwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJMTywgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJISSwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhDTlRMTywgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVEhJLCAwKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTE8sIDApOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJNRCwgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCAwKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKIAl9CiAjZW5kaWYKICAgICB9CkBAIC0xMjcxLDkgKzEyNjgsOSBAQAogCSAgICBob3N0LT5kbWEueGZlcl9zZXR1cCA9IDA7CiAJZWxzZSB7CiAJICAgIHRyYW5zZmVycmVkICs9IGhvc3QtPmRtYS5zdGFydF9hZGRyOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIHRyYW5zZmVycmVkKTsKLQkgICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUk1ELCB0cmFuc2ZlcnJlZCA+PiA4KTsKLQkgICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkhJLCB0cmFuc2ZlcnJlZCA+PiAxNik7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkxPLCB0cmFuc2ZlcnJlZCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUk1ELCB0cmFuc2ZlcnJlZCA+PiA4KTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSSEksIHRyYW5zZmVycmVkID4+IDE2KTsKICNpZiAoREVCVUcgJiAoREVCVUdfRE1BfERFQlVHX1dSSVRFKSkKIAkgICAgREJHKGhvc3QtPlNDcG50LCBhY29ybnNjc2lfZHVtcGRtYShob3N0LCAiYWRqbyIpKTsKICNlbmRpZgpAQCAtMTI5MiwxMiArMTI4OSwxMiBAQAogCWludCBteV9wdHIgPSAqcHRyOwogCiAJd2hpbGUgKG15X3B0ciA8IGxlbikgewotCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKIAogCQlpZiAoYXNyICYgQVNSX0RCUikgewogCQkJdGltZW91dCA9IG1heF90aW1lb3V0OwogCi0JCQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSwgYnl0ZXNbbXlfcHRyKytdKTsKKwkJCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgYnl0ZXNbbXlfcHRyKytdKTsKIAkJfSBlbHNlIGlmIChhc3IgJiBBU1JfSU5UKQogCQkJYnJlYWs7CiAJCWVsc2UgaWYgKC0tdGltZW91dCA9PSAwKQpAQCAtMTMyMCw5ICsxMzE3LDkgQEAKIHsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCA9IGhvc3QtPlNDcG50OwogCi0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RSQU5TQ05USCwgMCk7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgMCk7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgU0NwbnQtPmNtZF9sZW4gLSBob3N0LT5zY3NpLlNDcC5zZW50X2NvbW1hbmQpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfVFJBTlNDTlRILCAwKTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgMCk7CisgICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIFNDcG50LT5jbWRfbGVuIC0gaG9zdC0+c2NzaS5TQ3Auc2VudF9jb21tYW5kKTsKIAogICAgIGFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogCkBAIC0xMzUxLDcgKzEzNDgsNyBAQAogCiAJYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfREJSLCBBU1JfREJSLCAxMDAwLCAic2VuZGluZyBtZXNzYWdlIDEiKTsKIAotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19EQVRBLCBOT1ApOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgTk9QKTsKIAogCWhvc3QtPnNjc2kubGFzdF9tZXNzYWdlID0gTk9QOwogI2lmIChERUJVRyAmIERFQlVHX01FU1NBR0VTKQpAQCAtMTM2NSw3ICsxMzYyLDcgQEAKIAogCWFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0RCUiwgQVNSX0RCUiwgMTAwMCwgInNlbmRpbmcgbWVzc2FnZSAyIik7CiAKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSwgbXNnLT5tc2dbMF0pOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgbXNnLT5tc2dbMF0pOwogCiAJaG9zdC0+c2NzaS5sYXN0X21lc3NhZ2UgPSBtc2ctPm1zZ1swXTsKICNpZiAoREVCVUcgJiBERUJVR19NRVNTQUdFUykKQEAgLTEzODIsOSArMTM3OSw5IEBACiAJICogIGluaXRpYXRvci4gIFRoaXMgcHJvdmlkZXMgYW4gaW50ZXJsb2NrIHNvIHRoYXQgdGhlCiAJICogIGluaXRpYXRvciBjYW4gZGV0ZXJtaW5lIHdoaWNoIG1lc3NhZ2UgYnl0ZSBpcyByZWplY3RlZC4KIAkgKi8KLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfVFJBTlNDTlRILCAwKTsKLQlzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCAwKTsKLQlzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCBtZXNzYWdlX2xlbmd0aCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19UUkFOU0NOVEgsIDApOworCXNiaWNfYXJtX3dyaXRlbmV4dChob3N0LCAwKTsKKwlzYmljX2FybV93cml0ZW5leHQoaG9zdCwgbWVzc2FnZV9sZW5ndGgpOwogCWFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogCiAJbXNnbnIgPSAwOwpAQCAtMTQyMSw3ICsxNDE4LDcgQEAKIHsKICAgICBhY29ybnNjc2lfc2JpY19pc3N1ZWNtZChob3N0LCBDTU5EX1hGRVJJTkZPfENNTkRfU0JUKTsKICAgICBhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9EQlIsIEFTUl9EQlIsIDEwMDAsICJyZWFkaW5nIHN0YXR1cyBieXRlIik7Ci0gICAgaG9zdC0+c2NzaS5TQ3AuU3RhdHVzID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSk7CisgICAgaG9zdC0+c2NzaS5TQ3AuU3RhdHVzID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0RBVEEpOwogfQogCiAvKgpAQCAtMTQzOCwxMiArMTQzNSwxMiBAQAogCiAgICAgYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfREJSLCBBU1JfREJSLCAxMDAwLCAiZm9yIG1lc3NhZ2UgYnl0ZSIpOwogCi0gICAgbWVzc2FnZSA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEpOworICAgIG1lc3NhZ2UgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfREFUQSk7CiAKICAgICAvKiB3YWl0IGZvciBNU0dJTi1YRkVSLVBBVVNFRCAqLwogICAgIGFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0lOVCwgQVNSX0lOVCwgMTAwMCwgImZvciBpbnRlcnJ1cHQgYWZ0ZXIgbWVzc2FnZSBieXRlIik7CiAKLSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAgICAgcmV0dXJuIG1lc3NhZ2U7CiB9CkBAIC0xNDgwLDcgKzE0NzcsNyBAQAogCiAJICAgIC8qIHdhaXQgZm9yIG5leHQgbXNnLWluICovCiAJICAgIGFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0lOVCwgQVNSX0lOVCwgMTAwMCwgImZvciBpbnRlcnJ1cHQgYWZ0ZXIgbmVnYXRlIGFjayIpOwotCSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCSAgICBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAl9CiAgICAgfSB3aGlsZSAobXNnaWR4IDwgbXNnbGVuKTsKIApAQCAtMTYwMiw3ICsxNTk5LDcgQEAKIAkJICAgIGhvc3QtPmhvc3QtPmhvc3Rfbm8sIGFjb3Juc2NzaV90YXJnZXQoaG9zdCkpOwogCSAgICBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlciA9IFNZTkNIVFJBTlNGRVJfMkRCQTsKIAkgICAgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3N0YXRlID0gU1lOQ19BU1lOQ0hST05PVVM7Ci0JICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7CisJICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOwogCSAgICBicmVhazsKIAogCWRlZmF1bHQ6CkBAIC0xNjUyLDcgKzE2NDksNyBAQAogCQlob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlciA9CiAJCQljYWxjX3N5bmNfeGZlcihwZXJpb2QgKiA0LCBsZW5ndGgpOwogCSAgICB9Ci0JICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7CisJICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOwogCSAgICBicmVhazsKICNlbHNlCiAJICAgIC8qIFdlIGRvIG5vdCBhY2NlcHQgc3luY2hyb25vdXMgdHJhbnNmZXJzLiAgUmVzcG9uZCB3aXRoIGEKQEAgLTE3OTIsMTAgKzE3ODksMTAgQEAKIAogICAgIHJlc2lkdWFsID0gc2NzaV9idWZmbGVuKGhvc3QtPlNDcG50KSAtIGhvc3QtPnNjc2kuU0NwLnNjc2lfeGZlcnJlZDsKIAotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgcmVzaWR1YWwgPj4gMTYpOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIHJlc2lkdWFsID4+IDgpOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIHJlc2lkdWFsKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIGhvc3QtPmRldmljZVtob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZF0uc3luY194ZmVyKTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgcmVzaWR1YWwgPj4gMTYpOworICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LCByZXNpZHVhbCA+PiA4KTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgcmVzaWR1YWwpOwogICAgIGFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogICAgIHJldHVybiAxOwogfQpAQCAtMTgxNiw3ICsxODEzLDcgQEAKIHsKICAgICB1bnNpZ25lZCBpbnQgdGFyZ2V0LCBsdW4sIG9rID0gMDsKIAotICAgIHRhcmdldCA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlEKTsKKyAgICB0YXJnZXQgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU09VUkNFSUQpOwogCiAgICAgaWYgKCEodGFyZ2V0ICYgOCkpCiAJcHJpbnRrKEtFUk5fRVJSICJzY3NpJWQ6IGludmFsaWQgc291cmNlIGlkIGFmdGVyIHJlc2VsZWN0aW9uICIKQEAgLTE4MzIsNyArMTgyOSw3IEBACiAJaG9zdC0+U0NwbnQgPSBOVUxMOwogICAgIH0KIAotICAgIGx1biA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEpICYgNzsKKyAgICBsdW4gPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfREFUQSkgJiA3OwogCiAgICAgaG9zdC0+c2NzaS5yZWNvbm5lY3RlZC50YXJnZXQgPSB0YXJnZXQ7CiAgICAgaG9zdC0+c2NzaS5yZWNvbm5lY3RlZC5sdW4gPSBsdW47CkBAIC0xOTUyLDcgKzE5NDksNyBAQAogdm9pZCBhY29ybnNjc2lfYWJvcnRjbWQoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgY2hhciB0YWcpCiB7CiAgICAgaG9zdC0+c2NzaS5waGFzZSA9IFBIQVNFX0FCT1JURUQ7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0NNTkQsIENNTkRfQVNTRVJUQVROKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfQVNTRVJUQVROKTsKIAogICAgIG1zZ3F1ZXVlX2ZsdXNoKCZob3N0LT5zY3NpLm1zZ3MpOwogI2lmZGVmIENPTkZJR19TQ1NJX0FDT1JOU0NTSV9UQUdHRURfUVVFVUUKQEAgLTE5NzksMTEgKzE5NzYsMTEgQEAKIHsKICAgICB1bnNpZ25lZCBpbnQgYXNyLCBzc3I7CiAKLSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworICAgIGFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOwogICAgIGlmICghKGFzciAmIEFTUl9JTlQpKQogCXJldHVybiBJTlRSX0lETEU7CiAKLSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworICAgIHNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAjaWYgKERFQlVHICYgREVCVUdfUEhBU0VTKQogICAgIHByaW50X3NiaWNfc3RhdHVzKGFzciwgc3NyLCBob3N0LT5zY3NpLnBoYXNlKTsKQEAgLTE5OTksMTUgKzE5OTYsMTUgQEAKIAlwcmludGsoS0VSTl9FUlIgInNjc2klZDogcmVzZXQgaW4gc3RhbmRhcmQgbW9kZSBidXQgd2FudGVkIGFkdmFuY2VkIG1vZGUuXG4iLAogCQlob3N0LT5ob3N0LT5ob3N0X25vKTsKIAkvKiBzZXR1cCBzYmljIC0gV0QzM0M5M0EgKi8KLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfT1dOSUQsIE9XTklEX0VBRiB8IGhvc3QtPmhvc3QtPnRoaXNfaWQpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfUkVTRVQpOwogCXJldHVybiBJTlRSX0lETEU7CiAKICAgICBjYXNlIDB4MDE6CQkJCS8qIHJlc2V0IHN0YXRlIC0gYWR2YW5jZWQJCQkqLwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RJTUVPVVQsIFRJTUVPVVRfVElNRSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgU1lOQ0hUUkFOU0ZFUl8yREJBKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CiAJbXNncXVldWVfZmx1c2goJmhvc3QtPnNjc2kubXNncyk7CiAJcmV0dXJuIElOVFJfSURMRTsKIApAQCAtMjAyNSwxMCArMjAyMiwxMCBAQAogCSAgICBtc2dxdWV1ZV9mbHVzaCgmaG9zdC0+c2NzaS5tc2dzKTsKIAkgICAgaG9zdC0+ZG1hLnRyYW5zZmVycmVkID0gaG9zdC0+c2NzaS5TQ3Auc2NzaV94ZmVycmVkOwogCSAgICAvKiAzM0M5MyBnaXZlcyBuZXh0IGludGVycnVwdCBpbmRpY2F0aW5nIGJ1cyBwaGFzZSAqLwotCSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworCSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKIAkgICAgaWYgKCEoYXNyICYgQVNSX0lOVCkpCiAJCWJyZWFrOwotCSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAkgICAgQUREX1NUQVRVUyg4LCBzc3IsIGhvc3QtPnNjc2kucGhhc2UsIDEpOwogCSAgICBBRERfU1RBVFVTKGhvc3QtPlNDcG50LT5kZXZpY2UtPmlkLCBzc3IsIGhvc3QtPnNjc2kucGhhc2UsIDEpOwogCSAgICBnb3RvIGNvbm5lY3RlZDsKQEAgLTI0NzYsMTEgKzI0NzMsMTEgQEAKICAgICBkbyB7CiAJcmV0ID0gSU5UUl9JRExFOwogCi0JaW9zdGF0dXMgPSBpbmIoaG9zdC0+Y2FyZC5pb19pbnRyKTsKKwlpb3N0YXR1cyA9IHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKTsKIAogCWlmIChpb3N0YXR1cyAmIDIpIHsKIAkgICAgYWNvcm5zY3NpX2RtYV9pbnRyKGhvc3QpOwotCSAgICBpb3N0YXR1cyA9IGluYihob3N0LT5jYXJkLmlvX2ludHIpOworCSAgICBpb3N0YXR1cyA9IHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKTsKIAl9CiAKIAlpZiAoaW9zdGF0dXMgJiA4KQpAQCAtMjY1NSw3ICsyNjUyLDcgQEAKIAkJICogYnVzeWx1biBiaXQuCiAJCSAqLwogCQljYXNlIFBIQVNFX0NPTk5FQ1RFRDoKLQkJCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX0RJU0NPTk5FQ1QpOworCQkJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX0RJU0NPTk5FQ1QpOwogCQkJaG9zdC0+U0NwbnQgPSBOVUxMOwogCQkJcmVzID0gcmVzX3N1Y2Nlc3NfY2xlYXI7CiAJCQlicmVhazsKQEAgLTI2OTksOCArMjY5Niw4IEBACiAjaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJewogCQlpbnQgYXNyLCBzc3I7Ci0JCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0FTUik7Ci0JCXNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NTUik7CisJCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworCQlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAogCQlwcmludGsoS0VSTl9XQVJOSU5HICJhY29ybnNjc2lfYWJvcnQ6ICIpOwogCQlwcmludF9zYmljX3N0YXR1cyhhc3IsIHNzciwgaG9zdC0+c2NzaS5waGFzZSk7CkBAIC0yNzMxLDkgKzI3MjgsNyBAQAogLy8jaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJCXByaW50aygic3VjY2Vzc1xuIik7CiAvLyNlbmRpZgotCQlTQ3BudC0+cmVzdWx0ID0gRElEX0FCT1JUIDw8IDE2OwotCQlTQ3BudC0+c2NzaV9kb25lKFNDcG50KTsKLQkJcmVzdWx0ID0gU0NTSV9BQk9SVF9TVUNDRVNTOworCQlyZXN1bHQgPSBTVUNDRVNTOwogCQlicmVhazsKIAogCS8qCkBAIC0yNzQ1LDcgKzI3NDAsNyBAQAogLy8jaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJCXByaW50aygic25vb3plXG4iKTsKIC8vI2VuZGlmCi0JCXJlc3VsdCA9IFNDU0lfQUJPUlRfU05PT1pFOworCQlyZXN1bHQgPSBGQUlMRUQ7CiAJCWJyZWFrOwogCiAJLyoKQEAgLTI3NTUsMTEgKzI3NTAsNyBAQAogCWRlZmF1bHQ6CiAJY2FzZSByZXNfbm90X3J1bm5pbmc6CiAJCWFjb3Juc2NzaV9kdW1wbG9nKGhvc3QsIFNDcG50LT5kZXZpY2UtPmlkKTsKLSNpZiAoREVCVUcgJiBERUJVR19BQk9SVCkKLQkJcmVzdWx0ID0gU0NTSV9BQk9SVF9TTk9PWkU7Ci0jZWxzZQotCQlyZXN1bHQgPSBTQ1NJX0FCT1JUX05PVF9SVU5OSU5HOwotI2VuZGlmCisJCXJlc3VsdCA9IEZBSUxFRDsKIC8vI2lmIChERUJVRyAmIERFQlVHX0FCT1JUKQogCQlwcmludGsoIm5vdCBydW5uaW5nXG4iKTsKIC8vI2VuZGlmCkBAIC0yNzcwLDEzICsyNzYxLDEyIEBACiB9CiAKIC8qCi0gKiBQcm90b3R5cGU6IGludCBhY29ybnNjc2lfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsIHVuc2lnbmVkIGludCByZXNldF9mbGFncykKKyAqIFByb3RvdHlwZTogaW50IGFjb3Juc2NzaV9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCkKICAqIFB1cnBvc2UgIDogcmVzZXQgYSBjb21tYW5kIG9uIHRoaXMgaG9zdC9yZXNldCB0aGlzIGhvc3QKICAqIFBhcmFtcyAgIDogU0NwbnQgIC0gY29tbWFuZCBjYXVzaW5nIHJlc2V0Ci0gKgkgICAgICByZXN1bHQgLSB3aGF0IHR5cGUgb2YgcmVzZXQgdG8gcGVyZm9ybQogICogUmV0dXJucyAgOiBvbmUgb2YgU0NTSV9SRVNFVF8gbWFjcm9zCiAgKi8KLWludCBhY29ybnNjc2lfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsIHVuc2lnbmVkIGludCByZXNldF9mbGFncykKK2ludCBhY29ybnNjc2lfYnVzX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQogewogCUFTX0hvc3QgKmhvc3QgPSAoQVNfSG9zdCAqKVNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCXN0cnVjdCBzY3NpX2NtbmQgKlNDcHRyOwpAQCAtMjc4Nyw4ICsyNzc3LDggQEAKICAgICB7CiAJaW50IGFzciwgc3NyOwogCi0JYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKLQlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworCXNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAJcHJpbnRrKEtFUk5fV0FSTklORyAiYWNvcm5zY3NpX3Jlc2V0OiAiKTsKIAlwcmludF9zYmljX3N0YXR1cyhhc3IsIHNzciwgaG9zdC0+c2NzaS5waGFzZSk7CkBAIC0yNzk4LDI4ICsyNzg4LDE2IEBACiAKICAgICBhY29ybnNjc2lfZG1hX3N0b3AoaG9zdCk7CiAKLSAgICBTQ3B0ciA9IGhvc3QtPlNDcG50OwotCiAgICAgLyoKICAgICAgKiBkbyBoYXJkIHJlc2V0LiAgVGhpcyByZXNldHMgYWxsIGRldmljZXMgb24gdGhpcyBob3N0LCBhbmQgc28gd2UKICAgICAgKiBtdXN0IHNldCB0aGUgcmVzZXQgc3RhdHVzIG9uIGFsbCBjb21tYW5kcy4KICAgICAgKi8KICAgICBhY29ybnNjc2lfcmVzZXRjYXJkKGhvc3QpOwogCi0gICAgLyoKLSAgICAgKiByZXBvcnQgcmVzZXQgb24gY29tbWFuZHMgY3VycmVudCBjb25uZWN0ZWQvZGlzY29ubmVjdGVkCi0gICAgICovCi0gICAgYWNvcm5zY3NpX3JlcG9ydHN0YXR1cygmaG9zdC0+U0NwbnQsICZTQ3B0ciwgRElEX1JFU0VUKTsKLQogICAgIHdoaWxlICgoU0NwdHIgPSBxdWV1ZV9yZW1vdmUoJmhvc3QtPnF1ZXVlcy5kaXNjb25uZWN0ZWQpKSAhPSBOVUxMKQotCWFjb3Juc2NzaV9yZXBvcnRzdGF0dXMoJlNDcHRyLCAmU0NwbnQsIERJRF9SRVNFVCk7CisJOwogCi0gICAgaWYgKFNDcG50KSB7Ci0JU0NwbnQtPnJlc3VsdCA9IERJRF9SRVNFVCA8PCAxNjsKLQlTQ3BudC0+c2NzaV9kb25lKFNDcG50KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gU0NTSV9SRVNFVF9CVVNfUkVTRVQgfCBTQ1NJX1JFU0VUX0hPU1RfUkVTRVQgfCBTQ1NJX1JFU0VUX1NVQ0NFU1M7CisgICAgcmV0dXJuIFNVQ0NFU1M7CiB9CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjg1MCw3ICsyODI4LDcgQEAKICAgICAiIExJTksiCiAjZW5kaWYKICNpZiAoREVCVUcgJiBERUJVR19OT19XUklURSkKLSAgICAiIE5PV1JJVEUgKCJOT19XUklURV9TVFIiKSIKKyAgICAiIE5PV1JJVEUgKCIgX19zdHJpbmdpZnkoTk9fV1JJVEUpICIpIgogI2VuZGlmCiAJCSwgaG9zdC0+aG9zdHQtPm5hbWUsIGhvc3QtPmlvX3BvcnQsIGhvc3QtPmlycSwKIAkJVkVSX01BSk9SLCBWRVJfTUlOT1IsIFZFUl9QQVRDSCk7CkBAIC0yODgxLDE1ICsyODU5LDE1IEBACiAgICAgIiBMSU5LIgogI2VuZGlmCiAjaWYgKERFQlVHICYgREVCVUdfTk9fV1JJVEUpCi0gICAgIiBOT1dSSVRFICgiTk9fV1JJVEVfU1RSIikiCisgICAgIiBOT1dSSVRFICgiIF9fc3RyaW5naWZ5KE5PX1dSSVRFKSAiKSIKICNlbmRpZgogCQkiXG5cbiIsIFZFUl9NQUpPUiwgVkVSX01JTk9SLCBWRVJfUEFUQ0gpOwogCi0gICAgcCArPSBzcHJpbnRmKHAsCSJTQklDOiBXRDMzQzkzQSAgQWRkcmVzczogJTA4WCAgSVJRIDogJWRcbiIsCi0JCQlob3N0LT5zY3NpLmlvX3BvcnQsIGhvc3QtPnNjc2kuaXJxKTsKKyAgICBwICs9IHNwcmludGYocCwJIlNCSUM6IFdEMzNDOTNBICBBZGRyZXNzOiAlcCAgICBJUlEgOiAlZFxuIiwKKwkJCWhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCwgaG9zdC0+c2NzaS5pcnEpOwogI2lmZGVmIFVTRV9ETUFDCi0gICAgcCArPSBzcHJpbnRmKHAsCSJETUFDOiB1UEM3MTA3MSAgQWRkcmVzczogJTA4WCAgSVJRIDogJWRcblxuIiwKLQkJCWhvc3QtPmRtYS5pb19wb3J0LCBob3N0LT5zY3NpLmlycSk7CisgICAgcCArPSBzcHJpbnRmKHAsCSJETUFDOiB1UEM3MTA3MSAgQWRkcmVzczogJXAgIElSUSA6ICVkXG5cbiIsCisJCQlob3N0LT5iYXNlICsgRE1BQ19PRkZTRVQsIGhvc3QtPnNjc2kuaXJxKTsKICNlbmRpZgogCiAgICAgcCArPSBzcHJpbnRmKHAsCSJTdGF0aXN0aWNzOlxuIgpAQCAtMjk3Niw5ICsyOTU0LDggQEAKIAkubmFtZQkJCT0gIkFjb3JuU0NTSSIsCiAJLmluZm8JCQk9IGFjb3Juc2NzaV9pbmZvLAogCS5xdWV1ZWNvbW1hbmQJCT0gYWNvcm5zY3NpX3F1ZXVlY21kLAotI3dhcm5pbmcgZml4bWUKLQkuYWJvcnQJCQk9IGFjb3Juc2NzaV9hYm9ydCwKLQkucmVzZXQJCQk9IGFjb3Juc2NzaV9yZXNldCwKKwkuZWhfYWJvcnRfaGFuZGxlcgk9IGFjb3Juc2NzaV9hYm9ydCwKKwkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJPSBhY29ybnNjc2lfYnVzX3Jlc2V0LAogCS5jYW5fcXVldWUJCT0gMTYsCiAJLnRoaXNfaWQJCT0gNywKIAkuc2dfdGFibGVzaXplCQk9IFNHX0FMTCwKQEAgLTI5OTIsNDggKzI5NjksMzcgQEAKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0OwogCUFTX0hvc3QgKmFzaG9zdDsKLQlpbnQgcmV0ID0gLUVOT01FTTsKKwlpbnQgcmV0OworCisJcmV0ID0gZWNhcmRfcmVxdWVzdF9yZXNvdXJjZXMoZWMpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OwogCiAJaG9zdCA9IHNjc2lfaG9zdF9hbGxvYygmYWNvcm5zY3NpX3RlbXBsYXRlLCBzaXplb2YoQVNfSG9zdCkpOwotCWlmICghaG9zdCkKLQkJZ290byBvdXQ7CisJaWYgKCFob3N0KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X3JlbGVhc2U7CisJfQogCiAJYXNob3N0ID0gKEFTX0hvc3QgKilob3N0LT5ob3N0ZGF0YTsKIAotCWhvc3QtPmlvX3BvcnQgPSBlY2FyZF9hZGRyZXNzKGVjLCBFQ0FSRF9NRU1DLCAwKTsKKwlhc2hvc3QtPmJhc2UgPSBlY2FyZG1faW9tYXAoZWMsIEVDQVJEX1JFU19NRU1DLCAwLCAwKTsKKwlhc2hvc3QtPmZhc3QgPSBlY2FyZG1faW9tYXAoZWMsIEVDQVJEX1JFU19JT0NGQVNULCAwLCAwKTsKKwlpZiAoIWFzaG9zdC0+YmFzZSB8fCAhYXNob3N0LT5mYXN0KQorCQlnb3RvIG91dF9wdXQ7CisKIAlob3N0LT5pcnEgPSBlYy0+aXJxOworCWFzaG9zdC0+aG9zdCA9IGhvc3Q7CisJYXNob3N0LT5zY3NpLmlycSA9IGhvc3QtPmlycTsKIAotCWFzaG9zdC0+aG9zdAkJPSBob3N0OwotCWFzaG9zdC0+c2NzaS5pb19wb3J0CT0gaW9hZGRyKGhvc3QtPmlvX3BvcnQgKyAweDgwMCk7Ci0JYXNob3N0LT5zY3NpLmlycQk9IGhvc3QtPmlycTsKLQlhc2hvc3QtPmNhcmQuaW9faW50cgk9IFBPRF9TUEFDRShob3N0LT5pb19wb3J0KSArIDB4ODAwOwotCWFzaG9zdC0+Y2FyZC5pb19wYWdlCT0gUE9EX1NQQUNFKGhvc3QtPmlvX3BvcnQpICsgMHhjMDA7Ci0JYXNob3N0LT5jYXJkLmlvX3JhbQk9IGlvYWRkcihob3N0LT5pb19wb3J0KTsKLQlhc2hvc3QtPmRtYS5pb19wb3J0CT0gaG9zdC0+aW9fcG9ydCArIDB4YzAwOwotCWFzaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIgPSBQT0RfU1BBQ0UoaG9zdC0+aW9fcG9ydCkgKyAweDgwMDsKLQotCWVjLT5pcnFhZGRyCT0gKGNoYXIgKilpb2FkZHIoYXNob3N0LT5jYXJkLmlvX2ludHIpOworCWVjLT5pcnFhZGRyCT0gYXNob3N0LT5mYXN0ICsgSU5UX1JFRzsKIAllYy0+aXJxbWFzawk9IDB4MGE7CiAKLQlyZXQgPSAtRUJVU1k7Ci0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihob3N0LT5pb19wb3J0ICsgMHg4MDAsIDIsICJhY29ybnNjc2koc2JpYykiKSkKLQkJZ290byBlcnJfMTsKLQlpZiAoIXJlcXVlc3RfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19pbnRyLCAxLCAiYWNvcm5zY3NpKGludHIpIikpCi0JCWdvdG8gZXJyXzI7Ci0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9fcGFnZSwgMSwgImFjb3Juc2NzaShwYWdlKSIpKQotCQlnb3RvIGVycl8zOwotI2lmZGVmIFVTRV9ETUFDCi0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihhc2hvc3QtPmRtYS5pb19wb3J0LCAyNTYsICJhY29ybnNjc2koZG1hYykiKSkKLQkJZ290byBlcnJfNDsKLSNlbmRpZgotCWlmICghcmVxdWVzdF9yZWdpb24oaG9zdC0+aW9fcG9ydCwgMjA0OCwgImFjb3Juc2NzaShyYW0pIikpCi0JCWdvdG8gZXJyXzU7Ci0KIAlyZXQgPSByZXF1ZXN0X2lycShob3N0LT5pcnEsIGFjb3Juc2NzaV9pbnRyLCBJUlFGX0RJU0FCTEVELCAiYWNvcm5zY3NpIiwgYXNob3N0KTsKIAlpZiAocmV0KSB7CiAJCXByaW50ayhLRVJOX0NSSVQgInNjc2klZDogSVJRJWQgbm90IGZyZWU6ICVkXG4iLAogCQkJaG9zdC0+aG9zdF9ubywgYXNob3N0LT5zY3NpLmlycSwgcmV0KTsKLQkJZ290byBlcnJfNjsKKwkJZ290byBvdXRfcHV0OwogCX0KIAogCW1lbXNldCgmYXNob3N0LT5zdGF0cywgMCwgc2l6ZW9mIChhc2hvc3QtPnN0YXRzKSk7CkBAIC0zMDQ1LDI3ICszMDExLDIyIEBACiAKIAlyZXQgPSBzY3NpX2FkZF9ob3N0KGhvc3QsICZlYy0+ZGV2KTsKIAlpZiAocmV0KQotCQlnb3RvIGVycl83OworCQlnb3RvIG91dF9pcnE7CiAKIAlzY3NpX3NjYW5faG9zdChob3N0KTsKIAlnb3RvIG91dDsKIAotIGVycl83OgorIG91dF9pcnE6CiAJZnJlZV9pcnEoaG9zdC0+aXJxLCBhc2hvc3QpOwotIGVycl82OgotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQsIDIwNDgpOwotIGVycl81OgotI2lmZGVmIFVTRV9ETUFDCi0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5kbWEuaW9fcG9ydCwgMjU2KTsKLSNlbmRpZgotIGVycl80OgotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19wYWdlLCAxKTsKLSBlcnJfMzoKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9faW50ciwgMSk7ICAgIAotIGVycl8yOgotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQgKyAweDgwMCwgMik7Ci0gZXJyXzE6CisJbXNncXVldWVfZnJlZSgmYXNob3N0LT5zY3NpLm1zZ3MpOworCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmRpc2Nvbm5lY3RlZCk7CisJcXVldWVfZnJlZSgmYXNob3N0LT5xdWV1ZXMuaXNzdWUpOworIG91dF9wdXQ6CisJZWNhcmRtX2lvdW5tYXAoZWMsIGFzaG9zdC0+ZmFzdCk7CisJZWNhcmRtX2lvdW5tYXAoZWMsIGFzaG9zdC0+YmFzZSk7CiAJc2NzaV9ob3N0X3B1dChob3N0KTsKKyBvdXRfcmVsZWFzZToKKwllY2FyZF9yZWxlYXNlX3Jlc291cmNlcyhlYyk7CiAgb3V0OgogCXJldHVybiByZXQ7CiB9CkBAIC0zMDgxLDIwICszMDQyLDE3IEBACiAJLyoKIAkgKiBQdXQgY2FyZCBpbnRvIFJFU0VUIHN0YXRlCiAJICovCi0Jb3V0YigweDgwLCBhc2hvc3QtPmNhcmQuaW9fcGFnZSk7CisJd3JpdGViKDB4ODAsIGFzaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIAogCWZyZWVfaXJxKGhvc3QtPmlycSwgYXNob3N0KTsKIAotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQgKyAweDgwMCwgMik7Ci0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5jYXJkLmlvX2ludHIsIDEpOwotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19wYWdlLCAxKTsKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmRtYS5pb19wb3J0LCAyNTYpOwotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQsIDIwNDgpOwotCiAJbXNncXVldWVfZnJlZSgmYXNob3N0LT5zY3NpLm1zZ3MpOwogCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmRpc2Nvbm5lY3RlZCk7CiAJcXVldWVfZnJlZSgmYXNob3N0LT5xdWV1ZXMuaXNzdWUpOworCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmZhc3QpOworCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmJhc2UpOwogCXNjc2lfaG9zdF9wdXQoaG9zdCk7CisJZWNhcmRfcmVsZWFzZV9yZXNvdXJjZXMoZWMpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGVjYXJkX2lkIGFjb3Juc2NzaV9jaWRzW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5oIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuaAppbmRleCBkMTE0MjRiLi44ZDIxNzJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5oCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmgKQEAgLTE3OSw3ICsxNzksNiBAQAogCiAvKiBtaXNjZWxsYW5lb3VzIGludGVybmFsIHZhcmlhYmxlcyAqLwogCi0jZGVmaW5lIFBPRF9TUEFDRSh4KQkoKHgpICsgMHhkMDAwMCkKICNkZWZpbmUgTUFTS19PTgkJKE1BU0tSRUdfTTN8TUFTS1JFR19NMnxNQVNLUkVHX00xfE1BU0tSRUdfTTApCiAjZGVmaW5lIE1BU0tfT0ZGCShNQVNLUkVHX00zfE1BU0tSRUdfTTJ8TUFTS1JFR19NMSkKIApAQCAtMjc5LDEwICsyNzgsMTEgQEAKICAgICBzdHJ1Y3QgU2NzaV9Ib3N0CSpob3N0OwkJCS8qIGhvc3QJCQkJCSovCiAgICAgc3RydWN0IHNjc2lfY21uZAkqU0NwbnQ7CQkJLyogY3VycmVudGx5IHByb2Nlc3NpbmcgY29tbWFuZAkJKi8KICAgICBzdHJ1Y3Qgc2NzaV9jbW5kCSpvcmlnU0NwbnQ7CQkvKiBvcmlnaW5hbCBjb25uZWN0aW5nIGNvbW1hbmQJCSovCisgICAgdm9pZCBfX2lvbWVtCSpiYXNlOwkJCS8qIG1lbWMgYmFzZSBhZGRyZXNzIAkJCSovCisgICAgdm9pZCBfX2lvbWVtCSpmYXN0OwkJCS8qIGZhc3QgaW9jIGJhc2UgYWRkcmVzcwkJKi8KIAogICAgIC8qIGRyaXZlciBpbmZvcm1hdGlvbiAqLwogICAgIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50CWlvX3BvcnQ7CQkvKiBiYXNlIGFkZHJlc3Mgb2YgV0QzM0M5MwkJKi8KIAl1bnNpZ25lZCBpbnQJaXJxOwkJCS8qIGludGVycnVwdAkJCQkqLwogCXBoYXNlX3QJCXBoYXNlOwkJCS8qIGN1cnJlbnQgcGhhc2UJCQkqLwogCkBAIC0zMjksOCArMzI5LDYgQEAKIAogICAgIC8qIERNQSBpbmZvICovCiAgICAgc3RydWN0IHsKLQl1bnNpZ25lZCBpbnQJaW9fcG9ydDsJCS8qIGJhc2UgYWRkcmVzcyBvZiBETUEgY29udHJvbGxlcgkqLwotCXVuc2lnbmVkIGludAlpb19pbnRyX2NsZWFyOwkJLyogYWRkcmVzcyBvZiBETUEgaW50ZXJydXB0IGNsZWFyCSovCiAJdW5zaWduZWQgaW50CWZyZWVfYWRkcjsJCS8qIG5leHQgZnJlZSBhZGRyZXNzCQkJKi8KIAl1bnNpZ25lZCBpbnQJc3RhcnRfYWRkcjsJCS8qIHN0YXJ0IGFkZHJlc3Mgb2YgY3VycmVudCB0cmFuc2ZlcgkqLwogCWRtYWRpcl90CWRpcmVjdGlvbjsJCS8qIGRtYSBkaXJlY3Rpb24JCQkqLwpAQCAtMzQ1LDkgKzM0Myw2IEBACiAKICAgICAvKiBjYXJkIGluZm8gKi8KICAgICBzdHJ1Y3QgewotCXVuc2lnbmVkIGludAlpb19pbnRyOwkJLyogYmFzZSBhZGRyZXNzIG9mIGludGVycnVwdCBpZCByZWcJKi8KLQl1bnNpZ25lZCBpbnQJaW9fcGFnZTsJCS8qIGJhc2UgYWRkcmVzcyBvZiBwYWdlIHJlZwkJKi8KLQl1bnNpZ25lZCBpbnQJaW9fcmFtOwkJCS8qIGJhc2UgYWRkcmVzcyBvZiBSQU0gYWNjZXNzCQkqLwogCXVuc2lnbmVkIGNoYXIJcGFnZV9yZWc7CQkvKiBjdXJyZW50IHNldHRpbmcgb2YgcGFnZSByZWcJCSovCiAgICAgfSBjYXJkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvY2guYyBiL2RyaXZlcnMvc2NzaS9jaC5jCmluZGV4IGM0YjkzOGIuLmFhMjAxMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9jaC5jCisrKyBiL2RyaXZlcnMvc2NzaS9jaC5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvY2hpby5oPgkJCS8qIGhlcmUgYXJlIGFsbCB0aGUgaW9jdGxzICovCiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX2NtbmQuaD4KQEAgLTU3MSwxNiArNTcyLDE5IEBACiAJc2NzaV9jaGFuZ2VyICpjaDsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmNoX2luZGV4X2xvY2spOwogCWNoID0gaWRyX2ZpbmQoJmNoX2luZGV4X2lkciwgbWlub3IpOwogCiAJaWYgKE5VTEwgPT0gY2ggfHwgc2NzaV9kZXZpY2VfZ2V0KGNoLT5kZXZpY2UpKSB7CiAJCXNwaW5fdW5sb2NrKCZjaF9pbmRleF9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOwogCX0KIAlzcGluX3VubG9jaygmY2hfaW5kZXhfbG9jayk7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHQvZHB0c2lnLmggYi9kcml2ZXJzL3Njc2kvZHB0L2RwdHNpZy5oCmluZGV4IDcyYzg5OTIuLmE2NjQ0YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kcHQvZHB0c2lnLmgKKysrIGIvZHJpdmVycy9zY3NpL2RwdC9kcHRzaWcuaApAQCAtODUsNyArODUsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBXaGF0IHR5cGUgb2YgcHJvY2Vzc29yIHRoZSBmaWxlIGlzIG1lYW50IHRvIHJ1biBvbi4gKi8KIC8qIFRoaXMgd2lsbCBsZXQgdXMga25vdyB3aGV0aGVyIHRvIHJlYWQgc2lnV09SRHMgYXMgaGlnaC9sb3cgb3IgbG93L2hpZ2guICovCi0jZGVmaW5lIFBST0NfSU5URUwgICAgICAweDAwICAgIC8qIEludGVsIDgweDg2ICovCisjZGVmaW5lIFBST0NfSU5URUwgICAgICAweDAwICAgIC8qIEludGVsIDgweDg2L2lhNjQgKi8KICNkZWZpbmUgUFJPQ19NT1RPUk9MQSAgIDB4MDEgICAgLyogTW90b3JvbGEgNjhLICovCiAjZGVmaW5lIFBST0NfTUlQUzQwMDAgICAweDAyICAgIC8qIE1JUFMgUklTQyA0MDAwICovCiAjZGVmaW5lIFBST0NfQUxQSEEgICAgICAweDAzICAgIC8qIERFQyBBbHBoYSAqLwpAQCAtMTA0LDYgKzEwNCw3IEBACiAjZGVmaW5lIFBST0NfNDg2ICAgICAgICAweDA4ICAgIC8qIEludGVsIDgwNDg2ICovCiAjZGVmaW5lIFBST0NfUEVOVElVTSAgICAweDEwICAgIC8qIEludGVsIDU4NiBha2EgUDUgYWthIFBlbnRpdW0gKi8KICNkZWZpbmUgUFJPQ19TRVhJVU0JMHgyMAkvKiBJbnRlbCA2ODYgYWthIFA2IGFrYSBQZW50aXVtIFBybyBvciBNTVggKi8KKyNkZWZpbmUgUFJPQ19JQTY0CTB4NDAJLyogSW50ZWwgSUE2NCBwcm9jZXNzb3IgKi8KIAogLyogUFJPQ19pOTYwOiAqLwogI2RlZmluZSBQUk9DXzk2MFJYICAgICAgMHgwMSAgICAvKiBJbnRlbCA4MDk2MFJDL1JEICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZHB0X2kyby5jIGIvZHJpdmVycy9zY3NpL2RwdF9pMm8uYwppbmRleCA4NTA4ODE2Li4yYmMzMGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZHB0X2kyby5jCisrKyBiL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4JLyogZm9yIHByaW50ayAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAKQEAgLTE3MjcsMTAgKzE3MjgsMTIgQEAKIAlpbnQgbWlub3I7CiAJYWRwdF9oYmEqIHBIYmE7CiAKKwlsb2NrX2tlcm5lbCgpOwogCS8vVE9ETyBjaGVjayBmb3Igcm9vdCBhY2Nlc3MKIAkvLwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlpZiAobWlub3IgPj0gaGJhX2NvdW50KSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKIAl9CiAJbXV0ZXhfbG9jaygmYWRwdF9jb25maWd1cmF0aW9uX2xvY2spOwpAQCAtMTc0MSw2ICsxNzQ0LDcgQEAKIAl9CiAJaWYgKHBIYmEgPT0gTlVMTCkgewogCQltdXRleF91bmxvY2soJmFkcHRfY29uZmlndXJhdGlvbl9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOwogCX0KIApAQCAtMTc1MSw2ICsxNzU1LDcgQEAKIAogCXBIYmEtPmluX3VzZSA9IDE7CiAJbXV0ZXhfdW5sb2NrKCZhZHB0X2NvbmZpZ3VyYXRpb25fbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZXNwX3Njc2kuYyBiL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jCmluZGV4IGEwYjZkNDEuLjU5ZmJlZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jCkBAIC0yMzU5LDYgKzIzNTksMjQgQEAKIH0KIEVYUE9SVF9TWU1CT0woc2NzaV9lc3BfdW5yZWdpc3Rlcik7CiAKK3N0YXRpYyBpbnQgZXNwX3RhcmdldF9hbGxvYyhzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQpCit7CisJc3RydWN0IGVzcCAqZXNwID0gc2hvc3RfcHJpdihkZXZfdG9fc2hvc3QoJnN0YXJnZXQtPmRldikpOworCXN0cnVjdCBlc3BfdGFyZ2V0X2RhdGEgKnRwID0gJmVzcC0+dGFyZ2V0W3N0YXJnZXQtPmlkXTsKKworCXRwLT5zdGFyZ2V0ID0gc3RhcmdldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBlc3BfdGFyZ2V0X2Rlc3Ryb3koc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQoreworCXN0cnVjdCBlc3AgKmVzcCA9IHNob3N0X3ByaXYoZGV2X3RvX3Nob3N0KCZzdGFyZ2V0LT5kZXYpKTsKKwlzdHJ1Y3QgZXNwX3RhcmdldF9kYXRhICp0cCA9ICZlc3AtPnRhcmdldFtzdGFyZ2V0LT5pZF07CisKKwl0cC0+c3RhcmdldCA9IE5VTEw7Cit9CisKIHN0YXRpYyBpbnQgZXNwX3NsYXZlX2FsbG9jKHN0cnVjdCBzY3NpX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBlc3AgKmVzcCA9IHNob3N0X3ByaXYoZGV2LT5ob3N0KTsKQEAgLTIzNzAsOCArMjM4OCw2IEBACiAJCXJldHVybiAtRU5PTUVNOwogCWRldi0+aG9zdGRhdGEgPSBscDsKIAotCXRwLT5zdGFyZ2V0ID0gZGV2LT5zZGV2X3RhcmdldDsKLQogCXNwaV9taW5fcGVyaW9kKHRwLT5zdGFyZ2V0KSA9IGVzcC0+bWluX3BlcmlvZDsKIAlzcGlfbWF4X29mZnNldCh0cC0+c3RhcmdldCkgPSAxNTsKIApAQCAtMjYwOCw2ICsyNjI0LDggQEAKIAkubmFtZQkJCT0gImVzcCIsCiAJLmluZm8JCQk9IGVzcF9pbmZvLAogCS5xdWV1ZWNvbW1hbmQJCT0gZXNwX3F1ZXVlY29tbWFuZCwKKwkudGFyZ2V0X2FsbG9jCQk9IGVzcF90YXJnZXRfYWxsb2MsCisJLnRhcmdldF9kZXN0cm95CQk9IGVzcF90YXJnZXRfZGVzdHJveSwKIAkuc2xhdmVfYWxsb2MJCT0gZXNwX3NsYXZlX2FsbG9jLAogCS5zbGF2ZV9jb25maWd1cmUJPSBlc3Bfc2xhdmVfY29uZmlndXJlLAogCS5zbGF2ZV9kZXN0cm95CQk9IGVzcF9zbGF2ZV9kZXN0cm95LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2dkdGguYyBiL2RyaXZlcnMvc2NzaS9nZHRoLmMKaW5kZXggNDY3NzFkNC4uODIyZDUyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2dkdGguYworKysgYi9kcml2ZXJzL3Njc2kvZ2R0aC5jCkBAIC0xMjAsNiArMTIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpZmRlZiBHRFRIX1JUQwogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CkBAIC00MDE5LDEwICs0MDIwLDEyIEBACiB7CiAgICAgZ2R0aF9oYV9zdHIgKmhhOwogCisgICAgbG9ja19rZXJuZWwoKTsKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGhhLCAmZ2R0aF9pbnN0YW5jZXMsIGxpc3QpIHsKICAgICAgICAgaWYgKCFoYS0+c2RldikKICAgICAgICAgICAgIGhhLT5zZGV2ID0gc2NzaV9nZXRfaG9zdF9kZXYoaGEtPnNob3N0KTsKICAgICB9CisgICAgdW5sb2NrX2tlcm5lbCgpOwogCiAgICAgVFJBQ0UoKCJnZHRoX29wZW4oKVxuIikpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2hvc3RzLmMgYi9kcml2ZXJzL3Njc2kvaG9zdHMuYwppbmRleCAzNjkwMzYwLi5jNjQ1N2JmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaG9zdHMuYworKysgYi9kcml2ZXJzL3Njc2kvaG9zdHMuYwpAQCAtNDU2LDYgKzQ1NiwxMCBAQAogICoKICAqIFJldHVybiB2YWx1ZToKICAqCUEgcG9pbnRlciB0byBsb2NhdGVkIFNjc2lfSG9zdCBvciBOVUxMLgorICoKKyAqCVRoZSBjYWxsZXIgbXVzdCBkbyBhIHNjc2lfaG9zdF9wdXQoKSB0byBkcm9wIHRoZSByZWZlcmVuY2UKKyAqCXRoYXQgc2NzaV9ob3N0X2dldCgpIHRvb2suIFRoZSBwdXRfZGV2aWNlKCkgYmVsb3cgZHJvcHBlZAorICoJdGhlIHJlZmVyZW5jZSBmcm9tIGNsYXNzX2ZpbmRfZGV2aWNlKCkuCiAgKiovCiBzdHJ1Y3QgU2NzaV9Ib3N0ICpzY3NpX2hvc3RfbG9va3VwKHVuc2lnbmVkIHNob3J0IGhvc3RudW0pCiB7CkBAIC00NjMsOSArNDY3LDEwIEBACiAJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBFUlJfUFRSKC1FTlhJTyk7CiAKIAljZGV2ID0gY2xhc3NfZmluZF9kZXZpY2UoJnNob3N0X2NsYXNzLCAmaG9zdG51bSwgX19zY3NpX2hvc3RfbWF0Y2gpOwotCWlmIChjZGV2KQorCWlmIChjZGV2KSB7CiAJCXNob3N0ID0gc2NzaV9ob3N0X2dldChjbGFzc190b19zaG9zdChjZGV2KSk7Ci0KKwkJcHV0X2RldmljZShjZGV2KTsKKwl9CiAJcmV0dXJuIHNob3N0OwogfQogRVhQT1JUX1NZTUJPTChzY3NpX2hvc3RfbG9va3VwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pcHIuYyBiL2RyaXZlcnMvc2NzaS9pcHIuYwppbmRleCA5OTllOTFlLi5lN2EzYTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaXByLmMKKysrIGIvZHJpdmVycy9zY3NpL2lwci5jCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9saWJhdGEuaD4KKyNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC00OTEzLDggKzQ5MTQsMTEgQEAKIAlzdHJ1Y3QgaXByX3Jlc291cmNlX2VudHJ5ICpyZXM7CiAKIAlyZXMgPSAoc3RydWN0IGlwcl9yZXNvdXJjZV9lbnRyeSAqKXNkZXYtPmhvc3RkYXRhOwotCWlmIChyZXMgJiYgaXByX2lzX2dhdGEocmVzKSkKKwlpZiAocmVzICYmIGlwcl9pc19nYXRhKHJlcykpIHsKKwkJaWYgKGNtZCA9PSBIRElPX0dFVF9JREVOVElUWSkKKwkJCXJldHVybiAtRU5PVFRZOwogCQlyZXR1cm4gYXRhX3Njc2lfaW9jdGwoc2RldiwgY21kLCBhcmcpOworCX0KIAogCXJldHVybiAtRUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwppbmRleCAxODU1MWFhLi4yOGM5ZGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpY2FtLmg+CiAKICNpbmNsdWRlICJzY3NpLmgiCkBAIC0zMjcyLDEyICszMjczLDEyIEBACiAgKiBAZmlsZXAgLSB1bnVzZWQKICAqCiAgKiBSb3V0aW5lcyBmb3IgdGhlIGNoYXJhY3Rlci9pb2N0bCBpbnRlcmZhY2UgdG8gdGhlIGRyaXZlci4gRmluZCBvdXQgaWYgdGhpcwotICogaXMgYSB2YWxpZCBvcGVuLiBJZiB5ZXMsIGluY3JlbWVudCB0aGUgbW9kdWxlIHVzZSBjb3VudCBzbyB0aGF0IGl0IGNhbm5vdAotICogYmUgdW5sb2FkZWQuCisgKiBpcyBhIHZhbGlkIG9wZW4uIAogICovCiBzdGF0aWMgaW50CiBtZWdhZGV2X29wZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlcCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCS8qCiAJICogT25seSBhbGxvdyBzdXBlcnVzZXIgdG8gYWNjZXNzIHByaXZhdGUgaW9jdGwgaW50ZXJmYWNlCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCmluZGV4IDBhZDIxNWUuLmFjM2IyODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCkBAIC0xNSw2ICsxNSw3IEBACiAgKiBDb21tb24gbWFuYWdlbWVudCBtb2R1bGUKICAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJtZWdhcmFpZF9tbS5oIgogCiAKQEAgLTk2LDYgKzk3LDcgQEAKIAkgKi8KIAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHJldHVybiAoLUVBQ0NFUyk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMKaW5kZXggN2Q4NGM4Yi4uZmM3YWMxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXMuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTI4NjMsNiArMjg2NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgbWVnYXNhc19tZ210X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGVwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyoKIAkgKiBBbGxvdyBvbmx5IHRob3NlIHVzZXJzIHdpdGggYWRtaW4gcmlnaHRzCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvb3NzdC5jIGIvZHJpdmVycy9zY3NpL29zc3QuYwppbmRleCAyNDNkOGJlLi4xYzc5Zjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvb3NzdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9vc3N0LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgpAQCAtNDM1OSw3ICs0MzYwLDcgQEAKIAogCiAvKiBPcGVuIHRoZSBkZXZpY2UgKi8KLXN0YXRpYyBpbnQgb3Nfc2NzaV90YXBlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCkKK3N0YXRpYyBpbnQgX19vc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQogewogCXVuc2lnbmVkIHNob3J0CSAgICAgIGZsYWdzOwogCWludAkJICAgICAgaSwgYl9zaXplLCBuZXdfc2Vzc2lvbiA9IDAsIHJldHZhbCA9IDA7CkBAIC00NzI1LDYgKzQ3MjYsMTggQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNwYWdoZXR0aSBhdm9pZGFuY2Ugd3JhcHBlciAqLworc3RhdGljIGludCBvc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IF9fb3Nfc2NzaV90YXBlX29wZW4oaW5vZGUsIGZpbHApOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OworfQorCisKIAogLyogRmx1c2ggdGhlIHRhcGUgYnVmZmVyIGJlZm9yZSBjbG9zZSAqLwogc3RhdGljIGludCBvc19zY3NpX3RhcGVfZmx1c2goc3RydWN0IGZpbGUgKiBmaWxwLCBmbF9vd25lcl90IGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwppbmRleCBhODJkMmZlLi5jYmY1NWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwpAQCAtMjA3LDYgKzIwNywxNSBAQAogCSAqLwogCWJsa19leGVjdXRlX3JxKHJlcS0+cSwgTlVMTCwgcmVxLCAxKTsKIAorCS8qCisJICogU29tZSBkZXZpY2VzIChVU0IgbWFzcy1zdG9yYWdlIGluIHBhcnRpY3VsYXIpIG1heSB0cmFuc2ZlcgorCSAqIGdhcmJhZ2UgZGF0YSB0b2dldGhlciB3aXRoIGEgcmVzaWR1ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIGRhdGEKKwkgKiBpcyBpbnZhbGlkLiAgUHJldmVudCB0aGUgZ2FyYmFnZSBmcm9tIGJlaW5nIG1pc2ludGVycHJldGVkCisJICogYW5kIHByZXZlbnQgc2VjdXJpdHkgbGVha3MgYnkgemVyb2luZyBvdXQgdGhlIGV4Y2VzcyBkYXRhLgorCSAqLworCWlmICh1bmxpa2VseShyZXEtPmRhdGFfbGVuID4gMCAmJiByZXEtPmRhdGFfbGVuIDw9IGJ1ZmZsZW4pKQorCQltZW1zZXQoYnVmZmVyICsgKGJ1ZmZsZW4gLSByZXEtPmRhdGFfbGVuKSwgMCwgcmVxLT5kYXRhX2xlbik7CisKIAlyZXQgPSByZXEtPmVycm9yczsKICBvdXQ6CiAJYmxrX3B1dF9yZXF1ZXN0KHJlcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYyBiL2RyaXZlcnMvc2NzaS9zY3NpX3RndF9pZi5jCmluZGV4IGQyNTU3ZGIuLjBlOTUzM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX3RndF9pZi5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX3RndF9pZi5jCkBAIC0yMSw2ICsyMSw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bmV0L3RjcC5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaS5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaV9jbW5kLmg+CkBAIC0zMjEsNiArMzIyLDcgQEAKIHsKIAl0eF9yaW5nLnRyX2lkeCA9IHJ4X3JpbmcudHJfaWR4ID0gMDsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZXMuYyBiL2RyaXZlcnMvc2NzaS9zZXMuYwppbmRleCA0NWRmODNiLi4wZmUwMzFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2VzLmMKKysrIGIvZHJpdmVycy9zY3NpL3Nlcy5jCkBAIC02MSw3ICs2MSw3IEBACiAJcmV0dXJuIGVycjsKIH0KIAotI2RlZmluZSBTRVNfVElNRU9VVCAzMAorI2RlZmluZSBTRVNfVElNRU9VVCAoMzAgKiBIWikKICNkZWZpbmUgU0VTX1JFVFJJRVMgMwogCiBzdGF0aWMgaW50IHNlc19yZWN2X2RpYWcoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2LCBpbnQgcGFnZV9jb2RlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NnLmMgYi9kcml2ZXJzL3Njc2kvc2cuYwppbmRleCBlYTBlZGQxLi5mY2NkMmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2cuYworKysgYi9kcml2ZXJzL3Njc2kvc2cuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9ibGt0cmFjZV9hcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAic2NzaS5oIgogI2luY2x1ZGUgPHNjc2kvc2NzaV9kYmcuaD4KQEAgLTE4Miw4ICsxODMsOSBAQAogCQkJIGludCB0YWJsZXNpemUpOwogc3RhdGljIHNzaXplX3Qgc2dfbmV3X3JlYWQoU2dfZmQgKiBzZnAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwKIAkJCSAgIFNnX3JlcXVlc3QgKiBzcnApOwotc3RhdGljIHNzaXplX3Qgc2dfbmV3X3dyaXRlKFNnX2ZkICogc2ZwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsCi0JCQkgICAgaW50IGJsb2NraW5nLCBpbnQgcmVhZF9vbmx5LCBTZ19yZXF1ZXN0ICoqIG9fc3JwKTsKK3N0YXRpYyBzc2l6ZV90IHNnX25ld193cml0ZShTZ19mZCAqc2ZwLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgaW50IGJsb2NraW5nLAorCQkJaW50IHJlYWRfb25seSwgU2dfcmVxdWVzdCAqKm9fc3JwKTsKIHN0YXRpYyBpbnQgc2dfY29tbW9uX3dyaXRlKFNnX2ZkICogc2ZwLCBTZ19yZXF1ZXN0ICogc3JwLAogCQkJICAgdW5zaWduZWQgY2hhciAqY21uZCwgaW50IHRpbWVvdXQsIGludCBibG9ja2luZyk7CiBzdGF0aWMgaW50IHNnX3VfaW92ZWMoc2dfaW9faGRyX3QgKiBocCwgaW50IHNnX251bSwgaW50IGluZCwKQEAgLTIwNCw3ICsyMDYsNiBAQAogc3RhdGljIFNnX3JlcXVlc3QgKnNnX2FkZF9yZXF1ZXN0KFNnX2ZkICogc2ZwKTsKIHN0YXRpYyBpbnQgc2dfcmVtb3ZlX3JlcXVlc3QoU2dfZmQgKiBzZnAsIFNnX3JlcXVlc3QgKiBzcnApOwogc3RhdGljIGludCBzZ19yZXNfaW5fdXNlKFNnX2ZkICogc2ZwKTsKLXN0YXRpYyBpbnQgc2dfYWxsb3dfYWNjZXNzKHVuc2lnbmVkIGNoYXIgb3Bjb2RlLCBjaGFyIGRldl90eXBlKTsKIHN0YXRpYyBpbnQgc2dfYnVpbGRfZGlyZWN0KFNnX3JlcXVlc3QgKiBzcnAsIFNnX2ZkICogc2ZwLCBpbnQgZHhmZXJfbGVuKTsKIHN0YXRpYyBTZ19kZXZpY2UgKnNnX2dldF9kZXYoaW50IGRldik7CiAjaWZkZWYgQ09ORklHX1NDU0lfUFJPQ19GUwpAQCAtMjI3LDE5ICsyMjgsMjYgQEAKIAlpbnQgcmVzOwogCWludCByZXR2YWw7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogCVNDU0lfTE9HX1RJTUVPVVQoMywgcHJpbnRrKCJzZ19vcGVuOiBkZXY9JWQsIGZsYWdzPTB4JXhcbiIsIGRldiwgZmxhZ3MpKTsKIAlzZHAgPSBzZ19nZXRfZGV2KGRldik7Ci0JaWYgKCghc2RwKSB8fCAoIXNkcC0+ZGV2aWNlKSkKKwlpZiAoKCFzZHApIHx8ICghc2RwLT5kZXZpY2UpKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKLQlpZiAoc2RwLT5kZXRhY2hlZCkKKwl9CisJaWYgKHNkcC0+ZGV0YWNoZWQpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAkvKiBUaGlzIGRyaXZlcidzIG1vZHVsZSBjb3VudCBidW1wZWQgYnkgZm9wc19nZXQgaW4gPGxpbnV4L2ZzLmg+ICovCiAJLyogUHJldmVudCB0aGUgZGV2aWNlIGRyaXZlciBmcm9tIHZhbmlzaGluZyB3aGlsZSB3ZSBzbGVlcCAqLwogCXJldHZhbCA9IHNjc2lfZGV2aWNlX2dldChzZHAtPmRldmljZSk7Ci0JaWYgKHJldHZhbCkKKwlpZiAocmV0dmFsKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIHJldHZhbDsKKwl9CiAKIAlpZiAoISgoZmxhZ3MgJiBPX05PTkJMT0NLKSB8fAogCSAgICAgIHNjc2lfYmxvY2tfd2hlbl9wcm9jZXNzaW5nX2Vycm9ycyhzZHAtPmRldmljZSkpKSB7CkBAIC0yOTUsMTAgKzMwMywxMiBAQAogCQlyZXR2YWwgPSAtRU5PTUVNOwogCQlnb3RvIGVycm9yX291dDsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiAgICAgICBlcnJvcl9vdXQ6CiAJc2NzaV9kZXZpY2VfcHV0KHNkcC0+ZGV2aWNlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtNTQ0LDcgKzU1NCw3IEBACiAJCXJldHVybiAtRUZBVUxUOwogCWJsb2NraW5nID0gIShmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSyk7CiAJaWYgKG9sZF9oZHIucmVwbHlfbGVuIDwgMCkKLQkJcmV0dXJuIHNnX25ld193cml0ZShzZnAsIGJ1ZiwgY291bnQsIGJsb2NraW5nLCAwLCBOVUxMKTsKKwkJcmV0dXJuIHNnX25ld193cml0ZShzZnAsIGZpbHAsIGJ1ZiwgY291bnQsIGJsb2NraW5nLCAwLCBOVUxMKTsKIAlpZiAoY291bnQgPCAoU1pfU0dfSEVBREVSICsgNikpCiAJCXJldHVybiAtRUlPOwkvKiBUaGUgbWluaW11bSBzY3NpIGNvbW1hbmQgbGVuZ3RoIGlzIDYgYnl0ZXMuICovCiAKQEAgLTYyMSw4ICs2MzEsOSBAQAogfQogCiBzdGF0aWMgc3NpemVfdAotc2dfbmV3X3dyaXRlKFNnX2ZkICogc2ZwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsCi0JICAgICBpbnQgYmxvY2tpbmcsIGludCByZWFkX29ubHksIFNnX3JlcXVlc3QgKiogb19zcnApCitzZ19uZXdfd3JpdGUoU2dfZmQgKnNmcCwgc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsCisJCSBzaXplX3QgY291bnQsIGludCBibG9ja2luZywgaW50IHJlYWRfb25seSwKKwkJIFNnX3JlcXVlc3QgKipvX3NycCkKIHsKIAlpbnQgazsKIAlTZ19yZXF1ZXN0ICpzcnA7CkBAIC02NzgsOCArNjg5LDcgQEAKIAkJc2dfcmVtb3ZlX3JlcXVlc3Qoc2ZwLCBzcnApOwogCQlyZXR1cm4gLUVGQVVMVDsKIAl9Ci0JaWYgKHJlYWRfb25seSAmJgotCSAgICAoIXNnX2FsbG93X2FjY2VzcyhjbW5kWzBdLCBzZnAtPnBhcmVudGRwLT5kZXZpY2UtPnR5cGUpKSkgeworCWlmIChyZWFkX29ubHkgJiYgIWJsa192ZXJpZnlfY29tbWFuZChmaWxlLCBjbW5kKSkgewogCQlzZ19yZW1vdmVfcmVxdWVzdChzZnAsIHNycCk7CiAJCXJldHVybiAtRVBFUk07CiAJfQpAQCAtNzk5LDcgKzgwOSw3IEBACiAJCQlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsIHAsIFNaX1NHX0lPX0hEUikpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCQlyZXN1bHQgPQotCQkJICAgIHNnX25ld193cml0ZShzZnAsIHAsIFNaX1NHX0lPX0hEUiwKKwkJCSAgICBzZ19uZXdfd3JpdGUoc2ZwLCBmaWxwLCBwLCBTWl9TR19JT19IRFIsCiAJCQkJCSBibG9ja2luZywgcmVhZF9vbmx5LCAmc3JwKTsKIAkJCWlmIChyZXN1bHQgPCAwKQogCQkJCXJldHVybiByZXN1bHQ7CkBAIC0xMDQ4LDcgKzEwNTgsNyBAQAogCiAJCQlpZiAoY29weV9mcm9tX3VzZXIoJm9wY29kZSwgc2lvY3AtPmRhdGEsIDEpKQogCQkJCXJldHVybiAtRUZBVUxUOwotCQkJaWYgKCFzZ19hbGxvd19hY2Nlc3Mob3Bjb2RlLCBzZHAtPmRldmljZS0+dHlwZSkpCisJCQlpZiAoIWJsa192ZXJpZnlfY29tbWFuZChmaWxwLCAmb3Bjb2RlKSkKIAkJCQlyZXR1cm4gLUVQRVJNOwogCQl9CiAJCXJldHVybiBzZ19zY3NpX2lvY3RsKGZpbHAsIHNkcC0+ZGV2aWNlLT5yZXF1ZXN0X3F1ZXVlLCBOVUxMLCBwKTsKQEAgLTI1MDIsMzAgKzI1MTIsNiBAQAogCV9fZnJlZV9wYWdlcyhwYWdlLCBvcmRlcik7CiB9CiAKLSNpZm5kZWYgTUFJTlRFTkFOQ0VfSU5fQ01ECi0jZGVmaW5lIE1BSU5URU5BTkNFX0lOX0NNRCAweGEzCi0jZW5kaWYKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYWxsb3dfb3BzW10gPSB7IFRFU1RfVU5JVF9SRUFEWSwgUkVRVUVTVF9TRU5TRSwKLQlJTlFVSVJZLCBSRUFEX0NBUEFDSVRZLCBSRUFEX0JVRkZFUiwgUkVBRF82LCBSRUFEXzEwLCBSRUFEXzEyLAotCVJFQURfMTYsIE1PREVfU0VOU0UsIE1PREVfU0VOU0VfMTAsIExPR19TRU5TRSwgUkVQT1JUX0xVTlMsCi0JU0VSVklDRV9BQ1RJT05fSU4sIFJFQ0VJVkVfRElBR05PU1RJQywgUkVBRF9MT05HLCBNQUlOVEVOQU5DRV9JTl9DTUQKLX07Ci0KLXN0YXRpYyBpbnQKLXNnX2FsbG93X2FjY2Vzcyh1bnNpZ25lZCBjaGFyIG9wY29kZSwgY2hhciBkZXZfdHlwZSkKLXsKLQlpbnQgazsKLQotCWlmIChUWVBFX1NDQU5ORVIgPT0gZGV2X3R5cGUpCS8qIFRZUEVfUk9NIG1heWJlIGJ1cm5lciAqLwotCQlyZXR1cm4gMTsKLQlmb3IgKGsgPSAwOyBrIDwgc2l6ZW9mIChhbGxvd19vcHMpOyArK2spIHsKLQkJaWYgKG9wY29kZSA9PSBhbGxvd19vcHNba10pCi0JCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KICNpZmRlZiBDT05GSUdfU0NTSV9QUk9DX0ZTCiBzdGF0aWMgaW50CiBzZ19pZHJfbWF4X2lkKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zci5jIGIvZHJpdmVycy9zY3NpL3NyLmMKaW5kZXggN2VlODZkNGE3Li4yN2Y1YmZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3IuYworKysgYi9kcml2ZXJzL3Njc2kvc3IuYwpAQCAtMTc4LDYgKzE3OCw5IEBACiAJCXRoZV9yZXN1bHQgPSBzY3NpX2V4ZWN1dGVfcmVxKHNkZXYsIGNtZCwgRE1BX05PTkUsIE5VTEwsCiAJCQkJCSAgICAgIDAsIHNzaGRyLCBTUl9USU1FT1VULAogCQkJCQkgICAgICByZXRyaWVzLS0pOworCQlpZiAoc2NzaV9zZW5zZV92YWxpZChzc2hkcikgJiYKKwkJICAgIHNzaGRyLT5zZW5zZV9rZXkgPT0gVU5JVF9BVFRFTlRJT04pCisJCQlzZGV2LT5jaGFuZ2VkID0gMTsKIAogCX0gd2hpbGUgKHJldHJpZXMgPiAwICYmCiAJCSAoIXNjc2lfc3RhdHVzX2lzX2dvb2QodGhlX3Jlc3VsdCkgfHwKQEAgLTY3MCwyNCArNjczLDIwIEBACiBzdGF0aWMgdm9pZCBnZXRfc2VjdG9yc2l6ZShzdHJ1Y3Qgc2NzaV9jZCAqY2QpCiB7CiAJdW5zaWduZWQgY2hhciBjbWRbMTBdOwotCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlcls4XTsKIAlpbnQgdGhlX3Jlc3VsdCwgcmV0cmllcyA9IDM7CiAJaW50IHNlY3Rvcl9zaXplOwogCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxdWV1ZTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoNTEyLCBHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7Ci0JaWYgKCFidWZmZXIpCi0JCWdvdG8gRW5vbWVtOwotCiAJZG8gewogCQljbWRbMF0gPSBSRUFEX0NBUEFDSVRZOwogCQltZW1zZXQoKHZvaWQgKikgJmNtZFsxXSwgMCwgOSk7Ci0JCW1lbXNldChidWZmZXIsIDAsIDgpOworCQltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2YoYnVmZmVyKSk7CiAKIAkJLyogRG8gdGhlIGNvbW1hbmQgYW5kIHdhaXQuLiAqLwogCQl0aGVfcmVzdWx0ID0gc2NzaV9leGVjdXRlX3JlcShjZC0+ZGV2aWNlLCBjbWQsIERNQV9GUk9NX0RFVklDRSwKLQkJCQkJICAgICAgYnVmZmVyLCA4LCBOVUxMLCBTUl9USU1FT1VULAotCQkJCQkgICAgICBNQVhfUkVUUklFUyk7CisJCQkJCSAgICAgIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIE5VTEwsCisJCQkJCSAgICAgIFNSX1RJTUVPVVQsIE1BWF9SRVRSSUVTKTsKIAogCQlyZXRyaWVzLS07CiAKQEAgLTc0MiwxNCArNzQxLDggQEAKIAogCXF1ZXVlID0gY2QtPmRldmljZS0+cmVxdWVzdF9xdWV1ZTsKIAlibGtfcXVldWVfaGFyZHNlY3Rfc2l6ZShxdWV1ZSwgc2VjdG9yX3NpemUpOwotb3V0OgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuOwogCi1Fbm9tZW06Ci0JY2QtPmNhcGFjaXR5ID0gMHgxZmZmZmY7Ci0JY2QtPmRldmljZS0+c2VjdG9yX3NpemUgPSAyMDQ4OwkvKiBBIGd1ZXNzLCBqdXN0IGluIGNhc2UgKi8KLQlnb3RvIG91dDsKKwlyZXR1cm47CiB9CiAKIHN0YXRpYyB2b2lkIGdldF9jYXBhYmlsaXRpZXMoc3RydWN0IHNjc2lfY2QgKmNkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0LmMgYi9kcml2ZXJzL3Njc2kvc3QuYwppbmRleCA2ZTVhNWJiLi40Njg0Y2M3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3QuYworKysgYi9kcml2ZXJzL3Njc2kvc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgpAQCAtMTExMyw3ICsxMTE0LDcgQEAKIH0KIAogCi0MLyogT3BlbiB0aGUgZGV2aWNlLiBOZWVkcyB0byBiZSBjYWxsZWQgd2l0aCBCS0wgb25seSBiZWNhdXNlIG9mIGluY3JlbWVudGluZyB0aGUgU0NTSSBob3N0CisMLyogT3BlbiB0aGUgZGV2aWNlLiBOZWVkcyB0byB0YWtlIHRoZSBCS0wgb25seSBiZWNhdXNlIG9mIGluY3JlbWVudGluZyB0aGUgU0NTSSBob3N0CiAgICBtb2R1bGUgY291bnQuICovCiBzdGF0aWMgaW50IHN0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CkBAIC0xMTIzLDYgKzExMjQsNyBAQAogCWludCBkZXYgPSBUQVBFX05SKGlub2RlKTsKIAljaGFyICpuYW1lOwogCisJbG9ja19rZXJuZWwoKTsKIAkvKgogCSAqIFdlIHJlYWxseSB3YW50IHRvIGRvIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOyBoZXJlLCBidXQgc29tZQogCSAqIHZlcnNpb25zIG9mIHRhciBpbmNvcnJlY3RseSBjYWxsIGxzZWVrIG9uIHRhcGVzIGFuZCBiYWlsIG91dCBpZiB0aGF0CkBAIC0xMTMwLDggKzExMzIsMTAgQEAKIAkgKi8KIAlmaWxwLT5mX21vZGUgJj0gfihGTU9ERV9QUkVBRCB8IEZNT0RFX1BXUklURSk7CiAKLQlpZiAoIShTVHAgPSBzY3NpX3RhcGVfZ2V0KGRldikpKQorCWlmICghKFNUcCA9IHNjc2lfdGFwZV9nZXQoZGV2KSkpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOworCX0KIAogCXdyaXRlX2xvY2soJnN0X2Rldl9hcnJfbG9jayk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gU1RwOwpAQCAtMTE0MCw2ICsxMTQ0LDcgQEAKIAlpZiAoU1RwLT5pbl91c2UpIHsKIAkJd3JpdGVfdW5sb2NrKCZzdF9kZXZfYXJyX2xvY2spOwogCQlzY3NpX3RhcGVfcHV0KFNUcCk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJREVCKCBwcmludGsoU1RfREVCX01TRyAiJXM6IERldmljZSBhbHJlYWR5IGluIHVzZS5cbiIsIG5hbWUpOyApCiAJCXJldHVybiAoLUVCVVNZKTsKIAl9CkBAIC0xMTg4LDEyICsxMTkzLDE0IEBACiAJCQlyZXR2YWwgPSAoLUVJTyk7CiAJCWdvdG8gZXJyX291dDsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiAgZXJyX291dDoKIAlub3JtYWxpemVfYnVmZmVyKFNUcC0+YnVmZmVyKTsKIAlTVHAtPmluX3VzZSA9IDA7CiAJc2NzaV90YXBlX3B1dChTVHApOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0dmFsOwogCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC84MjUwLmMgYi9kcml2ZXJzL3NlcmlhbC84MjUwLmMKaW5kZXggMWJjMDBiNy4uYmU5NWU1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvODI1MC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsLzgyNTAuYwpAQCAtMjYyMyw2ICsyNjIzLDkgQEAKIAogc3RhdGljIGludCBfX2luaXQgc2VyaWFsODI1MF9jb25zb2xlX2luaXQodm9pZCkKIHsKKwlpZiAobnJfdWFydHMgPiBVQVJUX05SKQorCQlucl91YXJ0cyA9IFVBUlRfTlI7CisKIAlzZXJpYWw4MjUwX2lzYV9pbml0X3BvcnRzKCk7CiAJcmVnaXN0ZXJfY29uc29sZSgmc2VyaWFsODI1MF9jb25zb2xlKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL0tjb25maWcgYi9kcml2ZXJzL3NlcmlhbC9LY29uZmlnCmluZGV4IDliYzQyNzYuLjE4Y2E5MDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL0tjb25maWcKKysrIGIvZHJpdmVycy9zZXJpYWwvS2NvbmZpZwpAQCAtNDQ4LDIyICs0NDgsMjcgQEAKIAkgIHlvdXIgYm9vdCBsb2FkZXIgKGxpbG8gb3IgbG9hZGxpbikgYWJvdXQgaG93IHRvIHBhc3Mgb3B0aW9ucyB0byB0aGUKIAkgIGtlcm5lbCBhdCBib290IHRpbWUuKQogCi1jb25maWcgU0VSSUFMX1MzQzI0MTAKLQl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDEwL1MzQzI0NDAvUzNDMjQ0Mi9TM0MyNDEyIFNlcmlhbCBwb3J0IHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUk0gJiYgQVJDSF9TM0MyNDEwCi0Jc2VsZWN0IFNFUklBTF9DT1JFCitjb25maWcgU0VSSUFMX1NBTVNVTkcKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTb0Mgc2VyaWFsIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBBUk0gJiYgUExBVF9TM0MyNFhYCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgdGhlIG9uLWNoaXAgVUFSVHMgb24gdGhlIFNhbXN1bmcgUzNDMjRYWCBzZXJpZXMgQ1BVcywKIAkgIHByb3ZpZGluZyAvZGV2L3R0eVNBQzAsIDEgYW5kIDIgKG5vdGUsIHNvbWUgbWFjaGluZXMgbWF5IG5vdAogCSAgcHJvdmlkZSBhbGwgb2YgdGhlc2UgcG9ydHMsIGRlcGVuZGluZyBvbiBob3cgdGhlIHNlcmlhbCBwb3J0CiAJICBwaW5zIGFyZSBjb25maWd1cmVkLgogCi0JICBDdXJyZW50bHkgdGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIFVBUlRTIG9uIHRoZSBTM0MyNDEwLCBTM0MyNDQwLAotCSAgUzNDMjQ0MiwgUzNDMjQxMiBhbmQgUzNDMjQxMyBDUFVzLgorY29uZmlnIFNFUklBTF9TQU1TVU5HX0RFQlVHCisJYm9vbCAiU2Ftc3VuZyBTb0Mgc2VyaWFsIGRlYnVnIgorCWRlcGVuZHMgb24gU0VSSUFMX1NBTVNVTkcKKwloZWxwCisJICBBZGQgc3VwcG9ydCBmb3IgZGVidWdnaW5nIHRoZSBzZXJpYWwgZHJpdmVyLiBTaW5jZSB0aGlzIGlzCisJICBnZW5lcmFsbHkgYmVpbmcgdXNlZCBhcyBhIGNvbnNvbGUsIHdlIHVzZSBvdXIgb3duIG91dHB1dAorCSAgcm91dGluZXMgdGhhdCBnbyB2aWEgdGhlIGxvdy1sZXZlbCBkZWJ1ZyBwcmludGFzY2lpKCkKKwkgIGZ1bmN0aW9uLgogCi1jb25maWcgU0VSSUFMX1MzQzI0MTBfQ09OU09MRQotCWJvb2wgIlN1cHBvcnQgZm9yIGNvbnNvbGUgb24gUzNDMjQxMCBzZXJpYWwgcG9ydCIKLQlkZXBlbmRzIG9uIFNFUklBTF9TM0MyNDEwPXkKK2NvbmZpZyBTRVJJQUxfU0FNU1VOR19DT05TT0xFCisJYm9vbCAiU3VwcG9ydCBmb3IgY29uc29sZSBvbiBTYW1zdW5nIFNvQyBzZXJpYWwgcG9ydCIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HPXkKIAlzZWxlY3QgU0VSSUFMX0NPUkVfQ09OU09MRQogCWhlbHAKIAkgIEFsbG93IHNlbGVjdGlvbiBvZiB0aGUgUzNDMjRYWCBvbi1ib2FyZCBzZXJpYWwgcG9ydHMgZm9yIHVzZSBhcwpAQCAtNDc2LDYgKzQ4MSwzNyBAQAogCSAgeW91ciBib290IGxvYWRlciBhYm91dCBob3cgdG8gcGFzcyBvcHRpb25zIHRvIHRoZSBrZXJuZWwgYXQKIAkgIGJvb3QgdGltZS4pCiAKK2NvbmZpZyBTRVJJQUxfUzNDMjQwMAorCXRyaXN0YXRlICJTYW1zdW5nIFMzQzI0MTAgU2VyaWFsIHBvcnQgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEFSTSAmJiBTRVJJQUxfU0FNU1VORyAmJiBDUFVfUzNDMjQwMAorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQwMAorCWhlbHAKKwkgIFNlcmlhbCBwb3J0IHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nIFMzQzI0MDAgU29DCisKK2NvbmZpZyBTRVJJQUxfUzNDMjQxMAorCXRyaXN0YXRlICJTYW1zdW5nIFMzQzI0MTAgU2VyaWFsIHBvcnQgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HICYmIENQVV9TM0MyNDEwCisJZGVmYXVsdCB5IGlmIENQVV9TM0MyNDEwCisJaGVscAorCSAgU2VyaWFsIHBvcnQgc3VwcG9ydCBmb3IgdGhlIFNhbXN1bmcgUzNDMjQxMCBTb0MKKworY29uZmlnIFNFUklBTF9TM0MyNDEyCisJdHJpc3RhdGUgIlNhbXN1bmcgUzNDMjQxMi9TM0MyNDEzIFNlcmlhbCBwb3J0IHN1cHBvcnQiCisJZGVwZW5kcyBvbiBTRVJJQUxfU0FNU1VORyAmJiBDUFVfUzNDMjQxMgorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQxMgorCWhlbHAKKwkgIFNlcmlhbCBwb3J0IHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nIFMzQzI0MTIgYW5kIFMzQzI0MTMgU29DCisKK2NvbmZpZyBTRVJJQUxfUzNDMjQ0MAorCXRyaXN0YXRlICJTYW1zdW5nIFMzQzI0NDAvUzNDMjQ0MiBTZXJpYWwgcG9ydCBzdXBwb3J0IgorCWRlcGVuZHMgb24gU0VSSUFMX1NBTVNVTkcgJiYgKENQVV9TM0MyNDQwIHx8IENQVV9TM0MyNDQyKQorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQ0MAorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQ0MgorCWhlbHAKKwkgIFNlcmlhbCBwb3J0IHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nIFMzQzI0NDAgYW5kIFMzQzI0NDIgU29DCisKKworCiBjb25maWcgU0VSSUFMX0RaCiAJYm9vbCAiREVDc3RhdGlvbiBEWiBzZXJpYWwgZHJpdmVyIgogCWRlcGVuZHMgb24gTUFDSF9ERUNTVEFUSU9OICYmIDMyQklUCkBAIC03NTMsNyArNzg5LDcgQEAKIAogY29uZmlnIFNFUklBTF9JTVgKIAlib29sICJJTVggc2VyaWFsIHBvcnQgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEFSTSAmJiBBUkNIX0lNWAorCWRlcGVuZHMgb24gQVJNICYmIChBUkNIX0lNWCB8fCBBUkNIX01YQykKIAlzZWxlY3QgU0VSSUFMX0NPUkUKIAloZWxwCiAJICBJZiB5b3UgaGF2ZSBhIG1hY2hpbmUgYmFzZWQgb24gYSBNb3Rvcm9sYSBJTVggQ1BVIHlvdQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUgYi9kcml2ZXJzL3NlcmlhbC9NYWtlZmlsZQppbmRleCAwZDljMDliLi43ZDg1YzFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3NlcmlhbC9NYWtlZmlsZQpAQCAtMjgsNyArMjgsMTEgQEAKIG9iai0kKENPTkZJR19TRVJJQUxfU0ExMTAwKSArPSBzYTExMDAubwogb2JqLSQoQ09ORklHX1NFUklBTF9CRklOKSArPSBiZmluXzV4eC5vCiBvYmotJChDT05GSUdfU0VSSUFMX0JGSU5fU1BPUlQpICs9IGJmaW5fc3BvcnRfdWFydC5vCitvYmotJChDT05GSUdfU0VSSUFMX1NBTVNVTkcpICs9IHNhbXN1bmcubworb2JqLSQoQ09ORklHX1NFUklBTF9TM0MyNDAwKSArPSBzM2MyNDAwLm8KIG9iai0kKENPTkZJR19TRVJJQUxfUzNDMjQxMCkgKz0gczNjMjQxMC5vCitvYmotJChDT05GSUdfU0VSSUFMX1MzQzI0MTIpICs9IHMzYzI0MTIubworb2JqLSQoQ09ORklHX1NFUklBTF9TM0MyNDQwKSArPSBzM2MyNDQwLm8KIG9iai0kKENPTkZJR19TRVJJQUxfU1VOQ09SRSkgKz0gc3VuY29yZS5vCiBvYmotJChDT05GSUdfU0VSSUFMX1NVTkhWKSArPSBzdW5odi5vCiBvYmotJChDT05GSUdfU0VSSUFMX1NVTlpJTE9HKSArPSBzdW56aWxvZy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9hdG1lbF9zZXJpYWwuYyBiL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCmluZGV4IDQyYmU4YjAxLi42YWVlZjIyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKQEAgLTE0MzksMTQgKzE0MzksMjkgQEAKIH07CiAKICNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBib29sIGF0bWVsX3NlcmlhbF9jbGtfd2lsbF9zdG9wKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0FSQ0hfQVQ5MQorCXJldHVybiBhdDkxX3N1c3BlbmRfZW50ZXJpbmdfc2xvd19jbG9jaygpOworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogc3RhdGljIGludCBhdG1lbF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQkJCXBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IHRvX2F0bWVsX3VhcnRfcG9ydChwb3J0KTsKIAorCWlmIChhdG1lbF9pc19jb25zb2xlX3BvcnQocG9ydCkgJiYgY29uc29sZV9zdXNwZW5kX2VuYWJsZWQpIHsKKwkJLyogRHJhaW4gdGhlIFRYIHNoaWZ0ZXIgKi8KKwkJd2hpbGUgKCEoVUFSVF9HRVRfQ1NSKHBvcnQpICYgQVRNRUxfVVNfVFhFTVBUWSkpCisJCQljcHVfcmVsYXgoKTsKKwl9CisKIAlpZiAoZGV2aWNlX21heV93YWtldXAoJnBkZXYtPmRldikKLQkgICAgJiYgIWF0OTFfc3VzcGVuZF9lbnRlcmluZ19zbG93X2Nsb2NrKCkpCisJICAgICYmICFhdG1lbF9zZXJpYWxfY2xrX3dpbGxfc3RvcCgpKQogCQllbmFibGVfaXJxX3dha2UocG9ydC0+aXJxKTsKIAllbHNlIHsKIAkJdWFydF9zdXNwZW5kX3BvcnQoJmF0bWVsX3VhcnQsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvYmZpbl81eHguYyBiL2RyaXZlcnMvc2VyaWFsL2JmaW5fNXh4LmMKaW5kZXggZDZiNGVhZC4uZmQ5YmI3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvYmZpbl81eHguYworKysgYi9kcml2ZXJzL3NlcmlhbC9iZmluXzV4eC5jCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIERNQV9SWF9ZQ09VTlQJCShQQUdFX1NJWkUgLyBETUFfUlhfWENPVU5UKQogCiAjZGVmaW5lIERNQV9SWF9GTFVTSF9KSUZGSUVTCShIWiAvIDUwKQorI2RlZmluZSBDVFNfQ0hFQ0tfSklGRklFUwkoSFogLyA1MCkKIAogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9ETUEKIHN0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX2RtYV90eF9jaGFycyhzdHJ1Y3QgYmZpbl9zZXJpYWxfcG9ydCAqdWFydCk7CkBAIC0yOTAsMTEgKzI5MSw2IEBACiB7CiAJc3RydWN0IGNpcmNfYnVmICp4bWl0ID0gJnVhcnQtPnBvcnQuaW5mby0+eG1pdDsKIAotCWlmICh1YXJ0LT5wb3J0LnhfY2hhcikgewotCQlVQVJUX1BVVF9DSEFSKHVhcnQsIHVhcnQtPnBvcnQueF9jaGFyKTsKLQkJdWFydC0+cG9ydC5pY291bnQudHgrKzsKLQkJdWFydC0+cG9ydC54X2NoYXIgPSAwOwotCX0KIAkvKgogCSAqIENoZWNrIHRoZSBtb2RlbSBjb250cm9sIGxpbmVzIGJlZm9yZQogCSAqIHRyYW5zbWl0dGluZyBhbnl0aGluZy4KQEAgLTMwNiw2ICszMDIsMTIgQEAKIAkJcmV0dXJuOwogCX0KIAorCWlmICh1YXJ0LT5wb3J0LnhfY2hhcikgeworCQlVQVJUX1BVVF9DSEFSKHVhcnQsIHVhcnQtPnBvcnQueF9jaGFyKTsKKwkJdWFydC0+cG9ydC5pY291bnQudHgrKzsKKwkJdWFydC0+cG9ydC54X2NoYXIgPSAwOworCX0KKwogCXdoaWxlICgoVUFSVF9HRVRfTFNSKHVhcnQpICYgVEhSRSkgJiYgeG1pdC0+dGFpbCAhPSB4bWl0LT5oZWFkKSB7CiAJCVVBUlRfUFVUX0NIQVIodWFydCwgeG1pdC0+YnVmW3htaXQtPnRhaWxdKTsKIAkJeG1pdC0+dGFpbCA9ICh4bWl0LT50YWlsICsgMSkgJiAoVUFSVF9YTUlUX1NJWkUgLSAxKTsKQEAgLTM0NSwxNSArMzQ3LDYgQEAKIH0KICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotc3RhdGljIHZvaWQgYmZpbl9zZXJpYWxfZG9fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IGJmaW5fc2VyaWFsX3BvcnQgKnVhcnQgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGJmaW5fc2VyaWFsX3BvcnQsIGN0c193b3JrcXVldWUpOwotCi0JYmZpbl9zZXJpYWxfbWN0cmxfY2hlY2sodWFydCk7Ci19Ci0jZW5kaWYKLQogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9ETUEKIHN0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX2RtYV90eF9jaGFycyhzdHJ1Y3QgYmZpbl9zZXJpYWxfcG9ydCAqdWFydCkKIHsKQEAgLTM2MSw2ICszNTQsMTIgQEAKIAogCXVhcnQtPnR4X2RvbmUgPSAwOwogCisJLyoKKwkgKiBDaGVjayB0aGUgbW9kZW0gY29udHJvbCBsaW5lcyBiZWZvcmUKKwkgKiB0cmFuc21pdHRpbmcgYW55dGhpbmcuCisJICovCisJYmZpbl9zZXJpYWxfbWN0cmxfY2hlY2sodWFydCk7CisKIAlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpIHx8IHVhcnRfdHhfc3RvcHBlZCgmdWFydC0+cG9ydCkpIHsKIAkJdWFydC0+dHhfY291bnQgPSAwOwogCQl1YXJ0LT50eF9kb25lID0gMTsKQEAgLTM3MywxMiArMzcyLDYgQEAKIAkJdWFydC0+cG9ydC54X2NoYXIgPSAwOwogCX0KIAotCS8qCi0JICogQ2hlY2sgdGhlIG1vZGVtIGNvbnRyb2wgbGluZXMgYmVmb3JlCi0JICogdHJhbnNtaXR0aW5nIGFueXRoaW5nLgotCSAqLwotCWJmaW5fc2VyaWFsX21jdHJsX2NoZWNrKHVhcnQpOwotCiAJdWFydC0+dHhfY291bnQgPSBDSVJDX0NOVCh4bWl0LT5oZWFkLCB4bWl0LT50YWlsLCBVQVJUX1hNSVRfU0laRSk7CiAJaWYgKHVhcnQtPnR4X2NvdW50ID4gKFVBUlRfWE1JVF9TSVpFIC0geG1pdC0+dGFpbCkpCiAJCXVhcnQtPnR4X2NvdW50ID0gVUFSVF9YTUlUX1NJWkUgLSB4bWl0LT50YWlsOwpAQCAtNTMwLDExICs1MjMsNyBAQAogCWlmICh1YXJ0LT5jdHNfcGluIDwgMCkKIAkJcmV0dXJuIFRJT0NNX0NUUyB8IFRJT0NNX0RTUiB8IFRJT0NNX0NBUjsKIAotIyBpZmRlZiBCRjU0eAotCWlmIChVQVJUX0dFVF9NU1IodWFydCkgJiBDVFMpCi0jIGVsc2UKLQlpZiAoZ3Bpb19nZXRfdmFsdWUodWFydC0+Y3RzX3BpbikpCi0jIGVuZGlmCisJaWYgKFVBUlRfR0VUX0NUUyh1YXJ0KSkKIAkJcmV0dXJuIFRJT0NNX0RTUiB8IFRJT0NNX0NBUjsKIAllbHNlCiAjZW5kaWYKQEAgLTU0OSwxNyArNTM4LDkgQEAKIAkJcmV0dXJuOwogCiAJaWYgKG1jdHJsICYgVElPQ01fUlRTKQotIyBpZmRlZiBCRjU0eAotCQlVQVJUX1BVVF9NQ1IodWFydCwgVUFSVF9HRVRfTUNSKHVhcnQpICYgfk1SVFMpOwotIyBlbHNlCi0JCWdwaW9fc2V0X3ZhbHVlKHVhcnQtPnJ0c19waW4sIDApOwotIyBlbmRpZgorCQlVQVJUX0NMRUFSX1JUUyh1YXJ0KTsKIAllbHNlCi0jIGlmZGVmIEJGNTR4Ci0JCVVBUlRfUFVUX01DUih1YXJ0LCBVQVJUX0dFVF9NQ1IodWFydCkgfCBNUlRTKTsKLSMgZWxzZQotCQlncGlvX3NldF92YWx1ZSh1YXJ0LT5ydHNfcGluLCAxKTsKLSMgZW5kaWYKKwkJVUFSVF9TRVRfUlRTKHVhcnQpOwogI2VuZGlmCiB9CiAKQEAgLTU3Nyw3ICs1NTgsMTAgQEAKIAl1YXJ0X2hhbmRsZV9jdHNfY2hhbmdlKCZ1YXJ0LT5wb3J0LCBzdGF0dXMgJiBUSU9DTV9DVFMpOwogCWlmICghKHN0YXR1cyAmIFRJT0NNX0NUUykpIHsKIAkJdHR5LT5od19zdG9wcGVkID0gMTsKLQkJc2NoZWR1bGVfd29yaygmdWFydC0+Y3RzX3dvcmtxdWV1ZSk7CisJCXVhcnQtPmN0c190aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpKHVhcnQpOworCQl1YXJ0LT5jdHNfdGltZXIuZnVuY3Rpb24gPSAodm9pZCAqKWJmaW5fc2VyaWFsX21jdHJsX2NoZWNrOworCQl1YXJ0LT5jdHNfdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBDVFNfQ0hFQ0tfSklGRklFUzsKKwkJYWRkX3RpbWVyKCYodWFydC0+Y3RzX3RpbWVyKSk7CiAJfSBlbHNlIHsKIAkJdHR5LT5od19zdG9wcGVkID0gMDsKIAl9CkBAIC03NTIsMTEgKzczNiw3IEBACiAKIAkvKiBEaXNhYmxlIFVBUlQgKi8KIAlpZXIgPSBVQVJUX0dFVF9JRVIodWFydCk7Ci0jaWZkZWYgQ09ORklHX0JGNTR4Ci0JVUFSVF9DTEVBUl9JRVIodWFydCwgMHhGKTsKLSNlbHNlCi0JVUFSVF9QVVRfSUVSKHVhcnQsIDApOwotI2VuZGlmCisJVUFSVF9ESVNBQkxFX0lOVFModWFydCk7CiAKIAkvKiBTZXQgRExBQiBpbiBMQ1IgdG8gQWNjZXNzIERMTCBhbmQgRExIICovCiAJVUFSVF9TRVRfRExBQih1YXJ0KTsKQEAgLTc3MSwxMSArNzUxLDcgQEAKIAlVQVJUX1BVVF9MQ1IodWFydCwgbGNyKTsKIAogCS8qIEVuYWJsZSBVQVJUICovCi0jaWZkZWYgQ09ORklHX0JGNTR4Ci0JVUFSVF9TRVRfSUVSKHVhcnQsIGllcik7Ci0jZWxzZQotCVVBUlRfUFVUX0lFUih1YXJ0LCBpZXIpOwotI2VuZGlmCisJVUFSVF9FTkFCTEVfSU5UUyh1YXJ0LCBpZXIpOwogCiAJdmFsID0gVUFSVF9HRVRfR0NUTCh1YXJ0KTsKIAl2YWwgfD0gVUNFTjsKQEAgLTgzMywxNSArODA5LDE1IEBACiAgKiBFbmFibGUgdGhlIElyREEgZnVuY3Rpb24gaWYgdHR5LT5sZGlzYy5udW0gaXMgTl9JUkRBLgogICogSW4gb3RoZXIgY2FzZXMsIGRpc2FibGUgSXJEQSBmdW5jdGlvbi4KICAqLwotc3RhdGljIHZvaWQgYmZpbl9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKK3N0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX3NldF9sZGlzYyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogewotCWludCBsaW5lID0gdHR5LT5pbmRleDsKKwlpbnQgbGluZSA9IHBvcnQtPmxpbmU7CiAJdW5zaWduZWQgc2hvcnQgdmFsOwogCi0JaWYgKGxpbmUgPj0gdHR5LT5kcml2ZXItPm51bSkKKwlpZiAobGluZSA+PSBwb3J0LT5pbmZvLT50dHktPmRyaXZlci0+bnVtKQogCQlyZXR1cm47CiAKLQlzd2l0Y2ggKHR0eS0+bGRpc2MubnVtKSB7CisJc3dpdGNoIChwb3J0LT5pbmZvLT50dHktPmxkaXNjLm51bSkgewogCWNhc2UgTl9JUkRBOgogCQl2YWwgPSBVQVJUX0dFVF9HQ1RMKCZiZmluX3NlcmlhbF9wb3J0c1tsaW5lXSk7CiAJCXZhbCB8PSAoSVJFTiB8IFJQT0xDKTsKQEAgLTg2Niw2ICs4NDIsNyBAQAogCS5zdGFydHVwCT0gYmZpbl9zZXJpYWxfc3RhcnR1cCwKIAkuc2h1dGRvd24JPSBiZmluX3NlcmlhbF9zaHV0ZG93biwKIAkuc2V0X3Rlcm1pb3MJPSBiZmluX3NlcmlhbF9zZXRfdGVybWlvcywKKwkuc2V0X2xkaXNjCT0gYmZpbl9zZXJpYWxfc2V0X2xkaXNjLAogCS50eXBlCQk9IGJmaW5fc2VyaWFsX3R5cGUsCiAJLnJlbGVhc2VfcG9ydAk9IGJmaW5fc2VyaWFsX3JlbGVhc2VfcG9ydCwKIAkucmVxdWVzdF9wb3J0CT0gYmZpbl9zZXJpYWxfcmVxdWVzdF9wb3J0LApAQCAtOTA0LDcgKzg4MSw3IEBACiAJCWluaXRfdGltZXIoJihiZmluX3NlcmlhbF9wb3J0c1tpXS5yeF9kbWFfdGltZXIpKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQkJSU5JVF9XT1JLKCZiZmluX3NlcmlhbF9wb3J0c1tpXS5jdHNfd29ya3F1ZXVlLCBiZmluX3NlcmlhbF9kb193b3JrKTsKKwkJaW5pdF90aW1lcigmKGJmaW5fc2VyaWFsX3BvcnRzW2ldLmN0c190aW1lcikpOwogCQliZmluX3NlcmlhbF9wb3J0c1tpXS5jdHNfcGluCSAgICA9CiAJCQliZmluX3NlcmlhbF9yZXNvdXJjZVtpXS51YXJ0X2N0c19waW47CiAJCWJmaW5fc2VyaWFsX3BvcnRzW2ldLnJ0c19waW4JICAgID0KQEAgLTEyMDYsNyArMTE4Myw2IEBACiAKIAlyZXQgPSB1YXJ0X3JlZ2lzdGVyX2RyaXZlcigmYmZpbl9zZXJpYWxfcmVnKTsKIAlpZiAocmV0ID09IDApIHsKLQkJYmZpbl9zZXJpYWxfcmVnLnR0eV9kcml2ZXItPnNldF9sZGlzYyA9IGJmaW5fc2V0X2xkaXNjOwogCQlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmJmaW5fc2VyaWFsX2RyaXZlcik7CiAJCWlmIChyZXQpIHsKIAkJCXByX2RlYnVnKCJ1YXJ0IHJlZ2lzdGVyIGZhaWxlZFxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9pbXguYyBiL2RyaXZlcnMvc2VyaWFsL2lteC5jCmluZGV4IDVhMzc1YmYuLjY0YWNiMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL2lteC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL2lteC5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgpAQCAtNjEsNiArNjIsMTEgQEAKICNkZWZpbmUgVUJJUiAgMHhhNCAvKiBCUk0gSW5jcmVtZW50YWwgUmVnaXN0ZXIgKi8KICNkZWZpbmUgVUJNUiAgMHhhOCAvKiBCUk0gTW9kdWxhdG9yIFJlZ2lzdGVyICovCiAjZGVmaW5lIFVCUkMgIDB4YWMgLyogQmF1ZCBSYXRlIENvdW50IFJlZ2lzdGVyICovCisjaWYgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDMgfHwgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDIKKyNkZWZpbmUgT05FTVMgMHhiMCAvKiBPbmUgTWlsbGlzZWNvbmQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVRTICAgMHhiNCAvKiBVQVJUIFRlc3QgUmVnaXN0ZXIgKi8KKyNlbmRpZgorI2lmZGVmIENPTkZJR19BUkNIX0lNWAogI2RlZmluZSBCSVBSMSAweGIwIC8qIEluY3JlbWVudGFsIFByZXNldCBSZWdpc3RlciAxICovCiAjZGVmaW5lIEJJUFIyIDB4YjQgLyogSW5jcmVtZW50YWwgUHJlc2V0IFJlZ2lzdGVyIDIgKi8KICNkZWZpbmUgQklQUjMgMHhiOCAvKiBJbmNyZW1lbnRhbCBQcmVzZXQgUmVnaXN0ZXIgMyAqLwpAQCAtNzAsNiArNzYsNyBAQAogI2RlZmluZSBCTVBSMyAweGM4IC8qIEJSTSBNb2R1bGF0b3IgUmVnaXN0ZXIgMyAqLwogI2RlZmluZSBCTVBSNCAweGNjIC8qIEJSTSBNb2R1bGF0b3IgUmVnaXN0ZXIgNCAqLwogI2RlZmluZSBVVFMgICAweGQwIC8qIFVBUlQgVGVzdCBSZWdpc3RlciAqLworI2VuZGlmCiAKIC8qIFVBUlQgQ29udHJvbCBSZWdpc3RlciBCaXQgRmllbGRzLiovCiAjZGVmaW5lICBVUlhEX0NIQVJSRFkgICAgKDE8PDE1KQpAQCAtODksNyArOTYsMTIgQEAKICNkZWZpbmUgIFVDUjFfUlRTREVOICAgICAoMTw8NSkJIC8qIFJUUyBkZWx0YSBpbnRlcnJ1cHQgZW5hYmxlICovCiAjZGVmaW5lICBVQ1IxX1NOREJSSyAgICAgKDE8PDQpCSAvKiBTZW5kIGJyZWFrICovCiAjZGVmaW5lICBVQ1IxX1RETUFFTiAgICAgKDE8PDMpCSAvKiBUcmFuc21pdHRlciByZWFkeSBETUEgZW5hYmxlICovCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCiAjZGVmaW5lICBVQ1IxX1VBUlRDTEtFTiAgKDE8PDIpCSAvKiBVQVJUIGNsb2NrIGVuYWJsZWQgKi8KKyNlbmRpZgorI2lmIGRlZmluZWQgQ09ORklHX0FSQ0hfTVgzIHx8IGRlZmluZWQgQ09ORklHX0FSQ0hfTVgyCisjZGVmaW5lICBVQ1IxX1VBUlRDTEtFTiAgKDApCSAvKiBub3QgcHJlc2VudCBvbiBteDIvbXgzICovCisjZW5kaWYKICNkZWZpbmUgIFVDUjFfRE9aRSAgICAgICAoMTw8MSkJIC8qIERvemUgKi8KICNkZWZpbmUgIFVDUjFfVUFSVEVOICAgICAoMTw8MCkJIC8qIFVBUlQgZW5hYmxlZCAqLwogI2RlZmluZSAgVUNSMl9FU0NJICAgICAJICgxPDwxNSkgLyogRXNjYXBlIHNlcSBpbnRlcnJ1cHQgZW5hYmxlICovCkBAIC0xNjMsOCArMTc1LDE5IEBACiAjZGVmaW5lICBVVFNfU09GVFJTVAkgKDE8PDApCSAvKiBTb2Z0d2FyZSByZXNldCAqLwogCiAvKiBXZSd2ZSBiZWVuIGFzc2lnbmVkIGEgcmFuZ2Ugb24gdGhlICJMb3ctZGVuc2l0eSBzZXJpYWwgcG9ydHMiIG1ham9yICovCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCiAjZGVmaW5lIFNFUklBTF9JTVhfTUFKT1IJMjA0CiAjZGVmaW5lIE1JTk9SX1NUQVJUCQk0MQorI2RlZmluZSBERVZfTkFNRQkJInR0eVNNWCIKKyNkZWZpbmUgTUFYX0lOVEVSTkFMX0lSUQlJTVhfSVJRUworI2VuZGlmCisKKyNpZiBkZWZpbmVkIENPTkZJR19BUkNIX01YMyB8fCBkZWZpbmVkIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBTRVJJQUxfSU1YX01BSk9SICAgICAgICAyMDcKKyNkZWZpbmUgTUlOT1JfU1RBUlQJICAgICAgICAxNgorI2RlZmluZSBERVZfTkFNRQkJInR0eW14YyIKKyNkZWZpbmUgTUFYX0lOVEVSTkFMX0lSUQlNWENfTUFYX0lOVF9MSU5FUworI2VuZGlmCiAKIC8qCiAgKiBUaGlzIGRldGVybWluZXMgaG93IG9mdGVuIHdlIGNoZWNrIHRoZSBtb2RlbSBzdGF0dXMgc2lnbmFscwpAQCAtMTc2LDEyICsxOTksMTUgQEAKIAogI2RlZmluZSBEUklWRVJfTkFNRSAiSU1YLXVhcnQiCiAKKyNkZWZpbmUgVUFSVF9OUiA4CisKIHN0cnVjdCBpbXhfcG9ydCB7CiAJc3RydWN0IHVhcnRfcG9ydAlwb3J0OwogCXN0cnVjdCB0aW1lcl9saXN0CXRpbWVyOwogCXVuc2lnbmVkIGludAkJb2xkX3N0YXR1czsKIAlpbnQJCQl0eGlycSxyeGlycSxydHNpcnE7CiAJaW50CQkJaGF2ZV9ydHNjdHM6MTsKKwlzdHJ1Y3QgY2xrCQkqY2xrOwogfTsKIAogLyoKQEAgLTQwNSw2ICs0MzEsMjYgQEAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKK3N0YXRpYyBpcnFyZXR1cm5fdCBpbXhfaW50KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gZGV2X2lkOworCXVuc2lnbmVkIGludCBzdHM7CisKKwlzdHMgPSByZWFkbChzcG9ydC0+cG9ydC5tZW1iYXNlICsgVVNSMSk7CisKKwlpZiAoc3RzICYgVVNSMV9SUkRZKQorCQlpbXhfcnhpbnQoaXJxLCBkZXZfaWQpOworCisJaWYgKHN0cyAmIFVTUjFfVFJEWSAmJgorCQkJcmVhZGwoc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjEpICYgVUNSMV9UWE1QVFlFTikKKwkJaW14X3R4aW50KGlycSwgZGV2X2lkKTsKKworCWlmIChzdHMgJiBVU1IxX1JUU1MpCisJCWlteF9ydHNpbnQoaXJxLCBkZXZfaWQpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCiAvKgogICogUmV0dXJuIFRJT0NTRVJfVEVNVCB3aGVuIHRyYW5zbWl0dGVyIGlzIG5vdCBidXN5LgogICovCkBAIC00NzcsNyArNTIzLDggQEAKIAkgKiBSRkRJViBpcyBzZXQgc3VjaCB3YXkgdG8gc2F0aXNmeSByZXF1ZXN0ZWQgdWFydGNsayB2YWx1ZQogCSAqLwogCXZhbCA9IFRYVEwgPDwgMTAgfCBSWFRMOwotCXVmY3JfcmZkaXYgPSAoaW14X2dldF9wZXJjbGsxKCkgKyBzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gMikgLyBzcG9ydC0+cG9ydC51YXJ0Y2xrOworCXVmY3JfcmZkaXYgPSAoY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspICsgc3BvcnQtPnBvcnQudWFydGNsayAvIDIpCisJCQkvIHNwb3J0LT5wb3J0LnVhcnRjbGs7CiAKIAlpZighdWZjcl9yZmRpdikKIAkJdWZjcl9yZmRpdiA9IDE7CkBAIC01MDksMjEgKzU1NiwzNCBAQAogCXdyaXRlbCh0ZW1wICYgflVDUjRfRFJFTiwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjQpOwogCiAJLyoKLQkgKiBBbGxvY2F0ZSB0aGUgSVJRCisJICogQWxsb2NhdGUgdGhlIElSUShzKSBpLk1YMSBoYXMgdGhyZWUgaW50ZXJydXB0cyB3aGVyZWFzIGxhdGVyCisJICogY2hpcHMgb25seSBoYXZlIG9uZSBpbnRlcnJ1cHQuCiAJICovCi0JcmV0dmFsID0gcmVxdWVzdF9pcnEoc3BvcnQtPnJ4aXJxLCBpbXhfcnhpbnQsIDAsCi0JCQkgICAgIERSSVZFUl9OQU1FLCBzcG9ydCk7Ci0JaWYgKHJldHZhbCkgZ290byBlcnJvcl9vdXQxOworCWlmIChzcG9ydC0+dHhpcnEgPiAwKSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5yeGlycSwgaW14X3J4aW50LCAwLAorCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpCisJCQlnb3RvIGVycm9yX291dDE7CiAKLQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+dHhpcnEsIGlteF90eGludCwgMCwKLQkJCSAgICAgRFJJVkVSX05BTUUsIHNwb3J0KTsKLQlpZiAocmV0dmFsKSBnb3RvIGVycm9yX291dDI7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT50eGlycSwgaW14X3R4aW50LCAwLAorCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpCisJCQlnb3RvIGVycm9yX291dDI7CiAKLQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+cnRzaXJxLCBpbXhfcnRzaW50LAotCQkJICAgICAoc3BvcnQtPnJ0c2lycSA8IElNWF9JUlFTKSA/IDAgOgorCQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+cnRzaXJxLCBpbXhfcnRzaW50LAorCQkJICAgICAoc3BvcnQtPnJ0c2lycSA8IE1BWF9JTlRFUk5BTF9JUlEpID8gMCA6CiAJCQkgICAgICAgSVJRRl9UUklHR0VSX0ZBTExJTkcgfCBJUlFGX1RSSUdHRVJfUklTSU5HLAotCQkJICAgICBEUklWRVJfTkFNRSwgc3BvcnQpOwotCWlmIChyZXR2YWwpIGdvdG8gZXJyb3Jfb3V0MzsKKwkJCQlEUklWRVJfTkFNRSwgc3BvcnQpOworCQlpZiAocmV0dmFsKQorCQkJZ290byBlcnJvcl9vdXQzOworCX0gZWxzZSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5wb3J0LmlycSwgaW14X2ludCwgMCwKKwkJCQlEUklWRVJfTkFNRSwgc3BvcnQpOworCQlpZiAocmV0dmFsKSB7CisJCQlmcmVlX2lycShzcG9ydC0+cG9ydC5pcnEsIHNwb3J0KTsKKwkJCWdvdG8gZXJyb3Jfb3V0MTsKKwkJfQorCX0KIAogCS8qCiAJICogRmluYWxseSwgY2xlYXIgYW5kIGVuYWJsZSBpbnRlcnJ1cHRzCkBAIC01NDgsOSArNjA4LDExIEBACiAJcmV0dXJuIDA7CiAKIGVycm9yX291dDM6Ci0JZnJlZV9pcnEoc3BvcnQtPnR4aXJxLCBzcG9ydCk7CisJaWYgKHNwb3J0LT50eGlycSkKKwkJZnJlZV9pcnEoc3BvcnQtPnR4aXJxLCBzcG9ydCk7CiBlcnJvcl9vdXQyOgotCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOworCWlmIChzcG9ydC0+cnhpcnEpCisJCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOwogZXJyb3Jfb3V0MToKIAlyZXR1cm4gcmV0dmFsOwogfQpAQCAtNTY4LDkgKzYzMCwxMiBAQAogCS8qCiAJICogRnJlZSB0aGUgaW50ZXJydXB0cwogCSAqLwotCWZyZWVfaXJxKHNwb3J0LT5ydHNpcnEsIHNwb3J0KTsKLQlmcmVlX2lycShzcG9ydC0+dHhpcnEsIHNwb3J0KTsKLQlmcmVlX2lycShzcG9ydC0+cnhpcnEsIHNwb3J0KTsKKwlpZiAoc3BvcnQtPnR4aXJxID4gMCkgeworCQlmcmVlX2lycShzcG9ydC0+cnRzaXJxLCBzcG9ydCk7CisJCWZyZWVfaXJxKHNwb3J0LT50eGlycSwgc3BvcnQpOworCQlmcmVlX2lycShzcG9ydC0+cnhpcnEsIHNwb3J0KTsKKwl9IGVsc2UKKwkJZnJlZV9pcnEoc3BvcnQtPnBvcnQuaXJxLCBzcG9ydCk7CiAKIAkvKgogCSAqIERpc2FibGUgYWxsIGludGVycnVwdHMsIHBvcnQgYW5kIGJyZWFrIGNvbmRpdGlvbi4KQEAgLTU4OSw2ICs2NTQsNyBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgaW50IHVjcjIsIG9sZF91Y3IxLCBvbGRfdHhyeGVuLCBiYXVkLCBxdW90OwogCXVuc2lnbmVkIGludCBvbGRfY3NpemUgPSBvbGQgPyBvbGQtPmNfY2ZsYWcgJiBDU0laRSA6IENTODsKKwl1bnNpZ25lZCBpbnQgZGl2LCBudW0sIGRlbm9tLCB1ZmNyOwogCiAJLyoKIAkgKiBJZiB3ZSBkb24ndCBzdXBwb3J0IG1vZGVtIGNvbnRyb2wgbGluZXMsIGRvbid0IGFsbG93CkBAIC02MzQsNyArNzAwLDcgQEAKIAkvKgogCSAqIEFzayB0aGUgY29yZSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHVzLgogCSAqLwotCWJhdWQgPSB1YXJ0X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCAwLCBwb3J0LT51YXJ0Y2xrLzE2KTsKKwliYXVkID0gdWFydF9nZXRfYmF1ZF9yYXRlKHBvcnQsIHRlcm1pb3MsIG9sZCwgNTAsIHBvcnQtPnVhcnRjbGsgLyAxNik7CiAJcXVvdCA9IHVhcnRfZ2V0X2Rpdmlzb3IocG9ydCwgYmF1ZCk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc3BvcnQtPnBvcnQubG9jaywgZmxhZ3MpOwpAQCAtNjg0LDE0ICs3NTAsNDEgQEAKIAkJCXNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQ1IyKTsKIAlvbGRfdHhyeGVuICY9IChVQ1IyX1RYRU4gfCBVQ1IyX1JYRU4pOwogCi0JLyogc2V0IHRoZSBiYXVkIHJhdGUuIFdlIGFzc3VtZSB1YXJ0Y2xrID0gMTYgTUh6Ci0JICoKLQkgKiBiYXVkICogMTYgICBVQklSIC0gMQotCSAqIC0tLS0tLS0tLSA9IC0tLS0tLS0tCi0JICogIHVhcnRjbGsgICAgVUJNUiAtIDEKLQkgKi8KLQl3cml0ZWwoKGJhdWQgLyAxMDApIC0gMSwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVCSVIpOwotCXdyaXRlbCgxMDAwMCAtIDEsIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQk1SKTsKKwlkaXYgPSBzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gKGJhdWQgKiAxNik7CisJaWYgKGRpdiA+IDcpCisJCWRpdiA9IDc7CisJaWYgKCFkaXYpCisJCWRpdiA9IDE7CisKKwludW0gPSBiYXVkOworCWRlbm9tID0gcG9ydC0+dWFydGNsayAvIGRpdiAvIDE2OworCisJLyogc2hpZnQgbnVtIGFuZCBkZW5vbSByaWdodCB1bnRpbCB0aGV5IGZpdCBpbnRvIDE2IGJpdHMgKi8KKwl3aGlsZSAobnVtID4gMHgxMDAwMCB8fCBkZW5vbSA+IDB4MTAwMDApIHsKKwkJbnVtID4+PSAxOworCQlkZW5vbSA+Pj0gMTsKKwl9CisJaWYgKG51bSA+IDApCisJCW51bSAtPSAxOworCWlmIChkZW5vbSA+IDApCisJCWRlbm9tIC09IDE7CisKKwl3cml0ZWwobnVtLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUJJUik7CisJd3JpdGVsKGRlbm9tLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUJNUik7CisKKwlpZiAoZGl2ID09IDcpCisJCWRpdiA9IDY7IC8qIDYgaW4gUkZESVYgbWVhbnMgZGl2aWRlIGJ5IDcgKi8KKwllbHNlCisJCWRpdiA9IDYgLSBkaXY7CisKKwl1ZmNyID0gcmVhZGwoc3BvcnQtPnBvcnQubWVtYmFzZSArIFVGQ1IpOworCXVmY3IgPSAodWZjciAmICh+VUZDUl9SRkRJVikpIHwKKwkgICAgKGRpdiA8PCA3KTsKKwl3cml0ZWwodWZjciwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVGQ1IpOworCisjaWZkZWYgT05FTVMKKwl3cml0ZWwoc3BvcnQtPnBvcnQudWFydGNsayAvIGRpdiAvIDEwMDAsIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBPTkVNUyk7CisjZW5kaWYKIAogCXdyaXRlbChvbGRfdWNyMSwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjEpOwogCkBAIC04MDEsNjUgKzg5NCw3IEBACiAJLnZlcmlmeV9wb3J0CT0gaW14X3ZlcmlmeV9wb3J0LAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcG9ydCBpbXhfcG9ydHNbXSA9IHsKLQl7Ci0JLnR4aXJxICA9IFVBUlQxX01JTlRfVFgsCi0JLnJ4aXJxICA9IFVBUlQxX01JTlRfUlgsCi0JLnJ0c2lycSA9IFVBUlQxX01JTlRfUlRTLAotCS5wb3J0CT0gewotCQkudHlwZQkJPSBQT1JUX0lNWCwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLm1lbWJhc2UJPSAodm9pZCAqKUlNWF9VQVJUMV9CQVNFLAotCQkubWFwYmFzZQk9IDB4MDAyMDYwMDAsCi0JCS5pcnEJCT0gVUFSVDFfTUlOVF9SWCwKLQkJLnVhcnRjbGsJPSAxNjAwMDAwMCwKLQkJLmZpZm9zaXplCT0gMzIsCi0JCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLm9wcwkJPSAmaW14X3BvcHMsCi0JCS5saW5lCQk9IDAsCi0JfSwKLQl9LCB7Ci0JLnR4aXJxICA9IFVBUlQyX01JTlRfVFgsCi0JLnJ4aXJxICA9IFVBUlQyX01JTlRfUlgsCi0JLnJ0c2lycSA9IFVBUlQyX01JTlRfUlRTLAotCS5wb3J0CT0gewotCQkudHlwZQkJPSBQT1JUX0lNWCwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLm1lbWJhc2UJPSAodm9pZCAqKUlNWF9VQVJUMl9CQVNFLAotCQkubWFwYmFzZQk9IDB4MDAyMDcwMDAsCi0JCS5pcnEJCT0gVUFSVDJfTUlOVF9SWCwKLQkJLnVhcnRjbGsJPSAxNjAwMDAwMCwKLQkJLmZpZm9zaXplCT0gMzIsCi0JCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLm9wcwkJPSAmaW14X3BvcHMsCi0JCS5saW5lCQk9IDEsCi0JfSwKLQl9Ci19OwotCi0vKgotICogU2V0dXAgdGhlIElNWCBzZXJpYWwgcG9ydHMuCi0gKiBOb3RlIGFsc28gdGhhdCB3ZSBzdXBwb3J0ICJjb25zb2xlPXR0eVNNWHgiIHdoZXJlICJ4IiBpcyBlaXRoZXIgMCBvciAxLgotICogV2hpY2ggc2VyaWFsIHBvcnQgdGhpcyBlbmRzIHVwIGJlaW5nIGRlcGVuZHMgb24gdGhlIG1hY2hpbmUgeW91J3JlCi0gKiBydW5uaW5nIHRoaXMga2VybmVsIG9uLiAgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlzIGlzIGEgZ29vZCBpZGVhLAotICogYnV0IHRoYXQncyB0aGUgd2F5IGl0IHRyYWRpdGlvbmFsbHkgd29ya3MuCi0gKgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgaW14X2luaXRfcG9ydHModm9pZCkKLXsKLQlzdGF0aWMgaW50IGZpcnN0ID0gMTsKLQlpbnQgaTsKLQotCWlmICghZmlyc3QpCi0JCXJldHVybjsKLQlmaXJzdCA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbXhfcG9ydHMpOyBpKyspIHsKLQkJaW5pdF90aW1lcigmaW14X3BvcnRzW2ldLnRpbWVyKTsKLQkJaW14X3BvcnRzW2ldLnRpbWVyLmZ1bmN0aW9uID0gaW14X3RpbWVvdXQ7Ci0JCWlteF9wb3J0c1tpXS50aW1lci5kYXRhICAgICA9ICh1bnNpZ25lZCBsb25nKSZpbXhfcG9ydHNbaV07Ci0JfQotfQorc3RhdGljIHN0cnVjdCBpbXhfcG9ydCAqaW14X3BvcnRzW1VBUlRfTlJdOwogCiAjaWZkZWYgQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRQogc3RhdGljIHZvaWQgaW14X2NvbnNvbGVfcHV0Y2hhcihzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgY2gpCkBAIC04NzgsNyArOTEzLDcgQEAKIHN0YXRpYyB2b2lkCiBpbXhfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBjb3VudCkKIHsKLQlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gJmlteF9wb3J0c1tjby0+aW5kZXhdOworCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSBpbXhfcG9ydHNbY28tPmluZGV4XTsKIAl1bnNpZ25lZCBpbnQgb2xkX3VjcjEsIG9sZF91Y3IyOwogCiAJLyoKQEAgLTk0NCw3ICs5NzksNyBAQAogCQllbHNlCiAJCQl1Y2ZyX3JmZGl2ID0gNiAtIHVjZnJfcmZkaXY7CiAKLQkJdWFydGNsayA9IGlteF9nZXRfcGVyY2xrMSgpOworCQl1YXJ0Y2xrID0gY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspOwogCQl1YXJ0Y2xrIC89IHVjZnJfcmZkaXY7CiAKIAkJewkvKgpAQCAtOTg0LDcgKzEwMTksNyBAQAogCSAqLwogCWlmIChjby0+aW5kZXggPT0gLTEgfHwgY28tPmluZGV4ID49IEFSUkFZX1NJWkUoaW14X3BvcnRzKSkKIAkJY28tPmluZGV4ID0gMDsKLQlzcG9ydCA9ICZpbXhfcG9ydHNbY28tPmluZGV4XTsKKwlzcG9ydCA9IGlteF9wb3J0c1tjby0+aW5kZXhdOwogCiAJaWYgKG9wdGlvbnMpCiAJCXVhcnRfcGFyc2Vfb3B0aW9ucyhvcHRpb25zLCAmYmF1ZCwgJnBhcml0eSwgJmJpdHMsICZmbG93KTsKQEAgLTk5OCw3ICsxMDMzLDcgQEAKIAogc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBpbXhfcmVnOwogc3RhdGljIHN0cnVjdCBjb25zb2xlIGlteF9jb25zb2xlID0gewotCS5uYW1lCQk9ICJ0dHlTTVgiLAorCS5uYW1lCQk9IERFVl9OQU1FLAogCS53cml0ZQkJPSBpbXhfY29uc29sZV93cml0ZSwKIAkuZGV2aWNlCQk9IHVhcnRfY29uc29sZV9kZXZpY2UsCiAJLnNldHVwCQk9IGlteF9jb25zb2xlX3NldHVwLApAQCAtMTAwNywxNCArMTA0Miw2IEBACiAJLmRhdGEJCT0gJmlteF9yZWcsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbXhfcnNfY29uc29sZV9pbml0KHZvaWQpCi17Ci0JaW14X2luaXRfcG9ydHMoKTsKLQlyZWdpc3Rlcl9jb25zb2xlKCZpbXhfY29uc29sZSk7Ci0JcmV0dXJuIDA7Ci19Ci1jb25zb2xlX2luaXRjYWxsKGlteF9yc19jb25zb2xlX2luaXQpOwotCiAjZGVmaW5lIElNWF9DT05TT0xFCSZpbXhfY29uc29sZQogI2Vsc2UKICNkZWZpbmUgSU1YX0NPTlNPTEUJTlVMTApAQCAtMTAyMyw3ICsxMDUwLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgaW14X3JlZyA9IHsKIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKIAkuZHJpdmVyX25hbWUgICAgPSBEUklWRVJfTkFNRSwKLQkuZGV2X25hbWUgICAgICAgPSAidHR5U01YIiwKKwkuZGV2X25hbWUgICAgICAgPSBERVZfTkFNRSwKIAkubWFqb3IgICAgICAgICAgPSBTRVJJQUxfSU1YX01BSk9SLAogCS5taW5vciAgICAgICAgICA9IE1JTk9SX1NUQVJULAogCS5uciAgICAgICAgICAgICA9IEFSUkFZX1NJWkUoaW14X3BvcnRzKSwKQEAgLTEwNTAsMjkgKzEwNzcsOTggQEAKICAgICAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2VyaWFsX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IHNlcmlhbF9pbXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0OwogCXN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgKnBkYXRhOworCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAotCWlteF9wb3J0c1tkZXYtPmlkXS5wb3J0LmRldiA9ICZkZXYtPmRldjsKKwlzcG9ydCA9IGt6YWxsb2Moc2l6ZW9mKCpzcG9ydCksIEdGUF9LRVJORUwpOworCWlmICghc3BvcnQpCisJCXJldHVybiAtRU5PTUVNOwogCi0JcGRhdGEgPSAoc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqKWRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAoIXJlcykgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGZyZWU7CisJfQorCisJYmFzZSA9IGlvcmVtYXAocmVzLT5zdGFydCwgUEFHRV9TSVpFKTsKKwlpZiAoIWJhc2UpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBmcmVlOworCX0KKworCXNwb3J0LT5wb3J0LmRldiA9ICZwZGV2LT5kZXY7CisJc3BvcnQtPnBvcnQubWFwYmFzZSA9IHJlcy0+c3RhcnQ7CisJc3BvcnQtPnBvcnQubWVtYmFzZSA9IGJhc2U7CisJc3BvcnQtPnBvcnQudHlwZSA9IFBPUlRfSU1YLAorCXNwb3J0LT5wb3J0LmlvdHlwZSA9IFVQSU9fTUVNOworCXNwb3J0LT5wb3J0LmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJc3BvcnQtPnJ4aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlzcG9ydC0+dHhpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOworCXNwb3J0LT5ydHNpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDIpOworCXNwb3J0LT5wb3J0LmZpZm9zaXplID0gMzI7CisJc3BvcnQtPnBvcnQub3BzID0gJmlteF9wb3BzOworCXNwb3J0LT5wb3J0LmZsYWdzID0gVVBGX0JPT1RfQVVUT0NPTkY7CisJc3BvcnQtPnBvcnQubGluZSA9IHBkZXYtPmlkOworCWluaXRfdGltZXIoJnNwb3J0LT50aW1lcik7CisJc3BvcnQtPnRpbWVyLmZ1bmN0aW9uID0gaW14X3RpbWVvdXQ7CisJc3BvcnQtPnRpbWVyLmRhdGEgICAgID0gKHVuc2lnbmVkIGxvbmcpc3BvcnQ7CisKKwlzcG9ydC0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAidWFydF9jbGsiKTsKKwlpZiAoSVNfRVJSKHNwb3J0LT5jbGspKSB7CisJCXJldCA9IFBUUl9FUlIoc3BvcnQtPmNsayk7CisJCWdvdG8gdW5tYXA7CisJfQorCWNsa19lbmFibGUoc3BvcnQtPmNsayk7CisKKwlzcG9ydC0+cG9ydC51YXJ0Y2xrID0gY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspOworCisJaW14X3BvcnRzW3BkZXYtPmlkXSA9IHNwb3J0OworCisJcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKIAlpZihwZGF0YSAmJiAocGRhdGEtPmZsYWdzICYgSU1YVUFSVF9IQVZFX1JUU0NUUykpCi0JCWlteF9wb3J0c1tkZXYtPmlkXS5oYXZlX3J0c2N0cyA9IDE7CisJCXNwb3J0LT5oYXZlX3J0c2N0cyA9IDE7CiAKLQl1YXJ0X2FkZF9vbmVfcG9ydCgmaW14X3JlZywgJmlteF9wb3J0c1tkZXYtPmlkXS5wb3J0KTsKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsICZpbXhfcG9ydHNbZGV2LT5pZF0pOworCWlmIChwZGF0YS0+aW5pdCkKKwkJcGRhdGEtPmluaXQocGRldik7CisKKwl1YXJ0X2FkZF9vbmVfcG9ydCgmaW14X3JlZywgJnNwb3J0LT5wb3J0KTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCAmc3BvcnQtPnBvcnQpOworCiAJcmV0dXJuIDA7Cit1bm1hcDoKKwlpb3VubWFwKHNwb3J0LT5wb3J0Lm1lbWJhc2UpOworZnJlZToKKwlrZnJlZShzcG9ydCk7CisKKwlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHNlcmlhbF9pbXhfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgc2VyaWFsX2lteF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworCXBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CiAKLQlpZiAoc3BvcnQpCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisKKwlpZiAoc3BvcnQpIHsKIAkJdWFydF9yZW1vdmVfb25lX3BvcnQoJmlteF9yZWcsICZzcG9ydC0+cG9ydCk7CisJCWNsa19wdXQoc3BvcnQtPmNsayk7CisJfQorCisJY2xrX2Rpc2FibGUoc3BvcnQtPmNsayk7CisKKwlpZiAocGRhdGEtPmV4aXQpCisJCXBkYXRhLT5leGl0KHBkZXYpOworCisJaW91bm1hcChzcG9ydC0+cG9ydC5tZW1iYXNlKTsKKwlrZnJlZShzcG9ydCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwOTUsOCArMTE5MSw2IEBACiAKIAlwcmludGsoS0VSTl9JTkZPICJTZXJpYWw6IElNWCBkcml2ZXJcbiIpOwogCi0JaW14X2luaXRfcG9ydHMoKTsKLQogCXJldCA9IHVhcnRfcmVnaXN0ZXJfZHJpdmVyKCZpbXhfcmVnKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvczNjMjQwMC5jIGIvZHJpdmVycy9zZXJpYWwvczNjMjQwMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMTAyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDAwLmMKQEAgLTAsMCArMSwxMDYgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0MC5jCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFNvQyBvbmJvYXJkIFVBUlRzLgorICoKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKK3N0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfZ2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCisJCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJY2xrLT5kaXZpc29yID0gMTsKKwljbGstPm5hbWUgPSAicGNsayI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCWRiZygiczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKKwkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgY2ZnLT51Y29uKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIGNmZy0+dWxjb24pOworCisJLyogcmVzZXQgYm90aCBmaWZvcyAqLworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uIHwgUzNDMjQxMF9VRkNPTl9SRVNFVEJPVEgpOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyBzM2MyNDAwX3VhcnRfaW5mID0geworCS5uYW1lCQk9ICJTYW1zdW5nIFMzQzI0MDAgVUFSVCIsCisJLnR5cGUJCT0gUE9SVF9TM0MyNDAwLAorCS5maWZvc2l6ZQk9IDE2LAorCS5yeF9maWZvbWFzawk9IFMzQzI0MTBfVUZTVEFUX1JYTUFTSywKKwkucnhfZmlmb3NoaWZ0CT0gUzNDMjQxMF9VRlNUQVRfUlhTSElGVCwKKwkucnhfZmlmb2Z1bGwJPSBTM0MyNDEwX1VGU1RBVF9SWEZVTEwsCisJLnR4X2ZpZm9mdWxsCT0gUzNDMjQxMF9VRlNUQVRfVFhGVUxMLAorCS50eF9maWZvbWFzawk9IFMzQzI0MTBfVUZTVEFUX1RYTUFTSywKKwkudHhfZmlmb3NoaWZ0CT0gUzNDMjQxMF9VRlNUQVRfVFhTSElGVCwKKwkuZ2V0X2Nsa3NyYwk9IHMzYzI0MDBfc2VyaWFsX2dldHNvdXJjZSwKKwkuc2V0X2Nsa3NyYwk9IHMzYzI0MDBfc2VyaWFsX3NldHNvdXJjZSwKKwkucmVzZXRfcG9ydAk9IHMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydCwKK307CisKK3N0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDAwX3VhcnRfaW5mKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQwMF9zZXJpYWxfZHJ2ID0geworCS5wcm9iZQkJPSBzM2MyNDAwX3NlcmlhbF9wcm9iZSwKKwkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjQwMC11YXJ0IiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKK307CisKK3MzYzI0eHhfY29uc29sZV9pbml0KCZzM2MyNDAwX3NlcmlhbF9kcnYsICZzM2MyNDAwX3VhcnRfaW5mKTsKKworc3RhdGljIGlubGluZSBpbnQgczNjMjQwMF9zZXJpYWxfaW5pdCh2b2lkKQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDAwX3NlcmlhbF9kcnYsICZzM2MyNDAwX3VhcnRfaW5mKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MDBfc2VyaWFsX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQwMF9zZXJpYWxfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjQwMF9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDAwX3NlcmlhbF9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJTYW1zdW5nIFMzQzI0MDAgU29DIFNlcmlhbCBwb3J0IGRyaXZlciIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDAwLXVhcnQiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYwppbmRleCAyYjZhMDEzLi5jNWYwM2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDEwLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvczNjMjQxMC5jCkBAIC0xLDEyNzAgKzEsMzAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL3NlcmlhbC9zM2MyNDEwLmMKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYwogICoKLSAqIERyaXZlciBmb3Igb25ib2FyZCBVQVJUcyBvbiB0aGUgU2Ftc3VuZyBTM0MyNFhYCisgKiBEcml2ZXIgZm9yIFNhbXN1bmcgUzNDMjQxMCBTb0Mgb25ib2FyZCBVQVJUcy4KICAqCi0gKiBCYXNlZCBvbiBkcml2ZXJzL2NoYXIvc2VyaWFsLmMgYW5kIGRyaXZlcnMvY2hhci8yMTI4NS5jCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLwogICoKLSAqIEJlbiBEb29rcywgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKLSAqCWh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL1NXTElOVVgvCi0gKgotICogQ2hhbmdlbG9nOgotICoKLSAqIDIyLUp1bC0yMDA0ICBCSkQgIEZpbmlzaGVkIG9mZiBkZXZpY2UgcmV3cml0ZQotICoKLSAqIDIxLUp1bC0yMDA0ICBCSkQgIFRoYW5rcyB0byA8aGVyYmV0QDEzdGhmbG9vci5hdD4gZm9yIHBvaW50aW5nIG91dAotICogICAgICAgICAgICAgICAgICAgcHJvYmxlbXMgd2l0aCBiYXVkIHJhdGUgYW5kIGxvc3Mgb2YgSVIgc2V0dGluZ3MuIFVwZGF0ZQotICogICAgICAgICAgICAgICAgICAgdG8gYWRkIGNvbmZpZ3VyYXRpb24gdmlhIHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmUKLSAqCi0gKiAyOC1TZXAtMjAwNCAgQkpEICBSZS13cml0ZSBmb3IgdGhlIGZvbGxvd2luZyBpdGVtcwotICoJCSAgICAgLSBTM0MyNDEwIGFuZCBTM0MyNDQwIHNlcmlhbCBzdXBwb3J0Ci0gKgkJICAgICAtIFBvd2VyIE1hbmFnZW1lbnQgc3VwcG9ydAotICoJCSAgICAgLSBGaXggY29uc29sZSB2aWEgSXJEQSBkZXZpY2VzCi0gKgkJICAgICAtIFN5c1JlcSAoSGVyYmVydCBQw7Z0emwpCi0gKgkJICAgICAtIEJyZWFrIGNoYXJhY3RlciBoYW5kbGluZyAoSGVyYmVydCBQw7Z0emwpCi0gKgkJICAgICAtIHNwaW4tbG9jayBpbml0aWFsaXNhdGlvbiAoRGltaXRyeSBBbmRyaWMpCi0gKgkJICAgICAtIGFkZGVkIGNsb2NrIGNvbnRyb2wKLSAqCQkgICAgIC0gdXBkYXRlZCBpbml0IGNvZGUgdG8gdXNlIHBsYXRmb3JtX2RldmljZSBpbmZvCi0gKgotICogMDYtTWFyLTIwMDUgIEJKRCAgQWRkIHMzYzI0NDAgZmNsayBjbG9jayBzb3VyY2UKLSAqCi0gKiAwOS1NYXItMjAwNSAgQkpEICBBZGQgczNjMjQwMCBzdXBwb3J0Ci0gKgotICogMTAtTWFyLTIwMDUgIExDVlIgQ2hhbmdlZCBTM0MyNDEwX1ZBX1VBUlQgdG8gUzNDMjRYWF9WQV9VQVJUCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKi8KIAotLyogTm90ZSBvbiAyNDQwIGZjbGsgY2xvY2sgc291cmNlIGhhbmRsaW5nCi0gKgotICogV2hpbHN0IGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGUgZmNsayBhcyBjbG9jayBzb3VyY2UsIHRoZSBtZXRob2QKLSAqIG9mIHByb3Blcmx5IHN3aXRjaGluZyB0b28vZnJvbSB0aGlzIGlzIGN1cnJlbnRseSB1bi1pbXBsZW1lbnRlZCwgc28KLSAqIHdoaWNoZXZlciB3YXkgaXMgY29uZmlndXJlZCBhdCBzdGFydHVwIGlzIHRoZSBvbmUgdGhhdCB3aWxsIGJlIHVzZWQuCi0qLwotCi0vKiBIb3RlIG9uIDI0MTAgZXJyb3IgaGFuZGxpbmcKLSAqCi0gKiBUaGUgczNjMjQxMCBtYW51YWwgaGFzIGEgbG92ZS9oYXRlIGFmZmFpciB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqIFVFUlNUQVQgcmVnaXN0ZXIgaW4gdGhlIFVBUlQgYmxvY2tzLCBhbmQga2VlcHMgbWFya2luZyBzb21lIG9mIHRoZQotICogZXJyb3IgYml0cyBhcyByZXNlcnZlZC4gSGF2aW5nIGNoZWNrZWQgd2l0aCB0aGUgczNjMjQxMHgwMSwKLSAqIGl0IGNvcGVzIHdpdGggQlJFQUtzIHByb3Blcmx5LCBzbyBJIGFtIGhhcHB5IHRvIGlnbm9yZSB0aGUgUkVTRVJWRUQKLSAqIGZlYXR1cmUgZnJvbSB0aGUgbGF0dGVyIHZlcnNpb25zIG9mIHRoZSBtYW51YWwuCi0gKgotICogSWYgaXQgYmVjb21lcyBhcGFycmVudCB0aGF0IGxhdHRlciB2ZXJzaW9ucyBvZiB0aGUgMjQxMCByZW1vdmUgdGhlc2UKLSAqIGJpdHMsIHRoZW4gYWN0aW9uIHdpbGwgaGF2ZSB0byBiZSB0YWtlbiB0byBkaWZmZXJlbnRpYXRlIHRoZSB2ZXJzaW9ucwotICogYW5kIGNoYW5nZSB0aGUgcG9saWN5IG9uIEJSRUFLCi0gKgotICogQkpELCAwNC1Ob3YtMjAwNAotKi8KLQotCi0jaWYgZGVmaW5lZChDT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRSkgJiYgZGVmaW5lZChDT05GSUdfTUFHSUNfU1lTUlEpCi0jZGVmaW5lIFNVUFBPUlRfU1lTUlEKLSNlbmRpZgotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Ci0jaW5jbHVkZSA8bGludXgvdHR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+Ci0KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgogCi0vKiBzdHJ1Y3R1cmVzICovCi0KLXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyB7Ci0JY2hhcgkJCSpuYW1lOwotCXVuc2lnbmVkIGludAkJdHlwZTsKLQl1bnNpZ25lZCBpbnQJCWZpZm9zaXplOwotCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9tYXNrOwotCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9zaGlmdDsKLQl1bnNpZ25lZCBsb25nCQlyeF9maWZvZnVsbDsKLQl1bnNpZ25lZCBsb25nCQl0eF9maWZvbWFzazsKLQl1bnNpZ25lZCBsb25nCQl0eF9maWZvc2hpZnQ7Ci0JdW5zaWduZWQgbG9uZwkJdHhfZmlmb2Z1bGw7Ci0KLQkvKiBjbG9jayBzb3VyY2UgY29udHJvbCAqLwotCi0JaW50ICgqZ2V0X2Nsa3NyYykoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKTsKLQlpbnQgKCpzZXRfY2xrc3JjKShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspOwotCi0JLyogdWFydCBjb250cm9scyAqLwotCWludCAoKnJlc2V0X3BvcnQpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqKTsKLX07Ci0KLXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCB7Ci0JdW5zaWduZWQgY2hhcgkJCXJ4X2NsYWltZWQ7Ci0JdW5zaWduZWQgY2hhcgkJCXR4X2NsYWltZWQ7Ci0KLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8JKmluZm87Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMJKmNsa3NyYzsKLQlzdHJ1Y3QgY2xrCQkJKmNsazsKLQlzdHJ1Y3QgY2xrCQkJKmJhdWRjbGs7Ci0Jc3RydWN0IHVhcnRfcG9ydAkJcG9ydDsKLX07Ci0KLQotLyogY29uZmlndXJhdGlvbiBkZWZpbmVzICovCi0KLSNpZiAwCi0jaWYgMQotLyogc2VuZCBkZWJ1ZyB0byB0aGUgbG93LWxldmVsIG91dHB1dCByb3V0aW5lcyAqLwotCi1leHRlcm4gdm9pZCBwcmludGFzY2lpKGNvbnN0IGNoYXIgKik7Ci0KLXN0YXRpYyB2b2lkCi1zM2MyNHh4X3NlcmlhbF9kYmcoY29uc3QgY2hhciAqZm10LCAuLi4pCi17Ci0JdmFfbGlzdCB2YTsKLQljaGFyIGJ1ZmZbMjU2XTsKLQotCXZhX3N0YXJ0KHZhLCBmbXQpOwotCXZzcHJpbnRmKGJ1ZmYsIGZtdCwgdmEpOwotCXZhX2VuZCh2YSk7Ci0KLQlwcmludGFzY2lpKGJ1ZmYpOwotfQotCi0jZGVmaW5lIGRiZyh4Li4uKSBzM2MyNHh4X3NlcmlhbF9kYmcoeCkKLQotI2Vsc2UKLSNkZWZpbmUgZGJnKHguLi4pIHByaW50ayhLRVJOX0RFQlVHICJzM2MyNHh4OiAiKTsKLSNlbmRpZgotI2Vsc2UgLyogbm8gZGVidWcgKi8KLSNkZWZpbmUgZGJnKHguLi4pIGRvIHt9IHdoaWxlKDApCi0jZW5kaWYKLQotLyogVUFSVCBuYW1lIGFuZCBkZXZpY2UgZGVmaW5pdGlvbnMgKi8KLQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9OQU1FCSJ0dHlTQUMiCi0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX01BSk9SCTIwNAotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9NSU5PUgk2NAotCi0KLS8qIGNvbnZlcnNpb24gZnVuY3Rpb25zICovCi0KLSNkZWZpbmUgczNjMjR4eF9kZXZfdG9fcG9ydChfX2RldikgKHN0cnVjdCB1YXJ0X3BvcnQgKilkZXZfZ2V0X2RydmRhdGEoX19kZXYpCi0jZGVmaW5lIHMzYzI0eHhfZGV2X3RvX2NmZyhfX2RldikgKHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKikoKF9fZGV2KS0+cGxhdGZvcm1fZGF0YSkKLQotLyogd2UgY2FuIHN1cHBvcnQgMyB1YXJ0cywgYnV0IG5vdCBhbHdheXMgdXNlIHRoZW0gKi8KLQotI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAotI2RlZmluZSBOUl9QT1JUUyAoMikKLSNlbHNlCi0jZGVmaW5lIE5SX1BPUlRTICgzKQotI2VuZGlmCi0KLS8qIHBvcnQgaXJxIG51bWJlcnMgKi8KLQotI2RlZmluZSBUWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxICsgMSkKLSNkZWZpbmUgUlhfSVJRKHBvcnQpICgocG9ydCktPmlycSkKLQotLyogcmVnaXN0ZXIgYWNjZXNzIGNvbnRyb2xzICovCi0KLSNkZWZpbmUgcG9ydGFkZHIocG9ydCwgcmVnKSAoKHBvcnQpLT5tZW1iYXNlICsgKHJlZykpCi0KLSNkZWZpbmUgcmRfcmVnYihwb3J0LCByZWcpIChfX3Jhd19yZWFkYihwb3J0YWRkcihwb3J0LCByZWcpKSkKLSNkZWZpbmUgcmRfcmVnbChwb3J0LCByZWcpIChfX3Jhd19yZWFkbChwb3J0YWRkcihwb3J0LCByZWcpKSkKLQotI2RlZmluZSB3cl9yZWdiKHBvcnQsIHJlZywgdmFsKSBcCi0gIGRvIHsgX19yYXdfd3JpdGViKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSk7IH0gd2hpbGUoMCkKLQotI2RlZmluZSB3cl9yZWdsKHBvcnQsIHJlZywgdmFsKSBcCi0gIGRvIHsgX19yYXdfd3JpdGVsKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSk7IH0gd2hpbGUoMCkKLQotLyogbWFjcm9zIHRvIGNoYW5nZSBvbmUgdGhpbmcgdG8gYW5vdGhlciAqLwotCi0jZGVmaW5lIHR4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzBdKQotI2RlZmluZSByeF9lbmFibGVkKHBvcnQpICgocG9ydCktPnVudXNlZFsxXSkKLQotLyogZmxhZyB0byBpZ25vcmUgYWxsIGNoYXJhY3RlcnMgY29tbWluZyBpbiAqLwotI2RlZmluZSBSWFNUQVRfRFVNTVlfUkVBRCAoMHgxMDAwMDAwMCkKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnRvX291cnBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKHBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCwgcG9ydCk7Ci19Ci0KLS8qIHRyYW5zbGF0ZSBhIHBvcnQgdG8gdGhlIGRldmljZSBuYW1lICovCi0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gdG9fcGxhdGZvcm1fZGV2aWNlKHBvcnQtPmRldiktPm5hbWU7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gKHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKSAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpOwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCB1Y29uLCB1ZmNvbjsKLQlpbnQgY291bnQgPSAxMDAwMDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7Ci0KLQl3aGlsZSAoLS1jb3VudCAmJiAhczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCkpCi0JCXVkZWxheSgxMDApOwotCi0JdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOwotCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKLQotCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0JdWNvbiB8PSBTM0MyNDEwX1VDT05fUlhJUlFNT0RFOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IHVjb247Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotCi0JdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQl1Y29uICY9IH5TM0MyNDEwX1VDT05fUlhJUlFNT0RFOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAwOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmICh0eF9lbmFibGVkKHBvcnQpKSB7Ci0JCWRpc2FibGVfaXJxKFRYX0lSUShwb3J0KSk7Ci0JCXR4X2VuYWJsZWQocG9ydCkgPSAwOwotCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQotCQkJczNjMjR4eF9zZXJpYWxfcnhfZW5hYmxlKHBvcnQpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlpZiAoIXR4X2VuYWJsZWQocG9ydCkpIHsKLQkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykKLQkJCXMzYzI0eHhfc2VyaWFsX3J4X2Rpc2FibGUocG9ydCk7Ci0KLQkJZW5hYmxlX2lycShUWF9JUlEocG9ydCkpOwotCQl0eF9lbmFibGVkKHBvcnQpID0gMTsKLQl9Ci19Ci0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF9yeChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmIChyeF9lbmFibGVkKHBvcnQpKSB7Ci0JCWRiZygiczNjMjR4eF9zZXJpYWxfc3RvcF9yeDogcG9ydD0lcFxuIiwgcG9ydCk7Ci0JCWRpc2FibGVfaXJxKFJYX0lSUShwb3J0KSk7Ci0JCXJ4X2VuYWJsZWQocG9ydCkgPSAwOwotCX0KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfZW5hYmxlX21zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICpzM2MyNHh4X3BvcnRfdG9faW5mbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJldHVybiB0b19vdXJwb3J0KHBvcnQpLT5pbmZvOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKnMzYzI0eHhfcG9ydF90b19jZmcoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlpZiAocG9ydC0+ZGV2ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0dXJuIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopcG9ydC0+ZGV2LT5wbGF0Zm9ybV9kYXRhOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAotCQkJCSAgICAgdW5zaWduZWQgbG9uZyB1ZnN0YXQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gb3VycG9ydC0+aW5mbzsKLQotCWlmICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvZnVsbCkKLQkJcmV0dXJuIGluZm8tPmZpZm9zaXplOwotCi0JcmV0dXJuICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvbWFzaykgPj4gaW5mby0+cnhfZmlmb3NoaWZ0OwotfQotCi0KLS8qID8gLSB3aGVyZSBoYXMgcGFyaXR5IGdvbmU/PyAqLwotI2RlZmluZSBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZICgweDEwMDApCi0KLXN0YXRpYyBpcnFyZXR1cm5fdAotczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMoaW50IGlycSwgdm9pZCAqZGV2X2lkKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IGRldl9pZDsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7Ci0Jc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPmluZm8tPnR0eTsKLQl1bnNpZ25lZCBpbnQgdWZjb24sIGNoLCBmbGFnLCB1ZnN0YXQsIHVlcnN0YXQ7Ci0JaW50IG1heF9jb3VudCA9IDY0OwotCi0Jd2hpbGUgKG1heF9jb3VudC0tID4gMCkgewotCQl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7Ci0JCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCi0JCWlmIChzM2MyNHh4X3NlcmlhbF9yeF9maWZvY250KG91cnBvcnQsIHVmc3RhdCkgPT0gMCkKLQkJCWJyZWFrOwotCi0JCXVlcnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUVSU1RBVCk7Ci0JCWNoID0gcmRfcmVnYihwb3J0LCBTM0MyNDEwX1VSWEgpOwotCi0JCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKLQkJCWludCB0eGUgPSBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KTsKLQotCQkJaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKLQkJCQlpZiAoIXR4ZSkgewotCQkJCQlyeF9lbmFibGVkKHBvcnQpID0gMDsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJfSBlbHNlIHsKLQkJCQlpZiAodHhlKSB7Ci0JCQkJCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKLQkJCQkJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCB1ZmNvbik7Ci0JCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCQkJCQlnb3RvIG91dDsKLQkJCQl9Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0JCX0KLQotCQkvKiBpbnNlcnQgdGhlIGNoYXJhY3RlciBpbnRvIHRoZSBidWZmZXIgKi8KLQotCQlmbGFnID0gVFRZX05PUk1BTDsKLQkJcG9ydC0+aWNvdW50LnJ4Kys7Ci0KLQkJaWYgKHVubGlrZWx5KHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQU5ZKSkgewotCQkJZGJnKCJyeGVycjogcG9ydCBjaD0weCUwMngsIHJ4cz0weCUwOHhcbiIsCi0JCQkgICAgY2gsIHVlcnN0YXQpOwotCi0JCQkvKiBjaGVjayBmb3IgYnJlYWsgKi8KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKSB7Ci0JCQkJZGJnKCJicmVhayFcbiIpOwotCQkJCXBvcnQtPmljb3VudC5icmsrKzsKLQkJCQlpZiAodWFydF9oYW5kbGVfYnJlYWsocG9ydCkpCi0JCQkJICAgIGdvdG8gaWdub3JlX2NoYXI7Ci0JCQl9Ci0KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0ZSQU1FKQotCQkJCXBvcnQtPmljb3VudC5mcmFtZSsrOwotCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTikKLQkJCQlwb3J0LT5pY291bnQub3ZlcnJ1bisrOwotCi0JCQl1ZXJzdGF0ICY9IHBvcnQtPnJlYWRfc3RhdHVzX21hc2s7Ci0KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKQotCQkJCWZsYWcgPSBUVFlfQlJFQUs7Ci0JCQllbHNlIGlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX1BBUklUWSkKLQkJCQlmbGFnID0gVFRZX1BBUklUWTsKLQkJCWVsc2UgaWYgKHVlcnN0YXQgJiAoIFMzQzI0MTBfVUVSU1RBVF9GUkFNRSB8IFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKSkKLQkJCQlmbGFnID0gVFRZX0ZSQU1FOwotCQl9Ci0KLQkJaWYgKHVhcnRfaGFuZGxlX3N5c3JxX2NoYXIocG9ydCwgY2gpKQotCQkJZ290byBpZ25vcmVfY2hhcjsKLQotCQl1YXJ0X2luc2VydF9jaGFyKHBvcnQsIHVlcnN0YXQsIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOLCBjaCwgZmxhZyk7Ci0KLQlpZ25vcmVfY2hhcjoKLQkJY29udGludWU7Ci0JfQotCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7Ci0KLSBvdXQ6Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaXJxcmV0dXJuX3QgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMoaW50IGlycSwgdm9pZCAqaWQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gaWQ7Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OwotCXN0cnVjdCBjaXJjX2J1ZiAqeG1pdCA9ICZwb3J0LT5pbmZvLT54bWl0OwotCWludCBjb3VudCA9IDI1NjsKLQotCWlmIChwb3J0LT54X2NoYXIpIHsKLQkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHBvcnQtPnhfY2hhcik7Ci0JCXBvcnQtPmljb3VudC50eCsrOwotCQlwb3J0LT54X2NoYXIgPSAwOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKiBpZiB0aGVyZSBpc250IGFueXRoaW5nIG1vcmUgdG8gdHJhbnNtaXQsIG9yIHRoZSB1YXJ0IGlzIG5vdwotCSAqIHN0b3BwZWQsIGRpc2FibGUgdGhlIHVhcnQgYW5kIGV4aXQKLQkqLwotCi0JaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSB8fCB1YXJ0X3R4X3N0b3BwZWQocG9ydCkpIHsKLQkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyogdHJ5IGFuZCBkcmFpbiB0aGUgYnVmZmVyLi4uICovCi0KLQl3aGlsZSAoIXVhcnRfY2lyY19lbXB0eSh4bWl0KSAmJiBjb3VudC0tID4gMCkgewotCQlpZiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCkgJiBvdXJwb3J0LT5pbmZvLT50eF9maWZvZnVsbCkKLQkJCWJyZWFrOwotCi0JCXdyX3JlZ2IocG9ydCwgUzNDMjQxMF9VVFhILCB4bWl0LT5idWZbeG1pdC0+dGFpbF0pOwotCQl4bWl0LT50YWlsID0gKHhtaXQtPnRhaWwgKyAxKSAmIChVQVJUX1hNSVRfU0laRSAtIDEpOwotCQlwb3J0LT5pY291bnQudHgrKzsKLQl9Ci0KLQlpZiAodWFydF9jaXJjX2NoYXJzX3BlbmRpbmcoeG1pdCkgPCBXQUtFVVBfQ0hBUlMpCi0JCXVhcnRfd3JpdGVfd2FrZXVwKHBvcnQpOwotCi0JaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSkKLQkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKLQotIG91dDoKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfdHhfZW1wdHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQl1bnNpZ25lZCBsb25nIHVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCXVuc2lnbmVkIGxvbmcgdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOwotCi0JaWYgKHVmY29uICYgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkgewotCQlpZiAoKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9tYXNrKSAhPSAwIHx8Ci0JCSAgICAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpKQotCQkJcmV0dXJuIDA7Ci0KLQkJcmV0dXJuIDE7Ci0JfQotCi0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOwotfQotCi0vKiBubyBtb2RlbSBjb250cm9sIGxpbmVzICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXVuc2lnbmVkIGludCB1bXN0YXQgPSByZF9yZWdiKHBvcnQsUzNDMjQxMF9VTVNUQVQpOwotCi0JaWYgKHVtc3RhdCAmIFMzQzI0MTBfVU1TVEFUX0NUUykKLQkJcmV0dXJuIFRJT0NNX0NBUiB8IFRJT0NNX0RTUiB8IFRJT0NNX0NUUzsKLQllbHNlCi0JCXJldHVybiBUSU9DTV9DQVIgfCBUSU9DTV9EU1I7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgbWN0cmwpCi17Ci0JLyogdG9kbyAtIHBvc3NpYmx5IHJlbW92ZSBBRkMgYW5kIGRvIG1hbnVhbCBDVFMgKi8KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCB1Y29uOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQotCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0KLQlpZiAoYnJlYWtfc3RhdGUpCi0JCXVjb24gfD0gUzNDMjQxMF9VQ09OX1NCUkVBSzsKLQllbHNlCi0JCXVjb24gJj0gflMzQzI0MTBfVUNPTl9TQlJFQUs7Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NodXRkb3duKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQotCWlmIChvdXJwb3J0LT50eF9jbGFpbWVkKSB7Ci0JCWZyZWVfaXJxKFRYX0lSUShwb3J0KSwgb3VycG9ydCk7Ci0JCXR4X2VuYWJsZWQocG9ydCkgPSAwOwotCQlvdXJwb3J0LT50eF9jbGFpbWVkID0gMDsKLQl9Ci0KLQlpZiAob3VycG9ydC0+cnhfY2xhaW1lZCkgewotCQlmcmVlX2lycShSWF9JUlEocG9ydCksIG91cnBvcnQpOwotCQlvdXJwb3J0LT5yeF9jbGFpbWVkID0gMDsKLQkJcnhfZW5hYmxlZChwb3J0KSA9IDA7Ci0JfQotfQotCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cDogcG9ydD0lcCAoJTA4bHgsJXApXG4iLAotCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCi0JcmV0ID0gcmVxdWVzdF9pcnEoUlhfSVJRKHBvcnQpLAotCQkJICBzM2MyNHh4X3NlcmlhbF9yeF9jaGFycywgMCwKLQkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOwotCi0JaWYgKHJldCAhPSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiY2Fubm90IGdldCBpcnEgJWRcbiIsIFJYX0lSUShwb3J0KSk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0Jb3VycG9ydC0+cnhfY2xhaW1lZCA9IDE7Ci0KLQlkYmcoInJlcXVlc3RpbmcgdHggaXJxLi4uXG4iKTsKLQotCXR4X2VuYWJsZWQocG9ydCkgPSAxOwotCi0JcmV0ID0gcmVxdWVzdF9pcnEoVFhfSVJRKHBvcnQpLAotCQkJICBzM2MyNHh4X3NlcmlhbF90eF9jaGFycywgMCwKLQkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOwotCi0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgImNhbm5vdCBnZXQgaXJxICVkXG4iLCBUWF9JUlEocG9ydCkpOwotCQlnb3RvIGVycjsKLQl9Ci0KLQlvdXJwb3J0LT50eF9jbGFpbWVkID0gMTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cCBva1xuIik7Ci0KLQkvKiB0aGUgcG9ydCByZXNldCBjb2RlIHNob3VsZCBoYXZlIGRvbmUgdGhlIGNvcnJlY3QKLQkgKiByZWdpc3RlciBzZXR1cCBmb3IgdGhlIHBvcnQgY29udHJvbHMgKi8KLQotCXJldHVybiByZXQ7Ci0KLSBlcnI6Ci0JczNjMjR4eF9zZXJpYWxfc2h1dGRvd24ocG9ydCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyogcG93ZXIgcG93ZXIgbWFuYWdlbWVudCBjb250cm9sICovCi0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3BtKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCBsZXZlbCwKLQkJCSAgICAgIHVuc2lnbmVkIGludCBvbGQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQotCXN3aXRjaCAobGV2ZWwpIHsKLQljYXNlIDM6Ci0JCWlmICghSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspICYmIG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCkKLQkJCWNsa19kaXNhYmxlKG91cnBvcnQtPmJhdWRjbGspOwotCi0JCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7Ci0JCWJyZWFrOwotCi0JY2FzZSAwOgotCQljbGtfZW5hYmxlKG91cnBvcnQtPmNsayk7Ci0KLQkJaWYgKCFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykgJiYgb3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMKQotCQkJY2xrX2VuYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKLQotCQlicmVhazsKLQlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHhfc2VyaWFsOiB1bmtub3duIHBtICVkXG4iLCBsZXZlbCk7Ci0JfQotfQotCi0vKiBiYXVkIHJhdGUgY2FsY3VsYXRpb24KLSAqCi0gKiBUaGUgVUFSVHMgb24gdGhlIFMzQzI0MTAvUzNDMjQ0MCBjYW4gdGFrZSB0aGVpciBjbG9ja3MgZnJvbSBhIG51bWJlcgotICogb2YgZGlmZmVyZW50IHNvdXJjZXMsIGluY2x1ZGluZyB0aGUgcGVyaXBoZXJhbCBjbG9jayAoInBjbGsiKSBhbmQgYW4KLSAqIGV4dGVybmFsIGNsb2NrICgidWNsayIpLiBUaGUgUzNDMjQ0MCBhbHNvIGFkZHMgdGhlIGNvcmUgY2xvY2sgKCJmY2xrIikKLSAqIHdpdGggYSBwcm9ncmFtbWFibGUgZXh0cmEgZGl2aXNvci4KLSAqCi0gKiBUaGUgZm9sbG93aW5nIGNvZGUgZ29lcyB0aHJvdWdoIHRoZSBjbG9jayBzb3VyY2VzLCBhbmQgY2FsY3VsYXRlcyB0aGUKLSAqIGJhdWQgY2xvY2tzIChhbmQgdGhlIHJlc3VsdGFudCBhY3R1YWwgYmF1ZCByYXRlcykgYW5kIHRoZW4gdHJpZXMgdG8KLSAqIHBpY2sgdGhlIGNsb3Nlc3Qgb25lIGFuZCBzZWxlY3QgdGhhdC4KLSAqCi0qLwotCi0KLSNkZWZpbmUgTUFYX0NMS1MgKDgpCi0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyB0bXBfY2xrc3JjID0gewotCS5uYW1lCQk9ICJwY2xrIiwKLQkubWluX2JhdWQJPSAwLAotCS5tYXhfYmF1ZAk9IDAsCi0JLmRpdmlzb3IJPSAxLAotfTsKLQotc3RhdGljIGlubGluZSBpbnQKLXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqYykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCXJldHVybiAoaW5mby0+Z2V0X2Nsa3NyYykocG9ydCwgYyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50Ci1zM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmMpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7Ci0KLQlyZXR1cm4gKGluZm8tPnNldF9jbGtzcmMpKHBvcnQsIGMpOwotfQotCi1zdHJ1Y3QgYmF1ZF9jYWxjIHsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYwkqY2xrc3JjOwotCXVuc2lnbmVkIGludAkJCSBjYWxjOwotCXVuc2lnbmVkIGludAkJCSBxdW90OwotCXN0cnVjdCBjbGsJCQkqc3JjOwotfTsKLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChzdHJ1Y3QgYmF1ZF9jYWxjICpjYWxjLAotCQkJCSAgIHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3NyYywKLQkJCQkgICB1bnNpZ25lZCBpbnQgYmF1ZCkKLXsKLQl1bnNpZ25lZCBsb25nIHJhdGU7Ci0KLQljYWxjLT5zcmMgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLT5uYW1lKTsKLQlpZiAoY2FsYy0+c3JjID09IE5VTEwgfHwgSVNfRVJSKGNhbGMtPnNyYykpCi0JCXJldHVybiAwOwotCi0JcmF0ZSA9IGNsa19nZXRfcmF0ZShjYWxjLT5zcmMpOwotCXJhdGUgLz0gY2xrc3JjLT5kaXZpc29yOwotCi0JY2FsYy0+Y2xrc3JjID0gY2xrc3JjOwotCWNhbGMtPnF1b3QgPSAocmF0ZSArICg4ICogYmF1ZCkpIC8gKDE2ICogYmF1ZCk7Ci0JY2FsYy0+Y2FsYyA9IChyYXRlIC8gKGNhbGMtPnF1b3QgKiAxNikpOwotCi0JY2FsYy0+cXVvdC0tOwotCXJldHVybiAxOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldGNsayhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCQkgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICoqY2xrc3JjLAotCQkJCQkgIHN0cnVjdCBjbGsgKipjbGssCi0JCQkJCSAgdW5zaWduZWQgaW50IGJhdWQpCi17Ci0Jc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnID0gczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrcDsKLQlzdHJ1Y3QgYmF1ZF9jYWxjIHJlc1tNQVhfQ0xLU107Ci0Jc3RydWN0IGJhdWRfY2FsYyAqcmVzcHRyLCAqYmVzdCwgKnNwdHI7Ci0JaW50IGk7Ci0KLQljbGtwID0gY2ZnLT5jbG9ja3M7Ci0JYmVzdCA9IE5VTEw7Ci0KLQlpZiAoY2ZnLT5jbG9ja3Nfc2l6ZSA8IDIpIHsKLQkJaWYgKGNmZy0+Y2xvY2tzX3NpemUgPT0gMCkKLQkJCWNsa3AgPSAmdG1wX2Nsa3NyYzsKLQotCQkvKiBjaGVjayB0byBzZWUgaWYgd2UncmUgc291cmNpbmcgZmNsaywgYW5kIGlmIHNvIHdlJ3JlCi0JCSAqIGdvaW5nIHRvIGhhdmUgdG8gdXBkYXRlIHRoZSBjbG9jayBzb3VyY2UKLQkJICovCi0KLQkJaWYgKHN0cmNtcChjbGtwLT5uYW1lLCAiZmNsayIpID09IDApIHsKLQkJCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIHNyYzsKLQotCQkJczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHBvcnQsICZzcmMpOwotCi0JCQkvKiBjaGVjayB0aGF0IHRoZSBwb3J0IGFscmVhZHkgdXNpbmcgZmNsaywgYW5kIGlmCi0JCQkgKiBub3QsIHRoZW4gcmUtc2VsZWN0IGZjbGsKLQkJCSAqLwotCi0JCQlpZiAoc3RyY21wKHNyYy5uYW1lLCBjbGtwLT5uYW1lKSA9PSAwKSB7Ci0JCQkJczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHBvcnQsIGNsa3ApOwotCQkJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmc3JjKTsKLQkJCX0KLQotCQkJY2xrcC0+ZGl2aXNvciA9IHNyYy5kaXZpc29yOwotCQl9Ci0KLQkJczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQocmVzLCBwb3J0LCBjbGtwLCBiYXVkKTsKLQkJYmVzdCA9IHJlczsKLQkJcmVzcHRyID0gYmVzdCArIDE7Ci0JfSBlbHNlIHsKLQkJcmVzcHRyID0gcmVzOwotCi0JCWZvciAoaSA9IDA7IGkgPCBjZmctPmNsb2Nrc19zaXplOyBpKyssIGNsa3ArKykgewotCQkJaWYgKHMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHJlc3B0ciwgcG9ydCwgY2xrcCwgYmF1ZCkpCi0JCQkJcmVzcHRyKys7Ci0JCX0KLQl9Ci0KLQkvKiBvaywgd2Ugbm93IG5lZWQgdG8gc2VsZWN0IHRoZSBiZXN0IGNsb2NrIHdlIGZvdW5kICovCi0KLQlpZiAoIWJlc3QpIHsKLQkJdW5zaWduZWQgaW50IGRldmlhdGlvbiA9ICgxPDwzMCl8KCgxPDwzMCktMSk7Ci0JCWludCBjYWxjX2RldmlhdGlvbjsKLQotCQlmb3IgKHNwdHIgPSByZXM7IHNwdHIgPCByZXNwdHI7IHNwdHIrKykgewotCQkJcHJpbnRrKEtFUk5fREVCVUcKLQkJCSAgICAgICAiZm91bmQgY2xrICVwICglcykgcXVvdCAlZCwgY2FsYyAlZFxuIiwKLQkJCSAgICAgICBzcHRyLT5jbGtzcmMsIHNwdHItPmNsa3NyYy0+bmFtZSwKLQkJCSAgICAgICBzcHRyLT5xdW90LCBzcHRyLT5jYWxjKTsKLQotCQkJY2FsY19kZXZpYXRpb24gPSBiYXVkIC0gc3B0ci0+Y2FsYzsKLQkJCWlmIChjYWxjX2RldmlhdGlvbiA8IDApCi0JCQkJY2FsY19kZXZpYXRpb24gPSAtY2FsY19kZXZpYXRpb247Ci0KLQkJCWlmIChjYWxjX2RldmlhdGlvbiA8IGRldmlhdGlvbikgewotCQkJCWJlc3QgPSBzcHRyOwotCQkJCWRldmlhdGlvbiA9IGNhbGNfZGV2aWF0aW9uOwotCQkJfQotCQl9Ci0KLQkJcHJpbnRrKEtFUk5fREVCVUcgImJlc3QgJXAgKGRldmlhdGlvbiAlZClcbiIsIGJlc3QsIGRldmlhdGlvbik7Ci0JfQotCi0JcHJpbnRrKEtFUk5fREVCVUcgInNlbGVjdGVkIGNsb2NrICVwICglcykgcXVvdCAlZCwgY2FsYyAlZFxuIiwKLQkgICAgICAgYmVzdC0+Y2xrc3JjLCBiZXN0LT5jbGtzcmMtPm5hbWUsIGJlc3QtPnF1b3QsIGJlc3QtPmNhbGMpOwotCi0JLyogc3RvcmUgcmVzdWx0cyB0byBwYXNzIGJhY2sgKi8KLQotCSpjbGtzcmMgPSBiZXN0LT5jbGtzcmM7Ci0JKmNsayAgICA9IGJlc3QtPnNyYzsKLQotCXJldHVybiBiZXN0LT5xdW90OwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKnRlcm1pb3MsCi0JCQkJICAgICAgIHN0cnVjdCBrdGVybWlvcyAqb2xkKQotewotCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZyA9IHMzYzI0eHhfcG9ydF90b19jZmcocG9ydCk7Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrc3JjID0gTlVMTDsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IGJhdWQsIHF1b3Q7Ci0JdW5zaWduZWQgaW50IHVsY29uOwotCXVuc2lnbmVkIGludCB1bWNvbjsKLQotCS8qCi0JICogV2UgZG9uJ3Qgc3VwcG9ydCBtb2RlbSBjb250cm9sIGxpbmVzLgotCSAqLwotCXRlcm1pb3MtPmNfY2ZsYWcgJj0gfihIVVBDTCB8IENNU1BBUik7Ci0JdGVybWlvcy0+Y19jZmxhZyB8PSBDTE9DQUw7Ci0KLQkvKgotCSAqIEFzayB0aGUgY29yZSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHVzLgotCSAqLwotCi0JYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCB0ZXJtaW9zLCBvbGQsIDAsIDExNTIwMCo4KTsKLQotCWlmIChiYXVkID09IDM4NDAwICYmIChwb3J0LT5mbGFncyAmIFVQRl9TUERfTUFTSykgPT0gVVBGX1NQRF9DVVNUKQotCQlxdW90ID0gcG9ydC0+Y3VzdG9tX2Rpdmlzb3I7Ci0JZWxzZQotCQlxdW90ID0gczNjMjR4eF9zZXJpYWxfZ2V0Y2xrKHBvcnQsICZjbGtzcmMsICZjbGssIGJhdWQpOwotCi0JLyogY2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgIHRvIGNoYW5nZSBjbG9jayBzb3VyY2UgKi8KLQotCWlmIChvdXJwb3J0LT5jbGtzcmMgIT0gY2xrc3JjIHx8IG91cnBvcnQtPmJhdWRjbGsgIT0gY2xrKSB7Ci0JCXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShwb3J0LCBjbGtzcmMpOwotCi0JCWlmIChvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwgJiYgIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSkgewotCQkJY2xrX2Rpc2FibGUob3VycG9ydC0+YmF1ZGNsayk7Ci0JCQlvdXJwb3J0LT5iYXVkY2xrICA9IE5VTEw7Ci0JCX0KLQotCQljbGtfZW5hYmxlKGNsayk7Ci0KLQkJb3VycG9ydC0+Y2xrc3JjID0gY2xrc3JjOwotCQlvdXJwb3J0LT5iYXVkY2xrID0gY2xrOwotCX0KLQotCXN3aXRjaCAodGVybWlvcy0+Y19jZmxhZyAmIENTSVpFKSB7Ci0JY2FzZSBDUzU6Ci0JCWRiZygiY29uZmlnOiA1Yml0cy9jaGFyXG4iKTsKLQkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M1OwotCQlicmVhazsKLQljYXNlIENTNjoKLQkJZGJnKCJjb25maWc6IDZiaXRzL2NoYXJcbiIpOwotCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzY7Ci0JCWJyZWFrOwotCWNhc2UgQ1M3OgotCQlkYmcoImNvbmZpZzogN2JpdHMvY2hhclxuIik7Ci0JCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNzsKLQkJYnJlYWs7Ci0JY2FzZSBDUzg6Ci0JZGVmYXVsdDoKLQkJZGJnKCJjb25maWc6IDhiaXRzL2NoYXJcbiIpOwotCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzg7Ci0JCWJyZWFrOwotCX0KLQotCS8qIHByZXNlcnZlIG9yaWdpbmFsIGxjb24gSVIgc2V0dGluZ3MgKi8KLQl1bGNvbiB8PSAoY2ZnLT51bGNvbiAmIFMzQzI0MTBfTENPTl9JUk0pOwotCi0JaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBDU1RPUEIpCi0JCXVsY29uIHw9IFMzQzI0MTBfTENPTl9TVE9QQjsKLQotCXVtY29uID0gKHRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSA/IFMzQzI0MTBfVU1DT01fQUZDIDogMDsKLQotCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFSRU5CKSB7Ci0JCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFST0REKQotCQkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BPREQ7Ci0JCWVsc2UKLQkJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QRVZFTjsKLQl9IGVsc2UgewotCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUE5PTkU7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQotCWRiZygic2V0dGluZyB1bGNvbiB0byAlMDh4LCBicmRkaXYgdG8gJWRcbiIsIHVsY29uLCBxdW90KTsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgdWxjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQlJESVYsIHF1b3QpOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTUNPTiwgdW1jb24pOwotCi0JZGJnKCJ1YXJ0OiB1bGNvbiA9IDB4JTA4eCwgdWNvbiA9IDB4JTA4eCwgdWZjb24gPSAweCUwOHhcbiIsCi0JICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiksCi0JICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKSwKLQkgICAgcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OKSk7Ci0KLQkvKgotCSAqIFVwZGF0ZSB0aGUgcGVyLXBvcnQgdGltZW91dC4KLQkgKi8KLQl1YXJ0X3VwZGF0ZV90aW1lb3V0KHBvcnQsIHRlcm1pb3MtPmNfY2ZsYWcsIGJhdWQpOwotCi0JLyoKLQkgKiBXaGljaCBjaGFyYWN0ZXIgc3RhdHVzIGZsYWdzIGFyZSB3ZSBpbnRlcmVzdGVkIGluPwotCSAqLwotCXBvcnQtPnJlYWRfc3RhdHVzX21hc2sgPSBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTjsKLQlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElOUENLKQotCQlwb3J0LT5yZWFkX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRSB8IFMzQzI0MTBfVUVSU1RBVF9QQVJJVFk7Ci0KLQkvKgotCSAqIFdoaWNoIGNoYXJhY3RlciBzdGF0dXMgZmxhZ3Mgc2hvdWxkIHdlIGlnbm9yZT8KLQkgKi8KLQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgPSAwOwotCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSUdOUEFSKQotCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUzNDMjQxMF9VRVJTVEFUX09WRVJSVU47Ci0JaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJR05CUksgJiYgdGVybWlvcy0+Y19pZmxhZyAmIElHTlBBUikKLQkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRTsKLQotCS8qCi0JICogSWdub3JlIGFsbCBjaGFyYWN0ZXJzIGlmIENSRUFEIGlzIG5vdCBzZXQuCi0JICovCi0JaWYgKCh0ZXJtaW9zLT5jX2NmbGFnICYgQ1JFQUQpID09IDApCi0JCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBSWFNUQVRfRFVNTVlfUkVBRDsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIGNvbnN0IGNoYXIgKnMzYzI0eHhfc2VyaWFsX3R5cGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlzd2l0Y2ggKHBvcnQtPnR5cGUpIHsKLQljYXNlIFBPUlRfUzNDMjQxMDoKLQkJcmV0dXJuICJTM0MyNDEwIjsKLQljYXNlIFBPUlRfUzNDMjQ0MDoKLQkJcmV0dXJuICJTM0MyNDQwIjsKLQljYXNlIFBPUlRfUzNDMjQxMjoKLQkJcmV0dXJuICJTM0MyNDEyIjsKLQlkZWZhdWx0OgotCQlyZXR1cm4gTlVMTDsKLQl9Ci19Ci0KLSNkZWZpbmUgTUFQX1NJWkUgKDB4MTAwKQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZWxlYXNlX21lbV9yZWdpb24ocG9ydC0+bWFwYmFzZSwgTUFQX1NJWkUpOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWNvbnN0IGNoYXIgKm5hbWUgPSBzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShwb3J0KTsKLQlyZXR1cm4gcmVxdWVzdF9tZW1fcmVnaW9uKHBvcnQtPm1hcGJhc2UsIE1BUF9TSVpFLCBuYW1lKSA/IDAgOiAtRUJVU1k7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX2NvbmZpZ19wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBmbGFncykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCWlmIChmbGFncyAmIFVBUlRfQ09ORklHX1RZUEUgJiYKLQkgICAgczNjMjR4eF9zZXJpYWxfcmVxdWVzdF9wb3J0KHBvcnQpID09IDApCi0JCXBvcnQtPnR5cGUgPSBpbmZvLT50eXBlOwotfQotCi0vKgotICogdmVyaWZ5IHRoZSBuZXcgc2VyaWFsX3N0cnVjdCAoZm9yIFRJT0NTU0VSSUFMKS4KLSAqLwotc3RhdGljIGludAotczNjMjR4eF9zZXJpYWxfdmVyaWZ5X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnNlcikKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCWlmIChzZXItPnR5cGUgIT0gUE9SVF9VTktOT1dOICYmIHNlci0+dHlwZSAhPSBpbmZvLT50eXBlKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJldHVybiAwOwotfQotCi0KLSNpZmRlZiBDT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRQotCi1zdGF0aWMgc3RydWN0IGNvbnNvbGUgczNjMjR4eF9zZXJpYWxfY29uc29sZTsKLQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFICZzM2MyNHh4X3NlcmlhbF9jb25zb2xlCi0jZWxzZQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgc3RydWN0IHVhcnRfb3BzIHMzYzI0eHhfc2VyaWFsX29wcyA9IHsKLQkucG0JCT0gczNjMjR4eF9zZXJpYWxfcG0sCi0JLnR4X2VtcHR5CT0gczNjMjR4eF9zZXJpYWxfdHhfZW1wdHksCi0JLmdldF9tY3RybAk9IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybCwKLQkuc2V0X21jdHJsCT0gczNjMjR4eF9zZXJpYWxfc2V0X21jdHJsLAotCS5zdG9wX3R4CT0gczNjMjR4eF9zZXJpYWxfc3RvcF90eCwKLQkuc3RhcnRfdHgJPSBzM2MyNHh4X3NlcmlhbF9zdGFydF90eCwKLQkuc3RvcF9yeAk9IHMzYzI0eHhfc2VyaWFsX3N0b3BfcngsCi0JLmVuYWJsZV9tcwk9IHMzYzI0eHhfc2VyaWFsX2VuYWJsZV9tcywKLQkuYnJlYWtfY3RsCT0gczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsLAotCS5zdGFydHVwCT0gczNjMjR4eF9zZXJpYWxfc3RhcnR1cCwKLQkuc2h1dGRvd24JPSBzM2MyNHh4X3NlcmlhbF9zaHV0ZG93biwKLQkuc2V0X3Rlcm1pb3MJPSBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcywKLQkudHlwZQkJPSBzM2MyNHh4X3NlcmlhbF90eXBlLAotCS5yZWxlYXNlX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQsCi0JLnJlcXVlc3RfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydCwKLQkuY29uZmlnX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9jb25maWdfcG9ydCwKLQkudmVyaWZ5X3BvcnQJPSBzM2MyNHh4X3NlcmlhbF92ZXJpZnlfcG9ydCwKLX07Ci0KLQotc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBzM2MyNHh4X3VhcnRfZHJ2ID0gewotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkuZGV2X25hbWUJPSAiczNjMjQxMF9zZXJpYWwiLAotCS5ucgkJPSAzLAotCS5jb25zCQk9IFMzQzI0WFhfU0VSSUFMX0NPTlNPTEUsCi0JLmRyaXZlcl9uYW1lCT0gUzNDMjRYWF9TRVJJQUxfTkFNRSwKLQkubWFqb3IJCT0gUzNDMjRYWF9TRVJJQUxfTUFKT1IsCi0JLm1pbm9yCQk9IFMzQzI0WFhfU0VSSUFMX01JTk9SLAotfTsKLQotc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCBzM2MyNHh4X3NlcmlhbF9wb3J0c1tOUl9QT1JUU10gPSB7Ci0JWzBdID0gewotCQkucG9ydCA9IHsKLQkJCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHMzYzI0eHhfc2VyaWFsX3BvcnRzWzBdLnBvcnQubG9jayksCi0JCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkJLmlycQkJPSBJUlFfUzNDVUFSVF9SWDAsCi0JCQkudWFydGNsawk9IDAsCi0JCQkuZmlmb3NpemUJPSAxNiwKLQkJCS5vcHMJCT0gJnMzYzI0eHhfc2VyaWFsX29wcywKLQkJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJCS5saW5lCQk9IDAsCi0JCX0KLQl9LAotCVsxXSA9IHsKLQkJLnBvcnQgPSB7Ci0JCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1sxXS5wb3J0LmxvY2spLAotCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgxLAotCQkJLnVhcnRjbGsJPSAwLAotCQkJLmZpZm9zaXplCT0gMTYsCi0JCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCi0JCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCi0JCQkubGluZQkJPSAxLAotCQl9Ci0JfSwKLSNpZiBOUl9QT1JUUyA+IDIKLQotCVsyXSA9IHsKLQkJLnBvcnQgPSB7Ci0JCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1syXS5wb3J0LmxvY2spLAotCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgyLAotCQkJLnVhcnRjbGsJPSAwLAotCQkJLmZpZm9zaXplCT0gMTYsCi0JCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCi0JCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCi0JCQkubGluZQkJPSAyLAotCQl9Ci0JfQotI2VuZGlmCi19OwotCi0vKiBzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQKLSAqCi0gKiB3cmFwcGVyIHRvIGNhbGwgdGhlIHNwZWNpZmljIHJlc2V0IGZvciB0aGlzIHBvcnQgKHJlc2V0IHRoZSBmaWZvcwotICogYW5kIHRoZSBzZXR0aW5ncykKLSovCi0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICogcG9ydCwKLQkJCQkJICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCi0JcmV0dXJuIChpbmZvLT5yZXNldF9wb3J0KShwb3J0LCBjZmcpOwotfQotCi0vKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQKLSAqCi0gKiBpbml0aWFsaXNlIGEgc2luZ2xlIHNlcmlhbCBwb3J0IGZyb20gdGhlIHBsYXRmb3JtIGRldmljZSBnaXZlbgotICovCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvLAotCQkJCSAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0ZGV2KQotewotCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKLQlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmc7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBwb3J0PSVwLCBwbGF0ZGV2PSVwXG4iLCBwb3J0LCBwbGF0ZGV2KTsKLQotCWlmIChwbGF0ZGV2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PREVWOwotCi0JY2ZnID0gczNjMjR4eF9kZXZfdG9fY2ZnKCZwbGF0ZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQtPm1hcGJhc2UgIT0gMCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoY2ZnLT5od3BvcnQgPiAzKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qIHNldHVwIGluZm8gZm9yIHBvcnQgKi8KLQlwb3J0LT5kZXYJPSAmcGxhdGRldi0+ZGV2OwotCW91cnBvcnQtPmluZm8JPSBpbmZvOwotCi0JLyogY29weSB0aGUgaW5mbyBpbiBmcm9tIHByb3ZpZGVkIHN0cnVjdHVyZSAqLwotCW91cnBvcnQtPnBvcnQuZmlmb3NpemUgPSBpbmZvLT5maWZvc2l6ZTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiAlcCAoaHcgJWQpLi4uXG4iLCBwb3J0LCBjZmctPmh3cG9ydCk7Ci0KLQlwb3J0LT51YXJ0Y2xrID0gMTsKLQotCWlmIChjZmctPnVhcnRfZmxhZ3MgJiBVUEZfQ09OU19GTE9XKSB7Ci0JCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBlbmFibGluZyBmbG93IGNvbnRyb2xcbiIpOwotCQlwb3J0LT5mbGFncyB8PSBVUEZfQ09OU19GTE9XOwotCX0KLQotCS8qIHNvcnQgb3VyIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzZXMgZm9yIGVhY2ggVUFSVCAqLwotCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBsYXRkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlpZiAocmVzID09IE5VTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gZmluZCBtZW1vcnkgcmVzb3VyY2UgZm9yIHVhcnRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkYmcoInJlc291cmNlICVwICglbHguLiVseClcbiIsIHJlcywgcmVzLT5zdGFydCwgcmVzLT5lbmQpOwotCi0JcG9ydC0+bWFwYmFzZQk9IHJlcy0+c3RhcnQ7Ci0JcG9ydC0+bWVtYmFzZQk9IFMzQzI0WFhfVkFfVUFSVCArIChyZXMtPnN0YXJ0IC0gUzNDMjRYWF9QQV9VQVJUKTsKLQlyZXQgPSBwbGF0Zm9ybV9nZXRfaXJxKHBsYXRkZXYsIDApOwotCWlmIChyZXQgPCAwKQotCQlwb3J0LT5pcnEgPSAwOwotCWVsc2UKLQkJcG9ydC0+aXJxID0gcmV0OwotCi0Jb3VycG9ydC0+Y2xrCT0gY2xrX2dldCgmcGxhdGRldi0+ZGV2LCAidWFydCIpOwotCi0JZGJnKCJwb3J0OiBtYXA9JTA4eCwgbWVtPSUwOHgsIGlycT0lZCwgY2xvY2s9JWxkXG4iLAotCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlLCBwb3J0LT5pcnEsIHBvcnQtPnVhcnRjbGspOwotCi0JLyogcmVzZXQgdGhlIGZpZm9zIChhbmQgc2V0dXAgdGhlIHVhcnQpICovCi0JczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0KHBvcnQsIGNmZyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIERldmljZSBkcml2ZXIgc2VyaWFsIHBvcnQgcHJvYmUgKi8KLQotc3RhdGljIGludCBwcm9iZV9pbmRleCA9IDA7Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQ7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfcHJvYmUoJXAsICVwKSAlZFxuIiwgZGV2LCBpbmZvLCBwcm9iZV9pbmRleCk7Ci0KLQlvdXJwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW3Byb2JlX2luZGV4XTsKLQlwcm9iZV9pbmRleCsrOwotCi0JZGJnKCIlczogaW5pdGlhbGlzaW5nIHBvcnQgJXAuLi5cbiIsIF9fZnVuY19fLCBvdXJwb3J0KTsKLQotCXJldCA9IHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydChvdXJwb3J0LCBpbmZvLCBkZXYpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIHByb2JlX2VycjsKLQotCWRiZygiJXM6IGFkZGluZyBwb3J0XG4iLCBfX2Z1bmNfXyk7Ci0JdWFydF9hZGRfb25lX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsICZvdXJwb3J0LT5wb3J0KTsKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsICZvdXJwb3J0LT5wb3J0KTsKLQotCXJldHVybiAwOwotCi0gcHJvYmVfZXJyOgotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQpCi0JCXVhcnRfcmVtb3ZlX29uZV9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBVQVJUIHBvd2VyIG1hbmFnZW1lbnQgY29kZSAqLwotCi0jaWZkZWYgQ09ORklHX1BNCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQpCi0JCXVhcnRfc3VzcGVuZF9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoJmRldi0+ZGV2KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOwotCi0JaWYgKHBvcnQpIHsKLQkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOwotCQlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KSk7Ci0JCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7Ci0KLQkJdWFydF9yZXN1bWVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgcG9ydCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0jZGVmaW5lIHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQgTlVMTAotI2RlZmluZSBzM2MyNHh4X3NlcmlhbF9yZXN1bWUgIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXQoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAotCQkJICAgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKLXsKLQlkYmcoInMzYzI0eHhfc2VyaWFsX2luaXQoJXAsJXApXG4iLCBkcnYsIGluZm8pOwotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoZHJ2KTsKLX0KLQotCi0vKiBub3cgY29tZXMgdGhlIGNvZGUgdG8gaW5pdGlhbGlzZSBlaXRoZXIgdGhlIHMzYzI0MTAgb3IgczNjMjQ0MCBzZXJpYWwKLSAqIHBvcnQgaW5mb3JtYXRpb24KLSovCi0KLS8qIGNwdSBzcGVjaWZpYyB2YXJpYXRpb25zIG9uIHRoZSBzZXJpYWwgcG9ydCBzdXBwb3J0ICovCi0KLSNpZmRlZiBDT05GSUdfQ1BVX1MzQzI0MDAKLQotc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKLXsKLQljbGstPmRpdmlzb3IgPSAxOwotCWNsay0+bmFtZSA9ICJwY2xrIjsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0JZGJnKCJzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQ6IHBvcnQ9JXAgKCUwOGx4KSwgY2ZnPSVwXG4iLAotCSAgICBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOwotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sICBjZmctPnVjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7Ci0KLQkvKiByZXNldCBib3RoIGZpZm9zICovCi0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MDBfdWFydF9pbmYgPSB7Ci0JLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQwMCBVQVJUIiwKLQkudHlwZQkJPSBQT1JUX1MzQzI0MDAsCi0JLmZpZm9zaXplCT0gMTYsCi0JLnJ4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfUlhNQVNLLAotCS5yeF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9SWFNISUZULAotCS5yeF9maWZvZnVsbAk9IFMzQzI0MTBfVUZTVEFUX1JYRlVMTCwKLQkudHhfZmlmb2Z1bGwJPSBTM0MyNDEwX1VGU1RBVF9UWEZVTEwsCi0JLnR4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfVFhNQVNLLAotCS50eF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9UWFNISUZULAotCS5nZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfZ2V0c291cmNlLAotCS5zZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfc2V0c291cmNlLAotCS5yZXNldF9wb3J0CT0gczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0LAotfTsKLQotc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0MDBfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDAwX3NlcmlhbF9kcnYgPSB7Ci0JLnByb2JlCQk9IHMzYzI0MDBfc2VyaWFsX3Byb2JlLAotCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAotCS5zdXNwZW5kCT0gczNjMjR4eF9zZXJpYWxfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAiczNjMjQwMC11YXJ0IiwKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JfSwKLX07Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0MDBfc2VyaWFsX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQwMF9zZXJpYWxfZHJ2LCAmczNjMjQwMF91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDAwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnMzYzI0MDBfc2VyaWFsX2Rydik7Ci19Ci0KLSNkZWZpbmUgczNjMjQwMF91YXJ0X2luZl9hdCAmczNjMjQwMF91YXJ0X2luZgotI2Vsc2UKLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQwMF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQwMF9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MDBfdWFydF9pbmZfYXQgTlVMTAotCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDAwICovCi0KLS8qIFMzQzI0MTAgc3VwcG9ydCAqLwotCi0jaWZkZWYgQ09ORklHX0NQVV9TM0MyNDEwCisjaW5jbHVkZSAic2Ftc3VuZy5oIgogCiBzdGF0aWMgaW50IHMzYzI0MTBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAogCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQpAQCAtMTMyMyw4ICs4Myw2IEBACiAJLnJlc2V0X3BvcnQJPSBzM2MyNDEwX3NlcmlhbF9yZXNldHBvcnQsCiB9OwogCi0vKiBkZXZpY2UgbWFuYWdlbWVudCAqLwotCiBzdGF0aWMgaW50IHMzYzI0MTBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIHsKIAlyZXR1cm4gczNjMjR4eF9zZXJpYWxfcHJvYmUoZGV2LCAmczNjMjQxMF91YXJ0X2luZik7CkBAIC0xMzMzLDYxMiArOTEsMjggQEAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzYzI0MTBfc2VyaWFsX2RydiA9IHsKIAkucHJvYmUJCT0gczNjMjQxMF9zZXJpYWxfcHJvYmUsCiAJLnJlbW92ZQkJPSBzM2MyNHh4X3NlcmlhbF9yZW1vdmUsCi0JLnN1c3BlbmQJPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kLAotCS5yZXN1bWUJCT0gczNjMjR4eF9zZXJpYWxfcmVzdW1lLAogCS5kcml2ZXIJCT0gewogCQkubmFtZQk9ICJzM2MyNDEwLXVhcnQiLAogCQkub3duZXIJPSBUSElTX01PRFVMRSwKIAl9LAogfTsKIAotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMF9zZXJpYWxfaW5pdCh2b2lkKQorczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0MTBfc2VyaWFsX2RydiwgJnMzYzI0MTBfdWFydF9pbmYpOworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNDEwX3NlcmlhbF9pbml0KHZvaWQpCiB7CiAJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0MTBfc2VyaWFsX2RydiwgJnMzYzI0MTBfdWFydF9pbmYpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMF9zZXJpYWxfZXhpdCh2b2lkKQorc3RhdGljIHZvaWQgX19leGl0IHMzYzI0MTBfc2VyaWFsX2V4aXQodm9pZCkKIHsKIAlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQxMF9zZXJpYWxfZHJ2KTsKIH0KIAotI2RlZmluZSBzM2MyNDEwX3VhcnRfaW5mX2F0ICZzM2MyNDEwX3VhcnRfaW5mCi0jZWxzZQorbW9kdWxlX2luaXQoczNjMjQxMF9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDEwX3NlcmlhbF9leGl0KTsKIAotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMF9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MTBfdWFydF9pbmZfYXQgTlVMTAotCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDEwICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19DUFVfUzNDMjQ0MCkgfHwgZGVmaW5lZChDT05GSUdfQ1BVX1MzQzI0NDIpCi0KLXN0YXRpYyBpbnQgczNjMjQ0MF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCS8vIHRvZG8gLSBwcm9wZXIgZmNsazw+bm9uZmNsayBzd2l0Y2ggLy8KLQotCXVjb24gJj0gflMzQzI0NDBfVUNPTl9DTEtNQVNLOwotCi0JaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1Y2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDQwX1VDT05fVUNMSzsKLQllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAicGNsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1BDTEs7Ci0JZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgImZjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9GQ0xLOwotCWVsc2UgewotCQlwcmludGsoS0VSTl9FUlIgInVua25vd24gY2xvY2sgc291cmNlICVzXG4iLCBjbGstPm5hbWUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKLXsKLQl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0JdW5zaWduZWQgbG9uZyB1Y29uMCwgdWNvbjEsIHVjb24yOwotCi0Jc3dpdGNoICh1Y29uICYgUzNDMjQ0MF9VQ09OX0NMS01BU0spIHsKLQljYXNlIFMzQzI0NDBfVUNPTl9VQ0xLOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAidWNsayI7Ci0JCWJyZWFrOwotCi0JY2FzZSBTM0MyNDQwX1VDT05fUENMSzoKLQljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLMjoKLQkJY2xrLT5kaXZpc29yID0gMTsKLQkJY2xrLT5uYW1lID0gInBjbGsiOwotCQlicmVhazsKLQotCWNhc2UgUzNDMjQ0MF9VQ09OX0ZDTEs6Ci0JCS8qIHRoZSBmdW4gb2YgY2FsY3VsYXRpbmcgdGhlIHVhcnQgZGl2aXNvcnMgb24KLQkJICogdGhlIHMzYzI0NDAgKi8KLQotCQl1Y29uMCA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDAgKyBTM0MyNDEwX1VDT04pOwotCQl1Y29uMSA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDEgKyBTM0MyNDEwX1VDT04pOwotCQl1Y29uMiA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDIgKyBTM0MyNDEwX1VDT04pOwotCi0JCXByaW50aygidWNvbnM6ICUwOGx4LCAlMDhseCwgJTA4bHhcbiIsIHVjb24wLCB1Y29uMSwgdWNvbjIpOwotCi0JCXVjb24wICY9IFMzQzI0NDBfVUNPTjBfRElWTUFTSzsKLQkJdWNvbjEgJj0gUzNDMjQ0MF9VQ09OMV9ESVZNQVNLOwotCQl1Y29uMiAmPSBTM0MyNDQwX1VDT04yX0RJVk1BU0s7Ci0KLQkJaWYgKHVjb24wICE9IDApIHsKLQkJCWNsay0+ZGl2aXNvciA9IHVjb24wID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKLQkJCWNsay0+ZGl2aXNvciArPSA2OwotCQl9IGVsc2UgaWYgKHVjb24xICE9IDApIHsKLQkJCWNsay0+ZGl2aXNvciA9IHVjb24xID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKLQkJCWNsay0+ZGl2aXNvciArPSAyMTsKLQkJfSBlbHNlIGlmICh1Y29uMiAhPSAwKSB7Ci0JCQljbGstPmRpdmlzb3IgPSB1Y29uMiA+PiBTM0MyNDQwX1VDT05fRElWU0hJRlQ7Ci0JCQljbGstPmRpdmlzb3IgKz0gMzY7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBtYW51YWwgY2FsaW1zIDQ0LCBzZWVtcyB0byBiZSA5ICovCi0JCQljbGstPmRpdmlzb3IgPSA5OwotCQl9Ci0KLQkJY2xrLT5uYW1lID0gImZjbGsiOwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCWRiZygiczNjMjQ0MF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKLQkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKLQotCS8qIGVuc3VyZSB3ZSBkb24ndCBjaGFuZ2UgdGhlIGNsb2NrIHNldHRpbmdzLi4uICovCi0KLQl1Y29uICY9IChTM0MyNDQwX1VDT04wX0RJVk1BU0sgfCAoMzw8MTApKTsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKLQotCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQ0MF91YXJ0X2luZiA9IHsKLQkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDQwIFVBUlQiLAotCS50eXBlCQk9IFBPUlRfUzNDMjQ0MCwKLQkuZmlmb3NpemUJPSA2NCwKLQkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCi0JLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCi0JLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAotCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKLQkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCi0JLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCi0JLmdldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2UsCi0JLnNldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2UsCi0JLnJlc2V0X3BvcnQJPSBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQsCi19OwotCi0vKiBkZXZpY2UgbWFuYWdlbWVudCAqLwotCi1zdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0NDBfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDQwX3NlcmlhbF9kcnYgPSB7Ci0JLnByb2JlCQk9IHMzYzI0NDBfc2VyaWFsX3Byb2JlLAotCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAotCS5zdXNwZW5kCT0gczNjMjR4eF9zZXJpYWxfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAiczNjMjQ0MC11YXJ0IiwKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JfSwKLX07Ci0KLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQ0MF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDQwX3NlcmlhbF9kcnYsICZzM2MyNDQwX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHMzYzI0NDBfc2VyaWFsX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQ0MF9zZXJpYWxfZHJ2KTsKLX0KLQotI2RlZmluZSBzM2MyNDQwX3VhcnRfaW5mX2F0ICZzM2MyNDQwX3VhcnRfaW5mCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDQwX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDQwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci19Ci0KLSNkZWZpbmUgczNjMjQ0MF91YXJ0X2luZl9hdCBOVUxMCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDQwICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19DUFVfUzNDMjQxMikKLQotc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JdWNvbiAmPSB+UzNDMjQxMl9VQ09OX0NMS01BU0s7Ci0KLQlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOwotCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKLQllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAidXN5c2NsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQxMl9VQ09OX1VTWVNDTEs7Ci0JZWxzZSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCXN3aXRjaCAodWNvbiAmIFMzQzI0MTJfVUNPTl9DTEtNQVNLKSB7Ci0JY2FzZSBTM0MyNDEyX1VDT05fVUNMSzoKLQkJY2xrLT5kaXZpc29yID0gMTsKLQkJY2xrLT5uYW1lID0gInVjbGsiOwotCQlicmVhazsKLQotCWNhc2UgUzNDMjQxMl9VQ09OX1BDTEs6Ci0JY2FzZSBTM0MyNDEyX1VDT05fUENMSzI6Ci0JCWNsay0+ZGl2aXNvciA9IDE7Ci0JCWNsay0+bmFtZSA9ICJwY2xrIjsKLQkJYnJlYWs7Ci0KLQljYXNlIFMzQzI0MTJfVUNPTl9VU1lTQ0xLOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAidXN5c2NsayI7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JZGJnKCIlczogcG9ydD0lcCAoJTA4bHgpLCBjZmc9JXBcbiIsCi0JICAgIF9fZnVuY19fLCBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOwotCi0JLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KLQotCXVjb24gJj0gUzNDMjQxMl9VQ09OX0NMS01BU0s7Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgIHVjb24gfCBjZmctPnVjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7Ci0KLQkvKiByZXNldCBib3RoIGZpZm9zICovCi0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MTJfdWFydF9pbmYgPSB7Ci0JLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQxMiBVQVJUIiwKLQkudHlwZQkJPSBQT1JUX1MzQzI0MTIsCi0JLmZpZm9zaXplCT0gNjQsCi0JLnJ4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfUlhNQVNLLAotCS5yeF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9SWFNISUZULAotCS5yeF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1JYRlVMTCwKLQkudHhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9UWEZVTEwsCi0JLnR4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfVFhNQVNLLAotCS50eF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9UWFNISUZULAotCS5nZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlLAotCS5zZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfc2V0c291cmNlLAotCS5yZXNldF9wb3J0CT0gczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0LAotfTsKLQotLyogZGV2aWNlIG1hbmFnZW1lbnQgKi8KLQotc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JZGJnKCJzM2MyNDQwX3NlcmlhbF9wcm9iZTogZGV2PSVwXG4iLCBkZXYpOwotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDEyX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQxMl9zZXJpYWxfZHJ2ID0gewotCS5wcm9iZQkJPSBzM2MyNDEyX3NlcmlhbF9wcm9iZSwKLQkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKLQkuc3VzcGVuZAk9IHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQsCi0JLnJlc3VtZQkJPSBzM2MyNHh4X3NlcmlhbF9yZXN1bWUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInMzYzI0MTItdWFydCIsCi0JCS5vd25lcgk9IFRISVNfTU9EVUxFLAotCX0sCi19OwotCi0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0MTJfc2VyaWFsX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQxMl9zZXJpYWxfZHJ2LCAmczNjMjQxMl91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDEyX3NlcmlhbF9leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnMzYzI0MTJfc2VyaWFsX2Rydik7Ci19Ci0KLSNkZWZpbmUgczNjMjQxMl91YXJ0X2luZl9hdCAmczNjMjQxMl91YXJ0X2luZgotI2Vsc2UKLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMl9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMl9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MTJfdWFydF9pbmZfYXQgTlVMTAotI2VuZGlmIC8qIENPTkZJR19DUFVfUzNDMjQ0MCAqLwotCi0KLS8qIG1vZHVsZSBpbml0aWFsaXNhdGlvbiBjb2RlICovCi0KLXN0YXRpYyBpbnQgX19pbml0IHMzYzI0eHhfc2VyaWFsX21vZGluaXQodm9pZCkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gdWFydF9yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOwotCWlmIChyZXQgPCAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIFVBUlQgZHJpdmVyXG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCXMzYzI0MDBfc2VyaWFsX2luaXQoKTsKLQlzM2MyNDEwX3NlcmlhbF9pbml0KCk7Ci0JczNjMjQxMl9zZXJpYWxfaW5pdCgpOwotCXMzYzI0NDBfc2VyaWFsX2luaXQoKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgczNjMjR4eF9zZXJpYWxfbW9kZXhpdCh2b2lkKQotewotCXMzYzI0MDBfc2VyaWFsX2V4aXQoKTsKLQlzM2MyNDEwX3NlcmlhbF9leGl0KCk7Ci0JczNjMjQxMl9zZXJpYWxfZXhpdCgpOwotCXMzYzI0NDBfc2VyaWFsX2V4aXQoKTsKLQotCXVhcnRfdW5yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOwotfQotCi0KLW1vZHVsZV9pbml0KHMzYzI0eHhfc2VyaWFsX21vZGluaXQpOwotbW9kdWxlX2V4aXQoczNjMjR4eF9zZXJpYWxfbW9kZXhpdCk7Ci0KLS8qIENvbnNvbGUgY29kZSAqLwotCi0jaWZkZWYgQ09ORklHX1NFUklBTF9TM0MyNDEwX0NPTlNPTEUKLQotc3RhdGljIHN0cnVjdCB1YXJ0X3BvcnQgKmNvbnNfdWFydDsKLQotc3RhdGljIGludAotczNjMjR4eF9zZXJpYWxfY29uc29sZV90eHJkeShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgdWZjb24pCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7Ci0JdW5zaWduZWQgbG9uZyB1ZnN0YXQsIHV0cnN0YXQ7Ci0KLQlpZiAodWZjb24gJiBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFKSB7Ci0JCS8qIGZpZm8gbW9kZSAtIGNoZWNrIGFtbW91bnQgb2YgZGF0YSBpbiBmaWZvIHJlZ2lzdGVycy4uLiAqLwotCi0JCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCQlyZXR1cm4gKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9mdWxsKSA/IDAgOiAxOwotCX0KLQotCS8qIGluIG5vbi1maWZvIG1vZGUsIHdlIGdvIGFuZCB1c2UgdGhlIHR4IGJ1ZmZlciBlbXB0eSAqLwotCi0JdXRyc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKTsKLQlyZXR1cm4gKHV0cnN0YXQgJiBTM0MyNDEwX1VUUlNUQVRfVFhFKSA/IDEgOiAwOwotfQotCi1zdGF0aWMgdm9pZAotczNjMjR4eF9zZXJpYWxfY29uc29sZV9wdXRjaGFyKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBjaCkKLXsKLQl1bnNpZ25lZCBpbnQgdWZjb24gPSByZF9yZWdsKGNvbnNfdWFydCwgUzNDMjQxMF9VRkNPTik7Ci0Jd2hpbGUgKCFzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3R4cmR5KHBvcnQsIHVmY29uKSkKLQkJYmFycmllcigpOwotCXdyX3JlZ2IoY29uc191YXJ0LCBTM0MyNDEwX1VUWEgsIGNoKTsKLX0KLQotc3RhdGljIHZvaWQKLXMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfd3JpdGUoc3RydWN0IGNvbnNvbGUgKmNvLCBjb25zdCBjaGFyICpzLAotCQkJICAgICB1bnNpZ25lZCBpbnQgY291bnQpCi17Ci0JdWFydF9jb25zb2xlX3dyaXRlKGNvbnNfdWFydCwgcywgY291bnQsIHMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfcHV0Y2hhcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdAotczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50ICpiYXVkLAotCQkJICAgaW50ICpwYXJpdHksIGludCAqYml0cykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyBjbGtzcmM7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXVuc2lnbmVkIGludCB1bGNvbjsKLQl1bnNpZ25lZCBpbnQgdWNvbjsKLQl1bnNpZ25lZCBpbnQgdWJyZGl2OwotCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQotCXVsY29uICA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTik7Ci0JdWNvbiAgID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCXVicmRpdiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQlJESVYpOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9uczogcG9ydD0lcFxuIgotCSAgICAicmVnaXN0ZXJzOiB1bGNvbj0lMDh4LCB1Y29uPSUwOHgsIHViZHJpdj0lMDh4XG4iLAotCSAgICBwb3J0LCB1bGNvbiwgdWNvbiwgdWJyZGl2KTsKLQotCWlmICgodWNvbiAmIDB4ZikgIT0gMCkgewotCQkvKiBjb25zaWRlciB0aGUgc2VyaWFsIHBvcnQgY29uZmlndXJlZCBpZiB0aGUgdHgvcnggbW9kZSBzZXQgKi8KLQotCQlzd2l0Y2ggKHVsY29uICYgUzNDMjQxMF9MQ09OX0NTTUFTSykgewotCQljYXNlIFMzQzI0MTBfTENPTl9DUzU6Ci0JCQkqYml0cyA9IDU7Ci0JCQlicmVhazsKLQkJY2FzZSBTM0MyNDEwX0xDT05fQ1M2OgotCQkJKmJpdHMgPSA2OwotCQkJYnJlYWs7Ci0JCWNhc2UgUzNDMjQxMF9MQ09OX0NTNzoKLQkJCSpiaXRzID0gNzsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQljYXNlIFMzQzI0MTBfTENPTl9DUzg6Ci0JCQkqYml0cyA9IDg7Ci0JCQlicmVhazsKLQkJfQotCi0JCXN3aXRjaCAodWxjb24gJiBTM0MyNDEwX0xDT05fUE1BU0spIHsKLQkJY2FzZSBTM0MyNDEwX0xDT05fUEVWRU46Ci0JCQkqcGFyaXR5ID0gJ2UnOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBTM0MyNDEwX0xDT05fUE9ERDoKLQkJCSpwYXJpdHkgPSAnbyc7Ci0JCQlicmVhazsKLQotCQljYXNlIFMzQzI0MTBfTENPTl9QTk9ORToKLQkJZGVmYXVsdDoKLQkJCSpwYXJpdHkgPSAnbic7Ci0JCX0KLQotCQkvKiBub3cgY2FsY3VsYXRlIHRoZSBiYXVkIHJhdGUgKi8KLQotCQlzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2UocG9ydCwgJmNsa3NyYyk7Ci0KLQkJY2xrID0gY2xrX2dldChwb3J0LT5kZXYsIGNsa3NyYy5uYW1lKTsKLQkJaWYgKCFJU19FUlIoY2xrKSAmJiBjbGsgIT0gTlVMTCkKLQkJCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrKSAvIGNsa3NyYy5kaXZpc29yOwotCQllbHNlCi0JCQlyYXRlID0gMTsKLQotCi0JCSpiYXVkID0gcmF0ZSAvICggMTYgKiAodWJyZGl2ICsgMSkpOwotCQlkYmcoImNhbGN1bGF0ZWQgYmF1ZCAlZFxuIiwgKmJhdWQpOwotCX0KLQotfQotCi0vKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzCi0gKgotICogaW5pdGlhbGlzZSB0aGUgc2VyaWFsIHBvcnRzIGZyb20gdGhlIG1hY2hpbmUgcHJvdmlkZWQgaW5pdGlhbGlzYXRpb24KLSAqIGRhdGEuCi0qLwotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHMoc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqcHRyID0gczNjMjR4eF9zZXJpYWxfcG9ydHM7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqKnBsYXRkZXZfcHRyOwotCWludCBpOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzOiBpbml0aWFsaXNpbmcgcG9ydHMuLi5cbiIpOwotCi0JcGxhdGRldl9wdHIgPSBzM2MyNHh4X3VhcnRfZGV2czsKLQotCWZvciAoaSA9IDA7IGkgPCBOUl9QT1JUUzsgaSsrLCBwdHIrKywgcGxhdGRldl9wdHIrKykgewotCQlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQocHRyLCBpbmZvLCAqcGxhdGRldl9wdHIpOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IF9faW5pdAotczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cChzdHJ1Y3QgY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpCi17Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydDsKLQlpbnQgYmF1ZCA9IDk2MDA7Ci0JaW50IGJpdHMgPSA4OwotCWludCBwYXJpdHkgPSAnbic7Ci0JaW50IGZsb3cgPSAnbic7Ci0KLQlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IGNvPSVwICglZCksICVzXG4iLAotCSAgICBjbywgY28tPmluZGV4LCBvcHRpb25zKTsKLQotCS8qIGlzIHRoaXMgYSB2YWxpZCBwb3J0ICovCi0KLQlpZiAoY28tPmluZGV4ID09IC0xIHx8IGNvLT5pbmRleCA+PSBOUl9QT1JUUykKLQkJY28tPmluZGV4ID0gMDsKLQotCXBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbY28tPmluZGV4XS5wb3J0OwotCi0JLyogaXMgdGhlIHBvcnQgY29uZmlndXJlZD8gKi8KLQotCWlmIChwb3J0LT5tYXBiYXNlID09IDB4MCkgewotCQljby0+aW5kZXggPSAwOwotCQlwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW2NvLT5pbmRleF0ucG9ydDsKLQl9Ci0KLQljb25zX3VhcnQgPSBwb3J0OwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBwb3J0PSVwICglZClcbiIsIHBvcnQsIGNvLT5pbmRleCk7Ci0KLQkvKgotCSAqIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCB1YXJ0IG51bWJlciBoYXMgYmVlbiBzcGVjaWZpZWQsIGFuZAotCSAqIGlmIHNvLCBzZWFyY2ggZm9yIHRoZSBmaXJzdCBhdmFpbGFibGUgcG9ydCB0aGF0IGRvZXMgaGF2ZQotCSAqIGNvbnNvbGUgc3VwcG9ydC4KLQkgKi8KLQlpZiAob3B0aW9ucykKLQkJdWFydF9wYXJzZV9vcHRpb25zKG9wdGlvbnMsICZiYXVkLCAmcGFyaXR5LCAmYml0cywgJmZsb3cpOwotCWVsc2UKLQkJczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnMocG9ydCwgJmJhdWQsICZwYXJpdHksICZiaXRzKTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogYmF1ZCAlZFxuIiwgYmF1ZCk7Ci0KLQlyZXR1cm4gdWFydF9zZXRfb3B0aW9ucyhwb3J0LCBjbywgYmF1ZCwgcGFyaXR5LCBiaXRzLCBmbG93KTsKLX0KLQotLyogczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUKLSAqCi0gKiBpbml0aWFsaXNlIHRoZSBjb25zb2xlIGZyb20gb25lIG9mIHRoZSB1YXJ0IGRyaXZlcnMKLSovCi0KLXN0YXRpYyBzdHJ1Y3QgY29uc29sZSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlID0KLXsKLQkubmFtZQkJPSBTM0MyNFhYX1NFUklBTF9OQU1FLAotCS5kZXZpY2UJCT0gdWFydF9jb25zb2xlX2RldmljZSwKLQkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSLAotCS5pbmRleAkJPSAtMSwKLQkud3JpdGUJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZSwKLQkuc2V0dXAJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cAotfTsKLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZSh2b2lkKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbzsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYgPSBzM2MyNHh4X3VhcnRfZGV2c1swXTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGVcbiIpOwotCi0JLyogc2VsZWN0IGRyaXZlciBiYXNlZCBvbiB0aGUgY3B1ICovCi0KLQlpZiAoZGV2ID09IE5VTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkZXZpY2VzIGZvciBjb25zb2xlIGluaXRcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoc3RyY21wKGRldi0+bmFtZSwgInMzYzI0MDAtdWFydCIpID09IDApIHsKLQkJaW5mbyA9IHMzYzI0MDBfdWFydF9pbmZfYXQ7Ci0JfSBlbHNlIGlmIChzdHJjbXAoZGV2LT5uYW1lLCAiczNjMjQxMC11YXJ0IikgPT0gMCkgewotCQlpbmZvID0gczNjMjQxMF91YXJ0X2luZl9hdDsKLQl9IGVsc2UgaWYgKHN0cmNtcChkZXYtPm5hbWUsICJzM2MyNDQwLXVhcnQiKSA9PSAwKSB7Ci0JCWluZm8gPSBzM2MyNDQwX3VhcnRfaW5mX2F0OwotCX0gZWxzZSBpZiAoc3RyY21wKGRldi0+bmFtZSwgInMzYzI0MTItdWFydCIpID09IDApIHsKLQkJaW5mbyA9IHMzYzI0MTJfdWFydF9pbmZfYXQ7Ci0JfSBlbHNlIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkcml2ZXIgZm9yICVzXG4iLCBkZXYtPm5hbWUpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoaW5mbyA9PSBOVUxMKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiczNjMjR4eDogbm8gZHJpdmVyIGZvciBjb25zb2xlXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JczNjMjR4eF9zZXJpYWxfY29uc29sZS5kYXRhID0gJnMzYzI0eHhfdWFydF9kcnY7Ci0JczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0cyhpbmZvKTsKLQotCXJlZ2lzdGVyX2NvbnNvbGUoJnMzYzI0eHhfc2VyaWFsX2NvbnNvbGUpOwotCXJldHVybiAwOwotfQotCi1jb25zb2xlX2luaXRjYWxsKHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKTsKLQotI2VuZGlmIC8qIENPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFICovCi0KLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiU2Ftc3VuZyBTM0MyNDEwL1MzQzI0NDAvUzNDMjQxMiBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQwMC11YXJ0Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQxMCBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CiBNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTAtdWFydCIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDEyLXVhcnQiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQ0MC11YXJ0Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDEyLmMgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDEyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UwYzIyMAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTIuYwpAQCAtMCwwICsxLDE1MSBAQAorLyogbGludXgvZHJpdmVycy9zZXJpYWwvczNjMjQxMi5jCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFMzQzI0MTIgYW5kIFMzQzI0MTMgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisKKyNpbmNsdWRlIDxhc20vaXJxLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworI2luY2x1ZGUgInNhbXN1bmcuaCIKKworc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJdWNvbiAmPSB+UzNDMjQxMl9VQ09OX0NMS01BU0s7CisKKwlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOworCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKKwllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAidXN5c2NsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQxMl9VQ09OX1VTWVNDTEs7CisJZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKworCXN3aXRjaCAodWNvbiAmIFMzQzI0MTJfVUNPTl9DTEtNQVNLKSB7CisJY2FzZSBTM0MyNDEyX1VDT05fVUNMSzoKKwkJY2xrLT5kaXZpc29yID0gMTsKKwkJY2xrLT5uYW1lID0gInVjbGsiOworCQlicmVhazsKKworCWNhc2UgUzNDMjQxMl9VQ09OX1BDTEs6CisJY2FzZSBTM0MyNDEyX1VDT05fUENMSzI6CisJCWNsay0+ZGl2aXNvciA9IDE7CisJCWNsay0+bmFtZSA9ICJwY2xrIjsKKwkJYnJlYWs7CisKKwljYXNlIFMzQzI0MTJfVUNPTl9VU1lTQ0xLOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAidXN5c2NsayI7CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJZGJnKCIlczogcG9ydD0lcCAoJTA4bHgpLCBjZmc9JXBcbiIsCisJICAgIF9fZnVuY19fLCBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOworCisJLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KKworCXVjb24gJj0gUzNDMjQxMl9VQ09OX0NMS01BU0s7CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgIHVjb24gfCBjZmctPnVjb24pOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7CisKKwkvKiByZXNldCBib3RoIGZpZm9zICovCisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MTJfdWFydF9pbmYgPSB7CisJLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQxMiBVQVJUIiwKKwkudHlwZQkJPSBQT1JUX1MzQzI0MTIsCisJLmZpZm9zaXplCT0gNjQsCisJLnJ4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfUlhNQVNLLAorCS5yeF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9SWFNISUZULAorCS5yeF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1JYRlVMTCwKKwkudHhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9UWEZVTEwsCisJLnR4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfVFhNQVNLLAorCS50eF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9UWFNISUZULAorCS5nZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlLAorCS5zZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfc2V0c291cmNlLAorCS5yZXNldF9wb3J0CT0gczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0LAorfTsKKworLyogZGV2aWNlIG1hbmFnZW1lbnQgKi8KKworc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJZGJnKCJzM2MyNDQwX3NlcmlhbF9wcm9iZTogZGV2PSVwXG4iLCBkZXYpOworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDEyX3VhcnRfaW5mKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQxMl9zZXJpYWxfZHJ2ID0geworCS5wcm9iZQkJPSBzM2MyNDEyX3NlcmlhbF9wcm9iZSwKKwkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjQxMi11YXJ0IiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKK307CisKK3MzYzI0eHhfY29uc29sZV9pbml0KCZzM2MyNDEyX3NlcmlhbF9kcnYsICZzM2MyNDEyX3VhcnRfaW5mKTsKKworc3RhdGljIGlubGluZSBpbnQgczNjMjQxMl9zZXJpYWxfaW5pdCh2b2lkKQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDEyX3NlcmlhbF9kcnYsICZzM2MyNDEyX3VhcnRfaW5mKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MTJfc2VyaWFsX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQxMl9zZXJpYWxfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjQxMl9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDEyX3NlcmlhbF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJTYW1zdW5nIFMzQzI0MTIsUzNDMjQxMyBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTItdWFydCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvczNjMjQ0MC5jIGIvZHJpdmVycy9zZXJpYWwvczNjMjQ0MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Zjk1NGIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDQwLmMKQEAgLTAsMCArMSwxODEgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0NDAuYworICoKKyAqIERyaXZlciBmb3IgU2Ftc3VuZyBTM0MyNDQwIGFuZCBTM0MyNDQyIFNvQyBvbmJvYXJkIFVBUlRzLgorICoKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorCisjaW5jbHVkZSA8YXNtL2lycS5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJLyogdG9kbyAtIHByb3BlciBmY2xrPD5ub25mY2xrIHN3aXRjaC4gKi8KKworCXVjb24gJj0gflMzQzI0NDBfVUNPTl9DTEtNQVNLOworCisJaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1Y2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDQwX1VDT05fVUNMSzsKKwllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAicGNsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1BDTEs7CisJZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgImZjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9GQ0xLOworCWVsc2UgeworCQlwcmludGsoS0VSTl9FUlIgInVua25vd24gY2xvY2sgc291cmNlICVzXG4iLCBjbGstPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdW5zaWduZWQgbG9uZyB1Y29uMCwgdWNvbjEsIHVjb24yOworCisJc3dpdGNoICh1Y29uICYgUzNDMjQ0MF9VQ09OX0NMS01BU0spIHsKKwljYXNlIFMzQzI0NDBfVUNPTl9VQ0xLOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAidWNsayI7CisJCWJyZWFrOworCisJY2FzZSBTM0MyNDQwX1VDT05fUENMSzoKKwljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLMjoKKwkJY2xrLT5kaXZpc29yID0gMTsKKwkJY2xrLT5uYW1lID0gInBjbGsiOworCQlicmVhazsKKworCWNhc2UgUzNDMjQ0MF9VQ09OX0ZDTEs6CisJCS8qIHRoZSBmdW4gb2YgY2FsY3VsYXRpbmcgdGhlIHVhcnQgZGl2aXNvcnMgb24KKwkJICogdGhlIHMzYzI0NDAgKi8KKworCQl1Y29uMCA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDAgKyBTM0MyNDEwX1VDT04pOworCQl1Y29uMSA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDEgKyBTM0MyNDEwX1VDT04pOworCQl1Y29uMiA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDIgKyBTM0MyNDEwX1VDT04pOworCisJCXByaW50aygidWNvbnM6ICUwOGx4LCAlMDhseCwgJTA4bHhcbiIsIHVjb24wLCB1Y29uMSwgdWNvbjIpOworCisJCXVjb24wICY9IFMzQzI0NDBfVUNPTjBfRElWTUFTSzsKKwkJdWNvbjEgJj0gUzNDMjQ0MF9VQ09OMV9ESVZNQVNLOworCQl1Y29uMiAmPSBTM0MyNDQwX1VDT04yX0RJVk1BU0s7CisKKwkJaWYgKHVjb24wICE9IDApIHsKKwkJCWNsay0+ZGl2aXNvciA9IHVjb24wID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKKwkJCWNsay0+ZGl2aXNvciArPSA2OworCQl9IGVsc2UgaWYgKHVjb24xICE9IDApIHsKKwkJCWNsay0+ZGl2aXNvciA9IHVjb24xID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKKwkJCWNsay0+ZGl2aXNvciArPSAyMTsKKwkJfSBlbHNlIGlmICh1Y29uMiAhPSAwKSB7CisJCQljbGstPmRpdmlzb3IgPSB1Y29uMiA+PiBTM0MyNDQwX1VDT05fRElWU0hJRlQ7CisJCQljbGstPmRpdmlzb3IgKz0gMzY7CisJCX0gZWxzZSB7CisJCQkvKiBtYW51YWwgY2FsaW1zIDQ0LCBzZWVtcyB0byBiZSA5ICovCisJCQljbGstPmRpdmlzb3IgPSA5OworCQl9CisKKwkJY2xrLT5uYW1lID0gImZjbGsiOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKworCWRiZygiczNjMjQ0MF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKKwkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKKworCS8qIGVuc3VyZSB3ZSBkb24ndCBjaGFuZ2UgdGhlIGNsb2NrIHNldHRpbmdzLi4uICovCisKKwl1Y29uICY9IChTM0MyNDQwX1VDT04wX0RJVk1BU0sgfCAoMzw8MTApKTsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKKworCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQ0MF91YXJ0X2luZiA9IHsKKwkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDQwIFVBUlQiLAorCS50eXBlCQk9IFBPUlRfUzNDMjQ0MCwKKwkuZmlmb3NpemUJPSA2NCwKKwkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCisJLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCisJLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAorCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKKwkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCisJLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCisJLmdldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2UsCisJLnNldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2UsCisJLnJlc2V0X3BvcnQJPSBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQsCit9OworCisvKiBkZXZpY2UgbWFuYWdlbWVudCAqLworCitzdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0NDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDQwX3NlcmlhbF9kcnYgPSB7CisJLnByb2JlCQk9IHMzYzI0NDBfc2VyaWFsX3Byb2JlLAorCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJzM2MyNDQwLXVhcnQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorfTsKKworczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0NDBfc2VyaWFsX2RydiwgJnMzYzI0NDBfdWFydF9pbmYpOworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNDQwX3NlcmlhbF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0NDBfc2VyaWFsX2RydiwgJnMzYzI0NDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgczNjMjQ0MF9zZXJpYWxfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDQwX3NlcmlhbF9kcnYpOworfQorCittb2R1bGVfaW5pdChzM2MyNDQwX3NlcmlhbF9pbml0KTsKK21vZHVsZV9leGl0KHMzYzI0NDBfc2VyaWFsX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQ0MCxTM0MyNDQyIFNvQyBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUExpIHYyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0NDAtdWFydCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5jIGIvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhM2VjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmMKQEAgLTAsMCArMSwxMzE3IEBACisvKiBsaW51eC9kcml2ZXJzL3NlcmlhbC9zYW1zdWluZy5jCisgKgorICogRHJpdmVyIGNvcmUgZm9yIFNhbXN1bmcgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworLyogSG90ZSBvbiAyNDEwIGVycm9yIGhhbmRsaW5nCisgKgorICogVGhlIHMzYzI0MTAgbWFudWFsIGhhcyBhIGxvdmUvaGF0ZSBhZmZhaXIgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlCisgKiBVRVJTVEFUIHJlZ2lzdGVyIGluIHRoZSBVQVJUIGJsb2NrcywgYW5kIGtlZXBzIG1hcmtpbmcgc29tZSBvZiB0aGUKKyAqIGVycm9yIGJpdHMgYXMgcmVzZXJ2ZWQuIEhhdmluZyBjaGVja2VkIHdpdGggdGhlIHMzYzI0MTB4MDEsCisgKiBpdCBjb3BlcyB3aXRoIEJSRUFLcyBwcm9wZXJseSwgc28gSSBhbSBoYXBweSB0byBpZ25vcmUgdGhlIFJFU0VSVkVECisgKiBmZWF0dXJlIGZyb20gdGhlIGxhdHRlciB2ZXJzaW9ucyBvZiB0aGUgbWFudWFsLgorICoKKyAqIElmIGl0IGJlY29tZXMgYXBhcnJlbnQgdGhhdCBsYXR0ZXIgdmVyc2lvbnMgb2YgdGhlIDI0MTAgcmVtb3ZlIHRoZXNlCisgKiBiaXRzLCB0aGVuIGFjdGlvbiB3aWxsIGhhdmUgdG8gYmUgdGFrZW4gdG8gZGlmZmVyZW50aWF0ZSB0aGUgdmVyc2lvbnMKKyAqIGFuZCBjaGFuZ2UgdGhlIHBvbGljeSBvbiBCUkVBSworICoKKyAqIEJKRCwgMDQtTm92LTIwMDQKKyovCisKKyNpZiBkZWZpbmVkKENPTkZJR19TRVJJQUxfU0FNU1VOR19DT05TT0xFKSAmJiBkZWZpbmVkKENPTkZJR19NQUdJQ19TWVNSUSkKKyNkZWZpbmUgU1VQUE9SVF9TWVNSUQorI2VuZGlmCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKKy8qIFVBUlQgbmFtZSBhbmQgZGV2aWNlIGRlZmluaXRpb25zICovCisKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfTkFNRQkidHR5U0FDIgorI2RlZmluZSBTM0MyNFhYX1NFUklBTF9NQUpPUgkyMDQKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfTUlOT1IJNjQKKworLyogd2UgY2FuIHN1cHBvcnQgMyB1YXJ0cywgYnV0IG5vdCBhbHdheXMgdXNlIHRoZW0gKi8KKworI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAorI2RlZmluZSBOUl9QT1JUUyAoMikKKyNlbHNlCisjZGVmaW5lIE5SX1BPUlRTICgzKQorI2VuZGlmCisKKy8qIHBvcnQgaXJxIG51bWJlcnMgKi8KKworI2RlZmluZSBUWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxICsgMSkKKyNkZWZpbmUgUlhfSVJRKHBvcnQpICgocG9ydCktPmlycSkKKworLyogbWFjcm9zIHRvIGNoYW5nZSBvbmUgdGhpbmcgdG8gYW5vdGhlciAqLworCisjZGVmaW5lIHR4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzBdKQorI2RlZmluZSByeF9lbmFibGVkKHBvcnQpICgocG9ydCktPnVudXNlZFsxXSkKKworLyogZmxhZyB0byBpZ25vcmUgYWxsIGNoYXJhY3RlcnMgY29tbWluZyBpbiAqLworI2RlZmluZSBSWFNUQVRfRFVNTVlfUkVBRCAoMHgxMDAwMDAwMCkKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnRvX291cnBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCwgcG9ydCk7Cit9CisKKy8qIHRyYW5zbGF0ZSBhIHBvcnQgdG8gdGhlIGRldmljZSBuYW1lICovCisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gdG9fcGxhdGZvcm1fZGV2aWNlKHBvcnQtPmRldiktPm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gKHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKSAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCB1Y29uLCB1ZmNvbjsKKwlpbnQgY291bnQgPSAxMDAwMDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwl3aGlsZSAoLS1jb3VudCAmJiAhczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCkpCisJCXVkZWxheSgxMDApOworCisJdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOworCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKKworCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdWNvbiB8PSBTM0MyNDEwX1VDT05fUlhJUlFNT0RFOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKworCXJ4X2VuYWJsZWQocG9ydCkgPSAxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IHVjb247CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworCisJdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKwl1Y29uICY9IH5TM0MyNDEwX1VDT05fUlhJUlFNT0RFOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKworCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmICh0eF9lbmFibGVkKHBvcnQpKSB7CisJCWRpc2FibGVfaXJxKFRYX0lSUShwb3J0KSk7CisJCXR4X2VuYWJsZWQocG9ydCkgPSAwOworCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQorCQkJczNjMjR4eF9zZXJpYWxfcnhfZW5hYmxlKHBvcnQpOworCX0KK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlpZiAoIXR4X2VuYWJsZWQocG9ydCkpIHsKKwkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykKKwkJCXMzYzI0eHhfc2VyaWFsX3J4X2Rpc2FibGUocG9ydCk7CisKKwkJZW5hYmxlX2lycShUWF9JUlEocG9ydCkpOworCQl0eF9lbmFibGVkKHBvcnQpID0gMTsKKwl9Cit9CisKKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF9yeChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmIChyeF9lbmFibGVkKHBvcnQpKSB7CisJCWRiZygiczNjMjR4eF9zZXJpYWxfc3RvcF9yeDogcG9ydD0lcFxuIiwgcG9ydCk7CisJCWRpc2FibGVfaXJxKFJYX0lSUShwb3J0KSk7CisJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCX0KK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfZW5hYmxlX21zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICpzM2MyNHh4X3BvcnRfdG9faW5mbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXJldHVybiB0b19vdXJwb3J0KHBvcnQpLT5pbmZvOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKnMzYzI0eHhfcG9ydF90b19jZmcoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlpZiAocG9ydC0+ZGV2ID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopcG9ydC0+ZGV2LT5wbGF0Zm9ybV9kYXRhOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyB1ZnN0YXQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gb3VycG9ydC0+aW5mbzsKKworCWlmICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvZnVsbCkKKwkJcmV0dXJuIGluZm8tPmZpZm9zaXplOworCisJcmV0dXJuICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvbWFzaykgPj4gaW5mby0+cnhfZmlmb3NoaWZ0OworfQorCisKKy8qID8gLSB3aGVyZSBoYXMgcGFyaXR5IGdvbmU/PyAqLworI2RlZmluZSBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZICgweDEwMDApCisKK3N0YXRpYyBpcnFyZXR1cm5fdAorczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IGRldl9pZDsKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPmluZm8tPnR0eTsKKwl1bnNpZ25lZCBpbnQgdWZjb24sIGNoLCBmbGFnLCB1ZnN0YXQsIHVlcnN0YXQ7CisJaW50IG1heF9jb3VudCA9IDY0OworCisJd2hpbGUgKG1heF9jb3VudC0tID4gMCkgeworCQl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7CisJCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOworCisJCWlmIChzM2MyNHh4X3NlcmlhbF9yeF9maWZvY250KG91cnBvcnQsIHVmc3RhdCkgPT0gMCkKKwkJCWJyZWFrOworCisJCXVlcnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUVSU1RBVCk7CisJCWNoID0gcmRfcmVnYihwb3J0LCBTM0MyNDEwX1VSWEgpOworCisJCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKKwkJCWludCB0eGUgPSBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KTsKKworCQkJaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKKwkJCQlpZiAoIXR4ZSkgeworCQkJCQlyeF9lbmFibGVkKHBvcnQpID0gMDsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAodHhlKSB7CisJCQkJCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKKwkJCQkJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCB1ZmNvbik7CisJCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAxOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKworCQkvKiBpbnNlcnQgdGhlIGNoYXJhY3RlciBpbnRvIHRoZSBidWZmZXIgKi8KKworCQlmbGFnID0gVFRZX05PUk1BTDsKKwkJcG9ydC0+aWNvdW50LnJ4Kys7CisKKwkJaWYgKHVubGlrZWx5KHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQU5ZKSkgeworCQkJZGJnKCJyeGVycjogcG9ydCBjaD0weCUwMngsIHJ4cz0weCUwOHhcbiIsCisJCQkgICAgY2gsIHVlcnN0YXQpOworCisJCQkvKiBjaGVjayBmb3IgYnJlYWsgKi8KKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKSB7CisJCQkJZGJnKCJicmVhayFcbiIpOworCQkJCXBvcnQtPmljb3VudC5icmsrKzsKKwkJCQlpZiAodWFydF9oYW5kbGVfYnJlYWsocG9ydCkpCisJCQkJICAgIGdvdG8gaWdub3JlX2NoYXI7CisJCQl9CisKKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0ZSQU1FKQorCQkJCXBvcnQtPmljb3VudC5mcmFtZSsrOworCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTikKKwkJCQlwb3J0LT5pY291bnQub3ZlcnJ1bisrOworCisJCQl1ZXJzdGF0ICY9IHBvcnQtPnJlYWRfc3RhdHVzX21hc2s7CisKKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKQorCQkJCWZsYWcgPSBUVFlfQlJFQUs7CisJCQllbHNlIGlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX1BBUklUWSkKKwkJCQlmbGFnID0gVFRZX1BBUklUWTsKKwkJCWVsc2UgaWYgKHVlcnN0YXQgJiAoUzNDMjQxMF9VRVJTVEFUX0ZSQU1FIHwKKwkJCQkJICAgIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKSkKKwkJCQlmbGFnID0gVFRZX0ZSQU1FOworCQl9CisKKwkJaWYgKHVhcnRfaGFuZGxlX3N5c3JxX2NoYXIocG9ydCwgY2gpKQorCQkJZ290byBpZ25vcmVfY2hhcjsKKworCQl1YXJ0X2luc2VydF9jaGFyKHBvcnQsIHVlcnN0YXQsIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOLAorCQkJCSBjaCwgZmxhZyk7CisKKyBpZ25vcmVfY2hhcjoKKwkJY29udGludWU7CisJfQorCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisKKyBvdXQ6CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMoaW50IGlycSwgdm9pZCAqaWQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gaWQ7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OworCXN0cnVjdCBjaXJjX2J1ZiAqeG1pdCA9ICZwb3J0LT5pbmZvLT54bWl0OworCWludCBjb3VudCA9IDI1NjsKKworCWlmIChwb3J0LT54X2NoYXIpIHsKKwkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHBvcnQtPnhfY2hhcik7CisJCXBvcnQtPmljb3VudC50eCsrOworCQlwb3J0LT54X2NoYXIgPSAwOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiBpZiB0aGVyZSBpc250IGFueXRoaW5nIG1vcmUgdG8gdHJhbnNtaXQsIG9yIHRoZSB1YXJ0IGlzIG5vdworCSAqIHN0b3BwZWQsIGRpc2FibGUgdGhlIHVhcnQgYW5kIGV4aXQKKwkqLworCisJaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSB8fCB1YXJ0X3R4X3N0b3BwZWQocG9ydCkpIHsKKwkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogdHJ5IGFuZCBkcmFpbiB0aGUgYnVmZmVyLi4uICovCisKKwl3aGlsZSAoIXVhcnRfY2lyY19lbXB0eSh4bWl0KSAmJiBjb3VudC0tID4gMCkgeworCQlpZiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCkgJiBvdXJwb3J0LT5pbmZvLT50eF9maWZvZnVsbCkKKwkJCWJyZWFrOworCisJCXdyX3JlZ2IocG9ydCwgUzNDMjQxMF9VVFhILCB4bWl0LT5idWZbeG1pdC0+dGFpbF0pOworCQl4bWl0LT50YWlsID0gKHhtaXQtPnRhaWwgKyAxKSAmIChVQVJUX1hNSVRfU0laRSAtIDEpOworCQlwb3J0LT5pY291bnQudHgrKzsKKwl9CisKKwlpZiAodWFydF9jaXJjX2NoYXJzX3BlbmRpbmcoeG1pdCkgPCBXQUtFVVBfQ0hBUlMpCisJCXVhcnRfd3JpdGVfd2FrZXVwKHBvcnQpOworCisJaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSkKKwkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKKworIG91dDoKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfdHhfZW1wdHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKwl1bnNpZ25lZCBsb25nIHVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOworCXVuc2lnbmVkIGxvbmcgdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOworCisJaWYgKHVmY29uICYgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkgeworCQlpZiAoKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9tYXNrKSAhPSAwIHx8CisJCSAgICAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpKQorCQkJcmV0dXJuIDA7CisKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOworfQorCisvKiBubyBtb2RlbSBjb250cm9sIGxpbmVzICovCitzdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGludCB1bXN0YXQgPSByZF9yZWdiKHBvcnQsIFMzQzI0MTBfVU1TVEFUKTsKKworCWlmICh1bXN0YXQgJiBTM0MyNDEwX1VNU1RBVF9DVFMpCisJCXJldHVybiBUSU9DTV9DQVIgfCBUSU9DTV9EU1IgfCBUSU9DTV9DVFM7CisJZWxzZQorCQlyZXR1cm4gVElPQ01fQ0FSIHwgVElPQ01fRFNSOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zZXRfbWN0cmwoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IG1jdHJsKQoreworCS8qIHRvZG8gLSBwb3NzaWJseSByZW1vdmUgQUZDIGFuZCBkbyBtYW51YWwgQ1RTICovCit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX2JyZWFrX2N0bChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgdWNvbjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwl1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJaWYgKGJyZWFrX3N0YXRlKQorCQl1Y29uIHw9IFMzQzI0MTBfVUNPTl9TQlJFQUs7CisJZWxzZQorCQl1Y29uICY9IH5TM0MyNDEwX1VDT05fU0JSRUFLOworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zaHV0ZG93bihzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlpZiAob3VycG9ydC0+dHhfY2xhaW1lZCkgeworCQlmcmVlX2lycShUWF9JUlEocG9ydCksIG91cnBvcnQpOworCQl0eF9lbmFibGVkKHBvcnQpID0gMDsKKwkJb3VycG9ydC0+dHhfY2xhaW1lZCA9IDA7CisJfQorCisJaWYgKG91cnBvcnQtPnJ4X2NsYWltZWQpIHsKKwkJZnJlZV9pcnEoUlhfSVJRKHBvcnQpLCBvdXJwb3J0KTsKKwkJb3VycG9ydC0+cnhfY2xhaW1lZCA9IDA7CisJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCX0KK30KKworCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCWludCByZXQ7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX3N0YXJ0dXA6IHBvcnQ9JXAgKCUwOGx4LCVwKVxuIiwKKwkgICAgcG9ydC0+bWFwYmFzZSwgcG9ydC0+bWVtYmFzZSk7CisKKwlyeF9lbmFibGVkKHBvcnQpID0gMTsKKworCXJldCA9IHJlcXVlc3RfaXJxKFJYX0lSUShwb3J0KSwKKwkJCSAgczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMsIDAsCisJCQkgIHMzYzI0eHhfc2VyaWFsX3BvcnRuYW1lKHBvcnQpLCBvdXJwb3J0KTsKKworCWlmIChyZXQgIT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgImNhbm5vdCBnZXQgaXJxICVkXG4iLCBSWF9JUlEocG9ydCkpOworCQlyZXR1cm4gcmV0OworCX0KKworCW91cnBvcnQtPnJ4X2NsYWltZWQgPSAxOworCisJZGJnKCJyZXF1ZXN0aW5nIHR4IGlycS4uLlxuIik7CisKKwl0eF9lbmFibGVkKHBvcnQpID0gMTsKKworCXJldCA9IHJlcXVlc3RfaXJxKFRYX0lSUShwb3J0KSwKKwkJCSAgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMsIDAsCisJCQkgIHMzYzI0eHhfc2VyaWFsX3BvcnRuYW1lKHBvcnQpLCBvdXJwb3J0KTsKKworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgZ2V0IGlycSAlZFxuIiwgVFhfSVJRKHBvcnQpKTsKKwkJZ290byBlcnI7CisJfQorCisJb3VycG9ydC0+dHhfY2xhaW1lZCA9IDE7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAgb2tcbiIpOworCisJLyogdGhlIHBvcnQgcmVzZXQgY29kZSBzaG91bGQgaGF2ZSBkb25lIHRoZSBjb3JyZWN0CisJICogcmVnaXN0ZXIgc2V0dXAgZm9yIHRoZSBwb3J0IGNvbnRyb2xzICovCisKKwlyZXR1cm4gcmV0OworCisgZXJyOgorCXMzYzI0eHhfc2VyaWFsX3NodXRkb3duKHBvcnQpOworCXJldHVybiByZXQ7Cit9CisKKy8qIHBvd2VyIHBvd2VyIG1hbmFnZW1lbnQgY29udHJvbCAqLworCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9wbShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgbGV2ZWwsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2xkKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSAzOgorCQlpZiAoIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSAmJiBvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwpCisJCQljbGtfZGlzYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKKworCQljbGtfZGlzYWJsZShvdXJwb3J0LT5jbGspOworCQlicmVhazsKKworCWNhc2UgMDoKKwkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOworCisJCWlmICghSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspICYmIG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCkKKwkJCWNsa19lbmFibGUob3VycG9ydC0+YmF1ZGNsayk7CisKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4X3NlcmlhbDogdW5rbm93biBwbSAlZFxuIiwgbGV2ZWwpOworCX0KK30KKworLyogYmF1ZCByYXRlIGNhbGN1bGF0aW9uCisgKgorICogVGhlIFVBUlRzIG9uIHRoZSBTM0MyNDEwL1MzQzI0NDAgY2FuIHRha2UgdGhlaXIgY2xvY2tzIGZyb20gYSBudW1iZXIKKyAqIG9mIGRpZmZlcmVudCBzb3VyY2VzLCBpbmNsdWRpbmcgdGhlIHBlcmlwaGVyYWwgY2xvY2sgKCJwY2xrIikgYW5kIGFuCisgKiBleHRlcm5hbCBjbG9jayAoInVjbGsiKS4gVGhlIFMzQzI0NDAgYWxzbyBhZGRzIHRoZSBjb3JlIGNsb2NrICgiZmNsayIpCisgKiB3aXRoIGEgcHJvZ3JhbW1hYmxlIGV4dHJhIGRpdmlzb3IuCisgKgorICogVGhlIGZvbGxvd2luZyBjb2RlIGdvZXMgdGhyb3VnaCB0aGUgY2xvY2sgc291cmNlcywgYW5kIGNhbGN1bGF0ZXMgdGhlCisgKiBiYXVkIGNsb2NrcyAoYW5kIHRoZSByZXN1bHRhbnQgYWN0dWFsIGJhdWQgcmF0ZXMpIGFuZCB0aGVuIHRyaWVzIHRvCisgKiBwaWNrIHRoZSBjbG9zZXN0IG9uZSBhbmQgc2VsZWN0IHRoYXQuCisgKgorKi8KKworCisjZGVmaW5lIE1BWF9DTEtTICg4KQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgdG1wX2Nsa3NyYyA9IHsKKwkubmFtZQkJPSAicGNsayIsCisJLm1pbl9iYXVkCT0gMCwKKwkubWF4X2JhdWQJPSAwLAorCS5kaXZpc29yCT0gMSwKK307CisKK3N0YXRpYyBpbmxpbmUgaW50CitzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmMpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlyZXR1cm4gKGluZm8tPmdldF9jbGtzcmMpKHBvcnQsIGMpOworfQorCitzdGF0aWMgaW5saW5lIGludAorczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCisJcmV0dXJuIChpbmZvLT5zZXRfY2xrc3JjKShwb3J0LCBjKTsKK30KKworc3RydWN0IGJhdWRfY2FsYyB7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMJKmNsa3NyYzsKKwl1bnNpZ25lZCBpbnQJCQkgY2FsYzsKKwl1bnNpZ25lZCBpbnQJCQkgcXVvdDsKKwlzdHJ1Y3QgY2xrCQkJKnNyYzsKK307CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQoc3RydWN0IGJhdWRfY2FsYyAqY2FsYywKKwkJCQkgICBzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGtzcmMsCisJCQkJICAgdW5zaWduZWQgaW50IGJhdWQpCit7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJY2FsYy0+c3JjID0gY2xrX2dldChwb3J0LT5kZXYsIGNsa3NyYy0+bmFtZSk7CisJaWYgKGNhbGMtPnNyYyA9PSBOVUxMIHx8IElTX0VSUihjYWxjLT5zcmMpKQorCQlyZXR1cm4gMDsKKworCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2FsYy0+c3JjKTsKKwlyYXRlIC89IGNsa3NyYy0+ZGl2aXNvcjsKKworCWNhbGMtPmNsa3NyYyA9IGNsa3NyYzsKKwljYWxjLT5xdW90ID0gKHJhdGUgKyAoOCAqIGJhdWQpKSAvICgxNiAqIGJhdWQpOworCWNhbGMtPmNhbGMgPSAocmF0ZSAvIChjYWxjLT5xdW90ICogMTYpKTsKKworCWNhbGMtPnF1b3QtLTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBzM2MyNHh4X3NlcmlhbF9nZXRjbGsoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkJICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqKmNsa3NyYywKKwkJCQkJICBzdHJ1Y3QgY2xrICoqY2xrLAorCQkJCQkgIHVuc2lnbmVkIGludCBiYXVkKQoreworCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZyA9IHMzYzI0eHhfcG9ydF90b19jZmcocG9ydCk7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3A7CisJc3RydWN0IGJhdWRfY2FsYyByZXNbTUFYX0NMS1NdOworCXN0cnVjdCBiYXVkX2NhbGMgKnJlc3B0ciwgKmJlc3QsICpzcHRyOworCWludCBpOworCisJY2xrcCA9IGNmZy0+Y2xvY2tzOworCWJlc3QgPSBOVUxMOworCisJaWYgKGNmZy0+Y2xvY2tzX3NpemUgPCAyKSB7CisJCWlmIChjZmctPmNsb2Nrc19zaXplID09IDApCisJCQljbGtwID0gJnRtcF9jbGtzcmM7CisKKwkJLyogY2hlY2sgdG8gc2VlIGlmIHdlJ3JlIHNvdXJjaW5nIGZjbGssIGFuZCBpZiBzbyB3ZSdyZQorCQkgKiBnb2luZyB0byBoYXZlIHRvIHVwZGF0ZSB0aGUgY2xvY2sgc291cmNlCisJCSAqLworCisJCWlmIChzdHJjbXAoY2xrcC0+bmFtZSwgImZjbGsiKSA9PSAwKSB7CisJCQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyBzcmM7CisKKwkJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmc3JjKTsKKworCQkJLyogY2hlY2sgdGhhdCB0aGUgcG9ydCBhbHJlYWR5IHVzaW5nIGZjbGssIGFuZCBpZgorCQkJICogbm90LCB0aGVuIHJlLXNlbGVjdCBmY2xrCisJCQkgKi8KKworCQkJaWYgKHN0cmNtcChzcmMubmFtZSwgY2xrcC0+bmFtZSkgPT0gMCkgeworCQkJCXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShwb3J0LCBjbGtwKTsKKwkJCQlzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2UocG9ydCwgJnNyYyk7CisJCQl9CisKKwkJCWNsa3AtPmRpdmlzb3IgPSBzcmMuZGl2aXNvcjsKKwkJfQorCisJCXMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHJlcywgcG9ydCwgY2xrcCwgYmF1ZCk7CisJCWJlc3QgPSByZXM7CisJCXJlc3B0ciA9IGJlc3QgKyAxOworCX0gZWxzZSB7CisJCXJlc3B0ciA9IHJlczsKKworCQlmb3IgKGkgPSAwOyBpIDwgY2ZnLT5jbG9ja3Nfc2l6ZTsgaSsrLCBjbGtwKyspIHsKKwkJCWlmIChzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChyZXNwdHIsIHBvcnQsIGNsa3AsIGJhdWQpKQorCQkJCXJlc3B0cisrOworCQl9CisJfQorCisJLyogb2ssIHdlIG5vdyBuZWVkIHRvIHNlbGVjdCB0aGUgYmVzdCBjbG9jayB3ZSBmb3VuZCAqLworCisJaWYgKCFiZXN0KSB7CisJCXVuc2lnbmVkIGludCBkZXZpYXRpb24gPSAoMTw8MzApfCgoMTw8MzApLTEpOworCQlpbnQgY2FsY19kZXZpYXRpb247CisKKwkJZm9yIChzcHRyID0gcmVzOyBzcHRyIDwgcmVzcHRyOyBzcHRyKyspIHsKKwkJCWNhbGNfZGV2aWF0aW9uID0gYmF1ZCAtIHNwdHItPmNhbGM7CisJCQlpZiAoY2FsY19kZXZpYXRpb24gPCAwKQorCQkJCWNhbGNfZGV2aWF0aW9uID0gLWNhbGNfZGV2aWF0aW9uOworCisJCQlpZiAoY2FsY19kZXZpYXRpb24gPCBkZXZpYXRpb24pIHsKKwkJCQliZXN0ID0gc3B0cjsKKwkJCQlkZXZpYXRpb24gPSBjYWxjX2RldmlhdGlvbjsKKwkJCX0KKwkJfQorCX0KKworCS8qIHN0b3JlIHJlc3VsdHMgdG8gcGFzcyBiYWNrICovCisKKwkqY2xrc3JjID0gYmVzdC0+Y2xrc3JjOworCSpjbGsgICAgPSBiZXN0LT5zcmM7CisKKwlyZXR1cm4gYmVzdC0+cXVvdDsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc2V0X3Rlcm1pb3Moc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgICAgc3RydWN0IGt0ZXJtaW9zICp0ZXJtaW9zLAorCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKm9sZCkKK3sKKwlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcgPSBzM2MyNHh4X3BvcnRfdG9fY2ZnKHBvcnQpOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3NyYyA9IE5VTEw7CisJc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBiYXVkLCBxdW90OworCXVuc2lnbmVkIGludCB1bGNvbjsKKwl1bnNpZ25lZCBpbnQgdW1jb247CisKKwkvKgorCSAqIFdlIGRvbid0IHN1cHBvcnQgbW9kZW0gY29udHJvbCBsaW5lcy4KKwkgKi8KKwl0ZXJtaW9zLT5jX2NmbGFnICY9IH4oSFVQQ0wgfCBDTVNQQVIpOworCXRlcm1pb3MtPmNfY2ZsYWcgfD0gQ0xPQ0FMOworCisJLyoKKwkgKiBBc2sgdGhlIGNvcmUgdG8gY2FsY3VsYXRlIHRoZSBkaXZpc29yIGZvciB1cy4KKwkgKi8KKworCWJhdWQgPSB1YXJ0X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCAwLCAxMTUyMDAqOCk7CisKKwlpZiAoYmF1ZCA9PSAzODQwMCAmJiAocG9ydC0+ZmxhZ3MgJiBVUEZfU1BEX01BU0spID09IFVQRl9TUERfQ1VTVCkKKwkJcXVvdCA9IHBvcnQtPmN1c3RvbV9kaXZpc29yOworCWVsc2UKKwkJcXVvdCA9IHMzYzI0eHhfc2VyaWFsX2dldGNsayhwb3J0LCAmY2xrc3JjLCAmY2xrLCBiYXVkKTsKKworCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSBuZWVkICB0byBjaGFuZ2UgY2xvY2sgc291cmNlICovCisKKwlpZiAob3VycG9ydC0+Y2xrc3JjICE9IGNsa3NyYyB8fCBvdXJwb3J0LT5iYXVkY2xrICE9IGNsaykgeworCQlzM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2UocG9ydCwgY2xrc3JjKTsKKworCQlpZiAob3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMICYmICFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykpIHsKKwkJCWNsa19kaXNhYmxlKG91cnBvcnQtPmJhdWRjbGspOworCQkJb3VycG9ydC0+YmF1ZGNsayAgPSBOVUxMOworCQl9CisKKwkJY2xrX2VuYWJsZShjbGspOworCisJCW91cnBvcnQtPmNsa3NyYyA9IGNsa3NyYzsKKwkJb3VycG9ydC0+YmF1ZGNsayA9IGNsazsKKwl9CisKKwlzd2l0Y2ggKHRlcm1pb3MtPmNfY2ZsYWcgJiBDU0laRSkgeworCWNhc2UgQ1M1OgorCQlkYmcoImNvbmZpZzogNWJpdHMvY2hhclxuIik7CisJCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNTsKKwkJYnJlYWs7CisJY2FzZSBDUzY6CisJCWRiZygiY29uZmlnOiA2Yml0cy9jaGFyXG4iKTsKKwkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M2OworCQlicmVhazsKKwljYXNlIENTNzoKKwkJZGJnKCJjb25maWc6IDdiaXRzL2NoYXJcbiIpOworCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzc7CisJCWJyZWFrOworCWNhc2UgQ1M4OgorCWRlZmF1bHQ6CisJCWRiZygiY29uZmlnOiA4Yml0cy9jaGFyXG4iKTsKKwkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M4OworCQlicmVhazsKKwl9CisKKwkvKiBwcmVzZXJ2ZSBvcmlnaW5hbCBsY29uIElSIHNldHRpbmdzICovCisJdWxjb24gfD0gKGNmZy0+dWxjb24gJiBTM0MyNDEwX0xDT05fSVJNKTsKKworCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgQ1NUT1BCKQorCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fU1RPUEI7CisKKwl1bWNvbiA9ICh0ZXJtaW9zLT5jX2NmbGFnICYgQ1JUU0NUUykgPyBTM0MyNDEwX1VNQ09NX0FGQyA6IDA7CisKKwlpZiAodGVybWlvcy0+Y19jZmxhZyAmIFBBUkVOQikgeworCQlpZiAodGVybWlvcy0+Y19jZmxhZyAmIFBBUk9ERCkKKwkJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QT0REOworCQllbHNlCisJCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUEVWRU47CisJfSBlbHNlIHsKKwkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BOT05FOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoInNldHRpbmcgdWxjb24gdG8gJTA4eCwgYnJkZGl2IHRvICVkXG4iLCB1bGNvbiwgcXVvdCk7CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIHVsY29uKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUJSRElWLCBxdW90KTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVU1DT04sIHVtY29uKTsKKworCWRiZygidWFydDogdWxjb24gPSAweCUwOHgsIHVjb24gPSAweCUwOHgsIHVmY29uID0gMHglMDh4XG4iLAorCSAgICByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04pLAorCSAgICByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiksCisJICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTikpOworCisJLyoKKwkgKiBVcGRhdGUgdGhlIHBlci1wb3J0IHRpbWVvdXQuCisJICovCisJdWFydF91cGRhdGVfdGltZW91dChwb3J0LCB0ZXJtaW9zLT5jX2NmbGFnLCBiYXVkKTsKKworCS8qCisJICogV2hpY2ggY2hhcmFjdGVyIHN0YXR1cyBmbGFncyBhcmUgd2UgaW50ZXJlc3RlZCBpbj8KKwkgKi8KKwlwb3J0LT5yZWFkX3N0YXR1c19tYXNrID0gUzNDMjQxMF9VRVJTVEFUX09WRVJSVU47CisJaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJTlBDSykKKwkJcG9ydC0+cmVhZF9zdGF0dXNfbWFzayB8PSBTM0MyNDEwX1VFUlNUQVRfRlJBTUUgfCBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZOworCisJLyoKKwkgKiBXaGljaCBjaGFyYWN0ZXIgc3RhdHVzIGZsYWdzIHNob3VsZCB3ZSBpZ25vcmU/CisJICovCisJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrID0gMDsKKwlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElHTlBBUikKKwkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOOworCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSUdOQlJLICYmIHRlcm1pb3MtPmNfaWZsYWcgJiBJR05QQVIpCisJCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBTM0MyNDEwX1VFUlNUQVRfRlJBTUU7CisKKwkvKgorCSAqIElnbm9yZSBhbGwgY2hhcmFjdGVycyBpZiBDUkVBRCBpcyBub3Qgc2V0LgorCSAqLworCWlmICgodGVybWlvcy0+Y19jZmxhZyAmIENSRUFEKSA9PSAwKQorCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUlhTVEFUX0RVTU1ZX1JFQUQ7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpzM2MyNHh4X3NlcmlhbF90eXBlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJc3dpdGNoIChwb3J0LT50eXBlKSB7CisJY2FzZSBQT1JUX1MzQzI0MTA6CisJCXJldHVybiAiUzNDMjQxMCI7CisJY2FzZSBQT1JUX1MzQzI0NDA6CisJCXJldHVybiAiUzNDMjQ0MCI7CisJY2FzZSBQT1JUX1MzQzI0MTI6CisJCXJldHVybiAiUzNDMjQxMiI7CisJZGVmYXVsdDoKKwkJcmV0dXJuIE5VTEw7CisJfQorfQorCisjZGVmaW5lIE1BUF9TSVpFICgweDEwMCkKKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcmVsZWFzZV9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJcmVsZWFzZV9tZW1fcmVnaW9uKHBvcnQtPm1hcGJhc2UsIE1BUF9TSVpFKTsKK30KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9yZXF1ZXN0X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwljb25zdCBjaGFyICpuYW1lID0gczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCk7CisJcmV0dXJuIHJlcXVlc3RfbWVtX3JlZ2lvbihwb3J0LT5tYXBiYXNlLCBNQVBfU0laRSwgbmFtZSkgPyAwIDogLUVCVVNZOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9jb25maWdfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlpZiAoZmxhZ3MgJiBVQVJUX0NPTkZJR19UWVBFICYmCisJICAgIHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydChwb3J0KSA9PSAwKQorCQlwb3J0LT50eXBlID0gaW5mby0+dHlwZTsKK30KKworLyoKKyAqIHZlcmlmeSB0aGUgbmV3IHNlcmlhbF9zdHJ1Y3QgKGZvciBUSU9DU1NFUklBTCkuCisgKi8KK3N0YXRpYyBpbnQKK3MzYzI0eHhfc2VyaWFsX3ZlcmlmeV9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzZXJpYWxfc3RydWN0ICpzZXIpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlpZiAoc2VyLT50eXBlICE9IFBPUlRfVU5LTk9XTiAmJiBzZXItPnR5cGUgIT0gaW5mby0+dHlwZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKworCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEUKKworc3RhdGljIHN0cnVjdCBjb25zb2xlIHMzYzI0eHhfc2VyaWFsX2NvbnNvbGU7CisKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfQ09OU09MRSAmczNjMjR4eF9zZXJpYWxfY29uc29sZQorI2Vsc2UKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfQ09OU09MRSBOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCB1YXJ0X29wcyBzM2MyNHh4X3NlcmlhbF9vcHMgPSB7CisJLnBtCQk9IHMzYzI0eHhfc2VyaWFsX3BtLAorCS50eF9lbXB0eQk9IHMzYzI0eHhfc2VyaWFsX3R4X2VtcHR5LAorCS5nZXRfbWN0cmwJPSBzM2MyNHh4X3NlcmlhbF9nZXRfbWN0cmwsCisJLnNldF9tY3RybAk9IHMzYzI0eHhfc2VyaWFsX3NldF9tY3RybCwKKwkuc3RvcF90eAk9IHMzYzI0eHhfc2VyaWFsX3N0b3BfdHgsCisJLnN0YXJ0X3R4CT0gczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgsCisJLnN0b3BfcngJPSBzM2MyNHh4X3NlcmlhbF9zdG9wX3J4LAorCS5lbmFibGVfbXMJPSBzM2MyNHh4X3NlcmlhbF9lbmFibGVfbXMsCisJLmJyZWFrX2N0bAk9IHMzYzI0eHhfc2VyaWFsX2JyZWFrX2N0bCwKKwkuc3RhcnR1cAk9IHMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAsCisJLnNodXRkb3duCT0gczNjMjR4eF9zZXJpYWxfc2h1dGRvd24sCisJLnNldF90ZXJtaW9zCT0gczNjMjR4eF9zZXJpYWxfc2V0X3Rlcm1pb3MsCisJLnR5cGUJCT0gczNjMjR4eF9zZXJpYWxfdHlwZSwKKwkucmVsZWFzZV9wb3J0CT0gczNjMjR4eF9zZXJpYWxfcmVsZWFzZV9wb3J0LAorCS5yZXF1ZXN0X3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9yZXF1ZXN0X3BvcnQsCisJLmNvbmZpZ19wb3J0CT0gczNjMjR4eF9zZXJpYWxfY29uZmlnX3BvcnQsCisJLnZlcmlmeV9wb3J0CT0gczNjMjR4eF9zZXJpYWxfdmVyaWZ5X3BvcnQsCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgczNjMjR4eF91YXJ0X2RydiA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLmRldl9uYW1lCT0gInMzYzI0MTBfc2VyaWFsIiwKKwkubnIJCT0gMywKKwkuY29ucwkJPSBTM0MyNFhYX1NFUklBTF9DT05TT0xFLAorCS5kcml2ZXJfbmFtZQk9IFMzQzI0WFhfU0VSSUFMX05BTUUsCisJLm1ham9yCQk9IFMzQzI0WFhfU0VSSUFMX01BSk9SLAorCS5taW5vcgkJPSBTM0MyNFhYX1NFUklBTF9NSU5PUiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgczNjMjR4eF9zZXJpYWxfcG9ydHNbTlJfUE9SVFNdID0geworCVswXSA9IHsKKwkJLnBvcnQgPSB7CisJCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1swXS5wb3J0LmxvY2spLAorCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgwLAorCQkJLnVhcnRjbGsJPSAwLAorCQkJLmZpZm9zaXplCT0gMTYsCisJCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCisJCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCQkubGluZQkJPSAwLAorCQl9CisJfSwKKwlbMV0gPSB7CisJCS5wb3J0ID0geworCQkJLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoczNjMjR4eF9zZXJpYWxfcG9ydHNbMV0ucG9ydC5sb2NrKSwKKwkJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCQkuaXJxCQk9IElSUV9TM0NVQVJUX1JYMSwKKwkJCS51YXJ0Y2xrCT0gMCwKKwkJCS5maWZvc2l6ZQk9IDE2LAorCQkJLm9wcwkJPSAmczNjMjR4eF9zZXJpYWxfb3BzLAorCQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAorCQkJLmxpbmUJCT0gMSwKKwkJfQorCX0sCisjaWYgTlJfUE9SVFMgPiAyCisKKwlbMl0gPSB7CisJCS5wb3J0ID0geworCQkJLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoczNjMjR4eF9zZXJpYWxfcG9ydHNbMl0ucG9ydC5sb2NrKSwKKwkJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCQkuaXJxCQk9IElSUV9TM0NVQVJUX1JYMiwKKwkJCS51YXJ0Y2xrCT0gMCwKKwkJCS5maWZvc2l6ZQk9IDE2LAorCQkJLm9wcwkJPSAmczNjMjR4eF9zZXJpYWxfb3BzLAorCQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAorCQkJLmxpbmUJCT0gMiwKKwkJfQorCX0KKyNlbmRpZgorfTsKKworLyogczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0CisgKgorICogd3JhcHBlciB0byBjYWxsIHRoZSBzcGVjaWZpYyByZXNldCBmb3IgdGhpcyBwb3J0IChyZXNldCB0aGUgZmlmb3MKKyAqIGFuZCB0aGUgc2V0dGluZ3MpCisqLworCitzdGF0aWMgaW5saW5lIGludCBzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkJICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCisJcmV0dXJuIChpbmZvLT5yZXNldF9wb3J0KShwb3J0LCBjZmcpOworfQorCisvKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQKKyAqCisgKiBpbml0aWFsaXNlIGEgc2luZ2xlIHNlcmlhbCBwb3J0IGZyb20gdGhlIHBsYXRmb3JtIGRldmljZSBnaXZlbgorICovCisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvLAorCQkJCSAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0ZGV2KQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKKwlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmc7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJaW50IHJldDsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBwb3J0PSVwLCBwbGF0ZGV2PSVwXG4iLCBwb3J0LCBwbGF0ZGV2KTsKKworCWlmIChwbGF0ZGV2ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCisJY2ZnID0gczNjMjR4eF9kZXZfdG9fY2ZnKCZwbGF0ZGV2LT5kZXYpOworCisJaWYgKHBvcnQtPm1hcGJhc2UgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY2ZnLT5od3BvcnQgPiAzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHNldHVwIGluZm8gZm9yIHBvcnQgKi8KKwlwb3J0LT5kZXYJPSAmcGxhdGRldi0+ZGV2OworCW91cnBvcnQtPmluZm8JPSBpbmZvOworCisJLyogY29weSB0aGUgaW5mbyBpbiBmcm9tIHByb3ZpZGVkIHN0cnVjdHVyZSAqLworCW91cnBvcnQtPnBvcnQuZmlmb3NpemUgPSBpbmZvLT5maWZvc2l6ZTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiAlcCAoaHcgJWQpLi4uXG4iLCBwb3J0LCBjZmctPmh3cG9ydCk7CisKKwlwb3J0LT51YXJ0Y2xrID0gMTsKKworCWlmIChjZmctPnVhcnRfZmxhZ3MgJiBVUEZfQ09OU19GTE9XKSB7CisJCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBlbmFibGluZyBmbG93IGNvbnRyb2xcbiIpOworCQlwb3J0LT5mbGFncyB8PSBVUEZfQ09OU19GTE9XOworCX0KKworCS8qIHNvcnQgb3VyIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzZXMgZm9yIGVhY2ggVUFSVCAqLworCisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBsYXRkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAocmVzID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gZmluZCBtZW1vcnkgcmVzb3VyY2UgZm9yIHVhcnRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkYmcoInJlc291cmNlICVwICglbHguLiVseClcbiIsIHJlcywgcmVzLT5zdGFydCwgcmVzLT5lbmQpOworCisJcG9ydC0+bWFwYmFzZQk9IHJlcy0+c3RhcnQ7CisJcG9ydC0+bWVtYmFzZQk9IFMzQzI0WFhfVkFfVUFSVCArIChyZXMtPnN0YXJ0IC0gUzNDMjRYWF9QQV9VQVJUKTsKKwlyZXQgPSBwbGF0Zm9ybV9nZXRfaXJxKHBsYXRkZXYsIDApOworCWlmIChyZXQgPCAwKQorCQlwb3J0LT5pcnEgPSAwOworCWVsc2UKKwkJcG9ydC0+aXJxID0gcmV0OworCisJb3VycG9ydC0+Y2xrCT0gY2xrX2dldCgmcGxhdGRldi0+ZGV2LCAidWFydCIpOworCisJZGJnKCJwb3J0OiBtYXA9JTA4eCwgbWVtPSUwOHgsIGlycT0lZCwgY2xvY2s9JWxkXG4iLAorCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlLCBwb3J0LT5pcnEsIHBvcnQtPnVhcnRjbGspOworCisJLyogcmVzZXQgdGhlIGZpZm9zIChhbmQgc2V0dXAgdGhlIHVhcnQpICovCisJczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0KHBvcnQsIGNmZyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHMzYzI0eHhfc2VyaWFsX3Nob3dfY2xrc3JjKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkJICBjaGFyICpidWYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoZGV2KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiKiAlc1xuIiwgb3VycG9ydC0+Y2xrc3JjLT5uYW1lKTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKGNsb2NrX3NvdXJjZSwgU19JUlVHTywgczNjMjR4eF9zZXJpYWxfc2hvd19jbGtzcmMsIE5VTEwpOworCisvKiBEZXZpY2UgZHJpdmVyIHNlcmlhbCBwb3J0IHByb2JlICovCisKK3N0YXRpYyBpbnQgcHJvYmVfaW5kZXg7CisKK2ludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCisJCQkgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydDsKKwlpbnQgcmV0OworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9wcm9iZSglcCwgJXApICVkXG4iLCBkZXYsIGluZm8sIHByb2JlX2luZGV4KTsKKworCW91cnBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbcHJvYmVfaW5kZXhdOworCXByb2JlX2luZGV4Kys7CisKKwlkYmcoIiVzOiBpbml0aWFsaXNpbmcgcG9ydCAlcC4uLlxuIiwgX19mdW5jX18sIG91cnBvcnQpOworCisJcmV0ID0gczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KG91cnBvcnQsIGluZm8sIGRldik7CisJaWYgKHJldCA8IDApCisJCWdvdG8gcHJvYmVfZXJyOworCisJZGJnKCIlczogYWRkaW5nIHBvcnRcbiIsIF9fZnVuY19fKTsKKwl1YXJ0X2FkZF9vbmVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgJm91cnBvcnQtPnBvcnQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgJm91cnBvcnQtPnBvcnQpOworCisJcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZkZXYtPmRldiwgJmRldl9hdHRyX2Nsb2NrX3NvdXJjZSk7CisJaWYgKHJldCA8IDApCisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGZhaWxlZCB0byBhZGQgY2xrc3JjIGF0dHIuXG4iLCBfX2Z1bmNfXyk7CisKKwlyZXR1cm4gMDsKKworIHByb2JlX2VycjoKKwlyZXR1cm4gcmV0OworfQorCitFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X3NlcmlhbF9wcm9iZSk7CisKK2ludCBzM2MyNHh4X3NlcmlhbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzM2MyNHh4X2Rldl90b19wb3J0KCZkZXYtPmRldik7CisKKwlpZiAocG9ydCkgeworCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoJmRldi0+ZGV2LCAmZGV2X2F0dHJfY2xvY2tfc291cmNlKTsKKwkJdWFydF9yZW1vdmVfb25lX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsIHBvcnQpOworCX0KKworCXJldHVybiAwOworfQorCitFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X3NlcmlhbF9yZW1vdmUpOworCisvKiBVQVJUIHBvd2VyIG1hbmFnZW1lbnQgY29kZSAqLworCisjaWZkZWYgQ09ORklHX1BNCisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOworCisJaWYgKHBvcnQpCisJCXVhcnRfc3VzcGVuZF9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoJmRldi0+ZGV2KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCisJaWYgKHBvcnQpIHsKKwkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOworCQlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KSk7CisJCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7CisKKwkJdWFydF9yZXN1bWVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgcG9ydCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50IHMzYzI0eHhfc2VyaWFsX2luaXQoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAorCQkJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQoreworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdCglcCwlcClcbiIsIGRydiwgaW5mbyk7CisKKyNpZmRlZiBDT05GSUdfUE0KKwlkcnYtPnN1c3BlbmQgPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kOworCWRydi0+cmVzdW1lID0gczNjMjR4eF9zZXJpYWxfcmVzdW1lOworI2VuZGlmCisKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKGRydik7Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKHMzYzI0eHhfc2VyaWFsX2luaXQpOworCisvKiBtb2R1bGUgaW5pdGlhbGlzYXRpb24gY29kZSAqLworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNHh4X3NlcmlhbF9tb2Rpbml0KHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IHVhcnRfcmVnaXN0ZXJfZHJpdmVyKCZzM2MyNHh4X3VhcnRfZHJ2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byByZWdpc3RlciBVQVJUIGRyaXZlclxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHMzYzI0eHhfc2VyaWFsX21vZGV4aXQodm9pZCkKK3sKKwl1YXJ0X3VucmVnaXN0ZXJfZHJpdmVyKCZzM2MyNHh4X3VhcnRfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjR4eF9zZXJpYWxfbW9kaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNHh4X3NlcmlhbF9tb2RleGl0KTsKKworLyogQ29uc29sZSBjb2RlICovCisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCitzdGF0aWMgc3RydWN0IHVhcnRfcG9ydCAqY29uc191YXJ0OworCitzdGF0aWMgaW50CitzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3R4cmR5KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCB1ZmNvbikKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKwl1bnNpZ25lZCBsb25nIHVmc3RhdCwgdXRyc3RhdDsKKworCWlmICh1ZmNvbiAmIFMzQzI0MTBfVUZDT05fRklGT01PREUpIHsKKwkJLyogZmlmbyBtb2RlIC0gY2hlY2sgYW1tb3VudCBvZiBkYXRhIGluIGZpZm8gcmVnaXN0ZXJzLi4uICovCisKKwkJdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7CisJCXJldHVybiAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpID8gMCA6IDE7CisJfQorCisJLyogaW4gbm9uLWZpZm8gbW9kZSwgd2UgZ28gYW5kIHVzZSB0aGUgdHggYnVmZmVyIGVtcHR5ICovCisKKwl1dHJzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VUUlNUQVQpOworCXJldHVybiAodXRyc3RhdCAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpID8gMSA6IDA7Cit9CisKK3N0YXRpYyB2b2lkCitzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3B1dGNoYXIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50IGNoKQoreworCXVuc2lnbmVkIGludCB1ZmNvbiA9IHJkX3JlZ2woY29uc191YXJ0LCBTM0MyNDEwX1VGQ09OKTsKKwl3aGlsZSAoIXMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfdHhyZHkocG9ydCwgdWZjb24pKQorCQliYXJyaWVyKCk7CisJd3JfcmVnYihjb25zX3VhcnQsIFMzQzI0MTBfVVRYSCwgY2gpOworfQorCitzdGF0aWMgdm9pZAorczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsCisJCQkgICAgIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwl1YXJ0X2NvbnNvbGVfd3JpdGUoY29uc191YXJ0LCBzLCBjb3VudCwgczNjMjR4eF9zZXJpYWxfY29uc29sZV9wdXRjaGFyKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9ucyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgKmJhdWQsCisJCQkgICBpbnQgKnBhcml0eSwgaW50ICpiaXRzKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIGNsa3NyYzsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJdW5zaWduZWQgaW50IHVsY29uOworCXVuc2lnbmVkIGludCB1Y29uOworCXVuc2lnbmVkIGludCB1YnJkaXY7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJdWxjb24gID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OKTsKKwl1Y29uICAgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdWJyZGl2ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VCUkRJVik7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zOiBwb3J0PSVwXG4iCisJICAgICJyZWdpc3RlcnM6IHVsY29uPSUwOHgsIHVjb249JTA4eCwgdWJkcml2PSUwOHhcbiIsCisJICAgIHBvcnQsIHVsY29uLCB1Y29uLCB1YnJkaXYpOworCisJaWYgKCh1Y29uICYgMHhmKSAhPSAwKSB7CisJCS8qIGNvbnNpZGVyIHRoZSBzZXJpYWwgcG9ydCBjb25maWd1cmVkIGlmIHRoZSB0eC9yeCBtb2RlIHNldCAqLworCisJCXN3aXRjaCAodWxjb24gJiBTM0MyNDEwX0xDT05fQ1NNQVNLKSB7CisJCWNhc2UgUzNDMjQxMF9MQ09OX0NTNToKKwkJCSpiaXRzID0gNTsKKwkJCWJyZWFrOworCQljYXNlIFMzQzI0MTBfTENPTl9DUzY6CisJCQkqYml0cyA9IDY7CisJCQlicmVhazsKKwkJY2FzZSBTM0MyNDEwX0xDT05fQ1M3OgorCQkJKmJpdHMgPSA3OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCWNhc2UgUzNDMjQxMF9MQ09OX0NTODoKKwkJCSpiaXRzID0gODsKKwkJCWJyZWFrOworCQl9CisKKwkJc3dpdGNoICh1bGNvbiAmIFMzQzI0MTBfTENPTl9QTUFTSykgeworCQljYXNlIFMzQzI0MTBfTENPTl9QRVZFTjoKKwkJCSpwYXJpdHkgPSAnZSc7CisJCQlicmVhazsKKworCQljYXNlIFMzQzI0MTBfTENPTl9QT0REOgorCQkJKnBhcml0eSA9ICdvJzsKKwkJCWJyZWFrOworCisJCWNhc2UgUzNDMjQxMF9MQ09OX1BOT05FOgorCQlkZWZhdWx0OgorCQkJKnBhcml0eSA9ICduJzsKKwkJfQorCisJCS8qIG5vdyBjYWxjdWxhdGUgdGhlIGJhdWQgcmF0ZSAqLworCisJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmY2xrc3JjKTsKKworCQljbGsgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLm5hbWUpOworCQlpZiAoIUlTX0VSUihjbGspICYmIGNsayAhPSBOVUxMKQorCQkJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspIC8gY2xrc3JjLmRpdmlzb3I7CisJCWVsc2UKKwkJCXJhdGUgPSAxOworCisKKwkJKmJhdWQgPSByYXRlIC8gKDE2ICogKHVicmRpdiArIDEpKTsKKwkJZGJnKCJjYWxjdWxhdGVkIGJhdWQgJWRcbiIsICpiYXVkKTsKKwl9CisKK30KKworLyogczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0cworICoKKyAqIGluaXRpYWxpc2UgdGhlIHNlcmlhbCBwb3J0cyBmcm9tIHRoZSBtYWNoaW5lIHByb3ZpZGVkIGluaXRpYWxpc2F0aW9uCisgKiBkYXRhLgorKi8KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzKHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnB0ciA9IHMzYzI0eHhfc2VyaWFsX3BvcnRzOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipwbGF0ZGV2X3B0cjsKKwlpbnQgaTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0czogaW5pdGlhbGlzaW5nIHBvcnRzLi4uXG4iKTsKKworCXBsYXRkZXZfcHRyID0gczNjMjR4eF91YXJ0X2RldnM7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlJfUE9SVFM7IGkrKywgcHRyKyssIHBsYXRkZXZfcHRyKyspIHsKKwkJczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHB0ciwgaW5mbywgKnBsYXRkZXZfcHRyKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQKK3MzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXAoc3RydWN0IGNvbnNvbGUgKmNvLCBjaGFyICpvcHRpb25zKQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQ7CisJaW50IGJhdWQgPSA5NjAwOworCWludCBiaXRzID0gODsKKwlpbnQgcGFyaXR5ID0gJ24nOworCWludCBmbG93ID0gJ24nOworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBjbz0lcCAoJWQpLCAlc1xuIiwKKwkgICAgY28sIGNvLT5pbmRleCwgb3B0aW9ucyk7CisKKwkvKiBpcyB0aGlzIGEgdmFsaWQgcG9ydCAqLworCisJaWYgKGNvLT5pbmRleCA9PSAtMSB8fCBjby0+aW5kZXggPj0gTlJfUE9SVFMpCisJCWNvLT5pbmRleCA9IDA7CisKKwlwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW2NvLT5pbmRleF0ucG9ydDsKKworCS8qIGlzIHRoZSBwb3J0IGNvbmZpZ3VyZWQ/ICovCisKKwlpZiAocG9ydC0+bWFwYmFzZSA9PSAweDApIHsKKwkJY28tPmluZGV4ID0gMDsKKwkJcG9ydCA9ICZzM2MyNHh4X3NlcmlhbF9wb3J0c1tjby0+aW5kZXhdLnBvcnQ7CisJfQorCisJY29uc191YXJ0ID0gcG9ydDsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogcG9ydD0lcCAoJWQpXG4iLCBwb3J0LCBjby0+aW5kZXgpOworCisJLyoKKwkgKiBDaGVjayB3aGV0aGVyIGFuIGludmFsaWQgdWFydCBudW1iZXIgaGFzIGJlZW4gc3BlY2lmaWVkLCBhbmQKKwkgKiBpZiBzbywgc2VhcmNoIGZvciB0aGUgZmlyc3QgYXZhaWxhYmxlIHBvcnQgdGhhdCBkb2VzIGhhdmUKKwkgKiBjb25zb2xlIHN1cHBvcnQuCisJICovCisJaWYgKG9wdGlvbnMpCisJCXVhcnRfcGFyc2Vfb3B0aW9ucyhvcHRpb25zLCAmYmF1ZCwgJnBhcml0eSwgJmJpdHMsICZmbG93KTsKKwllbHNlCisJCXMzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zKHBvcnQsICZiYXVkLCAmcGFyaXR5LCAmYml0cyk7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IGJhdWQgJWRcbiIsIGJhdWQpOworCisJcmV0dXJuIHVhcnRfc2V0X29wdGlvbnMocG9ydCwgY28sIGJhdWQsIHBhcml0eSwgYml0cywgZmxvdyk7Cit9CisKKy8qIHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlCisgKgorICogaW5pdGlhbGlzZSB0aGUgY29uc29sZSBmcm9tIG9uZSBvZiB0aGUgdWFydCBkcml2ZXJzCisqLworCitzdGF0aWMgc3RydWN0IGNvbnNvbGUgczNjMjR4eF9zZXJpYWxfY29uc29sZSA9IHsKKwkubmFtZQkJPSBTM0MyNFhYX1NFUklBTF9OQU1FLAorCS5kZXZpY2UJCT0gdWFydF9jb25zb2xlX2RldmljZSwKKwkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSLAorCS5pbmRleAkJPSAtMSwKKwkud3JpdGUJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZSwKKwkuc2V0dXAJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cAorfTsKKworaW50IHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiwKKwkJCSAgICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pCisKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYgPSBzM2MyNHh4X3VhcnRfZGV2c1swXTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGVcbiIpOworCisJLyogc2VsZWN0IGRyaXZlciBiYXNlZCBvbiB0aGUgY3B1ICovCisKKwlpZiAoZGV2ID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkZXZpY2VzIGZvciBjb25zb2xlIGluaXRcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoc3RyY21wKGRldi0+bmFtZSwgZHJ2LT5kcml2ZXIubmFtZSkgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlzM2MyNHh4X3NlcmlhbF9jb25zb2xlLmRhdGEgPSAmczNjMjR4eF91YXJ0X2RydjsKKwlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzKGluZm8pOworCisJcmVnaXN0ZXJfY29uc29sZSgmczNjMjR4eF9zZXJpYWxfY29uc29sZSk7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRSAqLworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgU29DIFNlcmlhbCBwb3J0IGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5oIGIvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOTJlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3NhbXN1bmcuaAorICoKKyAqIERyaXZlciBmb3IgU2Ftc3VuZyBTb0Mgb25ib2FyZCBVQVJUcy4KKyAqCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCitzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8geworCWNoYXIJCQkqbmFtZTsKKwl1bnNpZ25lZCBpbnQJCXR5cGU7CisJdW5zaWduZWQgaW50CQlmaWZvc2l6ZTsKKwl1bnNpZ25lZCBsb25nCQlyeF9maWZvbWFzazsKKwl1bnNpZ25lZCBsb25nCQlyeF9maWZvc2hpZnQ7CisJdW5zaWduZWQgbG9uZwkJcnhfZmlmb2Z1bGw7CisJdW5zaWduZWQgbG9uZwkJdHhfZmlmb21hc2s7CisJdW5zaWduZWQgbG9uZwkJdHhfZmlmb3NoaWZ0OworCXVuc2lnbmVkIGxvbmcJCXR4X2ZpZm9mdWxsOworCisJLyogY2xvY2sgc291cmNlIGNvbnRyb2wgKi8KKworCWludCAoKmdldF9jbGtzcmMpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsayk7CisJaW50ICgqc2V0X2Nsa3NyYykoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKTsKKworCS8qIHVhcnQgY29udHJvbHMgKi8KKwlpbnQgKCpyZXNldF9wb3J0KShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKik7Cit9OworCitzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgeworCXVuc2lnbmVkIGNoYXIJCQlyeF9jbGFpbWVkOworCXVuc2lnbmVkIGNoYXIJCQl0eF9jbGFpbWVkOworCisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvCSppbmZvOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjCSpjbGtzcmM7CisJc3RydWN0IGNsawkJCSpjbGs7CisJc3RydWN0IGNsawkJCSpiYXVkY2xrOworCXN0cnVjdCB1YXJ0X3BvcnQJCXBvcnQ7Cit9OworCisvKiBjb252ZXJzaW9uIGZ1bmN0aW9ucyAqLworCisjZGVmaW5lIHMzYzI0eHhfZGV2X3RvX3BvcnQoX19kZXYpIChzdHJ1Y3QgdWFydF9wb3J0ICopZGV2X2dldF9kcnZkYXRhKF9fZGV2KQorI2RlZmluZSBzM2MyNHh4X2Rldl90b19jZmcoX19kZXYpIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopKChfX2RldiktPnBsYXRmb3JtX2RhdGEpCisKKy8qIHJlZ2lzdGVyIGFjY2VzcyBjb250cm9scyAqLworCisjZGVmaW5lIHBvcnRhZGRyKHBvcnQsIHJlZykgKChwb3J0KS0+bWVtYmFzZSArIChyZWcpKQorCisjZGVmaW5lIHJkX3JlZ2IocG9ydCwgcmVnKSAoX19yYXdfcmVhZGIocG9ydGFkZHIocG9ydCwgcmVnKSkpCisjZGVmaW5lIHJkX3JlZ2wocG9ydCwgcmVnKSAoX19yYXdfcmVhZGwocG9ydGFkZHIocG9ydCwgcmVnKSkpCisKKyNkZWZpbmUgd3JfcmVnYihwb3J0LCByZWcsIHZhbCkgX19yYXdfd3JpdGViKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSkKKyNkZWZpbmUgd3JfcmVnbChwb3J0LCByZWcsIHZhbCkgX19yYXdfd3JpdGVsKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSkKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICp1YXJ0KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZShzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpkcnYsCisJCQkJICAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICp1YXJ0KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiwKKwkJCSAgICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pOworCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEUKKworI2RlZmluZSBzM2MyNHh4X2NvbnNvbGVfaW5pdChfX2RydiwgX19pbmYpCQkJXAorc3RhdGljIGludCBfX2luaXQgczNjX3NlcmlhbF9jb25zb2xlX2luaXQodm9pZCkJCQlcCit7CQkJCQkJCQlcCisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKF9fZHJ2LCBfX2luZik7CVwKK30JCQkJCQkJCVwKKwkJCQkJCQkJXAorY29uc29sZV9pbml0Y2FsbChzM2Nfc2VyaWFsX2NvbnNvbGVfaW5pdCkKKworI2Vsc2UKKyNkZWZpbmUgczNjMjR4eF9jb25zb2xlX2luaXQoZHJ2LCBpbmYpIGV4dGVybiB2b2lkIG5vX2NvbnNvbGUodm9pZCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0RFQlVHCisKK2V4dGVybiB2b2lkIHByaW50YXNjaWkoY29uc3QgY2hhciAqKTsKKworc3RhdGljIHZvaWQgZGJnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXZhX2xpc3QgdmE7CisJY2hhciBidWZmWzI1Nl07CisKKwl2YV9zdGFydCh2YSwgZm10KTsKKwl2c3ByaW50ZihidWZmLCBmbXQsIHZhKTsKKwl2YV9lbmQodmEpOworCisJcHJpbnRhc2NpaShidWZmKTsKK30KKworI2Vsc2UKKyNkZWZpbmUgZGJnKHguLi4pIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYyBiL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9jb3JlLmMKaW5kZXggYzliNjRlNy4uNDJkMmUxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYworKysgYi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfY29yZS5jCkBAIC0xOTkxLDcgKzE5OTEsOSBAQAogc3RhdGljIGludCBzZXJpYWxfbWF0Y2hfcG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHVhcnRfbWF0Y2ggKm1hdGNoID0gZGF0YTsKLQlkZXZfdCBkZXZ0ID0gTUtERVYobWF0Y2gtPmRyaXZlci0+bWFqb3IsIG1hdGNoLT5kcml2ZXItPm1pbm9yKSArIG1hdGNoLT5wb3J0LT5saW5lOworCXN0cnVjdCB0dHlfZHJpdmVyICp0dHlfZHJ2ID0gbWF0Y2gtPmRyaXZlci0+dHR5X2RyaXZlcjsKKwlkZXZfdCBkZXZ0ID0gTUtERVYodHR5X2Rydi0+bWFqb3IsIHR0eV9kcnYtPm1pbm9yX3N0YXJ0KSArCisJCW1hdGNoLT5wb3J0LT5saW5lOwogCiAJcmV0dXJuIGRldi0+ZGV2dCA9PSBkZXZ0OyAvKiBBY3R1YWxseSwgb25seSBvbmUgdHR5IHBlciBwb3J0ICovCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGlfaW14LmMgYi9kcml2ZXJzL3NwaS9zcGlfaW14LmMKaW5kZXggYzczMGQwNS4uNTRhYzdiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpX2lteC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaV9pbXguYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgpAQCAtMjUwLDYgKzI1MSw4IEBACiAJaW50IHR4X2RtYV9uZWVkc191bm1hcDsKIAlzaXplX3QgdHhfbWFwX2xlbjsKIAl1MzIgZHVtbXlfZG1hX2J1ZiBfX19fY2FjaGVsaW5lX2FsaWduZWQ7CisKKwlzdHJ1Y3QgY2xrICpjbGs7CiB9OwogCiAvKiBSdW50aW1lIHN0YXRlICovCkBAIC04NTUsMTUgKzg1OCwxNSBAQAogCXJldHVybiBkcnZfZGF0YS0+dHJhbnNmZXJfaGFuZGxlcihkcnZfZGF0YSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIHNwaV9zcGVlZF9oeih1MzIgZGF0YV9yYXRlKQorc3RhdGljIGlubGluZSB1MzIgc3BpX3NwZWVkX2h6KHN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEsIHUzMiBkYXRhX3JhdGUpCiB7Ci0JcmV0dXJuIGlteF9nZXRfcGVyY2xrMigpIC8gKDQgPDwgKChkYXRhX3JhdGUpID4+IDEzKSk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShkcnZfZGF0YS0+Y2xrKSAvICg0IDw8ICgoZGF0YV9yYXRlKSA+PiAxMykpOwogfQogCi1zdGF0aWMgdTMyIHNwaV9kYXRhX3JhdGUodTMyIHNwZWVkX2h6KQorc3RhdGljIHUzMiBzcGlfZGF0YV9yYXRlKHN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEsIHUzMiBzcGVlZF9oeikKIHsKIAl1MzIgZGl2OwotCXUzMiBxdWFudGl6ZWRfaHogPSBpbXhfZ2V0X3BlcmNsazIoKSA+PiAyOworCXUzMiBxdWFudGl6ZWRfaHogPSBjbGtfZ2V0X3JhdGUoZHJ2X2RhdGEtPmNsaykgPj4gMjsKIAogCWZvciAoZGl2ID0gU1BJX1BFUkNMSzJfRElWX01JTjsKIAkJZGl2IDw9IFNQSV9QRVJDTEsyX0RJVl9NQVg7CkBAIC05NDcsNyArOTUwLDcgQEAKIAl0bXAgPSB0cmFuc2Zlci0+c3BlZWRfaHo7CiAJaWYgKHRtcCA9PSAwKQogCQl0bXAgPSBjaGlwLT5tYXhfc3BlZWRfaHo7Ci0JdG1wID0gc3BpX2RhdGFfcmF0ZSh0bXApOworCXRtcCA9IHNwaV9kYXRhX3JhdGUoZHJ2X2RhdGEsIHRtcCk7CiAJdTMyX0VESVQoY29udHJvbCwgU1BJX0NPTlRST0xfREFUQVJBVEUsIHRtcCk7CiAKIAl3cml0ZWwoY29udHJvbCwgcmVncyArIFNQSV9DT05UUk9MKTsKQEAgLTExMDksNyArMTExMiw3IEBACiAJbXNnLT5hY3R1YWxfbGVuZ3RoID0gMDsKIAogCS8qIFBlciB0cmFuc2ZlciBzZXR1cCBjaGVjayAqLwotCW1pbl9zcGVlZF9oeiA9IHNwaV9zcGVlZF9oeihTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pOworCW1pbl9zcGVlZF9oeiA9IHNwaV9zcGVlZF9oeihkcnZfZGF0YSwgU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKTsKIAltYXhfc3BlZWRfaHogPSBzcGktPm1heF9zcGVlZF9oejsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRyYW5zLCAmbXNnLT50cmFuc2ZlcnMsIHRyYW5zZmVyX2xpc3QpIHsKIAkJdG1wID0gdHJhbnMtPmJpdHNfcGVyX3dvcmQ7CkBAIC0xMTc2LDYgKzExNzksNyBAQAogICAgYXBwbGllZCBhbmQgbm90aWZpZWQgdG8gdGhlIGNhbGxpbmcgZHJpdmVyLiAqLwogc3RhdGljIGludCBzZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogeworCXN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKIAlzdHJ1Y3Qgc3BpX2lteF9jaGlwICpjaGlwX2luZm87CiAJc3RydWN0IGNoaXBfZGF0YSAqY2hpcDsKIAlpbnQgZmlyc3Rfc2V0dXAgPSAwOwpAQCAtMTMwNCwxNCArMTMwOCwxNCBAQAogCWNoaXAtPm5fYnl0ZXMgPSAodG1wIDw9IDgpID8gMSA6IDI7CiAKIAkvKiBTUEkgZGF0YXJhdGUgKi8KLQl0bXAgPSBzcGlfZGF0YV9yYXRlKHNwaS0+bWF4X3NwZWVkX2h6KTsKKwl0bXAgPSBzcGlfZGF0YV9yYXRlKGRydl9kYXRhLCBzcGktPm1heF9zcGVlZF9oeik7CiAJaWYgKHRtcCA9PSBTUElfQ09OVFJPTF9EQVRBUkFURV9CQUQpIHsKIAkJc3RhdHVzID0gLUVJTlZBTDsKIAkJZGV2X2Vycigmc3BpLT5kZXYsCiAJCQkic2V0dXAgLSAiCiAJCQkiSFcgbWluIHNwZWVkICglZCBIeikgZXhjZWVkcyByZXF1aXJlZCAiCiAJCQkibWF4IHNwZWVkICglZCBIeilcbiIsCi0JCQlzcGlfc3BlZWRfaHooU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKKwkJCXNwaV9zcGVlZF9oeihkcnZfZGF0YSwgU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKIAkJCXNwaS0+bWF4X3NwZWVkX2h6KTsKIAkJaWYgKGZpcnN0X3NldHVwKQogCQkJZ290byBlcnJfZmlyc3Rfc2V0dXA7CkBAIC0xMzIxLDcgKzEzMjUsNyBAQAogCX0gZWxzZSB7CiAJCXUzMl9FRElUKGNoaXAtPmNvbnRyb2wsIFNQSV9DT05UUk9MX0RBVEFSQVRFLCB0bXApOwogCQkvKiBBY3R1YWwgcm91bmRlZCBtYXhfc3BlZWRfaHogKi8KLQkJdG1wID0gc3BpX3NwZWVkX2h6KHRtcCk7CisJCXRtcCA9IHNwaV9zcGVlZF9oeihkcnZfZGF0YSwgdG1wKTsKIAkJc3BpLT5tYXhfc3BlZWRfaHogPSB0bXA7CiAJCWNoaXAtPm1heF9zcGVlZF9oeiA9IHRtcDsKIAl9CkBAIC0xMzUyLDcgKzEzNTYsNyBAQAogCQljaGlwLT5wZXJpb2QgJiBTUElfUEVSSU9EX1dBSVQsCiAJCXNwaS0+bW9kZSwKIAkJc3BpLT5iaXRzX3Blcl93b3JkLAotCQlzcGlfc3BlZWRfaHooU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKKwkJc3BpX3NwZWVkX2h6KGRydl9kYXRhLCBTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pLAogCQlzcGktPm1heF9zcGVlZF9oeik7CiAJcmV0dXJuIHN0YXR1czsKIApAQCAtMTQ2NSw2ICsxNDY5LDE0IEBACiAJCWdvdG8gZXJyX25vX3BkYXRhOwogCX0KIAorCWRydl9kYXRhLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwZXJjbGsyIik7CisJaWYgKElTX0VSUihkcnZfZGF0YS0+Y2xrKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJwcm9iZSAtIGNhbm5vdCBnZXQgZ2V0XG4iKTsKKwkJc3RhdHVzID0gUFRSX0VSUihkcnZfZGF0YS0+Y2xrKTsKKwkJZ290byBlcnJfbm9fY2xrOworCX0KKwljbGtfZW5hYmxlKGRydl9kYXRhLT5jbGspOworCiAJLyogQWxsb2NhdGUgbWFzdGVyIHdpdGggc3BhY2UgZm9yIGRydl9kYXRhICovCiAJbWFzdGVyID0gc3BpX2FsbG9jX21hc3RlcihkZXYsIHNpemVvZihzdHJ1Y3QgZHJpdmVyX2RhdGEpKTsKIAlpZiAoIW1hc3RlcikgewpAQCAtMTUyNiwyNCArMTUzOCwyNCBAQAogCWRydl9kYXRhLT5yeF9jaGFubmVsID0gLTE7CiAJaWYgKHBsYXRmb3JtX2luZm8tPmVuYWJsZV9kbWEpIHsKIAkJLyogR2V0IHJ4IERNQSBjaGFubmVsICovCi0JCXN0YXR1cyA9IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKCZkcnZfZGF0YS0+cnhfY2hhbm5lbCwKLQkJCSJzcGlfaW14X3J4IiwgRE1BX1BSSU9fSElHSCk7Ci0JCWlmIChzdGF0dXMgPCAwKSB7CisJCWRydl9kYXRhLT5yeF9jaGFubmVsID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oInNwaV9pbXhfcngiLAorCQkJCQkJCSAgICAgICBETUFfUFJJT19ISUdIKTsKKwkJaWYgKGRydl9kYXRhLT5yeF9jaGFubmVsIDwgMCkgewogCQkJZGV2X2VycihkZXYsCiAJCQkJInByb2JlIC0gcHJvYmxlbSAoJWQpIHJlcXVlc3RpbmcgcnggY2hhbm5lbFxuIiwKLQkJCQlzdGF0dXMpOworCQkJCWRydl9kYXRhLT5yeF9jaGFubmVsKTsKIAkJCWdvdG8gZXJyX25vX3J4ZG1hOwogCQl9IGVsc2UKIAkJCWlteF9kbWFfc2V0dXBfaGFuZGxlcnMoZHJ2X2RhdGEtPnJ4X2NoYW5uZWwsIE5VTEwsCiAJCQkJCQlkbWFfZXJyX2hhbmRsZXIsIGRydl9kYXRhKTsKIAogCQkvKiBHZXQgdHggRE1BIGNoYW5uZWwgKi8KLQkJc3RhdHVzID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oJmRydl9kYXRhLT50eF9jaGFubmVsLAotCQkJCQkJInNwaV9pbXhfdHgiLCBETUFfUFJJT19NRURJVU0pOwotCQlpZiAoc3RhdHVzIDwgMCkgeworCQlkcnZfZGF0YS0+dHhfY2hhbm5lbCA9IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKCJzcGlfaW14X3R4IiwKKwkJCQkJCQkgICAgICAgRE1BX1BSSU9fTUVESVVNKTsKKwkJaWYgKGRydl9kYXRhLT50eF9jaGFubmVsIDwgMCkgewogCQkJZGV2X2VycihkZXYsCiAJCQkJInByb2JlIC0gcHJvYmxlbSAoJWQpIHJlcXVlc3RpbmcgdHggY2hhbm5lbFxuIiwKLQkJCQlzdGF0dXMpOworCQkJCWRydl9kYXRhLT50eF9jaGFubmVsKTsKIAkJCWlteF9kbWFfZnJlZShkcnZfZGF0YS0+cnhfY2hhbm5lbCk7CiAJCQlnb3RvIGVycl9ub190eGRtYTsKIAkJfSBlbHNlCkBAIC0xNjIzLDYgKzE2MzUsOSBAQAogCXNwaV9tYXN0ZXJfcHV0KG1hc3Rlcik7CiAKIGVycl9ub19wZGF0YToKKwljbGtfZGlzYWJsZShkcnZfZGF0YS0+Y2xrKTsKKwljbGtfcHV0KGRydl9kYXRhLT5jbGspOworZXJyX25vX2NsazoKIGVycl9ub19tZW06CiAJcmV0dXJuIHN0YXR1czsKIH0KQEAgLTE2NjIsNiArMTY3Nyw5IEBACiAJaWYgKGlycSA+PSAwKQogCQlmcmVlX2lycShpcnEsIGRydl9kYXRhKTsKIAorCWNsa19kaXNhYmxlKGRydl9kYXRhLT5jbGspOworCWNsa19wdXQoZHJ2X2RhdGEtPmNsayk7CisKIAkvKiBSZWxlYXNlIG1hcCByZXNvdXJjZXMgKi8KIAlpb3VubWFwKGRydl9kYXRhLT5yZWdzKTsKIAlyZWxlYXNlX3Jlc291cmNlKGRydl9kYXRhLT5pb2FyZWEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpZGV2LmMgYi9kcml2ZXJzL3NwaS9zcGlkZXYuYwppbmRleCA3OTkzMzdmLi5kZGJlMWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGlkZXYuYworKysgYi9kcml2ZXJzL3NwaS9zcGlkZXYuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpZGV2Lmg+CkBAIC0xNjcsMTQgKzE2OCwxNCBAQAogCiAJbXV0ZXhfbG9jaygmc3BpZGV2LT5idWZfbG9jayk7CiAJc3RhdHVzID0gc3BpZGV2X3N5bmNfcmVhZChzcGlkZXYsIGNvdW50KTsKLQlpZiAoc3RhdHVzID09IDApIHsKKwlpZiAoc3RhdHVzID4gMCkgewogCQl1bnNpZ25lZCBsb25nCW1pc3Npbmc7CiAKLQkJbWlzc2luZyA9IGNvcHlfdG9fdXNlcihidWYsIHNwaWRldi0+YnVmZmVyLCBjb3VudCk7Ci0JCWlmIChjb3VudCAmJiBtaXNzaW5nID09IGNvdW50KQorCQltaXNzaW5nID0gY29weV90b191c2VyKGJ1Ziwgc3BpZGV2LT5idWZmZXIsIHN0YXR1cyk7CisJCWlmIChtaXNzaW5nID09IHN0YXR1cykKIAkJCXN0YXR1cyA9IC1FRkFVTFQ7CiAJCWVsc2UKLQkJCXN0YXR1cyA9IGNvdW50IC0gbWlzc2luZzsKKwkJCXN0YXR1cyA9IHN0YXR1cyAtIG1pc3Npbmc7CiAJfQogCW11dGV4X3VubG9jaygmc3BpZGV2LT5idWZfbG9jayk7CiAKQEAgLTIwMCw4ICsyMDEsNiBAQAogCW1pc3NpbmcgPSBjb3B5X2Zyb21fdXNlcihzcGlkZXYtPmJ1ZmZlciwgYnVmLCBjb3VudCk7CiAJaWYgKG1pc3NpbmcgPT0gMCkgewogCQlzdGF0dXMgPSBzcGlkZXZfc3luY193cml0ZShzcGlkZXYsIGNvdW50KTsKLQkJaWYgKHN0YXR1cyA9PSAwKQotCQkJc3RhdHVzID0gY291bnQ7CiAJfSBlbHNlCiAJCXN0YXR1cyA9IC1FRkFVTFQ7CiAJbXV0ZXhfdW5sb2NrKCZzcGlkZXYtPmJ1Zl9sb2NrKTsKQEAgLTQ2Niw2ICs0NjUsNyBAQAogCXN0cnVjdCBzcGlkZXZfZGF0YQkqc3BpZGV2OwogCWludAkJCXN0YXR1cyA9IC1FTlhJTzsKIAorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfbG9jaygmZGV2aWNlX2xpc3RfbG9jayk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNwaWRldiwgJmRldmljZV9saXN0LCBkZXZpY2VfZW50cnkpIHsKQEAgLTQ5MSw2ICs0OTEsNyBAQAogCQlwcl9kZWJ1Zygic3BpZGV2OiBub3RoaW5nIGZvciBtaW5vciAlZFxuIiwgaW1pbm9yKGlub2RlKSk7CiAKIAltdXRleF91bmxvY2soJmRldmljZV9saXN0X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NzYi9kcml2ZXJfcGNpY29yZS5jIGIvZHJpdmVycy9zc2IvZHJpdmVyX3BjaWNvcmUuYwppbmRleCBkMjhjNTM4Li41MzhjNTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NzYi9kcml2ZXJfcGNpY29yZS5jCisrKyBiL2RyaXZlcnMvc3NiL2RyaXZlcl9wY2ljb3JlLmMKQEAgLTUzNyw2ICs1MzcsMTMgQEAKIAlpbnQgZXJyID0gMDsKIAl1MzIgdG1wOwogCisJaWYgKGRldi0+YnVzLT5idXN0eXBlICE9IFNTQl9CVVNUWVBFX1BDSSkgeworCQkvKiBUaGlzIFNTQiBkZXZpY2UgaXMgbm90IG9uIGEgUENJIGhvc3QtYnVzLiBTbyB0aGUgSVJRcyBhcmUKKwkJICogbm90IHJvdXRlZCB0aHJvdWdoIHRoZSBQQ0kgY29yZS4KKwkJICogU28gd2UgbXVzdCBub3QgZW5hYmxlIHJvdXRpbmcgdGhyb3VnaCB0aGUgUENJIGNvcmUuICovCisJCWdvdG8gb3V0OworCX0KKwogCWlmICghcGRldikKIAkJZ290byBvdXQ7CiAJYnVzID0gcGRldi0+YnVzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zc2IvbWFpbi5jIGIvZHJpdmVycy9zc2IvbWFpbi5jCmluZGV4IDdjZjg4NTEuLmQxODRmMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3NiL21haW4uYworKysgYi9kcml2ZXJzL3NzYi9tYWluLmMKQEAgLTExNjgsMTUgKzExNjgsMjEgQEAKIGludCBzc2JfZG1hX3NldF9tYXNrKHN0cnVjdCBzc2JfZGV2aWNlICpzc2JfZGV2LCB1NjQgbWFzaykKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2ID0gc3NiX2Rldi0+ZG1hX2RldjsKKwlpbnQgZXJyID0gMDsKIAogI2lmZGVmIENPTkZJR19TU0JfUENJSE9TVAotCWlmIChzc2JfZGV2LT5idXMtPmJ1c3R5cGUgPT0gU1NCX0JVU1RZUEVfUENJKQotCQlyZXR1cm4gZG1hX3NldF9tYXNrKGRtYV9kZXYsIG1hc2spOworCWlmIChzc2JfZGV2LT5idXMtPmJ1c3R5cGUgPT0gU1NCX0JVU1RZUEVfUENJKSB7CisJCWVyciA9IHBjaV9zZXRfZG1hX21hc2soc3NiX2Rldi0+YnVzLT5ob3N0X3BjaSwgbWFzayk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCQllcnIgPSBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2soc3NiX2Rldi0+YnVzLT5ob3N0X3BjaSwgbWFzayk7CisJCXJldHVybiBlcnI7CisJfQogI2VuZGlmCiAJZG1hX2Rldi0+Y29oZXJlbnRfZG1hX21hc2sgPSBtYXNrOwogCWRtYV9kZXYtPmRtYV9tYXNrID0gJmRtYV9kZXYtPmNvaGVyZW50X2RtYV9tYXNrOwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIGVycjsKIH0KIEVYUE9SVF9TWU1CT0woc3NiX2RtYV9zZXRfbWFzayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGVsZXBob255L3Bob25lZGV2LmMgYi9kcml2ZXJzL3RlbGVwaG9ueS9waG9uZWRldi5jCmluZGV4IGJjZWE4ZDkuLjRkNzRiYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGVsZXBob255L3Bob25lZGV2LmMKKysrIGIvZHJpdmVycy90ZWxlcGhvbnkvcGhvbmVkZXYuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvcGhvbmVkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIApAQCAtNTMsNiArNTQsNyBAQAogCWlmIChtaW5vciA+PSBQSE9ORV9OVU1fREVWSUNFUykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJnBob25lX2xvY2spOwogCXAgPSBwaG9uZV9kZXZpY2VbbWlub3JdOwogCWlmIChwKQpAQCAtNzksNiArODEsNyBAQAogCWZvcHNfcHV0KG9sZF9mb3BzKTsKIGVuZDoKIAltdXRleF91bmxvY2soJnBob25lX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCmluZGV4IDRiNjI4NTIuLmE4NmU5NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnCkBAIC0xMiwzICsxMiwxMiBAQAogCSAgY29vbGluZyBkZXZpY2VzLgogCSAgQWxsIHBsYXRmb3JtcyB3aXRoIEFDUEkgdGhlcm1hbCBzdXBwb3J0IGNhbiB1c2UgdGhpcyBkcml2ZXIuCiAJICBJZiB5b3Ugd2FudCB0aGlzIHN1cHBvcnQsIHlvdSBzaG91bGQgc2F5IFkgb3IgTSBoZXJlLgorCitjb25maWcgVEhFUk1BTF9IV01PTgorCWJvb2wgIkhhcmR3YXJlIG1vbml0b3Jpbmcgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEhXTU9OPXkgfHwgSFdNT049VEhFUk1BTAorCWhlbHAKKwkgIFRoZSBnZW5lcmljIHRoZXJtYWwgc3lzZnMgZHJpdmVyJ3MgaGFyZHdhcmUgbW9uaXRvcmluZyBzdXBwb3J0CisJICByZXF1aXJlcyBhIDIuMTAuNy8zLjAuMiBvciBsYXRlciBsbS1zZW5zb3JzIHVzZXJzcGFjZS4KKworCSAgU2F5IFkgaWYgeW91ciB1c2VyLXNwYWNlIGlzIG5ldyBlbm91Z2guCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX3N5cy5jCmluZGV4IDYwOTg3ODcuLmZlMDc0NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX3N5cy5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX3N5cy5jCkBAIC0yOTUsOCArMjk1LDggQEAKIAogLyogRGV2aWNlIG1hbmFnZW1lbnQgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX0hXTU9OKSB8fAlcCi0JKGRlZmluZWQoQ09ORklHX0hXTU9OX01PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfVEhFUk1BTF9NT0RVTEUpKQorI2lmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfSFdNT04pCisKIC8qIGh3bW9uIHN5cyBJL0YgKi8KICNpbmNsdWRlIDxsaW51eC9od21vbi5oPgogc3RhdGljIExJU1RfSEVBRCh0aGVybWFsX2h3bW9uX2xpc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91aW8vdWlvLmMgYi9kcml2ZXJzL3Vpby91aW8uYwppbmRleCAwYTEyZTkwLi41YTdjYTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Vpby91aW8uYworKysgYi9kcml2ZXJzL3Vpby91aW8uYwpAQCAtMjk3LDEyICsyOTcsMTcgQEAKIAlzdHJ1Y3QgdWlvX2xpc3RlbmVyICpsaXN0ZW5lcjsKIAlpbnQgcmV0ID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJaWRldiA9IGlkcl9maW5kKCZ1aW9faWRyLCBpbWlub3IoaW5vZGUpKTsKLQlpZiAoIWlkZXYpCi0JCXJldHVybiAtRU5PREVWOworCWlmICghaWRldikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAoIXRyeV9tb2R1bGVfZ2V0KGlkZXYtPm93bmVyKSkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKCF0cnlfbW9kdWxlX2dldChpZGV2LT5vd25lcikpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCiAJbGlzdGVuZXIgPSBrbWFsbG9jKHNpemVvZigqbGlzdGVuZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWxpc3RlbmVyKSB7CkBAIC0zMTksNyArMzI0LDcgQEAKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX2luZm9vcGVuOwogCX0KLQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX2luZm9vcGVuOgpAQCAtMzI5LDYgKzMzNCw4IEBACiAKIAltb2R1bGVfcHV0KGlkZXYtPm93bmVyKTsKIAorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9hdG0vY3hhY3J1LmMgYi9kcml2ZXJzL3VzYi9hdG0vY3hhY3J1LmMKaW5kZXggNWVhMzA5My4uOTA1ODNkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvYXRtL2N4YWNydS5jCisrKyBiL2RyaXZlcnMvdXNiL2F0bS9jeGFjcnUuYwpAQCAtODIwLDcgKzgyMCw3IEBACiB9CiAKIHN0YXRpYyBpbnQgY3hhY3J1X2Z3KHN0cnVjdCB1c2JfZGV2aWNlICp1c2JfZGV2LCBlbnVtIGN4YWNydV9md19yZXF1ZXN0IGZ3LAotCQkgICAgIHU4IGNvZGUxLCB1OCBjb2RlMiwgdTMyIGFkZHIsIHU4ICpkYXRhLCBpbnQgc2l6ZSkKKwkJICAgICB1OCBjb2RlMSwgdTggY29kZTIsIHUzMiBhZGRyLCBjb25zdCB1OCAqZGF0YSwgaW50IHNpemUpCiB7CiAJaW50IHJldDsKIAl1OCAqYnVmOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvYXRtL3VlYWdsZS1hdG0uYyBiL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMKaW5kZXggNWY3MWZmMy4uY2IwMWI1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvYXRtL3VlYWdsZS1hdG0uYworKysgYi9kcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jCkBAIC01NzksNyArNTc5LDcgQEAKICAqIHVlYV9zZW5kX21vZGVtX2NtZCAtIFNlbmQgYSBjb21tYW5kIGZvciBwcmUtZmlybXdhcmUgZGV2aWNlcy4KICAqLwogc3RhdGljIGludCB1ZWFfc2VuZF9tb2RlbV9jbWQoc3RydWN0IHVzYl9kZXZpY2UgKnVzYiwKLQkJdTE2IGFkZHIsIHUxNiBzaXplLCB1OCAqIGJ1ZmYpCisJCQkgICAgICB1MTYgYWRkciwgdTE2IHNpemUsIGNvbnN0IHU4ICpidWZmKQogewogCWludCByZXQgPSAtRU5PTUVNOwogCXU4ICp4ZmVyX2J1ZmY7CkBAIC02MDQsNyArNjA0LDggQEAKIHN0YXRpYyB2b2lkIHVlYV91cGxvYWRfcHJlX2Zpcm13YXJlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZndfZW50cnksIHZvaWQgKmNvbnRleHQpCiB7CiAJc3RydWN0IHVzYl9kZXZpY2UgKnVzYiA9IGNvbnRleHQ7Ci0JdTggKnBmdywgdmFsdWU7CisJY29uc3QgdTggKnBmdzsKKwl1OCB2YWx1ZTsKIAl1MzIgY3JjID0gMDsKIAlpbnQgcmV0LCBzaXplOwogCkBAIC03MjAsNyArNzIxLDcgQEAKIC8qCiAgKiBNYWtlIHN1cmUgdGhhdCB0aGUgRFNQIGNvZGUgcHJvdmlkZWQgaXMgc2FmZSB0byB1c2UuCiAgKi8KLXN0YXRpYyBpbnQgY2hlY2tfZHNwX2UxKHU4ICpkc3AsIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgaW50IGNoZWNrX2RzcF9lMShjb25zdCB1OCAqZHNwLCB1bnNpZ25lZCBpbnQgbGVuKQogewogCXU4IHBhZ2Vjb3VudCwgYmxvY2tjb3VudDsKIAl1MTYgYmxvY2tzaXplOwpAQCAtNzcxLDcgKzc3Miw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfZHNwX2U0KHU4ICpkc3AsIGludCBsZW4pCitzdGF0aWMgaW50IGNoZWNrX2RzcF9lNChjb25zdCB1OCAqZHNwLCBpbnQgbGVuKQogewogCWludCBpOwogCXN0cnVjdCBsMV9jb2RlICpwID0gKHN0cnVjdCBsMV9jb2RlICopIGRzcDsKQEAgLTgxOSw3ICs4MjAsNyBAQAogLyoKICAqIHNlbmQgZGF0YSB0byB0aGUgaWRtYSBwaXBlCiAgKiAqLwotc3RhdGljIGludCB1ZWFfaWRtYV93cml0ZShzdHJ1Y3QgdWVhX3NvZnRjICpzYywgdm9pZCAqZGF0YSwgdTMyIHNpemUpCitzdGF0aWMgaW50IHVlYV9pZG1hX3dyaXRlKHN0cnVjdCB1ZWFfc29mdGMgKnNjLCBjb25zdCB2b2lkICpkYXRhLCB1MzIgc2l6ZSkKIHsKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAl1OCAqeGZlcl9idWZmOwpAQCAtOTAzLDcgKzkwNCw3IEBACiAJdTE2IG92bCA9IHNjLT5vdmw7CiAJc3RydWN0IGJsb2NrX2luZm9fZTEgYmk7CiAKLQl1OCAqcDsKKwljb25zdCB1OCAqcDsKIAl1OCBwYWdlY291bnQsIGJsb2NrY291bnQ7CiAJdTE2IGJsb2NrYWRkciwgYmxvY2tzaXplOwogCXUzMiBwYWdlb2Zmc2V0OwpAQCAtOTg2LDcgKzk4Nyw3IEBACiAJYmkud1Jlc2VydmVkID0gY3B1X3RvX2JlMTYoVUVBX1JFU0VSVkVEKTsKIAogCWRvIHsKLQkJdTggKmJsb2Nrb2Zmc2V0OworCQljb25zdCB1OCAqYmxvY2tvZmZzZXQ7CiAJCXVuc2lnbmVkIGludCBibG9ja3NpemU7CiAKIAkJYmxvY2tpZHggPSAmcC0+cGFnZV9oZWFkZXJbYmxvY2tub107CkBAIC0xMDk1LDcgKzEwOTYsNyBAQAogI2RlZmluZSBVQ0RDX1NFTkRfRU5DQVBTVUxBVEVEX0NPTU1BTkQgMHgwMAogCiBzdGF0aWMgaW50IHVlYV9yZXF1ZXN0KHN0cnVjdCB1ZWFfc29mdGMgKnNjLAotCQl1MTYgdmFsdWUsIHUxNiBpbmRleCwgdTE2IHNpemUsIHZvaWQgKmRhdGEpCisJCXUxNiB2YWx1ZSwgdTE2IGluZGV4LCB1MTYgc2l6ZSwgY29uc3Qgdm9pZCAqZGF0YSkKIHsKIAl1OCAqeGZlcl9idWZmOwogCWludCByZXQgPSAtRU5PTUVNOwpAQCAtMTg5MSw3ICsxODkyLDggQEAKIHsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5OwogCWludCByZXQsIHNpemUsIHUsIGxuOwotCXU4ICpwZncsIHZhbHVlOworCWNvbnN0IHU4ICpwZnc7CisJdTggdmFsdWU7CiAJY2hhciAqZndfbmFtZSA9IEZXX0RJUiAiOTMwLWZwZ2EuYmluIjsKIAogCXVlYV9lbnRlcnMoSU5TX1RPX1VTQkRFVihzYykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCmluZGV4IDYzYzM0MDQuLmMzMjAxYWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKKysrIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCkBAIC0xMTI1LDkgKzExMjUsNiBAQAogCWZvciAoaSA9IDA7IGkgPCBhY20tPnJ4X2J1ZmxpbWl0OyBpKyspCiAJCXVzYl9raWxsX3VyYihhY20tPnJ1W2ldLnVyYik7CiAKLQlJTklUX0xJU1RfSEVBRCgmYWNtLT5maWxsZWRfcmVhZF9idWZzKTsKLQlJTklUX0xJU1RfSEVBRCgmYWNtLT5zcGFyZV9yZWFkX2J1ZnMpOwotCiAJdGFza2xldF9lbmFibGUoJmFjbS0+dXJiX3Rhc2spOwogCiAJY2FuY2VsX3dvcmtfc3luYygmYWNtLT53b3JrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYyBiL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYwppbmRleCBkZTE3NzM4Li45MjE4Y2NhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9kZXZpby5jCkBAIC01NjUsNiArNTY1LDcgQEAKIAlzdHJ1Y3QgZGV2X3N0YXRlICpwczsKIAlpbnQgcmV0OwogCisJbG9ja19rZXJuZWwoKTsKIAkvKiBQcm90ZWN0IGFnYWluc3Qgc2ltdWx0YW5lb3VzIHJlbW92YWwgb3IgcmVsZWFzZSAqLwogCW11dGV4X2xvY2soJnVzYmZzX211dGV4KTsKIApAQCAtNjExLDYgKzYxMiw3IEBACiAJaWYgKHJldCkKIAkJa2ZyZWUocHMpOwogCW11dGV4X3VubG9jaygmdXNiZnNfbXV0ZXgpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2ZpbGUuYyBiL2RyaXZlcnMvdXNiL2NvcmUvZmlsZS5jCmluZGV4IDgxMzNjOTkuLmM2YTk1MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvZmlsZS5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvZmlsZS5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9yd3NlbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAKICNpbmNsdWRlICJ1c2IuaCIKQEAgLTMzLDYgKzM0LDcgQEAKIAlpbnQgZXJyID0gLUVOT0RFVjsKIAljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wcywgKm5ld19mb3BzID0gTlVMTDsKIAorCWxvY2tfa2VybmVsKCk7CiAJZG93bl9yZWFkKCZtaW5vcl9yd3NlbSk7CiAJYyA9IHVzYl9taW5vcnNbbWlub3JdOwogCkBAIC01MSw2ICs1Myw3IEBACiAJZm9wc19wdXQob2xkX2ZvcHMpOwogIGRvbmU6CiAJdXBfcmVhZCgmbWlub3JfcndzZW0pOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jIGIvZHJpdmVycy91c2IvY29yZS9oY2QuYwppbmRleCAwOWE1M2U3Li40MmE0MzY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKQEAgLTkyNCw2ICs5MjQsMTUgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCit2b2lkIHVzYl9lbmFibGVfcm9vdF9odWJfaXJxIChzdHJ1Y3QgdXNiX2J1cyAqYnVzKQoreworCXN0cnVjdCB1c2JfaGNkICpoY2Q7CisKKwloY2QgPSBjb250YWluZXJfb2YgKGJ1cywgc3RydWN0IHVzYl9oY2QsIHNlbGYpOworCWlmIChoY2QtPmRyaXZlci0+aHViX2lycV9lbmFibGUgJiYgaGNkLT5zdGF0ZSAhPSBIQ19TVEFURV9IQUxUKQorCQloY2QtPmRyaXZlci0+aHViX2lycV9lbmFibGUgKGhjZCk7Cit9CisKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIApAQCAtMTY4NCwxOSArMTY5MywzMCBAQAogaXJxcmV0dXJuX3QgdXNiX2hjZF9pcnEgKGludCBpcnEsIHZvaWQgKl9faGNkKQogewogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0gX19oY2Q7Ci0JaW50CQkJc3RhcnQgPSBoY2QtPnN0YXRlOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCWlycXJldHVybl90CQlyYzsKIAotCWlmICh1bmxpa2VseShzdGFydCA9PSBIQ19TVEFURV9IQUxUIHx8Ci0JICAgICF0ZXN0X2JpdChIQ0RfRkxBR19IV19BQ0NFU1NJQkxFLCAmaGNkLT5mbGFncykpKQotCQlyZXR1cm4gSVJRX05PTkU7Ci0JaWYgKGhjZC0+ZHJpdmVyLT5pcnEgKGhjZCkgPT0gSVJRX05PTkUpCi0JCXJldHVybiBJUlFfTk9ORTsKKwkvKiBJUlFGX0RJU0FCTEVEIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBzaGFyZWQgSVJRcworCSAqIHdoZW4gdGhlIGZpcnN0IGhhbmRsZXIgZG9lc24ndCB1c2UgaXQuICBTbyBsZXQncyBqdXN0CisJICogYXNzdW1lIGl0J3MgbmV2ZXIgdXNlZC4KKwkgKi8KKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKLQlzZXRfYml0KEhDRF9GTEFHX1NBV19JUlEsICZoY2QtPmZsYWdzKTsKKwlpZiAodW5saWtlbHkoaGNkLT5zdGF0ZSA9PSBIQ19TVEFURV9IQUxUIHx8CisJCSAgICAgIXRlc3RfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsICZoY2QtPmZsYWdzKSkpIHsKKwkJcmMgPSBJUlFfTk9ORTsKKwl9IGVsc2UgaWYgKGhjZC0+ZHJpdmVyLT5pcnEoaGNkKSA9PSBJUlFfTk9ORSkgeworCQlyYyA9IElSUV9OT05FOworCX0gZWxzZSB7CisJCXNldF9iaXQoSENEX0ZMQUdfU0FXX0lSUSwgJmhjZC0+ZmxhZ3MpOwogCi0JaWYgKHVubGlrZWx5KGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfSEFMVCkpCi0JCXVzYl9oY19kaWVkIChoY2QpOwotCXJldHVybiBJUlFfSEFORExFRDsKKwkJaWYgKHVubGlrZWx5KGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfSEFMVCkpCisJCQl1c2JfaGNfZGllZChoY2QpOworCQlyYyA9IElSUV9IQU5ETEVEOworCX0KKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gcmM7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xODYwLDYgKzE4ODAsMTMgQEAKIAogCS8qIGVuYWJsZSBpcnFzIGp1c3QgYmVmb3JlIHdlIHN0YXJ0IHRoZSBjb250cm9sbGVyICovCiAJaWYgKGhjZC0+ZHJpdmVyLT5pcnEpIHsKKworCQkvKiBJUlFGX0RJU0FCTEVEIGRvZXNuJ3Qgd29yayBhcyBhZHZlcnRpc2VkIHdoZW4gdXNlZCB0b2dldGhlcgorCQkgKiB3aXRoIElSUUZfU0hBUkVELiBBcyB1c2JfaGNkX2lycSgpIHdpbGwgYWx3YXlzIGRpc2FibGUKKwkJICogaW50ZXJydXB0cyB3ZSBjYW4gcmVtb3ZlIGl0IGhlcmUuCisJCSAqLworCQlpcnFmbGFncyAmPSB+SVJRRl9ESVNBQkxFRDsKKwogCQlzbnByaW50ZihoY2QtPmlycV9kZXNjciwgc2l6ZW9mKGhjZC0+aXJxX2Rlc2NyKSwgIiVzOnVzYiVkIiwKIAkJCQloY2QtPmRyaXZlci0+ZGVzY3JpcHRpb24sIGhjZC0+c2VsZi5idXNudW0pOwogCQlpZiAoKHJldHZhbCA9IHJlcXVlc3RfaXJxKGlycW51bSwgJnVzYl9oY2RfaXJxLCBpcnFmbGFncywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmggYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5oCmluZGV4IGEwYmY1ZGYuLmI5ZGUxNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmgKKysrIGIvZHJpdmVycy91c2IvY29yZS9oY2QuaApAQCAtMjEwLDYgKzIxMCw4IEBACiAJaW50CSgqYnVzX3N1c3BlbmQpKHN0cnVjdCB1c2JfaGNkICopOwogCWludAkoKmJ1c19yZXN1bWUpKHN0cnVjdCB1c2JfaGNkICopOwogCWludAkoKnN0YXJ0X3BvcnRfcmVzZXQpKHN0cnVjdCB1c2JfaGNkICosIHVuc2lnbmVkIHBvcnRfbnVtKTsKKwl2b2lkCSgqaHViX2lycV9lbmFibGUpKHN0cnVjdCB1c2JfaGNkICopOworCQkvKiBOZWVkZWQgb25seSBpZiBwb3J0LWNoYW5nZSBJUlFzIGFyZSBsZXZlbC10cmlnZ2VyZWQgKi8KIAogCQkvKiBmb3JjZSBoYW5kb3ZlciBvZiBoaWdoLXNwZWVkIHBvcnQgdG8gZnVsbC1zcGVlZCBjb21wYW5pb24gKi8KIAl2b2lkCSgqcmVsaW5xdWlzaF9wb3J0KShzdHJ1Y3QgdXNiX2hjZCAqLCBpbnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9odWIuYyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKaW5kZXggOGViNGRhMy4uNGNmZTMyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9odWIuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCkBAIC02NDQsNiArNjQ0LDQ4IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIAorLyogVHJ5IHRvIGlkZW50aWZ5IHdoaWNoIGRldmljZXMgbmVlZCBVU0ItUEVSU0lTVCBoYW5kbGluZyAqLworc3RhdGljIGludCBwZXJzaXN0ZW50X2RldmljZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKK3sKKwlpbnQgaTsKKwlpbnQgcmV0dmFsOworCXN0cnVjdCB1c2JfaG9zdF9jb25maWcgKmFjdGNvbmZpZzsKKworCS8qIEV4cGxpY2l0bHkgbm90IG1hcmtlZCBwZXJzaXN0ZW50PyAqLworCWlmICghdWRldi0+cGVyc2lzdF9lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCS8qIE5vIGFjdGl2ZSBjb25maWc/ICovCisJYWN0Y29uZmlnID0gdWRldi0+YWN0Y29uZmlnOworCWlmICghYWN0Y29uZmlnKQorCQlyZXR1cm4gMDsKKworCS8qIEZJWE1FISBXZSBzaG91bGQgY2hlY2sgd2hldGhlciBpdCdzIG9wZW4gaGVyZSBvciBub3QhICovCisKKwkvKgorCSAqIENoZWNrIHRoYXQgYWxsIHRoZSBpbnRlcmZhY2UgZHJpdmVycyBoYXZlIGEKKwkgKiAncmVzZXRfcmVzdW1lJyBlbnRyeXBvaW50CisJICovCisJcmV0dmFsID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgYWN0Y29uZmlnLT5kZXNjLmJOdW1JbnRlcmZhY2VzOyBpKyspIHsKKwkJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGY7CisJCXN0cnVjdCB1c2JfZHJpdmVyICpkcml2ZXI7CisKKwkJaW50ZiA9IGFjdGNvbmZpZy0+aW50ZXJmYWNlW2ldOworCQlpZiAoIWludGYtPmRldi5kcml2ZXIpCisJCQljb250aW51ZTsKKwkJZHJpdmVyID0gdG9fdXNiX2RyaXZlcihpbnRmLT5kZXYuZHJpdmVyKTsKKwkJaWYgKCFkcml2ZXItPnJlc2V0X3Jlc3VtZSkKKwkJCXJldHVybiAwOworCQkvKgorCQkgKiBXZSBoYXZlIGF0IGxlYXN0IG9uZSBkcml2ZXIsIGFuZCB0aGF0IG9uZQorCQkgKiBoYXMgYSByZXNldF9yZXN1bWUgbWV0aG9kLgorCQkgKi8KKwkJcmV0dmFsID0gMTsKKwl9CisJcmV0dXJuIHJldHZhbDsKK30KKwogc3RhdGljIHZvaWQgaHViX3Jlc3RhcnQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHR5cGUpCiB7CiAJc3RydWN0IHVzYl9kZXZpY2UgKmhkZXYgPSBodWItPmhkZXY7CkBAIC02NzEsMjYgKzcxMywxOSBAQAogCQl9CiAKIAkJLyogV2FzIHRoZSBwb3dlciBzZXNzaW9uIGxvc3Qgd2hpbGUgd2Ugd2VyZSBzdXNwZW5kZWQ/ICovCi0JCXN3aXRjaCAodHlwZSkgewotCQljYXNlIEhVQl9SRVNFVF9SRVNVTUU6Ci0JCQlwb3J0c3RhdHVzID0gMDsKLQkJCXBvcnRjaGFuZ2UgPSBVU0JfUE9SVF9TVEFUX0NfQ09OTkVDVElPTjsKLQkJCWJyZWFrOworCQlzdGF0dXMgPSBodWJfcG9ydF9zdGF0dXMoaHViLCBwb3J0MSwgJnBvcnRzdGF0dXMsICZwb3J0Y2hhbmdlKTsKIAotCQljYXNlIEhVQl9SRVNFVDoKLQkJY2FzZSBIVUJfUkVTVU1FOgotCQkJc3RhdHVzID0gaHViX3BvcnRfc3RhdHVzKGh1YiwgcG9ydDEsCi0JCQkJCSZwb3J0c3RhdHVzLCAmcG9ydGNoYW5nZSk7Ci0JCQlicmVhazsKLQkJfQorCQkvKiBJZiB0aGUgZGV2aWNlIGlzIGdvbmUsIGtodWJkIHdpbGwgaGFuZGxlIGl0IGxhdGVyICovCisJCWlmIChzdGF0dXMgPT0gMCAmJiAhKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pKQorCQkJY29udGludWU7CiAKIAkJLyogRm9yICJVU0JfUEVSU0lTVCItZW5hYmxlZCBjaGlsZHJlbiB3ZSBtdXN0CiAJCSAqIG1hcmsgdGhlIGNoaWxkIGRldmljZSBmb3IgcmVzZXQtcmVzdW1lIGFuZAogCQkgKiB0dXJuIG9mZiB0aGUgdmFyaW91cyBzdGF0dXMgY2hhbmdlcyB0byBwcmV2ZW50CiAJCSAqIGtodWJkIGZyb20gZGlzY29ubmVjdGluZyBpdCBsYXRlci4KIAkJICovCi0JCWlmICh1ZGV2LT5wZXJzaXN0X2VuYWJsZWQgJiYgc3RhdHVzID09IDAgJiYKLQkJCQkhKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0VOQUJMRSkpIHsKKwkJaWYgKHN0YXR1cyA9PSAwICYmICEocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NUQVRfRU5BQkxFKSAmJgorCQkJCXBlcnNpc3RlbnRfZGV2aWNlKHVkZXYpKSB7CiAJCQlpZiAocG9ydGNoYW5nZSAmIFVTQl9QT1JUX1NUQVRfQ19FTkFCTEUpCiAJCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRldiwgcG9ydDEsCiAJCQkJCQlVU0JfUE9SVF9GRUFUX0NfRU5BQkxFKTsKQEAgLTIwMzgsNiArMjA3Myw4IEBACiAJfQogCiAJY2xlYXJfYml0KHBvcnQxLCBodWItPmJ1c3lfYml0cyk7CisJaWYgKCFodWItPmhkZXYtPnBhcmVudCAmJiAhaHViLT5idXN5X2JpdHNbMF0pCisJCXVzYl9lbmFibGVfcm9vdF9odWJfaXJxKGh1Yi0+aGRldi0+YnVzKTsKIAogCWlmIChzdGF0dXMgPT0gMCkKIAkJc3RhdHVzID0gZmluaXNoX3BvcnRfcmVzdW1lKHVkZXYpOwpAQCAtMjk2Nyw2ICszMDA0LDExIEBACiAKIAkJaHViLT5hY3RpdmF0aW5nID0gMDsKIAorCQkvKiBJZiB0aGlzIGlzIGEgcm9vdCBodWIsIHRlbGwgdGhlIEhDRCBpdCdzIG9rYXkgdG8KKwkJICogcmUtZW5hYmxlIHBvcnQtY2hhbmdlIGludGVycnVwdHMgbm93LiAqLworCQlpZiAoIWhkZXYtPnBhcmVudCAmJiAhaHViLT5idXN5X2JpdHNbMF0pCisJCQl1c2JfZW5hYmxlX3Jvb3RfaHViX2lycShoZGV2LT5idXMpOworCiBsb29wX2F1dG9wbToKIAkJLyogQWxsb3cgYXV0b3N1c3BlbmQgaWYgd2UncmUgbm90IGdvaW5nIHRvIHJ1biBhZ2FpbiAqLwogCQlpZiAobGlzdF9lbXB0eSgmaHViLT5ldmVudF9saXN0KSkKQEAgLTMxOTIsNiArMzIzNCw4IEBACiAJCQlicmVhazsKIAl9CiAJY2xlYXJfYml0KHBvcnQxLCBwYXJlbnRfaHViLT5idXN5X2JpdHMpOworCWlmICghcGFyZW50X2hkZXYtPnBhcmVudCAmJiAhcGFyZW50X2h1Yi0+YnVzeV9iaXRzWzBdKQorCQl1c2JfZW5hYmxlX3Jvb3RfaHViX2lycShwYXJlbnRfaGRldi0+YnVzKTsKIAogCWlmIChyZXQgPCAwKQogCQlnb3RvIHJlX2VudW1lcmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMgYi9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jCmluZGV4IDNkYTFhYjQuLmMwNzBiMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYwpAQCAtNDcsNiArNDcsOSBAQAogCS8qIEVkaXJvbCBTRC0yMCAqLwogCXsgVVNCX0RFVklDRSgweDA1ODIsIDB4MDAyNyksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwKIAorCS8qIGFwcGxldG91Y2ggKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNWFjLCAweDAyMWEpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sCisKIAkvKiBBdmlzaW9uIEFWNjAwVSAqLwogCXsgVVNCX0RFVklDRSgweDA2MzgsIDB4MGExMyksIC5kcml2ZXJfaW5mbyA9CiAJICBVU0JfUVVJUktfU1RSSU5HX0ZFVENIXzI1NSB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcgYi9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZwppbmRleCA2ZTc4NGQyLi5kNmJhYjBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZwpAQCAtMTE4LDEwICsxMTgsMTAgQEAKIGNvbmZpZyBVU0JfR0FER0VUX0FUTUVMX1VTQkEKIAlib29sZWFuICJBdG1lbCBVU0JBIgogCXNlbGVjdCBVU0JfR0FER0VUX0RVQUxTUEVFRAotCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxQ0FQOQorCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX0FUOTFTQU05UkwKIAloZWxwCiAJICBVU0JBIGlzIHRoZSBpbnRlZ3JhdGVkIGhpZ2gtc3BlZWQgVVNCIERldmljZSBjb250cm9sbGVyIG9uCi0JICB0aGUgQVQzMkFQNzAweCBhbmQgQVQ5MUNBUDkgcHJvY2Vzc29ycyBmcm9tIEF0bWVsLgorCSAgdGhlIEFUMzJBUDcwMHgsIHNvbWUgQVQ5MVNBTTkgYW5kIEFUOTFDQVA5IHByb2Nlc3NvcnMgZnJvbSBBdG1lbC4KIAogY29uZmlnIFVTQl9BVE1FTF9VU0JBCiAJdHJpc3RhdGUKQEAgLTE3Miw3ICsxNzIsNyBAQAogCWRlZmF1bHQgVVNCX0dBREdFVAogCXNlbGVjdCBVU0JfR0FER0VUX1NFTEVDVEVECiAKLWNvbmZpZyBVU0JfR0FER0VUX1BYQTJYWAorY29uZmlnIFVTQl9HQURHRVRfUFhBMjVYCiAJYm9vbGVhbiAiUFhBIDI1eCBvciBJWFAgNHh4IgogCWRlcGVuZHMgb24gKEFSQ0hfUFhBICYmIFBYQTI1eCkgfHwgQVJDSF9JWFA0WFgKIAloZWxwCkBAIC0xODQsMTkgKzE4NCwxOSBAQAogCSAgIHplcm8gKGZvciBjb250cm9sIHRyYW5zZmVycykuCiAKIAkgICBTYXkgInkiIHRvIGxpbmsgdGhlIGRyaXZlciBzdGF0aWNhbGx5LCBvciAibSIgdG8gYnVpbGQgYQotCSAgIGR5bmFtaWNhbGx5IGxpbmtlZCBtb2R1bGUgY2FsbGVkICJweGEyeHhfdWRjIiBhbmQgZm9yY2UgYWxsCisJICAgZHluYW1pY2FsbHkgbGlua2VkIG1vZHVsZSBjYWxsZWQgInB4YTI1eF91ZGMiIGFuZCBmb3JjZSBhbGwKIAkgICBnYWRnZXQgZHJpdmVycyB0byBhbHNvIGJlIGR5bmFtaWNhbGx5IGxpbmtlZC4KIAotY29uZmlnIFVTQl9QWEEyWFgKK2NvbmZpZyBVU0JfUFhBMjVYCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFVTQl9HQURHRVRfUFhBMlhYCisJZGVwZW5kcyBvbiBVU0JfR0FER0VUX1BYQTI1WAogCWRlZmF1bHQgVVNCX0dBREdFVAogCXNlbGVjdCBVU0JfR0FER0VUX1NFTEVDVEVECiAKICMgaWYgdGhlcmUncyBvbmx5IG9uZSBnYWRnZXQgZHJpdmVyLCB1c2luZyBvbmx5IHR3byBidWxrIGVuZHBvaW50cywKICMgZG9uJ3Qgd2FzdGUgbWVtb3J5IGZvciB0aGUgb3RoZXIgZW5kcG9pbnRzCi1jb25maWcgVVNCX1BYQTJYWF9TTUFMTAotCWRlcGVuZHMgb24gVVNCX0dBREdFVF9QWEEyWFgKK2NvbmZpZyBVU0JfUFhBMjVYX1NNQUxMCisJZGVwZW5kcyBvbiBVU0JfR0FER0VUX1BYQTI1WAogCWJvb2wKIAlkZWZhdWx0IG4gaWYgVVNCX0VUSF9STkRJUwogCWRlZmF1bHQgeSBpZiBVU0JfWkVSTwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L01ha2VmaWxlIGIvZHJpdmVycy91c2IvZ2FkZ2V0L01ha2VmaWxlCmluZGV4IDEyMzU3MjUuLmUyNThhZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvTWFrZWZpbGUKQEAgLTgsNyArOCw3IEBACiBvYmotJChDT05GSUdfVVNCX0RVTU1ZX0hDRCkJKz0gZHVtbXlfaGNkLm8KIG9iai0kKENPTkZJR19VU0JfTkVUMjI4MCkJKz0gbmV0MjI4MC5vCiBvYmotJChDT05GSUdfVVNCX0FNRDU1MzZVREMpCSs9IGFtZDU1MzZ1ZGMubwotb2JqLSQoQ09ORklHX1VTQl9QWEEyWFgpCSs9IHB4YTJ4eF91ZGMubworb2JqLSQoQ09ORklHX1VTQl9QWEEyNVgpCSs9IHB4YTI1eF91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9QWEEyN1gpCSs9IHB4YTI3eF91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9HT0tVKQkJKz0gZ29rdV91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9PTUFQKQkJKz0gb21hcF91ZGMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2F0OTFfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYwppbmRleCAyNzRjNjBhLi5iNmIyYTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYwpAQCAtODg4LDcgKzg4OCw3IEBACiAJCWF0OTFfdWRwX3dyaXRlKHVkYywgQVQ5MV9VRFBfVFhWQywgMCk7CiAJCWlmIChjcHVfaXNfYXQ5MXJtOTIwMCgpKQogCQkJZ3Bpb19zZXRfdmFsdWUodWRjLT5ib2FyZC5wdWxsdXBfcGluLCBhY3RpdmUpOwotCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSkgeworCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQkJdTMyCXR4dmMgPSBhdDkxX3VkcF9yZWFkKHVkYywgQVQ5MV9VRFBfVFhWQyk7CiAKIAkJCXR4dmMgfD0gQVQ5MV9VRFBfVFhWQ19QVU9OOwpAQCAtOTA2LDcgKzkwNiw3IEBACiAJCWF0OTFfdWRwX3dyaXRlKHVkYywgQVQ5MV9VRFBfVFhWQywgQVQ5MV9VRFBfVFhWQ19UWFZESVMpOwogCQlpZiAoY3B1X2lzX2F0OTFybTkyMDAoKSkKIAkJCWdwaW9fc2V0X3ZhbHVlKHVkYy0+Ym9hcmQucHVsbHVwX3BpbiwgIWFjdGl2ZSk7Ci0JCWVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpKSB7CisJCWVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpIHx8IGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CiAJCQl1MzIJdHh2YyA9IGF0OTFfdWRwX3JlYWQodWRjLCBBVDkxX1VEUF9UWFZDKTsKIAogCQkJdHh2YyAmPSB+QVQ5MV9VRFBfVFhWQ19QVU9OOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2V0aGVyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYwppbmRleCA4ZDYxZWE2Li40Y2UzOTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYwpAQCAtMjYyLDcgKzI2Miw3IEBACiAvKiBGb3IgQ0RDLWluY2FwYWJsZSBoYXJkd2FyZSwgY2hvb3NlIHRoZSBzaW1wbGUgY2RjIHN1YnNldC4KICAqIEFueXRoaW5nIHRoYXQgdGFsa3MgYnVsayAod2l0aG91dCBub3RhYmxlIGJ1Z3MpIGNhbiBkbyB0aGlzLgogICovCi0jaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYCisjaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMjVYCiAjZGVmaW5lCURFVl9DT05GSUdfU1VCU0VUCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2dhZGdldF9jaGlwcy5oIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2dhZGdldF9jaGlwcy5oCmluZGV4IGY3ZjE1OWMuLmNhNTE0OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9nYWRnZXRfY2hpcHMuaAorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZ2FkZ2V0X2NoaXBzLmgKQEAgLTI5LDggKzI5LDggQEAKICNkZWZpbmUJZ2FkZ2V0X2lzX2R1bW15KGcpCTAKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYCi0jZGVmaW5lCWdhZGdldF9pc19weGEoZykJIXN0cmNtcCgicHhhMnh4X3VkYyIsIChnKS0+bmFtZSkKKyNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9QWEEyNVgKKyNkZWZpbmUJZ2FkZ2V0X2lzX3B4YShnKQkhc3RyY21wKCJweGEyNXhfdWRjIiwgKGcpLT5uYW1lKQogI2Vsc2UKICNkZWZpbmUJZ2FkZ2V0X2lzX3B4YShnKQkwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9pbm9kZS5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2lub2RlLmMKaW5kZXggNjliMGEyNy4uZjEzMmE5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2lub2RlLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2lub2RlLmMKQEAgLTE1MDEsNyArMTUwMSw3IEBACiAJCX0KIAkJYnJlYWs7CiAKLSNpZm5kZWYJQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYCisjaWZuZGVmCUNPTkZJR19VU0JfR0FER0VUX1BYQTI1WAogCS8qIFBYQSBhdXRvbWFnaWNhbGx5IGhhbmRsZXMgdGhpcyByZXF1ZXN0IHRvbyAqLwogCWNhc2UgVVNCX1JFUV9HRVRfQ09ORklHVVJBVElPTjoKIAkJaWYgKGN0cmwtPmJSZXF1ZXN0VHlwZSAhPSAweDgwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuYwppbmRleCA4ODFkNzRjLi4wM2E3ZjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuYwpAQCAtMTM1LDEzICsxMzUsMTcgQEAKIAogCWlmIChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pCiAJCW51bSB8PSBVRENfRVBfRElSOwotCVVEQ19FUF9OVU1fUkVHID0gbnVtIHwgc2VsZWN0OworCW9tYXBfd3JpdGV3KG51bSB8IHNlbGVjdCwgVURDX0VQX05VTSk7CiAJLyogd2hlbiBzZWxlY3QsIE1VU1QgZGVzZWxlY3QgbGF0ZXIgISEgKi8KIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGRlc2VsZWN0X2VwKHZvaWQpCiB7Ci0JVURDX0VQX05VTV9SRUcgJj0gflVEQ19FUF9TRUw7CisJdTE2IHc7CisKKwl3ID0gb21hcF9yZWFkdyhVRENfRVBfTlVNKTsKKwl3ICY9IH5VRENfRVBfU0VMOworCW9tYXBfd3JpdGV3KHcsIFVEQ19FUF9OVU0pOwogCS8qIDYgd2FpdCBzdGF0ZXMgYmVmb3JlIFRYIHdpbGwgaGFwcGVuICovCiB9CiAKQEAgLTIxNiw3ICsyMjAsNyBAQAogCWVwLT5oYXNfZG1hID0gMDsKIAllcC0+bGNoID0gLTE7CiAJdXNlX2VwKGVwLCBVRENfRVBfU0VMKTsKLQlVRENfQ1RSTF9SRUcgPSB1ZGMtPmNscl9oYWx0OworCW9tYXBfd3JpdGV3KHVkYy0+Y2xyX2hhbHQsIFVEQ19DVFJMKTsKIAllcC0+YWNrd2FpdCA9IDA7CiAJZGVzZWxlY3RfZXAoKTsKIApAQCAtMjMyLDcgKzIzNiw3IEBACiAJaWYgKGRlc2MtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DCiAJCQkmJiAhZXAtPmhhc19kbWEKIAkJCSYmICEoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSkgewotCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAl9CiAKQEAgLTI1OSw3ICsyNjMsNyBAQAogCW51a2UgKGVwLCAtRVNIVVRET1dOKTsKIAllcC0+ZXAubWF4cGFja2V0ID0gZXAtPm1heHBhY2tldDsKIAllcC0+aGFzX2RtYSA9IDA7Ci0JVURDX0NUUkxfUkVHID0gVURDX1NFVF9IQUxUOworCW9tYXBfd3JpdGV3KFVEQ19TRVRfSEFMVCwgVURDX0NUUkwpOwogCWxpc3RfZGVsX2luaXQoJmVwLT5pc28pOwogCWRlbF90aW1lcigmZXAtPnRpbWVyKTsKIApAQCAtMzYwLDEzICszNjQsMTMgQEAKIAlpZiAobGlrZWx5KCgoKGludClidWYpICYgMSkgPT0gMCkpIHsKIAkJd3AgPSAodTE2ICopYnVmOwogCQl3aGlsZSAobWF4ID49IDIpIHsKLQkJCVVEQ19EQVRBX1JFRyA9ICp3cCsrOworCQkJb21hcF93cml0ZXcoKndwKyssIFVEQ19EQVRBKTsKIAkJCW1heCAtPSAyOwogCQl9CiAJCWJ1ZiA9ICh1OCAqKXdwOwogCX0KIAl3aGlsZSAobWF4LS0pCi0JCSoodm9sYXRpbGUgdTggKikmVURDX0RBVEFfUkVHID0gKmJ1ZisrOworCQlvbWFwX3dyaXRlYigqYnVmKyssIFVEQ19EQVRBKTsKIAlyZXR1cm4gbGVuOwogfQogCkBAIC0zODUsMTMgKzM4OSwxMyBAQAogCXByZWZldGNoKGJ1Zik7CiAKIAkvKiBQSU8tSU4gaXNuJ3QgZG91YmxlIGJ1ZmZlcmVkIGV4Y2VwdCBmb3IgaXNvICovCi0JZXBfc3RhdCA9IFVEQ19TVEFUX0ZMR19SRUc7CisJZXBfc3RhdCA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAlpZiAoZXBfc3RhdCAmIFVEQ19GSUZPX1VOV1JJVEFCTEUpCiAJCXJldHVybiAwOwogCiAJY291bnQgPSBlcC0+ZXAubWF4cGFja2V0OwogCWNvdW50ID0gd3JpdGVfcGFja2V0KGJ1ZiwgcmVxLCBjb3VudCk7Ci0JVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCWVwLT5hY2t3YWl0ID0gMTsKIAogCS8qIGxhc3QgcGFja2V0IGlzIG9mdGVuIHNob3J0IChzb21ldGltZXMgYSB6bHApICovCkBAIC00MjUsMTMgKzQyOSwxMyBAQAogCWlmIChsaWtlbHkoKCgoaW50KWJ1ZikgJiAxKSA9PSAwKSkgewogCQl3cCA9ICh1MTYgKilidWY7CiAJCXdoaWxlIChhdmFpbCA+PSAyKSB7Ci0JCQkqd3ArKyA9IFVEQ19EQVRBX1JFRzsKKwkJCSp3cCsrID0gb21hcF9yZWFkdyhVRENfREFUQSk7CiAJCQlhdmFpbCAtPSAyOwogCQl9CiAJCWJ1ZiA9ICh1OCAqKXdwOwogCX0KIAl3aGlsZSAoYXZhaWwtLSkKLQkJKmJ1ZisrID0gKih2b2xhdGlsZSB1OCAqKSZVRENfREFUQV9SRUc7CisJCSpidWYrKyA9IG9tYXBfcmVhZGIoVURDX0RBVEEpOwogCXJldHVybiBsZW47CiB9CiAKQEAgLTQ0Niw3ICs0NTAsNyBAQAogCXByZWZldGNodyhidWYpOwogCiAJZm9yICg7OykgewotCQl1MTYJZXBfc3RhdCA9IFVEQ19TVEFUX0ZMR19SRUc7CisJCXUxNgllcF9zdGF0ID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCiAJCWlzX2xhc3QgPSAwOwogCQlpZiAoZXBfc3RhdCAmIEZJRk9fRU1QVFkpIHsKQEAgLTQ2MCw3ICs0NjQsNyBAQAogCQlpZiAoZXBfc3RhdCAmIFVEQ19GSUZPX0ZVTEwpCiAJCQlhdmFpbCA9IGVwLT5lcC5tYXhwYWNrZXQ7CiAJCWVsc2UgIHsKLQkJCWF2YWlsID0gVURDX1JYRlNUQVRfUkVHOworCQkJYXZhaWwgPSBvbWFwX3JlYWR3KFVEQ19SWEZTVEFUKTsKIAkJCWVwLT5mbmYgPSBlcC0+ZG91YmxlX2J1ZjsKIAkJfQogCQljb3VudCA9IHJlYWRfcGFja2V0KGJ1ZiwgcmVxLCBhdmFpbCk7CkBAIC00NzMsNyArNDc3LDcgQEAKIAkJCQlyZXEtPnJlcS5zdGF0dXMgPSAtRU9WRVJGTE9XOwogCQkJCWF2YWlsIC09IGNvdW50OwogCQkJCXdoaWxlIChhdmFpbC0tKQotCQkJCQkodm9pZCkgKih2b2xhdGlsZSB1OCAqKSZVRENfREFUQV9SRUc7CisJCQkJCW9tYXBfcmVhZHcoVURDX0RBVEEpOwogCQkJfQogCQl9IGVsc2UgaWYgKHJlcS0+cmVxLmxlbmd0aCA9PSByZXEtPnJlcS5hY3R1YWwpCiAJCQlpc19sYXN0ID0gMTsKQEAgLTQ5MSwzMiArNDk1LDYgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGRtYV9jc2FjKHVuc2lnbmVkIGxjaCkKLXsKLQlkbWFfYWRkcl90CWNzYWM7Ci0KLQkvKiBvbWFwIDMuMi8zLjMgZXJyYXR1bTogc29tZXRpbWVzIDAgaXMgcmV0dXJuZWQgaWYgQ1NBQy9DREFDIGlzCi0JICogcmVhZCBiZWZvcmUgdGhlIERNQSBjb250cm9sbGVyIGZpbmlzaGVkIGRpc2FibGluZyB0aGUgY2hhbm5lbC4KLQkgKi8KLQljc2FjID0gT01BUF9ETUFfQ1NBQ19SRUcobGNoKTsKLQlpZiAoY3NhYyA9PSAwKQotCQljc2FjID0gT01BUF9ETUFfQ1NBQ19SRUcobGNoKTsKLQlyZXR1cm4gY3NhYzsKLX0KLQotc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGRtYV9jZGFjKHVuc2lnbmVkIGxjaCkKLXsKLQlkbWFfYWRkcl90CWNkYWM7Ci0KLQkvKiBvbWFwIDMuMi8zLjMgZXJyYXR1bTogc29tZXRpbWVzIDAgaXMgcmV0dXJuZWQgaWYgQ1NBQy9DREFDIGlzCi0JICogcmVhZCBiZWZvcmUgdGhlIERNQSBjb250cm9sbGVyIGZpbmlzaGVkIGRpc2FibGluZyB0aGUgY2hhbm5lbC4KLQkgKi8KLQljZGFjID0gT01BUF9ETUFfQ0RBQ19SRUcobGNoKTsKLQlpZiAoY2RhYyA9PSAwKQotCQljZGFjID0gT01BUF9ETUFfQ0RBQ19SRUcobGNoKTsKLQlyZXR1cm4gY2RhYzsKLX0KLQogc3RhdGljIHUxNiBkbWFfc3JjX2xlbihzdHJ1Y3Qgb21hcF9lcCAqZXAsIGRtYV9hZGRyX3Qgc3RhcnQpCiB7CiAJZG1hX2FkZHJfdAllbmQ7CkBAIC01MjcsNyArNTA1LDcgQEAKIAlpZiAoY3B1X2lzX29tYXAxNXh4KCkpCiAJCXJldHVybiAwOwogCi0JZW5kID0gZG1hX2NzYWMoZXAtPmxjaCk7CisJZW5kID0gb21hcF9nZXRfZG1hX3NyY19wb3MoZXAtPmxjaCk7CiAJaWYgKGVuZCA9PSBlcC0+ZG1hX2NvdW50ZXIpCiAJCXJldHVybiAwOwogCkBAIC01MzcsMTUgKzUxNSwxMSBAQAogCXJldHVybiBlbmQgLSBzdGFydDsKIH0KIAotI2RlZmluZSBETUFfREVTVF9MQVNUKHgpIChjcHVfaXNfb21hcDE1eHgoKSBcCi0JCT8gT01BUF9ETUFfQ1NBQ19SRUcoeCkgLyogcmVhbGx5OiBDUEMgKi8gXAotCQk6IGRtYV9jZGFjKHgpKQotCiBzdGF0aWMgdTE2IGRtYV9kZXN0X2xlbihzdHJ1Y3Qgb21hcF9lcCAqZXAsIGRtYV9hZGRyX3Qgc3RhcnQpCiB7CiAJZG1hX2FkZHJfdAllbmQ7CiAKLQllbmQgPSBETUFfREVTVF9MQVNUKGVwLT5sY2gpOworCWVuZCA9IG9tYXBfZ2V0X2RtYV9kc3RfcG9zKGVwLT5sY2gpOwogCWlmIChlbmQgPT0gZXAtPmRtYV9jb3VudGVyKQogCQlyZXR1cm4gMDsKIApAQCAtNTY1LDcgKzUzOSw3IEBACiAKIHN0YXRpYyB2b2lkIG5leHRfaW5fZG1hKHN0cnVjdCBvbWFwX2VwICplcCwgc3RydWN0IG9tYXBfcmVxICpyZXEpCiB7Ci0JdTE2CQl0eGRtYV9jdHJsOworCXUxNgkJdHhkbWFfY3RybCwgdzsKIAl1bnNpZ25lZAlsZW5ndGggPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7CiAJY29uc3QgaW50CXN5bmNfbW9kZSA9IGNwdV9pc19vbWFwMTV4eCgpCiAJCQkJPyBPTUFQX0RNQV9TWU5DX0ZSQU1FCkBAIC01OTYsMTQgKzU3MCwxOCBAQAogCQkwLCAwKTsKIAogCW9tYXBfc3RhcnRfZG1hKGVwLT5sY2gpOwotCWVwLT5kbWFfY291bnRlciA9IGRtYV9jc2FjKGVwLT5sY2gpOwotCVVEQ19ETUFfSVJRX0VOX1JFRyB8PSBVRENfVFhfRE9ORV9JRShlcC0+ZG1hX2NoYW5uZWwpOwotCVVEQ19UWERNQV9SRUcoZXAtPmRtYV9jaGFubmVsKSA9IFVEQ19UWE5fU1RBUlQgfCB0eGRtYV9jdHJsOworCWVwLT5kbWFfY291bnRlciA9IG9tYXBfZ2V0X2RtYV9zcmNfcG9zKGVwLT5sY2gpOworCXcgPSBvbWFwX3JlYWR3KFVEQ19ETUFfSVJRX0VOKTsKKwl3IHw9IFVEQ19UWF9ET05FX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJb21hcF93cml0ZXcodywgVURDX0RNQV9JUlFfRU4pOworCW9tYXBfd3JpdGV3KFVEQ19UWE5fU1RBUlQgfCB0eGRtYV9jdHJsLCBVRENfVFhETUEoZXAtPmRtYV9jaGFubmVsKSk7CiAJcmVxLT5kbWFfYnl0ZXMgPSBsZW5ndGg7CiB9CiAKIHN0YXRpYyB2b2lkIGZpbmlzaF9pbl9kbWEoc3RydWN0IG9tYXBfZXAgKmVwLCBzdHJ1Y3Qgb21hcF9yZXEgKnJlcSwgaW50IHN0YXR1cykKIHsKKwl1MTYgdzsKKwogCWlmIChzdGF0dXMgPT0gMCkgewogCQlyZXEtPnJlcS5hY3R1YWwgKz0gcmVxLT5kbWFfYnl0ZXM7CiAKQEAgLTYyMCw3ICs1OTgsOSBAQAogCiAJLyogdHggY29tcGxldGlvbiAqLwogCW9tYXBfc3RvcF9kbWEoZXAtPmxjaCk7Ci0JVURDX0RNQV9JUlFfRU5fUkVHICY9IH5VRENfVFhfRE9ORV9JRShlcC0+ZG1hX2NoYW5uZWwpOworCXcgPSBvbWFwX3JlYWR3KFVEQ19ETUFfSVJRX0VOKTsKKwl3ICY9IH5VRENfVFhfRE9ORV9JRShlcC0+ZG1hX2NoYW5uZWwpOworCW9tYXBfd3JpdGV3KHcsIFVEQ19ETUFfSVJRX0VOKTsKIAlkb25lKGVwLCByZXEsIHN0YXR1cyk7CiB9CiAKQEAgLTYyOCw2ICs2MDgsNyBAQAogewogCXVuc2lnbmVkIHBhY2tldHMgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7CiAJaW50IGRtYV90cmlnZ2VyID0gMDsKKwl1MTYgdzsKIAogCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKIAkJZG1hX3RyaWdnZXIgPSBPTUFQMjRYWF9ETUEoVVNCX1cyRkNfUlgwLCBlcC0+ZG1hX2NoYW5uZWwpOwpAQCAtNjU0LDEyICs2MzUsMTQgQEAKIAlvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMoZXAtPmxjaCwgT01BUF9ETUFfUE9SVF9FTUlGRiwKIAkJT01BUF9ETUFfQU1PREVfUE9TVF9JTkMsIHJlcS0+cmVxLmRtYSArIHJlcS0+cmVxLmFjdHVhbCwKIAkJMCwgMCk7Ci0JZXAtPmRtYV9jb3VudGVyID0gRE1BX0RFU1RfTEFTVChlcC0+bGNoKTsKKwllcC0+ZG1hX2NvdW50ZXIgPSBvbWFwX2dldF9kbWFfZHN0X3BvcyhlcC0+bGNoKTsKIAotCVVEQ19SWERNQV9SRUcoZXAtPmRtYV9jaGFubmVsKSA9IFVEQ19SWE5fU1RPUCB8IChwYWNrZXRzIC0gMSk7Ci0JVURDX0RNQV9JUlFfRU5fUkVHIHw9IFVEQ19SWF9FT1RfSUUoZXAtPmRtYV9jaGFubmVsKTsKLQlVRENfRVBfTlVNX1JFRyA9IChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIDB4Zik7Ci0JVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCW9tYXBfd3JpdGV3KFVEQ19SWE5fU1RPUCB8IChwYWNrZXRzIC0gMSksIFVEQ19SWERNQShlcC0+ZG1hX2NoYW5uZWwpKTsKKwl3ID0gb21hcF9yZWFkdyhVRENfRE1BX0lSUV9FTik7CisJdyB8PSBVRENfUlhfRU9UX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJb21hcF93cml0ZXcodywgVURDX0RNQV9JUlFfRU4pOworCW9tYXBfd3JpdGV3KGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgMHhmLCBVRENfRVBfTlVNKTsKKwlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAogCW9tYXBfc3RhcnRfZG1hKGVwLT5sY2gpOwogfQpAQCAtNjY3LDcgKzY1MCw3IEBACiBzdGF0aWMgdm9pZAogZmluaXNoX291dF9kbWEoc3RydWN0IG9tYXBfZXAgKmVwLCBzdHJ1Y3Qgb21hcF9yZXEgKnJlcSwgaW50IHN0YXR1cywgaW50IG9uZSkKIHsKLQl1MTYJY291bnQ7CisJdTE2CWNvdW50LCB3OwogCiAJaWYgKHN0YXR1cyA9PSAwKQogCQllcC0+ZG1hX2NvdW50ZXIgPSAodTE2KSAocmVxLT5yZXEuZG1hICsgcmVxLT5yZXEuYWN0dWFsKTsKQEAgLTY4NiwxMyArNjY5LDE1IEBACiAJCXJldHVybjsKIAogCS8qIHJ4IGNvbXBsZXRpb24gKi8KLQlVRENfRE1BX0lSUV9FTl9SRUcgJj0gflVEQ19SWF9FT1RfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwl3ID0gb21hcF9yZWFkdyhVRENfRE1BX0lSUV9FTik7CisJdyAmPSB+VURDX1JYX0VPVF9JRShlcC0+ZG1hX2NoYW5uZWwpOworCW9tYXBfd3JpdGV3KHcsIFVEQ19ETUFfSVJRX0VOKTsKIAlkb25lKGVwLCByZXEsIHN0YXR1cyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRtYV9pcnEoc3RydWN0IG9tYXBfdWRjICp1ZGMsIHUxNiBpcnFfc3JjKQogewotCXUxNgkJZG1hbl9zdGF0ID0gVURDX0RNQU5fU1RBVF9SRUc7CisJdTE2CQlkbWFuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19ETUFOX1NUQVQpOwogCXN0cnVjdCBvbWFwX2VwCSplcDsKIAlzdHJ1Y3Qgb21hcF9yZXEJKnJlcTsKIApAQCAtNzA2LDcgKzY5MSw3IEBACiAJCQkJCQlzdHJ1Y3Qgb21hcF9yZXEsIHF1ZXVlKTsKIAkJCWZpbmlzaF9pbl9kbWEoZXAsIHJlcSwgMCk7CiAJCX0KLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX1RYTl9ET05FOworCQlvbWFwX3dyaXRldyhVRENfVFhOX0RPTkUsIFVEQ19JUlFfU1JDKTsKIAogCQlpZiAoIWxpc3RfZW1wdHkgKCZlcC0+cXVldWUpKSB7CiAJCQlyZXEgPSBjb250YWluZXJfb2YoZXAtPnF1ZXVlLm5leHQsCkBAIC03MjUsNyArNzEwLDcgQEAKIAkJCQkJc3RydWN0IG9tYXBfcmVxLCBxdWV1ZSk7CiAJCQlmaW5pc2hfb3V0X2RtYShlcCwgcmVxLCAwLCBkbWFuX3N0YXQgJiBVRENfRE1BX1JYX1NCKTsKIAkJfQotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfUlhOX0VPVDsKKwkJb21hcF93cml0ZXcoVURDX1JYTl9FT1QsIFVEQ19JUlFfU1JDKTsKIAogCQlpZiAoIWxpc3RfZW1wdHkgKCZlcC0+cXVldWUpKSB7CiAJCQlyZXEgPSBjb250YWluZXJfb2YoZXAtPnF1ZXVlLm5leHQsCkBAIC03MzksNyArNzI0LDcgQEAKIAkJZXAtPmlycXMrKzsKIAkJLyogb21hcDE1eHggZG9lcyB0aGlzIHVuYXNrZWQuLi4gKi8KIAkJVkRCRygiJXMsIFJYX0NOVCBpcnE/XG4iLCBlcC0+ZXAubmFtZSk7Ci0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19SWE5fQ05UOworCQlvbWFwX3dyaXRldyhVRENfUlhOX0NOVCwgVURDX0lSUV9TUkMpOwogCX0KIH0KIApAQCAtNzYyLDkgKzc0Nyw5IEBACiAKIAlpc19pbiA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTjsKIAlpZiAoaXNfaW4pCi0JCXJlZyA9IFVEQ19UWERNQV9DRkdfUkVHOworCQlyZWcgPSBvbWFwX3JlYWR3KFVEQ19UWERNQV9DRkcpOwogCWVsc2UKLQkJcmVnID0gVURDX1JYRE1BX0NGR19SRUc7CisJCXJlZyA9IG9tYXBfcmVhZHcoVURDX1JYRE1BX0NGRyk7CiAJcmVnIHw9IFVEQ19ETUFfUkVROwkJLyogInB1bHNlIiBhY3RpdmF0ZWQgKi8KIAogCWVwLT5kbWFfY2hhbm5lbCA9IDA7CkBAIC03OTIsNyArNzc3LDcgQEAKIAkJc3RhdHVzID0gb21hcF9yZXF1ZXN0X2RtYShkbWFfY2hhbm5lbCwKIAkJCWVwLT5lcC5uYW1lLCBkbWFfZXJyb3IsIGVwLCAmZXAtPmxjaCk7CiAJCWlmIChzdGF0dXMgPT0gMCkgewotCQkJVURDX1RYRE1BX0NGR19SRUcgPSByZWc7CisJCQlvbWFwX3dyaXRldyhyZWcsIFVEQ19UWERNQV9DRkcpOwogCQkJLyogRU1JRkYgb3IgU0RSQyAqLwogCQkJb21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKGVwLT5sY2gsCiAJCQkJCQlPTUFQX0RNQV9EQVRBX0JVUlNUXzQpOwpAQCAtODAxLDcgKzc4Niw3IEBACiAJCQlvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMoZXAtPmxjaCwKIAkJCQlPTUFQX0RNQV9QT1JUX1RJUEIsCiAJCQkJT01BUF9ETUFfQU1PREVfQ09OU1RBTlQsCi0JCQkJKHVuc2lnbmVkIGxvbmcpIGlvX3YycCgodTMyKSZVRENfREFUQV9ETUFfUkVHKSwKKwkJCQkodW5zaWduZWQgbG9uZykgaW9fdjJwKFVEQ19EQVRBX0RNQSksCiAJCQkJMCwgMCk7CiAJCX0KIAl9IGVsc2UgewpAQCAtODEzLDEyICs3OTgsMTIgQEAKIAkJc3RhdHVzID0gb21hcF9yZXF1ZXN0X2RtYShkbWFfY2hhbm5lbCwKIAkJCWVwLT5lcC5uYW1lLCBkbWFfZXJyb3IsIGVwLCAmZXAtPmxjaCk7CiAJCWlmIChzdGF0dXMgPT0gMCkgewotCQkJVURDX1JYRE1BX0NGR19SRUcgPSByZWc7CisJCQlvbWFwX3dyaXRldyhyZWcsIFVEQ19SWERNQV9DRkcpOwogCQkJLyogVElQQiAqLwogCQkJb21hcF9zZXRfZG1hX3NyY19wYXJhbXMoZXAtPmxjaCwKIAkJCQlPTUFQX0RNQV9QT1JUX1RJUEIsCiAJCQkJT01BUF9ETUFfQU1PREVfQ09OU1RBTlQsCi0JCQkJKHVuc2lnbmVkIGxvbmcpIGlvX3YycCgodTMyKSZVRENfREFUQV9ETUFfUkVHKSwKKwkJCQkodW5zaWduZWQgbG9uZykgaW9fdjJwKFVEQ19EQVRBX0RNQSksCiAJCQkJMCwgMCk7CiAJCQkvKiBFTUlGRiBvciBTRFJDICovCiAJCQlvbWFwX3NldF9kbWFfZGVzdF9idXJzdF9tb2RlKGVwLT5sY2gsCkBAIC04MzQsNyArODE5LDcgQEAKIAogCQkvKiBjaGFubmVsIHR5cGUgUDogaHcgc3luY2ggKGZpZm8pICovCiAJCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpCi0JCQlPTUFQMV9ETUFfTENIX0NUUkxfUkVHKGVwLT5sY2gpID0gMjsKKwkJCW9tYXBfc2V0X2RtYV9jaGFubmVsX21vZGUoZXAtPmxjaCwgT01BUF9ETUFfTENIX1ApOwogCX0KIAoganVzdF9yZXN0YXJ0OgpAQCAtODYwLDcgKzg0NSw3IEBACiAJCQkoaXNfaW4gPyB3cml0ZV9maWZvIDogcmVhZF9maWZvKShlcCwgcmVxKTsKIAkJCWRlc2VsZWN0X2VwKCk7CiAJCQlpZiAoIWlzX2luKSB7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQkJfQogCQkJLyogSU46IDYgd2FpdCBzdGF0ZXMgYmVmb3JlIGl0J2xsIHR4ICovCkBAIC04ODEsNyArODY2LDcgQEAKIAllbHNlCiAJCXJlcSA9IE5VTEw7CiAKLQlhY3RpdmUgPSAoKDEgPDwgNykgJiBPTUFQX0RNQV9DQ1JfUkVHKGVwLT5sY2gpKSAhPSAwOworCWFjdGl2ZSA9IG9tYXBfZ2V0X2RtYV9hY3RpdmVfc3RhdHVzKGVwLT5sY2gpOwogCiAJREJHKCIlcyByZWxlYXNlICVzICVjeGRtYSVkICVwXG4iLCBlcC0+ZXAubmFtZSwKIAkJCWFjdGl2ZSA/ICJhY3RpdmUiIDogImlkbGUiLApAQCAtODk0LDIzICs4NzksMjUgQEAKIAogCS8qIHdhaXQgdGlsbCBjdXJyZW50IHBhY2tldCBETUEgZmluaXNoZXMsIGFuZCBmaWZvIGVtcHRpZXMgKi8KIAlpZiAoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSB7Ci0JCVVEQ19UWERNQV9DRkdfUkVHID0gKFVEQ19UWERNQV9DRkdfUkVHICYgfm1hc2spIHwgVURDX0RNQV9SRVE7CisJCW9tYXBfd3JpdGV3KChvbWFwX3JlYWR3KFVEQ19UWERNQV9DRkcpICYgfm1hc2spIHwgVURDX0RNQV9SRVEsCisJCQkJCVVEQ19UWERNQV9DRkcpOwogCiAJCWlmIChyZXEpIHsKIAkJCWZpbmlzaF9pbl9kbWEoZXAsIHJlcSwgLUVDT05OUkVTRVQpOwogCiAJCQkvKiBjbGVhciBGSUZPOyBob3N0cyBwcm9iYWJseSB3b24ndCBlbXB0eSBpdCAqLwogCQkJdXNlX2VwKGVwLCBVRENfRVBfU0VMKTsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7CisJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CiAJCQlkZXNlbGVjdF9lcCgpOwogCQl9Ci0JCXdoaWxlIChVRENfVFhETUFfQ0ZHX1JFRyAmIG1hc2spCisJCXdoaWxlIChvbWFwX3JlYWR3KFVEQ19UWERNQV9DRkcpICYgbWFzaykKIAkJCXVkZWxheSgxMCk7CiAJfSBlbHNlIHsKLQkJVURDX1JYRE1BX0NGR19SRUcgPSAoVURDX1JYRE1BX0NGR19SRUcgJiB+bWFzaykgfCBVRENfRE1BX1JFUTsKKwkJb21hcF93cml0ZXcoKG9tYXBfcmVhZHcoVURDX1JYRE1BX0NGRykgJiB+bWFzaykgfCBVRENfRE1BX1JFUSwKKwkJCQkJVURDX1JYRE1BX0NGRyk7CiAKIAkJLyogZG1hIGVtcHRpZXMgdGhlIGZpZm8gKi8KLQkJd2hpbGUgKFVEQ19SWERNQV9DRkdfUkVHICYgbWFzaykKKwkJd2hpbGUgKG9tYXBfcmVhZHcoVURDX1JYRE1BX0NGRykgJiBtYXNrKQogCQkJdWRlbGF5KDEwKTsKIAkJaWYgKHJlcSkKIAkJCWZpbmlzaF9vdXRfZG1hKGVwLCByZXEsIC1FQ09OTlJFU0VULCAwKTsKQEAgLTk5Nyw5ICs5ODQsMTMgQEAKIAlyZXEtPnJlcS5hY3R1YWwgPSAwOwogCiAJLyogbWF5YmUga2lja3N0YXJ0IG5vbi1pc28gaS9vIHF1ZXVlcyAqLwotCWlmIChpc19pc28pCi0JCVVEQ19JUlFfRU5fUkVHIHw9IFVEQ19TT0ZfSUU7Ci0JZWxzZSBpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSAmJiAhZXAtPnN0b3BwZWQgJiYgIWVwLT5hY2t3YWl0KSB7CisJaWYgKGlzX2lzbykgeworCQl1MTYgdzsKKworCQl3ID0gb21hcF9yZWFkdyhVRENfSVJRX0VOKTsKKwkJdyB8PSBVRENfU09GX0lFOworCQlvbWFwX3dyaXRldyh3LCBVRENfSVJRX0VOKTsKKwl9IGVsc2UgaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgIWVwLT5zdG9wcGVkICYmICFlcC0+YWNrd2FpdCkgewogCQlpbnQJaXNfaW47CiAKIAkJaWYgKGVwLT5iRW5kcG9pbnRBZGRyZXNzID09IDApIHsKQEAgLTEwMTcsMjMgKzEwMDgsMjMgQEAKIAkJCQkgKiByZXF1ZXN0cyB0byBub24tY29udHJvbCBlbmRwb2ludHMKIAkJCQkgKi8KIAkJCQlpZiAodWRjLT5lcDBfc2V0X2NvbmZpZykgewotCQkJCQl1MTYJaXJxX2VuID0gVURDX0lSUV9FTl9SRUc7CisJCQkJCXUxNglpcnFfZW4gPSBvbWFwX3JlYWR3KFVEQ19JUlFfRU4pOwogCiAJCQkJCWlycV9lbiB8PSBVRENfRFNfQ0hHX0lFIHwgVURDX0VQMF9JRTsKIAkJCQkJaWYgKCF1ZGMtPmVwMF9yZXNldF9jb25maWcpCiAJCQkJCQlpcnFfZW4gfD0gVURDX0VQTl9SWF9JRQogCQkJCQkJCXwgVURDX0VQTl9UWF9JRTsKLQkJCQkJVURDX0lSUV9FTl9SRUcgPSBpcnFfZW47CisJCQkJCW9tYXBfd3JpdGV3KGlycV9lbiwgVURDX0lSUV9FTik7CiAJCQkJfQogCiAJCQkJLyogU1RBVFVTIGZvciB6ZXJvIGxlbmd0aCBEQVRBIHN0YWdlcyBpcwogCQkJCSAqIGFsd2F5cyBhbiBJTiAuLi4gZXZlbiBmb3IgSU4gdHJhbnNmZXJzLAogCQkJCSAqIGEgd2VpcmQgY2FzZSB3aGljaCBzZWVtIHRvIHN0YWxsIE9NQVAuCiAJCQkJICovCi0JCQkJVURDX0VQX05VTV9SRUcgPSAoVURDX0VQX1NFTHxVRENfRVBfRElSKTsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOwotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTCB8IFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOworCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAogCQkJCS8qIGNsZWFudXAgKi8KIAkJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKQEAgLTEwNDIsMTEgKzEwMzMsMTEgQEAKIAogCQkJLyogbm9uLWVtcHR5IERBVEEgc3RhZ2UgKi8KIAkJCX0gZWxzZSBpZiAoaXNfaW4pIHsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUx8VURDX0VQX0RJUjsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMIHwgVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQl9IGVsc2UgewogCQkJCWlmICh1ZGMtPmVwMF9zZXR1cCkKIAkJCQkJZ290byBpcnFfd2FpdDsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUw7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTCwgVURDX0VQX05VTSk7CiAJCQl9CiAJCX0gZWxzZSB7CiAJCQlpc19pbiA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTjsKQEAgLTEwNjIsNyArMTA1Myw3IEBACiAJCQkJcmVxID0gTlVMTDsKIAkJCWRlc2VsZWN0X2VwKCk7CiAJCQlpZiAoIWlzX2luKSB7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQkJfQogCQkJLyogSU46IDYgd2FpdCBzdGF0ZXMgYmVmb3JlIGl0J2xsIHR4ICovCkBAIC0xMTMwLDkgKzExMjEsOSBAQAogCQllbHNlIGlmICh2YWx1ZSkgewogCQkJaWYgKGVwLT51ZGMtPmVwMF9zZXRfY29uZmlnKSB7CiAJCQkJV0FSTigiZXJyb3IgY2hhbmdpbmcgY29uZmlnP1xuIik7Ci0JCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX0NMUl9DRkc7CisJCQkJb21hcF93cml0ZXcoVURDX0NMUl9DRkcsIFVEQ19TWVNDT04yKTsKIAkJCX0KLQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19TVEFMTF9DTUQ7CisJCQlvbWFwX3dyaXRldyhVRENfU1RBTExfQ01ELCBVRENfU1lTQ09OMik7CiAJCQllcC0+dWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCQlzdGF0dXMgPSAwOwogCQl9IGVsc2UgLyogTk9QICovCkBAIC0xMTU5LDggKzExNTAsOCBAQAogCQkJCWNoYW5uZWwgPSAwOwogCiAJCQl1c2VfZXAoZXAsIFVEQ19FUF9TRUwpOwotCQkJaWYgKFVEQ19TVEFUX0ZMR19SRUcgJiBVRENfTk9OX0lTT19GSUZPX0VNUFRZKSB7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9IQUxUOworCQkJaWYgKG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKSAmIFVEQ19OT05fSVNPX0ZJRk9fRU1QVFkpIHsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0hBTFQsIFVEQ19DVFJMKTsKIAkJCQlzdGF0dXMgPSAwOwogCQkJfSBlbHNlCiAJCQkJc3RhdHVzID0gLUVBR0FJTjsKQEAgLTExNzAsMTAgKzExNjEsMTAgQEAKIAkJCQlkbWFfY2hhbm5lbF9jbGFpbShlcCwgY2hhbm5lbCk7CiAJCX0gZWxzZSB7CiAJCQl1c2VfZXAoZXAsIDApOwotCQkJVURDX0NUUkxfUkVHID0gZXAtPnVkYy0+Y2xyX2hhbHQ7CisJCQlvbWFwX3dyaXRldyhlcC0+dWRjLT5jbHJfaGFsdCwgVURDX0NUUkwpOwogCQkJZXAtPmFja3dhaXQgPSAwOwogCQkJaWYgKCEoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSkgewotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJCX0KIAkJfQpAQCAtMTIwNSw3ICsxMTk2LDcgQEAKIAogc3RhdGljIGludCBvbWFwX2dldF9mcmFtZShzdHJ1Y3QgdXNiX2dhZGdldCAqZ2FkZ2V0KQogewotCXUxNglzb2YgPSBVRENfU09GX1JFRzsKKwl1MTYJc29mID0gb21hcF9yZWFkdyhVRENfU09GKTsKIAlyZXR1cm4gKHNvZiAmIFVEQ19UU19PSykgPyAoc29mICYgVURDX1RTKSA6IC1FTDJOU1lOQzsKIH0KIApAQCAtMTIyNCw3ICsxMjE1LDcgQEAKIAkJICovCiAJCWlmICh1ZGMtPmRldnN0YXQgJiAoVURDX0JfSE5QX0VOQUJMRXxVRENfUl9XS19PSykpIHsKIAkJCURCRygicmVtb3RlIHdha2V1cC4uLlxuIik7Ci0JCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfUk1UX1dLUDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19STVRfV0tQLCBVRENfU1lTQ09OMik7CiAJCQlyZXR2YWwgPSAwOwogCQl9CiAKQEAgLTEyNDcsMTIgKzEyMzgsMTIgQEAKIAogCXVkYyA9IGNvbnRhaW5lcl9vZihnYWRnZXQsIHN0cnVjdCBvbWFwX3VkYywgZ2FkZ2V0KTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdWRjLT5sb2NrLCBmbGFncyk7Ci0Jc3lzY29uMSA9IFVEQ19TWVNDT04xX1JFRzsKKwlzeXNjb24xID0gb21hcF9yZWFkdyhVRENfU1lTQ09OMSk7CiAJaWYgKGlzX3NlbGZwb3dlcmVkKQogCQlzeXNjb24xIHw9IFVEQ19TRUxGX1BXUjsKIAllbHNlCiAJCXN5c2NvbjEgJj0gflVEQ19TRUxGX1BXUjsKLQlVRENfU1lTQ09OMV9SRUcgPSBzeXNjb24xOworCW9tYXBfd3JpdGV3KHN5c2NvbjEsIFVEQ19TWVNDT04xKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKIAogCXJldHVybiAwOwpAQCAtMTI2NSwxOCArMTI1NiwzNiBAQAogCiBzdGF0aWMgdm9pZCBwdWxsdXBfZW5hYmxlKHN0cnVjdCBvbWFwX3VkYyAqdWRjKQogewotCVVEQ19TWVNDT04xX1JFRyB8PSBVRENfUFVMTFVQX0VOOwotCWlmICghZ2FkZ2V0X2lzX290ZygmdWRjLT5nYWRnZXQpICYmICFjcHVfaXNfb21hcDE1eHgoKSkKLQkJT1RHX0NUUkxfUkVHIHw9IE9UR19CU0VTU1ZMRDsKLQlVRENfSVJRX0VOX1JFRyA9IFVEQ19EU19DSEdfSUU7CisJdTE2IHc7CisKKwl3ID0gb21hcF9yZWFkdyhVRENfU1lTQ09OMSk7CisJdyB8PSBVRENfUFVMTFVQX0VOOworCW9tYXBfd3JpdGV3KHcsIFVEQ19TWVNDT04xKTsKKwlpZiAoIWdhZGdldF9pc19vdGcoJnVkYy0+Z2FkZ2V0KSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJdTMyIGw7CisKKwkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCQlsIHw9IE9UR19CU0VTU1ZMRDsKKwkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCX0KKwlvbWFwX3dyaXRldyhVRENfRFNfQ0hHX0lFLCBVRENfSVJRX0VOKTsKIH0KIAogc3RhdGljIHZvaWQgcHVsbHVwX2Rpc2FibGUoc3RydWN0IG9tYXBfdWRjICp1ZGMpCiB7Ci0JaWYgKCFnYWRnZXRfaXNfb3RnKCZ1ZGMtPmdhZGdldCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKQotCQlPVEdfQ1RSTF9SRUcgJj0gfk9UR19CU0VTU1ZMRDsKLQlVRENfSVJRX0VOX1JFRyA9IFVEQ19EU19DSEdfSUU7Ci0JVURDX1NZU0NPTjFfUkVHICY9IH5VRENfUFVMTFVQX0VOOworCXUxNiB3OworCisJaWYgKCFnYWRnZXRfaXNfb3RnKCZ1ZGMtPmdhZGdldCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKSB7CisJCXUzMiBsOworCisJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwkJbCAmPSB+T1RHX0JTRVNTVkxEOworCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisJfQorCW9tYXBfd3JpdGV3KFVEQ19EU19DSEdfSUUsIFVEQ19JUlFfRU4pOworCXcgPSBvbWFwX3JlYWR3KFVEQ19TWVNDT04xKTsKKwl3ICY9IH5VRENfUFVMTFVQX0VOOworCW9tYXBfd3JpdGV3KHcsIFVEQ19TWVNDT04xKTsKIH0KIAogc3RhdGljIHN0cnVjdCBvbWFwX3VkYyAqdWRjOwpAQCAtMTMwNCw2ICsxMzEzLDcgQEAKIHsKIAlzdHJ1Y3Qgb21hcF91ZGMJKnVkYzsKIAl1bnNpZ25lZCBsb25nCWZsYWdzOworCXUzMiBsOwogCiAJdWRjID0gY29udGFpbmVyX29mKGdhZGdldCwgc3RydWN0IG9tYXBfdWRjLCBnYWRnZXQpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKQEAgLTEzMTEsMTAgKzEzMjEsMTIgQEAKIAl1ZGMtPnZidXNfYWN0aXZlID0gKGlzX2FjdGl2ZSAhPSAwKTsKIAlpZiAoY3B1X2lzX29tYXAxNXh4KCkpIHsKIAkJLyogInNvZnR3YXJlIiBkZXRlY3QsIGlnbm9yZWQgaWYgIVZCVVNfTU9ERV8xNTEwICovCisJCWwgPSBvbWFwX3JlYWRsKEZVTkNfTVVYX0NUUkxfMCk7CiAJCWlmIChpc19hY3RpdmUpCi0JCQlGVU5DX01VWF9DVFJMXzBfUkVHIHw9IFZCVVNfQ1RSTF8xNTEwOworCQkJbCB8PSBWQlVTX0NUUkxfMTUxMDsKIAkJZWxzZQotCQkJRlVOQ19NVVhfQ1RSTF8wX1JFRyAmPSB+VkJVU19DVFJMXzE1MTA7CisJCQlsICY9IH5WQlVTX0NUUkxfMTUxMDsKKwkJb21hcF93cml0ZWwobCwgRlVOQ19NVVhfQ1RSTF8wKTsKIAl9CiAJaWYgKHVkYy0+ZGNfY2xrICE9IE5VTEwgJiYgaXNfYWN0aXZlKSB7CiAJCWlmICghdWRjLT5jbGtfcmVxdWVzdGVkKSB7CkBAIC0xMzg0LDkgKzEzOTYsOSBAQAogCQlkbWFfY2hhbm5lbF9yZWxlYXNlKGVwKTsKIAogCXVzZV9lcChlcCwgMCk7Ci0JVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKKwlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CiAJaWYgKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYmIGVwLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykKLQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9IQUxUOworCQlvbWFwX3dyaXRldyhVRENfU0VUX0hBTFQsIFVEQ19DVFJMKTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgewogCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LCBzdHJ1Y3Qgb21hcF9yZXEsIHF1ZXVlKTsKQEAgLTE0MTQsOCArMTQyNiw4IEBACiAJaWYgKCFnYWRnZXRfaXNfb3RnKCZ1ZGMtPmdhZGdldCkpCiAJCXJldHVybjsKIAotCWlmIChPVEdfQ1RSTF9SRUcgJiBPVEdfSUQpCi0JCWRldnN0YXQgPSBVRENfREVWU1RBVF9SRUc7CisJaWYgKG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX0lEKQorCQlkZXZzdGF0ID0gb21hcF9yZWFkdyhVRENfREVWU1RBVCk7CiAJZWxzZQogCQlkZXZzdGF0ID0gMDsKIApAQCAtMTQyNiw5ICsxNDM4LDE0IEBACiAJLyogRW5hYmxlIEhOUCBlYXJseSwgYXZvaWRpbmcgcmFjZXMgb24gc3VzcGVuZCBpcnEgcGF0aC4KIAkgKiBBU1NVTUVTIE9URyBzdGF0ZSBtYWNoaW5lIEJfQlVTX1JFUSBpbnB1dCBpcyB0cnVlLgogCSAqLwotCWlmICh1ZGMtPmdhZGdldC5iX2hucF9lbmFibGUpCi0JCU9UR19DVFJMX1JFRyA9IChPVEdfQ1RSTF9SRUcgfCBPVEdfQl9ITlBFTiB8IE9UR19CX0JVU1JFUSkKLQkJCQkmIH5PVEdfUFVMTFVQOworCWlmICh1ZGMtPmdhZGdldC5iX2hucF9lbmFibGUpIHsKKwkJdTMyIGw7CisKKwkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCQlsIHw9IE9UR19CX0hOUEVOIHwgT1RHX0JfQlVTUkVROworCQlsICY9IH5PVEdfUFVMTFVQOworCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBlcDBfaXJxKHN0cnVjdCBvbWFwX3VkYyAqdWRjLCB1MTYgaXJxX3NyYykKQEAgLTE0NDYsNyArMTQ2Myw3IEBACiAKIAkJbnVrZShlcDAsIDApOwogCQlpZiAoYWNrKSB7Ci0JCQlVRENfSVJRX1NSQ19SRUcgPSBhY2s7CisJCQlvbWFwX3dyaXRldyhhY2ssIFVEQ19JUlFfU1JDKTsKIAkJCWlycV9zcmMgPSBVRENfU0VUVVA7CiAJCX0KIAl9CkBAIC0xNDY2LDkgKzE0ODMsOSBAQAogCWlmIChpcnFfc3JjICYgVURDX0VQMF9UWCkgewogCQlpbnQJc3RhdDsKIAotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfRVAwX1RYOwotCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUx8VURDX0VQX0RJUjsKLQkJc3RhdCA9IFVEQ19TVEFUX0ZMR19SRUc7CisJCW9tYXBfd3JpdGV3KFVEQ19FUDBfVFgsIFVEQ19JUlFfU1JDKTsKKwkJb21hcF93cml0ZXcoVURDX0VQX1NFTHxVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKKwkJc3RhdCA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAkJaWYgKHN0YXQgJiBVRENfQUNLKSB7CiAJCQlpZiAodWRjLT5lcDBfaW4pIHsKIAkJCQkvKiB3cml0ZSBuZXh0IElOIHBhY2tldCBmcm9tIHJlc3BvbnNlLApAQCAtMTQ3NiwyNiArMTQ5MywyNiBAQAogCQkJCSAqLwogCQkJCWlmIChyZXEpCiAJCQkJCXN0YXQgPSB3cml0ZV9maWZvKGVwMCwgcmVxKTsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQkJaWYgKCFyZXEgJiYgdWRjLT5lcDBfcGVuZGluZykgewotCQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUw7Ci0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7Ci0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCQkJVURDX0VQX05VTV9SRUcgPSAwOworCQkJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMLCBVRENfRVBfTlVNKTsKKwkJCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOworCQkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CiAJCQkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQkJCX0gLyogZWxzZTogIDYgd2FpdCBzdGF0ZXMgYmVmb3JlIGl0J2xsIHR4ICovCiAJCQl9IGVsc2UgewogCQkJCS8qIGFjayBzdGF0dXMgc3RhZ2Ugb2YgT1VUIHRyYW5zZmVyICovCi0JCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJCWlmIChyZXEpCiAJCQkJCWRvbmUoZXAwLCByZXEsIDApOwogCQkJfQogCQkJcmVxID0gTlVMTDsKIAkJfSBlbHNlIGlmIChzdGF0ICYgVURDX1NUQUxMKSB7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0hBTFQ7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0hBTFQsIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQl9IGVsc2UgewotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCX0KIAl9CiAKQEAgLTE1MDMsOSArMTUyMCw5IEBACiAJaWYgKGlycV9zcmMgJiBVRENfRVAwX1JYKSB7CiAJCWludAlzdGF0OwogCi0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19FUDBfUlg7Ci0JCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTDsKLQkJc3RhdCA9IFVEQ19TVEFUX0ZMR19SRUc7CisJCW9tYXBfd3JpdGV3KFVEQ19FUDBfUlgsIFVEQ19JUlFfU1JDKTsKKwkJb21hcF93cml0ZXcoVURDX0VQX1NFTCwgVURDX0VQX05VTSk7CisJCXN0YXQgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAJCWlmIChzdGF0ICYgVURDX0FDSykgewogCQkJaWYgKCF1ZGMtPmVwMF9pbikgewogCQkJCXN0YXQgPSAwOwpAQCAtMTUxMywzNCArMTUzMCwzNSBAQAogCQkJCSAqIHJlYWN0aXZpdGluZyB0aGUgZmlmbzsgc3RhbGwgb24gZXJyb3JzLgogCQkJCSAqLwogCQkJCWlmICghcmVxIHx8IChzdGF0ID0gcmVhZF9maWZvKGVwMCwgcmVxKSkgPCAwKSB7Ci0JCQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19TVEFMTF9DTUQ7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19TVEFMTF9DTUQsIFVEQ19TWVNDT04yKTsKIAkJCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCQkJCXN0YXQgPSAwOwogCQkJCX0gZWxzZSBpZiAoc3RhdCA9PSAwKQotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQkJVURDX0VQX05VTV9SRUcgPSAwOworCQkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKIAogCQkJCS8qIGFjdGl2YXRlIHN0YXR1cyBzdGFnZSAqLwogCQkJCWlmIChzdGF0ID09IDEpIHsKIAkJCQkJZG9uZShlcDAsIHJlcSwgMCk7CiAJCQkJCS8qIHRoYXQgbWF5IGhhdmUgU1RBTExlZCBlcDAuLi4gKi8KLQkJCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMfFVEQ19FUF9ESVI7Ci0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7Ci0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMIHwgVURDX0VQX0RJUiwKKwkJCQkJCQlVRENfRVBfTlVNKTsKKwkJCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOworCQkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJLyogYWNrIHN0YXR1cyBzdGFnZSBvZiBJTiB0cmFuc2ZlciAqLwotCQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKKwkJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKIAkJCQlpZiAocmVxKQogCQkJCQlkb25lKGVwMCwgcmVxLCAwKTsKIAkJCX0KIAkJfSBlbHNlIGlmIChzdGF0ICYgVURDX1NUQUxMKSB7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0hBTFQ7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IDA7CisJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0hBTFQsIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOwogCQl9IGVsc2UgewotCQkJVURDX0VQX05VTV9SRUcgPSAwOworCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CiAJCX0KIAl9CiAKQEAgLTE1NTUsMTQgKzE1NzMsMTQgQEAKIAogCQkvKiByZWFkIHRoZSAobGF0ZXN0KSBTRVRVUCBtZXNzYWdlICovCiAJCWRvIHsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX1NFVFVQX1NFTDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRVUF9TRUwsIFVEQ19FUF9OVU0pOwogCQkJLyogdHdvIGJ5dGVzIGF0IGEgdGltZSAqLwotCQkJdS53b3JkWzBdID0gVURDX0RBVEFfUkVHOwotCQkJdS53b3JkWzFdID0gVURDX0RBVEFfUkVHOwotCQkJdS53b3JkWzJdID0gVURDX0RBVEFfUkVHOwotCQkJdS53b3JkWzNdID0gVURDX0RBVEFfUkVHOwotCQkJVURDX0VQX05VTV9SRUcgPSAwOwotCQl9IHdoaWxlIChVRENfSVJRX1NSQ19SRUcgJiBVRENfU0VUVVApOworCQkJdS53b3JkWzBdID0gb21hcF9yZWFkdyhVRENfREFUQSk7CisJCQl1LndvcmRbMV0gPSBvbWFwX3JlYWR3KFVEQ19EQVRBKTsKKwkJCXUud29yZFsyXSA9IG9tYXBfcmVhZHcoVURDX0RBVEEpOworCQkJdS53b3JkWzNdID0gb21hcF9yZWFkdyhVRENfREFUQSk7CisJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKKwkJfSB3aGlsZSAob21hcF9yZWFkdyhVRENfSVJRX1NSQykgJiBVRENfU0VUVVApOwogCiAjZGVmaW5lCXdfdmFsdWUJCWxlMTZfdG9fY3B1KHUuci53VmFsdWUpCiAjZGVmaW5lCXdfaW5kZXgJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpCkBAIC0xNTkzLDkgKzE2MTEsOSBAQAogCQkJICogbGF0ZXIgaWYgaXQgZmFpbHMgdGhlIHJlcXVlc3QuCiAJCQkgKi8KIAkJCWlmICh1ZGMtPmVwMF9yZXNldF9jb25maWcpCi0JCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX0NMUl9DRkc7CisJCQkJb21hcF93cml0ZXcoVURDX0NMUl9DRkcsIFVEQ19TWVNDT04yKTsKIAkJCWVsc2UKLQkJCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfREVWX0NGRzsKKwkJCQlvbWFwX3dyaXRldyhVRENfREVWX0NGRywgVURDX1NZU0NPTjIpOwogCQkJdXBkYXRlX290Zyh1ZGMpOwogCQkJZ290byBkZWxlZ2F0ZTsKIAkJY2FzZSBVU0JfUkVRX0NMRUFSX0ZFQVRVUkU6CkBAIC0xNjEzLDEwICsxNjMxLDEwIEBACiAJCQkJCQl8fCAhZXAtPmRlc2MpCiAJCQkJCWdvdG8gZG9fc3RhbGw7CiAJCQkJdXNlX2VwKGVwLCAwKTsKLQkJCQlVRENfQ1RSTF9SRUcgPSB1ZGMtPmNscl9oYWx0OworCQkJCW9tYXBfd3JpdGV3KHVkYy0+Y2xyX2hhbHQsIFVEQ19DVFJMKTsKIAkJCQllcC0+YWNrd2FpdCA9IDA7CiAJCQkJaWYgKCEoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSkgewotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJCQl9CiAJCQkJLyogTk9URTogIGFzc3VtZXMgdGhlIGhvc3QgYmVoYXZlcyBzYW5lbHksCkBAIC0xNjQ5LDE1ICsxNjY3LDE1IEBACiAJCQl9CiAJCQl1c2VfZXAoZXAsIDApOwogCQkJLyogY2FuJ3QgaGFsdCBpZiBmaWZvIGlzbid0IGVtcHR5Li4uICovCi0JCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOwotCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9IQUxUOworCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoVURDX1NFVF9IQUxULCBVRENfQ1RSTCk7CiAJCQlWREJHKCIlcyBoYWx0ZWQgYnkgaG9zdFxuIiwgZXAtPm5hbWUpOwogZXAwb3V0X3N0YXR1c19zdGFnZToKIAkJCXN0YXR1cyA9IDA7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUx8VURDX0VQX0RJUjsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMfFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOworCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX1JFUV9HRVRfU1RBVFVTOgpAQCAtMTY5NCwxMCArMTcxMiwxMCBAQAogCiB6ZXJvX3N0YXR1czoKIAkJCS8qIHJldHVybiB0d28gemVybyBieXRlcyAqLwotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMfFVEQ19FUF9ESVI7Ci0JCQlVRENfREFUQV9SRUcgPSAwOwotCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTHxVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKKwkJCW9tYXBfd3JpdGV3KDAsIFVEQ19EQVRBKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQlzdGF0dXMgPSAwOwogCQkJVkRCRygiR0VUX1NUQVRVUywgaW50ZXJmYWNlICVkXG4iLCB3X2luZGV4KTsKIAkJCS8qIG5leHQsIHN0YXR1cyBzdGFnZSAqLwpAQCAtMTcwNiw4ICsxNzI0LDggQEAKIGRlbGVnYXRlOgogCQkJLyogYWN0aXZhdGUgdGhlIGVwMG91dCBmaWZvIHJpZ2h0IGF3YXkgKi8KIAkJCWlmICghdWRjLT5lcDBfaW4gJiYgd19sZW5ndGgpIHsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IDA7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJfQogCiAJCQkvKiBnYWRnZXQgZHJpdmVycyBzZWUgY2xhc3MvdmVuZG9yIHNwZWNpZmljIHJlcXVlc3RzLApAQCAtMTc0OCw5ICsxNzY2LDkgQEAKIAkJCQlpZiAodWRjLT5lcDBfcmVzZXRfY29uZmlnKQogCQkJCQlXQVJOKCJlcnJvciByZXNldHRpbmcgY29uZmlnP1xuIik7CiAJCQkJZWxzZQotCQkJCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfQ0xSX0NGRzsKKwkJCQkJb21hcF93cml0ZXcoVURDX0NMUl9DRkcsIFVEQ19TWVNDT04yKTsKIAkJCX0KLQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19TVEFMTF9DTUQ7CisJCQlvbWFwX3dyaXRldyhVRENfU1RBTExfQ01ELCBVRENfU1lTQ09OMik7CiAJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJfQogCX0KQEAgLTE3NjQsNyArMTc4Miw3IEBACiB7CiAJdTE2CWRldnN0YXQsIGNoYW5nZTsKIAotCWRldnN0YXQgPSBVRENfREVWU1RBVF9SRUc7CisJZGV2c3RhdCA9IG9tYXBfcmVhZHcoVURDX0RFVlNUQVQpOwogCWNoYW5nZSA9IGRldnN0YXQgXiB1ZGMtPmRldnN0YXQ7CiAJdWRjLT5kZXZzdGF0ID0gZGV2c3RhdDsKIApAQCAtMTgwNCw3ICsxODIyLDggQEAKIAkJCQlJTkZPKCJVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0ICVzXG4iLAogCQkJCQl1ZGMtPmRyaXZlci0+ZHJpdmVyLm5hbWUpOwogCQkJCS8qIGVwMCB0cmFmZmljIGlzIGxlZ2FsIGZyb20gbm93IG9uICovCi0JCQkJVURDX0lSUV9FTl9SRUcgPSBVRENfRFNfQ0hHX0lFIHwgVURDX0VQMF9JRTsKKwkJCQlvbWFwX3dyaXRldyhVRENfRFNfQ0hHX0lFIHwgVURDX0VQMF9JRSwKKwkJCQkJCVVEQ19JUlFfRU4pOwogCQkJfQogCQkJY2hhbmdlICY9IH5VRENfVVNCX1JFU0VUOwogCQl9CkBAIC0xODQ4LDcgKzE4NjcsNyBAQAogCQlWREJHKCJkZXZzdGF0ICUwM3gsIGlnbm9yZSBjaGFuZ2UgJTAzeFxuIiwKIAkJCWRldnN0YXQsICBjaGFuZ2UpOwogCi0JVURDX0lSUV9TUkNfUkVHID0gVURDX0RTX0NIRzsKKwlvbWFwX3dyaXRldyhVRENfRFNfQ0hHLCBVRENfSVJRX1NSQyk7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBvbWFwX3VkY19pcnEoaW50IGlycSwgdm9pZCAqX3VkYykKQEAgLTE4NTksNyArMTg3OCw3IEBACiAJdW5zaWduZWQgbG9uZwlmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKLQlpcnFfc3JjID0gVURDX0lSUV9TUkNfUkVHOworCWlycV9zcmMgPSBvbWFwX3JlYWR3KFVEQ19JUlFfU1JDKTsKIAogCS8qIERldmljZSBzdGF0ZSBjaGFuZ2UgKHVzYiBjaDkgc3R1ZmYpICovCiAJaWYgKGlycV9zcmMgJiBVRENfRFNfQ0hHKSB7CkBAIC0xODgyLDcgKzE5MDEsNyBAQAogCQlpcnFfc3JjICY9IH4oVURDX1RYTl9ET05FfFVEQ19SWE5fQ05UfFVEQ19SWE5fRU9UKTsKIAl9CiAKLQlpcnFfc3JjICY9IH4oVURDX1NPRnxVRENfRVBOX1RYfFVEQ19FUE5fUlgpOworCWlycV9zcmMgJj0gfihVRENfSVJRX1NPRiB8IFVEQ19FUE5fVFh8VURDX0VQTl9SWCk7CiAJaWYgKGlycV9zcmMpCiAJCURCRygidWRjX2lycSwgdW5oYW5kbGVkICUwM3hcbiIsIGlycV9zcmMpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVkYy0+bG9jaywgZmxhZ3MpOwpAQCAtMTkwMyw3ICsxOTIyLDcgQEAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZXAtPnVkYy0+bG9jaywgZmxhZ3MpOwogCWlmICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSAmJiBlcC0+YWNrd2FpdCkgewogCQl1c2VfZXAoZXAsIFVEQ19FUF9TRUwpOwotCQlzdGF0X2ZsZyA9IFVEQ19TVEFUX0ZMR19SRUc7CisJCXN0YXRfZmxnID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCiAJCWlmICgoc3RhdF9mbGcgJiBVRENfQUNLKSAmJiAoIShzdGF0X2ZsZyAmIFVEQ19GSUZPX0VOKQogCQkJCXx8IChlcC0+ZG91YmxlX2J1ZiAmJiBIQUxGX0ZVTEwoc3RhdF9mbGcpKSkpIHsKQEAgLTE5MTMsOCArMTkzMiw4IEBACiAJCQlyZXEgPSBjb250YWluZXJfb2YoZXAtPnF1ZXVlLm5leHQsCiAJCQkJCXN0cnVjdCBvbWFwX3JlcSwgcXVldWUpOwogCQkJKHZvaWQpIHJlYWRfZmlmbyhlcCwgcmVxKTsKLQkJCVVEQ19FUF9OVU1fUkVHID0gZXAtPmJFbmRwb2ludEFkZHJlc3M7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQlvbWFwX3dyaXRldyhlcC0+YkVuZHBvaW50QWRkcmVzcywgVURDX0VQX05VTSk7CisJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQl9IGVsc2UKIAkJCWRlc2VsZWN0X2VwKCk7CkBAIC0xOTM0LDIwICsxOTUzLDIwIEBACiAJdW5zaWduZWQgbG9uZwlmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKLQllcG5fc3RhdCA9IFVEQ19FUE5fU1RBVF9SRUc7Ci0JaXJxX3NyYyA9IFVEQ19JUlFfU1JDX1JFRzsKKwllcG5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0VQTl9TVEFUKTsKKwlpcnFfc3JjID0gb21hcF9yZWFkdyhVRENfSVJRX1NSQyk7CiAKIAkvKiBoYW5kbGUgT1VUIGZpcnN0LCB0byBhdm9pZCBzb21lIHdhc3RlZnVsIE5BS3MgKi8KIAlpZiAoaXJxX3NyYyAmIFVEQ19FUE5fUlgpIHsKIAkJZXBudW0gPSAoZXBuX3N0YXQgPj4gOCkgJiAweDBmOwotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfRVBOX1JYOworCQlvbWFwX3dyaXRldyhVRENfRVBOX1JYLCBVRENfSVJRX1NSQyk7CiAJCXN0YXR1cyA9IElSUV9IQU5ETEVEOwogCQllcCA9ICZ1ZGMtPmVwW2VwbnVtXTsKIAkJZXAtPmlycXMrKzsKIAotCQlVRENfRVBfTlVNX1JFRyA9IGVwbnVtIHwgVURDX0VQX1NFTDsKKwkJb21hcF93cml0ZXcoZXBudW0gfCBVRENfRVBfU0VMLCBVRENfRVBfTlVNKTsKIAkJZXAtPmZuZiA9IDA7Ci0JCWlmICgoVURDX1NUQVRfRkxHX1JFRyAmIFVEQ19BQ0spKSB7CisJCWlmIChvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRykgJiBVRENfQUNLKSB7CiAJCQllcC0+YWNrd2FpdC0tOwogCQkJaWYgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CiAJCQkJaW50IHN0YXQ7CkBAIC0xOTU5LDE1ICsxOTc4LDE1IEBACiAJCQl9CiAJCX0KIAkJLyogbWluIDYgY2xvY2sgZGVsYXkgYmVmb3JlIGNsZWFyaW5nIEVQX1NFTCAuLi4gKi8KLQkJZXBuX3N0YXQgPSBVRENfRVBOX1NUQVRfUkVHOwotCQllcG5fc3RhdCA9IFVEQ19FUE5fU1RBVF9SRUc7Ci0JCVVEQ19FUF9OVU1fUkVHID0gZXBudW07CisJCWVwbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRVBOX1NUQVQpOworCQllcG5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0VQTl9TVEFUKTsKKwkJb21hcF93cml0ZXcoZXBudW0sIFVEQ19FUF9OVU0pOwogCiAJCS8qIGVuYWJsaW5nIGZpZm8gX2FmdGVyXyBjbGVhcmluZyBBQ0ssIGNvbnRyYXJ5IHRvIGRvY3MsCiAJCSAqIHJlZHVjZXMgbG9zc2FnZTsgdGltZXIgc3RpbGwgbmVlZGVkIHRob3VnaCAoc2lnaCkuCiAJCSAqLwogCQlpZiAoZXAtPmZuZikgewotCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJfQogCQltb2RfdGltZXIoJmVwLT50aW1lciwgUElPX09VVF9USU1FT1VUKTsKQEAgLTE5NzYsMTMgKzE5OTUsMTMgQEAKIAkvKiB0aGVuIElOIHRyYW5zZmVycyAqLwogCWVsc2UgaWYgKGlycV9zcmMgJiBVRENfRVBOX1RYKSB7CiAJCWVwbnVtID0gZXBuX3N0YXQgJiAweDBmOwotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfRVBOX1RYOworCQlvbWFwX3dyaXRldyhVRENfRVBOX1RYLCBVRENfSVJRX1NSQyk7CiAJCXN0YXR1cyA9IElSUV9IQU5ETEVEOwogCQllcCA9ICZ1ZGMtPmVwWzE2ICsgZXBudW1dOwogCQllcC0+aXJxcysrOwogCi0JCVVEQ19FUF9OVU1fUkVHID0gZXBudW0gfCBVRENfRVBfRElSIHwgVURDX0VQX1NFTDsKLQkJaWYgKChVRENfU1RBVF9GTEdfUkVHICYgVURDX0FDSykpIHsKKwkJb21hcF93cml0ZXcoZXBudW0gfCBVRENfRVBfRElSIHwgVURDX0VQX1NFTCwgVURDX0VQX05VTSk7CisJCWlmIChvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRykgJiBVRENfQUNLKSB7CiAJCQllcC0+YWNrd2FpdCA9IDA7CiAJCQlpZiAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKIAkJCQlyZXEgPSBjb250YWluZXJfb2YoZXAtPnF1ZXVlLm5leHQsCkBAIC0xOTkxLDkgKzIwMTAsOSBAQAogCQkJfQogCQl9CiAJCS8qIG1pbiA2IGNsb2NrIGRlbGF5IGJlZm9yZSBjbGVhcmluZyBFUF9TRUwgLi4uICovCi0JCWVwbl9zdGF0ID0gVURDX0VQTl9TVEFUX1JFRzsKLQkJZXBuX3N0YXQgPSBVRENfRVBOX1NUQVRfUkVHOwotCQlVRENfRVBfTlVNX1JFRyA9IGVwbnVtIHwgVURDX0VQX0RJUjsKKwkJZXBuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19FUE5fU1RBVCk7CisJCWVwbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRVBOX1NUQVQpOworCQlvbWFwX3dyaXRldyhlcG51bSB8IFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkvKiB0aGVuIDYgY2xvY2tzIGJlZm9yZSBpdCdkIHR4ICovCiAJfQogCkBAIC0yMDIxLDcgKzIwNDAsNyBAQAogCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LCBzdHJ1Y3Qgb21hcF9yZXEsIHF1ZXVlKTsKIAogCQl1c2VfZXAoZXAsIFVEQ19FUF9TRUwpOwotCQlzdGF0ID0gVURDX1NUQVRfRkxHX1JFRzsKKwkJc3RhdCA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAogCQkvKiBOT1RFOiBsaWtlIHRoZSBvdGhlciBjb250cm9sbGVyIGRyaXZlcnMsIHRoaXMgaXNuJ3QKIAkJICogY3VycmVudGx5IHJlcG9ydGluZyBsb3N0IG9yIGRhbWFnZWQgZnJhbWVzLgpAQCAtMjA1Myw5ICsyMDcyLDE0IEBACiAJCWlmICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKIAkJCXBlbmRpbmcgPSAxOwogCX0KLQlpZiAoIXBlbmRpbmcpCi0JCVVEQ19JUlFfRU5fUkVHICY9IH5VRENfU09GX0lFOwotCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19TT0Y7CisJaWYgKCFwZW5kaW5nKSB7CisJCXUxNiB3OworCisJCXcgPSBvbWFwX3JlYWR3KFVEQ19JUlFfRU4pOworCQl3ICY9IH5VRENfU09GX0lFOworCQlvbWFwX3dyaXRldyh3LCBVRENfSVJRX0VOKTsKKwl9CisJb21hcF93cml0ZXcoVURDX0lSUV9TT0YsIFVEQ19JUlFfU1JDKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVkYy0+bG9jaywgZmxhZ3MpOwogCXJldHVybiBJUlFfSEFORExFRDsKQEAgLTIxMDQsNyArMjEyOCw3IEBACiAJCWlmIChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpCiAJCQljb250aW51ZTsKIAkJdXNlX2VwKGVwLCAwKTsKLQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9IQUxUOworCQlvbWFwX3dyaXRldyhVRENfU0VUX0hBTFQsIFVEQ19DVFJMKTsKIAl9CiAJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJdWRjLT5lcFswXS5pcnFzID0gMDsKQEAgLTIxMjgsNyArMjE1Miw3IEBACiAJfQogCURCRygiYm91bmQgdG8gZHJpdmVyICVzXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKIAotCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19JUlFfU1JDX01BU0s7CisJb21hcF93cml0ZXcoVURDX0lSUV9TUkNfTUFTSywgVURDX0lSUV9TUkMpOwogCiAJLyogY29ubmVjdCB0byBidXMgdGhyb3VnaCB0cmFuc2NlaXZlciAqLwogCWlmICh1ZGMtPnRyYW5zY2VpdmVyKSB7CkBAIC0yMjI1LDcgKzIyNDksNyBAQAogCWVsc2UKIAkJYnVmWzBdID0gMDsKIAotCXN0YXRfZmxnID0gVURDX1NUQVRfRkxHX1JFRzsKKwlzdGF0X2ZsZyA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAlzZXFfcHJpbnRmKHMsCiAJCSJcbiVzICVzJXMlc2lycXMgJWxkIHN0YXQgJTA0eCAiIEVJR0hUQklUUyBGT1VSQklUUyAiJXNcbiIsCiAJCWVwLT5uYW1lLCBidWYsCkBAIC0yMjkyLDExICsyMzE2LDExIEBACiAJCXRyYW5zID0gQ09OVFJPTF9ERVZDT05GX1JFRzsKIAl9IGVsc2UgewogCQljdHJsX25hbWUgPSAidHJhbmNlaXZlcl9jdHJsIjsKLQkJdHJhbnMgPSBVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUc7CisJCXRyYW5zID0gb21hcF9yZWFkdyhVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CiAJfQogCXNlcV9wcmludGYocywgIlxuT1RHIHJldiAlZC4lZCwgJXMgJTA1eFxuIiwKIAkJdG1wID4+IDQsIHRtcCAmIDB4ZiwgY3RybF9uYW1lLCB0cmFucyk7Ci0JdG1wID0gT1RHX1NZU0NPTl8xX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KE9UR19TWVNDT05fMSk7CiAJc2VxX3ByaW50ZihzLCAib3RnX3N5c2NvbjEgJTA4eCB1c2IyICVzLCB1c2IxICVzLCB1c2IwICVzLCIKIAkJCUZPVVJCSVRTICJcbiIsIHRtcCwKIAkJdHJ4X21vZGUoVVNCMl9UUlhfTU9ERSh0bXApLCB0cmFucyAmIENPTkZfVVNCMl9VTklfUiksCkBAIC0yMzA4LDcgKzIzMzIsNyBAQAogCQkodG1wICYgSFNUX0lETEVfRU4pID8gIiAhaG9zdCIgOiAiIiwKIAkJKHRtcCAmIERFVl9JRExFX0VOKSA/ICIgIWRldiIgOiAiIiwKIAkJKHRtcCAmIE9UR19SRVNFVF9ET05FKSA/ICIgcmVzZXRfZG9uZSIgOiAiIHJlc2V0X2FjdGl2ZSIpOwotCXRtcCA9IE9UR19TWVNDT05fMl9SRUc7CisJdG1wID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzIpOwogCXNlcV9wcmludGYocywgIm90Z19zeXNjb24yICUwOHglcyIgRUlHSFRCSVRTCiAJCQkiIGJfYXNlX2Jyc3Q9JWQgaG1jPSVkXG4iLCB0bXAsCiAJCSh0bXAgJiBPVEdfRU4pID8gIiBvdGdfZW4iIDogIiIsCkBAIC0yMzIzLDcgKzIzNDcsNyBAQAogCQkodG1wICYgSE1DX1RMTEFUVEFDSCkgPyAiIHRsbGF0dGFjaCIgOiAiIiwKIAkJQl9BU0VfQlJTVCh0bXApLAogCQlPVEdfSE1DKHRtcCkpOwotCXRtcCA9IE9UR19DVFJMX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfY3RybCAgICAlMDZ4IiBFSUdIVEJJVFMgRUlHSFRCSVRTICIlc1xuIiwgdG1wLAogCQkodG1wICYgT1RHX0FTRVNTVkxEKSA/ICIgYXNlc3MiIDogIiIsCiAJCSh0bXAgJiBPVEdfQlNFU1NFTkQpID8gIiBic2Vzc19lbmQiIDogIiIsCkBAIC0yMzQzLDEzICsyMzY3LDEzIEBACiAJCSh0bXAgJiBPVEdfUFVfVkJVUykgPyAiIHB1X3ZiIiA6ICIiLAogCQkodG1wICYgT1RHX1BVX0lEKSA/ICIgcHVfaWQiIDogIiIKIAkJKTsKLQl0bXAgPSBPVEdfSVJRX0VOX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KE9UR19JUlFfRU4pOwogCXNlcV9wcmludGYocywgIm90Z19pcnFfZW4gICUwNHgiICJcbiIsIHRtcCk7Ci0JdG1wID0gT1RHX0lSUV9TUkNfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoT1RHX0lSUV9TUkMpOwogCXNlcV9wcmludGYocywgIm90Z19pcnFfc3JjICUwNHgiICJcbiIsIHRtcCk7Ci0JdG1wID0gT1RHX09VVENUUkxfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoT1RHX09VVENUUkwpOwogCXNlcV9wcmludGYocywgIm90Z19vdXRjdHJsICUwNHgiICJcbiIsIHRtcCk7Ci0JdG1wID0gT1RHX1RFU1RfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoT1RHX1RFU1QpOwogCXNlcV9wcmludGYocywgIm90Z190ZXN0ICAgICUwNHgiICJcbiIsIHRtcCk7CiAJcmV0dXJuIDA7CiB9CkBAIC0yMzcwLDcgKzIzOTQsNyBAQAogCQlkcml2ZXJfZGVzYywKIAkJdXNlX2RtYSA/ICAiIChkbWEpIiA6ICIiKTsKIAotCXRtcCA9IFVEQ19SRVZfUkVHICYgMHhmZjsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19SRVYpICYgMHhmZjsKIAlzZXFfcHJpbnRmKHMsCiAJCSJVREMgcmV2ICVkLiVkLCBmaWZvIG1vZGUgJWQsIGdhZGdldCAlc1xuIgogCQkiaG1jICVkLCB0cmFuc2NlaXZlciAlc1xuIiwKQEAgLTIzODQsMTYgKzI0MDgsMTYgQEAKIAkJCQk/ICJleHRlcm5hbCIgOiAiKG5vbmUpIikpOwogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewogCQlzZXFfcHJpbnRmKHMsICJVTFBEIGNvbnRyb2wgJTA0eCByZXEgJTA0eCBzdGF0dXMgJTA0eFxuIiwKLQkJCV9fUkVHMTYoVUxQRF9DTE9DS19DVFJMKSwKLQkJCV9fUkVHMTYoVUxQRF9TT0ZUX1JFUSksCi0JCQlfX1JFRzE2KFVMUERfU1RBVFVTX1JFUSkpOworCQkJb21hcF9yZWFkdyhVTFBEX0NMT0NLX0NUUkwpLAorCQkJb21hcF9yZWFkdyhVTFBEX1NPRlRfUkVRKSwKKwkJCW9tYXBfcmVhZHcoVUxQRF9TVEFUVVNfUkVRKSk7CiAJfQogCiAJLyogT1RHIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCiAJaWYgKCFjcHVfaXNfb21hcDE1eHgoKSkKIAkJcHJvY19vdGdfc2hvdyhzKTsKIAotCXRtcCA9IFVEQ19TWVNDT04xX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19TWVNDT04xKTsKIAlzZXFfcHJpbnRmKHMsICJcbnN5c2NvbjEgICAgICUwNHgiIEVJR0hUQklUUyAiXG4iLCB0bXAsCiAJCSh0bXAgJiBVRENfQ0ZHX0xPQ0spID8gIiBjZmdfbG9jayIgOiAiIiwKIAkJKHRtcCAmIFVEQ19EQVRBX0VORElBTikgPyAiIGRhdGFfZW5kaWFuIiA6ICIiLApAQCAtMjQxMiw3ICsyNDM2LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JdG1wID0gVURDX0RFVlNUQVRfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX0RFVlNUQVQpOwogCXNlcV9wcmludGYocywgImRldnN0YXQgICAgICUwNHgiIEVJR0hUQklUUyAiJXMlc1xuIiwgdG1wLAogCQkodG1wICYgVURDX0JfSE5QX0VOQUJMRSkgPyAiIGJfaG5wIiA6ICIiLAogCQkodG1wICYgVURDX0FfSE5QX1NVUFBPUlQpID8gIiBhX2hucCIgOiAiIiwKQEAgLTI0MjQsMjAgKzI0NDgsMjAgQEAKIAkJKHRtcCAmIFVEQ19BREQpID8gIiBBREQiIDogIiIsCiAJCSh0bXAgJiBVRENfREVGKSA/ICIgREVGIiA6ICIiLAogCQkodG1wICYgVURDX0FUVCkgPyAiIEFUVCIgOiAiIik7Ci0Jc2VxX3ByaW50ZihzLCAic29mICAgICAgICAgJTA0eFxuIiwgVURDX1NPRl9SRUcpOwotCXRtcCA9IFVEQ19JUlFfRU5fUkVHOworCXNlcV9wcmludGYocywgInNvZiAgICAgICAgICUwNHhcbiIsIG9tYXBfcmVhZHcoVURDX1NPRikpOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX0lSUV9FTik7CiAJc2VxX3ByaW50ZihzLCAiaXJxX2VuICAgICAgJTA0eCIgRk9VUkJJVFMgIiVzXG4iLCB0bXAsCiAJCSh0bXAgJiBVRENfU09GX0lFKSA/ICIgc29mIiA6ICIiLAogCQkodG1wICYgVURDX0VQTl9SWF9JRSkgPyAiIGVwbl9yeCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19FUE5fVFhfSUUpID8gIiBlcG5fdHgiIDogIiIsCiAJCSh0bXAgJiBVRENfRFNfQ0hHX0lFKSA/ICIgZHNfY2hnIiA6ICIiLAogCQkodG1wICYgVURDX0VQMF9JRSkgPyAiIGVwMCIgOiAiIik7Ci0JdG1wID0gVURDX0lSUV9TUkNfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX0lSUV9TUkMpOwogCXNlcV9wcmludGYocywgImlycV9zcmMgICAgICUwNHgiIEVJR0hUQklUUyAiJXMlc1xuIiwgdG1wLAogCQkodG1wICYgVURDX1RYTl9ET05FKSA/ICIgdHhuX2RvbmUiIDogIiIsCiAJCSh0bXAgJiBVRENfUlhOX0NOVCkgPyAiIHJ4bl9jbnQiIDogIiIsCiAJCSh0bXAgJiBVRENfUlhOX0VPVCkgPyAiIHJ4bl9lb3QiIDogIiIsCi0JCSh0bXAgJiBVRENfU09GKSA/ICIgc29mIiA6ICIiLAorCQkodG1wICYgVURDX0lSUV9TT0YpID8gIiBzb2YiIDogIiIsCiAJCSh0bXAgJiBVRENfRVBOX1JYKSA/ICIgZXBuX3J4IiA6ICIiLAogCQkodG1wICYgVURDX0VQTl9UWCkgPyAiIGVwbl90eCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19EU19DSEcpID8gIiBkc19jaGciIDogIiIsCkBAIC0yNDQ3LDcgKzI0NzEsNyBAQAogCWlmICh1c2VfZG1hKSB7CiAJCXVuc2lnbmVkIGk7CiAKLQkJdG1wID0gVURDX0RNQV9JUlFfRU5fUkVHOworCQl0bXAgPSBvbWFwX3JlYWR3KFVEQ19ETUFfSVJRX0VOKTsKIAkJc2VxX3ByaW50ZihzLCAiZG1hX2lycV9lbiAgJTA0eCVzIiBFSUdIVEJJVFMgIlxuIiwgdG1wLAogCQkJKHRtcCAmIFVEQ19UWF9ET05FX0lFKDMpKSA/ICIgdHgyX2RvbmUiIDogIiIsCiAJCQkodG1wICYgVURDX1JYX0NOVF9JRSgzKSkgPyAiIHJ4Ml9jbnQiIDogIiIsCkBAIC0yNDYxLDI5ICsyNDg1LDI5IEBACiAJCQkodG1wICYgVURDX1JYX0NOVF9JRSgxKSkgPyAiIHJ4MF9jbnQiIDogIiIsCiAJCQkodG1wICYgVURDX1JYX0VPVF9JRSgxKSkgPyAiIHJ4MF9lb3QiIDogIiIpOwogCi0JCXRtcCA9IFVEQ19SWERNQV9DRkdfUkVHOworCQl0bXAgPSBvbWFwX3JlYWR3KFVEQ19SWERNQV9DRkcpOwogCQlzZXFfcHJpbnRmKHMsICJyeGRtYV9jZmcgICAlMDR4XG4iLCB0bXApOwogCQlpZiAodG1wKSB7CiAJCQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAJCQkJaWYgKCh0bXAgJiAoMHgwZiA8PCAoaSAqIDQpKSkgPT0gMCkKIAkJCQkJY29udGludWU7CiAJCQkJc2VxX3ByaW50ZihzLCAicnhkbWFbJWRdICAgICUwNHhcbiIsIGksCi0JCQkJCQlVRENfUlhETUFfUkVHKGkgKyAxKSk7CisJCQkJCQlvbWFwX3JlYWR3KFVEQ19SWERNQShpICsgMSkpKTsKIAkJCX0KIAkJfQotCQl0bXAgPSBVRENfVFhETUFfQ0ZHX1JFRzsKKwkJdG1wID0gb21hcF9yZWFkdyhVRENfVFhETUFfQ0ZHKTsKIAkJc2VxX3ByaW50ZihzLCAidHhkbWFfY2ZnICAgJTA0eFxuIiwgdG1wKTsKIAkJaWYgKHRtcCkgewogCQkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogCQkJCWlmICghKHRtcCAmICgweDBmIDw8IChpICogNCkpKSkKIAkJCQkJY29udGludWU7CiAJCQkJc2VxX3ByaW50ZihzLCAidHhkbWFbJWRdICAgICUwNHhcbiIsIGksCi0JCQkJCQlVRENfVFhETUFfUkVHKGkgKyAxKSk7CisJCQkJCQlvbWFwX3JlYWR3KFVEQ19UWERNQShpICsgMSkpKTsKIAkJCX0KIAkJfQogCX0KIAotCXRtcCA9IFVEQ19ERVZTVEFUX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19ERVZTVEFUKTsKIAlpZiAodG1wICYgVURDX0FUVCkgewogCQlwcm9jX2VwX3Nob3cocywgJnVkYy0+ZXBbMF0pOwogCQlpZiAodG1wICYgVURDX0FERCkgewpAQCAtMjUzNSw3ICsyNTU5LDcgQEAKICAqIGJ1ZmZlciBzcGFjZSBhbW9uZyB0aGUgZW5kcG9pbnRzIHdlJ2xsIGJlIG9wZXJhdGluZy4KICAqCiAgKiBOT1RFOiBhcyBvZiBPTUFQIDE3MTAgRVMyLjAsIHdyaXRpbmcgYSBuZXcgZW5kcG9pbnQgY29uZmlnIHdoZW4KLSAqIFVEQ19TWVNDT05fMV9SRUcuQ0ZHX0xPQ0sgaXMgc2V0IGNhbiBub3cgd29yay4gIFdlIHdvbid0IHVzZSB0aGF0CisgKiBVRENfU1lTQ09OXzEuQ0ZHX0xPQ0sgaXMgc2V0IGNhbiBub3cgd29yay4gIFdlIHdvbid0IHVzZSB0aGF0CiAgKiBjYXBhYmlsaXR5IHlldCB0aG91Z2guCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBfX2luaXQKQEAgLTI1OTcsOSArMjYyMSw5IEBACiAJCW5hbWUsIGFkZHIsIGVwbl9yeHR4LCBtYXhwLCBkYnVmID8gIngyIiA6ICIiLCBidWYpOwogCiAJaWYgKGFkZHIgJiBVU0JfRElSX0lOKQotCQlVRENfRVBfVFhfUkVHKGFkZHIgJiAweGYpID0gZXBuX3J4dHg7CisJCW9tYXBfd3JpdGV3KGVwbl9yeHR4LCBVRENfRVBfVFgoYWRkciAmIDB4ZikpOwogCWVsc2UKLQkJVURDX0VQX1JYX1JFRyhhZGRyKSA9IGVwbl9yeHR4OworCQlvbWFwX3dyaXRldyhlcG5fcnh0eCwgVURDX0VQX1JYKGFkZHIpKTsKIAogCS8qIG5leHQgZW5kcG9pbnQncyBidWZmZXIgc3RhcnRzIGFmdGVyIHRoaXMgb25lJ3MgKi8KIAlidWYgKz0gbWF4cDsKQEAgLTI2MzgsMTUgKzI2NjIsMTUgQEAKIAl1bnNpZ25lZAl0bXAsIGJ1ZjsKIAogCS8qIGFib2xpc2ggYW55IHByZXZpb3VzIGhhcmR3YXJlIHN0YXRlICovCi0JVURDX1NZU0NPTjFfUkVHID0gMDsKLQlVRENfSVJRX0VOX1JFRyA9IDA7Ci0JVURDX0lSUV9TUkNfUkVHID0gVURDX0lSUV9TUkNfTUFTSzsKLQlVRENfRE1BX0lSUV9FTl9SRUcgPSAwOwotCVVEQ19SWERNQV9DRkdfUkVHID0gMDsKLQlVRENfVFhETUFfQ0ZHX1JFRyA9IDA7CisJb21hcF93cml0ZXcoMCwgVURDX1NZU0NPTjEpOworCW9tYXBfd3JpdGV3KDAsIFVEQ19JUlFfRU4pOworCW9tYXBfd3JpdGV3KFVEQ19JUlFfU1JDX01BU0ssIFVEQ19JUlFfU1JDKTsKKwlvbWFwX3dyaXRldygwLCBVRENfRE1BX0lSUV9FTik7CisJb21hcF93cml0ZXcoMCwgVURDX1JYRE1BX0NGRyk7CisJb21hcF93cml0ZXcoMCwgVURDX1RYRE1BX0NGRyk7CiAKIAkvKiBVRENfUFVMTFVQX0VOIGdhdGVzIHRoZSBjaGlwIGNsb2NrICovCi0JLy8gT1RHX1NZU0NPTl8xX1JFRyB8PSBERVZfSURMRV9FTjsKKwkvLyBPVEdfU1lTQ09OXzEgfD0gREVWX0lETEVfRU47CiAKIAl1ZGMgPSBremFsbG9jKHNpemVvZigqdWRjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF1ZGMpCkBAIC0yNjc3LDggKzI3MDEsOCBAQAogCiAJLyogaW5pdGlhbGx5IGRpc2FibGUgYWxsIG5vbi1lcDAgZW5kcG9pbnRzICovCiAJZm9yICh0bXAgPSAxOyB0bXAgPCAxNTsgdG1wKyspIHsKLQkJVURDX0VQX1JYX1JFRyh0bXApID0gMDsKLQkJVURDX0VQX1RYX1JFRyh0bXApID0gMDsKKwkJb21hcF93cml0ZXcoMCwgVURDX0VQX1JYKHRtcCkpOworCQlvbWFwX3dyaXRldygwLCBVRENfRVBfVFgodG1wKSk7CiAJfQogCiAjZGVmaW5lIE9NQVBfQlVMS19FUChuYW1lLGFkZHIpIFwKQEAgLTI3NjMsNyArMjc4Nyw3IEBACiAJCUVSUigidW5zdXBwb3J0ZWQgZmlmb19tb2RlICMlZFxuIiwgZmlmb19tb2RlKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQotCVVEQ19TWVNDT04xX1JFRyA9IFVEQ19DRkdfTE9DS3xVRENfU0VMRl9QV1I7CisJb21hcF93cml0ZXcoVURDX0NGR19MT0NLfFVEQ19TRUxGX1BXUiwgVURDX1NZU0NPTjEpOwogCUlORk8oImZpZm8gbW9kZSAlZCwgJWQgYnl0ZXMgbm90IHVzZWRcbiIsIGZpZm9fbW9kZSwgMjA0OCAtIGJ1Zik7CiAJcmV0dXJuIDA7CiB9CkBAIC0yODA3LDcgKzI4MzEsNyBAQAogCX0KIAogCUlORk8oIk9NQVAgVURDIHJldiAlZC4lZCVzXG4iLAotCQlVRENfUkVWX1JFRyA+PiA0LCBVRENfUkVWX1JFRyAmIDB4ZiwKKwkJb21hcF9yZWFkdyhVRENfUkVWKSA+PiA0LCBvbWFwX3JlYWR3KFVEQ19SRVYpICYgMHhmLAogCQljb25maWctPm90ZyA/ICIsIE1pbmktQUIiIDogIiIpOwogCiAJLyogdXNlIHRoZSBtb2RlIGdpdmVuIHRvIHVzIGJ5IGJvYXJkIGluaXQgY29kZSAqLwpAQCAtMjgyMiwxMiArMjg0NiwxMiBAQAogCQkJICoga25vdyB3aGVuIHRvIHR1cm4gUFVMTFVQX0VOIG9uL29mZjsgYW5kIHRoYXQKIAkJCSAqIG1lYW5zIHdlIGFsd2F5cyAibmVlZCIgdGhlIDQ4TUh6IGNsb2NrLgogCQkJICovCi0JCQl1MzIgdG1wID0gRlVOQ19NVVhfQ1RSTF8wX1JFRzsKLQotCQkJRlVOQ19NVVhfQ1RSTF8wX1JFRyAmPSB+VkJVU19DVFJMXzE1MTA7CisJCQl1MzIgdG1wID0gb21hcF9yZWFkbChGVU5DX01VWF9DVFJMXzApOworCQkJdG1wICY9IH5WQlVTX0NUUkxfMTUxMDsKKwkJCW9tYXBfd3JpdGVsKHRtcCwgRlVOQ19NVVhfQ1RSTF8wKTsKIAkJCXRtcCB8PSBWQlVTX01PREVfMTUxMDsKIAkJCXRtcCAmPSB+VkJVU19DVFJMXzE1MTA7Ci0JCQlGVU5DX01VWF9DVFJMXzBfUkVHID0gdG1wOworCQkJb21hcF93cml0ZWwodG1wLCBGVU5DX01VWF9DVFJMXzApOwogCQl9CiAJfSBlbHNlIHsKIAkJLyogVGhlIHRyYW5zY2VpdmVyIG1heSBwYWNrYWdlIHNvbWUgR1BJTyBsb2dpYyBvciBoYW5kbGUKQEAgLTI5MDcsNyArMjkzMSw3IEBACiAjZW5kaWYKIAogCS8qIHN0YXJ0aW5nIHdpdGggb21hcDE3MTAgZXMyLjAsIGNsZWFyIHRvZ2dsZSBpcyBhIHNlcGFyYXRlIGJpdCAqLwotCWlmIChVRENfUkVWX1JFRyA+PSAweDYxKQorCWlmIChvbWFwX3JlYWR3KFVEQ19SRVYpID49IDB4NjEpCiAJCXVkYy0+Y2xyX2hhbHQgPSBVRENfUkVTRVRfRVAgfCBVRENfQ0xSREFUQV9UT0dHTEU7CiAJZWxzZQogCQl1ZGMtPmNscl9oYWx0ID0gVURDX1JFU0VUX0VQOwpAQCAtMzAwNSw3ICszMDI5LDcgQEAKIAkJcHV0X2RldmljZSh1ZGMtPnRyYW5zY2VpdmVyLT5kZXYpOwogCQl1ZGMtPnRyYW5zY2VpdmVyID0gTlVMTDsKIAl9Ci0JVURDX1NZU0NPTjFfUkVHID0gMDsKKwlvbWFwX3dyaXRldygwLCBVRENfU1lTQ09OMSk7CiAKIAlyZW1vdmVfcHJvY19maWxlKCk7CiAKQEAgLTMwMzYsNyArMzA2MCw3IEBACiAgKgogICogUkVWSVNJVCB3ZSBzaG91bGQgcHJvYmFibHkgcmVqZWN0IHN1c3BlbmQgcmVxdWVzdHMgd2hlbiB0aGVyZSdzIGEgaG9zdAogICogc2Vzc2lvbiBhY3RpdmUsIHJhdGhlciB0aGFuIGRpc2Nvbm5lY3RpbmcsIGF0IGxlYXN0IG9uIGJvYXJkcyB0aGF0IGNhbgotICogcmVwb3J0IFZCVVMgaXJxcyAoVURDX0RFVlNUQVRfUkVHLlVEQ19BVFQpLiAgQW5kIGluIGFueSBjYXNlLCB3ZSBuZWVkIHRvCisgKiByZXBvcnQgVkJVUyBpcnFzIChVRENfREVWU1RBVC5VRENfQVRUKS4gIEFuZCBpbiBhbnkgY2FzZSwgd2UgbmVlZCB0bwogICogbWFrZSBob3N0IHJlc3VtZXMgYW5kIFZCVVMgZGV0ZWN0aW9uIHRyaWdnZXIgT01BUCB3YWtldXAgZXZlbnRzOyB0aGF0CiAgKiBtYXkgaW52b2x2ZSB0YWxraW5nIHRvIGFuIGV4dGVybmFsIHRyYW5zY2VpdmVyIChlLmcuIGlzcDEzMDEpLgogICovCkBAIC0zMDQ1LDcgKzMwNjksNyBAQAogewogCXUzMglkZXZzdGF0OwogCi0JZGV2c3RhdCA9IFVEQ19ERVZTVEFUX1JFRzsKKwlkZXZzdGF0ID0gb21hcF9yZWFkdyhVRENfREVWU1RBVCk7CiAKIAkvKiB3ZSdyZSByZXF1ZXN0aW5nIDQ4IE1IeiBjbG9jayBpZiB0aGUgcHVsbHVwIGlzIGVuYWJsZWQKIAkgKiAoPT0gd2UncmUgYXR0YWNoZWQgdG8gdGhlIGhvc3QpIGFuZCB3ZSdyZSBub3Qgc3VzcGVuZGVkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmggYi9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuaAppbmRleCBjNmI5Y2JjLi44NTIyYmJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuaAorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuaApAQCAtOCwyMyArOCwyMiBAQAogLyoKICAqIFVTQiBkZXZpY2UvZW5kcG9pbnQgbWFuYWdlbWVudCByZWdpc3RlcnMKICAqLwotI2RlZmluZSBVRENfUkVHKG9mZnNldCkgICAgICAgICAgICAgIF9fUkVHMTYoVURDX0JBU0UgKyAob2Zmc2V0KSkKIAotI2RlZmluZQlVRENfUkVWX1JFRwkJCVVEQ19SRUcoMHgwKQkvKiBSZXZpc2lvbiAqLwotI2RlZmluZQlVRENfRVBfTlVNX1JFRwkJCVVEQ19SRUcoMHg0KQkvKiBXaGljaCBlbmRwb2ludCAqLworI2RlZmluZQlVRENfUkVWCQkJCShVRENfQkFTRSArIDB4MCkJLyogUmV2aXNpb24gKi8KKyNkZWZpbmUJVURDX0VQX05VTQkJCShVRENfQkFTRSArIDB4NCkJLyogV2hpY2ggZW5kcG9pbnQgKi8KICMJZGVmaW5lCVVEQ19TRVRVUF9TRUwJCSgxIDw8IDYpCiAjCWRlZmluZQlVRENfRVBfU0VMCQkoMSA8PCA1KQogIwlkZWZpbmUJVURDX0VQX0RJUgkJKDEgPDwgNCkKIAkvKiBsb3cgNCBiaXRzIGZvciBlbmRwb2ludCBudW1iZXIgKi8KLSNkZWZpbmUJVURDX0RBVEFfUkVHCQkJVURDX1JFRygweDA4KQkvKiBFbmRwb2ludCBGSUZPICovCi0jZGVmaW5lCVVEQ19DVFJMX1JFRwkJCVVEQ19SRUcoMHgwQykJLyogRW5kcG9pbnQgY29udHJvbCAqLworI2RlZmluZQlVRENfREFUQQkJCShVRENfQkFTRSArIDB4MDgpCS8qIEVuZHBvaW50IEZJRk8gKi8KKyNkZWZpbmUJVURDX0NUUkwJCQkoVURDX0JBU0UgKyAweDBDKQkvKiBFbmRwb2ludCBjb250cm9sICovCiAjCWRlZmluZQlVRENfQ0xSX0hBTFQJCSgxIDw8IDcpCiAjCWRlZmluZQlVRENfU0VUX0hBTFQJCSgxIDw8IDYpCiAjCWRlZmluZQlVRENfQ0xSREFUQV9UT0dHTEUJKDEgPDwgMykKICMJZGVmaW5lCVVEQ19TRVRfRklGT19FTgkJKDEgPDwgMikKICMJZGVmaW5lCVVEQ19DTFJfRVAJCSgxIDw8IDEpCiAjCWRlZmluZQlVRENfUkVTRVRfRVAJCSgxIDw8IDApCi0jZGVmaW5lCVVEQ19TVEFUX0ZMR19SRUcJCVVEQ19SRUcoMHgxMCkJLyogRW5kcG9pbnQgc3RhdHVzICovCisjZGVmaW5lCVVEQ19TVEFUX0ZMRwkJCShVRENfQkFTRSArIDB4MTApCS8qIEVuZHBvaW50IHN0YXR1cyAqLwogIwlkZWZpbmUJVURDX05PX1JYUEFDS0VUCQkoMSA8PCAxNSkKICMJZGVmaW5lCVVEQ19NSVNTX0lOCQkoMSA8PCAxNCkKICMJZGVmaW5lCVVEQ19EQVRBX0ZMVVNICQkoMSA8PCAxMykKQEAgLTM4LDggKzM3LDggQEAKICMJZGVmaW5lCVVEQ19GSUZPX0VOCQkoMSA8PCAyKQogIwlkZWZpbmUJVURDX05PTl9JU09fRklGT19FTVBUWQkoMSA8PCAxKQogIwlkZWZpbmUJVURDX05PTl9JU09fRklGT19GVUxMCSgxIDw8IDApCi0jZGVmaW5lCVVEQ19SWEZTVEFUX1JFRwkJCVVEQ19SRUcoMHgxNCkJLyogT1VUIGJ5dGVjb3VudCAqLwotI2RlZmluZQlVRENfU1lTQ09OMV9SRUcJCQlVRENfUkVHKDB4MTgpCS8qIFN5c3RlbSBjb25maWcgMSAqLworI2RlZmluZQlVRENfUlhGU1RBVAkJCShVRENfQkFTRSArIDB4MTQpCS8qIE9VVCBieXRlY291bnQgKi8KKyNkZWZpbmUJVURDX1NZU0NPTjEJCQkoVURDX0JBU0UgKyAweDE4KQkvKiBTeXN0ZW0gY29uZmlnIDEgKi8KICMJZGVmaW5lCVVEQ19DRkdfTE9DSwkJKDEgPDwgOCkKICMJZGVmaW5lCVVEQ19EQVRBX0VORElBTgkJKDEgPDwgNykKICMJZGVmaW5lCVVEQ19ETUFfRU5ESUFOCQkoMSA8PCA2KQpAQCAtNDgsMTIgKzQ3LDEyIEBACiAjCWRlZmluZQlVRENfU0VMRl9QV1IJCSgxIDw8IDIpCiAjCWRlZmluZQlVRENfU09GRl9ESVMJCSgxIDw8IDEpCiAjCWRlZmluZQlVRENfUFVMTFVQX0VOCQkoMSA8PCAwKQotI2RlZmluZQlVRENfU1lTQ09OMl9SRUcJCQlVRENfUkVHKDB4MUMpCS8qIFN5c3RlbSBjb25maWcgMiAqLworI2RlZmluZQlVRENfU1lTQ09OMgkJCShVRENfQkFTRSArIDB4MUMpCS8qIFN5c3RlbSBjb25maWcgMiAqLwogIwlkZWZpbmUJVURDX1JNVF9XS1AJCSgxIDw8IDYpCiAjCWRlZmluZQlVRENfU1RBTExfQ01ECQkoMSA8PCA1KQogIwlkZWZpbmUJVURDX0RFVl9DRkcJCSgxIDw8IDMpCiAjCWRlZmluZQlVRENfQ0xSX0NGRwkJKDEgPDwgMikKLSNkZWZpbmUJVURDX0RFVlNUQVRfUkVHCQkJVURDX1JFRygweDIwKQkvKiBEZXZpY2Ugc3RhdHVzICovCisjZGVmaW5lCVVEQ19ERVZTVEFUCQkJKFVEQ19CQVNFICsgMHgyMCkJLyogRGV2aWNlIHN0YXR1cyAqLwogIwlkZWZpbmUJVURDX0JfSE5QX0VOQUJMRQkoMSA8PCA5KQogIwlkZWZpbmUJVURDX0FfSE5QX1NVUFBPUlQJKDEgPDwgOCkKICMJZGVmaW5lCVVEQ19BX0FMVF9ITlBfU1VQUE9SVAkoMSA8PCA3KQpAQCAtNjQsMjYgKzYzLDI2IEBACiAjCWRlZmluZQlVRENfQURECQkJKDEgPDwgMikKICMJZGVmaW5lCVVEQ19ERUYJCQkoMSA8PCAxKQogIwlkZWZpbmUJVURDX0FUVAkJCSgxIDw8IDApCi0jZGVmaW5lCVVEQ19TT0ZfUkVHCQkJVURDX1JFRygweDI0KQkvKiBTdGFydCBvZiBmcmFtZSAqLworI2RlZmluZQlVRENfU09GCQkJCShVRENfQkFTRSArIDB4MjQpCS8qIFN0YXJ0IG9mIGZyYW1lICovCiAjCWRlZmluZQlVRENfRlRfTE9DSwkJKDEgPDwgMTIpCiAjCWRlZmluZQlVRENfVFNfT0sJCSgxIDw8IDExKQogIwlkZWZpbmUJVURDX1RTCQkJMHgwM2ZmCi0jZGVmaW5lCVVEQ19JUlFfRU5fUkVHCQkJVURDX1JFRygweDI4KQkvKiBJbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lCVVEQ19JUlFfRU4JCQkoVURDX0JBU0UgKyAweDI4KQkvKiBJbnRlcnJ1cHQgZW5hYmxlICovCiAjCWRlZmluZQlVRENfU09GX0lFCQkoMSA8PCA3KQogIwlkZWZpbmUJVURDX0VQTl9SWF9JRQkJKDEgPDwgNSkKICMJZGVmaW5lCVVEQ19FUE5fVFhfSUUJCSgxIDw8IDQpCiAjCWRlZmluZQlVRENfRFNfQ0hHX0lFCQkoMSA8PCAzKQogIwlkZWZpbmUJVURDX0VQMF9JRQkJKDEgPDwgMCkKLSNkZWZpbmUJVURDX0RNQV9JUlFfRU5fUkVHCQlVRENfUkVHKDB4MkMpCS8qIERNQSBpcnEgZW5hYmxlICovCisjZGVmaW5lCVVEQ19ETUFfSVJRX0VOCQkJKFVEQ19CQVNFICsgMHgyQykJLyogRE1BIGlycSBlbmFibGUgKi8KIAkvKiByeC90eCBkbWEgY2hhbm5lbHMgbnVtYmVyZWQgMS0zIG5vdCAwLTIgKi8KICMJZGVmaW5lCVVEQ19UWF9ET05FX0lFKG4pCSgxIDw8ICg0ICogKG4pIC0gMikpCiAjCWRlZmluZQlVRENfUlhfQ05UX0lFKG4pCSgxIDw8ICg0ICogKG4pIC0gMykpCiAjCWRlZmluZQlVRENfUlhfRU9UX0lFKG4pCSgxIDw8ICg0ICogKG4pIC0gNCkpCi0jZGVmaW5lCVVEQ19JUlFfU1JDX1JFRwkJCVVEQ19SRUcoMHgzMCkJLyogSW50ZXJydXB0IHNvdXJjZSAqLworI2RlZmluZQlVRENfSVJRX1NSQwkJCShVRENfQkFTRSArIDB4MzApCS8qIEludGVycnVwdCBzb3VyY2UgKi8KICMJZGVmaW5lCVVEQ19UWE5fRE9ORQkJKDEgPDwgMTApCiAjCWRlZmluZQlVRENfUlhOX0NOVAkJKDEgPDwgOSkKICMJZGVmaW5lCVVEQ19SWE5fRU9UCQkoMSA8PCA4KQotIwlkZWZpbmUJVURDX1NPRgkJCSgxIDw8IDcpCisjCWRlZmluZQlVRENfSVJRX1NPRgkJKDEgPDwgNykKICMJZGVmaW5lCVVEQ19FUE5fUlgJCSgxIDw8IDUpCiAjCWRlZmluZQlVRENfRVBOX1RYCQkoMSA8PCA0KQogIwlkZWZpbmUJVURDX0RTX0NIRwkJKDEgPDwgMykKQEAgLTkxLDQxICs5MCw0MSBAQAogIwlkZWZpbmUJVURDX0VQMF9SWAkJKDEgPDwgMSkKICMJZGVmaW5lCVVEQ19FUDBfVFgJCSgxIDw8IDApCiAjCWRlZmluZQlVRENfSVJRX1NSQ19NQVNLCTB4N2JmCi0jZGVmaW5lCVVEQ19FUE5fU1RBVF9SRUcJCVVEQ19SRUcoMHgzNCkJLyogRVAgaXJxIHN0YXR1cyAqLwotI2RlZmluZQlVRENfRE1BTl9TVEFUX1JFRwkJVURDX1JFRygweDM4KQkvKiBETUEgaXJxIHN0YXR1cyAqLworI2RlZmluZQlVRENfRVBOX1NUQVQJCQkoVURDX0JBU0UgKyAweDM0KQkvKiBFUCBpcnEgc3RhdHVzICovCisjZGVmaW5lCVVEQ19ETUFOX1NUQVQJCQkoVURDX0JBU0UgKyAweDM4KQkvKiBETUEgaXJxIHN0YXR1cyAqLwogIwlkZWZpbmUJVURDX0RNQV9SWF9TQgkJKDEgPDwgMTIpCiAjCWRlZmluZQlVRENfRE1BX1JYX1NSQyh4KQkoKCh4KT4+OCkgJiAweGYpCiAjCWRlZmluZQlVRENfRE1BX1RYX1NSQyh4KQkoKCh4KT4+MCkgJiAweGYpCiAKIAogLyogRE1BIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzOiAgdXAgdG8gdGhyZWUgY2hhbm5lbHMgaW4gZWFjaCBkaXJlY3Rpb24uICAqLwotI2RlZmluZQlVRENfUlhETUFfQ0ZHX1JFRwkJVURDX1JFRygweDQwKQkvKiAzIGVwcyBmb3IgUlggRE1BICovCisjZGVmaW5lCVVEQ19SWERNQV9DRkcJCQkoVURDX0JBU0UgKyAweDQwKQkvKiAzIGVwcyBmb3IgUlggRE1BICovCiAjCWRlZmluZQlVRENfRE1BX1JFUQkJKDEgPDwgMTIpCi0jZGVmaW5lCVVEQ19UWERNQV9DRkdfUkVHCQlVRENfUkVHKDB4NDQpCS8qIDMgZXBzIGZvciBUWCBETUEgKi8KLSNkZWZpbmUJVURDX0RBVEFfRE1BX1JFRwkJVURDX1JFRygweDQ4KQkvKiByeC90eCBmaWZvIGFkZHIgKi8KKyNkZWZpbmUJVURDX1RYRE1BX0NGRwkJCShVRENfQkFTRSArIDB4NDQpCS8qIDMgZXBzIGZvciBUWCBETUEgKi8KKyNkZWZpbmUJVURDX0RBVEFfRE1BCQkJKFVEQ19CQVNFICsgMHg0OCkJLyogcngvdHggZmlmbyBhZGRyICovCiAKIC8qIHJ4L3R4IGRtYSBjb250cm9sLCBudW1iZXJpbmcgY2hhbm5lbHMgMS0zIG5vdCAwLTIgKi8KLSNkZWZpbmUJVURDX1RYRE1BX1JFRyhjaGFuKQkJVURDX1JFRygweDUwIC0gNCArIDQgKiAoY2hhbikpCisjZGVmaW5lCVVEQ19UWERNQShjaGFuKQkJCShVRENfQkFTRSArIDB4NTAgLSA0ICsgNCAqIChjaGFuKSkKICMJZGVmaW5lIFVEQ19UWE5fRU9UCQkoMSA8PCAxNSkJLyogYnl0ZXMgdnMgcGFja2V0cyAqLwogIwlkZWZpbmUgVURDX1RYTl9TVEFSVAkJKDEgPDwgMTQpCS8qIHN0YXJ0IHRyYW5zZmVyICovCiAjCWRlZmluZSBVRENfVFhOX1RTQwkJMHgwM2ZmCQkvKiB1bml0cyBpbiB4ZmVyICovCi0jZGVmaW5lCVVEQ19SWERNQV9SRUcoY2hhbikJCVVEQ19SRUcoMHg2MCAtIDQgKyA0ICogKGNoYW4pKQorI2RlZmluZQlVRENfUlhETUEoY2hhbikJCQkoVURDX0JBU0UgKyAweDYwIC0gNCArIDQgKiAoY2hhbikpCiAjCWRlZmluZSBVRENfUlhOX1NUT1AJCSgxIDw8IDE1KQkvKiBlbmFibGUgRU9UIGlycSAqLwogIwlkZWZpbmUgVURDX1JYTl9UQwkJMHgwMGZmCQkvKiBwYWNrZXRzIGluIHhmZXIgKi8KIAogCiAvKgogICogRW5kcG9pbnQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKHVzZWQgYmVmb3JlIENGR19MT0NLIGlzIHNldCkKLSAqIFVEQ19FUF9UWF9SRUcoMCkgaXMgdW51c2VkCisgKiBVRENfRVBfVFgoMCkgaXMgdW51c2VkCiAgKi8KLSNkZWZpbmUJVURDX0VQX1JYX1JFRyhlbmRwb2ludCkJCVVEQ19SRUcoMHg4MCArIChlbmRwb2ludCkqNCkKKyNkZWZpbmUJVURDX0VQX1JYKGVuZHBvaW50KQkJKFVEQ19CQVNFICsgMHg4MCArIChlbmRwb2ludCkqNCkKICMJZGVmaW5lCVVEQ19FUE5fUlhfVkFMSUQJKDEgPDwgMTUpCiAjCWRlZmluZQlVRENfRVBOX1JYX0RCCQkoMSA8PCAxNCkKIAkvKiBidWZmZXIgc2l6ZSBpbiBiaXRzIDEzLCAxMiAqLwogIwlkZWZpbmUJVURDX0VQTl9SWF9JU08JCSgxIDw8IDExKQogCS8qIGJ1ZmZlciBwb2ludGVyIGluIGxvdyAxMSBiaXRzICovCi0jZGVmaW5lCVVEQ19FUF9UWF9SRUcoZW5kcG9pbnQpCQlVRENfUkVHKDB4YzAgKyAoZW5kcG9pbnQpKjQpCi0JLyogc2FtZSBiaXRmaWVsZHMgYXMgaW4gUlhfUkVHICovCisjZGVmaW5lCVVEQ19FUF9UWChlbmRwb2ludCkJCShVRENfQkFTRSArIDB4YzAgKyAoZW5kcG9pbnQpKjQpCisJLyogc2FtZSBiaXRmaWVsZHMgYXMgaW4gUlggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIApAQCAtMTk1LDE0ICsxOTQsMTQgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2RlZmluZQlNT0RfQ09ORl9DVFJMXzBfUkVHCV9fUkVHMzIoTU9EX0NPTkZfQ1RSTF8wKQotI2RlZmluZQlWQlVTX1cyRkNfMTUxMAkJKDEgPDwgMTcpCS8qIDAgZ3BpbzAsIDEgZHZkZDIgcGluICovCisvKiBNT0RfQ09ORl9DVFJMXzAgKi8KKyNkZWZpbmUgVkJVU19XMkZDXzE1MTAJCSgxIDw8IDE3KQkvKiAwIGdwaW8wLCAxIGR2ZGQyIHBpbiAqLwogCi0jZGVmaW5lCUZVTkNfTVVYX0NUUkxfMF9SRUcJX19SRUczMihGVU5DX01VWF9DVFJMXzApCisvKiBGVU5DX01VWF9DVFJMXzAgKi8KICNkZWZpbmUJVkJVU19DVFJMXzE1MTAJCSgxIDw8IDE5KQkvKiAxIGNvbm5lY3RlZCAoc29mdHdhcmUpICovCiAjZGVmaW5lCVZCVVNfTU9ERV8xNTEwCQkoMSA8PCAxOCkJLyogMCBoYXJkd2FyZSwgMSBzb2Z0d2FyZSAqLwogCi0jZGVmaW5lCUhNQ18xNTEwCSgoTU9EX0NPTkZfQ1RSTF8wX1JFRyA+PiAxKSAmIDB4M2YpCi0jZGVmaW5lCUhNQ18xNjEwCShPVEdfU1lTQ09OXzJfUkVHICYgMHgzZikKKyNkZWZpbmUJSE1DXzE1MTAJKChvbWFwX3JlYWRsKE1PRF9DT05GX0NUUkxfMCkgPj4gMSkgJiAweDNmKQorI2RlZmluZQlITUNfMTYxMAkob21hcF9yZWFkbChPVEdfU1lTQ09OXzIpICYgMHgzZikKICNkZWZpbmUJSE1DCQkoY3B1X2lzX29tYXAxNXh4KCkgPyBITUNfMTUxMCA6IEhNQ18xNjEwKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHJpbnRlci5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3ByaW50ZXIuYwppbmRleCA3NmJlNzVlLi5lYzhmMmViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHJpbnRlci5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9wcmludGVyLmMKQEAgLTQ2Miw2ICs0NjIsNyBAQAogCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwogCWludAkJCXJldCA9IC1FQlVTWTsKIAorCWxvY2tfa2VybmVsKCk7CiAJZGV2ID0gY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsIHN0cnVjdCBwcmludGVyX2RldiwgcHJpbnRlcl9jZGV2KTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmxvY2ssIGZsYWdzKTsKQEAgLTQ3Nyw3ICs0NzgsNyBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+bG9jaywgZmxhZ3MpOwogCiAJREJHKGRldiwgInByaW50ZXJfb3BlbiByZXR1cm5lZCAleFxuIiwgcmV0KTsKLQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzFkY2ViCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuYwpAQCAtMCwwICsxLDIzODggQEAKKy8qCisgKiBJbnRlbCBQWEEyNXggYW5kIElYUDR4eCBvbi1jaGlwIGZ1bGwgc3BlZWQgVVNCIGRldmljZSBjb250cm9sbGVycworICoKKyAqIENvcHlyaWdodCAoQykgMjAwMiBJbnRyaW5zeWMsIEluYy4gKEZyYW5rIEJlY2tlcikKKyAqIENvcHlyaWdodCAoQykgMjAwMyBSb2JlcnQgU2Nod2ViZWwsIFBlbmd1dHJvbml4CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgQmVuZWRpa3QgU3ByYW5nZXIsIFBlbmd1dHJvbml4CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgRGF2aWQgQnJvd25lbGwKKyAqIENvcHlyaWdodCAoQykgMjAwMyBKb3NodWEgV2lzZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqCisgKi8KKworLyogI2RlZmluZSBWRVJCT1NFX0RFQlVHICovCisKKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorI2luY2x1ZGUgPGFzbS9kbWEuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KKworI2luY2x1ZGUgPGxpbnV4L3VzYi9jaDkuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IvZ2FkZ2V0Lmg+CisKKy8qCisgKiBUaGlzIGRyaXZlciBpcyBQWEEyNXggb25seS4gIEdyYWIgdGhlIHJpZ2h0IHJlZ2lzdGVyIGRlZmluaXRpb25zLgorICovCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBCisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMjV4LXVkYy5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxhc20vbWFjaC91ZGNfcHhhMnh4Lmg+CisKKworLyoKKyAqIFRoaXMgZHJpdmVyIGhhbmRsZXMgdGhlIFVTQiBEZXZpY2UgQ29udHJvbGxlciAoVURDKSBpbiBJbnRlbCdzIFBYQSAyNXgKKyAqIHNlcmllcyBwcm9jZXNzb3JzLiAgVGhlIFVEQyBmb3IgdGhlIElYUCA0eHggc2VyaWVzIGlzIHZlcnkgc2ltaWxhci4KKyAqIFRoZXJlIGFyZSBmaWZ0ZWVuIGVuZHBvaW50cywgaW4gYWRkaXRpb24gdG8gZXAwLgorICoKKyAqIFN1Y2ggY29udHJvbGxlciBkcml2ZXJzIHdvcmsgd2l0aCBhIGdhZGdldCBkcml2ZXIuICBUaGUgZ2FkZ2V0IGRyaXZlcgorICogcmV0dXJucyBkZXNjcmlwdG9ycywgaW1wbGVtZW50cyBjb25maWd1cmF0aW9uIGFuZCBkYXRhIHByb3RvY29scyB1c2VkCisgKiBieSB0aGUgaG9zdCB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZGV2aWNlLCBhbmQgYWxsb2NhdGVzIGVuZHBvaW50cyB0bworICogdGhlIGRpZmZlcmVudCBwcm90b2NvbCBpbnRlcmZhY2VzLiAgVGhlIGNvbnRyb2xsZXIgZHJpdmVyIHZpcnR1YWxpemVzCisgKiB1c2IgaGFyZHdhcmUgc28gdGhhdCB0aGUgZ2FkZ2V0IGRyaXZlcnMgd2lsbCBiZSBtb3JlIHBvcnRhYmxlLgorICoKKyAqIFRoaXMgVURDIGhhcmR3YXJlIHdhbnRzIHRvIGltcGxlbWVudCBhIGJpdCB0b28gbXVjaCBVU0IgcHJvdG9jb2wsIHNvCisgKiBpdCBjb25zdHJhaW5zIHRoZSBzb3J0cyBvZiBVU0IgY29uZmlndXJhdGlvbiBjaGFuZ2UgZXZlbnRzIHRoYXQgd29yay4KKyAqIFRoZSBlcnJhdGEgZm9yIHRoZXNlIGNoaXBzIGFyZSBtaXNsZWFkaW5nOyBzb21lICJmaXhlZCIgYnVncyBmcm9tCisgKiBweGEyNTAgYTAvYTEgYjAvYjEvYjIgc3VyZSBhY3QgbGlrZSB0aGV5J3JlIHN0aWxsIHRoZXJlLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgVURDIGhhcmR3YXJlIHN1cHBvcnRzIERNQSAoZXhjZXB0IG9uIElYUCkgYnV0IHRoYXQncworICogbm90IHVzZWQgaGVyZS4gIElOLURNQSAodG8gaG9zdCkgaXMgc2ltcGxlIGVub3VnaCwgd2hlbiB0aGUgZGF0YSBpcworICogc3VpdGFibHkgYWxpZ25lZCAoMTYgYnl0ZXMpIC4uLiB0aGUgbmV0d29yayBzdGFjayBkb2Vzbid0IGRvIHRoYXQsCisgKiBvdGhlciBzb2Z0d2FyZSBjYW4uICBPVVQtRE1BIGlzIGJ1Z2d5IGluIG1vc3QgY2hpcCB2ZXJzaW9ucywgYXMgd2VsbAorICogYXMgcG9vcmx5IGRlc2lnbmVkIChkYXRhIHRvZ2dsZSBub3QgYXV0b21hdGljKS4gIFNvIHRoaXMgZHJpdmVyIHdvbid0CisgKiBib3RoZXIgdXNpbmcgRE1BLiAgKE1vc3RseS13b3JraW5nIElOLURNQSBzdXBwb3J0IHdhcyBhdmFpbGFibGUgaW4KKyAqIGtlcm5lbHMgYmVmb3JlIDIuNi4yMywgYnV0IHdhcyBuZXZlciBlbmFibGVkIG9yIHdlbGwgdGVzdGVkLikKKyAqLworCisjZGVmaW5lCURSSVZFUl9WRVJTSU9OCSIzMC1KdW5lLTIwMDciCisjZGVmaW5lCURSSVZFUl9ERVNDCSJQWEEgMjV4IFVTQiBEZXZpY2UgQ29udHJvbGxlciBkcml2ZXIiCisKKworc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX25hbWUgW10gPSAicHhhMjV4X3VkYyI7CisKK3N0YXRpYyBjb25zdCBjaGFyIGVwMG5hbWUgW10gPSAiZXAwIjsKKworCisjaWZkZWYgQ09ORklHX0FSQ0hfSVhQNFhYCisKKy8qIGNwdS1zcGVjaWZpYyByZWdpc3RlciBhZGRyZXNzZXMgYXJlIGNvbXBpbGVkIGluIHRvIHRoaXMgY29kZSAqLworI2lmZGVmIENPTkZJR19BUkNIX1BYQQorI2Vycm9yICJDYW4ndCBjb25maWd1cmUgYm90aCBJWFAgYW5kIFBYQSIKKyNlbmRpZgorCisvKiBJWFAgZG9lc24ndCB5ZXQgc3VwcG9ydCA8bGludXgvY2xrLmg+ICovCisjZGVmaW5lIGNsa19nZXQoZGV2LG5hbWUpCU5VTEwKKyNkZWZpbmUgY2xrX2VuYWJsZShjbGspCQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGNsa19kaXNhYmxlKGNsaykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBjbGtfcHV0KGNsaykJCWRvIHsgfSB3aGlsZSAoMCkKKworI2VuZGlmCisKKyNpbmNsdWRlICJweGEyNXhfdWRjLmgiCisKKworI2lmZGVmCUNPTkZJR19VU0JfUFhBMjVYX1NNQUxMCisjZGVmaW5lIFNJWkVfU1RSCSIgKHNtYWxsKSIKKyNlbHNlCisjZGVmaW5lIFNJWkVfU1RSCSIiCisjZW5kaWYKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgllbmRwb2ludCByZWxhdGVkIHBhcnRzIG9mIHRoZSBhcGkgdG8gdGhlIHVzYiBjb250cm9sbGVyIGhhcmR3YXJlLAorICoJdXNlZCBieSBnYWRnZXQgZHJpdmVyOyBhbmQgdGhlIGlubmVyIHRhbGtlci10by1oYXJkd2FyZSBjb3JlLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworc3RhdGljIHZvaWQgcHhhMjV4X2VwX2ZpZm9fZmx1c2ggKHN0cnVjdCB1c2JfZXAgKmVwKTsKK3N0YXRpYyB2b2lkIG51a2UgKHN0cnVjdCBweGEyNXhfZXAgKiwgaW50IHN0YXR1cyk7CisKKy8qIG9uZSBHUElPIHNob3VsZCBiZSB1c2VkIHRvIGRldGVjdCBWQlVTIGZyb20gdGhlIGhvc3QgKi8KK3N0YXRpYyBpbnQgaXNfdmJ1c19wcmVzZW50KHZvaWQpCit7CisJc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaCA9IHRoZV9jb250cm9sbGVyLT5tYWNoOworCisJaWYgKG1hY2gtPmdwaW9fdmJ1cykgeworCQlpbnQgdmFsdWUgPSBncGlvX2dldF92YWx1ZShtYWNoLT5ncGlvX3ZidXMpOworCQlyZXR1cm4gbWFjaC0+Z3Bpb192YnVzX2ludmVydGVkID8gIXZhbHVlIDogdmFsdWU7CisJfQorCWlmIChtYWNoLT51ZGNfaXNfY29ubmVjdGVkKQorCQlyZXR1cm4gbWFjaC0+dWRjX2lzX2Nvbm5lY3RlZCgpOworCXJldHVybiAxOworfQorCisvKiBvbmUgR1BJTyBzaG91bGQgY29udHJvbCBhIEQrIHB1bGx1cCwgc28gaG9zdCBzZWVzIHRoaXMgZGV2aWNlIChvciBub3QpICovCitzdGF0aWMgdm9pZCBwdWxsdXBfb2ZmKHZvaWQpCit7CisJc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaCA9IHRoZV9jb250cm9sbGVyLT5tYWNoOworCisJaWYgKG1hY2gtPmdwaW9fcHVsbHVwKQorCQlncGlvX3NldF92YWx1ZShtYWNoLT5ncGlvX3B1bGx1cCwgMCk7CisJZWxzZSBpZiAobWFjaC0+dWRjX2NvbW1hbmQpCisJCW1hY2gtPnVkY19jb21tYW5kKFBYQTJYWF9VRENfQ01EX0RJU0NPTk5FQ1QpOworfQorCitzdGF0aWMgdm9pZCBwdWxsdXBfb24odm9pZCkKK3sKKwlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoID0gdGhlX2NvbnRyb2xsZXItPm1hY2g7CisKKwlpZiAobWFjaC0+Z3Bpb19wdWxsdXApCisJCWdwaW9fc2V0X3ZhbHVlKG1hY2gtPmdwaW9fcHVsbHVwLCAxKTsKKwllbHNlIGlmIChtYWNoLT51ZGNfY29tbWFuZCkKKwkJbWFjaC0+dWRjX2NvbW1hbmQoUFhBMlhYX1VEQ19DTURfQ09OTkVDVCk7Cit9CisKK3N0YXRpYyB2b2lkIHBpb19pcnFfZW5hYmxlKGludCBiRW5kcG9pbnRBZGRyZXNzKQoreworICAgICAgICBiRW5kcG9pbnRBZGRyZXNzICY9IDB4ZjsKKyAgICAgICAgaWYgKGJFbmRwb2ludEFkZHJlc3MgPCA4KQorICAgICAgICAgICAgICAgIFVJQ1IwICY9IH4oMSA8PCBiRW5kcG9pbnRBZGRyZXNzKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAtPSA4OworICAgICAgICAgICAgICAgIFVJQ1IxICY9IH4oMSA8PCBiRW5kcG9pbnRBZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHBpb19pcnFfZGlzYWJsZShpbnQgYkVuZHBvaW50QWRkcmVzcykKK3sKKyAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAmPSAweGY7CisgICAgICAgIGlmIChiRW5kcG9pbnRBZGRyZXNzIDwgOCkKKyAgICAgICAgICAgICAgICBVSUNSMCB8PSAxIDw8IGJFbmRwb2ludEFkZHJlc3M7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgLT0gODsKKyAgICAgICAgICAgICAgICBVSUNSMSB8PSAxIDw8IGJFbmRwb2ludEFkZHJlc3M7CisgICAgICAgIH0KK30KKworLyogVGhlIFVEQ0NSIHJlZyBjb250YWlucyBtYXNrIGFuZCBpbnRlcnJ1cHQgc3RhdHVzIGJpdHMsCisgKiBzbyB1c2luZyAnfD0nIGlzbid0IHNhZmUgYXMgaXQgbWF5IGFjayBhbiBpbnRlcnJ1cHQuCisgKi8KKyNkZWZpbmUgVURDQ1JfTUFTS19CSVRTICAgICAgICAgKFVEQ0NSX1JFTSB8IFVEQ0NSX1NSTSB8IFVEQ0NSX1VERSkKKworc3RhdGljIGlubGluZSB2b2lkIHVkY19zZXRfbWFza19VRENDUihpbnQgbWFzaykKK3sKKwlVRENDUiA9IChVRENDUiAmIFVEQ0NSX01BU0tfQklUUykgfCAobWFzayAmIFVEQ0NSX01BU0tfQklUUyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfY2xlYXJfbWFza19VRENDUihpbnQgbWFzaykKK3sKKwlVRENDUiA9IChVRENDUiAmIFVEQ0NSX01BU0tfQklUUykgJiB+KG1hc2sgJiBVRENDUl9NQVNLX0JJVFMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdWRjX2Fja19pbnRfVURDQ1IoaW50IG1hc2spCit7CisJLyogdWRjY3IgY29udGFpbnMgdGhlIGJpdHMgd2UgZG9udCB3YW50IHRvIGNoYW5nZSAqLworCV9fdTMyIHVkY2NyID0gVURDQ1IgJiBVRENDUl9NQVNLX0JJVFM7CisKKwlVRENDUiA9IHVkY2NyIHwgKG1hc2sgJiB+VURDQ1JfTUFTS19CSVRTKTsKK30KKworLyoKKyAqIGVuZHBvaW50IGVuYWJsZS9kaXNhYmxlCisgKgorICogd2UgbmVlZCB0byB2ZXJpZnkgdGhlIGRlc2NyaXB0b3JzIHVzZWQgdG8gZW5hYmxlIGVuZHBvaW50cy4gIHNpbmNlIHB4YTI1eAorICogZW5kcG9pbnQgY29uZmlndXJhdGlvbnMgYXJlIGZpeGVkLCBhbmQgYXJlIHByZXR0eSBtdWNoIGFsd2F5cyBlbmFibGVkLAorICogdGhlcmUncyBub3QgYSBsb3QgdG8gbWFuYWdlIGhlcmUuCisgKgorICogYmVjYXVzZSBweGEyNXggY2FuJ3Qgc2VsZWN0aXZlbHkgaW5pdGlhbGl6ZSBidWxrIChvciBpbnRlcnJ1cHQpIGVuZHBvaW50cywKKyAqIChyZXNldHRpbmcgZW5kcG9pbnQgaGFsdCBhbmQgdG9nZ2xlKSwgU0VUX0lOVEVSRkFDRSBpcyB1bnVzYWJsZSBleGNlcHQKKyAqIGZvciBhIHNpbmdsZSBpbnRlcmZhY2UgKHdpdGggb25seSB0aGUgZGVmYXVsdCBhbHRzZXR0aW5nKSBhbmQgZm9yIGdhZGdldAorICogZHJpdmVycyB0aGF0IGRvbid0IGhhbHQgZW5kcG9pbnRzIChub3QgcmVzZXQgYnkgc2V0X2ludGVyZmFjZSkuICB0aGF0IGFsc28KKyAqIG1lYW5zIHRoYXQgaWYgeW91IHVzZSBJU08sIHlvdSBtdXN0IHZpb2xhdGUgdGhlIFVTQiBzcGVjIHJ1bGUgdGhhdCBhbGwKKyAqIGlzbyBlbmRwb2ludHMgbXVzdCBiZSBpbiBub24tZGVmYXVsdCBhbHRzZXR0aW5ncy4KKyAqLworc3RhdGljIGludCBweGEyNXhfZXBfZW5hYmxlIChzdHJ1Y3QgdXNiX2VwICpfZXAsCisJCWNvbnN0IHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZGVzYykKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwICAgICAgICAqZXA7CisJc3RydWN0IHB4YTI1eF91ZGMgICAgICAgKmRldjsKKworCWVwID0gY29udGFpbmVyX29mIChfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAoIV9lcCB8fCAhZGVzYyB8fCBlcC0+ZGVzYyB8fCBfZXAtPm5hbWUgPT0gZXAwbmFtZQorCQkJfHwgZGVzYy0+YkRlc2NyaXB0b3JUeXBlICE9IFVTQl9EVF9FTkRQT0lOVAorCQkJfHwgZXAtPmJFbmRwb2ludEFkZHJlc3MgIT0gZGVzYy0+YkVuZHBvaW50QWRkcmVzcworCQkJfHwgZXAtPmZpZm9fc2l6ZSA8IGxlMTZfdG9fY3B1CisJCQkJCQkoZGVzYy0+d01heFBhY2tldFNpemUpKSB7CisJCURNU0coIiVzLCBiYWQgZXAgb3IgZGVzY3JpcHRvclxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiB4ZmVyIHR5cGVzIG11c3QgbWF0Y2gsIGV4Y2VwdCB0aGF0IGludGVycnVwdCB+PSBidWxrICovCisJaWYgKGVwLT5ibUF0dHJpYnV0ZXMgIT0gZGVzYy0+Ym1BdHRyaWJ1dGVzCisJCQkmJiBlcC0+Ym1BdHRyaWJ1dGVzICE9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEsKKwkJCSYmIGRlc2MtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQpIHsKKwkJRE1TRygiJXMsICVzIHR5cGUgbWlzbWF0Y2hcbiIsIF9fZnVuY19fLCBfZXAtPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBoYXJkd2FyZSBfY291bGRfIGRvIHNtYWxsZXIsIGJ1dCBkcml2ZXIgZG9lc24ndCAqLworCWlmICgoZGVzYy0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEsKKwkJCQkmJiBsZTE2X3RvX2NwdSAoZGVzYy0+d01heFBhY2tldFNpemUpCisJCQkJCQkhPSBCVUxLX0ZJRk9fU0laRSkKKwkJCXx8ICFkZXNjLT53TWF4UGFja2V0U2l6ZSkgeworCQlETVNHKCIlcywgYmFkICVzIG1heHBhY2tldFxuIiwgX19mdW5jX18sIF9lcC0+bmFtZSk7CisJCXJldHVybiAtRVJBTkdFOworCX0KKworCWRldiA9IGVwLT5kZXY7CisJaWYgKCFkZXYtPmRyaXZlciB8fCBkZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTikgeworCQlETVNHKCIlcywgYm9ndXMgZGV2aWNlIHN0YXRlXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRVNIVVRET1dOOworCX0KKworCWVwLT5kZXNjID0gZGVzYzsKKwllcC0+c3RvcHBlZCA9IDA7CisJZXAtPnBpb19pcnFzID0gMDsKKwllcC0+ZXAubWF4cGFja2V0ID0gbGUxNl90b19jcHUgKGRlc2MtPndNYXhQYWNrZXRTaXplKTsKKworCS8qIGZsdXNoIGZpZm8gKG1vc3RseSBmb3IgT1VUIGJ1ZmZlcnMpICovCisJcHhhMjV4X2VwX2ZpZm9fZmx1c2ggKF9lcCk7CisKKwkvKiAuLi4gcmVzZXQgaGFsdCBzdGF0ZSB0b28sIGlmIHdlIGNvdWxkIC4uLiAqLworCisJREJHKERCR19WRVJCT1NFLCAiZW5hYmxlZCAlc1xuIiwgX2VwLT5uYW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBweGEyNXhfZXBfZGlzYWJsZSAoc3RydWN0IHVzYl9lcCAqX2VwKQoreworCXN0cnVjdCBweGEyNXhfZXAJKmVwOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCisJZXAgPSBjb250YWluZXJfb2YgKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICghX2VwIHx8ICFlcC0+ZGVzYykgeworCQlETVNHKCIlcywgJXMgbm90IGVuYWJsZWRcbiIsIF9fZnVuY19fLAorCQkJX2VwID8gZXAtPmVwLm5hbWUgOiBOVUxMKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCW51a2UgKGVwLCAtRVNIVVRET1dOKTsKKworCS8qIGZsdXNoIGZpZm8gKG1vc3RseSBmb3IgSU4gYnVmZmVycykgKi8KKwlweGEyNXhfZXBfZmlmb19mbHVzaCAoX2VwKTsKKworCWVwLT5kZXNjID0gTlVMTDsKKwllcC0+c3RvcHBlZCA9IDE7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJREJHKERCR19WRVJCT1NFLCAiJXMgZGlzYWJsZWRcbiIsIF9lcC0+bmFtZSk7CisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIGZvciB0aGUgcHhhMjV4LCB0aGVzZSBjYW4ganVzdCB3cmFwIGttYWxsb2Mva2ZyZWUuICBnYWRnZXQgZHJpdmVycworICogbXVzdCBzdGlsbCBwYXNzIGNvcnJlY3RseSBpbml0aWFsaXplZCBlbmRwb2ludHMsIHNpbmNlIG90aGVyIGNvbnRyb2xsZXIKKyAqIGRyaXZlcnMgbWF5IGNhcmUgYWJvdXQgaG93IGl0J3MgY3VycmVudGx5IHNldCB1cCAoZG1hIGlzc3VlcyBldGMpLgorICovCisKKy8qCisgKglweGEyNXhfZXBfYWxsb2NfcmVxdWVzdCAtIGFsbG9jYXRlIGEgcmVxdWVzdCBkYXRhIHN0cnVjdHVyZQorICovCitzdGF0aWMgc3RydWN0IHVzYl9yZXF1ZXN0ICoKK3B4YTI1eF9lcF9hbGxvY19yZXF1ZXN0IChzdHJ1Y3QgdXNiX2VwICpfZXAsIGdmcF90IGdmcF9mbGFncykKK3sKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcTsKKworCXJlcSA9IGt6YWxsb2Moc2l6ZW9mKCpyZXEpLCBnZnBfZmxhZ3MpOworCWlmICghcmVxKQorCQlyZXR1cm4gTlVMTDsKKworCUlOSVRfTElTVF9IRUFEICgmcmVxLT5xdWV1ZSk7CisJcmV0dXJuICZyZXEtPnJlcTsKK30KKworCisvKgorICoJcHhhMjV4X2VwX2ZyZWVfcmVxdWVzdCAtIGRlYWxsb2NhdGUgYSByZXF1ZXN0IGRhdGEgc3RydWN0dXJlCisgKi8KK3N0YXRpYyB2b2lkCitweGEyNXhfZXBfZnJlZV9yZXF1ZXN0IChzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKworCXJlcSA9IGNvbnRhaW5lcl9vZiAoX3JlcSwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0LCByZXEpOworCVdBUk5fT04gKCFsaXN0X2VtcHR5ICgmcmVxLT5xdWV1ZSkpOworCWtmcmVlKHJlcSk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKglkb25lIC0gcmV0aXJlIGEgcmVxdWVzdDsgY2FsbGVyIGJsb2NrZWQgaXJxcworICovCitzdGF0aWMgdm9pZCBkb25lKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSwgaW50IHN0YXR1cykKK3sKKwl1bnNpZ25lZAkJc3RvcHBlZCA9IGVwLT5zdG9wcGVkOworCisJbGlzdF9kZWxfaW5pdCgmcmVxLT5xdWV1ZSk7CisKKwlpZiAobGlrZWx5IChyZXEtPnJlcS5zdGF0dXMgPT0gLUVJTlBST0dSRVNTKSkKKwkJcmVxLT5yZXEuc3RhdHVzID0gc3RhdHVzOworCWVsc2UKKwkJc3RhdHVzID0gcmVxLT5yZXEuc3RhdHVzOworCisJaWYgKHN0YXR1cyAmJiBzdGF0dXMgIT0gLUVTSFVURE9XTikKKwkJREJHKERCR19WRVJCT1NFLCAiY29tcGxldGUgJXMgcmVxICVwIHN0YXQgJWQgbGVuICV1LyV1XG4iLAorCQkJZXAtPmVwLm5hbWUsICZyZXEtPnJlcSwgc3RhdHVzLAorCQkJcmVxLT5yZXEuYWN0dWFsLCByZXEtPnJlcS5sZW5ndGgpOworCisJLyogZG9uJ3QgbW9kaWZ5IHF1ZXVlIGhlYWRzIGR1cmluZyBjb21wbGV0aW9uIGNhbGxiYWNrICovCisJZXAtPnN0b3BwZWQgPSAxOworCXJlcS0+cmVxLmNvbXBsZXRlKCZlcC0+ZXAsICZyZXEtPnJlcSk7CisJZXAtPnN0b3BwZWQgPSBzdG9wcGVkOworfQorCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBlcDBfaWRsZSAoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwlkZXYtPmVwMHN0YXRlID0gRVAwX0lETEU7Cit9CisKK3N0YXRpYyBpbnQKK3dyaXRlX3BhY2tldCh2b2xhdGlsZSB1MzIgKnVkZHIsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxLCB1bnNpZ25lZCBtYXgpCit7CisJdTgJCSpidWY7CisJdW5zaWduZWQJbGVuZ3RoLCBjb3VudDsKKworCWJ1ZiA9IHJlcS0+cmVxLmJ1ZiArIHJlcS0+cmVxLmFjdHVhbDsKKwlwcmVmZXRjaChidWYpOworCisJLyogaG93IGJpZyB3aWxsIHRoaXMgcGFja2V0IGJlPyAqLworCWxlbmd0aCA9IG1pbihyZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWwsIG1heCk7CisJcmVxLT5yZXEuYWN0dWFsICs9IGxlbmd0aDsKKworCWNvdW50ID0gbGVuZ3RoOworCXdoaWxlIChsaWtlbHkoY291bnQtLSkpCisJCSp1ZGRyID0gKmJ1ZisrOworCisJcmV0dXJuIGxlbmd0aDsKK30KKworLyoKKyAqIHdyaXRlIHRvIGFuIElOIGVuZHBvaW50IGZpZm8sIGFzIG1hbnkgcGFja2V0cyBhcyBwb3NzaWJsZS4KKyAqIGlycXMgd2lsbCB1c2UgdGhpcyB0byB3cml0ZSB0aGUgcmVzdCBsYXRlci4KKyAqIGNhbGxlciBndWFyYW50ZWVzIGF0IGxlYXN0IG9uZSBwYWNrZXQgYnVmZmVyIGlzIHJlYWR5IChvciBhIHpscCkuCisgKi8KK3N0YXRpYyBpbnQKK3dyaXRlX2ZpZm8gKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSkKK3sKKwl1bnNpZ25lZAkJbWF4OworCisJbWF4ID0gbGUxNl90b19jcHUoZXAtPmRlc2MtPndNYXhQYWNrZXRTaXplKTsKKwlkbyB7CisJCXVuc2lnbmVkCWNvdW50OworCQlpbnQJCWlzX2xhc3QsIGlzX3Nob3J0OworCisJCWNvdW50ID0gd3JpdGVfcGFja2V0KGVwLT5yZWdfdWRkciwgcmVxLCBtYXgpOworCisJCS8qIGxhc3QgcGFja2V0IGlzIHVzdWFsbHkgc2hvcnQgKG9yIGEgemxwKSAqLworCQlpZiAodW5saWtlbHkgKGNvdW50ICE9IG1heCkpCisJCQlpc19sYXN0ID0gaXNfc2hvcnQgPSAxOworCQllbHNlIHsKKwkJCWlmIChsaWtlbHkocmVxLT5yZXEubGVuZ3RoICE9IHJlcS0+cmVxLmFjdHVhbCkKKwkJCQkJfHwgcmVxLT5yZXEuemVybykKKwkJCQlpc19sYXN0ID0gMDsKKwkJCWVsc2UKKwkJCQlpc19sYXN0ID0gMTsKKwkJCS8qIGludGVycnVwdC9pc28gbWF4cGFja2V0IG1heSBub3QgZmlsbCB0aGUgZmlmbyAqLworCQkJaXNfc2hvcnQgPSB1bmxpa2VseSAobWF4IDwgZXAtPmZpZm9fc2l6ZSk7CisJCX0KKworCQlEQkcoREJHX1ZFUllfTk9JU1ksICJ3cm90ZSAlcyAlZCBieXRlcyVzJXMgJWQgbGVmdCAlcFxuIiwKKwkJCWVwLT5lcC5uYW1lLCBjb3VudCwKKwkJCWlzX2xhc3QgPyAiL0wiIDogIiIsIGlzX3Nob3J0ID8gIi9TIiA6ICIiLAorCQkJcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCByZXEpOworCisJCS8qIGxldCBsb29zZSB0aGF0IHBhY2tldC4gbWF5YmUgdHJ5IHdyaXRpbmcgYW5vdGhlciBvbmUsCisJCSAqIGRvdWJsZSBidWZmZXJpbmcgbWlnaHQgd29yay4gIFRTUCwgVFBDLCBhbmQgVEZTCisJCSAqIGJpdCB2YWx1ZXMgYXJlIHRoZSBzYW1lIGZvciBhbGwgbm9ybWFsIElOIGVuZHBvaW50cy4KKwkJICovCisJCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfVFBDOworCQlpZiAoaXNfc2hvcnQpCisJCQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX1RTUDsKKworCQkvKiByZXF1ZXN0cyBjb21wbGV0ZSB3aGVuIGFsbCBJTiBkYXRhIGlzIGluIHRoZSBGSUZPICovCisJCWlmIChpc19sYXN0KSB7CisJCQlkb25lIChlcCwgcmVxLCAwKTsKKwkJCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKQorCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOworCQkJcmV0dXJuIDE7CisJCX0KKworCQkvLyBUT0RPIGV4cGVyaW1lbnQ6IGhvdyByb2J1c3QgY2FuIGZpZm8gbW9kZSB0d2Vha2luZyBiZT8KKwkJLy8gZG91YmxlIGJ1ZmZlcmluZyBpcyBvZmYgaW4gdGhlIGRlZmF1bHQgZmlmbyBtb2RlLCB3aGljaAorCQkvLyBwcmV2ZW50cyBURlMgZnJvbSBiZWluZyBzZXQgaGVyZS4KKworCX0gd2hpbGUgKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKTsKKwlyZXR1cm4gMDsKK30KKworLyogY2FsbGVyIGFzc2VydHMgcmVxLT5wZW5kaW5nIChlcDAgaXJxIHN0YXR1cyBueWV0IGNsZWFyZWQpOyBzdGFydHMKKyAqIGVwMCBkYXRhIHN0YWdlLiAgdGhlc2UgY2hpcHMgd2FudCB2ZXJ5IHNpbXBsZSBzdGF0ZSB0cmFuc2l0aW9ucy4KKyAqLworc3RhdGljIGlubGluZQordm9pZCBlcDBzdGFydChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2LCB1MzIgZmxhZ3MsIGNvbnN0IGNoYXIgKnRhZykKK3sKKwlVRENDUzAgPSBmbGFnc3xVRENDUzBfU0F8VURDQ1MwX09QUjsKKwlVU0lSMCA9IFVTSVIwX0lSMDsKKwlkZXYtPnJlcV9wZW5kaW5nID0gMDsKKwlEQkcoREJHX1ZFUllfTk9JU1ksICIlcyAlcywgJTAyeC8lMDJ4XG4iLAorCQlfX2Z1bmNfXywgdGFnLCBVRENDUzAsIGZsYWdzKTsKK30KKworc3RhdGljIGludAord3JpdGVfZXAwX2ZpZm8gKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSkKK3sKKwl1bnNpZ25lZAljb3VudDsKKwlpbnQJCWlzX3Nob3J0OworCisJY291bnQgPSB3cml0ZV9wYWNrZXQoJlVERFIwLCByZXEsIEVQMF9GSUZPX1NJWkUpOworCWVwLT5kZXYtPnN0YXRzLndyaXRlLmJ5dGVzICs9IGNvdW50OworCisJLyogbGFzdCBwYWNrZXQgIm11c3QgYmUiIHNob3J0IChvciBhIHpscCkgKi8KKwlpc19zaG9ydCA9IChjb3VudCAhPSBFUDBfRklGT19TSVpFKTsKKworCURCRyhEQkdfVkVSWV9OT0lTWSwgImVwMGluICVkIGJ5dGVzICVkIGxlZnQgJXBcbiIsIGNvdW50LAorCQlyZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWwsIHJlcSk7CisKKwlpZiAodW5saWtlbHkgKGlzX3Nob3J0KSkgeworCQlpZiAoZXAtPmRldi0+cmVxX3BlbmRpbmcpCisJCQllcDBzdGFydChlcC0+ZGV2LCBVRENDUzBfSVBSLCAic2hvcnQgSU4iKTsKKwkJZWxzZQorCQkJVURDQ1MwID0gVURDQ1MwX0lQUjsKKworCQljb3VudCA9IHJlcS0+cmVxLmxlbmd0aDsKKwkJZG9uZSAoZXAsIHJlcSwgMCk7CisJCWVwMF9pZGxlKGVwLT5kZXYpOworI2lmbmRlZiBDT05GSUdfQVJDSF9JWFA0WFgKKyNpZiAxCisJCS8qIFRoaXMgc2VlbXMgdG8gZ2V0IHJpZCBvZiBsb3N0IHN0YXR1cyBpcnFzIGluIHNvbWUgY2FzZXM6CisJCSAqIGhvc3QgcmVzcG9uZHMgcXVpY2tseSwgb3IgbmV4dCByZXF1ZXN0IGludm9sdmVzIGNvbmZpZworCQkgKiBjaGFuZ2UgYXV0b21hZ2ljLCBvciBzaG91bGQgaGF2ZSBiZWVuIGhpZGRlbiwgb3IgLi4uCisJCSAqCisJCSAqIEZJWE1FIGdldCByaWQgb2YgYWxsIHVkZWxheXMgcG9zc2libGUuLi4KKwkJICovCisJCWlmIChjb3VudCA+PSBFUDBfRklGT19TSVpFKSB7CisJCQljb3VudCA9IDEwMDsKKwkJCWRvIHsKKwkJCQlpZiAoKFVEQ0NTMCAmIFVEQ0NTMF9PUFIpICE9IDApIHsKKwkJCQkJLyogY2xlYXIgT1BSLCBnZW5lcmF0ZSBhY2sgKi8KKwkJCQkJVURDQ1MwID0gVURDQ1MwX09QUjsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWNvdW50LS07CisJCQkJdWRlbGF5KDEpOworCQkJfSB3aGlsZSAoY291bnQpOworCQl9CisjZW5kaWYKKyNlbmRpZgorCX0gZWxzZSBpZiAoZXAtPmRldi0+cmVxX3BlbmRpbmcpCisJCWVwMHN0YXJ0KGVwLT5kZXYsIDAsICJJTiIpOworCXJldHVybiBpc19zaG9ydDsKK30KKworCisvKgorICogcmVhZF9maWZvIC0gIHVubG9hZCBwYWNrZXQocykgZnJvbSB0aGUgZmlmbyB3ZSB1c2UgZm9yIHVzYiBPVVQKKyAqIHRyYW5zZmVycyBhbmQgcHV0IHRoZW0gaW50byB0aGUgcmVxdWVzdC4gIGNhbGxlciBzaG91bGQgaGF2ZSBtYWRlCisgKiBzdXJlIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIHBhY2tldCByZWFkeS4KKyAqCisgKiByZXR1cm5zIHRydWUgaWYgdGhlIHJlcXVlc3QgY29tcGxldGVkIGJlY2F1c2Ugb2Ygc2hvcnQgcGFja2V0IG9yIHRoZQorICogcmVxdWVzdCBidWZmZXIgaGF2aW5nIGZpbGxlZCAoYW5kIG1heWJlIG92ZXJyYW4gdGlsbCBlbmQtb2YtcGFja2V0KS4KKyAqLworc3RhdGljIGludAorcmVhZF9maWZvIChzdHJ1Y3QgcHhhMjV4X2VwICplcCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEpCit7CisJZm9yICg7OykgeworCQl1MzIJCXVkY2NzOworCQl1OAkJKmJ1ZjsKKwkJdW5zaWduZWQJYnVmZmVyc3BhY2UsIGNvdW50LCBpc19zaG9ydDsKKworCQkvKiBtYWtlIHN1cmUgdGhlcmUncyBhIHBhY2tldCBpbiB0aGUgRklGTy4KKwkJICogVURDQ1Nfe0JPLElPfV9SUEMgYXJlIGFsbCB0aGUgc2FtZSBiaXQgdmFsdWUuCisJCSAqIFVEQ0NTX3tCTyxJT31fUk5FIGFyZSBhbGwgdGhlIHNhbWUgYml0IHZhbHVlLgorCQkgKi8KKwkJdWRjY3MgPSAqZXAtPnJlZ191ZGNjczsKKwkJaWYgKHVubGlrZWx5ICgodWRjY3MgJiBVRENDU19CT19SUEMpID09IDApKQorCQkJYnJlYWs7CisJCWJ1ZiA9IHJlcS0+cmVxLmJ1ZiArIHJlcS0+cmVxLmFjdHVhbDsKKwkJcHJlZmV0Y2h3KGJ1Zik7CisJCWJ1ZmZlcnNwYWNlID0gcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsOworCisJCS8qIHJlYWQgYWxsIGJ5dGVzIGZyb20gdGhpcyBwYWNrZXQgKi8KKwkJaWYgKGxpa2VseSAodWRjY3MgJiBVRENDU19CT19STkUpKSB7CisJCQljb3VudCA9IDEgKyAoMHgwZmYgJiAqZXAtPnJlZ191YmNyKTsKKwkJCXJlcS0+cmVxLmFjdHVhbCArPSBtaW4gKGNvdW50LCBidWZmZXJzcGFjZSk7CisJCX0gZWxzZSAvKiB6bHAgKi8KKwkJCWNvdW50ID0gMDsKKwkJaXNfc2hvcnQgPSAoY291bnQgPCBlcC0+ZXAubWF4cGFja2V0KTsKKwkJREJHKERCR19WRVJZX05PSVNZLCAicmVhZCAlcyAlMDJ4LCAlZCBieXRlcyVzIHJlcSAlcCAlZC8lZFxuIiwKKwkJCWVwLT5lcC5uYW1lLCB1ZGNjcywgY291bnQsCisJCQlpc19zaG9ydCA/ICIvUyIgOiAiIiwKKwkJCXJlcSwgcmVxLT5yZXEuYWN0dWFsLCByZXEtPnJlcS5sZW5ndGgpOworCQl3aGlsZSAobGlrZWx5IChjb3VudC0tICE9IDApKSB7CisJCQl1OAlieXRlID0gKHU4KSAqZXAtPnJlZ191ZGRyOworCisJCQlpZiAodW5saWtlbHkgKGJ1ZmZlcnNwYWNlID09IDApKSB7CisJCQkJLyogdGhpcyBoYXBwZW5zIHdoZW4gdGhlIGRyaXZlcidzIGJ1ZmZlcgorCQkJCSAqIGlzIHNtYWxsZXIgdGhhbiB3aGF0IHRoZSBob3N0IHNlbnQuCisJCQkJICogZGlzY2FyZCB0aGUgZXh0cmEgZGF0YS4KKwkJCQkgKi8KKwkJCQlpZiAocmVxLT5yZXEuc3RhdHVzICE9IC1FT1ZFUkZMT1cpCisJCQkJCURNU0coIiVzIG92ZXJmbG93ICVkXG4iLAorCQkJCQkJZXAtPmVwLm5hbWUsIGNvdW50KTsKKwkJCQlyZXEtPnJlcS5zdGF0dXMgPSAtRU9WRVJGTE9XOworCQkJfSBlbHNlIHsKKwkJCQkqYnVmKysgPSBieXRlOworCQkJCWJ1ZmZlcnNwYWNlLS07CisJCQl9CisJCX0KKwkJKmVwLT5yZWdfdWRjY3MgPSAgVURDQ1NfQk9fUlBDOworCQkvKiBSUEMvUlNQL1JORSBjb3VsZCBub3cgcmVmbGVjdCB0aGUgb3RoZXIgcGFja2V0IGJ1ZmZlciAqLworCisJCS8qIGlzbyBpcyBvbmUgcmVxdWVzdCBwZXIgcGFja2V0ICovCisJCWlmIChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpIHsKKwkJCWlmICh1ZGNjcyAmIFVEQ0NTX0lPX1JPRikKKwkJCQlyZXEtPnJlcS5zdGF0dXMgPSAtRUhPU1RVTlJFQUNIOworCQkJLyogbW9yZSBsaWtlICJpc19kb25lIiAqLworCQkJaXNfc2hvcnQgPSAxOworCQl9CisKKwkJLyogY29tcGxldGlvbiAqLworCQlpZiAoaXNfc2hvcnQgfHwgcmVxLT5yZXEuYWN0dWFsID09IHJlcS0+cmVxLmxlbmd0aCkgeworCQkJZG9uZSAoZXAsIHJlcSwgMCk7CisJCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKKwkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJCXJldHVybiAxOworCQl9CisKKwkJLyogZmluaXNoZWQgdGhhdCBwYWNrZXQuICB0aGUgbmV4dCBvbmUgbWF5IGJlIHdhaXRpbmcuLi4gKi8KKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBzcGVjaWFsIGVwMCB2ZXJzaW9uIG9mIHRoZSBhYm92ZS4gIG5vIFVCQ1IwIG9yIGRvdWJsZSBidWZmZXJpbmc7IHN0YXR1cworICogaGFuZHNoYWtpbmcgaXMgbWFnaWMuICBtb3N0IGRldmljZSBwcm90b2NvbHMgZG9uJ3QgbmVlZCBjb250cm9sLU9VVC4KKyAqIENEQyB2ZW5kb3IgY29tbWFuZHMgKGFuZCBSTkRJUyksIG1hc3Mgc3RvcmFnZSBDQi9DQkksIGFuZCBzb21lIG90aGVyCisgKiBwcm90b2NvbHMgZG8gdXNlIHRoZW0uCisgKi8KK3N0YXRpYyBpbnQKK3JlYWRfZXAwX2ZpZm8gKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSkKK3sKKwl1OAkJKmJ1ZiwgYnl0ZTsKKwl1bnNpZ25lZAlidWZmZXJzcGFjZTsKKworCWJ1ZiA9IHJlcS0+cmVxLmJ1ZiArIHJlcS0+cmVxLmFjdHVhbDsKKwlidWZmZXJzcGFjZSA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKKworCXdoaWxlIChVRENDUzAgJiBVRENDUzBfUk5FKSB7CisJCWJ5dGUgPSAodTgpIFVERFIwOworCisJCWlmICh1bmxpa2VseSAoYnVmZmVyc3BhY2UgPT0gMCkpIHsKKwkJCS8qIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBkcml2ZXIncyBidWZmZXIKKwkJCSAqIGlzIHNtYWxsZXIgdGhhbiB3aGF0IHRoZSBob3N0IHNlbnQuCisJCQkgKiBkaXNjYXJkIHRoZSBleHRyYSBkYXRhLgorCQkJICovCisJCQlpZiAocmVxLT5yZXEuc3RhdHVzICE9IC1FT1ZFUkZMT1cpCisJCQkJRE1TRygiJXMgb3ZlcmZsb3dcbiIsIGVwLT5lcC5uYW1lKTsKKwkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FT1ZFUkZMT1c7CisJCX0gZWxzZSB7CisJCQkqYnVmKysgPSBieXRlOworCQkJcmVxLT5yZXEuYWN0dWFsKys7CisJCQlidWZmZXJzcGFjZS0tOworCQl9CisJfQorCisJVURDQ1MwID0gVURDQ1MwX09QUiB8IFVEQ0NTMF9JUFI7CisKKwkvKiBjb21wbGV0aW9uICovCisJaWYgKHJlcS0+cmVxLmFjdHVhbCA+PSByZXEtPnJlcS5sZW5ndGgpCisJCXJldHVybiAxOworCisJLyogZmluaXNoZWQgdGhhdCBwYWNrZXQuICB0aGUgbmV4dCBvbmUgbWF5IGJlIHdhaXRpbmcuLi4gKi8KKwlyZXR1cm4gMDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGludAorcHhhMjV4X2VwX3F1ZXVlKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxLCBnZnBfdCBnZnBfZmxhZ3MpCit7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisJc3RydWN0IHB4YTI1eF9lcAkqZXA7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldjsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKworCXJlcSA9IGNvbnRhaW5lcl9vZihfcmVxLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QsIHJlcSk7CisJaWYgKHVubGlrZWx5ICghX3JlcSB8fCAhX3JlcS0+Y29tcGxldGUgfHwgIV9yZXEtPmJ1ZgorCQkJfHwgIWxpc3RfZW1wdHkoJnJlcS0+cXVldWUpKSkgeworCQlETVNHKCIlcywgYmFkIHBhcmFtc1xuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAodW5saWtlbHkgKCFfZXAgfHwgKCFlcC0+ZGVzYyAmJiBlcC0+ZXAubmFtZSAhPSBlcDBuYW1lKSkpIHsKKwkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkZXYgPSBlcC0+ZGV2OworCWlmICh1bmxpa2VseSAoIWRldi0+ZHJpdmVyCisJCQl8fCBkZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTikpIHsKKwkJRE1TRygiJXMsIGJvZ3VzIGRldmljZSBzdGF0ZVxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVTSFVURE9XTjsKKwl9CisKKwkvKiBpc28gaXMgYWx3YXlzIG9uZSBwYWNrZXQgcGVyIHJlcXVlc3QsIHRoYXQncyB0aGUgb25seSB3YXkKKwkgKiB3ZSBjYW4gcmVwb3J0IHBlci1wYWNrZXQgc3RhdHVzLiAgdGhhdCBhbHNvIGhlbHBzIHdpdGggZG1hLgorCSAqLworCWlmICh1bmxpa2VseSAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DCisJCQkmJiByZXEtPnJlcS5sZW5ndGggPiBsZTE2X3RvX2NwdQorCQkJCQkJKGVwLT5kZXNjLT53TWF4UGFja2V0U2l6ZSkpKQorCQlyZXR1cm4gLUVNU0dTSVpFOworCisJREJHKERCR19OT0lTWSwgIiVzIHF1ZXVlIHJlcSAlcCwgbGVuICVkIGJ1ZiAlcFxuIiwKKwkJX2VwLT5uYW1lLCBfcmVxLCBfcmVxLT5sZW5ndGgsIF9yZXEtPmJ1Zik7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwlfcmVxLT5zdGF0dXMgPSAtRUlOUFJPR1JFU1M7CisJX3JlcS0+YWN0dWFsID0gMDsKKworCS8qIGtpY2tzdGFydCB0aGlzIGkvbyBxdWV1ZT8gKi8KKwlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSAmJiAhZXAtPnN0b3BwZWQpIHsKKwkJaWYgKGVwLT5kZXNjID09IE5VTEwvKiBlcDAgKi8pIHsKKwkJCXVuc2lnbmVkCWxlbmd0aCA9IF9yZXEtPmxlbmd0aDsKKworCQkJc3dpdGNoIChkZXYtPmVwMHN0YXRlKSB7CisJCQljYXNlIEVQMF9JTl9EQVRBX1BIQVNFOgorCQkJCWRldi0+c3RhdHMud3JpdGUub3BzKys7CisJCQkJaWYgKHdyaXRlX2VwMF9maWZvKGVwLCByZXEpKQorCQkJCQlyZXEgPSBOVUxMOworCQkJCWJyZWFrOworCisJCQljYXNlIEVQMF9PVVRfREFUQV9QSEFTRToKKwkJCQlkZXYtPnN0YXRzLnJlYWQub3BzKys7CisJCQkJLyogbWVzc3kgLi4uICovCisJCQkJaWYgKGRldi0+cmVxX2NvbmZpZykgeworCQkJCQlEQkcoREJHX1ZFUkJPU0UsICJlcDAgY29uZmlnIGFjayVzXG4iLAorCQkJCQkJZGV2LT5oYXNfY2ZyID8gICIiIDogIiByYWNlZCIpOworCQkJCQlpZiAoZGV2LT5oYXNfY2ZyKQorCQkJCQkJVURDQ0ZSID0gVURDQ0ZSX0FSRU58VURDQ0ZSX0FDTQorCQkJCQkJCXxVRENDRlJfTUIxOworCQkJCQlkb25lKGVwLCByZXEsIDApOworCQkJCQlkZXYtPmVwMHN0YXRlID0gRVAwX0VORF9YRkVSOworCQkJCQlsb2NhbF9pcnFfcmVzdG9yZSAoZmxhZ3MpOworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQkJaWYgKGRldi0+cmVxX3BlbmRpbmcpCisJCQkJCWVwMHN0YXJ0KGRldiwgVURDQ1MwX0lQUiwgIk9VVCIpOworCQkJCWlmIChsZW5ndGggPT0gMCB8fCAoKFVEQ0NTMCAmIFVEQ0NTMF9STkUpICE9IDAKKwkJCQkJCSYmIHJlYWRfZXAwX2ZpZm8oZXAsIHJlcSkpKSB7CisJCQkJCWVwMF9pZGxlKGRldik7CisJCQkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCQkJCXJlcSA9IE5VTEw7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCURNU0coImVwMCBpL28sIG9kZCBzdGF0ZSAlZFxuIiwgZGV2LT5lcDBzdGF0ZSk7CisJCQkJbG9jYWxfaXJxX3Jlc3RvcmUgKGZsYWdzKTsKKwkJCQlyZXR1cm4gLUVMMkhMVDsKKwkJCX0KKwkJLyogY2FuIHRoZSBGSUZPIGNhbiBzYXRpc2Z5IHRoZSByZXF1ZXN0IGltbWVkaWF0ZWx5PyAqLworCQl9IGVsc2UgaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDApIHsKKwkJCWlmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpICE9IDAKKwkJCQkJJiYgd3JpdGVfZmlmbyhlcCwgcmVxKSkKKwkJCQlyZXEgPSBOVUxMOworCQl9IGVsc2UgaWYgKCgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JPX1JGUykgIT0gMAorCQkJCSYmIHJlYWRfZmlmbyhlcCwgcmVxKSkgeworCQkJcmVxID0gTlVMTDsKKwkJfQorCisJCWlmIChsaWtlbHkgKHJlcSAmJiBlcC0+ZGVzYykpCisJCQlwaW9faXJxX2VuYWJsZShlcC0+YkVuZHBvaW50QWRkcmVzcyk7CisJfQorCisJLyogcGlvIG9yIGRtYSBpcnEgaGFuZGxlciBhZHZhbmNlcyB0aGUgcXVldWUuICovCisJaWYgKGxpa2VseShyZXEgIT0gTlVMTCkpCisJCWxpc3RfYWRkX3RhaWwoJnJlcS0+cXVldWUsICZlcC0+cXVldWUpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXJldHVybiAwOworfQorCisKKy8qCisgKgludWtlIC0gZGVxdWV1ZSBBTEwgcmVxdWVzdHMKKyAqLworc3RhdGljIHZvaWQgbnVrZShzdHJ1Y3QgcHhhMjV4X2VwICplcCwgaW50IHN0YXR1cykKK3sKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcTsKKworCS8qIGNhbGxlZCB3aXRoIGlycXMgYmxvY2tlZCAqLworCXdoaWxlICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgeworCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LAorCQkJCXN0cnVjdCBweGEyNXhfcmVxdWVzdCwKKwkJCQlxdWV1ZSk7CisJCWRvbmUoZXAsIHJlcSwgc3RhdHVzKTsKKwl9CisJaWYgKGVwLT5kZXNjKQorCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKK30KKworCisvKiBkZXF1ZXVlIEpVU1QgT05FIHJlcXVlc3QgKi8KK3N0YXRpYyBpbnQgcHhhMjV4X2VwX2RlcXVldWUoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEpCit7CisJc3RydWN0IHB4YTI1eF9lcAkqZXA7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CisKKwllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAoIV9lcCB8fCBlcC0+ZXAubmFtZSA9PSBlcDBuYW1lKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCS8qIG1ha2Ugc3VyZSBpdCdzIGFjdHVhbGx5IHF1ZXVlZCBvbiB0aGlzIGVuZHBvaW50ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeSAocmVxLCAmZXAtPnF1ZXVlLCBxdWV1ZSkgeworCQlpZiAoJnJlcS0+cmVxID09IF9yZXEpCisJCQlicmVhazsKKwl9CisJaWYgKCZyZXEtPnJlcSAhPSBfcmVxKSB7CisJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZG9uZShlcCwgcmVxLCAtRUNPTk5SRVNFVCk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBpbnQgcHhhMjV4X2VwX3NldF9oYWx0KHN0cnVjdCB1c2JfZXAgKl9lcCwgaW50IHZhbHVlKQoreworCXN0cnVjdCBweGEyNXhfZXAJKmVwOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCisJZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKHVubGlrZWx5ICghX2VwCisJCQl8fCAoIWVwLT5kZXNjICYmIGVwLT5lcC5uYW1lICE9IGVwMG5hbWUpKQorCQkJfHwgZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKSB7CisJCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmICh2YWx1ZSA9PSAwKSB7CisJCS8qIHRoaXMgcGF0aCAocmVzZXQgdG9nZ2xlK2hhbHQpIGlzIG5lZWRlZCB0byBpbXBsZW1lbnQKKwkJICogU0VUX0lOVEVSRkFDRSBvbiBub3JtYWwgaGFyZHdhcmUuICBidXQgaXQgY2FuJ3QgYmUKKwkJICogZG9uZSBmcm9tIHNvZnR3YXJlIG9uIHRoZSBQWEEgVURDLCBhbmQgdGhlIGhhcmR3YXJlCisJCSAqIGZvcmdldHMgdG8gZG8gaXQgYXMgcGFydCBvZiBTRVRfSU5URVJGQUNFIGF1dG9tYWdpYy4KKwkJICovCisJCURNU0coIm9ubHkgaG9zdCBjYW4gY2xlYXIgJXMgaGFsdFxuIiwgX2VwLT5uYW1lKTsKKwkJcmV0dXJuIC1FUk9GUzsKKwl9CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwlpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgIT0gMAorCQkJJiYgKCgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUykgPT0gMAorCQkJICAgfHwgIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpKSB7CisJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJLyogRlNUIGJpdCBpcyB0aGUgc2FtZSBmb3IgY29udHJvbCwgYnVsayBpbiwgYnVsayBvdXQsIGludGVycnVwdCBpbiAqLworCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfRlNUfFVEQ0NTX0JJX0ZURjsKKworCS8qIGVwMCBuZWVkcyBzcGVjaWFsIGNhcmUgKi8KKwlpZiAoIWVwLT5kZXNjKSB7CisJCXN0YXJ0X3dhdGNoZG9nKGVwLT5kZXYpOworCQllcC0+ZGV2LT5yZXFfcGVuZGluZyA9IDA7CisJCWVwLT5kZXYtPmVwMHN0YXRlID0gRVAwX1NUQUxMOworCisJLyogYW5kIGJ1bGsvaW50ciBlbmRwb2ludHMgbGlrZSBkcm9wcGluZyBzdGFsbHMgdG9vICovCisJfSBlbHNlIHsKKwkJdW5zaWduZWQgaTsKKwkJZm9yIChpID0gMDsgaSA8IDEwMDA7IGkgKz0gMjApIHsKKwkJCWlmICgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1NTVCkKKwkJCQlicmVhazsKKwkJCXVkZWxheSgyMCk7CisJCX0KKwl9CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJREJHKERCR19WRVJCT1NFLCAiJXMgaGFsdFxuIiwgX2VwLT5uYW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBweGEyNXhfZXBfZmlmb19zdGF0dXMoc3RydWN0IHVzYl9lcCAqX2VwKQoreworCXN0cnVjdCBweGEyNXhfZXAgICAgICAgICplcDsKKworCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICghX2VwKSB7CisJCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCS8qIHB4YSBjYW4ndCByZXBvcnQgdW5jbGFpbWVkIGJ5dGVzIGZyb20gSU4gZmlmb3MgKi8KKwlpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgIT0gMCkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCWlmIChlcC0+ZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04KKwkJCXx8ICgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JPX1JGUykgPT0gMCkKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gKCplcC0+cmVnX3ViY3IgJiAweGZmZikgKyAxOworfQorCitzdGF0aWMgdm9pZCBweGEyNXhfZXBfZmlmb19mbHVzaChzdHJ1Y3QgdXNiX2VwICpfZXApCit7CisJc3RydWN0IHB4YTI1eF9lcCAgICAgICAgKmVwOworCisJZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKCFfZXAgfHwgZXAtPmVwLm5hbWUgPT0gZXAwbmFtZSB8fCAhbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgeworCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybjsKKwl9CisKKwkvKiB0b2dnbGUgYW5kIGhhbHQgYml0cyBzdGF5IHVuY2hhbmdlZCAqLworCisJLyogZm9yIE9VVCwganVzdCByZWFkIGFuZCBkaXNjYXJkIHRoZSBGSUZPIGNvbnRlbnRzLiAqLworCWlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSA9PSAwKSB7CisJCXdoaWxlICgoKCplcC0+cmVnX3VkY2NzKSAmIFVEQ0NTX0JPX1JORSkgIT0gMCkKKwkJCSh2b2lkKSAqZXAtPnJlZ191ZGRyOworCQlyZXR1cm47CisJfQorCisJLyogbW9zdCBJTiBzdGF0dXMgaXMgdGhlIHNhbWUsIGJ1dCBJU08gY2FuJ3Qgc3RhbGwgKi8KKwkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX1RQQ3xVRENDU19CSV9GVEZ8VURDQ1NfQklfVFVSCisJCXwgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykKKwkJCT8gMCA6IFVEQ0NTX0JJX1NTVDsKK30KKworCitzdGF0aWMgc3RydWN0IHVzYl9lcF9vcHMgcHhhMjV4X2VwX29wcyA9IHsKKwkuZW5hYmxlCQk9IHB4YTI1eF9lcF9lbmFibGUsCisJLmRpc2FibGUJPSBweGEyNXhfZXBfZGlzYWJsZSwKKworCS5hbGxvY19yZXF1ZXN0CT0gcHhhMjV4X2VwX2FsbG9jX3JlcXVlc3QsCisJLmZyZWVfcmVxdWVzdAk9IHB4YTI1eF9lcF9mcmVlX3JlcXVlc3QsCisKKwkucXVldWUJCT0gcHhhMjV4X2VwX3F1ZXVlLAorCS5kZXF1ZXVlCT0gcHhhMjV4X2VwX2RlcXVldWUsCisKKwkuc2V0X2hhbHQJPSBweGEyNXhfZXBfc2V0X2hhbHQsCisJLmZpZm9fc3RhdHVzCT0gcHhhMjV4X2VwX2ZpZm9fc3RhdHVzLAorCS5maWZvX2ZsdXNoCT0gcHhhMjV4X2VwX2ZpZm9fZmx1c2gsCit9OworCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJZGV2aWNlLXNjb3BlZCBwYXJ0cyBvZiB0aGUgYXBpIHRvIHRoZSB1c2IgY29udHJvbGxlciBoYXJkd2FyZQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworc3RhdGljIGludCBweGEyNXhfdWRjX2dldF9mcmFtZShzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCkKK3sKKwlyZXR1cm4gKChVRk5SSCAmIDB4MDcpIDw8IDgpIHwgKFVGTlJMICYgMHhmZik7Cit9CisKK3N0YXRpYyBpbnQgcHhhMjV4X3VkY193YWtldXAoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQpCit7CisJLyogaG9zdCBtYXkgbm90IGhhdmUgZW5hYmxlZCByZW1vdGUgd2FrZXVwICovCisJaWYgKChVRENDUzAgJiBVRENDUzBfRFJXRikgPT0gMCkKKwkJcmV0dXJuIC1FSE9TVFVOUkVBQ0g7CisJdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1JTTSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHN0b3BfYWN0aXZpdHkoc3RydWN0IHB4YTI1eF91ZGMgKiwgc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyICopOworc3RhdGljIHZvaWQgdWRjX2VuYWJsZSAoc3RydWN0IHB4YTI1eF91ZGMgKik7CitzdGF0aWMgdm9pZCB1ZGNfZGlzYWJsZShzdHJ1Y3QgcHhhMjV4X3VkYyAqKTsKKworLyogV2UgZGlzYWJsZSB0aGUgVURDIC0tIGFuZCBpdHMgNDggTUh6IGNsb2NrIC0tIHdoZW5ldmVyIGl0J3Mgbm90CisgKiBpbiBhY3RpdmUgdXNlLgorICovCitzdGF0aWMgaW50IHB1bGx1cChzdHJ1Y3QgcHhhMjV4X3VkYyAqdWRjKQoreworCWludCBpc19hY3RpdmUgPSB1ZGMtPnZidXMgJiYgdWRjLT5wdWxsdXAgJiYgIXVkYy0+c3VzcGVuZGVkOworCURNU0coIiVzXG4iLCBpc19hY3RpdmUgPyAiYWN0aXZlIiA6ICJpbmFjdGl2ZSIpOworCWlmIChpc19hY3RpdmUpIHsKKwkJaWYgKCF1ZGMtPmFjdGl2ZSkgeworCQkJdWRjLT5hY3RpdmUgPSAxOworCQkJLyogRW5hYmxlIGNsb2NrIGZvciBVU0IgZGV2aWNlICovCisJCQljbGtfZW5hYmxlKHVkYy0+Y2xrKTsKKwkJCXVkY19lbmFibGUodWRjKTsKKwkJfQorCX0gZWxzZSB7CisJCWlmICh1ZGMtPmFjdGl2ZSkgeworCQkJaWYgKHVkYy0+Z2FkZ2V0LnNwZWVkICE9IFVTQl9TUEVFRF9VTktOT1dOKSB7CisJCQkJRE1TRygiZGlzY29ubmVjdCAlc1xuIiwgdWRjLT5kcml2ZXIKKwkJCQkJPyB1ZGMtPmRyaXZlci0+ZHJpdmVyLm5hbWUKKwkJCQkJOiAiKG5vIGRyaXZlcikiKTsKKwkJCQlzdG9wX2FjdGl2aXR5KHVkYywgdWRjLT5kcml2ZXIpOworCQkJfQorCQkJdWRjX2Rpc2FibGUodWRjKTsKKwkJCS8qIERpc2FibGUgY2xvY2sgZm9yIFVTQiBkZXZpY2UgKi8KKwkJCWNsa19kaXNhYmxlKHVkYy0+Y2xrKTsKKwkJCXVkYy0+YWN0aXZlID0gMDsKKwkJfQorCisJfQorCXJldHVybiAwOworfQorCisvKiBWQlVTIHJlcG9ydGluZyBsb2dpY2FsbHkgY29tZXMgZnJvbSBhIHRyYW5zY2VpdmVyICovCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfdmJ1c19zZXNzaW9uKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0LCBpbnQgaXNfYWN0aXZlKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSp1ZGM7CisKKwl1ZGMgPSBjb250YWluZXJfb2YoX2dhZGdldCwgc3RydWN0IHB4YTI1eF91ZGMsIGdhZGdldCk7CisJdWRjLT52YnVzID0gKGlzX2FjdGl2ZSAhPSAwKTsKKwlETVNHKCJ2YnVzICVzXG4iLCBpc19hY3RpdmUgPyAic3VwcGxpZWQiIDogImluYWN0aXZlIik7CisJcHVsbHVwKHVkYyk7CisJcmV0dXJuIDA7Cit9CisKKy8qIGRyaXZlcnMgbWF5IGhhdmUgc29mdHdhcmUgY29udHJvbCBvdmVyIEQrIHB1bGx1cCAqLworc3RhdGljIGludCBweGEyNXhfdWRjX3B1bGx1cChzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCwgaW50IGlzX2FjdGl2ZSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqdWRjOworCisJdWRjID0gY29udGFpbmVyX29mKF9nYWRnZXQsIHN0cnVjdCBweGEyNXhfdWRjLCBnYWRnZXQpOworCisJLyogbm90IGFsbCBib2FyZHMgc3VwcG9ydCBwdWxsdXAgY29udHJvbCAqLworCWlmICghdWRjLT5tYWNoLT5ncGlvX3B1bGx1cCAmJiAhdWRjLT5tYWNoLT51ZGNfY29tbWFuZCkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCisJdWRjLT5wdWxsdXAgPSAoaXNfYWN0aXZlICE9IDApOworCXB1bGx1cCh1ZGMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9nYWRnZXRfb3BzIHB4YTI1eF91ZGNfb3BzID0geworCS5nZXRfZnJhbWUJPSBweGEyNXhfdWRjX2dldF9mcmFtZSwKKwkud2FrZXVwCQk9IHB4YTI1eF91ZGNfd2FrZXVwLAorCS52YnVzX3Nlc3Npb24JPSBweGEyNXhfdWRjX3ZidXNfc2Vzc2lvbiwKKwkucHVsbHVwCQk9IHB4YTI1eF91ZGNfcHVsbHVwLAorCisJLy8gLnZidXNfZHJhdyAuLi4gYm9hcmRzIG1heSBjb25zdW1lIGN1cnJlbnQgZnJvbSBWQlVTLCB1cCB0bworCS8vIDEwMC01MDBtQSBiYXNlZCBvbiBjb25maWcuICB0aGUgNTAwdUEgc3VzcGVuZCBjZWlsaW5nIG1lYW5zCisJLy8gdGhhdCBleGNsdXNpdmVseSB2YnVzLXBvd2VyZWQgUFhBIGRlc2lnbnMgdmlvbGF0ZSBVU0Igc3BlY3MuCit9OworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRlMKKworc3RhdGljIGludAordWRjX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqX2QpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IG0tPnByaXZhdGU7CisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CisJaW50CQkJaTsKKwl1MzIJCQl0bXA7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwkvKiBiYXNpYyBkZXZpY2Ugc3RhdHVzICovCisJc2VxX3ByaW50ZihtLCBEUklWRVJfREVTQyAiXG4iCisJCSIlcyB2ZXJzaW9uOiAlc1xuR2FkZ2V0IGRyaXZlcjogJXNcbkhvc3QgJXNcblxuIiwKKwkJZHJpdmVyX25hbWUsIERSSVZFUl9WRVJTSU9OIFNJWkVfU1RSICIocGlvKSIsCisJCWRldi0+ZHJpdmVyID8gZGV2LT5kcml2ZXItPmRyaXZlci5uYW1lIDogIihub25lKSIsCisJCWlzX3ZidXNfcHJlc2VudCgpID8gImZ1bGwgc3BlZWQiIDogImRpc2Nvbm5lY3RlZCIpOworCisJLyogcmVnaXN0ZXJzIGZvciBkZXZpY2UgYW5kIGVwMCAqLworCXNlcV9wcmludGYobSwKKwkJInVpY3IgJTAyWC4lMDJYLCB1c2lyICUwMlguJTAyeCwgdWZuciAlMDJYLiUwMlhcbiIsCisJCVVJQ1IxLCBVSUNSMCwgVVNJUjEsIFVTSVIwLCBVRk5SSCwgVUZOUkwpOworCisJdG1wID0gVURDQ1I7CisJc2VxX3ByaW50ZihtLAorCQkidWRjY3IgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwgdG1wLAorCQkodG1wICYgVURDQ1JfUkVNKSA/ICIgcmVtIiA6ICIiLAorCQkodG1wICYgVURDQ1JfUlNUSVIpID8gIiByc3RpciIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1NSTSkgPyAiIHNybSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1NVU0lSKSA/ICIgc3VzaXIiIDogIiIsCisJCSh0bXAgJiBVRENDUl9SRVNJUikgPyAiIHJlc2lyIiA6ICIiLAorCQkodG1wICYgVURDQ1JfUlNNKSA/ICIgcnNtIiA6ICIiLAorCQkodG1wICYgVURDQ1JfVURBKSA/ICIgdWRhIiA6ICIiLAorCQkodG1wICYgVURDQ1JfVURFKSA/ICIgdWRlIiA6ICIiKTsKKworCXRtcCA9IFVEQ0NTMDsKKwlzZXFfcHJpbnRmKG0sCisJCSJ1ZGNjczAgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwgdG1wLAorCQkodG1wICYgVURDQ1MwX1NBKSA/ICIgc2EiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfUk5FKSA/ICIgcm5lIiA6ICIiLAorCQkodG1wICYgVURDQ1MwX0ZTVCkgPyAiIGZzdCIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9TU1QpID8gIiBzc3QiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfRFJXRikgPyAiIGR3cmYiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfRlRGKSA/ICIgZnRmIiA6ICIiLAorCQkodG1wICYgVURDQ1MwX0lQUikgPyAiIGlwciIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9PUFIpID8gIiBvcHIiIDogIiIpOworCisJaWYgKGRldi0+aGFzX2NmcikgeworCQl0bXAgPSBVRENDRlI7CisJCXNlcV9wcmludGYobSwKKwkJCSJ1ZGNjZnIgJTAyWCA9JXMlc1xuIiwgdG1wLAorCQkJKHRtcCAmIFVEQ0NGUl9BUkVOKSA/ICIgYXJlbiIgOiAiIiwKKwkJCSh0bXAgJiBVRENDRlJfQUNNKSA/ICIgYWNtIiA6ICIiKTsKKwl9CisKKwlpZiAoIWlzX3ZidXNfcHJlc2VudCgpIHx8ICFkZXYtPmRyaXZlcikKKwkJZ290byBkb25lOworCisJc2VxX3ByaW50ZihtLCAiZXAwIElOICVsdS8lbHUsIE9VVCAlbHUvJWx1XG5pcnFzICVsdVxuXG4iLAorCQlkZXYtPnN0YXRzLndyaXRlLmJ5dGVzLCBkZXYtPnN0YXRzLndyaXRlLm9wcywKKwkJZGV2LT5zdGF0cy5yZWFkLmJ5dGVzLCBkZXYtPnN0YXRzLnJlYWQub3BzLAorCQlkZXYtPnN0YXRzLmlycXMpOworCisJLyogZHVtcCBlbmRwb2ludCBxdWV1ZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKKwkJc3RydWN0IHB4YTI1eF9lcAkqZXAgPSAmZGV2LT5lcCBbaV07CisJCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCisJCWlmIChpICE9IDApIHsKKwkJCWNvbnN0IHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvcgkqZGVzYzsKKworCQkJZGVzYyA9IGVwLT5kZXNjOworCQkJaWYgKCFkZXNjKQorCQkJCWNvbnRpbnVlOworCQkJdG1wID0gKmRldi0+ZXAgW2ldLnJlZ191ZGNjczsKKwkJCXNlcV9wcmludGYobSwKKwkJCQkiJXMgbWF4ICVkICVzIHVkY2NzICUwMnggaXJxcyAlbHVcbiIsCisJCQkJZXAtPmVwLm5hbWUsIGxlMTZfdG9fY3B1KGRlc2MtPndNYXhQYWNrZXRTaXplKSwKKwkJCQkicGlvIiwgdG1wLCBlcC0+cGlvX2lycXMpOworCQkJLyogVE9ETyB0cmFuc2xhdGUgYWxsIGZpdmUgZ3JvdXBzIG9mIHVkY2NzIGJpdHMhICovCisKKwkJfSBlbHNlIC8qIGVwMCBzaG91bGQgb25seSBoYXZlIG9uZSB0cmFuc2ZlciBxdWV1ZWQgKi8KKwkJCXNlcV9wcmludGYobSwgImVwMCBtYXggMTYgcGlvIGlycXMgJWx1XG4iLAorCQkJCWVwLT5waW9faXJxcyk7CisKKwkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKKwkJCXNlcV9wcmludGYobSwgIlx0KG5vdGhpbmcgcXVldWVkKVxuIik7CisJCQljb250aW51ZTsKKwkJfQorCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmVwLT5xdWV1ZSwgcXVldWUpIHsKKwkJCXNlcV9wcmludGYobSwKKwkJCQkJIlx0cmVxICVwIGxlbiAlZC8lZCBidWYgJXBcbiIsCisJCQkJCSZyZXEtPnJlcSwgcmVxLT5yZXEuYWN0dWFsLAorCQkJCQlyZXEtPnJlcS5sZW5ndGgsIHJlcS0+cmVxLmJ1Zik7CisJCX0KKwl9CisKK2RvbmU6CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit1ZGNfZGVidWdmc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCB1ZGNfc2VxX3Nob3csIGlub2RlLT5pX3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkZWJ1Z19mb3BzID0geworCS5vcGVuCQk9IHVkY19kZWJ1Z2ZzX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCit9OworCisjZGVmaW5lIGNyZWF0ZV9kZWJ1Z19maWxlcyhkZXYpIFwKKwlkbyB7IFwKKwkJZGV2LT5kZWJ1Z2ZzX3VkYyA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoZGV2LT5nYWRnZXQubmFtZSwgXAorCQkJU19JUlVHTywgTlVMTCwgZGV2LCAmZGVidWdfZm9wcyk7IFwKKwl9IHdoaWxlICgwKQorI2RlZmluZSByZW1vdmVfZGVidWdfZmlsZXMoZGV2KSBcCisJZG8geyBcCisJCWlmIChkZXYtPmRlYnVnZnNfdWRjKSBcCisJCQlkZWJ1Z2ZzX3JlbW92ZShkZXYtPmRlYnVnZnNfdWRjKTsgXAorCX0gd2hpbGUgKDApCisKKyNlbHNlCS8qICFDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyAqLworCisjZGVmaW5lIGNyZWF0ZV9kZWJ1Z19maWxlcyhkZXYpIGRvIHt9IHdoaWxlICgwKQorI2RlZmluZSByZW1vdmVfZGVidWdfZmlsZXMoZGV2KSBkbyB7fSB3aGlsZSAoMCkKKworI2VuZGlmCS8qIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTICovCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKgl1ZGNfZGlzYWJsZSAtIGRpc2FibGUgVVNCIGRldmljZSBjb250cm9sbGVyCisgKi8KK3N0YXRpYyB2b2lkIHVkY19kaXNhYmxlKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJLyogYmxvY2sgYWxsIGlycXMgKi8KKwl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfU1JNfFVEQ0NSX1JFTSk7CisJVUlDUjAgPSBVSUNSMSA9IDB4ZmY7CisJVUZOUkggPSBVRk5SSF9TSU07CisKKwkvKiBpZiBoYXJkd2FyZSBzdXBwb3J0cyBpdCwgZGlzY29ubmVjdCBmcm9tIHVzYiAqLworCXB1bGx1cF9vZmYoKTsKKworCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7CisKKwllcDBfaWRsZSAoZGV2KTsKKwlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOworfQorCisKKy8qCisgKgl1ZGNfcmVpbml0IC0gaW5pdGlhbGl6ZSBzb2Z0d2FyZSBzdGF0ZQorICovCitzdGF0aWMgdm9pZCB1ZGNfcmVpbml0KHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJdTMyCWk7CisKKwkvKiBkZXZpY2UvZXAwIHJlY29yZHMgaW5pdCAqLworCUlOSVRfTElTVF9IRUFEICgmZGV2LT5nYWRnZXQuZXBfbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQgKCZkZXYtPmdhZGdldC5lcDAtPmVwX2xpc3QpOworCWRldi0+ZXAwc3RhdGUgPSBFUDBfSURMRTsKKworCS8qIGJhc2ljIGVuZHBvaW50IHJlY29yZHMgaW5pdCAqLworCWZvciAoaSA9IDA7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgeworCQlzdHJ1Y3QgcHhhMjV4X2VwICplcCA9ICZkZXYtPmVwW2ldOworCisJCWlmIChpICE9IDApCisJCQlsaXN0X2FkZF90YWlsICgmZXAtPmVwLmVwX2xpc3QsICZkZXYtPmdhZGdldC5lcF9saXN0KTsKKworCQllcC0+ZGVzYyA9IE5VTEw7CisJCWVwLT5zdG9wcGVkID0gMDsKKwkJSU5JVF9MSVNUX0hFQUQgKCZlcC0+cXVldWUpOworCQllcC0+cGlvX2lycXMgPSAwOworCX0KKworCS8qIHRoZSByZXN0IHdhcyBzdGF0aWNhbGx5IGluaXRpYWxpemVkLCBhbmQgaXMgcmVhZC1vbmx5ICovCit9CisKKy8qIHVudGlsIGl0J3MgZW5hYmxlZCwgdGhpcyBVREMgc2hvdWxkIGJlIGNvbXBsZXRlbHkgaW52aXNpYmxlCisgKiB0byBhbnkgVVNCIGhvc3QuCisgKi8KK3N0YXRpYyB2b2lkIHVkY19lbmFibGUgKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfVURFKTsKKworCS8qIHRyeSB0byBjbGVhciB0aGVzZSBiaXRzIGJlZm9yZSB3ZSBlbmFibGUgdGhlIHVkYyAqLworCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1NVU0lSfC8qVURDQ1JfUlNUSVJ8Ki9VRENDUl9SRVNJUik7CisKKwllcDBfaWRsZShkZXYpOworCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX1VOS05PV047CisJZGV2LT5zdGF0cy5pcnFzID0gMDsKKworCS8qCisJICogc2VxdWVuY2UgdGFrZW4gZnJvbSBjaGFwdGVyIDEyLjUuMTAsIFBYQTI1MCBBcHBQcm9jRGV2TWFudWFsOgorCSAqIC0gZW5hYmxlIFVEQworCSAqIC0gaWYgUkVTRVQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgYWNrIGludGVycnVwdAorCSAqIC0gdW5tYXNrIHJlc2V0IGludGVycnVwdAorCSAqLworCXVkY19zZXRfbWFza19VRENDUihVRENDUl9VREUpOworCWlmICghKFVEQ0NSICYgVURDQ1JfVURBKSkKKwkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfUlNUSVIpOworCisJaWYgKGRldi0+aGFzX2NmciAvKiBVRENfUkVTMiBpcyBkZWZpbmVkICovKSB7CisJCS8qIHB4YTI1NSAoYTArKSBjYW4gYXZvaWQgYSBzZXRfY29uZmlnIHJhY2UgdGhhdCBjb3VsZAorCQkgKiBwcmV2ZW50IGdhZGdldCBkcml2ZXJzIGZyb20gY29uZmlndXJpbmcgY29ycmVjdGx5CisJCSAqLworCQlVRENDRlIgPSBVRENDRlJfQUNNIHwgVURDQ0ZSX01CMTsKKwl9IGVsc2UgeworCQkvKiAiVVNCIHRlc3QgbW9kZSIgZm9yIHB4YTI1MCBlcnJhdGEgNDAtNDIgKHN0ZXBwaW5nIGEwLCBhMSkKKwkJICogd2hpY2ggY291bGQgcmVzdWx0IGluIG1pc3NpbmcgcGFja2V0cyBhbmQgaW50ZXJydXB0cy4KKwkJICogc3VwcG9zZWRseSBvbmUgYml0IHBlciBlbmRwb2ludCwgY29udHJvbGxpbmcgd2hldGhlciBpdAorCQkgKiBkb3VibGUgYnVmZmVycyBvciBub3Q7IEFDTS9BUkVOIGJpdHMgZml0IGludG8gdGhlIGhvbGVzLgorCQkgKiB6ZXJvIGJpdHMgKGxpa2UgVVNJUjBfSVJ4KSBkaXNhYmxlIGRvdWJsZSBidWZmZXJpbmcuCisJCSAqLworCQlVRENfUkVTMSA9IDB4MDA7CisJCVVEQ19SRVMyID0gMHgwMDsKKwl9CisKKwkvKiBlbmFibGUgc3VzcGVuZC9yZXN1bWUgYW5kIHJlc2V0IGlycXMgKi8KKwl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9TUk0gfCBVRENDUl9SRU0pOworCisJLyogZW5hYmxlIGVwMCBpcnFzICovCisJVUlDUjAgJj0gflVJQ1IwX0lNMDsKKworCS8qIGlmIGhhcmR3YXJlIHN1cHBvcnRzIGl0LCBwdWxsdXAgRCsgYW5kIHdhaXQgZm9yIHJlc2V0ICovCisJcHVsbHVwX29uKCk7Cit9CisKKworLyogd2hlbiBhIGRyaXZlciBpcyBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCwgaXQgd2lsbCByZWNlaXZlCisgKiBjb250cm9sIHJlcXVlc3RzIGluY2x1ZGluZyBzZXRfY29uZmlndXJhdGlvbigpLCB3aGljaCBlbmFibGVzCisgKiBub24tY29udHJvbCByZXF1ZXN0cy4gIHRoZW4gdXNiIHRyYWZmaWMgZm9sbG93cyB1bnRpbCBhCisgKiBkaXNjb25uZWN0IGlzIHJlcG9ydGVkLiAgdGhlbiBhIGhvc3QgbWF5IGNvbm5lY3QgYWdhaW4sIG9yCisgKiB0aGUgZHJpdmVyIG1pZ2h0IGdldCB1bmJvdW5kLgorICovCitpbnQgdXNiX2dhZGdldF9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyICpkcml2ZXIpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IHRoZV9jb250cm9sbGVyOworCWludAkJCXJldHZhbDsKKworCWlmICghZHJpdmVyCisJCQl8fCBkcml2ZXItPnNwZWVkIDwgVVNCX1NQRUVEX0ZVTEwKKwkJCXx8ICFkcml2ZXItPmJpbmQKKwkJCXx8ICFkcml2ZXItPmRpc2Nvbm5lY3QKKwkJCXx8ICFkcml2ZXItPnNldHVwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIWRldikKKwkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKGRldi0+ZHJpdmVyKQorCQlyZXR1cm4gLUVCVVNZOworCisJLyogZmlyc3QgaG9vayB1cCB0aGUgZHJpdmVyIC4uLiAqLworCWRldi0+ZHJpdmVyID0gZHJpdmVyOworCWRldi0+Z2FkZ2V0LmRldi5kcml2ZXIgPSAmZHJpdmVyLT5kcml2ZXI7CisJZGV2LT5wdWxsdXAgPSAxOworCisJcmV0dmFsID0gZGV2aWNlX2FkZCAoJmRldi0+Z2FkZ2V0LmRldik7CisJaWYgKHJldHZhbCkgeworZmFpbDoKKwkJZGV2LT5kcml2ZXIgPSBOVUxMOworCQlkZXYtPmdhZGdldC5kZXYuZHJpdmVyID0gTlVMTDsKKwkJcmV0dXJuIHJldHZhbDsKKwl9CisJcmV0dmFsID0gZHJpdmVyLT5iaW5kKCZkZXYtPmdhZGdldCk7CisJaWYgKHJldHZhbCkgeworCQlETVNHKCJiaW5kIHRvIGRyaXZlciAlcyAtLT4gZXJyb3IgJWRcbiIsCisJCQkJZHJpdmVyLT5kcml2ZXIubmFtZSwgcmV0dmFsKTsKKwkJZGV2aWNlX2RlbCAoJmRldi0+Z2FkZ2V0LmRldik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiAuLi4gdGhlbiBlbmFibGUgaG9zdCBkZXRlY3Rpb24gYW5kIGVwMDsgYW5kIHdlJ3JlIHJlYWR5CisJICogZm9yIHNldF9jb25maWd1cmF0aW9uIGFzIHdlbGwgYXMgZXZlbnR1YWwgZGlzY29ubmVjdC4KKwkgKi8KKwlETVNHKCJyZWdpc3RlcmVkIGdhZGdldCBkcml2ZXIgJyVzJ1xuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSk7CisJcHVsbHVwKGRldik7CisJZHVtcF9zdGF0ZShkZXYpOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTCh1c2JfZ2FkZ2V0X3JlZ2lzdGVyX2RyaXZlcik7CisKK3N0YXRpYyB2b2lkCitzdG9wX2FjdGl2aXR5KHN0cnVjdCBweGEyNXhfdWRjICpkZXYsIHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQoreworCWludCBpOworCisJLyogZG9uJ3QgZGlzY29ubmVjdCBkcml2ZXJzIG1vcmUgdGhhbiBvbmNlICovCisJaWYgKGRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOKQorCQlkcml2ZXIgPSBOVUxMOworCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX1VOS05PV047CisKKwkvKiBwcmV2ZW50IG5ldyByZXF1ZXN0IHN1Ym1pc3Npb25zLCBraWxsIGFueSBvdXRzdGFuZGluZyByZXF1ZXN0cyAgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKKwkJc3RydWN0IHB4YTI1eF9lcCAqZXAgPSAmZGV2LT5lcFtpXTsKKworCQllcC0+c3RvcHBlZCA9IDE7CisJCW51a2UoZXAsIC1FU0hVVERPV04pOworCX0KKwlkZWxfdGltZXJfc3luYygmZGV2LT50aW1lcik7CisKKwkvKiByZXBvcnQgZGlzY29ubmVjdDsgdGhlIGRyaXZlciBpcyBhbHJlYWR5IHF1aWVzY2VkICovCisJaWYgKGRyaXZlcikKKwkJZHJpdmVyLT5kaXNjb25uZWN0KCZkZXYtPmdhZGdldCk7CisKKwkvKiByZS1pbml0IGRyaXZlci12aXNpYmxlIGRhdGEgc3RydWN0dXJlcyAqLworCXVkY19yZWluaXQoZGV2KTsKK30KKworaW50IHVzYl9nYWRnZXRfdW5yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyICpkcml2ZXIpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IHRoZV9jb250cm9sbGVyOworCisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PREVWOworCWlmICghZHJpdmVyIHx8IGRyaXZlciAhPSBkZXYtPmRyaXZlciB8fCAhZHJpdmVyLT51bmJpbmQpCisJCXJldHVybiAtRUlOVkFMOworCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlkZXYtPnB1bGx1cCA9IDA7CisJcHVsbHVwKGRldik7CisJc3RvcF9hY3Rpdml0eShkZXYsIGRyaXZlcik7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworCisJZHJpdmVyLT51bmJpbmQoJmRldi0+Z2FkZ2V0KTsKKwlkZXYtPmdhZGdldC5kZXYuZHJpdmVyID0gTlVMTDsKKwlkZXYtPmRyaXZlciA9IE5VTEw7CisKKwlkZXZpY2VfZGVsICgmZGV2LT5nYWRnZXQuZGV2KTsKKworCURNU0coInVucmVnaXN0ZXJlZCBnYWRnZXQgZHJpdmVyICclcydcbiIsIGRyaXZlci0+ZHJpdmVyLm5hbWUpOworCWR1bXBfc3RhdGUoZGV2KTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wodXNiX2dhZGdldF91bnJlZ2lzdGVyX2RyaXZlcik7CisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKKworLyogTHViYm9jayBoYXMgc2VwYXJhdGUgY29ubmVjdCBhbmQgZGlzY29ubmVjdCBpcnFzLiAgTW9yZSB0eXBpY2FsIGRlc2lnbnMKKyAqIHVzZSBvbmUgR1BJTyBhcyB0aGUgVkJVUyBJUlEsIGFuZCBhbm90aGVyIHRvIGNvbnRyb2wgdGhlIEQrIHB1bGx1cC4KKyAqLworCitzdGF0aWMgaXJxcmV0dXJuX3QKK2x1YmJvY2tfdmJ1c19pcnEoaW50IGlycSwgdm9pZCAqX2RldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gX2RldjsKKwlpbnQJCQl2YnVzOworCisJZGV2LT5zdGF0cy5pcnFzKys7CisJc3dpdGNoIChpcnEpIHsKKwljYXNlIExVQkJPQ0tfVVNCX0lSUToKKwkJdmJ1cyA9IDE7CisJCWRpc2FibGVfaXJxKExVQkJPQ0tfVVNCX0lSUSk7CisJCWVuYWJsZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEpOworCQlicmVhazsKKwljYXNlIExVQkJPQ0tfVVNCX0RJU0NfSVJROgorCQl2YnVzID0gMDsKKwkJZGlzYWJsZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEpOworCQllbmFibGVfaXJxKExVQkJPQ0tfVVNCX0lSUSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiBJUlFfTk9ORTsKKwl9CisKKwlweGEyNXhfdWRjX3ZidXNfc2Vzc2lvbigmZGV2LT5nYWRnZXQsIHZidXMpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworI2VuZGlmCisKK3N0YXRpYyBpcnFyZXR1cm5fdCB1ZGNfdmJ1c19pcnEoaW50IGlycSwgdm9pZCAqX2RldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gX2RldjsKKwlpbnQJCQl2YnVzID0gZ3Bpb19nZXRfdmFsdWUoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOworCisJaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzX2ludmVydGVkKQorCQl2YnVzID0gIXZidXM7CisKKwlweGEyNXhfdWRjX3ZidXNfc2Vzc2lvbigmZGV2LT5nYWRnZXQsIHZidXMpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfZXBfc3RhdGUgKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJdW5zaWduZWQgaTsKKworCS8qIGhhcmR3YXJlIFNFVF97Q09ORklHVVJBVElPTixJTlRFUkZBQ0V9IGF1dG9tYWdpYyByZXNldHMgZW5kcG9pbnQKKwkgKiBmaWZvcywgYW5kIHBlbmRpbmcgdHJhbnNhY3Rpb25zIG11c3RuJ3QgYmUgY29udGludWVkIGluIGFueSBjYXNlLgorCSAqLworCWZvciAoaSA9IDE7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykKKwkJbnVrZSgmZGV2LT5lcFtpXSwgLUVDT05OQUJPUlRFRCk7Cit9CisKK3N0YXRpYyB2b2lkIHVkY193YXRjaGRvZyh1bnNpZ25lZCBsb25nIF9kZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9ICh2b2lkICopX2RldjsKKworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJaWYgKGRldi0+ZXAwc3RhdGUgPT0gRVAwX1NUQUxMCisJCQkmJiAoVURDQ1MwICYgVURDQ1MwX0ZTVCkgPT0gMAorCQkJJiYgKFVEQ0NTMCAmIFVEQ0NTMF9TU1QpID09IDApIHsKKwkJVURDQ1MwID0gVURDQ1MwX0ZTVHxVRENDUzBfRlRGOworCQlEQkcoREJHX1ZFUkJPU0UsICJlcDAgcmUtc3RhbGxcbiIpOworCQlzdGFydF93YXRjaGRvZyhkZXYpOworCX0KKwlsb2NhbF9pcnFfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZV9lcDAgKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJdTMyCQkJdWRjY3MwID0gVURDQ1MwOworCXN0cnVjdCBweGEyNXhfZXAJKmVwID0gJmRldi0+ZXAgWzBdOworCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCXVuaW9uIHsKKwkJc3RydWN0IHVzYl9jdHJscmVxdWVzdAlyOworCQl1OAkJCXJhdyBbOF07CisJCXUzMgkJCXdvcmQgWzJdOworCX0gdTsKKworCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKQorCQlyZXEgPSBOVUxMOworCWVsc2UKKwkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0LCBxdWV1ZSk7CisKKwkvKiBjbGVhciBzdGFsbCBzdGF0dXMgKi8KKwlpZiAodWRjY3MwICYgVURDQ1MwX1NTVCkgeworCQludWtlKGVwLCAtRVBJUEUpOworCQlVRENDUzAgPSBVRENDUzBfU1NUOworCQlkZWxfdGltZXIoJmRldi0+dGltZXIpOworCQllcDBfaWRsZShkZXYpOworCX0KKworCS8qIHByZXZpb3VzIHJlcXVlc3QgdW5maW5pc2hlZD8gIG5vbi1lcnJvciBpZmYgYmFjay10by1iYWNrIC4uLiAqLworCWlmICgodWRjY3MwICYgVURDQ1MwX1NBKSAhPSAwICYmIGRldi0+ZXAwc3RhdGUgIT0gRVAwX0lETEUpIHsKKwkJbnVrZShlcCwgMCk7CisJCWRlbF90aW1lcigmZGV2LT50aW1lcik7CisJCWVwMF9pZGxlKGRldik7CisJfQorCisJc3dpdGNoIChkZXYtPmVwMHN0YXRlKSB7CisJY2FzZSBFUDBfSURMRToKKwkJLyogbGF0ZS1icmVha2luZyBzdGF0dXM/ICovCisJCXVkY2NzMCA9IFVEQ0NTMDsKKworCQkvKiBzdGFydCBjb250cm9sIHJlcXVlc3Q/ICovCisJCWlmIChsaWtlbHkoKHVkY2NzMCAmIChVRENDUzBfT1BSfFVEQ0NTMF9TQXxVRENDUzBfUk5FKSkKKwkJCQk9PSAoVURDQ1MwX09QUnxVRENDUzBfU0F8VURDQ1MwX1JORSkpKSB7CisJCQlpbnQgaTsKKworCQkJbnVrZSAoZXAsIC1FUFJPVE8pOworCisJCQkvKiByZWFkIFNFVFVQIHBhY2tldCAqLworCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQkJCWlmICh1bmxpa2VseSghKFVEQ0NTMCAmIFVEQ0NTMF9STkUpKSkgeworYmFkX3NldHVwOgorCQkJCQlETVNHKCJTRVRVUCAlZCFcbiIsIGkpOworCQkJCQlnb3RvIHN0YWxsOworCQkJCX0KKwkJCQl1LnJhdyBbaV0gPSAodTgpIFVERFIwOworCQkJfQorCQkJaWYgKHVubGlrZWx5KChVRENDUzAgJiBVRENDUzBfUk5FKSAhPSAwKSkKKwkJCQlnb3RvIGJhZF9zZXR1cDsKKworZ290X3NldHVwOgorCQkJREJHKERCR19WRVJCT1NFLCAiU0VUVVAgJTAyeC4lMDJ4IHYlMDR4IGklMDR4IGwlMDR4XG4iLAorCQkJCXUuci5iUmVxdWVzdFR5cGUsIHUuci5iUmVxdWVzdCwKKwkJCQlsZTE2X3RvX2NwdSh1LnIud1ZhbHVlKSwKKwkJCQlsZTE2X3RvX2NwdSh1LnIud0luZGV4KSwKKwkJCQlsZTE2X3RvX2NwdSh1LnIud0xlbmd0aCkpOworCisJCQkvKiBjb3BlIHdpdGggYXV0b21hZ2ljIGZvciBzb21lIHN0YW5kYXJkIHJlcXVlc3RzLiAqLworCQkJZGV2LT5yZXFfc3RkID0gKHUuci5iUmVxdWVzdFR5cGUgJiBVU0JfVFlQRV9NQVNLKQorCQkJCQkJPT0gVVNCX1RZUEVfU1RBTkRBUkQ7CisJCQlkZXYtPnJlcV9jb25maWcgPSAwOworCQkJZGV2LT5yZXFfcGVuZGluZyA9IDE7CisJCQlzd2l0Y2ggKHUuci5iUmVxdWVzdCkgeworCQkJLyogaGFyZHdhcmUgcmVzdHJpY3RzIGdhZGdldCBkcml2ZXJzIGhlcmUhICovCisJCQljYXNlIFVTQl9SRVFfU0VUX0NPTkZJR1VSQVRJT046CisJCQkJaWYgKHUuci5iUmVxdWVzdFR5cGUgPT0gVVNCX1JFQ0lQX0RFVklDRSkgeworCQkJCQkvKiByZWZsZWN0IGhhcmR3YXJlJ3MgYXV0b21hZ2ljCisJCQkJCSAqIHVwIHRvIHRoZSBnYWRnZXQgZHJpdmVyLgorCQkJCQkgKi8KK2NvbmZpZ19jaGFuZ2U6CisJCQkJCWRldi0+cmVxX2NvbmZpZyA9IDE7CisJCQkJCWNsZWFyX2VwX3N0YXRlKGRldik7CisJCQkJCS8qIGlmICFoYXNfY2ZyLCB0aGVyZSdzIG5vIHN5bmNoCisJCQkJCSAqIGVsc2UgdXNlIEFSRU4gKGxhdGVyKSBub3QgU0F8T1BSCisJCQkJCSAqIFVTSVIwX0lSMCBhY3RzIGVkZ2Ugc2Vuc2l0aXZlCisJCQkJCSAqLworCQkJCX0KKwkJCQlicmVhazsKKwkJCS8qIC4uLiBhbmQgaGVyZSwgZXZlbiBtb3JlIC4uLiAqLworCQkJY2FzZSBVU0JfUkVRX1NFVF9JTlRFUkZBQ0U6CisJCQkJaWYgKHUuci5iUmVxdWVzdFR5cGUgPT0gVVNCX1JFQ0lQX0lOVEVSRkFDRSkgeworCQkJCQkvKiB1ZGMgaGFyZHdhcmUgaXMgYnJva2VuIGJ5IGRlc2lnbjoKKwkJCQkJICogIC0gYWx0c2V0dGluZyBtYXkgb25seSBiZSB6ZXJvOworCQkJCQkgKiAgLSBodyByZXNldHMgYWxsIGludGVyZmFjZXMnIGVwczsKKwkJCQkJICogIC0gZXAgcmVzZXQgZG9lc24ndCBpbmNsdWRlIGhhbHQoPykuCisJCQkJCSAqLworCQkJCQlETVNHKCJicm9rZW4gc2V0X2ludGVyZmFjZSAoJWQvJWQpXG4iLAorCQkJCQkJbGUxNl90b19jcHUodS5yLndJbmRleCksCisJCQkJCQlsZTE2X3RvX2NwdSh1LnIud1ZhbHVlKSk7CisJCQkJCWdvdG8gY29uZmlnX2NoYW5nZTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQkvKiBoYXJkd2FyZSB3YXMgc3VwcG9zZWQgdG8gaGlkZSB0aGlzICovCisJCQljYXNlIFVTQl9SRVFfU0VUX0FERFJFU1M6CisJCQkJaWYgKHUuci5iUmVxdWVzdFR5cGUgPT0gVVNCX1JFQ0lQX0RFVklDRSkgeworCQkJCQllcDBzdGFydChkZXYsIDAsICJhZGRyZXNzIik7CisJCQkJCXJldHVybjsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCWlmICh1LnIuYlJlcXVlc3RUeXBlICYgVVNCX0RJUl9JTikKKwkJCQlkZXYtPmVwMHN0YXRlID0gRVAwX0lOX0RBVEFfUEhBU0U7CisJCQllbHNlCisJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9PVVRfREFUQV9QSEFTRTsKKworCQkJaSA9IGRldi0+ZHJpdmVyLT5zZXR1cCgmZGV2LT5nYWRnZXQsICZ1LnIpOworCQkJaWYgKGkgPCAwKSB7CisJCQkJLyogaGFyZHdhcmUgYXV0b21hZ2ljIHByZXZlbnRpbmcgU1RBTEwuLi4gKi8KKwkJCQlpZiAoZGV2LT5yZXFfY29uZmlnKSB7CisJCQkJCS8qIGhhcmR3YXJlIHNvbWV0aW1lcyBuZWdsZWN0cyB0byB0ZWxsCisJCQkJCSAqIHRlbGwgdXMgYWJvdXQgY29uZmlnIGNoYW5nZSBldmVudHMsCisJCQkJCSAqIHNvIGxhdGVyIG9uZXMgbWF5IGZhaWwuLi4KKwkJCQkJICovCisJCQkJCVdBUk4oImNvbmZpZyBjaGFuZ2UgJTAyeCBmYWlsICVkP1xuIiwKKwkJCQkJCXUuci5iUmVxdWVzdCwgaSk7CisJCQkJCXJldHVybjsKKwkJCQkJLyogVE9ETyBleHBlcmltZW50OiAgaWYgaGFzX2NmciwKKwkJCQkJICogaGFyZHdhcmUgZGlkbid0IEFDSzsgbWF5YmUgd2UKKwkJCQkJICogY291bGQgYWN0dWFsbHkgU1RBTEwhCisJCQkJCSAqLworCQkJCX0KKwkJCQlEQkcoREJHX1ZFUkJPU0UsICJwcm90b2NvbCBTVEFMTCwgIgorCQkJCQkiJTAyeCBlcnIgJWRcbiIsIFVEQ0NTMCwgaSk7CitzdGFsbDoKKwkJCQkvKiB0aGUgd2F0Y2hkb2cgdGltZXIgaGVscHMgZGVhbCB3aXRoIGNhc2VzCisJCQkJICogd2hlcmUgdWRjIHNlZW1zIHRvIGNsZWFyIEZTVCB3cm9uZ2x5LCBhbmQKKwkJCQkgKiB0aGVuIE5BS3MgaW5zdGVhZCBvZiBTVEFMTGluZy4KKwkJCQkgKi8KKwkJCQllcDBzdGFydChkZXYsIFVEQ0NTMF9GU1R8VURDQ1MwX0ZURiwgInN0YWxsIik7CisJCQkJc3RhcnRfd2F0Y2hkb2coZGV2KTsKKwkJCQlkZXYtPmVwMHN0YXRlID0gRVAwX1NUQUxMOworCisJCQkvKiBkZWZlcnJlZCBpL28gPT0gbm8gcmVzcG9uc2UgeWV0ICovCisJCQl9IGVsc2UgaWYgKGRldi0+cmVxX3BlbmRpbmcpIHsKKwkJCQlpZiAobGlrZWx5KGRldi0+ZXAwc3RhdGUgPT0gRVAwX0lOX0RBVEFfUEhBU0UKKwkJCQkJCXx8IGRldi0+cmVxX3N0ZCB8fCB1LnIud0xlbmd0aCkpCisJCQkJCWVwMHN0YXJ0KGRldiwgMCwgImRlZmVyIik7CisJCQkJZWxzZQorCQkJCQllcDBzdGFydChkZXYsIFVEQ0NTMF9JUFIsICJkZWZlci9JUFIiKTsKKwkJCX0KKworCQkJLyogZXhwZWN0IGF0IGxlYXN0IG9uZSBkYXRhIG9yIHN0YXR1cyBzdGFnZSBpcnEgKi8KKwkJCXJldHVybjsKKworCQl9IGVsc2UgaWYgKGxpa2VseSgodWRjY3MwICYgKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBKSkKKwkJCQk9PSAoVURDQ1MwX09QUnxVRENDUzBfU0EpKSkgeworCQkJdW5zaWduZWQgaTsKKworCQkJLyogcHhhMjEwLzI1MCBlcnJhdHVtIDEzMSBmb3IgQjAvQjEgc2F5cyBSTkUgbGllcy4KKwkJCSAqIHN0aWxsIG9ic2VydmVkIG9uIGEgcHhhMjU1IGEwLgorCQkJICovCisJCQlEQkcoREJHX1ZFUkJPU0UsICJlMTMxXG4iKTsKKwkJCW51a2UoZXAsIC1FUFJPVE8pOworCisJCQkvKiByZWFkIFNFVFVQIGRhdGEsIGJ1dCBkb24ndCB0cnVzdCBpdCB0b28gbXVjaCAqLworCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKwkJCQl1LnJhdyBbaV0gPSAodTgpIFVERFIwOworCQkJaWYgKCh1LnIuYlJlcXVlc3RUeXBlICYgVVNCX1JFQ0lQX01BU0spCisJCQkJCT4gVVNCX1JFQ0lQX09USEVSKQorCQkJCWdvdG8gc3RhbGw7CisJCQlpZiAodS53b3JkIFswXSA9PSAwICYmIHUud29yZCBbMV0gPT0gMCkKKwkJCQlnb3RvIHN0YWxsOworCQkJZ290byBnb3Rfc2V0dXA7CisJCX0gZWxzZSB7CisJCQkvKiBzb21lIHJhbmRvbSBlYXJseSBJUlE6CisJCQkgKiAtIHdlIGFja2VkIEZTVAorCQkJICogLSBJUFIgY2xlYXJlZAorCQkJICogLSBPUFIgZ290IHNldCwgd2l0aG91dCBTQSAobGlrZWx5IHN0YXR1cyBzdGFnZSkKKwkJCSAqLworCQkJVURDQ1MwID0gdWRjY3MwICYgKFVEQ0NTMF9TQXxVRENDUzBfT1BSKTsKKwkJfQorCQlicmVhazsKKwljYXNlIEVQMF9JTl9EQVRBX1BIQVNFOgkJCS8qIEdFVF9ERVNDUklQVE9SIGV0YyAqLworCQlpZiAodWRjY3MwICYgVURDQ1MwX09QUikgeworCQkJVURDQ1MwID0gVURDQ1MwX09QUnxVRENDUzBfRlRGOworCQkJREJHKERCR19WRVJCT1NFLCAiZXAwaW4gcHJlbWF0dXJlIHN0YXR1c1xuIik7CisJCQlpZiAocmVxKQorCQkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCQllcDBfaWRsZShkZXYpOworCQl9IGVsc2UgLyogaXJxIHdhcyBJUFIgY2xlYXJpbmcgKi8geworCQkJaWYgKHJlcSkgeworCQkJCS8qIHRoaXMgSU4gcGFja2V0IG1pZ2h0IGZpbmlzaCB0aGUgcmVxdWVzdCAqLworCQkJCSh2b2lkKSB3cml0ZV9lcDBfZmlmbyhlcCwgcmVxKTsKKwkJCX0gLyogZWxzZSBJTiB0b2tlbiBiZWZvcmUgcmVzcG9uc2Ugd2FzIHdyaXR0ZW4gKi8KKwkJfQorCQlicmVhazsKKwljYXNlIEVQMF9PVVRfREFUQV9QSEFTRToJCS8qIFNFVF9ERVNDUklQVE9SIGV0YyAqLworCQlpZiAodWRjY3MwICYgVURDQ1MwX09QUikgeworCQkJaWYgKHJlcSkgeworCQkJCS8qIHRoaXMgT1VUIHBhY2tldCBtaWdodCBmaW5pc2ggdGhlIHJlcXVlc3QgKi8KKwkJCQlpZiAocmVhZF9lcDBfZmlmbyhlcCwgcmVxKSkKKwkJCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJCQkvKiBlbHNlIG1vcmUgT1VUIHBhY2tldHMgZXhwZWN0ZWQgKi8KKwkJCX0gLyogZWxzZSBPVVQgdG9rZW4gYmVmb3JlIHJlYWQgd2FzIGlzc3VlZCAqLworCQl9IGVsc2UgLyogaXJxIHdhcyBJUFIgY2xlYXJpbmcgKi8geworCQkJREJHKERCR19WRVJCT1NFLCAiZXAwb3V0IHByZW1hdHVyZSBzdGF0dXNcbiIpOworCQkJaWYgKHJlcSkKKwkJCQlkb25lKGVwLCByZXEsIDApOworCQkJZXAwX2lkbGUoZGV2KTsKKwkJfQorCQlicmVhazsKKwljYXNlIEVQMF9FTkRfWEZFUjoKKwkJaWYgKHJlcSkKKwkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCS8qIGFjayBjb250cm9sLUlOIHN0YXR1cyAobWF5YmUgaW4temxwIHdhcyBza2lwcGVkKQorCQkgKiBhbHNvIGFwcGVhcnMgYWZ0ZXIgc29tZSBjb25maWcgY2hhbmdlIGV2ZW50cy4KKwkJICovCisJCWlmICh1ZGNjczAgJiBVRENDUzBfT1BSKQorCQkJVURDQ1MwID0gVURDQ1MwX09QUjsKKwkJZXAwX2lkbGUoZGV2KTsKKwkJYnJlYWs7CisJY2FzZSBFUDBfU1RBTEw6CisJCVVEQ0NTMCA9IFVEQ0NTMF9GU1Q7CisJCWJyZWFrOworCX0KKwlVU0lSMCA9IFVTSVIwX0lSMDsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlX2VwKHN0cnVjdCBweGEyNXhfZXAgKmVwKQoreworCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCWludAkJCWlzX2luID0gZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOOworCWludAkJCWNvbXBsZXRlZDsKKwl1MzIJCQl1ZGNjcywgdG1wOworCisJZG8geworCQljb21wbGV0ZWQgPSAwOworCQlpZiAobGlrZWx5ICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkpCisJCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LAorCQkJCQlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QsIHF1ZXVlKTsKKwkJZWxzZQorCQkJcmVxID0gTlVMTDsKKworCQkvLyBUT0RPIGNoZWNrIEZTVCBoYW5kbGluZworCisJCXVkY2NzID0gKmVwLT5yZWdfdWRjY3M7CisJCWlmICh1bmxpa2VseShpc19pbikpIHsJLyogaXJxIGZyb20gVFBDLCBTU1QsIG9yIChJU08pIFRVUiAqLworCQkJdG1wID0gVURDQ1NfQklfVFVSOworCQkJaWYgKGxpa2VseShlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEspKQorCQkJCXRtcCB8PSBVRENDU19CSV9TU1Q7CisJCQl0bXAgJj0gdWRjY3M7CisJCQlpZiAobGlrZWx5ICh0bXApKQorCQkJCSplcC0+cmVnX3VkY2NzID0gdG1wOworCQkJaWYgKHJlcSAmJiBsaWtlbHkgKCh1ZGNjcyAmIFVEQ0NTX0JJX1RGUykgIT0gMCkpCisJCQkJY29tcGxldGVkID0gd3JpdGVfZmlmbyhlcCwgcmVxKTsKKworCQl9IGVsc2UgewkvKiBpcnEgZnJvbSBSUEMgKG9yIGZvciBJU08sIFJPRikgKi8KKwkJCWlmIChsaWtlbHkoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLKSkKKwkJCQl0bXAgPSBVRENDU19CT19TU1QgfCBVRENDU19CT19ETUU7CisJCQllbHNlCisJCQkJdG1wID0gVURDQ1NfSU9fUk9GIHwgVURDQ1NfSU9fRE1FOworCQkJdG1wICY9IHVkY2NzOworCQkJaWYgKGxpa2VseSh0bXApKQorCQkJCSplcC0+cmVnX3VkY2NzID0gdG1wOworCisJCQkvKiBmaWZvcyBjYW4gaG9sZCBwYWNrZXRzLCByZWFkeSBmb3IgcmVhZGluZy4uLiAqLworCQkJaWYgKGxpa2VseShyZXEpKSB7CisJCQkJY29tcGxldGVkID0gcmVhZF9maWZvKGVwLCByZXEpOworCQkJfSBlbHNlCisJCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7CisJCX0KKwkJZXAtPnBpb19pcnFzKys7CisJfSB3aGlsZSAoY29tcGxldGVkKTsKK30KKworLyoKKyAqCXB4YTI1eF91ZGNfaXJxIC0gaW50ZXJydXB0IGhhbmRsZXIKKyAqCisgKiBhdm9pZCBkZWxheXMgaW4gZXAwIHByb2Nlc3NpbmcuIHRoZSBjb250cm9sIGhhbmRzaGFraW5nIGlzbid0IGFsd2F5cworICogdW5kZXIgc29mdHdhcmUgY29udHJvbCAocHhhMjUwYzAgYW5kIHRoZSBweGEyNTUgYXJlIGJldHRlciksIGFuZCBkZWxheXMKKyAqIGNvdWxkIGNhdXNlIHVzYiBwcm90b2NvbCBlcnJvcnMuCisgKi8KK3N0YXRpYyBpcnFyZXR1cm5fdAorcHhhMjV4X3VkY19pcnEoaW50IGlycSwgdm9pZCAqX2RldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gX2RldjsKKwlpbnQJCQloYW5kbGVkOworCisJZGV2LT5zdGF0cy5pcnFzKys7CisJZG8geworCQl1MzIJCXVkY2NyID0gVURDQ1I7CisKKwkJaGFuZGxlZCA9IDA7CisKKwkJLyogU1VTcGVuZCBJbnRlcnJ1cHQgUmVxdWVzdCAqLworCQlpZiAodW5saWtlbHkodWRjY3IgJiBVRENDUl9TVVNJUikpIHsKKwkJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1NVU0lSKTsKKwkJCWhhbmRsZWQgPSAxOworCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHN1c3BlbmQlc1xuIiwgaXNfdmJ1c19wcmVzZW50KCkKKwkJCQk/ICIiIDogIitkaXNjb25uZWN0Iik7CisKKwkJCWlmICghaXNfdmJ1c19wcmVzZW50KCkpCisJCQkJc3RvcF9hY3Rpdml0eShkZXYsIGRldi0+ZHJpdmVyKTsKKwkJCWVsc2UgaWYgKGRldi0+Z2FkZ2V0LnNwZWVkICE9IFVTQl9TUEVFRF9VTktOT1dOCisJCQkJCSYmIGRldi0+ZHJpdmVyCisJCQkJCSYmIGRldi0+ZHJpdmVyLT5zdXNwZW5kKQorCQkJCWRldi0+ZHJpdmVyLT5zdXNwZW5kKCZkZXYtPmdhZGdldCk7CisJCQllcDBfaWRsZSAoZGV2KTsKKwkJfQorCisJCS8qIFJFU3VtZSBJbnRlcnJ1cHQgUmVxdWVzdCAqLworCQlpZiAodW5saWtlbHkodWRjY3IgJiBVRENDUl9SRVNJUikpIHsKKwkJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JFU0lSKTsKKwkJCWhhbmRsZWQgPSAxOworCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHJlc3VtZVxuIik7CisKKwkJCWlmIChkZXYtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTgorCQkJCQkmJiBkZXYtPmRyaXZlcgorCQkJCQkmJiBkZXYtPmRyaXZlci0+cmVzdW1lCisJCQkJCSYmIGlzX3ZidXNfcHJlc2VudCgpKQorCQkJCWRldi0+ZHJpdmVyLT5yZXN1bWUoJmRldi0+Z2FkZ2V0KTsKKwkJfQorCisJCS8qIFJlU2VUIEludGVycnVwdCBSZXF1ZXN0IC0gVVNCIHJlc2V0ICovCisJCWlmICh1bmxpa2VseSh1ZGNjciAmIFVEQ0NSX1JTVElSKSkgeworCQkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfUlNUSVIpOworCQkJaGFuZGxlZCA9IDE7CisKKwkJCWlmICgoVURDQ1IgJiBVRENDUl9VREEpID09IDApIHsKKwkJCQlEQkcoREJHX1ZFUkJPU0UsICJVU0IgcmVzZXQgc3RhcnRcbiIpOworCisJCQkJLyogcmVzZXQgZHJpdmVyIGFuZCBlbmRwb2ludHMsCisJCQkJICogaW4gY2FzZSB0aGF0J3Mgbm90IHlldCBkb25lCisJCQkJICovCisJCQkJc3RvcF9hY3Rpdml0eSAoZGV2LCBkZXYtPmRyaXZlcik7CisKKwkJCX0gZWxzZSB7CisJCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHJlc2V0IGVuZFxuIik7CisJCQkJZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfRlVMTDsKKwkJCQltZW1zZXQoJmRldi0+c3RhdHMsIDAsIHNpemVvZiBkZXYtPnN0YXRzKTsKKwkJCQkvKiBkcml2ZXIgYW5kIGVuZHBvaW50cyBhcmUgc3RpbGwgcmVzZXQgKi8KKwkJCX0KKworCQl9IGVsc2UgeworCQkJdTMyCXVzaXIwID0gVVNJUjAgJiB+VUlDUjA7CisJCQl1MzIJdXNpcjEgPSBVU0lSMSAmIH5VSUNSMTsKKwkJCWludAlpOworCisJCQlpZiAodW5saWtlbHkgKCF1c2lyMCAmJiAhdXNpcjEpKQorCQkJCWNvbnRpbnVlOworCisJCQlEQkcoREJHX1ZFUllfTk9JU1ksICJpcnEgJTAyeC4lMDJ4XG4iLCB1c2lyMSwgdXNpcjApOworCisJCQkvKiBjb250cm9sIHRyYWZmaWMgKi8KKwkJCWlmICh1c2lyMCAmIFVTSVIwX0lSMCkgeworCQkJCWRldi0+ZXBbMF0ucGlvX2lycXMrKzsKKwkJCQloYW5kbGVfZXAwKGRldik7CisJCQkJaGFuZGxlZCA9IDE7CisJCQl9CisKKwkJCS8qIGVuZHBvaW50IGRhdGEgdHJhbnNmZXJzICovCisJCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCQkJdTMyCXRtcCA9IDEgPDwgaTsKKworCQkJCWlmIChpICYmICh1c2lyMCAmIHRtcCkpIHsKKwkJCQkJaGFuZGxlX2VwKCZkZXYtPmVwW2ldKTsKKwkJCQkJVVNJUjAgfD0gdG1wOworCQkJCQloYW5kbGVkID0gMTsKKwkJCQl9CisJCQkJaWYgKHVzaXIxICYgdG1wKSB7CisJCQkJCWhhbmRsZV9lcCgmZGV2LT5lcFtpKzhdKTsKKwkJCQkJVVNJUjEgfD0gdG1wOworCQkJCQloYW5kbGVkID0gMTsKKwkJCQl9CisJCQl9CisJCX0KKworCQkvKiB3ZSBjb3VsZCBhbHNvIGFzayBmb3IgMSBtc2VjIFNPRiAoU0lSKSBpbnRlcnJ1cHRzICovCisKKwl9IHdoaWxlIChoYW5kbGVkKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyB2b2lkIG5vcF9yZWxlYXNlIChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJRE1TRygiJXMgJXNcbiIsIF9fZnVuY19fLCBkZXYtPmJ1c19pZCk7Cit9CisKKy8qIHRoaXMgdXNlcyBsb2FkLXRpbWUgYWxsb2NhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24gKGluc3RlYWQgb2YKKyAqIGRvaW5nIGl0IGF0IHJ1bi10aW1lKSB0byBzYXZlIGNvZGUsIGVsaW1pbmF0ZSBmYXVsdCBwYXRocywgYW5kCisgKiBiZSBtb3JlIG9idmlvdXNseSBjb3JyZWN0LgorICovCitzdGF0aWMgc3RydWN0IHB4YTI1eF91ZGMgbWVtb3J5ID0geworCS5nYWRnZXQgPSB7CisJCS5vcHMJCT0gJnB4YTI1eF91ZGNfb3BzLAorCQkuZXAwCQk9ICZtZW1vcnkuZXBbMF0uZXAsCisJCS5uYW1lCQk9IGRyaXZlcl9uYW1lLAorCQkuZGV2ID0geworCQkJLmJ1c19pZAkJPSAiZ2FkZ2V0IiwKKwkJCS5yZWxlYXNlCT0gbm9wX3JlbGVhc2UsCisJCX0sCisJfSwKKworCS8qIGNvbnRyb2wgZW5kcG9pbnQgKi8KKwkuZXBbMF0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9IGVwMG5hbWUsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEVQMF9GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzAsCisJCS5yZWdfdWRkcgk9ICZVRERSMCwKKwl9LAorCisJLyogZmlyc3QgZ3JvdXAgb2YgZW5kcG9pbnRzICovCisJLmVwWzFdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxaW4tYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMSwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxLAorCQkucmVnX3VkZHIJPSAmVUREUjEsCisJfSwKKwkuZXBbMl0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDJvdXQtYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSAyLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzIsCisJCS5yZWdfdWJjcgk9ICZVQkNSMiwKKwkJLnJlZ191ZGRyCT0gJlVERFIyLAorCX0sCisjaWZuZGVmIENPTkZJR19VU0JfUFhBMjVYX1NNQUxMCisJLmVwWzNdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAzaW4taXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMywKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MzLAorCQkucmVnX3VkZHIJPSAmVUREUjMsCisJfSwKKwkuZXBbNF0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDRvdXQtaXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSA0LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzQsCisJCS5yZWdfdWJjcgk9ICZVQkNSNCwKKwkJLnJlZ191ZGRyCT0gJlVERFI0LAorCX0sCisJLmVwWzVdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA1aW4taW50IiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSU5UX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSU5UX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgNSwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCwKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzUsCisJCS5yZWdfdWRkcgk9ICZVRERSNSwKKwl9LAorCisJLyogc2Vjb25kIGdyb3VwIG9mIGVuZHBvaW50cyAqLworCS5lcFs2XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwNmluLWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDYsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTNiwKKwkJLnJlZ191ZGRyCT0gJlVERFI2LAorCX0sCisJLmVwWzddID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA3b3V0LWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gNywKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M3LAorCQkucmVnX3ViY3IJPSAmVUJDUjcsCisJCS5yZWdfdWRkcgk9ICZVRERSNywKKwl9LAorCS5lcFs4XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwOGluLWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDgsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTOCwKKwkJLnJlZ191ZGRyCT0gJlVERFI4LAorCX0sCisJLmVwWzldID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA5b3V0LWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gOSwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M5LAorCQkucmVnX3ViY3IJPSAmVUJDUjksCisJCS5yZWdfdWRkcgk9ICZVRERSOSwKKwl9LAorCS5lcFsxMF0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDEwaW4taW50IiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSU5UX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSU5UX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTAsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxMCwKKwkJLnJlZ191ZGRyCT0gJlVERFIxMCwKKwl9LAorCisJLyogdGhpcmQgZ3JvdXAgb2YgZW5kcG9pbnRzICovCisJLmVwWzExXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTFpbi1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMSwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxMSwKKwkJLnJlZ191ZGRyCT0gJlVERFIxMSwKKwl9LAorCS5lcFsxMl0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDEyb3V0LWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gMTIsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTIsCisJCS5yZWdfdWJjcgk9ICZVQkNSMTIsCisJCS5yZWdfdWRkcgk9ICZVRERSMTIsCisJfSwKKwkuZXBbMTNdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxM2luLWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEzLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzEzLAorCQkucmVnX3VkZHIJPSAmVUREUjEzLAorCX0sCisJLmVwWzE0XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTRvdXQtaXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSAxNCwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxNCwKKwkJLnJlZ191YmNyCT0gJlVCQ1IxNCwKKwkJLnJlZ191ZGRyCT0gJlVERFIxNCwKKwl9LAorCS5lcFsxNV0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDE1aW4taW50IiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSU5UX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSU5UX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTUsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxNSwKKwkJLnJlZ191ZGRyCT0gJlVERFIxNSwKKwl9LAorI2VuZGlmIC8qICFDT05GSUdfVVNCX1BYQTI1WF9TTUFMTCAqLworfTsKKworI2RlZmluZSBDUDE1UjBfVkVORE9SX01BU0sJMHhmZmZmZTAwMAorCisjaWYJZGVmaW5lZChDT05GSUdfQVJDSF9QWEEpCisjZGVmaW5lIENQMTVSMF9YU0NBTEVfVkFMVUUJMHg2OTA1MjAwMAkvKiBpbnRlbC9hcm0veHNjYWxlICovCisKKyNlbGlmCWRlZmluZWQoQ09ORklHX0FSQ0hfSVhQNFhYKQorI2RlZmluZSBDUDE1UjBfWFNDQUxFX1ZBTFVFCTB4NjkwNTQwMDAJLyogaW50ZWwvYXJtL2l4cDR4eCAqLworCisjZW5kaWYKKworI2RlZmluZSBDUDE1UjBfUFJPRF9NQVNLCTB4MDAwMDAzZjAKKyNkZWZpbmUgUFhBMjV4CQkJMHgwMDAwMDEwMAkvKiBhbmQgUFhBMjZ4ICovCisjZGVmaW5lIFBYQTIxMAkJCTB4MDAwMDAxMjAKKworI2RlZmluZSBDUDE1UjBfUkVWX01BU0sJCTB4MDAwMDAwMGYKKworI2RlZmluZSBDUDE1UjBfUFJPRFJFVl9NQVNLCShDUDE1UjBfUFJPRF9NQVNLIHwgQ1AxNVIwX1JFVl9NQVNLKQorCisjZGVmaW5lIFBYQTI1NV9BMAkJMHgwMDAwMDEwNgkvKiBvciBQWEEyNjBfQjEgKi8KKyNkZWZpbmUgUFhBMjUwX0MwCQkweDAwMDAwMTA1CS8qIG9yIFBYQTI2eF9CMCAqLworI2RlZmluZSBQWEEyNTBfQjIJCTB4MDAwMDAxMDQKKyNkZWZpbmUgUFhBMjUwX0IxCQkweDAwMDAwMTAzCS8qIG9yIFBYQTI2MF9BMCAqLworI2RlZmluZSBQWEEyNTBfQjAJCTB4MDAwMDAxMDIKKyNkZWZpbmUgUFhBMjUwX0ExCQkweDAwMDAwMTAxCisjZGVmaW5lIFBYQTI1MF9BMAkJMHgwMDAwMDEwMAorCisjZGVmaW5lIFBYQTIxMF9DMAkJMHgwMDAwMDEyNQorI2RlZmluZSBQWEEyMTBfQjIJCTB4MDAwMDAxMjQKKyNkZWZpbmUgUFhBMjEwX0IxCQkweDAwMDAwMTIzCisjZGVmaW5lIFBYQTIxMF9CMAkJMHgwMDAwMDEyMgorI2RlZmluZSBJWFA0MjVfQTAJCTB4MDAwMDAxYzEKKyNkZWZpbmUgSVhQNDI1X0IwCQkweDAwMDAwMWYxCisjZGVmaW5lIElYUDQ2NV9BRAkJMHgwMDAwMDIwMAorCisvKgorICoJcHJvYmUgLSBiaW5kcyB0byB0aGUgcGxhdGZvcm0gZGV2aWNlCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IHB4YTI1eF91ZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2ID0gJm1lbW9yeTsKKwlpbnQgcmV0dmFsLCB2YnVzX2lycSwgaXJxOworCXUzMiBjaGlwcmV2OworCisJLyogaW5zaXN0IG9uIEludGVsL0FSTS9YU2NhbGUgKi8KKwlhc20oIm1yYyU/IHAxNSwgMCwgJTAsIGMwLCBjMCIgOiAiPXIiIChjaGlwcmV2KSk7CisJaWYgKChjaGlwcmV2ICYgQ1AxNVIwX1ZFTkRPUl9NQVNLKSAhPSBDUDE1UjBfWFNDQUxFX1ZBTFVFKSB7CisJCXByX2VycigiJXM6IG5vdCBYU2NhbGUhXG4iLCBkcml2ZXJfbmFtZSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCS8qIHRyaWdnZXIgY2hpcHJldi1zcGVjaWZpYyBsb2dpYyAqLworCXN3aXRjaCAoY2hpcHJldiAmIENQMTVSMF9QUk9EUkVWX01BU0spIHsKKyNpZglkZWZpbmVkKENPTkZJR19BUkNIX1BYQSkKKwljYXNlIFBYQTI1NV9BMDoKKwkJZGV2LT5oYXNfY2ZyID0gMTsKKwkJYnJlYWs7CisJY2FzZSBQWEEyNTBfQTA6CisJY2FzZSBQWEEyNTBfQTE6CisJCS8qIEEwL0ExICJub3QgcmVsZWFzZWQiOyBlcCAxMywgMTUgdW51c2FibGUgKi8KKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBQWEEyNTBfQjI6IGNhc2UgUFhBMjEwX0IyOgorCWNhc2UgUFhBMjUwX0IxOiBjYXNlIFBYQTIxMF9CMToKKwljYXNlIFBYQTI1MF9CMDogY2FzZSBQWEEyMTBfQjA6CisJCS8qIE9VVC1ETUEgaXMgYnJva2VuIC4uLiAqLworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIFBYQTI1MF9DMDogY2FzZSBQWEEyMTBfQzA6CisJCWJyZWFrOworI2VsaWYJZGVmaW5lZChDT05GSUdfQVJDSF9JWFA0WFgpCisJY2FzZSBJWFA0MjVfQTA6CisJY2FzZSBJWFA0MjVfQjA6CisJY2FzZSBJWFA0NjVfQUQ6CisJCWRldi0+aGFzX2NmciA9IDE7CisJCWJyZWFrOworI2VuZGlmCisJZGVmYXVsdDoKKwkJcHJfZXJyKCIlczogdW5yZWNvZ25pemVkIHByb2Nlc3NvcjogJTA4eFxuIiwKKwkJCWRyaXZlcl9uYW1lLCBjaGlwcmV2KTsKKwkJLyogaW9wM3h4LCBpeHA0eHgsIC4uLiAqLworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworCWlmIChpcnEgPCAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRldi0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAiVURDQ0xLIik7CisJaWYgKElTX0VSUihkZXYtPmNsaykpIHsKKwkJcmV0dmFsID0gUFRSX0VSUihkZXYtPmNsayk7CisJCWdvdG8gZXJyX2NsazsKKwl9CisKKwlwcl9kZWJ1ZygiJXM6IElSUSAlZCVzJXNcbiIsIGRyaXZlcl9uYW1lLCBpcnEsCisJCWRldi0+aGFzX2NmciA/ICIiIDogIiAoIWNmcikiLAorCQlTSVpFX1NUUiAiKHBpbykiCisJCSk7CisKKwkvKiBvdGhlciBub24tc3RhdGljIHBhcnRzIG9mIGluaXQgKi8KKwlkZXYtPmRldiA9ICZwZGV2LT5kZXY7CisJZGV2LT5tYWNoID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXMpIHsKKwkJaWYgKChyZXR2YWwgPSBncGlvX3JlcXVlc3QoZGV2LT5tYWNoLT5ncGlvX3ZidXMsCisJCQkJInB4YTI1eF91ZGMgR1BJTyBWQlVTIikpKSB7CisJCQlkZXZfZGJnKCZwZGV2LT5kZXYsCisJCQkJImNhbid0IGdldCB2YnVzIGdwaW8gJWQsIGVycjogJWRcbiIsCisJCQkJZGV2LT5tYWNoLT5ncGlvX3ZidXMsIHJldHZhbCk7CisJCQlnb3RvIGVycl9ncGlvX3ZidXM7CisJCX0KKwkJZ3Bpb19kaXJlY3Rpb25faW5wdXQoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOworCQl2YnVzX2lycSA9IGdwaW9fdG9faXJxKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKKwl9IGVsc2UKKwkJdmJ1c19pcnEgPSAwOworCisJaWYgKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApIHsKKwkJaWYgKChyZXR2YWwgPSBncGlvX3JlcXVlc3QoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCwKKwkJCQkicGNhMjV4X3VkYyBHUElPIFBVTExVUCIpKSkgeworCQkJZGV2X2RiZygmcGRldi0+ZGV2LAorCQkJCSJjYW4ndCBnZXQgcHVsbHVwIGdwaW8gJWQsIGVycjogJWRcbiIsCisJCQkJZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCwgcmV0dmFsKTsKKwkJCWdvdG8gZXJyX2dwaW9fcHVsbHVwOworCQl9CisJCWdwaW9fZGlyZWN0aW9uX291dHB1dChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwLCAwKTsKKwl9CisKKwlpbml0X3RpbWVyKCZkZXYtPnRpbWVyKTsKKwlkZXYtPnRpbWVyLmZ1bmN0aW9uID0gdWRjX3dhdGNoZG9nOworCWRldi0+dGltZXIuZGF0YSA9ICh1bnNpZ25lZCBsb25nKSBkZXY7CisKKwlkZXZpY2VfaW5pdGlhbGl6ZSgmZGV2LT5nYWRnZXQuZGV2KTsKKwlkZXYtPmdhZGdldC5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKKwlkZXYtPmdhZGdldC5kZXYuZG1hX21hc2sgPSBwZGV2LT5kZXYuZG1hX21hc2s7CisKKwl0aGVfY29udHJvbGxlciA9IGRldjsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkZXYpOworCisJdWRjX2Rpc2FibGUoZGV2KTsKKwl1ZGNfcmVpbml0KGRldik7CisKKwlkZXYtPnZidXMgPSBpc192YnVzX3ByZXNlbnQoKTsKKworCS8qIGlycSBzZXR1cCBhZnRlciBvbGQgaGFyZHdhcmUgc3RhdGUgaXMgY2xlYW5lZCB1cCAqLworCXJldHZhbCA9IHJlcXVlc3RfaXJxKGlycSwgcHhhMjV4X3VkY19pcnEsCisJCQlJUlFGX0RJU0FCTEVELCBkcml2ZXJfbmFtZSwgZGV2KTsKKwlpZiAocmV0dmFsICE9IDApIHsKKwkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlZCwgZXJyICVkXG4iLAorCQkJZHJpdmVyX25hbWUsIGlycSwgcmV0dmFsKTsKKwkJZ290byBlcnJfaXJxMTsKKwl9CisJZGV2LT5nb3RfaXJxID0gMTsKKworI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKKwlpZiAobWFjaGluZV9pc19sdWJib2NrKCkpIHsKKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEsCisJCQkJbHViYm9ja192YnVzX2lycSwKKwkJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9TQU1QTEVfUkFORE9NLAorCQkJCWRyaXZlcl9uYW1lLCBkZXYpOworCQlpZiAocmV0dmFsICE9IDApIHsKKwkJCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWksIGVyciAlZFxuIiwKKwkJCQlkcml2ZXJfbmFtZSwgTFVCQk9DS19VU0JfRElTQ19JUlEsIHJldHZhbCk7CitsdWJib2NrX2ZhaWwwOgorCQkJZ290byBlcnJfaXJxX2x1YjsKKwkJfQorCQlyZXR2YWwgPSByZXF1ZXN0X2lycShMVUJCT0NLX1VTQl9JUlEsCisJCQkJbHViYm9ja192YnVzX2lycSwKKwkJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9TQU1QTEVfUkFORE9NLAorCQkJCWRyaXZlcl9uYW1lLCBkZXYpOworCQlpZiAocmV0dmFsICE9IDApIHsKKwkJCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWksIGVyciAlZFxuIiwKKwkJCQlkcml2ZXJfbmFtZSwgTFVCQk9DS19VU0JfSVJRLCByZXR2YWwpOworCQkJZnJlZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEsIGRldik7CisJCQlnb3RvIGx1YmJvY2tfZmFpbDA7CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCWlmICh2YnVzX2lycSkgeworCQlyZXR2YWwgPSByZXF1ZXN0X2lycSh2YnVzX2lycSwgdWRjX3ZidXNfaXJxLAorCQkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1NBTVBMRV9SQU5ET00gfAorCQkJCUlSUUZfVFJJR0dFUl9SSVNJTkcgfCBJUlFGX1RSSUdHRVJfRkFMTElORywKKwkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKKwkJaWYgKHJldHZhbCAhPSAwKSB7CisJCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCisJCQkJZHJpdmVyX25hbWUsIHZidXNfaXJxLCByZXR2YWwpOworCQkJZ290byBlcnJfdmJ1c19pcnE7CisJCX0KKwl9CisJY3JlYXRlX2RlYnVnX2ZpbGVzKGRldik7CisKKwlyZXR1cm4gMDsKKworIGVycl92YnVzX2lycToKKyNpZmRlZglDT05GSUdfQVJDSF9MVUJCT0NLCisJZnJlZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEsIGRldik7CisgZXJyX2lycV9sdWI6CisjZW5kaWYKKwlmcmVlX2lycShpcnEsIGRldik7CisgZXJyX2lycTE6CisJaWYgKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApCisJCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKTsKKyBlcnJfZ3Bpb19wdWxsdXA6CisJaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzKQorCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOworIGVycl9ncGlvX3ZidXM6CisJY2xrX3B1dChkZXYtPmNsayk7CisgZXJyX2NsazoKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgdm9pZCBweGEyNXhfdWRjX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKl9kZXYpCit7CisJcHVsbHVwX29mZigpOworfQorCitzdGF0aWMgaW50IF9fZXhpdCBweGEyNXhfdWRjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjICpkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWlmIChkZXYtPmRyaXZlcikKKwkJcmV0dXJuIC1FQlVTWTsKKworCWRldi0+cHVsbHVwID0gMDsKKwlwdWxsdXAoZGV2KTsKKworCXJlbW92ZV9kZWJ1Z19maWxlcyhkZXYpOworCisJaWYgKGRldi0+Z290X2lycSkgeworCQlmcmVlX2lycShwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApLCBkZXYpOworCQlkZXYtPmdvdF9pcnEgPSAwOworCX0KKyNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCisJaWYgKG1hY2hpbmVfaXNfbHViYm9jaygpKSB7CisJCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOworCQlmcmVlX2lycShMVUJCT0NLX1VTQl9JUlEsIGRldik7CisJfQorI2VuZGlmCisJaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzKSB7CisJCWZyZWVfaXJxKGdwaW9fdG9faXJxKGRldi0+bWFjaC0+Z3Bpb192YnVzKSwgZGV2KTsKKwkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKKwl9CisJaWYgKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApCisJCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKTsKKworCWNsa19wdXQoZGV2LT5jbGspOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisJdGhlX2NvbnRyb2xsZXIgPSBOVUxMOworCXJldHVybiAwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZkZWYJQ09ORklHX1BNCisKKy8qIFVTQiBzdXNwZW5kIChjb250cm9sbGVkIGJ5IHRoZSBob3N0KSBhbmQgc3lzdGVtIHN1c3BlbmQgKGNvbnRyb2xsZWQKKyAqIGJ5IHRoZSBQWEEpIGRvbid0IG5lY2Vzc2FyaWx5IHdvcmsgd2VsbCB0b2dldGhlci4gIElmIFVTQiBpcyBhY3RpdmUsCisgKiB0aGUgNDggTUh6IGNsb2NrIGlzIHJlcXVpcmVkOyBzbyB0aGUgc3lzdGVtIGNhbid0IGVudGVyIDMzIE1IeiBpZGxlCisgKiBtb2RlLCBvciBhbnkgZGVlcGVyIFBNIHNhdmluZyBzdGF0ZS4KKyAqCisgKiBGb3Igbm93LCB3ZSBwdW50IGFuZCBmb3JjaWJseSBkaXNjb25uZWN0IGZyb20gdGhlIFVTQiBob3N0IHdoZW4gUFhBCisgKiBlbnRlcnMgYW55IHN1c3BlbmQgc3RhdGUuICBXaGlsZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIHdlIGFsd2F5cyBkaXNhYmxlCisgKiB0aGUgNDhNSHogVVNCIGNsb2NrIC4uLiBhbGxvd2luZyBQWEEgc2xlZXAgYW5kL29yIDMzIE1IeiBpZGxlIHN0YXRlcy4KKyAqIEJvYXJkcyB3aXRob3V0IHNvZnR3YXJlIHB1bGx1cCBjb250cm9sIHNob3VsZG4ndCB1c2UgdGhvc2Ugc3RhdGVzLgorICogVkJVUyBJUlFzIHNob3VsZCBwcm9iYWJseSBiZSBpZ25vcmVkIHNvIHRoYXQgdGhlIFBYQSBkZXZpY2UganVzdCBhY3RzCisgKiAiZGVhZCIgdG8gVVNCIGhvc3RzIHVudGlsIHN5c3RlbSByZXN1bWUuCisgKi8KK3N0YXRpYyBpbnQgcHhhMjV4X3VkY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSp1ZGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoIXVkYy0+bWFjaC0+Z3Bpb19wdWxsdXAgJiYgIXVkYy0+bWFjaC0+dWRjX2NvbW1hbmQpCisJCVdBUk4oIlVTQiBob3N0IHdvbid0IGRldGVjdCBkaXNjb25uZWN0IVxuIik7CisJdWRjLT5zdXNwZW5kZWQgPSAxOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXB1bGx1cCh1ZGMpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqdWRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJdWRjLT5zdXNwZW5kZWQgPSAwOworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlwdWxsdXAodWRjKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworI2Vsc2UKKyNkZWZpbmUJcHhhMjV4X3VkY19zdXNwZW5kCU5VTEwKKyNkZWZpbmUJcHhhMjV4X3VkY19yZXN1bWUJTlVMTAorI2VuZGlmCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHVkY19kcml2ZXIgPSB7CisJLnNodXRkb3duCT0gcHhhMjV4X3VkY19zaHV0ZG93biwKKwkucmVtb3ZlCQk9IF9fZXhpdF9wKHB4YTI1eF91ZGNfcmVtb3ZlKSwKKwkuc3VzcGVuZAk9IHB4YTI1eF91ZGNfc3VzcGVuZCwKKwkucmVzdW1lCQk9IHB4YTI1eF91ZGNfcmVzdW1lLAorCS5kcml2ZXIJCT0geworCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwkJLm5hbWUJPSAicHhhMjV4LXVkYyIsCisJfSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHVkY19pbml0KHZvaWQpCit7CisJcHJfaW5mbygiJXM6IHZlcnNpb24gJXNcbiIsIGRyaXZlcl9uYW1lLCBEUklWRVJfVkVSU0lPTik7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9wcm9iZSgmdWRjX2RyaXZlciwgcHhhMjV4X3VkY19wcm9iZSk7Cit9Cittb2R1bGVfaW5pdCh1ZGNfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCB1ZGNfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZ1ZGNfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHVkY19leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9BVVRIT1IoIkZyYW5rIEJlY2tlciwgUm9iZXJ0IFNjaHdlYmVsLCBEYXZpZCBCcm93bmVsbCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpweGEyNXgtdWRjIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5oIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDExZWNlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuaApAQCAtMCwwICsxLDI2NiBAQAorLyoKKyAqIEludGVsIFBYQTI1eCBvbi1jaGlwIGZ1bGwgc3BlZWQgVVNCIGRldmljZSBjb250cm9sbGVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAzIFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4sIFBlbmd1dHJvbml4CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgRGF2aWQgQnJvd25lbGwKKyAqCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpZm5kZWYgX19MSU5VWF9VU0JfR0FER0VUX1BYQTI1WF9ICisjZGVmaW5lIF9fTElOVVhfVVNCX0dBREdFVF9QWEEyNVhfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogcHhhMjV4IGhhcyB0aGlzIChtb3ZlIHRvIGluY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oKSAqLworI2RlZmluZSBVRk5SSF9TSVIJKDEgPDwgNykJLyogU09GIGludGVycnVwdCByZXF1ZXN0ICovCisjZGVmaW5lIFVGTlJIX1NJTQkoMSA8PCA2KQkvKiBTT0YgaW50ZXJydXB0IG1hc2sgKi8KKyNkZWZpbmUgVUZOUkhfSVBFMTQJKDEgPDwgNSkJLyogSVNPIHBhY2tldCBlcnJvciwgZXAxNCAqLworI2RlZmluZSBVRk5SSF9JUEU5CSgxIDw8IDQpCS8qIElTTyBwYWNrZXQgZXJyb3IsIGVwOSAqLworI2RlZmluZSBVRk5SSF9JUEU0CSgxIDw8IDMpCS8qIElTTyBwYWNrZXQgZXJyb3IsIGVwNCAqLworCisvKiBweGEyNTUgaGFzIHRoaXMgKG1vdmUgdG8gaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgpICovCisjZGVmaW5lCVVEQ0NGUgkJVURDX1JFUzIJLyogVURDIENvbnRyb2wgRnVuY3Rpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ0ZSX0FSRU4JKDEgPDwgNykJLyogQUNLIHJlc3BvbnNlIGVuYWJsZSAobm93KSAqLworI2RlZmluZSBVRENDRlJfQUNNCSgxIDw8IDIpCS8qIEFDSyBjb250cm9sIG1vZGUgKHdhaXQgZm9yIEFSRU4pICovCisKKy8qIGxhdGVzdCBweGEyNTUgZXJyYXRhIGRlZmluZSBuZXcgIm11c3QgYmUgb25lIiBiaXRzIGluIFVEQ0NGUiAqLworI2RlZmluZQlVRENDRlJfTUIxCSgweGZmICYgfihVRENDRlJfQVJFTnxVRENDRlJfQUNNKSkKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RydWN0IHB4YTI1eF91ZGM7CisKK3N0cnVjdCBweGEyNXhfZXAgeworCXN0cnVjdCB1c2JfZXAJCQkJZXA7CisJc3RydWN0IHB4YTI1eF91ZGMJCQkqZGV2OworCisJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yCSpkZXNjOworCXN0cnVjdCBsaXN0X2hlYWQJCQlxdWV1ZTsKKwl1bnNpZ25lZCBsb25nCQkJCXBpb19pcnFzOworCisJdW5zaWduZWQgc2hvcnQJCQkJZmlmb19zaXplOworCXU4CQkJCQliRW5kcG9pbnRBZGRyZXNzOworCXU4CQkJCQlibUF0dHJpYnV0ZXM7CisKKwl1bnNpZ25lZAkJCQlzdG9wcGVkIDogMTsKKwl1bnNpZ25lZAkJCQlkbWFfZml4dXAgOiAxOworCisJLyogVURDQ1MgPSBVREMgQ29udHJvbC9TdGF0dXMgZm9yIHRoaXMgRVAKKwkgKiBVQkNSID0gVURDIEJ5dGUgQ291bnQgUmVtYWluaW5nIChjb250ZW50cyBvZiBPVVQgZmlmbykKKwkgKiBVRERSID0gVURDIEVuZHBvaW50IERhdGEgUmVnaXN0ZXIgKHRoZSBmaWZvKQorCSAqIERSQ00gPSBETUEgUmVxdWVzdCBDaGFubmVsIE1hcAorCSAqLworCXZvbGF0aWxlIHUzMgkJCQkqcmVnX3VkY2NzOworCXZvbGF0aWxlIHUzMgkJCQkqcmVnX3ViY3I7CisJdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWRkcjsKK307CisKK3N0cnVjdCBweGEyNXhfcmVxdWVzdCB7CisJc3RydWN0IHVzYl9yZXF1ZXN0CQkJcmVxOworCXN0cnVjdCBsaXN0X2hlYWQJCQlxdWV1ZTsKK307CisKK2VudW0gZXAwX3N0YXRlIHsKKwlFUDBfSURMRSwKKwlFUDBfSU5fREFUQV9QSEFTRSwKKwlFUDBfT1VUX0RBVEFfUEhBU0UsCisJRVAwX0VORF9YRkVSLAorCUVQMF9TVEFMTCwKK307CisKKyNkZWZpbmUgRVAwX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTE2KQorI2RlZmluZSBCVUxLX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTY0KQorI2RlZmluZSBJU09fRklGT19TSVpFCSgodW5zaWduZWQpMjU2KQorI2RlZmluZSBJTlRfRklGT19TSVpFCSgodW5zaWduZWQpOCkKKworc3RydWN0IHVkY19zdGF0cyB7CisJc3RydWN0IGVwMHN0YXRzIHsKKwkJdW5zaWduZWQgbG9uZwkJb3BzOworCQl1bnNpZ25lZCBsb25nCQlieXRlczsKKwl9IHJlYWQsIHdyaXRlOworCXVuc2lnbmVkIGxvbmcJCQlpcnFzOworfTsKKworI2lmZGVmIENPTkZJR19VU0JfUFhBMjVYX1NNQUxMCisvKiB3aGVuIG1lbW9yeSdzIHRpZ2h0LCBTTUFMTCBjb25maWcgc2F2ZXMgY29kZStkYXRhLiAgKi8KKyNkZWZpbmUJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCTMKKyNlbmRpZgorCisjaWZuZGVmCVBYQV9VRENfTlVNX0VORFBPSU5UUworI2RlZmluZQlQWEFfVURDX05VTV9FTkRQT0lOVFMJMTYKKyNlbmRpZgorCitzdHJ1Y3QgcHhhMjV4X3VkYyB7CisJc3RydWN0IHVzYl9nYWRnZXQJCQlnYWRnZXQ7CisJc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyCQkqZHJpdmVyOworCisJZW51bSBlcDBfc3RhdGUJCQkJZXAwc3RhdGU7CisJc3RydWN0IHVkY19zdGF0cwkJCXN0YXRzOworCXVuc2lnbmVkCQkJCWdvdF9pcnEgOiAxLAorCQkJCQkJdmJ1cyA6IDEsCisJCQkJCQlwdWxsdXAgOiAxLAorCQkJCQkJaGFzX2NmciA6IDEsCisJCQkJCQlyZXFfcGVuZGluZyA6IDEsCisJCQkJCQlyZXFfc3RkIDogMSwKKwkJCQkJCXJlcV9jb25maWcgOiAxLAorCQkJCQkJc3VzcGVuZGVkIDogMSwKKwkJCQkJCWFjdGl2ZSA6IDE7CisKKyNkZWZpbmUgc3RhcnRfd2F0Y2hkb2coZGV2KSBtb2RfdGltZXIoJmRldi0+dGltZXIsIGppZmZpZXMgKyAoSFovMjAwKSkKKwlzdHJ1Y3QgdGltZXJfbGlzdAkJCXRpbWVyOworCisJc3RydWN0IGRldmljZQkJCQkqZGV2OworCXN0cnVjdCBjbGsJCQkJKmNsazsKKwlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoOworCXU2NAkJCQkJZG1hX21hc2s7CisJc3RydWN0IHB4YTI1eF9lcAkJCWVwIFtQWEFfVURDX05VTV9FTkRQT0lOVFNdOworCisjaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRlMKKwlzdHJ1Y3QgZGVudHJ5CQkJCSpkZWJ1Z2ZzX3VkYzsKKyNlbmRpZgorfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKKyNpbmNsdWRlIDxhc20vYXJjaC9sdWJib2NrLmg+CisvKiBsdWJib2NrIGNhbiBhbHNvIHJlcG9ydCB1c2IgY29ubmVjdC9kaXNjb25uZWN0IGlycXMgKi8KKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHB4YTI1eF91ZGMgKnRoZV9jb250cm9sbGVyOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICogRGVidWdnaW5nIHN1cHBvcnQgdmFuaXNoZXMgaW4gbm9uLWRlYnVnIGJ1aWxkcy4gIERCR19OT1JNQUwgc2hvdWxkIGJlCisgKiBtb3N0bHkgc2lsZW50IGR1cmluZyBub3JtYWwgdXNlL3Rlc3RpbmcsIHdpdGggbm8gdGltaW5nIHNpZGUtZWZmZWN0cy4KKyAqLworI2RlZmluZSBEQkdfTk9STUFMCTEJLyogZXJyb3IgcGF0aHMsIGRldmljZSBzdGF0ZSB0cmFuc2l0aW9ucyAqLworI2RlZmluZSBEQkdfVkVSQk9TRQkyCS8qIGFkZCBzb21lIHN1Y2Nlc3MgcGF0aCB0cmFjZSBpbmZvICovCisjZGVmaW5lIERCR19OT0lTWQkzCS8qIC4uLiBldmVuIG1vcmU6IHJlcXVlc3QgbGV2ZWwgKi8KKyNkZWZpbmUgREJHX1ZFUllfTk9JU1kJNAkvKiAuLi4gZXZlbiBtb3JlOiBwYWNrZXQgbGV2ZWwgKi8KKworI2RlZmluZSBETVNHKHN0dWZmLi4uKQlwcl9kZWJ1ZygidWRjOiAiIHN0dWZmKQorCisjaWZkZWYgREVCVUcKKworc3RhdGljIGludCBpc192YnVzX3ByZXNlbnQodm9pZCk7CisKK3N0YXRpYyBjb25zdCBjaGFyICpzdGF0ZV9uYW1lW10gPSB7CisJIkVQMF9JRExFIiwKKwkiRVAwX0lOX0RBVEFfUEhBU0UiLCAiRVAwX09VVF9EQVRBX1BIQVNFIiwKKwkiRVAwX0VORF9YRkVSIiwgIkVQMF9TVEFMTCIKK307CisKKyNpZmRlZiBWRVJCT1NFX0RFQlVHCisjICAgIGRlZmluZSBVRENfREVCVUcgREJHX1ZFUkJPU0UKKyNlbHNlCisjICAgIGRlZmluZSBVRENfREVCVUcgREJHX05PUk1BTAorI2VuZGlmCisKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCitkdW1wX3VkY2NyKGNvbnN0IGNoYXIgKmxhYmVsKQoreworCXUzMgl1ZGNjciA9IFVEQ0NSOworCURNU0coIiVzICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsCisJCWxhYmVsLCB1ZGNjciwKKwkJKHVkY2NyICYgVURDQ1JfUkVNKSA/ICIgcmVtIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9SU1RJUikgPyAiIHJzdGlyIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9TUk0pID8gIiBzcm0iIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1NVU0lSKSA/ICIgc3VzaXIiIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1JFU0lSKSA/ICIgcmVzaXIiIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1JTTSkgPyAiIHJzbSIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfVURBKSA/ICIgdWRhIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9VREUpID8gIiB1ZGUiIDogIiIpOworfQorCitzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZAorZHVtcF91ZGNjczAoY29uc3QgY2hhciAqbGFiZWwpCit7CisJdTMyCQl1ZGNjczAgPSBVRENDUzA7CisKKwlETVNHKCIlcyAlcyAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLAorCQlsYWJlbCwgc3RhdGVfbmFtZVt0aGVfY29udHJvbGxlci0+ZXAwc3RhdGVdLCB1ZGNjczAsCisJCSh1ZGNjczAgJiBVRENDUzBfU0EpID8gIiBzYSIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9STkUpID8gIiBybmUiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfRlNUKSA/ICIgZnN0IiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX1NTVCkgPyAiIHNzdCIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9EUldGKSA/ICIgZHdyZiIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9GVEYpID8gIiBmdGYiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfSVBSKSA/ICIgaXByIiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX09QUikgPyAiIG9wciIgOiAiIik7Cit9CisKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCitkdW1wX3N0YXRlKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJdTMyCQl0bXA7CisJdW5zaWduZWQJaTsKKworCURNU0coIiVzICVzLCB1aWNyICUwMlguJTAyWCwgdXNpciAlMDJYLiUwMngsIHVmbnIgJTAyWC4lMDJYXG4iLAorCQlpc192YnVzX3ByZXNlbnQoKSA/ICJob3N0ICIgOiAiZGlzY29ubmVjdGVkIiwKKwkJc3RhdGVfbmFtZVtkZXYtPmVwMHN0YXRlXSwKKwkJVUlDUjEsIFVJQ1IwLCBVU0lSMSwgVVNJUjAsIFVGTlJILCBVRk5STCk7CisJZHVtcF91ZGNjcigidWRjY3IiKTsKKwlpZiAoZGV2LT5oYXNfY2ZyKSB7CisJCXRtcCA9IFVEQ0NGUjsKKwkJRE1TRygidWRjY2ZyICUwMlggPSVzJXNcbiIsIHRtcCwKKwkJCSh0bXAgJiBVRENDRlJfQVJFTikgPyAiIGFyZW4iIDogIiIsCisJCQkodG1wICYgVURDQ0ZSX0FDTSkgPyAiIGFjbSIgOiAiIik7CisJfQorCisJaWYgKCFkZXYtPmRyaXZlcikgeworCQlETVNHKCJubyBnYWRnZXQgZHJpdmVyIGJvdW5kXG4iKTsKKwkJcmV0dXJuOworCX0gZWxzZQorCQlETVNHKCJlcDAgZHJpdmVyICclcydcbiIsIGRldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSk7CisKKwlpZiAoIWlzX3ZidXNfcHJlc2VudCgpKQorCQlyZXR1cm47CisKKwlkdW1wX3VkY2NzMCAoInVkY2NzMCIpOworCURNU0coImVwMCBJTiAlbHUvJWx1LCBPVVQgJWx1LyVsdVxuIiwKKwkJZGV2LT5zdGF0cy53cml0ZS5ieXRlcywgZGV2LT5zdGF0cy53cml0ZS5vcHMsCisJCWRldi0+c3RhdHMucmVhZC5ieXRlcywgZGV2LT5zdGF0cy5yZWFkLm9wcyk7CisKKwlmb3IgKGkgPSAxOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKKwkJaWYgKGRldi0+ZXAgW2ldLmRlc2MgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCQlETVNHICgidWRjY3MlZCA9ICUwMnhcbiIsIGksICpkZXYtPmVwLT5yZWdfdWRjY3MpOworCX0KK30KKworI2Vsc2UKKworI2RlZmluZQlkdW1wX3VkY2NyKHgpCWRve313aGlsZSgwKQorI2RlZmluZQlkdW1wX3VkY2NzMCh4KQlkb3t9d2hpbGUoMCkKKyNkZWZpbmUJZHVtcF9zdGF0ZSh4KQlkb3t9d2hpbGUoMCkKKworI2RlZmluZSBVRENfREVCVUcgKCh1bnNpZ25lZCkwKQorCisjZW5kaWYKKworI2RlZmluZSBEQkcobHZsLCBzdHVmZi4uLikgZG97aWYgKChsdmwpIDw9IFVEQ19ERUJVRykgRE1TRyhzdHVmZik7fXdoaWxlKDApCisKKyNkZWZpbmUgRVJSKHN0dWZmLi4uKQkJcHJfZXJyKCJ1ZGM6ICIgc3R1ZmYpCisjZGVmaW5lIFdBUk4oc3R1ZmYuLi4pCQlwcl93YXJuaW5nKCJ1ZGM6ICIgc3R1ZmYpCisjZGVmaW5lIElORk8oc3R1ZmYuLi4pCQlwcl9pbmZvKCJ1ZGM6ICIgc3R1ZmYpCisKKworI2VuZGlmIC8qIF9fTElOVVhfVVNCX0dBREdFVF9QWEEyNVhfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmMKaW5kZXggZTAyYmZkNC4uOWMwZTgyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL2NoOS5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9nYWRnZXQuaD4KLQorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+IC8qIEZJWE1FOiBmb3IgUFNTUiAqLwogI2luY2x1ZGUgPGFzbS9hcmNoL3VkYy5oPgogCiAjaW5jbHVkZSAicHhhMjd4X3VkYy5oIgpAQCAtMjM2MCwxOCArMjM2MCwxOSBAQAogCSAqIFNvZnR3YXJlIG11c3QgY29uZmlndXJlIHRoZSBVU0IgT1RHIHBhZCwgVURDLCBhbmQgVUhDCiAJICogdG8gdGhlIHN0YXRlIHRoZXkgd2VyZSBpbiBiZWZvcmUgZW50ZXJpbmcgc2xlZXAgbW9kZS4KIAkgKi8KLQlQU1NSIHw9IFBTU1JfT1RHUEg7CisJaWYgKGNwdV9pc19weGEyN3goKSkKKwkJUFNTUiB8PSBQU1NSX09UR1BIOwogCiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAogLyogd29yayB3aXRoIGhvdHBsdWcgYW5kIGNvbGRwbHVnICovCi1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOnB4YTJ4eC11ZGMiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06cHhhMjd4LXVkYyIpOwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB1ZGNfZHJpdmVyID0gewogCS5kcml2ZXIJCT0gewotCQkubmFtZQk9ICJweGEyeHgtdWRjIiwKKwkJLm5hbWUJPSAicHhhMjd4LXVkYyIsCiAJCS5vd25lcgk9IFRISVNfTU9EVUxFLAogCX0sCiAJLnJlbW92ZQkJPSBfX2V4aXRfcChweGFfdWRjX3JlbW92ZSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5oIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuaAppbmRleCA5NzQ1M2RiLi4xZDFiNzkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5oCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmgKQEAgLTQ4NCwxMiArNDg0LDQgQEAKICNkZWZpbmUgZXBfd2FybihlcCwgZm10LCBhcmcuLi4pIFwKIAlkZXZfd2FybihlcC0+ZGV2LT5kZXYsICIlczolczoiIGZtdCwgRVBOQU1FKGVwKSwgX19mdW5jX18sICMjIGFyZykKIAotLyoKLSAqIENhbm5vdCBpbmNsdWRlIHB4YS1yZWdzLmgsIGFzIHJlZ2lzdGVyIG5hbWVzIGFyZSBzaW1pbGFyLgotICogU28gUFNTUiBpcyByZWRlZmluZWQgaGVyZS4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIFVEQyByZWdpc3RlcnMgd2lsbAotICogYmUgZ29uZSBmcm9tIHB4YS1yZWdzLmguCi0gKi8KLSNkZWZpbmUgUFNTUgkJX19SRUcoMHg0MEYwMDAwNCkJLyogUG93ZXIgTWFuYWdlciBTbGVlcCBTdGF0dXMgKi8KLSNkZWZpbmUgUFNTUl9PVEdQSAkoMSA8PCA2KQkJLyogT1RHIFBlcmlwaGVyYWwgSG9sZCAqLwotCiAjZW5kaWYgLyogX19MSU5VWF9VU0JfR0FER0VUX1BYQTI3WF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhmNjk5Yi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjM4MyArMCwwIEBACi0vKgotICogbGludXgvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuYwotICogSW50ZWwgUFhBMjV4IGFuZCBJWFA0eHggb24tY2hpcCBmdWxsIHNwZWVkIFVTQiBkZXZpY2UgY29udHJvbGxlcnMKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDIgSW50cmluc3ljLCBJbmMuIChGcmFuayBCZWNrZXIpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgUm9iZXJ0IFNjaHdlYmVsLCBQZW5ndXRyb25peAotICogQ29weXJpZ2h0IChDKSAyMDAzIEJlbmVkaWt0IFNwcmFuZ2VyLCBQZW5ndXRyb25peAotICogQ29weXJpZ2h0IChDKSAyMDAzIERhdmlkIEJyb3duZWxsCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgSm9zaHVhIFdpc2UKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0gKgotICovCi0KLS8qICNkZWZpbmUgVkVSQk9TRV9ERUJVRyAqLwotCi0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvaXJxLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Ci0KLSNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+Ci0jaW5jbHVkZSA8YXNtL2RtYS5oPgotI2luY2x1ZGUgPGFzbS9ncGlvLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+Ci0jaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotCi0jaW5jbHVkZSA8bGludXgvdXNiL2NoOS5oPgotI2luY2x1ZGUgPGxpbnV4L3VzYi9nYWRnZXQuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL3VkY19weGEyeHguaD4KLQotCi0vKgotICogVGhpcyBkcml2ZXIgaGFuZGxlcyB0aGUgVVNCIERldmljZSBDb250cm9sbGVyIChVREMpIGluIEludGVsJ3MgUFhBIDI1eAotICogc2VyaWVzIHByb2Nlc3NvcnMuICBUaGUgVURDIGZvciB0aGUgSVhQIDR4eCBzZXJpZXMgaXMgdmVyeSBzaW1pbGFyLgotICogVGhlcmUgYXJlIGZpZnRlZW4gZW5kcG9pbnRzLCBpbiBhZGRpdGlvbiB0byBlcDAuCi0gKgotICogU3VjaCBjb250cm9sbGVyIGRyaXZlcnMgd29yayB3aXRoIGEgZ2FkZ2V0IGRyaXZlci4gIFRoZSBnYWRnZXQgZHJpdmVyCi0gKiByZXR1cm5zIGRlc2NyaXB0b3JzLCBpbXBsZW1lbnRzIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEgcHJvdG9jb2xzIHVzZWQKLSAqIGJ5IHRoZSBob3N0IHRvIGludGVyYWN0IHdpdGggdGhpcyBkZXZpY2UsIGFuZCBhbGxvY2F0ZXMgZW5kcG9pbnRzIHRvCi0gKiB0aGUgZGlmZmVyZW50IHByb3RvY29sIGludGVyZmFjZXMuICBUaGUgY29udHJvbGxlciBkcml2ZXIgdmlydHVhbGl6ZXMKLSAqIHVzYiBoYXJkd2FyZSBzbyB0aGF0IHRoZSBnYWRnZXQgZHJpdmVycyB3aWxsIGJlIG1vcmUgcG9ydGFibGUuCi0gKgotICogVGhpcyBVREMgaGFyZHdhcmUgd2FudHMgdG8gaW1wbGVtZW50IGEgYml0IHRvbyBtdWNoIFVTQiBwcm90b2NvbCwgc28KLSAqIGl0IGNvbnN0cmFpbnMgdGhlIHNvcnRzIG9mIFVTQiBjb25maWd1cmF0aW9uIGNoYW5nZSBldmVudHMgdGhhdCB3b3JrLgotICogVGhlIGVycmF0YSBmb3IgdGhlc2UgY2hpcHMgYXJlIG1pc2xlYWRpbmc7IHNvbWUgImZpeGVkIiBidWdzIGZyb20KLSAqIHB4YTI1MCBhMC9hMSBiMC9iMS9iMiBzdXJlIGFjdCBsaWtlIHRoZXkncmUgc3RpbGwgdGhlcmUuCi0gKgotICogTm90ZSB0aGF0IHRoZSBVREMgaGFyZHdhcmUgc3VwcG9ydHMgRE1BIChleGNlcHQgb24gSVhQKSBidXQgdGhhdCdzCi0gKiBub3QgdXNlZCBoZXJlLiAgSU4tRE1BICh0byBob3N0KSBpcyBzaW1wbGUgZW5vdWdoLCB3aGVuIHRoZSBkYXRhIGlzCi0gKiBzdWl0YWJseSBhbGlnbmVkICgxNiBieXRlcykgLi4uIHRoZSBuZXR3b3JrIHN0YWNrIGRvZXNuJ3QgZG8gdGhhdCwKLSAqIG90aGVyIHNvZnR3YXJlIGNhbi4gIE9VVC1ETUEgaXMgYnVnZ3kgaW4gbW9zdCBjaGlwIHZlcnNpb25zLCBhcyB3ZWxsCi0gKiBhcyBwb29ybHkgZGVzaWduZWQgKGRhdGEgdG9nZ2xlIG5vdCBhdXRvbWF0aWMpLiAgU28gdGhpcyBkcml2ZXIgd29uJ3QKLSAqIGJvdGhlciB1c2luZyBETUEuICAoTW9zdGx5LXdvcmtpbmcgSU4tRE1BIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBpbgotICoga2VybmVscyBiZWZvcmUgMi42LjIzLCBidXQgd2FzIG5ldmVyIGVuYWJsZWQgb3Igd2VsbCB0ZXN0ZWQuKQotICovCi0KLSNkZWZpbmUJRFJJVkVSX1ZFUlNJT04JIjMwLUp1bmUtMjAwNyIKLSNkZWZpbmUJRFJJVkVSX0RFU0MJIlBYQSAyNXggVVNCIERldmljZSBDb250cm9sbGVyIGRyaXZlciIKLQotCi1zdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9ICJweGEyeHhfdWRjIjsKLQotc3RhdGljIGNvbnN0IGNoYXIgZXAwbmFtZSBbXSA9ICJlcDAiOwotCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9JWFA0WFgKLQotLyogY3B1LXNwZWNpZmljIHJlZ2lzdGVyIGFkZHJlc3NlcyBhcmUgY29tcGlsZWQgaW4gdG8gdGhpcyBjb2RlICovCi0jaWZkZWYgQ09ORklHX0FSQ0hfUFhBCi0jZXJyb3IgIkNhbid0IGNvbmZpZ3VyZSBib3RoIElYUCBhbmQgUFhBIgotI2VuZGlmCi0KLS8qIElYUCBkb2Vzbid0IHlldCBzdXBwb3J0IDxsaW51eC9jbGsuaD4gKi8KLSNkZWZpbmUgY2xrX2dldChkZXYsbmFtZSkJTlVMTAotI2RlZmluZSBjbGtfZW5hYmxlKGNsaykJCWRvIHsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xrX2Rpc2FibGUoY2xrKQlkbyB7IH0gd2hpbGUgKDApCi0jZGVmaW5lIGNsa19wdXQoY2xrKQkJZG8geyB9IHdoaWxlICgwKQotCi0jZW5kaWYKLQotI2luY2x1ZGUgInB4YTJ4eF91ZGMuaCIKLQotCi0jaWZkZWYJQ09ORklHX1VTQl9QWEEyWFhfU01BTEwKLSNkZWZpbmUgU0laRV9TVFIJIiAoc21hbGwpIgotI2Vsc2UKLSNkZWZpbmUgU0laRV9TVFIJIiIKLSNlbmRpZgotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCWVuZHBvaW50IHJlbGF0ZWQgcGFydHMgb2YgdGhlIGFwaSB0byB0aGUgdXNiIGNvbnRyb2xsZXIgaGFyZHdhcmUsCi0gKgl1c2VkIGJ5IGdhZGdldCBkcml2ZXI7IGFuZCB0aGUgaW5uZXIgdGFsa2VyLXRvLWhhcmR3YXJlIGNvcmUuCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi1zdGF0aWMgdm9pZCBweGEyeHhfZXBfZmlmb19mbHVzaCAoc3RydWN0IHVzYl9lcCAqZXApOwotc3RhdGljIHZvaWQgbnVrZSAoc3RydWN0IHB4YTJ4eF9lcCAqLCBpbnQgc3RhdHVzKTsKLQotLyogb25lIEdQSU8gc2hvdWxkIGJlIHVzZWQgdG8gZGV0ZWN0IFZCVVMgZnJvbSB0aGUgaG9zdCAqLwotc3RhdGljIGludCBpc192YnVzX3ByZXNlbnQodm9pZCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoID0gdGhlX2NvbnRyb2xsZXItPm1hY2g7Ci0KLQlpZiAobWFjaC0+Z3Bpb192YnVzKSB7Ci0JCWludCB2YWx1ZSA9IGdwaW9fZ2V0X3ZhbHVlKG1hY2gtPmdwaW9fdmJ1cyk7Ci0JCXJldHVybiBtYWNoLT5ncGlvX3ZidXNfaW52ZXJ0ZWQgPyAhdmFsdWUgOiB2YWx1ZTsKLQl9Ci0JaWYgKG1hY2gtPnVkY19pc19jb25uZWN0ZWQpCi0JCXJldHVybiBtYWNoLT51ZGNfaXNfY29ubmVjdGVkKCk7Ci0JcmV0dXJuIDE7Ci19Ci0KLS8qIG9uZSBHUElPIHNob3VsZCBjb250cm9sIGEgRCsgcHVsbHVwLCBzbyBob3N0IHNlZXMgdGhpcyBkZXZpY2UgKG9yIG5vdCkgKi8KLXN0YXRpYyB2b2lkIHB1bGx1cF9vZmYodm9pZCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoID0gdGhlX2NvbnRyb2xsZXItPm1hY2g7Ci0KLQlpZiAobWFjaC0+Z3Bpb19wdWxsdXApCi0JCWdwaW9fc2V0X3ZhbHVlKG1hY2gtPmdwaW9fcHVsbHVwLCAwKTsKLQllbHNlIGlmIChtYWNoLT51ZGNfY29tbWFuZCkKLQkJbWFjaC0+dWRjX2NvbW1hbmQoUFhBMlhYX1VEQ19DTURfRElTQ09OTkVDVCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHB1bGx1cF9vbih2b2lkKQotewotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKLQotCWlmIChtYWNoLT5ncGlvX3B1bGx1cCkKLQkJZ3Bpb19zZXRfdmFsdWUobWFjaC0+Z3Bpb19wdWxsdXAsIDEpOwotCWVsc2UgaWYgKG1hY2gtPnVkY19jb21tYW5kKQotCQltYWNoLT51ZGNfY29tbWFuZChQWEEyWFhfVURDX0NNRF9DT05ORUNUKTsKLX0KLQotc3RhdGljIHZvaWQgcGlvX2lycV9lbmFibGUoaW50IGJFbmRwb2ludEFkZHJlc3MpCi17Ci0gICAgICAgIGJFbmRwb2ludEFkZHJlc3MgJj0gMHhmOwotICAgICAgICBpZiAoYkVuZHBvaW50QWRkcmVzcyA8IDgpCi0gICAgICAgICAgICAgICAgVUlDUjAgJj0gfigxIDw8IGJFbmRwb2ludEFkZHJlc3MpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBiRW5kcG9pbnRBZGRyZXNzIC09IDg7Ci0gICAgICAgICAgICAgICAgVUlDUjEgJj0gfigxIDw8IGJFbmRwb2ludEFkZHJlc3MpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcGlvX2lycV9kaXNhYmxlKGludCBiRW5kcG9pbnRBZGRyZXNzKQotewotICAgICAgICBiRW5kcG9pbnRBZGRyZXNzICY9IDB4ZjsKLSAgICAgICAgaWYgKGJFbmRwb2ludEFkZHJlc3MgPCA4KQotICAgICAgICAgICAgICAgIFVJQ1IwIHw9IDEgPDwgYkVuZHBvaW50QWRkcmVzczsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAtPSA4OwotICAgICAgICAgICAgICAgIFVJQ1IxIHw9IDEgPDwgYkVuZHBvaW50QWRkcmVzczsKLSAgICAgICAgfQotfQotCi0vKiBUaGUgVURDQ1IgcmVnIGNvbnRhaW5zIG1hc2sgYW5kIGludGVycnVwdCBzdGF0dXMgYml0cywKLSAqIHNvIHVzaW5nICd8PScgaXNuJ3Qgc2FmZSBhcyBpdCBtYXkgYWNrIGFuIGludGVycnVwdC4KLSAqLwotI2RlZmluZSBVRENDUl9NQVNLX0JJVFMgICAgICAgICAoVURDQ1JfUkVNIHwgVURDQ1JfU1JNIHwgVURDQ1JfVURFKQotCi1zdGF0aWMgaW5saW5lIHZvaWQgdWRjX3NldF9tYXNrX1VEQ0NSKGludCBtYXNrKQotewotCVVEQ0NSID0gKFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTKSB8IChtYXNrICYgVURDQ1JfTUFTS19CSVRTKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVkY19jbGVhcl9tYXNrX1VEQ0NSKGludCBtYXNrKQotewotCVVEQ0NSID0gKFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTKSAmIH4obWFzayAmIFVEQ0NSX01BU0tfQklUUyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfYWNrX2ludF9VRENDUihpbnQgbWFzaykKLXsKLQkvKiB1ZGNjciBjb250YWlucyB0aGUgYml0cyB3ZSBkb250IHdhbnQgdG8gY2hhbmdlICovCi0JX191MzIgdWRjY3IgPSBVRENDUiAmIFVEQ0NSX01BU0tfQklUUzsKLQotCVVEQ0NSID0gdWRjY3IgfCAobWFzayAmIH5VRENDUl9NQVNLX0JJVFMpOwotfQotCi0vKgotICogZW5kcG9pbnQgZW5hYmxlL2Rpc2FibGUKLSAqCi0gKiB3ZSBuZWVkIHRvIHZlcmlmeSB0aGUgZGVzY3JpcHRvcnMgdXNlZCB0byBlbmFibGUgZW5kcG9pbnRzLiAgc2luY2UgcHhhMnh4Ci0gKiBlbmRwb2ludCBjb25maWd1cmF0aW9ucyBhcmUgZml4ZWQsIGFuZCBhcmUgcHJldHR5IG11Y2ggYWx3YXlzIGVuYWJsZWQsCi0gKiB0aGVyZSdzIG5vdCBhIGxvdCB0byBtYW5hZ2UgaGVyZS4KLSAqCi0gKiBiZWNhdXNlIHB4YTJ4eCBjYW4ndCBzZWxlY3RpdmVseSBpbml0aWFsaXplIGJ1bGsgKG9yIGludGVycnVwdCkgZW5kcG9pbnRzLAotICogKHJlc2V0dGluZyBlbmRwb2ludCBoYWx0IGFuZCB0b2dnbGUpLCBTRVRfSU5URVJGQUNFIGlzIHVudXNhYmxlIGV4Y2VwdAotICogZm9yIGEgc2luZ2xlIGludGVyZmFjZSAod2l0aCBvbmx5IHRoZSBkZWZhdWx0IGFsdHNldHRpbmcpIGFuZCBmb3IgZ2FkZ2V0Ci0gKiBkcml2ZXJzIHRoYXQgZG9uJ3QgaGFsdCBlbmRwb2ludHMgKG5vdCByZXNldCBieSBzZXRfaW50ZXJmYWNlKS4gIHRoYXQgYWxzbwotICogbWVhbnMgdGhhdCBpZiB5b3UgdXNlIElTTywgeW91IG11c3QgdmlvbGF0ZSB0aGUgVVNCIHNwZWMgcnVsZSB0aGF0IGFsbAotICogaXNvIGVuZHBvaW50cyBtdXN0IGJlIGluIG5vbi1kZWZhdWx0IGFsdHNldHRpbmdzLgotICovCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9lbmFibGUgKHN0cnVjdCB1c2JfZXAgKl9lcCwKLQkJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yICpkZXNjKQotewotCXN0cnVjdCBweGEyeHhfZXAgICAgICAgICplcDsKLQlzdHJ1Y3QgcHhhMnh4X3VkYyAgICAgICAqZGV2OwotCi0JZXAgPSBjb250YWluZXJfb2YgKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICghX2VwIHx8ICFkZXNjIHx8IGVwLT5kZXNjIHx8IF9lcC0+bmFtZSA9PSBlcDBuYW1lCi0JCQl8fCBkZXNjLT5iRGVzY3JpcHRvclR5cGUgIT0gVVNCX0RUX0VORFBPSU5UCi0JCQl8fCBlcC0+YkVuZHBvaW50QWRkcmVzcyAhPSBkZXNjLT5iRW5kcG9pbnRBZGRyZXNzCi0JCQl8fCBlcC0+Zmlmb19zaXplIDwgbGUxNl90b19jcHUKLQkJCQkJCShkZXNjLT53TWF4UGFja2V0U2l6ZSkpIHsKLQkJRE1TRygiJXMsIGJhZCBlcCBvciBkZXNjcmlwdG9yXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIHhmZXIgdHlwZXMgbXVzdCBtYXRjaCwgZXhjZXB0IHRoYXQgaW50ZXJydXB0IH49IGJ1bGsgKi8KLQlpZiAoZXAtPmJtQXR0cmlidXRlcyAhPSBkZXNjLT5ibUF0dHJpYnV0ZXMKLQkJCSYmIGVwLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSwotCQkJJiYgZGVzYy0+Ym1BdHRyaWJ1dGVzICE9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCkgewotCQlETVNHKCIlcywgJXMgdHlwZSBtaXNtYXRjaFxuIiwgX19mdW5jX18sIF9lcC0+bmFtZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIGhhcmR3YXJlIF9jb3VsZF8gZG8gc21hbGxlciwgYnV0IGRyaXZlciBkb2Vzbid0ICovCi0JaWYgKChkZXNjLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSwotCQkJCSYmIGxlMTZfdG9fY3B1IChkZXNjLT53TWF4UGFja2V0U2l6ZSkKLQkJCQkJCSE9IEJVTEtfRklGT19TSVpFKQotCQkJfHwgIWRlc2MtPndNYXhQYWNrZXRTaXplKSB7Ci0JCURNU0coIiVzLCBiYWQgJXMgbWF4cGFja2V0XG4iLCBfX2Z1bmNfXywgX2VwLT5uYW1lKTsKLQkJcmV0dXJuIC1FUkFOR0U7Ci0JfQotCi0JZGV2ID0gZXAtPmRldjsKLQlpZiAoIWRldi0+ZHJpdmVyIHx8IGRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOKSB7Ci0JCURNU0coIiVzLCBib2d1cyBkZXZpY2Ugc3RhdGVcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FU0hVVERPV047Ci0JfQotCi0JZXAtPmRlc2MgPSBkZXNjOwotCWVwLT5zdG9wcGVkID0gMDsKLQllcC0+cGlvX2lycXMgPSAwOwotCWVwLT5lcC5tYXhwYWNrZXQgPSBsZTE2X3RvX2NwdSAoZGVzYy0+d01heFBhY2tldFNpemUpOwotCi0JLyogZmx1c2ggZmlmbyAobW9zdGx5IGZvciBPVVQgYnVmZmVycykgKi8KLQlweGEyeHhfZXBfZmlmb19mbHVzaCAoX2VwKTsKLQotCS8qIC4uLiByZXNldCBoYWx0IHN0YXRlIHRvbywgaWYgd2UgY291bGQgLi4uICovCi0KLQlEQkcoREJHX1ZFUkJPU0UsICJlbmFibGVkICVzXG4iLCBfZXAtPm5hbWUpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9kaXNhYmxlIChzdHJ1Y3QgdXNiX2VwICpfZXApCi17Ci0Jc3RydWN0IHB4YTJ4eF9lcAkqZXA7Ci0JdW5zaWduZWQgbG9uZwkJZmxhZ3M7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZiAoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXAgfHwgIWVwLT5kZXNjKSB7Ci0JCURNU0coIiVzLCAlcyBub3QgZW5hYmxlZFxuIiwgX19mdW5jX18sCi0JCQlfZXAgPyBlcC0+ZXAubmFtZSA6IE5VTEwpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JbnVrZSAoZXAsIC1FU0hVVERPV04pOwotCi0JLyogZmx1c2ggZmlmbyAobW9zdGx5IGZvciBJTiBidWZmZXJzKSAqLwotCXB4YTJ4eF9lcF9maWZvX2ZsdXNoIChfZXApOwotCi0JZXAtPmRlc2MgPSBOVUxMOwotCWVwLT5zdG9wcGVkID0gMTsKLQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlEQkcoREJHX1ZFUkJPU0UsICIlcyBkaXNhYmxlZFxuIiwgX2VwLT5uYW1lKTsKLQlyZXR1cm4gMDsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyogZm9yIHRoZSBweGEyeHgsIHRoZXNlIGNhbiBqdXN0IHdyYXAga21hbGxvYy9rZnJlZS4gIGdhZGdldCBkcml2ZXJzCi0gKiBtdXN0IHN0aWxsIHBhc3MgY29ycmVjdGx5IGluaXRpYWxpemVkIGVuZHBvaW50cywgc2luY2Ugb3RoZXIgY29udHJvbGxlcgotICogZHJpdmVycyBtYXkgY2FyZSBhYm91dCBob3cgaXQncyBjdXJyZW50bHkgc2V0IHVwIChkbWEgaXNzdWVzIGV0YykuCi0gKi8KLQotLyoKLSAqCXB4YTJ4eF9lcF9hbGxvY19yZXF1ZXN0IC0gYWxsb2NhdGUgYSByZXF1ZXN0IGRhdGEgc3RydWN0dXJlCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgdXNiX3JlcXVlc3QgKgotcHhhMnh4X2VwX2FsbG9jX3JlcXVlc3QgKHN0cnVjdCB1c2JfZXAgKl9lcCwgZ2ZwX3QgZ2ZwX2ZsYWdzKQotewotCXN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxOwotCi0JcmVxID0ga3phbGxvYyhzaXplb2YoKnJlcSksIGdmcF9mbGFncyk7Ci0JaWYgKCFyZXEpCi0JCXJldHVybiBOVUxMOwotCi0JSU5JVF9MSVNUX0hFQUQgKCZyZXEtPnF1ZXVlKTsKLQlyZXR1cm4gJnJlcS0+cmVxOwotfQotCi0KLS8qCi0gKglweGEyeHhfZXBfZnJlZV9yZXF1ZXN0IC0gZGVhbGxvY2F0ZSBhIHJlcXVlc3QgZGF0YSBzdHJ1Y3R1cmUKLSAqLwotc3RhdGljIHZvaWQKLXB4YTJ4eF9lcF9mcmVlX3JlcXVlc3QgKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQotewotCXN0cnVjdCBweGEyeHhfcmVxdWVzdAkqcmVxOwotCi0JcmVxID0gY29udGFpbmVyX29mIChfcmVxLCBzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QsIHJlcSk7Ci0JV0FSTl9PTiAoIWxpc3RfZW1wdHkgKCZyZXEtPnF1ZXVlKSk7Ci0Ja2ZyZWUocmVxKTsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyoKLSAqCWRvbmUgLSByZXRpcmUgYSByZXF1ZXN0OyBjYWxsZXIgYmxvY2tlZCBpcnFzCi0gKi8KLXN0YXRpYyB2b2lkIGRvbmUoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxLCBpbnQgc3RhdHVzKQotewotCXVuc2lnbmVkCQlzdG9wcGVkID0gZXAtPnN0b3BwZWQ7Ci0KLQlsaXN0X2RlbF9pbml0KCZyZXEtPnF1ZXVlKTsKLQotCWlmIChsaWtlbHkgKHJlcS0+cmVxLnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpKQotCQlyZXEtPnJlcS5zdGF0dXMgPSBzdGF0dXM7Ci0JZWxzZQotCQlzdGF0dXMgPSByZXEtPnJlcS5zdGF0dXM7Ci0KLQlpZiAoc3RhdHVzICYmIHN0YXR1cyAhPSAtRVNIVVRET1dOKQotCQlEQkcoREJHX1ZFUkJPU0UsICJjb21wbGV0ZSAlcyByZXEgJXAgc3RhdCAlZCBsZW4gJXUvJXVcbiIsCi0JCQllcC0+ZXAubmFtZSwgJnJlcS0+cmVxLCBzdGF0dXMsCi0JCQlyZXEtPnJlcS5hY3R1YWwsIHJlcS0+cmVxLmxlbmd0aCk7Ci0KLQkvKiBkb24ndCBtb2RpZnkgcXVldWUgaGVhZHMgZHVyaW5nIGNvbXBsZXRpb24gY2FsbGJhY2sgKi8KLQllcC0+c3RvcHBlZCA9IDE7Ci0JcmVxLT5yZXEuY29tcGxldGUoJmVwLT5lcCwgJnJlcS0+cmVxKTsKLQllcC0+c3RvcHBlZCA9IHN0b3BwZWQ7Ci19Ci0KLQotc3RhdGljIGlubGluZSB2b2lkIGVwMF9pZGxlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCWRldi0+ZXAwc3RhdGUgPSBFUDBfSURMRTsKLX0KLQotc3RhdGljIGludAotd3JpdGVfcGFja2V0KHZvbGF0aWxlIHUzMiAqdWRkciwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEsIHVuc2lnbmVkIG1heCkKLXsKLQl1OAkJKmJ1ZjsKLQl1bnNpZ25lZAlsZW5ndGgsIGNvdW50OwotCi0JYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOwotCXByZWZldGNoKGJ1Zik7Ci0KLQkvKiBob3cgYmlnIHdpbGwgdGhpcyBwYWNrZXQgYmU/ICovCi0JbGVuZ3RoID0gbWluKHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgbWF4KTsKLQlyZXEtPnJlcS5hY3R1YWwgKz0gbGVuZ3RoOwotCi0JY291bnQgPSBsZW5ndGg7Ci0Jd2hpbGUgKGxpa2VseShjb3VudC0tKSkKLQkJKnVkZHIgPSAqYnVmKys7Ci0KLQlyZXR1cm4gbGVuZ3RoOwotfQotCi0vKgotICogd3JpdGUgdG8gYW4gSU4gZW5kcG9pbnQgZmlmbywgYXMgbWFueSBwYWNrZXRzIGFzIHBvc3NpYmxlLgotICogaXJxcyB3aWxsIHVzZSB0aGlzIHRvIHdyaXRlIHRoZSByZXN0IGxhdGVyLgotICogY2FsbGVyIGd1YXJhbnRlZXMgYXQgbGVhc3Qgb25lIHBhY2tldCBidWZmZXIgaXMgcmVhZHkgKG9yIGEgemxwKS4KLSAqLwotc3RhdGljIGludAotd3JpdGVfZmlmbyAoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxKQotewotCXVuc2lnbmVkCQltYXg7Ci0KLQltYXggPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy0+d01heFBhY2tldFNpemUpOwotCWRvIHsKLQkJdW5zaWduZWQJY291bnQ7Ci0JCWludAkJaXNfbGFzdCwgaXNfc2hvcnQ7Ci0KLQkJY291bnQgPSB3cml0ZV9wYWNrZXQoZXAtPnJlZ191ZGRyLCByZXEsIG1heCk7Ci0KLQkJLyogbGFzdCBwYWNrZXQgaXMgdXN1YWxseSBzaG9ydCAob3IgYSB6bHApICovCi0JCWlmICh1bmxpa2VseSAoY291bnQgIT0gbWF4KSkKLQkJCWlzX2xhc3QgPSBpc19zaG9ydCA9IDE7Ci0JCWVsc2UgewotCQkJaWYgKGxpa2VseShyZXEtPnJlcS5sZW5ndGggIT0gcmVxLT5yZXEuYWN0dWFsKQotCQkJCQl8fCByZXEtPnJlcS56ZXJvKQotCQkJCWlzX2xhc3QgPSAwOwotCQkJZWxzZQotCQkJCWlzX2xhc3QgPSAxOwotCQkJLyogaW50ZXJydXB0L2lzbyBtYXhwYWNrZXQgbWF5IG5vdCBmaWxsIHRoZSBmaWZvICovCi0JCQlpc19zaG9ydCA9IHVubGlrZWx5IChtYXggPCBlcC0+Zmlmb19zaXplKTsKLQkJfQotCi0JCURCRyhEQkdfVkVSWV9OT0lTWSwgIndyb3RlICVzICVkIGJ5dGVzJXMlcyAlZCBsZWZ0ICVwXG4iLAotCQkJZXAtPmVwLm5hbWUsIGNvdW50LAotCQkJaXNfbGFzdCA/ICIvTCIgOiAiIiwgaXNfc2hvcnQgPyAiL1MiIDogIiIsCi0JCQlyZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWwsIHJlcSk7Ci0KLQkJLyogbGV0IGxvb3NlIHRoYXQgcGFja2V0LiBtYXliZSB0cnkgd3JpdGluZyBhbm90aGVyIG9uZSwKLQkJICogZG91YmxlIGJ1ZmZlcmluZyBtaWdodCB3b3JrLiAgVFNQLCBUUEMsIGFuZCBURlMKLQkJICogYml0IHZhbHVlcyBhcmUgdGhlIHNhbWUgZm9yIGFsbCBub3JtYWwgSU4gZW5kcG9pbnRzLgotCQkgKi8KLQkJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UUEM7Ci0JCWlmIChpc19zaG9ydCkKLQkJCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfVFNQOwotCi0JCS8qIHJlcXVlc3RzIGNvbXBsZXRlIHdoZW4gYWxsIElOIGRhdGEgaXMgaW4gdGhlIEZJRk8gKi8KLQkJaWYgKGlzX2xhc3QpIHsKLQkJCWRvbmUgKGVwLCByZXEsIDApOwotCQkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCi0JCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCi0JCS8vIFRPRE8gZXhwZXJpbWVudDogaG93IHJvYnVzdCBjYW4gZmlmbyBtb2RlIHR3ZWFraW5nIGJlPwotCQkvLyBkb3VibGUgYnVmZmVyaW5nIGlzIG9mZiBpbiB0aGUgZGVmYXVsdCBmaWZvIG1vZGUsIHdoaWNoCi0JCS8vIHByZXZlbnRzIFRGUyBmcm9tIGJlaW5nIHNldCBoZXJlLgotCi0JfSB3aGlsZSAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpOwotCXJldHVybiAwOwotfQotCi0vKiBjYWxsZXIgYXNzZXJ0cyByZXEtPnBlbmRpbmcgKGVwMCBpcnEgc3RhdHVzIG55ZXQgY2xlYXJlZCk7IHN0YXJ0cwotICogZXAwIGRhdGEgc3RhZ2UuICB0aGVzZSBjaGlwcyB3YW50IHZlcnkgc2ltcGxlIHN0YXRlIHRyYW5zaXRpb25zLgotICovCi1zdGF0aWMgaW5saW5lCi12b2lkIGVwMHN0YXJ0KHN0cnVjdCBweGEyeHhfdWRjICpkZXYsIHUzMiBmbGFncywgY29uc3QgY2hhciAqdGFnKQotewotCVVEQ0NTMCA9IGZsYWdzfFVEQ0NTMF9TQXxVRENDUzBfT1BSOwotCVVTSVIwID0gVVNJUjBfSVIwOwotCWRldi0+cmVxX3BlbmRpbmcgPSAwOwotCURCRyhEQkdfVkVSWV9OT0lTWSwgIiVzICVzLCAlMDJ4LyUwMnhcbiIsCi0JCV9fZnVuY19fLCB0YWcsIFVEQ0NTMCwgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50Ci13cml0ZV9lcDBfZmlmbyAoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxKQotewotCXVuc2lnbmVkCWNvdW50OwotCWludAkJaXNfc2hvcnQ7Ci0KLQljb3VudCA9IHdyaXRlX3BhY2tldCgmVUREUjAsIHJlcSwgRVAwX0ZJRk9fU0laRSk7Ci0JZXAtPmRldi0+c3RhdHMud3JpdGUuYnl0ZXMgKz0gY291bnQ7Ci0KLQkvKiBsYXN0IHBhY2tldCAibXVzdCBiZSIgc2hvcnQgKG9yIGEgemxwKSAqLwotCWlzX3Nob3J0ID0gKGNvdW50ICE9IEVQMF9GSUZPX1NJWkUpOwotCi0JREJHKERCR19WRVJZX05PSVNZLCAiZXAwaW4gJWQgYnl0ZXMgJWQgbGVmdCAlcFxuIiwgY291bnQsCi0JCXJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgcmVxKTsKLQotCWlmICh1bmxpa2VseSAoaXNfc2hvcnQpKSB7Ci0JCWlmIChlcC0+ZGV2LT5yZXFfcGVuZGluZykKLQkJCWVwMHN0YXJ0KGVwLT5kZXYsIFVEQ0NTMF9JUFIsICJzaG9ydCBJTiIpOwotCQllbHNlCi0JCQlVRENDUzAgPSBVRENDUzBfSVBSOwotCi0JCWNvdW50ID0gcmVxLT5yZXEubGVuZ3RoOwotCQlkb25lIChlcCwgcmVxLCAwKTsKLQkJZXAwX2lkbGUoZXAtPmRldik7Ci0jaWZuZGVmIENPTkZJR19BUkNIX0lYUDRYWAotI2lmIDEKLQkJLyogVGhpcyBzZWVtcyB0byBnZXQgcmlkIG9mIGxvc3Qgc3RhdHVzIGlycXMgaW4gc29tZSBjYXNlczoKLQkJICogaG9zdCByZXNwb25kcyBxdWlja2x5LCBvciBuZXh0IHJlcXVlc3QgaW52b2x2ZXMgY29uZmlnCi0JCSAqIGNoYW5nZSBhdXRvbWFnaWMsIG9yIHNob3VsZCBoYXZlIGJlZW4gaGlkZGVuLCBvciAuLi4KLQkJICoKLQkJICogRklYTUUgZ2V0IHJpZCBvZiBhbGwgdWRlbGF5cyBwb3NzaWJsZS4uLgotCQkgKi8KLQkJaWYgKGNvdW50ID49IEVQMF9GSUZPX1NJWkUpIHsKLQkJCWNvdW50ID0gMTAwOwotCQkJZG8gewotCQkJCWlmICgoVURDQ1MwICYgVURDQ1MwX09QUikgIT0gMCkgewotCQkJCQkvKiBjbGVhciBPUFIsIGdlbmVyYXRlIGFjayAqLwotCQkJCQlVRENDUzAgPSBVRENDUzBfT1BSOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJY291bnQtLTsKLQkJCQl1ZGVsYXkoMSk7Ci0JCQl9IHdoaWxlIChjb3VudCk7Ci0JCX0KLSNlbmRpZgotI2VuZGlmCi0JfSBlbHNlIGlmIChlcC0+ZGV2LT5yZXFfcGVuZGluZykKLQkJZXAwc3RhcnQoZXAtPmRldiwgMCwgIklOIik7Ci0JcmV0dXJuIGlzX3Nob3J0OwotfQotCi0KLS8qCi0gKiByZWFkX2ZpZm8gLSAgdW5sb2FkIHBhY2tldChzKSBmcm9tIHRoZSBmaWZvIHdlIHVzZSBmb3IgdXNiIE9VVAotICogdHJhbnNmZXJzIGFuZCBwdXQgdGhlbSBpbnRvIHRoZSByZXF1ZXN0LiAgY2FsbGVyIHNob3VsZCBoYXZlIG1hZGUKLSAqIHN1cmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgcGFja2V0IHJlYWR5LgotICoKLSAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgcmVxdWVzdCBjb21wbGV0ZWQgYmVjYXVzZSBvZiBzaG9ydCBwYWNrZXQgb3IgdGhlCi0gKiByZXF1ZXN0IGJ1ZmZlciBoYXZpbmcgZmlsbGVkIChhbmQgbWF5YmUgb3ZlcnJhbiB0aWxsIGVuZC1vZi1wYWNrZXQpLgotICovCi1zdGF0aWMgaW50Ci1yZWFkX2ZpZm8gKHN0cnVjdCBweGEyeHhfZXAgKmVwLCBzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QgKnJlcSkKLXsKLQlmb3IgKDs7KSB7Ci0JCXUzMgkJdWRjY3M7Ci0JCXU4CQkqYnVmOwotCQl1bnNpZ25lZAlidWZmZXJzcGFjZSwgY291bnQsIGlzX3Nob3J0OwotCi0JCS8qIG1ha2Ugc3VyZSB0aGVyZSdzIGEgcGFja2V0IGluIHRoZSBGSUZPLgotCQkgKiBVRENDU197Qk8sSU99X1JQQyBhcmUgYWxsIHRoZSBzYW1lIGJpdCB2YWx1ZS4KLQkJICogVURDQ1Nfe0JPLElPfV9STkUgYXJlIGFsbCB0aGUgc2FtZSBiaXQgdmFsdWUuCi0JCSAqLwotCQl1ZGNjcyA9ICplcC0+cmVnX3VkY2NzOwotCQlpZiAodW5saWtlbHkgKCh1ZGNjcyAmIFVEQ0NTX0JPX1JQQykgPT0gMCkpCi0JCQlicmVhazsKLQkJYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOwotCQlwcmVmZXRjaHcoYnVmKTsKLQkJYnVmZmVyc3BhY2UgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7Ci0KLQkJLyogcmVhZCBhbGwgYnl0ZXMgZnJvbSB0aGlzIHBhY2tldCAqLwotCQlpZiAobGlrZWx5ICh1ZGNjcyAmIFVEQ0NTX0JPX1JORSkpIHsKLQkJCWNvdW50ID0gMSArICgweDBmZiAmICplcC0+cmVnX3ViY3IpOwotCQkJcmVxLT5yZXEuYWN0dWFsICs9IG1pbiAoY291bnQsIGJ1ZmZlcnNwYWNlKTsKLQkJfSBlbHNlIC8qIHpscCAqLwotCQkJY291bnQgPSAwOwotCQlpc19zaG9ydCA9IChjb3VudCA8IGVwLT5lcC5tYXhwYWNrZXQpOwotCQlEQkcoREJHX1ZFUllfTk9JU1ksICJyZWFkICVzICUwMngsICVkIGJ5dGVzJXMgcmVxICVwICVkLyVkXG4iLAotCQkJZXAtPmVwLm5hbWUsIHVkY2NzLCBjb3VudCwKLQkJCWlzX3Nob3J0ID8gIi9TIiA6ICIiLAotCQkJcmVxLCByZXEtPnJlcS5hY3R1YWwsIHJlcS0+cmVxLmxlbmd0aCk7Ci0JCXdoaWxlIChsaWtlbHkgKGNvdW50LS0gIT0gMCkpIHsKLQkJCXU4CWJ5dGUgPSAodTgpICplcC0+cmVnX3VkZHI7Ci0KLQkJCWlmICh1bmxpa2VseSAoYnVmZmVyc3BhY2UgPT0gMCkpIHsKLQkJCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgZHJpdmVyJ3MgYnVmZmVyCi0JCQkJICogaXMgc21hbGxlciB0aGFuIHdoYXQgdGhlIGhvc3Qgc2VudC4KLQkJCQkgKiBkaXNjYXJkIHRoZSBleHRyYSBkYXRhLgotCQkJCSAqLwotCQkJCWlmIChyZXEtPnJlcS5zdGF0dXMgIT0gLUVPVkVSRkxPVykKLQkJCQkJRE1TRygiJXMgb3ZlcmZsb3cgJWRcbiIsCi0JCQkJCQllcC0+ZXAubmFtZSwgY291bnQpOwotCQkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FT1ZFUkZMT1c7Ci0JCQl9IGVsc2UgewotCQkJCSpidWYrKyA9IGJ5dGU7Ci0JCQkJYnVmZmVyc3BhY2UtLTsKLQkJCX0KLQkJfQotCQkqZXAtPnJlZ191ZGNjcyA9ICBVRENDU19CT19SUEM7Ci0JCS8qIFJQQy9SU1AvUk5FIGNvdWxkIG5vdyByZWZsZWN0IHRoZSBvdGhlciBwYWNrZXQgYnVmZmVyICovCi0KLQkJLyogaXNvIGlzIG9uZSByZXF1ZXN0IHBlciBwYWNrZXQgKi8KLQkJaWYgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykgewotCQkJaWYgKHVkY2NzICYgVURDQ1NfSU9fUk9GKQotCQkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FSE9TVFVOUkVBQ0g7Ci0JCQkvKiBtb3JlIGxpa2UgImlzX2RvbmUiICovCi0JCQlpc19zaG9ydCA9IDE7Ci0JCX0KLQotCQkvKiBjb21wbGV0aW9uICovCi0JCWlmIChpc19zaG9ydCB8fCByZXEtPnJlcS5hY3R1YWwgPT0gcmVxLT5yZXEubGVuZ3RoKSB7Ci0JCQlkb25lIChlcCwgcmVxLCAwKTsKLQkJCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKQotCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQotCQkvKiBmaW5pc2hlZCB0aGF0IHBhY2tldC4gIHRoZSBuZXh0IG9uZSBtYXkgYmUgd2FpdGluZy4uLiAqLwotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIHNwZWNpYWwgZXAwIHZlcnNpb24gb2YgdGhlIGFib3ZlLiAgbm8gVUJDUjAgb3IgZG91YmxlIGJ1ZmZlcmluZzsgc3RhdHVzCi0gKiBoYW5kc2hha2luZyBpcyBtYWdpYy4gIG1vc3QgZGV2aWNlIHByb3RvY29scyBkb24ndCBuZWVkIGNvbnRyb2wtT1VULgotICogQ0RDIHZlbmRvciBjb21tYW5kcyAoYW5kIFJORElTKSwgbWFzcyBzdG9yYWdlIENCL0NCSSwgYW5kIHNvbWUgb3RoZXIKLSAqIHByb3RvY29scyBkbyB1c2UgdGhlbS4KLSAqLwotc3RhdGljIGludAotcmVhZF9lcDBfZmlmbyAoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxKQotewotCXU4CQkqYnVmLCBieXRlOwotCXVuc2lnbmVkCWJ1ZmZlcnNwYWNlOwotCi0JYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOwotCWJ1ZmZlcnNwYWNlID0gcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsOwotCi0Jd2hpbGUgKFVEQ0NTMCAmIFVEQ0NTMF9STkUpIHsKLQkJYnl0ZSA9ICh1OCkgVUREUjA7Ci0KLQkJaWYgKHVubGlrZWx5IChidWZmZXJzcGFjZSA9PSAwKSkgewotCQkJLyogdGhpcyBoYXBwZW5zIHdoZW4gdGhlIGRyaXZlcidzIGJ1ZmZlcgotCQkJICogaXMgc21hbGxlciB0aGFuIHdoYXQgdGhlIGhvc3Qgc2VudC4KLQkJCSAqIGRpc2NhcmQgdGhlIGV4dHJhIGRhdGEuCi0JCQkgKi8KLQkJCWlmIChyZXEtPnJlcS5zdGF0dXMgIT0gLUVPVkVSRkxPVykKLQkJCQlETVNHKCIlcyBvdmVyZmxvd1xuIiwgZXAtPmVwLm5hbWUpOwotCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKLQkJfSBlbHNlIHsKLQkJCSpidWYrKyA9IGJ5dGU7Ci0JCQlyZXEtPnJlcS5hY3R1YWwrKzsKLQkJCWJ1ZmZlcnNwYWNlLS07Ci0JCX0KLQl9Ci0KLQlVRENDUzAgPSBVRENDUzBfT1BSIHwgVURDQ1MwX0lQUjsKLQotCS8qIGNvbXBsZXRpb24gKi8KLQlpZiAocmVxLT5yZXEuYWN0dWFsID49IHJlcS0+cmVxLmxlbmd0aCkKLQkJcmV0dXJuIDE7Ci0KLQkvKiBmaW5pc2hlZCB0aGF0IHBhY2tldC4gIHRoZSBuZXh0IG9uZSBtYXkgYmUgd2FpdGluZy4uLiAqLwotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgaW50Ci1weGEyeHhfZXBfcXVldWUoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEsIGdmcF90IGdmcF9mbGFncykKLXsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqZGV2OwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwotCi0JcmVxID0gY29udGFpbmVyX29mKF9yZXEsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcmVxKTsKLQlpZiAodW5saWtlbHkgKCFfcmVxIHx8ICFfcmVxLT5jb21wbGV0ZSB8fCAhX3JlcS0+YnVmCi0JCQl8fCAhbGlzdF9lbXB0eSgmcmVxLT5xdWV1ZSkpKSB7Ci0JCURNU0coIiVzLCBiYWQgcGFyYW1zXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICh1bmxpa2VseSAoIV9lcCB8fCAoIWVwLT5kZXNjICYmIGVwLT5lcC5uYW1lICE9IGVwMG5hbWUpKSkgewotCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldiA9IGVwLT5kZXY7Ci0JaWYgKHVubGlrZWx5ICghZGV2LT5kcml2ZXIKLQkJCXx8IGRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOKSkgewotCQlETVNHKCIlcywgYm9ndXMgZGV2aWNlIHN0YXRlXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRVNIVVRET1dOOwotCX0KLQotCS8qIGlzbyBpcyBhbHdheXMgb25lIHBhY2tldCBwZXIgcmVxdWVzdCwgdGhhdCdzIHRoZSBvbmx5IHdheQotCSAqIHdlIGNhbiByZXBvcnQgcGVyLXBhY2tldCBzdGF0dXMuICB0aGF0IGFsc28gaGVscHMgd2l0aCBkbWEuCi0JICovCi0JaWYgKHVubGlrZWx5IChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MKLQkJCSYmIHJlcS0+cmVxLmxlbmd0aCA+IGxlMTZfdG9fY3B1Ci0JCQkJCQkoZXAtPmRlc2MtPndNYXhQYWNrZXRTaXplKSkpCi0JCXJldHVybiAtRU1TR1NJWkU7Ci0KLQlEQkcoREJHX05PSVNZLCAiJXMgcXVldWUgcmVxICVwLCBsZW4gJWQgYnVmICVwXG4iLAotCQlfZXAtPm5hbWUsIF9yZXEsIF9yZXEtPmxlbmd0aCwgX3JlcS0+YnVmKTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCV9yZXEtPnN0YXR1cyA9IC1FSU5QUk9HUkVTUzsKLQlfcmVxLT5hY3R1YWwgPSAwOwotCi0JLyoga2lja3N0YXJ0IHRoaXMgaS9vIHF1ZXVlPyAqLwotCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpICYmICFlcC0+c3RvcHBlZCkgewotCQlpZiAoZXAtPmRlc2MgPT0gTlVMTC8qIGVwMCAqLykgewotCQkJdW5zaWduZWQJbGVuZ3RoID0gX3JlcS0+bGVuZ3RoOwotCi0JCQlzd2l0Y2ggKGRldi0+ZXAwc3RhdGUpIHsKLQkJCWNhc2UgRVAwX0lOX0RBVEFfUEhBU0U6Ci0JCQkJZGV2LT5zdGF0cy53cml0ZS5vcHMrKzsKLQkJCQlpZiAod3JpdGVfZXAwX2ZpZm8oZXAsIHJlcSkpCi0JCQkJCXJlcSA9IE5VTEw7Ci0JCQkJYnJlYWs7Ci0KLQkJCWNhc2UgRVAwX09VVF9EQVRBX1BIQVNFOgotCQkJCWRldi0+c3RhdHMucmVhZC5vcHMrKzsKLQkJCQkvKiBtZXNzeSAuLi4gKi8KLQkJCQlpZiAoZGV2LT5yZXFfY29uZmlnKSB7Ci0JCQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMCBjb25maWcgYWNrJXNcbiIsCi0JCQkJCQlkZXYtPmhhc19jZnIgPyAgIiIgOiAiIHJhY2VkIik7Ci0JCQkJCWlmIChkZXYtPmhhc19jZnIpCi0JCQkJCQlVRENDRlIgPSBVRENDRlJfQVJFTnxVRENDRlJfQUNNCi0JCQkJCQkJfFVEQ0NGUl9NQjE7Ci0JCQkJCWRvbmUoZXAsIHJlcSwgMCk7Ci0JCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfRU5EX1hGRVI7Ci0JCQkJCWxvY2FsX2lycV9yZXN0b3JlIChmbGFncyk7Ci0JCQkJCXJldHVybiAwOwotCQkJCX0KLQkJCQlpZiAoZGV2LT5yZXFfcGVuZGluZykKLQkJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfSVBSLCAiT1VUIik7Ci0JCQkJaWYgKGxlbmd0aCA9PSAwIHx8ICgoVURDQ1MwICYgVURDQ1MwX1JORSkgIT0gMAotCQkJCQkJJiYgcmVhZF9lcDBfZmlmbyhlcCwgcmVxKSkpIHsKLQkJCQkJZXAwX2lkbGUoZGV2KTsKLQkJCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCQkJcmVxID0gTlVMTDsKLQkJCQl9Ci0JCQkJYnJlYWs7Ci0KLQkJCWRlZmF1bHQ6Ci0JCQkJRE1TRygiZXAwIGkvbywgb2RkIHN0YXRlICVkXG4iLCBkZXYtPmVwMHN0YXRlKTsKLQkJCQlsb2NhbF9pcnFfcmVzdG9yZSAoZmxhZ3MpOwotCQkJCXJldHVybiAtRUwySExUOwotCQkJfQotCQkvKiBjYW4gdGhlIEZJRk8gY2FuIHNhdGlzZnkgdGhlIHJlcXVlc3QgaW1tZWRpYXRlbHk/ICovCi0JCX0gZWxzZSBpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgIT0gMCkgewotCQkJaWYgKCgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUykgIT0gMAotCQkJCQkmJiB3cml0ZV9maWZvKGVwLCByZXEpKQotCQkJCXJlcSA9IE5VTEw7Ci0JCX0gZWxzZSBpZiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQk9fUkZTKSAhPSAwCi0JCQkJJiYgcmVhZF9maWZvKGVwLCByZXEpKSB7Ci0JCQlyZXEgPSBOVUxMOwotCQl9Ci0KLQkJaWYgKGxpa2VseSAocmVxICYmIGVwLT5kZXNjKSkKLQkJCXBpb19pcnFfZW5hYmxlKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKLQl9Ci0KLQkvKiBwaW8gb3IgZG1hIGlycSBoYW5kbGVyIGFkdmFuY2VzIHRoZSBxdWV1ZS4gKi8KLQlpZiAobGlrZWx5KHJlcSAhPSBOVUxMKSkKLQkJbGlzdF9hZGRfdGFpbCgmcmVxLT5xdWV1ZSwgJmVwLT5xdWV1ZSk7Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLQotLyoKLSAqCW51a2UgLSBkZXF1ZXVlIEFMTCByZXF1ZXN0cwotICovCi1zdGF0aWMgdm9pZCBudWtlKHN0cnVjdCBweGEyeHhfZXAgKmVwLCBpbnQgc3RhdHVzKQotewotCXN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxOwotCi0JLyogY2FsbGVkIHdpdGggaXJxcyBibG9ja2VkICovCi0Jd2hpbGUgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7Ci0JCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsCi0JCQkJc3RydWN0IHB4YTJ4eF9yZXF1ZXN0LAotCQkJCXF1ZXVlKTsKLQkJZG9uZShlcCwgcmVxLCBzdGF0dXMpOwotCX0KLQlpZiAoZXAtPmRlc2MpCi0JCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotfQotCi0KLS8qIGRlcXVldWUgSlVTVCBPTkUgcmVxdWVzdCAqLwotc3RhdGljIGludCBweGEyeHhfZXBfZGVxdWV1ZShzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICghX2VwIHx8IGVwLT5lcC5uYW1lID09IGVwMG5hbWUpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JLyogbWFrZSBzdXJlIGl0J3MgYWN0dWFsbHkgcXVldWVkIG9uIHRoaXMgZW5kcG9pbnQgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5IChyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7Ci0JCWlmICgmcmVxLT5yZXEgPT0gX3JlcSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoJnJlcS0+cmVxICE9IF9yZXEpIHsKLQkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkb25lKGVwLCByZXEsIC1FQ09OTlJFU0VUKTsKLQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIGludCBweGEyeHhfZXBfc2V0X2hhbHQoc3RydWN0IHVzYl9lcCAqX2VwLCBpbnQgdmFsdWUpCi17Ci0Jc3RydWN0IHB4YTJ4eF9lcAkqZXA7Ci0JdW5zaWduZWQgbG9uZwkJZmxhZ3M7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAodW5saWtlbHkgKCFfZXAKLQkJCXx8ICghZXAtPmRlc2MgJiYgZXAtPmVwLm5hbWUgIT0gZXAwbmFtZSkpCi0JCQl8fCBlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpIHsKLQkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKHZhbHVlID09IDApIHsKLQkJLyogdGhpcyBwYXRoIChyZXNldCB0b2dnbGUraGFsdCkgaXMgbmVlZGVkIHRvIGltcGxlbWVudAotCQkgKiBTRVRfSU5URVJGQUNFIG9uIG5vcm1hbCBoYXJkd2FyZS4gIGJ1dCBpdCBjYW4ndCBiZQotCQkgKiBkb25lIGZyb20gc29mdHdhcmUgb24gdGhlIFBYQSBVREMsIGFuZCB0aGUgaGFyZHdhcmUKLQkJICogZm9yZ2V0cyB0byBkbyBpdCBhcyBwYXJ0IG9mIFNFVF9JTlRFUkZBQ0UgYXV0b21hZ2ljLgotCQkgKi8KLQkJRE1TRygib25seSBob3N0IGNhbiBjbGVhciAlcyBoYWx0XG4iLCBfZXAtPm5hbWUpOwotCQlyZXR1cm4gLUVST0ZTOwotCX0KLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCWlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwCi0JCQkmJiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKSA9PSAwCi0JCQkgICB8fCAhbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkpIHsKLQkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCQlyZXR1cm4gLUVBR0FJTjsKLQl9Ci0KLQkvKiBGU1QgYml0IGlzIHRoZSBzYW1lIGZvciBjb250cm9sLCBidWxrIGluLCBidWxrIG91dCwgaW50ZXJydXB0IGluICovCi0JKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9GU1R8VURDQ1NfQklfRlRGOwotCi0JLyogZXAwIG5lZWRzIHNwZWNpYWwgY2FyZSAqLwotCWlmICghZXAtPmRlc2MpIHsKLQkJc3RhcnRfd2F0Y2hkb2coZXAtPmRldik7Ci0JCWVwLT5kZXYtPnJlcV9wZW5kaW5nID0gMDsKLQkJZXAtPmRldi0+ZXAwc3RhdGUgPSBFUDBfU1RBTEw7Ci0KLQkvKiBhbmQgYnVsay9pbnRyIGVuZHBvaW50cyBsaWtlIGRyb3BwaW5nIHN0YWxscyB0b28gKi8KLQl9IGVsc2UgewotCQl1bnNpZ25lZCBpOwotCQlmb3IgKGkgPSAwOyBpIDwgMTAwMDsgaSArPSAyMCkgewotCQkJaWYgKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfU1NUKQotCQkJCWJyZWFrOwotCQkJdWRlbGF5KDIwKTsKLQkJfQotCX0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlEQkcoREJHX1ZFUkJPU0UsICIlcyBoYWx0XG4iLCBfZXAtPm5hbWUpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9maWZvX3N0YXR1cyhzdHJ1Y3QgdXNiX2VwICpfZXApCi17Ci0Jc3RydWN0IHB4YTJ4eF9lcCAgICAgICAgKmVwOwotCi0JZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXApIHsKLQkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0JLyogcHhhIGNhbid0IHJlcG9ydCB1bmNsYWltZWQgYnl0ZXMgZnJvbSBJTiBmaWZvcyAqLwotCWlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0JaWYgKGVwLT5kZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTgotCQkJfHwgKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQk9fUkZTKSA9PSAwKQotCQlyZXR1cm4gMDsKLQllbHNlCi0JCXJldHVybiAoKmVwLT5yZWdfdWJjciAmIDB4ZmZmKSArIDE7Ci19Ci0KLXN0YXRpYyB2b2lkIHB4YTJ4eF9lcF9maWZvX2ZsdXNoKHN0cnVjdCB1c2JfZXAgKl9lcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwICAgICAgICAqZXA7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAoIV9lcCB8fCBlcC0+ZXAubmFtZSA9PSBlcDBuYW1lIHx8ICFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7Ci0JCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIHRvZ2dsZSBhbmQgaGFsdCBiaXRzIHN0YXkgdW5jaGFuZ2VkICovCi0KLQkvKiBmb3IgT1VULCBqdXN0IHJlYWQgYW5kIGRpc2NhcmQgdGhlIEZJRk8gY29udGVudHMuICovCi0JaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pID09IDApIHsKLQkJd2hpbGUgKCgoKmVwLT5yZWdfdWRjY3MpICYgVURDQ1NfQk9fUk5FKSAhPSAwKQotCQkJKHZvaWQpICplcC0+cmVnX3VkZHI7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKiBtb3N0IElOIHN0YXR1cyBpcyB0aGUgc2FtZSwgYnV0IElTTyBjYW4ndCBzdGFsbCAqLwotCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfVFBDfFVEQ0NTX0JJX0ZURnxVRENDU19CSV9UVVIKLQkJfCAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKQotCQkJPyAwIDogVURDQ1NfQklfU1NUOwotfQotCi0KLXN0YXRpYyBzdHJ1Y3QgdXNiX2VwX29wcyBweGEyeHhfZXBfb3BzID0gewotCS5lbmFibGUJCT0gcHhhMnh4X2VwX2VuYWJsZSwKLQkuZGlzYWJsZQk9IHB4YTJ4eF9lcF9kaXNhYmxlLAotCi0JLmFsbG9jX3JlcXVlc3QJPSBweGEyeHhfZXBfYWxsb2NfcmVxdWVzdCwKLQkuZnJlZV9yZXF1ZXN0CT0gcHhhMnh4X2VwX2ZyZWVfcmVxdWVzdCwKLQotCS5xdWV1ZQkJPSBweGEyeHhfZXBfcXVldWUsCi0JLmRlcXVldWUJPSBweGEyeHhfZXBfZGVxdWV1ZSwKLQotCS5zZXRfaGFsdAk9IHB4YTJ4eF9lcF9zZXRfaGFsdCwKLQkuZmlmb19zdGF0dXMJPSBweGEyeHhfZXBfZmlmb19zdGF0dXMsCi0JLmZpZm9fZmx1c2gJPSBweGEyeHhfZXBfZmlmb19mbHVzaCwKLX07Ci0KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKglkZXZpY2Utc2NvcGVkIHBhcnRzIG9mIHRoZSBhcGkgdG8gdGhlIHVzYiBjb250cm9sbGVyIGhhcmR3YXJlCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfZ2V0X2ZyYW1lKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0KQotewotCXJldHVybiAoKFVGTlJIICYgMHgwNykgPDwgOCkgfCAoVUZOUkwgJiAweGZmKTsKLX0KLQotc3RhdGljIGludCBweGEyeHhfdWRjX3dha2V1cChzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCkKLXsKLQkvKiBob3N0IG1heSBub3QgaGF2ZSBlbmFibGVkIHJlbW90ZSB3YWtldXAgKi8KLQlpZiAoKFVEQ0NTMCAmIFVEQ0NTMF9EUldGKSA9PSAwKQotCQlyZXR1cm4gLUVIT1NUVU5SRUFDSDsKLQl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfUlNNKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc3RvcF9hY3Rpdml0eShzdHJ1Y3QgcHhhMnh4X3VkYyAqLCBzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKik7Ci1zdGF0aWMgdm9pZCB1ZGNfZW5hYmxlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqKTsKLXN0YXRpYyB2b2lkIHVkY19kaXNhYmxlKHN0cnVjdCBweGEyeHhfdWRjICopOwotCi0vKiBXZSBkaXNhYmxlIHRoZSBVREMgLS0gYW5kIGl0cyA0OCBNSHogY2xvY2sgLS0gd2hlbmV2ZXIgaXQncyBub3QKLSAqIGluIGFjdGl2ZSB1c2UuCi0gKi8KLXN0YXRpYyBpbnQgcHVsbHVwKHN0cnVjdCBweGEyeHhfdWRjICp1ZGMpCi17Ci0JaW50IGlzX2FjdGl2ZSA9IHVkYy0+dmJ1cyAmJiB1ZGMtPnB1bGx1cCAmJiAhdWRjLT5zdXNwZW5kZWQ7Ci0JRE1TRygiJXNcbiIsIGlzX2FjdGl2ZSA/ICJhY3RpdmUiIDogImluYWN0aXZlIik7Ci0JaWYgKGlzX2FjdGl2ZSkgewotCQlpZiAoIXVkYy0+YWN0aXZlKSB7Ci0JCQl1ZGMtPmFjdGl2ZSA9IDE7Ci0JCQkvKiBFbmFibGUgY2xvY2sgZm9yIFVTQiBkZXZpY2UgKi8KLQkJCWNsa19lbmFibGUodWRjLT5jbGspOwotCQkJdWRjX2VuYWJsZSh1ZGMpOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKHVkYy0+YWN0aXZlKSB7Ci0JCQlpZiAodWRjLT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04pIHsKLQkJCQlETVNHKCJkaXNjb25uZWN0ICVzXG4iLCB1ZGMtPmRyaXZlcgotCQkJCQk/IHVkYy0+ZHJpdmVyLT5kcml2ZXIubmFtZQotCQkJCQk6ICIobm8gZHJpdmVyKSIpOwotCQkJCXN0b3BfYWN0aXZpdHkodWRjLCB1ZGMtPmRyaXZlcik7Ci0JCQl9Ci0JCQl1ZGNfZGlzYWJsZSh1ZGMpOwotCQkJLyogRGlzYWJsZSBjbG9jayBmb3IgVVNCIGRldmljZSAqLwotCQkJY2xrX2Rpc2FibGUodWRjLT5jbGspOwotCQkJdWRjLT5hY3RpdmUgPSAwOwotCQl9Ci0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIFZCVVMgcmVwb3J0aW5nIGxvZ2ljYWxseSBjb21lcyBmcm9tIGEgdHJhbnNjZWl2ZXIgKi8KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY192YnVzX3Nlc3Npb24oc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQsIGludCBpc19hY3RpdmUpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYzsKLQotCXVkYyA9IGNvbnRhaW5lcl9vZihfZ2FkZ2V0LCBzdHJ1Y3QgcHhhMnh4X3VkYywgZ2FkZ2V0KTsKLQl1ZGMtPnZidXMgPSAoaXNfYWN0aXZlICE9IDApOwotCURNU0coInZidXMgJXNcbiIsIGlzX2FjdGl2ZSA/ICJzdXBwbGllZCIgOiAiaW5hY3RpdmUiKTsKLQlwdWxsdXAodWRjKTsKLQlyZXR1cm4gMDsKLX0KLQotLyogZHJpdmVycyBtYXkgaGF2ZSBzb2Z0d2FyZSBjb250cm9sIG92ZXIgRCsgcHVsbHVwICovCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfcHVsbHVwKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0LCBpbnQgaXNfYWN0aXZlKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSp1ZGM7Ci0KLQl1ZGMgPSBjb250YWluZXJfb2YoX2dhZGdldCwgc3RydWN0IHB4YTJ4eF91ZGMsIGdhZGdldCk7Ci0KLQkvKiBub3QgYWxsIGJvYXJkcyBzdXBwb3J0IHB1bGx1cCBjb250cm9sICovCi0JaWYgKCF1ZGMtPm1hY2gtPmdwaW9fcHVsbHVwICYmICF1ZGMtPm1hY2gtPnVkY19jb21tYW5kKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0KLQl1ZGMtPnB1bGx1cCA9IChpc19hY3RpdmUgIT0gMCk7Ci0JcHVsbHVwKHVkYyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2dhZGdldF9vcHMgcHhhMnh4X3VkY19vcHMgPSB7Ci0JLmdldF9mcmFtZQk9IHB4YTJ4eF91ZGNfZ2V0X2ZyYW1lLAotCS53YWtldXAJCT0gcHhhMnh4X3VkY193YWtldXAsCi0JLnZidXNfc2Vzc2lvbgk9IHB4YTJ4eF91ZGNfdmJ1c19zZXNzaW9uLAotCS5wdWxsdXAJCT0gcHhhMnh4X3VkY19wdWxsdXAsCi0KLQkvLyAudmJ1c19kcmF3IC4uLiBib2FyZHMgbWF5IGNvbnN1bWUgY3VycmVudCBmcm9tIFZCVVMsIHVwIHRvCi0JLy8gMTAwLTUwMG1BIGJhc2VkIG9uIGNvbmZpZy4gIHRoZSA1MDB1QSBzdXNwZW5kIGNlaWxpbmcgbWVhbnMKLQkvLyB0aGF0IGV4Y2x1c2l2ZWx5IHZidXMtcG93ZXJlZCBQWEEgZGVzaWducyB2aW9sYXRlIFVTQiBzcGVjcy4KLX07Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GUwotCi1zdGF0aWMgaW50Ci11ZGNfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpfZCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqZGV2ID0gbS0+cHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQlpbnQJCQlpOwotCXUzMgkJCXRtcDsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCS8qIGJhc2ljIGRldmljZSBzdGF0dXMgKi8KLQlzZXFfcHJpbnRmKG0sIERSSVZFUl9ERVNDICJcbiIKLQkJIiVzIHZlcnNpb246ICVzXG5HYWRnZXQgZHJpdmVyOiAlc1xuSG9zdCAlc1xuXG4iLAotCQlkcml2ZXJfbmFtZSwgRFJJVkVSX1ZFUlNJT04gU0laRV9TVFIgIihwaW8pIiwKLQkJZGV2LT5kcml2ZXIgPyBkZXYtPmRyaXZlci0+ZHJpdmVyLm5hbWUgOiAiKG5vbmUpIiwKLQkJaXNfdmJ1c19wcmVzZW50KCkgPyAiZnVsbCBzcGVlZCIgOiAiZGlzY29ubmVjdGVkIik7Ci0KLQkvKiByZWdpc3RlcnMgZm9yIGRldmljZSBhbmQgZXAwICovCi0Jc2VxX3ByaW50ZihtLAotCQkidWljciAlMDJYLiUwMlgsIHVzaXIgJTAyWC4lMDJ4LCB1Zm5yICUwMlguJTAyWFxuIiwKLQkJVUlDUjEsIFVJQ1IwLCBVU0lSMSwgVVNJUjAsIFVGTlJILCBVRk5STCk7Ci0KLQl0bXAgPSBVRENDUjsKLQlzZXFfcHJpbnRmKG0sCi0JCSJ1ZGNjciAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLCB0bXAsCi0JCSh0bXAgJiBVRENDUl9SRU0pID8gIiByZW0iIDogIiIsCi0JCSh0bXAgJiBVRENDUl9SU1RJUikgPyAiIHJzdGlyIiA6ICIiLAotCQkodG1wICYgVURDQ1JfU1JNKSA/ICIgc3JtIiA6ICIiLAotCQkodG1wICYgVURDQ1JfU1VTSVIpID8gIiBzdXNpciIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1JFU0lSKSA/ICIgcmVzaXIiIDogIiIsCi0JCSh0bXAgJiBVRENDUl9SU00pID8gIiByc20iIDogIiIsCi0JCSh0bXAgJiBVRENDUl9VREEpID8gIiB1ZGEiIDogIiIsCi0JCSh0bXAgJiBVRENDUl9VREUpID8gIiB1ZGUiIDogIiIpOwotCi0JdG1wID0gVURDQ1MwOwotCXNlcV9wcmludGYobSwKLQkJInVkY2NzMCAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLCB0bXAsCi0JCSh0bXAgJiBVRENDUzBfU0EpID8gIiBzYSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9STkUpID8gIiBybmUiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfRlNUKSA/ICIgZnN0IiA6ICIiLAotCQkodG1wICYgVURDQ1MwX1NTVCkgPyAiIHNzdCIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9EUldGKSA/ICIgZHdyZiIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9GVEYpID8gIiBmdGYiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfSVBSKSA/ICIgaXByIiA6ICIiLAotCQkodG1wICYgVURDQ1MwX09QUikgPyAiIG9wciIgOiAiIik7Ci0KLQlpZiAoZGV2LT5oYXNfY2ZyKSB7Ci0JCXRtcCA9IFVEQ0NGUjsKLQkJc2VxX3ByaW50ZihtLAotCQkJInVkY2NmciAlMDJYID0lcyVzXG4iLCB0bXAsCi0JCQkodG1wICYgVURDQ0ZSX0FSRU4pID8gIiBhcmVuIiA6ICIiLAotCQkJKHRtcCAmIFVEQ0NGUl9BQ00pID8gIiBhY20iIDogIiIpOwotCX0KLQotCWlmICghaXNfdmJ1c19wcmVzZW50KCkgfHwgIWRldi0+ZHJpdmVyKQotCQlnb3RvIGRvbmU7Ci0KLQlzZXFfcHJpbnRmKG0sICJlcDAgSU4gJWx1LyVsdSwgT1VUICVsdS8lbHVcbmlycXMgJWx1XG5cbiIsCi0JCWRldi0+c3RhdHMud3JpdGUuYnl0ZXMsIGRldi0+c3RhdHMud3JpdGUub3BzLAotCQlkZXYtPnN0YXRzLnJlYWQuYnl0ZXMsIGRldi0+c3RhdHMucmVhZC5vcHMsCi0JCWRldi0+c3RhdHMuaXJxcyk7Ci0KLQkvKiBkdW1wIGVuZHBvaW50IHF1ZXVlcyAqLwotCWZvciAoaSA9IDA7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgewotCQlzdHJ1Y3QgcHhhMnh4X2VwCSplcCA9ICZkZXYtPmVwIFtpXTsKLQkJc3RydWN0IHB4YTJ4eF9yZXF1ZXN0CSpyZXE7Ci0KLQkJaWYgKGkgIT0gMCkgewotCQkJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yCSpkZXNjOwotCi0JCQlkZXNjID0gZXAtPmRlc2M7Ci0JCQlpZiAoIWRlc2MpCi0JCQkJY29udGludWU7Ci0JCQl0bXAgPSAqZGV2LT5lcCBbaV0ucmVnX3VkY2NzOwotCQkJc2VxX3ByaW50ZihtLAotCQkJCSIlcyBtYXggJWQgJXMgdWRjY3MgJTAyeCBpcnFzICVsdVxuIiwKLQkJCQllcC0+ZXAubmFtZSwgbGUxNl90b19jcHUoZGVzYy0+d01heFBhY2tldFNpemUpLAotCQkJCSJwaW8iLCB0bXAsIGVwLT5waW9faXJxcyk7Ci0JCQkvKiBUT0RPIHRyYW5zbGF0ZSBhbGwgZml2ZSBncm91cHMgb2YgdWRjY3MgYml0cyEgKi8KLQotCQl9IGVsc2UgLyogZXAwIHNob3VsZCBvbmx5IGhhdmUgb25lIHRyYW5zZmVyIHF1ZXVlZCAqLwotCQkJc2VxX3ByaW50ZihtLCAiZXAwIG1heCAxNiBwaW8gaXJxcyAlbHVcbiIsCi0JCQkJZXAtPnBpb19pcnFzKTsKLQotCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgewotCQkJc2VxX3ByaW50ZihtLCAiXHQobm90aGluZyBxdWV1ZWQpXG4iKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxLCAmZXAtPnF1ZXVlLCBxdWV1ZSkgewotCQkJc2VxX3ByaW50ZihtLAotCQkJCQkiXHRyZXEgJXAgbGVuICVkLyVkIGJ1ZiAlcFxuIiwKLQkJCQkJJnJlcS0+cmVxLCByZXEtPnJlcS5hY3R1YWwsCi0JCQkJCXJlcS0+cmVxLmxlbmd0aCwgcmVxLT5yZXEuYnVmKTsKLQkJfQotCX0KLQotZG9uZToKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQKLXVkY19kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIHVkY19zZXFfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlYnVnX2ZvcHMgPSB7Ci0JLm9wZW4JCT0gdWRjX2RlYnVnZnNfb3BlbiwKLQkucmVhZAkJPSBzZXFfcmVhZCwKLQkubGxzZWVrCQk9IHNlcV9sc2VlaywKLQkucmVsZWFzZQk9IHNpbmdsZV9yZWxlYXNlLAotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLX07Ci0KLSNkZWZpbmUgY3JlYXRlX2RlYnVnX2ZpbGVzKGRldikgXAotCWRvIHsgXAotCQlkZXYtPmRlYnVnZnNfdWRjID0gZGVidWdmc19jcmVhdGVfZmlsZShkZXYtPmdhZGdldC5uYW1lLCBcCi0JCQlTX0lSVUdPLCBOVUxMLCBkZXYsICZkZWJ1Z19mb3BzKTsgXAotCX0gd2hpbGUgKDApCi0jZGVmaW5lIHJlbW92ZV9kZWJ1Z19maWxlcyhkZXYpIFwKLQlkbyB7IFwKLQkJaWYgKGRldi0+ZGVidWdmc191ZGMpIFwKLQkJCWRlYnVnZnNfcmVtb3ZlKGRldi0+ZGVidWdmc191ZGMpOyBcCi0JfSB3aGlsZSAoMCkKLQotI2Vsc2UJLyogIUNPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTICovCi0KLSNkZWZpbmUgY3JlYXRlX2RlYnVnX2ZpbGVzKGRldikgZG8ge30gd2hpbGUgKDApCi0jZGVmaW5lIHJlbW92ZV9kZWJ1Z19maWxlcyhkZXYpIGRvIHt9IHdoaWxlICgwKQotCi0jZW5kaWYJLyogQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgKi8KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyoKLSAqCXVkY19kaXNhYmxlIC0gZGlzYWJsZSBVU0IgZGV2aWNlIGNvbnRyb2xsZXIKLSAqLwotc3RhdGljIHZvaWQgdWRjX2Rpc2FibGUoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQkvKiBibG9jayBhbGwgaXJxcyAqLwotCXVkY19zZXRfbWFza19VRENDUihVRENDUl9TUk18VURDQ1JfUkVNKTsKLQlVSUNSMCA9IFVJQ1IxID0gMHhmZjsKLQlVRk5SSCA9IFVGTlJIX1NJTTsKLQotCS8qIGlmIGhhcmR3YXJlIHN1cHBvcnRzIGl0LCBkaXNjb25uZWN0IGZyb20gdXNiICovCi0JcHVsbHVwX29mZigpOwotCi0JdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfVURFKTsKLQotCWVwMF9pZGxlIChkZXYpOwotCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX1VOS05PV047Ci19Ci0KLQotLyoKLSAqCXVkY19yZWluaXQgLSBpbml0aWFsaXplIHNvZnR3YXJlIHN0YXRlCi0gKi8KLXN0YXRpYyB2b2lkIHVkY19yZWluaXQoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1MzIJaTsKLQotCS8qIGRldmljZS9lcDAgcmVjb3JkcyBpbml0ICovCi0JSU5JVF9MSVNUX0hFQUQgKCZkZXYtPmdhZGdldC5lcF9saXN0KTsKLQlJTklUX0xJU1RfSEVBRCAoJmRldi0+Z2FkZ2V0LmVwMC0+ZXBfbGlzdCk7Ci0JZGV2LT5lcDBzdGF0ZSA9IEVQMF9JRExFOwotCi0JLyogYmFzaWMgZW5kcG9pbnQgcmVjb3JkcyBpbml0ICovCi0JZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7Ci0JCXN0cnVjdCBweGEyeHhfZXAgKmVwID0gJmRldi0+ZXBbaV07Ci0KLQkJaWYgKGkgIT0gMCkKLQkJCWxpc3RfYWRkX3RhaWwgKCZlcC0+ZXAuZXBfbGlzdCwgJmRldi0+Z2FkZ2V0LmVwX2xpc3QpOwotCi0JCWVwLT5kZXNjID0gTlVMTDsKLQkJZXAtPnN0b3BwZWQgPSAwOwotCQlJTklUX0xJU1RfSEVBRCAoJmVwLT5xdWV1ZSk7Ci0JCWVwLT5waW9faXJxcyA9IDA7Ci0JfQotCi0JLyogdGhlIHJlc3Qgd2FzIHN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQsIGFuZCBpcyByZWFkLW9ubHkgKi8KLX0KLQotLyogdW50aWwgaXQncyBlbmFibGVkLCB0aGlzIFVEQyBzaG91bGQgYmUgY29tcGxldGVseSBpbnZpc2libGUKLSAqIHRvIGFueSBVU0IgaG9zdC4KLSAqLwotc3RhdGljIHZvaWQgdWRjX2VuYWJsZSAoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9VREUpOwotCi0JLyogdHJ5IHRvIGNsZWFyIHRoZXNlIGJpdHMgYmVmb3JlIHdlIGVuYWJsZSB0aGUgdWRjICovCi0JdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfU1VTSVJ8LypVRENDUl9SU1RJUnwqL1VEQ0NSX1JFU0lSKTsKLQotCWVwMF9pZGxlKGRldik7Ci0JZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKLQlkZXYtPnN0YXRzLmlycXMgPSAwOwotCi0JLyoKLQkgKiBzZXF1ZW5jZSB0YWtlbiBmcm9tIGNoYXB0ZXIgMTIuNS4xMCwgUFhBMjUwIEFwcFByb2NEZXZNYW51YWw6Ci0JICogLSBlbmFibGUgVURDCi0JICogLSBpZiBSRVNFVCBpcyBhbHJlYWR5IGluIHByb2dyZXNzLCBhY2sgaW50ZXJydXB0Ci0JICogLSB1bm1hc2sgcmVzZXQgaW50ZXJydXB0Ci0JICovCi0JdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7Ci0JaWYgKCEoVURDQ1IgJiBVRENDUl9VREEpKQotCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SU1RJUik7Ci0KLQlpZiAoZGV2LT5oYXNfY2ZyIC8qIFVEQ19SRVMyIGlzIGRlZmluZWQgKi8pIHsKLQkJLyogcHhhMjU1IChhMCspIGNhbiBhdm9pZCBhIHNldF9jb25maWcgcmFjZSB0aGF0IGNvdWxkCi0JCSAqIHByZXZlbnQgZ2FkZ2V0IGRyaXZlcnMgZnJvbSBjb25maWd1cmluZyBjb3JyZWN0bHkKLQkJICovCi0JCVVEQ0NGUiA9IFVEQ0NGUl9BQ00gfCBVRENDRlJfTUIxOwotCX0gZWxzZSB7Ci0JCS8qICJVU0IgdGVzdCBtb2RlIiBmb3IgcHhhMjUwIGVycmF0YSA0MC00MiAoc3RlcHBpbmcgYTAsIGExKQotCQkgKiB3aGljaCBjb3VsZCByZXN1bHQgaW4gbWlzc2luZyBwYWNrZXRzIGFuZCBpbnRlcnJ1cHRzLgotCQkgKiBzdXBwb3NlZGx5IG9uZSBiaXQgcGVyIGVuZHBvaW50LCBjb250cm9sbGluZyB3aGV0aGVyIGl0Ci0JCSAqIGRvdWJsZSBidWZmZXJzIG9yIG5vdDsgQUNNL0FSRU4gYml0cyBmaXQgaW50byB0aGUgaG9sZXMuCi0JCSAqIHplcm8gYml0cyAobGlrZSBVU0lSMF9JUngpIGRpc2FibGUgZG91YmxlIGJ1ZmZlcmluZy4KLQkJICovCi0JCVVEQ19SRVMxID0gMHgwMDsKLQkJVURDX1JFUzIgPSAweDAwOwotCX0KLQotCS8qIGVuYWJsZSBzdXNwZW5kL3Jlc3VtZSBhbmQgcmVzZXQgaXJxcyAqLwotCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1NSTSB8IFVEQ0NSX1JFTSk7Ci0KLQkvKiBlbmFibGUgZXAwIGlycXMgKi8KLQlVSUNSMCAmPSB+VUlDUjBfSU0wOwotCi0JLyogaWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQsIHB1bGx1cCBEKyBhbmQgd2FpdCBmb3IgcmVzZXQgKi8KLQlwdWxsdXBfb24oKTsKLX0KLQotCi0vKiB3aGVuIGEgZHJpdmVyIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLCBpdCB3aWxsIHJlY2VpdmUKLSAqIGNvbnRyb2wgcmVxdWVzdHMgaW5jbHVkaW5nIHNldF9jb25maWd1cmF0aW9uKCksIHdoaWNoIGVuYWJsZXMKLSAqIG5vbi1jb250cm9sIHJlcXVlc3RzLiAgdGhlbiB1c2IgdHJhZmZpYyBmb2xsb3dzIHVudGlsIGEKLSAqIGRpc2Nvbm5lY3QgaXMgcmVwb3J0ZWQuICB0aGVuIGEgaG9zdCBtYXkgY29ubmVjdCBhZ2Fpbiwgb3IKLSAqIHRoZSBkcml2ZXIgbWlnaHQgZ2V0IHVuYm91bmQuCi0gKi8KLWludCB1c2JfZ2FkZ2V0X3JlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqZGV2ID0gdGhlX2NvbnRyb2xsZXI7Ci0JaW50CQkJcmV0dmFsOwotCi0JaWYgKCFkcml2ZXIKLQkJCXx8IGRyaXZlci0+c3BlZWQgPCBVU0JfU1BFRURfRlVMTAotCQkJfHwgIWRyaXZlci0+YmluZAotCQkJfHwgIWRyaXZlci0+ZGlzY29ubmVjdAotCQkJfHwgIWRyaXZlci0+c2V0dXApCi0JCXJldHVybiAtRUlOVkFMOwotCWlmICghZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKLQlpZiAoZGV2LT5kcml2ZXIpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQkvKiBmaXJzdCBob29rIHVwIHRoZSBkcml2ZXIgLi4uICovCi0JZGV2LT5kcml2ZXIgPSBkcml2ZXI7Ci0JZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9ICZkcml2ZXItPmRyaXZlcjsKLQlkZXYtPnB1bGx1cCA9IDE7Ci0KLQlyZXR2YWwgPSBkZXZpY2VfYWRkICgmZGV2LT5nYWRnZXQuZGV2KTsKLQlpZiAocmV0dmFsKSB7Ci1mYWlsOgotCQlkZXYtPmRyaXZlciA9IE5VTEw7Ci0JCWRldi0+Z2FkZ2V0LmRldi5kcml2ZXIgPSBOVUxMOwotCQlyZXR1cm4gcmV0dmFsOwotCX0KLQlyZXR2YWwgPSBkcml2ZXItPmJpbmQoJmRldi0+Z2FkZ2V0KTsKLQlpZiAocmV0dmFsKSB7Ci0JCURNU0coImJpbmQgdG8gZHJpdmVyICVzIC0tPiBlcnJvciAlZFxuIiwKLQkJCQlkcml2ZXItPmRyaXZlci5uYW1lLCByZXR2YWwpOwotCQlkZXZpY2VfZGVsICgmZGV2LT5nYWRnZXQuZGV2KTsKLQkJZ290byBmYWlsOwotCX0KLQotCS8qIC4uLiB0aGVuIGVuYWJsZSBob3N0IGRldGVjdGlvbiBhbmQgZXAwOyBhbmQgd2UncmUgcmVhZHkKLQkgKiBmb3Igc2V0X2NvbmZpZ3VyYXRpb24gYXMgd2VsbCBhcyBldmVudHVhbCBkaXNjb25uZWN0LgotCSAqLwotCURNU0coInJlZ2lzdGVyZWQgZ2FkZ2V0IGRyaXZlciAnJXMnXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKLQlwdWxsdXAoZGV2KTsKLQlkdW1wX3N0YXRlKGRldik7Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKHVzYl9nYWRnZXRfcmVnaXN0ZXJfZHJpdmVyKTsKLQotc3RhdGljIHZvaWQKLXN0b3BfYWN0aXZpdHkoc3RydWN0IHB4YTJ4eF91ZGMgKmRldiwgc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyICpkcml2ZXIpCi17Ci0JaW50IGk7Ci0KLQkvKiBkb24ndCBkaXNjb25uZWN0IGRyaXZlcnMgbW9yZSB0aGFuIG9uY2UgKi8KLQlpZiAoZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pCi0JCWRyaXZlciA9IE5VTEw7Ci0JZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKLQotCS8qIHByZXZlbnQgbmV3IHJlcXVlc3Qgc3VibWlzc2lvbnMsIGtpbGwgYW55IG91dHN0YW5kaW5nIHJlcXVlc3RzICAqLwotCWZvciAoaSA9IDA7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgewotCQlzdHJ1Y3QgcHhhMnh4X2VwICplcCA9ICZkZXYtPmVwW2ldOwotCi0JCWVwLT5zdG9wcGVkID0gMTsKLQkJbnVrZShlcCwgLUVTSFVURE9XTik7Ci0JfQotCWRlbF90aW1lcl9zeW5jKCZkZXYtPnRpbWVyKTsKLQotCS8qIHJlcG9ydCBkaXNjb25uZWN0OyB0aGUgZHJpdmVyIGlzIGFscmVhZHkgcXVpZXNjZWQgKi8KLQlpZiAoZHJpdmVyKQotCQlkcml2ZXItPmRpc2Nvbm5lY3QoJmRldi0+Z2FkZ2V0KTsKLQotCS8qIHJlLWluaXQgZHJpdmVyLXZpc2libGUgZGF0YSBzdHJ1Y3R1cmVzICovCi0JdWRjX3JlaW5pdChkZXYpOwotfQotCi1pbnQgdXNiX2dhZGdldF91bnJlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqZGV2ID0gdGhlX2NvbnRyb2xsZXI7Ci0KLQlpZiAoIWRldikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JaWYgKCFkcml2ZXIgfHwgZHJpdmVyICE9IGRldi0+ZHJpdmVyIHx8ICFkcml2ZXItPnVuYmluZCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCWRldi0+cHVsbHVwID0gMDsKLQlwdWxsdXAoZGV2KTsKLQlzdG9wX2FjdGl2aXR5KGRldiwgZHJpdmVyKTsKLQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlkcml2ZXItPnVuYmluZCgmZGV2LT5nYWRnZXQpOwotCWRldi0+Z2FkZ2V0LmRldi5kcml2ZXIgPSBOVUxMOwotCWRldi0+ZHJpdmVyID0gTlVMTDsKLQotCWRldmljZV9kZWwgKCZkZXYtPmdhZGdldC5kZXYpOwotCi0JRE1TRygidW5yZWdpc3RlcmVkIGdhZGdldCBkcml2ZXIgJyVzJ1xuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSk7Ci0JZHVtcF9zdGF0ZShkZXYpOwotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTCh1c2JfZ2FkZ2V0X3VucmVnaXN0ZXJfZHJpdmVyKTsKLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotCi0vKiBMdWJib2NrIGhhcyBzZXBhcmF0ZSBjb25uZWN0IGFuZCBkaXNjb25uZWN0IGlycXMuICBNb3JlIHR5cGljYWwgZGVzaWducwotICogdXNlIG9uZSBHUElPIGFzIHRoZSBWQlVTIElSUSwgYW5kIGFub3RoZXIgdG8gY29udHJvbCB0aGUgRCsgcHVsbHVwLgotICovCi0KLXN0YXRpYyBpcnFyZXR1cm5fdAotbHViYm9ja192YnVzX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSBfZGV2OwotCWludAkJCXZidXM7Ci0KLQlkZXYtPnN0YXRzLmlycXMrKzsKLQlzd2l0Y2ggKGlycSkgewotCWNhc2UgTFVCQk9DS19VU0JfSVJROgotCQl2YnVzID0gMTsKLQkJZGlzYWJsZV9pcnEoTFVCQk9DS19VU0JfSVJRKTsKLQkJZW5hYmxlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSk7Ci0JCWJyZWFrOwotCWNhc2UgTFVCQk9DS19VU0JfRElTQ19JUlE6Ci0JCXZidXMgPSAwOwotCQlkaXNhYmxlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSk7Ci0JCWVuYWJsZV9pcnEoTFVCQk9DS19VU0JfSVJRKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIElSUV9OT05FOwotCX0KLQotCXB4YTJ4eF91ZGNfdmJ1c19zZXNzaW9uKCZkZXYtPmdhZGdldCwgdmJ1cyk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0jZW5kaWYKLQotc3RhdGljIGlycXJldHVybl90IHVkY192YnVzX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSBfZGV2OwotCWludAkJCXZidXMgPSBncGlvX2dldF92YWx1ZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0KLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXNfaW52ZXJ0ZWQpCi0JCXZidXMgPSAhdmJ1czsKLQotCXB4YTJ4eF91ZGNfdmJ1c19zZXNzaW9uKCZkZXYtPmdhZGdldCwgdmJ1cyk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9lcF9zdGF0ZSAoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1bnNpZ25lZCBpOwotCi0JLyogaGFyZHdhcmUgU0VUX3tDT05GSUdVUkFUSU9OLElOVEVSRkFDRX0gYXV0b21hZ2ljIHJlc2V0cyBlbmRwb2ludAotCSAqIGZpZm9zLCBhbmQgcGVuZGluZyB0cmFuc2FjdGlvbnMgbXVzdG4ndCBiZSBjb250aW51ZWQgaW4gYW55IGNhc2UuCi0JICovCi0JZm9yIChpID0gMTsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKQotCQludWtlKCZkZXYtPmVwW2ldLCAtRUNPTk5BQk9SVEVEKTsKLX0KLQotc3RhdGljIHZvaWQgdWRjX3dhdGNoZG9nKHVuc2lnbmVkIGxvbmcgX2RldikKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqZGV2ID0gKHZvaWQgKilfZGV2OwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKLQlpZiAoZGV2LT5lcDBzdGF0ZSA9PSBFUDBfU1RBTEwKLQkJCSYmIChVRENDUzAgJiBVRENDUzBfRlNUKSA9PSAwCi0JCQkmJiAoVURDQ1MwICYgVURDQ1MwX1NTVCkgPT0gMCkgewotCQlVRENDUzAgPSBVRENDUzBfRlNUfFVEQ0NTMF9GVEY7Ci0JCURCRyhEQkdfVkVSQk9TRSwgImVwMCByZS1zdGFsbFxuIik7Ci0JCXN0YXJ0X3dhdGNoZG9nKGRldik7Ci0JfQotCWxvY2FsX2lycV9lbmFibGUoKTsKLX0KLQotc3RhdGljIHZvaWQgaGFuZGxlX2VwMCAoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1MzIJCQl1ZGNjczAgPSBVRENDUzA7Ci0Jc3RydWN0IHB4YTJ4eF9lcAkqZXAgPSAmZGV2LT5lcCBbMF07Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0CSpyZXE7Ci0JdW5pb24gewotCQlzdHJ1Y3QgdXNiX2N0cmxyZXF1ZXN0CXI7Ci0JCXU4CQkJcmF3IFs4XTsKLQkJdTMyCQkJd29yZCBbMl07Ci0JfSB1OwotCi0JaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCi0JCXJlcSA9IE5VTEw7Ci0JZWxzZQotCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LCBzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QsIHF1ZXVlKTsKLQotCS8qIGNsZWFyIHN0YWxsIHN0YXR1cyAqLwotCWlmICh1ZGNjczAgJiBVRENDUzBfU1NUKSB7Ci0JCW51a2UoZXAsIC1FUElQRSk7Ci0JCVVEQ0NTMCA9IFVEQ0NTMF9TU1Q7Ci0JCWRlbF90aW1lcigmZGV2LT50aW1lcik7Ci0JCWVwMF9pZGxlKGRldik7Ci0JfQotCi0JLyogcHJldmlvdXMgcmVxdWVzdCB1bmZpbmlzaGVkPyAgbm9uLWVycm9yIGlmZiBiYWNrLXRvLWJhY2sgLi4uICovCi0JaWYgKCh1ZGNjczAgJiBVRENDUzBfU0EpICE9IDAgJiYgZGV2LT5lcDBzdGF0ZSAhPSBFUDBfSURMRSkgewotCQludWtlKGVwLCAwKTsKLQkJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKLQkJZXAwX2lkbGUoZGV2KTsKLQl9Ci0KLQlzd2l0Y2ggKGRldi0+ZXAwc3RhdGUpIHsKLQljYXNlIEVQMF9JRExFOgotCQkvKiBsYXRlLWJyZWFraW5nIHN0YXR1cz8gKi8KLQkJdWRjY3MwID0gVURDQ1MwOwotCi0JCS8qIHN0YXJ0IGNvbnRyb2wgcmVxdWVzdD8gKi8KLQkJaWYgKGxpa2VseSgodWRjY3MwICYgKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBfFVEQ0NTMF9STkUpKQotCQkJCT09IChVRENDUzBfT1BSfFVEQ0NTMF9TQXxVRENDUzBfUk5FKSkpIHsKLQkJCWludCBpOwotCi0JCQludWtlIChlcCwgLUVQUk9UTyk7Ci0KLQkJCS8qIHJlYWQgU0VUVVAgcGFja2V0ICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0JCQkJaWYgKHVubGlrZWx5KCEoVURDQ1MwICYgVURDQ1MwX1JORSkpKSB7Ci1iYWRfc2V0dXA6Ci0JCQkJCURNU0coIlNFVFVQICVkIVxuIiwgaSk7Ci0JCQkJCWdvdG8gc3RhbGw7Ci0JCQkJfQotCQkJCXUucmF3IFtpXSA9ICh1OCkgVUREUjA7Ci0JCQl9Ci0JCQlpZiAodW5saWtlbHkoKFVEQ0NTMCAmIFVEQ0NTMF9STkUpICE9IDApKQotCQkJCWdvdG8gYmFkX3NldHVwOwotCi1nb3Rfc2V0dXA6Ci0JCQlEQkcoREJHX1ZFUkJPU0UsICJTRVRVUCAlMDJ4LiUwMnggdiUwNHggaSUwNHggbCUwNHhcbiIsCi0JCQkJdS5yLmJSZXF1ZXN0VHlwZSwgdS5yLmJSZXF1ZXN0LAotCQkJCWxlMTZfdG9fY3B1KHUuci53VmFsdWUpLAotCQkJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpLAotCQkJCWxlMTZfdG9fY3B1KHUuci53TGVuZ3RoKSk7Ci0KLQkJCS8qIGNvcGUgd2l0aCBhdXRvbWFnaWMgZm9yIHNvbWUgc3RhbmRhcmQgcmVxdWVzdHMuICovCi0JCQlkZXYtPnJlcV9zdGQgPSAodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9UWVBFX01BU0spCi0JCQkJCQk9PSBVU0JfVFlQRV9TVEFOREFSRDsKLQkJCWRldi0+cmVxX2NvbmZpZyA9IDA7Ci0JCQlkZXYtPnJlcV9wZW5kaW5nID0gMTsKLQkJCXN3aXRjaCAodS5yLmJSZXF1ZXN0KSB7Ci0JCQkvKiBoYXJkd2FyZSByZXN0cmljdHMgZ2FkZ2V0IGRyaXZlcnMgaGVyZSEgKi8KLQkJCWNhc2UgVVNCX1JFUV9TRVRfQ09ORklHVVJBVElPTjoKLQkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfREVWSUNFKSB7Ci0JCQkJCS8qIHJlZmxlY3QgaGFyZHdhcmUncyBhdXRvbWFnaWMKLQkJCQkJICogdXAgdG8gdGhlIGdhZGdldCBkcml2ZXIuCi0JCQkJCSAqLwotY29uZmlnX2NoYW5nZToKLQkJCQkJZGV2LT5yZXFfY29uZmlnID0gMTsKLQkJCQkJY2xlYXJfZXBfc3RhdGUoZGV2KTsKLQkJCQkJLyogaWYgIWhhc19jZnIsIHRoZXJlJ3Mgbm8gc3luY2gKLQkJCQkJICogZWxzZSB1c2UgQVJFTiAobGF0ZXIpIG5vdCBTQXxPUFIKLQkJCQkJICogVVNJUjBfSVIwIGFjdHMgZWRnZSBzZW5zaXRpdmUKLQkJCQkJICovCi0JCQkJfQotCQkJCWJyZWFrOwotCQkJLyogLi4uIGFuZCBoZXJlLCBldmVuIG1vcmUgLi4uICovCi0JCQljYXNlIFVTQl9SRVFfU0VUX0lOVEVSRkFDRToKLQkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfSU5URVJGQUNFKSB7Ci0JCQkJCS8qIHVkYyBoYXJkd2FyZSBpcyBicm9rZW4gYnkgZGVzaWduOgotCQkJCQkgKiAgLSBhbHRzZXR0aW5nIG1heSBvbmx5IGJlIHplcm87Ci0JCQkJCSAqICAtIGh3IHJlc2V0cyBhbGwgaW50ZXJmYWNlcycgZXBzOwotCQkJCQkgKiAgLSBlcCByZXNldCBkb2Vzbid0IGluY2x1ZGUgaGFsdCg/KS4KLQkJCQkJICovCi0JCQkJCURNU0coImJyb2tlbiBzZXRfaW50ZXJmYWNlICglZC8lZClcbiIsCi0JCQkJCQlsZTE2X3RvX2NwdSh1LnIud0luZGV4KSwKLQkJCQkJCWxlMTZfdG9fY3B1KHUuci53VmFsdWUpKTsKLQkJCQkJZ290byBjb25maWdfY2hhbmdlOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCS8qIGhhcmR3YXJlIHdhcyBzdXBwb3NlZCB0byBoaWRlIHRoaXMgKi8KLQkJCWNhc2UgVVNCX1JFUV9TRVRfQUREUkVTUzoKLQkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfREVWSUNFKSB7Ci0JCQkJCWVwMHN0YXJ0KGRldiwgMCwgImFkZHJlc3MiKTsKLQkJCQkJcmV0dXJuOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCX0KLQotCQkJaWYgKHUuci5iUmVxdWVzdFR5cGUgJiBVU0JfRElSX0lOKQotCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfSU5fREFUQV9QSEFTRTsKLQkJCWVsc2UKLQkJCQlkZXYtPmVwMHN0YXRlID0gRVAwX09VVF9EQVRBX1BIQVNFOwotCi0JCQlpID0gZGV2LT5kcml2ZXItPnNldHVwKCZkZXYtPmdhZGdldCwgJnUucik7Ci0JCQlpZiAoaSA8IDApIHsKLQkJCQkvKiBoYXJkd2FyZSBhdXRvbWFnaWMgcHJldmVudGluZyBTVEFMTC4uLiAqLwotCQkJCWlmIChkZXYtPnJlcV9jb25maWcpIHsKLQkJCQkJLyogaGFyZHdhcmUgc29tZXRpbWVzIG5lZ2xlY3RzIHRvIHRlbGwKLQkJCQkJICogdGVsbCB1cyBhYm91dCBjb25maWcgY2hhbmdlIGV2ZW50cywKLQkJCQkJICogc28gbGF0ZXIgb25lcyBtYXkgZmFpbC4uLgotCQkJCQkgKi8KLQkJCQkJV0FSTigiY29uZmlnIGNoYW5nZSAlMDJ4IGZhaWwgJWQ/XG4iLAotCQkJCQkJdS5yLmJSZXF1ZXN0LCBpKTsKLQkJCQkJcmV0dXJuOwotCQkJCQkvKiBUT0RPIGV4cGVyaW1lbnQ6ICBpZiBoYXNfY2ZyLAotCQkJCQkgKiBoYXJkd2FyZSBkaWRuJ3QgQUNLOyBtYXliZSB3ZQotCQkJCQkgKiBjb3VsZCBhY3R1YWxseSBTVEFMTCEKLQkJCQkJICovCi0JCQkJfQotCQkJCURCRyhEQkdfVkVSQk9TRSwgInByb3RvY29sIFNUQUxMLCAiCi0JCQkJCSIlMDJ4IGVyciAlZFxuIiwgVURDQ1MwLCBpKTsKLXN0YWxsOgotCQkJCS8qIHRoZSB3YXRjaGRvZyB0aW1lciBoZWxwcyBkZWFsIHdpdGggY2FzZXMKLQkJCQkgKiB3aGVyZSB1ZGMgc2VlbXMgdG8gY2xlYXIgRlNUIHdyb25nbHksIGFuZAotCQkJCSAqIHRoZW4gTkFLcyBpbnN0ZWFkIG9mIFNUQUxMaW5nLgotCQkJCSAqLwotCQkJCWVwMHN0YXJ0KGRldiwgVURDQ1MwX0ZTVHxVRENDUzBfRlRGLCAic3RhbGwiKTsKLQkJCQlzdGFydF93YXRjaGRvZyhkZXYpOwotCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfU1RBTEw7Ci0KLQkJCS8qIGRlZmVycmVkIGkvbyA9PSBubyByZXNwb25zZSB5ZXQgKi8KLQkJCX0gZWxzZSBpZiAoZGV2LT5yZXFfcGVuZGluZykgewotCQkJCWlmIChsaWtlbHkoZGV2LT5lcDBzdGF0ZSA9PSBFUDBfSU5fREFUQV9QSEFTRQotCQkJCQkJfHwgZGV2LT5yZXFfc3RkIHx8IHUuci53TGVuZ3RoKSkKLQkJCQkJZXAwc3RhcnQoZGV2LCAwLCAiZGVmZXIiKTsKLQkJCQllbHNlCi0JCQkJCWVwMHN0YXJ0KGRldiwgVURDQ1MwX0lQUiwgImRlZmVyL0lQUiIpOwotCQkJfQotCi0JCQkvKiBleHBlY3QgYXQgbGVhc3Qgb25lIGRhdGEgb3Igc3RhdHVzIHN0YWdlIGlycSAqLwotCQkJcmV0dXJuOwotCi0JCX0gZWxzZSBpZiAobGlrZWx5KCh1ZGNjczAgJiAoVURDQ1MwX09QUnxVRENDUzBfU0EpKQotCQkJCT09IChVRENDUzBfT1BSfFVEQ0NTMF9TQSkpKSB7Ci0JCQl1bnNpZ25lZCBpOwotCi0JCQkvKiBweGEyMTAvMjUwIGVycmF0dW0gMTMxIGZvciBCMC9CMSBzYXlzIFJORSBsaWVzLgotCQkJICogc3RpbGwgb2JzZXJ2ZWQgb24gYSBweGEyNTUgYTAuCi0JCQkgKi8KLQkJCURCRyhEQkdfVkVSQk9TRSwgImUxMzFcbiIpOwotCQkJbnVrZShlcCwgLUVQUk9UTyk7Ci0KLQkJCS8qIHJlYWQgU0VUVVAgZGF0YSwgYnV0IGRvbid0IHRydXN0IGl0IHRvbyBtdWNoICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQotCQkJCXUucmF3IFtpXSA9ICh1OCkgVUREUjA7Ci0JCQlpZiAoKHUuci5iUmVxdWVzdFR5cGUgJiBVU0JfUkVDSVBfTUFTSykKLQkJCQkJPiBVU0JfUkVDSVBfT1RIRVIpCi0JCQkJZ290byBzdGFsbDsKLQkJCWlmICh1LndvcmQgWzBdID09IDAgJiYgdS53b3JkIFsxXSA9PSAwKQotCQkJCWdvdG8gc3RhbGw7Ci0JCQlnb3RvIGdvdF9zZXR1cDsKLQkJfSBlbHNlIHsKLQkJCS8qIHNvbWUgcmFuZG9tIGVhcmx5IElSUToKLQkJCSAqIC0gd2UgYWNrZWQgRlNUCi0JCQkgKiAtIElQUiBjbGVhcmVkCi0JCQkgKiAtIE9QUiBnb3Qgc2V0LCB3aXRob3V0IFNBIChsaWtlbHkgc3RhdHVzIHN0YWdlKQotCQkJICovCi0JCQlVRENDUzAgPSB1ZGNjczAgJiAoVURDQ1MwX1NBfFVEQ0NTMF9PUFIpOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgRVAwX0lOX0RBVEFfUEhBU0U6CQkJLyogR0VUX0RFU0NSSVBUT1IgZXRjICovCi0JCWlmICh1ZGNjczAgJiBVRENDUzBfT1BSKSB7Ci0JCQlVRENDUzAgPSBVRENDUzBfT1BSfFVEQ0NTMF9GVEY7Ci0JCQlEQkcoREJHX1ZFUkJPU0UsICJlcDBpbiBwcmVtYXR1cmUgc3RhdHVzXG4iKTsKLQkJCWlmIChyZXEpCi0JCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCWVwMF9pZGxlKGRldik7Ci0JCX0gZWxzZSAvKiBpcnEgd2FzIElQUiBjbGVhcmluZyAqLyB7Ci0JCQlpZiAocmVxKSB7Ci0JCQkJLyogdGhpcyBJTiBwYWNrZXQgbWlnaHQgZmluaXNoIHRoZSByZXF1ZXN0ICovCi0JCQkJKHZvaWQpIHdyaXRlX2VwMF9maWZvKGVwLCByZXEpOwotCQkJfSAvKiBlbHNlIElOIHRva2VuIGJlZm9yZSByZXNwb25zZSB3YXMgd3JpdHRlbiAqLwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgRVAwX09VVF9EQVRBX1BIQVNFOgkJLyogU0VUX0RFU0NSSVBUT1IgZXRjICovCi0JCWlmICh1ZGNjczAgJiBVRENDUzBfT1BSKSB7Ci0JCQlpZiAocmVxKSB7Ci0JCQkJLyogdGhpcyBPVVQgcGFja2V0IG1pZ2h0IGZpbmlzaCB0aGUgcmVxdWVzdCAqLwotCQkJCWlmIChyZWFkX2VwMF9maWZvKGVwLCByZXEpKQotCQkJCQlkb25lKGVwLCByZXEsIDApOwotCQkJCS8qIGVsc2UgbW9yZSBPVVQgcGFja2V0cyBleHBlY3RlZCAqLwotCQkJfSAvKiBlbHNlIE9VVCB0b2tlbiBiZWZvcmUgcmVhZCB3YXMgaXNzdWVkICovCi0JCX0gZWxzZSAvKiBpcnEgd2FzIElQUiBjbGVhcmluZyAqLyB7Ci0JCQlEQkcoREJHX1ZFUkJPU0UsICJlcDBvdXQgcHJlbWF0dXJlIHN0YXR1c1xuIik7Ci0JCQlpZiAocmVxKQotCQkJCWRvbmUoZXAsIHJlcSwgMCk7Ci0JCQllcDBfaWRsZShkZXYpOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgRVAwX0VORF9YRkVSOgotCQlpZiAocmVxKQotCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJLyogYWNrIGNvbnRyb2wtSU4gc3RhdHVzIChtYXliZSBpbi16bHAgd2FzIHNraXBwZWQpCi0JCSAqIGFsc28gYXBwZWFycyBhZnRlciBzb21lIGNvbmZpZyBjaGFuZ2UgZXZlbnRzLgotCQkgKi8KLQkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpCi0JCQlVRENDUzAgPSBVRENDUzBfT1BSOwotCQllcDBfaWRsZShkZXYpOwotCQlicmVhazsKLQljYXNlIEVQMF9TVEFMTDoKLQkJVURDQ1MwID0gVURDQ1MwX0ZTVDsKLQkJYnJlYWs7Ci0JfQotCVVTSVIwID0gVVNJUjBfSVIwOwotfQotCi1zdGF0aWMgdm9pZCBoYW5kbGVfZXAoc3RydWN0IHB4YTJ4eF9lcCAqZXApCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0CSpyZXE7Ci0JaW50CQkJaXNfaW4gPSBlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU47Ci0JaW50CQkJY29tcGxldGVkOwotCXUzMgkJCXVkY2NzLCB0bXA7Ci0KLQlkbyB7Ci0JCWNvbXBsZXRlZCA9IDA7Ci0JCWlmIChsaWtlbHkgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSkKLQkJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsCi0JCQkJCXN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcXVldWUpOwotCQllbHNlCi0JCQlyZXEgPSBOVUxMOwotCi0JCS8vIFRPRE8gY2hlY2sgRlNUIGhhbmRsaW5nCi0KLQkJdWRjY3MgPSAqZXAtPnJlZ191ZGNjczsKLQkJaWYgKHVubGlrZWx5KGlzX2luKSkgewkvKiBpcnEgZnJvbSBUUEMsIFNTVCwgb3IgKElTTykgVFVSICovCi0JCQl0bXAgPSBVRENDU19CSV9UVVI7Ci0JCQlpZiAobGlrZWx5KGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykpCi0JCQkJdG1wIHw9IFVEQ0NTX0JJX1NTVDsKLQkJCXRtcCAmPSB1ZGNjczsKLQkJCWlmIChsaWtlbHkgKHRtcCkpCi0JCQkJKmVwLT5yZWdfdWRjY3MgPSB0bXA7Ci0JCQlpZiAocmVxICYmIGxpa2VseSAoKHVkY2NzICYgVURDQ1NfQklfVEZTKSAhPSAwKSkKLQkJCQljb21wbGV0ZWQgPSB3cml0ZV9maWZvKGVwLCByZXEpOwotCi0JCX0gZWxzZSB7CS8qIGlycSBmcm9tIFJQQyAob3IgZm9yIElTTywgUk9GKSAqLwotCQkJaWYgKGxpa2VseShlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEspKQotCQkJCXRtcCA9IFVEQ0NTX0JPX1NTVCB8IFVEQ0NTX0JPX0RNRTsKLQkJCWVsc2UKLQkJCQl0bXAgPSBVRENDU19JT19ST0YgfCBVRENDU19JT19ETUU7Ci0JCQl0bXAgJj0gdWRjY3M7Ci0JCQlpZiAobGlrZWx5KHRtcCkpCi0JCQkJKmVwLT5yZWdfdWRjY3MgPSB0bXA7Ci0KLQkJCS8qIGZpZm9zIGNhbiBob2xkIHBhY2tldHMsIHJlYWR5IGZvciByZWFkaW5nLi4uICovCi0JCQlpZiAobGlrZWx5KHJlcSkpIHsKLQkJCQljb21wbGV0ZWQgPSByZWFkX2ZpZm8oZXAsIHJlcSk7Ci0JCQl9IGVsc2UKLQkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKLQkJfQotCQllcC0+cGlvX2lycXMrKzsKLQl9IHdoaWxlIChjb21wbGV0ZWQpOwotfQotCi0vKgotICoJcHhhMnh4X3VkY19pcnEgLSBpbnRlcnJ1cHQgaGFuZGxlcgotICoKLSAqIGF2b2lkIGRlbGF5cyBpbiBlcDAgcHJvY2Vzc2luZy4gdGhlIGNvbnRyb2wgaGFuZHNoYWtpbmcgaXNuJ3QgYWx3YXlzCi0gKiB1bmRlciBzb2Z0d2FyZSBjb250cm9sIChweGEyNTBjMCBhbmQgdGhlIHB4YTI1NSBhcmUgYmV0dGVyKSwgYW5kIGRlbGF5cwotICogY291bGQgY2F1c2UgdXNiIHByb3RvY29sIGVycm9ycy4KLSAqLwotc3RhdGljIGlycXJldHVybl90Ci1weGEyeHhfdWRjX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSBfZGV2OwotCWludAkJCWhhbmRsZWQ7Ci0KLQlkZXYtPnN0YXRzLmlycXMrKzsKLQlkbyB7Ci0JCXUzMgkJdWRjY3IgPSBVRENDUjsKLQotCQloYW5kbGVkID0gMDsKLQotCQkvKiBTVVNwZW5kIEludGVycnVwdCBSZXF1ZXN0ICovCi0JCWlmICh1bmxpa2VseSh1ZGNjciAmIFVEQ0NSX1NVU0lSKSkgewotCQkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfU1VTSVIpOwotCQkJaGFuZGxlZCA9IDE7Ci0JCQlEQkcoREJHX1ZFUkJPU0UsICJVU0Igc3VzcGVuZCVzXG4iLCBpc192YnVzX3ByZXNlbnQoKQotCQkJCT8gIiIgOiAiK2Rpc2Nvbm5lY3QiKTsKLQotCQkJaWYgKCFpc192YnVzX3ByZXNlbnQoKSkKLQkJCQlzdG9wX2FjdGl2aXR5KGRldiwgZGV2LT5kcml2ZXIpOwotCQkJZWxzZSBpZiAoZGV2LT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04KLQkJCQkJJiYgZGV2LT5kcml2ZXIKLQkJCQkJJiYgZGV2LT5kcml2ZXItPnN1c3BlbmQpCi0JCQkJZGV2LT5kcml2ZXItPnN1c3BlbmQoJmRldi0+Z2FkZ2V0KTsKLQkJCWVwMF9pZGxlIChkZXYpOwotCQl9Ci0KLQkJLyogUkVTdW1lIEludGVycnVwdCBSZXF1ZXN0ICovCi0JCWlmICh1bmxpa2VseSh1ZGNjciAmIFVEQ0NSX1JFU0lSKSkgewotCQkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfUkVTSVIpOwotCQkJaGFuZGxlZCA9IDE7Ci0JCQlEQkcoREJHX1ZFUkJPU0UsICJVU0IgcmVzdW1lXG4iKTsKLQotCQkJaWYgKGRldi0+Z2FkZ2V0LnNwZWVkICE9IFVTQl9TUEVFRF9VTktOT1dOCi0JCQkJCSYmIGRldi0+ZHJpdmVyCi0JCQkJCSYmIGRldi0+ZHJpdmVyLT5yZXN1bWUKLQkJCQkJJiYgaXNfdmJ1c19wcmVzZW50KCkpCi0JCQkJZGV2LT5kcml2ZXItPnJlc3VtZSgmZGV2LT5nYWRnZXQpOwotCQl9Ci0KLQkJLyogUmVTZVQgSW50ZXJydXB0IFJlcXVlc3QgLSBVU0IgcmVzZXQgKi8KLQkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfUlNUSVIpKSB7Ci0JCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SU1RJUik7Ci0JCQloYW5kbGVkID0gMTsKLQotCQkJaWYgKChVRENDUiAmIFVEQ0NSX1VEQSkgPT0gMCkgewotCQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXNldCBzdGFydFxuIik7Ci0KLQkJCQkvKiByZXNldCBkcml2ZXIgYW5kIGVuZHBvaW50cywKLQkJCQkgKiBpbiBjYXNlIHRoYXQncyBub3QgeWV0IGRvbmUKLQkJCQkgKi8KLQkJCQlzdG9wX2FjdGl2aXR5IChkZXYsIGRldi0+ZHJpdmVyKTsKLQotCQkJfSBlbHNlIHsKLQkJCQlEQkcoREJHX1ZFUkJPU0UsICJVU0IgcmVzZXQgZW5kXG4iKTsKLQkJCQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9GVUxMOwotCQkJCW1lbXNldCgmZGV2LT5zdGF0cywgMCwgc2l6ZW9mIGRldi0+c3RhdHMpOwotCQkJCS8qIGRyaXZlciBhbmQgZW5kcG9pbnRzIGFyZSBzdGlsbCByZXNldCAqLwotCQkJfQotCi0JCX0gZWxzZSB7Ci0JCQl1MzIJdXNpcjAgPSBVU0lSMCAmIH5VSUNSMDsKLQkJCXUzMgl1c2lyMSA9IFVTSVIxICYgflVJQ1IxOwotCQkJaW50CWk7Ci0KLQkJCWlmICh1bmxpa2VseSAoIXVzaXIwICYmICF1c2lyMSkpCi0JCQkJY29udGludWU7Ci0KLQkJCURCRyhEQkdfVkVSWV9OT0lTWSwgImlycSAlMDJ4LiUwMnhcbiIsIHVzaXIxLCB1c2lyMCk7Ci0KLQkJCS8qIGNvbnRyb2wgdHJhZmZpYyAqLwotCQkJaWYgKHVzaXIwICYgVVNJUjBfSVIwKSB7Ci0JCQkJZGV2LT5lcFswXS5waW9faXJxcysrOwotCQkJCWhhbmRsZV9lcDAoZGV2KTsKLQkJCQloYW5kbGVkID0gMTsKLQkJCX0KLQotCQkJLyogZW5kcG9pbnQgZGF0YSB0cmFuc2ZlcnMgKi8KLQkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJCQl1MzIJdG1wID0gMSA8PCBpOwotCi0JCQkJaWYgKGkgJiYgKHVzaXIwICYgdG1wKSkgewotCQkJCQloYW5kbGVfZXAoJmRldi0+ZXBbaV0pOwotCQkJCQlVU0lSMCB8PSB0bXA7Ci0JCQkJCWhhbmRsZWQgPSAxOwotCQkJCX0KLQkJCQlpZiAodXNpcjEgJiB0bXApIHsKLQkJCQkJaGFuZGxlX2VwKCZkZXYtPmVwW2krOF0pOwotCQkJCQlVU0lSMSB8PSB0bXA7Ci0JCQkJCWhhbmRsZWQgPSAxOwotCQkJCX0KLQkJCX0KLQkJfQotCi0JCS8qIHdlIGNvdWxkIGFsc28gYXNrIGZvciAxIG1zZWMgU09GIChTSVIpIGludGVycnVwdHMgKi8KLQotCX0gd2hpbGUgKGhhbmRsZWQpOwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIHZvaWQgbm9wX3JlbGVhc2UgKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlETVNHKCIlcyAlc1xuIiwgX19mdW5jX18sIGRldi0+YnVzX2lkKTsKLX0KLQotLyogdGhpcyB1c2VzIGxvYWQtdGltZSBhbGxvY2F0aW9uIGFuZCBpbml0aWFsaXphdGlvbiAoaW5zdGVhZCBvZgotICogZG9pbmcgaXQgYXQgcnVuLXRpbWUpIHRvIHNhdmUgY29kZSwgZWxpbWluYXRlIGZhdWx0IHBhdGhzLCBhbmQKLSAqIGJlIG1vcmUgb2J2aW91c2x5IGNvcnJlY3QuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcHhhMnh4X3VkYyBtZW1vcnkgPSB7Ci0JLmdhZGdldCA9IHsKLQkJLm9wcwkJPSAmcHhhMnh4X3VkY19vcHMsCi0JCS5lcDAJCT0gJm1lbW9yeS5lcFswXS5lcCwKLQkJLm5hbWUJCT0gZHJpdmVyX25hbWUsCi0JCS5kZXYgPSB7Ci0JCQkuYnVzX2lkCQk9ICJnYWRnZXQiLAotCQkJLnJlbGVhc2UJPSBub3BfcmVsZWFzZSwKLQkJfSwKLQl9LAotCi0JLyogY29udHJvbCBlbmRwb2ludCAqLwotCS5lcFswXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gZXAwbmFtZSwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gRVAwX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMCwKLQkJLnJlZ191ZGRyCT0gJlVERFIwLAotCX0sCi0KLQkvKiBmaXJzdCBncm91cCBvZiBlbmRwb2ludHMgKi8KLQkuZXBbMV0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDFpbi1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzEsCi0JCS5yZWdfdWRkcgk9ICZVRERSMSwKLQl9LAotCS5lcFsyXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMm91dC1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDIsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMiwKLQkJLnJlZ191YmNyCT0gJlVCQ1IyLAotCQkucmVnX3VkZHIJPSAmVUREUjIsCi0JfSwKLSNpZm5kZWYgQ09ORklHX1VTQl9QWEEyWFhfU01BTEwKLQkuZXBbM10gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDNpbi1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAzLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzMsCi0JCS5yZWdfdWRkcgk9ICZVRERSMywKLQl9LAotCS5lcFs0XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwNG91dC1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDQsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTNCwKLQkJLnJlZ191YmNyCT0gJlVCQ1I0LAotCQkucmVnX3VkZHIJPSAmVUREUjQsCi0JfSwKLQkuZXBbNV0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDVpbi1pbnQiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA1LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTNSwKLQkJLnJlZ191ZGRyCT0gJlVERFI1LAotCX0sCi0KLQkvKiBzZWNvbmQgZ3JvdXAgb2YgZW5kcG9pbnRzICovCi0JLmVwWzZdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXA2aW4tYnVsayIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgNiwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M2LAotCQkucmVnX3VkZHIJPSAmVUREUjYsCi0JfSwKLQkuZXBbN10gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDdvdXQtYnVsayIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSA3LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzcsCi0JCS5yZWdfdWJjcgk9ICZVQkNSNywKLQkJLnJlZ191ZGRyCT0gJlVERFI3LAotCX0sCi0JLmVwWzhdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXA4aW4taXNvIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgOCwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M4LAotCQkucmVnX3VkZHIJPSAmVUREUjgsCi0JfSwKLQkuZXBbOV0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDlvdXQtaXNvIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSA5LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzksCi0JCS5yZWdfdWJjcgk9ICZVQkNSOSwKLQkJLnJlZ191ZGRyCT0gJlVERFI5LAotCX0sCi0JLmVwWzEwXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMTBpbi1pbnQiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMCwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCwKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzEwLAotCQkucmVnX3VkZHIJPSAmVUREUjEwLAotCX0sCi0KLQkvKiB0aGlyZCBncm91cCBvZiBlbmRwb2ludHMgKi8KLQkuZXBbMTFdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxMWluLWJ1bGsiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDExLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzExLAotCQkucmVnX3VkZHIJPSAmVUREUjExLAotCX0sCi0JLmVwWzEyXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMTJvdXQtYnVsayIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSAxMiwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MxMiwKLQkJLnJlZ191YmNyCT0gJlVCQ1IxMiwKLQkJLnJlZ191ZGRyCT0gJlVERFIxMiwKLQl9LAotCS5lcFsxM10gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDEzaW4taXNvIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTMsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTMsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTMsCi0JfSwKLQkuZXBbMTRdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxNG91dC1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDE0LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzE0LAotCQkucmVnX3ViY3IJPSAmVUJDUjE0LAotCQkucmVnX3VkZHIJPSAmVUREUjE0LAotCX0sCi0JLmVwWzE1XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMTVpbi1pbnQiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxNSwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCwKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzE1LAotCQkucmVnX3VkZHIJPSAmVUREUjE1LAotCX0sCi0jZW5kaWYgLyogIUNPTkZJR19VU0JfUFhBMlhYX1NNQUxMICovCi19OwotCi0jZGVmaW5lIENQMTVSMF9WRU5ET1JfTUFTSwkweGZmZmZlMDAwCi0KLSNpZglkZWZpbmVkKENPTkZJR19BUkNIX1BYQSkKLSNkZWZpbmUgQ1AxNVIwX1hTQ0FMRV9WQUxVRQkweDY5MDUyMDAwCS8qIGludGVsL2FybS94c2NhbGUgKi8KLQotI2VsaWYJZGVmaW5lZChDT05GSUdfQVJDSF9JWFA0WFgpCi0jZGVmaW5lIENQMTVSMF9YU0NBTEVfVkFMVUUJMHg2OTA1NDAwMAkvKiBpbnRlbC9hcm0vaXhwNHh4ICovCi0KLSNlbmRpZgotCi0jZGVmaW5lIENQMTVSMF9QUk9EX01BU0sJMHgwMDAwMDNmMAotI2RlZmluZSBQWEEyNXgJCQkweDAwMDAwMTAwCS8qIGFuZCBQWEEyNnggKi8KLSNkZWZpbmUgUFhBMjEwCQkJMHgwMDAwMDEyMAotCi0jZGVmaW5lIENQMTVSMF9SRVZfTUFTSwkJMHgwMDAwMDAwZgotCi0jZGVmaW5lIENQMTVSMF9QUk9EUkVWX01BU0sJKENQMTVSMF9QUk9EX01BU0sgfCBDUDE1UjBfUkVWX01BU0spCi0KLSNkZWZpbmUgUFhBMjU1X0EwCQkweDAwMDAwMTA2CS8qIG9yIFBYQTI2MF9CMSAqLwotI2RlZmluZSBQWEEyNTBfQzAJCTB4MDAwMDAxMDUJLyogb3IgUFhBMjZ4X0IwICovCi0jZGVmaW5lIFBYQTI1MF9CMgkJMHgwMDAwMDEwNAotI2RlZmluZSBQWEEyNTBfQjEJCTB4MDAwMDAxMDMJLyogb3IgUFhBMjYwX0EwICovCi0jZGVmaW5lIFBYQTI1MF9CMAkJMHgwMDAwMDEwMgotI2RlZmluZSBQWEEyNTBfQTEJCTB4MDAwMDAxMDEKLSNkZWZpbmUgUFhBMjUwX0EwCQkweDAwMDAwMTAwCi0KLSNkZWZpbmUgUFhBMjEwX0MwCQkweDAwMDAwMTI1Ci0jZGVmaW5lIFBYQTIxMF9CMgkJMHgwMDAwMDEyNAotI2RlZmluZSBQWEEyMTBfQjEJCTB4MDAwMDAxMjMKLSNkZWZpbmUgUFhBMjEwX0IwCQkweDAwMDAwMTIyCi0jZGVmaW5lIElYUDQyNV9BMAkJMHgwMDAwMDFjMQotI2RlZmluZSBJWFA0MjVfQjAJCTB4MDAwMDAxZjEKLSNkZWZpbmUgSVhQNDY1X0FECQkweDAwMDAwMjAwCi0KLS8qCi0gKglwcm9iZSAtIGJpbmRzIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UKLSAqLwotc3RhdGljIGludCBfX2luaXQgcHhhMnh4X3VkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjICpkZXYgPSAmbWVtb3J5OwotCWludCByZXR2YWwsIHZidXNfaXJxLCBpcnE7Ci0JdTMyIGNoaXByZXY7Ci0KLQkvKiBpbnNpc3Qgb24gSW50ZWwvQVJNL1hTY2FsZSAqLwotCWFzbSgibXJjJT8gcDE1LCAwLCAlMCwgYzAsIGMwIiA6ICI9ciIgKGNoaXByZXYpKTsKLQlpZiAoKGNoaXByZXYgJiBDUDE1UjBfVkVORE9SX01BU0spICE9IENQMTVSMF9YU0NBTEVfVkFMVUUpIHsKLQkJcHJfZXJyKCIlczogbm90IFhTY2FsZSFcbiIsIGRyaXZlcl9uYW1lKTsKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JLyogdHJpZ2dlciBjaGlwcmV2LXNwZWNpZmljIGxvZ2ljICovCi0Jc3dpdGNoIChjaGlwcmV2ICYgQ1AxNVIwX1BST0RSRVZfTUFTSykgewotI2lmCWRlZmluZWQoQ09ORklHX0FSQ0hfUFhBKQotCWNhc2UgUFhBMjU1X0EwOgotCQlkZXYtPmhhc19jZnIgPSAxOwotCQlicmVhazsKLQljYXNlIFBYQTI1MF9BMDoKLQljYXNlIFBYQTI1MF9BMToKLQkJLyogQTAvQTEgIm5vdCByZWxlYXNlZCI7IGVwIDEzLCAxNSB1bnVzYWJsZSAqLwotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIFBYQTI1MF9CMjogY2FzZSBQWEEyMTBfQjI6Ci0JY2FzZSBQWEEyNTBfQjE6IGNhc2UgUFhBMjEwX0IxOgotCWNhc2UgUFhBMjUwX0IwOiBjYXNlIFBYQTIxMF9CMDoKLQkJLyogT1VULURNQSBpcyBicm9rZW4gLi4uICovCi0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgUFhBMjUwX0MwOiBjYXNlIFBYQTIxMF9DMDoKLQkJYnJlYWs7Ci0jZWxpZglkZWZpbmVkKENPTkZJR19BUkNIX0lYUDRYWCkKLQljYXNlIElYUDQyNV9BMDoKLQljYXNlIElYUDQyNV9CMDoKLQljYXNlIElYUDQ2NV9BRDoKLQkJZGV2LT5oYXNfY2ZyID0gMTsKLQkJYnJlYWs7Ci0jZW5kaWYKLQlkZWZhdWx0OgotCQlwcl9lcnIoIiVzOiB1bnJlY29nbml6ZWQgcHJvY2Vzc29yOiAlMDh4XG4iLAotCQkJZHJpdmVyX25hbWUsIGNoaXByZXYpOwotCQkvKiBpb3AzeHgsIGl4cDR4eCwgLi4uICovCi0JCXJldHVybiAtRU5PREVWOwotCX0KLQotCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKGlycSA8IDApCi0JCXJldHVybiAtRU5PREVWOwotCi0JZGV2LT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJVRENDTEsiKTsKLQlpZiAoSVNfRVJSKGRldi0+Y2xrKSkgewotCQlyZXR2YWwgPSBQVFJfRVJSKGRldi0+Y2xrKTsKLQkJZ290byBlcnJfY2xrOwotCX0KLQotCXByX2RlYnVnKCIlczogSVJRICVkJXMlc1xuIiwgZHJpdmVyX25hbWUsIGlycSwKLQkJZGV2LT5oYXNfY2ZyID8gIiIgOiAiICghY2ZyKSIsCi0JCVNJWkVfU1RSICIocGlvKSIKLQkJKTsKLQotCS8qIG90aGVyIG5vbi1zdGF0aWMgcGFydHMgb2YgaW5pdCAqLwotCWRldi0+ZGV2ID0gJnBkZXYtPmRldjsKLQlkZXYtPm1hY2ggPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKLQotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykgewotCQlpZiAoKHJldHZhbCA9IGdwaW9fcmVxdWVzdChkZXYtPm1hY2gtPmdwaW9fdmJ1cywKLQkJCQkicHhhMnh4X3VkYyBHUElPIFZCVVMiKSkpIHsKLQkJCWRldl9kYmcoJnBkZXYtPmRldiwKLQkJCQkiY2FuJ3QgZ2V0IHZidXMgZ3BpbyAlZCwgZXJyOiAlZFxuIiwKLQkJCQlkZXYtPm1hY2gtPmdwaW9fdmJ1cywgcmV0dmFsKTsKLQkJCWdvdG8gZXJyX2dwaW9fdmJ1czsKLQkJfQotCQlncGlvX2RpcmVjdGlvbl9pbnB1dChkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0JCXZidXNfaXJxID0gZ3Bpb190b19pcnEoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOwotCX0gZWxzZQotCQl2YnVzX2lycSA9IDA7Ci0KLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkgewotCQlpZiAoKHJldHZhbCA9IGdwaW9fcmVxdWVzdChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwLAotCQkJCSJwY2EyeHhfdWRjIEdQSU8gUFVMTFVQIikpKSB7Ci0JCQlkZXZfZGJnKCZwZGV2LT5kZXYsCi0JCQkJImNhbid0IGdldCBwdWxsdXAgZ3BpbyAlZCwgZXJyOiAlZFxuIiwKLQkJCQlkZXYtPm1hY2gtPmdwaW9fcHVsbHVwLCByZXR2YWwpOwotCQkJZ290byBlcnJfZ3Bpb19wdWxsdXA7Ci0JCX0KLQkJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsIDApOwotCX0KLQotCWluaXRfdGltZXIoJmRldi0+dGltZXIpOwotCWRldi0+dGltZXIuZnVuY3Rpb24gPSB1ZGNfd2F0Y2hkb2c7Ci0JZGV2LT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpIGRldjsKLQotCWRldmljZV9pbml0aWFsaXplKCZkZXYtPmdhZGdldC5kZXYpOwotCWRldi0+Z2FkZ2V0LmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OwotCWRldi0+Z2FkZ2V0LmRldi5kbWFfbWFzayA9IHBkZXYtPmRldi5kbWFfbWFzazsKLQotCXRoZV9jb250cm9sbGVyID0gZGV2OwotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRldik7Ci0KLQl1ZGNfZGlzYWJsZShkZXYpOwotCXVkY19yZWluaXQoZGV2KTsKLQotCWRldi0+dmJ1cyA9IGlzX3ZidXNfcHJlc2VudCgpOwotCi0JLyogaXJxIHNldHVwIGFmdGVyIG9sZCBoYXJkd2FyZSBzdGF0ZSBpcyBjbGVhbmVkIHVwICovCi0JcmV0dmFsID0gcmVxdWVzdF9pcnEoaXJxLCBweGEyeHhfdWRjX2lycSwKLQkJCUlSUUZfRElTQUJMRUQsIGRyaXZlcl9uYW1lLCBkZXYpOwotCWlmIChyZXR2YWwgIT0gMCkgewotCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVkLCBlcnIgJWRcbiIsCi0JCQlkcml2ZXJfbmFtZSwgaXJxLCByZXR2YWwpOwotCQlnb3RvIGVycl9pcnExOwotCX0KLQlkZXYtPmdvdF9pcnEgPSAxOwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotCWlmIChtYWNoaW5lX2lzX2x1YmJvY2soKSkgewotCQlyZXR2YWwgPSByZXF1ZXN0X2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwKLQkJCQlsdWJib2NrX3ZidXNfaXJxLAotCQkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1NBTVBMRV9SQU5ET00sCi0JCQkJZHJpdmVyX25hbWUsIGRldik7Ci0JCWlmIChyZXR2YWwgIT0gMCkgewotCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAotCQkJCWRyaXZlcl9uYW1lLCBMVUJCT0NLX1VTQl9ESVNDX0lSUSwgcmV0dmFsKTsKLWx1YmJvY2tfZmFpbDA6Ci0JCQlnb3RvIGVycl9pcnFfbHViOwotCQl9Ci0JCXJldHZhbCA9IHJlcXVlc3RfaXJxKExVQkJPQ0tfVVNCX0lSUSwKLQkJCQlsdWJib2NrX3ZidXNfaXJxLAotCQkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1NBTVBMRV9SQU5ET00sCi0JCQkJZHJpdmVyX25hbWUsIGRldik7Ci0JCWlmIChyZXR2YWwgIT0gMCkgewotCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAotCQkJCWRyaXZlcl9uYW1lLCBMVUJCT0NLX1VTQl9JUlEsIHJldHZhbCk7Ci0JCQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKLQkJCWdvdG8gbHViYm9ja19mYWlsMDsKLQkJfQotCX0gZWxzZQotI2VuZGlmCi0JaWYgKHZidXNfaXJxKSB7Ci0JCXJldHZhbCA9IHJlcXVlc3RfaXJxKHZidXNfaXJxLCB1ZGNfdmJ1c19pcnEsCi0JCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSB8Ci0JCQkJSVJRRl9UUklHR0VSX1JJU0lORyB8IElSUUZfVFJJR0dFUl9GQUxMSU5HLAotCQkJCWRyaXZlcl9uYW1lLCBkZXYpOwotCQlpZiAocmV0dmFsICE9IDApIHsKLQkJCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWksIGVyciAlZFxuIiwKLQkJCQlkcml2ZXJfbmFtZSwgdmJ1c19pcnEsIHJldHZhbCk7Ci0JCQlnb3RvIGVycl92YnVzX2lycTsKLQkJfQotCX0KLQljcmVhdGVfZGVidWdfZmlsZXMoZGV2KTsKLQotCXJldHVybiAwOwotCi0gZXJyX3ZidXNfaXJxOgotI2lmZGVmCUNPTkZJR19BUkNIX0xVQkJPQ0sKLQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKLSBlcnJfaXJxX2x1YjoKLSNlbmRpZgotCWZyZWVfaXJxKGlycSwgZGV2KTsKLSBlcnJfaXJxMToKLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkKLQkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApOwotIGVycl9ncGlvX3B1bGx1cDoKLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXMpCi0JCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0gZXJyX2dwaW9fdmJ1czoKLQljbGtfcHV0KGRldi0+Y2xrKTsKLSBlcnJfY2xrOgotCXJldHVybiByZXR2YWw7Ci19Ci0KLXN0YXRpYyB2b2lkIHB4YTJ4eF91ZGNfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX2RldikKLXsKLQlwdWxsdXBfb2ZmKCk7Ci19Ci0KLXN0YXRpYyBpbnQgX19leGl0IHB4YTJ4eF91ZGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMgKmRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCi0JaWYgKGRldi0+ZHJpdmVyKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JZGV2LT5wdWxsdXAgPSAwOwotCXB1bGx1cChkZXYpOwotCi0JcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldik7Ci0KLQlpZiAoZGV2LT5nb3RfaXJxKSB7Ci0JCWZyZWVfaXJxKHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCksIGRldik7Ci0JCWRldi0+Z290X2lycSA9IDA7Ci0JfQotI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKLQlpZiAobWFjaGluZV9pc19sdWJib2NrKCkpIHsKLQkJZnJlZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEsIGRldik7Ci0JCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0lSUSwgZGV2KTsKLQl9Ci0jZW5kaWYKLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXMpIHsKLQkJZnJlZV9pcnEoZ3Bpb190b19pcnEoZGV2LT5tYWNoLT5ncGlvX3ZidXMpLCBkZXYpOwotCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOwotCX0KLQlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkKLQkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApOwotCi0JY2xrX3B1dChkZXYtPmNsayk7Ci0KLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKLQl0aGVfY29udHJvbGxlciA9IE5VTEw7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZmRlZglDT05GSUdfUE0KLQotLyogVVNCIHN1c3BlbmQgKGNvbnRyb2xsZWQgYnkgdGhlIGhvc3QpIGFuZCBzeXN0ZW0gc3VzcGVuZCAoY29udHJvbGxlZAotICogYnkgdGhlIFBYQSkgZG9uJ3QgbmVjZXNzYXJpbHkgd29yayB3ZWxsIHRvZ2V0aGVyLiAgSWYgVVNCIGlzIGFjdGl2ZSwKLSAqIHRoZSA0OCBNSHogY2xvY2sgaXMgcmVxdWlyZWQ7IHNvIHRoZSBzeXN0ZW0gY2FuJ3QgZW50ZXIgMzMgTUh6IGlkbGUKLSAqIG1vZGUsIG9yIGFueSBkZWVwZXIgUE0gc2F2aW5nIHN0YXRlLgotICoKLSAqIEZvciBub3csIHdlIHB1bnQgYW5kIGZvcmNpYmx5IGRpc2Nvbm5lY3QgZnJvbSB0aGUgVVNCIGhvc3Qgd2hlbiBQWEEKLSAqIGVudGVycyBhbnkgc3VzcGVuZCBzdGF0ZS4gIFdoaWxlIHdlJ3JlIGRpc2Nvbm5lY3RlZCwgd2UgYWx3YXlzIGRpc2FibGUKLSAqIHRoZSA0OE1IeiBVU0IgY2xvY2sgLi4uIGFsbG93aW5nIFBYQSBzbGVlcCBhbmQvb3IgMzMgTUh6IGlkbGUgc3RhdGVzLgotICogQm9hcmRzIHdpdGhvdXQgc29mdHdhcmUgcHVsbHVwIGNvbnRyb2wgc2hvdWxkbid0IHVzZSB0aG9zZSBzdGF0ZXMuCi0gKiBWQlVTIElSUXMgc2hvdWxkIHByb2JhYmx5IGJlIGlnbm9yZWQgc28gdGhhdCB0aGUgUFhBIGRldmljZSBqdXN0IGFjdHMKLSAqICJkZWFkIiB0byBVU0IgaG9zdHMgdW50aWwgc3lzdGVtIHJlc3VtZS4KLSAqLwotc3RhdGljIGludCBweGEyeHhfdWRjX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWlmICghdWRjLT5tYWNoLT5ncGlvX3B1bGx1cCAmJiAhdWRjLT5tYWNoLT51ZGNfY29tbWFuZCkKLQkJV0FSTigiVVNCIGhvc3Qgd29uJ3QgZGV0ZWN0IGRpc2Nvbm5lY3QhXG4iKTsKLQl1ZGMtPnN1c3BlbmRlZCA9IDE7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JcHVsbHVwKHVkYyk7Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSp1ZGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQl1ZGMtPnN1c3BlbmRlZCA9IDA7Ci0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXB1bGx1cCh1ZGMpOwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCXJldHVybiAwOwotfQotCi0jZWxzZQotI2RlZmluZQlweGEyeHhfdWRjX3N1c3BlbmQJTlVMTAotI2RlZmluZQlweGEyeHhfdWRjX3Jlc3VtZQlOVUxMCi0jZW5kaWYKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdWRjX2RyaXZlciA9IHsKLQkuc2h1dGRvd24JPSBweGEyeHhfdWRjX3NodXRkb3duLAotCS5yZW1vdmUJCT0gX19leGl0X3AocHhhMnh4X3VkY19yZW1vdmUpLAotCS5zdXNwZW5kCT0gcHhhMnh4X3VkY19zdXNwZW5kLAotCS5yZXN1bWUJCT0gcHhhMnh4X3VkY19yZXN1bWUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5vd25lcgk9IFRISVNfTU9EVUxFLAotCQkubmFtZQk9ICJweGEyeHgtdWRjIiwKLQl9LAotfTsKLQotc3RhdGljIGludCBfX2luaXQgdWRjX2luaXQodm9pZCkKLXsKLQlwcl9pbmZvKCIlczogdmVyc2lvbiAlc1xuIiwgZHJpdmVyX25hbWUsIERSSVZFUl9WRVJTSU9OKTsKLQlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3Byb2JlKCZ1ZGNfZHJpdmVyLCBweGEyeHhfdWRjX3Byb2JlKTsKLX0KLW1vZHVsZV9pbml0KHVkY19pbml0KTsKLQotc3RhdGljIHZvaWQgX19leGl0IHVkY19leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnVkY19kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQodWRjX2V4aXQpOwotCi1NT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwotTU9EVUxFX0FVVEhPUigiRnJhbmsgQmVja2VyLCBSb2JlcnQgU2Nod2ViZWwsIERhdmlkIEJyb3duZWxsIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOnB4YTJ4eC11ZGMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmggYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmMxOWU4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNjcgKzAsMCBAQAotLyoKLSAqIGxpbnV4L2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmgKLSAqIEludGVsIFBYQTJ4eCBvbi1jaGlwIGZ1bGwgc3BlZWQgVVNCIGRldmljZSBjb250cm9sbGVyCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAzIFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4sIFBlbmd1dHJvbml4Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgRGF2aWQgQnJvd25lbGwKLSAqCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQotICovCi0KLSNpZm5kZWYgX19MSU5VWF9VU0JfR0FER0VUX1BYQTJYWF9ICi0jZGVmaW5lIF9fTElOVVhfVVNCX0dBREdFVF9QWEEyWFhfSAotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyogcHhhMnh4IGhhcyB0aGlzIChtb3ZlIHRvIGluY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oKSAqLwotI2RlZmluZSBVRk5SSF9TSVIJKDEgPDwgNykJLyogU09GIGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVGTlJIX1NJTQkoMSA8PCA2KQkvKiBTT0YgaW50ZXJydXB0IG1hc2sgKi8KLSNkZWZpbmUgVUZOUkhfSVBFMTQJKDEgPDwgNSkJLyogSVNPIHBhY2tldCBlcnJvciwgZXAxNCAqLwotI2RlZmluZSBVRk5SSF9JUEU5CSgxIDw8IDQpCS8qIElTTyBwYWNrZXQgZXJyb3IsIGVwOSAqLwotI2RlZmluZSBVRk5SSF9JUEU0CSgxIDw8IDMpCS8qIElTTyBwYWNrZXQgZXJyb3IsIGVwNCAqLwotCi0vKiBweGEyNTUgaGFzIHRoaXMgKG1vdmUgdG8gaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgpICovCi0jZGVmaW5lCVVEQ0NGUgkJVURDX1JFUzIJLyogVURDIENvbnRyb2wgRnVuY3Rpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ0ZSX0FSRU4JKDEgPDwgNykJLyogQUNLIHJlc3BvbnNlIGVuYWJsZSAobm93KSAqLwotI2RlZmluZSBVRENDRlJfQUNNCSgxIDw8IDIpCS8qIEFDSyBjb250cm9sIG1vZGUgKHdhaXQgZm9yIEFSRU4pICovCi0KLS8qIGxhdGVzdCBweGEyNTUgZXJyYXRhIGRlZmluZSBuZXcgIm11c3QgYmUgb25lIiBiaXRzIGluIFVEQ0NGUiAqLwotI2RlZmluZQlVRENDRlJfTUIxCSgweGZmICYgfihVRENDRlJfQVJFTnxVRENDRlJfQUNNKSkKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RydWN0IHB4YTJ4eF91ZGM7Ci0KLXN0cnVjdCBweGEyeHhfZXAgewotCXN0cnVjdCB1c2JfZXAJCQkJZXA7Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJCQkqZGV2OwotCi0JY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yCSpkZXNjOwotCXN0cnVjdCBsaXN0X2hlYWQJCQlxdWV1ZTsKLQl1bnNpZ25lZCBsb25nCQkJCXBpb19pcnFzOwotCi0JdW5zaWduZWQgc2hvcnQJCQkJZmlmb19zaXplOwotCXU4CQkJCQliRW5kcG9pbnRBZGRyZXNzOwotCXU4CQkJCQlibUF0dHJpYnV0ZXM7Ci0KLQl1bnNpZ25lZAkJCQlzdG9wcGVkIDogMTsKLQl1bnNpZ25lZAkJCQlkbWFfZml4dXAgOiAxOwotCi0JLyogVURDQ1MgPSBVREMgQ29udHJvbC9TdGF0dXMgZm9yIHRoaXMgRVAKLQkgKiBVQkNSID0gVURDIEJ5dGUgQ291bnQgUmVtYWluaW5nIChjb250ZW50cyBvZiBPVVQgZmlmbykKLQkgKiBVRERSID0gVURDIEVuZHBvaW50IERhdGEgUmVnaXN0ZXIgKHRoZSBmaWZvKQotCSAqIERSQ00gPSBETUEgUmVxdWVzdCBDaGFubmVsIE1hcAotCSAqLwotCXZvbGF0aWxlIHUzMgkJCQkqcmVnX3VkY2NzOwotCXZvbGF0aWxlIHUzMgkJCQkqcmVnX3ViY3I7Ci0Jdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWRkcjsKLX07Ci0KLXN0cnVjdCBweGEyeHhfcmVxdWVzdCB7Ci0Jc3RydWN0IHVzYl9yZXF1ZXN0CQkJcmVxOwotCXN0cnVjdCBsaXN0X2hlYWQJCQlxdWV1ZTsKLX07Ci0KLWVudW0gZXAwX3N0YXRlIHsKLQlFUDBfSURMRSwKLQlFUDBfSU5fREFUQV9QSEFTRSwKLQlFUDBfT1VUX0RBVEFfUEhBU0UsCi0JRVAwX0VORF9YRkVSLAotCUVQMF9TVEFMTCwKLX07Ci0KLSNkZWZpbmUgRVAwX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTE2KQotI2RlZmluZSBCVUxLX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTY0KQotI2RlZmluZSBJU09fRklGT19TSVpFCSgodW5zaWduZWQpMjU2KQotI2RlZmluZSBJTlRfRklGT19TSVpFCSgodW5zaWduZWQpOCkKLQotc3RydWN0IHVkY19zdGF0cyB7Ci0Jc3RydWN0IGVwMHN0YXRzIHsKLQkJdW5zaWduZWQgbG9uZwkJb3BzOwotCQl1bnNpZ25lZCBsb25nCQlieXRlczsKLQl9IHJlYWQsIHdyaXRlOwotCXVuc2lnbmVkIGxvbmcJCQlpcnFzOwotfTsKLQotI2lmZGVmIENPTkZJR19VU0JfUFhBMlhYX1NNQUxMCi0vKiB3aGVuIG1lbW9yeSdzIHRpZ2h0LCBTTUFMTCBjb25maWcgc2F2ZXMgY29kZStkYXRhLiAgKi8KLSNkZWZpbmUJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCTMKLSNlbmRpZgotCi0jaWZuZGVmCVBYQV9VRENfTlVNX0VORFBPSU5UUwotI2RlZmluZQlQWEFfVURDX05VTV9FTkRQT0lOVFMJMTYKLSNlbmRpZgotCi1zdHJ1Y3QgcHhhMnh4X3VkYyB7Ci0Jc3RydWN0IHVzYl9nYWRnZXQJCQlnYWRnZXQ7Ci0Jc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyCQkqZHJpdmVyOwotCi0JZW51bSBlcDBfc3RhdGUJCQkJZXAwc3RhdGU7Ci0Jc3RydWN0IHVkY19zdGF0cwkJCXN0YXRzOwotCXVuc2lnbmVkCQkJCWdvdF9pcnEgOiAxLAotCQkJCQkJdmJ1cyA6IDEsCi0JCQkJCQlwdWxsdXAgOiAxLAotCQkJCQkJaGFzX2NmciA6IDEsCi0JCQkJCQlyZXFfcGVuZGluZyA6IDEsCi0JCQkJCQlyZXFfc3RkIDogMSwKLQkJCQkJCXJlcV9jb25maWcgOiAxLAotCQkJCQkJc3VzcGVuZGVkIDogMSwKLQkJCQkJCWFjdGl2ZSA6IDE7Ci0KLSNkZWZpbmUgc3RhcnRfd2F0Y2hkb2coZGV2KSBtb2RfdGltZXIoJmRldi0+dGltZXIsIGppZmZpZXMgKyAoSFovMjAwKSkKLQlzdHJ1Y3QgdGltZXJfbGlzdAkJCXRpbWVyOwotCi0Jc3RydWN0IGRldmljZQkJCQkqZGV2OwotCXN0cnVjdCBjbGsJCQkJKmNsazsKLQlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoOwotCXU2NAkJCQkJZG1hX21hc2s7Ci0Jc3RydWN0IHB4YTJ4eF9lcAkJCWVwIFtQWEFfVURDX05VTV9FTkRQT0lOVFNdOwotCi0jaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRlMKLQlzdHJ1Y3QgZGVudHJ5CQkJCSpkZWJ1Z2ZzX3VkYzsKLSNlbmRpZgotfTsKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKLSNpbmNsdWRlIDxhc20vYXJjaC9sdWJib2NrLmg+Ci0vKiBsdWJib2NrIGNhbiBhbHNvIHJlcG9ydCB1c2IgY29ubmVjdC9kaXNjb25uZWN0IGlycXMgKi8KLSNlbmRpZgotCi1zdGF0aWMgc3RydWN0IHB4YTJ4eF91ZGMgKnRoZV9jb250cm9sbGVyOwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICogRGVidWdnaW5nIHN1cHBvcnQgdmFuaXNoZXMgaW4gbm9uLWRlYnVnIGJ1aWxkcy4gIERCR19OT1JNQUwgc2hvdWxkIGJlCi0gKiBtb3N0bHkgc2lsZW50IGR1cmluZyBub3JtYWwgdXNlL3Rlc3RpbmcsIHdpdGggbm8gdGltaW5nIHNpZGUtZWZmZWN0cy4KLSAqLwotI2RlZmluZSBEQkdfTk9STUFMCTEJLyogZXJyb3IgcGF0aHMsIGRldmljZSBzdGF0ZSB0cmFuc2l0aW9ucyAqLwotI2RlZmluZSBEQkdfVkVSQk9TRQkyCS8qIGFkZCBzb21lIHN1Y2Nlc3MgcGF0aCB0cmFjZSBpbmZvICovCi0jZGVmaW5lIERCR19OT0lTWQkzCS8qIC4uLiBldmVuIG1vcmU6IHJlcXVlc3QgbGV2ZWwgKi8KLSNkZWZpbmUgREJHX1ZFUllfTk9JU1kJNAkvKiAuLi4gZXZlbiBtb3JlOiBwYWNrZXQgbGV2ZWwgKi8KLQotI2RlZmluZSBETVNHKHN0dWZmLi4uKQlwcl9kZWJ1ZygidWRjOiAiIHN0dWZmKQotCi0jaWZkZWYgREVCVUcKLQotc3RhdGljIGludCBpc192YnVzX3ByZXNlbnQodm9pZCk7Ci0KLXN0YXRpYyBjb25zdCBjaGFyICpzdGF0ZV9uYW1lW10gPSB7Ci0JIkVQMF9JRExFIiwKLQkiRVAwX0lOX0RBVEFfUEhBU0UiLCAiRVAwX09VVF9EQVRBX1BIQVNFIiwKLQkiRVAwX0VORF9YRkVSIiwgIkVQMF9TVEFMTCIKLX07Ci0KLSNpZmRlZiBWRVJCT1NFX0RFQlVHCi0jICAgIGRlZmluZSBVRENfREVCVUcgREJHX1ZFUkJPU0UKLSNlbHNlCi0jICAgIGRlZmluZSBVRENfREVCVUcgREJHX05PUk1BTAotI2VuZGlmCi0KLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCi1kdW1wX3VkY2NyKGNvbnN0IGNoYXIgKmxhYmVsKQotewotCXUzMgl1ZGNjciA9IFVEQ0NSOwotCURNU0coIiVzICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsCi0JCWxhYmVsLCB1ZGNjciwKLQkJKHVkY2NyICYgVURDQ1JfUkVNKSA/ICIgcmVtIiA6ICIiLAotCQkodWRjY3IgJiBVRENDUl9SU1RJUikgPyAiIHJzdGlyIiA6ICIiLAotCQkodWRjY3IgJiBVRENDUl9TUk0pID8gIiBzcm0iIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1NVU0lSKSA/ICIgc3VzaXIiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1JFU0lSKSA/ICIgcmVzaXIiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1JTTSkgPyAiIHJzbSIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfVURBKSA/ICIgdWRhIiA6ICIiLAotCQkodWRjY3IgJiBVRENDUl9VREUpID8gIiB1ZGUiIDogIiIpOwotfQotCi1zdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZAotZHVtcF91ZGNjczAoY29uc3QgY2hhciAqbGFiZWwpCi17Ci0JdTMyCQl1ZGNjczAgPSBVRENDUzA7Ci0KLQlETVNHKCIlcyAlcyAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLAotCQlsYWJlbCwgc3RhdGVfbmFtZVt0aGVfY29udHJvbGxlci0+ZXAwc3RhdGVdLCB1ZGNjczAsCi0JCSh1ZGNjczAgJiBVRENDUzBfU0EpID8gIiBzYSIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9STkUpID8gIiBybmUiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfRlNUKSA/ICIgZnN0IiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX1NTVCkgPyAiIHNzdCIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9EUldGKSA/ICIgZHdyZiIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9GVEYpID8gIiBmdGYiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfSVBSKSA/ICIgaXByIiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX09QUikgPyAiIG9wciIgOiAiIik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCi1kdW1wX3N0YXRlKHN0cnVjdCBweGEyeHhfdWRjICpkZXYpCi17Ci0JdTMyCQl0bXA7Ci0JdW5zaWduZWQJaTsKLQotCURNU0coIiVzICVzLCB1aWNyICUwMlguJTAyWCwgdXNpciAlMDJYLiUwMngsIHVmbnIgJTAyWC4lMDJYXG4iLAotCQlpc192YnVzX3ByZXNlbnQoKSA/ICJob3N0ICIgOiAiZGlzY29ubmVjdGVkIiwKLQkJc3RhdGVfbmFtZVtkZXYtPmVwMHN0YXRlXSwKLQkJVUlDUjEsIFVJQ1IwLCBVU0lSMSwgVVNJUjAsIFVGTlJILCBVRk5STCk7Ci0JZHVtcF91ZGNjcigidWRjY3IiKTsKLQlpZiAoZGV2LT5oYXNfY2ZyKSB7Ci0JCXRtcCA9IFVEQ0NGUjsKLQkJRE1TRygidWRjY2ZyICUwMlggPSVzJXNcbiIsIHRtcCwKLQkJCSh0bXAgJiBVRENDRlJfQVJFTikgPyAiIGFyZW4iIDogIiIsCi0JCQkodG1wICYgVURDQ0ZSX0FDTSkgPyAiIGFjbSIgOiAiIik7Ci0JfQotCi0JaWYgKCFkZXYtPmRyaXZlcikgewotCQlETVNHKCJubyBnYWRnZXQgZHJpdmVyIGJvdW5kXG4iKTsKLQkJcmV0dXJuOwotCX0gZWxzZQotCQlETVNHKCJlcDAgZHJpdmVyICclcydcbiIsIGRldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSk7Ci0KLQlpZiAoIWlzX3ZidXNfcHJlc2VudCgpKQotCQlyZXR1cm47Ci0KLQlkdW1wX3VkY2NzMCAoInVkY2NzMCIpOwotCURNU0coImVwMCBJTiAlbHUvJWx1LCBPVVQgJWx1LyVsdVxuIiwKLQkJZGV2LT5zdGF0cy53cml0ZS5ieXRlcywgZGV2LT5zdGF0cy53cml0ZS5vcHMsCi0JCWRldi0+c3RhdHMucmVhZC5ieXRlcywgZGV2LT5zdGF0cy5yZWFkLm9wcyk7Ci0KLQlmb3IgKGkgPSAxOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKLQkJaWYgKGRldi0+ZXAgW2ldLmRlc2MgPT0gTlVMTCkKLQkJCWNvbnRpbnVlOwotCQlETVNHICgidWRjY3MlZCA9ICUwMnhcbiIsIGksICpkZXYtPmVwLT5yZWdfdWRjY3MpOwotCX0KLX0KLQotI2Vsc2UKLQotI2RlZmluZQlkdW1wX3VkY2NyKHgpCWRve313aGlsZSgwKQotI2RlZmluZQlkdW1wX3VkY2NzMCh4KQlkb3t9d2hpbGUoMCkKLSNkZWZpbmUJZHVtcF9zdGF0ZSh4KQlkb3t9d2hpbGUoMCkKLQotI2RlZmluZSBVRENfREVCVUcgKCh1bnNpZ25lZCkwKQotCi0jZW5kaWYKLQotI2RlZmluZSBEQkcobHZsLCBzdHVmZi4uLikgZG97aWYgKChsdmwpIDw9IFVEQ19ERUJVRykgRE1TRyhzdHVmZik7fXdoaWxlKDApCi0KLSNkZWZpbmUgRVJSKHN0dWZmLi4uKQkJcHJfZXJyKCJ1ZGM6ICIgc3R1ZmYpCi0jZGVmaW5lIFdBUk4oc3R1ZmYuLi4pCQlwcl93YXJuaW5nKCJ1ZGM6ICIgc3R1ZmYpCi0jZGVmaW5lIElORk8oc3R1ZmYuLi4pCQlwcl9pbmZvKCJ1ZGM6ICIgc3R1ZmYpCi0KLQotI2VuZGlmIC8qIF9fTElOVVhfVVNCX0dBREdFVF9QWEEyWFhfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9LY29uZmlnIGIvZHJpdmVycy91c2IvaG9zdC9LY29uZmlnCmluZGV4IDFlZjZkZjMuLjIyODc5N2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvS2NvbmZpZworKysgYi9kcml2ZXJzL3VzYi9ob3N0L0tjb25maWcKQEAgLTMwMCw4ICszMDAsOCBAQAogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHI4YTY2NTk3LWhjZC4KIAogY29uZmlnIFNVUEVSSF9PTl9DSElQX1I4QTY2NTk3Ci0JYm9vbGVhbiAiRW5hYmxlIFN1cGVySCBvbi1jaGlwIFVTQiBsaWtlIHRoZSBSOEE2NjU5NyIKLQlkZXBlbmRzIG9uIFVTQl9SOEE2NjU5N19IQ0QgJiYgQ1BVX1NVQlRZUEVfU0g3MzY2CisJYm9vbGVhbiAiRW5hYmxlIFN1cGVySCBvbi1jaGlwIFI4QTY2NTk3IFVTQiIKKwlkZXBlbmRzIG9uIFVTQl9SOEE2NjU5N19IQ0QgJiYgKENQVV9TVUJUWVBFX1NINzM2NiB8fCBDUFVfU1VCVFlQRV9TSDc3MjMpCiAJaGVscAotCSAgIFJlbmVzYXMgU3VwZXJIIHByb2Nlc3NvciBoYXMgVVNCIGxpa2UgdGhlIFI4QTY2NTk3LgotCSAgIFRoaXMgZHJpdmVyIHN1cHBvcnRlZCBwcm9jZXNzb3IgaXMgU0g3MzY2LgorCSAgIFRoaXMgZHJpdmVyIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIG9uLWNoaXAgUjhBNjY1OTcgaW4gdGhlCisJICAgU0g3MzY2IGFuZCBTSDc3MjMgcHJvY2Vzc29ycy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS5oIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKaW5kZXggMzVhMDMwOS4uOTAyNDVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKQEAgLTE3Nyw2ICsxNzcsMTUgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZAogdGltZXJfYWN0aW9uIChzdHJ1Y3QgZWhjaV9oY2QgKmVoY2ksIGVudW0gZWhjaV90aW1lcl9hY3Rpb24gYWN0aW9uKQogeworCS8qIERvbid0IG92ZXJyaWRlIHRpbWVvdXRzIHdoaWNoIHNocmluayBvciAobGF0ZXIpIGRpc2FibGUKKwkgKiB0aGUgYXN5bmMgcmluZzsganVzdCB0aGUgSS9PIHdhdGNoZG9nLiAgTm90ZSB0aGF0IGlmIGEKKwkgKiBTSFJJTksgd2VyZSBwZW5kaW5nLCBPRkYgd291bGQgbmV2ZXIgYmUgcmVxdWVzdGVkLgorCSAqLworCWlmICh0aW1lcl9wZW5kaW5nKCZlaGNpLT53YXRjaGRvZykKKwkJCSYmICgoQklUKFRJTUVSX0FTWU5DX1NIUklOSykgfCBCSVQoVElNRVJfQVNZTkNfT0ZGKSkKKwkJCQkmIGVoY2ktPmFjdGlvbnMpKQorCQlyZXR1cm47CisKIAlpZiAoIXRlc3RfYW5kX3NldF9iaXQgKGFjdGlvbiwgJmVoY2ktPmFjdGlvbnMpKSB7CiAJCXVuc2lnbmVkIGxvbmcgdDsKIApAQCAtMTkyLDE1ICsyMDEsNyBAQAogCQkJdCA9IEVIQ0lfU0hSSU5LX0pJRkZJRVM7CiAJCQlicmVhazsKIAkJfQotCQl0ICs9IGppZmZpZXM7Ci0JCS8vIGFsbCB0aW1pbmdzIGV4Y2VwdCBJQUEgd2F0Y2hkb2cgY2FuIGJlIG92ZXJyaWRkZW4uCi0JCS8vIGFzeW5jIHF1ZXVlIFNIUklOSyBvZnRlbiBwcmVjZWRlcyBJQUEuICB3aGlsZSBpdCdzIHJlYWR5Ci0JCS8vIHRvIGdvIE9GRiBuZWl0aGVyIGNhbiBtYXR0ZXIsIGFuZCBhZnRlcndhcmRzIHRoZSBJTwotCQkvLyB3YXRjaGRvZyBzdG9wcyB1bmxlc3MgdGhlcmUncyBzdGlsbCBwZXJpb2RpYyB0cmFmZmljLgotCQlpZiAodGltZV9iZWZvcmVfZXEodCwgZWhjaS0+d2F0Y2hkb2cuZXhwaXJlcykKLQkJCQkmJiB0aW1lcl9wZW5kaW5nICgmZWhjaS0+d2F0Y2hkb2cpKQotCQkJcmV0dXJuOwotCQltb2RfdGltZXIgKCZlaGNpLT53YXRjaGRvZywgdCk7CisJCW1vZF90aW1lcigmZWhjaS0+d2F0Y2hkb2csIHQgKyBqaWZmaWVzKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvaXNwMTc2MC1oY2QuYyBiL2RyaXZlcnMvdXNiL2hvc3QvaXNwMTc2MC1oY2QuYwppbmRleCBjOWNlYzg3Li42NWFhNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaGNkLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9pc3AxNzYwLWhjZC5jCkBAIC0yMjA3LDE0ICsyMjA3LDE0IEBACiAJCWdvdG8gZXJyX3B1dDsKIAl9CiAKLQlyZXQgPSB1c2JfYWRkX2hjZChoY2QsIGlycSwgaXJxZmxhZ3MpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3VubWFwOwotCiAJaGNkLT5pcnEgPSBpcnE7CiAJaGNkLT5yc3JjX3N0YXJ0ID0gcmVzX3N0YXJ0OwogCWhjZC0+cnNyY19sZW4gPSByZXNfbGVuOwogCisJcmV0ID0gdXNiX2FkZF9oY2QoaGNkLCBpcnEsIGlycWZsYWdzKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl91bm1hcDsKKwogCXJldHVybiBoY2Q7CiAKIGVycl91bm1hcDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdDkxLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXQ5MS5jCmluZGV4IGM5NmRiMTEuLmU1MzRmOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdDkxLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF0OTEuYwpAQCAtMjYxLDYgKzI2MSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYgQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF1MXh4eC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF1MXh4eC5jCmluZGV4IDFiOWFiZGIuLjY4YzE3ZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdTF4eHguYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXUxeHh4LmMKQEAgLTgsNyArOCw3IEBACiAgKiBCdXMgR2x1ZSBmb3IgQU1EIEFsY2hlbXkgQXUxeHh4CiAgKgogICogV3JpdHRlbiBieSBDaHJpc3RvcGhlciBIb292ZXIgPGNoQGhwbC5ocC5jb20+Ci0gKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c2VsbCBLaW5nIGV0IGFsLgorICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNzZWxsIEtpbmcgZXQgYWwuCiAgKgogICogTW9kaWZpZWQgZm9yIExIN0E0MDQgZnJvbSBvaGNpLXNhMTExMS5jCiAgKiAgYnkgRHVyZ2VzaCBQYXR0YW1hdHRhIDxwYXR0YW1hdHRhZEBzaGFycHNlYy5jb20+CkBAIC0yODgsNiArMjg4LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktZXA5M3h4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktZXA5M3h4LmMKaW5kZXggMDZhYWRmYi4uNWFkYWYzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWVwOTN4eC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1lcDkzeHguYwpAQCAtMTM1LDYgKzEzNSw3IEBACiAJLmdldF9mcmFtZV9udW1iZXIJPSBvaGNpX2dldF9mcmFtZSwKIAkuaHViX3N0YXR1c19kYXRhCT0gb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sCQk9IG9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlCQk9IG9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYgQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kCQk9IG9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUJCT0gb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWhjZC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWhjZC5jCmluZGV4IDMzZjFjMWMuLmE4MTYwZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1oY2QuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaGNkLmMKQEAgLTEwNTQsNyArMTA1NCw3IEBACiAKICNpZmRlZiBDT05GSUdfTUZEX1NNNTAxCiAjaW5jbHVkZSAib2hjaS1zbTUwMS5jIgotI2RlZmluZSBQTEFURk9STV9EUklWRVIJCW9oY2lfaGNkX3NtNTAxX2RyaXZlcgorI2RlZmluZSBTTTUwMV9PSENJX0RSSVZFUglvaGNpX2hjZF9zbTUwMV9kcml2ZXIKICNlbmRpZgogCiAjaWYJIWRlZmluZWQoUENJX0RSSVZFUikgJiYJCVwKQEAgLTEwNjIsNiArMTA2Miw3IEBACiAJIWRlZmluZWQoT0ZfUExBVEZPUk1fRFJJVkVSKSAmJglcCiAJIWRlZmluZWQoU0ExMTExX0RSSVZFUikgJiYJXAogCSFkZWZpbmVkKFBTM19TWVNURU1fQlVTX0RSSVZFUikgJiYgXAorCSFkZWZpbmVkKFNNNTAxX09IQ0lfRFJJVkVSKSAmJiBcCiAJIWRlZmluZWQoU1NCX09IQ0lfRFJJVkVSKQogI2Vycm9yICJtaXNzaW5nIGJ1cyBnbHVlIGZvciBvaGNpLWhjZCIKICNlbmRpZgpAQCAtMTEyMSw5ICsxMTIyLDE4IEBACiAJCWdvdG8gZXJyb3Jfc3NiOwogI2VuZGlmCiAKKyNpZmRlZiBTTTUwMV9PSENJX0RSSVZFUgorCXJldHZhbCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmU001MDFfT0hDSV9EUklWRVIpOworCWlmIChyZXR2YWwgPCAwKQorCQlnb3RvIGVycm9yX3NtNTAxOworI2VuZGlmCisKIAlyZXR1cm4gcmV0dmFsOwogCiAJLyogRXJyb3IgcGF0aCAqLworI2lmZGVmIFNNNTAxX09IQ0lfRFJJVkVSCisgZXJyb3Jfc201MDE6CisjZW5kaWYKICNpZmRlZiBTU0JfT0hDSV9EUklWRVIKICBlcnJvcl9zc2I6CiAjZW5kaWYKQEAgLTExNTksNiArMTE2OSw5IEBACiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBvaGNpX2hjZF9tb2RfZXhpdCh2b2lkKQogeworI2lmZGVmIFNNNTAxX09IQ0lfRFJJVkVSCisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJlNNNTAxX09IQ0lfRFJJVkVSKTsKKyNlbmRpZgogI2lmZGVmIFNTQl9PSENJX0RSSVZFUgogCXNzYl9kcml2ZXJfdW5yZWdpc3RlcigmU1NCX09IQ0lfRFJJVkVSKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWh1Yi5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWh1Yi5jCmluZGV4IDc5YTc4MDIuLmI1NjczOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1odWIuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaHViLmMKQEAgLTM2LDYgKzM2LDE4IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKKy8qIGhjZC0+aHViX2lycV9lbmFibGUoKSAqLworc3RhdGljIHZvaWQgb2hjaV9yaHNjX2VuYWJsZSAoc3RydWN0IHVzYl9oY2QgKmhjZCkKK3sKKwlzdHJ1Y3Qgb2hjaV9oY2QJCSpvaGNpID0gaGNkX3RvX29oY2kgKGhjZCk7CisKKwlzcGluX2xvY2tfaXJxKCZvaGNpLT5sb2NrKTsKKwlpZiAoIW9oY2ktPmF1dG9zdG9wKQorCQlkZWxfdGltZXIoJmhjZC0+cmhfdGltZXIpOwkvKiBQcmV2ZW50IG5leHQgcG9sbCAqLworCW9oY2lfd3JpdGVsKG9oY2ksIE9IQ0lfSU5UUl9SSFNDLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSk7CisJc3Bpbl91bmxvY2tfaXJxKCZvaGNpLT5sb2NrKTsKK30KKwogI2RlZmluZSBPSENJX1NDSEVEX0VOQUJMRVMgXAogCShPSENJX0NUUkxfQ0xFfE9IQ0lfQ1RSTF9CTEV8T0hDSV9DVFJMX1BMRXxPSENJX0NUUkxfSUUpCiAKQEAgLTM2MiwyOCArMzc0LDE4IEBACiAJCWludCBhbnlfY29ubmVjdGVkKQogewogCWludAlwb2xsX3JoID0gMTsKLQlpbnQJcmhzYzsKIAotCXJoc2MgPSBvaGNpX3JlYWRsKG9oY2ksICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKSAmIE9IQ0lfSU5UUl9SSFNDOwogCXN3aXRjaCAob2hjaS0+aGNfY29udHJvbCAmIE9IQ0lfQ1RSTF9IQ0ZTKSB7CiAKIAljYXNlIE9IQ0lfVVNCX09QRVI6Ci0JCS8qIElmIG5vIHN0YXR1cyBjaGFuZ2VzIGFyZSBwZW5kaW5nLCBlbmFibGUgc3RhdHVzLWNoYW5nZQotCQkgKiBpbnRlcnJ1cHRzLgotCQkgKi8KLQkJaWYgKCFyaHNjICYmICFjaGFuZ2VkKSB7Ci0JCQlyaHNjID0gT0hDSV9JTlRSX1JIU0M7Ci0JCQlvaGNpX3dyaXRlbChvaGNpLCByaHNjLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSk7Ci0JCX0KLQotCQkvKiBLZWVwIG9uIHBvbGxpbmcgdW50aWwgd2Uga25vdyBhIGRldmljZSBpcyBjb25uZWN0ZWQKLQkJICogYW5kIFJIU0MgaXMgZW5hYmxlZCwgb3IgdW50aWwgd2UgYXV0b3N0b3AuCi0JCSAqLworCQkvKiBrZWVwIG9uIHBvbGxpbmcgdW50aWwgd2Uga25vdyBhIGRldmljZSBpcyBjb25uZWN0ZWQKKwkJICogYW5kIFJIU0MgaXMgZW5hYmxlZCAqLwogCQlpZiAoIW9oY2ktPmF1dG9zdG9wKSB7CiAJCQlpZiAoYW55X2Nvbm5lY3RlZCB8fAogCQkJCQkhZGV2aWNlX21heV93YWtldXAoJm9oY2lfdG9faGNkKG9oY2kpCiAJCQkJCQktPnNlbGYucm9vdF9odWItPmRldikpIHsKLQkJCQlpZiAocmhzYykKKwkJCQlpZiAob2hjaV9yZWFkbChvaGNpLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSkgJgorCQkJCQkJT0hDSV9JTlRSX1JIU0MpCiAJCQkJCXBvbGxfcmggPSAwOwogCQkJfSBlbHNlIHsKIAkJCQlvaGNpLT5hdXRvc3RvcCA9IDE7CkBAIC0zOTYsMTMgKzM5OCwxMiBAQAogCQkJCW9oY2ktPmF1dG9zdG9wID0gMDsKIAkJCQlvaGNpLT5uZXh0X3N0YXRlY2hhbmdlID0gamlmZmllcyArCiAJCQkJCQlTVEFURUNIQU5HRV9ERUxBWTsKLQkJCX0gZWxzZSBpZiAocmhzYyAmJiB0aW1lX2FmdGVyX2VxKGppZmZpZXMsCisJCQl9IGVsc2UgaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywKIAkJCQkJCW9oY2ktPm5leHRfc3RhdGVjaGFuZ2UpCiAJCQkJCSYmICFvaGNpLT5lZF9ybV9saXN0CiAJCQkJCSYmICEob2hjaS0+aGNfY29udHJvbCAmCiAJCQkJCQlPSENJX1NDSEVEX0VOQUJMRVMpKSB7CiAJCQkJb2hjaV9yaF9zdXNwZW5kKG9oY2ksIDEpOwotCQkJCXBvbGxfcmggPSAwOwogCQkJfQogCQl9CiAJCWJyZWFrOwpAQCAtNDE2LDEyICs0MTcsNiBAQAogCQkJZWxzZQogCQkJCXVzYl9oY2RfcmVzdW1lX3Jvb3RfaHViKG9oY2lfdG9faGNkKG9oY2kpKTsKIAkJfSBlbHNlIHsKLQkJCWlmICghcmhzYyAmJiAob2hjaS0+YXV0b3N0b3AgfHwKLQkJCQkJb2hjaV90b19oY2Qob2hjaSktPnNlbGYucm9vdF9odWItPgotCQkJCQkJZG9fcmVtb3RlX3dha2V1cCkpCi0JCQkJb2hjaV93cml0ZWwob2hjaSwgT0hDSV9JTlRSX1JIU0MsCi0JCQkJCQkmb2hjaS0+cmVncy0+aW50cmVuYWJsZSk7Ci0KIAkJCS8qIGV2ZXJ5dGhpbmcgaXMgaWRsZSwgbm8gbmVlZCBmb3IgcG9sbGluZyAqLwogCQkJcG9sbF9yaCA9IDA7CiAJCX0KQEAgLTQ0MywxNiArNDM4LDEyIEBACiBzdGF0aWMgaW50IG9oY2lfcm9vdF9odWJfc3RhdGVfY2hhbmdlcyhzdHJ1Y3Qgb2hjaV9oY2QgKm9oY2ksIGludCBjaGFuZ2VkLAogCQlpbnQgYW55X2Nvbm5lY3RlZCkKIHsKLQkvKiBJZiBSSFNDIGlzIGVuYWJsZWQsIGRvbid0IHBvbGwgKi8KLQlpZiAob2hjaV9yZWFkbChvaGNpLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSkgJiBPSENJX0lOVFJfUkhTQykKLQkJcmV0dXJuIDA7CisJaW50CXBvbGxfcmggPSAxOwogCi0JLyogSWYgbm8gc3RhdHVzIGNoYW5nZXMgYXJlIHBlbmRpbmcsIGVuYWJsZSBzdGF0dXMtY2hhbmdlIGludGVycnVwdHMgKi8KLQlpZiAoIWNoYW5nZWQpIHsKLQkJb2hjaV93cml0ZWwob2hjaSwgT0hDSV9JTlRSX1JIU0MsICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAxOworCS8qIGtlZXAgb24gcG9sbGluZyB1bnRpbCBSSFNDIGlzIGVuYWJsZWQgKi8KKwlpZiAob2hjaV9yZWFkbChvaGNpLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSkgJiBPSENJX0lOVFJfUkhTQykKKwkJcG9sbF9yaCA9IDA7CisJcmV0dXJuIHBvbGxfcmg7CiB9CiAKICNlbmRpZgkvKiBDT05GSUdfUE0gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1saDdhNDA0LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktbGg3YTQwNC5jCmluZGV4IDk2ZDE0ZmEuLjFlZjVkNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1saDdhNDA0LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWxoN2E0MDQuYwpAQCAtOCw3ICs4LDcgQEAKICAqIEJ1cyBHbHVlIGZvciBTaGFycCBMSDdBNDA0CiAgKgogICogV3JpdHRlbiBieSBDaHJpc3RvcGhlciBIb292ZXIgPGNoQGhwbC5ocC5jb20+Ci0gKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c2VsbCBLaW5nIGV0IGFsLgorICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNzZWxsIEtpbmcgZXQgYWwuCiAgKgogICogTW9kaWZpZWQgZm9yIExIN0E0MDQgZnJvbSBvaGNpLXNhMTExMS5jCiAgKiAgYnkgRHVyZ2VzaCBQYXR0YW1hdHRhIDxwYXR0YW1hdHRhZEBzaGFycHNlYy5jb20+CkBAIC0xOTMsNiArMTkzLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktb21hcC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLW9tYXAuYwppbmRleCA2ODU5ZmI1Li5hMTlhNGY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktb21hcC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1vbWFwLmMKQEAgLTE2OSwxMyArMTY5LDE2IEBACiB7CiAJY29uc3QgdW5zaWduZWQJcG9ydCA9IG9oY2lfdG9faGNkKG9oY2kpLT5zZWxmLm90Z19wb3J0IC0gMTsKIAl1bnNpZ25lZCBsb25nCWZsYWdzOworCXUzMiBsOwogCiAJb3RnX3N0YXJ0X2hucChvaGNpLT50cmFuc2NlaXZlcik7CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJb2hjaS0+dHJhbnNjZWl2ZXItPnN0YXRlID0gT1RHX1NUQVRFX0FfU1VTUEVORDsKIAl3cml0ZWwgKFJIX1BTX1BTUywgJm9oY2ktPnJlZ3MtPnJvb3RodWIucG9ydHN0YXR1cyBbcG9ydF0pOwotCU9UR19DVFJMX1JFRyAmPSB+T1RHX0FfQlVTUkVROworCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwlsICY9IH5PVEdfQV9CVVNSRVE7CisJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOwogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIApAQCAtNDY2LDYgKzQ2OSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBjaS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBjaS5jCmluZGV4IDNiZjE3NWQuLjQ2OTZjYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wY2kuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcGNpLmMKQEAgLTMyNyw2ICszMjcsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng0MDA4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54NDAwOC5jCmluZGV4IDY2NGYwN2UuLjI4YjQ1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng0MDA4LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDQwMDguYwpAQCAtMjgwLDYgKzI4MCw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9IG9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9IG9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0gb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPSBvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0gb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDg1NTAuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng4NTUwLmMKaW5kZXggMjg0NjdlMi4uNjA1ZDU5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDg1NTAuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54ODU1MC5jCkBAIC0yMDEsNiArMjAxLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLW9mLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLW9mLmMKaW5kZXggNTBlNTVkYi4uYTY3MjUyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1vZi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtb2YuYwpAQCAtNzIsNiArNzIsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtc29jLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLXNvYy5jCmluZGV4IGNkMzM5OGIuLjUyM2MzMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtc29jLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1zb2MuYwpAQCAtMTcyLDYgKzE3Miw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBzMy5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBzMy5jCmluZGV4IGJmZGViMGQuLmMxOTM1YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wczMuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHMzLmMKQEAgLTY4LDYgKzY4LDcgQEAKIAkuZ2V0X2ZyYW1lX251bWJlcgk9IG9oY2lfZ2V0X2ZyYW1lLAogCS5odWJfc3RhdHVzX2RhdGEJPSBvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wJCT0gb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUJCT0gb2hjaV9yaHNjX2VuYWJsZSwKIAkuc3RhcnRfcG9ydF9yZXNldAk9IG9oY2lfc3RhcnRfcG9ydF9yZXNldCwKICNpZiBkZWZpbmVkKENPTkZJR19QTSkKIAkuYnVzX3N1c3BlbmQgCQk9IG9oY2lfYnVzX3N1c3BlbmQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHhhMjd4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHhhMjd4LmMKaW5kZXggNzBiMGQ0Yi4uMTI3YjE1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXB4YTI3eC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1weGEyN3guYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPiAvKiBGSVhNRTogZm9yIFBTU1IgKi8KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CiAKICNkZWZpbmUgUFhBX1VIQ19NQVhfUE9SVE5VTSAgICAzCkBAIC0xMDQsNyArMTA1LDcgQEAKIAlVSENISUUgPSAoVUhDSElFX1VQUklFIHwgVUhDSElFX1JXSUUpOwogCiAJLyogQ2xlYXIgYW55IE9URyBQaW4gSG9sZCAqLwotCWlmIChQU1NSICYgUFNTUl9PVEdQSCkKKwlpZiAoY3B1X2lzX3B4YTI3eCgpICYmIChQU1NSICYgUFNTUl9PVEdQSCkpCiAJCVBTU1IgfD0gUFNTUl9PVEdQSDsKIAogCXJldHVybiAwOwpAQCAtMjk4LDYgKzI5OSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYgIENPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcS5jCmluZGV4IDljOWYzYjUuLjliNTQ3NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYwpAQCAtOTUyLDYgKzk1Miw3IEBACiAJCQlzdHJ1Y3QgdXJiCSp1cmI7CiAJCQl1cmJfcHJpdl90CSp1cmJfcHJpdjsKIAkJCV9faGMzMgkJc2F2ZWJpdHM7CisJCQl1MzIJCXRkSU5GTzsKIAogCQkJdGQgPSBsaXN0X2VudHJ5IChlbnRyeSwgc3RydWN0IHRkLCB0ZF9saXN0KTsKIAkJCXVyYiA9IHRkLT51cmI7CkBAIC05NjYsNiArOTY3LDE3IEBACiAJCQlzYXZlYml0cyA9ICpwcmV2ICYgfmNwdV90b19oYzMyIChvaGNpLCBURF9NQVNLKTsKIAkJCSpwcmV2ID0gdGQtPmh3TmV4dFREIHwgc2F2ZWJpdHM7CiAKKwkJCS8qIElmIHRoaXMgd2FzIHVubGlua2VkLCB0aGUgVEQgbWF5IG5vdCBoYXZlIGJlZW4KKwkJCSAqIHJldGlyZWQgLi4uIHNvIG1hbnVhbGx5IHNhdmUgdGhlIGRhdGEgdG9nZ2xlLgorCQkJICogVGhlIGNvbnRyb2xsZXIgaWdub3JlcyB0aGUgdmFsdWUgd2Ugc2F2ZSBmb3IKKwkJCSAqIGNvbnRyb2wgYW5kIElTTyBlbmRwb2ludHMuCisJCQkgKi8KKwkJCXRkSU5GTyA9IGhjMzJfdG9fY3B1cChvaGNpLCAmdGQtPmh3SU5GTyk7CisJCQlpZiAoKHRkSU5GTyAmIFREX1QpID09IFREX1RfREFUQTApCisJCQkJZWQtPmh3SGVhZFAgJj0gfmNwdV90b19oYzMyKG9oY2ksIEVEX0MpOworCQkJZWxzZSBpZiAoKHRkSU5GTyAmIFREX1QpID09IFREX1RfREFUQTEpCisJCQkJZWQtPmh3SGVhZFAgfD0gY3B1X3RvX2hjMzIob2hjaSwgRURfQyk7CisKIAkJCS8qIEhDIG1heSBoYXZlIHBhcnRseSBwcm9jZXNzZWQgdGhpcyBURCAqLwogCQkJdGRfZG9uZSAob2hjaSwgdXJiLCB0ZCk7CiAJCQl1cmJfcHJpdi0+dGRfY250Kys7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktczNjMjQxMC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXMzYzI0MTAuYwppbmRleCBhNzNkMmZmLi4zYzdhNzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktczNjMjQxMC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zM2MyNDEwLmMKQEAgLTgsNyArOCw3IEBACiAgKiBVU0IgQnVzIEdsdWUgZm9yIFNhbXN1bmcgUzNDMjQxMAogICoKICAqIFdyaXR0ZW4gYnkgQ2hyaXN0b3BoZXIgSG9vdmVyIDxjaEBocGwuaHAuY29tPgotICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNlbGwgS2luZyBldCBhbC4KKyAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzc2VsbCBLaW5nIGV0IGFsLgogICoKICAqIE1vZGlmaWVkIGZvciBTM0MyNDEwIGZyb20gb2hjaS1zYTExMTEuYywgb2hjaS1vbWFwLmMgYW5kIG9oY2ktbGg3YTQwLmMKICAqCWJ5IEJlbiBEb29rcywgPGJlbkBzaW10ZWMuY28udWs+CkBAIC00NjYsNiArNDY2LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9zM2MyNDEwX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9zM2MyNDEwX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNhMTExMS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNhMTExMS5jCmluZGV4IDk5NDM4YzYuLjJlOWRjZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zYTExMTEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2ExMTExLmMKQEAgLTgsNyArOCw3IEBACiAgKiBTQTExMTEgQnVzIEdsdWUKICAqCiAgKiBXcml0dGVuIGJ5IENocmlzdG9waGVyIEhvb3ZlciA8Y2hAaHBsLmhwLmNvbT4KLSAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzZWxsIEtpbmcgZXQgYWwuCisgKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c3NlbGwgS2luZyBldCBhbC4KICAqCiAgKiBUaGlzIGZpbGUgaXMgbGljZW5jZWQgdW5kZXIgdGhlIEdQTC4KICAqLwpAQCAtMjMxLDYgKzIzMSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNoLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYwppbmRleCA2MGYwM2NjLi5lN2VlNjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYwpAQCAtNjgsNiArNjgsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zbTUwMS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKaW5kZXggZTg5OWE3Ny4uZTYxMDY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKQEAgLTc1LDYgKzc1LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc3NiLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc3NiLmMKaW5kZXggYzQyNjVjYS4uNzI3NTE4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNzYi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zc2IuYwpAQCAtODEsNiArODEsNyBAQAogCiAJLmh1Yl9zdGF0dXNfZGF0YQk9IG9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbAkJPSBvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZQkJPSBvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZAkJPSBvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lCQk9IG9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvdTEzMi1oY2QuYyBiL2RyaXZlcnMvdXNiL2hvc3QvdTEzMi1oY2QuYwppbmRleCBmMjkzMDc0Li45YjYzMjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3UxMzItaGNkLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC91MTMyLWhjZC5jCkBAIC0yOTM0LDYgKzI5MzQsMTYgQEAKIAkJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHUxMzJfaHViX2lycV9lbmFibGUoc3RydWN0IHVzYl9oY2QgKmhjZCkKK3sKKwlzdHJ1Y3QgdTEzMiAqdTEzMiA9IGhjZF90b191MTMyKGhjZCk7CisJaWYgKHUxMzItPmdvaW5nID4gMSkgeworCQlkZXZfZXJyKCZ1MTMyLT5wbGF0Zm9ybV9kZXYtPmRldiwgImRldmljZSBoYXMgYmVlbiByZW1vdmVkICVkXG4iCisJCQksIHUxMzItPmdvaW5nKTsKKwl9IGVsc2UgaWYgKHUxMzItPmdvaW5nID4gMCkKKwkJZGV2X2VycigmdTEzMi0+cGxhdGZvcm1fZGV2LT5kZXYsICJkZXZpY2UgaXMgYmVpbmcgcmVtb3ZlZFxuIik7Cit9CisKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCB1MTMyX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCkBAIC0yOTg1LDYgKzI5OTUsNyBAQAogCS5idXNfc3VzcGVuZCA9IHUxMzJfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPSB1MTMyX2J1c19yZXN1bWUsCiAJLnN0YXJ0X3BvcnRfcmVzZXQgPSB1MTMyX3N0YXJ0X3BvcnRfcmVzZXQsCisJLmh1Yl9pcnFfZW5hYmxlID0gdTEzMl9odWJfaXJxX2VuYWJsZSwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL0tjb25maWcgYi9kcml2ZXJzL3VzYi9taXNjL0tjb25maWcKaW5kZXggZWI2YzA2OS4uMDAxNzg5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvS2NvbmZpZwpAQCAtMjcyLDYgKzI3Miw3IEBACiBjb25maWcgVVNCX0lTSUdIVEZXCiAJdHJpc3RhdGUgImlTaWdodCBmaXJtd2FyZSBsb2FkaW5nIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBVU0IKKwlzZWxlY3QgRldfTE9BREVSCiAJaGVscAogCSAgVGhpcyBkcml2ZXIgbG9hZHMgZmlybXdhcmUgZm9yIFVTQiBBcHBsZSBpU2lnaHQgY2FtZXJhcywgYWxsb3dpbmcKIAkgIHRoZW0gdG8gYmUgZHJpdmVuIGJ5IHRoZSBVU0IgdmlkZW8gY2xhc3MgZHJpdmVyIGF2YWlsYWJsZSBhdApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9lbWkyNi5jIGIvZHJpdmVycy91c2IvbWlzYy9lbWkyNi5jCmluZGV4IDRiOWRjODEuLjRiOTk0YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21pc2MvZW1pMjYuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL2VtaTI2LmMKQEAgLTE2LDE4ICsxNiw4IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0KLSNkZWZpbmUgTUFYX0lOVEVMX0hFWF9SRUNPUkRfTEVOR1RIIDE2Ci10eXBlZGVmIHN0cnVjdCBfSU5URUxfSEVYX1JFQ09SRAotewotCV9fdTMyCWxlbmd0aDsKLQlfX3UzMglhZGRyZXNzOwotCV9fdTMyCXR5cGU7Ci0JX191OAlkYXRhW01BWF9JTlRFTF9IRVhfUkVDT1JEX0xFTkdUSF07Ci19IElOVEVMX0hFWF9SRUNPUkQsICpQSU5URUxfSEVYX1JFQ09SRDsKLQotLyogaW5jbHVkZSBmaXJtd2FyZSAodmFyaWFibGVzKSAqLwotI2luY2x1ZGUgImVtaTI2X2Z3LmgiCisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAKICNkZWZpbmUgRU1JMjZfVkVORE9SX0lEIAkJMHgwODZhICAvKiBFbWFnaWMgU29mdC11bmQgSGFyZHdhcmUgR21CSCAqLwogI2RlZmluZSBFTUkyNl9QUk9EVUNUX0lECQkweDAxMDAJLyogRU1JIDJ8NiB3aXRob3V0IGZpcm13YXJlICovCkBAIC00MCw3ICszMCw5IEBACiAjZGVmaW5lIENQVUNTX1JFRwkJMHg3RjkyICAvKiBFWi1VU0IgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVyLiAgQml0IDAgY29udHJvbHMgODA1MSByZXNldCAqLyAKICNkZWZpbmUgSU5URVJOQUxfUkFNKGFkZHJlc3MpICAgKGFkZHJlc3MgPD0gTUFYX0lOVEVSTkFMX0FERFJFU1MpCiAKLXN0YXRpYyBpbnQgZW1pMjZfd3JpdGVtZW1vcnkoIHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLCBfX3U4IGJSZXF1ZXN0KTsKK3N0YXRpYyBpbnQgZW1pMjZfd3JpdGVtZW1vcnkoIHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLAorCQkJICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwKKwkJCSAgICAgIF9fdTggYlJlcXVlc3QpOwogc3RhdGljIGludCBlbWkyNl9zZXRfcmVzZXQoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciByZXNldF9iaXQpOwogc3RhdGljIGludCBlbWkyNl9sb2FkX2Zpcm13YXJlIChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KTsKIHN0YXRpYyBpbnQgZW1pMjZfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7CkBAIC01MCw3ICs0Miw5IEBACiAKIAogLyogdGhhbmtzIHRvIGRyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jIGNvZGUgKi8KLXN0YXRpYyBpbnQgZW1pMjZfd3JpdGVtZW1vcnkgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLCBfX3U4IHJlcXVlc3QpCitzdGF0aWMgaW50IGVtaTI2X3dyaXRlbWVtb3J5IChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywKKwkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsCisJCQkgICAgICBfX3U4IHJlcXVlc3QpCiB7CiAJaW50IHJlc3VsdDsKIAl1bnNpZ25lZCBjaGFyICpidWZmZXIgPSAga21lbWR1cChkYXRhLCBsZW5ndGgsIEdGUF9LRVJORUwpOwpAQCAtODMsOSArNzcsMTIgQEAKIAogc3RhdGljIGludCBlbWkyNl9sb2FkX2Zpcm13YXJlIChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KQogeworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqbG9hZGVyX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmJpdHN0cmVhbV9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZV9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CiAJaW50IGVycjsKIAlpbnQgaTsKLQlpbnQgcG9zID0gMDsJLyogUG9zaXRpb24gaW4gaGV4IHJlY29yZCAqLwogCV9fdTMyIGFkZHI7CS8qIEFkZHJlc3MgdG8gd3JpdGUgKi8KIAlfX3U4ICpidWY7CiAKQEAgLTk2LDYgKzkzLDIzIEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmxvYWRlcl9mdywgImVtaTI2L2xvYWRlci5mdyIsICZkZXYtPmRldik7CisJaWYgKGVycikKKwkJZ290byBub2Z3OworCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZiaXRzdHJlYW1fZncsICJlbWkyNi9iaXRzdHJlYW0uZnciLAorCQkJCSAgICAmZGV2LT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gbm9mdzsKKworCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZmlybXdhcmVfZncsICJlbWkyNi9maXJtd2FyZS5mdyIsCisJCQkJICAgICZkZXYtPmRldik7CisJaWYgKGVycikgeworCW5vZnc6CisJCWVyciggIiVzIC0gcmVxdWVzdF9maXJtd2FyZSgpIGZhaWxlZCIsIF9fZnVuY19fKTsKKwkJZ290byB3cmFwZXJyOworCX0KKwogCS8qIEFzc2VydCByZXNldCAoc3RvcCB0aGUgQ1BVIGluIHRoZSBFTUkpICovCiAJZXJyID0gZW1pMjZfc2V0X3Jlc2V0KGRldiwxKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtMTAzLDEzICsxMTcsMTcgQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAorCXJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilsb2FkZXJfZnctPmRhdGE7CiAJLyogMS4gV2UgbmVlZCB0byBwdXQgdGhlIGxvYWRlciBmb3IgdGhlIEZQR0EgaW50byB0aGUgRVotVVNCICovCi0JZm9yIChpPTA7IGdfTG9hZGVyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgZ19Mb2FkZXJbaV0uYWRkcmVzcywgZ19Mb2FkZXJbaV0uZGF0YSwgZ19Mb2FkZXJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJd2hpbGUgKHJlYykgeworCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQlBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJZ290byB3cmFwZXJyOwogCQl9CisJCXJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsKIAl9CiAKIAkvKiBEZS1hc3NlcnQgcmVzZXQgKGxldCB0aGUgQ1BVIHJ1bikgKi8KQEAgLTEyMywxNSArMTQxLDE2IEBACiAJLyogMi4gV2UgdXBsb2FkIHRoZSBGUEdBIGZpcm13YXJlIGludG8gdGhlIEVNSQogCSAqIE5vdGU6IGNvbGxlY3QgdXAgdG8gMTAyMyAoeWVzISkgYnl0ZXMgYW5kIHNlbmQgdGhlbSB3aXRoCiAJICogYSBzaW5nbGUgcmVxdWVzdC4gVGhpcyBpcyBfbXVjaF8gZmFzdGVyISAqLworCXJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKiliaXRzdHJlYW1fZnctPmRhdGE7CiAJZG8gewogCQlpID0gMDsKLQkJYWRkciA9IGdfYml0c3RyZWFtW3Bvc10uYWRkcmVzczsKKwkJYWRkciA9IGJlMzJfdG9fY3B1KHJlYy0+YWRkcik7CiAKIAkJLyogaW50ZWwgaGV4IHJlY29yZHMgYXJlIHRlcm1pbmF0ZWQgd2l0aCB0eXBlIDAgZWxlbWVudCAqLwotCQl3aGlsZSAoKGdfYml0c3RyZWFtW3Bvc10udHlwZSA9PSAwKSAmJiAoaSArIGdfYml0c3RyZWFtW3Bvc10ubGVuZ3RoIDwgRldfTE9BRF9TSVpFKSkgewotCQkJbWVtY3B5KGJ1ZiArIGksIGdfYml0c3RyZWFtW3Bvc10uZGF0YSwgZ19iaXRzdHJlYW1bcG9zXS5sZW5ndGgpOwotCQkJaSArPSBnX2JpdHN0cmVhbVtwb3NdLmxlbmd0aDsKLQkJCXBvcysrOworCQl3aGlsZSAocmVjICYmIChpICsgYmUxNl90b19jcHUocmVjLT5sZW4pIDwgRldfTE9BRF9TSVpFKSkgeworCQkJbWVtY3B5KGJ1ZiArIGksIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKKwkJCWkgKz0gYmUxNl90b19jcHUocmVjLT5sZW4pOworCQkJcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpOwogCQl9CiAJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgYWRkciwgYnVmLCBpLCBBTkNIT1JfTE9BRF9GUEdBKTsKIAkJaWYgKGVyciA8IDApIHsKQEAgLTE0OCw4ICsxNjcsMTEgQEAKIAl9CiAKIAkvKiAzLiBXZSBuZWVkIHRvIHB1dCB0aGUgbG9hZGVyIGZvciB0aGUgZmlybXdhcmUgaW50byB0aGUgRVotVVNCIChhZ2Fpbi4uLikgKi8KLQlmb3IgKGk9MDsgZ19Mb2FkZXJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBnX0xvYWRlcltpXS5hZGRyZXNzLCBnX0xvYWRlcltpXS5kYXRhLCBnX0xvYWRlcltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilsb2FkZXJfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQlBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJZ290byB3cmFwZXJyOwpAQCAtMTY1LDkgKzE4NywxMyBAQAogCX0KIAogCS8qIDQuIFdlIHB1dCB0aGUgcGFydCBvZiB0aGUgZmlybXdhcmUgdGhhdCBsaWVzIGluIHRoZSBleHRlcm5hbCBSQU0gaW50byB0aGUgRVotVVNCICovCi0JZm9yIChpPTA7IGdfRmlybXdhcmVbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKCFJTlRFUk5BTF9SQU0oZ19GaXJtd2FyZVtpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBnX0Zpcm13YXJlW2ldLmFkZHJlc3MsIGdfRmlybXdhcmVbaV0uZGF0YSwgZ19GaXJtd2FyZVtpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKKworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJaWYgKCFJTlRFUk5BTF9SQU0oYmUzMl90b19jcHUocmVjLT5hZGRyKSkpIHsKKwkJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkJQU5DSE9SX0xPQURfRVhURVJOQUwpOwogCQkJaWYgKGVyciA8IDApIHsKIAkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJCWdvdG8gd3JhcGVycjsKQEAgLTE4Miw5ICsyMDgsMTIgQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAotCWZvciAoaT0wOyBnX0Zpcm13YXJlW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmIChJTlRFUk5BTF9SQU0oZ19GaXJtd2FyZVtpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBnX0Zpcm13YXJlW2ldLmFkZHJlc3MsIGdfRmlybXdhcmVbaV0uZGF0YSwgZ19GaXJtd2FyZVtpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWlmIChJTlRFUk5BTF9SQU0oYmUzMl90b19jcHUocmVjLT5hZGRyKSkpIHsKKwkJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkJQU5DSE9SX0xPQURfSU5URVJOQUwpOwogCQkJaWYgKGVyciA8IDApIHsKIAkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJCWdvdG8gd3JhcGVycjsKQEAgLTIwNSw2ICsyMzQsMTAgQEAKIAllcnIgPSAxOwogCiB3cmFwZXJyOgorCXJlbGVhc2VfZmlybXdhcmUobG9hZGVyX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGJpdHN0cmVhbV9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShmaXJtd2FyZV9mdyk7CisKIAlrZnJlZShidWYpOwogCXJldHVybiBlcnI7CiB9CkBAIC0yNTcsNSArMjkwLDggQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRW1hZ2ljIEVNSSAyfDYgZmlybXdhcmUgbG9hZGVyLiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCitNT0RVTEVfRklSTVdBUkUoImVtaTI2L2xvYWRlci5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlbWkyNi9iaXRzdHJlYW0uZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZW1pMjYvZmlybXdhcmUuZnciKTsKIC8qIHZpOmFpOnN5bnRheD1jOnN3PTg6dHM9ODp0dz04MAogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTI2X2Z3LmggYi9kcml2ZXJzL3VzYi9taXNjL2VtaTI2X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0N2ZmMTAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWkyNl9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTc3OSArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHRocmVlIGRpZmZlcmVudCBmaWxlcywgcHJvdmlkZWQgYnkgRW1hZ2ljLgotICovCi0vKiBnZW5lcmF0ZWQgRnJpIE1hciA4IDE1OjExOjM1IEVFVCAyMDAyICovCi0KLS8qCi0gKiBUaGlzIGZpcm13YXJlIGlzIGZvciB0aGUgRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlCi0gKgotICogVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgRW1hZ2ljCi0gKiBhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQKLSAqIG9yIHB1YmxpYyBhY2Nlc3MgdG8gdGhpcyBmaXJtd2FyZSB3aGljaCBpcyBhIHRyYWRlIHNlY3JldCBvZiBFbWFnaWMsCi0gKiBhbmQgd2hpY2ggbWF5IG5vdCBiZSByZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvCi0gKiBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCBFbWFnaWMncyB3cml0dGVuIGNvbnNlbnQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotICogaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotICogaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0gKgotICogVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggdGhlCi0gKiBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UuIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mCi0gKiBhbnkgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsCi0gKiByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LgotICovCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX2JpdHN0cmVhbVtdPXsKLXsgIDE2LCAweDgwMTAsIDAsIHsweGZmLDB4ZmYsMHhmZiwweGZmLDB4YWEsMHg5OSwweDU1LDB4NjYsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA3IH0gfSwKLXsgIDE2LCAweDgwMjAsIDAsIHsweDMwLDB4MDEsMHg2MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MGIsMHgzMCwweDAxLDB4MjAsMHgwMSwweDAwLDB4ODAsMHgzZiwweDJkIH0gfSwKLXsgIDE2LCAweDgwMzAsIDAsIHsweDMwLDB4MDAsMHhjMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5IH0gfSwKLXsgIDE2LCAweDgwNDAsIDAsIHsweDMwLDB4MDAsMHgyMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAxIH0gfSwKLXsgIDE2LCAweDgwNTAsIDAsIHsweDMwLDB4MDAsMHg0MCwweDAwLDB4NTAsMHgwMCwweDNlLDB4MDQsMHgwOCwweDEyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0IH0gfSwKLXsgIDE2LCAweDgwODAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDg0IH0gfSwKLXsgIDE2LCAweDgwYjAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMTAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0IH0gfSwKLXsgIDE2LCAweDgxNDAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNzAsIDAsIHsweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0IH0gfSwKLXsgIDE2LCAweDgxYTAsIDAsIHsweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhmNywweDEwLDB4MDEsMHgxNCwweDAwLDB4MjUsMHgwMCwweDA1IH0gfSwKLXsgIDE2LCAweDgxYjAsIDAsIHsweDQwLDB4MDEsMHg1MCwweDAwLDB4OTQsMHgwMCwweDE1LDB4MDAsMHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4OTQsMHgwMCwweDI1IH0gfSwKLXsgIDE2LCAweDgxYzAsIDAsIHsweDgwLDB4MDEsMHg2MCwweDAyLDB4ZDgsMHgwMCwweGY2LDB4MDAsMHgyZiwweDgwLDB4MDIsMHhlMCwweDA0LDB4ZDgsMHgzNywweDQ0IH0gfSwKLXsgIDE2LCAweDgxZDAsIDAsIHsweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjIsMHgwMCwweGNjLDB4OTAsMHgzOSwweDIwIH0gfSwKLXsgIDE2LCAweDgxZTAsIDAsIHsweDBkLDB4OTgsMHgwMywweGQyLDB4MDAsMHhlNywweDgwLDB4MzcsMHgwNCwweDBlLDB4ZjEsMHg4MywweDdlLDB4MDAsMHhkZiwweDkwIH0gfSwKLXsgIDE2LCAweDgxZjAsIDAsIHsweDMxLDB4ZTQsMHg4ZiwweDc5LDB4MDMsMHg3YywweDIwLDB4ZGYsMHgyMiwweDMzLDB4YzAsMHgwYywweGYwLDB4MjIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4NjIsMHgwMCwweDgwLDB4MjQsMHgyMiwweDIwIH0gfSwKLXsgIDE2LCAweDgyMTAsIDAsIHsweDA4LDB4OTgsMHgxMiwweGUyLDB4MDAsMHg4YiwweDgxLDB4MjAsMHg5NCwweDA4LDB4NzQsMHgwMiwweDJlLDB4MDAsMHg4YSwweDAxIH0gfSwKLXsgIDE2LCAweDgyMjAsIDAsIHsweDIyLDB4YzgsMHgwOCwweDkyLDB4MDIsMHgzZCwweDgwLDB4OGIsMHg2MCwweDIyLDB4ODAsMHgwOCwweGIwLDB4MDIsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweDgyMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzgsMHgwMCwweGEwLDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNDAsIDAsIHsweDBiLDB4MTAsMHgwMiwweGMwLDB4MDAsMHhhMSwweDAwLDB4MjQsMHgwOSwweDRhLDB4MzIsMHgwMiwweDQ4LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweDgyNTAsIDAsIHsweDYyLDB4YzAsMHgwOSwweGEwLDB4NDYsMHhjYywweDI0LDB4OTMsMHg0OSwweDJhLDB4ODAsMHg0OCwweDMwLDB4MjIsMHg2MiwweDAxIH0gfSwKLXsgIDE2LCAweDgyNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTgsMHgxMiwweGE4LDB4MDAsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweDgyNzAsIDAsIHsweDA4LDB4OTAsMHgwMiwweGUwLDB4MDAsMHg4OSwweDgwLDB4MjIsMHg0NCwweDA4LDB4YjAsMHgxMiwweGE4LDB4MDAsMHhhOSwweDQwIH0gfSwKLXsgIDE2LCAweDgyODAsIDAsIHsweDIyLDB4YzAsMHgwOCwweDkwLDB4ODIsMHhhYywweDAwLDB4OWIsMHgwNCwweDJhLDB4YzQsMHgwOCwweGIwLDB4MDIsMHg3MCwweDA0IH0gfSwKLXsgIDE2LCAweDgyOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE0LDB4ODQsMHgwMCwweGU5LDB4ODAsMHhiMiwweDY0IH0gfSwKLXsgIDE2LCAweDgyYTAsIDAsIHsweDRkLDB4YTAsMHgwMywweGVhLDB4MjAsMHhlOSwweGMwLDB4MzYsMHg0MCwweDBlLDB4YjAsMHgwMywweDQ0LDB4MDAsMHhmYiwweDkwIH0gfSwKLXsgIDE2LCAweDgyYjAsIDAsIHsweGIyLDB4ODgsMHgwZCwweGJjLDB4MDMsMHhlYywweDA4LDB4NWIsMHgwMCwweDM4LDB4NjAsMHgyYywweGIwLDB4NjMsMHg0MCwweDA0IH0gfSwKLXsgIDE2LCAweDgyYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjQsMHgyNiwweGRkLDB4OTAsMHgzNywweDQwIH0gfSwKLXsgIDE2LCAweDgyZDAsIDAsIHsweDRmLDB4ZTAsMHgxMywweGYyLDB4ODAsMHhmZCwweDAwLDB4M2QsMHhhMCwweDBkLDB4NzAsMHgwMywweDc1LDB4MDAsMHg1ZSwweDAwIH0gfSwKLXsgIDE2LCAweDgyZTAsIDAsIHsweDNmLDB4YTQsMHgwZCwweGY5LDB4MDMsMHg1YywweDEwLDB4ZWIsMHgwMCwweDM3LDB4MjAsMHgwZiwweDMwLDB4MDMsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweDgyZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGU5LDB4ODAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweDgzMDAsIDAsIHsweDBjLDB4YTEsMHg4MywweGU4LDB4MDAsMHhlOSwweDAwLDB4MzIsMHg0MiwweDBlLDB4YjAsMHgwMywweGFjLDB4NDgsMHhlOSwweDAwIH0gfSwKLXsgIDE2LCAweDgzMTAsIDAsIHsweDNhLDB4ODAsMHgwZSwweGE0LDB4MDMsMHhlYywweDAwLDB4ZWIsMHgwMCwweGIyLDB4MDMsMHgwZSwweGIwLDB4MGIsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweDgzMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmUsMHg4MCwweDg5LDB4ZDEsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDgzMzAsIDAsIHsweDA4LDB4YTAsMHgwMiwweGMwLDB4MDAsMHg4MSwweDgwLDB4MjIsMHg1OCwweDA4LDB4ZjUsMHgwMiwweDJmLDB4NDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweDgzNDAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDMwLDB4NDMsMHg3YywweDAwLDB4ODcsMHgwMCwweDIyLDB4NDAsMHgwOCwweGYwLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDgzNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDIsMHgwMSwweDlhLDB4NDQsMHgyOCwweGEyIH0gfSwKLXsgIDE2LCAweDgzNjAsIDAsIHsweDA4LDB4MTgsMHgwMiwweGMwLDB4ODAsMHhhMSwweDgwLDB4YTAsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhlLDB4MDAsMHhhYiwweDAwIH0gfSwKLXsgIDE2LCAweDgzNzAsIDAsIHsweDJjLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDIwLDB4NDQsMHgwYSwweDMwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweDgzODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAxLDB4MzIsMHgwMCwweDk2LDB4ODIsMHgyYiwweGEyIH0gfSwKLXsgIDE2LCAweDgzOTAsIDAsIHsweDg4LDB4NWEsMHgwMiwweGYyLDB4MDAsMHgwNSwweDgwLDB4MjksMHhhMCwweDA4LDB4NzgsMHg0MiwweGJlLDB4MDAsMHg4ZSwweDg0IH0gfSwKLXsgIDE2LCAweDgzYTAsIDAsIHsweDJmLDB4NjEsMHgwYSwweGQ4LDB4MDIsMHg0ZSwweDEwLDB4YTcsMHg4MCwweDIwLDB4MjgsMHgwOCwweDc4LDB4MDIsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweDgzYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDgsMHgwMCwweGYyLDB4MjQsMHgzOCwweDgwIH0gfSwKLXsgIDE2LCAweDgzYzAsIDAsIHsweDJjLDB4MWEsMHgwMywweGM0LDB4MDAsMHhlMCwweDU4LDB4YTAsMHg4MCwweDJlLDB4MzAsMHgwMywweDg4LDB4NDEsMHhlMywweDAyIH0gfSwKLXsgIDE2LCAweDgzZDAsIDAsIHsweDNjLDB4NDAsMHgwNiwweDIwLDB4MDMsMHg4YywweDAwLDB4ZTMsMHgwMCwweDEwLDB4MDAsMHgwZSwweDMxLDB4NDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweDgzZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4OTgsMHgwMCwweGVlLDB4MDEsMHgzNywweDg0IH0gfSwKLXsgIDE2LCAweDgzZjAsIDAsIHsweDlmLDB4ZDksMHgwMywweGYwLDB4NDgsMHhmZCwweDEwLDB4MzcsMHhjMCwweDA3LDB4YjAsMHgwMywweDVjLDB4MDAsMHhmNiwweDEwIH0gfSwKLXsgIDE2LCAweDg0MDAsIDAsIHsweDMzLDB4YzAsMHgwZCwweGUxLDB4MDMsMHhlZCwweDIwLDB4ZGYsMHgxMCwweDNmLDB4NDgsMHgwZiwweGYwLDB4MjMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDg0MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMiwweGNiLDB4ODAsMHgzMCwweGMwIH0gfSwKLXsgIDE2LCAweDg0MjAsIDAsIHsweDBjLDB4YTAsMHgwMywweGUyLDB4MDIsMHhjOSwweDAwLDB4M2EsMHg0MCwweDBkLDB4YjYsMHgwMywweDY0LDB4MDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweDg0MzAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlZCwweDAwLDB4ZmIsMHgwMSwweDNlLDB4ZTAsMHgwYywweGIwLDB4MDIsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweDg0NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OTQsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDg0NTAsIDAsIHsweDI4LDB4NjAsMHgwMiwweGQwLDB4MDAsMHg4NSwweDAwLDB4MmQsMHg4MCwweDQ4LDB4ZjAsMHg4MiwweDFjLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweDg0NjAsIDAsIHsweDJkLDB4MDAsMHgwYiwweDUwLDB4MDIsMHhkYywweDAwLDB4YjcsMHhhMCwweDJmLDB4ODAsMHgyOCwweDdhLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDg0NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMSwweDAwLDB4YmUsMHgwMCwweDg3LDB4ODAsMHgyMSwweGUwIH0gfSwKLXsgIDE2LCAweDg0ODAsIDAsIHsweDI4LDB4NjgsMHgwMiwweGQ3LDB4MDAsMHg4NCwweDgwLDB4MmQsMHhlMCwweDQ5LDB4NzksMHgwNiwweDUzLDB4MDksMHhiNSwweDgwIH0gfSwKLXsgIDE2LCAweDg0OTAsIDAsIHsweDJkLDB4ZTIsMHgwYiwweDc4LDB4MDIsMHhkZSwweDgwLDB4YjcsMHg5MCwweDJkLDB4YjAsMHgwOCwweDc5LDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgxMCwweDgzLDB4MDEsMHgyOCwweGM4IH0gfSwKLXsgIDE2LCAweDg0YjAsIDAsIHsweDA4LDB4MjAsMHgwMiwweGMyLDB4MDYsMHg4MSwweDAwLDB4MmMsMHhjOCwweDg4LDB4MzAsMHg2MiwweDBlLDB4MjEsMHhiMywweGEwIH0gfSwKLXsgIDE2LCAweDg0YzAsIDAsIHsweDJjLDB4YzEsMHgwYiwweGI2LDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAsMHgwOCwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDg0ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGNhLDB4NDAsMHhiMCwweDgwIH0gfSwKLXsgIDE2LCAweDg0ZTAsIDAsIHsweDBjLDB4MmMsMHgwMiwweGY4LDB4MDAsMHhjNiwweDIwLDB4M2YsMHg5MCwweDBkLDB4YTAsMHgwMywweDdiLDB4MDEsMHhlZSwweGUwIH0gfSwKLXsgIDE2LCAweDg0ZjAsIDAsIHsweDNmLDB4YjQsMHgwZiwweGVjLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDNmLDB4YTAsMHgwYywweGEwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweDg1MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTMsMHgwMCwweGY4LDB4MDksMHgyNiwweDAwIH0gfSwKLXsgIDE2LCAweDg1MTAsIDAsIHsweDBmLDB4YzEsMHg4MywweGUwLDB4MTAsMHhmOCwweDQwLDB4M2MsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDEsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDg1MjAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDA0LDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDg1MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDg1NDAsIDAsIHsweDRmLDB4OTAsMHg2MywweDI2LDB4ODQsMHgzOSwweDAyLDB4YjIsMHg0MCwweDBjLDB4OTEsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDg1NTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjEsMHgwMCwweDNhLDB4NDQsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweDg1NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NDUsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweDg1NzAsIDAsIHsweDA4LDB4OTIsMHgwYSwweDI0LDB4MDAsMHhiOSwweDMxLDB4MjIsMHg2MCwweDg4LDB4OTQsMHg4YSwweDI0LDB4MjAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDg1ODAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NjgsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1OTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHhhMCwweDhkLDB4ODQsMHgyZiwweDQwIH0gfSwKLXsgIDE2LCAweDg1YTAsIDAsIHsweDBiLDB4ZDEsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0YSwweDA4LDB4MTAsMHgwMiwweDJjLDB4NDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDg1YjAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDg1YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTQsMHgwMCwweDg1LDB4ODAsMHgyZCwweDQwIH0gfSwKLXsgIDE2LCAweDg1ZDAsIDAsIHsweDA4LDB4NTAsMHgwMiwweDA0LDB4MGMsMHhiOSwweDAwLDB4YTAsMHg1MCwweDA4LDB4MTQsMHgyMiwweDA0LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZTAsIDAsIHsweDJjLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgyOCwweDIwLDB4NGEsMHgwYiwweDEzLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDg1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwMCwweGMwLDB4NTAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweDg2MDAsIDAsIHsweDBmLDB4YzAsMHg0MywweDIwLDB4MDAsMHhmOCwweDAwLDB4MzAsMHgwMCwweDJjLDB4ODAsMHgyMywweDIwLDB4MDAsMHhmOCwweDUxIH0gfSwKLXsgIDE2LCAweDg2MTAsIDAsIHsweDNlLDB4MTQsMHg4ZiwweDg1LDB4MGIsMHgyMSwweDQwLDB4ZjgsMHg3MCwweDNhLDB4MDgsMHgwZiwweDg0LDB4ODMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweDg2MjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4YzQsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDg2MzAsIDAsIHsweDBmLDB4OTAsMHgyMywweGQ0LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg1MCwweDBmLDB4OTQsMHgwMywweGY0LDB4MDQsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NDAsIDAsIHsweDNmLDB4NDEsMHg4ZiwweGQwLDB4NDMsMHhlNSwweDBjLDB4ZjksMHgwMiwweDNmLDB4NGEsMHgwZiwweDkyLDB4MDMsMHhlNiwweDAyIH0gfSwKLXsgIDE2LCAweDg2NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZDQsMHgwMSwweGZkLDB4MDAsMHgzZCwweDQwIH0gfSwKLXsgIDE2LCAweDg2NjAsIDAsIHsweDBjLDB4ZDAsMHgxMywweGY0LDB4MDAsMHhkNSwweDAwLDB4MzMsMHg2YSwweDFjLDB4ZGMsMHg4MywweDM0LDB4MDAsMHhkMSwweDA0IH0gfSwKLXsgIDE2LCAweDg2NzAsIDAsIHsweDNlLDB4NTAsMHgwYywweDkxLDB4MDMsMHhlNiwweGMwLDB4ZGQsMHhiMCwweDMzLDB4NmEsMHgyYywweDljLDB4ODMsMHhlNiwweDAwIH0gfSwKLXsgIDE2LCAweDg2ODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwOSwweGY4LDB4ODAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweDg2OTAsIDAsIHsweDg4LDB4ODAsMHgwMCwweGU4LDB4MDAsMHhiYSwweDAwLDB4MjIsMHhiMCwweDA4LDB4OGUsMHgwMiwweDI4LDB4MDAsMHg4OCwweGE4IH0gfSwKLXsgIDE2LCAweDg2YTAsIDAsIHsweDI2LDB4MjgsMHgwOCwweDhhLDB4MjIsMHhlMiwweDAwLDB4ODgsMHhlNCwweDIyLDB4MzAsMHgwOCwweDhjLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweDg2YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MjgsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweDg2YzAsIDAsIHsweDA4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHg5OSwweDAwLDB4MjAsMHg0MiwweDQ4LDB4MTAsMHgwMiwweDY0LDB4MDEsMHg5MSwweDgwIH0gfSwKLXsgIDE2LCAweDg2ZDAsIDAsIHsweDJjLDB4NDgsMHgwOCwweDEwLDB4MDIsMHhjNCwweGMwLDB4ODEsMHg0MCwweDIwLDB4NGEsMHgwOCwweDEyLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDg2ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHg5NCwweGE5LDB4MDIsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweDg2ZjAsIDAsIHsweDBhLDB4OTAsMHgwMiwweDY0LDB4MDAsMHhiOSwweDAwLDB4ODIsMHg2MCwweDA4LDB4OTAsMHgwMiwweDY2LDB4MDAsMHg4OSwweDEwIH0gfSwKLXsgIDE2LCAweDg3MDAsIDAsIHsweDI0LDB4NjIsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMiwweDIyLDB4NDAsMHgxOCwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweDg3MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTYsMHgwMCwweGI5LDB4MDQsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDg3MjAsIDAsIHsweDBjLDB4OTAsMHgxMywweGU0LDB4MDAsMHhkMSwweGMwLDB4MTIsMHg1MCwweDI4LDB4OTAsMHgwMywweDQ0LDB4MDAsMHhkOSwweDAwIH0gfSwKLXsgIDE2LCAweDg3MzAsIDAsIHsweDNlLDB4NDAsMHgyOCwweDkyLDB4MDMsMHhlNCwweDAyLDB4ZDksMHgwMCwweDMyLDB4NDIsMHg4YywweDkwLDB4MTIsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweDg3NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTYsMHgyMCwweGY5LDB4MDAsMHgzZSwweDQxIH0gfSwKLXsgIDE2LCAweDg3NTAsIDAsIHsweDJkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDIwLDB4M2UsMHg0MCwweDRmLDB4OTAsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDg3NjAsIDAsIHsweDM2LDB4NDAsMHg4ZiwweDkyLDB4MDcsMHhlNCwweDAwLDB4ZjEsMHgwMCwweGJlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDg3NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDIwIH0gfSwKLXsgIDE2LCAweDg3ODAsIDAsIHsweDBjLDB4ODAsMHgwMywweGUwLDB4NDAsMHhmOCwweDAwLDB4MzYsMHgxMiwweDJjLDB4MDAsMHgwMywweGUwLDB4YzAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDg3OTAsIDAsIHsweDMyLDB4MTAsMHgwZCwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMiwweDNlLDB4MDgsMHgwZiwweDgwLDB4MDAsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDg3YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4M2EsMHg5MCwweDhlLDB4MDAsMHgyZCwweGEwIH0gfSwKLXsgIDE2LCAweDg3YjAsIDAsIHsweDgwLDB4ZTgsMHgwMiwweGZhLDB4MDAsMHhiZSwweDQwLDB4MjMsMHg4MCwweDA4LDB4ZTgsMHgwMiwweGZhLDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDg3YzAsIDAsIHsweDM2LDB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YmEsMHgwMCwweDJmLDB4ODAsMHgwYiwweGEwLDB4MDMsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDg3ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDYsMHgwMiwweDgzLDB4MDAsMHgyYywweDgwIH0gfSwKLXsgIDE2LCAweDg3ZTAsIDAsIHsweDA4LDB4MjIsMHg0MiwweGM2LDB4ODAsMHhiMSwweDYwLDB4MmUsMHhmNCwweDA4LDB4MzgsMHgyMiwweGNlLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweDg3ZjAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhhYywweDAwLDB4YjEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDg4MDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWUsMHgwMiwweDg1LDB4MDEsMHgyZCwweGMyIH0gfSwKLXsgIDE2LCAweDg4MTAsIDAsIHsweGE4LDB4NDQsMHgwMiwweGQ0LDB4MDAsMHhiZCwweDAxLDB4MjksMHg0MCwweDE4LDB4NjgsMHhkMiwweGRjLDB4MDAsMHg4ZiwweDgwIH0gfSwKLXsgIDE2LCAweDg4MjAsIDAsIHsweDI1LDB4Y2MsMHgyOCwweDczLDB4NDIsMHhkYywweDgwLDB4YjUsMHgzMCwweDJkLDB4YzAsMHgxYiwweDcyLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweDg4MzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwNCwweGM2LDB4ODIsMHgzZCwweGUwIH0gfSwKLXsgIDE2LCAweDg4NDAsIDAsIHsweDBjLDB4NDgsMHgxMiwweGQ2LDB4MTAsMHhmNSwweDgwLDB4M2MsMHhhMCwweDBjLDB4NzAsMHgwMywweGRlLDB4MDAsMHhlNywweDkwIH0gfSwKLXsgIDE2LCAweDg4NTAsIDAsIHsweDIzLDB4ZWEsMHgwNCwweDdhLDB4MDMsMHg5ZSwweDAwLDB4ZjUsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDdhLDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDg4NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDBkLDB4YWMsMHgwMCwweDljLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweDg4NzAsIDAsIHsweDBmLDB4ODAsMHgwMywweGU0LDB4MTAsMHhmOSwweDAwLDB4MzYsMHgwMSwweDBmLDB4YTAsMHgwMywweGMwLDB4MDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweDg4ODAsIDAsIHsweDNlLDB4ZDgsMHg0ZSwweGIwLDB4ODMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZiwweGI0LDB4NDMsMHg4MiwweDA2IH0gfSwKLXsgIDE2LCAweDg4OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZGUsMHgwMCwweGNmLDB4ODQsMHgzMSwweGUwIH0gfSwKLXsgIDE2LCAweDg4YTAsIDAsIHsweDBlLDB4YzgsMHg0MywweGQ2LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhlMCwweGNkLDB4ZDksMHgwMywweDNhLDB4MDAsMHhmZiwweDg4IH0gfSwKLXsgIDE2LCAweDg4YjAsIDAsIHsweDMzLDB4ZTAsMHgwZiwweGY5LDB4MTMsMHhmZSwweDI0LDB4ZmQsMHg4MCwweDNmLDB4MjAsMHgwYywweGY2LDB4ODMsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweDg1LDB4MDAsMHgyMSwweGM0IH0gfSwKLXsgIDE2LCAweDg4ZDAsIDAsIHsweDI4LDB4NDAsMHg4MiwweGQwLDB4MDAsMHhkNSwweDAwLDB4MjMsMHg4MCwweDQ4LDB4YzksMHgwMiwweDFjLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweDg4ZTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcxLDB4MDIsMHhkZSwweDgwLDB4YjUsMHgxMCwweDJkLDB4YzAsMHgyOCwweGYwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweDg4ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4OWMsMHgwMCwweDk2LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDg5MDAsIDAsIHsweDBhLDB4NDEsMHgwMiwweGY1LDB4NDAsMHg4ZCwweDAwLDB4MjEsMHg0MCwweDA5LDB4NTIsMHgwMiwweDk4LDB4MjAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweDg5MTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcwLDB4MDYsMHhkYywweDgwLDB4YjUsMHgwMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwNCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDE0LDB4Y2MsMHgxMCwweDk4LDB4MDAsMHgwMCwweGMwIH0gfSwKLXsgIDE2LCAweDg5MzAsIDAsIHsweDg4LDB4MDQsMHg4MiwweGMwLDB4MDAsMHg5MSwweDA0LDB4MjAsMHgwMywweDA5LDB4MDAsMHgwMiwweDhhLDB4MDAsMHhiMywweDBhIH0gfSwKLXsgIDE2LCAweDg5NDAsIDAsIHsweDIwLDB4YzQsMHg4YiwweDM0LDB4MDIsMHhjYywweDAwLDB4YjksMHgwMCwweDJjLDB4YzAsMHgwMCwweDMwLDB4MDIsMHgxOCwweDA0IH0gfSwKLXsgIDE2LCAweDg5NTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhmOCwweDE1LDB4YWMsMHgwMCwweGRiLDB4MDAsMHhiMCwweGMwIH0gfSwKLXsgIDE2LCAweDg5NjAsIDAsIHsweDBlLDB4OWMsMHgwMiwweGM1LDB4MDAsMHhjMSwweDEwLDB4YjIsMHhjMCwweDBkLDB4YjAsMHgwYiwweGE3LDB4MDgsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDg5NzAsIDAsIHsweGIzLDB4YzAsMHgwZiwweGZhLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNlLDB4ZDQsMHgwYywweGYwLDB4MGIsMHgyZSwweDA0IH0gfSwKLXsgIDE2LCAweDg5ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwNCwweGVkLDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDg5OTAsIDAsIHsweDBmLDB4ODQsMHgwMywweGU1LDB4NDAsMHhmOSwweDQwLDB4M2UsMHg2MCwweGNlLDB4YjQsMHg0MywweDY0LDB4MDAsMHhmYiwweDgwIH0gfSwKLXsgIDE2LCAweDg5YTAsIDAsIHsweDNlLDB4YzIsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZjksMHgwMiwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhlMSwweDAwIH0gfSwKLXsgIDE2LCAweDg5YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDEwLDB4ZmYsMHgwMCwweGNlLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweDg5YzAsIDAsIHsweDBlLDB4YzAsMHgwNywweDc0LDB4MDQsMHhlYywweDAwLDB4MTEsMHg4MCwweDBjLDB4Y2EsMHgwMywweGZlLDB4NjAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDg5ZDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4ODMsMHgzYywweDAwLDB4ZGQsMHgwMCwweGIzLDB4NTAsMHgyYywweGYwLDB4MDMsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweDg5ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDAwLDB4NGMsMHgwNCwweDhiLDB4MGIsMHgyMiwweDcwIH0gfSwKLXsgIDE2LCAweDg5ZjAsIDAsIHsweDA4LDB4MDgsMHgwMywweDY3LDB4MjAsMHg4YSwweDg4LDB4YTIsMHgwMCwweDI4LDB4ODQsMHgwMiwweGU3LDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDhhMDAsIDAsIHsweDNlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjksMHgwMCwweDIyLDB4NjEsMHgwOCwweGIwLDB4MDMsMHg2MCwweDQwIH0gfSwKLXsgIDE2LCAweDhhMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MjAsMHgyMiwweGUyIH0gfSwKLXsgIDE2LCAweDhhMjAsIDAsIHsweDBhLDB4OGMsMHgwMiwweDI2LDB4MDAsMHhhOSwweDgwLDB4MmEsMHhjMCwweDA4LDB4YjQsMHg0MiwweGVkLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDhhMzAsIDAsIHsweDJlLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgyYywweDAwLDB4YjksMHgwMCwweDIwLDB4ODAsMHgwOCwweDMwLDB4MDIsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweDhhNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGUsMHgwMSwweDgxLDB4MDAsMHhhMCwweGMwIH0gfSwKLXsgIDE2LCAweDhhNTAsIDAsIHsweDA4LDB4ODEsMHgwMiwweDQ0LDB4MDAsMHg4MSwweDAwLDB4MjgsMHg4MSwweDA4LDB4MzIsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDhhNjAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDgwLDB4YjEsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MTIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweDhhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBkLDB4NmMsMHgwMCwweGMyLDB4MDEsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweDhhODAsIDAsIHsweDJlLDB4ODAsMHgxNiwweDJjLDB4MDgsMHhlOSwweDAwLDB4M2EsMHg0MCwweDBjLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmNywweDAwIH0gfSwKLXsgIDE2LCAweDhhOTAsIDAsIHsweDJmLDB4YzAsMHgwZiwweGYwLDB4MGIsMHgyYywweDAwLDB4ZDksMHgwMCwweDMwLDB4NDAsMHgwYywweGYwLDB4MDMsMHg2MCwweDAzIH0gfSwKLXsgIDE2LCAweDhhYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDBkLDB4ZjgsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweDhhYjAsIDAsIHsweDBmLDB4YzIsMHgxNywweGZjLDB4MDAsMHhmNywweDAwLDB4MzcsMHgwMCwweDBmLDB4ODQsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDhhYzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlZCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweDhhZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGNmLDB4MzAsMHgxNywweDQ4IH0gfSwKLXsgIDE2LCAweDhhZTAsIDAsIHsweDBjLDB4NTksMHgwMywweGI5LDB4MDAsMHhkZiwweDI4LDB4MzUsMHgyNCwweDBkLDB4ODIsMHhhMywweDdjLDB4ODAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDhhZjAsIDAsIHsweDNmLDB4YzgsMHgwZiwweGYyLDB4MDMsMHhlNCwweGEwLDB4ZWYsMHg4MCwweDNmLDB4ZTEsMHg4YywweGQ4LDB4NDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWQsMHg0OCwweDg5LDB4MzQsMHhhMywweDcwIH0gfSwKLXsgIDE2LCAweDhiMTAsIDAsIHsweDI4LDB4YjAsMHgyMywweDYwLDB4MDAsMHg4YiwweGMwLDB4MjIsMHg0MCwweDA4LDB4YjQsMHg4MiwweDJmLDB4NDAsMHhiZiwweGQxIH0gfSwKLXsgIDE2LCAweDhiMjAsIDAsIHsweDZmLDB4ZjQsMHg4ZSwweGJkLDB4MDIsMHhlNywweDAwLDB4YmIsMHg4MCwweDNhLDB4ZTAsMHgwOCwweDk4LDB4MGEsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweDhiMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHhiMCwweDkxLDB4MDAsMHhhOCwweDUwIH0gfSwKLXsgIDE2LCAweDhiNDAsIDAsIHsweDA4LDB4YjIsMHgwMiwweGM4LDB4ODQsMHg5MywweDAwLDB4MjQsMHg0OSwweDBiLDB4MDIsMHgwMiwweDRjLDB4MDAsMHhiMywweDA0IH0gfSwKLXsgIDE2LCAweDhiNTAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4NDIsMHg4NCwweDAwLDB4YjMsMHgwMCwweDJlLDB4MDAsMHgwYSwweGIwLDB4MTIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweDhiNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4YWMsMHgwMiwweDk5LDB4MTgsMHgyYSwweDQ0IH0gfSwKLXsgIDE2LCAweDhiNzAsIDAsIHsweDA4LDB4YjgsMHg4MiwweGEyLDB4MDEsMHhiYiwweDAwLDB4MjgsMHg2MCwweDBhLDB4YTAsMHgxMiwweDZjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDhiODAsIDAsIHsweDZlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlNCwweDAwLDB4YmIsMHgwMCwweDJhLDB4MDAsMHgyYSwweGIwLDB4MDIsMHgzOCwweDA0IH0gfSwKLXsgIDE2LCAweDhiOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDExLDB4ZTQsMHgwOCwweGRhLDB4YzAsMHgzYSwweDYwIH0gfSwKLXsgIDE2LCAweDhiYTAsIDAsIHsweDBjLDB4MTgsMHgwYSwweGViLDB4MDQsMHhkYiwweDAwLDB4MzYsMHhlMCwweDA3LDB4ODUsMHg4MywweDZjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDhiYjAsIDAsIHsweDJlLDB4YzAsMHgwZiwweGIwLDB4NDMsMHhlNCwweDAwLDB4ZWIsMHgwMCwweDNlLDB4ODgsMHgwZSwweDE4LDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweDhiYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDQxLDB4OWMsMHgxMCwweGU5LDB4MDAsMHgzNywweDYwIH0gfSwKLXsgIDE2LCAweDhiZDAsIDAsIHsweDg3LDB4ZjAsMHgxNywweDcwLDB4MDAsMHhjZiwweDAxLDB4MzcsMHhjMCwweDRjLDB4OTgsMHgwMywweGJjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDhiZTAsIDAsIHsweDNmLDB4YzIsMHgwZiwweGYwLDB4MDMsMHhlNCwweDAwLDB4ZmYsMHg0MCwweDNmLDB4ZTQsMHgwZCwweGQ5LDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTQsMHgwMCwweGY0LDB4MDAsMHgzMCwweDQwIH0gfSwKLXsgIDE2LCAweDhjMDAsIDAsIHsweDBmLDB4YjQsMHgwMywweDk5LDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBkLDB4MDQsMHgyMywweDJjLDB4MDgsMHhmYiwweDg4IH0gfSwKLXsgIDE2LCAweDhjMTAsIDAsIHsweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNiwweDAwLDB4ZGIsMHgxMCwweDNlLDB4MDIsMHgwZiwweGIwLDB4ODMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDhjMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweGI5LDB4NTAsMHhhMiwweDQ4IH0gfSwKLXsgIDE2LCAweDhjMzAsIDAsIHsweDhiLDB4YjAsMHgwMywweDIwLDB4MDAsMHhkNywweDgwLDB4MmUsMHhkOCwweDAwLDB4ODAsMHgwMiwweDNjLDB4MDAsMHhiZiwweDgwIH0gfSwKLXsgIDE2LCAweDhjNDAsIDAsIHsweDIzLDB4ZTgsMHg4YiwweGYwLDB4MDIsMHhmNCwweDQwLDB4OGIsMHg0MCwweDBjLDB4NDIsMHgwMywweGI2LDB4MDIsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweDhjNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIyLDB4NDQsMHgwMCwweGM4IH0gfSwKLXsgIDE2LCAweDhjNjAsIDAsIHsweDBiLDB4MzAsMHgxMiwweDhjLDB4MDAsMHhhMywweDgwLDB4MjQsMHhjOCwweDBiLDB4MDAsMHgwYSwweGNjLDB4MDAsMHhiMywweDQ0IH0gfSwKLXsgIDE2LCAweDhjNzAsIDAsIHsweDA0LDB4YzAsMHgxYiwweDM2LDB4MDIsMHhjNSwweDAxLDB4ODMsMHgwYywweDJjLDB4YTAsMHgwYiwweDMwLDB4MDIsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDhjODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwOCwweGI3LDB4OTAsMHgyMSwweDY0IH0gfSwKLXsgIDE2LCAweDhjOTAsIDAsIHsweDBiLDB4ZjgsMHgwMiwweDRhLDB4MDQsMHg5NywweDgxLDB4MmYsMHhlNCwweDBhLDB4NzgsMHgwMiwweDllLDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweDhjYTAsIDAsIHsweDIxLDB4ZTAsMHg4YiwweDc4LDB4ODIsMHhkNiwweDg2LDB4ODcsMHg4NCwweDJkLDB4YTAsMHgwYiwweDc4LDB4MDIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDQsMHgwMCwweGYyLDB4MDAsMHgzMCwweGMwIH0gfSwKLXsgIDE2LCAweDhjYzAsIDAsIHsweDBmLDB4MzAsMHgwMywweDhjLDB4MDAsMHhlMywweDBhLDB4M2MsMHhjMCwweDBmLDB4MTgsMHgwMywweDhjLDB4MDAsMHhmMywweDAyIH0gfSwKLXsgIDE2LCAweDhjZDAsIDAsIHsweDMwLDB4YzAsMHgxZiwweDMwLDB4MDEsMHhjNiwweDgwLDB4YzMsMHgwMCwweDNjLDB4YzAsMHgwZiwweDEyLDB4MDMsMHhkYSwweDAyIH0gfSwKLXsgIDE2LCAweDhjZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDBkLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQxIH0gfSwKLXsgIDE2LCAweDhjZjAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGI4LDB4MDgsMHhmZiwweDA4LDB4M2YsMHhjMCwweDBkLDB4ZjAsMHgwMywweDNjLDB4MjAsMHhmZiwweDA4IH0gfSwKLXsgIDE2LCAweDhkMDAsIDAsIHsweDNiLDB4ZDIsMHgwZiwweGYwLDB4MDMsMHhmNCwweDQwLDB4ZWYsMHgwMCwweDNmLDB4YzQsMHgwZiwweGQwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDhkMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGZlLDB4MDAsMHgzMiwweGMyIH0gfSwKLXsgIDE2LCAweDhkMjAsIDAsIHsweDBjLDB4MzAsMHgwYiwweDI2LDB4MDAsMHhmYiwweDgwLDB4MzYsMHhjMCwweDBkLDB4YTAsMHgwMywweGVjLDB4MDAsMHhmYiwweGUwIH0gfSwKLXsgIDE2LCAweDhkMzAsIDAsIHsweDMyLDB4ZDAsMHgwZiwweGI4LDB4NDMsMHg2NCwweDQ0LDB4ZGIsMHgwNCwweDNlLDB4ODAsMHgwZiwweGIwLDB4MDMsMHhlMiwweDAwIH0gfSwKLXsgIDE2LCAweDhkNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MDAsMHhhMSwweGMwIH0gfSwKLXsgIDE2LCAweDhkNTAsIDAsIHsweDg4LDB4NzAsMHgwMywweDEwLDB4MDAsMHhiNywweDIwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4ODAsMHhiMywweDMwIH0gfSwKLXsgIDE2LCAweDhkNjAsIDAsIHsweDMxLDB4YzgsMHgwYiwweDc0LDB4MDIsMHgxNCwweDAwLDB4ODcsMHg0MCwweDJkLDB4YzAsMHg0YiwweDcwLDB4MDIsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDhkNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OTYsMHgyMCwweGI2LDB4ODAsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweDhkODAsIDAsIHsweDI4LDB4ZjgsMHgwMiwweDk0LDB4MTAsMHhiNywweDgxLDB4MjcsMHhlMiwweDA5LDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNywweGEwIH0gfSwKLXsgIDE2LCAweDhkOTAsIDAsIHsweGE5LDB4ZTgsMHgwYiwweDM4LDB4MDIsMHg3NiwweDAwLDB4ODcsMHg4MCwweDJkLDB4YTAsMHgwYiwweDU4LDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2UsMHgxMCwweGIzLDB4MDAsMHgyMCwweGM0IH0gfSwKLXsgIDE2LCAweDhkYjAsIDAsIHsweDA4LDB4MjAsMHgwMiwweDgwLDB4MTAsMHhiMywweDAwLDB4MjIsMHhjOCwweDA4LDB4YjAsMHgwMiwweGNjLDB4MTEsMHhiMywweDAyIH0gfSwKLXsgIDE2LCAweDhkYzAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwNCwweDAwLDB4OTMsMHg4MCwweDJjLDB4ZDIsMHgwYiwweDEwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDhkZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGZlLDB4NDAsMHgzMiwweGEwIH0gfSwKLXsgIDE2LCAweDhkZTAsIDAsIHsweDBjLDB4ZTQsMHgwMywweDk4LDB4ODAsMHhmYSwweDAwLDB4MzcsMHhhMCwweDBkLDB4ZTAsMHg4MywweGU4LDB4MDAsMHhmZSwweDAwIH0gfSwKLXsgIDE2LCAweDhkZjAsIDAsIHsweDNhLDB4ODAsMHgwYiwweGEwLDB4MDMsMHg2OCwweDAwLDB4ZDgsMHhhMCwweDNmLDB4OTAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweDhlMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwOCwweGY4LDB4MDgsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweDhlMTAsIDAsIHsweDBmLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDA0IH0gfSwKLXsgIDE2LCAweDhlMjAsIDAsIHsweDMwLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAyLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDhlMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweDhlNDAsIDAsIHsweDBlLDB4OTAsMHg4MywweGE0LDB4MDAsMHhjOSwweDgwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDhlNTAsIDAsIHsweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlNCwweDAwLDB4YzgsMHgwMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweDhlNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDAsMHhhMCwweDYyIH0gfSwKLXsgIDE2LCAweDhlNzAsIDAsIHsweDA4LDB4MTAsMHgwMiwweDI0LDB4MTAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDhlODAsIDAsIHsweDJlLDB4NTIsMHgwOCwweDk0LDB4MDIsMHhjNCwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwYiwweDEwLDB4MDMsMHg2MCwweDEwIH0gfSwKLXsgIDE2LCAweDhlOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MTgsMHgyMiwweDQ0IH0gfSwKLXsgIDE2LCAweDhlYTAsIDAsIHsweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHg4OSwweDEwLDB4MmUsMHhjMCwweDBhLDB4OTAsMHgwMiwweGE0LDB4MDAsMHhiOSwweDgwIH0gfSwKLXsgIDE2LCAweDhlYjAsIDAsIHsweDJlLDB4NjAsMHgwOCwweDk4LDB4MDIsMHhlNiwweDAyLDB4ODksMHgwOCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweDhlYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MjAsMHhhMCwweDQ4IH0gfSwKLXsgIDE2LCAweDhlZDAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDI0LDB4MDgsMHg4MSwweDIzLDB4MmMsMHg1MCwweDA4LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhiMSwweDIwIH0gfSwKLXsgIDE2LCAweDhlZTAsIDAsIHsweDJjLDB4NDgsMHgyOCwweDEyLDB4MDIsMHhlNCwweDgwLDB4ODEsMHgyMCwweDJjLDB4NDAsMHgwYiwweDk4LDB4MDIsMHg0MiwweDA1IH0gfSwKLXsgIDE2LCAweDhlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDhmMDAsIDAsIHsweDBlLDB4ODUsMHgwMywweGExLDB4ZTAsMHhjYSwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODUsMHgwMywweGEwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDhmMTAsIDAsIHsweDJlLDB4MDAsMHg5YywweGEwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgyOCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyZSwweDAxIH0gfSwKLXsgIDE2LCAweDhmMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHg0MCwweGY1LDB4MTAsMHgzZiwweDQ0IH0gfSwKLXsgIDE2LCAweDhmMzAsIDAsIHsweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmMSwweDEwLDB4M2QsMHg0MCwweDhmLDB4ZDQsMHgwMywweGU0LDB4NTAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweDhmNDAsIDAsIHsweDNlLDB4NDUsMHgwZiwweDkxLDB4MDMsMHhkNCwweDQwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGQwLDB4MjMsMHhlNiwweDA0IH0gfSwKLXsgIDE2LCAweDhmNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHgyMCwweGNkLDB4YTgsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweDhmNjAsIDAsIHsweDhkLDB4ZDAsMHgwMywweDI2LDB4ODAsMHhjZCwweDAwLDB4M2QsMHg1MCwweDBjLDB4OWEsMHgwMywweDY0LDB4MDAsMHhmOSwweGEwIH0gfSwKLXsgIDE2LCAweDhmNzAsIDAsIHsweDdhLDB4NmEsMHgwZiwweDlhLDB4NjMsMHhlNiwweDgwLDB4YzksMHg4MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweDhmODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4ZTAsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDhmOTAsIDAsIHsweDA4LDB4ODAsMHgwYSwweDIxLDB4NDIsMHhjOCwweDAwLDB4MmUsMHgyOSwweDBjLDB4YTQsMHg0MiwweDIwLDB4MDAsMHhiOCwweDQwIH0gfSwKLXsgIDE2LCAweDhmYTAsIDAsIHsweDJlLDB4MDAsMHgwYiwweDgxLDB4MDIsMHhlMSwweDAwLDB4ODgsMHgwMiwweDNhLDB4MDEsMHgwYiwweGMwLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweDhmYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMiwweDgxLDB4MDgsMHgyNCwweDQwIH0gfSwKLXsgIDE2LCAweDhmYzAsIDAsIHsweDA5LDB4MTAsMHgwMiwweDA0LDB4MDAsMHg5MSwweDAwLDB4MmMsMHg0MCwweDRiLDB4MTQsMHgwMiwweDQ0LDB4MDAsMHhiNSwweDEwIH0gfSwKLXsgIDE2LCAweDhmZDAsIDAsIHsweDI5LDB4NDAsMHgwYiwweDUwLDB4MDIsMHhmNSwweDAwLDB4YjUsMHgwMCwweDJkLDB4NDAsMHgwYiwweGQwLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweDhmZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTYsMHgwMSwweDg5LDB4MDAsMHgyNiwweDQwIH0gfSwKLXsgIDE2LCAweDhmZjAsIDAsIHsweDA4LDB4OTQsMHgwMiwweDI0LDB4MDEsMHg4OSwweDAwLDB4MmUsMHg0MCwweDFhLDB4OTAsMHgwMiwweDZjLDB4MDAsMHhiZiwweDAyIH0gfSwKLXsgIDE2LCAweDkwMDAsIDAsIHsweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhmNCwweDAyLDB4YmQsMHg4MCwweDJiLDB4NDAsMHg4YiwweGQ4LDB4M2EsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweDkwMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGM5LDB4MDUsMHgzNiwweDQxIH0gfSwKLXsgIDE2LCAweDkwMjAsIDAsIHsweDBkLDB4MWMsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MiwweDJmLDB4OTQsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDkwMzAsIDAsIHsweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NzAsMHgwZiwweDEwLDB4MDMsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweDkwNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4ODQsMHgwOCwweGY5LDB4MjQsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDkwNTAsIDAsIHsweDBmLDB4OTEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MSwweDBkLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDkwNjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NjQsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDkwNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOCwweGM4LDB4ODAsMHgzMiwweDAyIH0gfSwKLXsgIDE2LCAweDkwODAsIDAsIHsweDBmLDB4ODAsMHgwMywweDAwLDB4MDAsMHhjOCwweDA4LDB4M2EsMHgxMCwweGNlLDB4ODQsMHgwMywweGUwLDB4MDAsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweDkwOTAsIDAsIHsweDNmLDB4MDAsMHg4ZiwweGMwLDB4MDMsMHhmMCwweDgwLDB4ZmMsMHgwMCwweDNmLDB4MTgsMHgwZiwweGMwLDB4NDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDkwYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4MDAsMHhhMSwweDgwIH0gfSwKLXsgIDE2LCAweDkwYjAsIDAsIHsweDBiLDB4ZTAsMHgwMiwweDI4LDB4MDAsMHhkZSwweGMyLDB4MjMsMHg5MCwweDAwLDB4YTAsMHgwMiwweGU4LDB4MDAsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweDkwYzAsIDAsIHsweDJlLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDJlLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDkwZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDk5LDB4ODEsMHg2MCwweGMwIH0gfSwKLXsgIDE2LCAweDkwZTAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDBjLDB4MDAsMHg5MCwweDEwLDB4MmEsMHhmYywweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDkwZjAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDkxMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHg4MiwweDk1LDB4NDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDkxMTAsIDAsIHsweDBiLDB4NTAsMHgwMiwweDFjLDB4ODAsMHg5MCwweDgwLDB4MjMsMHgwMSwweDA5LDB4NzIsMHgxMiwweGRjLDB4MDAsMHhiNiwweDAwIH0gfSwKLXsgIDE2LCAweDkxMjAsIDAsIHsweDJkLDB4MDAsMHgwYiwweDQwLDB4MDIsMHhkMCwweDAwLDB4YjQsMHgwOSwweDJkLDB4MDAsMHg0YiwweDQwLDB4ODIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweDkxMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4M2UsMHg4MCwweGRkLDB4ODAsMHhiMSwweGUwIH0gfSwKLXsgIDE2LCAweDkxNDAsIDAsIHsweDBmLDB4ZGEsMHgwMywweDBmLDB4ODAsMHhkNCwweDgwLDB4MzksMHhlMCwweDBiLDB4N2EsMHgwMywweGRlLDB4MDAsMHhmNSwweDgwIH0gfSwKLXsgIDE2LCAweDkxNTAsIDAsIHsweDNkLDB4MjAsMHgwZiwweDQ4LDB4MDMsMHhkNiwweDEwLDB4ZjYsMHg4MSwweDNkLDB4ZTAsMHg4ZiwweDY4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDkxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGVkLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweDkxNzAsIDAsIHsweDBmLDB4OTEsMHgwYiwweGVjLDB4MTAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDkxODAsIDAsIHsweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhlOCwweDAwLDB4ZTksMHgwMSwweDNlLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweDkxOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgyMCwweGJmLDB4ODEsMHgzMywweGE0IH0gfSwKLXsgIDE2LCAweDkxYTAsIDAsIHsweDhjLDB4MTksMHgwMywweDNlLDB4MDAsMHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHg4MywweDNlLDB4MDAsMHhlZiwweDgwIH0gfSwKLXsgIDE2LCAweDkxYjAsIDAsIHsweDNmLDB4ZTAsMHgwZiwweGY5LDB4MTMsMHhmYSwweDEwLDB4ZmQsMHg4MCwweDNmLDB4YTQsMHgwZiwweGQ4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDkxYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGJmLDB4MjAsMHgzMSwweGMyIH0gfSwKLXsgIDE2LCAweDkxZDAsIDAsIHsweDA4LDB4NWEsMHgwMiwweDNjLDB4MDIsMHg4NywweDAwLDB4MmQsMHg5NCwweDBiLDB4NzAsMHgwYSwweDFjLDB4NDAsMHg4NiwweDEwIH0gfSwKLXsgIDE2LCAweDkxZTAsIDAsIHsweDJkLDB4MDAsMHgwYiwweDQwLDB4MDIsMHhkNCwweDAwLDB4ZjYsMHgwMCwweDJkLDB4NDAsMHg0YiwweDYwLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDkxZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGI3LDB4MDEsMHgyMywweDgwIH0gfSwKLXsgIDE2LCAweDkyMDAsIDAsIHsweDI4LDB4NTAsMHgwMiwweDFjLDB4MDAsMHg4NCwweDAwLDB4MmQsMHhjMCwweDBiLDB4MzAsMHgwMiwweDFjLDB4MDAsMHhiNSwweDAwIH0gfSwKLXsgIDE2LCAweDkyMTAsIDAsIHsweDJkLDB4MDAsMHgwYiwweDQwLDB4MDYsMHhkMCwweDQwLDB4YjQsMHgwOCwweDJkLDB4ODAsMHgwYiwweDQ4LDB4MDIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDkyMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDgsMHhhMCwweDIwIH0gfSwKLXsgIDE2LCAweDkyMzAsIDAsIHsweDA4LDB4MTEsMHg4YSwweDBlLDB4MDAsMHg4MCwweDAwLDB4MmMsMHg5MCwweDBiLDB4MzcsMHgwMiwweDBjLDB4MDAsMHg5MCwweDAwIH0gfSwKLXsgIDE2LCAweDkyNDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4NDIsMHhjYywweDA0LDB4YTMsMHg4MCwweDJjLDB4NTAsMHgwYiwweDMwLDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweDkyNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGY5LDB4ODAsMHgzMiwweDYwIH0gfSwKLXsgIDE2LCAweDkyNjAsIDAsIHsweDBjLDB4ZDQsMHgwMywweDNjLDB4ODAsMHg4OCwweDAwLDB4M2UsMHhkMCwweDBmLDB4ZjgsMHgwMywweDI4LDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweDkyNzAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGIwLDB4MDcsMHhlYywweDAxLDB4YmIsMHg4MCwweDNlLDB4NTQsMHgwZiwweGIwLDB4MDYsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDkyODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWUsMHgwOCwweGY5LDB4ODAsMHgzYSwweGMwIH0gfSwKLXsgIDE2LCAweDkyOTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGVjLDB4MDAsMHhmOCwweDQwLDB4M2UsMHg1OCwweDBmLDB4YjAsMHg0MywweGU5LDB4MDAsMHhlYiwweDQ0IH0gfSwKLXsgIDE2LCAweDkyYTAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDBkLDB4ZjgsMHgwMCwweDNlLDB4ODAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDkyYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGNmLDB4MDAsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweDkyYzAsIDAsIHsweDBjLDB4ZDAsMHgwMywweDNjLDB4MzAsMHhjYywweDAwLDB4M2IsMHhjMCwweDJkLDB4ZjAsMHgwMywweGQ4LDB4MDIsMHhjYywweDAwIH0gfSwKLXsgIDE2LCAweDkyZDAsIDAsIHsweDNkLDB4MDAsMHgwYywweGMwLDB4MDMsMHhmNCwweDAwLDB4ZWUsMHgwMiwweDM3LDB4NDAsMHgwYywweGUwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweDkyZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgxOCwweDgzLDB4ODQsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweDkyZjAsIDAsIHsweDRhLDB4MTAsMHgwMiwweDBjLDB4MDAsMHhhOCwweDQ4LDB4MmUsMHg2MCwweDA4LDB4YjAsMHgwMiwweGU5LDB4MDAsMHg4OSwweDQwIH0gfSwKLXsgIDE2LCAweDkzMDAsIDAsIHsweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlOCwweDEwLDB4YjEsMHgwMSwweDIwLDB4ODAsMHgwYSwweDkwLDB4MDMsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweDkzMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4ODIsMHgyMiwweDA4IH0gfSwKLXsgIDE2LCAweDkzMjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDJjLDB4MTQsMHg4OCwweDA0LDB4MmMsMHgwOCwweDA4LDB4YjAsMHgxMiwweGU4LDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDkzMzAsIDAsIHsweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlOCwweDAxLDB4YjksMHgwMCwweDI2LDB4MDQsMHgwOCwweDkwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDkzNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4ODAsMHhhMiwweGMwIH0gfSwKLXsgIDE2LCAweDkzNTAsIDAsIHsweDBhLDB4OTIsMHgwMiwweDJjLDB4MDAsMHhhMiwweDAwLDB4MmMsMHgwMCwweDA4LDB4MzQsMHgwMiwweGM4LDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDkzNjAsIDAsIHsweDJjLDB4MDAsMHgyOCwweDAwLDB4MDIsMHhjNCwweDAxLDB4YmEsMHgwMCwweDIyLDB4YzAsMHgwMiwweDIwLDB4MDYsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDkzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGNhLDB4MDAsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweDkzODAsIDAsIHsweDBjLDB4OTIsMHgwYiwweDJjLDB4MDQsMHhjOCwweDA0LDB4M2EsMHgwMCwweDBjLDB4YjQsMHgwMywweGU4LDB4MDAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweDkzOTAsIDAsIHsweDJlLDB4MDAsMHgwYywweDgwLDB4MzMsMHhlMSwweDQwLDB4ZTgsMHgwMCwweDM2LDB4MDAsMHgwYywweDgwLDB4MDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweDkzYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZCwweDAwIH0gfSwKLXsgIDE2LCAweDkzYjAsIDAsIHsweDBmLDB4ZDEsMHgwYiwweGZjLDB4MDEsMHhmYywweDAwLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGQ4LDB4MDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweDkzYzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDgwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDcsMHhhOCwweDA2IH0gfSwKLXsgIDE2LCAweDkzZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4ZjMsMHgwMCwweGNmLDB4ODAsMHgzNSwweDYwIH0gfSwKLXsgIDE2LCAweDkzZTAsIDAsIHsweDRlLDB4NjgsMHg0MywweDVjLDB4MDAsMHhlNywweDgwLDB4MzksMHhjMCwweDBjLDB4YzEsMHgwMywweDdlLDB4MDAsMHhjZiwweDM0IH0gfSwKLXsgIDE2LCAweDkzZjAsIDAsIHsweDM1LDB4ZTEsMHg0ZCwweGYyLDB4MDMsMHg3YywweDAwLDB4ZGYsMHgzOCwweDNmLDB4YzgsMHgwZiwweGY4LDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDk0MDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE4LDB4YzgsMHgwMCwweGRiLDB4ODQsMHgyMiwweDYwIH0gfSwKLXsgIDE2LCAweDk0MTAsIDAsIHsweDA4LDB4YWMsMHgwYSwweDJjLDB4MDAsMHg4YiwweDgwLDB4MjIsMHgzMCwweDA4LDB4OTEsMHgyMiwweDJjLDB4OTAsMHgyNywweDYxIH0gfSwKLXsgIDE2LCAweDk0MjAsIDAsIHsweDIyLDB4Y2EsMHg4OCwweGZjLDB4MjIsMHhiZiwweDAwLDB4OGIsMHg2MiwweDJmLDB4ZDAsMHgwOSwweGI4LDB4MDMsMHhiMCwweDA0IH0gfSwKLXsgIDE2LCAweDk0MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4ZTIsMHg4MCwweGE5LDB4MDIsMHgyNCwweDQwIH0gfSwKLXsgIDE2LCAweDk0NDAsIDAsIHsweDgyLDB4MzQsMHg0MiwweDA0LDB4MDAsMHhhOSwweDAwLDB4MjgsMHhjNSwweDQ4LDB4MzIsMHgwMiwweDRjLDB4MjAsMHg4MywweDMwIH0gfSwKLXsgIDE2LCAweDk0NTAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDMxLDB4MDIsMHgwZCwweDAwLDB4YjMsMHgyMCwweDJjLDB4YzQsMHgwYiwweDMwLDB4MDIsMHhmMiwweDAxIH0gfSwKLXsgIDE2LCAweDk0NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4YWEsMHgwMiwweGI5LDB4MDQsMHgyMiwweDYwIH0gfSwKLXsgIDE2LCAweDk0NzAsIDAsIHsweDI4LDB4YjIsMHgwMiwweDI2LDB4MDAsMHg4OSwweDg4LDB4MDIsMHhjMCwweDA4LDB4MzEsMHgxMiwweGVjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweDk0ODAsIDAsIHsweDJhLDB4ZDAsMHgwOCwweGIwLDB4MDIsMHhhYywweDAwLDB4MmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhiMCwweDA0IH0gfSwKLXsgIDE2LCAweDk0OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZTIsMHgwMCwweGUzLDB4MDAsMHgzNiwweDIwIH0gfSwKLXsgIDE2LCAweDk0YTAsIDAsIHsweDBlLDB4YTQsMHg2MywweDZlLDB4MDAsMHhlMSwweGMwLDB4MWEsMHhjMSwweDBjLDB4ODAsMHgwMywweDY4LDB4NzAsMHhjYiwweDAwIH0gfSwKLXsgIDE2LCAweDk0YjAsIDAsIHsweDM2LDB4ODAsMHgwZCwweGIwLDB4MDMsMHg0YywweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzEsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDk0YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjgsMHgwNCwweGRmLDB4MDAsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweDk0ZDAsIDAsIHsweDBmLDB4ZTgsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDJiLDB4OTgsMHgwMywweDNhLDB4MDAsMHg3NywweDAwIH0gfSwKLXsgIDE2LCAweDk0ZTAsIDAsIHsweDI3LDB4ZTQsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNlLDB4YzAsMHgwZCwweGYwLDB4NDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDk0ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDAwLDB4YTQsMHg2OCwweGNiLDB4MjAsMHgzYSwweDkwIH0gfSwKLXsgIDE2LCAweDk1MDAsIDAsIHsweDBmLDB4MjQsMHhhMywweGFjLDB4MDAsMHhlOSwweDUwLDB4M2EsMHhjMCwweDBlLDB4YjQsMHg4MywweDJjLDB4MDgsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweDk1MTAsIDAsIHsweDNhLDB4OTAsMHgwZSwweGIwLDB4OGIsMHhlYywweDgwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHg5MCwweDA0IH0gfSwKLXsgIDE2LCAweDk1MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDAxLDB4MGEsMHgwMCwweDhiLDB4YTAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweDk1MzAsIDAsIHsweDBkLDB4YTgsMHgwMiwweDJjLDB4MDQsMHg4OSwweDQwLDB4MjgsMHhlOCwweDA4LDB4YjIsMHgwMiwweDJjLDB4MDAsMHhhZiwweDAwIH0gfSwKLXsgIDE2LCAweDk1NDAsIDAsIHsweDAyLDB4ODAsMHgwOCwweDdjLDB4MDMsMHgzZCwweDgwLDB4M2YsMHgwMCwweDJmLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDk1NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDksMHgwMCwweDAzLDB4NDAsMHgyOCwweGMwIH0gfSwKLXsgIDE2LCAweDk1NjAsIDAsIHsweDJiLDB4MjgsMHg0YSwweDI4LDB4MDAsMHhhMSwweDAwLDB4NjgsMHhkMiwweDBhLDB4MjAsMHg0MiwweGE0LDB4MDEsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweDk1NzAsIDAsIHsweDAyLDB4NDAsMHgwYSwweDM0LDB4MDIsMHgwZCwweDAwLDB4MzMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDMwLDB4MDAsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweDk1ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDAxLDB4MWEsMHgwMCwweDg3LDB4OTAsMHgyMSwweGU0IH0gfSwKLXsgIDE2LCAweDk1OTAsIDAsIHsweDJiLDB4YzgsMHgxMiwweDNhLDB4MDAsMHg4NSwweGMwLDB4MmIsMHgyMSwweDI4LDB4NjgsMHgwMiwweGI2LDB4MDAsMHhhNywweDg0IH0gfSwKLXsgIDE2LCAweDk1YTAsIDAsIHsweDIzLDB4NjAsMHgwOCwweDM4LDB4ODAsMHgxZSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweDk1YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDgsMHgwMCwweGMxLDB4MDAsMHgzOCwweDU0IH0gfSwKLXsgIDE2LCAweDk1YzAsIDAsIHsweDBmLDB4MjYsMHg4MywweDgwLDB4MDAsMHhlMCwweDM0LDB4MjgsMHhjOCwweDBlLDB4MmMsMHgwYiwweDhjLDB4MDAsMHhlMywweDAwIH0gfSwKLXsgIDE2LCAweDk1ZDAsIDAsIHsweDc4LDB4NDUsMHgwZSwweDMwLDB4MDMsMHg4ZSwweDgwLDB4ZjMsMHgwMCwweDNjLDB4YzgsMHgwZSwweDMwLDB4MDMsMHg5MiwweDAyIH0gfSwKLXsgIDE2LCAweDk1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YjgsMHgwMCwweGY1LDB4MDIsMHgzZiwweDQ0IH0gfSwKLXsgIDE2LCAweDk1ZjAsIDAsIHsweDBkLDB4OTAsMHgwMywweGY4LDB4MDAsMHhiZCwweDE0LDB4MWYsMHhjMCwweDBmLDB4ZTEsMHgyMywweDVjLDB4NDQsMHg5ZiwweDQyIH0gfSwKLXsgIDE2LCAweDk2MDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGY0LDB4ODIsMHg3ZCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4YzAsMHg0ZiwweDcwLDB4MDcsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDk2MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTgsMHgwMiwweGNiLDB4MDAsMHgzOCwweGMwIH0gfSwKLXsgIDE2LCAweDk2MjAsIDAsIHsweDNjLDB4YTAsMHgwMywweGVjLDB4MDAsMHhlOSwweDAwLDB4M2UsMHhjMCwweDBjLDB4YjAsMHgwMywweDIwLDB4MDQsMHhmYiwweDIxIH0gfSwKLXsgIDE2LCAweDk2MzAsIDAsIHsweDNlLDB4ODAsMHg0ZiwweGI0LDB4MDMsMHhjZiwweDAwLDB4Y2IsMHgwMCwweDNlLDB4Y2MsMHg0ZiwweGIwLDB4NDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweDk2NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDkxLDB4OTgsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDk2NTAsIDAsIHsweDA4LDB4NDAsMHgwMiwweGRjLDB4MDQsMHhiNSwweDAwLDB4MmQsMHgwMCwweDJkLDB4NzAsMHgwMiwweDFjLDB4MWMsMHhiNywweDAyIH0gfSwKLXsgIDE2LCAweDk2NjAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhkYywweDAwLDB4ODcsMHg0MCwweDJkLDB4Y2EsMHg4YiwweDcwLDB4MDIsMHhmMiwweDA0IH0gfSwKLXsgIDE2LCAweDk2NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4YmEsMHgwMCwweDg3LDB4ODgsMHgyYiwweGUwIH0gfSwKLXsgIDE2LCAweDk2ODAsIDAsIHsweDE4LDB4NzgsMHgyMiwweGQ2LDB4MTEsMHhhNCwweDgyLDB4MmYsMHhlMCwweDA4LDB4NzgsMHgwMiwweDEyLDB4MDAsMHhiNywweDk0IH0gfSwKLXsgIDE2LCAweDk2OTAsIDAsIHsweDZkLDB4NjAsMHg0YiwweDdhLDB4MDIsMHhkZSwweDQwLDB4YjcsMHhhMCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDYsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDk2YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4YzksMHgxMiwweDgzLDB4ODIsMHgyOCwweGQ0IH0gfSwKLXsgIDE2LCAweDk2YjAsIDAsIHsweDk4LDB4MDAsMHgwNiwweGVmLDB4MDUsMHhiMSwweDkwLDB4MmMsMHhjMSwweDA5LDB4YjQsMHgwMiwweDBjLDB4MDQsMHhiMywweDAxIH0gfSwKLXsgIDE2LCAweDk2YzAsIDAsIHsweDZjLDB4ZjAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDk2ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YjgsMHg0MCwweGNhLDB4ODAsMHgzYiwweGEwIH0gfSwKLXsgIDE2LCAweDk2ZTAsIDAsIHsweDRjLDB4ZTUsMHgwMiwweGY4LDB4ODAsMHhlZSwweDAwLDB4M2QsMHg4MCwweDJjLDB4ZTAsMHgwZiwweDM4LDB4ODAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweDk2ZjAsIDAsIHsweDNmLDB4YTksMHgwZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4YmEsMHgwMiwweDNlLDB4ODAsMHg4YiwweGEwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweDk3MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgyNiwweDAyIH0gfSwKLXsgIDE2LCAweDk3MTAsIDAsIHsweDBmLDB4ODQsMHgwMywweGUwLDB4MjQsMHhmOCwweDAwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHhhMywweGUwLDB4MzAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDk3MjAsIDAsIHsweDM2LDB4MDIsMHgwZiwweDgwLDB4MjMsMHhlMCwweDA0LDB4MDgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDk3MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHhiNiwweDQxIH0gfSwKLXsgIDE2LCAweDk3NDAsIDAsIHsweDRlLDB4OTksMHgwYiwweGE0LDB4MDAsMHg2OSwweDEwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGE0LDB4MTAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweDk3NTAsIDAsIHsweDNlLDB4NDAsMHgwZCwweDkyLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweDk3NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDgxLDB4MDAsMHgyMCwweDQyIH0gfSwKLXsgIDE2LCAweDk3NzAsIDAsIHsweDA4LDB4MTQsMHg5YSwweDI0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg1MCwweDAwLDB4OTAsMHgwMiwweDI0LDB4MTAsMHhkOSwweDAyIH0gfSwKLXsgIDE2LCAweDk3ODAsIDAsIHsweDZlLDB4NDAsMHgwYiwweDk0LDB4MDMsMHhhNywweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDk3OTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDYsMHgwMCwweDk5LDB4MDAsMHhhNiwweDQxIH0gfSwKLXsgIDE2LCAweDk3YTAsIDAsIHsweDBhLDB4OTAsMHgwNiwweDJjLDB4MDAsMHhhOSwweDA5LDB4NmUsMHg1MCwweDA4LDB4OTEsMHgwMiwweDg0LDB4MDQsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweDk3YjAsIDAsIHsweDBlLDB4NDAsMHgwYiwweDk0LDB4MDIsMHhlNSwweDQ5LDB4YjksMHgwMCwweDBhLDB4NDAsMHgwYSwweDkwLDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDk3YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDYsMHgwMCwweDgxLDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweDk3ZDAsIDAsIHsweDA4LDB4MTIsMHgyMiwweDA0LDB4ODEsMHhhMSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MTYsMHgwMiwweDA0LDB4MDAsMHg5MSwweDIwIH0gfSwKLXsgIDE2LCAweDk3ZTAsIDAsIHsweDJjLDB4NDAsMHgwYiwweDEyLDB4NDIsMHg4NCwweDg5LDB4YjEsMHgyMCwweDIwLDB4NDgsMHgwOCwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDk3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGQ4LDB4MDAsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDk4MDAsIDAsIHsweDBhLDB4ODAsMHgwMywweGExLDB4NDAsMHhlOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4MDAsMHgyMywweGExLDB4NDAsMHhjOCwweDUwIH0gfSwKLXsgIDE2LCAweDk4MTAsIDAsIHsweDJlLDB4MTQsMHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg1MCwweDNhLDB4MDAsMHgwZSwweDgwLDB4MDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweDk4MjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDFkLDB4ZDQsMHgwMCwweGY1LDB4MDAsMHhiZiwweDQwIH0gfSwKLXsgIDE2LCAweDk4MzAsIDAsIHsweDBmLDB4ZDEsMHgwMywweGY0LDB4NDQsMHhkZCwweDAyLDB4M2QsMHg1MCwweDJiLDB4ZDEsMHgyMywweGY0LDB4MDAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweDk4NDAsIDAsIHsweDNmLDB4NDAsMHgwZCwweDkxLDB4MDMsMHhhNCwweDQ4LDB4ZjksMHgxMiwweDNlLDB4NGUsMHgxZiwweDkwLDB4MDMsMHhhNiwweDAyIH0gfSwKLXsgIDE2LCAweDk4NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjQsMHgwMCwweGM1LDB4MDQsMHgzYiwweDQwIH0gfSwKLXsgIDE2LCAweDk4NjAsIDAsIHsweDBmLDB4ZDgsMHgwMywweGE3LDB4ODAsMHhmZCwweDAwLDB4YjMsMHg2OCwweDBkLDB4ZDgsMHg0MywweGE1LDB4MTAsMHhjOSwweGEwIH0gfSwKLXsgIDE2LCAweDk4NzAsIDAsIHsweDMyLDB4NTEsMHg0ZiwweDVhLDB4NDMsMHgzNiwweDAwLDB4YzksMHhhMCwweDdhLDB4NjgsMHgwYiwweGQwLDB4MDMsMHhjNiwweDAxIH0gfSwKLXsgIDE2LCAweDk4ODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg3OCwweDE4LDB4Y2EsMHg4OCwweDg4LDB4MDIsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweDk4OTAsIDAsIHsweDhkLDB4ODQsMHgyMiwweDIzLDB4NDIsMHhmOCwweDAwLDB4MjIsMHgwNCwweDI4LDB4OGEsMHhhMiwweGFhLDB4OTQsMHg4OCwweGU5IH0gfSwKLXsgIDE2LCAweDk4YTAsIDAsIHsweDIwLDB4YTgsMHgwYSwweDgwLDB4MGEsMHgyMSwweDQwLDB4ODAsMHhlMiwweDJlLDB4MjgsMHgwYiwweDgwLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweDk4YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHgyMCwweGExLDB4MDQsMHhhOCwweGMwIH0gfSwKLXsgIDE2LCAweDk4YzAsIDAsIHsweDBiLDB4MWMsMHgyYSwweDI0LDB4MDAsMHgzOSwweDA0LDB4MjAsMHg0MCwweDJhLDB4MWUsMHgwMiwweGU0LDB4ODAsMHhiMSwweDEwIH0gfSwKLXsgIDE2LCAweDk4ZDAsIDAsIHsweDJhLDB4NDgsMHgwOSwweDE0LDB4NDYsMHgwNCwweDAwLDB4ODEsMHgzOCwweDJjLDB4NWIsMHgwYiwweDEwLDB4MDIsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDk4ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YTQsMHgxMiwweGE5LDB4MjQsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweDk4ZjAsIDAsIHsweDI5LDB4OTAsMHgwMiwweDI0LDB4MDAsMHgzOSwweDAwLDB4MDIsMHg1OCwweDA4LDB4MTgsMHgxMCwweGU2LDB4MDEsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDk5MDAsIDAsIHsweGFhLDB4NDQsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDBlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweDk5MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDA1LDB4ZTQsMHgwMCwweGUxLDB4MDEsMHgyYSwweDY0IH0gfSwKLXsgIDE2LCAweDk5MjAsIDAsIHsweDJmLDB4OTQsMHgxMywweDI0LDB4MDIsMHg3MSwweDYwLDB4MTIsMHg2MCwweDRkLDB4OTAsMHgwMCwweGM1LDB4MDIsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDk5MzAsIDAsIHsweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHgyNCwweDAyLDB4YzksMHgwMiwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDIsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweDk5NDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDAxLDB4YTQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDYwIH0gfSwKLXsgIDE2LCAweDk5NTAsIDAsIHsweGFmLDB4OTAsMHg4MywweDY0LDB4ODgsMHhmOSwweDIwLDB4M2UsMHg2MiwweDAzLDB4OTAsMHg4MywweGE0LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweDk5NjAsIDAsIHsweDM2LDB4NjAsMHgwZiwweDEwLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDdlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweDk5NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTEsMHgwMCwweGM4LDB4ODIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDk5ODAsIDAsIHsweDZmLDB4MDAsMHgwMywweGEwLDB4MDAsMHhkOCwweDQwLDB4MzAsMHgwMCwweDBlLDB4ODAsMHgwMywweDYwLDB4MDQsMHhmOCwweDAxIH0gfSwKLXsgIDE2LCAweDk5OTAsIDAsIHsweDNlLDB4MTAsMHg0ZiwweDgwLDB4OGIsMHgyMiwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDEsMHgwZSwweDgwLDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDk5YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4MzgsMHgwMCwweDBlLDB4MDAsMHhhOSwweDkwIH0gfSwKLXsgIDE2LCAweDk5YjAsIDAsIHsweDJmLDB4ZTYsMHgyMCwweDg4LDB4MDAsMHg5ZSwweDgwLDB4MjMsMHg4MCwweDBhLDB4ZTgsMHgwMywweDI4LDB4MDAsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweDk5YzAsIDAsIHsweDE4LDB4ODAsMHgwZCwweGVjLDB4MDIsMHgzOCwweDgwLDB4YmEsMHgwMCwweGEyLDB4ODAsMHgwOCwweGEwLDB4MDMsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDk5ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmMsMHgwMiwweDgzLDB4ODAsMHgyMCwweGM4IH0gfSwKLXsgIDE2LCAweDk5ZTAsIDAsIHsweDBiLDB4MjAsMHgwMiwweDBjLDB4MDEsMHg5MiwweDEwLDB4NjgsMHhjMCwweDNhLDB4M2MsMHgwMiwweGNjLDB4MTAsMHgzYiwweDAyIH0gfSwKLXsgIDE2LCAweDk5ZjAsIDAsIHsweDBjLDB4YzAsMHgyOCwweDNjLDB4MDIsMHg0ZSwweDAwLDB4YjMsMHgwMCwweDI4LDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDlhMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTQsMHgwMCwweDg3LDB4NDIsMHgyYiwweGMwIH0gfSwKLXsgIDE2LCAweDlhMTAsIDAsIHsweDI5LDB4NzAsMHgyMiwweDljLDB4MDAsMHhiNiwweDAwLDB4MmIsMHhjMiwweDBhLDB4NjAsMHg4NiwweDFjLDB4MDAsMHhiNywweDIxIH0gfSwKLXsgIDE2LCAweDlhMjAsIDAsIHsweDI5LDB4YzAsMHgwMCwweDc0LDB4MDIsMHg1YywweDAwLDB4MzcsMHg5MSwweDAxLDB4ZTAsMHgwOCwweDc0LDB4MDIsMHhhOCwweDAwIH0gfSwKLXsgIDE2LCAweDlhMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGM3LDB4ODAsMHgyMSwweGUwIH0gfSwKLXsgIDE2LCAweDlhNDAsIDAsIHsweDJmLDB4NzgsMHgwMiwweDllLDB4MDAsMHg5NiwweDgwLDB4MzksMHhlMCwweDJlLDB4ZjgsMHgwMywweGRlLDB4MzAsMHhmNywweGQwIH0gfSwKLXsgIDE2LCAweDlhNTAsIDAsIHsweDJkLDB4ZjIsMHgwMCwweDc4LDB4MDMsMHg1MiwweDAwLDB4ZjcsMHhhMiwweDNiLDB4ZTAsMHgwZSwweDc4LDB4MDcsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDlhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YjQsMHgwMCwweGZiLDB4MDAsMHgwYywweGMwIH0gfSwKLXsgIDE2LCAweDlhNzAsIDAsIHsweDBmLDB4MzAsMHgwMywweGVjLDB4MTAsMHhkMywweDAwLDB4YjQsMHhjMCwweDJmLDB4ODAsMHgwMywweDZjLDB4NDgsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDlhODAsIDAsIHsweDNlLDB4YzgsMHg0ZCwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZmIsMHgyMCwweDFlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweDlhOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGNjLDB4ODAsMHgyYiwweDJjIH0gfSwKLXsgIDE2LCAweDlhYTAsIDAsIHsweDJmLDB4ZjgsMHgwMywweDdlLDB4MDAsMHg2ZSwweDgwLDB4M2IsMHhhMSwweDBkLDB4ZDgsMHg0MywweDNlLDB4MDAsMHhmZiwweDkwIH0gfSwKLXsgIDE2LCAweDlhYjAsIDAsIHsweDMzLDB4ZTAsMHgwZiwweGU5LDB4MzMsMHhmZSwweDAwLDB4Y2YsMHhjMCwweDNmLDB4ZTIsMHgwZiwweGQ4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDlhYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4YjQsMHg0MCwweDg3LDB4MDAsMHgyMSwweDA0IH0gfSwKLXsgIDE2LCAweDlhZDAsIDAsIHsweDA4LDB4NzgsMHgwMiwweDFjLDB4MDAsMHg4NiwweDAwLDB4MjEsMHhjMCwweDI4LDB4OTAsMHgwMiwweGRjLDB4MDAsMHhiNywweDEwIH0gfSwKLXsgIDE2LCAweDlhZTAsIDAsIHsweDIxLDB4YzAsMHgwZiwweDczLDB4MDIsMHhjYywweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweDlhZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWQsMHgwMCwweGE0LDB4MDAsMHgyOSwweDQ4IH0gfSwKLXsgIDE2LCAweDliMDAsIDAsIHsweDZhLDB4ZjAsMHg4MiwweDRjLDB4MDAsMHhhZSwweDAwLDB4YTEsMHhjNCwweDI5LDB4NzQsMHgwMiwweDVjLDB4NDAsMHhhMywweDEwIH0gfSwKLXsgIDE2LCAweDliMTAsIDAsIHsweDYxLDB4YzIsMHgwYiwweDYwLDB4MDYsMHhjOCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhjMCwweDA0IH0gfSwKLXsgIDE2LCAweDliMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4ZTYsMHgwMSwweGEzLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDliMzAsIDAsIHsweDI4LDB4M2MsMHgwMiwweDBjLDB4MDAsMHg4MywweDQyLDB4MjAsMHhjOCwweDA4LDB4MTAsMHgwMiwweGNkLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDliNDAsIDAsIHsweDI4LDB4ZjAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAxLDB4ODMsMHgwNCwweDJjLDB4YzAsMHg4MywweDEwLDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweDliNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWEsMHg4MCwweGViLDB4MDAsMHgzOCwweGMwIH0gfSwKLXsgIDE2LCAweDliNjAsIDAsIHsweDBhLDB4OTAsMHgwMywweDdjLDB4MjIsMHhhMiwweDQwLDB4MzIsMHg0OCwweDBkLDB4YjAsMHgwYiwweDNlLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDliNzAsIDAsIHsweDMzLDB4ZjQsMHgwZiwweDkwLDB4MDMsMHhlYywweDAwLDB4OGYsMHgwMiwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDliODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTAsMHgwMCwweGQ5LDB4MDIsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweDliOTAsIDAsIHsweDBlLDB4YjYsMHgwMywweGVjLDB4MDAsMHhmYSwweDIwLDB4M2UsMHhjMCwweDRmLDB4MjQsMHgyMywweGFjLDB4NjAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDliYTAsIDAsIHsweGE2LDB4YzAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzEsMHgwZiwweDkwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDliYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjgsMHgwMiwweGNmLDB4MDAsMHgzMywweGUwIH0gfSwKLXsgIDE2LCAweDliYzAsIDAsIHsweDJjLDB4ZjAsMHgxMywweGJjLDB4MDAsMHgyZSwweDEwLDB4YjEsMHg2NCwweDJlLDB4ZjAsMHgwMiwweDNjLDB4MDAsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweDliZDAsIDAsIHsweDNmLDB4YzEsMHg0ZCwweGVjLDB4NjMsMHhmZSwweDAwLDB4YjcsMHgwMCwweDNiLDB4YzAsMHgwYywweGQ4LDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweDliZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NmMsMHgyOCwweDgxLDB4ODEsMHgyMiwweGUwIH0gfSwKLXsgIDE2LCAweDliZjAsIDAsIHsweDBhLDB4MzgsMHgwMiwweDNjLDB4MDQsMHhiYSwweGM5LDB4MzIsMHhlMCwweDIwLDB4ODQsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDljMDAsIDAsIHsweDJlLDB4YzAsMHgwYiwweDljLDB4MDIsMHhlNywweDgxLDB4YmIsMHgwNCwweDIyLDB4YzAsMHgwYSwweDk5LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDljMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjgsMHg0MCwweDg4LDB4ODAsMHgyMiwweDg4IH0gfSwKLXsgIDE2LCAweDljMjAsIDAsIHsweDI4LDB4YmMsMHg0MiwweGFjLDB4MDAsMHhiYSwweDAwLDB4MmEsMHg4MCwweDA4LDB4ODQsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDljMzAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGIwLDB4ODIsMHhlOCwweDkwLDB4YWIsMHgwMCwweDYyLDB4YzAsMHgwOCwweGIwLDB4MTIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDljNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDAsMHgwMCwweDg5LDB4MDAsMHgyYSwweDgwIH0gfSwKLXsgIDE2LCAweDljNTAsIDAsIHsweDI4LDB4YjIsMHgwMiwweDBjLDB4MDAsMHhiYSwweDAwLDB4MjAsMHhjMCwweDA4LDB4MDAsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDljNjAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MjAsMHg0YywweDE0LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDljNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NjgsMHgwMCwweGM4LDB4MDAsMHhiMiwweGMwIH0gfSwKLXsgIDE2LCAweDljODAsIDAsIHsweDJjLDB4YjIsMHgwMywweGFjLDB4MDAsMHhmYSwweDAwLDB4M2EsMHhjMCwweDRlLDB4YTUsMHgwMywweGJjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDljOTAsIDAsIHsweDNmLDB4YzAsMHgwOSwweGEwLDB4MDMsMHhlOSwweDA0LDB4ZWYsMHgwMCwweGJhLDB4YzAsMHgwYywweGIwLDB4MDEsMHhjMCwweDAxIH0gfSwKLXsgIDE2LCAweDljYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZmMsMHgwMCwweGY1LDB4MDAsMHgzNSwweGMwIH0gfSwKLXsgIDE2LCAweDljYjAsIDAsIHsweGFmLDB4MzQsMHgwMywweGZjLDB4MDAsMHhmNCwweDAwLDB4MzksMHhjMCwweDBmLDB4YzIsMHgwMywweDdjLDB4MDAsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweDljYzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweGEwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA1IH0gfSwKLXsgIDE2LCAweDljZDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGZmLDB4MjksMHgzZCwweDIwIH0gfSwKLXsgIDE2LCAweDljZTAsIDAsIHsweDhlLDB4YzEsMHgwMywweDMyLDB4NDgsMHhkYywweDgwLDB4MjMsMHgyNSwweDBlLDB4ZjIsMHgwMywweDNjLDB4YzAsMHhkZiwweDg0IH0gfSwKLXsgIDE2LCAweDljZjAsIDAsIHsweDMzLDB4YzksMHgwZiwweGYyLDB4MDMsMHhmYywweDAwLDB4Y2YsMHg4MCwweDMzLDB4NDAsMHgwYywweGYyLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweDlkMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWMsMHhjMCwweGJiLDB4NjAsMHgyZSwweDA4IH0gfSwKLXsgIDE2LCAweDlkMTAsIDAsIHsweDA4LDB4ODEsMHgwMiwweDIwLDB4MDQsMHg4OCwweDIwLDB4MjAsMHg0OCwweDA4LDB4ZjEsMHg4MiwweDJkLDB4YzAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDlkMjAsIDAsIHsweDIyLDB4ZDQsMHgwOSwweGY1LDB4MDIsMHhmYywweDA4LDB4OGIsMHgwMSwweDIyLDB4NDAsMHgyOCwweGI0LDB4MDIsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweDlkMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgyMCwweGIzLDB4MDksMHgyYywweDgyIH0gfSwKLXsgIDE2LCAweDlkNDAsIDAsIHsweDA4LDB4MTAsMHgxNiwweGEwLDB4MTAsMHg5MCwweDA4LDB4MjgsMHg0OCwweDBhLDB4MzIsMHgwMiwweDBjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDlkNTAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAyLDB4OTMsMHgwMSwweDIwLDB4MDAsMHg4YSwweDMxLDB4MjIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweDlkNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwNCwweGJiLDB4MDAsMHgyYywweDgwIH0gfSwKLXsgIDE2LCAweDlkNzAsIDAsIHsweDA4LDB4ODYsMHgwMiwweGEwLDB4MjAsMHhhMCwweDAwLDB4MmEsMHg2MCwweDBhLDB4YjAsMHgxMCwweDJjLDB4MDAsMHhhYiwweDBjIH0gfSwKLXsgIDE2LCAweDlkODAsIDAsIHsweDZlLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhjYywweDAwLDB4OWIsMHgwMCwweDIyLDB4NjAsMHgwYSwweGIwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweDlkOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4ZWMsMHgwMCwweGJiLDB4MDAsMHgzZSwweDM0IH0gfSwKLXsgIDE2LCAweDlkYTAsIDAsIHsweDA4LDB4YTAsMHgwYiwweDgzLDB4MDAsMHhkOSwweDAyLDB4M2EsMHhlMCwweDJlLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhmOCwweDgwIH0gfSwKLXsgIDE2LCAweDlkYjAsIDAsIHsweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4Y2EsMHg0MCwweGIyLDB4NzIsMHgwZSwweGIwLDB4MGIsMHhjMCwweDA0IH0gfSwKLXsgIDE2LCAweDlkYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmMsMHgxMCwweGZiLDB4MDAsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweDlkZDAsIDAsIHsweDBkLDB4ZjgsMHgxMywweDcwLDB4NDgsMHhkZCwweDQwLDB4MzcsMHhjMiwweDhkLDB4ZjAsMHgwMywweGRjLDB4MDAsMHhkZCwweGM4IH0gfSwKLXsgIDE2LCAweDlkZTAsIDAsIHsweDEzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZWUsMHg0MCwweDdmLDB4NDAsMHgwZCwweDcwLDB4MDMsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweDlkZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDEsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweDllMDAsIDAsIHsweDA0LDB4MTAsMHgwMywweDIwLDB4NDAsMHhlOCwweDEwLDB4M2EsMHhjMCwweDBkLDB4YjAsMHgwMywweGFjLDB4MDgsMHhmOCwweDQwIH0gfSwKLXsgIDE2LCAweDllMTAsIDAsIHsweGIyLDB4YzAsMHgyYywweGIwLDB4MzMsMHhhNCwweDgyLDB4ZGEsMHg0MCwweGJhLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDllMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4M2MsMHgwOCwweGJmLDB4ODAsMHgyMiwweGM4IH0gfSwKLXsgIDE2LCAweDllMzAsIDAsIHsweDA4LDB4YjcsMHgwMCwweDIzLDB4NDQsMHg4OCwweGQwLDB4MjIsMHhkMCwweDA4LDB4NzAsMHg4MiwweGZjLDB4MDAsMHhiMiwweGUwIH0gfSwKLXsgIDE2LCAweDllNDAsIDAsIHsweDAzLDB4ZjQsMHgwOCwweGY1LDB4MDIsMHgzNywweDA0LDB4OGIsMHhkMSwweDIyLDB4NjAsMHg0YiwweGZkLDB4MDIsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweDllNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MTAsMHhhNCwweDQwIH0gfSwKLXsgIDE2LCAweDllNjAsIDAsIHsweDA4LDB4MDAsMHgwMiwweDQ4LDB4MDAsMHhhMCwweDQyLDB4MmEsMHhkMCwweDAxLDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiMywweDgwIH0gfSwKLXsgIDE2LCAweDllNzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDMxLDB4MDIsMHhjYywweDAwLDB4ODksMHgwMCwweDIyLDB4ZTgsMHgwMywweDM4LDB4MDIsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDllODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyNywweDY0IH0gfSwKLXsgIDE2LCAweDllOTAsIDAsIHsweDY4LDB4NGEsMHgwMiwweDUyLDB4MDAsMHg4YywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweDllYTAsIDAsIHsweDJkLDB4ZTIsMHgxOSwweDM5LDB4MDIsMHg1ZSwweDMwLDB4ODUsMHg5OCwweDIxLDB4ZTQsMHgwYiwweDc5LDB4MDIsMHhkOCwweDAwIH0gfSwKLXsgIDE2LCAweDllYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgwMCwweGYzLDB4MjAsMHgzNCwweDAwIH0gfSwKLXsgIDE2LCAweDllYzAsIDAsIHsweDBjLDB4YjgsMHgwMywweDQ4LDB4ODAsMHhlMiwweDIyLDB4MzgsMHhjMCwweDBkLDB4MzAsMHgwMywweDhjLDB4MDAsMHhmMywweDAwIH0gfSwKLXsgIDE2LCAweDllZDAsIDAsIHsweDNlLDB4YzAsMHgwZCwweDMxLDB4MDMsMHhlYywweDAwLDB4Y2IsMHgwMCwweDM4LDB4MDYsMHgwZiwweDMwLDB4ODMsMHhkMiwweDAyIH0gfSwKLXsgIDE2LCAweDllZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzYiwweDAxIH0gfSwKLXsgIDE2LCAweDllZjAsIDAsIHsweDBmLDB4ZDAsMHgwMywweDkwLDB4MDAsMHhmNiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjQsMHgwMSwweGZjLDB4MDAsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweDlmMDAsIDAsIHsweDMzLDB4YzIsMHgwZSwweGY1LDB4MTMsMHhiYywweDAwLDB4ZWQsMHgwMCwweDNmLDB4YzQsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDlmMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwIH0gfSwKLXsgIDE2LCAweDlmMjAsIDAsIHsweDBlLDB4YTAsMHgwMSwweDY0LDB4MDEsMHhkOCwweDAwLDB4MzIsMHhlMCwweDJjLDB4YjUsMHgwMywweDJjLDB4MDAsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweDlmMzAsIDAsIHsweDdhLDB4YzAsMHgwZCwweGI0LDB4MDMsMHgyZCwweDgwLDB4YzksMHgwMiwweDMyLDB4YzAsMHgwYywweGIwLDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweDlmNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHg4MCwweGI3LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweDlmNTAsIDAsIHsweDBkLDB4NjAsMHgwMiwweGQwLDB4MDEsMHg4NCwweDAwLDB4MjEsMHhjMCwweDA4LDB4MzAsMHgwMiwweDFkLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweDlmNjAsIDAsIHsweDIxLDB4YzgsMHgwYiwweGY0LDB4MDMsMHgxZSwweGMwLDB4ODYsMHgwMCwweDIxLDB4YzAsMHgwOCwweDdjLDB4MDMsMHg1MiwweDA0IH0gfSwKLXsgIDE2LCAweDlmNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHhjMCwweGI3LDB4OTAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweDlmODAsIDAsIHsweDA4LDB4NzgsMHgwNiwweGQ2LDB4MDEsMHhiNCwweDgyLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwYSwweDFlLDB4MDAsMHhiNSwweGMwIH0gfSwKLXsgIDE2LCAweDlmOTAsIDAsIHsweDI5LDB4ZTgsMHgwOSwweDc4LDB4MDIsMHgzNiwweGMxLDB4OTcsMHg4MCwweDI4LDB4YjAsMHgwYSwweDdhLDB4MDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweDlmYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweGJiLDB4MDAsMHgyYywweGUwIH0gfSwKLXsgIDE2LCAweDlmYjAsIDAsIHsweDA5LDB4MzUsMHg4MiwweGMwLDB4YzEsMHhhMCwweDUxLDB4MjAsMHhlNCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiYiwweGM0IH0gfSwKLXsgIDE2LCAweDlmYzAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwNiwweDAwLDB4OTMsMHgxOCwweGFhLDB4YjAsMHgyYSwweDMwLDB4MGEsMHg1MiwweDA0IH0gfSwKLXsgIDE2LCAweDlmZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGZhLDB4MDEsMHgzZCwweGFjIH0gfSwKLXsgIDE2LCAweDlmZTAsIDAsIHsweDRjLDB4ZWMsMHgxMywweDc4LDB4MTAsMHhmNiwweDgwLDB4YjMsMHg5MCwweDBjLDB4YTAsMHgwMywweDI4LDB4MDAsMHhmZSwweDAwIH0gfSwKLXsgIDE2LCAweDlmZjAsIDAsIHsweDNhLDB4ODEsMHgwZCwweGEwLDB4MGYsMHgyYSwweDgwLDB4ZGUsMHgwNCwweDNiLDB4YTAsMHgwZSwweGEwLDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGEwMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGEwMTAsIDAsIHsweDBkLDB4ODAsMHgwMiwweGUxLDB4MDAsMHhkOCwweDQ4LDB4M2UsMHgxMiwweDBmLDB4ODAsMHgxMywweDYwLDB4MDAsMHhmOCwweDYwIH0gfSwKLXsgIDE2LCAweGEwMjAsIDAsIHsweDNlLDB4MDAsMHgwNywweDgwLDB4MDMsMHhhMCwweDAyLDB4ZTgsMHgwNCwweDI2LDB4MDgsMHgwNSwweDgwLDB4MDMsMHg5MiwweDAwIH0gfSwKLXsgIDE2LCAweGEwMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDQsMHgzYSwweDQwIH0gfSwKLXsgIDE2LCAweGEwNDAsIDAsIHsweDBjLDB4MTIsMHgwMywweDI0LDB4ODIsMHhjOSwweDAwLDB4MzYsMHg0NCwweDBmLDB4MTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGEwNTAsIDAsIHsweDM2LDB4NDAsMHgwNCwweDkwLDB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDEyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGEwNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4ODEsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGEwNzAsIDAsIHsweDA4LDB4OTAsMHgxYSwweDI0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg2OCwweDBiLDB4OTksMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGEwODAsIDAsIHsweDIyLDB4NDAsMHg2OCwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODksMHgwMCwweGEyLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGEwOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MTAsMHgyMiwweGUwIH0gfSwKLXsgIDE2LCAweGEwYTAsIDAsIHsweDA4LDB4OTQsMHgwMCwweDA0LDB4MDQsMHg4YiwweDA4LDB4MjYsMHhjMCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDQsMHhiOSwweDBjIH0gfSwKLXsgIDE2LCAweGEwYjAsIDAsIHsweDI0LDB4NDAsMHgwYSwweDEwLDB4MDIsMHgyNCwweDAwLDB4MjMsMHgwMiwweDJhLDB4NDAsMHhhOCwweDEwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGEwYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg5MCwweGIxLDB4MjAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGEwZDAsIDAsIHsweDA4LDB4MTIsMHgwMiwweDBjLDB4MTAsMHg4MSwweDAyLDB4YTAsMHg1MCwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODAsMHhiMSwweDA1IH0gfSwKLXsgIDE2LCAweGEwZTAsIDAsIHsweDAwLDB4NDgsMHgwYSwweDEwLDB4MDIsMHgwNCwweGEwLDB4YTEsMHgwMCwweDI4LDB4NGEsMHgwOCwweDEyLDB4MDAsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGEwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGY4LDB4NTAsMHhiYSwweDE0IH0gfSwKLXsgIDE2LCAweGExMDAsIDAsIHsweDBjLDB4ODUsMHgwMywweDAxLDB4NDIsMHhjOCwweDUwLDB4MzQsMHgwMCwweDBmLDB4ODUsMHgwMywweDIxLDB4NDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGExMTAsIDAsIHsweDM2LDB4MDAsMHgwZSwweDgwLDB4MTMsMHgyMCwweDgwLDB4ZTAsMHgwMCwweDFhLDB4MDgsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGExMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZTQsMHg0NCwweGY5LDB4MTAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGExMzAsIDAsIHsweDJmLDB4ZDEsMHgxMywweGY0LDB4MDQsMHhmNSwweDAwLDB4M2YsMHg0MCwweDBmLDB4OTEsMHgwYiwweGU0LDB4NDAsMHhmZiwweDI4IH0gfSwKLXsgIDE2LCAweGExNDAsIDAsIHsweGJlLDB4NGUsMHgwZCwweDk2LDB4ODMsMHhkNCwweGEyLDB4ZGQsMHgyOCwweDM3LDB4NGEsMHgwZiwweDkzLDB4ODMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGExNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDA1LDB4ZTQsMHgxMCwweGNkLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGExNjAsIDAsIHsweDBmLDB4ZDAsMHgwMywweDM1LDB4MDIsMHg1ZCwweDAxLDB4MzEsMHg0NCwweDBmLDB4ZDAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGExNzAsIDAsIHsweDMyLDB4NjAsMHgwYywweDk4LDB4ODMsMHhlNiwweDQwLDB4ZDksMHgwMCwweDM2LDB4NmEsMHgwYywweDllLDB4ODMsMHgyNiwweDAxIH0gfSwKLXsgIDE2LCAweGExODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwMCwweDg4LDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGExOTAsIDAsIHsweDBiLDB4ODAsMHg0MiwweDAyLDB4ODAsMHg4YSwweDAwLDB4MjIsMHgyMCwweDg4LDB4ODAsMHgwMywweDIwLDB4MDgsMHhiOCwweDgyIH0gfSwKLXsgIDE2LCAweGExYTAsIDAsIHsweDIyLDB4MjEsMHgwOCwweDg4LDB4ODIsMHhlMiwweDQyLDB4ODgsMHhhOCwweDIyLDB4MjAsMHgwOCwweGNlLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGExYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMiwweDgxLDB4MDAsMHg2OCwweDQwIH0gfSwKLXsgIDE2LCAweGExYzAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDg0LDB4MDEsMHhiOSwweDAwLDB4MjAsMHg0MCwweDQ5LDB4MTAsMHgwYSwweDA0LDB4MDAsMHhiNSwweDA4IH0gfSwKLXsgIDE2LCAweGExZDAsIDAsIHsweDIxLDB4NDYsMHgwOCwweDUwLDB4MDIsMHhkNCwweDAwLDB4OGQsMHgyMCwweDI1LDB4NGEsMHgwYiwweDUwLDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGExZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTQsMHgwMCwweDg5LDB4MDQsMHg2ZSwweDU0IH0gfSwKLXsgIDE2LCAweGExZjAsIDAsIHsweDBiLDB4MTAsMHgxMiwweGE0LDB4MDEsMHhhOSwweDAwLDB4YTIsMHg0MCwweDE4LDB4OTAsMHgxNiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGEyMDAsIDAsIHsweDIzLDB4NDAsMHgxOCwweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHg0MCwweDIxLDB4NGEsMHgwYiwweGQwLDB4MDIsMHg0NiwweDA0IH0gfSwKLXsgIDE2LCAweGEyMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzYSwweDUwIH0gfSwKLXsgIDE2LCAweGEyMjAsIDAsIHsweDhmLDB4OTYsMHgwYiwweDg0LDB4MDIsMHhmMSwweDAxLDB4MzAsMHg0OCwweDhkLDB4OTAsMHgwMywweDI0LDB4MTAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGEyMzAsIDAsIHsweGIyLDB4NDAsMHgyYywweDkwLDB4MDMsMHhlNiwweDQwLDB4ZDEsMHhjMCwweDM2LDB4NTAsMHgyZiwweDkwLDB4MGIsMHg2OCwweDA0IH0gfSwKLXsgIDE2LCAweGEyNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDYwIH0gfSwKLXsgIDE2LCAweGEyNTAsIDAsIHsweDBmLDB4OTksMHhjMywweDY0LDB4MDAsMHhkOSwweDI4LDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDQwIH0gfSwKLXsgIDE2LCAweGEyNjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDIwLDB4ZjksMHg0MCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGEyNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDEsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweGEyODAsIDAsIHsweDhmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhmOCwweDA0LDB4MzIsMHgwMCwweDBkLDB4ODAsMHg0MywweDIwLDB4MDIsMHhjYywweDAwIH0gfSwKLXsgIDE2LCAweGEyOTAsIDAsIHsweDNmLDB4MDAsMHgwZiwweGMwLDB4MTMsMHg5MCwweDAyLDB4ZGMsMHg0MCwweDNmLDB4MTAsMHg0YywweGMwLDB4MjMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGEyYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGEyYjAsIDAsIHsweDBiLDB4ZTgsMHgyMCwweGY4LDB4MDAsMHg0ZSwweGMwLDB4MjMsMHhhMCwweDA4LDB4YTAsMHgwMywweDY4LDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGEyYzAsIDAsIHsweDJlLDB4ODAsMHgxZiwweGEwLDB4MDIsMHgyYSwweDA2LDB4OGEsMHgwMCwweDJlLDB4YTAsMHgwMiwweDYwLDB4MDMsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGEyZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGEyZTAsIDAsIHsweDBiLDB4M2QsMHgwMiwweGMwLDB4MDMsMHgyMywweDAwLDB4MjAsMHhlMCwweDAxLDB4YjAsMHgwNiwweDRjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGEyZjAsIDAsIHsweDJlLDB4YzAsMHg0YiwweDMwLDB4MDIsMHg4ZSwweDA4LDB4ODMsMHg4MCwweDJjLDB4YzQsMHgwMCwweDM0LDB4OGUsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGEzMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHg4MCwweGI1LDB4ODAsMHg2MSwweGMwIH0gfSwKLXsgIDE2LCAweGEzMTAsIDAsIHsweDBiLDB4NDAsMHgwMiwweGQ0LDB4MDAsMHg4NCwweDA4LDB4MjMsMHhjMiwweDA4LDB4NTAsMHgwMiwweDVlLDB4YzAsMHg4NCwweDAxIH0gfSwKLXsgIDE2LCAweGEzMjAsIDAsIHsweDJkLDB4MDAsMHg4YSwweDA4LDB4MDIsMHgxMCwweDI0LDB4ODQsMHgwOCwweDZkLDB4MDAsMHgwYSwweDAzLDB4MTIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGEzMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGY1LDB4ODIsMHgyMSwweDYwIH0gfSwKLXsgIDE2LCAweGEzNDAsIDAsIHsweDBmLDB4NzgsMHgwMywweGQ2LDB4MDQsMHhhZSwweDgwLDB4MzEsMHhlMCwweDBkLDB4NTgsMHgyMywweDdlLDB4MDAsMHhjNiwweDgwIH0gfSwKLXsgIDE2LCAweGEzNTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDMsMHg4ZSwweDAwLDB4ZDcsMHg4MiwweDNkLDB4ZjAsMHgwYywweDdhLDB4MDMsMHg2YSwweDAyIH0gfSwKLXsgIDE2LCAweGEzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGYxLDB4MDAsMHhiYSwweGQ4IH0gfSwKLXsgIDE2LCAweGEzNzAsIDAsIHsweDBmLDB4ODAsMHgwMywweGU0LDB4MTIsMHhmOCwweDAwLDB4YmUsMHg4MCwweDBlLDB4MTAsMHgwMywweGVjLDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGEzODAsIDAsIHsweDNlLDB4MDAsMHg1ZiwweDgwLDB4MDMsMHhlMCwweDA4LDB4ZjgsMHgwNCwweDNjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGEzOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgyMCwweGZmLDB4ODAsMHgzZiwweGYwIH0gfSwKLXsgIDE2LCAweGEzYTAsIDAsIHsweDBmLDB4ZjgsMHgwMywweGQyLDB4MDAsMHhlZiwweDg0LDB4YjMsMHg2MSwweDBjLDB4YjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwIH0gfSwKLXsgIDE2LCAweGEzYjAsIDAsIHsweDMzLDB4ZTAsMHgwYywweGY4LDB4MTMsMHgyMiwweDExLDB4Y2QsMHg5MCwweDNmLDB4NjAsMHgwYywweGU4LDB4MDMsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGEzYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGY1LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGEzZDAsIDAsIHsweDBiLDB4MDAsMHgwMiwweGQ0LDB4MDQsMHg4NCwweDIwLDB4MjMsMHg0MCwweDA4LDB4NWEsMHgwMiwweGRjLDB4MDAsMHhiNCwweDAwIH0gfSwKLXsgIDE2LCAweGEzZTAsIDAsIHsweDIxLDB4MDAsMHgyOCwweGMyLDB4MDIsMHgxZSwweDA0LDB4ODYsMHgwNCwweDJkLDB4ODgsMHgwOCwweGQwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGEzZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4OWMsMHgwMCwweGI1LDB4MDAsMHgyZCwweDQwIH0gfSwKLXsgIDE2LCAweGE0MDAsIDAsIHsweDBiLDB4NzAsMHgwMiwweGY0LDB4MjAsMHhhNywweDA0LDB4MjEsMHhjMCwweDBhLDB4NTAsMHgwMiwweGRjLDB4MDAsMHhiZSwweDAwIH0gfSwKLXsgIDE2LCAweGE0MTAsIDAsIHsweDIxLDB4YzAsMHgwOCwweDcwLDB4MTIsMHgwMCwweDAwLDB4ODUsMHgwMCwweDJkLDB4NDAsMHg4OCwweDY4LDB4MGEsMHgwNCwweDAwIH0gfSwKLXsgIDE2LCAweGE0MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDE0LDB4Y2MsMHgwMCwweGExLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGE0MzAsIDAsIHsweDFiLDB4MDgsMHgwNiwweGM0LDB4MjAsMHg4MCwweDAwLDB4MjAsMHg5OCwweDFhLDB4MTAsMHgwMiwweGNjLDB4MDAsMHhiMSwweDA4IH0gfSwKLXsgIDE2LCAweGE0NDAsIDAsIHsweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwYywweDAxLDB4ODIsMHhjMCwweDJjLDB4YWMsMHgyOCwweDkwLDB4MjIsMHgxOCwweDA0IH0gfSwKLXsgIDE2LCAweGE0NTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGIzLDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGE0NjAsIDAsIHsweDBmLDB4YmEsMHgwMywweGU1LDB4MDIsMHhlOSwweDA0LDB4MzIsMHg5MCwweGFlLDB4YjAsMHgwMywweGZjLDB4MTAsMHhmYiwweDQwIH0gfSwKLXsgIDE2LCAweGE0NzAsIDAsIHsweGIyLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyYywweDAyLDB4ODIsMHgxOCwweDNmLDB4YTAsMHgwYywweGQwLDB4MDMsMHgyZSwweDA0IH0gfSwKLXsgIDE2LCAweGE0ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ZWMsMHgwNCwweGZiLDB4MDEsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGE0OTAsIDAsIHsweDBmLDB4YjYsMHg0MywweGU0LDB4MDAsMHhmOCwweDAwLDB4M2UsMHg4MCwweDAxLDB4OTAsMHgwMywweGVjLDB4MDAsMHhmOCwweDgxIH0gfSwKLXsgIDE2LCAweGE0YTAsIDAsIHsweDNlLDB4ZDAsMHgwZCwweGI0LDB4NTMsMHhlMCwweDAwLDB4ZjksMHg0MCwweDNlLDB4NDAsMHgwZiwweGEwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGE0YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZGMsMHgwMiwweGNkLDB4ODAsMHgzMywweDYwIH0gfSwKLXsgIDE2LCAweGE0YzAsIDAsIHsweDJjLDB4ZGEsMHgwMywweGZjLDB4MDAsMHhlYywweDAwLDB4MzMsMHg0MCwweDBmLDB4ZjIsMHgwMywweDdjLDB4MDQsMHhmZSwweDAwIH0gfSwKLXsgIDE2LCAweGE0ZDAsIDAsIHsweDMyLDB4MDAsMHgwYywweGM4LDB4MDMsMHgzYywweDAwLDB4Y2UsMHgwMCwweDMxLDB4ODAsMHgwYywweGQxLDB4MDMsMHgyNCwweDA0IH0gfSwKLXsgIDE2LCAweGE0ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MSwweDA0LDB4NmMsMHgwMCwweDA5LDB4MDAsMHgyYSwweDY0IH0gfSwKLXsgIDE2LCAweGE0ZjAsIDAsIHsweDA4LDB4OGUsMHgwMiwweGMyLDB4MTAsMHhhMCwweDEwLDB4M2UsMHgxMCwweDBiLDB4OTgsMHgwMiwweGVjLDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGE1MDAsIDAsIHsweDAyLDB4ZDgsMHgwOCwweGJlLDB4MjIsMHgyMCwweDAwLDB4ODksMHgwMCwweDIyLDB4NTAsMHgwOCwweGEwLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGE1MTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDBiLDB4MjAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGE1MjAsIDAsIHsweDA4LDB4YTAsMHgwMiwweGU1LDB4NDIsMHhhYiwweDA0LDB4MjIsMHgxOCwweDBiLDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGE1MzAsIDAsIHsweDIwLDB4MDQsMHgwOCwweDAxLDB4MDIsMHgwMCwweDA0LDB4YTgsMHg0MCwweDIyLDB4MTAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGE1NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwOCwweDgzLDB4MDAsMHgyOCwweDQwIH0gfSwKLXsgIDE2LCAweGE1NTAsIDAsIHsweDA4LDB4MDQsMHgwMiwweGM0LDB4MDIsMHhhOCwweDAwLDB4MmMsMHgwMCwweDBiLDB4MTIsMHgwMiwweGNjLDB4MDAsMHhiMCwweDAwIH0gfSwKLXsgIDE2LCAweGE1NjAsIDAsIHsweDIwLDB4YzAsMHg0MCwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweGE4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwMiwweDExIH0gfSwKLXsgIDE2LCAweGE1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBkLDB4NmMsMHgwMCwweGM5LDB4MDAsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweGE1ODAsIDAsIHsweDBjLDB4YjAsMHgwMywweGVjLDB4MDIsMHhlYiwweDAwLDB4MzIsMHg0MCwweDBmLDB4YjAsMHgwMywweDZjLDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGE1OTAsIDAsIHsweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDgwLDB4YzgsMHgwMCwweDMwLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDAzIH0gfSwKLXsgIDE2LCAweGE1YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGE1YjAsIDAsIHsweDBmLDB4YzIsMHgxMywweGYwLDB4MDAsMHhmNCwweDAwLDB4M2YsMHgwMCwweDRmLDB4ZDQsMHgwMywweGZjLDB4MDAsMHhmNSwweDAwIH0gfSwKLXsgIDE2LCAweGE1YzAsIDAsIHsweDNmLDB4YzAsMHg4ZiwweGYwLDB4MDMsMHhmYywweDQwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHgyZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGE1ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHgwMCwweGNjLDB4MDAsMHgzMywweDAwIH0gfSwKLXsgIDE2LCAweGE1ZTAsIDAsIHsweDBlLDB4ZDAsMHgwYiwweDMzLDB4MDAsMHhjYywweDAwLDB4MzMsMHhlMCwweDBmLDB4YzAsMHg4MywweDdjLDB4MDAsMHhjZiwweDIwIH0gfSwKLXsgIDE2LCAweGE1ZjAsIDAsIHsweDdiLDB4MDksMHg4YywweGY4LDB4MDMsMHhmZSwweDUwLDB4Y2YsMHgzOCwweDNmLDB4ZTEsMHgwZCwweGMyLDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGE2MDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTIsMHgwMCwweDk4LDB4MDgsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGE2MTAsIDAsIHsweDA4LDB4OTgsMHgwMiwweDIwLDB4MDAsMHg4OCwweGQwLDB4MjIsMHhlMCwweDBlLDB4YjQsMHgyMiwweDdkLDB4MTksMHg5ZiwweDY5IH0gfSwKLXsgIDE2LCAweGE2MjAsIDAsIHsweDJlLDB4OTAsMHgwOCwweDMwLDB4OTIsMHgyOCwweDgxLDB4ZGIsMHg2NCwweDJlLDB4ZTEsMHg4OCwweDE2LDB4YTIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweGE2MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzgsMHgwMCwweDkwLDB4MjQsMHgyMCwweDAxIH0gfSwKLXsgIDE2LCAweGE2NDAsIDAsIHsweDA4LDB4MTAsMHgxNiwweDAwLDB4ODIsMHg4MywweDAxLDB4MjgsMHhjMSwweDBiLDB4MDIsMHg4MiwweDBjLDB4ZTAsMHhhMywweDEwIH0gfSwKLXsgIDE2LCAweGE2NTAsIDAsIHsweDI4LDB4MGUsMHgxYiwweDkyLDB4MDIsMHg4NCwweDg0LDB4OTMsMHgyMCwweDJlLDB4YzAsMHgwOCwweDMxLDB4MDIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweGE2NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTgsMHgxMCwweDk4LDB4MDAsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGE2NzAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDAwLDB4NjAsMHg4YSwweDEwLDB4MmEsMHhjMCwweDBhLDB4MjAsMHgwMiwweDZjLDB4MTgsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGE2ODAsIDAsIHsweDZlLDB4NjAsMHgyYiwweDkwLDB4MDIsMHg0NiwweDIwLDB4OGIsMHgwMCwweDJlLDB4YzIsMHgwOCwweGIxLDB4ODIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGE2OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDExLDB4ZTQsMHgwMiwweGNiLDB4MDAsMHhiMiwweDQwIH0gfSwKLXsgIDE2LCAweGE2YTAsIDAsIHsweDJjLDB4OTIsMHgwMywweDI3LDB4MDAsMHg4OCwweDAwLDB4YmEsMHhjMCwweDBmLDB4ODgsMHgwMywweDJjLDB4MDAsMHhlYiwweDA0IH0gfSwKLXsgIDE2LCAweGE2YjAsIDAsIHsweDNhLDB4YTAsMHhjZiwweDJjLDB4YTMsMHhlZCwweDAwLDB4OWIsMHgwMCwweDNjLDB4ZjAsMHgyZCwweDhjLDB4MzMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweGE2YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjQsMHgwNCwweGVmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGE2ZDAsIDAsIHsweDBkLDB4NTEsMHgwMywweGYwLDB4MDAsMHhmMSwweDgxLDB4MzcsMHhjMCwweDBlLDB4ZjQsMHgwMywweDljLDB4MTAsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGE2ZTAsIDAsIHsweDNkLDB4ODAsMHgwYywweGVjLDB4MDcsMHhiOCwweDA4LDB4ZmYsMHgwMiwweDFmLDB4YzQsMHgwZiwweGM4LDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGE2ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OWUsMHgwMCwweGMzLDB4MDAsMHgzOCwweDQwIH0gfSwKLXsgIDE2LCAweGE3MDAsIDAsIHsweDBjLDB4OTIsMHgwMywweGE0LDB4ODAsMHhmYiwweDIwLDB4M2EsMHhjMCwweDBkLDB4OTQsMHgwMywweDJjLDB4NDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGE3MTAsIDAsIHsweDNlLDB4MDEsMHgwZiwweDgwLDB4MDMsMHhlNSwweDAwLDB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZCwweDg0LDB4MGIsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGE3MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwOCwweDhiLDB4MDIsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGE3MzAsIDAsIHsweDA4LDB4OTIsMHgwMywweDIxLDB4MDAsMHg4YiwweDQ4LDB4MjIsMHhjMCwweDBiLDB4YjcsMHgwMiwweDNkLDB4NDAsMHgzZiwweDAxIH0gfSwKLXsgIDE2LCAweGE3NDAsIDAsIHsweDIyLDB4NzQsMHgwYiwweDkwLDB4MDIsMHgyOCwweDA0LDB4YmYsMHgwMCwweGIyLDB4YzAsMHgwYiwweDg1LDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGE3NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDAsMHgwMSwweDgwLDB4MDAsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGE3NjAsIDAsIHsweDA4LDB4MmMsMHgxMiwweDg4LDB4NDAsMHhiMCwweDQwLDB4MDgsMHhjMCwweDBiLDB4MTgsMHgwMiwweDBlLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGE3NzAsIDAsIHsweDI4LDB4MjAsMHgxMSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDI0LDB4MDAsMHgwOSwweDAwLDB4MDYsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGE3ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTIsMHgwMCwweDg0LDB4ODAsMHgyMSwweGEwIH0gfSwKLXsgIDE2LCAweGE3OTAsIDAsIHsweDI4LDB4NjgsMHgxMiwweDNhLDB4MDAsMHg4NCwweDgwLDB4MjUsMHhlMCwweDhiLDB4NTgsMHgwMiwweDFlLDB4NDAsMHhiNywweDgyIH0gfSwKLXsgIDE2LCAweGE3YTAsIDAsIHsweDIxLDB4YTYsMHgwYiwweDc4LDB4MDIsMHgxYSwweDAwLDB4YjcsMHg4MCwweDIxLDB4MjAsMHgwYiwweDU4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGE3YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDgsMHgwMCwweGM4LDB4MjEsMHgzOCwweDA5IH0gfSwKLXsgIDE2LCAweGE3YzAsIDAsIHsweDBjLDB4MjgsMHgwMywweDgwLDB4MDEsMHhmMSwweDAwLDB4MzgsMHhjMCwweDBkLDB4ODUsMHgwMiwweDBjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGE3ZDAsIDAsIHsweDM4LDB4ODUsMHgwZiwweDEwLDB4MDMsMHg4YywweDAwLDB4ZWIsMHgxMCwweDNjLDB4YzgsMHgwZCwweDMwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGE3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4OTgsMHgwMCwweGZjLDB4MDEsMHgzZiwweDgwIH0gfSwKLXsgIDE2LCAweGE3ZjAsIDAsIHsweDBmLDB4NjgsMHgwMywweGQwLDB4NDAsMHhmYywweDAwLDB4M2IsMHhjMCwweDBkLDB4YzAsMHgwMywweGZjLDB4MjAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGE4MDAsIDAsIHsweDNiLDB4YzUsMHgwZiwweGYwLDB4MGIsMHhiNCwweDQwLDB4ZmYsMHgxOCwweDNmLDB4MDAsMHgwZiwweGYxLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGE4MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGViLDB4MDAsMHhiMCwweDQxIH0gfSwKLXsgIDE2LCAweGE4MjAsIDAsIHsweDBjLDB4YTAsMHgwMywweGUwLDB4MDQsMHhjYSwweDA0LDB4YjAsMHhlMCwweDBlLDB4YjAsMHgwMywweGVjLDB4ODAsMHhjYiwweDIwIH0gfSwKLXsgIDE2LCAweGE4MzAsIDAsIHsweDMyLDB4ODEsMHgwYywweGEwLDB4MDMsMHhlZSwweDAwLDB4ZGIsMHgwMCwweDNlLDB4MDAsMHgwZSwweGIwLDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGE4NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OTQsMHgwNCwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGE4NTAsIDAsIHsweDQ4LDB4NjAsMHgwMiwweGYwLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGZjLDB4YTAsMHg4MywweDI4IH0gfSwKLXsgIDE2LCAweGE4NjAsIDAsIHsweGEzLDB4ODAsMHgwOCwweDYwLDB4MDIsMHhkYywweDAwLDB4ODcsMHgyMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGE4NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWMsMHgwMiwweGEzLDB4ODAsMHgyMSwweDYwIH0gfSwKLXsgIDE2LCAweGE4ODAsIDAsIHsweDA4LDB4NjgsMHgwMiwweGQyLDB4MDAsMHg4NywweDgwLDB4MjEsMHhlMCwweDI5LDB4NzgsMHgwMiwweGRlLDB4ODAsMHg4NywweDkwIH0gfSwKLXsgIDE2LCAweGE4OTAsIDAsIHsweDIxLDB4YTAsMHgxOSwweDQ4LDB4MDIsMHhmZSwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZTAsMHgwYSwweDM4LDB4ODIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGE4YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMSwweDgzLDB4ODAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGE4YjAsIDAsIHsweDA4LDB4MjAsMHg0MiwweGMwLDB4MzAsMHg4MywweDcwLDB4YTAsMHhjMCwweDg5LDB4MzQsMHgwMiwweGNjLDB4MDIsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGE4YzAsIDAsIHsweDYwLDB4YzAsMHgyOSwweDAwLDB4MDIsMHhjZSwweDAwLDB4ODMsMHgwMCwweDJjLDB4YzgsMHgwYiwweGJjLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGE4ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTksMHgwMCwweGVhLDB4ZTIsMHgzMiwweDkwIH0gfSwKLXsgIDE2LCAweGE4ZTAsIDAsIHsweDJjLDB4ZTAsMHgwMywweGZiLDB4MDIsMHhjZSwweGMwLDB4MzIsMHg4MCwweDBmLDB4ZTQsMHgwMywweGU4LDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGE4ZjAsIDAsIHsweDMzLDB4ODgsMHgwZCwweDY0LDB4YzMsMHhmYSwweDAwLDB4ZGEsMHgwMCwweDNkLDB4OTAsMHgwZSwweGUwLDB4MGIsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGE5MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4YzAsMHgyNCwweGY4LDB4MDgsMHgzZSwweDEyIH0gfSwKLXsgIDE2LCAweGE5MTAsIDAsIHsweDBmLDB4YzAsMHgwMywweGUwLDB4NDgsMHhmMCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHg5MywweGMwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGE5MjAsIDAsIHsweDdlLDB4MDEsMHgwZSwweDgwLDB4YzIsMHhlMCwweDQwLDB4ZjgsMHgwMCwweDdlLDB4MDAsMHg4ZiwweDg0LDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGE5MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTUsMHgwMCwweGMxLDB4MDEsMHgzMiwweDQ4IH0gfSwKLXsgIDE2LCAweGE5NDAsIDAsIHsweDBjLDB4OTgsMHgwMywweGU2LDB4NDAsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMywweDY2LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGE5NTAsIDAsIHsweDE4LDB4NjEsMHgwYywweDkwLDB4MDMsMHg2NCwweDIwLDB4ZjksMHgwNSwweDNlLDB4NDAsMHgwYywweDkwLDB4ODMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGE5NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjYsMHgyMCwweDg5LDB4MDAsMHgyMCwweDUyIH0gfSwKLXsgIDE2LCAweGE5NzAsIDAsIHsweDI4LDB4MTAsMHhjMiwweDI2LDB4MDIsMHhhOSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwYSwweDI3LDB4MDAsMHhhOSwweDAwIH0gfSwKLXsgIDE2LCAweGE5ODAsIDAsIHsweDIyLDB4NzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGE5OTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMiwweDhkLDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweGE5YTAsIDAsIHsweDA4LDB4ZDEsMHgwMiwweDg0LDB4MjAsMHg4OSwweDAwLDB4MjIsMHg2MCwweDBiLDB4MTEsMHhmMiwweDI0LDB4YjAsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGE5YjAsIDAsIHsweDJhLDB4NDYsMHgwOCwweDkwLDB4NDIsMHg2NCwweDA4LDB4YjksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkyLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGE5YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTQsMHg4MCwweDg1LDB4MjAsMHgyMywweDQ4IH0gfSwKLXsgIDE2LCAweGE5ZDAsIDAsIHsweDA4LDB4NTIsMHgwMiwweDg0LDB4MDgsMHg4MSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODAsMHhhMSwweDIwIH0gfSwKLXsgIDE2LCAweGE5ZTAsIDAsIHsweDI4LDB4NDksMHgyOCwweDkwLDB4MDIsMHgwNCwweDAwLDB4MzEsMHgyMCwweDJlLDB4NDAsMHgwOCwweDMyLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGE5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwMCwweGM4LDB4NTAsMHhiMiwweDE0IH0gfSwKLXsgIDE2LCAweGFhMDAsIDAsIHsweDBjLDB4YzAsMHgwMywweGExLDB4NDAsMHhjOCwweDAwLDB4YjIsMHgwMCwweDA3LDB4ODUsMHgwMywweDIxLDB4NDAsMHhjOCwweDUwIH0gfSwKLXsgIDE2LCAweGFhMTAsIDAsIHsweDNhLDB4MTUsMHgwYywweDg1LDB4MDMsMHg2MSwweDQwLDB4ZjgsMHg1MSwweDNlLDB4MDAsMHgyYywweDg1LDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGFhMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4YzQsMHg0OCwweGY5LDB4MTAsMHgzZSwweDQ0IH0gfSwKLXsgIDE2LCAweGFhMzAsIDAsIHsweDRmLDB4OTEsMHgwMywweDc0LDB4MDAsMHhmNSwweDQ0LDB4M2UsMHg0MCwweDBmLDB4ZDEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGFhNDAsIDAsIHsweDM3LDB4NDQsMHgwZiwweGQwLDB4MDMsMHhkNCwweDAwLDB4ZjksMHgxMCwweDNmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGFhNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjYsMHhhMCwweGRkLDB4OGMsMHgzMywweDc4IH0gfSwKLXsgIDE2LCAweGFhNjAsIDAsIHsweDBlLDB4ZGEsMHgwMywweDM1LDB4MDAsMHhjZCwweGEwLDB4MzMsMHg0MCwweDBkLDB4ZjgsMHgwYiwweDM2LDB4ODEsMHhlOSwweDgwIH0gfSwKLXsgIDE2LCAweGFhNzAsIDAsIHsweDMzLDB4NzAsMHgwYywweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHhjMCwweDNlLDB4YzAsMHgwZiwweGRjLDB4MDMsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGFhODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHgwNCwweGI4LDB4NDAsMHgyMCwweDNjIH0gfSwKLXsgIDE2LCAweGFhOTAsIDAsIHsweDBjLDB4ODUsMHgwMiwweDAyLDB4ODQsMHg4YSwweDQwLDB4MjIsMHgwMCwweDA4LDB4OGYsMHg4MiwweDIzLDB4MDAsMHhiOCwweGU4IH0gfSwKLXsgIDE2LCAweGFhYTAsIDAsIHsweDIyLDB4MjAsMHgwOCwweDg4LDB4MDIsMHhlMiwweDAwLDB4YjgsMHhkMCwweDJlLDB4MDAsMHgwYiwweDhjLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGFhYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweDkxLDB4MDAsMHg2MCwweDQ4IH0gfSwKLXsgIDE2LCAweGFhYzAsIDAsIHsweDRiLDB4MTAsMHgwMiwweDA0LDB4OGEsMHg4MSwweDQwLDB4NjAsMHg0MCwweDQ5LDB4MTAsMHgwMiwweDhkLDB4YTAsMHhhMSwweDQxIH0gfSwKLXsgIDE2LCAweGFhZDAsIDAsIHsweDIwLDB4NTAsMHgwOSwweDEyLDB4MjIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDJjLDB4NDAsMHg0YiwweDNlLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGFhZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwOCwweGI5LDB4MDQsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweGFhZjAsIDAsIHsweDQ4LDB4YjAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4ODIsMHg0MCwweDA4LDB4OTAsMHhhNiwweGE0LDB4MDAsMHhiOSwweDA0IH0gfSwKLXsgIDE2LCAweGFiMDAsIDAsIHsweDIyLDB4NTQsMHgyOSwweDk1LDB4MDIsMHhlNSwweDQwLDB4YjksMHgwMCwweDZlLDB4NDAsMHgwYiwweDkyLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGFiMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDA1LDB4ZTQsMHgwMCwweDkxLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGFiMjAsIDAsIHsweDBmLDB4OTAsMHgwOSwweDI0LDB4MDAsMHg4OSwweDkwLDB4MzIsMHg0MCwweDBkLDB4OTQsMHgwMywweGE0LDB4MDAsMHhlOSwweDAyIH0gfSwKLXsgIDE2LCAweGFiMzAsIDAsIHsweDcyLDB4NjAsMHgwZCwweDk0LDB4MDMsMHhlNCwweDAxLDB4ZjksMHgwMSwweDNlLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweGFiNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHg0MCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGFiNTAsIDAsIHsweDRmLDB4OTAsMHgwMywweGU3LDB4MTAsMHhmOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4MTAsMHgxMywweDY0LDB4MDAsMHhmMSwweDAwIH0gfSwKLXsgIDE2LCAweGFiNjAsIDAsIHsweGJlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNiwweDA4LDB4ZjksMHgwMSwweDNlLDB4NjQsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGFiNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDA4IH0gfSwKLXsgIDE2LCAweGFiODAsIDAsIHsweDBjLDB4MDEsMHgwYiwweDIwLDB4NDAsMHhjOCwweDQwLDB4MzIsMHgwMCwweDBlLDB4ODQsMHg4MywweDIwLDB4MDAsMHhmOCwweDA0IH0gfSwKLXsgIDE2LCAweGFiOTAsIDAsIHsweDNlLDB4MDQsMHgwZiwweDgwLDB4MDMsMHgyMSwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MTAsMHgwZiwweDg4LDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweGFiYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MzgsMHgwMCwweDNlLDB4MDQsMHgyMywweDgwIH0gfSwKLXsgIDE2LCAweGFiYjAsIDAsIHsweDA4LDB4ZWMsMHgxMiwweDM5LDB4NDQsMHhhNiwweDAwLDB4MjgsMHg4MSwweDA4LDB4ZTAsMHgwMCwweDM4LDB4MDgsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweGFiYzAsIDAsIHsweDNmLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhhOCwweDAwLDB4OGEsMHgwMiwweDJlLDB4ODAsMHgwYiwweGUwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGFiZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDgsMHgwMCwweDMxLDB4MDAsMHgyNCwweGQwIH0gfSwKLXsgIDE2LCAweGFiZTAsIDAsIHsweDA4LDB4M2UsMHgxMiwweGFlLDB4MDgsMHg4MSwweGEwLDB4MmMsMHhjMCwweDBhLDB4MzgsMHgwMCwweDRjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGFiZjAsIDAsIHsweDZlLDB4YzAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDZjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGFjMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTgsMHgwMCwweGI1LDB4MTAsMHgyNSwweGMwIH0gfSwKLXsgIDE2LCAweGFjMTAsIDAsIHsweDI4LDB4NjAsMHgxMiwweDkwLDB4MTAsMHhhNSwweDA4LDB4MmQsMHhjMiwweDA4LDB4NjQsMHgyMiwweDU4LDB4MTgsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweGFjMjAsIDAsIHsweDJkLDB4ODAsMHgwYiwweDc5LDB4MDIsMHhiZSwweGMwLDB4ODcsMHgwMSwweDZkLDB4YzAsMHgwYiwweDYwLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGFjMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGY1LDB4ODQsMHgzNSwweDIwIH0gfSwKLXsgIDE2LCAweGFjNDAsIDAsIHsweDhjLDB4MTgsMHgwMiwweDkyLDB4MTAsMHhjNSwweDgwLDB4M2QsMHg2MCwweDBlLDB4YzgsMHgwYiwweDVhLDB4MDgsMHg3NywweGYzIH0gfSwKLXsgIDE2LCAweGFjNTAsIDAsIHsweDNkLDB4YTAsMHgwZiwweGY4LDB4MDMsMHgxZSwweGIwLDB4ZTcsMHg4NSwweDNkLDB4ZTAsMHgwZiwweDc4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGFjNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGYxLDB4MDQsMHhiYSwweDAxIH0gfSwKLXsgIDE2LCAweGFjNzAsIDAsIHsweDBmLDB4YTAsMHg0MywweDYwLDB4MDksMHhlMSwweDAwLDB4MzgsMHg0MCwweDBlLDB4YTAsMHgwMywweGE4LDB4MTQsMHhmYiwweDIwIH0gfSwKLXsgIDE2LCAweGFjODAsIDAsIHsweDNhLDB4ODAsMHgwZiwweGI0LDB4MWIsMHg0YywweDgwLDB4ZmIsMHgyOSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MjMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGFjOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmEsMHgwMCwweGNkLDB4ODAsMHgzYiwweGUwIH0gfSwKLXsgIDE2LCAweGFjYTAsIDAsIHsweDRlLDB4ZjgsMHgwMywweGYyLDB4MDIsMHhkNCwweDgxLDB4M2IsMHhlMCwweDhlLDB4OTgsMHgwNywweDNlLDB4NDQsMHhlZiwweDkxIH0gfSwKLXsgIDE2LCAweGFjYjAsIDAsIHsweDNmLDB4ZTAsMHg0ZiwweGZjLDB4MDcsMHhlZSwweGQwLDB4Y2YsMHg5OCwweDMzLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGFjYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDAxLDB4OTgsMHgwMCwweDg1LDB4MTAsMHgyZCwweGM0IH0gfSwKLXsgIDE2LCAweGFjZDAsIDAsIHsweDBkLDB4MTEsMHgwMiwweGYwLDB4MDAsMHg4NSwweDIwLDB4MzEsMHhjNCwweDBiLDB4N2IsMHgwMCwweDM4LDB4NDAsMHhkNywweDEwIH0gfSwKLXsgIDE2LCAweGFjZTAsIDAsIHsweDJkLDB4ODAsMHgwYiwweDcwLDB4NjIsMHhmZSwweGUxLDB4ODcsMHgxNCwweDM5LDB4YzAsMHgwYiwweDYwLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGFjZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4YmMsMHg0MCwweGE1LDB4MDAsMHgyOSwweDQwIH0gfSwKLXsgIDE2LCAweGFkMDAsIDAsIHsweDBiLDB4NTAsMHg4MiwweGRjLDB4NDAsMHg4NCwweDA0LDB4MmQsMHhjMCwweDBiLDB4MTAsMHgwNiwweDU4LDB4NDQsMHhhNywweDEwIH0gfSwKLXsgIDE2LCAweGFkMTAsIDAsIHsweDJkLDB4ODAsMHgwYiwweDcxLDB4MDIsMHhkYywweDAwLDB4ODcsMHgwNCwweDIxLDB4YzIsMHgwYiwweDUwLDB4MDIsMHhjMCwweDEwIH0gfSwKLXsgIDE2LCAweGFkMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwYSwweGExLDB4MDEsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGFkMzAsIDAsIHsweDg5LDB4MTgsMHgwMiwweGMxLDB4MDAsMHhhMSwweDA4LDB4MjAsMHhjMCwweDBiLDB4MzQsMHgwNiwweDQwLDB4MDAsMHg5MywweDA1IH0gfSwKLXsgIDE2LCAweGFkNDAsIDAsIHsweDJjLDB4MTQsMHgwYiwweDNjLDB4ODYsMHhjZSwweDEwLDB4ODMsMHgwMSwweDI4LDB4ZjEsMHgwYiwweDE0LDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweGFkNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YTAsMHgwMCwweGVkLDB4MDAsMHgzYSwweGMwIH0gfSwKLXsgIDE2LCAweGFkNjAsIDAsIHsweDA3LDB4YmMsMHg2MywweGVkLDB4MDAsMHg4MSwweDQwLDB4M2UsMHhjMCwweDBlLDB4ODgsMHgwMywweDY0LDB4MDAsMHhlZiwweDAwIH0gfSwKLXsgIDE2LCAweGFkNzAsIDAsIHsweDdlLDB4NTAsMHgwZiwweGYwLDB4MDIsMHhmZCwweDQyLDB4Y2YsMHgwMCwweDcyLDB4YzAsMHgxZiwweGI0LDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGFkODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTgsMHgwMCwweDk5LDB4MDAsMHgzZSwweGUwIH0gfSwKLXsgIDE2LCAweGFkOTAsIDAsIHsweDRmLDB4YjQsMHg4MywweGVkLDB4OTAsMHgwOSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YTEsMHg4MywweGE4LDB4MDEsMHhlYiwweDAxIH0gfSwKLXsgIDE2LCAweGFkYTAsIDAsIHsweDNlLDB4MDAsMHgwZiwweGIxLDB4MTMsMHhlYywweDBjLDB4ZmIsMHgwMCwweDNhLDB4YzAsMHg1ZiwweDIwLDB4MjMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGFkYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjgsMHgwMCwweGZkLDB4MDQsMHgzZiwweGIwIH0gfSwKLXsgIDE2LCAweGFkYzAsIDAsIHsweDBkLDB4NjAsMHgwMywweDNlLDB4MDAsMHhjZCwweDAwLDB4MzMsMHhmMCwweDBmLDB4ZjIsMHgwMSwweGYwLDB4MDAsMHhmZiwweDAzIH0gfSwKLXsgIDE2LCAweGFkZDAsIDAsIHsweDNmLDB4MDMsMHgwZiwweGYwLDB4MDEsMHhmYywweDAwLDB4ZmIsMHgwMiwweDMzLDB4YzIsMHgwZiwweGYwLDB4ZTMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGFkZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmEsMHgwMCwweGI5LDB4MDIsMHgyZSwweGEwIH0gfSwKLXsgIDE2LCAweGFkZjAsIDAsIHsweDRhLDB4YWMsMHgwMiwweDBlLDB4ODAsMHhmOSwweGMwLDB4MzYsMHhlMSwweDBiLDB4YTAsMHgwMiwweDJhLDB4MDgsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGFlMDAsIDAsIHsweDJlLDB4MjAsMHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4ZWIsMHgwMCwweDIyLDB4YzAsMHg4YiwweGIwLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGFlMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MjMsMHgwMCwweGE5LDB4MDAsMHgyOCwweGMwIH0gfSwKLXsgIDE2LCAweGFlMjAsIDAsIHsweDA5LDB4YjIsMHgyMiwweDZjLDB4NDAsMHg4OSwweDg5LDB4MmEsMHhjMCwweDBiLDB4MTQsMHgwNiwweDI2LDB4MDAsMHhhYiwweDAyIH0gfSwKLXsgIDE2LCAweGFlMzAsIDAsIHsweDZlLDB4ZTAsMHgwOSwweGIwLDB4MDYsMHg2YywweDAwLDB4YjMsMHgwMiwweDIyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGFlNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDgsMHgwMCwweGIxLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGFlNTAsIDAsIHsweDBhLDB4MzAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4NjQsMHhjMCwweDBiLDB4MzIsMHgwYSwweDA4LDB4MDAsMHgzMywweDAwIH0gfSwKLXsgIDE2LCAweGFlNjAsIDAsIHsweDZjLDB4ODAsMHgwMiwweDMwLDB4NDYsMHhjYywweDE4LDB4YTMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDI4LDB4MDIsMHgwMiwweDExIH0gfSwKLXsgIDE2LCAweGFlNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4NjgsMHgwMCwweGU5LDB4MDAsMHgzOCwweGMxIH0gfSwKLXsgIDE2LCAweGFlODAsIDAsIHsweDBkLDB4YjEsMHgwYiwweDJjLDB4MDAsMHg4OSwweDAwLDB4M2EsMHhjMCwweDBiLDB4OTAsMHgwMywweDYwLDB4MDAsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweGFlOTAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGYwLDB4MDMsMHhmYywweDgwLDB4ZmYsMHgwMCwweDMyLDB4YzAsMHg4ZiwweDgwLDB4MGIsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGFlYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDExLDB4ZDgsMHgwMCwweGZkLDB4MDQsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGFlYjAsIDAsIHsweDJmLDB4ZjIsMHgwMywweGZjLDB4MTEsMHhlZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjQsMHg0MywweDcwLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGFlYzAsIDAsIHsweDNmLDB4MDAsMHg0NiwweGYwLDB4MDMsMHhmZCwweDAwLDB4ZWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGFlZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzZCwweGUwIH0gfSwKLXsgIDE2LCAweGFlZTAsIDAsIHsweDBjLDB4ZjksMHgxMywweGRlLDB4MDAsMHg3ZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZmMsMHgwMywweGJlLDB4NDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGFlZjAsIDAsIHsweDMzLDB4ZjAsMHgwZiwweGY4LDB4MDMsMHg3YywweDA0LDB4Y2MsMHg4MCwweDMzLDB4YTAsMHgwYywweGYwLDB4MGIsMHgzMCwweDAxIH0gfSwKLXsgIDE2LCAweGFmMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTAsMHgyMCwweDg4LDB4MDAsMHgyZSwweDIwIH0gfSwKLXsgIDE2LCAweGFmMTAsIDAsIHsweDA4LDB4ODIsMHgxMiwweGUwLDB4ODAsMHhhOCwweDgxLDB4MjIsMHgwMiwweDBiLDB4ODAsMHgwMiwweDIwLDB4ODAsMHhhOCwweDgwIH0gfSwKLXsgIDE2LCAweGFmMjAsIDAsIHsweDIyLDB4MDgsMHgwYiwweDgwLDB4MDIsMHgyYywweDAyLDB4ODgsMHgwNCwweGFhLDB4MjAsMHgwOCwweGIwLDB4MDIsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGFmMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZWMsMHgwMCwweGEzLDB4MDgsMHgyYywweDgwIH0gfSwKLXsgIDE2LCAweGFmNDAsIDAsIHsweDA4LDB4MzIsMHgwMiwweGM0LDB4MjAsMHhhMywweDAwLDB4MjgsMHg0MCwweDBiLDB4OTIsMHgwMiwweDg0LDB4MDAsMHhhOSwweDAxIH0gfSwKLXsgIDE2LCAweGFmNTAsIDAsIHsweDI4LDB4YzgsMHgxYiwweDEyLDB4ODIsMHhjYywweDQwLDB4YTgsMHgwMCwweDI0LDB4ZTAsMHgwYSwweDMwLDB4NDIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGFmNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4YTgsMHg4MCwweGE4LDB4MDIsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGFmNzAsIDAsIHsweDY4LDB4ODAsMHgxMCwweGM4LDB4MDAsMHhiOCwweDQwLDB4MmEsMHg5MCwweDBiLDB4YTAsMHgwMCwweDI4LDB4MDAsMHhhYSwweDA4IH0gfSwKLXsgIDE2LCAweGFmODAsIDAsIHsweDJhLDB4MDIsMHgwMywweDIwLDB4MDIsMHg4YywweDAwLDB4YTgsMHg4OCwweDJlLDB4MjAsMHgwYSwweGIwLDB4MDIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGFmOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZTgsMHgwNCwweGZhLDB4MDAsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweGFmYTAsIDAsIHsweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhlYiwweDAwLDB4M2EsMHhjMCwweDBmLDB4MjAsMHg1MywweGE4LDB4MDAsMHhlMywweDQwIH0gfSwKLXsgIDE2LCAweGFmYjAsIDAsIHsweDJhLDB4NDAsMHgwZiwweGEwLDB4MDMsMHg2YywweDAwLDB4YTgsMHg4MCwweDM0LDB4MjAsMHgxZSwweGIwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGFmYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjQsMHgwMCwweDlkLDB4OTEsMHgzZiwweDgwIH0gfSwKLXsgIDE2LCAweGFmZDAsIDAsIHsweDBmLDB4ZGEsMHgyMywweGY0LDB4MDAsMHhjYywweDIwLDB4MzcsMHgwMCwweDA3LDB4ZDAsMHgxMywweDc0LDB4MDAsMHhiYywweDAwIH0gfSwKLXsgIDE2LCAweGFmZTAsIDAsIHsweGI3LDB4ODAsMHgwYiwweGQwLDB4NDMsMHg3YywweDAwLDB4ZGMsMHgwNCwweDNiLDB4MDAsMHg2ZCwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGFmZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTgsMHgwMCwweGZhLDB4ODAsMHgzYSwweDAwIH0gfSwKLXsgIDE2LCAweGIwMDAsIDAsIHsweDJjLDB4YTAsMHgwYiwweDIwLDB4MDIsMHhjYiwweDYyLDB4M2UsMHg1MCwweDBlLDB4ODgsMHgwMywweDIwLDB4MDAsMHhkOSwweDEwIH0gfSwKLXsgIDE2LCAweGIwMTAsIDAsIHsweDNlLDB4NzAsMHg4YywweDgwLDB4MzMsMHhlYywweDgwLDB4ZDgsMHg0MCwweDNhLDB4MDIsMHgwZCwweGIwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGIwMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDAxLDB4MGMsMHgwMCwweDM5LDB4ODAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGIwMzAsIDAsIHsweDBjLDB4OWQsMHg4MiwweDJjLDB4MTAsMHhkMCwweDQwLDB4MmUsMHhhMCwweDA4LDB4YjgsMHgwMywweDRlLDB4MDIsMHg4YSwweDQwIH0gfSwKLXsgIDE2LCAweGIwNDAsIDAsIHsweDBlLDB4YTAsMHgwZCwweGIwLDB4MDMsMHgzZCwweDAwLDB4ZDAsMHg5MCwweDM2LDB4MTAsMHgwYiwweGYwLDB4MDIsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweGIwNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIxLDB4MDAsMHg2MCwweGMwIH0gfSwKLXsgIDE2LCAweGIwNjAsIDAsIHsweDhhLDB4MTgsMHgwMiwweDhjLDB4MDgsMHg4MCwweDQwLDB4MGMsMHhhMCwweDAyLDB4MzAsMHgwMiwweGNlLDB4MDAsMHg4MiwweDQ4IH0gfSwKLXsgIDE2LCAweGIwNzAsIDAsIHsweDJjLDB4ODAsMHgyYiwweDMwLDB4MDYsMHg4YywweDAwLDB4ODEsMHgwMiwweDIwLDB4OTAsMHgwOSwweGIwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGIwODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTIsMHgwMCwweGI2LDB4OTAsMHhhMywweDMwIH0gfSwKLXsgIDE2LCAweGIwOTAsIDAsIHsweDA4LDB4ZTgsMHgyMiwweGIyLDB4MTQsMHg4NywweDgwLDB4MmQsMHg2MCwweDA4LDB4NDksMHgxMiwweDEyLDB4NjEsMHg5NSwweDkwIH0gfSwKLXsgIDE2LCAweGIwYTAsIDAsIHsweDJkLDB4NjEsMHgwYSwweDQ4LDB4MTYsMHgxZSwweDgwLDB4OTUsMHg4MCwweDI1LDB4MjAsMHgwYiwweDc4LDB4MDIsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGIwYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgwMCwweGYxLDB4MDAsMHgyOCwweDhjIH0gfSwKLXsgIDE2LCAweGIwYzAsIDAsIHsweDhlLDB4MTAsMHgwMywweDg0LDB4ODAsMHg4MCwweDAwLDB4MmMsMHgwMiwweDBhLDB4OWEsMHgwMiwweGU0LDB4MDAsMHhkMCwweDAwIH0gfSwKLXsgIDE2LCAweGIwZDAsIDAsIHsweDNlLDB4ODAsMHgwYiwweDkxLDB4MDMsMHg4ZSwweDgwLDB4YzIsMHgwOCwweDM4LDB4ODAsMHgwZCwweGIwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGIwZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YjAsMHgwMCwweGY2LDB4MDAsMHgzZiwweDQ0IH0gfSwKLXsgIDE2LCAweGIwZjAsIDAsIHsweDBmLDB4MjEsMHgxMywweDc4LDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjMCwweDBmLDB4ZTAsMHgwMywweDc4LDB4MDAsMHhlZiwweDA0IH0gfSwKLXsgIDE2LCAweGIxMDAsIDAsIHsweDNmLDB4NDAsMHg4ZCwweGU4LDB4MDMsMHhkYywweDA0LDB4ZjYsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4ODMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGIxMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTgsMHgwMCwweGU4LDB4ODAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGIxMjAsIDAsIHsweDBmLDB4ODgsMHgwYiwweDI4LDB4MDAsMHg3OCwweDAyLDB4M2UsMHg4MCwweDBlLDB4MjgsMHgwMywweDI4LDB4MDAsMHhjYSwweDgwIH0gfSwKLXsgIDE2LCAweGIxMzAsIDAsIHsweDMyLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlYywweDAwLDB4YzksMHg4MCwweDMyLDB4ODAsMHgwZiwweGIwLDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGIxNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OGMsMHgwMCwweDhmLDB4MDAsMHhhMSwweDgwIH0gfSwKLXsgIDE2LCAweGIxNTAsIDAsIHsweDBiLDB4NzAsMHg0MiwweDE0LDB4MDAsMHhiNywweDAwLDB4MmQsMHg0MSwweDBiLDB4NTAsMHg0MiwweDE0LDB4MDAsMHhhNSwweDAwIH0gfSwKLXsgIDE2LCAweGIxNjAsIDAsIHsweGExLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhmYywweDgwLDB4YTUsMHgwMCwweDIxLDB4MDAsMHgwYiwweGYyLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGIxNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4YmEsMHgwMCwweGE0LDB4ODAsMHgyOSwweDMwIH0gfSwKLXsgIDE2LCAweGIxODAsIDAsIHsweDRiLDB4NDgsMHgwNiwweDUyLDB4MDgsMHhiNCwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHg0MiwweDMyLDB4MDAsMHg4NCwweDgwIH0gfSwKLXsgIDE2LCAweGIxOTAsIDAsIHsweDIxLDB4MjAsMHgwYiwweDQ4LDB4MTIsMHhkZSwweDQwLDB4ODYsMHg4MSwweDI5LDB4YTAsMHgwYiwweDc4LDB4MGEsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGIxYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDUsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweGIxYjAsIDAsIHsweDBiLDB4MzQsMHgwMiwweDZjLDB4MTAsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzYsMHg0YSwweDBkLDB4MGQsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGIxYzAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDM0LDB4ODIsMHhjYywweDAyLDB4YTIsMHgwMCwweDI4LDB4MDAsMHgwYiwweDMwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGIxZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTksMHgyMCwweGVhLDB4NDAsMHgzMCwweGEwIH0gfSwKLXsgIDE2LCAweGIxZTAsIDAsIHsweDA3LDB4YTAsMHg0MywweDY5LDB4NDAsMHhmYSwweDAwLDB4M2MsMHg4MCwweDBmLDB4YTAsMHgwMywweDA4LDB4NDAsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGIxZjAsIDAsIHsweDMwLDB4YTAsMHgwZiwweGE0LDB4MDMsMHhlOCwweDAwLDB4Y2UsMHgwMCwweDNiLDB4OTgsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGIyMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZDIsMHgwMCwweGZjLDB4MDgsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweGIyMTAsIDAsIHsweDBiLDB4YzIsMHgwMywweGIwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDBmLDB4YzAsMHgwMywweGYwLDB4MDAsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweGIyMjAsIDAsIHsweDNmLDB4MDQsMHgwZiwweGMwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweGI2LDB4MDIsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGIyMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDY4IH0gfSwKLXsgIDE2LCAweGIyNDAsIDAsIHsweDRjLDB4OTEsMHgwMSwweGU0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0MCwweDJjLDB4OTIsMHgwMywweGU0LDB4MDIsMHhjOSwweGEwIH0gfSwKLXsgIDE2LCAweGIyNTAsIDAsIHsweDNlLDB4NzAsMHgwZSwweDkwLDB4MDMsMHhjNiwweDQyLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGIyNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODYsMHgwZSwweDYwIH0gfSwKLXsgIDE2LCAweGIyNzAsIDAsIHsweDA4LDB4OTgsMHgwMiwweGU0LDB4MDgsMHg4OSwweDEwLDB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg4OSwweDBjIH0gfSwKLXsgIDE2LCAweGIyODAsIDAsIHsweDJlLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhlNiwweDg4LDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhMCwweDAwIH0gfSwKLXsgIDE2LCAweGIyOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDlkLDB4MTAsMHgyZiwweDQwIH0gfSwKLXsgIDE2LCAweGIyYTAsIDAsIHsweDI4LDB4ZDAsMHgwNiwweGY0LDB4MDIsMHhhZCwweDAwLDB4MmYsMHg2MCwweDA4LDB4ZDAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDAwIH0gfSwKLXsgIDE2LCAweGIyYjAsIDAsIHsweDJmLDB4NDAsMHgwYSwweGQwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NjAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGIyYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MzQsMHgwMCwweDg1LDB4MDAsMHgyZCwweDQwIH0gfSwKLXsgIDE2LCAweGIyZDAsIDAsIHsweDA4LDB4NTgsMHgwMiwweGQ0LDB4MDAsMHhhNSwweDAyLDB4MmQsMHg0MCwweDA4LDB4NTAsMHgwMCwweGQ0LDB4MDAsMHg4NSwweDAwIH0gfSwKLXsgIDE2LCAweGIyZTAsIDAsIHsweDJkLDB4NDAsMHgwOCwweDU0LDB4MDIsMHhjNCwweDgwLDB4ODEsMHgwMCwweDJjLDB4NjAsMHgwYiwweDE0LDB4MDIsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweGIyZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGQ4LDB4NTIsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGIzMDAsIDAsIHsweDBjLDB4MDUsMHgwMywweGUxLDB4NDAsMHhlOCwweDA0LDB4M2UsMHgxNCwweDBjLDB4ODUsMHgwMywweGUxLDB4NDAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGIzMTAsIDAsIHsweDNlLDB4MTQsMHgwZSwweGMwLDB4MDMsMHhlMCwweDAwLDB4YzAsMHgwMiwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MjMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGIzMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHgwMCwweGY5LDB4MDEsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGIzMzAsIDAsIHsweDRmLDB4OTAsMHgxMywweGU0LDB4MDAsMHhkOSwweDAwLDB4MWUsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4MTAsMHhmMSwweDAwIH0gfSwKLXsgIDE2LCAweGIzNDAsIDAsIHsweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweGUwLDB4ZmQsMHgyOCwweDNmLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGIzNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YTQsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGIzNjAsIDAsIHsweDRkLDB4NTAsMHgwMiwweGU0LDB4MDAsMHg5NSwweDA0LDB4MzMsMHg0MCwweDI4LDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGIzNzAsIDAsIHsweDMzLDB4NDAsMHgwZiwweDkxLDB4MDMsMHgzNCwweDAwLDB4Y2QsMHg0MCwweDMzLDB4NDAsMHgwZiwweDk4LDB4ODEsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGIzODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgxMCwweGI4LDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGIzOTAsIDAsIHsweDBiLDB4ODAsMHgwMiwweGUwLDB4MTAsMHhiOCwweDAwLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGIzYTAsIDAsIHsweDIyLDB4MDAsMHgwYiwweDg4LDB4MDMsMHhjMiwweDgwLDB4ODgsMHg4MCwweDIyLDB4MDAsMHgwYiwweDhjLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGIzYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGIzYzAsIDAsIHsweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiYiwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM0LDB4MDEsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGIzZDAsIDAsIHsweDIwLDB4NDAsMHgxYiwweDkwLDB4MDIsMHgwNCwweDIyLDB4ODksMHgwMCwweDIwLDB4NjAsMHgwYiwweDEyLDB4ODIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGIzZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHg0NCwweGI5LDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGIzZjAsIDAsIHsweDRiLDB4OTAsMHgwMiwweGU0LDB4MTAsMHhiOSwweDAyLDB4MDIsMHg0MCwweDA4LDB4OTEsMHg0MiwweGU0LDB4MDAsMHhiOSwweDgwIH0gfSwKLXsgIDE2LCAweGI0MDAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkyLDB4MDIsMHhjNCwweDAwLDB4OTksMHg0MCwweDIyLDB4NDAsMHg0YiwweDkwLDB4MTIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGI0MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTYsMHgwMCwweGI5LDB4MDEsMHgzZSwweDU4IH0gfSwKLXsgIDE2LCAweGI0MjAsIDAsIHsweDBkLDB4OTAsMHgwMywweGU2LDB4MDAsMHhkMSwweDAwLDB4MzIsMHg2MCwweDBjLDB4OTgsMHgwMiwweGU2LDB4NDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGI0MzAsIDAsIHsweGIyLDB4NDAsMHgwZiwweDE4LDB4MDMsMHgyNCwweDAwLDB4YzksMHg4MCwweDMyLDB4NTAsMHgwZiwweDkwLDB4MjMsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGI0NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQyIH0gfSwKLXsgIDE2LCAweGI0NTAsIDAsIHsweDBiLDB4OTAsMHgwMywweGU3LDB4MDgsMHhmOSwweDAwLDB4YmUsMHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGI0NjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhhNCwweDAwLDB4ZTksMHhhMCwweGJlLDB4NDAsMHgwZiwweDEwLDB4MGIsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGI0NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDEsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGI0ODAsIDAsIHsweDBmLDB4ODAsMHg4YiwweDIwLDB4MDAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCwweDA4IH0gfSwKLXsgIDE2LCAweGI0OTAsIDAsIHsweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDAwLDB4ZDgsMHg0MCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MTMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGI0YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyZiwweDkxIH0gfSwKLXsgIDE2LCAweGI0YjAsIDAsIHsweDBiLDB4ZWUsMHgwMiwweDI4LDB4MDEsMHhiZSwweDAwLDB4MjAsMHg4MCwweDBiLDB4YTAsMHgwMiwweGVhLDB4ODAsMHhiNiwweDQ4IH0gfSwKLXsgIDE2LCAweGI0YzAsIDAsIHsweDIyLDB4ODAsMHgwZCwweGEwLDB4MDIsMHhmYSwweDAyLDB4ODYsMHg0MSwweGEzLDB4YTYsMHgwYiwweGEwLDB4MDMsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGI0ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDkzLDB4ODAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGI0ZTAsIDAsIHsweDBiLDB4MzAsMHgwMiwweDBjLDB4MTAsMHhiMywweDAwLDB4MjgsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGI0ZjAsIDAsIHsweDI4LDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjNiwweDAxLDB4ODMsMHg2MCwweDIwLDB4NzAsMHgwYiwweDMwLDB4MGEsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGI1MDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MmUsMHg4OCwweDg1LDB4MDgsMHgyZCwweDgwIH0gfSwKLXsgIDE2LCAweGI1MTAsIDAsIHsweDRiLDB4ZjgsMHgwNiwweDFjLDB4ODAsMHhiNywweDAwLDB4MjEsMHhjMCwweDBiLDB4NTAsMHgwMiwweGQ0LDB4MDAsMHhiNiwweDAwIH0gfSwKLXsgIDE2LCAweGI1MjAsIDAsIHsweDI5LDB4NjAsMHgwOSwweDcwLDB4MDIsMHhkMCwweGEwLDB4OGQsMHgwMCwweDIxLDB4NDAsMHgwYiwweDMyLDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGI1MzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGQ1LDB4ODAsMHgzZCwweGUwIH0gfSwKLXsgIDE2LCAweGI1NDAsIDAsIHsweDhmLDB4NzgsMHgwMywweDFlLDB4ODQsMHhiNywweDgyLDB4M2QsMHg2MCwweDBmLDB4NTksMHgwMywweGRlLDB4MDAsMHhmNywweDgwIH0gfSwKLXsgIDE2LCAweGI1NTAsIDAsIHsweDI5LDB4NjAsMHgxNSwweDc4LDB4MDMsMHhkZSwweDAwLDB4YzcsMHg4MCwweDMxLDB4NjAsMHgwZiwweDdjLDB4MDMsMHg2YSwweDAyIH0gfSwKLXsgIDE2LCAweGI1NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHg0MCwweGU5LDB4MDAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGI1NzAsIDAsIHsweDBmLDB4YTAsMHgwMywweGVkLDB4MzAsMHhmYiwweDAwLDB4MzYsMHhjMSwweDBmLDB4OTYsMHgwMywweGU0LDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGI1ODAsIDAsIHsweDM0LDB4NDAsMHgwZiwweGI3LDB4ODMsMHhlYywweDQwLDB4MjEsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGI1OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4ODEsMHgzMywweGUwIH0gfSwKLXsgIDE2LCAweGI1YTAsIDAsIHsweDBmLDB4ZjksMHgwMywweGRlLDB4MjAsMHhjZiwweDgxLDB4M2YsMHhlMCwweDA3LDB4NzgsMHgwMywweDNlLDB4MDAsMHhmZiwweDgwIH0gfSwKLXsgIDE2LCAweGI1YjAsIDAsIHsweDNmLDB4ZTAsMHgwNCwweGY4LDB4MTMsMHhmZSwweDAyLDB4ZGUsMHg4MCwweDMzLDB4NjAsMHgwZiwweGY4LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGI1YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyMSwweGM0IH0gfSwKLXsgIDE2LCAweGI1ZDAsIDAsIHsweDBiLDB4NWEsMHgwMiwweGRjLDB4NDgsMHg4NiwweDUwLDB4MmQsMHhjMCwweDBiLDB4MzEsMHgwMiwweDk0LDB4NjAsMHhiNCwweDE4IH0gfSwKLXsgIDE2LCAweGI1ZTAsIDAsIHsweDJkLDB4NDAsMHg0OCwweDcwLDB4MDIsMHhlOCwweDAwLDB4YTUsMHgxMCwweDIxLDB4NDAsMHgwYiwweDcxLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGI1ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGJkLDB4MDAsMHgyMSwweDQyIH0gfSwKLXsgIDE2LCAweGI2MDAsIDAsIHsweDBiLDB4NzAsMHgwMiwweGZjLDB4MDIsMHg4NSwweDAwLDB4MjUsMHg0MCwweDBiLDB4NTAsMHgwMiwweDljLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweGI2MTAsIDAsIHsweDJmLDB4NDAsMHgyOCwweDcxLDB4MDIsMHhkYywweDAwLDB4YTYsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGI2MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4NmQsMHg4MCwweGIxLDB4MjAsMHhhMCwweDUwIH0gfSwKLXsgIDE2LCAweGI2MzAsIDAsIHsweDBiLDB4YjIsMHgwNiwweGNlLDB4MDAsMHhhMCwweDM0LDB4MmUsMHhmMCwweDBiLDB4MTgsMHgwMiwweDg1LDB4MjAsMHhiMywweDRhIH0gfSwKLXsgIDE2LCAweGI2NDAsIDAsIHsweDJjLDB4NTQsMHg4OCwweDM4LDB4MDIsMHhjYywweDEwLDB4YTEsMHgwMCwweDIwLDB4YjAsMHgwYiwweDMwLDB4MDIsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGI2NTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmUsMHg4MCwweGYzLDB4MDgsMHgxMCwweDU0IH0gfSwKLXsgIDE2LCAweGI2NjAsIDAsIHsweDBiLDB4ODgsMHgxMywweGZmLDB4MDAsMHhjMCwweDgwLDB4M2UsMHg2NCwweDBmLDB4YjQsMHg4MywweDA3LDB4MDAsMHhmOSwweGMwIH0gfSwKLXsgIDE2LCAweGI2NzAsIDAsIHsweDNlLDB4ZjAsMHgwYywweGZjLDB4MTMsMHhmNCwweDAwLDB4ZWEsMHgwMCwweDMyLDB4NzAsMHgwZiwweGYwLDB4MGIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGI2ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweDEwIH0gfSwKLXsgIDE2LCAweGI2OTAsIDAsIHsweDA3LDB4OTEsMHgwMywweGVjLDB4YzAsMHg1OCwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGI2YTAsIDAsIHsweDNlLDB4YzAsMHg4ZiwweGIzLDB4MDMsMHhlMCwweDAwLDB4YmIsMHgwMCwweGJlLDB4NDQsMHgwZiwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGI2YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMiwweGNkLDB4MDQsMHgzMywweGUwIH0gfSwKLXsgIDE2LCAweGI2YzAsIDAsIHsweDBjLDB4YzAsMHgwMywweDNjLDB4MDgsMHhmZSwweDAwLDB4MzMsMHg2MCwweDJjLDB4ZDAsMHgwMiwweGI0LDB4ODAsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGI2ZDAsIDAsIHsweDNmLDB4NTIsMHgwNywweGYwLDB4MTMsMHhmYywweDAwLDB4Y2UsMHgxMCwweDMzLDB4NDIsMHgwYywweGIwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweGI2ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgwMCwweDg5LDB4MDAsMHgyYSwweGIwIH0gfSwKLXsgIDE2LCAweGI2ZjAsIDAsIHsweDA4LDB4ODgsMHgwMiwweDJjLDB4MDAsMHhiYSwweDAwLDB4MzYsMHg0NCwweDA4LDB4OTAsMHgwMCwweDI2LDB4MDAsMHhkYiwweGMwIH0gfSwKLXsgIDE2LCAweGI3MDAsIDAsIHsweDJlLDB4NDAsMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4ODMsMHhjMCwweDI4LDB4NDAsMHgwYSwweGIwLDB4MDIsMHhlMCwweDQwIH0gfSwKLXsgIDE2LCAweGI3MTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDA4IH0gfSwKLXsgIDE2LCAweGI3MjAsIDAsIHsweDFhLDB4YTIsMHgwMiwweDJjLDB4MTAsMHhiOSwweDIwLDB4MjIsMHg0MCwweDA4LDB4MzAsMHgwMiwweDJjLDB4MDQsMHhhYSwweDU0IH0gfSwKLXsgIDE2LCAweGI3MzAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGIwLDB4MTIsMHhjYywweDAwLDB4OGIsMHgwOCwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGI3NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4MDQsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGI3NTAsIDAsIHsweDBhLDB4MDgsMHg4MiwweDBjLDB4MDAsMHhiOCwweDAwLDB4NjQsMHg0MCwweDA4LDB4MzAsMHgwMiwweGE0LDB4MDAsMHhiMCwweDAwIH0gfSwKLXsgIDE2LCAweGI3NjAsIDAsIHsweDJjLDB4YzAsMHg4YiwweDMwLDB4MTAsMHhjOCwweDAyLDB4OGIsMHgwMCwweDJhLDB4NDAsMHgwYSwweDMwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGI3NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGM5LDB4MDAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGI3ODAsIDAsIHsweDFhLDB4ODIsMHgwMywweDNjLDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4ZDEsMHgwMywweGFjLDB4MDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweGI3OTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhlZCwweDAwLDB4YzMsMHgwMCwweDMyLDB4YzAsMHg4YywweGIwLDB4MDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweGI3YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZmMsMHgwMCwweGY1LDB4MDAsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweGI3YjAsIDAsIHsweDBkLDB4ODAsMHg0YiwweGZjLDB4MDAsMHg3YywweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDIsMHgwYiwweDc0LDB4MDAsMHhkZiwweDAwIH0gfSwKLXsgIDE2LCAweGI3YzAsIDAsIHsweDFkLDB4NDAsMHg4ZiwweGYwLDB4MDMsMHhmYywweGEwLDB4ZmYsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGI3ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGRmLDB4ODQsMHgzYiwweGUwIH0gfSwKLXsgIDE2LCAweGI3ZTAsIDAsIHsweDBmLDB4ZjgsMHgwYiwweDNlLDB4MDAsMHhlYywweDgwLDB4MzMsMHhlMSwweDBjLDB4MzAsMHgwMywweDNjLDB4ODAsMHhjZiwweDQ4IH0gfSwKLXsgIDE2LCAweGI3ZjAsIDAsIHsweDM3LDB4YzAsMHgwZSwweDQwLDB4MDMsMHhlMCwweGMwLDB4YzcsMHg5MSwweGIzLDB4MDQsMHgwYywweGYwLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGI4MDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWYsMHgwNCwweDhiLDB4ODAsMHgyMiwweDQxIH0gfSwKLXsgIDE2LCAweGI4MTAsIDAsIHsweDBiLDB4YjAsMHg4MiwweDJlLDB4MDAsMHg4OCwweDgwLDB4YTIsMHhlMCwweDBhLDB4YTIsMHg5MiwweGFkLDB4ODAsMHg4NywweDQyIH0gfSwKLXsgIDE2LCAweGI4MjAsIDAsIHsweDIzLDB4ZDgsMHg4YSwweGFkLDB4MDIsMHhlMCwweGMwLDB4OGIsMHgwMCwweDIwLDB4NGMsMHg0OCwweGE0LDB4MDIsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGI4MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHg1OCwweGJiLDB4MDAsMHgyOCwweDgwIH0gfSwKLXsgIDE2LCAweGI4NDAsIDAsIHsweDBiLDB4YjIsMHg0MiwweDI0LDB4MDAsMHhhOCwweDAwLDB4MmEsMHhjMCwweDBhLDB4MTAsMHgwMiwweDA0LDB4NjAsMHhhMywweDIwIH0gfSwKLXsgIDE2LCAweGI4NTAsIDAsIHsweDI0LDB4ZDIsMHgwOCwweDAwLDB4NDIsMHg4YywweDgzLDB4OWIsMHgwMSwweDIwLDB4NDksMHgwOCwweDMzLDB4YzIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGI4NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwMCwweGFiLDB4ODgsMHgyMiwweGEwIH0gfSwKLXsgIDE2LCAweGI4NzAsIDAsIHsweDBiLDB4YjgsMHgwMiwweDI2LDB4MGMsMHhhOCwweDAwLDB4MmEsMHhjMCwweDBhLDB4OTIsMHgwMiwweGE0LDB4MDAsMHhhYiwweDA2IH0gfSwKLXsgIDE2LCAweGI4ODAsIDAsIHsweDIyLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlOCwweDAwLDB4OWIsMHgwMCwweDAyLDB4NDAsMHgwOCwweGEwLDB4NDIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGI4OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGQzLDB4ODAsMHgzYSwweGUwIH0gfSwKLXsgIDE2LCAweGI4YTAsIDAsIHsweDBmLDB4MTgsMHgwMSwweDA2LDB4MDAsMHhlOCwweDMwLDB4MzgsMHg2NiwweDBlLDB4YjgsMHgwMywweDJhLDB4NDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweGI4YjAsIDAsIHsweDM2LDB4YzEsMHgwZSwweDk2LDB4MDMsMHhlMiwweDgwLDB4ZGEsMHgwOCwweDMyLDB4ODAsMHgyYywweGJiLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGI4YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4OWMsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGI4ZDAsIDAsIHsweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhkYywweDgwLDB4MzcsMHg2MCwweDBmLDB4ZTgsMHgwMywweGZhLDB4MDAsMHhkZiwweDAxIH0gfSwKLXsgIDE2LCAweGI4ZTAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGMwLDB4NDMsMHhlNiwweDRjLDB4ZWYsMHhhMCwweDNmLDB4NDQsMHgwZiwweGEwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGI4ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHg0MCwweGRiLDB4MDAsMHgzNiwweDgwIH0gfSwKLXsgIDE2LCAweGI5MDAsIDAsIHsweDBjLDB4OTgsMHgwMywweDI2LDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBlLDB4MTgsMHgwMywweDg0LDB4MDIsMHhlMywweDAxIH0gfSwKLXsgIDE2LCAweGI5MTAsIDAsIHsweDM4LDB4YzEsMHgwZSwweGI0LDB4MDMsMHhhYywweDgwLDB4Y2EsMHgxOCwweDNhLDB4ZDAsMHgyYywweDMwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGI5MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4M2YsMHg0MCwweGI5LDB4ODgsMHgyZSwweDgwIH0gfSwKLXsgIDE2LCAweGI5MzAsIDAsIHsweDA4LDB4YmMsMHgwMiwweGEzLDB4MDAsMHhiMCwweDAwLDB4MGUsMHhjMCwweDA4LDB4YjAsMHgwNiwweDIwLDB4MDAsMHg4ZiwweDA0IH0gfSwKLXsgIDE2LCAweGI5NDAsIDAsIHsweDIzLDB4YzEsMHgwOCwweGI5LDB4MTIsMHgyZiwweDAwLDB4ODMsMHg4MCwweDM2LDB4NDAsMHgwOCwweGFkLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGI5NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIyLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGI5NjAsIDAsIHsweDA5LDB4MzIsMHgwMiwweDg0LDB4MDAsMHgzMywweDAwLDB4MmMsMHhiMiwweDBhLDB4MzYsMHgxMiwweDhjLDB4MDgsMHg5MywweDA1IH0gfSwKLXsgIDE2LCAweGI5NzAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDE4LDB4MDIsMHhlZCwweDAwLDB4OTEsMHg4MCwweDZhLDB4MDAsMHgwOCwweDEwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGI5ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweGI5OTAsIDAsIHsweDA5LDB4NzgsMHgwMiwweDk3LDB4NDAsMHhiNCwweDgwLDB4MmYsMHhhMCwweDA4LDB4ZTgsMHgwMiwweDBlLDB4NDAsMHg5NywweDgyIH0gfSwKLXsgIDE2LCAweGI5YTAsIDAsIHsweDIxLDB4ZTAsMHg5OCwweDY4LDB4ODIsMHgxYSwweDE4LDB4OWQsMHg5MCwweDJkLDB4YTEsMHgxOCwweDU4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGI5YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHhjMCwweGYzLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGI5YzAsIDAsIHsweDBkLDB4YjAsMHg0MywweDg0LDB4NDAsMHhmMCwweDAwLDB4M2MsMHg4MiwweDBlLDB4MzgsMHgxMiwweDhjLDB4NDQsMHhmMywweDMwIH0gfSwKLXsgIDE2LCAweGI5ZDAsIDAsIHsweGJhLDB4YzEsMHgxZSwweDEwLDB4NDcsMHg4ZSwweDIyLDB4ZDEsMHgxMCwweDM4LDB4MTgsMHgwYywweDMwLDB4ODMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGI5ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHg0MCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGI5ZjAsIDAsIHsweDBlLDB4ZTAsMHgwMywweGY0LDB4NDAsMHhmYywweDAwLDB4M2QsMHhjNCwweDBmLDB4ZDAsMHgwMSwweGY0LDB4NDEsMHhlZiwweDE4IH0gfSwKLXsgIDE2LCAweGJhMDAsIDAsIHsweDNmLDB4YzQsMHgxZiwweGYwLDB4MDMsMHhmOCwweDQ4LDB4ZWYsMHgxNCwweDMzLDB4ODAsMHgwZiwweGMxLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGJhMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZmMsMHg0MCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGJhMjAsIDAsIHsweDBmLDB4OTgsMHgwMywweDI0LDB4MDAsMHhjYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjAsMHgwMywweGE4LDB4MDAsMHhkYiwweDI4IH0gfSwKLXsgIDE2LCAweGJhMzAsIDAsIHsweDNlLDB4YzQsMHgxZiwweDkwLDB4MjMsMHhlYywweDAwLDB4Y2EsMHgwMCwweDMyLDB4ZTAsMHgwYywweDkwLDB4MDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweGJhNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHg4MCwweGI3LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGJhNTAsIDAsIHsweDRiLDB4NTAsMHg1MiwweDE0LDB4MDAsMHhkNCwweDAxLDB4MmQsMHg4MCwweDBiLDB4NjAsMHgwMiwweGQ4LDB4MDAsMHhhNywweDIwIH0gfSwKLXsgIDE2LCAweGJhNjAsIDAsIHsweDJkLDB4YzUsMHgwYiwweDQwLDB4MTYsMHhkYywweDAwLDB4ODQsMHgwMCwweDIzLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweGJhNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHg4MCwweGI3LDB4ODAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweGJhODAsIDAsIHsweDBiLDB4NzgsMHgwYSwweDk2LDB4MDAsMHg5NCwweDgwLDB4MmQsMHg2MCwweDFiLDB4NzgsMHgwNiwweGQyLDB4MDAsMHhhNywweDgwIH0gfSwKLXsgIDE2LCAweGJhOTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweDc4LDB4MjIsMHhkZSwweDAwLDB4ODcsMHg4MiwweDIxLDB4ZTAsMHgwOCwweDU4LDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGJhYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4ZTQsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGJhYjAsIDAsIHsweDFiLDB4MjEsMHgwMiwweDgxLDB4MDAsMHg5MCwweDAwLDB4MmMsMHhjOCwweDBiLDB4MzksMHgwMiwweGNlLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGJhYzAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDAwLDB4OGIsMHgyMCwweDIwLDB4ZjAsMHgwOCwweGIyLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweGJhZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGZlLDB4YTAsMHgzZiwweDgyIH0gfSwKLXsgIDE2LCAweGJhZTAsIDAsIHsweDBmLDB4ZTgsMHgwMywweDk4LDB4MzAsMHhkNiwweDAwLDB4M2YsMHhhMCwweDBmLDB4ZTAsMHgwMywweGJhLDB4YzAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGJhZjAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGVjLDB4MzMsMHhmOCwweDAyLDB4Y2UsMHgwMCwweGIzLDB4YjgsMHgyYywweGVjLDB4ODMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweGJiMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgxOCwweGY4LDB4NDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGJiMTAsIDAsIHsweDBmLDB4ODAsMHgwMiwweDYwLDB4ODQsMHhmOCwweDA1LDB4MmUsMHgwNCwweDhmLDB4ODAsMHg0MSwweGUwLDB4MDAsMHg3OCwweDAyIH0gfSwKLXsgIDE2LCAweGJiMjAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgxLDB4ODMsMHhlMCwweDIwLDB4ZjgsMHgwMCwweGJlLDB4MDIsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGJiMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTYsMHgxOCwweGY5LDB4MjAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGJiNDAsIDAsIHsweDBmLDB4OWMsMHgwMywweGU0LDB4NDAsMHhjOSwweDAwLDB4MzIsMHg2MSwweDBjLDB4OTAsMHgxMywweGM0LDB4MDgsMHhjOSwweDAxIH0gfSwKLXsgIDE2LCAweGJiNTAsIDAsIHsweDNlLDB4NDEsMHgwZiwweDE4LDB4MDMsMHgyNCwweDAwLDB4YzksMHhhMCwweDMyLDB4NDAsMHgwZiwweDk4LDB4NDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGJiNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjUsMHgwMCwweGIxLDB4YzAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGJiNzAsIDAsIHsweDBiLDB4OWMsMHgwMiwweGU3LDB4MTAsMHg4OSwweDAwLDB4MjgsMHg0NCwweDA4LDB4OTQsMHgyMiwweGU0LDB4MTAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweGJiODAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDlmLDB4MjIsMHgyNiwweDYwLDB4ODksMHg4MCwweDIyLDB4NDAsMHgwYiwweDkxLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGJiOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHg4MCwweGI5LDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGJiYTAsIDAsIHsweDRiLDB4YjQsMHgwMiwweGU0LDB4MjAsMHg4OSwweDIwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweGVjLDB4MDAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweGJiYjAsIDAsIHsweDJlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHgwNCwweDAwLDB4ODksMHg0MCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGJiYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweGIxLDB4MDQsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGJiZDAsIDAsIHsweDhiLDB4MTAsMHgwMiwweGU0LDB4MDUsMHg4MSwweDAwLDB4MjgsMHg0MCwweDI4LDB4MTIsMHgxMiwweGM0LDB4ODIsMHg4MSwweDIwIH0gfSwKLXsgIDE2LCAweGJiZTAsIDAsIHsweDJjLDB4NDgsMHgwYiwweDEyLDB4MGEsMHgwNCwweDgyLDB4ODEsMHgwMCwweDIwLDB4NDgsMHgwYiwweDEyLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGJiZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjgsMHhhMCwweGZhLDB4MDIsMHgzZSwweDE0IH0gfSwKLXsgIDE2LCAweGJjMDAsIDAsIHsweDBmLDB4ODUsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODUsMHgwMywweGMxLDB4NDAsMHhjOCwweDUzIH0gfSwKLXsgIDE2LCAweGJjMTAsIDAsIHsweDNlLDB4MTQsMHgwZiwweDgwLDB4MDMsMHgwMSwweDQ4LDB4YzAsMHg1MCwweGIyLDB4MTQsMHgwZiwweDg1LDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGJjMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZTQsMHgwMCwweGZkLDB4MDAsMHhiZiwweDQwIH0gfSwKLXsgIDE2LCAweGJjMzAsIDAsIHsweDBmLDB4NTAsMHgxMywweGQ0LDB4MDIsMHhmZCwweDAwLDB4MmYsMHhjMCwweDBmLDB4ZDEsMHgwMywweGY0LDB4NDAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGJjNDAsIDAsIHsweDNlLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhmNCwweDQwLDB4ZmYsMHgwMCwweGJmLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGJjNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHhhMCwweGZkLDB4MDEsMHgzZSwweDQ0IH0gfSwKLXsgIDE2LCAweGJjNjAsIDAsIHsweDBmLDB4ZDEsMHgwMywweGQ0LDB4MDAsMHhjNSwweDAwLDB4MzMsMHg0MSwweDBmLDB4ZGIsMHgwMywweDI3LDB4MjAsMHhkOSwweGUwIH0gfSwKLXsgIDE2LCAweGJjNzAsIDAsIHsweGIyLDB4NzAsMHgwZCwweGRhLDB4ODMsMHhmNiwweDQwLDB4Y2YsMHgxMCwweDMyLDB4NzgsMHgyZCwweGRhLDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGJjODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4MDAsMHgyZSwweDI4IH0gfSwKLXsgIDE2LCAweGJjOTAsIDAsIHsweDBiLDB4ODgsMHg0MiwweGUwLDB4MTAsMHhkOCwweDAwLDB4MjIsMHgwMCwweDBiLDB4OGMsMHgwYSwweDIzLDB4MDAsMHg4OCwweGMwIH0gfSwKLXsgIDE2LCAweGJjYTAsIDAsIHsweDIyLDB4MjgsMHgwOCwweDg0LDB4MDIsMHhjMiwweDgwLDB4ODAsMHhhMCwweDIyLDB4MzAsMHg0OCwweGFhLDB4ODIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGJjYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGJjYzAsIDAsIHsweDhiLDB4MTIsMHgwMiwweGM0LDB4MDAsMHg5OSwweDAyLDB4MjgsMHg0MCwweDhiLDB4MTYsMHgwMiwweDg0LDB4ODEsMHg5MSwweDMwIH0gfSwKLXsgIDE2LCAweGJjZDAsIDAsIHsweDIwLDB4NTgsMHgwOSwweDEwLDB4MDIsMHhjNSwweDAwLDB4ODEsMHgwMCwweDY0LDB4NGQsMHgwOCwweDM0LDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGJjZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YWMsMHgwYywweGI5LDB4MDQsMHgyZSwweDQ4IH0gfSwKLXsgIDE2LCAweGJjZjAsIDAsIHsweDBiLDB4OTQsMHgwNiwweGU0LDB4MDAsMHg5OSwweDQwLDB4YWEsMHg0MCwweDBiLDB4OTIsMHgyMiwweGE0LDB4MDAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweGJkMDAsIDAsIHsweDYwLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ODksMHg4MCwweGE2LDB4NTAsMHgwOCwweDkyLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGJkMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4OTgsMHgzZSwweDQ4IH0gfSwKLXsgIDE2LCAweGJkMjAsIDAsIHsweDBmLDB4OTgsMHgwMywweGU1LDB4MjAsMHhkOSwweDAwLDB4M2EsMHg2NCwweDBmLDB4OTQsMHg4MywweGE0LDB4YzAsMHhkOSwweDAyIH0gfSwKLXsgIDE2LCAweGJkMzAsIDAsIHsweDcyLDB4NDAsMHg0ZCwweDkwLDB4NDIsMHhlNCwweDgyLDB4YzksMHg0MCwweDM2LDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGJkNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YWMsMHgyOCwweGY5LDB4ODgsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGJkNTAsIDAsIHsweDBmLDB4OTksMHgxMywweGU3LDB4MDAsMHhmOSwweGMwLDB4MzYsMHg2MCwweDBmLDB4OTAsMHgwMywweDY2LDB4MDAsMHhmMSwweDAwIH0gfSwKLXsgIDE2LCAweGJkNjAsIDAsIHsweDdlLDB4NDAsMHgwZiwweDk5LDB4MDcsMHhlNCwweDYwLDB4ZjksMHgwMCwweDM4LDB4NDAsMHgwZiwweDk4LDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGJkNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MTAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGJkODAsIDAsIHsweDBmLDB4ODIsMHgwYiwweDIxLDB4MDAsMHhlOCwweDAwLDB4MzYsMHgwNCwweDBjLDB4ODYsMHgwMywweGUxLDB4MDAsMHhkOCwweDAwIH0gfSwKLXsgIDE2LCAweGJkOTAsIDAsIHsweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHg2MSwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDAwLDB4MDMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGJkYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgyMCwweGJlLDB4MDAsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGJkYjAsIDAsIHsweDI4LDB4ZWMsMHgwMiwweDE5LDB4MDQsMHg4MiwweDAwLDB4MDMsMHg4MCwweDBkLDB4ZTQsMHg4MiwweGU4LDB4MDAsMHg4YSwweDAxIH0gfSwKLXsgIDE2LCAweGJkYzAsIDAsIHsweGFhLDB4ODAsMHg4YiwweGVkLDB4ODIsMHgzYiwweDgwLDB4OGUsMHg5MCwweDM2LDB4ODAsMHgwYiwweGUwLDB4MDMsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGJkZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDIsMHgwMCwweGIzLDB4ODAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGJkZTAsIDAsIHsweDZiLDB4MzQsMHgxNiwweDQwLDB4YzAsMHg4MywweDEwLDB4MjQsMHg3MiwweDg4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGJkZjAsIDAsIHsweDI0LDB4YzAsMHgwYiwweDA0LDB4MDIsMHg2ZiwweDA5LDB4OWIsMHgwMCwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGJlMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTQsMHgwMCwweGI3LDB4ODAsMHgyMywweGU0IH0gfSwKLXsgIDE2LCAweGJlMTAsIDAsIHsweDI4LDB4NzgsMHg4MiwweDc0LDB4MTQsMHg4ZiwweDAwLDB4NjEsMHhlMCwweDA5LDB4NTAsMHgxMiwweGRjLDB4MDQsMHg4NywweDIyIH0gfSwKLXsgIDE2LCAweGJlMjAsIDAsIHsweDI1LDB4YzgsMHgxYiwweDc4LDB4MDIsMHgxNCwweDAwLDB4OTQsMHg0MCwweGE1LDB4YzAsMHgwYiwweDYwLDB4MjIsMHg2OCwweDAwIH0gfSwKLXsgIDE2LCAweGJlMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MTIsMHgyMCwweGI3LDB4ODAsMHhiMSwweGUwIH0gfSwKLXsgIDE2LCAweGJlNDAsIDAsIHsweDhmLDB4ZjgsMHgwMywweDEyLDB4MDIsMHhlNywweDgwLDB4MzUsMHhlMCwweDBjLDB4NjgsMHgwNiwweGNmLDB4YzIsMHhjZiwweGIwIH0gfSwKLXsgIDE2LCAweGJlNTAsIDAsIHsweDI1LDB4ZjQsMHgwZiwweDU4LDB4MDMsMHg1YSwweDAyLDB4ZDUsMHg4MCwweDc1LDB4ZmEsMHg0ZiwweGY4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGJlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YTUsMHg5MCwweGYzLDB4MDAsMHgzZCwweGMwIH0gfSwKLXsgIDE2LCAweGJlNzAsIDAsIHsweDRmLDB4YjAsMHgxMywweGE4LDB4MDQsMHhmYiwweDAwLDB4M2MsMHhjMCwweDBmLDB4ODAsMHg0MywweGVjLDB4ODAsMHhlYiwweDYwIH0gfSwKLXsgIDE2LCAweGJlODAsIDAsIHsweDNhLDB4YzksMHgwZiwweDMwLDB4MDMsMHhlYywweDAwLDB4ZTksMHgwMCwweDNlLDB4YzgsMHgwZiwweGEwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGJlOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGVlLDB4ODAsMHgzZiwweGUwIH0gfSwKLXsgIDE2LCAweGJlYTAsIDAsIHsweDBkLDB4ODksMHgwMywweGQyLDB4NDAsMHhlNSwweDgxLDB4MzksMHhlMCwweDNjLDB4ZjksMHgwNywweGZlLDB4MDAsMHhjZiwweDg4IH0gfSwKLXsgIDE2LCAweGJlYjAsIDAsIHsweDNmLDB4ZTAsMHgwZiwweGU4LDB4MDMsMHhmMiwweDA4LDB4Y2UsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGJlYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OTQsMHg0NCwweGM2LDB4MDAsMHgyZiwweGMwIH0gfSwKLXsgIDE2LCAweGJlZDAsIDAsIHsweDA4LDB4NTgsMHgwMiwweGQwLDB4YzQsMHg4NSwweDI0LDB4MjEsMHg5MCwweDA4LDB4NTQsMHgxMiwweGRjLDB4ODIsMHgwNywweDAwIH0gfSwKLXsgIDE2LCAweGJlZTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcwLDB4MDYsMHhkNCwweDAwLDB4OGUsMHg0OCwweDIxLDB4YzAsMHgwYSwweDYwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGJlZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGE3LDB4NDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGJmMDAsIDAsIHsweDA4LDB4NDIsMHgwMiwweGQwLDB4MDAsMHhhZCwweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgyMiwweGRjLDB4MjgsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGJmMTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDQwLDB4MDIsMHg5OCwweDAwLDB4OTcsMHgwMCwweGEwLDB4YzQsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGJmMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwOCwweDkzLDB4MDAsMHgyYywweGUwIH0gfSwKLXsgIDE2LCAweGJmMzAsIDAsIHsweDA4LDB4M2MsMHgyMiwweGMxLDB4MDAsMHg4MSwweDAwLDB4MjAsMHg4MCwweDg4LDB4MTUsMHgwMiwweGNlLDB4MzAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGJmNDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDNjLDB4MDIsMHhjYywweDA0LDB4OTMsMHhjMCwweDIwLDB4ZjQsMHg0YSwweDBjLDB4ODIsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGJmNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YTAsMHgwMCwweGUzLDB4YzAsMHgxZiwweGUwIH0gfSwKLXsgIDE2LCAweGJmNjAsIDAsIHsweDZjLDB4MTAsMHg4MywweGUwLDB4MDQsMHhlYiwweDAwLDB4M2EsMHg1MiwweDRjLDB4YjQsMHgwMywweGZlLDB4MDIsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGJmNzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweDg0LDB4NDMsMHhlMSwweDAyLDB4ZDgsMHhjMiwweDMzLDB4YzAsMHgwYywweDg0LDB4MGIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGJmODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTksMHgwMCwweGViLDB4MTAsMHgzZSwweGM0IH0gfSwKLXsgIDE2LCAweGJmOTAsIDAsIHsweDBlLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmYiwweDE4LDB4M2UsMHhjMiwweDBmLDB4YjYsMHgwMywweGVjLDB4MDAsMHhmYiwweDAxIH0gfSwKLXsgIDE2LCAweGJmYTAsIDAsIHsweDNlLDB4YzAsMHgwZiwweDM1LDB4MDMsMHhjNCwweDI4LDB4ZWEsMHg0MiwweDNlLDB4YzAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGJmYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHg0MCwweGZmLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGJmYzAsIDAsIHsweDBjLDB4YzAsMHhhMywweDMwLDB4MjgsMHhjZCwweGEwLDB4MzMsMHhjMCwweDBjLDB4ZTgsMHgwMywweDBjLDB4MDAsMHhlZiwweDA1IH0gfSwKLXsgIDE2LCAweGJmZDAsIDAsIHsweDNkLDB4YzAsMHgwYywweGNhLDB4ODMsMHgzYywweDAwLDB4Y2QsMHgwOCwweDNmLDB4YzIsMHgwYywweGEwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweGJmZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NjcsMHgwMCwweGJiLDB4ODAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGJmZjAsIDAsIHsweDA4LDB4YWEsMHgwMiwweDA4LDB4MDAsMHhhMSwweDAxLDB4MzQsMHhkMSwweDA4LDB4YTQsMHgxMiwweDJjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGMwMDAsIDAsIHsweDZlLDB4YzAsMHg4OCwweGIyLDB4MDIsMHgyYywweDA4LDB4ODksMHg4MCwweDJlLDB4YzAsMHgwYSwweGE4LDB4MDMsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweGMwMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGJhLDB4ODAsMHhhMiwweGMwIH0gfSwKLXsgIDE2LCAweGMwMjAsIDAsIHsweDA4LDB4YTgsMHgwYSwweGEwLDB4MDAsMHg4YiwweDAwLDB4YTIsMHhjMCwweDQ4LDB4MTEsMHgwMiwweGFjLDB4MDQsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGMwMzAsIDAsIHsweDJlLDB4YzAsMHgwMCwweDgwLDB4MTIsMHgyYSwweDA4LDB4OGIsMHgxNCwweDJjLDB4YzAsMHgwOCwweDg4LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGMwNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweGIyLDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGMwNTAsIDAsIHsweDA4LDB4YjIsMHgxMiwweDgwLDB4MDAsMHhhYiwweDAxLDB4MjQsMHhjMCwweDA4LDB4MDAsMHgwMiwweDBjLDB4MDQsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGMwNjAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwNywweDAwLDB4ODIsMHgwMCwweDI0LDB4YzAsMHgwOCwweDA4LDB4MDIsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweGMwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweGMwODAsIDAsIHsweDBjLDB4YTIsMHgwMywweGEwLDB4MDAsMHhjOSwweDAwLDB4MzIsMHhjMCwweDI0LDB4OTQsMHgwMywweDNjLDB4MDIsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGMwOTAsIDAsIHsweDJmLDB4YzAsMHgwNCwweDgwLDB4MGIsMHgwOSwweDAyLDB4Y2IsMHgwMSwweDNmLDB4YzAsMHgyYywweGEwLDB4MDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweGMwYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZGMsMHgwMCwweGZkLDB4MDIsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGMwYjAsIDAsIHsweDRmLDB4ZTQsMHgxMywweDcwLDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzIsMHg4MywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGMwYzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhhOCwweDA2IH0gfSwKLXsgIDE2LCAweGMwZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgyMCwweGVmLDB4MzAsMHgzZiwweDA0IH0gfSwKLXsgIDE2LCAweGMwZTAsIDAsIHsweDZjLDB4ODgsMHgwMywweDNhLDB4NDIsMHhlNCwweDkxLDB4M2YsMHgwZCwweDBkLDB4NDgsMHgwMywweDNjLDB4YzAsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweGMwZjAsIDAsIHsweDMzLDB4NDQsMHgwYywweGY0LDB4MDMsMHhmYywweDgyLDB4ZGYsMHgzMCwweDMzLDB4NjAsMHgwZCwweGYxLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGMxMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDEwLDB4ZWQsMHgwMCwweDhiLDB4NzAsMHgyZSwweDE4IH0gfSwKLXsgIDE2LCAweGMxMTAsIDAsIHsweDg4LDB4MjIsMHg0YSwweDJjLDB4ODIsMHhlYSwweDI2LDB4MmUsMHgwYywweDBiLDB4YjgsMHg0MiwweDNkLDB4ODAsMHhiZiwweDkwIH0gfSwKLXsgIDE2LCAweGMxMjAsIDAsIHsweDJhLDB4NTQsMHgyOCwweGI0LDB4MDIsMHhjZCwweDAwLDB4ZGIsMHg0MCwweDJhLDB4NGEsMHg0OCwweDMwLDB4MDIsMHhhMCwweDA0IH0gfSwKLXsgIDE2LCAweGMxMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHhiMCwweGEzLDB4MDAsMHg2YywweDEwIH0gfSwKLXsgIDE2LCAweGMxNDAsIDAsIHsweDA5LDB4MDAsMHg4MiwweDIwLDB4ODIsMHhhMCwweDIwLDB4MmMsMHg4OCwweDRiLDB4ODAsMHgwMCwweDBjLDB4NDAsMHhiMywweDAxIH0gfSwKLXsgIDE2LCAweGMxNTAsIDAsIHsweDIwLDB4NDgsMHgwYiwweDM2LDB4MDIsMHg4YywweGUwLDB4ODMsMHg2NCwweDI0LDB4NDAsMHgyOCwweDMyLDB4MDIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGMxNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDExLDB4YWMsMHgwMCwweDhiLDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGMxNzAsIDAsIHsweDA5LDB4ODAsMHg4MCwweGE2LDB4MDAsMHhiYSwweDExLDB4MmUsMHg4OCwweDBiLDB4YjAsMHgwMCwweDJjLDB4MDAsMHhiYiwweDAyIH0gfSwKLXsgIDE2LCAweGMxODAsIDAsIHsweDAyLDB4NDAsMHgwOSwweGIwLDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMCwweDJjLDB4YzgsMHgwOCwweGI4LDB4ODIsMHhiMCwweDA0IH0gfSwKLXsgIDE2LCAweGMxOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGViLDB4MDAsMHgzZSwweDkyIH0gfSwKLXsgIDE2LCAweGMxYTAsIDAsIHsweDBkLDB4ODAsMHgwMywweDBhLDB4MjAsMHhlOSwweDAwLDB4M2UsMHg1MCwweDQ1LDB4ODAsMHgwMSwweDJjLDB4MDQsMHhmMywweDAwIH0gfSwKLXsgIDE2LCAweGMxYjAsIDAsIHsweDkwLDB4NjAsMHgwOSwweGIwLDB4MDMsMHhlYywweDAwLDB4OGIsMHgwMiwweDI2LDB4NTAsMHg4ZCwweGJjLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGMxYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4YmMsMHgwMCwweGZmLDB4MDIsMHgzZiwweDgwIH0gfSwKLXsgIDE2LCAweGMxZDAsIDAsIHsweDBlLDB4ZjksMHgwMiwweDdjLDB4MjIsMHhhZiwweDAwLDB4M2YsMHg2MCwweDAzLDB4YzAsMHgwYiwweGZjLDB4MTAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGMxZTAsIDAsIHsweDNmLDB4NGEsMHg0ZSwweGYwLDB4MDMsMHhmYywweDAwLDB4ZjcsMHgwMCwweDJiLDB4NjAsMHgwZiwweDcwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGMxZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDAsMHhiMCwweDAwIH0gfSwKLXsgIDE2LCAweGMyMDAsIDAsIHsweDBmLDB4ODIsMHgwYiwweGE5LDB4MDAsMHhjOSwweDAwLDB4MzIsMHhkMiwweDBmLDB4YTAsMHg4MywweGFjLDB4MDAsMHhjYiwweDEwIH0gfSwKLXsgIDE2LCAweGMyMTAsIDAsIHsweDNlLDB4NDAsMHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZGIsMHgwMCwweDMyLDB4NTAsMHgyYywweDk1LDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGMyMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4M2MsMHgwNCwweGJmLDB4MDIsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGMyMzAsIDAsIHsweDBiLDB4OTgsMHgwMCwweDI5LDB4MDAsMHhjYiwweDQwLDB4MjIsMHhjMCwweDBiLDB4MjQsMHgwMiwweDNjLDB4MDgsMHg4ZiwweDUwIH0gfSwKLXsgIDE2LCAweGMyNDAsIDAsIHsweDJlLDB4NTAsMHgwZCwweGYwLDB4MDIsMHhmZCwweDQyLDB4OGYsMHg1OCwweDIyLDB4ZTAsMHg0OCwweGI1LDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGMyNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDQwIH0gfSwKLXsgIDE2LCAweGMyNjAsIDAsIHsweDRiLDB4OTQsMHgwMCwweDQ5LDB4MDAsMHg5MCwweDgwLDB4MDQsMHgzMCwweDA5LDB4MDAsMHgwZSwweDRjLDB4MDAsMHg4MywweDgwIH0gfSwKLXsgIDE2LCAweGMyNzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDMwLDB4MjIsMHg2ZSwweDQyLDB4ODMsMHg4MCwweDIwLDB4NDgsMHgwOCwweDM4LDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGMyODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHg2NSwweDIwIH0gfSwKLXsgIDE2LCAweGMyOTAsIDAsIHsweDBiLDB4NzgsMHg4MiwweDdhLDB4MDgsMHg4YywweGMwLDB4MjUsMHhhMywweDRiLDB4NzgsMHgwMiwweDVlLDB4MDQsMHg4NywweDg0IH0gfSwKLXsgIDE2LCAweGMyYTAsIDAsIHsweDJkLDB4NjEsMHg4OSwweDc4LDB4MDIsMHhkZSwweDA0LDB4ODcsMHg4MCwweGU5LDB4NjIsMHgwOCwweDc4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGMyYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgwMCwweGZiLDB4MDAsMHgzNCwweDQ4IH0gfSwKLXsgIDE2LCAweGMyYzAsIDAsIHsweDBmLDB4M2IsMHgwMywweDQ4LDB4MDAsMHg5MywweDQ4LDB4MzQsMHg1MCwweDBkLDB4MDAsMHgwMywweDZjLDB4MDAsMHhjMywweDEwIH0gfSwKLXsgIDE2LCAweGMyZDAsIDAsIHsweDFjLDB4YzIsMHgwNSwweDMwLDB4MDMsMHhjYywweDQwLDB4Y2IsMHgwMCwweDMyLDB4NDAsMHgwYywweDIwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGMyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgyMCwweGZmLDB4MDEsMHgwMywweDQwIH0gfSwKLXsgIDE2LCAweGMyZjAsIDAsIHsweDBmLDB4ZjAsMHgyMywweDFjLDB4MDAsMHhmZiwweDAwLDB4M2IsMHg4MCwweDBmLDB4YjAsMHgyMywweDNjLDB4MDIsMHhmZiwweDUwIH0gfSwKLXsgIDE2LCAweGMzMDAsIDAsIHsweDNkLDB4YzQsMHgwZiwweGYxLDB4MDMsMHhlYywweDAwLDB4ZWYsMHgwMCwweGI3LDB4YzAsMHgwZiwweGUxLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGMzMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MDIsMHgzZSwweGUwIH0gfSwKLXsgIDE2LCAweGMzMjAsIDAsIHsweDBjLDB4ODAsMHgwMywweDQ4LDB4MDIsMHhjOCwweDgxLDB4MzIsMHgwMCwweDBmLDB4OTAsMHg0MiwweGVjLDB4YTAsMHhmYiwweDEwIH0gfSwKLXsgIDE2LCAweGMzMzAsIDAsIHsweDNlLDB4ZTAsMHgwYywweGIxLDB4MDMsMHhlYywweDQwLDB4ZmIsMHgxMCwweDMyLDB4NDAsMHgxZiwweGYwLDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGMzNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MjQsMHgyZCwweDgwIH0gfSwKLXsgIDE2LCAweGMzNTAsIDAsIHsweDA4LDB4NzAsMHg0MiwweGQ4LDB4MTAsMHg4YywweDAyLDB4MjEsMHg0MCwweDBiLDB4NTAsMHgwMiwweGRkLDB4MDAsMHhlNywweDIwIH0gfSwKLXsgIDE2LCAweGMzNjAsIDAsIHsweDJmLDB4NDAsMHgwOCwweDcwLDB4MDIsMHhkYywweDA1LDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweGYwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGMzNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGI3LDB4OTAsMHgyZiwweDQwIH0gfSwKLXsgIDE2LCAweGMzODAsIDAsIHsweDBhLDB4NjgsMHgwMiwweDdhLDB4MDAsMHg5NywweDgwLDB4MjEsMHhlMCwweDBiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweGMzOTAsIDAsIHsweDJkLDB4ZTAsMHgwOCwweDc4LDB4MDYsMHhkZSwweDAwLDB4YjcsMHhhMCwweDIxLDB4NjAsMHgwYiwweDc4LDB4NDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGMzYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGMzYjAsIDAsIHsweDBhLDB4MzQsMHgwMiwweGM4LDB4MDAsMHg4MywweDRhLDB4MjAsMHhmOCwweDBiLDB4MzEsMHgwMiwweGNjLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGMzYzAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4YjIsMHgwYiwweDIwLDB4NDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGMzZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGJhLDB4MDAsMHgzZiwweDg4IH0gfSwKLXsgIDE2LCAweGMzZTAsIDAsIHsweDJlLDB4ZTAsMHg0MywweDU5LDB4ODgsMHhkZSwweDAwLDB4MzMsMHhiMCwweDBmLDB4NmMsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGMzZjAsIDAsIHsweDNlLDB4ODAsMHgyYywweGEwLDB4MDMsMHhlOCwweDA0LDB4ZmEsMHgwMCwweDIzLDB4YjgsMHgwZiwweGUwLDB4OGIsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGM0MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwNCwweGY4LDB4MDEsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGM0MTAsIDAsIHsweDA5LDB4ODIsMHgyMSwweGUwLDB4MDAsMHhmOCwweDQwLDB4YmUsMHgxNCwweDBmLDB4ODQsMHg4MSwweGUwLDB4MDAsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGM0MjAsIDAsIHsweDNlLDB4MDAsMHgxZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAsMHgwZiwweDg4LDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGM0MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGUxLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGM0NDAsIDAsIHsweDBjLDB4OTAsMHg0MywweGU0LDB4MjAsMHhkOSwweDAwLDB4M2MsMHg0NCwweDA4LDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAxIH0gfSwKLXsgIDE2LCAweGM0NTAsIDAsIHsweDNlLDB4NDgsMHgwZiwweDEwLDB4NDMsMHgyNSwweDAwLDB4YzksMHgwMCwweGIyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGM0NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MDAsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweGM0NzAsIDAsIHsweDA4LDB4OTgsMHgwMiwweGU2LDB4MDgsMHhhOSwweDYwLDB4MmUsMHg0OSwweDA4LDB4OTQsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGM0ODAsIDAsIHsweDJlLDB4NzAsMHgwYiwweDkwLDB4MDIsMHgyNiwweDAyLDB4ODksMHgwMCwweGEwLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGM0OTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGM0YTAsIDAsIHsweDA4LDB4OTgsMHgwNCwweGU2LDB4MDAsMHg5OSwweDgwLDB4MmUsMHg0MCwweDBhLDB4YjEsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGM0YjAsIDAsIHsweDBlLDB4NDAsMHgwYiwweDkwLDB4MGEsMHgwNCwweDAwLDB4ODEsMHgwMSwweDIyLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGM0YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MjAsMHgyMiwweDQ4IH0gfSwKLXsgIDE2LCAweGM0ZDAsIDAsIHsweDA4LDB4MTgsMHgwNiwweGM0LDB4MDAsMHhhMSwweDAwLDB4MmMsMHg0OCwweDJhLDB4MzAsMHgwMiwweDA0LDB4ODAsMHhiMSwweDIyIH0gfSwKLXsgIDE2LCAweGM0ZTAsIDAsIHsweDJjLDB4NDgsMHgwYiwweDEyLDB4MDIsMHgwNSwweDgwLDB4ODEsMHg2MCwweDIyLDB4NTAsMHgwYSwweDE0LDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGM0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDE0IH0gfSwKLXsgIDE2LCAweGM1MDAsIDAsIHsweDBjLDB4ODUsMHgwMywweGUxLDB4NDAsMHhkOCwweDUwLDB4M2UsMHgxNCwweDBlLDB4ODAsMHgwYiwweDIxLDB4NDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGM1MTAsIDAsIHsweDNlLDB4OTQsMHgwZiwweDg1LDB4MDMsMHgyMCwweDAwLDB4YzAsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGM1MjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZTQsMHg0MSwweGY5LDB4MTAsMHgzZCwweDQ1IH0gfSwKLXsgIDE2LCAweGM1MzAsIDAsIHsweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0NSwweDBkLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGM1NDAsIDAsIHsweDNmLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQyLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweGQ0LDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGM1NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGM1NjAsIDAsIHsweDBjLDB4ZDAsMHgwMywweGY0LDB4MDgsMHg4ZCwweDAyLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4MDAsMHhjZCwweDAwIH0gfSwKLXsgIDE2LCAweGM1NzAsIDAsIHsweDMzLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHg0YywweDk4LDB4MjMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGM1ODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGM1OTAsIDAsIHsweDQ4LDB4ODAsMHgwMiwweGU4LDB4MDAsMHhkMCwweDAwLDB4MmUsMHg4MCwweDBiLDB4ODAsMHgxMiwweGUwLDB4MDIsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGM1YTAsIDAsIHsweGEyLDB4MDAsMHgwYSwweDgwLDB4MTIsMHgyMiwweDAwLDB4YjgsMHg4MSwweDIyLDB4MjgsMHgwOCwweGNmLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGM1YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGM1YzAsIDAsIHsweDI4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHg5MSwweDAwIH0gfSwKLXsgIDE2LCAweGM1ZDAsIDAsIHsweDI2LDB4NDAsMHgwOSwweDEwLDB4MDIsMHg1NCwweGEwLDB4YjUsMHgyYywweGE1LDB4NDIsMHgwOCwweDUwLDB4ODIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGM1ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDUwIH0gfSwKLXsgIDE2LCAweGM1ZjAsIDAsIHsweDU4LDB4OTAsMHgwMiwweGU0LDB4ODAsMHg5YiwweDAwLDB4MmUsMHg0NSwweDhiLDB4OTIsMHgwMiwweGU0LDB4MDAsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGM2MDAsIDAsIHsweDI2LDB4NDQsMHgwYiwweDkwLDB4MDIsMHg2NCwweDA4LDB4YjUsMHgwMCwweDI1LDB4NGEsMHgwOCwweDUxLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGM2MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDU0IH0gfSwKLXsgIDE2LCAweGM2MjAsIDAsIHsweDBjLDB4OTAsMHg0MywweGM0LDB4MDAsMHhjOSwweDkwLDB4M2UsMHg3MCwweDBmLDB4OTgsMHgwMywweGU0LDB4MDAsMHhkOSwweDAwIH0gfSwKLXsgIDE2LCAweGM2MzAsIDAsIHsweDM0LDB4NjAsMHg0ZCwweDkwLDB4MGEsMHg2NCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHgyYywweDllLDB4MDMsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGM2NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweGM2NTAsIDAsIHsweDBmLDB4OWMsMHgwMywweGU2LDB4MzAsMHhmOSwweDAwLDB4M2UsMHg2MiwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwIH0gfSwKLXsgIDE2LCAweGM2NjAsIDAsIHsweDNhLDB4NDAsMHg0ZSwweDkwLDB4MDMsMHhhNCwweDAwLDB4NzksMHgwYywweDNhLDB4NDAsMHgwZiwweDkwLDB4MWIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGM2NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGM2ODAsIDAsIHsweDBjLDB4ODEsMHgxMywweGUxLDB4MDgsMHhjOCwweDQ4LDB4MzIsMHgwMCwweDNjLDB4ODAsMHgwMywweGMwLDB4MDAsMHhmMCwweDEwIH0gfSwKLXsgIDE2LCAweGM2OTAsIDAsIHsweDNlLDB4MDYsMHgwYywweDgwLDB4MDMsMHhmMCwweDA4LDB4Y2MsMHgwMCwweDMzLDB4MDQsMHgwYywweGMwLDB4MDMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGM2YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyZSwweDgwIH0gfSwKLXsgIDE2LCAweGM2YjAsIDAsIHsweDA4LDB4ZWMsMHg0MiwweGZhLDB4MjAsMHg4ZSwweDAwLDB4MjMsMHhhMCwweDA4LDB4ZTgsMHg0MiwweGU4LDB4MDAsMHhiZSwweDgwIH0gfSwKLXsgIDE2LCAweGM2YzAsIDAsIHsweDJmLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4ZGEsMHgwMCwweDIyLDB4ODAsMHg0OCwweGUwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGM2ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGM2ZTAsIDAsIHsweDA5LDB4MzQsMHg4MiwweGM5LDB4MDAsMHg4MywweDgwLDB4MjAsMHhmMCwweDA4LDB4MzAsMHg4MiwweGNjLDB4MDAsMHhiMywweDgwIH0gfSwKLXsgIDE2LCAweGM2ZjAsIDAsIHsweDJjLDB4ZjAsMHgwOCwweGIwLDB4MDIsMHhjMSwweDIwLDB4ODAsMHgwMCwweGEwLDB4MzIsMHgwOCwweDAwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGM3MDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHhjMCwweGI3LDB4MDEsMHgyZiwweGM4IH0gfSwKLXsgIDE2LCAweGM3MTAsIDAsIHsweDg5LDB4NTAsMHgwMiwweGQ4LDB4MDIsMHg4NywweGM0LDB4MjEsMHhlMiwweDQ4LDB4NzAsMHg4MiwweGRjLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweGM3MjAsIDAsIHsweDJjLDB4NDAsMHgwOCwweDcyLDB4MDIsMHhjZSwweDAwLDB4OTcsMHgwOCwweDIzLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGM3MzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGY3LDB4ZTEsMHgzZCwweGU4IH0gfSwKLXsgIDE2LCAweGM3NDAsIDAsIHsweDJkLDB4NjgsMHgwMywweGYyLDB4MDAsMHhjNywweDgwLDB4YjAsMHhlMCwweDA4LDB4NjgsMHgwMywweGRmLDB4ODAsMHhmNiwweDgwIH0gfSwKLXsgIDE2LCAweGM3NTAsIDAsIHsweDNkLDB4ZTAsMHg4YywweDdlLDB4MDMsMHhkYSwweDAwLDB4Y2MsMHg4MCwweDMxLDB4MjAsMHgwYywweGM4LDB4MGIsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGM3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwOCwweGZiLDB4MDAsMHgzYywweGMwIH0gfSwKLXsgIDE2LCAweGM3NzAsIDAsIHsweDBlLDB4ODAsMHgwMywweGUwLDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGM3ODAsIDAsIHsweDNlLDB4NDAsMHgyZiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzAsMHgyZiwweGIwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGM3OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4OTIsMHg3ZiwweGVhIH0gfSwKLXsgIDE2LCAweGM3YTAsIDAsIHsweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhjYywweGEwLDB4M2YsMHgyMCwweDBkLDB4ZjksMHgwMywweDNlLDB4MDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGM3YjAsIDAsIHsweDMzLDB4NjAsMHgwZiwweGY4LDB4MDMsMHhmNiwweDAwLDB4ZWYsMHg4NCwweDMzLDB4ZTAsMHgyYywweGM4LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGM3YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyZiwweGM4IH0gfSwKLXsgIDE2LCAweGM3ZDAsIDAsIHsweDA4LDB4NTQsMHgwMiwweGQ4LDB4MDAsMHhkNiwweDA0LDB4MmQsMHgwMSwweDA4LDB4NjksMHgwMiwweDFjLDB4MDAsMHg4NSwweDAwIH0gfSwKLXsgIDE2LCAweGM3ZTAsIDAsIHsweDIxLDB4NDMsMHgwYiwweDcwLDB4MDMsMHg5YSwweGMwLDB4OGMsMHgwMCwweGEzLDB4MDIsMHgwOCwweGYxLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGM3ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGI3LDB4MDEsMHgyZCwweGNjIH0gfSwKLXsgIDE2LCAweGM4MDAsIDAsIHsweDA4LDB4NzAsMHgwMiwweGQ0LDB4MDAsMHg5NCwweDI4LDB4MmQsMHhjMiwweDA4LDB4YzIsMHgwMiwweDVjLDB4MDAsMHg4NiwweDAwIH0gfSwKLXsgIDE2LCAweGM4MTAsIDAsIHsweDIxLDB4ODAsMHgwYiwweDcxLDB4MDIsMHhkYywweDAwLDB4YTcsMHgxMCwweDIxLDB4YzAsMHgwOCwweDQ4LDB4MDIsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGM4MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwOCwweGIzLDB4MDAsMHgyYywweGYwIH0gfSwKLXsgIDE2LCAweGM4MzAsIDAsIHsweDA4LDB4MDUsMHgwMiwweGMwLDB4MjAsMHg5MCwweDgwLDB4MmUsMHgwMCwweDA4LDB4MDAsMHg4MiwweDRjLDB4MDIsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGM4NDAsIDAsIHsweGEwLDB4NjEsMHgwYiwweDMwLDB4MDIsMHhhMCwweDAwLDB4ODAsMHgwMCwweGEwLDB4MzAsMHg4OCwweGIxLDB4MGEsMHg0OCwweDA0IH0gfSwKLXsgIDE2LCAweGM4NTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGZmLDB4MDAsMHgyZCwweGM4IH0gfSwKLXsgIDE2LCAweGM4NjAsIDAsIHsweDBjLDB4M2QsMHgwMywweGU0LDB4MDAsMHhkYiwweDAyLDB4M2UsMHhmMCwweDJjLDB4OTAsMHg0YiwweDdjLDB4MDAsMHhjMSwweDAwIH0gfSwKLXsgIDE2LCAweGM4NzAsIDAsIHsweDMyLDB4MjAsMHg0ZiwweGYwLDB4MTMsMHhlMCwweDAwLDB4ZTgsMHgwMSwweDMyLDB4MDAsMHg4YywweGFjLDB4MDMsMHg2YSwweDA0IH0gfSwKLXsgIDE2LCAweGM4ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDQsMHgzZSwweGMyIH0gfSwKLXsgIDE2LCAweGM4OTAsIDAsIHsweDRmLDB4YjAsMHgwMywweGUwLDB4MDQsMHhmYSwweDQwLDB4M2UsMHhjMiwweDRlLDB4OTgsMHgyMywweGFjLDB4MTAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGM4YTAsIDAsIHsweDNlLDB4NTAsMHgwNywweGIwLDB4MTMsMHhhYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzIsMHgwZiwweDkyLDB4MDMsMHhhMCwweDAwIH0gfSwKLXsgIDE2LCAweGM4YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGNmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGM4YzAsIDAsIHsweDBjLDB4YzgsMHgyMywweDM2LDB4ODIsMHhjZiwweDgwLDB4M2YsMHg4MCwweDBjLDB4ZTAsMHgwMywweGVjLDB4MDAsMHhmOSwweDIwIH0gfSwKLXsgIDE2LCAweGM4ZDAsIDAsIHsweDMzLDB4YzAsMHgwZSwweGYwLDB4MDMsMHhmOCwweDEwLDB4ZGMsMHgwMCwweDMzLDB4MDAsMHg0YywweGU4LDB4MjEsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGM4ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgwMCwweGFiLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGM4ZjAsIDAsIHsweDRhLDB4OGQsMHg0MiwweDIxLDB4MDAsMHg4YiwweDQyLDB4MmUsMHhkMiwweDA4LDB4YjAsMHgwMywweGVjLDB4MDAsMHhiOCwweDg4IH0gfSwKLXsgIDE2LCAweGM5MDAsIDAsIHsweDM0LDB4NjIsMHgwZCwweGIwLDB4MDIsMHhlNCwweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MGEsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGM5MTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGM5MjAsIDAsIHsweDA4LDB4YTAsMHgwMiwweDBkLDB4MDAsMHg4OSwweDEwLDB4MmUsMHgwOCwweDI4LDB4OTIsMHgwMiwweGVjLDB4MDQsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGM5MzAsIDAsIHsweDIyLDB4YTAsMHgwOCwweGIwLDB4MDIsMHg2NCwweDAyLDB4YjMsMHgwMiwweDIwLDB4YzAsMHgwOCwweGEyLDB4MDIsMHhhMCwweDAwIH0gfSwKLXsgIDE2LCAweGM5NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGM5NTAsIDAsIHsweDBhLDB4OTAsMHgyMiwweDBjLDB4MTAsMHg4MCwweDAwLDB4MmMsMHgwMCwweDE4LDB4MDIsMHg4MiwweGNjLDB4MDAsMHhiMCwweDAwIH0gfSwKLXsgIDE2LCAweGM5NjAsIDAsIHsweDI2LDB4NDAsMHgwOSwweDMwLDB4MDIsMHhjOCwweDIwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDEwLDB4MDYsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweGM5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGNiLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGM5ODAsIDAsIHsweDBjLDB4YTEsMHgwMiwweDI0LDB4MDAsMHg4OCwweDAwLDB4M2MsMHgwMCwweDBjLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGM5OTAsIDAsIHsweDMyLDB4ODAsMHgwZSwweGIwLDB4MDMsMHhjYywweDgwLDB4ZGIsMHgwMCwweDMyLDB4YzAsMHgwYywweGEwLDB4MDMsMHg4MCwweDAzIH0gfSwKLXsgIDE2LCAweGM5YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGM5YjAsIDAsIHsweDRmLDB4YzIsMHgxMywweGQ0LDB4MTAsMHhmYywweDAwLDB4M2YsMHgwMCwweDBmLDB4MDAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweGM5YzAsIDAsIHsweDNmLDB4NDAsMHgwZiwweGYwLDB4MjMsMHhlMCwweDEyLDB4ZmMsMHgwMSwweGJmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHg2OCwweDAyIH0gfSwKLXsgIDE2LCAweGM5ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGM3LDB4ODAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGM5ZTAsIDAsIHsweDhiLDB4YjQsMHgwMywweGIwLDB4YzAsMHhjZiwweDJlLDB4MWYsMHgwYywweDRmLDB4YzMsMHgwMywweDMwLDB4ODAsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweGM5ZjAsIDAsIHsweDNmLDB4MDgsMHgwZiwweGYwLDB4MDAsMHg3YywweDAwLDB4ZmYsMHgyMSwweDMzLDB4ZTQsMHgwYywweGUwLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGNhMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWUsMHgwMCwweDhiLDB4ODIsMHgyMywweGYwIH0gfSwKLXsgIDE2LCAweGNhMTAsIDAsIHsweDBiLDB4YjUsMHgxMiwweDBkLDB4ODgsMHg4OCwweGMwLDB4MGUsMHg5OCwweDBiLDB4ODYsMHgwMiwweDIxLDB4MDAsMHhiYiwweGMwIH0gfSwKLXsgIDE2LCAweGNhMjAsIDAsIHsweDJlLDB4ZTQsMHg0YiwweGY3LDB4ODMsMHgyZiwweDQ0LDB4YmYsMHg5MCwweDIyLDB4YzgsMHg0OCwweGE2LDB4ODIsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGNhMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwOSwweDhhLDB4MDAsMHgyMCwweDUwIH0gfSwKLXsgIDE2LCAweGNhNDAsIDAsIHsweDRiLDB4YjIsMHgwYSwweDgwLDB4Y2MsMHg4MywweDAxLDB4MGMsMHg4YywweDBiLDB4MjMsMHgwYSwweDA0LDB4NjAsMHhiMywweDE0IH0gfSwKLXsgIDE2LCAweGNhNTAsIDAsIHsweDI0LDB4NDAsMHg0YiwweDMwLDB4MDIsMHhjYywweDEwLDB4YjMsMHgwMCwweDIwLDB4YzgsMHhlOSwweDExLDB4MDYsMHg2MiwweDAxIH0gfSwKLXsgIDE2LCAweGNhNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwMSwweDhhLDB4ODAsMHhhMiwweDQ0IH0gfSwKLXsgIDE2LCAweGNhNzAsIDAsIHsweDBiLDB4YjAsMHgwMiwweGExLDB4MDQsMHg4OCwweDQwLDB4MmUsMHhhMCwweDBiLDB4MjAsMHgwMiwweDI4LDB4MjAsMHhiYiwweDQwIH0gfSwKLXsgIDE2LCAweGNhODAsIDAsIHsweDJlLDB4NDAsMHgwYiwweGIwLDB4MDIsMHgyYywweDA4LDB4YmIsMHgwMCwweDIyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHg3MCwweDA0IH0gfSwKLXsgIDE2LCAweGNhOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGMzLDB4ODMsMHgzMiwweGUwIH0gfSwKLXsgIDE2LCAweGNhYTAsIDAsIHsweDhmLDB4MDAsMHgwMywweGEwLDB4MDIsMHhjYiwweGM0LDB4M2UsMHgyOCwweDA3LDB4OGIsMHgwMywweDIxLDB4MDAsMHhmOSwweGMwIH0gfSwKLXsgIDE2LCAweGNhYjAsIDAsIHsweDNlLDB4MTAsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4N2IsMHgwMCwweDMyLDB4YzAsMHgwZCwweGEwLDB4MDMsMHg1MCwweDA0IH0gfSwKLXsgIDE2LCAweGNhYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4OWMsMHgwMiwweGZmLDB4MDAsMHgzZiwweGUwIH0gfSwKLXsgIDE2LCAweGNhZDAsIDAsIHsweDBmLDB4ZjQsMHg0MywweDVlLDB4ODAsMHhmYywweDk0LDB4M2YsMHgwMCwweDBmLDB4YzAsMHgyYiwweGYyLDB4NTAsMHhmZCwweDIxIH0gfSwKLXsgIDE2LCAweGNhZTAsIDAsIHsweDdlLDB4ODQsMHg4ZiwweGYwLDB4MDMsMHg2YywweDBjLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZSwweDYyLDB4MDMsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGNhZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGViLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGNiMDAsIDAsIHsweDJjLDB4ODAsMHgwMywweDY5LDB4MDAsMHhjYiwweDMwLDB4YjIsMHgwMCwweDRmLDB4YjMsMHg0MywweGU1LDB4MDAsMHhjYiwweDQwIH0gfSwKLXsgIDE2LCAweGNiMTAsIDAsIHsweDcyLDB4MTgsMHgyYywweGIwLDB4MDMsMHhlYywweDI4LDB4YzMsMHgyMSwweDNhLDB4YzEsMHgwZiwweDk0LDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGNiMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4M2MsMHgwMCwweDhiLDB4MjAsMHgyMiwweDUwIH0gfSwKLXsgIDE2LCAweGNiMzAsIDAsIHsweDA4LDB4YjAsMHgwMiwweDI4LDB4MDAsMHg4OCwweGMwLDB4MmEsMHgwMCwweDhiLDB4YjQsMHgwMiwweGU4LDB4MDAsMHhkYiwweDAwIH0gfSwKLXsgIDE2LCAweGNiNDAsIDAsIHsweDYyLDB4MzAsMHgwOCwweGYwLDB4MDIsMHhmYywweDAwLDB4OGYsMHg4MCwweDIyLDB4YzAsMHgwYiwweDk1LDB4NDcsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGNiNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIxLDB4MDAsMHgyMCwweGMyIH0gfSwKLXsgIDE2LCAweGNiNjAsIDAsIHsweDQ4LDB4MzAsMHgwMiwweDQ5LDB4ODAsMHg4MywweDQyLDB4NjAsMHgxMiwweDBiLDB4MzAsMHgwMiwweGM4LDB4MDAsMHg4MiwweDAyIH0gfSwKLXsgIDE2LCAweGNiNzAsIDAsIHsweDJjLDB4MzAsMHgwOSwweGIwLDB4MDIsMHhjZiwweDAxLDB4ODMsMHg1MCwweDJhLDB4YzAsMHgwYiwweDIwLDB4MDIsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGNiODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwMCwweDlkLDB4ODAsMHhhMCwweGUwIH0gfSwKLXsgIDE2LCAweGNiOTAsIDAsIHsweDA4LDB4NzksMHgyMiwweDVlLDB4NjAsMHg4NywweDkwLDB4MjksMHhhMCwweDBiLDB4NzgsMHgwMiwweGM2LDB4MDAsMHg5MiwweDgxIH0gfSwKLXsgIDE2LCAweGNiYTAsIDAsIHsweDA1LDB4ZTAsMHgwOSwweDc4LDB4MDIsMHhkZSwweDQwLDB4ODcsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDI5LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGNiYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHg0MCwweGYyLDB4MDAsMHgzMCwweGMwIH0gfSwKLXsgIDE2LCAweGNiYzAsIDAsIHsweDA4LDB4M2EsMHgwMywweDQ0LDB4MDQsMHhjMywweDE0LDB4MzAsMHhjMCwweDBmLDB4MjIsMHgwMywweGNjLDB4ODAsMHhjMiwweDAwIH0gfSwKLXsgIDE2LCAweGNiZDAsIDAsIHsweGE0LDB4ZDIsMHgwZCwweDMwLDB4MTMsMHhjYywweDIwLDB4YzMsMHgwMCwweDM4LDB4YzQsMHg0ZiwweDA0LDB4NDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGNiZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4OWMsMHgwMCwweGVlLDB4MDAsMHgzZiwweGUwIH0gfSwKLXsgIDE2LCAweGNiZjAsIDAsIHsweDBmLDB4NzAsMHgwMywweGI0LDB4MDIsMHhmNCwweDEwLDB4M2YsMHhjMCwweDhmLDB4YTAsMHgwMywweGZjLDB4MDAsMHg3ZSwweDAwIH0gfSwKLXsgIDE2LCAweGNjMDAsIDAsIHsweDNiLDB4YzAsMHgwZSwweGYwLDB4ODMsMHhlYywweDAwLDB4ZjcsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGNjMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZmMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGNjMjAsIDAsIHsweDBmLDB4YTAsMHgwMywweGFhLDB4MTIsMHhjYiwweDAxLDB4MzIsMHg4MCwweDBmLDB4YjAsMHgxMywweDI4LDB4MTQsMHhmOSwweDgwIH0gfSwKLXsgIDE2LCAweGNjMzAsIDAsIHsweDNhLDB4NDAsMHgwMywweGI0LDB4MDMsMHhlYywweDQyLDB4Y2IsMHgxOCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGNjNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWQsMHgwMCwweGI1LDB4MDAsMHgyZCwweGM0IH0gfSwKLXsgIDE2LCAweGNjNTAsIDAsIHsweDBiLDB4NzAsMHg0YiwweDdjLDB4MDAsMHg4NCwweDAwLDB4MjEsMHg4MCwweDBiLDB4NzAsMHgwMiwweDk0LDB4MTAsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweGNjNjAsIDAsIHsweDI5LDB4YzAsMHgwYiwweDcyLDB4ODIsMHhkYywweDAwLDB4ODcsMHgyMCwweDJkLDB4YzEsMHgwZSwweDcwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGNjNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGI3LDB4ODAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweGNjODAsIDAsIHsweDBiLDB4NjgsMHgwMiwweDllLDB4MDAsMHg4MywweDgwLDB4MjEsMHhlMCwweDViLDB4MzgsMHgwMiwweDFlLDB4MDAsMHhiNCwweGMwIH0gfSwKLXsgIDE2LCAweGNjOTAsIDAsIHsweDI1LDB4ZTAsMHgwOSwweDc4LDB4MzIsMHhjZSwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDVjLDB4NGUsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGNjYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4NDQsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGNjYjAsIDAsIHsweDBiLDB4M2MsMHgwMiwweGNjLDB4NDAsMHg5MywweDA4LDB4MjAsMHhlMCwweDBiLDB4MzAsMHgwMiwweDhjLDB4MTAsMHhiMywweGMwIH0gfSwKLXsgIDE2LCAweGNjYzAsIDAsIHsweDI4LDB4ZDgsMHgxYiwweDMwLDB4MDIsMHhjYywweDA4LDB4OTMsMHgwMSwweDZjLDB4YzAsMHgwYSwweGI4LDB4ODIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGNjZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGY2LDB4MTAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGNjZTAsIDAsIHsweDRiLDB4ZWQsMHg4MywweGI4LDB4MDAsMHhjZSwweGU0LDB4YjMsMHhhMywweDBmLDB4ZTAsMHgwMywweDM4LDB4MDAsMHhmZSwweDAwIH0gfSwKLXsgIDE2LCAweGNjZjAsIDAsIHsweDNiLDB4ODAsMHgwZCwweGEwLDB4MDIsMHhlOCwweDAwLDB4ZGEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGU4LDB4MDIsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGNkMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgxMCwweGY4LDB4NDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGNkMTAsIDAsIHsweDBmLDB4ODAsMHgxMywweDYwLDB4MDAsMHhlMCwweDAwLDB4M2UsMHgwMCwweDQzLDB4MDgsMHgwMywweGUwLDB4MDAsMHhmOCwweDA4IH0gfSwKLXsgIDE2LCAweGNkMjAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MDAsMHgwZSwweDgwLDB4MjMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGNkMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMCwweGQ5LDB4YzAsMHhiZSwweDQwIH0gfSwKLXsgIDE2LCAweGNkNDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDAxLDB4OWEsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGNkNTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDQwLDB4MDksMHgxMCwweDBlLDB4NDAsMHgwZiwweDlhLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGNkNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwNCwweDg5LDB4MDQsMHhhMiwweDYwIH0gfSwKLXsgIDE2LCAweGNkNzAsIDAsIHsweDhiLDB4OWQsMHg4MCwweGE2LDB4MDAsMHhiOSwweDgwLDB4MjIsMHg0MCwweDQ4LDB4OTgsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGNkODAsIDAsIHsweDJlLDB4NDAsMHg4YiwweDkwLDB4MDIsMHhlNCwweDk0LDB4ODksMHg2MCwweDJlLDB4NDAsMHgwYiwweDk0LDB4MGIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGNkOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDk5LDB4MDgsMHhhZSwweDQ4IH0gfSwKLXsgIDE2LCAweGNkYTAsIDAsIHsweDRiLDB4MTAsMHgwMiwweGU1LDB4ODEsMHhiOSwweDEwLDB4MjAsMHg0NCwweDFiLDB4OTQsMHgwMiwweDI0LDB4MTAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGNkYjAsIDAsIHsweDZlLDB4NjAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYiwweDk0LDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGNkYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4MCwweDg5LDB4MDAsMHhhMCwweDY4IH0gfSwKLXsgIDE2LCAweGNkZDAsIDAsIHsweDBiLDB4MTIsMHgwMiwweDg0LDB4ODksMHhiMSwweDIwLDB4MjAsMHg0OCwweDFhLDB4MTIsMHgxMiwweDA0LDB4ODAsMHhiMSwweDIyIH0gfSwKLXsgIDE2LCAweGNkZTAsIDAsIHsweDBjLDB4NDgsMHgwYiwweDEyLDB4MDIsMHhjNCwweDgxLDB4YTEsMHgyMCwweDJjLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGNkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHhiZSwweDAwIH0gfSwKLXsgIDE2LCAweGNlMDAsIDAsIHsweDBmLDB4MDUsMHgwYiwweGUxLDB4NDAsMHhmOCwweDAwLDB4MzIsMHgxNCwweDBmLDB4ODUsMHgwMywweDIxLDB4NDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGNlMTAsIDAsIHsweDJlLDB4ODAsMHgwZiwweDg1LDB4MTMsMHhlMCwweDAyLDB4YzgsMHgwMCwweDNlLDB4MTQsMHgwZiwweDA1LDB4MDEsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGNlMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZTQsMHg0MCwweGZkLDB4MDAsMHhiZiwweDQ0IH0gfSwKLXsgIDE2LCAweGNlMzAsIDAsIHsweDBmLDB4ZDEsMHgwMywweGY0LDB4NDAsMHg3ZCwweDEwLDB4YmYsMHg0NCwweDQ1LDB4ZjEsMHgyYiwweGY0LDB4NDAsMHhmZCwweDEwIH0gfSwKLXsgIDE2LCAweGNlNDAsIDAsIHsweDNmLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZDksMHgxMCwweDNlLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhhNiwweDA2IH0gfSwKLXsgIDE2LCAweGNlNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgwMCwweGZkLDB4MDAsMHgxZiwweDYyIH0gfSwKLXsgIDE2LCAweGNlNjAsIDAsIHsweDBmLDB4ZDgsMHg4MiwweDM2LDB4MDAsMHhiZCwweGEwLDB4M2IsMHg2OCwweDBjLDB4ZGMsMHg4MywweDI2LDB4YzgsMHhkOSwweGEwIH0gfSwKLXsgIDE2LCAweGNlNzAsIDAsIHsweDMzLDB4NjAsMHgwZCwweDk5LDB4ODMsMHg1NiwweDIwLDB4ZDUsMHhhOCwweDJlLDB4NDQsMHgwYywweGQ4LDB4ODMsMHg4NiwweDA0IH0gfSwKLXsgIDE2LCAweGNlODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHg0OCwweGI4LDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGNlOTAsIDAsIHsweDBiLDB4MGEsMHg4MiwweDIyLDB4MjAsMHhiOCwweDUwLDB4MjIsMHhiYSwweDA4LDB4OGEsMHgyMiwweDIyLDB4ODAsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGNlYTAsIDAsIHsweDIyLDB4MDEsMHgwOCwweDBjLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDJlLDB4MjgsMHg4OCwweDg4LDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGNlYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGNlYzAsIDAsIHsweDFiLDB4MTAsMHgwYSwweDg0LDB4NDAsMHhiMSwweDAwLDB4MjgsMHg1OCwweDBhLDB4MzIsMHgwMiwweDA1LDB4MDAsMHg5OSwweDQwIH0gfSwKLXsgIDE2LCAweGNlZDAsIDAsIHsweDIwLDB4NjUsMHgwOSwweDEwLDB4NDIsMHhjNCwweDAwLDB4OTEsMHgwMCwweDJjLDB4NDAsMHgwYSwweDMwLDB4ODIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGNlZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGNlZjAsIDAsIHsweDFiLDB4OTAsMHgwMiwweGE1LDB4ODAsMHhiOSwweDEwLDB4MjIsMHg0OCwweDA4LDB4MTAsMHg0MiwweDA0LDB4MTAsMHgwOSwweDAwIH0gfSwKLXsgIDE2LCAweGNmMDAsIDAsIHsweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4OWIsMHgwMCwweDJjLDB4NDAsMHgwYSwweDk0LDB4MjIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGNmMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGNmMjAsIDAsIHsweDBmLDB4OTAsMHgxMywweGE3LDB4MTAsMHhmOSwweDYwLDB4YmEsMHg1MCwweDJlLDB4OWMsMHgwYSwweDI1LDB4ODQsMHhkMSwweGYwIH0gfSwKLXsgIDE2LCAweGNmMzAsIDAsIHsweGIyLDB4NjAsMHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhhOCwweDAwIH0gfSwKLXsgIDE2LCAweGNmNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwYywweGY5LDB4OTAsMHgzZSwweDZhIH0gfSwKLXsgIDE2LCAweGNmNTAsIDAsIHsweDhmLDB4OTAsMHgyMywweDY2LDB4MDAsMHhmMSwweDA4LDB4M2MsMHg0MCwweDBmLDB4OWMsMHg0MywweGU0LDB4NDAsMHhmOSwweDgwIH0gfSwKLXsgIDE2LCAweGNmNjAsIDAsIHsweDNhLDB4NDQsMHgwZiwweDkwLDB4MDMsMHgyNCwweDA0LDB4ZTksMHgwMiwweDNlLDB4NDAsMHgyZCwweDkxLDB4MTMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGNmNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGU4LDB4MjAsMHgzZSwweDAxIH0gfSwKLXsgIDE2LCAweGNmODAsIDAsIHsweDBjLDB4MDAsMHgwMywweGExLDB4MjAsMHhlOCwweDUwLDB4MzIsMHgxMCwweDJjLDB4OGMsMHgwMywweDIxLDB4MDAsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGNmOTAsIDAsIHsweDMyLDB4MDIsMHgwZiwweDAwLDB4MTMsMHgyMCwweDg4LDB4YzgsMHgwOCwweDMyLDB4MDAsMHgwZiwweDhjLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGNmYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgyMCwweDhlLDB4ZTMsMHgyZiwweDkwIH0gfSwKLXsgIDE2LCAweGNmYjAsIDAsIHsweDBhLDB4ZTAsMHgwNiwweDNiLDB4MDAsMHhlZSwweDA0LDB4MjMsMHg5MCwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDgsMHg4YSwweDAyIH0gfSwKLXsgIDE2LCAweGNmYzAsIDAsIHsweDc1LDB4OTAsMHg4YiwweGEwLDB4NDEsMHg1OCwweDkwLDB4OGUsMHg4MCwweDJhLDB4ODEsMHgwYiwweGUwLDB4MDMsMHg4YSwweDEwIH0gfSwKLXsgIDE2LCAweGNmZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGUsMHgwMCwweGEzLDB4MDAsMHg2YywweDYwIH0gfSwKLXsgIDE2LCAweGNmZTAsIDAsIHsweDA4LDB4MzgsMHgxYSwweDhlLDB4NDAsMHhhMCwweDgwLDB4MjAsMHhjYywweDA5LDB4MzAsMHgwMiwweDBjLDB4MDUsMHhhMywweDA0IH0gfSwKLXsgIDE2LCAweGNmZjAsIDAsIHsweDI4LDB4YzQsMHgwYiwweDMwLDB4MDIsMHgwZCwweDAxLDB4ODMsMHhjMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGQwMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWUsMHgwOCwweDg3LDB4MDAsMHgyZCwweDYyIH0gfSwKLXsgIDE2LCAweGQwMTAsIDAsIHsweDBiLDB4NzAsMHg5MiwweDFjLDB4MDgsMHhhMCwweDAwLDB4NjEsMHhjMCwweDA5LDB4NjAsMHgwNiwweDFjLDB4ODAsMHhhNywweDAwIH0gfSwKLXsgIDE2LCAweGQwMjAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHg1OCwweDAxLDB4ODcsMHg4OCwweDI5LDB4YzAsMHgwYiwweDYwLDB4MTIsMHhhOCwweDAwIH0gfSwKLXsgIDE2LCAweGQwMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGU2LDB4ODAsMHgzZCwweDYwIH0gfSwKLXsgIDE2LCAweGQwNDAsIDAsIHsweDBjLDB4NzgsMHg0MiwweDk2LDB4MDAsMHhlNCwweDgwLDB4YTMsMHg2MCwweDBkLDB4NzgsMHgwMywweDNmLDB4MDAsMHhlMywweDgwIH0gfSwKLXsgIDE2LCAweGQwNTAsIDAsIHsweDIxLDB4ZTAsMHgwZiwweDdiLDB4MDMsMHgxNiwweDA4LDB4YzcsMHg4MCwweDMxLDB4ZTIsMHg0ZiwweDc4LDB4NDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGQwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4OGMsMHgwMSwweGY4LDB4MDAsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweGQwNzAsIDAsIHsweDBlLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhmOCwweDAxLDB4M2UsMHg0MCwweDRlLDB4MzAsMHgzMywweGVkLDB4MjAsMHhkYiwweDAxIH0gfSwKLXsgIDE2LCAweGQwODAsIDAsIHsweGJlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4ZDgsMHgwZiwweGEwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGQwOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGM3LDB4ODQsMHgyMywweDYwIH0gfSwKLXsgIDE2LCAweGQwYTAsIDAsIHsweDBjLDB4NzgsMHgwYiwweGJlLDB4MDAsMHhmZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZWIsMHgwMywweDNlLDB4MDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGQwYjAsIDAsIHsweDNiLDB4MjUsMHgwYywweGY4LDB4ODMsMHg3ZSwweDQwLDB4Y2QsMHg4MCwweDMzLDB4ZTIsMHgwYiwweGY5LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGQwYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMiwweDg3LDB4MDAsMHgxNSwweDQ4IH0gfSwKLXsgIDE2LCAweGQwZDAsIDAsIHsweDA4LDB4NzAsMHgwMiwweDE0LDB4MjAsMHhiNiwweDAwLDB4MzUsMHg5YSwweDQ5LDB4YzgsMHgwMywweDljLDB4ODQsMHhhNywweDAwIH0gfSwKLXsgIDE2LCAweGQwZTAsIDAsIHsweDM5LDB4ZDAsMHgwYSwweDcwLDB4MDIsMHgxYSwweDA4LDB4YTQsMHgwMCwweDIxLDB4YzAsMHgwOSwweDYxLDB4NDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGQwZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweDQwIH0gfSwKLXsgIDE2LCAweGQxMDAsIDAsIHsweDA4LDB4NzEsMHgwMiwweDk0LDB4MDAsMHhiNSwweDAwLDB4MmQsMHg0MCwweDBiLDB4ZjEsMHgyMiwweDVjLDB4MDIsMHgwNywweDA4IH0gfSwKLXsgIDE2LCAweGQxMTAsIDAsIHsweDJjLDB4NTAsMHgwOCwweDcwLDB4MDIsMHg1MCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzQsMHgwYiwweDUwLDB4NDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGQxMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDIsMHgyNCwweDQwIH0gfSwKLXsgIDE2LCAweGQxMzAsIDAsIHsweDE4LDB4M2QsMHgwYSwweDAxLDB4MDAsMHhiMCwweDU4LDB4MjQsMHgyMCwweDA5LDB4MzAsMHgwMiwweDhmLDB4NDAsMHg4MywweGUwIH0gfSwKLXsgIDE2LCAweGQxNDAsIDAsIHsweDJjLDB4YzEsMHgwYSwweDMwLDB4NDIsMHgwOCwweDAwLDB4YjMsMHgwMSwweDZjLDB4YzAsMHgwOSwweDA4LDB4MTYsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGQxNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4OGMsMHgwMCwweDhiLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGQxNjAsIDAsIHsweDBjLDB4MjUsMHgwMywweGE4LDB4NDgsMHhmOCwweDgxLDB4M2UsMHg4MCwweDBmLDB4ODAsMHg2MywweDdjLDB4MDAsMHhjYiwweDgwIH0gfSwKLXsgIDE2LCAweGQxNzAsIDAsIHsweDNhLDB4YzAsMHgwYywweGYwLDB4MDMsMHg2YywweDAwLDB4Y2EsMHgwMiwweGJmLDB4YzAsMHgwZiwweDk4LDB4OGIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGQxODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweDUwIH0gfSwKLXsgIDE2LCAweGQxOTAsIDAsIHsweDJmLDB4YTQsMHgwYiwweGM4LDB4MDAsMHhmMCwweDQwLDB4M2UsMHhkMCwweDBmLDB4YTAsMHgzMywweGVjLDB4MjAsMHhmYiwweDA0IH0gfSwKLXsgIDE2LCAweGQxYTAsIDAsIHsweDdhLDB4ZTAsMHgwZiwweGIwLDB4MDMsMHhlZCwweDA4LDB4ZTksMHgwMywweDMyLDB4YzAsMHgwZCwweDkwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGQxYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZWMsMHg0MCwweGVlLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGQxYzAsIDAsIHsweDBjLDB4ZGEsMHgwMywweDcwLDB4MDQsMHhjYywweDAyLDB4YjEsMHhhMCwweDBlLDB4ZjAsMHgyMywweGVjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGQxZDAsIDAsIHsweDM3LDB4MjAsMHhjZCwweGIwLDB4NzMsMHhlYywweDg4LDB4ZmIsMHg4MCwweDNmLDB4YzAsMHgwZiwweDMwLDB4MDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGQxZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmUsMHgwMCwweDg4LDB4ODAsMHgyYywweGUxIH0gfSwKLXsgIDE2LCAweGQxZjAsIDAsIHsweDA4LDB4OTQsMHgwYSwweGE5LDB4MDIsMHg4OCwweDQwLDB4MjIsMHhkMCwweDA4LDB4YjksMHg0MiwweGVjLDB4MDQsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGQyMDAsIDAsIHsweDJjLDB4ZDQsMHgwZCwweGIwLDB4MDIsMHhlZCwweDIwLDB4YmIsMHhkMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweGQyMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjQsMHgwMCwweGFiLDB4ODAsMHgyZSwweGYwIH0gfSwKLXsgIDE2LCAweGQyMjAsIDAsIHsweDI5LDB4YTAsMHg4MiwweDZkLDB4MDAsMHg4OCwweDA4LDB4MjIsMHgwNCwweDA4LDB4OTAsMHg0MiwweGVjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGQyMzAsIDAsIHsweDJhLDB4ODEsMHgwOCwweGIwLDB4MDIsMHhlNCwweDA5LDB4YmEsMHgwNCwweDJlLDB4YzEsMHg0YiwweDk4LDB4ODIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGQyNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGQyNTAsIDAsIHsweDBhLDB4MjEsMHgwMiwweDg0LDB4MTAsMHg4MiwweDAwLDB4ZTAsMHgwMCwweDE4LDB4MGEsMHgxMiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGQyNjAsIDAsIHsweDBjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDkwLDB4YjAsMHgwMCwweDJjLDB4YzAsMHgwYiwweDEwLDB4MDIsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweGQyNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NjQsMHgwMCwweGViLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGQyODAsIDAsIHsweDJjLDB4YjQsMHgwMywweDY0LDB4MDgsMHg4OCwweDAwLDB4YjIsMHgwMCwweDBjLDB4YjIsMHg0MywweGZjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGQyOTAsIDAsIHsweDU2LDB4MDAsMHgwYywweGYwLDB4MDEsMHhlNCwweDAwLDB4ZmIsMHgwMCwweDNmLDB4YzAsMHgwZiwweDgwLDB4MGIsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGQyYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGQyYjAsIDAsIHsweDJkLDB4ZjAsMHg2MSwweGYwLDB4MDAsMHhmNCwweDAwLDB4MjcsMHgwMSwweDBkLDB4YjEsMHgxMSwweGZjLDB4MDAsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweGQyYzAsIDAsIHsweDA3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYywweDQwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHg2OCwweDA2IH0gfSwKLXsgIDE2LCAweGQyZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjYsMHgwMCwweGVmLDB4OTAsMHgzZCwweDRjIH0gfSwKLXsgIDE2LCAweGQyZTAsIDAsIHsweDJjLDB4YzAsMHgxMywweGY0LDB4MDgsMHhmZCwweDIwLDB4MzcsMHg0YywweDhlLDB4ODIsMHg4MywweDc0LDB4ODQsMHhkYywweGMyIH0gfSwKLXsgIDE2LCAweGQyZjAsIDAsIHsweDNmLDB4ZDgsMHgwZCwweGYyLDB4MDMsMHhlYywweGMwLDB4ZmYsMHg4MSwweDNmLDB4MDAsMHgwYywweGY4LDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGQzMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTYsMHgwMCwweDhiLDB4MjQsMHgyZSwweDVjIH0gfSwKLXsgIDE2LCAweGQzMTAsIDAsIHsweDA4LDB4OGQsMHgwMiwweGZmLDB4NDgsMHhiOSwweDkwLDB4MmYsMHg1NCwweDBiLDB4ODQsMHg4MiwweDNlLDB4NDAsMHhhMCwweDgwIH0gfSwKLXsgIDE2LCAweGQzMjAsIDAsIHsweDJlLDB4YzQsMHgwYSwweGZjLDB4NDIsMHhlZCwweDgwLDB4YjksMHg4MCwweDJlLDB4NjAsMHgwYSwweDk4LDB4MTIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweGQzMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTQsMHgwMSwweGEzLDB4MDAsMHgyOCwweDQ4IH0gfSwKLXsgIDE2LCAweGQzNDAsIDAsIHsweDBhLDB4MDAsMHg0MiwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0OSwweDBiLDB4MGEsMHg0MiwweDA0LDB4YTIsMHg5MSwweDIxIH0gfSwKLXsgIDE2LCAweGQzNTAsIDAsIHsweDJjLDB4YzksMHgwOCwweDMxLDB4MDIsMHg4YywweGMxLDB4YTMsMHgwMCwweDJjLDB4NDAsMHgwOCwweDE4LDB4MDIsMHhhMiwweDAxIH0gfSwKLXsgIDE2LCAweGQzNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTAsMHgyMCwweDhiLDB4ODIsMHgyZSwweDQ0IH0gfSwKLXsgIDE2LCAweGQzNzAsIDAsIHsweDU4LDB4ODAsMHgwMiwweGU0LDB4MDAsMHhiYiwweDEwLDB4MmUsMHg0MCwweDBiLDB4YTEsMHgxMiwweDBjLDB4MDEsMHg4OSwweDEwIH0gfSwKLXsgIDE2LCAweGQzODAsIDAsIHsweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlYywweDAxLDB4YjgsMHg4MCwweDJlLDB4ZTIsMHgwYSwweGExLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGQzOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWIsMHg0MCwweGViLDB4NDAsMHgzZSwweDYwIH0gfSwKLXsgIDE2LCAweGQzYTAsIDAsIHsweDBlLDB4ODcsMHgzMywweGU0LDB4MDAsMHhiOSwweGExLDB4MzYsMHhjMCwweDBlLDB4YTgsMHgwYiwweDI2LDB4MDAsMHhkYSwweGMwIH0gfSwKLXsgIDE2LCAweGQzYjAsIDAsIHsweDNlLDB4YzAsMHg4ZCwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg4NSwweDNlLDB4ZTEsMHgwOCwweGI4LDB4MDMsMHg5MCwweDA1IH0gfSwKLXsgIDE2LCAweGQzYzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjgsMHgwMCwweGZmLDB4MDIsMHgyZiwweDYwIH0gfSwKLXsgIDE2LCAweGQzZDAsIDAsIHsweDAzLDB4ZTgsMHg4MywweGZjLDB4MTAsMHhmZCwweDgwLDB4MWYsMHg0MCwweDFmLDB4ZDAsMHgxMywweGJlLDB4NDAsMHhlZSwweDA0IH0gfSwKLXsgIDE2LCAweGQzZTAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhmYywweDA4LDB4ZmQsMHgwMCwweDNjLDB4YzAsMHgwZiwweGQwLDB4MTEsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGQzZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTQsMHgwMCwweGRiLDB4MDAsMHhiMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ0MDAsIDAsIHsweDBlLDB4OTQsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4YmEsMHhjMCwweDBjLDB4MjAsMHgwMywweGU0LDB4OTAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGQ0MTAsIDAsIHsweDNhLDB4YzAsMHgwYywweGIwLDB4MDMsMHhlYywweDAxLDB4ZmEsMHgwMCwweDNlLDB4ZDAsMHgyYywweDk4LDB4MDMsMHg5MCwweDA0IH0gfSwKLXsgIDE2LCAweGQ0MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MDMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDQ4IH0gfSwKLXsgIDE2LCAweGQ0MzAsIDAsIHsweDA4LDB4ODQsMHgyMiwweDJjLDB4MDAsMHhiOSwweDAwLDB4MjIsMHhjMCwweDA4LDB4YTAsMHgwMiwweGVkLDB4MDAsMHg4YiwweGEwIH0gfSwKLXsgIDE2LCAweGQ0NDAsIDAsIHsweDIxLDB4YzAsMHgwOCwweGYwLDB4MDIsMHhmYywweDAwLDB4YjksMHg4MCwweDJlLDB4YzAsMHgwOCwweGEwLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGQ0NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDUsMHgyMCwweDkzLDB4MDAsMHgyMiwweGY4IH0gfSwKLXsgIDE2LCAweGQ0NjAsIDAsIHsweDBiLDB4MzAsMHgwYSwweDg0LDB4NDAsMHhiMiwweDAwLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHg4MCwweDgwIH0gfSwKLXsgIDE2LCAweGQ0NzAsIDAsIHsweDI4LDB4YzAsMHgyOCwweDM5LDB4MDIsMHg0YywweDAwLDB4YjEsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGQ0ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MzYsMHgwMCwweDlmLDB4ODAsMHgyMSwweDYwIH0gfSwKLXsgIDE2LCAweGQ0OTAsIDAsIHsweDA5LDB4MzgsMHgwMiwweDllLDB4MDAsMHhiMiwweGMwLDB4MjAsMHg2MCwweDQ4LDB4NDgsMHgxMiwweGQ2LDB4YzYsMHg4NiwweGQwIH0gfSwKLXsgIDE2LCAweGQ0YTAsIDAsIHsweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDAsMHhkZSwweDgwLDB4YjcsMHg4MiwweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGQ0YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgyMCwweGQzLDB4MTAsMHgzMCwweGM4IH0gfSwKLXsgIDE2LCAweGQ0YzAsIDAsIHsweDBmLDB4MzAsMHgwMywweDg0LDB4MDAsMHhmMSwweDAwLDB4MzAsMHg0MCwweDI0LDB4MTksMHgwMywweGU0LDB4YzAsMHhlMCwweDQwIH0gfSwKLXsgIDE2LCAweGQ0ZDAsIDAsIHsweDNhLDB4YzAsMHgwYywweDMyLDB4MDMsMHhjZSwweDgwLDB4YjEsMHgyOCwweDNjLDB4YzAsMHgwYywweDMwLDB4MTMsMHg5MiwweDAyIH0gfSwKLXsgIDE2LCAweGQ0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4OWMsMHgwMCwweGU2LDB4MDAsMHg3ZiwweGMwIH0gfSwKLXsgIDE2LCAweGQ0ZjAsIDAsIHsweDBlLDB4ZjAsMHgyMywweDc0LDB4NDAsMHhmZiwweDEwLDB4M2YsMHg0MCwweDRmLDB4ZDAsMHgwMywweGZjLDB4ZDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGQ1MDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGY0LDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwZiwweDcxLDB4MDMsMHhkMCwweDEyIH0gfSwKLXsgIDE2LCAweGQ1MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWUsMHgwMCwweGNiLDB4MDAsMHgxNiwweGMwIH0gfSwKLXsgIDE2LCAweGQ1MjAsIDAsIHsweDBkLDB4ODAsMHgwMywweDI3LDB4MjAsMHhjYiwweDAwLDB4M2UsMHhjMiwweDBhLDB4YjAsMHg1MywweGU0LDB4MjgsMHhjMSwweDgxIH0gfSwKLXsgIDE2LCAweGQ1MzAsIDAsIHsweDMyLDB4YzEsMHgwZSwweGI5LDB4MDMsMHgyYywweDAwLDB4ZjEsMHg4MCwweDM1LDB4ZTAsMHgwYywweGI4LDB4MDMsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ1NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMiwweDg3LDB4MTAsMHgyZCwweDQwIH0gfSwKLXsgIDE2LCAweGQ1NTAsIDAsIHsweDA4LDB4NzAsMHgwMywweDVjLDB4MDAsMHhhNywweDAwLDB4MmQsMHg0MCwweDI4LDB4NzAsMHgwMiwweGQ0LDB4MDQsMHg4NywweDA0IH0gfSwKLXsgIDE2LCAweGQ1NjAsIDAsIHsweGExLDB4ZDAsMHgwYiwweDcyLDB4MDIsMHgxZCwweDAwLDB4ZjcsMHgwMCwweDIxLDB4YzAsMHgwZCwweDUwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGQ1NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweDg1LDB4ODAsMHgyNSwweGUwIH0gfSwKLXsgIDE2LCAweGQ1ODAsIDAsIHsweDA5LDB4NzgsMHgwMiwweDM3LDB4MDMsMHg4NywweDgwLDB4MmYsMHhlMCwweDA4LDB4NzgsMHgxMiwweGM2LDB4MTAsMHg4ZCwweDgwIH0gfSwKLXsgIDE2LCAweGQ1OTAsIDAsIHsweDI1LDB4ZTgsMHgwYiwweDM4LDB4MDIsMHgxZSwweDgwLDB4YmMsMHg4NCwweDI1LDB4ZTAsMHgwOCwweDU4LDB4MDIsMHg3MCwweDAwIH0gfSwKLXsgIDE2LCAweGQ1YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2QsMHg4MCwweDgzLDB4ODgsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGQ1YjAsIDAsIHsweDA4LDB4M2MsMHgwMiwweDRlLDB4MDEsMHhhMywweGQyLDB4MmUsMHhjNCwweDA4LDB4YjEsMHgwMiwweGNjLDB4MDAsMHg4MywweDgwIH0gfSwKLXsgIDE2LCAweGQ1YzAsIDAsIHsweDI0LDB4YzEsMHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHg0MCwweGEwLDB4ZDIsMHgwOSwweDMwLDB4MTIsMHg1MiwweDAwIH0gfSwKLXsgIDE2LCAweGQ1ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YmEsMHgwMCwweGNhLDB4YzAsMHgzNiwweDgwIH0gfSwKLXsgIDE2LCAweGQ1ZTAsIDAsIHsweDBkLDB4NjcsMHgxMywweDI4LDB4MDAsMHhjZSwweDAwLDB4M2UsMHhhMCwweDBjLDB4ZWQsMHgwMywweGU4LDB4MDAsMHhjZSwweGUwIH0gfSwKLXsgIDE2LCAweGQ1ZjAsIDAsIHsweDM2LDB4ODAsMHgxZSwweGEwLDB4MGIsMHgyOCwweDA0LDB4ZmUsMHgwMCwweGI3LDB4YjIsMHgwYywweGUwLDB4MGIsMHg3YSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHg0MCwweGY4LDB4MTAsMHgyZSwweDEwIH0gfSwKLXsgIDE2LCAweGQ2MTAsIDAsIHsweDBmLDB4ODAsMHgwMywweGUwLDB4MDEsMHhkOCwweDBhLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGMwLDB4MDIsMHhmOCwweDA4IH0gfSwKLXsgIDE2LCAweGQ2MjAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDEwLDB4ZTgsMHgyMCwweGJlLDB4MDAsMHgwZiwweDgwLDB4MTMsMHg5MiwweDAwIH0gfSwKLXsgIDE2LCAweGQ2MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTUsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGQ2NDAsIDAsIHsweDBjLDB4OTEsMHgwMywweDI2LDB4MDAsMHg2MSwweDgwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2NTAsIDAsIHsweDFlLDB4NDAsMHgwYywweDljLDB4MDMsMHhlNCwweDAxLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDAwIH0gfSwKLXsgIDE2LCAweGQ2NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjcsMHgwMCwweGI5LDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGQ2NzAsIDAsIHsweDAwLDB4OWMsMHgwMiwweGE2LDB4MDAsMHg3OSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2ODAsIDAsIHsweDJjLDB4NDQsMHgwOCwweDk4LDB4MDIsMHhlNCwweDAwLDB4YjksMHg4MCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAxIH0gfSwKLXsgIDE2LCAweGQ2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweGJiLDB4MDAsMHgyNiwweDUwIH0gfSwKLXsgIDE2LCAweGQ2YTAsIDAsIHsweDI4LDB4OTAsMHg4MiwweDI0LDB4ODQsMHg5OSwweDIwLDB4MjIsMHg0MCwweDQ5LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2YjAsIDAsIHsweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHg2MCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGQ2YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDYsMHgwMCwweGIxLDB4MDAsMHgyZSwweDQ4IH0gfSwKLXsgIDE2LCAweGQ2ZDAsIDAsIHsweDA4LDB4MTIsMHgwMiwweDg0LDB4ODAsMHhiMSwweDIwLDB4YTAsMHg0OCwweDA5LDB4MTIsMHgwYSwweDA0LDB4ODAsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2ZTAsIDAsIHsweDJjLDB4NDgsMHgyOCwweDEyLDB4NDIsMHhjNCwweDg4LDB4MzEsMHgwMCwweDJjLDB4NDAsMHgwYiwweDE4LDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGQ2ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwMCwweGY4LDB4NTAsMHgzNiwweDE0IH0gfSwKLXsgIDE2LCAweGQ3MDAsIDAsIHsweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhlOCwweDAwLDB4MzIsMHgxNCwweDBjLDB4ODUsMHgwMywweDIxLDB4NDAsMHhjOCwweDUwIH0gfSwKLXsgIDE2LCAweGQ3MTAsIDAsIHsweDNlLDB4MTQsMHgwYywweDgwLDB4MDMsMHhlMSwweDQwLDB4MzgsMHgwMCwweDNlLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweGQ3MjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZDQsMHgwMCwweGZiLDB4MDQsMHgzZCwweDQ0IH0gfSwKLXsgIDE2LCAweGQ3MzAsIDAsIHsweDBmLDB4NTEsMHgyMywweGQ0LDB4NDgsMHhlZCwweDEwLDB4M2QsMHg0NCwweDRlLDB4ZDEsMHgyMywweGY0LDB4NDIsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGQ3NDAsIDAsIHsweDNlLDB4NDQsMHg4ZiwweDkxLDB4MDMsMHhlNCwweDU4LDB4ZmQsMHgwMCwweDNmLDB4NTAsMHgwZiwweDUwLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGQ3NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjQsMHgwMCwweGY5LDB4MDAsMHgzZCwweDQwIH0gfSwKLXsgIDE2LCAweGQ3NjAsIDAsIHsweDBjLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhkZCwweDAyLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4NDAsMHhjOSwweDEwIH0gfSwKLXsgIDE2LCAweGQ3NzAsIDAsIHsweDM3LDB4NDAsMHgwNywweGQwLDB4MDcsMHgyNCwweDAwLDB4ZTUsMHgwMCwweDJmLDB4NmEsMHgwZiwweDcwLDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGQ3ODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgzYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ3OTAsIDAsIHsweDgwLDB4ODAsMHgwMiwweGUwLDB4MDAsMHg4OCwweDAwLDB4MmUsMHgwMCwweDBhLDB4ODAsMHg1MywweGEyLDB4ODAsMHgyYywweGEwIH0gfSwKLXsgIDE2LCAweGQ3YTAsIDAsIHsweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHgyMCwweDAwLDB4YjgsMHgwMCwweDJlLDB4MTAsMHgwOSwweDgwLDB4MDMsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGQ3YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHg2YywweDQwIH0gfSwKLXsgIDE2LCAweGQ3YzAsIDAsIHsweDJhLDB4MTAsMHgwMiwweDg0LDB4MDEsMHg4MSwweDgwLDB4MmUsMHg0MCwweDA5LDB4MTAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDA0IH0gfSwKLXsgIDE2LCAweGQ3ZDAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHg4NCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAsMHgwYiwweDk4LDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGQ3ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTQsMHgyMCwweGI5LDB4MDAsMHgyYSwweDQwIH0gfSwKLXsgIDE2LCAweGQ3ZjAsIDAsIHsweDg4LDB4YjQsMHgwMiwweGU2LDB4MDEsMHhhOSwweDIwLDB4MmUsMHg0OCwweDBhLDB4OTAsMHgwMCwweGE0LDB4NDAsMHhhZCwweDQwIH0gfSwKLXsgIDE2LCAweGQ4MDAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkwLDB4MTIsMHhhNCwweDA0LDB4YjksMHgwMSwweDJlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGQ4MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4YzAsMHgzZSwweDYwIH0gfSwKLXsgIDE2LCAweGQ4MjAsIDAsIHsweDBjLDB4OTQsMHgxMywweGE2LDB4MDIsMHhkOSwweDQyLDB4MWMsMHg2MCwweDBjLDB4OWUsMHgwMSwweGM2LDB4MDQsMHhjMSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4MzAsIDAsIHsweGIyLDB4NDAsMHgxZiwweDkwLDB4MDIsMHhhNCwweDAwLDB4ZTksMHgwOCwweDNlLDB4NjgsMHg0ZiwweDk4LDB4MGIsMHg2OCwweDA0IH0gfSwKLXsgIDE2LCAweGQ4NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTYsMHg0MCwweGY5LDB4MjAsMHgzOCwweDcwIH0gfSwKLXsgIDE2LCAweGQ4NTAsIDAsIHsweDBmLDB4OTEsMHgwMywweGU0LDB4MDAsMHhkOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OWMsMHgxMywweGE0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4NjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDEwLDB4MDMsMHg2NCwweDEwLDB4ZjksMHgwYSwweDNlLDB4NTAsMHgwZCwweDlhLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGQ4LDB4MDQsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4ODAsIDAsIHsweDBjLDB4ODEsMHgxMywweGMwLDB4MDIsMHhkOCwweDIwLDB4M2UsMHgwMCwweDJkLDB4ODQsMHgwMywweGUwLDB4MDAsMHhjYywweDA4IH0gfSwKLXsgIDE2LCAweGQ4OTAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4NDMsMHhlMCwweDAwLDB4ZjgsMHg0MSwweDMyLDB4MDAsMHgwNywweDgxLDB4OGIsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ4YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4M2EsMHg2MCwweDhhLDB4MDAsMHgyZiwweGE4IH0gfSwKLXsgIDE2LCAweGQ4YjAsIDAsIHsweDBhLDB4ZTAsMHgyMiwweGU4LDB4MDIsMHg3ZSwweDQ4LDB4MmUsMHg4MCwweDA4LDB4YTAsMHg0MiwweGU4LDB4MDQsMHg4ZSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4YzAsIDAsIHsweDIzLDB4YTgsMHgwYiwweGE4LDB4ODIsMHhlOCwweDAwLDB4ZWUsMHgwMCwweGEyLDB4ODAsMHg0YiwweDYwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ4ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDkzLDB4MDAsMHg2YywweGMwIH0gfSwKLXsgIDE2LCAweGQ4ZTAsIDAsIHsweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHgxMywweDgxLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNlLDB4NDAsMHg4MiwweDQwIH0gfSwKLXsgIDE2LCAweGQ4ZjAsIDAsIHsweDI4LDB4ZTAsMHgwYiwweDM4LDB4MDIsMHhjYywweDAwLDB4YjMsMHgxMCwweDI0LDB4YzAsMHg4YiwweDM4LDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ5MDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWUsMHgwMCwweDg3LDB4MjAsMHgyZiwweGMwIH0gfSwKLXsgIDE2LCAweGQ5MTAsIDAsIHsweDBhLDB4NzAsMHgwMiwweGRjLDB4MGEsMHhiNiwweDAwLDB4MmMsMHhjOCwweDg4LDB4NzIsMHgwNiwweGQ4LDB4MDAsMHg4NiwweDAwIH0gfSwKLXsgIDE2LCAweGQ5MjAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkYywweDg0LDB4YWYsMHg4MCwweGE1LDB4YzAsMHgwYiwweGQwLDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGQ5MzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGQ3LDB4ODAsMHgzZCwweGEwIH0gfSwKLXsgIDE2LCAweGQ5NDAsIDAsIHsweDFjLDB4NzgsMHgxMywweGQ2LDB4MDIsMHhkNywweDgwLDB4M2QsMHhlYywweDA4LDB4N2UsMHgyMywweGZlLDB4MDAsMHhjZSwweDgwIH0gfSwKLXsgIDE2LCAweGQ5NTAsIDAsIHsweDM5LDB4NjAsMHgwZiwweDc4LDB4MDMsMHhkZiwweDAwLDB4ZjYsMHg4MCwweDc1LDB4ZTAsMHgwZiwweDc4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGQ5NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4OGMsMHgwMCwweGZiLDB4MTAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGQ5NzAsIDAsIHsweDFmLDB4YTAsMHgyMSwweGNjLDB4MDAsMHhmYSwweDAwLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGU4LDB4MDIsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ5ODAsIDAsIHsweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZWEsMHgwMSwweDNhLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGQ5OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmMsMHgwMCwweGZmLDB4ODAsMHgzZiwweDYwIH0gfSwKLXsgIDE2LCAweGQ5YTAsIDAsIHsweDA4LDB4OTksMHgwNywweDdlLDB4MDAsMHhkZCwweDgwLDB4M2YsMHhlMiwweDBjLDB4ZjgsMHgwMywweGY2LDB4MDIsMHhkZiwweDgwIH0gfSwKLXsgIDE2LCAweGQ5YjAsIDAsIHsweGIzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgzZSwweDQxLDB4Y2MsMHg4MCwweDMzLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGQ5YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHg0MCwweGI3LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGQ5ZDAsIDAsIHsweDBkLDB4NWEsMHgyMiwweGRjLDB4ODAsMHg3NSwweDAwLDB4MmQsMHhjMCwweDA4LDB4NzEsMHgwMiwweGYwLDB4MjAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGQ5ZTAsIDAsIHsweDIxLDB4YzAsMHgwYSwweDcwLDB4MDIsMHgxYywweDAwLDB4ZDQsMHgyOCwweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ5ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHg0MCwweGI3LDB4MDAsMHgyZCwweDAwIH0gfSwKLXsgIDE2LCAweGRhMDAsIDAsIHsweDA4LDB4NzIsMHgyMiwweGY0LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMiwweDA4LDB4NzAsMHgwMiwweGQ0LDB4MDAsMHg4NywweDgwIH0gfSwKLXsgIDE2LCAweGRhMTAsIDAsIHsweDI1LDB4NDAsMHgwOSwweDMwLDB4MDIsMHg1YywweDAxLDB4YWQsMHgwMCwweDI5LDB4ZDAsMHg0YiwweDcwLDB4MDIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGRhMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwMCwweGJiLDB4YzgsMHgyYywweGEwIH0gfSwKLXsgIDE2LCAweGRhMzAsIDAsIHsweDA5LDB4MjAsMHgwMiwweGNlLDB4MDAsMHhhMywweDAwLDB4MmMsMHhlMCwweGE4LDB4M2QsMHg0MiwweGMyLDB4MDAsMHg4YiwweDgwIH0gfSwKLXsgIDE2LCAweGRhNDAsIDAsIHsweDI0LDB4NDAsMHgwYiwweDMwLDB4MGEsMHg2YywweDA4LDB4YTMsMHg0MCwweGE4LDB4ZTAsMHgwYiwweDM0LDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweGRhNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWQsMHgwMCwweGZmLDB4NDgsMHgzYywweDI4IH0gfSwKLXsgIDE2LCAweGRhNjAsIDAsIHsweDBjLDB4YTksMHgyMywweDZjLDB4ODAsMHg4YiwweDAwLDB4M2YsMHhjMCwweDBjLDB4ZmMsMHgwMywweGVjLDB4MDAsMHhkOCwweDgwIH0gfSwKLXsgIDE2LCAweGRhNzAsIDAsIHsweDM0LDB4NDAsMHgwZCwweDMwLDB4MDMsMHg3YywweDAyLDB4YTMsMHg0MCwweDM4LDB4NjgsMHgwZiwweDI0LDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGRhODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWQsMHg4OCwweGZiLDB4MDAsMHgzZSwweDUwIH0gfSwKLXsgIDE2LCAweGRhOTAsIDAsIHsweDBmLDB4YTEsMHgwMywweGVjLDB4MDQsMHgzYSwweGMwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHg4MywweGU4LDB4MDIsMHhmOCwweDEwIH0gfSwKLXsgIDE2LCAweGRhYTAsIDAsIHsweDNhLDB4NDEsMHgwZSwweDkwLDB4MDMsMHhhYywweDAwLDB4OWIsMHgwOCwweGI2LDB4NDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGRhYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHhiMywweDIwIH0gfSwKLXsgIDE2LCAweGRhYzAsIDAsIHsweDBjLDB4NTAsMHgxMywweDFjLDB4MDksMHhjZCwweDgzLDB4MzMsMHhjMCwweDgzLDB4NzAsMHgwMCwweDNjLDB4MDAsMHhkYywweDEwIH0gfSwKLXsgIDE2LCAweGRhZDAsIDAsIHsweDMyLDB4NjAsMHgwZSwweGYxLDB4NDMsMHgyYywweDAwLDB4Y2UsMHgwNCwweDNiLDB4NzAsMHgwYywweGYwLDB4ODMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGRhZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NjcsMHg4MCwweGJiLDB4MDEsMHg2MiwweDIxIH0gfSwKLXsgIDE2LCAweGRhZjAsIDAsIHsweDhhLDB4ODksMHgyMCwweDJjLDB4MDAsMHg4MCwweGUwLDB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMywweGQ4LDB4MTAsMHg4YywweDA0IH0gfSwKLXsgIDE2LCAweGRiMDAsIDAsIHsweDIyLDB4NDAsMHgwNSwweDkwLDB4MDIsMHhhYywweDAwLDB4ZDgsMHg4MCwweDM2LDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGRiMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjYsMHgwMCwweGJiLDB4MDAsMHgyMiwweDA2IH0gfSwKLXsgIDE2LCAweGRiMjAsIDAsIHsweDA4LDB4ODAsMHgwMiwweDJlLDB4MDAsMHg4OCwweDIwLDB4MjIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGE0LDB4MDAsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGRiMzAsIDAsIHsweDYyLDB4YzQsMHgwOCwweGIwLDB4MDYsMHgyYywweDAwLDB4ODgsMHg4MCwweDIyLDB4NDEsMHgwOCwweGEwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGRiNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGRiNTAsIDAsIHsweDBhLDB4MDAsMHg4MiwweDBjLDB4MDAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgyMiwweGEwLDB4MDAsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGRiNjAsIDAsIHsweGEwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4YywweDAwLDB4OTAsMHgwMCwweDI0LDB4NDAsMHgwYSwweDI4LDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGRiNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NjAsMHgwMCwweGZiLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGRiODAsIDAsIHsweDJjLDB4OTIsMHgwMywweDJjLDB4MDIsMHg4OCwweDAwLDB4MzEsMHhjMCwweDBiLDB4YjUsMHgwMiwweGE0LDB4MDAsMHhkMSwweDA0IH0gfSwKLXsgIDE2LCAweGRiOTAsIDAsIHsweDMyLDB4NDAsMHgwZSwweDkwLDB4MDMsMHgyYywweDQwLDB4YzksMHgwMCwweDNhLDB4NDAsMHg4YywweGEwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGRiYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgyZiwweDAwIH0gfSwKLXsgIDE2LCAweGRiYjAsIDAsIHsweDBmLDB4YzAsMHgwMywweGRjLDB4MDAsMHhmYywweDAwLDB4M2YsMHhjMSwweDBmLDB4ZjAsMHg0MywweGYwLDB4MDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGRiYzAsIDAsIHsweDNmLDB4NDAsMHg0ZiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZjUsMHgwMCwweDNmLDB4NDAsMHgwZiwweGUwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGRiZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDgsMHg4MCwweGNjLDB4MDAsMHhiNywweDA0IH0gfSwKLXsgIDE2LCAweGRiZTAsIDAsIHsweDRlLDB4ZTEsMHgwMywweDNjLDB4MjAsMHhkZiwweDEwLDB4MzEsMHg4MCwweDA2LDB4ZjAsMHgwMywweDdmLDB4MDAsMHhmZiwweGMwIH0gfSwKLXsgIDE2LCAweGRiZjAsIDAsIHsweDNiLDB4YzAsMHgwZSwweGYyLDB4MDMsMHg1ZSwweDAwLDB4ZWYsMHgxMCwweDMzLDB4ZDAsMHgyYywweGYyLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGRjMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDEwLDB4ZTksMHgwMCwweDg4LDB4YzYsMHgyMCwweDVjIH0gfSwKLXsgIDE2LCAweGRjMTAsIDAsIHsweDA4LDB4YTQsMHg1NywweDY1LDB4MDAsMHg4ZiwweDUyLDB4MmEsMHhmMCwweDA5LDB4ZmMsMHgwMiwweDA0LDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGRjMjAsIDAsIHsweDJkLDB4ZDksMHgwOSwweDc0LDB4ODMsMHg2NCwweDI4LDB4ODMsMHg0NCwweDIyLDB4ODQsMHg4OCwweDA2LDB4ODIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGRjMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4YzksMHgwMCwweDgwLDB4MTAsMHgyMCwweDA4IH0gfSwKLXsgIDE2LCAweGRjNDAsIDAsIHsweDA4LDB4MzEsMHgxMiwweDA0LDB4YjIsMHhhMywweDAwLDB4MjAsMHg4NCwweDFiLDB4MzQsMHgwMiwweDBjLDB4ODAsMHhiMywweDIwIH0gfSwKLXsgIDE2LCAweGRjNTAsIDAsIHsweDJjLDB4YzcsMHgwOSwweDM2LDB4MDIsMHg4YywweDgwLDB4OTMsMHg0MCwweGFjLDB4YzgsMHgwOCwweDMxLDB4MjgsMHgzMiwweDAxIH0gfSwKLXsgIDE2LCAweGRjNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTksMHgwMCwweDg4LDB4MDAsMHhhMiwweDUwIH0gfSwKLXsgIDE2LCAweGRjNzAsIDAsIHsweDA4LDB4MzUsMHgwMiwweDI0LDB4MDAsMHg4YiwweDA0LDB4MmUsMHhjMSwweDA5LDB4YjAsMHgwMiwweDI0LDB4OTQsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGRjODAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjYywweDYwLDB4OGIsMHgwMCwweDJlLDB4ODAsMHgwOCwweDgwLDB4MDAsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGRjOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4ZTcsMHgwMiwweGNiLDB4MTgsMHhiMiwweDgwIH0gfSwKLXsgIDE2LCAweGRjYTAsIDAsIHsweDJjLDB4YWMsMHgwYSwweDJlLDB4MDgsMHhlYiwweDAwLDB4MzIsMHgxMiwweDRlLDB4YjAsMHgwMywweDJiLDB4ODAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGRjYjAsIDAsIHsweDNhLDB4YzAsMHgwYSwweGIwLDB4MDMsMHhhYiwweDA4LDB4ZWIsMHgwNCwweDJlLDB4NDgsMHgwYywweGI4LDB4ODMsMHgwMCwweDA0IH0gfSwKLXsgIDE2LCAweGRjYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjYsMHg4MCwweGZmLDB4ODAsMHgzOSwweGNhIH0gfSwKLXsgIDE2LCAweGRjZDAsIDAsIHsweDBkLDB4ZTgsMHgwMywweGQ2LDB4NDAsMHhlNywweDA0LDB4M2IsMHg2NiwweDRlLDB4NzAsMHgwMywweGI4LDB4MDAsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweGRjZTAsIDAsIHsweDNmLDB4YzAsMHg2YywweGYwLDB4MDMsMHg3MCwweDA2LDB4ZTcsMHgwMCwweDMxLDB4MDQsMHgwZiwweGMxLDB4NDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGRjZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4ODUsMHgwMCwweGNiLDB4NDAsMHgzMiwweDkwIH0gfSwKLXsgIDE2LCAweGRkMDAsIDAsIHsweDJmLDB4YjAsMHgwYiwweDY0LDB4ODAsMHhmYiwweDA4LDB4YmEsMHgxMCwweDBkLDB4YjAsMHhhNywweDJkLDB4MDAsMHhmYiwweDA0IH0gfSwKLXsgIDE2LCAweGRkMTAsIDAsIHsweDNlLDB4YzAsMHg4ZSwweGIwLDB4MDMsMHg2ZCwweDAwLDB4ZGIsMHgwMSwweDMyLDB4NDAsMHg4YywweDMzLDB4MDMsMHg5MCwweDA0IH0gfSwKLXsgIDE2LCAweGRkMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4MjQsMHgwMCwweDgzLDB4ZTAsMHhhMiwweGQwIH0gfSwKLXsgIDE2LCAweGRkMzAsIDAsIHsweDQwLDB4YjAsMHgwMiwweDI1LDB4MDQsMHhiZiwweDgwLDB4YTAsMHg1MCwweDA4LDB4ZjgsMHgwMiwweDIwLDB4MDAsMHg4YiwweDAyIH0gfSwKLXsgIDE2LCAweGRkNDAsIDAsIHsweDJmLDB4ZDAsMHgwOCwweGYwLDB4MDIsMHgyNCwweDAwLDB4OGYsMHg4MCwweDM2LDB4MDEsMHgwOCwweDg0LDB4NDIsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweGRkNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDA1LDB4NDQsMHgwMCwweDgzLDB4NDgsMHgyMCwweGM0IH0gfSwKLXsgIDE2LCAweGRkNjAsIDAsIHsweDA5LDB4MDAsMHgwMiwweDQ2LDB4MDAsMHhiMywweDAxLDB4YTgsMHg5MCwweDE5LDB4MzAsMHgxMiwweDhjLDB4MDAsMHhhMywweDA0IH0gfSwKLXsgIDE2LCAweGRkNzAsIDAsIHsweDJlLDB4ZTIsMHgwYSwweGIwLDB4MDIsMHgwYywweDAwLDB4ODMsMHg0OSwweDI4LDB4YzAsMHgwOSwweDNjLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGRkODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhmMCwweDAxLDB4MzYsMHgwNCwweDgzLDB4ODAsMHgyMSwweGUxIH0gfSwKLXsgIDE2LCAweGRkOTAsIDAsIHsweDA4LDB4MzgsMHgxMiwweDFlLDB4MjgsMHhiMywweDk4LDB4MjEsMHhhMCwweDE5LDB4MzgsMHg4MiwweDk2LDB4MDAsMHg4NywweDgzIH0gfSwKLXsgIDE2LCAweGRkYTAsIDAsIHsweDJkLDB4ZTIsMHgwOCwweDc4LDB4MjIsMHgzNiwweDhjLDB4ODcsMHg4MCwweDJkLDB4ZTAsMHgwOSwweDc5LDB4MDIsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGRkYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDQsMHgwMCwweGMzLDB4MzAsMHgzMCwweGM4IH0gfSwKLXsgIDE2LCAweGRkYzAsIDAsIHsweDRkLDB4MDAsMHgwYiwweDRjLDB4ODAsMHhmMywweDEyLDB4MzgsMHhjMCwweDBkLDB4M2EsMHgwMiwweDhjLDB4ODAsMHhmMywweDAwIH0gfSwKLXsgIDE2LCAweGRkZDAsIDAsIHsweDNjLDB4YzAsMHgwZSwweDMwLDB4MGIsMHgwZSwweDAwLDB4YzMsMHgwYywweDNhLDB4YzAsMHgwZCwweDMwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGRkZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YjQsMHgwNiwweGZmLDB4MTAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGRkZjAsIDAsIHsweDBmLDB4YjAsMHgxMywweGJjLDB4MDAsMHhmZiwweDEwLDB4N2YsMHhjMCwweDBlLDB4ZjEsMHhhMywweDdjLDB4MDAsMHhmZiwweDEyIH0gfSwKLXsgIDE2LCAweGRlMDAsIDAsIHsweDNmLDB4YzIsMHgwZiwweGY1LDB4MjMsMHhiYywweDQxLDB4ZWYsMHgxOCwweDM3LDB4ODAsMHhhZSwweGMwLDB4MDMsMHg1MCwweDA2IH0gfSwKLXsgIDE2LCAweGRlMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGRiLDB4MDAsMHgzZSwweGRhIH0gfSwKLXsgIDE2LCAweGRlMjAsIDAsIHsweDBjLDB4ODAsMHgwMywweDY2LDB4MTAsMHg4YiwweDAwLDB4MzIsMHg4MCwweDhjLDB4YjYsMHgwMywweDRhLDB4MDAsMHg0YiwweDgwIH0gfSwKLXsgIDE2LCAweGRlMzAsIDAsIHsweDMyLDB4YzgsMHgwYywweGI0LDB4MDMsMHgwYSwweDEwLDB4ZGIsMHgwMCwweDNlLDB4YzEsMHgwYywweGIwLDB4NDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGRlNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDExLDB4YjQsMHgwMCwweDg3LDB4MDQsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGRlNTAsIDAsIHsweDBkLDB4NzAsMHgwMywweDFjLDB4MDgsMHg4NywweDQ4LDB4MjAsMHg4MSwweDBkLDB4NzIsMHg4MiwweDVjLDB4MDAsMHhkNywweDAwIH0gfSwKLXsgIDE2LCAweGRlNjAsIDAsIHsweDIxLDB4Y2MsMHgyOCwweGYwLDB4MDIsMHgxYywweDEwLDB4ODcsMHgyMCwweDJjLDB4MDAsMHgwOCwweDQwLDB4MGEsMHgzMiwweDA0IH0gfSwKLXsgIDE2LCAweGRlNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OTYsMHgwMCwweGI3LDB4ODEsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweGRlODAsIDAsIHsweDA4LDB4NDgsMHgwMiwweDBlLDB4MDQsMHg4NywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweDNlLDB4MDEsMHg4NywweDgwIH0gfSwKLXsgIDE2LCAweGRlOTAsIDAsIHsweDIxLDB4ZTAsMHgxOCwweDc5LDB4MDIsMHgzYSwweDAxLDB4OTcsMHhhMCwweDJkLDB4NjAsMHgwOCwweDM4LDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGRlYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4YzYsMHgwMCwweGEzLDB4YzYsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGRlYjAsIDAsIHsweDA5LDB4MzAsMHgwMiwweDBjLDB4MDEsMHg4MywweDAwLDB4MjAsMHhlMCwweDA5LDB4MzAsMHgwMiwweDRlLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweGRlYzAsIDAsIHsweDIwLDB4YzAsMHg0OSwweDMwLDB4MjIsMHgwZiwweDY0LDB4ODMsMHgwMiwweDZjLDB4ZDQsMHgyOCwweDMwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGRlZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDExLDB4YWIsMHg4MCwweGZhLDB4ZTAsMHgzYywweDg4IH0gfSwKLXsgIDE2LCAweGRlZTAsIDAsIHsweDBjLDB4ZTAsMHgwMiwweDI4LDB4MDIsMHhjYSwweDAwLDB4YjMsMHhhOSwweDBjLDB4YTAsMHgwMywweDNiLDB4MTAsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGRlZjAsIDAsIHsweGEyLDB4ODAsMHgwYywweGEwLDB4MGIsMHgzOCwweDAwLDB4ZGEsMHgwMCwweDNmLDB4YjAsMHgwYywweGU2LDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGRmMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4YzAsMHgyMCwweDk4LDB4MDgsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGRmMTAsIDAsIHsweDBmLDB4ODAsMHgwYiwweGUxLDB4MDAsMHhmOCwweDAxLDB4M2MsMHgxMCwweDRmLDB4MDAsMHgwMywweGEwLDB4NDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGRmMjAsIDAsIHsweDNlLDB4MTAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNjLDB4MDIsMHgyZiwweDA0LDB4OTMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGRmMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGMxLDB4YzEsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGRmNDAsIDAsIHsweDBjLDB4OTgsMHgwMywweDI2LDB4NDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTgsMHgwMywweDI0LDB4MjQsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGRmNTAsIDAsIHsweDNjLDB4NjAsMHgwYywweDEwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHg4MiwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGRmNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDUwIH0gfSwKLXsgIDE2LCAweGRmNzAsIDAsIHsweDBkLDB4OTgsMHgwMiwweDI1LDB4ODAsMHhiOSwweDAwLDB4MjIsMHg1MiwweDBkLDB4OWMsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGRmODAsIDAsIHsweDJlLDB4NjAsMHgwOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjksMHg0MCwweDM2LDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGRmOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDhkLDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweGRmYTAsIDAsIHsweDA4LDB4MTIsMHgwMiwweDI0LDB4MDAsMHhhMSwweDEwLDB4YTIsMHg2MCwweDA4LDB4OTIsMHg4YSwweDI0LDB4MDAsMHhiOSwweDAxIH0gfSwKLXsgIDE2LCAweGRmYjAsIDAsIHsweDJlLDB4NDYsMHgwOCwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHg1MCwweDIyLDB4NDAsMHgyOCwweDkwLDB4ODIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGRmYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4NCwweDg1LDB4MjAsMHhhMSwweGQ4IH0gfSwKLXsgIDE2LCAweGRmZDAsIDAsIHsweDA5LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhiMywweDIwLDB4MjAsMHg0MCwweDI5LDB4MTIsMHgwNiwweDA0LDB4MDAsMHhiMSwweDAxIH0gfSwKLXsgIDE2LCAweGRmZTAsIDAsIHsweDJjLDB4NDgsMHgyOCwweDEyLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgyMCwweDI0LDB4NDgsMHgwOCwweDEyLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGRmZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MiwweDhhLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGUwMDAsIDAsIHsweDBjLDB4MDUsMHgwMywweDIxLDB4NDAsMHhlMCwweDUwLDB4YjIsMHgwMCwweDJjLDB4ODAsMHgwMiwweDIxLDB4NDAsMHhmMCwweDUwIH0gfSwKLXsgIDE2LCAweGUwMTAsIDAsIHsweDNjLDB4MTQsMHgwYywweDg1LDB4MTMsMHhhMSwweDUwLDB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwYywweDg1LDB4MjMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGUwMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHg0MCwweGY5LDB4MTAsMHgzZSwweDQ0IH0gfSwKLXsgIDE2LCAweGUwMzAsIDAsIHsweDBmLDB4ZDQsMHgwYiwweGY0LDB4NDQsMHhmOSwweDEwLDB4M2YsMHg1MCwweDRmLDB4MTEsMHgwMywweGY0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGUwNDAsIDAsIHsweDNlLDB4NDQsMHgwZiwweDkxLDB4NTMsMHhmNCwweDE0LDB4ZjksMHgxMCwweDNmLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNiwweDAyIH0gfSwKLXsgIDE2LCAweGUwNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDA1LDB4ZTYsMHhhMCwweGRkLDB4ODgsMHhiMywweDY2IH0gfSwKLXsgIDE2LCAweGUwNjAsIDAsIHsweDBjLDB4ZGMsMHg4MywweDM2LDB4ODgsMHhiZCwweGEwLDB4MzcsMHg2YSwweDBjLDB4ZGEsMHgwYiwweDI1LDB4MDIsMHhjOSwweDQwIH0gfSwKLXsgIDE2LCAweGUwNzAsIDAsIHsweDNmLDB4NzgsMHg0ZiwweDk4LDB4YjMsMHhlNSwweDA0LDB4Y2QsMHhhMCwweDcyLDB4NzgsMHgwYywweGQ4LDB4OGIsMHgyNiwweDE0IH0gfSwKLXsgIDE2LCAweGUwODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTMsMHgwMCwweDg4LDB4NDIsMHgyMiwweDMxIH0gfSwKLXsgIDE2LCAweGUwOTAsIDAsIHsweDA4LDB4MGEsMHgwMiwweDIyLDB4YTAsMHhiOCwweGY5LDB4MjIsMHgxMCwweDBkLDB4ODQsMHgxMiwweDZhLDB4ODAsMHg4OCwweDgwIH0gfSwKLXsgIDE2LCAweGUwYTAsIDAsIHsweDJlLDB4MjAsMHgwYiwweDA4LDB4MDIsMHhlMiwweDgwLDB4YTgsMHhhOCwweGEyLDB4MzgsMHg0OCwweGE4LDB4MDIsMHgwZSwweDAwIH0gfSwKLXsgIDE2LCAweGUwYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHhhMiwweDgxLDB4MDAsMHgyMCwweDQ4IH0gfSwKLXsgIDE2LCAweGUwYzAsIDAsIHsweDA4LDB4MTIsMHg0MiwweDQ1LDB4MDAsMHhiMSwweDAwLDB4MjQsMHg0MCwweDA5LDB4MTQsMHgwMiwweDI0LDB4MDAsMHg4MSwweDIwIH0gfSwKLXsgIDE2LCAweGUwZDAsIDAsIHsweDJjLDB4NTgsMHgwYiwweDEwLDB4ODIsMHhjNCwweDA0LDB4OTEsMHg0MCwweDY0LDB4NmMsMHgwOCwweDMwLDB4ODIsMHgxMiwweDA1IH0gfSwKLXsgIDE2LCAweGUwZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQxIH0gfSwKLXsgIDE2LCAweGUwZjAsIDAsIHsweDA4LDB4OTAsMHg4YSwweDY0LDB4ODAsMHhiOSwweDAwLDB4MjIsMHg1MCwweDA5LDB4OTAsMHgwNiwweDY0LDB4MDgsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGUxMDAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDYsMHhjNCwweDAxLDB4YjksMHgwMiwweDI2LDB4NjEsMHg4OCwweDkwLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGUxMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGUxMjAsIDAsIHsweDJjLDB4OTQsMHgyMywweDY0LDB4MDAsMHhiOSwweDAwLDB4MzYsMHg0MCwweDA5LDB4OTAsMHgxMywweDA1LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGUxMzAsIDAsIHsweDNlLDB4NDAsMHg0ZiwweDkwLDB4MTMsMHhlNSwweGMwLDB4ZDksMHgwMCwweDI2LDB4NDAsMHgyYywweDk0LDB4MDMsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGUxNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDAxLDB4YTQsMHgwMiwweGU5LDB4MDgsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweGUxNTAsIDAsIHsweDBmLDB4OTAsMHgwYiwweGE0LDB4MDAsMHhmMSwweDAwLDB4M2UsMHg0MSwweDBmLDB4OTAsMHg0MywweGE0LDB4ODgsMHhlOSwweDA0IH0gfSwKLXsgIDE2LCAweGUxNjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZTEsMHgwMCwweDNhLDB4NDAsMHg5ZiwweDkyLDB4NjMsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGUxNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODAsMHgxMCwweGUwLDB4MDEsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGUxODAsIDAsIHsweDhmLDB4ODAsMHgwMywweDIwLDB4MDAsMHhkOCwweDA4LDB4MzAsMHgwMSwweDhjLDB4MDAsMHgwMywweGUxLDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweGUxOTAsIDAsIHsweDNlLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyMSwweDAwLDB4YzgsMHgwMCwweDc4LDB4MDAsMHgwZiwweDg2LDB4MDMsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGUxYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4NDAsMHgyYiwweDgyIH0gfSwKLXsgIDE2LCAweGUxYjAsIDAsIHsweDBiLDB4YTAsMHgwMiwweDNhLDB4MDAsMHg4ZSwweDgwLDB4MjMsMHg4MiwweDA4LDB4ZTIsMHgwMiwweDI4LDB4MTAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGUxYzAsIDAsIHsweDJmLDB4OTgsMHgyOCwweGEwLDB4MTIsMHgyOCwweDAwLDB4OGUsMHgyMCwweDJlLDB4ODAsMHg0YiwweGU0LDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGUxZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMiwweGEyLDB4NDAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGUxZTAsIDAsIHsweDBiLDB4YjAsMHgwMiwweDRlLDB4NDAsMHg5MywweGMwLDB4YTAsMHgyMCwweDA4LDB4MzYsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweGUxZjAsIDAsIHsweDJjLDB4ZTIsMHgwOCwweDMwLDB4MDYsMHg0YywweDEyLDB4OTMsMHgwOCwweDI4LDB4YzAsMHgwYiwweGIwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGUyMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHgwOCwweDgyLDB4NDAsMHgyOSwweDQwIH0gfSwKLXsgIDE2LCAweGUyMTAsIDAsIHsweDBiLDB4NzAsMHgwMiwweDVlLDB4MDgsMHg4NCwweDA4LDB4MjMsMHg0MCwweDA4LDB4NzAsMHgwNiwweDFjLDB4ODAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGUyMjAsIDAsIHsweDJkLDB4MjAsMHgwOCwweDc5LDB4MTIsMHg1YywweDAwLDB4OTQsMHgwMCwweDJkLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGUyMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4M2UsMHgwMCwweGU0LDB4ODAsMHgzMSwweGExIH0gfSwKLXsgIDE2LCAweGUyNDAsIDAsIHsweDBmLDB4NTgsMHgxMywweDc2LDB4MDAsMHhkMCwweDgwLDB4MzEsMHhjMCwweDBjLDB4MzgsMHgwMywweGJlLDB4ODAsMHhkNywweDgxIH0gfSwKLXsgIDE2LCAweGUyNTAsIDAsIHsweDNmLDB4MjAsMHg4YywweDc5LDB4MDMsMHg3ZiwweDAxLDB4ZDYsMHg4MCwweDM5LDB4ZTgsMHg0ZiwweDY4LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGUyNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YmUsMHgwMCwweGZhLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGUyNzAsIDAsIHsweDhmLDB4OTYsMHgwYiwweGE0LDB4MDAsMHhlYSwweDAwLDB4M2MsMHhjMCwweDBmLDB4OTAsMHgwMywweGFjLDB4MjAsMHhmYiwweDQwIH0gfSwKLXsgIDE2LCAweGUyODAsIDAsIHsweDJlLDB4MDAsMHgwZiwweGIyLDB4MDMsMHhhZCwweGEwLDB4ZWEsMHgwMCwweDNlLDB4YzAsMHgwZiwweGEwLDB4MWIsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGUyOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwOCwweGRlLDB4ODEsMHgzMywweGE0IH0gfSwKLXsgIDE2LCAweGUyYTAsIDAsIHsweDBlLDB4ZmMsMHgxMywweDNlLDB4MDAsMHhmYywweDgwLDB4MTMsMHgyMCwweDBjLDB4NjgsMHgwMywweDNlLDB4MjAsMHhmZiwweGM4IH0gfSwKLXsgIDE2LCAweGUyYjAsIDAsIHsweDNmLDB4NjAsMHgxZCwweGY4LDB4MDMsMHg3ZSwweDAwLDB4YzcsMHg4MCwweDMzLDB4ZTIsMHgwYywweGQ4LDB4MDMsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGUyYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweDg2LDB4NDEsMHgzMSwweGM0IH0gfSwKLXsgIDE2LCAweGUyZDAsIDAsIHsweDA4LDB4NzksMHg0MiwweDljLDB4MDAsMHhiYywweDEwLDB4MjEsMHg0MCwweDg1LDB4MzUsMHgwMywweDVjLDB4MDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweGUyZTAsIDAsIHsweDJkLDB4YzAsMHgwOCwweDcyLDB4MDIsMHgyYywweDAwLDB4YTcsMHgwMSwweDM3LDB4YzAsMHgwOCwweDUxLDB4NDIsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGUyZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4OGMsMHg0MCwweDgyLDB4MDAsMHgyNCwweDgxIH0gfSwKLXsgIDE2LCAweGUzMDAsIDAsIHsweDA4LDB4ZDgsMHgwMiwweDE0LDB4MjAsMHhiNSwweDAwLDB4MjAsMHg0MCwweDA5LDB4NjAsMHgwMiwweDFjLDB4NDAsMHhiNywweDAwIH0gfSwKLXsgIDE2LCAweGUzMTAsIDAsIHsweDJjLDB4NDAsMHgwYiwweDMwLDB4MjIsMHhkYywweDAwLDB4OTcsMHgwMCwweDIxLDB4YzQsMHgwOCwweDQwLDB4MDIsMHg0NCwweDAwIH0gfSwKLXsgIDE2LCAweGUzMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDE0LDB4ZWMsMHgwMCwweDkyLDB4MDYsMHgyMCwweDkwIH0gfSwKLXsgIDE2LCAweGUzMzAsIDAsIHsweDM4LDB4MTUsMHgwMiwweDg2LDB4MDAsMHhiOCwweDAwLDB4NjAsMHg1MCwweDA5LDB4MzAsMHgwMiwweDRlLDB4MDEsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGUzNDAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDMwLDB4MDIsMHhjZSwweDIwLDB4YjMsMHgwMCwweDI0LDB4ZjAsMHg0OCwweDAyLDB4MGEsMHg1OCwweDA0IH0gfSwKLXsgIDE2LCAweGUzNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGNhLDB4MDAsMHhhNiwweDk0IH0gfSwKLXsgIDE2LCAweGUzNjAsIDAsIHsweDJjLDB4OTAsMHgwMywweDJlLDB4MDAsMHhmYiwweDA1LDB4YjIsMHg4NSwweDBkLDB4OTAsMHgwMywweDNmLDB4OTAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGUzNzAsIDAsIHsweDdlLDB4ODAsMHgxZiwweGYwLDB4NDMsMHhmYywweDIxLDB4OWEsMHgwMCwweDMzLDB4YzgsMHgzYywweGIyLDB4MDMsMHg2YSwweDA0IH0gfSwKLXsgIDE2LCAweGUzODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ZWMsMHgwMiwweGVhLDB4NDAsMHgzZCwweDgwIH0gfSwKLXsgIDE2LCAweGUzOTAsIDAsIHsweDBmLDB4MTAsMHg5MywweGVkLDB4MDAsMHhmYiwweDQwLDB4M2UsMHg5MCwweDhmLDB4MzAsMHgwMywweGVjLDB4ODAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGUzYTAsIDAsIHsweDNlLDB4OTEsMHgxYywweGIwLDB4MDMsMHgyYywweDEwLDB4ZTgsMHgwMCwweDNlLDB4YzgsMHgxZiwweDkwLDB4MDMsMHhhNSwweDEwIH0gfSwKLXsgIDE2LCAweGUzYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZmMsMHgwMiwweGU0LDB4MDAsMHg3MywweGEwIH0gfSwKLXsgIDE2LCAweGUzYzAsIDAsIHsweDBjLDB4ZmMsMHgwMywweDdjLDB4MDIsMHhmZiwweDEwLDB4MTMsMHhjNCwweDFjLDB4YzAsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGUzZDAsIDAsIHsweDM3LDB4ZTAsMHgwZCwweGYwLDB4MDMsMHhmYywweDAwLDB4ZWQsMHg4MCwweDMxLDB4YzAsMHgwYywweDMyLDB4NjMsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGUzZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NCwweDAwLDB4NmMsMHgwMCwweDhhLDB4YzAsMHgyMiwweGIxIH0gfSwKLXsgIDE2LCAweGUzZjAsIDAsIHsweDhhLDB4YjgsMHg0MywweDRhLDB4MTAsMHhkYiwweDIwLDB4MjAsMHhmMCwweDBhLDB4OTQsMHgwMywweDZjLDB4MDAsMHhiYiwweDA3IH0gfSwKLXsgIDE2LCAweGU0MDAsIDAsIHsweDIyLDB4YjgsMHgwOCwweGIwLDB4MDIsMHhlYywweDExLDB4ZTgsMHhjMCwweGIyLDB4YzAsMHgyYSwweDkyLDB4MWEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0MTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MmMsMHgwMCwweGFhLDB4ODAsMHgyMiwweDk4IH0gfSwKLXsgIDE2LCAweGU0MjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDJmLDB4MDMsMHhiYiwweDAxLDB4MmEsMHg4MywweDA4LDB4YjIsMHg0ZSwweDJjLDB4MDQsMHhhYiwweDAyIH0gfSwKLXsgIDE2LCAweGU0MzAsIDAsIHsweDIyLDB4YzQsMHgyOCwweGIwLDB4MjIsMHhlYywweDA5LDB4YjMsMHg1MCwweDYyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMSwweDgzLDB4MDAsMHg2MCwweDgwIH0gfSwKLXsgIDE2LCAweGU0NTAsIDAsIHsweDA4LDB4MTIsMHgwYSwweDQ0LDB4MDAsMHg5MywweDAwLDB4MmEsMHg4MCwweDRhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGU0NjAsIDAsIHsweDYwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDYwLDB4YzAsMHgwOCwweDAwLDB4NDYsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGU0NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBkLDB4NmMsMHgwMCwweGU4LDB4MDIsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGU0ODAsIDAsIHsweDJjLDB4ZjIsMHg0MywweDJjLDB4MDAsMHhmYiwweDAwLDB4YmEsMHhjMCwweDA4LDB4YTUsMHgwMiwweDNjLDB4MDAsMHhlZiwweDAwIH0gfSwKLXsgIDE2LCAweGU0OTAsIDAsIHsweDM2LDB4YzAsMHg0ZCwweGYwLDB4MTMsMHhmZCwweDUxLDB4ZmIsMHgwMCwweDMyLDB4YzAsMHgwYywweGIwLDB4MDMsMHgyMCwweDAxIH0gfSwKLXsgIDE2LCAweGU0YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweDdlLDB4MDQsMHgzZiwweDgwIH0gfSwKLXsgIDE2LCAweGU0YjAsIDAsIHsweDBmLDB4MzEsMHg0MywweGYwLDB4MDIsMHhmZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDgsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGU0YzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZWYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlOCwweDE2IH0gfSwKLXsgIDE2LCAweGU0ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjIsMHg0MCwweGZjLDB4ODAsMHgzZiwweDI0IH0gfSwKLXsgIDE2LCAweGU0ZTAsIDAsIHsweDBkLDB4ZDgsMHg1MywweGQ2LDB4MDQsMHhkZiwweDMyLDB4M2YsMHhjYywweDRjLDB4YzAsMHg0MywweGZjLDB4MDAsMHhkZiwweDYwIH0gfSwKLXsgIDE2LCAweGU0ZjAsIDAsIHsweDM3LDB4YzAsMHgwZiwweGM0LDB4MDMsMHg3YywweGQwLDB4ZGYsMHgyMCwweDMzLDB4ZDgsMHgwZCwweGY4LDB4NDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGU1MDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDE4LDB4ZTgsMHg4MCwweGIwLDB4MDEsMHgyZSwweDA4IH0gfSwKLXsgIDE2LCAweGU1MTAsIDAsIHsweDg4LDB4OTAsMHgwMiwweGVjLDB4MjAsMHg4YiwweDcwLDB4MmYsMHhjYywweDA4LDB4YjMsMHg4MiwweGZkLDB4ZTAsMHhiZiwweDQwIH0gfSwKLXsgIDE2LCAweGU1MjAsIDAsIHsweDIyLDB4ZDgsMHgwYiwweDkzLDB4MDIsMHhmZCwweGMwLDB4YWYsMHgxMCwweDI4LDB4ZjAsMHgwOCwweGJjLDB4MTIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGU1MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHgwMCwweGIwLDB4MDAsMHgyZSwweDAxIH0gfSwKLXsgIDE2LCAweGU1NDAsIDAsIHsweDBhLDB4MTIsMHg4MiwweGVjLDB4ODAsMHhiMywweDAwLDB4MmMsMHhjOCwweDBhLDB4MDAsMHgzMiwweDhjLDB4MDAsMHhhMywweDMwIH0gfSwKLXsgIDE2LCAweGU1NTAsIDAsIHsweDIwLDB4ZDIsMHgwOSwweDAwLDB4MDIsMHg4YywweDgwLDB4ODMsMHgwMCwweDI4LDB4ZDgsMHgwYiwweDM0LDB4MTIsMHhmMiwweDAxIH0gfSwKLXsgIDE2LCAweGU1NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4YWMsMHgwMSwweGI4LDB4MDIsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGU1NzAsIDAsIHsweDBhLDB4OTAsMHgxMiwweGVjLDB4MTAsMHg4YiwweDAwLDB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMCwweGVjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGU1ODAsIDAsIHsweDIyLDB4YzEsMHgwYiwweDkyLDB4MDIsMHhjYywweDAxLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwMiwweGIwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGU1OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZTAsMHgwMCwweGZhLDB4MGMsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGU1YTAsIDAsIHsweDBmLDB4YTAsMHgxMywweGVlLDB4MjAsMHhkYiwweDAwLDB4M2UsMHhjMCwweDJlLDB4ODgsMHg1MywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGU1YjAsIDAsIHsweGIyLDB4YzAsMHg4ZiwweGFjLDB4ODMsMHhhYywweDA4LDB4ZGIsMHgwMCwweDFhLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhjMCwweDA0IH0gfSwKLXsgIDE2LCAweGU1YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjgsMHgwMCwweGZlLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGU1ZDAsIDAsIHsweDJkLDB4ZTAsMHgwMywweGZlLDB4ODAsMHg3ZiwweDAwLDB4M2YsMHhjMCwweDBkLDB4ZDIsMHgwMywweGZjLDB4MDAsMHhiZiwweDAxIH0gfSwKLXsgIDE2LCAweGU1ZTAsIDAsIHsweDNlLDB4YzAsMHgwZCwweGM4LDB4MDMsMHhmYywweDBjLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwOSwweGYwLDB4MjMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGU1ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTQsMHgwMCwweGZhLDB4NDAsMHgzMiwweGMxIH0gfSwKLXsgIDE2LCAweGU2MDAsIDAsIHsweDBmLDB4YTAsMHgwMywweDI5LDB4MDgsMHhkYiwweDAwLDB4M2UsMHhjMCwweDBlLDB4ODUsMHgwMywweGVjLDB4MjAsMHhjYiwweDAwIH0gfSwKLXsgIDE2LCAweGU2MTAsIDAsIHsweDNhLDB4YzAsMHgwZSwweGE0LDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNhLDB4YzIsMHgwZSwweGIwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGU2MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweGJhLDB4NjAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGU2MzAsIDAsIHsweDBiLDB4YTAsMHgwMiwweDA4LDB4MDAsMHhhZiwweDAwLDB4MmYsMHhkMCwweDBiLDB4YjUsMHgwMiwweGZlLDB4MDIsMHg4ZiwweDAwIH0gfSwKLXsgIDE2LCAweGU2NDAsIDAsIHsweDJmLDB4YzAsMHgwZCwweDgwLDB4MGEsMHgzYywweDAwLDB4YjcsMHgwMCwweDIzLDB4YzIsMHgwNSwweGYwLDB4MjIsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweGU2NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA0LDB4NDAsMHgwMCwweGIxLDB4ODgsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGU2NjAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MmUsMHhjOCwweDBiLDB4MDgsMHgwNiwweDRkLDB4NDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGU2NzAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDMwLDB4MDYsMHgwYywweDA4LDB4OTMsMHgyMCwweDBhLDB4ZTAsMHg0YSwweDMwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGU2ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDEwLDB4NWEsMHgwMCwweGI1LDB4OTAsMHgyMSwweDIwIH0gfSwKLXsgIDE2LCAweGU2OTAsIDAsIHsweDBiLDB4NTgsMHg0MiwweDNlLDB4MDAsMHhhNywweDgwLDB4MmQsMHhlMCwweDBiLDB4NjksMHgwMiwweGRlLDB4NDAsMHg4NywweDkyIH0gfSwKLXsgIDE2LCAweGU2YTAsIDAsIHsweDJkLDB4ZTAsMHgwOSwweDE4LDB4MDIsMHg5ZSwweDAxLDB4YjcsMHg4MCwweDI5LDB4ZTAsMHgwMywweDcwLDB4MDIsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGU2YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4NDQsMHgwMCwweGYxLDB4MDEsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGU2YzAsIDAsIHsweDVmLDB4MTgsMHgwMywweDBjLDB4MTAsMHg4MywweDAwLDB4M2MsMHhjNCwweDBlLDB4MDQsMHgwMywweGVjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGU2ZDAsIDAsIHsweDMwLDB4YzQsMHgwYywweDMxLDB4MDMsMHg4YywweDAwLDB4ZjMsMHgwMCwweDM4LDB4YzgsMHgwZSwweDMxLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGU2ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4YmMsMHgwMCwweGZkLDB4MDQsMHhiZiwweDA0IH0gfSwKLXsgIDE2LCAweGU2ZjAsIDAsIHsweDRmLDB4NTgsMHgwMywweGY4LDB4MDgsMHhlZiwweDA4LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMSwweGZjLDB4MDAsMHhmZiwweDRjIH0gfSwKLXsgIDE2LCAweGU3MDAsIDAsIHsweDNmLDB4YzEsMHgwZiwweGQwLDB4MDMsMHgzYywweDAwLDB4ZjcsMHgwMCwweDM3LDB4YzIsMHgwZCwweDcyLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGU3MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZTIsMHgwMCwweGRiLDB4MDAsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweGU3MjAsIDAsIHsweDRkLDB4YTgsMHgwMywweDJjLDB4MDgsMHhmYiwweDAwLDB4N2UsMHhjOCwweDhmLDB4YjAsMHgwYiwweDZmLDB4NDUsMHhlYiwweGMyIH0gfSwKLXsgIDE2LCAweGU3MzAsIDAsIHsweDM2LDB4YzAsMHgwNywweGEwLDB4MDMsMHhlZiwweDIwLDB4Y2IsMHg1MCwweGIyLDB4YzAsMHgwYywweDc5LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGU3NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE5LDB4OTgsMHgwMCwweDhmLDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGU3NTAsIDAsIHsweDBiLDB4NjAsMHgwMywweDVjLDB4MDAsMHgzNywweDAwLDB4MmQsMHhkMiwweDBiLDB4MzAsMHgwMiwweDBjLDB4YTgsMHg4NywweDI0IH0gfSwKLXsgIDE2LCAweGU3NjAsIDAsIHsweDIxLDB4ZDAsMHgwOSwweDcwLDB4MDIsMHhkZCwweDg4LDB4ODcsMHgyYSwweDIzLDB4ZTgsMHgwOCwweDcwLDB4MDIsMHgzMiwweDA0IH0gfSwKLXsgIDE2LCAweGU3NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4YjYsMHgwMCwweDk3LDB4ODAsMHgyMSwweGUwIH0gfSwKLXsgIDE2LCAweGU3ODAsIDAsIHsweDBiLDB4NjgsMHgwMiwweDFlLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlOCwweDhiLDB4NDgsMHg4MiwweDFlLDB4ODAsMHhhMywweDg0IH0gfSwKLXsgIDE2LCAweGU3OTAsIDAsIHsweDI1LDB4ZTgsMHgwYiwweDY4LDB4MDIsMHhjZSwweDAyLDB4ODcsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDdhLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGU3YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDA0LDB4Y2MsMHgwOCwweDgzLDB4ODIsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweGU3YjAsIDAsIHsweDhiLDB4MmEsMHgwMiwweDQ4LDB4NDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHg4MiwweDBjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGU3YzAsIDAsIHsweDAwLDB4YzEsMHgwOSwweDMxLDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGU3ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4ZTgsMHgwMCwweGRhLDB4YTAsMHgzMiwweGE4IH0gfSwKLXsgIDE2LCAweGU3ZTAsIDAsIHsweDhkLDB4YTgsMHgwMywweDNiLDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4ZTQsMHgwMywweDY4LDB4MDAsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGU3ZjAsIDAsIHsweDM2LDB4ODAsMHgwZiwweGU0LDB4MDMsMHhlOCwweDAwLDB4Y2EsMHgwMCwweDMyLDB4ODAsMHgyYywweGEwLDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGU4MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAxLDB4YTAsMHgxMCwweGY4LDB4MDAsMHhiZSwweDIwIH0gfSwKLXsgIDE2LCAweGU4MTAsIDAsIHsweDhmLDB4YzEsMHgwMywweGUwLDB4MjQsMHhmOCwweDAwLDB4M2UsMHgxMCwweDBmLDB4ODQsMHgwMywweGUwLDB4MDAsMHhmOCwweDAxIH0gfSwKLXsgIDE2LCAweGU4MjAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMSwweGJlLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGU4MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGY5LDB4NDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGU4NDAsIDAsIHsweGNmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhjOSwweDAwLDB4MGUsMHg1MCwweDBmLDB4MWEsMHgwMywweDI2LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGU4NTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4ODEsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGU4NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwNCwweGIxLDB4MDQsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGU4NzAsIDAsIHsweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg1MywweDBiLDB4OTIsMHgwYSwweDI2LDB4NDgsMHhiOSwweDA0IH0gfSwKLXsgIDE2LCAweGU4ODAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHg4MCwweDAyLDB4NTAsMHgwOCwweDkwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGU4OTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDA1LDB4MjQsMHgwMCwweGJkLDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweGU4YTAsIDAsIHsweDBiLDB4ZDAsMHgxMiwweGM0LDB4MDAsMHg4OSwweDAyLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgyMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGU4YjAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjEsMHgyMCwweDIwLDB4NDAsMHg2OCwweDkwLDB4MjIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGU4YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDE0LDB4MTQsMHgwMCwweGJmLDB4MTIsMHhhMSwweDQwIH0gfSwKLXsgIDE2LCAweGU4ZDAsIDAsIHsweDBiLDB4NTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDIwLDB4MmMsMHg0OCwweDBiLDB4MTIsMHgwMiwweDA0LDB4MTAsMHhiMSwweDExIH0gfSwKLXsgIDE2LCAweGU4ZTAsIDAsIHsweDJjLDB4NDgsMHgwYiwweDEzLDB4MjIsMHhjNCwweDAwLDB4YjEsMHg0MCwweDIwLDB4NWEsMHgwOCwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGU4ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGY4LDB4NDAsMHgzMiwweDE0IH0gfSwKLXsgIDE2LCAweGU5MDAsIDAsIHsweDBmLDB4NDUsMHgwMywweGUxLDB4NDAsMHhjOCwweDUwLDB4M2UsMHgxNSwweDhmLDB4ODUsMHgwMywweDIxLDB4ZTgsMHhmOCwweDY4IH0gfSwKLXsgIDE2LCAweGU5MTAsIDAsIHsweDNlLDB4MTQsMHgwZiwweDg0LDB4MDMsMHhlMSwweGUwLDB4ZjAsMHgyOCwweDMyLDB4YTgsMHhjYywweDgwLDB4MjMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweGU5MjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDE1LDB4YzQsMHgxMCwweGY5LDB4MjAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGU5MzAsIDAsIHsweDBmLDB4OTAsMHgwMywweGY0LDB4MDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4ZDEsMHgwMywweGU0LDB4MDAsMHhmOSwweDIwIH0gfSwKLXsgIDE2LCAweGU5NDAsIDAsIHsweDNlLDB4NDQsMHgwZiwweGQzLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweGJlLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGU5NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZTQsMHgwMCwweGZkLDB4MTAsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweGU5NjAsIDAsIHsweDBjLDB4ZDAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2YsMHg0MCwweDRjLDB4ZDAsMHgwMywweGY2LDB4MDAsMHhmZCwweDkwIH0gfSwKLXsgIDE2LCAweGU5NzAsIDAsIHsweDNhLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlNiwweGEwLDB4ZmQsMHhhOCwweDM3LDB4NjgsMHgwYywweGQ4LDB4ODMsMHgyNiwweDAwIH0gfSwKLXsgIDE2LCAweGU5ODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwOCwweGM4LDB4YTAsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweGU5OTAsIDAsIHsweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MmUsMHgwMCwweDBjLDB4ODAsMHgxMiwweGUwLDB4MDAsMHhiOCwweDgwIH0gfSwKLXsgIDE2LCAweGU5YTAsIDAsIHsweDIyLDB4MDAsMHgwZCwweDBhLDB4MDIsMHhlMywweDgwLDB4YjAsMHhjMCwweDIwLDB4MzQsMHgwOCwweDg0LDB4MDMsMHg0ZSwweDA0IH0gfSwKLXsgIDE2LCAweGU5YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ODQsMHgwOSwweGExLDB4MDAsMHgyMCwweDQxIH0gfSwKLXsgIDE2LCAweGU5YzAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg5MSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM1LDB4MDAsMHhiMSwweDYwIH0gfSwKLXsgIDE2LCAweGU5ZDAsIDAsIHsweDIwLDB4NDAsMHgwOCwweDEwLDB4YTIsMHhjNCwweDIwLDB4YjEsMHgyOCwweDI0LDB4NGEsMHgwOCwweDEwLDB4MDIsMHg1MiwweDAxIH0gfSwKLXsgIDE2LCAweGU5ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE0LDB4YTQsMHgwMSwweDgxLDB4MDAsMHhhMiwweDQwIH0gfSwKLXsgIDE2LCAweGU5ZjAsIDAsIHsweGE4LDB4OTAsMHgwMCwweDI1LDB4NDAsMHg4OSwweDAxLDB4MmMsMHg0MCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGVhMDAsIDAsIHsweDJhLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwNCwweDIyLDB4NDEsMHg0OCwweDkwLDB4MDIsMHg0NiwweDA0IH0gfSwKLXsgIDE2LCAweGVhMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE0LDB4YTUsMHgyMCwweGU5LDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGVhMjAsIDAsIHsweDRjLDB4MTAsMHgwYiwweDI2LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDJjLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGVhMzAsIDAsIHsweGIyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHgyYywweDkwLDB4MDMsMHg2OCwweDA0IH0gfSwKLXsgIDE2LCAweGVhNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAxLDB4YTQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGVhNTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGVhNjAsIDAsIHsweDM2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGVhNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTEsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGVhODAsIDAsIHsweDBmLDB4ODAsMHgxMywweGEwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwNCwweDhjLDB4ODAsMHgwMywweGEwLDB4YzAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGVhOTAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4YzAsMHgwOSwweDMyLDB4MDAsMHg0YywweDgwLDB4MDEsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGVhYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweGJlLDB4MDAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGVhYjAsIDAsIHsweDBiLDB4ZTAsMHgwMiwweDg4LDB4MDAsMHhhYSwweDAwLDB4MDMsMHhhMCwweDBhLDB4ZTYsMHgwMiwweGZhLDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGVhYzAsIDAsIHsweDMyLDB4ODAsMHgwYiwweGEwLDB4MDIsMHgyOCwweDAwLDB4OGUsMHg4MCwweGEzLDB4ODAsMHgyOCwweDIwLDB4MDIsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGVhZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmMsMHgwMCwweGIzLDB4NDgsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGVhZTAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzQsMHg4MiwweDhlLDB4MDQsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGVhZjAsIDAsIHsweDBhLDB4YzAsMHgxYiwweDMwLDB4MDIsMHgwYywweDAyLDB4OTAsMHg1MCwweDIwLDB4NjAsMHgwOCwweDMwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGViMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDExLDB4MWMsMHg4MCwweGJkLDB4MGEsMHgyMSwweDQ4IH0gfSwKLXsgIDE2LCAweGViMTAsIDAsIHsweDBiLDB4NTIsMHgwMiwweDljLDB4NDAsMHhhMywweGEwLDB4MjAsMHg4MCwweDBhLDB4NjAsMHgwMiwweGNlLDB4MDAsMHg4NSwweDIwIH0gfSwKLXsgIDE2LCAweGViMjAsIDAsIHsweDIxLDB4YzQsMHgwYiwweDdhLDB4MDYsMHgxZSwweDgwLDB4OTUsMHgyMCwweDIxLDB4OTAsMHgwOCwweDcwLDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGViMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA4LDB4MWUsMHg4MCwweGY3LDB4ODAsMHhiMSwweDc5IH0gfSwKLXsgIDE2LCAweGViNDAsIDAsIHsweDBmLDB4ZGIsMHgwMiwweDNlLDB4MjAsMHhjNywweGEwLDB4YjEsMHg2MCwweGNjLDB4NzgsMHgxMywweDk2LDB4MDAsMHhmMSwweGYwIH0gfSwKLXsgIDE2LCAweGViNTAsIDAsIHsweDM5LDB4ZTIsMHgwZiwweDdiLDB4MTMsMHgwZiwweDAwLDB4ZDQsMHhhMCwweDMxLDB4NjAsMHgyYywweDcwLDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGViNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDE1LDB4YWMsMHgwMCwweGY3LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGViNzAsIDAsIHsweDBmLDB4OTAsMHgwMywweGVkLDB4ODAsMHhmYiwweDEwLDB4M2UsMHg0MCwweDBiLDB4YjAsMHgyMywweGVjLDB4MDAsMHhmOSwweDIwIH0gfSwKLXsgIDE2LCAweGViODAsIDAsIHsweDNhLDB4ZDgsMHgwZiwweGIwLDB4MGIsMHhlZCwweDgxLDB4ZWQsMHgxMCwweDNlLDB4ODAsMHgwZiwweDMwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGViOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4YmUsMHgyMCwweGVlLDB4ODAsMHgzMywweDYwIH0gfSwKLXsgIDE2LCAweGViYTAsIDAsIHsweDBjLDB4ZDgsMHg4MywweDFlLDB4MDAsMHg2ZiwweDgwLDB4MzMsMHhlMCwweDBmLDB4YjgsMHgxMSwweDMyLDB4MDQsMHhmNSwweDgwIH0gfSwKLXsgIDE2LCAweGViYjAsIDAsIHsweDMzLDB4ZTAsMHgwZiwweGY4LDB4ODMsMHgyZiwweDQwLDB4ZmUsMHg4MCwweGIzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGViYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE4LDB4OWMsMHgwMCwweGJjLDB4MDAsMHhhMSwweDQ0IH0gfSwKLXsgIDE2LCAweGViZDAsIDAsIHsweDA4LDB4MTAsMHgwMywweDVjLDB4MDAsMHg4ZiwweDAwLDB4MjEsMHg4MCwweDBiLDB4ZWEsMHgyMiwweDFjLDB4ODAsMHhiNSwweDAxIH0gfSwKLXsgIDE2LCAweGViZTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweGYwLDB4MDIsMHgxZSwweDgwLDB4YmUsMHgwMCwweDIzLDB4ODAsMHgyYSwweDcwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGViZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgyMCwweGE3LDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweGVjMDAsIDAsIHsweDBiLDB4NTAsMHgwYSwweDNjLDB4MDAsMHhhNywweDAwLDB4MjUsMHhjMCwweDBhLDB4NDMsMHgwMiwweDEwLDB4MDAsMHhiNSwweDAwIH0gfSwKLXsgIDE2LCAweGVjMTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcwLDB4ODIsMHgxYywweDgwLDB4YjQsMHgwMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwNCwweDAwIH0gfSwKLXsgIDE2LCAweGVjMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDA0LDB4OGUsMHgwNCwweGIzLDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGVjMzAsIDAsIHsweDA5LDB4MTQsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MjQsMHg4MiwweDA0LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweGVjNDAsIDAsIHsweDIwLDB4YzAsMHg4YiwweDNhLDB4MDIsMHgyYywweDAxLDB4YjAsMHgwMCwweDIwLDB4ODAsMHgwYSwweDMwLDB4MDIsMHgxYSwweDA0IH0gfSwKLXsgIDE2LCAweGVjNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4OWUsMHgwMCwweGViLDB4MDQsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweGVjNjAsIDAsIHsweDJkLDB4ZGMsMHgwMywweDFkLDB4NjAsMHhlZiwweDAwLDB4MzIsMHgwMCwweGNmLDB4OWEsMHgwMywweDI4LDB4MDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGVjNzAsIDAsIHsweDMzLDB4YzEsMHg4YiwweGZjLDB4MGIsMHgzYywweDAwLDB4ZmMsMHgwMCwweDMyLDB4ODAsMHgwYywweDkwLDB4MDMsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGVjODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4YWMsMHgxMCwweGY4LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGVjOTAsIDAsIHsweDBlLDB4OTgsMHgyMywweGFjLDB4MDQsMHhmYiwweDAwLDB4M2MsMHgwMCwweDBmLDB4ODQsMHgyMCwweGVkLDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGVjYTAsIDAsIHsweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmQsMHgwMCwweDNlLDB4ODAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwIH0gfSwKLXsgIDE2LCAweGVjYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMSwweDEwLDB4ZmMsMHgwMCwweGNmLDB4ODAsMHgzMywweDQwIH0gfSwKLXsgIDE2LCAweGVjYzAsIDAsIHsweDBjLDB4ZDAsMHg4MywweGZjLDB4MDAsMHhlZiwweDAwLDB4M2YsMHg0MCwweDBjLDB4ZjEsMHg0MSwweDMwLDB4MTAsMHhjZCwweDAwIH0gfSwKLXsgIDE2LCAweGVjZDAsIDAsIHsweDNmLDB4YzAsMHgwMCwweDcwLDB4MTMsMHgzYywweDAwLDB4ZTQsMHgwMCwweGIxLDB4ZDAsMHgwYywweDEwLDB4MDMsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGVjZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMSwweDA0LDB4MmMsMHgwMCwweDhhLDB4ZTQsMHgyYSwweDQwIH0gfSwKLXsgIDE2LCAweGVjZjAsIDAsIHsweDI4LDB4OTAsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAwLDB4M2UsMHgwMiwweDBhLDB4ODAsMHgwMiwweDJjLDB4ODIsMHg4OSwweDA0IH0gfSwKLXsgIDE2LCAweGVkMDAsIDAsIHsweDJlLDB4YzEsMHgwYSwweGIwLDB4MGEsMHgyYywweDAwLDB4ODksMHgwMiwweDIyLDB4ZjIsMHgyYSwweDk4LDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMiwweDgwLDB4MTQsMHgyYSwweDQwIH0gfSwKLXsgIDE2LCAweGVkMjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweGVjLDB4MDgsMHhhYiwweDA0LDB4MmUsMHg4NCwweDA4LDB4MTAsMHg4MiwweDgwLDB4MTAsMHg4OSwweDAzIH0gfSwKLXsgIDE2LCAweGVkMzAsIDAsIHsweDJjLDB4YzAsMHg0YSwweGIwLDB4MjIsMHgyYywweDAwLDB4YWEsMHgwMCwweDIyLDB4ODAsMHgwOCwweDkxLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDE0LDB4MmMsMHgwMCwweDgwLDB4MDAsMHgyOCwweDQwIH0gfSwKLXsgIDE2LCAweGVkNTAsIDAsIHsweDA4LDB4MTEsMHgwMiwweGVjLDB4MDAsMHg4MywweDAwLDB4MmMsMHg4MSwweDBhLDB4MDAsMHg1YSwweDg4LDB4MDAsMHgwMSwweDAwIH0gfSwKLXsgIDE2LCAweGVkNjAsIDAsIHsweDJjLDB4YzAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwYSwweDEwLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGVkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGM5LDB4MDAsMHgzYSwweDQwIH0gfSwKLXsgIDE2LCAweGVkODAsIDAsIHsweDBjLDB4ZDQsMHgwMywweGZjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTIsMHgwMywweGEwLDB4MDAsMHg0ZCwweDAwIH0gfSwKLXsgIDE2LCAweGVkOTAsIDAsIHsweDNmLDB4YzAsMHgwZSwweGYwLDB4MzMsMHgzYywweDgwLDB4ZTgsMHgwMCwweDMyLDB4YzAsMHgwYywweDkwLDB4MDMsMHgyMCwweDAzIH0gfSwKLXsgIDE2LCAweGVkYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDExLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzZCwweDQwIH0gfSwKLXsgIDE2LCAweGVkYjAsIDAsIHsweDBmLDB4NTAsMHgwMywweGZjLDB4MDIsMHgzZiwweDA0LDB4M2IsMHgwMSwweDRmLDB4YzQsMHgxMywweDcwLDB4MDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGVkYzAsIDAsIHsweDNmLDB4YzAsMHgxZiwweGYwLDB4MDEsMHhmYywweDQwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHgwZiwweGQwLDB4MTMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGVkZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjgsMHhlMCwweGZmLDB4ODAsMHgzZCwweGMwIH0gfSwKLXsgIDE2LCAweGVkZTAsIDAsIHsweDBkLDB4ZjMsMHg4MiwweGYwLDB4ODAsMHhmZiwweDQwLDB4MzEsMHhjYiwweDBjLDB4ZjMsMHgwMywweGZkLDB4MDQsMHhlZiwweGMxIH0gfSwKLXsgIDE2LCAweGVkZjAsIDAsIHsweDMzLDB4ZTAsMHgwZiwweDc5LDB4MDMsMHhmZSwweDAwLDB4Y2YsMHg0MiwweDMzLDB4ZjAsMHg0YywweGY4LDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlMDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDEwLDB4ZTksMHgwOCwweGI5LDB4ODEsMHgyZiwweGYwIH0gfSwKLXsgIDE2LCAweGVlMTAsIDAsIHsweDA4LDB4ZjQsMHg1MiwweGU5LDB4MjAsMHhiZiwweDQwLDB4MjMsMHhmMCwweDBhLDB4ZjMsMHgwMiwweGZkLDB4MDgsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGVlMjAsIDAsIHsweDM2LDB4ZTAsMHgwYiwweDgwLDB4MjIsMHhlOCwweDgwLDB4OGYsMHg0MCwweDIyLDB4YzAsMHgwOCwweGIwLDB4ODIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGVlMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4Y2MsMHgwMCwweGIxLDB4ODAsMHgyYywweGM1IH0gfSwKLXsgIDE2LCAweGVlNDAsIDAsIHsweDA5LDB4MzIsMHg0MiwweGM4LDB4YzAsMHhiMywweDMxLDB4MjAsMHhjMSwweDA4LDB4MzIsMHgwMiwweGNjLDB4ZDQsMHhiYiwweDIwIH0gfSwKLXsgIDE2LCAweGVlNTAsIDAsIHsweDY4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDIwLDB4OTMsMHg2MCwweDIwLDB4ODgsMHgwOCwweDMyLDB4MDIsMHgzMiwweDAxIH0gfSwKLXsgIDE2LCAweGVlNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDE1LDB4YTAsMHgwMCwweGJiLDB4ODAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGVlNzAsIDAsIHsweDA4LDB4YjAsMHgwMiwweGVhLDB4MDAsMHhiYiwweDAwLDB4NjIsMHhjMSwweDBhLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhYiwweDAwIH0gfSwKLXsgIDE2LCAweGVlODAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGEwLDB4MDAsMHhlOCwweDAwLDB4ODMsMHgwMCwweDIyLDB4YzEsMHgwOCwweDMwLDB4MDIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGVlOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4ZTgsMHg5MCwweGZiLDB4ODAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGVlYTAsIDAsIHsweDBkLDB4YjAsMHgwMywweGUyLDB4MTAsMHhmYiwweDAwLDB4MzIsMHhjMCwweDRjLDB4YjAsMHgxMywweGVjLDB4MDAsMHhlOSwweDU0IH0gfSwKLXsgIDE2LCAweGVlYjAsIDAsIHsweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNiwweDAwLDB4Y2IsMHgwMCwweGIyLDB4NDAsMHgwYywweGIwLDB4MDMsMHgwNCwweDA0IH0gfSwKLXsgIDE2LCAweGVlYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjgsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGVlZDAsIDAsIHsweDhmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmNywweDAyLDB4YmYsMHhjMSwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhkZiwweDA2IH0gfSwKLXsgIDE2LCAweGVlZTAsIDAsIHsweDM3LDB4YzAsMHg4ZiwweGM5LDB4MDcsMHhmYSwweDkyLDB4ZmYsMHgwNCwweDNmLDB4NTAsMHgyZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGVlZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDEwLDB4YWMsMHgwMCwweGM5LDB4MDAsMHgzZSwweGMyIH0gfSwKLXsgIDE2LCAweGVmMDAsIDAsIHsweDBlLDB4YjAsMHgyMywweGU0LDB4MDAsMHhlYiwweDAwLDB4M2EsMHhjOCwweDBlLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGVmMTAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhhNCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4ODAsMHgwZiwweGIwLDB4ODMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweGVmMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MjgsMHgwMCwweDhiLDB4NzQsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGVmMzAsIDAsIHsweDA4LDB4ZjAsMHgwMiwweGU0LDB4MDAsMHg4ZiwweDAwLDB4MjEsMHhmMCwweDA4LDB4ZjAsMHgwMiwweGZjLDB4MTAsMHhkMywweDAwIH0gfSwKLXsgIDE2LCAweGVmNDAsIDAsIHsweDJlLDB4YzAsMHgwYiwweDkwLDB4MTIsMHgyYywweDAwLDB4ZWYsMHgwMCwweDJlLDB4YzAsMHgwYiwweGI2LDB4MDIsMHhmNiwweDAwIH0gfSwKLXsgIDE2LCAweGVmNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDA1LDB4NDgsMHgwMCwweGEzLDB4MDAsMHgyYywweGM0IH0gfSwKLXsgIDE2LCAweGVmNjAsIDAsIHsweDBhLDB4MzAsMHgwMiwweGMwLDB4MDAsMHhhMywweDAwLDB4NjgsMHhmMCwweDBhLDB4MzAsMHgxMiwweGNjLDB4MDQsMHhhMiwweDAwIH0gfSwKLXsgIDE2LCAweGVmNzAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhlYywweDAwLDB4YjMsMHgwMSwweDJlLDB4YzAsMHgwYiwweDM0LDB4MDIsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGVmODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiMCwweDAxLDB4MGMsMHgwMCwweDg3LDB4ODAsMHgyZCwweGU4IH0gfSwKLXsgIDE2LCAweGVmOTAsIDAsIHsweDA4LDB4NzgsMHg0MiwweGRhLDB4MDAsMHg4NywweDgwLDB4MjUsMHhlMCwweDA4LDB4NzksMHgwMiwweGNlLDB4MDAsMHg5NiwweDgwIH0gfSwKLXsgIDE2LCAweGVmYTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweGQ5LDB4MDIsMHhkZSwweDAwLDB4YTcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweGVmYjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHg0MCwweGUzLDB4MTAsMHgzYywweGMwIH0gfSwKLXsgIDE2LCAweGVmYzAsIDAsIHsweDBhLDB4MzgsMHgwMywweGU4LDB4MDAsMHhlYiwweDAwLDB4MzgsMHhjMiwweDBhLDB4MzAsMHgwMywweGNjLDB4MDAsMHhlMywweDQwIH0gfSwKLXsgIDE2LCAweGVmZDAsIDAsIHsweDNjLDB4YzAsMHgwZiwweDM0LDB4MDMsMHhjZCwweDAwLDB4ZjMsMHgyMCwweDNjLDB4ODgsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyIH0gfSwKLXsgIDE2LCAweGVmZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YjQsMHg4MCwweGZmLDB4MDQsMHgzZiwweGM4IH0gfSwKLXsgIDE2LCAweGVmZjAsIDAsIHsweDBmLDB4ZjAsMHg4MywweGY4LDB4NDAsMHhmZiwweDE4LDB4M2IsMHhjMCwweDBmLDB4ZjQsMHg4MywweGZjLDB4MDAsMHhlZSwweDAyIH0gfSwKLXsgIDE2LCAweGYwMDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZWYsMHgwOCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MTMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGYwMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTgsMHgwMCwweGNiLDB4MDAsMHgzZSwweGYyIH0gfSwKLXsgIDE2LCAweGYwMjAsIDAsIHsweDRkLDB4YjIsMHgxMywweGU4LDB4MDQsMHhjYiwweDAxLDB4MzIsMHhmOCwweDRkLDB4YjIsMHgxMywweDZkLDB4MjAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGYwMzAsIDAsIHsweDNlLDB4YzAsMHgwZiwweDMwLDB4MDMsMHgyNCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHg4ZiwweGI4LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGYwNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDExLDB4OGMsMHgwMCwweDg2LDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGYwNTAsIDAsIHsweDA4LDB4NzMsMHgwMiwweGQ4LDB4MTIsMHg4NywweDMwLDB4MjAsMHhjYiwweDA4LDB4ZjIsMHgwMiwweDFkLDB4MDUsMHhiNSwweDAwIH0gfSwKLXsgIDE2LCAweGYwNjAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDYwLDB4MDMsMHg1MCwweDEwLDB4YjcsMHgwOSwweDJkLDB4YzAsMHgwYiwweGYwLDB4MDIsMHgzMiwweDA0IH0gfSwKLXsgIDE2LCAweGYwNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGU0IH0gfSwKLXsgIDE2LCAweGYwODAsIDAsIHsweDA5LDB4N2EsMHgwMiwweGNlLDB4MDEsMHg4NywweDgwLDB4MjEsMHhlYywweDA5LDB4NzgsMHgwMiwweDVlLDB4ODAsMHhiNywweGMwIH0gfSwKLXsgIDE2LCAweGYwOTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweGY4LDB4MDIsMHgxZSwweDAwLDB4YjcsMHhhMCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGYwYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4ZWUsMHgwMCwweDgyLDB4ODAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGYwYjAsIDAsIHsweDA4LDB4MzAsMHgwMiwweGVjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDgwIH0gfSwKLXsgIDE2LCAweGYwYzAsIDAsIHsweDJjLDB4YzEsMHgwYiwweDMwLDB4MDIsMHg0ZSwweDAwLDB4YjMsMHgwMCwweDJjLDB4ZjEsMHgwYiwweDMwLDB4MGEsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGYwZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YmEsMHg4MCwweGM2LDB4MDAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGYwZTAsIDAsIHsweDBkLDB4YTAsMHgwMywweGY4LDB4NDAsMHhjYSwweDAwLDB4MzIsMHg4MCwweDBkLDB4YTAsMHgxMywweDY4LDB4MDAsMHhmZSwweDAyIH0gfSwKLXsgIDE2LCAweGYwZjAsIDAsIHsweDdlLDB4ODAsMHgwZiwweGVkLDB4ODMsMHgzOSwweDEwLDB4ZmEsMHgwMCwweDNmLDB4OGMsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGYxMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgxMiwweGY4LDB4OTAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGYxMTAsIDAsIHsweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDA1LDB4M2UsMHgwMCwweDBlLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCwweDgwIH0gfSwKLXsgIDE2LCAweGYxMjAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDYwLDB4ZjgsMHgwMCwweDdlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGYxMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGM5LDB4ODAsMHgzMiwweDY0IH0gfSwKLXsgIDE2LCAweGYxNDAsIDAsIHsweDBmLDB4OTAsMHg0MywweGU0LDB4MDYsMHhjMSwweDA0LDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwIH0gfSwKLXsgIDE2LCAweGYxNTAsIDAsIHsweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4YzEsMHgwMSwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGYxNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4YzAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGYxNzAsIDAsIHsweDBiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg1MCwweDFiLDB4OTAsMHgyMiwweDI0LDB4MDAsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGYxODAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkwLDB4MjIsMHgyNCwweDA4LDB4YzksMHgwMCwweDIwLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGYxOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDk5LDB4MjAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGYxYTAsIDAsIHsweDBiLDB4MTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg1OCwweDBiLDB4OTAsMHgwMiwweDg0LDB4MDAsMHhhOSwweDAwIH0gfSwKLXsgIDE2LCAweGYxYjAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDEwLDB4MGEsMHgwNCwweDAwLDB4OTksMHgwMiwweDIyLDB4YzEsMHgwOCwweDkwLDB4ODIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGYxYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweDkxLDB4MDIsMHhhMCwweGM4IH0gfSwKLXsgIDE2LCAweGYxZDAsIDAsIHsweDBiLDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIyLDB4MjAsMHg0OCwweDliLDB4MTIsMHgwMiwweDA0LDB4OTAsMHg4OSwweDAxIH0gfSwKLXsgIDE2LCAweGYxZTAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwNCwweDAyLDB4ODEsMHgyMiwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGYxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MiwweGRhLDB4MDEsMHgzMiwweDAxIH0gfSwKLXsgIDE2LCAweGYyMDAsIDAsIHsweDBmLDB4ODUsMHgwMywweGExLDB4NDAsMHhjMCwweDUwLDB4M2EsMHgwMSwweDhiLDB4ODUsMHgyMywweGExLDB4NDQsMHhlOCwweDUwIH0gfSwKLXsgIDE2LCAweGYyMTAsIDAsIHsweGIyLDB4MDAsMHgwZiwweDg1LDB4MDMsMHgyMSwweDQ4LDB4ZDgsMHg1MSwweDMyLDB4MTQsMHgyYywweDg1LDB4MDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweGYyMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjUsMHgwMCwweGVkLDB4MDIsMHgzZSwweDQ0IH0gfSwKLXsgIDE2LCAweGYyMzAsIDAsIHsweDBmLDB4OTEsMHgwMywweGY0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDAwIH0gfSwKLXsgIDE2LCAweGYyNDAsIDAsIHsweDNlLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZTksMHgxMCwweGJmLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2NiwweDA2IH0gfSwKLXsgIDE2LCAweGYyNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHgyMSwweGM1LDB4MDAsMHgzMywweDY4IH0gfSwKLXsgIDE2LCAweGYyNjAsIDAsIHsweDBmLDB4OWEsMHgwMywweDZmLDB4ODgsMHhjOSwweGMwLDB4MzMsMHg2OCwweDBjLDB4OWUsMHgwMywweDI3LDB4ODAsMHhkOSwweDQwIH0gfSwKLXsgIDE2LCAweGYyNzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNSwweDEwLDB4ZDksMHhlOCwweDM2LDB4NTAsMHgwYywweGQwLDB4MDMsMHhlNiwweDAwIH0gfSwKLXsgIDE2LCAweGYyODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHgwOCwweDg4LDB4MDAsMHg4MiwweDAwIH0gfSwKLXsgIDE2LCAweGYyOTAsIDAsIHsweDBiLDB4OGUsMHg4MiwweGViLDB4YzgsMHg4OCwweGUwLDB4MjIsMHgwMCwweDI4LDB4ODgsMHg0MiwweGEyLDB4ODAsMHg4YSwweDgwIH0gfSwKLXsgIDE2LCAweGYyYTAsIDAsIHsweDIyLDB4MDAsMHgwYiwweGFhLDB4MDIsMHhlMiwweDAwLDB4ODgsMHhjMCwweDIyLDB4YTksMHgwOCwweDhhLDB4MDMsMHg4ZSwweDA0IH0gfSwKLXsgIDE2LCAweGYyYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHgwMCwweDgxLDB4MDAsMHgyMCwweGQwIH0gfSwKLXsgIDE2LCAweGYyYzAsIDAsIHsweDBiLDB4MTEsMHgzMiwweDg0LDB4ODQsMHg4MSwweDYwLDB4NjAsMHg1MCwweDA4LDB4MTYsMHgwNiwweDA1LDB4MDAsMHg5MSwweDIwIH0gfSwKLXsgIDE2LCAweGYyZDAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDEwLDB4ODIsMHhlNCwweDA5LDB4OTEsMHgyMCwweDI0LDB4NDAsMHgwOCwweDEwLDB4YzIsMHhkMiwweDAxIH0gfSwKLXsgIDE2LCAweGYyZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwNCwweDg5LDB4MDQsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGYyZjAsIDAsIHsweDBiLDB4OTAsMHgwMiwweGM0LDB4MDAsMHhhOSwweDAwLDB4MjIsMHg0MSwweDAwLDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGYzMDAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkyLDB4MjIsMHhlNSwweDgwLDB4OTksMHgwMSwweDIyLDB4NjEsMHgwOCwweDkwLDB4MDIsMHg4NiwweDA0IH0gfSwKLXsgIDE2LCAweGYzMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE0LDB4YTUsMHg4MiwweDgxLDB4OTAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGYzMjAsIDAsIHsweDBmLDB4OTAsMHgxMywweDY3LDB4MDIsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgyMywweDI0LDB4MDQsMHhkOSwweGMwIH0gfSwKLXsgIDE2LCAweGYzMzAsIDAsIHsweGIyLDB4NDAsMHgwZiwweDljLDB4MDMsMHhlNiwweDAwLDB4ZDksMHgwMCwweDM2LDB4NTAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweGYzNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDAwLDB4YTYsMHg4MCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGYzNTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU3LDB4MDAsMHhkOSwweDAwLDB4YmMsMHg0MiwweDBmLDB4OTAsMHg1MywweGU0LDB4MDQsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGYzNjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlNiwweDA0LDB4ZTEsMHgwMCwweDNlLDB4NDAsMHgyZiwweDkwLDB4MDMsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGYzNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODEsMHgxMCwweDQ4LDB4MTAsMHgzMiwweDA4IH0gfSwKLXsgIDE2LCAweGYzODAsIDAsIHsweDBjLDB4ODAsMHgwZiwweDIxLDB4MDIsMHhjOCwweDAwLDB4M2EsMHgwNCwweDBmLDB4ODAsMHgwNywweDYwLDB4MDAsMHhmOCwweDQwIH0gfSwKLXsgIDE2LCAweGYzOTAsIDAsIHsweGIyLDB4MDAsMHgwZiwweDg0LDB4MGIsMHgyMCwweDAwLDB4ZDgsMHgwMCwweDM2LDB4MTAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweGYzYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA0LDB4MjgsMHgwNCwweDhlLDB4ODAsMHgyMywweDgwIH0gfSwKLXsgIDE2LCAweGYzYjAsIDAsIHsweDA4LDB4YTAsMHg0MiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjMsMHhhMCwweDRiLDB4YTAsMHgwMiwweGU4LDB4MDAsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweGYzYzAsIDAsIHsweDc2LDB4ODAsMHgwYiwweGEwLDB4MDIsMHgwOCwweDAwLDB4OGEsMHgwMCwweDMyLDB4ODAsMHgwOCwweGUwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGYzZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDgyLDB4MDAsMHgyMCwweGQwIH0gfSwKLXsgIDE2LCAweGYzZTAsIDAsIHsweDA4LDB4MzAsMHgwMiwweDBjLDB4MDAsMHg5YiwweDAwLDB4MjgsMHhjMCwweDFhLDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiMywweDAyIH0gfSwKLXsgIDE2LCAweGYzZjAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDIyLDB4YzAsMHgyOCwweDM0LDB4ODIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGY0MDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWMsMHgwMCwweDg3LDB4MDAsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweGY0MTAsIDAsIHsweDA4LDB4NzgsMHgwMiwweDBjLDB4MDAsMHg5NywweDIwLDB4MjUsMHhjMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4ODEsMHhiNywweDIwIH0gfSwKLXsgIDE2LCAweGY0MjAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDdhLDB4NDIsMHgzYywweDgwLDB4ODcsMHgyMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGY0MzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA4LDB4MGUsMHg4MiwweGM3LDB4ODAsMHhiMSwweGUwIH0gfSwKLXsgIDE2LCAweGY0NDAsIDAsIHsweDJjLDB4ZmEsMHgwNiwweDFlLDB4MDgsMHhkMywweGIxLDB4MzksMHg2MCwweDRlLDB4NzgsMHgxMiwweDVlLDB4YTAsMHhmZiwweGYwIH0gfSwKLXsgIDE2LCAweGY0NTAsIDAsIHsweDIxLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHgxZiwweDA4LDB4ZTMsMHhhMCwweDMzLDB4ZTAsMHgwYywweDY4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGY0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHg0MCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGY0NzAsIDAsIHsweDBmLDB4YjIsMHgwMywweGVkLDB4YTgsMHhlYiwweDEwLDB4M2EsMHg4MCwweDBmLDB4YjAsMHhjMywweGVjLDB4NDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGY0ODAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGIwLDB4ODMsMHhlYywweDgwLDB4ZWIsMHg3MCwweGJlLDB4YzQsMHgwZiwweGIwLDB4MDMsMHg4MiwweDA2IH0gfSwKLXsgIDE2LCAweGY0OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGNlLDB4ODAsMHhiMywweDYwIH0gfSwKLXsgIDE2LCAweGY0YTAsIDAsIHsweDBmLDB4ZmMsMHg4MywweDdlLDB4MjAsMHhlZiwweGIwLDB4M2IsMHhlMCwweDBmLDB4YjgsMHgwMywweDNlLDB4MDAsMHhjZiwweDgxIH0gfSwKLXsgIDE2LCAweGY0YjAsIDAsIHsweDNmLDB4ZTAsMHg4ZiwweGY4LDB4ODMsMHhlZiwweDQwLDB4ZmYsMHhjMiwweDMzLDB4ZTEsMHgwYywweGY4LDB4MDMsMHhkMCwweDAwIH0gfSwKLXsgIDE2LCAweGY0YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHg4MiwweDg3LDB4MTgsMHgyMSwweDgwIH0gfSwKLXsgIDE2LCAweGY0ZDAsIDAsIHsweDBiLDB4MzAsMHgwMiwweDFjLDB4NjAsMHhkNywweDEwLDB4MjEsMHhkMCwweDBiLDB4N2IsMHgwMiwweDNjLDB4MDAsMHhkNywweDAwIH0gfSwKLXsgIDE2LCAweGY0ZTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkZSwweDAwLDB4YmYsMHgwMCwweGEzLDB4YzQsMHgwOCwweDcwLDB4MDMsMHhhYSwweDA0IH0gfSwKLXsgIDE2LCAweGY0ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YmMsMHgxMSwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGY1MDAsIDAsIHsweDBiLDB4MzAsMHgwMiwweDFjLDB4MDAsMHg5MywweDIwLDB4NjksMHhjMCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGY1MTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcxLDB4MDIsMHhkYywweDIwLDB4YjcsMHgxMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDIsMHg4NCwweDAwIH0gfSwKLXsgIDE2LCAweGY1MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDE0LDB4Y2QsMHgwMCwweDgzLDB4NDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGY1MzAsIDAsIHsweDRiLDB4MzAsMHgwMiwweDBjLDB4MDEsMHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg5MywweDgwIH0gfSwKLXsgIDE2LCAweGY1NDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAxLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MjIsMHg5OCwweDA0IH0gfSwKLXsgIDE2LCAweGY1NTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmYsMHgyMCwweGNhLDB4YzAsMHgzMiwweDgwIH0gfSwKLXsgIDE2LCAweGY1NjAsIDAsIHsweDBmLDB4ZjAsMHgwMywweDNlLDB4MDAsMHg5ZiwweDAwLDB4M2EsMHg4MCwweDBmLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHhjZiwweDk4IH0gfSwKLXsgIDE2LCAweGY1NzAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGY2LDB4MDMsMHhmZiwweDAwLDB4ZmYsMHgwMCwweDMxLDB4ZTAsMHgyYywweGIwLDB4MDMsMHhhZSwweDA0IH0gfSwKLXsgIDE2LCAweGY1ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4Y2MsMHg4MCwweGZiLDB4MDAsMHgzZSwweDUwIH0gfSwKLXsgIDE2LCAweGY1OTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGFjLDB4MDIsMHhmYiwweDAwLDB4N2UsMHg1MCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGY1YTAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhlYywweDIwLDB4ZjMsMHgwMCwweDNlLDB4YzYsMHgwZiwweDkwLDB4MDMsMHhhMCwweDAwIH0gfSwKLXsgIDE2LCAweGY1YjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMiwweGNmLDB4OTgsMHg3MywweGM4IH0gfSwKLXsgIDE2LCAweGY1YzAsIDAsIHsweDBmLDB4NzAsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHgyOCwweDBmLDB4YjAsMHgwMiwweDFjLDB4MDAsMHg0ZiwweDAwIH0gfSwKLXsgIDE2LCAweGY1ZDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMSwweDMzLDB4YzAsMHgwYywweGU0LDB4MDMsMHhlNCwweDA0IH0gfSwKLXsgIDE2LCAweGY1ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NmMsMHgwMCwweDgzLDB4ODAsMHhhMiwweGY4IH0gfSwKLXsgIDE2LCAweGY1ZjAsIDAsIHsweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MzIsMHgxMCwweDBmLDB4YjAsMHgwMywweDZjLDB4MDQsMHhhYiwweDAwIH0gfSwKLXsgIDE2LCAweGY2MDAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGIwLDB4MTIsMHhlYywweDA0LDB4ZWIsMHgwMCwweDIyLDB4YzAsMHg0YSwweDk0LDB4ODIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2MTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4NmMsMHgwMCwweDhhLDB4MDAsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweGY2MjAsIDAsIHsweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiMywweDAwLDB4YTIsMHhjMCwweDBiLDB4MzAsMHgwMiwweGFjLDB4MDAsMHhhYiwweDA0IH0gfSwKLXsgIDE2LCAweGY2MzAsIDAsIHsweDJlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHhlYywweDAwLDB4YmIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MjIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MGMsMHgwMCwweDhiLDB4MDEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2NTAsIDAsIHsweDBiLDB4MzAsMHgwNiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBhLDB4MzIsMHgwYSwweGNjLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGY2NjAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCwweDIyLDB4YzAsMHg0YSwweDAwLDB4MTIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGY2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NmMsMHgwMCwweDhiLDB4MDQsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGY2ODAsIDAsIHsweDBmLDB4ZjEsMHgwMywweDFjLDB4MDAsMHhmZiwweDA0LDB4MzIsMHhjMCwweDBiLDB4ZjIsMHgwMywweGJjLDB4MDAsMHhlZiwweDAwIH0gfSwKLXsgIDE2LCAweGY2OTAsIDAsIHsweDNlLDB4YzAsMHgwNywweGYwLDB4MDMsMHhmYywweDgwLDB4ZmYsMHgwMCwweGIyLDB4YzAsMHgwYywweGEwLDB4MDMsMHhlMCwweDAzIH0gfSwKLXsgIDE2LCAweGY2YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZGMsMHgwMCwweGY1LDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGY2YjAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGZjLDB4MDEsMHhmZiwweDAyLDB4M2IsMHhjMCwweDBmLDB4ZjEsMHgwMywweDdjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGY2YzAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGYwLDB4MTMsMHhmYywweDQwLDB4ZWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGY2ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4ZjIsMHg0MCwweGNjLDB4ODAsMHgzNywweDIwIH0gfSwKLXsgIDE2LCAweGY2ZTAsIDAsIHsweDBjLDB4ZDgsMHgwMywweGIwLDB4NDQsMHhmYywweDA4LDB4M2YsMHgwZSwweDBmLDB4YzEsMHgwMywweGZjLDB4MDAsMHhjYywweDk0IH0gfSwKLXsgIDE2LCAweGY2ZjAsIDAsIHsweDNmLDB4MGEsMHgyZSwweGM0LDB4MDMsMHg3ZCwweDgwLDB4Y2YsMHgxMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4ODMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3MDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA4LDB4ZTAsMHg5MCwweDg4LDB4MDIsMHgyMiwweDgxIH0gfSwKLXsgIDE2LCAweGY3MTAsIDAsIHsweDA4LDB4OTIsMHgxMywweGE0LDB4NDAsMHgzYiwweDYwLDB4MjIsMHgxOCwweDBiLDB4ODEsMHgwMiwweGZjLDB4ZDQsMHg4MSwweDAwIH0gfSwKLXsgIDE2LCAweGY3MjAsIDAsIHsweDNhLDB4YjAsMHgwYSwweDk0LDB4MDIsMHgzZCwweDQwLDB4YWYsMHg2MywweDJmLDB4ZGYsMHgwYiwweDk4LDB4MDAsMHgyMCwweDA0IH0gfSwKLXsgIDE2LCAweGY3MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTAsMHgwMCwweDg4LDB4MDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGY3NDAsIDAsIHsweDg4LDB4MzAsMHg4MiwweGMwLDB4MDAsMHhiMCwweDA4LDB4MjgsMHg4MCwweDBhLDB4MTAsMHgwMiwweGNjLDB4MjAsMHg4MCwweDAxIH0gfSwKLXsgIDE2LCAweGY3NTAsIDAsIHsweDJjLDB4NDAsMHgxYiwweDA2LDB4MDIsMHg4YywweDkwLDB4OTMsMHg2MCwweDY4LDB4YzAsMHg0YSwweDAwLDB4NDIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGY3NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4YTAsMHgwMiwweDg4LDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGY3NzAsIDAsIHsweDA4LDB4YjAsMHgwMiwweGU0LDB4MjAsMHhiYiwweDg4LDB4MjYsMHg5OCwweDBiLDB4ODAsMHg0MiwweGNjLDB4MTgsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGY3ODAsIDAsIHsweDJlLDB4YzIsMHgxYiwweDk4LDB4MDIsMHhhYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwYiwweDk4LDB4ODIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGY3OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDExLDB4ZTMsMHhjMCwweGNiLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGY3YTAsIDAsIHsweDJjLDB4ODAsMHgwMywweGFlLDB4MDgsMHhiOSwweDAwLDB4M2UsMHg3MCwweDBmLDB4YjksMHgwMywweGVjLDB4MDIsMHg0OCwweDQ4IH0gfSwKLXsgIDE2LCAweGY3YjAsIDAsIHsweDNjLDB4YzAsMHgwZiwweDhjLDB4OTMsMHhlYywweDAwLDB4ZGIsMHgwMCwweDFhLDB4YzAsMHgwZSwweGFjLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGY3YzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjIsMHgwMCwweGZmLDB4MDAsMHhiYiwweDgwIH0gfSwKLXsgIDE2LCAweGY3ZDAsIDAsIHsweDBmLDB4YzAsMHg0MywweGI2LDB4NDAsMHhiZCwweDAwLDB4M2IsMHg2MCwweDBmLDB4ZTgsMHgwMywweGZjLDB4MDAsMHhmZiwweDk0IH0gfSwKLXsgIDE2LCAweGY3ZTAsIDAsIHsweDNiLDB4ZTQsMHgwZSwweDYwLDB4MGYsMHg2YywweDA4LDB4ZWYsMHgwMSwweDNmLDB4YzAsMHgwZiwweDYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGY3ZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTEsMHgwMCwweGZiLDB4MDAsMHgzZSwweDYwIH0gfSwKLXsgIDE2LCAweGY4MDAsIDAsIHsweDBmLDB4YTAsMHgwMywweGVkLDB4MDAsMHhmOSwweDQwLDB4M2EsMHgwMCwweDBmLDB4OTAsMHgwMywweGVjLDB4MDIsMHhjOSwweDA0IH0gfSwKLXsgIDE2LCAweGY4MTAsIDAsIHsweDMyLDB4ZDAsMHgwZiwweDkwLDB4MDMsMHgyYywweDA4LDB4ZGIsMHgwMCwweGI2LDB4YzAsMHgwZCwweGI0LDB4MDMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweGY4MjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MDAsMHgwMCwweGIzLDB4ODksMHgyZSwweGUwIH0gfSwKLXsgIDE2LCAweGY4MzAsIDAsIHsweDBiLDB4YTQsMHgwMywweGE0LDB4MDEsMHhiOSwweDAwLDB4MmUsMHgwMSwweDBiLDB4OTAsMHg0MiwweGZjLDB4MTAsMHg4OSwweDUwIH0gfSwKLXsgIDE2LCAweGY4NDAsIDAsIHsweGEyLDB4YzAsMHg4ZCwweGI0LDB4MDIsMHgzYywweDQ0LDB4OGYsMHgwMCwweDIzLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweGY4NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA0LDB4MGMsMHgwMCwweGIwLDB4ODAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweGY4NjAsIDAsIHsweDBiLDB4MTIsMHgwMiwweGM4LDB4MDAsMHhiYSwweDAwLDB4MmMsMHhjMCwweDBiLDB4MjAsMHgwMiwweGNjLDB4MDAsMHhhMiwweDAwIH0gfSwKLXsgIDE2LCAweGY4NzAsIDAsIHsweDIwLDB4MDAsMHgyYiwweDJkLDB4OWEsMHgyZSwweDQyLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDIwLDB4MDIsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGY4ODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MWUsMHgwNCwweGI0LDB4ODAsMHgyZCwweGEwIH0gfSwKLXsgIDE2LCAweGY4OTAsIDAsIHsweDBiLDB4NTgsMHgwMiwweDkyLDB4MDAsMHhiNiwweDgwLDB4MmQsMHhlMCwweDBiLDB4NjgsMHgwMiwweGRlLDB4NDAsMHhhNiwweDgwIH0gfSwKLXsgIDE2LCAweGY4YTAsIDAsIHsweDIxLDB4MjQsMHgyOSwweDQ4LDB4MDIsMHgxZSwweDgwLDB4ODcsMHg4MCwweDY5LDB4ZTAsMHgwOCwweDYxLDB4MDIsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGY4YjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE4LDB4MGMsMHgwMCwweGYwLDB4MzAsMHgzYywweDRjIH0gfSwKLXsgIDE2LCAweGY4YzAsIDAsIHsweDBmLDB4MzIsMHgwMywweGM4LDB4ODAsMHhiMiwweDAwLDB4MzgsMHg4MCwweDBmLDB4MWIsMHgwMywweGVjLDB4MDAsMHhlMCwweDMwIH0gfSwKLXsgIDE2LCAweGY4ZDAsIDAsIHsweDMwLDB4MDQsMHgwZiwweGIxLDB4MDMsMHgwZSwweDg1LDB4Y2IsMHgwMCwweDNhLDB4YzAsMHgwYywweDMxLDB4MDMsMHhkMiwweDAyIH0gfSwKLXsgIDE2LCAweGY4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFjLDB4YmMsMHgwMCwweGZjLDB4MTEsMHgzZiwweGM0IH0gfSwKLXsgIDE2LCAweGY4ZjAsIDAsIHsweDBmLDB4YjgsMHgxMywweGIwLDB4MDQsMHhmZSwweDAyLDB4M2YsMHg4MCwweDBmLDB4YzAsMHgwMywweGZkLDB4MDAsMHhkZiwweDEyIH0gfSwKLXsgIDE2LCAweGY5MDAsIDAsIHsweDFkLDB4MDQsMHgwZiwweGQwLDB4NDMsMHhiYywweDAxLDB4ZWYsMHgxMCwweDMzLDB4YzQsMHgwZSwweGYzLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGY5MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZWUsMHgwMCwweGNiLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGY5MjAsIDAsIHsweDBmLDB4ODAsMHgwMywweDI4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHg0MCwweDNkLDB4YjAsMHgwMywweGVmLDB4MDgsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGY5MzAsIDAsIHsweDNhLDB4MDAsMHgwYywweGEwLDB4MDMsMHhlYywweDk4LDB4ZmIsMHgyMCwweDMyLDB4ZDIsMHgwYywweGE4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGY5NDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDEsMHgyZCwweDgwIH0gfSwKLXsgIDE2LCAweGY5NTAsIDAsIHsweDBiLDB4NDAsMHg0MiwweDFjLDB4MDQsMHgzNywweDAwLDB4YTEsMHg0MCwweDA4LDB4NjAsMHgwMiwweGNjLDB4ODAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGY5NjAsIDAsIHsweDJkLDB4ODAsMHgyZSwweDcwLDB4MDIsMHhkYywweGE5LDB4YjcsMHgyOCwweDIxLDB4ZDAsMHgwOCwweDcwLDB4MDIsMHgxMiwweDAwIH0gfSwKLXsgIDE2LCAweGY5NzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4YmUsMHgwMiwweDg3LDB4ODAsMHgyZCwweDYwIH0gfSwKLXsgIDE2LCAweGY5ODAsIDAsIHsweDRiLDB4ZTgsMHgwMiwweDVhLDB4MDEsMHhiNCwweDg4LDB4MjgsMHhlMCwweDg4LDB4NzgsMHhjMiwweGRlLDB4NTIsMHg4NiwweGMwIH0gfSwKLXsgIDE2LCAweGY5OTAsIDAsIHsweDI5LDB4NjAsMHgwOCwweDY4LDB4MDIsMHhkZSwweDQwLDB4YjMsMHg5MiwweGUxLDB4ZTgsMHgyOCwweDI4LDB4MDIsMHg3MCwweDAwIH0gfSwKLXsgIDE2LCAweGY5YTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDE0LDB4Y2MsMHgwMCwweDhiLDB4ODAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGY5YjAsIDAsIHsweDBiLDB4MjAsMHgwMiwweDRkLDB4ODAsMHg5YiwweDIwLDB4MjAsMHhlMCwweDA4LDB4MzgsMHgwMiwweGNjLDB4MDAsMHg4MywweDgwIH0gfSwKLXsgIDE2LCAweGY5YzAsIDAsIHsweDJjLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhjYywweDA4LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMxLDB4MDIsMHg1MiwweDA0IH0gfSwKLXsgIDE2LCAweGY5ZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDA1LDB4YTgsMHgwMCwweGNhLDB4ZTAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGY5ZTAsIDAsIHsweDFmLDB4YTQsMHgwYiwweDc5LDB4MDAsMHhmZSwweDAwLDB4M2YsMHg4MiwweDFkLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhjZSwweDQwIH0gfSwKLXsgIDE2LCAweGY5ZjAsIDAsIHsweDNiLDB4ODgsMHgyYywweGU0LDB4MDMsMHhlOCwweDAxLDB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGU4LDB4MDMsMHg3YSwweDA0IH0gfSwKLXsgIDE2LCAweGZhMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4YTAsMHgwMCwweGY4LDB4MDksMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGZhMTAsIDAsIHsweDhmLDB4YzAsMHg4MywweGEwLDB4MTgsMHhmOCwweDAwLDB4M2MsMHgyMCwweDBmLDB4ODgsMHgwMywweGUwLDB4MDAsMHhmOCwweDA4IH0gfSwKLXsgIDE2LCAweGZhMjAsIDAsIHsweDNlLDB4MjAsMHgwZSwweDgwLDB4ODMsMHhlMSwweDAxLDB4ZjAsMHgwMCwweDNjLDB4MDAsMHgwZiwweDgwLDB4MGIsMHg5MiwweDAwIH0gfSwKLXsgIDE2LCAweGZhMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGY5LDB4NDIsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGZhNDAsIDAsIHsweDRjLDB4OTgsMHgwMywweDA0LDB4MDAsMHhjOSwweDAwLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgyMywweDI0LDB4MDAsMHhiOSwweDgxIH0gfSwKLXsgIDE2LCAweGZhNTAsIDAsIHsweDNjLDB4NDAsMHgwYywweDkyLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwNSwweDMyLDB4NDAsMHg2YywweDkwLDB4YzMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGZhNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4MjQsMHgxNCwweGI5LDB4MDAsMHhhMiwweDU0IH0gfSwKLXsgIDE2LCAweGZhNzAsIDAsIHsweDA4LDB4OWIsMHgxYSwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhiOSwweDkwIH0gfSwKLXsgIDE2LCAweGZhODAsIDAsIHsweDJlLDB4NDAsMHgyOCwweDljLDB4ODIsMHgyNSwweDA0LDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk4LDB4MTIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhOTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGFkLDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweGZhYTAsIDAsIHsweDA4LDB4NTAsMHgwMiwweDY0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4MTAsMHgwMiwweDY0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGZhYjAsIDAsIHsweDZlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNSwweDAwLDB4YTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkxLDB4MDYsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGZhYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTQsMHgwMCwweGI1LDB4MTAsMHhhMSwweDQ0IH0gfSwKLXsgIDE2LCAweGZhZDAsIDAsIHsweDI4LDB4NTAsMHgwMiwweDQ0LDB4ODAsMHg4MSwweDMwLDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweDg0LDB4NDAsMHhiMSwweDgwIH0gfSwKLXsgIDE2LCAweGZhZTAsIDAsIHsweDZjLDB4YzgsMHgwOCwweDEyLDB4MDIsMHgwNCwweDgwLDB4YjEsMHgzNCwweDIwLDB4NDgsMHgwOCwweDEyLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGZhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGU4LDB4NDAsMHgzMiwweDkwIH0gfSwKLXsgIDE2LCAweGZiMDAsIDAsIHsweDBjLDB4YzUsMHgwMywweDYxLDB4NDAsMHhjMCwweDQwLDB4M2EsMHgxNCwweDBmLDB4ODUsMHgwMywweDIxLDB4YjAsMHhmOCwweDUwIH0gfSwKLXsgIDE2LCAweGZiMTAsIDAsIHsweDNlLDB4MDAsMHgwYywweDg1LDB4MDMsMHgyMSwweDQwLDB4ZjgsMHg0MCwweGIwLDB4MTQsMHgwYywweDgwLDB4MDMsMHhlZSwweDAxIH0gfSwKLXsgIDE2LCAweGZiMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDFkLDB4YzQsMHgwNCwweGY5LDB4MjIsMHgwZSwweDQ4IH0gfSwKLXsgIDE2LCAweGZiMzAsIDAsIHsweDBmLDB4MTAsMHgxMywweGI0LDB4NDAsMHhmZCwweDMwLDB4M2YsMHg0NCwweDRmLDB4ZDEsMHgwMCwweGU0LDB4ODQsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweGZiNDAsIDAsIHsweDNkLDB4NDQsMHgwZiwweGQxLDB4MGIsMHhlNCwweDQwLDB4ZjksMHgzMCwweDNlLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNiwweDA0IH0gfSwKLXsgIDE2LCAweGZiNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDA1LDB4ZTQsMHgwMCwweGRkLDB4NDAsMHgzZiwweDUwIH0gfSwKLXsgIDE2LCAweGZiNjAsIDAsIHsweDBjLDB4ZDAsMHgwMywweDJjLDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4OTAsMHgxMywweDI3LDB4MDQsMHhmNSwweDAxIH0gfSwKLXsgIDE2LCAweGZiNzAsIDAsIHsweDM3LDB4NDAsMHgwYywweGYwLDB4MDMsMHhmNiwweDIwLDB4ZjksMHhhOCwweDMyLDB4NjgsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGZiODAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAwLDB4ZTAsMHgwMCwweDg4LDB4YTAsMHgyZSwweDI4IH0gfSwKLXsgIDE2LCAweGZiOTAsIDAsIHsweDI4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4OCwweGEwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHgwYSwweDYyLDB4ODAsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGZiYTAsIDAsIHsweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlMSwweDAwLDB4YjgsMHhlMCwweDIyLDB4M2EsMHgwOCwweGEwLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGZiYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ODQsMHgwMiwweDgxLDB4MDAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGZiYzAsIDAsIHsweDA4LDB4MTAsMHgwYSwweDQ0LDB4MDIsMHg4MSwweDA4LDB4MjQsMHg0MCwweDBhLDB4MTAsMHgwMiwweDQ1LDB4ODAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGZiZDAsIDAsIHsweDI0LDB4NDAsMHgyOSwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgwOCwweDI0LDB4NDQsMHgwOCwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGZiZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE0LDB4YTQsMHgwNCwweDg5LDB4MDEsMHgyZSwweDUwIH0gfSwKLXsgIDE2LCAweGZiZjAsIDAsIHsweDQ4LDB4YjIsMHgwMiwweDY0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0NiwweDBiLDB4OTAsMHgwMiwweDY0LDB4MDAsMHhiOSwweDAxIH0gfSwKLXsgIDE2LCAweGZjMDAsIDAsIHsweDI2LDB4YzAsMHgwOSwweGIwLDB4MTIsMHhlNCwweDAwLDB4YjEsMHgwMCwweDI2LDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGZjMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDA0LDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweGZjMjAsIDAsIHsweDBjLDB4OTAsMHgwMywweDY0LDB4MDAsMHhjOSwweDAyLDB4MzYsMHg1MCwweDBlLDB4OTMsMHgwMywweDI0LDB4MDAsMHhmOSwweDkwIH0gfSwKLXsgIDE2LCAweGZjMzAsIDAsIHsweDM2LDB4NDgsMHgwZCwweDk0LDB4ODMsMHhlNCwweDA4LDB4ZjksMHgwMCwweGI2LDB4NDAsMHgwYywweDk0LDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweGZjNDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDEwLDB4YTQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGZjNTAsIDAsIHsweDBmLDB4OTAsMHgxMywweGE0LDB4MDAsMHhlOSwweDAyLDB4MmUsMHg2MSwweDA1LDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGZjNjAsIDAsIHsweDNhLDB4NDAsMHgwZSwweDkwLDB4NDMsMHhlNCwweDEwLDB4ZjksMHgwMCwweDM4LDB4NDAsMHgyZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGZjNzAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDEsMHgzMiwweDA0IH0gfSwKLXsgIDE2LCAweGZjODAsIDAsIHsweDBmLDB4ODAsMHg0MywweGMwLDB4MDEsMHhjOCwweDAwLDB4YjIsMHgwMSwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjOCwweDQwIH0gfSwKLXsgIDE2LCAweGZjOTAsIDAsIHsweDMwLDB4MDAsMHg4YywweDg0LDB4ODMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHg2YywweDg0LDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweGZjYTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMywweDgwIH0gfSwKLXsgIDE2LCAweGZjYjAsIDAsIHsweDBiLDB4ZWEsMHgwMiwweGU4LDB4MDAsMHhhYSwweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4NiwweDIwIH0gfSwKLXsgIDE2LCAweGZjYzAsIDAsIHsweDM3LDB4YTAsMHg4ZCwweGU0LDB4MDIsMHhmOCwweDAwLDB4ZGEsMHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGZjZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGZjZTAsIDAsIHsweDBiLDB4YjgsMHgwMiwweDRjLDB4MDQsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGZjZjAsIDAsIHsweDIwLDB4NDAsMHgyOCwweDM0LDB4MDIsMHhjZSwweDkwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGZkMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWMsMHhjMCwweGI1LDB4ODgsMHgyMSwweDQwIH0gfSwKLXsgIDE2LCAweGZkMTAsIDAsIHsweDBiLDB4NzAsMHgwMiwweGRjLDB4ODAsMHhhMywweDIwLDB4MjEsMHhlMCwweDQ4LDB4MzIsMHg0MiwweDBlLDB4OTAsMHg4ZSwweDAxIH0gfSwKLXsgIDE2LCAweGZkMjAsIDAsIHsweDY1LDB4NTAsMHgwOSwweDcwLDB4MDIsMHhkZSwweDIwLDB4OTMsMHgyMSwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGZkMzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDE4LDB4MWUsMHgwMCwweGZmLDB4ODAsMHhiMSwweGEwIH0gfSwKLXsgIDE2LCAweGZkNDAsIDAsIHsweDBmLDB4NDgsMHgwMiwweDdlLDB4MDAsMHg4NywweGEwLDB4MzMsMHhlMCwweDI4LDB4N2EsMHgwYiwweDFmLDB4MDAsMHhjNCwweDgwIH0gfSwKLXsgIDE2LCAweGZkNTAsIDAsIHsweDMxLDB4NjAsMHg4YywweDU4LDB4MDMsMHhmZSwweDAwLDB4YzcsMHhjOCwweDMzLDB4ZTgsMHgwYywweDU4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGZkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGZmLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGZkNzAsIDAsIHsweDBmLDB4OTAsMHgyMywweGVjLDB4YTAsMHhmYiwweDQwLDB4M2UsMHhjMCwweDhmLDB4YjUsMHgwMywweGVkLDB4ODAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGZkODAsIDAsIHsweDNjLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlOCwweDAwLDB4ZmIsMHgwMiwweDNlLDB4ZDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGZkOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDA0LDB4YmUsMHgwMCwweGZmLDB4ODAsMHgzZiwweGUwIH0gfSwKLXsgIDE2LCAweGZkYTAsIDAsIHsweDBmLDB4ZDksMHgwMywweGZlLDB4MjAsMHhjZiwweGM4LDB4MzMsMHhlYSwweDhmLDB4ZmMsMHgwMywweDNmLDB4MDAsMHhmZCwweDgwIH0gfSwKLXsgIDE2LCAweGZkYjAsIDAsIHsweDNmLDB4NjAsMHgwZSwweGU4LDB4MDMsMHhmMiwweDAwLDB4Y2YsMHg4MCwweDJmLDB4ZmUsMHgwYywweDc4LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkYzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDAwLDB4OWMsMHgwMCwweGI1LDB4MDIsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGZkZDAsIDAsIHsweDBiLDB4NTgsMHg0MiwweGRjLDB4ODAsMHhjZiwweDAwLDB4MjEsMHhjMSwweDBiLDB4MzAsMHgxMiwweDFjLDB4NDAsMHhiNCwweDAyIH0gfSwKLXsgIDE2LCAweGZkZTAsIDAsIHsweDJkLDB4NDYsMHgwOCwweDcxLDB4MTIsMHhjOCwweDAwLDB4ZTcsMHgwMCwweDJkLDB4YzQsMHgwOCwweDcwLDB4MDMsMHg2YSwweDA0IH0gfSwKLXsgIDE2LCAweGZkZjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweDAyIH0gfSwKLXsgIDE2LCAweGZlMDAsIDAsIHsweDBiLDB4NDYsMHgwMiwweGRjLDB4MDgsMHg5NywweDAwLDB4MjEsMHhjOSwweDBhLDB4MzAsMHgyMiwweDFjLDB4MDAsMHhiNCwweDAwIH0gfSwKLXsgIDE2LCAweGZlMTAsIDAsIHsweDJkLDB4NDAsMHgwYSwweDUwLDB4ODIsMHhjNCwweDAwLDB4YjcsMHgwMCwweDJjLDB4YzgsMHgyOCwweDUwLDB4MDIsMHg0MCwweDEwIH0gfSwKLXsgIDE2LCAweGZlMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE0LDB4OGMsMHgxOCwweGIzLDB4MDAsMHgyZSwweDIwIH0gfSwKLXsgIDE2LCAweGZlMzAsIDAsIHsweDBiLDB4MTgsMHgwMiwweGNmLDB4NGEsMHg4MywweGMyLDB4MjAsMHhjMSwweDBiLDB4MzQsMHgyMiwweDBjLDB4MDQsMHhiOCwweDU4IH0gfSwKLXsgIDE2LCAweGZlNDAsIDAsIHsweDJjLDB4NDAsMHgwYiwweDI4LDB4MDIsMHhjOCwweDAwLDB4YTMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDE0LDB4MDIsMHg0OCwweDA0IH0gfSwKLXsgIDE2LCAweGZlNTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4YmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGZlNjAsIDAsIHsweDBmLDB4YTAsMHgwMiwweGZjLDB4MDAsMHhkZiwweGEwLDB4YjMsMHhjMCwweDBlLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHhmYiwweGMwIH0gfSwKLXsgIDE2LCAweGZlNzAsIDAsIHsweDNjLDB4YTAsMHgwZSwweGJkLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwYywweDMwLDB4MDMsMHg2YSwweDA0IH0gfSwKLXsgIDE2LCAweGZlODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDEwLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweDAxIH0gfSwKLXsgIDE2LCAweGZlOTAsIDAsIHsweDhmLDB4YjEsMHg0MywweGVjLDB4MDAsMHhmMywweDAwLDB4M2UsMHhjMCwweDRmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGZlYTAsIDAsIHsweDNlLDB4ODAsMHgwYywweDg0LDB4MDMsMHhlMSwweDAwLDB4NzMsMHgwMCwweDNlLDB4YzEsMHgwZiwweGIyLDB4NDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlYjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDUwLDB4ZmMsMHgxMCwweGZmLDB4ODAsMHgzNywweGMwIH0gfSwKLXsgIDE2LCAweGZlYzAsIDAsIHsweDBjLDB4ZTAsMHgwMywweGZjLDB4MjAsMHhmZiwweDA4LDB4MzMsMHhjMCwweDBmLDB4ZjAsMHg4MywweGJjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGZlZDAsIDAsIHsweDMzLDB4YzAsMHgyZSwweDQwLDB4MDMsMHgxYywweDAxLDB4Y2YsMHgwMCwweDExLDB4YzAsMHg0YywweGQwLDB4MDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGZlZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgwNCwweGIzLDB4MDIsMHgyMiwweDcyIH0gfSwKLXsgIDE2LCAweGZlZjAsIDAsIHsweDA4LDB4YTEsMHgxNiwweGVjLDB4MDAsMHhiYiwweDA0LDB4MjIsMHhjMCwweDBiLDB4YjAsMHg0MiwweGVjLDB4MDAsMHhiYSwweDE5IH0gfSwKLXsgIDE2LCAweGZmMDAsIDAsIHsweGI2LDB4ZDAsMHgwOCwweDljLDB4NGEsMHgyNiwweDgwLDB4ZGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MDMsMHg2MCwweDQwIH0gfSwKLXsgIDE2LCAweGZmMTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGI5LDB4MTAsMHg2MiwweDIwIH0gfSwKLXsgIDE2LCAweGZmMjAsIDAsIHsweDQ4LDB4YTAsMHgwMiwweGVjLDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMiwweGVjLDB4MTAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGZmMzAsIDAsIHsweDY2LDB4MDgsMHgwYSwweGE4LDB4MTIsMHgyNiwweDEwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgyOCwweGIwLDB4MjYsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MGMsMHgwMCwweGI5LDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNTAsIDAsIHsweDA4LDB4MzIsMHgwMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDRiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGZmNjAsIDAsIHsweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMSwweDAwLDB4OTMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDYsMHg0MiwweDExIH0gfSwKLXsgIDE2LCAweGZmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFjLDB4NmMsMHgwMCwweGY5LDB4MDAsMHhiMiwweDQwIH0gfSwKLXsgIDE2LCAweGZmODAsIDAsIHsweDBjLDB4ODIsMHgwMiwweGRjLDB4MDEsMHhmZiwweDAwLDB4YjIsMHhjMCwweDBiLDB4ZjEsMHgwMywweGJjLDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGZmOTAsIDAsIHsweDI2LDB4NDAsMHgyZSwweDgwLDB4MDMsMHgyMSwweDA0LDB4Y2YsMHgwMCwweGJiLDB4YzAsMHgwYywweDkwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGZmYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGZmYjAsIDAsIHsweDBmLDB4ODEsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweGZmYzAsIDAsIHsweDJkLDB4NDAsMHgyZiwweGMwLDB4MDMsMHhmMCwweDg4LDB4ZmYsMHgwMCwweDM3LDB4YzAsMHg4ZiwweGQwLDB4MDMsMHhlOCwweDAyIH0gfSwKLXsgIDE2LCAweGZmZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHg0MCwweGZmLDB4ODAsMHgzMywweGMyIH0gfSwKLXsgIDE2LCAweGZmZTAsIDAsIHsweDBjLDB4ZjgsMHgwMywweDdjLDB4YTAsMHhmZiwweDkwLDB4M2YsMHhjNCwweDJjLDB4YjQsMHgwMywweGJjLDB4ODAsMHhjZiwweDQwIH0gfSwKLXsgIDE2LCAweGZmZjAsIDAsIHsweDM3LDB4ZTAsMHgwZiwweGYxLDB4OTMsMHg2ZSwweDQ0LDB4YmYsMHgzMCwweDNmLDB4MjAsMHgyYywweGY4LDB4NjMsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweDgwMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWMsMHgwMCwweGViLDB4MjAsMHgyMywweGYwIH0gfSwKLXsgIDE2LCAweDgwMjAsIDAsIHsweDA4LDB4YjgsMHg1MiwweDNkLDB4MDAsMHhiMywweDAwLDB4MmUsMHhkYywweDA4LDB4ZjQsMHg0MiwweDFjLDB4NDIsMHg4YiwweDQwIH0gfSwKLXsgIDE2LCAweDgwMzAsIDAsIHsweDIyLDB4YzgsMHgwYiwweGY2LDB4MDMsMHg2YywweDg4LDB4YmIsMHgzMCwweDJlLDB4MDAsMHgwOCwweGIyLDB4MDIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweDgwNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweGJiLDB4MDgsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweDgwNTAsIDAsIHsweDA4LDB4MzAsMHgwMiwweDRjLDB4YTAsMHhiMywweDIwLDB4MjYsMHg4MCwweDg4LDB4MzYsMHgwMiwweGNjLDB4YTAsMHg5MywweDYwIH0gfSwKLXsgIDE2LCAweDgwNjAsIDAsIHsweGE0LDB4YzIsMHgwYSwweDMyLDB4NDIsMHg0YywweDkwLDB4YjMsMHgyMCwweDJjLDB4MGIsMHg4OCwweDMwLDB4ODIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweDgwNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwOCwweGJiLDB4MjIsMHhhMiwweGMwIH0gfSwKLXsgIDE2LCAweDgwODAsIDAsIHsweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHg5MCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg5YiwweDAwIH0gfSwKLXsgIDE2LCAweDgwOTAsIDAsIHsweDIyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMiwweDJlLDB4MjAsMHgwOCwweGIwLDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGIxLDB4ODMsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweDgwYjAsIDAsIHsweDBjLDB4MWEsMHgwMywweDZjLDB4MTAsMHhmYiwweDAwLDB4MzQsMHhjMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDgsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweDgwYzAsIDAsIHsweDM2LDB4YzAsMHgwZSwweGIwLDB4MGIsMHg2YywweDAwLDB4ZmIsMHgwMCwweDNlLDB4MjgsMHgwYywweGIwLDB4MDIsMHhkMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmMsMHgwMCwweGVkLDB4ODAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweDgwZTAsIDAsIHsweDBmLDB4ZDQsMHgwMywweGVjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjOCwweDBmLDB4YjAsMHgwMywweDNjLDB4MDAsMHhlZSwweDQwIH0gfSwKLXsgIDE2LCAweDgwZjAsIDAsIHsweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MjAsMHhiMCwweGMwIH0gfSwKLXsgIDE2LCAweDgxMTAsIDAsIHsweDBmLDB4YjQsMHgwMywweGFjLDB4MDIsMHhjYiwweDAwLDB4MzIsMHg5MCwweDBlLDB4YjAsMHgwMywweDZjLDB4MDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweDgxMjAsIDAsIHsweDNhLDB4YzAsMHgwYywweGIwLDB4MDIsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4OTEsMHgwZiwweGIwLDB4MDMsMHg5MCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweGJiLDB4ODAsMHgyMywweGQ3IH0gfSwKLXsgIDE2LCAweDgxNDAsIDAsIHsweDBiLDB4OTAsMHgwMiwweDNjLDB4MTQsMHg4YiwweDAwLDB4NmEsMHgwOCwweDI4LDB4ZjAsMHgwMCwweGJjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDgxNTAsIDAsIHsweGJlLDB4YzAsMHg4OCwweGYwLDB4MTMsMHgyYywweDAwLDB4ZWYsMHgwMCwweDJlLDB4ODAsMHgwYiwweGIwLDB4MDcsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweDgxNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIzLDB4NDAsMHgyMCwweGQwIH0gfSwKLXsgIDE2LCAweDgxNzAsIDAsIHsweDBiLDB4MjgsMHgwMiwweDhjLDB4MDAsMHg4MywweDAxLDB4MjAsMHhjMCwweDFhLDB4YjgsMHgwMCwweDZjLDB4MTAsMHhhMSwweDAwIH0gfSwKLXsgIDE2LCAweDgxODAsIDAsIHsweDY4LDB4YzAsMHgyYSwweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMiwweDJlLDB4MDAsMHg0YiwweDMwLDB4MDIsMHhmOCwweDA0IH0gfSwKLXsgIDE2LCAweDgxOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4YTAsMHgyMSwweGUwIH0gfSwKLXsgIDE2LCAweDgxYTAsIDAsIHsweDBiLDB4ZWMsMHhjMiwweDFlLDB4MDQsMHg4NywweDgwLDB4MjksMHhlNCwweDA4LDB4NzksMHg4MiwweDllLDB4NDAsMHhhZiwweDkwIH0gfSwKLXsgIDE2LCAweDgxYjAsIDAsIHsweDI5LDB4ZTAsMHgwYSwweDM4LDB4MDAsMHgxZSwweDAwLDB4YTcsMHg5MCwweDJkLDB4MjQsMHgwYiwweDc4LDB4MDIsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweDgxYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHg1MCwweGZiLDB4MDksMHgzMCwweGMwIH0gfSwKLXsgIDE2LCAweDgxZDAsIDAsIHsweDBmLDB4MjAsMHgwMiwweDhjLDB4NDAsMHhjMywweDAwLDB4MjAsMHhjMCwweDBhLDB4MzgsMHgwMywweDRjLDB4NDQsMHhlMSwweDAwIH0gfSwKLXsgIDE2LCAweDgxZTAsIDAsIHsweGFhLDB4YzAsMHgwZSwweDMxLDB4NDMsMHg4ZSwweDAwLDB4ZjMsMHgwMCwweDNjLDB4MDAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyIH0gfSwKLXsgIDE2LCAweDgxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDRkLDB4YmMsMHgwMCwweGZmLDB4MjAsMHgzZiwweGQwIH0gfSwKLXsgIDE2LCAweDgyMDAsIDAsIHsweDRmLDB4NzAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjMCwweDBmLDB4ZjMsMHg0MywweGZjLDB4NDAsMHhkNywweDAwIH0gfSwKLXsgIDE2LCAweDgyMTAsIDAsIHsweGJmLDB4YzAsMHgwZCwweGY0LDB4YzMsMHhmYywweDQwLDB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDgyMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzMiwweGQwIH0gfSwKLXsgIDE2LCAweDgyMzAsIDAsIHsweDBkLDB4OTAsMHgwMSwweGVkLDB4YzAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDFmLDB4YmEsMHgwMywweGFjLDB4YzAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNDAsIDAsIHsweDMyLDB4ZTAsMHg4ZCwweGI0LDB4NDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweDM2LDB4YTAsMHgwYywweGIwLDB4MDMsMHg2YSwweDAwIH0gfSwKLXsgIDE2LCAweDgyNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyMSwweGM4IH0gfSwKLXsgIDE2LCAweDgyNjAsIDAsIHsweDA4LDB4NjAsMHgwMiwweGRjLDB4MjAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBmLDB4NzQsMHhhMiwweDFjLDB4MjgsMHhkNiwweDAwIH0gfSwKLXsgIDE2LCAweDgyNzAsIDAsIHsweDM1LDB4YzAsMHgwOCwweDcyLDB4MDIsMHg1YywweDA4LDB4YjcsMHg0NCwweGExLDB4ODAsMHg0OCwweDcwLDB4MDIsMHgxMiwweDAwIH0gfSwKLXsgIDE2LCAweDgyODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGI3LDB4ODAsMHgyMCwweGU0IH0gfSwKLXsgIDE2LCAweDgyOTAsIDAsIHsweDA5LDB4NzgsMHgyNiwweGRlLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlMiwweDBhLDB4NzAsMHgxMiwweDhjLDB4ODgsMHg4MSwweDgwIH0gfSwKLXsgIDE2LCAweDgyYTAsIDAsIHsweDIxLDB4ZTAsMHgwOSwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjMsMHhhMCwweDI1LDB4YTAsMHgyOCwweDc4LDB4MDIsMHg3MCwweDA0IH0gfSwKLXsgIDE2LCAweDgyYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMSwweGJiLDB4ODAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweDgyYzAsIDAsIHsweDA4LDB4MzAsMHg0MiwweGVjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDBhLDB4MzAsMHgyMiwweDBjLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweDgyZDAsIDAsIHsweDI0LDB4YzEsMHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4ZTAsMHgwOCwweGIwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweDgyZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGZhLDB4MDgsMHhiMiwweDgwIH0gfSwKLXsgIDE2LCAweDgyZjAsIDAsIHsweDBkLDB4ZTIsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4M2YsMHg4MCwweDBhLDB4YTAsMHgwMywweGE4LDB4MDAsMHhjZSwweDUwIH0gfSwKLXsgIDE2LCAweDgzMDAsIDAsIHsweDMyLDB4ODAsMHgwNSwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDM3LDB4YTgsMHgwYywweGEwLDB4MDMsMHg3YSwweDA0IH0gfSwKLXsgIDE2LCAweDgzMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4NjAsMHgwOCwweGY4LDB4MDAsMHgzYywweDAwIH0gfSwKLXsgIDE2LCAweDgzMjAsIDAsIHsweDBmLDB4ODgsMHgwMSwweGUwLDB4MDAsMHhmOCwweDA0LDB4M2MsMHgwMCwweDRmLDB4MDAsMHgxMywweGMwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDgzMzAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZjgsMHgwMiwweDNlLDB4MDEsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDgzNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4OTAsMHgxMiwweDQwIH0gfSwKLXsgIDE2LCAweDgzNTAsIDAsIHsweDBjLDB4OTAsMHgwMywweGE0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg3MCwweDBlLDB4OTQsMHgzMywweDI0LDB4MDgsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweDgzNjAsIDAsIHsweDJhLDB4NDAsMHgwYiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweDgzNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDIsMHgyMiwweDYwIH0gfSwKLXsgIDE2LCAweDgzODAsIDAsIHsweDA4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAzLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDEsMHg4MSwweDA0IH0gfSwKLXsgIDE2LCAweDgzOTAsIDAsIHsweDNlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMiwweDIyLDB4NDAsMHgwZSwweDkwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4NDAsMHgyYSwweDRhIH0gfSwKLXsgIDE2LCAweDgzYjAsIDAsIHsweDA4LDB4OTEsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDFhLDB4OTAsMHgwYSwweDI0LDB4MDQsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweDgzYzAsIDAsIHsweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjEsMHgwMCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweDgzZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweGIxLDB4MDEsMHhhOCwweDQ4IH0gfSwKLXsgIDE2LCAweDgzZTAsIDAsIHsweDg4LDB4OTAsMHgwMiwweDA0LDB4ODAsMHg4MSwweDQwLDB4MmMsMHg1MCwweDE4LDB4MTQsMHgwYSwweDg0LDB4MTAsMHg4OSwweDQwIH0gfSwKLXsgIDE2LCAweDgzZjAsIDAsIHsweDJjLDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjNCwweDAwLDB4MzEsMHgyMCwweDIwLDB4NDAsMHgwYSwweDEwLDB4MGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweDg0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGYwLDB4NTAsMHgzYSwweDAwIH0gfSwKLXsgIDE2LCAweDg0MTAsIDAsIHsweDJjLDB4YTAsMHgwMiwweGExLDB4NDIsMHhjOCwweDAwLDB4M2UsMHgwMCwweGRlLDB4MDAsMHgyMywweDIxLDB4NDIsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweDg0MjAsIDAsIHsweDM4LDB4MTQsMHgwZiwweDg1LDB4MDMsMHhlMSwweDQwLDB4ZjgsMHg1MCwweDM4LDB4MTQsMHgwZiwweDA1LDB4MDMsMHgyZSwweDAxIH0gfSwKLXsgIDE2LCAweDg0MzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZTQsMHgwOCwweGZkLDB4MDAsMHgzNiwweDQ0IH0gfSwKLXsgIDE2LCAweDg0NDAsIDAsIHsweDBmLDB4ZDAsMHgwMywweDY0LDB4NDAsMHhmOSwweDAwLDB4M2QsMHg1MCwweDBmLDB4OTQsMHgwMywweGU1LDB4MDAsMHg3ZCwweDQwIH0gfSwKLXsgIDE2LCAweDg0NTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNiwweDA0IH0gfSwKLXsgIDE2LCAweDg0NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTQsMHgwMCwweGZkLDB4NDAsMHgzMywweDY4IH0gfSwKLXsgIDE2LCAweDg0NzAsIDAsIHsweDBjLDB4ZDAsMHgwMywweGU3LDB4ODEsMHhmOSwweDAwLDB4MzMsMHg3OCwweDBkLDB4ZDgsMHgxMywweDI2LDB4YTAsMHhjZCwweGEwIH0gfSwKLXsgIDE2LCAweDg0ODAsIDAsIHsweDMyLDB4NDAsMHgwZCwweDliLDB4MDMsMHgyNCwweDAwLDB4ZjksMHhhMCwweDNjLDB4NDQsMHgyYywweDkwLDB4MDcsMHg4NiwweDAwIH0gfSwKLXsgIDE2LCAweDg0OTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTAsMHgwMCwweGI4LDB4YTAsMHhhMiwweDEwIH0gfSwKLXsgIDE2LCAweDg0YTAsIDAsIHsweDE4LDB4ODAsMHgwMywweDgyLDB4ODQsMHhiOCwweDgwLDB4MzYsMHgyYywweDJlLDB4MGYsMHgwMiwweGEzLDB4YTAsMHhkOCwweGUwIH0gfSwKLXsgIDE2LCAweDg0YjAsIDAsIHsweDM2LDB4MjIsMHg4YiwweDA4LDB4MDMsMHg0MiwweGEwLDB4ZjgsMHhlMCwweDJlLDB4MjgsMHgwOCwweDg4LDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweDg0YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHhhMCwweDUwIH0gfSwKLXsgIDE2LCAweDg0ZDAsIDAsIHsweDI4LDB4MzAsMHgwMiwweGM1LDB4ODAsMHhiMSwweDA4LDB4MjAsMHg0MCwweDA5LDB4MTAsMHhhMiwweDQ0LDB4MDgsMHg4MSwweDQ4IH0gfSwKLXsgIDE2LCAweDg0ZTAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDE0LDB4MDIsMHgwNCwweDgwLDB4YjEsMHgzOCwweDJjLDB4NDgsMHgwOCwweDEyLDB4ODIsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweDg0ZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweDg1MDAsIDAsIHsweDA4LDB4OTIsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAyLDB4MjYsMHg1OCwweDRhLDB4OTAsMHgwMiwweGU0LDB4MDgsMHg5OSwweDQwIH0gfSwKLXsgIDE2LCAweDg1MTAsIDAsIHsweDI2LDB4NDAsMHgwYiwweDkwLDB4MDIsMHg2NCwweDA4LDB4YjksMHgwMSwweDJjLDB4NDgsMHgwOCwweDkwLDB4MTIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweDg1MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweDg1MzAsIDAsIHsweDA4LDB4OTgsMHg4MywweGU0LDB4MDQsMHhiOSwweDAxLDB4MzAsMHg0MCwweDBkLDB4OTAsMHgwYiwweDY0LDB4MDIsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweDg1NDAsIDAsIHsweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDFlLDB4NTgsMHgwYywweDkwLDB4MDMsMHhhOCwweDA0IH0gfSwKLXsgIDE2LCAweDg1NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MjAsMHgzYywweDQwIH0gfSwKLXsgIDE2LCAweDg1NjAsIDAsIHsweDBmLDB4OTgsMHgwMywweGE0LDB4MDAsMHhiOSwweDAwLDB4M2UsMHg0MiwweDhlLDB4MTAsMHg0YiwweDg0LDB4MDQsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDg1NzAsIDAsIHsweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDg1ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDAsMHgzMiwweDA4IH0gfSwKLXsgIDE2LCAweDg1OTAsIDAsIHsweDBmLDB4ODQsMHg4MywweGEwLDB4MDQsMHhjOCwweDA0LDB4M2UsMHgwMCwweDgzLDB4ODAsMHgwMSwweDIwLDB4MDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1YTAsIDAsIHsweDMyLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MTAsMHg0ZSwweDgwLDB4MTMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDg1YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4OTAsMHhhMywweDgwIH0gfSwKLXsgIDE2LCAweDg1YzAsIDAsIHsweDBiLDB4ZTQsMHgwMiwweDI4LDB4MDAsMHhjYSwweDAwLDB4MmYsMHg4MCwweDRhLDB4YTAsMHgxMywweGE4LDB4MDAsMHhhYSwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZDAsIDAsIHsweDM2LDB4ODEsMHgwYiwweGEwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDMsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDkzLDB4YzAsMHgyMCwweGQwIH0gfSwKLXsgIDE2LCAweDg1ZjAsIDAsIHsweDBiLDB4MzQsMHgwMiwweDhjLDB4MDAsMHg4YiwweDAwLDB4MmMsMHhmMCwweDhiLDB4MTgsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDg2MDAsIDAsIHsweDYwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDAyLDB4ODMsMHgwMCwweDI4LDB4YzEsMHgwYSwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDg2MTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWUsMHgwMCwweGI0LDB4MGIsMHg2OSwweGMwIH0gfSwKLXsgIDE2LCAweDg2MjAsIDAsIHsweDA5LDB4NTgsMHgwNiwweDFlLDB4ODAsMHg5NywweDEwLDB4MmYsMHhjMiwweDQ4LDB4NzAsMHg4MiwweDljLDB4ODAsMHhhNywweDA4IH0gfSwKLXsgIDE2LCAweDg2MzAsIDAsIHsweDI1LDB4Y2MsMHgwYiwweDcwLDB4MDIsMHgxZSwweDgxLDB4ODcsMHhhMiwweGFiLDB4YzQsMHgwOCwweDczLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4M2UsMHgxMCwweGRjLDB4ODQsMHgyMSwweGUwIH0gfSwKLXsgIDE2LCAweDg2NTAsIDAsIHsweDBmLDB4NzgsMHg0MiwweDlmLDB4MDIsMHhjNywweDg4LDB4M2QsMHhlMCwweDJmLDB4NzEsMHgwMywweDRlLDB4MDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweDg2NjAsIDAsIHsweDIxLDB4ZTIsMHgwZiwweDc4LDB4ODMsMHg5ZSwweDQ5LDB4Y2YsMHhkMCwweDM5LDB4ZTgsMHgwZSwweDc4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDg2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDRkLDB4YWMsMHg0MCwweGNhLDB4MDAsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDg2ODAsIDAsIHsweDhmLDB4MzAsMHgyMywweGVjLDB4YTgsMHhlYiwweDQwLDB4M2MsMHhjMCwweDBmLDB4OTYsMHg0MywweGVkLDB4ODAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDg2OTAsIDAsIHsweDNlLDB4ZDgsMHg4ZiwweGIxLDB4NDMsMHhlZCwweDgwLDB4ZmIsMHgyMCwweDM2LDB4Y2EsMHgwZiwweGIwLDB4YTMsMHg4MiwweDA2IH0gfSwKLXsgIDE2LCAweDg2YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg4MCwweGZjLDB4ODAsMHgzMSwweGUwIH0gfSwKLXsgIDE2LCAweDg2YjAsIDAsIHsweDA1LDB4YWEsMHgxMCwweGZlLDB4NDQsMHhmZiwweDkwLDB4M2YsMHhlMSwweGNmLDB4ZjksMHgxNywweDNmLDB4MjAsMHhkNywweDgwIH0gfSwKLXsgIDE2LCAweDg2YzAsIDAsIHsweDhiLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHgzZSwweDMwLDB4ZmYsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGY4LDB4MDAsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweDg2ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGJkLDB4MTAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDg2ZTAsIDAsIHsweDA4LDB4NGEsMHgwMiwweGRjLDB4YzAsMHhiNywweDAwLDB4MmQsMHhjMiwweDBjLDB4ZDMsMHgwMiwweDFjLDB4ODAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweDg2ZjAsIDAsIHsweDI5LDB4YzAsMHg0YiwweDcyLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMSwweDIxLDB4YzAsMHgwYiwweGYwLDB4MTIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweDg3MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHg5MCwweDM0LDB4MDAsMHgyMSwweDgwIH0gfSwKLXsgIDE2LCAweDg3MTAsIDAsIHsweDA5LDB4NzAsMHgwMCwweDVjLDB4MGMsMHhiNywweDAwLDB4MmQsMHhjNCwweDA4LDB4NTAsMHgxYSwweDBjLDB4MDAsMHg5NywweDAwIH0gfSwKLXsgIDE2LCAweDg3MjAsIDAsIHsweDIxLDB4YzAsMHg0YiwweDMwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCwweDI1LDB4YzAsMHgwYiwweDcwLDB4MDIsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweDg3MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgwMCwweGIwLDB4MDAsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweDg3NDAsIDAsIHsweDA4LDB4M2UsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4MGMsMHhlMCwweDJiLDB4YjAsMHgwMiwweDBjLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweDg3NTAsIDAsIHsweDI4LDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyYywweDEwLDB4YjMsMHgwMCwweDIwLDB4ZDYsMHgwMywweDMwLDB4MDIsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweDg3NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGZiLDB4MDAsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweDg3NzAsIDAsIHsweDA1LDB4YmUsMHgwMywweDdjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgyMCwweDBjLDB4YjAsMHgwMywweDNjLDB4MDAsMHhkOSwweDgwIH0gfSwKLXsgIDE2LCAweDg3ODAsIDAsIHsweDMzLDB4YzAsMHg4YiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZmYsMHgwMCwweDM3LDB4ZTAsMHgwZiwweGYwLDB4MDMsMHg2YSwweDA0IH0gfSwKLXsgIDE2LCAweDg3OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDQsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweDg3YTAsIDAsIHsweDBmLDB4YTQsMHgyMywweGNjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg4MSwweDA4LDB4OTAsMHgwMywweGVjLDB4MDAsMHhlOSwweDE0IH0gfSwKLXsgIDE2LCAweDg3YjAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzNywweDgwIH0gfSwKLXsgIDE2LCAweDg3ZDAsIDAsIHsweDBmLDB4ZmEsMHgwMywweGZjLDB4MDAsMHhjZiwweDAwLDB4M2YsMHg5MCwweDA2LDB4ZGMsMHgyMywweDNjLDB4MDAsMHhmZCwweDEwIH0gfSwKLXsgIDE2LCAweDg3ZTAsIDAsIHsweDMzLDB4YzAsMHgwZiwweGYwLDB4MGIsMHgzYywweDAwLDB4NDMsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweDg3ZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDAwLDB4NmMsMHgwOSwweGJiLDB4MTksMHgyMiwweDMyIH0gfSwKLXsgIDE2LCAweDg4MDAsIDAsIHsweDBiLDB4YmUsMHgwMywweDZjLDB4MDAsMHg4YiwweDAwLDB4MmMsMHg5MCwweDBkLDB4YjgsMHgwMiwweGFjLDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweDg4MTAsIDAsIHsweGYyLDB4YzAsMHgwYiwweGIwLDB4MTIsMHhhYywweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwYiwweGIwLDB4MDMsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweDg4MjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgxMCwweGIzLDB4MDAsMHgyNiwweDIwIH0gfSwKLXsgIDE2LCAweDg4MzAsIDAsIHsweDBiLDB4OTAsMHgxMiwweGVjLDB4MDEsMHg4YiwweDAwLDB4MmEsMHhjMiwweDBhLDB4OTAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDg4NDAsIDAsIHsweGEyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMSwweGIzLDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NjAsIDAsIHsweDBiLDB4MDAsMHgwMiwweDhjLDB4MDAsMHg4MywweDAwLDB4MmUsMHhjMCwweDBiLDB4MzQsMHgwMiwweDhjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDg4NzAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwZCwweDAwLDB4YTMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4MiwweDAxIH0gfSwKLXsgIDE2LCAweDg4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGJiLDB4MDQsMHgzNiwweDgwIH0gfSwKLXsgIDE2LCAweDg4OTAsIDAsIHsweDBmLDB4YjIsMHgwMiwweGZjLDB4MDIsMHhjZiwweDAyLDB4MzgsMHhjMCwweDBlLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDg4YTAsIDAsIHsweDIzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzZCwweDAyLDB4ZWYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweDg4YjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweDg4YzAsIDAsIHsweDBmLDB4ZjQsMHgyMywweDdjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBkLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDg4ZDAsIDAsIHsweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDg4LDB4ZGYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhhOCwweDA2IH0gfSwKLXsgIDE2LCAweDg4ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHg1MCwweGNlLDB4MTIsMHgzMywweGQwIH0gfSwKLXsgIDE2LCAweDg4ZjAsIDAsIHsweDRjLDB4ODYsMHg4MywweDMwLDB4ODAsMHg1ZiwweDY4LDB4MzMsMHhjNCwweDBmLDB4ZjMsMHg4MywweDNjLDB4YzAsMHhjYywweDM4IH0gfSwKLXsgIDE2LCAweDg5MDAsIDAsIHsweGIzLDB4MDgsMHgwYywweGM2LDB4MDMsMHhmMSwweGEwLDB4ZmYsMHgwMCwweDMzLDB4MjQsMHgwYywweGMyLDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWMsMHg4MCwweGQyLDB4MjAsMHgyMywweGQ4IH0gfSwKLXsgIDE2LCAweDg5MjAsIDAsIHsweDBkLDB4OTYsMHgwMiwweDg4LDB4NjAsMHhhZiwweDQwLDB4MjMsMHhkYywweDBiLDB4ZjYsMHgwMiwweDNjLDB4YzIsMHg4OCwweDYwIH0gfSwKLXsgIDE2LCAweDg5MzAsIDAsIHsweDIyLDB4NTIsMHgwOCwweDkxLDB4MjIsMHhlMSwweDAwLDB4YjcsMHgyNCwweGEyLDB4NDgsMHg4YSwweDg0LDB4ODIsMHg2MCwweDA0IH0gfSwKLXsgIDE2LCAweDg5NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHgwMCwweDgxLDB4MDAsMHhlMCwweGM0IH0gfSwKLXsgIDE2LCAweDg5NTAsIDAsIHsweDBhLDB4MDAsMHgwMiwweDA0LDB4ODAsMHhhMywweDIwLDB4YTgsMHhjMCwweDFiLDB4MzAsMHgwYSwweDBjLDB4MDAsMHhhMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5NjAsIDAsIHsweDI4LDB4MGMsMHgwOSwweDAyLDB4MDIsMHhjNCwweDgwLDB4YjMsMHgxYywweDIyLDB4MDgsMHgxOSwweDAzLDB4MDIsMHhlMiwweDExIH0gfSwKLXsgIDE2LCAweDg5NzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTQsMHgwMCwweDk5LDB4ODAsMHg2MiwweGMwIH0gfSwKLXsgIDE2LCAweDg5ODAsIDAsIHsweDBiLDB4YTAsMHgzMiwweGE0LDB4NTEsMHhhYiwweDAwLDB4MmEsMHhjMCwweDhiLDB4YjAsMHgwMCwweDBjLDB4MDAsMHhhOSwweGMwIH0gfSwKLXsgIDE2LCAweDg5OTAsIDAsIHsweDJhLDB4MjEsMHgwOCwweGI4LDB4MjIsMHhlMiwweDAwLDB4YmIsMHgwMCwweDIyLDB4ODQsMHgxYiwweGE4LDB4NDIsMHg3MCwweDA0IH0gfSwKLXsgIDE2LCAweDg5YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZTIsMHgwMCwweGNiLDB4YzksMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweDg5YjAsIDAsIHsweDBlLDB4OGIsMHgxMywweDIyLDB4MTAsMHhkYiwweDAxLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwYiwweDJjLDB4MDAsMHg2OCwweDgxIH0gfSwKLXsgIDE2LCAweDg5YzAsIDAsIHsweDNhLDB4MjIsMHgyYywweDg4LDB4MjMsMHhlMywweDAwLDB4ZmIsMHgwMCwweDMwLDB4MzAsMHg4ZCwweDljLDB4ODMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDg5ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmEsMHg0MCwweGY3LDB4MDQsMHgzZSwweGMyIH0gfSwKLXsgIDE2LCAweDg5ZTAsIDAsIHsweDBkLDB4ZDgsMHgyMywweGQ4LDB4MDAsMHg3YiwweDAwLDB4MzcsMHhjMCwweDBmLDB4NzAsMHgzMywweGZjLDB4MTAsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDg5ZjAsIDAsIHsweDM1LDB4YzAsMHg4ZiwweGMwLDB4MDMsMHhmNCwweDAwLDB4ZjcsMHgwMiwweDNmLDB4ZTAsMHgwZSwweDgwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDhhMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4ODEsMHgyMCwweGM4LDB4MDgsMHgzMCwweGMwIH0gfSwKLXsgIDE2LCAweDhhMTAsIDAsIHsweDBjLDB4MDAsMHg4MywweDI0LDB4NDAsMHhjMywweDg5LDB4M2EsMHhjMCwweDBlLDB4YjAsMHgwYiwweDJjLDB4MDgsMHhjOSwweDQ4IH0gfSwKLXsgIDE2LCAweDhhMjAsIDAsIHsweDcyLDB4NTQsMHgwZiwweDkxLDB4MDMsMHhlZCwweDAyLDB4ZWIsMHg4YSwweDNhLDB4NjIsMHg4YywweDgwLDB4MGIsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweDhhMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmIsMHgwNCwweDg4LDB4NDAsMHhhMywweGMyIH0gfSwKLXsgIDE2LCAweDhhNDAsIDAsIHsweDAyLDB4YWUsMHgxMiwweDI3LDB4NDIsMHg4ZiwweDQ0LDB4MjMsMHhjMiwweDBiLDB4ZjQsMHgwMiwweDNkLDB4MDAsMHgwYSwweDQwIH0gfSwKLXsgIDE2LCAweDhhNTAsIDAsIHsweDIyLDB4ZTAsMHgwYiwweGI1LDB4MDIsMHhlYywweDIwLDB4OGYsMHg0NCwweGEyLDB4NDAsMHg4ZCwweGJkLDB4MjMsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDhhNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDksMHg0MCwweDgzLDB4ODEsMHgyNCwweGMxIH0gfSwKLXsgIDE2LCAweDhhNzAsIDAsIHsweDA4LDB4MjgsMHgwMiwweDAxLDB4MDAsMHg5MywweDAwLDB4YTAsMHhlOCwweDBhLDB4MzAsMHg4MiwweDhmLDB4NjAsMHhiMywweDkwIH0gfSwKLXsgIDE2LCAweDhhODAsIDAsIHsweDYwLDB4YjgsMHgwYiwweDI4LDB4MTIsMHg0YSwweDAwLDB4OTMsMHgwMCwweDIwLDB4OTAsMHgwOSwweDIwLDB4MDIsMHg3OCwweDAwIH0gfSwKLXsgIDE2LCAweDhhOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwMiwweDg3LDB4YTgsMHgyNSwweGUwIH0gfSwKLXsgIDE2LCAweDhhYTAsIDAsIHsweDBhLDB4N2IsMHgwMiwweDFhLDB4MDQsMHg4NywweDgwLDB4MjEsMHhlNCwweDBiLDB4NzgsMHg4MiwweDhlLDB4MDIsMHg5NiwweDkxIH0gfSwKLXsgIDE2LCAweDhhYjAsIDAsIHsweDIxLDB4MjEsMHgwYiwweDY5LDB4NDAsMHhkYiwweDQwLDB4OTcsMHg5MiwweDIzLDB4YTAsMHg4OSwweDU4LDB4ODIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweDhhYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MjUsMHg4MiwweGMzLDB4MDAsMHgzNCwweGMwIH0gfSwKLXsgIDE2LCAweDhhZDAsIDAsIHsweDBjLDB4OWIsMHg0MywweDA4LDB4ZDAsMHhkMywweDIwLDB4MzgsMHhjMCwweDBlLDB4YjAsMHgwMywweDhjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDhhZTAsIDAsIHsweDIwLDB4ODAsMHgwNywweDEwLDB4MDMsMHhlMCwweDAwLDB4ZDMsMHgxMCwweDM4LDB4MTgsMHgwZCwweDMwLDB4MDMsMHg1MiwweDAyIH0gfSwKLXsgIDE2LCAweDhhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YjQsMHgwMCwweDdmLDB4MjAsMHgxYiwweGQwIH0gfSwKLXsgIDE2LCAweDhiMDAsIDAsIHsweDBmLDB4ZjEsMHgwMywweGY4LDB4NDAsMHhlZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YjQsMHgwMywweDdjLDB4MjAsMHhjZiwweDA0IH0gfSwKLXsgIDE2LCAweDhiMTAsIDAsIHsweGJmLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhlNCwweDEwLDB4ZWYsMHgxOCwweDNkLDB4YzAsMHgwZiwweGUwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDhiMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTgsMHgwMCwweGUzLDB4MDAsMHhiMiwweGM0IH0gfSwKLXsgIDE2LCAweDhiMzAsIDAsIHsweDBjLDB4YTAsMHgwMywweDI0LDB4MDAsMHhkYiwweDY4LDB4MzIsMHhjOCwweDBjLDB4YjQsMHgwMywweGVjLDB4ODAsMHhjOCwweDgwIH0gfSwKLXsgIDE2LCAweDhiNDAsIDAsIHsweGI2LDB4ZTAsMHgwYywweGEwLDB4MDMsMHgyZSwweDAwLDB4Y2IsMHhlMCwweGIyLDB4NjAsMHgwYywweGI4LDB4MGIsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweDhiNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMiwweDg3LDB4MDAsMHhhMSwweGM4IH0gfSwKLXsgIDE2LCAweDhiNjAsIDAsIHsweDA4LDB4NzAsMHgwMiwweDFjLDB4MDgsMHg5NywweDAyLDB4MjEsMHhkNCwweDA4LDB4NzQsMHgwMiwweGRjLDB4YzAsMHgwNywweDAwIH0gfSwKLXsgIDE2LCAweDhiNzAsIDAsIHsweDIxLDB4YzAsMHg4OCwweDcwLDB4MDIsMHgxOCwweDAwLDB4ODMsMHgwOCwweDIxLDB4YzAsMHgwOCwweDUwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweDhiODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgyMCwweGFkLDB4ODAsMHgyOSwweGUwIH0gfSwKLXsgIDE2LCAweDhiOTAsIDAsIHsweDA4LDB4NTgsMHgwMiwweDFlLDB4MDAsMHg5NywweGIwLDB4MjEsMHhlOCwweDA4LDB4NzgsMHgwMiwweGRlLDB4MTAsMHgxNSwweDgwIH0gfSwKLXsgIDE2LCAweDhiYTAsIDAsIHsweDIxLDB4YTEsMHgwOCwweDQ4LDB4MDIsMHg1ZSwweDAwLDB4ODcsMHhhNCwweDY1LDB4YTAsMHgwOCwweDc4LDB4MDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2YsMHgxMCwweDgxLDB4NzAsMHhhOCwweGMwIH0gfSwKLXsgIDE2LCAweDhiYzAsIDAsIHsweDM4LDB4MzAsMHgwYSwweDBkLDB4MDAsMHg5MywweDAwLDB4YTAsMHhjMSwweDI4LDB4MzAsMHgwMiwweGNjLDB4MDIsMHg4MywweDg4IH0gfSwKLXsgIDE2LCAweDhiZDAsIDAsIHsweDIwLDB4ZTAsMHgzOCwweDM0LDB4MGEsMHg0ZCwweDcyLDB4ODMsMHgwMCwweDI0LDB4ZTgsMHgyOCwweDM0LDB4ODIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweDhiZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YmEsMHg0MCwweGVlLDB4YzAsMHhiYSwweDgwIH0gfSwKLXsgIDE2LCAweDhiZjAsIDAsIHsweDBjLDB4ZTAsMHgwMywweDM5LDB4MTAsMHhkYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkZSwweGM4IH0gfSwKLXsgIDE2LCAweDhjMDAsIDAsIHsweDMzLDB4YTAsMHgwYywweGUwLDB4MDMsMHg3YiwweDAwLDB4Y2EsMHgwMCwweDM3LDB4YjEsMHgwYywweGU0LDB4MjMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweDhjMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4YzEsMHgwMCwweGY4LDB4MDAsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDhjMjAsIDAsIHsweDBmLDB4ODAsMHgwMywweGMwLDB4MjAsMHgzOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyIH0gfSwKLXsgIDE2LCAweDhjMzAsIDAsIHsweDNhLDB4MjQsMHgwZiwweDgwLDB4ODMsMHhhMCwweDAxLDB4ZjgsMHgwNCwweDNhLDB4MDQsMHgwZCwweDgwLDB4MTMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDhjNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHg0NCwweGMxLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweDhjNTAsIDAsIHsweDBjLDB4OTAsMHgzMiwweDI0LDB4MGMsMHhjMSwweDA2LDB4MzgsMHg0MCwweDBkLDB4OTAsMHgwOSwweDA0LDB4MDAsMHhkOSwweDAwIH0gfSwKLXsgIDE2LCAweDhjNjAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDE4LDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMSwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweDhjNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwNiwweDg5LDB4MDAsMHgyYSwweDUwIH0gfSwKLXsgIDE2LCAweDhjODAsIDAsIHsweDA4LDB4OTQsMHgwYSwweDI0LDB4MDAsMHg4OSwweDQyLDB4MjIsMHg1MCwweDBhLDB4OTAsMHgxMiwweDI1LDB4MDAsMHg4OSwweDAwIH0gfSwKLXsgIDE2LCAweDhjOTAsIDAsIHsweDJlLDB4NTAsMHgwYiwweDljLDB4MGEsMHgyNSwweDEwLDB4YjksMHgwMCwweDJlLDB4NTAsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgyMCwweDg5LDB4MDAsMHgyMCwweDQyIH0gfSwKLXsgIDE2LCAweDhjYjAsIDAsIHsweDA4LDB4MTAsMHhjMiwweGFjLDB4MTAsMHg4OSwweDA4LDB4MmEsMHg0MiwweDA5LDB4OTAsMHgwMiwweDI0LDB4MjAsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweDhjYzAsIDAsIHsweDJlLDB4NDIsMHgwYSwweGIxLDB4ODIsMHgyYywweDIwLDB4YjksMHgwMCwweDZlLDB4NDIsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDhjZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweDgzLDB4MDAsMHgyOCwweDQ4IH0gfSwKLXsgIDE2LCAweDhjZTAsIDAsIHsweDA4LDB4MTIsMHg2MiwweDhjLDB4ODAsMHg4MSwweDAwLDB4MjAsMHg0MCwweDAyLDB4MTAsMHgwMiwweDg0LDB4ODAsMHg4MSwweDIwIH0gfSwKLXsgIDE2LCAweDhjZjAsIDAsIHsweDJjLDB4NDksMHgwYiwweDEyLDB4MDYsMHgwNCwweDg0LDB4YjMsMHgwMiwweDZjLDB4NDAsMHgwYiwweDEyLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDhkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NDEsMHhlMCwweGM4LDB4NzgsMHgzMCwweDE0IH0gfSwKLXsgIDE2LCAweDhkMTAsIDAsIHsweDRjLDB4MDUsMHgxMywweGExLDB4NDIsMHhjMCwweDc4LDB4MzgsMHgxZSwweDBkLDB4ODcsMHg4MywweDAxLDB4NDAsMHhkMCwweDUwIH0gfSwKLXsgIDE2LCAweDhkMjAsIDAsIHsweDNjLDB4MTQsMHgwZSwweDA1LDB4MDMsMHgwMSwweDQwLDB4ZjgsMHg3OCwweDNjLDB4MTQsMHgwZiwweDA1LDB4MDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweDhkMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgwZSwweDQ0IH0gfSwKLXsgIDE2LCAweDhkNDAsIDAsIHsweDJmLDB4ZjEsMHgwMywweDc0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4NDAsMHhmZCwweDEwIH0gfSwKLXsgIDE2LCAweDhkNTAsIDAsIHsweDNmLDB4NDQsMHgwZiwweGQxLDB4MDEsMHhmNCwweDQwLDB4ZjksMHgwMSwweDNmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweDhkNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHgyMiwweGU5LDB4ODgsMHhiMiwweDQwIH0gfSwKLXsgIDE2LCAweDhkNzAsIDAsIHsweDBmLDB4OTAsMHgwMywweDI0LDB4MTYsMHhjOSwweDhjLDB4MzYsMHg3YiwweDhmLDB4OWMsMHg4MywweGE3LDB4OTAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweDhkODAsIDAsIHsweDNlLDB4NTAsMHgwNCwweDk0LDB4MTMsMHgyNCwweDUwLDB4YzksMHhlMCwweDNlLDB4NTAsMHgwZiwweDkwLDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweDhkOTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4YTAsMHgyMiwweDI4IH0gfSwKLXsgIDE2LCAweDhkYTAsIDAsIHsweDBiLDB4OGEsMHgwMiwweDJhLDB4ODAsMHg4OCwweGE0LDB4MjIsMHgzMCwweDA4LDB4OGUsMHgwYSwweDIyLDB4MDIsMHg4OCwweGEwIH0gfSwKLXsgIDE2LCAweDhkYjAsIDAsIHsweDJlLDB4MjgsMHg4OCwweGFhLDB4MTIsMHgyMiwweDkwLDB4ODgsMHhmNCwweDJlLDB4MjAsMHgwYiwweGM4LDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweDhkYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZDQsMHgyMCwweGE1LDB4MDgsMHgyMSwweDQyIH0gfSwKLXsgIDE2LCAweDhkZDAsIDAsIHsweDBiLDB4NTAsMHg4MiwweDE0LDB4MzEsMHg4NSwweDA4LDB4MjUsMHg0MCwweDBhLDB4NTAsMHgyMiwweDk0LDB4NDAsMHg4NSwweDA4IH0gfSwKLXsgIDE2LCAweDhkZTAsIDAsIHsweDZkLDB4NDAsMHgwOCwweDUwLDB4MDIsMHg1NCwweDAyLDB4OTUsMHgwMCwweDJkLDB4NDgsMHgwYiwweDUwLDB4ODIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweDhkZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ODQsMHgwMCwweDhkLDB4MTAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweDhlMDAsIDAsIHsweDBiLDB4ZDAsMHgwMCwweDM0LDB4MDEsMHg4ZCwweDAwLDB4MjMsMHg0MSwweDU4LDB4ZDAsMHgwMiwweDM0LDB4MDAsMHg4ZCwweDA4IH0gfSwKLXsgIDE2LCAweDhlMTAsIDAsIHsweDJmLDB4NTAsMHgwOCwweGQyLDB4MDIsMHg3NCwweDgwLDB4OWQsMHgwMCwweDJmLDB4NDgsMHgwYiwweGRjLDB4MDIsMHg0NiwweDA0IH0gfSwKLXsgIDE2LCAweDhlMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTcsMHg0MCwweGU5LDB4YzAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweDhlMzAsIDAsIHsweDBmLDB4OTAsMHgwOSwweDI2LDB4MDAsMHhjOSwweDA0LDB4MzYsMHg0MCwweDFmLDB4OTAsMHgyMywweGE0LDB4MDgsMHhjOSwweDQwIH0gfSwKLXsgIDE2LCAweDhlNDAsIDAsIHsweDNlLDB4NDAsMHgwYywweDk0LDB4MGIsMHg2NCwweDIwLDB4ZDksMHgwMiwweDNlLDB4NDEsMHgwZiwweDk0LDB4MDMsMHg2OCwweDA0IH0gfSwKLXsgIDE2LCAweDhlNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDhlNjAsIDAsIHsweDBmLDB4MTQsMHgwMywweGM1LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0MCwweDFmLDB4OTAsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDhlNzAsIDAsIHsweDNjLDB4NDAsMHhhZiwweDk4LDB4MDMsMHg4NiwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDEwLDB4MGIsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweDhlODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YjAsMHgwMCwweGRjLDB4NDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDhlOTAsIDAsIHsweDBmLDB4YzAsMHgwMywweDMxLDB4MDIsMHhjNCwweDA0LDB4YjEsMHgwMCwweDNjLDB4NDAsMHgwMywweDEwLDB4MDAsMHhmYywweDQwIH0gfSwKLXsgIDE2LCAweDhlYTAsIDAsIHsweDMzLDB4MDAsMHgwYywweGM0LDB4MDMsMHhiMSwweDAwLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgwYywweGM0LDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDhlYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyMiwweGEwIH0gfSwKLXsgIDE2LCAweDhlYzAsIDAsIHsweDBiLDB4YTAsMHgwMiwweDJhLDB4MDAsMHg4YSwweDg0LDB4MjIsMHhhMSwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDgsMHhiYSwweDAxIH0gfSwKLXsgIDE2LCAweDhlZDAsIDAsIHsweDIyLDB4ODAsMHgwOCwweGEwLDB4MmIsMHgyOCwweDAwLDB4OGEsMHg4MCwweDJhLDB4ODAsMHgwOCwweGUwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDhlZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMiwweDliLDB4ODEsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweDhlZjAsIDAsIHsweDhiLDB4MzgsMHgwNiwweGNlLDB4MDAsMHg5MywweDgwLDB4MjAsMHhjMCwweDA4LDB4MzgsMHgwMiwweDBjLDB4MDAsMHhiMywweDgwIH0gfSwKLXsgIDE2LCAweDhmMDAsIDAsIHsweDZjLDB4ZTAsMHgwYSwweGIwLDB4MDIsMHg0YywweDAwLDB4OTMsMHgwMCwweDIwLDB4ZTAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDhmMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTAsMHgwNCwweDgwLDB4MDgsMHgyMSwweDAyIH0gfSwKLXsgIDE2LCAweDhmMjAsIDAsIHsweDRiLDB4NDQsMHgwNiwweGQwLDB4MjAsMHg5MCwweDA4LDB4MjEsMHgwMiwweDgwLDB4NDQsMHgwMiwweDEwLDB4MDAsMHhiNCwweGMwIH0gfSwKLXsgIDE2LCAweDhmMzAsIDAsIHsweDJkLDB4MTAsMHg0OCwweDQwLDB4MDIsMHgwMCwweDAwLDB4OTQsMHg4OSwweDI5LDB4MzAsMHgwOCwweDQwLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweDhmNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MzIsMHgwMCwweGQ2LDB4ODAsMHgzMSwweGEwIH0gfSwKLXsgIDE2LCAweDhmNTAsIDAsIHsweDBmLDB4ZTgsMHgwYiwweGNhLDB4MDAsMHhkNiwweDgwLDB4MjMsMHhhMCwweDA0LDB4ZjgsMHgwYiwweDFhLDB4MDAsMHhmZiwweDgwIH0gfSwKLXsgIDE2LCAweDhmNjAsIDAsIHsweGJmLDB4YTAsMHgyZSwweGM4LDB4MTMsMHhkYSwweDAyLDB4NWUsMHg4MCwweDczLDB4YTAsMHgyYywweDc4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDhmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDhmODAsIDAsIHsweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4ODAsMHgwMywweGU0LDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDhmOTAsIDAsIHsweDMyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlNCwweDAxLDB4ZTksMHgwNCwweDM2LDB4NDAsMHgwZiwweDgwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweDhmYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGNkLDB4ODAsMHgzMywweDYwIH0gfSwKLXsgIDE2LCAweDhmYjAsIDAsIHsweDBjLDB4ZDgsMHg0MywweDM2LDB4MDAsMHhjZCwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZDksMHgyMywweGJlLDB4MDAsMHg0ZCwweDgwIH0gfSwKLXsgIDE2LCAweDhmYzAsIDAsIHsweDMzLDB4NjAsMHgwOCwweGY4LDB4MGIsMHgzZSwweDAwLDB4ZmQsMHg4NCwweDNmLDB4NjAsMHgwZiwweGY5LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OTAsMHgwNCwweGRlLDB4MDAsMHgyMywweDgwIH0gfSwKLXsgIDE2LCAweDhmZTAsIDAsIHsweDA4LDB4NjAsMHgwMiwweGI4LDB4MjAsMHg4ZSwweDA0LDB4MjMsMHg4MCwweDA4LDB4NjgsMHgwMiwweDEwLDB4MDAsMHg4ZSwweDIwIH0gfSwKLXsgIDE2LCAweDhmZjAsIDAsIHsweDIzLDB4ODIsMHgwOCwweDQwLDB4MDIsMHgxMiwweDAwLDB4ZjYsMHgwMCwweDJkLDB4ODAsMHgwYiwweDQxLDB4YTAsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDkwMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweDg0LDB4MDAsMHgyMSwweDAwIH0gfSwKLXsgIDE2LCAweDkwMTAsIDAsIHsweDA4LDB4NDEsMHgwMiwweDUwLDB4NDAsMHg5NCwweDAwLDB4MjEsMHgwMCwweDBhLDB4NTIsMHgwMiwweGQ4LDB4MDAsMHg4NSwweDAyIH0gfSwKLXsgIDE2LCAweDkwMjAsIDAsIHsweDI1LDB4MDQsMHgwOCwweDQwLDB4MjIsMHgxOCwweDA4LDB4YjQsMHgwMCwweDJkLDB4MTAsMHgwYiwweDc4LDB4NDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4ZWUsMHgyMiwweDkzLDB4MDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweDkwNDAsIDAsIHsweDA4LDB4MzgsMHgwMiwweGVjLDB4MDAsMHg5MywweDAwLDB4MjAsMHhjMSwweDJhLDB4MjAsMHgwMiwweDY0LDB4MDIsMHg4MiwweDEwIH0gfSwKLXsgIDE2LCAweDkwNTAsIDAsIHsweDI0LDB4ZjAsMHgwYSwweDNjLDB4NDIsMHgyNCwweDI4LDB4YjMsMHgwMCwweDJjLDB4ZTAsMHgwYiwweDg4LDB4ODIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweDkwNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWQsMHgwMCwweGNiLDB4MDAsMHhiMiwweGMwIH0gfSwKLXsgIDE2LCAweDkwNzAsIDAsIHsweGFjLDB4YmUsMHgwMywweDZlLDB4MDIsMHhkYiwweDAwLDB4YjIsMHhjMCwweDFlLDB4YTAsMHgwMywweGU0LDB4MDAsMHhjYSwweDExIH0gfSwKLXsgIDE2LCAweDkwODAsIDAsIHsweGI2LDB4ZDAsMHhhYywweGJjLDB4MDMsMHgyNCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHhjZiwweDg0LDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDkwOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTAsMHg0MCwweGY4LDB4MDAsMHgzYywweDAwIH0gfSwKLXsgIDE2LCAweDkwYTAsIDAsIHsweDJmLDB4ODIsMHgwMywweGEwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDFkLDB4OTAsMHgxMywweGE4LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDkwYjAsIDAsIHsweDNhLDB4MDAsMHg4MSwweDgzLDB4NDMsMHhlOCwweDAwLDB4ZTgsMHgwMywweDNlLDB4MDQsMHgwZiwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZTAsMHgwMCwweGQ2LDB4MDAsMHgzNywweDgwIH0gfSwKLXsgIDE2LCAweDkwZDAsIDAsIHsweDBjLDB4YTAsMHgwMywweGY4LDB4MDAsMHhjZSwweDAwLDB4MzMsMHg4MCwweDBkLDB4YTAsMHgxMywweDIwLDB4MDgsMHhjZSwweDAwIH0gfSwKLXsgIDE2LCAweDkwZTAsIDAsIHsweDMzLDB4ODIsMHgwYywweDQwLDB4NzMsMHgzMCwweDE4LDB4Y2UsMHgwMCwweDFmLDB4ODAsMHg0ZiwweGMxLDB4NDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweDkwZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4N2MsMHgwMCwweDhkLDB4MDAsMHgyMywweDQwIH0gfSwKLXsgIDE2LCAweDkxMDAsIDAsIHsweDBhLDB4ZDAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDAwLDB4MjMsMHg0MCwweDA4LDB4ZDQsMHg4MCwweDNlLDB4NDIsMHg4ZCwweDQwIH0gfSwKLXsgIDE2LCAweDkxMTAsIDAsIHsweDIzLDB4NDAsMHgwOCwweGYwLDB4MDIsMHgzZSwweDQwLDB4OGQsMHgwMCwweDBmLDB4NDAsMHgwYiwweGY0LDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDkxMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDk5LDB4MDAsMHhhNiwweDQwIH0gfSwKLXsgIDE2LCAweDkxMzAsIDAsIHsweDA4LDB4OTAsMHgwNiwweGU0LDB4MDAsMHg5MSwweDAwLDB4MjAsMHg0MCwweDg4LDB4MDAsMHgwMiwweDI0LDB4MDgsMHg4MCwweDQwIH0gfSwKLXsgIDE2LCAweDkxNDAsIDAsIHsweDIwLDB4NDAsMHgwYSwweGIwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDBlLDB4NDAsMHgwYiwweDg0LDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweDkxNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDAsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweDkxNjAsIDAsIHsweDBhLDB4MjEsMHgwNiwweGM4LDB4MDEsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MzIsMHg4MiwweDA4LDB4MDgsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDkxNzAsIDAsIHsweDYwLDB4ODAsMHgwYSwweDAwLDB4MTIsMHgwOCwweDgwLDB4ODIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDMwLDB4MGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweDkxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwIH0gfSwKLXsgIDE2LCAweDkxOTAsIDAsIHsweDBjLDB4ODQsMHgyMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBkLDB4ODIsMHgwYiwweDIwLDB4MDIsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweDkxYTAsIDAsIHsweDMyLDB4MDAsMHgwZSwweDAwLDB4MDMsMHgyMCwweDAyLDB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweDkxYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweDkxYzAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4YmYsMHhjMCwweDhmLDB4YjAsMHgwMywweGZjLDB4MDgsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweDkxZDAsIDAsIHsweDNmLDB4YzAsMHgwZCwweGYwLDB4MDMsMHhlZCwweDAwLDB4ZmYsMHgwMiwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweDkxZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjAsMHg4YywweGZmLDB4MDAsMHgzZCwweDYwIH0gfSwKLXsgIDE2LCAweDkxZjAsIDAsIHsweDJjLDB4YjIsMHg4MywweDdjLDB4OTAsMHhkZiwweDM4LDB4MzEsMHhlMCwweDBmLDB4ZjgsMHgwMywweDNjLDB4MDAsMHhmZiwweDIwIH0gfSwKLXsgIDE2LCAweDkyMDAsIDAsIHsweDNmLDB4YzQsMHgwZSwweGY0LDB4MDMsMHg3YywweDAwLDB4ZjQsMHg4MCwweDMzLDB4MDAsMHgwZCwweGY4LDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDkyMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTEsMHgyMCwweGJiLDB4NjIsMHgyZSwweDQyIH0gfSwKLXsgIDE2LCAweDkyMjAsIDAsIHsweDI4LDB4ZjQsMHg0MiwweDNlLDB4NDAsMHg4ZiwweDQ0LDB4MjIsMHhlMCwweDBiLDB4YjAsMHg4MywweDdmLDB4NDQsMHhiZiwweGMxIH0gfSwKLXsgIDE2LCAweDkyMzAsIDAsIHsweDJkLDB4ZGMsMHgyYSwweGY2LDB4MDIsMHgzZiwweDQ1LDB4YjgsMHg4MCwweDIyLDB4NjEsMHg4OCwweGI4LDB4MDIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweDkyNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzUsMHg4MCwweGIyLDB4MTgsMHgyZSwweGM4IH0gfSwKLXsgIDE2LCAweDkyNTAsIDAsIHsweDI5LDB4MzAsMHgzMiwweDBjLDB4MDgsMHhiMywweDIwLDB4MjAsMHhjMCwweDRiLDB4OTIsMHgwMiwweDBjLDB4MDAsMHhiMywweDQwIH0gfSwKLXsgIDE2LCAweDkyNjAsIDAsIHsweDJjLDB4YzAsMHg4OSwweDM0LDB4MTIsMHg0YywweDAwLDB4YjAsMHgwMCwweDI0LDB4YzEsMHg0OSwweDMwLDB4MDIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweDkyNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4YTQsMHgwMCwweGJhLDB4MGMsMHgyZSwweGUwIH0gfSwKLXsgIDE2LCAweDkyODAsIDAsIHsweGE5LDB4YjAsMHgwNiwweDJjLDB4MDAsMHg4YiwweDAwLDB4YTIsMHhjMCwweDBiLDB4OTAsMHgwMCwweDZjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDkyOTAsIDAsIHsweDJlLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg2YywweDAwLDB4YmEsMHg4MCwweDI2LDB4ZjAsMHgwOCwweGIwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweDkyYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDExLDB4ZWUsMHgwMCwweGZiLDB4YzQsMHgzZSwweDc4IH0gfSwKLXsgIDE2LCAweDkyYjAsIDAsIHsweDJkLDB4YjAsMHgwMywweDZjLDB4MDgsMHhmYiwweDAwLDB4MzIsMHhjMCwweDhiLDB4MjQsMHg4MywweDJjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDkyYzAsIDAsIHsweDNlLDB4YzAsMHg4ZiwweGIwLDB4MGIsMHg2YywweDA4LDB4YjIsMHhlMCwweDE2LDB4NjAsMHg4ZCwweGIwLDB4MjMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDkyZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmUsMHg5OCwweGZmLDB4NDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweDkyZTAsIDAsIHsweDBlLDB4NzAsMHgwMywweGRjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDkyZjAsIDAsIHsweDNmLDB4YzAsMHgwZSwweGYwLDB4MDMsMHhhYywweDAwLDB4ZmUsMHgwMCwweGI5LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDkzMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWQsMHgwMCwweGZhLDB4NDAsMHgzZSwweGQwIH0gfSwKLXsgIDE2LCAweDkzMTAsIDAsIHsweDBlLDB4YjIsMHgwMywweGVjLDB4MDAsMHhjMywweDAwLDB4M2UsMHhjMCwweDBjLDB4YTAsMHgwMywweDJjLDB4MDEsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDkzMjAsIDAsIHsweDNjLDB4YzAsMHgwZSwweGI4LDB4MDMsMHhlYywweDAwLDB4ZGEsMHgwMCwweDNhLDB4ZDAsMHg0ZiwweGIwLDB4MjMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDkzMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweGJhLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweDkzNDAsIDAsIHsweDA4LDB4ZjQsMHgwNywweGJjLDB4MTQsMHhkZiwweDAwLDB4M2UsMHhjMCwweDFhLDB4YTAsMHg1MiwweGJjLDB4MDAsMHhiZiwweDA0IH0gfSwKLXsgIDE2LCAweDkzNTAsIDAsIHsweDNmLDB4YzAsMHg4YSwweGYwLDB4MDMsMHhiYywweDAwLDB4ZmEsMHgwMCwweDIyLDB4YzgsMHgwZiwweGIwLDB4MDMsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweDkzNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDgsMHgwMSwweGIxLDB4MDAsMHg2YywweGMyIH0gfSwKLXsgIDE2LCAweDkzNzAsIDAsIHsweDBhLDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MywweDA1LDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDEsMHhiMywweDA0IH0gfSwKLXsgIDE2LCAweDkzODAsIDAsIHsweDJjLDB4YzAsMHgwYSwweDMwLDB4MjIsMHg4YywweDAwLDB4ODAsMHg4MCwweDI4LDB4YzAsMHgwYiwweDMwLDB4MjIsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDkzOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHgwOCwweGI3LDB4ODAsMHg2ZiwweGUwIH0gfSwKLXsgIDE2LCAweDkzYTAsIDAsIHsweDE4LDB4NzgsMHgwMiwweDhlLDB4NDAsMHhiNywweDgwLDB4MmQsMHhlMCwweDBhLDB4NzgsMHgwMiwweDllLDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweDkzYjAsIDAsIHsweDI5LDB4ZTEsMHgwYSwweDc4LDB4MDIsMHg5ZSwweDAxLDB4YmMsMHg4MCwweDI5LDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweDkzYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDksMHg0MCwweGYxLDB4MjAsMHgzYywweGM0IH0gfSwKLXsgIDE2LCAweDkzZDAsIDAsIHsweDBlLDB4MzksMHgwMiwweGNjLDB4MDAsMHhjMywweDAwLDB4MmMsMHhjNCwweDA4LDB4OTIsMHgwMywweDhjLDB4ODgsMHhiMywweDEwIH0gfSwKLXsgIDE2LCAweDkzZTAsIDAsIHsweDJjLDB4YzQsMHgwZSwweGIwLDB4MDcsMHg4YywweDAwLDB4YzIsMHgwOCwweDM4LDB4YzAsMHgwZiwweDMwLDB4NDMsMHhkMiwweDAyIH0gfSwKLXsgIDE2LCAweDkzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgxMCwweGZjLDB4MDAsMHg3ZiwweGMwIH0gfSwKLXsgIDE2LCAweDk0MDAsIDAsIHsweDBmLDB4ZjAsMHg4MywweGZjLDB4MjEsMHhkZiwweDA4LDB4M2IsMHhjMCwweDhmLDB4OTAsMHgwMSwweGZjLDB4MjEsMHhmZiwweDBjIH0gfSwKLXsgIDE2LCAweDk0MTAsIDAsIHsweDNmLDB4YzIsMHgwZiwweGYxLDB4MDMsMHhlYywweDAwLDB4ZWYsMHgwMCwweDc3LDB4YzAsMHgxZSwweGYwLDB4MDMsMHg5MCwweDA2IH0gfSwKLXsgIDE2LCAweDk0MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTgsMHgwMSwweGY5LDB4MDAsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweDk0MzAsIDAsIHsweDBmLDB4YjIsMHgwMywweGVlLDB4OTAsMHhkYiwweGUxLDB4M2EsMHhjMCwweDRkLDB4MzgsMHgxMywweDJkLDB4MzAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDk0NDAsIDAsIHsweDNlLDB4ZTAsMHg0ZiwweGJhLDB4NDMsMHgyYywweDQwLDB4ZmEsMHgwMCwweDNmLDB4YzAsMHg4YywweGIwLDB4MDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweDk0NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweGIxLDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweDk0NjAsIDAsIHsweDBiLDB4NzEsMHgwMiwweGNjLDB4MjAsMHhhNywweDI4LDB4MjEsMHhjMCwweDBiLDB4NzAsMHgxMywweDVjLDB4MDgsMHhiNywweDEwIH0gfSwKLXsgIDE2LCAweDk0NzAsIDAsIHsweDJkLDB4YzQsMHg0YiwweDM0LDB4ODMsMHgxYywweGMxLDB4YjcsMHgwMiwweDJkLDB4YzAsMHgxYSwweDcwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDk0ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWEsMHgyMCwweGI0LDB4YzQsMHgyNSwweGEyIH0gfSwKLXsgIDE2LCAweDk0OTAsIDAsIHsweDBiLDB4NzgsMHgwNiwweGRlLDB4MDAsMHg4MywweDgwLDB4MjksMHhlMCwweDFiLDB4ZjgsMHgwMiwweDVlLDB4ODAsMHhhNywweGEwIH0gfSwKLXsgIDE2LCAweDk0YTAsIDAsIHsweDJkLDB4YzgsMHgwYSwweDcyLDB4MDIsMHgxZSwweDAwLDB4YTYsMHg4MCwweDI4LDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDk0YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4ZWQsMHgwMCwweGIzLDB4NDAsMHgyNCwweGMzIH0gfSwKLXsgIDE2LCAweDk0YzAsIDAsIHsweDBiLDB4MzAsMHg0MiwweGNjLDB4MDAsMHhhMywweDAwLDB4MjAsMHhjMCwweDFiLDB4MzQsMHgwMiwweDRjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweDk0ZDAsIDAsIHsweDJjLDB4YzAsMHg0YiwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHg4OCwweDJjLDB4ZDQsMHgwYSwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDk0ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YjgsMHgwMCwweGZlLDB4NDAsMHhiNywweGEwIH0gfSwKLXsgIDE2LCAweDk0ZjAsIDAsIHsweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkYSwweDAwLDB4M2EsMHg4MCwweDBmLDB4ZTIsMHgwMywweDY4LDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweDk1MDAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4MGIsMHgyOCwweDAwLDB4ZWUsMHhlMCwweDNmLDB4YjAsMHgwNCwweGEwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweDk1MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwNCwweGYwLDB4MDgsMHgzYSwweDEwIH0gfSwKLXsgIDE2LCAweDk1MjAsIDAsIHsweDBmLDB4ODQsMHgwMywweGUwLDB4MTAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDk1MzAsIDAsIHsweDNjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHg4MCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDksMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDk1NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgyMCwweGU5LDB4MDAsMHgzMiwweDQ0IH0gfSwKLXsgIDE2LCAweDk1NTAsIDAsIHsweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDk1NjAsIDAsIHsweDFlLDB4NDAsMHgwYywweDEwLDB4MDMsMHgyNCwweDAwLDB4YzksMHhhMCwweDNjLDB4NjQsMHgwYywweDkwLDB4MDMsMHg4MiwweDA0IH0gfSwKLXsgIDE2LCAweDk1NzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDY4IH0gfSwKLXsgIDE2LCAweDk1ODAsIDAsIHsweDA4LDB4MTMsMHgwMiwweDI0LDB4MDgsMHhmOSwweDAwLDB4MmUsMHg0OCwweDFiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDk1OTAsIDAsIHsweDNlLDB4NDAsMHgwYywweDkwLDB4MDIsMHgyNCwweDA4LDB4ZjksMHg0MCwweDJlLDB4NjAsMHgwYSwweDkwLDB4MDYsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDk1YTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDk1YjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAxLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDk1YzAsIDAsIHsweDJlLDB4NDAsMHgwOCwweDkyLDB4MjIsMHgyNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDk1ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjEsMHhlMCwweDUwIH0gfSwKLXsgIDE2LCAweDk1ZTAsIDAsIHsweDI4LDB4MTYsMHgwYSwweDA0LDB4ODAsMHhhMSwweDQwLDB4MmMsMHg0MCwweDRiLDB4MTQsMHgyMiwweGM0LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweDk1ZjAsIDAsIHsweDJjLDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNCwweDA0LDB4YjEsMHgwMCwweDJjLDB4NDAsMHgwYSwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDk2MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGU4LDB4NTAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDk2MTAsIDAsIHsweDhjLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhiOCwweDAwLDB4M2UsMHgwMCwweDBiLDB4ODAsMHgzMywweGUwLDB4MTAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDk2MjAsIDAsIHsweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDA4LDB4Y2EsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhhZSwweDAzIH0gfSwKLXsgIDE2LCAweDk2MzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZmMsMHg0MCwweGZkLDB4MTAsMHgyZiwweDQxIH0gfSwKLXsgIDE2LCAweDk2NDAsIDAsIHsweDRmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDQwLDB4M2UsMHg0MCwweDRmLDB4ZDAsMHg2MywweGU1LDB4MDAsMHhmOSwweDQwIH0gfSwKLXsgIDE2LCAweDk2NTAsIDAsIHsweDNhLDB4NTAsMHgyZSwweDk0LDB4MDMsMHg2NSwweDAwLDB4ZWQsMHgwMCwweDNmLDB4NTAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweDk2NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZTYsMHgwMCwweGY5LDB4ZTAsMHgzMywweDUwIH0gfSwKLXsgIDE2LCAweDk2NzAsIDAsIHsweDBjLDB4ZGEsMHgwMywweGE2LDB4MDAsMHhkOSwweDgwLDB4M2YsMHg0MCwweDBmLDB4OTEsMHgwMywweGE2LDB4MDAsMHhmOSwweDg4IH0gfSwKLXsgIDE2LCAweDk2ODAsIDAsIHsweDNlLDB4NjgsMHgwYywweGRlLDB4MDMsMHg2NiwweDAwLDB4ZWQsMHgwMCwweDNiLDB4NjksMHgwYywweDkwLDB4MDMsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDk2OTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTEsMHgwOCwweGI4LDB4ZTAsMHgyMCwweDIwIH0gfSwKLXsgIDE2LCAweDk2YTAsIDAsIHsweDE4LDB4OGUsMHgyNiwweGUxLDB4MDAsMHg4MCwweGEwLDB4MmUsMHgwMCwweDRiLDB4ODgsMHg0MiwweGUxLDB4NTAsMHhiOCwweDQwIH0gfSwKLXsgIDE2LCAweDk2YjAsIDAsIHsweDJlLDB4MmEsMHgwZCwweDBhLDB4MDIsMHgyMCwweDA4LDB4YjgsMHgwMCwweDJlLDB4MTQsMHgwZCwweDgwLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweDk2YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGIxLDB4NjAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDk2ZDAsIDAsIHsweDA4LDB4MzEsMHhhMiwweGM1LDB4MDAsMHg5MSwweDQ4LDB4MmMsMHg0MCwweDFiLDB4MTIsMHgwMiwweDg0LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweDk2ZTAsIDAsIHsweDJjLDB4NTAsMHgwOSwweDE2LDB4MDIsMHgwNSwweDAwLDB4YTMsMHgwNCwweDI4LDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDk2ZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YTQsMHgwMCwweGI5LDB4MDgsMHgyMCwweDcwIH0gfSwKLXsgIDE2LCAweDk3MDAsIDAsIHsweDI4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDgsMHhiOSwweDAzIH0gfSwKLXsgIDE2LCAweDk3MTAsIDAsIHsweDJjLDB4NDAsMHgyOSwweDkwLDB4MDIsMHg2NCwweDAwLDB4YjksMHgwMCwweDJlLDB4NjIsMHgwOSwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweDk3MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDA1LDB4ZTUsMHgwMCwweGY5LDB4ZDAsMHhiMiwweDcwIH0gfSwKLXsgIDE2LCAweDk3MzAsIDAsIHsweDA4LDB4OTAsMHgwMywweGU0LDB4MDAsMHhkOSwweDA0LDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MTAsMHhmOSwweDAyIH0gfSwKLXsgIDE2LCAweDk3NDAsIDAsIHsweDNlLDB4NDAsMHgwZCwweDkwLDB4MmIsMHg2NCwweDAwLDB4ZTksMHg4ZCwweDNhLDB4NjAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweDk3NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDQyIH0gfSwKLXsgIDE2LCAweDk3NjAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDk3NzAsIDAsIHsweDNlLDB4NDAsMHgyZiwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgyMiwweDNjLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDk3ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGYwLDB4NDAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweDk3OTAsIDAsIHsweDBjLDB4ODAsMHgwMywweGMwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgyMCwweDFmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweDk3YTAsIDAsIHsweDMyLDB4MDAsMHgwYywweDgwLDB4MDIsMHgyMCwweDAwLDB4YzgsMHhjMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweDk3YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDE1LDB4MjgsMHgxMCwweGJhLDB4MDAsMHgyMywweGEwIH0gfSwKLXsgIDE2LCAweDk3YzAsIDAsIHsweDBhLDB4ZTQsMHgwMiwweGU4LDB4MDAsMHhiYSwweDAwLDB4MmIsMHhhMSwweDBiLDB4YTAsMHgwMiwweGU4LDB4MDAsMHhhYSwweDAwIH0gfSwKLXsgIDE2LCAweDk3ZDAsIDAsIHsweDJhLDB4ODEsMHgwYSwweGEwLDB4MDMsMHhlOCwweDA4LDB4ZGUsMHgwMCwweDJlLDB4ODAsMHgwYSwweGEwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDk3ZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDQsMHhhMCwweGIxIH0gfSwKLXsgIDE2LCAweDk3ZjAsIDAsIHsweDA4LDB4MzYsMHgyMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlNCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweDk4MDAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDE4LDB4MDIsMHgwYywweDAwLDB4OTEsMHgwMSwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDYsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDk4MTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHhjOCwweGIzLDB4MjEsMHgyMSwweGMyIH0gfSwKLXsgIDE2LCAweDk4MjAsIDAsIHsweDJhLDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweGEwLDB4MjksMHhjMCwweDBiLDB4NzIsMHgwMiwweGNlLDB4MDAsMHhhNywweDgxIH0gfSwKLXsgIDE2LCAweDk4MzAsIDAsIHsweDI5LDB4YzAsMHg0YSwweDc0LDB4MDIsMHhmZSwweDAwLDB4OTcsMHgwMSwweDJjLDB4YzAsMHgwYSwweDcwLDB4MTIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweDk4NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHg4MCwweGY3LDB4YzAsMHgzMSwweGUwIH0gfSwKLXsgIDE2LCAweDk4NTAsIDAsIHsweDBjLDB4NDgsMHgwMywweGRlLDB4MTEsMHhmNywweDgwLDB4MjEsMHhlMCwweDBiLDB4N2EsMHgwMywweGRlLDB4MDAsMHhjMywweDgwIH0gfSwKLXsgIDE2LCAweDk4NjAsIDAsIHsweDMzLDB4ZDgsMHg2YywweDc4LDB4MDMsMHgzZSwweDAwLDB4ZDYsMHg4MCwweDNkLDB4ZTAsMHgwYywweDc4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweDk4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDBkLDB4YWMsMHgwOCwweGZiLDB4ODAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweDk4ODAsIDAsIHsweDBmLDB4ZDAsMHgwMywweGVjLDB4MDQsMHhmYiwweDNjLDB4M2UsMHhjMCwweDBmLDB4YjYsMHgwNywweDZjLDB4MDEsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDk4OTAsIDAsIHsweDNlLDB4ZDAsMHgwZiwweDk0LDB4MDcsMHhlYywweDAxLDB4ZWEsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweDk4YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4ZmUsMHgwMCwweGNmLDB4YTQsMHgzYiwweDYwIH0gfSwKLXsgIDE2LCAweDk4YjAsIDAsIHsweDA4LDB4ZDksMHgwMywweDdlLDB4MDAsMHhjZiwweDgwLDB4M2YsMHgyNSwweDRmLDB4ZmMsMHg4NywweGJlLDB4MDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweDk4YzAsIDAsIHsweDdmLDB4ZmMsMHgwYywweGZjLDB4MDMsMHg3YywweDAwLDB4ZjYsMHg5MCwweDMzLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDk4ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwOCwweDhmLDB4MjgsMHgyMSwweDQwIH0gfSwKLXsgIDE2LCAweDk4ZTAsIDAsIHsweDA4LDB4ZDAsMHgwMiwweDFjLDB4NDAsMHhhNywweDIwLDB4MzEsMHgwNCwweDFiLDB4NzgsMHgwMiwweGRjLDB4ODAsMHhkNywweDAwIH0gfSwKLXsgIDE2LCAweDk4ZjAsIDAsIHsweDJmLDB4YzQsMHgxYSwweGQwLDB4MDIsMHgxZSwweDQ4LDB4YjYsMHgwMCwweDYxLDB4YzAsMHgwYiwweDcwLDB4MDYsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDk5MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGMsMHgwMCwweDg3LDB4MzAsMHg2OSwweDQ0IH0gfSwKLXsgIDE2LCAweDk5MTAsIDAsIHsweDA4LDB4NTAsMHgyMiwweDBjLDB4MDAsMHg4NywweDAxLDB4MmQsMHg0NCwweDhiLDB4NzAsMHgwNiwweDhjLDB4MTAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweDk5MjAsIDAsIHsweDI5LDB4YzksMHgwOCwweDUwLDB4MDIsMHgxYywweDQ0LDB4YTYsMHgwMCwweDYxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDk5MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2QsMHgwMCwweDgzLDB4ODgsMHg2MCwweDQwIH0gfSwKLXsgIDE2LCAweDk5NDAsIDAsIHsweDAwLDB4MTAsMHgwMiwweDRjLDB4MDAsMHgyYiwweDAwLDB4MmMsMHg0MSwweDFiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweDk5NTAsIDAsIHsweDJjLDB4YzAsMHgwYSwweDMwLDB4NDIsMHgwYywweDAwLDB4YjIsMHg0MCwweDIwLDB4ZjEsMHgwYiwweDMwLDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweDk5NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmQsMHg0MSwweGNmLDB4YzAsMHhiYSwweGYwIH0gfSwKLXsgIDE2LCAweDk5NzAsIDAsIHsweDI4LDB4OTAsMHgxYiwweDZjLDB4MDgsMHhjZiwweDAwLDB4MmMsMHhjMCwweDBmLDB4ZjAsMHgwMywweGFjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweDk5ODAsIDAsIHsweDNmLDB4YzAsMHg2YywweGIwLDB4NGIsMHgyYywweDAxLDB4ZmIsMHg0MCwweDIyLDB4YzgsMHgwZiwweGIwLDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweDk5OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwNCwweGZiLDB4MDQsMHgzZiwweGQ0IH0gfSwKLXsgIDE2LCAweDk5YTAsIDAsIHsweDBmLDB4MTAsMHgwMywweGFjLDB4MDAsMHhmYiwweDAwLDB4MzIsMHhjMCwweDVmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDA0IH0gfSwKLXsgIDE2LCAweDk5YjAsIDAsIHsweDNlLDB4YzAsMHg0ZiwweDEwLDB4MTMsMHhlYywweDAwLDB4ZmIsMHg4OCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDk5YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGM3LDB4MDAsMHgzMywweDYyIH0gfSwKLXsgIDE2LCAweDk5ZDAsIDAsIHsweDBjLDB4YzAsMHgwYiwweDNjLDB4MDAsMHhlZiwweDAwLDB4MzMsMHhlMCwweDFjLDB4ZjAsMHgxMywweDNjLDB4MDgsMHhmNywweDAwIH0gfSwKLXsgIDE2LCAweDk5ZTAsIDAsIHsweDMxLDB4YzAsMHgwZSwweGQ4LDB4MDMsMHhiYywweDAwLDB4ZmUsMHgwMCwweDNkLDB4YzYsMHgwYywweGYwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweDk5ZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgwMCwweGNiLDB4MDMsMHgyMiwweDQ3IH0gfSwKLXsgIDE2LCAweDlhMDAsIDAsIHsweDA4LDB4OTgsMHg0MiwweDJjLDB4MDAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDBhLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDA0IH0gfSwKLXsgIDE2LCAweDlhMTAsIDAsIHsweDJhLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhhYywweDA4LDB4ZmEsMHgwMCwweDJlLDB4NjAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDQwIH0gfSwKLXsgIDE2LCAweDlhMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweDlhMzAsIDAsIHsweDA4LDB4OTgsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MjIsMHg4OCwweDA4LDB4MzAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDlhNDAsIDAsIHsweDIyLDB4YzAsMHg4YSwweDkyLDB4MDIsMHhhYywweDAwLDB4YWEsMHg4MCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDYsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDlhNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4MDAsMHhhMCwweDQwIH0gfSwKLXsgIDE2LCAweDlhNjAsIDAsIHsweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjgsMHg4MCwweDBhLDB4MzIsMHgxMiwweDBjLDB4MDAsMHhiMywweDA0IH0gfSwKLXsgIDE2LCAweDlhNzAsIDAsIHsweDI4LDB4YzAsMHgwYSwweDMwLDB4MjIsMHg4YywweDIwLDB4YjIsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDlhODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMiwweGNiLDB4MDAsMHgzMCwweDQwIH0gfSwKLXsgIDE2LCAweDlhOTAsIDAsIHsweDFjLDB4OTQsMHgwMywweDJjLDB4MDAsMHhlZiwweDAwLDB4MzIsMHhjMCwweDg4LDB4ZjAsMHg4YiwweDJjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDlhYTAsIDAsIHsweDMzLDB4YzAsMHhhZSwweGYwLDB4MDMsMHhhYywweDgwLDB4ZWEsMHgwMSwweDNlLDB4YzAsMHgyYywweGIwLDB4MDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweDlhYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgyZiwweDQwIH0gfSwKLXsgIDE2LCAweDlhYzAsIDAsIHsweDA3LDB4ZDIsMHg4MywweGZjLDB4MDAsMHhkZiwweDA0LDB4M2YsMHhjMCwweDBmLDB4YjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDlhZDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGQwLDB4MGIsMHhlYywweDAwLDB4ZWUsMHgwMCwweDNmLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweDlhZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjUsMHgwMCwweGNmLDB4MDgsMHgzZiwweDQ4IH0gfSwKLXsgIDE2LCAweDlhZjAsIDAsIHsweDBmLDB4YzMsMHg5MywweDcwLDB4ZDAsMHhkYywweDMwLDB4M2YsMHhkOCwweDBjLDB4YjIsMHgwMywweDNjLDB4YzAsMHhmZiwweDQwIH0gfSwKLXsgIDE2LCAweDliMDAsIDAsIHsweDMzLDB4YzQsMHgyYywweGYxLDB4MDMsMHg2MiwweDUwLDB4ZmMsMHgzNCwweDMzLDB4MDAsMHgwZiwweDVjLDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDliMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4YzQsMHg4MCwweDhiLDB4MDAsMHgyZiwweDVhIH0gfSwKLXsgIDE2LCAweDliMjAsIDAsIHsweDBiLDB4YTYsMHgxMiwweDIxLDB4YzAsMHg4OSwweDcwLDB4MmYsMHhkYywweDA4LDB4ZjIsMHhjMiwweDNkLDB4ZDAsMHhiZiwweDQwIH0gfSwKLXsgIDE2LCAweDliMzAsIDAsIHsweDM3LDB4ZGMsMHg4OCwweGY1LDB4MGEsMHgyMCwweDgwLDB4ZTgsMHgxMCwweDJhLDB4MTYsMHgwYiwweDkwLDB4MDIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweDliNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzAsMHgwMCwweDgzLDB4MDgsMHgyYywweDQ0IH0gfSwKLXsgIDE2LCAweDliNTAsIDAsIHsweDBiLDB4MDIsMHgwMiwweDBjLDB4MDAsMHg4MCwweDAwLDB4MmMsMHhjOCwweDA4LDB4MzMsMHg0MiwweDhjLDB4OTAsMHhiMywweDMwIH0gfSwKLXsgIDE2LCAweDliNjAsIDAsIHsweDI4LDB4YzgsMHg0YSwweDMyLDB4MTIsMHg4MCwweDBjLDB4YjAsMHhhMCwweDI4LDB4MjgsMHgwYiwweDEyLDB4MDIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweDliNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTIsMHgwMCwweDhiLDB4MDAsMHgyZSwweDQ4IH0gfSwKLXsgIDE2LCAweDliODAsIDAsIHsweDBiLDB4YTAsMHgyMiwweDIwLDB4MjAsMHg4OCwweDgwLDB4MmUsMHhjMCwweDI4LDB4YjAsMHgwYSwweGFjLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweDliOTAsIDAsIHsweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhhMCwweDAwLDB4YWIsMHg4MiwweDJhLDB4YTAsMHgwYiwweGIyLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweDliYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZTcsMHgwMCwweGNiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweDliYjAsIDAsIHsweGNmLDB4OWMsMHgwYiwweDIxLDB4MDAsMHhkOCwweDg4LDB4M2UsMHhjMCwweDBjLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDliYzAsIDAsIHsweDNhLDB4YzAsMHgwZSwweGIwLDB4NDMsMHhlOCwweDQwLDB4ZjgsMHg4MCwweDNhLDB4NjAsMHgwZiwweDk4LDB4MDMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweDliZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjQsMHgwMCwweGZmLDB4MDAsMHgwZiwweGUwIH0gfSwKLXsgIDE2LCAweDliZTAsIDAsIHsweDA3LDB4YTEsMHgwMywweGU4LDB4MDIsMHhmYiwweDAwLDB4M2YsMHhjMCwweDBmLDB4NzAsMHgyMywweDdjLDB4MDAsMHhmZiwweDAyIH0gfSwKLXsgIDE2LCAweDliZjAsIDAsIHsweDM1LDB4YzAsMHg0ZCwweGIwLDB4MDMsMHg3NCwweDIwLDB4ZmMsMHgwMSwweDNmLDB4MDAsMHgwZiwweGY4LDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDljMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTUsMHgwMCwweGNiLDB4MDAsMHhiYSwweDQwIH0gfSwKLXsgIDE2LCAweDljMTAsIDAsIHsweDBjLDB4MTQsMHgwYiwweDJmLDB4MjIsMHhjOSwweDQwLDB4MzIsMHhjMCwweDhlLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweDljMjAsIDAsIHsweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDMyLDB4MDAsMHgyYywweDkwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweDljMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDAxLDB4MjQsMHgwMCwweDhmLDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweDljNDAsIDAsIHsweDJjLDB4YTUsMHg0MiwweDI5LDB4MDAsMHg4YiwweDA0LDB4YTMsMHhjMSwweDBkLDB4ZjAsMHgwYSwweDNjLDB4MDAsMHhiZiwweDAwIH0gfSwKLXsgIDE2LCAweDljNTAsIDAsIHsweDNmLDB4YzAsMHgwOCwweGYwLDB4MDEsMHg2OSwweDAwLDB4ZGEsMHgwNSwweDIyLDB4ZDAsMHgwOCwweDk0LDB4MDMsMHg3MiwweDAwIH0gfSwKLXsgIDE2LCAweDljNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NjAsMHg0MCwweDgzLDB4MDEsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweDljNzAsIDAsIHsweDA5LDB4MDAsMHgwMiwweDIwLDB4MDAsMHg4MiwweDYwLDB4MjIsMHhjMCwweDA4LDB4MzAsMHg0MiwweDRjLDB4MTAsMHhiYiwweDAyIH0gfSwKLXsgIDE2LCAweDljODAsIDAsIHsweDJjLDB4YzAsMHgwOCwweGIwLDB4MTIsMHgwNSwweDAwLDB4OWIsMHgwMCwweDIwLDB4ODIsMHgwOSwweDMyLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweDljOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTYsMHg5MCwweDg3LDB4ODAsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweDljYTAsIDAsIHsweDA4LDB4NTgsMHgwMiwweDE2LDB4MTQsMHg4NCwweDgxLDB4MjEsMHhlMCwweDI5LDB4MzksMHgwMiwweDVlLDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweDljYjAsIDAsIHsweDI4LDB4ZTAsMHgwOCwweDc4LDB4MDIsMHg3YSwweDgwLDB4OTYsMHg4MSwweDIxLDB4ZTAsMHgwOSwweGY4LDB4MDIsMHg0OCwweDAwIH0gfSwKLXsgIDE2LCAweDljYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDgsMHgwOSwweDhiLDB4MTAsMHgzOCwweDQ0IH0gfSwKLXsgIDE2LCAweDljZDAsIDAsIHsweDRkLDB4MjUsMHgxMiwweDBjLDB4MDAsMHhjMiwweDEwLDB4MjIsMHhjOCwweDBhLDB4MzgsMHgwMywweGNjLDB4MDAsMHhmMywweDEwIH0gfSwKLXsgIDE2LCAweDljZTAsIDAsIHsweDJjLDB4YzAsMHgwYywweDMwLDB4MDMsMHg4YSwweGMwLDB4ZDksMHgxMCwweDMyLDB4NDAsMHgyZCwweDEwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweDljZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHg4MCwweGZmLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweDlkMDAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGY0LDB4NDAsMHhlZCwweDAwLDB4M2YsMHhjMCwweDBlLDB4ZjMsMHgwMywweGJjLDB4MDQsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweDlkMTAsIDAsIHsweDNmLDB4YzIsMHgwZiwweGYwLDB4MGIsMHhkNCwweDAwLDB4ZmYsMHgxMCwweGJmLDB4ODAsMHgwZSwweGYwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweDlkMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZmEsMHgwMCwweGNiLDB4MDIsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweDlkMzAsIDAsIHsweDBmLDB4OTAsMHgwMywweGEwLDB4MDAsMHhjYiwweDAwLDB4M2EsMHhjYSwweDBjLDB4YjMsMHgxMywweGFmLDB4MjQsMHhjYiwweDQ4IH0gfSwKLXsgIDE2LCAweDlkNDAsIDAsIHsweDFlLDB4YzgsMHgwZiwweGI2LDB4MDMsMHgyYywweDAwLDB4ZmEsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweDlkNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwOCwweDg3LDB4MjAsMHgyZCwweGM0IH0gfSwKLXsgIDE2LCAweDlkNjAsIDAsIHsweDBiLDB4NTAsMHgxMiwweGRjLDB4MDQsMHg4NywweDAwLDB4MmMsMHhjMCwweDA4LDB4NzAsMHhhMiwweDFkLDB4MDAsMHhhNywweDQwIH0gfSwKLXsgIDE2LCAweDlkNzAsIDAsIHsweDI1LDB4Y2IsMHg4YiwweDc0LDB4ODIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJkLDB4YzEsMHgwYiwweDcwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDlkODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWEsMHgwMSwweDg3LDB4OTAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweDlkOTAsIDAsIHsweDBiLDB4NzgsMHgwMiwweGNlLDB4MDAsMHg4NiwweDgwLDB4MmQsMHhlNCwweDI5LDB4N2EsMHgwMiwweDllLDB4ODAsMHg4NywweGEwIH0gfSwKLXsgIDE2LCAweDlkYTAsIDAsIHsweDZkLDB4ZTgsMHgwYiwweDc4LDB4MDIsMHgxZSwweDAwLDB4YjUsMHg4MCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweDlkYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2QsMHgwMCwweDgzLDB4MDIsMHgyYywweGUwIH0gfSwKLXsgIDE2LCAweDlkYzAsIDAsIHsweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg4MywweGUwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweDlkZDAsIDAsIHsweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHgwZSwweDIwLDB4YjMsMHgwOCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweDlkZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YjgsMHg4MiwweGNhLDB4MDAsMHgzZSwweGE4IH0gfSwKLXsgIDE2LCAweDlkZjAsIDAsIHsweDBmLDB4ZTAsMHgwMywweGY4LDB4MDIsMHg4ZSwweDgwLDB4M2UsMHg4MCwweDBkLDB4YTAsMHg1YiwweGE4LDB4MDAsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweDllMDAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHgzYiwweDgwLDB4ZmUsMHg0MiwweDJmLDB4ODAsMHgwZiwweGE4LDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweDllMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweDllMjAsIDAsIHsweDBmLDB4MDYsMHgwMywweGMwLDB4MDAsMHhmOCwweDExLDB4M2UsMHgwMCwweDBmLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweDllMzAsIDAsIHsweDM2LDB4MDAsMHgwZiwweDgwLDB4MGIsMHhlMCwweDAwLDB4ZjgsMHgwNCwweDNlLDB4MjAsMHgwZiwweDgxLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweDllNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDllNTAsIDAsIHsweDBjLDB4OWEsMHgwMywweDI0LDB4NDAsMHhjOSwweGMwLDB4M2UsMHg0MCwweDRjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweDllNjAsIDAsIHsweDM2LDB4NDAsMHgwNywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHgwNCwweDMyLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweDllNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MDIsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweDllODAsIDAsIHsweDBhLDB4OTIsMHgwMiwweDI1LDB4MDIsMHg4OSwweGUwLDB4MmUsMHg0MCwweDk4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweDllOTAsIDAsIHsweDIyLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgwNCwweDAwLDB4ZDksMHgwMCwweDIyLDB4NDQsMHgwYiwweDljLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweDllYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MmMsMHgwMCwweGI5LDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweDllYjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDI0LDB4MjgsMHg4OSwweDAwLDB4MmMsMHg0MCwweDY4LDB4OTAsMHg0MiwweDI0LDB4MGMsMHhiMSwweDA0IH0gfSwKLXsgIDE2LCAweDllYzAsIDAsIHsweDI2LDB4NDAsMHgwYiwweDkwLDB4MGEsMHgyYywweDgwLDB4ODEsMHgwMCwweDIyLDB4NDAsMHhjYiwweDkyLDB4ODIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDllZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweGIxLDB4MjAsMHgyYywweDQ4IH0gfSwKLXsgIDE2LCAweDllZTAsIDAsIHsweDBhLDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIxLDB4MmMsMHg0YywweDA4LDB4MTEsMHgwMiwweDA0LDB4MDgsMHhiMSwweDEwIH0gfSwKLXsgIDE2LCAweDllZjAsIDAsIHsweDIwLDB4NGMsMHgwOSwweDEyLDB4MDIsMHgyNCwweDAxLDB4OTEsMHgyMCwweGEwLDB4NDgsMHgwYiwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDlmMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NDEsMHhlMCwweGY4LDB4NTAsMHgzZSwweDE0IH0gfSwKLXsgIDE2LCAweDlmMTAsIDAsIHsweDBjLDB4ODUsMHgwMywweDIxLDB4NDAsMHhjOCwweDUwLDB4M2UsMHgxMCwweDA4LDB4MDYsMHg4MywweDAxLDB4ZjAsMHhmOCwweDY4IH0gfSwKLXsgIDE2LCAweDlmMjAsIDAsIHsweDM2LDB4MTAsMHgwZiwweDA1LDB4MDMsMHgyOSwweDQwLDB4YzgsMHg1MCwweDMyLDB4OTQsMHgwZiwweDg1LDB4MDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweDlmMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHgwMCwweGY5LDB4MTAsMHgzZiwweDQ0IH0gfSwKLXsgIDE2LCAweDlmNDAsIDAsIHsweDBmLDB4ZDEsMHgwYiwweGY0LDB4NDAsMHhmZCwweDEyLDB4MmUsMHg0YywweDAzLDB4OTIsMHgwYiwweGU0LDB4MDAsMHhmOSwweDIwIH0gfSwKLXsgIDE2LCAweDlmNTAsIDAsIHsweDNlLDB4NGMsMHgwZiwweDkxLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgxMCwweDNmLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweDlmNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgyMCwweGM5LDB4MDEsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweDlmNzAsIDAsIHsweDBmLDB4ZDAsMHgwMywweDNjLDB4MDAsMHhiZCwweDAwLDB4MzIsMHg2MywweDBjLDB4OWUsMHg0MywweDI3LDB4MDAsMHhlOSwweGMwIH0gfSwKLXsgIDE2LCAweDlmODAsIDAsIHsweDNlLDB4NjgsMHgwYywweDk4LDB4MDMsMHgzNCwweDAwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweDlmOTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4YzIsMHgyMCwweGQ4LDB4MDAsMHgyZSwweDAwIH0gfSwKLXsgIDE2LCAweDlmYTAsIDAsIHsweDBiLDB4ODAsMHg1MiwweDI4LDB4MDQsMHhiOCwweDAwLDB4MjIsMHgzOCwweDA4LDB4ODgsMHgwMywweDYyLDB4MDAsMHg4OCwweGYwIH0gfSwKLXsgIDE2LCAweDlmYjAsIDAsIHsweDJlLDB4M2EsMHg0OCwweDhmLDB4MGEsMHgyMCwweDAwLDB4YjAsMHg4MCwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweDlmYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg4MCwweDgxLDB4MDAsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweDlmZDAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDA0LDB4MDAsMHhiMSwweDAwLDB4MjAsMHg0MiwweDQ4LDB4MTQsMHg0MiwweDA1LDB4ODAsMHhhMSwweDIwIH0gfSwKLXsgIDE2LCAweDlmZTAsIDAsIHsweDJjLDB4NDQsMHgwOCwweDEwLDB4ODIsMHgwNCwweDAwLDB4YjEsMHgyMCwweDJjLDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweDlmZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTUsMHgwMSwweDk5LDB4MDAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGEwMDAsIDAsIHsweDBiLDB4OTAsMHgwMiwweDI0LDB4NDAsMHhiYiwweDAxLDB4MjIsMHg0MSwweDA4LDB4OTAsMHgxMiwweDI0LDB4MDAsMHhhOSwweDAwIH0gfSwKLXsgIDE2LCAweGEwMTAsIDAsIHsweDJjLDB4NDAsMHgwOCwweDEwLDB4NDAsMHgyNCwweDA4LDB4YjksMHg0MCwweDZlLDB4NTAsMHgwYiwweDkyLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGEwMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTcsMHgxNCwweGM5LDB4MDUsMHgzZSwweDQxIH0gfSwKLXsgIDE2LCAweGEwMzAsIDAsIHsweDBmLDB4OTAsMHgwYiwweDI0LDB4MDQsMHhmOSwweDA4LDB4YjIsMHg0MCwweDJjLDB4OTAsMHgwYSwweDI0LDB4MDAsMHhlOSwweDAwIH0gfSwKLXsgIDE2LCAweGEwNDAsIDAsIHsweDNlLDB4NDAsMHgyYywweDkwLDB4MDMsMHgyNywweDAwLDB4ZjksMHg4MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweGEwNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4ODQsMHg4OCwweGY5LDB4MDAsMHgzZSwweDQ4IH0gfSwKLXsgIDE2LCAweGEwNjAsIDAsIHsweDBmLDB4OTksMHgwMywweGU2LDB4MDAsMHhmOSwweDAyLDB4M2MsMHg0MCwweGFmLDB4MTAsMHgwMywweGU0LDB4MTIsMHhkOSwweDA0IH0gfSwKLXsgIDE2LCAweGEwNzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNSwweDAwLDB4ZjksMHhjMCwweDNlLDB4NjQsMHgwZiwweDkwLDB4ODMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGEwODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGM4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGEwOTAsIDAsIHsweDBmLDB4ODAsMHgwMywweDIxLDB4MDAsMHhjOCwweDQwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MTAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGEwYTAsIDAsIHsweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDgwLDB4ZjgsMHgwNCwweDMyLDB4MDAsMHgyYywweDgwLDB4MGIsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGEwYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweGNhLDB4MDAsMHgyZSwweDgwIH0gfSwKLXsgIDE2LCAweGEwYzAsIDAsIHsweDBiLDB4ZTgsMHgwYSwweDM4LDB4MTAsMHg4ZSwweGMwLDB4MjIsMHg4MCwweDBkLDB4YTAsMHgwMiwweDI4LDB4MDAsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGEwZDAsIDAsIHsweDAyLDB4ODAsMHgyOCwweGEwLDB4MDIsMHhmYiwweDAwLDB4YmEsMHgwMCwweDM3LDB4YjAsMHg0OCwweGVhLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGEwZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDkzLDB4MDEsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGEwZjAsIDAsIHsweDhiLDB4YjAsMHg0MiwweDBjLDB4OTAsMHg5YiwweDIwLDB4MjAsMHhjMCwweDQ4LDB4MzAsMHg0MiwweDJjLDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGExMDAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjZCwweDQwLDB4YjMsMHgwMCwweDI0LDB4YzgsMHgwOCwweDM4LDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGExMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTQsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGExMjAsIDAsIHsweDBiLDB4MjQsMHgwNiwweDE2LDB4MDAsMHg5MywweDA4LDB4MjEsMHhjOCwweDA5LDB4MzEsMHgwMiwweDBjLDB4ODAsMHg4NywweGEwIH0gfSwKLXsgIDE2LCAweGExMzAsIDAsIHsweDIxLDB4YzAsMHgxOCwweDcyLDB4MDIsMHhkYywweDAwLDB4YjcsMHhiNCwweDI0LDB4ZTMsMHgwOCwweDc4LDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGExNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMiwweDk3LDB4YTAsMHgzZCwweGYwIH0gfSwKLXsgIDE2LCAweGExNTAsIDAsIHsweDBmLDB4NDgsMHgwMywweDNlLDB4MDAsMHhkNiwweDgwLDB4MzAsMHhlMCwweDJjLDB4N2EsMHgwMiwweDFlLDB4ODIsMHhjMywweGYwIH0gfSwKLXsgIDE2LCAweGExNjAsIDAsIHsweDMzLDB4ZWMsMHgwYywweDdjLDB4MDMsMHhkNiwweDAwLDB4ZjcsMHg4MCwweDM1LDB4ZTAsMHgwYywweGQ4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGExNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDE5LDB4YTUsMHhhMCwweGZiLDB4MDAsMHgzZSwweGNhIH0gfSwKLXsgIDE2LCAweGExODAsIDAsIHsweDBmLDB4ODAsMHgwMywweGVjLDB4MDIsMHhlYSwweDAwLDB4M2UsMHhjNiwweDBmLDB4YjQsMHgwYiwweGVkLDB4NDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGExOTAsIDAsIHsweGJlLDB4YzAsMHgwZiwweGI2LDB4NDMsMHhlMCwweDAwLDB4ZmIsMHgwMiwweDNlLDB4ODAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGExYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMiwweGNmLDB4ODgsMHgzZiwweGUwIH0gfSwKLXsgIDE2LCAweGExYjAsIDAsIHsweDBjLDB4YjksMHgwMywweGZlLDB4MDAsMHhkZCwweDgxLDB4MzMsMHhlMCwweDhjLDB4ZmMsMHgwMywweDNmLDB4MDQsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGExYzAsIDAsIHsweDMzLDB4ZTIsMHg0ZiwweGZjLDB4MDMsMHgzZSwweDAwLDB4Y2YsMHhjMCwweDMzLDB4NjQsMHgwYywweGY4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGExZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OTQsMHg0MCwweDg3LDB4MDAsMHgyZiwweGMxIH0gfSwKLXsgIDE2LCAweGExZTAsIDAsIHsweDBkLDB4NjksMHhhMiwweGQwLDB4NDAsMHhiYywweDAwLDB4MjMsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDljLDB4MDAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGExZjAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDcwLDB4MGEsMHgzYywweDA0LDB4ODcsMHgxMCwweDIxLDB4NGMsMHgwOCwweDYwLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGEyMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWUsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGEyMTAsIDAsIHsweDA5LDB4NjIsMHgwMiwweGQ4LDB4MDAsMHg5NywweDAwLDB4MjEsMHhjNCwweDA4LDB4NzAsMHgwMiwweDBjLDB4NDAsMHg5NywweDAwIH0gfSwKLXsgIDE2LCAweGEyMjAsIDAsIHsweDIxLDB4YzQsMHgwYiwweDMwLDB4MDIsMHg1OCwweDAwLDB4YTcsMHgwOCwweDIxLDB4ODAsMHgwOCwweDYwLDB4ODIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGEyMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4ZTQsMHgyNSwweDgzLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGEyNDAsIDAsIHsweDA5LDB4MjIsMHgwMiwweGNjLDB4MjAsMHhiMiwweDAwLDB4MjAsMHhjMCwweDI4LDB4YjAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweGEyNTAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHg2YywweDIwLDB4ODMsMHgwOCwweDIwLDB4ZTIsMHgwOCwweGI4LDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweGEyNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YTQsMHgwMCwweGNmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGEyNzAsIDAsIHsweDBkLDB4OWMsMHgwMywweGU4LDB4MDAsMHhkYiwweDgwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwYiwweDNjLDB4MDYsMHhkZiwweDAwIH0gfSwKLXsgIDE2LCAweGEyODAsIDAsIHsweGIzLDB4YzAsMHgwYiwweGYwLDB4MDcsMHg2OCwweDAwLDB4ZWYsMHg0MCwweDMyLDB4YTgsMHgwYywweGE4LDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGEyOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGEyYTAsIDAsIHsweDBmLDB4OTQsMHgwMywweGM1LDB4NDAsMHhmYSwweDMwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDZjLDB4MDAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweGEyYjAsIDAsIHsweDNlLDB4YzAsMHgwZiwweDMwLDB4MTMsMHhhZCwweDQwLDB4ZmIsMHgwMiwweDNlLDB4ZDAsMHgwZiwweGI0LDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGEyYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZTQsMHgwMCwweGM3LDB4MDAsMHgzMSwweGMxIH0gfSwKLXsgIDE2LCAweGEyZDAsIDAsIHsweDhjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhjZCwweDAwLDB4M2QsMHhjMCwweDBjLDB4ZjAsMHgwMSwweDdjLDB4MDAsMHhkYiwweDAxIH0gfSwKLXsgIDE2LCAweGEyZTAsIDAsIHsweDNkLDB4YzAsMHg0YywweGYwLDB4MGIsMHgzMCwweDAyLDB4YzMsMHgwMCwweDMyLDB4MDAsMHgwZiwweGQwLDB4MDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGEyZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmUsMHg0MCwweDhiLDB4MDAsMHgyYSwweGMwIH0gfSwKLXsgIDE2LCAweGEzMDAsIDAsIHsweDI4LDB4ODQsMHg0MiwweDIyLDB4ODAsMHg4OCwweDgwLDB4M2EsMHhjMCwweDBkLDB4YjAsMHgwMiwweGFjLDB4MDgsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGEzMTAsIDAsIHsweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyMywweDIwLDB4OGIsMHgwMCwweDIyLDB4MzAsMHg4YiwweDhjLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGEzMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjQsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGEzMzAsIDAsIHsweDA4LDB4MzgsMHg4NiwweDJhLDB4MDAsMHg4OSwweDgwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGNjLDB4MDAsMHg5YiwweDAwIH0gfSwKLXsgIDE2LCAweGEzNDAsIDAsIHsweDJlLDB4YzAsMHgwOCwweGIwLDB4NDIsMHgyNiwweDAwLDB4OGIsMHgwMCwweDIyLDB4NzEsMHgwYiwweDhjLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGEzNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyOCwweGMwIH0gfSwKLXsgIDE2LCAweGEzNjAsIDAsIHsweDA4LDB4MzIsMHg0MiwweDAwLDB4MDAsMHg4MSwweDAwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHg1MiwweDhjLDB4MDgsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGEzNzAsIDAsIHsweDJjLDB4YzAsMHgxOCwweDMwLDB4MDYsMHgwMCwweDAwLDB4ODMsMHgwMCwweGEwLDB4MDAsMHgwYiwweDAwLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGEzODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NzQsMHgwMiwweDhiLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGEzOTAsIDAsIHsweDBjLDB4OTIsMHgwYiwweDIwLDB4MDIsMHhjOCwweDAwLDB4M2IsMHhjMCwweDBjLDB4ZjUsMHgwMywweGZjLDB4MDAsMHhkZiwweDAxIH0gfSwKLXsgIDE2LCAweGEzYTAsIDAsIHsweDNmLDB4YzEsMHgwNCwweGYwLDB4MzMsMHgyMSwweDQwLDB4Y2YsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MGIsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGEzYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE5LDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGEzYzAsIDAsIHsweDBmLDB4YzQsMHgwMywweGYwLDB4MDAsMHg5YywweDAwLDB4M2IsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGEzZDAsIDAsIHsweDJmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDgwLDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGEzZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHhjMCwweGZmLDB4YTAsMHgzMSwweDI0IH0gfSwKLXsgIDE2LCAweGEzZjAsIDAsIHsweDBlLDB4ZjAsMHg2MywweDEwLDB4MDQsMHhlZiwweDY0LDB4M2YsMHhjMCwweDRjLDB4ZjMsMHgwMywweDFjLDB4ODAsMHhkZiwweDA4IH0gfSwKLXsgIDE2LCAweGE0MDAsIDAsIHsweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmMCwweGEwLDB4ZmMsMHgwMCwweDMxLDB4MDgsMHgyYywweGQyLDB4MDMsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGE0MTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTEsMHgwMCwweGJiLDB4YzEsMHgyMiwweDQ4IH0gfSwKLXsgIDE2LCAweGE0MjAsIDAsIHsweDA4LDB4ZmQsMHgwMiwweDJlLDB4MDAsMHg5NywweDAwLDB4MmYsMHhjMiwweDQ4LDB4NzEsMHgyMywweDdlLDB4NDAsMHhiZiwweDAwIH0gfSwKLXsgIDE2LCAweGE0MzAsIDAsIHsweDIxLDB4YzUsMHg0YiwweGY1LDB4MDIsMHhlZiwweDAwLDB4YmIsMHg0MCwweDM2LDB4ZTAsMHgwOCwweGE4LDB4MDIsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweGE0NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzUsMHg4NCwweGIzLDB4MTEsMHhhMiwweGM5IH0gfSwKLXsgIDE2LCAweGE0NTAsIDAsIHsweDBhLDB4MzAsMHgwMiwweDAwLDB4MDEsMHhiMywweDMwLDB4MjgsMHhjNCwweDA4LDB4MzIsMHg0MiwweDBjLDB4MDAsMHhhMywweDA4IH0gfSwKLXsgIDE2LCAweGE0NjAsIDAsIHsweGEwLDB4Y2EsMHgwYSwweDMyLDB4ODIsMHg4MCwweDEwLDB4YjAsMHg0MSwweDI0LDB4MTEsMHgwOCwweDMxLDB4MDIsMHhlMiwweDAxIH0gfSwKLXsgIDE2LCAweGE0NzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTUsMHgwMCwweGJiLDB4MDAsMHgyMiwweGUxIH0gfSwKLXsgIDE2LCAweGE0ODAsIDAsIHsweDI4LDB4YjAsMHgwMiwweDJjLDB4ODAsMHg5YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGE0OTAsIDAsIHsweDIyLDB4YzAsMHgwYiwweGIwLDB4MDAsMHhlYywweDIwLDB4YmIsMHgwMCwweDI2LDB4YzAsMHgwOCwweDgwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGE0YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZTMsMHg0MCwweGY3LDB4MDQsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweGE0YjAsIDAsIHsweDRlLDB4YjAsMHgyMywweDJlLDB4MjAsMHhlYiwweDAwLDB4MWUsMHhjMCwweDBjLDB4YjAsMHgwMSwweDJjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGE0YzAsIDAsIHsweDM2LDB4YzAsMHgxZiwweGIwLDB4MDMsMHhlMSwweDQwLDB4ZmIsMHgwMCwweDM2LDB4OTgsMHgwYywweDkwLDB4MDMsMHhkMCwweDA0IH0gfSwKLXsgIDE2LCAweGE0ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjYsMHgwNCwweGZmLDB4MDIsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGE0ZTAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGZlLDB4MDAsMHhlZiwweDAyLDB4M2QsMHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGE0ZjAsIDAsIHsweDNmLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZjQsMHgwMCwweDNiLDB4NDAsMHgwZiwweGEwLDB4MTMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGE1MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWEsMHgyMCwweGViLDB4MTAsMHgzNiwweGMwIH0gfSwKLXsgIDE2LCAweGE1MTAsIDAsIHsweDBkLDB4YjAsMHgwNywweGVjLDB4MjAsMHhkYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwMiwweDZjLDB4MjAsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweGE1MjAsIDAsIHsweDNlLDB4YzEsMHgwZCwweGIwLDB4MDMsMHhlMCwweDIwLDB4ZGIsMHhhMCwweDMyLDB4OTAsMHg0YywweGIwLDB4MGIsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGE1MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmQsMHgwMCwweDhmLDB4ODAsMHgyMCwweGMxIH0gfSwKLXsgIDE2LCAweGE1NDAsIDAsIHsweDA4LDB4NzAsMHgxMiwweGNmLDB4MDAsMHg4ZiwweDAwLDB4YTMsMHhjMCwweDBkLDB4ZjAsMHgwMiwweDNjLDB4MDAsMHg4ZiwweDAwIH0gfSwKLXsgIDE2LCAweGE1NTAsIDAsIHsweDM3LDB4YzAsMHg4OCwweGYwLDB4MDIsMHhlYywweDAwLDB4ODgsMHgwMCwweDIwLDB4NDAsMHgwOCwweDgwLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGE1NjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGEzLDB4ODAsMHgyNCwweDgxIH0gfSwKLXsgIDE2LCAweGE1NzAsIDAsIHsweDA5LDB4MzAsMHgwNiwweGNjLDB4NDAsMHg5MywweDAwLDB4MjgsMHhjMSwweDA4LDB4YjAsMHgwMiwweGNmLDB4NDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGE1ODAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjZCwweDAwLDB4OTAsMHg0MCwweDYwLDB4NDAsMHgyOCwweDEwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGE1OTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MGUsMHgwMCwweDg3LDB4ODAsMHgyMywweGUwIH0gfSwKLXsgIDE2LCAweGE1YTAsIDAsIHsweDQ4LDB4NzksMHgwMiwweGRlLDB4NDEsMHg5NywweDgwLDB4MjksMHhlMCwweDE5LDB4NzgsMHgwNiwweDllLDB4MDAsMHg4NywweDgwIH0gfSwKLXsgIDE2LCAweGE1YjAsIDAsIHsweDI1LDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhkMiwweDAzLDB4ODMsMHg4MCwweDIxLDB4YTAsMHgwOCwweDY4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGE1YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgzNCwweGMwIH0gfSwKLXsgIDE2LCAweGE1ZDAsIDAsIHsweDBkLDB4MzAsMHg0MiwweGNjLDB4MDEsMHhkMywweDEwLDB4M2EsMHhjNSwweDBjLDB4MzksMHgwMywweGNjLDB4MDAsMHhlMywweDA0IH0gfSwKLXsgIDE2LCAweGE1ZTAsIDAsIHsweDNjLDB4YzQsMHgwZCwweDMwLDB4MDMsMHhjZSwweDAwLDB4ZDAsMHgwMCwweDMwLDB4NDAsMHgwYywweDMwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGE1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgwMCwweGY3LDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGE2MDAsIDAsIHsweDFmLDB4ZjAsMHg1MywweGZjLDB4MDAsMHhlZiwweDA4LDB4MzcsMHhkMSwweDBmLDB4ZjAsMHg4MywweDdjLDB4MDAsMHhmNywweDQwIH0gfSwKLXsgIDE2LCAweGE2MTAsIDAsIHsweDNmLDB4YzEsMHgwZiwweGYxLDB4MDMsMHhkMCwweDAwLDB4ZmYsMHgwMCwweGJmLDB4ODQsMHgwZiwweGM4LDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGE2MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTAsMHgwMCwweGZiLDB4MDAsMHgzZSwweGUwIH0gfSwKLXsgIDE2LCAweGE2MzAsIDAsIHsweDJjLDB4YmUsMHg4MywweGVjLDB4MDAsMHhlYiwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGVkLDB4MjAsMHhmYiwweDEwIH0gfSwKLXsgIDE2LCAweGE2NDAsIDAsIHsweGI2LDB4ZDIsMHgwZiwweGI0LDB4ODMsMHhlYywweDAwLDB4ZGIsMHg4MCwweDM2LDB4YzEsMHgwYywweDkwLDB4MjEsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGE2NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OTQsMHgwMCwweGI3LDB4MDAsMHgyZiwweGMwIH0gfSwKLXsgIDE2LCAweGE2NjAsIDAsIHsweDA4LDB4MzYsMHgwMiwweDBjLDB4MDgsMHg4NywweDMwLDB4MmQsMHhkOSwweDhiLDB4NzIsMHg4NiwweGRkLDB4MDAsMHhiMywweDIwIH0gfSwKLXsgIDE2LCAweGE2NzAsIDAsIHsweDIxLDB4YzgsMHgwYiwweDc0LDB4MDIsMHhkMCwweDAyLDB4ODQsMHgwMCwweGEwLDB4MDAsMHgyOCwweDIwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGE2ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWEsMHgwMCwweGI3LDB4ODAsMHgyZCwweGUwIH0gfSwKLXsgIDE2LCAweGE2OTAsIDAsIHsweDA4LDB4N2EsMHgwMiwweDlkLDB4MDAsMHhhNywweGEwLDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwMiwweDllLDB4ODAsMHhhNywweDgwIH0gfSwKLXsgIDE2LCAweGE2YTAsIDAsIHsweDIxLDB4ZTQsMHgwOCwweDdhLDB4MjYsMHg5ZSwweDE4LDB4ODMsMHgwNCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MGEsMHg3MCwweDAwIH0gfSwKLXsgIDE2LCAweGE2YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGUwIH0gfSwKLXsgIDE2LCAweGE2YzAsIDAsIHsweDU4LDB4MzAsMHgxMiwweDBlLDB4ODIsMHg4MywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDEsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGE2ZDAsIDAsIHsweDIwLDB4YzEsMHgwYiwweDMwLDB4MDIsMHhjMCwweDA4LDB4ODgsMHhkMiwweDIwLDB4MjAsMHgwOCwweDAwLDB4MDIsMHg1MiwweDA0IH0gfSwKLXsgIDE2LCAweGE2ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YjgsMHg2MCwweGZhLDB4MDAsMHgzZiwweDgyIH0gfSwKLXsgIDE2LCAweGE2ZjAsIDAsIHsweDBjLDB4YTAsMHgwMywweGZhLDB4MDAsMHhhYSwweDAwLDB4MWUsMHg4MCwweDhmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmMiwweDAwIH0gfSwKLXsgIDE2LCAweGE3MDAsIDAsIHsweDMyLDB4ODAsMHgxZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZGEsMHgwMCwweDM2LDB4ODgsMHhhYywweGUwLDB4MDMsMHg3YSwweDA0IH0gfSwKLXsgIDE2LCAweGE3MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDIwIH0gfSwKLXsgIDE2LCAweGE3MjAsIDAsIHsweDRmLDB4ODAsMHgwMywweGUxLDB4MDAsMHhmMCwweDAwLDB4M2MsMHgwMCwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyIH0gfSwKLXsgIDE2LCAweGE3MzAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4NDMsMHhmMSwweDAwLDB4ZmMsMHgwYSwweDNkLDB4MDAsMHgwZiwweGMwLDB4MDMsMHg5MiwweDAwIH0gfSwKLXsgIDE2LCAweGE3NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTYsMHgwMCwweGM5LDB4OTAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGE3NTAsIDAsIHsweDBmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhkOSwweDAwLDB4MzIsMHg0MCwweDA0LDB4OTAsMHgwNywweGU3LDB4MDAsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGE3NjAsIDAsIHsweDMwLDB4NDAsMHgwYywweDkwLDB4NDMsMHhlNCwweDA5LDB4ZDksMHg4MCwweDIyLDB4NDAsMHgyYywweDEwLDB4MGIsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGE3NzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHg2MCwweDg5LDB4YzAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGE3ODAsIDAsIHsweDBiLDB4OTgsMHgyNiwweGM1LDB4ODAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgxMiwweGU3LDB4MTAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGE3OTAsIDAsIHsweDM2LDB4NDAsMHgyOCwweDkwLDB4MTIsMHhjNSwweDgzLDB4YzksMHg4MCwweGI2LDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGE3YTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQxIH0gfSwKLXsgIDE2LCAweGE3YjAsIDAsIHsweDRiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHg5OSwweDAwLDB4YTIsMHg0MCwweDBhLDB4OTAsMHgwMiwweGU1LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGE3YzAsIDAsIHsweGUyLDB4NDEsMHgwOCwweDkwLDB4NDIsMHhlNCwweDAwLDB4OWQsMHg1MCwweGFiLDB4NGEsMHgwOCwweGQwLDB4MjYsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGE3ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4MiwweDgxLDB4MjAsMHgyYywweDUwIH0gfSwKLXsgIDE2LCAweGE3ZTAsIDAsIHsweDBiLDB4MTAsMHgwMiwweGU0LDB4MDAsMHg4MSwweDQwLDB4MjAsMHg1MCwweDRhLDB4MTQsMHgzMiwweGM0LDB4MDAsMHhiMSwweDQwIH0gfSwKLXsgIDE2LCAweGE3ZjAsIDAsIHsweDI0LDB4NTEsMHgxOCwweDE0LDB4MTIsMHhkNCwweDAwLDB4ODUsMHg0MCwweDJkLDB4NDAsMHgwOCwweDUwLDB4MDYsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGE4MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGM4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGE4MTAsIDAsIHsweDBmLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhkOCwweDAwLDB4MzIsMHgwMCwweDBhLDB4ODAsMHgwMiwweGUwLDB4MTAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGE4MjAsIDAsIHsweDMyLDB4MDAsMHgwNCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZDgsMHgwMCwweDNhLDB4MDAsMHgwYywweGMwLDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGE4MzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQxIH0gfSwKLXsgIDE2LCAweGE4NDAsIDAsIHsweDBmLDB4OTQsMHgwMywweGY1LDB4MDAsMHhmOSwweDQwLDB4M2UsMHg1MCwweDBkLDB4OTQsMHgwMywweGU1LDB4MTAsMHhmOSwweDQwIH0gfSwKLXsgIDE2LCAweGE4NTAsIDAsIHsweDNlLDB4NTAsMHg0ZiwweDk0LDB4MDMsMHhjNSwweDAwLDB4ZTksMHg0MSwweDM2LDB4NTAsMHgwZiwweDk0LDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGE4NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgwMCwweGZkLDB4YTgsMHgzYSwweDQwIH0gfSwKLXsgIDE2LCAweGE4NzAsIDAsIHsweDBjLDB4ZDgsMHgyMywweDM2LDB4MDAsMHhlOSwweGEwLDB4M2UsMHg3OCwweDBmLDB4OWUsMHgwMywweGI2LDB4ODAsMHhjZCwweGUyIH0gfSwKLXsgIDE2LCAweGE4ODAsIDAsIHsweDMyLDB4NjgsMHgwYywweDliLDB4MDMsMHgzNiwweDgyLDB4NGQsMHhhMCwweDM3LDB4NjgsMHg4YywweDk4LDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGE4OTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZWIsMHhhMCwweGI4LDB4NDAsMHgyMCwweDIwIH0gfSwKLXsgIDE2LCAweGE4YTAsIDAsIHsweDA4LDB4ODUsMHgwMiwweDIxLDB4NTEsMHg4OCwweGMwLDB4MmUsMHgyOSwweDBiLDB4OGUsMHgwMiwweGUxLDB4MDAsMHhkOCwweGUwIH0gfSwKLXsgIDE2LCAweGE4YjAsIDAsIHsweDIyLDB4MzIsMHgwZCwweDhkLDB4MjMsMHg2MSwweDQ4LDB4OTgsMHhkNCwweGEyLDB4MTAsMHgyOCwweDg0LDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGE4YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGIzLDB4MDAsMHgyYSwweDRhIH0gfSwKLXsgIDE2LCAweGE4ZDAsIDAsIHsweDI4LDB4MTAsMHg0ZSwweGE0LDB4MDgsMHhhMSwweDY4LDB4MjgsMHg0NCwweDBiLDB4MTQsMHgwMiwweGM1LDB4MDAsMHg4MSwweDQwIH0gfSwKLXsgIDE2LCAweGE4ZTAsIDAsIHsweGEwLDB4NTAsMHgwOCwweDEwLDB4MDIsMHgwNCwweDAyLDB4OTEsMHgyYSwweDIwLDB4NDQsMHgyOCwweDE0LDB4NGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGE4ZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YWMsMHg4MCwweGI5LDB4MDAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGE5MDAsIDAsIHsweDQ4LDB4OTAsMHgwNiwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgyMiwweGU0LDB4MDAsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGE5MTAsIDAsIHsweDIyLDB4NDAsMHgwOSwweDEwLDB4MDIsMHg2NCwweDAyLDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGE5MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzOCwweDU4IH0gfSwKLXsgIDE2LCAweGE5MzAsIDAsIHsweDBjLDB4OTAsMHg1MywweDg0LDB4MTQsMHhhOSwweDA0LDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGE5NDAsIDAsIHsweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyNCwweDA0LDB4ZDksMHgwMCwweGI2LDB4NDAsMHg0YywweDkwLDB4MGIsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGE5NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDIsMHgzZSwweDQ5IH0gfSwKLXsgIDE2LCAweGE5NjAsIDAsIHsweDBmLDB4MTAsMHg0MywweDY0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhmMSwweDAyIH0gfSwKLXsgIDE2LCAweGE5NzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAyLDB4ZTksMHgwNCwweDNjLDB4NDAsMHgwZiwweDFjLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGE5ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHg4MCwweGM4LDB4MjAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGE5OTAsIDAsIHsweDhjLDB4ODAsMHgwYiwweDIwLDB4MDAsMHhlOCwweDAyLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEwLDB4ODIsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGE5YTAsIDAsIHsweDZjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMCwweDEwLDB4YzgsMHgwMCwweDMyLDB4MDIsMHgwYywweDgwLDB4MDMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGE5YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MzgsMHgwMCwweDg2LDB4MDAsMHgyZSwweDgwIH0gfSwKLXsgIDE2LCAweGE5YzAsIDAsIHsweDY4LDB4YTgsMHg4MCwweDNhLDB4MDAsMHg4YSwweDAwLDB4MmUsMHg4MCwweDBiLDB4YTAsMHgwMiwweGY4LDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGE5ZDAsIDAsIHsweDJlLDB4ODAsMHgwYiwweGEwLDB4MGEsMHgzYSwweDAwLDB4OGUsMHgxMCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MDMsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGE5ZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGQsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGE5ZjAsIDAsIHsweDA4LDB4MzgsMHgwMCwweDBjLDB4NjAsMHgyMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4NDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGFhMDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAyLDB4OGEsMHg4MCwweGEwLDB4ZTAsMHgyOCwweDMwLDB4MGEsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGFhMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MTYsMHgyMCwweDg3LDB4MDIsMHgyZCwweGMxIH0gfSwKLXsgIDE2LCAweGFhMjAsIDAsIHsweDQ4LDB4NzAsMHgxMiwweDdjLDB4MDAsMHhhNywweDIwLDB4MmQsMHhjOSwweDBiLDB4NzIsMHgwMCwweGRjLDB4MDAsMHg4NywweDA4IH0gfSwKLXsgIDE2LCAweGFhMzAsIDAsIHsweDJkLDB4YzQsMHgxYiwweDMyLDB4MDIsMHgxZCwweDAxLDB4ODcsMHg0MiwweDIxLDB4YzIsMHgwOCwweDcwLDB4MDIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGFhNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4M2UsMHgwMiwweGM3LDB4ODAsMHgzZCwweGVjIH0gfSwKLXsgIDE2LCAweGFhNTAsIDAsIHsweDBjLDB4NTgsMHgwMywweDFlLDB4MDAsMHhlNywweDgwLDB4M2QsMHhlYywweDBmLDB4N2YsMHgwMywweDk2LDB4MDAsMHhjNywweDgwIH0gfSwKLXsgIDE2LCAweGFhNjAsIDAsIHsweDJkLDB4ZTIsMHgwNywweDc5LDB4MDMsMHgwYSwweDA2LDB4YzMsMHg4MCwweDMwLDB4MjAsMHg4YywweDM4LDB4MDMsMHg2YSwweDAyIH0gfSwKLXsgIDE2LCAweGFhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGFhODAsIDAsIHsweDBmLDB4MTAsMHg0MywweDhjLDB4MDAsMHhkYiwweDM4LDB4M2UsMHhkOCwweDBmLDB4YjAsMHgwMywweGNjLDB4MDQsMHhmYiwweDQ0IH0gfSwKLXsgIDE2LCAweGFhOTAsIDAsIHsweDNlLDB4YzAsMHg4ZiwweGI2LDB4MTMsMHhlYywweDAyLDB4ZmYsMHgwMiwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGFhYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmEsMHgwMCwweGZmLDB4ODAsMHgzMSwweGUzIH0gfSwKLXsgIDE2LCAweGFhYjAsIDAsIHsweDBlLDB4ZjgsMHgyMywweGZlLDB4MDIsMHhkZiwweDgwLDB4YjcsMHhlMiwweDBlLDB4ZjgsMHgwMywweDdlLDB4MDAsMHg2ZCwweGQwIH0gfSwKLXsgIDE2LCAweGFhYzAsIDAsIHsweDMzLDB4ZTAsMHgwYywweGY4LDB4OWIsMHg3NiwweGMwLDB4ZGYsMHg4NCwweGIzLDB4ZTAsMHgwNCwweGY4LDB4MDMsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGFhZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OTAsMHg0MCwweGI3LDB4MDIsMHgyMSwweGM0IH0gfSwKLXsgIDE2LCAweGFhZTAsIDAsIHsweDA4LDB4N2IsMHg0MiwweGRjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjNCwweDBiLDB4MzAsMHgwMCwweDEwLDB4ODAsMHg4ZCwweDAwIH0gfSwKLXsgIDE2LCAweGFhZjAsIDAsIHsweDIzLDB4YzAsMHgwZCwweGYyLDB4MDIsMHgwNCwweDQyLDB4OGYsMHgwMCwweDI5LDB4YzgsMHgyOCwweDcwLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGFiMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTQsMHgwMCwweGI2LDB4MDAsMHgyMywweGMwIH0gfSwKLXsgIDE2LCAweGFiMTAsIDAsIHsweDBhLDB4NzIsMHgwMiwweDhjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCwweDBhLDB4MzAsMHgwMiwweDA0LDB4MDEsMHhhNywweDAyIH0gfSwKLXsgIDE2LCAweGFiMjAsIDAsIHsweDIxLDB4YzAsMHgwOCwweDcwLDB4NDIsMHgwMCwweDhhLDB4ODcsMHgwMCwweDIxLDB4YzAsMHgyOCwweDcwLDB4MDIsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGFiMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4YzUsMHgwMCwweGIwLDB4MDAsMHhhMCwweGQwIH0gfSwKLXsgIDE2LCAweGFiNDAsIDAsIHsweDA4LDB4YjAsMHgwMiwweGM5LDB4NDIsMHg4YiwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgyMiwweDA0LDB4MDAsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGFiNTAsIDAsIHsweGEwLDB4YzAsMHg0OSwweDMwLDB4MDIsMHg0NSwweDQwLDB4OTMsMHhjMCwweGE4LDB4ZDQsMHgwMCwweDM1LDB4MDIsMHhjOCwweDA0IH0gfSwKLXsgIDE2LCAweGFiNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWMsMHgwMCwweGJiLDB4MDAsMHgzMSwweGMwIH0gfSwKLXsgIDE2LCAweGFiNzAsIDAsIHsweDBlLDB4YjAsMHgyMywweGNkLDB4MDAsMHhkZiwweDAwLDB4MzcsMHhjMCwweDBlLDB4ZjAsMHgwMSwweDY4LDB4MDAsMHhlMywweDAwIH0gfSwKLXsgIDE2LCAweGFiODAsIDAsIHsweDMzLDB4YzAsMHgxYywweGYwLDB4MDMsMHg0NSwweDAwLDB4ZGEsMHhjOCwweDkyLDB4ZDQsMHgyYywweGI0LDB4MDMsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGFiOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTUsMHgyMCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGFiYTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGFkLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGFiYjAsIDAsIHsweDdlLDB4YzAsMHgxZiwweDMwLDB4MDMsMHhhNCwweDgwLDB4ZTksMHgyMCwweDNjLDB4YzAsMHgwZiwweDMyLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGFiYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGM3LDB4MDAsMHgzMywweGMyIH0gfSwKLXsgIDE2LCAweGFiZDAsIDAsIHsweDJjLDB4ZjAsMHgwMywweDNlLDB4MjAsMHhkYiwweDAwLDB4MTMsMHhjMCwweDBjLDB4NzAsMHgwMywweDNjLDB4ODAsMHhlZiwweDA0IH0gfSwKLXsgIDE2LCAweGFiZTAsIDAsIHsweDczLDB4YzEsMHgwZiwweGYwLDB4MjIsMHgzMCwweDAwLDB4YzYsMHgwMCwweGIyLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGFiZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDAwLDB4NjksMHgwMCwweDhiLDB4NDQsMHhhMiwweGMxIH0gfSwKLXsgIDE2LCAweGFjMDAsIDAsIHsweDg4LDB4YjAsMHgwMywweDZjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDI4LDB4YjAsMHgwYSwweDJkLDB4MDAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGFjMTAsIDAsIHsweDYyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyNiwweDAyLDB4OGIsMHg4MCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDMsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGFjMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjgsMHgwMSwweDhhLDB4MDgsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGFjMzAsIDAsIHsweDA4LDB4YjIsMHgwMiwweDZjLDB4NDAsMHg5YiwweDAwLDB4MjgsMHhjMCwweDQ4LDB4YjAsMHgxNiwweDI5LDB4MDQsMHhiOSwweDAxIH0gfSwKLXsgIDE2LCAweGFjNDAsIDAsIHsweDIyLDB4YzAsMHg0OSwweGIwLDB4MDYsMHhhZSwweDA5LDB4OGIsMHg4MCwweDIyLDB4ZTAsMHg0OCwweGIwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGFjNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDAsMHgwMiwweDgyLDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGFjNjAsIDAsIHsweDg4LDB4YjAsMHgwMiwweDQ0LDB4MDAsMHg4MywweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDA4LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweGFjNzAsIDAsIHsweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMsMHg4MCwweDIwLDB4ZTAsMHgwOCwweDMwLDB4MGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGFjODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NjQsMHgwMCwweGNhLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGFjOTAsIDAsIHsweDBjLDB4YjIsMHgwMywweDJjLDB4MDAsMHhkZiwweDAwLDB4M2IsMHhjMCwweDRjLDB4ZjUsMHgxMywweDJjLDB4MDQsMHhlZiwweDAwIH0gfSwKLXsgIDE2LCAweGFjYTAsIDAsIHsweGEzLDB4YzAsMHgwZCwweGYwLDB4MDMsMHhhOCwweDQwLDB4Y2IsMHgwMCwweGIyLDB4MDAsMHgyYywweGIwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGFjYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZjAsMHgwMCwweGY0LDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGFjYzAsIDAsIHsweDBmLDB4YjEsMHgwMywweGYwLDB4MDAsMHhmZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGFjZDAsIDAsIHsweDNmLDB4YzAsMHgwNywweGYwLDB4MGIsMHg3YywweDA4LDB4ZmYsMHgwMSwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhhOCwweDA2IH0gfSwKLXsgIDE2LCAweGFjZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHhjNSwweGVkLDB4MzMsMHgzYiwweGNjIH0gfSwKLXsgIDE2LCAweGFjZjAsIDAsIHsweDBjLDB4ZjAsMHgwMywweDMwLDB4NDAsMHhmZiwweDI1LDB4M2YsMHhjYywweDBjLDB4ZjMsMHg4MywweDNjLDB4ZDAsMHhkZiwweDQ4IH0gfSwKLXsgIDE2LCAweGFkMDAsIDAsIHsweDM3LDB4MzAsMHg0YywweGYzLDB4MDMsMHhmZCwweDgwLDB4Y2YsMHgyOCwweDMzLDB4ZDgsMHgwYywweGYxLDB4MDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGFkMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWMsMHhkMCwweGJiLDB4MzEsMHgyMCwweGNjIH0gfSwKLXsgIDE2LCAweGFkMjAsIDAsIHsweDg4LDB4ZjMsMHg0MiwweDIwLDB4NTAsMHhiZiwweDkwLDB4MmYsMHhjNCwweDBhLDB4ZjYsMHgwMiwweDdkLDB4YzAsMHg4ZiwweDQwIH0gfSwKLXsgIDE2LCAweGFkMzAsIDAsIHsweDI2LDB4NDAsMHg4ZiwweGY2LDB4MDIsMHhmZCwweDAwLDB4ZmYsMHgwOCwweDM5LDB4YzgsMHgwOCwweGY2LDB4MDIsMHhhMCwweDA0IH0gfSwKLXsgIDE2LCAweGFkNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHg4MCwweGExLDB4MjAsMHgyOCwweGM5IH0gfSwKLXsgIDE2LCAweGFkNTAsIDAsIHsweDA4LDB4MzAsMHg5YSwweDAwLDB4MDksMHhiMywweDAwLDB4MmMsMHhjMCwweDIwLDB4MzAsMHgwMiwweDRjLDB4OTAsMHg4MywweDIwIH0gfSwKLXsgIDE2LCAweGFkNjAsIDAsIHsweDAyLDB4MDgsMHgwYiwweDMzLDB4MTIsMHhjZCwweDgwLDB4OTMsMHgyMCwweDI0LDB4ZDgsMHgwOCwweDM0LDB4MjIsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGFkNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4YWUsMHgwMCwweGJiLDB4MTAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGFkODAsIDAsIHsweDA4LDB4YjAsMHgwMiwweDI2LDB4MDEsMHgzYiwweDAxLDB4NmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweDRjLDB4MDgsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGFkOTAsIDAsIHsweGEyLDB4ODksMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4YWIsMHgwMCwweDZhLDB4YzEsMHgyOCwweGIwLDB4MDIsMHhiMCwweDA0IH0gfSwKLXsgIDE2LCAweGFkYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4NmUsMHgwMCwweGU4LDB4YzEsMHgzYSwweGMwIH0gfSwKLXsgIDE2LCAweGFkYjAsIDAsIHsweDJjLDB4YjAsMHg0MywweDI2LDB4MDAsMHhmYiwweDA2LDB4M2UsMHhjMSwweDBjLDB4YjAsMHgwYiwweDJjLDB4MDIsMHhjYiwweDAwIH0gfSwKLXsgIDE2LCAweGFkYzAsIDAsIHsweDM0LDB4MjIsMHg5ZiwweGIwLDB4NDMsMHhlYywweDAwLDB4OWIsMHgwMiwweDM2LDB4YzEsMHg4YywweGIwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGFkZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmMsMHgwMCwweGZjLDB4ODAsMHgzZCwweGQwIH0gfSwKLXsgIDE2LCAweGFkZTAsIDAsIHsweDJmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmYiwweDAwLDB4M2QsMHhjMCwweDA3LDB4MzAsMHgwMywweGJjLDB4MDAsMHhlZiwweDA0IH0gfSwKLXsgIDE2LCAweGFkZjAsIDAsIHsweDNmLDB4ZTAsMHg1ZSwweGIwLDB4MDEsMHhmYywweDAwLDB4ZmYsMHgwMCwweDFiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGFlMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGNiLDB4MDEsMHgzZSwweGM5IH0gfSwKLXsgIDE2LCAweGFlMTAsIDAsIHsweDBjLDB4YjAsMHgxNywweDIwLDB4ODQsMHhlYiwweDAwLDB4YjIsMHhjMSwweDBkLDB4YjAsMHgwMywweDZjLDB4MDAsMHhjMywweDAwIH0gfSwKLXsgIDE2LCAweGFlMjAsIDAsIHsweDMyLDB4NTAsMHgwZiwweGIwLDB4MDMsMHgwYywweDQwLDB4YzMsMHgwMCwweDdlLDB4YzAsMHgwYywweDMwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGFlMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweDhhLDB4NTgsMHgyZSwweGUwIH0gfSwKLXsgIDE2LCAweGFlNDAsIDAsIHsweDQ4LDB4ZjAsMHgwMiwweDJkLDB4MDAsMHhlZiwweDAxLDB4MjMsMHhjMCwweDA4LDB4ZjAsMHgyMiwweDNjLDB4MDQsMHg4ZiwweDYwIH0gfSwKLXsgIDE2LCAweGFlNTAsIDAsIHsweDM2LDB4NTQsMHgwYiwweGYwLDB4MGEsMHgzZCwweDQwLDB4OGYsMHgwMCwweDJmLDB4YzAsMHgwOCwweGYwLDB4MDMsMHg3MiwweDAwIH0gfSwKLXsgIDE2LCAweGFlNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDAsMHgwMCwweDg5LDB4ODAsMHgyYywweDEwIH0gfSwKLXsgIDE2LCAweGFlNzAsIDAsIHsweDA4LDB4YjAsMHgwMiwweDQ5LDB4MDAsMHhhMywweGEwLDB4MjQsMHhjMCwweDA5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweGM5IH0gfSwKLXsgIDE2LCAweGFlODAsIDAsIHsweDIwLDB4OTAsMHg0MiwweDMwLDB4MTIsMHg0ZCwweDAwLDB4ODMsMHgwMCwweDZhLDB4YzAsMHgwOSwweDMwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGFlOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTYsMHgwMCwweDg1LDB4ODAsMHg2ZCwweDYyIH0gfSwKLXsgIDE2LCAweGFlYTAsIDAsIHsweDA4LDB4N2UsMHgwMiwweDU2LDB4NDAsMHgyNywweDgwLDB4MjUsMHhlMCwweDE5LDB4NzgsMHgwNiwweDBlLDB4MDAsMHg4MywweDgwIH0gfSwKLXsgIDE2LCAweGFlYjAsIDAsIHsweDYxLDB4YTAsMHgwYiwweDc4LDB4MDIsMHg0ZSwweDAwLDB4ODcsMHg4MiwweDZkLDB4ZTAsMHgwOSwweDc5LDB4MDIsMHg0OCwweDAwIH0gfSwKLXsgIDE2LCAweGFlYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MmMsMHgwMiwweGMzLDB4NjEsMHgzYywweDg4IH0gfSwKLXsgIDE2LCAweGFlZDAsIDAsIHsweDJjLDB4YmEsMHgxMiwweDQ5LDB4MTAsMHhlMywweDJjLDB4MzYsMHhjMCwweDBkLDB4MzAsMHg1MywweDRjLDB4NDQsMHhjMywweDAwIH0gfSwKLXsgIDE2LCAweGFlZTAsIDAsIHsweDIwLDB4MDEsMHgwZiwweDMxLDB4MDMsMHg0YywweDAwLDB4YzMsMHgwMSwweDNjLDB4YzAsMHgyZCwweGIxLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGFlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDAwIH0gfSwKLXsgIDE2LCAweGFmMDAsIDAsIHsweDRmLDB4ZjEsMHgwOSwweGIwLDB4MDAsMHhmZiwweDAwLDB4M2IsMHhjMCwweDBlLDB4ZjQsMHgwMSwweGZkLDB4MjQsMHhmZiwweDQwIH0gfSwKLXsgIDE2LCAweGFmMTAsIDAsIHsweGJmLDB4YzAsMHgwNywweGYwLDB4MDMsMHhiYywweDAwLDB4NmYsMHgxMCwweDNmLDB4YzQsMHgxZSwweGYxLDB4ODMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGFmMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4YzQsMHgwMCwweGU4LDB4MDQsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGFmMzAsIDAsIHsweDBjLDB4YjYsMHgwMywweGU4LDB4MDIsMHhjYiwweDAwLDB4MzYsMHhjYSwweDBmLDB4YjUsMHgwMywweGFkLDB4MDAsMHhmYiwweDIwIH0gfSwKLXsgIDE2LCAweGFmNDAsIDAsIHsweDNlLDB4NDAsMHgwZiwweGIzLDB4MDMsMHhlYywweDgwLDB4ZmIsMHhhOCwweDMyLDB4YzYsMHg4YywweGI2LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGFmNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OTQsMHgwMiwweGU2LDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGFmNjAsIDAsIHsweDA4LDB4NzMsMHgwMiwweGRjLDB4MDAsMHg4NywweDcwLDB4MmQsMHhkMCwweDBiLDB4ZjAsMHgwMiwweDFjLDB4ODQsMHhiNywweDIwIH0gfSwKLXsgIDE2LCAweGFmNzAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcwLDB4ODIsMHhkZCwweDI0LDB4YjcsMHg0MCwweDM0LDB4YzksMHgyOCwweDcyLDB4ODIsMHg5MiwweDA0IH0gfSwKLXsgIDE2LCAweGFmODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4YmUsMHgwMiwweGFjLDB4ODAsMHhhMSwweDIwIH0gfSwKLXsgIDE2LCAweGFmOTAsIDAsIHsweDA4LDB4NzksMHgwMCwweGNlLDB4MDQsMHg4NywweDgwLDB4NjUsMHhlMCwweDBiLDB4N2EsMHgwMiwweDllLDB4MDAsMHhiNywweDkwIH0gfSwKLXsgIDE2LCAweGFmYTAsIDAsIHsweDZkLDB4YTAsMHgwYiwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGFmYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4ZWQsMHg4MiwweGFiLDB4ZTAsMHgyMCwweGU0IH0gfSwKLXsgIDE2LCAweGFmYzAsIDAsIHsweDA4LDB4MzAsMHgwMiwweGVlLDB4MDQsMHg4MywweDAwLDB4MmMsMHhjMSwweDFiLDB4MzAsMHgwMiwweDBjLDB4MDgsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGFmZDAsIDAsIHsweDY0LDB4ZjYsMHgwYiwweGIwLDB4MDIsMHhjYywweDA0LDB4YjMsMHgwMCwweDI2LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg5MiwweDA0IH0gfSwKLXsgIDE2LCAweGFmZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YmIsMHg4MCwweGVlLDB4NDksMHgzMSwweGEwIH0gfSwKLXsgIDE2LCAweGFmZjAsIDAsIHsweDJjLDB4YTAsMHgwMywweGZhLDB4MDAsMHhjYSwweDAyLDB4MzYsMHg4MCwweDBmLDB4YTAsMHgwMywweGE4LDB4MDAsMHhmYSwweDAyIH0gfSwKLXsgIDE2LCAweGIwMDAsIDAsIHsweDNmLDB4OTAsMHgwZiwweGEwLDB4NjMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MjMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGIwMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwYSwweGU4LDB4MDAsMHgzZSwweDA4IH0gfSwKLXsgIDE2LCAweGIwMjAsIDAsIHsweDBmLDB4ODAsMHgwMywweGUzLDB4NTAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGIwMzAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAxLDB4ZjgsMHgwMSwweDdlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGIwNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHg0MCwweGM5LDB4YTEsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGIwNTAsIDAsIHsweDIwLDB4MTEsMHgwMSwweGE2LDB4NDAsMHhjOSwweDg0LDB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMywweDQ0LDB4MDAsMHg0MSwweDAwIH0gfSwKLXsgIDE2LCAweGIwNjAsIDAsIHsweDMyLDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg0YywweDEwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGIwNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODIsMHhhMiwweDQwIH0gfSwKLXsgIDE2LCAweGIwODAsIDAsIHsweDA4LDB4OWMsMHgwMiwweDI1LDB4MDAsMHg4OSwweGM4LDB4MjIsMHg0MCwweDA4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHg4OSwweDIwIH0gfSwKLXsgIDE2LCAweGIwOTAsIDAsIHsweDIyLDB4NjAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDEwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDMsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGIwYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDg5LDB4MDQsMHgyMiwweGNhIH0gfSwKLXsgIDE2LCAweGIwYjAsIDAsIHsweDBhLDB4OTAsMHgwYSwweDI1LDB4MDIsMHg4OSwweDIwLDB4MjAsMHg0MCwweDI4LDB4MTAsMHgwMiwweDY0LDB4MDEsMHhhOSwweDAwIH0gfSwKLXsgIDE2LCAweGIwYzAsIDAsIHsweDIyLDB4NGIsMHgwYiwweDkwLDB4MDIsMHgyNCwweDAxLDB4YjksMHgwMCwweDJlLDB4NDEsMHgyOCwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGIwZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg5MCwweDgxLDB4YTAsMHgyMCwweDQ4IH0gfSwKLXsgIDE2LCAweGIwZTAsIDAsIHsweDBhLDB4MzIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDAwLDB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4ZDAsMHhhMSwweDIwIH0gfSwKLXsgIDE2LCAweGIwZjAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDExLDB4MDIsMHgwNiwweDAwLDB4YjEsMHgzMSwweDJjLDB4NDgsMHgwOCwweDE0LDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGIxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MiwweGM4LDB4NTQsMHgzMiwweDE0IH0gfSwKLXsgIDE2LCAweGIxMTAsIDAsIHsweDBlLDB4ODUsMHgwMywweDIxLDB4NDQsMHhjOCwweDI4LDB4YjIsMHgxYSwweDRjLDB4ODYsMHg5MywweDYxLDB4MTQsMHhlOCwweDUwIH0gfSwKLXsgIDE2LCAweGIxMjAsIDAsIHsweDIyLDB4MTQsMHgwZiwweDg2LDB4ODMsMHgyMSwweDQwLDB4ZjAsMHg0MCwweDFlLDB4MTQsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGIxMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4NzQsMHg0NCwweGY1LDB4MTAsMHgzZiwweDQ0IH0gfSwKLXsgIDE2LCAweGIxNDAsIDAsIHsweDBkLDB4OTEsMHgwMywweDc0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg0OCwweDBiLDB4OTIsMHgwMywweGU0LDB4YzIsMHhkOSwweDEwIH0gfSwKLXsgIDE2LCAweGIxNTAsIDAsIHsweGJmLDB4NDAsMHgwZiwweDkyLDB4MDMsMHhlNSwweDA0LDB4ZjksMHgzMCwweDNlLDB4NDQsMHgwZiwweDk0LDB4NDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGIxNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgyMiwweGNkLDB4YTEsMHgzMywweDYxIH0gfSwKLXsgIDE2LCAweGIxNzAsIDAsIHsweDBjLDB4ZDgsMHhkMywweDM0LDB4MTAsMHhjZCwweGE4LDB4M2UsMHg2MCwweDhlLDB4OWMsMHg5MywweGE3LDB4MDgsMHhjZCwweDgwIH0gfSwKLXsgIDE2LCAweGIxODAsIDAsIHsweDMzLDB4NDAsMHgwZSwweDlhLDB4ZDMsMHgzNiwweGEwLDB4YzksMHg4MCwweDMyLDB4NjAsMHgwYywweDk5LDB4MDMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGIxOTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTMsMHg4OCwweDhhLDB4YTAsMHgyMCwweDI4IH0gfSwKLXsgIDE2LCAweGIxYTAsIDAsIHsweDA4LDB4ODAsMHgyMiwweDIwLDB4MTIsMHg4OCwweDQwLDB4MmMsMHgyOCwweDA4LDB4OGEsMHgwMiwweDIyLDB4MDAsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGIxYjAsIDAsIHsweDIyLDB4MDAsMHgwYiwweDhjLDB4MDMsMHgyMSwweDAwLDB4ODgsMHhkMCwweGEyLDB4M2UsMHgyOCwweDhkLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGIxYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4Y2UsMHgyMCwweGExLDB4NDgsMHgyMCwweDUyIH0gfSwKLXsgIDE2LCAweGIxZDAsIDAsIHsweDI5LDB4MTAsMHgwMiwweDI0LDB4MDMsMHg4MSwweDAwLDB4MmMsMHg1MiwweDBhLDB4MTAsMHgxMiwweDg1LDB4MTAsMHg5MSwweDQwIH0gfSwKLXsgIDE2LCAweGIxZTAsIDAsIHsweGE0LDB4NDAsMHgwYSwweDEyLDB4ODIsMHg0NCwweDAwLDB4OTEsMHgyOCwweDI0LDB4NDAsMHgyOCwweDEyLDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGIxZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwMCwweGE5LDB4MTQsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGIyMDAsIDAsIHsweDA5LDB4OTAsMHgwMiwweGE0LDB4MDEsMHg4OSwweDA0LDB4MmMsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg5OSwweDAwIH0gfSwKLXsgIDE2LCAweGIyMTAsIDAsIHsweDIyLDB4NDQsMHg0YiwweDEwLDB4NDIsMHgyNCwweDE0LDB4OTksMHgwMCwweDI2LDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGIyMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHg0MCwweGU5LDB4NDAsMHhiMiwweDc4IH0gfSwKLXsgIDE2LCAweGIyMzAsIDAsIHsweDBkLDB4OTAsMHgwYiwweDI0LDB4MjIsMHhjOSwweDAzLDB4M2UsMHg0MSwweDBlLDB4OTAsMHgwMywweGE0LDB4MDIsMHhkOSwweDAwIH0gfSwKLXsgIDE2LCAweGIyNDAsIDAsIHsweDE2LDB4NTgsMHgwNiwweDkwLDB4MGIsMHg2NCwweDAyLDB4ZDksMHgwMCwweDM2LDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGIyNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4ODQsMHgwMCwweGQ5LDB4ODAsMHgzZSwweDRhIH0gfSwKLXsgIDE2LCAweGIyNjAsIDAsIHsweDBlLDB4OTAsMHgwMywweDY0LDB4MjAsMHhmOSwweDA4LDB4M2UsMHg0MSwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlMSwweDA4IH0gfSwKLXsgIDE2LCAweGIyNzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZTEsMHgwMCwweDM4LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGIyODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOSwweGYwLDB4NDAsMHhiMCwweDEwIH0gfSwKLXsgIDE2LCAweGIyOTAsIDAsIHsweDRjLDB4MDAsMHgwYiwweDIwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgwMCwweDFjLDB4MDAsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGIyYTAsIDAsIHsweDM2LDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGIyYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MjgsMHgwMCwweDNlLDB4ODgsMHgyMywweGEyIH0gfSwKLXsgIDE2LCAweGIyYzAsIDAsIHsweDQ4LDB4ZTAsMHgwMCwweDE5LDB4ODAsMHhiZSwweDg4LDB4MmUsMHg4MCwweDBkLDB4YTAsMHg0MiwweGU4LDB4MDAsMHg4ZSwweDAwIH0gfSwKLXsgIDE2LCAweGIyZDAsIDAsIHsweDIzLDB4OTAsMHgwOCwweGEwLDB4MGEsMHgzYSwweDAwLDB4ZGEsMHgwMCwweDM2LDB4ODAsMHgwYiwweGEwLDB4MGEsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGIyZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4ODAsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweGIyZjAsIDAsIHsweDI4LDB4MzAsMHhjMiwweDBmLDB4MTAsMHhiMywweDQwLDB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweGVjLDB4MTEsMHg4MywweDQwIH0gfSwKLXsgIDE2LCAweGIzMDAsIDAsIHsweDI4LDB4ZDIsMHgwYSwweDMwLDB4MDIsMHgwYywweGMwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGIzMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHgwMCwweGI2LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGIzMjAsIDAsIHsweDA4LDB4MjAsMHhjMiwweDFjLDB4MTAsMHhiNSwweDAwLDB4MmQsMHhjOCwweDBhLDB4NzIsMHgwMiwweGRjLDB4NDAsMHg4NSwweDA4IH0gfSwKLXsgIDE2LCAweGIzMzAsIDAsIHsweDI5LDB4YTIsMHgxYSwweDcyLDB4MjIsMHgwYywweDAwLDB4OTMsMHgzMCwweDA1LDB4YzQsMHgwYiwweDMyLDB4MjIsMHgyOCwweDAwIH0gfSwKLXsgIDE2LCAweGIzNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MTYsMHgwMCwweGIyLDB4ODAsMHgzMSwweDIwIH0gfSwKLXsgIDE2LCAweGIzNTAsIDAsIHsweDBjLDB4NTgsMHgwMywweDFlLDB4MDAsMHhmNywweDgwLDB4MzksMHhmOCwweDBiLDB4N2MsMHgyMiwweGNlLDB4NDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGIzNjAsIDAsIHsweDliLDB4NjAsMHgyZSwweDNiLDB4MDMsMHgxYSwweDAwLDB4YzcsMHhhOCwweDExLDB4ZTAsMHgwZiwweDc4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGIzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YTQsMHgwMCwweGZhLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGIzODAsIDAsIHsweDBmLDB4OTAsMHgyMywweGU4LDB4MDAsMHhmYiwweDAwLDB4M2UsMHhkMCwweDJkLDB4YjYsMHgwMywweGVkLDB4MDIsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGIzOTAsIDAsIHsweDMyLDB4NDAsMHgwZCwweGIwLDB4MDcsMHhlYywweDAwLDB4ZmIsMHg2MCwweDNlLDB4YzgsMHgwZiwweGI1LDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGIzYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzMywweGEwIH0gfSwKLXsgIDE2LCAweGIzYjAsIDAsIHsweDBjLDB4ZjgsMHgwYiwweDMyLDB4NDAsMHhjZSwweDgxLDB4MzcsMHhmMCwweDBjLDB4YmMsMHgwMywweGZlLDB4MDAsMHhmZiwweDg0IH0gfSwKLXsgIDE2LCAweGIzYzAsIDAsIHsweDMzLDB4ZTAsMHgyYywweGY4LDB4ODMsMHhlNiwweDAyLDB4Y2YsMHg4NSwweDMzLDB4ZjAsMHgwYywweGZjLDB4MDMsMHgwMCwweDE0IH0gfSwKLXsgIDE2LCAweGIzZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweGJlLDB4MDAsMHgzNSwweGM2IH0gfSwKLXsgIDE2LCAweGIzZTAsIDAsIHsweDI4LDB4MzAsMHgwMiwweDMwLDB4NDAsMHg4NywweDAwLDB4MjMsMHhjMCwweDA4LDB4N2EsMHgwMiwweGRjLDB4MDAsMHhiZSwweDAwIH0gfSwKLXsgIDE2LCAweGIzZjAsIDAsIHsweDIzLDB4YzAsMHgwOCwweDcwLDB4MTIsMHhmZSwweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGI0MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTUsMHgyMCwweGI2LDB4MDAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGI0MTAsIDAsIHsweDA4LDB4MzEsMHgwMiwweDVjLDB4MDEsMHg4NywweDAwLDB4MjUsMHhjMCwweDA4LDB4NzIsMHgwMiwweGRjLDB4MDAsMHhiNiwweDAwIH0gfSwKLXsgIDE2LCAweGI0MjAsIDAsIHsweDIxLDB4ZDAsMHgwOSwweDcwLDB4MDIsMHhkNCwweDA4LDB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGI0MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4YzQsMHgwMCwweGIwLDB4ZTAsMHgyNCwweDYwIH0gfSwKLXsgIDE2LCAweGI0NDAsIDAsIHsweDA4LDB4MjAsMHgwNiwweDQ4LDB4MDEsMHg4MCwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDQsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGI0NTAsIDAsIHsweDIwLDB4ODQsMHgwYiwweDMwLDB4MDIsMHhlOCwweDAwLDB4OWIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGI0NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWMsMHgwMCwweGI5LDB4ZTAsMHgzMiwweDgwIH0gfSwKLXsgIDE2LCAweGI0NzAsIDAsIHsweDZjLDB4YjAsMHgyMywweDZmLDB4MDAsMHhjMywweDAwLDB4MzcsMHhjMSwweDNjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGI0ODAsIDAsIHsweGIwLDB4YzAsMHgwOSwweGYwLDB4MDMsMHhlYywweDEwLDB4ZGYsMHgwMCwweDczLDB4YzAsMHgwYywweGYwLDB4MGIsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGI0OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgxMCwweGY4LDB4MDAsMHgzZSwweDQyIH0gfSwKLXsgIDE2LCAweGI0YTAsIDAsIHsweDBmLDB4MjQsMHgwMywweGE4LDB4NjAsMHhmOCwweDAwLDB4M2MsMHhjMSwweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOSwweDQwIH0gfSwKLXsgIDE2LCAweGI0YjAsIDAsIHsweDNlLDB4ODAsMHgwNCwweGIwLDB4MjMsMHhlMSwweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGI0YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjQsMHgwMCwweGVlLDB4MDAsMHgzZCwweDMwIH0gfSwKLXsgIDE2LCAweGI0ZDAsIDAsIHsweDBjLDB4YzAsMHgwMywweDE0LDB4MDAsMHhjYywweGEwLDB4YjMsMHhjMCwweDRjLDB4NzAsMHgwMywweDVjLDB4MTAsMHhkZiwweDAwIH0gfSwKLXsgIDE2LCAweGI0ZTAsIDAsIHsweDNmLDB4MDAsMHgwYywweGYwLDB4MDMsMHhmOCwweDAwLDB4Y2YsMHgwMCwweDIzLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDQwIH0gfSwKLXsgIDE2LCAweGI0ZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NjQsMHgwMCwweGJhLDB4ODEsMHgyZSwweDU4IH0gfSwKLXsgIDE2LCAweGI1MDAsIDAsIHsweDA4LDB4ODgsMHgwMiwweDI3LDB4ODAsMHg4OSwweDIwLDB4MjIsMHhjMCwweDI4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4OCwweDgzIH0gfSwKLXsgIDE2LCAweGI1MTAsIDAsIHsweDJlLDB4MjAsMHgwNSwweGIwLDB4NjIsMHhlMywweDAwLDB4OGIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDMsMHg2MCwweDQwIH0gfSwKLXsgIDE2LCAweGI1MjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjYsMHgwMCwweGI5LDB4ODEsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGI1MzAsIDAsIHsweDA4LDB4OGMsMHgwNiwweDI2LDB4MDAsMHg4OCwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgxNiwweDZjLDB4MDAsMHg5OCwweDg4IH0gfSwKLXsgIDE2LCAweGI1NDAsIDAsIHsweDJlLDB4MjAsMHgwOCwweGIwLDB4MDQsMHhlMywweDAxLDB4MGIsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGI1NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweGIwLDB4MDAsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGI1NjAsIDAsIHsweDI4LDB4MDAsMHgwZSwweDAwLDB4MTAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzIsMHgwMiwweDBjLDB4MDAsMHg4MCwweDA0IH0gfSwKLXsgIDE2LCAweGI1NzAsIDAsIHsweDJlLDB4MjAsMHgwOSwweDMwLDB4MDIsMHhjNCwweDEyLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGI1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGZhLDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGI1OTAsIDAsIHsweDJjLDB4OTEsMHgwMywweDIwLDB4MDAsMHg4YSwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhkOCwweDAwIH0gfSwKLXsgIDE2LCAweGI1YTAsIDAsIHsweDJlLDB4NDAsMHgwYywweGYwLDB4MDMsMHhlMCwweDgwLDB4Y2YsMHgwMCwweDNiLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGI1YjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZmMsMHgwMCwweGZjLDB4MDEsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGI1YzAsIDAsIHsweDBmLDB4YzAsMHgxMywweGYwLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMSwweDBmLDB4ZjQsMHgyMywweGZjLDB4MDgsMHhmYywweDAwIH0gfSwKLXsgIDE2LCAweGI1ZDAsIDAsIHsweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDQwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGI1ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgyMCwweGNkLDB4MTAsMHgzOSwweGM4IH0gfSwKLXsgIDE2LCAweGI1ZjAsIDAsIHsweDBkLDB4YzEsMHgwMywweDNjLDB4ODAsMHhlZiwweDkwLDB4MjMsMHhkOCwweDBmLDB4ZjgsMHgwMCwweGZlLDB4MDAsMHhjZiwweDgwIH0gfSwKLXsgIDE2LCAweGI2MDAsIDAsIHsweDFmLDB4ZDAsMHgwZiwweGY5LDB4MDMsMHhmZiwweDAwLDB4ZTcsMHhjMCwweDMzLDB4YzQsMHgwZiwweGYwLDB4MDMsMHhiMCwweDAwIH0gfSwKLXsgIDE2LCAweGI2MTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDEwLDB4ZmUsMHgwMiwweDg5LDB4NDAsMHgyMywweGYwIH0gfSwKLXsgIDE2LCAweGI2MjAsIDAsIHsweDA4LDB4ODUsMHgxMCwweDNjLDB4MDAsMHg4YiwweDAwLDB4YTMsMHhkYywweDRiLDB4YjIsMHg4MiwweGVjLDB4MjAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGI2MzAsIDAsIHsweDI2LDB4YzAsMHg0YiwweGIwLDB4MDIsMHhlYywweDEwLDB4YjksMHgwNCwweDJhLDB4YzksMHgwYiwweGI1LDB4ODAsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGI2NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4Y2MsMHgwMCwweDgxLDB4NjQsMHgyOCwweGM0IH0gfSwKLXsgIDE2LCAweGI2NTAsIDAsIHsweDA5LDB4YjIsMHgwYSwweDBjLDB4ZjAsMHhhMywweDIwLDB4MjAsMHhjOCwweDBiLDB4MzIsMHgwMiwweGVjLDB4MDIsMHg4MywweDA4IH0gfSwKLXsgIDE2LCAweGI2NjAsIDAsIHsweDJjLDB4YzgsMHgwOSwweDMyLDB4MDIsMHhjYywweDgwLDB4YWIsMHhhMCwweDIwLDB4YzgsMHgwYiwweDMyLDB4MDAsMHhiMiwweDAxIH0gfSwKLXsgIDE2LCAweGI2NzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgxMCwweDg5LDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGI2ODAsIDAsIHsweDA4LDB4YjIsMHgxMiwweDJjLDB4MDIsMHgwYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4YjgsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGI2OTAsIDAsIHsweDI2LDB4YzAsMHg0YiwweGIwLDB4NDYsMHhlYywweDAwLDB4YjksMHgwMCwweDBhLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGI2YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhkMCwweDE1LDB4ZWMsMHgxMCwweGM5LDB4ZTAsMHgzYSwweGMwIH0gfSwKLXsgIDE2LCAweGI2YjAsIDAsIHsweDBkLDB4MjgsMHgwMywweDJjLDB4MDAsMHhlYiwweDEwLDB4MzIsMHhjMCwweDBmLDB4ODIsMHgwMywweGM0LDB4MDAsMHhjYiwweDAwIH0gfSwKLXsgIDE2LCAweGI2YzAsIDAsIHsweDNlLDB4YzEsMHgwZiwweGIwLDB4MDYsMHhlYywweDA4LDB4ZTksMHgwMCwweGIyLDB4YzAsMHgwZiwweGIwLDB4MTMsMHg5MCwweDA0IH0gfSwKLXsgIDE2LCAweGI2ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4OWMsMHgwMCwweGY1LDB4YTAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGI2ZTAsIDAsIHsweDBmLDB4ZTgsMHgwMywweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGI2ZjAsIDAsIHsweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGI3MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDEwLDB4YWMsMHgwMCwweGY5LDB4NDAsMHgzNCwweGMwIH0gfSwKLXsgIDE2LCAweGI3MTAsIDAsIHsweDBkLDB4YjQsMHgwMywweDJjLDB4MDAsMHhkYiwweDQwLDB4M2UsMHhjMCwweDJjLDB4ODAsMHgwMywweDY0LDB4MDgsMHhmYiwweDEwIH0gfSwKLXsgIDE2LCAweGI3MjAsIDAsIHsweDNlLDB4YzYsMHg4ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHg4MCwweDMyLDB4YzAsMHgwYywweGIwLDB4MGIsMHgxNCwweDA0IH0gfSwKLXsgIDE2LCAweGI3MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4M2UsMHgyMCwweGU5LDB4YzgsMHgzNywweGQ0IH0gfSwKLXsgIDE2LCAweGI3NDAsIDAsIHsweDQ4LDB4YWEsMHgyMiwweDFjLDB4MDAsMHg4YiwweDAwLDB4NmYsMHhlMCwweDA4LDB4ODUsMHg4MiwweGVkLDB4NDAsMHhiYiwweDg0IH0gfSwKLXsgIDE2LCAweGI3NTAsIDAsIHsweDJmLDB4YzAsMHg0YiwweGI4LDB4MDMsMHhhZCwweDQwLDB4YjMsMHgwMCwweDIzLDB4ZDQsMHgwOCwweGY3LDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGI3NjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4NGMsMHgwMCwweGIxLDB4NjQsMHhhNCwweGMwIH0gfSwKLXsgIDE2LCAweGI3NzAsIDAsIHsweDA5LDB4MjAsMHgwYSwweDBjLDB4MDQsMHhiOCwweDAwLDB4NmMsMHhjMCwweDA4LDB4MzgsMHgwMiwweGM4LDB4NDAsMHhiMywweDgwIH0gfSwKLXsgIDE2LCAweGI3ODAsIDAsIHsweDJjLDB4ZDEsMHgwYiwweDMwLDB4MDIsMHhjYywweDA0LDB4YjMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHgzYSwweDAwIH0gfSwKLXsgIDE2LCAweGI3OTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiMCwweDAxLDB4MWUsMHgwMCwweGE1LDB4ODAsMHgyNSwweGUwIH0gfSwKLXsgIDE2LCAweGI3YTAsIDAsIHsweDg4LDB4M2EsMHgxMiwweDFlLDB4MDAsMHhhNiwweDkwLDB4MmQsMHhlMiwweDA4LDB4NzksMHgwMiwweGRhLDB4MDAsMHhiNywweDgyIH0gfSwKLXsgIDE2LCAweGI3YjAsIDAsIHsweDJkLDB4ZTAsMHgwMywweDc4LDB4ODIsMHg5ZSwweDAwLDB4YmMsMHhjMSwweDI5LDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgyYywweDEwIH0gfSwKLXsgIDE2LCAweGI3YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OSwweDA4LDB4MGMsMHgwMCwweGYzLDB4MDAsMHgzNCwweGMwIH0gfSwKLXsgIDE2LCAweGI3ZDAsIDAsIHsweDBkLDB4M2UsMHgwMywweDBjLDB4MDAsMHhmMCwweDQwLDB4MmUsMHhjMCwweDBjLDB4MzAsMHg0MywweGM4LDB4MDAsMHhmMywweDAwIH0gfSwKLXsgIDE2LCAweGI3ZTAsIDAsIHsweDNjLDB4YzAsMHgwNywweDMwLDB4MDMsMHhjYywweDgwLDB4ZjIsMHgwMCwweDM4LDB4YzAsMHgwYywweDMwLDB4MDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGI3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE5LDB4YmQsMHgyMCwweGY3LDB4MDAsMHgzZiwweGMyIH0gfSwKLXsgIDE2LCAweGI4MDAsIDAsIHsweDBmLDB4ZjEsMHgwYiwweGRjLDB4MjAsMHhkZSwweDA0LDB4M2YsMHhkMiwweDA3LDB4ZjAsMHgxMywweGY4LDB4NDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGI4MTAsIDAsIHsweDNmLDB4YzAsMHgwNywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDM3LDB4YzAsMHgwZiwweDcwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGI4MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhYSwweDA1LDB4Y2YsMHgwMCwweGRjLDB4MDAsMHgzZSwweGNhIH0gfSwKLXsgIDE2LCAweGI4MzAsIDAsIHsweDBmLDB4YTAsMHgwMCwweGFjLDB4OTIsMHhjOSwweDAwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgxMSwweGE0LDB4MDgsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGI4NDAsIDAsIHsweDJlLDB4YzAsMHg0ZiwweGIwLDB4MjMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweGI4NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDkxLDB4OWMsMHgwMCwweDg0LDB4MDAsMHgwMSwweGMwIH0gfSwKLXsgIDE2LCAweGI4NjAsIDAsIHsweDRiLDB4NzAsMHgyMiwweDFjLDB4YzAsMHg4NywweDAwLDB4MjEsMHhjMCwweDRiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhiNywweDAxIH0gfSwKLXsgIDE2LCAweGI4NzAsIDAsIHsweDI1LDB4ZDgsMHgwYiwweDcwLDB4MjIsMHhkYywweDAwLDB4YjYsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcyLDB4MjIsMHhmMiwweDA0IH0gfSwKLXsgIDE2LCAweGI4ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OWUsMHg4MCwweDk3LDB4ODAsMHhhOSwweGUwIH0gfSwKLXsgIDE2LCAweGI4OTAsIDAsIHsweDBiLDB4ZjgsMHgwMiwweGNlLDB4MDgsMHg4NSwweDgwLDB4MjksMHhlOCwweDBiLDB4ZmMsMHgwMiwweDE3LDB4MDAsMHhiNywweDgwIH0gfSwKLXsgIDE2LCAweGI4YTAsIDAsIHsweDJkLDB4ZTAsMHg4YiwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjQsMHhjMCwweDJkLDB4ZTgsMHgwYiwweDc5LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGI4YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDgsMHhhMCwweGMwIH0gfSwKLXsgIDE2LCAweGI4YzAsIDAsIHsweDhiLDB4M2MsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCwweDFiLDB4M2MsMHgwYSwweDBmLDB4MjksMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGI4ZDAsIDAsIHsweDI0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweGI4ZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGRlLDB4MDAsMHgzYSwweDgwIH0gfSwKLXsgIDE2LCAweGI4ZjAsIDAsIHsweDBmLDB4ZWEsMHgwMiwweGU4LDB4MDAsMHhjZSwweDAwLDB4M2EsMHg4MCwweDBmLDB4ZTAsMHgwMywweDM4LDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGI5MDAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZmUsMHgwMCwweDNlLDB4ODAsMHgwYiwweGEwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweGI5MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDQsMHhiYSwweDAxIH0gfSwKLXsgIDE2LCAweGI5MjAsIDAsIHsweDBmLDB4ODIsMHgwYiwweDgwLDB4MDQsMHhmOCwweDgwLDB4M2UsMHgwMCwweDBmLDB4ODYsMHgwMywweDYwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGI5MzAsIDAsIHsweDM2LDB4MDAsMHgwZiwweDgwLDB4MjMsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGI5NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMSwweGY5LDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGI5NTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHg0OSwweDAwLDB4MzIsMHg0MCwweDBiLDB4OTAsMHgwMywweDI0LDB4MDAsMHg0OSwweDAwIH0gfSwKLXsgIDE2LCAweGI5NjAsIDAsIHsweDNjLDB4NDAsMHgwZCwweDkwLDB4MDMsMHhlNCwweDA4LDB4YzksMHgwMCwweDNlLDB4NjAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGI5NzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDAsMHhhMiwweDY0IH0gfSwKLXsgIDE2LCAweGI5ODAsIDAsIHsweDBiLDB4MTgsMHgwMiwweDI1LDB4MDAsMHhkMSwweDUwLDB4MzYsMHg1MCwweDRlLDB4OTAsMHgwYSwweDI0LDB4MDIsMHg4OSwweDQwIH0gfSwKLXsgIDE2LCAweGI5OTAsIDAsIHsweDNhLDB4NTEsMHgwOCwweDk0LDB4MDIsMHhlNSwweDIyLDB4ODksMHg0NCwweDJlLDB4NjAsMHgyOCwweDkwLDB4MGEsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGI5YTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweGIxLDB4MDgsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGI5YjAsIDAsIHsweDRiLDB4OTIsMHg4MiwweGE1LDB4MDAsMHhhOSwweDA4LDB4MjIsMHg1MCwweDBhLDB4MTAsMHgwMiwweDBjLDB4MDAsMHhhOSwweDQwIH0gfSwKLXsgIDE2LCAweGI5YzAsIDAsIHsweDZlLDB4NTAsMHgwYiwweDk0LDB4MDIsMHhjNCwweDA0LDB4ODksMHg0NCwweDZjLDB4NDgsMHg4OCwweDEwLDB4MDIsMHg0NiwweDAwIH0gfSwKLXsgIDE2LCAweGI5ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MDQsMHgwMCwweGIxLDB4NDAsMHhlMCwweDQwIH0gfSwKLXsgIDE2LCAweGI5ZTAsIDAsIHsweDFiLDB4MTQsMHgwYSwweDA0LDB4MDAsMHhiOSwweDAwLDB4MjQsMHg0MCwweDFhLDB4MTAsMHgyMiwweDA0LDB4MDAsMHhhMSwweDAwIH0gfSwKLXsgIDE2LCAweGI5ZjAsIDAsIHsweDI4LDB4NDAsMHgwYSwweDEwLDB4MTIsMHhjNCwweDAwLDB4ODEsMHgwMiwweDZjLDB4NDAsMHgwOCwweDEyLDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGJhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwOCwweGIwLDB4MDAsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGJhMTAsIDAsIHsweDRmLDB4ODAsMHgwMiwweGExLDB4NTAsMHhlMCwweDUwLDB4MzIsMHgxNCwweDBlLDB4YTUsMHgyMywweDIxLDB4NDAsMHhlOCwweDUwIH0gfSwKLXsgIDE2LCAweGJhMjAsIDAsIHsweDNlLDB4MTQsMHgwZiwweDg1LDB4MDMsMHhlMSwweDQwLDB4YzgsMHg1MCwweDFlLDB4MTQsMHgwYywweDg1LDB4NDMsMHg2ZSwweDAzIH0gfSwKLXsgIDE2LCAweGJhMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhkOCwweDE5LDB4ZTUsMHgwMCwweGZkLDB4NDAsMHgzZSwweDUwIH0gfSwKLXsgIDE2LCAweGJhNDAsIDAsIHsweDBmLDB4NzQsMHgwMywweGE1LDB4MDAsMHg1ZCwweDAwLDB4M2UsMHg1MCwweDBhLDB4NTAsMHgxMywweGY0LDB4MDAsMHhkOSwweDAwIH0gfSwKLXsgIDE2LCAweGJhNTAsIDAsIHsweDNhLDB4NTAsMHgwZCwweDkwLDB4MTMsMHhlNCwweDAwLDB4ZmYsMHgwMCwweDNlLDB4NTAsMHgwZiwweDkxLDB4MDMsMHhhNiwweDA2IH0gfSwKLXsgIDE2LCAweGJhNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHg5MCwweGJkLDB4ZTgsMHgyMywweDZiIH0gfSwKLXsgIDE2LCAweGJhNzAsIDAsIHsweDBiLDB4ZGEsMHgwYiwweDM2LDB4ODAsMHhjOSwweDAwLDB4MzIsMHg2OCwweDQ2LDB4OTAsMHg0MywweGU0LDB4MDAsMHg0OSwweDAwIH0gfSwKLXsgIDE2LCAweGJhODAsIDAsIHsweDMyLDB4NjgsMHgwYywweDkwLDB4MDMsMHgyNCwweDQwLDB4ZjksMHgwMCwweDMyLDB4NjAsMHgwYywweDljLDB4MDMsMHhjNiwweDAxIH0gfSwKLXsgIDE2LCAweGJhOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg3OCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4ZTAsMHhhMiwweDExIH0gfSwKLXsgIDE2LCAweGJhYTAsIDAsIHsweDBiLDB4OGUsMHgwYSwweDIzLDB4MjIsMHg4OCwweDgwLDB4MmEsMHgzMSwweDI4LDB4ODgsMHgwMiwweDYyLDB4MDAsMHg4OCwweDgwIH0gfSwKLXsgIDE2LCAweGJhYjAsIDAsIHsweGEyLDB4MzAsMHgyOCwweDg4LDB4OGEsMHgyMiwweDAwLDB4YjgsMHhhOCwweGEyLDB4MzksMHgwOCwweGNhLDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGJhYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzUsMHgwOCwweDIxLDB4MDAsMHgwMCwweDQwIH0gfSwKLXsgIDE2LCAweGJhZDAsIDAsIHsweDAzLDB4MTQsMHg4MiwweDg1LDB4ODAsMHhhZCwweDA4LDB4MjEsMHg1MiwweDk4LDB4NTAsMHg4MiwweDM0LDB4MjMsMHg4NSwweDA4IH0gfSwKLXsgIDE2LCAweGJhZTAsIDAsIHsweDIxLDB4NTIsMHgwOCwweDUwLDB4MDYsMHg1NCwweDAwLDB4YjUsMHgyMCwweDIxLDB4NWEsMHgwOSwweDU0LDB4MDIsMHhkMiwweDAxIH0gfSwKLXsgIDE2LCAweGJhZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4YTQsMHgwMCwweGI5LDB4NjEsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGJiMDAsIDAsIHsweDBiLDB4OTAsMHgwNiwweDA0LDB4MDAsMHhhZCwweDAwLDB4NjksMHg0MCwweDA4LDB4ZDAsMHgwMiwweDc0LDB4MDAsMHg4NSwweDAwIH0gfSwKLXsgIDE2LCAweGJiMTAsIDAsIHsweDAxLDB4NDAsMHgwMCwweDcwLDB4MDYsMHg3NCwweDA0LDB4YjUsMHgwMCwweDIzLDB4NDAsMHgwOSwweGQwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGJiMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE0LDB4YTQsMHgwMCwweGU5LDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGJiMzAsIDAsIHsweDRmLDB4OTUsMHgwYiwweGE0LDB4MDAsMHhlOSwweDAwLDB4MzIsMHg0MCwweDhjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGJiNDAsIDAsIHsweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2NCwweDA4LDB4ZjksMHgwMCwweDMyLDB4NDAsMHgzZCwweDkwLDB4MDMsMHhlOCwweDA0IH0gfSwKLXsgIDE2LCAweGJiNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDAxLDB4YTQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGJiNjAsIDAsIHsweDRmLDB4OTAsMHg4YiwweGU0LDB4MDQsMHhkOSwweDAxLDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAsMHhkOSwweDAxIH0gfSwKLXsgIDE2LCAweGJiNzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGJiODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4NDAsMHgzNiwweDIwIH0gfSwKLXsgIDE2LCAweGJiOTAsIDAsIHsweDE3LDB4ODQsMHgwMywweDIwLDB4MjEsMHhjOCwweDAwLDB4N2UsMHgwMiwweDJjLDB4ODAsMHg0MywweDIwLDB4MDAsMHhlOCwweDAyIH0gfSwKLXsgIDE2LCAweGJiYTAsIDAsIHsweDNlLDB4MDEsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg0MCwweDFlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweGJiYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MmEsMHg4OCwweGI2LDB4MDIsMHgyMywweGEwIH0gfSwKLXsgIDE2LCAweGJiYzAsIDAsIHsweDBiLDB4ZWMsMHg0MiwweDJiLDB4MDAsMHhkMiwweDgwLDB4NmUsMHhiMSwweDA4LDB4YTAsMHgyMiwweDA4LDB4MDAsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGJiZDAsIDAsIHsweDNhLDB4ODAsMHg5ZiwweGEwLDB4MDMsMHhhOCwweDAwLDB4OGEsMHgwNCwweDJlLDB4ODAsMHgwYiwweGE4LDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGJiZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIyLDB4MDAsMHhhNCwweGUxIH0gfSwKLXsgIDE2LCAweGJiZjAsIDAsIHsweDhiLDB4YjQsMHgzMiwweDQ3LDB4NDUsMHg4MywweDkwLDB4MmMsMHhmNCwweDRiLDB4MzgsMHgxMiwweDBlLDB4NDQsMHhhMywweDAxIH0gfSwKLXsgIDE2LCAweGJjMDAsIDAsIHsweDJjLDB4YzAsMHg0YiwweDMwLDB4MDIsMHhjZSwweDAwLDB4OTMsMHgwMCwweDZjLDB4YzAsMHgwYiwweDM4LDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGJjMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHgwMCwweGI3LDB4NDQsMHgyMSwweGMyIH0gfSwKLXsgIDE2LCAweGJjMjAsIDAsIHsweDBiLDB4NTQsMHgwMiwweDU0LDB4MDUsMHg4NywweDAwLDB4MmMsMHg0MCwweDliLDB4NmMsMHgwMiwweDE4LDB4MTAsMHhhNywweDA0IH0gfSwKLXsgIDE2LCAweGJjMzAsIDAsIHsweDI5LDB4YzAsMHgwYSwweDcwLDB4MDIsMHg5YiwweDAwLDB4OTcsMHgwNCwweDBkLDB4ODAsMHgwYiwweDYwLDB4ODIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGJjNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGYzLDB4ODAsMHgzNSwweGUwIH0gfSwKLXsgIDE2LCAweGJjNTAsIDAsIHsweDBiLDB4MzgsMHgwMiwweDUyLDB4MTAsMHg4NCwweDgwLDB4MmQsMHhhMCwweDBmLDB4ZjgsMHgwYiwweDFlLDB4MDAsMHhlNiwweDgwIH0gfSwKLXsgIDE2LCAweGJjNjAsIDAsIHsweDFkLDB4YTAsMHgwYiwweDY4LDB4MDMsMHhmZSwweDAyLDB4ZDYsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDc4LDB4MDMsMHhlYSwweDAyIH0gfSwKLXsgIDE2LCAweGJjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYSwweDFkLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMxIH0gfSwKLXsgIDE2LCAweGJjODAsIDAsIHsweDhiLDB4OTAsMHgwYiwweDgwLDB4MGEsMHhiOCwweDAxLDB4MmUsMHgwMCwweDBjLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwIH0gfSwKLXsgIDE2LCAweGJjOTAsIDAsIHsweDNlLDB4YzAsMHgwZiwweGEwLDB4NDMsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4ODAsMHgwZiwweGE2LDB4MjMsMHhjMiwweDAyIH0gfSwKLXsgIDE2LCAweGJjYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGZlLDB4ODAsMHgzMywweDIwIH0gfSwKLXsgIDE2LCAweGJjYjAsIDAsIHsweDRlLDB4YzksMHgxMiwweGY2LDB4NTAsMHhlZiwweDkwLDB4M2YsMHhlMCwweDBjLDB4MTksMHgwMCwweGI2LDB4NDIsMHhjZiwweDIxIH0gfSwKLXsgIDE2LCAweGJjYzAsIDAsIHsweDNmLDB4ZTAsMHgwZSwweGY5LDB4MDIsMHhlNiwweGMwLDB4ZmYsMHg4MCwweDNmLDB4ZTAsMHg0YywweGRjLDB4MDMsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGJjZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhYSwweDExLDB4OTQsMHgwMCwweGI3LDB4MDAsMHg4MSwweDQwIH0gfSwKLXsgIDE2LCAweGJjZTAsIDAsIHsweDA4LDB4MDMsMHgwMiwweDE0LDB4YzQsMHg4NywweDAxLDB4MmQsMHhjOCwweDA4LDB4NmEsMHgxMiwweDM4LDB4NDAsMHg4NywweDAyIH0gfSwKLXsgIDE2LCAweGJjZjAsIDAsIHsweDJkLDB4YzAsMHgwOCwweDcxLDB4MTIsMHhkMiwweDgwLDB4YjcsMHgwMCwweDJkLDB4ODAsMHgwOCwweDYwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGJkMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGI3LDB4MTAsMHgyMSwweDgwIH0gfSwKLXsgIDE2LCAweGJkMTAsIDAsIHsweDA4LDB4ZjQsMHgxMiwweDk0LDB4MDQsMHhhNiwweDAwLDB4MmMsMHhjMCwweDE4LDB4ZDIsMHgwMiwweDE0LDB4NDgsMHg4NiwweDEwIH0gfSwKLXsgIDE2LCAweGJkMjAsIDAsIHsweDJkLDB4ODAsMHgwYSwweDYxLDB4MzIsMHhkNCwweDAwLDB4YjYsMHgxOCwweDJkLDB4YzQsMHgwOCwweDU4LDB4MDIsMHgwMCwweDEwIH0gfSwKLXsgIDE2LCAweGJkMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4YzQsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGJkNDAsIDAsIHsweDQwLDB4YjAsMHgyMiwweDA0LDB4MDAsMHg4MiwweDgxLDB4MGMsMHhjMCwweDA4LDB4MzAsMHgwYSwweDBhLDB4MDAsMHg4YSwweDAwIH0gfSwKLXsgIDE2LCAweGJkNTAsIDAsIHsweDJlLDB4YzAsMHgwOCwweGEwLDB4MDIsMHhjNCwweDAwLDB4YmIsMHgwMCwweDJlLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGJkNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWMsMHgwMCwweGZiLDB4MDAsMHhhMCwweGMwIH0gfSwKLXsgIDE2LCAweGJkNzAsIDAsIHsweDI0LDB4OTQsMHgyMywweGFjLDB4MTAsMHhlYiwweGEwLDB4MGUsMHhjMCwweDBjLDB4YjAsMHgwMiwweDJlLDB4MjAsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGJkODAsIDAsIHsweDJlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlYywweDAwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHg2YywweGEwLDB4MGIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGJkOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4Y2MsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGJkYTAsIDAsIHsweDg5LDB4OTAsMHgwMywweDJjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHg0MCwweDRmLDB4YTAsMHgwMywweDZkLDB4MDEsMHhmYiwweDQxIH0gfSwKLXsgIDE2LCAweGJkYjAsIDAsIHsweDNlLDB4YzAsMHg4ZiwweGI0LDB4MDMsMHhlOCwweDAwLDB4ZmIsMHgyMCwweDNlLDB4NTAsMHgwZiwweGE0LDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGJkYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGMzLDB4MjAsMHhiMiwweGMwIH0gfSwKLXsgIDE2LCAweGJkZDAsIDAsIHsweDBkLDB4ZDAsMHgwMywweDM4LDB4MDAsMHhjZCwweDAwLDB4M2YsMHg4MCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAyIH0gfSwKLXsgIDE2LCAweGJkZTAsIDAsIHsweDM2LDB4MDAsMHgwYywweGQwLDB4MDMsMHgzZiwweDA4LDB4ZmMsMHgwNCwweDEyLDB4YzAsMHgwYywweGEwLDB4MDMsMHhjMCwweDQ0IH0gfSwKLXsgIDE2LCAweGJkZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NmMsMHgwMiwweDhiLDB4YzgsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGJlMDAsIDAsIHsweDA4LDB4OTgsMHgwYSwweDJhLDB4NDAsMHg4OSwweDIwLDB4MmUsMHgwMSwweDhlLDB4YjAsMHgxMiwweGVjLDB4ODAsMHhiYiwweGYwIH0gfSwKLXsgIDE2LCAweGJlMTAsIDAsIHsweDIyLDB4ZTUsMHgwOCwweGJkLDB4MDIsMHgyZSwweDAwLDB4YmIsMHg5MCwweDIyLDB4ZWQsMHgwOCwweGEyLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGJlMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDEsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweGJlMzAsIDAsIHsweDQ5LDB4YTgsMHgxZSwweDA0LDB4MDAsMHg4YiwweDAxLDB4MmUsMHhjMCwweDQ5LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGJlNDAsIDAsIHsweDIyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyYywweDAwLDB4YjksMHgwMCwweDJhLDB4NDAsMHgwOCwweDgwLDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGJlNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHgwMCwweDgxLDB4MDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGJlNjAsIDAsIHsweDA4LDB4MjAsMHgwMiwweDA0LDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDBhLDB4MjAsMHg0MiwweGNjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGJlNzAsIDAsIHsweDIwLDB4YzAsMHgwMiwweDMwLDB4MDIsMHgwOCwweDg0LDB4YjMsMHgwNCwweDA4LDB4NDAsMHgwOCwweDIwLDB4MDIsMHhjMiwweDExIH0gfSwKLXsgIDE2LCAweGJlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweDhiLDB4MDAsMHhiMiwweDgwIH0gfSwKLXsgIDE2LCAweGJlOTAsIDAsIHsweDBkLDB4YjEsMHgwMywweDI0LDB4MDIsMHhjYiwweDAxLDB4M2UsMHhjMCwweDRkLDB4OTAsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGJlYTAsIDAsIHsweGIyLDB4MDAsMHgyZSwweDkwLDB4MGIsMHgyYywweDgwLDB4ZjgsMHgwMCwweGJhLDB4YzAsMHgyYywweDgwLDB4MDMsMHhjMCwweDAzIH0gfSwKLXsgIDE2LCAweGJlYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZjQsMHgwMCwweDdkLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGJlYzAsIDAsIHsweDBmLDB4NzIsMHgwMywweGQ0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBlLDB4ZjEsMHg0NywweGZjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGJlZDAsIDAsIHsweDNiLDB4YzAsMHgwZCwweGYwLDB4MTMsMHhmYywweDUwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGUwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGJlZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHhjNCwweGNjLDB4MzMsMHgzZiwweDA0IH0gfSwKLXsgIDE2LCAweGJlZjAsIDAsIHsweDJjLDB4ZjYsMHgwMywweDM4LDB4NjAsMHhjYywweDkwLDB4YjMsMHgyMCwweDBmLDB4ZjEsMHgyMywweGYwLDB4NjAsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweGJmMDAsIDAsIHsweDIzLDB4YzgsMHgwYywweGYyLDB4OGEsMHgzYywweDgxLDB4ZGYsMHgzMCwweDNmLDB4NjQsMHgwYywweGQ4LDB4MDMsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGJmMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTAsMHhjMiwweDhhLDB4MzAsMHgyZSwweDE4IH0gfSwKLXsgIDE2LCAweGJmMjAsIDAsIHsweDA4LDB4ZjUsMHgzMCwweGE1LDB4OTQsMHg1OCwweDIyLDB4MjIsMHgyMSwweDRiLDB4ZjMsMHgwMiwweGUxLDB4MDAsMHg5ZiwweDcwIH0gfSwKLXsgIDE2LCAweGJmMzAsIDAsIHsweDJiLDB4ZTQsMHgwYSwweGY0LDB4MTIsMHgxZCwweDQwLDB4YWYsMHg3MiwweDJjLDB4NDksMHgyZiwweDMwLDB4ODIsMHhhMCwweDA2IH0gfSwKLXsgIDE2LCAweGJmNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHg4MCwweDgwLDB4YTAsMHgyYywweDk4IH0gfSwKLXsgIDE2LCAweGJmNTAsIDAsIHsweDA4LDB4MzIsMHgyMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjgsMHgwMCwweDAzLDB4MzIsMHgwMiwweGMwLDB4ODQsMHhiMywweDBjIH0gfSwKLXsgIDE2LCAweGJmNjAsIDAsIHsweDIwLDB4YzAsMHg1OCwweDMyLDB4OTIsMHg4YywweDMwLDB4YTMsMHgyMCwweDJlLDB4YzAsMHg0OCwweDEyLDB4NDIsMHg2MiwweDAxIH0gfSwKLXsgIDE2LCAweGJmNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YTgsMHgwMCwweDhiLDB4MDAsMHgyZSwweDIwIH0gfSwKLXsgIDE2LCAweGJmODAsIDAsIHsweDA4LDB4YjAsMHgwYSwweDIwLDB4MDEsMHg5OCwweDAwLDB4MmEsMHgyMiwweDBiLDB4YjAsMHgwMiwweGU2LDB4MDAsMHg5YiwweDAwIH0gfSwKLXsgIDE2LCAweGJmOTAsIDAsIHsweDIyLDB4YzAsMHgwYSwweGIwLDB4MTIsMHhhYywweDA0LDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwMywweGIwLDB4MDIsMHhmMCwweDAwIH0gfSwKLXsgIDE2LCAweGJmYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4ZTUsMHgwMCwweGM4LDB4MDAsMHgzZSwweGIwIH0gfSwKLXsgIDE2LCAweGJmYjAsIDAsIHsweDBjLDB4YjAsMHgwMywweDI5LDB4MDAsMHhjOCwweDAwLDB4M2EsMHgyMCwweDRmLDB4YjAsMHgwMywweGUyLDB4MjAsMHhmYiwweDAxIH0gfSwKLXsgIDE2LCAweGJmYzAsIDAsIHsweGIwLDB4YzAsMHgwYywweGIwLDB4MDMsMHgyYywweDAwLDB4ZmIsMHgwMiwweDNjLDB4NDEsMHgwYywweDkwLDB4NDMsMHg0OCwweDA0IH0gfSwKLXsgIDE2LCAweGJmZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YTIsMHg4MCwweGZlLDB4NDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGJmZTAsIDAsIHsweDBmLDB4ZjAsMHg2MywweGVjLDB4MDAsMHhiZiwweGM0LDB4MTcsMHg0MiwweDBmLDB4ZjAsMHgwMywweGVjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGJmZjAsIDAsIHsweDFmLDB4YzEsMHgwZiwweGIwLDB4MDMsMHg1YywweDAwLDB4ZmIsMHgwMCwweDNmLDB4NDAsMHg0ZiwweGYwLDB4MDAsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGMwMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTUsMHgwMiwweGM4LDB4MDAsMHgzZSwweDkwIH0gfSwKLXsgIDE2LCAweGMwMTAsIDAsIHsweDJjLDB4YjAsMHgwYiwweDAxLDB4MDYsMHhjYiwweDAxLDB4M2UsMHg1MCwweDVmLDB4YjAsMHgxMywweDIxLDB4MTAsMHhjYiwweDAwIH0gfSwKLXsgIDE2LCAweGMwMjAsIDAsIHsweDdlLDB4YzAsMHgwYywweGIwLDB4MGIsMHgyYywweDAwLDB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwYywweDkwLDB4MDMsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGMwMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MjgsMHgwMSwweDhiLDB4ZDAsMHgyYywweDM0IH0gfSwKLXsgIDE2LCAweGMwNDAsIDAsIHsweDQ4LDB4ZmYsMHgwMiwweDMwLDB4MDAsMHhhYSwweDA0LDB4MmUsMHg2OSwweDBmLDB4ZjAsMHgwMywweDY4LDB4MTAsMHhkZiwweDAwIH0gfSwKLXsgIDE2LCAweGMwNTAsIDAsIHsweDJmLDB4ZDQsMHgwZCwweGYwLDB4MDIsMHgzZSwweDAwLDB4NWYsMHgwNCwweGI2LDB4YzAsMHgwOCwweGIwLDB4MDMsMHg3MiwweDAwIH0gfSwKLXsgIDE2LCAweGMwNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NjksMHg5MCwweDgxLDB4ODAsMHgyYywweDAwIH0gfSwKLXsgIDE2LCAweGMwNzAsIDAsIHsweDQ4LDB4YjgsMHgwMiwweDA4LDB4MDksMHg5OSwweDAwLDB4NGMsMHhiMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGMwODAsIDAsIHsweDJjLDB4YzAsMHgwOSwweGIwLDB4NDAsMHgwYywweDQwLDB4ODMsMHgwMCwweDAwLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGMwOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTYsMHgwMCwweDg0LDB4ODgsMHgyZCwweGU0IH0gfSwKLXsgIDE2LCAweGMwYTAsIDAsIHsweDQ4LDB4MzksMHgwMiwweDE2LDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCwweDBhLDB4N2IsMHgwNiwweDVlLDB4MDAsMHg5NywweDgwIH0gfSwKLXsgIDE2LCAweGMwYjAsIDAsIHsweDJkLDB4ZTIsMHgwOSwweDc4LDB4MDIsMHgxZSwweDkwLDB4OTcsMHg4MCwweDI1LDB4NjQsMHg4YSwweDc4LDB4MDIsMHg0OCwweDAwIH0gfSwKLXsgIDE2LCAweGMwYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGQsMHgwMCwweDgxLDB4MTAsMHgyYywweDk2IH0gfSwKLXsgIDE2LCAweGMwZDAsIDAsIHsweDA4LDB4MzEsMHgyMywweDBjLDB4MDAsMHg5MCwweDIwLDB4M2MsMHhjNCwweDFiLDB4YjgsMHgwMiwweDA4LDB4NDAsMHhjMywweDAwIH0gfSwKLXsgIDE2LCAweGMwZTAsIDAsIHsweDJjLDB4YzQsMHgwZCwweDMwLDB4MDMsMHgwZSwweDQwLDB4YzMsMHgxMCwweDMwLDB4YzAsMHg0ZSwweDEwLDB4MDcsMHgxYSwweDEyIH0gfSwKLXsgIDE2LCAweGMwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YmMsMHgwMCwweDdkLDB4MDUsMHgzZiwweGM1IH0gfSwKLXsgIDE2LCAweGMxMDAsIDAsIHsweDBmLDB4YjEsMHgwYiwweGY0LDB4MDAsMHhlZiwweDAwLDB4MWYsMHg0NSwweDBmLDB4ZjAsMHg0MywweGZjLDB4MDEsMHhmZiwweDQwIH0gfSwKLXsgIDE2LCAweGMxMTAsIDAsIHsweDNkLDB4YzQsMHgxZiwweGYwLDB4MDYsMHhmYywweDEwLDB4ZmYsMHgwMCwweDNiLDB4YzEsMHgyZCwweGYxLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGMxMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwNCwweGNiLDB4MDQsMHgzZSwweGEwIH0gfSwKLXsgIDE2LCAweGMxMzAsIDAsIHsweDQ0LDB4YjYsMHgwMywweDI4LDB4MDQsMHhjYiwweDgwLDB4MzIsMHg4MCwweDBmLDB4YjMsMHg5MywweDYwLDB4MDgsMHhmYiwweDIwIH0gfSwKLXsgIDE2LCAweGMxNDAsIDAsIHsweDNlLDB4ZDIsMHgxZiwweGIzLDB4MDMsMHgyZCwweDgwLDB4ZmIsMHg2MSwweDdlLDB4NDAsMHg4YywweDk4LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGMxNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4ODQsMHgwYywweDg2LDB4MDUsMHgyZCwweGMwIH0gfSwKLXsgIDE2LCAweGMxNjAsIDAsIHsweDA4LDB4ZjQsMHg4MiwweDhjLDB4OTAsMHg4NSwweDAwLDB4YTEsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDVjLDB4MDAsMHgzNywweDAwIH0gfSwKLXsgIDE2LCAweGMxNzAsIDAsIHsweDJkLDB4ZDAsMHgwYiwweDcxLDB4MDIsMHgxYywweGM4LDB4YjcsMHg0OCwweDJkLDB4NDAsMHgwYSwweDcwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGMxODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGExIH0gfSwKLXsgIDE2LCAweGMxOTAsIDAsIHsweDYwLDB4NzgsMHg0YSwweDE2LDB4ZDAsMHhhNywweDgwLDB4MjksMHhlMCwweDBiLDB4NzgsMHg1MiwweDk2LDB4MDEsMHhiNywweDkwIH0gfSwKLXsgIDE2LCAweGMxYTAsIDAsIHsweDJkLDB4ZTgsMHgwYiwweDdhLDB4MjIsMHg1ZSwweDQwLDB4YjcsMHhhMCwweDJmLDB4ZTEsMHg0OCwweDUwLDB4MjIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGMxYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgxMCwweDgzLDB4ODQsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGMxYzAsIDAsIHsweDA4LDB4MzAsMHgwMiwweGE0LDB4MTAsMHg4MywweGNiLDB4MjgsMHhlMCwweDBiLDB4MzAsMHgyYSwweDRmLDB4NDAsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweGMxZDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0YywweDEwLDB4YjMsMHgwMiwweDJjLDB4YzAsMHhhYSwweDMwLDB4MDIsMHgxMiwweDA0IH0gfSwKLXsgIDE2LCAweGMxZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YjgsMHgwMCwweGNlLDB4YTAsMHgzZiwweDgwIH0gfSwKLXsgIDE2LCAweGMxZjAsIDAsIHsweDRjLDB4YTAsMHgyYiwweDNhLDB4MDAsMHhjZSwweDQwLDB4M2IsMHhiOCwweDBmLDB4YTAsMHgwMywweGI5LDB4MDAsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweGMyMDAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHg2OCwweDAwLDB4ZmEsMHgwMCwweDdlLDB4ODAsMHgxYywweGEwLDB4MGIsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGMyMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwMiwweGY4LDB4MDAsMHgzZSwweDA0IH0gfSwKLXsgIDE2LCAweGMyMjAsIDAsIHsweDhmLDB4MDAsMHgwMywweGUwLDB4NGEsMHhmOCwweDEwLDB4MjYsMHgxOCwweDBmLDB4ODAsMHgwMywweGEwLDB4ODAsMHhmOCwweDAyIH0gfSwKLXsgIDE2LCAweGMyMzAsIDAsIHsweDNlLDB4MDAsMHg4ZiwweDAwLDB4MGIsMHhhMCwweDAwLDB4ZjgsMHgwMiwweDNlLDB4MDAsMHgwZiwweDgwLDB4MTMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGMyNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgyMCwweGM5LDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGMyNTAsIDAsIHsweDRkLDB4OTksMHgwMywweDI0LDB4MDAsMHhjOSwweDAyLDB4M2UsMHg2OCwweDBmLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhlOSwweDAwIH0gfSwKLXsgIDE2LCAweGMyNjAsIDAsIHsweDMwLDB4NDAsMHg4YywweDkwLDB4MDMsMHgwNCwweDQwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGMyNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgyMCwweDg5LDB4MDYsMHgyMiwweDUwIH0gfSwKLXsgIDE2LCAweGMyODAsIDAsIHsweDhiLDB4OWMsMHhjMiwweDI0LDB4MDAsMHhkOSwweDAxLDB4MmUsMHg0MCwweDBiLDB4OTAsMHg0MiwweDI0LDB4MDgsMHhiOSwweDAxIH0gfSwKLXsgIDE2LCAweGMyOTAsIDAsIHsweDIyLDB4NDYsMHgwZCwweDkwLDB4MGEsMHgyNiwweDAyLDB4ODksMHgwMCwweDJjLDB4NDAsMHgwYSwweDEwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGMyYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MDYsMHgwMCwweDkxLDB4NDAsMHg0MiwweDcwIH0gfSwKLXsgIDE2LCAweGMyYjAsIDAsIHsweDBiLDB4OTAsMHgxMiwweDJjLDB4MDIsMHg4YiwweDAwLDB4MmUsMHg0MCwweDBiLDB4MTAsMHgyMiwweGU0LDB4MTAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweGMyYzAsIDAsIHsweGEyLDB4NDAsMHg0OCwweDkwLDB4MTIsMHgyNCwweDA4LDB4OTksMHgwMiwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGMyZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg5MiwweDkxLDB4MjAsMHhlMCwweDQ4IH0gfSwKLXsgIDE2LCAweGMyZTAsIDAsIHsweDBiLDB4MTIsMHgwMiwweDA0LDB4MDIsMHg5MSwweDEwLDB4MmMsMHhjMCwweDBiLDB4MTAsMHgwNiwweDg0LDB4YzAsMHhiMSwweDEwIH0gfSwKLXsgIDE2LCAweGMyZjAsIDAsIHsweDIwLDB4NDgsMHg4OSwweDExLDB4MDIsMHgwNSwweDgwLDB4OTEsMHg0MCwweDJlLDB4NDQsMHgyYSwweDk0LDB4MDIsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGMzMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjEsMHg0MCwweGQ4LDB4NTAsMHgzMCwweDE0IH0gfSwKLXsgIDE2LCAweGMzMTAsIDAsIHsweDBmLDB4ODUsMHgwYiwweDIxLDB4ZTAsMHg4MCwweDQwLDB4M2UsMHgwMCwweDBmLDB4ODcsMHg4YiwweGUxLDB4MGMsMHhmOCwweDZjIH0gfSwKLXsgIDE2LCAweGMzMjAsIDAsIHsweDMyLDB4MDAsMHg4NCwweDA2LDB4ODMsMHgyMCwweDA0LDB4ZDgsMHgyOCwweDNlLDB4MTAsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGMzMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHg0MCwweGFkLDB4MTAsMHgzZiwweDQ1IH0gfSwKLXsgIDE2LCAweGMzNDAsIDAsIHsweDBmLDB4OTEsMHgwMywweGZjLDB4MTgsMHg3ZCwweDIwLDB4MWYsMHg0MSwweDBmLDB4OTAsMHgwMywweDc0LDB4YzAsMHhmOSwweDIxIH0gfSwKLXsgIDE2LCAweGMzNTAsIDAsIHsweDNlLDB4NDQsMHgwZiwweDkyLDB4MDEsMHhlNCwweDQwLDB4ZTksMHgwMCwweDNkLDB4NDgsMHg0ZiwweGQwLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGMzNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjcsMHg4MCwweGZkLDB4ZTAsMHgzMywweDcwIH0gfSwKLXsgIDE2LCAweGMzNzAsIDAsIHsweDBjLDB4ZGEsMHgwMywweDI2LDB4MjAsMHhjOSwweDQwLDB4MzEsMHg0MCwweDBlLDB4OWEsMHgwMywweDI0LDB4MDAsMHhmOSwweDgwIH0gfSwKLXsgIDE2LCAweGMzODAsIDAsIHsweDNiLDB4NjAsMHgwZiwweDljLDB4ODMsMHgzNiwweGEwLDB4ZjksMHhhMSwweGIwLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGMzOTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTIsMHg5MCwweGI4LDB4YTAsMHgyMiwweDI4IH0gfSwKLXsgIDE2LCAweGMzYTAsIDAsIHsweDI4LDB4ODgsMHgwYSwweDIyLDB4MDIsMHg4OCwweGEwLDB4MjIsMHgwMCwweDA4LDB4ODgsMHgwMiwweGMyLDB4ODAsMHhiOCwweDg4IH0gfSwKLXsgIDE2LCAweGMzYjAsIDAsIHsweDIyLDB4MDQsMHgwYiwweDhlLDB4MDMsMHgyMiwweDgwLDB4YjgsMHhkMCwweDJhLDB4MjAsMHgwYiwweDg4LDB4MDIsMHhjZSwweDA0IH0gfSwKLXsgIDE2LCAweGMzYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHg4MCwweGIxLDB4NjEsMHgwMCwweDU4IH0gfSwKLXsgIDE2LCAweGMzZDAsIDAsIHsweDQ4LDB4MTYsMHg4YSwweDA0LDB4YTAsMHg4OSwweDAxLDB4MjIsMHg0MCwweDFhLDB4MTQsMHg4OCwweDA0LDB4MjAsMHhiMSwweDQwIH0gfSwKLXsgIDE2LCAweGMzZTAsIDAsIHsweDI4LDB4NDAsMHgwYiwweDEwLDB4MGEsMHgwNCwweDIwLDB4YjEsMHgyYywweDIwLDB4NGEsMHgwYiwweDEyLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGMzZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTUsMHg5MCwweGJiLDB4NDAsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGM0MDAsIDAsIHsweDA4LDB4OTAsMHgwMiwweDI0LDB4NDAsMHg4OSwweDQyLDB4NjIsMHg1OCwweDA4LDB4MTAsMHgwMiwweGU1LDB4MDAsMHhiOSwweDAzIH0gfSwKLXsgIDE2LCAweGM0MTAsIDAsIHsweDIyLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDE0LDB4MzEsMHgwMCwweDJhLDB4NDQsMHgwYiwweDkwLDB4MDIsMHhjNiwweDA0IH0gfSwKLXsgIDE2LCAweGM0MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDEwLDB4YTUsMHgwMCwweGY5LDB4MDEsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGM0MzAsIDAsIHsweDhjLDB4OTAsMHgwMywweDI3LDB4MDAsMHhjMSwweDk0LDB4MzAsMHg0MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGM0NDAsIDAsIHsweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NjAsMHgwNywweDkwLDB4MjcsMHhlOCwweDA1IH0gfSwKLXsgIDE2LCAweGM0NTAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTQsMHgxOCwweGY5LDB4MDAsMHhiZSwweDQ0IH0gfSwKLXsgIDE2LCAweGM0NjAsIDAsIHsweDBmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4YmUsMHg2MSwweDhmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmMSwweDAwIH0gfSwKLXsgIDE2LCAweGM0NzAsIDAsIHsweDFlLDB4NDAsMHgwZiwweDEwLDB4MDMsMHgyNCwweDA4LDB4ZjksMHgwMCwweDdlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGM0ODAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHg4MSwweGY4LDB4MDAsMHgzMiwweDA0IH0gfSwKLXsgIDE2LCAweGM0OTAsIDAsIHsweDBjLDB4MDAsMHhkMywweDIxLDB4MDAsMHhkOCwweDA0LDB4M2EsMHgxNCwweDljLDB4ODAsMHgwMywweDIxLDB4MDEsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGM0YTAsIDAsIHsweDM2LDB4MDAsMHgwYywweDgwLDB4MTMsMHgyMCwweDEwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgyYywweDgwLDB4MDMsMHhjYSwweDA0IH0gfSwKLXsgIDE2LCAweGM0YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA0LDB4M2EsMHgwMCwweGJlLDB4ODQsMHgyMywweDg1IH0gfSwKLXsgIDE2LCAweGM0YzAsIDAsIHsweDA4LDB4ZWMsMHg4MywweDY4LDB4MDQsMHg4YSwweDAwLDB4MmYsMHg5MCwweDRkLDB4YTAsMHgwMiwweDI4LDB4MDEsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGM0ZDAsIDAsIHsweDIzLDB4YjAsMHgwYSwweGEwLDB4MDIsMHgyYSwweDA4LDB4ZGEsMHgwMSwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGM0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGJiLDB4ZjAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGM0ZjAsIDAsIHsweDA4LDB4M2MsMHgwYSwweDBjLDB4MDAsMHg5MywweDAxLDB4MjgsMHhjOCwweDg5LDB4MzAsMHgwNiwweDRjLDB4MDAsMHg4MywweDAyIH0gfSwKLXsgIDE2LCAweGM1MDAsIDAsIHsweDJjLDB4ZjYsMHgwOCwweDMwLDB4MDIsMHgwNCwweDAwLDB4YTMsMHgwMCwweDIwLDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGM1MTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWQsMHgxMSwweGIzLDB4MDAsMHhhMCwweGMwIH0gfSwKLXsgIDE2LCAweGM1MjAsIDAsIHsweDA4LDB4NTAsMHgwMiwweDVjLDB4MTAsMHg4NywweDAxLDB4NmQsMHg4MSwweDQ5LDB4MzIsMHg1MiwweDFlLDB4YzMsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGM1MzAsIDAsIHsweDI4LDB4ZTAsMHgwYSwweDMyLDB4MjYsMHgxZiwweDAwLDB4MzcsMHgwMCwweDIzLDB4ZTAsMHgwYiwweDcyLDB4MDIsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGM1NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA4LDB4MTIsMHgwMCwweGI3LDB4ODIsMHgzMSwweDIwIH0gfSwKLXsgIDE2LCAweGM1NTAsIDAsIHsweDA4LDB4MDgsMHgzNywweDBmLDB4MDgsMHhkNywweGUwLDB4MzksMHg2MCwweDE5LDB4N2EsMHgwYiwweDVlLDB4MGMsMHg4MywweGIyIH0gfSwKLXsgIDE2LCAweGM1NjAsIDAsIHsweDdkLDB4ZTAsMHgwYywweDdhLDB4MGIsMHgzZSwweDAyLDB4YWYsMHhhMCwweGIxLDB4ZTAsMHgwZSwweDdhLDB4MDMsMHhjYSwweDAyIH0gfSwKLXsgIDE2LCAweGM1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YTAsMHgxMCwweGZiLDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGM1ODAsIDAsIHsweDZmLDB4YjAsMHg0MywweGVjLDB4MTEsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjUsMHgwMywweGVjLDB4MjAsMHhmYiwweDUwIH0gfSwKLXsgIDE2LCAweGM1OTAsIDAsIHsweDM2LDB4MDAsMHgwZiwweGI1LDB4NDMsMHhlNSwweGExLDB4ZGIsMHg3OCwweDNlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGM1YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4YTAsMHgzZiwweGEwIH0gfSwKLXsgIDE2LCAweGM1YjAsIDAsIHsweDBkLDB4YzksMHgxMywweDNlLDB4MDAsMHhjZiwweGQwLDB4M2QsMHhlOCwweDAyLDB4ZmYsMHgxMywweDNlLDB4MDAsMHhjZiwweDgyIH0gfSwKLXsgIDE2LCAweGM1YzAsIDAsIHsweDNmLDB4NjAsMHgwYywweGZjLDB4MjMsMHgzZSwweDEwLDB4ZWYsMHg4MCwweDMzLDB4ZjIsMHgwYywweGZjLDB4ODMsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGM1ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHg0MCwweGI1LDB4MDEsMHgyZCwweGQwIH0gfSwKLXsgIDE2LCAweGM1ZTAsIDAsIHsweDA4LDB4NTgsMHgwMiwweDFjLDB4NDAsMHg1NywweDEwLDB4MmQsMHg1YSwweDI4LDB4MzEsMHgwMiwweGJjLDB4MDEsMHg5NywweDEwIH0gfSwKLXsgIDE2LCAweGM1ZjAsIDAsIHsweDJkLDB4MDAsMHgwYSwweDcwLDB4MDIsMHg4NCwweDA0LDB4Y2YsMHgwMCwweDI5LDB4YzAsMHgwYSwweGYwLDB4MDIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGM2MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweGI3LDB4MmEsMHgyZCwweDgyIH0gfSwKLXsgIDE2LCAweGM2MTAsIDAsIHsweDA4LDB4NDIsMHgyMiwweDNjLDB4MDAsMHg4NywweDExLDB4MGQsMHhjYywweDg4LDB4MzIsMHgwMiwweDFkLDB4MDAsMHg5NywweDAwIH0gfSwKLXsgIDE2LCAweGM2MjAsIDAsIHsweDJjLDB4YzQsMHgwOCwweDMwLDB4MDIsMHgxNCwweDAwLDB4YTcsMHgwMCwweDIzLDB4YzAsMHgwOSwweDcwLDB4ODIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGM2MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDE0LDB4YzAsMHgyMCwweGIwLDB4MjAsMHgyYywweDUwIH0gfSwKLXsgIDE2LCAweGM2NDAsIDAsIHsweDA4LDB4MTAsMHgwMiwweDJkLDB4YzAsMHg5MywweGUyLDB4MmMsMHgyMSwweDA4LDB4MzAsMHgwMiwweDBlLDB4MDgsMHg5MywweDAwIH0gfSwKLXsgIDE2LCAweGM2NTAsIDAsIHsweDJjLDB4NDAsMHgwYSwweDMwLDB4MDIsMHg4YywweDAwLDB4OTMsMHgwMCwweDJhLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgxOCwweDA0IH0gfSwKLXsgIDE2LCAweGM2NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWMsMHgwMCwweGY4LDB4YzAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGM2NzAsIDAsIHsweDJjLDB4YTAsMHgwYiwweDNmLDB4MDAsMHhjNywweDYwLDB4M2UsMHhkMCwweDBjLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGM2ODAsIDAsIHsweDNlLDB4ODAsMHgwYywweGYwLDB4MGIsMHgyYywweDAwLDB4ZWYsMHgwMCwweDMzLDB4YzEsMHgwZCwweGYwLDB4MGIsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGM2OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHg0MCwweGYzLDB4NDAsMHgzZSwweDUwIH0gfSwKLXsgIDE2LCAweGM2YTAsIDAsIHsweDhlLDB4YjQsMHgwMywweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHgwOSwweDBmLDB4YjAsMHgxMywweGVjLDB4NDIsMHhlYiwweDAwIH0gfSwKLXsgIDE2LCAweGM2YjAsIDAsIHsweDNjLDB4MDAsMHg4ZiwweGIwLDB4MTMsMHhjNCwweDExLDB4ZTMsMHgwMCwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGM2YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZjLDB4ODAsMHgzMSwweDIyIH0gfSwKLXsgIDE2LCAweGM2ZDAsIDAsIHsweDBjLDB4YTgsMHgwMywweDNjLDB4MDAsMHhjZiwweDAwLDB4MzMsMHhhMCwweDBlLDB4ZjAsMHgwMywweGRjLDB4MDAsMHhjZiwweDAwIH0gfSwKLXsgIDE2LCAweGM2ZTAsIDAsIHsweDFmLDB4ZjAsMHgwYywweGYwLDB4MDMsMHhmNCwweDAwLDB4Y2YsMHgwMiwweDMzLDB4YzAsMHgwYywweGYwLDB4MDIsMHgwMCwweDU0IH0gfSwKLXsgIDE2LCAweGM2ZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmYsMHgwMCwweGJiLDB4YzAsMHgyMiwweDcwIH0gfSwKLXsgIDE2LCAweGM3MDAsIDAsIHsweDBhLDB4YjksMHg0MiwweDJjLDB4MTAsMHg4YiwweDAwLDB4NzYsMHgxMSwweDgzLDB4YjAsMHgwMiwweGVjLDB4MTAsMHhhYiwweDAwIH0gfSwKLXsgIDE2LCAweGM3MTAsIDAsIHsweDJlLDB4YjAsMHgwYSwweGIwLDB4MDMsMHhlYywweDA0LDB4OGIsMHgwMCwweGEyLDB4YzAsMHgyOCwweGIwLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGM3MjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4NjUsMHg0MCwweGI4LDB4MjAsMHgyMiwweDQ0IH0gfSwKLXsgIDE2LCAweGM3MzAsIDAsIHsweDU4LDB4MzQsMHgwYSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHg4NCwweDRiLDB4YjAsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGM3NDAsIDAsIHsweDZlLDB4YzAsMHgwOCwweGIwLDB4NDIsMHhlNiwweDA0LDB4OGIsMHgwMCwweDAyLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhhMCwweDAxIH0gfSwKLXsgIDE2LCAweGM3NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAwLDB4MDAsMHgwMCwweGIxLDB4MDAsMHgyMCwweGMwIH0gfSwKLXsgIDE2LCAweGM3NjAsIDAsIHsweDBhLDB4MzAsMHgwYSwweDBjLDB4MDAsMHg4YiwweDAzLDB4MjQsMHg4MCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAwIH0gfSwKLXsgIDE2LCAweGM3NzAsIDAsIHsweDZjLDB4MDAsMHgwYSwweDMwLDB4MDIsMHg4ZCwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgxOCwweDMwLDB4MDIsMHg4MiwweDAwIH0gfSwKLXsgIDE2LCAweGM3ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NjQsMHgwMCwweGY4LDB4MDAsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGM3OTAsIDAsIHsweDRjLDB4YTAsMHgwYiwweDJjLDB4MDIsMHhjZiwweDAwLDB4MjIsMHg0MCwweDBlLDB4ZjUsMHgwMywweGZjLDB4MDAsMHhjZiwweDAxIH0gfSwKLXsgIDE2LCAweGM3YTAsIDAsIHsweDNlLDB4MDAsMHgwYywweGYwLDB4MTIsMHhkZCwweDAyLDB4Y2YsMHgwMiwweDMzLDB4YzAsMHg0YywweGYwLDB4MGIsMHg4MCwweDAzIH0gfSwKLXsgIDE2LCAweGM3YjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhNCwweDE5LDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZiwweDQwIH0gfSwKLXsgIDE2LCAweGM3YzAsIDAsIHsweDBmLDB4YjEsMHgwMywweGRjLDB4MDAsMHhiZiwweDAxLDB4M2YsMHgwMCwweDBmLDB4ZjIsMHgyMywweGZjLDB4MTAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGM3ZDAsIDAsIHsweDNmLDB4MDAsMHgwZiwweGYwLDB4MDEsMHhmNCwweDg0LDB4ZmYsMHgwMCwweDNkLDB4YzAsMHg0ZiwweGYwLDB4MTMsMHg2OCwweDA2IH0gfSwKLXsgIDE2LCAweGM3ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHg0MCwweGRmLDB4ODAsMHgzMywweGM4IH0gfSwKLXsgIDE2LCAweGM3ZjAsIDAsIHsweDBjLDB4ZjgsMHgwMywweDNjLDB4MGEsMHg5ZiwweGMwLDB4M2YsMHhmMCwweDA4LDB4YjgsMHgwMiwweDNlLDB4MDAsMHhmZiwweDgwIH0gfSwKLXsgIDE2LCAweGM4MDAsIDAsIHsweDNmLDB4ZDgsMHgwYywweGY5LDB4NjEsMHgyZSwweDQwLDB4NmYsMHg5MCwweDNmLDB4ZTQsMHg4ZiwweGYxLDB4ODMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGM4MTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZWMsMHgwNCwweDhiLDB4ODAsMHgyMywweGYwIH0gfSwKLXsgIDE2LCAweGM4MjAsIDAsIHsweDA4LDB4YjgsMHgwMiwweDNkLDB4NDAsMHhhYiwweDAwLDB4MGUsMHgwOCwweDQ4LDB4MjIsMHg4MiwweDZjLDB4MjAsMHhiYiwweDAwIH0gfSwKLXsgIDE2LCAweGM4MzAsIDAsIHsweDJmLDB4ZDAsMHg0OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzEsMHgwYiwweGIwLDB4MDIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGM4NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMiwweDgzLDB4MDEsMHhhMCwweGM1IH0gfSwKLXsgIDE2LCAweGM4NTAsIDAsIHsweDA4LDB4YjAsMHg0YSwweDRjLDB4YTAsMHg4MCwweDI0LDB4MjgsMHhjOCwweDA5LDB4MzIsMHgwMiwweDRjLDB4MDAsMHhiMywweDA4IH0gfSwKLXsgIDE2LCAweGM4NjAsIDAsIHsweDJlLDB4ZDEsMHgyOSwweGIyLDB4M2EsMHgwYywweDg0LDB4YTMsMHgyMSwweDJjLDB4YzgsMHg0YiwweGIyLDB4MGEsMHgzMiwweDAxIH0gfSwKLXsgIDE2LCAweGM4NzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwOCwweDhiLDB4MDAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGM4ODAsIDAsIHsweDA4LDB4YjAsMHgwMiwweDRjLDB4MDAsMHg4OCwweDIxLDB4MjQsMHgyMSwweDA5LDB4YjAsMHg0NiwweDZjLDB4MDAsMHhiYiwweDA2IH0gfSwKLXsgIDE2LCAweGM4OTAsIDAsIHsweDJlLDB4YzAsMHgwOSwweGIwLDB4MDIsMHgyYywweDEwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgzMCwweDA0IH0gfSwKLXsgIDE2LCAweGM4YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweGM4YjAsIDAsIHsweDBjLDB4YjksMHgwMiwweDZjLDB4MDAsMHhjYiwweGM4LDB4M2EsMHhjMCwweDJkLDB4OTAsMHgwYiwweDJjLDB4MDgsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGM4YzAsIDAsIHsweDNlLDB4YzAsMHgwZCwweDMwLDB4NDIsMHgyYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MTMsMHgwMCwweDA0IH0gfSwKLXsgIDE2LCAweGM4ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YmMsMHgwMCwweGVmLDB4MDAsMHgzZCwweGMwIH0gfSwKLXsgIDE2LCAweGM4ZTAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGJjLDB4MDYsMHhlZiwweDgyLDB4M2YsMHg0MCwweDRlLDB4YzksMHg4MywweGJjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGM4ZjAsIDAsIHsweDdmLDB4YzAsMHgxYywweGYwLDB4MTMsMHg3YywweDAwLDB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGM5MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDIsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGM5MTAsIDAsIHsweDBlLDB4YjAsMHgwMywweGFjLDB4MjAsMHhkOCwweDQwLDB4M2UsMHhjMCwweDhjLDB4OTAsMHgwYiwweDJjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGM5MjAsIDAsIHsweDNlLDB4YzksMHgwZCwweGIwLDB4MzMsMHhlYywweDA4LDB4ZmIsMHgwMiwweDNlLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg1NCwweDA0IH0gfSwKLXsgIDE2LCAweGM5MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmMsMHgwMCwweGIzLDB4MDAsMHgyZiwweGMwIH0gfSwKLXsgIDE2LCAweGM5NDAsIDAsIHsweDBiLDB4MzAsMHgxMiwweGZjLDB4MDAsMHg4OCwweGEwLDB4MmUsMHg0MCwweDI4LDB4OTQsMHgwMiwweDJjLDB4MTAsMHhiYiwweDA0IH0gfSwKLXsgIDE2LCAweGM5NTAsIDAsIHsweDJkLDB4YzAsMHgyOCwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweDcyLDB4MDYsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGM5NjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyYywweGUwIH0gfSwKLXsgIDE2LCAweGM5NzAsIDAsIHsweDBhLDB4MTAsMHgwMiwweGNkLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweDRjLDB4MDAsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGM5ODAsIDAsIHsweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgzYSwweDAwIH0gfSwKLXsgIDE2LCAweGM5OTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MWUsMHg0MCwweGI3LDB4ODAsMHgyZCwweGUyIH0gfSwKLXsgIDE2LCAweGM5YTAsIDAsIHsweDBiLDB4NTgsMHgwMiwweGRlLDB4MDIsMHg5NywweDgxLDB4MmYsMHhhMCwweDA4LDB4NjgsMHgwMiwweDVlLDB4MDAsMHhiNywweDgxIH0gfSwKLXsgIDE2LCAweGM5YjAsIDAsIHsweDJmLDB4ZTAsMHgwOCwweDc5LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MSwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHgzYywweDAwIH0gfSwKLXsgIDE2LCAweGM5YzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MGMsMHgwMCwweGYzLDB4MDAsMHgzYywweGMwIH0gfSwKLXsgIDE2LCAweGM5ZDAsIDAsIHsweDBlLDB4MzIsMHgwMywweGNjLDB4ODAsMHhkMywweDAwLDB4M2MsMHhjNCwweDBjLDB4MzksMHgwMywweDRjLDB4MDgsMHhmMywweDFhIH0gfSwKLXsgIDE2LCAweGM5ZTAsIDAsIHsweDNjLDB4YzYsMHgwZCwweDMwLDB4MDMsMHhjZSwweDIwLDB4ZjMsMHgwOCwweDNjLDB4YzAsMHgwZiwweDMwLDB4MDMsMHg1MiwweDAyIH0gfSwKLXsgIDE2LCAweGM5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDFkLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgyZSwweGMwIH0gfSwKLXsgIDE2LCAweGNhMDAsIDAsIHsweDBiLDB4YjAsMHgwMywweGNjLDB4MjAsMHhlYiwweDAwLDB4M2MsMHg4MCwweDBmLDB4YjAsMHg0MSwweGFjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGNhMTAsIDAsIHsweDNjLDB4YzIsMHgwZiwweGIwLDB4MDMsMHhlYywweDQwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGNhMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWUsMHgwMiwweGMzLDB4ODAsMHgzMCwweGNlIH0gfSwKLXsgIDE2LCAweGNhMzAsIDAsIHsweDBkLDB4OTgsMHgwMywweGFjLDB4YTAsMHhjMywweDgwLDB4YjIsMHhjMCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGNhNDAsIDAsIHsweDNlLDB4ZDIsMHg0ZiwweGIwLDB4MDksMHgyZSwweDA4LDB4NGIsMHgwMSwweDNlLDB4YzAsMHgyNCwweGIwLDB4MDMsMHhlYSwweDAwIH0gfSwKLXsgIDE2LCAweGNhNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDEsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGNhNjAsIDAsIHsweDQ4LDB4NTAsMHgxMiwweDRjLDB4MDAsMHg4NywweDAwLDB4MzUsMHhjMCwweDRiLDB4NjAsMHgwMiwweGRjLDB4MDQsMHhiNywweDAxIH0gfSwKLXsgIDE2LCAweGNhNzAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCwweDJkLDB4YzEsMHgwYywweDcyLDB4MDIsMHhmMiwweDA0IH0gfSwKLXsgIDE2LCAweGNhODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweDg3LDB4ODAsMHgyMywweGUwIH0gfSwKLXsgIDE2LCAweGNhOTAsIDAsIHsweDA4LDB4ZjgsMHgwMiwweGRlLDB4ODAsMHg4ZiwweDgxLDB4MjEsMHhlMCwweDRiLDB4NzgsMHgxMiwweGRlLDB4MDQsMHgzNywweDgwIH0gfSwKLXsgIDE2LCAweGNhYTAsIDAsIHsweDJkLDB4ZTgsMHgwYiwweGY4LDB4MDIsMHgzZSwweDE4LDB4ODcsMHg4MCwweDJmLDB4ZTAsMHgwOSwweDc5LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGNhYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDAsMHhhMCwweGMwIH0gfSwKLXsgIDE2LCAweGNhYzAsIDAsIHsweDI4LDB4MzAsMHg0MiwweDRjLDB4MDAsMHg4MywweDAwLDB4MjQsMHhjMCwweDBiLDB4MzgsMHgwNiwweGNjLDB4MDQsMHhiMywweDAwIH0gfSwKLXsgIDE2LCAweGNhZDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAyLDB4ODMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhkMiwweDA0IH0gfSwKLXsgIDE2LCAweGNhZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YTgsMHgwMCwweGNhLDB4MDAsMHgzMSwweDgwIH0gfSwKLXsgIDE2LCAweGNhZjAsIDAsIHsweDA4LDB4ZTAsMHgwMiwweDk4LDB4MDIsMHhjZSwweDAwLDB4MzMsMHg4NCwweDBiLDB4ZWEsMHgwMywweGU4LDB4MDAsMHhiYSwweDAwIH0gfSwKLXsgIDE2LCAweGNiMDAsIDAsIHsweDNmLDB4ODEsMHgwZiwweGEwLDB4MDMsMHgyOCwweDAwLDB4Y2EsMHgwMCwweDNlLDB4ODAsMHgwZCwweGUwLDB4MDMsMHhmYSwweDA0IH0gfSwKLXsgIDE2LCAweGNiMTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGNiMjAsIDAsIHsweDBlLDB4ODQsMHgyMywweGEwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgxMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGNiMzAsIDAsIHsweDNlLDB4MTAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGNiNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMSwweGY5LDB4MDAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGNiNTAsIDAsIHsweDBjLDB4OWEsMHgxMywweGU0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTgsMHgyMywweGU0LDB4ODAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGNiNjAsIDAsIHsweDNlLDB4NDAsMHgyYywweDk4LDB4MDMsMHg2NCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGNiNzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwNCwweGI5LDB4MDAsMHgyZSwweDQwIH0gfSwKLXsgIDE2LCAweGNiODAsIDAsIHsweDY4LDB4OWMsMHgyMiwweGU0LDB4MDIsMHg4OSwweDAxLDB4N2MsMHg1MCwweDhkLDB4OTgsMHgyMiwweGU0LDB4ODAsMHhiOSwweDIwIH0gfSwKLXsgIDE2LCAweGNiOTAsIDAsIHsweDJlLDB4NTAsMHg0OCwweDEwLDB4MGIsMHgyNSwweDAwLDB4YjksMHg0NCwweDJjLDB4NDAsMHgyOCwweDkwLDB4MDAsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGNiYTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDUwIH0gfSwKLXsgIDE2LCAweGNiYjAsIDAsIHsweDA4LDB4OTAsMHgwMiwweGU0LDB4MDQsMHg4OSwweDAwLDB4MmUsMHg1MCwweDBhLDB4OTIsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGNiYzAsIDAsIHsweDJjLDB4NDAsMHgwOCwweDkxLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGNiZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDUsMHgwMCwweGIxLDB4MDEsMHgyYywweDQwIH0gfSwKLXsgIDE2LCAweGNiZTAsIDAsIHsweDQ4LDB4MzAsMHgwMiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MmEsMHg0MCwweDRiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDAwIH0gfSwKLXsgIDE2LCAweGNiZjAsIDAsIHsweDBjLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDJlLDB4NDAsMHg0OCwweDEyLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGNjMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjAsMHgwMCwweGI4LDB4MDEsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGNjMTAsIDAsIHsweDFjLDB4ODAsMHgwNywweGUxLDB4NTAsMHhjOCwweDUwLDB4MmUsMHgxNCwweDFlLDB4ODUsMHgwMywweGUxLDB4NDEsMHhmOCwweDUwIH0gfSwKLXsgIDE2LCAweGNjMjAsIDAsIHsweDNlLDB4MTQsMHgwYywweDg1LDB4MTMsMHgyMSwweDQ4LDB4ZjgsMHg1MCwweDNlLDB4MTQsMHgwYywweDg1LDB4NDMsMHhlZSwweDAzIH0gfSwKLXsgIDE2LCAweGNjMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDE5LDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDUxIH0gfSwKLXsgIDE2LCAweGNjNDAsIDAsIHsweDBmLDB4NTAsMHgwMywweGU1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDFkLDB4ZDAsMHgwMywweGY0LDB4MTAsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGNjNTAsIDAsIHsweDNlLDB4NTAsMHgwZiwweDUwLDB4MDAsMHg5NCwweDAwLDB4ZjksMHgwMCwweDNkLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGNjNjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZTQsMHg1MCwweGNkLDB4MDAsMHgzMSwweDYwIH0gfSwKLXsgIDE2LCAweGNjNzAsIDAsIHsweDA0LDB4ZDAsMHgwMywweDM2LDB4ODAsMHhjMSwweDQyLDB4MmUsMHg1MCwweDFmLDB4OTQsMHgwMywweGU1LDB4MDAsMHhlOSwweDAyIH0gfSwKLXsgIDE2LCAweGNjODAsIDAsIHsweDJlLDB4NzIsMHgwYSwweDkwLDB4MjIsMHgwNSwweDA4LDB4ZTksMHg0MCwweDNlLDB4NTAsMHg0MCwweDljLDB4MDMsMHgyNiwweDAwIH0gfSwKLXsgIDE2LCAweGNjOTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4YzIsMHg4MiwweDg4LDB4MDAsMHgyMiwweDE1IH0gfSwKLXsgIDE2LCAweGNjYTAsIDAsIHsweDA4LDB4ODAsMHgwMiwweDIzLDB4NTgsMHg4OCwweGEwLDB4MmUsMHgyOCwweDBiLDB4YWEsMHg0MiwweGUyLDB4ODIsMHg4OCwweDgwIH0gfSwKLXsgIDE2LCAweGNjYjAsIDAsIHsweDJlLDB4MzgsMHgyOCwweDg4LDB4MDIsMHgyMiwweDgwLDB4YjgsMHhhMCwweDNhLDB4MjgsMHgwOCwweGNkLDB4MDIsMHgwZSwweDA0IH0gfSwKLXsgIDE2LCAweGNjYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweDgxLDB4MDAsMHhhNiwweDQwIH0gfSwKLXsgIDE2LCAweGNjZDAsIDAsIHsweDI4LDB4MTAsMHgwYSwweDI0LDB4MjYsMHg5NSwweDAwLDB4MGQsMHg0MCwweDBiLDB4NTAsMHgwMiwweDc0LDB4MDAsMHg4NSwweDA4IH0gfSwKLXsgIDE2LCAweGNjZTAsIDAsIHsweDJmLDB4NDAsMHg3OSwweGQyLDB4YWEsMHgxNCwweDAwLDB4YTUsMHgwMSwweDJmLDB4NDAsMHgzOCwweDUwLDB4MDIsMHgxMiwweDAxIH0gfSwKLXsgIDE2LCAweGNjZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwNCwweDg5LDB4MDAsMHgyNiwweDQwIH0gfSwKLXsgIDE2LCAweGNkMDAsIDAsIHsweDA4LDB4OTEsMHgwMiwweDI0LDB4MTAsMHg5ZCwweDA4LDB4MmYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDAyIH0gfSwKLXsgIDE2LCAweGNkMTAsIDAsIHsweDJmLDB4NDAsMHgwOSwweGQwLDB4MDAsMHgzNCwweDAwLDB4YmQsMHgwMCwweDBiLDB4NDAsMHgxOCwweDcwLDB4MDIsMHgwNiwweDA0IH0gfSwKLXsgIDE2LCAweGNkMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4YzQsMHgwMCwweGM5LDB4MDUsMHgzNiwweDQxIH0gfSwKLXsgIDE2LCAweGNkMzAsIDAsIHsweDRjLDB4OTAsMHg2MywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBiLDB4OTAsMHgwMywweDQ0LDB4MDgsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGNkNDAsIDAsIHsweDNlLDB4NDAsMHgxNSwweDEwLDB4MDMsMHgyNCwweDAwLDB4ZTksMHgwMCwweDNjLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGNkNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4YTQsMHgwNCwweGY5LDB4MDAsMHgzYSwweDQwIH0gfSwKLXsgIDE2LCAweGNkNjAsIDAsIHsweDRmLDB4OTgsMHgwMywweGU0LDB4MDAsMHhlOSwweDk5LDB4M2UsMHg0MCwweDRmLDB4OTAsMHgwMywweGU0LDB4MjAsMHhmOSwweDBhIH0gfSwKLXsgIDE2LCAweGNkNzAsIDAsIHsweDNlLDB4NDAsMHgwZSwweDkwLDB4NDMsMHg2NCwweDI0LDB4ZjksMHgwOCwweDNhLDB4NDIsMHgwZiwweDkwLDB4OGIsMHhkYSwweDAwIH0gfSwKLXsgIDE2LCAweGNkODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgxMiwweDAwIH0gfSwKLXsgIDE2LCAweGNkOTAsIDAsIHsweDBjLDB4ODAsMHg0MywweGUwLDB4MDAsMHhjOCwweDQwLDB4MzIsMHgwMCwweDBmLDB4ODQsMHg1MywweGUwLDB4MTAsMHhmOCwweDAwIH0gfSwKLXsgIDE2LCAweGNkYTAsIDAsIHsweDNlLDB4MDAsMHgwZCwweDgwLDB4MjMsMHgyMCwweDAwLDB4ZDgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGNkYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MzgsMHgwMiwweDgyLDB4MDAsMHhhMSwweDg4IH0gfSwKLXsgIDE2LCAweGNkYzAsIDAsIHsweDA4LDB4NjAsMHgyMiwweGM4LDB4MDAsMHg4YSwweDQwLDB4MzYsMHhhMSwweDBiLDB4YTAsMHgwMiwweGU5LDB4MTAsMHhiYSwweDQ0IH0gfSwKLXsgIDE2LCAweGNkZDAsIDAsIHsweDJjLDB4ODAsMHgwYywweGE0LDB4MTIsMHgyOSwweDAyLDB4OGEsMHg0NCwweDJlLDB4OTgsMHgwYiwweGE0LDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGNkZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgxMCwweDgzLDB4MDAsMHgyMCwweGUwIH0gfSwKLXsgIDE2LCAweGNkZjAsIDAsIHsweDE4LDB4MzAsMHg5MiwweGM0LDB4MDgsMHg5MywweDQwLDB4MjAsMHhlMCwweDBiLDB4MzAsMHgwMiwweGNkLDB4MDAsMHhiMywweDQwIH0gfSwKLXsgIDE2LCAweGNlMDAsIDAsIHsweDJjLDB4YzAsMHgwYiwweDNhLDB4NDIsMHhjZCwweDAwLDB4ODMsMHg0MCwweDJjLDB4ZDAsMHgwYiwweDM4LDB4MDIsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGNlMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDQxLDB4MWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGNlMjAsIDAsIHsweDI4LDB4NzAsMHgwMiwweGQxLDB4MDAsMHg5ZCwweDgwLDB4MjUsMHhjMiwweDRiLDB4NjAsMHgwMiwweGRjLDB4MDgsMHhiNywweDAyIH0gfSwKLXsgIDE2LCAweGNlMzAsIDAsIHsweDJjLDB4YzAsMHgwYSwweDc0LDB4MDIsMHhmZSwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDM0LDB4MDIsMHg2OCwweDAwIH0gfSwKLXsgIDE2LCAweGNlNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MWUsMHgwMCwweGM3LDB4ODQsMHgzMSwweGUwIH0gfSwKLXsgIDE2LCAweGNlNTAsIDAsIHsweDBjLDB4NjgsMHgwMywweGQ2LDB4MDAsMHg5NywweDgwLDB4MzEsMHhhMCwweDBmLDB4NTgsMHgxMywweGRlLDB4MDgsMHhmNywweDgyIH0gfSwKLXsgIDE2LCAweGNlNjAsIDAsIHsweDNkLDB4YTAsMHgwZiwweGY4LDB4MGIsMHhkZSwweDAwLDB4YzcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDc4LDB4OGIsMHg2YSwweDAyIH0gfSwKLXsgIDE2LCAweGNlNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWQsMHg4MCwweGYzLDB4MDAsMHgzZSwweGMxIH0gfSwKLXsgIDE2LCAweGNlODAsIDAsIHsweDBmLDB4YTAsMHgyMywweGMwLDB4MDIsMHhlOSwweDAwLDB4M2UsMHg4MSwweDBmLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGNlOTAsIDAsIHsweDNlLDB4YzAsMHgwZCwweGIwLDB4MTMsMHgyYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg4MiwweDAyIH0gfSwKLXsgIDE2LCAweGNlYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgzMiwweGM3LDB4ODAsMHgzMywweDYwIH0gfSwKLXsgIDE2LCAweGNlYjAsIDAsIHsweDBmLDB4NzgsMHgwMywweDNlLDB4YzgsMHg0ZSwweDgwLDB4MjMsMHg2NCwweDBjLDB4ZjgsMHgwMywweDNhLDB4MDAsMHhjZSwweDgwIH0gfSwKLXsgIDE2LCAweGNlYzAsIDAsIHsweDEzLDB4ZWMsMHgwNiwweGQ4LDB4MDMsMHgzYSwweDAwLDB4ZGUsMHg4MCwweDMzLDB4YTQsMHgwYywweGM4LDB4MDMsMHhkMCwweDAwIH0gfSwKLXsgIDE2LCAweGNlZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4OWMsMHgwMCwweDg3LDB4MTAsMHgwMSwweGMwIH0gfSwKLXsgIDE2LCAweGNlZTAsIDAsIHsweDBiLDB4NzAsMHgwMiwweDE4LDB4NTAsMHg4NCwweDAwLDB4MmIsMHg0NCwweDA4LDB4NjAsMHgxMiwweDk4LDB4MDAsMHg4NiwweDEzIH0gfSwKLXsgIDE2LCAweGNlZjAsIDAsIHsweDIxLDB4YzQsMHg4OCwweDUwLDB4MDIsMHgxOCwweDgwLDB4ODYsMHgwMCwweDIxLDB4ODAsMHgwOCwweDYxLDB4MDIsMHhlYSwweDA0IH0gfSwKLXsgIDE2LCAweGNmMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweDQwIH0gfSwKLXsgIDE2LCAweGNmMTAsIDAsIHsweDBiLDB4ZjEsMHgwMiwweDVjLDB4ODAsMHgwNiwweDAwLDB4MjEsMHgwMCwweDg4LDB4ZDAsMHgwMiwweDVjLDB4MDAsMHg4NywweDAwIH0gfSwKLXsgIDE2LCAweGNmMjAsIDAsIHsweDIwLDB4ODksMHg4YSwweGYxLDB4MDIsMHgxYywweDA4LDB4ODcsMHgxMCwweDIxLDB4ODEsMHg4OCwweDQ4LDB4MDIsMHhjNiwweDAwIH0gfSwKLXsgIDE2LCAweGNmMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgxMCwweDgzLDB4MDQsMHhhMCwweGMxIH0gfSwKLXsgIDE2LCAweGNmNDAsIDAsIHsweDBiLDB4MzAsMHgwYSwweDQ4LDB4MGMsMHg4OCwweDA2LDB4NjAsMHgzOCwweDA4LDB4MDQsMHg0MiwweGVjLDB4MDEsMHg4YiwweDA0IH0gfSwKLXsgIDE2LCAweGNmNTAsIDAsIHsweDIyLDB4YzEsMHgwOCwweDMwLDB4MGEsMHgyYywweDAwLDB4OGIsMHgwMCwweDIyLDB4ODAsMHgwMCwweDIwLDB4MDIsMHhkOCwweDA0IH0gfSwKLXsgIDE2LCAweGNmNjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YmMsMHgwMCwweGMzLDB4MDAsMHgyMiwweDgwIH0gfSwKLXsgIDE2LCAweGNmNzAsIDAsIHsweDhmLDB4OTAsMHgwMywweDY0LDB4MGEsMHhjYiwweDAyLDB4YjIsMHhmMiwweDIwLDB4MzUsMHgxMiwweDY0LDB4MGEsMHhjOSwweDAwIH0gfSwKLXsgIDE2LCAweGNmODAsIDAsIHsweGIyLDB4NDAsMHgwZSwweGEwLDB4MDMsMHgyNCwweDBhLDB4YzksMHgwMCwweGEyLDB4NDAsMHgyYywweGEwLDB4MDMsMHhlZSwweDA0IH0gfSwKLXsgIDE2LCAweGNmOTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzYywweDgwIH0gfSwKLXsgIDE2LCAweGNmYTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGE1LDB4MDAsMHhkYiwweDQwLDB4M2UsMHhkMCwweDRkLDB4YjQsMHgxMywweGE0LDB4MDgsMHhmYiwweDAxIH0gfSwKLXsgIDE2LCAweGNmYjAsIDAsIHsweDNlLDB4YzAsMHgxYywweGEwLDB4MDMsMHg2YywweDAwLDB4ZmIsMHgwNCwweDNlLDB4NTAsMHg0ZiwweGE0LDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGNmYzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGNmZDAsIDAsIHsweDBjLDB4ZTgsMHg0MywweDI2LDB4MDAsMHhkZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZjgsMHgwMywweDdjLDB4MDAsMHhjZCwweDAwIH0gfSwKLXsgIDE2LCAweGNmZTAsIDAsIHsweDMzLDB4MDQsMHgwYywweGUwLDB4MjMsMHgzNCwweDQwLDB4Y2QsMHgwMCwweDIzLDB4NDAsMHgwYywweGUwLDB4MDMsMHhlMCwweDA0IH0gfSwKLXsgIDE2LCAweGNmZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NmMsMHgxMCwweGJiLDB4MDAsMHhhMiwweGQyIH0gfSwKLXsgIDE2LCAweGQwMDAsIDAsIHsweDA4LDB4MjgsMHgwMiwweDA0LDB4NjAsMHg4YiwweDE5LDB4MjIsMHhjNiwweDBlLDB4YjEsMHg4YSwweDJlLDB4NDAsMHg4YiwweDkwIH0gfSwKLXsgIDE2LCAweGQwMTAsIDAsIHsweDIyLDB4YzEsMHgwOCwweGE0LDB4ODIsMHgyYywweDAwLDB4OGIsMHg5MCwweDIyLDB4NjQsMHg0OCwweGE0LDB4MDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGQwMjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweGQwMzAsIDAsIHsweDA4LDB4OTEsMHgyZSwweDI0LDB4MDAsMHg5YiwweDAwLDB4MjIsMHhjMCwweDhiLDB4YjAsMHgxMiwweDIwLDB4MDQsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGQwNDAsIDAsIHsweDIyLDB4NDAsMHgwOCwweDEwLDB4MjIsMHgyMCwweDAwLDB4ODgsMHgwMSwweDJhLDB4ZDAsMHgwOCwweDgwLDB4NDIsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGQwNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDQsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGQwNjAsIDAsIHsweDA4LDB4MTAsMHgwNiwweDA0LDB4MTAsMHg4MywweDAwLDB4MjAsMHhjMCwweDhiLDB4YjAsMHgxMiwweDAwLDB4MDAsMHg4MiwweDAwIH0gfSwKLXsgIDE2LCAweGQwNzAsIDAsIHsweDIwLDB4YzAsMHgyOCwweDEwLDB4NDIsMHgwOSwweDA2LDB4ODIsMHgwMCwweDI4LDB4YzAsMHgwOCwweDIwLDB4MDIsMHhjMiwweDAxIH0gfSwKLXsgIDE2LCAweGQwODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4N2MsMHgwMCwweGJiLDB4MDAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGQwOTAsIDAsIHsweDJjLDB4YjAsMHgwMywweDI0LDB4MDAsMHhkMywweDAwLDB4MzIsMHhjMCwweDVmLDB4YjUsMHgwMywweDBjLDB4MDIsMHhjMSwweDAwIH0gfSwKLXsgIDE2LCAweGQwYTAsIDAsIHsweGIyLDB4MDAsMHgwYywweGIwLDB4MGIsMHgwNSwweDAwLDB4YzEsMHgwMCwweGI4LDB4YzAsMHgyYywweDgwLDB4MTMsMHhlMCwweDAzIH0gfSwKLXsgIDE2LCAweGQwYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZGMsMHgwMCwweGZmLDB4MDAsMHgxZiwweGMwIH0gfSwKLXsgIDE2LCAweGQwYzAsIDAsIHsweDg3LDB4ZjAsMHgwMSwweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBlLDB4NzAsMHg0MywweGZjLDB4MTAsMHg3ZiwweDAwIH0gfSwKLXsgIDE2LCAweGQwZDAsIDAsIHsweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGUwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGQwZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjEsMHg4NCwweGZlLDB4NjEsMHgzMSwweGQ4IH0gfSwKLXsgIDE2LCAweGQwZjAsIDAsIHsweDBjLDB4YjIsMHhjMywweGZjLDB4ZTAsMHhjYywweDgwLDB4N2IsMHhjMCwweDBlLDB4ZjEsMHgwMywweDdjLDB4ZTAsMHhjYywweDgzIH0gfSwKLXsgIDE2LCAweGQxMDAsIDAsIHsweDNmLDB4MjAsMHgwZiwweGYwLDB4Y2IsMHgzMiwweDQ0LDB4ZGMsMHg4NCwweDNmLDB4MjUsMHg0YywweGYyLDB4NDMsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGQxMTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4ZTQsMHg0OCwweGIwLDB4MTAsMHgyMiwweGRjIH0gfSwKLXsgIDE2LCAweGQxMjAsIDAsIHsweDA4LDB4YjYsMHgwMiwweGZkLDB4OTIsMHg4OCwweDg1LDB4MjMsMHhmNCwweDQwLDB4ZjEsMHgwMiwweGVkLDB4MDAsMHg4OCwweDJkIH0gfSwKLXsgIDE2LCAweGQxMzAsIDAsIHsweDBlLDB4NjAsMHgwYiwweGJjLDB4MTIsMHgyYywweDEwLDB4YTgsMHg4MiwweDJlLDB4MDAsMHgwYSwweGZjLDB4MjIsMHhhMCwweDA0IH0gfSwKLXsgIDE2LCAweGQxNDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzAsMHg4MCwweGIzLDB4MjIsMHgyOCwweGMwIH0gfSwKLXsgIDE2LCAweGQxNTAsIDAsIHsweDA4LDB4MzAsMHg4MiwweGNjLDB4MDEsMHg4OCwweDAwLDB4MmMsMHhjMCwweDRhLDB4MzIsMHgwMiwweGNjLDB4MDAsMHgwMSwweDAxIH0gfSwKLXsgIDE2LCAweGQxNjAsIDAsIHsweDI4LDB4MDAsMHg0YiwweGIwLDB4MDIsMHhhMCwweDAwLDB4ODAsMHgwMCwweDJjLDB4MDksMHgwOCwweDM0LDB4MDIsMHg2MiwweDAxIH0gfSwKLXsgIDE2LCAweGQxNzAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4YWMsMHgwNCwweGIyLDB4MTAsMHgyYSwweGMxIH0gfSwKLXsgIDE2LCAweGQxODAsIDAsIHsweDA4LDB4YjAsMHgwMiwweGVjLDB4MTAsMHg4OSwweDgwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDgsMHg4OCwweDAwIH0gfSwKLXsgIDE2LCAweGQxOTAsIDAsIHsweDJlLDB4NDAsMHg4MywweGIwLDB4MDIsMHhhMCwweDQwLDB4YjksMHg4MCwweDJjLDB4MjEsMHgwYSwweGIwLDB4MDIsMHhmMCwweDA0IH0gfSwKLXsgIDE2LCAweGQxYTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDE1LDB4ZWMsMHgwMCwweGZhLDB4MDAsMHhiYSwweGMwIH0gfSwKLXsgIDE2LCAweGQxYjAsIDAsIHsweDJjLDB4YjAsMHg0MywweGVjLDB4MDAsMHhjMCwweDgwLDB4M2UsMHhjMCwweDhlLDB4YjAsMHgwMywweDRjLDB4MGMsMHhjOCwweDEwIH0gfSwKLXsgIDE2LCAweGQxYzAsIDAsIHsweDNlLDB4ODAsMHg4ZiwweGIwLDB4MDMsMHg4MiwweDEwLDB4ZDgsMHg4MiwweDNlLDB4MjgsMHgwYywweGIwLDB4MGIsMHg1MCwweDA0IH0gfSwKLXsgIDE2LCAweGQxZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4YjYsMHg4MCwweGZkLDB4MDIsMHgzNywweGMxIH0gfSwKLXsgIDE2LCAweGQxZTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHg1MywweGZjLDB4MDIsMHhmZiwweDAxIH0gfSwKLXsgIDE2LCAweGQxZjAsIDAsIHsweDJmLDB4YTQsMHg4YiwweGYwLDB4ODMsMHg3YywweDAwLDB4YWQsMHgwMiwweDJmLDB4NDAsMHgwMywweDcwLDB4MDMsMHhiOCwweDAwIH0gfSwKLXsgIDE2LCAweGQyMDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDQsMHgzMiwweGMwIH0gfSwKLXsgIDE2LCAweGQyMTAsIDAsIHsweDRjLDB4YjAsMHgyMywweDJjLDB4MDAsMHhmOCwweDQwLDB4M2UsMHhjMiwweDBjLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmYiwweDQxIH0gfSwKLXsgIDE2LCAweGQyMjAsIDAsIHsweDMyLDB4YzIsMHgwZiwweGIwLDB4NDMsMHgyZCwweDAwLDB4YzgsMHg1MCwweDNlLDB4NDAsMHgwYywweGIwLDB4MGIsMHgxMCwweDA0IH0gfSwKLXsgIDE2LCAweGQyMzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjOCwweDA1LDB4MmYsMHg5MCwweGI5LDB4NTAsMHgwMywweGMwIH0gfSwKLXsgIDE2LCAweGQyNDAsIDAsIHsweDE4LDB4ZjAsMHgxYSwweDNjLDB4MDAsMHhiOSwweDMyLDB4MmQsMHhlMCwweDM4LDB4ZjAsMHg2MCwweDNjLDB4MDQsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGQyNTAsIDAsIHsweDNlLDB4ZjAsMHgwYiwweDdjLDB4ODAsMHgyYywweDAwLDB4ZDksMHhjMCwweDJlLDB4NDAsMHgwZCwweGYwLDB4MDIsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGQyNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGIsMHgyNCwweGIyLDB4MTAsMHgwMiwweGMxIH0gfSwKLXsgIDE2LCAweGQyNzAsIDAsIHsweDI4LDB4MzAsMHgwMiwweDZjLDB4MDQsMHhiMiwweGMxLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMCwweDBjLDB4MDAsMHhiMiwweDAwIH0gfSwKLXsgIDE2LCAweGQyODAsIDAsIHsweDI4LDB4MjQsMHgwMywweDNjLDB4MGEsMHgwMCwweDAwLDB4ODIsMHhjOCwweDJjLDB4YTAsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwIH0gfSwKLXsgIDE2LCAweGQyOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAxLDB4MTYsMHgwMCwweGI0LDB4ODAsMHgyMSwweGU0IH0gfSwKLXsgIDE2LCAweGQyYTAsIDAsIHsweDQ4LDB4N2IsMHgwMiwweDVlLDB4MDAsMHhiNiwweDgwLDB4NmQsMHhlMiwweDQ4LDB4NzksMHgyMiwweDFlLDB4NDAsMHhhYywweDg0IH0gfSwKLXsgIDE2LCAweGQyYjAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweGZhLDB4MDAsMHg1MiwweDQwLDB4OTYsMHg4MCwweDJkLDB4ZTgsMHgxOSwweDM4LDB4MDIsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGQyYzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA4LDB4MDgsMHg0MCwweGYzLDB4MTAsMHhiMCwweGM0IH0gfSwKLXsgIDE2LCAweGQyZDAsIDAsIHsweDA4LDB4M2EsMHgwMiwweDRjLDB4OTAsMHhmMywweDEwLDB4M2MsMHhjYywweDA4LDB4MzEsMHgwMywweDBjLDB4NDksMHhiMCwweDQwIH0gfSwKLXsgIDE2LCAweGQyZTAsIDAsIHsweDMwLDB4MDUsMHgwZiwweDMwLDB4MDcsMHgyMSwweDQwLDB4NDMsMHgwMSwweDNlLDB4YzIsMHgxYywweDMwLDB4NDMsMHgxMiwweDAyIH0gfSwKLXsgIDE2LCAweGQyZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDBkLDB4YmMsMHgxMCwweGZjLDB4MTAsMHgzZiwweGM1IH0gfSwKLXsgIDE2LCAweGQzMDAsIDAsIHsweDBmLDB4ZjEsMHgwMSwweGJjLDB4MDQsMHhmZiwweDA0LDB4M2YsMHhjNCwweDBmLDB4YjEsMHg0YiwweGZjLDB4NjQsMHhmNywweDAwIH0gfSwKLXsgIDE2LCAweGQzMTAsIDAsIHsweDM3LDB4YzAsMHgwZiwweDcyLDB4NTMsMHhhYywweDQ0LDB4ZmYsMHgwMSwweDNmLDB4YzksMHgwZiwweGY0LDB4MDMsMHhkMCwweDA2IH0gfSwKLXsgIDE2LCAweGQzMjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwOCwweGZhLDB4MDAsMHgzZSwweGUwIH0gfSwKLXsgIDE2LCAweGQzMzAsIDAsIHsweDBjLDB4YjAsMHgwMywweDJjLDB4MDAsMHhjYiwweDAyLDB4M2UsMHhjYSwweDBmLDB4YjIsMHgwNywweDJlLDB4MDAsMHhkYiwweDAyIH0gfSwKLXsgIDE2LCAweGQzNDAsIDAsIHsweDMyLDB4MDgsMHgwZiwweDMxLDB4MDMsMHgyYywweDAwLDB4Y2IsMHgwNCwweDNlLDB4ODAsMHgwYywweDM1LDB4MDMsMHgyYSwweDAwIH0gfSwKLXsgIDE2LCAweGQzNTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDExLDB4OTQsMHgwMCwweGI1LDB4MDAsMHgyZCwweGM4IH0gfSwKLXsgIDE2LCAweGQzNjAsIDAsIHsweDA4LDB4NzAsMHgwYSwweDFjLDB4MjIsMHg4NywweDAwLDB4MmQsMHhjOSwweDBiLDB4ZjIsMHg4MiwweDljLDB4ODAsMHhhNiwweDAwIH0gfSwKLXsgIDE2LCAweGQzNzAsIDAsIHsweDA5LDB4OGIsMHgwYiwweDcwLDB4MGEsMHgxYywweDAyLDB4ODUsMHgwMCwweDJkLDB4NDAsMHgwOCwweDcwLDB4MDIsMHg5MiwweDA0IH0gfSwKLXsgIDE2LCAweGQzODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGI3LDB4ODAsMHgyYywweGVjIH0gfSwKLXsgIDE2LCAweGQzOTAsIDAsIHsweDA4LDB4N2IsMHgwMiwweDVlLDB4NDAsMHg4NSwweDg5LDB4MmQsMHhlYywweDhiLDB4N2IsMHgwMiwweDRlLDB4ODQsMHg4ZiwweDgwIH0gfSwKLXsgIDE2LCAweGQzYTAsIDAsIHsweDI1LDB4NjQsMHgwYiwweGZhLDB4MDIsMHgxMiwweDA4LDB4OTcsMHg4MCwweDZmLDB4ZTEsMHgwOCwweDdhLDB4MDIsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGQzYjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDE0LDB4Y2MsMHgyMCwweGIzLDB4NjQsMHgyYywweGMwIH0gfSwKLXsgIDE2LCAweGQzYzAsIDAsIHsweDA4LDB4MzAsMHgwNiwweDBjLDB4MTAsMHg4MywweDhhLDB4NmMsMHhjMCwweDViLDB4MzAsMHg0MiwweGNjLDB4MDAsMHhhYiwweDEwIH0gfSwKLXsgIDE2LCAweGQzZDAsIDAsIHsweDJjLDB4ZjIsMHgwYiwweDMwLDB4MDIsMHgwZCwweDAwLDB4OTMsMHgwNCwweDJjLDB4ZDUsMHgwOCwweDMwLDB4MGEsMHg5MiwweDA0IH0gfSwKLXsgIDE2LCAweGQzZTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDE1LDB4YmIsMHgwMCwweGZlLDB4YzAsMHgzZSwweDgwIH0gfSwKLXsgIDE2LCAweGQzZjAsIDAsIHsweDJjLDB4YTAsMHgwMywweDY4LDB4MDAsMHhjNiwweDQwLDB4M2YsMHg4MCwweDBmLDB4YTAsMHgwMiwweDY4LDB4MDAsMHhjZSwweDQ0IH0gfSwKLXsgIDE2LCAweGQ0MDAsIDAsIHsweDM2LDB4OTAsMHg0ZiwweDYwLDB4MDMsMHgxYiwweDcwLDB4ZGUsMHhkOCwweDNmLDB4YTAsMHgwYywweDIwLDB4MDMsMHgzYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ0MTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ZTAsMHg0MCwweGY4LDB4MTAsMHgzZSwweDAwIH0gfSwKLXsgIDE2LCAweGQ0MjAsIDAsIHsweDBmLDB4ODAsMHgwMywweGEwLDB4MTAsMHhmOCwweDQyLDB4M2UsMHgxMCwweDFmLDB4ODAsMHgwMywweGEwLDB4MDAsMHhlOCwweDBjIH0gfSwKLXsgIDE2LCAweGQ0MzAsIDAsIHsweDNhLDB4MDQsMHgxZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZTgsMHg0NSwweDdlLDB4MDIsMHgyZiwweDgwLDB4MDMsMHhkMiwweDAwIH0gfSwKLXsgIDE2LCAweGQ0NDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4NjQsMHgwMCwweGU5LDB4ODAsMHgzMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ0NTAsIDAsIHsweDBmLDB4OTAsMHgwYiwweDA0LDB4MDgsMHhkOSwweDgwLDB4MzYsMHg0MCwweDBmLDB4MTAsMHgxMywweDI0LDB4MDgsMHhmOSwweDAwIH0gfSwKLXsgIDE2LCAweGQ0NjAsIDAsIHsweDcyLDB4NzAsMHgwZiwweDkxLDB4MTMsMHgyNCwweDEwLDB4YzksMHgxMCwweDNlLDB4NjksMHgwYywweDkwLDB4MDMsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGQ0NzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA0LDB4NjQsMHgwOCwweGI5LDB4ODAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ0ODAsIDAsIHsweDBiLDB4MTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweGM0LDB4MjIsMHg1MiwweDBiLDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGQ0OTAsIDAsIHsweDIyLDB4ZTAsMHgwYiwweDkwLDB4MTIsMHgyNCwweDA0LDB4ZDksMHg0YSwweDJlLDB4NjAsMHgwOCwweDkwLDB4MDMsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGQ0YTAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGIxLDB4MTgsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ0YjAsIDAsIHsweDBiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4YiwweDIwLDB4MjYsMHg0OSwweDBiLDB4OTAsMHgwMiwweDY0LDB4MDAsMHhiOSwweDAwIH0gfSwKLXsgIDE2LCAweGQ0YzAsIDAsIHsweGEyLDB4NDAsMHgwYiwweDkwLDB4OGEsMHgyNCwweDAwLDB4OGIsMHgwMCwweDJjLDB4NDAsMHhhOCwweDkwLDB4MDIsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGQ0ZDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDQsMHg4NCwweGIxLDB4MjAsMHhhMCwweDQ4IH0gfSwKLXsgIDE2LCAweGQ0ZTAsIDAsIHsweDBiLDB4MTEsMHgwNiwweDA0LDB4MDAsMHg4MywweDAwLDB4MDAsMHg0MCwweDRiLDB4MTEsMHgwMiwweDA0LDB4NDksMHhiMSwweDEwIH0gfSwKLXsgIDE2LCAweGQ0ZjAsIDAsIHsweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHgyNCwweDQxLDB4OTEsMHgwMCwweDJjLDB4NTAsMHgwOCwweDEwLDB4MDIsMHg0MiwweDAxIH0gfSwKLXsgIDE2LCAweGQ1MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiOCwweDBkLDB4NjksMHg0MCwweGU4LDB4NTAsMHgzMiwweDE0IH0gfSwKLXsgIDE2LCAweGQ1MTAsIDAsIHsweDBmLDB4ODYsMHg5MywweDIxLDB4ZTIsMHhjOCwweDAwLDB4MzYsMHgwYSwweDBiLDB4ODYsMHg4YiwweDYxLDB4YTgsMHhmOCwweDQwIH0gfSwKLXsgIDE2LCAweGQ1MjAsIDAsIHsweDIyLDB4ODAsMHgwZiwweDgyLDB4YTMsMHgyMSwweDA4LDB4YzgsMHgwMiwweDNlLDB4MDAsMHgwYywweDgwLDB4NDMsMHgyZSwweDAzIH0gfSwKLXsgIDE2LCAweGQ1MzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDFkLDB4ZjQsMHg0OCwweGZkLDB4MTIsMHgzZSwweDQ0IH0gfSwKLXsgIDE2LCAweGQ1NDAsIDAsIHsweDBmLDB4MTIsMHgwMywweGM0LDB4MDAsMHg3ZCwweDAxLDB4MWUsMHg0MCwweDBiLDB4OTIsMHgwMywweGU0LDB4ODAsMHhmNSwweDIwIH0gfSwKLXsgIDE2LCAweGQ1NTAsIDAsIHsweDM2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhkNCwweDkwLDB4N2QsMHgwMCwweDNkLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNiwweDA2IH0gfSwKLXsgIDE2LCAweGQ1NjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZjYsMHhjMSwweGRkLDB4ODgsMHgzMiwweDcyIH0gfSwKLXsgIDE2LCAweGQ1NzAsIDAsIHsweDBjLDB4OTgsMHgwMywweDI2LDB4MjIsMHhkZCwweDAwLDB4M2YsMHg2MiwweDJjLDB4OTksMHg4MywweDQ2LDB4YTAsMHhjOSwweDQwIH0gfSwKLXsgIDE2LCAweGQ1ODAsIDAsIHsweGIyLDB4NDAsMHgwZiwweGQ4LDB4MDMsMHgyNCwweDAwLDB4ZmQsMHgwMCwweDMzLDB4NTEsMHgyYywweGQ4LDB4ODMsMHgwNiwweDAwIH0gfSwKLXsgIDE2LCAweGQ1OTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDEwLDB4ZTMsMHhjMiwweDg4LDB4YzAsMHgyMiwweDMwIH0gfSwKLXsgIDE2LCAweGQ1YTAsIDAsIHsweDA4LDB4OGMsMHg0MiwweDIyLDB4MTEsMHg4YSwweDAxLDB4MmUsMHgwMCwweDA4LDB4ODgsMHg1MiwweDIzLDB4MDAsMHg4MCwweGEzIH0gfSwKLXsgIDE2LCAweGQ1YjAsIDAsIHsweDJhLDB4MDAsMHg0YiwweDgwLDB4NDIsMHgyMiwweGEwLDB4YjgsMHgwMCwweDIyLDB4MjgsMHgwOCwweDg0LDB4MDIsMHg4ZSwweDA0IH0gfSwKLXsgIDE2LCAweGQ1YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweDgxLDB4MmQsMHgyMCwweDQ4IH0gfSwKLXsgIDE2LCAweGQ1ZDAsIDAsIHsweDY4LDB4MTQsMHg4MCwweDA0LDB4MjAsMHg4MSwweDAwLDB4MmUsMHg0MCwweDBiLDB4MTIsMHgxMiwweDA0LDB4MjQsMHg4MSwweDIwIH0gfSwKLXsgIDE2LCAweGQ1ZTAsIDAsIHsweDIwLDB4NDAsMHgwYiwweDk0LDB4MzIsMHgwNCwweDkwLDB4YjksMHgwMCwweDIwLDB4NDAsMHg0OCwweDEwLDB4NGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGQ1ZjAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MjAsMHgyMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ2MDAsIDAsIHsweDA4LDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDgsMHg4OSwweDQwIH0gfSwKLXsgIDE2LCAweGQ2MTAsIDAsIHsweDIyLDB4NTAsMHgwYiwweGIwLDB4MDIsMHgyNCwweDIwLDB4YjksMHgwOSwweGEyLDB4NDQsMHgwOCwweDkwLDB4MDIsMHg4NiwweDA0IH0gfSwKLXsgIDE2LCAweGQ2MjAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDE1LDB4ZTQsMHgwMCwweGQ5LDB4MDgsMHhiMiwweDQwIH0gfSwKLXsgIDE2LCAweGQ2MzAsIDAsIHsweDRjLDB4MTAsMHgyMywweDA0LDB4MDQsMHhkOSwweGMxLDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwYiwweDA0LDB4MDgsMHhjMSwweDQwIH0gfSwKLXsgIDE2LCAweGQ2NDAsIDAsIHsweDEyLDB4NDAsMHgwZiwweDkwLDB4NDMsMHgyNCwweDA0LDB4ZjEsMHg0MSwweDMwLDB4NzgsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0IH0gfSwKLXsgIDE2LCAweGQ2NTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4ODYsMHg2NCwweGY5LDB4ODAsMHgzZSwweDQwIH0gfSwKLXsgIDE2LCAweGQ2NjAsIDAsIHsweDBmLDB4OTAsMHgwYiwweGU0LDB4MDAsMHhmOSwweDk4LDB4M2UsMHg0MCwweDJmLDB4MTAsMHgwMywweGE0LDB4MDIsMHhmOSwweDEwIH0gfSwKLXsgIDE2LCAweGQ2NzAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhlNiwweDQwLDB4ZjksMHg5MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2ODAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4NDEsMHgzMiwweDAwIH0gfSwKLXsgIDE2LCAweGQ2OTAsIDAsIHsweDBjLDB4ODAsMHgwNywweDIwLDB4MTAsMHhjOCwweDEwLDB4M2UsMHgwYywweDBlLDB4ODAsMHgwMywweGUwLDB4MDQsMHhjOCwweDAwIH0gfSwKLXsgIDE2LCAweGQ2YTAsIDAsIHsweGJhLDB4MDAsMHgwZiwweDgxLDB4NDMsMHgyMCwweDAwLDB4ZjgsMHg3MCwweDNlLDB4MDAsMHgwZiwweDAwLDB4MGIsMHgwYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ2YjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4MzksMHgwMiwweDhlLDB4MjAsMHhhMywweDgwIH0gfSwKLXsgIDE2LCAweGQ2YzAsIDAsIHsweDI4LDB4ZTAsMHgwYSwweDM4LDB4MTAsMHhhZSwweDA0LDB4M2QsMHhhMSwweDhlLDB4ZTAsMHgwMiwweGY4LDB4MDAsMHg4ZSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2ZDAsIDAsIHsweDc2LDB4ODAsMHgwYiwweDYwLDB4MDMsMHg3OCwweDAwLDB4YmUsMHg0MCwweDJmLDB4ODIsMHgwYiwweGEwLDB4MDMsMHhjYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ2ZTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGQsMHgwMCwweDhiLDB4ODgsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGQ2ZjAsIDAsIHsweDE4LDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4MywweDQ0LDB4MmMsMHhkMCwweDFiLDB4MzAsMHgxMiwweGNjLDB4MDYsMHg4MywweDAwIH0gfSwKLXsgIDE2LCAweGQ3MDAsIDAsIHsweDIwLDB4YzEsMHgwYiwweDMwLDB4ODIsMHgwYywweDAxLDB4YjMsMHgwMCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwIH0gfSwKLXsgIDE2LCAweGQ3MTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDAxLDB4MWMsMHgwMCwweDg1LDB4MDAsMHgyMCwweGNjIH0gfSwKLXsgIDE2LCAweGQ3MjAsIDAsIHsweDA4LDB4NzAsMHgwNiwweDFjLDB4ODQsMHhhNywweDAxLDB4MjksMHhjMCwweDBiLDB4NzIsMHgyMiwweGRjLDB4ODAsMHg4NywweDM0IH0gfSwKLXsgIDE2LCAweGQ3MzAsIDAsIHsweDYxLDB4ODAsMHgwYiwweDEwLDB4MDIsMHg1YywweDAwLDB4YjcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhlOCwweDAwIH0gfSwKLXsgIDE2LCAweGQ3NDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA4LDB4MGUsMHgwMCwweDhjLDB4ODAsMHgzMSwweGUwIH0gfSwKLXsgIDE2LCAweGQ3NTAsIDAsIHsweDBjLDB4ZmUsMHgwMiwweDNmLDB4MDAsMHhjNSwweDgwLDB4MmQsMHhlMCwweDBlLDB4NzgsMHgwMywweGRmLDB4YTAsMHhjNywweGEwIH0gfSwKLXsgIDE2LCAweGQ3NjAsIDAsIHsweDIxLDB4NjAsMHgwZiwweDc4LDB4MDMsMHgxZSwweDgwLDB4ZjcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDc4LDB4MDMsMHgyYSwweDAyIH0gfSwKLXsgIDE2LCAweGQ3NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDFkLDB4YWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGMwIH0gfSwKLXsgIDE2LCAweGQ3ODAsIDAsIHsweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSwweDAwLDB4M2UsMHhjMCwweDA2LDB4YjAsMHgwMywweGVjLDB4ODAsMHhmYiwweDI4IH0gfSwKLXsgIDE2LCAweGQ3OTAsIDAsIHsweDM2LDB4ZDgsMHg0ZiwweGEwLDB4MDMsMHhlYywweDEwLDB4ZmEsMHgwMCwweDNlLDB4NTAsMHgwZiwweDMwLDB4MDMsMHhjMiwweDA2IH0gfSwKLXsgIDE2LCAweGQ3YTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmEsMHgwMCwweGNjLDB4ODAsMHhiMywweGUwIH0gfSwKLXsgIDE2LCAweGQ3YjAsIDAsIHsweDBmLDB4ZjgsMHgwMywweDNlLDB4MDAsMHhjZiwweDkwLDB4M2YsMHg2MCwweDRmLDB4ZjgsMHhjMywweDNlLDB4MDAsMHhlZiwweDgwIH0gfSwKLXsgIDE2LCAweGQ3YzAsIDAsIHsweDMzLDB4ZjAsMHgwYywweDdhLDB4MDMsMHgzZSwweDcwLDB4YzUsMHg5MCwweDMzLDB4ZjEsMHgwYywweDc4LDB4MDMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGQ3ZDAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDExLDB4YjgsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwIH0gfSwKLXsgIDE2LCAweGQ3ZTAsIDAsIHsweDBiLDB4NzAsMHg0YSwweDFjLDB4MDAsMHg4NywweDEwLDB4MmQsMHhjMCwweDRiLDB4NzEsMHgwYSwweDNjLDB4NDQsMHg4ZiwweDEyIH0gfSwKLXsgIDE2LCAweGQ3ZjAsIDAsIHsweDIxLDB4ODYsMHgwZCwweDcyLDB4MDIsMHgxZSwweDAwLDB4ODcsMHgwMCwweDIzLDB4NDAsMHgwOCwweDcwLDB4MGEsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ4MDAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDg0LDB4MDAsMHgyNSwweGMwIH0gfSwKLXsgIDE2LCAweGQ4MTAsIDAsIHsweDBiLDB4NzEsMHgwYSwweDBjLDB4MDAsMHhhNywweDEyLDB4MmQsMHg4NCwweDBiLDB4NzAsMHgwYSwweDFjLDB4MDAsMHhiNywweDA4IH0gfSwKLXsgIDE2LCAweGQ4MjAsIDAsIHsweDIzLDB4NDAsMHgwOSwweGYzLDB4MWEsMHg1YywweDg2LDB4OTcsMHgwOCwweDI1LDB4NDAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGQ4MzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDE0LDB4Y2MsMHgyMCwweDgxLDB4MjAsMHgyNiwweGMwIH0gfSwKLXsgIDE2LCAweGQ4NDAsIDAsIHsweDBiLDB4MzAsMHgwMiwweDJjLDB4MDAsMHg4MiwweDQyLDB4MmMsMHg4MCwweDBiLDB4MzAsMHgyMiwweDBjLDB4MDgsMHg5YiwweDgwIH0gfSwKLXsgIDE2LCAweGQ4NTAsIDAsIHsweDIwLDB4ZTAsMHgwOSwweDIwLDB4MDIsMHg0ZCwweDA4LDB4OTIsMHgwMCwweDI0LDB4ZTUsMHgwOCwweDMwLDB4MGEsMHgwOCwweDA0IH0gfSwKLXsgIDE2LCAweGQ4NjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4YWUsMHg4MiwweGNhLDB4ZTAsMHhiNywweGMwIH0gfSwKLXsgIDE2LCAweGQ4NzAsIDAsIHsweDBmLDB4ZjAsMHgxMywweDNjLDB4MGEsMHhjOSwweGM4LDB4M2UsMHg0MCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDQsMHhmZiwweDg0IH0gfSwKLXsgIDE2LCAweGQ4ODAsIDAsIHsweDMyLDB4YzAsMHgwZCwweDkwLDB4MTMsMHg3YywweDAwLDB4ZDksMHgwMCwweGY2LDB4YzAsMHgyYywweDEwLDB4MDMsMHgyYSwweDA0IH0gfSwKLXsgIDE2LCAweGQ4OTAsIDAsIHsweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZTQsMHgwMCwweGYzLDB4MDAsMHgzYSwweGMxIH0gfSwKLXsgIDE2LCAweGQ4YTAsIDAsIHsweDRmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOSwweDA4LDB4M2MsMHgwMCwweDBmLDB4MzAsMHgxMywweGVjLDB4MDAsMHhlYiwweDA0IH0gfSwKLXsgIDE2LCAweGQ4YjAsIDAsIHsweGJlLDB4MTgsMHgwZiwweDkwLDB4MjMsMHhhYywweDYwLDB4ZTksMHgwMiwweDNhLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlMCwweDAwIH0gfSwKLXsgIDE2LCAweGQ4YzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGNhLDB4MDAsMHgzMywweGMwIH0gfSwKLXsgIDE2LCAweGQ4ZDAsIDAsIHsweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjZCwweDAyLDB4N2YsMHg0MCwweDBjLDB4ZjAsMHg0MiwweDNjLDB4MDAsMHhjZiwweDA4IH0gfSwKLXsgIDE2LCAweGQ4ZTAsIDAsIHsweDM3LDB4MTAsMHgwZiwweGQwLDB4MDMsMHhmYywweDEwLDB4Y2QsMHgwOCwweDNmLDB4NjYsMHgyYywweGQ5LDB4MDMsMHgwMCwweDQ0IH0gfSwKLXsgIDE2LCAweGQ4ZjAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDA0LDB4NjMsMHg4MCwweDhiLDB4ZTAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGQ5MDAsIDAsIHsweDA4LDB4YjAsMHgyMiwweGVjLDB4MDAsMHhkOCwweDgwLDB4NmUsMHgyMCwweDY4LDB4YjAsMHgxYSwweDJjLDB4MDEsMHhmYiwweDAwIH0gfSwKLXsgIDE2LCAweGQ5MTAsIDAsIHsweDIyLDB4MTgsMHgwYiwweDg4LDB4NDMsMHg0YywweDAwLDB4ODgsMHhhMCwweDJjLDB4YzAsMHgxZCwweDkwLDB4MDIsMHgyMCwweDQwIH0gfSwKLXsgIDE2LCAweGQ5MjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MDgsMHg4MCwweDhiLDB4MjAsMHgyMiwweGMwIH0gfSwKLXsgIDE2LCAweGQ5MzAsIDAsIHsweDA4LDB4YjAsMHgyMiwweGVjLDB4MDAsMHg4OCwweDg4LDB4MmUsMHg2MiwweDQ4LDB4YjAsMHgxYSwweGNjLDB4MDAsMHg4YiwweDAwIH0gfSwKLXsgIDE2LCAweGQ5NDAsIDAsIHsweDI2LDB4YzAsMHg0YSwweDg4LDB4MDIsMHhlYywweDAwLDB4MDgsMHg4NCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGQ5NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MDAsMHgwMCwweDgzLDB4MDAsMHg2MCwweGMwIH0gfSwKLXsgIDE2LCAweGQ5NjAsIDAsIHsweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHg5MCwweDA2LDB4NmMsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHhhMywweDA0IH0gfSwKLXsgIDE2LCAweGQ5NzAsIDAsIHsweDIwLDB4MDAsMHg4YiwweDAwLDB4MDYsMHg0YywweDIxLDB4ODAsMHgwMCwweDZjLDB4YzAsMHg0OSwweDEwLDB4MGEsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGQ5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4NmMsMHgwMCwweGNhLDB4MDAsMHhiMiwweGMxIH0gfSwKLXsgIDE2LCAweGQ5OTAsIDAsIHsweDg4LDB4YjQsMHgwMywweGVjLDB4MTAsMHhjOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4YjAsMHgwYiwweGJjLDB4MDgsMHg4ZiwweDAwIH0gfSwKLXsgIDE2LCAweGQ5YTAsIDAsIHsweDM2LDB4MDAsMHgwNiwweDgwLDB4MDMsMHhlYywweDgwLDB4YzgsMHgwMiwweDNmLDB4YzEsMHgwYywweDkwLDB4MDMsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweGQ5YjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDFkLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH0gfSwKLXsgIDE2LCAweGQ5YzAsIDAsIHsweDBmLDB4NzIsMHg4MywweGZjLDB4MTgsMHhmYywweDAzLDB4M2YsMHgwMCwweDhmLDB4NzAsMHgwMywweDdjLDB4MDAsMHhmZiwweDAwIH0gfSwKLXsgIDE2LCAweGQ5ZDAsIDAsIHsweDNkLDB4MDAsMHgwZiwweGMwLDB4MjMsMHg4YywweDA2LDB4ZmMsMHgwMCwweDNmLDB4NDAsMHgwZSwweGQwLDB4MDMsMHhlOCwweDA2IH0gfSwKLXsgIDE2LCAweGQ5ZTAsIDAsIHsweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDEsMHgwMywweDcwLDB4NDAsMHhkYywweDEwIH0gfSwKLXsgIDE2LCAweGQ5ZjAsIDAsIHsweDM3LDB4MDQsMHgwZCwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDM3LDB4MDQsMHgwZCwweGMxLDB4MDEsMHg3MCwweDQwIH0gfSwKLXsgIDE2LCAweGRhMDAsIDAsIHsweDljLDB4MTAsMHgxNywweDE0LDB4MDUsMHhjMSwweDAzLDB4NzAsMHg0MCwweGRjLDB4MTAsMHgxNywweDA0LDB4MGQsMHhjMCwweDMxIH0gfSwKLXsgIDE2LCAweGRhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwIH0gfSwKLXsgIDE2LCAweGRhMjAsIDAsIHsweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHgyMSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDEsMHg3MSwweDAxIH0gfSwKLXsgIDE2LCAweGRhMzAsIDAsIHsweDVjLDB4NDAsMHgxNywweDEwLDB4MDUsMHhjNCwweDA1LDB4NzEsMHgwNSwweDVjLDB4NDEsMHg1NywweDEwLDB4MTUsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGRhNDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH0gfSwKLXsgIDE2LCAweGRhNTAsIDAsIHsweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGRhNjAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDIwIH0gfSwKLXsgIDE2LCAweGRhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHg1OCwweDAwIH0gfSwKLXsgIDE2LCAweGRhODAsIDAsIHsweDE2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDE2LDB4MDAsMHgwNSwweDgwLDB4MDUsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGRhOTAsIDAsIHsweDU4LDB4MDAsMHgxNiwweDE4LDB4MDEsMHg4MCwweDAxLDB4NjAsMHgwMCwweDU4LDB4MDAsMHg1NiwweDAwLDB4MDUsMHg4MCwweDIwIH0gfSwKLXsgIDE2LCAweGRhYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDgsMHgwNSwweDIyLDB4MDEsMHgxYywweDgwIH0gfSwKLXsgIDE2LCAweGRhYjAsIDAsIHsweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDQxIH0gfSwKLXsgIDE2LCAweGRhYzAsIDAsIHsweDVjLDB4ODAsMHg1NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg0NywweDIwLDB4MTUsMHhjMCwweDMxIH0gfSwKLXsgIDE2LCAweGRhZDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweGRhZTAsIDAsIHsweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGRhZjAsIDAsIHsweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDMxIH0gfSwKLXsgIDE2LCAweGRiMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH0gfSwKLXsgIDE2LCAweGRiMTAsIDAsIHsweDQyLDB4MjAsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHg4MCwweDQyLDB4MjAsMHgxMCwweDgwLDB4MDQsMHgyMywweDAxIH0gfSwKLXsgIDE2LCAweGRiMjAsIDAsIHsweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg4OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4MDAsMHg0MiwweDIwLDB4MTAsMHg4MCwweDIxIH0gfSwKLXsgIDE2LCAweGRiMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NGEsMHgwNSwweDQyLDB4ODEsMHg1MCwweGEwIH0gfSwKLXsgIDE2LCAweGRiNDAsIDAsIHsweDQ0LDB4MmMsMHgxMSwweDBiLDB4MDQsMHg0MiwweDgxLDB4MTAsMHhlMCwweDU0LDB4MjgsMHgxMSwweDAyLDB4MDAsMHg0MiwweDgxIH0gfSwKLXsgIDE2LCAweGRiNTAsIDAsIHsweDEwLDB4YTAsMHg0NCwweDM4LDB4MTEsMHgwYiwweDA1LDB4NDIsMHg4MSwweDEwLDB4MjEsMHgxNCwweDI4LDB4MTUsMHgwMCwweDMxIH0gfSwKLXsgIDE2LCAweGRiNjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MGMsMHgwMSwweDU3LDB4MDAsMHg1NCwweGMwIH0gfSwKLXsgIDE2LCAweGRiNzAsIDAsIHsweDE1LDB4MzAsMHgwNCwweDRjLDB4MDEsMHgxMywweDAwLDB4NTQsMHhjMCwweDE1LDB4NzAsMHgwNSwweDRjLDB4MDEsMHg1MywweDAwIH0gfSwKLXsgIDE2LCAweGRiODAsIDAsIHsweDU0LDB4YzAsMHgxNSwweDMwLDB4ODUsMHg0YywweDAxLDB4MTMsMHgwMCwweDU0LDB4YzAsMHgxNSwweDMwLDB4MDUsMHg0MCwweDIxIH0gfSwKLXsgIDE2LCAweGRiOTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGRiYTAsIDAsIHsweDA0LDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MTAsMHg2MiwweDA0LDB4MDAsMHgwMSwweDA4LDB4MDQsMHg0MSwweDAwIH0gfSwKLXsgIDE2LCAweGRiYjAsIDAsIHsweDEwLDB4MDAsMHg0NCwweDE4LDB4MTEsMHgwMCwweDAwLDB4MTAsMHgwMCwweDEwLDB4ODAsMHgwNCwweDAwLDB4MDEsMHgwMSwweDIwIH0gfSwKLXsgIDE2LCAweGRiYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwIH0gfSwKLXsgIDE2LCAweGRiZDAsIDAsIHsweDIwLDB4ODAsMHgwOCwweDYwLDB4MDIsMHgxOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDAsMHgwOCwweDIwIH0gfSwKLXsgIDE2LCAweGRiZTAsIDAsIHsweDgyLDB4MDAsMHgwMCwweDgwLDB4ODAsMHgyMCwweDAyLDB4MTgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgwMSwweDMxIH0gfSwKLXsgIDE2LCAweGRiZjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwNSwweDY0LDB4MDEsMHg1OCwweDAwIH0gfSwKLXsgIDE2LCAweGRjMDAsIDAsIHsweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCwweDU2LDB4NDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxIH0gfSwKLXsgIDE2LCAweGRjMTAsIDAsIHsweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg3NiwweDAwLDB4MTUsMHg4MCwweDMxIH0gfSwKLXsgIDE2LCAweGRjMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH0gfSwKLXsgIDE2LCAweGRjMzAsIDAsIHsweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4OTgsMHgwMCwweDM2LDB4MDAsMHgxZCwweDg4LDB4MDUsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGRjNDAsIDAsIHsweGQ4LDB4MDAsMHgxNiwweDAwLDB4MGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4ODAsMHg0NiwweDAwLDB4MGQsMHg4MCwweDMxIH0gfSwKLXsgIDE2LCAweGRjNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwIH0gfSwKLXsgIDE2LCAweGRjNjAsIDAsIHsweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMiwweDQxLDB4MDgsMHgxOCwweGMyLDB4MDQsMHgzMCwweDg5IH0gfSwKLXsgIDE2LCAweGRjNzAsIDAsIHsweDBjLDB4MjAsMHgwMywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMCwweDEwIH0gfSwKLXsgIDE2LCAweGRjODAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH0gfSwKLXsgIDE2LCAweGRjOTAsIDAsIHsweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGRjYTAsIDAsIHsweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAxIH0gfSwKLXsgIDE2LCAweGRjYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwIH0gfSwKLXsgIDE2LCAweGRjYzAsIDAsIHsweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMzLDB4MDEsMHgzMCwweDgwIH0gfSwKLXsgIDE2LCAweGRjZDAsIDAsIHsweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MzAsMHgxMywweDA4LDB4MDQsMHhjMCwweDIxIH0gfSwKLXsgIDE2LCAweGRjZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwNSwweDYwLDB4ODEsMHg1OCwweDIwIH0gfSwKLXsgIDE2LCAweGRjZjAsIDAsIHsweDU2LDB4MDgsMHgxMSwweDgyLDB4MDUsMHg2MCwweDgxLDB4NTgsMHgyMCwweDU2LDB4MDgsMHgxMSwweDgzLDB4MDAsMHg2MCwweDgxIH0gfSwKLXsgIDE2LCAweGRkMDAsIDAsIHsweDU4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MzAsMHg1NiwweDA4LDB4MTUsMHg4MCwweDMwIH0gfSwKLXsgIDE2LCAweGRkMTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwIH0gfSwKLXsgIDE2LCAweGRkMjAsIDAsIHsweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgzMCwweDgwIH0gfSwKLXsgIDE2LCAweGRkMzAsIDAsIHsweDA4LDB4MjAsMHgwMiwweDAwLDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMywweDA4LDB4MDAsMHg4MCwweDMxIH0gfSwKLXsgIDE2LCAweGRkNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwIH0gfSwKLXsgIDE2LCAweGRkNTAsIDAsIHsweDQ2LDB4NDgsMHgxMSwweDkyLDB4MDQsMHg2MCwweDgxLDB4MTksMHgyMCwweDQ2LDB4MjgsMHgxMSwweDgyLDB4MDAsMHgzNCwweDgxIH0gfSwKLXsgIDE2LCAweGRkNjAsIDAsIHsweDE4LDB4MjAsMHg0NiwweDQ4LDB4MTEsMHg5MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAsMHg0MywweDA4LDB4MTEsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGRkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NjAsMHgwNCwweDU4LDB4MDEsMHg1NiwweDAwIH0gfSwKLXsgIDE2LCAweGRkODAsIDAsIHsweDU1LDB4ODAsMHgxNSwweDYwLDB4MDQsMHg1OCwweDAxLDB4MTYsMHgwMCwweDU1LDB4ODAsMHgwMSwweDYwLDB4MDQsMHgxOCwweDAxIH0gfSwKLXsgIDE2LCAweGRkOTAsIDAsIHsweDU2LDB4MDAsMHg0NSwweDgwLDB4MTEsMHg2MCwweDA0LDB4NTgsMHgwMSwweDE2LDB4MDAsMHg0MSwweDgwLDB4MTEsMHg0MCwweDMxIH0gfSwKLXsgIDE2LCAweGRkYTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDYsMHgwMSwweDQxLDB4ODAsMHg1MCwweDYwIH0gfSwKLXsgIDE2LCAweGRkYjAsIDAsIHsweDE0LDB4MTgsMHgwNSwweDA2LDB4MDEsMHg0MSwweDgwLDB4NTAsMHg2MCwweDA0LDB4MTgsMHgwNSwweDA2LDB4MDAsMHg0MSwweDgwIH0gfSwKLXsgIDE2LCAweGRkYzAsIDAsIHsweDEwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NDEsMHg4MCwweDUwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwMCwweDIwIH0gfSwKLXsgIDE2LCAweGRkZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIwIH0gfSwKLXsgIDE2LCAweGRkZTAsIDAsIHsweDEwLDB4NDgsMHgwNCwweDEyLDB4MDEsMHgwMCwweDgwLDB4NDEsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwNCwweDgwIH0gfSwKLXsgIDE2LCAweGRkZjAsIDAsIHsweDQwLDB4MjAsMHg1MCwweDQ4LDB4MDQsMHgxMiwweDAxLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMCwweDIwIH0gfSwKLXsgIDE2LCAweGRlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwIH0gfSwKLXsgIDE2LCAweGRlMTAsIDAsIHsweDMwLDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDUsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHgwNSwweDgwIH0gfSwKLXsgIDE2LCAweGRlMjAsIDAsIHsweGQ0LDB4NjAsMHgxNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4MTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDMxIH0gfSwKLXsgIDE2LCAweGRlMzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDYsMHgwNSwweDcxLDB4ODAsMHg1YywweDYwIH0gfSwKLXsgIDE2LCAweGRlNDAsIDAsIHsweDk3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHgyMCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDMsMHg3MCwweDgxIH0gfSwKLXsgIDE2LCAweGRlNTAsIDAsIHsweDVjLDB4NjAsMHg1NywweDE4LDB4MTEsMHhjNiwweDA1LDB4MzEsMHg4MSwweDVjLDB4NjAsMHg3NywweDE4LDB4MTUsMHhjMCwweDMxIH0gfSwKLXsgIDE2LCAweGRlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDYsMHgwMywweDcxLDB4ODAsMHhkYywweDYwIH0gfSwKLXsgIDE2LCAweGRlNzAsIDAsIHsweDM3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDgwLDB4ZGQsMHg2MCwweDM3LDB4MTgsMHgwNSwweGM2LDB4MDEsMHg3NSwweDgxIH0gfSwKLXsgIDE2LCAweGRlODAsIDAsIHsweGRjLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjNiwweDAzLDB4NzEsMHg4NCwweDVjLDB4NjAsMHgxNywweDE4LDB4MTksMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGRlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwIH0gfSwKLXsgIDE2LCAweGRlYTAsIDAsIHsweDU3LDB4MTgsMHgxNCwweDg2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgwNSwweGM2LDB4MDQsMHgzMSwweDgxIH0gfSwKLXsgIDE2LCAweGRlYjAsIDAsIHsweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MCwweDVjLDB4NjAsMHg0MywweDE4LDB4MTUsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGRlYzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH0gfSwKLXsgIDE2LCAweGRlZDAsIDAsIHsweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHg3MCwweDgwIH0gfSwKLXsgIDE2LCAweGRlZTAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxNywweDA4LDB4MDQsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGRlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMSwweDYxLDB4ODAsMHg1OCwweDYwIH0gfSwKLXsgIDE2LCAweGRmMDAsIDAsIHsweDE2LDB4MTgsMHg0MSwweDg2LDB4MDEsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4M2MsMHgwNSwweDg2LDB4MDQsMHg2MSwweDgwIH0gfSwKLXsgIDE2LCAweGRmMTAsIDAsIHsweDE4LDB4NjAsMHgxNiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDU4LDB4NjAsMHg1NiwweDE4LDB4MTUsMHg4MCwweDEwIH0gfSwKLXsgIDE2LCAweGRmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDAsMHgwNSwweDcwLDB4MDEsMHg1YywweDAwIH0gfSwKLXsgIDE2LCAweGRmMzAsIDAsIHsweDU3LDB4MDAsMHgxNSwweGMwLDB4MDQsMHg3MCwweDAxLDB4NWMsMHgwMCwweDU3LDB4MDAsMHgxMCwweGMwLDB4MDQsMHg3MCwweDAwIH0gfSwKLXsgIDE2LCAweGRmNDAsIDAsIHsweDFjLDB4MDAsMHg0NywweDAwLDB4MTEsMHhjMCwweDA0LDB4NzAsMHgwMSwweDVjLDB4MDAsMHg0NywweDAwLDB4MDEsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGRmNTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwIH0gfSwKLXsgIDE2LCAweGRmNjAsIDAsIHsweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMCwweDgyLDB4MDAsMHg2MCwweDgwIH0gfSwKLXsgIDE2LCAweGRmNzAsIDAsIHsweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGRmODAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH0gfSwKLXsgIDE2LCAweGRmOTAsIDAsIHsweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGRmYTAsIDAsIHsweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MDAsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGRmYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDIsMHgwNSwweDQwLDB4ODEsMHg1MCwweDIwIH0gfSwKLXsgIDE2LCAweGRmYzAsIDAsIHsweDU0LDB4MDgsMHgxNSwweDAyLDB4MDUsMHg0MCwweDgxLDB4MTAsMHgyMCwweDU0LDB4MGMsMHgxNSwweDQyLDB4MDAsMHg0MCwweDgxIH0gfSwKLXsgIDE2LCAweGRmZDAsIDAsIHsweDUwLDB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA1LDB4NDAsMHg4MSwweDEwLDB4MjAsMHgxNCwweDA4LDB4MDUsMHgwMCwweDExIH0gfSwKLXsgIDE2LCAweGRmZTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDMsMHgwMSwweDUwLDB4YzAsMHg1NCwweDMwIH0gfSwKLXsgIDE2LCAweGRmZjAsIDAsIHsweDE1LDB4MDgsMHgwNSwweDQyLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEsMHg1MCwweGMwIH0gfSwKLXsgIDE2LCAweGUwMDAsIDAsIHsweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MiwweDAxLDB4NTAsMHhjMCwweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MCwweDEwIH0gfSwKLXsgIDE2LCAweGUwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwIH0gfSwKLXsgIDE2LCAweGUwMjAsIDAsIHsweDA0LDB4MjAsMHgwMSwweDg4LDB4MDAsMHg2MiwweDAwLDB4MTAsMHg4MCwweDA0LDB4MDAsMHgxMSwweDA4LDB4MDAsMHg0MiwweDAwIH0gfSwKLXsgIDE2LCAweGUwMzAsIDAsIHsweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMSwweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwIH0gfSwKLXsgIDE2LCAweGUwNTAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgyMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MjgsMHgwMCwweDAyLDB4MDIsMHgwMCwweDgwIH0gfSwKLXsgIDE2LCAweGUwNjAsIDAsIHsweDgwLDB4MjAsMHgyMCwweDBhLDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExIH0gfSwKLXsgIDE2LCAweGUwNzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NDAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwIH0gfSwKLXsgIDE2LCAweGUwODAsIDAsIHsweDU2LDB4MDAsMHgwNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwOCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDcsMHg2MCwweDAyIH0gfSwKLXsgIDE2LCAweGUwOTAsIDAsIHsweDU4LDB4MDAsMHg1NiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMywweDE4LDB4MDAsMHg3NiwweDAwLDB4MTUsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGUwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH0gfSwKLXsgIDE2LCAweGUwYjAsIDAsIHsweDM2LDB4MDAsMHgwZCwweDgwLDB4MDEsMHg2MCwweDAwLDB4ZDgsMHgwYSwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDUsMHg3MCwweDA5IH0gfSwKLXsgIDE2LCAweGUwYzAsIDAsIHsweGQ4LDB4MDEsMHgzNiwweDAwLDB4MGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHg1NywweDAwLDB4MGQsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGUwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MDEsMHgwYywweDAwIH0gfSwKLXsgIDE2LCAweGUwZTAsIDAsIHsweDQzLDB4MDAsMHgxMCwweGMwLDB4MDAsMHgzMCwweDAxLDB4MGMsMHgwMCwweDQzLDB4MjAsMHgxMCwweGMwLDB4MDQsMHg2MCwweDAxIH0gfSwKLXsgIDE2LCAweGUwZjAsIDAsIHsweDBjLDB4MDAsMHg0MywweDQwLDB4NTAsMHhjMSwweDA0LDB4MzAsMHgwMSwweDBjLDB4MDAsMHg0NiwweDAwLDB4MTAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGUxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH0gfSwKLXsgIDE2LCAweGUxMTAsIDAsIHsweDAxLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGQwLDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGUxMjAsIDAsIHsweDBjLDB4MDAsMHgwMywweDQwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBkLDB4MDAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGUxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgwMSwweDMxLDB4NDAsMHg0YywweDUwIH0gfSwKLXsgIDE2LCAweGUxNDAsIDAsIHsweDEzLDB4MTAsMHgwNCwweGM0LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MTEsMHgzMSwweDQxIH0gfSwKLXsgIDE2LCAweGUxNTAsIDAsIHsweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEsMHg0MCwweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGUxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgwNSwweDY4LDB4YzEsMHg1YSwweDMwIH0gfSwKLXsgIDE2LCAweGUxNzAsIDAsIHsweDU2LDB4OGMsMHgxMSwweGEzLDB4MDQsMHg2OCwweGMxLDB4MWEsMHgzMCwweDU2LDB4OGMsMHgxMSwweGEzLDB4MDUsMHg2OCwweGMwIH0gfSwKLXsgIDE2LCAweGUxODAsIDAsIHsweDVhLDB4MzAsMHg0NiwweDhjLDB4MTEsMHhhMywweDA0LDB4NjgsMHhjMSwweDVhLDB4MzAsMHgxNiwweDhjLDB4MTUsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGUxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGUxYTAsIDAsIHsweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MjAsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGUxYjAsIDAsIHsweDA4LDB4MDAsMHgwMiwweDQwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA5LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGUxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0NCwweDYyLDB4MDEsMHgxOCwweDg0IH0gfSwKLXsgIDE2LCAweGUxZDAsIDAsIHsweDQ2LDB4MjEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4NCwweDQ2LDB4MDEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDEwIH0gfSwKLXsgIDE2LCAweGUxZTAsIDAsIHsweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQsMHgwNiwweDIxLDB4MTEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGUxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDUwLDB4MTEsMHg1NCwweDA0IH0gfSwKLXsgIDE2LCAweGUyMDAsIDAsIHsweDU1LDB4MDEsMHgxMSwweDQwLDB4NDUsMHg1MCwweDExLDB4MTQsMHgwMCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDQsMHg1MCwweDAwIH0gfSwKLXsgIDE2LCAweGUyMTAsIDAsIHsweDE0LDB4MDQsMHg0NSwweDAwLDB4MTUsMHg0MCwweDQ0LDB4NTAsMHgxMSwweDE0LDB4MDQsMHg1NSwweDAxLDB4MTEsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGUyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgyMSwweDQyLDB4MDgsMHg1MCwweDgyIH0gfSwKLXsgIDE2LCAweGUyMzAsIDAsIHsweDE0LDB4MjAsMHg4NSwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiwweDA0LDB4MjAsMHg4NSwweDA4LDB4MjEsMHg0MiwweDA4IH0gfSwKLXsgIDE2LCAweGUyNDAsIDAsIHsweDUwLDB4ODIsMHgxNCwweDIwLDB4MDUsMHgwOCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODUsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwIH0gfSwKLXsgIDE2LCAweGUyNjAsIDAsIHsweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHg0MCwweDBhLDB4MDEsMHgwMiwweDgwIH0gfSwKLXsgIDE2LCAweGUyNzAsIDAsIHsweDQwLDB4YTAsMHgxMCwweDI4LDB4NDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4MDQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwIH0gfSwKLXsgIDE2LCAweGUyOTAsIDAsIHsweDM1LDB4MzAsMHgwZCwweDRjLDB4MDEsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MTAsMHgwYywweDRjLDB4MDMsMHg1MywweDAwIH0gfSwKLXsgIDE2LCAweGUyYTAsIDAsIHsweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0YywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGUyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweDcyLDB4MDEsMHg1YywweDgwIH0gfSwKLXsgIDE2LCAweGUyYzAsIDAsIHsweDE3LDB4MjAsMHgwNSwweGM4LDB4MDYsMHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDIsMHg3MiwweDAxIH0gfSwKLXsgIDE2LCAweGUyZDAsIDAsIHsweDVjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjOCwweDA1LDB4NzIsMHgwMSwweDVjLDB4ODAsMHgzNywweDIwLDB4MTEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGUyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgxOCwweDQwLDB4YzYsMHgxMiwweDMxIH0gfSwKLXsgIDE2LCAweGUyZjAsIDAsIHsweDg0LDB4OGMsMHgyMSwweDIzLDB4MDgsMHg0OCwweGM2LDB4MTIsMHgzMCwweDg0LDB4MGMsMHg2MSwweDIzLDB4MTAsMHg0OCwweGMyIH0gfSwKLXsgIDE2LCAweGUzMDAsIDAsIHsweDEyLDB4MzEsMHg4NCwweDhjLDB4MDEsMHgyMywweDA4LDB4NDgsMHhjNiwweDEyLDB4MzEsMHgwNCwweDhjLDB4NjEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmIH0gfSwKLXsgIDE2LCAweGUzMjAsIDAsIHsweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmIH0gfSwKLXsgIDE2LCAweGUzMzAsIDAsIHsweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmMsMHhkYiwweDBmLDB4YjYsMHhjMiwweGNkIH0gfSwKLXsgIDE2LCAweGUzODAsIDAsIHsweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhkZiwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDdlIH0gfSwKLXsgIDE2LCAweGUzOTAsIDAsIHsweGMyLDB4Y2QsMHhiMCwweGI3LDB4ZmQsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzMsMHgzYywweDRmLDB4Y2YsMHgxMywweDMzIH0gfSwKLXsgIDE2LCAweGUzYjAsIDAsIHsweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MsMHg0YywweGNmLDB4MTMsMHgzZiwweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MsMHg0YywweGZmIH0gfSwKLXsgIDE2LCAweGUzYzAsIDAsIHsweDEzLDB4MzMsMHhjNCwweGNmLDB4ZmQsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4MzMsMHhjNCwweGNjLDB4ZjEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGUzZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGI3IH0gfSwKLXsgIDE2LCAweGUzZTAsIDAsIHsweGU0LDB4ZWMsMHg3OSwweDNiLDB4MWUsMHg0ZSwweGRmLDB4OTMsMHhiZiwweGU0LDB4OGQsMHhmOSwweDNiLDB4NzgsMHg0ZSwweGZmIH0gfSwKLXsgIDE2LCAweGUzZjAsIDAsIHsweDkzLDB4YjcsMHhlNCwweGVkLDB4ZmQsMHgzYiwweDFlLDB4NGUsMHhkZiwweDkzLDB4YjcsMHg4NCwweGVkLDB4ZjksMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMiwweDcwLDB4NDAsMHg5YywweDEwIH0gfSwKLXsgIDE2LCAweGU0MTAsIDAsIHsweDI3LDB4MWMsMHgwOSwweGMxLDB4MDEsMHgzMCwweDQwLDB4MWMsMHgxMCwweDY3LDB4MDQsMHgwOSwweGMxLDB4MDIsMHg3MCwweDQxIH0gfSwKLXsgIDE2LCAweGU0MjAsIDAsIHsweDljLDB4MTEsMHgwNywweDE0LDB4MDEsMHhjMSwweDAyLDB4NzAsMHg0MCwweDljLDB4NTAsMHgwNywweDFjLDB4MDEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwIH0gfSwKLXsgIDE2LCAweGU0NDAsIDAsIHsweDU3LDB4MTAsMHg1NSwweGM0LDB4MDEsMHgzMSwweDAwLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHg3MSwweDAxIH0gfSwKLXsgIDE2LCAweGU0NTAsIDAsIHsweGRjLDB4NDAsMHgxNywweDE4LDB4MWQsMHhjNCwweDA1LDB4NzEsMHgwNSwweDVjLDB4NDAsMHg1NywweDEwLDB4MWQsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH0gfSwKLXsgIDE2LCAweGU0NzAsIDAsIHsweDEyLDB4MDAsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGU0ODAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4NjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU0OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweGU0YTAsIDAsIHsweDA2LDB4MDAsMHg0MSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGU0YjAsIDAsIHsweDEwLDB4MDAsMHgwNiwweDEwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MjAsMHg0NiwweDEwLDB4MDEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU0YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwIH0gfSwKLXsgIDE2LCAweGU0ZDAsIDAsIHsweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDA3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MywweDAwIH0gfSwKLXsgIDE2LCAweGU0ZTAsIDAsIHsweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjYywweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweGU1MDAsIDAsIHsweDA2LDB4MDAsMHgwMSwweDg0LDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDQwIH0gfSwKLXsgIDE2LCAweGU1MTAsIDAsIHsweDE4LDB4MDAsMHgwNiwweDA0LDB4MDEsMHg4MSwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDE0LDB4MDEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU1MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH0gfSwKLXsgIDE2LCAweGU1MzAsIDAsIHsweDQyLDB4NzAsMHgxMCwweDhjLDB4MDQsMHgyMiwweDAxLDB4MDgsMHhjMCwweDAyLDB4MjAsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAwIH0gfSwKLXsgIDE2LCAweGU1NDAsIDAsIHsweDA4LDB4ODAsMHg0MiwweDUwLDB4MTAsMHgwOCwweDA0LDB4MjIsMHgwMSwweDA5LDB4MDAsMHg0MiwweDQwLDB4MTAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmUsMHgwNCwweDRhLDB4ODEsMHgxMiwweGEwIH0gfSwKLXsgIDE2LCAweGU1NjAsIDAsIHsweDQ0LDB4YTgsMHgxMSwweDJhLDB4MDQsMHg0YSwweDgxLDB4MTIsMHhhMCwweDA0LDB4YTgsMHgxMSwweDJhLDB4MDQsMHg0YiwweDgwIH0gfSwKLXsgIDE2LCAweGU1NzAsIDAsIHsweDEyLDB4YTAsMHg0NCwweDg4LDB4MDEsMHgyZSwweDA0LDB4NGEsMHg4MSwweDEyLDB4MjAsMHgwNCwweDk4LDB4MDEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGU1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMwLDB4MGUsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwIH0gfSwKLXsgIDE2LCAweGU1OTAsIDAsIHsweDA1LDB4MzAsMHgwMSwweDRjLDB4MDAsMHg1MywweDAwLDB4MTQsMHhlMCwweDA1LDB4MzAsMHgwMSwweDRjLDB4MDAsMHg1MywweDAwIH0gfSwKLXsgIDE2LCAweGU1YTAsIDAsIHsweDA0LDB4YzAsMHgwNSwweDMwLDB4MDAsMHg0YywweDAwLDB4MDMsMHgwMCwweDE0LDB4YzAsMHgwNSwweDMwLDB4MDAsMHg0MCwweDEwIH0gfSwKLXsgIDE2LCAweGU1YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMwLDB4MDQsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwIH0gfSwKLXsgIDE2LCAweGU1YzAsIDAsIHsweDA0LDB4NTgsMHgwMSwweDA0LDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MSwweDAwIH0gfSwKLXsgIDE2LCAweGU1ZDAsIDAsIHsweDA0LDB4MDAsMHg0NCwweDU4LDB4MTAsMHg0NCwweDAwLDB4MDAsMHgwMCwweDExLDB4ODAsMHgwNCwweDUwLDB4MTAsMHg0MCwweDMwIH0gfSwKLXsgIDE2LCAweGU1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMwLDB4NDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU1ZjAsIDAsIHsweDIwLDB4MDAsMHgwOCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGU2MDAsIDAsIHsweDg0LDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHg0MCwweDMwIH0gfSwKLXsgIDE2LCAweGU2MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMwLDB4NDAsMHgwMCwweDYwLDB4MDEsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweGU2MjAsIDAsIHsweDQ2LDB4MDAsMHgwMSwweDgwLDB4MDYsMHg2MCwweDAxLDB4OTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxIH0gfSwKLXsgIDE2LCAweGU2MzAsIDAsIHsweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4MjAsMHgwMSwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDMwIH0gfSwKLXsgIDE2LCAweGU2NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAxLDB4NDAsMHgwMCwweDYwLDB4MDAsMHg5OCwweDAwIH0gfSwKLXsgIDE2LCAweGU2NTAsIDAsIHsweDI2LDB4MDAsMHgwOSwweDgwLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDA2LDB4MDAsMHgwYywweDgwLDB4MDIsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGU2NjAsIDAsIHsweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAyLDB4NjAsMHgwMCwweDk4LDB4ODAsMHgwNiwweDAwLDB4MDEsMHg4MiwweDAwIH0gfSwKLXsgIDE2LCAweGU2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDIsMHgwMCwweDMwLDB4ODEsMHgwYywweDIwIH0gfSwKLXsgIDE2LCAweGU2ODAsIDAsIHsweDQzLDB4MDgsMHgxMCwweGMyLDB4MjQsMHgzMCwweDgxLDB4OGMsMHgyMCwweDAzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGU2OTAsIDAsIHsweDBjLDB4MjAsMHgwMywweDA4LDB4MTgsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTgsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGU2YTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH0gfSwKLXsgIDE2LCAweGU2YjAsIDAsIHsweDAzLDB4MDAsMHgwMCwweGMwLDB4NDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgzMCwweDAwIH0gfSwKLXsgIDE2LCAweGU2YzAsIDAsIHsweDBjLDB4MDAsMHgwMywweDIwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MDIsMHgxMCwweDMwLDB4ODAsMHgwYywweDIwIH0gfSwKLXsgIDE2LCAweGU2ZTAsIDAsIHsweDAzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMCwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDEsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGU2ZjAsIDAsIHsweDBjLDB4MjAsMHgwMywweDJjLDB4MDAsMHhjMiwweDAwLDB4MzAsMHg4MCwweDBjLDB4MzAsMHg0MywweDJjLDB4MDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU3MDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwIH0gfSwKLXsgIDE2LCAweGU3MTAsIDAsIHsweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgxIH0gfSwKLXsgIDE2LCAweGU3MjAsIDAsIHsweDE4LDB4MjAsMHg0NiwweDBjLDB4MTEsMHhjMiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGU3MzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwIH0gfSwKLXsgIDE2LCAweGU3NDAsIDAsIHsweDAyLDB4MjgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGU3NTAsIDAsIHsweDA4LDB4MjAsMHgwMiwweDA4LDB4MDEsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMywweDA4LDB4MDEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDAxLDB4NDIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwIH0gfSwKLXsgIDE2LCAweGU3NzAsIDAsIHsweDQ2LDB4MjgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgxIH0gfSwKLXsgIDE2LCAweGU3ODAsIDAsIHsweDE4LDB4MjAsMHg0NiwweDA4LDB4MTAsMHg4MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAsMHg0MywweDA4LDB4MTAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwIH0gfSwKLXsgIDE2LCAweGU3YTAsIDAsIHsweDQ1LDB4MDAsMHgxMSwweDQwLDB4MjUsMHgwMCwweDAwLDB4MTQsMHgwMCwweDQ1LDB4MDAsMHgxMSwweDQwLDB4MDQsMHg1MCwweDAxIH0gfSwKLXsgIDE2LCAweGU3YjAsIDAsIHsweDE0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTAsMHgwMSwweDQwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MiwweDExIH0gfSwKLXsgIDE2LCAweGU3YzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwIH0gfSwKLXsgIDE2LCAweGU3ZDAsIDAsIHsweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwIH0gfSwKLXsgIDE2LCAweGU3ZTAsIDAsIHsweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGU3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4MDIsMHgwNSwweDAwLDB4ODAsMHg0MCwweDIxIH0gfSwKLXsgIDE2LCAweGU4MDAsIDAsIHsweDEwLDB4MDgsMHgwNCwweDAwLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwIH0gfSwKLXsgIDE2LCAweGU4MTAsIDAsIHsweDQwLDB4MjAsMHg1MCwweDA4LDB4MTQsMHgwMiwweDExLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MTQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGU4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDYsMHgwMSwweDUxLDB4ODAsMHhkNCwweDYwIH0gfSwKLXsgIDE2LCAweGU4MzAsIDAsIHsweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDE1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwIH0gfSwKLXsgIDE2LCAweGU4NDAsIDAsIHsweDU0LDB4NjAsMHgxNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDExIH0gfSwKLXsgIDE2LCAweGU4NTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NDYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwIH0gfSwKLXsgIDE2LCAweGU4NjAsIDAsIHsweDQ1LDB4MTgsMHgxMSwweGQ2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCwweDY3LDB4MTgsMHgxMSwweGM2LDB4MDQsMHg3MSwweDgxIH0gfSwKLXsgIDE2LCAweGU4NzAsIDAsIHsweDljLDB4NjAsMHg0NywweDE4LDB4MTEsMHhjNiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHg2NywweDE4LDB4MTEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4NDYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwIH0gfSwKLXsgIDE2LCAweGU4OTAsIDAsIHsweDI3LDB4MTgsMHgwOSwweGM2LDB4MDAsMHg3MSwweDgwLDB4OWMsMHg2MCwweDY3LDB4MTgsMHgwOSwweGM2LDB4MDIsMHg3MSwweDgwIH0gfSwKLXsgIDE2LCAweGU4YTAsIDAsIHsweDljLDB4NjEsMHgyNywweDE4LDB4MDEsMHhjNiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAsMHgwNywweDE4LDB4MDEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGU4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDQ1LDB4NDYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwIH0gfSwKLXsgIDE2LCAweGU4YzAsIDAsIHsweDU3LDB4MTgsMHg1NSwweGQ2LDB4MDEsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxIH0gfSwKLXsgIDE2LCAweGU4ZDAsIDAsIHsweDVjLDB4NjAsMHg1NywweDE4LDB4MTgsMHhjNiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg0MywweDE4LDB4MTgsMHg4MiwweDExIH0gfSwKLXsgIDE2LCAweGU4ZTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH0gfSwKLXsgIDE2LCAweGU4ZjAsIDAsIHsweDEyLDB4NDgsMHgwNCwweDkwLDB4MDEsMHgyMCwweDgwLDB4NDksMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyNCwweDgwIH0gfSwKLXsgIDE2LCAweGU5MDAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDQ4LDB4MDAsMHg5MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxNywweDQ4LDB4MDQsMHg4MCwweDAxIH0gfSwKLXsgIDE2LCAweGU5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwIH0gfSwKLXsgIDE2LCAweGU5MjAsIDAsIHsweDA2LDB4M2MsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDQ2LDB4MTgsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgwIH0gfSwKLXsgIDE2LCAweGU5MzAsIDAsIHsweDE4LDB4NjAsMHgwNiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAsMHg0NiwweDE4LDB4MDEsMHg4MCwweDAxIH0gfSwKLXsgIDE2LCAweGU5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQxLDB4NjAsMHgwNCwweDc4LDB4MDEsMHgxZSwweDAwIH0gfSwKLXsgIDE2LCAweGU5NTAsIDAsIHsweDQ3LDB4ODAsMHgxMSwweGUwLDB4MjQsMHg3OCwweDAxLDB4MWUsMHgwMCwweDA3LDB4ODAsMHgxMSwweGUwLDB4MDQsMHg3OCwweDAxIH0gfSwKLXsgIDE2LCAweGU5NjAsIDAsIHsweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhlMCwweDA0LDB4MzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhjMCwweDExIH0gfSwKLXsgIDE2LCAweGU5NzAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MTIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwIH0gfSwKLXsgIDE2LCAweGU5ODAsIDAsIHsweDA2LDB4NDgsMHgwMSwweDkyLDB4MDAsMHg2MCwweDgwLDB4MTksMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2NCwweDgwIH0gfSwKLXsgIDE2LCAweGU5OTAsIDAsIHsweDE4LDB4MjAsMHgwNiwweDQ4LDB4MDEsMHg5MywweDAwLDB4MjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDQ4LDB4MDEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH0gfSwKLXsgIDE2LCAweGU5YjAsIDAsIHsweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxIH0gfSwKLXsgIDE2LCAweGU5YzAsIDAsIHsweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4YSwweDA0LDB4NjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGU5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwIH0gfSwKLXsgIDE2LCAweGU5ZTAsIDAsIHsweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDA0LDB4MDgsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgxIH0gfSwKLXsgIDE2LCAweGU5ZjAsIDAsIHsweDEwLDB4MjEsMHg0NCwweDA4LDB4MDEsMHgwMiwweDA0LDB4NTAsMHg4MSwweDEwLDB4MjAsMHgwNCwweDA4LDB4MDEsMHgwMCwweDExIH0gfSwKLXsgIDE2LCAweGVhMDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwIH0gfSwKLXsgIDE2LCAweGVhMTAsIDAsIHsweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAsMHg1MCwweDgwIH0gfSwKLXsgIDE2LCAweGVhMjAsIDAsIHsweDE0LDB4MzAsMHgwNSwweDA4LDB4MDEsMHg0YSwweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDA4LDB4MDEsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGVhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwIH0gfSwKLXsgIDE2LCAweGVhNDAsIDAsIHsweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwIH0gfSwKLXsgIDE2LCAweGVhNTAsIDAsIHsweDEwLDB4ODAsMHgwNCwweDIwLDB4MTEsMHgwMCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MTEsMHgwMCwweDEwIH0gfSwKLXsgIDE2LCAweGVhNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwIH0gfSwKLXsgIDE2LCAweGVhNzAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDAsMHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwIH0gfSwKLXsgIDE2LCAweGVhODAsIDAsIHsweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExIH0gfSwKLXsgIDE2LCAweGVhOTAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDAsMHgwMCwweDYwLDB4MDEsMHgxOCwweDAwIH0gfSwKLXsgIDE2LCAweGVhYTAsIDAsIHsweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDYsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxIH0gfSwKLXsgIDE2LCAweGVhYjAsIDAsIHsweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDEwIH0gfSwKLXsgIDE2LCAweGVhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDAsMHgwMiwweDY0LDB4MDAsMHg5OCwweDAwIH0gfSwKLXsgIDE2LCAweGVhZDAsIDAsIHsweDI2LDB4MDAsMHgwOSwweDkwLDB4MDYsMHg2MCwweDAxLDB4OTgsMHgwMCwweDI2LDB4NDAsMHgwOSwweDgwLDB4MDIsMHg2MCwweDAwIH0gfSwKLXsgIDE2LCAweGVhZTAsIDAsIHsweDk4LDB4MDAsMHgyNiwweDAwLDB4MDAsMHg5MCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAsMHgwNywweDAwLDB4MDEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGVhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NjAsMHgwNCwweDM4LDB4MDUsMHgwZSwweDAwIH0gfSwKLXsgIDE2LCAweGViMDAsIDAsIHsweDQzLDB4ODAsMHgxMCwweGUwLDB4NDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQzLDB4ODAsMHgxMCwweGUwLDB4MDQsMHgzOCwweDAxIH0gfSwKLXsgIDE2LCAweGViMTAsIDAsIHsweDBlLDB4MDAsMHg0MywweDgwLDB4MTgsMHhhMCwweDA0LDB4MzgsMHgwMSwweDBlLDB4MDAsMHg0NiwweDgwLDB4MTgsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGViMjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDAwLDB4MDEsMHgwMCwweDMwLDB4NDAsMHgwYywweDEwIH0gfSwKLXsgIDE2LCAweGViMzAsIDAsIHsweDAzLDB4MDQsMHgwMCwweGM1LDB4MDAsMHgzMCwweDQwLDB4MGMsMHgxMCwweDAzLDB4MTQsMHgwMCwweGMxLDB4MDAsMHgzMCwweDQwIH0gfSwKLXsgIDE2LCAweGViNDAsIDAsIHsweDBjLDB4MTAsMHgwMywweDA0LDB4MDAsMHg4NywweDQwLDB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMiwweDA0LDB4MDAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGViNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0LDB4MDUsMHgwMCwweDM1LDB4NDAsMHgwYywweDUwIH0gfSwKLXsgIDE2LCAweGViNjAsIDAsIHsweDAzLDB4MTQsMHgwMCwweGQ1LDB4MDQsMHgzMSwweDQxLDB4MGMsMHg1MCwweDAzLDB4NWMsMHgwMCwweGM1LDB4MDAsMHgzMSwweDAwIH0gfSwKLXsgIDE2LCAweGViNzAsIDAsIHsweDBjLDB4NTAsMHgwMywweDEwLDB4MDAsMHg5NCwweDAwLDB4MzEsMHg0MCwweDBjLDB4NTAsMHg0MywweDEwLDB4MDAsMHhjMiwweDAwIH0gfSwKLXsgIDE2LCAweGViODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDMsMHgwNSwweDIwLDB4YzEsMHgxOCwweDMwIH0gfSwKLXsgIDE2LCAweGViOTAsIDAsIHsweDQ2LDB4MGMsMHgxMSwweDk3LDB4MDAsMHg2MCwweGMwLDB4MTgsMHgzMCwweDQ2LDB4MWMsMHgxMSwweDgzLDB4MDQsMHg2MCwweGMxIH0gfSwKLXsgIDE2LCAweGViYTAsIDAsIHsweDE4LDB4MzAsMHg1MiwweDBjLDB4MTEsMHg4NywweDA0LDB4NjAsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHg4MCwweDExIH0gfSwKLXsgIDE2LCAweGViYjAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MDAsMHgwMCwweDIxLDB4NDAsMHgwOCwweDAwIH0gfSwKLXsgIDE2LCAweGViYzAsIDAsIHsweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwIH0gfSwKLXsgIDE2LCAweGViZDAsIDAsIHsweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGViZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDgsMHg0NCwweDIyLDB4MDEsMHgxOCwweDg0IH0gfSwKLXsgIDE2LCAweGViZjAsIDAsIHsweDQ2LDB4MjEsMHgxMSwweDk4LDB4MDAsMHg2MiwweDEwLDB4MTgsMHg4NCwweDQ0LDB4MjAsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExIH0gfSwKLXsgIDE2LCAweGVjMDAsIDAsIHsweDE4LDB4ODQsMHg0MiwweDIxLDB4MTEsMHg4MCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGVjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MTEsMHgxNCwweDA0IH0gfSwKLXsgIDE2LCAweGVjMjAsIDAsIHsweDQ1LDB4MDAsMHgxMSwweDQxLDB4MDAsMHg1MCwweDEwLDB4MTQsMHgwMCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDQsMHg1MCwweDExIH0gfSwKLXsgIDE2LCAweGVjMzAsIDAsIHsweDE0LDB4MDQsMHg0NSwweDAxLDB4MDEsMHg0MCwweDQ0LDB4NTAsMHgxMSwweDE0LDB4MDQsMHgwNSwweDAxLDB4MDEsMHg0MCwweDExIH0gfSwKLXsgIDE2LCAweGVjNDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyIH0gfSwKLXsgIDE2LCAweGVjNTAsIDAsIHsweDA0LDB4MjAsMHgwMSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4IH0gfSwKLXsgIDE2LCAweGVjNjAsIDAsIHsweDEwLDB4ODIsMHgwNCwweDIyLDB4ODEsMHgwOCwweDIwLDB4NTIsMHgwOCwweDEwLDB4OGEsMHgwNCwweDIyLDB4ODEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODQsMHg0MCwweGExIH0gfSwKLXsgIDE2LCAweGVjODAsIDAsIHsweDEwLDB4MjgsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDgwIH0gfSwKLXsgIDE2LCAweGVjOTAsIDAsIHsweDQwLDB4YTAsMHgxMCwweDJjLDB4MTQsMHgwYSwweDAwLDB4MDIsMHg4MCwweDQwLDB4YjAsMHgxMCwweDJjLDB4MTQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ1LDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQwIH0gfSwKLXsgIDE2LCAweGVjYjAsIDAsIHsweDM1LDB4MzAsMHgwYywweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCwweDM1LDB4MzQsMHgwZCwweDRkLDB4MDMsMHg1MywweDQwIH0gfSwKLXsgIDE2LCAweGVjYzAsIDAsIHsweGQ0LDB4ZDAsMHgzNSwweDM0LDB4MGQsMHg0ZCwweDAyLDB4MTMsMHg0MCwweGQ0LDB4ZDAsMHgzNSwweDM0LDB4MGQsMHg0MCwweDExIH0gfSwKLXsgIDE2LCAweGVjZDAsIDAsIHsweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MDgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwIH0gfSwKLXsgIDE2LCAweGVjZTAsIDAsIHsweDQ3LDB4MjAsMHgxNSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDExIH0gfSwKLXsgIDE2LCAweGVjZjAsIDAsIHsweDFjLDB4ODAsMHg0NywweDI2LDB4MTEsMHhjOCwweDQ0LDB4NzIsMHgwMSwweDFjLDB4OTAsMHg2NywweDI2LDB4MTEsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgwOCwweDQwLDB4YzYsMHgxMiwweDMxIH0gfSwKLXsgIDE2LCAweGVkMTAsIDAsIHsweDg0LDB4OGMsMHgwMSwweDAzLDB4MDgsMHg0OCwweGM2LDB4MTIsMHgzMCwweDg0LDB4MGMsMHg2MSwweDIzLDB4MTgsMHg0OCwweGMyIH0gfSwKLXsgIDE2LCAweGVkMjAsIDAsIHsweDEyLDB4MzEsMHg4NCwweDhjLDB4MDEsMHgwMywweDA4LDB4NDgsMHhjNiwweDEyLDB4MzEsMHgwNCwweDhjLDB4MDEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmIH0gfSwKLXsgIDE2LCAweGVkNDAsIDAsIHsweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmIH0gfSwKLXsgIDE2LCAweGVkNTAsIDAsIHsweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmQsMHhmYiwweDBmLDB4YjYsMHhjMiwweGNkIH0gfSwKLXsgIDE2LCAweGVkYTAsIDAsIHsweGIwLDB4YjcsMHhmZCwweDNmLDB4ZmIsMHgwYiwweDM2LDB4YzIsMHhkZiwweGIwLDB4ZmIsMHg2YywweDJjLDB4ZGIsMHgwYiwweDdlIH0gfSwKLXsgIDE2LCAweGVkYjAsIDAsIHsweGMyLDB4Y2QsMHhiMCwweGI3LDB4ZmQsMHgzZiwweGZiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhmNCwweGI3LDB4ZmQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzMsMHhmYywweDRmLDB4Y2YsMHgxMywweDMzIH0gfSwKLXsgIDE2LCAweGVkZDAsIDAsIHsweGM0LDB4Y2YsMHhmZCwweDNmLDB4ZmMsMHg0YywweGNmLDB4MTMsMHgzZiwweGM0LDB4ZmMsMHhmMSwweDMzLDB4M2MsMHg0YywweGZmIH0gfSwKLXsgIDE2LCAweGVkZTAsIDAsIHsweDEzLDB4MzMsMHhjNCwweGNmLDB4ZmQsMHgzZiwweGZjLDB4NGMsMHhjZiwweDEzLDB4MzMsMHhmNCwweGNmLDB4ZmQsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGI3IH0gfSwKLXsgIDE2LCAweGVlMDAsIDAsIHsweGU0LDB4ZWQsMHhmOSwweDNmLDB4ZmUsMHg0ZSwweGRmLDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGM3IH0gfSwKLXsgIDE2LCAweGVlMTAsIDAsIHsweDkzLDB4YjcsMHhlNCwweGVjLDB4NjEsMHgyMywweDFlLDB4NGUsMHhkZiwweDkzLDB4YjcsMHg4NCwweGVjLDB4NjEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDI0LDB4YTEsMHg0YSwweDI0IH0gfSwKLXsgIDE2LCAweGVlMzAsIDAsIHsweDYzLDB4MDEsMHgxNCwweDAyLDB4NDQsMHgwMCwweDgxLDB4MGIsMHgyOCwweDcxLDB4MDIsMHgxMCwweDgyLDB4NDAsMHgzOCwweDExIH0gfSwKLXsgIDE2LCAweGVlNDAsIDAsIHsweDQxLDB4MDQsMHg1MCwweDA4LDB4MTgsMHg4MiwweDg3LDB4MzgsMHgzMSwweGMzLDB4MmMsMHg1MiwweDBhLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0NSwweDEyLDB4ODEsMHg0NCwweDgwIH0gfSwKLXsgIDE2LCAweGVlNjAsIDAsIHsweDcxLDB4MjEsMHgxYywweDBhLDB4MDcsMHgxYSwweDgxLDB4MDIsMHhhMCwweDUyLDB4MjAsMHgxNCwweDQ4LDB4MDcsMHgxMiwweDgxIH0gfSwKLXsgIDE2LCAweGVlNzAsIDAsIHsweGM2LDB4ODAsMHg2MCwweDIwLDB4MDgsMHg4OCwweDQ3LDB4MDIsMHgwMSwweDRhLDB4ODAsMHg3MCwweDIwLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHhjNSwweDJjLDB4MDEsMHg0YSwweDAwIH0gfSwKLXsgIDE2LCAweGVlOTAsIDAsIHsweDUyLDB4MDksMHgxYywweDgwLDB4MDcsMHgyNCwweDIxLDB4MDgsMHgwOCwweDcxLDB4MDIsMHgxMCwweDgwLDB4NDUsMHgyMCwweGExIH0gfSwKLXsgIDE2LCAweGVlYTAsIDAsIHsweDQ5LDB4MjgsMHg1MiwweDAxLDB4MTQsMHhjMCwweDQ1LDB4MDAsMHg5MSwweGM0LDB4MDAsMHg3MiwweDAyLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwNywweDIwLDB4MDEsMHhjMSwweDAwIH0gfSwKLXsgIDE2LCAweGVlYzAsIDAsIHsweDcxLDB4MDksMHgxMCwweDgwLDB4MDcsMHgwMCwweDAxLDB4MDEsMHgwMCwweDcwLDB4MDgsMHgxOCwweDgwLDB4MDcsMHgwMCwweDAxIH0gfSwKLXsgIDE2LCAweGVlZDAsIDAsIHsweDg5LDB4MjAsMHg1MiwweDAxLDB4MGMsMHg4MCwweDQ2LDB4MzAsMHg4MSwweDQ1LDB4MDQsMHg2MCwweDAwLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVlZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMiwweDAyLDB4MjAsMHgwMCwweDg4IH0gfSwKLXsgIDE2LCAweGVlZjAsIDAsIHsweDIwLDB4MjIsMHgwMCwweDA4LDB4YzIsMHgyMiwweDgwLDB4NDAsMHg4OCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODIsMHgwYSwweGEwIH0gfSwKLXsgIDE2LCAweGVmMDAsIDAsIHsweDBjLDB4YTgsMHgwMiwweDIyLDB4MDAsMHgwOCwweDgwLDB4MGEsMHgwMCwweDgwLDB4OGMsMHgwMiwweDIyLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGVmMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHg0MywweDAwLDB4MDAsMHg0MCwweDIwIH0gfSwKLXsgIDE2LCAweGVmMjAsIDAsIHsweDMwLDB4MDgsMHgwNCwweDQwLDB4NDEsMHgzMCwweDEwLDB4YzgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDMsMHgwMCwweDEwIH0gfSwKLXsgIDE2LCAweGVmMzAsIDAsIHsweGMwLDB4MDAsMHgxMSwweDA4LDB4MDAsMHhjMiwweDQzLDB4MTAsMHg4MCwweGMwLDB4MjAsMHgwMSwweDA4LDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGVmNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHhjMywweDBhLDB4MjAsMHhjMSwweDhjIH0gfSwKLXsgIDE2LCAweGVmNTAsIDAsIHsweDEyLDB4MjIsMHgwNCwweDg4LDB4MDEsMHgzNiwweDIwLDB4YzMsMHgwOCwweDEyLDB4MjgsMHgwNCwweDA4LDB4MDEsMHgwNCwweDAwIH0gfSwKLXsgIDE2LCAweGVmNjAsIDAsIHsweDRhLDB4YTgsMHgyMiwweDAxLDB4MDQsMHhjOCwweDQxLDB4MjYsMHgzMCwweGMwLDB4ODgsMHgwMiwweDIxLDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGVmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwMCwweDBhLDB4MTAsMHhjMSwweDgwIH0gfSwKLXsgIDE2LCAweGVmODAsIDAsIHsweDMyLDB4MjEsMHgwYywweDg4LDB4NDMsMHgwMiwweDgwLDB4NDQsMHg4MCwweDEyLDB4MjksMHgwNCwweDA4LDB4NDIsMHgwYSwweDkwIH0gfSwKLXsgIDE2LCAweGVmOTAsIDAsIHsweDhhLDB4ODAsMHgwMCwweDIwLDB4MDQsMHg0OCwweDAzLDB4MGEsMHgxMCwweDgyLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGVmYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGEsMHg4NywweDAyLDB4YTEsMHg4MCwweGFjIH0gfSwKLXsgIDE2LCAweGVmYjAsIDAsIHsweDQzLDB4MjksMHgxNCwweDhhLDB4ODQsMHgwMiwweGExLDB4MDAsMHhhYywweDQxLDB4MjAsMHgxMCwweDA4LDB4MDYsMHgyNiwweDMxIH0gfSwKLXsgIDE2LCAweGVmYzAsIDAsIHsweDgwLDB4YTQsMHg2MCwweDIwLDB4MTQsMHg0YSwweDQ0LDB4MzIsMHg4MSwweDgxLDB4YWMsMHg2MCwweDJhLDB4MTgsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGVmZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwNywweDIyLDB4MDEsMHhjNSwweDgwIH0gfSwKLXsgIDE2LCAweGVmZTAsIDAsIHsweDczLDB4MjEsMHgxYywweGM4LDB4MDcsMHgyYSwweDAxLDB4MGMsMHg4MCwweDcyLDB4MjAsMHgxMCwweDQ4LDB4NDcsMHgyNiwweDExIH0gfSwKLXsgIDE2LCAweGVmZjAsIDAsIHsweGM1LDB4ODAsMHg3MywweDIwLDB4MWMsMHg4OCwweDA3LDB4MmEsMHgxMSwweDQ5LDB4ODAsMHg3MCwweDIwLDB4MTQsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGYwMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHg0NSwweDEwLDB4MzEsMHhjOSwweDBjIH0gfSwKLXsgIDE2LCAweGYwMTAsIDAsIHsweDczLDB4MDIsMHgxYywweGMwLDB4NDcsMHgwNCwweDAxLDB4MGEsMHgwYywweDUxLDB4MGEsMHgxMCwweDgyLDB4NDcsMHgyMCwweDMxIH0gfSwKLXsgIDE2LCAweGYwMjAsIDAsIHsweGM4LDB4MDAsMHg3MiwweDAyLDB4MWMsMHg0MCwweDA1LDB4MzAsMHgxMSwweGM0LDB4MDAsMHg3MiwweDAxLDB4MTgsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGYwMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4MTAsMHgwNiwweDI0LDB4MDEsMHg0NSwweDA0IH0gfSwKLXsgIDE2LCAweGYwNDAsIDAsIHsweDUxLDB4ODEsMHgxOCwweDkwLDB4NDcsMHgxNCwweDAxLDB4MDQsMHgwNCwweDcxLDB4ODgsMHgxMCwweDEyLDB4MDUsMHgzNCwweDAxIH0gfSwKLXsgIDE2LCAweGYwNTAsIDAsIHsweDQ0LDB4MDQsMHg1MSwweDQwLDB4MTgsMHhkMCwweDA3LDB4MzgsMHgwMSwweGM0LDB4MDQsMHg1MiwweDAxLDB4MTQsMHhjMiwweDA0IH0gfSwKLXsgIDE2LCAweGYwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4OSwweDBjIH0gfSwKLXsgIDE2LCAweGYwNzAsIDAsIHsweDYwLDB4MDEsMHgxYywweGQwLDB4NDUsMHgyNCwweDAxLDB4YzEsMHgwYywweDQyLDB4MDEsMHgwMCwweDAwLDB4YzUsMHgyMCwweDMxIH0gfSwKLXsgIDE2LCAweGYwODAsIDAsIHsweDQxLDB4MDgsMHg0MCwweDAwLDB4MTgsMHg4MCwweDQ1LDB4MDAsMHgyMSwweDQxLDB4MGMsMHg3MCwweDQyLDB4MWMsMHhjMiwweDAwIH0gfSwKLXsgIDE2LCAweGYwOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMSwweDFjLDB4ODAsMHhjNCwweDIwIH0gfSwKLXsgIDE2LCAweGYwYTAsIDAsIHsweDMxLDB4MDgsMHgxMCwweDQyLDB4NDIsMHgwOCwweDgwLDB4YzYsMHgyMCwweDMxLDB4MDksMHgwMCwweDIwLDB4MDMsMHgxYywweDkwIH0gfSwKLXsgIDE2LCAweGYwYjAsIDAsIHsweGM0LDB4MjAsMHgwMSwweDQ5LDB4MGMsMHg0MiwweDQzLDB4MTAsMHg4MCwweDQ0LDB4MjAsMHgzMSwweDA4LDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHg4MywweDIwLDB4MzAsMHg0OCwweDBjIH0gfSwKLXsgIDE2LCAweGYwZDAsIDAsIHsweDMyLDB4NDAsMHgxMCwweDkwLDB4ODEsMHgyNCwweDIwLDB4YzgsMHgwNCwweDMyLDB4NDAsMHgxMCwweDIwLDB4YzMsMHgyMCwweDgwIH0gfSwKLXsgIDE2LCAweGYwZTAsIDAsIHsweGM4LDB4MDAsMHgwMiwweDRhLDB4MGMsMHhhMCwweDAxLDB4MjQsMHgxMCwweGM4LDB4MDgsMHgzMiwweDQxLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHgwMywweDAwLDB4MDAsMHhjOSwweDA0IH0gfSwKLXsgIDE2LCAweGYxMDAsIDAsIHsweDMwLDB4NDAsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAwLDB4ODAsMHgwMCwweDEwLDB4NDAsMHgxMCwweDAwLDB4NDAsMHgyMCwweDEwIH0gfSwKLXsgIDE2LCAweGYxMTAsIDAsIHsweGMyLDB4MDAsMHgwMCwweDgwLDB4MDgsMHgyMCwweDQzLDB4MDgsMHgxMCwweDgxLDB4MDAsMHgzMiwweDQwLDB4MGMsMHhjMCwweDA0IH0gfSwKLXsgIDE2LCAweGYxMjAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYxMzAsIDAsIHsweDEwLDB4MDAsMHgwMCwweGYwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweGYwLDB4MTAsMHg4MCwweDQwIH0gfSwKLXsgIDE2LCAweGYxNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhmMCwweDEwLDB4OTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzYywweDNjLDB4MTAsMHg4MCwweDkwLDB4NDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYxNjAsIDAsIHsweDAwLDB4ODAsMHgxMCwweDkwLDB4YTAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGYxNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4ZiwweDBmIH0gfSwKLXsgIDE2LCAweGYxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjQsMHhjNiwweGJhLDB4MDYsMHhjMCwweDFjIH0gfSwKLXsgIDE2LCAweGYxOTAsIDAsIHsweDQ5LDB4MjgsMHg2MSwweDE0LDB4MmIsMHgxYywweDBlLDB4NDAsMHgzZiwweGQ5LDB4YmYsMHhkOSwweGFhLDB4YmMsMHgxYSwweDVmIH0gfSwKLXsgIDE2LCAweGYxYTAsIDAsIHsweDAwLDB4MTAsMHhhNiwweDUwLDB4M2IsMHg2MSwweGIzLDB4MjUsMHhiYywweDQwLDB4MTksMHhiZiwweGZmLDB4ZTksMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGYxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MiwweDE0LDB4OTQsMHg4MCwweDBjIH0gfSwKLXsgIDE2LCAweGYxYzAsIDAsIHsweDA3LDB4M2YsMHgyYiwweDk0LDB4ODYsMHgxNCwweDg0LDB4ODAsMHgyOCwweDAwLDB4MDAsMHg0OSwweDE0LDB4MDQsMHg4NiwweDEyIH0gfSwKLXsgIDE2LCAweGYxZDAsIDAsIHsweDgwLDB4MDAsMHg0MSwweDI3LDB4MzQsMHhkMCwweDkwLDB4ODQsMHg5MiwweDAwLDB4MmQsMHg4YSwweDIxLDB4MWUsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGYxZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGEyIH0gfSwKLXsgIDE2LCAweGYxZjAsIDAsIHsweGIxLDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCwweGIxLDB4NzgsMHgyOCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyMDAsIDAsIHsweDA4LDB4YjEsMHgzMiwweDE0LDB4MTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTgsMHgyMywweDU0LDB4MjEsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGYyMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmYsMHhmZSwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZDcsMHhmZSwweGVmIH0gfSwKLXsgIDE2LCAweGYyMzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4N2YsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDBmLDB4ZWYsMHg3NywweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNlLDB4ZmYsMHhmZSwweGVmIH0gfSwKLXsgIDE2LCAweGYyNjAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhmZiwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH0gfSwKLXsgIDE2LCAweGYyOTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweDdmLDB4MmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDFmLDB4ZmYsMHhmZiwweGVmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZWYsMHhlZiwweGVmIH0gfSwKLXsgIDE2LCAweGYyYzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhlZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4YWYsMHhkZiwweGZmIH0gfSwKLXsgIDE2LCAweGYyZjAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGVmLDB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYzMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGYzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH0gfSwKLXsgIDE2LCAweGYzMjAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYzMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHhjNCwweDI0LDB4YTEsMHgwMCwweDJjIH0gfSwKLXsgIDE2LCAweGYzNDAsIDAsIHsweDUyLDB4MGIsMHgxOCwweGMyLDB4ODYsMHgyYywweGExLDB4ODAsMHgzOCwweDYyLDB4MGEsMHgwOCwweDQwLDB4YzQsMHgyYywweGExIH0gfSwKLXsgIDE2LCAweGYzNTAsIDAsIHsweDA4LDB4MjgsMHg0MiwweDBiLDB4MTQsMHgwMCwweDg1LDB4MTQsMHhhMSwweDA4LDB4MjgsMHg0MywweDBhLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDEyLDB4MDEsMHgwMywweDgwIH0gfSwKLXsgIDE2LCAweGYzNzAsIDAsIHsweDYxLDB4MjAsMHgxMCwweDA4LDB4MDcsMHgxMiwweDQxLDB4NDIsMHg4MCwweDcwLDB4MjAsMHgxYywweDA4LDB4MDQsMHgxYSwweDAxIH0gfSwKLXsgIDE2LCAweGYzODAsIDAsIHsweDg0LDB4ODEsMHg0MCwweDIwLDB4MTgsMHgwOCwweDQ2LDB4MzYsMHg4MSwweDA1LDB4ODAsMHg2MywweDIwLDB4MTAsMHgwMCwweDAxIH0gfSwKLXsgIDE2LCAweGYzOTAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NCwweDI0LDB4MjEsMHgwMCwweDBjIH0gfSwKLXsgIDE2LCAweGYzYTAsIDAsIHsweDUyLDB4MDIsMHgxNCwweDAwLDB4ODcsMHgyOCwweDIxLDB4ODEsMHgwOCwweDcyLDB4MDYsMHgxYywweDgyLDB4ODQsMHgyMCwweDIxIH0gfSwKLXsgIDE2LCAweGYzYjAsIDAsIHsweDQ4LDB4MTgsMHg0MiwweDAzLDB4NTQsMHg4MCwweDQ1LDB4MzAsMHgyNSwweDRhLDB4MTgsMHg1MywweDAyLDB4MTAsMHgwMCwweDAxIH0gfSwKLXsgIDE2LCAweGYzYzAsIDAsIHsweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDIyLDB4MDEsMHgwMSwweDgwIH0gfSwKLXsgIDE2LCAweGYzZDAsIDAsIHsweDQyLDB4MjAsMHgxOCwweGM4LDB4NDQsMHgyMiwweDAxLDB4ODAsMHg4NCwweDQyLDB4MjAsMHgxYywweDg4LDB4MDQsMHgyMiwweDAxIH0gfSwKLXsgIDE2LCAweGYzZTAsIDAsIHsweDAwLDB4ODAsMHg0MCwweDIwLDB4MTAsMHg4OCwweDQ0LDB4MzYsMHgwMSwweDQwLDB4ODAsMHg0MSwweDAwLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGYzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA4LDB4MjAsMHgwMCwweDBjIH0gfSwKLXsgIDE2LCAweGY0MDAsIDAsIHsweDIyLDB4MDMsMHgwNCwweDQwLDB4ODEsMHgwMCwweDIwLDB4ODQsMHgwOCwweDAzLDB4MDAsMHgwMCwweDgwLDB4YzIsMHgwMCwweDIwIH0gfSwKLXsgIDE2LCAweGY0MTAsIDAsIHsweGM0LDB4MDgsMHgwMCwweDAzLDB4MDgsMHg4OCwweDgyLDB4MTYsMHhhMCwweDQwLDB4ODgsMHgzMiwweDIyLDB4ODAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY0MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMSwweDAwLDB4ODAsMHgwNCwweDIwIH0gfSwKLXsgIDE2LCAweGY0MzAsIDAsIHsweDEwLDB4MDgsMHgwYywweGMyLDB4MTIsMHgxMCwweDg0LDB4YzgsMHgyMiwweDEyLDB4MDgsMHgwNCwweDAyLDB4MDMsMHgwMCwweDg4IH0gfSwKLXsgIDE2LCAweGY0NDAsIDAsIHsweDAwLDB4MjEsMHgwMCwweDBjLDB4MGMsMHg0MCwweDQxLDB4MzAsMHgwMCwweDg0LDB4MjAsMHgxMCwweDA4LDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY0NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHg4MiwweDA2LDB4MjAsMHgwOCwweDhjIH0gfSwKLXsgIDE2LCAweGY0NjAsIDAsIHsweDMyLDB4MjIsMHgwYywweDg4LDB4ODEsMHgyNiwweDIwLDB4NGQsMHg4OCwweDIzLDB4MjIsMHg4MCwweDg4LDB4ODMsMHgwNiwweDIwIH0gfSwKLXsgIDE2LCAweGY0NzAsIDAsIHsweDA4LDB4ODgsMHgwMCwweDIzLDB4MDQsMHg4YSwweDgxLDB4MzYsMHgyMCwweDRiLDB4ODgsMHgzMiwweDIyLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY0ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwMiwweDAyLDB4MDAsMHgwOSwweDgwIH0gfSwKLXsgIDE2LCAweGY0OTAsIDAsIHsweDMyLDB4MjAsMHgwNCwweDg4LDB4NjAsMHgyMiwweDAwLDB4ODksMHg4NCwweDAwLDB4MjAsMHgwOCwweDk4LDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY0YTAsIDAsIHsweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAyLDB4M2EsMHg4MCwweDQ4LDB4ODAsMHgzMCwweDIwLDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY0YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MGEsMHhjNCwweDFhLDB4YTEsMHg4MCwweGE4IH0gfSwKLXsgIDE2LCAweGY0YzAsIDAsIHsweDQxLDB4MmEsMHgxMCwweGNhLDB4YzcsMHgxYSwweGExLDB4MDQsMHhhZCwweDcxLDB4MmEsMHgxOCwweDRhLDB4ZDQsMHgwNiwweGIxIH0gfSwKLXsgIDE2LCAweGY0ZDAsIDAsIHsweDAwLDB4YTgsMHg3MSwweDJhLDB4MTAsMHgwOCwweDg0LDB4MjYsMHgyOSwweDA2LDB4YWMsMHg1MiwweDJhLDB4MTAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwNCwweDJhLDB4MDEsMHg0MSwweDgwIH0gfSwKLXsgIDE2LCAweGY0ZjAsIDAsIHsweDQyLDB4MjAsMHgxYywweDAwLDB4MDQsMHgwYSwweDAxLDB4MDksMHg4NCwweDUxLDB4MjAsMHgxYywweDg4LDB4NDQsMHgwMiwweDAxIH0gfSwKLXsgIDE2LCAweGY1MDAsIDAsIHsweDA4LDB4ODAsMHg0MCwweDIwLDB4MTAsMHg0YSwweDQ3LDB4MDIsMHgwMSwweDQ4LDB4ODAsMHg2MywweDIwLDB4MTAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY1MTAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHhjNCwweDEwLDB4MjEsMHg4MSwweDBjIH0gfSwKLXsgIDE2LCAweGY1MjAsIDAsIHsweDQxLDB4MDIsMHgwYywweDAwLDB4YzAsMHgyMCwweDYxLDB4MGQsMHgwZSwweDcyLDB4MDIsMHgxYywweDQwLDB4YzQsMHgwOCwweDMxIH0gfSwKLXsgIDE2LCAweGY1MzAsIDAsIHsweDA0LDB4MTgsMHg0MiwweDAyLDB4MTAsMHg4MCwweDg3LDB4MjAsMHhiMSwweGM0LDB4MGMsMHg1MywweDAyLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY1NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4MjAsMHgwNywweDI0LDB4MDEsMHhjYywweDAwIH0gfSwKLXsgIDE2LCAweGY1NTAsIDAsIHsweDcyLDB4NDAsMHgxNCwweDAwLDB4MDQsMHgyNCwweDAxLDB4MDgsMHgwMCwweDczLDB4NDEsMHgxMCwweGMwLDB4MDcsMHgzMCwweDExIH0gfSwKLXsgIDE2LCAweGY1NjAsIDAsIHsweGNjLDB4MDAsMHg3MSwweDAxLDB4MTAsMHgwMiwweDA0LDB4MjAsMHg4MSwweDQ2LDB4MTAsMHg0MiwweDQwLDB4MTAsMHgwMiwweDA0IH0gfSwKLXsgIDE2LCAweGY1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHhjNSwweDEwLDB4MjEsMHgwMCwweDA4IH0gfSwKLXsgIDE2LCAweGY1ODAsIDAsIHsweDYyLDB4MDIsMHgxYywweDkwLDB4YzUsMHgyNCwweDIxLDB4MDAsMHgwYywweDcwLDB4ODIsMHgxYywweDEwLDB4YzQsMHgyMCwweDMxIH0gfSwKLXsgIDE2LCAweGY1OTAsIDAsIHsweDg4LDB4MDIsMHg0MCwweDA2LDB4MWMsMHgwMCwweDg1LDB4MDAsMHhhMSwweDAwLDB4MGMsMHg0MCwweDQyLDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY1YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjIsMHgwNSwweDE0LDB4ODAsMHgwMSwweDIwIH0gfSwKLXsgIDE2LCAweGY1YjAsIDAsIHsweDMwLDB4MDgsMHgwYywweDQyLDB4MDYsMHgwMCwweDgwLDB4MDEsMHgyNCwweDUxLDB4MDgsMHgwYywweDAyLDB4NDEsMHgwMCwweDgwIH0gfSwKLXsgIDE2LCAweGY1YzAsIDAsIHsweDRjLDB4MjAsMHgwMCwweDA4LDB4MGMsMHgzMCwweDQyLDB4MDQsMHgwMCwweDA0LDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY1ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhjNiwweDI0LDB4MjAsMHgwMCwweDBjIH0gfSwKLXsgIDE2LCAweGY1ZTAsIDAsIHsweDMyLDB4YzIsMHgwNCwweDgwLDB4YzcsMHgzMCwweDIwLDB4MDAsMHgwYywweDUzLDB4YzIsMHgwNCwweDEwLDB4YzIsMHgyOCwweDcwIH0gfSwKLXsgIDE2LCAweGY1ZjAsIDAsIHsweDBjLDB4MDksMHgwMiwweDAyLDB4NGMsMHg4MCwweDgxLDB4MDQsMHgzMCwweDA5LDB4MGMsMHgwMiwweDQyLDB4MTAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ODAsMHgwMSwweDM4LDB4MDAsMHgwMiwweDAwIH0gfSwKLXsgIDE2LCAweGY2MTAsIDAsIHsweDEyLDB4NDAsMHgwYywweDIwLDB4MDcsMHgzNCwweDA0LDB4MDIsMHgwMCwweDYzLDB4MDEsMHgwOCwweDEwLDB4MDAsMHgyNCwweDEwIH0gfSwKLXsgIDE2LCAweGY2MjAsIDAsIHsweDA0LDB4MDAsMHgwMiwweDAxLDB4MDQsMHg4MiwweDAxLDB4MDgsMHg4MCwweDA5LDB4MTAsMHgwMiwweDQwLDB4MTAsMHgwMCwweDA0IH0gfSwKLXsgIDE2LCAweGY2MzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgyMCwweDEwLDB4ODAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2NDAsIDAsIHsweDIwLDB4ODAsMHgwMCwweGYwLDB4MjAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDIwLDB4ODAsMHgwMCwweGQwLDB4ODAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2NTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDEwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjYywweDQwIH0gfSwKLXsgIDE2LCAweGY2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzYywweDNjLDB4MTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY2NzAsIDAsIHsweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHgwMCwweDkwIH0gfSwKLXsgIDE2LCAweGY2ODAsIDAsIHsweDgwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgxMCwweGEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MTAsMHg4YywweDA4IH0gfSwKLXsgIDE2LCAweGY2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzQsMHgxYSwweGJlLDB4MTcsMHg4MCwweDAwIH0gfSwKLXsgIDE2LCAweGY2YTAsIDAsIHsweDNlLDB4NDAsMHgyNiwweDZmLDB4YmEsMHhlMywweDI0LDB4ODAsMHgwMCwweDE2LDB4NTksMHhiZCwweDgyLDB4ODEsMHg4MiwweGQ4IH0gfSwKLXsgIDE2LCAweGY2YjAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDE5LDB4OTksMHg4NiwweDgwLDB4NjQsMHg4MCwweGMwLDB4M2YsMHhkOSwweDk5LDB4ODAsMHgwMCwweDAxIH0gfSwKLXsgIDE2LCAweGY2YzAsIDAsIHsweGYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgxNiwweDAyLDB4OTQsMHgwMCwweDE2IH0gfSwKLXsgIDE2LCAweGY2ZDAsIDAsIHsweGMwLDB4MTYsMHg5NCwweDgyLDB4OTAsMHgxNiwweDEwLDB4ODAsMHgyMSwweDE4LDB4MjgsMHgyOCwweDAyLDB4MGEsMHgwMiwweDA4IH0gfSwKLXsgIDE2LCAweGY2ZTAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDgyLDB4ODAsMHgxNCwweDAwLDB4MDEsMHgxNCwweDExLDB4YTAsMHg0MCwweDAwIH0gfSwKLXsgIDE2LCAweGY2ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDg0IH0gfSwKLXsgIDE2LCAweGY3MDAsIDAsIHsweDAyLDB4ODQsMHhhOCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg5MSwweDIyLDB4ODQsMHg0MSwweGEyLDB4MDgsMHgyNCwweDAxIH0gfSwKLXsgIDE2LCAweGY3MTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODQsMHgwMSwweDQ0LDB4MDEsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNlLDB4ZjcsMHhmZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZTcsMHhiNywweGZmIH0gfSwKLXsgIDE2LCAweGY3NDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGZlLDB4N2YsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDM2LDB4YmYsMHhmZSwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4ZjcsMHhkZiwweGZmIH0gfSwKLXsgIDE2LCAweGY3NzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZCwweGI3LDB4YjcsMHhlZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDFmLDB4ZGYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4ZGYsMHhkZiwweGZmIH0gfSwKLXsgIDE2LCAweGY3YTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGVmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4YmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGY3IH0gfSwKLXsgIDE2LCAweGY3ZDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGRmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4N2UsMHhmZiwweGZmLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmUsMHhmZiwweGZmIH0gfSwKLXsgIDE2LCAweGY4MDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDM3LDB4ZmYsMHg2ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH0gfSwKLXsgIDE2LCAweGY4MzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4ODAsIDAsIHsweDMwLDB4MDAsMHg0MywweDBjLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY4ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwIH0gfSwKLXsgIDE2LCAweGY5MDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDMwIH0gfSwKLXsgIDE2LCAweGY5YzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGY5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmIH0gfSwKLXsgIDE2LCAweGZhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmIH0gfSwKLXsgIDE2LCAweGZhODAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDBmIH0gfSwKLXsgIDE2LCAweGZhZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEzLDB4NmIsMHgwMCwweGMwLDB4MDAsMHhjZiwweDJjIH0gfSwKLXsgIDE2LCAweGZiNDAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZiZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDMwIH0gfSwKLXsgIDE2LCAweGZjMDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4M2YsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgzZiwweGMwLDB4M2YsMHhjMCwweDMwIH0gfSwKLXsgIDE2LCAweGZjYzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDBmIH0gfSwKLXsgIDE2LCAweGZkMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDNmIH0gfSwKLXsgIDE2LCAweGZkODAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgzZiwweGMwLDB4M2YsMHhjMCwweDBmIH0gfSwKLXsgIDE2LCAweGZkZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDMzLDB4NWQsMHg4MCwweGMwLDB4MDAsMHhmZCwweGFjIH0gfSwKLXsgIDE2LCAweGZlNDAsIDAsIHsweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwIH0gfSwKLXsgIDE2LCAweGZmMDAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDMwIH0gfSwKLXsgIDE2LCAweGZmYzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweGZmZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmIH0gfSwKLXsgIDE2LCAweDgwMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmIH0gfSwKLXsgIDE2LCAweDgwOTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgwZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDBmIH0gfSwKLXsgIDE2LCAweDgwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEzLDB4NzQsMHhjMCwweGMwLDB4MDAsMHhmMCwweGVjIH0gfSwKLXsgIDE2LCAweDgxNTAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDMwIH0gfSwKLXsgIDE2LCAweDgyMTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4M2YsMHhjMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE5LDB4ODYsMHgxMCwweDgwLDB4MzAsMHg4MiwweDNkIH0gfSwKLXsgIDE2LCAweDgyZDAsIDAsIHsweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgyZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDBmIH0gfSwKLXsgIDE2LCAweDgzMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDNmIH0gfSwKLXsgIDE2LCAweDgzOTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDgzZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgzZiwweGMwLDB4M2YsMHhjMCwweDBmIH0gfSwKLXsgIDE2LCAweDgzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzNywweDY1LDB4MjUsMHhlNCwweDgwLDB4MDAsMHhiMCwweDg4IH0gfSwKLXsgIDE2LCAweDg0NTAsIDAsIHsweGFiLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMiwweDAyLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg0MywweDAwIH0gfSwKLXsgIDE2LCAweDg0ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg2ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg4ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDg5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhiZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDhmZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwZDAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQ0LDB4NzIsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAzIH0gfSwKLXsgIDE2LCAweDkwZTAsIDAsIHsweDMwLDB4MDAsMHg0MCwweDBjLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDE2LCAweDkxMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwNSwweDMwLDB4MDAsMHhhMCwweDAxIH0gfSwKLXsgIDE2LCAweDkxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4ZTEsMHg1YSwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDEyLCAweDkxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAwICwgMHgwMDAwLCAxLCB7MCB9fQotfTsKLS8vIFZFUlNJT049MS4xLjEuMTMxCi0vLyBEQVRFPTIwMDFkZWMwNgotLy8gUFJPRFVDVD1FTUkgMnw2Ci0vKgotICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQotICoKLSAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYwotICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCi0gKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAotICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bwotICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQotICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgotICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAotICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KLSAqLwotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19GaXJtd2FyZVtdID0gewoteyAgIDMsMHgwMDAwLDAsezB4MDIsMHg0MywweDU2fSB9LAoteyAgIDMsMHgwMDAzLDAsezB4MDIsMHg0YiwweGNkfSB9LAoteyAgIDMsMHgwMDBiLDAsezB4MDIsMHg0YiwweGQyfSB9LAoteyAgIDMsMHgwMDEzLDAsezB4MDIsMHg0YiwweDkyfSB9LAoteyAgIDMsMHgwMDFiLDAsezB4MDIsMHg0YiwweGQ1fSB9LAoteyAgIDMsMHgwMDIzLDAsezB4MDIsMHgxYiwweDM5fSB9LAoteyAgIDMsMHgwMDJiLDAsezB4MDIsMHg0MywweGUyfSB9LAoteyAgIDMsMHgwMDMzLDAsezB4MDIsMHgzZiwweGYzfSB9LAoteyAgIDMsMHgwMDNiLDAsezB4MDIsMHg0YiwweGMwfSB9LAoteyAgIDMsMHgwMDQzLDAsezB4MDIsMHg0NywweDAwfSB9LAoteyAgIDMsMHgwMDRiLDAsezB4MDIsMHgzZiwweGZjfSB9LAoteyAgIDMsMHgwMDUzLDAsezB4MDIsMHgzNywweGZhfSB9LAoteyAgIDMsMHgwMDViLDAsezB4MDIsMHg0YiwweGM3fSB9LAoteyAgIDMsMHgwMDYzLDAsezB4MDIsMHg0NiwweGZjfSB9LAoteyAgMTYsMHgwNTAwLDAsezB4MTIsMHgwMSwweDEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDZhLDB4MDgsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAxLDB4MDJ9IH0sCi17ICAxNiwweDA1MTAsMCx7MHgwMCwweDAxLDB4MDksMHgwMiwweGI4LDB4MDEsMHgwMywweDAxLDB4MDAsMHg4MCwweGEwLDB4MDksMHgwNCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MDUyMCwwLHsweDAxLDB4MDEsMHgwMCwweDAwLDB4MGEsMHgyNCwweDAxLDB4MDAsMHgwMSwweDU2LDB4MDAsMHgwMiwweDAxLDB4MDIsMHgwYywweDI0fSB9LAoteyAgMTYsMHgwNTMwLDAsezB4MDIsMHgwMSwweDAxLDB4MDEsMHgwMCwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweDI0LDB4MDYsMHgwNSwweDAxLDB4MDJ9IH0sCi17ICAxNiwweDA1NDAsMCx7MHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOX0gfSwKLXsgIDE2LDB4MDU1MCwwLHsweDI0LDB4MDMsMHgwMiwweDA0LDB4MDMsMHgwMCwweDA1LDB4MDAsMHgwYywweDI0LDB4MDIsMHgwMywweDAxLDB4MDIsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgwNTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDI0LDB4MDYsMHgwNiwweDAzLDB4MDIsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDA1NzAsMCx7MHgwMCwweDA5LDB4MjQsMHgwMywweDA0LDB4MDEsMHgwMSwweDAwLDB4MDYsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAwLDB4MDAsMHgwMX0gfSwKLXsgIDE2LDB4MDU4MCwwLHsweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAxLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxfSB9LAoteyAgMTYsMHgwNTkwLDAsezB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDEsMHgwMiwweDAyLDB4MTAsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmJ9IH0sCi17ICAxNiwweDA1YTAsMCx7MHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDUsMHgwYSwweDA1LDB4ODQsMHgwMSwweDAxLDB4MDAsMHg4ZiwweDA3LDB4MjUsMHgwMX0gfSwKLXsgIDE2LDB4MDViMCwwLHsweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxfSB9LAoteyAgMTYsMHgwNWMwLDAsezB4MDIsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0LDB4MDJ9IH0sCi17ICAxNiwweDA1ZDAsMCx7MHgwMSwweDA2LDB4MDIsMHgxMCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDksMHgwNSwweDBhLDB4MDUsMHg0Y30gfSwKLXsgIDE2LDB4MDVlMCwwLHsweDAyLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzfSB9LAoteyAgMTYsMHgwNWYwLDAsezB4MDAsMHgwMSwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMywweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDF9IH0sCi17ICAxNiwweDA2MDAsMCx7MHgwMSwweDAwLDB4MDEsMHgwMCwweDBlLDB4MjQsMHgwMiwweDAxLDB4MDYsMHgwMywweDE4LDB4MDIsMHg0NCwweGFjLDB4MDAsMHg4MH0gfSwKLXsgIDE2LDB4MDYxMCwwLHsweGJiLDB4MDAsMHgwOSwweDA1LDB4MGEsMHgwNSwweDcyLDB4MDMsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDEsMHgwMSwweDAwfSB9LAoteyAgMTYsMHgwNjIwLDAsezB4MDAsMHgwMCwweDA5LDB4MDUsMHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDYsMHgwMCwweDA5LDB4MDQsMHgwMSwweDA0LDB4MDJ9IH0sCi17ICAxNiwweDA2MzAsMCx7MHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MGIsMHgyNCwweDAyLDB4MDEsMHgwMn0gfSwKLXsgIDE2LDB4MDY0MCwwLHsweDAzLDB4MTgsMHgwMSwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDUsMHgwYSwweDA1LDB4NDYsMHgwMiwweDAxLDB4MDAsMHg4ZiwweDA3fSB9LAoteyAgMTYsMHgwNjUwLDAsezB4MjUsMHgwMSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNiwweDAwLDB4MDl9IH0sCi17ICAxNiwweDA2NjAsMCx7MHgwNCwweDAyLDB4MDAsMHgwMCwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMH0gfSwKLXsgIDE2LDB4MDY3MCwwLHsweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDIsMHgxMCwweDAzfSB9LAoteyAgMTYsMHgwNjgwLDAsezB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDhjLDB4MDUsMHg4NCwweDAxLDB4MDF9IH0sCi17ICAxNiwweDA2OTAsMCx7MHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwMiwweDAxLDB4MDEsMHgwMn0gfSwKLXsgIDE2LDB4MDZhMCwwLHsweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMywweDE4fSB9LAoteyAgMTYsMHgwNmIwLDAsezB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4OGMsMHgwNSwweDQ2LDB4MDJ9IH0sCi17ICAxNiwweDA2YzAsMCx7MHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA1LDB4MGMsMHgwOSwweDAxLDB4YTEsMHgwMX0gfSwKLXsgIDE2LDB4MDZkMCwwLHsweDA1LDB4MGMsMHgwOSwweGU5LDB4MDUsMHgwYywweDA5LDB4ZWEsMHgxNSwweDAwLDB4MjUsMHgwMSwweDk1LDB4MDIsMHg3NSwweDAxfSB9LAoteyAgMTYsMHgwNmUwLDAsezB4ODEsMHg0MiwweDk1LDB4MDEsMHg3NSwweDA2LDB4ODEsMHgwMSwweDA1LDB4MGMsMHgwOSwweDAwLDB4MDUsMHgwYywweDA5LDB4MDB9IH0sCi17ICAxNiwweDA2ZjAsMCx7MHgxNSwweDAwLDB4MjUsMHgwMSwweDk1LDB4MDIsMHg3NSwweDAxLDB4OTEsMHgwNiwweDk1LDB4MDEsMHg3NSwweDA2LDB4OTEsMHgwM30gfSwKLXsgIDE2LDB4MDcwMCwwLHsweGMwLDB4MDQsMHgwMywweDA5LDB4MDQsMHgxOCwweDAzLDB4NDUsMHgwMCwweDRkLDB4MDAsMHg0MSwweDAwLDB4NDcsMHgwMCwweDQ5fSB9LAoteyAgMTYsMHgwNzEwLDAsezB4MDAsMHg0MywweDAwLDB4MjAsMHgwMCwweDQ3LDB4MDAsMHg2ZCwweDAwLDB4NjIsMHgwMCwweDQ4LDB4MDAsMHgxZSwweDAzLDB4NDV9IH0sCi17ICAxNiwweDA3MjAsMCx7MHgwMCwweDZkLDB4MDAsMHg2MSwweDAwLDB4NjcsMHgwMCwweDY5LDB4MDAsMHg2MywweDAwLDB4MjAsMHgwMCwweDQ1LDB4MDAsMHg0ZH0gfSwKLXsgIDE2LDB4MDczMCwwLHsweDAwLDB4NDksMHgwMCwweDIwLDB4MDAsMHgzMiwweDAwLDB4N2MsMHgwMCwweDM2LDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmfSB9LAoteyAgMTYsMHgwNzQwLDAsezB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDAsMHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzR9IH0sCi17ICAxNiwweDA3NTAsMCx7MHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OX0gfSwKLXsgIDE2LDB4MDc2MCwwLHsweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgyMiwweDAzLDB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyfSB9LAoteyAgMTYsMHgwNzcwLDAsezB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzJ9IH0sCi17ICAgOSwweDA3ODAsMCx7MHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDA3ODksMCx7MHg3NCwweDAwLDB4ZjUsMHg4NiwweDkwLDB4ZmQsMHhhNSwweDdjLDB4MDUsMHhhMywweGU1LDB4ODIsMHg0NSwweDgzLDB4NzAsMHhmOX0gfSwKLXsgICAxLDB4MDc5OSwwLHsweDIyfSB9LAoteyAgMTYsMHgwNzlhLDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg0MywweDg3LDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjJ9IH0sCi17ICAxNiwweDA3YWEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHg4ZCwweGUwLDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4MDdiYSwwLHsweDhjLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHhlNSwweDE4fSB9LAoteyAgMTYsMHgwN2NhLDAsezB4YjQsMHgwMiwweDAzLDB4MDIsMHgwNywweGQ5LDB4YjQsMHgwMSwweDAzLDB4MDIsMHgwNywweGRlLDB4MDIsMHgwNywweGZhLDB4N2R9IH0sCi17ICAxNiwweDA3ZGEsMCx7MHgwMSwweDAyLDB4MDgsMHgxNiwweGU1LDB4MTksMHgxNCwweGY1LDB4MTksMHhjMywweGI1LDB4MTMsMHgwMywweDAyLDB4MDcsMHhmNX0gfSwKLXsgIDE2LDB4MDdlYSwwLHsweDUwLDB4MDksMHhiNCwweDAwLDB4ZWEsMHg3NSwweDE5LDB4MGEsMHgwMiwweDA3LDB4ZDksMHg3ZCwweDAwLDB4MDIsMHgwOCwweDE2fSB9LAoteyAgMTYsMHgwN2ZhLDAsezB4ZTUsMHgxOSwweDE0LDB4ZjUsMHgxOSwweGMzLDB4YjUsMHgxNCwweDAzLDB4MDIsMHgwOCwweDExLDB4NTAsMHgwOSwweGI0LDB4MDB9IH0sCi17ICAxNiwweDA4MGEsMCx7MHhjZSwweDc1LDB4MTksMHgwYSwweDAyLDB4MDcsMHhkOSwweDdkLDB4MDIsMHgwMiwweDA4LDB4MTYsMHg3YywweDA1LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDgxYSwwLHsweDk5LDB4ZTAsMHg1NCwweDQwLDB4ZGMsMHgwMywweDAyLDB4MDgsMHg0MywweGI0LDB4MDAsMHgxZCwweDkwLDB4N2YsMHhlMywweDc0fSB9LAoteyAgMTYsMHgwODJhLDAsezB4N2IsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0MCwweGYwLDB4OTAsMHg3ZiwweGU1LDB4ZjB9IH0sCi17ICAxNiwweDA4M2EsMCx7MHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHgwMiwweDA4LDB4MTgsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MH0gfSwKLXsgIDE2LDB4MDg0YSwwLHsweGYwLDB4OTAsMHg3OSwweDY1LDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgwMiwweDA4LDB4OWUsMHhiNCwweDAyLDB4MDMsMHgwMiwweDA4fSB9LAoteyAgMTYsMHgwODVhLDAsezB4OTYsMHhiNCwweDAzLDB4MDMsMHgwMiwweDA4LDB4OGUsMHhiNCwweDA0LDB4MDMsMHgwMiwweDA4LDB4ODYsMHhiNCwweDA1LDB4MDN9IH0sCi17ICAxNiwweDA4NmEsMCx7MHgwMiwweDA4LDB4N2UsMHhiNCwweDA2LDB4MDMsMHgwMiwweDA4LDB4NzYsMHgwMiwweDA4LDB4ZjQsMHgwNSwweDg2LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDg3YSwwLHsweDZjLDB4MDIsMHgwOCwweGU5LDB4MDUsMHg4NiwweDkwLDB4N2YsMHg2YywweDAyLDB4MDgsMHhkZCwweDA1LDB4ODYsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwODhhLDAsezB4NmMsMHgwMiwweDA4LDB4Y2YsMHgwNSwweDg2LDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgwOCwweGMwLDB4MDUsMHg4NiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDA4OWEsMCx7MHg2YywweDAyLDB4MDgsMHhiMiwweDA1LDB4ODYsMHg5MCwweDdmLDB4NmMsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGYwLDB4MDAsMHhmMH0gfSwKLXsgIDE2LDB4MDhhYSwwLHsweDBkLDB4ZWQsMHhiNCwweDJkLDB4ZjQsMHgwMiwweDA4LDB4ZjQsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHgwZCwweGVkfSB9LAoteyAgMTYsMHgwOGJhLDAsezB4YjQsMHgyZCwweGY1LDB4MDIsMHgwOCwweGY0LDB4ZjAsMHgwMCwweGYwLDB4MDAsMHhmMCwweDAwLDB4ZjAsMHgwZCwweGVkLDB4YjR9IH0sCi17ICAxNiwweDA4Y2EsMCx7MHgzMSwweGY0LDB4MDIsMHgwOCwweGY0LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4MGQsMHhlZCwweGI0LDB4MzEsMHhmNX0gfSwKLXsgIDE2LDB4MDhkYSwwLHsweDAyLDB4MDgsMHhmNCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4MGQsMHhlZCwweGI0LDB4NjEsMHhmNywweDAyLDB4MDgsMHhmNCwweGYwfSB9LAoteyAgMTYsMHgwOGVhLDAsezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDBkLDB4ZWQsMHhiNCwweDYxLDB4ZjUsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjB9IH0sCi17ICAxNiwweDA4ZmEsMCx7MHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODYsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmZH0gfSwKLXsgICA1LDB4MDkwYSwwLHsweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTB9IH0sCi17ICAgNiwweDA5MGYsMCx7MHhmZiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDA5MTUsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3ZiwweDZmLDB4ZTUsMHgwYywweGYwLDB4ZTUsMHgwZH0gfSwKLXsgIDEzLDB4MDkyNSwwLHsweGYwLDB4ZTUsMHgwZSwweGYwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwOTMyLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODN9IH0sCi17ICAxNiwweDA5NDIsMCx7MHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHg5MCwweDc5LDB4NzAsMHhlMCwweGZmLDB4YmYsMHgwMCwweDAzLDB4MDIsMHgwYX0gfSwKLXsgIDE2LDB4MDk1MiwwLHsweGI4LDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwOTYyLDAsezB4NjIsMHhlMCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4N2Z9IH0sCi17ICAxNiwweDA5NzIsMCx7MHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4NzksMHg4OCwweGUwLDB4YjQsMHgwMSwweDAzLDB4MDIsMHgwOX0gfSwKLXsgIDE2LDB4MDk4MiwwLHsweGJlLDB4YjQsMHgwMiwweDAzLDB4MDIsMHgwOSwweGMzLDB4YjQsMHgwMywweDAzLDB4MDIsMHgwOSwweGFjLDB4YjQsMHgwNCwweDAzfSB9LAoteyAgMTYsMHgwOTkyLDAsezB4MDIsMHgwOSwweDlhLDB4MDUsMHg4NiwweDAyLDB4MGEsMHhiMiwweGVmLDB4NTQsMHgwMywweGZlLDB4ZWYsMHgwMywweDAzLDB4NTR9IH0sCi17ICAxNiwweDA5YTIsMCx7MHgzZiwweGZmLDB4OTAsMHg3ZiwweDYzLDB4MDUsMHg4NiwweDAyLDB4MDksMHhjOSwweGVmLDB4NTQsMHgwMywweGZlLDB4ZWYsMHgwM30gfSwKLXsgIDE2LDB4MDliMiwwLHsweDAzLDB4NTQsMHgzZiwweGZmLDB4OTAsMHg3ZiwweDYzLDB4MDUsMHg4NiwweDAyLDB4MGEsMHgzNiwweDA1LDB4ODYsMHgwMiwweDBhfSB9LAoteyAgMTYsMHgwOWMyLDAsezB4YTUsMHgwNSwweDg2LDB4MDIsMHgwYSwweDhlLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDA5ZDIsMCx7MHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4Nn0gfSwKLXsgIDE2LDB4MDllMiwwLHsweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwOWYyLDAsezB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhkZiwweGNhLDB4ZWUsMHhiNCwweDAwLDB4MDN9IH0sCi17ICAxNiwweDBhMDIsMCx7MHgwMiwweDBhLDB4YjIsMHhiNCwweDAxLDB4MDMsMHgwMiwweDBhLDB4MjUsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNX0gfSwKLXsgIDE2LDB4MGExMiwwLHsweDg2LDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwYTIyLDAsezB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODZ9IH0sCi17ICAxNiwweDBhMzIsMCx7MHgwMiwweDBhLDB4YjIsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMH0gfSwKLXsgIDEzLDB4MGE0MiwwLHsweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2fSB9LAoteyAgMTYsMHgwYTRmLDAsezB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDUsMHg4NiwweGRmLDB4ZDZ9IH0sCi17ICAxNiwweDBhNWYsMCx7MHhlZSwweGI0LDB4MDAsMHgwMywweDAyLDB4MGEsMHhiMiwweGI0LDB4MDEsMHgwMywweDAyLDB4MGEsMHg4MCwweGUwLDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MGE2ZiwwLHsweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1fSB9LAoteyAgMTYsMHgwYTdmLDAsezB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDUsMHg4NiwweDAyLDB4MGEsMHhiMiwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDBhOGYsMCx7MHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MGE5ZiwwLHsweGRmLDB4ZWMsMHgwMiwweDBhLDB4YjIsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwYWFmLDAsezB4ZTAsMHhkZiwweGYyLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4ZDAsMHg4NSwweGQwLDB4ODQsMHgwNSwweDg2LDB4ZDB9IH0sCi17ICAxNCwweDBhYmYsMCx7MHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwYWNkLDAsezB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGUwLDB4ZTgsMHhjMCwweGUwLDB4NzgsMHhkMSwweGU4LDB4MTQsMHhmOCwweDcwLDB4ZmJ9IH0sCi17ICAxMCwweDBhZGQsMCx7MHhkMCwweGUwLDB4ZjgsMHhkMCwweGUwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHgyMn0gfSwKLXsgIDE2LDB4MGFlNywwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweDhkLDB4ZTAsMHhjMCwweGUwfSB9LAoteyAgMTYsMHgwYWY3LDAsezB4OGMsMHhlMCwweGMwLDB4ZTAsMHg3NSwweDg2LDB4MDAsMHhjMCwweDgyLDB4YzAsMHg4MywweDA1LDB4ODYsMHhjMCwweDg0LDB4YzB9IH0sCi17ICAxNiwweDBiMDcsMCx7MHg4NSwweDdlLDB4MDAsMHg5MCwweDc5LDB4OGUsMHhlMCwweGI0LDB4MDAsMHgxNiwweDc0LDB4MDEsMHhmMCwweDkwLDB4MDYsMHhjYX0gfSwKLXsgIDE2LDB4MGIxNywwLHsweGEzLDB4YTMsMHhhMywweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHhmZiwweDkwLDB4NzksMHg4ZCwweGYwLDB4MDIsMHgwYiwweDM5fSB9LAoteyAgMTYsMHgwYjI3LDAsezB4OTAsMHg3OSwweDhkLDB4ZTAsMHhmZiwweDkwLDB4NzksMHg4ZiwweGUwLDB4ZmQsMHg5MCwweDc5LDB4OTAsMHhlMCwweGZjLDB4MDJ9IH0sCi17ICAxNiwweDBiMzcsMCx7MHgwYiwweDQ2LDB4OTAsMHgwNiwweGNhLDB4MDUsMHg4NiwweDkwLDB4N2YsMHgwMCwweDA1LDB4ODYsMHgwMiwweDBiLDB4NTEsMHg4ZH0gfSwKLXsgIDE2LDB4MGI0NywwLHsweDg0LDB4OGMsMHg4NSwweDA1LDB4ODYsMHg5MCwweDdmLDB4MDAsMHgwNSwweDg2LDB4ZTAsMHhhMywweDA1LDB4ODYsMHhmMCwweGEzfSB9LAoteyAgMTYsMHgwYjU3LDAsezB4MGUsMHhlZSwweGI0LDB4NDAsMHgwMywweDAyLDB4MGIsMHg2YywweDA1LDB4ODYsMHhkZiwweGVlLDB4OTAsMHg3OSwweDhlLDB4NzR9IH0sCi17ICAxNiwweDBiNjcsMCx7MHgwMCwweGYwLDB4MDIsMHgwYiwweDgyLDB4MDUsMHg4NiwweGFkLDB4ODQsMHhhYywweDg1LDB4OTAsMHg3OSwweDhmLDB4ZWQsMHhmMH0gfSwKLXsgIDE2LDB4MGI3NywwLHsweDkwLDB4NzksMHg5MCwweGVjLDB4ZjAsMHg5MCwweDc5LDB4OGQsMHgxZiwweGVmLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHhlZSwweGYwfSB9LAoteyAgMTYsMHgwYjg3LDAsezB4ZDAsMHg4NSwweGQwLDB4ODQsMHgwNSwweDg2LDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmR9IH0sCi17ICAxMSwweDBiOTcsMCx7MHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwYmEyLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4MywweDkwLDB4N2YsMHhhZSwweGUwLDB4NTQsMHhlMCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDBiYjIsMCx7MHg3ZiwweDk2LDB4ZTAsMHg0NCwweDA4LDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweGJmLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MGJjMiwwLHsweDdmLDB4ZTMsMHg3NCwweDdiLDB4ZjAsMHg5MCwweDdmLDB4ZTQsMHg3NCwweDQwLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHhlMCwweDkwfSB9LAoteyAgMTYsMHgwYmQyLDAsezB4N2IsMHg0MCwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0OCwweGYwLDB4OTAsMHg3ZiwweGU1LDB4ZTAsMHg5MCwweDdmLDB4ZTJ9IH0sCi17ICAxNiwweDBiZTIsMCx7MHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4ZjcsMHg0NCwweDA0LDB4ZjAsMHg5MCwweDdmLDB4ZTMsMHg3NH0gfSwKLXsgIDE2LDB4MGJmMiwwLHsweDdiLDB4ZjAsMHg5MCwweDdmLDB4ZTQsMHg3NCwweDQwLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4N2IsMHg0MCwweGYwfSB9LAoteyAgMTYsMHgwYzAyLDAsezB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0OCwweGYwLDB4OTAsMHg3ZiwweGU1LDB4ZTAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjB9IH0sCi17ICAxNiwweDBjMTIsMCx7MHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4ZjMsMHhmMCwweDkwLDB4N2YsMHhhZSwweGUwLDB4NDQsMHgxZiwweGYwLDB4ZDAsMHg4M30gfSwKLXsgICA3LDB4MGMyMiwwLHsweGQwLDB4ODIsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwYzI5LDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDkwLDB4NzksMHgyZiwweGUwLDB4NjQsMHhmZiwweGMzLDB4MjR9IH0sCi17ICAxMSwweDBjMzksMCx7MHgwMSwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwYzQ0LDAsezB4YmIsMHgwMSwweDA2LDB4ODksMHg4MiwweDhhLDB4ODMsMHhlMCwweDIyLDB4NTAsMHgwMiwweGU3LDB4MjIsMHhiYiwweGZlLDB4MDJ9IH0sCi17ICAgOSwweDBjNTQsMCx7MHhlMywweDIyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhlNCwweDkzLDB4MjJ9IH0sCi17ICAxNiwweDBjNWQsMCx7MHhiYiwweDAxLDB4MGMsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGUwLDB4MjIsMHg1MH0gfSwKLXsgIDE2LDB4MGM2ZCwwLHsweDA2LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlNiwweDIyLDB4YmIsMHhmZSwweDA2LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlMiwweDIyfSB9LAoteyAgMTMsMHgwYzdkLDAsezB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlNCwweDkzLDB4MjJ9IH0sCi17ICAxNiwweDBjOGEsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGYwLDB4MjIsMHg1MCwweDAyLDB4ZjcsMHgyMiwweGJiLDB4ZmUsMHgwMX0gfSwKLXsgICAyLDB4MGM5YSwwLHsweGYzLDB4MjJ9IH0sCi17ICAxNiwweDBjOWMsMCx7MHhmOCwweGJiLDB4MDEsMHgwZCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTgsMHhmMH0gfSwKLXsgIDE2LDB4MGNhYywwLHsweDIyLDB4NTAsMHgwNiwweGU5LDB4MjUsMHg4MiwweGM4LDB4ZjYsMHgyMiwweGJiLDB4ZmUsMHgwNSwweGU5LDB4MjUsMHg4MiwweGM4fSB9LAoteyAgIDIsMHgwY2JjLDAsezB4ZjIsMHgyMn0gfSwKLXsgIDE2LDB4MGNiZSwwLHsweGMyLDB4ZDUsMHhlYywweDMwLDB4ZTcsMHgwOSwweGIyLDB4ZDUsMHhlNCwweGMzLDB4OWQsMHhmZCwweGU0LDB4OWMsMHhmYywweGVlfSB9LAoteyAgMTYsMHgwY2NlLDAsezB4MzAsMHhlNywweDE1LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MTIsMHgwZSwweDQwLDB4YzN9IH0sCi17ICAxNiwweDBjZGUsMCx7MHhlNCwweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHg4MCwweDAzLDB4MTIsMHgwZSwweDQwLDB4MzAsMHhkNSwweDA3LDB4YzMsMHhlNH0gfSwKLXsgICA2LDB4MGNlZSwwLHsweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgyMn0gfSwKLXsgIDE2LDB4MGNmNCwwLHsweGM1LDB4ZjAsMHhmOCwweGEzLDB4ZTAsMHgyOCwweGYwLDB4YzUsMHhmMCwweGY4LDB4ZTUsMHg4MiwweDE1LDB4ODIsMHg3MCwweDAyfSB9LAoteyAgIDYsMHgwZDA0LDAsezB4MTUsMHg4MywweGUwLDB4MzgsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgwZDBhLDAsezB4YmIsMHgwMSwweDEwLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweGY1LDB4ZjB9IH0sCi17ICAxNiwweDBkMWEsMCx7MHhhMywweGUwLDB4MjIsMHg1MCwweDA5LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHg4NiwweGYwLDB4MDgsMHhlNiwweDIyLDB4YmIsMHhmZX0gfSwKLXsgIDE2LDB4MGQyYSwwLHsweDBhLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlMiwweGY1LDB4ZjAsMHgwOCwweGUyLDB4MjIsMHhlNSwweDgzLDB4MmEsMHhmNSwweDgzfSB9LAoteyAgIDgsMHgwZDNhLDAsezB4ZTksMHg5MywweGY1LDB4ZjAsMHhhMywweGU5LDB4OTMsMHgyMn0gfSwKLXsgIDE2LDB4MGQ0MiwwLHsweGU4LDB4OGYsMHhmMCwweGE0LDB4Y2MsMHg4YiwweGYwLDB4YTQsMHgyYywweGZjLDB4ZTksMHg4ZSwweGYwLDB4YTQsMHgyYywweGZjfSB9LAoteyAgMTYsMHgwZDUyLDAsezB4OGEsMHhmMCwweGVkLDB4YTQsMHgyYywweGZjLDB4ZWEsMHg4ZSwweGYwLDB4YTQsMHhjZCwweGE4LDB4ZjAsMHg4YiwweGYwLDB4YTR9IH0sCi17ICAxNiwweDBkNjIsMCx7MHgyZCwweGNjLDB4MzgsMHgyNSwweGYwLDB4ZmQsMHhlOSwweDhmLDB4ZjAsMHhhNCwweDJjLDB4Y2QsMHgzNSwweGYwLDB4ZmMsMHhlYn0gfSwKLXsgIDE2LDB4MGQ3MiwwLHsweDhlLDB4ZjAsMHhhNCwweGZlLDB4YTksMHhmMCwweGViLDB4OGYsMHhmMCwweGE0LDB4Y2YsMHhjNSwweGYwLDB4MmUsMHhjZCwweDM5fSB9LAoteyAgMTUsMHgwZDgyLDAsezB4ZmUsMHhlNCwweDNjLDB4ZmMsMHhlYSwweGE0LDB4MmQsMHhjZSwweDM1LDB4ZjAsMHhmZCwweGU0LDB4M2MsMHhmYywweDIyfSB9LAoteyAgMTYsMHgwZDkxLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9IH0sCi17ICAgMSwweDBkYTEsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MGRhMiwwLHsweGJiLDB4MDEsMHgwZCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4MDIsMHgwZSwweGExfSB9LAoteyAgMTYsMHgwZGIyLDAsezB4NTAsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4LDB4MDIsMHgwZSwweDk1LDB4YmIsMHhmZSwweDA3LDB4ZTksMHgyNSwweDgyLDB4Zjh9IH0sCi17ICAxNiwweDBkYzIsMCx7MHgwMiwweDBlLDB4YWQsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweDAyLDB4MGUsMHhiOX0gfSwKLXsgIDE2LDB4MGRkMiwwLHsweGJiLDB4MDEsMHgwZCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4MDIsMHgwZSwweGQ1fSB9LAoteyAgMTYsMHgwZGUyLDAsezB4NTAsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4LDB4MDIsMHgwZSwweGM5LDB4YmIsMHhmZSwweDA3LDB4ZTksMHgyNSwweDgyLDB4Zjh9IH0sCi17ICAgNCwweDBkZjIsMCx7MHgwMiwweDBlLDB4ZTEsMHgyMn0gfSwKLXsgIDE2LDB4MGRmNiwwLHsweGJiLDB4MDEsMHgwZCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4MDIsMHgwZiwweDA2fSB9LAoteyAgMTYsMHgwZTA2LDAsezB4NTAsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4LDB4MDIsMHgwZSwweGVkLDB4YmIsMHhmZSwweDA3LDB4ZTksMHgyNSwweDgyLDB4Zjh9IH0sCi17ICAgNCwweDBlMTYsMCx7MHgwMiwweDBmLDB4MzcsMHgyMn0gfSwKLXsgIDE2LDB4MGUxYSwwLHsweGQwLDB4ODMsMHhkMCwweDgyLDB4ZjgsMHhlNCwweDkzLDB4NzAsMHgxMiwweDc0LDB4MDEsMHg5MywweDcwLDB4MGQsMHhhMywweGEzfSB9LAoteyAgMTYsMHgwZTJhLDAsezB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywweGY1LDB4ODIsMHg4OCwweDgzLDB4ZTQsMHg3MywweDc0LDB4MDIsMHg5MywweDY4LDB4NjB9IH0sCi17ICAgNiwweDBlM2EsMCx7MHhlZiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGZ9IH0sCi17ICAxNiwweDBlNDAsMCx7MHhiYywweDAwLDB4MGIsMHhiZSwweDAwLDB4MjksMHhlZiwweDhkLDB4ZjAsMHg4NCwweGZmLDB4YWQsMHhmMCwweDIyLDB4ZTQsMHhjY30gfSwKLXsgIDE2LDB4MGU1MCwwLHsweGY4LDB4NzUsMHhmMCwweDA4LDB4ZWYsMHgyZiwweGZmLDB4ZWUsMHgzMywweGZlLDB4ZWMsMHgzMywweGZjLDB4ZWUsMHg5ZCwweGVjfSB9LAoteyAgMTYsMHgwZTYwLDAsezB4OTgsMHg0MCwweDA1LDB4ZmMsMHhlZSwweDlkLDB4ZmUsMHgwZiwweGQ1LDB4ZjAsMHhlOSwweGU0LDB4Y2UsMHhmZCwweDIyLDB4ZWR9IH0sCi17ICAxNiwweDBlNzAsMCx7MHhmOCwweGY1LDB4ZjAsMHhlZSwweDg0LDB4MjAsMHhkMiwweDFjLDB4ZmUsMHhhZCwweGYwLDB4NzUsMHhmMCwweDA4LDB4ZWYsMHgyZn0gfSwKLXsgIDE2LDB4MGU4MCwwLHsweGZmLDB4ZWQsMHgzMywweGZkLDB4NDAsMHgwNywweDk4LDB4NTAsMHgwNiwweGQ1LDB4ZjAsMHhmMiwweDIyLDB4YzMsMHg5OCwweGZkfSB9LAoteyAgIDUsMHgwZTkwLDAsezB4MGYsMHhkNSwweGYwLDB4ZWEsMHgyMn0gfSwKLXsgIDEyLDB4MGU5NSwwLHsweGU2LDB4ZmMsMHgwOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmUsMHgwOCwweGU2LDB4ZmYsMHgyMn0gfSwKLXsgIDEyLDB4MGVhMSwwLHsweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHgyMn0gfSwKLXsgIDEyLDB4MGVhZCwwLHsweGUyLDB4ZmMsMHgwOCwweGUyLDB4ZmQsMHgwOCwweGUyLDB4ZmUsMHgwOCwweGUyLDB4ZmYsMHgyMn0gfSwKLXsgIDE2LDB4MGViOSwwLHsweGU0LDB4OTMsMHhmYywweGEzLDB4ZTQsMHg5MywweGZkLDB4YTMsMHhlNCwweDkzLDB4ZmUsMHhhMywweGU0LDB4OTMsMHhmZiwweDIyfSB9LAoteyAgMTIsMHgwZWM5LDAsezB4ZWMsMHhmNiwweDA4LDB4ZWQsMHhmNiwweDA4LDB4ZWUsMHhmNiwweDA4LDB4ZWYsMHhmNiwweDIyfSB9LAoteyAgMTIsMHgwZWQ1LDAsezB4ZWMsMHhmMCwweGEzLDB4ZWQsMHhmMCwweGEzLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDIyfSB9LAoteyAgMTIsMHgwZWUxLDAsezB4ZWMsMHhmMiwweDA4LDB4ZWQsMHhmMiwweDA4LDB4ZWUsMHhmMiwweDA4LDB4ZWYsMHhmMiwweDIyfSB9LAoteyAgMTYsMHgwZWVkLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhlNCwweDkzLDB4ZjYsMHgwOCwweDc0LDB4MDEsMHg5MywweGY2LDB4MDgsMHg3NCwweDAyLDB4OTN9IH0sCi17ICAgOSwweDBlZmQsMCx7MHhmNiwweDA4LDB4NzQsMHgwMywweDkzLDB4ZjYsMHg3NCwweDA0LDB4NzN9IH0sCi17ICAxNiwweDBmMDYsMCx7MHhhOCwweDgyLDB4ODUsMHg4MywweGYwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHgxMiwweDBmLDB4MWQsMHgxMiwweDBmLDB4MWQsMHgxMn0gfSwKLXsgIDE2LDB4MGYxNiwwLHsweDBmLDB4MWQsMHgxMiwweDBmLDB4MWQsMHhlNCwweDczLDB4ZTQsMHg5MywweGEzLDB4YzUsMHg4MywweGM1LDB4ZjAsMHhjNSwweDgzfSB9LAoteyAgMTYsMHgwZjI2LDAsezB4YzgsMHhjNSwweDgyLDB4YzgsMHhmMCwweGEzLDB4YzUsMHg4MywweGM1LDB4ZjAsMHhjNSwweDgzLDB4YzgsMHhjNSwweDgyLDB4Yzh9IH0sCi17ICAgMSwweDBmMzYsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MGYzNywwLHsweGQwLDB4ODMsMHhkMCwweDgyLDB4ZTQsMHg5MywweGYyLDB4MDgsMHg3NCwweDAxLDB4OTMsMHhmMiwweDA4LDB4NzQsMHgwMiwweDkzfSB9LAoteyAgIDksMHgwZjQ3LDAsezB4ZjIsMHgwOCwweDc0LDB4MDMsMHg5MywweGYyLDB4NzQsMHgwNCwweDczfSB9LAoteyAgMTYsMHgwZjUwLDAsezB4YzIsMHhhZiwweGQyLDB4MmMsMHg5MCwweDdmLDB4OTMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweGJmLDB4ZjB9IH0sCi17ICAxNiwweDBmNjAsMCx7MHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHg5NCwweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHg5ZH0gfSwKLXsgIDE2LDB4MGY3MCwwLHsweDc0LDB4Y2YsMHhmMCwweDkwLDB4N2YsMHg5NywweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHg5NSwweDc0LDB4Y2MsMHhmMCwweGU0fSB9LAoteyAgMTYsMHgwZjgwLDAsezB4OTAsMHg3ZiwweDllLDB4ZjAsMHhjMiwweDJkLDB4YzIsMHgyYSwweGMyLDB4MmIsMHhjMiwweDJlLDB4OTAsMHg3OSwweDc0LDB4MDR9IH0sCi17ICAxNiwweDBmOTAsMCx7MHhmMCwweDEyLDB4MmUsMHg5NCwweDEyLDB4NDksMHhlMiwweDEyLDB4NGIsMHhlNiwweDEyLDB4MzIsMHgwZCwweDEyLDB4M2IsMHgwZH0gfSwKLXsgIDE2LDB4MGZhMCwwLHsweDEyLDB4NDEsMHhmZCwweDEyLDB4M2UsMHg5OSwweGU1LDB4MWYsMHg3MCwweDE4LDB4NzUsMHgxZiwweDAxLDB4MTIsMHgxNywweGZmfSB9LAoteyAgMTYsMHgwZmIwLDAsezB4MTIsMHgyZiwweGZmLDB4MTIsMHg0OSwweGM4LDB4MTIsMHg0YiwweGQ4LDB4MTIsMHg0YiwweGRhLDB4MTIsMHg0OSwweDZmLDB4MTJ9IH0sCi17ICAxNiwweDBmYzAsMCx7MHgxYiwweDQwLDB4MTIsMHgzOSwweDhkLDB4OTAsMHg3ZiwweGFmLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMH0gfSwKLXsgIDE2LDB4MGZkMCwwLHsweDQ0LDB4MWYsMHhmMCwweDkwLDB4N2YsMHhhYywweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHhhZCwweGYwLDB4OTAsMHg3ZiwweGRlfSB9LAoteyAgMTYsMHgwZmUwLDAsezB4ZjAsMHg5MCwweDdmLDB4ZGYsMHhmMCwweDkwLDB4N2YsMHhhYiwweGYwLDB4OTAsMHg3ZiwweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWF9IH0sCi17ICAxNiwweDBmZjAsMCx7MHhmMCwweDUzLDB4OTEsMHhlZiwweDQzLDB4ZDgsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4LDB4MjAsMHg0MywweGE4LDB4ODAsMHgyMn0gfSwKLXsgIDE2LDB4MTAwMCwwLHsweDkwLDB4NzksMHg2MywweGUwLDB4MTQsMHg2MCwweDQ0LDB4MTQsMHg3MCwweDAyLDB4MjEsMHhkMCwweDE0LDB4NzAsMHgwMiwweDQxfSB9LAoteyAgMTYsMHgxMDEwLDAsezB4ZDksMHgxNCwweDcwLDB4MDIsMHg2MSwweGQ3LDB4MjQsMHgwNCwweDYwLDB4MDIsMHg4MSwweDU2LDB4ZTQsMHg5MCwweDc5LDB4Nzh9IH0sCi17ICAxNiwweDEwMjAsMCx7MHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg1NCwweGZkLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTAzMCwwLHsweDc5LDB4N2IsMHhmMCwweGU0LDB4OTAsMHg3OSwweDg4LDB4ZjAsMHhhMiwweGFmLDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyfSB9LAoteyAgMTYsMHgxMDQwLDAsezB4MGIsMHhhMiwweGU1LDB4MTIsMHg3MCwweDAyLDB4ODEsMHg1NiwweGQyLDB4YWYsMHgyMiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjR9IH0sCi17ICAxNiwweDEwNTAsMCx7MHgwMSwweDcwLDB4NzksMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHhmZn0gfSwKLXsgIDE2LDB4MTA2MCwwLHsweDc0LDB4ZmMsMHhmMCwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwfSB9LAoteyAgMTYsMHgxMDcwLDAsezB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTJ9IH0sCi17ICAxNiwweDEwODAsMCx7MHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MH0gfSwKLXsgIDE2LDB4MTA5MCwwLHsweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlfSB9LAoteyAgMTYsMHgxMGEwLDAsezB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmR9IH0sCi17ICAxNiwweDEwYjAsMCx7MHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzQsMHgwNH0gfSwKLXsgIDE2LDB4MTBjMCwwLHsweGYwLDB4OTAsMHg3OSwweDg4LDB4MTQsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHgyZCwweGUwfSB9LAoteyAgMTYsMHgxMGQwLDAsezB4NjQsMHgwMiwweDcwLDB4NzksMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4MzQsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDEwZTAsMCx7MHhmZiwweDc0LDB4ZmMsMHhmMCwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MTBmMCwwLHsweGYwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1fSB9LAoteyAgMTYsMHgxMTAwLDAsezB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTB9IH0sCi17ICAxNiwweDExMTAsMCx7MHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NH0gfSwKLXsgIDE2LDB4MTEyMCwwLHsweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0fSB9LAoteyAgMTYsMHgxMTMwLDAsezB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzR9IH0sCi17ICAxNiwweDExNDAsMCx7MHgwNCwweGYwLDB4OTAsMHg3OSwweDg4LDB4MTQsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHgyZH0gfSwKLXsgIDE2LDB4MTE1MCwwLHsweGUwLDB4NjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDU2LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDY0fSB9LAoteyAgMTYsMHgxMTYwLDAsezB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTB9IH0sCi17ICAxNiwweDExNzAsMCx7MHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZn0gfSwKLXsgIDE2LDB4MTE4MCwwLHsweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxMTkwLDAsezB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDExYTAsMCx7MHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTFiMCwwLHsweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0fSB9LAoteyAgMTYsMHgxMWMwLDAsezB4MDQsMHhmMCwweDkwLDB4NzksMHg4OCwweDE0LDB4ZjAsMHhlNSwweDEyLDB4NzAsMHgwMiwweDgxLDB4NTYsMHhkMiwweGFmLDB4MjJ9IH0sCi17ICAxNiwweDExZDAsMCx7MHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDEsMHg3MCwweDdhLDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NH0gfSwKLXsgIDE2LDB4MTFlMCwwLHsweDg4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdifSB9LAoteyAgMTYsMHgxMWYwLDAsezB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDU0LDB4ZmQsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTJ9IH0sCi17ICAxNiwweDEyMDAsMCx7MHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMH0gfSwKLXsgIDE2LDB4MTIxMCwwLHsweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwfSB9LAoteyAgMTYsMHgxMjIwLDAsezB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTB9IH0sCi17ICAxNiwweDEyMzAsMCx7MHg3OSwweDc5LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMn0gfSwKLXsgIDE2LDB4MTI0MCwwLHsweDkwLDB4NzksMHg4MiwweDc0LDB4MGMsMHhmMCwweDkwLDB4NzksMHg4OCwweDc0LDB4MDEsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyfSB9LAoteyAgMTYsMHgxMjUwLDAsezB4ZDIsMHhhZiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDU2LDB4OTAsMHg3ZiwweGYyLDB4ZjB9IH0sCi17ICAxNiwweDEyNjAsMCx7MHg5MCwweDdmLDB4ZjMsMHg3NCwweDk0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OH0gfSwKLXsgIDE2LDB4MTI3MCwwLHsweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDU0LDB4ZmQsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxMjgwLDAsezB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDEyOTAsMCx7MHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMH0gfSwKLXsgIDE2LDB4MTJhMCwwLHsweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwfSB9LAoteyAgMTYsMHgxMmIwLDAsezB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODR9IH0sCi17ICAxNiwweDEyYzAsMCx7MHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0LDB4MGMsMHhmMCwweDkwLDB4NzksMHg4OCwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MTJkMCwwLHsweGU1LDB4MTIsMHg3MCwweDAyLDB4ODEsMHg1NiwweGQyLDB4YWYsMHgyMiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMSwweDcwfSB9LAoteyAgMTYsMHgxMmUwLDAsezB4NzcsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmN9IH0sCi17ICAxNiwweDEyZjAsMCx7MHhmMCwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTQsMHhmY30gfSwKLXsgIDE2LDB4MTMwMCwwLHsweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyfSB9LAoteyAgMTYsMHgxMzEwLDAsezB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDEzMjAsMCx7MHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTMzMCwwLHsweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxMzQwLDAsezB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzQsMHgxMiwweGYwLDB4OTAsMHg3OSwweDg4LDB4NzR9IH0sCi17ICAxNiwweDEzNTAsMCx7MHgwMiwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAyLDB4NzAsMHg3N30gfSwKLXsgIDE2LDB4MTM2MCwwLHsweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHhlMCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwfSB9LAoteyAgMTYsMHgxMzcwLDAsezB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NCwweGZjLDB4ZjB9IH0sCi17ICAxNiwweDEzODAsMCx7MHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MH0gfSwKLXsgIDE2LDB4MTM5MCwwLHsweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmfSB9LAoteyAgMTYsMHgxM2EwLDAsezB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDEzYjAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTNjMCwwLHsweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NCwweDEyLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHg3NCwweDAyfSB9LAoteyAgMTYsMHgxM2QwLDAsezB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDMsMHg3MCwweDc3LDB4OTB9IH0sCi17ICAxNiwweDEzZTAsMCx7MHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDk0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHhlNH0gfSwKLXsgIDE2LDB4MTNmMCwwLHsweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0LDB4ZmUsMHhmMCwweDQ0fSB9LAoteyAgMTYsMHgxNDAwLDAsezB4MDIsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGJ9IH0sCi17ICAxNiwweDE0MTAsMCx7MHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTQyMCwwLHsweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwfSB9LAoteyAgMTYsMHgxNDMwLDAsezB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODR9IH0sCi17ICAxNiwweDE0NDAsMCx7MHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzksMHg4OCwweDc0LDB4MDQsMHhmMH0gfSwKLXsgICA3LDB4MTQ1MCwwLHsweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDIyfSB9LAoteyAgMTYsMHgxNDU3LDAsezB4YzIsMHgyOCwweGMyLDB4MjksMHg5MCwweDdmLDB4ZTgsMHhlMCwweDEyLDB4MGUsMHgxYSwweDE0LDB4ODQsMHgwMCwweDE0LDB4ZTB9IH0sCi17ICAxNiwweDE0NjcsMCx7MHgwMSwweDE0LDB4ZjYsMHgwMiwweDE2LDB4N2MsMHgyMSwweDE2LDB4YmUsMHgyMiwweDE1LDB4OTEsMHg4MCwweDE1LDB4ZDEsMHg4MX0gfSwKLXsgIDE2LDB4MTQ3NywwLHsweDE2LDB4MmUsMHg4MiwweDE2LDB4Y2YsMHhhMSwweDE3LDB4MDUsMHhhMiwweDAwLDB4MDAsMHgxNywweDBhLDB4OTAsMHg3ZiwweGU5fSB9LAoteyAgMTYsMHgxNDg3LDAsezB4ZTAsMHgxNCwweDYwLDB4MTEsMHgyNCwweGZlLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDNiLDB4MjQsMHhmYywweDcwLDB4NDB9IH0sCi17ICAxNiwweDE0OTcsMCx7MHgxMiwweDRhLDB4MmEsMHhlMSwweDE2LDB4MTIsMHg0YiwweGUwLDB4NDAsMHgwMiwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZWEsMHhlMH0gfSwKLXsgIDE2LDB4MTRhNywwLHsweGI0LDB4MDEsMHgwNCwweGMyLDB4MmEsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2fSB9LAoteyAgMTYsMHgxNGI3LDAsezB4MTIsMHg0YiwweGUyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhkMiwweDJhLDB4ZTEsMHgxNiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDE0YzcsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNn0gfSwKLXsgIDE2LDB4MTRkNywwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmNSwweDcwfSB9LAoteyAgMTYsMHgxNGU3LDAsezB4MDUsMHgxMiwweDQ3LDB4OWMsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTB9IH0sCi17ICAxNiwweDE0ZjcsMCx7MHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZkLDB4NjAsMHg1NCwweDI0LDB4MDIsMHg2MCwweDAyLDB4YTEsMHg4OCwweDEyLDB4NGIsMHhlMH0gfSwKLXsgIDE2LDB4MTUwNywwLHsweDQwLDB4MDIsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0fSB9LAoteyAgMTYsMHgxNTE3LDAsezB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNCwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDE1MjcsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhlYywweGUwLDB4NTQsMHg4MCwweGZmLDB4MTMsMHgxM30gfSwKLXsgIDE2LDB4MTUzNywwLHsweDEzLDB4NTQsMHgxZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHg5MCwweDdmLDB4ZDcsMHhmMCwweGUwLDB4NDQsMHgyMCwweGYwfSB9LAoteyAgMTYsMHgxNTQ3LDAsezB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDEyLDB4NGIsMHhlMiwweDQwLDB4MDJ9IH0sCi17ICAxNiwweDE1NTcsMCx7MHhlMSwweDE2LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDIwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZn0gfSwKLXsgIDE2LDB4MTU2NywwLHsweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNCwweGY1LDB4ODIsMHhlNCwweDM0fSB9LAoteyAgMTYsMHgxNTc3LDAsezB4N2YsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTF9IH0sCi17ICAxNiwweDE1ODcsMCx7MHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlOSwweGUwLDB4NjAsMHgxMn0gfSwKLXsgIDE2LDB4MTU5NywwLHsweDI0LDB4ZjgsMHg2MCwweDA5LDB4MjQsMHgwMiwweDcwLDB4MjksMHgxMiwweDE3LDB4MWUsMHhlMSwweDE2LDB4MTIsMHg0YiwweGEwfSB9LAoteyAgMTYsMHgxNWE3LDAsezB4ZTEsMHgxNiwweDEyLDB4NGIsMHhkZSwweGEyLDB4MmEsMHhlNCwweDMzLDB4ZmYsMHgyNSwweGUwLDB4ZmYsMHhhMiwweDJiLDB4ZTR9IH0sCi17ICAxNiwweDE1YjcsMCx7MHgzMywweDRmLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHhlMX0gfSwKLXsgIDE2LDB4MTVjNywwLHsweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHg2MCwweDM3fSB9LAoteyAgMTYsMHgxNWQ3LDAsezB4MjQsMHhmNiwweDYwLDB4MmUsMHgyNCwweDA0LDB4NzAsMHg0MSwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhkZSwweDYwLDB4MGV9IH0sCi17ICAxNiwweDE1ZTcsMCx7MHgwNCwweDcwLDB4MTYsMHhkMiwweDI5LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4ZDIsMHgyOX0gfSwKLXsgIDE2LDB4MTVmNywwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgxNjA3LDAsezB4ZTEsMHgxNiwweDEyLDB4NDQsMHg2MywweGUxLDB4MTYsMHgxMiwweDRiLDB4ZGUsMHhlNCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTN9IH0sCi17ICAxNiwweDE2MTcsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweGUxLDB4MTYsMHgyMCwweDI5LDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMH0gfSwKLXsgIDE2LDB4MTYyNywwLHsweDQ0LDB4MDEsMHhmMCwweGMyLDB4MjksMHhlMSwweDE2LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGY0LDB4NjAsMHgzNCwweDI0fSB9LAoteyAgMTYsMHgxNjM3LDAsezB4MGMsMHg3MCwweDM5LDB4MTIsMHg0YiwweGRlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTR9IH0sCi17ICAxNiwweDE2NDcsMCx7MHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNX0gfSwKLXsgIDE2LDB4MTY1NywwLHsweDgzLDB4ZTAsMHg1NCwweGZkLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyfSB9LAoteyAgMTYsMHgxNjY3LDAsezB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTB9IH0sCi17ICAxNiwweDE2NzcsMCx7MHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGY2LDB4NjAsMHgxMiwweDE0LDB4NjAsMHgxYX0gfSwKLXsgIDE2LDB4MTY4NywwLHsweDI0LDB4MDIsMHg3MCwweDFkLDB4ZDIsMHgyOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyfSB9LAoteyAgMTYsMHgxNjk3LDAsezB4MjgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9IH0sCi17ICAxNiwweDE2YTcsMCx7MHhmMCwweDIwLDB4MjgsMHgwZiwweDkwLDB4NzksMHg4NSwweDc0LDB4MDEsMHhmMCwweDEyLDB4NDksMHg2ZiwweDkwLDB4N2YsMHhjNX0gfSwKLXsgIDE2LDB4MTZiNywwLHsweDc0LDB4MDIsMHhmMCwweGMyLDB4MjgsMHg4MCwweDU4LDB4OTAsMHg3OSwweDg2LDB4NzQsMHgwMSwweGYwLDB4MTIsMHg0OSwweDZmfSB9LAoteyAgMTYsMHgxNmM3LDAsezB4OTAsMHg3ZiwweGM1LDB4NzQsMHgwMiwweGYwLDB4ODAsMHg0NywweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4MTJ9IH0sCi17ICAxNiwweDE2ZDcsMCx7MHgxNCwweDYwLDB4MWEsMHgyNCwweDAyLDB4NzAsMHgxZCwweGQyLDB4MjgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MTZlNywwLHsweDgwLDB4MTIsMHhkMiwweDI4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTYsMHgxNmY3LDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMCwweDI4LDB4MDMsMHgxMiwweDFhLDB4N2IsMHhjMiwweDI4LDB4ODAsMHgxMSwweDEyLDB4MmN9IH0sCi17ICAxNiwweDE3MDcsMCx7MHgyYiwweDgwLDB4MGMsMHgxMiwweDRiLDB4ZTQsMHg1MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MH0gfSwKLXsgICA3LDB4MTcxNywwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgxNzFlLDAsezB4MTIsMHg0YiwweGRjLDB4NDAsMHgwMiwweGUxLDB4ZTMsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDI0LDB4ZmUsMHg2MCwweDFlLDB4MTR9IH0sCi17ICAxNiwweDE3MmUsMCx7MHg2MCwweDQ2LDB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4ZTEsMHhkNCwweDI0LDB4MDQsMHg2MCwweDAyLDB4ZTEsMHhkY30gfSwKLXsgIDE2LDB4MTczZSwwLHsweDc0LDB4MDUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweDc0LDB4MDAsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhfSB9LAoteyAgMTYsMHgxNzRlLDAsezB4ZTAsMHhmZiwweDEyLDB4M2YsMHhhMiwweDhiLDB4MzMsMHg4YSwweDM0LDB4ODksMHgzNSwweGVhLDB4NDksMHg2MCwweDExLDB4Y2V9IH0sCi17ICAxNiwweDE3NWUsMCx7MHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MTc2ZSwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4MTIsMHg0OCwweDAwfSB9LAoteyAgMTYsMHgxNzdlLDAsezB4OGIsMHgzMywweDhhLDB4MzQsMHg4OSwweDM1LDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDE3OGUsMCx7MHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0gfSwKLXsgIDE2LDB4MTc5ZSwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZifSB9LAoteyAgMTYsMHgxN2FlLDAsezB4MTIsMHg0NCwweGQyLDB4OGIsMHgzMywweDhhLDB4MzQsMHg4OSwweDM1LDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2V9IH0sCi17ICAxNiwweDE3YmUsMCx7MHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MTdjZSwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSB9LAoteyAgIDUsMHgxN2RlLDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MTdlMywwLHsweDIyfSB9LAoteyAgMTYsMHgxN2U0LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4OTAsMHg3ZiwweGM0LDB4ZTQsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2Z9IH0sCi17ICAxMSwweDE3ZjQsMCx7MHhhYiwweDc0LDB4MDQsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgIDEsMHgxN2ZmLDAsezB4MjJ9IH0sCi17ICAxNiwweDE4MDAsMCx7MHhlNCwweDkwLDB4NzgsMHgxNSwweGYwLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgxMiwweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMH0gfSwKLXsgIDE2LDB4MTgxMCwwLHsweGEzLDB4NzQsMHg1OCwweGYwLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwfSB9LAoteyAgMTYsMHgxODIwLDAsezB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweGZmLDB4OTAsMHg3OSwweDlhLDB4ZTAsMHg2ZiwweDYwLDB4MTgsMHg5MCwweDc4LDB4MTV9IH0sCi17ICAxNiwweDE4MzAsMCx7MHhlMCwweGMzLDB4OTQsMHgwNiwweDUwLDB4MGYsMHhlMCwweDA0LDB4ZjAsMHg5MCwweDc4LDB4MTMsMHhlNCwweDc1LDB4ZjAsMHgwZn0gfSwKLXsgIDE2LDB4MTg0MCwwLHsweDEyLDB4MGMsMHhmNCwweDgwLDB4Y2YsMHg5MCwweDc4LDB4MTUsMHhlMCwweGI0LDB4MDYsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwfSB9LAoteyAgMTYsMHgxODUwLDAsezB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4MTJ9IH0sCi17ICAxNiwweDE4NjAsMCx7MHgwYywweDQ0LDB4ZmYsMHgyNCwweGJmLDB4NzAsMHgwMiwweDQxLDB4N2EsMHgyNCwweGUwLDB4NzAsMHgwMiwweDQxLDB4NGMsMHgyNH0gfSwKLXsgIDE2LDB4MTg3MCwwLHsweDIxLDB4NjAsMHgwMiwweDQxLDB4NzMsMHg5MCwweDc5LDB4OTcsMHhlMCwweDI0LDB4ZmUsMHg3MCwweDAyLDB4MjEsMHg5YSwweDE0fSB9LAoteyAgMTYsMHgxODgwLDAsezB4NzAsMHgwMiwweDIxLDB4ZWYsMHgyNCwweDAyLDB4NjAsMHgwMiwweDQxLDB4NDQsMHg5MCwweDc5LDB4MmQsMHhlMCwweGEzLDB4ZjB9IH0sCi17ICAxNiwweDE4OTAsMCx7MHg5MCwweDc5LDB4MjMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgwZH0gfSwKLXsgIDE2LDB4MThhMCwwLHsweDQyLDB4YzgsMHhlYywweGM4LDB4YzksMHhlZCwweGM5LDB4Y2EsMHhlZSwweGNhLDB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3OSwweDIyfSB9LAoteyAgMTYsMHgxOGIwLDAsezB4ZTAsMHhmZSwweGU0LDB4ZmMsMHhmZCwweDJiLDB4ZmIsMHhlYSwweDNlLDB4ZmEsMHhlZCwweDM5LDB4ZjksMHhlYywweDM4LDB4Zjh9IH0sCi17ICAxNiwweDE4YzAsMCx7MHg5MCwweDc5LDB4MjEsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZH0gfSwKLXsgIDE2LDB4MThkMCwwLHsweGVjLDB4MzgsMHhmYywweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwfSB9LAoteyAgMTYsMHgxOGUwLDAsezB4MDIsMHgxMiwweDBkLDB4ZDIsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4YTIsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDB9IH0sCi17ICAxNiwweDE4ZjAsMCx7MHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDA1LDB4OTAsMHg3OSwweDJkLDB4MDQsMHhmMCwweDkwLDB4NzgsMHgxMn0gfSwKLXsgIDE2LDB4MTkwMCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4YTIsMHg3YiwweDgwfSB9LAoteyAgMTYsMHgxOTEwLDAsezB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDA2LDB4OTAsMHg3OSwweDJkLDB4NzR9IH0sCi17ICAxNiwweDE5MjAsMCx7MHgwMiwweGYwLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MTkzMCwwLHsweDEyLDB4MGQsMHhhMiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwfSB9LAoteyAgMTYsMHgxOTQwLDAsezB4MDYsMHg5MCwweDc5LDB4MmQsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc5LDB4MmQsMHhlMCwweGZmLDB4YjQsMHgwMSwweDA5LDB4NzV9IH0sCi17ICAxNiwweDE5NTAsMCx7MHgwYywweDY3LDB4NzUsMHgwZCwweDA2LDB4NzUsMHgwZSwweDBiLDB4ZWYsMHhiNCwweDAyLDB4MDgsMHhlNCwweGY1LDB4MGMsMHhmNX0gfSwKLXsgIDE2LDB4MTk2MCwwLHsweDBkLDB4NzUsMHgwZSwweDBjLDB4ZWYsMHhiNCwweDAzLDB4MDgsMHhlNCwweGY1LDB4MGMsMHhmNSwweDBkLDB4NzUsMHgwZSwweDE4fSB9LAoteyAgMTYsMHgxOTcwLDAsezB4ZWYsMHhiNCwweDAzLDB4MGQsMHg5MCwweDc5LDB4MmUsMHhlMCwweDY0LDB4MDMsMHg2MCwweDA1LDB4ZDIsMHgyZiwweDEyLDB4M2R9IH0sCi17ICAxNiwweDE5ODAsMCx7MHg3OSwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMywweDYwLDB4MGEsMHhhMywweGUwLDB4YjQsMHgwMywweDA1LDB4YzIsMHgyZn0gfSwKLXsgIDE2LDB4MTk5MCwwLHsweDEyLDB4M2QsMHg3OSwweDEyLDB4MTAsMHgwMCwweDEyLDB4MjgsMHgwMSwweDIyLDB4OTAsMHg3OSwweDIzLDB4ZTAsMHhmZiwweGU0fSB9LAoteyAgMTYsMHgxOWEwLDAsezB4ZmMsMHhmZCwweGZlLDB4ZmIsMHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MGQsMHg0MiwweGM4LDB4ZWMsMHhjOCwweGM5LDB4ZWR9IH0sCi17ICAxNiwweDE5YjAsMCx7MHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4NzksMHgyMiwweGUwLDB4ZmUsMHhlNCwweGZjLDB4ZmQsMHgyYn0gfSwKLXsgIDE2LDB4MTljMCwwLHsweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZiwweGU0fSB9LAoteyAgMTYsMHgxOWQwLDAsezB4ZmUsMHhlYiwweDJmLDB4ZmYsMHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlYywweDM4LDB4ZmMsMHg5MCwweDc4LDB4MTJ9IH0sCi17ICAxNiwweDE5ZTAsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwZCwweGQyLDB4MjIsMHg5MH0gfSwKLXsgIDE2LDB4MTlmMCwwLHsweDc5LDB4MjMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgwZCwweDQyfSB9LAoteyAgMTYsMHgxYTAwLDAsezB4YzgsMHhlYywweGM4LDB4YzksMHhlZCwweGM5LDB4Y2EsMHhlZSwweGNhLDB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3OSwweDIyLDB4ZTB9IH0sCi17ICAxNiwweDFhMTAsMCx7MHhmZSwweGU0LDB4ZmMsMHhmZCwweDJiLDB4ZmIsMHhlYSwweDNlLDB4ZmEsMHhlZCwweDM5LDB4ZjksMHhlYywweDM4LDB4ZjgsMHg5MH0gfSwKLXsgIDE2LDB4MWEyMCwwLHsweDc5LDB4MjEsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZCwweGVjfSB9LAoteyAgMTYsMHgxYTMwLDAsezB4MzgsMHhmYywweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MGF9IH0sCi17ICAxNiwweDFhNDAsMCx7MHgxMiwweDBkLDB4ZDIsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4OTcsMHhlMH0gfSwKLXsgIDE2LDB4MWE1MCwwLHsweDE0LDB4NzAsMHgxOCwweDkwLDB4NzksMHgyMSwweGUwLDB4ZmYsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgxYTYwLDAsezB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDBlLDB4ZWYsMHgxMiwweDBjLDB4OWMsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9IH0sCi17ICAxMCwweDFhNzAsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MWE3YSwwLHsweDIyfSB9LAoteyAgMTYsMHgxYTdiLDAsezB4ZTQsMHhmZiwweGZlLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgwZiwweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzR9IH0sCi17ICAxNiwweDFhOGIsMCx7MHgyYiwweGYwLDB4OTAsMHg3OCwweDBmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MWE5YiwwLHsweDEyLDB4MGMsMHg1ZCwweGZkLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg2ZCwweDYwLDB4MTMsMHhlZiwweGMzLDB4OTQsMHgwNSwweDUwfSB9LAoteyAgMTYsMHgxYWFiLDAsezB4MGQsMHgwZiwweDkwLDB4NzgsMHgxMCwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4ODAsMHhkNCwweDhkLDB4MzN9IH0sCi17ICAxNiwweDFhYmIsMCx7MHg5MCwweDc4LDB4MGYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4MWFjYiwwLHsweDVkLDB4ZmQsMHg5MCwweDdmLDB4ZWQsMHhlMCwweDZkLDB4NjAsMHgxMywweGVlLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwZCwweDBlfSB9LAoteyAgMTYsMHgxYWRiLDAsezB4OTAsMHg3OCwweDEwLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg4MCwweGQ0LDB4OTAsMHg3ZiwweGVkLDB4ZTB9IH0sCi17ICAxNiwweDFhZWIsMCx7MHhmNSwweDM0LDB4ZWYsMHg2NCwweDA1LDB4NjAsMHgwMywweGJlLDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0gfSwKLXsgIDE2LDB4MWFmYiwwLHsweGYwLDB4MjIsMHg5MCwweDc4LDB4MGYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0fSB9LAoteyAgMTYsMHgxYjBiLDAsezB4ZmYsMHgyNCwweGYwLDB4NjAsMHgwOCwweDI0LDB4MGYsMHg3MCwweDBlLDB4MTIsMHg0OSwweDJhLDB4MjIsMHgxMiwweDRiLDB4ODN9IH0sCi17ICAxNCwweDFiMWIsMCx7MHg5MCwweDc5LDB4MjAsMHhlNSwweDM0LDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgxYjI5LDAsezB4MjJ9IH0sCi17ICAxNSwweDFiMmEsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGI0LDB4ZmYsMHgwNCwweDEyLDB4MzQsMHgxNiwweDIyLDB4MTIsMHgzOCwweDAwLDB4MjJ9IH0sCi17ICAgNywweDFiMzksMCx7MHg1MywweDk4LDB4ZmUsMHg1MywweDk4LDB4ZmQsMHgzMn0gfSwKLXsgIDE2LDB4MWI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2EwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2QwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWUxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWVhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTQsMHgxZWIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWViZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWVlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmMGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWYxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAgMiwweDFmM2UsMCx7MHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjAyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjExMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjIwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjIzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNCwweDIzNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzOGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2FlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzYmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2RlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjUxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNThlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjVhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1ZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjYzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNmFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjZjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNmRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNCwweDI2ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNmZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3MGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjcxYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzJjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3M2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc0YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzVjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3NmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc3YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzhjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3OWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjdhYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyN2JjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3Y2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjdkYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyN2VjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAgNSwweDI3ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDIyfSB9LAoteyAgMTYsMHgyODAxLDAsezB4OTAsMHg3OSwweDY0LDB4ZTAsMHgxNCwweDYwLDB4NDYsMHgxNCwweDcwLDB4MDIsMHg0MSwweDNjLDB4MjQsMHgwMiwweDYwLDB4MDJ9IH0sCi17ICAxNiwweDI4MTEsMCx7MHg4MSwweDJhLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MjgyMSwwLHsweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0LDB4ZmQsMHhmMCwweDQ0fSB9LAoteyAgMTYsMHgyODMxLDAsezB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGJ9IH0sCi17ICAxNiwweDI4NDEsMCx7MHhhMiwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweGU0LDB4OTAsMHg3OSwweDdhLDB4ZjAsMHgyMiwweDkwLDB4NzksMHgyZH0gfSwKLXsgIDE2LDB4Mjg1MSwwLHsweGUwLDB4NjQsMHgwMSwweDYwLDB4MDIsMHgwMSwweGYxLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhjYywweGYwLDB4OTAsMHg3ZiwweGZmfSB9LAoteyAgMTYsMHgyODYxLDAsezB4NzQsMHhmYywweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDI4NzEsMCx7MHhmMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4Mjg4MSwwLHsweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyODkxLDAsezB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGJ9IH0sCi17ICAxNiwweDI4YTEsMCx7MHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MjhiMSwwLHsweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwfSB9LAoteyAgMTYsMHgyOGMxLDAsezB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjB9IH0sCi17ICAxNiwweDI4ZDEsMCx7MHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3YSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2NX0gfSwKLXsgIDE2LDB4MjhlMSwwLHsweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4ZTQsMHg5MCwweDc5LDB4OGMsMHhmMCwweDkwLDB4NzksMHg4YiwweGYwfSB9LAoteyAgMTYsMHgyOGYxLDAsezB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAyLDB4NjAsMHgwMiwweDIxLDB4OTYsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGM4LDB4ZjB9IH0sCi17ICAxNiwweDI5MDEsMCx7MHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMH0gfSwKLXsgIDE2LDB4MjkxMSwwLHsweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxfSB9LAoteyAgMTYsMHgyOTIxLDAsezB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmJ9IH0sCi17ICAxNiwweDI5MzEsMCx7MHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMn0gfSwKLXsgIDE2LDB4Mjk0MSwwLHsweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyOTUxLDAsezB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjB9IH0sCi17ICAxNiwweDI5NjEsMCx7MHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDIsMHhmMH0gfSwKLXsgIDE2LDB4Mjk3MSwwLHsweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDdhLDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgyOTgxLDAsezB4OTAsMHg3OSwweDY1LDB4NzQsMHgwMywweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4ZTQsMHg5MCwweDc5LDB4OGN9IH0sCi17ICAxNiwweDI5OTEsMCx7MHhmMCwweDkwLDB4NzksMHg4YiwweGYwLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAzLDB4NjAsMHgwMiwweDgxLDB4MmEsMHg5MH0gfSwKLXsgIDE2LDB4MjlhMSwwLHsweDdmLDB4ZmMsMHg3NCwweDk4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxfSB9LAoteyAgMTYsMHgyOWIxLDAsezB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDI5YzEsMCx7MHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MH0gfSwKLXsgIDE2LDB4MjlkMSwwLHsweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmfSB9LAoteyAgMTYsMHgyOWUxLDAsezB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDI5ZjEsMCx7MHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmEwMSwwLHsweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYTExLDAsezB4NzksMHhlMCwweDU0LDB4ZmQsMHhmMCwweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTB9IH0sCi17ICAxNiwweDJhMjEsMCx7MHg3OSwweDdhLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY1LDB4NzQsMHgwNSwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMn0gfSwKLXsgIDE2LDB4MmEzMSwwLHsweGFmLDB4ZTQsMHg5MCwweDc5LDB4OGMsMHhmMCwweDkwLDB4NzksMHg4YiwweGYwLDB4MjIsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0fSB9LAoteyAgMTYsMHgyYTQxLDAsezB4MDEsMHg2MCwweDAyLDB4NDEsMHhlMCwweDkwLDB4N2YsMHhmYywweDc0LDB4YjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmN9IH0sCi17ICAxNiwweDJhNTEsMCx7MHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NH0gfSwKLXsgIDE2LDB4MmE2MSwwLHsweGZlLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwfSB9LAoteyAgMTYsMHgyYTcxLDAsezB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTB9IH0sCi17ICAxNiwweDJhODEsMCx7MHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MH0gfSwKLXsgIDE2LDB4MmE5MSwwLHsweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmfSB9LAoteyAgMTYsMHgyYWExLDAsezB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDJhYjEsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmFjMSwwLHsweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4N2EsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjUsMHgwNCwweGYwfSB9LAoteyAgMTYsMHgyYWQxLDAsezB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4ZTQsMHg5MCwweDc5LDB4OGMsMHhmMCwweDkwLDB4NzksMHg4YiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDJhZTEsMCx7MHg3OSwweDJkLDB4ZTAsMHg2NCwweDAyLDB4NjAsMHgwMiwweDYxLDB4ODUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGIwLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MmFmMSwwLHsweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwfSB9LAoteyAgMTYsMHgyYjAxLDAsezB4NzksMHg3OSwweGYwLDB4NTQsMHhmZSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDl9IH0sCi17ICAxNiwweDJiMTEsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMH0gfSwKLXsgIDE2LDB4MmIyMSwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmfSB9LAoteyAgMTYsMHgyYjMxLDAsezB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDJiNDEsMCx7MHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MH0gfSwKLXsgIDE2LDB4MmI1MSwwLHsweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0fSB9LAoteyAgMTYsMHgyYjYxLDAsezB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDdhLDB4NzQsMHgwMSwweGYwLDB4OTB9IH0sCi17ICAxNiwweDJiNzEsMCx7MHg3OSwweDY1LDB4NzQsMHgwNCwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4ZTQsMHg5MCwweDc5LDB4OGMsMHhmMH0gfSwKLXsgIDE2LDB4MmI4MSwwLHsweDkwLDB4NzksMHg4YiwweGYwLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAzLDB4NjAsMHgwMiwweDgxLDB4MmEsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgyYjkxLDAsezB4ZmMsMHg3NCwweDY4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDJiYTEsMCx7MHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTQsMHhmZSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmJiMSwwLHsweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYmMxLDAsezB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTR9IH0sCi17ICAxNiwweDJiZDEsMCx7MHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmJlMSwwLHsweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgyYmYxLDAsezB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDJjMDEsMCx7MHhlMCwweDU0LDB4ZmQsMHhmMCwweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmMxMSwwLHsweDdhLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY1LDB4NzQsMHgwNiwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmfSB9LAoteyAgMTAsMHgyYzIxLDAsezB4ZTQsMHg5MCwweDc5LDB4OGMsMHhmMCwweDkwLDB4NzksMHg4YiwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDJjMmIsMCx7MHhlNCwweGZmLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgxNiwweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHg1OH0gfSwKLXsgIDE2LDB4MmMzYiwwLHsweGYwLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDEyfSB9LAoteyAgMTYsMHgyYzRiLDAsezB4MGMsMHg1ZCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg2ZSwweDYwLDB4MTMsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MGR9IH0sCi17ICAxNiwweDJjNWIsMCx7MHgwZiwweDkwLDB4NzgsMHgxNywweGU0LDB4NzUsMHhmMCwweDBmLDB4MTIsMHgwYywweGY0LDB4ODAsMHhkNCwweGJmLDB4MDYsMHgwOH0gfSwKLXsgIDE2LDB4MmM2YiwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgyYzdiLDAsezB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0LDB4ZmYsMHgyNCwweDlmLDB4NzAsMHgwMiwweGMxLDB4NjYsMHgyNCwweDIxLDB4NjB9IH0sCi17ICAxNiwweDJjOGIsMCx7MHgwMiwweGMxLDB4OGMsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2UsMHg3MCwweDAyLDB4YTEsMHgzMCwweDE0LDB4NzAsMHgwMn0gfSwKLXsgIDE2LDB4MmM5YiwwLHsweGExLDB4YzgsMHgyNCwweDAyLDB4NjAsMHgwMiwweGMxLDB4NWUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4YTIsMHg3YiwweDQ0fSB9LAoteyAgMTYsMHgyY2FiLDAsezB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzR9IH0sCi17ICAxNiwweDJjYmIsMCx7MHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MmNjYiwwLHsweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGEyfSB9LAoteyAgMTYsMHgyY2RiLDAsezB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2Z9IH0sCi17ICAxNiwweDJjZWIsMCx7MHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwM30gfSwKLXsgIDE2LDB4MmNmYiwwLHsweGYwLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMiwweDEyfSB9LAoteyAgMTYsMHgyZDBiLDAsezB4MGQsMHhhMiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDYwLDB4MDJ9IH0sCi17ICAxNiwweDJkMWIsMCx7MHhjMSwweDkzLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0LDB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MmQyYiwwLHsweGI1LDB4NzQsMHgwMywweGYwLDB4MjIsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgMTYsMHgyZDNiLDAsezB4OTAsMHgwMCwweDA2LDB4MTIsMHgwZCwweGEyLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTJ9IH0sCi17ICAxNiwweDJkNGIsMCx7MHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzLDB4NzQsMHhhYywweGYwLDB4ZTQsMHhhM30gfSwKLXsgIDE2LDB4MmQ1YiwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzfSB9LAoteyAgMTYsMHgyZDZiLDAsezB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGQsMHhhMiwweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDB9IH0sCi17ICAxNiwweDJkN2IsMCx7MHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMH0gfSwKLXsgIDE2LDB4MmQ4YiwwLHsweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTYsMHgyZDliLDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDYsMHgxMiwweDBkLDB4YTIsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDF9IH0sCi17ICAxNiwweDJkYWIsMCx7MHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg2MCwweDAyLDB4YzEsMHg5MywweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NH0gfSwKLXsgIDE2LDB4MmRiYiwwLHsweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3OCwweDE2fSB9LAoteyAgMTYsMHgyZGNiLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGQsMHhhMiwweDdiLDB4NDR9IH0sCi17ICAxNiwweDJkZGIsMCx7MHg3YSwweGFjLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NH0gfSwKLXsgIDE2LDB4MmRlYiwwLHsweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWMsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyZGZiLDAsezB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MGEsMHgxMiwweDBkLDB4YTJ9IH0sCi17ICAxNiwweDJlMGIsMCx7MHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MmUxYiwwLHsweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzfSB9LAoteyAgMTYsMHgyZTJiLDAsezB4ZjAsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDBhLDB4MTJ9IH0sCi17ICAxNiwweDJlM2IsMCx7MHgwZCwweGEyLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHg0OH0gfSwKLXsgIDE2LDB4MmU0YiwwLHsweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fSB9LAoteyAgMTYsMHgyZTViLDAsezB4MDMsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjR9IH0sCi17ICAxNiwweDJlNmIsMCx7MHg3ZiwweDcwLDB4MTYsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4MmU3YiwwLHsweDBlLDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDgsMHgyZThiLDAsezB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MmU5MywwLHsweDIyfSB9LAoteyAgMTYsMHgyZTk0LDAsezB4NzUsMHgzNiwweDI1LDB4NzUsMHgzNywweDI0LDB4OTAsMHg3OSwweDc0LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg1NCwweGYwLDB4ZjV9IH0sCi17ICAxNiwweDJlYTQsMCx7MHgzNSwweDc1LDB4MjIsMHgwMSwweGU1LDB4MjIsMHg2NCwweDAxLDB4NzAsMHg0OCwweDkwLDB4N2YsMHhhNSwweGUwLDB4NDQsMHg4MH0gfSwKLXsgIDE2LDB4MmViNCwwLHsweGYwLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHgzNiwweGYwLDB4MTIsMHg0NiwweGMwLDB4NzQsMHg0ZiwweDI1LDB4MzUsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgyZWM0LDAsezB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NCwweDM1LDB4MjV9IH0sCi17ICAxNiwweDJlZDQsMCx7MHgzNSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDYsMHhjMH0gfSwKLXsgIDE2LDB4MmVlNCwwLHsweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMCwweDEyLDB4MGEsMHhjZCwweDA1LDB4MzUsMHhlNSwweDM1LDB4YzMsMHg5NCwweDBkfSB9LAoteyAgMTYsMHgyZWY0LDAsezB4NDAsMHhiMiwweDkwLDB4NzksMHg3NSwweGUwLDB4NjQsMHgwMSwweDYwLDB4MDIsMHhlMSwweGRlLDB4ZjAsMHg5MCwweDc5LDB4MjB9IH0sCi17ICAxNiwweDJmMDQsMCx7MHhlMCwweDY0LDB4MDUsMHg2MCwweDAyLDB4ZTEsMHg4ZCwweDdiLDB4MDEsMHg5MCwweDc5LDB4NWMsMHgwNCwweGYwLDB4YTMsMHg3NH0gfSwKLXsgIDE2LDB4MmYxNCwwLHsweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweDc1LDB4MzMsMHgwNywweDkwLDB4NzksMHg1YywweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTYsMHgyZjI0LDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHg3MCwweDBmLDB4OTAsMHgwMCwweDA0LDB4MTJ9IH0sCi17ICAxNiwweDJmMzQsMCx7MHgwYywweDVkLDB4OTAsMHg3OSwweDJmLDB4ZjAsMHgxMiwweDBjLDB4MjksMHg4MCwweDA2LDB4OTAsMHg3OSwweDJmLDB4NzQsMHhmZn0gfSwKLXsgIDE2LDB4MmY0NCwwLHsweGYwLDB4ZTQsMHhmNSwweDM1LDB4NzUsMHgyMiwweDAxLDB4NzUsMHgzNCwweDAyLDB4ZTUsMHgyMiwweDY0LDB4MDEsMHg3MCwweDM5fSB9LAoteyAgMTYsMHgyZjU0LDAsezB4OTAsMHg3ZiwweGE1LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4YTYsMHhlNSwweDM2LDB4ZjAsMHgxMiwweDQ2LDB4YzB9IH0sCi17ICAxNiwweDJmNjQsMCx7MHhhZiwweDM0LDB4MDUsMHgzNCwweDkwLDB4N2YsMHhhNiwweGVmLDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg5MCwweDc5LDB4MmYsMHhlMH0gfSwKLXsgIDE2LDB4MmY3NCwwLHsweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0NiwweGMwLDB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwLDB4MTIsMHgwYSwweGNkfSB9LAoteyAgMTYsMHgyZjg0LDAsezB4MDUsMHgzNSwweGU1LDB4MzUsMHhjMywweDk0LDB4MDYsMHg0MCwweGMxLDB4OTAsMHg3OSwweDIwLDB4ZTAsMHg2NCwweDA2LDB4NzB9IH0sCi17ICAxNiwweDJmOTQsMCx7MHg0OSwweDdiLDB4MDEsMHg5MCwweDc5LDB4NWYsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4ZmYsMHhmMH0gfSwKLXsgIDE2LDB4MmZhNCwwLHsweDc1LDB4MzMsMHgwMywweDkwLDB4NzksMHg1ZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwfSB9LAoteyAgMTYsMHgyZmI0LDAsezB4MDEsMHgxMiwweDBjLDB4NWQsMHg3MCwweDFjLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwYywweDVkLDB4OTAsMHg3OSwweDMzLDB4ZjB9IH0sCi17ICAxNiwweDJmYzQsMCx7MHg3MCwweDAzLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3OSwweDMzLDB4ZTAsMHg1NCwweDdmLDB4ZmYsMHhmMCwweDI1LDB4ZTAsMHhmMH0gfSwKLXsgIDEwLDB4MmZkNCwwLHsweDgwLDB4MDUsMHhlNCwweDkwLDB4NzksMHgzMywweGYwLDB4MTIsMHg0NywweGRmfSB9LAoteyAgIDEsMHgyZmRlLDAsezB4MjJ9IH0sCi17ICAxNiwweDJmZGYsMCx7MHg5MCwweDc5LDB4NzgsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc5LDB4ODMsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4YTIsMHhhZn0gfSwKLXsgIDE2LDB4MmZlZiwwLHsweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDIyfSB9LAoteyAgIDEsMHgyZmZmLDAsezB4MjJ9IH0sCi17ICAxNiwweDMwMDAsMCx7MHhlNCwweGZlLDB4OTAsMHg3OSwweDIwLDB4ZTAsMHhmZCwweGI0LDB4MDUsMHgxMSwweDkwLDB4NzgsMHgyNSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MzAxMCwwLHsweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHg3NSwweDM1LDB4MDcsMHhlZCwweGI0LDB4MDYsMHgxMSwweDkwfSB9LAoteyAgMTYsMHgzMDIwLDAsezB4NzgsMHgyNSwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGZmLDB4ZjAsMHg3NSwweDM1LDB4MDN9IH0sCi17ICAxNiwweDMwMzAsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjAsMHgxMSwweDE0LDB4NjAsMHg1YiwweDI0LDB4MDIsMHg2MCwweDAyLDB4NDEsMHgwNX0gfSwKLXsgIDE2LDB4MzA0MCwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDNkfSB9LAoteyAgMTYsMHgzMDUwLDAsezB4ZTQsMHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NTAsMHgyZiwweDkwLDB4NzgsMHgyNSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDMwNjAsMCx7MHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMH0gfSwKLXsgIDE2LDB4MzA3MCwwLHsweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHg3OCwweDI2LDB4ZTQsMHg3NSwweGYwfSB9LAoteyAgMTYsMHgzMDgwLDAsezB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4Y2IsMHg5MCwweDdmLDB4YjUsMHhlZSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxNiwweDMwOTAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NjAsMHg2NCwweDE0LDB4NzAsMHgwMn0gfSwKLXsgIDE2LDB4MzBhMCwwLHsweDIxLDB4NTUsMHgxNCwweDcwLDB4MDIsMHgyMSwweGE5LDB4MjQsMHgwMywweDYwLDB4MDIsMHgyMSwweGZkLDB4ZTQsMHhmZiwweGVmfSB9LAoteyAgMTYsMHgzMGIwLDAsezB4YzMsMHg5NSwweDM1LDB4NTAsMHg0NiwweDkwLDB4NzgsMHgyNSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4Zjl9IH0sCi17ICAxNiwweDMwYzAsMCx7MHg5MCwweDAwLDB4MDMsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4MzBkMCwwLHsweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlfSB9LAoteyAgMTYsMHgzMGUwLDAsezB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMwZjAsMCx7MHgyNiwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI0LDB4OTAsMHg3ZiwweGI1LDB4ZWUsMHhmMH0gfSwKLXsgIDE2LDB4MzEwMCwwLHsweDIyLDB4ZTQsMHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NTAsMHg0NiwweDkwLDB4NzgsMHgyNSwweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzMTEwLDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDUsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzR9IH0sCi17ICAxNiwweDMxMjAsMCx7MHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4MzEzMCwwLHsweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzfSB9LAoteyAgMTYsMHgzMTQwLDAsezB4ZWQsMHhmMCwweDkwLDB4NzgsMHgyNiwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI0LDB4OTB9IH0sCi17ICAxNiwweDMxNTAsMCx7MHg3ZiwweGI1LDB4ZWUsMHhmMCwweDIyLDB4ZTQsMHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NTAsMHg0NiwweDkwLDB4NzgsMHgyNX0gfSwKLXsgIDE2LDB4MzE2MCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDcsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjfSB9LAoteyAgMTYsMHgzMTcwLDAsezB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDMxODAsMCx7MHgwMCwweDA4LDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODIsMHhlNH0gfSwKLXsgIDE2LDB4MzE5MCwwLHsweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4NzgsMHgyNiwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0fSB9LAoteyAgMTYsMHgzMWEwLDAsezB4MGYsMHg4MCwweGI0LDB4OTAsMHg3ZiwweGI1LDB4ZWUsMHhmMCwweDIyLDB4ZTQsMHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NTB9IH0sCi17ICAxNiwweDMxYjAsMCx7MHg0NiwweDkwLDB4NzgsMHgyNSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDksMHgxMn0gfSwKLXsgIDE2LDB4MzFjMCwwLHsweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSB9LAoteyAgMTYsMHgzMWQwLDAsezB4ODMsMHhlZCwweGYwLDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDB9IH0sCi17ICAxNiwweDMxZTAsMCx7MHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4NzgsMHgyNiwweGU0LDB4NzUsMHhmMH0gfSwKLXsgIDE2LDB4MzFmMCwwLHsweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI0LDB4OTAsMHg3ZiwweGI1LDB4ZWUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTIsMHgzMjAwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgzMjBjLDAsezB4MjJ9IH0sCi17ICAxNiwweDMyMGQsMCx7MHg3YiwweDAxLDB4N2EsMHg3OCwweDc5LDB4MmIsMHg5MCwweDc4LDB4MDAsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOX0gfSwKLXsgIDE2LDB4MzIxZCwwLHsweGYwLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzMjJkLDAsezB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDAxLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4ZTQsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAxNiwweDMyM2QsMCx7MHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzI0ZCwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDEwLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzMjVkLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDUsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDMyNmQsMCx7MHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzI3ZCwwLHsweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzMjhkLDAsezB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMiwweDEyLDB4MGN9IH0sCi17ICAxNiwweDMyOWQsMCx7MHg5YywweDkwLDB4MDAsMHgwMiwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMn0gfSwKLXsgIDE2LDB4MzJhZCwwLHsweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMSwweDEyfSB9LAoteyAgMTYsMHgzMmJkLDAsezB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDF9IH0sCi17ICAxNiwweDMyY2QsMCx7MHg3NCwweDAzLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNH0gfSwKLXsgIDE2LDB4MzJkZCwwLHsweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzMmVkLDAsezB4ZjksMHg3NCwweDEwLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDMyZmQsMCx7MHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDYsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHhlNCwweDEyLDB4MGMsMHg5Y30gfSwKLXsgIDE2LDB4MzMwZCwwLHsweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzMzFkLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDMzMmQsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MzMzZCwwLHsweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzMzRkLDAsezB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMiwweDEyLDB4MGMsMHg4YSwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMzNWQsMCx7MHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDA0LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4MzM2ZCwwLHsweDljLDB4OTAsMHgwMCwweDAyLDB4NzQsMHgwNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzfSB9LAoteyAgMTYsMHgzMzdkLDAsezB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDMzOGQsMCx7MHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4MzM5ZCwwLHsweDAxLDB4NzQsMHgwMywweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDc0LDB4MDQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzM2FkLDAsezB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDMzYmQsMCx7MHhhMywweGUwLDB4ZjksMHg3NCwweDAyLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MzNjZCwwLHsweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHg3NCwweDA0fSB9LAoteyAgMTYsMHgzM2RkLDAsezB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDB9IH0sCi17ICAxNiwweDMzZWQsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMiwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMH0gfSwKLXsgIDE2LDB4MzNmZCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDAxLDB4MTIsMHgwYywweDljfSB9LAoteyAgIDgsMHgzNDBkLDAsezB4OTAsMHgwMCwweDAyLDB4NzQsMHgwNCwweDEyLDB4MGMsMHg5Y30gfSwKLXsgICAxLDB4MzQxNSwwLHsweDIyfSB9LAoteyAgMTYsMHgzNDE2LDAsezB4ZTQsMHhmZSwweDkwLDB4NzksMHgyMCwweGUwLDB4ZmQsMHhiNCwweDA1LDB4MTEsMHg5MCwweDc4LDB4MWYsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDM0MjYsMCx7MHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4NzUsMHgzNSwweDA3LDB4ZWQsMHhiNCwweDA2LDB4MTEsMHg5MH0gfSwKLXsgIDE2LDB4MzQzNiwwLHsweDc4LDB4MWYsMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhmZiwweGYwLDB4NzUsMHgzNSwweDAzfSB9LAoteyAgMTYsMHgzNDQ2LDAsezB4OTAsMHg3OSwweDk5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgxNCwweDYwLDB4NWIsMHgyNCwweDAyLDB4NjAsMHgwMiwweGMxLDB4MDZ9IH0sCi17ICAxNiwweDM0NTYsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDk3LDB4ZTAsMHgxNCwweDcwLDB4M2UsMHhlNH0gfSwKLXsgIDE2LDB4MzQ2NiwwLHsweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg1MCwweDJmLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgzNDc2LDAsezB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4ZmQsMHg5MCwweDc4LDB4MWYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTN9IH0sCi17ICAxNiwweDM0ODYsMCx7MHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4ZWQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MjAsMHhlNCwweDc1LDB4ZjAsMHgwYn0gfSwKLXsgIDE2LDB4MzQ5NiwwLHsweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhjYiwweDkwLDB4NzksMHg3NSwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTYsMHgzNGE2LDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHg5NywweGUwLDB4MjQsMHhmZSwweDYwLDB4NjMsMHgxNCwweDcwLDB4MDJ9IH0sCi17ICAxNiwweDM0YjYsMCx7MHhhMSwweDY0LDB4MTQsMHg3MCwweDAyLDB4YTEsMHhiMiwweDI0LDB4MDMsMHg2MCwweDAyLDB4YTEsMHhmZSwweGU0LDB4ZmYsMHhlZn0gfSwKLXsgIDE2LDB4MzRjNiwwLHsweGMzLDB4OTUsMHgzNSwweDUwLDB4NDQsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0fSB9LAoteyAgMTYsMHgzNGQ2LDAsezB4NzksMHhmNSwweDgzLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgxZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4Zjl9IH0sCi17ICAxNiwweDM0ZTYsMCx7MHg5MCwweDAwLDB4MDMsMHhlZCwweDEyLDB4MGMsMHg5YywweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4MzRmNiwwLHsweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgyMCwweGU0fSB9LAoteyAgMTYsMHgzNTA2LDAsezB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI2LDB4OTAsMHg3OSwweDc1LDB4NzQsMHgwMSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDM1MTYsMCx7MHhlNCwweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg0MCwweDAyLDB4YzEsMHgwZCwweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMX0gfSwKLXsgIDE2LDB4MzUyNiwwLHsweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweGZkLDB4OTAsMHg3OCwweDFmLDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzNTM2LDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNSwweGVkLDB4MTIsMHgwYywweDljLDB4Y2QsMHhlZSwweGNkLDB4MGV9IH0sCi17ICAxNiwweDM1NDYsMCx7MHg3NCwweDIxLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4MzU1NiwwLHsweDljLDB4OTAsMHg3OCwweDIwLDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjQsMHhlNCwweGZmfSB9LAoteyAgMTYsMHgzNTY2LDAsezB4ZWYsMHhjMywweDk1LDB4MzUsMHg0MCwweDAyLDB4YzEsMHgwZCwweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjV9IH0sCi17ICAxNiwweDM1NzYsMCx7MHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweGZkLDB4OTAsMHg3OCwweDFmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MzU4NiwwLHsweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNywweGVkLDB4MTIsMHgwYywweDljLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxfSB9LAoteyAgMTYsMHgzNTk2LDAsezB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwYywweDljLDB4OTB9IH0sCi17ICAxNiwweDM1YTYsMCx7MHg3OCwweDIwLDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjQsMHhlNCwweGZmLDB4ZWYsMHhjM30gfSwKLXsgIDE2LDB4MzViNiwwLHsweDk1LDB4MzUsMHg1MCwweDUzLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5fSB9LAoteyAgMTYsMHgzNWM2LDAsezB4ZjUsMHg4MywweGUwLDB4ZmQsMHg5MCwweDc4LDB4MWYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTB9IH0sCi17ICAxNiwweDM1ZDYsMCx7MHgwMCwweDA5LDB4ZWQsMHgxMiwweDBjLDB4OWMsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1LDB4ODIsMHhlNH0gfSwKLXsgIDE2LDB4MzVlNiwwLHsweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDAwLDB4MGEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MjAsMHhlNCwweDc1fSB9LAoteyAgMTYsMHgzNWY2LDAsezB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjJ9IH0sCi17ICAgNywweDM2MDYsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MzYwZCwwLHsweDIyfSB9LAoteyAgMTYsMHgzNjBlLDAsezB4ZTQsMHhmZSwweDkwLDB4NzksMHgyMCwweGUwLDB4ZmQsMHhiNCwweDA1LDB4MTAsMHg5MCwweDc4LDB4MjgsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDM2MWUsMCx7MHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4N2YsMHgwNywweGVkLDB4YjQsMHgwNiwweDEwLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzYyZSwwLHsweDI4LDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4ZmYsMHhmMCwweDdmLDB4MDMsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzNjNlLDAsezB4MjgsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0LDB4ZmQsMHg5MCwweDdmLDB4ZWF9IH0sCi17ICAxNiwweDM2NGUsMCx7MHhlMCwweDZkLDB4NjAsMHgxMiwweGVlLDB4YzMsMHg5ZiwweDUwLDB4MGQsMHg5MCwweDc4LDB4MjksMHhlNCwweDc1LDB4ZjAsMHgwYn0gfSwKLXsgIDE2LDB4MzY1ZSwwLHsweDEyLDB4MGMsMHhmNCwweDBlLDB4ODAsMHhkOCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg2MCwweDExLDB4MTQsMHg2MCwweDQ2fSB9LAoteyAgMTYsMHgzNjZlLDAsezB4MjQsMHgwMiwweDYwLDB4MDIsMHhlMSwweDlhLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDM2N2UsMCx7MHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MjgsMHhlZSwweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0gfSwKLXsgIDE2LDB4MzY4ZSwwLHsweGYwLDB4MjIsMHg5MCwweDc4LDB4MjgsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxfSB9LAoteyAgMTYsMHgzNjllLDAsezB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDM2YWUsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2UsMHg2MCwweDQwLDB4MTQsMHg2MH0gfSwKLXsgIDE2LDB4MzZiZSwwLHsweDZmLDB4MTQsMHg3MCwweDAyLDB4ZTEsMHg2MCwweDI0LDB4MDMsMHg2MCwweDAyLDB4ZTEsMHg5MiwweGVlLDB4NmYsMHg3MCwweDA4fSB9LAoteyAgMTYsMHgzNmNlLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgyOCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDM2ZGUsMCx7MHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDMsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4MDAsMHgwNH0gfSwKLXsgIDE2LDB4MzZlZSwwLHsweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4MjIsMHhlZSwweDZmfSB9LAoteyAgMTYsMHgzNmZlLDAsezB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MjgsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDM3MGUsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MzcxZSwwLHsweDAwLDB4MDYsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgzNzJlLDAsezB4ZWUsMHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDI4LDB4ZTB9IH0sCi17ICAxNiwweDM3M2UsMCx7MHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNywweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMH0gfSwKLXsgIDE2LDB4Mzc0ZSwwLHsweGYwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyfSB9LAoteyAgMTYsMHgzNzVlLDAsezB4ZjAsMHgyMiwweGVlLDB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDM3NmUsMCx7MHgyOCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDksMHgxMiwweDBjLDB4NWQsMHg5MH0gfSwKLXsgIDE2LDB4Mzc3ZSwwLHsweDdmLDB4MDAsMHhmMCwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1fSB9LAoteyAgMTYsMHgzNzhlLDAsezB4NzQsMHgwMiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTB9IH0sCi17ICAgMywweDM3OWUsMCx7MHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDM3YTEsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MzdhMiwwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSB9LAoteyAgMTYsMHgzN2IyLDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9IH0sCi17ICAxNiwweDM3YzIsMCx7MHhjMCwweGUwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgxMCwweGYwLDB4OTAsMHg3OSwweDgzLDB4ZTAsMHg1NH0gfSwKLXsgIDE2LDB4MzdkMiwwLHsweGZkLDB4ZjAsMHgxMiwweDJmLDB4ZGYsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwfSB9LAoteyAgMTYsMHgzN2UyLDAsezB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMCwweGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDB9IH0sCi17ICAgOCwweDM3ZjIsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgIDYsMHgzN2ZhLDAsezB4NTMsMHg5MSwweGJmLDB4ZDIsMHgyNiwweDMyfSB9LAoteyAgMTYsMHgzODAwLDAsezB4ZTQsMHhmZSwweDkwLDB4NzksMHgyMCwweGUwLDB4ZmQsMHhiNCwweDA1LDB4MTAsMHg5MCwweDc4LDB4MjIsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDM4MTAsMCx7MHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4N2YsMHgwNywweGVkLDB4YjQsMHgwNiwweDEwLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzgyMCwwLHsweDIyLDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4ZmYsMHhmMCwweDdmLDB4MDMsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzODMwLDAsezB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0LDB4ZmQsMHg5MCwweDc5LDB4OTh9IH0sCi17ICAxNiwweDM4NDAsMCx7MHhlMCwweDZkLDB4NjAsMHgxMiwweGVlLDB4YzMsMHg5ZiwweDUwLDB4MGQsMHg5MCwweDc4LDB4MjMsMHhlNCwweDc1LDB4ZjAsMHgwYn0gfSwKLXsgIDE2LDB4Mzg1MCwwLHsweDEyLDB4MGMsMHhmNCwweDBlLDB4ODAsMHhkOCwweDkwLDB4NzksMHg5OSwweGUwLDB4MTQsMHg2MCwweDExLDB4MTQsMHg2MCwweDQ4fSB9LAoteyAgMTYsMHgzODYwLDAsezB4MjQsMHgwMiwweDYwLDB4MDIsMHgyMSwweDg1LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDM4NzAsMCx7MHg5NywweGUwLDB4MTQsMHg3MCwweDJiLDB4ZWUsMHg2ZiwweDcwLDB4MDksMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4Mzg4MCwwLHsweDgwLDB4MTcsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZkLDB4OTAsMHg3OCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzfSB9LAoteyAgMTYsMHgzODkwLDAsezB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweGVkLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OSwweDc1LDB4NzQsMHgwMSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDM4YTAsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDk3LDB4ZTAsMHgyNCwweGZlLDB4NjAsMHg0M30gfSwKLXsgIDE2LDB4MzhiMCwwLHsweDE0LDB4NjAsMHg2ZSwweDE0LDB4NzAsMHgwMiwweDIxLDB4NGYsMHgyNCwweDAzLDB4NjAsMHgwMiwweDIxLDB4N2QsMHhlZSwweDZmfSB9LAoteyAgMTYsMHgzOGMwLDAsezB4NzAsMHgwOSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzksMHgyMSwweGUwLDB4ZmR9IH0sCi17ICAxNiwweDM4ZDAsMCx7MHg5MCwweDc4LDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAzLDB4ZWQsMHgxMn0gfSwKLXsgIDE2LDB4MzhlMCwwLHsweDBjLDB4OWMsMHg5MCwweDc5LDB4MjIsMHhlMCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzksMHg3NSwweDc0fSB9LAoteyAgMTYsMHgzOGYwLDAsezB4MDEsMHhmMCwweDIyLDB4ZWUsMHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9IH0sCi17ICAxNiwweDM5MDAsMCx7MHg3OSwweDIxLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MH0gfSwKLXsgIDE2LDB4MzkxMCwwLHsweDAwLDB4MDUsMHhlZCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzksMHgyMiwweGUwLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwYywweDljfSB9LAoteyAgMTYsMHgzOTIwLDAsezB4MjIsMHhlZSwweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4MjF9IH0sCi17ICAxNiwweDM5MzAsMCx7MHhlMCwweGZkLDB4OTAsMHg3OCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwN30gfSwKLXsgIDE2LDB4Mzk0MCwwLHsweGVkLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OSwweDIyLDB4ZTAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDBjLDB4OWMsMHgyMiwweGVlfSB9LAoteyAgMTYsMHgzOTUwLDAsezB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHgyMSwweGUwLDB4ZmV9IH0sCi17ICAxNiwweDM5NjAsMCx7MHg5MCwweDc4LDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA5LDB4ZWUsMHgxMn0gfSwKLXsgIDE2LDB4Mzk3MCwwLHsweDBjLDB4OWMsMHg5MCwweDc5LDB4MjIsMHhlMCwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGMsMHg5YywweDIyLDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTIsMHgzOTgwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgzOThjLDAsezB4MjJ9IH0sCi17ICAxNiwweDM5OGQsMCx7MHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhlNCwweDkwLDB4NzksMHg4MywweGYwLDB4MTIsMHgyZiwweGRmLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4Mzk5ZCwwLHsweGUwLDB4NzQsMHg5MCwweGYwLDB4OTAsMHg3ZiwweGUxLDB4NzQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4ZGQsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgzOWFkLDAsezB4N2YsMHhhMSwweGYwLDB4NTMsMHg4ZSwweGY4LDB4NzUsMHg4OCwweDA1LDB4NzUsMHhiOCwweDIwLDB4NzUsMHhmOCwweDAxLDB4NDN9IH0sCi17ICAxNiwweDM5YmQsMCx7MHg4ZSwweDMwLDB4ZjUsMHhjOCwweDc1LDB4Y2EsMHg3ZiwweDc1LDB4Y2IsMHhmOCwweDQzLDB4YTgsMHgyMCwweDkwLDB4NzksMHg3NH0gfSwKLXsgIDE2LDB4MzljZCwwLHsweDA0LDB4ZjAsMHhjMiwweDIyLDB4ZTQsMHhmNSwweDBmLDB4OTAsMHg3OSwweDc4LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3OSwweDYyfSB9LAoteyAgMTYsMHgzOWRkLDAsezB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweDkwLDB4NzksMHg2NiwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTN9IH0sCi17ICAxNiwweDM5ZWQsMCx7MHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4OTAsMHg3OSwweDdkLDB4ZjAsMHg5MCwweDc5LDB4NzUsMHhmMCwweGEzLDB4ZjAsMHhhM30gfSwKLXsgIDE2LDB4MzlmZCwwLHsweGYwLDB4YzIsMHgyMywweGMyLDB4MjQsMHhjMiwweDI1LDB4YzIsMHgyNiwweGMyLDB4MjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1fSB9LAoteyAgMTYsMHgzYTBkLDAsezB4MGEsMHg1NCwweDIwLDB4ZjUsMHgwYSwweDcwLDB4MDYsMHg5MCwweDc5LDB4N2UsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc5LDB4N2V9IH0sCi17ICAxNiwweDNhMWQsMCx7MHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1LDB4MGEsMHg1NCwweDAyLDB4ZjUsMHgwYSwweDcwLDB4MDYsMHg5MH0gfSwKLXsgIDE2LDB4M2EyZCwwLHsweDc5LDB4N2YsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc5LDB4N2YsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyfSB9LAoteyAgMTYsMHgzYTNkLDAsezB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDl9IH0sCi17ICAxNiwweDNhNGQsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4M2E1ZCwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxfSB9LAoteyAgMTYsMHgzYTZkLDAsezB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDl9IH0sCi17ICAxNiwweDNhN2QsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMH0gfSwKLXsgIDE2LDB4M2E4ZCwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHgxMiwweDBiLDB4YTIsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwfSB9LAoteyAgMTYsMHgzYTlkLDAsezB4YTMsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDc5LDB4ODgsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4N2YsMHhmYywweDc0LDB4ZGR9IH0sCi17ICAxNiwweDNhYWQsMCx7MHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmYsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweGEzLDB4ZjAsMHgxMn0gfSwKLXsgIDE2LDB4M2FiZCwwLHsweDBiLDB4YTIsMHhlNCwweDkwLDB4NzksMHg3YSwweGYwLDB4OTAsMHg3OSwweDgzLDB4MDQsMHhmMCwweDEyLDB4MmYsMHhkZiwweGU0fSB9LAoteyAgMTYsMHgzYWNkLDAsezB4OTAsMHg3OSwweDMwLDB4ZjAsMHg5MCwweDc5LDB4ODUsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4MTIsMHgyZSwweDk0LDB4OTB9IH0sCi17ICAxNiwweDNhZGQsMCx7MHg3OSwweDJkLDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg4LDB4MTQsMHhmMCwweGMyLDB4MmYsMHhlNCwweDkwLDB4NzksMHg2OH0gfSwKLXsgIDE2LDB4M2FlZCwwLHsweGYwLDB4OTAsMHg3OSwweDhhLDB4ZjAsMHg5MCwweDc5LDB4NmEsMHhmMCwweGEzLDB4ZjAsMHg3NSwweDEzLDB4MDgsMHg3NSwweDE0fSB9LAoteyAgMTYsMHgzYWZkLDAsezB4MDgsMHhmNSwweDE2LDB4ZjUsMHgxNSwweGY1LDB4MTcsMHg5MCwweDc5LDB4OGMsMHhmMCwweDkwLDB4NzksMHg4YiwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDNiMGQsMCx7MHg3YiwweDAxLDB4N2EsMHg3OCwweDc5LDB4NTgsMHg5MCwweDc4LDB4MDMsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOX0gfSwKLXsgIDE2LDB4M2IxZCwwLHsweGYwLDB4NzQsMHg0MCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzYjJkLDAsezB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDBhLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGY2LDB4MDB9IH0sCi17ICAxNiwweDNiM2QsMCx7MHgwMCwweGJiLDB4ODAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDBkLDB4ZjYsMHgwMCwweDAwLDB4YWMsMHg0NCwweDkwLDB4MDAsMHgwYX0gfSwKLXsgIDE2LDB4M2I0ZCwwLHsweDEyLDB4MGQsMHhmNiwweDAwLDB4MDEsMHg3NywweDAwLDB4OTAsMHg3OCwweDA0LDB4ZTQsMHg3NSwweGYwLDB4MGYsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzYjVkLDAsezB4ZjQsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHg0MCwweDEyLDB4MGN9IH0sCi17ICAxNiwweDNiNmQsMCx7MHg4YSwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NH0gfSwKLXsgIDE2LDB4M2I3ZCwwLHsweDhjLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGY2LDB4MDAsMHgwMCwweGJiLDB4ODAsMHg5MCwweDAwfSB9LAoteyAgMTYsMHgzYjhkLDAsezB4MDYsMHgxMiwweDBkLDB4ZjYsMHgwMCwweDAwLDB4YWMsMHg0NCwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGQsMHhmNiwweDAwLDB4MDF9IH0sCi17ICAxNiwweDNiOWQsMCx7MHg3NywweDAwLDB4OTAsMHg3OCwweDA0LDB4ZTQsMHg3NSwweGYwLDB4MGYsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDMsMHhlMH0gfSwKLXsgIDE2LDB4M2JhZCwwLHsweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHg0MCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMywweGUwfSB9LAoteyAgMTYsMHgzYmJkLDAsezB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDhmLDB4MTIsMHgwYywweDljLDB4OTB9IH0sCi17ICAxNiwweDNiY2QsMCx7MHg3OCwweDA0LDB4ZTQsMHg3NSwweGYwLDB4MGYsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4M2JkZCwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHg0MSwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzYmVkLDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDg0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDA0LDB4ZTR9IH0sCi17ICAxNiwweDNiZmQsMCx7MHg3NSwweGYwLDB4MGYsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4M2MwZCwwLHsweGY5LDB4NzQsMHg2MSwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzYzFkLDAsezB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDgxLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDA0LDB4ZTQsMHg3NSwweGYwLDB4MGZ9IH0sCi17ICAxNiwweDNjMmQsMCx7MHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHg2MX0gfSwKLXsgIDE2LDB4M2MzZCwwLHsweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwfSB9LAoteyAgIDYsMHgzYzRkLDAsezB4MDEsMHg3NCwweDAxLDB4MTIsMHgwYywweDljfSB9LAoteyAgIDEsMHgzYzUzLDAsezB4MjJ9IH0sCi17ICAxNiwweDNjNTQsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4M2M2NCwwLHsweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmfSB9LAoteyAgIDIsMHgzYzc0LDAsezB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4M2M3NiwwLHsweDkwLDB4N2YsMHhhMiwweGUwLDB4ZjUsMHgwYiwweDkwLDB4N2YsMHg3NCwweGUwLDB4OTAsMHg3OSwweDcwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgzYzg2LDAsezB4NzUsMHhlMCwweDkwLDB4NzksMHg3MSwweGYwLDB4OTAsMHg3OSwweDgzLDB4ZTAsMHhmZiwweGZlLDB4NTQsMHgwMiwweGZlLDB4NzB9IH0sCi17ICAxNiwweDNjOTYsMCx7MHgwZCwweGVmLDB4NDQsMHgwMiwweGYwLDB4MTIsMHgyZiwweGRmLDB4OTAsMHg3OSwweDc0LDB4NzQsMHgwMSwweGYwLDB4ZTUsMHgwYn0gfSwKLXsgIDE2LDB4M2NhNiwwLHsweDIwLDB4ZTIsMHgyOCwweDkwLDB4NzksMHg3MCwweGUwLDB4ZmUsMHhhMywweGUwLDB4N2MsMHgwMCwweDI0LDB4MDAsMHhmNSwweDExfSB9LAoteyAgMTYsMHgzY2I2LDAsezB4ZWMsMHgzZSwweGY1LDB4MTAsMHg5MCwweDc5LDB4ODIsMHhlMCwweGZkLDB4YWUsMHgxMCwweGFmLDB4MTEsMHgxMiwweDBjLDB4YmV9IH0sCi17ICAxNiwweDNjYzYsMCx7MHg5MCwweDc5LDB4NzAsMHhlZiwweGYwLDB4OTAsMHg3OSwweDg5LDB4NzQsMHgwMSwweGYwLDB4MTIsMHg0OCwweDQzLDB4MTIsMHg0OH0gfSwKLXsgIDE2LDB4M2NkNiwwLHsweDc2LDB4OTAsMHg3OSwweDg5LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzMiwweDEyLDB4NDEsMHgwOCwweDkwLDB4NzksMHg4OSwweGU0fSB9LAoteyAgMTYsMHgzY2U2LDAsezB4ZjAsMHg5MCwweDdmLDB4OTgsMHhlMCwweDQ0LDB4NDAsMHhmMCwweDkwLDB4N2YsMHg5ZSwweGUwLDB4NDQsMHg0MCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDNjZjYsMCx7MHg3ZiwweDk1LDB4NzQsMHg4MCwweGYwLDB4NzUsMHhlOCwweDAxLDB4MTIsMHgwOSwweDMyLDB4NzUsMHhlOCwweDBkLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4M2QwNiwwLHsweDk1LDB4NzQsMHhjMCwweGYwLDB4NzUsMHhlOCwweDBkLDB4ZDIsMHgyMCwweDgwLDB4MDUsMHg3NSwweGU4LDB4MDEsMHhjMiwweDIwfSB9LAoteyAgMTYsMHgzZDE2LDAsezB4MjAsMHgyMCwweDJiLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwOSwweDc1LDB4MGMsMHg2NywweDc1LDB4MGR9IH0sCi17ICAxNiwweDNkMjYsMCx7MHgwNiwweDc1LDB4MGUsMHgwYiwweGVmLDB4YjQsMHgwMiwweDA5LDB4NzUsMHgwYywweDAwLDB4NzUsMHgwZCwweDAwLDB4NzUsMHgwZX0gfSwKLXsgIDE2LDB4M2QzNiwwLHsweDBjLDB4ZWYsMHhiNCwweDAzLDB4MDksMHg3NSwweDBjLDB4MDAsMHg3NSwweDBkLDB4MDAsMHg3NSwweDBlLDB4MTgsMHg3NSwweGNhfSB9LAoteyAgMTYsMHgzZDQ2LDAsezB4NmYsMHg3NSwweGNiLDB4ZmUsMHhkMiwweGNhLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZjB9IH0sCi17ICAxNiwweDNkNTYsMCx7MHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMH0gfSwKLXsgIDE2LDB4M2Q2NiwwLHsweGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGYwfSB9LAoteyAgIDMsMHgzZDc2LDAsezB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHgzZDc5LDAsezB4NzUsMHgzMywweDI1LDB4NzUsMHgzNCwweDI0LDB4OTAsMHg3OSwweDVjLDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjB9IH0sCi17ICAxNiwweDNkODksMCx7MHhhMywweDc0LDB4YjIsMHhmMCwweDIwLDB4MmYsMHgwMiwweGMxLDB4MTcsMHhlNCwweGY1LDB4MzUsMHg3NSwweDIyLDB4MDEsMHg5MH0gfSwKLXsgIDE2LDB4M2Q5OSwwLHsweDc5LDB4NWMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwYywweDVkfSB9LAoteyAgMTYsMHgzZGE5LDAsezB4ZjUsMHgzNiwweDc1LDB4MzUsMHgwNiwweDc0LDB4NDIsMHgyNSwweDM1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODN9IH0sCi17ICAxNiwweDNkYjksMCx7MHhlNSwweDM2LDB4ZjAsMHgwNSwweDM1LDB4ZTUsMHgzNSwweGI0LDB4MGMsMHhlYiwweGU1LDB4MzUsMHhjMywweDk0LDB4MGQsMHg0MH0gfSwKLXsgIDE2LDB4M2RjOSwwLHsweDAyLDB4YzEsMHg5OCwweGU1LDB4MjIsMHg2NCwweDAxLDB4NjAsMHgwMiwweGMxLDB4OTgsMHg5MCwweDdmLDB4YTUsMHhlMCwweDQ0fSB9LAoteyAgMTYsMHgzZGQ5LDAsezB4ODAsMHhmMCwweDkwLDB4N2YsMHhhNiwweGU1LDB4MzMsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0LDB4NGYsMHgyNSwweDM1LDB4ZjV9IH0sCi17ICAxNiwweDNkZTksMCx7MHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0NiwweGMwLDB4NzQsMHg0Mn0gfSwKLXsgIDE2LDB4M2RmOSwwLHsweDI1LDB4MzUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2fSB9LAoteyAgMTYsMHgzZTA5LDAsezB4YzAsMHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjAsMHgxMiwweDBhLDB4Y2QsMHgwNSwweDM1LDB4ODAsMHhhYywweGU0LDB4ZjV9IH0sCi17ICAxNiwweDNlMTksMCx7MHgzNSwweDc1LDB4MjIsMHgwMSwweDkwLDB4NzksMHg1YywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MH0gfSwKLXsgIDE2LDB4M2UyOSwwLHsweDAwLDB4MDQsMHgxMiwweDBjLDB4NWQsMHhmNSwweDM2LDB4NzUsMHgzNSwweDA2LDB4NzQsMHgzNSwweDI1LDB4MzUsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgzZTM5LDAsezB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGU1LDB4MzYsMHhmMCwweDA1LDB4MzUsMHhlNSwweDM1LDB4YjQsMHgwYywweGViLDB4ZTV9IH0sCi17ICAxNiwweDNlNDksMCx7MHgzNSwweGMzLDB4OTQsMHgwZCwweDUwLDB4NDksMHhlNSwweDIyLDB4NjQsMHgwMSwweDcwLDB4NDMsMHg5MCwweDdmLDB4YTUsMHhlMH0gfSwKLXsgIDE2LDB4M2U1OSwwLHsweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhhNiwweGU1LDB4MzMsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0LDB4NGYsMHgyNSwweDM1fSB9LAoteyAgMTYsMHgzZTY5LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0NiwweGMwLDB4NzR9IH0sCi17ICAxNiwweDNlNzksMCx7MHgzNSwweDI1LDB4MzUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMn0gfSwKLXsgIDE1LDB4M2U4OSwwLHsweDQ2LDB4YzAsMHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjAsMHgxMiwweDBhLDB4Y2QsMHgwNSwweDM1LDB4ODAsMHhiMH0gfSwKLXsgICAxLDB4M2U5OCwwLHsweDIyfSB9LAoteyAgMTYsMHgzZTk5LDAsezB4OTAsMHg3OCwweDA5LDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweGU0LDB4ZmZ9IH0sCi17ICAxNiwweDNlYTksMCx7MHhmZSwweDkwLDB4NzgsMHgwOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHhlZiwweDEyLDB4MGMsMHg4YX0gfSwKLXsgIDE2LDB4M2ViOSwwLHsweDkwLDB4NzgsMHgwOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHhlNCwweDEyfSB9LAoteyAgMTYsMHgzZWM5LDAsezB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDc0LDB4MTUsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDMsMHhlNCwweDEyLDB4MGN9IH0sCi17ICAxNiwweDNlZDksMCx7MHg5YywweDkwLDB4MDAsMHgwNCwweDc0LDB4ZmYsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDUsMHhlNCwweDEyLDB4MGMsMHg5Y30gfSwKLXsgIDE2LDB4M2VlOSwwLHsweDkwLDB4MDAsMHgwNiwweDc0LDB4YzMsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDcsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwfSB9LAoteyAgMTYsMHgzZWY5LDAsezB4MDAsMHgwOCwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA5LDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MGF9IH0sCi17ICAxNiwweDNmMDksMCx7MHg3NCwweDAxLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDBhLDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZn0gfSwKLXsgIDE2LDB4M2YxOSwwLHsweDBlLDB4YmUsMHgwNywweDhkLDB4OTAsMHg3OCwweDA5LDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0fSB9LAoteyAgMTYsMHgzZjI5LDAsezB4ZmYsMHhmMCwweGU0LDB4ZmYsMHhmZSwweDkwLDB4NzgsMHgwOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4Zjl9IH0sCi17ICAxNiwweDNmMzksMCx7MHhlZiwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MH0gfSwKLXsgIDE2LDB4M2Y0OSwwLHsweDAwLDB4MDEsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDc0LDB4MTUsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwfSB9LAoteyAgMTYsMHgzZjU5LDAsezB4MDMsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNCwweDc0LDB4ODAsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDV9IH0sCi17ICAxNiwweDNmNjksMCx7MHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNiwweDc0LDB4YzMsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDcsMHhlNH0gfSwKLXsgIDE2LDB4M2Y3OSwwLHsweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwOCwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA5LDB4ZTQsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzZjg5LDAsezB4OWMsMHg5MCwweDAwLDB4MGEsMHg3NCwweDAxLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDBhLDB4ZTQsMHg3NSwweGYwLDB4MGJ9IH0sCi17ICAgOCwweDNmOTksMCx7MHgxMiwweDBjLDB4ZjQsMHgwZiwweDBlLDB4YmUsMHgwMywweDhkfSB9LAoteyAgIDEsMHgzZmExLDAsezB4MjJ9IH0sCi17ICAxNiwweDNmYTIsMCx7MHhlNCwweGZlLDB4NzUsMHgzZCwweGZmLDB4NzUsMHgzZSwweDA1LDB4NzUsMHgzZiwweDEyLDB4YWIsMHgzZCwweGFhLDB4M2UsMHhhOX0gfSwKLXsgIDE2LDB4M2ZiMiwwLHsweDNmLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4NjQsMHgwMiwweDcwLDB4MmYsMHhjZCwweGVlLDB4Y2QsMHgwZSwweGVkfSB9LAoteyAgMTYsMHgzZmMyLDAsezB4NmYsMHg3MCwweDAxLDB4MjIsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4MGEsMHg4NSwweGYwLDB4M2IsMHhmNSwweDNjLDB4NjJ9IH0sCi17ICAxNiwweDNmZDIsMCx7MHgzYiwweGU1LDB4M2IsMHg2MiwweDNjLDB4ZTUsMHgzYywweDYyLDB4M2IsMHgyOSwweGZkLDB4ZTUsMHgzYiwweDNhLDB4YzksMHhlZH0gfSwKLXsgIDE2LDB4M2ZlMiwwLHsweGM5LDB4NzUsMHgzZCwweGZmLDB4ZjUsMHgzZSwweDg5LDB4M2YsMHg4MCwweGMxLDB4N2IsMHgwMCwweDdhLDB4MDAsMHg3OSwweDAwfSB9LAoteyAgIDEsMHgzZmYyLDAsezB4MjJ9IH0sCi17ICAgOSwweDNmZjMsMCx7MHg1MywweGQ4LDB4ZWYsMHg0MywweGQ4LDB4MjAsMHhjMiwweDJkLDB4MzJ9IH0sCi17ICAgNCwweDNmZmMsMCx7MHg1MywweDkxLDB4ZGYsMHgzMn0gfSwKLXsgIDE2LDB4NDAwMCwwLHsweDkwLDB4NzksMHg4NywweGUwLDB4YjQsMHgwMSwweDFkLDB4OTAsMHg3OSwweDg1LDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDQyfSB9LAoteyAgMTYsMHg0MDEwLDAsezB4YWEsMHg5MCwweDc5LDB4ODYsMHhlMCwweGI0LDB4MDEsMHgwMywweDEyLDB4MTgsMHgwMCwweGU0LDB4OTAsMHg3OSwweDg1LDB4ZjB9IH0sCi17ICAxNiwweDQwMjAsMCx7MHhhMywweGYwLDB4YTMsMHhmMCwweDEyLDB4MmUsMHg5NCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjUsMHgwYSwweDU0LDB4MDIsMHhmNX0gfSwKLXsgIDE2LDB4NDAzMCwwLHsweDBhLDB4NzAsMHgwNCwweDkwLDB4NzksMHg3ZiwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNSwweDBhLDB4NTQsMHgwMiwweGZmfSB9LAoteyAgMTYsMHg0MDQwLDAsezB4ZjUsMHgwYSwweGJmLDB4MDIsMHgwNiwweDkwLDB4NzksMHg3ZiwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjV9IH0sCi17ICAxNiwweDQwNTAsMCx7MHgwYSwweDU0LDB4MjAsMHhmNSwweDBhLDB4NzAsMHgwNCwweDkwLDB4NzksMHg3ZSwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNX0gfSwKLXsgIDE2LDB4NDA2MCwwLHsweDBhLDB4NTQsMHgyMCwweGZmLDB4ZjUsMHgwYSwweGJmLDB4MjAsMHgwNiwweDkwLDB4NzksMHg3ZSwweDc0LDB4MDEsMHhmMCwweDkwfSB9LAoteyAgMTYsMHg0MDcwLDAsezB4NzksMHg3ZiwweGUwLDB4ZmYsMHg5MCwweDc5LDB4ODEsMHhlMCwweDZmLDB4NjAsMHgzOCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDQwODAsMCx7MHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHhlZiwweGI0LDB4MDEsMHgwNiwweGUwLDB4NTQsMHhmZX0gfSwKLXsgIDE2LDB4NDA5MCwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHg0MGEwLDAsezB4ODQsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHhlNSwweDEyLDB4NjB9IH0sCi17ICAxNiwweDQwYjAsMCx7MHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4N2UsMHhlMCwweGZmLDB4OTAsMHg3OSwweDgwLDB4ZTAsMHg2ZiwweDYwLDB4MzgsMHg5MH0gfSwKLXsgIDE2LDB4NDBjMCwwLHsweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4ZWYsMHhiNCwweDAxfSB9LAoteyAgMTYsMHg0MGQwLDAsezB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDQwZTAsMCx7MHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYn0gfSwKLXsgIDE2LDB4NDBmMCwwLHsweGEyLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHg5MCwweDc5LDB4ODEsMHhmMCwweDkwfSB9LAoteyAgIDgsMHg0MTAwLDAsezB4NzksMHg3ZSwweGUwLDB4OTAsMHg3OSwweDgwLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDEwOCwwLHsweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMSwweDcwLDB4MzUsMHg5MCwweDc5LDB4NzAsMHhlMCwweGZmLDB4ZDMsMHg5NCwweDJkfSB9LAoteyAgMTYsMHg0MTE4LDAsezB4NDAsMHgyYiwweDkwLDB4NzksMHg2OSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2OCwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDN9IH0sCi17ICAxNiwweDQxMjgsMCx7MHg5NCwweDBmLDB4NDAsMHgxOSwweGU0LDB4ZjAsMHhlZiwweGQzLDB4OTQsMHgzMSwweDQwLDB4MDgsMHg5MCwweDc5LDB4MmQsMHg3NH0gfSwKLXsgIDE2LDB4NDEzOCwwLHsweDAzLDB4ZjAsMHg4MCwweDA2LDB4OTAsMHg3OSwweDJkLDB4NzQsMHgwMiwweGYwLDB4MTIsMHgxMCwweDAwLDB4OTAsMHg3OSwweDJkfSB9LAoteyAgMTYsMHg0MTQ4LDAsezB4ZTAsMHhiNCwweDAyLDB4MmMsMHg5MCwweDc5LDB4NzAsMHhlMCwweGZmLDB4YzMsMHg5NCwweDJmLDB4NTAsMHgyMiwweGVmLDB4ZDN9IH0sCi17ICAxNiwweDQxNTgsMCx7MHg5NCwweDJhLDB4NDAsMHgxYywweDkwLDB4NzksMHg2OSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2OCwweGUwLDB4MDQsMHhmMH0gfSwKLXsgIDE2LDB4NDE2OCwwLHsweGUwLDB4ZDMsMHg5NCwweDBmLDB4NDAsMHgwYSwweGU0LDB4ZjAsMHg5MCwweDc5LDB4MmQsMHgwNCwweGYwLDB4MTIsMHgxMCwweDAwfSB9LAoteyAgMTYsMHg0MTc4LDAsezB4OTAsMHg3OSwweDJkLDB4ZTAsMHhiNCwweDAyLDB4MjYsMHg5MCwweDc5LDB4NzAsMHhlMCwweGQzLDB4OTQsMHgzMSwweDQwLDB4MWR9IH0sCi17ICAxNiwweDQxODgsMCx7MHg5MCwweDc5LDB4NjksMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjgsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzLDB4OTQsMHgwZn0gfSwKLXsgIDE2LDB4NDE5OCwwLHsweDQwLDB4MGIsMHhlNCwweGYwLDB4OTAsMHg3OSwweDJkLDB4NzQsMHgwMywweGYwLDB4MTIsMHgxMCwweDAwLDB4OTAsMHg3OSwweDJkfSB9LAoteyAgMTYsMHg0MWE4LDAsezB4ZTAsMHg2NCwweDAzLDB4NzAsMHgzZiwweDkwLDB4NzksMHg3MCwweGUwLDB4ZmYsMHhjMywweDk0LDB4NWYsMHg1MCwweDM1LDB4OTB9IH0sCi17ICAxNiwweDQxYjgsMCx7MHg3OSwweDY5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY4LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MH0gfSwKLXsgIDE2LDB4NDFjOCwwLHsweDIzLDB4ZTQsMHhmMCwweGVmLDB4YzMsMHg5NCwweDJmLDB4NTAsMHgwYywweGVmLDB4ZDMsMHg5NCwweDJhLDB4NDAsMHgwNiwweDkwfSB9LAoteyAgMTYsMHg0MWQ4LDAsezB4NzksMHgyZCwweDc0LDB4MDEsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDJmLDB4NDAsMHgwNiwweDkwLDB4NzksMHgyZCwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDQxZTgsMCx7MHhmMCwweDEyLDB4MTAsMHgwMCwweDkwLDB4NzksMHg2OSwweGUwLDB4NzAsMHgwNSwweDkwLDB4NzksMHg2OCwweGYwLDB4MjIsMHhlNH0gfSwKLXsgICA1LDB4NDFmOCwwLHsweDkwLDB4NzksMHg2OSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQxZmQsMCx7MHg3YiwweDAxLDB4N2EsMHg3OCwweDc5LDB4NGMsMHg5MCwweDc4LDB4MDYsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOX0gfSwKLXsgIDE2LDB4NDIwZCwwLHsweGYwLDB4ZTQsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgMTYsMHg0MjFkLDAsezB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwNywweGU0LDB4NzUsMHhmMCwweDAzLDB4MTJ9IH0sCi17ICAxNiwweDQyMmQsMCx7MHgwYywweGY0LDB4OTAsMHg3OCwweDA2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweGU0LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4NDIzZCwwLHsweDhhLDB4OTAsMHg3OCwweDA2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0fSB9LAoteyAgMTYsMHg0MjRkLDAsezB4MDIsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDcsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDQyNWQsMCx7MHgwNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHhlNCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwNn0gfSwKLXsgIDE2LDB4NDI2ZCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDAzLDB4MTIsMHgwYywweDljfSB9LAoteyAgMTYsMHg0MjdkLDAsezB4OTAsMHg3OCwweDA3LDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDYsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDQyOGQsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4ZTQsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDYsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDEyLDB4NDI5ZCwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwNCwweDEyLDB4MGMsMHg5Y30gfSwKLXsgICAxLDB4NDJhOSwwLHsweDIyfSB9LAoteyAgMTYsMHg0MmFhLDAsezB4ZTQsMHhmZiwweGZlLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgwYywweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzR9IH0sCi17ICAxNiwweDQyYmEsMCx7MHgyYiwweGYwLDB4OTAsMHg3OCwweDBjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4NDJjYSwwLHsweDEyLDB4MGMsMHg1ZCwweGZkLDB4OTAsMHg3OSwweDlhLDB4ZTAsMHg2ZCwweDYwLDB4MTMsMHhlZiwweGMzLDB4OTQsMHgwNSwweDUwfSB9LAoteyAgMTYsMHg0MmRhLDAsezB4MGQsMHgwZiwweDkwLDB4NzgsMHgwZCwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4ODAsMHhkNCwweDhkLDB4MzN9IH0sCi17ICAxNiwweDQyZWEsMCx7MHg5MCwweDc4LDB4MGMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4NDJmYSwwLHsweDVkLDB4ZmQsMHg5MCwweDc5LDB4OWIsMHhlMCwweGZjLDB4NmQsMHg2MCwweDEzLDB4ZWUsMHhjMywweDk0LDB4MGIsMHg1MCwweDBkfSB9LAoteyAgMTYsMHg0MzBhLDAsezB4MGUsMHg5MCwweDc4LDB4MGQsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDgwLDB4ZDMsMHg4YywweDM0LDB4ZWZ9IH0sCi17ICAxNiwweDQzMWEsMCx7MHg2NCwweDA1LDB4NjAsMHgwMywweGJlLDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MH0gfSwKLXsgIDE2LDB4NDMyYSwwLHsweDc4LDB4MGMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0LDB4ZmYsMHgyNCwweGYwfSB9LAoteyAgMTYsMHg0MzNhLDAsezB4NjAsMHgwOCwweDI0LDB4MGUsMHg3MCwweDBlLDB4MTIsMHg0OSwweDRkLDB4MjIsMHg5MCwweDc5LDB4MjAsMHhlNSwweDM0LDB4ZjB9IH0sCi17ICAxMSwweDQzNGEsMCx7MHgxMiwweDFiLDB4MmEsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHg0MzU1LDAsezB4MjJ9IH0sCi17ICAxMiwweDQzNTYsMCx7MHg3OCwweDdmLDB4ZTQsMHhmNiwweGQ4LDB4ZmQsMHg3NSwweDgxLDB4M2YsMHgwMiwweDQzLDB4OWR9IH0sCi17ICAxNiwweDQzNjIsMCx7MHgwMiwweDQ4LDB4YTksMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweDQwLDB4MDMsMHhmNiwweDgwLDB4MDEsMHhmMn0gfSwKLXsgIDE2LDB4NDM3MiwwLHsweDA4LDB4ZGYsMHhmNCwweDgwLDB4MjksMHhlNCwweDkzLDB4YTMsMHhmOCwweDU0LDB4MDcsMHgyNCwweDBjLDB4YzgsMHhjMywweDMzfSB9LAoteyAgMTYsMHg0MzgyLDAsezB4YzQsMHg1NCwweDBmLDB4NDQsMHgyMCwweGM4LDB4ODMsMHg0MCwweDA0LDB4ZjQsMHg1NiwweDgwLDB4MDEsMHg0NiwweGY2LDB4ZGZ9IH0sCi17ICAxNiwweDQzOTIsMCx7MHhlNCwweDgwLDB4MGIsMHgwMSwweDAyLDB4MDQsMHgwOCwweDEwLDB4MjAsMHg0MCwweDgwLDB4OTAsMHg0NiwweDYxLDB4ZTQsMHg3ZX0gfSwKLXsgIDE2LDB4NDNhMiwwLHsweDAxLDB4OTMsMHg2MCwweGJjLDB4YTMsMHhmZiwweDU0LDB4M2YsMHgzMCwweGU1LDB4MDksMHg1NCwweDFmLDB4ZmUsMHhlNCwweDkzfSB9LAoteyAgMTYsMHg0M2IyLDAsezB4YTMsMHg2MCwweDAxLDB4MGUsMHhjZiwweDU0LDB4YzAsMHgyNSwweGUwLDB4NjAsMHhhOCwweDQwLDB4YjgsMHhlNCwweDkzLDB4YTN9IH0sCi17ICAxNiwweDQzYzIsMCx7MHhmYSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYX0gfSwKLXsgIDE2LDB4NDNkMiwwLHsweGYwLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhLDB4ZGYsMHhlOSwweGRlLDB4ZTcsMHg4MCwweGJlfSB9LAoteyAgMTYsMHg0M2UyLDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDQzZjIsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn0gfSwKLXsgIDE2LDB4NDQwMiwwLHsweGMwLDB4ZTAsMHhjMiwweGNhLDB4YzIsMHhjZiwweDkwLDB4NzksMHg3YSwweGUwLDB4YjQsMHgwMSwweDFmLDB4MTIsMHg0YiwweGFlfSB9LAoteyAgMTYsMHg0NDEyLDAsezB4MTIsMHg0NywweDU4LDB4NTMsMHhhOCwweGEwLDB4OTAsMHg3ZiwweGFlLDB4ZTQsMHhmMCwweDEyLDB4MDcsMHhhYSwweDEyLDB4NGJ9IH0sCi17ICAxNiwweDQ0MjIsMCx7MHhiNywweDkwLDB4N2YsMHhhZSwweDc0LDB4MWYsMHhmMCwweDQzLDB4YTgsMHgwNSwweDgwLDB4MDMsMHg1MywweGE4LDB4YTAsMHg1M30gfSwKLXsgIDE2LDB4NDQzMiwwLHsweGE4LDB4ZmEsMHg3NSwweGU4LDB4MDEsMHgxMiwweDA5LDB4MTUsMHg3NSwweGU4LDB4MGQsMHg0MywweGE4LDB4MDUsMHhkMCwweGUwfSB9LAoteyAgMTYsMHg0NDQyLDAsezB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMCwweGUwLDB4ZmF9IH0sCi17ICAxNiwweDQ0NTIsMCx7MHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGYwLDB4ZDAsMHhlMH0gfSwKLXsgICAxLDB4NDQ2MiwwLHsweDMyfSB9LAoteyAgMTYsMHg0NDYzLDAsezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNSwweDA5LDB4MTQsMHg2MCwweDFkLDB4MTQsMHg2MCwweDJhLDB4MTQsMHg2MCwweDM3LDB4MTR9IH0sCi17ICAxNiwweDQ0NzMsMCx7MHg2MCwweDQ0LDB4MjQsMHgwNCwweDcwLDB4NTAsMHg5MCwweDc5LDB4NjIsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4NDQ4MywwLHsweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHg0NywweDkwLDB4NzksMHg2MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHg0NDkzLDAsezB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDM3LDB4OTAsMHg3OSwweDY0LDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDQ0YTMsMCx7MHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MjcsMHg5MCwweDc5LDB4NjYsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4NDRiMywwLHsweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgxNywweDkwLDB4NzksMHg2NywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTUsMHg0NGMzLDAsezB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhkMywweDIyfSB9LAoteyAgIDQsMHg0NGQyLDAsezB4OGQsMHgzNiwweDhiLDB4Mzd9IH0sCi17ICAxNiwweDQ0ZDYsMCx7MHgxMiwweDNmLDB4YTIsMHhlYSwweDQ5LDB4NjAsMHg1NywweDEyLDB4MGMsMHg0NCwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYX0gfSwKLXsgIDE2LDB4NDRlNiwwLHsweGM5LDB4ZWYsMHhjOSwweDc1LDB4MzgsMHhmZiwweGY1LDB4MzksMHg4OSwweDNhLDB4YWIsMHgzOCwweGFhLDB4MzksMHhhOSwweDNhfSB9LAoteyAgMTYsMHg0NGY2LDAsezB4OTAsMHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4ZmYsMHg2NCwweDA0LDB4NjAsMHgwNSwweGVmLDB4NjQsMHgwNSwweDcwLDB4MmV9IH0sCi17ICAxNiwweDQ1MDYsMCx7MHhlZiwweGI0LDB4MDQsMHgxNSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGMsMHg1ZCwweDY1LDB4MzYsMHg3MCwweDBiLDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4NDUxNiwwLHsweDAzLDB4MTIsMHgwYywweDVkLDB4NjUsMHgzNywweDcwLDB4MDEsMHgyMiwweDEyLDB4MGMsMHg0NCwweDdlLDB4MDAsMHgyOSwweGZmfSB9LAoteyAgMTYsMHg0NTI2LDAsezB4ZWUsMHgzYSwweGM5LDB4ZWYsMHhjOSwweDc1LDB4MzgsMHhmZiwweGY1LDB4MzksMHg4OSwweDNhLDB4ODAsMHhiYywweDdiLDB4MDB9IH0sCi17ICAgNCwweDQ1MzYsMCx7MHg3YSwweDAwLDB4NzksMHgwMH0gfSwKLXsgICAxLDB4NDUzYSwwLHsweDIyfSB9LAoteyAgMTYsMHg0NTNiLDAsezB4ZTQsMHhmZiwweDdiLDB4MDEsMHg5MCwweDc4LDB4MWMsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4NGN9IH0sCi17ICAxNiwweDQ1NGIsMCx7MHhmMCwweDkwLDB4NzgsMHgxYywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDIsMHgxMn0gfSwKLXsgIDE2LDB4NDU1YiwwLHsweDBjLDB4NWQsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4NmUsMHg2MCwweDEzLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDBkfSB9LAoteyAgMTYsMHg0NTZiLDAsezB4OTAsMHg3OCwweDFkLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4ZDQsMHhiZiwweDA0LDB4MDl9IH0sCi17ICAxNiwweDQ1N2IsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTQsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZmLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4NDU4YiwwLHsweDFjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweGVmLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3ZiwweGM1fSB9LAoteyAgIDMsMHg0NTliLDAsezB4NzQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHg0NTllLDAsezB4MjJ9IH0sCi17ICAxNCwweDQ1OWYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZWUsMHhjMCwweGUwLDB4ZWYsMHhjMCwweGUwfSB9LAoteyAgMTYsMHg0NWFkLDAsezB4OTAsMHg3OSwweDg1LDB4ZTAsMHg2NCwweDAxLDB4NjAsMHgwNSwweGEzLDB4ZTAsMHhiNCwweDAxLDB4MmQsMHg5MCwweDc5LDB4ODd9IH0sCi17ICAxNiwweDQ1YmQsMCx7MHg3NCwweDAxLDB4ZjAsMHhlNCwweGZmLDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MWIsMHg3NH0gfSwKLXsgIDE2LDB4NDVjZCwwLHsweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDIxLDB4MmYsMHhmNSwweDgyfSB9LAoteyAgMTYsMHg0NWRkLDAsezB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHgwZiwweDgwLDB4ZGIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWF9IH0sCi17ICAgNCwweDQ1ZWQsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgIDE1LDB4NDVmMSwwLHsweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZDAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NDYwMCwwLHsweGU0LDB4ZmYsMHg3YiwweDAxLDB4OTAsMHg3OCwweDE5LDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweDRjfSB9LAoteyAgMTYsMHg0NjEwLDAsezB4ZjAsMHg5MCwweDc4LDB4MTksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyLDB4MTJ9IH0sCi17ICAxNiwweDQ2MjAsMCx7MHgwYywweDVkLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDZlLDB4NjAsMHgxMywweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwZH0gfSwKLXsgIDE2LDB4NDYzMCwwLHsweDkwLDB4NzgsMHgxYSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGQ0LDB4YmYsMHgwNCwweDA4fSB9LAoteyAgMTYsMHg0NjQwLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgxOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDQ2NTAsMCx7MHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDQsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4NDY2MCwwLHsweDIyfSB9LAoteyAgMTYsMHg0NjYxLDAsezB4MDEsMHgxOCwweDAyLDB4MDEsMHgxOSwweDBhLDB4MDEsMHgxYywweDAwLDB4YzEsMHgyOCwweGMxLDB4MjksMHgwMSwweDFmLDB4MDF9IH0sCi17ICAxNSwweDQ2NzEsMCx7MHg0NCwweDc5LDB4OWYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQxLDB4NzksMHhhMywweDAwLDB4NDEsMHg3OSwweGE0LDB4MDB9IH0sCi17ICAgNCwweDQ2ODAsMCx7MHg0MSwweDc5LDB4ODksMHgwMH0gfSwKLXsgIDE2LDB4NDY4NCwwLHsweDAxLDB4MjIsMHgwMSwweDQxLDB4NzksMHgzMSwweGZmLDB4NDEsMHg3OSwweDM0LDB4MDAsMHg0ZCwweDc5LDB4MzUsMHgzZiwweDNmfSB9LAoteyAgMTYsMHg0Njk0LDAsezB4MDAsMHgwOCwweDAwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweDRkLDB4NzksMHg0MiwweDNmLDB4M2Z9IH0sCi17ICAxNiwweDQ2YTQsMCx7MHgwNiwweDA4LDB4MDQsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4NGQsMHg3OSwweDRmLDB4MGEsMHgwYX0gfSwKLXsgIDExLDB4NDZiNCwwLHsweDA5LDB4MDAsMHgwMSwweDA5LDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3LDB4MDh9IH0sCi17ICAgMSwweDQ2YmYsMCx7MHgwMH0gfSwKLXsgIDE2LDB4NDZjMCwwLHsweDEyLDB4MGEsMHhjZCwweDkwLDB4N2YsMHhhNSwweGUwLDB4ZjUsMHgyMSwweGU1LDB4MjEsMHg1NCwweDAxLDB4ZjUsMHgyMSwweDY0fSB9LAoteyAgMTYsMHg0NmQwLDAsezB4MDEsMHg2MCwweDI4LDB4ZTUsMHgyMiwweDY0LDB4MDEsMHg3MCwweDIyLDB4OTAsMHg3ZiwweGE1LDB4ZTAsMHhmNSwweDIxLDB4NTR9IH0sCi17ICAxNiwweDQ2ZTAsMCx7MHgwMiwweGY1LDB4MjEsMHg3MCwweDAzLDB4NzUsMHgyMiwweDAxLDB4OTAsMHg3ZiwweGE1LDB4ZTAsMHhmNSwweDIxLDB4NTQsMHgwNH0gfSwKLXsgIDEyLDB4NDZmMCwwLHsweGZmLDB4ZjUsMHgyMSwweGJmLDB4MDQsMHhkMywweDc1LDB4MjIsMHgwMSwweDgwLDB4Y2UsMHgyMn0gfSwKLXsgICA0LDB4NDZmYywwLHsweDUzLDB4ZDgsMHhmNywweDMyfSB9LAoteyAgMTYsMHg0NzAwLDAsezB4MDIsMHg0OSwweGZhLDB4MDAsMHgwMiwweDNjLDB4NTQsMHgwMCwweDAyLDB4MTcsMHhlNCwweDAwLDB4MDIsMHg0YSwweDEyLDB4MDB9IH0sCi17ICAxNiwweDQ3MTAsMCx7MHgwMiwweDM3LDB4YTIsMHgwMCwweDAyLDB4NDcsMHhmZiwweDAwLDB4MDIsMHg0YSwweDQxLDB4MDAsMHgwMiwweDQ1LDB4OWYsMHgwMH0gfSwKLXsgIDE2LDB4NDcyMCwwLHsweDAyLDB4NDksMHg4ZSwweDAwLDB4MDIsMHg0OSwweGFiLDB4MDAsMHgwMiwweDRhLDB4NTgsMHgwMCwweDAyLDB4NGEsMHg2ZiwweDAwfSB9LAoteyAgMTYsMHg0NzMwLDAsezB4MDIsMHg0YSwweDg2LDB4MDAsMHgwMiwweDRhLDB4OWQsMHgwMCwweDAyLDB4NGEsMHhiNCwweDAwLDB4MDIsMHg0YSwweGNiLDB4MDB9IH0sCi17ICAxNiwweDQ3NDAsMCx7MHgwMiwweDRhLDB4ZTIsMHgwMCwweDAyLDB4NGEsMHhmOSwweDAwLDB4MDIsMHg0YiwweDEwLDB4MDAsMHgwMiwweDRiLDB4MjcsMHgwMH0gfSwKLXsgICA4LDB4NDc1MCwwLHsweDAyLDB4NGIsMHgzZSwweDAwLDB4MDIsMHg0YiwweDU1LDB4MDB9IH0sCi17ICAxNiwweDQ3NTgsMCx7MHhlNSwweDE4LDB4NzAsMHgxNCwweDkwLDB4NzksMHg4YywweGUwLDB4MDQsMHhmMCwweDkwLDB4NzksMHg4YiwweGUwLDB4YzMsMHg5NH0gfSwKLXsgIDE2LDB4NDc2OCwwLHsweDAwLDB4NDAsMHgxNSwweGUwLDB4MTQsMHhmMCwweDgwLDB4MTAsMHg5MCwweDc5LDB4OGIsMHhlMCwweDA0LDB4ZjAsMHhhMywweGUwfSB9LAoteyAgMTYsMHg0Nzc4LDAsezB4YzMsMHg5NCwweDAwLDB4NDAsMHgwMywweGUwLDB4MTQsMHhmMCwweDkwLDB4NzksMHg4YiwweGUwLDB4ZDMsMHg5NCwweDE0LDB4NDB9IH0sCi17ICAxNiwweDQ3ODgsMCx7MHgwNCwweGU0LDB4ZjUsMHgxOCwweGYwLDB4OTAsMHg3OSwweDhjLDB4ZTAsMHhkMywweDk0LDB4MTQsMHg0MCwweDA1LDB4NzUsMHgxOH0gfSwKLXsgICA0LDB4NDc5OCwwLHsweDAxLDB4ZTQsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0NzljLDAsezB4OTAsMHg3ZiwweGQ3LDB4ZTAsMHhmNSwweDMzLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNSwweDA5LDB4MTQsMHg2MCwweDExLDB4MTR9IH0sCi17ICAxNiwweDQ3YWMsMCx7MHg2MCwweDFiLDB4MjQsMHgwMiwweDcwLDB4MjQsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzksMHg2MiwweGYwLDB4ODAsMHgyMX0gfSwKLXsgIDE2LDB4NDdiYywwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3OSwweDYzLDB4ZjAsMHgxMiwweDEwLDB4MDAsMHg4MCwweDE0LDB4OTAsMHg3ZiwweGVhfSB9LAoteyAgMTYsMHg0N2NjLDAsezB4ZTAsMHg5MCwweDc5LDB4NjQsMHhmMCwweDEyLDB4MjgsMHgwMSwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9IH0sCi17ICAgMiwweDQ3ZGMsMCx7MHhmMCwweGQzfSB9LAoteyAgIDEsMHg0N2RlLDAsezB4MjJ9IH0sCi17ICAxNiwweDQ3ZGYsMCx7MHg5MCwweDc5LDB4NzgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4MzMsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4YTIsMHhhZn0gfSwKLXsgIDE2LDB4NDdlZiwwLHsweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDIyfSB9LAoteyAgIDEsMHg0N2ZmLDAsezB4MzJ9IH0sCi17ICAgMiwweDQ4MDAsMCx7MHg4ZiwweDM2fSB9LAoteyAgMTYsMHg0ODAyLDAsezB4ZTQsMHhmNSwweDM3LDB4NzUsMHgzOCwweGZmLDB4NzUsMHgzOSwweDA3LDB4NzUsMHgzYSwweDAxLDB4YWIsMHgzOCwweGFhLDB4Mzl9IH0sCi17ICAxNiwweDQ4MTIsMCx7MHhhOSwweDNhLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4YjQsMHgwMywweDFmLDB4YWYsMHgzNywweDA1LDB4MzcsMHhlZn0gfSwKLXsgIDE2LDB4NDgyMiwwLHsweDY1LDB4MzYsMHg3MCwweDAxLDB4MjIsMHgxMiwweDBjLDB4NDQsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2EsMHhjOSwweGVmfSB9LAoteyAgMTYsMHg0ODMyLDAsezB4YzksMHg3NSwweDM4LDB4ZmYsMHhmNSwweDM5LDB4ODksMHgzYSwweDgwLDB4ZDIsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9IH0sCi17ICAgMSwweDQ4NDIsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDg0MywwLHsweDMwLDB4MjYsMHgyZiwweGMyLDB4MjYsMHg5MCwweDc5LDB4MmQsMHhlMCwweGZmLDB4YjQsMHgwMSwweDA5LDB4ZTQsMHhmNSwweDBjfSB9LAoteyAgMTYsMHg0ODUzLDAsezB4NzUsMHgwZCwweGY4LDB4NzUsMHgwZSwweDBhLDB4ZWYsMHhiNCwweDAyLDB4MDksMHhlNCwweGY1LDB4MGMsMHg3NSwweDBkLDB4ZjB9IH0sCi17ICAxNiwweDQ4NjMsMCx7MHg3NSwweDBlLDB4MGIsMHhlZiwweGI0LDB4MDMsMHgwOSwweGU0LDB4ZjUsMHgwYywweDc1LDB4MGQsMHhmOCwweDc1LDB4MGUsMHgxN30gfSwKLXsgICAzLDB4NDg3MywwLHsweGQyLDB4MjIsMHgyMn0gfSwKLXsgIDE2LDB4NDg3NiwwLHsweDMwLDB4MjUsMHgyZiwweGMyLDB4MjUsMHg5MCwweDc5LDB4MmQsMHhlMCwweGZmLDB4YjQsMHgwMSwweDA5LDB4NzUsMHgwYywweGMwfSB9LAoteyAgMTYsMHg0ODg2LDAsezB4NzUsMHgwZCwweDE0LDB4NzUsMHgwZSwweDBiLDB4ZWYsMHhiNCwweDAyLDB4MDksMHhlNCwweGY1LDB4MGMsMHg3NSwweDBkLDB4MTB9IH0sCi17ICAxNiwweDQ4OTYsMCx7MHg3NSwweDBlLDB4MGMsMHhlZiwweGI0LDB4MDMsMHgwOSwweGU0LDB4ZjUsMHgwYywweDc1LDB4MGQsMHgxOCwweDc1LDB4MGUsMHgxOH0gfSwKLXsgICAzLDB4NDhhNiwwLHsweGQyLDB4MjIsMHgyMn0gfSwKLXsgIDE2LDB4NDhhOSwwLHsweGU0LDB4ZjUsMHgzMiwweDEyLDB4MGYsMHg1MCwweDIwLDB4MmUsMHgxMCwweGU1LDB4MzIsMHhjMywweDk0LDB4MDIsMHg1MCwweDA5fSB9LAoteyAgMTYsMHg0OGI5LDAsezB4MDUsMHgzMiwweGQyLDB4MzAsMHgxMiwweDQ5LDB4MDUsMHg4MCwweGVkLDB4MzAsMHgyZSwweDA1LDB4MTIsMHgxNCwweDU3LDB4YzJ9IH0sCi17ICAxNSwweDQ4YzksMCx7MHgyZSwweDMwLDB4MmQsMHgwNiwweDEyLDB4MDcsMHg5YSwweDEyLDB4NDgsMHhkOSwweDEyLDB4NDAsMHgwMCwweDgwLDB4ZWF9IH0sCi17ICAgMSwweDQ4ZDgsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDhkOSwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4ZjUsMHgxZCwweDU0LDB4ODAsMHhmNSwweDFkLDB4NjQsMHg4MCwweDcwLDB4MWQsMHhjMiwweGFmfSB9LAoteyAgMTYsMHg0OGU5LDAsezB4ZTAsMHg0NCwweDgwLDB4ZjAsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDdmLDB4MGMsMHg3ZSwweDAwLDB4MTIsMHg0YiwweDZjLDB4OTB9IH0sCi17ICAxMiwweDQ4ZjksMCx7MHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg1MywweDg3LDB4ZmUsMHhkMiwweGFmLDB4MjJ9IH0sCi17ICAxNiwweDQ5MDUsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZmIsMHhmMCwweGUwLDB4NDQsMHgwOCwweGYwLDB4MzAsMHgzMCwweDA0LDB4ZTAsMHg0NH0gfSwKLXsgIDE2LDB4NDkxNSwwLHsweDAyLDB4ZjAsMHg3ZiwweGRjLDB4N2UsMHgwNSwweDEyLDB4NGIsMHg2YywweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmNywweGYwfSB9LAoteyAgIDUsMHg0OTI1LDAsezB4ZTAsMHg0NCwweDA0LDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDkyYSwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg3MCwweDE0LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgwNCwweDEyfSB9LAoteyAgMTYsMHg0OTNhLDAsezB4NDYsMHgwMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9IH0sCi17ICAgMywweDQ5NGEsMCx7MHgwMSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ5NGQsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxMywweDkwLDB4N2YsMHhlOSwweGUwLDB4MTQsMHg3MCwweDA0LDB4MTIsMHg0NX0gfSwKLXsgIDE2LDB4NDk1ZCwwLHsweDNiLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSB9LAoteyAgIDIsMHg0OTZkLDAsezB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDk2ZiwwLHsweGU0LDB4ZmYsMHg3NCwweGU4LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDk2fSB9LAoteyAgMTQsMHg0OTdmLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhlNH0gfSwKLXsgICAxLDB4NDk4ZCwwLHsweDIyfSB9LAoteyAgMTYsMHg0OThlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDAyLDB4ZjB9IH0sCi17ICAxMywweDQ5OWUsMCx7MHg5MCwweDdmLDB4YjcsMHg3NCwweDAzLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NDlhYiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwMiwweGYwfSB9LAoteyAgMTMsMHg0OWJiLDAsezB4OTAsMHg3ZiwweGM3LDB4NzQsMHgwMywweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDQ5YzgsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDMwLDB4ZTcsMHgxMiwweGUwLDB4NDQsMHgwMSwweGYwLDB4N2YsMHgxNCwweDdlLDB4MDAsMHgxMn0gfSwKLXsgIDEwLDB4NDlkOCwwLHsweDRiLDB4NmMsMHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0OWUyLDAsezB4ZTQsMHhmNSwweDFhLDB4NzUsMHgxYiwweDAxLDB4OTAsMHg3OSwweDkxLDB4MDQsMHhmMCwweGEzLDB4ZjAsMHhlNCwweGEzLDB4ZjB9IH0sCi17ICAgOCwweDQ5ZjIsMCx7MHhhMywweDc0LDB4MGEsMHhmMCwweGU0LDB4YTMsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0OWZhLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyZSwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDF9IH0sCi17ICAgOCwweDRhMGEsMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTEyLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyZCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDh9IH0sCi17ICAgOCwweDRhMjIsMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTJhLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNSwweDA4LDB4ZTQsMHg5MCwweDc5LDB4NjIsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4OTB9IH0sCi17ICAgNywweDRhM2EsMCx7MHg3OSwweDY2LDB4ZjAsMHhhMywweGYwLDB4ZDMsMHgyMn0gfSwKLXsgIDE2LDB4NGE0MSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDcsMHg0YTUxLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhNTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDQsMHhmMH0gfSwKLXsgICA3LDB4NGE2OCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTZmLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDA0LDB4ZjB9IH0sCi17ICAgNywweDRhN2YsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGE4NiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwOCwweGYwfSB9LAoteyAgIDcsMHg0YTk2LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhOWQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDgsMHhmMH0gfSwKLXsgICA3LDB4NGFhZCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YWI0LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDEwLDB4ZjB9IH0sCi17ICAgNywweDRhYzQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGFjYiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgxMCwweGYwfSB9LAoteyAgIDcsMHg0YWRiLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhZTIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MjAsMHhmMH0gfSwKLXsgICA3LDB4NGFmMiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YWY5LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDIwLDB4ZjB9IH0sCi17ICAgNywweDRiMDksMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGIxMCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHg0MCwweGYwfSB9LAoteyAgIDcsMHg0YjIwLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRiMjcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4NDAsMHhmMH0gfSwKLXsgICA3LDB4NGIzNywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YjNlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDgwLDB4ZjB9IH0sCi17ICAgNywweDRiNGUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGI1NSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg4MCwweGYwfSB9LAoteyAgIDcsMHg0YjY1LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRiNmMsMCx7MHg4ZSwweDMzLDB4OGYsMHgzNCwweGU1LDB4MzQsMHgxNSwweDM0LDB4YWUsMHgzMywweDcwLDB4MDIsMHgxNSwweDMzLDB4NGUsMHg2MH0gfSwKLXsgICA3LDB4NGI3YywwLHsweDA1LDB4MTIsMHgwNywweDg5LDB4ODAsMHhlZSwweDIyfSB9LAoteyAgMTUsMHg0YjgzLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweGZmLDB4MDQsMHgxMiwweDMwLDB4MDAsMHgyMiwweDEyLDB4MzYsMHgwZSwweDIyfSB9LAoteyAgMTQsMHg0YjkyLDAsezB4YzAsMHhlMCwweGMyLDB4OGIsMHhkMiwweDI0LDB4MzAsMHgyMywweDAyLDB4YzIsMHgyMywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE0LDB4NGJhMCwwLHsweDkwLDB4N2YsMHgwMCwweGU1LDB4MDgsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweGQzLDB4MjJ9IH0sCi17ICAgOSwweDRiYWUsMCx7MHgzMCwweDI0LDB4MDUsMHhjMiwweDI0LDB4NzUsMHgxOCwweDAxLDB4MjJ9IH0sCi17ICAgOSwweDRiYjcsMCx7MHgzMCwweDIzLDB4MDUsMHhjMiwweDIzLDB4ZTQsMHhmNSwweDE4LDB4MjJ9IH0sCi17ICAgNywweDRiYzAsMCx7MHg1MywweGMwLDB4ZmUsMHg1MywweGMwLDB4ZmQsMHgzMn0gfSwKLXsgICA2LDB4NGJjNywwLHsweDUzLDB4OTEsMHg3ZiwweGQyLDB4MjUsMHgzMn0gfSwKLXsgICA1LDB4NGJjZCwwLHsweGMyLDB4ODksMHhkMiwweDIzLDB4MzJ9IH0sCi17ICAgMywweDRiZDIsMCx7MHhjMiwweDhkLDB4MzJ9IH0sCi17ICAgMywweDRiZDUsMCx7MHhjMiwweDhmLDB4MzJ9IH0sCi17ICAgMiwweDRiZDgsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmRhLDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJkYywwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZGUsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmUwLDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJlMiwwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZTQsMCx7MHhjMywweDIyfSB9LAoteyAgIDEsMHg0YmU2LDAsezB4MjJ9IH0sCi17ICAgMCwweDAwMDAsMSx7MCB9fQotfTsKLS8qCi1WRVJTSU9OPTEuMC4yLjkxNgotREFURT0xMi4wMi4yMDAyCi0qLwotLyoKLSAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKLSAqCi0gKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKLSAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAotICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKLSAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KLSAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKLSAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKLSAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKLSAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCi0gKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfTG9hZGVyW10gPSB7Ci17ICAgMywweDAwMDAsMCx7MHgwMiwweDAzLDB4MWN9IH0sCi17ICAgMywweDAwNDMsMCx7MHgwMiwweDA0LDB4MDB9IH0sCi17ICAxNiwweDAxMDAsMCx7MHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4NWIsMHg2MCwweDYwLDB4MjQsMHgwMiwweDYwLDB4MDMsMHgwMiwweDAxLDB4YmUsMHg5MH0gfSwKLXsgIDE2LDB4MDExMCwwLHsweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1LDB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwfSB9LAoteyAgMTYsMHgwMTIwLDAsezB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjUsMHgxNiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDE1LDB4ZTV9IH0sCi17ICAxNiwweDAxMzAsMCx7MHgxNiwweDQ1LDB4MTUsMHg3MCwweDAzLDB4MDIsMHgwMSwweGJlLDB4ZTQsMHg5MCwweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDE2LDB4MDE0MCwwLHsweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjLDB4MTIsMHgwMiwweDc3LDB4YWYsMHgwYywweDdlfSB9LAoteyAgMTYsMHgwMTUwLDAsezB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjUsMHgwYSwweGMzLDB4ZTUsMHgxNiwweDlmLDB4ZjV9IH0sCi17ICAxNiwweDAxNjAsMCx7MHgxNiwweGU1LDB4MTUsMHg5ZSwweGY1LDB4MTUsMHg4MCwweGM3LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3NSwweDBhLDB4MDAsMHhmNX0gfSwKLXsgIDE2LDB4MDE3MCwwLHsweDBiLDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MGEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1fSB9LAoteyAgMTYsMHgwMTgwLDAsezB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1LDB4MTYsMHg0NSwweDE1LDB4NjAsMHgzMCwweGU0LDB4OTB9IH0sCi17ICAxNiwweDAxOTAsMCx7MHg3ZiwweGM1LDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDIwLDB4ZTMsMHhmOSwweDkwLDB4N2YsMHhjNSwweGUwLDB4ZjUsMHgwY30gfSwKLXsgIDE2LDB4MDFhMCwwLHsweDEyLDB4MDIsMHg4ZiwweGFmLDB4MGMsMHg3ZSwweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1fSB9LAoteyAgMTUsMHgwMWIwLDAsezB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1LDB4MTYsMHhlNSwweDE1LDB4OWUsMHhmNSwweDE1LDB4ODAsMHhjYSwweGMzfSB9LAoteyAgIDEsMHgwMWJmLDAsezB4MjJ9IH0sCi17ICAxNiwweDAxYzAsMCx7MHhjMiwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDgsMHgyMCwweDkwLDB4N2YsMHhhYiwweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHhhOX0gfSwKLXsgIDE2LDB4MDFkMCwwLHsweGYwLDB4OTAsMHg3ZiwweGFhLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4OTUsMHhlMCwweDQ0LDB4YzAsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgwMWUwLDAsezB4N2YsMHg5OCwweGUwLDB4NDQsMHhjMCwweGYwLDB4OTAsMHg3ZiwweDllLDB4ZTAsMHg0NCwweGMwLDB4ZjAsMHhlNCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDAxZjAsMCx7MHg5NCwweGYwLDB4OTAsMHg3ZiwweDlkLDB4ZTAsMHg0NCwweDBmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4ZjAsMHhmMH0gfSwKLXsgIDE2LDB4MDIwMCwwLHsweDkwLDB4N2YsMHhhZiwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDBkLDB4ZjAsMHhkMiwweGFmfSB9LAoteyAgMTYsMHgwMjEwLDAsezB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweGYwLDB4ZjAsMHgyMCwweDIwLDB4NDIsMHg3NSwweDE0LDB4MDAsMHg3NSwweDEzLDB4MDB9IH0sCi17ICAxNiwweDAyMjAsMCx7MHg3NSwweDEyLDB4MDAsMHg3NSwweDExLDB4MDAsMHg3ZiwweDQ4LDB4N2UsMHg5MiwweDdkLDB4MDAsMHg3YywweDAwLDB4YWIsMHgxNH0gfSwKLXsgIDE2LDB4MDIzMCwwLHsweGFhLDB4MTMsMHhhOSwweDEyLDB4YTgsMHgxMSwweGMzLDB4MTIsMHgwNCwweDlhLDB4NTAsMHhkYiwweDIwLDB4MjAsMHhkOCwweDdhfSB9LAoteyAgMTYsMHgwMjQwLDAsezB4MDAsMHg3OSwweDAwLDB4NzgsMHgwMCwweGU1LDB4MTQsMHgyNCwweDAxLDB4ZjUsMHgxNCwweGVhLDB4MzUsMHgxMywweGY1LDB4MTN9IH0sCi17ICAxNiwweDAyNTAsMCx7MHhlOSwweDM1LDB4MTIsMHhmNSwweDEyLDB4ZTgsMHgzNSwweDExLDB4ZjUsMHgxMSwweDgwLDB4Y2EsMHgzMCwweDIwLDB4ZmQsMHgxMn0gfSwKLXsgIDE2LDB4MDI2MCwwLHsweDAxLDB4MDAsMHg1MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSB9LAoteyAgIDYsMHgwMjcwLDAsezB4MDIsMHhmMCwweGMyLDB4MjAsMHg4MCwweGU2fSB9LAoteyAgIDEsMHgwMjc2LDAsezB4MjJ9IH0sCi17ICAxNiwweDAyNzcsMCx7MHhlNSwweDBjLDB4ZmYsMHhlNSwweDBiLDB4ZjUsMHg4MiwweGU1LDB4MGEsMHhmNSwweDgzLDB4NzUsMHg5MiwweDdlLDB4NzQsMHhjMH0gfSwKLXsgICA4LDB4MDI4NywwLHsweGY4LDB4ZTIsMHgwOCwweGYwLDB4YTMsMHhkZiwweGZhLDB4MjJ9IH0sCi17ICAxNiwweDAyOGYsMCx7MHg5MCwweDdmLDB4OTYsMHg4NSwweDgzLDB4OTIsMHhhOCwweDgyLDB4NzksMHgwMiwweDkwLDB4MDAsMHgwMCwweGUwLDB4YjQsMHgwMH0gfSwKLXsgIDE2LDB4MDI5ZiwwLHsweDM3LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDkzLDB4ZTAsMHg1NCwweGZjLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0fSB9LAoteyAgMTYsMHgwMmFmLDAsezB4ZmMsMHhmMCwweDkwLDB4N2YsMHg5YywweGUwLDB4NDQsMHgwMywweGYwLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg1NCwweDdmLDB4ZjB9IH0sCi17ICAxNiwweDAyYmYsMCx7MHg5MCwweDdmLDB4OTcsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg5ZCwweGUwLDB4NDQsMHg4MCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDJjZiwwLHsweDk3LDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg0NCwweDgwLDB4ZjAsMHhlNSwweDBjLDB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGY1fSB9LAoteyAgMTYsMHgwMmRmLDAsezB4MjgsMHhlNCwweGEyLDB4NDcsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0NiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTR9IH0sCi17ICAxNiwweDAyZWYsMCx7MHhhMiwweDQ1LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDQsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0M30gfSwKLXsgIDE2LDB4MDJmZiwwLHsweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQyLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDEsMHgzMywweGYyfSB9LAoteyAgMTMsMHgwMzBmLDAsezB4NjksMHhmMiwweGU0LDB4YTIsMHg0MCwweDMzLDB4ZjIsMHg2OSwweGYyLDB4YTMsMHhkZiwweGMyLDB4MjJ9IH0sCi17ICAxMiwweDAzMWMsMCx7MHg3OCwweDdmLDB4ZTQsMHhmNiwweGQ4LDB4ZmQsMHg3NSwweDgxLDB4MjksMHgwMiwweDAzLDB4NjN9IH0sCi17ICAxNiwweDAzMjgsMCx7MHgwMiwweDAxLDB4YzAsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweDQwLDB4MDMsMHhmNiwweDgwLDB4MDEsMHhmMn0gfSwKLXsgIDE2LDB4MDMzOCwwLHsweDA4LDB4ZGYsMHhmNCwweDgwLDB4MjksMHhlNCwweDkzLDB4YTMsMHhmOCwweDU0LDB4MDcsMHgyNCwweDBjLDB4YzgsMHhjMywweDMzfSB9LAoteyAgMTYsMHgwMzQ4LDAsezB4YzQsMHg1NCwweDBmLDB4NDQsMHgyMCwweGM4LDB4ODMsMHg0MCwweDA0LDB4ZjQsMHg1NiwweDgwLDB4MDEsMHg0NiwweGY2LDB4ZGZ9IH0sCi17ICAxNiwweDAzNTgsMCx7MHhlNCwweDgwLDB4MGIsMHgwMSwweDAyLDB4MDQsMHgwOCwweDEwLDB4MjAsMHg0MCwweDgwLDB4OTAsMHgwNCwweDg0LDB4ZTQsMHg3ZX0gfSwKLXsgIDE2LDB4MDM2OCwwLHsweDAxLDB4OTMsMHg2MCwweGJjLDB4YTMsMHhmZiwweDU0LDB4M2YsMHgzMCwweGU1LDB4MDksMHg1NCwweDFmLDB4ZmUsMHhlNCwweDkzfSB9LAoteyAgMTYsMHgwMzc4LDAsezB4YTMsMHg2MCwweDAxLDB4MGUsMHhjZiwweDU0LDB4YzAsMHgyNSwweGUwLDB4NjAsMHhhOCwweDQwLDB4YjgsMHhlNCwweDkzLDB4YTN9IH0sCi17ICAxNiwweDAzODgsMCx7MHhmYSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYX0gfSwKLXsgIDE2LDB4MDM5OCwwLHsweGYwLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhLDB4ZGYsMHhlOSwweGRlLDB4ZTcsMHg4MCwweGJlfSB9LAoteyAgMTYsMHgwM2E4LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4OTAsMHg3ZiwweGM0LDB4ZTQsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2Z9IH0sCi17ICAxMSwweDAzYjgsMCx7MHhhYiwweDc0LDB4MDQsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHgwM2MzLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDF9IH0sCi17ICAgOCwweDAzZDMsMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHgwM2RiLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZDB9IH0sCi17ICAgNiwweDAzZWIsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAgMSwweDAzZjEsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmMiwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2YzLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjQsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmNSwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y2LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjcsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmOCwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y5LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmEsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmYiwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZjLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmQsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmZSwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZmLDAsezB4MzJ9IH0sCi17ICAxNiwweDA0MDAsMCx7MHgwMiwweDAzLDB4YzMsMHgwMCwweDAyLDB4MDMsMHhkYiwweDAwLDB4MDIsMHgwMywweGE4LDB4MDAsMHgwMiwweDA0LDB4NmUsMHgwMH0gfSwKLXsgIDE2LDB4MDQxMCwwLHsweDAyLDB4MDQsMHg1OCwweDAwLDB4MDIsMHgwMywweGYxLDB4MDAsMHgwMiwweDAzLDB4ZjIsMHgwMCwweDAyLDB4MDMsMHhmMywweDAwfSB9LAoteyAgMTYsMHgwNDIwLDAsezB4MDIsMHgwMywweGY0LDB4MDAsMHgwMiwweDAzLDB4ZjUsMHgwMCwweDAyLDB4MDMsMHhmNiwweDAwLDB4MDIsMHgwMywweGY3LDB4MDB9IH0sCi17ICAxNiwweDA0MzAsMCx7MHgwMiwweDAzLDB4ZjgsMHgwMCwweDAyLDB4MDMsMHhmOSwweDAwLDB4MDIsMHgwMywweGZhLDB4MDAsMHgwMiwweDAzLDB4ZmIsMHgwMH0gfSwKLXsgIDE2LDB4MDQ0MCwwLHsweDAyLDB4MDMsMHhmYywweDAwLDB4MDIsMHgwMywweGZkLDB4MDAsMHgwMiwweDAzLDB4ZmUsMHgwMCwweDAyLDB4MDMsMHhmZiwweDAwfSB9LAoteyAgIDgsMHgwNDUwLDAsezB4MDIsMHgwNCwweGFiLDB4MDAsMHgwMiwweDA0LDB4YWMsMHgwMH0gfSwKLXsgIDE2LDB4MDQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweGQwfSB9LAoteyAgIDYsMHgwNDY4LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHgwNDZlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOCwweGYwLDB4ZDB9IH0sCi17ICAgNiwweDA0N2UsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDA0ODQsMCx7MHgwMiwweDBhLDB4MDAsMHgwZiwweDAxLDB4MGMsMHgxMSwweDA0LDB4MGQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQxLDB4MDAsMHgwMH0gfSwKLXsgICAxLDB4MDQ5NCwwLHsweDAwfSB9LAoteyAgIDQsMHgwNDk1LDAsezB4MDIsMHgxNywweDAwLDB4MDB9IH0sCi17ICAgMSwweDA0OTksMCx7MHgwMH0gfSwKLXsgIDE2LDB4MDQ5YSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGU4LDB4OWMsMHg0NSwweGYwfSB9LAoteyAgIDEsMHgwNGFhLDAsezB4MjJ9IH0sCi17ICAgMSwweDA0YWIsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDRhYywwLHsweDMyfSB9LAoteyAgMTYsMHgxMTAwLDAsezB4MTIsMHgwMSwweDEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDZhLDB4MDgsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAxLDB4MDJ9IH0sCi17ICAxNiwweDExMTAsMCx7MHgwMCwweDAxLDB4MDksMHgwMiwweDIwLDB4MDAsMHgwMSwweDAxLDB4MDMsMHhhMCwweDAwLDB4MDksMHgwNCwweDAwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MTEyMCwwLHsweGZmLDB4MDAsMHgwMCwweDA0LDB4MDcsMHgwNSwweDgyLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LDB4MDIsMHgwMiwweDQwfSB9LAoteyAgMTYsMHgxMTMwLDAsezB4MDAsMHgwMCwweDA0LDB4MDMsMHgwOSwweDA0LDB4MjYsMHgwMywweDQxLDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDY4LDB4MDB9IH0sCi17ICAxNiwweDExNDAsMCx7MHg2ZiwweDAwLDB4NzIsMHgwMCwweDIwLDB4MDAsMHg0MywweDAwLDB4NjgsMHgwMCwweDY5LDB4MDAsMHg3MCwweDAwLDB4NzMsMHgwMH0gfSwKLXsgIDE2LDB4MTE1MCwwLHsweDJjLDB4MDAsMHgyMCwweDAwLDB4NDksMHgwMCwweDZlLDB4MDAsMHg2MywweDAwLDB4MmUsMHgwMCwweDI4LDB4MDMsMHg0NiwweDAwfSB9LAoteyAgMTYsMHgxMTYwLDAsezB4NjksMHgwMCwweDcyLDB4MDAsMHg2ZCwweDAwLDB4NzcsMHgwMCwweDYxLDB4MDAsMHg3MiwweDAwLDB4NjUsMHgwMCwweDIwLDB4MDB9IH0sCi17ICAxNiwweDExNzAsMCx7MHg0NiwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg2ZCwweDAwLDB4NjUsMHgwMCwweDU3LDB4MDAsMHg2ZiwweDAwLDB4NzIsMHgwMH0gfSwKLXsgIDE2LDB4MTE4MCwwLHsweDZiLDB4MDAsMHg3MywweDAwLDB4MmEsMHgwMywweDQzLDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMCwweDY2LDB4MDAsMHg2OSwweDAwfSB9LAoteyAgMTYsMHgxMTkwLDAsezB4NjcsMHgwMCwweDc1LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDc0LDB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDB9IH0sCi17ICAxNiwweDExYTAsMCx7MHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwLDB4MjIsMHgwM30gfSwKLXsgIDE2LDB4MTFiMCwwLHsweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NzQsMHgwMCwweDY1LDB4MDAsMHg3MiwweDAwLDB4NjYsMHgwMCwweDYxLDB4MDAsMHg2MywweDAwfSB9LAoteyAgMTYsMHgxMWMwLDAsezB4NjUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDB9IH0sCi17ICAgMiwweDExZDAsMCx7MHgwMCwweDAwfSB9LAoteyAgIDAsMHgwMDAwLDEsezAgfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyLmMgYi9kcml2ZXJzL3VzYi9taXNjL2VtaTYyLmMKaW5kZXggMWEyYjc5YS4uMjA4ODZjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Mi5jCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvZW1pNjIuYwpAQCAtMTYsMTUgKzE2LDggQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCi0jZGVmaW5lIE1BWF9JTlRFTF9IRVhfUkVDT1JEX0xFTkdUSCAxNgotdHlwZWRlZiBzdHJ1Y3QgX0lOVEVMX0hFWF9SRUNPUkQKLXsKLQlfX3UzMglsZW5ndGg7Ci0JX191MzIJYWRkcmVzczsKLQlfX3UzMgl0eXBlOwotCV9fdTgJZGF0YVtNQVhfSU5URUxfSEVYX1JFQ09SRF9MRU5HVEhdOwotfSBJTlRFTF9IRVhfUkVDT1JELCAqUElOVEVMX0hFWF9SRUNPUkQ7CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAKIC8qIGluY2x1ZGUgZmlybXdhcmUgKHZhcmlhYmxlcykqLwogCkBAIC0zMyw5ICsyNiw5IEBACiAvLyN1bmRlZiBTUERJRgkvKiBpZiB5b3Ugd2FudCBNSURJIHVuY29tbWVudCB0aGlzIGxpbmUgKi8gCiAKICNpZmRlZiBTUERJRgotIyAgaW5jbHVkZSAiZW1pNjJfZndfcy5oIiAvKiBzcGRpZiBmdyAqLworI2RlZmluZSBGSVJNV0FSRV9GVyAiZW1pNjIvc3BkaWYuZnciCiAjZWxzZQotIyAgaW5jbHVkZSAiZW1pNjJfZndfbS5oIiAvKiBtaWRpIGZ3ICovCisjZGVmaW5lIEZJUk1XQVJFX0ZXICJlbWk2Mi9taWRpLmZ3IgogI2VuZGlmCiAKICNkZWZpbmUgRU1JNjJfVkVORE9SX0lEIAkJMHgwODZhICAvKiBFbWFnaWMgU29mdC11bmQgSGFyZHdhcmUgR21CSCAqLwpAQCAtNDgsNyArNDEsOSBAQAogI2RlZmluZSBDUFVDU19SRUcJCTB4N0Y5MiAgLyogRVotVVNCIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3Rlci4gIEJpdCAwIGNvbnRyb2xzIDgwNTEgcmVzZXQgKi8gCiAjZGVmaW5lIElOVEVSTkFMX1JBTShhZGRyZXNzKSAgIChhZGRyZXNzIDw9IE1BWF9JTlRFUk5BTF9BRERSRVNTKQogCi1zdGF0aWMgaW50IGVtaTYyX3dyaXRlbWVtb3J5KCBzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwgX191OCBiUmVxdWVzdCk7CitzdGF0aWMgaW50IGVtaTYyX3dyaXRlbWVtb3J5KHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLAorCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLAorCQkJICAgICBfX3U4IGJSZXF1ZXN0KTsKIHN0YXRpYyBpbnQgZW1pNjJfc2V0X3Jlc2V0KHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgcmVzZXRfYml0KTsKIHN0YXRpYyBpbnQgZW1pNjJfbG9hZF9maXJtd2FyZSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldik7CiBzdGF0aWMgaW50IGVtaTYyX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpOwpAQCAtNTgsNyArNTMsOSBAQAogCiAKIC8qIHRoYW5rcyB0byBkcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYyBjb2RlICovCi1zdGF0aWMgaW50IGVtaTYyX3dyaXRlbWVtb3J5IChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwgX191OCByZXF1ZXN0KQorc3RhdGljIGludCBlbWk2Ml93cml0ZW1lbW9yeShzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywKKwkJCSAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwKKwkJCSAgICAgX191OCByZXF1ZXN0KQogewogCWludCByZXN1bHQ7CiAJdW5zaWduZWQgY2hhciAqYnVmZmVyID0gIGttZW1kdXAoZGF0YSwgbGVuZ3RoLCBHRlBfS0VSTkVMKTsKQEAgLTkxLDkgKzg4LDEyIEBACiAKIHN0YXRpYyBpbnQgZW1pNjJfbG9hZF9maXJtd2FyZSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldikKIHsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmxvYWRlcl9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpiaXRzdHJlYW1fZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZmlybXdhcmVfZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjOwogCWludCBlcnI7CiAJaW50IGk7Ci0JaW50IHBvcyA9IDA7CS8qIFBvc2l0aW9uIGluIGhleCByZWNvcmQgKi8KIAlfX3UzMiBhZGRyOwkvKiBBZGRyZXNzIHRvIHdyaXRlICovCiAJX191OCAqYnVmOwogCkBAIC0xMDUsNiArMTA1LDIyIEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmxvYWRlcl9mdywgImVtaTYyL2xvYWRlci5mdyIsICZkZXYtPmRldik7CisJaWYgKGVycikKKwkJZ290byBub2Z3OworCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZiaXRzdHJlYW1fZncsICJlbWk2Mi9iaXRzdHJlYW0uZnciLAorCQkJCSAgICAmZGV2LT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gbm9mdzsKKworCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZmlybXdhcmVfZncsIEZJUk1XQVJFX0ZXLCAmZGV2LT5kZXYpOworCWlmIChlcnIpIHsKKwlub2Z3OgorCQllcnIoICIlcyAtIHJlcXVlc3RfZmlybXdhcmUoKSBmYWlsZWQiLCBfX2Z1bmNfXyk7CisJCWdvdG8gd3JhcGVycjsKKwl9CisKIAkvKiBBc3NlcnQgcmVzZXQgKHN0b3AgdGhlIENQVSBpbiB0aGUgRU1JKSAqLwogCWVyciA9IGVtaTYyX3NldF9yZXNldChkZXYsMSk7CiAJaWYgKGVyciA8IDApIHsKQEAgLTExMiwxMyArMTI4LDE4IEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopbG9hZGVyX2Z3LT5kYXRhOworCiAJLyogMS4gV2UgbmVlZCB0byBwdXQgdGhlIGxvYWRlciBmb3IgdGhlIEZQR0EgaW50byB0aGUgRVotVVNCICovCi0JZm9yIChpPTA7IGdfZW1pNjJfbG9hZGVyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19lbWk2Ml9sb2FkZXJbaV0uYWRkcmVzcywgZ19lbWk2Ml9sb2FkZXJbaV0uZGF0YSwgZ19lbWk2Ml9sb2FkZXJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJd2hpbGUgKHJlYykgeworCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQlBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJZ290byB3cmFwZXJyOwogCQl9CisJCXJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsKIAl9CiAKIAkvKiBEZS1hc3NlcnQgcmVzZXQgKGxldCB0aGUgQ1BVIHJ1bikgKi8KQEAgLTEzMiwxNSArMTUzLDE2IEBACiAJLyogMi4gV2UgdXBsb2FkIHRoZSBGUEdBIGZpcm13YXJlIGludG8gdGhlIEVNSQogCSAqIE5vdGU6IGNvbGxlY3QgdXAgdG8gMTAyMyAoeWVzISkgYnl0ZXMgYW5kIHNlbmQgdGhlbSB3aXRoCiAJICogYSBzaW5nbGUgcmVxdWVzdC4gVGhpcyBpcyBfbXVjaF8gZmFzdGVyISAqLworCXJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKiliaXRzdHJlYW1fZnctPmRhdGE7CiAJZG8gewogCQlpID0gMDsKLQkJYWRkciA9IGdfZW1pNjJic1twb3NdLmFkZHJlc3M7CisJCWFkZHIgPSBiZTMyX3RvX2NwdShyZWMtPmFkZHIpOwogCiAJCS8qIGludGVsIGhleCByZWNvcmRzIGFyZSB0ZXJtaW5hdGVkIHdpdGggdHlwZSAwIGVsZW1lbnQgKi8KLQkJd2hpbGUgKChnX2VtaTYyYnNbcG9zXS50eXBlID09IDApICYmIChpICsgZ19lbWk2MmJzW3Bvc10ubGVuZ3RoIDwgRldfTE9BRF9TSVpFKSkgewotCQkJbWVtY3B5KGJ1ZiArIGksIGdfZW1pNjJic1twb3NdLmRhdGEsIGdfZW1pNjJic1twb3NdLmxlbmd0aCk7Ci0JCQlpICs9IGdfZW1pNjJic1twb3NdLmxlbmd0aDsKLQkJCXBvcysrOworCQl3aGlsZSAocmVjICYmIChpICsgYmUxNl90b19jcHUocmVjLT5sZW4pIDwgRldfTE9BRF9TSVpFKSkgeworCQkJbWVtY3B5KGJ1ZiArIGksIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKKwkJCWkgKz0gYmUxNl90b19jcHUocmVjLT5sZW4pOworCQkJcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpOwogCQl9CiAJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgYWRkciwgYnVmLCBpLCBBTkNIT1JfTE9BRF9GUEdBKTsKIAkJaWYgKGVyciA8IDApIHsKQEAgLTE1Nyw4ICsxNzksMTEgQEAKIAl9CiAKIAkvKiAzLiBXZSBuZWVkIHRvIHB1dCB0aGUgbG9hZGVyIGZvciB0aGUgZmlybXdhcmUgaW50byB0aGUgRVotVVNCIChhZ2Fpbi4uLikgKi8KLQlmb3IgKGk9MDsgZ19lbWk2Ml9sb2FkZXJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX2VtaTYyX2xvYWRlcltpXS5hZGRyZXNzLCBnX2VtaTYyX2xvYWRlcltpXS5kYXRhLCBnX2VtaTYyX2xvYWRlcltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilsb2FkZXJfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQlBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJZ290byB3cmFwZXJyOwpAQCAtMTc1LDI5ICsyMDAsMTkgQEAKIAogCS8qIDQuIFdlIHB1dCB0aGUgcGFydCBvZiB0aGUgZmlybXdhcmUgdGhhdCBsaWVzIGluIHRoZSBleHRlcm5hbCBSQU0gaW50byB0aGUgRVotVVNCICovCiAKLS8qIEZJWE1FOiBxdWljayBhbmQgZGlydHkgaWZkZWZzICovCi0jaWZkZWYgU1BESUYKLQlmb3IgKGk9MDsgZ19IZXhTcGRpZkZ3NjJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKCFJTlRFUk5BTF9SQU0oZ19IZXhTcGRpZkZ3NjJbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19IZXhTcGRpZkZ3NjJbaV0uYWRkcmVzcywgZ19IZXhTcGRpZkZ3NjJbaV0uZGF0YSwgZ19IZXhTcGRpZkZ3NjJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9FWFRFUk5BTCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQlpZiAoIUlOVEVSTkFMX1JBTShiZTMyX3RvX2NwdShyZWMtPmFkZHIpKSkgeworCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCQlBTkNIT1JfTE9BRF9FWFRFUk5BTCk7CiAJCQlpZiAoZXJyIDwgMCkgewogCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQkJZ290byB3cmFwZXJyOwogCQkJfQogCQl9CiAJfQotI2Vsc2UgLyogTUlESSAqLwotCWZvciAoaT0wOyBnX0hleE1pZGlGdzYyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmICghSU5URVJOQUxfUkFNKGdfSGV4TWlkaUZ3NjJbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19IZXhNaWRpRnc2MltpXS5hZGRyZXNzLCBnX0hleE1pZGlGdzYyW2ldLmRhdGEsIGdfSGV4TWlkaUZ3NjJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9FWFRFUk5BTCk7Ci0JCQlpZiAoZXJyIDwgMCkgewotCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkXG4iLCBfX2Z1bmNfXywgZXJyKTsKLQkJCQlnb3RvIHdyYXBlcnI7Ci0JCQkJcmV0dXJuIGVycjsKLQkJCX0KLQkJfQotCX0KLSNlbmRpZgkKKwogCS8qIEFzc2VydCByZXNldCAoc3RvcCB0aGUgQ1BVIGluIHRoZSBFTUkpICovCiAJZXJyID0gZW1pNjJfc2V0X3Jlc2V0KGRldiwxKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtMjA1LDI5ICsyMjAsMTkgQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAotLyogRklYTUU6IHF1aWNrIGFuZCBkaXJ0eSBpZmRlZnMgKi8KLSNpZmRlZiBTUERJRgotCWZvciAoaT0wOyBnX0hleFNwZGlmRnc2MltpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoSU5URVJOQUxfUkFNKGdfSGV4U3BkaWZGdzYyW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfSGV4U3BkaWZGdzYyW2ldLmFkZHJlc3MsIGdfSGV4U3BkaWZGdzYyW2ldLmRhdGEsIGdfSGV4U3BkaWZGdzYyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJaWYgKElOVEVSTkFMX1JBTShiZTMyX3RvX2NwdShyZWMtPmFkZHIpKSkgeworCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCQlBTkNIT1JfTE9BRF9FWFRFUk5BTCk7CiAJCQlpZiAoZXJyIDwgMCkgewogCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQkJZ290byB3cmFwZXJyOwogCQkJfQogCQl9CiAJfQotI2Vsc2UgLyogTUlESSAqLwotCWZvciAoaT0wOyBnX0hleE1pZGlGdzYyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmIChJTlRFUk5BTF9SQU0oZ19IZXhNaWRpRnc2MltpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX0hleE1pZGlGdzYyW2ldLmFkZHJlc3MsIGdfSGV4TWlkaUZ3NjJbaV0uZGF0YSwgZ19IZXhNaWRpRnc2MltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKLQkJCWlmIChlcnIgPCAwKSB7Ci0JCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWRcbiIsIF9fZnVuY19fLCBlcnIpOwotCQkJCWdvdG8gd3JhcGVycjsKLQkJCX0KLQkJfQotCX0KLSNlbmRpZgotCQorCiAJLyogRGUtYXNzZXJ0IHJlc2V0IChsZXQgdGhlIENQVSBydW4pICovCiAJZXJyID0gZW1pNjJfc2V0X3Jlc2V0KGRldiwwKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtMjM2LDYgKzI0MSwxMCBAQAogCX0KIAltc2xlZXAoMjUwKTsJLyogbGV0IGRldmljZSBzZXR0bGUgKi8KIAorCXJlbGVhc2VfZmlybXdhcmUobG9hZGVyX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGJpdHN0cmVhbV9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShmaXJtd2FyZV9mdyk7CisKIAlrZnJlZShidWYpOwogCiAJLyogcmV0dXJuIDEgdG8gZmFpbCB0aGUgZHJpdmVyIGluaWFsaXphdGlvbgpAQCAtMjQzLDYgKzI1MiwxMCBAQAogCXJldHVybiAxOwogCiB3cmFwZXJyOgorCXJlbGVhc2VfZmlybXdhcmUobG9hZGVyX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGJpdHN0cmVhbV9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShmaXJtd2FyZV9mdyk7CisKIAlrZnJlZShidWYpOwogCWRldl9lcnIoJmRldi0+ZGV2LCAiRXJyb3JcbiIpOwogCXJldHVybiBlcnI7CkBAIC0zMDAsNSArMzEzLDggQEAKIE1PRFVMRV9ERVNDUklQVElPTigiRW1hZ2ljIEVNSSA2fDJtIGZpcm13YXJlIGxvYWRlci4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJlbWk2Mi9sb2FkZXIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZW1pNjIvYml0c3RyZWFtLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoRklSTVdBUkVfRlcpOwogLyogdmk6YWk6c3ludGF4PWM6c3c9ODp0cz04OnR3PTgwCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfbS5oIGIvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19tLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1NjdjOTAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19tLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ODUzICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhyZWUgZGlmZmVyZW50IGZpbGVzLCBwcm92aWRlZCBieSBFbWFnaWMuCi0gKi8KLS8qIGdlbmVyYXRlZCBUdWUgSnVuIDMgMjE6MzY6MTEgRUVTVCAyMDAzICovCi0KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfZW1pNjJic1tdPXsKLSAgMTYsIDB4ODAxMCwgMCwgezB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhhYSwweDk5LDB4NTUsMHg2NiwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDcgfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4MzAsMHgwMSwweDYwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwZCwweDMwLDB4MDEsMHgyMCwweDAxLDB4MDAsMHg4MCwweDNmLDB4MmQgfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MzAsMHgwMCwweGMwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDEgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MDAsMHg1MCwweDAwLDB4NTgsMHgxYSwweDgwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0MCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4MDAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NDggfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4ODAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4MDAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4N2YsMHgxMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4MDAsMHgwMywweDQwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDA1LDB4MDAgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4MDcsMHg0MCwweDAxLDB4ZDAsMHgwMCwweDc0LDB4MDAsMHgxZCwweDAwLDB4MDcsMHg0MCwweDAxLDB4ZDAsMHgwMCwweDc0LDB4MDAgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MWQsMHg4MCwweDA3LDB4ZTAsMHgwMSwweGI4LDB4MDAsMHg2ZSwweDAwLDB4MWIsMHg4MCwweDA2LDB4ZTAsMHgwMSwweDM4LDB4MzcgfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4YzQsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDgwLDB4ZmIsMHgzMCwweDM2LDB4YzggfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4NGUsMHgwOSwweDAzLDB4ZmMsMHg4NCwweGZmLDB4MTAsMHgzYiwweGMwLDB4MGUsMHhjOCwweDA3LDB4MjIsMHg4MCwweGZmLDB4MjIgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4YzgsMHgzMywweDZlLDB4MDAsMHhmYiwweDgwLDB4M2YsMHgyMCwweDBkLDB4YzIsMHg1MywweGQ0LDB4ODAgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4Y2MsMHgzYSwweDNmLDB4MDAsMHgwYywweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4ODAsMHgwMCwweGVkLDB4NjAsMHhiZiwweDYwLDB4MjMsMHhmMCwweDBkLDB4ODIsMHgxMiwweDNjLDB4NjAsMHg4ZiwweDcwLDB4MjMgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4ZjAsMHgwOCwweDg4LDB4MDIsMHhhNSwweDQwLDB4YmYsMHhkMCwweDYzLDB4ZDYsMHgwYiwweDg4LDB4MDIsMHgyZSwweDBjLDB4YmIgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4ODAsMHgyZSwweDIwLDB4ODgsMHg4ZCwweDAyLDB4ZTYsMHg0MCwweDgwLDB4NjAsMHgyZSwweDMwLDB4MGEsMHhiMSwweDEyLDB4MjAgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDgwLDB4YTMsMHg0MCwweDJjLDB4YzQgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4NGEsMHgwMCwweDEyLDB4OGMsMHg4OCwweGEzLDB4MjIsMHgyMCwweGM0LDB4MGEsMHg5MCwweDQyLDB4MDQsMHhhOSwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4MjQsMHhjOCwweDhiLDB4ODAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmUsMHgwMSwweDA5LDB4MDgsMHgwMiwweDg0LDB4MDAgfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4ODAsMHgyMCwweDJjLDB4MTAsMHgwYSwweDMyLDB4NDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDQsMHhiMywweDAwLDB4MmEsMHhjMCwweDA4LDB4MDgsMHhhMiwweDhjLDB4MDAsMHg4YiwweDAwLDB4YTIgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4YzEsMHgxMCwweDk4LDB4NDIsMHhhNywweDAwLDB4YmIsMHgwMSwweDY2LDB4YzEsMHgwYiwweDgwLDB4MDIsMHhhYywweDA0LDB4YmIgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4MDAsMHgyZSwweDAwLDB4MGIsMHhiOCwweDEyLDB4ZTQsMHgwMiwweDg5LDB4MDgsMHgwZSwweDQwLDB4MGEsMHhiMCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4NGEsMHhiOCwweDIzLDB4ZWMsMHgxOCwweGViLDB4MDAsMHgzMiwweGMwLDB4MGUsMHgyYywweDEyLDB4MjIsMHgxMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4MjYsMHhjMCwweDRmLDB4MDAsMHg0MywweGVkLDB4MDAsMHhmYiwweDAwLDB4MmUsMHgyNCwweDBkLDB4ODAsMHgxMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4YzgsMHhkMCwweDdjLDB4MTIsMHgwZSwweGIwLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4MzUsMHhjMCwweDRmLDB4ZTAsMHgwMywweDdjLDB4MDgsMHhmZiwweDAxLDB4MTcgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4YzIsMHg0ZCwweGMwLDB4MDMsMHhmNCwweDA4LDB4ZjcsMHgwMCwweDNiLDB4YzAsMHgwNywweGMwLDB4MDMsMHg3YywweDgwLDB4ZmYgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4MjQsMHgzZiwweDQwLDB4MGMsMHhmMCwweDAxLDB4ZjQsMHgwNCwweGJjLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhmMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDA4LDB4ZmIsMHgwNCwweDNhLDB4YzggfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MGYsMHg5NCwweDAzLDB4ZWMsMHgxMCwweGYzLDB4MDAsMHgzNCwweGMwLDB4MGUsMHhiMCwweDAzLDB4NjEsMHgwNCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTMsMHgwMywweDJjLDB4ODAsMHhmYiwweDcyLDB4M2UsMHgwMiwweDBmLDB4OGEsMHgwMywweGU0LDB4MDIgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4YzksMHg4MCwweDJhLDB4NTAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4Y2EsMHg0NCwweDNjLDB4MDAsMHhiZiwweDAwLDB4MDMsMHhjMCwweDA4LDB4ODAsMHgwMywweDdjLDB4MDAsMHhiZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4ZTIsMHgwOCwweDkwLDB4NDMsMHg2MCwweDAwLDB4YmYsMHgwMCwweDM3LDB4YzAsMHgwOCwweDkwLDB4MDEsMHg2ZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4NDAsMHgyYywweDEwLDB4MGIsMHhiMCwweDQyLDB4ZDcsMHhjMCwweDg5LDB4MDAsMHgyYSwweDdjLDB4MGIsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUyLDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4ZDUgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4NGEsMHgwMCwweDAwLDB4MGMsMHgwNCwweDkzLDB4MDAsMHgwYywweGYwLDB4MGIsMHgwOSwweDAyLDB4MDgsMHgwMSwweGIzLDB4MjAgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MGMsMHgwYSwweDBlLDB4MDAsMHhiMywweDAwLDB4MjQsMHgzMCwweDA5LDB4MDAsMHgwMiwweGM2LDB4MTAgfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4ODAsMHg0MiwweDIwLDB4MDAsMHg4YiwweGIwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4MjIsMHgwMSwweDFlLDB4MDAsMHhiNywweDk0LDB4MjEsMHhlNCwweDQ4LDB4ZDksMHgxMiwweDVlLDB4NDAsMHhiNywweDkwLDB4MjkgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4ZTAsMHg4YiwweDY5LDB4MTIsMHhkNiwweDgwLDB4MzcsMHg4MiwweDJjLDB4ZTgsMHgwOCwweDRhLDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4YTQsMHgyZCwweDIwLDB4MGIsMHg3OSwweDAyLDB4ZDYsMHgwOCwweDg2LDB4OTAsMHgyOSwweGEwLDB4MGIsMHg3OSwweDAyLDB4ZDggfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDAwLDB4ZmIsMHhhMCwweDI4LDB4ZTggfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4MGUsMHgyYSwweDAyLDB4OGMsMHgwMCwweGQzLDB4MDAsMHg2NCwweGMwLDB4MGYsMHgwMCwweDQzLDB4MGUsMHhjNCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4NzgsMHhlYywweDBlLDB4MGEsMHg0MywweDBlLDB4MjAsMHg3MywweGUwLDB4M2MsMHgwMiwweDRmLDB4MDAsMHgwMywweGM0LDB4NDAgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4YmMsMHhjYywweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4YzIsMHgwYywweDIwLDB4MDMsMHg2YywweDUwLDB4ZjMsMHgwMCwweDM2LDB4YzQsMHgwZiwweDQwLDB4MDMsMHhmYywweDA4LDB4ZmYgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4MWEsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAxLDB4ZTQsMHgzMCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDYzLDB4ZDAgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDQwLDB4ZmIsMHgwMCwweGIyLDB4ZDggfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MGMsMHhiMCwweDAxLDB4MmQsMHgyMCwweGRiLDB4MDEsMHgzYSwweGM4LDB4OGMsMHgzOCwweDAzLDB4YTgsMHgwMCwweGZiLDB4NDggfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4M2UsMHhjOSwweDBmLDB4ODAsMHgwMywweGVjLDB4NDAsMHhmYiwweDAxLDB4M2UsMHgwMCwweDBmLDB4MDgsMHgwMywweGE0LDB4MDggfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4ZmEsMHg4MCwweGIyLDB4ODAsMHgwZiwweGIxLDB4MDIsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4NDgsMHgxOSwweDFjLDB4ODAsMHhiZiwweDMwLDB4MjEsMHhjYSwweDA4LDB4ZjAsMHgwYSwweDBjLDB4ODAsMHg4ZiwweDUwLDB4MjEgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4YzIsMHgwOCwweDcwLDB4NTAsMHg5YywweDAwLDB4YjcsMHgwMCwweDM5LDB4YzQsMHgwYiwweDQwLDB4MDIsMHg5YywweDA0LDB4YjcgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4MjAsMHgyNSwweDQwLDB4MGIsMHg3MCwweDAyLDB4MTQsMHg4MCwweGI2LDB4MDAsMHgyMSwweDgwLDB4MGIsMHhmOCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHhiMCwweDIxLDB4ZWMgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4NCwweDk3LDB4ODAsMHgwZCwweGUwLDB4MjgsMHhmOCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4OTAgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4MmQsMHhlNCwweDBiLDB4NjgsMHg4MiwweDVlLDB4ODAsMHhiNywweGEwLDB4MjksMHgyMCwweDBiLDB4NDgsMHgwMiwweDk2LDB4MDAgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4YjcsMHg4MCwweDIxLDB4ZTEsMHgwYiwweDdhLDB4MDIsMHg3MCwweDQwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4NDgsMHgwNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzgsMHgwMiwweDhjLDB4MDQsMHg4MywweDAwLDB4MjggfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4YzAsMHg4OCwweDM5LDB4MDIsMHg0YywweDQwLDB4YjMsMHgwNCwweDI4LDB4YzAsMHgxYiwweDEwLDB4MDIsMHg4YywweDAxLDB4YjMgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4MDQsMHgyNCwweDg4LDB4NGIsMHgzMSwweDAyLDB4MDQsMHgwMCwweGIzLDB4ODAsMHgyMCwweGYyLDB4MGIsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4MjQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDEsMHgzYSwweDgwLDB4OGMsMHhlZCwweDAzLDB4ZmIsMHgwNCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4NmMsMHgwMywweGZiLDB4YzgsMHhiZSwweGMyLDB4MWYsMHg4MCwweDBmLDB4ZTUsMHgwMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4ZmUsMHg0OCwweDMzLDB4ODAsMHg0ZiwweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2MsMHgwMCwweDBjLDB4ODEsMHg5MywweDYwLDB4MDAsMHhmOCwweDAxLDB4MzYgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MTAsMHgwZiwweDgwLDB4MDMsMHhhMCwweDIwLDB4ZjgsMHgwMCwweDJhLDB4MDEsMHg4ZiwweDg0LDB4MTMsMHhlMSwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4MTgsMHgzNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDE0LDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4ODAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjEsMHgwMCwweGFhLDB4NDAgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGUxLDB4MDAsMHgzOCwweDQwLDB4MWMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4M2EsMHg0MCwweDQ3LDB4OWEsMHg5MywweGEyLDB4ODAsMHhmOCwweDEwLDB4M2UsMHg0MCwweDBiLDB4OTQsMHgwMywweGU2LDB4NDAgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4ZjksMHhjMCwweDNlLDB4NjgsMHgwYiwweDEwLDB4MDMsMHgwMiwweDg0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4ODAsMHgwNCwweGU0LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDQsMHg4OSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjksMHg4MCwweDJlLDB4NDAsMHg0ZiwweDk0LDB4MDMsMHg2MSwweDEwLDB4ZTggfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4NDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4ZTYsMHgwNCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDQsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4MGEsMHgxMCwweDUyLDB4MDQsMHgwNCwweGE5LDB4MDQsMHgyYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE4LDB4MGQsMHhiOCwweDQwLDB4MmUsMHg0MCwweDA5LDB4OTQsMHgwMiwweGU1LDB4MDAgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4YjksMHgwNCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4MjAsMHhjOCwweDBhLDB4MTAsMHg0MiwweDA0LDB4OTAsMHg4MSwweDIwLDB4MDQgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4YzgsMHgwOCwweDMwLDB4MjYsMHhjNCwweDAwLDB4YjEsMHgyMCwweDJjLDB4NDgsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAxLDB4YjEgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4NDAsMHgyYywweDQwLDB4MGIsMHgxMiwweDgyLDB4YzQsMHgwMCwweGIxLDB4MmIsMHgyYywweDRhLDB4MGIsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHgyMSwweDQ4LDB4ZjgsMHg1MCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4NGUsMHg4NSwweDBiLDB4MjEsMHg0MCwweGE4LDB4NTIsMHgyYSwweDAwLDB4MDgsMHg4MCwweDIzLDB4ZTEsMHg0MCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4M2EsMHgxNCwweDBmLDB4YTAsMHg0MywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODIsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4ZjAsMHgyMCwweDNlLDB4ODgsMHg0ZiwweDgyLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4OTgsMHgxOSwweGU0LDB4NDAsMHhmOSwweDExLDB4MzQsMHg0NCwweDJkLDB4ZDAsMHgwMywweGU0LDB4NTAsMHg3OSwweDEwLDB4MzggfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4NDQsMHgyZiwweGQwLDB4MDMsMHhmNSwweDEwLDB4ZjksMHgxMCwweDNlLDB4NDUsMHgwNiwweDUwLDB4MDMsMHhlNSwweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMCwweGZkLDB4MjgsMHgzZiwweDQwLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDEsMHhlNiwweDAwLDB4ZDksMHg5MCwweDM3LDB4NjkgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4NGQsMHg5MCwweDIzLDB4NjcsMHg4MCwweGQ5LDB4ZTAsMHgzNywweDY4LDB4MGUsMHhkMCwweDA3LDB4YTQsMHgwMCwweDA1LDB4ODYgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4M2UsMHg2NiwweDBkLDB4NTAsMHgyMywweDI2LDB4MDAsMHhjOSwweDgyLDB4M2QsMHg0MCwweDBkLDB4ZDgsMHgwNywweDM2LDB4MDIgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NjAsMHgwYywweDljLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHg4OCwweGEyLDB4MjIsMHgxMCwweDI4LDB4OGEsMHg4MiwweDIzLDB4ODQsMHg4OCwweGEwLDB4MjIgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4MTQsMHg0OCwweDgwLDB4NDIsMHg4MiwweDAwLDB4ODgsMHg0MCwweDJlLDB4MzAsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4ZDggfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4OTAsMHgyNiwweDAwLDB4MDgsMHg4NCwweDBhLDB4MjEsMHgwMCwweGM4LDB4YTAsMHhhMiwweDE0LDB4MjgsMHg4YywweDAyLDB4MGUgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDIwLDB4OTEsMHg0MCwweDJjLDB4NDQgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4MTgsMHgxMCwweDAyLDB4ODUsMHgwNCwweGIxLDB4NDAsMHgwYywweDQwLDB4MGEsMHgxMCwweDA2LDB4ODQsMHgzMCwweDgxLDB4NDAgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4MmMsMHg0OCwweDU5LDB4MTAsMHgxYSwweDA0LDB4NjAsMHg4MSwweDA5LDB4MmUsMHg0MCwweDFiLDB4MTQsMHgwMiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4OTEsMHhlMCwweDIwLDB4NjAsMHgwOCwweDE2LDB4MDIsMHgwMCwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4MSwweDAwLDB4MmEsMHg0MSwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhhMSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4NDEsMHgwOCwweGIwLDB4ODIsMHgyNCwweDExLDB4OGIsMHgwMCwweDJlLDB4NDAsMHgxOCwweDkxLDB4MDIsMHhhMCwweDA0LDB4OTggfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4MjAsMHgyZSwweDU0LDB4MWIsMHg5MCwweDgyLDB4MmMsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQ0LDB4ODgsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4NGMsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGUsMHgxMCwweDAyLDB4YTQsMHhjMiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4M2UsMHg0MCwweDBkLDB4MTYsMHgxMywweDAxLDB4ODQsMHhjOCwweDIwLDB4M2MsMHg2MCwweDBmLDB4OTAsMHgxMiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4ZDksMHg0MCwweDMyLDB4NTAsMHgwYywweDkwLDB4MDMsMHgyOCwweDg0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDRmLDB4OTksMHg0YSwweDQ0LDB4MDAsMHg5OSwweDAwLDB4YjQgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MTMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlMywweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MDEsMHgzNiwweDQwLDB4MGMsMHg5OSwweDAzLDB4ZTQsMHgwMiwweGY5LDB4ODAsMHgzZSwweDYwLDB4NGYsMHg5MCwweDBiLDB4Y2EgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMCwweDNjLDB4MDAgfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4MWQsMHg4MCwweDAzLDB4MjAsMHgwMCwweGU4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4NCwweDgzLDB4ZTAsMHgxMCwweGU4LDB4MjAgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4MzIsMHgwMCwweDhlLDB4ODQsMHgwMywweDIxLDB4ODAsMHhjOCwweDAwLDB4M2EsMHgxOSwweDBmLDB4MDQsMHgwMywweGUwLDB4MjQgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4ZjAsMHgwMiwweDNjLDB4MDAsMHgwZiwweDgwLDB4MTMsMHg4YSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDIsMHg4YSwweDAxLDB4MGYsMHhhMiwweDY4LDB4YTAsMHgwMCwweDI4LDB4MDAsMHg4YSwweDAwLDB4NzcgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4ODAsMHg2OCwweGUwLDB4MTIsMHhlOCwweDAwLDB4ZGUsMHgwMCwweDM2LDB4ODEsMHgwOCwweGUwLDB4MDMsMHg3YSwweDA4LDB4YWUgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4YzQsMHgyZiwweDgwLDB4MDgsMHhlZCwweDAyLDB4ZmEsMHgwMCwweGJlLDB4YTAsMHgzYiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MGEgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4ODUsMHg0YywweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4ODgsMHhiMCwweDAyLDB4MGMsMHgxNCwweGEzLDB4MDQsMHgyMCwweGM0LDB4MTgsMHgzOCwweDAyLDB4ZWMsMHgxMCwweDkzLDB4NTQgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDRlLDB4MDAsMHg4MywweDQ5LDB4NjgsMHhjMCwweDAyLDB4MzksMHg0MiwweGNlLDB4NDAgfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4YjMsMHgwMCwweDJjLDB4ZTYsMHgwYiwweGIwLDB4MDIsMHg4YiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MDgsMHg4NywweDIwLDB4MmMsMHg4MCwweDE4LDB4ZjIsMHgyMiwweDFjLDB4MDAsMHg4NywweDEwLDB4MjEgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4YzAsMHgwOCwweDcwLDB4ODIsMHhkYywweDgwLDB4OTYsMHg4MCwweDJkLDB4YzAsMHgwYSwweDQwLDB4MDIsMHg3ZCwweDQwLDB4MjcgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4NjQsMHg2ZCwweGQwLDB4NDgsMHg2MCwweDQyLDB4ZDgsMHgwNSwweGI2LDB4MDQsMHgyOSwweGMwLDB4NGIsMHg3MiwweDAyLDB4MjggfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDg4LDB4ZDcsMHhlMCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4MDgsMHg3YywweDQyLDB4M2UsMHgwMCwweGUzLDB4ODIsMHgyMCwweGUwLDB4MGMsMHg2OCwweDAzLDB4ZGYsMHgwNCwweGQ3LDB4ODAgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4M2IsMHhlMCwweDRlLDB4NDgsMHgwYSwweDVlLDB4ODAsMHhjNywweGMyLDB4MTksMHhlMCwweDBlLDB4NzgsMHgwMywweGQ2LDB4MDggfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDAsMHhmYiwweDQwLDB4N2UsMHg4MCwweDBlLDB4MzYsMHg4MywweGVkLDB4NDAsMHhkYiwweDYwLDB4M2UgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4ODAsMHgwZiwweGEwLDB4MDMsMHhlZCwweDI4LDB4ZGEsMHgwMCwweDMyLDB4YzQsMHgwYywweGIwLDB4MGIsMHhjYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGUsMHg4MCwweDEzLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMSwweDUzLDB4YzIgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHhjMCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MGMsMHhmOSwweDAzLDB4N2YsMHgwNCwweGNmLDB4ZDAsMHgzZiwweGU0LDB4MGYsMHhiOCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4OTQgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhmMywweDgwLDB4M2IsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4NDggfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4ZWQsMHg4MCwweDMzLDB4MjQsMHgwNCwweGY4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4ODAsMHhiZiwweDA0LDB4MjEsMHgyOCwweDA4LDB4ZjgsMHgwMiwweDFlLDB4YzAsMHhjZiwweDkwLDB4MjEgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4NGMsMHgwYiwweDVhLDB4NDIsMHhkZSwweDAwLDB4YjcsMHg4MCwweDJjLDB4ZTgsMHgwYiwweDA0LDB4MDIsMHgxYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4YTAsMHgzNSwweDEwLDB4OGYsMHg3MSwweDEzLDB4ZGUsMHhjMCwweDg0LDB4MTAsMHgyMSwweDgwLDB4MGQsMHg3MSwweDAyLDB4MmEgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4NDAsMHg5YywweDA4LDB4YjcsMHgwMCwweDI1LDB4YzggfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4MDgsMHg3MSwweDAyLDB4Y2MsMHg4MCwweDk3LDB4MDAsMHgyOSwweGMwLDB4OGIsMHg3MiwweDA2LDB4ZGMsMHgwOCwweGI1LDB4MDAgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4MmQsMHhjOCwweDBiLDB4NDAsMHgwMiwweDFjLDB4NDAsMHhiZiwweDEwLDB4MjEsMHhjMCwweDBiLDB4NzQsMHgwMiwweGQ0LDB4ODAgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4YTcsMHg0MCwweDIxLDB4NDEsMHgwOCwweDcwLDB4MDIsMHgwNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDA4LDB4MzQsMHg4MiwweGFjLDB4MTEsMHg4MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MDAsMHg0YiwweDE4LDB4MjYsMHhjZiwweDIwLDB4YjEsMHgwNiwweDJjLDB4YzEsMHgwYiwweDMyLDB4MDIsMHgwZSwweDA4LDB4YjMgfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4ODgsMHgyNCwweDMyLDB4MGEsMHgzMCwweDEyLDB4ODQsMHgwOCwweDgwLDB4MDAsMHhhMCwweDM0LDB4MjgsMHgzMCwweDAyLDB4MTggfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHgwMCwweGI2LDB4NDAgfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4MmMsMHhmNCwweDQzLDB4ZmMsMHgwMSwweGRmLDB4MDAsMHgzYSwweDAwLDB4MDMsMHg5MiwweDAzLDB4ZmYsMHg4OCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4MmYsMHhjMCwweDFiLDB4MGUsMHg0YiwweDJlLDB4OTAsMHhmYiwweGUwLDB4MzAsMHgzMiwweDBiLDB4OTgsMHgwMiwweGVjLDB4MDggfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4NmIsMHhjMCwweDMyLDB4YzAsMHgwOCwweGYwLDB4MDksMHgzZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMywweDAwLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4MTAsMHgwZiwweGI0LDB4MDMsMHhlYywweDAwLDB4ZjAsMHgwMCwweDNjLDB4YzAsMHgwZiwweDgwLDB4MGIsMHhhZCwweDIwLDB4ZmIgfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4NDAsMHgzZSwweDEwLDB4MDcsMHhhOCwweDYzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDcyLDB4MDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZGMsMHgwMCwweDhmLDB4MDAgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4MzMsMHhjMSwweDBjLDB4YzAsMHgwMywweGJlLDB4MDAsMHhmZiwweDkwLDB4M2IsMHgyOCwweDBlLDB4NTksMHgwMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4N2IsMHgwMCwweDMyLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4YzEsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4NjIsMHhhMCwweDBmLDB4YjAsMHgwMiwweGVjLDB4MDksMHg4YiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4MzAsMHgwYiwweGE4LDB4MDMsMHhhYywweDAwLDB4ZmEsMHhjMSwweDIyLDB4YzEsMHgwOCwweDhjLDB4MDIsMHgyYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4ODEsMHgyYSwweDAwLDB4MGQsMHg4OCwweGIyLDB4MjIsMHgwMCwweGIzLDB4YzAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDQyLDB4NjEgfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHg2YywweDAwLDB4YmIsMHgwMSwweDIyLDB4NjIgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwNCwweDhiLDB4MDAsMHgyZSwweGEyLDB4NDksMHg4OCwweDI2LDB4ZWMsMHgwMCwweGE4LDB4ODAgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4MjIsMHhjMCwweDI4LDB4ODIsMHgwYSwweGFjLDB4YTAsMHhiYiwweDA4LDB4MjIsMHhjMCwweDA4LDB4ODAsMHgwYSwweDI4LDB4ODQgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4YjksMHhjMCwweGEyLDB4MDAsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDEwLDB4MjAsMHg0OCwweDBhLDB4MzIsMHgwMiwweGNjLDB4ODAsMHg4MywweDAxLDB4MjQgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4MDAsMHgwYiwweDAyLDB4MDYsMHg4YywweDYwLDB4YTAsMHgyMCwweDIwLDB4YzgsMHgwOCwweDAxLDB4MDIsMHgwYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4MDAsMHgyOCwweDAwLDB4MDksMHgyMCwweDAyLDB4MDgsMHg4MCwweGIxLDB4MDAsMHhhMCwweDgwLDB4MGIsMHgzMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHg2YywweDAwLDB4ZmYsMHgwMCwweGEyLDB4MGUgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4MGIsMHhmMSwweDAzLDB4ZmMsMHgwOCwweGNmLDB4MjAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZmMsMHg4NCwweGE4LDB4MjAgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4YjIsMHhjOCwweDhjLDB4ODAsMHgwMywweGFjLDB4NDQsMHhmYiwweDcwLDB4M2EsMHhjMCwweDBlLDB4OTAsMHgwMywweDJjLDB4YTQgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4ZmIsMHgwMCwweGIyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDI2LDB4M2UsMHgwMCwweDBmLDB4YjYsMHgxMywweGVkLDB4MDAsMHhmYiwweDEwLDB4M2YgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4MDAsMHgwZiwweGMxLDB4MTMsMHhhYywweDgwLDB4ZjgsMHgxMiwweDNlLDB4YzYsMHg0ZiwweDQyLDB4NDMsMHhmYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MzEsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHhiZiwweGMwLDB4OGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDQwLDB4ZmMsMHg4MCwweDM2LDB4YzggfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MGYsMHgwOSwweDAzLDB4YzIsMHgwMCwweGY4LDB4YzAsMHgzMywweGNjLDB4MmMsMHg0YywweDAzLDB4NjMsMHg5MCwweGUwLDB4OTAgfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4M2EsMHhjMCwweDBkLDB4NTAsMHgwYiwweDNjLDB4MDQsMHhkZiwweDY0LDB4M2YsMHhjOCwweDhkLDB4ZjEsMHg0MywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4ZDUsMHgwMCwweDMzLDB4YzAsMHg0NSwweGYyLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4ODAsMHgxMCwweGVkLDB4ODAsMHhiYSwweDAyLDB4MjEsMHhkZSwweDhiLDB4ODIsMHgyMiwweGUwLDB4MjAsMHhiMCwweDAwLDB4MmIgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4ZWMsMHgwOSwweDgwLDB4MDIsMHhlMywweDQwLDB4YmEsMHgyMCwweDJmLDB4ZGMsMHgwOCwweDk4LDB4MTIsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4NTEsMHgyYSwweGQwLDB4MDgsMHg3MiwweDIyLDB4MmUsMHgwMCwweDhkLDB4ODAsMHgyMSwweGQwLDB4MDgsMHhiNiwweDgyLDB4MjAgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YjksMHgyOCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4NGEsMHgxMiwweDEyLDB4ODgsMHg4NSwweGE4LDB4MjAsMHgyMCwweGMwLDB4MGIsMHgyMiwweDAyLDB4YzAsMHg5MSwweGExLDB4MDAgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4MjgsMHhjMiwweDBiLDB4MDAsMHgxMiwweDhjLDB4NDAsMHhhMywweDIwLDB4MjAsMHhjNCwweDBiLDB4MzAsMHgwYSwweDBjLDB4MTEgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4OTksMHgwMCwweDIwLDB4YzUsMHgwOSwweDAxLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhjMCwweDBiLDB4ODgsMHgwMiwweGVlLDB4MDEsMHhiOCwweGMxLDB4MmEgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4YzAsMHgxYiwweGE4LDB4MDYsMHhlMiwweDAwLDB4YmIsMHg4MCwweDJlLDB4YzAsMHg4YSwweDgwLDB4MDIsMHhhYywweDAwLDB4YWIgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4MmMsMHgwMCwweDk5LDB4MDAsMHgyNCwweGMwLDB4MDgsMHg4MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YjAsMHg4MCwweDM2LDB4YzAgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4MGUsMHhhOCwweDEzLDB4ZTIsMHg4NSwweGYzLDB4YzAsMHgzMiwweGMwLDB4MGUsMHg5YywweDIzLDB4ZTcsMHgyNCwweGU4LDB4ODIgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4M2EsMHhjMSwweDBmLDB4OTQsMHgwMywweGFjLDB4MDIsMHhlYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDJlLDB4MTAgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4NTEsMHgwMCwweGIyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZDAsMHgwMywweGYwLDB4MDQsMHhmZCwweDA0LDB4M2YgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4YzAsMHg0YywweGMwLDB4MDMsMHhmMCwweDEwLDB4ZmMsMHgwMCwweDFmLDB4YzAsMHgwZCwweGQxLDB4MjMsMHgxYywweDAwLDB4YzcgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGQsMHhmMCwweDgzLDB4ZmUsMHg0NCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHg3NCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwMSwweGJhLDB4YzEgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4YTEsMHgwOCwweGZhLDB4MDAsMHgzMCwweGM4LDB4OGYsMHg5NCwweDAzLDB4MjUsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4MDQsMHg4MywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBmLDB4NzEsMHgwYiwweDJjLDB4NDAgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4ZmQsMHgwOCwweDM3LDB4YzAsMHg0ZSwweDkxLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHhiOSwweDAwLDB4MjMsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhjOCwweDAwLDB4MzcgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4ZjAsMHgwYiwweDgwLDB4MDEsMHg2NCwweDAwLDB4NDksMHgwMiwweDMzLDB4YzAsMHg4NCwweDljLDB4MDMsMHgzYywweDAwLDB4YmYgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4MDIsMHgwZiwweGQwLDB4MDgsMHhmNCwweDAyLDB4MGUsMHgxMCwweGJkLDB4ODAsMHgzMywweGUwLDB4MDgsMHg5MCwweDBhLDB4MzIgfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjAsMHgwNiwweDIwLDB4YzAgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweGEwLDB4MDAsMHgyMCwweGYwLDB4MGIsMHgwMCwweDIyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MjgsMHhjMCwweDAyLDB4M2QsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiwweDlhLDB4MzgsMHgwMiwweDA2LDB4MDQgfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4YjEsMHgxMiwweDIwLDB4ZTAsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNiwweDgwLDB4MjEsMHhlMCwweDI4LDB4ZWEsMHgwMiwweDM2LDB4ODAsMHg4NiwweDkwLDB4NjUgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4ZTAsMHgxYiwweGRhLDB4MDYsMHg1ZSwweDAxLDB4OWUsMHg4NCwweDI1LDB4ZWMsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OSwweDRhLDB4MTYsMHg0MCwweGJkLDB4ODAsMHgyNSwweGUwLDB4MDgsMHgzOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZmIsMHgwMCwweDI4LDB4ZTAgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4MDgsMHgxOCwweDAyLDB4OGEsMHg4OCwweGExLDB4YTAsMHgyMCwweGMyLDB4MWYsMHgyYSwweDIzLDB4ZTYsMHhjOCwweGYwLDB4YzAgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4M2EsMHhlZCwweDRlLDB4MzQsMHgwMiwweDhjLDB4MDgsMHhmMywweDgxLDB4MWUsMHhjMCwweDBlLDB4MzAsMHgwMywweDBlLDB4YzAgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4ZjEsMHgwMCwweGIwLDB4Y2EsMHgwZSwweDIxLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDgsMHhmZSwweDEwLDB4M2YsMHhkMiwweDBmLDB4ZTAsMHgwMywweGVjLDB4MDQsMHhmZiwweDE0LDB4N2UgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4YzAsMHgwZiwweGIxLDB4MjMsMHhmYywweDAxLDB4ZWUsMHgwMCwweDNhLDB4YzQsMHgwZCwweGIwLDB4MTMsMHhiYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDgzLDB4ZmMsMHgwYywweGZkLDB4MTAsMHgzYiwweGMwLDB4MmYsMHhlMSwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZjAsMHg4MCwweDMyLDB4ZDAgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MGMsMHhhMCwweDAzLDB4NmMsMHgwMCwweGYzLDB4ODAsMHgzMiwweGRhLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4M2UsMHhjYywweDRjLDB4OTgsMHgxMywweDJjLDB4MTAsMHhmYiwweDA0LDB4M2UsMHhjNCwweDBjLDB4ZjIsMHg4MywweGE2LDB4MTAgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4ZGQsMHgyMCwweDNmLDB4ZDEsMHgwYywweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4ODAsMHhiNywweDAwLDB4MjEsMHhjOCwweDBjLDB4NzAsMHgwMiwweGRjLDB4MDgsMHhiNywweDAwLDB4MjEgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4YzgsMHgwZSwweDcwLDB4MjIsMHhkOCwweDAwLDB4YjcsMHgwMCwweDJjLDB4YzIsMHgwYSwweDcwLDB4MGEsMHgxZiwweDA4LDB4YjcgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4MDAsMHgzOSwweGM4LDB4MGEsMHg3MCwweDAyLDB4MTQsMHgwMCwweGM1LDB4NjksMHgyYywweGNhLDB4MmEsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YmYsMHg4MSwweDY0LDB4ZTEgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4NWEsMHgwMSwweGJmLDB4ODAsMHgyMSwweGVjLDB4NGIsMHg3OCwweDQ2LDB4OWYsMHgwOCwweDM3LDB4ODAgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4MmQsMHhlOCwweDg4LDB4MTgsMHgwMiwweDFlLDB4ODEsMHhiNywweGIwLDB4MmQsMHhlMCwweDA5LDB4N2EsMHgwMiwweDhlLDB4MDAgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4OTUsMHhhMCwweDJkLDB4ZTQsMHgwOCwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDA4LDB4YjYsMHgwMiwweGNjLDB4MDAsMHhiMywweDAxLDB4MjAgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4YzAsMHg4YSwweGIwLDB4ODYsMHhjZiwweDAwLDB4YmIsMHgxMCwweDZjLDB4YzEsMHgwYSwweDM4LDB4MDIsMHgwYywweDAxLDB4YjMgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4MDIsMHgyOCwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDgxLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiNCwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg0MCwweGI2LDB4ODAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MGMsMHhlNCwweDAzLDB4NzgsMHg4MCwweGZlLDB4NzQsMHgzMiwweDgwLDB4MGIsMHhlNiwweDAzLDB4ZjksMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMywweDI4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCwweDRkLDB4YTAsMHgwMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4ZGEsMHgwNCwweDNlLDB4ODAsMHgwYywweGU0LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDJlLDB4ODAsMHgyMywweGUwLDB4MDAsMHhmOCwweDAxLDB4M2MgfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjgsMHgyMCwweDNlLDB4MDEsMHg4ZiwweDg5LDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4MGUsMHg4MCwweDAxLDB4ZTAsMHgwMCwweGU4LDB4NDAsMHg3ZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMSwweDdlLDB4NDAgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MmMsMHg5MCwweDBiLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDY4LDB4MDUsMHg5MCwweDEzLDB4YTQsMHgwNCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4MzIsMHg0MSwweDBlLDB4OTEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHg2OCwweDkwLDB4NDMsMHg4MiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4NzAsMHg4OCwweDkwLDB4MDMsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk4LDB4MTIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjYsMHgwMCwweGI5LDB4ODAsMHhhMiwweDQwLDB4MDgsMHg5MCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHgwNCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMSwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4ZTAsMHg0MCwweDBhLDB4OTAsMHg4MiwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmMsMHg0OCwweDBhLDB4OTgsMHgwMiwweDI0LDB4ODAgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MzksMHgyMCwweDIyLDB4NDAsMHgyYSwweDkwLDB4MDIsMHg4NiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgxMiwweDA0LDB4MTAsMHhiMSwweDA0LDB4MmMgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4ZDgsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDIwLDB4NDgsMHgwOCwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4MjIsMHgyYywweDUwLDB4OGEsMHgzMiwweDgyLDB4MDUsMHhhMCwweGIxLDB4MmEsMHgyMCwweDRhLDB4MGEsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDUwLDB4YzgsMHg1MiwweDJlLDB4MTQgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4NTAsMHgzYSwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4MzIsMHgxNCwweDBlLDB4ODAsMHgwMywweGExLDB4NDAsMHhmOCwweDUwLDB4M2MsMHg4MCwweDBlLDB4MDIsMHgwMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4ZmEsMHgyMCwweDMyLDB4MDgsMHgwZSwweDgyLDB4MTMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NTAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4NDQsMHg4ZCwweGQwLDB4MDEsMHhiZCwweDAwLDB4ZmQsMHgwMiwweDNlLDB4NDQsMHgwZiwweGQ0LDB4MDAsMHhlNCwweDQ4LDB4NzkgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4MTQsMHgzZSwweDUwLDB4MGYsMHg5MiwweGEyLDB4ZjQsMHgwOCwweGZkLDB4MDAsMHgzZSwweDRhLDB4MGQsMHhkMiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZjksMHgxMCwweDNhLDB4NmUgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MGMsMHhiMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4NDQsMHgzYiwweDYxLDB4OGUsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4NDAgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4MzIsMHg2NiwweDBmLDB4ZGEsMHgwYiwweGE3LDB4MjgsMHhjOSwweGUwLDB4M2YsMHg2OCwweDBjLDB4ZGEsMHg4MywweGIzLDB4MjAgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4ZWQsMHhhMCwweDMzLDB4NzksMHgwOCwweGQ4LDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDAsMHhiOCwweGEwLDB4MmUsMHgzOCwweDA4LDB4OGEsMHgwMiwweGUyLDB4ODgsMHhlOCwweDgxLDB4MmUgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4MTQsMHgwOSwweDBhLDB4MDMsMHhlMiwweDgwLDB4YjgsMHg4MCwweDMyLDB4MzAsMHgwYiwweDg1LDB4MDIsMHgyMSwweDAxLDB4YTggfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4ZjQsMHgzOCwweDJhLDB4MDgsMHgwZSwweGNhLDB4MjMsMHg5MCwweGM4LDB4NTQsMHgzNCwweDM4LDB4MDgsMHg4YSwweDkyLDB4MGUgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHgwMCwweDI4LDB4NDAgfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4MTksMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgyMCwweGExLDB4YTIgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4NmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweDg0LDB4MDgsMHg4MSwweDIwLDB4MmMsMHg1MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDQgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4YjEsMHgwMCwweDI0LDB4NTgsMHgwOCwweDNjLDB4MDIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHhiOSwweDIwLDB4MmMsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhhOSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHgwMSwweDJhLDB4NDAsMHgwYiwweDk0LDB4MDIsMHgyNCwweDAwLDB4YTkgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDEsMHgxMCwweDUyLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyNiwweDQwLDB4MDAsMHg5OCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg2MSwweDNhLDB4NDAgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4MGQsMHg5MCwweDgzLDB4ZTUsMHgyMCwweGY5LDB4MDEsMHgzYSwweDQwLDB4MmUsMHg5MCwweDAyLDB4ZTQsMHg0MCwweGU5LDB4MDEgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4OWUsMHg0MCwweDBmLDB4OTQsMHgwMywweGE0LDB4MDAsMHg4OSwweDAwLDB4M2UsMHg0MCwweDJkLDB4OTAsMHgwMiwweGU2LDB4MDggfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4YjksMHgwMSwweDM2LDB4NDAsMHgyYywweDkwLDB4MDEsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDJlLDB4OTAsMHgwMywweGU0LDB4ODAsMHhmOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4NDAsMHgwYywweDljLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHgwZiwweDEwLDB4NDMsMHg4NCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ODAsMHg4MCwweGY5LDB4MDAsMHgzYywweDQwLDB4MmYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDEgfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4MGQsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGU4LDB4NDAsMHgzZSwweDA4LDB4MGMsMHg4MCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MzIsMHgwMCwweDhmLDB4ODAsMHgwMywweGEwLDB4MTAsMHhmOCwweDAwLDB4MzIsMHgwNCwweDBlLDB4ODAsMHg4MywweDYwLDB4MDAgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDAxLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgyNCwweGU4LDB4MDAsMHgwYSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxYSwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDE2LDB4ODAsMHgwYiwweGUwLDB4MDMsMHgyOCwweDA4LDB4ZWEgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MDAsMHgzMywweDkwLDB4MDgsMHhlYywweDFiLDB4MjIsMHg4MCwweGM2LDB4MTQsMHgyZiwweDkxLDB4MDgsMHhhMCwweDQzLDB4NGEgfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4MDksMHgzMCwweDEyLDB4Y2MsMHgwNCwweGEzLDB4MDQsMHg2YywweGMwLDB4MDksMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4MmMsMHhjMCwweDEzLDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4ZTYsMHhiOCwweDBhLDB4MzgsMHgwMiwweDQ0LDB4MDggfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4ODIsMHg1MCwweDJjLDB4ZDIsMHgzYSwweDMwLDB4MDIsMHg4YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4ODAsMHg5NywweGI0LDB4MjEsMHhjNCwweDQ5LDB4NzEsMHgwMiwweGRlLDB4ODEsMHg4NywweDIxLDB4MmQgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4ZDAsMHgwYiwweDdiLDB4MDIsMHgxYywweDAxLDB4YmYsMHgyMCwweDI5LDB4YzQsMHgwYiwweDMwLDB4MDIsMHg1YywweDAwLDB4YTcgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4YTEsMHgyMSwweGMwLDB4NGEsMHg3MCwweDhhLDB4MGMsMHg4MSwweDg0LDB4MDAsMHgyZCwweGQwLDB4MGEsMHg1MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgyLDB4ZGYsMHhhMCwweDM0LDB4ZWMgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4MGQsMHg3OSwweDAyLDB4ZmUsMHg4MCwweGU3LDB4ZTgsMHgyZiwweGEwLDB4MDksMHg3YSwweDAyLDB4OWUsMHgwMCwweGY3LDB4YTIgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4MjUsMHhlYSwweDBiLDB4NDgsMHgwMywweDllLDB4MDQsMHhmZiwweGMwLDB4NjUsMHhlNCwweDBlLDB4NjgsMHgwMywweDVmLDB4MDAgfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4ZTQsMHg4MCwweDNkLDB4ZTAsMHgwZSwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDgsMHhlYiwweDA1LDB4M2UsMHhkOSwweDBlLDB4YjIsMHgwMywweGVjLDB4MDAsMHhmYiwweDYwLDB4M2UgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4YzAsMHgwZSwweGIyLDB4ODMsMHhhYywweDAwLDB4ZjMsMHg1MCwweGE2LDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4ODAsMHgzZiwweGQ4LDB4MGQsMHhhMCwweDAzLDB4ZWMsMHgwYSwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGQsMHg5MCwweDAzLDB4NDIgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4YmIsMHg5MCwweDNlLDB4ZTAgfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgzOSwweDAzLDB4OWUsMHgyMCwweGNmLDB4ODIsMHg3NywweGUwLDB4MWYsMHhmOCwweDAzLDB4ZWUsMHgwMCwweGZmLDB4YzAgfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4M2YsMHhlNSwweDBkLDB4ZjksMHgwMywweGVlLDB4MDAsMHhmYiwweDkwLDB4MzcsMHhhMCwweDA4LDB4ZjgsMHgwZiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4Y2MsMHg5NCwweDMzLDB4NjAsMHgwZCwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNywweDkwLDB4MmYsMHhlNCwweDA4LDB4N2EsMHgwMiwweDFlLDB4MDAsMHg4ZiwweDEyLDB4MjUgfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4ZDgsMHgwYiwweGJiLDB4MDIsMHgxZSwweDAwLDB4YjcsMHgwMCwweDJkLDB4ZTgsMHgwOCwweDdkLDB4ODIsMHhkZSwweDQwLDB4YmIgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4YTAsMHgyNywweDkwLDB4MGEsMHg3NiwweDAyLDB4NWMsMHg4MCwweDg1LDB4MDAsMHgzNywweGM0LDB4NGQsMHg3MSwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgyMCwweDJkLDB4YzAgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4MjksMHhmMiwweDIyLDB4YmMsMHg4MCwweDk3LDB4MDAsMHgyNSwweDQxLDB4MGIsMHg3MCwweDEyLDB4OWMsMHgwMCwweGI3LDB4MDggfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MjksMHhjMCwweDA4LDB4NDIsMHgxMiwweGRjLDB4NDAsMHhiNywweDAwLDB4MjksMHhjMCwweDA5LDB4NjAsMHgyMiwweGRjLDB4MTAgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4ODAsMHgwMCwweDIxLDB4NDAsMHgwOSwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweGMwLDB4MmUsMHhjMCwweDA4LDB4MzQsMHg4MiwweDJkLDB4MDAsMHg5MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHgwZiwweDgwLDB4MTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDM0LDB4YTIsMHhlYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MGIsMHgwMCwweDAyLDB4Y2MsMHgwMCwweDgxLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzMCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHhlMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4MGMsMHhmNCwweDgzLDB4YmQsMHgwMCwweGRmLDB4MDgsMHgzNiwweDQwLDB4MGIsMHg3NSwweDQyLDB4ZmMsMHgyMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4M2IsMHhjMCwweDJjLDB4M2MsMHgwMywweGZjLDB4MDAsMHhiZiwweDAwLDB4YmUsMHhjMCwweDhkLDB4OTAsMHgwYiwweGFjLDB4MDIgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4Y2EsMHgwMCwweDIyLDB4ODAsMHgwZCwweGIwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhlYiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4MTAsMHgwZiwweGIwLDB4MjMsMHhhYywweDAxLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgzYywweDg0LDB4MDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGUsMHg5NCwweDBiLDB4MmMsMHgwMCwweGY5LDB4NDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAyLDB4Y2YsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4MGQsMHhmMCwweDBiLDB4M2MsMHgyMCwweGNmLDB4MDAsMHgzZCwweDAwLDB4MGUsMHhmMCwweDA3LDB4OWMsMHgwMSwweGNmLDB4MDIgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YzQsMHgwMywweDNjLDB4MDAsMHhjZiwweDAwLDB4MGYsMHhjMCwweDBlLDB4NDQsMHgwMywweDFmLDB4MDIgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4Y2MsMHgwMCwweDNmLDB4ODAsMHgyYywweDcwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDAyLDB4MmUsMHhjMCwweDBkLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAwLDB4MDYgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4MjAsMHgwOCwweGIwLDB4MDMsMHhmYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwZiwweDgwLDB4MDYsMHhiYywweDAwLDB4YWIgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4MDQsMHgzYSwweGYwLDB4MGMsMHg4OCwweDAyLDB4MmMsMHgwMCwweGM5LDB4ODAsMHgzYSwweDkyLDB4MDgsMHg5MCwweDBhLDB4YTAgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweDYwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4NmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHg5YiwweDAwLDB4NGMsMHhlMCwweDBhLDB4OTAsMHgyMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4OGEsMHhjMiwweDJjLDB4NDAsMHgwOCwweGIwLDB4NDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDBkLDB4MmMsMHhjNiwweDA5LDB4MzEsMHgwMiwweDBkLDB4ODEsMHhhMywweDExLDB4MjQgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4MDAsMHg4YSwweGIxLDB4ZTIsMHg0YywweDgwLDB4YTMsMHgwMCwweDJjLDB4Y2MsMHgwYiwweDAyLDB4MDIsMHg4YywweDgwLDB4YTMgfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4NDgsMHgwOCwweGMwLDB4MDgsMHgwMCwweDBhLDB4MGQsMHgwMCwweDgxLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2IsMHgyMCwweDJmLDB4YzggfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4OGQsMHhmNiwweDEzLDB4MmQsMHhiMCwweDhmLDB4MDAsMHgzNiwweDQwLDB4MGYsMHhmMCwweDAyLDB4YWQsMHhhOCwweDhmLDB4MTAgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4M2YsMHhjYSwweDBiLDB4ODAsMHg5MiwweDJjLDB4MTAsMHhkYiwweDQwLDB4M2YsMHhjMCwweDBlLDB4MDAsMHgwMywweDJkLDB4MDQgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4YzgsMHgwMiwweDNlLDB4NDAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjOCwweDBlLDB4ZjEsMHgwMywweGVjLDB4ODQsMHhmZiwweDIwLDB4MzcgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4MDAsMHgwZCwweGIyLDB4MDMsMHhiYywweGEwLDB4ZmYsMHgwMCwweDNlLDB4YzksMHgwZSwweDgwLDB4MDMsMHhmZCwweDExLDB4ZmYgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGUsMHhjMCwweDAzLDB4ZmMsMHg4MCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDkwLDB4Y2MsMHg5MiwweDNiLDB4YzggfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4MGQsMHhmMCwweDgzLDB4NzMsMHgxMCwweGZmLDB4MjgsMHgzNywweGNhLDB4NGYsMHhiMiwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MjAgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4YjMsMHhjNCwweDBkLDB4NjgsMHg0MywweGZlLDB4MTQsMHhjYiwweDg0LDB4MzMsMHhlMCwweDBkLDB4NzgsMHgwMywweGJlLDB4MDAgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4ZmYsMHg4MCwweDM3LDB4YTAsMHgwYywweGYzLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4ODAsMHgwMCwweGZjLDB4NDgsMHg4MiwweDIxLDB4MDMsMHhmNCwweDBmLDB4ZjYsMHg0MiwweDIwLDB4MDQsMHg4YSwweDYwLDB4MmIgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4ZGEsMHgwYiwweGY5LDB4MDIsMHgzZiwweDA0LDB4OGYsMHg1MiwweDIzLDB4ZDUsMHg0ZCwweDg4LDB4MDIsMHhhZSwweDAwLDB4ZGIgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwNCwweGI4LDB4MDAsMHgyMiwweDYwLDB4MGQsMHg3NCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweGEwLDB4ODAsMHgwMSwweDA4LDB4YzAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4NGIsMHgzMCwweDgyLDB4NDIsMHg5MCwweGEzLDB4MDgsMHgyYywweGM4LDB4MWEsMHgzMCwweDIyLDB4OGQsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4MjQsMHhjOCwweDA5LDB4YTAsMHgxMiwweDBjLDB4MDQsMHhhYiwweDAwLDB4NjIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4YjMsMHgwMCwweDI4LDB4ODAsMHgwOCwweDM2LDB4MDYsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDBhLDB4MzAsMHgxYSwweDAwLDB4MTEsMHg4MiwweDAwLDB4MGEgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHgwOSwweDkxLDB4MDIsMHhlYywweDIwLDB4YmIgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4MjgsMHg2NiwweGMwLDB4MDgsMHg4MCwweDAyLDB4NjAsMHgwMCwweGI4LDB4MDAsMHgyYSwweDQwLDB4ODEsMHhiMCwweDA2LDB4ZjggfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4YzgsMHgwNCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4ODksMHhiMCwweDAzLDB4NjgsMHgwMCwweGU5LDB4YzEsMHgxZSwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4MDAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4MzYsMHhjMSwweDBkLDB4MDAsMHgyMywweDBlLDB4MDAsMHhlYiwweDgwLDB4MzIsMHhjOCwweGNkLDB4MzAsMHgzMiwweGVjLDB4MDggfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4ODAsMHgwYywweGIwLDB4MDYsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHg3YywweDAwLDB4M2YsMHhjMCwweDBiLDB4YjAsMHg0MywweGZkLDB4MDAsMHhiZSwweGM0LDB4MzcgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4YzAsMHgxZiwweGYwLDB4MDMsMHg1YywweDAwLDB4ZmYsMHgwMSwweDNiLDB4YzAsMHgwZSwweGM4LDB4MDMsMHhiZiwweDIwLDB4ZGYgfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4MDAsMHgzZiwweGQwLDB4MGYsMHhjMCwweDEzLDB4YjAsMHgwMCwweDdjLDB4MDAsMHhiNywweDQwLDB4MGYsMHhmMCwweDFiLDB4YjAgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDBjLDB4ZDgsMHg0MSwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MGUsMHhiMCwweDA3LDB4YTgsMHgwMSwweDY5LDB4NDAsMHhiMiwweGMwLDB4OGQsMHhiMCwweGEzLDB4ZWMsMHgwOCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4MzIsMHhjMCwweDBmLDB4ODAsMHgwMywweGVkLDB4MDAsMHhmYiwweDQ4LDB4M2EsMHhjMCwweDBkLDB4YjAsMHg4MywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4ODAsMHgwZiwweDcwLDB4MjMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhjMCwweDA4LDB4ZjAsMHgwNiwweDJjLDB4MTAsMHg4OCwweDUxLDB4MzcgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MDcsMHg3ZCwweDYwLDB4OGYsMHgwMiwweDM3LDB4YzAsMHgwYiwweDhjLDB4MDAsMHgyZCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4MDAsMHgzOCwweGMwLDB4MDgsMHg4MCwweDgyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDUwLDB4MGIsMHhmMCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4OTgsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4ODQsMHgwNCwweGEzLDB4MDAsMHgwMCwweGMwLDB4NjgsMHgzOSwweDA2LDB4MGMsMHgxMCwweDkzLDB4MjAgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MjIsMHhjMCwweDliLDB4MDEsMHhhMCwweDhmLDB4MTQsMHgzMywweDE0LDB4MjgsMHhjMCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDEgfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4OTMsMHg0MCwweDJjLDB4ODgsMHgwYiwweDMwLDB4MDIsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4NjAsMHgwMSwweDFlLDB4MTAsMHg4NywweDgwLDB4MjksMHhlMCwweDA4LDB4NzgsMHgwMiwweDNlLDB4MDAsMHg4MywweDkwLDB4MjQgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4MTAsMHhjZSwweDA0LDB4MDcsMHg5MSwweDI1LDB4ZTAsMHg4MywweGM5LDB4MDIsMHgxZSwweDA0LDB4YjcgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4ODQsMHgyYiwweGE0LDB4MDgsMHg0OCwweDQyLDB4MTIsMHhjYywweGI0LDB4ODAsMHgyZCwweDY0LDB4MGIsMHg3OCwweDAyLDB4MTkgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgyYywweDAwLDB4ZDAsMHgxMCwweDI4LDB4YzggfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4MGUsMHgzYiwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgzMCwweGM4LDB4MGMsMHgzOCwweDYyLDB4OGMsMHgwMCwweDUzLDB4MDAgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4MzAsMHhjNCwweDFmLDB4MDAsMHgyMywweDhjLDB4M2MsMHhmMywweDgwLDB4MTgsMHhjMCwweDBkLDB4MzAsMHgwMywweDBlLDB4ODAgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4ZDMsMHgxMCwweDNjLDB4ODAsMHgwZiwweDMwLDB4MDMsMHg5MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhmOSwweDEyLDB4YjQsMHhjMCwweDA3LDB4YjAsMHgwMywweGNjLDB4MDAsMHg0YSwweDAwLDB4NzcgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4YzAsMHgwZSwweDcxLDB4NDMsMHg2YywweDAwLDB4ZjMsMHgwMCwweDNmLDB4ZDAsMHgxZiwweGQwLDB4NTMsMHhhYywweDY4LDB4ZmIgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4MTgsMHgzZCwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHg1MCwweGZjLDB4MDQsMHgzZiwweDQwLDB4MGYsMHhmNCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDQwLDB4ZjgsMHgwNCwweDNlLDB4ZDIgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MGYsMHhiMywweDEzLDB4ZTAsMHgxMCwweGY5LDB4MDAsMHhiMiwweGNjLDB4MGUsMHhiYSwweDAzLDB4NmQsMHg4MCwweGRiLDB4MDIgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4MzIsMHhkYywweDRmLDB4MDAsMHgwMywweDZjLDB4MDQsMHhmMywweDAyLDB4MzYsMHg0MCwweDBlLDB4YjAsMHgwMywweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4NGIsMHgwMCwweDNjLDB4ODAsMHgwYywweGYxLDB4MDMsMHg2MiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhjOSwweDBiLDB4NzAsMHg4MiwweGRjLDB4MDAsMHhiYywweDA0LDB4MjEgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4YzQsMHg0YiwweDM3LDB4MDIsMHgwYywweGEwLDB4OGYsMHg3NCwweDIxLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgxYywweDgxLDB4YjcgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4MjAsMHgyYiwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZDAsMHgwMiwweDg0LDB4MDAsMHgyZCwweDQwLDB4MGEsMHhmMiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDgwLDB4YjQsMHhjMCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZDIsMHgwMCwweGI1LDB4ODgsMHgyMSwweGU4LDB4MGEsMHg3OCwweDAyLDB4ZGUsMHg0MCwweDk3LDB4MDAgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4MjEsMHhlOCwweDBiLDB4Y2MsMHg0NiwweDVlLDB4MjgsMHhiNywweGM0LDB4MjEsMHhmMCwweDBhLDB4NzgsMHgwMiwweGZlLDB4MDggfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4OTcsMHg4NCwweDJkLDB4YTAsMHgwOCwweDc4LDB4MDIsMHg3MCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHhiMCwweGMwLDB4MmMsMHhjMCwweDliLDB4YjAsMHgwMiwweGNjLDB4MjAsMHhiMywweDYwLDB4MjIgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMsMHgwMSwweDIwLDB4YzAsMHgxYiwweDA2LDB4MTYsMHg0ZiwweDAwLDB4YjMgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4YTAsMHgyYSwweGYwLDB4MDgsMHgwMCwweDAyLDB4ZTAsMHgwMCwweDkwLDB4MDAsMHgyYywweDQwLDB4MGEsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDEwLDB4ZmUsMHhjMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZjksMHgwOCwweGZlLDB4NDAsMHgyMiwweDgwLDB4MGUsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGQyLDB4MDAgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4MzIsMHg4MCwweDhmLDB4ZTAsMHgwMywweDU4LDB4MDAsMHhmNiwweDAwLDB4MzMsMHhiMCwweDBlLDB4MjAsMHgwMiwweGU4LDB4MGMgfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4ZDIsMHgwMiwweDNjLDB4ODAsMHgwYywweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmMCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDAsMHg1NywweDgwLDB4MjMsMHgwMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDMwLDB4MzggfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4MDAsMHgzYSwweDA4LDB4MGYsMHhjNCwweDAzLDB4ZjAsMHgwMCwweGVjLDB4MDAsMHgzZiwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMSwweDNjLDB4NDggfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4NGMsMHg5MCwweDBiLDB4MjQsMHgwMSwweGM5LDB4YzAsMHgzMiwweDQwLDB4YWMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4MzAsMHg0MCwweDBkLDB4OWEsMHgwMywweDIyLDB4ODQsMHhjOCwweDE0LDB4MzIsMHg0MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4YzksMHgwMCwweDgyLDB4NjgsMHgyYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgyMiwweDI0LDB4MDAsMHg4OSwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNywweDQwLDB4ODksMHg4MCwweDM2LDB4NDEsMHg4ZCwweDE4LDB4MDIsMHhhMCwweDI0LDB4YTggfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4MDQsMHg2MiwweDQwLDB4MDgsMHg5NCwweDgzLDB4MjQsMHgwMCwweDg5LDB4MDEsMHgyMiwweDcyLDB4MDgsMHg5MCwweDBiLDB4MjAgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4MjgsMHg5MCwweDEyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgyMCwweDk5LDB4MDAgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4MjIsMHg0MCwweDE4LDB4OTAsMHgwNiwweDIwLDB4MDEsMHg4OCwweDA4LDB4NjIsMHg0MCwweDBhLDB4OTAsMHgwMiwweDM0LDB4MTAgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4OGQsMHg4MSwweDIzLDB4NDEsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDA0LDB4MmMsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDIsMHg4MywweDIwLDB4MjAgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgwLDB4ODMsMHg2MCwweDI0LDB4NDgsMHgxOSwweDM0LDB4NjIsMHhhNSwweDA0LDB4YTEgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4MDIsMHg2MCwweDQwLDB4MDgsMHhkMCwweDAyLDB4NTQsMHgwMCwweDhkLDB4MDAsMHgyOSwweDQwLDB4MDgsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MGMsMHg4NSwweDAyLDB4MjEsMHg0NCwweDg4LDB4NTAsMHgzMiwweDE0LDB4NGMsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4MjIsMHgxNCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjOCwweDAwLDB4YTIsMHgwMCwweDBlLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4YzgsMHgwMCwweDMzLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDQsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MTAsMHhmZiwweDEwLDB4M2UgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwYiwweGYwLDB4MTMsMHhlNSwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4NDAsMHgzZiwweDRhLDB4MmYsMHg5MiwweDhhLDB4YTQsMHhhMiwweGY5LDB4MjgsMHgzNiwweDQwLDB4MGYsMHg5MiwweDgzLDB4YTYgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhlNiwweGMwLDB4YzEsMHgwMCwweDNmLDB4NjkgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4MGMsMHg5YSwweDQzLDB4NmMsMHgwMCwweGZkLDB4YTAsMHgzZSwweDc4LDB4MmMsMHhkOCwweDA3LDB4ZDYsMHgwMiwweGQ1LDB4OTYgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4MzIsMHg3OCwweDBkLDB4OTAsMHgwMywweDI3LDB4MDAsMHhmZCwweGEwLDB4MzUsMHg1MCwweDA2LDB4ZDQsMHgwMywweGU1LDB4MDAgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4ZmQsMHg0MCwweGIzLDB4NDAsMHgwZiwweDk4LDB4YTMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4MzgsMHgxMCwweGUzLDB4YzIsMHg4OCwweDg4LDB4MmUsMHgxNCwweGE4LDB4OGEsMHhjMiwweDIyLDB4YTAsMHhiOCwweGMwLDB4MmMgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4MjQsMHg0OCwweDg0LDB4MDIsMHhlMSwweDAwLDB4OTgsMHhjNCwweDIwLDB4M2MsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4YjggfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4MDQsMHgyMiwweDIwLDB4MDgsMHg4OCwweDAzLDB4YTIsMHgwMCwweGI4LDB4YTAsMHgyMiwweDAwLDB4MGIsMHg4OCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4YTEsMHgyMCwweDZjLDB4NDAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDQsMHgwNCwweGExLDB4NjgsMHgyYywweDQ4LDB4MDgsMHgxNCwweDAyLDB4YzUsMHgwMCwweDgxLDB4NjAgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4MjAsMHg0OCwweDE5LDB4OTAsMHgwMiwweDg1LDB4ODEsMHhiMSwweDQwLDB4MjQsMHg2OCwweDBhLDB4MTIsMHg0MiwweGM0LDB4ODAgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4YjksMHgyMCwweDIwLDB4NDAsMHg4YiwweDEwLDB4ODIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MTAsMHhhOSwweDAwLDB4NmUsMHhjMCwweDBhLDB4MTAsMHgwMiwweDI0LDB4MTQsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MTIsMHhlNCwweDAwLDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MDYsMHhhMCwweDYwLDB4YjkgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4MDksMHgyMiwweDYwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgwMiwweDQwLDB4MGIsMHgxMCwweDA2LDB4MDYgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZTksMHg4MCwweDNlLDB4NDEgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NjQsMHgwMCwweGU5LDB4YzAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4MjIsMHg0MSwweDBkLDB4ODAsMHgwMiwweGEzLDB4MDQsMHhmMSwweDQwLDB4MzYsMHg0MCwweDBlLDB4OTAsMHgwMiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4ZjEsMHgwMCwweDEyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhkOSwweDIyLDB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhiOSwweGM0LDB4M2MgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMiwweGFlLDB4NDAsMHgwZiwweDgwLDB4NGIsMHg2MiwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4MjAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDIsMHg3ZSwweDQxLDB4MGYsMHg5MCwweDEzLDB4Y2EgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDM4LDB4MDAgfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4MGYsMHg4MCwweDIwLDB4ZTAsMHgwMCwweGE4LDB4MjAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDA3LDB4ZTAsMHg4MCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4MzgsMHgwMCwweDBkLDB4ODAsMHg4MywweDIxLDB4MTAsMHhmOCwweDYwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHhiMywweDIwLDB4MDggfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHg4YSwweDAwLDB4MzMsMHg5MCwweDQzLDB4YTAsMHgyMiwweDI4LDB4MDAsMHg4ZSwweDgwLDB4NzYgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4ODAsMHgwOCwweGUxLDB4MDMsMHgxOSwweDAwLDB4ODYsMHg4MCwweDIyLDB4ODAsMHgwZCwweDYwLDB4MDEsMHg3OCwweDAwLDB4YmUgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4MDAsMHgzNiwweDgwLDB4MGMsMHhlNCwweDAyLDB4YTgsMHgxMCwweGJlLDB4YTAsMHgyZiwweDgwLDB4MGQsMHhhMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTEsMHg0YywweDA0LDB4MDMsMHgwNCwweDJjLDB4ZDQgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4NGMsMHgwMSwweGEzLDB4YzQsMHgyMCwweGMwLDB4MjgsMHgzNSwweDAyLDB4ODYsMHgwMCwweDgzLDB4ODAgfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4MjgsMHhjMCwweDA4LDB4MzgsMHgwNiwweDBlLDB4OTQsMHgzMCwweGMwLDB4YTIsMHhjMCwweDBiLDB4M2MsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4YjMsMHg4MCwweDJjLDB4NDgsMHgwOCwweDMwLDB4MDIsMHg4YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MDQsMHg4ZiwweDgwLDB4MjEsMHhjMSwweDFiLDB4NzIsMHg0MiwweDFlLDB4YzAsMHg4MywweDg4LDB4MjEgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxOCwweDI4LDB4MDYsMHgxMCwweDIxLDB4ODYsMHgzOCwweDIxLDB4YzAsMHgxOSwweGY3LDB4MDIsMHg1ZCwweGMwLDB4YjQgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4NDEsMHgyNywweGQwLDB4MDgsMHg3OCwweGM2LDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyZiwweDYwLDB4MDksMHg3MiwweDAyLDB4MjggfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAyLDB4YzcsMHg4MCwweDJkLDB4YTAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4MGYsMHgzZSwweDAzLDB4ZmUsMHg4MCwweGE3LDB4ODAsMHhhMSwweGUwLDB4MGMsMHg3OCwweDAyLDB4OTQsMHgwMCwweDg1LDB4YTAgfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4MzksMHhlNCwweDBjLDB4NzgsMHgxMywweDFlLDB4OTAsMHhiNSwweDg0LDB4MzEsMHhlMCwweDBmLDB4ZjgsMHg4NywweDFlLDB4MDQgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4NjAsMHgwYywweDNiLDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ZTQsMHhmYiwweDU0LDB4M2UsMHg4MCwweDBmLDB4YjQsMHgyMywweGVjLDB4MzIsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4ZDgsMHg0ZiwweGEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZiwweDMwLDB4MzMsMHhlYywweDA0LDB4ZjIgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MDEsMHgzZSwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZmUsMHgxMCwweGZiLDB4NjgsMHgzYywweDQxLDB4MGYsMHhmMCwweDQzLDB4ODIgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHhlNCwweDNmLDB4ZTQgfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MGMsMHhmYywweDAzLDB4N2UsMHg4MCwweGNmLDB4ODEsMHgzMywweGZhLDB4MGYsMHhmOCwweDAzLDB4ZjYsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4M2YsMHhlMiwweDBmLDB4NzksMHgwMywweDNlLDB4NDAsMHhmNCwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZTgsMHgwMywweDNlLDB4MDAgfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4ODMsMHg1MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhkNywweGEwLDB4MmQsMHhjNCwweDA4LDB4YmEsMHgwMiwweDNjLDB4YTAsMHg4NywweDIwLDB4MjEgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4YzAsMHgwZiwweDUyLDB4MDMsMHhkNCwweDAwLDB4YjYsMHgxMCwweDJkLDB4YzAsMHg4YiwweDczLDB4MDMsMHg1YywweDQwLDB4YjQgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4YjAsMHgyYiwweDQ4LDB4MjgsMHg0MSwweDAyLDB4MGMsMHgwMCwweGJmLDB4MTgsMHgzNSwweDQ2LDB4MjgsMHg3MiwweDQyLDB4MmEgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDAsMHg5YywweDAwLDB4ODcsMHg0MSwweDJkLDB4NDQgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4MGEsMHg3MywweDAyLDB4OWMsMHhjNCwweDgxLDB4MDAsMHg2ZCwweGM4LDB4OGIsMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAgfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4ZjAsMHg0NiwweDljLDB4NTUsMHhiNCwweDIwLDB4MjUsMHg0MCwweDE4LDB4NjAsMHg4MiwweDFjLDB4MDAgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4YjcsMHgwMCwweDIzLDB4NDAsMHgwOCwweDcwLDB4NDYsMHg0NCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg5MywweDAwLDB4MmMsMHg0MCwweDBiLDB4YjAsMHgwMiwweDBjLDB4ODIsMHg4MCwweGMwLDB4MjAgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4YzAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgxYiwweDMwLDB4MDAsMHhjZCwweDAxLDB4YjAgfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4NDAsMHhhYywweDc4LDB4ODgsMHg4YywweDA2LDB4MGQsMHg2MCwweGIzLDB4NGMsMHgyNCwweDEyLDB4MDgsMHgzMCwweDBhLDB4MTggfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhiYywweDAwLDB4YzcsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4MGUsMHhmMCwweDJhLDB4YmYsMHgwMCwweGM4LDB4YzgsMHhiZiwweGMwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwNCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4YjIsMHgwYSwweGFjLDB4MDAsMHhmOCwweDgwLDB4MzQsMHg0OSwweDBjLDB4YjksMHgwYiwweDNmLDB4MDAgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4ZmIsMHhjMCwweDMwLDB4ZjAsMHgwYywweGYwLDB4MDMsMHg2ZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhmYiwweDgwLDB4M2UsMHg0MSwweDJjLDB4YjAsMHgxMywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4YzEsMHgwZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHg0MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg2ZCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4MTAsMHgzYSwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZlLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTEgfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhlYywweDBjLDB4ZGYsMHgwMCwweDNiLDB4ODAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4MGYsMHhmMCwweDBiLDB4M2MsMHgwOCwweGU3LDB4MDgsMHgzMywweGMwLDB4MGIsMHhkMCwweDIzLDB4NzQsMHgwMCwweDU0LDB4MDAgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4MzMsMHhjMCwweDBmLDB4ZjAsMHg4MywweGJlLDB4MjAsMHhmZCwweDBjLDB4M2IsMHg2MCwweDJjLDB4ZTAsMHgwMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4Y2YsMHgxMiwweDMzLDB4NTAsMHgwYywweDMwLDB4MDMsMHg4MCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDQsMHhhYiwweDAwLDB4MjIsMHhhMCwweDBiLDB4YjAsMHgwNiwweDBjLDB4MDAsMHhhYiwweDQwLDB4MzYgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4YzAsMHgwYiwweGE4LDB4MDIsMHg2NiwweDAwLDB4YjgsMHgwMCwweDM2LDB4YzEsMHgwYiwweDM0LDB4NDMsMHhlZSwweDAwLDB4YjIgfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4MDAsMHgyMiwweDYwLDB4MDgsMHhiNCwweDgyLDB4OGMsMHgwNCwweDhhLDB4MjEsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OWIsMHgwMCwweDJhLDB4MjAgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweDg4LDB4YzUsMHgyMiwweGMwLDB4MGIsMHg4OCwweDgyLDB4ZTYsMHgwMSwweGJiLDB4MDggfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4MjIsMHhjMCwweDBhLDB4YjIsMHg4MiwweGFjLDB4NjAsMHhiOCwweDAyLDB4NGEsMHhjNCwweDA4LDB4YjEsMHgwMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4ODMsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjAsMHgwMSwweDBiLDB4MzIsMHgwNiwweDJjLDB4MDAsMHhhMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4YzAsMHgwOSwweDA0LDB4MjIsMHhjNCwweDAwLDB4YjIsMHgwMCwweDI0LDB4YzEsMHg4YiwweGIwLDB4MDIsMHg0YywweDAwLDB4YjAgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4MDAsMHg2MiwweGMwLDB4NDgsMHgzMCwweDAyLDB4YWMsMHgxMCwweDgyLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDA4LDB4ZGYsMHgyYSwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4MGYsMHhmNSwweDEyLDB4M2MsMHgxMCwweGM5LDB4MDAsMHhhMywweGMwLDB4MGYsMHg4MCwweDUzLDB4ZWMsMHgwMSwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4MzMsMHhjMCwweDBlLDB4YjAsMHgwMywweGFjLDB4MDQsMHhmOCwweDcwLDB4M2EsMHhjMCwweDBjLDB4NjAsMHg0MywweDJjLDB4NDIgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4Y2QsMHgwMCwweGIyLDB4NDAsMHgyYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYiwweDAxLDB4M2QsMHgwMCwweDBmLDB4YjQsMHgxNywweGZjLDB4MDAsMHgzYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4YzAsMHg0ZiwweGMwLDB4MDMsMHg3NCwweDA4LDB4ZmUsMHgwMCwweDNmLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDA4LDB4ZjggfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MzAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweDkwLDB4ZWYsMHgwMCwweDNmLDB4ZDggfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4MGUsMHhmMywweDAzLDB4MmMsMHgwMSwweGQ0LDB4ODAsMHgzNywweGNjLDB4MGQsMHg4OSwweDQzLDB4MTIsMHg1MCwweGVjLDB4MmMgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MzIsMHgwNSwweDBkLDB4YjAsMHg1MywweDNjLDB4ZDQsMHhjNSwweDk0LDB4N2YsMHhhMCwweDhmLDB4ZjAsMHg0MywweDMwLDB4MDAgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4ZGMsMHgwMCwweDMzLDB4MDAsMHgwYywweDQ4LDB4MDcsMHhmMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4ODAsMHgxMCwweGU2LDB4NDAsMHg4YiwweDcwLDB4MmYsMHhkYywweDA4LDB4ZjcsMHgwMiwweDBjLDB4ODAsMHg4YSwweDIwLDB4MDAgfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4YzgsMHg0YSwweDIyLDB4MDIsMHhhMCwweDAwLDB4OGEsMHg0OCwweDIyLDB4NTgsMHg4OCwweGZkLDB4MDIsMHhhZCwweDAyLDB4YTkgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4MjAsMHgxZSwweGEwLDB4MDMsMHg4MCwweDAyLDB4MmMsMHgwNCwweDhiLDB4MDAsMHgyMiwweGMwLDB4NGMsMHg4OCwweDA3LDB4NjAgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDAwLDB4MjMsMHgyYywweDJjLDB4YzkgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4MDIsMHgzMCwweDAyLDB4MGMsMHg2OCwweGEwLDB4MjgsMHgyYywweGQwLDB4MDksMHgxMiwweDAyLDB4ODQsMHgwMCwweGEwLDB4MjEgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MjAsMHgxOCwweDE5LDB4MzAsMHgyMiwweDgwLDB4ZDAsMHg4MywweDA2LDB4MGMsMHhhMCwweDBiLDB4YjAsMHgwNiwweDAwLDB4MTIgfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4YTAsMHgwMCwweDIwLDB4MDAsMHgyOSwweDAwLDB4MGUsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4YzAsMHgxMSwweGE4LDB4MzAsMHg4YiwweDAwLDB4MmUsMHhjMCwweDRhLDB4MzAsMHgwYSwweDJjLDB4MTQsMHhhMCwweDgwLDB4MGEgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4YzEsMHgwOCwweDg4LDB4ODYsMHg4NywweDAwLDB4ODMsMHgwMCwweDIyLDB4NDksMHgwOCwweGIwLDB4MDYsMHhhMCwweDQwLDB4YWIgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4MjAsMHgyMiwweDIwLDB4MGIsMHg4MCwweDBhLDB4MGMsMHgwNCwweGFiLDB4MDIsMHgyMiwweGMwLDB4ODgsMHg4MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZiwweDQwLDB4ZWIsMHgwNiwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiwweGY5LDB4YTAsMHgzZSwweGMwLDB4MGQsMHg4YywweDAzLDB4YWEsMHgxMCwweGU5LDB4NDAgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4YjIsMHg0OCwweDBkLDB4YjAsMHg0MywweGFkLDB4MDAsMHhjYiwweDg2LDB4MmUsMHgyMCwweDBmLDB4MzAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4ZjksMHg4MCwweDMyLDB4YzAsMHgwZCwweDBjLDB4YzIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhkZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4YzAsMHgwZiwweGUwLDB4MDMsMHhmMCwweDAwLDB4ZmUsMHgyMCwweDNmLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhmZSwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4ODIsMHg3ZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjksMHgwNCwweGRlLDB4MjAsMHhiZCwweDAwLDB4MGYsMHhkOSwweDBiLDB4N2MgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2IsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MmMsMHhiMCwweDBiLDB4MmMsMHgwMCwweGU4LDB4NDAsMHgzZSwweGMwLDB4MGYsMHg5NCwweDA3LDB4MjksMHgwMCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjAsMHgwMywweDAxLDB4MDIsMHhjYiwweDAwLDB4MzIsMHgwNCwweDRmLDB4ZjAsMHg0MywweDM0LDB4YzAgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4YjUsMHgxYSwweDNmLDB4YzEsMHgwZiwweDgwLDB4OTMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDAsMHg4ZiwweDAwLDB4MmYsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDNjLDB4MDQsMHhkOCwweDAwLDB4MmIgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4YzAsMHgwYywweDgwLDB4NDUsMHg2MCwweDAwLDB4N2IsMHg1OCwweDIyLDB4YzgsMHgwYiwweGZhLDB4MDEsMHg2MSwweDQwLDB4OGIgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MDAsMHgzMiwweDA0LDB4NGIsMHhjZSwweDAyLDB4MjgsMHgwMCwweDNhLDB4NDAsMHgyZSwweDA3LDB4MGIsMHg5MCwweDAyLDB4MjYgfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMSwweDRjLDB4YzAgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ZWMsMHgxMCwweDkwLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4MCwweDA2LDB4YzAsMHgwNCwweDgzLDB4MDQgfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4YTIsMHg4OSwweDE5LDB4MzAsMHgwNiwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg5MCwweDBiLDB4MzAsMHhjMiwweDQ4LDB4MDAgfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4YjIsMHg0MCwweDI0LDB4MjAsMHgwYiwweDA5LDB4MDAsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4MjAsMHgwMSwweDA2LDB4MDQsMHg4NywweGE0LDB4MmQsMHhlMCwweDA5LDB4MzgsMHgwMiwweGRlLDB4MDAsMHg5ZSwweDgxLDB4MjkgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4NTIsMHhmYSwweGMwLDB4OTYsMHg4MCwweDAxLDB4YTAsMHg4YiwweDNhLDB4MjIsMHhjZSwweDQwLDB4OGYgfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4YjAsMHgyNSwweGEwLDB4MGIsMHgwOCwweDAyLDB4NTYsMHgwOCwweGI1LDB4OTAsMHgyZCwweGU0LDB4NGIsMHhkOCwweDIyLDB4MGMgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAyLDB4ODMsMHg4MCwweDJlLDB4ZTggfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4MGIsMHgzOCwweDEzLDB4Y2UsMHg0MSwweGQzLDB4MTAsMHgyOCwweGMwLDB4MGUsMHgzYSwweDAyLDB4YzYsMHgwOCwweDRiLDB4NDAgfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4MzAsMHg2MCwweDBkLDB4M2IsMHgyNywweGNmLDB4YzQsMHhjMywweGEwLDB4MzAsMHgwMCwweDBmLDB4MzAsMHg0MywweDQ4LDB4NDAgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4ZjIsMHgwMCwweDNjLDB4MDQsMHgwZiwweDAyLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjNCwweDBlLDB4ZjEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAxLDB4MzMgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4YzAsMHg0ZCwweGIxLDB4MDcsMHg3YywweDkwLDB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwMywweGYxLDB4MDMsMHg3MCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4MTAsMHgzYiwweDAwLDB4MGYsMHhjMCwweDBiLDB4YjQsMHgwMCwweGZkLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhkMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDA0LDB4ZmIsMHg4NCwweDNhLDB4YzIgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4NGMsMHhiNCwweDkzLDB4MmMsMHgwNCwweGU5LDB4MDAsMHgzYSwweGM0LDB4OGQsMHgwOCwweDAzLDB4MmUsMHgwMCwweGNiLDB4MDEgfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4MzIsMHg4MCwweDhmLDB4YjIsMHg4MywweGVjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHgwMCwweDBmLDB4ZjksMHgwMywweDNjLDB4MTAgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4ZGYsMHg4MSwweGIzLDB4ZTAsMHg4YywweGEwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4NDgsMHgxMSwweDk0LDB4MDgsMHhiNywweDA0LDB4MjQsMHhjOCwweDFhLDB4MzAsMHg0YSwweDFkLDB4MDAsMHhiNywweDAxLDB4MmQgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4YzAsMHg4OCwweDcwLDB4MDYsMHgxYywweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHg0YiwweDc2LDB4MTIsMHhkYywweDAwLDB4ODcgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4MDAsMHgyOSwweDQwLDB4OGIsMHg0MCwweDAyLDB4MTAsMHgwMCwweGJjLDB4MDAsMHgyMCwweDAxLDB4MjgsMHg3MCwweDAzLDB4YjIgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDAwLDB4YjMsMHg5MCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4MDksMHg3OSwweDAyLDB4MWUsMHg4MCwweGE3LDB4ODAsMHgyYywweGU4LDB4MTksMHhmOCwweDEyLDB4NWUsMHgwMSwweDg3LDB4ODAgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4MjUsMHhlMCwweDRiLDB4NzgsMHgwNiwweGQyLDB4MDAsMHg5NywweDgwLDB4MjEsMHg2MiwweDBiLDB4M2EsMHgwMiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4YjcsMHg4NiwweDI5LDB4ZjAsMHgwOCwweDY4LDB4MDYsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4NDgsMHgxNCwweGNmLDB4YzAsMHhiMywweDAwLDB4MjQsMHhjMCwweDhhLDB4MzAsMHgzMiwweDBjLDB4MDAsMHhiMywweDA4LDB4MmMgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MTIsMHgwZSwweDIwLDB4ODMsMHgwMCwweDI0LDB4ZjEsMHgwYiwweDMwLDB4MDYsMHhjZSwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4OTAsMHgyOCwweDYwLDB4MGIsMHgwMCwweDJhLDB4MjEsMHg4MCwweGIwLDB4MDgsMHgyOCwweDAwLDB4MDgsMHgzNywweDAyLDB4OTIgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4NGQsMHhhMCwweDAzLDB4MjgsMHgwMCwweGVlLDB4NDEsMHgzZSwweDgwLDB4MGQsMHhlMCwweDAzLDB4NzgsMHgwMCwweDhlLDB4NDAgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MjcsMHhhOCwweDBiLDB4YTAsMHgwMywweGZiLDB4MDIsMHhjYSwweDgyLDB4MzMsMHhhMCwweDBmLDB4YTAsMHgxMywweDI5LDB4MDAgfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4ZmEsMHg0MCwweDNhLDB4ODAsMHgwYywweDZjLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDgsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MDAsMHg4ZiwweDgwLDB4MjMsMHhhMCwweDQyLDB4ZjgsMHgwOSwweGJhLDB4MTAsMHg0ZiwweDgwLDB4MDMsMHhlMCwweDYwLDB4ZjggfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4MDAsMHgzZSwweDIwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgyNywweDAwLDB4OGYsMHg4MCwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNSwweDAwLDB4ODksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4NmUsMHg5MCwweDAzLDB4YTQsMHgwOCwweGM5LDB4MDAsMHgzYywweDQwLDB4MGQsMHg5MCwweDAzLDB4MjQsMHgxMCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4MzIsMHg0MiwweDBjLDB4OTAsMHgxMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4YzksMHgyMCwweDNlLDB4NTIsMHhjZiwweDkwLDB4MDksMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4ODAsMHgwNCwweDY2LDB4MDAsMHg4OSwweDA0LDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4NDEsMHgwOCwweDkwLDB4MDUsMHhhNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NDAsMHgwZCwweDkwLDB4MDIsMHhlNSwweDQ2LDB4ODkgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDEyLDB4ZTUsMHgwMCwweGE5LDB4YzgsMHgyZSwweDYxLDB4OGIsMHg5NCwweDQyLDB4MjAgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YTksMHgwMCwweDZjLDB4NDAgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4NDgsMHgxMCwweDIyLDB4ODQsMHgwMywweGE5LDB4MDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwNCwweGIxLDB4MDggfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4MjgsMHg0MCwweDE4LDB4OTgsMHgwMiwweGU1LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGY0LDB4MjAgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4OGQsMHgwMCwweDJmLDB4NDAsMHgwYiwweDk0LDB4NDIsMHg4NiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMSwweDI0LDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHhhMSwweDAwLDB4MjggfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4NDgsMHgwOCwweDEwLDB4MDIsMHg4NCwweDAwLDB4OTEsMHgyMCwweDIwLDB4NDgsMHgwOSwweDEyLDB4MDIsMHhjNCwweDk0LDB4ODEgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4MDAsMHgyYywweDYxLDB4MGIsMHg1YSwweDgyLDB4ZDQsMHhhMCwweGE1LDB4MjgsMHgyZCwweDRhLDB4MGIsMHg5MCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAyLDB4ZTgsMHg1MCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTEsMHg0MCwweGE4LDB4NTAsMHgzZSwweDE0LDB4MGQsMHg4NSwweDAxLDB4ODEsMHg0MCwweGY4LDB4NTIgfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4MzIsMHg5NCwweDBjLDB4ODAsMHgxMywweGMxLDB4NDIsMHhjMCwweDUxLDB4M2UsMHgwMCwweDhmLDB4ODIsMHgwMywweGUwLDB4ODAgfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4YzgsMHgyMCwweDNmLDB4MDgsMHgwZiwweDgwLDB4MDMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NTAsMHhkOSwweDExLDB4M2UsMHg0NCwweDhmLDB4OTEsMHg0MywweGU0LDB4NDAsMHhkZCwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4NDQsMHg0ZiwweGQwLDB4MjcsMHhiNCwweDAwLDB4ZmQsMHgxMiwweDNmLDB4NDQsMHg0ZiwweDkxLDB4NDMsMHhmNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4MDAsMHgzZiwweDQxLDB4MGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHhkMCwweDAzLDB4NjYgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhmNiwweDgwLDB4ZTksMHhjMCwweDNlLDB4NzggfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4OGYsMHg5YiwweDAzLDB4YTcsMHg4MCwweGM5LDB4NDAsMHgzNiwweDc4LDB4MGYsMHgxMCwweDIzLDB4ZTUsMHgwNCwweGRkLDB4YTQgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4MzMsMHg2MiwweDBmLDB4ZGEsMHgwMywweGY2LDB4NjAsMHhjOSwweDEwLDB4MzMsMHg0MCwweDBlLDB4OTgsMHg5MywweGU2LDB4MzAgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4YzksMHhjOSwweDMyLDB4NzgsMHg4YywweGQwLDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHg4OCwweGUyLDB4MmUsMHgzMCwweDBiLDB4ODgsMHg0MiwweDIzLDB4NDAsMHhhMCwweGExLDB4MjIgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4MzgsMHgwYiwweDhhLDB4MDIsMHhlMiwweDgwLDB4YWEsMHhlMCwweDIyLDB4MzAsMHgwYiwweDgwLDB4MjMsMHhhYiwweDAyLDB4ODggfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4YTAsMHgyYSwweDAwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweDg4LDB4ZTAsMHgyMywweDM4LDB4MDgsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YTEsMHg0NCwweDI4LDB4NTggfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDMsMHgxNiwweDIyLDB4ODQsMHg4MSwweDgxLDB4MjAsMHgyYywweDU4LDB4NDksMHgxMCwweDgwLDB4YzQsMHg4MSwweDkxLDB4NDggfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4NmMsMHg0YSwweDBiLDB4MTQsMHgwMiwweDQ0LDB4ODQsMHg4MSwweDAxLDB4NjAsMHg0MCwweDBhLDB4NTIsMHg4NiwweGQ0LDB4YTAgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4ODUsMHgwMCwweGExLDB4NTAsMHg2OCwweDkwLDB4MDYsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4MTgsMHgwNSwweGE2LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhhOSwweDYwLDB4MjIgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4NDAsMHgwYiwweDk1LDB4MDIsMHhlNCwweDEwLDB4YjEsMHgwMCwweDRlLDB4NDAsMHgwYiwweDkwLDB4NjYsMHhhYywweDgwLDB4ODkgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4MDAsMHgyYSwweDYwLDB4MGIsMHg5MCwweDUyLDB4ZjQsMHgwMCwweDg1LDB4MDAsMHgyMSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDIwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YTQsMHgxMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5NCwweDAxLDB4ZTUsMHgyMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4YmEsMHg2OCwweDhmLDB4OTAsMHgwNywweGU2LDB4MDAsMHhjOSwweDEwLDB4MzIsMHg2MiwweDBlLDB4OTAsMHgwMiwweGU0LDB4MTggfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4NDAsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMiwweDcyLDB4NjgsMHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4MDEsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMiwweGY5LDB4MDQsMHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4MWEgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAyLDB4YzgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGM4LDB4NDAsMHgzNiwweDAwLDB4MGYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGQ4LDB4NTAgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4YjIsMHgxMCwweDhjLDB4ODEsMHgwMywweGMxLDB4MjAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgxMywweGYwLDB4MDQgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4NGMsMHgwMCwweDNmLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4MjgsMHgxNSwweDJhLDB4MDAsMHg4YSwweDA0LDB4MjIsMHg4MSwweDI4LDB4YTAsMHgxMiwweDI4LDB4MDAsMHg4YSwweDAxLDB4MzYgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4ODAsMHgwYiwweGEwLDB4MTAsMHgyOCwweDEwLDB4Y2UsMHgwMSwweDIzLDB4ODEsMHgwYywweGE4LDB4MTIsMHhmYiwweDAwLDB4OGEgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4MDEsMHgzYiwweDgwLDB4ODMsMHhhMCwweDQyLDB4ZTgsMHgxMCwweDhhLDB4MDAsMHgyZiwweDgwLDB4MGIsMHg2MCwweDQyLDB4MGEgfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMCwweGEwLDB4YzAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4MTgsMHhiMCwweDAwLDB4Y2MsMHgwMCwweDliLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMCwweDA2LDB4NmMsMHgwMCwweGEzLDB4MDggfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4MjgsMHhjOCwweDA5LDB4MzAsMHgwMiwweGNjLDB4NDMsMHg4YiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDIgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4ODMsMHgwMSwweDJjLDB4YzAsMHg0YiwweDMwLDB4MDAsMHg0YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MjQsMHg4NywweDk0LDB4MjEsMHhlNCwweDE4LDB4MzEsMHgwMiwweGRjLDB4ODAsMHg5NywweDEwLDB4MjUgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4Y2QsMHgwYiwweGYyLDB4MDIsMHg3YywweDAwLDB4YTAsMHgwMCwweDI4LDB4ZTAsMHgxOCwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcgfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MzQsMHgyOSwweDQwLDB4MDksMHg0MCwweDAyLDB4ZDAsMHgwNCwweDg0LDB4MDQsMHgyZCwweDAwLDB4NGIsMHhkMCwweDIyLDB4NjggfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4Y2YsMHhhMCwweDcwLDB4ZTkgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4MTgsMHg3YiwweDAzLDB4ZmYsMHg0MCwweDk3LDB4YTAsMHgzNSwweGU4LDB4MGYsMHg3NCwweDAyLDB4NWUsMHgyMCwweGU0LDB4ODAgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4MzksMHhhMCwweDJkLDB4NzgsMHgwMywweGZlLDB4MDAsMHhjNywweDgwLDB4M2QsMHhlMCwweDVmLDB4NjgsMHg0MywweGMyLDB4MDAgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4YzQsMHg4NCwweDFkLDB4NjAsMHgwZiwweDc4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4MDgsMHgwZCwweGE0LDB4MDAsMHgzYiwweDAwLDB4MmUsMHhkOCwweDBmLDB4YjQsMHgwMywweDJkLDB4OGEsMHhlYiwweDYyLDB4M2EgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4ZDAsMHgwZiwweGIyLDB4ODcsMHgwYywweGQwLDB4ZDgsMHgwMCwweDMyLDB4YzAsMHg0ZiwweDkwLDB4NDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4MDgsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZiwweDgwLDB4MGYsMHgwMCwweDJiLDB4ODIgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZmYsMHhhMCwweDNlLDB4ZjQgfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MGUsMHhiOCwweDAzLDB4ZWUsMHgwOCwweDRiLDB4ZjAsMHg3ZiwweGY0LDB4MGMsMHhmOSwweDIzLDB4ZWUsMHg0OCwweDc4LDB4OTAgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4MzIsMHhlNCwweDBjLDB4ZjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlNCwweDFjLDB4NzksMHgwMywweDJlLDB4NDAgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4ZTAsMHgyYywweDc4LDB4MDcsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4MDAsMHhiMywweDAwLDB4MGMsMHhlNSwweDBiLDB4MzgsMHgwMiwweGZlLDB4ODAsMHg4ZiwweDgwLDB4NjEgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4YzQsMHgyOCwweDc4LDB4MDAsMHg0ZSwweDAwLDB4ZjQsMHg4NCwweDI1LDB4YTgsMHgwYywweDcwLDB4MDIsMHhjYywweDA0LDB4YjMgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4OTAsMHgyNSwweDQwLDB4MGMsMHg0MSwweDgzLDB4NTIsMHg0MCwweGI0LDB4MTAsMHhhMywweDAwLDB4MGMsMHg1MiwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NCwweDAwLDB4YjcsMHgyMSwweDZkLDB4YzggfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4NGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweGE3LDB4MzEsMHgyOSwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MjggfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4MjQsMHg4MCwweDA4LDB4NzAsMHgwNiwweGQ0LDB4MjAsMHhiNywweDAxLDB4MmQsMHhjMSwweDA4LDB4NjAsMHgwMiwweDUwLDB4ODAgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4YjQsMHgwOCwweDIxLDB4NjIsMHgwOSwweDc0LDB4MDYsMHg4MCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4MjAsMHgxNCwweGM3LDB4MDQsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAyLDB4NjAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4YzAsMHgwOCwweDM4LDB4MDIsMHg0ZSwweDQ0LDB4YTAsMHhjMCwweDI0LDB4OTEsMHgwOCwweDMwLDB4MDIsMHhjMCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4MDAsMHgyNCwweDYwLDB4MDgsMHgxYywweDAyLDB4NGMsMHg4OCwweGIzLDB4YzAsMHgyMCwweGEwLDB4MDgsMHgwMCwweDBhLDB4ODggfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4NGYsMHhmMCwweDEzLDB4ZmMsMHgwOCwweGU3LDB4OGEsMHgzZiwweGMwLDB4MGMsMHhmNSwweGMyLDB4ZmUsMHgxMCwweGJiLDB4YzAgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MzIsMHhkNCwweDBjLDB4MzAsMHgxMywweGUzLDB4MDQsMHhiZiwweDAwLDB4MmUsMHg2MiwweDA4LDB4YjksMHgwMiwweDZlLDB4MDAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4ZmIsMHgwMSwweDMyLDB4YTQsMHg0ZCwweDk0LDB4MDIsMHhhYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NjAsMHhmYiwweDAwLDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHg1YiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4YzAsMHgwZiwweGIwLDB4NDEsMHhlYywweDAwLDB4N2IsMHg0NSwweGJhLDB4NDAsMHgyZSwweGIwLDB4MTUsMHhlMCwweDAxLDB4ZmIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGUsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZjLDB4MjAsMHgzZiwweDUwLDB4OGYsMHg5MCwweDAxLDB4NjAgfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4OGYsMHhmMCwweDAzLDB4MWMsMHgwMiwweGNmLDB4MDAsMHgzNiwweGMwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHgwMCwweDdmLDB4MmEgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4M2YsMHg4MCwweDBmLDB4ZjgsMHgxMywweDkwLDB4MjEsMHhjZiwweDAwLDB4M2YsMHg2MiwweDBjLDB4ZTAsMHgwMywweDMwLDB4MDAgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4ZjgsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4ODEsMHgwNCwweDY0LDB4MTEsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhkYiwweDA0LDB4MzIgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHg4NCwweDJlLDB4NDAsMHgwYiwweGI5LDB4NDIsMHgyMiwweDQyLDB4OGIgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4MDEsMHgyYywweDcyLDB4MGEsMHg5MCwweDQyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMyLDB4OGYsMHg4OCwweDA2LDB4ZTAgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyNCwweDAwLDB4YmIsMHgwMCwweDZlLDB4YzAgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4NDgsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MGEsMHhiMCwweDEyLDB4ZWMsMHgwMCwweGJiLDB4NDAgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MmUsMHhjOCwweDBiLDB4YjAsMHgxMiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0OCwweDBhLDB4MzAsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4YmIsMHgwMCwweDJlLDB4ODAsMHg0YiwweDk4LDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMywweDAwLDB4NmMsMHhjMiwweDRiLDB4MzEsMHgwMiwweDBjLDB4NTAsMHg5YiwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4YzAsMHgwYSwweDMyLDB4MTIsMHhjYywweDgwLDB4YjMsMHgwMCwweDZjLDB4MGMsMHgwYiwweDMxLDB4MDIsMHgwYywweDQyLDB4ODMgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4MDgsMHgyZSwweDQwLDB4MGEsMHgwMCwweDAyLDB4MDAsMHg4MCwweGIwLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4YmIsMHg0MCwweDNmLDB4Y2MgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4MGUsMHhmMCwweDgzLDB4M2QsMHhhMCwweGNmLDB4MjAsMHgzNywweGMwLDB4MGMsMHhmNywweGMzLDB4ZmQsMHg0OCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4M2UsMHg4OCwweDBmLDB4YjQsMHgxMywweGE1LDB4MDAsMHg4ZiwweDMwLDB4M2UsMHg0MCwweDBjLDB4YTAsMHgwMywweDYwLDB4ODAgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4YTAsMHgxOSwweGY0LDB4MDAsMHhmZiwweDI5LDB4M2YsMHhjOSwweDBmLDB4ZjAsMHgxMywweGZjLDB4OTQsMHhlZiwweDEyLDB4M2IgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4YzAsMHg4ZSwweGIyLDB4MDcsMHhmZCwweDA0LDB4ZmYsMHgxMCwweDNmLDB4MGMsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MjAsMHgzZCwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZmMsMHg0MCwweGZmLDB4MDQsMHgzZiwweGMwLDB4MGUsMHhjMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGEyLDB4YzcsMHgyMCwweDNmLDB4MjQgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4M2MsMHg4MCwweGNjLDB4MDksMHgzMywweGQxLDB4MGMsMHhmMSwweDIzLDB4ZmMsMHgyMCwweGRmLDB4MzYgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4M2YsMHhjMCwweDBlLDB4NDgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4MzcsMHhlNCwweDBkLDB4NzgsMHgwMywweDExLDB4YTAgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzgsMHgwYywweGYwLDB4MDMsMHgzMCwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4ODAsMHgxMCwweGZmLDB4MDAsMHg4ZiwweGQxLDB4MmUsMHgwOCwweDBkLDB4YjYsMHgxMiwweDNkLDB4NDUsMHhmOSwweDY0LDB4MjcgfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4ZDAsMHg4OCwweGJhLDB4MTQsMHhjYywweDA0LDB4OGYsMHg0MCwweDIzLDB4ZjAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4YmIgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4ODAsMHhhZSwweGMwLDB4MDgsMHhiOCwweDBhLDB4MjEsMHgwMCwweDg4LDB4ZDAsMHgyMiwweDIwLDB4MjgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4OTMsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4MGEsMHgzNCwweDgyLDB4OGMsMHhhMCwweGEwLDB4MDgsMHgyNCwweGQ4LDB4MDksMHgzMSwweDAyLDB4Y2MsMHgyMCwweGIzLDB4MzIgfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4MjgsMHhkMCwweDRhLDB4ODAsMHgwMiwweGNjLDB4MGMsMHhiYiwweDAwLDB4MjIsMHg0MCwweDg5LDB4YjAsMHgwMiwweDYwLDB4ODAgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4OTMsMHgwMCwweDI0LDB4ZDAsMHgwYiwweDMwLDB4MDIsMHhhMiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHg5YiwweDAwLDB4MmUsMHgyMCwweDA5LDB4YjAsMHg0YSwweDJjLDB4MDIsMHhhMCwweDAwLDB4MDYgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDAsMHhlYywweDAwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweDg4LDB4MDIsMHg2YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4MjAsMHgyYSwweGUyLDB4NDEsMHhiOCwweDJhLDB4NjAsMHgwYSwweDk4LDB4MDAsMHgyNiwweDAwLDB4MGIsMHhiMCwweDAyLDB4YjggfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDA4LDB4ZGIsMHgwMiwweDNlLDB4MjAgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4NGMsMHhiMCwweDAzLDB4MmMsMHgwMiwweDhiLDB4MjAsMHgxMiwweGMwLDB4MjksMHhiMCwweDEyLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4M2EsMHhjMCwweDBlLDB4ODgsMHgwMywweGVkLDB4MjAsMHhmYiwweGM4LDB4MzQsMHhmMCwweDBkLDB4YmEsMHgwMywweDQ3LDB4NjAgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhlZiwweDAwLDB4MGYsMHgwMCwweDBmLDB4MzAsMHgwMCwweGZjLDB4MDAsMHhkZiwweDkwLDB4YmIgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4YzAsMHhjZSwweGYwLDB4MDMsMHhmYywweDA0LDB4Y2IsMHgwMCwweDE3LDB4YzAsMHgwZiwweGMwLDB4MDMsMHhiYywweDg0LDB4ZmYgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGUsMHhkMCwweDYzLDB4YjgsMHgwMCwweGVhLDB4MDAsMHgzYSwweDgwLDB4MGMsMHgzMCwweDAzLDB4NzAgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMiwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4MGYsMHhiMCwweDUzLDB4MmMsMHgwMCwweGZhLDB4MDAsMHgzMiwweGMwLDB4OGYsMHhiMCwweDA3LDB4MmMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4ODAsMHgwNywweGFjLDB4ODAsMHhkYiwweDI0LDB4N2UsMHhkMCwweDBlLDB4YjAsMHgyMywweDc0LDB4MDQgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4ZGQsMHgwOCwweGI1LDB4NDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHhiZiwweGMwLDB4YTAsMHgwMCwweDFiLDB4ZjAsMHgwMiwweDNmLDB4NjAsMHhlYSwweDUwLDB4MjMgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4YzAsMHgwOCwweGZhLDB4MDcsMHhmYywweDAwLDB4ZGYsMHgwMCwweDYzLDB4YzAsMHg0OCwweDE4LDB4MDIsMHgyZCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4MDAsMHg2ZSwweGMwLDB4MGQsMHgzYSwweDAzLDB4MjQsMHgwMCwweDgyLDB4ODAsMHgzMiwweDgwLDB4MGQsMHhmMCwweDAzLDB4MzIgfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDE0LDB4YjMsMHg1OSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmUsMHgwNSwweGIwLDB4NDQsMHgyZSwweGMwLDB4MDksMHgzNCwweDgyLDB4ZWMsMHgwMCwweGFiLDB4MDQgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MjAsMHhjMCwweDA5LDB4MjEsMHhiMiwweDhlLDB4MDQsMHg5MywweGMwLDB4MjQsMHhjMCwweDBhLDB4MTgsMHgwNiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4OTIsMHg1MCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg3MCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4NjEsMHhlMCwweDBiLDB4NzgsMHgwYSwweDVlLDB4MDEsMHhiMSwweGEwLDB4MmQgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4ZTAsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4MDcsMHg5MCwweDIxLDB4ZTAsMHgxOCwweGM4LDB4MDIsMHgxZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4ODAsMHgyZCwweGUwLDB4OGEsMHhkOCwweDAyLDB4M2UsMHhjMCwweDg1LDB4ODAsMHgyMSwweDIwLDB4MTksMHg3OCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHg5NCwweDIwLDB4MTAgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4NGIsMHgzMCwweDA3LDB4MGMsMHgwMCwweGYzLDB4MDAsMHgzZSwweGM4LDB4MGYsMHgzMCwweDAzLDB4Y2MsMHgwMCwweDIzLDB4MTAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4MDAsMHhjYiwweDA1LDB4MjAsMHgwMiwweDhjLDB4NjAsMHg5MywweDBhLDB4MmUsMHhjNCwweDBhLDB4MDEsMHgwNywweDRjLDB4ODAgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4ZDIsMHgwMSwweDMwLDB4YzAsMHgyYywweDMwLDB4MGIsMHg1YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAxLDB4MGYsMHg0MCwweDBmLDB4ZjAsMHgxMywweGJjLDB4MDAsMHhlZiwweDI2LDB4NzMgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4YzIsMHgwYywweGIwLDB4ODMsMHhiYywweDQwLDB4ZmYsMHgxOCwweDNkLDB4YzAsMHg0YSwweGMxLDB4MDMsMHhmYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4MTIsMHgzZiwweGM0LDB4NGQsMHhjMSwweDBiLDB4ZmMsMHg4MSwweGZkLDB4MDAsMHgzZiwweDIwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDIwLDB4Y2IsMHg0OCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MmQsMHgyMCwweGU5LDB4ODAsMHhmYSwweGM4LDB4MGQsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGRiLDB4MjQgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4NzYsMHhmMywweDhlLDB4ODAsMHgzMywweGVjLDB4NDQsMHhlYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4ZGMsMHgwMCwweGIzLDB4NjEsMHgwYywweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4NDgsMHgxMSwweDhkLDB4MDAsMHg4NywweDIwLDB4MmYsMHgwMSwweDI4LDB4NzAsMHgwMiwweDBjLDB4ODQsMHg4ZCwweDA0LDB4MzEgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4Y2MsMHhjOSwweDcyLDB4MDIsMHhkZCwweDAwLDB4MzcsMHgzMywweDIxLDB4ZDgsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4MjAsMHgzZCwweGMwLDB4MDksMHg1MCwweDIyLDB4ZjAsMHgwMCwweDk3LDB4MDAsMHgyMSwweDgwLDB4MGEsMHhmYywweDAyLDB4OTIgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgxZSwweDgyLDB4ODcsMHhiMCwweDJkLDB4MjAgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4MDgsMHgzOSwweDAyLDB4MWUsMHg0MSwweGE3LDB4ODAsMHgyNCwweGUwLDB4MDksMHg3YSwweDMyLDB4OGUsMHg4MiwweDA3LDB4YTAgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4MjUsMHhlMCwweDhiLDB4NDgsMHgwMiwweDFlLDB4MDAsMHhhNywweGUxLDB4MmQsMHhlMCwweDRiLDB4NTgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4YTAsMHg4MCwweDI0LDB4NjAsMHgwOCwweDdhLDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDAwLDB4MmMsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwLDB4MjIgfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4YzEsMHgwOSwweDMwLDB4NDIsMHhjYywweDAwLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDFhLDB4MDIsMHhjZSwweDA0LDB4YjMgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4ZTAsMHgyOCwweGEwLDB4MDksMHgxYywweDgyLDB4NGIsMHgwOCwweGEzLDB4ODAsMHgyNCwweGEwLDB4MmEsMHgzMCwweDAyLDB4OWEgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDJmLDB4ODggfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MGMsMHhhMCwweDEzLDB4MjgsMHgwMCwweGVlLDB4MDAsMHgyZSwweDgwLDB4MmQsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4NzYsMHg4MCwweDBlLDB4ZTgsMHgwMywweGJiLDB4ODAsMHhlZSwweDQwLDB4MmYsMHhhMiwweDhmLDB4ZTYsMHgwMywweGViLDB4ODYgfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4ZmEsMHg4MCwweDM3LDB4ODIsMHgwYywweDIwLDB4MDcsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4MWUsMHgwMCwweDBmLDB4ODAsMHgwYiwweDYxLDB4MDAsMHhlOCwweGMwLDB4M2EgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAxLDB4ZjgsMHgwMCwweDdlLDB4MTAsMHgxZSwweDgxLDB4MDMsMHhlMCwweDA4LDB4ZjggfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4YzAsMHgyOCwweGRjLDB4NTAsMHgzYiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MGYsMHgxMCwweDAzLDB4YTYsMHgwMCwweGM5LDB4MDEsMHgzYSwweDQwLDB4MGUsMHg5NCwweDAxLDB4ZTQsMHgxMCwweGYxLDB4MDQgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OWEsMHgyMywweDIwLDB4NjAsMHhmOCwweDA0LDB4MGEsMHg0MiwweDBlLDB4OTAsMHgxMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4ODAsMHgwNCwweDY3LDB4MDgsMHhhOSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI3LDB4ODIsMHg4OSwweDAwLDB4MjYgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4NDAsMHgwOCwweDljLDB4MDMsMHhhNCwweDEwLDB4YjksMHgwMCwweDM2LDB4NDAsMHg5YiwweDFjLDB4MWEsMHgyMywweDA0LDB4YjggfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHgxMCwweDAyLDB4MjQsMHgwMiwweGM5LDB4YTAsMHhhMiwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNSwweDgwLDB4ODksMHgwNCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODQsMHg4MSwweDk5LDB4NDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDA2LDB4ZTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4YTYsMHg0MSwweDFiLDB4OTAsMHg4MiwweDIxLDB4MDAsMHhiOCwweDEwLDB4MmUsMHg0MCwweDBhLDB4OTIsMHgwYSwweGE0LDB4MDEgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4OGYsMHgyMiwweDIzLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMywweDIwLDB4MmMsMHg0MSwweDA5LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjQgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4NDgsMHgwYSwweDM2LDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDA0LDB4YzgsMHg0YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4MDUsMHgyOCwweDUwLDB4MGEsMHg5MCwweDAyLDB4MDUsMHgwMiwweDg1LDB4MDAsMHgyMSwweDQwLDB4MGIsMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDZlLDB4MTQgfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4YTEsMHg0MCwweGM4LDB4NTAsMHgzYSwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGIwLDB4NTAgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4MzIsMHgwMCwweDBiLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmYSwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGEwLDB4MDIgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4YzgsMHgwMCwweDEzLDB4MDAsMHgwZiwweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDgsMHhmOSwweDE0LDB4M2YsMHg0MCwweDBjLDB4OTEsMHgwMywweGU0LDB4NDIsMHhmZCwweDEwLDB4MzYgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4NDQsMHgwZCwweDkxLDB4MjMsMHhhNCwweDQ4LDB4ZjksMHgxMSwweDM4LDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNSwweDE0LDB4MzkgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4NDIsMHg3YiwweDQwLDB4OGUsMHhkMCwweDAxLDB4ZjUsMHgwMCwweGE5LDB4NDAsMHgzZSwweDUwLDB4MDcsMHg5NiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZGQsMHhhZSwweDNhLDB4NTAgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4MGQsMHg5YSwweDBiLDB4NzYsMHg4MCwweGNmLDB4ODgsMHgzMiwweDcwLDB4MmQsMHhkYSwweDAzLDB4YTcsMHgwMSwweGU5LDB4OTIgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4MzcsMHg2OCwweDBkLDB4OTQsMHgwMywweGU3LDB4MDAsMHhlZCwweGEwLDB4M2EsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU3LDB4MDIgfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4NjgsMHgwYywweGQ4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHg4OCwweDQwLDB4MjAsMHgyMCwweDBjLDB4OGMsMHgwMiwweDIzLDB4MDAsMHg4OCwweGUwLDB4MjIgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4MzAsMHgwOCwweDg0LDB4MDIsMHhlMywweDAwLDB4YjgsMHhlMCwweDIyLDB4MTQsMHg4ZCwweDg4LDB4MDIsMHhlMywweDAwLDB4YjggfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4NTAsMHgyZSwweGE4LDB4OGIsMHg4MCwweDIyLDB4ZTMsMHg0OCwweDg4LDB4NTAsMHgyMiwweDAwLDB4MDgsMHg4YywweDAyLDB4MGUgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4OTEsMHgwMCwweDJhLDB4NDggfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDksMHgxNCwweDgyLDB4MDUsMHgyMCwweDgxLDB4MDgsMHgyMCwweDU4LDB4MDksMHgxMSwweDAyLDB4ODUsMHg4OCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4YTAsMHg0MCwweDA4LDB4MTIsMHgwMiwweGM1LDB4ODAsMHhhMSwweDAwLDB4MjgsMHg0MCwweDBiLDB4MTgsMHgwMiwweGM0LDB4ODQgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4YTEsMHgwMCwweDI0LDB4NTAsMHgwOCwweDEwLDB4OTIsMHgwMywweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4MTgsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDYsMHg4OSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMiwweDIyLDB4NDEsMHg4OSwweGEwLDB4ODIsMHhlMCwweGEwLDB4YjkgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4MjgsMHgyZSwweDQ0LDB4MGIsMHhiMCwweDAyLDB4ZTQsMHgwMiwweGI5LDB4MDAsMHgyNiwweDQwLDB4MjgsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM4LDB4NDAgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4YTAsMHhhMiwweDQwLDB4OGQsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4ODQsMHgxMywweGUyLDB4MDAsMHhlOSwweDAwLDB4M2EsMHg1MCwweDBmLDB4OWMsMHgwMiwweGU2LDB4ODQgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4ZTksMHgwMCwweGI2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2UsMHg2OCwweDBlLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmMSwweDI4LDB4M2EgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDIsMHgwZiwweDgwLDB4MjMsMHhlMiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MSwweDIzLDB4ZTQsMHg0MCwweGMxLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDBiLDB4Y2EgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4YTAsMHgyMCwweGM4LDB4NDAsMHgzZSwweDAwLDB4MGUsMHg4MSwweDYzLDB4NjAsMHgwMCwweGYwLDB4MDQgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4M2MsMHgwMSwweDBjLDB4ODQsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGMxLDB4MDAgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4ZDgsMHgxMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MjMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4NjAsMHg4ZSwweDAwLDB4MjIsMHg4MCwweDBhLDB4YTAsMHgwMiwweDM4LDB4ODAsMHhiZSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4OTgsMHgxOCwweGVjLDB4MDIsMHhmOCwweDIwLDB4YWUgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MGIsMHhlNCwweDgyLDB4ZTgsMHgwMiwweGNlLDB4NDQsMHgyOCwweDgwLDB4MGQsMHhhMCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MCwweDAwLDB4ODIsMHgwNCwweGEwLDB4YzAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4MDksMHgzMCwweDAyLDB4OGUsMHgwNCwweDgzLDB4NTAsMHg2YywweGMwLDB4MGEsMHgzMCwweDg2LDB4MGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4MjgsMHgzMCwweDBhLDB4MzYsMHgxMiwweGNjLDB4ODAsMHg4MSwweDAwLDB4MjQsMHhjMCwweDBiLDB4MzIsMHgwNiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4ODAsMHg4OCwweDY0LDB4NjAsMHgyOCwweDEwLDB4MDIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MTIsMHg4NCwweDQwLDB4MjEsMHhjOCwweDBhLDB4NzIsMHgwMiwweDEwLDB4MDAsMHhiNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4Y2MsMHgwOCwweDM4LDB4MTIsMHgxYywweDAwLDB4YjMsMHgzMCwweDIwLDB4MDAsMHgwOCwweDcxLDB4ODIsMHhmZSwweDAwLDB4YTQgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4ODAsMHgyMSwweGM4LDB4MGIsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweDQyLDB4MDksMHg1MSwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4YzIsMHg4MCwweDMxLDB4ZjggfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4NGMsMHhmYywweDEzLDB4OTIsMHgwOSwweGM3LDB4ODAsMHgzYywweGVkLDB4MWUsMHg3OCwweDI3LDB4MWUsMHgwMCwweGY3LDB4OGMgfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4NzksMHgyMCwweDA4LDB4N2EsMHgwMywweGRlLDB4ODEsMHg4NCwweDgwLDB4M2QsMHhlMCwweDBlLDB4NzgsMHgwMywweGZlLDB4MjAgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4YzUsMHg4MSwweDM1LDB4NjAsMHgyYywweDU4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4MDgsMHgxZCwweDgwLDB4MDAsMHhmOCwweDA0LDB4M2UsMHhkMCwweDBmLDB4YjAsMHgxMywweGUwLDB4MDAsMHhmYiwweDAyLDB4M2EgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4ZDAsMHgwZiwweGEwLDB4MGIsMHhhYywweDQwLDB4ZmIsMHgwMCwweDNhLDB4MDAsMHgyZiwweGIwLDB4MDMsMHhjYywweDAwLDB4ZjAgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4MDAsMHgzYSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZmMsMHg0MSwweGYzLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg1MCwweDkzLDB4YzIgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MSwweDNmLDB4ZmMgfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MWMsMHhmOCwweDAzLDB4NzYsMHg0MCwweGVmLDB4OTIsMHgzZiwweGU0LDB4OGMsMHhmOCwweDAzLDB4YmYsMHgxMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4YjMsMHgyMCwweDBlLDB4ZjksMHgxMywweGZlLDB4MjQsMHhmZCwweDk0LDB4MzcsMHhlMCwweDFjLDB4ZjksMHgwMywweGVlLDB4MDAgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4ZTAsMHgwYywweDU4LDB4MDIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4NDAsMHg4MCwweDAwLDB4MmYsMHhjNCwweDA4LDB4NzIsMHgwMiwweGRkLDB4MDgsMHhkNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4Y2MsMHgwOCwweGRlLDB4MDMsMHg1YywweDAwLDB4YjcsMHgwNCwweDIxLDB4ODAsMHhjOCwweDcwLDB4ODMsMHhkYywweDAwLDB4YjQgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MGMsMHg3MCwweDAyLDB4ZGUsMHg4MCwweDg3LDB4MDAsMHgyMSwweGMyLDB4MGEsMHg1MSwweDQyLDB4MmEgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ODQsMHgwMCwweDJkLDB4YzggfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4NDgsMHg3MCwweDAyLDB4NTQsMHgwYywweGE3LDB4MDAsMHgyYywweGMwLDB4ODksMHg3MiwweDAyLDB4NWMsMHgwMCwweGIzLDB4MTAgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MjAsMHgwMCwweDBhLDB4NzAsMHgwNiwweGRjLDB4MDAsMHhiNCwweDIwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4ODAgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDUwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4MjAsMHgxNCwweGMwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHhjMCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDgsMHhhMiwweDQyLDB4MmMgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4YzEsMHgwOSwweDIwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4ODAsMHgwOCwweDNjLDB4MjIsMHg4YywweDIwLDB4YjAgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4MDgsMHgyZSwweGUwLDB4MDgsMHgzOCwweDEwLDB4Y2YsMHgwYSwweDkzLDB4NDAsMHhhMCwweGYwLDB4MGEsMHgxMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhOCwweDAwLDB4YzEsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgzZiwweGMwLDB4MmQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4MzIsMHgwMCwweDBlLDB4YjAsMHgxMiwweGVkLDB4MjQsMHhmYSwweDA4LDB4MjcsMHhjOCwweDEwLDB4YjgsMHhhMiwweGZmLDB4NjAgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4OTgsMHhhMCwweGEyLDB4ZTAsMHgwYywweDUwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4ODAsMHgwMCwweGM5LDB4MDYsMHhmOCwweDQxLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MTAsMHg1YSwweDIwLDB4M2UgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4YzAsMHgwZSwweDgwLDB4MDMsMHhlYywweDAwLDB4ZjMsMHgwMCwweDdlLDB4MDEsMHgwZiwweGIwLDB4OTMsMHhlZCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGUzLDB4MDgsMHgzYywweGMyLDB4MGYsMHhkMCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMywweDAyLDB4Y2MsMHgwMCwweDNiLDB4YzIgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4MGMsMHhmMCwweDIzLDB4YWUsMHg0MCwweGRmLDB4ODEsMHgzOSwweGMwLDB4MDYsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4MzEsMHg0MSwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjYywweGEwLDB4MzcsMHhjMiwweDBjLDB4ZjAsMHgwMywweDdjLDB4MDQgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4ZjAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4ODEsMHgwNCwweDYwLDB4MDAsMHg4OCwweDgwLDB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGU5LDB4MDAsMHhhYiwweDQ0LDB4MmUgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4YzAsMHgwOCwweDg4LDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NzAsMHgwYSwweGI0LDB4MDIsMHhjYywweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4MjAsMHgyMiwweGMwLDB4MGYsMHhiYywweDAyLDB4Y2MsMHgwYSwweDhiLDB4ODAsMHhhMiwweGMwLDB4MGQsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMCwweDAwLDB4ODksMHg4MCwweDJhLDB4YzAgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwNiwweDg4LDB4NjAsMHgyZSwweGMwLDB4MGEsMHg5OCwweDA2LDB4ZWMsMHgwMSwweGJiLDB4MDAgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4MjIsMHgzMSwweDAyLDB4YjIsMHgwMiwweGVjLDB4YTAsMHg4YSwweDAwLDB4MjYsMHhjMCwweDQ4LDB4YTgsMHgwMiwweGVjLDB4MDQgfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4YTksMHg4MCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MCwweDAxLDB4MmMgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4YzAsMHgxYSwweDEyLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg0YSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4MDAsMHgwOCwweGMwLDB4MGIsMHgyMCwweDA2LDB4ZWMsMHhhMCwweGEzLDB4MDAsMHhhMCwweDQwLDB4MjksMHgxMCwweDAwLDB4MDIgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4YzgsMHg1MCwweDNiLDB4YzAgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4YWMsMHgwMCwweGM5LDB4MDAsMHgzYiwweGMwLDB4MGUsMHg5MiwweDgzLDB4ZmMsMHgwMCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4MTIsMHgwMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHg4OCwweDI2LDB4MTYsMHhjMCwweDBjLDB4ODAsMHgxNywweDVjLDB4ODAgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4ZTksMHgwMSwweDMyLDB4NDAsMHgyYywweGQwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4YTAsMHgxZCwweGQwLDB4MDAsMHhmYywweDIwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4YzAsMHgwZCwweDgwLDB4MDMsMHhmYywweDA4LDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmYywweDEwLDB4ZjggfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4NDAsMHgzNywweGMwLDB4MGUsMHhlMCwweDIxLDB4ZmMsMHgwOCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGMwLDB4ZmYsMHgyMSwweDcxLDB4MjQgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MGYsMHhmMSwweDgzLDB4ZjIsMHg0MCwweGZmLDB4MDAsMHgzNywweGM0LDB4OWYsMHhmMiwweDQ3LDB4M2QsMHgwNCwweGM3LDB4MjAgfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4NzgsMHgyMywweGZlLDB4NDAsMHhlOCwweDEwLDB4MjcsMHhjNCwweDBmLDB4ZjIsMHgxMywweDNjLDB4ODQgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4YzQsMHg4MSwweDMzLDB4MjAsMHg0YywweGYwLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4ODAsMHgxMCwweGVkLDB4NDAsMHhiZiwweDU0LDB4NjIsMHhjOCwweDBiLDB4ZjYsMHgwMiwweGUwLDB4MDAsMHhiYiwweGQwLDB4MjIgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4ZjAsMHgxZiwweGY5LDB4MTIsMHgzZCwweDgwLDB4OWYsMHg4MSwweDJiLDB4ZTAsMHgwYSwweGI4LDB4MTIsMHhlOCwweDAwLDB4OGYgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4MDQsMHgyMiwweGQwLDB4MDgsMHhiMywweDhhLDB4YmYsMHg0MiwweDhiLDB4ODIsMHgyMiwweGUwLDB4MjgsMHg4YywweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgyOCwweDI4LDB4MDggfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4MGIsMHgzMCwweDA2LDB4ODAsMHg4MCwweGIzLDB4MDIsMHgyNCwweGQxLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweDkzLDB4MTAgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4MjAsMHhjZSwweDhiLDB4MzAsMHgwMiwweGNjLDB4ODQsMHhhMSwweDIxLDB4MmMsMHhjYywweDBhLDB4MzAsMHgwYSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4OTMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDNjLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHhiYiwweDAyLDB4NmEsMHhlMCwweDBiLDB4YjAsMHgwMiwweGUxLDB4MDgsMHhiYiwweDA0LDB4MmEgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4YzAsMHgwYSwweGIwLDB4MTIsMHg4YywweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweGIxLDB4MDYsMHhjOCwweDgwLDB4OGIgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4ODIsMHg2YSwweGMxLDB4MGEsMHgzMCwweDAyLDB4YWMsMHgxOCwweDg4LDB4MTAsMHgyYSwweDQ4LDB4MDgsMHg4MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwMCwweGFhLDB4MzAgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4YTgsMHgwMCwweGYzLDB4MDEsMHhiNiwweGMxLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwOCwweDRiLDB4MDAgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjgsMHgwMiwweGVjLDB4MTAsMHhhOSwweDgxLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4Y2IsMHhhMCwweDE4LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDgsMHhmNywweDAwLDB4MzcsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZkLDB4MDAsMHhmZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4YzAsMHgwZiwweGIwLDB4MDcsMHg3YywweDAwLDB4ZTcsMHgwMCwweDNlLDB4YzAsMHgwYSwweGYwLDB4MDMsMHhmZSwweDAwLDB4ZjcgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4ODAsMHgzNywweGUwLDB4MGYsMHhhMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4MGUsMHhiMCwweDAzLDB4NjksMHgwMCwweGRiLDB4MDksMHgzYSwweGMwLDB4MWYsMHgzMCwweDIzLDB4ZWMsMHgwOCwweGNiLDB4MjAgfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4MzQsMHhjMCwweDJmLDB4YjAsMHgwMywweGVjLDB4NDAsMHhlYiwweDQ4LDB4M2UsMHhjNCwweDRkLDB4YjAsMHg4YiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4OTAsMHgwZiwweDMwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MjIsMHgwMCwweDQ4LDB4ZjAsMHgyMiwweDJjLDB4MDAsMHg4ZiwweDAwLDB4MjMgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4ZTAsMHg4YiwweGY1LDB4MTAsMHgzYywweDAwLDB4OGYsMHg4MCwweDIzLDB4ZjAsMHg4MCwweDk4LDB4MDMsMHgyZCwweDQ0LDB4ZGIgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgyMywweGQ0LDB4MDgsMHhmOCwweDAyLDB4M2MsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhhNCwweDgyLDB4MzIgfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ODQsMHgwMCwweGIzLDB4MDEsMHgyOCwweGY2LDB4MDksMHgzNCwweDMyLDB4OGMsMHgwMSwweGIzLDB4ZDAgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4MjQsMHhlOCwweDBhLDB4MzEsMHgwYSwweDg2LDB4MDAsMHg4MywweDAwLDB4MmEsMHhlMCwweDAwLDB4MzAsMHgwMiwweDhjLDB4MDAgfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4ODMsMHgwMCwweDI4LDB4YzAsMHg4OSwweDM4LDB4YTIsMHg3OCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg5NywweDk0LDB4MjMsMHhlMCwweDA5LDB4MzgsMHgwMiwweDMyLDB4MDAsMHg5NywweGExLDB4MjEgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4ZTQsMHgwYiwweDc4LDB4MDIsMHgxZSwweDQwLDB4YjcsMHhhMCwweDI1LDB4ZWMsMHgwOCwweGZjLDB4MDIsMHgzYSwweDAwLDB4OTMgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4YjgsMHgyMSwweGUwLDB4MDgsMHg3OCwweDgyLDB4OWUsMHg0MCwweDg3LDB4YzAsMHgyOSwweGEwLDB4MGIsMHg1OCwweDAyLDB4NDggfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDAwLDB4ZGIsMHgwMCwweDM0LDB4MjAgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4MGYsMHgzYSwweDAzLDB4OGUsMHgwMCwweGYzLDB4YjAsMHgyOCwweGM0LDB4MGIsMHgzYSwweDAzLDB4YWUsMHg0MCwweGYzLDB4YTAgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4MzQsMHhlZSwweDBmLDB4MzAsMHgyMywweDg0LDB4MDAsMHhlMywweGYwLDB4MzgsMHhjMCwweDBjLDB4YjAsMHgwYiwweDhlLDB4NDIgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4NjMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDQyLDB4M2EsMHhjNCwweDFlLDB4YjEsMHgwNywweDg4LDB4ZDEsMHhlMywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4YzUsMHg4ZiwweGYxLDB4NjMsMHhhYywweDEwLDB4Y2IsMHg1MCwweDNiLDB4YzMsMHgwZiwweGQxLDB4MDMsMHhjOCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4MjAsMHgzYiwweGMwLDB4MmUsMHhmMSwweDAzLDB4MWMsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4NGYsMHhkMSwweDAzLDB4OTAgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZmIsMHg0NCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4NGYsMHhiMywweDQzLDB4MjQsMHgwMCwweGRiLDB4MTAsMHgzNiwweGMwLDB4NGMsMHhiZSwweDIyLDB4NmQsMHgyMCwweGNiLDB4NTAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4M2UsMHhjOSwweDRjLDB4YjAsMHgxMywweDI0LDB4MDAsMHhjZiwweDIwLDB4MzMsMHhjMCwweDNkLDB4ZjAsMHgyMywweDJjLDB4YzAgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4NDAsMHg4ZiwweDMwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDQsMHhiNywweDYwLDB4MjEsMHhjMSwweDhiLDB4ZjAsMHhhMiwweDE0LDB4MTAsMHg4NywweDAwLDB4MGYgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4YzgsMHgwZCwweDcxLDB4MGEsMHgxZCwweDAwLDB4ODcsMHgwMCwweDJjLDB4Y2MsMHg0OCwweDcwLDB4MmEsMHg5YywweDAwLDB4ODcgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4MGMsMHgyMSwweGMwLDB4MGMsMHg3MiwweDAyLDB4MGMsMHhhMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjMsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODEsMHgwNSwweGU0LDB4MDgsMHg3OSwweDAyLDB4NWMsMHg4MCwweDg3LDB4YTAgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4MmQsMHhlMCwweDA4LDB4ZjgsMHgwNiwweGI2LDB4MDAsMHg4NywweDgwLDB4MjAsMHhlNCwweDBhLDB4N2IsMHgxMiwweDFlLDB4OTAgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4OTcsMHg4OCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MGUsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkMCwweDBiLDB4YjAsMHgwMiwweDZlLDB4MzQsMHhhMywweDAwLDB4MmMgfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4YzEsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg4ZCwweDgwLDB4ODMgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4YzAsMHgwMCwweGMwLDB4OGEsMHgzMCwweDEyLDB4MGMsMHgwMCwweDgwLDB4MDAsMHgyYywweDE2LDB4MGIsMHgzOCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMzLDB4ODggfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4NzksMHg5MCwweGZhLDB4MDEsMHgzNiwweDgwLDB4MWMsMHhhMCwweDAzLDB4NjgsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4M2UsMHg4MSwweDJjLDB4YTAsMHgwYiwweGI5LDB4MGMsMHhjZSwweGUyLDB4YjIsMHg4MCwweDhlLDB4YTAsMHgwYiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4ZGEsMHg4MCwweDNjLDB4YjAsMHgwZiwweGUwLDB4ODMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MDAsMHhjOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MjMsMHhhMCwweDAwLDB4ZjAsMHg0MCwweDNlLDB4MTAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4NDgsMHgzZSwweDEwLDB4MGMsMHg4MCwweDAzLDB4YzAsMHgxMCwweGY4LDB4ODAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDIgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjQsMHgxOCwweGY5LDB4MTAsMHgzYywweDQ4LDB4NjgsMHg5MiwweDEzLDB4ZTQsMHgwMCwweGE5LDB4MTEgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4YjIsMHg2MCwweDBlLDB4OTEsMHgwMywweDI2LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg2MCwweDBjLDB4MTAsMHgwMywweDI0LDB4MDggfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MjMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDgsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4NDIsMHg0OCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ODksMHg4MCwweDIyLDB4NzAsMHgwOCwweDE0LDB4MjIsMHhhNCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4NDIsMHgyYSwweDcwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4YTAgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwMCwweDI2LDB4YzAgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMSwweGE5LDB4MDAsMHgwZSwweDQwLDB4MGEsMHg5MCwweDQ2LDB4YzQsMHgwYSwweDg5LDB4MDAgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4MjAsMHg0OCwweDBhLDB4OTAsMHgwMiwweDA1LDB4ODAsMHg4MSwweDQxLDB4YTAsMHg1OCwweDg4LDB4OTAsMHgwMiwweDI0LDB4MDggfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4OGQsMHg4MCwweDJmLDB4YzAsMHgwOCwweDk4LDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0MCwweDBiLDB4MTIsMHgwMiwweDg0LDB4MDAsMHg4MSwweDI0LDB4MmMgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NTgsMHgwYSwweDMyLDB4MjIsMHhjNSwweDg0LDB4YTEsMHgwMCwweDIwLDB4NTAsMHgwOCwweGIwLDB4MDIsMHg4NSwweDA4LDB4ODEgfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4NDAsMHgyMCwweDVhLDB4MDgsMHgxNiwweDgyLDB4MDQsMHgwMCwweGE1LDB4MDAsMHgyZCwweDQwLDB4MDgsMHgxMiwweDgyLDB4ODIgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDM2LDB4MTQgfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MGYsMHg4NSwweDIzLDB4MDEsMHg0MCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDQzLDB4YzAsMHgwOCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4MzIsMHg4MCwweDBlLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjMCwweDAwLDB4MzIsMHgwOCwweDJjLDB4MDIsMHgwMywweDIwLDB4MDggfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4YzgsMHgwMCwweDNmLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4OTEsMHg0MywweGY0LDB4MDQsMHhmOSwweDEwLDB4M2UgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4NDQsMHgwZCwweDExLDB4MDMsMHhlNCwweDQ0LDB4NTksMHg0MCwweDNlLDB4NTAsMHg0ZiwweDUwLDB4NDMsMHhkNCwweDAyLDB4ZmQgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4NDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHg2NiwweDYwLDB4YzksMHhlMCwweDMyLDB4NDQgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGRkLDB4ODQsMHgzZiwweDY4LDB4OGYsMHhkOCwweDQyLDB4ZTYsMHhhMCwweGRkLDB4YTQgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4MzMsMHg2OCwweDBkLDB4NzAsMHgwMywweDI1LDB4MDAsMHhjOSwweGUwLDB4YjIsMHg2OCwweDBjLDB4OWEsMHhjMywweDI2LDB4MDAgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4OTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4MDAsMHg4OCwweDgwLDB4YWEsMHgyMCwweDhiLDB4ODgsMHgwMiwweGUyLDB4ODgsMHhiOCwweDAxLDB4MmUgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4MDAsMHgwYiwweDg0LDB4MDIsMHhlMiwweGIwLDB4ODgsMHg1MCwweDIyLDB4MTQsMHgwOCwweDgwLDB4MDIsMHg4MiwweDgwLDB4ODggfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4ZTAsMHhiNiwweDNhLDB4MDgsMHhjZSwweGEyLDB4MjEsMHgwOCwweDg4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHhjNCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHg2MCwweDY4LDB4NDggfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4NWIsMHgxNiwweDAyLDB4YzQsMHgyMCwweGExLDB4NDAsMHg2YywweDUwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHgwMCwweGExLDB4MDAgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4OTAsMHgyMiwweDE0LDB4OTAsMHg4NSwweDQyLDB4MjEsMHg1MCwweDViLDB4NTAsMHgxYSwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4OTUsMHgwMCwweDJkLDB4NDAsMHgwYiwweDUxLDB4MGEsMHg4MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4OSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHg0NiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MmUgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MjAsMHhlNCwweDAwLDB4YjksMHgwMCwweDI2LDB4NDAsMHgxOCwweGI4LDB4MDIsMHhhNCwweDAyLDB4OGQgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MDgsMHgyZiwweDQwLDB4OGIsMHhkMCwweDAyLDB4MjQsMHgwMCwweDhkLDB4MjAsMHgyZiwweDQ4LDB4MGIsMHhkMCwweDAyLDB4ODYgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4ZTQsMHgxMCwweDQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGU5LDB4MDEgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4MzYsMHg0MCwweDBmLDB4MTgsMHgxMywweDI0LDB4MTAsMHhjOSwweDgyLDB4MzIsMHg0MCwweDdmLDB4OTAsMHgyMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4ZDksMHgyMCwweDNlLDB4NzIsMHgwZiwweDkwLDB4MDMsMHhhOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDIsMHhmMSwweDAxLDB4MTYsMHg0MCwweDRmLDB4OTAsMHgwMywweGU1LDB4MTAsMHhmOSwweDA4LDB4MmUgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDAwLDB4YzksMHgwMSwweDNhLDB4NDAsMHgxZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MjAsMHgzNCwweDQwLDB4OGMsMHg5MCwweDAzLDB4YzQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHgxMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAyLDB4NGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGQwLDB4MDAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4M2UsMHgwMCwweDBlLDB4ODEsMHgwMywweDMwLDB4MDAsMHhjYywweDQwLDB4MzMsMHgwMCwweDBjLDB4YzAsMHgwYiwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4ZTgsMHgwMCwweDNlLDB4MTAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHhiYSwweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiZSwweGM4LDB4NmYgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4ODAsMHgwYiwweGUxLDB4MjIsMHhhOCwweDAwLDB4OGUsMHgyMCwweDJmLDB4ODAsMHgwYiwweGUwLDB4MjMsMHg2OCwweDAwLDB4OGEgfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhlMCwweDAyLDB4MjksMHgwMCwweDhhLDB4MDAsMHgyZSwweGE4LDB4MGIsMHhhMCwweDAwLDB4Y2EgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4YzEsMHgyYywweGUwLDB4MGIsMHgzOCwweDU2LDB4MmMsMHgxMCwweDEzLDB4MDAgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4MmUsMHhjMCwweDBhLDB4MzgsMHg2YSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjAsMHgwMCwweDA5LDB4ODAsMHgyMiwweDRjLDB4NDIgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4YTMsMHgwMCwweDJjLDB4ZTAsMHgwYiwweDI0LDB4ODAsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDgsMHhiNywweDI0LDB4MmYsMHhlMCwweDA5LDB4MzksMHgwMiwweDFjLDB4MDEsMHhiNiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4OTAsMHgwYiwweDYwLDB4OTIsMHg4ZSwweDAwLDB4ODYsMHg4MiwweDJkLDB4YzIsMHgwYiwweGYwLDB4MDIsMHg1YywweDA2LDB4ODcgfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4MDAsMHg2MCwweGMwLDB4MjksMHg3MCwweDAyLDB4NWMsMHgwMCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDQwLDB4ZjMsMHhlNCwweDNkLDB4ZTggfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4MGQsMHg3OSwweDBiLDB4MWUsMHhjMCwweDY3LDB4ODAsMHgyZCwweGUwLDB4MGYsMHg3MCwweDQzLDB4MWQsMHg4MCwweGQ1LDB4MDAgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4M2QsMHg2MCwweDBlLDB4NzgsMHgwMywweDFlLDB4MDAsMHhjZCwweDgwLDB4MzEsMHhlMCwweDBkLDB4YzgsMHgwMywweDRlLDB4MDAgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4ZTUsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDQ4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4ODAsMHhmYiwweDAwLDB4NzAsMHhjMCwweDZlLDB4YjYsMHgxMywweGFkLDB4NDAsMHhmYSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4YzAsMHgwZiwweDIwLDB4NDMsMHgyZCwweDE4LDB4NTksMHgwMCwweDNlLDB4MDAsMHgwMywweGIwLDB4MGIsMHhlMCwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGUsMHhiMCwweDEzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQwLDB4ZmYsMHg4MCwweDNmLDB4ZTYgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MGYsMHhmOCwweDIzLDB4MmUsMHgwNCwweGZmLDB4OTAsMHgzZiwweGU0LDB4MGQsMHhiYSwweDAzLDB4ZmYsMHg0MCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4MjIsMHhlMSwweDBjLDB4MzksMHg0MywweDMyLDB4MTAsMHhlYywweDkwLDB4MzMsMHgyMCwweDhlLDB4YzgsMHgwMywweGYyLDB4MDAgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4ZGYsMHg4MCwweDNmLDB4NjAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4YTgsMHgxMSwweDljLDB4NDAsMHhiNywweDkwLDB4M2MsMHhlMCwweDBiLDB4M2EsMHgwMywweDRlLDB4ODAsMHhmMywweGIxLDB4MmQgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MDQsMHg0YywweDM4LDB4MjMsMHhhZSwweDAwLDB4ODAsMHg4MCwweDM0LDB4ZTgsMHg0ZCwweDc4LDB4MDIsMHgzZSwweDgwLDB4ODcgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4YTAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4YzAsMHg4MCwweDg2LDB4MDIsMHgyZCwweDQxLDB4MGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDQ4LDB4MzcsMHgwMSwweDJkLDB4YzkgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4MGIsMHg3MiwweDIyLDB4MWMsMHg4NCwweGI1LDB4MTYsMHgwZCwweGM0LDB4MTksMHg0MCwweDQyLDB4ZGMsMHg4MCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4MjAsMHhjOCwweDg4LDB4NzMsMHgwYSwweDljLDB4ODAsMHhiNSwweDAwLDB4MjksMHhjMCwweDBhLDB4NDgsMHgwMiwweGMwLDB4MDIgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4OTUsMHgwMCwweDJkLDB4NDIsMHgwYiwweDU4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmEsMHhlMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MjAsMHhhMSwweDAxLDB4MjQgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4YzEsMHgwOCwweDAwLDB4MDIsMHg4YywweDAwLDB4ODEsMHgwMCwweDI0LDB4ODAsMHgwOSwweDM4LDB4MGEsMHg2MCwweDgwLDB4OTIgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4NDAsMHgyYSwweDAwLDB4MGEsMHgzMCwweDAyLDB4YzAsMHgwMCwweDgwLDB4YzgsMHgyYywweDcyLDB4MGIsMHgxNCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4ZjQgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4OGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMiwweGMzLDB4MDEgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4MzIsMHhjMCwweDQ4LDB4YjgsMHgxMywweGExLDB4MDAsMHhiYSwweDAwLDB4MmEsMHgwMCwweDBhLDB4YTAsMHgwNywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ZGIsMHhjOCwweDNlLDB4OTAsMHgwZiwweGEyLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHhjNCwweDBmLDB4YjAsMHg2MywweGVjLDB4MDEsMHhmOCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4NDAsMHgwYiwweDgwLDB4MDMsMHhjYywweDAwLDB4ZmEsMHg0MiwweDNlLDB4YzAsMHgwZiwweGI1LDB4MDAsMHhhYywweDU4LDB4ZTkgfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4ODIsMHgzZSwweGMwLDB4MWQsMHg5MCwweDAzLDB4ZWMsMHgwNCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDBjLDB4ZGYsMHgwMCwweDdmLDB4YzAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4N2MsMHgwMSwweGM3LDB4MDAsMHgzMywweDQwLDB4OGYsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4MTUsMHg0NCwweDBjLDB4ZTAsMHgxYiwweDNjLDB4MDAsMHhjYiwweDBlLDB4MzMsMHhjMCwweDVjLDB4NjIsMHgwMiwweDFjLDB4MDIgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4YzUsMHgwMCwweDJiLDB4ODAsMHgwZiwweGMwLDB4ODcsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4ODEsMHg0NCwweDZjLDB4MTAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHg1MiwweDBjLDB4MDEsMHhmYSwweGM0LDB4MjIgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4NjEsMHgwYiwweDg4LDB4MDMsMHg2YywweDAwLDB4ODgsMHg0NywweDJhLDB4MDAsMHgwZSwweDFjLDB4MDIsMHgyMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MDAsMHhhYSwweDAwLDB4MjgsMHg5MCwweDBhLDB4MmMsMHgwNCwweGE4LDB4MDAsMHgyMiwweDkwLDB4MGIsMHg4MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzEgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4MDgsMHgzMCwweDEyLDB4NmMsMHgwMCwweDg4LDB4ODgsMHgyYSwweDMwLDB4MGIsMHhiOCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MDggfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4MmEsMHg0MCwweDA4LDB4YjgsMHgwMiwweDIwLDB4MDAsMHg4MiwweDEwLDB4MjIsMHgwMCwweDA4LDB4YTAsMHgyMiwweGEwLDB4MDAgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4OGIsMHgwMCwweDJhLDB4MDIsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MDgsMHgwMCwweDBjLDB4MDAsMHhiMywweDIwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDJjLDB4YzAsMHhhMCwweDA4LDB4MjAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MDAsMHgwYiwweDMzLDB4NDYsMHhjZCwweDI4LDB4ODAsMHgyMCwweDI4LDB4YzAsMHgwYiwweDMyLDB4MDIsMHgwYywweDIwLDB4ODEgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4MzAsMHgyOCwweGMwLDB4MDgsMHgxMCwweDAyLDB4ODEsMHgwMCwweGFhLDB4MDAsMHgyOCwweDAwLDB4MDMsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDAwLDB4ZmIsMHgyOCwweDJlLDB4Y2MgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4MGMsMHg3MCwweDUzLDB4N2QsMHgwOSwweDg4LDB4MDAsMHhiYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZmQsMHg4MCwweGRhLDB4NjAgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4M2EsMHg1MCwweDhjLDB4YTIsMHg4MywweDJjLDB4ODAsMHg0YiwweDIwLDB4MzAsMHhjMCwweDI4LDB4YTAsMHgwMywweGExLDB4MDAgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4YzksMHgwMCwweDNhLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYiwweDAwLDB4N2UsMHhjOSwweDBiLDB4YjYsMHgwMywweGZjLDB4YzAsMHhmOCwweDBjLDB4M2YgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MDAsMHg0ZiwweGMzLDB4NDMsMHgyYywweDAwLDB4YjgsMHgzOCwweDNmLDB4OGUsMHg1ZSwweGYwLDB4NDMsMHhlMCwweDEwLDB4ZjggfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MzAsMHgzZiwweDAxLDB4MGYsMHhkMCwweDAzLDB4NzAsMHgwMCwweGZjLDB4MDAsMHgzNywweDAwLDB4MGQsMHhkMCwweDA3LDB4ZTkgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4MDMsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGUwLDB4Y2MsMHg4MCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MGQsMHhmMCwweDgzLDB4ZmMsMHg4MCwweGRjLDB4OTQsMHgzMywweGMwLDB4MWMsMHhmMSwweDAzLDB4N2QsMHg4YywweGZmLDB4MzAgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4M2YsMHgzMCwweDhmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhjZiwweDkwLDB4MzksMHhhMCwweDhkLDB4ZjgsMHgwMywweGFlLDB4MDAgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4ZDUsMHg4MCwweDEzLDB4ZTAsMHgwYywweDU4LDB4MDMsMHhmMCwweDAxLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4ODAsMHgxMCwweGRkLDB4MDgsMHg4OCwweDAwLDB4MjMsMHhjNCwweDA4LDB4ZmMsMHgwMiwweGVjLDB4YTgsMHhjYiwweDIwLDB4MjEgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4YzIsMHgwZCwweGY3LDB4MTIsMHgxYywweDQwLDB4ZGYsMHgzMCwweDIyLDB4YTAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4ZGIgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4MjEsMHgyMiwweGMwLDB4MDgsMHhiOCwweDIyLDB4MmUsMHgwMCwweGI5LDB4ODAsMHgyYSwweDYwLDB4MGEsMHg4OCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4NDUsMHhjYywweDEwLDB4ODAsMHgyYywweDI4LDB4Y2EgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4NjgsMHgzMCwweDAyLDB4OGQsMHgwMCwweDliLDB4MjAsMHgyOCwweGM0LDB4MDgsMHgzMiwweDAyLDB4Y2MsMHgxMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4MjQsMHgwOCwweDBiLDB4ODAsMHg0MiwweDZjLDB4MDAsMHg4MywweDAwLDB4MmEsMHhjYSwweDNhLDB4YjAsMHgwMiwweDhjLDB4MDQgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4YjAsMHgwNCwweDI4LDB4YzAsMHgwOCwweDEwLDB4MDIsMHhlMywweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4YzAsMHgxNSwweDhjLDB4MDIsMHg4MCwweDQwLDB4YWEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg5YiwweDIwLDB4MmEgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4YzAsMHg4OCwweGIwLDB4MDIsMHhhYywweDAwLDB4OWIsMHgwMCwweDI2LDB4ZTAsMHgwMywweDgwLDB4ODIsMHgyYywweDI4LDB4OWIgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MjAsMHgyMiwweGUxLDB4MGIsMHhiMiwweDAyLDB4YWMsMHg4MCwweGI4LDB4ODAsMHgyYSwweGMxLDB4MGEsMHg5OCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzgsMHg1MCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4ODgsMHhiYSwweGMwLDB4MDgsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4MzYsMHg2MCwweDBmLDB4OGMsMHg2MywweDZjLDB4MDAsMHhjYiwweGMwLDB4M2EsMHg4MCwweDBlLDB4YmUsMHgwMywweGFmLDB4ODQgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4NzksMHg4MCwweDNhLDB4ODgsMHgwNCwweDk4LDB4MDEsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDgwLDB4MzUsMHhjMCwweDRmLDB4ZjAsMHgwMywweGRjLDB4MDAsMHhlZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4YzAsMHhhZiwweGYwLDB4MDMsMHgxYywweDAxLDB4NmYsMHgwMCwweDEzLDB4MDAsMHgwZiwweGMxLDB4MjMsMHhmYywweGI4LDB4ZmYgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4MDQsMHgzNywweGMwLDB4MGMsMHhmOCwweDQzLDB4N2UsMHgwNCwweGZkLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhkMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4NDAsMHgzOCwweGMxLDB4MGUsMHhiMCwweDQzLDB4MmMsMHgwOCwweGMzLDB4MDAgfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4M2UsMHg0MCwweDBlLDB4ODIsMHgwMywweDZkLDB4MDAsMHhkYiwweDQwLDB4MzIsMHhjMSwweDVmLDB4YjQsMHhhMywweGVkLDB4MjAgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4YzksMHg0MCwweDMyLDB4ZTAsMHg4ZiwweDk4LDB4NDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhjMCwweDI4LDB4ZjUsMHhjMiwweGZjLDB4MDAsMHhiMywweDA0LDB4MjMgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4YzEsMHg0OCwweGYwLDB4MjIsMHhiYywweDA2LDB4YWYsMHgwMCwweDBlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHhjZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWUsMHgwMCwweDgxLDB4ZTAsMHgzNCwweGEwLDB4MGIsMHg5MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAyLDB4ODAsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4MDksMHgzYywweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDEgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MmMsMHgwMCwweDBhLDB4MDUsMHgwMiwweGNkLDB4NTgsMHhiYiwweDAwLDB4MjAsMHgwMCwweDBhLDB4M2QsMHgwMiwweGNmLDB4NDAgfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4MjEsMHgyMCwweDYwLDB4YzAsMHgwOSwweDEwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg4NCwweDgwLDB4MjgsMHhlNCwweDg4LDB4NzgsMHg0MiwweGRlLDB4MDAsMHhiNywweDkwLDB4NjUgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4ZTQsMHg4OCwweDdhLDB4NDIsMHg5ZSwweDQwLDB4YTcsMHg5MCwweDJkLDB4YTAsMHgwYSwweDQ4LDB4MjIsMHhkZSwweDA0LDB4YjcgfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4ODAsMHgyMywweDYwLDB4NDgsMHg3OCwweDQyLDB4ZmUsMHg4MCwweGFmLDB4OTAsMHg2NSwweGUwLDB4MGIsMHhlOCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YzgsMHgwMCwweDM4LDB4YzAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGUsMHhiYSwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4M2UsMHgwMCwweDRlLDB4MjIsMHgwMiwweGNjLDB4YzAsMHhmYiwweDQwLDB4MzAsMHhjMCwweDBhLDB4MzAsMHgwMywweGNlLDB4ODAgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4ZTEsMHg0MSwweDMwLDB4YzksMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MjAsMHhmYywweDAwLDB4MzcsMHhjMiwweDBlLDB4ZjEsMHgyMywweGVjLDB4NDAsMHhmZiwweDA0LDB4M2EgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4YzAsMHgwZiwweGIwLDB4MjMsMHhmYywweDAwLDB4ZmYsMHgwNCwweDNlLDB4YzAsMHgwZCwweGEwLDB4MDMsMHhmYywweDU4LDB4ZmYgfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MDAsMHhiZiwweGMwLDB4MDYsMHhmMCwweDgzLDB4ZGMsMHg2MiwweGRmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MTAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDgwLDB4YzksMHgwMSwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4OGMsMHhiMiwweDA3LDB4YWUsMHgwNCwweGNiLDB4ODAsMHgzYSwweGM4LDB4NGMsMHhiMiwweDAzLDB4MmMsMHg4NCwweGNiLDB4MzAgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4YjAsMHhlMCwweDBkLDB4ODgsMHgwYiwweDJjLDB4MDAsMHhlYiwweDAwLDB4MzAsMHgwMCwweDBjLDB4YmMsMHg4MywweDJkLDB4ODAgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4ZmIsMHgwMCwweDMyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4NDAsMHg4NywweDAwLDB4MmMsMHhjYywweDA4LDB4NzYsMHg4MiwweDNjLDB4ODIsMHg4NywweDAwLDB4MjEgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4YzIsMHg4ZCwweDMyLDB4ODIsMHgwZCwweDRjLDB4YTcsMHgyOCwweDIxLDB4ODAsMHgwOCwweDQwLDB4MDIsMHgxZCwweDgwLDB4YmYgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4MjAsMHgzNSwweDQwLDB4MDksMHg3MiwweDQzLDB4NWMsMHhhMCwweGI3LDB4MDAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4ZGUsMHhjMCwweDhmLDB4ODAsMHgyOCwweGVjLDB4MjgsMHg3YiwweDBhLDB4OWUsMHg5NCwweDgzLDB4ODQgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4MjMsMHhlMCwweDA5LDB4NTgsMHg1MCwweDllLDB4MTAsMHhhNywweGIwLDB4MjMsMHhlMCwweDBiLDB4NzgsMHgwMiwweDFlLDB4MjAgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4YjcsMHg4MCwweDIxLDB4ZTAsMHgwOSwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDIsMHg4MiwweDFjLDB4MmMsMHhjMCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweGMwLDB4MjAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDYwLDB4ZDIsMHgwOCwweDFkLDB4MDIsMHgwZiwweDIwLDB4YmIgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4MjQsMHgyNCwweGMwLDB4MGIsMHgzYywweDAyLDB4NGYsMHgwMCwweGIzLDB4ODAsMHgyOCwweGQ4LDB4MDksMHgzMiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhhOCwweDAwLDB4Y2UsMHg4NCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4YzAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAzLDB4YTgsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4MzMsMHg4MCwweDBkLDB4ZWMsMHgwMywweDNiLDB4ODAsMHhlZSwweDgyLDB4MzMsMHg4MCwweDBhLDB4YzAsMHg4NywweDEwLDB4NDAgfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4ZjYsMHhjMCwweDMzLDB4OTAsMHhhZCwweDY0LDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDIsMHhmOCwweDAwLDB4M2MsMHgwMCwweDFmLDB4MDQsMHgwMywweGEwLDB4MDQsMHhmOCwweDMwLDB4M2UgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDQsMHgwZiwweDgwLDB4OTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MmMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MTgsMHgzZSwweDEwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MDQsMHg5MCwweDAzLDB4MjQsMHgwMCwweDQxLDB4MDAgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTEsMHgxMywweGUxLDB4MDgsMHhmOCwweDAwLDB4MzIsMHg0MCwweDA4LDB4ODksMHg4MywweGEyLDB4MDAgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweDkwLDB4MGIsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBkLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHg4YiwweDk0LDB4NDIsMHhlMiwweDIwLDB4YjggfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTUsMHgwNCwweGE5LDB4OTAsMHgzNCwweDYwLDB4MDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDEwLDB4OTksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGE5LDB4MDAgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4MmEsMHg0MCwweDBiLDB4OTAsMHg4MiwweGUwLDB4MDEsMHhiOCwweDAwLDB4MjAsMHg0MCwweDNhLDB4OTAsMHgwMiwweGE0LDB4NDQgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4ODksMHgwNCwweDIyLDB4NjIsMHgwOCwweDk4LDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4OGEsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA5LDB4MzIsMHgwNiwweDQ0LDB4ODAsMHhiMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg4NCwweDgwLDB4YTEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4NDAsMHgyMCwweDUwLDB4MGEsMHgyNCwweDAyLDB4YzksMHgwMCwweGEzLDB4MDAsMHgyNCwweDQwLDB4MDgsMHgxMSwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNlLDB4MTQgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGY4LDB4NTEsMHgzNiwweDE0LDB4MmUsMHg4NSwweDQzLDB4MjEsMHg0MiwweGU4LDB4NTAgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHgxMiwweGUwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwMCwweDFlLDB4ODAsMHg0MywweGEwLDB4MDAgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4YzgsMHgwMSwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDRlLDB4MTEsMHgwMywweGE0LDB4NDAsMHhiNSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4NDQsMHgwZCwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZDksMHgxMCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhlNSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGQsMHg0NCwweDAzLDB4ZjEsMHgwMCwweGY1LDB4MDIsMHgzZCwweGMwLDB4MmYsMHhkMiwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZTksMHgwMCwweDM2LDB4NjAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4MGQsMHhkYSwweDAzLDB4ZTYsMHg0MCwweGY5LDB4NDAsMHgzZSwweDY4LDB4MGMsMHg5YSwweDAzLDB4NjYsMHgyMCwweDg5LDB4YTAgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4MzMsMHg0MCwweDBlLDB4OTAsMHgwNywweGE2LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg1MCwweDBjLDB4Y2EsMHgwMywweGYzLDB4ODAgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4YzUsMHgwMiwweDMzLDB4NDAsMHgwYywweGMwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4MzgsMHgxMCwweGUzLDB4MDQsMHg4OCwweGEyLDB4MjAsMHgzOCwweDA4LDB4ODAsMHgwMiwweGUzLDB4NDAsMHhiMCwweDgwLDB4MmUgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MjgsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4ODgsMHg4MCwweDIyLDB4MDAsMHhkYiwweDg4LDB4MDIsMHg2MiwweDA0LDB4YjggfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4YjAsMHgyZSwweGE4LDB4ODgsMHg4ZSwweGEyLDB4ZWEsMHg4MCwweDg4LDB4MDAsMHgyYSwweDAwLDB4MjgsMHg4OCwweDAzLDB4OGUgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDgyLDB4YTksMHgwOCwweDJjLDB4NTIgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjEsMHgwYywweDUyLDB4ODgsMHgxNCwweDAyLDB4NDQsMHgyMCwweDkxLDB4NjkgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MTAsMHg4MiwweGM2LDB4ZTAsMHhiMSwweDBjLDB4MmMsMHg0OCwweDA4LDB4MDEsMHgwMiwweGUxLDB4OTMgfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4YTEsMHgwMSwweDI0LDB4NDEsMHgwYSwweDEwLDB4MDIsMHhjMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMCwweGU0LDB4MDAsMHgzOSwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NjIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDYyLDB4NDAsMHg4YiwweDgwLDB4MDIsMHhlMCwweDU0LDB4YjkgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4MGMsMHgyZSwweDQwLDB4MDksMHhiNiwweDUyLDB4ZWMsMHgwMCwweGE5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MiwweDgwLDB4ODYgfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZTEsMHg2MCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4MGQsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MzAsMHgzZSwweDQwLDB4MmMsMHg5MCwweDQzLDB4NjQsMHgwNiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4MzIsMHg0OSwweDBlLDB4OGQsMHg5MywweGUwLDB4MDAsMHhmOSwweDAwLDB4MmUsMHg0MCwweDJjLDB4OTQsMHgwMywweGM3LDB4NDAgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4ZTksMHgyMCwweDMwLDB4NTUsMHgwZSwweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4MWUsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgwLDB4M2MgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwNCwweGJlLDB4NDAsMHgwZiwweDg4LDB4MzMsMHg2MiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4YzIsMHgzZSwweDQ4LDB4MmUsMHg4OCwweDMzLDB4ZTIsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDYwLDB4MGQsMHg4MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MGQsMHg4MCwweDAzLDB4YTAsMHgwNCwweGU4LDB4NDAsMHhiYSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwNCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4M2EsMHgwMCwweDBlLDB4OGMsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyLDB4MzIsMHgwMCwweDBlLDB4ODAsMHgwMywweDYxLDB4MjAgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MTYsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDAwLDB4MmUsMHg4MCwweDA4LDB4ZTIsMHgwMywweDI4LDB4MDAsMHg4YSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDA0LDB4OGEsMHgwMCwweDJlLDB4YTIsMHgwOSwweGU4LDB4MDIsMHhmYSwweDA0LDB4YmUgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4MDAsMHhhMiwweDgwLDB4MDgsMHhjZCwweDgyLDB4MzMsMHgyMCwweGI2LDB4YzAsMHgzNywweGEwLDB4NGIsMHhjOCwweDgyLDB4Y2EgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2YywweDAwLDB4ODMsMHgwMCwweDI2LDB4YzAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4MDksMHgzOCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4MjgsMHhlMCwweDBiLDB4MzAsMHgwMiwweGNlLDB4ODEsMHhiMywweDAwLDB4NjIsMHhjMCwweDA4LDB4M2MsMHgwMiwweDRmLDB4MDAgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4YjMsMHhhMCwweDIwLDB4YjAsMHgwMywweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4NDEsMHg4NywweDM0LDB4MmQsMHhjMCwweDA4LDB4NjAsMHgwMiwweDllLDB4NDAsMHhiNywweGEwLDB4MmQgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHhkYywweDAwLDB4ODcsMHgyMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4ODIsMHhkZCwweDg1LDB4YmYgfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4ODEsMHg2MywweGM4LDB4ODgsMHg3YiwweDAyLDB4MWMsMHgwMCwweGI3LDB4NDAsMHg2NSwweDAwLDB4MWIsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4ZGQsMHg3MCwweDAzLDB4ZmUsMHg4MCwweGY3LDB4OTAsMHgzZiwweGUwLDB4MmMsMHg3OSwweDAzLDB4ZmUsMHg4MCwweGM3LDB4YTAgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4MzksMHhlMCwweDBmLDB4N2EsMHgwMiwweGRlLDB4ODQsMHhmNywweGMyLDB4MzEsMHhmMiwweDBjLDB4NzksMHgwMywweDVlLDB4MDQgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4ZjcsMHg4NCwweDMxLDB4NjAsMHgwZiwweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MGEsMHhmYiwweDYwLDB4N2UsMHhkNCwweDBmLDB4MzAsMHgwMywweDZjLDB4MDAsMHhjYiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4ZGUsMHgyZiwweGIyLDB4MDMsMHhlZCwweDQyLDB4MWIsMHg2MCwweDNlLDB4YzEsMHgwZCwweGIxLDB4MDMsMHhlYywweDUwLDB4ZjcgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4ODAsMHgzZCwweGQ4LDB4MmUsMHgzMiwweDAzLDB4ZWMsMHgzMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2IsMHhkMCwweDNmLDB4ZjAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4NGMsMHhmOCwweDEzLDB4ZmUsMHgwMCwweGNmLDB4ODgsMHgzZiwweGUwLDB4MGMsMHhmOCwweDQzLDB4M2YsMHgwMCwweGNmLDB4YzggfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlMCwweDJjLDB4ZjgsMHgwMywweGJlLDB4MjAgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4YzcsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDEsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4YTgsMHgwMSwweGJjLDB4NDAsMHg4NywweDkwLDB4M2QsMHhjMCwweDA4LDB4NDAsMHgwMiwweGRjLDB4ODAsMHhkNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4YzAsMHgwYywweDMwLDB4MDMsMHg3YywweDAwLDB4ODcsMHgxMCwweDIxLDB4YzQsMHgxZSwweDcwLDB4MjAsMHhkYywweDQ0LDB4YjcgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGMsMHg3MSwweDAyLDB4MWMsMHg0MCwweGQ3LDB4MDIsMHgyOSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHgzMiwweDJkLDB4YzAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweGMwLDB4MmIsMHg3MCwweDBhLDB4NWMsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4MjMsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRkLDB4MDAsMHhiNywweDAwLDB4MmQsMHhjNCwweDBiLDB4ZjAsMHgwMiwweDljLDB4MjAgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4ODcsMHgxOCwweDI5LDB4NDAsMHgwOCwweDcwLDB4ODIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MywweDAyLDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGNjLDB4MDgsMHg4MywweDQwLDB4MmUgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4YzAsMHgyYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweDIwLDB4ZjIsMHgwYSwweDMwLDB4MDIsMHhjZSwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4ODgsMHgyYSwweGQwLDB4MGEsMHgzMCwweDA2LDB4MGMsMHgwMCwweDkyLDB4MDAsMHgyOCwweDc4LDB4MDgsMHgzYywweDQyLDB4MDggfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAyLDB4YzcsMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4MmMsMHg5MCwweDAyLDB4ZmMsMHgwMiwweDhmLDB4ZDgsMHgzZiwweGMwLDB4NGIsMHhmMCwweDAyLDB4N2MsMHgwMiwweGNmLDB4MDAgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4MjAsMHhmMiwweDA4LDB4YjAsMHgxMywweGVlLDB4ODAsMHhmZiwweDAwLDB4M2YsMHhkNCwweDJlLDB4YmQsMHg4MywweGFjLDB4MDAgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4Y2IsMHg4MCwweDNhLDB4YTAsMHhhYywweGI4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4ODQsMHgwMywweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4YzAsMHgwMSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweGJlLDB4YzAsMHgwZSwweGIwLDB4MjMsMHhlYywweDA4LDB4ZmIgfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGQsMHhiNCwweDAzLDB4ZWQsMHgwNCwweGY5LDB4MDAsMHgxZSwweDE0LDB4Y2YsMHhiMCwweDgzLDB4ZTAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4MGMsMHg0MCwweDAzLDB4YWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MmMsMHhiMCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4YjMsMHhlMCwweDBkLDB4ZmEsMHgwMywweDdlLDB4ODAsMHhjZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZmMsMHg0MywweGZmLDB4MjAgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwOCwweGY4LDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MTAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDBhLDB4OGUsMHg0MiwweDJjLDB4MDQsMHhiYiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweDNhLDB4YzAsMHgwZSwweDMwLDB4MDIsMHgwZCwweDA4LDB4ODMgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4MDIsMHgyMiwweGMwLDB4MGEsMHhiYywweDAyLDB4ZWYsMHgwMCwweGJiLDB4YzAsMHgyYywweDY4LDB4MGEsMHhiOSwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwYywweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4MDgsMHhiOCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MjYsMHg0OCwweDE5LDB4YjAsMHgwMiwweDZkLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGVjLDB4MDQgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4YmIsMHgxYywweDJlLDB4MjAsMHgwYSwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4MDgsMHgxNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDBjLDB4MDAsMHg5MywweDA0LDB4MmMgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4YzEsMHgwOCwweDMwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4NDEsMHgwOSwweGI4LDB4MDIsMHgwYywweDAyLDB4ODMgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MDEsMHhhMCwweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgxMCwweDkzLDB4MDAsMHgyYywweDAwLDB4MGEsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg3YywweDAwLDB4Y2YsMHgyOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4MGMsMHhhMCwweDQ2LDB4YWMsMHgxMSwweGJmLDB4MDAsMHgzZiwweGMwLDB4NWMsMHhmMCwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDQgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4YjAsMHgwMywweDZjLDB4MDgsMHhjYiwweDA0LDB4MzEsMHhjMCwweDBjLDB4YjAsMHgzMywweGVkLDB4NDAgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4ZmIsMHgwNCwweDNlLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4YTAsMHgxNSwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgyMywweGZjLDB4MDEsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4YzAsMHg0ZiwweGYwLDB4ODcsMHg3YywweDAwLDB4ZmYsMHgwMCwweDM5LDB4NDAsMHgwZSwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZGMsMHg4MCwweGZmLDB4MDAsMHgzZCwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZWIsMHg0OCwweDNlLDB4YzIgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MGUsMHgwOSwweDAzLDB4YmMsMHg2MCwweGMwLDB4MjAsMHgzNSwweDI0LDB4MGUsMHhkMiwweDEzLDB4MmMsMHg2MCwweGZiLDB4NmEgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4Y2EsMHgwMywweDIyLDB4MjAsMHhjMCwweDgwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4ZWYsMHgwMCwweDMzLDB4MjQsMHgwZiwweGM4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4ODAsMHgxMCwweGRkLDB4MDAsMHg4ZiwweDYwLDB4MmYsMHhkOCwweDA4LDB4YTIsMHgwMiwweGZkLDB4ODAsMHhjOCwweDcwLDB4MjIgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4MDAsMHgyYywweGZkLDB4MDcsMHhkYywweDg0LDB4YmYsMHg2MCwweDIzLDB4ZDIsMHgwYiwweGJkLDB4MDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4ODAsMHhhMiwweDIwLDB4ODgsMHhiMCwweDIyLDB4MzQsMHgwMCwweGJiLDB4NTAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YTMsMHgwMywweDJjLDB4YzIgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4MGEsMHgwMCwweDQyLDB4OGMsMHg4MiwweGEzLDB4MGEsMHgyNCwweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHg5MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4MjgsMHhkOCwweDBiLDB4MTAsMHgwMiwweDhjLDB4MDIsMHg5MCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MTAsMHg0MiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4YjMsMHgwNCwweDI0LDB4YzAsMHgwYiwweDMwLDB4MGUsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDA0LDB4MmMsMHhjMCwweGY4LDB4OTgsMHgwNiwweGVjLDB4MDAsMHhhYiwweDgwLDB4MjYgfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4MjAsMHgwOCwweDkwLDB4MmEsMHhhYywweDEwLDB4YmIsMHgwMCwweDBhLDB4YzAsMHgxYiwweGIwLDB4MjIsMHhhZCwweDAwLDB4OTggfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4NDAsMHgyYSwweDcwLDB4NGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4MDAsMHhhNiwweDg2LDB4MWIsMHhiMCwweDgyLDB4YjAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4OGUsMHg5OCwweDAzLDB4YWMsMHgwOCwweGU4LDB4YzAsMHgzNiwweDMwLDB4NGYsMHhiMCwweDQyLDB4ZWMsMHgwMCwweGY5LDB4ODAgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4M2EsMHhjMCwweDhmLDB4ODgsMHg0MiwweDIwLDB4MTAsMHhjOCwweDEwLDB4MzAsMHhmMCwweDBmLDB4MzAsMHgxMywweDZjLDB4MTAgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4ZWIsMHgwMCwweDM2LDB4ZjAsMHgwZiwweGJkLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhlZiwweDA0LDB4N2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweGRjLDB4MDAsMHhjNCwweDAwLDB4M2IgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4NDAsMHg4YiwweGRjLDB4MDMsMHg3YywweDEwLDB4ZjksMHg5MCwweDM2LDB4YzIsMHg0ZiwweGY5LDB4MjMsMHg2MiwweDQxLDB4YWMgfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MDEsMHgxMywweDQwLDB4MDQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDEyLDB4Y2IsMHgwMCwweGYyLDB4YzAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YWMsMHgwOCwweGQ5LDB4MDAsMHgzYSwweDgwLDB4MGYsMHgxMiwweDAzLDB4YWMsMHgwMCwweGUxLDB4MDAgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweGVkLDB4MDIsMHhjOCwweDQwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgxMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4ZGIsMHgwMCwweDNlLDB4NTAsMHgwYywweGI0LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MTcsMHhjMCwweDA4LDB4OTAsMHgwMiwweDNjLDB4MDgsMHg4ZCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4NTQsMHgwOCwweGI0LDB4MDMsMHgzYywweDAwLDB4ODksMHgwMCwweDIzLDB4YzAsMHg0MCwweDM1LDB4MDIsMHhjYywweDI0LDB4ODAgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHgyMiwweDc0LDB4NGMsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweGQ0LDB4MGEsMHhiMCwweDBhLDB4MzIgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg0YywweDAyLDB4ODMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4MDksMHgwMCwweDAyLDB4OGMsMHgwMSwweDkwLDB4MDAsMHg2YSwweDQxLDB4MGEsMHgzMCwweDIwLDB4NGUsMHgxMCwweDMxLDB4MDIgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MjAsMHgwNiwweGNlLDB4MDAsMHg4MCwweDAwLDB4NjAsMHhlMCwweDBhLDB4MzAsMHg4MiwweDBjLDB4MDggfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4ODMsMHgwOCwweDJjLDB4ZDAsMHgwOSwweGIwLDB4MDIsMHg3OCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHg4NywweGIwLDB4MjAsMHhlYywweDA5LDB4ZTksMHgwMiwweDhlLDB4NTgsMHg5ZCwweGIwLDB4MmIgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4YTUsMHg0MCwweDViLDB4MDYsMHhkZSwweDQwLDB4OTUsMHg5NCwweDJkLDB4ZTQsMHgxOSwweDdiLDB4MDYsMHhkZSwweDAwLDB4ODQgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4ODAsMHg2MCwweGUwLDB4MGEsMHg3OCwweDBhLDB4MTYsMHgxMCwweDg3LDB4ODAsMHgyZCwweDY4LDB4MGIsMHg3OSwweDAyLDB4NDggfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4Y2IsMHhhMCwweDI0LDB4ZTAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4MGYsMHgyYSwweDAzLDB4OGUsMHgwMCwweGQyLDB4ZDAsMHgzOCwweGZhLDB4MGYsMHgxOCwweGMzLDB4Y2UsMHgyNCwweDMxLDB4YjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4M2MsMHhlNSwweDBjLDB4M2IsMHgxNywweGNlLDB4MDQsMHhjMCwweDgyLDB4MzgsMHhjMiwweDllLDB4MTAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4YzMsMHgwMSwweDNlLDB4YzAsMHgwZCwweDgxLDB4MDMsMHg1MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlZiwweDEwLDB4M2UsMHhjMiwweDBlLDB4YjEsMHgyMywweDJjLDB4YzEsMHhhYiwweDAxLDB4MzYgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4ODAsMHgwZiwweGIwLDB4MjMsMHgyZCwweDkwLDB4ZTksMHg4NCwweDcyLDB4YzgsMHg2MiwweGYxLDB4MTcsMHhmYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4MDAsMHgzYiwweGM0LDB4MWQsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDgsMHgzZiwweGM4LDB4MGUsMHhmMSwweDAzLDB4OTAgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDgwLDB4ZmIsMHhhNCwweDNhLDB4YzggfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MmMsMHgwNCwweGNhLDB4MDAsMHgzMCwweDYwLDB4MmQsMHgxYSwweDI3LDB4NmMsMHg4NCwweGNiLDB4NjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4MzIsMHhkMiwweDBjLDB4YTAsMHgxMywweDJkLDB4ODQsMHhjYiwweDAyLDB4M2UsMHhjMCwweDBkLDB4YjgsMHgwMywweGFjLDB4ODAgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4Y2IsMHg4MSwweDMyLDB4ODAsMHgwYywweGIwLDB4MDMsMHhhYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4YTQsMHhiNywweDI4LDB4NzMsMHhjMiwweDA4LDB4ZjAsMHgwMiwweDNjLDB4YzAsMHg4ZiwweDAwLDB4MzEgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4YzAsMHgwOSwweDcwLDB4ODIsMHg5YywweDgwLDB4ODcsMHgwYywweDIwLDB4ZDgsMHgwOSwweDcwLDB4MjIsMHgxYywweDMwLDB4ODQgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4MDAsMHgzZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTQsMHgyNCwweDg3LDB4YTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDEyLDB4MTIgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDQwLDB4YjMsMHg5NSwweDI5LDB4ZTkgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4MGEsMHg2OCwweDAyLDB4OWUsMHhkMCwweDg2LDB4ZjAsMHhhMywweGUwLDB4MDgsMHg3OCwweDEyLDB4OWUsMHg0NCwweGEzLDB4ODIgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4MjEsMHhlOCwweDBiLDB4MzgsMHgwMiwweDBlLDB4MTAsMHg4NywweDgwLDB4MmYsMHhlMCwweDBiLDB4MTgsMHgwMiwweDhlLDB4MDIgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4ODcsMHgwMCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDQ4LDB4MzAsMHgwMiwweDBjLDB4MDQsMHg4MywweDgwLDB4MjAgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4ZDAsMHgwOSwweDEwLDB4MDIsMHg4YywweDA2LDB4YTMsMHg4MCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAyLDB4ODAgfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4NDAsMHgyOCwweGQyLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMSwweDgzLDB4MDAsMHgyMiwweDNjLDB4MDgsMHg4NywweDAyLDB4MTIgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDE4LDB4ZmEsMHgwMCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4OGUsMHhlNCwweDQyLDB4MjgsMHgwMiwweGNlLDB4ODAsMHgzMywweDgwLDB4NGQsMHhhMCwweDgzLDB4ZTgsMHgwMCwweGVhLDB4YTAgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4YjIsMHg4MCwweDBhLDB4YTAsMHgwYSwweDI4LDB4MDAsMHhjZSwweDE4LDB4MmYsMHg4MCwweDBmLDB4YTAsMHgxMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4OTAsMHgyYywweGFjLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA0LDB4M2EsMHgwMCwweDBmLDB4ODAsMHg4MywweGMwLDB4MDgsMHhlOCwweDAzLDB4M2EgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MjIsMHhjMCwweDAwLDB4ZDAsMHgwMCwweDdlLDB4MTAsMHhhNCwweDgwLDB4MDMsMHhjMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4MGQsMHg4NCwweDAzLDB4YzAsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwLDB4MGYsMHg4MCwweDAxLDB4NTIgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMiwweDg5LDB4MDQsMHgzMiwweDQyLDB4MGQsMHg5MiwweDAzLDB4ZTYsMHg0MiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4MzIsMHg3MCwweDBlLDB4MTIsMHgwYiwweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0NSwweDBlLDB4OTksMHgwMywweGU0LDB4MDIgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NTAsMHgwNCwweDk0LDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4NTQsMHgwYiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4MDAsMHgzOCwweDQ4LDB4MDgsMHg5MCwweDgyLDB4ZTQsMHgwNCwweGQ5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHgwMSwweDJjLDB4NDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgxMCwweDQyLDB4NjQsMHgwMCwweGExLDB4MDQsMHgyMiwweDUwLDB4MDEsMHg5MCwweDQyLDB4ZTQsMHgwMCwweDg5LDB4MDQgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4MjAsMHg0MiwweDBhLDB4OTAsMHg0MiwweDM0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDBhLDB4OTAsMHgwMCwweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4ODksMHgwMCwweDIzLDB4NDAsMHgwYSwweGQwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDI0LDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhhMSwweDIwLDB4MjggfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHg4NSwweDgwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwOCwweDUwLDB4NjIsMHgxNCwweDAyLDB4ODEgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4MDMsMHgyZSwweDQwLDB4ODgsMHgxNiwweDgyLDB4YzQsMHhhMCwweDkxLDB4MjgsMHgyMSwweDQwLDB4MmEsMHg1MCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHg1MCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4NjEsMHg0MCwweGU4LDB4NTAsMHhiMiwweDE1LDB4NGQsMHg4MCwweDAyLDB4YzAsMHgwMCwweDQ4LDB4NTAgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4YjIsMHgxNSwweDFhLDB4ODAsMHgxMywweDMwLDB4MDgsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODIsMHgwMywweGUwLDB4ODAgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4YzAsMHgyMCwweDMwLDB4MDAsMHgwZSwweDQwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhkZCwweDEwLDB4MzcgfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4NDAsMHgwZiwweGQ0LDB4MDcsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNlLDB4NDUsMHgwZiwweDk0LDB4MDMsMHhlNSwweDA4LDB4ZmQgfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MDIsMHgzOSwweGQwLDB4MGYsMHhkMCwweDQzLDB4ZjQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRiLDB4MGQsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4YzksMHhhNiwweDMyLDB4NjggfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTYsMHg4MSwweGU5LDB4ZTksMHgzYiwweDQwLDB4MGUsMHg1OCwweDAzLDB4MzYsMHgyMCwweGM5LDB4YTAgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4MzcsMHg3OCwweDBkLDB4ZGEsMHgwMywweDM2LDB4MjYsMHhjNSwweDAwLDB4MzcsMHg2OSwweDBlLDB4ZGUsMHgwMywweGE2LDB4ODIgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4YTQsMHg4OCwweGE5LDB4MjIsMHgzYSwweDA4LDB4MDgsMHgwMCwweDIyLDB4YTAsMHhiOCwweGU1LDB4MzAgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4MjAsMHgyOCwweDgwLDB4MjIsMHg0MywweGEwLDB4MDgsMHhlOCwweDJhLDB4M2QsMHgwOCwweGE0LDB4NjIsMHgyMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MDAsMHgyZSwweDEwLDB4MDgsMHg4ZSwweDAzLDB4MjMsMHhhMCwweDg4LDB4YTAsMHgyMCwweDI4LDB4MGIsMHg4YSwweDgyLDB4MGUgfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4OTEsMHg0MCwweDIwLDB4NDQgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MDgsMHg5MCwweGEyLDB4ODUsMHgxMCwweGExLDB4MjAsMHgyYywweDQyLDB4MGIsMHgxNCwweDEyLDB4OGMsMHgwMSwweDkxLDB4MTAgfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4MmMsMHg0OCwweDA5LDB4MTEsMHgwYSwweGM0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4MTEsMHgxMiwweGM1LDB4MDEgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4YjEsMHg0MCwweDI0LDB4NDgsMHgwYiwweDE4LDB4MGUsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0MSwweDA4LDB4OTQsMHg0MiwweDI0LDB4MDAsMHhiMSwweDQwLDB4MjAgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NDAsMHg0OSwweGIyLDB4NjIsMHgyNCwweDAwLDB4OTksMHgwMCwweDBhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNSwweDgwLDB4ODkgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MDksMHhiMCwweDAyLDB4MjQsMHg4MCwweGI5LDB4MDAsMHgyNiwweDUwLDB4NGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAyLDB4ZDksMHgwMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4MmMsMHg5NSwweDEzLDB4YTQsMHgxMCwweGU5LDB4MDAsMHhiZSwweDYwLDB4OGYsMHg5MCwweDBiLDB4YTQsMHgxMCwweDU5LDB4MDAgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4MWUsMHg0MCwweDlkLDB4OTQsMHgyMywweGU0LDB4MDIsMHg4OSwweDAwLDB4MzQsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDggfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4NzksMHgwMCwweGI2LDB4NDAsMHgwNywweDk4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhlOSwweDAyLDB4M2MsMHg0MCwweDJmLDB4OTgsMHgwMiwweGU0LDB4MDAsMHhmOSwweDQyLDB4M2EgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4NjgsMHgwYSwweDEwLDB4MDMsMHhlNCwweDEwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4MGYsMHgyNiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MDQsMHgzZSwweDQwLDB4MGUsMHgxYywweDAzLDB4ZTYsMHgwMCwweGMxLDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5OSwweDgzLDB4Y2EgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MGMsMHg4NCwweDAzLDB4MjAsMHgwMCwweGQ4LDB4NDIsMHgzMiwweDA0LDB4MGMsMHg4OCwweDEzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDQsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBlLDB4ODAsMHgyMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4YzgsMHg4MCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MTAsMHg4YSwweDAwLDB4MmUsMHg4MCwweDI4LDB4MjAsMHgyMiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4YjAsMHg4OCwweGUwLDB4MDIsMHgyOCwweDEwLDB4ZGEsMHgwMCwweGEzLDB4YjQsMHgwOCwweGU4LDB4MTAsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MjAsMHgyMywweGEwLDB4NDgsMHhlZCwweDFhLDB4MjgsMHgwMCwweGRlLDB4MDAsMHgyMywweDkwLDB4MGEsMHhlMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YTMsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4MDgsMHgzMCwweDBhLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGMyLDB4MmEsMHgzMCwweDIyLDB4YTQsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4MDgsMHhlMCwweDE4LDB4MDksMHgwYSwweDRjLDB4MDAsMHg5MywweDAyLDB4MjQsMHhlOCwweDAyLDB4MDgsMHgwNiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4OTMsMHgwMCwweDIwLDB4ZDgsMHgwYSwweDkwLDB4MDIsMHg0YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4ODAsMHg4NywweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBlLDB4MDAsMHg4NywweDEwLDB4MjUgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwYSwweDYwLDB4MDIsMHg1ZSwweDAwLDB4OTcsMHgwMCwweDI5LDB4ODIsMHgwOCwweDUwLDB4MTIsMHg1NCwweDAwLDB4OGYgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4ODAsMHg2MSwweGQwLDB4MDgsMHgwNCwweDAyLDB4NWMsMHgwMSwweGI3LDB4MDgsMHhhOSwweGEwLDB4MGEsMHg1MCwweDgyLDB4NjggfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDgwLDB4ZTcsMHg4MCwweDM4LDB4ZTQgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4MDgsMHg3ZSwweDAzLDB4MWYsMHgwMCwweGRmLDB4ODAsMHhiMSwweDIxLDB4MWUsMHg3OCwweDAzLDB4ZGMsMHgwNCwweGYzLDB4ODAgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4NWIsMHhlMSwweDA4LDB4MjgsMHgwMywweDVlLDB4MDAsMHhkNywweDgwLDB4MzUsMHg2MCwweDBlLDB4NjgsMHgwMywweDRlLDB4MDAgfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4ZGYsMHg4MCwweDMxLDB4ZTAsMHgwZSwweGY4LDB4MGIsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDIsMHhmYiwweDc0LDB4M2UsMHhkMCwweDRmLDB4YjIsMHg4MywweGVkLDB4MDAsMHg3YiwweDY4LDB4M2EgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4MDAsMHg4ZCwweDgwLDB4MDMsMHhhNCwweDIwLDB4ZGIsMHgwMSwweDM2LDB4ODAsMHg2ZiwweGIwLDB4NDEsMHg4NCwweDAwLDB4ZWIgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4MDAsMHgzYywweGMwLDB4MGYsMHhlNiwweDgzLDB4YmMsMHg0MCwweGRiLDB4MDAsMHhiNiwweDgwLDB4MGYsMHhiMCwweDAzLDB4ODIgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDIwLDB4ZGYsMHhjMCwweDNiLDB4ZTYgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MGUsMHhmOCwweDEzLDB4ZmYsMHg0NCwweGM3LDB4ODIsMHgzYiwweGUwLDB4MGYsMHhmOSwweDAzLDB4YmUsMHgxMCwweGNmLDB4YzggfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4MzMsMHg2MCwweDhkLDB4ZWIsMHgwMywweDNlLDB4MDAsMHhkYiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZDgsMHgwMywweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4Y2UsMHg4MCwweDMzLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4YTgsMHgxMSwweGJjLDB4NDAsMHg4NywweDAwLDB4MjEsMHhlNCwweDBiLDB4NzgsMHhhMiwweGNlLDB4OTAsMHhjNywweGIwLDB4MjAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4ZTgsMHgwYiwweDI4LDB4OTIsMHhiNiwweDg4LDB4ODcsMHhhMCwweDIwLDB4NjQsMHgwYiwweDM1LDB4MDMsMHgxNCwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4YjIsMHgzOSwweGMwLDB4MmMsMHhjMCwweDAzLDB4NWUsMHgwMiwweGNmLDB4MDAsMHgzMSwweGNlLDB4MGIsMHg3NiwweDEyLDB4MmEgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTMsMHgxMCwweDI5LDB4YzggfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4MGIsMHg3NCwweDAyLDB4ZGMsMHg4MCwweDhmLDB4MDAsMHgyOSwweGNjLDB4MGEsMHgzMCwweDA2LDB4MTQsMHg4MCwweDg3LDB4MTAgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NjYsMHgwMiwweDVjLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NTEsMHgwMiwweDFjLDB4ODAgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4OTYsMHgwMCwweDIxLDB4YzAsMHg1YiwweDc0LDB4ODIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhhMywweDAwLDB4MjAsMHhjMCwweDBiLDB4YjgsMHgwMiwweGNjLDB4MDAsMHg4YiwweDQwLDB4YTggfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4YzAsMHg4YiwweDA4LDB4MjIsMHg4YywweDAyLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4NDAsMHgyOCwweGZjLDB4OGEsMHgwMCwweDAyLDB4NmUsMHgwMCwweDgzLDB4MDAsMHhhMCwweGQwLDB4OGIsMHgzOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4NGYsMHhmOCwweDAyLDB4ZmMsMHgwMiwweGNmLDB4MDAsMHgzOCwweDEyLDB4MGUsMHg5OCwweDAyLDB4MmMsMHgwMCwweGNmLDB4MDAgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4MzIsMHhjMCwweDA5LDB4OTAsMHgwMywweDY0LDB4MDIsMHg4MSwweGMwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgwNywweDNjLDB4MDMgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4ZDksMHgwMCwweDMyLDB4NjAsMHgwZiwweDg4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhkYiwweDAwLDB4M2UsMHhjMCwweDhmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAyLDB4MzYgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4YzAsMHg0ZiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZmIsMHgwMCwweGJlLDB4OTAsMHgwZiwweDljLDB4MTMsMHhlYywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4MTgsMHgzYSwweGQwLDB4MDQsMHhkNSwweDAzLDB4ZWMsMHg0MCwweGU5LDB4MDAsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDNkLDB4YzEgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4OGMsMHhmMCwweDAzLDB4MmMsMHgwMCwweGVmLDB4MGEsMHhiMywweDEyLDB4MmMsMHg3MCwweDIzLDB4MTQsMHgwYSwweDRmLDB4MDAgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MzUsMHg2MCwweDBkLDB4YjAsMHgwMywweDA0LDB4MDAsMHhjZCwweDgwLDB4MDcsMHhlOCwweDBjLDB4YzQsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4Y2QsMHgwMCwweDMxLDB4ZTIsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDIsMHhhYiwweDAyLDB4MmUsMHhjMCwweDBlLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MzAsMHgwMCwweDljLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwNCwweDIyLDB4MzYsMHgwOCwweDM0LDB4NGEsMHgyYywweDA4LDB4ODkgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4OTAsMHgyMCwweGI4LDB4MGYsMHg4NCwweDAwLDB4YWMsMHgwMiwweDg5LDB4MDAsMHgzNiwweGEwLDB4MDgsMHhhNCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQxLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4MjYsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI2LDB4MDAsMHg4YiwweDAwLDB4MjYsMHhjMCwweDU4LDB4MTAsMHgxMiwweDJjLDB4MDQgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4ODIsMHg4MCwweDJhLDB4NDksMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhMywweDE0LDB4MmMsMHhjOCwweDFhLDB4MzQsMHg4YSwweDBjLDB4ODQsMHg4MywweDQwLDB4MjIgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4YzgsMHgwOCwweDAzLDB4NjIsMHg0YywweGMwLDB4YTMsMHg2MCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4NDUsMHgwOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4OGMsMHhhMCwweDgzLDB4MDAsMHgyNiwweDQwLDB4MDgsMHgzMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4Y2YsMHg0MCwweDJmLDB4ZDIgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4OGMsMHhmNiwweDAzLDB4M2MsMHgyMiwweGNmLDB4NDAsMHgzMiwweGQ2LDB4NGMsMHhhNiwweGMxLDB4M2QsMHhhMCwweDg3LDB4NDggfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4MzYsMHgwZCwweDBmLDB4YjEsMHgwMiwweDI0LDB4NDIsMHhjYiwweDYwLDB4MTYsMHhjMCwweDBjLDB4ZDAsMHgwMywweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDIwLDB4M2UsMHhjYSwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhkYiwweDM0LDB4M2EgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4YzgsMHgwZiwweDgwLDB4MDMsMHhlNCwweDEwLDB4ZGIsMHgyMSwweDNlLDB4MTgsMHgwZCwweGYyLDB4MDMsMHhmYywweDgwLDB4ZmYgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MzAsMHgzNSwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhmYywweDAwLDB4ZmIsMHgwYiwweDJmLDB4Y2EgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4OGQsMHhmMiwweDAzLDB4ZmEsMHgwMCwweDk2LDB4ODAsMHgzYiwweGM0LDB4MGQsMHhmMSwweDAzLDB4N2MsMHg4MCwweGVjLDB4ODAgfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4M2IsMHgwOCwweDBjLDB4YzIsMHgwMywweDc0LDB4MDIsMHhjYywweDgwLDB4M2YsMHg0OCwweDBlLDB4ZjAsMHgwMywweDMwLDB4YTAgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4ZDUsMHg4MCwweDNmLDB4NDAsMHgwYywweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4ODAsMHgwOCwweGVlLDB4NDAsMHhiZiwweDgwLDB4MmYsMHhmMCwweDBiLDB4ZjcsMHgyMiwweGVlLDB4MjAsMHg4YSwweDgwLDB4MjMgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4ZmMsMHg4OCwweDc1LDB4MTIsMHgzZCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MDAsMHgyOCwweDgwLDB4MDIsMHgyNCwweDA4LDB4ODggfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4MDAsMHg2ZiwweDUwLDB4MDAsMHhmNSwweDAyLDB4MjksMHgwMCwweDg5LDB4MDAsMHgyZSwweDU0LDB4MGQsMHg5MCwweDExLDB4YTAgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzEgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4MDksMHgzMCwweDgyLDB4Y2MsMHg4MiwweGJiLDB4MDAsMHgyOCwweGMwLDB4NDksMHgzMiwweDAyLDB4Y2QsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4MmMsMHg1MCwweDA5LDB4MDEsMHgwMiwweDBjLDB4NDAsMHg4MCwweDAwLDB4NmMsMHg0NCwweDA5LDB4MzAsMHgwMiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4YjAsMHgwMCwweDJjLDB4NDAsMHgxOCwweDMwLDB4MDYsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4YzAsMHgwMSwweGFjLDB4MDAsMHhiYiwweDAxLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGVlLDB4MDAsMHhhYSwweDAwLDB4NGEgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NTIsMHhlYywweDAwLDB4OTgsMHgwMiwweDI2LDB4NDAsMHgwOSwweDgwLDB4MDIsMHg2YywweDAxLDB4YWEgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MDksMHhiMCwweDAyLDB4MjIsMHgwMCwweGE5LDB4ODAsMHgyZSwweDQxLDB4MDksMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4Y2UsMHg4NCwweGZhLDB4MDAsMHgxYSwweGMwLDB4OGQsMHhiMCwweDQzLDB4ZWMsMHgwMCwweGYwLDB4MDIgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4M2YsMHgwMCwweDBkLDB4ZDEsMHgwMywweDM1LDB4MDAsMHhjYiwweDQ4LDB4MmUsMHg0MCwweDJmLDB4YjAsMHgwOSwweDIyLDB4ODAgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4ZjksMHhjOCwweDFlLDB4ZTAsMHgwOCwweGIxLDB4ZTIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHg3YiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhkZSwweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4YzAsMHg0ZiwweGYwLDB4MDMsMHgyYywweDAwLDB4ZWMsMHgyMCwweDNiLDB4MDAsMHgwZSwweDk4LDB4MDMsMHg5NCwweDAyLDB4ZGQgfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4NGUsMHhmMCwweDAxLDB4ZjgsMHgwMCwweGRkLDB4MDAsMHgzYywweGU0LDB4MGYsMHhkOCwweDAzLDB4YjggfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweGMwLDB4ZmIsMHgyMCwweDMyLDB4YzggfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4OGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzYSwweGMyLDB4MmMsMHgzMCwweDAzLDB4NmMsMHgwNCwweGQ4LDB4MDIgfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4M2MsMHg0NCwweDhkLDB4MTAsMHgwMywweGFkLDB4MDMsMHhlYSwweDAwLDB4M2MsMHg0MCwweDBjLDB4NzAsMHgyMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4YzgsMHg0MCwweDNhLDB4YzAsMHgwZCwweGJjLDB4MDMsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4YzgsMHgwMSwweDNkLDB4MDAsMHhiZiwweDQyLDB4MjMsMHhmMCwweDBkLDB4ZjAsMHgwMiwweGU1LDB4MDAsMHhlMiwweDAxLDB4MzcgfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4ZjEsMHgwOCwweGYwLDB4MGUsMHgzZCwweGMwLDB4YTgsMHgwMCwweDJlLDB4NTQsMHgyOCwweDkwLDB4MDIsMHgyYywweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4MDUsMHgzYiwweDQxLDB4NDgsMHhmNSwweDAzLDB4OGMsMHgwMCwweDg5LDB4MDAsMHgyMiwweGQ0LDB4MGUsMHg5NSwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHgwNCwweDIwLDB4YzAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4ODksMHgzMCwweDAyLDB4Y2MsMHg0MCwweGIyLDB4MDAsMHgyYywweGM0LDB4NDgsMHgzMCwweDAyLDB4MmMsMHgwMiwweGEyLDB4MDAgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MmMsMHgyMCwweDE5LDB4MjAsMHgxYSwweDgwLDB4MDgsMHhiMCwweDAwLDB4NmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NDAsMHgwOCwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweGEwLDB4ZTEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRmLDB4MDQsMHhhZSwweDgwLDB4MmQgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4ZTAsMHgwOCwweDc5LDB4MDIsMHgxZSwweDEwLDB4ODcsMHg5MCwweDJjLDB4MjgsMHgyOSwweDY4LDB4MDIsMHg4MiwweDgxLDB4YjQgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4ODAsMHgyZCwweDYwLDB4MDgsMHg3OCwweDEwLDB4YmMsMHgwMCwweDhmLDB4ODAsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDA1LDB4ZjMsMHg5MiwweDMwLDB4Y2EgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4MGQsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGYzLDB4MDAsMHgzYywweGMwLDB4MGMsMHgzMCwweDAyLDB4MGMsMHg4MCwweDcwLDB4MDAgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4MmMsMHg0MCwweDBkLDB4MjAsMHgwMywweDg5LDB4MDAsMHhiMSwweDAwLDB4M2UsMHg0MCwweDJjLDB4MzAsMHgwMywweGVjLDB4NTAgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4YzMsMHgyMCwweDNjLDB4NDAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2MsMHhjMCwweDBlLDB4YjAsMHg4MywweGVjLDB4NDAsMHhlYSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4YzIsMHgwZiwweGIwLDB4ODMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4NDgsMHgwZSwweGUwLDB4MGIsMHg3YSwweDgwLDB4Y2YgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgzYiwweDQ0LDB4MGYsMHhmMCwweDAzLDB4ZWMsMHhjMCwweGZmLDB4MDAsMHgwMywweDQ0LDB4MGUsMHhlMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMywweDNlLDB4YzggfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MWQsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGNhLDB4MDAsMHgzZSwweGM4LDB4MGMsMHhiMiwweDAzLDB4MmQsMHg5MCwweGM4LDB4ODQgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4MzYsMHgwMCwweDJkLDB4YjAsMHgwMywweDYwLDB4MTgsMHg5YiwweDgwLDB4MzMsMHg1MCwweDBjLDB4ZjIsMHgwMywweGUyLDB4MDAgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweGI4LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDI4LDB4MGMsMHhkMiwweDI4LDB4NzMsMHgwMiwweGZjLDB4MDAsMHg4NiwweDA0LDB4MmMgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4Y2MsMHgyOCwweDcwLDB4ODMsMHgwYywweDIwLDB4OTUsMHgwMSwweDIwLDB4MDAsMHgwOSwweDMwLDB4MTIsMHgxMCwweDA0LDB4ODUgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4MDAsMHgyMSwweDUyLDB4MDgsMHg3NSwweDAyLDB4ZDgsMHgwMCwweDg3LDB4MDAsMHgyMSwweDQwLDB4MDgsMHg2MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweGQ0LDB4YjcsMHhiMSwweDA5LDB4ZTEgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4MDgsMHg3OCwweDIyLDB4ZGUsMHgwMCwweDk1LDB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OCwweDBhLDB4NWUsMHg0MiwweDk0LDB4YzAgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4MjEsMHg2MCwweDA4LDB4NzgsMHgwMiwweDVhLDB4MDAsMHg4NywweDgwLDB4MmQsMHg2OCwweDA4LDB4N2EsMHgwMiwweGQ3LDB4MDAgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4OTcsMHg4MCwweDIwLDB4NjAsMHgwOSwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4NDgsMHgxMCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGNkLDB4ODAsMHg5MiwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHhjYywweDAwLDB4OTAsMHg4MCwweGEwLDB4NDAsMHgwOSwweDM2LDB4MDIsMHg0OCwweDAyLDB4ODMgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4YTAsMHhhYywweDQwLDB4MmEsMHgzMCwweDA2LDB4Y2UsMHgwMiwweDkzLDB4MDQsMHhhMCwweDQwLDB4MDksMHgyMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGRlLDB4ODAsMHgzZSwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCwweGNlLDB4ODAgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MzIsMHg4MCwweDBjLDB4YTQsMHgwMywweDc4LDB4MDAsMHhjZSwweGE0LDB4M2YsMHg4MCwweDBjLDB4YTAsMHgwNywweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyZCwweGUwLDB4MDIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmOCwweDAwLDB4N2MsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2MgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4MDEsMHhjZiwweDgwLDB4MGYsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZSwweDA0LDB4MDMsMHg5MCwweDAwLDB4ZTggfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MGQsMHg4MCwweDA3LDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDA0LDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDdlLDB4NDEgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDY4LDB4MGUsMHg5MCwweDBmLDB4YTQsMHgwOCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI0LDB4MTIsMHhlOSwweDAwLDB4M2UsMHg0NCwweDJjLDB4OTAsMHgwMywweDY0LDB4MjQgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4ZjksMHgwMiwweDJlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MTAsMHhiOSwweDgwLDB4M2UsMHg0MCwweDA4LDB4OTAsMHgwYSwweDI2LDB4MDAsMHhiMSwweDEwLDB4MmEgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4NzIsMHgwOCwweDkwLDB4MDcsMHg2NCwweDAyLDB4ODksMHg0MCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MTIsMHgyNSwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4NDUsMHgzZSwweDUwLDB4MGQsMHg5MCwweDBhLDB4MjUsMHgwMCwweGI5LDB4NDAsMHgyZSwweDQwLDB4MjgsMHg5NCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4NDgsMHg5MCwweDQyLDB4MjYsMHgwMSwweGI5LDB4NDAsMHgyNiwweDQwLDB4MGEsMHg5MCwweDQyLDB4ODQsMHgwMSwweDhiLDB4MDggfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4MmMsMHg0MCwweDA5LDB4ZDAsMHg4MiwweDM0LDB4MzIsMHhhOSwweDA4LDB4NmUsMHg0MiwweDA4LDB4MTAsMHgwMiwweDI0LDB4MjAgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4YjksMHgwOCwweDJjLDB4NDAsMHgxOCwweDkwLDB4ODIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMywweDIwLDB4MjgsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDEsMHhiMSwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4NTgsMHgwOCwweDEyLDB4MDIsMHgwNSwweDg5LDB4ODEsMHg0MCwweDJjLDB4NTgsMHgwOCwweDU2LDB4MDYsMHgxNSwweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4NDAsMHgyOCwweDUwLDB4MDksMHgxNCwweDAyLDB4MDUsMHg4MCwweGIxLDB4NDAsMHgyYywweDVhLDB4MDgsMHgxNCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MmUsMHg4NSwweDAzLDB4MjEsMHg0OCwweGY4LDB4MDAsMHgzNiwweDAwLDB4OGUsMHgwNSwweDAyLDB4YTAsMHgwOCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHgwYiwweDEwLDB4MDQsMHhlMCwweDAwLDB4MmMsMHgwMCwweDRjLDB4ODAsMHgwMywweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4ZjAsMHgwMCwweDNlLDB4MDgsMHgwYywweDAwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgwMywweDNmLDB4NDQsMHgxZiwweDkxLDB4MWIsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MDEsMHgzZiwweDUwLDB4MGUsMHg5NCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4YTYgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4Y2QsMHhhMCwweDcxLDB4NjggfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4OGQsMHg5OCwweDAzLDB4ZDQsMHgwMCwweGNkLDB4MDAsMHgzMywweDYwLDB4MGMsMHg5OCwweDhmLDB4MjcsMHgyMCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4M2UsMHg3OCwweDBjLDB4OWUsMHg4YiwweDI3LDB4MjAsMHhkMSwweDExLDB4MzAsMHg2MCwweDhjLDB4OWMsMHgwMywweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4ZjksMHg0MCwweDNlLDB4NzgsMHgwZiwweDkwLDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MTAsMHg4OCwweDAxLDB4MjIsMHgwMSwweDA4LDB4OGMsMHgyMiwweGU4LDB4MDAsMHg4OCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MTQsMHgwOCwweDhjLDB4MGIsMHgyMywweDkwLDB4ODgsMHhhMCwweDJlLDB4YjAsMHgwOCwweDhjLDB4NDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4YTAsMHgzNiwweDJhLDB4MTgsMHg4YSwweDAyLDB4MjIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM0LDB4MGIsMHhjYSwweDgyLDB4MGUgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHg0MCwweDI0LDB4NTAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDksMHgxNiwweDgyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMiwweDkyLDB4NTQsMHgwOCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4MmYsMHg0YywweDA5LDB4NTIsMHgxMiwweDE0LDB4ODAsMHg5ZCwweDAwLDB4MjEsMHg1MCwweDA4LDB4NTQsMHgyMiwweDE0LDB4ODAgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4YjUsMHgwMCwweDJkLDB4NDgsMHgwYiwweGQwLDB4MDIsMHg0MiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MDIsMHg4OSwweDAxLDB4YTIsMHg0MCwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDIsMHhhOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4NDAsMHg2OCwweDkwLDB4MDIsMHg2NCwweDEwLDB4YWQsMHgwMCwweDJmLDB4NDEsMHgyOCwweDUwLDB4MDIsMHgzNCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4NDQsMHgyNywweDQwLDB4MzksMHhkMCwweDAyLDB4MzUsMHgwMCwweGJkLDB4MTQsMHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhjNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4MmQsMHg5MCwweDAzLDB4ZTcsMHgwMCwweGUxLDB4ZTAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDBiLDB4NjQsMHgwMiwweGM5LDB4MDggfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4M2MsMHg1MCwweDBjLDB4OTAsMHgwMiwweDI2LDB4MDIsMHhkOSwweGMwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweDI3LDB4MDAgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4ZjksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDIsMHhmOSwweDAwLDB4MzgsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhkOSwweGEwLDB4M2MgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4NDAsMHgwZiwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZDksMHgxMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDkyLDB4ZjkgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4MjEsMHgzYywweDQwLDB4MmUsMHg5MCwweDBmLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDQwLDB4ZTgsMHgxMCwweDNlLDB4MDQgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4NGUsMHg4MCwweDAzLDB4MjAsMHg4MCwweGQ4LDB4NjAsMHgzYSwweDAyLDB4MGMsMHg4MCwweDEzLDB4MjAsMHgwMCwweGY4LDB4NDAgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4MzYsMHgxMCwweDJkLDB4ODAsMHgwMywweGEwLDB4MDgsMHhlOCwweDQwLDB4MzIsMHgwMCwweDBkLDB4MDAsMHgwMywweDIxLDB4MDIgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4YzgsMHg0MCwweGIyLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MjgsMHgxMSwweDNiLDB4MTAsMHg4NiwweDAxLDB4MmYsMHhhMCwweDBkLDB4YTAsMHgwMiwweDM4LDB4MDAsMHg4ZSwweGUwLDB4MjMgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4YTIsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHg4MCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODIgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MjgsMHhhMCwweDAyLDB4MmEsMHgwNCwweDhhLDB4ODAsMHgyMiwweGEwLDB4MGIsMHg2MCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MywweDgwLDB4YTIsMHgwMCwweDJjLDB4YTAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHgwMCwweDkyLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4MjQsMHhjMCwweDA5LDB4MzAsMHgwYSwweDhjLDB4MDAsMHhhMywweDAwLDB4NjAsMHhjMCwweDA4LDB4MzAsMHgwYSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwYiwweDIwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDA5LDB4M2EsMHgwMiwweDM1LDB4MDAsMHg4NiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHgxMCwweDAwLDB4YmYsMHg4OCwweDIxLDB4MDAsMHgwOCwweDcwLDB4MDIsMHgxYywweDA4LDB4OGYgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4MDAsMHgyYiwweGMwLDB4MDgsMHgyMCwweDEyLDB4NWUsMHgyMCwweDg3LDB4ODgsMHgyMSwweDgzLDB4MGIsMHg2MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZTUsMHg4MSwweDNkLDB4YTAgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4MmMsMHg3YSwweDBiLDB4MWUsMHgwMCwweGQ0LDB4ODAsMHgzOCwweGUwLDB4MGMsMHhmYSwweDBiLDB4MWUsMHgwMCwweGY2LDB4ODAgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4MzQsMHhlMCwweDBkLDB4MjgsMHgwMywweDhhLDB4MDAsMHhlNiwweDgwLDB4MzEsMHgyMCwweDBjLDB4NzgsMHgwMywweDdhLDB4MDQgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4Y2UsMHg4NCwweDMxLDB4ZTAsMHg0ZiwweDc4LDB4NDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4MDgsMHgwZCwweDgwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgyMywweGU0LDB4MDAsMHhmMCwweDA0LDB4MzYgfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4NDAsMHgwZiwweGI2LDB4ODcsMHhlMCwweDAwLDB4ZjIsMHgwMCwweDNlLDB4MDAsMHgxZiwweGEwLDB4MGIsMHhlOCwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHhhMCwweDAzLDB4YTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MCwweDMzLDB4YTAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MGMsMHhmYywweDAzLDB4M2UsMHgwMCwweGZjLDB4ODAsMHgzNywweGUwLDB4MGYsMHhiOSwweDIxLDB4M2UsMHgwMCwweGZkLDB4ODIgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHgwMywweDdlLDB4MTAsMHhkZiwweDg0LDB4M2QsMHhlMCwweDBjLDB4ZjgsMHgwMywweGY2LDB4MDAgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4NjAsMHgwYywweGU4LDB4MjMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4YTgsMHgxMSwweDk4LDB4NDAsMHg4NCwweDEwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDEwLDB4ODAsMHhiNCwweDAwLDB4MjEgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4YzgsMHgwYiwweDdhLDB4MDIsMHgxMCwweDAwLDB4ZmQsMHgwMCwweDIxLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDQyLDB4ODcgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgyZCwweGM0LDB4NDgsMHg2MSwweDAyLDB4ZDYsMHg4MCwweGI1LDB4MDAsMHgyZiwweDA0LDB4MDgsMHg2MSwweDgyLDB4MmEgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ODEsMHgwMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MWMsMHgxMCwweGJjLDB4MDgsMHgyNSwweDgwLDB4NGIsMHgzMCwweDBlLDB4MWMsMHgwMCwweGI0LDB4MDAgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MjAsMHgwMiwweDU4LDB4MDAsMHg5NiwweDAwLDB4MmYsMHgwMCwweDBhLDB4NzAsMHgwMiwweGQwLDB4ODAgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4YjQsMHgxOCwweDJkLDB4NDAsMHgwOSwweGY4LDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDIsMHg4MCwweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgyMiwweDBiLDB4YzAsMHhiMCwweGMwLDB4MjIgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4ODAsMHgwYiwweDMwLDB4MDIsMHgwMCwweDAwLDB4YTAsMHgwNCwweDIyLDB4MDAsMHgyOCwweGEwLDB4MDIsMHgyYiwweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4MDAsMHgyYywweDAwLDB4MDgsMHhhMCwweDA2LDB4YzAsMHgwMCwweGIwLDB4YzIsMHgyYywweDAwLDB4MDksMHhiYywweDFhLDB4MDggfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4MGMsMHhmMCwweDBiLDB4MjYsMHgwMCwweGY5LDB4YzAsMHgzNiwweDAwLDB4MGYsMHhmMCwweDEzLDB4MmMsMHgxMCwweGJiLDB4NDAgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4ZjIsMHhjMCwweDA4LDB4OTAsMHgwMywweDY3LDB4MDAsMHhkOSwweDgwLDB4M2UsMHhjMCwweDA4LDB4OTAsMHgwMiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4ZmIsMHhkMCwweDNlLDB4YzAsMHgyOSwweDhjLDB4MDAsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQ0LDB4M2MsMHhkMCwweDJmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDIwLDB4M2UgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4NDAsMHgwZiwweDMwLDB4MDMsMHhlMCwweDAwLDB4ZmIsMHgwOCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDQyLDB4ZjkgfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWUsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwLDB4MGUsMHg4MiwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlMCwweDA4LDB4ZmMsMHg4MCwweDMyLDB4ZTQgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4MGUsMHhmMCwweDAzLDB4NzQsMHgwMCwweGZjLDB4MDAsMHgzZiwweDQwLDB4MGMsMHhmMCwweDBiLDB4M2MsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4M2YsMHhjMCwweDBkLDB4YzEsMHgwMywweDIwLDB4MjAsMHhjYywweDEwLDB4MzMsMHgwMCwweDBjLDB4ZDEsMHgwMywweDU4LDB4MDAgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4Y2UsMHgwMCwweDJmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4ODEsMHg0NCwweDYyLDB4MDAsMHhiMCwweDQwLDB4MmEsMHhmMSwweDA4LDB4YjAsMHgxMiwweDI2LDB4MDgsMHhiOCwweGM4LDB4MmUgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4NzAsMHgwYSwweGIwLDB4MDIsMHgyMCwweDAwLDB4YmEsMHgwMCwweDJlLDB4MDAsMHgyOCwweDgwLDB4MDMsMHgyMiwweDQwLDB4ODggfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MGEsMHg4MCwweDAyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyZSwweDgwLDB4OGIsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNiwweDAwLDB4YjgsMHgyOCwweDIyLDB4NDIgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDMwLDB4ODgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDEgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4MmUsMHhjMCwweDg4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MGMgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4ODksMHgwMSwweDJlLDB4NDAsMHgxYiwweDgwLDB4MDIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjgsMHhjMCwweDI4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMCwweDAwLDB4YjEsMHgwMCwweDJjLDB4MDAsMHgwOCwweDEwLDB4MGEsMHgwNCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4MDEsMHhhMiwweGMwLDB4MDgsMHgwMCwweDBhLDB4MDQsMHg4MCwweDgxLDB4MDAsMHgyYywweDAwLDB4MWIsMHgwMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4MGUsMHhmMCwweDIzLDB4NjQsMHgwOCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHhmMCwweDAzLDB4MmMsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDIsMHhjOCwweDA0LDB4MzIsMHgwMCwweDFjLDB4OTAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4NDEsMHg5ZiwweDkwLDB4NDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDBjLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MTAsMHhmNCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4MDAsMHgwZiwweGY0LDB4MjMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZSwweGMwLDB4MDMsMHhiMCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZTEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAxLDB4MWYsMHg1MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmMCwweGQwLDB4ZmYsMHgyMCwweDNlLDB4ZDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4OGUsMHhiMCwweDAzLDB4ZWMsMHhhMCwweGRiLDB4MjgsMHgzZSwweGNjLDB4MGMsMHhiMywweDAzLDB4YWQsMHgwOCwweGY4LDB4M2MgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4MzIsMHgyMywweDBlLDB4NDgsMHgyMywweDdhLDB4MDAsMHhmZCwweDk0LDB4M2YsMHhlMCwweDBmLDB4NzgsMHgzMywweGVlLDB4MDggfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4YmYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGY5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4YTAsMHgwMCwweGVjLDB4YzgsMHhiZiwweGQxLDB4MGYsMHhjOCwweDBjLDB4MjYsMHg4MiwweGZkLDB4MjQsMHg4ZiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4OTksMHgwYSwweGYyLDB4NjIsMHgxZCwweGQwLDB4OTksMHg2MSwweDIyLDB4NzEsMHg4OCwweDg4LDB4MDIsMHhhYywweDAwLDB4YjggfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MjIsMHgyZSwweDIwLDB4NGIsMHg4OCwweDAzLDB4YTAsMHgwMCwweDgwLDB4MDAsMHgyZSwweDA4LDB4MGIsMHg4MCwweDIzLDB4NjAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDA0LDB4YjMsMHgwMywweDBjLDB4Y2MgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4MGEsMHgxMywweDEyLDB4Y2MsMHgxNCwweGEzLDB4MGUsMHgwYywweDU4LDB4MGEsMHgzMywweDAyLDB4OGMsMHgxMCwweGEzLDB4MjAgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4YTAsMHgwYSwweDE4LDB4OTAsMHgwMiwweDQ4LDB4YTAsMHhiMCwweDIwLDB4MjQsMHg4MCwweDBhLDB4MjAsMHgwMiwweGNjLDB4MDkgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4YTEsMHgwMCwweDJjLDB4ODAsMHgwYiwweDMyLDB4NDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4ZTAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4ODAsMHhhMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4NGUgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4NDYsMHgyYSwweGIwLDB4MDIsMHgyYywweDA0LDB4OWIsMHg4MCwweDJhLDB4NjAsMHg4YSwweDljLDB4MDIsMHhhYywweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4ODEsMHgyZSwweDQwLDB4MGIsMHg5OCwweDAyLDB4YTMsMHgwMCwweDhhLDB4MDAsMHgyZSwweDQwLDB4MGIsMHg4MCwweDA0LDB4ZjAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMSwweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4MGUsMHhiNCwweDAzLDB4ZWMsMHgwYSwweGRiLDB4MDIsMHgyZSwweGQxLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4ODIgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4MzIsMHgyOCwweDFlLDB4MGMsMHgwMywweDY4LDB4MDAsMHhiOSwweDAwLDB4M2UsMHg0MCwweDRmLDB4YjAsMHg0MywweGVkLDB4MDAgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4ZWEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4YzAsMHgwMSwweGI4LDB4MTgsMHhmZiwweDAyLDB4MWYsMHhjMCwweDBjLDB4ZTIsMHgwMywweGZjLDB4MDAsMHhkZiwweDAzLDB4MmYgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4YTEsMHgwZiwweDcwLDB4MDMsMHhmYywweDA0LDB4YWIsMHgwNCwweDM3LDB4NDIsMHgyZCwweGQwLDB4MDIsMHg3YywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4YjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOSwweDAwLDB4ZGIsMHgwMCwweDNjLDB4YzAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4MmUsMHg5NCwweDAxLDB4NmMsMHgxMSwweGNiLDB4MDAsMHhiOCwweGMwLDB4MGMsMHhiMCwweDAzLDB4NmMsMHgwMCwweGViLDB4MDEgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4MzIsMHgxMCwweDA3LDB4OTIsMHgwMywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwYywweDA3LDB4YTIsMHgwMywweGFkLDB4MDAgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4ZDgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDgsMHhiZiwweDAwLDB4MmYsMHhjMCwweDg4LDB4ODAsMHgwMiwweDNjLDB4MDgsMHhlZiwweDAzLDB4MjIgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwZCwweGY1LDB4MDAsMHgzYywweDAwLDB4OGIsMHg4MiwweDIyLDB4NjAsMHgwMywweDljLDB4MDIsMHgyYywweDEwLDB4YjkgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4YjAsMHgyMiwweGYwLDB4MGIsMHg5MCwweDAyLDB4MjAsMHgwMCwweGJiLDB4MDAsMHgyMiwweGUyLDB4MGQsMHhiMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0MCwweDAwLDB4YjMsMHgwMiwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzNCwweDA0LDB4ZWMsMHgwMCwweGE4LDB4MDAgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MjIsMHhmMCwweDBiLDB4MDAsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjgsMHhlMCwweDBiLDB4MTQsMHgwMiwweGEwLDB4MDAgfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MmQsMHhlOCwweDA4LDB4NzgsMHgwMiwweDBlLDB4YzgsMHhhNywweDkwLDB4MjEgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4YTgsMHgxOSwweDM4LDB4NTIsMHg5ZSwweGMxLDB4ODcsMHg4MCwweDIxLDB4ZTIsMHgwYiwweGQ5LDB4ODIsMHg5ZSwweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4YTAsMHgyZCwweDIwLDB4MGIsMHg2OCwweDAyLDB4MWUsMHgwMCwweGI0LDB4YzEsMHgyMSwweDIwLDB4MDksMHg0OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDgwLDB4YjMsMHgxMCwweDNlLDB4ZTAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4MGUsMHgzYSwweDA3LDB4NGUsMHgwMCwweGNiLDB4OTAsMHgzYSwweDYxLDB4MGQsMHgzOCwweDAzLDB4Y2UsMHhkMSwweGUxLDB4OTggfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4MzAsMHhhNCwweDhmLDB4MTAsMHgwMywweDg4LDB4MDAsMHhiYSwweGExLDB4M2MsMHg4NCwweDA3LDB4MDAsMHgwMywweDgyLDB4ZDQgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4ZDEsMHgwMCwweDcyLDB4ODAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDQsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzIsMHgyMywweGVjLDB4YjAsMHhmZiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDQsMHgwNiwweGI0LDB4MjMsMHg3YywweDEwLDB4YmYsMHgwMCwweDNlLDB4ODQsMHgwZiwweGIwLDB4MDMsMHg3YywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgzMywweDQwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDAsMHhiZiwweDQwLDB4MGYsMHhjOCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlNCwweDAwLDB4Y2IsMHgzMywweDNlLDB4YzggfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4NGMsMHhiMCwweDAzLDB4YWMsMHg5MCwweGRiLDB4YTAsMHgzNiwweGMwLDB4MGUsMHhiYSwweDQzLDB4NmMsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MDAsMHgwZiwweDI4LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTgsMHg0MywweDYwLDB4MDAgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4NDAsMHg0ZiwweDA4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MTAsMHgwNywweDA4LDB4MmMsMHhjYSwweDA4LDB4MjAsMHgwMiwweDFjLDB4MjAsMHg4NywweDI4LDB4M2YgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4ODAsMHg4YSwweGYwLDB4MDIsMHgxZCwweDQwLDB4ODcsMHgwNCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgyZCwweDgwLDB4MGIsMHg2MCwweDAzLDB4MWMsMHgwMCwweGI1LDB4MDAsMHgyZCwweDgwLDB4MGIsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODcsMHhhMCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4MGEsMHg1OCwweDAyLDB4MWUsMHgwMSwweDgzLDB4OTAsMHgyMSwweDcwLDB4MGIsMHg3OSwweDAyLDB4OWUsMHgwMSwweDg1LDB4YzAgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4MmQsMHhlMCwweDRiLDB4NTgsMHgxMiwweDFhLDB4MDAsMHhiNiwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDUyLDB4MDAgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4YjQsMHg4MCwweDJkLDB4MjAsMHgwYiwweDQ4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDg4LDB4MzYsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwLDB4NmMgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MGEsMHhhYywweDAwLDB4OWIsMHhlMCwweDZjLDB4YzgsMHgwYiwweDMyLDB4MDIsMHgwYywweDAxLDB4YjMgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgxMCwweGIzLDB4NDAsMHgyYywweGMwLDB4MGIsMHgzYywweDgyLDB4MTIgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAyLDB4Y2EsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MGUsMHhlNCwweDhiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHgzMywweDk1LDB4MGYsMHhhMCwweDA3LDB4YTgsMHgwMiwweGNlLDB4NDAgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4M2YsMHhiMCwweDBmLDB4ZTQsMHg4MiwweDI4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgyMywweDY4LDB4MDAgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4ZmEsMHg0MCwweDNlLDB4ODEsMHg0ZiwweGE0LDB4ZTMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmMCwweDAwLDB4M2MsMHgwMCwweDJmLDB4MDAsMHgwMiwweDYwLDB4MDAsMHhlOCwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDEsMHgyMCwweDAwLDB4ZTgsMHgwNCwweDVlLDB4MDQsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MDEsMHgzZiwweDEwLDB4MGYsMHhjNCwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDksMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YTksMHgyMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NDQsMHgwNCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwYiwweGU0LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBlLDB4OTgsMHgwMywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDE4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ZDksMHgwNCwweDIyLDB4NDAsMHgwYiwweDFjLDB4MGIsMHg2NCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4OTQsMHgyYywweDUwLDB4MDgsMHg5YywweDAyLDB4ZTQsMHgxNCwweGI5LDB4OTAsMHgwZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAyLDB4ODksMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4NGEsMHg5MCwweDAyLDB4NjQsMHgwMCwweDk5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5OCwweDgyLDB4ZTQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4NmEsMHg0MCwweDBhLDB4OTIsMHg4MiwweGU0LDB4MDAsMHhiZCwweDAxLDB4MmYsMHg1MCwweDEyLDB4ZDYsMHgwMiwweGY0LDB4NDAgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4YmQsMHgwMCwweDBmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIyLDB4MmMgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4NDgsMHhhOCwweDEyLDB4MDYsMHhjNCwweDkwLDB4OTEsMHgyMCwweDI4LDB4NTAsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4NDAsMHg2ZCwweDQwLDB4MDgsMHg1MCwweDEyLDB4ZDQsMHgwNCwweGI1LDB4MDIsMHgyZCwweDQwLDB4MGIsMHg1MCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHgwMCwweDM2LDB4MTQgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MGEsMHg4NSwweDAzLDB4NDEsMHg0MCwweGQ4LDB4NTAsMHgyZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4YzEsMHg0MCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4YmEsMHgwMCwweDBlLDB4ODAsMHgyMywweGUwLDB4MDAsMHg3OCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDQgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhkOSwweDEwLDB4M2UsMHg0NCwweDA3LDB4ZjEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4NDQsMHhhZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDM3LDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweGQ0LDB4ZmQsMHhhMiwweDNhLDB4NzAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4OGMsMHg5ZSwweDAzLDB4MjYsMHg4MCwweGM5LDB4YTAsMHgzMiwweDY4LDB4MGMsMHhkYiwweDQzLDB4MjcsMHg4MCwweDlkLDB4YTIgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4YjcsMHg0MCwweDBmLDB4NTAsMHgwMywweDY1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMSwweDA3LDB4ZDAsMHgwMywweGY1LDB4MDQgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4ZmQsMHg0MCwweDJmLDB4YzAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4ODgsMHhiOCwweDUwLDB4MjIsMHgzOCwweDA4LDB4OGUsMHgwMCwweGEyLDB4YTAsMHg4OCwweGU4LDB4MjIgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MzgsMHg0OCwweDg4LDB4MDMsMHg2MiwweDEwLDB4YTgsMHhlOCwweDNjLDB4MDAsMHgwYiwweDgwLDB4MDMsMHg2MiwweDgwLDB4YjggfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4MDEsMHgyZSwweDgwLDB4MGIsMHg4MCwweDIxLDB4YTIsMHgwMCwweGIwLDB4ODQsMHgyZSwweDJhLDB4MjgsMHg4YSwweDgyLDB4Y2UgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4YjEsMHgwMCwweDI4LDB4NTggfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4ODAsMHgxMywweDQwLDB4MDUsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUyLDB4MjgsMHgxNiwweDAyLDB4ODUsMHg4MCwweDliLDB4YzIgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4NjQsMHg0MSwweDhiLDB4OTgsMHgwMiwweDA0LDB4MDAsMHhiMSwweDA5LDB4MmMsMHg0MCwweDFiLDB4MTAsMHgyMCwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4YjEsMHgwMCwweDJjLDB4NDAsMHg0OCwweDEwLDB4MDIsMHhjMiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MTgsMHgxNSwweGE1LDB4ODQsMHhiOSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHgwMSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4NTAsMHgwOCwweDkwLDB4NDIsMHg2NCwweDAwLDB4YTksMHgxMCwweGFlLDB4NTgsMHgwMywweDk4LDB4MDIsMHg2NCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQ2LDB4YTQsMHgxMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MDgsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNywweDAwLDB4ZjksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4MmMsMHg5NCwweDBiLDB4MjQsMHgwMiwweGM5LDB4MDAsMHhiMiwweDQ0LDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCwweGQ5LDB4ODAgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4YjYsMHg0MSwweDhmLDB4MTgsMHgwMywweDI0LDB4MDAsMHhmOSwweDYwLDB4M2UsMHg0MCwweDBmLDB4OTYsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4ZjksMHg4MCwweDNlLDB4NDIsMHg4YywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4MDAsMHhmMSwweDAwLDB4M2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4NDAsMHg4ZiwweDkwLDB4MjMsMHhjNCwweDEwLDB4ZjksMHgwMCwweGJlLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MDcsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MGUsMHg4NCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHgwMCwweDgzLDB4MjAsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGEwLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDggfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjIsMHg4MCwweDQ4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhhYSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDMsMHg2OCwweDAwLDB4ODIsMHgwMCwweDJmLDB4ODAsMHgwOCwweGU2LDB4MDIsMHgyOCwweDA0LDB4YmUgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4NDAsMHgyMywweDgwLDB4MGIsMHhlOCwweDAyLDB4ZWEsMHgwMCwweGJlLDB4MDEsMHgyMiwweDgwLDB4MGIsMHhlMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAxLDB4OTMsMHgwMSwweDIwLDB4YzEgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4ODgsMHgzOCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4MjQsMHhjMCwweDBhLDB4M2UsMHg0MiwweDhjLDB4MDAsMHhiMiwweDRjLDB4MjQsMHhlMCwweDRiLDB4MzgsMHgwMiwweGM0LDB4NDEgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4YjMsMHgwMCwweDIyLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDAwLDB4MjAsMHhjOSwweDQ4LDB4NzAsMHgwMiwweGRjLDB4NDAsMHhhNywweDE0LDB4MmMgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4YzgsMHgyOCwweDMwLDB4ODIsMHg1YywweGMxLDB4ODUsMHgwMCwweDJkLDB4ZTAsMHgyYSwweGYwLDB4MTIsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4YTAsMHgyMSwweDgyLDB4MGIsMHg3MCwweDgyLDB4ZDQsMHgxMSwweGI2LDB4ODAsMHgyMSwweDQwLDB4NGIsMHg1MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgwLDB4ZDUsMHg4MCwweDI5LDB4ZWEgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4NGUsMHgzYSwweDA3LDB4MGUsMHg4MCwweGUzLDB4YjAsMHgzMSwweGZjLDB4MGMsMHg0OCwweDAzLDB4MGUsMHg0MSwweGU3LDB4ODAgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4M2QsMHhlMCwweDBlLDB4NzgsMHgwMywweDllLDB4ODAsMHhmNCwweGM0LDB4MzUsMHhlMCwweDBmLDB4NzgsMHgyNywweGRlLDB4MDAgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4ZjUsMHg4MCwweGIxLDB4ZTAsMHgwZiwweDU4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHgzMSwweDA0LDB4M2EsMHhjNCwweDBmLDB4YjUsMHg5MywweDZkLDB4MDgsMHhmYiwweDQwLDB4M2EgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4YzgsMHg2MywweDgwLDB4MjMsMHhlYywweDk4LDB4ZTksMHgwMCwweDNlLDB4YzAsMHgwZCwweGIwLDB4NDMsMHhlYywweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4ODAsMHgzZSwweDQwLDB4NGYsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NjgsMHgzZSwweDQwLDB4OGYsMHg5OCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDYwLDB4ZWIsMHg5MCwweDNlLDB4ZTQgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MGYsMHhiOCwweDAwLDB4M2YsMHg0MCwweGNiLDB4ODAsMHg3ZiwweGUwLDB4MGUsMHhmYiwweDAzLDB4MmUsMHg0MCwweGNiLDB4ODAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4M2YsMHhlMCwweDBmLDB4NzksMHg0MywweDJlLDB4NjAsMHhjYSwweDgxLDB4MzMsMHg2NCwweDhmLDB4ZDksMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4ZmYsMHg4MSwweDMzLDB4ZTAsMHgwZiwweGQ5LDB4OGIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4YTgsMHgwMSwweDljLDB4MDAsMHg4NywweDgxLDB4MTksMHhlNCwweDBiLDB4ZmEsMHgxMywweDVlLDB4ODAsMHg4NywweGIyLDB4MmQgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4ZWMsMHgwZCwweDc5LDB4MDEsMHg5ZSwweDAwLDB4ZDUsMHg5MCwweDJkLDB4ZjgsMHgwYiwweDc4LDB4MDMsMHg3ZSwweDA4LDB4YWIgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4OTEsMHgyOSwweDg1LDB4MGIsMHg1MSwweDAyLDB4ZGMsMHg0OCwweGI2LDB4NDAsMHgyMSwweDQwLDB4MGIsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4YywweDE0LDB4YjUsMHgyMCwweDZkLDB4YzggfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4MGIsMHg3MiwweDAyLDB4NWMsMHg4MCwweDg3LDB4MjAsMHg2OSwweGMwLDB4ODgsMHg1MywweDAyLDB4Y2MsMHg4MSwweDk3LDB4NTAgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MmQsMHhjOCwweDBiLDB4ZjcsMHgwYSwweGRjLDB4YzAsMHg4NCwweDAxLDB4MjEsMHg0NCwweDFiLDB4NzAsMHgyMiwweGRjLDB4MDAgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4YjUsMHgwMCwweDIxLDB4YzQsMHgwYiwweDUwLDB4ODYsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MjAsMHgxNCwweGNmLDB4MzAsMHg5MSwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzQsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4ZjIsMHgwYiwweDEwLDB4MjIsMHgwYywweDAwLDB4OTEsMHgwMCwweDJjLDB4YzgsMHgwYiwweDE4LDB4MGEsMHhjZCwweDAxLDB4YTMgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgyOCwweDYwLDB4MGIsMHgyMSwweDAyLDB4Y2UsMHgyMCwweGI4LDB4NDAsMHhhMCwweDU0LDB4MGIsMHgxOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiZCwweDAwLDB4ZjksMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4MGYsMHhmNCwweDAyLDB4N2MsMHgxMiwweGNmLDB4MDMsMHgzZiwweGMyLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweDliLDB4MDIgfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4MmUsMHhmMiwweDBmLDB4YTQsMHgwYiwweGRjLDB4MDAsMHhjZSwweDAwLDB4YjAsMHhjOCwweDhmLDB4YTQsMHgwMywweGVmLDB4MDAgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4ZjgsMHg4MCwweDMyLDB4ZjUsMHgxZiwweGRkLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NDAsMHhlOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4YjEsMHgwMywweGNjLDB4MDAsMHhmMywweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4YzAsMHgwZCwweGI0LDB4MDksMHhlYywweDE4LDB4ZjksMHgxMCwweDNlLDB4MTAsMHg0ZiwweGIxLDB4MGEsMHg2YywweDgwLDB4ZjkgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4ODksMHgzNiwweDgyLDB4MGIsMHhhNiwweDAzLDB4ZWMsMHg1MCwweGY5LDB4NTAsMHgzZSwweGMwLDB4MWYsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmQsMHhhMCwweDNkLDB4YzAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4MGMsMHg3MCwweDgzLDB4MmMsMHgwMCwweGVmLDB4MDIsMHgzNSwweGMwLDB4MGQsMHhlMiwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4MmQsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MTAsMHhkYywweDAwLDB4M2YsMHg4MCwweDBjLDB4ZDgsMHgwMywweGZjLDB4MDAgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4ZGUsMHgxOCwweDMzLDB4ZjAsMHg0ZiwweGQwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4ODEsMHgwMCwweDZjLDB4MDAsMHhiOSwweDAwLDB4MmUsMHhjMCwweDRjLDB4YjAsMHgwMywweDZjLDB4MDAsMHg4YiwweDAyLDB4MzYgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4YzAsMHgwZCwweGFjLDB4MTIsMHhlYywweDAwLDB4NzksMHgwMCwweDJlLDB4MzAsMHgwZCwweDNkLDB4NDIsMHhhYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4ODgsMHgxYSwweDEwLDB4MGQsMHg4NiwweDAyLDB4ZWUsMHgwNCwweGJiLDB4NDAsMHgyMiwweGUwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAxLDB4YjksMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4MDgsMHhiMCwweDQyLDB4YWMsMHgwMCwweDBiLDB4MDUsMHgyNiwweGMwLDB4MDksMHg5NCwweDIwLDB4ZWMsMHgwMCwweGI5LDB4ODAgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4NmUsMHhjNCwweDg4LDB4YjAsMHg4MiwweDJjLDB4MDAsMHg5YiwweDgyLDB4MmUsMHg0MiwweDA4LDB4ODEsMHgwMiwweGU0LDB4ODAgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4YjgsMHgwMCwweDIyLDB4YzEsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHhiMSwweDI1LDB4MmMsMHhjYSwweDA4LDB4MzQsMHg0NiwweGNjLDB4MDgsMHg4MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4YzIsMHgwYiwweDAyLDB4NTIsMHhjYywweDgxLDB4ODMsMHgwMCwweDJjLDB4MDAsMHgxOSwweGIyLDB4NDIsMHhhYywweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MDgsMHgyOCwweDgwLDB4MDksMHgwMCwweDAyLDB4YzQsMHg0MCwweGIxLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2YywweDAwLDB4YjksMHgwMCwweDNmLDB4ZDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4MDgsMHhmNiwweDA3LDB4YmMsMHhjMiwweGFmLDB4MzAsMHg3NSwweGRjLDB4MGQsMHgxNiwweDAyLDB4ZmMsMHhlMCwweGI5LDB4NTAgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4M2UsMHhjYywweDBjLDB4YjAsMHgyMywweDJjLDB4MTAsMHhkOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4ZGUsMHgwMSwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZCwweDEwLDB4M2YsMHhjYSwweDJlLDB4ZjYsMHgwMywweDZkLDB4OTQsMHg5ZiwweDMwLDB4M2EgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4YzksMHgwYywweDgzLDB4OTMsMHhmYywweDgwLDB4ZmYsMHgxMSwweDdlLDB4MTksMHgwYiwweGIxLDB4MDMsMHhmYywweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MDgsMHgzYiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHg4MCwweDc3LDB4MDAsMHhiZiwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDAwLDB4ZjQsMHg5NCwweDM3LDB4YzggfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MGQsMHg2OSwweDYzLDB4N2MsMHgxMCwweGZmLDB4NjIsMHgzNywweGMwLDB4MGQsMHhiNCwweDAzLDB4N2MsMHg2MCwweGQ0LDB4ODAgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4M2YsMHg0MCwweDBmLDB4NDgsMHgyMywweDMyLDB4MDAsMHhjZSwweDAwLDB4YmYsMHg0MCwweDhmLDB4ZDEsMHgwMywweDMwLDB4ZTAgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4ZmYsMHgzMCwweDNiLDB4NjAsMHgwZiwweGQ4LDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4ODAsMHgxMCwweGVkLDB4MjAsMHhiOCwweDI0LDB4MjMsMHhmNCwweDQ5LDB4YTIsMHgwMiwweDNmLDB4NDAsMHg4ZiwweDUxLDB4MjMgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4ZGEsMHgwOCwweGY2LDB4MTIsMHgzZCwweDgwLDB4OWIsMHg4MCwweDJlLDB4NDksMHg0YiwweDgwLDB4MDMsMHg0MCwweDAwLDB4ZDkgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MDEsMHgyMiwweDc0LDB4MGIsMHhkNSwweDAyLDB4MjEsMHgwMCwweGJmLDB4NDIsMHgyZSwweDQ5LDB4MGIsMHg5YywweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZCwweDgwLDB4YjgsMHgyMCwweDI4LDB4YzEgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4MWIsMHhhMCwweDAyLDB4NGMsMHgwMCwweDkzLDB4MjAsMHgyYywweGQ4LDB4MGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4MDEgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4MmMsMHhjNiwweDFhLDB4YTAsMHgwMiwweDY4LDB4MDgsMHg4MywweDAwLDB4YTQsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4YjMsMHgxMCwweDI4LDB4NDIsMHgwYiwweDE0LDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDYwLDB4MmEsMHhjMCwweDFiLDB4YTAsMHg4ZSwweGFjLDB4MDEsMHg5YiwweDA1LDB4MjYgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4YzAsMHgwMywweGIwLDB4NDIsMHg2YywweDAwLDB4OWIsMHg4MCwweDJlLDB4YzAsMHgwMywweGEwLDB4MDYsMHg2OSwweDAwLDB4OTkgfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4ODAsMHhhYSwweGMwLDB4MGIsMHg5MCwweDAyLDB4NjMsMHgwMCwweDNiLDB4MDAsMHgyZSwweDU4LDB4NGIsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDA0LDB4ZjgsMHg4MCwweGJhLDB4YzAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4NmMsMHgxMCwweGRiLDB4MDMsMHgzNiwweGMwLDB4OGYsMHhiMCwweDAzLDB4ZWMsMHgwOCwweGQ4LDB4ODAgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4N2UsMHhlMCwweDA2LDB4ODgsMHgwMywweDQxLDB4MDgsMHhjYiwweGEwLDB4M2UsMHg2NCwweDBmLDB4OTAsMHgwYiwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4N2IsMHgwMCwweDNhLDB4MDEsMHgwZiwweDkwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDg0LDB4MzIsMHhjMCwweDBjLDB4ZjksMHgwMywweDVjLDB4MTAsMHhlZiwweDAwLDB4M2IgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHg5YywweDAwLDB4ZWMsMHgwMSwweDNmLDB4ZTQsMHg0ZiwweGQxLDB4MDMsMHhmMSwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MDUsMHgzMywweDYwLDB4MGYsMHhkMCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZiwweDIxLDB4MGYsMHhkMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzYgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4MGQsMHhiNCwweDAzLDB4NmMsMHgwMCwweGYzLDB4MDAsMHgzNCwweGMwLDB4MGUsMHhiMCwweDAzLDB4NmMsMHgwMCwweGU5LDB4MTAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4M2EsMHhjMCwweDBmLDB4ODQsMHgwMywweDJjLDB4NjAsMHhjYiwweDAwLDB4MzIsMHg2MCwweDBjLDB4NTAsMHgwMywweDYxLDB4MDAgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4OTAsMHgwZSwweDkwLDB4YTMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDIsMHg4OCwweDAxLDB4MDEsMHhmMCwweDIwLDB4YjAsMHgwMSwweDNlLDB4MDAsMHgzZiwweDAwLDB4MzMgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MzIsMHgzYywweDA4LDB4ODksMHg4MCwweDIyLDB4YzAsMHgwMSwweDE1LDB4MTIsMHhhYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4NDgsMHhkYiwweDAyLDB4MmYsMHg0MCwweDhmLDB4MDAsMHgyZSwweDAxLDB4MDgsMHhkNCwweDgwLDB4MzIgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4MDgsMHgwMCwweDA4LDB4ZjAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4MDgsMHgwMCwweDEyLDB4NGMsMHgwMCwweDMzLDB4MDEsMHgyNCwweGMwLDB4NGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweGEwLDB4MjAgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDQ2LDB4MDQsMHg4MywweDA0LDB4MjAsMHhjMCwweDI5LDB4MTgsMHgwMiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4YjMsMHgwMCwweDJjLDB4NDAsMHgwYSwweDFjLDB4NDIsMHhiMSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4ZCwweDgwLDB4MjEsMHhlMCwweDE4LDB4YzgsMHgwMiwweDFlLDB4MDAsMHhiMywweGEwLDB4MjEgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4ZTAsMHgxYiwweDM4LDB4MDIsMHgwZSwweDAxLDB4YTcsMHg4MCwweDIxLDB4ZTAsMHgwOSwweGQ4LDB4NDAsMHhkNiwweDQwLDB4ODcgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4ODAsMHgwMSwweGUwLDB4MDksMHg1OSwweDAyLDB4MTYsMHgwMCwweDk3LDB4ODQsMHgyZCwweDYwLDB4MDgsMHg1OCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDQwLDB4YzAsMHgwMCwweDM4LDB4YzQgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4MGMsMHgzMCwweDI3LDB4NGMsMHgyMCwweGYzLDB4MDEsMHgzNCwweGMxLDB4MGUsMHgzYSwweDAzLDB4NGMsMHhjNCwweGUwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4MTgsMHhjOCwweDBmLDB4MzQsMHgwMywweDQ0LDB4NDAsMHhjMywweDAwLDB4MzAsMHhjMCwweDBkLDB4OTAsMHgwMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4ZjMsMHgwMCwweDNlLDB4NDAsMHgwZSwweDEwLDB4MDEsMHg5YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmOSwweDAwLDB4MGUsMHhkNCwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDIwLDB4M2YgfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4YzQsMHgwZiwweGYxLDB4MDMsMHhlYywweDYwLDB4ZGIsMHgxMCwweDNmLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhhNCwweDQ2LDB4ZmIgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MDAsMHhiZCwweGMwLDB4MGUsMHhkMCwweDBiLDB4YjQsMHgwMCwweGVmLDB4NDgsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZjgsMHgwMCwweDMyLDB4ZDQgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YWQsMHgwMCwweGViLDB4MDgsMHgyMiwweGQyLDB4MGMsMHhiNiwweDAzLDB4NmMsMHgwMCwweGYyLDB4ODAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTAsMHgwMywweDI4LDB4MTAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBmLDB4ZDYsMHgwMywweDI4LDB4MTAgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4NDAsMHg0ZiwweDk5LDB4MTMsMHgyYiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4NDgsMHgxMSwweDlkLDB4MTAsMHhiNCwweDAxLDB4MjEsMHhjMSwweDhiLDB4YzAsMHgwMiwweDFjLDB4YTAsMHhiZiwweDA0LDB4MjcgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4YzgsMHgwOCwweDc1LDB4MDIsMHgxYywweGMwLDB4YjYsMHgwMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4NDIsMHgxOCwweDEwLDB4OGYgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGIsMHg1NCwweGEyLDB4MWMsMHgwMCwweGI3LDB4MDQsMHgyZCwweDQxLDB4MGIsMHg1MiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDgwLDB4YjYsMHg4OCwweGE1LDB4ZTAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4OWUsMHg4MSwweGE3LDB4OTAsMHgyNSwweGU0LDB4ODgsMHg3OCwweDAyLDB4MWUsMHg4MCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4MjQsMHg2MCwweDBiLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NywweDg0LDB4NjEsMHhlMCwweDBhLDB4MWEsMHgwYSwweDFhLDB4MDAgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4YjcsMHhhMCwweDJkLDB4ZTAsMHgwYiwweGRhLDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiYSwweGMwLDB4YTQsMHhjMCwweDBiLDB4MzQsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MGUsMHgyYywweDAwLDB4YjMsMHg5OCwweDIwLDB4NjAsMHgwOSwweDMzLDB4MDIsMHgyYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4YzgsMHgyMCwweGMwLDB4MGIsMHgxMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGYwLDB4MGIsMHgxMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDM2LDB4ODEgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MGIsMHhlMCwweDAzLDB4YTgsMHgwMCwweGVhLDB4MDAsMHhiMiwweDgwLDB4MDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MzYsMHhhMCwweDFmLDB4ZTgsMHgxMywweDNiLDB4ODIsMHhjZSwweGUwLDB4MjIsMHg4MCwweDhlLDB4YTAsMHgwMywweDM4LDB4MDAgfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4YmEsMHgwMCwweDNmLDB4YTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2EsMHgxMCwweDA3LDB4ODAsMHgwMywweGMxLDB4MDAsMHhmOCwweDAwLDB4MzggfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgyZiwweDgwLDB4MDMsMHhhMCwweDAxLDB4ZjgsMHg0MiwweDNlLDB4MDUsMHgwZSwweDgwLDB4MGIsMHhlMCwweDgwLDB4ZDggfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDBiLDB4ZDIgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDNhLDB4NTAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4OGYsMHg5MCwweDgzLDB4YTQsMHgwMiwweGQxLDB4MDAsMHhiMiwweDQwLDB4NGMsMHg5MCwweDIzLDB4MjQsMHgwOCwweGM5LDB4MDEgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTQsMHgwYSwweDI1LDB4MjAgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4ZTksMHgwMCwweDNlLDB4NDIsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MGEsMHg4OSwweDAwLDB4MjIsMHg3MCwweDBiLDB4OTAsMHgxMiwweDI1LDB4ODAsMHhjOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4NDAsMHgwYSwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHgyMCwweDJjLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4YzEsMHgzMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4MDYsMHgwMCwweDg5LDB4OTAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDEyLDB4ZTAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgwNCwweDAwLDB4ODksMHgwMCwweDZhLDB4NDIgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MGEsMHgxMCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHhhMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweDA5LDB4MDAgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4MmUsMHg0MCwweDU4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDgwLDB4YWEsMHg2MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4YTksMHgwMCwweDJlLDB4NDAsMHgwYiwweDk0LDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4NjAsMHg0OCwweDBiLDB4MTAsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4NjAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg0NCwweDg4LDB4ODEsMHgwMCwweDBlLDB4NTksMHgwYSwweDE0LDB4MDIsMHgwNSwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4YzAsMHgyOCwweDUwLDB4NDksMHgzMCwweDAyLDB4OGMsMHg4NCwweDAxLDB4NjAsMHgyYywweDUwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzAsMHg1NCwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTAsMHgwMCwweGM4LDB4NTAsMHgzMiwweDE1LDB4MWUsMHgwNSwweDIyLDB4MjEsMHg0MiwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDQsMHhjOCwweDAwLDB4M2EsMHgwMCwweDRmLDB4ODUsMHgwMywweGExLDB4NDAgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4NjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAzLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhlOSwweDEwLDB4M2UgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4NDUsMHgwZiwweDkxLDB4MTMsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAyLDB4ZmQgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4NDAsMHgzMywweDUwLDB4MGYsMHhkNCwweDIzLDB4NzQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMzLDB4NmEgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4MDksMHg5MCwweDAzLDB4YjYsMHgzNCwweGY5LDB4YzgsMHgzMiwweDY0LDB4MGMsMHg5YSwweDAzLDB4ZTYsMHhhMCwweGRkLDB4MDAgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4M2MsMHg3MCwweDBmLDB4OTAsMHgwMywweGE1LDB4MDAsMHg4OSwweDgwLDB4MzMsMHgzMiwweDBmLDB4ZDgsMHgxMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4ZmQsMHgwMCwweDcwLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHhiOCwweGE4LDB4MjIsMHgxMCwweDA4LDB4ODgsMHgwMiwweDIxLDB4MDAsMHhiOCwweGMwLDB4MjAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MzAsMHgwZCwweDhlLDB4ODcsMHg4MywweDg4LDB4ODgsMHgwMCwweDJlLDB4MzQsMHgwYiwweDhhLDB4ODIsMHgyMiwweDgwLDB4ZGMgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4ZTAsMHgyMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwMCwweGY4LDB4YTgsMHgyYSwweDI4LDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDIwLDB4YjEsMHgwMCwweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MGEsMHg5MiwweDkyLDB4ODQsMHgxMSwweGIxLDB4MjQsMHg2OCwweDU4LDB4MDksMHgxMSwweDAyLDB4YzQsMHgyMCwweDkxLDB4MDEgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4MmMsMHg0OCwweDFiLDB4NTAsMHgwMiwweDc0LDB4ODQsMHg5NSwweDQ4LDB4YWMsMHg0OCwweDBiLDB4OTQsMHgwMiwweDA0LDB4MDQgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4YjEsMHgwMiwweDI0LDB4NDgsMHgwYiwweDEwLDB4MDIsMHgwMiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhiMSwweDIwLDB4MjIsMHg0MCwweDBhLDB4OTAsMHgwNiwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhhNCwweDAwLDB4OWIsMHgwOCwweDJlLDB4NDgsMHgwYiwweDEyLDB4MWEsMHg3NCwweDAwLDB4OTUgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4NDUsMHgyZSwweDYwLDB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4MGUsMHgxNiwweDAzLDB4YTQsMHgwMCwweGI5LDB4MDQsMHgzMiwweDQwLDB4MGQsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4MmUsMHg0MCwweDFmLDB4OTgsMHgwMywweGU1LDB4ODAsMHhkOSwweDAwLDB4YWUsMHg2MCwweDA3LDB4MTAsMHgwYiwweDI2LDB4MDEgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4YjksMHgwMCwweGE2LDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4YmUsMHg0MCwweGFjLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YjQgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjkgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgzMiwweDAwLDB4MGYsMHg5MCwweDgzLDB4ZTYsMHg4NSwweGUxLDB4MDAsMHgzMiwweDQ0LDB4MGYsMHgxMCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MGYsMHg4MCwweDEzLDB4ZTAsMHg5NCwweGUwLDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHg0MywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHg0YywweDgwLDB4MjMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjMsMHg4MCwweDBiLDB4YTAsMHgwMiwweGZiLDB4MDQsMHg2YSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHg2OCwweDBhLDB4OGUsMHg4OCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgwOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MDAsMHhiNywweDIyLDB4MDMsMHhlNCwweDAyLDB4ZmEsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDYwLDB4NDEgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4MDMsMHgzMCwweDAyLDB4Y2MsMHg0MSwweGEzLDB4MDAsMHgwNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweGEzLDB4ODAgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzgsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4YTAsMHhjMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4ODAgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4YTEsMHgwMCwweDIwLDB4YzAsMHgwOCwweDM4LDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4NjEsMHgwMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhMywweDAwLDB4MjUgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4YzgsMHgxOSwweDM4LDB4MDIsMHg1YywweDgwLDB4YTcsMHgwMCwweDBmLDB4ZTgsMHgwOSwweDY0LDB4MjIsMHgxMCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgyNSwweGM4LDB4MGIsMHg2MCwweDAyLDB4ZjIsMHgwMCwweDg1LDB4MDEsMHgyMywweGU4LDB4MDgsMHg3MCwweDgyLDB4ZTggfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDIwLDB4ZmYsMHg4MCwweGExLDB4YTAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4MGYsMHg3YSwweDQyLDB4ZGEsMHgwMCwweGU3LDB4ZTgsMHgzNSwweGYwLDB4MmYsMHg3YiwweDYyLDB4MWUsMHg4MiwweGU2LDB4ODAgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4MWQsMHhlMCwweDBkLDB4ZjgsMHgwYiwweDFlLDB4MDAsMHhmNywweDgwLDB4MzEsMHhmMCwweDBmLDB4NzgsMHgwMywweGRlLDB4MGMgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4ZWYsMHg4MCwweDMxLDB4ZjgsMHgyYywweDc4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ODQsMHhmYiwweDY4LDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYiwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4ZDgsMHgwZSwweGI1LDB4MDMsMHhlZCwweDAwLDB4ZGIsMHgwMCwweDNhLDB4YzAsMHg4ZSwweGEwLDB4MDMsMHhlMCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHhiMCwweDQzLDB4YzQsMHgwNCwweGVmLDB4MDIsMHhiZiwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQyLDB4YzcsMHgzOCwweDMzLDB4NjQgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MGUsMHg3YywweDAzLDB4NWUsMHgwMCwweGRmLDB4YTAsMHgzNywweGYwLDB4MGQsMHhmOCwweDAzLDB4ZmYsMHgyMCwweGNmLDB4ODEgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4MzMsMHhlMiwweDBjLDB4ZDgsMHgwMywweGJlLDB4MDAsMHg3ZiwweGMwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgwMywweDdlLDB4MDAgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4NywweGEwLDB4MjEsMHgxNCwweDA4LDB4NzEsMHgwMiwweDE0LDB4MTAsMHhkNywweDIwLDB4MzUgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHhiYywweDAwLDB4ODUsMHgwOCwweDJiLDB4YzAsMHg0ZCwweDQ2LDB4MDIsMHhkMSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHg4MCwweGY1LDB4MjAsMHgzZCwweGNhLDB4MGYsMHg1NCwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDExLDB4OGYsMHgwMSwweDIwLDB4ODQgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4MWEsMHhmMCwweDAyLDB4MTgsMHgwMCwweGE3LDB4MzQsMHg2NSwweGMwLDB4MDksMHg3MSwweDAyLDB4ZGMsMHgwMCwweDhlLDB4MDAgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4MjksMHhjMCwweDA4LDB4NTAsMHgwNiwweDljLDB4MDAsMHhiZiwweDg4LDB4MmQsMHhjNCwweDBhLDB4NjAsMHgyNiwweDU4LDB4MjQgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4OTcsMHgwMCwweDZkLDB4YzAsMHg5YiwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4YiwweDQwLDB4MjAsMHgwMCwweDE4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiYiwweDAyLDB4MjQgfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MjAsMHhjYywweDAwLDB4ODEsMHhjMCwweDI4LDB4YzAsMHgwYiwweDA0LDB4ODIsMHhlMCwweDEwLDB4YmIgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4YTAsMHgyYywweGUwLDB4MGEsMHgyMCwweDA2LDB4MDAsMHgwMCwweGIzLDB4MDAsMHgyOCwweGMwLDB4MGEsMHgxMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2YsMHgxMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4MGUsMHhmMCwweDBiLDB4MjQsMHgwMCwweGVmLDB4MDAsMHgzNywweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwNiwweGMxLDB4NTAgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4M2IsMHhjMCwweDBjLDB4YjQsMHgwMywweGFjLDB4MDAsMHhmOCwweGMwLDB4YmUsMHhjOCwweDJlLDB4YjAsMHgwMywweDZlLDB4MDEgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4ZmIsMHgwMCwweDJkLDB4YzAsMHg0YiwweDkwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDQsMHhmYiwweDAwLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGFkLDB4MDAsMHg5YiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4YzAsMHgwZiwweDMwLDB4MDMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDJlLDB4YzAsMHgwNSwweGI0LDB4MDMsMHhlZCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4NDAsMHgzMiwweGMwLDB4MDksMHgwMCwweDAzLDB4ZTAsMHg5MSwweGUzLDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDExLDB4ZTAgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAwLDB4ZWYsMHgwMCwweDMzLDB4MjAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4NGYsMHhmMCwweDAzLDB4YjQsMHgwMCwweGVmLDB4MDMsMHgzYSwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGRjLDB4MDAgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4MzEsMHhjMCwweDhkLDB4ZjgsMHgwMywweGZlLDB4MDQsMHhjZiwweDAwLDB4MzIsMHhjOCwweDBjLDB4ZjAsMHgwYiwweDFjLDB4MDAgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4Y2YsMHg5MywweDMzLDB4YzAsMHg4YywweDQwLDB4MDIsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHgwNCwweDBiLDB4MzAsMHgwMiwweDBlLDB4MDAsMHhhYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDMsMHg2YywweDA4LDB4YTgsMHhjMCwweDM2LDB4YzAsMHgwOCwweGJjLDB4MDIsMHhlZiwweDAyLDB4YWIgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4ZDAsMHgyMCwweGUwLDB4MDgsMHhiOCwweDIyLDB4MjYsMHgxMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MjAsMHg5YywweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmIsMHgwMCwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4MGEsMHhiMCwweDAyLDB4YTIsMHgwOCwweGFiLDB4MDAsMHg2YSwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDhiLDB4ODAgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4YjEsMHgwMiwweGVjLDB4NDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDA4LDB4YjgsMHgwMiwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDk4LDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDBiLDB4YjAsMHgwMiwweDAwLDB4MDEsMHg4MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4MDAsMHgwNCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDYsMHg0YywweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHg0MSwweDgzLDB4MDAsMHhhMiwweGMwLDB4MDgsMHgxMCwweDBhLDB4ODIgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4ZWYsMHgwOCwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4MGUsMHhmMCwweDAyLDB4YTAsMHgwMCwweGU3LDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmNSwweDQzLDB4M2MsMHgwMiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4MzIsMHhjMCwweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBjLDB4YTAsMHgwMywweDI4LDB4MTAgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwYywweDgwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4YTAsMHgwZCwweGZjLDB4MDAsMHhmYiwweDAwLDB4M2IsMHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmZiwweDAyLDB4M2YgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4YzAsMHgwZCwweGYyLDB4MDMsMHhiYywweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgzMywweGMwLDB4MGYsMHg2MCwweDAzLDB4ZjAsMHg4OCwweGZmLDB4MDAsMHgzZiwweGMwLDB4NGYsMHhkMCwweDAzLDB4NjggfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZmMsMHgzMSwweDNiLDB4MDggfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4NGYsMHhmOSwweDQzLDB4ZWYsMHgwMCwweGRmLDB4MzAsMHgzMiwweDIxLDB4MGYsMHg5NCwweDA3LDB4N2QsMHg4MCwweGVmLDB4MzggfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MzIsMHgwOSwweDFjLDB4MzgsMHgwMywweGYyLDB4MjEsMHhmZCwweDAwLDB4MzMsMHhjNCwweDBjLDB4ZjAsMHgwMiwweGZjLDB4MDAgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4ZGYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4ODAsMHgxMCwweGVjLDB4ODgsMHg4YiwweDYwLDB4MjIsMHhlNSwweDBlLDB4YjIsMHgyMiwweGVjLDB4ODAsMHhhZiwweDExLDB4MmEgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MjAsMHgwYiwweGIxLDB4MTMsMHhhYywweDQ4LDB4OGIsMHg0NSwweDM0LDB4Y2MsMHg0OCwweGIwLDB4MDIsMHg2YiwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4ODIsMHgzNiwweDAwLDB4MDgsMHg4OCwweDIyLDB4YzAsMHgwNCwweDg4LDB4MDAsMHhhMiwweDA4LDB4OGIsMHg4OCwweDYyLDB4MjAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YTEsMHgzMCwweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4MGIsMHgzMiwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MjIsMHgyYywweDAwLDB4OGIsMHgxMiwweDA2LDB4YzgsMHg4MCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4MjAsMHgwMiwweGNhLDB4MzAsMHgwNiwweGM0LDB4MDEsMHhiMSwweDAwLDB4NjgsMHg4MCwweDA5LDB4MjAsMHgwMiwweDg4LDB4MDAgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzIsMHgwYiwweDAwLDB4MGEsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4YiwweDYxLDB4NjIsMHhjMCwweDBiLDB4YjIsMHgwMiwweGU4LDB4MDAsMHhhYiwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4NjEsMHgxYiwweDkwLDB4MDIsMHhhOCwweDAwLDB4YWIsMHgwMCwweDIwLDB4YzAsMHgwYSwweGIwLDB4MDIsMHg2YywweDA0LDB4YmEgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4ODksMHg5MCwweDAyLDB4ZTYsMHgwOCwweDk4LDB4MDAsMHgyMiwweDAwLDB4MGIsMHhiMCwweDAyLDB4YjAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZSwweDAwLDB4ZjgsMHgwMSwweDNhLDB4MDQgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4MGYsMHhhYywweDAzLDB4ZWMsMHg5MCwweGZiLDB4MDIsMHgzZSwweGUwLDB4MGIsMHg5MCwweDQyLDB4NjcsMHg4MCwweGE4LDB4YzQgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4MjIsMHg0OCwweDIyLDB4ODYsMHgwMywweGUxLDB4NDAsMHhiOCwweDAyLDB4MmEsMHg0MCwweDI5LDB4OTAsMHgwMywweGVjLDB4MDIgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4YzksMHg0OCwweDMyLDB4NDAsMHgwZiwweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4ZTAsMHgwMSwweGFjLDB4NDAsMHhmYiwweDAwLDB4MWYsMHhhMiwweDBlLDB4ZjgsMHg4MiwweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4YzAsMHgwZiwweGZhLDB4NDMsMHg5NiwweDQ0LDB4ZDQsMHg5MSwweDNmLDB4NDAsMHgwZCwweGMwLDB4MDMsMHhmYSwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MDgsMHgyNSwweDgwLDB4MGUsMHhlMCwweDAzLDB4ZDAsMHgwMCwweGVhLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZTEsMHgyMCwweDNhLDB4NTAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MmMsMHgwMCwweGViLDB4MDgsMHg3NiwweDA1LDB4MGUsMHhiMCwweDI3LDB4ZTAsMHgxMCwweGVhLDB4NDAgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4YjIsMHhjMCwweDBjLDB4YTQsMHg0MywweDI1LDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwOCwweDBmLDB4ODAsMHg0MywweGU4LDB4MDAgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4ZDEsMHgwOCwweGVlLDB4NDAsMHgwZiwweDAwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhkMCwweDBiLDB4OTAsMHg4MiwweDJjLDB4MDAsMHg4NywweDQwLDB4MjIgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4NjAsMHg4YiwweGIwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHg1MCwweDIyLDB4ZDAsMHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4YjMgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4YzgsMHgzZSwweGQwLDB4MGIsMHhiOCwweDAyLDB4MjUsMHgwOCwweDhhLDB4MjAsMHgyYSwweDgwLDB4OGIsMHhiOCwweDgyLDB4ZjIgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2NCwweDAwLDB4YTAsMHhjMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4MDksMHgzOCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDMsMHgyMCwweDAwLDB4MTAsMHgzMCwweDIyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4NjAsMHgwOCwweDBhLDB4MzAsMHg4MiwweDRjLDB4MDAsMHhiMSwweGMwLDB4MDAsMHhkMSwweDBiLDB4MzgsMHgwMiwweDg0LDB4ODAgfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4ODIsMHgwMSwweDIwLDB4ODAsMHgwMywweDM4LDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MjAsMHgwMSwweDE2LDB4NDAsMHg4NCwweDk4LDB4MjUsMHhlMCwweDBiLDB4N2EsMHgwMiwweGZhLDB4NDgsMHhhMywweDIwLDB4NjEgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MjQsMHgwYiwweDc5LDB4MDAsMHhjZSwweGMwLDB4OTMsMHhhNCwweDIxLDB4YTYsMHgwYiwweDc4LDB4MTIsMHhkZSwweDgwLDB4YjYgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4ODAsMHgyZCwweDI0LDB4MGIsMHg0YiwweDAyLDB4MWEsMHg0MCwweDg1LDB4ODEsMHgyMSwweDYwLDB4MGIsMHg0OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTIsMHhhMCwweGI0LDB4ZmUgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4NGIsMHhiOCwweDBiLDB4MGUsMHgwMCwweGEzLDB4YjAsMHgyNCwweGE4LDB4MGUsMHgxYiwweDAyLDB4Y2UsMHhjMSwweGMzLDB4YzAgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4MzAsMHg2OCwweDJlLDB4M2EsMHg0NywweDRlLDB4ODAsMHhmMSwweDgwLDB4MzAsMHg4MCwweDBmLDB4MjIsMHg4MywweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4YzIsMHgxMCwweDM4LDB4ODAsMHg0ZiwweDAwLDB4MDcsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4NDAsMHgwZCwweGJjLDB4MTAsMHhmZSwweDA0LDB4M2IsMHhjMSwweDA3LDB4ZjAsMHgwMywweDFjLDB4YzgsMHhkZiwweDJhLDB4MGIgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4YzQsMHg4ZiwweGQxLDB4NDMsMHhmOCwweDAyLDB4N2YsMHgwMCwweDNmLDB4YzAsMHgwYywweGYxLDB4MGYsMHgzYywweDAwLDB4ZjIgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MTEsMHgzZiwweDQxLDB4MWYsMHg1MiwweDAzLDB4YmMsMHgwZSwweGVkLDB4MTQsMHgzZiwweDQwLDB4MGYsMHhmOCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MGUsMHhiZSwweDRiLDB4NmYsMHgwMCwweGNiLDB4ODIsMHg3YSwweGMwLDB4MmMsMHhiMCwweDAzLDB4MmMsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4MzIsMHgwMCwweDJjLDB4MTAsMHgwMywweDJjLDB4MDgsMHhjMCwweDAwLDB4MjYsMHg0MCwweDZjLDB4OTAsMHgxMywweDI0LDB4MTIgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4MDAsMHgwZiwweGI4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4NDgsMHgxMSwweDk0LDB4MDAsMHg4ZCwweDAwLDB4MjEsMHg4MCwweDBiLDB4NzAsMHg4MiwweDNjLDB4MjAsMHg4MywweDMyLDB4MjkgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MjAsMHgxNCwweDAwLDB4ODAsMHgwMCwweDIzLDB4MDAsMHgwOCwweDUwLDB4MDYsMHg5YywweDA0LDB4ZDcgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4MDIsMHgyOCwweDgwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHgxMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YTcsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4MGIsMHg1YywweDEyLDB4MWUsMHgwNCwweDg3LDB4ODIsMHgwZCwweGEwLDB4MDksMHg3OCwweDE2LDB4MDIsMHgwMCwweGI0LDB4ODAgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NzgsMHgwMiwweDllLDB4MDAsMHg4NCwweDgwLDB4MjEsMHgyMiwweDA4LDB4MDgsMHgwMiwweDEyLDB4MDEgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4ODQsMHhjMCwweDJkLDB4MjAsMHgwYiwweDA4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDQyLDB4YTAsMHhkOCwweDBiLDB4MzQsMHg4MiwweDBjLDB4MDAsMHhhMywweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHgwYywweDg4LDB4YjMsMHgyMSwweDI0LDB4ZDgsMHgwYiwweDNlLDB4MDIsMHg4YywweDAwLDB4OTMgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4MDgsMHgyOCwweGMwLDB4MDgsMHgzOCwweDAyLDB4MmMsMHgwNSwweDhiLDB4MDEsMHgyYywweGUwLDB4MGIsMHgzMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZWUsMHgwMCwweDMzLDB4OTAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MGYsMHhhMCwweDBiLDB4NjgsMHgwMCwweGNhLDB4MDEsMHg3ZiwweGE4LDB4MGMsMHhhYSwweDAzLDB4M2EsMHgxMiwweGZlLDB4ZTIgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MzcsMHhiMCwweDBmLDB4ZWUsMHgwMiwweDE4LDB4MDAsMHhjYSwweDQwLDB4MzYsMHhhMCwweDA4LDB4YTAsMHg4YiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4Y2EsMHg4MSwweDJlLDB4YTAsMHgwZiwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA4LDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEyLDB4MDIsMHhkOCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MDgsMHgwZiwweDgwLDB4MTMsMHhlMCwweDQwLDB4NDgsMHg0MCwweGI4LDB4MDQsMHgwOCwweDg0LDB4MDMsMHg2MSwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4NGYsMHhjMCwweDAzLDB4ZjEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhjMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZjksMHgwMCwweDMwLDB4NTAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4NGMsMHhiOSwweDAzLDB4NmMsMHgxOCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MGUsMHg5YywweDIzLDB4YTQsMHgwMiwweDQxLDB4MDAgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4YjIsMHg0NCwweDBlLDB4OWEsMHgwMywweGE2LDB4ODAsMHhjOSwweDAwLDB4M2EsMHg2MCwweDBhLDB4OTAsMHgwMywweGE0LDB4ODAgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4YzksMHgwMCwweDM0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDQwLDB4MjIsMHg3OCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MTAsMHhiOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4NjIsMHgxOCwweDk0LDB4ODIsMHhhNCwweDAwLDB4ODksMHhjOCwweDIyLDB4NzAsMHg0OCwweDFlLDB4MDEsMHg2NywweDgwLDB4ZDEgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MDAsMHhiYywweDQyLDB4MDgsMHgxMCwweDAyLDB4MjUsMHgyMCwweDg5LDB4MDIsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjEsMHgyOCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MDgsMHhiMCwweDgyLDB4NjQsMHgwNCwweDM5LDB4NDEsMHgyZSwweDQ4LDB4MGEsMHg5MCwweDAyLDB4MDQsMHgxOCwweGE5LDB4MjAgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4MjIsMHg0MiwweDRhLDB4OTAsMHgwMiwweDJjLDB4MDQsMHg4OSwweDA0LDB4MmIsMHg0OCwweDAyLDB4ZDAsMHgwMiwweGI0LDB4MGEgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4OGQsMHg4MCwweDIzLDB4YzAsMHg0OCwweGQwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4YTAsMHg0OCwweDI4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDI0LDB4MmEgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4NDAsMHgwOCwweDEyLDB4NDIsMHg4NSwweDgwLDB4YTEsMHgyMCwweGEwLDB4NDgsMHgwOCwweDkwLDB4MDIsMHg0NCwweDAwLDB4OTUgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4MmMsMHgyZCwweDVhLDB4MGEsMHg3MiwweDgyLDB4MTQsMHhhMCwweDg1LDB4YTgsMHgyMSwweDRhLDB4MDgsMHg1MiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4OGMsMHgwNSwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTEsMHgyZSwweDAwLDB4MGEsMHg4NSwweDAyLDB4MjAsMHgwMCwweGU4LDB4NTAgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4MzIsMHgxNCwweDA2LDB4ODUsMHgxNywweGEwLDB4MDAsMHhjOCwweDIwLDB4M2EsMHgwOCwweDBlLDB4ODIsMHgwMywweGEwLDB4ODAgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4YzgsMHgyMCwweDMyLDB4MDgsMHgyYywweGMyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NDAsMHhmZiwweDEwLDB4M2YsMHg0NCwweDBiLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDEwLDB4M2QgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4NDAsMHgwZiwweGQxLDB4MDMsMHhmNCwweDU4LDB4OWQsMHgxMCwweDNmLDB4NDQsMHg0ZiwweGQwLDB4MDMsMHhkNSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGQsMHg5MCwweDAzLDB4ZTQsMHhiOCwweGY5LDB4MjgsMHhiYSwweDZhLDB4MGYsMHg5MCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhlNywweDAwLDB4ZmQsMHg4OCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4OGYsMHhkMCwweDAzLDB4MjQsMHgwMSwweGRkLDB4ODAsMHg3MywweDQwLDB4MGYsMHhkOCwweDAzLDB4YTYsMHgwNCwweGNkLDB4YTIgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4MzMsMHg3OCwweDFjLDB4ZDAsMHgwMywweDM0LDB4MDEsMHhmNSwweDg4LDB4M2IsMHg2OCwweDBjLDB4ZGEsMHg0NywweDM3LDB4ODAgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4Y2QsMHg4OCwweDMyLDB4NjIsMHgwYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4ODAsMHhiOCwweDgwLDB4MmUsMHgxNCwweDBiLDB4MGEsMHg4MiwweDIyLDB4ODAsMHhiOCwweGY4LDB4YTIgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwYiwweDhmLDB4YTMsMHg4MywweGUwLDB4ODgsMHhlYiwweDIyLDB4YTksMHgwOCwweDg4LDB4MTIsMHhhMCwweDA1LDB4YjggfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgyYSwweGFhLDB4ODgsMHg4MCwweDEzLDB4NjIsMHg4MiwweDg4LDB4ODAsMHgyMiwweDI4LDB4ODgsMHhhNCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHgwYSwweDJjLDB4NDEgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MGIsMHgxMCwweDA2LDB4MDQsMHgyMCwweGExLDB4MDAsMHgwMCwweDQwLDB4OGIsMHgxMCwweDQ2LDB4YzQsMHgwMSwweDkxLDB4MTEgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4MjQsMHg1OCwweDY4LDB4OTAsMHhjMiwweDA0LDB4MDAsMHhiMSwweDAwLDB4YTgsMHg1MCwweDA5LDB4MTQsMHgwYSwweDA1LDB4OTUgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4YTEsMHgwOCwweGEwLDB4NDIsMHgyOCwweDExLDB4MGEsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTgsMHhiOSwweDIwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDksMHhiOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4NDAsMHg4YiwweDkxLDB4MDIsMHg4NCwweDAwLDB4OTksMHg2NCwweDI0LDB4NDAsMHg1OCwweDkwLDB4MDIsMHhhNCwweDIwLDB4YmIgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDksMHhiMCwweDAyLDB4MDUsMHgwMSwweGE5LDB4MDAsMHgyMiwweDQwLDB4ODgsMHg5MiwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4ZjksMHg0MCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4NGYsMHg5OCwweDBiLDB4MjQsMHg4MCwweGQ5LDB4MDAsMHgyMiwweDcyLDB4MGIsMHg5OCwweDAzLDB4ZTQsMHg4NCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4YjYsMHg3MCwweDA4LDB4OTksMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmEsMHg0MCwweDBkLDB4OTQsMHhjMiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4YTksMHgwMCwweDIyLDB4NDAsMHgwYywweDk0LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4ODAsMHhmOSwweDA4LDB4M2UsMHhjMCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4NTAsMHgwZiwweDk4LDB4MDMsMHhhNSwweDAwLDB4ZTksMHgwMCwweDNhLDB4NjQsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgzYywweDQwLDB4NmUsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGQ5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDgyLDB4Y2EgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4NGYsMHg4NCwweDBiLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzNiwweDAxLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4NDAgfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4MzIsMHgxMCwweDJkLDB4ODAsMHgwMywweGUwLDB4NTQsMHhjOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4MDQsMHg4MywweGUwLDB4NTAgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4ZDgsMHgwNCwweDEyLDB4MDAsMHgwYywweDAwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDQyLDB4MmUsMHhhMiwweDhiLDB4ZWEsMHgwMiwweDI4LDB4MDgsMHhiZSwweDg5LDB4MzcgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4ODQsMHg0OCwweGUwLDB4MTIsMHgyOCwweDAyLDB4OGUsMHhjMCwweDIzLDB4YjAsMHg0ZCwweDYwLDB4NjIsMHhmOCwweDAwLDB4ODYgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgyMywweDgwLDB4MGIsMHhlMCwweDAyLDB4ZjgsMHgwMCwweDBlLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlNCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YTMsMHgwMCwweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4MWIsMHhiMCwweDlhLDB4NGMsMHgxMCwweDliLDB4ODAsMHgyNCwweGMwLDB4MGEsMHgzMCwweDAwLDB4MGMsMHgwNCwweDliLDB4MjAgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4MjAsMHhkNiwweDA4LDB4MzAsMHgwMiwweDhlLDB4MDgsMHhhMywweDA0LDB4MjQsMHhjMCwweDE5LDB4MzQsMHgwMiwweGM3LDB4MDcgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4YWEsMHhhNCwweGEwLDB4YzAsMHg0OCwweDM0LDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDVjLDB4NDAsMHhiMywweDE0LDB4MjUgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4ZTAsMHgwOCwweDdhLDB4MDIsMHg5ZSwweGMwLDB4OTIsMHg0MCwweGEwLDB4MDAsMHg0OSwweDYwLDB4MDIsMHhjZSwweDAyLDB4OGUgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4MDEsMHgyMSwweGMwLDB4OGIsMHg1NCwweDAyLDB4YzQsMHgwOCwweDg2LDB4NDAsMHgyMSwweGM4LDB4ODgsMHgxMCwweDAyLDB4MjggfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweGMwLDB4ZTQsMHg4MCwweDNkLDB4ZTIgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4NWUsMHg5MCwweGI2LDB4YTIsMHgzNSwweGUwLDB4MGUsMHg3YywweDIzLDB4MWMsMHgwMCwweGQ2LDB4ODAgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MzEsMHhlMCwweDg0LDB4NzgsMHgwMywweGRlLDB4MDAsMHhjNywweDgwLDB4MzUsMHhlMCwweDBmLDB4NjgsMHgwMywweGRlLDB4MDAgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4ZTMsMHg4MCwweDMzLDB4ZTgsMHgyYywweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4OTAsMHhmYSwweDAwLDB4N2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4NDEsMHgwZiwweDMwLDB4MGIsMHgyZCwweDA0LDB4ZWIsMHgwMSwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4NjAsMHgzZSwweGU0LDB4MGYsMHg5MCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDIwLDB4ZmYsMHg5MCwweDNlLDB4MjAgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MGMsMHhhOSwweDA3LDB4MmUsMHg0NCwweGM5LDB4OTEsMHgzMCwweGEwLDB4MGMsMHhiOCwweDYzLDB4MmYsMHg0NCwweGNiLDB4YTEgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4MzYsMHgyMCwweDhjLDB4ZjgsMHgwMywweDM2LDB4MDAsMHhjZiwweDgyLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgyMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZmRhMCwgMCwgezB4Y2UsMHhjMCwweDNiLDB4ZTAsMHgwYywweDY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmRiMCwgMCwgezB4YTgsMHgxMSwweDljLDB4ODQsMHhiMywweDU0LDB4MmMsMHhmNCwweDI4LDB4YmEsMHg4YSwweDNlLDB4NDAsMHg4MSwweGEwLDB4MjkgfSwKLSAgMTYsIDB4ZmRjMCwgMCwgezB4YjAsMHgwZiwweDc4LDB4NDIsMHhhZSwweDAwLDB4ODMsMHg5MCwweDMzLDB4ZTgsMHgwZCwweGUxLDB4MDAsMHg4NSwweDQwLDB4ODIgfSwKLSAgMTYsIDB4ZmRkMCwgMCwgezB4MjQsMHgyMywweGM2LDB4MGQsMHg3MSwweDAzLDB4NWUsMHhlMCwweDg3LDB4MDAsMHgyYiwweGMxLDB4MGQsMHg0NCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZmRlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDA4LDB4MzUsMHgxNCwweDZkLDB4YzAgfSwKLSAgMTYsIDB4ZmRmMCwgMCwgezB4ODgsMHg3MiwweDMyLDB4NWMsMHg4MCwweDg0LDB4MzAsMHgyYiwweDg4LDB4MGEsMHg3MCwweDQyLDB4NWMsMHhhOCwweDkxLDB4MDggfSwKLSAgMTYsIDB4ZmUwMCwgMCwgezB4MjUsMHhjOCwweDA5LDB4NzAsMHgwMiwweDRjLDB4MjIsMHg4MywweDBhLDB4NjEsMHhjMCwweDA5LDB4MjAsMHgwMiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ZmUxMCwgMCwgezB4ODcsMHgwMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MTAsMHhiMywweDg1LDB4NmMsMHhkYywweDA4LDB4MzQsMHgwMiwweDRkLDB4MjEsMHg4MSwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZmUzMCwgMCwgezB4MDIsMHg0YSwweDMxLDB4MTIsMHhlZiwweDBjLDB4OTEsMHhjMiwweDIwLDB4ZjAsMHgwOCwweDMwLDB4NDIsMHg4ZSwweDAwLDB4ODIgfSwKLSAgMTYsIDB4ZmU0MCwgMCwgezB4NDAsMHgyMCwweGM4LDB4MTksMHgyOCwweDAyLDB4MjIsMHg4MSwweDgzLDB4YzAsMHgyOCwweGQ0LDB4MDksMHgwMCwweDBhLDB4MDggfSwKLSAgMTYsIDB4ZmU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmIsMHhhMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZmU2MCwgMCwgezB4OGMsMHgwNCwweDEyLDB4N2QsMHgxMCwweGNmLDB4MDIsMHgzYSwweDUwLDB4MDgsMHhjMCwweDQyLDB4N2QsMHg1MiwweDU4LDB4MDEgfSwKLSAgMTYsIDB4ZmU3MCwgMCwgezB4MzYsMHgyMiwweDY5LDB4ZDAsMHgxMywweDJhLDB4MDAsMHg4OCwweDgyLDB4MzIsMHhmMCwweDA5LDB4YjgsMHg4MiwweDJmLDB4MDAgfSwKLSAgMTYsIDB4ZmU4MCwgMCwgezB4YzksMHhjOCwweDIzLDB4YzAsMHgwYywweDhhLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhiOSwweDQwLDB4M2MsMHg1MCwweDRmLDB4ODAsMHgyMywweGFjLDB4MTIsMHhmYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZmVhMCwgMCwgezB4YzAsMHg2ZCwweDgwLDB4MTMsMHhhYywweDAwLDB4ZTgsMHgwNCwweGJhLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhlOCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZmViMCwgMCwgezB4MDgsMHgzYywweDgwLDB4MGYsMHg5MCwweDgzLDB4ZWMsMHgwNCwweGY5LDB4NjAsMHgyYywweGMyLDB4MGYsMHg4MCwweDgzLDB4ZTAgfSwKLSAgMTYsIDB4ZmVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4ZWMsMHgyYywweDNmLDB4ZjAgfSwKLSAgMTYsIDB4ZmVkMCwgMCwgezB4OGMsMHhmYSwweDhiLDB4YmMsMHgwMCwweGZlLDB4MDAsMHgzZiwweDAwLDB4MGYsMHg3OSwweDAzLDB4M2MsMHgwMCwweGNlLDB4MDggfSwKLSAgMTYsIDB4ZmVlMCwgMCwgezB4MGIsMHhjMiwweDBjLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4MzMsMHg0MCwweDhjLDB4N2EsMHgwMywweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZmVmMCwgMCwgezB4YzUsMHgwMCwweDMzLDB4YzAsMHg0YywweGM4LDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmYwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4OCwweGMwLDB4MmUsMHhlMCwweDA4LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhiYiwweDgwLDB4NjYgfSwKLSAgMTYsIDB4ZmYxMCwgMCwgezB4MzAsMHgxNiwweGIwLDB4MDIsMHgyYywweDAwLDB4ZGEsMHg0YywweDIyLDB4ZjAsMHgwOCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWIgfSwKLSAgMTYsIDB4ZmYyMCwgMCwgezB4YzAsMHgyMiwweDY4LDB4MDAsMHg5NCwweDAyLDB4MmMsMHgwMiwweGE5LDB4ODAsMHgyMiwweGMwLDB4MDgsMHgwYywweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZmYzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YWIsMHgwNCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZmY0MCwgMCwgezB4MDgsMHhhNCwweDA2LDB4MmMsMHgwNCwweGFiLDB4MTAsMHgyZSwweDYwLDB4NDMsMHg4MCwweDgyLDB4NmMsMHgwMSwweDgxLDB4ODAgfSwKLSAgMTYsIDB4ZmY1MCwgMCwgezB4MjgsMHgwYSwweDA4LDB4OTEsMHgwMCwweGUwLDB4MDAsMHhiOCwweDgwLDB4MDIsMHhlMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4ODAgfSwKLSAgMTYsIDB4ZmY2MCwgMCwgezB4ODgsMHhjMCwweDIyLDB4YzAsMHgwOCwweDgyLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MCwweDQ0LDB4MmMsMHhjOCwweDI4LDB4YTAsMHgyMiwweDBjLDB4MDQsMHhiMywweDI2LDB4MmMgfSwKLSAgMTYsIDB4ZmY4MCwgMCwgezB4YzgsMHg4OCwweDAxLDB4MDYsMHgwYywweGUwLDB4OTEsMHgyMCwweDIwLDB4MGMsMHgzOCwweDA0LDB4MjIsMHhjMCwweDQ4LDB4YTMgfSwKLSAgMTYsIDB4ZmY5MCwgMCwgezB4NDIsMHhhMCwweDgxLDB4MDgsMHgwMCwweDAyLDB4MGMsMHg4MCwweDgxLDB4MDAsMHgyMCwweGMwLDB4MjgsMHgwMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4ZmZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4YTksMHg0MCwweDNlLDB4NDQgfSwKLSAgMTYsIDB4ZmZiMCwgMCwgezB4MDgsMHhiMSwweDAzLDB4MmMsMHg0MCwweGVhLDB4NDksMHgyZSwweDBkLDB4MGIsMHhiNiwweDEzLDB4N2QsMHg4MCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4ZmZjMCwgMCwgezB4YmEsMHhkMCwweDBjLDB4YjQsMHgwMywweGFjLDB4MDAsMHhmOCwweDAwLDB4MzIsMHg0MCwweDBjLDB4ODAsMHgwYiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZmZkMCwgMCwgezB4YzUsMHgwMCwweGIyLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYywweDAwLDB4M2QsMHhjNSwweDBiLDB4ZjEsMHgwMCwweGZjLDB4ZDAsMHg3NywweDI5LDB4MzcgfSwKLSAgMTYsIDB4ZmZmMCwgMCwgezB4MGMsMHg4ZSwweDc0LDB4MDMsMHhmYywweDA4LDB4ZmQsMHg2OSwweDNmLDB4ZDgsMHgwZiwweGYwLDB4MDMsMHhiYywweDAwLDB4ZWYgfSwKLSAgMTYsIDB4ODAxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MDcsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmYywweGMwLDB4ZGMsMHg4MCwweDNmLDB4YzggfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MGYsMHg0OCwweDAzLDB4N2MsMHgyMCwweGZmLDB4NjgsMHgzNywweGUwLDB4MGUsMHhmMSwweDAzLDB4OWMsMHgwMCwweGJmLDB4MjAgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4MzcsMHhlMCwweDBjLDB4YzgsMHgxMywweDNjLDB4NDAsMHhlZCwweDYwLDB4YmIsMHhlNCwweDJjLDB4NDMsMHg0YiwweDcwLDB4YTAgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4Y2MsMHgyYywweDNmLDB4MDksMHgwZiwweGQ4LDB4NDMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4ODAsMHgwMCwweGVkLDB4YzAsMHhiOCwweDgwLDB4MmYsMHhmNCwweDBmLDB4OTgsMHgwMiwweDNmLDB4MDAsMHhiZiwweDQyLDB4MjIgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4Y2EsMHgwOCwweGY0LDB4MDIsMHgzZSwweDAwLDB4YmYsMHhkMCwweDIyLDB4NjAsMHgyOCwweDg4LDB4MGEsMHgzZCwweDgwLDB4OGQgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4NDAsMHgyMiwweGM4LDB4MDgsMHg4MSwweDAyLDB4MjEsMHg4MCwweGRiLDB4YzAsMHgyZSwweGE1LDB4MGIsMHg5OCwweDQyLDB4MjAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDEwLDB4YjAsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MjAsMHgyNiwweGMwLDB4OGEsMHgzNiwweDEyLDB4OGMsMHg0MSwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4MDAsMHgwMiwweDBkLDB4ODEsMHhhMSwweDMwLDB4MjIsMHhjOCwweDg5LDB4YTIsMHg0MiwweDA4LDB4MjAgfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4YjAsMHgwMCwweDJjLDB4NDAsMHgwYiwweDkwLDB4MjYsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NjIsMHgyYywweDEwLDB4YmIsMHgwNCwweDJhLDB4ZjAsMHg0YSwweDg4LDB4MDIsMHgwYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDksMHhiOCwweDgwLDB4MjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDIxLDB4MGIsMHg5MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTUsMHhlYywweDAwLDB4ZDgsMHhjMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4MGIsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzNiwweDgwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4M2MsMHhlMCwweDBjLDB4MGMsMHgwMywweDJjLDB4MDAsMHhlOSwweDAwLDB4MTAsMHhjMCwweDBjLDB4OGMsMHgwMywweDA2LDB4MDAgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4ZjgsMHhjZCwweDNlLDB4MjIsMHgwZiwweDE4LDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmNywweDAyLDB4M2YgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4ZTQsMHgwZiwweDcwLDB4MDMsMHg3YywweDA0LDB4YjcsMHgwMCwweDM3LDB4NDAsMHgwZCwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgzNywweGQwLDB4MGUsMHhjMCwweDQzLDB4ZjQsMHgwMCwweGRmLDB4MDAsMHgzZiwweDgwLDB4OGYsMHhkYSwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjgsMHgxMCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4NmQsMHhhNiwweDEzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzYSwweGQwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHgxMCwweGRiLDB4MTAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MzYsMHhkOCwweDBkLDB4ODQsMHgwMywweGVjLDB4MDYsMHhjOSwweDA4LDB4M2EsMHhjMCwweDBlLDB4ODYsMHgwMywweGE4LDB4NjAgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4ZjgsMHgyMCwweDNhLDB4NDAsMHgwYywweDkwLDB4MDMsMHg1NCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4OTgsMHgwNSwweDNjLDB4MDAsMHhiYiwweDQwLDB4MjMsMHhkMCwweDA4LDB4MzAsMHgwMiwweDNlLDB4MTAsMHhhZiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MDIsMHgzYywweDAwLDB4OGYsMHg1MCwweDJlLDB4YzgsMHgwNiwweDhhLDB4MDIsMHhmYywweDAwLDB4OGQgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4MjQsMHg4MiwweGQ2LDB4MDgsMHgzMiwweDAyLDB4MmQsMHgwOCwweDNhLDB4NDAsMHgyMiwweDgwLDB4MGQsMHg5MCwweDAzLDB4NjIgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg0YywweDAwLDB4YjAsMHgyMCwweDI4LDB4YzIgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4MDgsMHgwNCwweDAyLDB4OGMsMHgwMCwweDEzLDB4MDIsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgzMCwweDkzLDB4ODAgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MjQsMHhkMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAsMHg5MSwweDQwLDB4MDgsMHhjMCwweDJhLDB4MTQsMHgwMiwweDgxLDB4MDAgfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4OTAsMHgwMCwweDY4LDB4MDAsMHgwOCwweDE4LDB4MDIsMHgzYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4NzAsMHgwMSwweDFlLDB4MDAsMHhiNCwweGEwLDB4MjEsMHhlMCwweDA4LDB4YzgsMHgxMiwweDllLDB4MDAsMHhiMywweDgyLDB4MjEgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4ZTAsMHgwYiwweDdhLDB4MGEsMHgxZSwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZTEsMHgwYSwweDQ4LDB4MDIsMHhjZSwweDQwLDB4OTUgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4OTAsMHgyOSwweGU0LDB4MDgsMHg1OCwweDAyLDB4OWEsMHgwMCwweGI3LDB4ODgsMHgyMSwweGUwLDB4MDksMHg1OCwweDAyLDB4NWMgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDRhLDB4MDAsMHgwYywweDAwLDB4ZjAsMHg4MCwweDM4LDB4YzQgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4MGMsMHgyNSwweDAzLDB4OGMsMHgyMCwweDkzLDB4MDAsMHgzOCwweGM0LDB4MGYsMHhiMCwweDAzLDB4MGMsMHg4MCwweGQzLDB4MDAgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4MzQsMHhjMCwweDBkLDB4MDQsMHgxMywweGNjLDB4MDgsMHg5OSwweDAwLDB4MmEsMHhjMCwweDBlLDB4MjEsMHgwMywweDg4LDB4MDQgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4ZjMsMHgwMCwweDM4LDB4YzAsMHgwYywweDExLDB4ODMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4NDIsMHgxNSwweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMywweDBlLDB4YzAsMHgwMywweDFjLDB4MDAsMHhhZiwweDRhLDB4N2YgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4YzQsMHgwZiwweGIyLDB4MDMsMHhmZCwweDAxLDB4ZWYsMHgxMCwweDNmLDB4ODQsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4MDAsMHgzNywweGMyLDB4MGUsMHhmMSwweDQ3LDB4N2MsMHgwMCwweGY3LDB4MDAsMHgzZCwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhlYywweDA4LDB4ZjgsMHgwMCwweDNlLDB4Y2EgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWYsMHgyMSwweGZiLDB4ODAsMHg3YSwweDQwLDB4OGYsMHhiMiwweGExLDB4MmYsMHgwMCwweGNiLDB4NjAgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4YTAsMHhlOSwweDMwLDB4MzIsMHhjMCwweDJkLDB4YjAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4YzgsMHg5MSwweDlkLDB4MDAsMHhiNCwweDAxLDB4MmQsMHhjOCwweDBiLDB4NzAsMHgwMiwweGNjLDB4ODAsMHg4ZiwweDIwLDB4MjEgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4YzAsMHg4YiwweDc2LDB4MDMsMHg1ZCwweDAwLDB4ODcsMHgwYSwweDJkLDB4YzAsMHgwYiwweDQwLDB4MjIsMHhmZCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4MTAsMHgyMywweGM4LDB4MDgsMHg1MCwweDEyLDB4ZDQsMHgwMCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg5ZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4MGIsMHg3YywweDAyLDB4ZGUsMHg0MCwweGE3LDB4ODIsMHgyZCwweGUwLDB4MGIsMHgzYSwweDAyLDB4OGUsMHgwMCwweDg3LDB4OTAgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4NTgsMHgwMiwweDVlLDB4MDAsMHhhNSwweGEyLDB4NjUsMHhlMCwweDA4LDB4NjgsMHg4MiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4OTUsMHg4MCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MDgsMHg4NCwweGNjLDB4MDAsMHhiMCwweDA5LDB4MmMsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4NDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YTAsMHgwYiwweDA0LDB4MDIsMHhjYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4MDAsMHhhMCwweGMwLDB4MDgsMHhiMCwweDA2LDB4Y2YsMHg4MCwweGIzLDB4MTAsMHgyYywweGM0LDB4MGIsMHgzMSwweDAyLDB4YzMgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4MGYsMHhlOCwweDEzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzZiwweGIwLDB4MGYsMHhhMCwweDAzLDB4YTgsMHgwMiwweGMyLDB4MDAgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4MmYsMHg4OCwweDBmLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhlYSwweDAwLDB4MzYsMHgwMCwweDBjLDB4ZTAsMHgwMywweGY5LDB4MjAgfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4ZGUsMHg4MCwweDNmLDB4YTAsMHg0ZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDEwLDB4M2MsMHgxMCwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MDYsMHgwZiwweDAwLDB4MTMsMHhlMCwweDAxLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDIzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNlLDB4NDQgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDEyLDB4MjQsMHgwMCwweGY5LDB4MTAgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBjLDB4OWMsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4ZjksMHgxMCwweDNlLDB4NzAsMHgwZiwweDkwLDB4MDIsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4ODAsMHgxNCwweDY0LDB4MDAsMHhiOSwweGMwLDB4MmUsMHg0OCwweDA4LDB4OTEsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NywweDAwLDB4YjksMHg4MCwweDJhLDB4NjAsMHgwYiwweDk5LDB4MDIsMHhlNCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MmMsMHg5MCwweDEyLDB4MjUsMHgyMCwweGI5LDB4NDgsMHgyZSwweDUyLDB4MGIsMHg5NCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4NjgsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHg2MCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4MjIsMHg0OCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDIsMHg4OSwweDAwLDB4YTAsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE2LDB4MTAgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4YjksMHgwMCwweDBlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4ODQsMHhiMSwweDIwLDB4MmMgfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4NDAsMHgwOSwweDEyLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4ODkgfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4MjAsMHgyMCwweDQwLDB4NGIsMHgxMiwweDBhLDB4ODQsMHg4NCwweGIxLDB4MjAsMHgyYywweDQ4LDB4OGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YmEsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTgsMHgwOCwweGY4LDB4NTAsMHgzZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4MjAsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4YTAsMHgwMywweGUxLDB4NDAsMHhjOCwweDUwLDB4MzIsMHgxNCwweDBjLDB4YTUsMHgwMywweGExLDB4NDAgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4ODgsMHgwZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhiOSwweDExLDB4M2YgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4NDAsMHgwZiwweDkxLDB4MDMsMHg2NCwweDQ0LDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4MTAsMHgzZiwweDEwLDB4OGMsMHhkMSwweDAzLDB4NzQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHg2NiwweDIwLDB4ZWQsMHgwMCwweDMzLDB4NjkgfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4NGQsMHg1MCwweDQzLDB4NTYsMHgwMCwweGY5LDB4YTAsMHgzNCwweDQwLDB4MGYsMHg5YSwweDBiLDB4MzQsMHgwMCwweGRkLDB4ODAgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4M2IsMHg0MCwweDBiLDB4NTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHhlMCwweDBlLDB4ZDAsMHgwMywweGY0LDB4MDAgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4NzgsMHgxMCwweGUyLDB4ODAsMHg4OCwweDA0LDB4MjIsMHgxMCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDksMHhiOCwweGYwLDB4MjIgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4MDAsMHgwYiwweDhlLDB4MTIsMHhhMCwweDAwLDB4YjgsMHg1MiwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMCwweDA1LDB4YjggfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4YWEsMHgyMywweDNlLDB4MGQsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgzYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDIwLDB4YTksMHgwMCwweGE0LDB4NDQgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MDksMHg5MCwweDAyLDB4YzUsMHgwMCwweGExLDB4MDgsMHgyYywweDQwLDB4MGIsMHgxMSwweDgyLDB4MDQsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4MjgsMHg0MCwweDBhLDB4MTAsMHg0MiwweGM0LDB4MDAsMHhiNSwweDAwLDB4YTEsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4YjEsMHgwMSwweDJjLDB4NDAsMHgwOCwweDEwLDB4MjAsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMCwweGFjLDB4MDAsMHgzOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDgsMHgwYiwweDkwLDB4MTIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4MDAsMHgyMSwweDYwLDB4MDksMHg5MiwweDIyLDB4ZTQsMHgyOCwweGI5LDB4MDAsMHgwYSwweDUwLDB4MDgsMHg5MCwweDA2LDB4YzYgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQ4LDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4M2EsMHg3OCwweDBlLDB4OTgsMHgwMywweGU0LDB4MDAsMHhiOSwweDAwLDB4YjIsMHg0MCwweDBlLDB4OTIsMHgyMywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4YjksMHg1MCwweDNlLDB4NzAsMHgyYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4NjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDRmLDB4OWMsMHgyMywweDY0LDB4MDAsMHhmOSwweDA0LDB4MzYgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjAsMHgwZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDgzLDB4ZTQsMHg0NCwweGY5LDB4MDAsMHg3OCwweDY0LDB4MGYsMHg5MCwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4MGYsMHg4MiwweDAzLDB4YTAsMHg0MCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4MjAsMHhjMCwweGM4LDB4ODAgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4M2UsMHgxMiwweDBmLDB4ODAsMHgwMywweDYwLDB4MDAsMHg3YywweDAwLDB4MzMsMHgwMCwweDBkLDB4ODAsMHgxMywweGUwLDB4MTAgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4YzgsMHg2NCwweDNlLDB4MDgsMHgwYywweDgyLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiNiwweGUwLDB4MGYsMHhhMCwweDBiLDB4NjAsMHg4MiwweDM4LDB4MDAsMHhhYSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4NDIsMHhiYSwweDAwLDB4YWUsMHgyMCwweDJmLDB4ODgsMHgwYiwweGU1LDB4MDIsMHgyOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4ZDgsMHgzNywweDgwLDB4MDgsMHhlYywweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyZiwweDkwLDB4MGQsMHhlMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjAsMHgyNCwweDJjLDB4NjAgfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4OGUsMHg4MCwweGFiLDB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4MGQsMHgwOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4NmMsMHhkMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4MDAsMHhiOCwweGMwLDB4MjAsMHgwMCwweDQ4LDB4MzQsMHgxMiwweGNjLDB4NDAgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4ZTAsMHgwYSwweDM1LDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4MmQsMHgwMiwweDhiLDB4NjAsMHgwMiwweDllLDB4MDAsMHg4NywweDIwLDB4MmYgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4ZTAsMHgwOCwweDcyLDB4MDIsMHg5ZSwweDAwLDB4YTQsMHgwMCwweDJkLDB4YzAsMHgwYiwweGY4LDB4MDIsMHg5YywweGMwLDB4YjMgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4MDIsMHhhNSwweGMwLDB4MDgsMHg1MCwweDg2LDB4ZmUsMHgwMCwweDg3LDB4MDAsMHgyZiwweGQwLDB4MDksMHg3MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjQsMHg4MCwweDNkLDB4MjAgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4OWUsMHgwMCwweDY3LDB4ODAsMHgzZCwweGY4LDB4MGQsMHgzOCwweDAyLDB4MWEsMHgxMCwweDQ0LDB4ODAgfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4M2QsMHhlMCwweDBmLDB4NTgsMHgwMywweGRlLDB4MjAsMHhiNCwweDgwLDB4MzMsMHhhMCwweDJjLDB4NjgsMHgwMywweGQ2LDB4MDAgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4YzcsMHg4MSwweDNkLDB4ZTAsMHgwYywweDc4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2UsMHgwMCwweDhmLDB4ODAsMHgwMywweDZjLDB4MDAsMHgzYiwweDEyLDB4M2UgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4Y2EsMHgwZiwweGI1LDB4MDMsMHhjOCwweDAwLDB4ZjgsMHgwNCwweDdlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHg2YywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4YzgsMHgwMCwweGY5LDB4MDEsMHgzYywweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4YWMsMHg5MCwweDMxLDB4NDggfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4MDgsMHhmOCwweDAzLDB4ZmEsMHgwMCwweGNmLDB4ODAsMHgzZiwweGUwLDB4MGMsMHhmYywweDEzLDB4M2UsMHgwNCwweGZjLDB4ODAgfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4NzgsMHgwMywweGJlLDB4MDAsMHhkZiwweDgwLDB4M2IsMHgyMCwweDI0LDB4ZjgsMHgwMywweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4ZTAsMHgwMywweGY5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4YTgsMHgxMSwweGJjLDB4MDAsMHg4MCwweDAwLDB4MDEsMHgwMCwweDA4LDB4NzIsMHgwMiwweGQwLDB4MDAsMHg4NywweDAwLDB4MmQgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4YzgsMHgwYSwweGYwLDB4MDIsMHg5OCwweDQwLDB4ZjUsMHgwMCwweDYxLDB4NDEsMHgwMCwweDc0LDB4MDIsMHgxYywweDAwLDB4YjQgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4MDAsMHgyMSwweGM4LDB4MDgsMHg2MCwweDAyLDB4M2UsMHgyMCwweDg2LDB4MDgsMHgyMSwweGQ4LDB4MGYsMHg1MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDAsMHg5YywweDAwLDB4YTQsMHgwMCwweDIxLDB4MDAgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4MDgsMHg1MCwweDAyLDB4ZDgsMHgwMCwweDk3LDB4MDAsMHgyZCwweGMwLDB4ODgsMHg3MSwweDAyLDB4MTQsMHgwMCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MjUsMHg5MCwweDA4LDB4YzAsMHg4MiwweDljLDB4NDAsMHg5MywweDAwLDB4MjksMHhhMSwweDg4LDB4NjAsMHgwMiwweDE0LDB4MTIgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4ODcsMHg0MCwweDI5LDB4NDAsMHgwYiwweDYwLDB4MDIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg4MCwweGQwLDB4YTAsMHgwMCwweDA4LDB4MWMsMHgwMiwweGMwLDB4MDAsMHg5MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4ZDAsMHgwYSwweGIwLDB4MjYsMHg4MCwweDAwLDB4YjMsMHgwMCwweDI0LDB4ZTQsMHgwOCwweDA4LDB4MDIsMHg4YywweDAwLDB4YjAgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4MDIsMHgwMiwweDQxLDB4MDgsMHgwOCwweDAyLDB4MDMsMHgwMSwweDgxLDB4MDAsMHgyOCwweDQyLDB4MWEsMHgwMCwweDQyLDB4ZDggfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhiYywweDAwLDB4ZTgsMHhjMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4MGMsMHhiNSwweDAzLDB4ZTQsMHgwMCwweDlmLDB4MDAsMHgzZCwweGUwLDB4MGMsMHhmMCwweDBiLDB4MjQsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4MzYsMHhlMCwweDBjLDB4MjUsMHgwMywweGJjLDB4MDUsMHhkOCwweDAyLDB4MmEsMHgwMCwweDA4LDB4YmEsMHgwMiwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4YzEsMHgwMiwweDNhLDB4NTAsMHg4YiwweDkwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4M2UsMHg4MCwweDBmLDB4YTEsMHgwMywweGVjLDB4MDQsMHhlYiwweDAyLDB4MmUgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4YzYsMHgwZiwweGIwLDB4MTcsMHg0NCwweDAwLDB4ZTgsMHgwMCwweDNhLDB4NDAsMHgwZiwweDgwLDB4MDIsMHg2YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4MDAsMHgzZSwweGUwLDB4MGYsMHg5MCwweDkzLDB4ZTEsMHgwMCwweGQ5LDB4MDAsMHgyNiwweDcwLDB4OGYsMHg5MCwweDAxLDB4ZTEgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMywweDM3LDB4MjQgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4MGQsMHhmOCwweDAzLDB4ZTAsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMxLDB4OGQsMHhmMCwweDBiLDB4MzgsMHgwMCwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZmEsMHgwMywweDNjLDB4MGMsMHhmYywweDA0LDB4M2IsMHg4MCwweDBjLDB4YTAsMHgwMywweDk0LDB4MjAgfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4ODksMHgwNSwweDNiLDB4MDAsMHg0ZiwweGQwLDB4MjMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4ODAsMHgwNCwweDZjLDB4MDAsMHhiMCwweDA2LDB4MjAsMHgxMywweDg4LDB4YTgsMHgwMiwweGViLDB4MDAsMHhiYiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYSwweDAwLDB4YTgsMHg4MCwweDJlLDB4ZTAsMHgwYiwweDk0LDB4MWEsMHgyYywweDAwLDB4YmIgfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MjksMHg5OCwweDAyLDB4ZTIsMHgwMCwweGE5LDB4ODQsMHgyMiwweDIwLDB4MGIsMHg5OCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YjgsMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4MDksMHg4MiwweDAyLDB4ZTYsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMCwweDg4LDB4ODAgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MmUsMHhhMCwweDBiLDB4YTAsMHgwMiwweDJjLDB4MDAsMHhiMywweDAwLDB4MmEsMHgwMCwweDA5LDB4OTgsMHgwMiwweGVhLDB4MjAgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4YTksMHg4MCwweDJhLDB4NjAsMHg5YiwweDk4LDB4ODIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiOCwweDAwLDB4MjAsMHgwMCwweDA5LDB4MDgsMHgwMiwweGM0LDB4MDAsMHhiMywweDAwLDB4MjYgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4YzAsMHgwMCwweDMwLDB4MDIsMHgwMCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NDEsMHgwYiwweDAwLDB4MDIsMHgwYywweDAwLDB4YjAgfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGIsMHgwMCwweDAyLDB4YzgsMHg4MCwweGE4LDB4MDAsMHgyMCwweDQxLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDEwLDB4ZjgsMHg1MCwweGIyLDB4MDAgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGZiLDB4MDAsMHgzZCwweGMwLDB4MGQsMHhmMCwweDEzLDB4MjQsMHgwMiwweGM4LDB4MDYgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDNjLDB4MDQsMHhmYiwweDAwLDB4NzgsMHg4MCwweDBjLDB4YTAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4ZTksMHgwMCwweDFhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmNCwweDIwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMiwweGYwLDB4MDEsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MjMsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4OWMsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweDAwLDB4ZWQsMHgyMywweGI3LDB4NDggfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MGMsMHhlMSwweGMzLDB4N2MsMHhjMCwweGRkLDB4ODAsMHgzNywweGUwLDB4MGYsMHhjYiwweDAzLDB4ZmUsMHgwOCwweGZjLDB4MjggfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4M2YsMHhmMCwweDFjLDB4ZmIsMHgyMywweDdjLDB4MDEsMHhmZiwweDE0LDB4NzcsMHhlMiwweDRmLDB4ZTgsMHgyMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4YzQsMHg4MCwweDMzLDB4NDgsMHgyYywweGY4LDB4MjIsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4ODAsMHgxMCwweGUwLDB4ZTAsMHhjOSwweGMwLDB4MjIsMHg1YiwweDg4LDB4OTYsMHgyMiwweDJkLDB4MDAsMHg4OSwweDIyLDB4MjIgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4Y2EsMHgwYiwweDllLDB4MjIsMHhlMiwweGEwLDB4YjksMHg2MSwweDJjLDB4ZTAsMHg4OCwweDlmLDB4MDIsMHgzZCwweDg1LDB4YmYgfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4NjAsMHgyNiwweDUwLDB4NDgsMHhhMCwweDAyLDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMiwweDUwLDB4MDgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDgwLDB4YjEsMHgxMCwweDIwLDB4NDQgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4MGIsMHhiMiwweDAyLDB4Y2UsMHhkMCwweDgxLDB4MDgsMHgyYywweGMwLDB4MGIsMHgwMSwweDAyLDB4OGMsMHgwOCwweGIzLDB4MDggfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4MmMsMHhjOSwweDA4LDB4MTAsMHg2MiwweDhjLDB4NjAsMHhiMywweDMyLDB4MjQsMHg4MCwweDBhLDB4YTAsMHgwMiwweDZjLDB4MDMgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4OWEsMHgwMSwweDI2LDB4NDQsMHg0OCwweGIwLDB4NDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4YTAsMHg4YiwweDAyLDB4MjIsMHhlMCwweDBiLDB4YjAsMHg2MiwweGFjLDB4OTgsMHg5OSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4YzIsMHgwYiwweDk4LDB4MDYsMHhlNCwweDAwLDB4YmIsMHgwMiwweDJlLDB4YzAsMHgwOCwweDkxLDB4NDIsMHgyYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4MDAsMHg2ZSwweDgwLDB4MGEsMHg4MCwweDAyLDB4NmMsMHgwMCwweDFiLDB4MDAsMHgwNiwweDQwLDB4NDgsMHhiOCwweDBhLDB4NzAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YTEsMHgwMCwweDc2LDB4NzggfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTgsMHgxMCwweGQ5LDB4MDAsMHgzZSwweGQwLDB4NGIsMHg5ZSwweDEzLDB4YWMsMHgwOCwweGI4LDB4YTAgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4N2UsMHhjNiwweDA4LDB4YTgsMHgwMiwweDJjLDB4MDEsMHhiYiwweDAwLDB4MjYsMHgzMCwweDRlLDB4MjAsMHgwMywweDRjLDB4MTggfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4OTksMHg4MCwweGI0LDB4NDAsMHg0YywweDNhLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4ZTAsMHgwMSwweGIyLDB4MDAsMHhmZCwweGM1LDB4M2IsMHhjMCwweDRjLDB4ZDAsMHgwMywweDZhLDB4MDIsMHhlZCwweDA2LDB4MzMgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4YzQsMHgwZiwweGQwLDB4NTMsMHhmOCwweDAwLDB4ZmMsMHg5MCwweDdmLDB4YzEsMHgwZiwweDc4LDB4MDMsMHhiYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4MDAsMHgzNywweDY0LDB4MGMsMHhmMSwweDAzLDB4YTQsMHgwMCwweGVkLDB4YTEsMHgzYiwweDQwLDB4MGIsMHhmMCwweDgzLDB4YjggfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4Y2IsMHgyMCwweDNlLDB4NzEgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4MGYsMHhiMywweDAzLDB4OTgsMHgwMiwweGZiLDB4MDIsMHgzNiwweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZWMsMHgyMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4M2UsMHhjYywweDA0LDB4ODQsMHgwMywweDJjLDB4MDAsMHhkYiwweDA0LDB4M2MsMHgxMCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4OWIsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4ODgsMHgwNSwweDJjLDB4MDIsMHg4YiwweDQ4LDB4MmUsMHhlMCwweDBiLDB4MzQsMHgwMywweDZiLDB4MDAsMHg4YiwweGY1LDB4MjIgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4ZjIsMHgwYiwweDljLDB4MDMsMHhhZiwweDAwLDB4YjgsMHg1MCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg3YywweDAwLDB4OGYgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4MDAsMHgwZSwweDVkLDB4MGIsMHg4MCwweDAyLDB4ZjUsMHg0MCwweDgzLDB4NTAsMHgyMywweDU0LDB4MDgsMHg5YywweDAyLDB4ZTYgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDQsMHg0YywweDAwLDB4ODEsMHg4MSwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4MDMsMHgyYywweDAyLDB4MDQsMHgzMywweDk5LDB4MDAsMHgyMCwweGYwLDB4NGEsMHgyOCwweDgwLDB4Y2MsMHg0MCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MjYsMHgxMCwweDA4LDB4MjAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4YTAsMHgwMiwweDI4LDB4NDAsMHgwOCwweDA4LDB4MDIsMHg3YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MjAsMHgwMSwweDBhLDB4MDAsMHg4NSwweDgwLDB4MmQsMHhmOCwweDBiLDB4ZGEsMHgwMiwweGQ2LDB4NDAsMHg4NSwweGEwLDB4MjEgfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4ZTAsMHgwYiwweDQ4LDB4MDYsMHg5MiwweDA0LDB4YjUsMHg4MCwweDJkLDB4MjEsMHgwOCwweDAwLDB4MDIsMHg0ZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4YTQsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4ZGUsMHhjMiwweGFkLDB4OTAsMHgyYiwweDYwLDB4MjgsMHg1OCwweDgyLDB4ZGMgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0YywweDQwLDB4YzMsMHgxMCwweDJjLDB4NmMgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4ODYsMHhhMiwweGY5LDB4YjAsMHhiMCwweGUwLDB4MGYsMHgyOSwweDgzLDB4Y2UsMHg0NCwweGYzLDB4ODAgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4M2MsMHhhYywweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhjMywweDAwLDB4M2MsMHhkNSwweDBmLDB4MjAsMHgwMywweGNlLDB4YzEgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4ZTAsMHgxMCwweGI4LDB4NDAsMHgwYywweDAwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjYywweDBmLDB4MzIsMHgwMywweDY0LDB4MDgsMHhmOSwweDAwLDB4M2IgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4OTAsMHgwZiwweGYwLDB4NDMsMHhlNCwweDQwLDB4ZmIsMHgzNCwweDNmLDB4ODEsMHgwNywweGQxLDB4MDMsMHhhZCwweDIwLDB4ZWIgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4MjAsMHg3ZiwweGM0LDB4MGYsMHhlMSwweDAzLDB4ZmMsMHg1MCwweGNkLDB4MTAsMHgzNSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDA0LDB4ZmQsMHgwNCwweDNkLDB4NDAgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4MmQsMHgzMCwweDAyLDB4M2MsMHgwMCwweGM5LDB4MDEsMHgzZSwweGMwLDB4NGYsMHhiOCwweDQzLDB4ZWMsMHgxMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YTAsMHgyMywweGVjLDB4ODAsMHhjYiwweDM2LDB4MzIsMHg4MCwweDRkLDB4YTgsMHgwMywweDJjLDB4MTAgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4YzgsMHgxMSwweDkwLDB4MDgsMHhiNSwweDAwLDB4MmQsMHhjMCwweDA4LDB4NTAsMHgwMiwweGJjLDB4MDIsMHg4NSwweDA0LDB4MmQgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4YzAsMHg4ZSwweDYwLDB4MDYsMHhkOCwweDA0LDB4YjcsMHgwNCwweDIxLDB4NDAsMHgwYiwweDcwLDB4MDIsMHhmYywweDgwLDB4YWYgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4MDYsMHg0MCwweDg3LDB4MDAsMHgyMSwweDUwLDB4MDgsMHg1MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDIwLDB4YjcsMHg4MCwweDJiLDB4NzAgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4MDgsMHhmOCwweDA2LDB4MWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3MCwweDMyLDB4ZGUsMHgwNCwweDM3LDB4ODQgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NjgsMHgwNiwweGRlLDB4ODAsMHg4NywweDgwLDB4MjEsMHhhMSwweDFiLDB4NjgsMHgwMiwweDFlLDB4NDAgfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4OWYsMHg4MCwweDIwLDB4NjAsMHgwOCwweDU4LDB4MDIsMHgyMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MjAsMHhiMywweDAwLDB4MmMsMHg4MCwweDg4LDB4YjQsMHgyMiwweDhkLDB4MDAsMHg4MywweDkwLDB4MmMgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4YzAsMHgwYSwweDM4LDB4MDIsMHhjZSwweDA4LDB4YmIsMHgyMCwweDI0LDB4ZDAsMHgwYiwweGIzLDB4MDIsMHhjYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4MDAsMHg2MCwweGQyLDB4MGIsMHgyMCwweDJhLDB4MDQsMHgwOCwweDkzLDB4NTAsMHgyMCwweDQwLDB4MDgsMHgxNywweDBhLDB4MDIgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDAwLDB4YmEsMHhhMCwweDNmLDB4ODQgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4MWMsMHhlMCwweDBiLDB4MzgsMHg0MCwweDhlLDB4MDYsMHgyZSwweDgwLDB4MGIsMHhlMywweDAzLDB4ZjgsMHg4MCwweGZlLDB4ZTQgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4YjcsMHg5MCwweDBmLDB4ZWMsMHgwMiwweGU4LDB4MDAsMHg4YSwweDAwLDB4YTMsMHhhMCwweDA5LDB4ZTQsMHgwMywweDJhLDB4MDIgfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4ZGUsMHhjMCwweGYzLDB4ODAsMHgwYywweDZjLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4NDgsMHgwMSwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgxMywweGUwLDB4MDAsMHhmOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MzAsMHgwYSwweDg0LDB4MDMsMHhlMCwweDA0LDB4ZjgsMHgwMCwweDNhLDB4MDIsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4MDAsMHgzZSwweDA0LDB4MGQsMHg4MCwweDgzLDB4ZTAsMHg0MCwweGU4LDB4MjAsMHgzZSwweDAwLDB4MmYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4MTAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NjQgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4NGUsMHg5MCwweDgzLDB4MjQsMHg4MCwweGM5LDB4MDAsMHgzMiwweGUwLDB4MGYsMHgxMCwweDAzLDB4MjUsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4MzIsMHg0NCwweDBmLDB4OTIsMHgyMywweDY0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4YzksMHgwMCwweDIyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDIwLDB4MmUsMHg0MCwweDQ4LDB4OTYsMHgyMiwweDI1LDB4MDAsMHhkOSwweGMwLDB4YTIgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4NzAsMHgwYiwweDk4LDB4MDIsMHgyNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NzAsMHg0YiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZDkgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MmMsMHg5NCwweDIyLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHhhMiwweDQwLDB4MjgsMHg5NCwweDEzLDB4MjAgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDgxLDB4ODAsMHhhMiwweDQ0LDB4MGIsMHg5MSwweDAyLDB4MjUsMHgwMCwweDE5LDB4NDAgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4NjIsMHg0MCwweDBiLDB4YjQsMHgwMiwweDQ0LDB4MDAsMHg4OSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHg4MiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4ODMsMHgwMiwweDI4LDB4NDAsMHg0OCwweDkwLDB4ODIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MDAsMHgwNCwweDA1LDB4ODAsMHhiMSwweDAwLDB4NmMsMHg1MSwweDA4LDB4MTQsMHgxYSwweDA1LDB4MDAsMHg5MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4NDAsMHg4YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDYsMHgwNCwweDgwLDB4OTEgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4MjAsMHgyMCwweDQwLDB4MDksMHgxMCwweDAyLDB4YzQsMHhhOCwweDgxLDB4MDAsMHgyOCwweDRhLDB4MDgsMHg5MCwweDRhLDB4NDIgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4MGUsMHg4MCwweDAzLDB4MjgsMHgwMSwweGM4LDB4NTAsMHgzMiwweDk0LDB4OGIsMHhhMCwweDAzLDB4MjAsMHgwMCwweGIwLDB4NTAgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4ODAsMHgwNywweDYxLDB4NTEsMHhjOCwweDUwLDB4MjIsMHgwMCwweDBjLDB4MDAsMHgwMywweGUwLDB4ODQgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4YzgsMHgwNCwweDNhLDB4MDgsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4OTgsMHg5ZCwweGY0LDB4NDAsMHhiZCwweDQxLDB4M2YsMHg1MCwweDBmLDB4ZjQsMHgwMywweGY1LDB4MTAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4NDAsMHgwZiwweGQ0LDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgxMCwweDJmLDB4NDAsMHg0ZiwweGQ0LDB4NDAsMHhhNCwweDQ4LDB4ZjkgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4MTIsMHgzZiwweDVhLDB4OGUsMHhkMiwweDgzLDB4ZjQsMHhhOCwweGY1LDB4MmMsMHgzNywweDRhLDB4MGYsMHhkMiwweDgzLDB4YTYgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4ZmQsMHgyOCwweDNmLDB4NGMgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4MGYsMHg1MCwweDAzLDB4M2MsMHg0NCwweGNkLDB4NDAsMHgzZiwweGQwLDB4MGQsMHhkMCwweDAyLDB4MTQsMHgwMSwweGZkLDB4YTAgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4MzEsMHg0MCwweDAzLDB4ZDAsMHgwMywweGU3LDB4ODksMHhmOSwweDkwLDB4N2UsMHg1MCwweDBjLDB4OTQsMHgwMywweGU2LDB4YzAgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4YzksMHgxMCwweDMyLDB4NmQsMHgwZiwweDkxLDB4MDIsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4ODAsMHhiOCwweDAxLDB4MmUsMHgwYywweDhiLDB4ODQsMHg4MiwweDIwLDB4NDIsMHg4OCwweGEwLDB4NmUgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4MjAsMHgwOCwweDgwLDB4MDMsMHg2MCwweDAwLDB4OTgsMHhlOCwweDIyLDB4MDAsMHgwOSwweDgwLDB4MDIsMHhlMywweGMwLDB4ZTggfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4ZDAsMHgyZSwweDI4LDB4MDgsMHg4YSwweDIzLDB4ZTIsMHg4NCwweGQ4LDB4YTAsMHgyMiwweDNkLDB4MGIsMHhjOCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNSwweGIwLDB4YjEsMHgwMCwweDJjLDB4NDggfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MGIsMHgxMywweDAyLDB4MDQsMHgwMiwweGIxLDB4MjAsMHgyZSwweDQwLDB4ODgsMHgxMCwweDIyLDB4YzQsMHgwMCwweGIxLDB4MTQgfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4MTAsMHg1MiwweGM0LDB4MDAsMHhiMSwweDIxLDB4MmQsMHg0OCwweDBhLDB4NTIsMHgwMiwweGQ1LDB4MDAgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4YmQsMHgwMCwweGFkLDB4NDAsMHgwYiwweDUyLDB4MDIsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MTgsMHg1NSwweGE1LDB4MDAsMHhiOSwweDgyLDB4MmUsMHg0OSwweDhiLDB4YjAsMHgxMiwweDI0LDB4MTAsMHg5OSwweDAyLDB4MmUgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4NDAsMHgwOCwweGIyLDB4MDAsMHg2NSwweDAwLDB4OTksMHg4MCwweDI2LDB4NDQsMHgwOSwweDkxLDB4MDIsMHhlNCwweDA5LDB4YTkgfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4MDQsMHgyZSwweDQ2LDB4MGEsMHhkNCwweDAyLDB4YjQsMHgwMCwweGJkLDB4NDAsMHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDQwLDB4ZjksMHg4MCwweDJlLDB4NjIgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4MGYsMHg5YywweDQyLDB4MjQsMHgwMCwweDk5LDB4MDEsMHgyZSwweDY4LDB4MmMsMHg5MiwweDAyLDB4NjQsMHgwMCwweGI5LDB4NDAgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4YjYsMHg2MCwweDBmLDB4OWEsMHgwMywweGU0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg3MCwweDNlLDB4OTksMHgwNiwweGU0LDB4MDIgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4NjgsMHgwMSwweGE2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDFmLDB4MTIsMHhhYiwweGU0LDB4MDAsMHhlOSwweDkwLDB4M2UgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4NDksMHgwZSwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNhLDB4NDAsMHgwZCwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MDEsMHgzZSwweDYwLDB4MDUsMHg5MCwweDEzLDB4ZTQsMHgwMCwweDU5LDB4MjAsMHgzMiwweDQwLDB4OGYsMHg5MSwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwOCwweDNlLDB4MDEgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4MGYsMHg4NCwweDYzLDB4MDAsMHgyMiwweGU4LDB4MjAsMHgzZSwweDEzLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHhjMCwweGQ4LDB4NGMgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODQsMHg0MywweGUwLDB4MDAsMHhmOCwweDAwLDB4MjIsMHgxMCwweDBmLDB4ODQsMHgwMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweGMwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDAwLDB4MmYsMHg4NiwweDRiLDB4ZTAsMHgwMiwweDM5LDB4MDgsMHg4ZSwweDIwLDB4MmQgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4OTAsMHgwYiwweGVkLDB4OTIsMHhmOCwweDAyLDB4OGUsMHhlMCwweGEzLDB4OTgsMHgwOCwweGUwLDB4MDIsMHhlOCwweDA4LDB4YmEgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4MDAsMHg2MiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDAyLDB4ODAsMHgwMiwweDgwLDB4NDgsMHhlMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgxMCwweDJjLDB4ZjAgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4MGEsMHgxNCwweDJhLDB4MGQsMHgxYSwweGIzLDB4MDEsMHgyNCwweGQwLDB4MGIsMHhiYywweDMyLDB4Y2MsMHgwOCwweDAzLDB4MDAgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4MjAsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4MjIsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MTEgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgyOCwweDIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4NSwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgwMiwweDE4LDB4MzIsMHg4NiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MTYsMHhmZSwweDA0LDB4ODYsMHgwMCwweDI3LDB4YTAsMHg4YiwweDcwLDB4NDIsMHhkYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4ODAsMHgyMSwweDAxLDB4MDgsMHhmOCwweDBhLDB4MTgsMHgwMCwweDg2LDB4MDgsMHgyMCwweGEwLDB4MDgsMHhlOCwweDBhLDB4NjggfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDAyLDB4YzYsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4MGYsMHg0OCwweDAzLDB4MDYsMHgwNCwweGY1LDB4ODIsMHgzNSwweGUwLDB4MGYsMHg3OCwweDAzLDB4ZGEsMHgwMCwweGQzLDB4ODAgfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4MzEsMHg2MCwweDA3LDB4NzgsMHgwMywweGRlLDB4MjAsMHhmMywweGIwLDB4ODEsMHhlMCwweDRmLDB4NjgsMHgwNywweDBlLDB4MDIgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwYywweDc4LDB4MTMsMHgyYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4YTAsMHhmOSwweDAwLDB4M2YsMHgwMCwweDBmLDB4YjAsMHg1MywweGY4LDB4MTAsMHhhOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MDEsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNhLDB4YzAsMHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4NzQsMHgzYywweDAwLDB4MGYsMHgyMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHgzMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAyLDB4OGYsMHg4MCwweDM1LDB4ZTAgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4OGQsMHhkOSwweDAzLDB4MmUsMHhjNCwweGY2LDB4ODAsMHgzMiwweGE0LDB4MGMsMHhiOCwweDAzLDB4ZGUsMHgwMCwweGNmLDB4OTAgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4M2MsMHhlNCwweDBjLDB4YjgsMHgwMywweGZlLDB4NjUsMHhmZiwweDgwLDB4MGYsMHhlYywweDhmLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4YWEsMHgxMSwweDljLDB4ODAsMHg4NCwweGIwLDB4MjAsMHgyMCwweDI5LDB4NzMsMHgwYSwweDBlLDB4ODIsMHhhMiwweGEwLDB4YTIgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4YTAsMHg0ZiwweDNiLDB4MDMsMHg4NywweDg0LDB4YjIsMHg4MCwweDJjLDB4YTAsMHgwYSwweDdkLDB4MDIsMHhkZSwweDgwLDB4ZjcgfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4MjAsMHgyNSwweDA2LDB4MDgsMHg3MCwweDAyLDB4YzgsMHg0MCwweDg0LDB4MDAsMHgzNSwweDgwLDB4MGIsMHg2MCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDEwLDB4ODYsMHgzOCwweDI3LDB4YzAgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4NDksMHg1NCwweDA2LDB4NTQsMHg0MCwweDFkLDB4MjAsMHgyMSwweGNhLDB4MDksMHg2MSwweDQwLDB4ZjgsMHg4MCwweGI3LDB4MjAgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4MmYsMHgwMCwweDg5LDB4NzAsMHgxMiwweGRjLDB4ODEsMHhiNywweDA0LDB4MmQsMHhjOSwweDBhLDB4NjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4OGQsMHgwMCwweDJkLDB4YzAsMHgwYiwweGY4LDB4MDIsMHgwNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4NjAsMHgxNCwweGNkLDB4MjgsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA5LDB4YjAsMHgyMiwweDRjLDB4MDIsMHhhMSwweDAxLDB4MjAgfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MzAsMHgxYiwweDIzLDB4MDIsMHhhZiwweDIwLDB4YjMsMHgwOCwweDJjLDB4ODAsMHgxYiwweDMwLDB4MDAsMHhjYywweDA0LDB4YTMgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4MDEsMHgyNiwweDMwLDB4MDgsMHhhYywweDIyLDB4ZTgsMHgwMiwweDgwLDB4MDgsMHgyZSwweDgwLDB4NGIsMHhiNCwweDAyLDB4NTggfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDEwLDB4OGIsMHg4MCwweDM2LDB4ZjAgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4MmQsMHhiYywweDBiLDB4NmMsMHgwMSwweGRhLDB4MDQsMHgyMiwweDQwLDB4N2QsMHg5NCwweDIyLDB4ZTQsMHgwMCwweGFiLDB4NDQgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MmUsMHhjMCwweDA5LDB4YjgsMHgwMiwweGZjLDB4MDAsMHhiZiwweDAwLDB4M2UsMHhmMCwweGNhLDB4OTIsMHgwMiwweGU0LDB4MDIgfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4Y2IsMHgwMCwweDZlLDB4NDAsMHgwZiwweDg0LDB4MDEsMHgyZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2EsMHhlMCwweDJlLDB4YmMsMHgwMywweDk4LDB4MDgsMHhlYSwweDQwLDB4MzYgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4NDMsMHg4YywweDkwLDB4MDMsMHhhNCwweDQ0LDB4MmEsMHg0MCwweDNlLDB4MTAsMHgwZSwweGI1LDB4ODMsMHhlYywweDE0LDB4ZmIgfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4MDAsMHgyNiwweDAwLDB4MGUsMHg5MiwweDAzLDB4ZTAsMHg0MCwweGZhLDB4MDAsMHgxNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAyLDB4ZmEsMHg4MCwweDNmLDB4ZTIgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4MGYsMHhiMCwweDBiLDB4MjQsMHgwMCwweGVmLDB4OTIsMHhiYiwweGUwLDB4MWMsMHhkMCwweDAzLDB4NzQsMHgwMCwweGNmLDB4MDUgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4M2IsMHg0MCwweDBmLDB4YzgsMHgwMywweDVjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMiwweDRkLDB4YzEsMHgyMywweDM0LDB4NDAgfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4Y2YsMHgwMCwweDE3LDB4NDQsMHgwYywweGQxLDB4ODMsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDg0LDB4MmUsMHg1NCwweDBiLDB4YmMsMHgwYSwweDI5LDB4ODAsMHg4YiwweDgwLDB4MzIgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4MDAsMHgwOCwweDljLDB4MDMsMHhhNywweDAwLDB4YWIsMHg4NCwweDJlLDB4N2MsMHgwYiwweDgwLDB4MDIsMHgyYywweDEwLDB4ZGIgfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4MDEsMHgzNiwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDgyLDB4MDAsMHgyMiwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjQgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwYywweDAwLDB4ODksMHgxMCwweDY2LDB4OTAgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4MGIsMHhiOCwweDAyLDB4NmUsMHgxMiwweGEzLDB4NDEsMHgyMCwweDA0LDB4MGEsMHg5OCwweDIyLDB4ZTIsMHgwMCwweDg5LDB4MTkgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4MmUsMHhjMCwweDRiLDB4MzEsMHgyMiwweDZjLDB4MDgsMHg4MywweDAwLDB4MjIsMHhjMCwweDA5LDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4ODksMHgwMCwweDJhLDB4NDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgxMCwweDBjLDB4MDAsMHg4MCwweDIwLDB4MmMsMHgwZSwweDFiLDB4MzAsMHgwMiwweDA0LDB4NDEsMHg4MCwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4MTIsMHgxOCwweDE2LDB4NDIsMHgwMCwweDUwLDB4YTAsMHg0MCwweDJjLDB4ODgsMHgxYiwweDMwLDB4MDIsMHgwYywweDgxLDB4OTMgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4MDAsMHgyNCwweDAwLDB4MDgsMHgxMCwweDJhLDB4MDAsMHgwYSwweDg4LDB4MDAsMHgyOCwweDAwLDB4MjgsMHgwMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDExLDB4ZTgsMHgwMCwweDI2LDB4OTggfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4MGYsMHhiMCwweDEzLDB4MjEsMHgwYywweGViLDB4NjAsMHgzYSwweGQ4LDB4MjgsMHg4NCwweGEyLDB4ZTEsMHg4MCwweGM4LDB4MjAgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4M2UsMHg1ZSwweDFmLDB4ODIsMHgwMywweDdjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMCwweDRkLDB4ODAsMHgwNywweDI1LDB4MDAgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4YTEsMHgxMSwweGZjLDB4MDAsMHhmOCwweDEzLDB4MWUsMHgwMCwweDBiLDB4ZjAsMHgwMSwweGYwLDB4ZDAsMHhmOSwweDE5LDB4MWYgfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MDgsMHg0ZiwweGMwLDB4MTMsMHhhMSwweDAwLDB4ZjgsMHg2MiwweDNmLDB4YzAsMHgwYiwweGM0LDB4MDcsMHhlZCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDIzLDB4ZjAsMHhhMCwweGZjLDB4MDAsMHgzMywweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4ZmYsMHgwYywweDNmLDB4MjAgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4MGMsMHhjOSwweDAzLDB4MzIsMHgwMCwweGNmLDB4MzgsMHgzZiwweGQwLDB4MGYsMHg0OCwweDAzLDB4ZmMsMHhhMCwweGNlLDB4MjIgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MzMsMHgwMCwweDBmLDB4YzEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjNCwweDRjLDB4YzAsMHgyMywweDhjLDB4ZTQgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4ZmYsMHgxMCwweDM3LDB4MjAsMHgwOCwweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4ODAsMHgxMCwweGZlLDB4MDAsMHhiZiwweDgwLDB4MmUsMHg3NCwweDA1LDB4MjIsMHgwMiwweGEyLDB4MTAsMHhkZiwweDYxLDB4MmYgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4ZDAsMHg4YiwweDkwLDB4MDIsMHgzZCwweGE0LDB4YWEsMHg5MCwweDIyLDB4ZjQsMHgwYiwweDA3LDB4MTIsMHgxZCwweDIwLDB4YmIgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4YzAsMHgyZiwweGQ4LDB4ODgsMHg5NywweDgyLDB4ZmQsMHg4MCwweGVmLDB4NzIsMHgyMiwweDA4LDB4MjgsMHhmNiwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YjMsMHgwMCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4MDgsMHg4MiwweDAyLDB4MjIsMHgwMCwweDgzLDB4MDEsMHgwOCwweGNjLDB4OGIsMHgyMCwweDgyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MjAsMHgwMCwweDRiLDB4MTIsMHgwMiwweDBkLDB4ODAsMHhiMywweDQwLDB4MmMsMHhkOCwweDA4LDB4MjAsMHg0MiwweDhjLDB4ODAgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4YjMsMHgyMCwweDI2LDB4MDIsMHgxOCwweDMzLDB4MjYsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDksMHhiYiwweDAwLDB4MmUsMHg2MCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHg5YiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4YzAsMHgwYiwweGFjLDB4MDIsMHgyYywweDAwLDB4YmEsMHgwNiwweDIyLDB4YzIsMHgwYiwweDk0LDB4MDIsMHhhYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4MDAsMHgyZSwweGMxLDB4MDgsMHhhOCwweDAyLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHgyMiwweDAwLDB4MDgsMHhiMCwweDA2LDB4ZjAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4MjgsMHg4MiwweDEzLDB4MGUsMHgwOCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHg4YywweDAzLDB4ZWMsMHgxMSwweGRiLDB4MjAgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4YjIsMHg5MCwweDRiLDB4YTgsMHgwYiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmMsMHhjMCwweDBjLDB4ODgsMHgxMywweGFjLDB4MDAgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4ZjMsMHgwMCwweDM2LDB4MDYsMHg0OCwweGIwLDB4MTIsMHhjNCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYiwweDA4LDB4M2QsMHg0MCwweDhmLDB4ZWEsMHgwMSwweGY0LDB4MDAsMHhmZiwweDAxLDB4MmYgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4YzAsMHgwZiwweGQwLDB4MjIsMHhmYywweDA0LDB4YWYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGU5LDB4MDMsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg5MCwweDQzLDB4ZmMsMHgyMCwweGVmLDB4MDIsMHgzZiwweDAwLDB4OGYsMHhmMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MTAsMHhhYywweDA4LDB4ZWIsMHgwMCwweDEyLDB4NDAgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjgsMHgyMCwweGFiLDB4MDAsMHgzYSwweGMwLDB4OGYsMHg4NSwweDgzLDB4YWMsMHgxMCwweGYzLDB4NTAgfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4MzIsMHg5MCwweDRjLDB4MzQsMHgxMywweDZjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBjLDB4OTgsMHgwMywweDJjLDB4NDAgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4ZWIsMHg4MCwweDMyLDB4MTIsMHgwZCwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4ODgsMHgwMSwweDNjLDB4MTAsMHgwZiwweDA1LDB4YTIsMHg1MCwweDBjLDB4MTAsMHgwMiwweDIyLDB4MTAsMHg4ZiwweDAwLDB4MjMgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4YzAsMHgwYiwweDg4LDB4MTIsMHgzYywweDAwLDB4OWIsMHg4MiwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzYywweDAwLDB4OGYgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MDgsMHhiMCwweDAyLDB4M2MsMHgwOCwweDhmLDB4MDIsMHgyMCwweDAwLDB4MDgsMHhmMCwweDAzLDB4MjYgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZCwweDIwLDB4OTMsMHgwMCwweDIwLDB4YjIgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MDEsMHgwMCwweGEzLDB4MDAsMHg2OCwweGMwLDB4MGIsMHg4NCwweDAyLDB4YWMsMHgwMCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhMywweDA0LDB4MmMsMHhjMCwweDA4LDB4MDAsMHgwMiwweDBkLDB4MDAgfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4YTMsMHgwMCwweDIwLDB4MjQsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MjAsMHg5NywweDgwLDB4MjMsMHg2MCwweDA4LDB4NzgsMHgxMiwweDNhLDB4MDAsMHg4MywweDkxLDB4MjkgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4ZTQsMHgwYiwweDU5LDB4MDIsMHgxZSwweDAwLDB4OTcsMHg5MCwweDIwLDB4ZmMsMHgwYSwweDc4LDB4MDIsMHgxZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MTksMHg1OSwweDAyLDB4MWUsMHg4MCwweDgzLDB4ODAsMHg2MSwweGEwLDB4MDgsMHg3OCwweDAyLDB4MTggfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZDMsMHgzMiwweDMwLDB4MDYgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4MGYsMHgzMCwweDAzLDB4MDQsMHg2NCwweGUzLDB4MDEsMHgzOCwweGM0LDB4MWYsMHgzMCwweDA3LDB4OGMsMHgxOCwweGYxLDB4MDAgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4MzAsMHg0YywweDBlLDB4MzAsMHgwMywweDRjLDB4MDAsMHhlMywweDAwLDB4MmMsMHhjMCwweDBjLDB4MjAsMHgwMywweDBlLDB4MDAgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4ZTMsMHgwMCwweDMyLDB4MDgsMHgwYywweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4NDAsMHgxZCwweDljLDB4ODAsMHhlZiwweDEwLDB4M2QsMHg0NCwweDRmLDB4ZjEsMHgwNywweGNjLDB4MDAsMHhmZiwweDA4LDB4MzYgfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4YzYsMHhjZiwweGIwLDB4MDMsMHhmYywweDAwLDB4OTcsMHgwMCwweGJlLDB4Y2MsMHgwZCwweGIxLDB4MDMsMHhmZCwweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4MGMsMHgzZiwweGQyLDB4OWUsMHhlMCwweDRiLDB4ZmQsMHgyMCwweGZmLDB4MDIsMHgzZiwweDgwLDB4MGUsMHhmMCwweDEzLDB4ZDAgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweGMwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDEsMHgzMiwweGU5LDB4MGMsMHgyOCwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4YjQsMHg4MywweDJjLDB4MDEsMHhlZiwweDAwLDB4YjIsMHhjOCwweDBjLDB4MjAsMHgwMywweDZkLDB4MDAgfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4Y2IsMHgxMCwweDNlLDB4MDAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4YzgsMHg5MSwweDljLDB4YzQsMHg4NywweDYwLDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDEyLDB4MjAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4Y2MsMHgwYSwweDcwLDB4MDIsMHgxYywweGMwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHhjOCwweDcwLDB4MjIsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4MjQsMHgyMSwweGM4LDB4NDgsMHg1MCwweDAyLDB4MGMsMHg4MCwweDg3LDB4MTAsMHgyZCwweDQwLDB4MGIsMHg3MiwweDgyLDB4ZjIgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg4ZSwweDAyLDB4ODcsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweGI3LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDhlLDB4MWUsMHg0MCwweGI3LDB4ODggfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MzgsMHgwMiwweDFlLDB4NDAsMHhiMywweGExLDB4MjAsMHhlOCwweDQ4LDB4ZjgsMHg4MiwweDVlLDB4MDIgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4ODcsMHg4MCwweDJkLDB4MjIsMHgwYiwweDc5LDB4MDIsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MDgsMHgwNCwweGNjLDB4MDQsMHg4MywweDAyLDB4MmMsMHhkNCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4YTAgfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4YzAsMHg4YSwweDM4LDB4MDYsMHgwYywweDAwLDB4YjMsMHg4MCwweDIwLDB4ZTEsMHg0OCwweDM5LDB4MTIsMHgyYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDgyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyYywweDQ4LDB4MGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDNmLDB4YTAgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4MGYsMHhlNCwweDAzLDB4ZDgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlOCwweDAzLDB4MjgsMHgwMCwweGZhLDB4NDAgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4MzIsMHhhOCwweDJjLDB4YTAsMHgwOSwweDI4LDB4MDgsMHhmMiwweDAwLDB4MzIsMHg4MCwweDBjLDB4ZTQsMHgwMywweDY4LDB4MDAgfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4Y2EsMHgwMCwweDNmLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAxLDB4M2UsMHgxMiwweDBiLDB4ODAsMHgwMywweGUwLDB4NDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MDAsMHg0ZiwweDg0LDB4MDMsMHhlMCwweDA0LDB4ZjAsMHgwOCwweDNlLDB4MDAsMHg0ZiwweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4NDEsMHgzZSwweDAwLDB4MmYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNiwweDAwLDB4YzksMHgxMiwweDNlLDB4NTAgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4OGYsMHg5MCwweDgzLDB4ZTQsMHgyMCwweGMxLDB4MDAsMHgzYSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4MzAsMHg2OCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4YzksMHg5MCwweDNlLDB4NjksMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4ODAsMHgwNCwweDY3LDB4NGEsMHg4OSwweDgwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4ODAsMHhhOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDEwLDB4ODkgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MywweDAyLDB4MjQsMHgyMiwweDg5LDB4NDIsMHgyYywweDYwLDB4NDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHgyNCwweDAwLDB4OTksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTAsMHgwNiwweDI0LDB4NDAgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4ODksMHg0MSwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4ODAsMHg5MSwweDIwLDB4MmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4NDgsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweGExLDB4NDksMHgwOCwweDUyLDB4NGEsMHgwNCwweDgwLDB4ODEgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4MDAsMHgyMCwweDQ4LDB4NDgsMHgxMiwweDBhLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyYywweDQwLDB4MjgsMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4ZDgsMHgwNCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4MGYsMHg4NSwweDAzLDB4ZTAsMHgwMCwweGMwLDB4NTAsMHgzYSwweDE0LDB4MGYsMHhhNSwweDAzLDB4ZTEsMHg0MCwweGY4LDB4MDIgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4MzIsMHg4MCwweDJjLDB4YzUsMHgwMywweDIxLDB4NDAsMHhkYSwweDAwLDB4M2EsMHgxNCwweDBlLDB4ODUsMHg0MywweDIxLDB4NDAgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4YzgsMHg1MiwweDNlLDB4MTQsMHgwYywweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4ODgsMHgxZCwweGU0LDB4NDQsMHhlOSwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMiwweGZjLDB4MDAsMHhmOSwweDEyLDB4M2UgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNlLDB4NDQsMHg0ZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZTkgfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4NDAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTIsMHgzZiwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNiwweGEwLDB4ZmQsMHg4MCwweGIzLDB4NDAgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4MGMsMHgxMCwweDAzLDB4MTQsMHgwMCwweGZkLDB4YTAsMHgzMiwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZTQsMHgwMCwweGY1LDB4ODYgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4MzMsMHg2MCwweDJjLDB4OWEsMHg4MywweDI0LDB4MDQsMHhmZCwweGE4LDB4MjIsMHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4ZmQsMHgwMCwweDMzLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4NzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweDAwLDB4MjIsMHgwMCwweDI4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHhiOCwweDAwLDB4YTIgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4MDAsMHgwYiwweDhhLDB4MTIsMHhlMCwweDAwLDB4YjgsMHgwNCwweDIyLDB4MTQsMHgwOCwweDg0LDB4MDIsMHgyMCwweDAwLDB4YjggfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4NDAsMHgyMCwweDAwLDB4ODgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHhhMiwweDAwLDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHg0MiwweDIwLDB4NDAgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4NDAsMHgyMCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgwMCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4MjQsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQ0LDB4MDQsMHhiMSwweDAwLDB4NjAsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4YjEsMHgwMCwweDIwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgxMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjIsMHg2MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAwLDB4YjksMHgyMCwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg2NCwweDA4LDB4YjkgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MiwweDAyLDB4ZWMsMHgwOCwweGI5LDB4MDQsMHgyMiwweDQxLDB4MGIsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4MGMsMHg5NCwweDBiLDB4MjUsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4OGYsMHg5NCwweGQzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4MzYsMHg0MCwweDRjLDB4OTAsMHgwYiwweDY0LDB4MDAsMHhmMSwweDAwLDB4MzIsMHg0MCwweDBkLDB4OTIsMHgxMiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4ZjksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4NjgsMHg0MSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDhmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4NDAsMHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweGJhLDB4NDAsMHgyZiwweDkwLDB4MjMsMHhhNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4MDgsMHhiZSwweDQwLDB4Y2YsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGYxLDB4MDEsMHgzZSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweGM4LDB4ZjgsMHgwMCwweDNlLDB4MDMgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4MGMsMHg4NCwweDAzLDB4YTEsMHgxMCwweGU4LDB4MDAsMHgzMiwweDAwLDB4OGMsMHg4NSwweDgzLDB4ZTAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4MzgsMHgwYywweDJjLDB4MDAsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwLDB4M2MsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIwLDB4MTAgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4YzgsMHgyMCwweGIyLDB4MDIsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MjgsMHgwNSwweDM5LDB4MTAsMHhiZSwweDA0LDB4NmYsMHhhMCwweDA4LDB4YTAsMHgwMiwweDNhLDB4MDAsMHg4MiwweDAwLDB4YTIgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4ODAsMHg4ZCwweGVjLDB4MDMsMHhhOCwweDAwLDB4OGEsMHgwMCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MjIsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4Y2MsMHgyZiwweDgwLDB4MDgsMHhlOCwweGMyLDB4YjgsMHgwMCwweDhlLDB4NjAsMHgyMywweDkwLDB4MGIsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0ZSwweDA4LDB4YjAsMHg3MiwweDJjLDB4ZDAgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4MjgsMHhiMCwweDA2LDB4OGMsMHgwMSwweGExLDB4MDIsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4MjAsMHhjMCwweDI5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MSwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzIsMHgwMiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4ZjQsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhkMCwweDQ4LDB4ZjIsMHgwMiwweDFlLDB4MjEsMHg4NSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4ZTgsMHgwOSwweDcyLDB4MDIsMHg4ZSwweDgwLDB4OGYsMHgwMSwweDIwLDB4YzAsMHgwOSwweDcyLDB4MDIsMHgwZSwweDgwLDB4ODcgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4MDAsMHgyZCwweGNjLDB4MTgsMHg1OCwweDAyLDB4OGUsMHgwMCwweDg1LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4MGMsMHg3OCwweDgzLDB4OWEsMHgwMCwweGVkLDB4ZDAsMHgzMSwweGY0LDB4MGMsMHg2YSwweDAzLDB4ZGUsMHg4MiwweGM3LDB4ODAgfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4MzksMHhlMCwweDBkLDB4ZjgsMHg4MywweDVlLDB4YzIsMHhjNSwweDgwLDB4M2QsMHhlOCwweDBjLDB4NjgsMHgwMywweDEyLDB4MDAgfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwZiwweDdlLDB4ODMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4MDgsMHgwZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2MsMHhjMCwweDBmLDB4YjMsMHgwMywweGVjLDB4MDAsMHhmOSwweDAyLDB4M2UgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MDMsMHhlZCwweDQwLDB4ZmIsMHgwMCwweGJlLDB4ODAsMHgwZSwweGIzLDB4MDMsMHhlZCwweGMwLDB4ZmIgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4MDAsMHgzZSwweGQyLDB4MmUsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZjAsMHg5MSwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4OGYsMHhmOCwweDAzLDB4ZmUsMHgwMCwweGZkLDB4ODAsMHgzZiwweGUwLDB4MGMsMHg3OCwweDgzLDB4M2YsMHgwMCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4M2YsMHhhMCwweDBjLDB4ZjgsMHgwMywweDNlLDB4MDAsMHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgxMywweGZlLDB4MTAgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4MjAsMHgwZiwweGY5LDB4NDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNCwweGMxLDB4MzEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGQ0LDB4MTAsMHhlNSwweDIwLDB4MmYgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4YzgsMHgwZiwweDQwLDB4MDMsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4ODAsMHgwOCwweDcwLDB4MDIsMHgxYywweDQwLDB4ODcgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4MTAsMHgyZCwweGMwLDB4MGIsMHg3NiwweDAyLDB4ZGMsMHg4MCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg5YywweDAwLDB4YjYsMHgyMiwweDIxLDB4ZDAgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4MGIsMHg3MCwweDgyLDB4ZDgsMHg0MCwweGI1LDB4MDIsMHgyZCwweGMwLDB4ODgsMHg2NSwweDAyLDB4MGMsMHgwMCwweDg3LDB4MTggfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4MmMsMHgwNCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDIsMHg4NSwweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHg0NiwweDkwLDB4MTAgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4YjYsMHgwMCwweDJkLDB4MDAsMHgwYiwweDcwLDB4MjIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweDAwLDB4YTQsMHhjMCwweDBiLDB4MzAsMHg0MiwweGM2LDB4MTAsMHhhMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4YzAsMHgwYSwweDAwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4MDgsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweGIwLDB4MDAsMHgyYywweDQwLDB4MGIsMHgzMCwweDEyLDB4ZDggfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhhYywweDAwLDB4MzgsMHgwMCwweDMyLDB4NTAgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZTYsMHgyMCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MDgsMHhkMCwweDAyLDB4M2MsMHgwMiwweGNiLDB4ODAgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4M2MsMHg1MCwweDJjLDB4ZjAsMHgwYSwweGJjLDB4MDAsMHhjOSwweDAwLDB4M2YsMHhjMCwweDBmLDB4YmUsMHgwMywweGFjLDB4MDAgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4ZmEsMHgwMiwweDJlLDB4ZjcsMHg0ZiwweGYwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMSwweDAwLDB4M2EsMHhmMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MDAsMHhmOSwweDAxLDB4M2UgfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4YzAsMHgwZiwweDkwLDB4MTMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4NTUsMHgwZiwweGIwLDB4MDEsMHg2YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHg5MCwweDczLDB4ZTAsMHgwMCwweGY4LDB4NDEsMHgzZSwweDAwLDB4MGYsMHgzMCwweDAxLDB4ZTAgfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4MWYsMHhmMCwweDEzLDB4ZjAsMHgwOCwweGZkLDB4MDIsMHgzZiwweGMwLDB4OGQsMHhjMCwweDAzLDB4M2MsMHgwMCwweGNmLDB4YTAgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4M2YsMHg4MCwweDBjLDB4NzAsMHgwMywweDNjLDB4MTAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGIwLDB4MDAgfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwNCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4ODQsMHgwNCwweDZlLDB4MDAsMHhiOSwweGMyLDB4YTIsMHhmMCwweDBiLDB4YjAsMHg0MiwweGViLDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4YzAsMHgwZiwweDE4LDB4MDMsMHg2YywweDAwLDB4ZDksMHg4MSwweDJlLDB4YjAsMHgwYSwweGIwLDB4NDIsMHgyYywweDAwLDB4YmEgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4YzYsMHgyZSwweGMwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweGI4LDB4YzAsMHgzYywweGEwLDB4MGQsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZiwweDAwLDB4YjgsMHg4MCwweDIyLDB4ZTIgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZTYsMHgyMCwweGI5LDB4MDAsMHgyYywweGMwLDB4MDgsMHhiOCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MmUsMHgzMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiOSwweGMwLDB4MmUsMHhjMSwweDBiLDB4ODgsMHgwMiwweGVlLDB4MTAgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4YjksMHhjMCwweDJlLDB4MjAsMHgxOSwweGIwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwNiwweGMwLDB4MDAsMHg5MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4YzAsMHg0OSwweDgwLDB4MDIsMHg0YywweDA0LDB4OTEsMHgwMCwweDJjLDB4MDAsMHg4YSwweDMwLDB4MGEsMHgwYywweDA0LDB4YjEgfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MWIsMHgwMCwweDEyLDB4NDksMHgxMCwweGIxLDB4MDAsMHgyZSwweDIwLDB4MDksMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YjgsMHgyMCwweDIyLDB4YzAgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4OGIsMHhmMCwweDAzLDB4ZTAsMHgwOCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhhMCwweDAzLDB4M2MsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4M2UsMHgwMCwweDRjLDB4ZjAsMHgwYSwweDNjLDB4MDAsMHhiOSwweDAwLDB4MzcsMHhjMSwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4MDAsMHgwZCwweGYwLDB4MGIsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDEsMHhmYywweDQwLDB4M2YsMHg4MCwweDRmLDB4ZjAsMHgwMiwweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4YzEsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4MDAsMHg0ZiwweGYwLDB4NjMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGZjLDB4MDAsMHg3YiwweDAwLDB4MGYsMHhmMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmOCwweDAwLDB4YzgsMHgxMCwweDMzLDB4MDQgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4MGMsMHg0MCwweDAyLDB4MzQsMHgwMCwweGM4LDB4ODUsMHgxZiwweGMwLDB4MmQsMHhkOSwweDAzLDB4ZmMsMHhjMCwweGRiLDB4MjggfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4MzcsMHg2NCwweDBmLDB4ZGIsMHgwMywweDNlLDB4MDAsMHhmZiwweDI1LDB4M2YsMHhjOCwweDBlLDB4ZjIsMHgwMywweGZlLDB4MjAgfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4ZmYsMHhhNCwweDM3LDB4YzQsMHgwYywweGM4LDB4MDMsMHgzMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4ODAsMHgxMCwweGU4LDB4MDAsMHg4OCwweDIwLDB4MjIsMHgwMCwweDA4LDB4ODgsMHgxMiwweDI2LDB4MDQsMHg4OSwweDgyLDB4MmUgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4ZjQsMHg0OCwweGI4LDB4MDIsMHhmYywweGM0LDB4OTgsMHhjMiwweDIyLDB4N2MsMHg0YiwweDlkLDB4NDIsMHgyNiwweDA4LDB4YmYgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4MTgsMHg3NywweGU0LDB4MDgsMHhmMSwweDgyLDB4ZWYsMHgwMCwweGJiLDB4ZDAsMHgyMiwweGQ4LDB4MDgsMHg5MCwweDgzLDB4NjAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4MDIsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4NDUsMHhjOCwweDA0LDB4YTAsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDgyLDB4MDQsMHgyYywweGUwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4MjQsMHgwMCwweDBiLDB4MTAsMHgwNiwweGM4LDB4MDEsMHhiMywweDIwLDB4MmMsMHhjMCwweDI5LDB4MzIsMHgwMiwweGM4LDB4MDggfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4YjEsMHgwMCwweDI0LDB4ZDAsMHgwOCwweDgyLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4YzAsMHgxNSwweGE4LDB4MDAsMHhhOCwweDBjLDB4MjYsMHgwMCwweDBhLDB4ODAsMHgwMiwweDJjLDB4MTQsMHg4YSwweDAyLDB4NmUgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHg0YywweDA4LDB4YTgsMHgwMCwweDI2LDB4MjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4MDQsMHgyMiwweGMwLDB4MTksMHhiMCwweDAyLDB4ZTgsMHgwMSwweGJiLDB4MTEsMHgwMiwweGMwLDB4ODgsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4ZWEsMHg0MCwweGI2LDB4NjAgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4MmUsMHg5OCwweDBiLDB4MjAsMHgwMiwweGM4LDB4MDIsMHgzZSwweGMwLDB4MGQsMHg5OCwweDAzLDB4ZWMsMHgwMiwweGRiLDB4ODggfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4YjYsMHgyMSwweDBmLDB4ODgsMHgwMywweGFjLDB4MDgsMHhmYiwweDAwLDB4MmMsMHhjMCwweDBlLDB4YjAsMHg0MywweGU1LDB4ODAgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4ZjAsMHg2MCwweDM2LDB4YzAsMHgwYywweDAxLDB4NDMsMHg0OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkNiwweDAxLDB4M2IsMHg2NCwweDg1LDB4ZDksMHgwMywweGYwLDB4MGMsMHhmZiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4YzEsMHgwZiwweGZjLDB4MjEsMHhlYywweDAwLDB4ZDcsMHg5MCwweDNiLDB4NDAsMHgwZiwweDUwLDB4MDMsMHgzYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4ODgsMHgzZiwweGMwLDB4MmYsMHhkMCwweDAyLDB4NzggfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4ZGEsMHg0MCwweDNjLDB4NDAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4MGYsMHgxMCwweDAzLDB4NDgsMHgwMCwweGY5LDB4MjIsMHgzYywweGMyLDB4MGUsMHg5MCwweDgzLDB4ZWMsMHgwMiwweGRiLDB4MDQgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4M2EsMHgwOCwweDBmLDB4ODQsMHg4NywweGU4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjNCwweDBlLDB4YjAsMHgwMywweGVkLDB4MDAgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4ZTgsMHg0MiwweDNhLDB4YzAsMHgwZiwweDgwLDB4MGIsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4ODgsMHgwNSwweDJjLDB4MDgsMHg4YSwweDAwLDB4MmUsMHg0MiwweDhiLDB4OTAsMHgwMiwweDI4LDB4MTgsMHhiYiwweDQ5LDB4MjIgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4ZDAsMHgzOCwweGJjLDB4ODIsMHhmYywweDAwLDB4ZTgsMHgwMiwweDIyLDB4NjIsMHhjYiwweDljLDB4MDAsMHhlZiwweDYwLDB4ZGYgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MGIsMHhmMCwweDAyLDB4ZWMsMHgwMCwweDA5LDB4NDAsMHgzNywweGMwLDB4MGIsMHg5MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OCwweDEwLDB4MTEsMHgwMCwweDJjLDB4YTAgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4MGIsMHgyMCwweDAyLDB4NDQsMHgwMCwweDkwLDB4YzAsMHg2NCwweDM0LDB4MjgsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4ODQgfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MjgsMHg0MCwweDBiLDB4MDgsMHgwMCwweGNlLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMiwweDBhLDB4MzAsMHgwMiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4YjIsMHg0MCwweDIyLDB4YzAsMHgwYiwweDIwLDB4MDIsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4NzAsMHgwMSwweDFhLDB4NDAsMHg4NSwweDgwLDB4MmQsMHhhMCwweDBiLDB4NjgsMHgwNiwweDE2LDB4ODAsMHhiZCwweDkwLDB4MjUgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MjQsMHgxOCwweDdiLDB4NDIsMHhkZSwweDQwLDB4YTAsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDY4LDB4MDIsMHhkNiwweDAwLDB4OTcgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MGIsMHg3OCwweDAyLDB4Y2UsMHg0MCwweDkyLDB4ODAsMHg2ZCwweGU0LDB4MGIsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyOCwweDAwLDB4ZDEsMHg4MCwweDNjLDB4ODggfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4MGIsMHgyMiwweDAzLDB4NGUsMHg4MCwweGYyLDB4YTEsMHgzYywweDI0LDB4MmEsMHgzOSwweDAzLDB4Y2MsMHg0MCwweGQzLDB4YWMgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4MzgsMHhjNSwweDBmLDB4MzAsMHg4MiwweGM4LDB4MDAsMHhkMywweDAwLDB4M2MsMHhjMCwweDBlLDB4MzAsMHgxMywweGMwLDB4MDAgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4ZjEsMHgwMCwweDM4LDB4YzAsMHgwZiwweGEwLDB4MDMsMHgxYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MTAsMHhmZCwweDM0LDB4M2UsMHg4MCwweDBmLDB4ZTAsMHgwMywweGVlLDB4MDAsMHg3MiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MDAsMHgwZiwweGIwLDB4NjMsMHhlYywweDQwLDB4ZjgsMHgyMiwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkNCwweDQwLDB4ZmYgfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4MDAsMHgzZiwweGQyLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGNmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZSwweDAwLDB4ZWIsMHgwMCwweDM2LDB4ZTAgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4MjAsMHgwMCwweGYwLDB4ODAsMHgzMywweGMwLDB4MDgsMHhiOCwweDAzLDB4MmMsMHg4MCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweDZlLDB4MDgsMHhjYiwweDI4LDB4MzIsMHhlMCwweDBkLDB4YjQsMHg4MywweGUyLDB4MDAgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4Y2EsMHgwMCwweDNlLDB4ZTAsMHgwYywweGE4LDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4YzgsMHgxMSwweDhjLDB4MDQsMHg4MywweDAwLDB4MjEsMHhjMCwweDQ4LDB4NzAsMHgwMiwweDEwLDB4MDAsMHhiNywweDAyLDB4MjEgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4YzAsMHg0YSwweDcwLDB4MDIsMHgwZCwweDQ4LDB4ZDQsMHgwMCwweDM1LDB4YzAsMHgwZSwweDYwLDB4MDIsMHhkYywweDAwLDB4YTcgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4NDAsMHgyOSwweGMwLDB4MDksMHg3MiwweDAyLDB4ZDQsMHgxMCwweGE2LDB4MDIsMHgyZiwweGM4LDB4MDgsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDAwLDB4YTcsMHg4MCwweDIwLDB4ZTAgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4MGEsMHgzOCwweDAyLDB4MWEsMHgwMCwweGI1LDB4ODAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDIyLDB4NWMsMHg4MSwweDgzLDB4ODAgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4MjEsMHhhMSwweDBiLDB4NzgsMHg4MiwweDVhLDB4MTAsMHg4MywweGEwLDB4MjAsMHhlOCwweDBhLDB4N2IsMHgwMiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4OTcsMHhjMCwweDJkLDB4ZTQsMHgwOCwweGU4LDB4MDIsMHgwOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDEwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHgwMiwweDA4LDB4MDgsMHhiMywweDcwLDB4MjAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4NDIsMHg0YywweDA0LDB4OTMsMHgxNCwweDI2LDB4YzQsMHgwYSwweDM4LDB4MDIsMHhjYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4YWEsMHgzMCwweDAyLDB4Y2UsMHg0MCwweGIzLDB4ODgsMHgyYywweGMwLDB4MjgsMHgzMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDAwLDB4ZWEsMHg4MCwweGI2LDB4OTAgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4MmYsMHgyNCwweDBiLDB4MzksMHgwNCwweGJlLDB4YzAsMHgzMywweDkyLDB4MGMsMHhhMCwweDBiLDB4NjgsMHgxOCwweGNlLDB4YzAgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MzMsMHg4MCwweDBmLDB4ZTksMHg0MywweDc4LDB4MDAsMHhjYSwweDAwLDB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweGY4LDB4NDggfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4ZGUsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDIsMHgzYSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHhmOCwweDAwLDB4M2UsMHgxMiwweDBkLDB4ODAsMHg5MywweGIwLDB4MjgsMHhmOCwweDAwLDB4YmMgfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDIsMHgwZSwweDgwLDB4MDAsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4MDEsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweGIyLDB4NzAgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4MGYsMHg5MCwweDAxLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5OCwweDAzLDB4ZTQsMHgwNCwweGU5LDB4MDggfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4M2EsMHg0OCwweDBjLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBiLDB4MTAsMHgwYiwweDI2LDB4ODAgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4ZjEsMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg2MSwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDgsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4NDAsMHgwZCwweDlhLDB4MDIsMHhlNCwweDA4LDB4YTksMHgwMCwweDIyLDB4NzgsMHgwZCwweDk0LDB4MDYsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4MDAsMHgyMiwweDUwLDB4MGIsMHg5MCwweDAyLDB4MjUsMHg4MCwweGI5LDB4ODAsMHgzNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjUsMHgwMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4MGIsMHhkMCwweDBlLDB4YjQsMHgwMCwweDg5LDB4MDQsMHgyZSwweDYwLDB4MDgsMHg5MSwweDAyLDB4YzQsMHgwNCwweGI5LDB4MDQgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MTAsMHhiMSwweDAwLDB4MjYsMHg0MiwweDBhLDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4YjksMHgyMSwweDYyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHhiNSwweDQwLDB4MjEsMHg1MCwweDRiLDB4NTAsMHgwNiwweDk0LDB4MDIsMHg4MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4NjAsMHgyOSwweDE0LDB4MDYsMHhjNSwweDAwLDB4YTEsMHgyMiwweDIwLDB4NTEsMHg4OSwweDE0LDB4MDIsMHhjNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4MjAsMHgyMCwweDQ4LDB4MGIsMHgxNCwweDAyLDB4MDQsMHgwMSwweGIxLDB4MDAsMHgwNCwweDUwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4YjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4OGYsMHg4MCwweDAzLDB4YjAsMHgwMCwweDg4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDQgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhmOCwweDUwLDB4MzYsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDQgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4ZjgsMHgwMSwweDEyLDB4MDAsMHg0ZiwweDgwLDB4MDcsMHhlZSwweDA3LDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MTAsMHhmOSwweDQwLDB4M2UsMHg1MCwweDBmLDB4OTQsMHgwMiwweDY1LDB4MDEsMHhmZCwweDAxLDB4M2QgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4NTAsMHg0ZiwweDUwLDB4MTMsMHhlNSwweDAwLDB4ZmQsMHgxMCwweDFmLDB4NTAsMHgwNywweGQ0LDB4NDMsMHhkNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4MTAsMHgxZSwweDQ0LDB4MGYsMHg5NCwweDAzLDB4ZDUsMHgwMCwweGZkLDB4NDAsMHgzZSwweDUwLDB4MGYsMHg1MiwweDgzLDB4ZWUgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhlNCwweDQwLDB4ZjksMHg2MCwweDNmLDB4NDQgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4MGYsMHhkMCwweGMzLDB4ZTQsMHgzMCwweGY5LDB4MDEsMHgzZSwweDQyLDB4MGMsMHhkMCwweDAzLDB4ZTcsMHg4MCwweGRkLDB4YTAgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhjOSwweDkwLDB4M2YsMHg2OCwweDFlLDB4OTEsMHgwMywweDM0LDB4MDAgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4ZmQsMHgwMCwweDNlLDB4NjgsMHgwYywweDk0LDB4MDMsMHgwZSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4MzksMHgxMCwweGUwLDB4MDAsMHhiOCwweDQyLDB4MmUsMHgwOSwweDBiLDB4ODQsMHgwMiwweGUxLDB4MDQsMHhiZSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MTAsMHgwOCwweDgwLDB4MjIsMHhjMiwweDgwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYSwweDgwLDB4MDIsMHhlMCwweDAwLDB4YTggfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4ZDAsMHgyZSwweDEwLDB4NGIsMHg4YSwweDAzLDB4NjAsMHgwMCwweGJhLDB4MDAsMHgyZSwweDMwLDB4MDgsMHg4YSwweDAyLDB4ODYgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhjNSwweDgwLDB4YjEsMHg2MCwweDZjLDB4ZDAgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MGIsMHgxMCwweDAwLDB4ZGMsMHgwYywweGI1LDB4MDAsMHgyYywweDQxLDB4MDgsMHgxMCwweDAyLDB4YzUsMHg4MCwweDkxLDB4MTAgfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4NjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweGU0LDB4MGMsMHg4MSwweDIyLDB4MmMsMHg1MCwweDA4LDB4MTAsMHg0MiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4YTEsMHgwMCwweDJjLDB4NWEsMHgyOCwweDkwLDB4MDIsMHg1MiwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgxMiwweGY0LDB4ODAsMHhiZiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YTksMHg2MCwweDYwLDB4NDIsMHgwYSwweDk0LDB4MTIsMHhlNSwweDAwLDB4YTkgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4NjQsMHgyMCwweGI5LDB4MDAsMHgwZSwweDQwLDB4MDksMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDEgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGQxLDB4YzAgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4YmEsMHg3MCwweDBjLDB4OTgsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwMywweDI1LDB4NDAgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4ZTksMHg0MCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MTQsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgyMywweGU0LDB4MDgsMHhmOSwweGEwLDB4M2MgfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4YzIsMHgyZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZDksMHg4MCwweDNlLDB4NzAsMHgwZiwweDkxLDB4NDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MWYsMHg5MCwweDEzLDB4ZTYsMHgyMCwweGY5LDB4YTAsMHgzYywweDQwLDB4NGUsMHg5MCwweDAzLDB4OWEgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDIgfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4MGYsMHg4MCwweDEzLDB4MjAsMHgwYywweGZjLDB4MDEsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwYiwweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHg0MywweGUwLDB4NDAgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4ZjgsMHgwMiwweDNhLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4YTgsMHg4NSwweDI4LDB4MDgsMHgzYSwweDAwLDB4MGYsMHg4MCwweDRiLDB4YTEsMHgwMiwweDI4LDB4MDAsMHhiYSwweDgyLDB4MmUgfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4ODgsMHg0OCwweGU0LDB4MDIsMHhlOCwweDAwLDB4YWUsMHg5MCwweGEzLDB4OTAsMHgwYiwweGUwLDB4MDAsMHgzOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4MDAsMHgzNywweGEwLDB4MDgsMHhhMCwweDAyLDB4ZjgsMHgwMCwweDllLDB4ZTAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDEwLDB4MzMsMHgwMCwweDJjLDB4ZDAgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MGMsMHgwMCwweGIyLDB4OTEsMHgyYywweGQwLDB4MDgsMHgzZSwweDAyLDB4NGMsMHgwMCwweDgzLDB4NDAgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4MjQsMHhjMiwweDBiLDB4MzYsMHgwMCwweDhjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4YjMsMHhjYywweDY4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4ZTAsMHgwMSwweDFjLDB4ODgsMHhiNywweDI1LDB4MmQsMHhjMCwweDhiLDB4NTgsMHgxYSwweDFjLDB4MDgsMHhiNiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4YzAsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4YTUsMHgwMCwweDI1LDB4YzAsMHgxYiwweDc4LDB4MDIsMHg5NCwweDA4LDB4YjcgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4ODAsMHgyNSwweGUzLDB4MGEsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk3LDB4ODMsMHgyMSwweGM4LDB4OGIsMHhmMSwweDAyLDB4NDggfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDAwLDB4ZjcsMHhlMiwweDdkLDB4ZTAgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4MGYsMHg1OCwweDQzLDB4MWUsMHgxOCwweGY2LDB4ODAsMHg3YywweGUwLDB4MmMsMHg2OCwweDAyLDB4NWUsMHg5MCwweGMzLDB4ODAgfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4MzUsMHhlMCwweDBmLDB4ZjgsMHgwMywweDllLDB4MDQsMHhmZiwweGExLDB4MjAsMHhhMSwweDBkLDB4NzgsMHgwMywweGQ2LDB4MDAgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4ZjcsMHg4MCwweDM5LDB4ZjgsMHgwZiwweDc4LDB4MDMsMHgwYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDQwLDB4N2YsMHg0MSwweDBmLDB4MTAsMHgwMywweGVjLDB4MDQsMHhmYSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4ZDAsMHgwZiwweGEwLDB4MDMsMHhlZCwweDAwLDB4ZTksMHgwMCwweDJhLDB4MDAsMHgwZiwweGIwLDB4MDMsMHg2NCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGQzLDB4MDAsMHgzNiwweGMwLDB4MGYsMHgzOCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDQ4LDB4Y2YsMHhjMCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4OGMsMHhjOCwweDQzLDB4ZDYsMHgwMCwweGNjLDB4OTQsMHgzZiwweGIwLDB4MGQsMHhmOCwweDAzLDB4N2YsMHgwMCwweGRmLDB4ODAgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4M2YsMHg2MCwweDBmLDB4ZDgsMHgwMywweGRlLDB4MDAsMHhjZiwweGNhLDB4M2QsMHg2MCwweDBjLDB4ZjgsMHgxMywweDNhLDB4NDQgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4ZGQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4NDMsMHgxOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4ZiwweDExLDB4MzMsMHhjMCwweDQ4LDB4NDEsMHgxMiwweGM0LDB4NDgsMHg4NCwweDExLDB4MmMgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4ZWMsMHgyYSwweGJhLDB4MDMsMHgzYywweDQwLDB4ZDcsMHg0OCwweDJkLDB4NDEsMHgwYiwweDYwLDB4MDIsMHhkNCwweDAwLDB4ZDcgfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4MDEsMHgzZCwweGMwLDB4MGQsMHhmMCwweDAzLDB4NWEsMHgwMCwweDg0LDB4MTgsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg4YywweDA4LDB4ODcsMHgwMCwweDIxLDB4NDAgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4MDksMHg0MCwweDAyLDB4ZDQsMHgwMCwweGE0LDB4OTIsMHgyZCwweGM4LDB4MDksMHg2MiwweDgyLDB4NWMsMHgwMCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweGZjLDB4MDAsMHg4NywweDAwLDB4MmQsMHgwNCwweDA4LDB4NzAsMHgwMiwweDFjLDB4ODAgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4YjUsMHgwMCwweDJkLDB4YzAsMHgwYiwweGYwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4NjAsMHgxMCwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg0MCwweDA5LDB4MDAsMHgyMiwweGM3LDB4MDAsMHhhMCwweDQxLDB4MmMgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4YzEsMHg0YiwweDA4LDB4MDIsMHgyYywweDAwLDB4OTMsMHg0MCwweDJjLDB4N2MsMHgwYiwweDM4LDB4MDIsMHhjNywweDIwLDB4OTMgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4NGYsMHg4NCwweGIwLDB4ODAsMHgyYywweGMwLDB4MGIsMHgzMiwweDEwLDB4NTAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhiYywweDAyLDB4Y2YsMHgwMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4MGQsMHgxMCwweDAzLDB4ZTgsMHgyNCwweGViLDB4YzEsMHgzZSwweGMwLDB4MmQsMHg5OCwweDEzLDB4N2MsMHgwYSwweGMyLDB4NDMgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4M2UsMHhiMCwweDBmLDB4YTksMHgwMywweGU5LDB4MjAsMHhjZiwweDAwLDB4M2UsMHhjMCwweDhjLDB4ZjAsMHgwMywweDBkLDB4MjAgfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4ZmEsMHhjMCwweDNmLDB4YzAsMHgwZiwweDc0LDB4MDEsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHg0MCwweDhlLDB4OTAsMHgwMywweGU4LDB4MTQsMHg1YiwweDUwLDB4M2MgfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4NTAsMHg0ZSwweDg0LDB4MDMsMHhlYywweDAwLDB4ZjgsMHg0MCwweDNlLDB4ODAsMHgwNywweDgxLDB4MDMsMHhlYywweDA4LDB4ZjMgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4MDAsMHgzYSwweGMwLDB4OWYsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTggfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4OTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4MzgsMHgyMCwweGNmLDB4MDgsMHgzMiwweGMxLDB4MGUsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDggfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MzEsMHhlNSwweDBlLDB4ZTQsMHgwMywweDNhLDB4MDAsMHhmZiwweDAwLDB4MzMsMHg4MCwweDBmLDB4ZjAsMHgyYiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4Y2MsMHhhMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4ODAsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4M2EsMHg2OSwweDBiLDB4OTAsMHg2ZSwweDA4LDB4MDAsMHg4MywweDQxLDB4MzYgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4NDAsMHhjOCwweDg4LDB4YzYsMHhlYywweDAwLDB4ODgsMHg0MCwweDM2LDB4ODAsMHgwZCwweGE4LDB4MDMsMHg2ZSwweDUwLDB4YmIgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDgsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4NjAgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4MDMsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg5LDB4MDEsMHgyMiwweDU4LDB4MDgsMHg5OCwweDIyLDB4ZWMsMHgwMSwweGFiLDB4MDAgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4MjIsMHgwMCwweDBhLDB4MTAsMHgwMiwweDI4LDB4MDAsMHhiYiwweDAwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4OGEsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHgyMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjgsMHg0MCwweDhiLDB4MDAsMHgwMiwweDAyLDB4NDAsMHg4OSwweDAxLDB4MjQgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4ZDIsMHgyOCwweDEwLDB4MDIsMHhjYywweDAwLDB4ODMsMHgxMCwweDI0LDB4MjAsMHgwOCwweDA4LDB4MDIsMHg0ZSwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4MDQsMHhhMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDgsMHg4OCwweDkyLDB4MDAsMHgyYywweGMwLDB4MGIsMHhiMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4MGYsMHg4MCwweDAyLDB4MjAsMHgxMCwweDg5LDB4NTAsMHgyMiwweGQ4LDB4MmUsMHg5NiwweDIyLDB4ZmMsMHgwMCwweGViLDB4NDAgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4MzIsMHhjMCwweDBhLDB4OTAsMHgwMywweDI4LDB4MDAsMHhmZiwweDAwLDB4MjIsMHgwMCwweDBmLDB4YjAsMHgwMywweDJjLDB4YTAgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDA2LDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDBjLDB4M2IsMHgwMCwweDBmLDB4YzAsMHgwMiwweDcwLDB4OTAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4YzksMHgwZiwweDk2LDB4YzMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkYywweDgwLDB4ZmIsMHgyOCwweDNmLDB4MDAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4MGMsMHhjMSwweDBiLDB4ZjEsMHgwMiwweGVkLDB4MDAsMHgzNywweDMwLDB4MmMsMHhmMSwweDAzLDB4YjIsMHg0MCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4YmIsMHhjMCwweDBmLDB4NDgsMHgwNiwweGIyLDB4MDAsMHhmYywweDgwLDB4M2IsMHhjYywweDBjLDB4ZjAsMHgwMywweDcwLDB4ODAgfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4ZGYsMHgyOCwweDMzLDB4MDQsMHgwZiwweGY0LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4ODAsMHgxMCwweGZmLDB4NDAsMHhiZiwweDYwLDB4MmUsMHgyMSwweDA4LDB4ODIsMHgwMiwweDIwLDB4MDAsMHhhOSwweDI4LDB4MmEgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MDAsMHgwOSwweGZhLDB4MDIsMHgyMCwweDAwLDB4YmYsMHg1MSwweDIzLDB4ZDgsMHgwOSwweDk4LDB4MDIsMHhlNCwweDMwLDB4YjAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4MDAsMHgyMywweGQwLDB4MDgsMHhmNSwweGEyLDB4MjUsMHhhNCwweDhmLDB4NDIsMHgzYywweDEwLDB4MGIsMHhiMCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgwOCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4MjgsMHgwMCwweDFhLDB4YzAsMHg4NCwweDIwLDB4MDAsMHgyNCwweGM4LDB4NGIsMHgzMSwweDQyLDB4YzAsMHgwMCwweDkzLDB4MDIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MjAsMHhjNiwweDA4LDB4MDAsMHgwNiwweGMwLDB4ODEsMHhiMywweDAwLDB4MmMsMHhkOCwweDA5LDB4MzIsMHgwMiwweGEwLDB4NDAgfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4OTMsMHgwMSwweDI0LDB4NGMsMHgwYiwweDMyLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiYiwweDAyLDB4MmUsMHgwYSwweDA4LDB4ODAsMHg4MiwweDYwLDB4MDAsMHhhOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4ZTAsMHgxYiwweGIwLDB4MDIsMHg2MiwweDAxLDB4M2IsMHgwMCwweDIyLDB4YzEsMHgwOSwweDkwLDB4MDIsMHhlMiwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4NjAsMHgyNiwweGMxLDB4MDgsMHhiMCwweDJhLDB4MjYsMHgwMCwweDliLDB4MDQsMHgyZSwweDIxLDB4MGIsMHhiMCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4MDgsMHg4NCwweDEzLDB4ZWMsMHgwMiwweGE5LDB4MDQsMHgzNiwweDIwLDB4MGYsMHhiMCwweDAzLDB4ZWUsMHg4MCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4M2EsMHhjMCwweDBjLDB4YTAsMHgwMywweGEyLDB4ODAsMHg3OSwweDQwLDB4MWUsMHhjMCwweDhjLDB4YjAsMHg2MywweDZhLDB4MTAgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4ZDMsMHgwMCwweDM2LDB4YTIsMHgwNywweGIwLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgyMCwweDRkLDB4NDEsMHgwMywweDljLDB4MDAsMHhmZCwweDIwLDB4YWIgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MDAsMHgwYywweGYwLDB4MDMsMHhiOCwweDAwLDB4ZjcsMHgwMCwweDNmLDB4YzAsMHg0ZCwweGM5LDB4MDMsMHhmNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MmUsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGVmLDB4MDAsMHgzZiwweDAwLDB4NGIsMHg3MCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDgwLDB4ZWIsMHgwMCwweDdlLDB4MTAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4MmUsMHg4NCwweDAzLDB4ZWMsMHgwMCwweGUwLDB4MDAsMHgzMiwweDUwLDB4MGYsMHhiMCwweDg2LDB4MjUsMHgwMCwweGRiLDB4MjAgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4M2EsMHhjMCwweDBkLDB4YjAsMHg2MywweGUxLDB4MTAsMHhmYiwweDQ4LDB4MzgsMHhjMSwweDBmLDB4MzAsMHgwMywweDJjLDB4MDQgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4ZmIsMHgwOCwweDMyLDB4YzAsMHgwYywweGIwLDB4MGIsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4NjQsMHgyOSwweDI4LDB4ODAsMHgwMywweGVjLDB4MDIsMHhlOCwweDA0LDB4YTggfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4NTYsMHgwOCwweGZjLDB4MDcsMHhlMCwweDAwLDB4MGYsMHhhMCwweGJmLDB4YzAsMHgwYiwweDk1LDB4MDIsMHhhMCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4MDUsMHgzNywweGMwLDB4ODksMHhmMCwweDBhLDB4MGQsMHhjOCwweGJmLDB4MDgsMHgyYSwweDgwLDB4MDgsMHhmMCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAxLDB4YjMsMHgwMiwweDI0LDB4ZTAgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4MGEsMHgzMCwweDEyLDB4ODAsMHgwMywweGEzLDB4MDAsMHhhOCwweDAwLDB4MDIsMHhiOCwweDIyLDB4YzAsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MjgsMHhjMSwweDBiLDB4MDQsMHgwMiwweDA4LDB4MDAsMHhiOSwweDQwLDB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAzLDB4MDQgfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4YjMsMHg0NCwweDIwLDB4MDAsMHg0YSwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MjAsMHgxNywweGEwLDB4NjUsMHhlYywweDA4LDB4MzgsMHgwMiwweGMyLDB4NDEsMHhiMywweDkyLDB4MmIgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4NjQsMHgwYSwweDM4LDB4MDIsMHgzNiwweDAxLDB4YjcsMHg5MCwweDJkLDB4ZTAsMHgwMywweGY4LDB4MDAsMHg5YSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4ODAsMHgyZCwweGUwLDB4ODksMHg3OCwweDEyLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyOSwweGUwLDB4MGEsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4NzMsMHhiMCwweDI0LDB4YzggfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4NGUsMHgzMCwweDBhLDB4ODAsMHgwMiwweGUyLDB4MDAsMHgzOCwweDk0LDB4MGUsMHgzMSwweGEyLDB4YzgsMHgwMCwweDczLDB4MDAgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4MTgsMHhjNCwweDA1LDB4MDAsMHgwMywweDAwLDB4MDAsMHhmMywweDAwLDB4MzgsMHhjMCwweDA3LDB4YjEsMHgwMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4ZjMsMHgwMSwweDMwLDB4NDEsMHgwZSwweGIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhlZiwweDEwLDB4MjYsMHhjOCwweDAzLDB4YjEsMHgwMywweGUwLDB4MDAsMHhlYSwweDgxLDB4NzggfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4YzUsMHgwYywweGI1LDB4ZTMsMHhkYywweDAwLDB4YzMsMHgwMCwweDNlLDB4YzEsMHgwZiwweGYwLDB4ODMsMHhiMCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGQsMHhmNCwweDAzLDB4ZTQsMHgwMCwweGY3LDB4MDAsMHgzZiwweDQwLDB4MGQsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDEwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4MGQsMHhiMCwweDEzLDB4YWMsMHgxMCwweGZiLDB4MDAsMHgzYSwweDgwLDB4MDQsMHhiNCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDQgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YTQsMHhiMywweGUwLDB4MDAsMHhmYiwweDgwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAgfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4ZmIsMHg0OCwweGIyLDB4ODAsMHgwZiwweGIwLDB4NDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDIsMHg4NywweDQ0LDB4MzgsMHhjMCwweDhkLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhmZiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjMsMHg1MCwweDIxLDB4ZDQsMHg0ZSwweDYyLDB4MDIsMHhkMCwweDAwLDB4YmYgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4MDAsMHgzNSwweGQ0LDB4MDksMHg3MCwweDIyLDB4ZDgsMHgwMCwweGJmLDB4MjIsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDQwLDB4ODcsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI2LDB4ODAsMHgyOSwweGExLDB4MjgsMHg3YSwweDMyLDB4ZGUsMHgwMCwweDM3LDB4YTAgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4MjUsMHhlMCwweDA5LDB4NzgsMHgwNiwweGQyLDB4MDAsMHhiNywweDgwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGRlLDB4MDAgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4YjcsMHg5MCwweDIxLDB4ZTAsMHgwYiwweDc5LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDQsMHg4MywweDAxLDB4MjgsMHhjMCwweDg5LDB4YjAsMHgwYSwweDRmLDB4MDAsMHhiMiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4YzQsMHg4OCwweDMwLDB4MTYsMHhjZiwweDAwLDB4YmIsMHgwNCwweDIwLDB4YzEsMHgwYSwweDMyLDB4MDYsMHhjMiwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MDksMHgzMCwweDQyLDB4ZWYsMHgxMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4NGEsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4MmQsMHhhMCwweDBiLDB4YWEsMHg4MCwweGZlLDB4MDAsMHgyYiwweDgwLDB4MGMsMHhhMCwweDQzLDB4ZmIsMHgzMCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHg4MywweGZhLDB4MDQsMHhmZSwweDE4LDB4MjIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4ODQgfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4ZjIsMHgwMCwweDMzLDB4YTIsMHgwZiwweGEwLDB4MDMsMHhmMiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmYywweDAyLDB4M2UgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MDAsMHgxZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDEsMHhlMCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4NDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNiwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgzNiwweDY4LDB4NmMsMHg5NCwweDAzLDB4ZTQsMHgyMCwweGI5LDB4OTAgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTQsMHgwMywweGU0LDB4MDAsMHgyOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MjAgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4ODAsMHgwNCwweDY2LDB4NTAsMHg4OSwweDAwLDB4MjAsMHg1MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDksMHhkOSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4NDgsMHg0OCwweDkwLDB4MDYsMHhlNCwweDA0LDB4OTksMHhhMCwweDIyLDB4NDAsMHgwZCwweGI4LDB4MjIsMHg2NCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4NTAsMHgzMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjcsMHg5MCwweDg5LDB4NDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4OTksMHgwMCwweDY2LDB4NDIgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4MGEsMHhkMCwweDEyLDB4MzQsMHgwMCwweDg1LDB4MDAsMHgyNiwweDQwLDB4NGEsMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDEgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4MjQsMHg0MCwweDU4LDB4OTAsMHgxMiwweGM0LDB4MDAsMHgyOSwweDQwLDB4MmUsMHg0MCwweDBiLDB4MTAsMHgwYSwweDI0LDB4ODAgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4ODksMHgwNSwweDI2LDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4NjEsMHg0OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODEsMHg5NSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4NDAsMHgwYSwweDM2LDB4MDIsMHhjNCwweDAwLDB4YjEsMHgyMCwweDAwLDB4NDgsMHg0MSwweDEwLDB4NDIsMHg0NCwweDAxLDB4YTEgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4MDAsMHgyNCwweDQ4LDB4MGIsMHgxMiwweDEyLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyOCwweDQ4LDB4MGIsMHgxMiwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZDgsMHg1MCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4MGUsMHg4NSwweDIzLDB4MjEsMHg0MiwweDhjLDB4NTQsMHgzNCwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4MzYsMHgxNCwweDA0LDB4ODAsMHgwMywweGUxLDB4NDQsMHhlOCwweDUwLDB4N2UsMHgxNSwweDBmLDB4ODUsMHgwMywweDIxLDB4NDIgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4NGEsMHgwMCwweDM2LDB4MTQsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4OTgsMHgxZCwweGM0LDB4NDAsMHhmOSwweDEwLDB4MWUsMHg0NCwweDRlLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4YzAsMHgwZCwweDkxLDB4MDMsMHhmNCwweDAwLDB4ZDksMHgxNCwweDNlLDB4NDQsMHgwZiwweDkwLDB4MDMsMHg3NCwweDAwLDB4ZGQgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4MDAsMHg3YSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MzgsMHgzZiwweDQ0LDB4MGYsMHg5MywweDgzLDB4ZTcgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZjksMHhhNCwweDNmLDB4NjggfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4MGUsMHg5ZSwweDQzLDB4NjcsMHg4MCwweGQ5LDB4ZTQsMHgzZiwweDQxLDB4MGYsMHhkOCwweDQzLDB4MDQsMHgwMCwweGVkLDB4YzAgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkNSwweDQwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGY0LDB4MDAgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4ZGQsMHgwMCwweDMyLDB4NDAsMHgyYywweDlhLDB4MDMsMHhjNiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHhlOCwweGMwLDB4MmUsMHgxNCwweDRkLDB4OGYsMHgyMiwweDIzLDB4YzAsMHhmOCwweGYwLDB4YWEgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4MDAsMHgwYywweDgwLDB4MDMsMHhhMiwweGEwLDB4ZDgsMHg4MiwweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlOCwweDAwLDB4ZDggfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4ODAsMHgyYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTgsMHgwOCwweDg4LDB4YTgsMHgzNiwweDAwLDB4NDgsMHg4YSwweDgyLDB4Y2UgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHg0OCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MGEsMHgxMiwweDIyLDB4NDQsMHgwMCwweDkxLDB4MDQsMHhhNCwweDQxLDB4MGEsMHg5NCwweDA2LDB4MjQsMHgwMCwweDkxLDB4NDIgfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4MjQsMHg0MSwweDA5LDB4MTAsMHgwMiwweGU0LDB4MDEsMHg5MSwweDIwLDB4MjQsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4OTEsMHgwMCwweDJjLDB4NDAsMHgwOSwweDE0LDB4MDIsMHhjMiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDQ4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YWEgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4NDAsMHgxOCwweGIwLDB4MDIsMHhlNCwweDA4LDB4OTksMHgwMCwweDIyLDB4NDAsMHgxOSwweDkwLDB4NDYsMHhlNCwweDgwLDB4OTkgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMSwweDk5LDB4MDQsMHgyNiwweDUwLDB4MDksMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHgwNiwweDNjLDB4NDAgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4MGEsMHg5MCwweDAzLDB4NjQsMHgwMiwweGQ5LDB4MDAsMHhiNiwweDUwLDB4MGUsMHg5MCwweDIzLDB4MjYsMHgwMSwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4MzYsMHg0MCwweDI5LDB4OTQsMHg4MywweGU0LDB4MDAsMHhkOSwweDQ4LDB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMywweGM3LDB4MDAgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4ZDEsMHgwNywweDNhLDB4NTAsMHhjZCwweDkwLDB4MDMsMHhlOCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDgsMHhlOSwweDAwLDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDgsMHhmMSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4NjgsMHg4ZiwweDkwLDB4MDMsMHhhNCwweDQxLDB4ZjksMHgwMCwweGJlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4YzAsMHgzOCwweDQwLDB4MmUsMHg5MCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDY4LDB4MDYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwNSwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4MDcsMHg4MCwweDBiLDB4MjAsMHgwMCwweGU4LDB4NDAsMHgzZSwweDEwLDB4MGQsMHg4MiwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4YjIsMHgwMCwweDhkLDB4ODMsMHgwMywweGUwLDB4MDAsMHhkOCwweDUwLDB4M2EsMHgwMCwweDFlLDB4ODAsMHgwMywweGUxLDB4MjQgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHg4YSwweDA0LDB4MmYsMHg4NCwweDZhLDB4YTAsMHgwYiwweGU4LDB4MDgsMHg4ZSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4ODAsMHg4OCwweGVjLDB4MDMsMHg2OCwweDEwLDB4YTYsMHgwMSwweDM2LDB4ODAsMHgwOCwweGE4LDB4MDAsMHhjOCwweDEwLDB4OGUgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4MTAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZmIsMHgyMCwweGJlLDB4NTEsMHgyYSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MSwweDIxLDB4OTMsMHgwMCwweDJjLDB4ZjAgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4MzksMHgzMCwweDA2LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyOCwweDA4LDB4MjgsMHhiYywweDAyLDB4MmMsMHgwMCwweDgzLDB4ODAgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMCwweGNjLDB4MDAsMHg5YSwweDgwLDB4MjgsMHhjMCwweDBhLDB4MzAsMHgwMiwweGNkLDB4MDAgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4YjMsMHgwNCwweDYyLDB4YzEsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4YTAsMHgwMSwweDFlLDB4MDQsMHgwNywweDExLDB4MmMsMHhkMCwweDBhLDB4MzIsMHgyMiwweGRjLDB4YzEsMHg4NywweDAwLDB4NmQgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4ZDAsMHgwOCwweDM0LDB4MDIsMHg3YywweDAwLDB4YTcsMHgwOCwweDI0LDB4YzgsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwLDB4MGYgfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4MDAsMHgyMSwweGM0LDB4MDgsMHg3MywweDA2LDB4ZGMsMHgwMCwweGIyLDB4MDAsMHg2MSwweGM4LDB4MGIsMHgzYSwweDAyLDB4ODggfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwYSwweDAwLDB4NTcsMHg4MSwweDJkLDB4YTAgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4MmQsMHg3YywweDAyLDB4M2UsMHg4MiwweGUzLDB4ZTAsMHgzYiwweGUwLDB4MGMsMHg3OCwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4YjksMHhlOCwweDJjLDB4NzgsMHgwMywweGZmLDB4ODAsMHhkNiwweDgwLDB4M2IsMHhlYywweDAyLDB4N2EsMHgwMywweGRlLDB4MDAgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4ZWMsMHg4ZiwweDdjLDB4MDMsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4MWUsMHg4MCwweDIzLDB4YjYsMHg4MywweGVkLDB4YTAsMHhkYiwweDY0LDB4M2UgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDMsMHhlZCwweGMwLDB4ZjIsMHgwMCwweDNlLDB4ZDQsMHgwYSwweGIwLDB4MDMsMHhlYywweDMwLDB4ZWUgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4NjQsMHgzZSwweGMwLDB4MDcsMHhiMCwweGMzLDB4ZTgsMHgwMCwweGZiLDB4MDEsMHgzZSwweGM4LDB4MGYsMHhiOCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZWYsMHg4MCwweDNiLDB4ZTAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4MGYsMHhmOCwweDYzLDB4N2UsMHgwNCwweGNmLDB4YzAsMHhiNywweDIwLDB4MGUsMHhmOCwweDAzLDB4ZmMsMHgwMCwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4MzMsMHhmMCwweDBjLDB4Y2MsMHgwMywweGZlLDB4MDgsMHhmNywweGMxLDB4MzMsMHhlMCwweDRmLDB4ZjgsMHgwMywweGIyLDB4NDAgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4ZmYsMHhhMCwweDMxLDB4ZTYsMHgwYywweGY4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhlZiwweDAyLDB4MjEsMHg0MCwweDJkLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhmNywweDEwLDB4MjkgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MjIsMHhmYywweGMwLDB4YTcsMHgwMCwweDNkLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4NDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGEsMHg4MCwweGI3LDB4MjQsMHgyOSwweGM2LDB4NDgsMHhmMCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTcsMHgwMCwweDI4LDB4ODQgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyNSwweDgwLDB4MGEsMHg2MSwweDAyLDB4ZGMsMHgwMSwweGE3LDB4MTAgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MjQsMHhjMCwweDA4LDB4NDAsMHg4MiwweGRjLDB4MDAsMHg5ZiwweDAwLDB4MjUsMHhjNCwweDBiLDB4NzAsMHgwMiwweDk0LDB4MjUgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4YjcsMHgzMiwweDIzLDB4YzQsMHgxYiwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MGMsMHhhMywweDAwLDB4MjAsMHgwMCwweDI5LDB4MzAsMHgwYSwweDBjLDB4MDAsMHhhMywweDAwLDB4NmMgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4MDAsMHgwOCwweDEwLDB4NDIsMHhjZCwweDEwLDB4YWEsMHgwMCwweGFjLDB4YzAsMHgwMCwweDA0LDB4MDIsMHhjZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4MTAsMHgyNCwweGMwLDB4MDMsMHgzMCwweDQyLDB4YzMsMHgwOSwweGIzLDB4MDAsMHgyYywweGQwLDB4MGEsMHgzMCwweDAyLDB4MTggfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MCwweDAwLDB4ZWYsMHgwMCwweDNhLDB4NDAgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4MDcsMHhmMCwweDQzLDB4M2MsMHgwMCwweDlmLDB4YzAsMHhiNiwweDE0LDB4MGUsMHg4MCwweDA2LDB4ZmMsMHgwMSwweGNiLDB4MDEgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MzcsMHhjMCwweGFjLDB4YjQsMHgwMiwweGZjLDB4MDAsMHhkOSwweDAxLDB4MzcsMHhjMCwweDRiLDB4ZjAsMHgxMywweGFlLDB4MDggfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4ZmIsMHgwMCwweDMzLDB4ZDAsMHgyZSwweGYwLDB4MGIsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA1LDB4M2UsMHg0MCwweDBmLDB4MzAsMHgwMywweGFjLDB4MTQsMHhmYiwweGEwLDB4M2EgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4YzAsMHgwZiwweDg0LDB4NDMsMHhlYywweDAxLDB4ZjksMHg0MCwweDNlLDB4YzAsMHgwZiwweGEyLDB4MDMsMHhlYywweDIxLDB4ZjkgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgyMCwweGYwLDB4MDAsMHhiYSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmOCwweDAwLDB4ZDcsMHgwMSwweDM1LDB4NjggfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4NmQsMHhmMCwweDAzLDB4M2MsMHgwMSwweGU3LDB4MDAsMHgzMywweGMwLDB4MGQsMHhjMCwweDAzLDB4ZmMsMHgyNCwweGNmLDB4MDIgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4MzcsMHhjMCwweDBkLDB4ZDIsMHgwMiwweGZjLDB4MDAsMHhkZiwweDAxLDB4MzMsMHhjMCwweDVlLDB4NzAsMHgzMywweDFjLDB4MTggfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4Y2YsMHg0MSwweDMxLDB4YzIsMHgwYywweGYwLDB4MDMsMHg0MCwweDQwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4ODEsMHgwMCwweDZjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHg1MiwweDJhLDB4YjAsMHgwMywweDZjLDB4MDAsMHhhYiwweDAwLDB4MjggfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4YzAsMHgwYSwweDhjLDB4MDIsMHhlYywweDEwLDB4OGIsMHhlMCwweDIyLDB4YzAsMHgwZiwweDgwLDB4MDIsMHhjYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4ODAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmEsMHgxMCwweGQ5LDB4ODAsMHgyMiwweGMwLDB4YzgsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNCwweDAxLDB4OWIsMHgwMCwweDI2LDB4ODAgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4MjksMHhiMCwweDYyLDB4MGMsMHgwMCwweGFiLDB4MDEsMHg2YSwweDAwLDB4MDgsMHg5OCwweDAyLDB4Y2MsMHgwMCwweDliLDB4ODMgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4MmUsMHhjMCwweGNiLDB4YjQsMHgxMiwweGVjLDB4MDMsMHg4YiwweDgwLDB4MjgsMHhjMCwweDBhLDB4YjAsMHgwNiwweGEyLDB4MDAgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4OGIsMHgwMiwweDYyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHg4MywweDE0LDB4MjAsMHgwMCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmEgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4NDAsMHgwYSwweDEwLDB4MDAsMHhjYywweDAyLDB4OTMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDIwLDB4MDIsMHhlYywweDAwLDB4MDMgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDE2LDB4MDAsMHg4MCwweDkxLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4MmQsMHhmMCwweDAzLDB4M2MsMHgwMCwweGFmLDB4MDAsMHgzYSwweDgwLDB4MGQsMHg4MCwweDAzLDB4ZmMsMHgwMCwweDViLDB4MDAgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4MzcsMHhjMCwweDA5LDB4OTAsMHgwMywweGZjLDB4MDAsMHhkZiwweDAwLDB4MzMsMHhjMCwweDBhLDB4ZjAsMHgwMywweGE0LDB4MjAgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4Y2IsMHgwMCwweGIzLDB4YzAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmZiwweDIwLDB4MGYsMHgwMCwweDI3LDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MDAsMHgwYiwweGQwLDB4MjcsMHhmYywweDAwLDB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGMwLDB4NDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDBiLDB4ZTAsMHgwMCwweGY1LDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4MDcsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmNCwweGMwLDB4ZmMsMHgyMiwweDdmLDB4YzAgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4MGMsMHhkMCwweDQzLDB4MzYsMHgwMCwweGM0LDB4ODEsMHgzNCwweGMwLDB4MWMsMHg4OSwweDA3LDB4ZjIsMHg4MCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4MzMsMHg2MCwweDBmLDB4NzksMHgwMywweDNjLDB4ZTAsMHhjZiwweDA4LDB4MzMsMHg0OCwweDBkLDB4YzQsMHgwMywweGYwLDB4NTAgfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4ZGMsMHg5MCwweDM3LDB4Y2MsMHgwZiwweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4ODAsMHgxMCwweGU5LDB4OTAsMHhiOCwweDgwLDB4N2UsMHhlNCwweDg4LDB4OTksMHgwYSwweDI2LDB4MDgsMHhhOSwweDgwLDB4MjIgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4ZjQsMHgyYywweDk5LDB4MDMsMHhhNywweDAyLDB4ODksMHg4MCwweDIyLDB4MzQsMHgwYiwweDlhLDB4MDMsMHg3ZCwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4NDgsMHgyYiwweDYwLDB4MDgsMHgwNSwweDAyLDB4ZTUsMHgwMCwweDgyLDB4MjAsMHgyMiwweGM0LDB4OGIsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNSwweDAwLDB4YjAsMHgxMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4MmEsMHgwMCwweDAyLDB4YTQsMHgwOCwweGE4LDB4MDQsMHhlMCwweDgwLDB4MGIsMHgwMCwweDAyLDB4YzQsMHg0MSwweGIyLDB4MDQgfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4YTQsMHgwYSwweDBiLDB4YjAsMHgwMiwweDhjLDB4ODEsMHg4MywweDIwLDB4NjAsMHg1MCwweDk4LDB4MTIsMHgxMiwweDhiLDB4ODAgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4ODksMHgwMCwweDJjLDB4YzgsMHgwYiwweDMwLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAyLDB4MmEsMHhjMCwweDBhLDB4ODgsMHgwMiwweGE0LDB4MDgsMHhhOSwweDgwLDB4YTIgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4ZTEsMHgxYiwweDljLDB4MjIsMHhlNiwweDAwLDB4YjgsMHg0MCwweDI2LDB4MzAsMHgwYiwweDkwLDB4MDIsMHhjYywweDAxLDB4OTMgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4MDQsMHgyYSwweDQwLDB4MzksMHg5OCwweDgyLDB4ZWMsMHgxNCwweDhiLDB4NjUsMHgyYSwweGMwLDB4MGIsMHhiMiwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlNywweDAwLDB4YjgsMHg0OCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4MGUsMHg4OCwweDQzLDB4ODQsMHgwMCwweGUzLDB4YzEsMHgzNiwweGU4LDB4MGYsMHg5YywweDEyLDB4ZTIsMHg4MCwweGYzLDB4YzAgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4MzYsMHg3MCwweDVmLDB4YTgsMHgyMywweGFjLDB4MDEsMHhjYiwweDA0LDB4MjIsMHg0MCwweDRkLDB4ODQsMHgwMywweGUyLDB4MDAgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4ZTAsMHgwMSwweGIzLDB4MDksMHhmZSwweDEwLDB4M2UsMHg4MSwweDBkLDB4YzAsMHgwMywweDc0LDB4MGMsMHhmZiwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4YzEsMHg4YywweGQwLDB4ODMsMHgxNCwweDAwLDB4Y2QsMHgyMCwweDNhLDB4NDAsMHgwZCwweGNhLDB4MDEsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4MDAsMHgxZiwweDQwLDB4MGUsMHhjMCwweDIzLDB4ZjIsMHg0NiwweGZlLDB4ODQsMHgzNywweGMwLDB4MGYsMHhkOCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGQsMHgwMiwweDNkLDB4NDAgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4YWMsMHgwMCwweGViLDB4NDgsMHgzZSwweGQwLDB4MGMsMHg4MCwweDYzLDB4YTIsMHgwOCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4MzIsMHgwOCwweDBjLDB4YjAsMHgwMywweGFjLDB4MDgsMHhlYiwweDAwLDB4M2UsMHg0MCwweDBjLDB4ZDQsMHg4MywweDU4LDB4MjAgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4ZjksMHg0MiwweDMyLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDIsMHhkYiwweDAwLDB4MmUsMHhlMCwweDI4LDB4M2EsMHgwMiwweDJlLDB4MDAsMHhkYiwweDYwLDB4NzYgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4ZTAsMHgwZCwweDhjLDB4MDIsMHhlMCwweDAwLDB4ODgsMHgwMiwweDM2LDB4NTgsMHg2OCwweDE1LDB4ODMsMHg3YywweDA4LDB4YmYgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4MDAsMHgyZCwweDYwLDB4MDgsMHg5MCwweDAyLDB4YTksMHgwMCwweGIzLDB4MDUsMHgyMywweGMwLDB4MDgsMHhiMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDEwLDB4ODAsMHgwMCwweDBjLDB4YzEgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4MDgsMHgxYywweDgyLDB4MDYsMHgwMCwweDkzLDB4YzAsMHgyMCwweGY2LDB4MGEsMHgyMCwweDAyLDB4MDgsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4MjQsMHg2MCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MmMsMHg2MCwweDA5LDB4MDEsMHgxMiwweDAwLDB4NDAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4YjAsMHgwMCwweGUwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MjAsMHg0MSwweDBhLDB4NDAsMHg4NiwweDgxLDB4MmQsMHhlMCwweDU4LDB4MTgsMHgwYSwweDE2LDB4YTAsMHg5NywweDgwLDB4MjUgfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4ZTksMHgxOSwweDc4LDB4ODIsMHhkNiwweDAwLDB4OTcsMHg4MCwweDI1LDB4YTAsMHgxOSwweGY4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4ODAsMHgyZCwweDYwLDB4MjgsMHg0OCwweDEyLDB4OTYsMHgwMCwweGI0LDB4ODAsMHgyMSwweGUwLDB4MjgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgzMCwweDNjLDB4YzIgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4MGUsMHgwMCwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgyOCwweGU4LDB4NGMsMHgyOSwweDAzLDB4MGMsMHgwMCwweGQzLDB4MDAgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4MzQsMHhjNCwweDBkLDB4MzEsMHgwMywweDhjLDB4MDgsMHhlMywweDAwLDB4M2MsMHg0NiwweDBjLDB4MjAsMHgwMywweDAwLDB4ODAgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4ZjIsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4NDAsMHgxOSwweGI4LDB4MDAsMHhmZiwweDEwLDB4MmYsMHhjMCwweDBmLDB4YzAsMHgyMywweGM0LDB4ODAsMHg3ZiwweDEwLDB4M2UgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4YzAsMHgwZiwweGIxLDB4MDMsMHhkYywweDAwLDB4ZTcsMHgwMCwweDNmLDB4ODAsMHgwNiwweGYxLDB4NDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4MDgsMHg3ZCwweDUwLDB4MGUsMHhlMSwweDIzLDB4YjQsMHgwOCwweGZlLDB4MTAsMHgzZiwweGM0LDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAyLDB4Y2MsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4MmMsMHhjMCwweDAzLDB4MDQsMHgwMSwweGNiLDB4MDAsMHgzMywweDYwLDB4MmMsMHg5MCwweDEzLDB4ZTgsMHgwMCwweDczLDB4MDAgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4YjIsMHhjMSwweDBmLDB4YTAsMHgwMywweGVjLDB4ODAsMHhmYiwweDI4LDB4M2UsMHg1NCwweDFmLDB4ZDAsMHgwMywweGZlLDB4MDIgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4YzksMHg4MCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4NDgsMHgxMSwweDgwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHg4MCwweDA4LDB4MjAsMHgwMiwweDE0LDB4MDgsMHg4NywweDAwLDB4MjkgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDIsMHg1YywweGEwLDB4OTcgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4MjAsMHgyZCwweDQ4LDB4MGIsMHg1MCwweDAyLDB4ZGMsMHgxMCwweDhkLDB4MDAsMHgyMSwweGM4LDB4MGIsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZiwweDAwLDB4ODUsMHg4MSwweDJjLDB4NjAgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4MTgsMHg1OCwweDAyLDB4ZGUsMHgyMCwweGI3LDB4ODIsMHgyOCwweDYwLDB4NWEsMHg3OCwweDUyLDB4ZGUsMHgxMCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4MjEsMHhlMCwweDRiLDB4NzgsMHgwNiwweGRlLDB4NDAsMHhiNywweGEwLDB4MmQsMHg2OSwweDliLDB4NzgsMHgxMiwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4ODcsMHg4MCwweGUxLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4NDgsMHgxNCwweGVlLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDhjLDB4MDgsMHg4MywweGYwLDB4NjggfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4NDAsMHgwYSwweDNlLDB4MDIsMHhjZCwweDQwLDB4YjMsMHgwMCwweDIwLDB4ZTAsMHgwYiwweDMyLDB4MDYsMHg0YywweDAwLDB4OWIgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4MDAsMHgwYywweDQwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHg4MCwweDgzLDB4MDgsMHgyMCwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZGEgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4Y2UsMHgwOCwweDNmLDB4YjAgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4MGMsMHhlNCwweDIzLDB4ZGEsMHgwMiwweGRlLDB4NDAsMHhiYiwweGIyLDB4MGUsMHhlMiwweDQzLDB4ZmEsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MzMsMHg5MCwweDBiLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MSwweDBiLDB4ZTAsMHgxMywweGY5LDB4MDggfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4Y2UsMHg0MCwweDMyLDB4ODAsMHgwZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHg5OCwweDA4LDB4M2MsMHgwNCwweDBmLDB4MDAsMHgwYiwweDYwLDB4MDAsMHhmOCwweDQwLDB4MmUgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4MDMsMHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDYsMHgwYiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZDggfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4MDAsMHgzYywweDAwLDB4MDMsMHg4YywweDIzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4OGMsMHg5MCwweDAzLDB4MjUsMHgwMCwweGU5LDB4ODAsMHgzMiwweDQ0LDB4MGYsMHg5NCwweDAyLDB4ZTQsMHgyMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4MzIsMHg3MCwweDBmLDB4OWEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4MTAsMHgzMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4ZjksMHgwMSwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDgyLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4ODIsMHg4MSwweGMwLDB4YTIgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4NzAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4MzEsMHg0MiwweGEyLDB4NjAsMHgwYiwweDk0LDB4ODIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDgsMHg5NCwweGEyLDB4MjUsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHg2NCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4MDgsMHg5MCwweDQyLDB4YTQsMHgwMCwweDg5LDB4NjAsMHgyMiwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTYsMHgwMCwweGI5LDB4ODAgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4MDQgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDAwLDB4MmMsMHhjMSwweDQ4LDB4MTAsMHgwMiwweGE0LDB4MDIsMHg4MSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4NDAsMHg4MywweDM0LDB4MDIsMHhjNCwweDAwLDB4YmIsMHgwMCwweDIwLDB4ZDAsMHgwYiwweDE0LDB4MDIsMHhjNCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4MjAsMHhhMCwweDY4LDB4MTgsMHgxNCwweDFhLDB4MGQsMHgwMCwweGIxLDB4NDAsMHgyYywweDUwLDB4MGIsMHgxMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4OGMsMHg4MCwweDBiLDB4YTAsMHgwNCwweGU4LDB4MDAsMHgzMiwweDAwLDB4MDcsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4MzIsMHgwMCwweDFmLDB4ODAsMHgwMywweGExLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDYsMHhmZCwweDQwLDB4M2YsMHg1MCwweDIzLDB4ZDQsMHgxMywweDc0LDB4MDQsMHhmNSwweDAyLDB4M2YgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4NTAsMHgwZiwweGQ0LDB4MDMsMHhmZCwweDAwLDB4YmQsMHgwMCwweDJmLDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkNCwweDAzLDB4ZjUsMHgwOCwweGZkLDB4MDYsMHgzZSwweDUwLDB4MGYsMHhkMiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDQwLDB4ZWQsMHgwNCwweDNlLDB4NDggfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4MGMsMHhiMiwweDgzLDB4ZjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4OGMsMHhkMCwweDAzLDB4MzQsMHgwMCwweGZkLDB4MDAgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4MzcsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU2LDB4MjAsMHhmOSwweDg4LDB4M2QsMHg2MiwweDBjLDB4ZDgsMHgwMywweGZlLDB4MjQgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4YzEsMHgwMCwweDNlLDB4NzgsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHg4OCwweDQwLDB4MmUsMHgxMCwweDA4LDB4YzQsMHgyMywweGEwLDB4MDgsMHg4OCwweDA2LDB4MmEgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4MTQsMHgwOCwweDgwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMiwweDAwLDB4YjggfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4ODAsMHgyZSwweDAwLDB4MDgsMHg4YywweDAyLDB4ZTMsMHg4MCwweDg4LDB4MDIsMHgyZSwweDM4LDB4MGIsMHg4OCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDgwLDB4YTEsMHhjMCwweDJkLDB4NzAgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4MDgsMHg1MCwweDQyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweGUwLDB4MmEsMHgxMCwweDBhLDB4MDQsMHgxMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4MjQsMHg0MCwweDRiLDB4MTAsMHgwNiwweGM0LDB4MjAsMHhiMSwweDA4LDB4NmUsMHg0MCwweDBiLDB4MTYsMHg4MiwweGM0LDB4MjAgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NTAsMHgwYiwweDkyLDB4ODIsMHg1MiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhhOSwweDAxLDB4MmUsMHg0MCwweDI4LDB4ZDAsMHgyMCwweGE0LDB4MDQsMHhhOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4NDAsMHgxYSwweGIwLDB4MTIsMHgyNCwweDAwLDB4YjksMHgwYywweDIyLDB4NDIsMHgwYiwweDk0LDB4MDIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4MDAsMHg2ZSwweDQwLDB4MGIsMHg5NiwweDAyLDB4ZTQsMHgxMSwweDg5LDB4MjAsMHg2ZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweGMwLDB4YTksMHhjMCwweDNlLDB4NTAgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4MDgsMHg5YywweDgzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHhiMiwweDQwLDB4MmEsMHg5MiwweDEyLDB4MjYsMHg0MCwweGY5LDB4NDAgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4MzYsMHg3MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDQsMHhmOSwweDAxLDB4M2MsMHg0MCwweDBmLDB4OTgsMHgwMywweGU2LDB4MDIgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4YzksMHgyMiwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDIsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDQsMHhkOSwweDQwLDB4MWMsMHg0MCwweDBmLDB4OTIsMHgyMywweGE0LDB4YjAsMHhkYiwweDA0LDB4M2MgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4YzAsMHgwZCwweDlhLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDQsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4MDAsMHgzZSwweDQyLDB4MmMsMHg5MCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MiwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgyMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NGMsMHhjMCwweDhiLDB4MjAsMHgwMiwweGM4LDB4MzEsMHgzMiwweDIwLDB4MmQsMHg4NCwweDAzLDB4ZTEsMHgwNCwweGY4LDB4NDggfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4YmEsMHgwMCwweDBmLDB4ODksMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBkLDB4ODEsMHgxMywweDIwLDB4MTAgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwZiwweDgxLDB4MjMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHgwZSwweDQwLDB4MjIsMHg4MCwweDI4LDB4YTQsMHgwMiwweDE5LDB4MDAsMHg1MiwweDgwLDB4YTIgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4ODAsMHg0ZCwweGVkLDB4ODIsMHhlOCwweDAwLDB4YjYsMHg0MiwweDIzLDB4YmQsMHgwYiwweGU4LDB4MDIsMHhlOCwweDA0LDB4ZGEgfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4MDAsMHgzNywweDgwLDB4MDgsMHhlMCwweDAyLDB4M2EsMHgyMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhOCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHg4MCwweDYwLDB4YzAgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4MDgsMHgyOSwweDAyLDB4MGQsMHgwMCwweDkyLDB4NDAsMHgyNCwweGMwLDB4MDgsMHhiNCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4NjgsMHhlMCwweDFiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg5MywweDAxLDB4MjQsMHhjMCwweDY5LDB4MzgsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHg4MywweGMwLDB4MjAsMHg0MCwweDA4LDB4MjgsMHgwNiwweDljLDB4MTgsMHg5YywweDAyLDB4MjQgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4YzAsMHgwOSwweDcwLDB4MDIsMHhkNCwweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhjZSwweDQwLDB4OTcgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4YjAsMHgyNSwweDQwLDB4MDgsMHg3OCwweDFhLDB4NTgsMHgwMCwweGJmLDB4YTIsMHg2NSwweGM4LDB4MGIsMHg3OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwZSwweDAyLDB4ODcsMHg4MCwweGIxLDB4YTAgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4MGMsMHg2OCwweDAzLDB4MWEsMHgwOCwweGQ2LDB4OTIsMHgzNSwweGU0LDB4MjgsMHg3OCwweDQyLDB4ZDYsMHgxMCwweGY1LDB4ODAgfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4MzksMHhhMCwweDBmLDB4NzgsMHgyMywweGRlLDB4MzAsMHhkMywweGEyLDB4MzUsMHhhMCwweDRkLDB4ZTgsMHgwMywweDVlLDB4MDAgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4ZjcsMHhkMCwweDNkLDB4ZjgsMHgwZiwweGYwLDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHgwMCwweDBiLDB4YTAsMHgwMywweDQ4LDB4MDQsMHhmYSwweDQxLDB4M2EgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4NTAsMHgwZiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlZCwweDg4LDB4ZmIgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4NGQsMHgzZSwweDAwLDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwOCwweGZiLDB4MjAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZGMsMHg4MCwweGIzLDB4ZTAgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4MGMsMHhkOCwweDAzLDB4Y2UsMHgwMCwweGM4LDB4YTAsMHgzMSwweGEwLDB4OGQsMHhlOSwweDAzLDB4YmUsMHgwMCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZTgsMHg0MywweDdlLDB4MDQsMHgwZiwweDgxLDB4MzEsMHhlNCwweDBjLDB4ZDgsMHgwMywweGY2LDB4MDAgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHgwMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNCwweDQwLDB4MzUsMHg0MCwweDA4LDB4NTAsMHg4MiwweGRlLDB4ODAsMHhkNCwweDkwLDB4MjEgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4ZTAsMHgwZCwweDUxLDB4MDIsMHhkNCwweDQwLDB4YjYsMHhiMCwweDJiLDB4OTAsMHgwZSwweGU1LDB4MDIsMHg5YywweDQwLDB4ZDcgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4MjIsMHgxOSwweDVjLDB4MGQsMHg3MCwweDAyLDB4ZDgsMHgwMCwweGI3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHhmMCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4OTMsMHgxMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZGMsMHhjMCwweDk0LDB4MDAsMHgyMywweGQwLDB4MDgsMHg3MCwweGEwLDB4ZDQsMHgyMCwweGI1LDB4MDIgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MjksMHg4MCwweDA5LDB4NjAsMHg4MiwweDBjLDB4MDAsMHg4NywweDAyLDB4MjUsMHhjMCwweDE5LDB4NDAsMHgwMiwweGQ0LDB4MDAgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4YjcsMHgwMCwweDZkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MjAsMHgxNCwweGVjLDB4MDAsMHhiMywweGMwLDB4MjAsMHgwMSwweDQ4LDB4MTgsMHgwMiwweGNjLDB4MDIsMHg4MSwweDQ0LDB4YTAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4YzAsMHg4OSwweDM4LDB4MDIsMHhjNywweDgwLDB4YjEsMHgwMCwweDJjLDB4MDksMHg0YSwweDAwLDB4NjIsMHhhYywweDA5LDB4OTMgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4MDEsMHgyOCwweDQwLDB4MTksMHgzMCwweDAyLDB4Y2QsMHgxMCwweGIzLDB4OTAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDIwLDB4ZGIsMHg2MiwweDIyLDB4ZTAgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4NmMsMHhhMCwweDAzLDB4ZTQsMHgwMCwweDk4LDB4MDAsMHgzMiwweGMwLDB4ZWMsMHg5OCwweDIzLDB4YWUsMHgwOCwweGZiLDB4MDggfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4M2EsMHg3OCwweDA5LDB4OTAsMHgwMywweDdjLDB4MTAsMHhjZiwweDAwLDB4MjYsMHg0MCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhmYiwweDQ4LDB4M2MsMHg2MSwweDBmLDB4YTAsMHg0MywweGVkLDB4MDAsMHhmOCwweDI0LDB4M2UgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4NTAsMHgwZiwweDkwLDB4ODMsMHhlNCwweDAwLDB4ZmIsMHgwMCwweDNhLDB4NTAsMHgwZiwweDgwLDB4NDMsMHhlYywweDA4LDB4ZmIgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg0MCwweDAzLDB4ZjAsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMxLDB4MGYsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGQsMHhhMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4MGMsMHhlMCwweDAxLDB4ZmMsMHgwMCwweGRjLDB4OTEsMHgzOSwweGMwLDB4M2MsMHg0MCwweDAzLDB4MzQsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZDAsMHgwNywweGZjLDB4MDAsMHhjYiwweDAwLDB4M2QsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM4LDB4MjAgfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4Y2YsMHgwMiwweDNkLDB4YzAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHgwMSwweDQwLDB4MjIsMHgwMCwweDI4LDB4YTAsMHgwMiwweGNlLDB4ODYsMHg4MywweDY0LDB4MjIgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4ZjQsMHgwOCwweDhjLDB4MGYsMHg2NCwweDAwLDB4YmIsMHgxMCwweDJlLDB4NjAsMHgwYiwweDljLDB4MDMsMHhhYywweDAxLDB4ZGIgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4MDAsMHgzZSwweDYwLDB4MDgsMHg4ZiwweDAyLDB4MjMsMHg0MCwweDhiLDB4MDAsMHgzYSwweGMwLDB4MGQsMHgxMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OTksMHgwMCwweGEyLDB4YzAgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4YTYsMHgwNywweDk4LDB4MDAsMHgwMiwweGMyLDB4NDgsMHg4OCwweDAyLDB4MmMsMHgwMCwweGJhLDB4MDIgfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4NmUsMHg2MCwweDBhLDB4OTgsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAxLDB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMiwweDA1LDB4MDAgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIxLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MSwweDAwLDB4MjAsMHg0MCwweDI4LDB4MTAsMHgyNiwweGNjLDB4ODAsMHg4MCwweDIwLDB4YTAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4Y2MsMHgxOCwweDE0LDB4NDIsMHgwNCwweDAwLDB4YjIsMHgyMCwweDZjLDB4NDAsMHgwYiwweDAwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4MDAsMHgyOCwweDQwLDB4MjgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDksMHhiMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZDksMHgwMCwweDIyLDB4ODAgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YWMsMHg4MCwweGRhLDB4MjksMHgyYSwweGQyLDB4MjgsMHg4MCwweDAyLDB4MjQsMHgwMCwweGZiLDB4MjAgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4OTAsMHgwMiwweGZjLDB4MDAsMHg4ZiwweDAwLDB4MmUsMHg0MCwweDBjLDB4ODAsMHgwYiwweDIwLDB4MDIgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4Y2YsMHgwMCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZDAsMHg2MywweGZjLDB4NDksMHhmNSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4YzAsMHgwYiwweGMwLDB4MDEsMHhmNCwweDAwLDB4N2YsMHg0MCwweDNmLDB4NDAsMHgxZiwweGQwLDB4MDMsMHhiYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMiwweDQwLDB4ZWMsMHhhMCwweDNmLDB4ZTAgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4MGQsMHg0OCwweDAzLDB4N2QsMHg4MCwweGY0LDB4ODAsMHgzMywweDZjLDB4MGUsMHhjOCwweDAzLDB4MzIsMHgwMCwweGRkLDB4OTAgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4M2IsMHhhMCwweDJkLDB4ZjAsMHgwMywweGZjLDB4YzAsMHhmZiwweDAwLDB4M2IsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MDQgfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4ZWMsMHg2MCwweDMxLDB4MDAsMHgwYywweGYwLDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4ODAsMHgxMCwweGVjLDB4MDAsMHhkOSwweGMxLDB4MmUsMHhlMSwweDBkLDB4ODgsMHgwMiwweDNjLDB4ODAsMHhmOCwweDgwLDB4MzYgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4N2QsMHgxOCwweGEwLDB4MDIsMHgyOCwweGIwLDB4ZWEsMHgyMCwweDIyLDB4MjAsMHgwOCwweDc3LDB4MDIsMHhmZCwweDUwLDB4YmIgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ODAsMHgyMiwweDQwLDB4MGIsMHhmNCwweDQyLDB4M2QsMHg4MCwweDg4LDB4MzEsMHgyMiwweDEyLDB4MDgsMHhmNiwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4ODAsMHgxMSwweDJlLDB4YzEgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NGQsMHg4MCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MGEsMHgwMiwweDgyLDB4MDAsMHgwMCwweDk5LDB4MjAgfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4MzAsMHg4MiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhjYSwweDBiLDB4MzQsMHg4MiwweDBkLDB4MjAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4ODAsMHgwMCwweGEwLDB4OGMsMHgwOCwweDM0LDB4ODIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg5OSwweDgwLDB4MmUsMHhjMiwweDA5LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhhOSwweDgwLDB4MjYgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4NjAsMHgwOCwweDM4LDB4NDIsMHgyMiwweDIwLDB4YmEsMHg0MSwweDYyLDB4NDYsMHgzYiwweGIwLDB4MDIsMHhlYywweDAxLDB4YmIgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4ODAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDQ2LDB4MGMsMHgxOCwweDg4LDB4YzAsMHgyMiwweDIyLDB4MDgsMHhiMCwweDA2LDB4ZjAgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhjYywweDAwLDB4YzksMHg4MSwweDNjLDB4YzEgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4MGMsMHhhOSwweDIzLDB4NmMsMHgwMCwweGIyLDB4ODAsMHgzMiwweDc4LDB4MGEsMHg4YSwweDBiLDB4MjYsMHgwMCwweDk5LDB4MDEgfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MzAsMHhlMCwweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhiOSwweDAwLDB4M2EsMHhjMCwweDFlLDB4YjAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4Y2IsMHg4MCwweDMyLDB4NjEsMHgwYywweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhkZCwweDAwLDB4M2YsMHhjMiwweDBmLDB4ZTgsMHgwMywweGFjLDB4MDAsMHhmZSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4NDAsMHgwZiwweGMwLDB4NDMsMHhmOCwweDEwLDB4ZWYsMHgxNCwweGI3LDB4ZTAsMHgwYywweGYwLDB4MDMsMHhmYywweDAwLDB4ZjUgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4MDIsMHgzZiwweDQ0LDB4NGYsMHhiMCwweDRiLDB4ZmMsMHgwMiwweGQ0LDB4MDQsMHgzZCwweDQwLDB4MmYsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwOCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MGQsMHhhMCwweDAzLDB4YWMsMHgwMCwweGU4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHg4NCwweDAzLDB4YTUsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4M2EsMHhkOCwweDBmLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4Y2IsMHg0NCwweDNlLDB4ZDQsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDgsMHhiOSwweDgwLDB4MmUsMHhjMCwweDBhLDB4MzAsMHg0MiwweDNjLDB4MDAsMHg4OSwweDA0LDB4NzYgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4NjAsMHgwOCwweDkwLDB4NjIsMHgyMCwweDAwLDB4ODIsMHgwNCwweDIyLDB4ZDAsMHgwOCwweGYwLDB4NDMsMHg3YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4ODIsMHgyMiwweDQwLDB4MGIsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhhLDB4YzAsMHgyZSwweGMxLDB4MDgsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDEwLDB4YjIsMHhkMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MjksMHgxOCwweDAyLDB4OGMsMHgwNCwweGExLDB4MDAsMHgyNCwweDljLDB4MDgsMHgxMCwweDAyLDB4ODAsMHgwMCwweGExLDB4MDEgfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MGMsMHhjMSwweDJiLDB4MzAsMHg1MiwweDhjLDB4MDQsMHhiMywweDAxLDB4MjgsMHg0MCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4OTAsMHgyMCwweDJjLDB4MjAsMHgwYSwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MjAsMHg0MSwweDFlLDB4MDAsMHhiNywweGEyLDB4MjUsMHhlOCwweDhhLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NSwweDgwLDB4MjUgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4ODAsMHg4OCwweGU4LDB4MDIsMHgzZSwweDAwLDB4ODUsMHg4MCwweDJmLDB4ZTQsMHgyOCwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4ODAsMHg2MSwweGUwLDB4MDMsMHg3OCwweDAyLDB4NWUsMHg4MiwweGI3LDB4ODIsMHgyZCwweGUwLDB4MDgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwZCwweDAwLDB4ZjAsMHgxMCwweDNjLDB4ODAgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4MGQsMHgxMCwweDgzLDB4OGMsMHgwMCwweGUyLDB4NTAsMHgyNiwweDA0LDB4MGMsMHgxMSwweDAzLDB4ODgsMHg0MCwweGViLDB4MDAgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4M2MsMHhjNCwweDBmLDB4MzAsMHgwMywweDhjLDB4MDAsMHhmMywweDA4LDB4MzgsMHg0MCwweDA3LDB4MzAsMHgwMywweDZlLDB4NDAgfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4ZDAsMHgwOCwweDNjLDB4ODgsMHgwZSwweDMwLDB4NDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmYiwweDM0LDB4M2MsMHhjOSwweDRlLDB4YjAsMHgyMywweGVkLDB4MjAsMHhmYiwweDA0LDB4M2YgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4NTMsMHg0YywweDAwLDB4ZWIsMHgxMCwweDMxLDB4YzUsMHgwZSwweGY0LDB4MDMsMHg2ZCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDBiLDB4YmMsMHgwMCwweGNkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDgzLDB4ZDAgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhjZSwweDA0LDB4YzksMHgwNCwweGIwLDB4YzEgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4MGYsMHg5OCwweDEzLDB4NmMsMHg5MCwweGNiLDB4MDIsMHgzZSwweGMwLDB4NGYsMHhiMCwweDYzLDB4ZTQsMHgwMCwweGYxLDB4ODAgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MTIsMHhjMCwweDBjLDB4YjUsMHgwMywweGVjLDB4YzAsMHhjZiwweDgzLDB4MzIsMHg0MCwweDBmLDB4YjMsMHgyMywweDJkLDB4YTQgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4ZmIsMHgwMCwweDNlLDB4MDAsMHgwZiwweGI0LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCwweDJkLDB4NjAsMHgwMiwweDFjLDB4MDAsMHhkNywweDAwLDB4MzkgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkYywweDAwLDB4YjUsMHgwMCwweDIxLDB4YzAsMHgyYSwweDcwLDB4MTIsMHhjYywweDgwLDB4ODcgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MiwweDUyLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweDQxLDB4MGIsMHgzMiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHhiZSwweDAwLDB4ODEsMHhjMCwweDIzLDB4MjAgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4MGIsMHhkOCwweDAyLDB4NWUsMHgwMCwweDA2LDB4YzAsMHgyZCwweGEwLDB4MGIsMHg3YywweDEyLDB4ZGUsMHgwOCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4YTEsMHhlMiwweDJhLDB4N2EsMHgwMiwweGRlLDB4MDAsMHg5MywweDgwLDB4MjUsMHg2MCwweDBiLDB4NzgsMHgxZSwweDVlLDB4NTAgfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4YjcsMHg4MCwweDJkLDB4YTAsMHgwYiwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4NDgsMHgxNCwweGNlLDB4MDAsMHg4MywweDYwLDB4MjAsMHhjMCwweDA5LDB4MzEsMHgwMiwweDJjLDB4MDAsMHg5MywweDAwLDB4MjggfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4YzAsMHgxYiwweGIwLDB4MDYsMHhjYywweDgwLDB4YjMsMHg0OCwweDIwLDB4ZjAsMHgwYSwweDMwLDB4MDIsMHhlYywweDAwLDB4OTMgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4ODAsMHgyNCwweGMwLDB4MGIsMHhiMCwweDAyLDB4NGMsMHgxMCwweGIzLDB4YzgsMHgyYywweGQyLDB4OGIsMHgzMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDAwLDB4YzYsMHhjNCwweDMxLDB4ODEgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4NjgsMHgwMCwweGNlLDB4ODAsMHgzZiwweGEyLDB4MGIsMHhlOCwweDAzLDB4ZjksMHgwMCwweGZlLDB4NDAgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4MzEsMHg4MCwweDZlLDB4YTAsMHgwNywweGU4LDB4MDAsMHhkYSwweDAwLDB4MjYsMHg4MSwweDBmLDB4YTAsMHgwMiwweDY4LDB4MDEgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4ZjYsMHhlMCwweDNkLDB4OTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4YzIsMHhmOCwweDA0LDB4M2UsMHgxNCwweDBmLDB4ODAsMHgxMywweGUwLDB4MTAsMHhmOCwweDAxLDB4M2UgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MTAsMHgwZiwweDgwLDB4NDMsMHhlMCwweDAwLDB4YjgsMHgwMCwweDNlLDB4MDAsMHg0NywweDgwLDB4MDMsMHhlMCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDA3LDB4YTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGYsMHg4MCwweDBiLDB4ZDIgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4OGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzNiwweDQyLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwYiwweDY0LDB4MDAgfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4ZjksMHg5MCwweDMyLDB4NDEsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweGM4LDB4YTIsMHg2MCwweDBhLDB4OTIsMHgwMiwweGU0LDB4MDAsMHg4OSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4NTgsMHgwYiwweDkwLDB4MDIsMHgwNCwweDAwLDB4ZDksMHgwMCwweDJlLDB4NDIsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4ODkgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDA2LDB4MjQsMHgwNCwweGI5LDB4MDgsMHgyYSwweDQwLDB4NDgsMHg5MCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgxMCwweDIyLDB4NDQgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQ1LDB4OGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MmEsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg5OSwweDgwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgyNiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4YjksMHgwMSwweDIyLDB4NzAsMHgwOSwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDgsMHhiMSwweDIwLDB4MjAsMHg0MCwweDBhLDB4MTAsMHgwMiwweGM0LDB4ODAsMHg4MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4NTAsMHg0YiwweDEwLDB4MDIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDJlLDB4NDAsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4YTIsMHg2YywweDQwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweGI5LDB4MjAsMHgyYSwweDQ4LDB4MjksMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZTEsMHg0MiwweGM4LDB4MDAsMHgzMiwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4M2EsMHgwMCwweDhkLDB4ODUsMHgwMywweDYxLDB4NDAsMHhkOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4MDUsMHgwMywweDIxLDB4NDAgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwZCwweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDQsMHhmZCwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGM0LDB4NDAsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4NTEsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgwMSwweDNkLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4MTAsMHgzZiwweDRhLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZiwweDQ0LDB4MGUsMHg5MSwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhjNSwweDAwLDB4Y2QsMHgwMCwweDMxLDB4NDAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4MGQsMHhkMCwweDQzLDB4ZTQsMHgwMCwweGNkLDB4MDAsMHgzMywweDQwLDB4NGYsMHgxMSwweDAyLDB4ZTQsMHgwNCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4M2QsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlZCwweGE0LDB4MzIsMHg1MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDgsMHhkOCwweDAwLDB4MzIsMHgwMSwweDAwLDB4ODAsMHgxMiwweGMwLDB4MDAsMHg0OCwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4ODAsMHgwYiwweDhhLDB4MDIsMHhlMCwweDAwLDB4YTgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MDIsMHhlMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4NTAsMHgzNCwweDI4LDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHg4MCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDksMHgxOCwweDAyLDB4YzQsMHgwOCwweDIxLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDEgfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MmUsMHg0MCwweDE4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDAxLDB4MjAsMHg0OCwweDFiLDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4YjEsMHgwMCwweDZjLDB4NDAsMHgwYiwweDEwLDB4MTIsMHhjMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHg5OSwweDgwLDB4YTIsMHg0MiwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDJhLDB4MjYgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4NDQsMHgwYiwweDkwLDB4ODIsMHhjNCwweDgxLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDIsMHhjNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDEsMHgyZSwweDQxLDB4MGIsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNSwweDIwLDB4YzksMHg4NCwweDMwLDB4NzAgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4MGQsMHg5MCwweDEzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHgzMiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAgfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4M2MsMHg0OCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMSwweGU0LDB4MDAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4ZjksMHg5MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MjYsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDAsMHhmMSwweDA0LDB4M2EsMHg0NCwweDhmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhjOSwweDA0LDB4M2UgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4NjAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDA3LDB4Y2EgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgwNCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4MWUsMHg4MCwweDAzLDB4ODAsMHgwMywweGM4LDB4NDAsMHgyYSwweDA0LDB4MWYsMHg4MCwweDAzLDB4MjAsMHgwMCwweDg4LDB4MDAgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4MzIsMHgzMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4YzgsMHg4MCwweDNlLDB4MjAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhhZSwweGQwLDB4MzcsMHg4MCwweDA4LDB4ZWMsMHg0NiwweDM4LDB4MDAsMHhkNiwweDA0LDB4MjMgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4YTAsMHgwYiwweGEwLDB4NDEsMHg3OCwweDA0LDB4ZmEsMHgwMCwweDM3LDB4ODAsMHgwZCwweGEwLDB4MDIsMHhhOCwweDEwLDB4ZWUgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4MjEsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZTgsMHgwOCwweDhlLDB4ODAsMHgyZiwweGEwLDB4OGIsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg0YywweDAyLDB4ODMsMHhjMCwweGE4LDB4ZTggfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4NGEsMHgzNiwweDAyLDB4OGMsMHgwMCwweDEzLDB4YTAsMHgyOCwweGMyLDB4MGIsMHgzMCwweDA2LDB4MGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4MjQsMHg4NCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDIwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4ODMsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4NDQsMHhhZiwweDQwLDB4MjUsMHhjMiwweDQ4LDB4ZjgsMHg4MiwweDFjLDB4YzgsMHg5ZiwweDA4LDB4MjEgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4YzAsMHg4YiwweGY4LDB4MDIsMHg1YywweDAwLDB4YmYsMHhiMCwweDI3LDB4ODAsMHgwOSwweDNhLDB4MDIsMHg5YywweDAwLDB4YTUgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4MDIsMHgyZCwweGU4LDB4MDksMHg3MCwweDAyLDB4Y2UsMHg4MCwweDg1LDB4MDgsMHgyZCwweGMyLDB4MGIsMHg3MywweDAyLDB4ZTggfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MiwweGE5LDB4ZTAgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MGEsMHg3OCwweDAyLDB4OWUsMHg0MCwweDk3LDB4ODQsMHgzOSwweGEwLDB4MGIsMHg3YSwweDgzLDB4M2YsMHg4MCwweGQ3LDB4OTEgfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4MzUsMHhhMCwweDBkLDB4N2EsMHgwOSwweDFlLDB4NDQsMHhmNywweDgwLDB4M2QsMHhlOCwweDJkLDB4N2EsMHgwMywweGRlLDB4ODIgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4YzYsMHg4MCwweDNkLDB4MjAsMHg0YiwweDdiLDB4MjMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhkMywweDAwLDB4M2UsMHhjMSwweDBmLDB4MzAsMHgwMywweGVkLDB4ODAsMHhlMywweDAwLDB4M2UgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4ODAsMHgwZiwweGI2LDB4MjEsMHhlYywweDA4LDB4ZGIsMHgyMSwweDNlLDB4ODAsMHgwZiwweGI1LDB4MDMsMHg2YywweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4MDAsMHgzZSwweGRjLDB4MGUsMHhiMiwweDAzLDB4ZWQsMHg0MCwweGY5LDB4MDIsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4MGYsMHhjOCwweDQzLDB4ZmUsMHgwMCwweGZlLDB4ODQsMHgzZiwweGUwLDB4MGQsMHhmOCwweGMzLDB4ZmYsMHgxMCwweGFmLDB4OTAgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4ZmMsMHgwMywweDNlLDB4MTQsMHhlYywweDg0LDB4M2YsMHhmMCwweDBlLDB4ZmMsMHhjMywweGZmLDB4MDggfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4NGYsMHg4MCwweDMzLDB4ZTQsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhkNywweGEyLDB4MmQsMHhjNCwweDBjLDB4NDEsMHhjMiwweGRjLDB4MDAsMHg3NCwweDAwLDB4MjUgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4ODAsMHgwZiwweDcyLDB4NDIsMHhkYywweDkwLDB4ZDcsMHgzOCwweDJkLDB4OTgsMHgwYSwweDcwLDB4MDIsMHgxYywweDA0LDB4ODYgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHg3MCwweDAyLDB4Y2MsMHgwMCwweDg2LDB4MDgsMHgzNywweGM2LDB4MjgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHg2MCwweDJkLDB4YzIgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4MGEsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGI2LDB4MTAsMHgyNSwweGMyLDB4MDksMHg3MCwweDg2LDB4ZGMsMHgzMCwweDk3LDB4MDAgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4MzAsMHgwMiwweDVjLDB4MDAsMHg4NywweDA4LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGNjLDB4NDAgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4ODYsMHgwMCwweDIxLDB4MDAsMHgwOSwweDcwLDB4MGEsMHgwMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MjAsMHgxNCwweGVkLDB4ODAsMHg5MywweDAwLDB4MGMsMHhlMSwweDI4LDB4MTgsMHgwMiwweGNjLDB4MDgsMHhhMCwweDAwLDB4MjQgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4MTIsMHgxYSwweDM0LDB4MDIsMHhjZiwweDA0LDB4OTMsMHg0MCwweDJjLDB4ODAsMHgwYSwweGIwLDB4MjIsMHg0YywweDAyLDB4ODEgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4ODAsMHgyOCwweGUwLDB4MjgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDg4LDB4ODIsMHgyNCwweDIwLDB4MDgsMHhiMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZiwweDIwLDB4YzksMHhlMCwweDJjLDB4ZjEgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4MGUsMHhiZCwweDAzLDB4ZmMsMHgwMCwweGI5LDB4NDAsMHgzNiwweDQwLDB4MDksMHhmNSwweDAyLDB4ZmQsMHg0MCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4MzYsMHhhMiwweDA4LDB4ZjAsMHgwYiwweDdjLDB4MDAsMHhlYiwweDgwLDB4MmYsMHhlMCwweDBhLDB4ZjAsMHg0MywweGZjLDB4MDIgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4OGIsMHhkMCwweDMyLDB4ZjAsMHgwZCwweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHhjOCwweDBmLDB4OTQsMHgxMywweGVjLDB4MDAsMHhmOSwweDQwLDB4MzYgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4NDAsMHgxZiwweGIwLDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMSwweDNlLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgzZSwweGM0LDB4MGYsMHhiMCwweDAxLDB4ZWMsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4MGMsMHhlMCwweDA3LDB4ZmMsMHgwMCwweGZjLDB4MGEsMHgyNywweDAwLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDggfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4MzMsMHg4MCwweDBjLDB4ZjAsMHgwMCwweDJjLDB4MDAsMHg1ZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMSwweGZjLDB4MDAgfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4ZmUsMHgwMCwweDIzLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDg2LDB4MmUsMHhlMCwweDQ4LDB4OGYsMHgwMiwweGVjLDB4MDgsMHhiOCwweGEwLDB4MzYgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4MzAsMHg0YiwweGIwLDB4MDMsMHhhYywweDBjLDB4OWIsMHgwMiwweDNjLDB4YTAsMHgwYywweGIwLDB4NDMsMHg2YywweDAwLDB4YjEgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MGQsMHhiMCwweDEyLDB4ZWMsMHgxMCwweGI5LDB4ODAsMHhhMiwweDYxLDB4MGIsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OWIsMHg4OCwweDJlLDB4ZTAgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4ZWMsMHgwMSwweGJiLDB4ODAsMHgyNiwweDYyLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGIzLDB4MDEgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4MmEsMHgyMSwweDA4LDB4YjAsMHgxMiwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MTQgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4YjksMHg4NCwweDIyLDB4YTIsMHgwYiwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg5MywweDAwLDB4MmMsMHhlMCwweDA4LDB4MDAsMHgwMiwweGNjLDB4MDksMHg5MSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4NDAsMHgwYiwweDMwLDB4MDYsMHg0YywweDA0LDB4MTMsMHgwMCwweDI2LDB4MDAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA0LDB4YjIgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4MDAsMHgyYSwweGMwLDB4MDEsMHgzMCwweDAwLDB4Y2QsMHgwMCwweGIwLDB4MDAsMHgyMCwweDgwLDB4MGIsMHgzMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgyNCwweDZlLDB4YzAgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4MmMsMHhhMCwweDAyLDB4ZmMsMHgwMCwweGJhLDB4MDQsMHgyNiwweDQwLDB4NGYsMHhmMCwweDU3LDB4ZmMsMHgwMCwweDNmLDB4MDEgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4M2EsMHgwMCwweDJjLDB4ZjAsMHgwMSwweDNjLDB4MDAsMHhkYiwweDAwLDB4MzMsMHhjMCwweDg0LDB4ZjAsMHgwMywweGZkLDB4MDggfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4MDAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4YTAsMHgxOSwweGRjLDB4MDAsMHhlYSwweDQwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGZjLDB4MDQsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4NDAsMHgwZiwweGYwLDB4MDMsMHg5YywweDAwLDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZSwweGYwLDB4MDMsMHg3YywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4NCwweGY0LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMCwweDgwLDB4ZmYsMHgwMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4MGYsMHhjMiwweDAzLDB4M2UsMHgwMCwweGRmLDB4YzAsMHgzZSwweGMwLDB4NGQsMHhkYiwweDAyLDB4YjAsMHhjMCwweGRjLDB4MzAgfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZGIsMHgyMywweGY2LDB4MjAsMHhmZiwweDI2LDB4MzMsMHhlMCwweDBmLDB4NTIsMHgwMywweDVlLDB4MDAgfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4YzAsMHg0YywweDQ5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4ODAsMHgxMCwweGUxLDB4ZTAsMHhiNywweDA4LDB4MjMsMHhmMCwweDBiLDB4YWQsMHgwYSwweDJlLDB4MDAsMHg5YSwweDA0LDB4MmUgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4YjAsMHgwOSwweDhmLDB4MDMsMHhhMCwweDQwLDB4YjksMHgzMCwweDJlLDB4YTAsMHgwYiwweDlmLDB4MDMsMHhhNywweDAwLDB4YmIgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4ODAsMHgyNiwweGUwLDB4MGIsMHhkZCwweDAyLDB4MmUsMHgwMCwweGJiLDB4ODAsMHgyMiwweGY0LDB4MGEsMHg5MiwweDAyLDB4YTAgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDgwLDB4YjMsMHgxMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4MGIsMHg4MCwweDAyLDB4YWMsMHgwMCwweGEzLDB4MjQsMHgyYywweGQwLDB4MDgsMHgxMCwweDA2LDB4YzAsMHg4MCwweGIyLDB4MDEgfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MmMsMHhlYSwweDRiLDB4MDAsMHgxMiwweGMyLDB4MDQsMHhiMywweDEwLDB4MDgsMHhjMCwweDBhLDB4OTAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4OTMsMHgwNCwweDI0LDB4YzAsMHgwOSwweDgyLDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4YzAsMHgxNSwweGE1LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4ODAsMHgwMiwweGFjLDB4MDgsMHhiYiwweDE4LDB4MmUgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4ZTAsMHgxOCwweDg4LDB4MDIsMHhlYywweDAxLDB4YmEsMHgwMCwweDJlLDB4ODAsMHgwYiwweDk4LDB4ODYsMHhlMiwweDAwLDB4YmIgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4MDAsMHgyMiwweGM0LDB4MGIsMHg5MCwweDAyLDB4NmMsMHgwMCwweGJiLDB4MDAsMHhhNiwweGMwLDB4MGIsMHg5MCwweDAwLDB4YjAgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNywweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4MGYsMHhhOCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweDYwLDB4MGQsMHg5ZSwweDAzLDB4ZWMsMHgwMCwweGQ4LDB4NDAgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4ODgsMHg0MywweGUyLDB4MDAsMHhmYiwweDIwLDB4MzIsMHhjMCwweDBmLDB4MTAsMHgwYiwweDZmLDB4OTAgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4NWIsMHg4MiwweDM2LDB4YzAsMHgyZCwweDA4LDB4MDEsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4ZTAsMHgwMSwweGI3LDB4MDgsMHhmNywweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjksMHgwMywweDdjLDB4MDgsMHhjZiwweDgyLDB4M2MgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MDAsMHhhZiwweGQwLDB4MjEsMHhiYywweDA4LDB4ZmQsMHgxMCwweDNmLDB4ODAsMHg4ZiwweGMwLDB4MDMsMHhhNCwweDAwLDB4ZjcgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4MDEsMHhiZiwweGMwLDB4MDcsMHhkMCwweDAzLDB4YmQsMHgzMCwweGZmLDB4YTQsMHgzOCwweGMwLDB4MGUsMHhkYSwweDAzLDB4ZjggfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOCwweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzEgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4MGUsMHg4MSwweDAzLDB4ZWMsMHg0MCwweGZiLDB4NDQsMHgzYSwweGMxLDB4MGUsMHg5NSwweDAzLDB4ZTAsMHgwMCwweGNiLDB4NDEgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MzIsMHg0ZCwweDBmLDB4ODEsMHgwMywweGUwLDB4MjAsMHhjOSwweDAwLDB4NzIsMHhlOCwweDQ0LDB4OTEsMHgwMywweDZkLDB4MDAgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4Y2IsMHgwMiwweDNlLDB4YzAsMHgwYywweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4YzgsMHgwNSwweDI0LDB4MDAsMHhiZiwweDAwLDB4MzMsMHhjNCwweDA4LDB4MWQsMHgwMywweDhjLDB4MDAsMHhiYiwweDk4LDB4MzYgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4NDgsMHg0ZCwweDk4LDB4MjIsMHhlZCwweDQwLDB4ZGIsMHgwMCwweDM2LDB4YjAsMHgwYiwweDk4LDB4MDIsMHhlMywweDAwLDB4ZGIgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4MDAsMHgzMiwweGUwLDB4ODgsMHhkOCwweDAyLDB4MmMsMHgwMiwweGMzLDB4ODAsMHgyZiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NzIgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg0NCwweDAwLDB4YjMsMHgwMCwweDIwLDB4ZjAgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4MTgsMHgwOCwweDAyLDB4NGYsMHg4NCwweGIxLDB4YzAsMHgyNCwweGMwLDB4ODksMHgwNiwweDAyLDB4YzQsMHgwMCwweDkxLDB4MDAgfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MjAsMHhmMCwweDFiLDB4MTgsMHg4MiwweGM2LDB4MDAsMHg5MywweDAwLDB4MmMsMHhkMSwweDA4LDB4MWUsMHgwMiwweDBlLDB4NDQgfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4OTMsMHg5NCwweDJjLDB4YzAsMHgwOCwweDIwLDB4MDIsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MjAsMHhlMiwweDA4LDB4NjgsMHgwNiwweDllLDB4ODAsMHhiZiwweDg0LDB4MjUgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4YTgsMHgwOSwweDY4LDB4MDIsMHhjNiwweDAwLDB4OTMsMHhhMCwweDY1LDB4ZTQsMHgwYiwweDc4LDB4MTIsMHhkZSwweDAwLDB4OTMgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4MDAsMHhhMSwweGUwLDB4MDgsMHhkOCwweDAyLDB4MWUsMHhkMCwweGE3LDB4ODAsMHgyZCwweGUwLDB4MDgsMHhmOCwweDAyLDB4NDggfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YjMsMHgyMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4MGEsMHgyMiwweDAyLDB4Y2UsMHg0MCwweGYzLDB4YTAsMHgzYywweGU4LDB4MGIsMHgzMCwweDAyLDB4YzEsMHgwMCwweGQwLDB4YzEgfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4MzAsMHhjMCwweDBiLDB4MjEsMHgxMywweGNjLDB4MjEsMHhkMywweDAwLDB4MmMsMHhjMCwweDJjLDB4MTAsMHgwYiwweDBjLDB4ODAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4ZDMsMHg2MSwweDNjLDB4YzgsMHgyYywweDIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDQwLDB4M2IsMHhjMCwweDBmLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmNywweDUwLDB4N2YgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4YzQsMHgyZSwweGYwLDB4MDMsMHhmYywweDQwLDB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4NDcsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4MDAsMHg3ZCwweGMyLDB4MGYsMHhkMCwweDAxLDB4YmMsMHg4MCwweDVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZmIsMHhjMCwweDMyLDB4YzggfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4MGUsMHhlMCwweDAzLDB4YWMsMHhhMCwweGViLDB4MjAsMHgzMiwweDQwLDB4OGMsMHhhMCwweDEzLDB4MmMsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4M2UsMHg2MCwweDBjLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYSwweDgwLDB4MzAsMHhjMCwweDNjLDB4OTIsMHgwMywweGVmLDB4NjAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4YzMsMHgyMCwweDMxLDB4YzQsMHgwYywweGEwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHgzMywweDIwLDB4MjEsMHhkYSwweDBiLDB4NzAsMHg0MywweDljLDB4MDEsMHhiNSwweDAwLDB4MjEgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4MDAsMHgwYSwweGUwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJmLDB4YzAsMHgwZCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjYgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4MDAsMHgzMSwweGM4LDB4MDgsMHg1NywweDAyLDB4ZGMsMHgwMCwweDg3LDB4NTAsMHgyMSwweGMwLDB4MGEsMHg3MCwweDQyLDB4OTIgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDExLDB4YjcsMHg5MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4MGIsMHg2OCwweDgyLDB4ZGUsMHgwOCwweGE3LDB4ODAsMHgyNCwweDYwLDB4MDgsMHg3MCwweDEyLDB4MTIsMHgwOCwweDk1LDB4ODAgfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MmQsMHg2MCwweDA5LDB4NmMsMHgwMiwweGRlLDB4MDAsMHhiMSwweDgwLDB4MjMsMHhlMCwweDBhLDB4NTgsMHg2MiwweGZlLDB4MDAgfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4OTcsMHhhMCwweDIxLDB4ZTgsMHgwOSwweGU4LDB4MDIsMHgzMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4NDgsMHgxNCwweGNkLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDhiLDB4M2MsMHgwMiwweDhjLDB4MDAsMHhiYiwweDAwLDB4MjQgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4YzQsMHgxYSwweDNkLDB4MDIsMHgyZiwweDg4LDB4YjMsMHg0OCwweDJjLDB4ZTAsMHg4OSwweDNlLDB4MDIsMHg4ZCwweDgwLDB4OTMgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4ZDksMHhhNCwweDQwLDB4ODgsMHgxMCwweDAyLDB4Y2MsMHgwNCwweDkzLDB4YzgsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZmEsMHgwMCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4ODAsMHgzNywweGEwLDB4MGMsMHhlOCwweDEzLDB4M2IsMHgwOCwweGRlLDB4MDEgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4M2YsMHg4MiwweDBjLDB4ZTAsMHg0MywweGZhLDB4ODAsMHhmZSwweDgwLDB4MzEsMHgyOCwweDBjLDB4YTAsMHgwMywweGYwLDB4MDIgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4YzQsMHhjMCwweGIyLDB4ODAsMHgwZCwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgxMCwweDBiLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCwweDMwLDB4M2EgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MDAsMHg2ZCwweDgwLDB4ODMsMHhlMSwweDQ0LDB4YjgsMHgwNCwweDNlLDB4MTAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4NGYsMHgwNCwweDAzLDB4ZTMsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDM4LDB4NDAgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4MGYsMHgxYSwweDAzLDB4MmUsMHgwMCwweGZiLDB4YTAsMHgzNiwweDYwLDB4MGMsMHg5OCwweDAzLDB4ZTYsMHgwNCwweGQxLDB4MDAgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4MzYsMHg0OCwweDBlLDB4OTEsMHgwMiwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTksMHgwMywweDYyLDB4NDAgfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4ZjgsMHgwMCwweGEwLDB4NjgsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDIsMHg4OSwweDA0LDB4MmUsMHg2NCwweDg4LDB4OTQsMHgwMiwweGE1LDB4MDAsMHhiOSwweDgwLDB4MjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4NjQsMHgwZCwweDljLDB4MDIsMHhlNiwweDQyLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4NDAsMHgzYSwweDUwLDB4MDgsMHg5YywweDAyLDB4MjcsMHgyMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4MGEsMHg5MCwweDgyLDB4MjUsMHg0YywweGI5LDB4MDAsMHgwMiwweDQwLDB4MDgsMHg5NiwweDAyLDB4ZTQsMHgxMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4MjYsMHg1MCwweDEzLDB4OTQsMHgwMiwweGU0LDB4NDAsMHhiOSwweDA4LDB4MmUsMHg0MCwweDA4LDB4OTAsMHg4YSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4YjksMHgwMSwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDQwLDB4MmMsMHhjOCwweDA4LDB4MTAsMHgwNiwweDg0LDB4MDAsMHhiMSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4NDksMHgwOSwweDE0LDB4NDIsMHhjYywweDg5LDB4ODEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4NDYsMHhjNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4MDAsMHgyYSwweGMwLDB4MjgsMHgxNCwweDAyLDB4MDEsMHgwMSwweGIwLDB4MDQsMHgyOCwweDQwLDB4MzgsMHg5NCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ODgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4MGUsMHg4MCwweDIzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDEyLDB4ZTEsMHg0MCwweGQ4LDB4NTAgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4MzYsMHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4ODAsMHg1MywweDYwLDB4MDQgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhmOSwweDQ0LDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2YgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4NDQsMHgwZiwweGQ0LDB4NTMsMHhmNCwweDQ0LDB4ZmQsMHgxMCwweDJmLDB4NDAsMHgwZiwweGY0LDB4MDMsMHhmZCwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4NDAsMHgzYiwweDEwLDB4MGYsMHhkNCwweDIzLDB4ZDEsMHgwNCwweDdjLDB4NDMsMHgzNiwweDUwLDB4MGYsMHg1MCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNiwweDAwLDB4ZjksMHgxMCwweDJlLDB4NjIgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4MGYsMHhkMiwweDgzLDB4ZTQsMHgwMCwweGJkLDB4NDIsMHgzZSwweDYxLDB4MGYsMHhkMCwweDAzLDB4ZjYsMHhjMCwweGM5LDB4YTIgfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4MmIsMHg0MCwweDBjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhmOSwweDgxLDB4M2UsMHg2OCwweDA4LDB4YzEsMHg0MywweGZhLDB4MDAgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4ZjUsMHg4MCwweDNmLDB4NjIsMHgwYywweDE0LDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MjAsMHg4OCwweDExLDB4MmUsMHgxMCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDgyLDB4MmUgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4MTAsMHgwYiwweDgwLDB4MDAsMHhlMywweGM0LDB4ODgsMHhmMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHgyMCwweDAwLDB4ZTggfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4NDAsMHgyZiwweDE0LDB4MDgsMHg4OCwweDAyLDB4ZTIsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4OCwweDAyLDB4OGUgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHhjNSwweDAwLDB4YTEsMHgwMCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxOCwweGIxLDB4MjIsMHg2YywweGQxLDB4MGIsMHgxMCwweDI2LDB4YzQsMHgwMCwweDgxLDB4MDggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MmEsMHg0MCwweDg4LDB4MTAsMHgwMiwweDA0LDB4MDQsMHhiNSwweGMwLDB4MGYsMHg0MCwweDBiLDB4MDIsMHgwMiwweDQxLDB4YTAgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4YjEsMHg0MCwweDJjLDB4NDAsMHgwOCwweDEyLDB4MDIsMHgwMiwweDExLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA2LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU0LDB4MDAsMHhiOSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4NDAsMHgwYiwweGIwLDB4ODIsMHhjNCwweDAyLDB4ODksMHg0NCwweDIyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTkgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4MDAsMHgyNywweDQ4LDB4MDksMHhiMCwweDEyLDB4ZWMsMHgxOCwweGI5LDB4MDEsMHgyZSwweDQwLDB4NDAsMHg5MCwweDAyLDB4ODYgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDg0LDB4ZTksMHgwMSwweDNlLDB4NDAgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDcyLDB4MGYsMHg5MCwweDAzLDB4ZTcsMHg2MCwweDg5LDB4MTAgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDQ0LDB4M2MsMHg0MCwweDJkLDB4OTAsMHgwMywweGU3LDB4NjAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4ZjksMHg3MSwweDNlLDB4NDAsMHgyOCwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4NDgsMHhhOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4OWEsMHg0MywweGVjLDB4MDAsMHhmOSwweDIwLDB4N2UgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4YzgsMHgwZiwweDlhLDB4MDcsMHg2NiwweDAwLDB4NzksMHg4MCwweDdlLDB4NDAsMHgwZiwweDFjLDB4MDMsMHhlNywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4YTAsMHgzZSwweDQwLDB4NDYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YTAsMHgwOCwweGU4LDB4NDAsMHgzYSwweDEwLDB4MGMsMHg4MywweDAzLDB4YTEsMHhjMCwweGYwLDB4NDAgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4M2UsMHgwNiwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhmOCwweDAwLDB4M2IsMHgwMCwweDBmLDB4ODEsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4ZjgsMHgxMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MmUsMHhiMCwweDBiLDB4ZTgsMHgwMiwweGU5LDB4MDAsMHgzZSwweDkwLDB4MDIgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4ODEsMHgwOCwweGU0LDB4MTIsMHg3OCwweDAwLDB4YmEsMHgwMCwweDJkLDB4YjAsMHg4OSwweGU4LDB4MjIsMHhmOCwweDBjLDB4YmEgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4MDAsMHg2ZSwweDgwLDB4MDMsMHhjNSwweDAzLDB4MzAsMHgwMCwweGJhLDB4MDAsMHgyMiwweGE4LDB4MDgsMHhhMCwweDIyLDB4OGEgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDI4LDB4ZTggfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4MWIsMHgzMSwweDEyLDB4OGMsMHhjNCwweGEzLDB4OTIsMHgyYywweDQwLDB4ODgsMHgzNCwweDA2LDB4OGUsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MmMsMHhmMCwweDE5LDB4MzEsMHhhMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjgsMHg4MCwweDAxLDB4MzgsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4YjMsMHg4MCwweDIwLDB4ZTAsMHgwYSwweGIwLDB4MTIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDE0LDB4MmQsMHg0MiwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDgxLDB4MjcgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4ZTAsMHgxOCwweDYwLDB4MDIsMHg1OCwweDE4LDB4YjcsMHgyMiwweDJkLDB4ODAsMHgwOSwweDcwLDB4MjIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4MDAsMHgyZCwweDgwLDB4MGIsMHgzYiwweDAyLDB4MWQsMHhkMCwweGJmLDB4ODAsMHgyOCwweGMwLDB4OGEsMHhmMiwweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDgwLDB4ZjcsMHhhMCwweDM5LDB4ZTIgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4MGYsMHg2OCwweDAzLDB4OWUsMHgwMCwweGVkLDB4ODQsMHgzZCwweGUyLDB4NDQsMHg3OCwweDAzLDB4OWUsMHgwMCwweGY3LDB4YjQgfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MmQsMHhlMCwweDBkLDB4NjgsMHgwMywweGQ2LDB4MDAsMHhmNiwweDgwLDB4MzksMHhlMCwweDBmLDB4NzksMHgwMywweDVlLDB4OTAgfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4NjAsMHgyZSwweDdjLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDAsMHhmYiwweDQyLDB4M2UsMHhjOCwweDBmLDB4YTAsMHgwMywweGVkLDB4YTAsMHhiYiwweDAwLDB4MzggfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MDMsMHg2OCwweDAwLDB4ZmIsMHgxMSwweDNlLDB4NDAsMHgwOSwweGIwLDB4NDEsMHhlYywweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHhiMiwweDBiLDB4ZWQsMHg4MCwweDNiLDB4MDAsMHgzNiwweDQwLDB4MGQsMHhiMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2YsMHhkMCwweDMzLDB4ZTQgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NGYsMHhmOSwweDAzLDB4ZGUsMHg0MCwweGRjLDB4ODAsMHgzNiwweGU0LDB4MGMsMHhiOSwweDEzLDB4ZmUsMHgwMCwweGNmLDB4OTAgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4MzcsMHhlNSwweDBmLDB4ZjgsMHg0MywweGZlLDB4MDAsMHhjZiwweDkyLDB4M2YsMHhhNCwweDBmLDB4NzgsMHgwMywweDFmLDB4MDAgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4MjAsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4YTgsMHgxMSwweGJjLDB4MDAsMHgwZiwweDEwLDB4MjEsMHg4MSwweDBiLDB4NjAsMHgwMywweDg0LDB4MDAsMHg4YiwweDA4LDB4MjEgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4NjAsMHgwYSwweDdiLDB4MDMsMHg5OCwweDAwLDB4OGIsMHgxMCwweDI5LDB4ODQsMHgwZSwweDY0LDB4MjIsMHhkYywweDQwLDB4ZDcgfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4MDIsMHgyZCwweDg0LDB4MGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MTgsMHgyMSwweDQwLDB4MGEsMHhmMCwweDIyLDB4YWEgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTcsMHgxNCwweDY5LDB4YzAgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4MWEsMHg2MCwweDEyLDB4ZmMsMHgwMSwweGE0LDB4MTAsMHgyZCwweGMwLDB4MGEsMHg1MiwweDAyLDB4NDUsMHg0MCwweDg3LDB4MGMgfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MjEsMHg4MCwweDFiLDB4NjAsMHg4MiwweGQ0LDB4MDAsMHg4NiwweDAzLDB4MjUsMHhlMCwweDFiLDB4NzAsMHgwMiwweDVjLDB4NDAgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4OWQsMHgwMCwweDI5LDB4NDAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MjAsMHgxNCwweGNkLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCwweDFiLDB4MjAsMHgyMiwweDhjLDB4MTEsMHhhMywweDAwLDB4NjggfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4ZjYsMHgwYSwweDNjLDB4MDYsMHg4MiwweDAwLDB4ODMsMHg4MCwweDI4LDB4ODQsMHgwYSwweDhjLDB4ODIsMHhjYywweDQ0LDB4OTIgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4NGUsMHgwMCwweDkxLDB4MDAsMHgyOCwweDQwLDB4MGEsMHgzMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZSwweDIyLDB4ZWYsMHgwNCwweGJhLDB4YzAgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4MGYsMHgxNCwweDkzLDB4ZWMsMHgwMiwweGYxLDB4YzMsMHgzZSwweGYwLDB4MGUsMHg5MCwweDgzLDB4NjYsMHgwMCwweGNmLDB4ZDIgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MzIsMHg1MCwweDBmLDB4OWMsMHgwMywweGNiLDB4MDAsMHhjOSwweDgwLDB4M2UsMHgyOCwweDBmLDB4YjAsMHgwMywweDRmLDB4MDAgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4ZDEsMHhjMCwweGFhLDB4YzAsMHgwYywweDcxLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhkYiwweDAwLDB4MjYsMHg4MCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDgsMHgxYiwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4YzAsMHgwZiwweDg2LDB4MDEsMHhlNSwweDQwLDB4ZmIsMHgwMiwweDNhLDB4NDgsMHgwZSwweDk0LDB4MDMsMHhlYywweDgwLDB4ZjEgfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4ODQsMHgzZSwweDAwLDB4NGYsMHhiMCwweDAzLDB4YWQsMHhjMCwweGViLDB4MjAsMHgzNiwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4Y2YsMHgwMCwweDNmLDB4NjAgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MGMsMHhlMCwweDgzLDB4M2UsMHg4MCwweGVkLDB4MDgsMHgzMywweGQwLDB4OGYsMHg1MCwweDAzLDB4OWUsMHgwMCwweGRmLDB4MDAgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4YzAsMHgwMywweDMwLDB4MDAsMHhjYywweDEwLDB4MzMsMHg2OCwweDBjLDB4ZjAsMHgwMywweDNjLDB4ODQgfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4OGQsMHg5MCwweDMwLDB4NDAsMHgwYywweGYwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDAyLDB4MmMsMHhmNCwweDA4LDB4YTgsMHg2MiwweDBjLDB4ODAsMHg4YiwweDgwLDB4MmEgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4NjAsMHgwZiwweDljLDB4MDIsMHgyZSwweDAwLDB4OGIsMHgwMCwweDIwLDB4NjAsMHgwZCwweDk4LDB4MDIsMHgyYywweDgwLDB4ZDggfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4MDAsMHgxNCwweDQwLDB4MDgsMHgzNCwweDEyLDB4MmUsMHgwMCwweDhiLDB4ODIsMHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4ZDAgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MmMsMHgwMCwweDhhLDB4ODQsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZTQsMHhhMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4MjIsMHg2MiwweDBhLDB4OTgsMHgwMiwweDI4LDB4MDAsMHg4OSwweDAwLDB4MjIsMHgwMCwweDBhLDB4YjEsMHgwNiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4YWIsMHgwMCwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDIsMHhhMywweDAwLDB4MmMsMHhjMSwweDA4LDB4MjAsMHgwMiwweDBjLDB4MDIsMHg4YiwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4YzIsMHgwYSwweDAwLDB4MDIsMHg0NCwweDEwLDB4ODMsMHgxMCwweDIyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwYywweDAwLDB4OTEgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4MDQsMHhhYSwweDAwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGExLDB4MDEsMHgyMCwweDQwLDB4MDksMHhiMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4OGYsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4MmMsMHhhMCwweDAzLDB4MjksMHg0MCwweGE4LDB4NDAsMHgzMiwweGNjLDB4OGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGNmLDB4NDAgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4MzIsMHgwMCwweDBlLDB4ODAsMHgwYSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjIsMHg0MCwweDBjLDB4YjAsMHgwMywweDJjLDB4MDQgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4ZWIsMHgwMCwweGIyLDB4NDAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhkZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZTAsMHgwMywweGZjLDB4ODAsMHhmZiwweDI4LDB4M2QgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4YzAsMHgwYiwweGMxLDB4MDMsMHhiMCwweDE0LDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZCwweGQwLDB4MDMsMHhkYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgzNywweDQwLDB4MGYsMHhmMCwweDIxLDB4ZmMsMHgwMCwweDFkLDB4MDAsMHg3YiwweDQwLDB4OGYsMHhmMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZGYsMHgwMCwweDMxLDB4YTAgfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4NGQsMHhmMCwweDQzLDB4MzIsMHgwMCwweGNlLDB4MTQsMHgxYiwweDY4LDB4MGUsMHhkYSwweDIzLDB4YjIsMHhjMCwweDJmLDB4MDAgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4M2YsMHhjMiwweDJjLDB4ZTgsMHgwMywweDNjLDB4NDAsMHhmZCwweDA4LDB4M2IsMHhjOCwweDRjLDB4ZjAsMHg4MywweDNjLDB4YTAgfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4Y2YsMHgwMCwweDMzLDB4YzQsMHgwYywweGYzLDB4MDcsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4ODAsMHgxMCwweGUyLDB4MDAsMHg4ZiwweGMwLDB4MjIsMHhhMCwweDA4LDB4ZmQsMHg0MiwweDJmLDB4MDAsMHg4YiwweDcwLDB4MjIgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4MWUsMHg0OCwweDg5LDB4MDIsMHgyNywweGMwLDB4OGYsMHg1YSwweDJlLDB4NTAsMHg0OCwweDMwLDB4MDIsMHhiZCwweGMwLDB4YmQgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4NDAsMHgyMywweGM1LDB4NDgsMHhmNCwweDgyLDB4M2QsMHgyYywweDg3LDB4NzAsMHgyMiwweGMwLDB4MDgsMHhmMSwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlMCwweDAwLDB4OTMsMHgxMCwweDI2LDB4ODEgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4NDksMHgzMCwweDAyLDB4ODAsMHg0MCwweDgzLDB4MjAsMHgyOCwweDQwLDB4MGEsMHgxMCwweDAyLDB4ODAsMHgwMCwweGEzLDB4MjQgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4MmMsMHhjYSwweDA4LDB4MzIsMHg4MiwweDBjLDB4MDAsMHg5MSwweDI4LDB4MjAsMHhjYSwweDFiLDB4MzIsMHgwMiwweDBjLDB4ODggfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4ODMsMHgwOSwweDIwLDB4YzgsMHgwOSwweDMyLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4YzAsMHgxNSwweGEzLDB4MTQsMHg4YiwweDA0LDB4MjYsMHg4OSwweDA4LDB4YjAsMHgwMiwweGFjLDB4MjIsMHg4YiwweDg4LDB4MmEgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MjAsMHgwOCwweDk4LDB4ODIsMHhhNiwweDEwLDB4YWIsMHgwMCwweDJlLDB4Y2EsMHgwOCwweGIwLDB4ODIsMHhhYywweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MjksMHhiMCwweDBhLDB4MmMsMHgwMSwweDhiLDB4MDAsMHgyMiwweGMwLDB4MDksMHhiMCwweDIyLDB4ZjAgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMywweDAwLDB4ZGIsMHgwMCwweDM0LDB4ZTIgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4YTMsMHgwMCwweGNhLDB4ODAsMHhiYSwweDcwLDB4MGUsMHg4OCwweDAzLDB4YTYsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4M2UsMHg5MCwweDBjLDB4YjUsMHgwMywweDJjLDB4MDAsMHhmYiwweDEwLDB4YmEsMHhjMCwweDBlLDB4YjAsMHgwMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4Y2IsMHgwMiwweDMyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDgsMHhmZiwweDAwLDB4YmIsMHhlMCwweDBmLDB4NzAsMHgwMywweDY1LDB4MDAsMHhmNCwweDAwLDB4MzUgfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4NDAsMHgwZiwweDQwLDB4MDMsMHg1NCwweDAwLDB4ZGYsMHgwMCwweDNlLDB4NDAsMHgwZiwweGY4LDB4MDMsMHhlYywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4MDEsMHgzZCwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDQwLDB4ZWIsMHgwOCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzYSwweDUxLDB4MGYsMHg4MiwweDAzLDB4NjQsMHgyMCwweGRiLDB4MDAgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4M2QsMHg4MiwweDBjLDB4YmMsMHgwMywweDJjLDB4MTAsMHhkYiwweDAwLDB4NzIsMHhjMCwweDBkLDB4YjEsMHgwMywweDBjLDB4MjAgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4ZDMsMHgwMCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4YzgsMHgwNSwweDAxLDB4MDAsMHg4NywweGMwLDB4MmUsMHhhOCwweDA4LDB4ZjEsMHgxMiwweGM1LDB4NDAsMHg4OCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4NDAsMHgwYiwweDg0LDB4MDIsMHgyNywweDAwLDB4YWYsMHgwMCwweDJlLDB4YzAsMHgwOCwweGJjLDB4MTIsMHgzYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHhmNSwweDRhLDB4M2QsMHgyOCwweGRmLDB4MDAsMHgzMywweGMwLDB4NGIsMHhmMCwweDAzLDB4MzIgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OCwweDgwLDB4YTMsMHg5MCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4YzEsMHgwMCwweDkyLDB4MDQsMHgyOCwweDAwLDB4MGIsMHgxNCwweDEyLDB4NDMsMHgwMCwweGIzLDB4MDQgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MmMsMHgzMCwweDBhLDB4YjAsMHgwYSwweDhjLDB4MDAsMHg5MywweDAwLDB4NjAsMHhjMCwweDA4LDB4M2MsMHgwNiwweDBlLDB4MDEgfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4YjMsMHgwMCwweDJlLDB4YzAsMHg4YiwweDMwLDB4MDYsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4MjAsMHgwMSwweDEyLDB4MDAsMHg4NywweDgwLDB4MmQsMHgyNCwweDA4LDB4NzgsMHgwMiwweGQyLDB4MDAsMHg5NSwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4YTAsMHgwYiwweDY4LDB4MDIsMHg1YSwweDIwLDB4ODcsMHg4MCwweDJkLDB4NjYsMHgxYSwweDdjLDB4MDIsMHg5ZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4ODAsMHgyMSwweGUxLDB4MTgsMHg3OSwweDAyLDB4OWUsMHg0MCwweGI3LDB4ODAsMHhhMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4NDggfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwMCwweDAwLDB4ZTMsMHhhMCwweDNjLDB4NDAgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4YzQsMHgyMiwweGQ5LDB4MDAsMHgzOCwweGQ0LDB4MGYsMHgzMCwweDgzLDB4NjgsMHg0MCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4M2MsMHg4MCwweDBhLDB4MzIsMHgwMiwweDhjLDB4MDAsMHhkYiwweDAwLDB4YTIsMHhjNCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4NDAsMHgwZCwweGIwLDB4MDAsMHhmZiwweDEwLDB4M2YsMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4YzAsMHgwZiwweDMwLDB4MTMsMHhiYywweDQwLDB4N2YsMHgxMCwweDNmLDB4YzEsMHgyZCwweGYwLDB4MDMsMHg3YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4NDAsMHgzZiwweGMyLDB4MGUsMHhmNCwweDgzLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMyLDB4MGYsMHhmMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZGIsMHhhMCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4MGQsMHhiNywweDAzLDB4ZTAsMHgwMCwweGNhLDB4MDQsMHgzZSwweDgwLDB4MGYsMHhiOCwweDAzLDB4MmMsMHgxMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4MzMsMHgwMCwweDhkLDB4YjAsMHgwMywweDJjLDB4ODAsMHhlOSwweDQwLDB4M2UsMHhkMiwweDBmLDB4YjQsMHgwMywweDJkLDB4ODAgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4ZWIsMHgyMCwweGIyLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4NDgsMHgxMSwweDkwLDB4MDAsMHhiNywweDEwLDB4MTEsMHhjMCwweDA4LDB4NzAsMHg4MiwweGQ4LDB4MGEsMHg4NywweDAxLDB4MmQgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4ODAsMHg4OSwweDcwLDB4MDMsMHhkOCwweDA4LDB4YjcsMHgwYSwweDIxLDB4NDAsMHgyYywweDcwLDB4MDIsMHgwZCwweGMwLDB4ODUgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4MDEsMHg3OSwweGM4LDB4MGIsMHgzMiwweDAyLDB4MGQsMHgyMCwweDhmLDB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MiwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4NDAsMHg5NiwweDEwLDB4OTcsMHg5MCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4MDksMHg3YSwweDAyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDgyLDB4MWUsMHgwMCwweGIzLDB4YjAgfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFlLDB4MDAsMHhhNSwweDgwLDB4MmQsMHhlMCwweDBiLDB4N2EsMHgwMiwweDFlLDB4ODAgfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4YTcsMHhiMCwweDIxLDB4ZTgsMHgwYiwweDc5LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4NDgsMHgxNCwweGMwLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlMiwweDA4LDB4MzAsMHgwMiwweGM2LDB4NDAsMHg5MywweDcwLDB4MmMgfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4YzAsMHgwOSwweDNjLDB4MDIsMHg4ZSwweDAwLDB4YjMsMHgwMCwweDIwLDB4ZDgsMHgwOCwweDE4LDB4MDIsMHgwYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4OTAsMHgyZSwweGMwLDB4MGIsMHgzMCwweDJhLDB4MmMsMHgxMCwweDgzLDB4MDAsMHhhMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhiOSwweDAwLDB4ZGEsMHgwMiwweDMzLDB4YjggfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZjgsMHgwMCwweGRlLDB4YzAsMHgzZiwweGIwLDB4NGYsMHhlYywweDA2LDB4MzgsMHg0MCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4YjMsMHg5MCwweDBjLDB4NmMsMHgwYiwweDI4LDB4MDgsMHhlYSwweDAxLDB4N2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4ZWEsMHgwMCwweDMyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2EsMHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhlOCwweDAyLDB4M2UgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDQwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDIwLDB4ZjksMHhjMCwweDNlLDB4NzAgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4MGUsMHg5MCwweDAyLDB4ZTQsMHg4MCwweGM5LDB4MDAsMHgzMiwweDQyLDB4MGMsMHg5OCwweDgzLDB4YTQsMHg4NCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4YjIsMHg2MCwweDBjLDB4OTAsMHg4MywweDI0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4MWEsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4YzEsMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MDEsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MDAsMHhiOSwweDgxLDB4MmMsMHg2MCwweDBkLDB4OTQsMHhjMiwweGM3LDB4MDgsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4NDAsMHgwOCwweDk1LDB4YzcsMHhhNCwweDAwLDB4YjksMHgwMCwweDI4LDB4NzAsMHhhOCwweDk0LDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MjgsMHg5MCwweDJhLDB4MjYsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHg0MCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTUsMHgwMCwweDgxLDB4MDAsMHhhMCwweDQwLDB4MDksMHg5MCwweDQyLDB4ZWMsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MjIsMHg1OCwweDA4LDB4OTAsMHhhMiwweDA0LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE0LDB4YTAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4ODksMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmUsMHhjMCwweDg5LDB4MTIsMHgwMiwweGM0LDB4ODAsMHg4MSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4NDAsMHg2MSwweDEwLDB4NDIsMHhjNSwweDAwLDB4YjEsMHgyMCwweDI4LDB4NDgsMHgxOCwweDkwLDB4NDIsMHgwNCwweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4MjgsMHgyYywweDQ4LDB4MDgsMHgxMiwweDgyLDB4ODQsMHhhMCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MGIsMHgxMiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGQsMHg4MCwweDE3LDB4ZTgsMHgwNCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4MzIsMHgxNCwweDRjLDB4MDUsMHgwYiwweDIxLDB4NDAsMHhjOCwweDIwLDB4M2UsMHgwMCwweDBjLDB4ODcsMHgwMywweGExLDB4YzIgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MTQsMHg4ZiwweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDAsMHhmMSwweDEwLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMiwweGQ0LDB4NDIsMHhmZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4NTEsMHgwZSwweDU0LDB4MTMsMHhiNSwweDAwLDB4ZjksMHgxMCwweDM1LDB4NDQsMHgyZiwweGQwLDB4MDMsMHhlNCwweDUwLDB4ZmQgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4MjgsMHgzZSwweDRlLDB4MGYsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MzgsMHgzZSwweDQ0LDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNkLDB4NDAgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4MmMsMHhkMCwweDAzLDB4YjYsMHgwMCwweGY5LDB4ODIsMHgzZSwweDQwLDB4MGMsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4ODAgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4MzMsMHg3MCwweDBjLDB4NTAsMHgwMywweDM0LDB4MDAsMHhjOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4ZGEsMHgwMywweDE2LDB4ODAgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4YzksMHg0MCwweDNlLDB4NjIsMHgyYywweDk4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDA4LDB4ODAsMHgwMiwweDI4LDB4MDAsMHhiOCwweDUwLDB4MjYgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YjgsMHgwMCwweDJhLDB4MzQsMHgyYSwweGFhLDB4MGEsMHgyMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4YzAsMHgyZSwweDJhLDB4MDgsMHg4MCwweDIyLDB4MjEsMHgwMCwweGE4LDB4ODAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4NDgsMHgxMCwweDA2LDB4OGQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MmMsMHg0OCwweDA4LDB4MTAsMHg4MiwweDQ0LDB4MDAsMHg4MSwweDYwLDB4MmMsMHg0MCwweDI4LDB4MTQsMHgwYSwweDA0LDB4NDAgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4ODEsMHgyMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4NDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4YjAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDI4LDB4MmUgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4NTAsMHgwOCwweDkwLDB4MjIsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NjAsMHgwYiwweDEyLDB4NDIsMHg2NCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4MDAsMHgyYywweDQwLDB4MDksMHg5MCwweDAyLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyYywweDQwLDB4MDgsMHgxMCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDIgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTcsMHg0MCwweGY5LDB4NDAsMHgzZSwweDcwLDB4MGMsMHg5OCwweDAyLDB4ZTUsMHg0MCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTgsMHgwMywweDY0LDB4MDYsMHhjOSwweDAxLDB4MmUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDQgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHg4MywweGU2LDB4MTAsMHhmOSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4NjgsMHgwZiwweDljLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZSwweDk4LDB4OTMsMHhhNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDgzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDQgfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjEsMHgwMiwweGM4LDB4NDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTEsMHgwMCwweGYwLDB4MDAgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4M2UsMHgwMiwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MjgsMHgxNSwweDNhLDB4MDAsMHhiZSwweDAyLDB4MmYsMHhiMCwweDA4LDB4NjgsMHgxMiwweDM4LDB4MDAsMHg4YSwweDA0LDB4MmEgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4ODAsMHgwYiwweGUwLDB4NDIsMHhmYiwweDIwLDB4YmEsMHgwMCwweDJmLDB4OTEsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4MDAsMHgyNiwweDgwLDB4MDgsMHhlZSwweDBhLDB4MzgsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDAyLDB4OGEgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MiwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzIgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4MjgsMHgzOCwweDBhLDB4NDgsMHgwMCwweDgzLDB4MDQsMHgyMiwweGMwLDB4MGIsMHgxMCwweDAyLDB4Y2QsMHg4MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MmUsMHhjMCwweDA4LDB4MWMsMHgwMiwweDI0LDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgxMiwweDBlLDB4NDAgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MTIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4YTAsMHgwMSwweDExLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDA4LDB4NzAsMHhhMiwweDRlLDB4MDAsMHg4ZiwweGIwLDB4MjEgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4Y2MsMHgwYiwweDYwLDB4MTIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzAsMHgwOCwweGQwLDB4ODIsMHgxNCwweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4MTIsMHgyNSwweGM4LDB4MjgsMHg2MCwweDAyLDB4MTQsMHgwMCwweDg3LDB4YjIsMHgyMSwweGNjLDB4MGIsMHgzMSwweDAyLDB4YTggfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjcsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MGMsMHgzOCwweDAzLDB4NTYsMHgwMCwweGM3LDB4OTAsMHhiMSwweGU0LDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGY3LDB4OTAgfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4MWYsMHg2MCwweDJjLDB4NDgsMHgwYiwweDE2LDB4YTAsMHhmNywweDgwLDB4M2MsMHhmNCwweDBjLDB4MzgsMHgwMywweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4Y2YsMHhhMCwweGIxLDB4ZTgsMHgwZiwweDdiLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDgsMHgwZCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBiLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmMywweDIxLDB4M2UgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4YzgsMHgwNywweGIwLDB4MDIsMHhlNCwweDAwLDB4ZmIsMHgyMCwweDNmLDB4NDAsMHgwZiwweDgwLDB4MDMsMHhlNCwweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4MDAsMHgzNiwweGQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwOCwweGZiLDB4NDIsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMCwweDgwLDB4Y2YsMHg4MCwweDMxLDB4ZTEgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4MGMsMHhmOCwweDAzLDB4ZGEsMHgxMCwweGVmLDB4ODAsMHgzZiwweGU0LDB4MGYsMHhkOCwweDAzLDB4ZmUsMHgxMCwweGZmLDB4ODIgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4M2YsMHhlMCwweDRjLDB4ZDgsMHgxYiwweDE2LDB4MjAsMHhjZiwweDgwLDB4M2YsMHhlMCwweDRjLDB4ZDgsMHgzMCwweGVlLDB4NDAgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4ZmYsMHhjMCwweGIzLDB4ZjQsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4YTgsMHgwMSwweDk4LDB4MjAsMHg4MywweDQwLDB4MjEsMHhjMCwweDA4LDB4NzEsMHgwMiwweGRjLDB4ODQsMHg4NywweDIwLDB4MmQgfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkOSwweDYwLDB4ZjcsMHgwMCwweDJkLDB4YzAsMHgwOCwweGYwLDB4ODIsMHgxNCwweDA0LDB4ODcgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHhmMCwweDAzLDB4MWUsMHgwMCwweGI3LDB4MjAsMHgyMSwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiMCwweDAwLDB4ODcsMHgwMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZjUsMHgwNCwweDI3LDB4MDAsMHgyZCwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MDAgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4MmMsMHg1MCwweDA4LDB4NDAsMHgwMiwweDE0LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDQgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4YjcsMHgwMCwweGExLDB4YzAsMHg4YiwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHg4MCwweDAwLDB4MDAsMHg4MCwweDA4LDB4MzAsMHgwMiwweGNlLDB4MDAsMHg4MywweGMwLDB4MmMgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4ZDAsMHg0YiwweDMwLDB4MDIsMHhjZSwweDAwLDB4YWIsMHgwMiwweDJjLDB4NDAsMHg0OCwweGJjLDB4MDIsMHgwNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDgsMHgxMCwweDAyLDB4MDAsMHgwOCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzMCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MywweDQwLDB4YzgsMHgwMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4MmMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4ODgsMHgzZiwweGU2LDB4MDcsMHhiMSwweDgzLDB4ZTEsMHgwMCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4M2UsMHhlMCwweDBjLDB4YjgsMHgwMywweDM0LDB4MDAsMHhjZiwweDAwLDB4M2YsMHhjMCwweDJjLDB4YjAsMHgwMywweDY4LDB4MTAgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4ZmYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDAsMHhmMSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGVkLDB4NDAsMHhmYiwweDA4LDB4M2UgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4YzAsMHgwZiwweGEwLDB4MDMsMHhlNSwweDIwLDB4ZmIsMHgwMCwweDNlLDB4ZTAsMHgwZCwweGIwLDB4ODMsMHhlNCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzQsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2EsMHgwMCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4NGUsMHhmMCwweDAzLDB4MzQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhlOCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4YjEsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM0LDB4MDAsMHhlZiwweDAwLDB4YjMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDM4LDB4MDAgfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4Y2YsMHgwMCwweDNkLDB4YzAsMHgwYSwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4ODEsMHgwNCwweDYyLDB4MjIsMHg4OCwweDkwLDB4MjIsMHhlMCwweDA4LDB4M2MsMHgwMiwweDJlLDB4MDgsMHhiYiwweDAxLDB4MmUgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4YzAsMHgwYiwweGEwLDB4MDIsMHg2NiwweDAwLDB4YmIsMHgwMCwweDIyLDB4YTAsMHgwOCwweGE5LDB4MDIsMHgyNCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MjgsMHgyYywweDAyLDB4YTIsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMiwweDAwLDB4OTgsMHgwMCwweDIyLDB4YzggfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4MGEsMHg5OCwweDAyLDB4MjcsMHgwNCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZTIsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MjIsMHhlMiwweDA4LDB4YjAsMHgwMiwweGE0LDB4MDAsMHhhYiwweDAwLDB4MjAsMHhjMCwweDBhLDB4ODgsMHg4MiwweDIzLDB4MDAgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MDgsMHgxNCwweDA0LDB4MDAsMHg5MSwweDQwLDB4MjIsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4YzAsMHg0YiwweDI4LDB4MjIsMHg0MCwweDA0LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgwNCwweDA0LDB4YjMgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4MDAsMHg2MCwweGMwLDB4MDgsMHgwMCwweDAyLDB4ODQsMHgyMCwweDkzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2MCwweDAwLDB4ZGEsMHg0MCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhhMCwweDAzLDB4ZTAsMHgwOSwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MzIsMHg0MCwweDA4LDB4YTAsMHgwYiwweDM0LDB4MDAsMHhlYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ODAsMHgwMywweDI4LDB4ODAgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4YzcsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4YTAsMHgxNSwweGQwLDB4MDAsMHhlYywweDIwLDB4M2YsMHgwMCwweDBmLDB4YzAsMHgwYiwweGZjLDB4MTAsMHhmZiwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4YzAsMHgwZiwweGUwLDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NGYsMHhjMCwweDAxLDB4ZjAsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4Y2MsMHg5MCwweDM3LDB4MjAgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4MGUsMHhmMCwweDEzLDB4YmQsMHgwNCwweGQ0LDB4YzEsMHgzMywweDJjLDB4NGMsMHhkOSwweDIzLDB4MzIsMHg2MCwweGZmLDB4MjAgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4M2QsMHhlMCwweDRmLDB4YzEsMHgwMywweGI2LDB4NDAsMHhjZCwweDAwLDB4MzcsMHhlMCwweDBjLDB4ZTIsMHg4YiwweDEwLDB4YzAgfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4YzYsMHgwZiwweGQ4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4ODAsMHgxMCwweGVlLDB4MDgsMHg4YSwweDIwLDB4MjIsMHgwMCwweDA4LDB4YjcsMHgwMiwweDJkLDB4MDAsMHg4YSwweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4M2MsMHgwOCwweDk5LDB4MDIsMHgyNywweDg0LDB4YmYsMHg2OCwweDJlLDB4ODIsMHgwYiwweDAxLDB4MDIsMHgyNCwweDQwLDB4ZDkgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4NDIsMHgyMCwweGMwLDB4OGEsMHhhYywweDAyLDB4MmQsMHhjMiwweDgyLDB4NDgsMHhhMiwweGQwLDB4MGIsMHg4MiwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4ODgsMHgwNCwweDI2LDB4ODAgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4MmEsMHgzMCwweGMyLDB4YTUsMHg4MCwweGE5LDB4MjEsMHgyOCwweDAwLDB4OGEsMHgwMCwweDAyLDB4MDAsMHgwMCwweGEzLDB4MTAgfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4MmMsMHhjOCwweDBiLDB4MDAsMHgwMiwweGM0LDB4OTAsMHg4MywweDQyLDB4MjQsMHhjMSwweDA4LDB4MDAsMHgwMiwweDQwLDB4ODggfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4YTMsMHg2MCwweGE4LDB4YzAsMHgwYiwweDAwLDB4YzIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDYsMHg4YSwweDAwLDB4MjIsMHhlMCwweDQ4LDB4YjAsMHgwMiwweDJlLDB4MDIsMHhhYiwweDgwLDB4MmUgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4MjAsMHg0YSwweDhjLDB4MDIsMHgyNiwweDIwLDB4YmIsMHgwMCwweDZlLDB4ODAsMHgwYiwweDMwLDB4YzIsMHg0NiwweDA0LDB4OWIgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4MGEsMHhhMiwweGMwLDB4MGEsMHg4MCwweDEyLDB4NmMsMHg0MCwweGE4LDB4MDAsMHgyYSwweGMwLDB4MGIsMHg4YywweDAyLDB4MzAgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzEsMHgwOSwweDM2LDB4NjEgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4MGUsMHgzMiwweDAzLDB4YWIsMHgyMCwweGY4LDB4ODQsMHgzYSwweDc4LDB4MmUsMHg5OCwweDAzLDB4MjYsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4M2UsMHg0MCwweDRmLDB4OTAsMHgwMywweGUyLDB4MDAsMHhjOSwweDQwLDB4MzYsMHhlMCwweDBjLDB4YjQsMHgwMywweDZlLDB4MDAgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZiwweDg4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZmEsMHgxMywweGY4LDB4MTAsMHhkYywweDA0LDB4MjcgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4NDAsMHgwZCwweDUwLDB4NDMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQ5LDB4MDMsMHhiMCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4MDEsMHgzZiwweGYwLDB4MGYsMHhmMCwweDIzLDB4YjIsMHgwMCwweGQ0LDB4YTAsMHgzNywweGMwLDB4MGYsMHhjMCwweDBiLDB4ZjggfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDIwLDB4ZWIsMHgxMCwweGYyLDB4MDAgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4MGUsMHhiNCwweDAzLDB4MjEsMHg4MCwweGM5LDB4NDAsMHgzYSwweDQ4LDB4MGYsMHg5MCwweDEzLDB4ZTEsMHgyMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODQsMHgwMywweDI0LDB4MDAsMHhmYiwweDAxLDB4MzYsMHhlMCwweDBjLDB4NzQsMHgwYiwweDljLDB4MDAgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4Y2YsMHgwMCwweDMyLDB4ZTAsMHgwZiwweDg0LDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4YzgsMHgwNSwweDFlLDB4MDAsMHg4YiwweDgwLDB4MjAsMHg0MCwweDA4LDB4YjgsMHgwMiwweDgzLDB4ODAsMHg4MSwweGEwLDB4MjIgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4NzgsMHgwYiwweDkxLDB4ODMsMHhlMywweDAwLDB4YmYsMHgwMCwweDBlLDB4YzEsMHgwYSwweGI0LDB4MDMsMHg2NCwweDA0LDB4YjkgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4NTAsMHgzMiwweGMwLDB4MGEsMHhiMiwweDAyLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMywweGQ0LDB4MGIsMHg4OCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDQyLDB4YTAsMHg4MCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MGQsMHgwNiwweDgwLDB4ODAsMHgyYSwweGQwLDB4MDMsMHgwMCwweDAyLDB4YzgsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MzYsMHgwMiwweDQwLDB4MDAsMHhiOSwweDAyLDB4MjIsMHhjMiwweDhiLDB4MjYsMHgwMiwweDBjLDB4MTAgfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4MDEsMHgwMiwweDI0LDB4YzAsMHg0YiwweGExLDB4MDIsMHhmOCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDgsMHg4ZSwweDgwLDB4MjEsMHgyMSwweDA4LDB4MjgsMHhjMiwweDllLDB4MDAsMHg4ZSwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4NjAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDIwLDB4YjcsMHg4MiwweDJmLDB4YTEsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4OTEsMHhhMSwweGUwLDB4MGIsMHgyOSwweDAyLDB4MzIsMHg0NCwweDg2LDB4ODAsMHhhNSwweGUwLDB4MGIsMHg0YywweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTEsMHgwMCwweDIyLDB4ODAgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4MGUsMHgwMCwweDBiLDB4MjQsMHgwMCwweGMwLDB4NDQsMHgyOCwweGFkLDB4MGYsMHgyMCwweDAyLDB4YzgsMHgwMCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MWMsMHhjMCwweDBjLDB4MDEsMHgwMywweDQ4LDB4NGMsMHhmMiwweDA0LDB4MzAsMHhjMCwweDBmLDB4MTUsMHgwMywweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4YzEsMHgwMCwweDE0LDB4YzgsMHgwZiwweDAwLDB4MDMsMHhkYSwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4NDAsMHgxZCwweDljLDB4NDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDhmLDB4YzAsMHgwMywweGU0LDB4MDAsMHhmYSwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDA4LDB4ZmIsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDEsMHhmYywweDEwLDB4ZmYgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhkMSwweDAzLDB4ZmMsMHg0MiwweGZlLDB4ODAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4YzgsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWUsMHgwOCwweGNiLDB4MDAsMHgzMiwweGMwLDB4MGYsMHhhMCwweDIzLDB4ZTYsMHgwMywweGNiLDB4NGMgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YjAsMHgwNywweGU4LDB4MDAsMHhmOSwweDAwLDB4MTYsMHg0MCwweDBjLDB4YTAsMHgwYiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4Y2YsMHgwMiwweDMyLDB4YzUsMHgwYywweDgwLDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4ODAsMHg4NCwweDA0LDB4MmQsMHhjMSwweDBiLDB4NDAsMHg0MCwweGRjLDB4MDAsMHg4NywweDA0LDB4MjEgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4YzAsMHg0YiwweDcwLDB4MTIsMHhmYywweDAxLDB4OGYsMHg2MCwweDI5LDB4NDAsMHgwYiwweDcwLDB4MTMsMHg5YywweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4MDAsMHhhMywweDQwLDB4MGEsMHg2MCwweDAyLDB4MDAsMHgwMCwweDg0LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg0MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4YTIgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4MGIsMHg0YywweDE2LDB4ZDYsMHgwOCwweDk3LDB4ODgsMHgyMSwweGEwLDB4NGIsMHg2OCwweDAyLDB4ZGUsMHgwNCwweGE3LDB4ODAgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NDgsMHgwMiwweGRhLDB4MDQsMHhiNiwweDgyLDB4MjUsMHg2MCwweDBhLDB4ZTgsMHg2MiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4ODcsMHg4MCwweDIwLDB4ZTgsMHgwOCwweDQ4LDB4MDIsMHgwOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4YiwweDgwLDB4NmMsMHhmMCwweDBiLDB4M2MsMHgwMiwweGNlLDB4NDYsMHg5YiwweGMwLDB4MjAgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4ZTQsMHgwYiwweDNjLDB4MDIsMHhjYywweDIwLDB4YTMsMHgwMCwweDI4LDB4ZTAsMHgwYiwweDMwLDB4MDIsMHg4ZCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4ODAsMHgyMiwweDQ0LDB4MGEsMHgyMSwweDBhLDB4MDMsMHg4MiwweDgwLDB4ODAsMHhhMCwweGMwLDB4MDgsMHgwNiwweDBhLDB4MTIgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAyLDB4Y2UsMHg4MCwweDNmLDB4YTAgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZmEsMHg0MCwweGRlLDB4YzAsMHhiMywweDkwLDB4MGYsMHhlYSwweDEzLDB4ZjksMHgwOCwweGVhLDB4MDQgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4MzMsMHg4MiwweDhmLDB4ZTQsMHgwMywweGZiLDB4MDgsMHhmZSwweGEwLDB4MzYsMHhhMCwweDBjLDB4YWMsMHgwYiwweDZiLDB4ODIgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4YzYsMHhhMCwweDMyLDB4ODAsMHgyYywweGU0LDB4MDMsMHgzYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDkwLDB4M2UsMHgwMiwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDIwLDB4M2UgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MDMsMHgwZiwweDgyLDB4MDMsMHhlMSwweDQwLDB4ZDgsMHgwMCwweDNlLDB4MjAsMHgwZiwweDAwLDB4OTMsMHhhMCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4OGYsMHgwOCwweDBiLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4MGYsMHg5NCwweDA3LDB4ZTYsMHgwMCwweGY5LDB4ODAsMHhiMCwweDQwLDB4MGMsMHg5NCwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTQsMHgwYiwweGE0LDB4MDAsMHg3MSwweGMwLDB4MzIsMHg0MCwweDJjLDB4OTQsMHgyMywweDI0LDB4MDIgfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4ODAsMHgwNCwweDQ0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTgsMHgwMiwweGU2LDB4NjAsMHhiOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4NjAsMHgwYSwweDljLDB4MDIsMHhlNiwweDI0LDB4YjksMHgwNCwweDM2LDB4NDAsMHgwYiwweDk4LDB4MDAsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4ODAsMHhhMiwweDUyLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDQwLDB4NjgsMHg5NCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YTksMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDMsMHg5NCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MTAsMHgyMiwweDU1LDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MjYsMHg0MCwweDBiLDB4OTAsMHgwMCwweDJjLDB4MDksMHhiOSwweDAwLDB4MjIsMHg2MCwweDA4LDB4OTAsMHgwYSwweDFjLDB4MDQgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4OGQsMHgwOCwweGEwLDB4NDAsMHgwOCwweDEwLDB4ODIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4MDgsMHgwNCwweDA2LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MCwweDBiLDB4MTIsMHg0MiwweGM0LDB4ODAsMHhiMSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4NTAsMHgwYSwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEsMHgyMiwweDI0LDB4NDAsMHgwYiwweDEyLDB4MjIsMHgwNCwweDAxLDB4YjEgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4NDAsMHgyMCwweDUwLDB4MDgsMHgxMCwweDBhLDB4MTUsMHgwMCwweDg1LDB4NDAsMHgyOCwweDUwLDB4MDgsMHgxNCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTgsMHg1MCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4MGYsMHg4NSwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHhhMCwweDIzLDB4ZTAsMHgxMCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4YjIsMHgxNCwweDBmLDB4YTUsMHgwMywweGExLDB4NDgsMHhmYSwweDAwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDQgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4YzQsMHgwMiwweDMyLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDEsMHgwMywweGQ0LDB4NDQsMHhmNSwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4NTEsMHgwZiwweGQ0LDB4MDMsMHhmNSwweDAwLDB4ZjksMHgxMCwweDNiLDB4NDAsMHgwZiwweGQxLDB4MDAsMHhmNSwweDEwLDB4ZjUgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4NDAsMHg3ZiwweDQwLDB4MGYsMHg1NCwweDJiLDB4ZTUsMHgwMCwweGY5LDB4NDAsMHgzNiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDEwLDB4YmQsMHg0MCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4MGYsMHhkYSwweDAzLDB4MzcsMHg4MCwweGNkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGU5LDB4YTAgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4ZGUsMHgxNywweGE0LDB4MDgsMHhmZCwweGMwLDB4MzMsMHg0MSwweDhkLDB4ZGEsMHgxMywweDI2LDB4YTAgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4ZjksMHhhOCwweDMyLDB4NzgsMHgwYywweGI0LDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweGEwLDB4MzYsMHgyMCwweDBiLDB4OGEsMHg4MiwweGEyLDB4ODAsMHgyYSwweGE4LDB4MmUgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MTIsMHhlMCwweDA0LDB4YjgsMHhhMSwweDJlLDB4MjgsMHg0YSwweDhlLDB4MDIsMHgyYSwweGEwLDB4YmEgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4YzAsMHgyMiwweDI4LDB4MDgsMHg4NSwweDAyLDB4MjEsMHgwOCwweGI4LDB4ZTgsMHhhMiwweDNjLDB4MDgsMHhjOCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjksMHgwMCwweDIwLDB4NGEgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MDUsMHg4MCwweDAxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwNCwweGExLDB4NGEgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MmUsMHg0MiwweDA4LDB4MTQsMHgwMiwweDg0LDB4MTAsMHhiMSwweDYwLDB4YTAsMHg0YSwweDA5LDB4MTAsMHgwMiwweDQ0LDB4MDAgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4YjUsMHgwMSwweDI5LDB4NDAsMHgxOCwweGQyLDB4MDIsMHgxMiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDIxLDB4MjYsMHg0MCwweDBiLDB4OTYsMHgwMiwweGE0LDB4MTAsMHhhOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4NDAsMHgwYiwweDk2LDB4MTIsMHhlNCwweDIwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwYSwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgyMiwweDQxLDB4MDgsMHg5OCwweDIyLDB4NjQsMHgwMCwweGI5LDB4MjAsMHgyYiwweDQxLDB4MjgsMHhkNCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHhlMCwweDMyLDB4NTggfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4MjYsMHg0MCwweGM5LDB4NDAsMHgzZSwweDU4LDB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4NmUsMHg0MCwweDBjLDB4OWEsMHgwMiwweGE2LDB4MDAsMHhmOSwweDQ0LDB4MzIsMHg0MCwweDBkLDB4OWEsMHgwYiwweDY0LDB4ODQgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4ZjksMHgwMCwweGJhLDB4NDAsMHgwYywweDE4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSwweDA0LDB4M2UgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgwMCwweDNlLDB4NjUsMHgwZiwweDk5LDB4ODEsMHhlNCwweDUwLDB4ZjkgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MiwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4MGUsMHg4NCwweDAzLDB4NjAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDA4LDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgyOCwweGU4LDB4MDQgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODQsMHgwMywweDIxLDB4MWMsMHhmMCwweDQ4LDB4MzIsMHgwMCwweDBiLDB4MDAsMHgwMywweGUwLDB4MDIgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4YzAsMHgwMCwweDMyLDB4MDAsMHgwYywweGMwLDB4MGIsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhiMiwweDg4LDB4MmUsMHg4MCwweDA4LDB4ZTAsMHgwMywweDdhLDB4ODAsMHg4ZSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4YTAsMHgwYiwweGU4LDB4MDIsMHhmOSwweDEwLDB4YmEsMHgwMCwweDJjLDB4ODAsMHgyOCwweGU0LDB4MDIsMHgyOCwweDAwLDB4YmUgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4NDAsMHgyMywweGI4LDB4MDgsMHhlOCwweDAyLDB4ZTgsMHgwNCwweGNhLDB4MjAsMHhhMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAxLDB4YjMsMHgwMCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4MDgsMHhiOCwweDQyLDB4NmMsMHgwMiwweDgzLDB4MDAsMHgyYywweGUwLDB4MGIsMHgzOCwweDAwLDB4Y2YsMHg0MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4YjQsMHgwYSwweDBjLDB4MDAsMHhiMywweDQwLDB4YTIsMHg4MiwweDBhLDB4MzksMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4OTMsMHg4MCwweGEwLDB4YzAsMHgyOSwweDIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4YTAsMHgwMSwweDFkLDB4MDAsMHhiNywweDAwLDB4MmQsMHg2NCwweDI4LDB4NzQsMHgwMiwweDQwLDB4MDAsMHg4NywweDA1LDB4MmQgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4OTAsMHgwYiwweDc0LDB4MDIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzgsMHgwOCwweDM0LDB4MDYsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4MDAsMHhhMSwweGMwLDB4MGEsMHg3MCwweDAyLDB4ZGUsMHg4MCwweDgzLDB4MDAsMHgwMSwweDAwLDB4MDksMHg2MCwweDgyLDB4MjAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxYSwweDAwLDB4ZjcsMHg4MCwweDNkLDB4NjAgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MGUsMHhkOCwweDBiLDB4NWUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgxMCwweGY3LDB4YTkgfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4N2YsMHhlOCwweDQ4LDB4NzgsMHgwMywweDFmLDB4MzAsMHhmZiwweDk0LDB4MzMsMHhhMCwweDBlLDB4NzgsMHgwMywweGNmLDB4MjQgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4ZDYsMHg4MCwweGIxLDB4ZTAsMHgwZCwweGY4LDB4NDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhiYiwweDAwLDB4MGMsMHg0MCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDgsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwZiwweDkwLDB4NDEsMHhlYywweDAwLDB4ZmIsMHg2MSwweDdlLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4NDAsMHgzZiwweDliLDB4MGMsMHhiMCwweDAzLDB4ZWQsMHg5MCwweGZhLDB4MDAsMHgzYywweDAwLDB4MGUsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkZSwweDAwLDB4ZWYsMHg4MCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4MGQsMHhkOCwweDAzLDB4MzYsMHg0MCwweGVmLDB4OTAsMHgzZSwweGUwLDB4MGYsMHhmOSwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MzMsMHhmZSwweDBjLDB4ZmEsMHgwMywweGZlLDB4MDAsMHhjZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4ZTAsMHgwZiwweGM4LDB4NDMsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4NSwweDA4LDB4MzUsMHg0MCwweDA4LDB4NzAsMHgwMywweDUyLDB4MjAsMHg4NywweDExLDB4MmMgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4ZWMsMHgwYiwweDcxLDB4MDIsMHhkMCwweDAwLDB4ZTcsMHgwMCwweDM1LDB4YzQsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4ODcgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4MTAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg4MCwweDg1LDB4MDgsMHgyMSwweDAwLDB4MGIsMHg0MSwweDgyLDB4ZWEgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDAwLDB4YWYsMHgwMCwweDIzLDB4NTAgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4MDksMHg1MCwweDAyLDB4MWMsMHg4MCwweGE3LDB4MDEsMHgyOSwweGMwLDB4MWIsMHg2MCwweDA2LDB4ZGMsMHg0MCwweGI3LDB4MTAgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MjEsMHhjOCwweDRhLDB4NTIsMHgwMiwweGRjLDB4MDAsMHg4MywweDAwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRjLDB4MTMgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4ODQsMHgwMCwweDI1LDB4YzAsMHgwYiwweDU4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MSwweDgwLDB4MjQsMHg0MCwweDA4LDB4M2UsMHgwMiwweDZlLDB4MDAsMHg4OSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4YzAsMHgwYiwweGI0LDB4MDIsMHhjYSwweDgwLDB4YTMsMHgwMCwweDI0LDB4YzAsMHgwYSwweDA0LDB4MDIsMHhlYywweDQwLDB4ODIgfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4MGEsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHgxMCwweDgwLDB4YzAsMHhhNCwweDAwLDB4MGIsMHgxYywweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4NCwweDAwLDB4ZWIsMHg4MCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4MGQsMHg4YywweDgzLDB4MjYsMHgwMCwweGU5LDB4YTAsMHgzZSwweDc4LDB4OGYsMHg5MCwweDgzLDB4ZTEsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4MzEsMHhkMSwweDBlLDB4ODQsMHgyMywweGZjLDB4MDAsMHhjYiwweDgyLDB4MzIsMHhjMCwweDhmLDB4YjAsMHgwMiwweGZkLDB4NDAgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4Y2IsMHg4MCwweGI2LDB4YzAsMHgwZiwweGE0LDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmOSwweDAxLDB4M2UgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4NDIsMHgwZiwweDkwLDB4MDMsMHhlNSwweDU0LDB4ZTMsMHgwMCwweDNlLDB4YzgsMHgwNSwweDkzLDB4MDMsMHhlYywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4YzEsMHgzZSwweGMwLDB4MGYsMHgyMCwweDAzLDB4Y2MsMHg0OCwweGYzLDB4MDgsMHgzYSwweDAwLDB4MGYsMHhhMCwweDQzLDB4ZTAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2YsMHgwMCwweDNmLDB4NDAgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4MGYsMHgzMCwweDAxLDB4MmMsMHgwYSwweGNkLDB4MTAsMHgzMywweDAwLDB4MGYsMHhkMCwweDgzLDB4MTQsMHgwMCwweGNiLDB4MDIgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4ZTEsMHgwMywweGVjLDB4MTAsMHhjZCwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgzMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4ZWEsMHgwMCwweDMzLDB4YzAsMHgwYywweGYwLDB4ODMsMHhjOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4ODEsMHgwNCwweDZlLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0MCwweDBiLDB4YmMsMHgwMiwweDJlLDB4MDAsMHgwYiwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4MzAsMHgwYiwweDljLDB4MDIsMHgyNywweDgwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGI4LDB4MDIsMHhlYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4YzAsMHgyMCwweGUwLDB4MDgsMHhhZSwweDAyLDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyMiwweDAwLDB4MDgsMHhiMCwweDQyLDB4ZTggfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZSwweDAwLDB4OGIsMHgwNCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4OGIsMHg4YywweDAyLDB4YWUsMHgxMCwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg4YywweDAyLDB4YTIsMHgwMCwweDhiLDB4MDEgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4ODAsMHgwMiwweGVjLDB4MTAsMHg4MiwweDg4LDB4YTIsMHg3MCwweDA5LDB4YjgsMHgwMiwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4ODksMHgwMCwweDIwLDB4YzAsMHgyOCwweDgwLDB4MjIsMHhlMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg4MSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MjAsMHgwMiwweDgwLDB4MDAsMHg4MSwweDA0LDB4YTAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4NTAsMHg0YiwweDAwLDB4MGEsMHg4MCwweDAwLDB4YTMsMHgwMSwweDJhLDB4YzEsMHgyMCwweDEwLDB4MDIsMHhjYywweDE0LDB4ODMgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHgyMCwweDAyLDB4MGMsMHgwMCwweDgxLDB4MDAsMHhlMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4YWMsMHg4MCwweGM5LDB4MDAsMHgzMiwweDEwLDB4MGYsMHg4MCwweDAzLDB4YTQsMHgwMCwweGNmLDB4MDIgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4MzEsMHhjMCwweDBjLDB4ODAsMHgxMywweGZjLDB4MDIsMHhjZCwweDAwLDB4MzMsMHhjMCwweDJjLDB4OTAsMHgwMywweDNjLDB4MDIgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4ZTgsMHgwMCwweGIyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDIsMHhmNSwweDAwLDB4M2QsMHg0MCwweDhmLDB4ZjAsMHgyMywweDZkLDB4MDAsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MDQsMHgwZiwweGMwLDB4MDMsMHg3MCwweDFjLDB4ZmYsMHgwMSwweDNmLDB4YzAsMHg0ZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhlMCwweDBmLDB4ZmMsMHgxOCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZDcsMHgwMiwweDBmLDB4MzAgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4MGMsMHhmMiwweDAxLDB4N2UsMHgwNiwweDQ0LDB4MzAsMHgzZiwweDIwLDB4MGUsMHhmMCwweDAyLDB4N2MsMHg4NCwweGZkLDB4MjAgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MjcsMHgwOCwweDBjLDB4ZDAsMHgwMSwweDM2LDB4MDAsMHhmZiwweDYwLDB4MzMsMHhjYywweDBiLDB4ZjEsMHgxMywweDJjLDB4YzQgfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4ZmYsMHgzMCwweDBmLDB4Y2QsMHgwYywweGY0LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4ODAsMHgxMCwweGVlLDB4MDAsMHg4ZiwweGMwLDB4MmUsMHgwMCwweDA4LDB4ZmMsMHgwMiwweDJlLDB4MDAsMHg4YSwweDMwLDB4MjggfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4NTIsMHgwOCwweGY2LDB4ODIsMHgzYywweDY4LDB4YmQsMHg5MCwweDMyLDB4MzQsMHg0OCwweDljLDB4MTIsMHgyNiwweDAwLDB4Y2YgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4NDAsMHgyMywweGNjLDB4MGIsMHhmNiwweDAyLDB4M2QsMHgwMCwweGJmLDB4MTAsMHgyZiwweGNjLDB4ODgsMHhmNiwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4OTMsMHgxMCwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4MDksMHgzMSwweDAyLDB4NGMsMHgwMCwweDliLDB4MjAsMHg2NCwweDU4LDB4MDMsMHgzMSwweDYyLDB4NGMsMHg4MSwweGExLDB4MDAgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4MjAsMHgwMCwweDQ4LDB4MTQsMHgwMiwweDQ0LDB4MDAsMHg5MywweDMwLDB4MjQsMHhjMCwweDBiLDB4MzMsMHgwMiwweDhkLDB4ODQgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4YjMsMHgyMCwweDZjLDB4YzAsMHgyYSwweDM2LDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAyLDB4MmUsMHg0MSwweDBiLDB4YjAsMHgwMiwweGE0LDB4MDAsMHg5YSwweDAwLDB4NGEgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4NjAsMHg4OCwweGIwLDB4NTIsMHg2YywweDAxLDB4YjksMHgwMCwweDI2LDB4MDAsMHgwOCwweDkxLDB4MjIsMHhlYywweDA4LDB4YmIgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDUsMHg2ZSwweGMxLDB4MGEsMHhiMCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZGIsMHgwMSwweDNlLDB4MzAgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4MmQsMHgzMCwweDAzLDB4NDcsMHg2MCwweGQ4LDB4YTAsMHgxNiwweDM4LDB4OGYsMHhiMCwweDAzLDB4NmMsMHgwMCwweDc5LDB4MDIgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4MzEsMHg2MCwweDBjLDB4YzgsMHgwYSwweDY2LDB4MDAsMHhiYiwweDAwLDB4YjYsMHhjMCwweDBmLDB4YjAsMHgwYiwweGFjLDB4MDAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4ZmIsMHgwMSwweDNlLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhlZiwweDA4LDB4M2YsMHgyNCwweDBjLDB4ZjAsMHgwMywweDc2LDB4MjAsMHhlZSwweDkwLDB4MzUgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4NDAsMHgwZSwweDcwLDB4MDMsMHhhYywweDAwLDB4ZmQsMHgwMCwweGJiLDB4NjQsMHgwZiwweDg4LDB4MTMsMHgzNCwweDgwLDB4Y2IgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZmLDB4MDAsMHgzZSwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4ZmIsMHg4MCwweDMyLDB4MTAgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4MGUsMHhiMCwweDAzLDB4ZWQsMHgwMCwweGNiLDB4NTAsMHgzZSwweDQwLDB4OGMsMHhiMCwweDQzLDB4MmMsMHgxMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MzIsMHg2MCwweDBjLDB4NDAsMHgwYiwweDI2LDB4MDAsMHhjMywweDA0LDB4MzYsMHhjMCwweDBjLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4OWIsMHgwMCwweGIwLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4YzgsMHgwNSwweDBlLDB4ODAsMHhiZiwweDA0LDB4MmEsMHg0MCwweDAwLDB4ZjUsMHgwMCwweGU2LDB4MDAsMHg4MiwweGQyLDB4MjIgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4NDAsMHgwZCwweGYwLDB4MjIsMHgzYywweDAwLDB4OTUsMHgwMiwweDM2LDB4NDAsMHgwYSwweDgwLDB4MDIsMHgyZSwweDAwLDB4OGYgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGEsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMywweGMwLDB4MjgsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZSwweDAwLDB4YjMsMHgwMCwweDIyLDB4MjAgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4NGEsMHgzMCwweDAwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweDAwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgxMCwweGExLDB4MDAgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MjgsMHg4MCwweDE4LDB4MzAsMHgyMiwweDA0LDB4MDQsMHg4MywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDggfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDYsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MjksMHhhMCwweDA4LDB4NzgsMHgwMiwweGZlLDB4MjAsMHg4ZCwweDgwLDB4MjkgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4ZTUsMHg1YiwweDM4LDB4NDIsMHgxZSwweDQwLDB4YTEsMHg4MSwweDI1LDB4YTgsMHgwOCwweDc5LDB4MDIsMHgzNywweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4ODAsMHgyNSwweGUwLDB4MGEsMHg3OCwweDBhLDB4ZGUsMHg4MSwweDg3LDB4ODAsMHgyNSwweGU1LDB4NDgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YjMsMHgxMCwweDMwLDB4MTIgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4MGUsMHgzMCwweDEyLDB4Y2MsMHhjMCwweGMzLDB4MDAsMHgzOCwweDgwLDB4MGMsMHgzMSwweDA2LDB4MGMsMHg0MCwweGYxLDB4MDAgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MzgsMHg4MCwweDBjLDB4MzAsMHg0MywweDA0LDB4NDIsMHhjMywweDAwLDB4MzYsMHhjMCwweDBjLDB4MzIsMHgwMywweGNlLDB4YzAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4ZGIsMHgwMCwweDMwLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDEwLDB4M2QsMHg4NCwweDRmLDB4ZjEsMHgwMywweGQwLDB4NDAsMHhmYywweDEwLDB4MzMgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4ODAsMHg1ZCwweGIxLDB4ODMsMHhmYywweDUwLDB4ZGQsMHgwYSwweDI1LDB4ODksMHgwZiwweGI4LDB4MDMsMHhkNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDAzLDB4M2MsMHg0MCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4MGYsMHhiNSwweDAzLDB4MjksMHgyMCwweGY5LDB4MDAsMHgzMiwweGEwLDB4MGMsMHhiMCwweDgzLDB4ZWMsMHgwMCwweDQ5LDB4YzggfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YTAsMHgwMywweDY0LDB4MDAsMHhmYiwweDA4LDB4MTIsMHhlYSwweDBjLDB4YjAsMHgwYiwweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4ZmIsMHgyMCwweDJlLDB4ZDIsMHg2YywweGI2LDB4NDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDQ5LDB4MmQsMHgwMCwweDBiLDB4MzAsMHg4MiwweDEwLDB4MDEsMHhiNSwweDAyLDB4ODMgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4YzAsMHgxYSwweDcyLDB4MjIsMHhkZCwweDQxLDB4ODUsMHgwMCwweDYxLDB4YzAsMHgxOCwweDIwLDB4MjAsMHgxNCwweDAwLDB4YmYgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4NDAsMHgzNSwweGQwLDB4MGQsMHgzNCwweDAyLDB4MWQsMHgyMCwweGI3LDB4MjgsMHgyNSwweGMxLDB4MDgsMHg3NCwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDA0LDB4MzcsMHhhMCwweDJkLDB4MjAgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4MGIsMHg3YSwweDEyLDB4MTYsMHgwMSwweGIzLDB4ODAsMHgyMSwweGUyLDB4MDgsMHg3OCwweDQyLDB4OWUsMHgwMCwweDg1LDB4ODAgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MjAsMHhlMSwweDE4LDB4NjgsMHgwMiwweDU2LDB4MDAsMHhiNywweGEwLDB4MjUsMHhlMCwweDA4LDB4N2EsMHgwMiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4YjcsMHg5MCwweDJjLDB4ZTUsMHg4OCwweDdhLDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4NmMsMHgyNCwweDFiLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4ZDgsMHgxOCwweDIwLDB4MDIsMHgwNCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNiwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNkLDB4ODAgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4MGYsMHgyMCwweDBiLDB4MjgsMHg4MCwweGZlLDB4MDAsMHgzMywweGEwLDB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMiwweGNhLDB4MDIgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MzIsMHg5MCwweDJjLDB4ZTQsMHgwMywweDc4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgwMywweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMywweGUwLDB4ODAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MjMsMHhjMCwweDAwLDB4ZjgsMHgwMiwweDNjLDB4MDAsMHgwZiwweGMwLDB4ODMsMHg2MCwweDAwLDB4YjggfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDIzLDB4ZTAsMHgxOCwweGY4LDB4MDEsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNiwweDAwLDB4ZjksMHgyMSwweDMyLDB4NjAgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MmMsMHg0NCwweGY5LDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDFiLDB4MjQsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTAsMHgzMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg0MSwweDA4LDB4OTAsMHgwMiwweDI0LDB4ODAsMHhlOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDEsMHgxOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4MDQsMHgyYSwweDQxLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDgwLDB4YjksMHg0MiwweDYyLDB4NDggfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDIgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweGE0LDB4MDAsMHhiMSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDQgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMSwweDIwLDB4NjAsMHg0MCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDAsMHhhMSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4OTEsMHgyMCwweDJkLDB4NjgsMHgwOCwweDUyLDB4MTIsMHgwNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4MjgsMHgyOCwweDRhLDB4MDksMHgxMiwweDgyLDB4NDQsMHhhMCwweGIxLDB4MmMsMHgyOCwweDRhLDB4MGEsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MTQgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDE0LDB4MGYsMHg4NSwweDAzLDB4MDEsMHg0MCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MmUsMHgwMCwweDI4LDB4YzAsMHgwMywweGEwLDB4MDAsMHhmOCwweDI0LDB4MzAsMHgwOCwweDBmLDB4ODIsMHgyMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4ZjgsMHgyMCwweDMyLDB4MDgsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4MDgsMHhmOSwweDEwLDB4M2YsMHg0MCwweDhmLDB4OTEsMHgxMywweGU0LDB4MDAsMHhlZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4NTAsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4YTUsMHgxMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDA0LDB4ZjkgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4MjgsMHgzZSwweDRiLDB4MGIsMHg5MiwweGEzLDB4ZTQsMHhhMCwweGU5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4ODAsMHhkMCwweDAxLDB4ZjQsMHgwMCwweGE1LDB4MDAsMHgyNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjYsMHgwMCwweGYxLDB4ODggfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4M2UsMHg2OCwweDBkLDB4OTgsMHg4MywweDQ0LDB4MDAsMHhjOSwweGMwLDB4M2EsMHg0MCwweDBjLDB4OTgsMHgwMywweDI0LDB4MDggfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4ZjksMHhhMCwweDMyLDB4NzgsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDIsMHg4OCwweDAwLDB4YTIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGUwLDB4MDAsMHgwYSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHg0MCwweDJlLDB4MTQsMHgwOCwweDgwLDB4NDMsMHgzMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4YTAsMHgyMiwweDJhLDB4MGEsMHg4YSwweDQyLDB4YTAsMHgwNSwweGI4LDB4NDIsMHgzMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAzLDB4OTEsMHgwMCwweDI0LDB4NDAgfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxMSwweGIxLDB4MDQsMHgyMCwweDQxLDB4MWIsMHgxMCwweDIyLDB4NDUsMHgwMCwweGI1LDB4MDAgfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MjUsMHg0MCwweDA5LDB4NTAsMHgwMiwweDU0LDB4MDEsMHg4MSwweDQwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHg5MiwweDQ0LDB4MDAgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4YjEsMHg0MCwweDI0LDB4NGMsMHgwYiwweDE0LDB4MGEsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5OSwweDAwLDB4MjQsMHg0MiwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDEsMHg5OSwweDIwLDB4MjYgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4NDAsMHhjYiwweDkwLDB4MDIsMHg2NCwweDAwLDB4YmIsMHgwMCwweDJmLDB4NDEsMHgwYSwweGQwLDB4MDIsMHgzNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGIsMHgxMCwweDAyLDB4ZTQsMHgwMCwweDMxLDB4MDAsMHg2MiwweDQwLDB4MGIsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNCwweDAwLDB4ZDksMHgwMSwweDM2LDB4NTAgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4MmYsMHg5MCwweDAzLDB4ZTYsMHg2MCwweGY5LDB4ODAsMHgzNiwweDUyLDB4MGIsMHg5MCwweDBhLDB4NjQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4MDIsMHgwOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4YjksMHgwMCwweGI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2EsMHg0MSwweDBjLDB4OTAsMHgyMywweGU2LDB4MjAsMHhlOSwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4NzAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZCwweDEwLDB4MTMsMHhhNywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHg5MCwweDQzLDB4YTQsMHgwOCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDIwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4MGYsMHg4MCwweDgzLDB4MjEsMHgwMCwweGYwLDB4MDAsMHgzYSwweDExLDB4MDksMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDEgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4MzAsMHgwMSwweDBjLDB4ODAsMHgwMywweGIwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhiZSwweDAwLDB4MjIsMHg4MCwweDAzLDB4ZTgsMHgwMiwweDFhLDB4MDgsMHhiZSwweDQ4LDB4MjIgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHhiOCwweDAwLDB4Y2EsMHgwOCwweDIyLDB4ODAsMHgwZiwweGE0LDB4MDIsMHgwOCwweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4OGQsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyYSwweDgxLDB4MDgsMHhhMCwweDAyLDB4OGEgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0NCwweDAwLDB4YjMsMHgwMCwweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MDgsMHgwMCwweGIwLDB4NjQsMHg2OCwweGMxLDB4MDgsMHhiMCwweDIyLDB4Y2MsMHgwYywweDkzLDB4ODAgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4MDAsMHhjMCwweDQ4LDB4MzYsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwNiwweDBjLDB4MDEgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4YTMsMHgwMiwweDJjLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MDgsMHhiNSwweDAwLDB4MjEsMHg0MCwweDBiLDB4MzgsMHg4MiwweDFjLDB4MjEsMHhiNywweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4ZTgsMHg0YSwweDcyLDB4MjYsMHg5ZSwweDQwLDB4OGYsMHg4MSwweGFiLDB4NDAsMHg0MiwweDcwLDB4NTIsMHgzOCwweDAwLDB4YTMgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4MjIsMHgyMCwweGM0LDB4NDksMHgzMSwweDAyLDB4MWUsMHgwYSwweGI3LDB4MjIsMHgyZCwweGU4LDB4MDgsMHg3MiwweDAyLDB4YTggfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjYsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MGIsMHg3OCwweDBiLDB4MWUsMHgwMCwweGI0LDB4ODIsMHgzYiwweGU4LDB4NGMsMHg3YywweDEzLDB4ZmUsMHgwMiwweDk3LDB4ODAgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4MzMsMHhhMCwweDA4LDB4MzgsMHgwMywweDlhLDB4MDAsMHhmNywweDg4LDB4MzUsMHhlMiwweDBjLDB4NzgsMHhlMywweDBlLDB4MDAgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4ZTMsMHhlOCwweDM0LDB4ZjgsMHgwYywweDNjLDB4MjMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MDgsMHgxZCwweGE4LDB4MDQsMHhmMSwweDAwLDB4M2UsMHg0MiwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4Y2MsMHgxZSwweGI2LDB4MDcsMHhlZCwweDgwLDB4ZmIsMHgwMCwweDM2LDB4MDAsMHgwZiwweGIwLDB4NDMsMHg2OCwweDAwLDB4Y2IgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4MzAsMHgzZSwweGQ4LDB4MGYsMHhiNiwweDBiLDB4ZWQsMHg0MCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MmYsMHhiNiwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMiwweDQwLDB4ZmIsMHg5MSwweDNkLDB4NGMgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4ODAsMHhmOCwweDAzLDB4ZGUsMHg0MCwweGM2LDB4ODAsMHgxYiwweGYwLDB4NGYsMHhmZCwweDA3LDB4ZmYsMHgwMCwweGNkLDB4ODAgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4NjgsMHgwMywweGJhLDB4MDAsMHhmZiwweDgwLDB4MzMsMHhlMCwweDA3LDB4ZjgsMHgwMywweDNmLDB4MTAgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4YTgsMHgxMSwweDkwLDB4MDAsMHhiNSwweGMwLDB4MmQsMHg0MCwweDA4LDB4NjIsMHgwMiwweGRjLDB4MjAsMHhkNiwweDAyLDB4MjEgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4MDIsMHhkYywweDgxLDB4YjUsMHgwMCwweDgxLDB4NDQsMHgwZCwweDYxLDB4MjIsMHgxOCwweDA0LDB4YjcgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MCwweDAyLDB4YmMsMHgwMCwweGE3LDB4MDEsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAxLDB4YjYsMHgwMSwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwYSwweDk2LDB4MTAsMHgyOSwweGMxLDB4NGIsMHg3MCwweDA2LDB4ZGMsMHgxMCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4NjAsMHg4MiwweDFhLDB4MjAsMHhhMywweDAwLDB4MjUsMHhjMCwweDBiLDB4MzEsMHgwMiwweDVjLDB4NDAgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4ODcsMHgwMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCwweDg4LDB4MjAsMHgwMiwweGVkLDB4MDAsMHg4YSwweDYwLDB4MjAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDA0LDB4YjEsMHgwMCwweDI0LDB4MDAsMHgyOCwweDI0LDB4MDIsMHgwYSwweDAwLDB4MzMgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MGIsMHhiMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDAsMHgyYywweGMwLDB4ODgsMHgzMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzYgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTUsMHgwMCwweDA5LDB4YzgsMHhhYiwweGUyLDB4MGIsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDRhLDB4MDAgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MzYsMHhjMCwweDA4LDB4OTAsMHgwMywweGE2LDB4MDAsMHhmZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4OGYsMHgwMCwweDJmLDB4YzAsMHgyOCwweGYwLDB4MDIsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4ODAsMHgwMCwweGUxLDB4MDAsMHhmYSwweDAxLDB4M2UsMHhjMCwweDBmLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmOSwweDQwLDB4M2UgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4YzAsMHgwNywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmEsMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhlNSwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4ZmMsMHgyMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4MGMsMHhjOCwweDAzLDB4ZmMsMHgyMCwweGNkLDB4ODEsMHhiMywweGMyLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4M2MsMHg4MCwweDBjLDB4ZDAsMHg4MiwweDM2LDB4MDEsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDggfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4Y2YsMHgwNCwweDNhLDB4YzAsMHg1YywweGIwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4ODEsMHgwNCwweDYyLDB4MDQsMHhiOCwweDQwLDB4MmMsMHg2MCwweDA4LDB4ODksMHgwMiwweGVlLDB4ODAsMHhhOSwweDYwLDB4MmEgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4MDMsMHg4YywweDAwLDB4YWEsMHg0MCwweDJlLDB4MDAsMHgwOCwweDEwLDB4MDIsMHgyNiwweDgxLDB4ZWIgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgyNiwweGMwLDB4OGIsMHhiMCwweDEzLDB4NmMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4M2QsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMywweDAwLDB4YmIsMHgwMywweDJlLDB4YzggfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4MDksMHhiMCwweDAyLDB4ZWUsMHgwMCwweDhiLDB4MTAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGE4LDB4MDAgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4MmUsMHhjMCwweDA4LDB4ODgsMHgyMiwweGE0LDB4ODAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4YjAsMHgyMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMiwweDAwLDB4MmUsMHhjMCwweDI5LDB4MjgsMHgwMiwweGVjLDB4MDEsMHhhMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAsMHgwMCwweDJjLDB4NDAsMHgwOCwweDAwLDB4NDIsMHg4NCwweDAwLDB4OTMgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4MDAsMHg2YywweGMwLDB4MGIsMHgzMCwweDA2LDB4NGQsMHgwMCwweDkzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgyMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzMywweGMwLDB4MGIsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MmUsMHg4MCwweDA4LDB4ODAsMHgwMywweGE0LDB4MDAsMHhiZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweDNkLDB4MTEgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4Y2YsMHgwMywweDNlLDB4YzEsMHg1ZCwweGYwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDEwLDB4M2YsMHg0MCwweDBlLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MDMsMHhiYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgyZiwweGMwLDB4MDMsMHg3NCwweDAwLDB4ZWYgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgyNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhmYywweDg4LDB4OWMsMHgyOSwweDNmLDB4MDggfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4MGYsMHhkMiwweDgzLDB4ZWMsMHgwMCwweGZmLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhjYSwweDAzLDB4M2MsMHg0MSwweGNmLDB4MjAgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4NzMsMHgyYywweDBjLDB4YzAsMHgwMywweDMwLDB4MjAsMHhjZiwweDYwLDB4MzMsMHhkOCwweDBmLDB4NzgsMHgwMywweDNmLDB4ODAgfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4ZGQsMHg5MiwweDMzLDB4YzgsMHgwZiwweDUwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4ODAsMHgxMCwweGU1LDB4NDAsMHg4OCwweDQwLDB4MmUsMHgwNCwweDhiLDB4OTQsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MGUgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4N2YsMHg4ZiwweDllLDB4ODMsMHg2NSwweDgyLDB4Y2YsMHg2OCwweDNlLDB4NTAsMHg4ZCwweDA0LDB4OTIsMHgyZiwweDA0LDB4ZDMgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4NDAsMHg3NCwweGRjLDB4MGQsMHhhMiwweDAyLDB4MjAsMHg0MCwweDg5LDB4MDAsMHgyMiwweGYwLDB4MGIsMHg5OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDA5LDB4YTAsMHg4NSwweDJjLDB4MDEgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4MGIsMHgwMCwweDEwLDB4Y2MsMHg0MCwweGEyLDB4MDgsMHgyYywweDAwLDB4ZGIsMHgxMSwweDAyLDB4ODksMHgwMCwweDkzLDB4MzAgfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4MjAsMHgwNSwweDA4LDB4MTMsMHgwMiwweDgwLDB4MDgsMHhhMywweDYwLDB4NjAsMHhjMCwweDBhLDB4YjAsMHg4MiwweDA4LDB4ODQgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4ODEsMHgyMCwweDIwLDB4ZDAsMHgwYiwweDEwLDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4MTIsMHg4OCwweDgwLDB4NmUsMHgyMCwweDBiLDB4ODgsMHg4MiwweGVlLDB4MDAsMHhiYSwweDgxLDB4MmUgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4NjAsMHg1YSwweDk4LDB4MDIsMHhhMiwweDAwLDB4OGIsMHgwMCwweDJhLDB4NjAsMHgwOCwweDExLDB4MWEsMHgyYywweDAwLDB4YmIgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiOCwweDBhLDB4MjgsMHgwMCwweDgxLDB4MjAsMHgwMiwweGMwLDB4MGIsMHg5MCwweDAyLDB4YjAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlZCwweDAwLDB4ZDksMHg4MCwweDNlLDB4MjAgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4NGYsMHg5OCwweDAwLDB4ZWIsMHgyMCwweGZiLDB4ZTAsMHgyZSwweDYwLDB4MGIsMHg4YywweDYyLDB4YWUsMHgyMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4MjIsMHg2MCwweDA4LDB4YmMsMHgwMywweGEwLDB4MjAsMHhlYiwweDAwLDB4MjIsMHhjMSwweDBhLDB4MTgsMHgwYiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4ZDksMHgwMCwweGIyLDB4YzAsMHgwZiwweDkwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4ODgsMHhmZiwweDAwLDB4M2YsMHgwMSwweDBmLDB4ZDAsMHgwMSwweGYwLDB4MDgsMHhkZCwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4NDIsMHgwNywweDQwLDB4MDMsMHg1YywweDAwLDB4YWYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGY4LDB4MDAsMHhmMCwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4ZjQsMHg1MCwweGZkLDB4ODAsMHgzZiwweGMwLDB4MGYsMHhkMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4MGYsMHg5NCwweDAzLDB4YTgsMHgyMCwweGNhLDB4NDAsMHgzYSwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZWEsMHgwOCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4M2EsMHgwMCwweDRjLDB4ZjYsMHgyMywweDJjLDB4MzAsMHhjYiwweDAwLDB4MzYsMHhjMCwweDBkLDB4OTAsMHgwMywweGExLDB4MDIgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4ZDksMHgwMCwweGJhLDB4YzAsMHgwZiwweDk4LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4YzgsMHgwNSwweDI0LDB4MDAsMHg4YSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTUsMHgwMiwweGUwLDB4MDgsMHg4OCwweDgwLDB4MjIgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4NzAsMHg4ZiwweDhjLDB4MDIsMHhlMCwweDAwLDB4YmYsMHgwMiwweDIwLDB4MDAsMHgwOCwweGI4LDB4MDIsMHgwZSwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4MDAsMHgyMywweGRkLDB4MDgsMHg5OCwweDgyLDB4MmEsMHgwMCwweDg5LDB4ODAsMHgyMywweGMwLDB4MGIsMHg1MCwweDFhLDB4MzIgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0NCwweDAwLDB4ODMsMHgwNSwweDI0LDB4NDEgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4MDksMHgxMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4OTAsMHgyYywweDgwLDB4MWIsMHgyNCwweDgyLDB4Y2MsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MmMsMHg4MCwweDA4LDB4MDQsMHgwOCwweDA0LDB4MDEsMHg4YiwweDAwLDB4MjIsMHhjMCwweDI4LDB4MTIsMHgwMiwweDZjLDB4ODAgfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4ODEsMHg0OCwweDI0LDB4YzQsMHgwYiwweDEwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4NDIsMHg4NiwweDgwLDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGY2LDB4OTAsMHg4ZCwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MjIsMHgwYiwweDU4LDB4MDIsMHhkNywweDQwLDB4YjcsMHg5MCwweDIxLDB4ZTAsMHgwOCwweDQ5LDB4OTIsMHgxZSwweDUzLDB4OTcgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4ODEsMHgyMSwweGUwLDB4NDgsMHhjOCwweDBhLDB4NTIsMHgyMiwweDg1LDB4ODgsMHgyNSwweGUwLDB4MGIsMHg1OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODMsMHgwMCwweDM0LDB4YzAgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MGYsMHgwMCwweDAzLDB4Y2UsMHgyMCwweGMzLDB4MzAsMHg3YywweDk0LDB4MGIsMHgzNCwweDgzLDB4Y2MsMHgxNCwweGYzLDB4MDIgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4M2MsMHg4MCwweDBjLDB4MDQsMHgwMywweDA0LDB4NjAsMHhjMywweDAwLDB4YjAsMHhjMCwweDBjLDB4MTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4YzksMHgwMCwweDNjLDB4YzQsMHgwZiwweDExLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4NDAsMHgxZCwweDljLDB4MDAsMHhlZSwweDAxLDB4M2YsMHhjMCwweDRmLDB4ZTEsMHgwMywweGQ0LDB4NDAsMHhmNSwweDE2LDB4N2EgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4YzAsMHg0ZSwweGYwLDB4MDMsMHhmNCwweDEwLDB4MzcsMHgwNSwweDNkLDB4YzAsMHgwZiwweGMwLDB4MGIsMHhkYywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgzYiwweGMyLDB4MGUsMHhkMCwweDA3LDB4YmMsMHgwMiwweGVmLDB4MDAsMHgzYiwweGM2LDB4MGYsMHhkMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4ZGQsMHg4NCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4MDQsMHhmMCwweDAzLDB4NmMsMHgwMiwweGNiLDB4MDIsMHg3ZSwweGMwLDB4MWYsMHhhMCwweDUzLDB4ZWMsMHgwMCwweGNiLDB4MjAgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MzQsMHg0MCwweDBjLDB4ZDAsMHgwYiwweDIwLDB4MTAsMHhlYiwweDAwLDB4MWUsMHhlMCwweDBmLDB4MzAsMHgwYiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4YzEsMHgwMCwweDMyLDB4YzAsMHgwZiwweDkxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4MCwweDA4LDB4NjAsMHgwMCwweDE0LDB4MDAsMHg4NSwweDAwLDB4MmQgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4NTIsMHhkNCwweDA0LDB4ODMsMHgyOCwweDI5LDB4YzAsMHgyOCwweDUwLDB4MDMsMHg1MCwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4NDAsMHgyNSwweGM4LDB4MGYsMHg2MCwweDAyLDB4MDQsMHgwMCwweGE3LDB4MDAsMHgzZCwweGM4LDB4MGIsMHg1MiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4OTUsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4MDksMHgzOCwweDAyLDB4MWUsMHgxMSwweGE3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDUyLDB4Y2UsMHgwYSwweDk3LDB4OTUgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MjEsMHhlMCwweDE5LDB4NWMsMHgwMiwweDBlLDB4MDAsMHhhNywweDgwLDB4MjksMHhjOCwweDBiLDB4ZjgsMHgwMiwweDFlLDB4MjAgfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4OGQsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDU4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MiwweGUwLDB4YTAsMHhlOCwweDI5LDB4MzAsMHgwNiwweDBlLDB4NTAsMHhhYiwweDgwLDB4MmMgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4ZjAsMHgwYiwweDMxLDB4NDIsMHhjYywweDAwLDB4OTMsMHgwMCwweDI4LDB4YzQsMHgwOSwweDk4LDB4MDIsMHg0YywweDI4LDB4ODMgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MGEsMHhiMCwweDAyLDB4MGQsMHgwMCwweGEyLDB4NTgsMHgyOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZGUsMHg4MCwweDMxLDB4YTAgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4MDksMHhlMiwweDBiLDB4NzgsMHgwNCwweGVlLDB4YTQsMHgyZiwweGE0LDB4OGIsMHhlYywweDAyLDB4ZDgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4MjcsMHg4MSwweDBkLDB4ZWMsMHgwNiwweDFiLDB4MDAsMHhlYSwweDA0LDB4M2UsMHg4MCwweDBiLDB4ZTAsMHgwMywweDNiLDB4MDAgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4Y2UsMHhjMCwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmOCwweDEwLDB4M2UsMHgwNSwweDBlLDB4ODgsMHgwMywweGUwLDB4MDgsMHg5OCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4ODMsMHhlMSwweDQwLDB4ZTgsMHgwMCwweDNhLDB4MDIsMHgwZSwweDgwLDB4NDMsMHhlMSwweDQwLDB4ZjggfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MDQsMHgyMCwweGU5LDB4OTAsMHgzMiwweDY4LDB4MGUsMHg5OCwweDAzLDB4YTQsMHgwMCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4MzAsMHg0MCwweDBjLDB4OTQsMHg4MywweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGE0LDB4MDAgfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4YzksMHgwMCwweDMwLDB4NTAsMHgwYywweDFhLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg1MCwweDI4LDB4OTAsMHgwYSwweDI0LDB4MDgsMHg4OSwweDA2LDB4MTYgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4NjEsMHgwYiwweDljLDB4MDIsMHhlNCwweDIwLDB4YTksMHgwMCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDIsMHgyNywweDYwLDB4YTkgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDFhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzNiwweDQwLDB4MjgsMHg5OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyYywweDAwLDB4YTksMHgwOCwweDJlLDB4YzIgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4MDksMHgxMCwweDAwLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgwNiwweDQwLDB4ODksMHg5NiwweDA2LDB4ZTYsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjQsMHg0MCwweDA4LDB4OTAsMHgwMiwweDBjLDB4MDYgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4ODMsMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDQ0LDB4MmMsMHg1MCwweDA4LDB4MTQsMHgwMiwweDA1LDB4ODAsMHg4MSwweDIwLDB4NjQgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4NzAsMHgxYiwweDE0LDB4MDIsMHhlNCwweDgwLDB4YTEsMHgyMCwweDY0LDB4NDAsMHgxOSwweDEyLDB4MGEsMHgwNCwweDgwLDB4YTEgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgyYywweDUwLDB4MTgsMHgxNCwweDAyLDB4ODUsMHgwMCwweDgxLDB4NDAsMHgyNCwweDQwLDB4NDAsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTAsMHgwMCwweDNjLDB4MDAgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4MGQsMHg4MCwweDAyLDB4MDAsMHgwMCwweGFhLDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTIgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4NzIsMHgxNCwweDBjLDB4MDUsMHgxNiwweDIwLDB4MDgsMHhjOCwweDUwLDB4M2UsMHgwMSwweDBjLDB4ODAsMHgwMywweGEwLDB4MDQgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4OTgsMHgxOSwweGY1LDB4MDIsMHhmZCwweDQwLDB4M2YsMHhkMCwweDBmLDB4ZDQsMHgyMywweGY0LDB4NDQsMHhmZCwweDE0LDB4N2YgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4NTAsMHgwZiwweGQ0LDB4MDcsMHhmNCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NTAsMHgwNywweGQxLDB4MjMsMHhmNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4NDAsMHgxZSwweDUwLDB4MDcsMHhkMCwweDBiLDB4NzUsMHgwMCwweGZkLDB4MDIsMHgzZSwweDUwLDB4MGYsMHhkNCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDAwLDB4YzksMHhhOCwweDNlLDB4NzIgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4ZTYsMHhjMCwweGZkLDB4YTAsMHhiMywweDQwLDB4MGYsMHhkMCwweDAzLDB4NzcsMHg4MCwweGNkLDB4OTAgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4N2YsMHg0MCwweDBmLDB4ZGEsMHhhMywweDE2LDB4OTAsMHhhOSwweGMwLDB4MzIsMHg2MCwweDRjLDB4YjEsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4YzEsMHgwMCwweDMzLDB4NmEsMHgwYiwweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4NDAsMHg4OCwweGUwLDB4MmUsMHgzMCwweDBiLDB4OGQsMHgwMiwweGYzLDB4NDAsMHhiOCwweGU4LDB4NzYgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MDAsMHg0ZiwweDgwLDB4MGEsMHgyMiwweDgwLDB4ODgsMHg5MCwweDZlLDB4MjgsMHg4ZiwweDhhLDB4MDMsMHg2MSwweDQ0LDB4ZjggfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4ZTEsMHgzZSwweDJhLDB4MDgsMHg4OCwweDAzLDB4NDIsMHhhMCwweGRjLDB4YTAsMHgzZSwweDEwLDB4MGIsMHg4NSwweDBhLDB4MGUgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweGEwLDB4ODUsMHgwOCwweDJkLDB4NDggfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MWIsMHg1MiwweDgyLDB4ZDQsMHg4MCwweGIxLDB4MTQsMHgyMCwweDQwLDB4MGIsMHgxOCwweDAyLDB4MDUsMHg4MiwweDgxLDB4MDAgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4NmMsMHg0MiwweDBiLDB4MTIsMHg4MiwweDA0LDB4MDAsMHhhMSwweDYwLDB4MjEsMHg1MCwweDBiLDB4NTAsMHgwMiwweDE0LDB4OTAgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4OTUsMHgyYywweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4ZCwweDQ0LDB4MmYsMHg0MCwweDBiLDB4ZDQsMHgwMiwweGY0LDB4MDQsMHhiOSwweDA4LDB4MjIgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4NDAsMHgwYSwweDkyLDB4MDIsMHgyYywweDg0LDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYSwweDE0LDB4MDIsMHg2YywweDgwLDB4YTkgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4MDEsMHgyYSwweDQwLDB4MDksMHg1MCwweDBhLDB4NWMsMHgwMiwweDhkLDB4NjAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDQyLDB4MDYgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDYyLDB4YzksMHgwMiwweDNlLDB4NTQgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAsMHgyMiwweDQ2LDB4MGIsMHg5OCwweDAzLDB4NjcsMHgyMCwweGM5LDB4MDEgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MmUsMHg2OSwweDBiLDB4OTQsMHgwYiwweDI1LDB4MjAsMHhhOSwweDAwLDB4MjIsMHg0MCwweDJkLDB4OTIsMHgwYSwweDI2LDB4MjIgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4OTksMHgwMCwweDJhLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDIsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhmMSwweGEwLDB4M2UgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4NjIsMHgwZiwweDk4LDB4ODMsMHhjNiwweDIwLDB4ZjksMHgwMCwweDNlLDB4NDksMHgwZiwweDkwLDB4ODMsMHhlNCwweDAwLDB4NzEgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDBiLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDEwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4NGYsMHg4MCwweDQzLDB4YjAsMHgwMCwweGM4LDB4NDEsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjEsMHgwMiwweGM4LDB4MDIgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4M2UsMHgxMCwweDRjLDB4ODAsMHgwMywweDAxLDB4MjAsMHhjOCwweDAwLDB4M2IsMHgwMCwweDBjLDB4YzAsMHgwMywweGIwLDB4MDAgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4Y2MsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDgwLDB4MmUsMHg4MCwweDBiLDB4YTAsMHgwMiwweGY4LDB4MDQsMHg4ZSwweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4YjIsMHgwZSwweGUwLDB4ODIsMHhmOSwweDA0LDB4OGEsMHgwMCwweDJlLDB4ODEsMHgwYywweGUwLDB4MGEsMHgzYSwweDgwLDB4ZGEgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgyMiwweGI2LDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyYSwweDgwLDB4MGIsMHg2MCwweDBiLDB4MGEgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0NCwweDAyLDB4OTMsMHg4MSwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4NGIsMHgzMCwweDAyLDB4YzgsMHgwMCwweDgzLDB4Y2EsMHgyMCwweGUwLDB4MTksMHhiMCwweDA2LDB4OGMsMHgwMCwweDgxLDB4MDQgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4NDQsMHg0MCwweDA4LDB4MzQsMHgwMiwweDBkLDB4MDAsMHg4MywweDAwLDB4MmEsMHgwMCwweDA4LDB4MDAsMHgwYSwweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4ODgsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0YiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4YTAsMHgwMSwweDA0LDB4MDIsMHg5NywweDA4LDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwNiwweGNhLDB4MDAsMHg4MywweDA5LDB4MjEgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4YzAsMHgwYSwweDcwLDB4MDIsMHhkYywweDAwLDB4ODUsMHgzMSwweDJkLDB4NjgsMHgwOSwweDMwLDB4MDIsMHgxYywweDE0LDB4OTMgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4MjAsMHgyMCwweGMwLDB4MDgsMHhmMCwweDQyLDB4OWMsMHgwMiwweDhmLDB4MDAsMHgyOSwweDQwLDB4MDMsMHg3MCwweDEyLDB4MjggfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4OTYsMHg4NCwweDNkLDB4YTAgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MGYsMHg3OCwweDAzLDB4OWEsMHgwMiwweDg3LDB4ODAsMHhiMSwweGUwLDB4MGIsMHg3OCwweDAzLDB4YjYsMHgwMCwweGM1LDB4YTAgfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MzUsMHg2MSwweDBjLDB4NzgsMHgxMywweDFlLDB4MDIsMHhjNywweDgwLDB4MjksMHgwMCwweDBjLDB4NDgsMHgwMywweDkwLDB4MDAgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4YzQsMHg4MCwweDMxLDB4NjAsMHgwZiwweDU4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MDgsMHgxZCwweGE0LDB4MDAsMHhlYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGU4LDB4MDgsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4ODAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDA4LDB4ZjksMHgwMCwweDNjLDB4NTAsMHgyZSwweGYwLDB4MDMsMHhlOCwweDA4LDB4ZmIgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHgzMCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgzMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkNiwweDAwLDB4Y2QsMHg4MCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4MGMsMHhmOCwweDAzLDB4ZmEsMHgwMCwweGZkLDB4ODAsMHgzZiwweGEwLDB4MGQsMHhmOCwweDAzLDB4ZmEsMHg0MCwweGNkLDB4ZDAgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4NzcsMHg3ZSwweDBjLDB4ZTgsMHg0MywweDFlLDB4MDAsMHhjZiwweGQ4LDB4M2YsMHhlMCwweDBjLDB4YzgsMHgwMywweDNhLDB4YzQgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4Y2MsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4MDIsMHg4ZCwweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMywweGQ4LDB4MTAsMHgzNSwweDIwLDB4OGIgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4ZDQsMHgwZCwweDY0LDB4MDMsMHhkOCwweGMwLDB4ODUsMHgwMCwweDJmLDB4NGUsMHgwNywweDY0LDB4MDIsMHg5YywweDAyLDB4ZDcgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4MzAsMHgyZiwweDA0LDB4MGQsMHhmMSwweDBiLDB4NTQsMHg0MCwweGFmLDB4MDAsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NCwweDQwLDB4ODQsMHgxOCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGEsMHgyMCwweGI1LDB4MDAsMHgwOSwweDAwLDB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwNCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4NmQsMHg0YywweDg5LDB4NjAsMHgwMiwweDVjLDB4NDAsMHg5NywweDAwLDB4NmQsMHhjMCwweDA5LDB4NDAsMHgwMiwweDU4LDB4ODAgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4ODQsMHg4OCwweDI1LDB4NDAsMHgwOCwweGQwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4MjAsMHgxNCwweGM2LDB4NDgsMHg4MCwweDAwLDB4MjAsMHg4MCwweDA4LDB4YWMsMHgwMiwweGE4LDB4MDAsMHhiMSwweDAwLDB4YTggfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4ODgsMHgwOSwweDIyLDB4MDIsMHg4NiwweDQyLDB4ODEsMHgwMCwweDZjLDB4NTIsMHgwYiwweDIwLDB4MDIsMHhjNywweDUyLDB4ODMgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgyYywweDAwLDB4MDgsMHgzNCwweDgyLDB4NjcsMHgwMCwweGEzLDB4ODAsMHgyMCwweDQwLDB4MDgsMHgzMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMywweDAwLDB4Y2IsMHhjMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4MmMsMHg5MCwweDgyLDB4ZTYsMHgwMCwweGJiLDB4ODAsMHhiZSwweDc4LDB4MDgsMHg4ZSwweDAyLDB4ZWUsMHgwMCwweDhkLDB4MDAgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MjcsMHg2MCwweDBkLDB4OTAsMHgwYSwweDZmLDB4MDAsMHg5ZiwweDAyLDB4MmUsMHgwMCwweDA5LDB4YjQsMHgwMywweDY3LDB4ODAgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4Y2EsMHg0MCwweGU0LDB4YzAsMHgwYywweDMwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4ODAsMHhmYiwweDIyLDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGU0LDB4MDAsMHhmYiwweDgwLDB4M2UgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZSwweDcwLDB4MjMsMHhhYywweDIwLDB4ZmIgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4OGYsMHg4MCwweDAzLDB4ZTksMHgyMCwweGY5LDB4MDgsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4YzYsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4MGYsMHhkMSwweDgzLDB4MzQsMHg0MCwweGNmLDB4MDAsMHgzZCwweDQwLDB4MGMsMHhkMCwweDAzLDB4ZGUsMHg1MCwweDBkLDB4MDAgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4NzMsMHg0MCwweDBjLDB4ZDEsMHgwMywweDdjLDB4NDAsMHg4NywweDAyLDB4YjMsMHgwMCwweDBkLDB4ZjQsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4Y2UsMHgyMCwweDMyLDB4NDAsMHgwYywweGQwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4ODEsMHgwNCwweDYxLDB4MjIsMHg4YSwweDAwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHg0MCwweDI1LDB4MDAsMHg4OSwweGMzLDB4MmUgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MjAsMHgwYSwweDk4LDB4MDMsMHhhMSwweDAwLDB4ODksMHgwMCwweDM2LDB4NDAsMHg4OCwweDk0LDB4MDIsMHgwZiwweDAxLDB4YWIgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4MDAsMHgzMiwweGMwLDB4MDgsMHgwNCwweDBhLDB4MjksMHgwMCwweGE5LDB4MDIsMHhhMiwweDQwLDB4MGQsMHhiMCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwMCwweDAwLDB4ODksMHgwMCwweDIyLDB4NjEgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjUsMHgwMSwweDliLDB4ODgsMHgyZSwweDYwLDB4MDgsMHg4OCwweDAyLDB4ZTgsMHgwMCwweGIxLDB4MDIgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MjQsMHg0MCwweDE4LDB4OTAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAxLDB4MjAsMHhjMSwweDA4LDB4YjQsMHg0MiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4ODIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MDAsMHgwYSwweDA0LDB4NDYsMHg4MywweDAxLDB4MmMgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4NDAsMHgxYSwweDAwLDB4MDYsMHg4MCwweDAwLDB4ODEsMHgwMCwweDI0LDB4NDAsMHgwOCwweDIwLDB4MGEsMHgwYywweDAxLDB4YTMgfSwKLSAgMTYsIDB4ZmRhMCwgMCwgezB4MDAsMHgyNCwweDAwLDB4MDgsMHg4MCwweDAyLDB4MDAsMHgwMCwweGExLDB4MDAsMHgyMCwweDQwLDB4MDksMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZmRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAyLDB4YzgsMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4ZmRjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4MjUsMHgwMCwweGRhLDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4Y2MsMHgwMCwweGZkLDB4MDAgfSwKLSAgMTYsIDB4ZmRkMCwgMCwgezB4MzcsMHg0MCwweDBjLDB4MTAsMHgxMywweDJjLDB4MDIsMHhhZiwweDAwLDB4MzIsMHhjMCwweDBkLDB4YjAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmRlMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4NDAsMHg0YywweDkwLDB4MGIsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmRmMCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGY0LDB4MWMsMHhmNCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZmUwMCwgMCwgezB4MDAsMHgxZiwweGMwLDB4MjMsMHhiMCwweDAyLDB4OWQsMHgwMSwweDNmLDB4NDAsMHg4ZiwweGMwLDB4MDcsMHhmYywweDAyLDB4ZmYgfSwKLSAgMTYsIDB4ZmUxMCwgMCwgezB4MDAsMHg3YiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZmUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYSwweDAwLDB4Y2IsMHg4MCwweDNmLDB4MjQgfSwKLSAgMTYsIDB4ZmUzMCwgMCwgezB4MGEsMHhjMSwweDAzLDB4ZmMsMHgyNCwweGNkLDB4MjAsMHgzNywweDBhLDB4MGMsMHhjMiwweDgzLDB4MzAsMHg4MCwweGRjLDB4MDIgfSwKLSAgMTYsIDB4ZmU0MCwgMCwgezB4M2YsMHhjYywweDBkLDB4ZDksMHgwMywweDNjLDB4NTgsMHhkZiwweDMwLDB4MzMsMHhjOCwweDBkLDB4ZjQsMHgyMywweDNjLDB4NDAgfSwKLSAgMTYsIDB4ZmU1MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzUsMHg0ZiwweGYwLDB4MjMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmU2MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDIsMHgwYiwweDgyLDB4MmUsMHgwOCwweDBkLDB4YjcsMHgwMiwweGZkLDB4MDAsMHg4MywweDE4LDB4MGEgfSwKLSAgMTYsIDB4ZmU3MCwgMCwgezB4NTgsMHgwYSwweDg0LDB4YTIsMHhhNSwweGEwLDB4ODksMHgzMCwweDIyLDB4NTUsMHgwOCwweDEyLDB4NjIsMHhiZCwweDkwLDB4OGYgfSwKLSAgMTYsIDB4ZmU4MCwgMCwgezB4NjIsMHgyMSwweGQ2LDB4NDgsMHhmMywweDAyLDB4M2MsMHhjNSwweGJmLDB4NDgsMHgyZiwweGQ4LDB4NGIsMHhiNywweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZmU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlYywweDAwLDB4ODMsMHgwMCwweDJlLDB4ODkgfSwKLSAgMTYsIDB4ZmVhMCwgMCwgezB4MjgsMHgwMCwweDAyLDB4ZWMsMHhhMCwweDg5LDB4MjIsMHgyOCwweDgyLDB4MDgsMHgxMiwweDAyLDB4MjgsMHg0MCwweDlhLDB4MDggfSwKLSAgMTYsIDB4ZmViMCwgMCwgezB4MjgsMHhjOCwweDg4LDB4YjIsMHgwYSwweDBkLDB4MTAsMHg5MywweDEwLDB4YTAsMHhjOCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZmVjMCwgMCwgezB4YjMsMHg2MCwweDJjLDB4YzQsMHgwYiwweDMwLDB4YzIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg4YiwweDAwLDB4MmUsMHg4MCwweDA4LDB4YjEsMHgwMiwweGVjLDB4MDIsMHg4YiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZmVlMCwgMCwgezB4ZDAsMHgwYSwweDkwLDB4MDIsMHhhYywweDAwLDB4MGIsMHgwMSwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg4YywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZmVmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZmYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTQsMHg4YywweDIwLDB4Y2IsMHgwMiwweDNlLDB4MmQgfSwKLSAgMTYsIDB4ZmYxMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZWMsMHgwOCwweGM5LDB4ODAsMHgxZSwweDA0LDB4MGMsMHhiMCwweDAzLDB4MDEsMHgwOCwweDUwLDB4MTggfSwKLSAgMTYsIDB4ZmYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MDQsMHgwMywweDJjLDB4MDAsMHhkYiwweDAxLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwYiwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZmYzMCwgMCwgezB4YmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmY0MCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg2MCwweDBmLDB4YzAsMHgyMywweGVjLDB4MDAsMHhmZiwweGMwLDB4YmUgfSwKLSAgMTYsIDB4ZmY1MCwgMCwgezB4NjAsMHg4ZiwweGM5LDB4MjMsMHhmNiwweDUwLDB4ZWQsMHg4MCwweGI4LDB4NTAsMHhhZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZmY2MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZmY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ZmY4MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4MmMsMHgwMCwweDg5LDB4MDAsMHgzZSwweDk4LDB4OGMsMHgzMCwweDAzLDB4NjEsMHg4MCwweGZhLDB4NDAgfSwKLSAgMTYsIDB4ZmY5MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4YTUsMHgwMywweDJjLDB4MDAsMHhmYiwweDAxLDB4M2MsMHhjMCwweDJjLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmZhMCwgMCwgezB4ZGIsMHgwMiwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmZiMCwgMCwgezB4Y2EsMHgwMCwweDJlLDB4ODAsMHg4YiwweDgyLDB4YTAsMHhjMCwweDhjLDB4OTAsMHgwMiwweDNjLDB4MDAsMHg4YiwweGYwLDB4MjIgfSwKLSAgMTYsIDB4ZmZjMCwgMCwgezB4YzIsMHgwZCwweDgwLDB4MDIsMHgyNywweDAwLDB4OGIsMHgxMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MjIsMHgzYywweDAwLDB4YmYgfSwKLSAgMTYsIDB4ZmZkMCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwMCwweGJmLDB4MDEsMHhhMywweGMwLDB4MGIsMHhmMCwweDEyLDB4ZjIgfSwKLSAgMTYsIDB4ZmZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHgxYywweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZmZmMCwgMCwgezB4MDgsMHgwMCwweDA2LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyMCwweGQwLDB4MDgsMHgyMCwweDAyLDB4NGMsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ODAxMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MTAsMHgwYSwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MjIsMHgxMSwweDFlLDB4MDAsMHg5NywweGEwLDB4MjEsMHhhMCwweDA4LDB4NzksMHgwMiwweDFlLDB4MDAsMHg5NywweDkwLDB4MjEgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4NjAsMHgwOSwweGU4LDB4MjIsMHgzZSwweDAwLDB4YWYsMHg4NCwweDIxLDB4ZTQsMHg0OCwweDVjLDB4MDIsMHgxZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MDksMHg3OCwweDAwLDB4MWUsMHgwOSwweGIzLDB4OTAsMHgyMSwweGU0LDB4MGIsMHg3OCwweDAyLDB4ZDggfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTgsMHgyYywweDQwLDB4YjMsMHhiMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4MmMsMHg4MSwweDEzLDB4MGMsMHg0MiwweGQxLDB4MDAsMHhiMCwweGMwLDB4OGMsMHgzMCwweDAzLDB4NDgsMHgyMCwweGUzLDB4MDEgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4M2MsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhmMywweDEwLDB4M2MsMHhjMCwweGNkLDB4MzIsMHgwYiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4ZDMsMHgwMCwweDMwLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDBiLDB4ZjEsMHgwMywweGZkLDB4MDAsMHg2ZCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4NDAsMHgxZiwweDcwLDB4MDcsMHhkOCwweDQxLDB4YzMsMHgxMCwweDNiLDB4YzAsMHgwZiwweGQxLDB4MDMsMHhmZCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDAzLDB4ZWMsMHgxMCwweGZmLDB4MDgsMHgzZiwweGMzLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDA0LDB4ZmIsMHgwMiwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4MGIsMHhhMCwweDAzLDB4YWMsMHgwMCwweGRiLDB4MDAsMHgzNiwweDgwLDB4MGQsMHhiMCwweDAzLDB4YWMsMHgwMCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MzYsMHhjMSwweDJlLDB4OTAsMHgwMywweDJjLDB4MDAsMHhjYiwweGEwLDB4MzYsMHhkYywweDBmLDB4YjAsMHgwMywweDJkLDB4NjggfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4ZmIsMHhhMCwweDkyLDB4YzIsMHgwYywweGIxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDgsMHgzNywweDAwLDB4MmQsMHhjMCwweDBiLDB4ZTAsMHgwMiwweDFkLDB4ODAsMHhiNywweDA0LDB4MjMgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwYSwweDQwLDB4MDIsMHgxYywweDE4LDB4ODQsMHgwMCwweDI1LDB4YzAsMHgxOCwweDUwLDB4MzIsMHgwZCwweDgwLDB4YTMgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4MzAsMHgyMSwweGNjLDB4MGIsMHgzNCwweDgyLDB4MWMsMHgxMCwweGI3LDB4MzAsMHgyMSwweGM4LDB4MDgsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDIwLDB4YjcsMHg4MCwweDJkLDB4NjAgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4MGIsMHhmYywweDIyLDB4OWUsMHgwMCwweDhkLDB4ODAsMHgyNSwweGEwLDB4MDgsMHhmOCwweDIyLDB4OTIsMHgwMCwweGI0LDB4ODAgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MjUsMHhlMCwweDA4LDB4ZjgsMHgwMiwweDFlLDB4MDAsMHg4NywweGIwLDB4MjEsMHhlMCwweDA5LDB4N2EsMHgwMiwweDFlLDB4MTggfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4YjMsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4NDgsMHgwNCwweGM1LDB4MjAsMHhiMywweDAxLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMiwweDJjLDB4MDgsMHhiOSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MDMsMHgwYSwweDAwLDB4ODIsMHgyMiwweDA4LDB4OTAsMHgwZCwweDI2LDB4ZTQsMHgwOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDAyLDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyMiwweGMwLDB4MjgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg5OSwweDAwLDB4ZmEsMHgwMiwweDNmLDB4OTAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4MGYsMHhlYywweDIzLDB4YTgsMHgwMCwweGRhLDB4MDAsMHgzNSwweDgwLDB4MGQsMHhlMCwweDAyLDB4YmEsMHgwMiwweGZlLDB4YzIgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4YjYsMHhhMCwweDBlLDB4ZTQsMHgwYiwweDI4LDB4MDAsMHhjYSwweDAwLDB4YjIsMHg4MCwweDBmLDB4YTAsMHgwYiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODIsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDQwLDB4ZTgsMHgxMCwweDNhLDB4MDAsMHg0ZiwweDg0LDB4ODMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNSwweDAwLDB4YzksMHgwMiwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4MjQsMHgwMCwweGM5LDB4MDAsMHgzMiwweDY4LDB4MmYsMHgxMCwweDAzLDB4MjQsMHgwMCwweGU5LDB4MTQgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwYiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MWUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4ODAsMHgxNCwweDY0LDB4MDAsMHg4OSwweDAxLDB4MmUsMHg0MCwweDRiLDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweGMyLDB4YTIgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4NjAsMHg4OCwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHhjMSwweGEyLDB4NDAsMHg0OCwweDE2LDB4MDMsMHg2NCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MjgsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDQsMHgyNCwweDAwLDB4ODksMHgwMiwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4ODksMHg5MCwweDAyLDB4YWMsMHgwMCwweGExLDB4MDggfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4MjIsMHg0MCwweDA5LDB4OTgsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4ODksMHgwMCwweDI2LDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4MDgsMHgwMCwweDI0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MSwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4MjIgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEsMHgyNCwweDAyLDB4NDgsMHgwYSwweDkwLDB4MDIsMHg4NCwweGEwLDB4ODEgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4MjgsMHg2YywweDRhLDB4MDgsMHgxMiwweGQyLDB4MDQsMHhhMSwweDgxLDB4MjgsMHgyYywweDRhLDB4MDgsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHg2MSwweDQwLDB4YzgsMHgwMCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4MGYsMHg4NSwweDBiLDB4MjEsMHg0MiwweGNhLDB4NTAsMHgyMiwweDE0LDB4MGQsMHg4NSwweDQzLDB4YTEsMHg0MCwweGU4LDB4NTAgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4MzAsMHgwMCwweDBkLDB4ODUsMHgwMiwweGExLDB4YzAsMHhkOCwweDIwLDB4M2EsMHgwOCwweDJjLDB4ODIsMHgwYiwweDIwLDB4ODIgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4YzgsMHgyMCwweDM0LDB4MDksMHg4YywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4OTgsMHgwZCwweGZjLDB4MDIsMHhmOSwweDAwLDB4M2YsMHg0MCwweDRmLDB4ZDEsMHgwMywweGU0LDB4NDAsMHhmNSwweDE0LDB4YmYgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4NDQsMHgwZCwweDUxLDB4MjMsMHg1YywweDQwLDB4ZjUsMHgxMCwweDFmLDB4NGUsMHg0ZCwweDUwLDB4MDMsMHg2NCwweDA4LDB4ZjkgfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4MjgsMHgzZSwweDRhLDB4OGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzYSwweDRiLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNCwweDQwLDB4ZmQsMHgwMCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGRkLDB4MDAsMHgzYiwweDQwLDB4MGUsMHg5MCwweDAzLDB4NzQsMHgwMCwweDVkLDB4MDAgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4MzYsMHg2NCwweDBkLDB4ZDAsMHgwMCwweGE2LDB4MDAsMHhmOSwweDQwLDB4MzIsMHg3OCwweDBjLDB4OTksMHgwMywweDI0LDB4NDAgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4YzksMHg5MCwweDMyLDB4NTAsMHgwZiwweDliLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHhiOCwweDAwLDB4MjIsMHgwMSwweDA4LDB4ODAsMHgwYSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4MDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MjAsMHgwOCwweDhhLDB4OGIsMHhlMSwweDAwLDB4YjggfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4ODAsMHgyMiwweDMwLDB4MjgsMHgwZCwweDAyLDB4MjIsMHgwMCwweGQ4LDB4ZTQsMHgyMiwweDI4LDB4MGIsMHg4ZiwweDBhLDB4MGUgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4YjEsMHgwMCwweGEwLDB4NDAgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgwOCwweDQwLDB4MGEsMHg5MCwweDQyLDB4NDQsMHgwMCwweDkxLDB4MDAgfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4MjAsMHg1OCwweDI4LDB4OTAsMHgwMiwweDg1LDB4MDAsMHg4MSwweDIwLDB4YTAsMHg0YywweDA5LDB4MTIsMHgwYSwweDA0LDB4ODAgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4OTEsMHg0MCwweGEwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4OSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4NDAsMHgyOCwweDkwLDB4MjIsMHgwNCwweDAwLDB4ODksMHgxMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4ODEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDkxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4MmMsMHg5MiwweDEzLDB4MjQsMHgwMiwweGQxLDB4MTAsMHgzYSwweDQwLDB4MGUsMHgxMiwweDAzLDB4NjYsMHgwNCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4YjYsMHg0MCwweDBkLDB4MTksMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDA5LDB4OTAsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4ZDksMHgwMiwweDIyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4MmEsMHgwMSwweGE1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2NCwweDBmLDB4MTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgxLDB4M2UgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4NjYsMHg4ZiwweDkwLDB4MjMsMHhlNCwweDgwLDB4ZjksMHgwNCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDA0LDB4ZjkgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJhLDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgyNCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4MmMsMHg4NCwweDAzLDB4MjAsMHgwMCwweGI4LDB4MjAsMHgzZSwweDAwLDB4OGMsMHg4MCwweDAzLDB4YTAsMHgwMCwweDcwLDB4ODIgfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDIwLDB4MDggfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHhiZSwweDgwLDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDQsMHg4ZSwweDAwLDB4NmQgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4OTAsMHgwZCwweGEwLDB4MDIsMHgzYSwweDAwLDB4OGUsMHg4MCwweGEyLDB4ODAsMHgwZSwweGUwLDB4MGIsMHg2OCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4ODEsMHg0YywweDAwLDB4YjEsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MGMsMHgxOCwweGEzLDB4MDIsMHgyYywweDEwLDB4ODgsMHgzMCwweDA2LDB4ODIsMHg4MSwweGEwLDB4MDAgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4MmEsMHhjMCwweDBiLDB4MzAsMHgwYSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDFhLDB4YjAsMHgwMiwweDhjLDB4MDEgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MTAsMHhiNCwweDBhLDB4MmIsMHhjOCwweDA4LDB4MzEsMHgyNiwweDFjLDB4MDAsMHg4NiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4YzAsMHgwOSwweDcyLDB4MDIsMHgxZCwweDAwLDB4YTUsMHg0MCwweDI5LDB4YzAsMHgwYSwweDYwLDB4MDIsMHg1YywweDg4LDB4YjMgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4MjAsMHgyNSwweGM4LDB4MGEsMHg3MiwweDAyLDB4OWMsMHg4MCwweDk3LDB4MjAsMHgyYywweGU4LDB4ODAsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgxNiwweDAwLDB4YjUsMHg4MCwweDNkLDB4ZTIgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4MGMsMHg3YSwweDhiLDB4MGUsMHhjMCwweGE3LDB4ODEsMHgyYywweDIwLDB4MGMsMHhmYywweDAzLDB4OTIsMHgwMiwweGVmLDB4ODAgfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4MzksMHhlNCwweDBiLDB4ZDgsMHgwMSwweDFmLDB4MDAsMHhmNywweDgwLDB4YjMsMHhmNCwweDhlLDB4NzksMHgwMywweDhlLDB4MDAgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4YzcsMHhjNCwweDNkLDB4ZTgsMHgyYywweDdiLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhkZCwweDg3LDB4YjYsMHgwMywweGVkLDB4Y2MsMHhlOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4NDAsMHgwZiwweGIwLDB4MDcsMHhjYywweDEwLDB4MGIsMHgwMCwweDM2LDB4ZDgsMHgwZiwweDgwLDB4NDMsMHhhZCwweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4MjgsMHgzYSwweGMwLDB4MGQsMHhiNCwweDAzLDB4NmMsMHhlMiwweGViLDB4NjAsMHgzZSwweGQ0LDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmUsMHg5MCwweDNmLDB4ZTUgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4MGUsMHhmOCwweDAzLDB4M2UsMHgxMCwweGZmLDB4OTAsMHgxNywweDYwLDB4MGYsMHhmYywweDAzLDB4N2EsMHgwMCwweGVlLDB4ODAgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4MzcsMHhlMiwweDBlLDB4NzgsMHgwZiwweGZmLDB4NDAsMHhlZiwweDg4LDB4MWYsMHhlMCwweDBjLDB4ZjgsMHg4MywweGZlLDB4ODAgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4Y2YsMHhkMCwweGIzLDB4ZjAsMHgwYywweGY4LDB4YzMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4YTgsMHgxMSwweDljLDB4NDAsMHhiNCwweDEwLDB4MGYsMHhjYywweDAwLDB4NzIsMHgwMiwweDFjLDB4MDAsMHhiNiwweDAyLDB4MDkgfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4YzAsMHgyOCwweGYwLDB4MDIsMHg5OCwweDAwLDB4YTYsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDMsMHhmYywweDAyLDB4ODcgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGUsMHgwMCwweDhmLDB4MTAsMHgyMSwweGMwLDB4MDgsMHhmMCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5NCwweDAwLDB4YjYsMHgwMiwweDJmLDB4YzIgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4MWEsMHgzMCwweDgwLDB4MWMsMHgwMCwweGI2LDB4MDgsMHgwMSwweDQwLDB4MGEsMHhmMCwweDAyLDB4MTgsMHgwMCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4ZDAsMHgwMiwweDljLDB4MTAsMHg4NywweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4NDQgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4ODcsMHgxMCwweDY0LDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwNiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4NjAsMHgxNCwweGNlLDB4NjAsMHhiMCwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgwYSwweDBjLDB4MDgsMHhiMCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4NDAsMHgwOCwweDMwLDB4YTIsMHg4OSwweDgwLDB4YTIsMHg2MiwweDIwLDB4ZTAsMHgwYiwweDAwLDB4MGEsMHhjYywweDA4LDB4ODMgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4MDAsMHg2YywweGMwLDB4MDgsMHgzMCwweDUyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NTggfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZSwweDAwLDB4ZjgsMHgwMCwweDNmLDB4ZDAgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4MGUsMHhmYywweDAzLDB4M2MsMHgwMCwweGY5LDB4MDAsMHg5MiwweDg0LDB4MGYsMHhmYywweDAzLDB4NjQsMHgwMCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4YjcsMHhjMywweDBmLDB4YjgsMHg4MywweGJjLDB4MDQsMHhlZiwweDAwLDB4M2YsMHhjMCwweDNjLDB4ZjAsMHgwMywweGZjLDB4MDIgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzAsMHgyOCwweGYwLDB4MTMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmOCwweDQxLDB4M2UsMHhjOCwweDBmLDB4MzIsMHgwMywweGVjLDB4MDAsMHhmOCwweDAwLDB4M2EgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4YzQsMHgwZiwweGIxLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4YzAsMHgwZiwweGU0LDB4MGIsMHhlYywweDA0LDB4ZmIgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4MDAsMHgzZSwweGMxLDB4MGYsMHhiMCwweDQzLDB4ZWMsMHgwNCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmMsMHg4MCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4MWYsMHhmMCwweDAzLDB4M2MsMHgwOCwweGZiLDB4MDAsMHgzMywweDgwLDB4MmUsMHhmMCwweDEzLDB4YTQsMHgwNCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4YjksMHhjMCwweDJjLDB4ZDgsMHgwYiwweDNjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDA5LDB4NzAsMHgwMCwweDJjLDB4MDQgfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4YzEsMHgwMCwweDZjLDB4MDAsMHhiOCwweDgwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMywweDZjLDB4MDAsMHhiOSwweDE2LDB4MjggfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4NzIsMHgwOCwweGIwLDB4MjIsMHgyNywweDQwLDB4ZGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGJkLDB4ODIsMHgyYywweDA4LDB4YmIgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4MDAsMHgyZSwweGMwLDB4NDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMxLDB4MGIsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YjgsMHg2MCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIxLDB4MDAsMHgyYSwweDg0LDB4NGEsMHgzMCwweDIyLDB4YWMsMHgyMCwweDk4LDB4ODAgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHgzYiwweDAwLDB4MmMsMHhjMCwweDBhLDB4YjAsMHgwMiwweGFjLDB4MDggfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHhiMCwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDQsMHhiMCwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4ODAsMHgwOCwweDMwLDB4MDIsMHgwMCwweDAwLDB4MTAsMHgwNCwweDI4LDB4YzAsMHgwOCwweDIwLDB4NDIsMHg4YywweDAwLDB4YjMgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4MDAsMHgyYywweGMwLDB4NDIsMHgzMCwweDBhLDB4OGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4OGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4ZjgsMHg1MCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4MGIsMHhmMCwweDAzLDB4M2MsMHgwMCwweGZhLDB4MDQsMHgzMiwweDgwLDB4MGUsMHhmMCwweDIzLDB4YWMsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4M2IsMHhjMCwweDBjLDB4OTAsMHgwMywweGJjLDB4MDQsMHhmZiwweDAwLDB4M2QsMHhjMCwweDJlLDB4ZjAsMHgwYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmYywweDAwLDB4M2YsMHhjMCwweDA3LDB4ZjAsMHgwMywweGZjLDB4MDQsMHg3YywweDAyLDB4YjUgfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MDAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MTMsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4NmQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZDUsMHg4MCwweDMzLDB4MGEgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4NGMsMHhmOCwweDAzLDB4ZjIsMHgwMCwweGZjLDB4MDAsMHgzNywweDI2LDB4MWYsMHhjYSwweDAzLDB4YmMsMHhjNCwweGNmLDB4MjAgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4MzMsMHhlNCwweDBmLDB4NzgsMHgwMywweDNlLDB4NDQsMHhjZiwweDAwLDB4M2IsMHhjZSwweDlmLDB4NjgsMHgxMywweGQwLDB4MDAgfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4NjAsMHgwZiwweGZhLDB4ODMsMHhmMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4ODAsMHgxMCwweGUwLDB4ODAsMHhjOSwweDI4LDB4MjIsMHgzMCwweDA4LDB4YjIsMHgyMiwweGVhLDB4MDEsMHhiOCwweDgyLDB4MjAgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4NTAsMHg0ZiwweDljLDB4MDAsMHhhOCwweGQxLDB4ZGIsMHgxMCwweGE2LDB4ZTAsMHgxNywweGI4LDB4MDMsMHhlYywweDgwLDB4ZGIgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4MDgsMHgxZiwweGQwLDB4MGIsMHhiOCwweDAyLDB4ZjYsMHgwMCwweGZiLDB4ODAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDAyLDB4NjAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDIwLDB4ODEsMHg4MCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4OGIsMHgzMCwweDgyLDB4YzAsMHgwMCwweGIwLDB4MTAsMHgyOCwweDA4LDB4OGIsMHgxMSwweDMwLDB4YzQsMHg4NCwweDkwLDB4MjggfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4MjQsMHhjOCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDEwLDB4MDQsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4YjMsMHgwMCwweDI0LDB4NDAsMHgwYiwweDMwLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4YzAsMHgxNSwweGE2LDB4MDAsMHg4MSwweDAwLDB4MjIsMHgxMCwweDBiLDB4YjAsMHgxMiwweGVhLDB4MjAsMHhiYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4NzAsMHgwYSwweDljLDB4MDIsMHg2MiwweDAwLDB4OTgsMHg4OCwweDI2LDB4YzgsMHgwMiwweGIyLDB4MDIsMHg4ZSwweDA4LDB4OGIgfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4MTgsMHgyMiwweGMwLDB4MGIsMHhhMCwweDAyLDB4ZWUsMHgyMCwweDNiLDB4MDAsMHgyNiwweDQwLDB4MGIsMHhiMCwweDAyLDB4NzAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMCwweDAwLDB4Y2IsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTcsMHgwMCwweGI4LDB4NTIsMHgzZSwweDIwLDB4NGIsMHgwYywweDQzLDB4ZWYsMHg4MiwweDliLDB4YzAgfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4MzIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDZjLDB4MDEsMHg4YiwweDgwLDB4MmUsMHhjMCwweDBiLDB4YTAsMHg4MywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4ZmIsMHgwMCwweDM2LDB4NDAsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDIsMHhmZiwweDA0LDB4M2YsMHg5MCwweDBjLDB4ZjEsMHgwMSwweGY0LDB4MDgsMHg3ZCwweDgwLDB4MzcgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MDAsMHgwZiwweGMwLDB4MjMsMHg5OCwweDAwLDB4ZjcsMHgwMCwweDJiLDB4ZTAsMHgwZiwweGY4LDB4MjMsMHhmYywweDA2LDB4ZmIgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4ODMsMHhiZiwweGMwLDB4ODcsMHhkMCwweDAzLDB4ZGMsMHgwMCwweGVmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAxLDB4ZjggfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNiwweDAwLDB4Y2IsMHgwMCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTEsMHgxMCwweGYyLDB4NDAsMHhiMiwweDAwLDB4M2QsMHg5NCwweDE3LDB4MmQsMHg0NCwweGZhLDB4NDEgfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4MzIsMHhjMCwweDlmLDB4YjAsMHgyMywweDJjLDB4MDIsMHhjYiwweDQwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHgwMywweDNkLDB4MDAgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4ODgsMHgwNSwweDI2LDB4MDAsMHg4YiwweDcxLDB4MjAsMHhkNSwweDAzLDB4OTksMHgwMiwweGUwLDB4MDAsMHhiYiwweDgwLDB4MjIgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4NjAsMHgxYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YjgsMHgwMiwweDIyLDB4YzIsMHgwYiwweDMyLDB4MDIsMHgyYywweDAxLDB4OGYgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4MDIsMHhkNywweGMwLDB4MGIsMHhhMCwweDAzLDB4NmQsMHg0MCwweDUzLDB4ODAsMHgyZSwweGMwLDB4MGUsMHhmMCwweDQzLDB4NzIgfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2OCwweDAyLDB4ODAsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4MGIsMHgzNSwweDI2LDB4YzIsMHgwMCwweGIwLDB4OTAsMHgyMCwweGMwLDB4ODgsMHgwMCwweDAyLDB4NGYsMHgyMCwweGIzLDB4MDIgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4NjAsMHhlMiwweDFiLDB4MzgsMHgwMiwweDBjLDB4MDAsMHg4OCwweDAwLDB4NjAsMHhjMCwweDBiLDB4MzQsMHg4MiwweDRjLDB4MDIgfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4YTEsMHg5MCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHgzMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MjAsMHgwMSwweDNhLDB4MDgsMHg4YywweGEwLDB4MmQsMHgyMCwweDRiLDB4NzgsMHgwMiwweGRhLDB4MDAsMHhiMiwweDkwLDB4MjEgfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4NjYsMHg0OCwweDc5LDB4MDIsMHhkZSwweDQwLDB4YjcsMHg5MSwweGExLDB4ZTAsMHhkYiwweGY4LDB4MDIsMHgxZSwweDQwLDB4ODQgfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4OTAsMHgwMSwweGUwLDB4OGIsMHhmOSwweDAyLDB4NWUsMHgwMSwweDk3LDB4ODAsMHgyZCwweDYwLDB4MGEsMHg3OCwweDAwLDB4NDggfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODAsMHgwMCwweDI0LDB4MDQgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4MGYsMHgzMiwweDAzLDB4YzQsMHhhMCwweGYxLDB4NDIsMHgzMCwweGM0LDB4MmMsMHgzMSwweDAyLDB4NDQsMHgwMCwweGYxLDB4MTEgfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4YTAsMHhjMCwweDBiLDB4MzAsMHgwYiwweDBjLDB4NDIsMHg4MywweDAwLDB4MDAsMHhjMCwweDBmLDB4MzAsMHgwMywweDRjLDB4MDIgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4ZTMsMHgwMCwweDNjLDB4NDAsMHgwYiwweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhmYywweGE1LDB4MzMsMHhjMCwweDBmLDB4ZDAsMHgwMywweGZjLDB4MDEsMHhiZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4YzQsMHgwZSwweDcxLDB4MDMsMHg3NCwweDAwLDB4NzUsMHgxMCwweDNmLDB4YzAsMHgwNSwweGYwLDB4MDMsMHhkYywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDdmLDB4MDAsMHgzZiwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDQsMHhlOCwweDAwLDB4ZjIsMHgwNCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4MGYsMHhiOCwweDBiLDB4MmMsMHgwMCwweGViLDB4ODAsMHgzMiwweGMwLDB4MGMsMHgyMCwweDEzLDB4MmUsMHgwOCwweGNiLDB4MDEgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4MzIsMHhjNSwweDBmLDB4YjEsMHgwMywweGVjLDB4NDgsMHhjOCwweDEwLDB4MzIsMHhmYSwweDhjLDB4MzgsMHgwMywweDNjLDB4OTAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhjMiwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4YzgsMHgxMCwweDk4LDB4MDAsMHhmNiwweDAwLDB4NjEsMHg4MSwweDBiLDB4ZjAsMHgwMiwweDFjLDB4MDAsMHhkNywweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4ODAsMHgwYywweDcwLDB4MDIsMHhiYywweDEwLDB4OGYsMHgwMCwweDIxLDB4YzgsMHg4YiwweDcyLDB4NDMsMHhmYywweDg4LDB4ZGMgfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4MDAsMHgzNywweGM4LDB4MGQsMHg1MCwweDAyLDB4MWMsMHgyMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDMgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDAwLDB4YjYsMHg4MCwweGE5LDB4YTAgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4NGIsMHg3YywweDAyLDB4NWUsMHgzMCwweGEzLDB4ODgsMHgyMSwweGYwLDB4MDgsMHg3OCwweDAyLDB4MTYsMHgwMCwweDg1LDB4ODAgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHg4NywweDgwLDB4YTEsMHhlNCwweDA4LDB4ZDgsMHgwMiwweDRlLDB4MDAgfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4OTcsMHg4MCwweDJkLDB4NzAsMHgwYiwweDc4LDB4MDIsMHhjOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMiwweDAwLDB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDRlLDB4OTAsMHg5MywweDAyLDB4MjIgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4ZjAsMHgwOCwweDM4LDB4NDIsMHg4YywweDQyLDB4ODMsMHgwNCwweDIyLDB4ZTQsMHg0YiwweDM4LDB4MDIsMHg4ZSwweDQwLDB4ODMgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MDksMHgzOCwweDIyLDB4NGUsMHgyMSwweDkzLDB4MDAsMHgyZSwweGUwLDB4MGIsMHgzMCwweDAyLDB4ZGIgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAxLDB4ZmEsMHgwMCwweDNiLDB4ODkgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4MGYsMHhhMCwweDAyLDB4NzgsMHgwOCwweGFlLDB4NDAsMHgyMywweDgwLDB4MmMsMHg2YywweDBiLDB4M2EsMHgwMCwweDhlLDB4OGMgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4YjIsMHgwMCwweDBiLDB4ODAsMHg4MiwweGUwLDB4MDIsMHg4ZSwweDAwLDB4MjIsMHg4MCwweDBjLDB4ZTgsMHgwMiwweDdiLDB4ODAgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4OWEsMHg4MCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDksMHhlYywweDAwLDB4MzYsMHgyMSwweDBiLDB4ODAsMHgxMywweGExLDB4MDAsMHhmOCwweDYwLDB4M2UgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4NDMsMHhlMCwweDEwLDB4ZjggfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGYsMHg4NSwweDBiLDB4ODAsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMiwweDMwLDB4NDggfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4MGMsMHg5OSwweDEzLDB4YTQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQyLDB4MGMsMHg5MCwweDhmLDB4MjQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4MzIsMHgyOCwweDBjLDB4ODgsMHgwMywweGUwLDB4MDAsMHhjOSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgwMywweGU3LDB4MDAgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4YzksMHgxMCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDEsMHg4OSwweDgwLDB4YTIsMHg0OCwweDI4LDB4OTIsMHg0MiwweGM1LDB4MDAsMHg4OSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4NDAsMHgyYywweDkwLDB4MDYsMHgyNSwweDAwLDB4YjksMHgwMCwweDIyLDB4NTAsMHgwOCwweDk4LDB4MDIsMHhjNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4MDEsMHg3NiwweDQwLDB4NGIsMHg5MiwweDAyLDB4ZTUsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDBjLDB4ODUsMHgyMCwweGEyLDB4NDAgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4MDgsMHg5MCwweDA2LDB4ZTUsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDQyLDB4YTQsMHhhMCwweDMxLDB4MDAgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4MjIsMHg1MCwweDE4LDB4OTEsMHgwMiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4ODksMHgwMCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4MDAsMHgwNCwweDE1LDB4MDAsMHg4NSwweDQwLDB4MjAsMHg0MCwweDA4LDB4MTQsMHgyNiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4NDAsMHgxOCwweDEwLDB4MDIsMHg4NCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NTAsMHgwOCwweDE0LDB4MDIsMHhlNSwweDAyLDB4ODEgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4NDAsMHgyMCwweDQ4LDB4MGIsMHgxMCwweDA2LDB4Y2MsMHgwMCwweDgxLDB4MDEsMHgyYywweDUwLDB4MDksMHgxNCwweDAyLDB4NGEgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4OGMsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4MGMsMHg4MCwweDIzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDE0LDB4MGQsMHg4MCwweDEyLDB4YTEsMHg0NCwweGY4LDB4NTEgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4MzIsMHgwMCwweDJjLDB4ODAsMHgwMywweGUwLDB4MDAsMHg4OCwweDA0LDB4MjIsMHgxNCwweDBmLDB4ODAsMHgwNywweGUwLDB4MDAgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4OTgsMHg5ZCwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2YsMHg1MCwweDBmLDB4ZDAsMHgwMywweGRjLDB4MDEsMHhiZCwweDQyLDB4M2YgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4NTAsMHg0ZiwweGQ0LDB4NDMsMHg3NCwweDQxLDB4ZmQsMHgxMCwweDNmLDB4MTAsMHgxZiwweGM0LDB4MTMsMHhmMSwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4NDAsMHg3ZSwweDQ0LDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMSwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4ZGYsMHgwNSwweDMzLDB4NjEgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4MGYsMHg1MCwweDUzLDB4MzQsMHgxMCwweGZkLDB4MDQsMHgzMywweDQ0LDB4NGYsMHg1MCwweDAzLDB4NzYsMHhjMSwweGNkLDB4ZTAgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4MzMsMHg2MCwweDBjLDB4Y2UsMHgwMywweGY2LDB4YzAsMHhlMSwweGMwLDB4YjYsMHg2NCwweDhmLDB4NTAsMHgwYiwweDM2LDB4ODIgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4Y2QsMHgwMCwweDNlLDB4NDQsMHg0YywweDllLDB4YzMsMHhjNiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4MzgsMHgxMCwweGVhLDB4MjgsMHg4MCwweGEwLDB4YjIsMHgwNCwweDBiLDB4OGEsMHg4MywweDYwLDB4MDAsMHhmYSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4MjgsMHg4YiwweDgwLDB4MDMsMHhlMywweGM4LDB4YzgsMHg4NCwweDIyLDB4MTQsMHgwOCwweDhhLDB4MDIsMHhlMiwweDgwLDB4ZDggfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4ODIsMHgzNCwweDM0LDB4MWIsMHg4MCwweDAzLDB4NjAsMHgwNCwweDg4LDB4MDAsMHgyZSwweDIwLDB4MGEsMHg4ZSwweDQyLDB4Y2UgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHgwOCwweDA0LDB4NDEgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MGIsMHg5MiwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxOCwweDAyLDB4MjQsMHgwMCwweGIxLDB4NjAgfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4MjYsMHg0MCwweDBhLDB4MTYsMHgwMiwweGM1LDB4MDAsMHhhMSwweGMwLDB4MjAsMHg0OCwweDBiLDB4OTAsMHgwMiwweDQ3LDB4MDAgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4OTEsMHgwMSwweDJjLDB4NDgsMHgxOCwweDEyLDB4MDIsMHhkMiwweDAxLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MGMsMHg4YiwweDA0LDB4YTIsMHg1MCwweDBiLDB4OTEsMHgwMiwweDI0LDB4MDQsMHhhOSwweDAxLDB4MmUgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4NDIsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YTksMHgwMCwweDI2LDB4NjAsMHgwYSwweDkwLDB4MDIsMHhlNiwweDAwLDB4ODEgfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4MDAsMHgyMiwweDQwLDB4OGIsMHhiMCwweDAyLDB4MjQsMHgwOCwweDk5LDB4MTAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4MGYsMHgxMCwweDAyLDB4MjUsMHgwMCwweGIxLDB4MDAsMHgyZSwweDYwLDB4MGYsMHgxMCwweDEyLDB4MjQsMHgwMiwweGI5LDB4YTAgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4YTQsMHg0MCwweDJlLDB4OTEsMHgwMywweGU2LDB4MDAsMHhhOSwweDAwLDB4MjIsMHg0MCwweDBiLDB4MTksMHg4MCwweDY0LDB4MDQgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4ZDksMHg4MSwweDJlLDB4NDAsMHg0YywweDkwLDB4MDMsMHhlOCwweDE0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MGEsMHhlOSwweDAwLDB4YmUsMHg0OCwweDBmLDB4OTgsMHgwYiwweGU0LDB4MDAsMHhmOSwweGM0LDB4MzYgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4NzAsMHgxZiwweDkyLDB4MDMsMHhlNiwweDkwLDB4YzEsMHg5MCwweDNhLDB4NDAsMHg4ZCwweDg4LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGIsMHg5OCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMSwweDAyLDB4ZDgsMHgyMCwweGIyLDB4MTAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4MGMsMHg4MCwweDgzLDB4MjEsMHg0MCwweGM4LDB4NTgsMHhiMiwweDEwLDB4NGMsMHg4MCwweDBiLDB4MjAsMHgwMCwweGY4LDB4NDIgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhkOCwweDAwLDB4NzIsMHgwMCwweDFjLDB4ODAsMHgwMCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4ZjgsMHgwNCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDQsMHhjZSwweDQxLDB4MjMsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDM5LDB4MTAsMHhhZSwweDQwLDB4MjIgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgxYSwweDAwLDB4YmEsMHgwMCwweDJiLDB4YWQsMHgwMywweDgwLDB4MDIsMHhlOCwweDAwLDB4Y2EgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MGEsMHhlMCwweDAyLDB4MTgsMHgwMCwweGJhLDB4MDAsMHgxYSwweDgwLDB4MGIsMHhhMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDUsMHg2YywweDEyLDB4ODksMHgwMCwweGEwLDB4ZTAgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4MDgsMHgzOCwweDAyLDB4MGQsMHg4OCwweDgzLDB4MDAsMHgwNCwweGUwLDB4MDgsMHgzOCwweDMyLDB4MGUsMHgyNSwweDMxLDB4MDEgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4MjQsMHhlMCwweDhiLDB4MzgsMHgwMiwweGU0LDB4MDEsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4YjMsMHgwMCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MjAsMHg4NiwweDIwLDB4MjksMHhiMCwweDA4LDB4ZjAsMHg4MiwweDNlLDB4MDQsMHhhNywweDAwLDB4MjEgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4NzAsMHg4OCwweDcwLDB4OTIsMHgxYywweDIwLDB4YmQsMHgwMCwweDY5LDB4YzAsMHgwYiwweDc2LDB4MDIsMHhkNCwweDgwLDB4OGYgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4MjEsMHgyOSwweGUwLDB4MGEsMHg2MCwweDg2LDB4OTgsMHgwMSwweGI3LDB4MDAsMHgyZCwweGM4LDB4MGIsMHgzYiwweDAyLDB4NjAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAwLDB4YzcsMHhhMCwweGIwLDB4ZTAgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4MmMsMHg3OCwweDBiLDB4MWEsMHgwMCwweGMzLDB4ODAsMHgzNywweGUwLDB4MjgsMHg3OCwweDAzLDB4MWEsMHgwOCwweGY1LDB4OTAgfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4MzUsMHhlMCwweDBmLDB4N2MsMHgxMiwweGQ2LDB4ODIsMHhjNywweDkwLDB4MjEsMHhlNCwweDA4LDB4NzgsMHgwMywweDllLDB4MDAgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4ZjUsMHg4MCwweDNkLDB4ZjEsMHgwZiwweDc4LDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MDgsMHgxOSwweGE0LDB4MDAsMHhlZSwweDgwLDB4MzYsMHhjMSwweDRmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4NTEsMHgwZiwweGIwLDB4MDMsMHhlNCwweDA4LDB4ZjEsMHg2MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjNSwweDAwLDB4ZWIgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDA5LDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHhmZSwweDAwLDB4ZmQsMHg4OCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4MGYsMHhmOSwweDAzLDB4Y2UsMHg0MCwweGQ3LDB4ODQsMHgzNywweDcwLDB4MGMsMHhkOCwweDIzLDB4MzYsMHgwMCwweGM1LDB4ODggfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4MzMsMHhlMCwweDRmLDB4ZjgsMHgxMywweGY3LDB4MjgsMHhkZiwweDgwLDB4MzcsMHhlMiwweDBjLDB4NTgsMHgwMywweDNlLDB4MDAgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4ZmYsMHg5MCwweDNmLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4YTksMHgxMSwweDljLDB4MDgsMHhmNiwweDAwLDB4YTEsMHgwMCwweDBiLDB4NjMsMHgwMiwweGQ2LDB4MzAsMHg4NSwweDQxLDB4MzEgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4YzgsMHgwOCwweDUwLDB4MjMsMHgxYywweDAwLDB4ZDUsMHgyMCwweGIxLDB4ODAsMHgwZiwweDcwLDB4MDMsMHhiNCwweDAwLDB4YzcgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGYsMHg0MCwweGEzLDB4NTgsMHg0MCwweGI3LDB4MDAsMHgzZiwweGM0LDB4MGEsMHhmMCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDQwLDB4YjcsMHgxMCwweDIxLDB4ZDIgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweDg2LDB4MDAsMHgyNSwweDYxLDB4MDgsMHg1MSwweDAyLDB4NTAsMHgwMCwweDk1LDB4MDAgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MjUsMHhjMCwweDA5LDB4NzAsMHg4MiwweGQ0LDB4MDAsMHg4NywweDAwLDB4MjQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDAgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4OTUsMHgwNCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweGQwLDB4MjAsMHhlMCwweDRiLDB4MDgsMHgwMiwweGM0LDB4MDAsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4ZjAsMHgwOCwweDFhLDB4MDIsMHg4NSwweDQ4LDB4ODEsMHgxMCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHhjNiwweDEwLDB4OTMgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGEsMHgxYywweDAyLDB4MGQsMHg0MCwweGIzLDB4MDAsMHg2OCwweGM0LDB4MGEsMHhiMCwweDAyLDB4MDkgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAxLDB4ZmUsMHgwMCwweDMyLDB4ZjAgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4MGYsMHg4OCwweDAzLDB4ZTYsMHgwMCwweGM4LDB4YzgsMHgzNiwweGY2LDB4MjgsMHhhNiwweDBhLDB4NmQsMHgwMCwweDlkLDB4MDAgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4MzIsMHgwMCwweDBiLDB4YjAsMHgwMywweGY2LDB4MDMsMHhjNywweDAwLDB4MzcsMHhjMCwweDA4LDB4OWMsMHgwYSwweDZlLDB4MDAgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4YmIsMHgwMCwweDJmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDEsMHhlYiwweDQwLDB4M2UsMHg4MCwweDRmLDB4YzEsMHgwMywweGU0LDB4MDAsMHhiOCwweDA4LDB4M2EgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4NDAsMHg4ZiwweGE0LDB4MTMsMHg2YywweDIwLDB4ZjksMHgwMCwweDNlLDB4NzAsMHgwZiwweGIwLDB4MDMsMHhhNCwweDQwLDB4ZWIgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MiwweDIzLDB4ZTgsMHgwMCwweGY5LDB4ODAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDYzLDB4ZTAgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDA4LDB4Y2UsMHgwOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4MGYsMHhkYSwweDAzLDB4MzAsMHgwMCwweGU0LDB4MDQsMHgzNSwweGMwLDB4MGQsMHhhMCwweDAzLDB4MjgsMHgwMCwweGM1LDB4MDAgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4MzMsMHgwMCwweDBiLDB4ZmEsMHgwMywweGY0LDB4MDMsMHhjYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZDQsMHgwMywweDE0LDB4MjAgfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4Y2QsMHg4MCwweDIzLDB4YzEsMHgwYywweGYwLDB4MDIsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4ODEsMHgwNCwweDQ0LDB4MTAsMHhjYiwweGQwLDB4MjIsMHhjMCwweDBiLDB4OTQsMHgwMiwweDIyLDB4ODQsMHhiOCwweGM2LDB4MDIgfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4NDAsMHgwOCwweDI4LDB4MDIsMHhhNSwweDgwLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweGI4LDB4MDIsMHg2NCwweDAwLDB4OGIgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4MDAsMHgyYSwweGMwLDB4YzgsMHgwMCwweDAzLDB4NjYsMHgwMCwweDgxLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhiMCwweDBhLDB4YTggfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4MTMsMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4OGIsMHgyNCwweDAyLDB4MmEsMHgwMCwweGJiLDB4ODIsMHgyMiwweDQwLDB4MDAsMHhhYywweDAyLDB4ODQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4MjIsMHgyMiwweDBiLDB4YjAsMHgwMiwweGM0LDB4MDAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJlLDB4MDAgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4OGIsMHgxMCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MywweDAwLDB4MjAsMHgwMSwweDBiLDB4MjAsMHgwMiwweDAwLDB4ODAsMHhiMSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4YzEsMHgwOCwweDIwLDB4MDIsMHg4OCwweDAxLDB4ODEsMHgwMCwweGEwLDB4MDAsMHgwYiwweDMwLDB4MDIsMHg0NCwweDAxLDB4OWIgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MDgsMHhiMCwweDAyLDB4NDgsMHgwNiwweDg5LDB4MDAsMHgyYSwweGMwLDB4MDksMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGQsMHg2YywweDAwLDB4YzMsMHgwMCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4MjgsMHgyMCwweGZhLDB4MDAsMHhiMSwweDQwLDB4MGQsMHhhMCwweDA3LDB4YTAsMHgwMCwweGNkLDB4MDAgfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4MjIsMHgwMCwweDBmLDB4YjAsMHgwMywweGY0LDB4MDAsMHg5ZiwweDAwLDB4M2IsMHhjMCwweDJjLDB4YjAsMHgwYiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4YzksMHgwMCwweGJhLDB4YzAsMHgwYywweGIwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDYsMHhmZiwweDAyLDB4YWYsMHhjMCwweDBmLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4YzAsMHg5ZiwweGUwLDB4MTMsMHhmMCwweDAwLDB4ZmQsMHgwNCwweDNmLDB4NDAsMHg0ZiwweGYwLDB4MDMsMHg3NCwweDAwLDB4ZWYgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGYsMHhlMCwweDAyLDB4YjQsMHgwMSwweGZkLDB4MDQsMHgzNywweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4YzcsMHgyMCwweGIzLDB4YzggfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MWMsMHhmMSwweDAzLDB4N2MsMHgyMCwweGNmLDB4MGEsMHgzZiwweGQwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHg4MCwweDhmLDB4MzIgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4MzMsMHhjNCwweDBmLDB4ZjEsMHg4MywweDNjLDB4ZTAsMHhjZiwweDEwLDB4MzMsMHhjNCwweDBkLDB4ZjIsMHg4MywweDNjLDB4ZTIgfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4YzcsMHg4MCwweDE3LDB4Y2MsMHg0YywweGYzLDB4ODMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxMCwweGUzLDB4NDAsMHg4OCwweDY4LDB4MjIsMHgzMCwweDA4LDB4MDYsMHgwMiwweDAxLDB4YTEsMHg4OCwweGM0LDB4MGUgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MTQsMHgwOCwweDg3LDB4ODAsMHgwMSwweGMwLDB4MjgsMHg1MCwweDAyLDB4MDQsMHg4YiwweDg2LDB4MDIsMHhhMSwweDk4LDB4ODggfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4NDEsMHgyYSwweDA0LDB4MGEsMHg4NCwweDgyLDB4YmQsMHg4MCwweDhiLDB4MDgsMHgyYiwweGM0LDB4ODgsMHhmNCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDA4LDB4ODIsMHg0MCwweDIwLDB4MTAgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4MDgsMHgyMSwweDEyLDB4NDQsMHgwNCwweDgyLDB4MDQsMHgyYywweDA4LDB4ODksMHg5MCwweDAyLDB4NDQsMHgyMSwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4MjQsMHg4OCwweDhiLDB4YTAsMHgwMCwweDQwLDB4ODQsMHg4OSwweDMwLDB4MjIsMHg0OCwweDg4LDB4YjAsMHgwMiwweGNjLDB4MDggfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4ODgsMHgyMCwweGE0LDB4YzgsMHgwMCwweDMyLDB4MGEsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4YzAsMHgxNSwweGEwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMSwweDg4LDB4OTAsMHg2MiwweDI4LDB4MDgsMHg4OSwweDA4LDB4MmUgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4YzAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDA4LDB4YTgsMHgwMCwweDI2LDB4NDIsMHgwYiwweDkwLDB4MDIsMHhjYywweDUwLDB4OGEgfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4MjIsMHgyYSwweDg2LDB4MGEsMHg4MCwweDAyLDB4ZWMsMHgwMCwweDg4LDB4ODQsMHgyYSwweGMxLDB4MDgsMHhiMCwweDI2LDB4MzAgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhmMCwweDAyLDB4Y2YsMHgwMCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4NDgsMHhmOCwweDQzLDB4NzksMHgwMCwweDhkLDB4YzAsMHgzZiwweDMwLDB4OGQsMHg2MCwweDgzLDB4NzgsMHg2MCwweGM0LDB4NTggfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4MzcsMHgyMCwweDBmLDB4NTgsMHgxMywweDdiLDB4MDIsMHhjYywweGM0LDB4MzEsMHgyMCwweDBjLDB4NDQsMHgwMywweGVjLDB4MDIgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4OGIsMHg4MCwweDM2LDB4YzAsMHgyNCwweGIwLDB4MTIsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhmNCwweDEwLDB4M2QsMHgwMCwweDZmLDB4YzksMHgxMywweGQ0LDB4MTIsMHhmZSwweDkwLDB4M2YgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4ZjAsMHgwZiwweGRhLDB4MjMsMHhmNCwweDE0LDB4ZmYsMHgwMiwweDNiLDB4ZjAsMHgwZiwweGVhLDB4MjMsMHhiNiwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4ODIsMHgzZiwweGUxLDB4OGYsMHhmNCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4YWYsMHg3MCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDAwLDB4Y2EsMHgwMCwweDMyLDB4MDggfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4MWMsMHhhMCwweDAzLDB4YTUsMHgyMCwweGNiLDB4NDAsMHhiYSwweDEwLDB4MWYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4NzIsMHg5MCwweDBjLDB4YjQsMHgwMywweDI5LDB4MDQsMHhjOSwweDUyLDB4MzIsMHg1MCwweDBjLDB4YjQsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4ZjgsMHg0MCwweDMyLDB4YzEsMHgwZSwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4YzgsMHgwNSwweDJkLDB4ODAsMHg4OSwweDgwLDB4MjIsMHhkOSwweDA4LDB4OTAsMHgyMiwweDJhLDB4MDAsMHg4OCwweDU0LDB4MjIgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4YzAsMHg4YiwweDgwLDB4MjIsMHgyMCwweDE5LDB4YzgsMHgwMCwweDIyLDB4NDAsMHg4ZCwweDgwLDB4MWEsMHgyNCwweDEwLDB4ZDIgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4NDQsMHgyMiwweDgxLDB4MGQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGIwLDB4MDAsMHgzNywweGMwLDB4ODgsMHhmMCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZSwweDAwLDB4ODEsMHgwMCwweGEwLDB4ZjAgfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODksMHgwMiwweDgwLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgwMCwweDIyLDB4YTAsMHgwMCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4MjAsMHg0MCwweDA4LDB4MDAsMHgwMiwweDA0LDB4MDAsMHg4MiwweDYwLDB4MjAsMHg4MCwweDA4LDB4MDAsMHgwMiwweDBjLDB4MDggfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4YjIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4MjAsMHgwMSwweDAzLDB4MTAsMHg4ZSwweDkwLDB4MjMsMHgyNCwweDA4LDB4NmIsMHgwMiwweDE2LDB4NjAsMHg4ZiwweDgwLDB4MjEgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MjgsMHgwYiwweGY5LDB4MDYsMHgxZSwweDQwLDB4OGYsMHg4MCwweDIzLDB4YTQsMHg0OSwweDc5LDB4MDIsMHgzYSwweDQwLDB4OWQgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4OTAsMHgyMywweDY0LDB4MDksMHhmOCwweDAyLDB4NWUsMHg0MCwweGJlLDB4OTAsMHgyNCwweGU0LDB4MjgsMHg3OSwweDAyLDB4MDggfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQyLDB4YzAsMHgwOSwweDMwLDB4MDAgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4MjgsMHgwMiwweDAzLDB4ODQsMHgwMCwweDhhLDB4MjAsMHgzMCwweGM0LDB4OGIsMHgxMSwweDAzLDB4ODQsMHg1MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4MjAsMHhjMCwweDBjLDB4YTQsMHgyMiwweDA0LDB4MDAsMHhjYiwweDQwLDB4MzAsMHhjNSwweDBjLDB4MzAsMHgwMywweDBlLDB4NDAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4ZjMsMHgxMCwweDMwLDB4YzQsMHgwYywweGIwLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4NDAsMHgxZCwweGIwLDB4MDQsMHhmYiwweDA0LDB4M2QsMHhjMCwweDBmLDB4ZjIsMHg0MywweGY4LDB4MDQsMHhmZCwweDAxLDB4M2YgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MGMsMHgwZiwweDYxLDB4MDMsMHhmOCwweDQ4LDB4ZjQsMHgwMCwweDNkLDB4MDEsMHgwZiwweGQwLDB4MDMsMHhjOCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4MDQsMHhiZCwweDA0LDB4MGIsMHg0OCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MTQsMHgzZiwweGQ1LDB4MGQsMHhmMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlMCwweDAwLDB4ZjksMHgwMSwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4OGUsMHg5MCwweDAzLDB4MjgsMHgwMiwweGQxLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhhOCwweDBiLDB4MDgsMHgwMCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4MmUsMHg0MCwweDBjLDB4OTgsMHgwYiwweDJlLDB4MDIsMHhjYSwweDAwLDB4YjIsMHhhMCwweDZjLDB4ODAsMHgyMywweDJkLDB4ODAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4Y2EsMHg4MCwweDMyLDB4ZDAsMHgwYywweGJhLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNiwweDAwLDB4YTMsMHgwMCwweDA4LDB4NjAsMHgwMiwweDA0LDB4MDAsMHg4NiwweDA0LDB4MjkgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4MDAsMHgwOCwweDUwLDB4NDIsMHgxNCwweDA0LDB4YTcsMHgwMCwweDBkLDB4ODAsMHg0YSwweDYwLDB4MDIsMHgwMCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4MDAsMHgyMSwweDQwLDB4MDgsMHg3MCwweDAyLDB4OWQsMHg0MiwweDg2LDB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMiwweDgyLDB4MTIgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5MiwweDAwLDB4YmMsMHg4MCwweDYzLDB4MjAgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4ODIsMHgwOCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzIsMHgyMywweDIwLDB4ODgsMHgwYywweDAyLDB4MzMsMHgwMCwweDg0LDB4ODAgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4MmYsMHgyMSwweDg5LDB4NGMsMHgwMiwweDEyLDB4MTQsMHg5NCwweGM1LDB4NjQsMHgyMSwweDA4LDB4NGMsMHgwMiwweDBlLDB4ODAgfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4OTcsMHg4MiwweGExLDB4ZWMsMHgwOCwweDc5LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4NDgsMHgxNCwweGNkLDB4NDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDRkLDB4ODAsMHgwMywweDg4LDB4MjggfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4YzAsMHgwOCwweDNjLDB4MDYsMHgwZiwweDAwLDB4YTMsMHg0MywweDJjLDB4YzIsMHgxYiwweDM4LDB4MDIsMHgwZiwweDAwLDB4OWIgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4ODgsMHg2NCwweGQwLDB4MDgsMHhiOCwweDAyLDB4OGMsMHgxMCwweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhYSwweDAwLDB4ZmEsMHgwNSwweDMyLDB4ODAgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4OGUsMHhhMCwweDBiLDB4NjksMHgwMCwweGNhLDB4NDAsMHgzMiwweGEwLDB4M2MsMHhhOCwweDAzLDB4MmEsMHgwMCwweGVhLDB4MjYgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4M2UsMHhiMCwweDBkLDB4YTEsMHg2MywweDI4LDB4MjAsMHhjYSwweDQwLDB4MzYsMHhhMCwweDBjLDB4ZTAsMHgxMywweDI4LDB4MDkgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyYywweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4NDgsMHgwMCwweGYwLDB4MjAsMHhmNCwweDAwLDB4M2YsMHgwMCwweDBmLDB4NDAsMHgyMywweGIwLDB4MDAsMHhlYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MDYsMHgxZSwweGMyLDB4MTMsMHhmMCwweDg4LDB4ZmMsMHgyMCwweDNmLDB4MDQsMHg4ZSwweGMwLDB4MDMsMHhmMCwweDgwLDB4ZWMgfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4NDAsMHgzYiwweDBjLDB4MGYsMHhjMCwweGEzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4ODAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDUzLDB4ZTQsMHgxMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDhmLDB4OTAsMHgwMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4YzksMHgwMSwweDNjLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4ODAsMHgwNCwweDQ3LDB4NDQsMHg4OSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI1LDB4MGEsMHg4MSwweDEwLDB4MjIgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDMsMHhjNCwweDAwLDB4ODksMHgwMCwweDc2LDB4NDAsMHgyOCwweDkwLDB4MDIsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4NDAsMHhiMiwweDQwLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQxLDB4MDgsMHg5MCwweDQyLDB4ZTAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAyLDB4YmQsMHgwMCwweDIzLDB4NDggfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4MDgsMHhkMCwweDA2LDB4MWQsMHgwNCwweDhkLDB4MDAsMHgyOSwweGMwLDB4NGEsMHhkMCwweDIyLDB4ZjQsMHgwMCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4NjEsMHg0MCwweDE4LDB4ZDAsMHgxMiwweGZjLDB4MDAsMHhiZCwweDQwLDB4YTMsMHg0MCwweDRiLDB4ZjAsMHgwMiwweDA0LDB4MDEgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4MDgsMHgwNCwweDM2LDB4ODAsMHg4NSwweDIwLDB4YTMsMHg0OCwweDA4LDB4NTIsMHgwYSwweDE0LDB4ODEsMHg4NSwweDIwLDB4MjkgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4NDgsMHgwOCwweDUyLDB4MDIsMHhiNCwweDgwLDB4ODUsMHgyMCwweDI1LDB4NDgsMHg4OCwweDUyLDB4MDIsMHhkNCwweDgwLDB4YjUgfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4MjAsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NDQsMHhhMiwweDgxLDB4MDAsMHgyYywweDRhLDB4MDgsMHgxMiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHg1MSwweDIyLDB4MDAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4MjEsMHg0OCwweGM4LDB4MDAsMHhiYSwweDE0LDB4MGYsMHg4NSwweDEyLDB4ZTEsMHg0MiwweGM4LDB4NTAgfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4MjIsMHgwMCwweDBjLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDA3LDB4NDUsMHgwMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4YzAsMHgwMSwweDNlLDB4MDgsMHgyYywweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4OTgsMHgwZCwweGU0LDB4NDAsMHhmMSwweDEwLDB4M2UsMHg0NCwweDA3LDB4OTEsMHg0MywweGU0LDB4NTgsMHhmOSwweDExLDB4MzQgfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4NDQsMHg0ZiwweDkxLDB4MDIsMHhlNCwweDUwLDB4ZjksMHgxMCwweDNjLDB4NGYsMHgwZiwweDkzLDB4ODMsMHhlNCwweGYwLDB4ZjkgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4MTEsMHgzYSwweDRmLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHhhMCwweGZkLDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweGEwLDB4Y2QsMHhhMCwweGIzLDB4NjggfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4OGMsMHg5YSwweDAzLDB4MzYsMHg4MCwweGM1LDB4YTAsMHgyMiwweDYwLDB4MGMsMHg5YSwweDIzLDB4MjYsMHgwNCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4MzIsMHg2NiwweDBjLDB4OWEsMHg4MywweDA2LDB4MjAsMHhjNSwweGEwLDB4MjIsMHg2MCwweDBjLDB4OWIsMHgwMywweDI2LDB4NDggfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NzgsMHgwYywweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4MzgsMHgwMCwweGUxLDB4MDAsMHg4OCwweDQ0LDB4MjIsMHg5NSwweDA4LDB4ODUsMHgxMiwweGExLDB4NDIsMHg4OCwweDQwLDB4MDIgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4OTAsMHgwOCwweDg0LDB4MDIsMHgyMywweGEwLDB4YmEsMHg0MCwweDIyLDB4YTAsMHgwOCwweDhlLDB4OTIsMHhhMywweGEwLDB4YTggfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4NDAsMHgyYSwweDEwLDB4MDgsMHhhZSwweDAyLDB4MjMsMHg0MCwweDg4LDB4MDAsMHgyZSwweDM4LDB4MDgsMHg4NCwweDEyLDB4MGUgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTUsMHhjNCwweDAwLDB4OGIsMHgxMiwweDIyLDB4NDAgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDgxLDB4NDAsMHhhMCwweDUwLDB4MDgsMHgxMSwweDBhLDB4MDUsMHgwMCwweGIxLDB4MTAgfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4YTAsMHg0OCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4MSwweDQwLDB4MjAsMHg1MCwweDI4LDB4MTEsMHgwMiwweDQ0LDB4ODIgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NTAsMHgwOCwweDExLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDIsMHg4OSwweDQwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgxMiwweGE1LDB4MDAsMHg4OSwweDI4LDB4MjIgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4NDksMHgwOCwweDk0LDB4MDIsMHgyNCwweDQ4LDB4YjksMHgxNCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhhNCwweDQwLDB4YTEgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4NTAsMHgyYSwweDUwLDB4MDgsMHg5MSwweDQyLDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NzAgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4MmMsMHgxMCwweDBiLDB4NjYsMHgwMCwweGM5LDB4NDAsMHgzMiwweDUwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGY5LDB4YzAgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4MzIsMHg3MCwweDBjLDB4OTAsMHgwMywweDI2LDB4MjAsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OWMsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4YzksMHg0MSwweDNlLDB4NDAsMHgyYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4ODgsMHhmOSwweDAwLDB4MzQgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4NDEsMHgyZiwweDljLDB4MDMsMHhlNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDQsMHgyZiwweDk5LDB4MDMsMHhlNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGYsMHgxMCwweDRiLDB4YTQsMHgxMCwweGY5LDB4MjAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4MmMsMHg4MCwweDAzLDB4MjAsMHgwMiwweGMwLDB4NDAsMHgzMiwweDAwLDB4MWMsMHgwNCwweDBmLDB4MjEsMHgwMCwweGMwLDB4MDQgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4MzgsMHgwMCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDgsMHhjOCwweDYwLDB4MzAsMHgxMCwweDBmLDB4ODAsMHgwMiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4MjgsMHgwNSwweDFhLDB4MjAsMHg4MiwweDA0LDB4MmYsMHg4MCwweDA4LDB4YTAsMHgwMiwweDM4LDB4MDAsMHg4ZSwweDgwLDB4MjIgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODEsMHgwYiwweDIwLDB4MDIsMHgyOCwweDAwLDB4ZGUgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4ZTQsMHgzNiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MjgsMHgwMCwweGJhLDB4MDQsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMSwweDJjLDB4ODAgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHg2MCwweDgyLDB4OTAsMHhhMCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAgfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MzAsMHgwYSwweDJjLDB4MDAsMHg4MywweGMyLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgyYSwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4YjMsMHgwMCwweGEwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4MDAsMHg4NywweDAxLDB4MmQsMHhjMiwweDA4LDB4ZjMsMHgxMiwweDNjLDB4MDAsMHg4ZiwweDAxLDB4MjEgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4YzgsMHg2OCwweDcyLDB4MjIsMHgxZSwweDA0LDB4ODcsMHgyMCwweDIxLDB4YzQsMHgwYiwweDcwLDB4MDIsMHgzYywweDg0LDB4OWYgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4MDAsMHgyNSwweGM0LDB4NGIsMHg3MCwweDAyLDB4MWMsMHgwNCwweGI3LDB4ODEsMHgyMSwweGM4LDB4MDgsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDAsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNjLDB4YTAgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4NGMsMHg3YSwweDBiLDB4MWEsMHgwMCwweGM2LDB4ODAsMHgzMCwweGUwLDB4MDgsMHhmOCwweDgyLDB4MGUsMHg0MCwweGNmLDB4ZjAgfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4MzksMHhlOCwweDBmLDB4M2EsMHgwMywweDFlLDB4MjAsMHhjNywweDgwLDB4MzEsMHhlMywweDBmLDB4MzgsMHgyMywweDFmLDB4MDggfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4ZmYsMHhjMCwweDMzLDB4ZjIsMHgwYywweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxNSwweDg4LDB4MGEsMHg3YiwweDAwLDB4M2UsMHhjMSwweDBiLDB4MzQsMHgyMywweGM4LDB4MTAsMHhmYiwweDAyLDB4M2UgfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4Y2EsMHgwZiwweGI3LDB4NDMsMHhlYywweDgwLDB4ZmIsMHgwMCwweDJlLDB4YzIsMHgwYiwweGI0LDB4ODMsMHhlZCwweGQwLDB4ZmEgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzZSwweGQ5LDB4MGYsMHhiMywweDgzLDB4ZWMsMHg4MCwweGJiLDB4MjAsMHgzZSwweGQ4LDB4MmYsMHhiNCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZjUsMHg5MSwweDMxLDB4YTAgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4MGMsMHhmYywweDAzLDB4ZmUsMHgwMCwweGM0LDB4ODEsMHgzMSwweGVlLDB4OGQsMHhmOCwweDBhLDB4M2UsMHgzMCwweGNmLDB4ODQgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHg4MywweGZlLDB4MTAsMHhmZSwweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgxOSwweDNmLDB4NDggfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4Y2YsMHhjMCwweDMzLDB4ZTAsMHgwNCwweGZjLDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDgsMHhiNywweGExLDB4MjEsMHhjOCwweDA4LDB4NzEsMHgwMiwweGYwLDB4YTAsMHg4NSwweDIwLDB4MjEgfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4Y2UsMHgwOCwweDcwLDB4MDIsMHgzYywweDgwLDB4OGYsMHgwMCwweDJiLDB4YzUsMHgwOCwweDcxLDB4MDIsMHhkYywweDEwLDB4YjQgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4MDAsMHgyMSwweGMxLDB4MGEsMHhmMywweDgyLDB4MGMsMHgwMCwweDg3LDB4MDEsMHgyOSwweGMwLDB4MDgsMHg3MSwweDAyLDB4NmEgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5ZCwweDAwLDB4YmQsMHgyMSwweDI3LDB4ODIgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4MDAsMHg3MCwweDAyLDB4ZmMsMHgwNCwweDhjLDB4MDAsMHhhNywweGNjLDB4YTgsMHg3MCwweDAyLDB4M2MsMHgwOCwweGFmLDB4MDAgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjNCwweDA4LDB4NzAsMHgxNiwweDFjLDB4MGEgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4OGYsMHgwMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4MjAsMHgxMCwweGM4LDB4MDAsMHhiYiwweDQ0LDB4MjQsMHhlMiwweDA4LDB4YjEsMHgwMiwweGMyLDB4ODAsMHgwMSwweDgwLDB4MjQgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4ZDAsMHg4OCwweDMwLDB4MDIsMHgwZiwweDUyLDB4ODMsMHg5MSwweDI4LDB4ZTQsMHg4OCwweDNkLDB4MDIsMHhjZSwweGQwLDB4YjAgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4YjIsMHhhMiwweGMwLDB4MGEsMHgzNCwweDEyLDB4MGMsMHgwMiwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NDggfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmIsMHgwMSwweGU0LDB4NDAgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4MmMsMHhmMCwweDQzLDB4ZTUsMHgwMCwweDhhLDB4ODgsMHgzNywweGUwLDB4MDAsMHhmYSwweDAyLDB4M2QsMHgwMCwweGVmLDB4MDAgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4MzMsMHhkMSwweDBjLDB4ZjQsMHgwMywweGZkLDB4MDAsMHhmOSwweDQwLDB4MzMsMHhlOCwweDBjLDB4ZmMsMHgwMSwweDNjLDB4MDQgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4Y2YsMHgwMiwweDMzLDB4YzAsMHgyYywweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4ODAsMHgwMCwweGVlLDB4MDgsMHhmOSwweDEwLDB4M2EsMHhkMCwweDBmLDB4YjAsMHg5MywweGVjLDB4MDAsMHhmYiwweDBiLDB4M2EgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4YzAsMHg4ZSwweGIwLDB4ODMsMHhlYywweDgwLDB4ZmIsMHgwOSwweDdlLDB4YzgsMHgwZiwweGIyLDB4MTMsMHhlYywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4MDAsMHgzZSwweGMyLDB4OGYsMHhiMiwweDRiLDB4Y2MsMHgwNCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4MWMsMHhmMCwweDAzLDB4NzAsMHg0MCwweGM0LDB4YzAsMHgzMywweGMyLDB4MGYsMHhmMCwweDAzLDB4MWMsMHgxMCwweGM3LDB4MDAgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4MzEsMHhjMCwweDBjLDB4NzAsMHgwMywweDFjLDB4MDAsMHhjNSwweDQxLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgyMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4Y2YsMHgwMCwweGIzLDB4YzAsMHg2YywweGYwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4ODEsMHgwNCwweDZhLDB4MDAsMHhiOSwweDkwLDB4MzIsMHhmMSwweDA4LDB4YjAsMHgwMiwweDBhLDB4MTAsMHhkOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4YzEsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4Y2IsMHgwNiwweDIyLDB4YzAsMHg4OCwweGIwLDB4MTIsMHgyYywweDAwLDB4ODggfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4ODAsMHgyMiwweGMxLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMxLDB4MDgsMHhiMCwweDQ2LDB4ZTAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyZSwweDAwLDB4YjksMHgwMCwweDIyLDB4ZjAgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4MDgsMHhiMCwweDEyLDB4NjQsMHgwMCwweDhhLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4YSwweDAwLDB4MjIsMHhjMCwweDg4LDB4MzAsMHgwYSwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4OGIsMHgwMCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHhiMSwweDAyLDB4ZTQsMHhjMSwweDA4LDB4YjAsMHgyMiwweDIwLDB4MDIsMHg5MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMiwweGEwLDB4YzAsMHgyOCwweDMwLDB4MGUsMHgwYywweDAyLDB4ODAgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4MDAsMHhhMCwweGMwLDB4NDksMHgzMCwweDBhLDB4MGMsMHgwMiwweDhiLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZjksMHgyNCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4MDgsMHhmMCwweDAzLDB4NjQsMHgwMCwweGM4LDB4MDAsMHhiMywweGMwLDB4MWYsMHhmMCwweDBiLDB4M2MsMHgwMCwweDhmLDB4MDAgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4MzMsMHhjMCwweDRjLDB4ZjAsMHg0MywweDNjLDB4MDgsMHhjMywweDAwLDB4MzEsMHhjMCwweDBjLDB4ZjAsMHgwMywweDNkLDB4NDggfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4Y2YsMHgwMCwweDMxLDB4YzAsMHgwYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDQsMHhmOSwweDQxLDB4M2IsMHhjMCwweDRmLDB4ZjAsMHgwMywweGYwLDB4MTEsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4YzAsMHg4NywweDcwLDB4MjcsMHhmYywweDAwLDB4ZWYsMHgwNiwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDIsMHhmYywweDA4LDB4ZmMgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NDcsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDc3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4YzcsMHgwMSwweDM3LDB4MGMgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4MGYsMHhlOCwweDIzLDB4MTAsMHg0YSwweGM0LDB4YzAsMHgzMSwweDMwLDB4MGMsMHhjOSwweDAzLDB4MzQsMHg0NiwweGNmLDB4MTAgfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4MzMsMHhkMCwweDBjLDB4ZjQsMHgwMywweDNjLDB4NTgsMHhjZiwweDAwLDB4MzMsMHhjMCwweDJkLDB4ZjEsMHgwMywweDNlLDB4MDIgfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4Y2YsMHgyMSwweDNmLDB4ZTQsMHgwZiwweGYyLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4ODAsMHgxMCwweGU0LDB4ODQsMHgwYiwweDQwLDB4MjIsMHg0YywweDBiLDB4YTgsMHgwMiwweDJjLDB4YzAsMHg4YiwweDIwLDB4MjIgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4YzgsMHg0YSwweDMyLDB4MDIsMHgyNCwweDgwLDB4ODMsMHgyMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4OGIgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4MjEsMHgzMiwweGNhLDB4NDgsMHgzMiwweDAyLDB4MmMsMHgzMCwweDhmLDB4OTAsMHgyZSwweDg4LDB4MGIsMHhiZCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZSwweDIwLDB4YTMsMHg0MCwweGUwLDB4NDggfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4NGIsMHgyMCwweDIyLDB4MGMsMHgwMiwweDgyLDB4MDAsMHgyYSwweDAwLDB4MDgsMHgyMCwweDAyLDB4MDQsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4MjAsMHhjOCwweDA4LDB4MDIsMHgwMiwweDBjLDB4MDAsMHg4MCwweDBjLDB4NjAsMHgwMCwweDA4LDB4MjAsMHgxMiwweDJjLDB4ODggfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4ZTgsMHgwYiwweDMwLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxNSwweGFlLDB4MDAsMHhhYiwweDAxLDB4YTIsMHg2MCwweDBiLDB4YTAsMHgwMiwweDIwLDB4MDEsMHg4MSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4YzAsMHgwYSwweDkwLDB4MTIsMHgwNCwweDIwLDB4OGEsMHgwOCwweDIyLDB4YzEsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODggfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4MDAsMHgyNCwweDQ0LDB4MDgsMHhhMiwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDQsMHgyZSwweDg4LDB4MDMsMHhiMCwweDAyLDB4NzAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWEsMHg5MCwweDMyLDB4MjggfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4MGYsMHhiNiwweDAzLDB4MjAsMHgwOCwweGM5LDB4MDQsMHgzYSwweGMwLDB4NGMsMHg5MCwweDIyLDB4MjQsMHgwMCwweGNiLDB4NDAgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4MzIsMHhhOCwweDBjLDB4YjIsMHgwMywweDJjLDB4MDAsMHhjYiwweDgwLDB4YjIsMHhlMCwweDBjLDB4YjAsMHgwYiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkZiwweDgwLDB4M2IsMHg4MSwweDBmLDB4ZjAsMHhjMywweGZjLDB4MDAsMHhiZSwweDAxLDB4MWYgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MDAsMHgwZiwweGUwLDB4MjMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YjAsMHg0ZiwweGYwLDB4NDMsMHhkNCwweDAyLDB4ZmYgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4OTEsMHgzYSwweGUwLDB4NGUsMHhmMCwweDAzLDB4N2MsMHgwYywweGZmLDB4MDAsMHgyZiwweDgwLDB4MGYsMHgzMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2EsMHgwMCwweDcyLDB4NTAgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4MDQsMHhiNCwweDAzLDB4MmMsMHg4MiwweGNiLDB4MDAsMHgzMiwweGUwLDB4MGMsMHhiOCwweDAzLDB4MjcsMHgwNCwweGM4LDB4YzggfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4YjIsMHhhMiwweDBjLDB4ODgsMHgwMywweDJjLDB4MDAsMHhjMSwweDAwLDB4M2UsMHgwMCwweDJjLDB4MzAsMHgxYiwweDJjLDB4MDQgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4ZmIsMHgxMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDQsMHgwMywweDUwLDB4YTIsMHhlMCwweDA4LDB4MzQsMHg0MiwweDMzLDB4MDAsMHg4OCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4MTAsMHgwZCwweDg0LDB4MDMsMHgyNSwweDAwLDB4OGEsMHg0MCwweDIyLDB4OTAsMHgwOCwweGE1LDB4MDIsMHgyYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4YTQsMHgzYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJmLDB4ODQsMHgyZSwweDgwLDB4MGIsMHhmMCwweDUyLDB4MzIgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2YywweDgwLDB4ODEsMHg4MCwweDI0LDB4ODggfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4ODksMHgzYywweDI2LDB4MjEsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAyLDB4MDgsMHg4MCwweDgyLDB4MDAsMHgyMCwweDliLDB4MDAgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4MjIsMHg0MCwweDg4LDB4YjAsMHgxMiwweDBjLDB4MDgsMHg4MywweDgwLDB4MmMsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4MGEsMHg4NSwweGEwLDB4YTUsMHg2MCwweDA4LDB4ZmIsMHg4MiwweDNlLDB4ODQsMHg5ZiwweDgxLDB4NjMgfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4ZTAsMHg4OSwweDc5LDB4MTIsMHg1MiwweDgwLDB4OTcsMHg4MiwweDIxLDB4NmMsMHgxOCwweDc4LDB4MDIsMHgxMiwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4YTEsMHgyOSwweGUwLDB4MDgsMHg1YiwweDAyLDB4MWUsMHgwMCwweGI3LDB4YzAsMHgyZCwweDYwLDB4MGIsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgwOCwweDI2LDB4YzIgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4MmMsMHgzMiwweDEzLDB4MGUsMHhhNCwweGQyLDB4MDAsMHhiMCwweDAwLDB4MWMsMHgyMSwweDEyLDB4MjQsMHgwMiwweGQxLDB4MjAgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4MzAsMHhjOCwweDBjLDB4MTAsMHgwMywweDBjLDB4MDAsMHhjMiwweDEwLDB4M2MsMHg4MCwweDBjLDB4MjMsMHgwMywweDBjLDB4NDAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4NDgsMHgwZiwweDMwLDB4MGIsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZCwweDIwLDB4YmIsMHg0MCwweDA3LDB4NzIsMHgwMiwweGYwLDB4MTAsMHhlZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4YzQsMHgwZiwweGQxLDB4NjMsMHhiNCwweDgwLDB4ZWYsMHgwMCwweDNmLDB4YzgsMHgwZiwweGYwLDB4MDMsMHhkOCwweDAwLDB4ZmUgfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4MzQsMHgzZiwweGM0LDB4MGYsMHhlYiwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHg3ZiwweDQwLDB4MGYsMHhmMSwweDgzLDB4ZDAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4YzgsMHgwMCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4OGYsMHgyOCwweDAzLDB4MjAsMHgwMCwweDQ5LDB4MDIsMHgzMiwweGMwLDB4MGYsMHg5MCwweDAzLDB4MjAsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4MzIsMHg0MCwweDRjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHhjMCwweDBlLDB4OWUsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4ZCwweDAxLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMiwweDFkLDB4MDAsMHhkNiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4MDAsMHgwYiwweGUwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwNCwweDIwLDB4NDAsMHgwOCwweDcwLDB4NDIsMHgzNCwweDAyLDB4ODcgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHg1MSwweDBhLDB4MWMsMHgwNCwweGI3LDB4MzAsMHgyZCwweGMwLDB4MGIsMHg3MiwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YTYsMHg0MCwweDIxLDB4YTAgfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4MGIsMHg2OCwweDAyLDB4MGUsMHgwMCwweDhmLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4MTYsMHgxMCwweGE1LDB4ODAgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MTgsMHgwMiwweDFlLDB4MDAsMHg4MywweDgwLDB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFmLDB4MDAgfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4YjcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDM4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MTIsMHhhMSwweDY0LDB4MjAsMHhlNiwweDBiLDB4MjAsMHgwMiwweDAwLDB4MTAsMHg5MCwweDRhLDB4MjAgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4MjAsMHg0YiwweDAwLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzIsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4MDQsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MGUsMHgwMCwweGIzLDB4MDAsMHgyYywweGUwLDB4NGIsMHgzMCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4ZWUsMHhjMCwweDMzLDB4OTAgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4MGYsMHhhMCwweDFiLDB4MDgsMHgwMCwweGNhLDB4NDAsMHhiMiwweDgyLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMiwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4YjIsMHg5MCwweGFjLDB4YTAsMHgwMywweDI5LDB4MDAsMHhjYSwweDQwLDB4YjIsMHg4MCwweDhlLDB4YTQsMHgwMywweDJhLDB4MDAgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4ZmEsMHgwMCwweDNmLDB4YTgsMHgwZiwweGEwLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4NDgsMHgwMCwweGUyLDB4MDIsMHg5MCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODgsMHgwMywweGYxLDB4MDAsMHhmYywweDAyLDB4M2YgfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MjAsMHgwZiwweGM4LDB4MDMsMHhjMSwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHg4ZiwweDAwLDB4MDEsMHg2MCwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4MDgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4OGYsMHg4MCwweDEzLDB4OTIgfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweGIyLDB4NjQgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZTQsMHgwNCwweGM5LDB4MDAsMHgzMiwweDQwLDB4NmMsMHg5MCwweDAzLDB4MjUsMHgwMiwweGM5LDB4OTAgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4YjAsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MjAsMHhjOSwweGEwLDB4M2UsMHg0MCwweDRjLDB4OTAsMHgyMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4ZjEsMHgwMCwweDkyLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDgwLDB4YTIsMHg0MCwweDBiLDB4OTYsMHg0MiwweGU1LDB4MDQsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4MDksMHg0MSwweDIyLDB4NDAsMHg0OCwweDkwLDB4NDIsMHgyNCwweDA0LDB4ODkgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4ODAsMHgyNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNSwweDAwLDB4ODksMHgyMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZjQsMHg4NCwweDg1LDB4MDAsMHgyMSwweDQwLDB4NDgsMHg1MCwweDAyLDB4MjQsMHgyMCwweDhkLDB4MDggfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDk0LDB4MDAsMHg4ZCwweDAwLDB4MjksMHg0MCwweDBhLDB4ZDAsMHgwMiwweGE0LDB4MDggfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4YjksMHgwMCwweDI4LDB4NDAsMHgxOCwweDkwLDB4YzIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MSwweDBiLDB4MTAsMHgwMiwweGY1LDB4ODAsMHg4NSwweGMxLDB4YTEgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4NTAsMHgwOCwweDU0LDB4MGEsMHgwNSwweDA2LDB4ODUsMHg0MCwweDIxLDB4NTAsMHg4OCwweDU0LDB4MDIsMHg5NSwweDAwLDB4ODUgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4NDQsMHgyZCwweDUwLDB4MmEsMHg1NCwweDEyLDB4YzUsMHgwMSwweGIxLDB4MDAsMHgwOCwweDUwLDB4MDgsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4Y2EsMHg1MCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTgsMHgwMiwweGM4LDB4MDEsMHgzMiwweDAwLDB4MmMsMHhjMCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDIgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweGEwLDB4MDAsMHhjOCwweDAwLDB4M2EsMHgwMCwweDRlLDB4NDAsMHgyMywweGEwLDB4MDggfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgyYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4OTgsMHgxZCwweGRjLDB4MDQsMHhmZCwweDQwLDB4M2YsMHg1MCwweDRmLDB4OTAsMHg2MywweGU0LDB4NDAsMHhmMSwweDAyLDB4M2UgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4NDEsMHgwZiwweDkwLDB4MTMsMHhmNSwweDA0LDB4ZjksMHg0MSwweDNlLDB4NTAsMHgwZiwweDk0LDB4NDMsMHg2NSwweDAyLDB4ZjkgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4NDEsMHgzNiwweDUwLDB4NGQsMHg5NCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4NDEsMHgzNywweDQwLDB4NGYsMHg5NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmYywweDAwLDB4Y2QsMHhhOCwweDMzLDB4NzAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4MGYsMHhkMCwweDEzLDB4ZjYsMHg4OCwweGNkLDB4MDAsMHgzMiwweDUwLDB4NGYsMHgxNCwweDIzLDB4MDcsMHhhMCwweGM5LDB4YzAgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4MzIsMHg3OCwweDBjLDB4OWUsMHgwMywweDM3LDB4MDIsMHhjZCwweGMwLDB4MzIsMHg2NCwweDBmLDB4OTgsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4Y2QsMHgwMCwweDMyLDB4NDAsMHgyYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDgsMHg4OCwweGViLDB4MjIsMHgzMCwweDBiLDB4ODAsMHgxMiwweGU4LDB4MDQsMHhhMCwweGEwLDB4MmEgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MjAsMHgwYiwweDhhLDB4MGEsMHgyMywweDAwLDB4ODgsMHg4MCwweDIyLDB4MjgsMHgwMCwweGM4LDB4NDIsMHgyMywweDgwLDB4ODAgfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4ZDQsMHgyMCwweDI4LDB4MDksMHg4MCwweDAyLDB4MjIsMHg5NCwweGE4LDB4MDAsMHgyYSwweDAwLDB4ODgsMHg4NSwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweGEwLDB4ODMsMHgwMCwweDI0LDB4ZDggfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4OGIsMHgxMCwweDAyLDB4ZTUsMHgxNCwweDg5LDB4MGEsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NTQsMHg4MCwweDg1LDB4NDAgfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4MjUsMHg1OCwweDA5LDB4NTYsMHgwMiwweDQ1LDB4MDIsMHg4MSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHgwMiwweDA0LDB4MzAgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4ODEsMHgwMCwweDIwLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTIsMHg4OSwweDAwLDB4YTYsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU0LDB4OTgsMHhhOSwweDgwLDB4MmIgfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4NDAsMHgwYiwweDUxLDB4MDIsMHg1NSwweDAwLDB4OWQsMHgwOCwweDI3LDB4NDgsMHgwOSwweGY2LDB4MDIsMHg0NCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4MDQsMHgyMiwweDQwLDB4MTksMHg5MSwweDhhLDB4MjQsMHg4MCwweGE5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDAyLDB4YzksMHgwNCwweDM2LDB4NTggfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YzUsMHgwMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDEzLDB4NjQsMHgwMiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4MzYsMHg0MCwweDJkLDB4OTAsMHgwYiwweDY2LDB4MDQsMHhjOSwweGUwLDB4YjIsMHg0OCwweDhmLDB4OTgsMHg0NywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4YzksMHgwMCwweDcyLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDgsMHhmOSwweDIxLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4NDAsMHg0ZiwweDk4LDB4ODMsMHhhNCwweDAwLDB4ZTksMHg0MCwweGJhLDB4NjAsMHgwZSwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjkgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4YTMsMHgzZSwweDQ4LDB4MGYsMHg5OCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMiwweDQ4LDB4YzgsMHgyMCwweDMyLDB4MDggfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4MWYsMHg4MCwweDgzLDB4ZTEsMHgyMiwweGM4LDB4MDEsMHgzMywweDAwLDB4MmMsMHhjMCwweDAzLDB4MzAsMHgwNCwweGNjLDB4NDAgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4YjEsMHgwMCwweDBjLDB4NDQsMHgwMywweDIwLDB4MTIsMHhjOCwweDQxLDB4MzIsMHgwMCwweDJkLDB4ODQsMHgwYiwweDYwLDB4MDAgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4MjgsMHgwNSwweDNhLDB4MDAsMHhhNiwweDAwLDB4MjMsMHg5MCwweDAzLDB4ZTQsMHg5MiwweGY4LDB4MDAsMHg4MiwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4Y2EsMHgwMCwweDIyLDB4ODMsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGI2LDB4ODAsMHgyMiwweDgwLDB4MGQsMHhlOCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2ZSwweDAwLDB4ODIsMHg0MiwweDIwLDB4YzAgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4Y2QsMHgwOSwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMiwweDk4LDB4MDAgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4MjAsMHgyMCwweDI4LDB4MDAsMHgwYSwweDA0LDB4MTAsMHg4MSwweDgwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4YjMsMHgwMCwweDIyLDB4YzAsMHgxOCwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4YTAsMHgwMSwweDM4LDB4MDIsMHhhMywweDAwLDB4MjEsMHg0MCwweDFiLDB4NzAsMHgwMiwweGRjLDB4MjAsMHg4NCwweDA1LDB4NjUgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4ZTAsMHgwOCwweGYwLDB4MDIsMHg3YywweDEwLDB4OTcsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1NCwweDg4LDB4ODcgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4MDksMHgyMSwweGU4LDB4MDksMHgzMywweDAyLDB4MWMsMHg4MCwweGI2LDB4MDgsMHg2MywweGM4LDB4MDksMHgzOCwweDEyLDB4MjggfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHhhMCwweGExLDB4ZTAgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MGIsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM1LDB4ODIsMHgzMywweDIwLDB4MGMsMHg0OCwweDAzLDB4MWUsMHgwMSwweGRmLDB4ODAgfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4MzEsMHgyMCwweDBjLDB4NDgsMHgwMywweDA2LDB4NDAsMHg4NywweDgyLDB4MzEsMHhmOCwweDBkLDB4N2IsMHgwMywweDVmLDB4MDAgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4ZjMsMHg4MCwweDMxLDB4ZjIsMHgwYywweDYwLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MDgsMHgxZCwweDljLDB4MDAsMHhmYiwweDAxLDB4MmYsMHg0MCwweDA3LDB4YjAsMHgwMywweGU4LDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4YzEsMHgwZiwweGIwLDB4MDMsMHhlMCwweDA2LDB4ZTgsMHgwMiwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDEsMHhhNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4NDAsMHhiZSwweGQwLDB4MDYsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGZhLDB4MDAsMHgzYywweGQ4LDB4MGYsMHhhMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2YsMHg4OCwweDMzLDB4NjQgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4MmMsMHhmOCwweDAzLDB4ZmUsMHgwMiwweGM0LDB4YjAsMHgzMywweDIwLDB4OGMsMHhkOCwweDAzLDB4MzIsMHgwMCwweGNjLDB4YjQgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4MzMsMHhhMCwweDBjLDB4YzgsMHgwMywweDE2LDB4MjAsMHhjZiwweGMwLDB4MzMsMHhmMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4Y2QsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGQ4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4YTgsMHgxMSwweGI1LDB4MDQsMHg4NywweDEyLDB4YTEsMHg1MCwweDBhLDB4NzQsMHgxMiwweGM0LDB4NDAsMHg4NCwweDExLDB4MjMgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4YzAsMHgyOCwweGUwLDB4MDIsMHgxYywweDAyLDB4YTcsMHgxMSwweDIxLDB4NTgsMHg0OCwweDcwLDB4MGEsMHgxNCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4MDAsMHgyMywweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg0MCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NSwweDAwLDB4ODcsMHg0MCwweDIxLDB4MDAgfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4MTgsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk1LDB4MjgsMHhlMSwweDAyLDB4MDgsMHg1MCwweDAyLDB4M2MsMHg0MiwweGE3LDB4MjIgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4MjEsMHg4MCwweDg4LDB4NDEsMHgwMiwweDE0LDB4MDAsMHg4NSwweDAwLDB4YTEsMHhjMCwweDA5LDB4NzEsMHgwMiwweGRjLDB4MDAgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4YjUsMHgxMCwweDJkLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4MjAsMHgxNCwweGM0LDB4MTAsMHg4MywweDg0LDB4MjAsMHgxMSwweDA4LDB4MzAsMHgwMiwweGMzLDB4MTAsMHg5MSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4YzAsMHgwOCwweDI4LDB4MTIsMHgwMCwweDAwLDB4YTAsMHg4NCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwNCwweDI2LDB4ODMgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4MDAsMHgyMCwweGQwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIyLDB4MDAsMHgyYywweGMwLDB4MGIsMHgwMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4Y2YsMHg4OCwweGIyLDB4ZTggfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4MGMsMHgzMCwweDEzLDB4Y2UsMHhjMiwweGQwLDB4ODIsMHgzMiwweDAwLDB4MGMsMHgwZSwweDBiLDB4MjAsMHgwMCwweGM4LDB4ODggfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4YjIsMHg0MCwweDJjLDB4YmEsMHg0MywweDM3LDB4MDIsMHhjYiwweDAwLDB4YjMsMHhjMCwweDJjLDB4ZjAsMHgwMywweGZjLDB4MTIgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4ZmIsMHgwMCwweDdmLDB4ZDEsMHgwZiwweDMwLDB4MGIsMHgyYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDIsMHhmMSwweDQwLDB4M2UsMHg0MSwweDBmLDB4YjAsMHgyMywweGVkLDB4MDAsMHhlOCwweDAxLDB4M2UgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MTMsMHhlYywweDA0LDB4ZGIsMHgwMCwweDNjLDB4ODAsMHgwZiwweDA0LDB4MDMsMHhlNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4MDAsMHgzYywweGMyLDB4MGUsMHhiMCwweDAzLDB4ZWUsMHgwMCwweDRiLDB4NDEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4NGIsMHgwMCwweDMyLDB4NDIgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4MzYsMHg4MCwweGNkLDB4MDAsMHgzMywweDAwLDB4NGMsMHhjMCwweDgzLDB4M2MsMHgwNCwweGY3LDB4MDAgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4MzIsMHg0MCwweDBjLDB4YjEsMHg0MywweDE0LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAgfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4ZmYsMHgwMCwweGIzLDB4YzIsMHgwYywweGEwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4ODEsMHgwNCwweDRmLDB4MDIsMHg4YiwweDgwLDB4MjAsMHgzMCwweDA4LDB4YmMsMHgwMiwweDIwLDB4MTAsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4YzAsMHgwMCwweGIwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweGEyLDB4OTAsMHgyOCwweDhjLDB4MWEsMHgyNCwweDAyLDB4OGIgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4ODMsMHgyMiwweGMxLDB4MDgsMHhiMCwweDAyLDB4ZmMsMHgwMCwweGIzLDB4NjAsMHgyMCwweGMwLDB4MGQsMHhhMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZSwweDAwLDB4YWIsMHhjMCwweDIyLDB4NjAgfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MjksMHgwMCwweDg4LDB4MDEsMHgyMCwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGU0LDB4MDAsMHg4MSwweDI0LDB4YTIsMHhjMCwweDA5LDB4YjAsMHg0NiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4YjksMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4MDgsMHgwNCwweDJjLDB4MDAsMHhhMSwweDAwLDB4YTAsMHg0MSwweDA4LDB4YjAsMHgwYSwweDIwLDB4NTMsMHg4OCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4YzAsMHgyOCwweGEwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDIsMHg4NCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4MDQsMHgyMCwweGMwLDB4MjgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDIsMHg2MiwweGMwLDB4MDksMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZTksMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MDAsMHgwNCwweGM5LDB4MDAsMHhiMiwweDAwLDB4MGMsMHg5MCwweDAzLDB4MmMsMHgwMCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YjAsMHgwMywweGI0LDB4MDIsMHg4ZiwweDAwLDB4MjMsMHhjMCwweDA0LDB4ZjAsMHgwMywweGVjLDB4MDggfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4ZjksMHgwMCwweDMzLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MTAsMHhkZCwweDA0LDB4M2YsMHgwMCwweDBmLDB4YzAsMHgyMywweGYwLDB4OTAsMHhmZCwweDAwLDB4MmYgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4YzAsMHgwZiwweGUwLDB4NDMsMHhkMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHg4ZiwweGMwLDB4MjIsMHg3NCwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDYsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDgwLDB4ZWYsMHgyMCwweDExLDB4YzAgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4MGUsMHg3MiwweDAzLDB4YmQsMHhiMCwweGNmLDB4MzEsMHhiZiwweGNjLDB4MDIsMHhmMCwweDAzLDB4ZmMsMHhjNiwweGNmLDB4MDEgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4MGIsMHhjNSwweDBmLDB4ZjEsMHgwMywweDNjLDB4MDQsMHhlZiwweDYxLDB4MzMsMHhkOCwweDA3LDB4ZjAsMHgwMywweDM0LDB4ODAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4Y2QsMHgzMCwweDczLDB4Y2MsMHgwZiwweGU4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4ODAsMHgxOCwweGU5LDB4MDAsMHg4OCwweDY5LDB4MjIsMHgxMCwweDA4LDB4OGMsMHgwMCwweDIxLDB4ODQsMHg4OCwweDQxLDB4MjIgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4MTAsMHg4OCwweDg2LDB4OTIsMHgwMSwweDAwLDB4ODgsMHg2MiwweDIyLDB4MTAsMHg0YiwweDg3LDB4MDIsMHgyMSwweGEwLDB4ODggfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4NjAsMHgyMCwweDEwLDB4MGIsMHg4NiwweGEyLDB4MzUsMHhhMCwweGFiLDB4NjAsMHhhMSwweGM0LDB4MGIsMHhiOCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZCwweGE4LDB4MzMsMHg0MSwweDIwLDB4YzYgfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4NGEsMHgzMSwweDAwLDB4OGMsMHgxMCwweDkzLDB4MzMsMHgyOCwweGNjLDB4MjksMHgzNCwweDEyLDB4OGMsMHg1MCwweDkzLDB4MWMgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4MjgsMHg4NCwweDAxLDB4MjAsMHg0YSwweDRjLDB4NDEsMHg4MywweDEwLDB4MjQsMHhjYywweDRiLDB4MzEsMHg0MiwweDRjLDB4NDAgfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4OTEsMHgxMCwweDI0LDB4YzAsMHgwYiwweDgwLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4YzAsMHgwNSwweGE4LDB4MjAsMHg5MCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMCwweDIwLDB4MzAsMHhiOCwweDA4LDB4MjYgfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MDAsMHgwMSwweDgwLDB4ODIsMHgyMCwweDIwLDB4MTgsMHgwOCwweDQyLDB4NDAsMHgwMywweDkxLDB4MDIsMHg2MCwweDAwLDB4MDggfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4MDEsMHhhNiwweDAwLDB4MGIsMHg4MCwweDAwLDB4NmMsMHgxMCwweGJiLDB4MDEsMHgyNiwweGMwLDB4NGIsMHg5MCwweDBhLDB4MzAgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhmZCwweDAwLDB4ZmQsMHg0MSwweDMzLDB4YTEgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4MGUsMHhkMiwweDAzLDB4YjUsMHgwMiwweGRmLDB4NDIsMHgzYiwweDAxLDB4MGYsMHhkNCwweDQzLDB4YjUsMHgwMCwweGNkLDB4NDAgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4MWIsMHhjNCwweDBkLDB4NzgsMHgwMywweDcwLDB4MDIsMHhlYywweDAwLDB4MTcsMHhhMSwweDBmLDB4ZTgsMHgwYiwweDJjLDB4MDIgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4ZDksMHg5MCwweDI2LDB4YzAsMHgwZiwweGFjLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4ZTAsMHgwMSwweGI4LDB4MDAsMHhlZSwweDAwLDB4MWYsMHg2NCwweDRmLDB4ZTAsMHgwMywweGQ4LDB4MTAsMHhjNCwweDE4LDB4MzMgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4YzAsMHgwYywweGEwLDB4YTEsMHhiOCwweDA5LDB4ZTYsMHgwOSwweDM2LDB4MjIsMHgwZiwweDg4LDB4MjMsMHhiYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4MDAsMHgzYiwweDY0LDB4MGYsMHhkOSwweDAzLDB4OWMsMHgwMCwweGUzLDB4MDQsMHgzYiwweGMwLDB4MGYsMHhmNCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4ZCwweDAwLDB4YzksMHg0MCwweGI2LDB4ODAgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4MGYsMHgxMCwweDAzLDB4YTcsMHgyMCwweGZiLDB4NTAsMHhiNiwweDA4LDB4NGMsMHgxNCwweDAzLDB4NjUsMHgyMiwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4YjYsMHg4MCwweDBlLDB4YTAsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4NzYsMHg4MiwweDI4LDB4YTAsMHgyMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4YzksMHgwNCwweDEyLDB4YzAsMHg4ZSwweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4YzgsMHgwNSwweDJiLDB4NjAsMHg4YSwweDA5LDB4MjAsMHg1MCwweDA4LDB4YTAsMHgyMywweGU5LDB4MDAsMHhiOCwweGMwLDB4MjIgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4ZjAsMHgwOCwweGFjLDB4MDIsMHgyOCwweDA0LDB4OGEsMHhjMiwweDIyLDB4NTAsMHgwOCwweDkwLDB4MDYsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4MDQsMHgyMiwweDUxLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgwNCwweDhiLDB4MDQsMHgzNywweGMwLDB4MDgsMHgxOCwweDQyLDB4MjYgfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDQsMHg0YiwweDAwLDB4ODIsMHhjOCwweDI0LDB4NDMgfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4MGIsMHgyNiwweDBhLDB4ODgsMHgwMCwweGIwLDB4ODAsMHgyMiwweGU0LDB4MGIsMHgyMCwweDQyLDB4NjksMHgwMCwweGEyLDB4OTAgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4MjgsMHg0MCwweGU4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHg1MCwweDg4LDB4OTAsMHg4MiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYSwweDEwLDB4MDIsMHhiYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4MjAsMHgxMCwweDRlLDB4ODAsMHg4MSwweDAwLDB4MjEsMHhhOCwweDA4LDB4NTgsMHgwMiwweGQ2LDB4MDEsMHhiNywweDkwLDB4NjggfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4MjAsMHgwMywweDU5LDB4ODIsMHg1NiwweDAwLDB4YTUsMHg4NCwweDJkLDB4YTIsMHgxOCwweDY5LDB4MjIsMHgwMiwweDAwLDB4MzQgfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4ODAsMHgyOSwweGE4LDB4MDgsMHg2OCwweDA2LDB4YzYsMHgxNCwweDg1LDB4ODIsMHgyNSwweGUwLDB4MDgsMHg1OCwweDgyLDB4MWMgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0OCwweDAwLDB4YzIsMHhmMCwweDM0LDB4NDAgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MGYsMHgyMCwweDAzLDB4ODgsMHg4MCwweGY4LDB4MTAsMHgzMCwweGMwLDB4MjcsMHgyMSwweDBiLDB4NDgsMHg4MCwweGVhLDB4MjAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4MzgsMHgwMCwweDBjLDB4MDAsMHgxMiwweDBjLDB4MDgsMHg3MywweDAwLDB4YjgsMHg0MCwweDBjLDB4MTIsMHgyMywweDRjLDB4MDIgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4NDMsMHgzNCwweDMwLDB4YzAsMHgwZSwweDExLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4NDAsMHgxNSwweGFjLDB4OTAsMHhmOSwweDAxLDB4MmUsMHg4OCwweDRiLDB4OTAsMHgxMSwweDY0LDB4MDAsMHhmYiwweDEwLDB4MzIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MDAsMHgwMCwweDkxLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCwweDMyLDB4YzQsMHg0ZCwweGIwLDB4NDMsMHhlMCwweDA0LDB4YzggfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzNiwweDg5LDB4MGYsMHhhOCwweDAzLDB4ZWQsMHgwMCwweGY5LDB4MTQsMHgzZSwweGMwLDB4MGYsMHgxMCwweDQzLDB4ZDAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhlOCwweDAwLDB4YzgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4MGMsMHgwMCwweDUzLDB4YTAsMHgwMCwweGU4LDB4MDEsMHgzMiwweDAxLDB4MGUsMHg4MCwweDUzLDB4MjAsMHgxMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDIwLDB4MTAsMHhlOCwweDA0LDB4YjYsMHgwMCwweDg0LDB4ODAsMHgwMywweDJkLDB4MTIgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4Y2IsMHgwMCwweDJlLDB4Y2EsMHgwNCwweDkwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4NGMsMHgxOSwweDhjLDB4MDAsMHg4NywweDAyLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MjEgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4NjIsMHg0YywweDA0LDB4ODMsMHgwMCwweDIxLDB4ODAsMHg0OCwweGUwLDB4MTIsMHgzYywweDAwLDB4ODcgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MDEsMHgyNCwweGQwLDB4MGEsMHg1MCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHg5YSwweDAwLDB4ODAsMHg4MCwweDI4LDB4MjAgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MDgsMHg0YywweDIyLDB4ZDIsMHgwMCwweGE0LDB4ODAsMHgyNCwweDMwLDB4MGIsMHg0OCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzAgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4MjEsMHgyMCwweDA5LDB4NDgsMHg2OCwweDEzLDB4MDAsMHhhNCwweDgwLDB4NjAsMHgyMCwweDA5LDB4MDgsMHgwMiwweDU2LDB4MDAgfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4OTcsMHg4MCwweDJkLDB4ZTAsMHg4OCwweDU4LDB4MDIsMHhlMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4NmMsMHgwNCwweGNjLDB4MDAsMHg4MywweDgwLDB4MjAsMHhkOCwweDA4LDB4MzAsMHgwMiwweDRjLDB4NDAsMHg4MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4ZDEsMHgwOSwweGI5LDB4NDIsMHg0ZSwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzEsMHg4OSwweDMwLDB4NDIsMHgwYywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4ZjAsMHhhMCwweGQ5LDB4MTksMHgzNiwweDIyLDB4NjYsMHgwNiwweDkxLDB4MDAsMHgwYywweGMxLDB4MGEsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhlOCwweDAyLDB4Y2EsMHhhNSwweDJhLDB4OTEgfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4MjgsMHhhOCwweDAzLDB4ZWEsMHgwMiwweGFhLDB4MDAsMHhiNiwweGEwLDB4MGYsMHhhMCwweDBhLDB4MmEsMHg5MiwweGNhLDB4ODMgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4YmEsMHg4MCwweDI5LDB4YTAsMHgwMywweDJiLDB4MDAsMHhlYSwweDQwLDB4NjYsMHg5MCwweDJkLDB4ZTQsMHgwYiwweDZhLDB4ODAgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4ZGEsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4NDgsMHgwMSwweDgwLDB4MDAsMHhmYywweDAwLDB4M2QsMHgwMCwweDBmLDB4YzAsMHgwMywweGIwLDB4MTQsMHhmYywweDAwLDB4M2IgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MTIsMHgwZSwweGMwLDB4NDMsMHhiMSwweDE0LDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZSwweGMwLDB4MDMsMHhmMCwweDIwLDB4ZjQgfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4MDAsMHgzMSwweDAwLDB4MGUsMHg0NCwweDEzLDB4YTAsMHgwMCwweGU4LDB4MDYsMHgzNiwweDAwLDB4NGYsMHg4MCwweDEzLDB4ZDIgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZDEsMHgwMCwweDM2LDB4NjAgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4MWMsMHgxOCwweDBiLDB4NDYsMHgwMCwweGQ5LDB4ODAsMHgzMCwweDQwLDB4MmMsMHg5OCwweDA1LDB4ODYsMHgwMCwweGMxLDB4ODAgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4OTIsMHg0MCwweDBkLDB4MTAsMHgwMywweDQ0LDB4MDIsMHg4OSwweDAwLDB4MzIsMHg3MCwweDBjLDB4OTgsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4YzksMHgwNCwweDMwLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4ODAsMHg4OSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4NDAsMHg0OCwweDkxLDB4MDIsMHgyNCwweDAwLDB4ZDksMHg5MCwweDIyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDEwLDB4ODkgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4MDAsMHgzMiwweDQwLDB4MDgsMHg5NSwweDEyLDB4MjQsMHgwMiwweDgxLDB4MDAsMHhhMiwweDQxLDB4MGQsMHg5MCwweDQyLDB4ZTAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MDUsMHgyNCwweDAyLDB4OWQsMHgwMCwweDIzLDB4NDQgfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4MDgsMHhkMiwweDA2LDB4NzQsMHg4MCwweGI1LDB4MjAsMHgyMywweDQwLDB4MWEsMHhkMCwweDA2LDB4MzUsMHg5MCwweDhkLDB4MDIgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4MmYsMHg0NCwweDE5LDB4ZDAsMHgwMiwweDc0LDB4MDAsMHg4ZCwweDAwLDB4NjMsMHg0MCwweDE4LDB4ZDQsMHgwMiwweGE0LDB4MTEgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4MjgsMHgxNCwweDA0LDB4ODAsMHg4NSwweDIwLDB4MjEsMHg2OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODAsMHhhNSwweDIwLDB4YTEgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4NDgsMHgwYSwweDcyLDB4MzgsMHgxNCwweDgwLDB4OTUsMHgyNCwweDJkLDB4NDgsMHgyOCwweDUyLDB4MDIsMHgxNCwweDgwLDB4ODUgfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4MjAsMHgyMSwweDQ4LDB4MDgsMHg1MiwweDA2LDB4ODQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDRhLDB4MDksMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweGIyLDB4MTQgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4MjgsMHhhMCwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDk0LDB4NGUsMHg4NSwweDA0LDB4MjEsMHg0MiwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4M2MsMHgxNCwweDBkLDB4ODAsMHgwMywweDYxLDB4NDAsMHg4OCwweDUwLDB4YjIsMHgxNCwweDJjLDB4YzUsMHgwOSwweGExLDB4NDAgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4YzgsMHg1MCwweDMyLDB4MWMsMHgwYywweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4OTgsMHgxNSwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2EsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDE0LDB4M2UgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4NDQsMHgwZCwweDkxLDB4NDMsMHg2NCwweDQwLDB4ZTksMHgxMCwweDMyLDB4NDQsMHgwNywweDkzLDB4YzMsMHhlNCwweDUwLDB4ZDEgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4MTAsMHg3ZSwweDQ0LDB4MDMsMHg5MSwweDAxLDB4NTQsMHg0NCwweGZkLDB4MTQsMHgzZSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDgwLDB4ZGQsMHhhMCwweDMzLDB4NjggfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4MWUsMHhkYSwweDAzLDB4MzYsMHg5MCwweGNkLDB4YTAsMHgzYiwweDY4LDB4MGEsMHhkOCwweDIzLDB4NzYsMHgwYywweGVkLDB4ODAgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4MmIsMHg2MiwweDBiLDB4OTksMHgwMiwweGE3LDB4ODAsMHhmOSwweGUxLDB4MzcsMHg2OCwweDBjLDB4ZGEsMHgwMywweDI3LDB4ODAgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4YzksMHhhMiwweDIyLDB4NjgsMHg0YywweDUwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4MzgsMHgxOCwweGUxLDB4NDAsMHg4OCwweDUwLDB4MjIsMHgxNCwweDA4LDB4ODAsMHgyMiwweDYwLDB4MDAsMHg4OCwweDA0LDB4MjIgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4MDAsMHgwOCwweDA0LDB4MjYsMHgwMSwweDAwLDB4ODgsMHg1MCwweDIyLDB4MTAsMHgwOCwweGFmLDB4MDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4YzAsMHhhMCwweDEwLDB4ODgsMHg4NCwweDAyLDB4MjMsMHg4MCwweGEwLDB4NDAsMHgyYSwweDEwLDB4MDgsMHg4MCwweDEyLDB4NGUgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHg4NCwweDAwLDB4ODEsMHgwMSwweDIwLDB4NDAgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDUsMHgwMCwweDgxLDB4NDEsMHgyYywweDUwLDB4MGIsMHgxNCwweDAyLDB4MDUsMHgwNCwweGExLDB4MDAgfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4MjgsMHg0MCwweDgyLDB4MTAsMHgwMiwweDg0LDB4NDAsMHhhMSwweDMyLDB4ODAsMHg1MCwweDA5LDB4MTQsMHgwMiwweDA0LDB4YzQgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4OTEsMHgxMCwweDY0LDB4NDQsMHgyOCwweDEwLDB4MDIsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4MTgsMHgwNCwweGFjLDB4MDIsMHg4MSwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgwMiwweDQ0LDB4MDIsMHg4OSwweDAyLDB4MjYgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4NDEsMHgwOSwweDkwLDB4MGEsMHgyNCwweDBjLDB4ODksMHgwNCwweDIyLDB4NTAsMHgwOCwweDkwLDB4MjYsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4MDAsMHgyMiwweDQxLDB4MDksMHgxMCwweDIyLDB4MjQsMHg0MCwweGI5LDB4MDEsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ODksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4MGEsMHg5MCwweDBiLDB4MjQsMHgxMCwweDg5LDB4MDAsMHgxZSwweDQwLDB4OWIsMHg5MCwweDAyLDB4MjQsMHgxMCwweDI5LDB4MDAgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4MWEsMHg0MCwweDBlLDB4OTQsMHg0MSwweGE0LDB4MDAsMHgyOSwweDAwLDB4MTIsMHg0MCwweDA1LDB4OTAsMHg0MSwweDI2LDB4MDAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4ZDksMHgwMCwweDI0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4NDgsMHgwMSwweGE0LDB4MDIsMHhhOSwweDAwLDB4YmMsMHg0MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDQsMHhmOSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4NDEsMHgwZSwweDkwLDB4ODMsMHg4NCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZSwweDkwLDB4MDIsMHhjNCwweDA4LDB4ZTkgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MmUsMHg5MCwweDBiLDB4ZTYsMHgwMCwweGUxLDB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MiwweDAzLDB4NWEgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhMCwweDIwLDB4ZDgsMHgwMCwweDM2LDB4MDIgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4MGUsMHgwMCwweGEzLDB4ZTAsMHgxOCwweGMwLDB4MDAsMHgzMCwweDAzLDB4MGYsMHg4MCwweDMzLDB4MjAsMHgwMCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4MzIsMHgwZCwweDBmLDB4MDQsMHgwYiwweGEwLDB4MDIsMHhjOCwweDAyLDB4MzIsMHgwMiwweDhjLDB4ODIsMHgwMywweDIwLDB4MDIgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4YzgsMHgwNCwweDE2LDB4MDAsMHg0ZSwweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4MjgsMHgwNSwweDNiLDB4MDAsMHg4ZSwweGQ4LDB4MjMsMHg4MCwweDA4LDB4ZTAsMHgwMiwweGY4LDB4ODAsMHg4ZSwweDEwLDB4MjMgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4YTIsMHgwYiwweGUwLDB4ODIsMHg3YSwweDIwLDB4OGUsMHgzMCwweDIzLDB4YTEsMHgwYiwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4MDAsMHgyYiwweDg4LDB4MDgsMHhlNCwweDQyLDB4MzgsMHgwMCwweDhlLDB4MDQsMHgyMywweDgwLDB4MDgsMHhhMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2ZiwweDQwLDB4OTMsMHhjNiwweDI0LDB4NDAgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDEsMHhhYywweGYwLDB4MGIsMHhiNCwweDAyLDB4NGMsMHgwNCwweGEzLDB4ODAgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4MjgsMHhkMCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhYiwweDA0LDB4MmEsMHhjMCwweDJhLDB4MzAsMHgwYSwweGFjLDB4MTAgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzEsMHgwYSwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4ODAsMHgxMSwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg0MiwweDg4LDB4NzQsMHgwNiwweGRjLDB4MGIsMHg4NiwweDAyLDB4MmQgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4MmEsMHg1OCwweDAwLDB4YTYsMHgwMCwweGE5LDB4YzAsMHgwYiwweDcwLDB4MDIsMHg1YywweDg4LDB4YTcgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4MjAsMHgyOSwweGMwLDB4MGEsMHg3MCwweDAyLDB4OWMsMHgxMCwweDk3LDB4MjAsMHhhMSwweGM4LDB4MDgsMHhkOCwweDAyLDB4MjggfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDgsMHgwZSwweDAwLDB4ZDcsMHg4MCwweDM3LDB4NjAgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4MGUsMHg2OCwweDEzLDB4ZmUsMHgwMCwweGNmLDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDIzLDB4MWUsMHgwMCwweGVmLDB4ODIgfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4MzEsMHhlMCwweDBmLDB4M2MsMHhjMywweDdlLDB4MDQsMHhlZiwweDgwLDB4YjEsMHhlMCwweDBlLDB4ZTgsMHgwMywweGJlLDB4ODAgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4ZDcsMHhlMCwweDMzLDB4ZWEsMHgwZSwweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MDgsMHgxNSwweGFjLDB4MDAsMHhmYSwweDAxLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4ODAsMHgwZiwweDgwLDB4NDMsMHhhYywweDBhLDB4ZDgsMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MDMsMHgyYywweDBjLDB4ZGIgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4MDAsMHgyNiwweGMxLDB4MDksMHhhMCwweDEzLDB4NmMsMHg0MCwweGViLDB4NDAsMHgzYSwweGRjLDB4MGYsMHg5MCwweDBiLDB4YzIgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHhiZSwweDAwLDB4Y2YsMHg4MSwweDMzLDB4ZTkgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4MWYsMHhmOSwweDEzLDB4YjYsMHg1MCwweGVmLDB4ODAsMHgxZiwweGU0LDB4MDQsMHhjOCwweDAzLDB4N2UsMHgwMCwweDZkLDB4ODEgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4MzMsMHg2NCwweDBjLDB4ZjgsMHgxYiwweDNlLDB4MjAsMHgyZiwweDg4LDB4OTMsMHhlOCwweDBmLDB4ZmIsMHgwMywweDJlLDB4ODAgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4Y2YsMHhjMCwweDczLDB4ZTAsMHgyYywweGQ5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4YTgsMHgxOCwweDkwLDB4NDIsMHg4OSwweDE4LDB4MjEsMHhjMCwweDFmLDB4NzEsMHgwMiwweDE0LDB4YzAsMHhmNywweDIwLDB4MjcgfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4NDAsMHg0MCwweDcxLDB4MTIsMHgxOCwweDAwLDB4ODcsMHgyMCwweDIxLDB4ODAsMHg0OCwweDcxLDB4MDIsMHgzYywweDA4LDB4ODcgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4MjAsMHgyMSwweDgyLDB4MGIsMHg2MSwweGEyLDB4MWUsMHg0NCwweGRmLDB4MDEsMHgzMSwweGM4LDB4MDgsMHg3MywweDAyLDB4ZWEgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg4YywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzggfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4MGIsMHg3MCwweDAyLDB4OWMsMHgwOSwweDg3LDB4MDIsMHgyZCwweDgyLDB4OTksMHg0MCwweDAyLDB4MDQsMHgwMCwweGE1LDB4MDkgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4MjEsMHg0MCwweDE5LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDA1LDB4MjUsMHg0OCwweDRiLDB4NzIsMHgwMiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4ODcsMHgwMCwweGExLDB4YzAsMHg0OCwweDUwLDB4MDIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4NjgsMHgwNCwweGMxLDB4MjAsMHg4OSwweDRjLDB4YTAsMHhiNCwweDBhLDB4MzgsMHgwMiwweDIyLDB4MDAsMHhhMSwweGQwLDB4MjQgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4MzAsMHgwOSwweDgwLDB4MDIsMHgyNywweDQ0LDB4ODEsMHhjNiwweDIyLDB4MTQsMHgwOSwweDNkLDB4MmEsMHgwZiwweDAyLDB4OGIgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4YzAsMHhhNiwweDIwLDB4MGIsMHgyNCwweDAwLDB4MGMsMHgxMCwweDkzLDB4ODEsMHgyMCwweGMwLDB4NDgsMHgzMCwweDA2LDB4ZDggfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhhMSwweDAwLDB4ODksMHhjMSwweDMyLDB4ZDEgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4MDMsMHhiYywweDAzLDB4YTksMHgyMCwweDg5LDB4NDEsMHgzZSwweDYwLDB4ODUsMHhiYywweDhiLDB4MjUsMHg0MCwweGViLDB4NDEgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4YTIsMHhhMCwweDBkLDB4ZjAsMHgxMywweDNlLDB4MjAsMHhjZiwweDkwLDB4MzYsMHgzMCwweDRmLDB4YmMsMHgwYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4YzEsMHgwYywweGIxLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDAsMHhmOCwweDAxLDB4M2MsMHhkMCwweDBmLDB4YjMsMHgwMywweGU4LDB4ODIsMHhkOCwweDIwLDB4MzYgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4ODAsMHgyZSwweGIyLDB4MTMsMHhlMSwweDAwLDB4ZmEsMHgwMCwweDdlLDB4YzgsMHgyZSwweGIwLDB4MDMsMHhlYywweDgwLDB4ZGIgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4MTAsMHgzYSwweDA4LDB4NGYsMHhiMiwweDIzLDB4Y2MsMHgwMiwweGZiLDB4MTAsMHgzYSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTQgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhmMCwweDAwLDB4Y2QsMHgxMCwweDMzLDB4NDIgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4MGMsMHhjYSwweDIzLDB4N2MsMHgwMCwweGNmLDB4MDAsMHgzMywweDYyLDB4MDYsMHhmMCwweDAxLDB4M2EsMHgwMCwweGNmLDB4MDggfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4MzMsMHg4MCwweDFjLDB4ZjAsMHg4MSwweDNjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHhhMCwweDBjLDB4Y2EsMHgwMSwweGZjLDB4MDQgfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4YTEsMHgwNCwweDZkLDB4NDAsMHg4OCwweDQ4LDB4YTIsMHgzMSwweDA4LDB4MTAsMHgwMiwweDIwLDB4MTAsMHg4OCwweGI0LDB4MjIgfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4YTAsMHgwOCwweDgwLDB4MDAsMHg2YSwweDg0LDB4ODgsMHgyMCwweDIyLDB4NTIsMHgwOCwweGIwLDB4MGEsMHgyYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4MDAsMHgzMiwweGIzLDB4ODgsMHg4MCwweDAyLDB4ZWMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHg5MCwweDEyLDB4ZTEgfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgwMCwweDEwLDB4OGEsMHgwMSwweDIyLDB4YTAgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4MDgsMHhiMCwweDQyLDB4NjAsMHgyMCwweDgwLDB4MDAsMHgyMCwweDQ0LDB4MWEsMHg4MCwweDFhLDB4ZTQsMHg0MiwweGEwLDB4MDYgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4MjIsMHgwMCwweDc4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHg0NCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4OGIsMHgwMCwweDBlLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4MDgsMHgxNCwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHg4MSwweDA4LDB4MzAsMHgwMiwweDQwLDB4MTIsMHg4MCwweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4NDAsMHgwOCwweGIwLDB4MDIsMHhjMCwweDAwLDB4ODIsMHgwMCwweDAwLDB4ODAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDgsMHgyMCwweDAyLDB4Y2MsMHg4MCwweDkzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4Y2EsMHgxNCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4NGMsMHgwMCwweGNhLDB4MDAsMHgzMiwweDAwLDB4MGUsMHgwMCwweDEyLDB4YTAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4NzAsMHgwMCwweDI4LDB4ZjAsMHgxMywweGFjLDB4MDAsMHhmYiwweDAwLDB4MzIsMHg0MCwweDJjLDB4MTAsMHg0MywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4MjAsMHgxNSwweGYwLDB4MDIsMHhmYywweDAwLDB4MWYsMHgwMCwweDY3LDB4NzAsMHgwMywweGIwLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDMsMHgzMCwweDEwLDB4ZmMsMHgwMSwweGJmLDB4MDAsMHgwZiwweDcwLDB4MDMsMHg3YywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4MDQsMHgzYiwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZmQsMHgxMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweGMwLDB4Y2YsMHg4MCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4MGUsMHhjOSwweDEzLDB4MzYsMHg1MCwweGNlLDB4ODYsMHgzZiwweDA4LDB4MGMsMHhjMCwweDAzLDB4M2UsMHgwMiwweGQ3LDB4ODAgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4MzksMHhlMCwweDBmLDB4ZjgsMHgxMywweDNlLDB4NDAsMHhjNywweDMwLDB4M2IsMHhjZSwweDBkLDB4ZjYsMHgwMywweDNkLDB4ODggfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4Y2YsMHgzMSwweDMzLDB4ZTQsMHgwZiwweDc4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4ODAsMHgxMCwweGU1LDB4ZDAsMHhkYiwweDgwLDB4NzIsMHg2MCwweDg4LDB4OTIsMHgwMiwweGU0LDB4MTAsMHg4YSwweDgwLDB4MmUgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MzQsMHg0YSwweDhjLDB4MDMsMHgyZSwweDAwLDB4YWIsMHg4MCwweDAyLDB4ZTAsMHgwYiwweGI4LDB4MDIsMHgyYywweDgwLDB4OGYgfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4NjAsMHgxMywweGQ4LDB4NGEsMHg3NiwweDAyLDB4OWQsMHg4NCwweGFmLDB4MzAsMHgyMiwweDQ4LDB4MGIsMHg4OCwweDEyLDB4YTAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDAwLDB4OGIsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4NGEsMHgwMCwweDAyLDB4YWMsMHg4MCwweDgzLDB4MDAsMHgyYywweDAxLDB4MjgsMHgwNCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDEgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4MjAsMHhjMCwweDAzLDB4YjAsMHgwMiwweDBjLDB4ODAsMHg4MywweDQwLDB4MjAsMHhjMSwweGE4LDB4MzQsMHgyMiwweDhkLDB4MTMgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4ODMsMHgyMCwweGFjLDB4YzgsMHgwYiwweGIwLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4YzAsMHgxNSwweDg2LDB4MDAsMHg5YiwweDA0LDB4YWUsMHgwMCwweDBhLDB4OTAsMHgwMiwweGVjLDB4MDAsMHgwYiwweDE0LDB4MmUgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4YzYsMHgwMiwweGIxLDB4MTIsMHg2YywweDAwLDB4YWIsMHgyMCwweDJhLDB4YzEsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4MDIsMHgyNiwweGMxLDB4MGEsMHhiMCwweDAyLDB4YWMsMHgwMCwweGFiLDB4MDQsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YzMsMHgwMSwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4MGUsMHg4OCwweDEzLDB4MjQsMHgwMiwweGNhLDB4MDAsMHgxZSwweDIwLDB4MmMsMHg4ZSwweDBiLDB4MmMsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4MmEsMHhjMCwweDBmLDB4YjgsMHgwMywweDJlLDB4MDYsMHhjYiwweDAwLDB4M2EsMHhjMCwweDRjLDB4YjAsMHgxMywweGFjLDB4MGMgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzgsMHgwZiwweGIwLDB4NDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4ZTAsMHgwMSwweGI0LDB4MDgsMHhmZiwweDkxLDB4MzMsMHg0MCwweDA5LDB4ZGMsMHgwMSwweGY0LDB4MjAsMHg3ZSwweDAyLDB4MmUgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4NDAsMHgwZCwweDk4LDB4MDEsMHhiYywweDgwLDB4ZWYsMHg4MCwweGI3LDB4ZTQsMHg4ZiwweGY0LDB4MGIsMHhmZSwweDQwLDB4N2YgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4MDAsMHhiOSwweGMwLDB4NGUsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGY3LDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAyLDB4YjggfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMSwweDQ0LDB4Y2IsMHgwMiwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4MGQsMHg4MCwweDBhLDB4NmQsMHgwMCwweGViLDB4MDQsMHgxMCwweDkwLDB4MjgsMHgyMiwweDBiLDB4MmMsMHhjMiwweGNiLDB4MjAgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4NzYsMHhjMCwweDBlLDB4YjEsMHgwMywweGVjLDB4MDEsMHhjYiwweDA2LDB4MzIsMHhjMSwweDBjLDB4MzAsMHgwMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4YzgsMHgwNSwweDIxLDB4NDgsMHhhYiwweDAwLDB4MjAsMHgwMCwweDAwLDB4OTUsMHgyMywweDRjLDB4MDgsMHhiYiwweDAxLDB4MjIgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4YzAsMHgwOCwweGIyLDB4MDIsMHgwYywweDA4LDB4ODMsMHg4OCwweDkyLDB4ZDUsMHgyOCwweDM0LDB4MDIsMHhlYywweDAyLDB4OGYgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4MjAsMHgyMywweGMwLDB4NGQsMHhmMCwweDAxLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgyZSwweGMwLDB4MGQsMHgzMCwweDAzLDB4NzIgfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0NCwweDAwLDB4ODMsMHgxMCwweDIwLDB4NjAgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MDksMHgyNSwweDAyLDB4MDAsMHgwOCwweGEwLDB4MDAsMHg0YywweDAwLDB4MGIsMHgwYywweDIyLDB4NGYsMHgxMiwweDkzLDB4NDAgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4MDAsMHhjMCwweDA5LDB4M2UsMHgwMiwweGVjLDB4MDAsMHhhYiwweDgwLDB4YTQsMHhjMCwweDA5LDB4MzAsMHgyMiwweDJjLDB4MDggfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4YjMsMHgwMSwweDBjLDB4ODEsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4NjAsMHgwMSwweDE2LDB4MDksMHhiNywweDgwLDB4MjEsMHg2NCwweDA4LDB4NzgsMHgwNiwweDEyLDB4MDAsMHhiNCwweDgyLDB4MmQgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4YTQsMHgxYiwweDY5LDB4MDYsMHg3ZSwweDA0LDB4MTcsMHg5MiwweDI1LDB4ZTYsMHgwOSwweDc4LDB4MDYsMHhkZSwweDgwLDB4YTcgfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4OTAsMHgyNSwweGUwLDB4MDksMHg3OSwweDUwLDB4NWUsMHgwNCwweGI3LDB4OTIsMHgyZiwweDYxLDB4MDksMHhjOCwweDAyLDB4NDggfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyNSwweDAwLDB4YzMsMHgwMCwweGIwLDB4MDMgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4MGQsMHhhMywweDQyLDB4MDksMHg0MCwweGUxLDB4MDAsMHhiYywweDQwLDB4MGYsMHgxMSwweDAzLDB4NGMsMHgwMCwweDEzLDB4MDAgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4MjAsMHhjMCwweDA5LDB4MzIsMHgwMywweGNjLDB4MTAsMHhhMywweDAwLDB4MjYsMHhjNCwweDhkLDB4MzAsMHgyYiwweDBjLDB4ODAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4ZjMsMHgwMCwweDdjLDB4ODAsMHgwYywweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlNywweDEwLDB4M2QsMHgwMSwweDJmLDB4ZjEsMHg0MiwweGU4LDB4MDAsMHhmNSwweDkwLDB4MDMgfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4YzEsMHgwYywweGYxLDB4NDMsMHg5YywweDA0LDB4ZWYsMHgwOCwweDNiLDB4YzIsMHgwYywweGYwLDB4ODEsMHhkYywweGEwLDB4ZGYgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzYiwweGMzLDB4M2YsMHhmMCwweDgzLDB4ZmMsMHgwNSwweGRmLDB4MGMsMHgzZCwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4Y2IsMHg4MCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4MmMsMHhhMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4ODAsMHgzMiwweGMwLDB4MmUsMHhiOCwweDBiLDB4MmMsMHg0NiwweGQzLDB4MDAgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhkYiwweDQ4LDB4MzIsMHhjMCwweDFmLDB4YjQsMHgwMywweDJjLDB4ODggfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4Y2IsMHg0OCwweDMyLDB4ODAsMHgwYywweDMwLDB4MTMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4NDgsMHgxMSwweGI0LDB4MDAsMHg4NywweDAxLDB4MjEsMHg0MCwweDA4LDB4NzAsMHg0MiwweGQwLDB4MDgsMHhiNCwweDAwLDB4MjkgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzgsMHgwYywweDcyLDB4MGEsMHgxYywweDg0LDB4OGYgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4NDAsMHgwOSwweGM0LDB4OGYsMHg3MywweDEyLDB4OWMsMHg0MCwweDgzLDB4MjAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5NiwweDAxLDB4YWYsMHg4MCwweDIxLDB4MjAgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4MDgsMHg2OCwweDAyLDB4ZGEsMHgwMCwweGJkLDB4ODAsMHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4MWUsMHgwMCwweDhmLDB4ODggfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4ODMsMHhlMiwweDI5LDB4ZjgsMHg4MiwweDVmLDB4ODAsMHg4NywweGEwLDB4MjUsMHhlMCwweDBiLDB4M2EsMHgxMiwweDBlLDB4NTAgfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4OTcsMHhhNCwweDIxLDB4YTAsMHgyOSwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDIsMHhhMSwweDgxLDB4MDAsMHgwMCwweDQ4LDB4NzAsMHgwMiwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4ZjgsMHgwOSwweDMxLDB4NDIsMHgwYywweDEwLDB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwOCwweDM4LDB4MTIsMHg0ZSwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4MDAsMHg2YSwweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwNCwweDkzLDB4MDAsMHgyMCwweGUwLDB4MDksMHgzOCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZWUsMHgyMCwweDMwLDB4ODAgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzMywweGIwLDB4MGQsMHhlNCwweDAzLDB4MzIsMHg4OCwweGNjLDB4ODAgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4MjMsMHgwMCwweDBkLDB4YzAsMHgwMywweDYyLDB4MDIsMHhjYSwweDAwLDB4MzYsMHg4MCwweDBmLDB4YTAsMHg0MywweDI4LDB4MDYgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4ZGEsMHgwMCwweDMzLDB4YTAsMHgwZCwweDZhLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHg5OCwweDAxLDB4YmUsMHgwMCwweDBmLDB4ODAsMHgwMywweGYwLDB4MDAsMHhiYywweDAwLDB4MzggfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4MDQsMHgwOCwweDgwLDB4YTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MTMsMHhhMCwweDAwLDB4ZTAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHgwMCwweDAzLDB4YzAsMHgwMCwweGU4LDB4MDAsMHhiZSwweDA0LDB4NGUsMHg4MCwweDA3LDB4ZDIgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDgwLDB4YzksMHgwMCwweDNlLDB4NjggfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDQzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgxMywweDIwLDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4ODEsMHgwMCwweDMyLDB4NDAsMHgwNCwweDkwLDB4MTMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MDYsMHg4OSwweDQwLDB4MmUsMHg2MCwweDFhLDB4MTQsMHgyYSwweDA1LDB4MjAsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNCwweDA4LDB4YzEsMHgwMiwweDIwLDB4NDAsMHgwOCwweDEwLDB4MWEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4MTAsMHgzMiwweDQxLDB4MDgsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4MDQsMHgzNiwweDQwLDB4ODgsMHg5NCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDIwLDB4ODksMHg1NSwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4MDgsMHhkNSwweDAyLDB4MzQsMHgwMCwweDhkLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MGEsMHg4OSwweDAwLDB4MjYsMHg0MCwweDM4LDB4OTAsMHgwYSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4YTksMHgwMCwweDIwLDB4NDAsMHgwYSwweDkwLDB4ODIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MmYsMHg0MCwweDBhLDB4ZDQsMHgwMiwweDM0LDB4MDAsMHg4NSwweDAxLDB4MmMgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NDIsMHhlNCwweDA2LDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNSwweDAwLDB4ODEgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4NDAsMHgyOCwweDUwLDB4MDgsMHgxNCwweDEyLDB4MDUsMHgwMCwweGExLDB4NDAsMHgyNCwweDUwLDB4NWEsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwNCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MjEsMHg0MiwweGNjLDB4MDAsMHgzZSwweDAwLDB4MmMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4YjYsMHgwMCwweDJjLDB4ODAsMHgwMiwweDIwLDB4MDIsMHhjOCwweDAwLDB4MzYsMHgwMCwweDBjLDB4ODAsMHgwMywweDYwLDB4MDIgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4ZSwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4OTgsMHgxZCwweGY1LDB4MDAsMHhmNSwweDAwLDB4M2UsMHg0MCwweDg3LDB4OTAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4NTAsMHgwZiwweDU0LDB4MDMsMHhkMSwweDAwLDB4ZWMsMHg0MCwweDNmLDB4MTAsMHgwYiwweGM0LDB4NDMsMHhmMSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4NDAsMHgzNiwweDUwLDB4MGYsMHg5NCwweDEzLDB4ZTUsMHgxMCwweGQ5LDB4NDQsMHgzZCwweDQwLDB4MmQsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDYwLDB4Y2QsMHgwMiwweDNiLDB4NDAgfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4MGMsMHhkMCwweDAzLDB4YjQsMHg0MCwweGZkLDB4MDYsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4NjYsMHgwNCwweGM5LDB4ODIgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4YjYsMHg2MiwweDBmLDB4MTgsMHgwYiwweDM2LDB4MDAsMHhjZCwweDQwLDB4MzIsMHg2MSwweDBjLDB4OTAsMHgyMywweDI0LDB4MGEgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHg0YywweGQwLDB4NDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4MzksMHgxMCwweGUzLDB4ODAsMHhkOCwweDAwLDB4MjIsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIyLDB4OTQsMHhiOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMSwweDAwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYiwweGM0LDB4MjIsMHgyMSwweDUwLDB4ODggfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4ODAsMHgyMiwweDIyLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgxMCwweDgwLDB4MDEsMHgyYSwweDAwLDB4MGEsMHg4MCwweDAzLDB4NGUgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhjNiwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4ODgsMHgxMCwweDBhLDB4ODQsMHgwOCwweGIxLDB4MDAsMHgyOSwweDQwLDB4MGEsMHg3MCwweDBhLDB4YjUsMHgwMCwweDhmLDB4NDAgfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4MjksMHhjMCwweDBiLDB4ZjQsMHgwMiwweDI0LDB4MDAsMHg4MSwweDIwLDB4MjgsMHg0NCwweDg5LDB4MTAsMHgwMiwweDA0LDB4MDQgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4ODEsMHgwMiwweDJhLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4MTgsMHgxNSwweGE2LDB4MDAsMHg5OSwweDIwLDB4MjIsMHg0MCwweDA5LDB4OTAsMHgxMiwweDI0LDB4ODAsMHhiOSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4NDQsMHgwMywweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMCwweDJiLDB4NDEsMHgwYiwweGQwLDB4MDIsMHgyNiwweDEwLDB4ODkgfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4MDQsMHgyYSwweDQwLDB4MDksMHg5MCwweDZlLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5NCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEyLDB4MTUsMHhlNiwweDAwLDB4YzksMHgwMCwweDM4LDB4NDIgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4MGMsMHgxMCwweDEzLDB4YTYsMHgwNCwweDc5LDB4MDgsMHgzYSwweDc4LDB4MDYsMHg5MiwweDAzLDB4YTQsMHgwOCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4M2EsMHg2MCwweDhmLDB4OTgsMHgyMywweDA2LDB4MDIsMHhjOSwweDAyLDB4M2EsMHg0MCwweDBkLDB4OTAsMHgwMywweDA0LDB4MDAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4YzksMHgwMCwweDM4LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MTAsMHhmOSwweDgwLDB4YmUsMHg0MCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4NjAsMHg4ZCwweDkyLDB4MDMsMHgyNCwweDQyLDB4ZTksMHgxMCwweDMyLDB4NTAsMHgwZiwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4MDAsMHhiNiwweDQxLDB4MmUsMHgxMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4MGYsMHg4OCwweDAzLDB4MjAsMHgwOCwweGY4LDB4YzAsMHgxZSwweDEwLDB4MmMsMHg0MCwweDAzLDB4ZjIsMHgwMCwweGNjLDB4MDAgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4M2YsMHgwMCwweDBjLDB4YzAsMHgxMywweDIwLDB4MDIsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgyYiwweDIwLDB4MTAgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4YzAsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4YTgsMHgwNSwweDNhLDB4ODAsMHg4NiwweGUwLDB4MmYsMHhhMCwweDFiLDB4ZTAsMHgwMiwweDNhLDB4ODAsMHhiYSwweDA0LDB4MmUgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg4OCwweDA4LDB4YzIsMHgwMCwweDJlLDB4ODEsMHgwOCwweDYwLDB4MDIsMHgyOCwweDEwLDB4OGUgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4ODEsMHgwMywweDgwLDB4MDgsMHhlMCwweDAxLDB4NzgsMHgwMCwweDhlLDB4MDQsMHgwMywweDgwLDB4MDksMHg2OCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHg2MCwweDJjLDB4NDQgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4MGYsMHg4MCwweGIxLDB4MDAsMHgyYywweGU1LDB4MDMsMHgzMCwweDEwLDB4Y2MsMHgxMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4MGMsMHhjMCwweDI5LDB4MzAsMHgyMiwweDA0LDB4MDksMHg5MSwweDEwLDB4MjQsMHhjMCwweGM4LDB4MzAsMHgwMCwweDRjLDB4MDQgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4OTMsMHgwMiwweDI0LDB4YzAsMHgwYiwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4ZTAsMHgwMSwweDE4LDB4ODAsMHg4NywweDAwLDB4MmQsMHg0MCwweDBiLDB4NzQsMHg0MiwweDFjLDB4MDEsMHhiNSwweDAxLDB4MmMgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhiMCwweDAwLDB4OTQsMHgwNCwweDJmLDB4MjAsMHgwOSwweGMwLDB4MDIsMHgxNCwweDkwLDB4OTcgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4MDAsMHgyNSwweGM4LDB4MDgsMHg3MCwweDAyLDB4NGMsMHg4MCwweDk3LDB4MjAsMHgyNSwweGMwLDB4MDksMHg3MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzYSwweDgyLDB4YzYsMHg4MCwweDJkLDB4NjAgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4MGIsMHhmOCwweDBiLDB4MWEsMHgwMCwweGY1LDB4ODAsMHgzZCwweGUwLDB4OGYsMHg3OCwweDAzLDB4ZGUsMHgwMiwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4MmQsMHhlMCwweDBkLDB4NzgsMHgwYiwweDE3LDB4MDIsMHhkZiwweDgwLDB4MjQsMHhmOCwweDJjLDB4ZmQsMHgwMywweDVlLDB4MGMgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4ZDcsMHhlMCwweDM1LDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4NDgsMHgxZCwweGFlLDB4NDAsMHhmYSwweDA0LDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGVjLDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4YzEsMHgwYywweGEwLDB4MTMsMHhjMCwweDEwLDB4ZTgsMHgwMCwweDNjLDB4MDAsMHg0ZSwweDgwLDB4NDMsMHhjNCwweDIwLDB4ODkgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4MDAsMHhiYSwweGMwLDB4MDcsMHhiNiwweDIxLDB4ZWQsMHgwNiwweGViLDB4NjgsMHhiYSwweGNjLDB4MGYsMHgyMCwweDEzLDB4YzIgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhiZSwweDAwLDB4YzYsMHg4MCwweDMxLDB4NjAgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4MmQsMHg3OCwweDBiLDB4M2UsMHg0OCwweGVjLDB4OTIsMHgzZCwweDYwLDB4MGMsMHg1OCwweDAzLDB4NWEsMHg0MCwweGQ1LDB4ODAgfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4MzEsMHg2MSwweDBjLDB4NTgsMHgyMywweDM2LDB4MDAsMHhjZiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZmLDB4NjAgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4Y2YsMHg5MCwweDMzLDB4ZjAsMHgwYywweDUyLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4YTgsMHgxMSwweGI4LDB4ODQsMHg4NiwweDE0LDB4YjUsMHhjMCwweDA4LDB4NzAsMHgwMiwweDFlLDB4YzAsMHhjNCwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4NDAsMHgwOCwweDQwLDB4MDIsMHgxNCwweGQwLDB4ODYsMHgxMCwweDIxLDB4ODAsMHg0YywweDYyLDB4NDIsMHgzNCwweDQwLDB4YTUgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MjgsMHg3MCwweDQyLDB4ZGMsMHhjMiwweDhmLDB4MzAsMHgyMywweGMwLDB4MDgsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHg5OCwweDI4LDB4OGUsMHgwMCwweGE1LDB4NDAgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4MDgsMHhmMSwweDAyLDB4MTgsMHg2NCwweGI0LDB4MDAsMHg2ZCwweDQyLDB4MDgsMHg1MCwweDAyLDB4MTgsMHgwMSwweDg1LDB4MDggfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4MjEsMHg0MCwweDA5LDB4NTgsMHgyMiwweDU0LDB4MDAsMHg4NSwweDEwLDB4MmQsMHhjNCwweDA5LDB4NzAsMHgwMiwweGRjLDB4MDQgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4OTcsMHgwMCwweDI1LDB4YzAsMHgwOCwweDQ0LDB4MDIsMHgwMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NjAsMHgxNCwweDhjLDB4MDAsMHg4MiwweDgwLDB4MjQsMHhjMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4MDAsMHg4MCwweDRhLDB4MmMgfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4NDIsMHgwOCwweDBhLDB4NDIsMHgwNiwweDAwLDB4OTIsMHg4NCwweDIwLDB4YTAsMHg4OCwweDI4LDB4NDIsMHg0NCwweDAwLDB4YTMgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4MDYsMHgyNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgxMCwweDkzLDB4MDQsMHgyNCwweGMxLDB4MDksMHgwMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2IsMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4MGMsMHhiNCwweDEzLDB4MmMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGEwLDB4MGMsMHhhMiwweDAzLDB4MDQsMHgwOCwweGMyLDB4ODAgfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4MzAsMHhhOCwweDBkLDB4MmEsMHgwMywweDU0LDB4MDAsMHhjYiwweDAwLDB4M2YsMHhjMCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDggfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4ZGYsMHgwMCwweDM3LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmYiwweDEwLDB4M2EsMHg0MCwweDBlLDB4YjAsMHgwMywweGVkLDB4OTAsMHhmOSwweDExLDB4N2UgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4ODAsMHg0ZiwweGIwLDB4NTMsMHhlOCwweDQwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNiwweDA4LDB4ZjkgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4MDEsMHgzYSwweGMwLDB4MGMsMHhiMCwweDEzLDB4Y2MsMHgwMCwweGViLDB4MDIsMHgzYSwweGM2LDB4OGUsMHhiOCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDBjLDB4Y2UsMHgwMCwweDNmLDB4ZTAgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4MmMsMHhmMCwweDgzLDB4M2EsMHg0OCwweGNkLDB4MDEsMHgzNSwweDgwLDB4MGMsMHg2MCwweDEyLDB4MzQsMHgwYSwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4ZTAsMHgwYiwweDc0LDB4MDAsMHhjOSwweDEwLDB4YjMsMHhjMSwweDBmLDB4ZjAsMHgxYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4Y2YsMHgwMCwweGI3LDB4YzAsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4ODEsMHgwNCwweDZlLDB4MTAsMHg4OCwweDgwLDB4MmMsMHhjMCwweDE4LDB4OTgsMHgwMiwweDJkLDB4ODAsMHg4MSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4OTEsMHgwOCwweGIwLDB4MDMsMHg2OCwweDAwLDB4YzksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMiwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgyMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwNiwweDAwLDB4OGEsMHg4MCwweDJlLDB4NDUgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4MjgsMHg4OCwweDAyLDB4MjQsMHgwMiwweDg4LDB4MDIsMHgwMiwweDAyLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4MjIsMHgwMCwweDA4LDB4ODAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAxLDB4MjIsMHhjMSwweDBhLDB4YjAsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4YWIsMHgwMCwweDIyLDB4YzEsMHgwOCwweDkwLDB4MTIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MmMsMHhjMCwweDQ4LDB4MDgsMHgxMiwweDAwLDB4ODAsMHg4MCwweDAyLDB4MjQgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MDAsMHgwOCwweDE4LDB4NDIsMHhhYywweDAyLDB4OGIsMHg4MCwweDIyLDB4ZTAsMHgwOCwweGI4LDB4MTIsMHgwNCwweDAyLDB4ODMgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDEsMHg2MCwweGMwLDB4NDgsMHgxMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDA4LDB4Y2EsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MDAsMHgwMCwweGM4LDB4MDYsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAyLDB4YTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDc0LDB4MDAsMHhjYiwweDAwLDB4MjIsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwYywweDgwLDB4MDEsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYywweDA0LDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGUxLDB4MDAsMHhmYywweDAwLDB4M2IgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MDAsMHgwZiwweGQwLDB4MDMsMHg3YywweDAwLDB4ZWYsMHgwMCwweDJmLDB4YzAsMHgwZiwweGYwLDB4MTEsMHhmNCwweDEwLDB4ZmQgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4MDIsMHgzZCwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGRmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTkgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MSwweDAyLDB4NzAsMHgyMCwweGRjLDB4MTAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4NjcsMHgwNCwweDBkLDB4YzEsMHgwMiwweDcwLDB4MjAsMHg5YywweDEwLDB4MzcsMHgwNCwweDBkLDB4YzEsMHgwNiwweDcwLDB4NDAgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4NGMsMHgxMCwweDM3LDB4MTQsMHgxNSwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDEzLDB4MDQsMHgwZCwweGMxLDB4MDcgfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4NzAsMHg0MCwweGRjLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4MDAsMHhjNSwweDQ0LDB4MDUsMHg3MSwweDIxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHg3MSwweDA1LDB4NWMgfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA2LDB4NzEsMHgwMSwweDRjLDB4NDAsMHg1NywweDEwLDB4MGQsMHhjNCwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4MDUsMHg1YywweDQwLDB4NTMsMHgxMCwweDE1LDB4YzQsMHgwNywweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4MDAsMHg4NCwweDAwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDA0LDB4NTggfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4MjAsMHgwMSwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAgfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4MDAsMHg1OCwweDAwLDB4NTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4MTYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA1LDB4NzIsMHgxMSwweDVjLDB4ODAgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4MTcsMHgyMCwweDE1LDB4ZDgsMHgwNSwweDMyLDB4MTEsMHgxYywweDgwLDB4NDcsMHgyMCwweDE0LDB4ODgsMHgwMCwweDcyLDB4MDEgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4MWMsMHg4MCwweDU3LDB4MjAsMHgwNSwweGM4LDB4MDQsMHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDEgfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDI0LDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4MDAsMHhjMSwweDQwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4NDAsMHgyMCwweDAwLDB4MTggfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg5MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4NDEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDEwLDB4MDYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4MDIsMHgyMCwweDEwLDB4ODgsMHgwNCwweDYyLDB4MDEsMHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4ODgsMHgwMCwweDIwLDB4MDEgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4MDgsMHg4MCwweDQyLDB4MjAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHgwMCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDAgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4MjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDMwLDB4MTAsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MDAsMHhjNSwweDRhLDB4MDUsMHg0MiwweDgxLDB4NTAsMHhhMCwweDA0LDB4MjgsMHgxNSwweDBhLDB4MDUsMHg1MiwweDgxLDB4MTAgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4YTAsMHg0NCwweDI4LDB4MTEsMHgxYSwweDAwLDB4NDAsMHg4MCwweDEwLDB4YTAsMHg1NCwweDI4LDB4MDUsMHgwYSwweDA1LDB4NDIgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4ODEsMHg1MSwweDIwLDB4MTQsMHgyOCwweDE1LDB4MGEsMHgwMSwweDQyLDB4ODEsMHg1MCwweGEwLDB4NTQsMHgyOCwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4MzEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwYywweDAxLDB4NTMsMHg0MCwweDU0LDB4YzAgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDU3LDB4NDAsMHg1NCwweGMwLDB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDUzLDB4MDAgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEsMHg1MywweDAwLDB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEgfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4NTMsMHgwMCwweDU0LDB4YzAsMHgxMSwweDMwLDB4MDEsMHg0MCwweDIxLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MTEsMHgwMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4MDAsMHgxMCwweGMxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDEsMHgxMCwweDAxLDB4MDEgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg2MCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ODIsMHgwMCwweDIwLDB4ODQsMHgwMCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODQsMHgwOCwweDIwLDB4MDIgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMSwweDgwLDB4MDgsMHgwMSwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4MDAsMHhjNSwweDQwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCwweDk2LDB4MDAsMHgxNSwweDkwLDB4MDUsMHg2NCwweDAyLDB4NTggfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4MDAsMHg1NiwweDAwLDB4NTUsMHg5MCwweDA1LDB4NjAsMHgwMSwweGQ5LDB4MDAsMHgxNiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4MDEsMHg1OSwweDAwLDB4NzYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzQsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4MzYsMHgwMCwweDRkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYyLDB4MDAgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4NTgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MCwweDAwLDB4ZDgsMHg4MCwweDE2LDB4MDAsMHgwZCwweDgwLDB4MDMgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MWQsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4MDAsMHhjNSwweDQyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMgfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA2LDB4MzAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDE4LDB4YzAgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHg0MCwweDMwLDB4MDAgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDI1LDB4MzAsMHg4MSwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4ODAsMHg0YywweDMyLDB4NTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzAgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA1LDB4NjIsMHg4MSwweDU4LDB4MjAgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNCwweDYwLDB4ODEsMHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4YzEgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4NTgsMHgyMCwweDQ2LDB4MDgsMHgxNSwweDgyLDB4MDEsMHg2MCwweDgxLDB4NTgsMHgzMCwweDU2LDB4MDgsMHgxNSwweDgyLDB4MDUgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4NjAsMHg4MSwweDU4LDB4MjAsMHg1NiwweDA4LDB4MDUsMHg4MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MDAsMHhjNSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDBjLDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA0LDB4NjYsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDY0LDB4ODEsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxLDB4MTksMHgyMCwweDQzLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4NjAsMHg4MSwweDE5LDB4MjAsMHg0NiwweDQ4LDB4MDEsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4MDAsMHhjNSwweDYwLDB4MDUsMHg1OCwweDAxLDB4NTYsMHgwMCwweDU1LDB4ODAsMHgxNSwweDYwLDB4MDQsMHg1OCwweDAxLDB4NTYgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4MDAsMHg0NSwweDgwLDB4MTEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDA2LDB4MDAsMHg0NSwweDgwLDB4MTUsMHg2MCwweDAxLDB4NTggfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4MDEsMHgxNiwweDAwLDB4MDEsMHg4MCwweDE1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDA1LDB4NDAgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNiwweDAxLDB4NDksMHg4MCwweDEwLDB4NjAgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDc5LDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDAxLDB4MDYsMHgwMSwweDQxLDB4ODAgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4NTAsMHg2MCwweDA0LDB4MTgsMHgwNSwweDA2LDB4MDEsMHg0MSwweDgwLDB4MTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDA2LDB4MDEgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4NDEsMHg4MCwweDUwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgwNCwweDgwLDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDAsMHgwNCwweDA0LDB4NDAgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4ODAsMHg0MSwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgxMSwweDAwLDB4ODAsMHg0MSwweDIwLDB4MTAsMHg0OCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMiwweDExLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDExLDB4ODAgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDMxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4MDAsMHhjNSwweDQ2LDB4MDUsMHg3MCwweDgxLDB4NWMsMHg2MCwweDA3LDB4MTgsMHgxNSwweGM2LDB4MDQsMHg3MSwweDgxLDB4MWMgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4NjAsMHgxNywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweGRjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4ODAsMHgxYywweDYwLDB4NzcsMHgxOCwweDE1LDB4Y2UsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjEgfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4NzcsMHgxOCwweDBkLDB4YzYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwLDB4MzcsMHgxOCwweDBkLDB4YzIsMHgwMywweDMxLDB4ODAgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4NWMsMHg2MCwweDI3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDgwLDB4OWMsMHg2MCwweDE3LDB4MTgsMHgwZCwweGNlLDB4MDMgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4NzEsMHg4MCwweGRjLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4MDAsMHg0NSwweDQ2LDB4MDUsMHg3NSwweDgxLDB4NWMsMHg2MCwweDc3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3NSwweDgxLDB4NWMgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweDBjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4ODEsMHg1YywweDYwLDB4NDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4NWMsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgwMCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4MDAsMHgwMCwweDA2LDB4MDEsMHg2MywweDgwLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgwLDB4NTggfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MSwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEgfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4ODAsMHg1OCwweDYwLDB4NTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODAsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4MTcsMHgwMCwweDE1LDB4YzAsMHg4NSwweDc0LDB4MDEsMHgxYywweDAwLDB4NDcsMHgwMCwweDExLDB4YzAsMHgwNSwweDcwLDB4MDEgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4NWMsMHgwMCwweDUzLDB4MDAsMHgxMCwweGMwLDB4MDUsMHg3MCwweDAxLDB4NWMsMHgwMCwweDU3LDB4MDAsMHgxNCwweGM5LDB4MDQgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MDAsMHg1NywweDAwLDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4MDAsMHg0NSwweDQyLDB4MDAsMHg2MCwweGMwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTggfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4MjAsMHg4MCwweDE4LDB4MzAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDEwLDB4NjAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDQsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4MDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4MDAsMHg0NSwweDQyLDB4MDUsMHg0MCwweGM1LDB4NTAsMHgyMCwweDE0LDB4MDgsMHgxNSwweDAwLDB4MDQsMHg0MCwweDgxLDB4NTAgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4MjAsMHg1NCwweDA4LDB4MTEsMHgwMiwweDA1LDB4MDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDBjLDB4MTEsMHg0MiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4ODEsMHg1MCwweDIwLDB4MTQsMHgwYywweDE1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NTQsMHgwOCwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMywweDAxLDB4NTAsMHhjMCwweDQ0LDB4MzAgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAsMHg0YywweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgyMSwweDUwLDB4YzAgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4NTAsMHhjMCwweDU0LDB4MjAsMHgxNSwweDBjLDB4MDUsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4MDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDg0LDB4MjAgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4NCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4ODAsMHhhMCwweDIwLDB4MjgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MjgsMHgwOCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDAsMHg0NSwweDQwLDB4MDUsMHg2MCwweDQxLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTggfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4MjAsMHgwMSwweGQ4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4MDEsMHg1OCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4MjYsMHgwMCwweDBkLDB4ODAsMHgwMiwweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYwLDB4MDEgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4NWMsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDU3LDB4MDAsMHgwZCwweDgwLDB4MDIgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDQsMHgzMCwweDIxLDB4MGMsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MGMgfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDE4LDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4MDEsMHgwYywweDAwLDB4NDYsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDM1LDB4MDgsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzYsMHgwMCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4NDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGQsMHg0MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4MDAsMHgwMCwweDA1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweGMwLDB4NGMgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDA1LDB4MzEsMHg0MSwweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4NDAsMHg0YywweDcwLDB4NTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxLDB4NDAsMHg0YywweDQwLDB4MTMsMHgxNCwweDA0LDB4YzAgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA1LDB4NjgsMHhjMSwweDVhLDB4MzAgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4NTYsMHg4YywweDE1LDB4YTMsMHgwNSwweDY5LDB4YzEsMHg1YSwweDMwLDB4NDYsMHg4YywweDExLDB4YTcsMHgwMSwweDY4LDB4YzAgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4MWEsMHgzMCwweDU2LDB4OGMsMHgxMSwweGEzLDB4MDQsMHg2OCwweGMxLDB4MWEsMHgzMCwweDE2LDB4OGMsMHgxNSwweGEzLDB4MDQgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4NjgsMHhjMSwweDVhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDggfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4MDEsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA4LDB4ODAsMHgwMiwweDYwLDB4MDAsMHg4MCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4MDAsMHgwOSwweDQwLDB4MDIsMHgyMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MDksMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODgsMHg2MCwweDYyLDB4MTAgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MDEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4MCwweDA2LDB4MDEsMHgxMSwweDg4LDB4NDQgfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4NDUsMHg1MCwweDExLDB4NTQsMHgwNCwweDU1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCwweDExLDB4NTQgfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQwLDB4NTAsMHgxMCwweDU0LDB4MDQsMHg0NSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4MTEsMHgxNCwweDAwLDB4MTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMCwweDExLDB4NDAgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDAsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMCwweDQyLDB4MDggfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4NTAsMHg4MiwweDE1LDB4MjAsMHgwNSwweDQ4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4MSwweDQwLDB4MjEgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4NDIsMHgwOCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDg0LDB4NDAgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4YTEsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIgfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4ODAsMHg0MCwweGIwLDB4MTAsMHgyOCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4ZDQsMHhjMCwweDIxLDB4MzAsMHgwOCwweDRjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwOCwweDRjLDB4MDMgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MCwweDAxLDB4NWMsMHg4MCwweDA3LDB4MjAsMHgyNSwweGM5LDB4MDQsMHg3MiwweDAxLDB4NWMgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4ODAsMHg0NywweDIwLDB4MTUsMHhjOCwweDAwLDB4NzIsMHgwNSwweGRjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjOCwweDA1LDB4NzIgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4MDEsMHgxYywweDkwLDB4NjcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyLDB4MDEsMHgxYywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDE4LDB4NDgsMHhjMiwweDEyLDB4MzEgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4ODQsMHg4YywweDYxLDB4MDMsMHgxOCwweDQwLDB4YzgsMHgxMiwweDMxLDB4ODQsMHg4YywweDYxLDB4MDMsMHgxOCwweDQ4LDB4YzQgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4MGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg2MSwweDIzLDB4MTggfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGJkLDB4MDAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwOSwweDM2LDB4YzIgfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4MzMgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYywweDRkLDB4NGUsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYywweDRjLDB4Y2YgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2MsMHhlOSwweDMzLDB4M2MsMHg0YywweGNmLDB4MTIsMHhiNSwweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzMsMHhjNCwweGNkLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGM3LDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDIzLDB4N2UsMHg0ZSwweDQ3LDB4OTMgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4YjcsMHhlNCwweGVkLDB4ZjksMHgzZiwweDdlLDB4NGUsMHhkZSwweDEyLDB4MzcsMHhlNCwweDhkLDB4ZjksMHgzYiwweDdlLDB4NGUgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4ZGYsMHg5MywweGY3LDB4ODQsMHg4ZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlZCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAyLDB4NzAsMHg0MCwweDljLDB4MTEgfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4NjcsMHgwNCwweDE5LDB4YzMsMHgwMiwweDcwLDB4NDAsMHg5YywweDEwLDB4MjcsMHgwNCwweDA5LDB4YzEsMHgwMiwweDcwLDB4NDAgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4MWMsMHgxMCwweDI3LDB4MTQsMHgwMSwweGMxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHg1MCwweDA3LDB4MDQsMHgwOSwweGMxLDB4MDIgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4NzAsMHg0MCwweDljLDB4MTAsMHg2NywweDE0LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4MDAsMHgwMCwweDA0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHg3MSwweDAxLDB4NWMgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNiwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTAsMHhjNCwweDA1LDB4NzEgfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4MDEsMHg1YywweDY0LDB4MDMsMHgxMCwweDU1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIxLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNSwweGMyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyNCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDg0LDB4MDAsMHg2MCwweDAwLDB4MTggfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMSwweDE4LDB4MDAsMHgwNiwweDEwLDB4OTEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4MDAsMHgxOCwweDQ2LDB4NDYsMHgxOCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgxMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4NzMsMHgwMSwweDFjLDB4ODAgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4MDcsMHgyMCwweDAxLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4MWMsMHg4MCwweDQ3LDB4MjIsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDA3LDB4MjAsMHgxMSwweGM4LDB4MDQgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDI4LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTggfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NDYsMHgwNCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4MDIsMHgyMCwweDAwLDB4OTAsMHgwNCwweDI3LDB4ODEsMHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4OTgsMHgwNCwweDI0LDB4MDEgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4MDgsMHg4MCwweDQyLDB4NDgsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDksMHg0MCwweDQyLDB4NjAsMHgxMCwweDg4LDB4MDQgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4MjIsMHgwMSwweDA4LDB4YzAsMHgwMiwweDQwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4MDAsMHgwMCwweDJhLDB4MDQsMHg0YiwweDgxLDB4MTIsMHhhMCwweDA0LDB4YTgsMHgwMSwweDJhLDB4MDQsMHg0YSwweDgxLDB4MTIgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4YTAsMHg0NCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NDgsMHg4MCwweDEyLDB4YTAsMHg0NCwweDg4LDB4MDEsMHgyYSwweDA0LDB4NGEgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4ODEsMHgxMiwweDIwLDB4MDQsMHhhYywweDExLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiwweGIwLDB4NDQsMHg5YywweDExLDB4MDAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHgwYywweDAwLDB4NTMsMHgwMCwweDE0LDB4YzAgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MDUsMHgzMCwweDAxLDB4NDQsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwLDB4MDUsMHgzMCwweDA0LDB4MGMsMHgwMCwweDUzLDB4MDAgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4MTQsMHhjMCwweDA1LDB4YjAsMHgwMSwweDRjLDB4MDAsMHg1MywweDAwLDB4MTYsMHhjMCwweDAxLDB4MzAsMHgwMSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4NTMsMHgwMCwweDE0LDB4YzAsMHgwMSwweDM4LDB4MDAsMHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4MDgsMHhjMCwweDAwLDB4MTAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDEwLDB4MDAsMHg0NCwweDgwLDB4MTAgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgxMCwweDAwLDB4NDYsMHgwMCwweDAwLDB4MDAsMHgwNCwweDYwLDB4MDEsMHgwMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4MDAsMHgxMSwweDYwLDB4MDIsMHg0MCwweDAxLDB4MDAsMHgxMCwweDQwLDB4MDAsMHgxMCwweDYwLDB4MDEsMHg1MCwweDEwLDB4NDAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDgsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDIgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMSwweDAwLDB4MDgsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4MDgsMHhjMCwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4MTggfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweGM4LDB4MDAsMHg0NiwweDAwLDB4MTksMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgwMCwweDExLDB4ODAgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4MjYsMHgwMCwweDA5LDB4ODEsMHgwMiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MjYsMHgwMCwweDA5LDB4ODAsMHgwNiwweDYyLDB4MDAgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4NDgsMHgwMCwweDI2LDB4MjAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDA3LDB4MDAsMHgwOSwweDgwLDB4MDIgfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTEsMHg4MiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4NDAsMHg0NSwweDQyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDg1LDB4OGMgfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDQ4LDB4MTEsMHg4MiwweDA0LDB4MzAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4ODEsMHg4ZCwweDIwLDB4NDYsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwYywweDEwLDB4YzAgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDEwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAsMHhjMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4NDAsMHgwMCwweDAyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMSwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMgfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4MjAsMHgwMywweDA4LDB4MDAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHgwMywweDBjLDB4MTAsMHhjMiwweDAwLDB4MzAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4ODAsMHgwYywweGIwLDB4NDMsMHgwOCwweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYywweDIwLDB4MDMsMHgyOCwweDEwLDB4YzAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDBjLDB4MTEsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4NDAsMHgwMSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDBjLDB4MjAsMHgwMiwweDA4LDB4MDAsMHhjMiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDEsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4YzEgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MGMsMHgxMCwweGMyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgzMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTAsMHg4MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwMCwweDQ1LDB4MDAsMHgxMSwweDQwLDB4MDQsMHg1MCwweDAwLDB4MTQgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDAwLDB4NTAsMHgwMCwweDA0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTAgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4MDAsMHgxNCwweDAwLDB4MDEsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAgfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMSwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4MCwweDQwLDB4MjEsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4ODAsMHg0MCwweDMwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgxMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4ZDQsMHg2MCwweDM1LDB4MTAsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg0MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4MDAsMHgwMSwweDQ2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCwweDA3LDB4MTgsMHgxMSwweGNlLDB4MDQsMHg3MSwweDgxLDB4MWMgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4NjAsMHg0NywweDE4LDB4MDEsMHhjNiwweDA0LDB4NzEsMHg4MSwweDljLDB4NjAsMHg0NywweDE4LDB4MTksMHhjNiwweDA0LDB4NzEgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4ODAsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NDcsMHgxOCwweDExLDB4YzAgfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4MjcsMHgxOCwweDA5LDB4YzYsMHgwNiwweDcxLDB4ODAsMHgxYywweDYwLDB4MjcsMHgxOCwweDA5LDB4YzYsMHgwMSwweDMxLDB4ODAgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4MWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MTIgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4NzEsMHg4MCwweDljLDB4NjAsMHgzMywweDE4LDB4MDEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4NTAsMHg0NSwweDQ2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgwLDB4NWMgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDAxLDB4MzEsMHg4MSwweDBjLDB4NjAsMHgxNywweDE4LDB4MTAsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4ODEsMHg1YywweDYwLDB4MDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTMsMHgxOCwweDE4LDB4ODIgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDAsMHgxMiwweDAxLDB4MjQsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDI0LDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4NTgsMHgyMCwweDUyLDB4MGMsMHgwNSwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDksMHgyMCwweDAyLDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4MjAsMHg4MCwweDQ5LDB4MjAsMHgxMiwweDQ4LDB4MDQsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4NDAsMHgwNCwweDA2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDQsMHg2MSwweDgwLDB4MTggfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4NjAsMHgwNiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MSwweDQ4LDB4NjAsMHgwNiwweDE4LDB4MTQsMHg4NiwweDAwLDB4NjEgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4ODAsMHgxOCwweDYwLDB4NDIsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4MDYsMHgxOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg2MCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4NDcsMHg4MCwweDExLDB4ZTgsMHgwMCwweDc4LDB4MDEsMHgxZSwweDAwLDB4NDcsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEgfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4MWUsMHgwMCwweDQzLDB4ODAsMHgxMSwweGUwLDB4MDQsMHg3OCwweDAxLDB4MWUsMHgwMCwweDAzLDB4ODAsMHgxNSwweGUwLDB4MDQgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4NzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhjMCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4NDAsMHgwMSwweDEyLDB4MDAsMHg2NCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2NCwweDgwLDB4MTggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MzAsMHgwMiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4ODAsMHgxOSwweDMwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOSwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwMCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4NDAsMHg0NSwweDQyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDAsMHg0MCwweDgxLDB4MTAgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDA4LDB4MDEsMHgwMiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4ODEsMHgxMCwweDIxLDB4MDAsMHgwYywweDExLDB4MDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDAxLDB4MDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwMywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDA0LDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA5LDB4MDAsMHg0MiwweDAxLDB4MTAgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDExLDB4MDAgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHgwMCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4ODAsMHhhMCwweDAwLDB4MGEsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgzNCwweDYyLDB4MjgsMHgwOCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MzAsMHgyMCwweDBjLDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAzLDB4MTggfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA2LDB4NjAsMHgwMSwweDk4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAgfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4MjYsMHgwMCwweDA5LDB4ODAsMHgwMiwweDY0LDB4MDAsMHg5OCwweDAwLDB4MjYsMHgwMCwweDE5LDB4OTAsMHgwMiwweDYwLDB4MDAgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4MWQsMHgwMCwweDI2LDB4MDAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAwLDB4OTksMHgwMCwweDA2LDB4NDAsMHgxOSwweDgwLDB4MDIgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHg2NiwweDAwLDB4MDEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4NDAsMHg0NSwweDYwLDB4MDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQzLDB4ODAsMHgxMCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MGUgfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDFhLDB4MDAsMHg0MywweDgwLDB4MTEsMHhhMCwweDA0LDB4MzggfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4MDEsMHgwZSwweDAwLDB4MDIsMHg4MCwweDQwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDE4LDB4ODAgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDQsMHgwMSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAgfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4YzEsMHgwMCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4MDgsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHg3OCwweDAyLDB4MTQsMHgwMCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMywweDA0LDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NDAsMHgwMCwweDA1LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg1MCwweDAzLDB4MTQsMHgwMCwweGM1LDB4MDAsMHgzNSwweDQwLDB4MGMgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4NTAsMHgwMywweDE0LDB4MTAsMHhkNSwweDAwLDB4MzEsMHg0MSwweDBkLDB4NTAsMHgwMywweDE0LDB4MTAsMHhjNSwweDAwLDB4MzEgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4NDAsMHgwZCwweDQ4LDB4NDMsMHg1NCwweDEwLDB4YzUsMHgwMCwweDMxLDB4NDAsMHgwYywweDQwLDB4NDMsMHgxMCwweDAwLDB4YzIgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MywweDA0LDB4NjAsMHhjMSwweDE4LDB4MzAgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4NDYsMHgwYywweDExLDB4ODMsMHgwNCwweDYxLDB4YzEsMHgxOCwweDMwLDB4NDYsMHgwYywweDAxLDB4ODcsMHgwNCwweDYwLDB4YzEgfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4MTgsMHgzMCwweDQ2LDB4MDgsMHgxMSwweDgzLDB4MDQsMHg2MCwweGMxLDB4MTgsMHgyMCwweDA2LDB4MGMsMHgwMSwweDgzLDB4MDQgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4NjAsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHg4MCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MSwweDAwLDB4MjAsMHgwMCwweDA4LDB4ODAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4MDAsMHgwOCwweDQwLDB4NDMsMHgzMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0OCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYzLDB4MDEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDAxLDB4ODgsMHgwNCwweDYyLDB4MTEgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MjEsMHgxMCwweGM4LDB4NDQsMHg2MiwweDExLDB4MTgsMHgwNSwweDQzLDB4MDEsMHg4MSwweDg4LDB4NDQgfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwNCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDQsMHg1MCwweDAxLDB4MTQgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MDEsMHg0MCwweDQ1LDB4MDAsMHgxMCwweDE0LDB4MDQsMHg0NSwweDAzLDB4MDAsMHg0MCwweDQ0LDB4NTAgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4MTEsMHgxNCwweDA0LDB4MDEsMHgwNSwweDQxLDB4NDAsMHg0NCwweDUwLDB4MTEsMHgxNCwweDA0LDB4MDUsMHgwMSwweDAxLDB4NDAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDggfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4MTAsMHg4MiwweDA1LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4YSwweDA1LDB4MjAsMHgwNSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIyLDB4ODEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAyLDB4MDEsMHgwMiwweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4YTAsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI5LDB4MDQsMHgwYSwweDAxLDB4MDIgfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4ODAsMHg0MCwweGE0LDB4MDAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGE4LDB4MTAsMHgyYiwweDE0LDB4MDAgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAgfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4ZDQsMHhkMCwweDIxLDB4MzQsMHg0ZCwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkOSwweDYxLDB4MzQsMHgwNCwweDBkLDB4MDMgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4NTMsMHg0MCwweGMwLDB4ZDgsMHgzNSwweDM3LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4NDAsMHgwMSwweDQ4LDB4MDQsMHg3MiwweDAwLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMCwweDljLDB4ODAsMHg0NywweDIwLDB4MTksMHhjOCwweDAwLDB4NzIgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4MDEsMHgxYywweDg4LDB4NjcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgyLDB4NDcsMHgyMiwweDExLDB4YzAgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA4LDB4NDgsMHhjMiwweDEyLDB4MzEgfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4ODQsMHg4YywweDYxLDB4MjMsMHgxMCwweDQwLDB4YzAsMHgxMiwweDMxLDB4ODQsMHg4YywweDYxLDB4MDMsMHgxMCwweDQ4LDB4YzQgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4OGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg0MSwweDIzLDB4MTggfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGRkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4MDAgfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDRjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MDAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDVjLDB4NGMsMHhkNywweDEzLDB4MzMgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYSwweDRhLDB4ZDYsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYSwweDRjLDB4Y2YgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2MsMHhlOSwweDMzLDB4M2MsMHg0YywweGNmLDB4MTIsMHhiNSwweGE0LDB4YWMsMHhjOSwweDMzLDB4M2MgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzUsMHhjNCwweGNkLDB4NjksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4YjcsMHhlNCwweGVkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZSwweDEyLDB4MzcsMHhlNCwweGVkLDB4ZTEsMHgzYiwweDdlLDB4NGUgfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4ZGYsMHg5MiwweDMxLDB4ODQsMHg4ZCwweGQ5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlYywweDYxLDB4MDAgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0LDB4MDQsMHhhMSwweDgzLDB4MmMgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MDMsMHgwYSwweDEwLDB4ODIsMHhjMSwweDM0LDB4MTAsMHg4ZiwweDAwLDB4NDAsMHgwOSwweDE0LDB4MDIsMHgwMywweDE0LDB4OTEgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgwOCwweDQyLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweDMxLDB4Y2EsMHgwYywweDUyLDB4MDIsMHgxMCwweDgwLDB4ODUgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4MDAsMHgyMSwweDgyLDB4MjgsMHg0MCwweDBhLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDQsMHgwMiwweDAxLDB4NDAsMHg4MCwweDczLDB4MjgsMHgxMCwweDQ4LDB4MDcsMHgwNiwweDAxLDB4MDQgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4YTQsMHg0MSwweDIxLDB4MTQsMHgwOCwweDQ0LDB4MDYsMHgxMSwweDQwLDB4ODAsMHg3MCwweDIwLDB4MTQsMHgwYSwweDA0LDB4MDIgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4MDAsMHhjOCwweDg0LDB4NDEsMHgyMSwweDFjLDB4MDgsMHgwNiwweDEyLDB4MDEsMHhjMCwweDgwLDB4NjAsMHgyMCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDg0LDB4MDQsMHgyMSwweDgyLDB4MDggfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4NTMsMHgwMiwweDEwLDB4ODAsMHhjNSwweDAwLDB4ODEsMHg0YSwweDA0LDB4NDIsMHgwMiwweDE0LDB4MDAsMHgwNCwweDIwLDB4MjEgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4ODAsMHhhOCwweDcyLDB4MjIsMHgxYywweDg4LDB4YzQsMHgwNiwweGExLDB4NDIsMHg4YywweDUyLDB4MjIsMHgxYywweDg4LDB4ODUgfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MjYsMHgyMSwweGMwLDB4ODgsMHg1MCwweDIyLDB4MTgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4MDAsMHgwMCwweDAyLDB4NDQsMHgwMCwweDAxLDB4MDEsMHgwMCwweDYyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDEgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MWMsMHgwMCwweDQ0LDB4MDQsMHgwMSwweDAyLDB4MjAsMHg2MiwweDAwLDB4MWMsMHg4MCwweDA0LDB4MDQgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4ODAsMHg4OSwweDIwLDB4NTAsMHgwOCwweDE0LDB4ODAsMHgwNCwweDI0LDB4MDEsMHhjMSwweDAwLDB4NTAsMHgwMCwweDE4LDB4MDAgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDgwLDB4MzgsMHgyMCwweDA0LDB4MGMgfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4MzEsMHgwYSwweDAwLDB4MDAsMHgwMiwweDE4LDB4MjAsMHg4YywweGE4LDB4MTAsMHgyOCwweDA4LDB4ODgsMHhjMSwweDE0LDB4MTAgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4YzYsMHgwMCwweDIyLDB4MDMsMHgwOCwweDAyLDB4MDEsMHgwOCwweGIwLDB4MDAsMHgwYywweDIxLDB4MDIsMHgwMCwweDgyLDB4ODAgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4MDgsMHgwMCwweDQ5LDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDgwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgwNCwweDAyLDB4NDMsMHgyMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDQsMHg0MiwweDAxLDB4MTAsMHg4MCwweDg0LDB4MjAsMHgxMSwweDA4LDB4MDQsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4MDAsMHg0NCwweDI0LDB4MjAsMHgwOSwweDA4LDB4NDAsMHgwMywweDAwLDB4OTAsMHhjNCwweDIwLDB4MjAsMHgwOCwweDBjLDB4MDIgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDgxLDB4MDgsMHgyMCwweDA0LDB4ODggfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4MDIsMHgyMiwweDA4LDB4MDgsMHhjMywweDJhLDB4OTAsMHg0MCwweDg0LDB4MTAsMHgyMCwweDA0LDB4ODAsMHhjMiwweDI2LDB4MjAgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4NDksMHg4OCwweDIyLDB4MjIsMHgwYywweDA4LDB4YzEsMHgyNiwweGEwLDB4YzksMHg4YywweDEyLDB4MmEsMHgwNCwweDg4LDB4NDMgfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4MGUsMHhhMCwweGNiLDB4ODgsMHgxMCwweDIyLDB4MGMsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4MDgsMHgwMCwweDBhLDB4NDAsMHgzMiwweDAwLDB4MDEsMHg4MCwweDMxLDB4MjgsMHgwMCwweDAwLDB4MDEsMHgxMiwweDgwLDB4OGQgfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4ODQsMHgwMCwweDI4LDB4MGMsMHgwOCwweDAxLDB4MzIsMHgwMCwweDhjLDB4ODAsMHgwMiwweDIwLDB4MGMsMHgwOCwweDAxLDB4MmUgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4MDAsMHhjMywweDgwLDB4MDIsMHgyMCwweDA0LDB4MDgsMHg0MywweDAyLDB4MDAsMHg0MCwweDgwLDB4MTAsMHgyMCwweDA0LDB4MDIgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDg3LDB4MGEsMHgyMSwweDA0LDB4ODggfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4MTEsMHgyYSwweDFjLDB4MGEsMHgwNiwweDIyLDB4MjEsMHg0MCwweGEwLDB4NDIsMHgyYSwweDEwLDB4ODgsMHg4NSwweDBhLDB4YTEgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4MDYsMHhhNCwweDYyLDB4MjIsMHgxYywweDBhLDB4YzQsMHgwMiwweDIxLDB4ODAsMHg4YywweDUyLDB4MjIsMHgxNCwweDQ4LDB4ODYgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4MjIsMHgyMCwweDA4LDB4YTgsMHg2MCwweDJhLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4NDUsMHgwNiwweDAxLDB4ODksMHg4MCwweDYzLDB4MjAsMHgxYywweDg4LDB4NDAsMHgzNCwweDExLDB4MDEgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4YTQsMHg1MCwweDI4LDB4MTgsMHg0OCwweDA0LDB4MGUsMHgwMSwweDRiLDB4ODAsMHg3MywweDI4LDB4MWMsMHg4YSwweDA0LDB4MDYgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4OTEsMHg0OSwweDA0LDB4NjMsMHgyMCwweDFjLDB4OGEsMHgwNiwweDI2LDB4MDEsMHg4NSwweDgwLDB4NzAsMHgyMCwweDE4LDB4MDIgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDg1LDB4MDAsMHhiMSwweDQ1LDB4MmMgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4NzAsMHgwMiwweDE0LDB4YzAsMHgwNywweDA4LDB4MjEsMHg0OSwweDAwLDB4NDIsMHgwMSwweDE0LDB4ODIsMHgwNSwweDAwLDB4MTEgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4ODQsMHgwMCwweDUyLDB4MDIsMHgxYywweDAwLDB4YzQsMHgwMCwweDIxLDB4YzQsMHgyYywweDUzLDB4MDIsMHgxYywweDAyLDB4ODEgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4MDQsMHhhMSwweGNkLDB4MDgsMHg1MCwweDAyLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4MDgsMHgxMCwweDEyLDB4MDQsMHgzNCwweDAxLDB4Y2MsMHgwMCwweDczLDB4NDAsMHgxYywweDkwLDB4NDUsMHgwNCwweDAxLDB4NDggfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MDQsMHg2MCwweDQxLDB4MTgsMHhjMCwweDQ0LDB4MDQsMHgwMSwweDA1LDB4MDQsMHg3MywweDQ4LDB4MTQsMHg1MCwweDQ3LDB4MzQgfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4MDEsMHg0NSwweDIwLDB4NjIsMHgwOCwweDFjLDB4YzIsMHgwNCwweDBjLDB4ODEsMHhjNywweDAwLDB4NzMsMHg4MCwweDE4LDB4YzIgfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgxMCwweDg0LDB4MTAsMHgyMSwweGNjLDB4MjggfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4NDIsMHgwMiwweDE0LDB4MTIsMHhjNSwweDEwLDB4MjEsMHg4NCwweDA0LDB4NDAsMHgwMCwweDFjLDB4ODAsMHg4NCwweDAwLDB4OTEgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4MDAsMHgwOCwweDczLDB4ODIsMHgxYywweDkwLDB4MDUsMHgwYywweDAxLDB4Y2YsMHgwYywweDQwLDB4MDIsMHgxNCwweDMwLDB4NDUgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4MjAsMHhhMSwweGMwLDB4MDgsMHg1MCwweDAyLDB4MTAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4NDUsMHgwYywweDgxLDB4MDAsMHgwMCwweDAxLDB4MDgsMHgwOCwweDAwLDB4MDUsMHgxOCwweDkxLDB4MDUgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4MDQsMHgwMCwweDAxLDB4MDQsMHg0MCwweDA2LDB4MTgsMHgwMCwweDAyLDB4MjQsMHg3MCwweDQwLDB4MDQsMHgwMCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4MDEsMHhjNCwweDI0LDB4MDAsMHg4OCwweDA0LDB4MDAsMHg0MywweDEwLDB4MDAsMHg0MCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDg1LDB4MjQsMHgzMSwweDAyLDB4MGMgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MDIsMHhjMiwweDA0LDB4MTAsMHhjNCwweDI4LDB4MjEsMHg0OSwweDBjLDB4MDIsMHhjMCwweDA0LDB4YjIsMHgwNiwweDFjLDB4MjAgfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4MDMsMHgwOCwweDUwLDB4NDIsMHgwYywweDgwLDB4MDEsMHgwNCwweGExLDB4NDksMHgwYywweDAwLDB4YzIsMHgwYywweDEwLDB4NDMgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MjQsMHhhMCwweGMxLDB4MDgsMHgxMCwweDQyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4MDAsMHgxMCwweGEyLDB4MDAsMHgyMCwweDAwLDB4Y2QsMHgwMCwweDAwLDB4NDAsMHgwNCwweDIwLDB4MDEsMHgxMCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4MDQsMHgwMiwweDQ5LDB4MGMsMHg5MiwweDA3LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgzMywweDA4LDB4MGMsMHg5MiwweDQxLDB4MDAgfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4ODAsMHhjYywweDAwLDB4MDAsMHgwMCwweDBjLDB4MDAsMHg0MywweDI4LDB4ODAsMHhjMiwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDEwLDB4NTAsMHg4MCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZDAsMHg4MCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweDkwLDB4ODAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4M2MsMHgzYywweDEwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4YTAsMHg4MCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgwMCwweDQwLDB4MTAsMHg5MCwweDgwLDB4YTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg5MCwweDgwLDB4YTAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDEwLDB4OTAsMHhhMCwweGEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OGYgfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MGYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYywweGMyLDB4ZTQsMHg4MSwweDgwLDB4M2YgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4ZDksMHhiZiwweGQ5LDB4OTgsMHg3MSwweDlkLDB4NDIsMHg4MCwweDAwLDB4MjYsMHg3ZiwweGU2LDB4NzIsMHhhYiwweDdjLDB4M2EgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4NDAsMHgwMCwweDE5LDB4ODAsMHgyNiwweDQ4LDB4ZGQsMHgzYywweDkxLDB4YzAsMHgyNiwweDQwLDB4MjYsMHg0MCwweDM4LDB4MzEgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4ZGIsMHg2MSwweGMwLDB4MTksMHg5OSwweGJmLDB4YzksMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4MDAsMHgwMCwweDEwLDB4ODAsMHgxMCwweDE0LDB4ODAsMHgwNiwweDg0LDB4OTcsMHg5NiwweDg2LDB4OTYsMHgwNiwweDkwLDB4MDAgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4M2YsMHhhMSwweDI4LDB4MDEsMHgwMiwweDkwLDB4MTIsMHgwMCwweDgwLDB4MTcsMHg4OCwweDE2LDB4OWUsMHg5MCwweDkwLDB4MDQgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4MTAsMHgwMCwweDM2LDB4YmUsMHhiZSwweDllLDB4ODYsMHgxNiwweDEyLDB4ODQsMHg4MCwweDEzLDB4YmUsMHg5NywweGFlLDB4ODAgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODIgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4ODEsMHg4NCwweDIxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGExLDB4MzgsMHgwMSwweDc4LDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4MDgsMHhiOCwweDIxLDB4NzIsMHg2OCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg5OCwweDQ0LDB4ODgsMHg2OCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4YjgsMHgwMSwweDc4LDB4MDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcsMHhhZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGJmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4MmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4YzAgfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGJmLDB4YmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiwweGJmLDB4ZGYgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGZmLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4M2UsMHhhZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGU3LDB4ZmUgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4ZWYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZGYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmNywweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmYsMHhmZiwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4ZGYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4MDAsMHgwMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4YzMsMHgyYywweDUwLDB4MDksMHgxNCwweDgyLDB4YzQsMHgzMCwweDkxLDB4YzcgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4MjQsMHg2MCwweDA4LDB4MWMsMHg4MiwweDA3LDB4MzQsMHg5MSwweDRjLDB4MDQsMHg0MywweDBhLDB4MTAsMHhjMiwweDg0LDB4MDQgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4OTEsMHg4NCwweDI0LDB4NTIsMHgwYiwweDE4LDB4MDIsMHhjNCwweDI0LDB4YjEsMHhjMywweDJjLDB4NDAsMHgwYSwweDEwLDB4ODAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4MDIsMHgwMSwweGM0LDB4ODAgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4NjAsMHgyMCwweDFjLDB4MDgsMHg0NCwweDIyLDB4MDEsMHhjMCwweDg0LDB4NTAsMHgwMSwweDljLDB4MDgsMHgwNywweDBhLDB4MDEgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4YzAsMHg4NCwweDcyLDB4MjAsMHgxYywweGM4LDB4MDQsMHgxMiwweDExLDB4NDQsMHg4MCwweDQxLDB4MDEsMHgxYywweDgwLDB4MDcgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4MDgsMHgxMSwweGM0LDB4MDAsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4ODYsMHgyYywweDIxLDB4NGEsMHgwYywweDUyLDB4MDIsMHgxYywweDgwLDB4MDQsMHgyMCwweDIxLDB4Y2EgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MTAsMHg2MiwweDAyLDB4MWMsMHg4MSwweDQ3LDB4MDQsMHgyMSwweGMzLDB4MjAsMHg1MSwweDAxLDB4MWMsMHg4MCwweDA0LDB4MmMgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4MDEsMHhjYiwweDA0LDB4NTIsMHgwMywweDE0LDB4NDAsMHhjNywweDIwLDB4MzEsMHhjOCwweDBjLDB4NTAsMHgyMiwweDEwLDB4ODAgfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MjAsMHgwMSwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4NTIsMHgwMCwweDE0LDB4ODAsMHgwNCwweDI4LDB4MDEsMHg0NSwweDA0LDB4NjIsMHgwMCwweDEwLDB4ODAsMHg0NiwweDMwLDB4MTEgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4MGQsMHgwMCwweDQyLDB4MDEsMHgxNCwweGMwLDB4NDQsMHgwMCwweDExLDB4MDUsMHgwMCwweDUwLDB4MDAsMHgxYywweDAwLDB4NDQgfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MjgsMHgwMSwweDQ5LDB4MDAsMHg3MCwweDAwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4YzAsMHgwMiwweDMwLDB4MGMsMHg4YywweDMwLDB4MjIsMHgwOCwweDg4LDB4YzIsMHgyNiwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4ODAsMHgyMCwweDIyLDB4MGMsMHg4OCwweDgxLDB4MDIsMHgxMCwweGM0LDB4ODAsMHgxMCwweDIyLDB4MGMsMHgwOCwweDQwLDB4MDIgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4MTAsMHg0OCwweDg4LDB4MDEsMHgyMywweDA0LDB4YzgsMHg0MiwweDAyLDB4MTAsMHg0NiwweDhjLDB4MTIsMHgyMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweGM4LDB4MjAgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4MTEsMHgwOSwweDAwLDB4ODAsMHg0MSwweDEwLDB4OTAsMHgwOCwweDI0LDB4MzAsMHgwOCwweDA0LDB4NDIsMHg0MSwweDAwLDB4OTAgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4YzQsMHgyMCwweDAwLDB4MDgsMHgwNCwweDQyLDB4MDAsMHgxMCwweDgwLDB4NGMsMHgyMCwweDIzLDB4MDksMHgwNCwweGMyLDB4NDMgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MzAsMHg4MCwweDQwLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4MDgsMHgwMCwweDA4LDB4ODEsMHgwMiwweDIwLDB4YzksMHg4YywweDEyLDB4MjAsMHgwNCwweDQ4LDB4NDEsMHgyMiwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4ODgsMHgzMCwweDIwLDB4MGMsMHg4OCwweDAzLDB4MGUsMHgwMCwweDQ5LDB4OGMsMHgxMCwweDIyLDB4MGMsMHg4OCwweDQwLDB4MmUgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4MDAsMHhjOSwweDg0LDB4MTMsMHgyMSwweDA0LDB4YzgsMHhjMywweDIyLDB4MDAsMHhjYiwweDhjLDB4MzIsMHgyMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAxLDB4MDIsMHgwMCwweDRiLDB4ODAgfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4MzIsMHgyMSwweDA4LDB4ODgsMHg0MSwweDAyLDB4MTAsMHgwZiwweDgwLDB4MTAsMHgyMSwweDhjLDB4MDgsMHg0MSwweDAyLDB4MDAgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4ODcsMHg4NCwweDEwLDB4MjAsMHgwNCwweDg4LDB4MDAsMHgwMiwweDAwLDB4NDcsMHg4MCwweDEwLDB4MjEsMHgwYywweDg4LDB4NDEgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MTYsMHgxMCwweDQ2LDB4ODAsMHgzMCwweDIwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4MDAsMHgwMCwweDBhLDB4YzQsMHgyMiwweGExLDB4MDgsMHhhNCwweDcyLDB4MmEsMHgxNCwweDBhLDB4ODUsMHgwMiwweDgxLDB4ODQgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4YTAsMHg0MiwweDI4LDB4MWMsMHgwYSwweGM1LDB4MDIsMHg5MSwweDQwLDB4YjgsMHg3MywweDI5LDB4MTAsMHhjYSwweGM0LDB4MDIgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4YTEsMHg4MCwweGE0LDB4NDIsMHgyYSwweDE0LDB4Y2EsMHg4NSwweDIyLDB4OTEsMHg4MCwweGE4LDB4NzAsMHgyYSwweDE4LDB4MDIgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDA0LDB4MWUsMHgwMSwweGM4LDB4ODAgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4NDMsMHgyMCwweDE4LDB4MDgsMHg0NSwweDNlLDB4MDEsMHgwYywweDgwLDB4NjEsMHgyMCwweDljLDB4NDgsMHgwNiwweDEyLDB4ODEgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4YzAsMHg4MCwweDczLDB4MDAsMHgxMCwweDg4LDB4MDYsMHgwMiwweDAxLDB4YzgsMHgwMCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MDcgfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MDIsMHgxMSwweGNkLDB4ODAsMHg1MSwweDIwLDB4MTQsMHg4MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4MDgsMHgwMCwweDAwLDB4YzQsMHgyNCwweDIxLDB4YzgsMHgwYywweDQyLDB4MDEsMHgxNCwweDAwLDB4MDAsMHgyOCwweDEwLDB4NGMgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDQ1LDB4MjQsMHgyOSwweDQwLDB4MDQsMHg3MiwweDAwLDB4MTAsMHhjMCwweDA1LDB4MjQgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4MTEsMHg0NCwweDA4LDB4NDMsMHgwMSwweDE0LDB4YzAsMHg0NywweDI0LDB4MjAsMHg0OCwweDA4LDB4NzIsMHgwMiwweDEwLDB4MDAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHgwMCwweDA3LDB4MTAsMHgxMSwweDA2LDB4MDAgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4NzIsMHgwMCwweDE4LDB4ZDAsMHg0NiwweDIwLDB4MDEsMHg0ZCwweDAwLDB4NzEsMHg0MCwweDEwLDB4NTAsMHgwNywweDMwLDB4MTEgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4YzMsMHgwMCwweDcxLDB4NDEsMHgxMCwweGIwLDB4MDUsMHgyYywweDAxLDB4NDksMHgwMCwweDQzLDB4MDAsMHgxYywweDUwLDB4NDUgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4MzAsMHgwMSwweDhjLDB4MDAsMHg2MSwweDQwLDB4MTgsMHg0MiwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4YzUsMHgwMCwweDIxLDB4YzAsMHgwYywweDQwLDB4MDEsMHgxNCwweDEyLDB4NDQsMHgwNCwweDMxLDB4ODQgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4MjQsMHg0MCwweDgwLDB4MTQsMHhhMSwweGM3LDB4MDAsMHgwMSwweDQwLDB4MDgsMHg0MCwweDAxLDB4MTQsMHgyMCwweDA1LDB4MjAgfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4MTEsMHhjMCwweDAyLDB4NjAsMHg4MiwweDE4LDB4MDAsMHg4NywweDI0LDB4MTEsMHg0MCwweDA4LDB4NDAsMHg0MiwweDEwLDB4MDIgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MGMsMHg4MCwweGM0LDB4MjQgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4MzEsMHg0OCwweDBjLDB4MDAsMHgwMSwweDA4LDB4YzEsMHg0MSwweDAwLDB4MDAsMHg0OSwweDAwLDB4NDIsMHgwMywweDA4LDB4MTAgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4ODAsMHgyMCwweDIxLDB4MDksMHgwYywweDAyLDB4MDIsMHgxOCwweDgwLDB4YzEsMHgyNCwweDMwLDB4MDgsMHgwYywweDQyLDB4MDEgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4MTAsMHg4MCwweDgzLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4MDAsMHgwMCwweDEwLDB4YzEsMHgwNCwweDIwLDB4NDgsMHgwYywweDEyLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDMxLDB4NDggfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgwMiwweDQxLDB4MDQsMHhhMCwweDA3LDB4MGMsMHgyMCwweDQwLDB4MDAsMHgxMiwweGMyLDB4MGMsMHg4MCwweGMxLDB4MjAgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4MjAsMHhjOCwweDAwLDB4MTIsMHhjMSwweDBjLDB4YjAsMHg0MSwweDIwLDB4MDAsMHg0OSwweDA4LDB4MDIsMHg0MiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4MCwweDAxLDB4MDAsMHgxMCwweDgxLDB4MDAgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4MzAsMHg0MCwweDA4LDB4MjAsMHgwMywweDAwLDB4MTAsMHhjMSwweDIwLDB4MDIsMHgwMCwweDA0LDB4ODAsMHg0MCwweDMwLDB4OTAgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4MDEsMHgxNCwweDAyLDB4NDAsMHgwNCwweDgwLDB4NDAsMHgyMCwweDAwLDB4MDksMHgwNCwweDMyLDB4MDEsMHgwOCwweGEwLDB4MDMgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4MDQsMHgxMCwweDA4LDB4MDAsMHgyMiwweDQwLDB4MDAsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweGYwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDAsMHhmMCwweDAwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4YTAgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDAwLDB4Y2MgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNjLDB4M2MsMHgxMCwweGEwLDB4ODAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweGMwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAgfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4ZTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4YywweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4MDAsMHgwMCwweDA5LDB4NGQsMHhiMSwweGU5LDB4MDAsMHgyNiwweDQwLDB4MmEsMHg3ZiwweGUzLDB4ZjIsMHg1NCwweDk4LDB4YzAgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4M2YsMHhlNiwweDQwLDB4MDAsMHgwMSwweDQyLDB4OTEsMHhkMCwweGMwLDB4MTMsMHhlNSwweDg3LDB4NjMsMHg4MywweGI4LDB4Y2QgfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4ZjksMHgwMCwweDI2LDB4N2YsMHgwMCwweDAwLDB4MzUsMHgyZSwweGQ1LDB4MDMsMHg0MCwweDNmLDB4ZDksMHhiZiwweGIxLDB4ODAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4MDEsMHhmMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAyLDB4MTYsMHgxNCwweDAwLDB4MWMgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4YTgsMHgzZiwweDg4LDB4MTYsMHgwMCwweDgwLDB4ODQsMHg4MCwweDM3LDB4OWUsMHhiYSwweGEwLDB4NTAsMHgxMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4MDAsMHgxNywweDk2LDB4OTcsMHgyNiwweDUwLDB4MTAsMHgxMCwweDgyLDB4ODAsMHgxZSwweDgwLDB4ZGUsMHhiZSwweDk0LDB4MTQgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4MDIsMHgxMCwweDgwLDB4MTcsMHhiZSwweDgxLDB4OTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhhOCwweDQ0LDB4OTQsMHgyOCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4OTQsMHgyMSwweDQ0LDB4NTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODQsMHg0MiwweDQxLDB4MDEsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgwOCwweGExLDB4NzIsMHgyMywweDQxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGI4LDB4MDEsMHg3OCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmNywweGZlLDB4ZDcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGQ3LDB4ZGYgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM3LDB4N2YgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFlLDB4ZmYsMHhkZSwweDc3LDB4YzAgfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGVmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhjZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4YmYgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4ZmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4MWYgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhkZiwweGZmLDB4Y2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhiZiwweGFmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNlLDB4ZGUsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4N2YsMHhmZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZlLDB4YmUgfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhmZiwweGQ3LDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg0MywweDhlLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDIsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4ODAgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NWYsMHhhNywweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDMgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDUsMHgzMCwweDAwLDB4YTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDEgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4MDAsMHgwMCwweDZiLDB4OTcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgNCwgMHhmZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAwICwgMHgwMDAwLCAxLCB7MH0KLX07Ci0vLyBWRVJTSU9OPSAxLjAuMC4xOTEKLS8vIERBVEU9IDIwMDJvY3QyOAotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19IZXhNaWRpRnc2MltdID0gewotICAgMywweDAwMDAsMCx7MHgwMiwweDQ2LDB4Yjl9LAotICAgMywweDAwMDMsMCx7MHgwMiwweDBmLDB4ZmR9LAotICAgMywweDAwMGIsMCx7MHgwMiwweDRlLDB4MGZ9LAotICAgMywweDAwMTMsMCx7MHgwMiwweDE3LDB4ZmR9LAotICAgMywweDAwMWIsMCx7MHgwMiwweDRlLDB4MTJ9LAotICAgMywweDAwMjMsMCx7MHgwMiwweDRkLDB4ZWZ9LAotICAgMywweDAwMmIsMCx7MHgwMiwweDQ4LDB4MDB9LAotICAgMywweDAwMzMsMCx7MHgwMiwweDRkLDB4ZTZ9LAotICAgMywweDAwM2IsMCx7MHgwMiwweDRkLDB4ZjZ9LAotICAgMywweDAwNDMsMCx7MHgwMiwweDQ5LDB4MDB9LAotICAgMywweDAwNGIsMCx7MHgwMiwweDRlLDB4MDN9LAotICAgMywweDAwNTMsMCx7MHgwMiwweDQ4LDB4ZmF9LAotICAgMywweDAwNWIsMCx7MHgwMiwweDRkLDB4ZmR9LAotICAgMywweDAwNjMsMCx7MHgwMiwweDRlLDB4MDd9LAotICAxNiwweDA1MDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDExLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0sCi0gIDE2LDB4MDUxMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4MDgsMHgwMiwweDA1LDB4MDEsMHgwMCwweDgwLDB4MzIsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwNTIwLDAsezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwYSwweDI0LDB4MDEsMHgwMCwweDAxLDB4NTYsMHgwMCwweDAyLDB4MDEsMHgwMiwweDBjLDB4MjR9LAotICAxNiwweDA1MzAsMCx7MHgwMiwweDAxLDB4MDEsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4MjQsMHgwNiwweDA1LDB4MDEsMHgwMn0sCi0gIDE2LDB4MDU0MCwwLHsweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgyNCwweDAzLDB4MDIsMHgwNCwweDAzLDB4MDAsMHgwNSwweDAwfSwKLSAgMTYsMHgwNTUwLDAsezB4MGMsMHgyNCwweDAyLDB4MDMsMHgwNSwweDAyLDB4MDAsMHgwNiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHgyNCwweDA2LDB4MDZ9LAotICAxNiwweDA1NjAsMCx7MHgwMywweDAyLDB4MDAsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMH0sCi0gIDE2LDB4MDU3MCwwLHsweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMCwweDAxfSwKLSAgMTYsMHgwNTgwLDAsezB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAxLDB4MDEsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDF9LAotICAxNiwweDA1OTAsMCx7MHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDIsMHgxMCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYn0sCi0gIDE2LDB4MDVhMCwwLHsweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxfSwKLSAgMTYsMHgwNWIwLDAsezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA1LDB4MDAsMHgwOSwweDA0LDB4MDF9LAotICAxNiwweDA1YzAsMCx7MHgwMiwweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMn0sCi0gIDE2LDB4MDVkMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fSwKLSAgMTYsMHgwNWUwLDAsezB4MGEsMHgwNSwweDQ2LDB4MDIsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDV9LAotICAxNiwweDA1ZjAsMCx7MHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDUsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAwLDB4MDAsMHgwMSwweDAyLDB4MDAsMHgwMH0sCi0gIDE2LDB4MDYwMCwwLHsweDA5LDB4MDQsMHgwMiwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwfSwKLSAgMTYsMHgwNjEwLDAsezB4MGUsMHgyNCwweDAyLDB4MDEsMHgwNiwweDAyLDB4MTAsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDV9LAotICAxNiwweDA2MjAsMCx7MHg4YywweDA1LDB4NGMsMHgwMiwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNH0sCi0gIDE2LDB4MDYzMCwwLHsweDAyLDB4MDIsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0fSwKLSAgMTYsMHgwNjQwLDAsezB4MDIsMHgwMSwweDA2LDB4MDMsMHgxOCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDksMHgwNSwweDhjLDB4MDV9LAotICAxNiwweDA2NTAsMCx7MHg3MiwweDAzLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwM30sCi0gIDE2LDB4MDY2MCwwLHsweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxfSwKLSAgMTYsMHgwNjcwLDAsezB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4OGN9LAotICAxNiwweDA2ODAsMCx7MHgwNSwweDg0LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMn0sCi0gIDE2LDB4MDY5MCwwLHsweDA0LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfSwKLSAgMTYsMHgwNmEwLDAsezB4MDEsMHgwMiwweDAzLDB4MTgsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDV9LAotICAxNiwweDA2YjAsMCx7MHg4YywweDA1LDB4NDYsMHgwMiwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNH0sCi0gIDE2LDB4MDZjMCwwLHsweDAzLDB4MDAsMHgwMCwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDksMHgyNCwweDAxLDB4MDAsMHgwMSwweDA5LDB4MDAsMHgwMSwweDA0fSwKLSAgMTYsMHgwNmQwLDAsezB4MDksMHgwNCwweDA0LDB4MDAsMHgwMiwweDAxLDB4MDMsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDAsMHgwMSwweDI0LDB4MDB9LAotICAxNiwweDA2ZTAsMCx7MHgwNiwweDI0LDB4MDIsMHgwMSwweDA3LDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMiwweDA4LDB4MDEsMHgwNywweDAxLDB4MDAsMHgwNn0sCi0gIDE2LDB4MDZmMCwwLHsweDI0LDB4MDIsMHgwMiwweDA5LDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMSwweDBhLDB4MDEsMHgwOSwweDAxLDB4MDAsMHgwOSwweDA1fSwKLSAgMTYsMHgwNzAwLDAsezB4MDEsMHgwMiwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDI1LDB4MDEsMHgwMSwweDA3LDB4MDksMHgwNSwweDgxLDB4MDJ9LAotICAxNiwweDA3MTAsMCx7MHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgyNSwweDAxLDB4MDEsMHgwYSwweDA0LDB4MDMsMHgwOSwweDA0LDB4MTgsMHgwM30sCi0gIDE2LDB4MDcyMCwwLHsweDQ1LDB4MDAsMHg2ZCwweDAwLDB4NjEsMHgwMCwweDY3LDB4MDAsMHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NywweDAwfSwKLSAgMTYsMHgwNzMwLDAsezB4NmQsMHgwMCwweDYyLDB4MDAsMHg0OCwweDAwLDB4MjIsMHgwMywweDQ1LDB4MDAsMHg2ZCwweDAwLDB4NjEsMHgwMCwweDY3LDB4MDB9LAotICAxNiwweDA3NDAsMCx7MHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NSwweDAwLDB4NGQsMHgwMCwweDQ5LDB4MDAsMHgyMCwweDAwLDB4MzYsMHgwMH0sCi0gIDE2LDB4MDc1MCwwLHsweDdjLDB4MDAsMHgzMiwweDAwLDB4MjAsMHgwMCwweDZkLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwfSwKLSAgMTYsMHgwNzYwLDAsezB4NjYsMHgwMCwweDY5LDB4MDAsMHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDB9LAotICAxNiwweDA3NzAsMCx7MHg2ZiwweDAwLDB4NmUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMH0sCi0gIDE2LDB4MDc4MCwwLHsweDY3LDB4MDAsMHgyMiwweDAzLDB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwfSwKLSAgMTYsMHgwNzkwLDAsezB4NjEsMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDB9LAotICAgNiwweDA3YTAsMCx7MHg2ZSwweDAwLDB4NjcsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDA3YTYsMCx7MHhlNCwweDkwLDB4NzYsMHg2NiwweGYwLDB4MTIsMHg0NCwweGFkLDB4MjAsMHgyNiwweDEzLDB4OTAsMHg3NiwweDY2LDB4ZTAsMHhjM30sCi0gIDE2LDB4MDdiNiwwLHsweDk0LDB4MDIsMHg1MCwweDBhLDB4ZTAsMHgwNCwweGYwLDB4ZDIsMHg0MiwweDEyLDB4NGIsMHg3ZiwweDgwLDB4ZWEsMHgzMCwweDI2fSwKLSAgMTYsMHgwN2M2LDAsezB4MDUsMHgxMiwweDI4LDB4MDEsMHhjMiwweDI2LDB4MzAsMHgyNSwweDJiLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg1NCwweGZjLDB4ZjB9LAotICAxNiwweDA3ZDYsMCx7MHg5MCwweDgwLDB4MDMsMHhmMCwweDEyLDB4MTQsMHg5NiwweDkwLDB4NzYsMHg5NiwweGUwLDB4NDQsMHgwMywweGYwLDB4OTAsMHg4MH0sCi0gIDE2LDB4MDdlNiwwLHsweDAzLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg2NywweGYwLDB4OTAsMHg3NiwweDY3LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhiNCwweDRifSwKLSAgMTAsMHgwN2Y2LDAsezB4ZjYsMHgxMiwweDQ3LDB4ZmEsMHgxMiwweDQxLDB4MWIsMHg4MCwweGM1LDB4MjJ9LAotICAxNiwweDA4MDAsMCx7MHhlNCwweDkwLDB4NzYsMHgzMSwweGYwLDB4OTAsMHg3NiwweDMxLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn0sCi0gIDE2LDB4MDgxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHgwODIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgzMSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDA4MzAsMCx7MHhlZiwweGI0LDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MDg0MCwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MzMsMHhmMCwweDI0fSwKLSAgMTYsMHgwODUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZSwweDYwLDB4MDIsMHg4MSwweDg3LDB4MTIsMHg0YiwweGM3LDB4MjIsMHg5MCwweDdmLDB4ZWR9LAotICAxNiwweDA4NjAsMCx7MHhlMCwweDY0LDB4MDUsMHg3MCwweDUxLDB4OTAsMHg3NiwweDE4LDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3NiwweDM3LDB4NzQsMHgwMX0sCi0gIDE2LDB4MDg3MCwwLHsweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDIxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgyMCwweGYwfSwKLSAgMTYsMHgwODgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDA4OTAsMCx7MHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZH0sCi0gIDE2LDB4MDhhMCwwLHsweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3NiwweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2fSwKLSAgMTYsMHgwOGIwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9LAotICAxNiwweDA4YzAsMCx7MHgxOCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHgzNywweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzOSwweDc0LDB4MGEsMHhmMH0sCi0gIDE2LDB4MDhkMCwwLHsweDkwLDB4NzYsMHgyMSwweGYwLDB4OTAsMHg3NiwweDIwLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwfSwKLSAgMTYsMHgwOGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDA4ZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZCwweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MDkwMCwwLHsweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxfSwKLSAgMTYsMHgwOTEwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDA5MjAsMCx7MHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MjksMHhmMCwweGU0LDB4OTAsMHg3NiwweDNiLDB4ZjAsMHg5MCwweDc2LDB4MjEsMHhlMH0sCi0gIDE2LDB4MDkzMCwwLHsweGZlLDB4ZWYsMHg2ZSwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVifSwKLSAgMTYsMHgwOTQwLDAsezB4ZTAsMHgxNCwweDYwLDB4MTMsMHgxNCwweDcwLDB4MDIsMHgyMSwweGUyLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDdmLDB4OTB9LAotICAxNiwweDA5NTAsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MTQsMHg3MCwweDdjLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MDk2MCwwLHsweGVhLDB4ZTAsMHhmNCwweDcwLDB4NDgsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5fSwKLSAgMTYsMHgwOTcwLDAsezB4ZTAsMHhmZSwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmQsMHhjMywweDllLDB4NTAsMHgyYiwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmV9LAotICAxNiwweDA5ODAsMCx7MHgwNCwweGYwLDB4NzQsMHhjMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZlLDB4ZWQsMHg3NX0sCi0gIDE2LDB4MDk5MCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgwOWEwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGM3LDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzB9LAotICAxNiwweDA5YjAsMCx7MHhlMCwweGZlLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MDljMCwwLHsweGVlLDB4ZjAsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHgzZSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwfSwKLSAgMTYsMHgwOWQwLDAsezB4NzYsMHgzZSwweGYwLDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9LAotICAxNiwweDA5ZTAsMCx7MHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZlLDB4NzAsMHgwMiwweDQxLDB4YTMsMHgxNCwweDcwLDB4MDIsMHg2MX0sCi0gIDE2LDB4MDlmMCwwLHsweDNmLDB4MTQsMHg3MCwweDAyLDB4NjEsMHhkYiwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg3NywweDkwLDB4N2YsMHhlYSwweGUwfSwKLSAgMTYsMHgwYTAwLDAsezB4ZjQsMHg3MCwweDZiLDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmZ9LAotICAxNiwweDBhMTAsMCx7MHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDUwLDB4NGUsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMH0sCi0gIDE2LDB4MGEyMCwwLHsweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfSwKLSAgMTYsMHgwYTMwLDAsezB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDNiLDB4ZTB9LAotICAxNiwweDBhNDAsMCx7MHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZX0sCi0gIDE2LDB4MGE1MCwwLHsweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwfSwKLSAgMTYsMHgwYTYwLDAsezB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4NDAsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2V9LAotICAxNiwweDBhNzAsMCx7MHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4MGE4MCwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfSwKLSAgMTYsMHgwYTkwLDAsezB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDQxLDB4NzR9LAotICAxNiwweDBhYTAsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MGFiMCwwLHsweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyfSwKLSAgMTYsMHgwYWMwLDAsezB4ODEsMHg4ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDBhZDAsMCx7MHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MGFlMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1fSwKLSAgMTYsMHgwYWYwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjV9LAotICAxNiwweDBiMDAsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMn0sCi0gIDE2LDB4MGIxMCwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlfSwKLSAgMTYsMHgwYjIwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzV9LAotICAxNiwweDBiMzAsMCx7MHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MH0sCi0gIDE2LDB4MGI0MCwwLHsweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgwYjUwLDAsezB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4ODEsMHg4ZSwweDkwLDB4NzZ9LAotICAxNiwweDBiNjAsMCx7MHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4MGI3MCwwLHsweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfSwKLSAgMTYsMHgwYjgwLDAsezB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2V9LAotICAxNiwweDBiOTAsMCx7MHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4MGJhMCwwLHsweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwfSwKLSAgMTYsMHgwYmIwLDAsezB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDBiYzAsMCx7MHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNH0sCi0gIDE2LDB4MGJkMCwwLHsweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0fSwKLSAgMTYsMHgwYmUwLDAsezB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTB9LAotICAxNiwweDBiZjAsMCx7MHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4ODEsMHg4ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNH0sCi0gIDE2LDB4MGMwMCwwLHsweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwfSwKLSAgMTYsMHgwYzEwLDAsezB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2J9LAotICAxNiwweDBjMjAsMCx7MHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MGMzMCwwLHsweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwfSwKLSAgMTYsMHgwYzQwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjB9LAotICAxNiwweDBjNTAsMCx7MHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4MGM2MCwwLHsweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgwYzcwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9LAotICAxNSwweDBjODAsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDBjOGYsMCx7MHg0MSwweDc2LDB4NjgsMHgwMSwweDQxLDB4NzYsMHg2YSwweDAyLDB4NDEsMHg3NiwweDZiLDB4MGEsMHhjMSwweDIwLDB4YzEsMHgyMX0sCi0gICAyLDB4MGM5ZiwwLHsweGMxLDB4MmZ9LAotICAgNCwweDBjYTEsMCx7MHg0MSwweDc2LDB4MjMsMHgwMH0sCi0gIDE2LDB4MGNhNSwwLHsweDQxLDB4NzIsMHgwMSwweDAxLDB4NDUsMHg3MiwweDA1LDB4MDAsMHgwMiwweGM5LDB4MDAsMHgwMCwweDQ1LDB4NzIsMHgwYSwweDAwfSwKLSAgMTYsMHgwY2I1LDAsezB4MDEsMHgwMiwweDAzLDB4MDQsMHg0ZCwweDcyLDB4MGYsMHhkMSwweDAwLDB4ZDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBjYzUsMCx7MHgyOCwweDI4LDB4MDksMHgwMCwweDRkLDB4NzIsMHgxYywweDAxLDB4MDAsMHgwMSwweDAyLDB4MDMsMHgwNCwweDA1LDB4MDYsMHgwN30sCi0gIDE2LDB4MGNkNSwwLHsweDA4LDB4MDksMHgwYSwweDBiLDB4NDEsMHg3MiwweDJlLDB4MjIsMHg0MSwweDcyLDB4MmYsMHgyMywweDQxLDB4NzIsMHgzMCwweDIwfSwKLSAgMTYsMHgwY2U1LDAsezB4NDEsMHg3MiwweDMxLDB4MjEsMHg2MiwweGQyLDB4NzIsMHgzYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBjZjUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQwNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDE1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkMjUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQzNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDQ1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkNTUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQ2NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDc1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9LAotICAxNiwweDBkODUsMCx7MHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMX0sCi0gIDE2LDB4MGQ5NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfSwKLSAgMTYsMHgwZGE1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9LAotICAxNiwweDBkYjUsMCx7MHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMn0sCi0gIDE2LDB4MGRjNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfSwKLSAgMTYsMHgwZGQ1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9LAotICAxNiwweDBkZTUsMCx7MHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMn0sCi0gIDE2LDB4MGRmNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfSwKLSAgMTYsMHgwZTA1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9LAotICAxNiwweDBlMTUsMCx7MHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwM30sCi0gIDE2LDB4MGUyNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfSwKLSAgMTYsMHgwZTM1LDAsezB4MDMsMHgwMywweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9LAotICAxNiwweDBlNDUsMCx7MHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNH0sCi0gIDE2LDB4MGU1NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fSwKLSAgMTYsMHgwZTY1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9LAotICAxNiwweDBlNzUsMCx7MHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNX0sCi0gIDE2LDB4MGU4NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fSwKLSAgMTYsMHgwZTk1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9LAotICAxNiwweDBlYTUsMCx7MHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDYsMHgwNn0sCi0gIDE2LDB4MGViNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fSwKLSAgMTYsMHgwZWM1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9LAotICAxNiwweDBlZDUsMCx7MHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNn0sCi0gIDE2LDB4MGVlNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNywweDA3LDB4MDcsMHgwOCwweDA4fSwKLSAgMTYsMHgwZWY1LDAsezB4MDgsMHgwOSwweDA5LDB4MDksMHgwYSwweDBhLDB4MGEsMHgwYiwweDBiLDB4MGIsMHgwYywweDBjLDB4MGMsMHgwZCwweDBkLDB4MGR9LAotICAxNiwweDBmMDUsMCx7MHgwZSwweDBlLDB4MGUsMHgwZiwweDBmLDB4MGYsMHgxMCwweDEwLDB4MTAsMHgxMSwweDExLDB4MTEsMHgxMiwweDEyLDB4MTIsMHgxM30sCi0gIDE2LDB4MGYxNSwwLHsweDEzLDB4MTMsMHgxNCwweDE0LDB4MTQsMHgxNSwweDE1LDB4MTUsMHgxNiwweDE2LDB4MTYsMHgxNywweDE3LDB4MTcsMHgxOCwweDE4fSwKLSAgMTYsMHgwZjI1LDAsezB4MTgsMHgxOSwweDE5LDB4MTksMHgxOSwweDFhLDB4MWEsMHgxYSwweDFhLDB4MWIsMHgxYiwweDFiLDB4MWIsMHgxYywweDFjLDB4MWN9LAotICAxNiwweDBmMzUsMCx7MHgxYywweDFkLDB4MWQsMHgxZCwweDFkLDB4MWUsMHgxZSwweDFlLDB4MWUsMHgxZiwweDFmLDB4MWYsMHgxZiwweDIwLDB4MjAsMHgyMH0sCi0gIDE2LDB4MGY0NSwwLHsweDIxLDB4MjEsMHgyMSwweDIyLDB4MjIsMHgyMiwweDIzLDB4MjMsMHgyNCwweDI0LDB4MjUsMHgyNSwweDI2LDB4MjYsMHgyNywweDI3fSwKLSAgMTYsMHgwZjU1LDAsezB4MjgsMHgyOCwweDI5LDB4MjksMHgyYSwweDJhLDB4MmIsMHgyYiwweDJjLDB4MmMsMHgyZCwweDJkLDB4MmUsMHgyZSwweDJmLDB4MmZ9LAotICAxNiwweDBmNjUsMCx7MHgzMCwweDMwLDB4MzEsMHgzMSwweDMyLDB4MzIsMHgzMywweDMzLDB4MzQsMHgzNCwweDM1LDB4MzUsMHgzNiwweDM2LDB4MzcsMHgzN30sCi0gIDE2LDB4MGY3NSwwLHsweDM4LDB4MzgsMHgzOSwweDM5LDB4M2EsMHgzYSwweDNiLDB4M2MsMHgzZCwweDNlLDB4M2YsMHg0MCwweDQxLDB4NDIsMHg0MywweDQ0fSwKLSAgMTYsMHgwZjg1LDAsezB4NDUsMHg0NiwweDQ3LDB4NDgsMHg0OSwweDQ5LDB4NGEsMHg0YiwweDRiLDB4NGMsMHg0ZCwweDRlLDB4NGYsMHg1MCwweDUxLDB4NTJ9LAotICAxNiwweDBmOTUsMCx7MHg1MywweDU0LDB4NTUsMHg1NSwweDU2LDB4NTYsMHg1NywweDU3LDB4NTgsMHg1YSwweDViLDB4NWQsMHg1ZSwweDVmLDB4NjEsMHg2Mn0sCi0gIDE2LDB4MGZhNSwwLHsweDYzLDB4NjQsMHg2NSwweDY2LDB4NjcsMHg2OCwweDY5LDB4NmEsMHg2YiwweDZjLDB4NmQsMHg2ZiwweDcxLDB4NzIsMHg3MywweDc0fSwKLSAgMTYsMHgwZmI1LDAsezB4NzUsMHg3NiwweDc3LDB4NzgsMHg3OSwweDdhLDB4N2IsMHg3YywweDdlLDB4ODAsMHgwMSwweDM3LDB4MDEsMHgwMSwweDM4LDB4MDB9LAotICAgMSwweDBmYzUsMCx7MHgwMH0sCi0gIDE2LDB4MGZjNiwwLHsweGU0LDB4ZmYsMHg3NCwweDQ2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDIwfSwKLSAgMTYsMHgwZmQ2LDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDRlLDB4MmYsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDBmZTYsMCx7MHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4M30sCi0gICA2LDB4MGZmNiwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY30sCi0gICAxLDB4MGZmYywwLHsweDIyfSwKLSAgIDMsMHgwZmZkLDAsezB4YzIsMHg4OSwweDMyfSwKLSAgMTYsMHgxMDAwLDAsezB4ZTQsMHg5MCwweDc2LDB4MmMsMHhmMCwweDkwLDB4NzYsMHgyYywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9LAotICAxNiwweDEwMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWQsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4MTAyMCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MmMsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgxMDMwLDAsezB4ZWYsMHhiNCwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9LAotICAxNiwweDEwNDAsMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJlLDB4ZjAsMHgyNH0sCi0gIDE2LDB4MTA1MCwwLHsweGYwLDB4NjAsMHgwYSwweDI0LDB4MGYsMHg2MCwweDAyLDB4ODEsMHg3ZCwweDEyLDB4NGIsMHhhNCwweDIyLDB4OTAsMHg3ZiwweGVkfSwKLSAgMTYsMHgxMDYwLDAsezB4ZTAsMHg2NCwweDA1LDB4NzAsMHg1MSwweDkwLDB4NzYsMHgxOCwweDc0LDB4MDUsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDF9LAotICAxNiwweDEwNzAsMCx7MHhmMCwweDkwLDB4NzYsMHgzYSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgxYywweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWIsMHhmMH0sCi0gIDE2LDB4MTA4MCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MCwweDJmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fSwKLSAgMTYsMHgxMDkwLDAsezB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmR9LAotICAxNiwweDEwYTAsMCx7MHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTBiMCwwLHsweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMSwweDkwLDB4N2YsMHhlZCwweGUwLDB4NjQsMHgwNiwweDcwLDB4NTIsMHg5MCwweDc2fSwKLSAgMTYsMHgxMGMwLDAsezB4MTgsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4MzgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDBhLDB4ZjB9LAotICAxNiwweDEwZDAsMCx7MHg5MCwweDc2LDB4MWMsMHhmMCwweDkwLDB4NzYsMHgxYiwweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MH0sCi0gIDE2LDB4MTBlMCwwLHsweDJmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgxMGYwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmQsMHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzZ9LAotICAxNiwweDExMDAsMCx7MHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMX0sCi0gIDE2LDB4MTExMCwwLHsweGU0LDB4OTAsMHg3NiwweDFlLDB4ZjAsMHg5MCwweDc2LDB4MWMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZSwweDZmfSwKLSAgMTYsMHgxMTIwLDAsezB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjB9LAotICAxNiwweDExMzAsMCx7MHgxMywweDE0LDB4NzAsMHgwMiwweDIxLDB4YmYsMHgyNCwweDAyLDB4NjAsMHgwMiwweDgxLDB4NzUsMHg5MCwweDdmLDB4YjQsMHhlMH0sCi0gIDE2LDB4MTE0MCwwLHsweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHg2YiwweDkwLDB4N2YsMHhlYSwweGUwfSwKLSAgMTYsMHgxMTUwLDAsezB4ZjQsMHg3MCwweDRhLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmZ9LAotICAxNiwweDExNjAsMCx7MHg5MCwweDc2LDB4MWIsMHhlMCwweGZkLDB4YzMsMHg5ZiwweDUwLDB4MmIsMHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYn0sCi0gIDE2LDB4MTE3MCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwfSwKLSAgMTYsMHgxMTgwLDAsezB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9LAotICAxNiwweDExOTAsMCx7MHgwNCwweGYwLDB4ODAsMHhjNywweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweGVlLDB4NzUsMHhmMH0sCi0gIDE2LDB4MTFhMCwwLHsweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwfSwKLSAgMTYsMHgxMWIwLDAsezB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9LAotICAxNiwweDExYzAsMCx7MHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NzAsMHgwMiwweDQxLDB4N2UsMHgxNCwweDcwLDB4MDIsMHg2MSwweDIzLDB4MTQsMHg3MH0sCi0gIDE2LDB4MTFkMCwwLHsweDAyLDB4NjEsMHhjOCwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg2ZCwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkfSwKLSAgMTYsMHgxMWUwLDAsezB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWJ9LAotICAxNiwweDExZjAsMCx7MHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MTIwMCwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkfSwKLSAgMTYsMHgxMjEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWR9LAotICAxNiwweDEyMjAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMH0sCi0gIDE2LDB4MTIzMCwwLHsweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwfSwKLSAgMTYsMHgxMjQwLDAsezB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWJ9LAotICAxNiwweDEyNTAsMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4MTI2MCwwLHsweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgxMjcwLDAsezB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAxNiwweDEyODAsMCx7MHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYX0sCi0gIDE2LDB4MTI5MCwwLHsweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fSwKLSAgMTYsMHgxMmEwLDAsezB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmR9LAotICAxNiwweDEyYjAsMCx7MHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4MTJjMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2fSwKLSAgMTYsMHgxMmQwLDAsezB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWZ9LAotICAxNiwweDEyZTAsMCx7MHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNX0sCi0gIDE2LDB4MTJmMCwwLHsweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgxMzAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWZ9LAotICAxNiwweDEzMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0sCi0gIDE2LDB4MTMyMCwwLHsweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2fSwKLSAgMTYsMHgxMzMwLDAsezB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTB9LAotICAxNiwweDEzNDAsMCx7MHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MTM1MCwwLHsweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSwKLSAgMTYsMHgxMzYwLDAsezB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDEzNzAsMCx7MHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MTM4MCwwLHsweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2fSwKLSAgMTYsMHgxMzkwLDAsezB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDEzYTAsMCx7MHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4MTNiMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxfSwKLSAgMTYsMHgxM2MwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTB9LAotICAxNiwweDEzZDAsMCx7MHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMH0sCi0gIDE2LDB4MTNlMCwwLHsweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgxM2YwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjV9LAotICAxNiwweDE0MDAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNX0sCi0gIDE2LDB4MTQxMCwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0fSwKLSAgMTYsMHgxNDIwLDAsezB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDR9LAotICAxNiwweDE0MzAsMCx7MHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMH0sCi0gIDE2LDB4MTQ0MCwwLHsweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwfSwKLSAgMTYsMHgxNDUwLDAsezB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDE0NjAsMCx7MHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH0sCi0gIDE2LDB4MTQ3MCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSwKLSAgIDUsMHgxNDgwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MTQ4NSwwLHsweDc0LDB4MDAsMHhmNSwweDg2LDB4OTAsMHhmZCwweGE1LDB4N2MsMHgwNSwweGEzLDB4ZTUsMHg4MiwweDQ1LDB4ODMsMHg3MCwweGY5fSwKLSAgIDEsMHgxNDk1LDAsezB4MjJ9LAotICAxNiwweDE0OTYsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4ODcsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn0sCi0gIDE2LDB4MTRhNiwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweDhkLDB4ZTAsMHhjMCwweGUwfSwKLSAgMTYsMHgxNGI2LDAsezB4OGMsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4MywweDA1LDB4ODYsMHhjMCwweDg0LDB4YzAsMHg4NSwweDdkLDB4MDB9LAotICAxNiwweDE0YzYsMCx7MHg5MCwweDdmLDB4ZTMsMHg3NCwweDdiLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweDdjLDB4MTEsMHg5MCwweDdmLDB4OTksMHhlMH0sCi0gIDE2LDB4MTRkNiwwLHsweDU0LDB4NDAsMHhkYywweDAzLDB4MDIsMHgxNCwweGYzLDB4YjQsMHgwMCwweDEzLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0MCwweGYwfSwKLSAgMTYsMHgxNGU2LDAsezB4OTAsMHg3ZiwweGU1LDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHgwMiwweDE0LDB4ZDIsMHg5MCwweDc2LDB4OTB9LAotICAxNiwweDE0ZjYsMCx7MHhlMCwweGI0LDB4MDEsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMH0sCi0gIDE2LDB4MTUwNiwwLHsweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHg1NywweGI0LDB4MDIsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwfSwKLSAgMTYsMHgxNTE2LDAsezB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHg5NiwweGI0LDB4MDMsMHgxMiwweDkwLDB4NzZ9LAotICAxNiwweDE1MjYsMCx7MHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHhlMX0sCi0gIDE2LDB4MTUzNiwwLHsweGI0LDB4MDQsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwfSwKLSAgMTYsMHgxNTQ2LDAsezB4N2YsMHg2YywweDAyLDB4MTYsMHgxMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTZ9LAotICAxNiwweDE1NTYsMCx7MHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjIsMHg3ZH0sCi0gIDE2LDB4MTU2NiwwLHsweDAyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0fSwKLSAgMTYsMHgxNTc2LDAsezB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjB9LAotICAxNiwweDE1ODYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhkNCwweDAyLDB4MTYsMHg0MH0sCi0gIDE2LDB4MTU5NiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNWE2LDAsezB4ZjAsMHhmMCwweGRkLDB4ZWMsMHg3ZCwweDAyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDE1YjYsMCx7MHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NH0sCi0gIDE2LDB4MTVjNiwwLHsweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgIDYsMHgxNWQ2LDAsezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNWRjLDAsezB4ZGQsMHhjZSwweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmYSwweDdkLDB4MDIsMHgwNSwweDg2LDB4OTB9LAotICAxNiwweDE1ZWMsMCx7MHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTVmYywwLHsweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkfSwKLSAgMTYsMHgxNjBjLDAsezB4ZGMsMHgwMiwweDE2LDB4NDAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGY4LDB4N2QsMHgwMiwweDA1LDB4ODZ9LAotICAxNiwweDE2MWMsMCx7MHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNCwweDAwLDB4MDUsMHgwNX0sCi0gIDE2LDB4MTYyYywwLHsweDg2LDB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNjNjLDAsezB4ZjAsMHhmMCwweGRkLDB4ZGEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODZ9LAotICAxNiwweDE2NGMsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZn0sCi0gICA1LDB4MTY1YywwLHsweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9LAotICAxNiwweDE2NjEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3NiwweDdjLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH0sCi0gIDE2LDB4MTY3MSwwLHsweDkwLDB4NzYsMHg3ZCwweGUwLDB4OTAsMHg3ZiwweDZmLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwfSwKLSAgIDksMHgxNjgxLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSwKLSAgMTYsMHgxNjhhLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODN9LAotICAxNiwweDE2OWEsMCx7MHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YmYsMHgwMCwweDAzLDB4MDIsMHgxN30sCi0gIDE2LDB4MTZhYSwwLHsweDAxLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHgxNmJhLDAsezB4NjIsMHhlMCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4N2Z9LAotICAxNiwweDE2Y2EsMCx7MHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4NzYsMHg4ZSwweGUwLDB4YjQsMHgwMSwweDA1LDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTZkYSwwLHsweDAyLDB4MTYsMHhmNiwweGI0LDB4MDIsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4ZWIsMHgwNSwweDg2LDB4MDIsMHgxNiwweGZifSwKLSAgMTYsMHgxNmVhLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGYsMHhmOCwweDAyLDB4MTYsMHhmYiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGZ9LAotICAxNiwweDE2ZmEsMCx7MHhmYSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwLDB4ODMsMHhkMH0sCi0gIDEyLDB4MTcwYSwwLHsweDgyLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0sCi0gIDE2LDB4MTcxNiwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4ZDEsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifSwKLSAgMTAsMHgxNzI2LDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9LAotICAxNiwweDE3MzAsMCx7MHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZTAsMHhlOCwweGMwLDB4ZTAsMHg3OCwweDc4LDB4ZTgsMHgxNCwweGY4LDB4NzAsMHhmYn0sCi0gIDEwLDB4MTc0MCwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfSwKLSAgIDcsMHgxNzRhLDAsezB4OTAsMHg3ZiwweGM1LDB4NzQsMHgwMiwweGYwLDB4MjJ9LAotICAxNiwweDE3NTEsMCx7MHg5MCwweDdlLDB4YzAsMHhlMCwweDkwLDB4NzYsMHg0NSwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHg5MCwweDc2LDB4NDQsMHhmMH0sCi0gIDE2LDB4MTc2MSwwLHsweDkwLDB4N2UsMHhjMiwweGUwLDB4OTAsMHg3NiwweDQzLDB4ZjAsMHhiNCwweDAwLDB4MDMsMHgwMiwweDE3LDB4NzgsMHg5MCwweDc2fSwKLSAgMTYsMHgxNzcxLDAsezB4MTksMHg3NCwweDAzLDB4ZjAsMHgwMiwweDE3LDB4OGUsMHg5MCwweDc2LDB4NDQsMHhlMCwweGI0LDB4YmIsMHgwOSwweDkwLDB4NzZ9LAotICAxNiwweDE3ODEsMCx7MHgxOSwweDc0LDB4MDIsMHhmMCwweDAyLDB4MTcsMHg4ZSwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg0Mn0sCi0gICAzLDB4MTc5MSwwLHsweGU0LDB4ZjAsMHgyMn0sCi0gICA0LDB4MTc5NCwwLHsweDhkLDB4MjksMHg4YiwweDJhfSwKLSAgMTYsMHgxNzk4LDAsezB4MTIsMHg0YSwweDU1LDB4ZWEsMHg0OSwweDYwLDB4NTcsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2F9LAotICAxNiwweDE3YTgsMCx7MHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweGFiLDB4MmIsMHhhYSwweDJjLDB4YTksMHgyZH0sCi0gIDE2LDB4MTdiOCwwLHsweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweGZmLDB4NjQsMHgwNCwweDYwLDB4MDUsMHhlZiwweDY0LDB4MDUsMHg3MCwweDJlfSwKLSAgMTYsMHgxN2M4LDAsezB4ZWYsMHhiNCwweDA0LDB4MTUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDM2LDB4YWIsMHg2NSwweDI5LDB4NzAsMHgwYiwweDkwLDB4MDB9LAotICAxNiwweDE3ZDgsMCx7MHgwMywweDEyLDB4MzYsMHhhYiwweDY1LDB4MmEsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZn0sCi0gIDE2LDB4MTdlOCwwLHsweGVlLDB4M2EsMHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweDgwLDB4YmMsMHg3YiwweDAwfSwKLSAgIDQsMHgxN2Y4LDAsezB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDE3ZmMsMCx7MHgyMn0sCi0gICAzLDB4MTdmZCwwLHsweGMyLDB4OGIsMHgzMn0sCi0gIDE2LDB4MTgwMCwwLHsweDkwLDB4NzYsMHg5MCwweGUwLDB4MTQsMHg2MCwweDM3LDB4MTQsMHg3MCwweDAyLDB4MDEsMHhkOCwweDE0LDB4NzAsMHgwMiwweDIxfSwKLSAgMTYsMHgxODEwLDAsezB4NzIsMHgxNCwweDcwLDB4MDIsMHg0MSwweDNiLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg2MSwweDAzLDB4OTAsMHg3ZiwweGZjLDB4NzR9LAotICAxNiwweDE4MjAsMCx7MHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg1NH0sCi0gIDE2LDB4MTgzMCwwLHsweDA1LDB4ZjAsMHg5MCwweDgwLDB4MDEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDFhLDB4ZjAsMHhjMiwweDJlLDB4MjIsMHg5MCwweDc2fSwKLSAgMTYsMHgxODQwLDAsezB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9LAotICAxNiwweDE4NTAsMCx7MHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MH0sCi0gIDE2LDB4MTg2MCwwLHsweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgyMiwweDkwfSwKLSAgMTYsMHgxODcwLDAsezB4N2YsMHhmYywweDc0LDB4NzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9LAotICAxNiwweDE4ODAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH0sCi0gIDE2LDB4MTg5MCwwLHsweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjIsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDY4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjfSwKLSAgMTYsMHgxOGEwLDAsezB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTB9LAotICAxNiwweDE4YjAsMCx7MHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZX0sCi0gIDE2LDB4MThjMCwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZifSwKLSAgMTYsMHgxOGQwLDAsezB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmZSwweGYwLDB4NDR9LAotICAxNiwweDE4ZTAsMCx7MHgwMiwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MThmMCwwLHsweGZiLDB4ZjAsMHg5MCwweDc2LDB4MWEsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxfSwKLSAgMTYsMHgxOTAwLDAsezB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHgzMCwweGYwLDB4OTB9LAotICAxNiwweDE5MTAsMCx7MHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MTkyMCwwLHsweGZkLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyMiwweDkwfSwKLSAgMTYsMHgxOTMwLDAsezB4N2YsMHhmYywweDc0LDB4MWMsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9LAotICAxNiwweDE5NDAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH0sCi0gIDE2LDB4MTk1MCwwLHsweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3fSwKLSAgMTYsMHgxOTYwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDJ9LAotICAxNiwweDE5NzAsMCx7MHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg0NCwweDA4LDB4ZjAsMHgzMH0sCi0gIDE2LDB4MTk4MCwwLHsweDNlLDB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwfSwKLSAgMTYsMHgxOTkwLDAsezB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzZ9LAotICAxNiwweDE5YTAsMCx7MHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NH0sCi0gIDE2LDB4MTliMCwwLHsweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJiLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0fSwKLSAgMTYsMHgxOWMwLDAsezB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTB9LAotICAxNiwweDE5ZDAsMCx7MHg3ZiwweGZjLDB4NzQsMHhjOCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZn0sCi0gIDE2LDB4MTllMCwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwfSwKLSAgMTYsMHgxOWYwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4OTgsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDFhMDAsMCx7MHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4NWYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZH0sCi0gIDE2LDB4MWExMCwwLHsweGYwLDB4NDQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5fSwKLSAgMTYsMHgxYTIwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjB9LAotICAxNiwweDFhMzAsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDIsMHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MWE0MCwwLHsweGZlLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg0NCwweDA4LDB4ZjAsMHgzMCwweDNlLDB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwfSwKLSAgMTYsMHgxYTUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9LAotICAxNiwweDFhNjAsMCx7MHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MH0sCi0gIDE2LDB4MWE3MCwwLHsweDdmLDB4ZmMsMHg3NCwweGI0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJifSwKLSAgMTYsMHgxYTgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9LAotICAxNiwweDFhOTAsMCx7MHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhiMCwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MWFhMCwwLHsweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAyfSwKLSAgMTYsMHgxYWIwLDAsezB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDN9LAotICAxNiwweDFhYzAsMCx7MHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4Zn0sCi0gIDE2LDB4MWFkMCwwLHsweDc0LDB4NWYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NDQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDc2fSwKLSAgMTYsMHgxYWUwLDAsezB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjB9LAotICAxNiwweDFhZjAsMCx7MHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMn0sCi0gICA0LDB4MWIwMCwwLHsweGYwLDB4ZDIsMHgyZSwweDIyfSwKLSAgMTYsMHgxYjA0LDAsezB4MzAsMHgyYywweDM4LDB4YzIsMHgyYywweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2N9LAotICAxNiwweDFiMTQsMCx7MHg3NCwweGMwLDB4ZjAsMHhhMywweDc0LDB4MTQsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGQsMHhlNH0sCi0gIDE2LDB4MWIyNCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweDEwLDB4ZjAsMHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwMywweDBifSwKLSAgMTIsMHgxYjM0LDAsezB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHgxOCwweGYwLDB4YTMsMHhmMCwweDIyfSwKLSAgMTYsMHgxYjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2MwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2YwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWUwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWUzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNCwweDFlYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmMmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gICAyLDB4MWYzZSwwLHsweDAwLDB4MDB9LAotICAxNiwweDFmNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWY1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWY4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjAxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjEwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjEzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjIyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE0LDB4MjM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzN2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzYWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2NlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2ZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0ZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjUwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjUzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjZiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNmNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE0LDB4MjZlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjcwYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzFjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3MmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjczYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzRjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3NWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc2YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzdjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3OGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc5YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyN2FjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3YmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjdjYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyN2RjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3ZWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gICA1LDB4MjdmYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MjJ9LAotICAxNiwweDI4MDEsMCx7MHhjMiwweDIwLDB4YzIsMHgyMSwweGMyLDB4MmEsMHg5MCwweDdmLDB4ZTgsMHhlMCwweDEyLDB4MzcsMHhmOSwweDI4LDB4MzAsMHgwMH0sCi0gIDE2LDB4MjgxMSwwLHsweDI4LDB4OGMsMHgwMSwweDI4LDB4YTIsMHgwMiwweDJhLDB4MWYsMHgyMSwweDJhLDB4NmEsMHgyMiwweDI5LDB4M2QsMHg4MCwweDI5fSwKLSAgMTYsMHgyODIxLDAsezB4N2QsMHg4MSwweDI5LDB4ZDEsMHg4MiwweDJhLDB4ODQsMHhhMSwweDJhLDB4YmEsMHhhMiwweDAwLDB4MDAsMHgyYSwweGJmLDB4OTB9LAotICAxNiwweDI4MzEsMCx7MHg3ZiwweGU5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgyNCwweGZlLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDNiLDB4MjQsMHhmY30sCi0gIDE2LDB4Mjg0MSwwLHsweDcwLDB4NDAsMHgxMiwweDNmLDB4ZTUsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFkLDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmfSwKLSAgMTYsMHgyODUxLDAsezB4ZWEsMHhlMCwweGI0LDB4MDEsMHgwNCwweGMyLDB4MjIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9LAotICAxNiwweDI4NjEsMCx7MHg0MSwweGNiLDB4MTIsMHg0ZSwweDFmLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhkMiwweDIyLDB4NDEsMHhjYn0sCi0gIDE2LDB4Mjg3MSwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgMTYsMHgyODgxLDAsezB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjR9LAotICAxNiwweDI4OTEsMCx7MHhmNSwweDcwLDB4MDUsMHgxMiwweDQ4LDB4NjMsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MX0sCi0gIDE2LDB4MjhhMSwwLHsweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZkLDB4NjAsMHg1NCwweDI0LDB4MDIsMHg2MCwweDAyLDB4MjEsMHgzNCwweDEyfSwKLSAgMTYsMHgyOGIxLDAsezB4NGUsMHgxZCwweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVjLDB4ZTB9LAotICAxNiwweDI4YzEsMCx7MHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNH0sCi0gIDE2LDB4MjhkMSwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhlYywweGUwLDB4NTQsMHg4MCwweGZmfSwKLSAgMTYsMHgyOGUxLDAsezB4MTMsMHgxMywweDEzLDB4NTQsMHgxZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHg5MCwweDdmLDB4ZDcsMHhmMCwweGUwLDB4NDR9LAotICAxNiwweDI4ZjEsMCx7MHgyMCwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDEyLDB4NGUsMHgxZn0sCi0gIDE2LDB4MjkwMSwwLHsweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDIwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0fSwKLSAgMTYsMHgyOTExLDAsezB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNCwweGY1LDB4ODJ9LAotICAxNiwweDI5MjEsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4MjkzMSwwLHsweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwfSwKLSAgMTYsMHgyOTQxLDAsezB4NjAsMHgxMiwweDI0LDB4ZjgsMHg2MCwweDA5LDB4MjQsMHgwMiwweDcwLDB4MjksMHgxMiwweDQzLDB4ZTcsMHg0MSwweGNiLDB4MTJ9LAotICAxNiwweDI5NTEsMCx7MHg0ZCwweGNhLDB4NDEsMHhjYiwweDEyLDB4NGUsMHgxYiwweGEyLDB4MjIsMHhlNCwweDMzLDB4ZmYsMHgyNSwweGUwLDB4ZmYsMHhhMn0sCi0gIDE2LDB4Mjk2MSwwLHsweDIzLDB4ZTQsMHgzMywweDRmLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyfSwKLSAgMTYsMHgyOTcxLDAsezB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTB9LAotICAxNiwweDI5ODEsMCx7MHg2MCwweDMzLDB4MjQsMHhmNiwweDYwLDB4MmEsMHgyNCwweDA0LDB4NzAsMHgzZCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhkZX0sCi0gIDE2LDB4Mjk5MSwwLHsweDYwLDB4MGMsMHgwNCwweDcwLDB4MTIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmfSwKLSAgMTYsMHgyOWExLDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2J9LAotICAxNiwweDI5YjEsMCx7MHgxMiwweDQ3LDB4NDUsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFiLDB4ZTQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MjljMSwwLHsweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNifSwKLSAgMTYsMHgyOWQxLDAsezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGY0LDB4NjAsMHgzNCwweDI0LDB4MGMsMHg3MCwweDM5LDB4MTIsMHg0ZSwweDFiLDB4OTB9LAotICAxNiwweDI5ZTEsMCx7MHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNX0sCi0gIDE2LDB4MjlmMSwwLHsweGUwLDB4MjQsMHhiNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGZkLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHgyYTAxLDAsezB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTB9LAotICAxNiwweDJhMTEsMCx7MHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MmEyMSwwLHsweGU5LDB4ZTAsMHgyNCwweGY2LDB4NjAsMHgxMiwweDE0LDB4NjAsMHgxYSwweDI0LDB4MDIsMHg3MCwweDFkLDB4ZDIsMHgyMCwweDkwfSwKLSAgMTYsMHgyYTMxLDAsezB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyLDB4MjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9LAotICAxNiwweDJhNDEsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MjAsMHgxOCwweDkwLDB4N2YsMHhlZX0sCi0gIDE2LDB4MmE1MSwwLHsweGUwLDB4NzAsMHgwNCwweGEzLDB4ZTAsMHg2MCwweDBiLDB4ZDIsMHgyOSwweGQyLDB4MjcsMHgxMiwweDE3LDB4NGEsMHhkMiwweDJhfSwKLSAgMTYsMHgyYTYxLDAsezB4ODAsMHgwMywweDEyLDB4MDgsMHgwMCwweGMyLDB4MjAsMHg4MCwweDYxLDB4OTAsMHg3ZiwweGVlLDB4ZTAsMHg3MCwweDA0LDB4YTN9LAotICAxNiwweDJhNzEsMCx7MHhlMCwweDYwLDB4MGIsMHhkMiwweDI5LDB4ZDIsMHgyOCwweDEyLDB4MTcsMHg0YSwweGQyLDB4MmEsMHg4MCwweDRjLDB4MTIsMHgzOH0sCi0gIDE2LDB4MmE4MSwwLHsweDc0LDB4ODAsMHg0NywweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWEsMHgyNCwweDAyfSwKLSAgMTYsMHgyYTkxLDAsezB4NzAsMHgxZCwweGQyLDB4MjEsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTIsMHhkMiwweDIxLDB4OTB9LAotICAxNiwweDJhYTEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMH0sCi0gIDE2LDB4MmFiMSwwLHsweDIxLDB4MDMsMHgxMiwweDEwLDB4MDAsMHhjMiwweDIxLDB4ODAsMHgxMSwweDEyLDB4MmEsMHhkNiwweDgwLDB4MGMsMHgxMiwweDRlfSwKLSAgMTYsMHgyYWMxLDAsezB4MjEsMHg1MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMCwweDJhLDB4MDcsMHg5MCwweDdmLDB4YjR9LAotICAgNSwweDJhZDEsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDIyfSwKLSAgMTYsMHgyYWQ2LDAsezB4ZTQsMHg5MCwweDc2LDB4MjcsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDJhZTYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4MmFmNiwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjcsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgyYjA2LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDJiMTYsMCx7MHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDI4LDB4ZjAsMHgyNH0sCi0gIDE2LDB4MmIyNiwwLHsweDlmLDB4NzAsMHgwMiwweGExLDB4NzQsMHgyNCwweDIxLDB4NjAsMHgwMiwweGExLDB4YTEsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fSwKLSAgMTYsMHgyYjM2LDAsezB4N2UsMHg3MCwweDAyLDB4NjEsMHhmYywweDE0LDB4NzAsMHgwMiwweDgxLDB4YjUsMHgyNCwweDAyLDB4NjAsMHgwMiwweGExLDB4NmN9LAotICAxNiwweDJiNDYsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmY30sCi0gIDE2LDB4MmI1NiwwLHsweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4fSwKLSAgMTYsMHgyYjY2LDAsezB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWN9LAotICAxNiwweDJiNzYsMCx7MHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMH0sCi0gIDE2LDB4MmI4NiwwLHsweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkfSwKLSAgMTYsMHgyYjk2LDAsezB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTJ9LAotICAxNiwweDJiYTYsMCx7MHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhM30sCi0gIDE2LDB4MmJiNiwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fSwKLSAgMTYsMHgyYmM2LDAsezB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmV9LAotICAxNiwweDJiZDYsMCx7MHhhMywweGUwLDB4ZmYsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg2MH0sCi0gIDE2LDB4MmJlNiwwLHsweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfSwKLSAgMTYsMHgyYmY2LDAsezB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDd9LAotICAxNiwweDJjMDYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhM30sCi0gIDE2LDB4MmMxNiwwLHsweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzfSwKLSAgMTYsMHgyYzI2LDAsezB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjV9LAotICAxNiwweDJjMzYsMCx7MHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MmM0NiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdifSwKLSAgMTYsMHgyYzU2LDAsezB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDJjNjYsMCx7MHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMH0sCi0gIDE2LDB4MmM3NiwwLHsweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgyYzg2LDAsezB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHgwMCwweDdhLDB4Nzd9LAotICAxNiwweDJjOTYsMCx7MHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NjAsMHgwMiwweGExLDB4YTgsMHg5MCwweDdmLDB4MDAsMHhmMH0sCi0gIDE2LDB4MmNhNiwwLHsweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwfSwKLSAgMTYsMHgyY2I2LDAsezB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAxNiwweDJjYzYsMCx7MHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OX0sCi0gIDE2LDB4MmNkNiwwLHsweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzfSwKLSAgMTYsMHgyY2U2LDAsezB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTB9LAotICAxNiwweDJjZjYsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhM30sCi0gIDE2LDB4MmQwNiwwLHsweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwfSwKLSAgMTYsMHgyZDE2LDAsezB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjB9LAotICAxNiwweDJkMjYsMCx7MHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZn0sCi0gIDE2LDB4MmQzNiwwLHsweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzfSwKLSAgMTYsMHgyZDQ2LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4Mzd9LAotICAxNiwweDJkNTYsMCx7MHhhYiwweDcwLDB4NGYsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MmQ2NiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgMTYsMHgyZDc2LDAsezB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDFlLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGZ9LAotICAxNiwweDJkODYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0sCi0gIDE2LDB4MmQ5NiwwLHsweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSwKLSAgIDMsMHgyZGE2LDAsezB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgyZGE5LDAsezB4ZTQsMHg5MCwweDc2LDB4MzYsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDJkYjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4MmRjOSwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1fSwKLSAgMTYsMHgyZGQ5LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmZ9LAotICAxNiwweDJkZTksMCx7MHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMH0sCi0gIDE2LDB4MmRmOSwwLHsweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA1fSwKLSAgMTYsMHgyZTA5LDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTR9LAotICAxNiwweDJlMTksMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNX0sCi0gIDE2LDB4MmUyOSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfSwKLSAgMTYsMHgyZTM5LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjR9LAotICAxNiwweDJlNDksMCx7MHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH0sCi0gIDE2LDB4MmU1OSwwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fSwKLSAgMTYsMHgyZTY5LDAsezB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAxNiwweDJlNzksMCx7MHg3NCwweDAzLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MmU4OSwwLHsweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fSwKLSAgMTYsMHgyZTk5LDAsezB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTR9LAotICAxNiwweDJlYTksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA2LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MmViOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwfSwKLSAgMTYsMHgyZWM5LDAsezB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDJlZDksMCx7MHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4MmVlOSwwLHsweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgyZWY5LDAsezB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDN9LAotICAxNiwweDJmMDksMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMH0sCi0gIDE2LDB4MmYxOSwwLHsweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA4LDB4ZjAsMHhlZiwweDc1fSwKLSAgMTYsMHgyZjI5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4OTB9LAotICAxNiwweDJmMzksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MmY0OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyfSwKLSAgMTYsMHgyZjU5LDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MGEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjV9LAotICAxNiwweDJmNjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMH0sCi0gIDE2LDB4MmY3OSwwLHsweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyfSwKLSAgMTYsMHgyZjg5LDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDJmOTksMCx7MHgwOSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MmZhOSwwLHsweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fSwKLSAgMTYsMHgyZmI5LDAsezB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTR9LAotICAxNiwweDJmYzksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA3LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE0LDB4MmZkOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4MjJ9LAotICAxNiwweDJmZTcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDI2LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0sCi0gICA4LDB4MmZmNywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAgMSwweDJmZmYsMCx7MHgzMn0sCi0gIDE2LDB4MzAwMCwwLHsweDkwLDB4N2YsMHhiNiwweGUwLDB4MjAsMHhlMSwweDAyLDB4YzIsMHgzZCwweGQyLDB4MzYsMHgyMCwweDM2LDB4MDIsMHg0MSwweDZlfSwKLSAgMTYsMHgzMDEwLDAsezB4MzAsMHgzZCwweDAyLDB4NDEsMHg2ZSwweDkwLDB4ODAsMHgwNywweGUwLDB4NjAsMHgwNCwweGQyLDB4MzYsMHg4MCwweDAyLDB4YzJ9LAotICAxNiwweDMwMjAsMCx7MHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4MmUsMHhkMiwweDM1LDB4ZTQsMHhmNSwweDFhLDB4OTAsMHg4MCwweDA0LDB4ZTAsMHhmNX0sCi0gIDE2LDB4MzAzMCwwLHsweDE5LDB4NzQsMHgwOCwweDI1LDB4MGUsMHhmOCwweGE2LDB4MTksMHg4NSwweDE5LDB4MTgsMHhlNSwweDE4LDB4MjAsMHhlNywweDA0fSwKLSAgMTYsMHgzMDQwLDAsezB4ZDIsMHgzOCwweDgwLDB4MDIsMHhjMiwweDM4LDB4MzAsMHgzOCwweDAyLDB4MjEsMHhkNCwweGU0LDB4ZjUsMHgxNiwweGU1LDB4MTl9LAotICAxNiwweDMwNTAsMCx7MHhiNCwweGYwLDB4MGMsMHhkMiwweDM5LDB4NzUsMHgwOCwweDA0LDB4NzUsMHgwOSwweGYwLDB4MDUsMHgwZSwweDgwLDB4MDIsMHgwNX0sCi0gIDE2LDB4MzA2MCwwLHsweDE2LDB4ZTUsMHgxOSwweDY0LDB4ZjcsMHg3MCwweDNkLDB4YzIsMHgzOSwweGU1LDB4MGUsMHgyNCwweGZlLDB4NjAsMHgxNywweDE0fSwKLSAgMTYsMHgzMDcwLDAsezB4NjAsMHgyMiwweDI0LDB4MDMsMHg3MCwweDI5LDB4NzUsMHgwOCwweDA1LDB4NzUsMHgwOSwweGY3LDB4ZTQsMHhmNSwweDBhLDB4ZjV9LAotICAxNiwweDMwODAsMCx7MHgwYiwweDc1LDB4MGUsMHgwNCwweDgwLDB4MjAsMHg3NSwweDA4LDB4MDYsMHg3NSwweDBhLDB4ZjcsMHhlNCwweGY1LDB4MGIsMHg3NX0sCi0gIDE2LDB4MzA5MCwwLHsweDBlLDB4MDQsMHg4MCwweDEyLDB4NzUsMHgwOCwweDA3LDB4NzUsMHgwYiwweGY3LDB4NzUsMHgwZSwweDA0LDB4ODAsMHgwNywweDEyfSwKLSAgMTYsMHgzMGEwLDAsezB4NGQsMHhkYSwweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxOSwweDU0LDB4ZjgsMHg2NCwweGY4LDB4NzAsMHgzYiwweGMyLDB4MzV9LAotICAxNiwweDMwYjAsMCx7MHhlNSwweDE5LDB4MjQsMHgwNywweDYwLDB4MGMsMHgyNCwweGZjLDB4NjAsMHgwOCwweDI0LDB4MDUsMHgyNCwweGY4LDB4NTAsMHgwNn0sCi0gIDE2LDB4MzBjMCwwLHsweDgwLDB4MDgsMHhkMiwweDNhLDB4ODAsMHgwNiwweGMyLDB4M2EsMHg4MCwweDAyLDB4ZDIsMHgzYSwweDc1LDB4MWEsMHgwMSwweDIwfSwKLSAgMTYsMHgzMGQwLDAsezB4M2EsMHgxOSwweDkwLDB4N2UsMHg4MCwweDc0LDB4MGYsMHhmMCwweGEzLDB4ZTUsMHgxOSwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDMwZTAsMCx7MHhmMCwweDkwLDB4N2YsMHhiNywweDc0LDB4MDQsMHhmMCwweDgwLDB4MDIsMHgwNSwweDE2LDB4MjAsMHgzOSwweDZkLDB4ZTUsMHgxOX0sCi0gIDE2LDB4MzBmMCwwLHsweDY0LDB4ZjcsMHg2MCwweDY3LDB4ZTUsMHgxYSwweDcwLDB4NjMsMHhlNSwweDE4LDB4NTQsMHhmMCwweDY0LDB4ZjAsMHg3MCwweDU5fSwKLSAgMTYsMHgzMTAwLDAsezB4ODUsMHgxOCwweDE5LDB4ZjUsMHgwZSwweGU1LDB4MTksMHgyNCwweDBmLDB4NjAsMHgxYiwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MjR9LAotICAxNiwweDMxMTAsMCx7MHhmZCwweDYwLDB4MjIsMHgxNCwweDYwLDB4MWYsMHgyNCwweDA1LDB4NzAsMHgyZiwweDc1LDB4MDgsMHgwMywweDA1LDB4MGUsMHg4NX0sCi0gIDE2LDB4MzEyMCwwLHsweDE4LDB4MDksMHhkMiwweDM3LDB4ODAsMHgyOCwweDc1LDB4MDgsMHgwMiwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHg3NSwweDE0fSwKLSAgMTYsMHgzMTMwLDAsezB4MDEsMHhkMiwweDM3LDB4ODAsMHgxOSwweDc1LDB4MDgsMHgwNSwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhlNCwweGY1LDB4MGF9LAotICAxNiwweDMxNDAsMCx7MHhmNSwweDBiLDB4NzUsMHgwZSwweDAzLDB4ZDIsMHgzNywweDgwLDB4MDUsMHgxMiwweDRkLDB4ZGEsMHhjMiwweDM1LDB4MzAsMHgzNX0sCi0gIDE2LDB4MzE1MCwwLHsweDBhLDB4ODUsMHgwOCwweDEzLDB4ODUsMHgxOCwweDEyLDB4ODAsMHgwMiwweDA1LDB4MTYsMHg4NSwweDE4LDB4MTksMHhlNSwweDE2fSwKLSAgMTYsMHgzMTYwLDAsezB4NjQsMHgwNCwweDcwLDB4NjIsMHhmNSwweDBlLDB4ZTUsMHgxOSwweDU0LDB4ZjAsMHhmNSwweDE5LDB4ZjUsMHgxNSwweDg1LDB4MTh9LAotICAxNiwweDMxNzAsMCx7MHgxOSwweGU1LDB4MTUsMHgyNCwweDcwLDB4NjAsMHgxOCwweDI0LDB4ZjAsMHg2MCwweDE0LDB4MjQsMHhmMCwweDYwLDB4MTAsMHgyNH0sCi0gIDE2LDB4MzE4MCwwLHsweGYwLDB4NjAsMHgxZSwweDI0LDB4ZjAsMHg2MCwweDFhLDB4MjQsMHhmMCwweDYwLDB4MDQsMHgyNCwweDYwLDB4NzAsMHgyNywweGU1fSwKLSAgMTYsMHgzMTkwLDAsezB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhkMiwweDM3LDB4ODB9LAotICAxNiwweDMxYTAsMCx7MHgxYSwweGU1LDB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHg3NX0sCi0gIDE2LDB4MzFiMCwwLHsweDE0LDB4MDEsMHhkMiwweDM3LDB4ODAsMHgwNSwweDEyLDB4NGQsMHhkYSwweGMyLDB4MzUsMHgzMCwweDM1LDB4MGEsMHg4NSwweDE5fSwKLSAgMTYsMHgzMWMwLDAsezB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweGU1LDB4MTYsMHhkMywweDk0LDB4MDUsMHg0MCwweDU3LDB4MTJ9LAotICAxNiwweDMxZDAsMCx7MHg0ZCwweGRhLDB4ODAsMHg1MiwweDMwLDB4MzksMHgxNywweGU1LDB4MGUsMHg3MCwweDBhLDB4ODUsMHgwOCwweDA5LDB4NzUsMHgwOH0sCi0gIDE2LDB4MzFlMCwwLHsweDA0LDB4MDUsMHgwZSwweDgwLDB4NDEsMHg3NCwweDA4LDB4MjUsMHgwZSwweGY4LDB4YTYsMHgxOSwweDgwLDB4MzgsMHgyMCwweDM3fSwKLSAgMTYsMHgzMWYwLDAsezB4MmEsMHhlNSwweDBlLDB4YjQsMHgwMSwweDBmLDB4ODUsMHgwOCwweDBhLDB4ODUsMHgwOSwweDBiLDB4ODUsMHgxMywweDA4LDB4ODV9LAotICAxNiwweDMyMDAsMCx7MHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ZTUsMHgxNCwweGI0LDB4MDEsMHgxYywweDg1LDB4MDgsMHgwYSwweGU0LDB4ZjUsMHgwYn0sCi0gIDE2LDB4MzIxMCwwLHsweDg1LDB4MTMsMHgwOCwweDg1LDB4MTIsMHgwOSwweDc1LDB4MGUsMHgwNCwweDgwLDB4MGIsMHhlNSwweDE0LDB4YjQsMHgwMSwweDA2fSwKLSAgMTYsMHgzMjIwLDAsezB4ZTQsMHhmNSwweDBiLDB4NzUsMHgwZSwweDA0LDB4ZTQsMHhmNSwweDFhLDB4MzAsMHgzNSwweDAyLDB4MDUsMHgwZSwweGU1LDB4MGV9LAotICAxNiwweDMyMzAsMCx7MHhkMywweDk0LDB4MDMsMHg1MCwweDAyLDB4MDEsMHgwYiwweGMyLDB4MzcsMHhlNCwweGY1LDB4MGUsMHhmNSwweDEwLDB4YzIsMHgzNn0sCi0gIDE2LDB4MzI0MCwwLHsweGQyLDB4M2QsMHhmNSwweDE0LDB4NzQsMHgwOCwweDI1LDB4MTAsMHhmOCwweGU2LDB4ZmYsMHg3NCwweDgwLDB4MjUsMHgxMCwweGY1fSwKLSAgMTYsMHgzMjUwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MDgsMHgyNSwweDEwLDB4ZjgsMHhlNCwweGY2LDB4MDV9LAotICAxNSwweDMyNjAsMCx7MHgxMCwweGU1LDB4MTAsMHhiNCwweDA0LDB4ZGUsMHg5MCwweDdmLDB4YjcsMHg3NCwweDA0LDB4ZjAsMHgwMSwweDBiLDB4MjJ9LAotICAxNiwweDMyNmYsMCx7MHg5MCwweDc2LDB4MTgsMHhlMCwweGZmLDB4NjQsMHgwNSwweDcwLDB4NDIsMHg5MCwweDc1LDB4YWIsMHhlMCwweGI0LDB4MDEsMHgxOX0sCi0gIDE2LDB4MzI3ZiwwLHsweDkwLDB4NzIsMHgzNywweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MCwweDgwLDB4MzEsMHhmMCwweDkwfSwKLSAgMTYsMHgzMjhmLDAsezB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHg4MCwweDIyLDB4ZTQsMHg5MCwweDcyLDB4MzcsMHhmMCwweDkwLDB4NzV9LAotICAxNiwweDMyOWYsMCx7MHhhZCwweGUwLDB4OTAsMHg3MiwweDJiLDB4ZjAsMHhlMCwweDI0LDB4ODAsMHhmMCwweGUwLDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MzJhZiwwLHsweDgwLDB4MzEsMHhmMCwweDkwLDB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHhlZiwweDY0LDB4MDYsMHg2MCwweDAyfSwKLSAgMTYsMHgzMmJmLDAsezB4ODEsMHg5OSwweDkwLDB4NzIsMHgzOSwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmYsMHgyNCwweGZlLDB4OTB9LAotICAxNiwweDMyY2YsMCx7MHg3MiwweDA0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MzJkZiwwLHsweDgzLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg1NCwweDkwLDB4NzIsMHgzNiwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZmfSwKLSAgMTYsMHgzMmVmLDAsezB4MjQsMHhmZCwweDYwLDB4MjgsMHgyNCwweGZlLDB4NjAsMHgyNCwweDI0LDB4MDMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MWN9LAotICAxNiwweDMyZmYsMCx7MHg4MSwweDhjLDB4NzQsMHgyMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzQsMHgyOH0sCi0gIDE2LDB4MzMwZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweDkwLDB4NzIsMHgwNCwweGUwfSwKLSAgMTYsMHgzMzFmLDAsezB4ZmYsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzQsMHgzOCwweDJmLDB4ZjV9LAotICAxNiwweDMzMmYsMCx7MHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweGU0LDB4OTAsMHg3MiwweDM2LDB4ZjAsMHg5MH0sCi0gIDE2LDB4MzMzZiwwLHsweDcyLDB4MzksMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgzMzRmLDAsezB4ZTAsMHhmZiwweDdlLDB4MDAsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4NzAsMHgwNiwweDkwLDB4NzJ9LAotICAxNiwweDMzNWYsMCx7MHgwMiwweDc0LDB4M2IsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MH0sCi0gIDE2LDB4MzM2ZiwwLHsweDA0LDB4OTAsMHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweDgxLDB4MzUsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwfSwKLSAgMTYsMHgzMzdmLDAsezB4MDIsMHg4MSwweDM1LDB4ZWYsMHhmOCwweGU0LDB4OTAsMHg3NSwweDBkLDB4ZjAsMHhlOCwweDkwLDB4NzUsMHgwYywweGYwLDB4OTB9LAotICAxNiwweDMzOGYsMCx7MHg3MiwweDM0LDB4ZTAsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MzM5ZiwwLHsweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwfSwKLSAgMTYsMHgzM2FmLDAsezB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweDdiLDB4ZDYsMHg3YSwweGE1LDB4Zjl9LAotICAxNiwweDMzYmYsMCx7MHhmOCwweGQzLDB4MTIsMHgzNywweDk1LDB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNn0sCi0gIDE2LDB4MzNjZiwwLHsweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwfSwKLSAgMTYsMHgzM2RmLDAsezB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNSwweGNlLDB4YTIsMHhlNywweDEzLDB4Y2UsMHgxMywweGQ4LDB4ZjgsMHhmZiwweDkwLDB4NzV9LAotICAxNiwweDMzZWYsMCx7MHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NH0sCi0gIDE2LDB4MzNmZiwwLHsweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTQsMHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0fSwKLSAgMTYsMHgzNDBmLDAsezB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDQsMHhlNCwweGYwLDB4YTN9LAotICAxNiwweDM0MWYsMCx7MHhmMCwweDkwLDB4NzIsMHgyYywweGUwLDB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNX0sCi0gIDE2LDB4MzQyZiwwLHsweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0fSwKLSAgMTYsMHgzNDNmLDAsezB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwMywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgyMSwweDgwLDB4NDAsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM0NGYsMCx7MHhlMCwweGZlLDB4NzQsMHgyMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOH0sCi0gIDE2LDB4MzQ1ZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwfSwKLSAgMTYsMHgzNDZmLDAsezB4ZmYsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZlLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWZ9LAotICAxNiwweDM0N2YsMCx7MHhmMCwweDc0LDB4MzgsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzIsMHgzOX0sCi0gIDExLDB4MzQ4ZiwwLHsweGUwLDB4MDQsMHhmMCwweGUwLDB4NjQsMHgwYSwweDYwLDB4MDIsMHg0MSwweGM3LDB4MjJ9LAotICAxNiwweDM0OWEsMCx7MHg5MCwweDc2LDB4MTgsMHhlMCwweGZmLDB4YjQsMHgwNSwweDIzLDB4OTAsMHg3MiwweDM3LDB4ZTAsMHg3MCwweDFkLDB4OTAsMHg3NX0sCi0gIDE2LDB4MzRhYSwwLHsweGFkLDB4ZTAsMHg5MCwweDcyLDB4MmIsMHhmMCwweGUwLDB4MjQsMHg4MCwweGYwLDB4ZTAsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwfSwKLSAgMTYsMHgzNGJhLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9LAotICAxNiwweDM0Y2EsMCx7MHhjMSwweDkxLDB4OTAsMHg3MiwweDM2LDB4ZTAsMHg2MCwweDAyLDB4YzEsMHg5MSwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgzMX0sCi0gIDE2LDB4MzRkYSwwLHsweDkwLDB4NzIsMHgwMywweDc0LDB4MDMsMHhmMCwweDkwLDB4NzIsMHgwMywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0fSwKLSAgMTYsMHgzNGVhLDAsezB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDcyLDB4MjksMHhlMCwweGZkLDB4ZWV9LAotICAxNiwweDM0ZmEsMCx7MHg2ZCwweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYSwweDUwLDB4MDgsMHg5MCwweDcyLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg4MH0sCi0gIDE2LDB4MzUwYSwwLHsweGQ1LDB4OTAsMHg3MiwweDM5LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHg3MCwweDA4LDB4OTAsMHg3MiwweDAzfSwKLSAgMTYsMHgzNTFhLDAsezB4ZTAsMHg5MCwweDcyLDB4MzksMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmQsMHgyNCwweGZlLDB4OTAsMHg3MiwweDJhLDB4ZjB9LAotICAxNiwweDM1MmEsMCx7MHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MzUzYSwwLHsweDdlLDB4MDAsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4NzAsMHgwNiwweDkwLDB4NzIsMHgwMiwweDc0fSwKLSAgMTYsMHgzNTRhLDAsezB4ODAsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDA0LDB4OTB9LAotICAxNiwweDM1NWEsMCx7MHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweGMxLDB4MWIsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwLDB4MDIsMHhjMX0sCi0gIDE2LDB4MzU2YSwwLHsweDFiLDB4ZWYsMHhmOCwweGU0LDB4OTAsMHg3NSwweDBkLDB4ZjAsMHhlOCwweDkwLDB4NzUsMHgwYywweGYwLDB4ZWQsMHg3NSwweGYwfSwKLSAgMTYsMHgzNTdhLDAsezB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM1OGEsMCx7MHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MzU5YSwwLHsweGEzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweDdiLDB4ZDYsMHg3YSwweGE1LDB4ZjksMHhmOCwweGQzLDB4MTIsMHgzNywweDk1fSwKLSAgMTYsMHgzNWFhLDAsezB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTB9LAotICAxNiwweDM1YmEsMCx7MHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwLDB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNX0sCi0gIDE2LDB4MzVjYSwwLHsweGNlLDB4YTIsMHhlNywweDEzLDB4Y2UsMHgxMywweGQ4LDB4ZjgsMHhmZiwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmfSwKLSAgMTYsMHgzNWRhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NCwweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTR9LAotICAxNiwweDM1ZWEsMCx7MHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0LDB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3Mn0sCi0gIDE2LDB4MzVmYSwwLHsweDJjLDB4ZTAsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDQsMHhlNCwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzIsMHgyYywweGUwfSwKLSAgMTYsMHgzNjBhLDAsezB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM2MWEsMCx7MHhmMCwweDkwLDB4NzIsMHgyYSwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0LDB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwM30sCi0gIDE2LDB4MzYyYSwwLHsweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgyMSwweDgwLDB4NDAsMHg5MCwweDcyLDB4MDIsMHhlMCwweGZlLDB4NzQsMHgyMCwweDJmfSwKLSAgMTYsMHgzNjNhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDM2NGEsMCx7MHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmYsMHg5MCwweDcyLDB4MmEsMHhlMH0sCi0gIDE2LDB4MzY1YSwwLHsweGZlLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MzgsMHgyZSwweGY1fSwKLSAgMTYsMHgzNjZhLDAsezB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgwNiwweDkwLDB4NzJ9LAotICAxNiwweDM2N2EsMCx7MHgzOSwweDc0LDB4MGEsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4MDQsMHhmMCwweGUwLDB4YzMsMHg5NCwweDBhLDB4NTAsMHgwMn0sCi0gICA4LDB4MzY4YSwwLHsweGExLDB4MTEsMHhlNCwweDkwLDB4NzYsMHg0MCwweGYwLDB4MjJ9LAotICAxNiwweDM2OTIsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4MjIsMHg1MCwweDAyLDB4ZTcsMHgyMiwweGJiLDB4ZmUsMHgwMn0sCi0gICA5LDB4MzZhMiwwLHsweGUzLDB4MjIsMHg4OSwweDgyLDB4OGEsMHg4MywweGU0LDB4OTMsMHgyMn0sCi0gIDE2LDB4MzZhYiwwLHsweGJiLDB4MDEsMHgwYywweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHgyMiwweDUwfSwKLSAgMTYsMHgzNmJiLDAsezB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGU2LDB4MjIsMHhiYiwweGZlLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4MjJ9LAotICAxMywweDM2Y2IsMCx7MHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGU0LDB4OTMsMHgyMn0sCi0gIDE2LDB4MzZkOCwwLHsweGMyLDB4ZDUsMHhlYywweDMwLDB4ZTcsMHgwOSwweGIyLDB4ZDUsMHhlNCwweGMzLDB4OWQsMHhmZCwweGU0LDB4OWMsMHhmYywweGVlfSwKLSAgMTYsMHgzNmU4LDAsezB4MzAsMHhlNywweDE1LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MTIsMHgzOCwweDFmLDB4YzN9LAotICAxNiwweDM2ZjgsMCx7MHhlNCwweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHg4MCwweDAzLDB4MTIsMHgzOCwweDFmLDB4MzAsMHhkNSwweDA3LDB4YzMsMHhlNH0sCi0gICA2LDB4MzcwOCwwLHsweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgyMn0sCi0gIDE2LDB4MzcwZSwwLHsweGJiLDB4MDEsMHgxMCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHhmNSwweGYwfSwKLSAgMTYsMHgzNzFlLDAsezB4YTMsMHhlMCwweDIyLDB4NTAsMHgwOSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ODYsMHhmMCwweDA4LDB4ZTYsMHgyMiwweGJiLDB4ZmV9LAotICAxNiwweDM3MmUsMCx7MHgwYSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHhmNSwweGYwLDB4MDgsMHhlMiwweDIyLDB4ZTUsMHg4MywweDJhLDB4ZjUsMHg4M30sCi0gICA4LDB4MzczZSwwLHsweGU5LDB4OTMsMHhmNSwweGYwLDB4YTMsMHhlOSwweDkzLDB4MjJ9LAotICAxNiwweDM3NDYsMCx7MHhlOCwweDhmLDB4ZjAsMHhhNCwweGNjLDB4OGIsMHhmMCwweGE0LDB4MmMsMHhmYywweGU5LDB4OGUsMHhmMCwweGE0LDB4MmMsMHhmY30sCi0gIDE2LDB4Mzc1NiwwLHsweDhhLDB4ZjAsMHhlZCwweGE0LDB4MmMsMHhmYywweGVhLDB4OGUsMHhmMCwweGE0LDB4Y2QsMHhhOCwweGYwLDB4OGIsMHhmMCwweGE0fSwKLSAgMTYsMHgzNzY2LDAsezB4MmQsMHhjYywweDM4LDB4MjUsMHhmMCwweGZkLDB4ZTksMHg4ZiwweGYwLDB4YTQsMHgyYywweGNkLDB4MzUsMHhmMCwweGZjLDB4ZWJ9LAotICAxNiwweDM3NzYsMCx7MHg4ZSwweGYwLDB4YTQsMHhmZSwweGE5LDB4ZjAsMHhlYiwweDhmLDB4ZjAsMHhhNCwweGNmLDB4YzUsMHhmMCwweDJlLDB4Y2QsMHgzOX0sCi0gIDE1LDB4Mzc4NiwwLHsweGZlLDB4ZTQsMHgzYywweGZjLDB4ZWEsMHhhNCwweDJkLDB4Y2UsMHgzNSwweGYwLDB4ZmQsMHhlNCwweDNjLDB4ZmMsMHgyMn0sCi0gIDE2LDB4Mzc5NSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGVjLDB4NjQsMHg4MCwweGM4fSwKLSAgIDYsMHgzN2E1LDAsezB4NjQsMHg4MCwweDk4LDB4NDUsMHhmMCwweDIyfSwKLSAgMTYsMHgzN2FiLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9LAotICAgMSwweDM3YmIsMCx7MHgyMn0sCi0gIDEyLDB4MzdiYywwLHsweGVjLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MzdjOCwwLHsweGE4LDB4ODIsMHg4NSwweDgzLDB4ZjAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDEyLDB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweDEyfSwKLSAgMTYsMHgzN2Q4LDAsezB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweGU0LDB4NzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODN9LAotICAxNiwweDM3ZTgsMCx7MHhjOCwweGM1LDB4ODIsMHhjOCwweGYwLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODMsMHhjOCwweGM1LDB4ODIsMHhjOH0sCi0gICAxLDB4MzdmOCwwLHsweDIyfSwKLSAgMTYsMHgzN2Y5LDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhmOCwweGU0LDB4OTMsMHg3MCwweDEyLDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwZCwweGEzLDB4YTN9LAotICAxNiwweDM4MDksMCx7MHg5MywweGY4LDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDg4LDB4ODMsMHhlNCwweDczLDB4NzQsMHgwMiwweDkzLDB4NjgsMHg2MH0sCi0gICA2LDB4MzgxOSwwLHsweGVmLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkZn0sCi0gIDE2LDB4MzgxZiwwLHsweGJjLDB4MDAsMHgwYiwweGJlLDB4MDAsMHgyOSwweGVmLDB4OGQsMHhmMCwweDg0LDB4ZmYsMHhhZCwweGYwLDB4MjIsMHhlNCwweGNjfSwKLSAgMTYsMHgzODJmLDAsezB4ZjgsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmLDB4ZmYsMHhlZSwweDMzLDB4ZmUsMHhlYywweDMzLDB4ZmMsMHhlZSwweDlkLDB4ZWN9LAotICAxNiwweDM4M2YsMCx7MHg5OCwweDQwLDB4MDUsMHhmYywweGVlLDB4OWQsMHhmZSwweDBmLDB4ZDUsMHhmMCwweGU5LDB4ZTQsMHhjZSwweGZkLDB4MjIsMHhlZH0sCi0gIDE2LDB4Mzg0ZiwwLHsweGY4LDB4ZjUsMHhmMCwweGVlLDB4ODQsMHgyMCwweGQyLDB4MWMsMHhmZSwweGFkLDB4ZjAsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmfSwKLSAgMTYsMHgzODVmLDAsezB4ZmYsMHhlZCwweDMzLDB4ZmQsMHg0MCwweDA3LDB4OTgsMHg1MCwweDA2LDB4ZDUsMHhmMCwweGYyLDB4MjIsMHhjMywweDk4LDB4ZmR9LAotICAgNSwweDM4NmYsMCx7MHgwZiwweGQ1LDB4ZjAsMHhlYSwweDIyfSwKLSAgMTYsMHgzODc0LDAsezB4ZTQsMHg5MCwweDc2LDB4MjksMHhmMCwweDkwLDB4NzYsMHgyOSwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDM4ODQsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4Mzg5NCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjksMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgzOGE0LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDM4YjQsMCx7MHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJhLDB4ZjAsMHgyNH0sCi0gIDE2LDB4MzhjNCwwLHsweGJmLDB4NzAsMHgwMiwweDQxLDB4NDEsMHgyNCwweGUwLDB4NzAsMHgwMiwweDQxLDB4MTIsMHgyNCwweDIxLDB4NjAsMHgwMiwweDQxfSwKLSAgMTYsMHgzOGQ0LDAsezB4M2EsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDdkLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhiMiwweDI0LDB4MDJ9LAotICAxNiwweDM4ZTQsMCx7MHg2MCwweDAyLDB4NDEsMHgwYSwweDEyLDB4MTcsMHg1MSwweDkwLDB4NzYsMHg0MiwweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhM30sCi0gIDE2LDB4MzhmNCwwLHsweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1fSwKLSAgMTYsMHgzOTA0LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDF9LAotICAxNiwweDM5MTQsMCx7MHgxMiwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweDkwLDB4NzYsMHg3ZCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHg3ZX0sCi0gIDE2LDB4MzkyNCwwLHsweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBmLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweDkwLDB4NzYsMHg3ZCwweGYwfSwKLSAgMTYsMHgzOTM0LDAsezB4OTAsMHg3NiwweDdlLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTB9LAotICAxNiwweDM5NDQsMCx7MHg3NiwweDdkLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHg3NCwweDE4LDB4ZjAsMHg5MCwweDc2LDB4MWEsMHg3NCwweDAxLDB4ZjAsMHgxMn0sCi0gIDE2LDB4Mzk1NCwwLHsweDNlLDB4OWYsMHgxMiwweDE4LDB4MDAsMHgyMiwweDkwLDB4N2UsMHhjMiwweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHhmZSwweGZifSwKLSAgMTYsMHgzOTY0LDAsezB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDM3LDB4NDYsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2F9LAotICAxNiwweDM5NzQsMCx7MHhjYiwweGVmLDB4Y2IsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZlLDB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYX0sCi0gIDE2LDB4Mzk4NCwwLHsweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHhlNCwweGZlLDB4ZWIsMHgyZiwweGZmfSwKLSAgMTYsMHgzOTk0LDAsezB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDM5YTQsMCx7MHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhiYywweDIyLDB4OTAsMHg3ZX0sCi0gIDE2LDB4MzliNCwwLHsweGMyLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmIsMHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MzcsMHg0NiwweGM4fSwKLSAgMTYsMHgzOWM0LDAsezB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmV9LAotICAxNiwweDM5ZDQsMCx7MHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZX0sCi0gIDE2LDB4MzllNCwwLHsweGMwLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmYsMHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlYywweDM4fSwKLSAgMTYsMHgzOWY0LDAsezB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNhMDQsMCx7MHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE2LDB4M2ExNCwwLHsweGU5LDB4ZTAsMHgxNCwweDcwLDB4MTksMHg5MCwweDdlLDB4YzAsMHhlMCwweGZmLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwfSwKLSAgMTYsMHgzYTI0LDAsezB4MGYsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAxNCwweDNhMzQsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgzYTQyLDAsezB4ZTQsMHg5MCwweDc2LDB4MzUsMHhmMCwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmYsMHhjMywweDk0LDB4MDMsMHg0MCwweDAyLDB4NDF9LAotICAxNiwweDNhNTIsMCx7MHhmZiwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4M2E2MiwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0fSwKLSAgMTYsMHgzYTcyLDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDNhODIsMCx7MHhmMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4M2E5MiwwLHsweDc0LDB4ZmYsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzYWEyLDAsezB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNhYjIsMCx7MHg4MywweDc0LDB4ODAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2FjMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYWQyLDAsezB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNhZTIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2FmMiwwLHsweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHhlMCwweDA0LDB4ZjAsMHg0MSwweDQ3LDB4OTAsMHg3NiwweDNjfSwKLSAgMTYsMHgzYjAyLDAsezB4NzQsMHgwYSwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3NiwweDM1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDNjLDB4ZTB9LAotICAxNiwweDNiMTIsMCx7MHhmZiwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDYxLDB4ZDIsMHg5MCwweDc2LDB4M2QsMHhlMH0sCi0gIDE2LDB4M2IyMiwwLHsweGZmLDB4MDQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzYjMyLDAsezB4ODMsMHhlZiwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNiNDIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4M2I1MiwwLHsweDgzLDB4NzQsMHg1ZSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYjYyLDAsezB4ZjUsMHg4MywweDc0LDB4YmEsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDNiNzIsMCx7MHg3NSwweGY1LDB4ODMsMHg3NCwweDA1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4M2I4MiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyfSwKLSAgMTYsMHgzYjkyLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODJ9LAotICAxNiwweDNiYTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2JiMiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDE1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1fSwKLSAgMTYsMHgzYmMyLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNSwweGUwLDB4MDQsMHhmMCwweDYxLDB4MGV9LAotICAgMSwweDNiZDIsMCx7MHgyMn0sCi0gIDE2LDB4M2JkMywwLHsweGU0LDB4OTAsMHg3NiwweDM2LDB4ZjAsMHhlMCwweGZiLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgzYmUzLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQwLDB4ZjAsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODJ9LAotICAxNiwweDNiZjMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNX0sCi0gIDE2LDB4M2MwMywwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwfSwKLSAgMTYsMHgzYzEzLDAsezB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDB9LAotICAxNiwweDNjMjMsMCx7MHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4M2MzMywwLHsweDEyLDB4MzcsMHhjOCwweDAwLDB4MDEsMHg3NywweDAwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmYiwweDc1fSwKLSAgMTYsMHgzYzQzLDAsezB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MCwweGYwLDB4ZWJ9LAotICAxNiwweDNjNTMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4OGMsMHhmMH0sCi0gIDE2LDB4M2M2MywwLHsweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3fSwKLSAgMTYsMHgzYzczLDAsezB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDNjODMsMCx7MHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNH0sCi0gIDE2LDB4M2M5MywwLHsweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwfSwKLSAgMTYsMHgzY2EzLDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDNjYjMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2NjMywwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDhmLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmfSwKLSAgMTYsMHgzY2QzLDAsezB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQxLDB4ZjB9LAotICAxNiwweDNjZTMsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4NH0sCi0gIDE2LDB4M2NmMywwLHsweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1fSwKLSAgMTYsMHgzZDAzLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg2MSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDNkMTMsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH0sCi0gIDE2LDB4M2QyMywwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fSwKLSAgMTYsMHgzZDMzLDAsezB4NjEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAgNCwweDNkNDMsMCx7MHg3NCwweDAxLDB4ZjAsMHgyMn0sCi0gIDE2LDB4M2Q0NywwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSwKLSAgMTYsMHgzZDU3LDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9LAotICAxNiwweDNkNjcsMCx7MHhjMCwweGUwLDB4OTAsMHg3ZiwweGEyLDB4ZTAsMHg5MCwweDc2LDB4N2YsMHhmMCwweDkwLDB4N2YsMHg3NCwweGUwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4M2Q3NywwLHsweDg3LDB4ZjAsMHg5MCwweDdmLDB4NzUsMHhlMCwweDkwLDB4NzYsMHg4OCwweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDAyfSwKLSAgMTYsMHgzZDg3LDAsezB4ZjAsMHg5MCwweDc2LDB4OTYsMHhlMCwweGZmLDB4MjAsMHhlMSwweDBjLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjB9LAotICAxNiwweDNkOTcsMCx7MHhkMiwweDMyLDB4MTIsMHg0YiwweDI4LDB4OTAsMHg3NiwweDdmLDB4ZTAsMHgyMCwweGUyLDB4NTAsMHg5MCwweDc2LDB4ODcsMHhlMH0sCi0gIDE2LDB4M2RhNywwLHsweGZlLDB4YTMsMHhlMCwweDdjLDB4MDAsMHgyNCwweDAwLDB4ZjUsMHgzNCwweGVjLDB4M2UsMHhmNSwweDMzLDB4OTAsMHg3NiwweDk4fSwKLSAgMTYsMHgzZGI3LDAsezB4ZTAsMHhmZCwweGFlLDB4MzMsMHhhZiwweDM0LDB4MTIsMHgzNiwweGQ4LDB4OTAsMHg3NiwweDg3LDB4ZWYsMHhmMCwweGQyLDB4MmZ9LAotICAxNiwweDNkYzcsMCx7MHgzMCwweDMxLDB4MjksMHgyMCwweDNmLDB4MjYsMHhjMiwweDMxLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHg5MH0sCi0gIDE2LDB4M2RkNywwLHsweDdmLDB4OWEsMHhlMCwweDMwLDB4ZTQsMHgwNCwweGQyLDB4MmQsMHhjMiwweDJjLDB4OTAsMHg3ZiwweDlhLDB4ZTAsMHgyMCwweGU1fSwKLSAgMTYsMHgzZGU3LDAsezB4MDQsMHhjMiwweDJkLDB4ZDIsMHgyYywweDkwLDB4N2YsMHg5NCwweGUwLDB4NDQsMHgzMCwweGYwLDB4MTIsMHg0OCwweGJkLDB4MTJ9LAotICAxNiwweDNkZjcsMCx7MHgxYiwweDA0LDB4MzAsMHgyZiwweDEyLDB4MTIsMHg0MiwweDFmLDB4YzIsMHgyZiwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MTYsMHg4YX0sCi0gIDE2LDB4M2UwNywwLHsweDc1LDB4ZTgsMHgwZCwweGQyLDB4MmIsMHg4MCwweDA1LDB4NzUsMHhlOCwweDAxLDB4YzIsMHgyYiwweDIwLDB4MmIsMHgzNCwweDkwfSwKLSAgMTYsMHgzZTE3LDAsezB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHhhMywweDc0LDB4MDZ9LAotICAxNiwweDNlMjcsMCx7MHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMH0sCi0gIDE2LDB4M2UzNywwLHsweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMCwweGEzfSwKLSAgMTYsMHgzZTQ3LDAsezB4NzQsMHgxOCwweGYwLDB4NzUsMHhjYSwweGQzLDB4NzUsMHhjYiwweGZlLDB4ZDIsMHhjYSwweDMwLDB4MzQsMHgwNCwweGMyLDB4MzR9LAotICAxNiwweDNlNTcsMCx7MHg4MCwweDAyLDB4ZDIsMHgzNCwweDMwLDB4MzQsMHgwZCwweDkwLDB4NzYsMHg4OSwweGUwLDB4YzMsMHg5NCwweDAzLDB4NDAsMHgwNH0sCi0gIDE2LDB4M2U2NywwLHsweGUwLDB4MjQsMHhmZCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHgzZTc3LDAsezB4OTgsMHhlMCwweDU0LDB4ZmQsMHhmMCwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTB9LAotICAxNiwweDNlODcsMCx7MHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMH0sCi0gICA4LDB4M2U5NywwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDNlOWYsMCx7MHg5MCwweDc2LDB4OTIsMHhlMCwweDE0LDB4NjAsMHgxZCwweDE0LDB4NzAsMHgwMiwweGUxLDB4NTQsMHgyNCwweDAyLDB4NjAsMHgwMn0sCi0gIDE2LDB4M2VhZiwwLHsweGUxLDB4ZTQsMHg5MCwweDc2LDB4OTQsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweGU0LDB4OTAsMHg3NiwweDhlfSwKLSAgMTYsMHgzZWJmLDAsezB4ZjAsMHhkMiwweDMxLDB4MjIsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDFiLDB4ZTQsMHg5MCwweDdmLDB4ZjJ9LAotICAxNiwweDNlY2YsMCx7MHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4M2VkZiwwLHsweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MWIsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfSwKLSAgMTYsMHgzZWVmLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzNCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTB9LAotICAxNiwweDNlZmYsMCx7MHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgxOCwweGU0LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MH0sCi0gIDE2LDB4M2YwZiwwLHsweDdmLDB4ZjMsMHg3NCwweDY0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0fSwKLSAgMTYsMHgzZjFmLDAsezB4MDQsMHhmMCwweDkwLDB4NzYsMHg5NCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg4MCwweDAwLDB4ZjAsMHgzMCwweDNmLDB4MDl9LAotICAxNiwweDNmMmYsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE2LDB4M2YzZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgzZjRmLDAsezB4OGUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MWIsMHhlNCwweDkwLDB4N2Z9LAotICAxNiwweDNmNWYsMCx7MHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg0NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4M2Y2ZiwwLHsweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfSwKLSAgMTYsMHgzZjdmLDAsezB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDRjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTd9LAotICAxNiwweDNmOGYsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMywweDE4LDB4ZTQsMHg5MCwweDdmLDB4ZjIsMHhmMH0sCi0gIDE2LDB4M2Y5ZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfSwKLSAgMTYsMHgzZmFmLDAsezB4NDQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDk0LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweDMwLDB4M2Z9LAotICAxNiwweDNmYmYsMCx7MHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4M2ZjZiwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDYsMHhmMCwweDkwfSwKLSAgIDYsMHgzZmRmLDAsezB4NzYsMHg4ZSwweDc0LDB4MDIsMHhmMCwweDIyfSwKLSAgMTYsMHgzZmU1LDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4ODIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHg5MCwweDc2LDB4OTJ9LAotICAxMSwweDNmZjUsMCx7MHhmMCwweDkwLDB4NzYsMHg5MCwweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHhkMywweDIyfSwKLSAgMTYsMHg0MDAwLDAsezB4ZTUsMHgxMSwweGQzLDB4OTQsMHgwMCwweDUwLDB4MDIsMHgyMSwweDA2LDB4OTAsMHg3NiwweDg5LDB4ZTAsMHhjMywweDk0LDB4MDh9LAotICAxNiwweDQwMTAsMCx7MHg0MCwweDAyLDB4MjEsMHgwNiwweDc0LDB4NDAsMHgyNSwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4NDAyMCwwLHsweGY1LDB4MTcsMHhlNSwweDBkLDB4NjAsMHgwZSwweDkwLDB4ODAsMHgwNSwweGU1LDB4MTcsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwfSwKLSAgMTYsMHg0MDMwLDAsezB4MDQsMHhmMCwweDAxLDB4ZGEsMHhlNSwweDE3LDB4MTIsMHgzNywweGY5LDB4NDAsMHhjMSwweDAyLDB4NDAsMHg2NywweDA1LDB4NDB9LAotICAxNiwweDQwNDAsMCx7MHg3YSwweDA2LDB4NDAsMHg5OCwweDA3LDB4NDAsMHhjMSwweDBjLDB4NDAsMHhjMSwweDBkLDB4NDAsMHhjNywweDBmLDB4NDAsMHhjYn0sCi0gIDE2LDB4NDA1MCwwLHsweGY2LDB4NDAsMHhjYiwweGY4LDB4NDAsMHhjYiwweGZhLDB4NDAsMHhjYiwweGZiLDB4NDAsMHhjYiwweGZjLDB4NDAsMHhjYiwweGZlfSwKLSAgMTYsMHg0MDYwLDAsezB4NDAsMHhjYiwweGZmLDB4MDAsMHgwMCwweDQwLDB4ZGEsMHg5MCwweDdlLDB4NDEsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTB9LAotICAxNiwweDQwNzAsMCx7MHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg2MCwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MH0sCi0gIDE2LDB4NDA4MCwwLHsweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHg0MDkwLDAsezB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg0MiwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjB9LAotICAxNiwweDQwYTAsMCx7MHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3ZSwweDQzLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH0sCi0gIDE2LDB4NDBiMCwwLHsweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDgwfSwKLSAgMTYsMHg0MGMwLDAsezB4MTksMHhkMiwweDNiLDB4ZDIsMHgzYywweDgwLDB4MTMsMHhkMiwweDNiLDB4ODAsMHgwZiwweDkwLDB4ODAsMHgwNSwweGU1LDB4MTd9LAotICAxNiwweDQwZDAsMCx7MHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDIwLDB4M2IsMHgwNCwweDA1LDB4MGQsMHg4MH0sCi0gIDE2LDB4NDBlMCwwLHsweDFmLDB4MzAsMHgzYywweDFjLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4N2UsMHg0MiwweGUwfSwKLSAgMTYsMHg0MGYwLDAsezB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDF9LAotICAxNiwweDQxMDAsMCx7MHgwNSwweDBmLDB4MTUsMHgxMSwweDAxLDB4MDAsMHhlNSwweDExLDB4NzAsMHgxMCwweGMyLDB4MzMsMHhmNSwweDBkLDB4ZjUsMHgwZn0sCi0gIDExLDB4NDExMCwwLHsweDkwLDB4N2YsMHhjNywweDc0LDB4MDQsMHhmMCwweGMyLDB4M2IsMHhjMiwweDNjLDB4MjJ9LAotICAxNiwweDQxMWIsMCx7MHg5MCwweDc2LDB4OGQsMHhlMCwweDY0LDB4MDEsMHg3MCwweDI3LDB4MzAsMHgyNywweDA4LDB4YzIsMHgyNywweDEyLDB4MDgsMHgwMH0sCi0gIDE2LDB4NDEyYiwwLHsweDEyLDB4MTcsMHg0YSwweDMwLDB4MjgsMHgwOCwweGMyLDB4MjgsMHgxMiwweDM4LDB4NzQsMHgxMiwweDE3LDB4NGEsMHgzMCwweDJhfSwKLSAgMTYsMHg0MTNiLDAsezB4MGUsMHhlNCwweDkwLDB4NzYsMHg4ZCwweGYwLDB4YzIsMHgyYSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMiwweGYwLDB4OTB9LAotICAxNiwweDQxNGIsMCx7MHg3NiwweDNmLDB4ZTAsMHhiNCwweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzMiwweDZmLDB4OTAsMHg3NiwweDQxLDB4ZTAsMHhiNH0sCi0gIDE2LDB4NDE1YiwwLHsweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzNCwweDlhLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDM0fSwKLSAgMTYsMHg0MTZiLDAsezB4OWEsMHgxMiwweDMwLDB4MDAsMHgzMCwweDMzLDB4MDMsMHgxMiwweDQwLDB4MDAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDIwLDB4ZTR9LAotICAxNiwweDQxN2IsMCx7MHgwMiwweGMyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMCwweDMwLDB4ZTQsMHgwMiwweGQyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMH0sCi0gIDE2LDB4NDE4YiwwLHsweDIwLDB4ZTUsMHgwMiwweGMyLDB4M2UsMHg5MCwweDdmLDB4OWIsMHhlMCwweDMwLDB4ZTUsMHgwMiwweGQyLDB4M2UsMHhhMiwweDQxfSwKLSAgMTYsMHg0MTliLDAsezB4MzAsMHgzZiwweDAxLDB4YjMsMHg1MCwweDFmLDB4YTIsMHgzZiwweDkyLDB4NDEsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTd9LAotICAxNiwweDQxYWIsMCx7MHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4NDFiYiwwLHsweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHgzMCwweDNmLDB4MzQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBlfSwKLSAgMTYsMHg0MWNiLDAsezB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4YTMsMHg3NCwweDA2LDB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjR9LAotICAxNiwweDQxZGIsMCx7MHgwMiwweDBiLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwM30sCi0gIDE2LDB4NDFlYiwwLHsweDBiLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4MTgsMHhmMCwweGEyLDB4NDAsMHgzMCwweDNlfSwKLSAgMTYsMHg0MWZiLDAsezB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNlLDB4OTIsMHg0MCwweDMwLDB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDR9LAotICAxNiwweDQyMGIsMCx7MHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MH0sCi0gICA0LDB4NDIxYiwwLHsweDgwLDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0MjFmLDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzNSwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhkMywweDk0LDB4MmR9LAotICAxNiwweDQyMmYsMCx7MHg0MCwweDJiLDB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkM30sCi0gIDE2LDB4NDIzZiwwLHsweDk0LDB4MGYsMHg0MCwweDE5LDB4ZTQsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgwOCwweDkwLDB4NzYsMHgxOSwweDc0fSwKLSAgMTYsMHg0MjRmLDAsezB4MDMsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc2LDB4MTksMHg3NCwweDAyLDB4ZjAsMHgxMiwweDNlLDB4OWYsMHg5MCwweDc2LDB4MTl9LAotICAxNiwweDQyNWYsMCx7MHhlMCwweGI0LDB4MDIsMHgyYywweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhjMywweDk0LDB4MmYsMHg1MCwweDIyLDB4ZWYsMHhkM30sCi0gIDE2LDB4NDI2ZiwwLHsweDk0LDB4MmEsMHg0MCwweDFjLDB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHg0MjdmLDAsezB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MCwweDBhLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDA0LDB4ZjAsMHgxMiwweDNlLDB4OWZ9LAotICAxNiwweDQyOGYsMCx7MHg5MCwweDc2LDB4MTksMHhlMCwweGI0LDB4MDIsMHgyNiwweDkwLDB4NzYsMHg4NywweGUwLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgxZH0sCi0gIDE2LDB4NDI5ZiwwLHsweDkwLDB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmfSwKLSAgMTYsMHg0MmFmLDAsezB4NDAsMHgwYiwweGU0LDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAzLDB4ZjAsMHgxMiwweDNlLDB4OWYsMHg5MCwweDc2LDB4MTl9LAotICAxNiwweDQyYmYsMCx7MHhlMCwweDY0LDB4MDMsMHg3MCwweDNmLDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHg1ZiwweDUwLDB4MzUsMHg5MH0sCi0gIDE2LDB4NDJjZiwwLHsweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzLDB4OTQsMHgwZiwweDQwfSwKLSAgMTYsMHg0MmRmLDAsezB4MjMsMHhlNCwweGYwLDB4ZWYsMHhjMywweDk0LDB4MmYsMHg1MCwweDBjLDB4ZWYsMHhkMywweDk0LDB4MmEsMHg0MCwweDA2LDB4OTB9LAotICAxNiwweDQyZWYsMCx7MHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4ZWYsMHhkMywweDk0LDB4MmYsMHg0MCwweDA2LDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMn0sCi0gIDE2LDB4NDJmZiwwLHsweGYwLDB4MTIsMHgzZSwweDlmLDB4OTAsMHg3NiwweDg2LDB4ZTAsMHg3MCwweDA1LDB4OTAsMHg3NiwweDg1LDB4ZjAsMHgyMiwweGU0fSwKLSAgIDUsMHg0MzBmLDAsezB4OTAsMHg3NiwweDg2LDB4ZjAsMHgyMn0sCi0gIDE2LDB4NDMxNCwwLHsweGU0LDB4OTAsMHg3NiwweDk2LDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlMCwweDc0LDB4OTAsMHhmMCwweDkwfSwKLSAgMTYsMHg0MzI0LDAsezB4N2YsMHhlMSwweDc0LDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3ZiwweGRkLDB4ZjAsMHg5MCwweDdmLDB4YTEsMHhmMCwweDUzLDB4OGV9LAotICAxNiwweDQzMzQsMCx7MHhmOCwweDc1LDB4ODgsMHgwNSwweDc1LDB4YjgsMHgyMCwweDc1LDB4ZjgsMHgwMSwweDQzLDB4OGUsMHgzMCwweGY1LDB4YzgsMHg3NX0sCi0gIDE2LDB4NDM0NCwwLHsweGNhLDB4N2YsMHg3NSwweGNiLDB4ZjgsMHg0MywweGE4LDB4MjAsMHgxMiwweDQ1LDB4NjUsMHhjMiwweDJjLDB4YzIsMHgyZCwweGMyfSwKLSAgMTYsMHg0MzU0LDAsezB4MmIsMHhjMiwweDJmLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhkZCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmZiwweGYwLDB4OTB9LAotICAxNiwweDQzNjQsMCx7MHg3ZiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4NX0sCi0gIDE2LDB4NDM3NCwwLHsweGYwLDB4YTMsMHhmMCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgxMiwweDQ5LDB4YWUsMHgxMiwweDBmfSwKLSAgMTYsMHg0Mzg0LDAsezB4YzYsMHgxMiwweDRhLDB4ZjEsMHg5MCwweDdmLDB4OTcsMHhlMCwweDQ0LDB4MDgsMHhmMCwweGUwLDB4NTQsMHhiOSwweGYwLDB4ZDJ9LAotICAxNiwweDQzOTQsMCx7MHgzMCwweDIwLDB4MzAsMHgxOCwweDEyLDB4NGEsMHhhNiwweDEyLDB4MzAsMHgwMCwweDEyLDB4NDAsMHgwMCwweDEyLDB4NDIsMHgxZn0sCi0gIDE2LDB4NDNhNCwwLHsweDEyLDB4NDgsMHhiZCwweDEyLDB4MWIsMHgwNCwweDEyLDB4MTYsMHg2MSwweDEyLDB4NDIsMHgxZiwweDEyLDB4NGEsMHhhNiwweGMyfSwKLSAgMTYsMHg0M2I0LDAsezB4MmYsMHhjMiwweDMxLDB4YzIsMHgzMiwweGMyLDB4MzQsMHhjMiwweDMzLDB4YzIsMHgyOSwweGMyLDB4MjcsMHhjMiwweDI4LDB4ZTR9LAotICAxNiwweDQzYzQsMCx7MHhmNSwweDExLDB4OTAsMHg3NiwweDg5LDB4ZjAsMHg5MCwweDc2LDB4M2YsMHhmMCwweDkwLDB4NzYsMHg0MSwweGYwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4NDNkNCwwLHsweDQwLDB4ZjAsMHg5MCwweDc2LDB4OGEsMHhmMCwweGEzLDB4ZjAsMHhhMywweDA0LDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2fSwKLSAgIDMsMHg0M2U0LDAsezB4OTksMHhmMCwweDIyfSwKLSAgMTYsMHg0M2U3LDAsezB4MTIsMHg0ZSwweDE5LDB4NDAsMHgwMiwweDgxLDB4YWMsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDI0LDB4ZmUsMHg2MCwweDFlLDB4MTR9LAotICAxNiwweDQzZjcsMCx7MHg2MCwweDQ2LDB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4ODEsMHg5ZCwweDI0LDB4MDQsMHg2MCwweDAyLDB4ODEsMHhhNX0sCi0gIDE2LDB4NDQwNywwLHsweDc0LDB4MDUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweDc0LDB4MDAsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhfSwKLSAgMTYsMHg0NDE3LDAsezB4ZTAsMHhmZiwweDEyLDB4NGEsMHg1NSwweDhiLDB4MjAsMHg4YSwweDIxLDB4ODksMHgyMiwweGVhLDB4NDksMHg2MCwweDExLDB4Y2V9LAotICAxNiwweDQ0MjcsMCx7MHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMn0sCi0gIDE2LDB4NDQzNywwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4MTIsMHg0NywweGI3fSwKLSAgMTYsMHg0NDQ3LDAsezB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2Z9LAotICAxNiwweDQ0NTcsMCx7MHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0sCi0gIDE2LDB4NDQ2NywwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZifSwKLSAgMTYsMHg0NDc3LDAsezB4MTIsMHgxNywweDk0LDB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2V9LAotICAxNiwweDQ0ODcsMCx7MHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE2LDB4NDQ5NywwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgIDUsMHg0NGE3LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICAxLDB4NDRhYywwLHsweDIyfSwKLSAgMTYsMHg0NGFkLDAsezB4YzIsMHhhZiwweGQyLDB4MjQsMHg5MCwweDdmLDB4OTMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweGJiLDB4ZjB9LAotICAxNiwweDQ0YmQsMCx7MHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4MzAsMHhmMCwweGUwLDB4NTQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDk0LDB4NzQsMHgzMH0sCi0gIDE2LDB4NDRjZCwwLHsweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHhjZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDk1fSwKLSAgMTYsMHg0NGRkLDAsezB4NzQsMHhjMCwweGYwLDB4OTAsMHg3ZiwweDllLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweDk5LDB4ZTAsMHgzMCwweGUyLDB4MDl9LAotICAxNiwweDQ0ZWQsMCx7MHg5MCwweDA1LDB4MTksMHg3NCwweGEwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhjMiwweDI1LDB4YzIsMHgyMiwweGMyLDB4MjMsMHhjMn0sCi0gIDE2LDB4NDRmZCwwLHsweDI2LDB4MTIsMHg0YiwweDI4LDB4MTIsMHgyZCwweGE5LDB4MTIsMHgzYiwweGQzLDB4MTIsMHg0NiwweDE5LDB4MTIsMHgzYSwweDQyfSwKLSAgMTYsMHg0NTBkLDAsezB4OTAsMHg3NiwweDY4LDB4NzQsMHgwMSwweGYwLDB4NzAsMHgwZiwweDEyLDB4NGMsMHgyOSwweDEyLDB4NGUsMHgxNSwweDEyLDB4NGV9LAotICAxNiwweDQ1MWQsMCx7MHgxNywweDEyLDB4MWIsMHg0MCwweDEyLDB4MTQsMHg5NiwweDEyLDB4NDMsMHgxNCwweDkwLDB4N2YsMHhhZiwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4NDUyZCwwLHsweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDFmLDB4ZjAsMHg5MCwweDdmLDB4YWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHg0NTNkLDAsezB4YWQsMHhmMCwweDkwLDB4N2YsMHhkZSwweGYwLDB4OTAsMHg3ZiwweGRmLDB4ZjAsMHg5MCwweDdmLDB4YWIsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDQ1NGQsMCx7MHhhOSwweGYwLDB4OTAsMHg3ZiwweGFhLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg0MywweGQ4LDB4MjAsMHhkMiwweGU4LDB4NDMsMHhkOH0sCi0gICA4LDB4NDU1ZCwwLHsweDIwLDB4NTMsMHhhOCwweGEwLDB4NDMsMHhhOCwweDgwLDB4MjJ9LAotICAxNiwweDQ1NjUsMCx7MHg5MCwweDc2LDB4OWEsMHg3NCwweDAyLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg5MSwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzYsMHg5MH0sCi0gIDE2LDB4NDU3NSwwLHsweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg5MCwweDc2LDB4OTYsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGU0fSwKLSAgMTYsMHg0NTg1LDAsezB4OTAsMHg3NiwweDk3LDB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5NCwweDA0LDB4ZjAsMHg5MCwweDgwLDB4MDB9LAotICAxNiwweDQ1OTUsMCx7MHhmMCwweGU0LDB4OTAsMHg3NiwweDhlLDB4ZjAsMHg5MCwweDc2LDB4MWEsMHhmMCwweDkwLDB4NzYsMHg5NSwweDA0LDB4ZjAsMHhjMn0sCi0gIDE2LDB4NDVhNSwwLHsweDJlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDlifSwKLSAgMTYsMHg0NWI1LDAsezB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZSwweGZmLDB4YmUsMHgxMCwweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZmZ9LAotICAxNiwweDQ1YzUsMCx7MHg1NCwweDIwLDB4ZmYsMHg3MCwweDAyLDB4YzIsMHgzZSwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZmYsMHg1NCwweDIwLDB4ZmUsMHhmZn0sCi0gIDE2LDB4NDVkNSwwLHsweGJlLDB4MjAsMHgwMiwweGQyLDB4M2UsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwfSwKLSAgMTYsMHg0NWU1LDAsezB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjB9LAotICAxNiwweDQ1ZjUsMCx7MHgzMCwweDNlLDB4MDksMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMH0sCi0gIDE2LDB4NDYwNSwwLHsweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHhhMiwweDNlLDB4OTIsMHg0MCwweGEyfSwKLSAgIDMsMHg0NjE1LDAsezB4M2YsMHg5MiwweDQxfSwKLSAgIDEsMHg0NjE4LDAsezB4MjJ9LAotICAxNiwweDQ2MTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NDYyOSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHg0NjM5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9LAotICAxNiwweDQ2NDksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4NDY1OSwwLHsweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweDkwfSwKLSAgMTYsMHg0NjY5LDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDQ2NzksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NDY4OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1fSwKLSAgMTYsMHg0Njk5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9LAotICAxNiwweDQ2YTksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHgyMn0sCi0gIDEyLDB4NDZiOSwwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgzOCwweDAyLDB4NDcsMHgwMH0sCi0gIDE2LDB4NDZjNSwwLHsweDAyLDB4MDcsMHhhNiwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSwKLSAgMTYsMHg0NmQ1LDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9LAotICAxNiwweDQ2ZTUsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0sCi0gIDE2LDB4NDZmNSwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDBjLDB4OGYsMHhlNCwweDdlfSwKLSAgMTYsMHg0NzA1LDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9LAotICAxNiwweDQ3MTUsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30sCi0gIDE2LDB4NDcyNSwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSwKLSAgMTYsMHg0NzM1LDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9LAotICAxNiwweDQ3NDUsMCx7MHg5MCwweDdmLDB4ZWMsMHhlMCwweDkwLDB4NzYsMHg4MywweGYwLDB4ZTAsMHgxNCwweDYwLDB4MWQsMHgxNCwweDYwLDB4MmEsMHgxNH0sCi0gIDE2LDB4NDc1NSwwLHsweDYwLDB4MzcsMHgxNCwweDYwLDB4NDQsMHgyNCwweDA0LDB4NzAsMHg1MCwweDkwLDB4NzYsMHg5MSwweGUwLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHg0NzY1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDQ3LDB4OTAsMHg3NiwweDkyLDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3NzUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MzcsMHg5MCwweDc2LDB4OTAsMHhlMCwweDkwLDB4N2YsMHgwMH0sCi0gIDE2LDB4NDc4NSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgyNywweDkwLDB4NzYsMHg4NCwweGUwLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHg0Nzk1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDE3LDB4OTAsMHg3NiwweDkzLDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3YTUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICAyLDB4NDdiNSwwLHsweGQzLDB4MjJ9LAotICAgMiwweDQ3YjcsMCx7MHg4ZiwweDJlfSwKLSAgMTYsMHg0N2I5LDAsezB4ZTQsMHhmNSwweDJmLDB4NzUsMHgzMCwweGZmLDB4NzUsMHgzMSwweDA3LDB4NzUsMHgzMiwweDFhLDB4YWIsMHgzMCwweGFhLDB4MzF9LAotICAxNiwweDQ3YzksMCx7MHhhOSwweDMyLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4YjQsMHgwMywweDFmLDB4YWYsMHgyZiwweDA1LDB4MmYsMHhlZn0sCi0gIDE2LDB4NDdkOSwwLHsweDY1LDB4MmUsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2EsMHhjOSwweGVmfSwKLSAgMTYsMHg0N2U5LDAsezB4YzksMHg3NSwweDMwLDB4ZmYsMHhmNSwweDMxLDB4ODksMHgzMiwweDgwLDB4ZDIsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDQ3ZjksMCx7MHgyMn0sCi0gICA2LDB4NDdmYSwwLHsweDEyLDB4NGIsMHgyOCwweGMyLDB4MzEsMHgyMn0sCi0gIDE2LDB4NDgwMCwwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSwKLSAgMTYsMHg0ODEwLDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9LAotICAxNiwweDQ4MjAsMCx7MHhjMCwweGUwLDB4YzIsMHhjYSwweGMyLDB4Y2YsMHg5MCwweDdmLDB4OTgsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDMwLDB4MmUsMHgwM30sCi0gIDE2LDB4NDgzMCwwLHsweDEyLDB4MTQsMHhhNiwweDkwLDB4N2YsMHg5OCwweGUwLDB4NTQsMHhmZSwweGYwLDB4NTMsMHhhOCwweGZhLDB4MTIsMHgxNiwweDYxfSwKLSAgMTYsMHg0ODQwLDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDB9LAotICAxNiwweDQ4NTAsMCx7MHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMH0sCi0gICAzLDB4NDg2MCwwLHsweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NDg2MywwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4OTAsMHg3NiwweDgzLDB4ZjAsMHhlMCwweDE0LDB4NjAsMHgxNywweDE0LDB4NjAsMHgyMSwweDE0fSwKLSAgMTYsMHg0ODczLDAsezB4NjAsMHgyYiwweDE0LDB4NjAsMHgzMiwweDI0LDB4MDQsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTF9LAotICAxNiwweDQ4ODMsMCx7MHhmMCwweDgwLDB4MzUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MiwweGYwLDB4MTIsMHgzZSwweDlmLDB4ODAsMHgyOH0sCi0gIDE2LDB4NDg5MywwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDkwLDB4ZjAsMHgxMiwweDE4LDB4MDAsMHg4MCwweDFiLDB4OTAsMHg3ZiwweGVhfSwKLSAgMTYsMHg0OGEzLDAsezB4ZTAsMHg5MCwweDc2LDB4ODQsMHhmMCwweDgwLDB4MTEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MywweGYwLDB4ODB9LAotICAxMCwweDQ4YjMsMCx7MHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZDMsMHgyMn0sCi0gIDE2LDB4NDhiZCwwLHsweDMwLDB4MmQsMHgzOSwweGMyLDB4MmQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBkLDB4ZTQsMHg5MCwweDc2fSwKLSAgMTYsMHg0OGNkLDAsezB4N2MsMHhmMCwweGEzLDB4NzQsMHhmOCwweGYwLDB4YTMsMHg3NCwweDBhLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwZCwweGU0LDB4OTB9LAotICAxNiwweDQ4ZGQsMCx7MHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjAsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGQsMHhlNH0sCi0gIDEzLDB4NDhlZCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweGY4LDB4ZjAsMHhhMywweDc0LDB4MTcsMHhmMCwweDIyfSwKLSAgIDYsMHg0OGZhLDAsezB4NTMsMHg5MSwweGJmLDB4ZDIsMHgyZCwweDMyfSwKLSAgMTYsMHg0OTAwLDAsezB4MDIsMHgyZiwweGU3LDB4MDAsMHgwMiwweDNkLDB4NDcsMHgwMCwweDAyLDB4NGQsMHhiNCwweDAwLDB4MDIsMHg0YywweDQzLDB4MDB9LAotICAxNiwweDQ5MTAsMCx7MHgwMiwweDRiLDB4ZTksMHgwMCwweDAyLDB4MmYsMHhmZiwweDAwLDB4MDIsMHg0YywweDViLDB4MDAsMHgwMiwweDRjLDB4MGEsMHgwMH0sCi0gIDE2LDB4NDkyMCwwLHsweDAyLDB4NGMsMHg3MiwweDAwLDB4MDIsMHg0YiwweDVhLDB4MDAsMHgwMiwweDRjLDB4ODksMHgwMCwweDAyLDB4NGMsMHhhMCwweDAwfSwKLSAgMTYsMHg0OTMwLDAsezB4MDIsMHg0YywweGI3LDB4MDAsMHgwMiwweDRjLDB4Y2UsMHgwMCwweDAyLDB4NGMsMHhlNSwweDAwLDB4MDIsMHg0YywweGZjLDB4MDB9LAotICAxNiwweDQ5NDAsMCx7MHgwMiwweDRkLDB4MTMsMHgwMCwweDAyLDB4NGQsMHgyYSwweDAwLDB4MDIsMHg0ZCwweDQxLDB4MDAsMHgwMiwweDRkLDB4NTgsMHgwMH0sCi0gICA4LDB4NDk1MCwwLHsweDAyLDB4NGQsMHg2ZiwweDAwLDB4MDIsMHg0ZCwweDg2LDB4MDB9LAotICAxNiwweDQ5NTgsMCx7MHhlNCwweDkwLDB4NzYsMHgyNiwweGYwLDB4OTAsMHg3NiwweDI2LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH0sCi0gIDE2LDB4NDk2OCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHg0OTc4LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDQ5ODgsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4NDk5OCwwLHsweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwfSwKLSAgIDYsMHg0OWE4LDAsezB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0OWFlLDAsezB4OTAsMHg3NiwweDQ2LDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDQ5YmUsMCx7MHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH0sCi0gIDE2LDB4NDljZSwwLHsweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzfSwKLSAgMTYsMHg0OWRlLDAsezB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjB9LAotICAxNiwweDQ5ZWUsMCx7MHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH0sCi0gICA1LDB4NDlmZSwwLHsweGEzLDB4ZjAsMHhhMywweGYwLDB4MjJ9LAotICAxNiwweDRhMDMsMCx7MHhlNCwweDkwLDB4NzYsMHgyNSwweGYwLDB4OTAsMHg3NiwweDI1LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH0sCi0gIDE2LDB4NGExMywwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHg0YTIzLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDRhMzMsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzAsMHhlMH0sCi0gIDE2LDB4NGE0MywwLHsweGZlLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlfSwKLSAgIDIsMHg0YTUzLDAsezB4ZjAsMHgyMn0sCi0gIDE2LDB4NGE1NSwwLHsweGU0LDB4ZmUsMHg3NSwweDFkLDB4ZmYsMHg3NSwweDFlLDB4MDUsMHg3NSwweDFmLDB4MTIsMHhhYiwweDFkLDB4YWEsMHgxZSwweGE5fSwKLSAgMTYsMHg0YTY1LDAsezB4MWYsMHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHg2NCwweDAyLDB4NzAsMHgyZiwweGNkLDB4ZWUsMHhjZCwweDBlLDB4ZWR9LAotICAxNiwweDRhNzUsMCx7MHg2ZiwweDcwLDB4MDEsMHgyMiwweDkwLDB4MDAsMHgwMiwweDEyLDB4MzcsMHgwZSwweDg1LDB4ZjAsMHgxYiwweGY1LDB4MWMsMHg2Mn0sCi0gIDE2LDB4NGE4NSwwLHsweDFiLDB4ZTUsMHgxYiwweDYyLDB4MWMsMHhlNSwweDFjLDB4NjIsMHgxYiwweDI5LDB4ZmQsMHhlNSwweDFiLDB4M2EsMHhjOSwweGVkfSwKLSAgMTYsMHg0YTk1LDAsezB4YzksMHg3NSwweDFkLDB4ZmYsMHhmNSwweDFlLDB4ODksMHgxZiwweDgwLDB4YzEsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDRhYTUsMCx7MHgyMn0sCi0gIDE2LDB4NGFhNiwwLHsweGU0LDB4OTAsMHg3NiwweDliLDB4ZjAsMHg5MCwweDc2LDB4OWIsMHhlMCwweGZmLDB4MDQsMHhmMCwweGVmLDB4NjAsMHgwOCwweGUwfSwKLSAgMTYsMHg0YWI2LDAsezB4MjQsMHgwOCwweGY4LDB4ZTQsMHhmNiwweDgwLDB4ZWUsMHg5MCwweDc2LDB4OTYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDQ0LDB4MDh9LAotICAxNiwweDRhYzYsMCx7MHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZTQsMHhmNSwweDE4LDB4ZDIsMHgzNSwweGY1LDB4MGUsMHhmNSwweDEwLDB4ZDIsMHgzNn0sCi0gIDE2LDB4NGFkNiwwLHsweDc1LDB4MTIsMHgxMSwweDc1LDB4MTMsMHgyMiwweGMyLDB4MzcsMHhjMiwweDM5LDB4YzIsMHgzOCwweGY1LDB4MTYsMHhmNSwweDE0fSwKLSAgMTEsMHg0YWU2LDAsezB4ZjUsMHgxYSwweGY1LDB4MGQsMHhjMiwweDNiLDB4YzIsMHgzYywweGMyLDB4M2QsMHgyMn0sCi0gIDE2LDB4NGFmMSwwLHsweGU0LDB4ZmYsMHg3NCwweDU2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDI4fSwKLSAgMTYsMHg0YjAxLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDVlLDB4MmYsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDRiMTEsMCx7MHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDM4LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4M30sCi0gICA2LDB4NGIyMSwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY30sCi0gICAxLDB4NGIyNywwLHsweDIyfSwKLSAgMTYsMHg0YjI4LDAsezB4ZTQsMHg5MCwweDcyLDB4MzYsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTB9LAotICAxNiwweDRiMzgsMCx7MHg3MiwweDMzLDB4ZjAsMHg5MCwweDcyLDB4MzIsMHhmMCwweDkwLDB4NzIsMHgwMSwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzIsMHgzM30sCi0gIDE2LDB4NGI0OCwwLHsweGYwLDB4OTAsMHg3MiwweDMyLDB4ZjAsMHg5MCwweDcyLDB4MDEsMHgwNCwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg0NCwweDA0fSwKLSAgIDIsMHg0YjU4LDAsezB4ZjAsMHgyMn0sCi0gIDE2LDB4NGI1YSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwMiwweGYwfSwKLSAgMTYsMHg0YjZhLDAsezB4OTAsMHg3ZiwweGM3LDB4ZTAsMHhmNSwweDExLDB4NzUsMHgwZiwweDAwLDB4NzUsMHgwZCwweDAwLDB4ZDIsMHgzMywweGQwLDB4ODJ9LAotICAgNSwweDRiN2EsMCx7MHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0YjdmLDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4NDIsMHgwNCwweGUwLDB4NDR9LAotICAxNiwweDRiOGYsMCx7MHgwMiwweGYwLDB4N2YsMHhkYywweDdlLDB4MDUsMHgxMiwweDRkLDB4OWQsMHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZjcsMHhmMH0sCi0gICA1LDB4NGI5ZiwwLHsweGUwLDB4NDQsMHgwNCwweGYwLDB4MjJ9LAotICAxNiwweDRiYTQsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxNCwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MDQsMHgxMn0sCi0gIDE2LDB4NGJiNCwwLHsweDQ5LDB4NTgsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSwKLSAgIDMsMHg0YmM0LDAsezB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0YmM3LDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTMsMHg5MCwweDdmLDB4ZTksMHhlMCwweDE0LDB4NzAsMHgwNCwweDEyLDB4NGF9LAotICAxNiwweDRiZDcsMCx7MHgwMywweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gICAyLDB4NGJlNywwLHsweGYwLDB4MjJ9LAotICAxNiwweDRiZTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHg5MH0sCi0gIDE2LDB4NGJmOSwwLHsweDc2LDB4OTYsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwfSwKLSAgIDEsMHg0YzA5LDAsezB4MzJ9LAotICAxNiwweDRjMGEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE1LDB4NGMxYSwwLHsweGMyLDB4MjksMHg5MCwweDc2LDB4OGQsMHg3NCwweDAxLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGMyOSwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4MzAsMHhlNywweDEyLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3ZiwweDE0LDB4N2UsMHgwMCwweDEyfSwKLSAgMTAsMHg0YzM5LDAsezB4NGQsMHg5ZCwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4MjJ9LAotICAxNiwweDRjNDMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDI1LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOH0sCi0gICA4LDB4NGM1MywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjNWIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICA3LDB4NGM2YiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0YzcyLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDAyLDB4ZjB9LAotICAgNywweDRjODIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGM4OSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwNCwweGYwfSwKLSAgIDcsMHg0Yzk5LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjYTAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDQsMHhmMH0sCi0gICA3LDB4NGNiMCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Y2I3LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDA4LDB4ZjB9LAotICAgNywweDRjYzcsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGNjZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwOCwweGYwfSwKLSAgIDcsMHg0Y2RlLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjZTUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MTAsMHhmMH0sCi0gICA3LDB4NGNmNSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Y2ZjLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDEwLDB4ZjB9LAotICAgNywweDRkMGMsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQxMywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgyMCwweGYwfSwKLSAgIDcsMHg0ZDIzLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkMmEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MjAsMHhmMH0sCi0gICA3LDB4NGQzYSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDQxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDQwLDB4ZjB9LAotICAgNywweDRkNTEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg0MCwweGYwfSwKLSAgIDcsMHg0ZDY4LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkNmYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4ODAsMHhmMH0sCi0gICA3LDB4NGQ3ZiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDg2LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDgwLDB4ZjB9LAotICAgNywweDRkOTYsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQ5ZCwwLHsweDhlLDB4MzUsMHg4ZiwweDM2LDB4ZTUsMHgzNiwweDE1LDB4MzYsMHhhZSwweDM1LDB4NzAsMHgwMiwweDE1LDB4MzUsMHg0ZSwweDYwfSwKLSAgIDcsMHg0ZGFkLDAsezB4MDUsMHgxMiwweDE0LDB4ODUsMHg4MCwweGVlLDB4MjJ9LAotICAxNiwweDRkYjQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMH0sCi0gICA2LDB4NGRjNCwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGRjYSwwLHsweDkwLDB4NzYsMHg4MiwweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHhkMywweDIyfSwKLSAgMTIsMHg0ZGRhLDAsezB4YzIsMHgzNywweGU0LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhjMiwweDM2LDB4ZjUsMHgxNCwweDIyfSwKLSAgIDksMHg0ZGU2LDAsezB4YzIsMHgyNSwweDUzLDB4ZDgsMHhlZiwweDQzLDB4ZDgsMHgyMCwweDMyfSwKLSAgIDcsMHg0ZGVmLDAsezB4NTMsMHg5OCwweGZlLDB4NTMsMHg5OCwweGZkLDB4MzJ9LAotICAgNywweDRkZjYsMCx7MHg1MywweGMwLDB4ZmUsMHg1MywweGMwLDB4ZmQsMHgzMn0sCi0gICA2LDB4NGRmZCwwLHsweDUzLDB4OTEsMHg3ZiwweGQyLDB4MmMsMHgzMn0sCi0gICA0LDB4NGUwMywwLHsweDUzLDB4OTEsMHhkZiwweDMyfSwKLSAgIDQsMHg0ZTA3LDAsezB4NTMsMHhkOCwweGY3LDB4MzJ9LAotICAgNCwweDRlMGIsMCx7MHgxMiwweDE3LDB4MzAsMHgyMn0sCi0gICAzLDB4NGUwZiwwLHsweGMyLDB4OGQsMHgzMn0sCi0gICAzLDB4NGUxMiwwLHsweGMyLDB4OGYsMHgzMn0sCi0gICAyLDB4NGUxNSwwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMTcsMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTE5LDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUxYiwwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMWQsMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTFmLDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUyMSwwLHsweGMzLDB4MjJ9LAotICAgMCwweDAwMDAsMSx7MH0KLX07Ci0vKiBTb3VyY2U6IEVNSTYyTUZXLkhFWCAKLToxMDBDOEYwMDQxNzY2ODAxNDE3NjZBMDI0MTc2NkIwQUMxMjBDMTIxMjMKLToxMDQ0QUQwMEMyQUZEMjI0OTA3RjkzNzQzMEYwOTA3RjlDNzRCQkYwOTgKLToxMDQ0QkQwMDkwN0Y5NkUwNDQzMEYwRTA1NDMwRjA5MDdGOTQ3NDMwNkIKLToxMDQ0Q0QwMEYwOTA3RjlENzRDRkYwOTA3Rjk3NzRBMEYwOTA3Rjk1QzIKLToxMDQ0REQwMDc0QzBGMDkwN0Y5RTc0MDNGMDkwN0Y5OUUwMzBFMjA5RjQKLToxMDQ0RUQwMDkwMDUxOTc0QTBGMEU0QTNGMEMyMjVDMjIyQzIyM0MyMjQKLToxMDQ0RkQwMDI2MTI0QjI4MTIyREE5MTIzQkQzMTI0NjE5MTIzQTQyRkQKLToxMDQ1MEQwMDkwNzY2ODc0MDFGMDcwMEYxMjRDMjkxMjRFMTUxMjRFRjAKLToxMDQ1MUQwMDE3MTIxQjQwMTIxNDk2MTI0MzE0OTA3RkFGRTA0NDAxMDIKLToxMDQ1MkQwMEYwOTA3RkFFRTA0NDFGRjA5MDdGQUM3NEZGRjA5MDdGNzEKLToxMDQ1M0QwMEFERjA5MDdGREVGMDkwN0ZERkYwOTA3RkFCRjA5MDdGNUQKLToxMDQ1NEQwMEE5RjA5MDdGQUFGMDUzOTFFRjQzRDgyMEQyRTg0M0Q4MzkKLTowODQ1NUQwMDIwNTNBOEEwNDNBODgwMjIwRQotOjEwMDdBNjAwRTQ5MDc2NjZGMDEyNDRBRDIwMjYxMzkwNzY2NkUwQzM5OAotOjEwMDdCNjAwOTQwMjUwMEFFMDA0RjBEMjQyMTI0QjdGODBFQTMwMjZCRgotOjEwMDdDNjAwMDUxMjI4MDFDMjI2MzAyNTJCOTA3Njk2RTA1NEZDRjBCRgotOjEwMDdENjAwOTA4MDAzRjAxMjE0OTY5MDc2OTZFMDQ0MDNGMDkwODA5MQotOjEwMDdFNjAwMDNGMEU0OTA3NjY3RjA5MDc2NjdFMDA0RjBFMEI0NEJBRgotOjBBMDdGNjAwRjYxMjQ3RkExMjQxMUI4MEM1MjJEQgotOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQotOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNwotOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgotOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MwotOjEwMjg0MTAwNzA0MDEyM0ZFNTQxQ0IxMjRFMUQ0MDAyNDFDQjkwN0ZCQgotOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQwotOjEwMjg2MTAwNDFDQjEyNEUxRjkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0I0QQotOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgotOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgotOjEwMjg5MTAwRjU3MDA1MTI0ODYzNDFDQjkwN0ZCNEUwNDQwMUYwNDFFQgotOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAotOjEwMjhCMTAwNEUxRDQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTAwMgotOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMwotOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgotOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAotOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjRFMUY1OAotOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQwotOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MwotOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQotOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQotOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzRTc0MUNCMTI3NgotOjEwMjk1MTAwNERDQTQxQ0IxMjRFMUJBMjIyRTQzM0ZGMjVFMEZGQTI1OAotOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAotOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQotOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQotOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQotOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAotOjEwMjlCMTAwMTI0NzQ1NDFDQjEyNEUxQkU0OTA3RjAwRjBBM0YwOTBFQgotOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QwotOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0RTFCOTA4RQotOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgotOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAotOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQotOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQotOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAotOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQotOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQotOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAotOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQotOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAotOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQotOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAotOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQotOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEU1RAotOjEwMkFDMTAwMjE1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjRBMQotOjA1MkFEMTAwRTA0NDAyRjAyMkM4Ci06MTA0M0U3MDAxMjRFMTk0MDAyODFBQzkwN0ZFQkUwMjRGRTYwMUUxNDUwCi06MTA0M0Y3MDA2MDQ2MTQ2MDZFMTQ3MDAyODE5RDI0MDQ2MDAyODFBNURBCi06MTA0NDA3MDA3NDA1OTA3RkQ0RjA3NDAwOTA3RkQ1RjAyMjkwN0ZFQUY2Ci06MTA0NDE3MDBFMEZGMTI0QTU1OEIyMDhBMjE4OTIyRUE0OTYwMTFDRTkyCi06MTA0NDI3MDBFQUNFRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMkEwCi06MTA0NDM3MDA5MDdGQjRFMDQ0MDFGMDIyOTA3RkVBRTBGRjEyNDdCNzkzCi06MTA0NDQ3MDA4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRUVFOTA3RjNECi06MTA0NDU3MDBENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkI0RTA0NDNFCi06MTA0NDY3MDAwMUYwMjI5MDdGRUFFMEZGOTA3RUMwRTBGREEzRTBGQjMxCi06MTA0NDc3MDAxMjE3OTQ4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRTRECi06MTA0NDg3MDBFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkU5Ci06MTA0NDk3MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjIxCi06MDU0NEE3MDBCNEUwNDQwMUYwNDcKLTowMTQ0QUMwMDIyRUQKLTowMzAwMzMwMDAyNERFNjk1Ci06MDk0REU2MDBDMjI1NTNEOEVGNDNEODIwMzI1NgotOjAyMEM5RjAwQzEyRjYzCi06MDY0N0ZBMDAxMjRCMjhDMjMxMjIxRgotOjEwNDMxNDAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCMwotOjEwNDMyNDAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4MAotOjEwNDMzNDAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5MQotOjEwNDM0NDAwQ0E3Rjc1Q0JGODQzQTgyMDEyNDU2NUMyMkNDMjJEQzI4MgotOjEwNDM1NDAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGMAotOjEwNDM2NDAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUyQgotOjEwNDM3NDAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDlBRTEyMEY5RgotOjEwNDM4NDAwQzYxMjRBRjE5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDJBNQotOjEwNDM5NDAwMzAyMDMwMTgxMjRBQTYxMjMwMDAxMjQwMDAxMjQyMUY3OAotOjEwNDNBNDAwMTI0OEJEMTIxQjA0MTIxNjYxMTI0MjFGMTI0QUE2QzIwMQotOjEwNDNCNDAwMkZDMjMxQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTQ1NgotOjEwNDNDNDAwRjUxMTkwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzZGMgotOjEwNDNENDAwNDBGMDkwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY4MgotOjAzNDNFNDAwOTlGMDIyMkIKLToxMDQ4QkQwMDMwMkQzOUMyMkQ5MDc2MTlFMEZGQjQwMTBERTQ5MDc2QkMKLToxMDQ4Q0QwMDdDRjBBMzc0RjhGMEEzNzQwQUYwRUZCNDAyMERFNDkwMzkKLToxMDQ4REQwMDc2N0NGMEEzNzRGMEYwQTM3NDBCRjBFRkI0MDMwREU0NDkKLTowRDQ4RUQwMDkwNzY3Q0YwQTM3NEY4RjBBMzc0MTdGMDIyMEQKLToxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKLToxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKLToxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKLTowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCi06MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCi06MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCi06MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCi06MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCi06MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Ci06MTA0MTZCMDA5QTEyMzAwMDMwMzMwMzEyNDAwMDkwN0Y5QkUwMjBFNDIyCi06MTA0MTdCMDAwMkMyM0Y5MDdGOUJFMDMwRTQwMkQyM0Y5MDdGOUJFMEY2Ci06MTA0MThCMDAyMEU1MDJDMjNFOTA3RjlCRTAzMEU1MDJEMjNFQTI0MTg5Ci06MTA0MTlCMDAzMDNGMDFCMzUwMUZBMjNGOTI0MTMwM0YwOTkwNzY5N0I5Ci06MTA0MUFCMDBFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5NzBDCi06MTA0MUJCMDBFMDkwODAwMkYwMzAzRjM0OTA3NjE5RTBGRkI0MDEwRUFFCi06MTA0MUNCMDA5MDc2N0M3NDY3RjBBMzc0MDZGMEEzNzQwQkYwRUZCNEQ1Ci06MTA0MURCMDAwMjBCRTQ5MDc2N0NGMEEzRjBBMzc0MENGMEVGQjQwMzI1Ci06MTA0MUVCMDAwQkU0OTA3NjdDRjBBM0YwQTM3NDE4RjBBMjQwMzAzRTYxCi06MTA0MUZCMDAwMUIzNTAxRkEyM0U5MjQwMzAzRTA5OTA3Njk1RTA0NEE5Ci06MTA0MjBCMDAwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTA3Njk1RTA5MDYzCi06MDQ0MjFCMDA4MDAxRjAyMjBDCi06MDI0RTE1MDBEMzIyQTYKLTowMjRFMTcwMEQzMjJBNAotOjAyNEUxOTAwRDMyMkEyCi06MTAzRkU1MDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5Mjc4Ci06MEIzRkY1MDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyQ0QKLToxMDREQ0EwMDkwNzY4MkUwOTA3RjAwRjA5MDdGQjU3NDAxRjBEMzIyNTQKLToxMDQ4NjMwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxNzE0NjAyMTE0REQKLToxMDQ4NzMwMDYwMkIxNDYwMzIyNDA0NzAzODkwN0ZFQUUwOTA3NjkxQzQKLToxMDQ4ODMwMEYwODAzNTkwN0ZFQUUwOTA3NjkyRjAxMjNFOUY4MDI4ODgKLToxMDQ4OTMwMDkwN0ZFQUUwOTA3NjkwRjAxMjE4MDA4MDFCOTA3RkVBRjgKLToxMDQ4QTMwMEUwOTA3Njg0RjA4MDExOTA3RkVBRTA5MDc2OTNGMDgwMzgKLTowQTQ4QjMwMDA3OTA3RkI0RTA0NDAxRjBEMzIyMjcKLToxMDQ3NDUwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxRDE0NjAyQTE0RUQKLToxMDQ3NTUwMDYwMzcxNDYwNDQyNDA0NzA1MDkwNzY5MUUwOTA3RjAwOTcKLToxMDQ3NjUwMEYwOTA3RkI1NzQwMUYwODA0NzkwNzY5MkUwOTA3RjAwREQKLToxMDQ3NzUwMEYwOTA3RkI1NzQwMUYwODAzNzkwNzY5MEUwOTA3RjAwREYKLToxMDQ3ODUwMEYwOTA3RkI1NzQwMUYwODAyNzkwNzY4NEUwOTA3RjAwRUIKLToxMDQ3OTUwMEYwOTA3RkI1NzQwMUYwODAxNzkwNzY5M0UwOTA3RjAwREMKLToxMDQ3QTUwMEYwOTA3RkI1NzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOEMKLTowMjQ3QjUwMEQzMjIwRAotOjAyNEUxQjAwRDMyMkEwCi06MDI0RTFEMDBEMzIyOUUKLTowMjRFMUYwMEQzMjI5QwotOjAyNEUyMTAwQzMyMkFBCi06MTAyRkU3MDBDMEUwQzA4M0MwODJEMjI2NTM5MUVGOTA3RkFCNzQwMUJCCi06MDgyRkY3MDBGMEQwODJEMDgzRDBFMDMyNUIKLToxMDREQjQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDRGMEQwMDUKLTowNjREQzQwMDgyRDA4M0QwRTAzMjMyCi06MTAzRDQ3MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEY2Ci06MTAzRDU3MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkIxCi06MTAzRDY3MDBDMEUwOTA3RkEyRTA5MDc2N0ZGMDkwN0Y3NEUwOTA3NjNECi06MTAzRDc3MDA4N0YwOTA3Rjc1RTA5MDc2ODhGMDkwN0Y5OEUwNDQwMjE2Ci06MTAzRDg3MDBGMDkwNzY5NkUwRkYyMEUxMEM0NDAyRjA5MDgwMDNGMDdCCi06MTAzRDk3MDBEMjMyMTI0QjI4OTA3NjdGRTAyMEUyNTA5MDc2ODdFMDZGCi06MTAzREE3MDBGRUEzRTA3QzAwMjQwMEY1MzRFQzNFRjUzMzkwNzY5OEQyCi06MTAzREI3MDBFMEZEQUUzM0FGMzQxMjM2RDg5MDc2ODdFRkYwRDIyRkNFCi06MTAzREM3MDAzMDMxMjkyMDNGMjZDMjMxOTA3Rjk0RTA1NENGRjA5MEM0Ci06MTAzREQ3MDA3RjlBRTAzMEU0MDREMjJEQzIyQzkwN0Y5QUUwMjBFNTUwCi06MTAzREU3MDAwNEMyMkREMjJDOTA3Rjk0RTA0NDMwRjAxMjQ4QkQxMkNCCi06MTAzREY3MDAxQjA0MzAyRjEyMTI0MjFGQzIyRjc1RTgwMTEyMTY4QUI4Ci06MTAzRTA3MDA3NUU4MEREMjJCODAwNTc1RTgwMUMyMkIyMDJCMzQ5MDY1Ci06MTAzRTE3MDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjAwCi06MTAzRTI3MDBGMEEzNzQwQkYwRUZCNDAyMEI5MDc2N0NFNEYwQTNGMEYwCi06MTAzRTM3MDBBMzc0MENGMEVGQjQwMzBCOTA3NjdDRTRGMEEzRjBBMzJCCi06MTAzRTQ3MDA3NDE4RjA3NUNBRDM3NUNCRkVEMkNBMzAzNDA0QzIzNEE1Ci06MTAzRTU3MDA4MDAyRDIzNDMwMzQwRDkwNzY4OUUwQzM5NDAzNDAwNDU1Ci06MTAzRTY3MDBFMDI0RkRGMDUzOTFFRjkwN0ZBQjc0MDJGMEYwOTA3RjY4Ci06MTAzRTc3MDA5OEUwNTRGREYwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEM4Ci06MTAzRTg3MDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDE5Ci06MDgzRTk3MDA4MkQwODNEMEYwRDBFMDMyQUMKLToxMDRCRTkwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMDkwMDYKLToxMDRCRjkwMDc2OTZFMDU0RkRGMDkwODAwM0YwRDA4MkQwODNEMEUwMjcKLTowMTRDMDkwMDMyNzgKLTowMTJGRkYwMDMyOUYKLToxMDRDNDMwMEMwRTBDMDgzQzA4MkQyMjU1MzkxRUY5MDdGQUI3NDA4M0MKLTowODRDNTMwMEYwRDA4MkQwODNEMEUwMzJFMgotOjEwNEM1QjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjA4NAotOjA3NEM2QjAwRDA4MkQwODNEMEUwMzJCQgotOjEwNEMwQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAxRjBENAotOjBGNEMxQTAwQzIyOTkwNzY4RDc0MDFGMEQwODJEMDgzRDBFMDMyMjEKLToxMDRDNzIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMkYwNkMKLTowNzRDODIwMEQwODJEMDgzRDBFMDMyQTQKLToxMDRCNUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwODQKLToxMDRCNkEwMDkwN0ZDN0UwRjUxMTc1MEYwMDc1MEQwMEQyMzNEMDgyMjIKLTowNTRCN0EwMEQwODNEMEUwMzIwMQotOjEwNEM4OTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjA1MwotOjA3NEM5OTAwRDA4MkQwODNEMEUwMzI4RAotOjEwNENBMDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjAzQgotOjA3NENCMDAwRDA4MkQwODNEMEUwMzI3NgotOjEwNENCNzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjAyMQotOjA3NENDNzAwRDA4MkQwODNEMEUwMzI1RgotOjEwNENDRTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjAwOQotOjA3NENERTAwRDA4MkQwODNEMEUwMzI0OAotOjEwNENFNTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjBFQgotOjA3NENGNTAwRDA4MkQwODNEMEUwMzIzMQotOjEwNENGQzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjBEMwotOjA3NEQwQzAwRDA4MkQwODNEMEUwMzIxOQotOjEwNEQxMzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjBBQwotOjA3NEQyMzAwRDA4MkQwODNEMEUwMzIwMgotOjEwNEQyQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjA5NAotOjA3NEQzQTAwRDA4MkQwODNEMEUwMzJFQgotOjEwNEQ0MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjA1RQotOjA3NEQ1MTAwRDA4MkQwODNEMEUwMzJENAotOjEwNEQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjA0NgotOjA3NEQ2ODAwRDA4MkQwODNEMEUwMzJCRAotOjEwNEQ2RjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjBGMAotOjA3NEQ3RjAwRDA4MkQwODNEMEUwMzJBNgotOjEwNEQ4NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjBEOAotOjA3NEQ5NjAwRDA4MkQwODNEMEUwMzI4RgotOjEwNDIxRjAwOTA3NjE5RTA2NDAxNzAzNTkwNzY4N0UwRkZEMzk0MkQ4NgotOjEwNDIyRjAwNDAyQjkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDMxMQotOjEwNDIzRjAwOTQwRjQwMTlFNEYwRUZEMzk0MzE0MDA4OTA3NjE5NzQzRAotOjEwNDI0RjAwMDNGMDgwMDY5MDc2MTk3NDAyRjAxMjNFOUY5MDc2MTk1MwotOjEwNDI1RjAwRTBCNDAyMkM5MDc2ODdFMEZGQzM5NDJGNTAyMkVGRDM2NwotOjEwNDI2RjAwOTQyQTQwMUM5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBENQotOjEwNDI3RjAwRTBEMzk0MEY0MDBBRTRGMDkwNzYxOTA0RjAxMjNFOUZCOQotOjEwNDI4RjAwOTA3NjE5RTBCNDAyMjY5MDc2ODdFMEQzOTQzMTQwMURFMgotOjEwNDI5RjAwOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY2OQotOjEwNDJBRjAwNDAwQkU0RjA5MDc2MTk3NDAzRjAxMjNFOUY5MDc2MTk0QwotOjEwNDJCRjAwRTA2NDAzNzAzRjkwNzY4N0UwRkZDMzk0NUY1MDM1OTBDMgotOjEwNDJDRjAwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNDA4OQotOjEwNDJERjAwMjNFNEYwRUZDMzk0MkY1MDBDRUZEMzk0MkE0MDA2OTBCMQotOjEwNDJFRjAwNzYxOTc0MDFGMEVGRDM5NDJGNDAwNjkwNzYxOTc0MDI2QgotOjEwNDJGRjAwRjAxMjNFOUY5MDc2ODZFMDcwMDU5MDc2ODVGMDIyRTQ2RQotOjA1NDMwRjAwOTA3Njg2RjAyMjBCCi06MTA0NTY1MDA5MDc2OUE3NDAyRjBFNDkwNzY5MUYwQTNGMDkwNzY5MEFDCi06MTA0NTc1MDBGMDkwNzY5M0YwOTA3Njk2NzQwM0YwOTA4MDAzRjBFNEQzCi06MTA0NTg1MDA5MDc2OTdGMDkwODAwMkYwOTA3Njk0MDRGMDkwODAwMEY5Ci06MTA0NTk1MDBGMEU0OTA3NjhFRjA5MDc2MUFGMDkwNzY5NTA0RjBDMjVECi06MTA0NUE1MDAyRTkwN0Y5QkUwRkY1NDEwRkY3MDAyQzIzRjkwN0Y5QkNGCi06MTA0NUI1MDBFMEZGNTQxMEZFRkZCRTEwMDJEMjNGOTA3RjlCRTBGRjRDCi06MTA0NUM1MDA1NDIwRkY3MDAyQzIzRTkwN0Y5QkUwRkY1NDIwRkVGRjA3Ci06MTA0NUQ1MDBCRTIwMDJEMjNFMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDJGCi06MTA0NUU1MDAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMDhFCi06MTA0NUY1MDAzMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMDhBCi06MTA0NjA1MDA1NEZCRjA5MDc2OTVFMDkwODAwMUYwQTIzRTkyNDBBMjk2Ci06MDM0NjE1MDAzRjkyNDE5MAotOjAxNDYxODAwMjI3RgotOjEwM0U5RjAwOTA3NjkyRTAxNDYwMUQxNDcwMDJFMTU0MjQwMjYwMDJDNwotOjEwM0VBRjAwRTFFNDkwNzY5NDc0MDFGMDkwODAwMEYwRTQ5MDc2OEVDNwotOjEwM0VCRjAwRjBEMjMxMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGRjIyQgotOjEwM0VDRjAwRjA5MDdGRjM3NDMwRjA5MDdGRkY3NEZDRjA5MDc2OTc1MgotOjEwM0VERjAwRTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyRjBERQotOjEwM0VFRjAwOTA3RkYzNzQzNEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTAzRQotOjEwM0VGRjAwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwOTAxQgotOjEwM0YwRjAwN0ZGMzc0NjRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwNDQzOQotOjEwM0YxRjAwMDRGMDkwNzY5NEUwNDQwMUYwOTA4MDAwRjAzMDNGMDk3NwotOjEwM0YyRjAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjA4QQotOjEwM0YzRjAwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDRGMDkwNzZFNwotOjEwM0Y0RjAwOEU3NDAxRjAyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0Y4QwotOjEwM0Y1RjAwRjJGMDkwN0ZGMzc0NDRGMDkwN0ZGRjc0RkNGMDkwNzY1MgotOjEwM0Y2RjAwOTdFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJBNgotOjEwM0Y3RjAwRjA5MDdGRjM3NDRDRjA5MDdGRkY3NEZDRjA5MDc2OTc4NQotOjEwM0Y4RjAwRTA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjAzQQotOjEwM0Y5RjAwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTAyRAotOjEwM0ZBRjAwNDQwNEYwOTA3Njk0RTA1NEZFRjA5MDgwMDBGMDMwM0Y5RgotOjEwM0ZCRjAwMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFFMQotOjEwM0ZDRjAwRjA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNkYwOTBEQgotOjA2M0ZERjAwNzY4RTc0MDJGMDIyNTAKLToxMDE4MDAwMDkwNzY5MEUwMTQ2MDM3MTQ3MDAyMDFEODE0NzAwMjIxQjEKLToxMDE4MTAwMDcyMTQ3MDAyNDEzQjI0MDQ2MDAyNjEwMzkwN0ZGQzc0RTcKLToxMDE4MjAwMENDRjA5MDdGRkY3NEZDRjA5MDc2OTVFMDQ0MDFGMDU0OEEKLToxMDE4MzAwMDA1RjA5MDgwMDFGMEU0OTA3NjFBRjBDMjJFMjI5MDc2QTYKLToxMDE4NDAwMDk1RTA0NDAxRjA0NDAyRjAzMDNFMDZFMDQ0MDRGMDgwQUMKLToxMDE4NTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwN0EKLToxMDE4NjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyMjkwMjcKLToxMDE4NzAwMDdGRkM3NDc0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCNzMKLToxMDE4ODAwMEYwOTA3Njk3RTA1NEZERjBFNDkwNzY4MUYwOTA3NjgwQzkKLToxMDE4OTAwMEYwRUZCNDAyMjI5MDdGRkM3NDY4RjA5MDdGRkY3NEZDM0MKLToxMDE4QTAwMEYwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRjBFNDkwRjkKLToxMDE4QjAwMDc2ODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFODQKLToxMDE4QzAwMEYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA1NEZCMjMKLToxMDE4RDAwMEYwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0RkVGMDQ0RjMKLToxMDE4RTAwMDAyRjAzMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0MjQKLToxMDE4RjAwMEZCRjA5MDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxQjQKLToxMDE5MDAwMEYwOTA3NjE5RTBGRkI0MDEyMjkwN0ZGQzc0MzBGMDkwRTMKLToxMDE5MTAwMDdGRkY3NEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RjQKLToxMDE5MjAwMEZERjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyMjkwQTIKLToxMDE5MzAwMDdGRkM3NDFDRjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGMDYKLToxMDE5NDAwMEYwOTA3Njk3RTA0NDAyRjBFNDkwNzY4MUYwOTA3NjgwMTMKLToxMDE5NTAwMEYwMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3M0MKLToxMDE5NjAwMEUwNDQwMUYwOTA3Njk3RTA1NEZCRjA5MDgwMDJGMEQyRDIKLToxMDE5NzAwMDJFMjI5MDc2OTVFMDQ0MDFGMDQ0MDJGMDQ0MDhGMDMwQzUKLToxMDE5ODAwMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwMkEKLToxMDE5OTAwMDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxRjA5MDc2OTgKLToxMDE5QTAwMDE5RTBGRkI0MDEyNTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0QTgKLToxMDE5QjAwMEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RkRGMDU0MDUKLToxMDE5QzAwMEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyNTkwMDEKLToxMDE5RDAwMDdGRkM3NEM4RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGQkEKLToxMDE5RTAwMEYwOTA3Njk3RTA0NDAyRjA1NEZCRjBFNDkwNzY4MUYwQkEKLToxMDE5RjAwMDkwNzY4MEYwRUZCNDAzMjU5MDdGRkM3NDk4RjA5MDdGOTAKLToxMDFBMDAwMEZGNzRGQ0YwOTA3NjhGNzQ1RkYwOTA3Njk3RTA1NEZENTEKLToxMDFBMTAwMEYwNDQwNEYwRTQ5MDc2ODFGMDkwNzY4MEYwMzAzRjA5NTUKLToxMDFBMjAwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwQkUKLToxMDFBMzAwMDkwNzY5N0UwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0MzYKLToxMDFBNDAwMEZFRjA0NDAyRjA0NDA4RjAzMDNFMDZFMDQ0MDRGMDgwMkEKLToxMDFBNTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwNzgKLToxMDFBNjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyNTkwMjIKLToxMDFBNzAwMDdGRkM3NEI0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCMzEKLToxMDFBODAwMEYwOTA3Njk3RTA1NEZERjA1NEZCRjBFNDkwNzY4MUYwMEUKLToxMDFBOTAwMDkwNzY4MEYwRUZCNDAyMjU5MDdGRkM3NEIwRjA5MDdGRDgKLToxMDFBQTAwMEZGNzRGQ0YwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRUMKLToxMDFBQjAwMEYwNTRGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAzODAKLToxMDFBQzAwMDI1OTA3RkZDNzQ2OEYwOTA3RkZGNzRGQ0YwOTA3NjhGMTcKLToxMDFBRDAwMDc0NUZGMDkwNzY5N0UwNTRGREYwNDQwNEYwRTQ5MDc2NjMKLToxMDFBRTAwMDgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwRDgKLToxMDFBRjAwMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyMUUKLTowNDFCMDAwMEYwRDIyRTIyQ0YKLTowNDBDQTEwMDQxNzYyMzAwNzUKLToxMDJEQTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTIKLToxMDJEQjkwMDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MEZGNTgyREYKLToxMDJEQzkwMEU0MzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQxMEY1NkMKLToxMDJERDkwMDgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGQTAKLToxMDJERTkwMDc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQxMEYwQUMKLToxMDJERjkwMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA1QTcKLToxMDJFMDkwMEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4M0U0M0EKLToxMDJFMTkwMEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1OTcKLToxMDJFMjkwMDgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGN0UKLToxMDJFMzkwMEY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0ODgKLToxMDJFNDkwMDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwMDkKLToxMDJFNTkwMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0NUMKLToxMDJFNjkwMDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzQkUKLToxMDJFNzkwMDc0MDNGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1QkEKLToxMDJFODkwMDgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0QzMKLToxMDJFOTkwMDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBFRjc1RjAwM0E0MzAKLToxMDJFQTkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDZGMEVGNzVGMDAzQTkKLToxMDJFQjkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwQzUKLToxMDJFQzkwMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1RUYKLToxMDJFRDkwMDgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1Q0UKLToxMDJFRTkwMEY1ODM3NDA0RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0M0IKLToxMDJFRjkwMDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQjEKLToxMDJGMDkwMEE0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwQUMKLToxMDJGMTkwMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA4RjBFRjc1ODIKLToxMDJGMjkwMEYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDkwNTkKLToxMDJGMzkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTAKLToxMDJGNDkwMDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyNEMKLToxMDJGNTkwMEU0MzQ3NUY1ODM3NDBBRjBFRjc1RjAwM0E0MjQxMEY1RDEKLToxMDJGNjkwMDgyRTQzNDc1RjU4Mzc0MDRGMDkwNzYzNkUwMDRGMEUwNzkKLToxMDJGNzkwMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyMTkKLToxMDJGODkwMEYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MkEKLToxMDJGOTkwMDA5RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzODQKLToxMDJGQTkwMDc0MDRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0OTEKLToxMDJGQjkwMDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MUQKLToxMDJGQzkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDdGMEVGNzVGMDAzODcKLTowRTJGRDkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwMjIwQwotOjEwM0JEMzAwRTQ5MDc2MzZGMEUwRkI3NUYwMEZBNDI0NDFGNTgyRTQxRgotOjEwM0JFMzAwMzQ3NUY1ODM3NDQwRjBFQjc1RjAwRkE0MjQ0MkY1ODIyRAotOjEwM0JGMzAwRTQzNDc1RjU4Mzc0MEFGMEVCNzVGMDBGQTQyNDQzRjVGMAotOjEwM0MwMzAwODJFNDM0NzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjBEOQotOjEwM0MxMzAwMEZBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDBGNgotOjEwM0MyMzAwQUM0NEVCNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNCMwotOjEwM0MzMzAwMTIzN0M4MDAwMTc3MDA5MDc2MzZFMDA0RjBFMEZCNzU5OAotOjEwM0M0MzAwRjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MEYwRUI1RQotOjEwM0M1MzAwNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDhDRjA3NwotOjEwM0M2MzAwRUI3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4MzEyMzcyMgotOjEwM0M3MzAwQzgwMDAwQUM0NEVCNzVGMDBGQTQyNDQ3RjU4MkU0MzQ4QwotOjEwM0M4MzAwNzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjAwRkE0MjQxQwotOjEwM0M5MzAwNEJGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDE3NzAwOTA0MQotOjEwM0NBMzAwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTREQQotOjEwM0NCMzAwMzQ3NUY1ODM3NDQwRjBFRjc1RjAwRkE0MjQ0MkY1ODI1OAotOjEwM0NDMzAwRTQzNDc1RjU4Mzc0OEZGMDkwNzYzNkUwMDRGMEUwRkYwQQotOjEwM0NEMzAwNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQxRjA0MwotOjEwM0NFMzAwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0ODRGMAotOjEwM0NGMzAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU3MAotOjEwM0QwMzAwODJFNDM0NzVGNTgzNzQ2MUYwRUY3NUYwMEZBNDI0NDJGNwotOjEwM0QxMzAwRjU4MkU0MzQ3NUY1ODM3NDgxRjA5MDc2MzZFMDA0RjAyRgotOjEwM0QyMzAwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0NAotOjEwM0QzMzAwNjFGMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM0NgotOjA0M0Q0MzAwNzQwMUYwMjJGNQotOjEwNDYxOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTRFNQotOjEwNDYyOTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTRERgotOjEwNDYzOTAwMzQ3NUY1ODM3NDAxRjA5MDc2MzZFMDA0RjBFMEZGNzU4NwotOjEwNDY0OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzVDMAotOjEwNDY1OTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwMkYwOTBGMQotOjEwNDY2OTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTQyNQotOjEwNDY3OTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTQ4RgotOjEwNDY4OTAwMzQ3NUY1ODM3NDAzRjA5MDc2MzZFMDA0RjBFMEZGNzUzNQotOjEwNDY5OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzU3MAotOjEwNDZBOTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwNEYwMjIwRAotOjEwM0E0MjAwRTQ5MDc2MzVGMDkwNzYzNUUwRkZDMzk0MDM0MDAyNDE2RQotOjEwM0E1MjAwRkZFRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNTgzRUYyQQotOjEwM0E2MjAwRjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTQzMwotOjEwM0E3MjAwRjBFRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNzQ5MgotOjEwM0E4MjAwRjBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODMwNQotOjEwM0E5MjAwNzRGRkYwRUY3NUYwMEFBNDI0QUVGNTgyRTQzNDc1RjVGNAotOjEwM0FBMjAwODNFNEYwRUY3NUYwMEFBNDI0QUZGNTgyRTQzNDc1RjVFRgotOjEwM0FCMjAwODM3NDgwRjBFRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVDMwotOjEwM0FDMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVDRAotOjEwM0FEMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVCQwotOjEwM0FFMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVBQgotOjEwM0FGMjAwRjU4Mzc0MDFGMDkwNzYzNUUwMDRGMDQxNDc5MDc2M0MwRQotOjEwM0IwMjAwNzQwQUYwRTRBM0YwOTA3NjM1NzQwM0YwOTA3NjNDRTAwQQotOjEwM0IxMjAwRkY5MDc2MzVFMEZFQzM5RjQwMDI2MUQyOTA3NjNERTA5MQotOjEwM0IyMjAwRkYwNEYwRUU3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjVEOAotOjEwM0IzMjAwODNFRkYwRUU3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU1OAotOjEwM0I0MjAwODNFNEYwRUU3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU1MgotOjEwM0I1MjAwODM3NDVFRjBFRTc1RjAwQUE0MjRBREY1ODJFNDM0NzU0OAotOjEwM0I2MjAwRjU4Mzc0QkFGMEVFNzVGMDBBQTQyNEFFRjU4MkU0MzQ1QgotOjEwM0I3MjAwNzVGNTgzNzQwNUYwRUU3NUYwMEFBNDI0QUZGNTgyRTRCRQotOjEwM0I4MjAwMzQ3NUY1ODM3NDgwRjBFRTc1RjAwQUE0MjRCMEY1ODJFMgotOjEwM0I5MjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMUY1ODJGRAotOjEwM0JBMjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMkY1ODJFQwotOjEwM0JCMjAwRTQzNDc1RjU4Mzc0MTVGMEVFNzVGMDBBQTQyNEIzRjVCOAotOjEwM0JDMjAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNUUwMDRGMDYxMEUxQQotOjAxM0JEMjAwMjJEMAotOjEwMDgwMDAwRTQ5MDc2MzFGMDkwNzYzMUUwRkY3NUYwMDNBNDI0MEY4OAotOjEwMDgxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0QQotOjEwMDgyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYzMUUwMDRGMDgwRDU1MQotOjEwMDgzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNCMQotOjEwMDg0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYzM0YwMjQyOQotOjEwMDg1MDAwRjA2MDBBMjQwRTYwMDI4MTg3MTI0QkM3MjI5MDdGRUQ2MAotOjEwMDg2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzNzc0MDE0NQotOjEwMDg3MDAwRjA5MDc2Mzk3NDAzRjA5MDc2MjFGMEU0OTA3NjIwRjBEMQotOjEwMDg4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MjBFMEZGNzVGMDBBQTRGNAotOjEwMDg5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1QQotOjEwMDhBMDAwRUU2RDYwMTI5MDc2MjFFMEZFRUZDMzlFNTAwODkwNzZDOAotOjEwMDhCMDAwMjBFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFNQotOjEwMDhDMDAwMTg3NDA2RjA5MDc2Mzc3NDA0RjA5MDc2Mzk3NDBBRjA1NAotOjEwMDhEMDAwOTA3NjIxRjA5MDc2MjA3NDAzRjA5MDdGRUFFMEY0NjA0NwotOjEwMDhFMDAwMkY5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2NAotOjEwMDhGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY4NAotOjEwMDkwMDAwMjFFMEZFRUZDMzlFNTAwODkwNzYyMEUwMDRGMDgwRDFGNQotOjEwMDkxMDAwOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVFRAotOjEwMDkyMDAwRjU4M0UwOTA3MjI5RjBFNDkwNzYzQkYwOTA3NjIxRTAzOAotOjEwMDkzMDAwRkVFRjZFNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJGMAotOjEwMDk0MDAwRTAxNDYwMTMxNDcwMDIyMUUyMjQwMjYwMDI4MTdGOTA5RgotOjEwMDk1MDAwN0ZCNEUwNDQwMUYwMjI5MDdGRTlFMDE0NzA3QzkwN0Y0NgotOjEwMDk2MDAwRUFFMEY0NzA0ODkwNzYzN0UwOTA3NjIwRjA5MDc2Mzk5RgotOjEwMDk3MDAwRTBGRTkwNzYyMEUwRkRDMzlFNTAyQjkwNzYzQkUwRkU5QgotOjEwMDk4MDAwMDRGMDc0QzAyRUY1ODJFNDM0N0VGNTgzRTBGRUVENzU0QwotOjEwMDk5MDAwRjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRUVGMDkwNzY4QQotOjEwMDlBMDAwMjBFMDA0RjA4MEM3OTA3NjNGNzQwMUYwMjI5MDdFQzA3MgotOjEwMDlCMDAwRTBGRUVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODMwQwotOjEwMDlDMDAwRUVGMEUwQjQwMTA4OTA3NjNFNzQwMUYwODAwNUU0OTAwQQotOjEwMDlEMDAwNzYzRUYwOTA3NjNGNzQwMUYwMjI5MDdGQjRFMDQ0MDFCRgotOjEwMDlFMDAwRjAyMjkwN0ZFOUUwMjRGRTcwMDI0MUEzMTQ3MDAyNjFCRQotOjEwMDlGMDAwM0YxNDcwMDI2MURCMjQwMzYwMDI4MTc3OTA3RkVBRTA5QwotOjEwMEEwMDAwRjQ3MDZCOTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkZDNgotOjEwMEExMDAwOTA3NjIwRTBGRUMzOUY1MDRFOTA3NjNCRTBGRjA0RjBCRQotOjEwMEEyMDAwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBMgotOjEwMEEzMDAwQTQyNEFDRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCRTBDNgotOjEwMEE0MDAwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUVGRQotOjEwMEE1MDAwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTBDNwotOjEwMEE2MDAwNzYyMEUwMDRGMDgwQTQ5MDc2NDA3NDAxRjAyMjkwN0UxRAotOjEwMEE3MDAwQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBQ0Y1ODI3OQotOjEwMEE4MDAwRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEE3NwotOjEwMEE5MDAwQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjQxNzRDQgotOjEwMEFBMDAwMDFGMDIyOTA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzY2RAotOjEwMEFCMDAwMjBGMDkwNzYzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI2MAotOjEwMEFDMDAwODE4RTkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQxMQotOjEwMEFEMDAwN0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFFRjU4MkU0MzRERgotOjEwMEFFMDAwNzVGNTgzRUZGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjVDRQotOjEwMEFGMDAwODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFGRjVCRQotOjEwMEIwMDAwODJFNDM0NzVGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI2MwotOjEwMEIxMDAwOTA3RUMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUUzRgotOjEwMEIyMDAwRjU4MkU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzU1OQotOjEwMEIzMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRUZGMDIyOTAzNwotOjEwMEI0MDAwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzY1OQotOjEwMEI1MDAwMzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzZDMAotOjEwMEI2MDAwM0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBBRgotOjEwMEI3MDAwRkZFRTc1RjAwQUE0MjRCMEY1ODJFNDM0NzVGNTgzRUYzNgotOjEwMEI4MDAwRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGMQotOjEwMEI5MDAwRjU4M0UwRkZFRTc1RjAwQUE0MjRCMUY1ODJFNDM0NzUyNAotOjEwMEJBMDAwRjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTAyNAotOjEwMEJCMDAwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEIwRjU4MkU0MzRCQwotOjEwMEJDMDAwNzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjQ4NgotOjEwMEJEMDAwQjFGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFQUUwRjQxQQotOjEwMEJFMDAwNzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGOTA0RQotOjEwMEJGMDAwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2M0JFMEZGMDRBQQotOjEwMEMwMDAwRjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjBEQQotOjEwMEMxMDAwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JCNAotOjEwMEMyMDAwRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkYyQQotOjEwMEMzMDAwRUU3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU4M0VGRjA4MQotOjEwMEM0MDAwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwRkY5MDc2MjBCNQotOjEwMEM1MDAwRTBGRTc1RjAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUY2MgotOjEwMEM2MDAwRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0QjNGNTgyRTRCMwotOjEwMEM3MDAwMzQ3NUY1ODNFRkYwMjI5MDdGQjRFMDQ0MDFGMDIyOTBDOAotOjBGMEM4MDAwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyMDEKLToxMDEwMDAwMEU0OTA3NjJDRjA5MDc2MkNFMEZGNzVGMDAzQTQyNDBGOEEKLToxMDEwMTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENDIKLToxMDEwMjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MkNFMDA0RjA4MEQ1NEUKLToxMDEwMzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQTkKLToxMDEwNDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MkVGMDI0MjYKLToxMDEwNTAwMEYwNjAwQTI0MEY2MDAyODE3RDEyNEJBNDIyOTA3RkVEODQKLToxMDEwNjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzg3NDAxM0MKLToxMDEwNzAwMEYwOTA3NjNBNzQwM0YwOTA3NjFDRjBFNDkwNzYxQkYwRDIKLToxMDEwODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjFCRTBGRjc1RjAwQUE0RjEKLToxMDEwOTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENTIKLToxMDEwQTAwMEVFNkQ2MDEyOTA3NjFDRTBGRUVGQzM5RTUwMDg5MDc2QzUKLToxMDEwQjAwMDFCRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTIKLToxMDEwQzAwMDE4NzQwNkYwOTA3NjM4NzQwNEYwOTA3NjNBNzQwQUYwNEEKLToxMDEwRDAwMDkwNzYxQ0YwOTA3NjFCNzQwM0YwOTA3RkVBRTBGNDYwNDkKLToxMDEwRTAwMDJGOTA3NjFCRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjEKLToxMDEwRjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2N0MKLToxMDExMDAwMDFDRTBGRUVGQzM5RTUwMDg5MDc2MUJFMDA0RjA4MEQxRjcKLToxMDExMTAwMEU0OTA3NjFFRjA5MDc2MUNFMEZGOTA3NjFCRTBGRTZGNjgKLToxMDExMjAwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRTAxNDYwRkYKLToxMDExMzAwMDEzMTQ3MDAyMjFCRjI0MDI2MDAyODE3NTkwN0ZCNEUwMTUKLToxMDExNDAwMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzA2QjkwN0ZFQUUwMTkKLToxMDExNTAwMEY0NzA0QTkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTMKLToxMDExNjAwMDkwNzYxQkUwRkRDMzlGNTAyQkVENzVGMDBBQTQyNEFCRDUKLToxMDExNzAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkQwNEYwMUYKLToxMDExODAwMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwNTgKLToxMDExOTAwMDA0RjA4MEM3OTA3NjFFRTA5MDdGQjVGMDIyRUU3NUYwRTcKLToxMDExQTAwMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwNjcKLToxMDExQjAwMDkwN0ZCNTc0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwNUEKLToxMDExQzAwMDdGRTlFMDI0N0U3MDAyNDE3RTE0NzAwMjYxMjMxNDcwNzYKLToxMDExRDAwMDAyNjFDODI0MDM2MDAyODE2RDkwN0ZFQUUwRjQ3MDZEQzMKLToxMDExRTAwMDkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCOTAKLToxMDExRjAwMEUwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEFDRjU4MkU0RjEKLToxMDEyMDAwMDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJENDkKLToxMDEyMTAwMEY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEFEOTcKLToxMDEyMjAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNkQKLToxMDEyMzAwMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwQTYKLToxMDEyNDAwMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCOEIKLToxMDEyNTAwMEUwRkY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwNzAKLToxMDEyNjAwMDkwN0YwMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1QTgKLToxMDEyNzAwMEY1ODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQkIKLToxMDEyODAwMEVBRTBGNDcwNkQ5MDc2MzhFMDkwNzYxQkYwOTA3NjNBNTQKLToxMDEyOTAwMEUwRkY5MDc2MUJFMEMzOUY1MDRGRTBGRjc1RjAwQUE0N0IKLToxMDEyQTAwMDI0QUVGNTgyRTQzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMTEKLToxMDEyQjAwMDA0RjA3NDAwMkRGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RDEKLToxMDEyQzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0UwRkY5MDc2NEMKLToxMDEyRDAwMDFFRTBGRTA0RjA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGMDcKLToxMDEyRTAwMEYwOTA3NjFCRTAwNEYwODBBNDkwNzYxRUUwOTA3RkI1MkQKLToxMDEyRjAwMEYwMjI5MDc2MUJFMEZGNzVGMDBBQTQyNEFFRjU4MkU0OUMKLToxMDEzMDAwMDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVGMDBBQTQyNEFGMDgKLToxMDEzMTAwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MzkKLToxMDEzMjAwMDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2REIKLToxMDEzMzAwMDFCRjA5MDc2M0FFMEZGOTA3NjFCRTBDMzlGNTA0RkUwQTEKLToxMDEzNDAwMEZGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFMEZFNUQKLToxMDEzNTAwMDkwNzYxRUUwRkQwNEYwNzQwMDJERjU4MkU0MzQ3RkY1RjQKLToxMDEzNjAwMDgzRUVGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1NEMKLToxMDEzNzAwMDgzRTBGRjkwNzYxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MTgKLToxMDEzODAwMDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MzQKLToxMDEzOTAwMDFFRTA5MDdGQjVGMDIyOTA3NjFCRTBGRjc1RjAwQUE0NjYKLToxMDEzQTAwMDI0QjBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjBFRjc1QUEKLToxMDEzQjAwMEYwMEFBNDI0QjFGNTgyRTQzNDc1RjU4M0UwOTA3RjAxNEUKLToxMDEzQzAwMEYwOTA3RkI1NzQwMkYwMjI5MDdGRUFFMEY0NzA2RDkwQTcKLToxMDEzRDAwMDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQkUwNEUKLToxMDEzRTAwMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0QTUKLToxMDEzRjAwMDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyREY1OTcKLToxMDE0MDAwMDgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRCM0Y1OUYKLToxMDE0MTAwMDgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDc0RkMKLToxMDE0MjAwMDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDA0MjQKLToxMDE0MzAwMEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQkUwQkQKLToxMDE0NDAwMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFMDkwQzgKLToxMDE0NTAwMDdGMDBGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1NEIKLToxMDE0NjAwMDgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkI0MEEKLToxMDE0NzAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0NzgKLTowNTE0ODAwMEUwNDQwMUYwMjIzMAotOjEwMzg3NDAwRTQ5MDc2MjlGMDkwNzYyOUUwRkY3NUYwMEZBNDI0NDJCNQotOjEwMzg4NDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRBNwotOjEwMzg5NDAwNjAwRUVGQzM5NDA2NTAwODkwNzYyOUUwMDRGMDgwRDVCQQotOjEwMzhBNDAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEYwNgotOjEwMzhCNDAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyQUYwMjQ1QgotOjEwMzhDNDAwQkY3MDAyNDE0MTI0RTA3MDAyNDExMjI0MjE2MDAyNDE5MAotOjEwMzhENDAwM0E5MDdGRTlFMDI0RkU2MDdEMTQ3MDAyMjFCMjI0MDI1NAotOjEwMzhFNDAwNjAwMjQxMEExMjE3NTE5MDc2NDJFMEZDQTNFMEZEQTM2NgotOjEwMzhGNDAwRTBGRUEzRTBGRjkwNzYyOUUwNzVGMDBGQTQyNDQzRjVFMQotOjEwMzkwNDAwODJFNDM0NzVGNTgzMTIzN0JDOTA3NjE5RTBGRkI0MDE3NAotOjEwMzkxNDAwMTI5MDc2N0M3NDY3RjA5MDc2N0Q3NDA2RjA5MDc2N0VEMwotOjEwMzkyNDAwNzQwQkYwRUZCNDAyMEZFNDkwNzY3Q0YwOTA3NjdERjBBNwotOjEwMzkzNDAwOTA3NjdFNzQwQ0YwRUZCNDAzMEZFNDkwNzY3Q0YwOTBGNAotOjEwMzk0NDAwNzY3REYwOTA3NjdFNzQxOEYwOTA3NjFBNzQwMUYwMTJGOQotOjEwMzk1NDAwM0U5RjEyMTgwMDIyOTA3RUMyRTBGRkU0RkNGREZFRkJCNQotOjEwMzk2NDAwRkE3OTAxRjgxMjM3NDZDOEVDQzhDOUVEQzlDQUVFQ0FEQgotOjEwMzk3NDAwQ0JFRkNCOTA3RUMxRTBGRUU0RkNGRDJCRkJFQTNFRkFFQwotOjEwMzk4NDAwRUQzOUY5RUMzOEY4OTA3RUMwRTBGRkU0RkVFQjJGRkY1MAotOjEwMzk5NDAwRUUzQUZFRUQzOUZERUMzOEZDOTA3NjI5RTA3NUYwMEYzNwotOjEwMzlBNDAwQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QkMyMjkwN0U1MwotOjEwMzlCNDAwQzJFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIzNzQ2QzhDOQotOjEwMzlDNDAwRUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwN0VDMUUwRkUwQwotOjEwMzlENDAwRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwN0U3NQotOjEwMzlFNDAwQzBFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMzhDQwotOjEwMzlGNDAwRkM5MDc2MjlFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzUyRAotOjEwM0EwNDAwRjU4MzEyMzdCQzIyOTA3RkI0RTA0NDAxRjAyMjkwN0YwQQotOjEwM0ExNDAwRTlFMDE0NzAxOTkwN0VDMEUwRkY5MDc2MjlFMDc1RjAxQgotOjEwM0EyNDAwMEZBNDI0NEZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFMAotOjBFM0EzNDAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjlGCi06MTAyQUQ2MDBFNDkwNzYyN0YwOTA3NjI3RTBGRjc1RjAwRkE0MjQ0MjY1Ci06MTAyQUU2MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDUzCi06MTAyQUY2MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI3RTAwNEYwODBENTY4Ci06MTAyQjA2MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRkIxCi06MTAyQjE2MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjI4RjAyNDA4Ci06MTAyQjI2MDA5RjcwMDJBMTc0MjQyMTYwMDJBMUExOTA3RkU5RTAyNDk0Ci06MTAyQjM2MDA3RTcwMDI2MUZDMTQ3MDAyODFCNTI0MDI2MDAyQTE2Q0YxCi06MTAyQjQ2MDBFRjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0I5Ci06MTAyQjU2MDBBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5MDA3ODE2Ci06MTAyQjY2MDAwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0FCCi06MTAyQjc2MDBGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDRCCi06MTAyQjg2MDAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGRDRECi06MTAyQjk2MDBBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQzMxMjM2Ci06MTAyQkE2MDAzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwRTRBMzdFCi06MTAyQkI2MDBGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNEFCCi06MTAyQkM2MDA0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRTYzCi06MTAyQkQ2MDBBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QUI2MEY4Ci06MTAyQkU2MDAwMkExQTg5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGCi06MTAyQkY2MDA3RkI1NzQwM0YwMjI5MDc2MjdFMDc1RjAwRkE0MjQ0NzgyCi06MTAyQzA2MDBGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0MyCi06MTAyQzE2MDBFMEZGN0I0NDdBQUM3OTAwNzgwMEMzMTIzN0FCNzAxM0JGCi06MTAyQzI2MDA5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTNGMDkwN0ZCNUY5Ci06MTAyQzM2MDA3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDNDCi06MTAyQzQ2MDAzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjgzCi06MTAyQzU2MDA4MDdBQkI3OTAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDdGCi06MTAyQzY2MDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDNGMDE2Ci06MTAyQzc2MDA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDM0NzVGNUM1Ci06MTAyQzg2MDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjAwN0E3N0YwCi06MTAyQzk2MDA3OTAxNzgwMEMzMTIzN0FCNjAwMkExQTg5MDdGMDBGMERCCi06MTAyQ0E2MDBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MEJCCi06MTAyQ0I2MDA3NjI3RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4MzhFCi06MTAyQ0M2MDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTQxCi06MTAyQ0Q2MDAwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBM0UyCi06MTAyQ0U2MDA3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDFGCi06MTAyQ0Y2MDA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBMzRDCi06MTAyRDA2MDBFMEZEQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEJDCi06MTAyRDE2MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEJFCi06MTAyRDI2MDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRjdBCi06MTAyRDM2MDBBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0ZGCi06MTAyRDQ2MDBFMEZFQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0IzCi06MTAyRDU2MDBBQjcwNEY5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MEVFCi06MTAyRDY2MDA3RkI1NzQwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3Rjk3Ci06MTAyRDc2MDBFOUUwMjQ3RjcwMUU5MDc2MjdFMDc1RjAwRkE0MjQ0RkJCCi06MTAyRDg2MDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDdGQjU3NEFBCi06MTAyRDk2MDAwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NEY2Ci06MDMyREE2MDAwMUYwMjIxNwotOjEwNEJBNDAwOTA3RkVCRTAxNDcwMTQ5MDdGRTlFMDI0N0Y3MDA0MTI4RQotOjEwNEJCNDAwNDk1ODIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQ0RAotOjAzNEJDNDAwMDFGMDIyREIKLToxMDRCQzcwMDkwN0ZFQkUwMTQ3MDEzOTA3RkU5RTAxNDcwMDQxMjRBQjEKLToxMDRCRDcwMDAzMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxQzcKLTowMjRCRTcwMEYwMjJCQQotOjEwNDk1ODAwRTQ5MDc2MjZGMDkwNzYyNkUwRkY3NUYwMDNBNDI0MzRFMAotOjEwNDk2ODAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRCMgotOjEwNDk3ODAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNkUwMDRGMDgwRDVDQQotOjEwNDk4ODAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDMxRgotOjEwNDk5ODAwQTQyNDMyRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTAyQQotOjA2NDlBODAwN0ZCNTc0MDFGMDIyNEUKLToxMDRBMDMwMEU0OTA3NjI1RjA5MDc2MjVFMEZGNzVGMDAzQTQyNDM0MzYKLToxMDRBMTMwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEMDYKLToxMDRBMjMwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjVFMDA0RjA4MEQ1MUYKLToxMDRBMzMwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMjkwN0VDMEUwMUMKLToxMDRBNDMwMEZFRUY3NUYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0VFQUEKLTowMjRBNTMwMEYwMjI0RgotOjAzMDAwMzAwMDIwRkZERUMKLTowMzBGRkQwMEMyODkzMjc0Ci06MDMwMDEzMDAwMjE3RkRENAotOjAzMTdGRDAwQzI4QjMyNkEKLTowMzAwNEIwMDAyNEUwMzVGCi06MDQ0RTAzMDA1MzkxREYzMkI2Ci06MDMwMDUzMDAwMjQ4RkE2NgotOjA2NDhGQTAwNTM5MUJGRDIyRDMyRTQKLTowMzAwNUIwMDAyNERGRDU2Ci06MDY0REZEMDA1MzkxN0ZEMjJDMzIxRAotOjAzMDA2MzAwMDI0RTA3NDMKLTowNDRFMDcwMDUzRDhGNzMyNTMKLTowMzAwMEIwMDAyNEUwRjkzCi06MDM0RTBGMDBDMjhEMzIxRgotOjAzMDAxQjAwMDI0RTEyODAKLTowMzRFMTIwMEMyOEYzMjFBCi06MDMwMDIzMDAwMjRERUY5QwotOjA3NERFRjAwNTM5OEZFNTM5OEZEMzJCQQotOjAzMDAzQjAwMDI0REY2N0QKLTowNzRERjYwMDUzQzBGRTUzQzBGRDMyNjMKLTowMzAwMkIwMDAyNDgwMDg4Ci06MTA0ODAwMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDMyCi06MTA0ODEwMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkVECi06MTA0ODIwMDBDMEUwQzJDQUMyQ0Y5MDdGOThFMDQ0MDFGMDMwMkUwM0FFCi06MTA0ODMwMDAxMjE0QTY5MDdGOThFMDU0RkVGMDUzQThGQTEyMTY2MTY1Ci06MTA0ODQwMDBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMDM3Ci06MTA0ODUwMDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODJEMDgzRDBGMDI4Ci06MDM0ODYwMDBEMEUwMzI3MwotOjEwNEFBNjAwRTQ5MDc2OUJGMDkwNzY5QkUwRkYwNEYwRUY2MDA4RTBFMAotOjEwNEFCNjAwMjQwOEY4RTRGNjgwRUU5MDc2OTZFMDQ0MDRGMDQ0MDg4NAotOjEwNEFDNjAwRjA5MDgwMDNGMEU0RjUxOEQyMzVGNTBFRjUxMEQyMzZFNQotOjEwNEFENjAwNzUxMjExNzUxMzIyQzIzN0MyMzlDMjM4RjUxNkY1MTQ4QwotOjBCNEFFNjAwRjUxQUY1MERDMjNCQzIzQ0MyM0QyMjk4Ci06MTAzMDAwMDA5MDdGQjZFMDIwRTEwMkMyM0REMjM2MjAzNjAyNDE2RTBBCi06MTAzMDEwMDAzMDNEMDI0MTZFOTA4MDA3RTA2MDA0RDIzNjgwMDJDMkVCCi06MTAzMDIwMDAzNjIwMzYwMjQxMkVEMjM1RTRGNTFBOTA4MDA0RTBGNUMwCi06MTAzMDMwMDAxOTc0MDgyNTBFRjhBNjE5ODUxOTE4RTUxODIwRTcwNDUzCi06MTAzMDQwMDBEMjM4ODAwMkMyMzgzMDM4MDIyMUQ0RTRGNTE2RTUxOUFFCi06MTAzMDUwMDBCNEYwMENEMjM5NzUwODA0NzUwOUYwMDUwRTgwMDIwNTJDCi06MTAzMDYwMDAxNkU1MTk2NEY3NzAzREMyMzlFNTBFMjRGRTYwMTcxNEE5Ci06MTAzMDcwMDA2MDIyMjQwMzcwMjk3NTA4MDU3NTA5RjdFNEY1MEFGNTNGCi06MTAzMDgwMDAwQjc1MEUwNDgwMjA3NTA4MDY3NTBBRjdFNEY1MEI3NUJDCi06MTAzMDkwMDAwRTA0ODAxMjc1MDgwNzc1MEJGNzc1MEUwNDgwMDcxMjcxCi06MTAzMEEwMDA0RERBODAwMjA1MTZFNTE5NTRGODY0Rjg3MDNCQzIzNTE0Ci06MTAzMEIwMDBFNTE5MjQwNzYwMEMyNEZDNjAwODI0MDUyNEY4NTAwNjU4Ci06MTAzMEMwMDA4MDA4RDIzQTgwMDZDMjNBODAwMkQyM0E3NTFBMDEyMEFDCi06MTAzMEQwMDAzQTE5OTA3RTgwNzQwRkYwQTNFNTE5RjBFNEEzRjBBM0YxCi06MTAzMEUwMDBGMDkwN0ZCNzc0MDRGMDgwMDIwNTE2MjAzOTZERTUxOTYxCi06MTAzMEYwMDA2NEY3NjA2N0U1MUE3MDYzRTUxODU0RjA2NEYwNzA1OTdFCi06MTAzMTAwMDA4NTE4MTlGNTBFRTUxOTI0MEY2MDFCMjRGRTYwMTcyNDlECi06MTAzMTEwMDBGRDYwMjIxNDYwMUYyNDA1NzAyRjc1MDgwMzA1MEU4NUJECi06MTAzMTIwMDAxODA5RDIzNzgwMjg3NTA4MDIwNTBFODUxODA5NzUxNDBDCi06MTAzMTMwMDAwMUQyMzc4MDE5NzUwODA1MDUwRTg1MTgwOUU0RjUwQUNFCi06MTAzMTQwMDBGNTBCNzUwRTAzRDIzNzgwMDUxMjREREFDMjM1MzAzNUQ2Ci06MTAzMTUwMDAwQTg1MDgxMzg1MTgxMjgwMDIwNTE2ODUxODE5RTUxNkM4Ci06MTAzMTYwMDA2NDA0NzA2MkY1MEVFNTE5NTRGMEY1MTlGNTE1ODUxODJCCi06MTAzMTcwMDAxOUU1MTUyNDcwNjAxODI0RjA2MDE0MjRGMDYwMTAyNDAwCi06MTAzMTgwMDBGMDYwMUUyNEYwNjAxQTI0RjA2MDA0MjQ2MDcwMjdFNUNCCi06MTAzMTkwMDAxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOUQyMzc4MEE2Ci06MTAzMUEwMDAxQUU1MTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDk3NUFCCi06MTAzMUIwMDAxNDAxRDIzNzgwMDUxMjREREFDMjM1MzAzNTBBODUxOTJGCi06MTAzMUMwMDAxMzg1MTgxMjgwMDIwNTE2RTUxNkQzOTQwNTQwNTcxMjkwCi06MTAzMUQwMDA0RERBODA1MjMwMzkxN0U1MEU3MDBBODUwODA5NzUwOEY2Ci06MTAzMUUwMDAwNDA1MEU4MDQxNzQwODI1MEVGOEE2MTk4MDM4MjAzNzkyCi06MTAzMUYwMDAyQUU1MEVCNDAxMEY4NTA4MEE4NTA5MEI4NTEzMDg4NTk5Ci06MTAzMjAwMDAxMjA5NzUwRTA0RTUxNEI0MDExQzg1MDgwQUU0RjUwQkQ3Ci06MTAzMjEwMDA4NTEzMDg4NTEyMDk3NTBFMDQ4MDBCRTUxNEI0MDEwNkE4Ci06MTAzMjIwMDBFNEY1MEI3NTBFMDRFNEY1MUEzMDM1MDIwNTBFRTUwRUQzCi06MTAzMjMwMDBEMzk0MDM1MDAyMDEwQkMyMzdFNEY1MEVGNTEwQzIzNkU5Ci06MTAzMjQwMDBEMjNERjUxNDc0MDgyNTEwRjhFNkZGNzQ4MDI1MTBGNUJBCi06MTAzMjUwMDA4MkU0MzQ3RUY1ODNFRkYwNzQwODI1MTBGOEU0RjYwNTc3Ci06MEYzMjYwMDAxMEU1MTBCNDA0REU5MDdGQjc3NDA0RjAwMTBCMjI2OAotOjBDNEREQTAwQzIzN0U0RjUwRUY1MTBDMjM2RjUxNDIyQzUKLToxMDQwMDAwMEU1MTFEMzk0MDA1MDAyMjEwNjkwNzY4OUUwQzM5NDA4MEMKLToxMDQwMTAwMDQwMDIyMTA2NzQ0MDI1MEZGNTgyRTQzNDdFRjU4M0UwRUEKLToxMDQwMjAwMEY1MTdFNTBENjAwRTkwODAwNUU1MTdGMDkwNzY4OUUwQjQKLToxMDQwMzAwMDA0RjAwMURBRTUxNzEyMzdGOTQwQzEwMjQwNjcwNTQwODQKLToxMDQwNDAwMDdBMDY0MDk4MDc0MEMxMEM0MEMxMEQ0MEM3MEY0MENCRDUKLToxMDQwNTAwMEY2NDBDQkY4NDBDQkZBNDBDQkZCNDBDQkZDNDBDQkZFNEMKLToxMDQwNjAwMDQwQ0JGRjAwMDA0MERBOTA3RTQxRTA5MDgwMDVGMDkwNjgKLToxMDQwNzAwMDc2ODlFMDA0RjA3NTExMDE4MDYwOTA3RTQxRTA5MDgwQzcKLToxMDQwODAwMDA1RjA5MDdFNDJFMDkwODAwNUYwOTA3Njg5RTAwNEYwQTMKLToxMDQwOTAwMEUwMDRGMDc1MTEwMTgwNDI5MDdFNDFFMDkwODAwNUYwQ0YKLToxMDQwQTAwMDkwN0U0MkUwOTA4MDA1RjA5MDdFNDNFMDkwODAwNUYwQTUKLToxMDQwQjAwMDkwNzY4OUUwMDRGMEUwMDRGMEUwMDRGMDc1MTEwMTgwRUUKLToxMDQwQzAwMDE5RDIzQkQyM0M4MDEzRDIzQjgwMEY5MDgwMDVFNTE3N0MKLToxMDQwRDAwMEYwOTA3Njg5RTAwNEYwNzUxMTAxMjAzQjA0MDUwRDgwMTUKLToxMDQwRTAwMDFGMzAzQzFDOTA3RTQxRTA5MDgwMDVGMDkwN0U0MkUwQzUKLToxMDQwRjAwMDkwODAwNUYwOTA3Njg5RTAwNEYwRTAwNEYwNzUxMTAxRkQKLToxMDQxMDAwMDA1MEYxNTExMDEwMEU1MTE3MDEwQzIzM0Y1MERGNTBGMDMKLTowQjQxMTAwMDkwN0ZDNzc0MDRGMEMyM0JDMjNDMjI0OQotOjEwNEMyOTAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTI1NQotOjBBNEMzOTAwNEQ5RDkwN0ZENkUwNTRGRUYwMjI1RQotOjEwNEI3RjAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwNDIwNEUwNDQ2QwotOjEwNEI4RjAwMDJGMDdGREM3RTA1MTI0RDlEOTA3RkQ2RTA1NEY3RjA0QQotOjA1NEI5RjAwRTA0NDA0RjAyMkQ3Ci06MTA0RDlEMDA4RTM1OEYzNkU1MzYxNTM2QUUzNTcwMDIxNTM1NEU2MENCCi06MDc0REFEMDAwNTEyMTQ4NTgwRUUyMkJGCi06MTA0QTU1MDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOTY3Ci06MTA0QTY1MDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDE2Ci06MTA0QTc1MDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2MjQzCi06MTA0QTg1MDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFREY0Ci06MTA0QTk1MDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMDRECi06MDE0QUE1MDAyMkVFCi06MDQxNzk0MDA4RDI5OEIyQUU2Ci06MTAxNzk4MDAxMjRBNTVFQTQ5NjA1NzEyMzY5MjdFMDAyOUZGRUUzQUZFCi06MTAxN0E4MDBDOUVGQzk3NTJCRkZGNTJDODkyREFCMkJBQTJDQTkyREI4Ci06MTAxN0I4MDA5MDAwMDExMjM2QUJGRjY0MDQ2MDA1RUY2NDA1NzAyRURCCi06MTAxN0M4MDBFRkI0MDQxNTkwMDAwMjEyMzZBQjY1Mjk3MDBCOTAwMDM3Ci06MTAxN0Q4MDAwMzEyMzZBQjY1MkE3MDAxMjIxMjM2OTI3RTAwMjlGRjY5Ci06MTAxN0U4MDBFRTNBQzlFRkM5NzUyQkZGRjUyQzg5MkQ4MEJDN0IwMDFCCi06MDQxN0Y4MDA3QTAwNzkwMEZBCi06MDExN0ZDMDAyMkNBCi06MDI0N0I3MDA4RjJFNDMKLToxMDQ3QjkwMEU0RjUyRjc1MzBGRjc1MzEwNzc1MzIxQUFCMzBBQTMxMjAKLToxMDQ3QzkwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQUEKLToxMDQ3RDkwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNEEKLToxMDQ3RTkwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjIKLTowMTQ3RjkwMDIyOUQKLToxMDA1MDAwMDEyMDExMDAxMDAwMDAwNDA2QTA4MTEwMTAwMDEwMTAyRkYKLToxMDA1MTAwMDAwMDEwOTAyMDgwMjA1MDEwMDgwMzIwOTA0MDAwMDAwMDAKLToxMDA1MjAwMDAxMDEwMDAwMEEyNDAxMDAwMTU2MDAwMjAxMDIwQzI0MEUKLToxMDA1MzAwMDAyMDEwMTAxMDAwMjAwMDAwMDAwMEQyNDA2MDUwMTAyNzUKLToxMDA1NDAwMDAzMDAwMDAwMDAwMDAwMDkyNDAzMDIwNDAzMDAwNTAwNkEKLToxMDA1NTAwMDBDMjQwMjAzMDUwMjAwMDYwMDAwMDAwMDE1MjQwNjA2MTQKLToxMDA1NjAwMDAzMDIwMDAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMzAwNzQKLToxMDA1NzAwMDAwMDkyNDAzMDQwMTAxMDAwNjAwMDkwNDAxMDAwMDAxMzAKLToxMDA1ODAwMDAyMDAwMDA5MDQwMTAxMDIwMTAyMDAwMDA3MjQwMTAxMjgKLToxMDA1OTAwMDAwMDEwMDExMjQwMjAxMDIwMjEwMDM0NEFDMDA4MEJCRTAKLToxMDA1QTAwMDAwMDA3NzAxMDkwNTBBMDU4NDAxMDEwMDhGMDcyNTAxNzQKLToxMDA1QjAwMDAxMDAwMDAwMDkwNThGMDEwMzAwMDEwNTAwMDkwNDAxODUKLToxMDA1QzAwMDAyMDIwMTAyMDAwMDA3MjQwMTAxMDAwMTAwMTEyNDAyQkYKLToxMDA1RDAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NDkKLToxMDA1RTAwMDBBMDU0NjAyMDEwMDhGMDcyNTAxMDEwMDAwMDAwOTA1RTgKLToxMDA1RjAwMDhGMDEwMzAwMDEwNTAwMDkwNDAyMDAwMDAxMDIwMDAwNTAKLToxMDA2MDAwMDA5MDQwMjAxMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwQTUKLToxMDA2MTAwMDBFMjQwMjAxMDYwMjEwMDI0NEFDMDA4MEJCMDAwOTA1NTIKLToxMDA2MjAwMDhDMDU0QzAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0QUUKLToxMDA2MzAwMDAyMDIwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAwRTI0NEYKLToxMDA2NDAwMDAyMDEwNjAzMTgwMjQ0QUMwMDgwQkIwMDA5MDU4QzA1QkEKLToxMDA2NTAwMDcyMDMwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMjAzRTMKLToxMDA2NjAwMDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMjAxMUQKLToxMDA2NzAwMDAyMDIxMDAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNThDMjYKLToxMDA2ODAwMDA1ODQwMTAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyQTEKLToxMDA2OTAwMDA0MDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyRUEKLToxMDA2QTAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NzgKLToxMDA2QjAwMDhDMDU0NjAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MjQKLToxMDA2QzAwMDAzMDAwMDAxMDEwMDAwMDkyNDAxMDAwMTA5MDAwMTA0RTgKLToxMDA2RDAwMDA5MDQwNDAwMDIwMTAzMDAwMDA3MjQwMTAwMDEyNDAwQjIKLToxMDA2RTAwMDA2MjQwMjAxMDcwMDA5MjQwMzAyMDgwMTA3MDEwMDA2OEQKLToxMDA2RjAwMDI0MDIwMjA5MDAwOTI0MDMwMTBBMDEwOTAxMDAwOTA1NzUKLToxMDA3MDAwMDAxMDIwNDAwMDAwMDAwMDUyNTAxMDEwNzA5MDU4MTAyMUUKLToxMDA3MTAwMDA0MDAwMDAwMDAwNTI1MDEwMTBBMDQwMzA5MDQxODAzNzAKLToxMDA3MjAwMDQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NzAwMUMKLToxMDA3MzAwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMDYxMDA2NzAwMDMKLToxMDA3NDAwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDIwMDAzNjAwOEMKLToxMDA3NTAwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMDZGMDA2RTAwMTEKLToxMDA3NjAwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwMkUKLToxMDA3NzAwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNkMKLToxMDA3ODAwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNzUKLToxMDA3OTAwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUKLTowNjA3QTAwMDZFMDA2NzAwMDAwMDdFCi06MTAxNDg1MDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTdBCi06MDExNDk1MDAyMjM0Ci06MTAxNDk2MDA5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkUwCi06MTAxNEE2MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMERDCi06MTAxNEI2MDA4Q0UwQzBFMEMwODJDMDgzMDU4NkMwODRDMDg1N0QwMDA0Ci06MTAxNEM2MDA5MDdGRTM3NDdCRjBBMzc0ODBGMDdDMTE5MDdGOTlFMEE5Ci06MTAxNEQ2MDA1NDQwREMwMzAyMTRGM0I0MDAxMzkwN0ZFMjc0NDBGMDJFCi06MTAxNEU2MDA5MDdGRTVGMDkwN0ZFMjc0MDBGMDAyMTREMjkwNzY5MDNGCi06MTAxNEY2MDBFMEI0MDExMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMENCCi06MTAxNTA2MDA5MDdGNkMwMjE1NTdCNDAyMTI5MDc2OEZFMDJERkQ5MEY1Ci06MTAxNTE2MDA3RkUyNzQ4MEYwOTA3RjZDMDIxNTk2QjQwMzEyOTA3Njg5Ci06MTAxNTI2MDA4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTVFMUQ0Ci06MTAxNTM2MDBCNDA0MTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjA5MEQ3Ci06MTAxNTQ2MDA3RjZDMDIxNjEwOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNjFBCi06MTAxNTU2MDA0MEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERjI3REI5Ci06MTAxNTY2MDAwMjA1ODY5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNEZECi06MTAxNTc2MDAwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMDJECi06MTAxNTg2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERENDAyMTY0MEZDCi06MTAxNTk2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDQ1Ci06MTAxNUE2MDBGMEYwRERFQzdEMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjFFCi06MTAxNUI2MDA5QkUwNTQwNEI0MDAwNTA1ODYwMjE2NDA5MDdGRTI3NDUxCi06MTAxNUM2MDA4MEYwMDU4NkYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERBCi06MDYxNUQ2MDBGMEYwRjBGMEYwRjA2RgotOjEwMTVEQzAwRERDRTAyMTY0MEYwRjBGMEYwRERGQTdEMDIwNTg2OTBDQgotOjEwMTVFQzAwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1ODYwNAotOjEwMTVGQzAwMDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwREQ4QQotOjEwMTYwQzAwREMwMjE2NDBGMEYwRjBGMEYwRjBEREY4N0QwMjA1ODYxQgotOjEwMTYxQzAwOTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDVDOQotOjEwMTYyQzAwODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBCMAotOjEwMTYzQzAwRjBGMEREREE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODY3RQotOjEwMTY0QzAwRDA4M0QwODJEMEUwRkNEMEUwRkREMEUwRkVEMEUwRkYzMwotOjA1MTY1QzAwRDBFMEQwRDAyMjE3Ci06MTAxNjYxMDBDMEQwQzBFMEMwODJDMDgzOTA3NjdDRTA5MDdGNkZGMEY0Ci06MTAxNjcxMDA5MDc2N0RFMDkwN0Y2RkYwOTA3NjdFRTA5MDdGNkZGMEM2Ci06MDkxNjgxMDBEMDgzRDA4MkQwRTBEMEQwMjI0OQotOjEwMTY4QTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODM3RQotOjEwMTY5QTAwMDU4NkMwODRDMDg1OTA3Njg3RTBGRkJGMDAwMzAyMTdFNQotOjEwMTZBQTAwMDE5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0YxMgotOjEwMTZCQTAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0ZBNgotOjEwMTZDQTAwRjA5MDdGRTI3NDgwRjA5MDc2OEVFMEI0MDEwNTA1ODY5MgotOjEwMTZEQTAwMDIxNkY2QjQwMjA1MDU4NjAyMTZFQjA1ODYwMjE2RkIwQgotOjEwMTZFQTAwRTBFMEUwRTBFMEUwREZGODAyMTZGQkUwRTBFMEUwREY2NwotOjEwMTZGQTAwRkE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODZEMDgzRDAzQQotOjBDMTcwQTAwODJEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODIKLToxMDE3MTYwMEMwODJDMDgzQzBFMEU4QzBFMDc4RDFFODE0Rjg3MEZCNkUKLTowQTE3MjYwMEQwRTBGOEQwRTBEMDgzRDA4MjIyOUEKLToxMDBDQTUwMDQxNzIwMTAxNDU3MjA1MDAwMkM5MDAwMDQ1NzIwQTAwNDIKLToxMDBDQjUwMDAxMDIwMzA0NEQ3MjBGRDEwMEQxMDAwMDAwMDAwMDAwQjUKLToxMDBDQzUwMDI4MjgwOTAwNEQ3MjFDMDEwMDAxMDIwMzA0MDUwNjA3Q0UKLToxMDBDRDUwMDA4MDkwQTBCNDE3MjJFMjI0MTcyMkYyMzQxNzIzMDIwREUKLToxMDBDRTUwMDQxNzIzMTIxNjJEMjcyM0EwMDAwMDAwMDAwMDAwMDAwMUEKLToxMDBDRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDBEMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDBEMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDBEMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDBEMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDBENDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDBENTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDBENjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDBENzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxNjgKLToxMDBEODUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNEUKLToxMDBEOTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxM0UKLToxMDBEQTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMkUKLToxMDBEQjUwMDAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMTYKLToxMDBEQzUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRkUKLToxMDBERDUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRUUKLToxMDBERTUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyREUKLToxMDBERjUwMDAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQzMKLToxMDBFMDUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQUQKLToxMDBFMTUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOUQKLToxMDBFMjUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOEQKLToxMDBFMzUwMDAzMDMwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NkYKLToxMDBFNDUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NUQKLToxMDBFNTUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NEQKLToxMDBFNjUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0M0QKLToxMDBFNzUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MUQKLToxMDBFODUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MEQKLToxMDBFOTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1RkQKLToxMDBFQTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNjA2RUIKLToxMDBFQjUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2Q0QKLToxMDBFQzUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QkQKLToxMDBFRDUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QUQKLToxMDBFRTUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNzA3MDcwODA4OTYKLToxMDBFRjUwMDA4MDkwOTA5MEEwQTBBMEIwQjBCMEMwQzBDMEQwRDBENDAKLToxMDBGMDUwMDBFMEUwRTBGMEYwRjEwMTAxMDExMTExMTEyMTIxMjEzRDkKLToxMDBGMTUwMDEzMTMxNDE0MTQxNTE1MTUxNjE2MTYxNzE3MTcxODE4NzQKLToxMDBGMjUwMDE4MTkxOTE5MTkxQTFBMUExQTFCMUIxQjFCMUMxQzFDMTgKLToxMDBGMzUwMDFDMUQxRDFEMUQxRTFFMUUxRTFGMUYxRjFGMjAyMDIwQzgKLToxMDBGNDUwMDIxMjEyMTIyMjIyMjIzMjMyNDI0MjUyNTI2MjYyNzI3NjEKLToxMDBGNTUwMDI4MjgyOTI5MkEyQTJCMkIyQzJDMkQyRDJFMkUyRjJGRDQKLToxMDBGNjUwMDMwMzAzMTMxMzIzMjMzMzMzNDM0MzUzNTM2MzYzNzM3NDQKLToxMDBGNzUwMDM4MzgzOTM5M0EzQTNCM0MzRDNFM0Y0MDQxNDI0MzQ0OUIKLToxMDBGODUwMDQ1NDY0NzQ4NDk0OTRBNEI0QjRDNEQ0RTRGNTA1MTUyQTcKLToxMDBGOTUwMDUzNTQ1NTU1NTY1NjU3NTc1ODVBNUI1RDVFNUY2MTYyQjcKLToxMDBGQTUwMDYzNjQ2NTY2Njc2ODY5NkE2QjZDNkQ2RjcxNzI3Mzc0OEIKLToxMDBGQjUwMDc1NzY3Nzc4Nzk3QTdCN0M3RTgwMDEzNzAxMDEzODAwRjgKLToxMDRCMjgwMEU0OTA3MjM2RjBBM0YwOTA3Rjk3RTA1NEZCRjBFNDkwQTUKLToxMDRCMzgwMDcyMzNGMDkwNzIzMkYwOTA3MjAxMDRGMEU0OTA3MjMzQTQKLToxMDRCNDgwMEYwOTA3MjMyRjA5MDcyMDEwNEYwOTA3Rjk3RTA0NDA0ODQKLTowMjRCNTgwMEYwMjI0OQotOjEwMzI2RjAwOTA3NjE4RTBGRjY0MDU3MDQyOTA3NUFCRTBCNDAxMTlEOQotOjEwMzI3RjAwOTA3MjM3NzQwMUYwRTQ5MDgwMjBGMDkwODAzMUYwOTBEQwotOjEwMzI4RjAwODAyOEYwOTA4MDM5RjA4MDIyRTQ5MDcyMzdGMDkwNzVBQQotOjEwMzI5RjAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA3MQotOjEwMzJBRjAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI1MgotOjEwMzJCRjAwODE5OTkwNzIzOTc0MDRGMDkwNzIzOUUwRkYyNEZFOTA3NgotOjEwMzJDRjAwNzIwNEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjVCRgotOjEwMzJERjAwODNFMDY0MDE3MDU0OTA3MjM2MDRGMDkwNzIwNEUwRkY0MgotOjEwMzJFRjAwMjRGRDYwMjgyNEZFNjAyNDI0MDMyNEZCNTAwNDYwMUM2QQotOjEwMzJGRjAwODE4Qzc0MjAyRkY1ODJFNDM0ODBGNTgzRTRGMDc0MjhGOAotOjEwMzMwRjAwMkZGNTgyRTQzNDgwRjU4M0U0RjA4MThDOTA3MjA0RTAzMQotOjEwMzMxRjAwRkYyNDMwRjU4MkU0MzQ4MEY1ODNFNEYwNzQzODJGRjUyMAotOjEwMzMyRjAwODJFNDM0ODBGNTgzRTRGMDgxOENFNDkwNzIzNkYwOTA3RgotOjEwMzMzRjAwNzIzOUUwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODM5MwotOjEwMzM0RjAwRTBGRjdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIyOAotOjEwMzM1RjAwMDI3NDNCRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzBBQQotOjEwMzM2RjAwMDQ5MDcyMDJGMEVGNEU3MDAyODEzNUVGNjQ4MDRFNzA2MAotOjEwMzM3RjAwMDI4MTM1RUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwOTA0MAotOjEwMzM4RjAwNzIzNEUwNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM0OQotOjEwMzM5RjAwRTBGRjkwNzIwMkYwOTA3NTBERTAyRkYwOTA3NTBDRTA0OQotOjEwMzNBRjAwMzQwMEYwRTBGRUEzRTBGRkU0RkNGRDdCRDY3QUE1Rjk0NAotOjEwMzNCRjAwRjhEMzEyMzc5NTQwMEE5MDc1MEM3NEE1RjBBMzc0RDYwNAotOjEwMzNDRjAwRjA5MDc1MERFMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTA3RgotOjEwMzNERjAwRkVBM0UwNzgwNUNFQTJFNzEzQ0UxM0Q4RjhGRjkwNzVDMQotOjEwMzNFRjAwMENFRUYwQTNFRkYwOTA3MjJDRUVGMEEzRUZGMEQzOTQ2RAotOjEwMzNGRjAwRDJFRTY0ODA5NDgyNDAwQTkwNzIyQzc0MDJGMEEzNzQwRgotOjEwMzQwRjAwRDJGMEMzOTA3MjJDRTA2NDgwOTQ4MDUwMDRFNEYwQTM1NwotOjEwMzQxRjAwRjA5MDcyMkNFMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjVDMAotOjEwMzQyRjAwODNFMDkwNzIwMkYwOTA3MjA0RTBGRjI0RkQ2MDJEMjQ3RgotOjEwMzQzRjAwRkU2MDI5MjQwMzI0RkI1MDA0NjAyMTgwNDA5MDcyMDIxNwotOjEwMzQ0RjAwRTBGRTc0MjAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0MjhDQgotOjEwMzQ1RjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA4MDIxOTA3MjAyRTA0NAotOjEwMzQ2RjAwRkY5MDcyMDRFMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZBMAotOjEwMzQ3RjAwRjA3NDM4MkVGNTgyRTQzNDgwRjU4M0VGRjA5MDcyMzlEMgotOjBCMzQ4RjAwRTAwNEYwRTA2NDBBNjAwMjQxQzcyMjg0Ci06MTAzNDlBMDA5MDc2MThFMEZGQjQwNTIzOTA3MjM3RTA3MDFEOTA3NTlFCi06MTAzNEFBMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDY0Ci06MTAzNEJBMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjQ1Ci06MTAzNENBMDBDMTkxOTA3MjM2RTA2MDAyQzE5MTkwNzY0MEUwNzAzMTBECi06MTAzNERBMDA5MDcyMDM3NDAzRjA5MDcyMDNFMEZGNzVGMDBBQTQyNDVCCi06MTAzNEVBMDBBQUY1ODJFNDM0NzVGNTgzRTBGRTkwNzIyOUUwRkRFRUQ4Ci06MTAzNEZBMDA2RDYwMEVFRkMzOTQwQTUwMDg5MDcyMDNFMDA0RjA4MEU2Ci06MTAzNTBBMDBENTkwNzIzOTc0MDRGMDkwNzY0MEUwNzAwODkwNzIwMzk2Ci06MTAzNTFBMDBFMDkwNzIzOUYwOTA3MjM5RTBGRDI0RkU5MDcyMkFGMDQwCi06MTAzNTJBMDBFRDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRTBGRjY1Ci06MTAzNTNBMDA3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMDI3NEE0Ci06MTAzNTRBMDA4MEYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwMDQ5MDVBCi06MTAzNTVBMDA3MjAyRjBFRjRFNzAwMkMxMUJFRjY0ODA0RTcwMDJDMTFFCi06MTAzNTZBMDAxQkVGRjhFNDkwNzUwREYwRTg5MDc1MENGMEVENzVGMDJFCi06MTAzNTdBMDAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTBGRjkwNzIwMjY0Ci06MTAzNThBMDBGMDkwNzUwREUwMkZGMDkwNzUwQ0UwMzQwMEYwRTBGRTNECi06MTAzNTlBMDBBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5RjhEMzEyMzc5NUIwCi06MTAzNUFBMDA0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2RjA5MDc1MERFMERFCi06MTAzNUJBMDAyNDJBRjA5MDc1MENFMDM0NUFGMEUwRkVBM0UwNzgwNTc2Ci06MTAzNUNBMDBDRUEyRTcxM0NFMTNEOEY4RkY5MDc1MENFRUYwQTNFRjU2Ci06MTAzNURBMDBGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0RDJFRTY0ODA5NEM0Ci06MTAzNUVBMDA4MjQwMEE5MDcyMkM3NDAyRjBBMzc0RDJGMEMzOTA3MkQzCi06MTAzNUZBMDAyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzRjA5MDcyMkNFMEY0Ci06MTAzNjBBMDBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1ODNFMDkwNzIwMjZBCi06MTAzNjFBMDBGMDkwNzIyQUUwRkYyNEZENjAyRDI0RkU2MDI5MjQwMzI1Ci06MTAzNjJBMDAyNEZCNTAwNDYwMjE4MDQwOTA3MjAyRTBGRTc0MjAyRjM3Ci06MTAzNjNBMDBGNTgyRTQzNDgwRjU4M0VFRjA3NDI4MkZGNTgyRTQzNEMxCi06MTAzNjRBMDA4MEY1ODNFRUYwODAyMTkwNzIwMkUwRkY5MDcyMkFFMDBBCi06MTAzNjVBMDBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGRjA3NDM4MkVGNUQ5Ci06MTAzNjZBMDA4MkU0MzQ4MEY1ODNFRkYwOTA3NjQwRTA3MDA2OTA3MjQxCi06MTAzNjdBMDAzOTc0MEFGMDkwNzIzOUUwMDRGMEUwQzM5NDBBNTAwMkY3Ci06MDgzNjhBMDBBMTExRTQ5MDc2NDBGMDIyNEEKLTowNDRFMEIwMDEyMTczMDIyMjgKLToxMDQ5QUUwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjYKLToxMDQ5QkUwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwQUYKLToxMDQ5Q0UwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzMkMKLToxMDQ5REUwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwQ0YKLToxMDQ5RUUwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwQUEKLTowNTQ5RkUwMEEzRjBBM0YwMjI2QwotOjEwMEZDNjAwRTRGRjc0NDYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0MjA2MAotOjEwMEZENjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDRFMkZGNTgyRTQyQgotOjEwMEZFNjAwMzQ3NkY1ODNFMEZFNzQzMDJGRjU4MkU0MzQ4MEY1ODNBMQotOjA2MEZGNjAwRUVGMDBGQkYwOENDNzUKLTowMTBGRkMwMDIyRDIKLToxMDRBRjEwMEU0RkY3NDU2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDI4RTIKLToxMDRCMDEwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ1RTJGRjU4MkU0QjQKLToxMDRCMTEwMDM0NzZGNTgzRTBGRTc0MzgyRkY1ODJFNDM0ODBGNTgzMzIKLTowNjRCMjEwMEVFRjAwRkJGMDhDQzBFCi06MDE0QjI3MDAyMjZCCi06MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECi06MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCi06MDMwMDQzMDAwMjQ5MDA2RgotOjEwNDkwMDAwMDIyRkU3MDAwMjNENDcwMDAyNERCNDAwMDI0QzQzMDA3NQotOjEwNDkxMDAwMDI0QkU5MDAwMjJGRkYwMDAyNEM1QjAwMDI0QzBBMDAzMAotOjEwNDkyMDAwMDI0QzcyMDAwMjRCNUEwMDAyNEM4OTAwMDI0Q0EwMDA1QgotOjEwNDkzMDAwMDI0Q0I3MDAwMjRDQ0UwMDAyNENFNTAwMDI0Q0ZDMDBEOQotOjEwNDk0MDAwMDI0RDEzMDAwMjREMkEwMDAyNEQ0MTAwMDI0RDU4MDA1NQotOjA4NDk1MDAwMDI0RDZGMDAwMjREODYwMENDCi06MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Ci06MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Ci06MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Ci06MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Ci06MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Ci06MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Ci06MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Ci06MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Ci06MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Ci06MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Ci06MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Ci06MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Ci06MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Ci06MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Ci06MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Ci06MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Ci06MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Ci06MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Ci06MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Ci06MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Ci06MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Ci06MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Ci06MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Ci06MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Ci06MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Ci06MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Ci06MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Ci06MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Ci06MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCi06MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCi06MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCi06MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCi06MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCi06MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCi06MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCi06MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCi06MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCi06MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCi06MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCi06MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCi06MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCi06MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCi06MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCi06MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCi06MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCi06MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCi06MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCi06MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCi06MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCi06MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCi06MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCi06MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCi06MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCi06MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCi06MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCi06MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKLToxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKLToxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKLToxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKLToxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKLToxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKLToxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKLToxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKLToxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKLTowMjFGM0UwMDAwMDBBMQotOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQotOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQotOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQotOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQotOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQotOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQotOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQotOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQotOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQotOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQotOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQotOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAotOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAotOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAotOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAotOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAotOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAotOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAotOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAotOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAotOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAotOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAotOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAotOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAotOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAotOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAotOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgotOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgotOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgotOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgotOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgotOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgotOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgotOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgotOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgotOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgotOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgotOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgotOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgotOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgotOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgotOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQotOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQotOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQotOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQotOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQotOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQotOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQotOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQotOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQotOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAotOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCi06MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCi06MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCi06MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCi06MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCi06MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCi06MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCi06MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCi06MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCi06MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCi06MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCi06MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCi06MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCi06MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCi06MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCi06MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCi06MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCi06MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCi06MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECi06MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECi06MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECi06MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECi06MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECi06MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECi06MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECi06MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECi06MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECi06MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECi06MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCi06MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCi06MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCi06MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCi06MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCi06MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCi06MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCi06MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCi06MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCi06MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCi06MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCi06MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCi06MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCi06MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCi06MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLToxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKLToxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKLToxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKLToxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKLToxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKLToxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKLToxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKLToxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKLToxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKLTowNTI3RkMwMDAwMDAwMDAwMjJCNgotOjA3MTc0QTAwOTA3RkM1NzQwMkYwMjIzQwotOjEwMTc1MTAwOTA3RUMwRTA5MDc2NDVGMDkwN0VDMUUwOTA3NjQ0RjBCNgotOjEwMTc2MTAwOTA3RUMyRTA5MDc2NDNGMEI0MDAwMzAyMTc3ODkwNzY0MQotOjEwMTc3MTAwMTk3NDAzRjAwMjE3OEU5MDc2NDRFMEI0QkIwOTkwNzY5OQotOjEwMTc4MTAwMTk3NDAyRjAwMjE3OEU5MDc2MTk3NDAxRjA5MDc2NDI2NgotOjAzMTc5MTAwRTRGMDIyNUYKLTowMzAwMDAwMDAyNDZCOUZDCi06MEM0NkI5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ3MDBEOAotOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgotOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKLToxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKLToxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKLTowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKLToxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKLToxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKLToxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKLTowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCi06MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Ci06MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Ci06MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCi06MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKLToxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKLToxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKLToxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKLToxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKLTowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCi06MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCi06MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgotOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAotOjAxMzdCQjAwMjJFQgotOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKLToxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKLToxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKLToxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKLTowMTM3RjgwMDIyQUUKLToxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKLToxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKLTowNjM4MTkwMEVGQTNBM0EzODBERjcyCi06MTA0NkM1MDAwMjA3QTZFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjVFCi06MTA0NkQ1MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0Y2Ci06MTA0NkU1MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkM1Ci06MTA0NkY1MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQzhGRTQ3RUJBCi06MTA0NzA1MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0I5Ci06MTA0NzE1MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzgwCi06MTA0NzI1MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUFCCi06MTA0NzM1MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTYzCi06MDEwRkM1MDAwMDJCCi06MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECi06MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Ci06MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCi06MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Ci06MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Ci06MDUzODZGMDAwRkQ1RjBFQTIyNzQKLTowMDAwMDAwMUZGCi0vKgotVkVSU0lPTj0xLjA0LjA2MgotREFURT0xNi4xMC4yMDAyICAKLSovCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX2VtaTYyX2xvYWRlcltdID0gewotICAgMywweDAwMDAsMCx7MHgwMiwweDAyLDB4ODd9LAotICAgMywweDAwNDMsMCx7MHgwMiwweDA0LDB4MDB9LAotICAxNiwweDAxMDAsMCx7MHhlNCwweGZmLDB4ZmUsMHhjMiwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDgsMHgyMCwweDkwLDB4N2YsMHhhYiwweDc0LDB4ZmYsMHhmMH0sCi0gIDE2LDB4MDExMCwwLHsweDkwLDB4N2YsMHhhOSwweGYwLDB4OTAsMHg3ZiwweGFhLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4OTUsMHg3NCwweGMwfSwKLSAgMTYsMHgwMTIwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWUsMHhmMCwweDkwLDB4N2YsMHg5OCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTQsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDAxMzAsMCx7MHg5ZCwweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHg5NywweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHg5MywweGUwLDB4NTQsMHhmY30sCi0gIDE2LDB4MDE0MCwwLHsweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHgwMywweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTYsMHhmMCwweDkwLDB4N2YsMHhhZiwweGUwfSwKLSAgMTYsMHgwMTUwLDAsezB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDBkLDB4ZjAsMHhkMiwweGFmLDB4MGYsMHhiZiwweDAwLDB4MDF9LAotICAxNiwweDAxNjAsMCx7MHgwZSwweGJlLDB4MDcsMHhmOCwweGJmLDB4MDgsMHhmNSwweDIwLDB4MjAsMHg0MiwweDc1LDB4MTQsMHgwMCwweDc1LDB4MTMsMHgwMH0sCi0gIDE2LDB4MDE3MCwwLHsweDc1LDB4MTIsMHgwMCwweDc1LDB4MTEsMHgwMCwweDdmLDB4NDgsMHg3ZSwweDkyLDB4N2QsMHgwMCwweDdjLDB4MDAsMHhhYiwweDE0fSwKLSAgMTYsMHgwMTgwLDAsezB4YWEsMHgxMywweGE5LDB4MTIsMHhhOCwweDExLDB4YzMsMHgxMiwweDAzLDB4ZWQsMHg1MCwweGRiLDB4MjAsMHgyMCwweGQ4LDB4N2F9LAotICAxNiwweDAxOTAsMCx7MHgwMCwweDc5LDB4MDAsMHg3OCwweDAwLDB4ZTUsMHgxNCwweDI0LDB4MDEsMHhmNSwweDE0LDB4ZWEsMHgzNSwweDEzLDB4ZjUsMHgxM30sCi0gIDE2LDB4MDFhMCwwLHsweGU5LDB4MzUsMHgxMiwweGY1LDB4MTIsMHhlOCwweDM1LDB4MTEsMHhmNSwweDExLDB4ODAsMHhjYSwweDMwLDB4MjAsMHhmZCwweDEyfSwKLSAgMTYsMHgwMWIwLDAsezB4MDEsMHhjNywweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9LAotICAgNiwweDAxYzAsMCx7MHgwMiwweGYwLDB4YzIsMHgyMCwweDgwLDB4ZTZ9LAotICAgMSwweDAxYzYsMCx7MHgyMn0sCi0gIDE2LDB4MDFjNywwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg1YiwweDYwLDB4NjAsMHgyNCwweDAyLDB4NjAsMHgwMywweDAyLDB4MDIsMHg4NSwweDkwfSwKLSAgMTYsMHgwMWQ3LDAsezB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjUsMHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTB9LAotICAxNiwweDAxZTcsMCx7MHg3ZiwweGVlLDB4ZTAsMHg3NSwweDE1LDB4MDAsMHhmNSwweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNX0sCi0gIDE2LDB4MDFmNywwLHsweDE2LDB4NDUsMHgxNSwweDcwLDB4MDMsMHgwMiwweDAyLDB4ODUsMHhlNCwweDkwLDB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0fSwKLSAgMTYsMHgwMjA3LDAsezB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGMsMHgxMiwweDAzLDB4MTMsMHhhZiwweDBjLDB4N2V9LAotICAxNiwweDAyMTcsMCx7MHgwMCwweGVmLDB4MjUsMHgwYiwweGY1LDB4MGIsMHhlZSwweDM1LDB4MGEsMHhmNSwweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNX0sCi0gIDE2LDB4MDIyNywwLHsweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4YzcsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1fSwKLSAgMTYsMHgwMjM3LDAsezB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwLDB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjV9LAotICAxNiwweDAyNDcsMCx7MHgxNiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDE1LDB4ZTUsMHgxNiwweDQ1LDB4MTUsMHg2MCwweDMwLDB4ZTQsMHg5MH0sCi0gIDE2LDB4MDI1NywwLHsweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjfSwKLSAgMTYsMHgwMjY3LDAsezB4MTIsMHgwMywweDJiLDB4YWYsMHgwYywweDdlLDB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjV9LAotICAxNSwweDAyNzcsMCx7MHgwYSwweGMzLDB4ZTUsMHgxNiwweDlmLDB4ZjUsMHgxNiwweGU1LDB4MTUsMHg5ZSwweGY1LDB4MTUsMHg4MCwweGNhLDB4YzN9LAotICAgMSwweDAyODYsMCx7MHgyMn0sCi0gIDEyLDB4MDI4NywwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgyOSwweDAyLDB4MDIsMHhjZX0sCi0gIDE2LDB4MDI5MywwLHsweDAyLDB4MDEsMHgwMCwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSwKLSAgMTYsMHgwMmEzLDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9LAotICAxNiwweDAyYjMsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0sCi0gIDE2LDB4MDJjMywwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDA0LDB4NmUsMHhlNCwweDdlfSwKLSAgMTYsMHgwMmQzLDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9LAotICAxNiwweDAyZTMsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30sCi0gIDE2LDB4MDJmMywwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSwKLSAgMTYsMHgwMzAzLDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9LAotICAxNiwweDAzMTMsMCx7MHhlNSwweDBjLDB4ZmYsMHhlNSwweDBiLDB4ZjUsMHg4MiwweGU1LDB4MGEsMHhmNSwweDgzLDB4NzUsMHg5MiwweDdlLDB4NzQsMHhjMH0sCi0gICA4LDB4MDMyMywwLHsweGY4LDB4ZTIsMHgwOCwweGYwLDB4YTMsMHhkZiwweGZhLDB4MjJ9LAotICAxNiwweDAzMmIsMCx7MHg5MCwweDdmLDB4OTYsMHg4NSwweDgzLDB4OTIsMHhhOCwweDgyLDB4NzksMHgwMiwweDkwLDB4MDAsMHgwMCwweGUwLDB4YjQsMHgwMH0sCi0gIDE2LDB4MDMzYiwwLHsweDBkLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg0NCwweDgwLDB4ZjAsMHhlNSwweDBjfSwKLSAgMTYsMHgwMzRiLDAsezB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGY1LDB4MjgsMHhlNCwweGEyLDB4NDcsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTJ9LAotICAxNiwweDAzNWIsMCx7MHg0NiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ1LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDQsMHgzM30sCi0gIDE2LDB4MDM2YiwwLHsweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQyLDB4MzMsMHhmMiwweDY5fSwKLSAgMTYsMHgwMzdiLDAsezB4ZjIsMHhlNCwweGEyLDB4NDEsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MCwweDMzLDB4ZjIsMHg2OSwweGYyLDB4YTN9LAotICAgMywweDAzOGIsMCx7MHhkZiwweGMyLDB4MjJ9LAotICAxNiwweDAzOGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDdmLDB4YzQsMHhlNCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3Zn0sCi0gIDExLDB4MDM5ZSwwLHsweGFiLDB4NzQsMHgwNCwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDAzYTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDIwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0sCi0gICA4LDB4MDNiOSwwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDAzYzEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhkMH0sCi0gICA2LDB4MDNkMSwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4MDNkNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweGQwfSwKLSAgIDYsMHgwM2U3LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHgwM2VkLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9LAotICAgMSwweDAzZmQsMCx7MHgyMn0sCi0gICAxLDB4MDNmZSwwLHsweDMyfSwKLSAgIDEsMHgwM2ZmLDAsezB4MzJ9LAotICAxNiwweDA0MDAsMCx7MHgwMiwweDAzLDB4YTksMHgwMCwweDAyLDB4MDMsMHhjMSwweDAwLDB4MDIsMHgwMywweDhlLDB4MDAsMHgwMiwweDA0LDB4NTgsMHgwMH0sCi0gIDE2LDB4MDQxMCwwLHsweDAyLDB4MDMsMHhkNywweDAwLDB4MDIsMHgwMywweGZlLDB4MDAsMHgwMiwweDAzLDB4ZmYsMHgwMCwweDAyLDB4MDQsMHg4NCwweDAwfSwKLSAgMTYsMHgwNDIwLDAsezB4MDIsMHgwNCwweDg1LDB4MDAsMHgwMiwweDA0LDB4ODYsMHgwMCwweDAyLDB4MDQsMHg4NywweDAwLDB4MDIsMHgwNCwweDg4LDB4MDB9LAotICAxNiwweDA0MzAsMCx7MHgwMiwweDA0LDB4ODksMHgwMCwweDAyLDB4MDQsMHg4YSwweDAwLDB4MDIsMHgwNCwweDhiLDB4MDAsMHgwMiwweDA0LDB4OGMsMHgwMH0sCi0gIDE2LDB4MDQ0MCwwLHsweDAyLDB4MDQsMHg4ZCwweDAwLDB4MDIsMHgwNCwweDhlLDB4MDAsMHgwMiwweDA0LDB4OGYsMHgwMCwweDAyLDB4MDQsMHg5MCwweDAwfSwKLSAgIDgsMHgwNDUwLDAsezB4MDIsMHgwNCwweDkxLDB4MDAsMHgwMiwweDA0LDB4OTIsMHgwMH0sCi0gIDE2LDB4MDQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweGQwfSwKLSAgIDYsMHgwNDY4LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHgwNDZlLDAsezB4MDIsMHgwYSwweDAwLDB4MGYsMHgwMSwweDBjLDB4MTEsMHgwNCwweDBkLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDAwLDB4MDB9LAotICAgMSwweDA0N2UsMCx7MHgwMH0sCi0gICA0LDB4MDQ3ZiwwLHsweDAyLDB4MTcsMHgwMCwweDAwfSwKLSAgIDEsMHgwNDgzLDAsezB4MDB9LAotICAgMSwweDA0ODQsMCx7MHgzMn0sCi0gICAxLDB4MDQ4NSwwLHsweDMyfSwKLSAgIDEsMHgwNDg2LDAsezB4MzJ9LAotICAgMSwweDA0ODcsMCx7MHgzMn0sCi0gICAxLDB4MDQ4OCwwLHsweDMyfSwKLSAgIDEsMHgwNDg5LDAsezB4MzJ9LAotICAgMSwweDA0OGEsMCx7MHgzMn0sCi0gICAxLDB4MDQ4YiwwLHsweDMyfSwKLSAgIDEsMHgwNDhjLDAsezB4MzJ9LAotICAgMSwweDA0OGQsMCx7MHgzMn0sCi0gICAxLDB4MDQ4ZSwwLHsweDMyfSwKLSAgIDEsMHgwNDhmLDAsezB4MzJ9LAotICAgMSwweDA0OTAsMCx7MHgzMn0sCi0gICAxLDB4MDQ5MSwwLHsweDMyfSwKLSAgIDEsMHgwNDkyLDAsezB4MzJ9LAotICAxNiwweDExMDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0sCi0gIDE2LDB4MTExMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4MjAsMHgwMCwweDAxLDB4MDEsMHgwMywweGEwLDB4MDAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAyfSwKLSAgMTYsMHgxMTIwLDAsezB4ZmYsMHgwMCwweDAwLDB4MDQsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDB9LAotICAxNiwweDExMzAsMCx7MHgwMCwweDAwLDB4MDQsMHgwMywweDA5LDB4MDQsMHgyNiwweDAzLDB4NDEsMHgwMCwweDZlLDB4MDAsMHg2MywweDAwLDB4NjgsMHgwMH0sCi0gIDE2LDB4MTE0MCwwLHsweDZmLDB4MDAsMHg3MiwweDAwLDB4MjAsMHgwMCwweDQzLDB4MDAsMHg2OCwweDAwLDB4NjksMHgwMCwweDcwLDB4MDAsMHg3MywweDAwfSwKLSAgMTYsMHgxMTUwLDAsezB4MmMsMHgwMCwweDIwLDB4MDAsMHg0OSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHgyZSwweDAwLDB4MjgsMHgwMywweDQ2LDB4MDB9LAotICAxNiwweDExNjAsMCx7MHg2OSwweDAwLDB4NzIsMHgwMCwweDZkLDB4MDAsMHg3NywweDAwLDB4NjEsMHgwMCwweDcyLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMH0sCi0gIDE2LDB4MTE3MCwwLHsweDQ2LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDZkLDB4MDAsMHg2NSwweDAwLDB4NTcsMHgwMCwweDZmLDB4MDAsMHg3MiwweDAwfSwKLSAgMTYsMHgxMTgwLDAsezB4NmIsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDB9LAotICAxNiwweDExOTAsMCx7MHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMH0sCi0gIDE2LDB4MTFhMCwwLHsweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgyMiwweDAzfSwKLSAgMTYsMHgxMWIwLDAsezB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDB9LAotICAxNiwweDExYzAsMCx7MHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMH0sCi0gICAyLDB4MTFkMCwwLHsweDAwLDB4MDB9LAotICAgMCwweDAwMDAsMSx7MH0KLX07Ci0vKiBTb3VyY2U6IEVNSUxPQUQuSEVYIAotOjEwMDQ2RTAwMDIwQTAwMEYwMTBDMTEwNDBEMDAwMDAwMDA0MTAwMDBGMwotOjAxMDQ3RTAwMDA3RAotOjEwMDFDNzAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMjg1OTA2RgotOjEwMDFENzAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTAyMQotOjEwMDFFNzAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU5NwotOjEwMDFGNzAwMTY0NTE1NzAwMzAyMDI4NUU0OTA3RkM1RjA5MDdGQjQyMQotOjEwMDIwNzAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAzMTNBRjBDN0VGNQotOjEwMDIxNzAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUzQQotOjEwMDIyNzAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU3QgotOjEwMDIzNzAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjVCMQotOjEwMDI0NzAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA4RQotOjEwMDI1NzAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MEMwRgotOjEwMDI2NzAwMTIwMzJCQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjVDRAotOjBGMDI3NzAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzNTcKLTowMTAyODYwMDIyNTUKLToxMDAzQTkwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMkIKLTowODAzQjkwMEYwRDA4MkQwODNEMEUwMzJDNQotOjEwMDM4RTAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0ZCMQotOjBCMDM5RTAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkJBCi06MTAwM0MxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjBEMDQ0Ci06MDYwM0QxMDA4MkQwODNEMEUwMzI2RgotOjEwMDNENzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDAyMAotOjA2MDNFNzAwODJEMDgzRDBFMDMyNTkKLTowMTAzRkUwMDMyQ0MKLToxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwQTYKLTowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Ci06MDEwM0ZGMDAzMkNCCi06MDEwNDg0MDAzMjQ1Ci06MDEwNDg1MDAzMjQ0Ci06MDEwNDg2MDAzMjQzCi06MDEwNDg3MDAzMjQyCi06MDEwNDg4MDAzMjQxCi06MDEwNDg5MDAzMjQwCi06MDEwNDhBMDAzMjNGCi06MDEwNDhCMDAzMjNFCi06MDEwNDhDMDAzMjNECi06MDEwNDhEMDAzMjNDCi06MDEwNDhFMDAzMjNCCi06MDEwNDhGMDAzMjNBCi06MDEwNDkwMDAzMjM5Ci06MDEwNDkxMDAzMjM4Ci06MDEwNDkyMDAzMjM3Ci06MDQwNDdGMDAwMjE3MDAwMDYwCi06MTAwMTAwMDBFNEZGRkVDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDFBCi06MTAwMTEwMDA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1NzRDMEUzCi06MTAwMTIwMDBGMDkwN0Y5RUYwOTA3Rjk4RjBFNDkwN0Y5NEYwOTA3RjI1Ci06MTAwMTMwMDA5RDc0RkZGMDkwN0Y5Nzc0QTBGMDkwN0Y5M0UwNTRGQzQzCi06MTAwMTQwMDBGMDkwN0Y5Qzc0MDNGMEU0OTA3Rjk2RjA5MDdGQUZFMDk2Ci06MTAwMTUwMDA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUYwRkJGMDAwMTNDCi06MTAwMTYwMDAwRUJFMDdGOEJGMDhGNTIwMjA0Mjc1MTQwMDc1MTMwMDc1Ci06MTAwMTcwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNEUzCi06MTAwMTgwMDBBQTEzQTkxMkE4MTFDMzEyMDNFRDUwREIyMDIwRDg3QUJDCi06MTAwMTkwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzBECi06MTAwMUEwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjNCCi06MTAwMUIwMDAwMUM3NTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDYxCi06MDYwMUMwMDAwMkYwQzIyMDgwRTZGRgotOjAxMDFDNjAwMjIxNgotOjEwMTEwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwMwotOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgotOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QwotOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAotOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNwotOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQotOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAotOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QwotOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQotOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgotOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MwotOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMwotOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMwotOjAyMTFEMDAwMDAwMDFECi06MTAwMzEzMDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDYzCi06MDgwMzIzMDBGOEUyMDhGMEEzREZGQTIyNjIKLToxMDAzMkIwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwQkEKLToxMDAzM0IwMDBENzQwMUYwOTA3Rjk3RTA1NDdGRjA0NDgwRjBFNTBDNTIKLToxMDAzNEIwMEZGOTA3RUMwRTBGNTI4RTRBMjQ3MzNGMjY5RjJFNEEyMDUKLToxMDAzNUIwMDQ2MzNGMjY5RjJFNEEyNDUzM0YyNjlGMkU0QTI0NDMzODQKLToxMDAzNkIwMEYyNjlGMkU0QTI0MzMzRjI2OUYyRTRBMjQyMzNGMjY5OTYKLToxMDAzN0IwMEYyRTRBMjQxMzNGMjY5RjJFNEEyNDAzM0YyNjlGMkEzNTAKLTowMzAzOEIwMERGQzIyMkFDCi06MDMwMDQzMDAwMjA0MDBCNAotOjEwMDQwMDAwMDIwM0E5MDAwMjAzQzEwMDAyMDM4RTAwMDIwNDU4MDA4NwotOjEwMDQxMDAwMDIwM0Q3MDAwMjAzRkUwMDAyMDNGRjAwMDIwNDg0MDA2RgotOjEwMDQyMDAwMDIwNDg1MDAwMjA0ODYwMDAyMDQ4NzAwMDIwNDg4MDA5QQotOjEwMDQzMDAwMDIwNDg5MDAwMjA0OEEwMDAyMDQ4QjAwMDIwNDhDMDA3QQotOjEwMDQ0MDAwMDIwNDhEMDAwMjA0OEUwMDAyMDQ4RjAwMDIwNDkwMDA1QQotOjA4MDQ1MDAwMDIwNDkxMDAwMjA0OTIwMDc1Ci06MDMwMDAwMDAwMjAyODc3MgotOjBDMDI4NzAwNzg3RkU0RjZEOEZENzU4MTI5MDIwMkNFRDQKLToxMDAzRUQwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNjYKLTowMTAzRkQwMDIyREQKLToxMDAyOTMwMDAyMDEwMEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyODAKLToxMDAyQTMwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNkMKLToxMDAyQjMwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGM0IKLToxMDAyQzMwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDA0NkVFNDdFNTkKLToxMDAyRDMwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMzAKLToxMDAyRTMwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRjcKLToxMDAyRjMwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMjIKLToxMDAzMDMwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFRDkKLTowMTA0ODMwMDAwNzgKLTowMDAwMDAwMUZGCi0vKgotVkVSU0lPTj0xLjAuMi4wMDIKLURBVEU9MTAuMDEuMjAwMgotRU1JMjZfNjIKLSovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyX2Z3X3MuaCBiL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWYwNWU4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfcy5oCisrKyAvZGV2L251bGwKQEAgLTEsODgzNyArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHRocmVlIGRpZmZlcmVudCBmaWxlcywgcHJvdmlkZWQgYnkgRW1hZ2ljLgotICovCi0vKiBnZW5lcmF0ZWQgVHVlIEFwciAxNSAyMTo1OTo0MiBFRVNUIDIwMDMgKi8KLQotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19lbWk2MmJzW109ewotIHsxNiwgMHg4MDEwLCAwLCB7MHhmZiwweGZmLDB4ZmYsMHhmZiwweGFhLDB4OTksMHg1NSwweDY2LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwNyB9fSwKLSB7MTYsIDB4ODAyMCwgMCwgezB4MzAsMHgwMSwweDYwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwZCwweDMwLDB4MDEsMHgyMCwweDAxLDB4MDAsMHg4MCwweDNmLDB4MmQgfX0sCi0gezE2LCAweDgwMzAsIDAsIHsweDMwLDB4MDAsMHhjMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5IH19LAotIHsxNiwgMHg4MDQwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMSB9fSwKLSB7MTYsIDB4ODA1MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MDAsMHg1MCwweDAwLDB4NTgsMHgxYSwweDgwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0MCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwOTAsIDAsIHsweDAwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NDggfX0sCi0gezE2LCAweDgwYzAsIDAsIHsweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTAwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTMwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE3MCwgMCwgezB4ODAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFhMCwgMCwgezB4MDAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxZTAsIDAsIHsweDdmLDB4MTAsMHgwMCwweDM0LDB4MDAsMHgwZCwweDAwLDB4MDMsMHg0MCwweDAwLDB4ZDAsMHgwMCwweDM0LDB4MDAsMHgwNSwweDAwIH19LAotIHsxNiwgMHg4MWYwLCAwLCB7MHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCwweDFkLDB4MDAsMHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCB9fSwKLSB7MTYsIDB4ODIwMCwgMCwgezB4MWQsMHg4MCwweDA3LDB4ZTAsMHgwMSwweGI4LDB4MDAsMHg2ZSwweDAwLDB4MWIsMHg4MCwweDA2LDB4ZTAsMHgwMSwweDM4LDB4MzcgfX0sCi0gezE2LCAweDgyMTAsIDAsIHsweGM0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg4MCwweGZiLDB4MzAsMHgzNiwweGM4IH19LAotIHsxNiwgMHg4MjIwLCAwLCB7MHg0ZSwweDA5LDB4MDMsMHhmYywweDg0LDB4ZmYsMHgxMCwweDNiLDB4YzAsMHgwZSwweGM4LDB4MDcsMHgyMiwweDgwLDB4ZmYsMHgyMiB9fSwKLSB7MTYsIDB4ODIzMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4YzgsMHgzMywweDZlLDB4MDAsMHhmYiwweDgwLDB4M2YsMHgyMCwweDBkLDB4YzIsMHg1MywweGQ0LDB4ODAgfX0sCi0gezE2LCAweDgyNDAsIDAsIHsweGNjLDB4M2EsMHgzZiwweDAwLDB4MGMsMHhmMSwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MjUwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHg2MCwweGJmLDB4NjAsMHgyMywweGYwLDB4MGQsMHg4MiwweDEyLDB4M2MsMHg2MCwweDhmLDB4NzAsMHgyMyB9fSwKLSB7MTYsIDB4ODI2MCwgMCwgezB4ZjAsMHgwOCwweDg4LDB4MDIsMHhhNSwweDQwLDB4YmYsMHhkMCwweDYzLDB4ZDYsMHgwYiwweDg4LDB4MDIsMHgyZSwweDBjLDB4YmIgfX0sCi0gezE2LCAweDgyNzAsIDAsIHsweDgwLDB4MmUsMHgyMCwweDg4LDB4OGQsMHgwMiwweGU2LDB4NDAsMHg4MCwweDYwLDB4MmUsMHgzMCwweDBhLDB4YjEsMHgxMiwweDIwIH19LAotIHsxNiwgMHg4MjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4ODAsMHhhMywweDQwLDB4MmMsMHhjNCB9fSwKLSB7MTYsIDB4ODI5MCwgMCwgezB4NGEsMHgwMCwweDEyLDB4OGMsMHg4OCwweGEzLDB4MjIsMHgyMCwweGM0LDB4MGEsMHg5MCwweDQyLDB4MDQsMHhhOSwweGEzLDB4MDAgfX0sCi0gezE2LCAweDgyYTAsIDAsIHsweDI0LDB4YzgsMHg4YiwweDgwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDJlLDB4MDEsMHgwOSwweDA4LDB4MDIsMHg4NCwweDAwIH19LAotIHsxNiwgMHg4MmIwLCAwLCB7MHg4MCwweDIwLDB4MmMsMHgxMCwweDBhLDB4MzIsMHg0MiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDQsMHhiMywweDAwLDB4MmEsMHhjMCwweDA4LDB4MDgsMHhhMiwweDhjLDB4MDAsMHg4YiwweDAwLDB4YTIgfX0sCi0gezE2LCAweDgyZDAsIDAsIHsweGMxLDB4MTAsMHg5OCwweDQyLDB4YTcsMHgwMCwweGJiLDB4MDEsMHg2NiwweGMxLDB4MGIsMHg4MCwweDAyLDB4YWMsMHgwNCwweGJiIH19LAotIHsxNiwgMHg4MmUwLCAwLCB7MHgwMCwweDJlLDB4MDAsMHgwYiwweGI4LDB4MTIsMHhlNCwweDAyLDB4ODksMHgwOCwweDBlLDB4NDAsMHgwYSwweGIwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ODJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweDgzMDAsIDAsIHsweDRhLDB4YjgsMHgyMywweGVjLDB4MTgsMHhlYiwweDAwLDB4MzIsMHhjMCwweDBlLDB4MmMsMHgxMiwweDIyLDB4MTAsMHhlYiwweDAwIH19LAotIHsxNiwgMHg4MzEwLCAwLCB7MHgyNiwweGMwLDB4NGYsMHgwMCwweDQzLDB4ZWQsMHgwMCwweGZiLDB4MDAsMHgyZSwweDI0LDB4MGQsMHg4MCwweDEzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ODMyMCwgMCwgezB4YzgsMHhkMCwweDdjLDB4MTIsMHgwZSwweGIwLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzMzAsIDAsIHsweGUxLDB4MDAsMHhiYywweDAwLDB4ZmYsMHgwMCwweDM1LDB4YzAsMHg0ZiwweGUwLDB4MDMsMHg3YywweDA4LDB4ZmYsMHgwMSwweDE3IH19LAotIHsxNiwgMHg4MzQwLCAwLCB7MHhjMiwweDRkLDB4YzAsMHgwMywweGY0LDB4MDgsMHhmNywweDAwLDB4M2IsMHhjMCwweDA3LDB4YzAsMHgwMywweDdjLDB4ODAsMHhmZiB9fSwKLSB7MTYsIDB4ODM1MCwgMCwgezB4MjQsMHgzZiwweDQwLDB4MGMsMHhmMCwweDAxLDB4ZjQsMHgwNCwweGJjLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhmMCwweDAzLDB4NzggfX0sCi0gezE2LCAweDgzNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwOCwweGZiLDB4MDQsMHgzYSwweGM4IH19LAotIHsxNiwgMHg4MzcwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhlYywweDEwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2MSwweDA0LDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ODM4MCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTMsMHgwMywweDJjLDB4ODAsMHhmYiwweDcyLDB4M2UsMHgwMiwweDBmLDB4OGEsMHgwMywweGU0LDB4MDIgfX0sCi0gezE2LCAweDgzOTAsIDAsIHsweGM5LDB4ODAsMHgyYSwweDUwLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4M2EwLCAwLCB7MHhjYSwweDQ0LDB4M2MsMHgwMCwweGJmLDB4MDAsMHgwMywweGMwLDB4MDgsMHg4MCwweDAzLDB4N2MsMHgwMCwweGJmLDB4MDAsMHgzZiB9fSwKLSB7MTYsIDB4ODNiMCwgMCwgezB4ZTIsMHgwOCwweDkwLDB4NDMsMHg2MCwweDAwLDB4YmYsMHgwMCwweDM3LDB4YzAsMHgwOCwweDkwLDB4MDEsMHg2ZCwweDAwLDB4YmIgfX0sCi0gezE2LCAweDgzYzAsIDAsIHsweDQwLDB4MmMsMHgxMCwweDBiLDB4YjAsMHg0MiwweGQ3LDB4YzAsMHg4OSwweDAwLDB4MmEsMHg3YywweDBiLDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHg4M2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTIsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkNSB9fSwKLSB7MTYsIDB4ODNlMCwgMCwgezB4NGEsMHgwMCwweDAwLDB4MGMsMHgwNCwweDkzLDB4MDAsMHgwYywweGYwLDB4MGIsMHgwOSwweDAyLDB4MDgsMHgwMSwweGIzLDB4MjAgfX0sCi0gezE2LCAweDgzZjAsIDAsIHsweDI4LDB4YzAsMHgwYSwweDBjLDB4MGEsMHgwZSwweDAwLDB4YjMsMHgwMCwweDI0LDB4MzAsMHgwOSwweDAwLDB4MDIsMHhjNiwweDEwIH19LAotIHsxNiwgMHg4NDAwLCAwLCB7MHg4MCwweDQyLDB4MjAsMHgwMCwweDhiLDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQxMCwgMCwgezB4MjIsMHgwMSwweDFlLDB4MDAsMHhiNywweDk0LDB4MjEsMHhlNCwweDQ4LDB4ZDksMHgxMiwweDVlLDB4NDAsMHhiNywweDkwLDB4MjkgfX0sCi0gezE2LCAweDg0MjAsIDAsIHsweGUwLDB4OGIsMHg2OSwweDEyLDB4ZDYsMHg4MCwweDM3LDB4ODIsMHgyYywweGU4LDB4MDgsMHg0YSwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4NDMwLCAwLCB7MHhhNCwweDJkLDB4MjAsMHgwYiwweDc5LDB4MDIsMHhkNiwweDA4LDB4ODYsMHg5MCwweDI5LDB4YTAsMHgwYiwweDc5LDB4MDIsMHhkOCB9fSwKLSB7MTYsIDB4ODQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDAwLDB4ZmIsMHhhMCwweDI4LDB4ZTggfX0sCi0gezE2LCAweDg0NTAsIDAsIHsweDBlLDB4MmEsMHgwMiwweDhjLDB4MDAsMHhkMywweDAwLDB4NjQsMHhjMCwweDBmLDB4MDAsMHg0MywweDBlLDB4YzQsMHhmMywweDAwIH19LAotIHsxNiwgMHg4NDYwLCAwLCB7MHg3OCwweGVjLDB4MGUsMHgwYSwweDQzLDB4MGUsMHgyMCwweDczLDB4ZTAsMHgzYywweDAyLDB4NGYsMHgwMCwweDAzLDB4YzQsMHg0MCB9fSwKLSB7MTYsIDB4ODQ3MCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0ODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweGJjLDB4Y2MsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZmIsMHgwMCwweDNjIH19LAotIHsxNiwgMHg4NDkwLCAwLCB7MHhjMiwweDBjLDB4MjAsMHgwMywweDZjLDB4NTAsMHhmMywweDAwLDB4MzYsMHhjNCwweDBmLDB4NDAsMHgwMywweGZjLDB4MDgsMHhmZiB9fSwKLSB7MTYsIDB4ODRhMCwgMCwgezB4MWEsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAxLDB4ZTQsMHgzMCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDYzLDB4ZDAgfX0sCi0gezE2LCAweDg0YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHg0MCwweGZiLDB4MDAsMHhiMiwweGQ4IH19LAotIHsxNiwgMHg4NGMwLCAwLCB7MHgwYywweGIwLDB4MDEsMHgyZCwweDIwLDB4ZGIsMHgwMSwweDNhLDB4YzgsMHg4YywweDM4LDB4MDMsMHhhOCwweDAwLDB4ZmIsMHg0OCB9fSwKLSB7MTYsIDB4ODRkMCwgMCwgezB4M2UsMHhjOSwweDBmLDB4ODAsMHgwMywweGVjLDB4NDAsMHhmYiwweDAxLDB4M2UsMHgwMCwweDBmLDB4MDgsMHgwMywweGE0LDB4MDggfX0sCi0gezE2LCAweDg0ZTAsIDAsIHsweGZhLDB4ODAsMHhiMiwweDgwLDB4MGYsMHhiMSwweDAyLDB4NmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NGYwLCAwLCB7MHg0OCwweDE5LDB4MWMsMHg4MCwweGJmLDB4MzAsMHgyMSwweGNhLDB4MDgsMHhmMCwweDBhLDB4MGMsMHg4MCwweDhmLDB4NTAsMHgyMSB9fSwKLSB7MTYsIDB4ODUwMCwgMCwgezB4YzIsMHgwOCwweDcwLDB4NTAsMHg5YywweDAwLDB4YjcsMHgwMCwweDM5LDB4YzQsMHgwYiwweDQwLDB4MDIsMHg5YywweDA0LDB4YjcgfX0sCi0gezE2LCAweDg1MTAsIDAsIHsweDIwLDB4MjUsMHg0MCwweDBiLDB4NzAsMHgwMiwweDE0LDB4ODAsMHhiNiwweDAwLDB4MjEsMHg4MCwweDBiLDB4ZjgsMHgwMiwweDEyIH19LAotIHsxNiwgMHg4NTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweGIwLDB4MjEsMHhlYyB9fSwKLSB7MTYsIDB4ODUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4NCwweDk3LDB4ODAsMHgwZCwweGUwLDB4MjgsMHhmOCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4OTAgfX0sCi0gezE2LCAweDg1NDAsIDAsIHsweDJkLDB4ZTQsMHgwYiwweDY4LDB4ODIsMHg1ZSwweDgwLDB4YjcsMHhhMCwweDI5LDB4MjAsMHgwYiwweDQ4LDB4MDIsMHg5NiwweDAwIH19LAotIHsxNiwgMHg4NTUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMSwweDBiLDB4N2EsMHgwMiwweDcwLDB4NDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODU2MCwgMCwgezB4NDgsMHgwNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzgsMHgwMiwweDhjLDB4MDQsMHg4MywweDAwLDB4MjggfX0sCi0gezE2LCAweDg1NzAsIDAsIHsweGMwLDB4ODgsMHgzOSwweDAyLDB4NGMsMHg0MCwweGIzLDB4MDQsMHgyOCwweGMwLDB4MWIsMHgxMCwweDAyLDB4OGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHg4NTgwLCAwLCB7MHgwNCwweDI0LDB4ODgsMHg0YiwweDMxLDB4MDIsMHgwNCwweDAwLDB4YjMsMHg4MCwweDIwLDB4ZjIsMHgwYiwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ODU5MCwgMCwgezB4MjQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg1YTAsIDAsIHsweDBmLDB4ZTgsMHgwMywweGU4LDB4MDAsMHhkYSwweDAxLDB4M2EsMHg4MCwweDhjLDB4ZWQsMHgwMywweGZiLDB4MDQsMHhmYSwweDAwIH19LAotIHsxNiwgMHg4NWIwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHg2YywweDAzLDB4ZmIsMHhjOCwweGJlLDB4YzIsMHgxZiwweDgwLDB4MGYsMHhlNSwweDAzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4ODVjMCwgMCwgezB4ZmUsMHg0OCwweDMzLDB4ODAsMHg0ZiwweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1ZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNjLDB4MDAsMHgwYywweDgxLDB4OTMsMHg2MCwweDAwLDB4ZjgsMHgwMSwweDM2IH19LAotIHsxNiwgMHg4NWUwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmOCwweDAwLDB4MmEsMHgwMSwweDhmLDB4ODQsMHgxMywweGUxLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODVmMCwgMCwgezB4MTgsMHgzNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDE0LDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDg2MDAsIDAsIHsweDgwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHhhYSwweDQwIH19LAotIHsxNiwgMHg4NjEwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZTEsMHgwMCwweDM4LDB4NDAsMHgxYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4ODYyMCwgMCwgezB4M2EsMHg0MCwweDQ3LDB4OWEsMHg5MywweGEyLDB4ODAsMHhmOCwweDEwLDB4M2UsMHg0MCwweDBiLDB4OTQsMHgwMywweGU2LDB4NDAgfX0sCi0gezE2LCAweDg2MzAsIDAsIHsweGY5LDB4YzAsMHgzZSwweDY4LDB4MGIsMHgxMCwweDAzLDB4MDIsMHg4NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NjQwLCAwLCB7MHg4MCwweDA0LDB4ZTQsMHgwNCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwNCwweDg5LDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4ODY1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjksMHg4MCwweDJlLDB4NDAsMHg0ZiwweDk0LDB4MDMsMHg2MSwweDEwLDB4ZTggfX0sCi0gezE2LCAweDg2NjAsIDAsIHsweDQwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU2LDB4MDQsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4ODY4MCwgMCwgezB4MGEsMHgxMCwweDUyLDB4MDQsMHgwNCwweGE5LDB4MDQsMHgyYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweDg2OTAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhOCwweDBkLDB4YjgsMHg0MCwweDJlLDB4NDAsMHgwOSwweDk0LDB4MDIsMHhlNSwweDAwIH19LAotIHsxNiwgMHg4NmEwLCAwLCB7MHhiOSwweDA0LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4MjAsMHhjOCwweDBhLDB4MTAsMHg0MiwweDA0LDB4OTAsMHg4MSwweDIwLDB4MDQgfX0sCi0gezE2LCAweDg2YzAsIDAsIHsweGM4LDB4MDgsMHgzMCwweDI2LDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyYywweDQ4LDB4MGIsMHg5MCwweDAyLDB4NDUsMHgwMSwweGIxIH19LAotIHsxNiwgMHg4NmQwLCAwLCB7MHg0MCwweDJjLDB4NDAsMHgwYiwweDEyLDB4ODIsMHhjNCwweDAwLDB4YjEsMHgyYiwweDJjLDB4NGEsMHgwYiwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ODZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHgyMSwweDQ4LDB4ZjgsMHg1MCwweDMyLDB4MDAgfX0sCi0gezE2LCAweDg2ZjAsIDAsIHsweDRlLDB4ODUsMHgwYiwweDIxLDB4NDAsMHhhOCwweDUyLDB4MmEsMHgwMCwweDA4LDB4ODAsMHgyMywweGUxLDB4NDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg4NzAwLCAwLCB7MHgzYSwweDE0LDB4MGYsMHhhMCwweDQzLDB4YTgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MiwweDAzLDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4ODcxMCwgMCwgezB4ZjAsMHgyMCwweDNlLDB4ODgsMHg0ZiwweDgyLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3MjAsIDAsIHsweDk4LDB4MTksMHhlNCwweDQwLDB4ZjksMHgxMSwweDM0LDB4NDQsMHgyZCwweGQwLDB4MDMsMHhlNCwweDUwLDB4NzksMHgxMCwweDM4IH19LAotIHsxNiwgMHg4NzMwLCAwLCB7MHg0NCwweDJmLDB4ZDAsMHgwMywweGY1LDB4MTAsMHhmOSwweDEwLDB4M2UsMHg0NSwweDA2LDB4NTAsMHgwMywweGU1LDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ODc0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMCwweGZkLDB4MjgsMHgzZiwweDQwLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDg3NTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAxLDB4ZTYsMHgwMCwweGQ5LDB4OTAsMHgzNywweDY5IH19LAotIHsxNiwgMHg4NzYwLCAwLCB7MHg0ZCwweDkwLDB4MjMsMHg2NywweDgwLDB4ZDksMHhlMCwweDM3LDB4NjgsMHgwZSwweGQwLDB4MDcsMHhhNCwweDAwLDB4MDUsMHg4NiB9fSwKLSB7MTYsIDB4ODc3MCwgMCwgezB4M2UsMHg2NiwweDBkLDB4NTAsMHgyMywweDI2LDB4MDAsMHhjOSwweDgyLDB4M2QsMHg0MCwweDBkLDB4ZDgsMHgwNywweDM2LDB4MDIgfX0sCi0gezE2LCAweDg3ODAsIDAsIHsweGNkLDB4YzAsMHgzMywweDYwLDB4MGMsMHg5YywweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NzkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4YTIsMHgyMiwweDEwLDB4MjgsMHg4YSwweDgyLDB4MjMsMHg4NCwweDg4LDB4YTAsMHgyMiB9fSwKLSB7MTYsIDB4ODdhMCwgMCwgezB4MTQsMHg0OCwweDgwLDB4NDIsMHg4MiwweDAwLDB4ODgsMHg0MCwweDJlLDB4MzAsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4ZDggfX0sCi0gezE2LCAweDg3YjAsIDAsIHsweDkwLDB4MjYsMHgwMCwweDA4LDB4ODQsMHgwYSwweDIxLDB4MDAsMHhjOCwweGEwLDB4YTIsMHgxNCwweDI4LDB4OGMsMHgwMiwweDBlIH19LAotIHsxNiwgMHg4N2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MjAsMHg5MSwweDQwLDB4MmMsMHg0NCB9fSwKLSB7MTYsIDB4ODdkMCwgMCwgezB4MTgsMHgxMCwweDAyLDB4ODUsMHgwNCwweGIxLDB4NDAsMHgwYywweDQwLDB4MGEsMHgxMCwweDA2LDB4ODQsMHgzMCwweDgxLDB4NDAgfX0sCi0gezE2LCAweDg3ZTAsIDAsIHsweDJjLDB4NDgsMHg1OSwweDEwLDB4MWEsMHgwNCwweDYwLDB4ODEsMHgwOSwweDJlLDB4NDAsMHgxYiwweDE0LDB4MDIsMHgyNSwweDAwIH19LAotIHsxNiwgMHg4N2YwLCAwLCB7MHg5MSwweGUwLDB4MjAsMHg2MCwweDA4LDB4MTYsMHgwMiwweDAwLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODgwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4MSwweDAwLDB4MmEsMHg0MSwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhhMSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg4MTAsIDAsIHsweDQxLDB4MDgsMHhiMCwweDgyLDB4MjQsMHgxMSwweDhiLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MSwweDAyLDB4YTAsMHgwNCwweDk4IH19LAotIHsxNiwgMHg4ODIwLCAwLCB7MHgyMCwweDJlLDB4NTQsMHgxYiwweDkwLDB4ODIsMHgyYywweDAwLDB4ODksMHgxMCwweDIyLDB4NDQsMHg4OCwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ODgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweDg4NDAsIDAsIHsweDRjLDB4OTAsMHgwMywweGE0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDhlLDB4MTAsMHgwMiwweGE0LDB4YzIsMHhjOSwweDAwIH19LAotIHsxNiwgMHg4ODUwLCAwLCB7MHgzZSwweDQwLDB4MGQsMHgxNiwweDEzLDB4MDEsMHg4NCwweGM4LDB4MjAsMHgzYywweDYwLDB4MGYsMHg5MCwweDEyLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4ODg2MCwgMCwgezB4ZDksMHg0MCwweDMyLDB4NTAsMHgwYywweDkwLDB4MDMsMHgyOCwweDg0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4NzAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHg0ZiwweDk5LDB4NGEsMHg0NCwweDAwLDB4OTksMHgwMCwweGI0IH19LAotIHsxNiwgMHg4ODgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBmLDB4OTAsMHgwMywweGUzLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODg5MCwgMCwgezB4MDEsMHgzNiwweDQwLDB4MGMsMHg5OSwweDAzLDB4ZTQsMHgwMiwweGY5LDB4ODAsMHgzZSwweDYwLDB4NGYsMHg5MCwweDBiLDB4Y2EgfX0sCi0gezE2LCAweDg4YTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDAsMHgzYywweDAwIH19LAotIHsxNiwgMHg4OGIwLCAwLCB7MHgxZCwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHgwYywweDg0LDB4ODMsMHhlMCwweDEwLDB4ZTgsMHgyMCB9fSwKLSB7MTYsIDB4ODhjMCwgMCwgezB4MzIsMHgwMCwweDhlLDB4ODQsMHgwMywweDIxLDB4ODAsMHhjOCwweDAwLDB4M2EsMHgxOSwweDBmLDB4MDQsMHgwMywweGUwLDB4MjQgfX0sCi0gezE2LCAweDg4ZDAsIDAsIHsweGYwLDB4MDIsMHgzYywweDAwLDB4MGYsMHg4MCwweDEzLDB4OGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMiwweDhhLDB4MDEsMHgwZiwweGEyLDB4NjgsMHhhMCwweDAwLDB4MjgsMHgwMCwweDhhLDB4MDAsMHg3NyB9fSwKLSB7MTYsIDB4ODhmMCwgMCwgezB4ODAsMHg2OCwweGUwLDB4MTIsMHhlOCwweDAwLDB4ZGUsMHgwMCwweDM2LDB4ODEsMHgwOCwweGUwLDB4MDMsMHg3YSwweDA4LDB4YWUgfX0sCi0gezE2LCAweDg5MDAsIDAsIHsweGM0LDB4MmYsMHg4MCwweDA4LDB4ZWQsMHgwMiwweGZhLDB4MDAsMHhiZSwweGEwLDB4M2IsMHg4MCwweDBiLDB4YTAsMHg0MiwweDBhIH19LAotIHsxNiwgMHg4OTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4NSwweDRjLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODkyMCwgMCwgezB4ODgsMHhiMCwweDAyLDB4MGMsMHgxNCwweGEzLDB4MDQsMHgyMCwweGM0LDB4MTgsMHgzOCwweDAyLDB4ZWMsMHgxMCwweDkzLDB4NTQgfX0sCi0gezE2LCAweDg5MzAsIDAsIHsweDI4LDB4YzAsMHgwYSwweDAwLDB4MDIsMHg0ZSwweDAwLDB4ODMsMHg0OSwweDY4LDB4YzAsMHgwMiwweDM5LDB4NDIsMHhjZSwweDQwIH19LAotIHsxNiwgMHg4OTQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhlNiwweDBiLDB4YjAsMHgwMiwweDhiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODk1MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MDgsMHg4NywweDIwLDB4MmMsMHg4MCwweDE4LDB4ZjIsMHgyMiwweDFjLDB4MDAsMHg4NywweDEwLDB4MjEgfX0sCi0gezE2LCAweDg5NjAsIDAsIHsweGMwLDB4MDgsMHg3MCwweDgyLDB4ZGMsMHg4MCwweDk2LDB4ODAsMHgyZCwweGMwLDB4MGEsMHg0MCwweDAyLDB4N2QsMHg0MCwweDI3IH19LAotIHsxNiwgMHg4OTcwLCAwLCB7MHg2NCwweDZkLDB4ZDAsMHg0OCwweDYwLDB4NDIsMHhkOCwweDA1LDB4YjYsMHgwNCwweDI5LDB4YzAsMHg0YiwweDcyLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4ODk4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDg4LDB4ZDcsMHhlMCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweDg5OTAsIDAsIHsweDA4LDB4N2MsMHg0MiwweDNlLDB4MDAsMHhlMywweDgyLDB4MjAsMHhlMCwweDBjLDB4NjgsMHgwMywweGRmLDB4MDQsMHhkNywweDgwIH19LAotIHsxNiwgMHg4OWEwLCAwLCB7MHgzYiwweGUwLDB4NGUsMHg0OCwweDBhLDB4NWUsMHg4MCwweGM3LDB4YzIsMHgxOSwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZDYsMHgwOCB9fSwKLSB7MTYsIDB4ODliMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5YzAsIDAsIHsweDA4LDB4MWQsMHhhYywweDQwLDB4ZmIsMHg0MCwweDdlLDB4ODAsMHgwZSwweDM2LDB4ODMsMHhlZCwweDQwLDB4ZGIsMHg2MCwweDNlIH19LAotIHsxNiwgMHg4OWQwLCAwLCB7MHg4MCwweDBmLDB4YTAsMHgwMywweGVkLDB4MjgsMHhkYSwweDAwLDB4MzIsMHhjNCwweDBjLDB4YjAsMHgwYiwweGNjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ODllMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGUsMHg4MCwweDEzLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMSwweDUzLDB4YzIgfX0sCi0gezE2LCAweDg5ZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4YzAsMHgzMywweGUwIH19LAotIHsxNiwgMHg4YTAwLCAwLCB7MHgwYywweGY5LDB4MDMsMHg3ZiwweDA0LDB4Y2YsMHhkMCwweDNmLDB4ZTQsMHgwZiwweGI4LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg5NCB9fSwKLSB7MTYsIDB4OGExMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhmMywweDgwLDB4M2IsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4NDggfX0sCi0gezE2LCAweDhhMjAsIDAsIHsweGVkLDB4ODAsMHgzMywweDI0LDB4MDQsMHhmOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YTMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4MCwweGJmLDB4MDQsMHgyMSwweDI4LDB4MDgsMHhmOCwweDAyLDB4MWUsMHhjMCwweGNmLDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4OGE0MCwgMCwgezB4NGMsMHgwYiwweDVhLDB4NDIsMHhkZSwweDAwLDB4YjcsMHg4MCwweDJjLDB4ZTgsMHgwYiwweDA0LDB4MDIsMHgxYywweDAwLDB4YjcgfX0sCi0gezE2LCAweDhhNTAsIDAsIHsweGEwLDB4MzUsMHgxMCwweDhmLDB4NzEsMHgxMywweGRlLDB4YzAsMHg4NCwweDEwLDB4MjEsMHg4MCwweDBkLDB4NzEsMHgwMiwweDJhIH19LAotIHsxNiwgMHg4YTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHg0MCwweDljLDB4MDgsMHhiNywweDAwLDB4MjUsMHhjOCB9fSwKLSB7MTYsIDB4OGE3MCwgMCwgezB4MDgsMHg3MSwweDAyLDB4Y2MsMHg4MCwweDk3LDB4MDAsMHgyOSwweGMwLDB4OGIsMHg3MiwweDA2LDB4ZGMsMHgwOCwweGI1LDB4MDAgfX0sCi0gezE2LCAweDhhODAsIDAsIHsweDJkLDB4YzgsMHgwYiwweDQwLDB4MDIsMHgxYywweDQwLDB4YmYsMHgxMCwweDIxLDB4YzAsMHgwYiwweDc0LDB4MDIsMHhkNCwweDgwIH19LAotIHsxNiwgMHg4YTkwLCAwLCB7MHhhNywweDQwLDB4MjEsMHg0MSwweDA4LDB4NzAsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGFhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDA4LDB4MzQsMHg4MiwweGFjLDB4MTEsMHg4MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDhhYjAsIDAsIHsweDAwLDB4NGIsMHgxOCwweDI2LDB4Y2YsMHgyMCwweGIxLDB4MDYsMHgyYywweGMxLDB4MGIsMHgzMiwweDAyLDB4MGUsMHgwOCwweGIzIH19LAotIHsxNiwgMHg4YWMwLCAwLCB7MHg4OCwweDI0LDB4MzIsMHgwYSwweDMwLDB4MTIsMHg4NCwweDA4LDB4ODAsMHgwMCwweGEwLDB4MzQsMHgyOCwweDMwLDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4OGFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHgwMCwweGI2LDB4NDAgfX0sCi0gezE2LCAweDhhZTAsIDAsIHsweDJjLDB4ZjQsMHg0MywweGZjLDB4MDEsMHhkZiwweDAwLDB4M2EsMHgwMCwweDAzLDB4OTIsMHgwMywweGZmLDB4ODgsMHhmOSwweDAwIH19LAotIHsxNiwgMHg4YWYwLCAwLCB7MHgyZiwweGMwLDB4MWIsMHgwZSwweDRiLDB4MmUsMHg5MCwweGZiLDB4ZTAsMHgzMCwweDMyLDB4MGIsMHg5OCwweDAyLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4OGIwMCwgMCwgezB4NmIsMHhjMCwweDMyLDB4YzAsMHgwOCwweGYwLDB4MDksMHgzZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiMTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjMsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDEsMHg2YywweDAwLDB4ZmIsMHgwMCwweDNhIH19LAotIHsxNiwgMHg4YjIwLCAwLCB7MHgxMCwweDBmLDB4YjQsMHgwMywweGVjLDB4MDAsMHhmMCwweDAwLDB4M2MsMHhjMCwweDBmLDB4ODAsMHgwYiwweGFkLDB4MjAsMHhmYiB9fSwKLSB7MTYsIDB4OGIzMCwgMCwgezB4NDAsMHgzZSwweDEwLDB4MDcsMHhhOCwweDYzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweDhiNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHg3MiwweDAwIH19LAotIHsxNiwgMHg4YjUwLCAwLCB7MHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGMwLDB4MDMsMHhkYywweDAwLDB4OGYsMHgwMCB9fSwKLSB7MTYsIDB4OGI2MCwgMCwgezB4MzMsMHhjMSwweDBjLDB4YzAsMHgwMywweGJlLDB4MDAsMHhmZiwweDkwLDB4M2IsMHgyOCwweDBlLDB4NTksMHgwMywweDJlLDB4MDAgfX0sCi0gezE2LCAweDhiNzAsIDAsIHsweDdiLDB4MDAsMHgzMiwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YjgwLCAwLCB7MHhjMSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHg2MiwweGEwLDB4MGYsMHhiMCwweDAyLDB4ZWMsMHgwOSwweDhiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OGI5MCwgMCwgezB4MzAsMHgwYiwweGE4LDB4MDMsMHhhYywweDAwLDB4ZmEsMHhjMSwweDIyLDB4YzEsMHgwOCwweDhjLDB4MDIsMHgyYywweDAwLDB4YjMgfX0sCi0gezE2LCAweDhiYTAsIDAsIHsweDgxLDB4MmEsMHgwMCwweDBkLDB4ODgsMHhiMiwweDIyLDB4MDAsMHhiMywweGMwLDB4MjIsMHhjOCwweDBiLDB4YjAsMHg0MiwweDYxIH19LAotIHsxNiwgMHg4YmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDZjLDB4MDAsMHhiYiwweDAxLDB4MjIsMHg2MiB9fSwKLSB7MTYsIDB4OGJjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwNCwweDhiLDB4MDAsMHgyZSwweGEyLDB4NDksMHg4OCwweDI2LDB4ZWMsMHgwMCwweGE4LDB4ODAgfX0sCi0gezE2LCAweDhiZDAsIDAsIHsweDIyLDB4YzAsMHgyOCwweDgyLDB4MGEsMHhhYywweGEwLDB4YmIsMHgwOCwweDIyLDB4YzAsMHgwOCwweDgwLDB4MGEsMHgyOCwweDg0IH19LAotIHsxNiwgMHg4YmUwLCAwLCB7MHhiOSwweGMwLDB4YTIsMHgwMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGJmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDEwLDB4MjAsMHg0OCwweDBhLDB4MzIsMHgwMiwweGNjLDB4ODAsMHg4MywweDAxLDB4MjQgfX0sCi0gezE2LCAweDhjMDAsIDAsIHsweDAwLDB4MGIsMHgwMiwweDA2LDB4OGMsMHg2MCwweGEwLDB4MjAsMHgyMCwweGM4LDB4MDgsMHgwMSwweDAyLDB4MGMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg4YzEwLCAwLCB7MHgwMCwweDI4LDB4MDAsMHgwOSwweDIwLDB4MDIsMHgwOCwweDgwLDB4YjEsMHgwMCwweGEwLDB4ODAsMHgwYiwweDMwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4OGMyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHg2YywweDAwLDB4ZmYsMHgwMCwweGEyLDB4MGUgfX0sCi0gezE2LCAweDhjMzAsIDAsIHsweDBiLDB4ZjEsMHgwMywweGZjLDB4MDgsMHhjZiwweDIwLDB4M2UsMHhjMCwweDBmLDB4ODAsMHgwMywweGZjLDB4ODQsMHhhOCwweDIwIH19LAotIHsxNiwgMHg4YzQwLCAwLCB7MHhiMiwweGM4LDB4OGMsMHg4MCwweDAzLDB4YWMsMHg0NCwweGZiLDB4NzAsMHgzYSwweGMwLDB4MGUsMHg5MCwweDAzLDB4MmMsMHhhNCB9fSwKLSB7MTYsIDB4OGM1MCwgMCwgezB4ZmIsMHgwMCwweGIyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjNjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgyNiwweDNlLDB4MDAsMHgwZiwweGI2LDB4MTMsMHhlZCwweDAwLDB4ZmIsMHgxMCwweDNmIH19LAotIHsxNiwgMHg4YzcwLCAwLCB7MHgwMCwweDBmLDB4YzEsMHgxMywweGFjLDB4ODAsMHhmOCwweDEyLDB4M2UsMHhjNiwweDRmLDB4NDIsMHg0MywweGZjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OGM4MCwgMCwgezB4MzEsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHhiZiwweGMwLDB4OGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDhjOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg0MCwweGZjLDB4ODAsMHgzNiwweGM4IH19LAotIHsxNiwgMHg4Y2EwLCAwLCB7MHgwZiwweDA5LDB4MDMsMHhjMiwweDAwLDB4ZjgsMHhjMCwweDMzLDB4Y2MsMHgyYywweDRjLDB4MDMsMHg2MywweDkwLDB4ZTAsMHg5MCB9fSwKLSB7MTYsIDB4OGNiMCwgMCwgezB4M2EsMHhjMCwweDBkLDB4NTAsMHgwYiwweDNjLDB4MDQsMHhkZiwweDY0LDB4M2YsMHhjOCwweDhkLDB4ZjEsMHg0MywweDJjLDB4MDAgfX0sCi0gezE2LCAweDhjYzAsIDAsIHsweGQ1LDB4MDAsMHgzMywweGMwLDB4NDUsMHhmMiwweDIzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4Y2QwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg4MCwweGJhLDB4MDIsMHgyMSwweGRlLDB4OGIsMHg4MiwweDIyLDB4ZTAsMHgyMCwweGIwLDB4MDAsMHgyYiB9fSwKLSB7MTYsIDB4OGNlMCwgMCwgezB4ZWMsMHgwOSwweDgwLDB4MDIsMHhlMywweDQwLDB4YmEsMHgyMCwweDJmLDB4ZGMsMHgwOCwweDk4LDB4MTIsMHgyYywweDAwLDB4OGIgfX0sCi0gezE2LCAweDhjZjAsIDAsIHsweDUxLDB4MmEsMHhkMCwweDA4LDB4NzIsMHgyMiwweDJlLDB4MDAsMHg4ZCwweDgwLDB4MjEsMHhkMCwweDA4LDB4YjYsMHg4MiwweDIwIH19LAotIHsxNiwgMHg4ZDAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiOSwweDI4LDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4OGQxMCwgMCwgezB4NGEsMHgxMiwweDEyLDB4ODgsMHg4NSwweGE4LDB4MjAsMHgyMCwweGMwLDB4MGIsMHgyMiwweDAyLDB4YzAsMHg5MSwweGExLDB4MDAgfX0sCi0gezE2LCAweDhkMjAsIDAsIHsweDI4LDB4YzIsMHgwYiwweDAwLDB4MTIsMHg4YywweDQwLDB4YTMsMHgyMCwweDIwLDB4YzQsMHgwYiwweDMwLDB4MGEsMHgwYywweDExIH19LAotIHsxNiwgMHg4ZDMwLCAwLCB7MHg5OSwweDAwLDB4MjAsMHhjNSwweDA5LDB4MDEsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGQ0MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhjMCwweDBiLDB4ODgsMHgwMiwweGVlLDB4MDEsMHhiOCwweGMxLDB4MmEgfX0sCi0gezE2LCAweDhkNTAsIDAsIHsweGMwLDB4MWIsMHhhOCwweDA2LDB4ZTIsMHgwMCwweGJiLDB4ODAsMHgyZSwweGMwLDB4OGEsMHg4MCwweDAyLDB4YWMsMHgwMCwweGFiIH19LAotIHsxNiwgMHg4ZDYwLCAwLCB7MHgwMCwweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgyYywweDAwLDB4OTksMHgwMCwweDI0LDB4YzAsMHgwOCwweDgwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4OGQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YjAsMHg4MCwweDM2LDB4YzAgfX0sCi0gezE2LCAweDhkODAsIDAsIHsweDBlLDB4YTgsMHgxMywweGUyLDB4ODUsMHhmMywweGMwLDB4MzIsMHhjMCwweDBlLDB4OWMsMHgyMywweGU3LDB4MjQsMHhlOCwweDgyIH19LAotIHsxNiwgMHg4ZDkwLCAwLCB7MHgzYSwweGMxLDB4MGYsMHg5NCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmUsMHgxMCB9fSwKLSB7MTYsIDB4OGRhMCwgMCwgezB4NTEsMHgwMCwweGIyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkYjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGQwLDB4MDMsMHhmMCwweDA0LDB4ZmQsMHgwNCwweDNmIH19LAotIHsxNiwgMHg4ZGMwLCAwLCB7MHhjMCwweDRjLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4MWYsMHhjMCwweDBkLDB4ZDEsMHgyMywweDFjLDB4MDAsMHhjNyB9fSwKLSB7MTYsIDB4OGRkMCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGQsMHhmMCwweDgzLDB4ZmUsMHg0NCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHg3NCwweDAzLDB4ZjggfX0sCi0gezE2LCAweDhkZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY5LDB4MDEsMHhiYSwweGMxIH19LAotIHsxNiwgMHg4ZGYwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhhMSwweDA4LDB4ZmEsMHgwMCwweDMwLDB4YzgsMHg4ZiwweDk0LDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGUwMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4MDQsMHg4MywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBmLDB4NzEsMHgwYiwweDJjLDB4NDAgfX0sCi0gezE2LCAweDhlMTAsIDAsIHsweGZkLDB4MDgsMHgzNywweGMwLDB4NGUsMHg5MSwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZTIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGI5LDB4MDAsMHgyMywweGMwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGM4LDB4MDAsMHgzNyB9fSwKLSB7MTYsIDB4OGUzMCwgMCwgezB4ZjAsMHgwYiwweDgwLDB4MDEsMHg2NCwweDAwLDB4NDksMHgwMiwweDMzLDB4YzAsMHg4NCwweDljLDB4MDMsMHgzYywweDAwLDB4YmYgfX0sCi0gezE2LCAweDhlNDAsIDAsIHsweDAyLDB4MGYsMHhkMCwweDA4LDB4ZjQsMHgwMiwweDBlLDB4MTAsMHhiZCwweDgwLDB4MzMsMHhlMCwweDA4LDB4OTAsMHgwYSwweDMyIH19LAotIHsxNiwgMHg4ZTUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMCwweDA2LDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4OGU2MCwgMCwgezB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweGEwLDB4MDAsMHgyMCwweGYwLDB4MGIsMHgwMCwweDIyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfX0sCi0gezE2LCAweDhlNzAsIDAsIHsweDI4LDB4YzAsMHgwMiwweDNkLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzIsMHg5YSwweDM4LDB4MDIsMHgwNiwweDA0IH19LAotIHsxNiwgMHg4ZTgwLCAwLCB7MHhiMSwweDEyLDB4MjAsMHhlMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGU5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNiwweDgwLDB4MjEsMHhlMCwweDI4LDB4ZWEsMHgwMiwweDM2LDB4ODAsMHg4NiwweDkwLDB4NjUgfX0sCi0gezE2LCAweDhlYTAsIDAsIHsweGUwLDB4MWIsMHhkYSwweDA2LDB4NWUsMHgwMSwweDllLDB4ODQsMHgyNSwweGVjLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4ZWIwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHgwOCwweDc5LDB4NGEsMHgxNiwweDQwLDB4YmQsMHg4MCwweDI1LDB4ZTAsMHgwOCwweDM4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OGVjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZmIsMHgwMCwweDI4LDB4ZTAgfX0sCi0gezE2LCAweDhlZDAsIDAsIHsweDA4LDB4MTgsMHgwMiwweDhhLDB4ODgsMHhhMSwweGEwLDB4MjAsMHhjMiwweDFmLDB4MmEsMHgyMywweGU2LDB4YzgsMHhmMCwweGMwIH19LAotIHsxNiwgMHg4ZWUwLCAwLCB7MHgzYSwweGVkLDB4NGUsMHgzNCwweDAyLDB4OGMsMHgwOCwweGYzLDB4ODEsMHgxZSwweGMwLDB4MGUsMHgzMCwweDAzLDB4MGUsMHhjMCB9fSwKLSB7MTYsIDB4OGVmMCwgMCwgezB4ZjEsMHgwMCwweGIwLDB4Y2EsMHgwZSwweDIxLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmMDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDA4LDB4ZmUsMHgxMCwweDNmLDB4ZDIsMHgwZiwweGUwLDB4MDMsMHhlYywweDA0LDB4ZmYsMHgxNCwweDdlIH19LAotIHsxNiwgMHg4ZjEwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgyMywweGZjLDB4MDEsMHhlZSwweDAwLDB4M2EsMHhjNCwweDBkLDB4YjAsMHgxMywweGJjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OGYyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDgzLDB4ZmMsMHgwYywweGZkLDB4MTAsMHgzYiwweGMwLDB4MmYsMHhlMSwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhmMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGYwLDB4ODAsMHgzMiwweGQwIH19LAotIHsxNiwgMHg4ZjQwLCAwLCB7MHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4ZjMsMHg4MCwweDMyLDB4ZGEsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OGY1MCwgMCwgezB4M2UsMHhjYywweDRjLDB4OTgsMHgxMywweDJjLDB4MTAsMHhmYiwweDA0LDB4M2UsMHhjNCwweDBjLDB4ZjIsMHg4MywweGE2LDB4MTAgfX0sCi0gezE2LCAweDhmNjAsIDAsIHsweGRkLDB4MjAsMHgzZiwweGQxLDB4MGMsMHhiMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZjcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweGI3LDB4MDAsMHgyMSwweGM4LDB4MGMsMHg3MCwweDAyLDB4ZGMsMHgwOCwweGI3LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4OGY4MCwgMCwgezB4YzgsMHgwZSwweDcwLDB4MjIsMHhkOCwweDAwLDB4YjcsMHgwMCwweDJjLDB4YzIsMHgwYSwweDcwLDB4MGEsMHgxZiwweDA4LDB4YjcgfX0sCi0gezE2LCAweDhmOTAsIDAsIHsweDAwLDB4MzksMHhjOCwweDBhLDB4NzAsMHgwMiwweDE0LDB4MDAsMHhjNSwweDY5LDB4MmMsMHhjYSwweDJhLDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHg4ZmEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiZiwweDgxLDB4NjQsMHhlMSB9fSwKLSB7MTYsIDB4OGZiMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4NWEsMHgwMSwweGJmLDB4ODAsMHgyMSwweGVjLDB4NGIsMHg3OCwweDQ2LDB4OWYsMHgwOCwweDM3LDB4ODAgfX0sCi0gezE2LCAweDhmYzAsIDAsIHsweDJkLDB4ZTgsMHg4OCwweDE4LDB4MDIsMHgxZSwweDgxLDB4YjcsMHhiMCwweDJkLDB4ZTAsMHgwOSwweDdhLDB4MDIsMHg4ZSwweDAwIH19LAotIHsxNiwgMHg4ZmQwLCAwLCB7MHg5NSwweGEwLDB4MmQsMHhlNCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGZlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDA4LDB4YjYsMHgwMiwweGNjLDB4MDAsMHhiMywweDAxLDB4MjAgfX0sCi0gezE2LCAweDhmZjAsIDAsIHsweGMwLDB4OGEsMHhiMCwweDg2LDB4Y2YsMHgwMCwweGJiLDB4MTAsMHg2YywweGMxLDB4MGEsMHgzOCwweDAyLDB4MGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHg5MDAwLCAwLCB7MHgwMiwweDI4LDB4YzAsMHgwYiwweGIwLDB4MGEsMHgwYywweDAwLDB4ODEsMHgwMCwweDJlLDB4YzAsMHgwYSwweGI0LDB4ODIsMHhkMiB9fSwKLSB7MTYsIDB4OTAxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg0MCwweGI2LDB4ODAgfX0sCi0gezE2LCAweDkwMjAsIDAsIHsweDBjLDB4ZTQsMHgwMywweDc4LDB4ODAsMHhmZSwweDc0LDB4MzIsMHg4MCwweDBiLDB4ZTYsMHgwMywweGY5LDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHg5MDMwLCAwLCB7MHgzZSwweDgwLDB4MGMsMHhlMCwweDAzLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4NGQsMHhhMCwweDAzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4OTA0MCwgMCwgezB4ZGEsMHgwNCwweDNlLDB4ODAsMHgwYywweGU0LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgyZSwweDgwLDB4MjMsMHhlMCwweDAwLDB4ZjgsMHgwMSwweDNjIH19LAotIHsxNiwgMHg5MDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MjAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDhmLDB4ODksMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OTA3MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4MGUsMHg4MCwweDAxLDB4ZTAsMHgwMCwweGU4LDB4NDAsMHg3ZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDkwODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDEsMHg3ZSwweDQwIH19LAotIHsxNiwgMHg5MDkwLCAwLCB7MHgyYywweDkwLDB4MGIsMHgyNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjgsMHgwNSwweDkwLDB4MTMsMHhhNCwweDA0LDB4ZDksMHgwMCB9fSwKLSB7MTYsIDB4OTBhMCwgMCwgezB4MzIsMHg0MSwweDBlLDB4OTEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDkwYjAsIDAsIHsweGYxLDB4MDAsMHgzMiwweDQwLDB4NjgsMHg5MCwweDQzLDB4ODIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OTBkMCwgMCwgezB4NzAsMHg4OCwweDkwLDB4MDMsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk4LDB4MTIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweDkwZTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBhLDB4OTAsMHgwYSwweDI2LDB4MDAsMHhiOSwweDgwLDB4YTIsMHg0MCwweDA4LDB4OTAsMHgxMiwweDIwIH19LAotIHsxNiwgMHg5MGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDA0LDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4OTEwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMSwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweDkxMTAsIDAsIHsweGUwLDB4NDAsMHgwYSwweDkwLDB4ODIsMHhhNCwweDAwLDB4YjksMHgwMCwweDJjLDB4NDgsMHgwYSwweDk4LDB4MDIsMHgyNCwweDgwIH19LAotIHsxNiwgMHg5MTIwLCAwLCB7MHgzOSwweDIwLDB4MjIsMHg0MCwweDJhLDB4OTAsMHgwMiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgxMiwweDA0LDB4MTAsMHhiMSwweDA0LDB4MmMgfX0sCi0gezE2LCAweDkxNDAsIDAsIHsweGQ4LDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyMCwweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzQsMHg4MCwweGIxIH19LAotIHsxNiwgMHg5MTUwLCAwLCB7MHgyMiwweDJjLDB4NTAsMHg4YSwweDMyLDB4ODIsMHgwNSwweGEwLDB4YjEsMHgyYSwweDIwLDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4OTE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDUwLDB4YzgsMHg1MiwweDJlLDB4MTQgfX0sCi0gezE2LCAweDkxNzAsIDAsIHsweDBjLDB4ODUsMHgwMywweDIxLDB4NDAsMHhmOCwweDUwLDB4M2EsMHgwMCwweDFmLDB4ODUsMHgwMywweGExLDB4NDAsMHhmOCwweDUwIH19LAotIHsxNiwgMHg5MTgwLCAwLCB7MHgzMiwweDE0LDB4MGUsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzYywweDgwLDB4MGUsMHgwMiwweDAzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4OTE5MCwgMCwgezB4ZmEsMHgyMCwweDMyLDB4MDgsMHgwZSwweDgyLDB4MTMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDUwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MWIwLCAwLCB7MHg0NCwweDhkLDB4ZDAsMHgwMSwweGJkLDB4MDAsMHhmZCwweDAyLDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMCwweGU0LDB4NDgsMHg3OSB9fSwKLSB7MTYsIDB4OTFjMCwgMCwgezB4MTQsMHgzZSwweDUwLDB4MGYsMHg5MiwweGEyLDB4ZjQsMHgwOCwweGZkLDB4MDAsMHgzZSwweDRhLDB4MGQsMHhkMiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDkxZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTcsMHgwMCwweGY5LDB4MTAsMHgzYSwweDZlIH19LAotIHsxNiwgMHg5MWUwLCAwLCB7MHgwYywweGIxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHg0NCwweDNiLDB4NjEsMHg4ZSwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZTksMHg0MCB9fSwKLSB7MTYsIDB4OTFmMCwgMCwgezB4MzIsMHg2NiwweDBmLDB4ZGEsMHgwYiwweGE3LDB4MjgsMHhjOSwweGUwLDB4M2YsMHg2OCwweDBjLDB4ZGEsMHg4MywweGIzLDB4MjAgfX0sCi0gezE2LCAweDkyMDAsIDAsIHsweGVkLDB4YTAsMHgzMywweDc5LDB4MDgsMHhkOCwweDAzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM4LDB4MDgsMHg4YSwweDAyLDB4ZTIsMHg4OCwweGU4LDB4ODEsMHgyZSB9fSwKLSB7MTYsIDB4OTIyMCwgMCwgezB4MTQsMHgwOSwweDBhLDB4MDMsMHhlMiwweDgwLDB4YjgsMHg4MCwweDMyLDB4MzAsMHgwYiwweDg1LDB4MDIsMHgyMSwweDAxLDB4YTggfX0sCi0gezE2LCAweDkyMzAsIDAsIHsweGY0LDB4MzgsMHgyYSwweDA4LDB4MGUsMHhjYSwweDIzLDB4OTAsMHhjOCwweDU0LDB4MzQsMHgzOCwweDA4LDB4OGEsMHg5MiwweDBlIH19LAotIHsxNiwgMHg5MjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDAwLDB4MjgsMHg0MCB9fSwKLSB7MTYsIDB4OTI1MCwgMCwgezB4MTksMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgyMCwweGExLDB4YTIgfX0sCi0gezE2LCAweDkyNjAsIDAsIHsweDZjLDB4NDgsMHgwYiwweDEwLDB4MDIsMHg4NCwweDA4LDB4ODEsMHgyMCwweDJjLDB4NTAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDA0IH19LAotIHsxNiwgMHg5MjcwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHg1OCwweDA4LDB4M2MsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHhiOSwweDIwLDB4MmMsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhhOSwweDQwLDB4MmUgfX0sCi0gezE2LCAweDkyOTAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweGIxLDB4MDEsMHgyYSwweDQwLDB4MGIsMHg5NCwweDAyLDB4MjQsMHgwMCwweGE5IH19LAotIHsxNiwgMHg5MmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwMSwweDEwLDB4NTIsMHg2NCwweDAwLDB4ODksMHgwMCwweDI2LDB4NDAsMHgwMCwweDk4LDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4OTJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg2MSwweDNhLDB4NDAgfX0sCi0gezE2LCAweDkyYzAsIDAsIHsweDBkLDB4OTAsMHg4MywweGU1LDB4MjAsMHhmOSwweDAxLDB4M2EsMHg0MCwweDJlLDB4OTAsMHgwMiwweGU0LDB4NDAsMHhlOSwweDAxIH19LAotIHsxNiwgMHg5MmQwLCAwLCB7MHg5ZSwweDQwLDB4MGYsMHg5NCwweDAzLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MmQsMHg5MCwweDAyLDB4ZTYsMHgwOCB9fSwKLSB7MTYsIDB4OTJlMCwgMCwgezB4YjksMHgwMSwweDM2LDB4NDAsMHgyYywweDkwLDB4MDEsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyZjAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgyZSwweDkwLDB4MDMsMHhlNCwweDgwLDB4ZjksMHgwMCwweDNjIH19LAotIHsxNiwgMHg5MzAwLCAwLCB7MHg0MCwweDBjLDB4OWMsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4MTAsMHg0MywweDg0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OTMxMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ODAsMHg4MCwweGY5LDB4MDAsMHgzYywweDQwLDB4MmYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweDkzMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4NDAsMHgzNiwweDAxIH19LAotIHsxNiwgMHg5MzMwLCAwLCB7MHgwZCwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MDgsMHgwYywweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4OTM0MCwgMCwgezB4MzIsMHgwMCwweDhmLDB4ODAsMHgwMywweGEwLDB4MTAsMHhmOCwweDAwLDB4MzIsMHgwNCwweDBlLDB4ODAsMHg4MywweDYwLDB4MDAgfX0sCi0gezE2LCAweDkzNTAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHgwMCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyMiwweDgwLDB4MDgsMHhhMCwweDI0LDB4ZTgsMHgwMCwweDBhLDB4MDAsMHgyZiB9fSwKLSB7MTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxYSwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDE2LDB4ODAsMHgwYiwweGUwLDB4MDMsMHgyOCwweDA4LDB4ZWEgfX0sCi0gezE2LCAweDkzODAsIDAsIHsweDAwLDB4MzMsMHg5MCwweDA4LDB4ZWMsMHgxYiwweDIyLDB4ODAsMHhjNiwweDE0LDB4MmYsMHg5MSwweDA4LDB4YTAsMHg0MywweDRhIH19LAotIHsxNiwgMHg5MzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4OTNhMCwgMCwgezB4MDksMHgzMCwweDEyLDB4Y2MsMHgwNCwweGEzLDB4MDQsMHg2YywweGMwLDB4MDksMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweDkzYjAsIDAsIHsweDJjLDB4YzAsMHgxMywweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCwweGU2LDB4YjgsMHgwYSwweDM4LDB4MDIsMHg0NCwweDA4IH19LAotIHsxNiwgMHg5M2MwLCAwLCB7MHg4MiwweDUwLDB4MmMsMHhkMiwweDNhLDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4ODAsMHg5NywweGI0LDB4MjEsMHhjNCwweDQ5LDB4NzEsMHgwMiwweGRlLDB4ODEsMHg4NywweDIxLDB4MmQgfX0sCi0gezE2LCAweDkzZTAsIDAsIHsweGQwLDB4MGIsMHg3YiwweDAyLDB4MWMsMHgwMSwweGJmLDB4MjAsMHgyOSwweGM0LDB4MGIsMHgzMCwweDAyLDB4NWMsMHgwMCwweGE3IH19LAotIHsxNiwgMHg5M2YwLCAwLCB7MHhhMSwweDIxLDB4YzAsMHg0YSwweDcwLDB4OGEsMHgwYywweDgxLDB4ODQsMHgwMCwweDJkLDB4ZDAsMHgwYSwweDUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OTQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgyLDB4ZGYsMHhhMCwweDM0LDB4ZWMgfX0sCi0gezE2LCAweDk0MTAsIDAsIHsweDBkLDB4NzksMHgwMiwweGZlLDB4ODAsMHhlNywweGU4LDB4MmYsMHhhMCwweDA5LDB4N2EsMHgwMiwweDllLDB4MDAsMHhmNywweGEyIH19LAotIHsxNiwgMHg5NDIwLCAwLCB7MHgyNSwweGVhLDB4MGIsMHg0OCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YzAsMHg2NSwweGU0LDB4MGUsMHg2OCwweDAzLDB4NWYsMHgwMCB9fSwKLSB7MTYsIDB4OTQzMCwgMCwgezB4ZTQsMHg4MCwweDNkLDB4ZTAsMHgwZSwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0NDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDQ4LDB4ZWIsMHgwNSwweDNlLDB4ZDksMHgwZSwweGIyLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg2MCwweDNlIH19LAotIHsxNiwgMHg5NDUwLCAwLCB7MHhjMCwweDBlLDB4YjIsMHg4MywweGFjLDB4MDAsMHhmMywweDUwLDB4YTYsMHhjMCwweDRmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTQ2MCwgMCwgezB4ODAsMHgzZiwweGQ4LDB4MGQsMHhhMCwweDAzLDB4ZWMsMHgwYSwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGQsMHg5MCwweDAzLDB4NDIgfX0sCi0gezE2LCAweDk0NzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGJiLDB4OTAsMHgzZSwweGUwIH19LAotIHsxNiwgMHg5NDgwLCAwLCB7MHgwOCwweDM5LDB4MDMsMHg5ZSwweDIwLDB4Y2YsMHg4MiwweDc3LDB4ZTAsMHgxZiwweGY4LDB4MDMsMHhlZSwweDAwLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4OTQ5MCwgMCwgezB4M2YsMHhlNSwweDBkLDB4ZjksMHgwMywweGVlLDB4MDAsMHhmYiwweDkwLDB4MzcsMHhhMCwweDA4LDB4ZjgsMHgwZiwweDFlLDB4MDAgfX0sCi0gezE2LCAweDk0YTAsIDAsIHsweGNjLDB4OTQsMHgzMywweDYwLDB4MGQsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI3LDB4OTAsMHgyZiwweGU0LDB4MDgsMHg3YSwweDAyLDB4MWUsMHgwMCwweDhmLDB4MTIsMHgyNSB9fSwKLSB7MTYsIDB4OTRjMCwgMCwgezB4ZDgsMHgwYiwweGJiLDB4MDIsMHgxZSwweDAwLDB4YjcsMHgwMCwweDJkLDB4ZTgsMHgwOCwweDdkLDB4ODIsMHhkZSwweDQwLDB4YmIgfX0sCi0gezE2LCAweDk0ZDAsIDAsIHsweGEwLDB4MjcsMHg5MCwweDBhLDB4NzYsMHgwMiwweDVjLDB4ODAsMHg4NSwweDAwLDB4MzcsMHhjNCwweDRkLDB4NzEsMHgwMywweGVhIH19LAotIHsxNiwgMHg5NGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDIwLDB4MmQsMHhjMCB9fSwKLSB7MTYsIDB4OTRmMCwgMCwgezB4MjksMHhmMiwweDIyLDB4YmMsMHg4MCwweDk3LDB4MDAsMHgyNSwweDQxLDB4MGIsMHg3MCwweDEyLDB4OWMsMHgwMCwweGI3LDB4MDggfX0sCi0gezE2LCAweDk1MDAsIDAsIHsweDI5LDB4YzAsMHgwOCwweDQyLDB4MTIsMHhkYywweDQwLDB4YjcsMHgwMCwweDI5LDB4YzAsMHgwOSwweDYwLDB4MjIsMHhkYywweDEwIH19LAotIHsxNiwgMHg5NTEwLCAwLCB7MHg4MCwweDAwLDB4MjEsMHg0MCwweDA5LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweGMwLDB4MmUsMHhjMCwweDA4LDB4MzQsMHg4MiwweDJkLDB4MDAsMHg5MywweDAwLDB4MjQgfX0sCi0gezE2LCAweDk1MzAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDAyLDB4MGYsMHg4MCwweDEzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzNCwweGEyLDB4ZWMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5NTQwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4OSB9fSwKLSB7MTYsIDB4OTU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHhlMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDk1NjAsIDAsIHsweDBjLDB4ZjQsMHg4MywweGJkLDB4MDAsMHhkZiwweDA4LDB4MzYsMHg0MCwweDBiLDB4NzUsMHg0MiwweGZjLDB4MjAsMHhmZiwweDgwIH19LAotIHsxNiwgMHg5NTcwLCAwLCB7MHgzYiwweGMwLDB4MmMsMHgzYywweDAzLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHhiZSwweGMwLDB4OGQsMHg5MCwweDBiLDB4YWMsMHgwMiB9fSwKLSB7MTYsIDB4OTU4MCwgMCwgezB4Y2EsMHgwMCwweDIyLDB4ODAsMHgwZCwweGIwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk1OTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwOCwweDFlLDB4YzAsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNhIH19LAotIHsxNiwgMHg5NWEwLCAwLCB7MHgxMCwweDBmLDB4YjAsMHgyMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2UsMHhjMCwweDNjLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTViMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGUsMHg5NCwweDBiLDB4MmMsMHgwMCwweGY5LDB4NDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweDk1YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMiwweGNmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHg5NWQwLCAwLCB7MHgwZCwweGYwLDB4MGIsMHgzYywweDIwLDB4Y2YsMHgwMCwweDNkLDB4MDAsMHgwZSwweGYwLDB4MDcsMHg5YywweDAxLDB4Y2YsMHgwMiB9fSwKLSB7MTYsIDB4OTVlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YzQsMHgwMywweDNjLDB4MDAsMHhjZiwweDAwLDB4MGYsMHhjMCwweDBlLDB4NDQsMHgwMywweDFmLDB4MDIgfX0sCi0gezE2LCAweDk1ZjAsIDAsIHsweGNjLDB4MDAsMHgzZiwweDgwLDB4MmMsMHg3MCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyZSwweGMwLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweGFiLDB4MDAsMHgwNiB9fSwKLSB7MTYsIDB4OTYxMCwgMCwgezB4MjAsMHgwOCwweGIwLDB4MDMsMHhmYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwZiwweDgwLDB4MDYsMHhiYywweDAwLDB4YWIgfX0sCi0gezE2LCAweDk2MjAsIDAsIHsweDA0LDB4M2EsMHhmMCwweDBjLDB4ODgsMHgwMiwweDJjLDB4MDAsMHhjOSwweDgwLDB4M2EsMHg5MiwweDA4LDB4OTAsMHgwYSwweGEwIH19LAotIHsxNiwgMHg5NjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4OTY0MCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweDYwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDk2NTAsIDAsIHsweDZlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OWIsMHgwMCwweDRjLDB4ZTAsMHgwYSwweDkwLDB4MjIsMHgyYywweDAwIH19LAotIHsxNiwgMHg5NjYwLCAwLCB7MHg4YSwweGMyLDB4MmMsMHg0MCwweDA4LDB4YjAsMHg0MiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDBkLDB4MmMsMHhjNiwweDA5LDB4MzEsMHgwMiwweDBkLDB4ODEsMHhhMywweDExLDB4MjQgfX0sCi0gezE2LCAweDk2ODAsIDAsIHsweDAwLDB4OGEsMHhiMSwweGUyLDB4NGMsMHg4MCwweGEzLDB4MDAsMHgyYywweGNjLDB4MGIsMHgwMiwweDAyLDB4OGMsMHg4MCwweGEzIH19LAotIHsxNiwgMHg5NjkwLCAwLCB7MHg0OCwweDA4LDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwZCwweDAwLDB4ODEsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OTZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2IsMHgyMCwweDJmLDB4YzggfX0sCi0gezE2LCAweDk2YjAsIDAsIHsweDhkLDB4ZjYsMHgxMywweDJkLDB4YjAsMHg4ZiwweDAwLDB4MzYsMHg0MCwweDBmLDB4ZjAsMHgwMiwweGFkLDB4YTgsMHg4ZiwweDEwIH19LAotIHsxNiwgMHg5NmMwLCAwLCB7MHgzZiwweGNhLDB4MGIsMHg4MCwweDkyLDB4MmMsMHgxMCwweGRiLDB4NDAsMHgzZiwweGMwLDB4MGUsMHgwMCwweDAzLDB4MmQsMHgwNCB9fSwKLSB7MTYsIDB4OTZkMCwgMCwgezB4YzgsMHgwMiwweDNlLDB4NDAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2ZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzgsMHgwZSwweGYxLDB4MDMsMHhlYywweDg0LDB4ZmYsMHgyMCwweDM3IH19LAotIHsxNiwgMHg5NmYwLCAwLCB7MHgwMCwweDBkLDB4YjIsMHgwMywweGJjLDB4YTAsMHhmZiwweDAwLDB4M2UsMHhjOSwweDBlLDB4ODAsMHgwMywweGZkLDB4MTEsMHhmZiB9fSwKLSB7MTYsIDB4OTcwMCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGUsMHhjMCwweDAzLDB4ZmMsMHg4MCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfX0sCi0gezE2LCAweDk3MTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg5MCwweGNjLDB4OTIsMHgzYiwweGM4IH19LAotIHsxNiwgMHg5NzIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHg3MywweDEwLDB4ZmYsMHgyOCwweDM3LDB4Y2EsMHg0ZiwweGIyLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgyMCB9fSwKLSB7MTYsIDB4OTczMCwgMCwgezB4YjMsMHhjNCwweDBkLDB4NjgsMHg0MywweGZlLDB4MTQsMHhjYiwweDg0LDB4MzMsMHhlMCwweDBkLDB4NzgsMHgwMywweGJlLDB4MDAgfX0sCi0gezE2LCAweDk3NDAsIDAsIHsweGZmLDB4ODAsMHgzNywweGEwLDB4MGMsMHhmMywweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NzUwLCAwLCB7MHg4MCwweDAwLDB4ZmMsMHg0OCwweDgyLDB4MjEsMHgwMywweGY0LDB4MGYsMHhmNiwweDQyLDB4MjAsMHgwNCwweDhhLDB4NjAsMHgyYiB9fSwKLSB7MTYsIDB4OTc2MCwgMCwgezB4ZGEsMHgwYiwweGY5LDB4MDIsMHgzZiwweDA0LDB4OGYsMHg1MiwweDIzLDB4ZDUsMHg0ZCwweDg4LDB4MDIsMHhhZSwweDAwLDB4ZGIgfX0sCi0gezE2LCAweDk3NzAsIDAsIHsweDgwLDB4MzYsMHhjMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDQsMHhiOCwweDAwLDB4MjIsMHg2MCwweDBkLDB4NzQsMHgwMywweGUwIH19LAotIHsxNiwgMHg5NzgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4YTAsMHg4MCwweDAxLDB4MDgsMHhjMCB9fSwKLSB7MTYsIDB4OTc5MCwgMCwgezB4NGIsMHgzMCwweDgyLDB4NDIsMHg5MCwweGEzLDB4MDgsMHgyYywweGM4LDB4MWEsMHgzMCwweDIyLDB4OGQsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweDk3YTAsIDAsIHsweDI0LDB4YzgsMHgwOSwweGEwLDB4MTIsMHgwYywweDA0LDB4YWIsMHgwMCwweDYyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg5N2IwLCAwLCB7MHhiMywweDAwLDB4MjgsMHg4MCwweDA4LDB4MzYsMHgwNiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTdjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDBhLDB4MzAsMHgxYSwweDAwLDB4MTEsMHg4MiwweDAwLDB4MGEgfX0sCi0gezE2LCAweDk3ZDAsIDAsIHsweGMwLDB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MDksMHg5MSwweDAyLDB4ZWMsMHgyMCwweGJiIH19LAotIHsxNiwgMHg5N2UwLCAwLCB7MHgyOCwweDY2LDB4YzAsMHgwOCwweDgwLDB4MDIsMHg2MCwweDAwLDB4YjgsMHgwMCwweDJhLDB4NDAsMHg4MSwweGIwLDB4MDYsMHhmOCB9fSwKLSB7MTYsIDB4OTdmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4YzgsMHgwNCwweDNhLDB4YzAgfX0sCi0gezE2LCAweDk4MDAsIDAsIHsweDg5LDB4YjAsMHgwMywweDY4LDB4MDAsMHhlOSwweGMxLDB4MWUsMHhjMSwweDBlLDB4MzAsMHgwMywweGVjLDB4MDAsMHhkYiwweDAwIH19LAotIHsxNiwgMHg5ODEwLCAwLCB7MHgzNiwweGMxLDB4MGQsMHgwMCwweDIzLDB4MGUsMHgwMCwweGViLDB4ODAsMHgzMiwweGM4LDB4Y2QsMHgzMCwweDMyLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4OTgyMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4ODAsMHgwYywweGIwLDB4MDYsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4MzAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4N2MsMHgwMCwweDNmLDB4YzAsMHgwYiwweGIwLDB4NDMsMHhmZCwweDAwLDB4YmUsMHhjNCwweDM3IH19LAotIHsxNiwgMHg5ODQwLCAwLCB7MHhjMCwweDFmLDB4ZjAsMHgwMywweDVjLDB4MDAsMHhmZiwweDAxLDB4M2IsMHhjMCwweDBlLDB4YzgsMHgwMywweGJmLDB4MjAsMHhkZiB9fSwKLSB7MTYsIDB4OTg1MCwgMCwgezB4MDAsMHgzZiwweGQwLDB4MGYsMHhjMCwweDEzLDB4YjAsMHgwMCwweDdjLDB4MDAsMHhiNywweDQwLDB4MGYsMHhmMCwweDFiLDB4YjAgfX0sCi0gezE2LCAweDk4NjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwYywweGQ4LDB4NDEsMHgzMiwweGMwIH19LAotIHsxNiwgMHg5ODcwLCAwLCB7MHgwZSwweGIwLDB4MDcsMHhhOCwweDAxLDB4NjksMHg0MCwweGIyLDB4YzAsMHg4ZCwweGIwLDB4YTMsMHhlYywweDA4LDB4ZjMsMHgwMCB9fSwKLSB7MTYsIDB4OTg4MCwgMCwgezB4MzIsMHhjMCwweDBmLDB4ODAsMHgwMywweGVkLDB4MDAsMHhmYiwweDQ4LDB4M2EsMHhjMCwweDBkLDB4YjAsMHg4MywweDJjLDB4MDAgfX0sCi0gezE2LCAweDk4OTAsIDAsIHsweGZiLDB4MjAsMHgzZSwweDgwLDB4MGYsMHg3MCwweDIzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MDgsMHhmMCwweDA2LDB4MmMsMHgxMCwweDg4LDB4NTEsMHgzNyB9fSwKLSB7MTYsIDB4OThiMCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MDcsMHg3ZCwweDYwLDB4OGYsMHgwMiwweDM3LDB4YzAsMHgwYiwweDhjLDB4MDAsMHgyZCwweDAwLDB4YjMgfX0sCi0gezE2LCAweDk4YzAsIDAsIHsweDAwLDB4MzgsMHhjMCwweDA4LDB4ODAsMHg4MiwweDIwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHg1MCwweDBiLDB4ZjAsMHgwMCwweDMyIH19LAotIHsxNiwgMHg5OGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5OCwweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4OThlMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4ODQsMHgwNCwweGEzLDB4MDAsMHgwMCwweGMwLDB4NjgsMHgzOSwweDA2LDB4MGMsMHgxMCwweDkzLDB4MjAgfX0sCi0gezE2LCAweDk4ZjAsIDAsIHsweDIyLDB4YzAsMHg5YiwweDAxLDB4YTAsMHg4ZiwweDE0LDB4MzMsMHgxNCwweDI4LDB4YzAsMHgwOSwweDNjLDB4MDIsMHgwYywweDAxIH19LAotIHsxNiwgMHg5OTAwLCAwLCB7MHg5MywweDQwLDB4MmMsMHg4OCwweDBiLDB4MzAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTkxMCwgMCwgezB4NjAsMHgwMSwweDFlLDB4MTAsMHg4NywweDgwLDB4MjksMHhlMCwweDA4LDB4NzgsMHgwMiwweDNlLDB4MDAsMHg4MywweDkwLDB4MjQgfX0sCi0gezE2LCAweDk5MjAsIDAsIHsweGUwLDB4MDgsMHg3OCwweDEwLDB4Y2UsMHgwNCwweDA3LDB4OTEsMHgyNSwweGUwLDB4ODMsMHhjOSwweDAyLDB4MWUsMHgwNCwweGI3IH19LAotIHsxNiwgMHg5OTMwLCAwLCB7MHg4NCwweDJiLDB4YTQsMHgwOCwweDQ4LDB4NDIsMHgxMiwweGNjLDB4YjQsMHg4MCwweDJkLDB4NjQsMHgwYiwweDc4LDB4MDIsMHgxOSB9fSwKLSB7MTYsIDB4OTk0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgyYywweDAwLDB4ZDAsMHgxMCwweDI4LDB4YzggfX0sCi0gezE2LCAweDk5NTAsIDAsIHsweDBlLDB4M2IsMHgwMiwweDg0LDB4MDAsMHhlMywweDQwLDB4MzAsMHhjOCwweDBjLDB4MzgsMHg2MiwweDhjLDB4MDAsMHg1MywweDAwIH19LAotIHsxNiwgMHg5OTYwLCAwLCB7MHgzMCwweGM0LDB4MWYsMHgwMCwweDIzLDB4OGMsMHgzYywweGYzLDB4ODAsMHgxOCwweGMwLDB4MGQsMHgzMCwweDAzLDB4MGUsMHg4MCB9fSwKLSB7MTYsIDB4OTk3MCwgMCwgezB4ZDMsMHgxMCwweDNjLDB4ODAsMHgwZiwweDMwLDB4MDMsMHg5MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5ODAsIDAsIHsweDQwLDB4MWQsMHhiZCwweDAwLDB4ZjksMHgxMiwweGI0LDB4YzAsMHgwNywweGIwLDB4MDMsMHhjYywweDAwLDB4NGEsMHgwMCwweDc3IH19LAotIHsxNiwgMHg5OTkwLCAwLCB7MHhjMCwweDBlLDB4NzEsMHg0MywweDZjLDB4MDAsMHhmMywweDAwLDB4M2YsMHhkMCwweDFmLDB4ZDAsMHg1MywweGFjLDB4NjgsMHhmYiB9fSwKLSB7MTYsIDB4OTlhMCwgMCwgezB4MTgsMHgzZCwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHg1MCwweGZjLDB4MDQsMHgzZiwweDQwLDB4MGYsMHhmNCwweDAzLDB4OTAgfX0sCi0gezE2LCAweDk5YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHg0MCwweGY4LDB4MDQsMHgzZSwweGQyIH19LAotIHsxNiwgMHg5OWMwLCAwLCB7MHgwZiwweGIzLDB4MTMsMHhlMCwweDEwLDB4ZjksMHgwMCwweGIyLDB4Y2MsMHgwZSwweGJhLDB4MDMsMHg2ZCwweDgwLDB4ZGIsMHgwMiB9fSwKLSB7MTYsIDB4OTlkMCwgMCwgezB4MzIsMHhkYywweDRmLDB4MDAsMHgwMywweDZjLDB4MDQsMHhmMywweDAyLDB4MzYsMHg0MCwweDBlLDB4YjAsMHgwMywweGNjLDB4MDAgfX0sCi0gezE2LCAweDk5ZTAsIDAsIHsweDRiLDB4MDAsMHgzYywweDgwLDB4MGMsMHhmMSwweDAzLDB4NjIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OWYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI0LDB4MDAsMHgyZCwweGM5LDB4MGIsMHg3MCwweDgyLDB4ZGMsMHgwMCwweGJjLDB4MDQsMHgyMSB9fSwKLSB7MTYsIDB4OWEwMCwgMCwgezB4YzQsMHg0YiwweDM3LDB4MDIsMHgwYywweGEwLDB4OGYsMHg3NCwweDIxLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgxYywweDgxLDB4YjcgfX0sCi0gezE2LCAweDlhMTAsIDAsIHsweDIwLDB4MmIsMHhjMCwweDA4LDB4NDAsMHgwMiwweGQwLDB4MDIsMHg4NCwweDAwLDB4MmQsMHg0MCwweDBhLDB4ZjIsMHgwMiwweDEyIH19LAotIHsxNiwgMHg5YTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNCwweGMwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4OWEzMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZDIsMHgwMCwweGI1LDB4ODgsMHgyMSwweGU4LDB4MGEsMHg3OCwweDAyLDB4ZGUsMHg0MCwweDk3LDB4MDAgfX0sCi0gezE2LCAweDlhNDAsIDAsIHsweDIxLDB4ZTgsMHgwYiwweGNjLDB4NDYsMHg1ZSwweDI4LDB4YjcsMHhjNCwweDIxLDB4ZjAsMHgwYSwweDc4LDB4MDIsMHhmZSwweDA4IH19LAotIHsxNiwgMHg5YTUwLCAwLCB7MHg5NywweDg0LDB4MmQsMHhhMCwweDA4LDB4NzgsMHgwMiwweDcwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWE2MCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHhiMCwweGMwLDB4MmMsMHhjMCwweDliLDB4YjAsMHgwMiwweGNjLDB4MjAsMHhiMywweDYwLDB4MjIgfX0sCi0gezE2LCAweDlhNzAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzLDB4MDEsMHgyMCwweGMwLDB4MWIsMHgwNiwweDE2LDB4NGYsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5YTgwLCAwLCB7MHhhMCwweDJhLDB4ZjAsMHgwOCwweDAwLDB4MDIsMHhlMCwweDAwLDB4OTAsMHgwMCwweDJjLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDEwLDB4ZmUsMHhjMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDlhYTAsIDAsIHsweDBmLDB4YTAsMHgwMywweGY5LDB4MDgsMHhmZSwweDQwLDB4MjIsMHg4MCwweDBlLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkMiwweDAwIH19LAotIHsxNiwgMHg5YWIwLCAwLCB7MHgzMiwweDgwLDB4OGYsMHhlMCwweDAzLDB4NTgsMHgwMCwweGY2LDB4MDAsMHgzMywweGIwLDB4MGUsMHgyMCwweDAyLDB4ZTgsMHgwYyB9fSwKLSB7MTYsIDB4OWFjMCwgMCwgezB4ZDIsMHgwMiwweDNjLDB4ODAsMHgwYywweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNlLDB4MDEsMHgwYiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjAsMHg0MCwweDNlIH19LAotIHsxNiwgMHg5YWUwLCAwLCB7MHgwMCwweDU3LDB4ODAsMHgyMywweDAwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MzAsMHgzOCB9fSwKLSB7MTYsIDB4OWFmMCwgMCwgezB4MDAsMHgzYSwweDA4LDB4MGYsMHhjNCwweDAzLDB4ZjAsMHgwMCwweGVjLDB4MDAsMHgzZiwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDliMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDEsMHgzYywweDQ4IH19LAotIHsxNiwgMHg5YjEwLCAwLCB7MHg0YywweDkwLDB4MGIsMHgyNCwweDAxLDB4YzksMHhjMCwweDMyLDB4NDAsMHhhYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZDksMHg0MCB9fSwKLSB7MTYsIDB4OWIyMCwgMCwgezB4MzAsMHg0MCwweDBkLDB4OWEsMHgwMywweDIyLDB4ODQsMHhjOCwweDE0LDB4MzIsMHg0MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDliMzAsIDAsIHsweGM5LDB4MDAsMHg4MiwweDY4LDB4MmMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OWI1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNywweDQwLDB4ODksMHg4MCwweDM2LDB4NDEsMHg4ZCwweDE4LDB4MDIsMHhhMCwweDI0LDB4YTggfX0sCi0gezE2LCAweDliNjAsIDAsIHsweDA0LDB4NjIsMHg0MCwweDA4LDB4OTQsMHg4MywweDI0LDB4MDAsMHg4OSwweDAxLDB4MjIsMHg3MiwweDA4LDB4OTAsMHgwYiwweDIwIH19LAotIHsxNiwgMHg5YjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCB9fSwKLSB7MTYsIDB4OWI4MCwgMCwgezB4MjgsMHg5MCwweDEyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgyMCwweDk5LDB4MDAgfX0sCi0gezE2LCAweDliOTAsIDAsIHsweDIyLDB4NDAsMHgxOCwweDkwLDB4MDYsMHgyMCwweDAxLDB4ODgsMHgwOCwweDYyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgzNCwweDEwIH19LAotIHsxNiwgMHg5YmEwLCAwLCB7MHg4ZCwweDgxLDB4MjMsMHg0MSwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWJiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDA0LDB4MmMsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDIsMHg4MywweDIwLDB4MjAgfX0sCi0gezE2LCAweDliYzAsIDAsIHsweDQ4LDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MCwweDgzLDB4NjAsMHgyNCwweDQ4LDB4MTksMHgzNCwweDYyLDB4YTUsMHgwNCwweGExIH19LAotIHsxNiwgMHg5YmQwLCAwLCB7MHgwMiwweDYwLDB4NDAsMHgwOCwweGQwLDB4MDIsMHg1NCwweDAwLDB4OGQsMHgwMCwweDI5LDB4NDAsMHgwOCwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4OWJlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNhLDB4ODAgfX0sCi0gezE2LCAweDliZjAsIDAsIHsweDBjLDB4ODUsMHgwMiwweDIxLDB4NDQsMHg4OCwweDUwLDB4MzIsMHgxNCwweDRjLDB4ODAsMHg0MywweGUwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHg5YzAwLCAwLCB7MHgyMiwweDE0LDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHhhMiwweDAwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4OWMxMCwgMCwgezB4YzgsMHgwMCwweDMzLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQ0LDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDEwLDB4ZmYsMHgxMCwweDNlIH19LAotIHsxNiwgMHg5YzMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBiLDB4ZjAsMHgxMywweGU1LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OWM0MCwgMCwgezB4NDAsMHgzZiwweDRhLDB4MmYsMHg5MiwweDhhLDB4YTQsMHhhMiwweGY5LDB4MjgsMHgzNiwweDQwLDB4MGYsMHg5MiwweDgzLDB4YTYgfX0sCi0gezE2LCAweDljNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4ZTYsMHhjMCwweGMxLDB4MDAsMHgzZiwweDY5IH19LAotIHsxNiwgMHg5YzYwLCAwLCB7MHgwYywweDlhLDB4NDMsMHg2YywweDAwLDB4ZmQsMHhhMCwweDNlLDB4NzgsMHgyYywweGQ4LDB4MDcsMHhkNiwweDAyLDB4ZDUsMHg5NiB9fSwKLSB7MTYsIDB4OWM3MCwgMCwgezB4MzIsMHg3OCwweDBkLDB4OTAsMHgwMywweDI3LDB4MDAsMHhmZCwweGEwLDB4MzUsMHg1MCwweDA2LDB4ZDQsMHgwMywweGU1LDB4MDAgfX0sCi0gezE2LCAweDljODAsIDAsIHsweGZkLDB4NDAsMHhiMywweDQwLDB4MGYsMHg5OCwweGEzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YzkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhjMiwweDg4LDB4ODgsMHgyZSwweDE0LDB4YTgsMHg4YSwweGMyLDB4MjIsMHhhMCwweGI4LDB4YzAsMHgyYyB9fSwKLSB7MTYsIDB4OWNhMCwgMCwgezB4MjQsMHg0OCwweDg0LDB4MDIsMHhlMSwweDAwLDB4OTgsMHhjNCwweDIwLDB4M2MsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4YjggfX0sCi0gezE2LCAweDljYjAsIDAsIHsweDA0LDB4MjIsMHgyMCwweDA4LDB4ODgsMHgwMywweGEyLDB4MDAsMHhiOCwweGEwLDB4MjIsMHgwMCwweDBiLDB4ODgsMHgwMiwweDBlIH19LAotIHsxNiwgMHg5Y2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhhMSwweDIwLDB4NmMsMHg0MCB9fSwKLSB7MTYsIDB4OWNkMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDQsMHgwNCwweGExLDB4NjgsMHgyYywweDQ4LDB4MDgsMHgxNCwweDAyLDB4YzUsMHgwMCwweDgxLDB4NjAgfX0sCi0gezE2LCAweDljZTAsIDAsIHsweDIwLDB4NDgsMHgxOSwweDkwLDB4MDIsMHg4NSwweDgxLDB4YjEsMHg0MCwweDI0LDB4NjgsMHgwYSwweDEyLDB4NDIsMHhjNCwweDgwIH19LAotIHsxNiwgMHg5Y2YwLCAwLCB7MHhiOSwweDIwLDB4MjAsMHg0MCwweDhiLDB4MTAsMHg4MiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MTAsMHhhOSwweDAwLDB4NmUsMHhjMCwweDBhLDB4MTAsMHgwMiwweDI0LDB4MTQsMHhiOSwweDAwLDB4MmUgfX0sCi0gezE2LCAweDlkMTAsIDAsIHsweDQwLDB4MDgsMHg5MCwweDEyLDB4ZTQsMHgwMCwweDk5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg4MCwweDA2LDB4YTAsMHg2MCwweGI5IH19LAotIHsxNiwgMHg5ZDIwLCAwLCB7MHgwOSwweDIyLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDAyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwNiB9fSwKLSB7MTYsIDB4OWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZTksMHg4MCwweDNlLDB4NDEgfX0sCi0gezE2LCAweDlkNDAsIDAsIHsweDBlLDB4OTAsMHgwMywweDY0LDB4MDAsMHhlOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhjOSwweDAwIH19LAotIHsxNiwgMHg5ZDUwLCAwLCB7MHgyMiwweDQxLDB4MGQsMHg4MCwweDAyLDB4YTMsMHgwNCwweGYxLDB4NDAsMHgzNiwweDQwLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OWQ2MCwgMCwgezB4ZjEsMHgwMCwweDEyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZDksMHgyMiwweDNlLDB4NDIsMHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4YjksMHhjNCwweDNjIH19LAotIHsxNiwgMHg5ZDgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4YWUsMHg0MCwweDBmLDB4ODAsMHg0YiwweDYyLDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OWQ5MCwgMCwgezB4MjAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDIsMHg3ZSwweDQxLDB4MGYsMHg5MCwweDEzLDB4Y2EgfX0sCi0gezE2LCAweDlkYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4ODAsMHgwMCwweGM4LDB4MDAsMHgzOCwweDAwIH19LAotIHsxNiwgMHg5ZGIwLCAwLCB7MHgwZiwweDgwLDB4MjAsMHhlMCwweDAwLDB4YTgsMHgyMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDcsMHhlMCwweDgwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4OWRjMCwgMCwgezB4MzgsMHgwMCwweDBkLDB4ODAsMHg4MywweDIxLDB4MTAsMHhmOCwweDYwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHhiMywweDIwLDB4MDggfX0sCi0gezE2LCAweDlkZDAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweDhhLDB4MDAsMHgzMywweDkwLDB4NDMsMHhhMCwweDIyLDB4MjgsMHgwMCwweDhlLDB4ODAsMHg3NiB9fSwKLSB7MTYsIDB4OWRmMCwgMCwgezB4ODAsMHgwOCwweGUxLDB4MDMsMHgxOSwweDAwLDB4ODYsMHg4MCwweDIyLDB4ODAsMHgwZCwweDYwLDB4MDEsMHg3OCwweDAwLDB4YmUgfX0sCi0gezE2LCAweDllMDAsIDAsIHsweDAwLDB4MzYsMHg4MCwweDBjLDB4ZTQsMHgwMiwweGE4LDB4MTAsMHhiZSwweGEwLDB4MmYsMHg4MCwweDBkLDB4YTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHg5ZTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMSwweDRjLDB4MDQsMHgwMywweDA0LDB4MmMsMHhkNCB9fSwKLSB7MTYsIDB4OWUyMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4NGMsMHgwMSwweGEzLDB4YzQsMHgyMCwweGMwLDB4MjgsMHgzNSwweDAyLDB4ODYsMHgwMCwweDgzLDB4ODAgfX0sCi0gezE2LCAweDllMzAsIDAsIHsweDI4LDB4YzAsMHgwOCwweDM4LDB4MDYsMHgwZSwweDk0LDB4MzAsMHhjMCwweGEyLDB4YzAsMHgwYiwweDNjLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg5ZTQwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0OCwweDA4LDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWU1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MDQsMHg4ZiwweDgwLDB4MjEsMHhjMSwweDFiLDB4NzIsMHg0MiwweDFlLDB4YzAsMHg4MywweDg4LDB4MjEgfX0sCi0gezE2LCAweDllNjAsIDAsIHsweGMwLDB4MTgsMHgyOCwweDA2LDB4MTAsMHgyMSwweDg2LDB4MzgsMHgyMSwweGMwLDB4MTksMHhmNywweDAyLDB4NWQsMHhjMCwweGI0IH19LAotIHsxNiwgMHg5ZTcwLCAwLCB7MHg0MSwweDI3LDB4ZDAsMHgwOCwweDc4LDB4YzYsMHg5YywweDAwLDB4YjcsMHgwMCwweDJmLDB4NjAsMHgwOSwweDcyLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4OWU4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAyLDB4YzcsMHg4MCwweDJkLDB4YTAgfX0sCi0gezE2LCAweDllOTAsIDAsIHsweDBmLDB4M2UsMHgwMywweGZlLDB4ODAsMHhhNywweDgwLDB4YTEsMHhlMCwweDBjLDB4NzgsMHgwMiwweDk0LDB4MDAsMHg4NSwweGEwIH19LAotIHsxNiwgMHg5ZWEwLCAwLCB7MHgzOSwweGU0LDB4MGMsMHg3OCwweDEzLDB4MWUsMHg5MCwweGI1LDB4ODQsMHgzMSwweGUwLDB4MGYsMHhmOCwweDg3LDB4MWUsMHgwNCB9fSwKLSB7MTYsIDB4OWViMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4NjAsMHgwYywweDNiLDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllYzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweGU0LDB4ZmIsMHg1NCwweDNlLDB4ODAsMHgwZiwweGI0LDB4MjMsMHhlYywweDMyLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5ZWQwLCAwLCB7MHhkOCwweDRmLDB4YTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4MzAsMHgzMywweGVjLDB4MDQsMHhmMiB9fSwKLSB7MTYsIDB4OWVlMCwgMCwgezB4MDEsMHgzZSwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZmUsMHgxMCwweGZiLDB4NjgsMHgzYywweDQxLDB4MGYsMHhmMCwweDQzLDB4ODIgfX0sCi0gezE2LCAweDllZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGNmLDB4ZTQsMHgzZiwweGU0IH19LAotIHsxNiwgMHg5ZjAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHg3ZSwweDgwLDB4Y2YsMHg4MSwweDMzLDB4ZmEsMHgwZiwweGY4LDB4MDMsMHhmNiwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4OWYxMCwgMCwgezB4M2YsMHhlMiwweDBmLDB4NzksMHgwMywweDNlLDB4NDAsMHhmNCwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZTgsMHgwMywweDNlLDB4MDAgfX0sCi0gezE2LCAweDlmMjAsIDAsIHsweGZmLDB4ODAsMHgzMywweDYwLDB4MGMsMHhmOCwweDgzLDB4NTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZjMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTAsMHgyZCwweGM0LDB4MDgsMHhiYSwweDAyLDB4M2MsMHhhMCwweDg3LDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4OWY0MCwgMCwgezB4YzAsMHgwZiwweDUyLDB4MDMsMHhkNCwweDAwLDB4YjYsMHgxMCwweDJkLDB4YzAsMHg4YiwweDczLDB4MDMsMHg1YywweDQwLDB4YjQgfX0sCi0gezE2LCAweDlmNTAsIDAsIHsweGIwLDB4MmIsMHg0OCwweDI4LDB4NDEsMHgwMiwweDBjLDB4MDAsMHhiZiwweDE4LDB4MzUsMHg0NiwweDI4LDB4NzIsMHg0MiwweDJhIH19LAotIHsxNiwgMHg5ZjYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHg4NywweDQxLDB4MmQsMHg0NCB9fSwKLSB7MTYsIDB4OWY3MCwgMCwgezB4MGEsMHg3MywweDAyLDB4OWMsMHhjNCwweDgxLDB4MDAsMHg2ZCwweGM4LDB4OGIsMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAgfX0sCi0gezE2LCAweDlmODAsIDAsIHsweDJkLDB4YzAsMHgwYiwweGYwLDB4NDYsMHg5YywweDU1LDB4YjQsMHgyMCwweDI1LDB4NDAsMHgxOCwweDYwLDB4ODIsMHgxYywweDAwIH19LAotIHsxNiwgMHg5ZjkwLCAwLCB7MHhiNywweDAwLDB4MjMsMHg0MCwweDA4LDB4NzAsMHg0NiwweDQ0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWZhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg5MywweDAwLDB4MmMsMHg0MCwweDBiLDB4YjAsMHgwMiwweDBjLDB4ODIsMHg4MCwweGMwLDB4MjAgfX0sCi0gezE2LCAweDlmYjAsIDAsIHsweGMwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MWIsMHgzMCwweDAwLDB4Y2QsMHgwMSwweGIwIH19LAotIHsxNiwgMHg5ZmMwLCAwLCB7MHg0MCwweGFjLDB4NzgsMHg4OCwweDhjLDB4MDYsMHgwZCwweDYwLDB4YjMsMHg0YywweDI0LDB4MTIsMHgwOCwweDMwLDB4MGEsMHgxOCB9fSwKLSB7MTYsIDB4OWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhiYywweDAwLDB4YzcsMHgwMCwweDJlLDB4NDAgfX0sCi0gezE2LCAweDlmZTAsIDAsIHsweDBlLDB4ZjAsMHgyYSwweGJmLDB4MDAsMHhjOCwweGM4LDB4YmYsMHhjMCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDQsMHhiZiwweDAwIH19LAotIHsxNiwgMHg5ZmYwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhiMiwweDBhLDB4YWMsMHgwMCwweGY4LDB4ODAsMHgzNCwweDQ5LDB4MGMsMHhiOSwweDBiLDB4M2YsMHgwMCB9fSwKLSB7MTYsIDB4YTAwMCwgMCwgezB4ZmIsMHhjMCwweDMwLDB4ZjAsMHgwYywweGYwLDB4MDMsMHg2ZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwMTAsIDAsIHsweDgwLDB4MDAsMHhjYywweDAwLDB4ZmIsMHg4MCwweDNlLDB4NDEsMHgyYywweGIwLDB4MTMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhMDIwLCAwLCB7MHhjMSwweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwYiwweDZkLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4YTAzMCwgMCwgezB4MTAsMHgzYSwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZlLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTEgfX0sCi0gezE2LCAweGEwNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZWMsMHgwYywweGRmLDB4MDAsMHgzYiwweDgwIH19LAotIHsxNiwgMHhhMDUwLCAwLCB7MHgwZiwweGYwLDB4MGIsMHgzYywweDA4LDB4ZTcsMHgwOCwweDMzLDB4YzAsMHgwYiwweGQwLDB4MjMsMHg3NCwweDAwLDB4NTQsMHgwMCB9fSwKLSB7MTYsIDB4YTA2MCwgMCwgezB4MzMsMHhjMCwweDBmLDB4ZjAsMHg4MywweGJlLDB4MjAsMHhmZCwweDBjLDB4M2IsMHg2MCwweDJjLDB4ZTAsMHgwMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGEwNzAsIDAsIHsweGNmLDB4MTIsMHgzMywweDUwLDB4MGMsMHgzMCwweDAzLDB4ODAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwNCwweGFiLDB4MDAsMHgyMiwweGEwLDB4MGIsMHhiMCwweDA2LDB4MGMsMHgwMCwweGFiLDB4NDAsMHgzNiB9fSwKLSB7MTYsIDB4YTA5MCwgMCwgezB4YzAsMHgwYiwweGE4LDB4MDIsMHg2NiwweDAwLDB4YjgsMHgwMCwweDM2LDB4YzEsMHgwYiwweDM0LDB4NDMsMHhlZSwweDAwLDB4YjIgfX0sCi0gezE2LCAweGEwYTAsIDAsIHsweDAwLDB4MjIsMHg2MCwweDA4LDB4YjQsMHg4MiwweDhjLDB4MDQsMHg4YSwweDIxLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhMGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDAwLDB4MmEsMHgyMCB9fSwKLSB7MTYsIDB4YTBjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweDg4LDB4YzUsMHgyMiwweGMwLDB4MGIsMHg4OCwweDgyLDB4ZTYsMHgwMSwweGJiLDB4MDggfX0sCi0gezE2LCAweGEwZDAsIDAsIHsweDIyLDB4YzAsMHgwYSwweGIyLDB4ODIsMHhhYywweDYwLDB4YjgsMHgwMiwweDRhLDB4YzQsMHgwOCwweGIxLDB4MDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhhMGUwLCAwLCB7MHg4MywweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTBmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjAsMHgwMSwweDBiLDB4MzIsMHgwNiwweDJjLDB4MDAsMHhhMCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGExMDAsIDAsIHsweGMwLDB4MDksMHgwNCwweDIyLDB4YzQsMHgwMCwweGIyLDB4MDAsMHgyNCwweGMxLDB4OGIsMHhiMCwweDAyLDB4NGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHhhMTEwLCAwLCB7MHgwMCwweDYyLDB4YzAsMHg0OCwweDMwLDB4MDIsMHhhYywweDEwLDB4ODIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YTEyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDA4LDB4ZGYsMHgyYSwweDNhLDB4MDAgfX0sCi0gezE2LCAweGExMzAsIDAsIHsweDBmLDB4ZjUsMHgxMiwweDNjLDB4MTAsMHhjOSwweDAwLDB4YTMsMHhjMCwweDBmLDB4ODAsMHg1MywweGVjLDB4MDEsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhMTQwLCAwLCB7MHgzMywweGMwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwNCwweGY4LDB4NzAsMHgzYSwweGMwLDB4MGMsMHg2MCwweDQzLDB4MmMsMHg0MiB9fSwKLSB7MTYsIDB4YTE1MCwgMCwgezB4Y2QsMHgwMCwweGIyLDB4NDAsMHgyYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExNjAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmIsMHgwMSwweDNkLDB4MDAsMHgwZiwweGI0LDB4MTcsMHhmYywweDAwLDB4M2MsMHgwMCwweDNmIH19LAotIHsxNiwgMHhhMTcwLCAwLCB7MHhjMCwweDRmLDB4YzAsMHgwMywweDc0LDB4MDgsMHhmZSwweDAwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDgsMHhmOCB9fSwKLSB7MTYsIDB4YTE4MCwgMCwgezB4MzAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGExOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjQsMHg5MCwweGVmLDB4MDAsMHgzZiwweGQ4IH19LAotIHsxNiwgMHhhMWEwLCAwLCB7MHgwZSwweGYzLDB4MDMsMHgyYywweDAxLDB4ZDQsMHg4MCwweDM3LDB4Y2MsMHgwZCwweDg5LDB4NDMsMHgxMiwweDUwLDB4ZWMsMHgyYyB9fSwKLSB7MTYsIDB4YTFiMCwgMCwgezB4MzIsMHgwNSwweDBkLDB4YjAsMHg1MywweDNjLDB4ZDQsMHhjNSwweDk0LDB4N2YsMHhhMCwweDhmLDB4ZjAsMHg0MywweDMwLDB4MDAgfX0sCi0gezE2LCAweGExYzAsIDAsIHsweGRjLDB4MDAsMHgzMywweDAwLDB4MGMsMHg0OCwweDA3LDB4ZjAsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMWQwLCAwLCB7MHg4MCwweDEwLDB4ZTYsMHg0MCwweDhiLDB4NzAsMHgyZiwweGRjLDB4MDgsMHhmNywweDAyLDB4MGMsMHg4MCwweDhhLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4YTFlMCwgMCwgezB4YzgsMHg0YSwweDIyLDB4MDIsMHhhMCwweDAwLDB4OGEsMHg0OCwweDIyLDB4NTgsMHg4OCwweGZkLDB4MDIsMHhhZCwweDAyLDB4YTkgfX0sCi0gezE2LCAweGExZjAsIDAsIHsweDIwLDB4MWUsMHhhMCwweDAzLDB4ODAsMHgwMiwweDJjLDB4MDQsMHg4YiwweDAwLDB4MjIsMHhjMCwweDRjLDB4ODgsMHgwNywweDYwIH19LAotIHsxNiwgMHhhMjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4MDAsMHgyMywweDJjLDB4MmMsMHhjOSB9fSwKLSB7MTYsIDB4YTIxMCwgMCwgezB4MDIsMHgzMCwweDAyLDB4MGMsMHg2OCwweGEwLDB4MjgsMHgyYywweGQwLDB4MDksMHgxMiwweDAyLDB4ODQsMHgwMCwweGEwLDB4MjEgfX0sCi0gezE2LCAweGEyMjAsIDAsIHsweDIwLDB4MTgsMHgxOSwweDMwLDB4MjIsMHg4MCwweGQwLDB4ODMsMHgwNiwweDBjLDB4YTAsMHgwYiwweGIwLDB4MDYsMHgwMCwweDEyIH19LAotIHsxNiwgMHhhMjMwLCAwLCB7MHhhMCwweDAwLDB4MjAsMHgwMCwweDI5LDB4MDAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTI0MCwgMCwgezB4YzAsMHgxMSwweGE4LDB4MzAsMHg4YiwweDAwLDB4MmUsMHhjMCwweDRhLDB4MzAsMHgwYSwweDJjLDB4MTQsMHhhMCwweDgwLDB4MGEgfX0sCi0gezE2LCAweGEyNTAsIDAsIHsweGMxLDB4MDgsMHg4OCwweDg2LDB4ODcsMHgwMCwweDgzLDB4MDAsMHgyMiwweDQ5LDB4MDgsMHhiMCwweDA2LDB4YTAsMHg0MCwweGFiIH19LAotIHsxNiwgMHhhMjYwLCAwLCB7MHgyMCwweDIyLDB4MjAsMHgwYiwweDgwLDB4MGEsMHgwYywweDA0LDB4YWIsMHgwMiwweDIyLDB4YzAsMHg4OCwweDgwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YTI3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZiwweDQwLDB4ZWIsMHgwNiwweDNlLDB4YzAgfX0sCi0gezE2LCAweGEyODAsIDAsIHsweDBlLDB4YjAsMHgwMywweDJjLDB4MDIsMHhmOSwweGEwLDB4M2UsMHhjMCwweDBkLDB4OGMsMHgwMywweGFhLDB4MTAsMHhlOSwweDQwIH19LAotIHsxNiwgMHhhMjkwLCAwLCB7MHhiMiwweDQ4LDB4MGQsMHhiMCwweDQzLDB4YWQsMHgwMCwweGNiLDB4ODYsMHgyZSwweDIwLDB4MGYsMHgzMCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTJhMCwgMCwgezB4ZjksMHg4MCwweDMyLDB4YzAsMHgwZCwweDBjLDB4YzIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyYjAsIDAsIHsweGUwLDB4MDEsMHg5NCwweDAwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZCwweGYwLDB4MDMsMHg3YywweDAwLDB4ZGYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhhMmMwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGYwLDB4MDAsMHhmZSwweDIwLDB4M2YsMHg0MCwweDBmLDB4NzAsMHgwMywweGZlLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YTJkMCwgMCwgezB4ODIsMHg3ZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjksMHgwNCwweGRlLDB4MjAsMHhiZCwweDAwLDB4MGYsMHhkOSwweDBiLDB4N2MgfX0sCi0gezE2LCAweGEyZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGNiLDB4MDAsMHgzZSwweGMwIH19LAotIHsxNiwgMHhhMmYwLCAwLCB7MHgyYywweGIwLDB4MGIsMHgyYywweDAwLDB4ZTgsMHg0MCwweDNlLDB4YzAsMHgwZiwweDk0LDB4MDcsMHgyOSwweDAwLDB4YzksMHg0MCB9fSwKLSB7MTYsIDB4YTMwMCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjAsMHgwMywweDAxLDB4MDIsMHhjYiwweDAwLDB4MzIsMHgwNCwweDRmLDB4ZjAsMHg0MywweDM0LDB4YzAgfX0sCi0gezE2LCAweGEzMTAsIDAsIHsweGI1LDB4MWEsMHgzZiwweGMxLDB4MGYsMHg4MCwweDkzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMzIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMCwweDhmLDB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwNCwweGQ4LDB4MDAsMHgyYiB9fSwKLSB7MTYsIDB4YTMzMCwgMCwgezB4YzAsMHgwYywweDgwLDB4NDUsMHg2MCwweDAwLDB4N2IsMHg1OCwweDIyLDB4YzgsMHgwYiwweGZhLDB4MDEsMHg2MSwweDQwLDB4OGIgfX0sCi0gezE2LCAweGEzNDAsIDAsIHsweDAwLDB4MzIsMHgwNCwweDRiLDB4Y2UsMHgwMiwweDI4LDB4MDAsMHgzYSwweDQwLDB4MmUsMHgwNywweDBiLDB4OTAsMHgwMiwweDI2IH19LAotIHsxNiwgMHhhMzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4NGMsMHhjMCB9fSwKLSB7MTYsIDB4YTM2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ZWMsMHgxMCwweDkwLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4MCwweDA2LDB4YzAsMHgwNCwweDgzLDB4MDQgfX0sCi0gezE2LCAweGEzNzAsIDAsIHsweGEyLDB4ODksMHgxOSwweDMwLDB4MDYsMHhjYywweDAwLDB4ODMsMHgwMCwweDIwLDB4OTAsMHgwYiwweDMwLDB4YzIsMHg0OCwweDAwIH19LAotIHsxNiwgMHhhMzgwLCAwLCB7MHhiMiwweDQwLDB4MjQsMHgyMCwweDBiLDB4MDksMHgwMCwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTM5MCwgMCwgezB4MjAsMHgwMSwweDA2LDB4MDQsMHg4NywweGE0LDB4MmQsMHhlMCwweDA5LDB4MzgsMHgwMiwweGRlLDB4MDAsMHg5ZSwweDgxLDB4MjkgfX0sCi0gezE2LCAweGEzYTAsIDAsIHsweGUwLDB4MDgsMHg3OCwweDUyLDB4ZmEsMHhjMCwweDk2LDB4ODAsMHgwMSwweGEwLDB4OGIsMHgzYSwweDIyLDB4Y2UsMHg0MCwweDhmIH19LAotIHsxNiwgMHhhM2IwLCAwLCB7MHhiMCwweDI1LDB4YTAsMHgwYiwweDA4LDB4MDIsMHg1NiwweDA4LDB4YjUsMHg5MCwweDJkLDB4ZTQsMHg0YiwweGQ4LDB4MjIsMHgwYyB9fSwKLSB7MTYsIDB4YTNjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAyLDB4ODMsMHg4MCwweDJlLDB4ZTggfX0sCi0gezE2LCAweGEzZDAsIDAsIHsweDBiLDB4MzgsMHgxMywweGNlLDB4NDEsMHhkMywweDEwLDB4MjgsMHhjMCwweDBlLDB4M2EsMHgwMiwweGM2LDB4MDgsMHg0YiwweDQwIH19LAotIHsxNiwgMHhhM2UwLCAwLCB7MHgzMCwweDYwLDB4MGQsMHgzYiwweDI3LDB4Y2YsMHhjNCwweGMzLDB4YTAsMHgzMCwweDAwLDB4MGYsMHgzMCwweDQzLDB4NDgsMHg0MCB9fSwKLSB7MTYsIDB4YTNmMCwgMCwgezB4ZjIsMHgwMCwweDNjLDB4MDQsMHgwZiwweDAyLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0MDAsIDAsIHsweDQwLDB4MWQsMHhiOCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzQsMHgwZSwweGYxLDB4MDMsMHgzYywweDAwLDB4ZmYsMHgwMSwweDMzIH19LAotIHsxNiwgMHhhNDEwLCAwLCB7MHhjMCwweDRkLDB4YjEsMHgwNywweDdjLDB4OTAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDAzLDB4ZjEsMHgwMywweDcwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTQyMCwgMCwgezB4MTAsMHgzYiwweDAwLDB4MGYsMHhjMCwweDBiLDB4YjQsMHgwMCwweGZkLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhkMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweGE0MzAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwNCwweGZiLDB4ODQsMHgzYSwweGMyIH19LAotIHsxNiwgMHhhNDQwLCAwLCB7MHg0YywweGI0LDB4OTMsMHgyYywweDA0LDB4ZTksMHgwMCwweDNhLDB4YzQsMHg4ZCwweDA4LDB4MDMsMHgyZSwweDAwLDB4Y2IsMHgwMSB9fSwKLSB7MTYsIDB4YTQ1MCwgMCwgezB4MzIsMHg4MCwweDhmLDB4YjIsMHg4MywweGVjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHgwMCwweDBmLDB4ZjksMHgwMywweDNjLDB4MTAgfX0sCi0gezE2LCAweGE0NjAsIDAsIHsweGRmLDB4ODEsMHhiMywweGUwLDB4OGMsMHhhMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNDcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwOCwweGI3LDB4MDQsMHgyNCwweGM4LDB4MWEsMHgzMCwweDRhLDB4MWQsMHgwMCwweGI3LDB4MDEsMHgyZCB9fSwKLSB7MTYsIDB4YTQ4MCwgMCwgezB4YzAsMHg4OCwweDcwLDB4MDYsMHgxYywweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHg0YiwweDc2LDB4MTIsMHhkYywweDAwLDB4ODcgfX0sCi0gezE2LCAweGE0OTAsIDAsIHsweDAwLDB4MjksMHg0MCwweDhiLDB4NDAsMHgwMiwweDEwLDB4MDAsMHhiYywweDAwLDB4MjAsMHgwMSwweDI4LDB4NzAsMHgwMywweGIyIH19LAotIHsxNiwgMHhhNGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MDAsMHhiMywweDkwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4YTRiMCwgMCwgezB4MDksMHg3OSwweDAyLDB4MWUsMHg4MCwweGE3LDB4ODAsMHgyYywweGU4LDB4MTksMHhmOCwweDEyLDB4NWUsMHgwMSwweDg3LDB4ODAgfX0sCi0gezE2LCAweGE0YzAsIDAsIHsweDI1LDB4ZTAsMHg0YiwweDc4LDB4MDYsMHhkMiwweDAwLDB4OTcsMHg4MCwweDIxLDB4NjIsMHgwYiwweDNhLDB4MDIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhhNGQwLCAwLCB7MHhiNywweDg2LDB4MjksMHhmMCwweDA4LDB4NjgsMHgwNiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTRlMCwgMCwgezB4NDgsMHgxNCwweGNmLDB4YzAsMHhiMywweDAwLDB4MjQsMHhjMCwweDhhLDB4MzAsMHgzMiwweDBjLDB4MDAsMHhiMywweDA4LDB4MmMgfX0sCi0gezE2LCAweGE0ZjAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDEyLDB4MGUsMHgyMCwweDgzLDB4MDAsMHgyNCwweGYxLDB4MGIsMHgzMCwweDA2LDB4Y2UsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhNTAwLCAwLCB7MHg5MCwweDI4LDB4NjAsMHgwYiwweDAwLDB4MmEsMHgyMSwweDgwLDB4YjAsMHgwOCwweDI4LDB4MDAsMHgwOCwweDM3LDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YTUxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGE1MjAsIDAsIHsweDRkLDB4YTAsMHgwMywweDI4LDB4MDAsMHhlZSwweDQxLDB4M2UsMHg4MCwweDBkLDB4ZTAsMHgwMywweDc4LDB4MDAsMHg4ZSwweDQwIH19LAotIHsxNiwgMHhhNTMwLCAwLCB7MHgyNywweGE4LDB4MGIsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGNhLDB4ODIsMHgzMywweGEwLDB4MGYsMHhhMCwweDEzLDB4MjksMHgwMCB9fSwKLSB7MTYsIDB4YTU0MCwgMCwgezB4ZmEsMHg0MCwweDNhLDB4ODAsMHgwYywweDZjLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1NTAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDA4LDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNTYwLCAwLCB7MHgwMCwweDhmLDB4ODAsMHgyMywweGEwLDB4NDIsMHhmOCwweDA5LDB4YmEsMHgxMCwweDRmLDB4ODAsMHgwMywweGUwLDB4NjAsMHhmOCB9fSwKLSB7MTYsIDB4YTU3MCwgMCwgezB4MDAsMHgzZSwweDIwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgyNywweDAwLDB4OGYsMHg4MCwweDAzLDB4OTIgfX0sCi0gezE2LCAweGE1ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTUsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhhNTkwLCAwLCB7MHg2ZSwweDkwLDB4MDMsMHhhNCwweDA4LDB4YzksMHgwMCwweDNjLDB4NDAsMHgwZCwweDkwLDB4MDMsMHgyNCwweDEwLDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4YTVhMCwgMCwgezB4MzIsMHg0MiwweDBjLDB4OTAsMHgxMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAgfX0sCi0gezE2LCAweGE1YjAsIDAsIHsweGM5LDB4MjAsMHgzZSwweDUyLDB4Y2YsMHg5MCwweDA5LDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNWMwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHgwMCwweDg5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzYSB9fSwKLSB7MTYsIDB4YTVkMCwgMCwgezB4NDEsMHgwOCwweDkwLDB4MDUsMHhhNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NDAsMHgwZCwweDkwLDB4MDIsMHhlNSwweDQ2LDB4ODkgfX0sCi0gezE2LCAweGE1ZTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU1LDB4MDAsMHhhOSwweGM4LDB4MmUsMHg2MSwweDhiLDB4OTQsMHg0MiwweDIwIH19LAotIHsxNiwgMHhhNWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhhOSwweDAwLDB4NmMsMHg0MCB9fSwKLSB7MTYsIDB4YTYwMCwgMCwgezB4NDgsMHgxMCwweDIyLDB4ODQsMHgwMywweGE5LDB4MDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwNCwweGIxLDB4MDggfX0sCi0gezE2LCAweGE2MTAsIDAsIHsweDI4LDB4NDAsMHgxOCwweDk4LDB4MDIsMHhlNSwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhmNCwweDIwIH19LAotIHsxNiwgMHhhNjIwLCAwLCB7MHg4ZCwweDAwLDB4MmYsMHg0MCwweDBiLDB4OTQsMHg0MiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTYzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMSwweDI0LDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHhhMSwweDAwLDB4MjggfX0sCi0gezE2LCAweGE2NDAsIDAsIHsweDQ4LDB4MDgsMHgxMCwweDAyLDB4ODQsMHgwMCwweDkxLDB4MjAsMHgyMCwweDQ4LDB4MDksMHgxMiwweDAyLDB4YzQsMHg5NCwweDgxIH19LAotIHsxNiwgMHhhNjUwLCAwLCB7MHgwMCwweDJjLDB4NjEsMHgwYiwweDVhLDB4ODIsMHhkNCwweGEwLDB4YTUsMHgyOCwweDJkLDB4NGEsMHgwYiwweDkwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4YTY2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAyLDB4ZTgsMHg1MCwweDJlLDB4MTQgfX0sCi0gezE2LCAweGE2NzAsIDAsIHsweDBlLDB4ODUsMHgwMywweGExLDB4NDAsMHhhOCwweDUwLDB4M2UsMHgxNCwweDBkLDB4ODUsMHgwMSwweDgxLDB4NDAsMHhmOCwweDUyIH19LAotIHsxNiwgMHhhNjgwLCAwLCB7MHgzMiwweDk0LDB4MGMsMHg4MCwweDEzLDB4YzEsMHg0MiwweGMwLDB4NTEsMHgzZSwweDAwLDB4OGYsMHg4MiwweDAzLDB4ZTAsMHg4MCB9fSwKLSB7MTYsIDB4YTY5MCwgMCwgezB4YzgsMHgyMCwweDNmLDB4MDgsMHgwZiwweDgwLDB4MDMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2YTAsIDAsIHsweDk4LDB4MTksMHhmNCwweDUwLDB4ZDksMHgxMSwweDNlLDB4NDQsMHg4ZiwweDkxLDB4NDMsMHhlNCwweDQwLDB4ZGQsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhNmIwLCAwLCB7MHg0NCwweDRmLDB4ZDAsMHgyNywweGI0LDB4MDAsMHhmZCwweDEyLDB4M2YsMHg0NCwweDRmLDB4OTEsMHg0MywweGY0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4YTZjMCwgMCwgezB4MDAsMHgzZiwweDQxLDB4MGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHhkMCwweDAzLDB4NjYgfX0sCi0gezE2LCAweGE2ZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4ZjYsMHg4MCwweGU5LDB4YzAsMHgzZSwweDc4IH19LAotIHsxNiwgMHhhNmUwLCAwLCB7MHg4ZiwweDliLDB4MDMsMHhhNywweDgwLDB4YzksMHg0MCwweDM2LDB4NzgsMHgwZiwweDEwLDB4MjMsMHhlNSwweDA0LDB4ZGQsMHhhNCB9fSwKLSB7MTYsIDB4YTZmMCwgMCwgezB4MzMsMHg2MiwweDBmLDB4ZGEsMHgwMywweGY2LDB4NjAsMHhjOSwweDEwLDB4MzMsMHg0MCwweDBlLDB4OTgsMHg5MywweGU2LDB4MzAgfX0sCi0gezE2LCAweGE3MDAsIDAsIHsweGM5LDB4YzksMHgzMiwweDc4LDB4OGMsMHhkMCwweDBiLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweDg4LDB4ZTIsMHgyZSwweDMwLDB4MGIsMHg4OCwweDQyLDB4MjMsMHg0MCwweGEwLDB4YTEsMHgyMiB9fSwKLSB7MTYsIDB4YTcyMCwgMCwgezB4MzgsMHgwYiwweDhhLDB4MDIsMHhlMiwweDgwLDB4YWEsMHhlMCwweDIyLDB4MzAsMHgwYiwweDgwLDB4MjMsMHhhYiwweDAyLDB4ODggfX0sCi0gezE2LCAweGE3MzAsIDAsIHsweGEwLDB4MmEsMHgwMCwweDBiLDB4OGMsMHgwMiwweGUzLDB4MDAsMHg4OCwweGUwLDB4MjMsMHgzOCwweDA4LDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhhNzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhhMSwweDQ0LDB4MjgsMHg1OCB9fSwKLSB7MTYsIDB4YTc1MCwgMCwgezB4NDMsMHgxNiwweDIyLDB4ODQsMHg4MSwweDgxLDB4MjAsMHgyYywweDU4LDB4NDksMHgxMCwweDgwLDB4YzQsMHg4MSwweDkxLDB4NDggfX0sCi0gezE2LCAweGE3NjAsIDAsIHsweDZjLDB4NGEsMHgwYiwweDE0LDB4MDIsMHg0NCwweDg0LDB4ODEsMHgwMSwweDYwLDB4NDAsMHgwYSwweDUyLDB4ODYsMHhkNCwweGEwIH19LAotIHsxNiwgMHhhNzcwLCAwLCB7MHg4NSwweDAwLDB4YTEsMHg1MCwweDY4LDB4OTAsMHgwNiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTc4MCwgMCwgezB4MTgsMHgwNSwweGE2LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhhOSwweDYwLDB4MjIgfX0sCi0gezE2LCAweGE3OTAsIDAsIHsweDQwLDB4MGIsMHg5NSwweDAyLDB4ZTQsMHgxMCwweGIxLDB4MDAsMHg0ZSwweDQwLDB4MGIsMHg5MCwweDY2LDB4YWMsMHg4MCwweDg5IH19LAotIHsxNiwgMHhhN2EwLCAwLCB7MHgwMCwweDJhLDB4NjAsMHgwYiwweDkwLDB4NTIsMHhmNCwweDAwLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YTdiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDIwLDB4ZTksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGE3YzAsIDAsIHsweDBmLDB4OTAsMHgwMywweGE0LDB4MTAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4OTQsMHgwMSwweGU1LDB4MjAsMHhkOSwweDQwIH19LAotIHsxNiwgMHhhN2QwLCAwLCB7MHhiYSwweDY4LDB4OGYsMHg5MCwweDA3LDB4ZTYsMHgwMCwweGM5LDB4MTAsMHgzMiwweDYyLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgxOCB9fSwKLSB7MTYsIDB4YTdlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3ZjAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwNCwweDNlLDB4NDAsMHgwYiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhODAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4NzIsMHg2OCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTgxMCwgMCwgezB4MDEsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMiwweGY5LDB4MDQsMHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4MWEgfX0sCi0gezE2LCAweGE4MjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4ODAsMHgwMiwweGM4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhhODMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZDgsMHg1MCB9fSwKLSB7MTYsIDB4YTg0MCwgMCwgezB4YjIsMHgxMCwweDhjLDB4ODEsMHgwMywweGMxLDB4MjAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgxMywweGYwLDB4MDQgfX0sCi0gezE2LCAweGE4NTAsIDAsIHsweDRjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhODYwLCAwLCB7MHgyOCwweDE1LDB4MmEsMHgwMCwweDhhLDB4MDQsMHgyMiwweDgxLDB4MjgsMHhhMCwweDEyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgzNiB9fSwKLSB7MTYsIDB4YTg3MCwgMCwgezB4ODAsMHgwYiwweGEwLDB4MTAsMHgyOCwweDEwLDB4Y2UsMHgwMSwweDIzLDB4ODEsMHgwYywweGE4LDB4MTIsMHhmYiwweDAwLDB4OGEgfX0sCi0gezE2LCAweGE4ODAsIDAsIHsweDAxLDB4M2IsMHg4MCwweDgzLDB4YTAsMHg0MiwweGU4LDB4MTAsMHg4YSwweDAwLDB4MmYsMHg4MCwweDBiLDB4NjAsMHg0MiwweDBhIH19LAotIHsxNiwgMHhhODkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCB9fSwKLSB7MTYsIDB4YThhMCwgMCwgezB4MTgsMHhiMCwweDAwLDB4Y2MsMHgwMCwweDliLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMCwweDA2LDB4NmMsMHgwMCwweGEzLDB4MDggfX0sCi0gezE2LCAweGE4YjAsIDAsIHsweDI4LDB4YzgsMHgwOSwweDMwLDB4MDIsMHhjYywweDQzLDB4OGIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAyIH19LAotIHsxNiwgMHhhOGMwLCAwLCB7MHg4MywweDAxLDB4MmMsMHhjMCwweDRiLDB4MzAsMHgwMCwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YThkMCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MjQsMHg4NywweDk0LDB4MjEsMHhlNCwweDE4LDB4MzEsMHgwMiwweGRjLDB4ODAsMHg5NywweDEwLDB4MjUgfX0sCi0gezE2LCAweGE4ZTAsIDAsIHsweGNkLDB4MGIsMHhmMiwweDAyLDB4N2MsMHgwMCwweGEwLDB4MDAsMHgyOCwweGUwLDB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3IH19LAotIHsxNiwgMHhhOGYwLCAwLCB7MHgzNCwweDI5LDB4NDAsMHgwOSwweDQwLDB4MDIsMHhkMCwweDA0LDB4ODQsMHgwNCwweDJkLDB4MDAsMHg0YiwweGQwLDB4MjIsMHg2OCB9fSwKLSB7MTYsIDB4YTkwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4Y2YsMHhhMCwweDcwLDB4ZTkgfX0sCi0gezE2LCAweGE5MTAsIDAsIHsweDE4LDB4N2IsMHgwMywweGZmLDB4NDAsMHg5NywweGEwLDB4MzUsMHhlOCwweDBmLDB4NzQsMHgwMiwweDVlLDB4MjAsMHhlNCwweDgwIH19LAotIHsxNiwgMHhhOTIwLCAwLCB7MHgzOSwweGEwLDB4MmQsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4NWYsMHg2OCwweDQzLDB4YzIsMHgwMCB9fSwKLSB7MTYsIDB4YTkzMCwgMCwgezB4YzQsMHg4NCwweDFkLDB4NjAsMHgwZiwweDc4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5NDAsIDAsIHsweDA4LDB4MGQsMHhhNCwweDAwLDB4M2IsMHgwMCwweDJlLDB4ZDgsMHgwZiwweGI0LDB4MDMsMHgyZCwweDhhLDB4ZWIsMHg2MiwweDNhIH19LAotIHsxNiwgMHhhOTUwLCAwLCB7MHhkMCwweDBmLDB4YjIsMHg4NywweDBjLDB4ZDAsMHhkOCwweDAwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHg0MywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTk2MCwgMCwgezB4MDgsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZiwweDgwLDB4MGYsMHgwMCwweDJiLDB4ODIgfX0sCi0gezE2LCAweGE5NzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGZmLDB4YTAsMHgzZSwweGY0IH19LAotIHsxNiwgMHhhOTgwLCAwLCB7MHgwZSwweGI4LDB4MDMsMHhlZSwweDA4LDB4NGIsMHhmMCwweDdmLDB4ZjQsMHgwYywweGY5LDB4MjMsMHhlZSwweDQ4LDB4NzgsMHg5MCB9fSwKLSB7MTYsIDB4YTk5MCwgMCwgezB4MzIsMHhlNCwweDBjLDB4ZjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlNCwweDFjLDB4NzksMHgwMywweDJlLDB4NDAgfX0sCi0gezE2LCAweGE5YTAsIDAsIHsweGZmLDB4ODAsMHgzMywweGUwLDB4MmMsMHg3OCwweDA3LDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOWIwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMCwweGIzLDB4MDAsMHgwYywweGU1LDB4MGIsMHgzOCwweDAyLDB4ZmUsMHg4MCwweDhmLDB4ODAsMHg2MSB9fSwKLSB7MTYsIDB4YTljMCwgMCwgezB4YzQsMHgyOCwweDc4LDB4MDAsMHg0ZSwweDAwLDB4ZjQsMHg4NCwweDI1LDB4YTgsMHgwYywweDcwLDB4MDIsMHhjYywweDA0LDB4YjMgfX0sCi0gezE2LCAweGE5ZDAsIDAsIHsweDkwLDB4MjUsMHg0MCwweDBjLDB4NDEsMHg4MywweDUyLDB4NDAsMHhiNCwweDEwLDB4YTMsMHgwMCwweDBjLDB4NTIsMHgwMywweDZhIH19LAotIHsxNiwgMHhhOWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4MDAsMHhiNywweDIxLDB4NmQsMHhjOCB9fSwKLSB7MTYsIDB4YTlmMCwgMCwgezB4NGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweGE3LDB4MzEsMHgyOSwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MjggfX0sCi0gezE2LCAweGFhMDAsIDAsIHsweDI0LDB4ODAsMHgwOCwweDcwLDB4MDYsMHhkNCwweDIwLDB4YjcsMHgwMSwweDJkLDB4YzEsMHgwOCwweDYwLDB4MDIsMHg1MCwweDgwIH19LAotIHsxNiwgMHhhYTEwLCAwLCB7MHhiNCwweDA4LDB4MjEsMHg2MiwweDA5LDB4NzQsMHgwNiwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWEyMCwgMCwgezB4MjAsMHgxNCwweGM3LDB4MDQsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAyLDB4NjAgfX0sCi0gezE2LCAweGFhMzAsIDAsIHsweGMwLDB4MDgsMHgzOCwweDAyLDB4NGUsMHg0NCwweGEwLDB4YzAsMHgyNCwweDkxLDB4MDgsMHgzMCwweDAyLDB4YzAsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhYTQwLCAwLCB7MHgwMCwweDI0LDB4NjAsMHgwOCwweDFjLDB4MDIsMHg0YywweDg4LDB4YjMsMHhjMCwweDIwLDB4YTAsMHgwOCwweDAwLDB4MGEsMHg4OCB9fSwKLSB7MTYsIDB4YWE1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGFhNjAsIDAsIHsweDRmLDB4ZjAsMHgxMywweGZjLDB4MDgsMHhlNywweDhhLDB4M2YsMHhjMCwweDBjLDB4ZjUsMHhjMiwweGZlLDB4MTAsMHhiYiwweGMwIH19LAotIHsxNiwgMHhhYTcwLCAwLCB7MHgzMiwweGQ0LDB4MGMsMHgzMCwweDEzLDB4ZTMsMHgwNCwweGJmLDB4MDAsMHgyZSwweDYyLDB4MDgsMHhiOSwweDAyLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4YWE4MCwgMCwgezB4ZmIsMHgwMSwweDMyLDB4YTQsMHg0ZCwweDk0LDB4MDIsMHhhYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFhOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDYwLDB4ZmIsMHgwMCwweDFlLDB4YzAsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4NWIsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhYWEwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHg0MSwweGVjLDB4MDAsMHg3YiwweDQ1LDB4YmEsMHg0MCwweDJlLDB4YjAsMHgxNSwweGUwLDB4MDEsMHhmYiB9fSwKLSB7MTYsIDB4YWFiMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGUsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZjLDB4MjAsMHgzZiwweDUwLDB4OGYsMHg5MCwweDAxLDB4NjAgfX0sCi0gezE2LCAweGFhYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhhYWQwLCAwLCB7MHg4ZiwweGYwLDB4MDMsMHgxYywweDAyLDB4Y2YsMHgwMCwweDM2LDB4YzAsMHgwZCwweGYwLDB4MDMsMHg3YywweDAwLDB4N2YsMHgyYSB9fSwKLSB7MTYsIDB4YWFlMCwgMCwgezB4M2YsMHg4MCwweDBmLDB4ZjgsMHgxMywweDkwLDB4MjEsMHhjZiwweDAwLDB4M2YsMHg2MiwweDBjLDB4ZTAsMHgwMywweDMwLDB4MDAgfX0sCi0gezE2LCAweGFhZjAsIDAsIHsweGY4LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjAwLCAwLCB7MHg4MSwweDA0LDB4NjQsMHgxMSwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGRiLDB4MDQsMHgzMiB9fSwKLSB7MTYsIDB4YWIxMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHg4NCwweDJlLDB4NDAsMHgwYiwweGI5LDB4NDIsMHgyMiwweDQyLDB4OGIgfX0sCi0gezE2LCAweGFiMjAsIDAsIHsweDAxLDB4MmMsMHg3MiwweDBhLDB4OTAsMHg0MiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMiwweDhmLDB4ODgsMHgwNiwweGUwIH19LAotIHsxNiwgMHhhYjMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDI0LDB4MDAsMHhiYiwweDAwLDB4NmUsMHhjMCB9fSwKLSB7MTYsIDB4YWI0MCwgMCwgezB4NDgsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MGEsMHhiMCwweDEyLDB4ZWMsMHgwMCwweGJiLDB4NDAgfX0sCi0gezE2LCAweGFiNTAsIDAsIHsweDJlLDB4YzgsMHgwYiwweGIwLDB4MTIsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4NDgsMHgwYSwweDMwLDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhhYjYwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHg4MCwweDRiLDB4OTgsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWI3MCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMywweDAwLDB4NmMsMHhjMiwweDRiLDB4MzEsMHgwMiwweDBjLDB4NTAsMHg5YiwweDIwLDB4MjAgfX0sCi0gezE2LCAweGFiODAsIDAsIHsweGMwLDB4MGEsMHgzMiwweDEyLDB4Y2MsMHg4MCwweGIzLDB4MDAsMHg2YywweDBjLDB4MGIsMHgzMSwweDAyLDB4MGMsMHg0MiwweDgzIH19LAotIHsxNiwgMHhhYjkwLCAwLCB7MHgwOCwweDJlLDB4NDAsMHgwYSwweDAwLDB4MDIsMHgwMCwweDgwLDB4YjAsMHgwMCwweDJjLDB4NDEsMHgwYiwweDEwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YWJhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4YmIsMHg0MCwweDNmLDB4Y2MgfX0sCi0gezE2LCAweGFiYjAsIDAsIHsweDBlLDB4ZjAsMHg4MywweDNkLDB4YTAsMHhjZiwweDIwLDB4MzcsMHhjMCwweDBjLDB4ZjcsMHhjMywweGZkLDB4NDgsMHhmMywweDAwIH19LAotIHsxNiwgMHhhYmMwLCAwLCB7MHgzZSwweDg4LDB4MGYsMHhiNCwweDEzLDB4YTUsMHgwMCwweDhmLDB4MzAsMHgzZSwweDQwLDB4MGMsMHhhMCwweDAzLDB4NjAsMHg4MCB9fSwKLSB7MTYsIDB4YWJkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiZTAsIDAsIHsweGEwLDB4MTksMHhmNCwweDAwLDB4ZmYsMHgyOSwweDNmLDB4YzksMHgwZiwweGYwLDB4MTMsMHhmYywweDk0LDB4ZWYsMHgxMiwweDNiIH19LAotIHsxNiwgMHhhYmYwLCAwLCB7MHhjMCwweDhlLDB4YjIsMHgwNywweGZkLDB4MDQsMHhmZiwweDEwLDB4M2YsMHgwYywweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YWMwMCwgMCwgezB4MjAsMHgzZCwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZmMsMHg0MCwweGZmLDB4MDQsMHgzZiwweGMwLDB4MGUsMHhjMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweGFjMTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhhMiwweGM3LDB4MjAsMHgzZiwweDI0IH19LAotIHsxNiwgMHhhYzIwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzYywweDgwLDB4Y2MsMHgwOSwweDMzLDB4ZDEsMHgwYywweGYxLDB4MjMsMHhmYywweDIwLDB4ZGYsMHgzNiB9fSwKLSB7MTYsIDB4YWMzMCwgMCwgezB4M2YsMHhjMCwweDBlLDB4NDgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4MzcsMHhlNCwweDBkLDB4NzgsMHgwMywweDExLDB4YTAgfX0sCi0gezE2LCAweGFjNDAsIDAsIHsweGNmLDB4MDAsMHgzNywweGM4LDB4MGMsMHhmMCwweDAzLDB4MzAsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzUwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHgwMCwweDhmLDB4ZDEsMHgyZSwweDA4LDB4MGQsMHhiNiwweDEyLDB4M2QsMHg0NSwweGY5LDB4NjQsMHgyNyB9fSwKLSB7MTYsIDB4YWM2MCwgMCwgezB4ZDAsMHg4OCwweGJhLDB4MTQsMHhjYywweDA0LDB4OGYsMHg0MCwweDIzLDB4ZjAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4YmIgfX0sCi0gezE2LCAweGFjNzAsIDAsIHsweDgwLDB4YWUsMHhjMCwweDA4LDB4YjgsMHgwYSwweDIxLDB4MDAsMHg4OCwweGQwLDB4MjIsMHgyMCwweDI4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhYzgwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDAwLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4YWM5MCwgMCwgezB4MGEsMHgzNCwweDgyLDB4OGMsMHhhMCwweGEwLDB4MDgsMHgyNCwweGQ4LDB4MDksMHgzMSwweDAyLDB4Y2MsMHgyMCwweGIzLDB4MzIgfX0sCi0gezE2LCAweGFjYTAsIDAsIHsweDI4LDB4ZDAsMHg0YSwweDgwLDB4MDIsMHhjYywweDBjLDB4YmIsMHgwMCwweDIyLDB4NDAsMHg4OSwweGIwLDB4MDIsMHg2MCwweDgwIH19LAotIHsxNiwgMHhhY2IwLCAwLCB7MHg5MywweDAwLDB4MjQsMHhkMCwweDBiLDB4MzAsMHgwMiwweGEyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWNjMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHg5YiwweDAwLDB4MmUsMHgyMCwweDA5LDB4YjAsMHg0YSwweDJjLDB4MDIsMHhhMCwweDAwLDB4MDYgfX0sCi0gezE2LCAweGFjZDAsIDAsIHsweGMwLDB4MDksMHhiMCwweDAwLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGIsMHg4OCwweDAyLDB4NmMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhY2UwLCAwLCB7MHgyMCwweDJhLDB4ZTIsMHg0MSwweGI4LDB4MmEsMHg2MCwweDBhLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiOCB9fSwKLSB7MTYsIDB4YWNmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDA4LDB4ZGIsMHgwMiwweDNlLDB4MjAgfX0sCi0gezE2LCAweGFkMDAsIDAsIHsweDRjLDB4YjAsMHgwMywweDJjLDB4MDIsMHg4YiwweDIwLDB4MTIsMHhjMCwweDI5LDB4YjAsMHgxMiwweGVjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhhZDEwLCAwLCB7MHgzYSwweGMwLDB4MGUsMHg4OCwweDAzLDB4ZWQsMHgyMCwweGZiLDB4YzgsMHgzNCwweGYwLDB4MGQsMHhiYSwweDAzLDB4NDcsMHg2MCB9fSwKLSB7MTYsIDB4YWQyMCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkMzAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4ZWYsMHgwMCwweDBmLDB4MDAsMHgwZiwweDMwLDB4MDAsMHhmYywweDAwLDB4ZGYsMHg5MCwweGJiIH19LAotIHsxNiwgMHhhZDQwLCAwLCB7MHhjMCwweGNlLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhjYiwweDAwLDB4MTcsMHhjMCwweDBmLDB4YzAsMHgwMywweGJjLDB4ODQsMHhmZiB9fSwKLSB7MTYsIDB4YWQ1MCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGUsMHhkMCwweDYzLDB4YjgsMHgwMCwweGVhLDB4MDAsMHgzYSwweDgwLDB4MGMsMHgzMCwweDAzLDB4NzAgfX0sCi0gezE2LCAweGFkNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDIsMHgzMiwweDAwIH19LAotIHsxNiwgMHhhZDcwLCAwLCB7MHgwZiwweGIwLDB4NTMsMHgyYywweDAwLDB4ZmEsMHgwMCwweDMyLDB4YzAsMHg4ZiwweGIwLDB4MDcsMHgyYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4YWQ4MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4ODAsMHgwNywweGFjLDB4ODAsMHhkYiwweDI0LDB4N2UsMHhkMCwweDBlLDB4YjAsMHgyMywweDc0LDB4MDQgfX0sCi0gezE2LCAweGFkOTAsIDAsIHsweGRkLDB4MDgsMHhiNSwweDQwLDB4MGMsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGJmLDB4YzAsMHhhMCwweDAwLDB4MWIsMHhmMCwweDAyLDB4M2YsMHg2MCwweGVhLDB4NTAsMHgyMyB9fSwKLSB7MTYsIDB4YWRiMCwgMCwgezB4YzAsMHgwOCwweGZhLDB4MDcsMHhmYywweDAwLDB4ZGYsMHgwMCwweDYzLDB4YzAsMHg0OCwweDE4LDB4MDIsMHgyZCwweDAwLDB4YjMgfX0sCi0gezE2LCAweGFkYzAsIDAsIHsweDAwLDB4NmUsMHhjMCwweDBkLDB4M2EsMHgwMywweDI0LDB4MDAsMHg4MiwweDgwLDB4MzIsMHg4MCwweDBkLDB4ZjAsMHgwMywweDMyIH19LAotIHsxNiwgMHhhZGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTQsMHhiMywweDU5LDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4YWRlMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmUsMHgwNSwweGIwLDB4NDQsMHgyZSwweGMwLDB4MDksMHgzNCwweDgyLDB4ZWMsMHgwMCwweGFiLDB4MDQgfX0sCi0gezE2LCAweGFkZjAsIDAsIHsweDIwLDB4YzAsMHgwOSwweDIxLDB4YjIsMHg4ZSwweDA0LDB4OTMsMHhjMCwweDI0LDB4YzAsMHgwYSwweDE4LDB4MDYsMHg0YywweDAwIH19LAotIHsxNiwgMHhhZTAwLCAwLCB7MHg5MiwweDUwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWUxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4NjEsMHhlMCwweDBiLDB4NzgsMHgwYSwweDVlLDB4MDEsMHhiMSwweGEwLDB4MmQgfX0sCi0gezE2LCAweGFlMjAsIDAsIHsweGUwLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweDA3LDB4OTAsMHgyMSwweGUwLDB4MTgsMHhjOCwweDAyLDB4MWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhhZTMwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4YSwweGQ4LDB4MDIsMHgzZSwweGMwLDB4ODUsMHg4MCwweDIxLDB4MjAsMHgxOSwweDc4LDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4YWU0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHg5NCwweDIwLDB4MTAgfX0sCi0gezE2LCAweGFlNTAsIDAsIHsweDRiLDB4MzAsMHgwNywweDBjLDB4MDAsMHhmMywweDAwLDB4M2UsMHhjOCwweDBmLDB4MzAsMHgwMywweGNjLDB4MDAsMHgyMywweDEwIH19LAotIHsxNiwgMHhhZTYwLCAwLCB7MHgwMCwweGNiLDB4MDUsMHgyMCwweDAyLDB4OGMsMHg2MCwweDkzLDB4MGEsMHgyZSwweGM0LDB4MGEsMHgwMSwweDA3LDB4NGMsMHg4MCB9fSwKLSB7MTYsIDB4YWU3MCwgMCwgezB4ZDIsMHgwMSwweDMwLDB4YzAsMHgyYywweDMwLDB4MGIsMHg1YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMSwweDBmLDB4NDAsMHgwZiwweGYwLDB4MTMsMHhiYywweDAwLDB4ZWYsMHgyNiwweDczIH19LAotIHsxNiwgMHhhZTkwLCAwLCB7MHhjMiwweDBjLDB4YjAsMHg4MywweGJjLDB4NDAsMHhmZiwweDE4LDB4M2QsMHhjMCwweDRhLDB4YzEsMHgwMywweGZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YWVhMCwgMCwgezB4MTIsMHgzZiwweGM0LDB4NGQsMHhjMSwweDBiLDB4ZmMsMHg4MSwweGZkLDB4MDAsMHgzZiwweDIwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGFlYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgyMCwweGNiLDB4NDgsMHgzZSwweDAwIH19LAotIHsxNiwgMHhhZWMwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgyZCwweDIwLDB4ZTksMHg4MCwweGZhLDB4YzgsMHgwZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4ZGIsMHgyNCB9fSwKLSB7MTYsIDB4YWVkMCwgMCwgezB4NzYsMHhmMywweDhlLDB4ODAsMHgzMywweGVjLDB4NDQsMHhlYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfX0sCi0gezE2LCAweGFlZTAsIDAsIHsweGRjLDB4MDAsMHhiMywweDYxLDB4MGMsMHhiMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZWYwLCAwLCB7MHg0OCwweDExLDB4OGQsMHgwMCwweDg3LDB4MjAsMHgyZiwweDAxLDB4MjgsMHg3MCwweDAyLDB4MGMsMHg4NCwweDhkLDB4MDQsMHgzMSB9fSwKLSB7MTYsIDB4YWYwMCwgMCwgezB4Y2MsMHhjOSwweDcyLDB4MDIsMHhkZCwweDAwLDB4MzcsMHgzMywweDIxLDB4ZDgsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfX0sCi0gezE2LCAweGFmMTAsIDAsIHsweDIwLDB4M2QsMHhjMCwweDA5LDB4NTAsMHgyMiwweGYwLDB4MDAsMHg5NywweDAwLDB4MjEsMHg4MCwweDBhLDB4ZmMsMHgwMiwweDkyIH19LAotIHsxNiwgMHhhZjIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDFlLDB4ODIsMHg4NywweGIwLDB4MmQsMHgyMCB9fSwKLSB7MTYsIDB4YWYzMCwgMCwgezB4MDgsMHgzOSwweDAyLDB4MWUsMHg0MSwweGE3LDB4ODAsMHgyNCwweGUwLDB4MDksMHg3YSwweDMyLDB4OGUsMHg4MiwweDA3LDB4YTAgfX0sCi0gezE2LCAweGFmNDAsIDAsIHsweDI1LDB4ZTAsMHg4YiwweDQ4LDB4MDIsMHgxZSwweDAwLDB4YTcsMHhlMSwweDJkLDB4ZTAsMHg0YiwweDU4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhZjUwLCAwLCB7MHhhMCwweDgwLDB4MjQsMHg2MCwweDA4LDB4N2EsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWY2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDAwLDB4MmMsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwLDB4MjIgfX0sCi0gezE2LCAweGFmNzAsIDAsIHsweGMxLDB4MDksMHgzMCwweDQyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgxYSwweDAyLDB4Y2UsMHgwNCwweGIzIH19LAotIHsxNiwgMHhhZjgwLCAwLCB7MHhlMCwweDI4LDB4YTAsMHgwOSwweDFjLDB4ODIsMHg0YiwweDA4LDB4YTMsMHg4MCwweDI0LDB4YTAsMHgyYSwweDMwLDB4MDIsMHg5YSB9fSwKLSB7MTYsIDB4YWY5MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDJmLDB4ODggfX0sCi0gezE2LCAweGFmYTAsIDAsIHsweDBjLDB4YTAsMHgxMywweDI4LDB4MDAsMHhlZSwweDAwLDB4MmUsMHg4MCwweDJkLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhZmIwLCAwLCB7MHg3NiwweDgwLDB4MGUsMHhlOCwweDAzLDB4YmIsMHg4MCwweGVlLDB4NDAsMHgyZiwweGEyLDB4OGYsMHhlNiwweDAzLDB4ZWIsMHg4NiB9fSwKLSB7MTYsIDB4YWZjMCwgMCwgezB4ZmEsMHg4MCwweDM3LDB4ODIsMHgwYywweDIwLDB4MDcsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDFlLDB4MDAsMHgwZiwweDgwLDB4MGIsMHg2MSwweDAwLDB4ZTgsMHhjMCwweDNhIH19LAotIHsxNiwgMHhhZmUwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDEsMHhmOCwweDAwLDB4N2UsMHgxMCwweDFlLDB4ODEsMHgwMywweGUwLDB4MDgsMHhmOCB9fSwKLSB7MTYsIDB4YWZmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4YzAsMHgyOCwweGRjLDB4NTAsMHgzYiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGIwMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQyIH19LAotIHsxNiwgMHhiMDEwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNiwweDAwLDB4YzksMHgwMSwweDNhLDB4NDAsMHgwZSwweDk0LDB4MDEsMHhlNCwweDEwLDB4ZjEsMHgwNCB9fSwKLSB7MTYsIDB4YjAyMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OWEsMHgyMywweDIwLDB4NjAsMHhmOCwweDA0LDB4MGEsMHg0MiwweDBlLDB4OTAsMHgxMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGIwMzAsIDAsIHsweGMxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMDQwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHgwOCwweGE5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjcsMHg4MiwweDg5LDB4MDAsMHgyNiB9fSwKLSB7MTYsIDB4YjA1MCwgMCwgezB4NDAsMHgwOCwweDljLDB4MDMsMHhhNCwweDEwLDB4YjksMHgwMCwweDM2LDB4NDAsMHg5YiwweDFjLDB4MWEsMHgyMywweDA0LDB4YjggfX0sCi0gezE2LCAweGIwNjAsIDAsIHsweDAwLDB4M2EsMHg0MCwweDBlLDB4MTAsMHgwMiwweDI0LDB4MDIsMHhjOSwweGEwLDB4YTIsMHg0MCwweDBiLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiMDcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4ODAsMHg4OSwweDA0LDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4YjA4MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODQsMHg4MSwweDk5LDB4NDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDA2LDB4ZTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweGIwOTAsIDAsIHsweGE2LDB4NDEsMHgxYiwweDkwLDB4ODIsMHgyMSwweDAwLDB4YjgsMHgxMCwweDJlLDB4NDAsMHgwYSwweDkyLDB4MGEsMHhhNCwweDAxIH19LAotIHsxNiwgMHhiMGEwLCAwLCB7MHg4ZiwweDIyLDB4MjMsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjBiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMywweDIwLDB4MmMsMHg0MSwweDA5LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjQgfX0sCi0gezE2LCAweGIwYzAsIDAsIHsweDQ4LDB4MGEsMHgzNiwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHgwNCwweGM4LDB4NGIsMHgxNCwweDAyLDB4MDUsMHgwMCwweGIxIH19LAotIHsxNiwgMHhiMGQwLCAwLCB7MHgwNSwweDI4LDB4NTAsMHgwYSwweDkwLDB4MDIsMHgwNSwweDAyLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YjBlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDZlLDB4MTQgfX0sCi0gezE2LCAweGIwZjAsIDAsIHsweDJjLDB4ODUsMHgwMiwweGExLDB4NDAsMHhjOCwweDUwLDB4M2EsMHgxNCwweDBlLDB4ODAsMHgwMiwweGUxLDB4NDAsMHhiMCwweDUwIH19LAotIHsxNiwgMHhiMTAwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHg4MCwweDAzLDB4MjAsMHgwMCwweGZhLDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4YTAsMHgwMiB9fSwKLSB7MTYsIDB4YjExMCwgMCwgezB4YzgsMHgwMCwweDEzLDB4MDAsMHgwZiwweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQ4LDB4ZjksMHgxNCwweDNmLDB4NDAsMHgwYywweDkxLDB4MDMsMHhlNCwweDQyLDB4ZmQsMHgxMCwweDM2IH19LAotIHsxNiwgMHhiMTMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgyMywweGE0LDB4NDgsMHhmOSwweDExLDB4MzgsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU1LDB4MTQsMHgzOSB9fSwKLSB7MTYsIDB4YjE0MCwgMCwgezB4NDIsMHg3YiwweDQwLDB4OGUsMHhkMCwweDAxLDB4ZjUsMHgwMCwweGE5LDB4NDAsMHgzZSwweDUwLDB4MDcsMHg5NiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGIxNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZjYsMHg4MCwweGRkLDB4YWUsMHgzYSwweDUwIH19LAotIHsxNiwgMHhiMTYwLCAwLCB7MHgwZCwweDlhLDB4MGIsMHg3NiwweDgwLDB4Y2YsMHg4OCwweDMyLDB4NzAsMHgyZCwweGRhLDB4MDMsMHhhNywweDAxLDB4ZTksMHg5MiB9fSwKLSB7MTYsIDB4YjE3MCwgMCwgezB4MzcsMHg2OCwweDBkLDB4OTQsMHgwMywweGU3LDB4MDAsMHhlZCwweGEwLDB4M2EsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU3LDB4MDIgfX0sCi0gezE2LCAweGIxODAsIDAsIHsweGNkLDB4ODAsMHgzMywweDY4LDB4MGMsMHhkOCwweDgzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMTkwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyMCwweDIwLDB4MGMsMHg4YywweDAyLDB4MjMsMHgwMCwweDg4LDB4ZTAsMHgyMiB9fSwKLSB7MTYsIDB4YjFhMCwgMCwgezB4MzAsMHgwOCwweDg0LDB4MDIsMHhlMywweDAwLDB4YjgsMHhlMCwweDIyLDB4MTQsMHg4ZCwweDg4LDB4MDIsMHhlMywweDAwLDB4YjggfX0sCi0gezE2LCAweGIxYjAsIDAsIHsweDUwLDB4MmUsMHhhOCwweDhiLDB4ODAsMHgyMiwweGUzLDB4NDgsMHg4OCwweDUwLDB4MjIsMHgwMCwweDA4LDB4OGMsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiMWMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDAwLDB4MmEsMHg0OCB9fSwKLSB7MTYsIDB4YjFkMCwgMCwgezB4MDksMHgxNCwweDgyLDB4MDUsMHgyMCwweDgxLDB4MDgsMHgyMCwweDU4LDB4MDksMHgxMSwweDAyLDB4ODUsMHg4OCwweGIxLDB4NDAgfX0sCi0gezE2LCAweGIxZTAsIDAsIHsweGEwLDB4NDAsMHgwOCwweDEyLDB4MDIsMHhjNSwweDgwLDB4YTEsMHgwMCwweDI4LDB4NDAsMHgwYiwweDE4LDB4MDIsMHhjNCwweDg0IH19LAotIHsxNiwgMHhiMWYwLCAwLCB7MHhhMSwweDAwLDB4MjQsMHg1MCwweDA4LDB4MTAsMHg5MiwweDAzLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjIwMCwgMCwgezB4MTgsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDYsMHg4OSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGIyMTAsIDAsIHsweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDIsMHgyMiwweDQxLDB4ODksMHhhMCwweDgyLDB4ZTAsMHhhMCwweGI5IH19LAotIHsxNiwgMHhiMjIwLCAwLCB7MHgyOCwweDJlLDB4NDQsMHgwYiwweGIwLDB4MDIsMHhlNCwweDAyLDB4YjksMHgwMCwweDI2LDB4NDAsMHgyOCwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4YjIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM4LDB4NDAgfX0sCi0gezE2LCAweGIyNDAsIDAsIHsweDBkLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweGEwLDB4YTIsMHg0MCwweDhkLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhiMjUwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg4NCwweDEzLDB4ZTIsMHgwMCwweGU5LDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5YywweDAyLDB4ZTYsMHg4NCB9fSwKLSB7MTYsIDB4YjI2MCwgMCwgezB4ZTksMHgwMCwweGI2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZTEsMHgwMCwweDNlLDB4NjgsMHgwZSwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZjEsMHgyOCwweDNhIH19LAotIHsxNiwgMHhiMjgwLCAwLCB7MHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MiwweDBmLDB4ODAsMHgyMywweGUyLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjI5MCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MSwweDIzLDB4ZTQsMHg0MCwweGMxLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDBiLDB4Y2EgfX0sCi0gezE2LCAweGIyYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiMmIwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhhMCwweDIwLDB4YzgsMHg0MCwweDNlLDB4MDAsMHgwZSwweDgxLDB4NjMsMHg2MCwweDAwLDB4ZjAsMHgwNCB9fSwKLSB7MTYsIDB4YjJjMCwgMCwgezB4M2MsMHgwMSwweDBjLDB4ODQsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGMxLDB4MDAgfX0sCi0gezE2LCAweGIyZDAsIDAsIHsweGQ4LDB4MTAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDIzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMmUwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHg2MCwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGEsMHhhMCwweDAyLDB4MzgsMHg4MCwweGJlLDB4MDAsMHgzYSB9fSwKLSB7MTYsIDB4YjJmMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4OTgsMHgxOCwweGVjLDB4MDIsMHhmOCwweDIwLDB4YWUgfX0sCi0gezE2LCAweGIzMDAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDBiLDB4ZTQsMHg4MiwweGU4LDB4MDIsMHhjZSwweDQ0LDB4MjgsMHg4MCwweDBkLDB4YTAsMHgwYSwweDBhIH19LAotIHsxNiwgMHhiMzEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQwLDB4MDAsMHg4MiwweDA0LDB4YTAsMHhjMCB9fSwKLSB7MTYsIDB4YjMyMCwgMCwgezB4MDksMHgzMCwweDAyLDB4OGUsMHgwNCwweDgzLDB4NTAsMHg2YywweGMwLDB4MGEsMHgzMCwweDg2LDB4MGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGIzMzAsIDAsIHsweDI4LDB4MzAsMHgwYSwweDM2LDB4MTIsMHhjYywweDgwLDB4ODEsMHgwMCwweDI0LDB4YzAsMHgwYiwweDMyLDB4MDYsMHhjYywweDAwIH19LAotIHsxNiwgMHhiMzQwLCAwLCB7MHg4MCwweDg4LDB4NjQsMHg2MCwweDI4LDB4MTAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjM1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MTIsMHg4NCwweDQwLDB4MjEsMHhjOCwweDBhLDB4NzIsMHgwMiwweDEwLDB4MDAsMHhiNywweDAwLDB4MmQgfX0sCi0gezE2LCAweGIzNjAsIDAsIHsweGNjLDB4MDgsMHgzOCwweDEyLDB4MWMsMHgwMCwweGIzLDB4MzAsMHgyMCwweDAwLDB4MDgsMHg3MSwweDgyLDB4ZmUsMHgwMCwweGE0IH19LAotIHsxNiwgMHhiMzcwLCAwLCB7MHg4MCwweDIxLDB4YzgsMHgwYiwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcsMHgwMCwweDJjLDB4NDIsMHgwOSwweDUxLDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4YjM4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4YzIsMHg4MCwweDMxLDB4ZjggfX0sCi0gezE2LCAweGIzOTAsIDAsIHsweDRjLDB4ZmMsMHgxMywweDkyLDB4MDksMHhjNywweDgwLDB4M2MsMHhlZCwweDFlLDB4NzgsMHgyNywweDFlLDB4MDAsMHhmNywweDhjIH19LAotIHsxNiwgMHhiM2EwLCAwLCB7MHg3OSwweDIwLDB4MDgsMHg3YSwweDAzLDB4ZGUsMHg4MSwweDg0LDB4ODAsMHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZmUsMHgyMCB9fSwKLSB7MTYsIDB4YjNiMCwgMCwgezB4YzUsMHg4MSwweDM1LDB4NjAsMHgyYywweDU4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzYzAsIDAsIHsweDA4LDB4MWQsMHg4MCwweDAwLDB4ZjgsMHgwNCwweDNlLDB4ZDAsMHgwZiwweGIwLDB4MTMsMHhlMCwweDAwLDB4ZmIsMHgwMiwweDNhIH19LAotIHsxNiwgMHhiM2QwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwYiwweGFjLDB4NDAsMHhmYiwweDAwLDB4M2EsMHgwMCwweDJmLDB4YjAsMHgwMywweGNjLDB4MDAsMHhmMCB9fSwKLSB7MTYsIDB4YjNlMCwgMCwgezB4MDAsMHgzYSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZmMsMHg0MSwweGYzLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg1MCwweDkzLDB4YzIgfX0sCi0gezE2LCAweGIzZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNjLDB4ODEsMHgzZiwweGZjIH19LAotIHsxNiwgMHhiNDAwLCAwLCB7MHgxYywweGY4LDB4MDMsMHg3NiwweDQwLDB4ZWYsMHg5MiwweDNmLDB4ZTQsMHg4YywweGY4LDB4MDMsMHhiZiwweDEwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4YjQxMCwgMCwgezB4YjMsMHgyMCwweDBlLDB4ZjksMHgxMywweGZlLDB4MjQsMHhmZCwweDk0LDB4MzcsMHhlMCwweDFjLDB4ZjksMHgwMywweGVlLDB4MDAgfX0sCi0gezE2LCAweGI0MjAsIDAsIHsweGNkLDB4ODAsMHhiMywweGUwLDB4MGMsMHg1OCwweDAyLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNDMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHg0MCwweDgwLDB4MDAsMHgyZiwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGQsMHgwOCwweGQ3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YjQ0MCwgMCwgezB4Y2MsMHgwOCwweGRlLDB4MDMsMHg1YywweDAwLDB4YjcsMHgwNCwweDIxLDB4ODAsMHhjOCwweDcwLDB4ODMsMHhkYywweDAwLDB4YjQgfX0sCi0gezE2LCAweGI0NTAsIDAsIHsweGEwLDB4MmYsMHhjMCwweDBjLDB4NzAsMHgwMiwweGRlLDB4ODAsMHg4NywweDAwLDB4MjEsMHhjMiwweDBhLDB4NTEsMHg0MiwweDJhIH19LAotIHsxNiwgMHhiNDYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4NCwweDAwLDB4MmQsMHhjOCB9fSwKLSB7MTYsIDB4YjQ3MCwgMCwgezB4NDgsMHg3MCwweDAyLDB4NTQsMHgwYywweGE3LDB4MDAsMHgyYywweGMwLDB4ODksMHg3MiwweDAyLDB4NWMsMHgwMCwweGIzLDB4MTAgfX0sCi0gezE2LCAweGI0ODAsIDAsIHsweDIwLDB4MDAsMHgwYSwweDcwLDB4MDYsMHhkYywweDAwLDB4YjQsMHgyMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwIH19LAotIHsxNiwgMHhiNDkwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4NTAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjRhMCwgMCwgezB4MjAsMHgxNCwweGMwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHhjMCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDgsMHhhMiwweDQyLDB4MmMgfX0sCi0gezE2LCAweGI0YjAsIDAsIHsweGMxLDB4MDksMHgyMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgzYywweDIyLDB4OGMsMHgyMCwweGIwIH19LAotIHsxNiwgMHhiNGMwLCAwLCB7MHgwOCwweDJlLDB4ZTAsMHgwOCwweDM4LDB4MTAsMHhjZiwweDBhLDB4OTMsMHg0MCwweGEwLDB4ZjAsMHgwYSwweDEwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YjRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhOCwweDAwLDB4YzEsMHgwMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweGI0ZTAsIDAsIHsweDJjLDB4ZjAsMHgwMywweDY4LDB4MDAsMHhhYSwweDAwLDB4M2YsMHhjMCwweDJkLDB4ODAsMHgwMywweDdjLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhiNGYwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHhiMCwweDEyLDB4ZWQsMHgyNCwweGZhLDB4MDgsMHgyNywweGM4LDB4MTAsMHhiOCwweGEyLDB4ZmYsMHg2MCB9fSwKLSB7MTYsIDB4YjUwMCwgMCwgezB4OTgsMHhhMCwweGEyLDB4ZTAsMHgwYywweDUwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1MTAsIDAsIHsweDgwLDB4MDAsMHhjOSwweDA2LDB4ZjgsMHg0MSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlOSwweDEwLDB4NWEsMHgyMCwweDNlIH19LAotIHsxNiwgMHhiNTIwLCAwLCB7MHhjMCwweDBlLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmMywweDAwLDB4N2UsMHgwMSwweDBmLDB4YjAsMHg5MywweGVkLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YjUzMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGUzLDB4MDgsMHgzYywweGMyLDB4MGYsMHhkMCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweGI1NDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjMsMHgwMiwweGNjLDB4MDAsMHgzYiwweGMyIH19LAotIHsxNiwgMHhiNTUwLCAwLCB7MHgwYywweGYwLDB4MjMsMHhhZSwweDQwLDB4ZGYsMHg4MSwweDM5LDB4YzAsMHgwNiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCB9fSwKLSB7MTYsIDB4YjU2MCwgMCwgezB4MzEsMHg0MSwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjYywweGEwLDB4MzcsMHhjMiwweDBjLDB4ZjAsMHgwMywweDdjLDB4MDQgfX0sCi0gezE2LCAweGI1NzAsIDAsIHsweGNkLDB4MDAsMHgzMywweGYwLDB4MGMsMHhkMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNTgwLCAwLCB7MHg4MSwweDA0LDB4NjAsMHgwMCwweDg4LDB4ODAsMHgyMiwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTksMHgwMCwweGFiLDB4NDQsMHgyZSB9fSwKLSB7MTYsIDB4YjU5MCwgMCwgezB4YzAsMHgwOCwweDg4LDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NzAsMHgwYSwweGI0LDB4MDIsMHhjYywweDAwLDB4YTAgfX0sCi0gezE2LCAweGI1YTAsIDAsIHsweDIwLDB4MjIsMHhjMCwweDBmLDB4YmMsMHgwMiwweGNjLDB4MGEsMHg4YiwweDgwLDB4YTIsMHhjMCwweDBkLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiNWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIwLDB4MDAsMHg4OSwweDgwLDB4MmEsMHhjMCB9fSwKLSB7MTYsIDB4YjVjMCwgMCwgezB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwNiwweDg4LDB4NjAsMHgyZSwweGMwLDB4MGEsMHg5OCwweDA2LDB4ZWMsMHgwMSwweGJiLDB4MDAgfX0sCi0gezE2LCAweGI1ZDAsIDAsIHsweDIyLDB4MzEsMHgwMiwweGIyLDB4MDIsMHhlYywweGEwLDB4OGEsMHgwMCwweDI2LDB4YzAsMHg0OCwweGE4LDB4MDIsMHhlYywweDA0IH19LAotIHsxNiwgMHhiNWUwLCAwLCB7MHhhOSwweDgwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjVmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MCwweDAxLDB4MmMgfX0sCi0gezE2LCAweGI2MDAsIDAsIHsweGMwLDB4MWEsMHgxMiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweDAwLDB4NGEsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEwIH19LAotIHsxNiwgMHhiNjEwLCAwLCB7MHgwMCwweDA4LDB4YzAsMHgwYiwweDIwLDB4MDYsMHhlYywweGEwLDB4YTMsMHgwMCwweGEwLDB4NDAsMHgyOSwweDEwLDB4MDAsMHgwMiB9fSwKLSB7MTYsIDB4YjYyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4YzgsMHg1MCwweDNiLDB4YzAgfX0sCi0gezE2LCAweGI2MzAsIDAsIHsweDBjLDB4YjAsMHgwMywweGFjLDB4MDAsMHhjOSwweDAwLDB4M2IsMHhjMCwweDBlLDB4OTIsMHg4MywweGZjLDB4MDAsMHhiZiwweDAwIH19LAotIHsxNiwgMHhiNjQwLCAwLCB7MHgxMiwweDAwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweDg4LDB4MjYsMHgxNiwweGMwLDB4MGMsMHg4MCwweDE3LDB4NWMsMHg4MCB9fSwKLSB7MTYsIDB4YjY1MCwgMCwgezB4ZTksMHgwMSwweDMyLDB4NDAsMHgyYywweGQwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2NjAsIDAsIHsweGEwLDB4MWQsMHhkMCwweDAwLDB4ZmMsMHgyMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiNjcwLCAwLCB7MHhjMCwweDBkLDB4ODAsMHgwMywweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4YjY4MCwgMCwgezB4NDAsMHgzNywweGMwLDB4MGUsMHhlMCwweDIxLDB4ZmMsMHgwOCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGI2OTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhjMCwweGZmLDB4MjEsMHg3MSwweDI0IH19LAotIHsxNiwgMHhiNmEwLCAwLCB7MHgwZiwweGYxLDB4ODMsMHhmMiwweDQwLDB4ZmYsMHgwMCwweDM3LDB4YzQsMHg5ZiwweGYyLDB4NDcsMHgzZCwweDA0LDB4YzcsMHgyMCB9fSwKLSB7MTYsIDB4YjZiMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4NzgsMHgyMywweGZlLDB4NDAsMHhlOCwweDEwLDB4MjcsMHhjNCwweDBmLDB4ZjIsMHgxMywweDNjLDB4ODQgfX0sCi0gezE2LCAweGI2YzAsIDAsIHsweGM0LDB4ODEsMHgzMywweDIwLDB4NGMsMHhmMCwweDIzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNmQwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg0MCwweGJmLDB4NTQsMHg2MiwweGM4LDB4MGIsMHhmNiwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ZDAsMHgyMiB9fSwKLSB7MTYsIDB4YjZlMCwgMCwgezB4ZjAsMHgxZiwweGY5LDB4MTIsMHgzZCwweDgwLDB4OWYsMHg4MSwweDJiLDB4ZTAsMHgwYSwweGI4LDB4MTIsMHhlOCwweDAwLDB4OGYgfX0sCi0gezE2LCAweGI2ZjAsIDAsIHsweDA0LDB4MjIsMHhkMCwweDA4LDB4YjMsMHg4YSwweGJmLDB4NDIsMHg4YiwweDgyLDB4MjIsMHhlMCwweDI4LDB4OGMsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiNzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDI4LDB4MjgsMHgwOCB9fSwKLSB7MTYsIDB4YjcxMCwgMCwgezB4MGIsMHgzMCwweDA2LDB4ODAsMHg4MCwweGIzLDB4MDIsMHgyNCwweGQxLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweDkzLDB4MTAgfX0sCi0gezE2LCAweGI3MjAsIDAsIHsweDIwLDB4Y2UsMHg4YiwweDMwLDB4MDIsMHhjYywweDg0LDB4YTEsMHgyMSwweDJjLDB4Y2MsMHgwYSwweDMwLDB4MGEsMHg0YywweDAwIH19LAotIHsxNiwgMHhiNzMwLCAwLCB7MHg5MywweDAwLDB4MjgsMHhjMCwweDA4LDB4M2MsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjc0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHhiYiwweDAyLDB4NmEsMHhlMCwweDBiLDB4YjAsMHgwMiwweGUxLDB4MDgsMHhiYiwweDA0LDB4MmEgfX0sCi0gezE2LCAweGI3NTAsIDAsIHsweGMwLDB4MGEsMHhiMCwweDEyLDB4OGMsMHgwMCwweDliLDB4MDAsMHgyYSwweGMwLDB4MGIsMHhiMSwweDA2LDB4YzgsMHg4MCwweDhiIH19LAotIHsxNiwgMHhiNzYwLCAwLCB7MHg4MiwweDZhLDB4YzEsMHgwYSwweDMwLDB4MDIsMHhhYywweDE4LDB4ODgsMHgxMCwweDJhLDB4NDgsMHgwOCwweDgwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4Yjc3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwMCwweGFhLDB4MzAgfX0sCi0gezE2LCAweGI3ODAsIDAsIHsweDBmLDB4YjAsMHgwMywweGE4LDB4MDAsMHhmMywweDAxLDB4YjYsMHhjMSwweDBiLDB4YjAsMHgwMiwweGFjLDB4MDgsMHg0YiwweDAwIH19LAotIHsxNiwgMHhiNzkwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHhiOCwweDAyLDB4ZWMsMHgxMCwweGE5LDB4ODEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YjdhMCwgMCwgezB4Y2IsMHhhMCwweDE4LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3YjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDA4LDB4ZjcsMHgwMCwweDM3LDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmZCwweDAwLDB4ZmYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhiN2MwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgwNywweDdjLDB4MDAsMHhlNywweDAwLDB4M2UsMHhjMCwweDBhLDB4ZjAsMHgwMywweGZlLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4YjdkMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4ODAsMHgzNywweGUwLDB4MGYsMHhhMCwweDAzLDB4YjggfX0sCi0gezE2LCAweGI3ZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGRiLDB4MDAsMHgzNiwweDAwIH19LAotIHsxNiwgMHhiN2YwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHg2OSwweDAwLDB4ZGIsMHgwOSwweDNhLDB4YzAsMHgxZiwweDMwLDB4MjMsMHhlYywweDA4LDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4YjgwMCwgMCwgezB4MzQsMHhjMCwweDJmLDB4YjAsMHgwMywweGVjLDB4NDAsMHhlYiwweDQ4LDB4M2UsMHhjNCwweDRkLDB4YjAsMHg4YiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGI4MTAsIDAsIHsweGNiLDB4MDAsMHgzMiwweDkwLDB4MGYsMHgzMCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiODIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMiwweDAwLDB4NDgsMHhmMCwweDIyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4YjgzMCwgMCwgezB4ZTAsMHg4YiwweGY1LDB4MTAsMHgzYywweDAwLDB4OGYsMHg4MCwweDIzLDB4ZjAsMHg4MCwweDk4LDB4MDMsMHgyZCwweDQ0LDB4ZGIgfX0sCi0gezE2LCAweGI4NDAsIDAsIHsweDAwLDB4MjMsMHhkNCwweDA4LDB4ZjgsMHgwMiwweDNjLDB4MDAsMHg4MywweDAwLDB4MjIsMHhjMCwweDBiLDB4YTQsMHg4MiwweDMyIH19LAotIHsxNiwgMHhiODUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4Yjg2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ODQsMHgwMCwweGIzLDB4MDEsMHgyOCwweGY2LDB4MDksMHgzNCwweDMyLDB4OGMsMHgwMSwweGIzLDB4ZDAgfX0sCi0gezE2LCAweGI4NzAsIDAsIHsweDI0LDB4ZTgsMHgwYSwweDMxLDB4MGEsMHg4NiwweDAwLDB4ODMsMHgwMCwweDJhLDB4ZTAsMHgwMCwweDMwLDB4MDIsMHg4YywweDAwIH19LAotIHsxNiwgMHhiODgwLCAwLCB7MHg4MywweDAwLDB4MjgsMHhjMCwweDg5LDB4MzgsMHhhMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjg5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg5NywweDk0LDB4MjMsMHhlMCwweDA5LDB4MzgsMHgwMiwweDMyLDB4MDAsMHg5NywweGExLDB4MjEgfX0sCi0gezE2LCAweGI4YTAsIDAsIHsweGU0LDB4MGIsMHg3OCwweDAyLDB4MWUsMHg0MCwweGI3LDB4YTAsMHgyNSwweGVjLDB4MDgsMHhmYywweDAyLDB4M2EsMHgwMCwweDkzIH19LAotIHsxNiwgMHhiOGIwLCAwLCB7MHhiOCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4ODIsMHg5ZSwweDQwLDB4ODcsMHhjMCwweDI5LDB4YTAsMHgwYiwweDU4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YjhjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDAwLDB4ZGIsMHgwMCwweDM0LDB4MjAgfX0sCi0gezE2LCAweGI4ZDAsIDAsIHsweDBmLDB4M2EsMHgwMywweDhlLDB4MDAsMHhmMywweGIwLDB4MjgsMHhjNCwweDBiLDB4M2EsMHgwMywweGFlLDB4NDAsMHhmMywweGEwIH19LAotIHsxNiwgMHhiOGUwLCAwLCB7MHgzNCwweGVlLDB4MGYsMHgzMCwweDIzLDB4ODQsMHgwMCwweGUzLDB4ZjAsMHgzOCwweGMwLDB4MGMsMHhiMCwweDBiLDB4OGUsMHg0MiB9fSwKLSB7MTYsIDB4YjhmMCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4NjMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5MDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZWIsMHg0MiwweDNhLDB4YzQsMHgxZSwweGIxLDB4MDcsMHg4OCwweGQxLDB4ZTMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiOTEwLCAwLCB7MHhjNSwweDhmLDB4ZjEsMHg2MywweGFjLDB4MTAsMHhjYiwweDUwLDB4M2IsMHhjMywweDBmLDB4ZDEsMHgwMywweGM4LDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4YjkyMCwgMCwgezB4MjAsMHgzYiwweGMwLDB4MmUsMHhmMSwweDAzLDB4MWMsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4NGYsMHhkMSwweDAzLDB4OTAgfX0sCi0gezE2LCAweGI5MzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGZiLDB4NDQsMHhiMiwweGMwIH19LAotIHsxNiwgMHhiOTQwLCAwLCB7MHg0ZiwweGIzLDB4NDMsMHgyNCwweDAwLDB4ZGIsMHgxMCwweDM2LDB4YzAsMHg0YywweGJlLDB4MjIsMHg2ZCwweDIwLDB4Y2IsMHg1MCB9fSwKLSB7MTYsIDB4Yjk1MCwgMCwgezB4M2UsMHhjOSwweDRjLDB4YjAsMHgxMywweDI0LDB4MDAsMHhjZiwweDIwLDB4MzMsMHhjMCwweDNkLDB4ZjAsMHgyMywweDJjLDB4YzAgfX0sCi0gezE2LCAweGI5NjAsIDAsIHsweGQ4LDB4MDAsMHgzZSwweDQwLDB4OGYsMHgzMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwNCwweGI3LDB4NjAsMHgyMSwweGMxLDB4OGIsMHhmMCwweGEyLDB4MTQsMHgxMCwweDg3LDB4MDAsMHgwZiB9fSwKLSB7MTYsIDB4Yjk4MCwgMCwgezB4YzgsMHgwZCwweDcxLDB4MGEsMHgxZCwweDAwLDB4ODcsMHgwMCwweDJjLDB4Y2MsMHg0OCwweDcwLDB4MmEsMHg5YywweDAwLDB4ODcgfX0sCi0gezE2LCAweGI5OTAsIDAsIHsweDBjLDB4MjEsMHhjMCwweDBjLDB4NzIsMHgwMiwweDBjLDB4YTIsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhiOWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiMywweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4YjliMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODEsMHgwNSwweGU0LDB4MDgsMHg3OSwweDAyLDB4NWMsMHg4MCwweDg3LDB4YTAgfX0sCi0gezE2LCAweGI5YzAsIDAsIHsweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDYsMHhiNiwweDAwLDB4ODcsMHg4MCwweDIwLDB4ZTQsMHgwYSwweDdiLDB4MTIsMHgxZSwweDkwIH19LAotIHsxNiwgMHhiOWQwLCAwLCB7MHg5NywweDg4LDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwZSwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjllMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkMCwweDBiLDB4YjAsMHgwMiwweDZlLDB4MzQsMHhhMywweDAwLDB4MmMgfX0sCi0gezE2LCAweGI5ZjAsIDAsIHsweGMxLDB4MDksMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4NDgsMHgxMCwweDAyLDB4OGQsMHg4MCwweDgzIH19LAotIHsxNiwgMHhiYTAwLCAwLCB7MHhjMCwweDAwLDB4YzAsMHg4YSwweDMwLDB4MTIsMHgwYywweDAwLDB4ODAsMHgwMCwweDJjLDB4MTYsMHgwYiwweDM4LDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4YmExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMzLDB4ODggfX0sCi0gezE2LCAweGJhMjAsIDAsIHsweDBmLDB4YTAsMHgwMywweDc5LDB4OTAsMHhmYSwweDAxLDB4MzYsMHg4MCwweDFjLDB4YTAsMHgwMywweDY4LDB4MDAsMHhjYSwweDAwIH19LAotIHsxNiwgMHhiYTMwLCAwLCB7MHgzZSwweDgxLDB4MmMsMHhhMCwweDBiLDB4YjksMHgwYywweGNlLDB4ZTIsMHhiMiwweDgwLDB4OGUsMHhhMCwweDBiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4YmE0MCwgMCwgezB4ZGEsMHg4MCwweDNjLDB4YjAsMHgwZiwweGUwLDB4ODMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhhMCwweDAwLDB4YzgsMHgwMCwweDJlIH19LAotIHsxNiwgMHhiYTYwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgyMywweGEwLDB4MDAsMHhmMCwweDQwLDB4M2UsMHgxMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YmE3MCwgMCwgezB4NDgsMHgzZSwweDEwLDB4MGMsMHg4MCwweDAzLDB4YzAsMHgxMCwweGY4LDB4ODAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGJhODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzNiwweDQyIH19LAotIHsxNiwgMHhiYTkwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyNCwweDE4LDB4ZjksMHgxMCwweDNjLDB4NDgsMHg2OCwweDkyLDB4MTMsMHhlNCwweDAwLDB4YTksMHgxMSB9fSwKLSB7MTYsIDB4YmFhMCwgMCwgezB4YjIsMHg2MCwweDBlLDB4OTEsMHgwMywweDI2LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg2MCwweDBjLDB4MTAsMHgwMywweDI0LDB4MDggfX0sCi0gezE2LCAweGJhYjAsIDAsIHsweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDIzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwOCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YmFkMCwgMCwgezB4NDIsMHg0OCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ODksMHg4MCwweDIyLDB4NzAsMHgwOCwweDE0LDB4MjIsMHhhNCwweDAyLDB4ODkgfX0sCi0gezE2LCAweGJhZTAsIDAsIHsweDQyLDB4MmEsMHg3MCwweDI4LDB4OTAsMHgwYSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgwMiwweGEwIH19LAotIHsxNiwgMHhiYWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MjYsMHhjMCB9fSwKLSB7MTYsIDB4YmIwMCwgMCwgezB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMSwweGE5LDB4MDAsMHgwZSwweDQwLDB4MGEsMHg5MCwweDQ2LDB4YzQsMHgwYSwweDg5LDB4MDAgfX0sCi0gezE2LCAweGJiMTAsIDAsIHsweDIwLDB4NDgsMHgwYSwweDkwLDB4MDIsMHgwNSwweDgwLDB4ODEsMHg0MSwweGEwLDB4NTgsMHg4OCwweDkwLDB4MDIsMHgyNCwweDA4IH19LAotIHsxNiwgMHhiYjIwLCAwLCB7MHg4ZCwweDgwLDB4MmYsMHhjMCwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmIzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0MCwweDBiLDB4MTIsMHgwMiwweDg0LDB4MDAsMHg4MSwweDI0LDB4MmMgfX0sCi0gezE2LCAweGJiNDAsIDAsIHsweDU4LDB4MGEsMHgzMiwweDIyLDB4YzUsMHg4NCwweGExLDB4MDAsMHgyMCwweDUwLDB4MDgsMHhiMCwweDAyLDB4ODUsMHgwOCwweDgxIH19LAotIHsxNiwgMHhiYjUwLCAwLCB7MHg0MCwweDIwLDB4NWEsMHgwOCwweDE2LDB4ODIsMHgwNCwweDAwLDB4YTUsMHgwMCwweDJkLDB4NDAsMHgwOCwweDEyLDB4ODIsMHg4MiB9fSwKLSB7MTYsIDB4YmI2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDM2LDB4MTQgfX0sCi0gezE2LCAweGJiNzAsIDAsIHsweDBmLDB4ODUsMHgyMywweDAxLDB4NDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHg0MywweGMwLDB4MDgsMHhjYSwweDAwIH19LAotIHsxNiwgMHhiYjgwLCAwLCB7MHgzMiwweDgwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAsMHgzMiwweDA4LDB4MmMsMHgwMiwweDAzLDB4MjAsMHgwOCB9fSwKLSB7MTYsIDB4YmI5MCwgMCwgezB4YzgsMHgwMCwweDNmLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweDkxLDB4NDMsMHhmNCwweDA0LDB4ZjksMHgxMCwweDNlIH19LAotIHsxNiwgMHhiYmIwLCAwLCB7MHg0NCwweDBkLDB4MTEsMHgwMywweGU0LDB4NDQsMHg1OSwweDQwLDB4M2UsMHg1MCwweDRmLDB4NTAsMHg0MywweGQ0LDB4MDIsMHhmZCB9fSwKLSB7MTYsIDB4YmJjMCwgMCwgezB4NDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGJiZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4NjYsMHg2MCwweGM5LDB4ZTAsMHgzMiwweDQ0IH19LAotIHsxNiwgMHhiYmUwLCAwLCB7MHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZGQsMHg4NCwweDNmLDB4NjgsMHg4ZiwweGQ4LDB4NDIsMHhlNiwweGEwLDB4ZGQsMHhhNCB9fSwKLSB7MTYsIDB4YmJmMCwgMCwgezB4MzMsMHg2OCwweDBkLDB4NzAsMHgwMywweDI1LDB4MDAsMHhjOSwweGUwLDB4YjIsMHg2OCwweDBjLDB4OWEsMHhjMywweDI2LDB4MDAgfX0sCi0gezE2LCAweGJjMDAsIDAsIHsweDk5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwMCwweDg4LDB4ODAsMHhhYSwweDIwLDB4OGIsMHg4OCwweDAyLDB4ZTIsMHg4OCwweGI4LDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4YmMyMCwgMCwgezB4MDAsMHgwYiwweDg0LDB4MDIsMHhlMiwweGIwLDB4ODgsMHg1MCwweDIyLDB4MTQsMHgwOCwweDgwLDB4MDIsMHg4MiwweDgwLDB4ODggfX0sCi0gezE2LCAweGJjMzAsIDAsIHsweGUwLDB4YjYsMHgzYSwweDA4LDB4Y2UsMHhhMiwweDIxLDB4MDgsMHg4OCwweDAwLDB4MmUsMHgwMCwweDBiLDB4YzQsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiYzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDYwLDB4NjgsMHg0OCB9fSwKLSB7MTYsIDB4YmM1MCwgMCwgezB4NWIsMHgxNiwweDAyLDB4YzQsMHgyMCwweGExLDB4NDAsMHg2YywweDUwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHgwMCwweGExLDB4MDAgfX0sCi0gezE2LCAweGJjNjAsIDAsIHsweDI0LDB4NDAsMHgwYiwweDkwLDB4MjIsMHgxNCwweDkwLDB4ODUsMHg0MiwweDIxLDB4NTAsMHg1YiwweDUwLDB4MWEsMHgxNSwweDAwIH19LAotIHsxNiwgMHhiYzcwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MCwweDBiLDB4NTEsMHgwYSwweDgyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmM4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4OSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHg0NiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MmUgfX0sCi0gezE2LCAweGJjOTAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDIwLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNiwweDQwLDB4MTgsMHhiOCwweDAyLDB4YTQsMHgwMiwweDhkIH19LAotIHsxNiwgMHhiY2EwLCAwLCB7MHgwOCwweDJmLDB4NDAsMHg4YiwweGQwLDB4MDIsMHgyNCwweDAwLDB4OGQsMHgyMCwweDJmLDB4NDgsMHgwYiwweGQwLDB4MDIsMHg4NiB9fSwKLSB7MTYsIDB4YmNiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGJjYzAsIDAsIHsweDBmLDB4OTAsMHgwMiwweGU0LDB4MTAsMHg0OSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhlOSwweDAxIH19LAotIHsxNiwgMHhiY2QwLCAwLCB7MHgzNiwweDQwLDB4MGYsMHgxOCwweDEzLDB4MjQsMHgxMCwweGM5LDB4ODIsMHgzMiwweDQwLDB4N2YsMHg5MCwweDIzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YmNlMCwgMCwgezB4ZDksMHgyMCwweDNlLDB4NzIsMHgwZiwweDkwLDB4MDMsMHhhOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjZjAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAyLDB4ZjEsMHgwMSwweDE2LDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlNSwweDEwLDB4ZjksMHgwOCwweDJlIH19LAotIHsxNiwgMHhiZDAwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDAsMHhjOSwweDAxLDB4M2EsMHg0MCwweDFmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YmQxMCwgMCwgezB4MjAsMHgzNCwweDQwLDB4OGMsMHg5MCwweDAzLDB4YzQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHgxMCwweDAzLDB4NGEgfX0sCi0gezE2LCAweGJkMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOCwweGY4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiZDMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDIsMHg0ZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZDAsMHgwMCB9fSwKLSB7MTYsIDB4YmQ0MCwgMCwgezB4M2UsMHgwMCwweDBlLDB4ODEsMHgwMywweDMwLDB4MDAsMHhjYywweDQwLDB4MzMsMHgwMCwweDBjLDB4YzAsMHgwYiwweDIwLDB4MjAgfX0sCi0gezE2LCAweGJkNTAsIDAsIHsweGU4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHhjMCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZDYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGJlLDB4YzgsMHg2ZiB9fSwKLSB7MTYsIDB4YmQ3MCwgMCwgezB4ODAsMHgwYiwweGUxLDB4MjIsMHhhOCwweDAwLDB4OGUsMHgyMCwweDJmLDB4ODAsMHgwYiwweGUwLDB4MjMsMHg2OCwweDAwLDB4OGEgfX0sCi0gezE2LCAweGJkODAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDI5LDB4MDAsMHg4YSwweDAwLDB4MmUsMHhhOCwweDBiLDB4YTAsMHgwMCwweGNhIH19LAotIHsxNiwgMHhiZDkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4YmRhMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4YzEsMHgyYywweGUwLDB4MGIsMHgzOCwweDU2LDB4MmMsMHgxMCwweDEzLDB4MDAgfX0sCi0gezE2LCAweGJkYjAsIDAsIHsweDJlLDB4YzAsMHgwYSwweDM4LDB4NmEsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIwLDB4MDAsMHgwOSwweDgwLDB4MjIsMHg0YywweDQyIH19LAotIHsxNiwgMHhiZGMwLCAwLCB7MHhhMywweDAwLDB4MmMsMHhlMCwweDBiLDB4MjQsMHg4MCwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmRkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDgsMHhiNywweDI0LDB4MmYsMHhlMCwweDA5LDB4MzksMHgwMiwweDFjLDB4MDEsMHhiNiwweDAwLDB4MmQgfX0sCi0gezE2LCAweGJkZTAsIDAsIHsweDkwLDB4MGIsMHg2MCwweDkyLDB4OGUsMHgwMCwweDg2LDB4ODIsMHgyZCwweGMyLDB4MGIsMHhmMCwweDAyLDB4NWMsMHgwNiwweDg3IH19LAotIHsxNiwgMHhiZGYwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgyOSwweDcwLDB4MDIsMHg1YywweDAwLDB4ODYsMHgwMCwweDJkLDB4YzAsMHgwYiwweDYwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YmUwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDQwLDB4ZjMsMHhlNCwweDNkLDB4ZTggfX0sCi0gezE2LCAweGJlMTAsIDAsIHsweDBkLDB4NzksMHgwYiwweDFlLDB4YzAsMHg2NywweDgwLDB4MmQsMHhlMCwweDBmLDB4NzAsMHg0MywweDFkLDB4ODAsMHhkNSwweDAwIH19LAotIHsxNiwgMHhiZTIwLCAwLCB7MHgzZCwweDYwLDB4MGUsMHg3OCwweDAzLDB4MWUsMHgwMCwweGNkLDB4ODAsMHgzMSwweGUwLDB4MGQsMHhjOCwweDAzLDB4NGUsMHgwMCB9fSwKLSB7MTYsIDB4YmUzMCwgMCwgezB4ZTUsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDQ4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlNDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDgwLDB4ZmIsMHgwMCwweDcwLDB4YzAsMHg2ZSwweGI2LDB4MTMsMHhhZCwweDQwLDB4ZmEsMHgwMCwweDNlIH19LAotIHsxNiwgMHhiZTUwLCAwLCB7MHhjMCwweDBmLDB4MjAsMHg0MywweDJkLDB4MTgsMHg1OSwweDAwLDB4M2UsMHgwMCwweDAzLDB4YjAsMHgwYiwweGUwLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4YmU2MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGUsMHhiMCwweDEzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGJlNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg0MCwweGZmLDB4ODAsMHgzZiwweGU2IH19LAotIHsxNiwgMHhiZTgwLCAwLCB7MHgwZiwweGY4LDB4MjMsMHgyZSwweDA0LDB4ZmYsMHg5MCwweDNmLDB4ZTQsMHgwZCwweGJhLDB4MDMsMHhmZiwweDQwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4YmU5MCwgMCwgezB4MjIsMHhlMSwweDBjLDB4MzksMHg0MywweDMyLDB4MTAsMHhlYywweDkwLDB4MzMsMHgyMCwweDhlLDB4YzgsMHgwMywweGYyLDB4MDAgfX0sCi0gezE2LCAweGJlYTAsIDAsIHsweGRmLDB4ODAsMHgzZiwweDYwLDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZWIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI3LDB4OTAsMHgzYywweGUwLDB4MGIsMHgzYSwweDAzLDB4NGUsMHg4MCwweGYzLDB4YjEsMHgyZCB9fSwKLSB7MTYsIDB4YmVjMCwgMCwgezB4MDQsMHg0YywweDM4LDB4MjMsMHhhZSwweDAwLDB4ODAsMHg4MCwweDM0LDB4ZTgsMHg0ZCwweDc4LDB4MDIsMHgzZSwweDgwLDB4ODcgfX0sCi0gezE2LCAweGJlZDAsIDAsIHsweGEwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGMwLDB4ODAsMHg4NiwweDAyLDB4MmQsMHg0MSwweDBiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHhiZWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDgsMHgzNywweDAxLDB4MmQsMHhjOSB9fSwKLSB7MTYsIDB4YmVmMCwgMCwgezB4MGIsMHg3MiwweDIyLDB4MWMsMHg4NCwweGI1LDB4MTYsMHgwZCwweGM0LDB4MTksMHg0MCwweDQyLDB4ZGMsMHg4MCwweDg3LDB4MDAgfX0sCi0gezE2LCAweGJmMDAsIDAsIHsweDIwLDB4YzgsMHg4OCwweDczLDB4MGEsMHg5YywweDgwLDB4YjUsMHgwMCwweDI5LDB4YzAsMHgwYSwweDQ4LDB4MDIsMHhjMCwweDAyIH19LAotIHsxNiwgMHhiZjEwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MiwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmYyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmEsMHhlMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MjAsMHhhMSwweDAxLDB4MjQgfX0sCi0gezE2LCAweGJmMzAsIDAsIHsweGMxLDB4MDgsMHgwMCwweDAyLDB4OGMsMHgwMCwweDgxLDB4MDAsMHgyNCwweDgwLDB4MDksMHgzOCwweDBhLDB4NjAsMHg4MCwweDkyIH19LAotIHsxNiwgMHhiZjQwLCAwLCB7MHg0MCwweDJhLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMCwweDAwLDB4ODAsMHhjOCwweDJjLDB4NzIsMHgwYiwweDE0LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YmY1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4ZjQgfX0sCi0gezE2LCAweGJmNjAsIDAsIHsweDhmLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhiOSwweDAwLDB4M2UsMHg0MCwweDA5LDB4OTAsMHgwMywweGZjLDB4MDIsMHhjMywweDAxIH19LAotIHsxNiwgMHhiZjcwLCAwLCB7MHgzMiwweGMwLDB4NDgsMHhiOCwweDEzLDB4YTEsMHgwMCwweGJhLDB4MDAsMHgyYSwweDAwLDB4MGEsMHhhMCwweDA3LDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YmY4MCwgMCwgezB4ZGIsMHhjOCwweDNlLDB4OTAsMHgwZiwweGEyLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJmOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNlLDB4YzQsMHgwZiwweGIwLDB4NjMsMHhlYywweDAxLDB4ZjgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhiZmEwLCAwLCB7MHg0MCwweDBiLDB4ODAsMHgwMywweGNjLDB4MDAsMHhmYSwweDQyLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgwMCwweGFjLDB4NTgsMHhlOSB9fSwKLSB7MTYsIDB4YmZiMCwgMCwgezB4ODIsMHgzZSwweGMwLDB4MWQsMHg5MCwweDAzLDB4ZWMsMHgwNCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGJmYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwYywweGRmLDB4MDAsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhiZmQwLCAwLCB7MHgyYywweGYwLDB4MDMsMHg3YywweDAxLDB4YzcsMHgwMCwweDMzLDB4NDAsMHg4ZiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZDgsMHgwMCB9fSwKLSB7MTYsIDB4YmZlMCwgMCwgezB4MTUsMHg0NCwweDBjLDB4ZTAsMHgxYiwweDNjLDB4MDAsMHhjYiwweDBlLDB4MzMsMHhjMCwweDVjLDB4NjIsMHgwMiwweDFjLDB4MDIgfX0sCi0gezE2LCAweGJmZjAsIDAsIHsweGM1LDB4MDAsMHgyYiwweDgwLDB4MGYsMHhjMCwweDg3LDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDAwLCAwLCB7MHg4MSwweDQ0LDB4NmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDUyLDB4MGMsMHgwMSwweGZhLDB4YzQsMHgyMiB9fSwKLSB7MTYsIDB4YzAxMCwgMCwgezB4NjEsMHgwYiwweDg4LDB4MDMsMHg2YywweDAwLDB4ODgsMHg0NywweDJhLDB4MDAsMHgwZSwweDFjLDB4MDIsMHgyMCwweDAyLDB4ODggfX0sCi0gezE2LCAweGMwMjAsIDAsIHsweDAwLDB4YWEsMHgwMCwweDI4LDB4OTAsMHgwYSwweDJjLDB4MDQsMHhhOCwweDAwLDB4MjIsMHg5MCwweDBiLDB4ODAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhjMDMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSB9fSwKLSB7MTYsIDB4YzA0MCwgMCwgezB4MDgsMHgzMCwweDEyLDB4NmMsMHgwMCwweDg4LDB4ODgsMHgyYSwweDMwLDB4MGIsMHhiOCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MDggfX0sCi0gezE2LCAweGMwNTAsIDAsIHsweDJhLDB4NDAsMHgwOCwweGI4LDB4MDIsMHgyMCwweDAwLDB4ODIsMHgxMCwweDIyLDB4MDAsMHgwOCwweGEwLDB4MjIsMHhhMCwweDAwIH19LAotIHsxNiwgMHhjMDYwLCAwLCB7MHg4YiwweDAwLDB4MmEsMHgwMiwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzA3MCwgMCwgezB4MDgsMHgwMCwweDBjLDB4MDAsMHhiMywweDIwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDJjLDB4YzAsMHhhMCwweDA4LDB4MjAgfX0sCi0gezE2LCAweGMwODAsIDAsIHsweDAwLDB4MGIsMHgzMywweDQ2LDB4Y2QsMHgyOCwweDgwLDB4MjAsMHgyOCwweGMwLDB4MGIsMHgzMiwweDAyLDB4MGMsMHgyMCwweDgxIH19LAotIHsxNiwgMHhjMDkwLCAwLCB7MHgzMCwweDI4LDB4YzAsMHgwOCwweDEwLDB4MDIsMHg4MSwweDAwLDB4YWEsMHgwMCwweDI4LDB4MDAsMHgwMywweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YzBhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDAwLDB4ZmIsMHgyOCwweDJlLDB4Y2MgfX0sCi0gezE2LCAweGMwYjAsIDAsIHsweDBjLDB4NzAsMHg1MywweDdkLDB4MDksMHg4OCwweDAwLDB4YmEsMHgwMCwweDBmLDB4ODAsMHgwMywweGZkLDB4ODAsMHhkYSwweDYwIH19LAotIHsxNiwgMHhjMGMwLCAwLCB7MHgzYSwweDUwLDB4OGMsMHhhMiwweDgzLDB4MmMsMHg4MCwweDRiLDB4MjAsMHgzMCwweGMwLDB4MjgsMHhhMCwweDAzLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4YzBkMCwgMCwgezB4YzksMHgwMCwweDNhLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmIsMHgwMCwweDdlLDB4YzksMHgwYiwweGI2LDB4MDMsMHhmYywweGMwLDB4ZjgsMHgwYywweDNmIH19LAotIHsxNiwgMHhjMGYwLCAwLCB7MHgwMCwweDRmLDB4YzMsMHg0MywweDJjLDB4MDAsMHhiOCwweDM4LDB4M2YsMHg4ZSwweDVlLDB4ZjAsMHg0MywweGUwLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4YzEwMCwgMCwgezB4MzAsMHgzZiwweDAxLDB4MGYsMHhkMCwweDAzLDB4NzAsMHgwMCwweGZjLDB4MDAsMHgzNywweDAwLDB4MGQsMHhkMCwweDA3LDB4ZTkgfX0sCi0gezE2LCAweGMxMTAsIDAsIHsweDAzLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhlMCwweGNjLDB4ODAsMHgzMywweGMwIH19LAotIHsxNiwgMHhjMTIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHhmYywweDgwLDB4ZGMsMHg5NCwweDMzLDB4YzAsMHgxYywweGYxLDB4MDMsMHg3ZCwweDhjLDB4ZmYsMHgzMCB9fSwKLSB7MTYsIDB4YzEzMCwgMCwgezB4M2YsMHgzMCwweDhmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhjZiwweDkwLDB4MzksMHhhMCwweDhkLDB4ZjgsMHgwMywweGFlLDB4MDAgfX0sCi0gezE2LCAweGMxNDAsIDAsIHsweGQ1LDB4ODAsMHgxMywweGUwLDB4MGMsMHg1OCwweDAzLDB4ZjAsMHgwMSwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMTUwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwOCwweDg4LDB4MDAsMHgyMywweGM0LDB4MDgsMHhmYywweDAyLDB4ZWMsMHhhOCwweGNiLDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4YzE2MCwgMCwgezB4YzIsMHgwZCwweGY3LDB4MTIsMHgxYywweDQwLDB4ZGYsMHgzMCwweDIyLDB4YTAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4ZGIgfX0sCi0gezE2LCAweGMxNzAsIDAsIHsweDIxLDB4MjIsMHhjMCwweDA4LDB4YjgsMHgyMiwweDJlLDB4MDAsMHhiOSwweDgwLDB4MmEsMHg2MCwweDBhLDB4ODgsMHgwMiwweGUwIH19LAotIHsxNiwgMHhjMTgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGNjLDB4MTAsMHg4MCwweDJjLDB4MjgsMHhjYSB9fSwKLSB7MTYsIDB4YzE5MCwgMCwgezB4NjgsMHgzMCwweDAyLDB4OGQsMHgwMCwweDliLDB4MjAsMHgyOCwweGM0LDB4MDgsMHgzMiwweDAyLDB4Y2MsMHgxMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGMxYTAsIDAsIHsweDI0LDB4MDgsMHgwYiwweDgwLDB4NDIsMHg2YywweDAwLDB4ODMsMHgwMCwweDJhLDB4Y2EsMHgzYSwweGIwLDB4MDIsMHg4YywweDA0IH19LAotIHsxNiwgMHhjMWIwLCAwLCB7MHhiMCwweDA0LDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGUzLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzFjMCwgMCwgezB4YzAsMHgxNSwweDhjLDB4MDIsMHg4MCwweDQwLDB4YWEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg5YiwweDIwLDB4MmEgfX0sCi0gezE2LCAweGMxZDAsIDAsIHsweGMwLDB4ODgsMHhiMCwweDAyLDB4YWMsMHgwMCwweDliLDB4MDAsMHgyNiwweGUwLDB4MDMsMHg4MCwweDgyLDB4MmMsMHgyOCwweDliIH19LAotIHsxNiwgMHhjMWUwLCAwLCB7MHgyMCwweDIyLDB4ZTEsMHgwYiwweGIyLDB4MDIsMHhhYywweDgwLDB4YjgsMHg4MCwweDJhLDB4YzEsMHgwYSwweDk4LDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YzFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzgsMHg1MCwweDNhLDB4YzAgfX0sCi0gezE2LCAweGMyMDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhkYiwweDg4LDB4YmEsMHhjMCwweDA4LDB4YjAsMHgwMywweDZjLDB4MDgsMHhmYiwweDAwIH19LAotIHsxNiwgMHhjMjEwLCAwLCB7MHgzNiwweDYwLDB4MGYsMHg4YywweDYzLDB4NmMsMHgwMCwweGNiLDB4YzAsMHgzYSwweDgwLDB4MGUsMHhiZSwweDAzLDB4YWYsMHg4NCB9fSwKLSB7MTYsIDB4YzIyMCwgMCwgezB4NzksMHg4MCwweDNhLDB4ODgsMHgwNCwweDk4LDB4MDEsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyMzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmMsMHg4MCwweDM1LDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhkYywweDAwLDB4ZWYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhjMjQwLCAwLCB7MHhjMCwweGFmLDB4ZjAsMHgwMywweDFjLDB4MDEsMHg2ZiwweDAwLDB4MTMsMHgwMCwweDBmLDB4YzEsMHgyMywweGZjLDB4YjgsMHhmZiB9fSwKLSB7MTYsIDB4YzI1MCwgMCwgezB4MDQsMHgzNywweGMwLDB4MGMsMHhmOCwweDQzLDB4N2UsMHgwNCwweGZkLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhkMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGMyNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGM4LDB4NDAsMHgzYSwweGMwIH19LAotIHsxNiwgMHhjMjcwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg0MCwweDM4LDB4YzEsMHgwZSwweGIwLDB4NDMsMHgyYywweDA4LDB4YzMsMHgwMCB9fSwKLSB7MTYsIDB4YzI4MCwgMCwgezB4M2UsMHg0MCwweDBlLDB4ODIsMHgwMywweDZkLDB4MDAsMHhkYiwweDQwLDB4MzIsMHhjMSwweDVmLDB4YjQsMHhhMywweGVkLDB4MjAgfX0sCi0gezE2LCAweGMyOTAsIDAsIHsweGM5LDB4NDAsMHgzMiwweGUwLDB4OGYsMHg5OCwweDQzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMmEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MjgsMHhmNSwweGMyLDB4ZmMsMHgwMCwweGIzLDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4YzJiMCwgMCwgezB4YzEsMHg0OCwweGYwLDB4MjIsMHhiYywweDA2LDB4YWYsMHgwMCwweDBlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHhjZCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGMyYzAsIDAsIHsweDAxLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGVlLDB4MDAsMHg4MSwweGUwLDB4MzQsMHhhMCwweDBiLDB4OTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhjMmQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDIsMHg4MCwweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4YzJlMCwgMCwgezB4MDksMHgzYywweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDEgfX0sCi0gezE2LCAweGMyZjAsIDAsIHsweDJjLDB4MDAsMHgwYSwweDA1LDB4MDIsMHhjZCwweDU4LDB4YmIsMHgwMCwweDIwLDB4MDAsMHgwYSwweDNkLDB4MDIsMHhjZiwweDQwIH19LAotIHsxNiwgMHhjMzAwLCAwLCB7MHgyMSwweDIwLDB4NjAsMHhjMCwweDA5LDB4MTAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzMxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg4NCwweDgwLDB4MjgsMHhlNCwweDg4LDB4NzgsMHg0MiwweGRlLDB4MDAsMHhiNywweDkwLDB4NjUgfX0sCi0gezE2LCAweGMzMjAsIDAsIHsweGU0LDB4ODgsMHg3YSwweDQyLDB4OWUsMHg0MCwweGE3LDB4OTAsMHgyZCwweGEwLDB4MGEsMHg0OCwweDIyLDB4ZGUsMHgwNCwweGI3IH19LAotIHsxNiwgMHhjMzMwLCAwLCB7MHg4MCwweDIzLDB4NjAsMHg0OCwweDc4LDB4NDIsMHhmZSwweDgwLDB4YWYsMHg5MCwweDY1LDB4ZTAsMHgwYiwweGU4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YzM0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YzgsMHgwMCwweDM4LDB4YzAgfX0sCi0gezE2LCAweGMzNTAsIDAsIHsweDBjLDB4MzAsMHgwMywweGNjLDB4MDAsMHhmYiwweDAwLDB4M2MsMHhjMCwweDBlLDB4YmEsMHgwMywweDBjLDB4MDAsMHhjMywweDAwIH19LAotIHsxNiwgMHhjMzYwLCAwLCB7MHgzZSwweDAwLDB4NGUsMHgyMiwweDAyLDB4Y2MsMHhjMCwweGZiLDB4NDAsMHgzMCwweGMwLDB4MGEsMHgzMCwweDAzLDB4Y2UsMHg4MCB9fSwKLSB7MTYsIDB4YzM3MCwgMCwgezB4ZTEsMHg0MSwweDMwLDB4YzksMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDIwLDB4ZmMsMHgwMCwweDM3LDB4YzIsMHgwZSwweGYxLDB4MjMsMHhlYywweDQwLDB4ZmYsMHgwNCwweDNhIH19LAotIHsxNiwgMHhjMzkwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgyMywweGZjLDB4MDAsMHhmZiwweDA0LDB4M2UsMHhjMCwweDBkLDB4YTAsMHgwMywweGZjLDB4NTgsMHhmZiB9fSwKLSB7MTYsIDB4YzNhMCwgMCwgezB4MDAsMHhiZiwweGMwLDB4MDYsMHhmMCwweDgzLDB4ZGMsMHg2MiwweGRmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MTAgfX0sCi0gezE2LCAweGMzYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHg4MCwweGM5LDB4MDEsMHgzZSwweGMwIH19LAotIHsxNiwgMHhjM2MwLCAwLCB7MHg4YywweGIyLDB4MDcsMHhhZSwweDA0LDB4Y2IsMHg4MCwweDNhLDB4YzgsMHg0YywweGIyLDB4MDMsMHgyYywweDg0LDB4Y2IsMHgzMCB9fSwKLSB7MTYsIDB4YzNkMCwgMCwgezB4YjAsMHhlMCwweDBkLDB4ODgsMHgwYiwweDJjLDB4MDAsMHhlYiwweDAwLDB4MzAsMHgwMCwweDBjLDB4YmMsMHg4MywweDJkLDB4ODAgfX0sCi0gezE2LCAweGMzZTAsIDAsIHsweGZiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4ZWEsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjM2YwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg0MCwweDg3LDB4MDAsMHgyYywweGNjLDB4MDgsMHg3NiwweDgyLDB4M2MsMHg4MiwweDg3LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YzQwMCwgMCwgezB4YzIsMHg4ZCwweDMyLDB4ODIsMHgwZCwweDRjLDB4YTcsMHgyOCwweDIxLDB4ODAsMHgwOCwweDQwLDB4MDIsMHgxZCwweDgwLDB4YmYgfX0sCi0gezE2LCAweGM0MTAsIDAsIHsweDIwLDB4MzUsMHg0MCwweDA5LDB4NzIsMHg0MywweDVjLDB4YTAsMHhiNywweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhjNDIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NCwweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4YzQzMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4ZGUsMHhjMCwweDhmLDB4ODAsMHgyOCwweGVjLDB4MjgsMHg3YiwweDBhLDB4OWUsMHg5NCwweDgzLDB4ODQgfX0sCi0gezE2LCAweGM0NDAsIDAsIHsweDIzLDB4ZTAsMHgwOSwweDU4LDB4NTAsMHg5ZSwweDEwLDB4YTcsMHhiMCwweDIzLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHgxZSwweDIwIH19LAotIHsxNiwgMHhjNDUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzQ2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDIsMHg4MiwweDFjLDB4MmMsMHhjMCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweGMwLDB4MjAgfX0sCi0gezE2LCAweGM0NzAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHg2MCwweGQyLDB4MDgsMHgxZCwweDAyLDB4MGYsMHgyMCwweGJiIH19LAotIHsxNiwgMHhjNDgwLCAwLCB7MHgyNCwweDI0LDB4YzAsMHgwYiwweDNjLDB4MDIsMHg0ZiwweDAwLDB4YjMsMHg4MCwweDI4LDB4ZDgsMHgwOSwweDMyLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4YzQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhhOCwweDAwLDB4Y2UsMHg4NCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGM0YTAsIDAsIHsweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhjZSwweGMwLDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMywweGE4LDB4MDAsMHhjYSwweDAwIH19LAotIHsxNiwgMHhjNGIwLCAwLCB7MHgzMywweDgwLDB4MGQsMHhlYywweDAzLDB4M2IsMHg4MCwweGVlLDB4ODIsMHgzMywweDgwLDB4MGEsMHhjMCwweDg3LDB4MTAsMHg0MCB9fSwKLSB7MTYsIDB4YzRjMCwgMCwgezB4ZjYsMHhjMCwweDMzLDB4OTAsMHhhZCwweDY0LDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0ZDAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAyLDB4ZjgsMHgwMCwweDNjLDB4MDAsMHgxZiwweDA0LDB4MDMsMHhhMCwweDA0LDB4ZjgsMHgzMCwweDNlIH19LAotIHsxNiwgMHhjNGUwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNCwweDBmLDB4ODAsMHg5MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YzRmMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MmMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MTgsMHgzZSwweDEwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGM1MDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhjNTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwNCwweDkwLDB4MDMsMHgyNCwweDAwLDB4NDEsMHgwMCB9fSwKLSB7MTYsIDB4YzUyMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTEsMHgxMywweGUxLDB4MDgsMHhmOCwweDAwLDB4MzIsMHg0MCwweDA4LDB4ODksMHg4MywweGEyLDB4MDAgfX0sCi0gezE2LCAweGM1MzAsIDAsIHsweGM5LDB4ODAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDBiLDB4MDIsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNTQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YzU1MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHg4YiwweDk0LDB4NDIsMHhlMiwweDIwLDB4YjggfX0sCi0gezE2LCAweGM1NjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDA4LDB4OTQsMHgwMiwweGU1LDB4MDQsMHhhOSwweDkwLDB4MzQsMHg2MCwweDA4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjNTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MTAsMHg5OSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YzU4MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGE5LDB4MDAgfX0sCi0gezE2LCAweGM1OTAsIDAsIHsweDJhLDB4NDAsMHgwYiwweDkwLDB4ODIsMHhlMCwweDAxLDB4YjgsMHgwMCwweDIwLDB4NDAsMHgzYSwweDkwLDB4MDIsMHhhNCwweDQ0IH19LAotIHsxNiwgMHhjNWEwLCAwLCB7MHg4OSwweDA0LDB4MjIsMHg2MiwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzViMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4OGEsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA5LDB4MzIsMHgwNiwweDQ0LDB4ODAsMHhiMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGM1YzAsIDAsIHsweDQ4LDB4MGEsMHgxMiwweDAyLDB4ODQsMHg4MCwweGExLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDAyLDB4YzUsMHgwMCwweGIxIH19LAotIHsxNiwgMHhjNWQwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwYSwweDI0LDB4MDIsMHhjOSwweDAwLDB4YTMsMHgwMCwweDI0LDB4NDAsMHgwOCwweDExLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzVlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNlLDB4MTQgfX0sCi0gezE2LCAweGM1ZjAsIDAsIHsweDBlLDB4ODAsMHgwMywweGUxLDB4NDAsMHhmOCwweDUxLDB4MzYsMHgxNCwweDJlLDB4ODUsMHg0MywweDIxLDB4NDIsMHhlOCwweDUwIH19LAotIHsxNiwgMHhjNjAwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDEyLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MWUsMHg4MCwweDQzLDB4YTAsMHgwMCB9fSwKLSB7MTYsIDB4YzYxMCwgMCwgezB4YzgsMHgwMSwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2MjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHg0ZSwweDExLDB4MDMsMHhhNCwweDQwLDB4YjUsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjNjMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGU1LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YzY0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGQsMHg0NCwweDAzLDB4ZjEsMHgwMCwweGY1LDB4MDIsMHgzZCwweGMwLDB4MmYsMHhkMiwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGM2NTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTcsMHgwMCwweGU5LDB4MDAsMHgzNiwweDYwIH19LAotIHsxNiwgMHhjNjYwLCAwLCB7MHgwZCwweGRhLDB4MDMsMHhlNiwweDQwLDB4ZjksMHg0MCwweDNlLDB4NjgsMHgwYywweDlhLDB4MDMsMHg2NiwweDIwLDB4ODksMHhhMCB9fSwKLSB7MTYsIDB4YzY3MCwgMCwgezB4MzMsMHg0MCwweDBlLDB4OTAsMHgwNywweGE2LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg1MCwweDBjLDB4Y2EsMHgwMywweGYzLDB4ODAgfX0sCi0gezE2LCAweGM2ODAsIDAsIHsweGM1LDB4MDIsMHgzMywweDQwLDB4MGMsMHhjMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNjkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwNCwweDg4LDB4YTIsMHgyMCwweDM4LDB4MDgsMHg4MCwweDAyLDB4ZTMsMHg0MCwweGIwLDB4ODAsMHgyZSB9fSwKLSB7MTYsIDB4YzZhMCwgMCwgezB4MjgsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4ODgsMHg4MCwweDIyLDB4MDAsMHhkYiwweDg4LDB4MDIsMHg2MiwweDA0LDB4YjggfX0sCi0gezE2LCAweGM2YjAsIDAsIHsweGIwLDB4MmUsMHhhOCwweDg4LDB4OGUsMHhhMiwweGVhLDB4ODAsMHg4OCwweDAwLDB4MmEsMHgwMCwweDI4LDB4ODgsMHgwMywweDhlIH19LAotIHsxNiwgMHhjNmMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODIsMHhhOSwweDA4LDB4MmMsMHg1MiB9fSwKLSB7MTYsIDB4YzZkMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjEsMHgwYywweDUyLDB4ODgsMHgxNCwweDAyLDB4NDQsMHgyMCwweDkxLDB4NjkgfX0sCi0gezE2LCAweGM2ZTAsIDAsIHsweDIwLDB4NDAsMHgwYSwweDEwLDB4ODIsMHhjNiwweGUwLDB4YjEsMHgwYywweDJjLDB4NDgsMHgwOCwweDAxLDB4MDIsMHhlMSwweDkzIH19LAotIHsxNiwgMHhjNmYwLCAwLCB7MHhhMSwweDAxLDB4MjQsMHg0MSwweDBhLDB4MTAsMHgwMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzcwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMCwweGU0LDB4MDAsMHgzOSwweDAyLDB4MGUgfX0sCi0gezE2LCAweGM3MTAsIDAsIHsweDQwLDB4MDgsMHgxMCwweDYyLDB4MjQsMHgwMCwweDkxLDB4MDAsMHg2MiwweDQwLDB4OGIsMHg4MCwweDAyLDB4ZTAsMHg1NCwweGI5IH19LAotIHsxNiwgMHhjNzIwLCAwLCB7MHgwYywweDJlLDB4NDAsMHgwOSwweGI2LDB4NTIsMHhlYywweDAwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkyLDB4ODAsMHg4NiB9fSwKLSB7MTYsIDB4YzczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZTEsMHg2MCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGM3NDAsIDAsIHsweDBkLDB4OTAsMHgyMywweGU0LDB4MDAsMHhmOSwweDMwLDB4M2UsMHg0MCwweDJjLDB4OTAsMHg0MywweDY0LDB4MDYsMHhjOSwweDAwIH19LAotIHsxNiwgMHhjNzUwLCAwLCB7MHgzMiwweDQ5LDB4MGUsMHg4ZCwweDkzLDB4ZTAsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MmMsMHg5NCwweDAzLDB4YzcsMHg0MCB9fSwKLSB7MTYsIDB4Yzc2MCwgMCwgezB4ZTksMHgyMCwweDMwLDB4NTUsMHgwZSwweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3NzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MCwweDNjIH19LAotIHsxNiwgMHhjNzgwLCAwLCB7MHg0MCwweDRmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDA0LDB4YmUsMHg0MCwweDBmLDB4ODgsMHgzMywweDYyLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4Yzc5MCwgMCwgezB4YzIsMHgzZSwweDQ4LDB4MmUsMHg4OCwweDMzLDB4ZTIsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDYwLDB4MGQsMHg4MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGM3YTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhjN2IwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHhhMCwweDA0LDB4ZTgsMHg0MCwweGJhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDA0LDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YzdjMCwgMCwgezB4M2EsMHgwMCwweDBlLDB4OGMsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyLDB4MzIsMHgwMCwweDBlLDB4ODAsMHgwMywweDYxLDB4MjAgfX0sCi0gezE2LCAweGM3ZDAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDE2LDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjN2UwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhlMiwweDAzLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YzdmMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDA0LDB4OGEsMHgwMCwweDJlLDB4YTIsMHgwOSwweGU4LDB4MDIsMHhmYSwweDA0LDB4YmUgfX0sCi0gezE2LCAweGM4MDAsIDAsIHsweDAwLDB4YTIsMHg4MCwweDA4LDB4Y2QsMHg4MiwweDMzLDB4MjAsMHhiNiwweGMwLDB4MzcsMHhhMCwweDRiLDB4YzgsMHg4MiwweGNhIH19LAotIHsxNiwgMHhjODEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDAsMHg4MywweDAwLDB4MjYsMHhjMCB9fSwKLSB7MTYsIDB4YzgyMCwgMCwgezB4MDksMHgzOCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGM4MzAsIDAsIHsweDI4LDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhjZSwweDgxLDB4YjMsMHgwMCwweDYyLDB4YzAsMHgwOCwweDNjLDB4MDIsMHg0ZiwweDAwIH19LAotIHsxNiwgMHhjODQwLCAwLCB7MHhiMywweGEwLDB4MjAsMHhiMCwweDAzLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzg1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4NDEsMHg4NywweDM0LDB4MmQsMHhjMCwweDA4LDB4NjAsMHgwMiwweDllLDB4NDAsMHhiNywweGEwLDB4MmQgfX0sCi0gezE2LCAweGM4NjAsIDAsIHsweGMwLDB4MDgsMHg3MywweDAyLDB4ZGMsMHgwMCwweDg3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDgyLDB4ZGQsMHg4NSwweGJmIH19LAotIHsxNiwgMHhjODcwLCAwLCB7MHg4MSwweDYzLDB4YzgsMHg4OCwweDdiLDB4MDIsMHgxYywweDAwLDB4YjcsMHg0MCwweDY1LDB4MDAsMHgxYiwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4Yzg4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNkLDB4ZTAgfX0sCi0gezE2LCAweGM4OTAsIDAsIHsweGRkLDB4NzAsMHgwMywweGZlLDB4ODAsMHhmNywweDkwLDB4M2YsMHhlMCwweDJjLDB4NzksMHgwMywweGZlLDB4ODAsMHhjNywweGEwIH19LAotIHsxNiwgMHhjOGEwLCAwLCB7MHgzOSwweGUwLDB4MGYsMHg3YSwweDAyLDB4ZGUsMHg4NCwweGY3LDB4YzIsMHgzMSwweGYyLDB4MGMsMHg3OSwweDAzLDB4NWUsMHgwNCB9fSwKLSB7MTYsIDB4YzhiMCwgMCwgezB4ZjcsMHg4NCwweDMxLDB4NjAsMHgwZiwweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4YzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDBhLDB4ZmIsMHg2MCwweDdlLDB4ZDQsMHgwZiwweDMwLDB4MDMsMHg2YywweDAwLDB4Y2IsMHgwMCwweDMyIH19LAotIHsxNiwgMHhjOGQwLCAwLCB7MHhkZSwweDJmLDB4YjIsMHgwMywweGVkLDB4NDIsMHgxYiwweDYwLDB4M2UsMHhjMSwweDBkLDB4YjEsMHgwMywweGVjLDB4NTAsMHhmNyB9fSwKLSB7MTYsIDB4YzhlMCwgMCwgezB4ODAsMHgzZCwweGQ4LDB4MmUsMHgzMiwweDAzLDB4ZWMsMHgzMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGM4ZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgwMCwweGNiLDB4ZDAsMHgzZiwweGYwIH19LAotIHsxNiwgMHhjOTAwLCAwLCB7MHg0YywweGY4LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg4OCwweDNmLDB4ZTAsMHgwYywweGY4LDB4NDMsMHgzZiwweDAwLDB4Y2YsMHhjOCB9fSwKLSB7MTYsIDB4YzkxMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlMCwweDJjLDB4ZjgsMHgwMywweGJlLDB4MjAgfX0sCi0gezE2LCAweGM5MjAsIDAsIHsweGM3LDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOCwweDAxLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOTMwLCAwLCB7MHhhOCwweDAxLDB4YmMsMHg0MCwweDg3LDB4OTAsMHgzZCwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZGMsMHg4MCwweGQ3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4Yzk0MCwgMCwgezB4YzAsMHgwYywweDMwLDB4MDMsMHg3YywweDAwLDB4ODcsMHgxMCwweDIxLDB4YzQsMHgxZSwweDcwLDB4MjAsMHhkYywweDQ0LDB4YjcgfX0sCi0gezE2LCAweGM5NTAsIDAsIHsweDAwLDB4MzksMHhjMCwweDBjLDB4NzEsMHgwMiwweDFjLDB4NDAsMHhkNywweDAyLDB4MjksMHg0MCwweDA4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhjOTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDMyLDB4MmQsMHhjMCB9fSwKLSB7MTYsIDB4Yzk3MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweGMwLDB4MmIsMHg3MCwweDBhLDB4NWMsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGM5ODAsIDAsIHsweDIzLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkZCwweDAwLDB4YjcsMHgwMCwweDJkLDB4YzQsMHgwYiwweGYwLDB4MDIsMHg5YywweDIwIH19LAotIHsxNiwgMHhjOTkwLCAwLCB7MHg4NywweDE4LDB4MjksMHg0MCwweDA4LDB4NzAsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzlhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MywweDAyLDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGNjLDB4MDgsMHg4MywweDQwLDB4MmUgfX0sCi0gezE2LCAweGM5YjAsIDAsIHsweGMwLDB4MmEsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMCwweGYyLDB4MGEsMHgzMCwweDAyLDB4Y2UsMHgwMCwweGIzIH19LAotIHsxNiwgMHhjOWMwLCAwLCB7MHg4OCwweDJhLDB4ZDAsMHgwYSwweDMwLDB4MDYsMHgwYywweDAwLDB4OTIsMHgwMCwweDI4LDB4NzgsMHgwOCwweDNjLDB4NDIsMHgwOCB9fSwKLSB7MTYsIDB4YzlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAyLDB4YzcsMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGM5ZTAsIDAsIHsweDJjLDB4OTAsMHgwMiwweGZjLDB4MDIsMHg4ZiwweGQ4LDB4M2YsMHhjMCwweDRiLDB4ZjAsMHgwMiwweDdjLDB4MDIsMHhjZiwweDAwIH19LAotIHsxNiwgMHhjOWYwLCAwLCB7MHgyMCwweGYyLDB4MDgsMHhiMCwweDEzLDB4ZWUsMHg4MCwweGZmLDB4MDAsMHgzZiwweGQ0LDB4MmUsMHhiZCwweDgzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4Y2EwMCwgMCwgezB4Y2IsMHg4MCwweDNhLDB4YTAsMHhhYywweGI4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhMTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgxMCwweDNlLDB4YzAsMHgwZiwweDg0LDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjYTIwLCAwLCB7MHhjMCwweDAxLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUsMHhjMCwweDBlLDB4YjAsMHgyMywweGVjLDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4Y2EzMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGQsMHhiNCwweDAzLDB4ZWQsMHgwNCwweGY5LDB4MDAsMHgxZSwweDE0LDB4Y2YsMHhiMCwweDgzLDB4ZTAgfX0sCi0gezE2LCAweGNhNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGNmLDB4MDAsMHgzMCwweGMwIH19LAotIHsxNiwgMHhjYTUwLCAwLCB7MHgwYywweDQwLDB4MDMsMHhhYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgyYywweGIwLDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4Y2E2MCwgMCwgezB4YjMsMHhlMCwweDBkLDB4ZmEsMHgwMywweDdlLDB4ODAsMHhjZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZmMsMHg0MywweGZmLDB4MjAgfX0sCi0gezE2LCAweGNhNzAsIDAsIHsweGZmLDB4MDAsMHgzZiwweDQwLDB4MDgsMHhmOCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYTgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgxMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4ZSwweDQyLDB4MmMsMHgwNCwweGJiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4Y2E5MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweDNhLDB4YzAsMHgwZSwweDMwLDB4MDIsMHgwZCwweDA4LDB4ODMgfX0sCi0gezE2LCAweGNhYTAsIDAsIHsweDAyLDB4MjIsMHhjMCwweDBhLDB4YmMsMHgwMiwweGVmLDB4MDAsMHhiYiwweGMwLDB4MmMsMHg2OCwweDBhLDB4YjksMHgwMiwweGUwIH19LAotIHsxNiwgMHhjYWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCB9fSwKLSB7MTYsIDB4Y2FjMCwgMCwgezB4MDgsMHhiOCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGNhZDAsIDAsIHsweDI2LDB4NDgsMHgxOSwweGIwLDB4MDIsMHg2ZCwweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlYywweDA0IH19LAotIHsxNiwgMHhjYWUwLCAwLCB7MHhiYiwweDFjLDB4MmUsMHgyMCwweDBhLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2FmMCwgMCwgezB4MDgsMHgxNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDBjLDB4MDAsMHg5MywweDA0LDB4MmMgfX0sCi0gezE2LCAweGNiMDAsIDAsIHsweGMxLDB4MDgsMHgzMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDQxLDB4MDksMHhiOCwweDAyLDB4MGMsMHgwMiwweDgzIH19LAotIHsxNiwgMHhjYjEwLCAwLCB7MHgwMSwweGEwLDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwMCwweDJjLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4Y2IyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg3YywweDAwLDB4Y2YsMHgyOCwweDMzLDB4YzAgfX0sCi0gezE2LCAweGNiMzAsIDAsIHsweDBjLDB4YTAsMHg0NiwweGFjLDB4MTEsMHhiZiwweDAwLDB4M2YsMHhjMCwweDVjLDB4ZjAsMHg0MywweGZjLDB4MDAsMHhmZiwweDA0IH19LAotIHsxNiwgMHhjYjQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NmMsMHgwOCwweGNiLDB4MDQsMHgzMSwweGMwLDB4MGMsMHhiMCwweDMzLDB4ZWQsMHg0MCB9fSwKLSB7MTYsIDB4Y2I1MCwgMCwgezB4ZmIsMHgwNCwweDNlLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiNjAsIDAsIHsweGEwLDB4MTUsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhmYywweDAxLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjYjcwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHg4NywweDdjLDB4MDAsMHhmZiwweDAwLDB4MzksMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4Y2I4MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZGMsMHg4MCwweGZmLDB4MDAsMHgzZCwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGNiOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg0MCwweGViLDB4NDgsMHgzZSwweGMyIH19LAotIHsxNiwgMHhjYmEwLCAwLCB7MHgwZSwweDA5LDB4MDMsMHhiYywweDYwLDB4YzAsMHgyMCwweDM1LDB4MjQsMHgwZSwweGQyLDB4MTMsMHgyYywweDYwLDB4ZmIsMHg2YSB9fSwKLSB7MTYsIDB4Y2JiMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4Y2EsMHgwMywweDIyLDB4MjAsMHhjMCwweDgwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAgfX0sCi0gezE2LCAweGNiYzAsIDAsIHsweGVmLDB4MDAsMHgzMywweDI0LDB4MGYsMHhjOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYmQwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwMCwweDhmLDB4NjAsMHgyZiwweGQ4LDB4MDgsMHhhMiwweDAyLDB4ZmQsMHg4MCwweGM4LDB4NzAsMHgyMiB9fSwKLSB7MTYsIDB4Y2JlMCwgMCwgezB4MDAsMHgyYywweGZkLDB4MDcsMHhkYywweDg0LDB4YmYsMHg2MCwweDIzLDB4ZDIsMHgwYiwweGJkLDB4MDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGNiZjAsIDAsIHsweDgwLDB4YTIsMHgyMCwweDg4LDB4YjAsMHgyMiwweDM0LDB4MDAsMHhiYiwweDUwLDB4MjIsMHhjOCwweDBiLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjYzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhhMywweDAzLDB4MmMsMHhjMiB9fSwKLSB7MTYsIDB4Y2MxMCwgMCwgezB4MGEsMHgwMCwweDQyLDB4OGMsMHg4MiwweGEzLDB4MGEsMHgyNCwweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHg5MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGNjMjAsIDAsIHsweDI4LDB4ZDgsMHgwYiwweDEwLDB4MDIsMHg4YywweDAyLDB4OTAsMHgwMCwweDIwLDB4YzAsMHgwYiwweDEwLDB4NDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhjYzMwLCAwLCB7MHhiMywweDA0LDB4MjQsMHhjMCwweDBiLDB4MzAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2M0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDA0LDB4MmMsMHhjMCwweGY4LDB4OTgsMHgwNiwweGVjLDB4MDAsMHhhYiwweDgwLDB4MjYgfX0sCi0gezE2LCAweGNjNTAsIDAsIHsweDIwLDB4MDgsMHg5MCwweDJhLDB4YWMsMHgxMCwweGJiLDB4MDAsMHgwYSwweGMwLDB4MWIsMHhiMCwweDIyLDB4YWQsMHgwMCwweDk4IH19LAotIHsxNiwgMHhjYzYwLCAwLCB7MHg0MCwweDJhLDB4NzAsMHg0YiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweGE2LDB4ODYsMHgxYiwweGIwLDB4ODIsMHhiMCB9fSwKLSB7MTYsIDB4Y2M3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGNjODAsIDAsIHsweDhlLDB4OTgsMHgwMywweGFjLDB4MDgsMHhlOCwweGMwLDB4MzYsMHgzMCwweDRmLDB4YjAsMHg0MiwweGVjLDB4MDAsMHhmOSwweDgwIH19LAotIHsxNiwgMHhjYzkwLCAwLCB7MHgzYSwweGMwLDB4OGYsMHg4OCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MTAsMHgzMCwweGYwLDB4MGYsMHgzMCwweDEzLDB4NmMsMHgxMCB9fSwKLSB7MTYsIDB4Y2NhMCwgMCwgezB4ZWIsMHgwMCwweDM2LDB4ZjAsMHgwZiwweGJkLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjYjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZWYsMHgwNCwweDdmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhkYywweDAwLDB4YzQsMHgwMCwweDNiIH19LAotIHsxNiwgMHhjY2MwLCAwLCB7MHg0MCwweDhiLDB4ZGMsMHgwMywweDdjLDB4MTAsMHhmOSwweDkwLDB4MzYsMHhjMiwweDRmLDB4ZjksMHgyMywweDYyLDB4NDEsMHhhYyB9fSwKLSB7MTYsIDB4Y2NkMCwgMCwgezB4MDEsMHgxMywweDQwLDB4MDQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGNjZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgxMiwweGNiLDB4MDAsMHhmMiwweGMwIH19LAotIHsxNiwgMHhjY2YwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhYywweDA4LDB4ZDksMHgwMCwweDNhLDB4ODAsMHgwZiwweDEyLDB4MDMsMHhhYywweDAwLDB4ZTEsMHgwMCB9fSwKLSB7MTYsIDB4Y2QwMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweGVkLDB4MDIsMHhjOCwweDQwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgxMywweDJjLDB4MDIgfX0sCi0gezE2LCAweGNkMTAsIDAsIHsweGRiLDB4MDAsMHgzZSwweDUwLDB4MGMsMHhiNCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZDIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgxNywweGMwLDB4MDgsMHg5MCwweDAyLDB4M2MsMHgwOCwweDhkLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4Y2QzMCwgMCwgezB4NTQsMHgwOCwweGI0LDB4MDMsMHgzYywweDAwLDB4ODksMHgwMCwweDIzLDB4YzAsMHg0MCwweDM1LDB4MDIsMHhjYywweDI0LDB4ODAgfX0sCi0gezE2LCAweGNkNDAsIDAsIHsweDAwLDB4MjIsMHg3NCwweDRjLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4ZiwweDAwLDB4MmUsMHhkNCwweDBhLDB4YjAsMHgwYSwweDMyIH19LAotIHsxNiwgMHhjZDUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDRjLDB4MDIsMHg4MywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Y2Q2MCwgMCwgezB4MDksMHgwMCwweDAyLDB4OGMsMHgwMSwweDkwLDB4MDAsMHg2YSwweDQxLDB4MGEsMHgzMCwweDIwLDB4NGUsMHgxMCwweDMxLDB4MDIgfX0sCi0gezE2LCAweGNkNzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDIwLDB4MDYsMHhjZSwweDAwLDB4ODAsMHgwMCwweDYwLDB4ZTAsMHgwYSwweDMwLDB4ODIsMHgwYywweDA4IH19LAotIHsxNiwgMHhjZDgwLCAwLCB7MHg4MywweDA4LDB4MmMsMHhkMCwweDA5LDB4YjAsMHgwMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Q5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHg4NywweGIwLDB4MjAsMHhlYywweDA5LDB4ZTksMHgwMiwweDhlLDB4NTgsMHg5ZCwweGIwLDB4MmIgfX0sCi0gezE2LCAweGNkYTAsIDAsIHsweGE1LDB4NDAsMHg1YiwweDA2LDB4ZGUsMHg0MCwweDk1LDB4OTQsMHgyZCwweGU0LDB4MTksMHg3YiwweDA2LDB4ZGUsMHgwMCwweDg0IH19LAotIHsxNiwgMHhjZGIwLCAwLCB7MHg4MCwweDYwLDB4ZTAsMHgwYSwweDc4LDB4MGEsMHgxNiwweDEwLDB4ODcsMHg4MCwweDJkLDB4NjgsMHgwYiwweDc5LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4Y2RjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4Y2IsMHhhMCwweDI0LDB4ZTAgfX0sCi0gezE2LCAweGNkZDAsIDAsIHsweDBmLDB4MmEsMHgwMywweDhlLDB4MDAsMHhkMiwweGQwLDB4MzgsMHhmYSwweDBmLDB4MTgsMHhjMywweGNlLDB4MjQsMHgzMSwweGIwIH19LAotIHsxNiwgMHhjZGUwLCAwLCB7MHgzYywweGU1LDB4MGMsMHgzYiwweDE3LDB4Y2UsMHgwNCwweGMwLDB4ODIsMHgzOCwweGMyLDB4OWUsMHgxMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4Y2RmMCwgMCwgezB4YzMsMHgwMSwweDNlLDB4YzAsMHgwZCwweDgxLDB4MDMsMHg1MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlMDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZWYsMHgxMCwweDNlLDB4YzIsMHgwZSwweGIxLDB4MjMsMHgyYywweGMxLDB4YWIsMHgwMSwweDM2IH19LAotIHsxNiwgMHhjZTEwLCAwLCB7MHg4MCwweDBmLDB4YjAsMHgyMywweDJkLDB4OTAsMHhlOSwweDg0LDB4NzIsMHhjOCwweDYyLDB4ZjEsMHgxNywweGZjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4Y2UyMCwgMCwgezB4MDAsMHgzYiwweGM0LDB4MWQsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDgsMHgzZiwweGM4LDB4MGUsMHhmMSwweDAzLDB4OTAgfX0sCi0gezE2LCAweGNlMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg4MCwweGZiLDB4YTQsMHgzYSwweGM4IH19LAotIHsxNiwgMHhjZTQwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyYywweDA0LDB4Y2EsMHgwMCwweDMwLDB4NjAsMHgyZCwweDFhLDB4MjcsMHg2YywweDg0LDB4Y2IsMHg2MCB9fSwKLSB7MTYsIDB4Y2U1MCwgMCwgezB4MzIsMHhkMiwweDBjLDB4YTAsMHgxMywweDJkLDB4ODQsMHhjYiwweDAyLDB4M2UsMHhjMCwweDBkLDB4YjgsMHgwMywweGFjLDB4ODAgfX0sCi0gezE2LCAweGNlNjAsIDAsIHsweGNiLDB4ODEsMHgzMiwweDgwLDB4MGMsMHhiMCwweDAzLDB4YWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHhhNCwweGI3LDB4MjgsMHg3MywweGMyLDB4MDgsMHhmMCwweDAyLDB4M2MsMHhjMCwweDhmLDB4MDAsMHgzMSB9fSwKLSB7MTYsIDB4Y2U4MCwgMCwgezB4YzAsMHgwOSwweDcwLDB4ODIsMHg5YywweDgwLDB4ODcsMHgwYywweDIwLDB4ZDgsMHgwOSwweDcwLDB4MjIsMHgxYywweDMwLDB4ODQgfX0sCi0gezE2LCAweGNlOTAsIDAsIHsweDAwLDB4M2QsMHhjMCwweDA4LDB4NzAsMHgwMiwweDE0LDB4MjQsMHg4NywweGEwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgxMiwweDEyIH19LAotIHsxNiwgMHhjZWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHhiMywweDk1LDB4MjksMHhlOSB9fSwKLSB7MTYsIDB4Y2ViMCwgMCwgezB4MGEsMHg2OCwweDAyLDB4OWUsMHhkMCwweDg2LDB4ZjAsMHhhMywweGUwLDB4MDgsMHg3OCwweDEyLDB4OWUsMHg0NCwweGEzLDB4ODIgfX0sCi0gezE2LCAweGNlYzAsIDAsIHsweDIxLDB4ZTgsMHgwYiwweDM4LDB4MDIsMHgwZSwweDEwLDB4ODcsMHg4MCwweDJmLDB4ZTAsMHgwYiwweDE4LDB4MDIsMHg4ZSwweDAyIH19LAotIHsxNiwgMHhjZWQwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2VlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDQ4LDB4MzAsMHgwMiwweDBjLDB4MDQsMHg4MywweDgwLDB4MjAgfX0sCi0gezE2LCAweGNlZjAsIDAsIHsweGQwLDB4MDksMHgxMCwweDAyLDB4OGMsMHgwNiwweGEzLDB4ODAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgwIH19LAotIHsxNiwgMHhjZjAwLCAwLCB7MHg0MCwweDI4LDB4ZDIsMHgwYSwweDMwLDB4MDIsMHgwYywweDAxLDB4ODMsMHgwMCwweDIyLDB4M2MsMHgwOCwweDg3LDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4Y2YxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDE4LDB4ZmEsMHgwMCwweDNhLDB4ODAgfX0sCi0gezE2LCAweGNmMjAsIDAsIHsweDhlLDB4ZTQsMHg0MiwweDI4LDB4MDIsMHhjZSwweDgwLDB4MzMsMHg4MCwweDRkLDB4YTAsMHg4MywweGU4LDB4MDAsMHhlYSwweGEwIH19LAotIHsxNiwgMHhjZjMwLCAwLCB7MHhiMiwweDgwLDB4MGEsMHhhMCwweDBhLDB4MjgsMHgwMCwweGNlLDB4MTgsMHgyZiwweDgwLDB4MGYsMHhhMCwweDEzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y0MCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4OTAsMHgyYywweGFjLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwNCwweDNhLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhjMCwweDA4LDB4ZTgsMHgwMywweDNhIH19LAotIHsxNiwgMHhjZjYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgyMiwweGMwLDB4MDAsMHhkMCwweDAwLDB4N2UsMHgxMCwweGE0LDB4ODAsMHgwMywweGMwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4Y2Y3MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4MGQsMHg4NCwweDAzLDB4YzAsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwLDB4MGYsMHg4MCwweDAxLDB4NTIgfX0sCi0gezE2LCAweGNmODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMiwweGM5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhjZjkwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAyLDB4ODksMHgwNCwweDMyLDB4NDIsMHgwZCwweDkyLDB4MDMsMHhlNiwweDQyLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4Y2ZhMCwgMCwgezB4MzIsMHg3MCwweDBlLDB4MTIsMHgwYiwweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0NSwweDBlLDB4OTksMHgwMywweGU0LDB4MDIgfX0sCi0gezE2LCAweGNmYjAsIDAsIHsweGMxLDB4MDAsMHgzMiwweDUwLDB4MDQsMHg5NCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZmMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4Y2ZkMCwgMCwgezB4NTQsMHgwYiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGNmZTAsIDAsIHsweDAwLDB4MzgsMHg0OCwweDA4LDB4OTAsMHg4MiwweGU0LDB4MDQsMHhkOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjZmYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDAxLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgxMCwweDQyLDB4NjQsMHgwMCwweGExLDB4MDQsMHgyMiwweDUwLDB4MDEsMHg5MCwweDQyLDB4ZTQsMHgwMCwweDg5LDB4MDQgfX0sCi0gezE2LCAweGQwMTAsIDAsIHsweDIwLDB4NDIsMHgwYSwweDkwLDB4NDIsMHgzNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDAsMHgwYSwweDkwLDB4MDAsMHhlNCwweDAwIH19LAotIHsxNiwgMHhkMDIwLCAwLCB7MHg4OSwweDAwLDB4MjMsMHg0MCwweDBhLDB4ZDAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDAzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDI0LDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhhMSwweDIwLDB4MjggfX0sCi0gezE2LCAweGQwNDAsIDAsIHsweDQwLDB4MGIsMHgxMCwweDAyLDB4ODUsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MDgsMHg1MCwweDYyLDB4MTQsMHgwMiwweDgxIH19LAotIHsxNiwgMHhkMDUwLCAwLCB7MHgwMywweDJlLDB4NDAsMHg4OCwweDE2LDB4ODIsMHhjNCwweGEwLDB4OTEsMHgyOCwweDIxLDB4NDAsMHgyYSwweDUwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZDA2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHg1MCwweDJlLDB4MTQgfX0sCi0gezE2LCAweGQwNzAsIDAsIHsweDBjLDB4ODUsMHgwMywweDYxLDB4NDAsMHhlOCwweDUwLDB4YjIsMHgxNSwweDRkLDB4ODAsMHgwMiwweGMwLDB4MDAsMHg0OCwweDUwIH19LAotIHsxNiwgMHhkMDgwLCAwLCB7MHhiMiwweDE1LDB4MWEsMHg4MCwweDEzLDB4MzAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MiwweDAzLDB4ZTAsMHg4MCB9fSwKLSB7MTYsIDB4ZDA5MCwgMCwgezB4YzAsMHgyMCwweDMwLDB4MDAsMHgwZSwweDQwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQ4LDB4ZGQsMHgxMCwweDM3IH19LAotIHsxNiwgMHhkMGIwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwNywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NSwweDBmLDB4OTQsMHgwMywweGU1LDB4MDgsMHhmZCB9fSwKLSB7MTYsIDB4ZDBjMCwgMCwgezB4MDIsMHgzOSwweGQwLDB4MGYsMHhkMCwweDQzLDB4ZjQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRiLDB4MGQsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGQwZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg4MCwweGM5LDB4YTYsMHgzMiwweDY4IH19LAotIHsxNiwgMHhkMGUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhNiwweDgxLDB4ZTksMHhlOSwweDNiLDB4NDAsMHgwZSwweDU4LDB4MDMsMHgzNiwweDIwLDB4YzksMHhhMCB9fSwKLSB7MTYsIDB4ZDBmMCwgMCwgezB4MzcsMHg3OCwweDBkLDB4ZGEsMHgwMywweDM2LDB4MjYsMHhjNSwweDAwLDB4MzcsMHg2OSwweDBlLDB4ZGUsMHgwMywweGE2LDB4ODIgfX0sCi0gezE2LCAweGQxMDAsIDAsIHsweGNkLDB4YzAsMHgzMywweDUwLDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhhNCwweDg4LDB4YTksMHgyMiwweDNhLDB4MDgsMHgwOCwweDAwLDB4MjIsMHhhMCwweGI4LDB4ZTUsMHgzMCB9fSwKLSB7MTYsIDB4ZDEyMCwgMCwgezB4MjAsMHgyOCwweDgwLDB4MjIsMHg0MywweGEwLDB4MDgsMHhlOCwweDJhLDB4M2QsMHgwOCwweGE0LDB4NjIsMHgyMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGQxMzAsIDAsIHsweDAwLDB4MmUsMHgxMCwweDA4LDB4OGUsMHgwMywweDIzLDB4YTAsMHg4OCwweGEwLDB4MjAsMHgyOCwweDBiLDB4OGEsMHg4MiwweDBlIH19LAotIHsxNiwgMHhkMTQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDQwLDB4MjAsMHg0NCB9fSwKLSB7MTYsIDB4ZDE1MCwgMCwgezB4MDgsMHg5MCwweGEyLDB4ODUsMHgxMCwweGExLDB4MjAsMHgyYywweDQyLDB4MGIsMHgxNCwweDEyLDB4OGMsMHgwMSwweDkxLDB4MTAgfX0sCi0gezE2LCAweGQxNjAsIDAsIHsweDJjLDB4NDgsMHgwOSwweDExLDB4MGEsMHhjNCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NTAsMHgwYiwweDExLDB4MTIsMHhjNSwweDAxIH19LAotIHsxNiwgMHhkMTcwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0OCwweDBiLDB4MTgsMHgwZSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDE4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0MSwweDA4LDB4OTQsMHg0MiwweDI0LDB4MDAsMHhiMSwweDQwLDB4MjAgfX0sCi0gezE2LCAweGQxOTAsIDAsIHsweDQwLDB4NDksMHhiMiwweDYyLDB4MjQsMHgwMCwweDk5LDB4MDAsMHgwYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTUsMHg4MCwweDg5IH19LAotIHsxNiwgMHhkMWEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyNCwweDgwLDB4YjksMHgwMCwweDI2LDB4NTAsMHg0YiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZDFiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAyLDB4ZDksMHgwMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGQxYzAsIDAsIHsweDJjLDB4OTUsMHgxMywweGE0LDB4MTAsMHhlOSwweDAwLDB4YmUsMHg2MCwweDhmLDB4OTAsMHgwYiwweGE0LDB4MTAsMHg1OSwweDAwIH19LAotIHsxNiwgMHhkMWQwLCAwLCB7MHgxZSwweDQwLDB4OWQsMHg5NCwweDIzLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwOCB9fSwKLSB7MTYsIDB4ZDFlMCwgMCwgezB4NzksMHgwMCwweGI2LDB4NDAsMHgwNywweDk4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxZjAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAwLDB4ZTksMHgwMiwweDNjLDB4NDAsMHgyZiwweDk4LDB4MDIsMHhlNCwweDAwLDB4ZjksMHg0MiwweDNhIH19LAotIHsxNiwgMHhkMjAwLCAwLCB7MHg2OCwweDBhLDB4MTAsMHgwMywweGU0LDB4MTAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwZiwweDI2LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZDIxMCwgMCwgezB4MDQsMHgzZSwweDQwLDB4MGUsMHgxYywweDAzLDB4ZTYsMHgwMCwweGMxLDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5OSwweDgzLDB4Y2EgfX0sCi0gezE2LCAweGQyMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGU4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhkMjMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHgyMCwweDAwLDB4ZDgsMHg0MiwweDMyLDB4MDQsMHgwYywweDg4LDB4MTMsMHhlMCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4ZDI0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDQsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBlLDB4ODAsMHgyMywweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyNTAsIDAsIHsweGM4LDB4ODAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAxLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMjYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgxMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MjgsMHgyMCwweDIyLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4ZDI3MCwgMCwgezB4YjAsMHg4OCwweGUwLDB4MDIsMHgyOCwweDEwLDB4ZGEsMHgwMCwweGEzLDB4YjQsMHgwOCwweGU4LDB4MTAsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweGQyODAsIDAsIHsweDIwLDB4MjMsMHhhMCwweDQ4LDB4ZWQsMHgxYSwweDI4LDB4MDAsMHhkZSwweDAwLDB4MjMsMHg5MCwweDBhLDB4ZTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHhkMjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4ZDJhMCwgMCwgezB4MDgsMHgzMCwweDBhLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGMyLDB4MmEsMHgzMCwweDIyLDB4YTQsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGQyYjAsIDAsIHsweDA4LDB4ZTAsMHgxOCwweDA5LDB4MGEsMHg0YywweDAwLDB4OTMsMHgwMiwweDI0LDB4ZTgsMHgwMiwweDA4LDB4MDYsMHg0YywweDAwIH19LAotIHsxNiwgMHhkMmMwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhkOCwweDBhLDB4OTAsMHgwMiwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDJkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4ODAsMHg4NywweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBlLDB4MDAsMHg4NywweDEwLDB4MjUgfX0sCi0gezE2LCAweGQyZTAsIDAsIHsweDAwLDB4MGEsMHg2MCwweDAyLDB4NWUsMHgwMCwweDk3LDB4MDAsMHgyOSwweDgyLDB4MDgsMHg1MCwweDEyLDB4NTQsMHgwMCwweDhmIH19LAotIHsxNiwgMHhkMmYwLCAwLCB7MHg4MCwweDYxLDB4ZDAsMHgwOCwweDA0LDB4MDIsMHg1YywweDAxLDB4YjcsMHgwOCwweGE5LDB4YTAsMHgwYSwweDUwLDB4ODIsMHg2OCB9fSwKLSB7MTYsIDB4ZDMwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDgwLDB4ZTcsMHg4MCwweDM4LDB4ZTQgfX0sCi0gezE2LCAweGQzMTAsIDAsIHsweDA4LDB4N2UsMHgwMywweDFmLDB4MDAsMHhkZiwweDgwLDB4YjEsMHgyMSwweDFlLDB4NzgsMHgwMywweGRjLDB4MDQsMHhmMywweDgwIH19LAotIHsxNiwgMHhkMzIwLCAwLCB7MHg1YiwweGUxLDB4MDgsMHgyOCwweDAzLDB4NWUsMHgwMCwweGQ3LDB4ODAsMHgzNSwweDYwLDB4MGUsMHg2OCwweDAzLDB4NGUsMHgwMCB9fSwKLSB7MTYsIDB4ZDMzMCwgMCwgezB4ZGYsMHg4MCwweDMxLDB4ZTAsMHgwZSwweGY4LDB4MGIsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzNDAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDAyLDB4ZmIsMHg3NCwweDNlLDB4ZDAsMHg0ZiwweGIyLDB4ODMsMHhlZCwweDAwLDB4N2IsMHg2OCwweDNhIH19LAotIHsxNiwgMHhkMzUwLCAwLCB7MHgwMCwweDhkLDB4ODAsMHgwMywweGE0LDB4MjAsMHhkYiwweDAxLDB4MzYsMHg4MCwweDZmLDB4YjAsMHg0MSwweDg0LDB4MDAsMHhlYiB9fSwKLSB7MTYsIDB4ZDM2MCwgMCwgezB4MDAsMHgzYywweGMwLDB4MGYsMHhlNiwweDgzLDB4YmMsMHg0MCwweGRiLDB4MDAsMHhiNiwweDgwLDB4MGYsMHhiMCwweDAzLDB4ODIgfX0sCi0gezE2LCAweGQzNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgyMCwweGRmLDB4YzAsMHgzYiwweGU2IH19LAotIHsxNiwgMHhkMzgwLCAwLCB7MHgwZSwweGY4LDB4MTMsMHhmZiwweDQ0LDB4YzcsMHg4MiwweDNiLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhiZSwweDEwLDB4Y2YsMHhjOCB9fSwKLSB7MTYsIDB4ZDM5MCwgMCwgezB4MzMsMHg2MCwweDhkLDB4ZWIsMHgwMywweDNlLDB4MDAsMHhkYiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZDgsMHgwMywweDNlLDB4NDAgfX0sCi0gezE2LCAweGQzYTAsIDAsIHsweGNlLDB4ODAsMHgzMywweGU0LDB4MGYsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkM2IwLCAwLCB7MHhhOCwweDExLDB4YmMsMHg0MCwweDg3LDB4MDAsMHgyMSwweGU0LDB4MGIsMHg3OCwweGEyLDB4Y2UsMHg5MCwweGM3LDB4YjAsMHgyMCB9fSwKLSB7MTYsIDB4ZDNjMCwgMCwgezB4ZTgsMHgwYiwweDI4LDB4OTIsMHhiNiwweDg4LDB4ODcsMHhhMCwweDIwLDB4NjQsMHgwYiwweDM1LDB4MDMsMHgxNCwweDAwLDB4ODcgfX0sCi0gezE2LCAweGQzZDAsIDAsIHsweGIyLDB4MzksMHhjMCwweDJjLDB4YzAsMHgwMywweDVlLDB4MDIsMHhjZiwweDAwLDB4MzEsMHhjZSwweDBiLDB4NzYsMHgxMiwweDJhIH19LAotIHsxNiwgMHhkM2UwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhMywweDEwLDB4MjksMHhjOCB9fSwKLSB7MTYsIDB4ZDNmMCwgMCwgezB4MGIsMHg3NCwweDAyLDB4ZGMsMHg4MCwweDhmLDB4MDAsMHgyOSwweGNjLDB4MGEsMHgzMCwweDA2LDB4MTQsMHg4MCwweDg3LDB4MTAgfX0sCi0gezE2LCAweGQ0MDAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDY2LDB4MDIsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDUxLDB4MDIsMHgxYywweDgwIH19LAotIHsxNiwgMHhkNDEwLCAwLCB7MHg5NiwweDAwLDB4MjEsMHhjMCwweDViLDB4NzQsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhhMywweDAwLDB4MjAsMHhjMCwweDBiLDB4YjgsMHgwMiwweGNjLDB4MDAsMHg4YiwweDQwLDB4YTggfX0sCi0gezE2LCAweGQ0MzAsIDAsIHsweGMwLDB4OGIsMHgwOCwweDIyLDB4OGMsMHgwMiwweDgzLDB4MDAsMHg2MCwweGMwLDB4MGIsMHgzMCwweDQyLDB4MDQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhkNDQwLCAwLCB7MHg0MCwweDI4LDB4ZmMsMHg4YSwweDAwLDB4MDIsMHg2ZSwweDAwLDB4ODMsMHgwMCwweGEwLDB4ZDAsMHg4YiwweDM4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZDQ1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzAgfX0sCi0gezE2LCAweGQ0NjAsIDAsIHsweDRmLDB4ZjgsMHgwMiwweGZjLDB4MDIsMHhjZiwweDAwLDB4MzgsMHgxMiwweDBlLDB4OTgsMHgwMiwweDJjLDB4MDAsMHhjZiwweDAwIH19LAotIHsxNiwgMHhkNDcwLCAwLCB7MHgzMiwweGMwLDB4MDksMHg5MCwweDAzLDB4NjQsMHgwMiwweDgxLDB4YzAsMHgzZSwweGQwLDB4MGYsMHg5MCwweDA3LDB4M2MsMHgwMyB9fSwKLSB7MTYsIDB4ZDQ4MCwgMCwgezB4ZDksMHgwMCwweDMyLDB4NjAsMHgwZiwweDg4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0OTAsIDAsIHsweDgwLDB4MDAsMHhjYywweDAwLDB4ZGIsMHgwMCwweDNlLDB4YzAsMHg4ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMiwweDM2IH19LAotIHsxNiwgMHhkNGEwLCAwLCB7MHhjMCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDAwLDB4YmUsMHg5MCwweDBmLDB4OWMsMHgxMywweGVjLDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ZDRiMCwgMCwgezB4MTgsMHgzYSwweGQwLDB4MDQsMHhkNSwweDAzLDB4ZWMsMHg0MCwweGU5LDB4MDAsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGQ0YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGNmLDB4MDAsMHgzZCwweGMxIH19LAotIHsxNiwgMHhkNGQwLCAwLCB7MHg4YywweGYwLDB4MDMsMHgyYywweDAwLDB4ZWYsMHgwYSwweGIzLDB4MTIsMHgyYywweDcwLDB4MjMsMHgxNCwweDBhLDB4NGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDRlMCwgMCwgezB4MzUsMHg2MCwweDBkLDB4YjAsMHgwMywweDA0LDB4MDAsMHhjZCwweDgwLDB4MDcsMHhlOCwweDBjLDB4YzQsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGQ0ZjAsIDAsIHsweGNkLDB4MDAsMHgzMSwweGUyLDB4MmMsMHhlMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMiwweGFiLDB4MDIsMHgyZSwweGMwLDB4MGUsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgzMiB9fSwKLSB7MTYsIDB4ZDUxMCwgMCwgezB4MzAsMHgwMCwweDljLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwNCwweDIyLDB4MzYsMHgwOCwweDM0LDB4NGEsMHgyYywweDA4LDB4ODkgfX0sCi0gezE2LCAweGQ1MjAsIDAsIHsweDkwLDB4MjAsMHhiOCwweDBmLDB4ODQsMHgwMCwweGFjLDB4MDIsMHg4OSwweDAwLDB4MzYsMHhhMCwweDA4LDB4YTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkNTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZDU0MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQxLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGQ1NTAsIDAsIHsweDI2LDB4NDAsMHgwYiwweGIwLDB4MDIsMHgyNiwweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHg1OCwweDEwLDB4MTIsMHgyYywweDA0IH19LAotIHsxNiwgMHhkNTYwLCAwLCB7MHg4MiwweDgwLDB4MmEsMHg0OSwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDU3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhMywweDE0LDB4MmMsMHhjOCwweDFhLDB4MzQsMHg4YSwweDBjLDB4ODQsMHg4MywweDQwLDB4MjIgfX0sCi0gezE2LCAweGQ1ODAsIDAsIHsweGM4LDB4MDgsMHgwMywweDYyLDB4NGMsMHhjMCwweGEzLDB4NjAsMHgyMCwweDQwLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhkNTkwLCAwLCB7MHg0NSwweDA4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHg4YywweGEwLDB4ODMsMHgwMCwweDI2LDB4NDAsMHgwOCwweDMwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4ZDVhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4Y2YsMHg0MCwweDJmLDB4ZDIgfX0sCi0gezE2LCAweGQ1YjAsIDAsIHsweDhjLDB4ZjYsMHgwMywweDNjLDB4MjIsMHhjZiwweDQwLDB4MzIsMHhkNiwweDRjLDB4YTYsMHhjMSwweDNkLDB4YTAsMHg4NywweDQ4IH19LAotIHsxNiwgMHhkNWMwLCAwLCB7MHgzNiwweDBkLDB4MGYsMHhiMSwweDAyLDB4MjQsMHg0MiwweGNiLDB4NjAsMHgxNiwweGMwLDB4MGMsMHhkMCwweDAzLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4ZDVkMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1ZTAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmYsMHgyMCwweDNlLDB4Y2EsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZGIsMHgzNCwweDNhIH19LAotIHsxNiwgMHhkNWYwLCAwLCB7MHhjOCwweDBmLDB4ODAsMHgwMywweGU0LDB4MTAsMHhkYiwweDIxLDB4M2UsMHgxOCwweDBkLDB4ZjIsMHgwMywweGZjLDB4ODAsMHhmZiB9fSwKLSB7MTYsIDB4ZDYwMCwgMCwgezB4MzAsMHgzNSwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGQ2MTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4ZmMsMHgwMCwweGZiLDB4MGIsMHgyZiwweGNhIH19LAotIHsxNiwgMHhkNjIwLCAwLCB7MHg4ZCwweGYyLDB4MDMsMHhmYSwweDAwLDB4OTYsMHg4MCwweDNiLDB4YzQsMHgwZCwweGYxLDB4MDMsMHg3YywweDgwLDB4ZWMsMHg4MCB9fSwKLSB7MTYsIDB4ZDYzMCwgMCwgezB4M2IsMHgwOCwweDBjLDB4YzIsMHgwMywweDc0LDB4MDIsMHhjYywweDgwLDB4M2YsMHg0OCwweDBlLDB4ZjAsMHgwMywweDMwLDB4YTAgfX0sCi0gezE2LCAweGQ2NDAsIDAsIHsweGQ1LDB4ODAsMHgzZiwweDQwLDB4MGMsMHhmOCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjUwLCAwLCB7MHg4MCwweDA4LDB4ZWUsMHg0MCwweGJmLDB4ODAsMHgyZiwweGYwLDB4MGIsMHhmNywweDIyLDB4ZWUsMHgyMCwweDhhLDB4ODAsMHgyMyB9fSwKLSB7MTYsIDB4ZDY2MCwgMCwgezB4ZmMsMHg4OCwweDc1LDB4MTIsMHgzZCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MDAsMHgyOCwweDgwLDB4MDIsMHgyNCwweDA4LDB4ODggfX0sCi0gezE2LCAweGQ2NzAsIDAsIHsweDAwLDB4NmYsMHg1MCwweDAwLDB4ZjUsMHgwMiwweDI5LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg1NCwweDBkLDB4OTAsMHgxMSwweGEwIH19LAotIHsxNiwgMHhkNjgwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMSB9fSwKLSB7MTYsIDB4ZDY5MCwgMCwgezB4MDksMHgzMCwweDgyLDB4Y2MsMHg4MiwweGJiLDB4MDAsMHgyOCwweGMwLDB4NDksMHgzMiwweDAyLDB4Y2QsMHgwMCwweGI4LDB4MDAgfX0sCi0gezE2LCAweGQ2YTAsIDAsIHsweDJjLDB4NTAsMHgwOSwweDAxLDB4MDIsMHgwYywweDQwLDB4ODAsMHgwMCwweDZjLDB4NDQsMHgwOSwweDMwLDB4MDIsMHgyMCwweDAwIH19LAotIHsxNiwgMHhkNmIwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDE4LDB4MzAsMHgwNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDZjMCwgMCwgezB4YzAsMHgwMSwweGFjLDB4MDAsMHhiYiwweDAxLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGVlLDB4MDAsMHhhYSwweDAwLDB4NGEgfX0sCi0gezE2LCAweGQ2ZDAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDUyLDB4ZWMsMHgwMCwweDk4LDB4MDIsMHgyNiwweDQwLDB4MDksMHg4MCwweDAyLDB4NmMsMHgwMSwweGFhIH19LAotIHsxNiwgMHhkNmUwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyMiwweDAwLDB4YTksMHg4MCwweDJlLDB4NDEsMHgwOSwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZDZmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGQ3MDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGNlLDB4ODQsMHhmYSwweDAwLDB4MWEsMHhjMCwweDhkLDB4YjAsMHg0MywweGVjLDB4MDAsMHhmMCwweDAyIH19LAotIHsxNiwgMHhkNzEwLCAwLCB7MHgzZiwweDAwLDB4MGQsMHhkMSwweDAzLDB4MzUsMHgwMCwweGNiLDB4NDgsMHgyZSwweDQwLDB4MmYsMHhiMCwweDA5LDB4MjIsMHg4MCB9fSwKLSB7MTYsIDB4ZDcyMCwgMCwgezB4ZjksMHhjOCwweDFlLDB4ZTAsMHgwOCwweGIxLDB4ZTIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3MzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4N2IsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGUsMHgwMCwweDI0IH19LAotIHsxNiwgMHhkNzQwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhlYywweDIwLDB4M2IsMHgwMCwweDBlLDB4OTgsMHgwMywweDk0LDB4MDIsMHhkZCB9fSwKLSB7MTYsIDB4ZDc1MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4NGUsMHhmMCwweDAxLDB4ZjgsMHgwMCwweGRkLDB4MDAsMHgzYywweGU0LDB4MGYsMHhkOCwweDAzLDB4YjggfX0sCi0gezE2LCAweGQ3NjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4YWMsMHhjMCwweGZiLDB4MjAsMHgzMiwweGM4IH19LAotIHsxNiwgMHhkNzcwLCAwLCB7MHg4ZCwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNhLDB4YzIsMHgyYywweDMwLDB4MDMsMHg2YywweDA0LDB4ZDgsMHgwMiB9fSwKLSB7MTYsIDB4ZDc4MCwgMCwgezB4M2MsMHg0NCwweDhkLDB4MTAsMHgwMywweGFkLDB4MDMsMHhlYSwweDAwLDB4M2MsMHg0MCwweDBjLDB4NzAsMHgyMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGQ3OTAsIDAsIHsweGM4LDB4NDAsMHgzYSwweGMwLDB4MGQsMHhiYywweDAzLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2EwLCAwLCB7MHhjOCwweDAxLDB4M2QsMHgwMCwweGJmLDB4NDIsMHgyMywweGYwLDB4MGQsMHhmMCwweDAyLDB4ZTUsMHgwMCwweGUyLDB4MDEsMHgzNyB9fSwKLSB7MTYsIDB4ZDdiMCwgMCwgezB4ZjEsMHgwOCwweGYwLDB4MGUsMHgzZCwweGMwLDB4YTgsMHgwMCwweDJlLDB4NTQsMHgyOCwweDkwLDB4MDIsMHgyYywweDAwLDB4OGEgfX0sCi0gezE2LCAweGQ3YzAsIDAsIHsweDA1LDB4M2IsMHg0MSwweDQ4LDB4ZjUsMHgwMywweDhjLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhkNCwweDBlLDB4OTUsMHgwMiwweGYyIH19LAotIHsxNiwgMHhkN2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDA0LDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4ZDdlMCwgMCwgezB4ODksMHgzMCwweDAyLDB4Y2MsMHg0MCwweGIyLDB4MDAsMHgyYywweGM0LDB4NDgsMHgzMCwweDAyLDB4MmMsMHgwMiwweGEyLDB4MDAgfX0sCi0gezE2LCAweGQ3ZjAsIDAsIHsweDJjLDB4MjAsMHgxOSwweDIwLDB4MWEsMHg4MCwweDA4LDB4YjAsMHgwMCwweDZjLDB4NDAsMHgwOCwweDMwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHhkODAwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDgxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweGEwLDB4ZTEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRmLDB4MDQsMHhhZSwweDgwLDB4MmQgfX0sCi0gezE2LCAweGQ4MjAsIDAsIHsweGUwLDB4MDgsMHg3OSwweDAyLDB4MWUsMHgxMCwweDg3LDB4OTAsMHgyYywweDI4LDB4MjksMHg2OCwweDAyLDB4ODIsMHg4MSwweGI0IH19LAotIHsxNiwgMHhkODMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgwOCwweDc4LDB4MTAsMHhiYywweDAwLDB4OGYsMHg4MCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZDg0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDA1LDB4ZjMsMHg5MiwweDMwLDB4Y2EgfX0sCi0gezE2LCAweGQ4NTAsIDAsIHsweDBkLDB4MzAsMHgwMywweGNjLDB4MDAsMHhmMywweDAwLDB4M2MsMHhjMCwweDBjLDB4MzAsMHgwMiwweDBjLDB4ODAsMHg3MCwweDAwIH19LAotIHsxNiwgMHhkODYwLCAwLCB7MHgyYywweDQwLDB4MGQsMHgyMCwweDAzLDB4ODksMHgwMCwweGIxLDB4MDAsMHgzZSwweDQwLDB4MmMsMHgzMCwweDAzLDB4ZWMsMHg1MCB9fSwKLSB7MTYsIDB4ZDg3MCwgMCwgezB4YzMsMHgyMCwweDNjLDB4NDAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4ODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNjLDB4YzAsMHgwZSwweGIwLDB4ODMsMHhlYywweDQwLDB4ZWEsMHgwMCwweDM2IH19LAotIHsxNiwgMHhkODkwLCAwLCB7MHhjMiwweDBmLDB4YjAsMHg4MywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHg0OCwweDBlLDB4ZTAsMHgwYiwweDdhLDB4ODAsMHhjZiB9fSwKLSB7MTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgzYiwweDQ0LDB4MGYsMHhmMCwweDAzLDB4ZWMsMHhjMCwweGZmLDB4MDAsMHgwMywweDQ0LDB4MGUsMHhlMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGQ4YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MjMsMHgzZSwweGM4IH19LAotIHsxNiwgMHhkOGMwLCAwLCB7MHgxZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4Y2EsMHgwMCwweDNlLDB4YzgsMHgwYywweGIyLDB4MDMsMHgyZCwweDkwLDB4YzgsMHg4NCB9fSwKLSB7MTYsIDB4ZDhkMCwgMCwgezB4MzYsMHgwMCwweDJkLDB4YjAsMHgwMywweDYwLDB4MTgsMHg5YiwweDgwLDB4MzMsMHg1MCwweDBjLDB4ZjIsMHgwMywweGUyLDB4MDAgfX0sCi0gezE2LCAweGQ4ZTAsIDAsIHsweGM5LDB4ODAsMHgzMiwweDQwLDB4MGMsMHhiOCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOGYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MjgsMHgwYywweGQyLDB4MjgsMHg3MywweDAyLDB4ZmMsMHgwMCwweDg2LDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4ZDkwMCwgMCwgezB4Y2MsMHgyOCwweDcwLDB4ODMsMHgwYywweDIwLDB4OTUsMHgwMSwweDIwLDB4MDAsMHgwOSwweDMwLDB4MTIsMHgxMCwweDA0LDB4ODUgfX0sCi0gezE2LCAweGQ5MTAsIDAsIHsweDAwLDB4MjEsMHg1MiwweDA4LDB4NzUsMHgwMiwweGQ4LDB4MDAsMHg4NywweDAwLDB4MjEsMHg0MCwweDA4LDB4NjAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhkOTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ZDQsMHhiNywweGIxLDB4MDksMHhlMSB9fSwKLSB7MTYsIDB4ZDkzMCwgMCwgezB4MDgsMHg3OCwweDIyLDB4ZGUsMHgwMCwweDk1LDB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OCwweDBhLDB4NWUsMHg0MiwweDk0LDB4YzAgfX0sCi0gezE2LCAweGQ5NDAsIDAsIHsweDIxLDB4NjAsMHgwOCwweDc4LDB4MDIsMHg1YSwweDAwLDB4ODcsMHg4MCwweDJkLDB4NjgsMHgwOCwweDdhLDB4MDIsMHhkNywweDAwIH19LAotIHsxNiwgMHhkOTUwLCAwLCB7MHg5NywweDgwLDB4MjAsMHg2MCwweDA5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDk2MCwgMCwgezB4NDgsMHgxMCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGNkLDB4ODAsMHg5MiwweDAwLDB4MmMgfX0sCi0gezE2LCAweGQ5NzAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4ODAsMHhhMCwweDQwLDB4MDksMHgzNiwweDAyLDB4NDgsMHgwMiwweDgzIH19LAotIHsxNiwgMHhkOTgwLCAwLCB7MHhhMCwweGFjLDB4NDAsMHgyYSwweDMwLDB4MDYsMHhjZSwweDAyLDB4OTMsMHgwNCwweGEwLDB4NDAsMHgwOSwweDIwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4ZDk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNhLDB4ODAgfX0sCi0gezE2LCAweGQ5YTAsIDAsIHsweDBkLDB4YTAsMHgwMywweGZiLDB4MDIsMHhkZSwweDgwLDB4M2UsMHg4MCwweDBjLDB4YTAsMHgwMywweDI4LDB4MDAsMHhjZSwweDgwIH19LAotIHsxNiwgMHhkOWIwLCAwLCB7MHgzMiwweDgwLDB4MGMsMHhhNCwweDAzLDB4NzgsMHgwMCwweGNlLDB4YTQsMHgzZiwweDgwLDB4MGMsMHhhMCwweDA3LDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZDljMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyZCwweGUwLDB4MDIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5ZDAsIDAsIHsweDQ4LDB4MDAsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDdjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDQwLDB4ZTgsMHgxMCwweDNjIH19LAotIHsxNiwgMHhkOWUwLCAwLCB7MHgwMSwweGNmLDB4ODAsMHgwZiwweDIwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4MDQsMHgwMywweDkwLDB4MDAsMHhlOCB9fSwKLSB7MTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MGQsMHg4MCwweDA3LDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDA0LDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGRhMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHg3ZSwweDQxIH19LAotIHsxNiwgMHhkYTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NjgsMHgwZSwweDkwLDB4MGYsMHhhNCwweDA4LDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZGEyMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI0LDB4MTIsMHhlOSwweDAwLDB4M2UsMHg0NCwweDJjLDB4OTAsMHgwMywweDY0LDB4MjQgfX0sCi0gezE2LCAweGRhMzAsIDAsIHsweGY5LDB4MDIsMHgyZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTQwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgxMCwweGI5LDB4ODAsMHgzZSwweDQwLDB4MDgsMHg5MCwweDBhLDB4MjYsMHgwMCwweGIxLDB4MTAsMHgyYSB9fSwKLSB7MTYsIDB4ZGE1MCwgMCwgezB4NzIsMHgwOCwweDkwLDB4MDcsMHg2NCwweDAyLDB4ODksMHg0MCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MTIsMHgyNSwweDAwLDB4ODkgfX0sCi0gezE2LCAweGRhNjAsIDAsIHsweDQ1LDB4M2UsMHg1MCwweDBkLDB4OTAsMHgwYSwweDI1LDB4MDAsMHhiOSwweDQwLDB4MmUsMHg0MCwweDI4LDB4OTQsMHgwMywweGUwIH19LAotIHsxNiwgMHhkYTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZGE4MCwgMCwgezB4NDgsMHg5MCwweDQyLDB4MjYsMHgwMSwweGI5LDB4NDAsMHgyNiwweDQwLDB4MGEsMHg5MCwweDQyLDB4ODQsMHgwMSwweDhiLDB4MDggfX0sCi0gezE2LCAweGRhOTAsIDAsIHsweDJjLDB4NDAsMHgwOSwweGQwLDB4ODIsMHgzNCwweDMyLDB4YTksMHgwOCwweDZlLDB4NDIsMHgwOCwweDEwLDB4MDIsMHgyNCwweDIwIH19LAotIHsxNiwgMHhkYWEwLCAwLCB7MHhiOSwweDA4LDB4MmMsMHg0MCwweDE4LDB4OTAsMHg4MiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMywweDIwLDB4MjgsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDEsMHhiMSwweDAwLDB4MjggfX0sCi0gezE2LCAweGRhYzAsIDAsIHsweDU4LDB4MDgsMHgxMiwweDAyLDB4MDUsMHg4OSwweDgxLDB4NDAsMHgyYywweDU4LDB4MDgsMHg1NiwweDA2LDB4MTUsMHg4MCwweDgxIH19LAotIHsxNiwgMHhkYWQwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNSwweDgwLDB4YjEsMHg0MCwweDJjLDB4NWEsMHgwOCwweDE0LDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZGFlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGRhZjAsIDAsIHsweDJlLDB4ODUsMHgwMywweDIxLDB4NDgsMHhmOCwweDAwLDB4MzYsMHgwMCwweDhlLDB4MDUsMHgwMiwweGEwLDB4MDgsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkYjAwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDBiLDB4MTAsMHgwNCwweGUwLDB4MDAsMHgyYywweDAwLDB4NGMsMHg4MCwweDAzLDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGIxMCwgMCwgezB4ZjAsMHgwMCwweDNlLDB4MDgsMHgwYywweDAwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHhkYjMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDAzLDB4M2YsMHg0NCwweDFmLDB4OTEsMHgxYiwweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ZGI0MCwgMCwgezB4MDEsMHgzZiwweDUwLDB4MGUsMHg5NCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4YTYgfX0sCi0gezE2LCAweGRiNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjQsMHgwMCwweGNkLDB4YTAsMHg3MSwweDY4IH19LAotIHsxNiwgMHhkYjYwLCAwLCB7MHg4ZCwweDk4LDB4MDMsMHhkNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NjAsMHgwYywweDk4LDB4OGYsMHgyNywweDIwLDB4YzksMHg0MCB9fSwKLSB7MTYsIDB4ZGI3MCwgMCwgezB4M2UsMHg3OCwweDBjLDB4OWUsMHg4YiwweDI3LDB4MjAsMHhkMSwweDExLDB4MzAsMHg2MCwweDhjLDB4OWMsMHgwMywweDI1LDB4MDAgfX0sCi0gezE2LCAweGRiODAsIDAsIHsweGY5LDB4NDAsMHgzZSwweDc4LDB4MGYsMHg5MCwweDAzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYjkwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgxMCwweDg4LDB4MDEsMHgyMiwweDAxLDB4MDgsMHg4YywweDIyLDB4ZTgsMHgwMCwweDg4LDB4MDIsMHgyYSB9fSwKLSB7MTYsIDB4ZGJhMCwgMCwgezB4MTQsMHgwOCwweDhjLDB4MGIsMHgyMywweDkwLDB4ODgsMHhhMCwweDJlLDB4YjAsMHgwOCwweDhjLDB4NDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGRiYjAsIDAsIHsweGEwLDB4MzYsMHgyYSwweDE4LDB4OGEsMHgwMiwweDIyLDB4MDAsMHhiOCwweGEwLDB4MmUsMHgzNCwweDBiLDB4Y2EsMHg4MiwweDBlIH19LAotIHsxNiwgMHhkYmMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDQwLDB4MjQsMHg1MCB9fSwKLSB7MTYsIDB4ZGJkMCwgMCwgezB4MDksMHgxNiwweDgyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMiwweDkyLDB4NTQsMHgwOCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGRiZTAsIDAsIHsweDJmLDB4NGMsMHgwOSwweDUyLDB4MTIsMHgxNCwweDgwLDB4OWQsMHgwMCwweDIxLDB4NTAsMHgwOCwweDU0LDB4MjIsMHgxNCwweDgwIH19LAotIHsxNiwgMHhkYmYwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHg0OCwweDBiLDB4ZDAsMHgwMiwweDQyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGMwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MDIsMHg4OSwweDAxLDB4YTIsMHg0MCwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDIsMHhhOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGRjMTAsIDAsIHsweDQwLDB4NjgsMHg5MCwweDAyLDB4NjQsMHgxMCwweGFkLDB4MDAsMHgyZiwweDQxLDB4MjgsMHg1MCwweDAyLDB4MzQsMHgwMCwweDhkIH19LAotIHsxNiwgMHhkYzIwLCAwLCB7MHg0NCwweDI3LDB4NDAsMHgzOSwweGQwLDB4MDIsMHgzNSwweDAwLDB4YmQsMHgxNCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZGMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhjNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGRjNDAsIDAsIHsweDJkLDB4OTAsMHgwMywweGU3LDB4MDAsMHhlMSwweGUwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwYiwweDY0LDB4MDIsMHhjOSwweDA4IH19LAotIHsxNiwgMHhkYzUwLCAwLCB7MHgzYywweDUwLDB4MGMsMHg5MCwweDAyLDB4MjYsMHgwMiwweGQ5LDB4YzAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDEzLDB4MjcsMHgwMCB9fSwKLSB7MTYsIDB4ZGM2MCwgMCwgezB4ZjksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAyLDB4ZjksMHgwMCwweDM4LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDgwLDB4ZDksMHhhMCwweDNjIH19LAotIHsxNiwgMHhkYzgwLCAwLCB7MHg0MCwweDBmLDB4MTAsMHgwMywweGE0LDB4MDAsMHhkOSwweDEwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4OTIsMHhmOSB9fSwKLSB7MTYsIDB4ZGM5MCwgMCwgezB4MjEsMHgzYywweDQwLDB4MmUsMHg5MCwweDBmLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGRjYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHg0MCwweGU4LDB4MTAsMHgzZSwweDA0IH19LAotIHsxNiwgMHhkY2IwLCAwLCB7MHg0ZSwweDgwLDB4MDMsMHgyMCwweDgwLDB4ZDgsMHg2MCwweDNhLDB4MDIsMHgwYywweDgwLDB4MTMsMHgyMCwweDAwLDB4ZjgsMHg0MCB9fSwKLSB7MTYsIDB4ZGNjMCwgMCwgezB4MzYsMHgxMCwweDJkLDB4ODAsMHgwMywweGEwLDB4MDgsMHhlOCwweDQwLDB4MzIsMHgwMCwweDBkLDB4MDAsMHgwMywweDIxLDB4MDIgfX0sCi0gezE2LCAweGRjZDAsIDAsIHsweGM4LDB4NDAsMHhiMiwweDAwLDB4MGYsMHhjMCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkY2UwLCAwLCB7MHgyOCwweDExLDB4M2IsMHgxMCwweDg2LDB4MDEsMHgyZiwweGEwLDB4MGQsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ZTAsMHgyMyB9fSwKLSB7MTYsIDB4ZGNmMCwgMCwgezB4YTIsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHg4MCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODIgfX0sCi0gezE2LCAweGRkMDAsIDAsIHsweDAwLDB4MmEsMHg4MCwweDI4LDB4YTAsMHgwMiwweDJhLDB4MDQsMHg4YSwweDgwLDB4MjIsMHhhMCwweDBiLDB4NjAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhkZDEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQzLDB4ODAsMHhhMiwweDAwLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4ZGQyMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHgwMCwweDkyLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4ODAgfX0sCi0gezE2LCAweGRkMzAsIDAsIHsweDI0LDB4YzAsMHgwOSwweDMwLDB4MGEsMHg4YywweDAwLDB4YTMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHg0YywweDAwIH19LAotIHsxNiwgMHhkZDQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhlMCwweDBiLDB4MjAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDA5LDB4M2EsMHgwMiwweDM1LDB4MDAsMHg4NiwweDAwLDB4MjEgfX0sCi0gezE2LCAweGRkNjAsIDAsIHsweGMwLDB4MDgsMHg3MywweDAyLDB4MTAsMHgwMCwweGJmLDB4ODgsMHgyMSwweDAwLDB4MDgsMHg3MCwweDAyLDB4MWMsMHgwOCwweDhmIH19LAotIHsxNiwgMHhkZDcwLCAwLCB7MHgwMCwweDJiLDB4YzAsMHgwOCwweDIwLDB4MTIsMHg1ZSwweDIwLDB4ODcsMHg4OCwweDIxLDB4ODMsMHgwYiwweDYwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ZGQ4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZTUsMHg4MSwweDNkLDB4YTAgfX0sCi0gezE2LCAweGRkOTAsIDAsIHsweDJjLDB4N2EsMHgwYiwweDFlLDB4MDAsMHhkNCwweDgwLDB4MzgsMHhlMCwweDBjLDB4ZmEsMHgwYiwweDFlLDB4MDAsMHhmNiwweDgwIH19LAotIHsxNiwgMHhkZGEwLCAwLCB7MHgzNCwweGUwLDB4MGQsMHgyOCwweDAzLDB4OGEsMHgwMCwweGU2LDB4ODAsMHgzMSwweDIwLDB4MGMsMHg3OCwweDAzLDB4N2EsMHgwNCB9fSwKLSB7MTYsIDB4ZGRiMCwgMCwgezB4Y2UsMHg4NCwweDMxLDB4ZTAsMHg0ZiwweDc4LDB4NDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkYzAsIDAsIHsweDA4LDB4MGQsMHg4MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGI1LDB4MjMsMHhlNCwweDAwLDB4ZjAsMHgwNCwweDM2IH19LAotIHsxNiwgMHhkZGQwLCAwLCB7MHg0MCwweDBmLDB4YjYsMHg4NywweGUwLDB4MDAsMHhmMiwweDAwLDB4M2UsMHgwMCwweDFmLDB4YTAsMHgwYiwweGU4LDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHhhMCwweDAzLDB4YTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGRkZjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNjLDB4ODAsMHgzMywweGEwIH19LAotIHsxNiwgMHhkZTAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHgzZSwweDAwLDB4ZmMsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGI5LDB4MjEsMHgzZSwweDAwLDB4ZmQsMHg4MiB9fSwKLSB7MTYsIDB4ZGUxMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHgwMywweDdlLDB4MTAsMHhkZiwweDg0LDB4M2QsMHhlMCwweDBjLDB4ZjgsMHgwMywweGY2LDB4MDAgfX0sCi0gezE2LCAweGRlMjAsIDAsIHsweGZkLDB4ODAsMHgzZiwweDYwLDB4MGMsMHhlOCwweDIzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTMwLCAwLCB7MHhhOCwweDExLDB4OTgsMHg0MCwweDg0LDB4MTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTAsMHg4MCwweGI0LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4ZGU0MCwgMCwgezB4YzgsMHgwYiwweDdhLDB4MDIsMHgxMCwweDAwLDB4ZmQsMHgwMCwweDIxLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDQyLDB4ODcgfX0sCi0gezE2LCAweGRlNTAsIDAsIHsweDAwLDB4MmQsMHhjNCwweDQ4LDB4NjEsMHgwMiwweGQ2LDB4ODAsMHhiNSwweDAwLDB4MmYsMHgwNCwweDA4LDB4NjEsMHg4MiwweDJhIH19LAotIHsxNiwgMHhkZTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4MSwweDAwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGU3MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MWMsMHgxMCwweGJjLDB4MDgsMHgyNSwweDgwLDB4NGIsMHgzMCwweDBlLDB4MWMsMHgwMCwweGI0LDB4MDAgfX0sCi0gezE2LCAweGRlODAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDIwLDB4MDIsMHg1OCwweDAwLDB4OTYsMHgwMCwweDJmLDB4MDAsMHgwYSwweDcwLDB4MDIsMHhkMCwweDgwIH19LAotIHsxNiwgMHhkZTkwLCAwLCB7MHhiNCwweDE4LDB4MmQsMHg0MCwweDA5LDB4ZjgsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGVhMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDIsMHg4MCwweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgyMiwweDBiLDB4YzAsMHhiMCwweGMwLDB4MjIgfX0sCi0gezE2LCAweGRlYjAsIDAsIHsweDgwLDB4MGIsMHgzMCwweDAyLDB4MDAsMHgwMCwweGEwLDB4MDQsMHgyMiwweDAwLDB4MjgsMHhhMCwweDAyLDB4MmIsMHgwMCwweDhhIH19LAotIHsxNiwgMHhkZWMwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweGEwLDB4MDYsMHhjMCwweDAwLDB4YjAsMHhjMiwweDJjLDB4MDAsMHgwOSwweGJjLDB4MWEsMHgwOCB9fSwKLSB7MTYsIDB4ZGVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4YzAgfX0sCi0gezE2LCAweGRlZTAsIDAsIHsweDBjLDB4ZjAsMHgwYiwweDI2LDB4MDAsMHhmOSwweGMwLDB4MzYsMHgwMCwweDBmLDB4ZjAsMHgxMywweDJjLDB4MTAsMHhiYiwweDQwIH19LAotIHsxNiwgMHhkZWYwLCAwLCB7MHhmMiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NjcsMHgwMCwweGQ5LDB4ODAsMHgzZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZGYwMCwgMCwgezB4ZmIsMHhkMCwweDNlLDB4YzAsMHgyOSwweDhjLDB4MDAsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmMTAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0NCwweDNjLDB4ZDAsMHgyZiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlIH19LAotIHsxNiwgMHhkZjIwLCAwLCB7MHg0MCwweDBmLDB4MzAsMHgwMywweGUwLDB4MDAsMHhmYiwweDA4LDB4M2UsMHgwMCwweDBmLDB4OTAsMHgxMywweGU0LDB4NDIsMHhmOSB9fSwKLSB7MTYsIDB4ZGYzMCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWUsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwLDB4MGUsMHg4MiwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGRmNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZTAsMHgwOCwweGZjLDB4ODAsMHgzMiwweGU0IH19LAotIHsxNiwgMHhkZjUwLCAwLCB7MHgwZSwweGYwLDB4MDMsMHg3NCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4NDAsMHgwYywweGYwLDB4MGIsMHgzYywweDAwLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4ZGY2MCwgMCwgezB4M2YsMHhjMCwweDBkLDB4YzEsMHgwMywweDIwLDB4MjAsMHhjYywweDEwLDB4MzMsMHgwMCwweDBjLDB4ZDEsMHgwMywweDU4LDB4MDAgfX0sCi0gezE2LCAweGRmNzAsIDAsIHsweGNlLDB4MDAsMHgyZiwweGMwLDB4MGYsMHhkMSwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjgwLCAwLCB7MHg4MSwweDQ0LDB4NjIsMHgwMCwweGIwLDB4NDAsMHgyYSwweGYxLDB4MDgsMHhiMCwweDEyLDB4MjYsMHgwOCwweGI4LDB4YzgsMHgyZSB9fSwKLSB7MTYsIDB4ZGY5MCwgMCwgezB4NzAsMHgwYSwweGIwLDB4MDIsMHgyMCwweDAwLDB4YmEsMHgwMCwweDJlLDB4MDAsMHgyOCwweDgwLDB4MDMsMHgyMiwweDQwLDB4ODggfX0sCi0gezE2LCAweGRmYTAsIDAsIHsweDAxLDB4MjAsMHgwMCwweDBhLDB4ODAsMHgwMiwweDI4LDB4MDAsMHg4YSwweDAxLDB4MmUsMHg4MCwweDhiLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkZmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI2LDB4MDAsMHhiOCwweDI4LDB4MjIsMHg0MiB9fSwKLSB7MTYsIDB4ZGZjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDMwLDB4ODgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDEgfX0sCi0gezE2LCAweGRmZDAsIDAsIHsweDJlLDB4YzAsMHg4OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDBjIH19LAotIHsxNiwgMHhkZmUwLCAwLCB7MHg4OSwweDAxLDB4MmUsMHg0MCwweDFiLDB4ODAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGZmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjgsMHhjMCwweDI4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MmMgfX0sCi0gezE2LCAweGUwMDAsIDAsIHsweDQwLDB4MGEsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIxLDB4MDAsMHgyYywweDAwLDB4MDgsMHgxMCwweDBhLDB4MDQsMHgwMCwweDgxIH19LAotIHsxNiwgMHhlMDEwLCAwLCB7MHgwMSwweGEyLDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgwMCwweDJjLDB4MDAsMHgxYiwweDAwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4ZTAyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGUwMzAsIDAsIHsweDBlLDB4ZjAsMHgyMywweDY0LDB4MDgsMHhmOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhlMDQwLCAwLCB7MHgzZSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMiwweGM4LDB4MDQsMHgzMiwweDAwLDB4MWMsMHg5MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA1MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4NDEsMHg5ZiwweDkwLDB4NDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwNjAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgwYywweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDEwLDB4ZjQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlMDcwLCAwLCB7MHgwMCwweDBmLDB4ZjQsMHgyMywweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMywweGIwLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZTEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAxLDB4MWYsMHg1MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGUwOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDBkLDB4ZjAsMHhkMCwweGZmLDB4MjAsMHgzZSwweGQwIH19LAotIHsxNiwgMHhlMGEwLCAwLCB7MHg4ZSwweGIwLDB4MDMsMHhlYywweGEwLDB4ZGIsMHgyOCwweDNlLDB4Y2MsMHgwYywweGIzLDB4MDMsMHhhZCwweDA4LDB4ZjgsMHgzYyB9fSwKLSB7MTYsIDB4ZTBiMCwgMCwgezB4MzIsMHgyMywweDBlLDB4NDgsMHgyMywweDdhLDB4MDAsMHhmZCwweDk0LDB4M2YsMHhlMCwweDBmLDB4NzgsMHgzMywweGVlLDB4MDggfX0sCi0gezE2LCAweGUwYzAsIDAsIHsweGJmLDB4ODAsMHgzZiwweGU0LDB4MGYsMHhmOSwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGQwLCAwLCB7MHhhMCwweDAwLDB4ZWMsMHhjOCwweGJmLDB4ZDEsMHgwZiwweGM4LDB4MGMsMHgyNiwweDgyLDB4ZmQsMHgyNCwweDhmLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ZTBlMCwgMCwgezB4OTksMHgwYSwweGYyLDB4NjIsMHgxZCwweGQwLDB4OTksMHg2MSwweDIyLDB4NzEsMHg4OCwweDg4LDB4MDIsMHhhYywweDAwLDB4YjggfX0sCi0gezE2LCAweGUwZjAsIDAsIHsweDIyLDB4MmUsMHgyMCwweDRiLDB4ODgsMHgwMywweGEwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHgwOCwweDBiLDB4ODAsMHgyMywweDYwIH19LAotIHsxNiwgMHhlMTAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDQsMHhiMywweDAzLDB4MGMsMHhjYyB9fSwKLSB7MTYsIDB4ZTExMCwgMCwgezB4MGEsMHgxMywweDEyLDB4Y2MsMHgxNCwweGEzLDB4MGUsMHgwYywweDU4LDB4MGEsMHgzMywweDAyLDB4OGMsMHgxMCwweGEzLDB4MjAgfX0sCi0gezE2LCAweGUxMjAsIDAsIHsweGEwLDB4MGEsMHgxOCwweDkwLDB4MDIsMHg0OCwweGEwLDB4YjAsMHgyMCwweDI0LDB4ODAsMHgwYSwweDIwLDB4MDIsMHhjYywweDA5IH19LAotIHsxNiwgMHhlMTMwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzIsMHg0MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE0MCwgMCwgezB4ZTAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4ODAsMHhhMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4NGUgfX0sCi0gezE2LCAweGUxNTAsIDAsIHsweDQ2LDB4MmEsMHhiMCwweDAyLDB4MmMsMHgwNCwweDliLDB4ODAsMHgyYSwweDYwLDB4OGEsMHg5YywweDAyLDB4YWMsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlMTYwLCAwLCB7MHg4MSwweDJlLDB4NDAsMHgwYiwweDk4LDB4MDIsMHhhMywweDAwLDB4OGEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDgwLDB4MDQsMHhmMCB9fSwKLSB7MTYsIDB4ZTE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMSwweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGUxODAsIDAsIHsweDBlLDB4YjQsMHgwMywweGVjLDB4MGEsMHhkYiwweDAyLDB4MmUsMHhkMSwweDBlLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDgyIH19LAotIHsxNiwgMHhlMTkwLCAwLCB7MHgzMiwweDI4LDB4MWUsMHgwYywweDAzLDB4NjgsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhiMCwweDQzLDB4ZWQsMHgwMCB9fSwKLSB7MTYsIDB4ZTFhMCwgMCwgezB4ZWEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxYjAsIDAsIHsweGMwLDB4MDEsMHhiOCwweDE4LDB4ZmYsMHgwMiwweDFmLDB4YzAsMHgwYywweGUyLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgwMywweDJmIH19LAotIHsxNiwgMHhlMWMwLCAwLCB7MHhhMSwweDBmLDB4NzAsMHgwMywweGZjLDB4MDQsMHhhYiwweDA0LDB4MzcsMHg0MiwweDJkLDB4ZDAsMHgwMiwweDdjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4YjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGUxZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTksMHgwMCwweGRiLDB4MDAsMHgzYywweGMwIH19LAotIHsxNiwgMHhlMWYwLCAwLCB7MHgyZSwweDk0LDB4MDEsMHg2YywweDExLDB4Y2IsMHgwMCwweGI4LDB4YzAsMHgwYywweGIwLDB4MDMsMHg2YywweDAwLDB4ZWIsMHgwMSB9fSwKLSB7MTYsIDB4ZTIwMCwgMCwgezB4MzIsMHgxMCwweDA3LDB4OTIsMHgwMywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwYywweDA3LDB4YTIsMHgwMywweGFkLDB4MDAgfX0sCi0gezE2LCAweGUyMTAsIDAsIHsweGQ4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwOCwweGJmLDB4MDAsMHgyZiwweGMwLDB4ODgsMHg4MCwweDAyLDB4M2MsMHgwOCwweGVmLDB4MDMsMHgyMiB9fSwKLSB7MTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwZCwweGY1LDB4MDAsMHgzYywweDAwLDB4OGIsMHg4MiwweDIyLDB4NjAsMHgwMywweDljLDB4MDIsMHgyYywweDEwLDB4YjkgfX0sCi0gezE2LCAweGUyNDAsIDAsIHsweGIwLDB4MjIsMHhmMCwweDBiLDB4OTAsMHgwMiwweDIwLDB4MDAsMHhiYiwweDAwLDB4MjIsMHhlMiwweDBkLDB4YjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlMjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQwLDB4MDAsMHhiMywweDAyLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ZTI2MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzNCwweDA0LDB4ZWMsMHgwMCwweGE4LDB4MDAgfX0sCi0gezE2LCAweGUyNzAsIDAsIHsweDIyLDB4ZjAsMHgwYiwweDAwLDB4MDIsMHg4OCwweDAwLDB4YjMsMHgwMCwweDI4LDB4ZTAsMHgwYiwweDE0LDB4MDIsMHhhMCwweDAwIH19LAotIHsxNiwgMHhlMjgwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MmQsMHhlOCwweDA4LDB4NzgsMHgwMiwweDBlLDB4YzgsMHhhNywweDkwLDB4MjEgfX0sCi0gezE2LCAweGUyYTAsIDAsIHsweGE4LDB4MTksMHgzOCwweDUyLDB4OWUsMHhjMSwweDg3LDB4ODAsMHgyMSwweGUyLDB4MGIsMHhkOSwweDgyLDB4OWUsMHgwMCwweGI2IH19LAotIHsxNiwgMHhlMmIwLCAwLCB7MHhhMCwweDJkLDB4MjAsMHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4YjQsMHhjMSwweDIxLDB4MjAsMHgwOSwweDQ4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTJjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDgwLDB4YjMsMHgxMCwweDNlLDB4ZTAgfX0sCi0gezE2LCAweGUyZDAsIDAsIHsweDBlLDB4M2EsMHgwNywweDRlLDB4MDAsMHhjYiwweDkwLDB4M2EsMHg2MSwweDBkLDB4MzgsMHgwMywweGNlLDB4ZDEsMHhlMSwweDk4IH19LAotIHsxNiwgMHhlMmUwLCAwLCB7MHgzMCwweGE0LDB4OGYsMHgxMCwweDAzLDB4ODgsMHgwMCwweGJhLDB4YTEsMHgzYywweDg0LDB4MDcsMHgwMCwweDAzLDB4ODIsMHhkNCB9fSwKLSB7MTYsIDB4ZTJmMCwgMCwgezB4ZDEsMHgwMCwweDcyLDB4ODAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzMDAsIDAsIHsweDQwLDB4MTUsMHhiYywweDA0LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMyLDB4MjMsMHhlYywweGIwLDB4ZmYsMHgwMCwweDMyIH19LAotIHsxNiwgMHhlMzEwLCAwLCB7MHgwNCwweDA2LDB4YjQsMHgyMywweDdjLDB4MTAsMHhiZiwweDAwLDB4M2UsMHg4NCwweDBmLDB4YjAsMHgwMywweDdjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgzMywweDQwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDAsMHhiZiwweDQwLDB4MGYsMHhjOCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGUzMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTQsMHgwMCwweGNiLDB4MzMsMHgzZSwweGM4IH19LAotIHsxNiwgMHhlMzQwLCAwLCB7MHg0YywweGIwLDB4MDMsMHhhYywweDkwLDB4ZGIsMHhhMCwweDM2LDB4YzAsMHgwZSwweGJhLDB4NDMsMHg2YywweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZTM1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MDAsMHgwZiwweDI4LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTgsMHg0MywweDYwLDB4MDAgfX0sCi0gezE2LCAweGUzNjAsIDAsIHsweGZhLDB4MDAsMHgzZSwweDQwLDB4NGYsMHgwOCwweDBiLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgxMCwweDA3LDB4MDgsMHgyYywweGNhLDB4MDgsMHgyMCwweDAyLDB4MWMsMHgyMCwweDg3LDB4MjgsMHgzZiB9fSwKLSB7MTYsIDB4ZTM4MCwgMCwgezB4ODAsMHg4YSwweGYwLDB4MDIsMHgxZCwweDQwLDB4ODcsMHgwNCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4YjYgfX0sCi0gezE2LCAweGUzOTAsIDAsIHsweDAwLDB4MmQsMHg4MCwweDBiLDB4NjAsMHgwMywweDFjLDB4MDAsMHhiNSwweDAwLDB4MmQsMHg4MCwweDBiLDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlM2EwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweGEwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4ZTNiMCwgMCwgezB4MGEsMHg1OCwweDAyLDB4MWUsMHgwMSwweDgzLDB4OTAsMHgyMSwweDcwLDB4MGIsMHg3OSwweDAyLDB4OWUsMHgwMSwweDg1LDB4YzAgfX0sCi0gezE2LCAweGUzYzAsIDAsIHsweDJkLDB4ZTAsMHg0YiwweDU4LDB4MTIsMHgxYSwweDAwLDB4YjYsMHg4MCwweDJkLDB4MjAsMHgwYiwweDQ4LDB4MDIsMHg1MiwweDAwIH19LAotIHsxNiwgMHhlM2QwLCAwLCB7MHhiNCwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDg4LDB4MzYsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwLDB4NmMgfX0sCi0gezE2LCAweGUzZjAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDBhLDB4YWMsMHgwMCwweDliLDB4ZTAsMHg2YywweGM4LDB4MGIsMHgzMiwweDAyLDB4MGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHhlNDAwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDEwLDB4YjMsMHg0MCwweDJjLDB4YzAsMHgwYiwweDNjLDB4ODIsMHgxMiB9fSwKLSB7MTYsIDB4ZTQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAyLDB4Y2EsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGU0MjAsIDAsIHsweDBlLDB4ZTQsMHg4YiwweDI4LDB4MDAsMHhjYSwweDAwLDB4MzMsMHg5NSwweDBmLDB4YTAsMHgwNywweGE4LDB4MDIsMHhjZSwweDQwIH19LAotIHsxNiwgMHhlNDMwLCAwLCB7MHgzZiwweGIwLDB4MGYsMHhlNCwweDgyLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDIzLDB4NjgsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ0MCwgMCwgezB4ZmEsMHg0MCwweDNlLDB4ODEsMHg0ZiwweGE0LDB4ZTMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDgwLDB4ZjAsMHgwMCwweDNjLDB4MDAsMHgyZiwweDAwLDB4MDIsMHg2MCwweDAwLDB4ZTgsMHgwMCwweDNjIH19LAotIHsxNiwgMHhlNDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMSwweDIwLDB4MDAsMHhlOCwweDA0LDB4NWUsMHgwNCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTQ3MCwgMCwgezB4MDEsMHgzZiwweDEwLDB4MGYsMHhjNCwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDksMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGU0ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGE5LDB4MjAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhlNDkwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHg0NCwweDA0LDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZTRhMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwYiwweGU0LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBlLDB4OTgsMHgwMywweGU2LDB4MDAgfX0sCi0gezE2LCAweGU0YjAsIDAsIHsweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MTgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ZTRkMCwgMCwgezB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ZDksMHgwNCwweDIyLDB4NDAsMHgwYiwweDFjLDB4MGIsMHg2NCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGU0ZTAsIDAsIHsweDk0LDB4MmMsMHg1MCwweDA4LDB4OWMsMHgwMiwweGU0LDB4MTQsMHhiOSwweDkwLDB4MGUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlNGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4ZTUwMCwgMCwgezB4NGEsMHg5MCwweDAyLDB4NjQsMHgwMCwweDk5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5OCwweDgyLDB4ZTQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGU1MTAsIDAsIHsweDZhLDB4NDAsMHgwYSwweDkyLDB4ODIsMHhlNCwweDAwLDB4YmQsMHgwMSwweDJmLDB4NTAsMHgxMiwweGQ2LDB4MDIsMHhmNCwweDQwIH19LAotIHsxNiwgMHhlNTIwLCAwLCB7MHhiZCwweDAwLDB4MGYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIyLDB4MmMgfX0sCi0gezE2LCAweGU1NDAsIDAsIHsweDQ4LDB4YTgsMHgxMiwweDA2LDB4YzQsMHg5MCwweDkxLDB4MjAsMHgyOCwweDUwLDB4MGIsMHg5MCwweDAyLDB4NDUsMHgwMCwweGI1IH19LAotIHsxNiwgMHhlNTUwLCAwLCB7MHg0MCwweDZkLDB4NDAsMHgwOCwweDUwLDB4MTIsMHhkNCwweDA0LDB4YjUsMHgwMiwweDJkLDB4NDAsMHgwYiwweDUwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZTU2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHgwMCwweDM2LDB4MTQgfX0sCi0gezE2LCAweGU1NzAsIDAsIHsweDBhLDB4ODUsMHgwMywweDQxLDB4NDAsMHhkOCwweDUwLDB4MmUsMHgxNCwweDBjLDB4ODUsMHgwMywweGMxLDB4NDAsMHhjOCwweDUwIH19LAotIHsxNiwgMHhlNTgwLCAwLCB7MHhiYSwweDAwLDB4MGUsMHg4MCwweDIzLDB4ZTAsMHgwMCwweDc4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwNCB9fSwKLSB7MTYsIDB4ZTU5MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1YTAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQwLDB4ZDksMHgxMCwweDNlLDB4NDQsMHgwNywweGYxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmIH19LAotIHsxNiwgMHhlNWIwLCAwLCB7MHg0NCwweGFmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4MzcsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGU1ZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHhkNCwweGZkLDB4YTIsMHgzYSwweDcwIH19LAotIHsxNiwgMHhlNWUwLCAwLCB7MHg4YywweDllLDB4MDMsMHgyNiwweDgwLDB4YzksMHhhMCwweDMyLDB4NjgsMHgwYywweGRiLDB4NDMsMHgyNywweDgwLDB4OWQsMHhhMiB9fSwKLSB7MTYsIDB4ZTVmMCwgMCwgezB4YjcsMHg0MCwweDBmLDB4NTAsMHgwMywweDY1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMSwweDA3LDB4ZDAsMHgwMywweGY1LDB4MDQgfX0sCi0gezE2LCAweGU2MDAsIDAsIHsweGZkLDB4NDAsMHgyZiwweGMwLDB4MGMsMHhkMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4OCwweGI4LDB4NTAsMHgyMiwweDM4LDB4MDgsMHg4ZSwweDAwLDB4YTIsMHhhMCwweDg4LDB4ZTgsMHgyMiB9fSwKLSB7MTYsIDB4ZTYyMCwgMCwgezB4MzgsMHg0OCwweDg4LDB4MDMsMHg2MiwweDEwLDB4YTgsMHhlOCwweDNjLDB4MDAsMHgwYiwweDgwLDB4MDMsMHg2MiwweDgwLDB4YjggfX0sCi0gezE2LCAweGU2MzAsIDAsIHsweDAxLDB4MmUsMHg4MCwweDBiLDB4ODAsMHgyMSwweGEyLDB4MDAsMHhiMCwweDg0LDB4MmUsMHgyYSwweDI4LDB4OGEsMHg4MiwweGNlIH19LAotIHsxNiwgMHhlNjQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHhiMSwweDAwLDB4MjgsMHg1OCB9fSwKLSB7MTYsIDB4ZTY1MCwgMCwgezB4ODAsMHgxMywweDQwLDB4MDUsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUyLDB4MjgsMHgxNiwweDAyLDB4ODUsMHg4MCwweDliLDB4YzIgfX0sCi0gezE2LCAweGU2NjAsIDAsIHsweDY0LDB4NDEsMHg4YiwweDk4LDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwOSwweDJjLDB4NDAsMHgxYiwweDEwLDB4MjAsMHhjNCwweDAwIH19LAotIHsxNiwgMHhlNjcwLCAwLCB7MHhiMSwweDAwLDB4MmMsMHg0MCwweDQ4LDB4MTAsMHgwMiwweGMyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY4MCwgMCwgezB4MTgsMHgxNSwweGE1LDB4ODQsMHhiOSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHgwMSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGU2OTAsIDAsIHsweDUwLDB4MDgsMHg5MCwweDQyLDB4NjQsMHgwMCwweGE5LDB4MTAsMHhhZSwweDU4LDB4MDMsMHg5OCwweDAyLDB4NjQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlNmEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDYsMHhhNCwweDEwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwOCwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4ZTZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNywweDAwLDB4ZjksMHgwMCwweDJhLDB4NDAgfX0sCi0gezE2LCAweGU2YzAsIDAsIHsweDJjLDB4OTQsMHgwYiwweDI0LDB4MDIsMHhjOSwweDAwLDB4YjIsMHg0NCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDQsMHhkOSwweDgwIH19LAotIHsxNiwgMHhlNmQwLCAwLCB7MHhiNiwweDQxLDB4OGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NjAsMHgzZSwweDQwLDB4MGYsMHg5NiwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ZTZlMCwgMCwgezB4ZjksMHg4MCwweDNlLDB4NDIsMHg4YywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ZjAsIDAsIHsweDI4LDB4MDEsMHhhNiwweDAwLDB4ZjEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDFjLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhlNzAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgyMywweGM0LDB4MTAsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBmLDB4OTAsMHgwYiwweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MDcsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGU3MjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwIH19LAotIHsxNiwgMHhlNzMwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDAwLDB4ODMsMHgyMCwweDAwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4ZTc0MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGEwLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDggfX0sCi0gezE2LCAweGU3NTAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4NDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZTc3MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDMsMHg2OCwweDAwLDB4ODIsMHgwMCwweDJmLDB4ODAsMHgwOCwweGU2LDB4MDIsMHgyOCwweDA0LDB4YmUgfX0sCi0gezE2LCAweGU3ODAsIDAsIHsweDQwLDB4MjMsMHg4MCwweDBiLDB4ZTgsMHgwMiwweGVhLDB4MDAsMHhiZSwweDAxLDB4MjIsMHg4MCwweDBiLDB4ZTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhlNzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHg5MywweDAxLDB4MjAsMHhjMSB9fSwKLSB7MTYsIDB4ZTdhMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4ODgsMHgzOCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGU3YjAsIDAsIHsweDI0LDB4YzAsMHgwYSwweDNlLDB4NDIsMHg4YywweDAwLDB4YjIsMHg0YywweDI0LDB4ZTAsMHg0YiwweDM4LDB4MDIsMHhjNCwweDQxIH19LAotIHsxNiwgMHhlN2MwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDBiLDB4MTAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDAwLDB4MjAsMHhjOSwweDQ4LDB4NzAsMHgwMiwweGRjLDB4NDAsMHhhNywweDE0LDB4MmMgfX0sCi0gezE2LCAweGU3ZTAsIDAsIHsweGM4LDB4MjgsMHgzMCwweDgyLDB4NWMsMHhjMSwweDg1LDB4MDAsMHgyZCwweGUwLDB4MmEsMHhmMCwweDEyLDB4MWMsMHg4MCwweGI3IH19LAotIHsxNiwgMHhlN2YwLCAwLCB7MHhhMCwweDIxLDB4ODIsMHgwYiwweDcwLDB4ODIsMHhkNCwweDExLDB4YjYsMHg4MCwweDIxLDB4NDAsMHg0YiwweDUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ZTgwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgwLDB4ZDUsMHg4MCwweDI5LDB4ZWEgfX0sCi0gezE2LCAweGU4MTAsIDAsIHsweDRlLDB4M2EsMHgwNywweDBlLDB4ODAsMHhlMywweGIwLDB4MzEsMHhmYywweDBjLDB4NDgsMHgwMywweDBlLDB4NDEsMHhlNywweDgwIH19LAotIHsxNiwgMHhlODIwLCAwLCB7MHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4OWUsMHg4MCwweGY0LDB4YzQsMHgzNSwweGUwLDB4MGYsMHg3OCwweDI3LDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4ZTgzMCwgMCwgezB4ZjUsMHg4MCwweGIxLDB4ZTAsMHgwZiwweDU4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4NDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4MzEsMHgwNCwweDNhLDB4YzQsMHgwZiwweGI1LDB4OTMsMHg2ZCwweDA4LDB4ZmIsMHg0MCwweDNhIH19LAotIHsxNiwgMHhlODUwLCAwLCB7MHhjOCwweDYzLDB4ODAsMHgyMywweGVjLDB4OTgsMHhlOSwweDAwLDB4M2UsMHhjMCwweDBkLDB4YjAsMHg0MywweGVjLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZTg2MCwgMCwgezB4ODAsMHgzZSwweDQwLDB4NGYsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NjgsMHgzZSwweDQwLDB4OGYsMHg5OCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGU4NzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg2MCwweGViLDB4OTAsMHgzZSwweGU0IH19LAotIHsxNiwgMHhlODgwLCAwLCB7MHgwZiwweGI4LDB4MDAsMHgzZiwweDQwLDB4Y2IsMHg4MCwweDdmLDB4ZTAsMHgwZSwweGZiLDB4MDMsMHgyZSwweDQwLDB4Y2IsMHg4MCB9fSwKLSB7MTYsIDB4ZTg5MCwgMCwgezB4M2YsMHhlMCwweDBmLDB4NzksMHg0MywweDJlLDB4NjAsMHhjYSwweDgxLDB4MzMsMHg2NCwweDhmLDB4ZDksMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGU4YTAsIDAsIHsweGZmLDB4ODEsMHgzMywweGUwLDB4MGYsMHhkOSwweDhiLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGIwLCAwLCB7MHhhOCwweDAxLDB4OWMsMHgwMCwweDg3LDB4ODEsMHgxOSwweGU0LDB4MGIsMHhmYSwweDEzLDB4NWUsMHg4MCwweDg3LDB4YjIsMHgyZCB9fSwKLSB7MTYsIDB4ZThjMCwgMCwgezB4ZWMsMHgwZCwweDc5LDB4MDEsMHg5ZSwweDAwLDB4ZDUsMHg5MCwweDJkLDB4ZjgsMHgwYiwweDc4LDB4MDMsMHg3ZSwweDA4LDB4YWIgfX0sCi0gezE2LCAweGU4ZDAsIDAsIHsweDkxLDB4MjksMHg4NSwweDBiLDB4NTEsMHgwMiwweGRjLDB4NDgsMHhiNiwweDQwLDB4MjEsMHg0MCwweDBiLDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhlOGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDhjLDB4MTQsMHhiNSwweDIwLDB4NmQsMHhjOCB9fSwKLSB7MTYsIDB4ZThmMCwgMCwgezB4MGIsMHg3MiwweDAyLDB4NWMsMHg4MCwweDg3LDB4MjAsMHg2OSwweGMwLDB4ODgsMHg1MywweDAyLDB4Y2MsMHg4MSwweDk3LDB4NTAgfX0sCi0gezE2LCAweGU5MDAsIDAsIHsweDJkLDB4YzgsMHgwYiwweGY3LDB4MGEsMHhkYywweGMwLDB4ODQsMHgwMSwweDIxLDB4NDQsMHgxYiwweDcwLDB4MjIsMHhkYywweDAwIH19LAotIHsxNiwgMHhlOTEwLCAwLCB7MHhiNSwweDAwLDB4MjEsMHhjNCwweDBiLDB4NTAsMHg4NiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkyMCwgMCwgezB4MjAsMHgxNCwweGNmLDB4MzAsMHg5MSwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzQsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMgfX0sCi0gezE2LCAweGU5MzAsIDAsIHsweGYyLDB4MGIsMHgxMCwweDIyLDB4MGMsMHgwMCwweDkxLDB4MDAsMHgyYywweGM4LDB4MGIsMHgxOCwweDBhLDB4Y2QsMHgwMSwweGEzIH19LAotIHsxNiwgMHhlOTQwLCAwLCB7MHgwMCwweDI4LDB4NjAsMHgwYiwweDIxLDB4MDIsMHhjZSwweDIwLDB4YjgsMHg0MCwweGEwLDB4NTQsMHgwYiwweDE4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZTk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiZCwweDAwLDB4ZjksMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGU5NjAsIDAsIHsweDBmLDB4ZjQsMHgwMiwweDdjLDB4MTIsMHhjZiwweDAzLDB4M2YsMHhjMiwweDBlLDB4YjAsMHgwMywweGZjLDB4MDQsMHg5YiwweDAyIH19LAotIHsxNiwgMHhlOTcwLCAwLCB7MHgyZSwweGYyLDB4MGYsMHhhNCwweDBiLDB4ZGMsMHgwMCwweGNlLDB4MDAsMHhiMCwweGM4LDB4OGYsMHhhNCwweDAzLDB4ZWYsMHgwMCB9fSwKLSB7MTYsIDB4ZTk4MCwgMCwgezB4ZjgsMHg4MCwweDMyLDB4ZjUsMHgxZiwweGRkLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5OTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDQwLDB4ZTksMHgwMCwweDNhLDB4YzAsMHgwZiwweGIxLDB4MDMsMHhjYywweDAwLDB4ZjMsMHgwMCwweDNlIH19LAotIHsxNiwgMHhlOWEwLCAwLCB7MHhjMCwweDBkLDB4YjQsMHgwOSwweGVjLDB4MTgsMHhmOSwweDEwLDB4M2UsMHgxMCwweDRmLDB4YjEsMHgwYSwweDZjLDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4ZTliMCwgMCwgezB4ODksMHgzNiwweDgyLDB4MGIsMHhhNiwweDAzLDB4ZWMsMHg1MCwweGY5LDB4NTAsMHgzZSwweGMwLDB4MWYsMHg5MCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGU5YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZkLDB4YTAsMHgzZCwweGMwIH19LAotIHsxNiwgMHhlOWQwLCAwLCB7MHgwYywweDcwLDB4ODMsMHgyYywweDAwLDB4ZWYsMHgwMiwweDM1LDB4YzAsMHgwZCwweGUyLDB4MDMsMHhmYywweDA0LDB4ZmYsMHgwMiB9fSwKLSB7MTYsIDB4ZTllMCwgMCwgezB4MmQsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MTAsMHhkYywweDAwLDB4M2YsMHg4MCwweDBjLDB4ZDgsMHgwMywweGZjLDB4MDAgfX0sCi0gezE2LCAweGU5ZjAsIDAsIHsweGRlLDB4MTgsMHgzMywweGYwLDB4NGYsMHhkMCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTAwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4NGMsMHhiMCwweDAzLDB4NmMsMHgwMCwweDhiLDB4MDIsMHgzNiB9fSwKLSB7MTYsIDB4ZWExMCwgMCwgezB4YzAsMHgwZCwweGFjLDB4MTIsMHhlYywweDAwLDB4NzksMHgwMCwweDJlLDB4MzAsMHgwZCwweDNkLDB4NDIsMHhhYywweDAwLDB4ODkgfX0sCi0gezE2LCAweGVhMjAsIDAsIHsweDg4LDB4MWEsMHgxMCwweDBkLDB4ODYsMHgwMiwweGVlLDB4MDQsMHhiYiwweDQwLDB4MjIsMHhlMCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlYTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZWE0MCwgMCwgezB4MDgsMHhiMCwweDQyLDB4YWMsMHgwMCwweDBiLDB4MDUsMHgyNiwweGMwLDB4MDksMHg5NCwweDIwLDB4ZWMsMHgwMCwweGI5LDB4ODAgfX0sCi0gezE2LCAweGVhNTAsIDAsIHsweDZlLDB4YzQsMHg4OCwweGIwLDB4ODIsMHgyYywweDAwLDB4OWIsMHg4MiwweDJlLDB4NDIsMHgwOCwweDgxLDB4MDIsMHhlNCwweDgwIH19LAotIHsxNiwgMHhlYTYwLCAwLCB7MHhiOCwweDAwLDB4MjIsMHhjMSwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHhiMSwweDI1LDB4MmMsMHhjYSwweDA4LDB4MzQsMHg0NiwweGNjLDB4MDgsMHg4MywweDAwLDB4MjQgfX0sCi0gezE2LCAweGVhODAsIDAsIHsweGMyLDB4MGIsMHgwMiwweDUyLDB4Y2MsMHg4MSwweDgzLDB4MDAsMHgyYywweDAwLDB4MTksMHhiMiwweDQyLDB4YWMsMHg4MCwweDgxIH19LAotIHsxNiwgMHhlYTkwLCAwLCB7MHgwOCwweDI4LDB4ODAsMHgwOSwweDAwLDB4MDIsMHhjNCwweDQwLDB4YjEsMHgwMCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZWFhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2YywweDAwLDB4YjksMHgwMCwweDNmLDB4ZDAgfX0sCi0gezE2LCAweGVhYjAsIDAsIHsweDA4LDB4ZjYsMHgwNywweGJjLDB4YzIsMHhhZiwweDMwLDB4NzUsMHhkYywweDBkLDB4MTYsMHgwMiwweGZjLDB4ZTAsMHhiOSwweDUwIH19LAotIHsxNiwgMHhlYWMwLCAwLCB7MHgzZSwweGNjLDB4MGMsMHhiMCwweDIzLDB4MmMsMHgxMCwweGQ5LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg5MCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZWFkMCwgMCwgezB4ZGUsMHgwMSwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhZTAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmQsMHgxMCwweDNmLDB4Y2EsMHgyZSwweGY2LDB4MDMsMHg2ZCwweDk0LDB4OWYsMHgzMCwweDNhIH19LAotIHsxNiwgMHhlYWYwLCAwLCB7MHhjOSwweDBjLDB4ODMsMHg5MywweGZjLDB4ODAsMHhmZiwweDExLDB4N2UsMHgxOSwweDBiLDB4YjEsMHgwMywweGZjLDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ZWIwMCwgMCwgezB4MDgsMHgzYiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHg4MCwweDc3LDB4MDAsMHhiZiwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGViMTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHgwMCwweGY0LDB4OTQsMHgzNywweGM4IH19LAotIHsxNiwgMHhlYjIwLCAwLCB7MHgwZCwweDY5LDB4NjMsMHg3YywweDEwLDB4ZmYsMHg2MiwweDM3LDB4YzAsMHgwZCwweGI0LDB4MDMsMHg3YywweDYwLDB4ZDQsMHg4MCB9fSwKLSB7MTYsIDB4ZWIzMCwgMCwgezB4M2YsMHg0MCwweDBmLDB4NDgsMHgyMywweDMyLDB4MDAsMHhjZSwweDAwLDB4YmYsMHg0MCwweDhmLDB4ZDEsMHgwMywweDMwLDB4ZTAgfX0sCi0gezE2LCAweGViNDAsIDAsIHsweGZmLDB4MzAsMHgzYiwweDYwLDB4MGYsMHhkOCwweDAzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjUwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHgyMCwweGI4LDB4MjQsMHgyMywweGY0LDB4NDksMHhhMiwweDAyLDB4M2YsMHg0MCwweDhmLDB4NTEsMHgyMyB9fSwKLSB7MTYsIDB4ZWI2MCwgMCwgezB4ZGEsMHgwOCwweGY2LDB4MTIsMHgzZCwweDgwLDB4OWIsMHg4MCwweDJlLDB4NDksMHg0YiwweDgwLDB4MDMsMHg0MCwweDAwLDB4ZDkgfX0sCi0gezE2LCAweGViNzAsIDAsIHsweDAxLDB4MjIsMHg3NCwweDBiLDB4ZDUsMHgwMiwweDIxLDB4MDAsMHhiZiwweDQyLDB4MmUsMHg0OSwweDBiLDB4OWMsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlYjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4ODAsMHhiOCwweDIwLDB4MjgsMHhjMSB9fSwKLSB7MTYsIDB4ZWI5MCwgMCwgezB4MWIsMHhhMCwweDAyLDB4NGMsMHgwMCwweDkzLDB4MjAsMHgyYywweGQ4LDB4MGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4MDEgfX0sCi0gezE2LCAweGViYTAsIDAsIHsweDJjLDB4YzYsMHgxYSwweGEwLDB4MDIsMHg2OCwweDA4LDB4ODMsMHgwMCwweGE0LDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmIwLCAwLCB7MHhiMywweDEwLDB4MjgsMHg0MiwweDBiLDB4MTQsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDYwLDB4MmEsMHhjMCwweDFiLDB4YTAsMHg4ZSwweGFjLDB4MDEsMHg5YiwweDA1LDB4MjYgfX0sCi0gezE2LCAweGViZDAsIDAsIHsweGMwLDB4MDMsMHhiMCwweDQyLDB4NmMsMHgwMCwweDliLDB4ODAsMHgyZSwweGMwLDB4MDMsMHhhMCwweDA2LDB4NjksMHgwMCwweDk5IH19LAotIHsxNiwgMHhlYmUwLCAwLCB7MHg4MCwweGFhLDB4YzAsMHgwYiwweDkwLDB4MDIsMHg2MywweDAwLDB4M2IsMHgwMCwweDJlLDB4NTgsMHg0YiwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZWJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDA0LDB4ZjgsMHg4MCwweGJhLDB4YzAgfX0sCi0gezE2LCAweGVjMDAsIDAsIHsweDBmLDB4MzAsMHgwMywweDZjLDB4MTAsMHhkYiwweDAzLDB4MzYsMHhjMCwweDhmLDB4YjAsMHgwMywweGVjLDB4MDgsMHhkOCwweDgwIH19LAotIHsxNiwgMHhlYzEwLCAwLCB7MHg3ZSwweGUwLDB4MDYsMHg4OCwweDAzLDB4NDEsMHgwOCwweGNiLDB4YTAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDBiLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4ZWMyMCwgMCwgezB4N2IsMHgwMCwweDNhLDB4MDEsMHgwZiwweDkwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmMsMHg4NCwweDMyLDB4YzAsMHgwYywweGY5LDB4MDMsMHg1YywweDEwLDB4ZWYsMHgwMCwweDNiIH19LAotIHsxNiwgMHhlYzQwLCAwLCB7MHhjMCwweDBjLDB4NzAsMHgwMywweDljLDB4MDAsMHhlYywweDAxLDB4M2YsMHhlNCwweDRmLDB4ZDEsMHgwMywweGYxLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZWM1MCwgMCwgezB4MDUsMHgzMywweDYwLDB4MGYsMHhkMCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZiwweDIxLDB4MGYsMHhkMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGVjNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGM4LDB4NDAsMHgzYSwweGM2IH19LAotIHsxNiwgMHhlYzcwLCAwLCB7MHgwZCwweGI0LDB4MDMsMHg2YywweDAwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2YywweDAwLDB4ZTksMHgxMCB9fSwKLSB7MTYsIDB4ZWM4MCwgMCwgezB4M2EsMHhjMCwweDBmLDB4ODQsMHgwMywweDJjLDB4NjAsMHhjYiwweDAwLDB4MzIsMHg2MCwweDBjLDB4NTAsMHgwMywweDYxLDB4MDAgfX0sCi0gezE2LCAweGVjOTAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweGEzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2EwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMiwweDg4LDB4MDEsMHgwMSwweGYwLDB4MjAsMHhiMCwweDAxLDB4M2UsMHgwMCwweDNmLDB4MDAsMHgzMyB9fSwKLSB7MTYsIDB4ZWNiMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MzIsMHgzYywweDA4LDB4ODksMHg4MCwweDIyLDB4YzAsMHgwMSwweDE1LDB4MTIsMHhhYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGVjYzAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDQ4LDB4ZGIsMHgwMiwweDJmLDB4NDAsMHg4ZiwweDAwLDB4MmUsMHgwMSwweDA4LDB4ZDQsMHg4MCwweDMyIH19LAotIHsxNiwgMHhlY2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHgwOCwweDAwLDB4MDgsMHhmMCB9fSwKLSB7MTYsIDB4ZWNlMCwgMCwgezB4MDgsMHgwMCwweDEyLDB4NGMsMHgwMCwweDMzLDB4MDEsMHgyNCwweGMwLDB4NGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweGEwLDB4MjAgfX0sCi0gezE2LCAweGVjZjAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHg0NiwweDA0LDB4ODMsMHgwNCwweDIwLDB4YzAsMHgyOSwweDE4LDB4MDIsMHgwNCwweDQwIH19LAotIHsxNiwgMHhlZDAwLCAwLCB7MHhiMywweDAwLDB4MmMsMHg0MCwweDBhLDB4MWMsMHg0MiwweGIxLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4ZCwweDgwLDB4MjEsMHhlMCwweDE4LDB4YzgsMHgwMiwweDFlLDB4MDAsMHhiMywweGEwLDB4MjEgfX0sCi0gezE2LCAweGVkMjAsIDAsIHsweGUwLDB4MWIsMHgzOCwweDAyLDB4MGUsMHgwMSwweGE3LDB4ODAsMHgyMSwweGUwLDB4MDksMHhkOCwweDQwLDB4ZDYsMHg0MCwweDg3IH19LAotIHsxNiwgMHhlZDMwLCAwLCB7MHg4MCwweDAxLDB4ZTAsMHgwOSwweDU5LDB4MDIsMHgxNiwweDAwLDB4OTcsMHg4NCwweDJkLDB4NjAsMHgwOCwweDU4LDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDQwLDB4YzAsMHgwMCwweDM4LDB4YzQgfX0sCi0gezE2LCAweGVkNTAsIDAsIHsweDBjLDB4MzAsMHgyNywweDRjLDB4MjAsMHhmMywweDAxLDB4MzQsMHhjMSwweDBlLDB4M2EsMHgwMywweDRjLDB4YzQsMHhlMCwweDAwIH19LAotIHsxNiwgMHhlZDYwLCAwLCB7MHgxOCwweGM4LDB4MGYsMHgzNCwweDAzLDB4NDQsMHg0MCwweGMzLDB4MDAsMHgzMCwweGMwLDB4MGQsMHg5MCwweDAzLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ3MCwgMCwgezB4ZjMsMHgwMCwweDNlLDB4NDAsMHgwZSwweDEwLDB4MDEsMHg5YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZjksMHgwMCwweDBlLDB4ZDQsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZmIsMHgyMCwweDNmIH19LAotIHsxNiwgMHhlZDkwLCAwLCB7MHhjNCwweDBmLDB4ZjEsMHgwMywweGVjLDB4NjAsMHhkYiwweDEwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGE0LDB4NDYsMHhmYiB9fSwKLSB7MTYsIDB4ZWRhMCwgMCwgezB4MDAsMHhiZCwweGMwLDB4MGUsMHhkMCwweDBiLDB4YjQsMHgwMCwweGVmLDB4NDgsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGVkYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGY4LDB4MDAsMHgzMiwweGQ0IH19LAotIHsxNiwgMHhlZGMwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhZCwweDAwLDB4ZWIsMHgwOCwweDIyLDB4ZDIsMHgwYywweGI2LDB4MDMsMHg2YywweDAwLDB4ZjIsMHg4MCB9fSwKLSB7MTYsIDB4ZWRkMCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTAsMHgwMywweDI4LDB4MTAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBmLDB4ZDYsMHgwMywweDI4LDB4MTAgfX0sCi0gezE2LCAweGVkZTAsIDAsIHsweGZiLDB4MjAsMHgzZSwweDQwLDB4NGYsMHg5OSwweDEzLDB4MmIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGYwLCAwLCB7MHg0OCwweDExLDB4OWQsMHgxMCwweGI0LDB4MDEsMHgyMSwweGMxLDB4OGIsMHhjMCwweDAyLDB4MWMsMHhhMCwweGJmLDB4MDQsMHgyNyB9fSwKLSB7MTYsIDB4ZWUwMCwgMCwgezB4YzgsMHgwOCwweDc1LDB4MDIsMHgxYywweGMwLDB4YjYsMHgwMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4NDIsMHgxOCwweDEwLDB4OGYgfX0sCi0gezE2LCAweGVlMTAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDBiLDB4NTQsMHhhMiwweDFjLDB4MDAsMHhiNywweDA0LDB4MmQsMHg0MSwweDBiLDB4NTIsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlZTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNiwweDg4LDB4YTUsMHhlMCB9fSwKLSB7MTYsIDB4ZWUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4OWUsMHg4MSwweGE3LDB4OTAsMHgyNSwweGU0LDB4ODgsMHg3OCwweDAyLDB4MWUsMHg4MCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGVlNDAsIDAsIHsweDI0LDB4NjAsMHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4ODcsMHg4NCwweDYxLDB4ZTAsMHgwYSwweDFhLDB4MGEsMHgxYSwweDAwIH19LAotIHsxNiwgMHhlZTUwLCAwLCB7MHhiNywweGEwLDB4MmQsMHhlMCwweDBiLDB4ZGEsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiYSwweGMwLDB4YTQsMHhjMCwweDBiLDB4MzQsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQgfX0sCi0gezE2LCAweGVlNzAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDBlLDB4MmMsMHgwMCwweGIzLDB4OTgsMHgyMCwweDYwLDB4MDksMHgzMywweDAyLDB4MmMsMHgwMCwweGEzIH19LAotIHsxNiwgMHhlZTgwLCAwLCB7MHhjOCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZjAsMHgwYiwweDEwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4ZWU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDM2LDB4ODEgfX0sCi0gezE2LCAweGVlYTAsIDAsIHsweDBiLDB4ZTAsMHgwMywweGE4LDB4MDAsMHhlYSwweDAwLDB4YjIsMHg4MCwweDA4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHhlZWIwLCAwLCB7MHgzNiwweGEwLDB4MWYsMHhlOCwweDEzLDB4M2IsMHg4MiwweGNlLDB4ZTAsMHgyMiwweDgwLDB4OGUsMHhhMCwweDAzLDB4MzgsMHgwMCB9fSwKLSB7MTYsIDB4ZWVjMCwgMCwgezB4YmEsMHgwMCwweDNmLDB4YTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNhLDB4MTAsMHgwNywweDgwLDB4MDMsMHhjMSwweDAwLDB4ZjgsMHgwMCwweDM4IH19LAotIHsxNiwgMHhlZWUwLCAwLCB7MHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MDEsMHhmOCwweDQyLDB4M2UsMHgwNSwweDBlLDB4ODAsMHgwYiwweGUwLDB4ODAsMHhkOCB9fSwKLSB7MTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDBiLDB4ZDIgfX0sCi0gezE2LCAweGVmMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzYSwweDUwIH19LAotIHsxNiwgMHhlZjEwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhhNCwweDAyLDB4ZDEsMHgwMCwweGIyLDB4NDAsMHg0YywweDkwLDB4MjMsMHgyNCwweDA4LDB4YzksMHgwMSB9fSwKLSB7MTYsIDB4ZWYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTQsMHgwYSwweDI1LDB4MjAgfX0sCi0gezE2LCAweGVmMzAsIDAsIHsweGU5LDB4MDAsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwYSwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg5MCwweDEyLDB4MjUsMHg4MCwweGM5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWY1MCwgMCwgezB4NDAsMHgwYSwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHgyMCwweDJjLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGVmNjAsIDAsIHsweGMxLDB4MzIsMHg0MCwweDBiLDB4OTgsMHgwMiwweDA2LDB4MDAsMHg4OSwweDkwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgxMiwweGUwIH19LAotIHsxNiwgMHhlZjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDA0LDB4MDAsMHg4OSwweDAwLDB4NmEsMHg0MiB9fSwKLSB7MTYsIDB4ZWY4MCwgMCwgezB4MGEsMHgxMCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHhhMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweDA5LDB4MDAgfX0sCi0gezE2LCAweGVmOTAsIDAsIHsweDJlLDB4NDAsMHg1OCwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHg4MCwweGFhLDB4NjAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDA0IH19LAotIHsxNiwgMHhlZmEwLCAwLCB7MHhhOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4NjAsMHg0OCwweDBiLDB4MTAsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4NjAgfX0sCi0gezE2LCAweGVmYzAsIDAsIHsweDQ4LDB4MGEsMHgxMiwweDAyLDB4NDQsMHg4OCwweDgxLDB4MDAsMHgwZSwweDU5LDB4MGEsMHgxNCwweDAyLDB4MDUsMHgwMCwweDgxIH19LAotIHsxNiwgMHhlZmQwLCAwLCB7MHhjMCwweDI4LDB4NTAsMHg0OSwweDMwLDB4MDIsMHg4YywweDg0LDB4MDEsMHg2MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZWZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzAsMHg1NCwweDJhLDB4MDAgfX0sCi0gezE2LCAweGVmZjAsIDAsIHsweDBlLDB4ODUsMHgwMywweGEwLDB4MDAsMHhjOCwweDUwLDB4MzIsMHgxNSwweDFlLDB4MDUsMHgyMiwweDIxLDB4NDIsMHhjOCwweDAwIH19LAotIHsxNiwgMHhmMDAwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4MDAsMHgwNCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGYsMHg4NSwweDAzLDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4ZjAxMCwgMCwgezB4NjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZmQsMHgwMywweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQ4LDB4ZTksMHgxMCwweDNlIH19LAotIHsxNiwgMHhmMDMwLCAwLCB7MHg0NSwweDBmLDB4OTEsMHgxMywweGU0LDB4NDAsMHhmZCwweDAwLDB4M2YsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDIsMHhmZCB9fSwKLSB7MTYsIDB4ZjA0MCwgMCwgezB4NDAsMHgzMywweDUwLDB4MGYsMHhkNCwweDIzLDB4NzQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGYwNTAsIDAsIHsweDAyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTQsMHgwMCwweGY5LDB4MDEsMHgzMywweDZhIH19LAotIHsxNiwgMHhmMDYwLCAwLCB7MHgwOSwweDkwLDB4MDMsMHhiNiwweDM0LDB4ZjksMHhjOCwweDMyLDB4NjQsMHgwYywweDlhLDB4MDMsMHhlNiwweGEwLDB4ZGQsMHgwMCB9fSwKLSB7MTYsIDB4ZjA3MCwgMCwgezB4M2MsMHg3MCwweDBmLDB4OTAsMHgwMywweGE1LDB4MDAsMHg4OSwweDgwLDB4MzMsMHgzMiwweDBmLDB4ZDgsMHgxMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGYwODAsIDAsIHsweGZkLDB4MDAsMHg3MCwweDUwLDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4YTgsMHgyMiwweDEwLDB4MDgsMHg4OCwweDAyLDB4MjEsMHgwMCwweGI4LDB4YzAsMHgyMCB9fSwKLSB7MTYsIDB4ZjBhMCwgMCwgezB4MzAsMHgwZCwweDhlLDB4ODcsMHg4MywweDg4LDB4ODgsMHgwMCwweDJlLDB4MzQsMHgwYiwweDhhLDB4ODIsMHgyMiwweDgwLDB4ZGMgfX0sCi0gezE2LCAweGYwYjAsIDAsIHsweGUwLDB4MjIsMHgzOCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhmOCwweGE4LDB4MmEsMHgyOCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhmMGMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MjAsMHhiMSwweDAwLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZjBkMCwgMCwgezB4MGEsMHg5MiwweDkyLDB4ODQsMHgxMSwweGIxLDB4MjQsMHg2OCwweDU4LDB4MDksMHgxMSwweDAyLDB4YzQsMHgyMCwweDkxLDB4MDEgfX0sCi0gezE2LCAweGYwZTAsIDAsIHsweDJjLDB4NDgsMHgxYiwweDUwLDB4MDIsMHg3NCwweDg0LDB4OTUsMHg0OCwweGFjLDB4NDgsMHgwYiwweDk0LDB4MDIsMHgwNCwweDA0IH19LAotIHsxNiwgMHhmMGYwLCAwLCB7MHhiMSwweDAyLDB4MjQsMHg0OCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjEwMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhiMSwweDIwLDB4MjIsMHg0MCwweDBhLDB4OTAsMHgwNiwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGYxMTAsIDAsIHsweDQwLDB4MDksMHg5MCwweDAyLDB4YTQsMHgwMCwweDliLDB4MDgsMHgyZSwweDQ4LDB4MGIsMHgxMiwweDFhLDB4NzQsMHgwMCwweDk1IH19LAotIHsxNiwgMHhmMTIwLCAwLCB7MHg0NSwweDJlLDB4NjAsMHgwMywweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZjEzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMwLDB4NDAgfX0sCi0gezE2LCAweGYxNDAsIDAsIHsweDBlLDB4MTYsMHgwMywweGE0LDB4MDAsMHhiOSwweDA0LDB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhkOSwweDQwIH19LAotIHsxNiwgMHhmMTUwLCAwLCB7MHgyZSwweDQwLDB4MWYsMHg5OCwweDAzLDB4ZTUsMHg4MCwweGQ5LDB4MDAsMHhhZSwweDYwLDB4MDcsMHgxMCwweDBiLDB4MjYsMHgwMSB9fSwKLSB7MTYsIDB4ZjE2MCwgMCwgezB4YjksMHgwMCwweGE2LDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweGJlLDB4NDAsMHhhYywweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweGI0IH19LAotIHsxNiwgMHhmMTgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgzMiwweDAwLDB4MGYsMHg5MCwweDgzLDB4ZTYsMHg4NSwweGUxLDB4MDAsMHgzMiwweDQ0LDB4MGYsMHgxMCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGYxYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhmMWIwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHhlMCwweDk0LDB4ZTAsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4ZjFjMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHg0MywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAgfX0sCi0gezE2LCAweGYxZDAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4NGMsMHg4MCwweDIzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMywweDgwLDB4MGIsMHhhMCwweDAyLDB4ZmIsMHgwNCwweDZhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZjFmMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHg2OCwweDBhLDB4OGUsMHg4OCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgwOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGYyMDAsIDAsIHsweDAwLDB4YjcsMHgyMiwweDAzLDB4ZTQsMHgwMiwweGZhLDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTgsMHgwMiwweGNhIH19LAotIHsxNiwgMHhmMjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4NjAsMHg0MSB9fSwKLSB7MTYsIDB4ZjIyMCwgMCwgezB4MDMsMHgzMCwweDAyLDB4Y2MsMHg0MSwweGEzLDB4MDAsMHgwNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweGEzLDB4ODAgfX0sCi0gezE2LCAweGYyMzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDM4LDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDM0LDB4MDIsMHhjYywweDgwIH19LAotIHsxNiwgMHhmMjQwLCAwLCB7MHhhMSwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzgsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI1MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4NjEsMHgwMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhMywweDAwLDB4MjUgfX0sCi0gezE2LCAweGYyNjAsIDAsIHsweGM4LDB4MTksMHgzOCwweDAyLDB4NWMsMHg4MCwweGE3LDB4MDAsMHgwZiwweGU4LDB4MDksMHg2NCwweDIyLDB4MTAsMHgwMCwweGIzIH19LAotIHsxNiwgMHhmMjcwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwYiwweDYwLDB4MDIsMHhmMiwweDAwLDB4ODUsMHgwMSwweDIzLDB4ZTgsMHgwOCwweDcwLDB4ODIsMHhlOCB9fSwKLSB7MTYsIDB4ZjI4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDIwLDB4ZmYsMHg4MCwweGExLDB4YTAgfX0sCi0gezE2LCAweGYyOTAsIDAsIHsweDBmLDB4N2EsMHg0MiwweGRhLDB4MDAsMHhlNywweGU4LDB4MzUsMHhmMCwweDJmLDB4N2IsMHg2MiwweDFlLDB4ODIsMHhlNiwweDgwIH19LAotIHsxNiwgMHhmMmEwLCAwLCB7MHgxZCwweGUwLDB4MGQsMHhmOCwweDBiLDB4MWUsMHgwMCwweGY3LDB4ODAsMHgzMSwweGYwLDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwYyB9fSwKLSB7MTYsIDB4ZjJiMCwgMCwgezB4ZWYsMHg4MCwweDMxLDB4ZjgsMHgyYywweDc4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyYzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDg0LDB4ZmIsMHg2OCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlOCwweDAwLDB4ZmIsMHgwMCwweGZhIH19LAotIHsxNiwgMHhmMmQwLCAwLCB7MHhkOCwweDBlLDB4YjUsMHgwMywweGVkLDB4MDAsMHhkYiwweDAwLDB4M2EsMHhjMCwweDhlLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZjJlMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHhiMCwweDQzLDB4YzQsMHgwNCwweGVmLDB4MDIsMHhiZiwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGYyZjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg0MiwweGM3LDB4MzgsMHgzMywweDY0IH19LAotIHsxNiwgMHhmMzAwLCAwLCB7MHgwZSwweDdjLDB4MDMsMHg1ZSwweDAwLDB4ZGYsMHhhMCwweDM3LDB4ZjAsMHgwZCwweGY4LDB4MDMsMHhmZiwweDIwLDB4Y2YsMHg4MSB9fSwKLSB7MTYsIDB4ZjMxMCwgMCwgezB4MzMsMHhlMiwweDBjLDB4ZDgsMHgwMywweGJlLDB4MDAsMHg3ZiwweGMwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgwMywweDdlLDB4MDAgfX0sCi0gezE2LCAweGYzMjAsIDAsIHsweGZkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg3LDB4YTAsMHgyMSwweDE0LDB4MDgsMHg3MSwweDAyLDB4MTQsMHgxMCwweGQ3LDB4MjAsMHgzNSB9fSwKLSB7MTYsIDB4ZjM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHhiYywweDAwLDB4ODUsMHgwOCwweDJiLDB4YzAsMHg0ZCwweDQ2LDB4MDIsMHhkMSwweDAwLDB4YjcgfX0sCi0gezE2LCAweGYzNTAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDA4LDB4ODAsMHhmNSwweDIwLDB4M2QsMHhjYSwweDBmLDB4NTQsMHgwMywweGVhIH19LAotIHsxNiwgMHhmMzYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTEsMHg4ZiwweDAxLDB4MjAsMHg4NCB9fSwKLSB7MTYsIDB4ZjM3MCwgMCwgezB4MWEsMHhmMCwweDAyLDB4MTgsMHgwMCwweGE3LDB4MzQsMHg2NSwweGMwLDB4MDksMHg3MSwweDAyLDB4ZGMsMHgwMCwweDhlLDB4MDAgfX0sCi0gezE2LCAweGYzODAsIDAsIHsweDI5LDB4YzAsMHgwOCwweDUwLDB4MDYsMHg5YywweDAwLDB4YmYsMHg4OCwweDJkLDB4YzQsMHgwYSwweDYwLDB4MjYsMHg1OCwweDI0IH19LAotIHsxNiwgMHhmMzkwLCAwLCB7MHg5NywweDAwLDB4NmQsMHhjMCwweDliLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4YiwweDQwLDB4MjAsMHgwMCwweDE4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiYiwweDAyLDB4MjQgfX0sCi0gezE2LCAweGYzYjAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDIwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweGMwLDB4MGIsMHgwNCwweDgyLDB4ZTAsMHgxMCwweGJiIH19LAotIHsxNiwgMHhmM2MwLCAwLCB7MHhhMCwweDJjLDB4ZTAsMHgwYSwweDIwLDB4MDYsMHgwMCwweDAwLDB4YjMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDEwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZjNkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2YsMHgxMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGYzZTAsIDAsIHsweDBlLDB4ZjAsMHgwYiwweDI0LDB4MDAsMHhlZiwweDAwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDYsMHhjMSwweDUwIH19LAotIHsxNiwgMHhmM2YwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4YzAsMHhiZSwweGM4LDB4MmUsMHhiMCwweDAzLDB4NmUsMHgwMSB9fSwKLSB7MTYsIDB4ZjQwMCwgMCwgezB4ZmIsMHgwMCwweDJkLDB4YzAsMHg0YiwweDkwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDA0LDB4ZmIsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhhZCwweDAwLDB4OWIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhmNDIwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgwMywweGFjLDB4MDAsMHhmOCwweDAwLDB4MmUsMHhjMCwweDA1LDB4YjQsMHgwMywweGVkLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ZjQzMCwgMCwgezB4NDAsMHgzMiwweGMwLDB4MDksMHgwMCwweDAzLDB4ZTAsMHg5MSwweGUzLDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDExLDB4ZTAgfX0sCi0gezE2LCAweGY0NDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZWMsMHgwMCwweGVmLDB4MDAsMHgzMywweDIwIH19LAotIHsxNiwgMHhmNDUwLCAwLCB7MHg0ZiwweGYwLDB4MDMsMHhiNCwweDAwLDB4ZWYsMHgwMywweDNhLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZGMsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ2MCwgMCwgezB4MzEsMHhjMCwweDhkLDB4ZjgsMHgwMywweGZlLDB4MDQsMHhjZiwweDAwLDB4MzIsMHhjOCwweDBjLDB4ZjAsMHgwYiwweDFjLDB4MDAgfX0sCi0gezE2LCAweGY0NzAsIDAsIHsweGNmLDB4OTMsMHgzMywweGMwLDB4OGMsMHg0MCwweDAyLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHhhMiwweDA0LDB4MGIsMHgzMCwweDAyLDB4MGUsMHgwMCwweGFiLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZjQ5MCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDMsMHg2YywweDA4LDB4YTgsMHhjMCwweDM2LDB4YzAsMHgwOCwweGJjLDB4MDIsMHhlZiwweDAyLDB4YWIgfX0sCi0gezE2LCAweGY0YTAsIDAsIHsweGQwLDB4MjAsMHhlMCwweDA4LDB4YjgsMHgyMiwweDI2LDB4MTAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDIwLDB4OWMsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmNGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4ZjRjMCwgMCwgezB4MGEsMHhiMCwweDAyLDB4YTIsMHgwOCwweGFiLDB4MDAsMHg2YSwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDhiLDB4ODAgfX0sCi0gezE2LCAweGY0ZDAsIDAsIHsweDIyLDB4YzAsMHgwOSwweGIxLDB4MDIsMHhlYywweDQwLDB4ODgsMHgwOCwweDIyLDB4YzAsMHgwOCwweGI4LDB4MDIsMHgyNiwweDAwIH19LAotIHsxNiwgMHhmNGUwLCAwLCB7MHg4YiwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTgsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDBiLDB4YjAsMHgwMiwweDAwLDB4MDEsMHg4MywweDAwLDB4MjAgfX0sCi0gezE2LCAweGY1MDAsIDAsIHsweGMwLDB4MDksMHgzMCwweDAyLDB4NGMsMHgwMCwweDAwLDB4MDQsMHgyNCwweGMwLDB4MDgsMHgzMCwweDA2LDB4NGMsMHgwMCwweDgwIH19LAotIHsxNiwgMHhmNTEwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDQxLDB4ODMsMHgwMCwweGEyLDB4YzAsMHgwOCwweDEwLDB4MGEsMHg4MiB9fSwKLSB7MTYsIDB4ZjUyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4ZWYsMHgwOCwweDI2LDB4MDAgfX0sCi0gezE2LCAweGY1MzAsIDAsIHsweDBlLDB4ZjAsMHgwMiwweGEwLDB4MDAsMHhlNywweDAwLDB4M2IsMHhjMCwweDBmLDB4ZjUsMHg0MywweDNjLDB4MDIsMHhkYSwweDAwIH19LAotIHsxNiwgMHhmNTQwLCAwLCB7MHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHhiMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgxMCB9fSwKLSB7MTYsIDB4ZjU1MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwYywweDgwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NjAsIDAsIHsweGEwLDB4MGQsMHhmYywweDAwLDB4ZmIsMHgwMCwweDNiLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMiwweDNmIH19LAotIHsxNiwgMHhmNTcwLCAwLCB7MHhjMCwweDBkLDB4ZjIsMHgwMywweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgzMywweGMwLDB4MGYsMHg2MCwweDAzLDB4ZjAsMHg4OCwweGZmLDB4MDAsMHgzZiwweGMwLDB4NGYsMHhkMCwweDAzLDB4NjggfX0sCi0gezE2LCAweGY1OTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg0MCwweGZjLDB4MzEsMHgzYiwweDA4IH19LAotIHsxNiwgMHhmNWEwLCAwLCB7MHg0ZiwweGY5LDB4NDMsMHhlZiwweDAwLDB4ZGYsMHgzMCwweDMyLDB4MjEsMHgwZiwweDk0LDB4MDcsMHg3ZCwweDgwLDB4ZWYsMHgzOCB9fSwKLSB7MTYsIDB4ZjViMCwgMCwgezB4MzIsMHgwOSwweDFjLDB4MzgsMHgwMywweGYyLDB4MjEsMHhmZCwweDAwLDB4MzMsMHhjNCwweDBjLDB4ZjAsMHgwMiwweGZjLDB4MDAgfX0sCi0gezE2LCAweGY1YzAsIDAsIHsweGRmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWQwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHg4OCwweDhiLDB4NjAsMHgyMiwweGU1LDB4MGUsMHhiMiwweDIyLDB4ZWMsMHg4MCwweGFmLDB4MTEsMHgyYSB9fSwKLSB7MTYsIDB4ZjVlMCwgMCwgezB4MjAsMHgwYiwweGIxLDB4MTMsMHhhYywweDQ4LDB4OGIsMHg0NSwweDM0LDB4Y2MsMHg0OCwweGIwLDB4MDIsMHg2YiwweDAwLDB4YmEgfX0sCi0gezE2LCAweGY1ZjAsIDAsIHsweDgyLDB4MzYsMHgwMCwweDA4LDB4ODgsMHgyMiwweGMwLDB4MDQsMHg4OCwweDAwLDB4YTIsMHgwOCwweDhiLDB4ODgsMHg2MiwweDIwIH19LAotIHsxNiwgMHhmNjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhhMSwweDMwLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZjYxMCwgMCwgezB4MGIsMHgzMiwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MjIsMHgyYywweDAwLDB4OGIsMHgxMiwweDA2LDB4YzgsMHg4MCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGY2MjAsIDAsIHsweDIwLDB4MDIsMHhjYSwweDMwLDB4MDYsMHhjNCwweDAxLDB4YjEsMHgwMCwweDY4LDB4ODAsMHgwOSwweDIwLDB4MDIsMHg4OCwweDAwIH19LAotIHsxNiwgMHhmNjMwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMiwweDBiLDB4MDAsMHgwYSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4YiwweDYxLDB4NjIsMHhjMCwweDBiLDB4YjIsMHgwMiwweGU4LDB4MDAsMHhhYiwweDAyLDB4MmEgfX0sCi0gezE2LCAweGY2NTAsIDAsIHsweDYxLDB4MWIsMHg5MCwweDAyLDB4YTgsMHgwMCwweGFiLDB4MDAsMHgyMCwweGMwLDB4MGEsMHhiMCwweDAyLDB4NmMsMHgwNCwweGJhIH19LAotIHsxNiwgMHhmNjYwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHg4OSwweDkwLDB4MDIsMHhlNiwweDA4LDB4OTgsMHgwMCwweDIyLDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiMCB9fSwKLSB7MTYsIDB4ZjY3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZSwweDAwLDB4ZjgsMHgwMSwweDNhLDB4MDQgfX0sCi0gezE2LCAweGY2ODAsIDAsIHsweDBmLDB4YWMsMHgwMywweGVjLDB4OTAsMHhmYiwweDAyLDB4M2UsMHhlMCwweDBiLDB4OTAsMHg0MiwweDY3LDB4ODAsMHhhOCwweGM0IH19LAotIHsxNiwgMHhmNjkwLCAwLCB7MHgyMiwweDQ4LDB4MjIsMHg4NiwweDAzLDB4ZTEsMHg0MCwweGI4LDB4MDIsMHgyYSwweDQwLDB4MjksMHg5MCwweDAzLDB4ZWMsMHgwMiB9fSwKLSB7MTYsIDB4ZjZhMCwgMCwgezB4YzksMHg0OCwweDMyLDB4NDAsMHgwZiwweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2YjAsIDAsIHsweGUwLDB4MDEsMHhhYywweDQwLDB4ZmIsMHgwMCwweDFmLDB4YTIsMHgwZSwweGY4LDB4ODIsMHhmYywweDA4LDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmNmMwLCAwLCB7MHhjMCwweDBmLDB4ZmEsMHg0MywweDk2LDB4NDQsMHhkNCwweDkxLDB4M2YsMHg0MCwweDBkLDB4YzAsMHgwMywweGZhLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZjZkMCwgMCwgezB4MDgsMHgyNSwweDgwLDB4MGUsMHhlMCwweDAzLDB4ZDAsMHgwMCwweGVhLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGY2ZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGUxLDB4MjAsMHgzYSwweDUwIH19LAotIHsxNiwgMHhmNmYwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyYywweDAwLDB4ZWIsMHgwOCwweDc2LDB4MDUsMHgwZSwweGIwLDB4MjcsMHhlMCwweDEwLDB4ZWEsMHg0MCB9fSwKLSB7MTYsIDB4ZjcwMCwgMCwgezB4YjIsMHhjMCwweDBjLDB4YTQsMHg0MywweDI1LDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwOCwweDBmLDB4ODAsMHg0MywweGU4LDB4MDAgfX0sCi0gezE2LCAweGY3MTAsIDAsIHsweGQxLDB4MDgsMHhlZSwweDQwLDB4MGYsMHgwMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQwLDB4MGIsMHg5MCwweDgyLDB4MmMsMHgwMCwweDg3LDB4NDAsMHgyMiB9fSwKLSB7MTYsIDB4ZjczMCwgMCwgezB4NjAsMHg4YiwweGIwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHg1MCwweDIyLDB4ZDAsMHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4YjMgfX0sCi0gezE2LCAweGY3NDAsIDAsIHsweGM4LDB4M2UsMHhkMCwweDBiLDB4YjgsMHgwMiwweDI1LDB4MDgsMHg4YSwweDIwLDB4MmEsMHg4MCwweDhiLDB4YjgsMHg4MiwweGYyIH19LAotIHsxNiwgMHhmNzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY0LDB4MDAsMHhhMCwweGMwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Zjc2MCwgMCwgezB4MDksMHgzOCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDMsMHgyMCwweDAwLDB4MTAsMHgzMCwweDIyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGY3NzAsIDAsIHsweDYwLDB4MDgsMHgwYSwweDMwLDB4ODIsMHg0YywweDAwLDB4YjEsMHhjMCwweDAwLDB4ZDEsMHgwYiwweDM4LDB4MDIsMHg4NCwweDgwIH19LAotIHsxNiwgMHhmNzgwLCAwLCB7MHg4MiwweDAxLDB4MjAsMHg4MCwweDAzLDB4MzgsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc5MCwgMCwgezB4MjAsMHgwMSwweDE2LDB4NDAsMHg4NCwweDk4LDB4MjUsMHhlMCwweDBiLDB4N2EsMHgwMiwweGZhLDB4NDgsMHhhMywweDIwLDB4NjEgfX0sCi0gezE2LCAweGY3YTAsIDAsIHsweDI0LDB4MGIsMHg3OSwweDAwLDB4Y2UsMHhjMCwweDkzLDB4YTQsMHgyMSwweGE2LDB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4MCwweGI2IH19LAotIHsxNiwgMHhmN2IwLCAwLCB7MHg4MCwweDJkLDB4MjQsMHgwYiwweDRiLDB4MDIsMHgxYSwweDQwLDB4ODUsMHg4MSwweDIxLDB4NjAsMHgwYiwweDQ4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZjdjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTIsMHhhMCwweGI0LDB4ZmUgfX0sCi0gezE2LCAweGY3ZDAsIDAsIHsweDRiLDB4YjgsMHgwYiwweDBlLDB4MDAsMHhhMywweGIwLDB4MjQsMHhhOCwweDBlLDB4MWIsMHgwMiwweGNlLDB4YzEsMHhjMywweGMwIH19LAotIHsxNiwgMHhmN2UwLCAwLCB7MHgzMCwweDY4LDB4MmUsMHgzYSwweDQ3LDB4NGUsMHg4MCwweGYxLDB4ODAsMHgzMCwweDgwLDB4MGYsMHgyMiwweDgzLDB4ODAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdmMCwgMCwgezB4YzIsMHgxMCwweDM4LDB4ODAsMHg0ZiwweDAwLDB4MDcsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4MDAsIDAsIHsweDQwLDB4MGQsMHhiYywweDEwLDB4ZmUsMHgwNCwweDNiLDB4YzEsMHgwNywweGYwLDB4MDMsMHgxYywweGM4LDB4ZGYsMHgyYSwweDBiIH19LAotIHsxNiwgMHhmODEwLCAwLCB7MHhjNCwweDhmLDB4ZDEsMHg0MywweGY4LDB4MDIsMHg3ZiwweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjEsMHgwZiwweDNjLDB4MDAsMHhmMiB9fSwKLSB7MTYsIDB4ZjgyMCwgMCwgezB4MTEsMHgzZiwweDQxLDB4MWYsMHg1MiwweDAzLDB4YmMsMHgwZSwweGVkLDB4MTQsMHgzZiwweDQwLDB4MGYsMHhmOCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGY4MzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhmODQwLCAwLCB7MHgwZSwweGJlLDB4NGIsMHg2ZiwweDAwLDB4Y2IsMHg4MiwweDdhLDB4YzAsMHgyYywweGIwLDB4MDMsMHgyYywweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4Zjg1MCwgMCwgezB4MzIsMHgwMCwweDJjLDB4MTAsMHgwMywweDJjLDB4MDgsMHhjMCwweDAwLDB4MjYsMHg0MCwweDZjLDB4OTAsMHgxMywweDI0LDB4MTIgfX0sCi0gezE2LCAweGY4NjAsIDAsIHsweGM4LDB4MDEsMHgzZSwweDAwLDB4MGYsMHhiOCwweDBiLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwMCwweDhkLDB4MDAsMHgyMSwweDgwLDB4MGIsMHg3MCwweDgyLDB4M2MsMHgyMCwweDgzLDB4MzIsMHgyOSB9fSwKLSB7MTYsIDB4Zjg4MCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MjAsMHgxNCwweDAwLDB4ODAsMHgwMCwweDIzLDB4MDAsMHgwOCwweDUwLDB4MDYsMHg5YywweDA0LDB4ZDcgfX0sCi0gezE2LCAweGY4OTAsIDAsIHsweDAyLDB4MjgsMHg4MCwweDA4LDB4NjAsMHgwMiwweDA4LDB4MTAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhmOGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4ZjhiMCwgMCwgezB4MGIsMHg1YywweDEyLDB4MWUsMHgwNCwweDg3LDB4ODIsMHgwZCwweGEwLDB4MDksMHg3OCwweDE2LDB4MDIsMHgwMCwweGI0LDB4ODAgfX0sCi0gezE2LCAweGY4YzAsIDAsIHsweDI1LDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDAwLDB4ODQsMHg4MCwweDIxLDB4MjIsMHgwOCwweDA4LDB4MDIsMHgxMiwweDAxIH19LAotIHsxNiwgMHhmOGQwLCAwLCB7MHg4NCwweGMwLDB4MmQsMHgyMCwweDBiLDB4MDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDQyLDB4YTAsMHhkOCwweDBiLDB4MzQsMHg4MiwweDBjLDB4MDAsMHhhMywweDAyLDB4MjAgfX0sCi0gezE2LCAweGY4ZjAsIDAsIHsweGUwLDB4MDgsMHhiMCwweDAyLDB4MGMsMHg4OCwweGIzLDB4MjEsMHgyNCwweGQ4LDB4MGIsMHgzZSwweDAyLDB4OGMsMHgwMCwweDkzIH19LAotIHsxNiwgMHhmOTAwLCAwLCB7MHgwOCwweDI4LDB4YzAsMHgwOCwweDM4LDB4MDIsMHgyYywweDA1LDB4OGIsMHgwMSwweDJjLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4ZjkxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZWUsMHgwMCwweDMzLDB4OTAgfX0sCi0gezE2LCAweGY5MjAsIDAsIHsweDBmLDB4YTAsMHgwYiwweDY4LDB4MDAsMHhjYSwweDAxLDB4N2YsMHhhOCwweDBjLDB4YWEsMHgwMywweDNhLDB4MTIsMHhmZSwweGUyIH19LAotIHsxNiwgMHhmOTMwLCAwLCB7MHgzNywweGIwLDB4MGYsMHhlZSwweDAyLDB4MTgsMHgwMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MDgsMHhhMCwweDhiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4Zjk0MCwgMCwgezB4Y2EsMHg4MSwweDJlLDB4YTAsMHgwZiwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwOCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhhMiwweDAyLDB4ZDgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhmOTYwLCAwLCB7MHgwOCwweDBmLDB4ODAsMHgxMywweGUwLDB4NDAsMHg0OCwweDQwLDB4YjgsMHgwNCwweDA4LDB4ODQsMHgwMywweDYxLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4NGYsMHhjMCwweDAzLDB4ZjEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhjMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGY5ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzMCwweDUwIH19LAotIHsxNiwgMHhmOTkwLCAwLCB7MHg0YywweGI5LDB4MDMsMHg2YywweDE4LDB4ZjksMHgwMCwweDM2LDB4NDAsMHgwZSwweDljLDB4MjMsMHhhNCwweDAyLDB4NDEsMHgwMCB9fSwKLSB7MTYsIDB4ZjlhMCwgMCwgezB4YjIsMHg0NCwweDBlLDB4OWEsMHgwMywweGE2LDB4ODAsMHhjOSwweDAwLDB4M2EsMHg2MCwweDBhLDB4OTAsMHgwMywweGE0LDB4ODAgfX0sCi0gezE2LCAweGY5YjAsIDAsIHsweGM5LDB4MDAsMHgzNCwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDc4LDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgxMCwweGI5LDB4MDAsMHgzYyB9fSwKLSB7MTYsIDB4ZjlkMCwgMCwgezB4NjIsMHgxOCwweDk0LDB4ODIsMHhhNCwweDAwLDB4ODksMHhjOCwweDIyLDB4NzAsMHg0OCwweDFlLDB4MDEsMHg2NywweDgwLDB4ZDEgfX0sCi0gezE2LCAweGY5ZTAsIDAsIHsweDAwLDB4YmMsMHg0MiwweDA4LDB4MTAsMHgwMiwweDI1LDB4MjAsMHg4OSwweDAyLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmOWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiMSwweDI4LDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4ZmEwMCwgMCwgezB4MDgsMHhiMCwweDgyLDB4NjQsMHgwNCwweDM5LDB4NDEsMHgyZSwweDQ4LDB4MGEsMHg5MCwweDAyLDB4MDQsMHgxOCwweGE5LDB4MjAgfX0sCi0gezE2LCAweGZhMTAsIDAsIHsweDIyLDB4NDIsMHg0YSwweDkwLDB4MDIsMHgyYywweDA0LDB4ODksMHgwNCwweDJiLDB4NDgsMHgwMiwweGQwLDB4MDIsMHhiNCwweDBhIH19LAotIHsxNiwgMHhmYTIwLCAwLCB7MHg4ZCwweDgwLDB4MjMsMHhjMCwweDQ4LDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4YTAsMHg0OCwweDI4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDI0LDB4MmEgfX0sCi0gezE2LCAweGZhNDAsIDAsIHsweDQwLDB4MDgsMHgxMiwweDQyLDB4ODUsMHg4MCwweGExLDB4MjAsMHhhMCwweDQ4LDB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDk1IH19LAotIHsxNiwgMHhmYTUwLCAwLCB7MHgyYywweDJkLDB4NWEsMHgwYSwweDcyLDB4ODIsMHgxNCwweGEwLDB4ODUsMHhhOCwweDIxLDB4NGEsMHgwOCwweDUyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4ZmE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGZhNzAsIDAsIHsweDhjLDB4MDUsMHgwMywweDYxLDB4NDAsMHhmOCwweDUxLDB4MmUsMHgwMCwweDBhLDB4ODUsMHgwMiwweDIwLDB4MDAsMHhlOCwweDUwIH19LAotIHsxNiwgMHhmYTgwLCAwLCB7MHgzMiwweDE0LDB4MDYsMHg4NSwweDE3LDB4YTAsMHgwMCwweGM4LDB4MjAsMHgzYSwweDA4LDB4MGUsMHg4MiwweDAzLDB4YTAsMHg4MCB9fSwKLSB7MTYsIDB4ZmE5MCwgMCwgezB4YzgsMHgyMCwweDMyLDB4MDgsMHgyYywweGMyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhYTAsIDAsIHsweDk4LDB4MTksMHhmNCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4NDQsMHgwYiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNkIH19LAotIHsxNiwgMHhmYWIwLCAwLCB7MHg0MCwweDBmLDB4ZDEsMHgwMywweGY0LDB4NTgsMHg5ZCwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMywweGQ1LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGQsMHg5MCwweDAzLDB4ZTQsMHhiOCwweGY5LDB4MjgsMHhiYSwweDZhLDB4MGYsMHg5MCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGZhZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZTcsMHgwMCwweGZkLDB4ODgsMHgzZSwweDYwIH19LAotIHsxNiwgMHhmYWUwLCAwLCB7MHg4ZiwweGQwLDB4MDMsMHgyNCwweDAxLDB4ZGQsMHg4MCwweDczLDB4NDAsMHgwZiwweGQ4LDB4MDMsMHhhNiwweDA0LDB4Y2QsMHhhMiB9fSwKLSB7MTYsIDB4ZmFmMCwgMCwgezB4MzMsMHg3OCwweDFjLDB4ZDAsMHgwMywweDM0LDB4MDEsMHhmNSwweDg4LDB4M2IsMHg2OCwweDBjLDB4ZGEsMHg0NywweDM3LDB4ODAgfX0sCi0gezE2LCAweGZiMDAsIDAsIHsweGNkLDB4ODgsMHgzMiwweDYyLDB4MGMsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4MCwweGI4LDB4ODAsMHgyZSwweDE0LDB4MGIsMHgwYSwweDgyLDB4MjIsMHg4MCwweGI4LDB4ZjgsMHhhMiB9fSwKLSB7MTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwYiwweDhmLDB4YTMsMHg4MywweGUwLDB4ODgsMHhlYiwweDIyLDB4YTksMHgwOCwweDg4LDB4MTIsMHhhMCwweDA1LDB4YjggfX0sCi0gezE2LCAweGZiMzAsIDAsIHsweDAwLDB4MmEsMHhhYSwweDg4LDB4ODAsMHgxMywweDYyLDB4ODIsMHg4OCwweDgwLDB4MjIsMHgyOCwweDg4LDB4YTQsMHgwMiwweDBlIH19LAotIHsxNiwgMHhmYjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDBhLDB4MmMsMHg0MSB9fSwKLSB7MTYsIDB4ZmI1MCwgMCwgezB4MGIsMHgxMCwweDA2LDB4MDQsMHgyMCwweGExLDB4MDAsMHgwMCwweDQwLDB4OGIsMHgxMCwweDQ2LDB4YzQsMHgwMSwweDkxLDB4MTEgfX0sCi0gezE2LCAweGZiNjAsIDAsIHsweDI0LDB4NTgsMHg2OCwweDkwLDB4YzIsMHgwNCwweDAwLDB4YjEsMHgwMCwweGE4LDB4NTAsMHgwOSwweDE0LDB4MGEsMHgwNSwweDk1IH19LAotIHsxNiwgMHhmYjcwLCAwLCB7MHhhMSwweDA4LDB4YTAsMHg0MiwweDI4LDB4MTEsMHgwYSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTgsMHhiOSwweDIwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDksMHhiOSwweDAwLDB4MjIgfX0sCi0gezE2LCAweGZiOTAsIDAsIHsweDQwLDB4OGIsMHg5MSwweDAyLDB4ODQsMHgwMCwweDk5LDB4NjQsMHgyNCwweDQwLDB4NTgsMHg5MCwweDAyLDB4YTQsMHgyMCwweGJiIH19LAotIHsxNiwgMHhmYmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgwNSwweDAxLDB4YTksMHgwMCwweDIyLDB4NDAsMHg4OCwweDkyLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZmJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4ZjksMHg0MCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGZiYzAsIDAsIHsweDRmLDB4OTgsMHgwYiwweDI0LDB4ODAsMHhkOSwweDAwLDB4MjIsMHg3MiwweDBiLDB4OTgsMHgwMywweGU0LDB4ODQsMHhkOSwweDAwIH19LAotIHsxNiwgMHhmYmQwLCAwLCB7MHhiNiwweDcwLDB4MDgsMHg5OSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGQsMHg5NCwweGMyLDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4ZmJlMCwgMCwgezB4YTksMHgwMCwweDIyLDB4NDAsMHgwYywweDk0LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiZjAsIDAsIHsweDI4LDB4MDEsMHhhNiwweDgwLDB4ZjksMHgwOCwweDNlLDB4YzAsMHgwZiwweDkxLDB4NDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhmYzAwLCAwLCB7MHg1MCwweDBmLDB4OTgsMHgwMywweGE1LDB4MDAsMHhlOSwweDAwLDB4M2EsMHg2NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgzYywweDQwLDB4NmUsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGQ5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDgyLDB4Y2EgfX0sCi0gezE2LCAweGZjMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhmYzMwLCAwLCB7MHg0ZiwweDg0LDB4MGIsMHgyMCwweDAwLDB4ZjgsMHgwMCwweDM2LDB4MDEsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg0MCB9fSwKLSB7MTYsIDB4ZmM0MCwgMCwgezB4MzIsMHgxMCwweDJkLDB4ODAsMHgwMywweGUwLDB4NTQsMHhjOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4MDQsMHg4MywweGUwLDB4NTAgfX0sCi0gezE2LCAweGZjNTAsIDAsIHsweGQ4LDB4MDQsMHgxMiwweDAwLDB4MGMsMHgwMCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4NDIsMHgyZSwweGEyLDB4OGIsMHhlYSwweDAyLDB4MjgsMHgwOCwweGJlLDB4ODksMHgzNyB9fSwKLSB7MTYsIDB4ZmM3MCwgMCwgezB4ODQsMHg0OCwweGUwLDB4MTIsMHgyOCwweDAyLDB4OGUsMHhjMCwweDIzLDB4YjAsMHg0ZCwweDYwLDB4NjIsMHhmOCwweDAwLDB4ODYgfX0sCi0gezE2LCAweGZjODAsIDAsIHsweDAwLDB4MjMsMHg4MCwweDBiLDB4ZTAsMHgwMiwweGY4LDB4MDAsMHgwZSwweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTQsMHgwMiwweDBhIH19LAotIHsxNiwgMHhmYzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4ZmNhMCwgMCwgezB4MWIsMHhiMCwweDlhLDB4NGMsMHgxMCwweDliLDB4ODAsMHgyNCwweGMwLDB4MGEsMHgzMCwweDAwLDB4MGMsMHgwNCwweDliLDB4MjAgfX0sCi0gezE2LCAweGZjYjAsIDAsIHsweDIwLDB4ZDYsMHgwOCwweDMwLDB4MDIsMHg4ZSwweDA4LDB4YTMsMHgwNCwweDI0LDB4YzAsMHgxOSwweDM0LDB4MDIsMHhjNywweDA3IH19LAotIHsxNiwgMHhmY2MwLCAwLCB7MHhhYSwweGE0LDB4YTAsMHhjMCwweDQ4LDB4MzQsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDVjLDB4NDAsMHhiMywweDE0LDB4MjUgfX0sCi0gezE2LCAweGZjZTAsIDAsIHsweGUwLDB4MDgsMHg3YSwweDAyLDB4OWUsMHhjMCwweDkyLDB4NDAsMHhhMCwweDAwLDB4NDksMHg2MCwweDAyLDB4Y2UsMHgwMiwweDhlIH19LAotIHsxNiwgMHhmY2YwLCAwLCB7MHgwMSwweDIxLDB4YzAsMHg4YiwweDU0LDB4MDIsMHhjNCwweDA4LDB4ODYsMHg0MCwweDIxLDB4YzgsMHg4OCwweDEwLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4ZmQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweGMwLDB4ZTQsMHg4MCwweDNkLDB4ZTIgfX0sCi0gezE2LCAweGZkMTAsIDAsIHsweDBmLDB4NTgsMHgwMywweDVlLDB4OTAsMHhiNiwweGEyLDB4MzUsMHhlMCwweDBlLDB4N2MsMHgyMywweDFjLDB4MDAsMHhkNiwweDgwIH19LAotIHsxNiwgMHhmZDIwLCAwLCB7MHgzMSwweGUwLDB4ODQsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGM3LDB4ODAsMHgzNSwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4ZmQzMCwgMCwgezB4ZTMsMHg4MCwweDMzLDB4ZTgsMHgyYywweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkNDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDkwLDB4ZmEsMHgwMCwweDdlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhYywweDAxLDB4ZmIsMHgwMCwweDNjIH19LAotIHsxNiwgMHhmZDUwLCAwLCB7MHg0MSwweDBmLDB4MzAsMHgwYiwweDJkLDB4MDQsMHhlYiwweDAxLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4NjAsMHgzZSwweGU0LDB4MGYsMHg5MCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGZkNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgyMCwweGZmLDB4OTAsMHgzZSwweDIwIH19LAotIHsxNiwgMHhmZDgwLCAwLCB7MHgwYywweGE5LDB4MDcsMHgyZSwweDQ0LDB4YzksMHg5MSwweDMwLDB4YTAsMHgwYywweGI4LDB4NjMsMHgyZiwweDQ0LDB4Y2IsMHhhMSB9fSwKLSB7MTYsIDB4ZmQ5MCwgMCwgezB4MzYsMHgyMCwweDhjLDB4ZjgsMHgwMywweDM2LDB4MDAsMHhjZiwweDgyLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgyMywweDJlLDB4MDAgfX0sCi0gezE2LCAweGZkYTAsIDAsIHsweGNlLDB4YzAsMHgzYiwweGUwLDB4MGMsMHg2OCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4NCwweGIzLDB4NTQsMHgyYywweGY0LDB4MjgsMHhiYSwweDhhLDB4M2UsMHg0MCwweDgxLDB4YTAsMHgyOSB9fSwKLSB7MTYsIDB4ZmRjMCwgMCwgezB4YjAsMHgwZiwweDc4LDB4NDIsMHhhZSwweDAwLDB4ODMsMHg5MCwweDMzLDB4ZTgsMHgwZCwweGUxLDB4MDAsMHg4NSwweDQwLDB4ODIgfX0sCi0gezE2LCAweGZkZDAsIDAsIHsweDI0LDB4MjMsMHhjNiwweDBkLDB4NzEsMHgwMywweDVlLDB4ZTAsMHg4NywweDAwLDB4MmIsMHhjMSwweDBkLDB4NDQsMHgwMiwweDJhIH19LAotIHsxNiwgMHhmZGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDgsMHgzNSwweDE0LDB4NmQsMHhjMCB9fSwKLSB7MTYsIDB4ZmRmMCwgMCwgezB4ODgsMHg3MiwweDMyLDB4NWMsMHg4MCwweDg0LDB4MzAsMHgyYiwweDg4LDB4MGEsMHg3MCwweDQyLDB4NWMsMHhhOCwweDkxLDB4MDggfX0sCi0gezE2LCAweGZlMDAsIDAsIHsweDI1LDB4YzgsMHgwOSwweDcwLDB4MDIsMHg0YywweDIyLDB4ODMsMHgwYSwweDYxLDB4YzAsMHgwOSwweDIwLDB4MDIsMHgwNCwweDAwIH19LAotIHsxNiwgMHhmZTEwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MTAsMHhiMywweDg1LDB4NmMsMHhkYywweDA4LDB4MzQsMHgwMiwweDRkLDB4MjEsMHg4MSwweDAwLDB4MjggfX0sCi0gezE2LCAweGZlMzAsIDAsIHsweDAyLDB4NGEsMHgzMSwweDEyLDB4ZWYsMHgwYywweDkxLDB4YzIsMHgyMCwweGYwLDB4MDgsMHgzMCwweDQyLDB4OGUsMHgwMCwweDgyIH19LAotIHsxNiwgMHhmZTQwLCAwLCB7MHg0MCwweDIwLDB4YzgsMHgxOSwweDI4LDB4MDIsMHgyMiwweDgxLDB4ODMsMHhjMCwweDI4LDB4ZDQsMHgwOSwweDAwLDB4MGEsMHgwOCB9fSwKLSB7MTYsIDB4ZmU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmIsMHhhMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGZlNjAsIDAsIHsweDhjLDB4MDQsMHgxMiwweDdkLDB4MTAsMHhjZiwweDAyLDB4M2EsMHg1MCwweDA4LDB4YzAsMHg0MiwweDdkLDB4NTIsMHg1OCwweDAxIH19LAotIHsxNiwgMHhmZTcwLCAwLCB7MHgzNiwweDIyLDB4NjksMHhkMCwweDEzLDB4MmEsMHgwMCwweDg4LDB4ODIsMHgzMiwweGYwLDB4MDksMHhiOCwweDgyLDB4MmYsMHgwMCB9fSwKLSB7MTYsIDB4ZmU4MCwgMCwgezB4YzksMHhjOCwweDIzLDB4YzAsMHgwYywweDhhLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZlOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4YjksMHg0MCwweDNjLDB4NTAsMHg0ZiwweDgwLDB4MjMsMHhhYywweDEyLDB4ZmIsMHgwMCwweDJhIH19LAotIHsxNiwgMHhmZWEwLCAwLCB7MHhjMCwweDZkLDB4ODAsMHgxMywweGFjLDB4MDAsMHhlOCwweDA0LDB4YmEsMHgxMCwweDBmLDB4ODAsMHgwMywweGU4LDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZmViMCwgMCwgezB4MDgsMHgzYywweDgwLDB4MGYsMHg5MCwweDgzLDB4ZWMsMHgwNCwweGY5LDB4NjAsMHgyYywweGMyLDB4MGYsMHg4MCwweDgzLDB4ZTAgfX0sCi0gezE2LCAweGZlYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGVjLDB4MmMsMHgzZiwweGYwIH19LAotIHsxNiwgMHhmZWQwLCAwLCB7MHg4YywweGZhLDB4OGIsMHhiYywweDAwLDB4ZmUsMHgwMCwweDNmLDB4MDAsMHgwZiwweDc5LDB4MDMsMHgzYywweDAwLDB4Y2UsMHgwOCB9fSwKLSB7MTYsIDB4ZmVlMCwgMCwgezB4MGIsMHhjMiwweDBjLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4MzMsMHg0MCwweDhjLDB4N2EsMHgwMywweDNhLDB4MDAgfX0sCi0gezE2LCAweGZlZjAsIDAsIHsweGM1LDB4MDAsMHgzMywweGMwLDB4NGMsMHhjOCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDg4LDB4YzAsMHgyZSwweGUwLDB4MDgsMHg5NCwweDAyLDB4MmMsMHgwMCwweGJiLDB4ODAsMHg2NiB9fSwKLSB7MTYsIDB4ZmYxMCwgMCwgezB4MzAsMHgxNiwweGIwLDB4MDIsMHgyYywweDAwLDB4ZGEsMHg0YywweDIyLDB4ZjAsMHgwOCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWIgfX0sCi0gezE2LCAweGZmMjAsIDAsIHsweGMwLDB4MjIsMHg2OCwweDAwLDB4OTQsMHgwMiwweDJjLDB4MDIsMHhhOSwweDgwLDB4MjIsMHhjMCwweDA4LDB4MGMsMHgwMiwweGEwIH19LAotIHsxNiwgMHhmZjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDA0LDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZmY0MCwgMCwgezB4MDgsMHhhNCwweDA2LDB4MmMsMHgwNCwweGFiLDB4MTAsMHgyZSwweDYwLDB4NDMsMHg4MCwweDgyLDB4NmMsMHgwMSwweDgxLDB4ODAgfX0sCi0gezE2LCAweGZmNTAsIDAsIHsweDI4LDB4MGEsMHgwOCwweDkxLDB4MDAsMHhlMCwweDAwLDB4YjgsMHg4MCwweDAyLDB4ZTAsMHgwOCwweDgwLDB4MDIsMHgyZCwweDgwIH19LAotIHsxNiwgMHhmZjYwLCAwLCB7MHg4OCwweGMwLDB4MjIsMHhjMCwweDA4LDB4ODIsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MCwweDQ0LDB4MmMsMHhjOCwweDI4LDB4YTAsMHgyMiwweDBjLDB4MDQsMHhiMywweDI2LDB4MmMgfX0sCi0gezE2LCAweGZmODAsIDAsIHsweGM4LDB4ODgsMHgwMSwweDA2LDB4MGMsMHhlMCwweDkxLDB4MjAsMHgyMCwweDBjLDB4MzgsMHgwNCwweDIyLDB4YzAsMHg0OCwweGEzIH19LAotIHsxNiwgMHhmZjkwLCAwLCB7MHg0MiwweGEwLDB4ODEsMHgwOCwweDAwLDB4MDIsMHgwYywweDgwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgyOCwweDAwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4ZmZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4YTksMHg0MCwweDNlLDB4NDQgfX0sCi0gezE2LCAweGZmYjAsIDAsIHsweDA4LDB4YjEsMHgwMywweDJjLDB4NDAsMHhlYSwweDQ5LDB4MmUsMHgwZCwweDBiLDB4YjYsMHgxMywweDdkLDB4ODAsMHhjOSwweDQwIH19LAotIHsxNiwgMHhmZmMwLCAwLCB7MHhiYSwweGQwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZmZkMCwgMCwgezB4YzUsMHgwMCwweGIyLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNkLDB4YzUsMHgwYiwweGYxLDB4MDAsMHhmYywweGQwLDB4NzcsMHgyOSwweDM3IH19LAotIHsxNiwgMHhmZmYwLCAwLCB7MHgwYywweDhlLDB4NzQsMHgwMywweGZjLDB4MDgsMHhmZCwweDY5LDB4M2YsMHhkOCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4ODAxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MDcsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDgwMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDBkLDB4ZmMsMHhjMCwweGRjLDB4ODAsMHgzZiwweGM4IH19LAotIHsxNiwgMHg4MDMwLCAwLCB7MHgwZiwweDQ4LDB4MDMsMHg3YywweDIwLDB4ZmYsMHg2OCwweDM3LDB4ZTAsMHgwZSwweGYxLDB4MDMsMHg5YywweDAwLDB4YmYsMHgyMCB9fSwKLSB7MTYsIDB4ODA0MCwgMCwgezB4MzcsMHhlMCwweDBjLDB4YzgsMHgxMywweDNjLDB4NDAsMHhlZCwweDYwLDB4YmIsMHhlNCwweDJjLDB4NDMsMHg0YiwweDcwLDB4YTAgfX0sCi0gezE2LCAweDgwNTAsIDAsIHsweGNjLDB4MmMsMHgzZiwweDA5LDB4MGYsMHhkOCwweDQzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDYwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHhjMCwweGI4LDB4ODAsMHgyZiwweGY0LDB4MGYsMHg5OCwweDAyLDB4M2YsMHgwMCwweGJmLDB4NDIsMHgyMiB9fSwKLSB7MTYsIDB4ODA3MCwgMCwgezB4Y2EsMHgwOCwweGY0LDB4MDIsMHgzZSwweDAwLDB4YmYsMHhkMCwweDIyLDB4NjAsMHgyOCwweDg4LDB4MGEsMHgzZCwweDgwLDB4OGQgfX0sCi0gezE2LCAweDgwODAsIDAsIHsweDQwLDB4MjIsMHhjOCwweDA4LDB4ODEsMHgwMiwweDIxLDB4ODAsMHhkYiwweGMwLDB4MmUsMHhhNSwweDBiLDB4OTgsMHg0MiwweDIwIH19LAotIHsxNiwgMHg4MDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MTAsMHhiMCwweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODBhMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MjAsMHgyNiwweGMwLDB4OGEsMHgzNiwweDEyLDB4OGMsMHg0MSwweGIzLDB4MDAgfX0sCi0gezE2LCAweDgwYjAsIDAsIHsweDJlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHgwZCwweDgxLDB4YTEsMHgzMCwweDIyLDB4YzgsMHg4OSwweGEyLDB4NDIsMHgwOCwweDIwIH19LAotIHsxNiwgMHg4MGMwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDBiLDB4OTAsMHgyNiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4MjIgfX0sCi0gezE2LCAweDgwZTAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDYyLDB4MmMsMHgxMCwweGJiLDB4MDQsMHgyYSwweGYwLDB4NGEsMHg4OCwweDAyLDB4MGMsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOSwweGI4LDB4ODAsMHgyNiwweDAwLDB4YjgsMHg4MCwweDJlLDB4MjEsMHgwYiwweDkwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ODEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTUsMHhlYywweDAwLDB4ZDgsMHhjMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweDgxMTAsIDAsIHsweDBiLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4MzYsMHg4MCwweDBlLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHg4MTIwLCAwLCB7MHgzYywweGUwLDB4MGMsMHgwYywweDAzLDB4MmMsMHgwMCwweGU5LDB4MDAsMHgxMCwweGMwLDB4MGMsMHg4YywweDAzLDB4MDYsMHgwMCB9fSwKLSB7MTYsIDB4ODEzMCwgMCwgezB4ZjgsMHhjZCwweDNlLDB4MjIsMHgwZiwweDE4LDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHg3YywweDAwLDB4ZjcsMHgwMiwweDNmIH19LAotIHsxNiwgMHg4MTUwLCAwLCB7MHhlNCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDQsMHhiNywweDAwLDB4MzcsMHg0MCwweDBkLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4ODE2MCwgMCwgezB4MDAsMHgzNywweGQwLDB4MGUsMHhjMCwweDQzLDB4ZjQsMHgwMCwweGRmLDB4MDAsMHgzZiwweDgwLDB4OGYsMHhkYSwweDAzLDB4ZjggfX0sCi0gezE2LCAweDgxNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY4LDB4MTAsMHgzYSwweGMwIH19LAotIHsxNiwgMHg4MTgwLCAwLCB7MHg2ZCwweGE2LDB4MTMsMHhlYywweDAwLDB4Y2IsMHgwMCwweDNhLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHgyYywweDEwLDB4ZGIsMHgxMCB9fSwKLSB7MTYsIDB4ODE5MCwgMCwgezB4MzYsMHhkOCwweDBkLDB4ODQsMHgwMywweGVjLDB4MDYsMHhjOSwweDA4LDB4M2EsMHhjMCwweDBlLDB4ODYsMHgwMywweGE4LDB4NjAgfX0sCi0gezE2LCAweDgxYTAsIDAsIHsweGY4LDB4MjAsMHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4NTQsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWIwLCAwLCB7MHg5OCwweDA1LDB4M2MsMHgwMCwweGJiLDB4NDAsMHgyMywweGQwLDB4MDgsMHgzMCwweDAyLDB4M2UsMHgxMCwweGFmLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ODFjMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MDIsMHgzYywweDAwLDB4OGYsMHg1MCwweDJlLDB4YzgsMHgwNiwweDhhLDB4MDIsMHhmYywweDAwLDB4OGQgfX0sCi0gezE2LCAweDgxZDAsIDAsIHsweDI0LDB4ODIsMHhkNiwweDA4LDB4MzIsMHgwMiwweDJkLDB4MDgsMHgzYSwweDQwLDB4MjIsMHg4MCwweDBkLDB4OTAsMHgwMywweDYyIH19LAotIHsxNiwgMHg4MWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDIwLDB4MjgsMHhjMiB9fSwKLSB7MTYsIDB4ODFmMCwgMCwgezB4MDgsMHgwNCwweDAyLDB4OGMsMHgwMCwweDEzLDB4MDIsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgzMCwweDkzLDB4ODAgfX0sCi0gezE2LCAweDgyMDAsIDAsIHsweDI0LDB4ZDAsMHgwOSwweDIwLDB4MDIsMHhjYywweDAwLDB4OTEsMHg0MCwweDA4LDB4YzAsMHgyYSwweDE0LDB4MDIsMHg4MSwweDAwIH19LAotIHsxNiwgMHg4MjEwLCAwLCB7MHg5MCwweDAwLDB4NjgsMHgwMCwweDA4LDB4MTgsMHgwMiwweDNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODIyMCwgMCwgezB4NzAsMHgwMSwweDFlLDB4MDAsMHhiNCwweGEwLDB4MjEsMHhlMCwweDA4LDB4YzgsMHgxMiwweDllLDB4MDAsMHhiMywweDgyLDB4MjEgfX0sCi0gezE2LCAweDgyMzAsIDAsIHsweGUwLDB4MGIsMHg3YSwweDBhLDB4MWUsMHgwMCwweDk3LDB4ODAsMHgyZCwweGUxLDB4MGEsMHg0OCwweDAyLDB4Y2UsMHg0MCwweDk1IH19LAotIHsxNiwgMHg4MjQwLCAwLCB7MHg5MCwweDI5LDB4ZTQsMHgwOCwweDU4LDB4MDIsMHg5YSwweDAwLDB4YjcsMHg4OCwweDIxLDB4ZTAsMHgwOSwweDU4LDB4MDIsMHg1YyB9fSwKLSB7MTYsIDB4ODI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDRhLDB4MDAsMHgwYywweDAwLDB4ZjAsMHg4MCwweDM4LDB4YzQgfX0sCi0gezE2LCAweDgyNjAsIDAsIHsweDBjLDB4MjUsMHgwMywweDhjLDB4MjAsMHg5MywweDAwLDB4MzgsMHhjNCwweDBmLDB4YjAsMHgwMywweDBjLDB4ODAsMHhkMywweDAwIH19LAotIHsxNiwgMHg4MjcwLCAwLCB7MHgzNCwweGMwLDB4MGQsMHgwNCwweDEzLDB4Y2MsMHgwOCwweDk5LDB4MDAsMHgyYSwweGMwLDB4MGUsMHgyMSwweDAzLDB4ODgsMHgwNCB9fSwKLSB7MTYsIDB4ODI4MCwgMCwgezB4ZjMsMHgwMCwweDM4LDB4YzAsMHgwYywweDExLDB4ODMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgyOTAsIDAsIHsweDQyLDB4MTUsMHhiYywweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzMsMHgwZSwweGMwLDB4MDMsMHgxYywweDAwLDB4YWYsMHg0YSwweDdmIH19LAotIHsxNiwgMHg4MmEwLCAwLCB7MHhjNCwweDBmLDB4YjIsMHgwMywweGZkLDB4MDEsMHhlZiwweDEwLDB4M2YsMHg4NCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ODJiMCwgMCwgezB4MDAsMHgzNywweGMyLDB4MGUsMHhmMSwweDQ3LDB4N2MsMHgwMCwweGY3LDB4MDAsMHgzZCwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDgyYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhYSwweDE1LDB4ZWMsMHgwOCwweGY4LDB4MDAsMHgzZSwweGNhIH19LAotIHsxNiwgMHg4MmQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZiwweDIxLDB4ZmIsMHg4MCwweDdhLDB4NDAsMHg4ZiwweGIyLDB4YTEsMHgyZiwweDAwLDB4Y2IsMHg2MCB9fSwKLSB7MTYsIDB4ODJlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4YTAsMHhlOSwweDMwLDB4MzIsMHhjMCwweDJkLDB4YjAsMHgwMywweGU0LDB4MDAgfX0sCi0gezE2LCAweDgyZjAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MzAwLCAwLCB7MHhjOCwweDkxLDB4OWQsMHgwMCwweGI0LDB4MDEsMHgyZCwweGM4LDB4MGIsMHg3MCwweDAyLDB4Y2MsMHg4MCwweDhmLDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4ODMxMCwgMCwgezB4YzAsMHg4YiwweDc2LDB4MDMsMHg1ZCwweDAwLDB4ODcsMHgwYSwweDJkLDB4YzAsMHgwYiwweDQwLDB4MjIsMHhmZCwweDAwLDB4OGQgfX0sCi0gezE2LCAweDgzMjAsIDAsIHsweDEwLDB4MjMsMHhjOCwweDA4LDB4NTAsMHgxMiwweGQ0LDB4MDAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGYyIH19LAotIHsxNiwgMHg4MzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDllLDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4ODM0MCwgMCwgezB4MGIsMHg3YywweDAyLDB4ZGUsMHg0MCwweGE3LDB4ODIsMHgyZCwweGUwLDB4MGIsMHgzYSwweDAyLDB4OGUsMHgwMCwweDg3LDB4OTAgfX0sCi0gezE2LCAweDgzNTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweDU4LDB4MDIsMHg1ZSwweDAwLDB4YTUsMHhhMiwweDY1LDB4ZTAsMHgwOCwweDY4LDB4ODIsMHhkYSwweDAwIH19LAotIHsxNiwgMHg4MzYwLCAwLCB7MHg5NSwweDgwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODM3MCwgMCwgezB4MDgsMHg4NCwweGNjLDB4MDAsMHhiMCwweDA5LDB4MmMsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwLDB4MmUgfX0sCi0gezE2LCAweDgzODAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDQyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweGEwLDB4MGIsMHgwNCwweDAyLDB4Y2MsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4MzkwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHgwOCwweGIwLDB4MDYsMHhjZiwweDgwLDB4YjMsMHgxMCwweDJjLDB4YzQsMHgwYiwweDMxLDB4MDIsMHhjMyB9fSwKLSB7MTYsIDB4ODNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDgzYjAsIDAsIHsweDBmLDB4ZTgsMHgxMywweGU4LDB4MDAsMHhlYSwweDAwLDB4M2YsMHhiMCwweDBmLDB4YTAsMHgwMywweGE4LDB4MDIsMHhjMiwweDAwIH19LAotIHsxNiwgMHg4M2MwLCAwLCB7MHgyZiwweDg4LDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzNiwweDAwLDB4MGMsMHhlMCwweDAzLDB4ZjksMHgyMCB9fSwKLSB7MTYsIDB4ODNkMCwgMCwgezB4ZGUsMHg4MCwweDNmLDB4YTAsMHg0ZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgxMCwweDNjLDB4MTAsMHgwZiwweDgwLDB4ODMsMHhlMSwweDAwLDB4ZTgsMHgwMCwweDIyIH19LAotIHsxNiwgMHg4M2YwLCAwLCB7MHgwNiwweDBmLDB4MDAsMHgxMywweGUwLDB4MDEsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDIzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDg0MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHgzZSwweDQ0IH19LAotIHsxNiwgMHg4NDIwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MTIsMHgyNCwweDAwLDB4ZjksMHgxMCB9fSwKLSB7MTYsIDB4ODQzMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBjLDB4OWMsMHgwMSwweDI0LDB4MDAgfX0sCi0gezE2LCAweDg0NDAsIDAsIHsweGY5LDB4MTAsMHgzZSwweDcwLDB4MGYsMHg5MCwweDAyLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NDUwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweGI5LDB4YzAsMHgyZSwweDQ4LDB4MDgsMHg5MSwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODQ2MCwgMCwgezB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NywweDAwLDB4YjksMHg4MCwweDJhLDB4NjAsMHgwYiwweDk5LDB4MDIsMHhlNCwweDAwLDB4ODEgfX0sCi0gezE2LCAweDg0NzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDJjLDB4OTAsMHgxMiwweDI1LDB4MjAsMHhiOSwweDQ4LDB4MmUsMHg1MiwweDBiLDB4OTQsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4NDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ODQ5MCwgMCwgezB4NjgsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHg2MCwweGI5LDB4MDAgfX0sCi0gezE2LCAweDg0YTAsIDAsIHsweDIyLDB4NDgsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAyLDB4ODksMHgwMCwweGEwLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNiwweDEwIH19LAotIHsxNiwgMHg4NGIwLCAwLCB7MHhiOSwweDAwLDB4MGUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODRjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4ODQsMHhiMSwweDIwLDB4MmMgfX0sCi0gezE2LCAweDg0ZDAsIDAsIHsweDQwLDB4MDksMHgxMiwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDAyLDB4YzQsMHg4MCwweDg5IH19LAotIHsxNiwgMHg4NGUwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHg0YiwweDEyLDB4MGEsMHg4NCwweDg0LDB4YjEsMHgyMCwweDJjLDB4NDgsMHg4YiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODRmMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YmEsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweDg1MDAsIDAsIHsweDBjLDB4ODAsMHgwMywweGU4LDB4MDgsMHhmOCwweDUwLDB4M2UsMHgxNCwweDBjLDB4ODUsMHgwMywweDIwLDB4MDAsMHhiOCwweDAwIH19LAotIHsxNiwgMHg4NTEwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHhhMCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGMsMHhhNSwweDAzLDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4ODUyMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1MzAsIDAsIHsweDg4LDB4MGQsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4YjksMHgxMSwweDNmIH19LAotIHsxNiwgMHg4NTQwLCAwLCB7MHg0MCwweDBmLDB4OTEsMHgwMywweDY0LDB4NDQsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ODU1MCwgMCwgezB4MTAsMHgzZiwweDEwLDB4OGMsMHhkMSwweDAzLDB4NzQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDg1NjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4NjYsMHgyMCwweGVkLDB4MDAsMHgzMywweDY5IH19LAotIHsxNiwgMHg4NTcwLCAwLCB7MHg0ZCwweDUwLDB4NDMsMHg1NiwweDAwLDB4ZjksMHhhMCwweDM0LDB4NDAsMHgwZiwweDlhLDB4MGIsMHgzNCwweDAwLDB4ZGQsMHg4MCB9fSwKLSB7MTYsIDB4ODU4MCwgMCwgezB4M2IsMHg0MCwweDBiLDB4NTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHhlMCwweDBlLDB4ZDAsMHgwMywweGY0LDB4MDAgfX0sCi0gezE2LCAweDg1OTAsIDAsIHsweGZkLDB4MDAsMHgzZiwweDQwLDB4MGMsMHhkMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NWEwLCAwLCB7MHg3OCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4MDQsMHgyMiwweDEwLDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwOSwweGI4LDB4ZjAsMHgyMiB9fSwKLSB7MTYsIDB4ODViMCwgMCwgezB4MDAsMHgwYiwweDhlLDB4MTIsMHhhMCwweDAwLDB4YjgsMHg1MiwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMCwweDA1LDB4YjggfX0sCi0gezE2LCAweDg1YzAsIDAsIHsweGFhLDB4MjMsMHgzZSwweDBkLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4M2EsMHgwMCwweDA4LDB4ODAsMHgwMiwweGNlIH19LAotIHsxNiwgMHg4NWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MjAsMHhhOSwweDAwLDB4YTQsMHg0NCB9fSwKLSB7MTYsIDB4ODVlMCwgMCwgezB4MDksMHg5MCwweDAyLDB4YzUsMHgwMCwweGExLDB4MDgsMHgyYywweDQwLDB4MGIsMHgxMSwweDgyLDB4MDQsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweDg1ZjAsIDAsIHsweDI4LDB4NDAsMHgwYSwweDEwLDB4NDIsMHhjNCwweDAwLDB4YjUsMHgwMCwweGExLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHg4NjAwLCAwLCB7MHhiMSwweDAxLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgyMCwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMCwweGFjLDB4MDAsMHgzOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg2MjAsIDAsIHsweDQwLDB4MGIsMHgxMCwweDAyLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQ4LDB4MGIsMHg5MCwweDEyLDB4ZTQsMHgwMCwweGI5IH19LAotIHsxNiwgMHg4NjMwLCAwLCB7MHgwMCwweDIxLDB4NjAsMHgwOSwweDkyLDB4MjIsMHhlNCwweDI4LDB4YjksMHgwMCwweDBhLDB4NTAsMHgwOCwweDkwLDB4MDYsMHhjNiB9fSwKLSB7MTYsIDB4ODY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweDg2NTAsIDAsIHsweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0OCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4NjYwLCAwLCB7MHgzYSwweDc4LDB4MGUsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHhiMiwweDQwLDB4MGUsMHg5MiwweDIzLDB4ZTYsMHgwMCB9fSwKLSB7MTYsIDB4ODY3MCwgMCwgezB4YjksMHg1MCwweDNlLDB4NzAsMHgyYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg2ODAsIDAsIHsweDY4LDB4MDEsMHg4NCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg0ZiwweDljLDB4MjMsMHg2NCwweDAwLDB4ZjksMHgwNCwweDM2IH19LAotIHsxNiwgMHg4NjkwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ODZhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDgzLDB4ZTQsMHg0NCwweGY5LDB4MDAsMHg3OCwweDY0LDB4MGYsMHg5MCwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDg2YjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHg4NmMwLCAwLCB7MHgwZiwweDgyLDB4MDMsMHhhMCwweDQwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMCwweGMwLDB4YzgsMHg4MCB9fSwKLSB7MTYsIDB4ODZkMCwgMCwgezB4M2UsMHgxMiwweDBmLDB4ODAsMHgwMywweDYwLDB4MDAsMHg3YywweDAwLDB4MzMsMHgwMCwweDBkLDB4ODAsMHgxMywweGUwLDB4MTAgfX0sCi0gezE2LCAweDg2ZTAsIDAsIHsweGM4LDB4NjQsMHgzZSwweDA4LDB4MGMsMHg4MiwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NmYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGI2LDB4ZTAsMHgwZiwweGEwLDB4MGIsMHg2MCwweDgyLDB4MzgsMHgwMCwweGFhLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODcwMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4NDIsMHhiYSwweDAwLDB4YWUsMHgyMCwweDJmLDB4ODgsMHgwYiwweGU1LDB4MDIsMHgyOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweDg3MTAsIDAsIHsweGQ4LDB4MzcsMHg4MCwweDA4LDB4ZWMsMHgwMiwweGY4LDB4MDQsMHg4ZSwweDAwLDB4MmYsMHg5MCwweDBkLDB4ZTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg4NzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDI0LDB4MmMsMHg2MCB9fSwKLSB7MTYsIDB4ODczMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4OGUsMHg4MCwweGFiLDB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4MGQsMHgwOCwweDAwLDB4ODAgfX0sCi0gezE2LCAweDg3NDAsIDAsIHsweDZjLDB4ZDAsMHgwYiwweDM0LDB4MDIsMHhjYywweDAwLDB4YjgsMHhjMCwweDIwLDB4MDAsMHg0OCwweDM0LDB4MTIsMHhjYywweDQwIH19LAotIHsxNiwgMHg4NzUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlMCwweDBhLDB4MzUsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODc2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4MmQsMHgwMiwweDhiLDB4NjAsMHgwMiwweDllLDB4MDAsMHg4NywweDIwLDB4MmYgfX0sCi0gezE2LCAweDg3NzAsIDAsIHsweGUwLDB4MDgsMHg3MiwweDAyLDB4OWUsMHgwMCwweGE0LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhmOCwweDAyLDB4OWMsMHhjMCwweGIzIH19LAotIHsxNiwgMHg4NzgwLCAwLCB7MHgwMiwweGE1LDB4YzAsMHgwOCwweDUwLDB4ODYsMHhmZSwweDAwLDB4ODcsMHgwMCwweDJmLDB4ZDAsMHgwOSwweDcwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ODc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjQsMHg4MCwweDNkLDB4MjAgfX0sCi0gezE2LCAweDg3YTAsIDAsIHsweDBmLDB4NTgsMHgwMywweDllLDB4MDAsMHg2NywweDgwLDB4M2QsMHhmOCwweDBkLDB4MzgsMHgwMiwweDFhLDB4MTAsMHg0NCwweDgwIH19LAotIHsxNiwgMHg4N2IwLCAwLCB7MHgzZCwweGUwLDB4MGYsMHg1OCwweDAzLDB4ZGUsMHgyMCwweGI0LDB4ODAsMHgzMywweGEwLDB4MmMsMHg2OCwweDAzLDB4ZDYsMHgwMCB9fSwKLSB7MTYsIDB4ODdjMCwgMCwgezB4YzcsMHg4MSwweDNkLDB4ZTAsMHgwYywweDc4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3ZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDA4LDB4ZjgsMHgwMCwweDNlLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHg2YywweDAwLDB4M2IsMHgxMiwweDNlIH19LAotIHsxNiwgMHg4N2UwLCAwLCB7MHhjYSwweDBmLDB4YjUsMHgwMywweGM4LDB4MDAsMHhmOCwweDA0LDB4N2UsMHhjMCwweDBmLDB4OTAsMHgwMywweDZjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ODdmMCwgMCwgezB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4YzgsMHgwMCwweGY5LDB4MDEsMHgzYywweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDg4MDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGFjLDB4OTAsMHgzMSwweDQ4IH19LAotIHsxNiwgMHg4ODEwLCAwLCB7MHgwOCwweGY4LDB4MDMsMHhmYSwweDAwLDB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MTMsMHgzZSwweDA0LDB4ZmMsMHg4MCB9fSwKLSB7MTYsIDB4ODgyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4NzgsMHgwMywweGJlLDB4MDAsMHhkZiwweDgwLDB4M2IsMHgyMCwweDI0LDB4ZjgsMHgwMywweDJlLDB4NDAgfX0sCi0gezE2LCAweDg4MzAsIDAsIHsweGNmLDB4ODAsMHgzMywweGUwLDB4MDMsMHhmOSwweDAzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ODQwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDgwLDB4MDAsMHgwMSwweDAwLDB4MDgsMHg3MiwweDAyLDB4ZDAsMHgwMCwweDg3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4ODg1MCwgMCwgezB4YzgsMHgwYSwweGYwLDB4MDIsMHg5OCwweDQwLDB4ZjUsMHgwMCwweDYxLDB4NDEsMHgwMCwweDc0LDB4MDIsMHgxYywweDAwLDB4YjQgfX0sCi0gezE2LCAweDg4NjAsIDAsIHsweDAwLDB4MjEsMHhjOCwweDA4LDB4NjAsMHgwMiwweDNlLDB4MjAsMHg4NiwweDA4LDB4MjEsMHhkOCwweDBmLDB4NTAsMHgwMiwweGVhIH19LAotIHsxNiwgMHg4ODcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHhhNCwweDAwLDB4MjEsMHgwMCB9fSwKLSB7MTYsIDB4ODg4MCwgMCwgezB4MDgsMHg1MCwweDAyLDB4ZDgsMHgwMCwweDk3LDB4MDAsMHgyZCwweGMwLDB4ODgsMHg3MSwweDAyLDB4MTQsMHgwMCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDg4OTAsIDAsIHsweDI1LDB4OTAsMHgwOCwweGMwLDB4ODIsMHg5YywweDQwLDB4OTMsMHgwMCwweDI5LDB4YTEsMHg4OCwweDYwLDB4MDIsMHgxNCwweDEyIH19LAotIHsxNiwgMHg4OGEwLCAwLCB7MHg4NywweDQwLDB4MjksMHg0MCwweDBiLDB4NjAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODhiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg4MCwweGQwLDB4YTAsMHgwMCwweDA4LDB4MWMsMHgwMiwweGMwLDB4MDAsMHg5MywweDAwLDB4MmMgfX0sCi0gezE2LCAweDg4YzAsIDAsIHsweGQwLDB4MGEsMHhiMCwweDI2LDB4ODAsMHgwMCwweGIzLDB4MDAsMHgyNCwweGU0LDB4MDgsMHgwOCwweDAyLDB4OGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHg4OGQwLCAwLCB7MHgwMiwweDAyLDB4NDEsMHgwOCwweDA4LDB4MDIsMHgwMywweDAxLDB4ODEsMHgwMCwweDI4LDB4NDIsMHgxYSwweDAwLDB4NDIsMHhkOCB9fSwKLSB7MTYsIDB4ODhlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhiYywweDAwLDB4ZTgsMHhjMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg4ZjAsIDAsIHsweDBjLDB4YjUsMHgwMywweGU0LDB4MDAsMHg5ZiwweDAwLDB4M2QsMHhlMCwweDBjLDB4ZjAsMHgwYiwweDI0LDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg4OTAwLCAwLCB7MHgzNiwweGUwLDB4MGMsMHgyNSwweDAzLDB4YmMsMHgwNSwweGQ4LDB4MDIsMHgyYSwweDAwLDB4MDgsMHhiYSwweDAyLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4ODkxMCwgMCwgezB4YzEsMHgwMiwweDNhLDB4NTAsMHg4YiwweDkwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5MjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwOCwweDNlLDB4ODAsMHgwZiwweGExLDB4MDMsMHhlYywweDA0LDB4ZWIsMHgwMiwweDJlIH19LAotIHsxNiwgMHg4OTMwLCAwLCB7MHhjNiwweDBmLDB4YjAsMHgxNywweDQ0LDB4MDAsMHhlOCwweDAwLDB4M2EsMHg0MCwweDBmLDB4ODAsMHgwMiwweDZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ODk0MCwgMCwgezB4MDAsMHgzZSwweGUwLDB4MGYsMHg5MCwweDkzLDB4ZTEsMHgwMCwweGQ5LDB4MDAsMHgyNiwweDcwLDB4OGYsMHg5MCwweDAxLDB4ZTEgfX0sCi0gezE2LCAweDg5NTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZmMsMHgwMCwweGZjLDB4MDMsMHgzNywweDI0IH19LAotIHsxNiwgMHg4OTYwLCAwLCB7MHgwZCwweGY4LDB4MDMsMHhlMCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzEsMHg4ZCwweGYwLDB4MGIsMHgzOCwweDAwLDB4Y2MsMHgwMCB9fSwKLSB7MTYsIDB4ODk3MCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZmEsMHgwMywweDNjLDB4MGMsMHhmYywweDA0LDB4M2IsMHg4MCwweDBjLDB4YTAsMHgwMywweDk0LDB4MjAgfX0sCi0gezE2LCAweDg5ODAsIDAsIHsweDg5LDB4MDUsMHgzYiwweDAwLDB4NGYsMHhkMCwweDIzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OTkwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGIwLDB4MDYsMHgyMCwweDEzLDB4ODgsMHhhOCwweDAyLDB4ZWIsMHgwMCwweGJiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODlhMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYSwweDAwLDB4YTgsMHg4MCwweDJlLDB4ZTAsMHgwYiwweDk0LDB4MWEsMHgyYywweDAwLDB4YmIgfX0sCi0gezE2LCAweDg5YjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDI5LDB4OTgsMHgwMiwweGUyLDB4MDAsMHhhOSwweDg0LDB4MjIsMHgyMCwweDBiLDB4OTgsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4OWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4ODlkMCwgMCwgezB4MDksMHg4MiwweDAyLDB4ZTYsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMCwweDg4LDB4ODAgfX0sCi0gezE2LCAweDg5ZTAsIDAsIHsweDJlLDB4YTAsMHgwYiwweGEwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweDJhLDB4MDAsMHgwOSwweDk4LDB4MDIsMHhlYSwweDIwIH19LAotIHsxNiwgMHg4OWYwLCAwLCB7MHhhOSwweDgwLDB4MmEsMHg2MCwweDliLDB4OTgsMHg4MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGEwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiOCwweDAwLDB4MjAsMHgwMCwweDA5LDB4MDgsMHgwMiwweGM0LDB4MDAsMHhiMywweDAwLDB4MjYgfX0sCi0gezE2LCAweDhhMTAsIDAsIHsweGMwLDB4MDAsMHgzMCwweDAyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgwMCwweDAyLDB4MGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHg4YTIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjOCwweDgwLDB4YTgsMHgwMCwweDIwLDB4NDEsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OGEzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDEwLDB4ZjgsMHg1MCwweGIyLDB4MDAgfX0sCi0gezE2LCAweDhhNDAsIDAsIHsweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmYiwweDAwLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgxMywweDI0LDB4MDIsMHhjOCwweDA2IH19LAotIHsxNiwgMHg4YTUwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4M2MsMHgwNCwweGZiLDB4MDAsMHg3OCwweDgwLDB4MGMsMHhhMCwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OGE2MCwgMCwgezB4ZTksMHgwMCwweDFhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhhNzAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZjQsMHgyMCwweDNmLDB4MDAsMHgwZSwweGMwLDB4MDIsMHhmMCwweDAxLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHg4YTgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4OGE5MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4OWMsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweDhhYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHgwMCwweGVkLDB4MjMsMHhiNywweDQ4IH19LAotIHsxNiwgMHg4YWIwLCAwLCB7MHgwYywweGUxLDB4YzMsMHg3YywweGMwLDB4ZGQsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGNiLDB4MDMsMHhmZSwweDA4LDB4ZmMsMHgyOCB9fSwKLSB7MTYsIDB4OGFjMCwgMCwgezB4M2YsMHhmMCwweDFjLDB4ZmIsMHgyMywweDdjLDB4MDEsMHhmZiwweDE0LDB4NzcsMHhlMiwweDRmLDB4ZTgsMHgyMywweDdjLDB4MDAgfX0sCi0gezE2LCAweDhhZDAsIDAsIHsweGM0LDB4ODAsMHgzMywweDQ4LDB4MmMsMHhmOCwweDIyLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YWUwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHhlMCwweGM5LDB4YzAsMHgyMiwweDViLDB4ODgsMHg5NiwweDIyLDB4MmQsMHgwMCwweDg5LDB4MjIsMHgyMiB9fSwKLSB7MTYsIDB4OGFmMCwgMCwgezB4Y2EsMHgwYiwweDllLDB4MjIsMHhlMiwweGEwLDB4YjksMHg2MSwweDJjLDB4ZTAsMHg4OCwweDlmLDB4MDIsMHgzZCwweDg1LDB4YmYgfX0sCi0gezE2LCAweDhiMDAsIDAsIHsweDYwLDB4MjYsMHg1MCwweDQ4LDB4YTAsMHgwMiwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjIsMHg1MCwweDA4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg4YjEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4ODAsMHhiMSwweDEwLDB4MjAsMHg0NCB9fSwKLSB7MTYsIDB4OGIyMCwgMCwgezB4MGIsMHhiMiwweDAyLDB4Y2UsMHhkMCwweDgxLDB4MDgsMHgyYywweGMwLDB4MGIsMHgwMSwweDAyLDB4OGMsMHgwOCwweGIzLDB4MDggfX0sCi0gezE2LCAweDhiMzAsIDAsIHsweDJjLDB4YzksMHgwOCwweDEwLDB4NjIsMHg4YywweDYwLDB4YjMsMHgzMiwweDI0LDB4ODAsMHgwYSwweGEwLDB4MDIsMHg2YywweDAzIH19LAotIHsxNiwgMHg4YjQwLCAwLCB7MHg5YSwweDAxLDB4MjYsMHg0NCwweDQ4LDB4YjAsMHg0MiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGI1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4YTAsMHg4YiwweDAyLDB4MjIsMHhlMCwweDBiLDB4YjAsMHg2MiwweGFjLDB4OTgsMHg5OSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDhiNjAsIDAsIHsweGMyLDB4MGIsMHg5OCwweDA2LDB4ZTQsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHg5MSwweDQyLDB4MmMsMHgxMCwweGJiIH19LAotIHsxNiwgMHg4YjcwLCAwLCB7MHgwMCwweDZlLDB4ODAsMHgwYSwweDgwLDB4MDIsMHg2YywweDAwLDB4MWIsMHgwMCwweDA2LDB4NDAsMHg0OCwweGI4LDB4MGEsMHg3MCB9fSwKLSB7MTYsIDB4OGI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YTEsMHgwMCwweDc2LDB4NzggfX0sCi0gezE2LCAweDhiOTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGU4LDB4MTAsMHhkOSwweDAwLDB4M2UsMHhkMCwweDRiLDB4OWUsMHgxMywweGFjLDB4MDgsMHhiOCwweGEwIH19LAotIHsxNiwgMHg4YmEwLCAwLCB7MHg3ZSwweGM2LDB4MDgsMHhhOCwweDAyLDB4MmMsMHgwMSwweGJiLDB4MDAsMHgyNiwweDMwLDB4NGUsMHgyMCwweDAzLDB4NGMsMHgxOCB9fSwKLSB7MTYsIDB4OGJiMCwgMCwgezB4OTksMHg4MCwweGI0LDB4NDAsMHg0YywweDNhLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiYzAsIDAsIHsweGUwLDB4MDEsMHhiMiwweDAwLDB4ZmQsMHhjNSwweDNiLDB4YzAsMHg0YywweGQwLDB4MDMsMHg2YSwweDAyLDB4ZWQsMHgwNiwweDMzIH19LAotIHsxNiwgMHg4YmQwLCAwLCB7MHhjNCwweDBmLDB4ZDAsMHg1MywweGY4LDB4MDAsMHhmYywweDkwLDB4N2YsMHhjMSwweDBmLDB4NzgsMHgwMywweGJjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OGJlMCwgMCwgezB4MDAsMHgzNywweDY0LDB4MGMsMHhmMSwweDAzLDB4YTQsMHgwMCwweGVkLDB4YTEsMHgzYiwweDQwLDB4MGIsMHhmMCwweDgzLDB4YjggfX0sCi0gezE2LCAweDhiZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgwMCwweGNiLDB4MjAsMHgzZSwweDcxIH19LAotIHsxNiwgMHg4YzAwLCAwLCB7MHgwZiwweGIzLDB4MDMsMHg5OCwweDAyLDB4ZmIsMHgwMiwweDM2LDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlYywweDIwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4OGMxMCwgMCwgezB4M2UsMHhjYywweDA0LDB4ODQsMHgwMywweDJjLDB4MDAsMHhkYiwweDA0LDB4M2MsMHgxMCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDAgfX0sCi0gezE2LCAweDhjMjAsIDAsIHsweDliLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YzMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwMiwweDhiLDB4NDgsMHgyZSwweGUwLDB4MGIsMHgzNCwweDAzLDB4NmIsMHgwMCwweDhiLDB4ZjUsMHgyMiB9fSwKLSB7MTYsIDB4OGM0MCwgMCwgezB4ZjIsMHgwYiwweDljLDB4MDMsMHhhZiwweDAwLDB4YjgsMHg1MCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg3YywweDAwLDB4OGYgfX0sCi0gezE2LCAweDhjNTAsIDAsIHsweDAwLDB4MGUsMHg1ZCwweDBiLDB4ODAsMHgwMiwweGY1LDB4NDAsMHg4MywweDUwLDB4MjMsMHg1NCwweDA4LDB4OWMsMHgwMiwweGU2IH19LAotIHsxNiwgMHg4YzYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNCwweDRjLDB4MDAsMHg4MSwweDgxLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OGM3MCwgMCwgezB4MDMsMHgyYywweDAyLDB4MDQsMHgzMywweDk5LDB4MDAsMHgyMCwweGYwLDB4NGEsMHgyOCwweDgwLDB4Y2MsMHg0MCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDhjODAsIDAsIHsweDI2LDB4MTAsMHgwOCwweDIwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHgwOSwweDIwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg4YzkwLCAwLCB7MHhhMCwweDAyLDB4MjgsMHg0MCwweDA4LDB4MDgsMHgwMiwweDdhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGNhMCwgMCwgezB4MjAsMHgwMSwweDBhLDB4MDAsMHg4NSwweDgwLDB4MmQsMHhmOCwweDBiLDB4ZGEsMHgwMiwweGQ2LDB4NDAsMHg4NSwweGEwLDB4MjEgfX0sCi0gezE2LCAweDhjYjAsIDAsIHsweGUwLDB4MGIsMHg0OCwweDA2LDB4OTIsMHgwNCwweGI1LDB4ODAsMHgyZCwweDIxLDB4MDgsMHgwMCwweDAyLDB4NGUsMHgwMCwweDg3IH19LAotIHsxNiwgMHg4Y2MwLCAwLCB7MHhhNCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhkZSwweGMyLDB4YWQsMHg5MCwweDJiLDB4NjAsMHgyOCwweDU4LDB4ODIsMHhkYyB9fSwKLSB7MTYsIDB4OGNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0YywweDQwLDB4YzMsMHgxMCwweDJjLDB4NmMgfX0sCi0gezE2LCAweDhjZTAsIDAsIHsweDBmLDB4MzAsMHgwMywweDg2LDB4YTIsMHhmOSwweGIwLDB4YjAsMHhlMCwweDBmLDB4MjksMHg4MywweGNlLDB4NDQsMHhmMywweDgwIH19LAotIHsxNiwgMHg4Y2YwLCAwLCB7MHgzYywweGFjLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAsMHgzYywweGQ1LDB4MGYsMHgyMCwweDAzLDB4Y2UsMHhjMSB9fSwKLSB7MTYsIDB4OGQwMCwgMCwgezB4ZTAsMHgxMCwweGI4LDB4NDAsMHgwYywweDAwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkMTAsIDAsIHsweGMwLDB4MWQsMHhiYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4Y2MsMHgwZiwweDMyLDB4MDMsMHg2NCwweDA4LDB4ZjksMHgwMCwweDNiIH19LAotIHsxNiwgMHg4ZDIwLCAwLCB7MHg5MCwweDBmLDB4ZjAsMHg0MywweGU0LDB4NDAsMHhmYiwweDM0LDB4M2YsMHg4MSwweDA3LDB4ZDEsMHgwMywweGFkLDB4MjAsMHhlYiB9fSwKLSB7MTYsIDB4OGQzMCwgMCwgezB4MjAsMHg3ZiwweGM0LDB4MGYsMHhlMSwweDAzLDB4ZmMsMHg1MCwweGNkLDB4MTAsMHgzNSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhkNDAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwNCwweGZkLDB4MDQsMHgzZCwweDQwIH19LAotIHsxNiwgMHg4ZDUwLCAwLCB7MHgyZCwweDMwLDB4MDIsMHgzYywweDAwLDB4YzksMHgwMSwweDNlLDB4YzAsMHg0ZiwweGI4LDB4NDMsMHhlYywweDEwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OGQ2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YTAsMHgyMywweGVjLDB4ODAsMHhjYiwweDM2LDB4MzIsMHg4MCwweDRkLDB4YTgsMHgwMywweDJjLDB4MTAgfX0sCi0gezE2LCAweDhkNzAsIDAsIHsweGNiLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4NmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZDgwLCAwLCB7MHhjOCwweDExLDB4OTAsMHgwOCwweGI1LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg1MCwweDAyLDB4YmMsMHgwMiwweDg1LDB4MDQsMHgyZCB9fSwKLSB7MTYsIDB4OGQ5MCwgMCwgezB4YzAsMHg4ZSwweDYwLDB4MDYsMHhkOCwweDA0LDB4YjcsMHgwNCwweDIxLDB4NDAsMHgwYiwweDcwLDB4MDIsMHhmYywweDgwLDB4YWYgfX0sCi0gezE2LCAweDhkYTAsIDAsIHsweDI4LDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweDA2LDB4NDAsMHg4NywweDAwLDB4MjEsMHg1MCwweDA4LDB4NTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHg4ZGIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmIsMHg3MCB9fSwKLSB7MTYsIDB4OGRjMCwgMCwgezB4MDgsMHhmOCwweDA2LDB4MWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3MCwweDMyLDB4ZGUsMHgwNCwweDM3LDB4ODQgfX0sCi0gezE2LCAweDhkZDAsIDAsIHsweDI1LDB4ZTAsMHgwYiwweDY4LDB4MDYsMHhkZSwweDgwLDB4ODcsMHg4MCwweDIxLDB4YTEsMHgxYiwweDY4LDB4MDIsMHgxZSwweDQwIH19LAotIHsxNiwgMHg4ZGUwLCAwLCB7MHg5ZiwweDgwLDB4MjAsMHg2MCwweDA4LDB4NTgsMHgwMiwweDIwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGRmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MjAsMHhiMywweDAwLDB4MmMsMHg4MCwweDg4LDB4YjQsMHgyMiwweDhkLDB4MDAsMHg4MywweDkwLDB4MmMgfX0sCi0gezE2LCAweDhlMDAsIDAsIHsweGMwLDB4MGEsMHgzOCwweDAyLDB4Y2UsMHgwOCwweGJiLDB4MjAsMHgyNCwweGQwLDB4MGIsMHhiMywweDAyLDB4Y2MsMHgwMCwweGEzIH19LAotIHsxNiwgMHg4ZTEwLCAwLCB7MHgwMCwweDYwLDB4ZDIsMHgwYiwweDIwLDB4MmEsMHgwNCwweDA4LDB4OTMsMHg1MCwweDIwLDB4NDAsMHgwOCwweDE3LDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4OGUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDAwLDB4YmEsMHhhMCwweDNmLDB4ODQgfX0sCi0gezE2LCAweDhlMzAsIDAsIHsweDFjLDB4ZTAsMHgwYiwweDM4LDB4NDAsMHg4ZSwweDA2LDB4MmUsMHg4MCwweDBiLDB4ZTMsMHgwMywweGY4LDB4ODAsMHhmZSwweGU0IH19LAotIHsxNiwgMHg4ZTQwLCAwLCB7MHhiNywweDkwLDB4MGYsMHhlYywweDAyLDB4ZTgsMHgwMCwweDhhLDB4MDAsMHhhMywweGEwLDB4MDksMHhlNCwweDAzLDB4MmEsMHgwMiB9fSwKLSB7MTYsIDB4OGU1MCwgMCwgezB4ZGUsMHhjMCwweGYzLDB4ODAsMHgwYywweDZjLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhlNjAsIDAsIHsweDQ4LDB4MDEsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDJlIH19LAotIHsxNiwgMHg4ZTcwLCAwLCB7MHgzMCwweDBhLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4M2EsMHgwMiwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OGU4MCwgMCwgezB4MDAsMHgzZSwweDA0LDB4MGQsMHg4MCwweDgzLDB4ZTAsMHg0MCwweGU4LDB4MjAsMHgzZSwweDAwLDB4MmYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhlOTAsIDAsIHsweDEwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDY0IH19LAotIHsxNiwgMHg4ZWEwLCAwLCB7MHg0ZSwweDkwLDB4ODMsMHgyNCwweDgwLDB4YzksMHgwMCwweDMyLDB4ZTAsMHgwZiwweDEwLDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGViMCwgMCwgezB4MzIsMHg0NCwweDBmLDB4OTIsMHgyMywweDY0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweGU0LDB4MDAgfX0sCi0gezE2LCAweDhlYzAsIDAsIHsweGM5LDB4MDAsMHgyMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZWQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MjAsMHgyZSwweDQwLDB4NDgsMHg5NiwweDIyLDB4MjUsMHgwMCwweGQ5LDB4YzAsMHhhMiB9fSwKLSB7MTYsIDB4OGVlMCwgMCwgezB4NzAsMHgwYiwweDk4LDB4MDIsMHgyNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NzAsMHg0YiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZDkgfX0sCi0gezE2LCAweDhlZjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDJjLDB4OTQsMHgyMiwweGU0LDB4MDIsMHg4OSwweDAwLDB4YTIsMHg0MCwweDI4LDB4OTQsMHgxMywweDIwIH19LAotIHsxNiwgMHg4ZjAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OGYxMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDgxLDB4ODAsMHhhMiwweDQ0LDB4MGIsMHg5MSwweDAyLDB4MjUsMHgwMCwweDE5LDB4NDAgfX0sCi0gezE2LCAweDhmMjAsIDAsIHsweDYyLDB4NDAsMHgwYiwweGI0LDB4MDIsMHg0NCwweDAwLDB4ODksMHgwMCwweDIwLDB4NDAsMHgwOCwweDkwLDB4ODIsMHhjNCwweDAxIH19LAotIHsxNiwgMHg4ZjMwLCAwLCB7MHg4MywweDAyLDB4MjgsMHg0MCwweDQ4LDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGY0MCwgMCwgezB4MDAsMHgwNCwweDA1LDB4ODAsMHhiMSwweDAwLDB4NmMsMHg1MSwweDA4LDB4MTQsMHgxYSwweDA1LDB4MDAsMHg5MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDhmNTAsIDAsIHsweDQwLDB4OGIsMHgxNCwweDAyLDB4MDUsMHgwMCwweGIxLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDA2LDB4MDQsMHg4MCwweDkxIH19LAotIHsxNiwgMHg4ZjYwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweGE4LDB4ODEsMHgwMCwweDI4LDB4NGEsMHgwOCwweDkwLDB4NGEsMHg0MiB9fSwKLSB7MTYsIDB4OGY3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweDhmODAsIDAsIHsweDBlLDB4ODAsMHgwMywweDI4LDB4MDEsMHhjOCwweDUwLDB4MzIsMHg5NCwweDhiLDB4YTAsMHgwMywweDIwLDB4MDAsMHhiMCwweDUwIH19LAotIHsxNiwgMHg4ZjkwLCAwLCB7MHgzMiwweDgwLDB4MGYsMHg4MCwweDA3LDB4NjEsMHg1MSwweGM4LDB4NTAsMHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHg4NCB9fSwKLSB7MTYsIDB4OGZhMCwgMCwgezB4YzgsMHgwNCwweDNhLDB4MDgsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmYjAsIDAsIHsweDk4LDB4OWQsMHhmNCwweDQwLDB4YmQsMHg0MSwweDNmLDB4NTAsMHgwZiwweGY0LDB4MDMsMHhmNSwweDEwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHg4ZmMwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwMywweGY0LDB4MDAsMHhmZiwweDEwLDB4MmYsMHg0MCwweDRmLDB4ZDQsMHg0MCwweGE0LDB4NDgsMHhmOSB9fSwKLSB7MTYsIDB4OGZkMCwgMCwgezB4MTIsMHgzZiwweDVhLDB4OGUsMHhkMiwweDgzLDB4ZjQsMHhhOCwweGY1LDB4MmMsMHgzNywweDRhLDB4MGYsMHhkMiwweDgzLDB4YTYgfX0sCi0gezE2LCAweDhmZTAsIDAsIHsweDEyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg4MCwweGZkLDB4MjgsMHgzZiwweDRjIH19LAotIHsxNiwgMHg4ZmYwLCAwLCB7MHgwZiwweDUwLDB4MDMsMHgzYywweDQ0LDB4Y2QsMHg0MCwweDNmLDB4ZDAsMHgwZCwweGQwLDB4MDIsMHgxNCwweDAxLDB4ZmQsMHhhMCB9fSwKLSB7MTYsIDB4OTAwMCwgMCwgezB4MzEsMHg0MCwweDAzLDB4ZDAsMHgwMywweGU3LDB4ODksMHhmOSwweDkwLDB4N2UsMHg1MCwweDBjLDB4OTQsMHgwMywweGU2LDB4YzAgfX0sCi0gezE2LCAweDkwMTAsIDAsIHsweGM5LDB4MTAsMHgzMiwweDZkLDB4MGYsMHg5MSwweDAyLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MDIwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHg4MCwweGI4LDB4MDEsMHgyZSwweDBjLDB4OGIsMHg4NCwweDgyLDB4MjAsMHg0MiwweDg4LDB4YTAsMHg2ZSB9fSwKLSB7MTYsIDB4OTAzMCwgMCwgezB4MjAsMHgwOCwweDgwLDB4MDMsMHg2MCwweDAwLDB4OTgsMHhlOCwweDIyLDB4MDAsMHgwOSwweDgwLDB4MDIsMHhlMywweGMwLDB4ZTggfX0sCi0gezE2LCAweDkwNDAsIDAsIHsweGQwLDB4MmUsMHgyOCwweDA4LDB4OGEsMHgyMywweGUyLDB4ODQsMHhkOCwweGEwLDB4MjIsMHgzZCwweDBiLDB4YzgsMHgwMiwweGNlIH19LAotIHsxNiwgMHg5MDUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM1LDB4YjAsMHhiMSwweDAwLDB4MmMsMHg0OCB9fSwKLSB7MTYsIDB4OTA2MCwgMCwgezB4MGIsMHgxMywweDAyLDB4MDQsMHgwMiwweGIxLDB4MjAsMHgyZSwweDQwLDB4ODgsMHgxMCwweDIyLDB4YzQsMHgwMCwweGIxLDB4MTQgfX0sCi0gezE2LCAweDkwNzAsIDAsIHsweDI0LDB4NDAsMHgwYiwweDEwLDB4NTIsMHhjNCwweDAwLDB4YjEsMHgyMSwweDJkLDB4NDgsMHgwYSwweDUyLDB4MDIsMHhkNSwweDAwIH19LAotIHsxNiwgMHg5MDgwLCAwLCB7MHhiZCwweDAwLDB4YWQsMHg0MCwweDBiLDB4NTIsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTA5MCwgMCwgezB4MTgsMHg1NSwweGE1LDB4MDAsMHhiOSwweDgyLDB4MmUsMHg0OSwweDhiLDB4YjAsMHgxMiwweDI0LDB4MTAsMHg5OSwweDAyLDB4MmUgfX0sCi0gezE2LCAweDkwYTAsIDAsIHsweDQwLDB4MDgsMHhiMiwweDAwLDB4NjUsMHgwMCwweDk5LDB4ODAsMHgyNiwweDQ0LDB4MDksMHg5MSwweDAyLDB4ZTQsMHgwOSwweGE5IH19LAotIHsxNiwgMHg5MGIwLCAwLCB7MHgwNCwweDJlLDB4NDYsMHgwYSwweGQ0LDB4MDIsMHhiNCwweDAwLDB4YmQsMHg0MCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4OTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDQwLDB4ZjksMHg4MCwweDJlLDB4NjIgfX0sCi0gezE2LCAweDkwZDAsIDAsIHsweDBmLDB4OWMsMHg0MiwweDI0LDB4MDAsMHg5OSwweDAxLDB4MmUsMHg2OCwweDJjLDB4OTIsMHgwMiwweDY0LDB4MDAsMHhiOSwweDQwIH19LAotIHsxNiwgMHg5MGUwLCAwLCB7MHhiNiwweDYwLDB4MGYsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDcwLDB4M2UsMHg5OSwweDA2LDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4OTBmMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxMDAsIDAsIHsweDY4LDB4MDEsMHhhNiwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgxZiwweDEyLDB4YWIsMHhlNCwweDAwLDB4ZTksMHg5MCwweDNlIH19LAotIHsxNiwgMHg5MTEwLCAwLCB7MHg0OSwweDBlLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2EsMHg0MCwweDBkLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OTEyMCwgMCwgezB4MDEsMHgzZSwweDYwLDB4MDUsMHg5MCwweDEzLDB4ZTQsMHgwMCwweDU5LDB4MjAsMHgzMiwweDQwLDB4OGYsMHg5MSwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDkxMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDgsMHgzZSwweDAxIH19LAotIHsxNiwgMHg5MTQwLCAwLCB7MHgwZiwweDg0LDB4NjMsMHgwMCwweDIyLDB4ZTgsMHgyMCwweDNlLDB4MTMsMHgwZiwweDg0LDB4MDMsMHhlMSwweGMwLDB4ZDgsMHg0YyB9fSwKLSB7MTYsIDB4OTE1MCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODQsMHg0MywweGUwLDB4MDAsMHhmOCwweDAwLDB4MjIsMHgxMCwweDBmLDB4ODQsMHgwMywweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxNjAsIDAsIHsweGM4LDB4MDAsMHhiMiwweDAwLDB4MGMsMHhjMCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyZiwweDg2LDB4NGIsMHhlMCwweDAyLDB4MzksMHgwOCwweDhlLDB4MjAsMHgyZCB9fSwKLSB7MTYsIDB4OTE4MCwgMCwgezB4OTAsMHgwYiwweGVkLDB4OTIsMHhmOCwweDAyLDB4OGUsMHhlMCwweGEzLDB4OTgsMHgwOCwweGUwLDB4MDIsMHhlOCwweDA4LDB4YmEgfX0sCi0gezE2LCAweDkxOTAsIDAsIHsweDAwLDB4NjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHgwMiwweDgwLDB4MDIsMHg4MCwweDQ4LDB4ZTAsMHgwMywweDRhIH19LAotIHsxNiwgMHg5MWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDEwLDB4MmMsMHhmMCB9fSwKLSB7MTYsIDB4OTFiMCwgMCwgezB4MGEsMHgxNCwweDJhLDB4MGQsMHgxYSwweGIzLDB4MDEsMHgyNCwweGQwLDB4MGIsMHhiYywweDMyLDB4Y2MsMHgwOCwweDAzLDB4MDAgfX0sCi0gezE2LCAweDkxYzAsIDAsIHsweDIwLDB4YzgsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDIyLDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDExIH19LAotIHsxNiwgMHg5MWQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDI4LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTFlMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4NSwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgwMiwweDE4LDB4MzIsMHg4NiwweDAwLDB4MmQgfX0sCi0gezE2LCAweDkxZjAsIDAsIHsweGMwLDB4MGIsMHg2MCwweDE2LDB4ZmUsMHgwNCwweDg2LDB4MDAsMHgyNywweGEwLDB4OGIsMHg3MCwweDQyLDB4ZGMsMHg4MCwweGI3IH19LAotIHsxNiwgMHg5MjAwLCAwLCB7MHg4MCwweDIxLDB4MDEsMHgwOCwweGY4LDB4MGEsMHgxOCwweDAwLDB4ODYsMHgwOCwweDIwLDB4YTAsMHgwOCwweGU4LDB4MGEsMHg2OCB9fSwKLSB7MTYsIDB4OTIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDAyLDB4YzYsMHg4MCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweDkyMjAsIDAsIHsweDBmLDB4NDgsMHgwMywweDA2LDB4MDQsMHhmNSwweDgyLDB4MzUsMHhlMCwweDBmLDB4NzgsMHgwMywweGRhLDB4MDAsMHhkMywweDgwIH19LAotIHsxNiwgMHg5MjMwLCAwLCB7MHgzMSwweDYwLDB4MDcsMHg3OCwweDAzLDB4ZGUsMHgyMCwweGYzLDB4YjAsMHg4MSwweGUwLDB4NGYsMHg2OCwweDA3LDB4MGUsMHgwMiB9fSwKLSB7MTYsIDB4OTI0MCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwYywweDc4LDB4MTMsMHgyYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyNTAsIDAsIHsweDA4LDB4MWQsMHhhZCwweGEwLDB4ZjksMHgwMCwweDNmLDB4MDAsMHgwZiwweGIwLDB4NTMsMHhmOCwweDEwLDB4YTksMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MjYwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMSwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHhjMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTI3MCwgMCwgezB4NzQsMHgzYywweDAwLDB4MGYsMHgyMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHgzMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDkyODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMiwweDhmLDB4ODAsMHgzNSwweGUwIH19LAotIHsxNiwgMHg5MjkwLCAwLCB7MHg4ZCwweGQ5LDB4MDMsMHgyZSwweGM0LDB4ZjYsMHg4MCwweDMyLDB4YTQsMHgwYywweGI4LDB4MDMsMHhkZSwweDAwLDB4Y2YsMHg5MCB9fSwKLSB7MTYsIDB4OTJhMCwgMCwgezB4M2MsMHhlNCwweDBjLDB4YjgsMHgwMywweGZlLDB4NjUsMHhmZiwweDgwLDB4MGYsMHhlYywweDhmLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweDkyYjAsIDAsIHsweGM1LDB4ODAsMHgzMywweGUwLDB4MGYsMHg2OCwweDAzLDB4MTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MmMwLCAwLCB7MHhhYSwweDExLDB4OWMsMHg4MCwweDg0LDB4YjAsMHgyMCwweDIwLDB4MjksMHg3MywweDBhLDB4MGUsMHg4MiwweGEyLDB4YTAsMHhhMiB9fSwKLSB7MTYsIDB4OTJkMCwgMCwgezB4YTAsMHg0ZiwweDNiLDB4MDMsMHg4NywweDg0LDB4YjIsMHg4MCwweDJjLDB4YTAsMHgwYSwweDdkLDB4MDIsMHhkZSwweDgwLDB4ZjcgfX0sCi0gezE2LCAweDkyZTAsIDAsIHsweDIwLDB4MjUsMHgwNiwweDA4LDB4NzAsMHgwMiwweGM4LDB4NDAsMHg4NCwweDAwLDB4MzUsMHg4MCwweDBiLDB4NjAsMHgwMywweDZhIH19LAotIHsxNiwgMHg5MmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTAsMHg4NiwweDM4LDB4MjcsMHhjMCB9fSwKLSB7MTYsIDB4OTMwMCwgMCwgezB4NDksMHg1NCwweDA2LDB4NTQsMHg0MCwweDFkLDB4MjAsMHgyMSwweGNhLDB4MDksMHg2MSwweDQwLDB4ZjgsMHg4MCwweGI3LDB4MjAgfX0sCi0gezE2LCAweDkzMTAsIDAsIHsweDJmLDB4MDAsMHg4OSwweDcwLDB4MTIsMHhkYywweDgxLDB4YjcsMHgwNCwweDJkLDB4YzksMHgwYSwweDYwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg5MzIwLCAwLCB7MHg4ZCwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjgsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTMzMCwgMCwgezB4NjAsMHgxNCwweGNkLDB4MjgsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA5LDB4YjAsMHgyMiwweDRjLDB4MDIsMHhhMSwweDAxLDB4MjAgfX0sCi0gezE2LCAweDkzNDAsIDAsIHsweDMwLDB4MWIsMHgyMywweDAyLDB4YWYsMHgyMCwweGIzLDB4MDgsMHgyYywweDgwLDB4MWIsMHgzMCwweDAwLDB4Y2MsMHgwNCwweGEzIH19LAotIHsxNiwgMHg5MzUwLCAwLCB7MHgwMSwweDI2LDB4MzAsMHgwOCwweGFjLDB4MjIsMHhlOCwweDAyLDB4ODAsMHgwOCwweDJlLDB4ODAsMHg0YiwweGI0LDB4MDIsMHg1OCB9fSwKLSB7MTYsIDB4OTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDEwLDB4OGIsMHg4MCwweDM2LDB4ZjAgfX0sCi0gezE2LCAweDkzNzAsIDAsIHsweDJkLDB4YmMsMHgwYiwweDZjLDB4MDEsMHhkYSwweDA0LDB4MjIsMHg0MCwweDdkLDB4OTQsMHgyMiwweGU0LDB4MDAsMHhhYiwweDQ0IH19LAotIHsxNiwgMHg5MzgwLCAwLCB7MHgyZSwweGMwLDB4MDksMHhiOCwweDAyLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHgzZSwweGYwLDB4Y2EsMHg5MiwweDAyLDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4OTM5MCwgMCwgezB4Y2IsMHgwMCwweDZlLDB4NDAsMHgwZiwweDg0LDB4MDEsMHgyZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNhLDB4ZTAsMHgyZSwweGJjLDB4MDMsMHg5OCwweDA4LDB4ZWEsMHg0MCwweDM2IH19LAotIHsxNiwgMHg5M2IwLCAwLCB7MHg0MywweDhjLDB4OTAsMHgwMywweGE0LDB4NDQsMHgyYSwweDQwLDB4M2UsMHgxMCwweDBlLDB4YjUsMHg4MywweGVjLDB4MTQsMHhmYiB9fSwKLSB7MTYsIDB4OTNjMCwgMCwgezB4MDAsMHgyNiwweDAwLDB4MGUsMHg5MiwweDAzLDB4ZTAsMHg0MCwweGZhLDB4MDAsMHgxNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweDkzZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZWMsMHgwMiwweGZhLDB4ODAsMHgzZiwweGUyIH19LAotIHsxNiwgMHg5M2UwLCAwLCB7MHgwZiwweGIwLDB4MGIsMHgyNCwweDAwLDB4ZWYsMHg5MiwweGJiLDB4ZTAsMHgxYywweGQwLDB4MDMsMHg3NCwweDAwLDB4Y2YsMHgwNSB9fSwKLSB7MTYsIDB4OTNmMCwgMCwgezB4M2IsMHg0MCwweDBmLDB4YzgsMHgwMywweDVjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMiwweDRkLDB4YzEsMHgyMywweDM0LDB4NDAgfX0sCi0gezE2LCAweDk0MDAsIDAsIHsweGNmLDB4MDAsMHgxNywweDQ0LDB4MGMsMHhkMSwweDgzLDB4MDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NDEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODQsMHgyZSwweDU0LDB4MGIsMHhiYywweDBhLDB4MjksMHg4MCwweDhiLDB4ODAsMHgzMiB9fSwKLSB7MTYsIDB4OTQyMCwgMCwgezB4MDAsMHgwOCwweDljLDB4MDMsMHhhNywweDAwLDB4YWIsMHg4NCwweDJlLDB4N2MsMHgwYiwweDgwLDB4MDIsMHgyYywweDEwLDB4ZGIgfX0sCi0gezE2LCAweDk0MzAsIDAsIHsweDAxLDB4MzYsMHgwMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4MiwweDAwLDB4MjIsMHgwMCwweDA4LDB4OTAsMHgwMiwweDI0IH19LAotIHsxNiwgMHg5NDQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4OSwweDEwLDB4NjYsMHg5MCB9fSwKLSB7MTYsIDB4OTQ1MCwgMCwgezB4MGIsMHhiOCwweDAyLDB4NmUsMHgxMiwweGEzLDB4NDEsMHgyMCwweDA0LDB4MGEsMHg5OCwweDIyLDB4ZTIsMHgwMCwweDg5LDB4MTkgfX0sCi0gezE2LCAweDk0NjAsIDAsIHsweDJlLDB4YzAsMHg0YiwweDMxLDB4MjIsMHg2YywweDA4LDB4ODMsMHgwMCwweDIyLDB4YzAsMHgwOSwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHg5NDcwLCAwLCB7MHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgxMCwweDBjLDB4MDAsMHg4MCwweDIwLDB4MmMsMHgwZSwweDFiLDB4MzAsMHgwMiwweDA0LDB4NDEsMHg4MCwweDIwLDB4MjAgfX0sCi0gezE2LCAweDk0OTAsIDAsIHsweDEyLDB4MTgsMHgxNiwweDQyLDB4MDAsMHg1MCwweGEwLDB4NDAsMHgyYywweDg4LDB4MWIsMHgzMCwweDAyLDB4MGMsMHg4MSwweDkzIH19LAotIHsxNiwgMHg5NGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDEwLDB4MmEsMHgwMCwweDBhLDB4ODgsMHgwMCwweDI4LDB4MDAsMHgyOCwweDAwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4OTRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDExLDB4ZTgsMHgwMCwweDI2LDB4OTggfX0sCi0gezE2LCAweDk0YzAsIDAsIHsweDBmLDB4YjAsMHgxMywweDIxLDB4MGMsMHhlYiwweDYwLDB4M2EsMHhkOCwweDI4LDB4ODQsMHhhMiwweGUxLDB4ODAsMHhjOCwweDIwIH19LAotIHsxNiwgMHg5NGQwLCAwLCB7MHgzZSwweDVlLDB4MWYsMHg4MiwweDAzLDB4N2MsMHgwMCwweGNmLDB4MDAsMHgzMiwweGMwLDB4NGQsMHg4MCwweDA3LDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4OTRlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0ZjAsIDAsIHsweGExLDB4MTEsMHhmYywweDAwLDB4ZjgsMHgxMywweDFlLDB4MDAsMHgwYiwweGYwLDB4MDEsMHhmMCwweGQwLDB4ZjksMHgxOSwweDFmIH19LAotIHsxNiwgMHg5NTAwLCAwLCB7MHgwOCwweDRmLDB4YzAsMHgxMywweGExLDB4MDAsMHhmOCwweDYyLDB4M2YsMHhjMCwweDBiLDB4YzQsMHgwNywweGVkLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTUxMCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDIzLDB4ZjAsMHhhMCwweGZjLDB4MDAsMHgzMywweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDk1MjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGZmLDB4MGMsMHgzZiwweDIwIH19LAotIHsxNiwgMHg5NTMwLCAwLCB7MHgwYywweGM5LDB4MDMsMHgzMiwweDAwLDB4Y2YsMHgzOCwweDNmLDB4ZDAsMHgwZiwweDQ4LDB4MDMsMHhmYywweGEwLDB4Y2UsMHgyMiB9fSwKLSB7MTYsIDB4OTU0MCwgMCwgezB4MzMsMHgwMCwweDBmLDB4YzEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjNCwweDRjLDB4YzAsMHgyMywweDhjLDB4ZTQgfX0sCi0gezE2LCAweDk1NTAsIDAsIHsweGZmLDB4MTAsMHgzNywweDIwLDB4MDgsMHhmMSwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NTYwLCAwLCB7MHg4MCwweDEwLDB4ZmUsMHgwMCwweGJmLDB4ODAsMHgyZSwweDc0LDB4MDUsMHgyMiwweDAyLDB4YTIsMHgxMCwweGRmLDB4NjEsMHgyZiB9fSwKLSB7MTYsIDB4OTU3MCwgMCwgezB4ZDAsMHg4YiwweDkwLDB4MDIsMHgzZCwweGE0LDB4YWEsMHg5MCwweDIyLDB4ZjQsMHgwYiwweDA3LDB4MTIsMHgxZCwweDIwLDB4YmIgfX0sCi0gezE2LCAweDk1ODAsIDAsIHsweGMwLDB4MmYsMHhkOCwweDg4LDB4OTcsMHg4MiwweGZkLDB4ODAsMHhlZiwweDcyLDB4MjIsMHgwOCwweDI4LDB4ZjYsMHgyMywweGUwIH19LAotIHsxNiwgMHg5NTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiMywweDAwLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4OTVhMCwgMCwgezB4MDgsMHg4MiwweDAyLDB4MjIsMHgwMCwweDgzLDB4MDEsMHgwOCwweGNjLDB4OGIsMHgyMCwweDgyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfX0sCi0gezE2LCAweDk1YjAsIDAsIHsweDIwLDB4MDAsMHg0YiwweDEyLDB4MDIsMHgwZCwweDgwLDB4YjMsMHg0MCwweDJjLDB4ZDgsMHgwOCwweDIwLDB4NDIsMHg4YywweDgwIH19LAotIHsxNiwgMHg5NWMwLCAwLCB7MHhiMywweDIwLDB4MjYsMHgwMiwweDE4LDB4MzMsMHgyNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDksMHhiYiwweDAwLDB4MmUsMHg2MCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHg5YiwweDAwLDB4MmUgfX0sCi0gezE2LCAweDk1ZTAsIDAsIHsweGMwLDB4MGIsMHhhYywweDAyLDB4MmMsMHgwMCwweGJhLDB4MDYsMHgyMiwweGMyLDB4MGIsMHg5NCwweDAyLDB4YWMsMHgxMCwweGJiIH19LAotIHsxNiwgMHg5NWYwLCAwLCB7MHgwMCwweDJlLDB4YzEsMHgwOCwweGE4LDB4MDIsMHhlYywweDAwLDB4YWIsMHgwMCwweDIyLDB4MDAsMHgwOCwweGIwLDB4MDYsMHhmMCB9fSwKLSB7MTYsIDB4OTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4NjAgfX0sCi0gezE2LCAweDk2MTAsIDAsIHsweDI4LDB4ODIsMHgxMywweDBlLDB4MDgsMHhjYiwweDAwLDB4M2EsMHhjMCwweDBmLDB4OGMsMHgwMywweGVjLDB4MTEsMHhkYiwweDIwIH19LAotIHsxNiwgMHg5NjIwLCAwLCB7MHhiMiwweDkwLDB4NGIsMHhhOCwweDBiLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyYywweGMwLDB4MGMsMHg4OCwweDEzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4OTYzMCwgMCwgezB4ZjMsMHgwMCwweDM2LDB4MDYsMHg0OCwweGIwLDB4MTIsMHhjNCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2NDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmIsMHgwOCwweDNkLDB4NDAsMHg4ZiwweGVhLDB4MDEsMHhmNCwweDAwLDB4ZmYsMHgwMSwweDJmIH19LAotIHsxNiwgMHg5NjUwLCAwLCB7MHhjMCwweDBmLDB4ZDAsMHgyMiwweGZjLDB4MDQsMHhhZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZTksMHgwMywweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTY2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg5MCwweDQzLDB4ZmMsMHgyMCwweGVmLDB4MDIsMHgzZiwweDAwLDB4OGYsMHhmMCwweDAzLDB4YjggfX0sCi0gezE2LCAweDk2NzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDEwLDB4YWMsMHgwOCwweGViLDB4MDAsMHgxMiwweDQwIH19LAotIHsxNiwgMHg5NjgwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyOCwweDIwLDB4YWIsMHgwMCwweDNhLDB4YzAsMHg4ZiwweDg1LDB4ODMsMHhhYywweDEwLDB4ZjMsMHg1MCB9fSwKLSB7MTYsIDB4OTY5MCwgMCwgezB4MzIsMHg5MCwweDRjLDB4MzQsMHgxMywweDZjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBjLDB4OTgsMHgwMywweDJjLDB4NDAgfX0sCi0gezE2LCAweDk2YTAsIDAsIHsweGViLDB4ODAsMHgzMiwweDEyLDB4MGQsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NmIwLCAwLCB7MHg4OCwweDAxLDB4M2MsMHgxMCwweDBmLDB4MDUsMHhhMiwweDUwLDB4MGMsMHgxMCwweDAyLDB4MjIsMHgxMCwweDhmLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4OTZjMCwgMCwgezB4YzAsMHgwYiwweDg4LDB4MTIsMHgzYywweDAwLDB4OWIsMHg4MiwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzYywweDAwLDB4OGYgfX0sCi0gezE2LCAweDk2ZDAsIDAsIHsweGEwLDB4MmYsMHhjMCwweDA4LDB4YjAsMHgwMiwweDNjLDB4MDgsMHg4ZiwweDAyLDB4MjAsMHgwMCwweDA4LDB4ZjAsMHgwMywweDI2IH19LAotIHsxNiwgMHg5NmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRkLDB4MjAsMHg5MywweDAwLDB4MjAsMHhiMiB9fSwKLSB7MTYsIDB4OTZmMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MDEsMHgwMCwweGEzLDB4MDAsMHg2OCwweGMwLDB4MGIsMHg4NCwweDAyLDB4YWMsMHgwMCwweGIzLDB4ODAgfX0sCi0gezE2LCAweDk3MDAsIDAsIHsweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHg0YywweDAwLDB4YTMsMHgwNCwweDJjLDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwZCwweDAwIH19LAotIHsxNiwgMHg5NzEwLCAwLCB7MHhhMywweDAwLDB4MjAsMHgyNCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTcyMCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MjAsMHg5NywweDgwLDB4MjMsMHg2MCwweDA4LDB4NzgsMHgxMiwweDNhLDB4MDAsMHg4MywweDkxLDB4MjkgfX0sCi0gezE2LCAweDk3MzAsIDAsIHsweGU0LDB4MGIsMHg1OSwweDAyLDB4MWUsMHgwMCwweDk3LDB4OTAsMHgyMCwweGZjLDB4MGEsMHg3OCwweDAyLDB4MWUsMHgwMCwweDg3IH19LAotIHsxNiwgMHg5NzQwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgxOSwweDU5LDB4MDIsMHgxZSwweDgwLDB4ODMsMHg4MCwweDYxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4OTc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZDMsMHgzMiwweDMwLDB4MDYgfX0sCi0gezE2LCAweDk3NjAsIDAsIHsweDBmLDB4MzAsMHgwMywweDA0LDB4NjQsMHhlMywweDAxLDB4MzgsMHhjNCwweDFmLDB4MzAsMHgwNywweDhjLDB4MTgsMHhmMSwweDAwIH19LAotIHsxNiwgMHg5NzcwLCAwLCB7MHgzMCwweDRjLDB4MGUsMHgzMCwweDAzLDB4NGMsMHgwMCwweGUzLDB4MDAsMHgyYywweGMwLDB4MGMsMHgyMCwweDAzLDB4MGUsMHgwMCB9fSwKLSB7MTYsIDB4OTc4MCwgMCwgezB4ZTMsMHgwMCwweDMyLDB4MDgsMHgwYywweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk3OTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDgwLDB4ZWYsMHgxMCwweDNkLDB4NDQsMHg0ZiwweGYxLDB4MDcsMHhjYywweDAwLDB4ZmYsMHgwOCwweDM2IH19LAotIHsxNiwgMHg5N2EwLCAwLCB7MHhjNiwweGNmLDB4YjAsMHgwMywweGZjLDB4MDAsMHg5NywweDAwLDB4YmUsMHhjYywweDBkLDB4YjEsMHgwMywweGZkLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OTdiMCwgMCwgezB4MGMsMHgzZiwweGQyLDB4OWUsMHhlMCwweDRiLDB4ZmQsMHgyMCwweGZmLDB4MDIsMHgzZiwweDgwLDB4MGUsMHhmMCwweDEzLDB4ZDAgfX0sCi0gezE2LCAweDk3YzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHhjMCwweGNiLDB4MjgsMHgzZSwweGMwIH19LAotIHsxNiwgMHg5N2QwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMSwweDMyLDB4ZTksMHgwYywweDI4LDB4MDMsMHgyYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OTdlMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4YjQsMHg4MywweDJjLDB4MDEsMHhlZiwweDAwLDB4YjIsMHhjOCwweDBjLDB4MjAsMHgwMywweDZkLDB4MDAgfX0sCi0gezE2LCAweDk3ZjAsIDAsIHsweGNiLDB4MTAsMHgzZSwweDAwLDB4MGYsMHhiMiwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ODAwLCAwLCB7MHhjOCwweDkxLDB4OWMsMHhjNCwweDg3LDB4NjAsMHgyZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MTIsMHgyMCB9fSwKLSB7MTYsIDB4OTgxMCwgMCwgezB4Y2MsMHgwYSwweDcwLDB4MDIsMHgxYywweGMwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHhjOCwweDcwLDB4MjIsMHgxYywweDgwLDB4YjcgfX0sCi0gezE2LCAweDk4MjAsIDAsIHsweDI0LDB4MjEsMHhjOCwweDQ4LDB4NTAsMHgwMiwweDBjLDB4ODAsMHg4NywweDEwLDB4MmQsMHg0MCwweDBiLDB4NzIsMHg4MiwweGYyIH19LAotIHsxNiwgMHg5ODMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDhlLDB4MDIsMHg4NywweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4OTg0MCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweGI3LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDhlLDB4MWUsMHg0MCwweGI3LDB4ODggfX0sCi0gezE2LCAweDk4NTAsIDAsIHsweDIxLDB4ZTAsMHgwOCwweDM4LDB4MDIsMHgxZSwweDQwLDB4YjMsMHhhMSwweDIwLDB4ZTgsMHg0OCwweGY4LDB4ODIsMHg1ZSwweDAyIH19LAotIHsxNiwgMHg5ODYwLCAwLCB7MHg4NywweDgwLDB4MmQsMHgyMiwweDBiLDB4NzksMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTg3MCwgMCwgezB4MDgsMHgwNCwweGNjLDB4MDQsMHg4MywweDAyLDB4MmMsMHhkNCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4YTAgfX0sCi0gezE2LCAweDk4ODAsIDAsIHsweGMwLDB4OGEsMHgzOCwweDA2LDB4MGMsMHgwMCwweGIzLDB4ODAsMHgyMCwweGUxLDB4NDgsMHgzOSwweDEyLDB4MmMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5ODkwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4ODIsMHg2YywweDAwLDB4ODMsMHgwMCwweDJjLDB4NDgsMHgwYiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDNmLDB4YTAgfX0sCi0gezE2LCAweDk4YjAsIDAsIHsweDBmLDB4ZTQsMHgwMywweGQ4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4ZTgsMHgwMywweDI4LDB4MDAsMHhmYSwweDQwIH19LAotIHsxNiwgMHg5OGMwLCAwLCB7MHgzMiwweGE4LDB4MmMsMHhhMCwweDA5LDB4MjgsMHgwOCwweGYyLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlNCwweDAzLDB4NjgsMHgwMCB9fSwKLSB7MTYsIDB4OThkMCwgMCwgezB4Y2EsMHgwMCwweDNmLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4ZTAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAwLDB4ZjgsMHgwMSwweDNlLDB4MTIsMHgwYiwweDgwLDB4MDMsMHhlMCwweDQwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5OGYwLCAwLCB7MHgwMCwweDRmLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmMCwweDA4LDB4M2UsMHgwMCwweDRmLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OTkwMCwgMCwgezB4NDEsMHgzZSwweDAwLDB4MmYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDk5MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTYsMHgwMCwweGM5LDB4MTIsMHgzZSwweDUwIH19LAotIHsxNiwgMHg5OTIwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhlNCwweDIwLDB4YzEsMHgwMCwweDNhLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OTkzMCwgMCwgezB4MzAsMHg2OCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDk5NDAsIDAsIHsweGM5LDB4OTAsMHgzZSwweDY5LDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OTUwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHg0YSwweDg5LDB4ODAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHg4MCwweGE5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4OTk2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDEwLDB4ODkgfX0sCi0gezE2LCAweDk5NzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDA4LDB4OTMsMHgwMiwweDI0LDB4MjIsMHg4OSwweDQyLDB4MmMsMHg2MCwweDQ4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg5OTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OTk5MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfX0sCi0gezE2LCAweDk5YTAsIDAsIHsweDIzLDB4NDAsMHgwOCwweGQwLDB4MDIsMHgyNCwweDAwLDB4OTksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkwLDB4MDYsMHgyNCwweDQwIH19LAotIHsxNiwgMHg5OWIwLCAwLCB7MHg4OSwweDQxLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTljMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4ODAsMHg5MSwweDIwLDB4MmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDIwLDB4MjAgfX0sCi0gezE2LCAweDk5ZDAsIDAsIHsweDQ4LDB4MGIsMHgxMCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHhhMSwweDQ5LDB4MDgsMHg1MiwweDRhLDB4MDQsMHg4MCwweDgxIH19LAotIHsxNiwgMHg5OWUwLCAwLCB7MHgwMCwweDIwLDB4NDgsMHg0OCwweDEyLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgyMCwweDJjLDB4NDAsMHgyOCwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OTlmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4ZDgsMHgwNCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDlhMDAsIDAsIHsweDBmLDB4ODUsMHgwMywweGUwLDB4MDAsMHhjMCwweDUwLDB4M2EsMHgxNCwweDBmLDB4YTUsMHgwMywweGUxLDB4NDAsMHhmOCwweDAyIH19LAotIHsxNiwgMHg5YTEwLCAwLCB7MHgzMiwweDgwLDB4MmMsMHhjNSwweDAzLDB4MjEsMHg0MCwweGRhLDB4MDAsMHgzYSwweDE0LDB4MGUsMHg4NSwweDQzLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4OWEyMCwgMCwgezB4YzgsMHg1MiwweDNlLDB4MTQsMHgwYywweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhMzAsIDAsIHsweDg4LDB4MWQsMHhlNCwweDQ0LDB4ZTksMHgxMCwweDNmLDB4NDQsMHg0ZiwweGQwLDB4MDIsMHhmYywweDAwLDB4ZjksMHgxMiwweDNlIH19LAotIHsxNiwgMHg5YTQwLCAwLCB7MHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NCwweDRmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhlOSB9fSwKLSB7MTYsIDB4OWE1MCwgMCwgezB4NDAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTIsMHgzZiwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDlhNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZjYsMHhhMCwweGZkLDB4ODAsMHhiMywweDQwIH19LAotIHsxNiwgMHg5YTcwLCAwLCB7MHgwYywweDEwLDB4MDMsMHgxNCwweDAwLDB4ZmQsMHhhMCwweDMyLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhlNCwweDAwLDB4ZjUsMHg4NiB9fSwKLSB7MTYsIDB4OWE4MCwgMCwgezB4MzMsMHg2MCwweDJjLDB4OWEsMHg4MywweDI0LDB4MDQsMHhmZCwweGE4LDB4MjIsMHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAgfX0sCi0gezE2LCAweDlhOTAsIDAsIHsweGZkLDB4MDAsMHgzMywweDQwLDB4MGYsMHg5MCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YWEwLCAwLCB7MHg3OCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4MDAsMHgyMiwweDAwLDB4MjgsMHg4MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHhhMiB9fSwKLSB7MTYsIDB4OWFiMCwgMCwgezB4MDAsMHgwYiwweDhhLDB4MTIsMHhlMCwweDAwLDB4YjgsMHgwNCwweDIyLDB4MTQsMHgwOCwweDg0LDB4MDIsMHgyMCwweDAwLDB4YjggfX0sCi0gezE2LCAweDlhYzAsIDAsIHsweDQwLDB4MjAsMHgwMCwweDg4LDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4YTIsMHgwMCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHg5YWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDQyLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4NDAsMHgyMCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgwMCwweGIxLDB4NDAgfX0sCi0gezE2LCAweDlhZjAsIDAsIHsweDI0LDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0NCwweDA0LDB4YjEsMHgwMCwweDYwLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHg5YjAwLCAwLCB7MHhiMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWIxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjIsMHg2MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAxLDB4MjIgfX0sCi0gezE2LCAweDliMjAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDA2LDB4ZTQsMHgwMCwweGI5LDB4MjAsMHgyNiwweDQwLDB4MDgsMHg5NCwweDAyLDB4NjQsMHgwOCwweGI5IH19LAotIHsxNiwgMHg5YjMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHgwOCwweDkyLDB4MDIsMHhlYywweDA4LDB4YjksMHgwNCwweDIyLDB4NDEsMHgwYiwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4OWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfX0sCi0gezE2LCAweDliNTAsIDAsIHsweDBjLDB4OTQsMHgwYiwweDI1LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDhmLDB4OTQsMHhkMywweGU0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg5YjYwLCAwLCB7MHgzNiwweDQwLDB4NGMsMHg5MCwweDBiLDB4NjQsMHgwMCwweGYxLDB4MDAsMHgzMiwweDQwLDB4MGQsMHg5MiwweDEyLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OWI3MCwgMCwgezB4ZjksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDliODAsIDAsIHsweDY4LDB4NDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHg4ZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHg5YjkwLCAwLCB7MHg0MCwweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YmEsMHg0MCwweDJmLDB4OTAsMHgyMywweGE0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OWJhMCwgMCwgezB4MDgsMHhiZSwweDQwLDB4Y2YsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGYxLDB4MDEsMHgzZSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDliYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHhjOCwweGY4LDB4MDAsMHgzZSwweDAzIH19LAotIHsxNiwgMHg5YmMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHhhMSwweDEwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4YywweDg1LDB4ODMsMHhlMCwweDAwLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4OWJkMCwgMCwgezB4MzgsMHgwYywweDJjLDB4MDAsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwLDB4M2MsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIwLDB4MTAgfX0sCi0gezE2LCAweDliZTAsIDAsIHsweGM4LDB4MjAsMHhiMiwweDAyLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YmYwLCAwLCB7MHgyOCwweDA1LDB4MzksMHgxMCwweGJlLDB4MDQsMHg2ZiwweGEwLDB4MDgsMHhhMCwweDAyLDB4M2EsMHgwMCwweDgyLDB4MDAsMHhhMiB9fSwKLSB7MTYsIDB4OWMwMCwgMCwgezB4ODAsMHg4ZCwweGVjLDB4MDMsMHhhOCwweDAwLDB4OGEsMHgwMCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MjIsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweDljMTAsIDAsIHsweGNjLDB4MmYsMHg4MCwweDA4LDB4ZTgsMHhjMiwweGI4LDB4MDAsMHg4ZSwweDYwLDB4MjMsMHg5MCwweDBiLDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg5YzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRlLDB4MDgsMHhiMCwweDcyLDB4MmMsMHhkMCB9fSwKLSB7MTYsIDB4OWMzMCwgMCwgezB4MjgsMHhiMCwweDA2LDB4OGMsMHgwMSwweGExLDB4MDIsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweDljNDAsIDAsIHsweDIwLDB4YzAsMHgyOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODEsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMyLDB4MDIsMHgwYywweDQwIH19LAotIHsxNiwgMHg5YzUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhmNCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWM2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhkMCwweDQ4LDB4ZjIsMHgwMiwweDFlLDB4MjEsMHg4NSwweDIwLDB4MjAgfX0sCi0gezE2LCAweDljNzAsIDAsIHsweGU4LDB4MDksMHg3MiwweDAyLDB4OGUsMHg4MCwweDhmLDB4MDEsMHgyMCwweGMwLDB4MDksMHg3MiwweDAyLDB4MGUsMHg4MCwweDg3IH19LAotIHsxNiwgMHg5YzgwLCAwLCB7MHgwMCwweDJkLDB4Y2MsMHgxOCwweDU4LDB4MDIsMHg4ZSwweDAwLDB4ODUsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OWM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfX0sCi0gezE2LCAweDljYTAsIDAsIHsweDBjLDB4NzgsMHg4MywweDlhLDB4MDAsMHhlZCwweGQwLDB4MzEsMHhmNCwweDBjLDB4NmEsMHgwMywweGRlLDB4ODIsMHhjNywweDgwIH19LAotIHsxNiwgMHg5Y2IwLCAwLCB7MHgzOSwweGUwLDB4MGQsMHhmOCwweDgzLDB4NWUsMHhjMiwweGM1LDB4ODAsMHgzZCwweGU4LDB4MGMsMHg2OCwweDAzLDB4MTIsMHgwMCB9fSwKLSB7MTYsIDB4OWNjMCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwZiwweDdlLDB4ODMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljZDAsIDAsIHsweDA4LDB4MGQsMHhhYywweDA4LDB4ZjgsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIzLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMiwweDNlIH19LAotIHsxNiwgMHg5Y2UwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweGVkLDB4NDAsMHhmYiwweDAwLDB4YmUsMHg4MCwweDBlLDB4YjMsMHgwMywweGVkLDB4YzAsMHhmYiB9fSwKLSB7MTYsIDB4OWNmMCwgMCwgezB4MDAsMHgzZSwweGQyLDB4MmUsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDlkMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGYwLDB4OTEsMHgzMywweGUwIH19LAotIHsxNiwgMHg5ZDEwLCAwLCB7MHg4ZiwweGY4LDB4MDMsMHhmZSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwYywweDc4LDB4ODMsMHgzZiwweDAwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4OWQyMCwgMCwgezB4M2YsMHhhMCwweDBjLDB4ZjgsMHgwMywweDNlLDB4MDAsMHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgxMywweGZlLDB4MTAgfX0sCi0gezE2LCAweDlkMzAsIDAsIHsweGZmLDB4ODAsMHgzZiwweDIwLDB4MGYsMHhmOSwweDQzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZDQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4YzEsMHgzMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDQsMHgxMCwweGU1LDB4MjAsMHgyZiB9fSwKLSB7MTYsIDB4OWQ1MCwgMCwgezB4YzgsMHgwZiwweDQwLDB4MDMsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4ODAsMHgwOCwweDcwLDB4MDIsMHgxYywweDQwLDB4ODcgfX0sCi0gezE2LCAweDlkNjAsIDAsIHsweDEwLDB4MmQsMHhjMCwweDBiLDB4NzYsMHgwMiwweGRjLDB4ODAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHg5ZDcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDljLDB4MDAsMHhiNiwweDIyLDB4MjEsMHhkMCB9fSwKLSB7MTYsIDB4OWQ4MCwgMCwgezB4MGIsMHg3MCwweDgyLDB4ZDgsMHg0MCwweGI1LDB4MDIsMHgyZCwweGMwLDB4ODgsMHg2NSwweDAyLDB4MGMsMHgwMCwweDg3LDB4MTggfX0sCi0gezE2LCAweDlkOTAsIDAsIHsweDJjLDB4MDQsMHgwOCwweDMwLDB4MDIsMHg4YywweDAyLDB4ODUsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4NDYsMHg5MCwweDEwIH19LAotIHsxNiwgMHg5ZGEwLCAwLCB7MHhiNiwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgyMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWRiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweDAwLDB4YTQsMHhjMCwweDBiLDB4MzAsMHg0MiwweGM2LDB4MTAsMHhhMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDlkYzAsIDAsIHsweGMwLDB4MGEsMHgwMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweDA4LDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHg5ZGQwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDE4LDB4ODIsMHhjNCwweDAwLDB4YjAsMHgwMCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MTIsMHhkOCB9fSwKLSB7MTYsIDB4OWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhhYywweDAwLDB4MzgsMHgwMCwweDMyLDB4NTAgfX0sCi0gezE2LCAweDlkZjAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGU2LDB4MjAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDA4LDB4ZDAsMHgwMiwweDNjLDB4MDIsMHhjYiwweDgwIH19LAotIHsxNiwgMHg5ZTAwLCAwLCB7MHgzYywweDUwLDB4MmMsMHhmMCwweDBhLDB4YmMsMHgwMCwweGM5LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhiZSwweDAzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4OWUxMCwgMCwgezB4ZmEsMHgwMiwweDJlLDB4ZjcsMHg0ZiwweGYwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllMjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjEsMHgwMCwweDNhLDB4ZjAsMHgwZiwweGIwLDB4MDMsMHhlOSwweDAwLDB4ZjksMHgwMSwweDNlIH19LAotIHsxNiwgMHg5ZTMwLCAwLCB7MHhjMCwweDBmLDB4OTAsMHgxMywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1NSwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OWU0MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHg5MCwweDczLDB4ZTAsMHgwMCwweGY4LDB4NDEsMHgzZSwweDAwLDB4MGYsMHgzMCwweDAxLDB4ZTAgfX0sCi0gezE2LCAweDllNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzMywweGMwIH19LAotIHsxNiwgMHg5ZTYwLCAwLCB7MHgxZiwweGYwLDB4MTMsMHhmMCwweDA4LDB4ZmQsMHgwMiwweDNmLDB4YzAsMHg4ZCwweGMwLDB4MDMsMHgzYywweDAwLDB4Y2YsMHhhMCB9fSwKLSB7MTYsIDB4OWU3MCwgMCwgezB4M2YsMHg4MCwweDBjLDB4NzAsMHgwMywweDNjLDB4MTAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGIwLDB4MDAgfX0sCi0gezE2LCAweDllODAsIDAsIHsweGZlLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhmMCwweDAzLDB4MDQsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZTkwLCAwLCB7MHg4NCwweDA0LDB4NmUsMHgwMCwweGI5LDB4YzIsMHhhMiwweGYwLDB4MGIsMHhiMCwweDQyLDB4ZWIsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OWVhMCwgMCwgezB4YzAsMHgwZiwweDE4LDB4MDMsMHg2YywweDAwLDB4ZDksMHg4MSwweDJlLDB4YjAsMHgwYSwweGIwLDB4NDIsMHgyYywweDAwLDB4YmEgfX0sCi0gezE2LCAweDllYjAsIDAsIHsweGM2LDB4MmUsMHhjMCwweDBiLDB4OGMsMHgwMiwweGUzLDB4MDAsMHhiOCwweGMwLDB4M2MsMHhhMCwweDBkLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg5ZWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJmLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhlMiB9fSwKLSB7MTYsIDB4OWVkMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZTYsMHgyMCwweGI5LDB4MDAsMHgyYywweGMwLDB4MDgsMHhiOCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDllZTAsIDAsIHsweDJlLDB4MzAsMHg0OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YjksMHhjMCwweDJlLDB4YzEsMHgwYiwweDg4LDB4MDIsMHhlZSwweDEwIH19LAotIHsxNiwgMHg5ZWYwLCAwLCB7MHhiOSwweGMwLDB4MmUsMHgyMCwweDE5LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWYwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwNiwweGMwLDB4MDAsMHg5MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDlmMTAsIDAsIHsweGMwLDB4NDksMHg4MCwweDAyLDB4NGMsMHgwNCwweDkxLDB4MDAsMHgyYywweDAwLDB4OGEsMHgzMCwweDBhLDB4MGMsMHgwNCwweGIxIH19LAotIHsxNiwgMHg5ZjIwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgxYiwweDAwLDB4MTIsMHg0OSwweDEwLDB4YjEsMHgwMCwweDJlLDB4MjAsMHgwOSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OWYzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YjgsMHgyMCwweDIyLDB4YzAgfX0sCi0gezE2LCAweDlmNDAsIDAsIHsweDhiLDB4ZjAsMHgwMywweGUwLDB4MDgsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBjLDB4YTAsMHgwMywweDNjLDB4MDAsMHhjYiwweDAwIH19LAotIHsxNiwgMHg5ZjUwLCAwLCB7MHgzZSwweDAwLDB4NGMsMHhmMCwweDBhLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzNywweGMxLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4OWY2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4MDAsMHgwZCwweGYwLDB4MGIsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlmNzAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAxLDB4ZmMsMHg0MCwweDNmLDB4ODAsMHg0ZiwweGYwLDB4MDIsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5ZjgwLCAwLCB7MHhjMSwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDRmLDB4ZjAsMHg2MywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4OWY5MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGZjLDB4MDAsMHg3YiwweDAwLDB4MGYsMHhmMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweDlmYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjgsMHgwMCwweGM4LDB4MTAsMHgzMywweDA0IH19LAotIHsxNiwgMHg5ZmIwLCAwLCB7MHgwYywweDQwLDB4MDIsMHgzNCwweDAwLDB4YzgsMHg4NSwweDFmLDB4YzAsMHgyZCwweGQ5LDB4MDMsMHhmYywweGMwLDB4ZGIsMHgyOCB9fSwKLSB7MTYsIDB4OWZjMCwgMCwgezB4MzcsMHg2NCwweDBmLDB4ZGIsMHgwMywweDNlLDB4MDAsMHhmZiwweDI1LDB4M2YsMHhjOCwweDBlLDB4ZjIsMHgwMywweGZlLDB4MjAgfX0sCi0gezE2LCAweDlmZDAsIDAsIHsweGZmLDB4YTQsMHgzNywweGM0LDB4MGMsMHhjOCwweDAzLDB4MzAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZmUwLCAwLCB7MHg4MCwweDEwLDB4ZTgsMHgwMCwweDg4LDB4MjAsMHgyMiwweDAwLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwNCwweDg5LDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4OWZmMCwgMCwgezB4ZjQsMHg0OCwweGI4LDB4MDIsMHhmYywweGM0LDB4OTgsMHhjMiwweDIyLDB4N2MsMHg0YiwweDlkLDB4NDIsMHgyNiwweDA4LDB4YmYgfX0sCi0gezE2LCAweGEwMDAsIDAsIHsweDE4LDB4NzcsMHhlNCwweDA4LDB4ZjEsMHg4MiwweGVmLDB4MDAsMHhiYiwweGQwLDB4MjIsMHhkOCwweDA4LDB4OTAsMHg4MywweDYwIH19LAotIHsxNiwgMHhhMDEwLCAwLCB7MHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGM4LDB4MDQsMHhhMCwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTAyMCwgMCwgezB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDgyLDB4MDQsMHgyYywweGUwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGEwMzAsIDAsIHsweDI0LDB4MDAsMHgwYiwweDEwLDB4MDYsMHhjOCwweDAxLDB4YjMsMHgyMCwweDJjLDB4YzAsMHgyOSwweDMyLDB4MDIsMHhjOCwweDA4IH19LAotIHsxNiwgMHhhMDQwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHhkMCwweDA4LDB4ODIsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTA1MCwgMCwgezB4YzAsMHgxNSwweGE4LDB4MDAsMHhhOCwweDBjLDB4MjYsMHgwMCwweDBhLDB4ODAsMHgwMiwweDJjLDB4MTQsMHg4YSwweDAyLDB4NmUgfX0sCi0gezE2LCAweGEwNjAsIDAsIHsweGUwLDB4MDgsMHhiMCwweDAyLDB4NGMsMHgwOCwweGE4LDB4MDAsMHgyNiwweDIwLDB4MGIsMHg5YywweDAyLDB4ZTQsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhMDcwLCAwLCB7MHgwNCwweDIyLDB4YzAsMHgxOSwweGIwLDB4MDIsMHhlOCwweDAxLDB4YmIsMHgxMSwweDAyLDB4YzAsMHg4OCwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YTA4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4ZWEsMHg0MCwweGI2LDB4NjAgfX0sCi0gezE2LCAweGEwOTAsIDAsIHsweDJlLDB4OTgsMHgwYiwweDIwLDB4MDIsMHhjOCwweDAyLDB4M2UsMHhjMCwweDBkLDB4OTgsMHgwMywweGVjLDB4MDIsMHhkYiwweDg4IH19LAotIHsxNiwgMHhhMGEwLCAwLCB7MHhiNiwweDIxLDB4MGYsMHg4OCwweDAzLDB4YWMsMHgwOCwweGZiLDB4MDAsMHgyYywweGMwLDB4MGUsMHhiMCwweDQzLDB4ZTUsMHg4MCB9fSwKLSB7MTYsIDB4YTBiMCwgMCwgezB4ZjAsMHg2MCwweDM2LDB4YzAsMHgwYywweDAxLDB4NDMsMHg0OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwYzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZDYsMHgwMSwweDNiLDB4NjQsMHg4NSwweGQ5LDB4MDMsMHhmMCwweDBjLDB4ZmYsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhMGQwLCAwLCB7MHhjMSwweDBmLDB4ZmMsMHgyMSwweGVjLDB4MDAsMHhkNywweDkwLDB4M2IsMHg0MCwweDBmLDB4NTAsMHgwMywweDNjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YTBlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4ODgsMHgzZiwweGMwLDB4MmYsMHhkMCwweDAyLDB4NzggfX0sCi0gezE2LCAweGEwZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgwMCwweGRhLDB4NDAsMHgzYywweDQwIH19LAotIHsxNiwgMHhhMTAwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHg0OCwweDAwLDB4ZjksMHgyMiwweDNjLDB4YzIsMHgwZSwweDkwLDB4ODMsMHhlYywweDAyLDB4ZGIsMHgwNCB9fSwKLSB7MTYsIDB4YTExMCwgMCwgezB4M2EsMHgwOCwweDBmLDB4ODQsMHg4NywweGU4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjNCwweDBlLDB4YjAsMHgwMywweGVkLDB4MDAgfX0sCi0gezE2LCAweGExMjAsIDAsIHsweGU4LDB4NDIsMHgzYSwweGMwLDB4MGYsMHg4MCwweDBiLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMTMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyZSwweDQyLDB4OGIsMHg5MCwweDAyLDB4MjgsMHgxOCwweGJiLDB4NDksMHgyMiB9fSwKLSB7MTYsIDB4YTE0MCwgMCwgezB4ZDAsMHgzOCwweGJjLDB4ODIsMHhmYywweDAwLDB4ZTgsMHgwMiwweDIyLDB4NjIsMHhjYiwweDljLDB4MDAsMHhlZiwweDYwLDB4ZGYgfX0sCi0gezE2LCAweGExNTAsIDAsIHsweDAwLDB4MmYsMHhjMCwweDBiLDB4ZjAsMHgwMiwweGVjLDB4MDAsMHgwOSwweDQwLDB4MzcsMHhjMCwweDBiLDB4OTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhhMTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4MTAsMHgxMSwweDAwLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4YTE3MCwgMCwgezB4MGIsMHgyMCwweDAyLDB4NDQsMHgwMCwweDkwLDB4YzAsMHg2NCwweDM0LDB4MjgsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4ODQgfX0sCi0gezE2LCAweGExODAsIDAsIHsweDI4LDB4NDAsMHgwYiwweDA4LDB4MDAsMHhjZSwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzIsMHgwYSwweDMwLDB4MDIsMHhjMCwweDAwIH19LAotIHsxNiwgMHhhMTkwLCAwLCB7MHhiMiwweDQwLDB4MjIsMHhjMCwweDBiLDB4MjAsMHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTFhMCwgMCwgezB4NzAsMHgwMSwweDFhLDB4NDAsMHg4NSwweDgwLDB4MmQsMHhhMCwweDBiLDB4NjgsMHgwNiwweDE2LDB4ODAsMHhiZCwweDkwLDB4MjUgfX0sCi0gezE2LCAweGExYjAsIDAsIHsweDI0LDB4MTgsMHg3YiwweDQyLDB4ZGUsMHg0MCwweGEwLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg2OCwweDAyLDB4ZDYsMHgwMCwweDk3IH19LAotIHsxNiwgMHhhMWMwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhjZSwweDQwLDB4OTIsMHg4MCwweDZkLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyOCwweDAwLDB4ZDEsMHg4MCwweDNjLDB4ODggfX0sCi0gezE2LCAweGExZTAsIDAsIHsweDBiLDB4MjIsMHgwMywweDRlLDB4ODAsMHhmMiwweGExLDB4M2MsMHgyNCwweDJhLDB4MzksMHgwMywweGNjLDB4NDAsMHhkMywweGFjIH19LAotIHsxNiwgMHhhMWYwLCAwLCB7MHgzOCwweGM1LDB4MGYsMHgzMCwweDgyLDB4YzgsMHgwMCwweGQzLDB4MDAsMHgzYywweGMwLDB4MGUsMHgzMCwweDEzLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4YTIwMCwgMCwgezB4ZjEsMHgwMCwweDM4LDB4YzAsMHgwZiwweGEwLDB4MDMsMHgxYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyMTAsIDAsIHsweDQwLDB4MWQsMHhiOCwweDEwLDB4ZmQsMHgzNCwweDNlLDB4ODAsMHgwZiwweGUwLDB4MDMsMHhlZSwweDAwLDB4NzIsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhMjIwLCAwLCB7MHgwMCwweDBmLDB4YjAsMHg2MywweGVjLDB4NDAsMHhmOCwweDIyLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweGQ0LDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4YTIzMCwgMCwgezB4MDAsMHgzZiwweGQyLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGNmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGEyNDAsIDAsIHsweDA2LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWUsMHgwMCwweGViLDB4MDAsMHgzNiwweGUwIH19LAotIHsxNiwgMHhhMjUwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHgyMCwweDAwLDB4ZjAsMHg4MCwweDMzLDB4YzAsMHgwOCwweGI4LDB4MDMsMHgyYywweDgwLDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4YTI2MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweDZlLDB4MDgsMHhjYiwweDI4LDB4MzIsMHhlMCwweDBkLDB4YjQsMHg4MywweGUyLDB4MDAgfX0sCi0gezE2LCAweGEyNzAsIDAsIHsweGNhLDB4MDAsMHgzZSwweGUwLDB4MGMsMHhhOCwweDAzLDB4MDIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMjgwLCAwLCB7MHhjOCwweDExLDB4OGMsMHgwNCwweDgzLDB4MDAsMHgyMSwweGMwLDB4NDgsMHg3MCwweDAyLDB4MTAsMHgwMCwweGI3LDB4MDIsMHgyMSB9fSwKLSB7MTYsIDB4YTI5MCwgMCwgezB4YzAsMHg0YSwweDcwLDB4MDIsMHgwZCwweDQ4LDB4ZDQsMHgwMCwweDM1LDB4YzAsMHgwZSwweDYwLDB4MDIsMHhkYywweDAwLDB4YTcgfX0sCi0gezE2LCAweGEyYTAsIDAsIHsweDQwLDB4MjksMHhjMCwweDA5LDB4NzIsMHgwMiwweGQ0LDB4MTAsMHhhNiwweDAyLDB4MmYsMHhjOCwweDA4LDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhhMmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjAsMHhlMCB9fSwKLSB7MTYsIDB4YTJjMCwgMCwgezB4MGEsMHgzOCwweDAyLDB4MWEsMHgwMCwweGI1LDB4ODAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDIyLDB4NWMsMHg4MSwweDgzLDB4ODAgfX0sCi0gezE2LCAweGEyZDAsIDAsIHsweDIxLDB4YTEsMHgwYiwweDc4LDB4ODIsMHg1YSwweDEwLDB4ODMsMHhhMCwweDIwLDB4ZTgsMHgwYSwweDdiLDB4MDIsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhMmUwLCAwLCB7MHg5NywweGMwLDB4MmQsMHhlNCwweDA4LDB4ZTgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTJmMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDEwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHgwMiwweDA4LDB4MDgsMHhiMywweDcwLDB4MjAgfX0sCi0gezE2LCAweGEzMDAsIDAsIHsweGY4LDB4MGEsMHgzMCwweDQyLDB4NGMsMHgwNCwweDkzLDB4MTQsMHgyNiwweGM0LDB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweGEzIH19LAotIHsxNiwgMHhhMzEwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHhhYSwweDMwLDB4MDIsMHhjZSwweDQwLDB4YjMsMHg4OCwweDJjLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4YTMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDAwLDB4ZWEsMHg4MCwweGI2LDB4OTAgfX0sCi0gezE2LCAweGEzMzAsIDAsIHsweDJmLDB4MjQsMHgwYiwweDM5LDB4MDQsMHhiZSwweGMwLDB4MzMsMHg5MiwweDBjLDB4YTAsMHgwYiwweDY4LDB4MTgsMHhjZSwweGMwIH19LAotIHsxNiwgMHhhMzQwLCAwLCB7MHgzMywweDgwLDB4MGYsMHhlOSwweDQzLDB4NzgsMHgwMCwweGNhLDB4MDAsMHgzMiwweDgwLDB4MGYsMHhhMCwweDEzLDB4ZjgsMHg0OCB9fSwKLSB7MTYsIDB4YTM1MCwgMCwgezB4ZGUsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDIsMHgzYSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEzNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDI0LDB4ZjgsMHgwMCwweDNlLDB4MTIsMHgwZCwweDgwLDB4OTMsMHhiMCwweDI4LDB4ZjgsMHgwMCwweGJjIH19LAotIHsxNiwgMHhhMzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMiwweDBlLDB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YTM4MCwgMCwgezB4MDEsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGEzOTAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHhiMiwweDcwIH19LAotIHsxNiwgMHhhM2EwLCAwLCB7MHgwZiwweDkwLDB4MDEsMHgwNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDk4LDB4MDMsMHhlNCwweDA0LDB4ZTksMHgwOCB9fSwKLSB7MTYsIDB4YTNiMCwgMCwgezB4M2EsMHg0OCwweDBjLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBiLDB4MTAsMHgwYiwweDI2LDB4ODAgfX0sCi0gezE2LCAweGEzYzAsIDAsIHsweGYxLDB4ODAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhM2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDYxLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwOCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YTNlMCwgMCwgezB4NDAsMHgwZCwweDlhLDB4MDIsMHhlNCwweDA4LDB4YTksMHgwMCwweDIyLDB4NzgsMHgwZCwweDk0LDB4MDYsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweGEzZjAsIDAsIHsweDAwLDB4MjIsMHg1MCwweDBiLDB4OTAsMHgwMiwweDI1LDB4ODAsMHhiOSwweDgwLDB4MzYsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhhNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiNSwweDAwLDB4MjMsMHg0MiB9fSwKLSB7MTYsIDB4YTQxMCwgMCwgezB4MGIsMHhkMCwweDBlLDB4YjQsMHgwMCwweDg5LDB4MDQsMHgyZSwweDYwLDB4MDgsMHg5MSwweDAyLDB4YzQsMHgwNCwweGI5LDB4MDQgfX0sCi0gezE2LCAweGE0MjAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDEwLDB4YjEsMHgwMCwweDI2LDB4NDIsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHhhNDMwLCAwLCB7MHhiOSwweDIxLDB4NjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTQ0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHhiNSwweDQwLDB4MjEsMHg1MCwweDRiLDB4NTAsMHgwNiwweDk0LDB4MDIsMHg4MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGE0NTAsIDAsIHsweDYwLDB4MjksMHgxNCwweDA2LDB4YzUsMHgwMCwweGExLDB4MjIsMHgyMCwweDUxLDB4ODksMHgxNCwweDAyLDB4YzQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhhNDYwLCAwLCB7MHgyMCwweDIwLDB4NDgsMHgwYiwweDE0LDB4MDIsMHgwNCwweDAxLDB4YjEsMHgwMCwweDA0LDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTQ3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4YjgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGE0ODAsIDAsIHsweDhmLDB4ODAsMHgwMywweGIwLDB4MDAsMHg4OCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAsMHhlOCwweDA0IH19LAotIHsxNiwgMHhhNDkwLCAwLCB7MHgzYSwweDAwLDB4MGMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwNCB9fSwKLSB7MTYsIDB4YTRhMCwgMCwgezB4ZjgsMHgwMSwweDEyLDB4MDAsMHg0ZiwweDgwLDB4MDcsMHhlZSwweDA3LDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0YjAsIDAsIHsweDk4LDB4MWQsMHhlNSwweDEwLDB4ZjksMHg0MCwweDNlLDB4NTAsMHgwZiwweDk0LDB4MDIsMHg2NSwweDAxLDB4ZmQsMHgwMSwweDNkIH19LAotIHsxNiwgMHhhNGMwLCAwLCB7MHg1MCwweDRmLDB4NTAsMHgxMywweGU1LDB4MDAsMHhmZCwweDEwLDB4MWYsMHg1MCwweDA3LDB4ZDQsMHg0MywweGQ0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTRkMCwgMCwgezB4MTAsMHgxZSwweDQ0LDB4MGYsMHg5NCwweDAzLDB4ZDUsMHgwMCwweGZkLDB4NDAsMHgzZSwweDUwLDB4MGYsMHg1MiwweDgzLDB4ZWUgfX0sCi0gezE2LCAweGE0ZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZTQsMHg0MCwweGY5LDB4NjAsMHgzZiwweDQ0IH19LAotIHsxNiwgMHhhNGYwLCAwLCB7MHgwZiwweGQwLDB4YzMsMHhlNCwweDMwLDB4ZjksMHgwMSwweDNlLDB4NDIsMHgwYywweGQwLDB4MDMsMHhlNywweDgwLDB4ZGQsMHhhMCB9fSwKLSB7MTYsIDB4YTUwMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhjOSwweDkwLDB4M2YsMHg2OCwweDFlLDB4OTEsMHgwMywweDM0LDB4MDAgfX0sCi0gezE2LCAweGE1MTAsIDAsIHsweGZkLDB4MDAsMHgzZSwweDY4LDB4MGMsMHg5NCwweDAzLDB4MGUsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNTIwLCAwLCB7MHgzOSwweDEwLDB4ZTAsMHgwMCwweGI4LDB4NDIsMHgyZSwweDA5LDB4MGIsMHg4NCwweDAyLDB4ZTEsMHgwNCwweGJlLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YTUzMCwgMCwgezB4MTAsMHgwOCwweDgwLDB4MjIsMHhjMiwweDgwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYSwweDgwLDB4MDIsMHhlMCwweDAwLDB4YTggfX0sCi0gezE2LCAweGE1NDAsIDAsIHsweGQwLDB4MmUsMHgxMCwweDRiLDB4OGEsMHgwMywweDYwLDB4MDAsMHhiYSwweDAwLDB4MmUsMHgzMCwweDA4LDB4OGEsMHgwMiwweDg2IH19LAotIHsxNiwgMHhhNTUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGM1LDB4ODAsMHhiMSwweDYwLDB4NmMsMHhkMCB9fSwKLSB7MTYsIDB4YTU2MCwgMCwgezB4MGIsMHgxMCwweDAwLDB4ZGMsMHgwYywweGI1LDB4MDAsMHgyYywweDQxLDB4MDgsMHgxMCwweDAyLDB4YzUsMHg4MCwweDkxLDB4MTAgfX0sCi0gezE2LCAweGE1NzAsIDAsIHsweDY4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhlNCwweDBjLDB4ODEsMHgyMiwweDJjLDB4NTAsMHgwOCwweDEwLDB4NDIsMHgwNCwweDAwIH19LAotIHsxNiwgMHhhNTgwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg1YSwweDI4LDB4OTAsMHgwMiwweDUyLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTU5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgxMiwweGY0LDB4ODAsMHhiZiwweDAwLDB4MmUgfX0sCi0gezE2LCAweGE1YTAsIDAsIHsweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGE5LDB4NjAsMHg2MCwweDQyLDB4MGEsMHg5NCwweDEyLDB4ZTUsMHgwMCwweGE5IH19LAotIHsxNiwgMHhhNWIwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg2NCwweDIwLDB4YjksMHgwMCwweDBlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YTVjMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDEgfX0sCi0gezE2LCAweGE1ZDAsIDAsIHsweDBmLDB4OTAsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDQsMHhkMSwweGMwIH19LAotIHsxNiwgMHhhNWUwLCAwLCB7MHhiYSwweDcwLDB4MGMsMHg5OCwweDAzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjUsMHg0MCB9fSwKLSB7MTYsIDB4YTVmMCwgMCwgezB4ZTksMHg0MCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2MDAsIDAsIHsweDY4LDB4MDEsMHhhNCwweDE0LDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhlNCwweDA4LDB4ZjksMHhhMCwweDNjIH19LAotIHsxNiwgMHhhNjEwLCAwLCB7MHhjMiwweDJmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhkOSwweDgwLDB4M2UsMHg3MCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTYyMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MWYsMHg5MCwweDEzLDB4ZTYsMHgyMCwweGY5LDB4YTAsMHgzYywweDQwLDB4NGUsMHg5MCwweDAzLDB4OWEgfX0sCi0gezE2LCAweGE2MzAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAyIH19LAotIHsxNiwgMHhhNjQwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHgyMCwweDBjLDB4ZmMsMHgwMSwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg1MCB9fSwKLSB7MTYsIDB4YTY1MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwYiwweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHg0MywweGUwLDB4NDAgfX0sCi0gezE2LCAweGE2NjAsIDAsIHsweGY4LDB4MDIsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNjcwLCAwLCB7MHhhOCwweDg1LDB4MjgsMHgwOCwweDNhLDB4MDAsMHgwZiwweDgwLDB4NGIsMHhhMSwweDAyLDB4MjgsMHgwMCwweGJhLDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4YTY4MCwgMCwgezB4ODgsMHg0OCwweGU0LDB4MDIsMHhlOCwweDAwLDB4YWUsMHg5MCwweGEzLDB4OTAsMHgwYiwweGUwLDB4MDAsMHgzOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGE2OTAsIDAsIHsweDAwLDB4MzcsMHhhMCwweDA4LDB4YTAsMHgwMiwweGY4LDB4MDAsMHg5ZSwweGUwLDB4MjIsMHg4MCwweDBiLDB4YTAsMHgyMywweDQyIH19LAotIHsxNiwgMHhhNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MTAsMHgzMywweDAwLDB4MmMsMHhkMCB9fSwKLSB7MTYsIDB4YTZiMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MGMsMHgwMCwweGIyLDB4OTEsMHgyYywweGQwLDB4MDgsMHgzZSwweDAyLDB4NGMsMHgwMCwweDgzLDB4NDAgfX0sCi0gezE2LCAweGE2YzAsIDAsIHsweDI0LDB4YzIsMHgwYiwweDM2LDB4MDAsMHg4YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhjZSwweDAwIH19LAotIHsxNiwgMHhhNmQwLCAwLCB7MHhiMywweGNjLDB4NjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTZlMCwgMCwgezB4ZTAsMHgwMSwweDFjLDB4ODgsMHhiNywweDI1LDB4MmQsMHhjMCwweDhiLDB4NTgsMHgxYSwweDFjLDB4MDgsMHhiNiwweDAwLDB4MmQgfX0sCi0gezE2LCAweGE2ZjAsIDAsIHsweGMwLDB4MDgsMHg3NCwweDAyLDB4ZGMsMHg0MCwweGE1LDB4MDAsMHgyNSwweGMwLDB4MWIsMHg3OCwweDAyLDB4OTQsMHgwOCwweGI3IH19LAotIHsxNiwgMHhhNzAwLCAwLCB7MHg4MCwweDI1LDB4ZTMsMHgwYSwweDcxLDB4MDIsMHhkYywweDAwLDB4OTcsMHg4MywweDIxLDB4YzgsMHg4YiwweGYxLDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YTcxMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDAwLDB4ZjcsMHhlMiwweDdkLDB4ZTAgfX0sCi0gezE2LCAweGE3MjAsIDAsIHsweDBmLDB4NTgsMHg0MywweDFlLDB4MTgsMHhmNiwweDgwLDB4N2MsMHhlMCwweDJjLDB4NjgsMHgwMiwweDVlLDB4OTAsMHhjMywweDgwIH19LAotIHsxNiwgMHhhNzMwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHhmOCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YTEsMHgyMCwweGExLDB4MGQsMHg3OCwweDAzLDB4ZDYsMHgwMCB9fSwKLSB7MTYsIDB4YTc0MCwgMCwgezB4ZjcsMHg4MCwweDM5LDB4ZjgsMHgwZiwweDc4LDB4MDMsMHgwYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3NTAsIDAsIHsweDQ4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHg0MCwweDdmLDB4NDEsMHgwZiwweDEwLDB4MDMsMHhlYywweDA0LDB4ZmEsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNzYwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwMywweGVkLDB4MDAsMHhlOSwweDAwLDB4MmEsMHgwMCwweDBmLDB4YjAsMHgwMywweDY0LDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTc3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGQzLDB4MDAsMHgzNiwweGMwLDB4MGYsMHgzOCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGE3ODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHg0OCwweGNmLDB4YzAsMHgzMywweDYwIH19LAotIHsxNiwgMHhhNzkwLCAwLCB7MHg4YywweGM4LDB4NDMsMHhkNiwweDAwLDB4Y2MsMHg5NCwweDNmLDB4YjAsMHgwZCwweGY4LDB4MDMsMHg3ZiwweDAwLDB4ZGYsMHg4MCB9fSwKLSB7MTYsIDB4YTdhMCwgMCwgezB4M2YsMHg2MCwweDBmLDB4ZDgsMHgwMywweGRlLDB4MDAsMHhjZiwweGNhLDB4M2QsMHg2MCwweDBjLDB4ZjgsMHgxMywweDNhLDB4NDQgfX0sCi0gezE2LCAweGE3YjAsIDAsIHsweGRkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDQzLDB4MTgsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhN2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDhmLDB4MTEsMHgzMywweGMwLDB4NDgsMHg0MSwweDEyLDB4YzQsMHg0OCwweDg0LDB4MTEsMHgyYyB9fSwKLSB7MTYsIDB4YTdkMCwgMCwgezB4ZWMsMHgyYSwweGJhLDB4MDMsMHgzYywweDQwLDB4ZDcsMHg0OCwweDJkLDB4NDEsMHgwYiwweDYwLDB4MDIsMHhkNCwweDAwLDB4ZDcgfX0sCi0gezE2LCAweGE3ZTAsIDAsIHsweDAxLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgwMywweDVhLDB4MDAsMHg4NCwweDE4LDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMywweDZhIH19LAotIHsxNiwgMHhhN2YwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDhjLDB4MDgsMHg4NywweDAwLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4YTgwMCwgMCwgezB4MDksMHg0MCwweDAyLDB4ZDQsMHgwMCwweGE0LDB4OTIsMHgyZCwweGM4LDB4MDksMHg2MiwweDgyLDB4NWMsMHgwMCwweDg3LDB4MDAgfX0sCi0gezE2LCAweGE4MTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhmYywweDAwLDB4ODcsMHgwMCwweDJkLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDgwIH19LAotIHsxNiwgMHhhODIwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTgzMCwgMCwgezB4NjAsMHgxMCwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg0MCwweDA5LDB4MDAsMHgyMiwweGM3LDB4MDAsMHhhMCwweDQxLDB4MmMgfX0sCi0gezE2LCAweGE4NDAsIDAsIHsweGMxLDB4NGIsMHgwOCwweDAyLDB4MmMsMHgwMCwweDkzLDB4NDAsMHgyYywweDdjLDB4MGIsMHgzOCwweDAyLDB4YzcsMHgyMCwweDkzIH19LAotIHsxNiwgMHhhODUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg0ZiwweDg0LDB4YjAsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMyLDB4MTAsMHg1MCB9fSwKLSB7MTYsIDB4YTg2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhiYywweDAyLDB4Y2YsMHgwMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGE4NzAsIDAsIHsweDBkLDB4MTAsMHgwMywweGU4LDB4MjQsMHhlYiwweGMxLDB4M2UsMHhjMCwweDJkLDB4OTgsMHgxMywweDdjLDB4MGEsMHhjMiwweDQzIH19LAotIHsxNiwgMHhhODgwLCAwLCB7MHgzZSwweGIwLDB4MGYsMHhhOSwweDAzLDB4ZTksMHgyMCwweGNmLDB4MDAsMHgzZSwweGMwLDB4OGMsMHhmMCwweDAzLDB4MGQsMHgyMCB9fSwKLSB7MTYsIDB4YTg5MCwgMCwgezB4ZmEsMHhjMCwweDNmLDB4YzAsMHgwZiwweDc0LDB4MDEsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4YTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNhLDB4NDAsMHg4ZSwweDkwLDB4MDMsMHhlOCwweDE0LDB4NWIsMHg1MCwweDNjIH19LAotIHsxNiwgMHhhOGIwLCAwLCB7MHg1MCwweDRlLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmOCwweDQwLDB4M2UsMHg4MCwweDA3LDB4ODEsMHgwMywweGVjLDB4MDgsMHhmMyB9fSwKLSB7MTYsIDB4YThjMCwgMCwgezB4MDAsMHgzYSwweGMwLDB4OWYsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTggfX0sCi0gezE2LCAweGE4ZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDkwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQwIH19LAotIHsxNiwgMHhhOGUwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHgzOCwweDIwLDB4Y2YsMHgwOCwweDMyLDB4YzEsMHgwZSwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwOCB9fSwKLSB7MTYsIDB4YThmMCwgMCwgezB4MzEsMHhlNSwweDBlLDB4ZTQsMHgwMywweDNhLDB4MDAsMHhmZiwweDAwLDB4MzMsMHg4MCwweDBmLDB4ZjAsMHgyYiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGE5MDAsIDAsIHsweGNjLDB4YTAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOTEwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHgzYSwweDY5LDB4MGIsMHg5MCwweDZlLDB4MDgsMHgwMCwweDgzLDB4NDEsMHgzNiB9fSwKLSB7MTYsIDB4YTkyMCwgMCwgezB4NDAsMHhjOCwweDg4LDB4YzYsMHhlYywweDAwLDB4ODgsMHg0MCwweDM2LDB4ODAsMHgwZCwweGE4LDB4MDMsMHg2ZSwweDUwLDB4YmIgfX0sCi0gezE2LCAweGE5MzAsIDAsIHsweDAwLDB4MzYsMHhjMCwweDBiLDB4YjAsMHgwMiwweDI0LDB4MDAsMHhkOSwweDA4LDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMywweGUwIH19LAotIHsxNiwgMHhhOTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHg2MCB9fSwKLSB7MTYsIDB4YTk1MCwgMCwgezB4MDMsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg5LDB4MDEsMHgyMiwweDU4LDB4MDgsMHg5OCwweDIyLDB4ZWMsMHgwMSwweGFiLDB4MDAgfX0sCi0gezE2LCAweGE5NjAsIDAsIHsweDIyLDB4MDAsMHgwYSwweDEwLDB4MDIsMHgyOCwweDAwLDB4YmIsMHgwMCwweDIyLDB4NDAsMHgwYiwweGIwLDB4MDIsMHgyOCwweDAwIH19LAotIHsxNiwgMHhhOTcwLCAwLCB7MHg4YSwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDIwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTk4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjgsMHg0MCwweDhiLDB4MDAsMHgwMiwweDAyLDB4NDAsMHg4OSwweDAxLDB4MjQgfX0sCi0gezE2LCAweGE5OTAsIDAsIHsweGQyLDB4MjgsMHgxMCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MTAsMHgyNCwweDIwLDB4MDgsMHgwOCwweDAyLDB4NGUsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhOWEwLCAwLCB7MHgwNCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwOCwweDg4LDB4OTIsMHgwMCwweDJjLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGE5YzAsIDAsIHsweDBmLDB4ODAsMHgwMiwweDIwLDB4MTAsMHg4OSwweDUwLDB4MjIsMHhkOCwweDJlLDB4OTYsMHgyMiwweGZjLDB4MDAsMHhlYiwweDQwIH19LAotIHsxNiwgMHhhOWQwLCAwLCB7MHgzMiwweGMwLDB4MGEsMHg5MCwweDAzLDB4MjgsMHgwMCwweGZmLDB4MDAsMHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4YTllMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDA2LDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5ZjAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmYsMHgwYywweDNiLDB4MDAsMHgwZiwweGMwLDB4MDIsMHg3MCwweDkwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhYTAwLCAwLCB7MHhjOSwweDBmLDB4OTYsMHhjMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4YWExMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGFhMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZGMsMHg4MCwweGZiLDB4MjgsMHgzZiwweDAwIH19LAotIHsxNiwgMHhhYTMwLCAwLCB7MHgwYywweGMxLDB4MGIsMHhmMSwweDAyLDB4ZWQsMHgwMCwweDM3LDB4MzAsMHgyYywweGYxLDB4MDMsMHhiMiwweDQwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4YWE0MCwgMCwgezB4YmIsMHhjMCwweDBmLDB4NDgsMHgwNiwweGIyLDB4MDAsMHhmYywweDgwLDB4M2IsMHhjYywweDBjLDB4ZjAsMHgwMywweDcwLDB4ODAgfX0sCi0gezE2LCAweGFhNTAsIDAsIHsweGRmLDB4MjgsMHgzMywweDA0LDB4MGYsMHhmNCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYTYwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHg0MCwweGJmLDB4NjAsMHgyZSwweDIxLDB4MDgsMHg4MiwweDAyLDB4MjAsMHgwMCwweGE5LDB4MjgsMHgyYSB9fSwKLSB7MTYsIDB4YWE3MCwgMCwgezB4MDAsMHgwOSwweGZhLDB4MDIsMHgyMCwweDAwLDB4YmYsMHg1MSwweDIzLDB4ZDgsMHgwOSwweDk4LDB4MDIsMHhlNCwweDMwLDB4YjAgfX0sCi0gezE2LCAweGFhODAsIDAsIHsweDAwLDB4MjMsMHhkMCwweDA4LDB4ZjUsMHhhMiwweDI1LDB4YTQsMHg4ZiwweDQyLDB4M2MsMHgxMCwweDBiLDB4YjAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhhYTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDA4LDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4YWFhMCwgMCwgezB4MjgsMHgwMCwweDFhLDB4YzAsMHg4NCwweDIwLDB4MDAsMHgyNCwweGM4LDB4NGIsMHgzMSwweDQyLDB4YzAsMHgwMCwweDkzLDB4MDIgfX0sCi0gezE2LCAweGFhYjAsIDAsIHsweDIwLDB4YzYsMHgwOCwweDAwLDB4MDYsMHhjMCwweDgxLDB4YjMsMHgwMCwweDJjLDB4ZDgsMHgwOSwweDMyLDB4MDIsMHhhMCwweDQwIH19LAotIHsxNiwgMHhhYWMwLCAwLCB7MHg5MywweDAxLDB4MjQsMHg0YywweDBiLDB4MzIsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWFkMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiYiwweDAyLDB4MmUsMHgwYSwweDA4LDB4ODAsMHg4MiwweDYwLDB4MDAsMHhhOCwweDAwLDB4MmUgfX0sCi0gezE2LCAweGFhZTAsIDAsIHsweGUwLDB4MWIsMHhiMCwweDAyLDB4NjIsMHgwMSwweDNiLDB4MDAsMHgyMiwweGMxLDB4MDksMHg5MCwweDAyLDB4ZTIsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhYWYwLCAwLCB7MHg2MCwweDI2LDB4YzEsMHgwOCwweGIwLDB4MmEsMHgyNiwweDAwLDB4OWIsMHgwNCwweDJlLDB4MjEsMHgwYiwweGIwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4YWIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4MTAgfX0sCi0gezE2LCAweGFiMTAsIDAsIHsweDA4LDB4ODQsMHgxMywweGVjLDB4MDIsMHhhOSwweDA0LDB4MzYsMHgyMCwweDBmLDB4YjAsMHgwMywweGVlLDB4ODAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhhYjIwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhhMCwweDAzLDB4YTIsMHg4MCwweDc5LDB4NDAsMHgxZSwweGMwLDB4OGMsMHhiMCwweDYzLDB4NmEsMHgxMCB9fSwKLSB7MTYsIDB4YWIzMCwgMCwgezB4ZDMsMHgwMCwweDM2LDB4YTIsMHgwNywweGIwLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MjAsMHg0ZCwweDQxLDB4MDMsMHg5YywweDAwLDB4ZmQsMHgyMCwweGFiIH19LAotIHsxNiwgMHhhYjUwLCAwLCB7MHgwMCwweDBjLDB4ZjAsMHgwMywweGI4LDB4MDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDRkLDB4YzksMHgwMywweGY0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YWI2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MmUsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGVmLDB4MDAsMHgzZiwweDAwLDB4NGIsMHg3MCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGFiNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHg4MCwweGViLDB4MDAsMHg3ZSwweDEwIH19LAotIHsxNiwgMHhhYjgwLCAwLCB7MHgyZSwweDg0LDB4MDMsMHhlYywweDAwLDB4ZTAsMHgwMCwweDMyLDB4NTAsMHgwZiwweGIwLDB4ODYsMHgyNSwweDAwLDB4ZGIsMHgyMCB9fSwKLSB7MTYsIDB4YWI5MCwgMCwgezB4M2EsMHhjMCwweDBkLDB4YjAsMHg2MywweGUxLDB4MTAsMHhmYiwweDQ4LDB4MzgsMHhjMSwweDBmLDB4MzAsMHgwMywweDJjLDB4MDQgfX0sCi0gezE2LCAweGFiYTAsIDAsIHsweGZiLDB4MDgsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYmIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHg2NCwweDI5LDB4MjgsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGU4LDB4MDQsMHhhOCB9fSwKLSB7MTYsIDB4YWJjMCwgMCwgezB4NTYsMHgwOCwweGZjLDB4MDcsMHhlMCwweDAwLDB4MGYsMHhhMCwweGJmLDB4YzAsMHgwYiwweDk1LDB4MDIsMHhhMCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGFiZDAsIDAsIHsweDA1LDB4MzcsMHhjMCwweDg5LDB4ZjAsMHgwYSwweDBkLDB4YzgsMHhiZiwweDA4LDB4MmEsMHg4MCwweDA4LDB4ZjAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhhYmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDEsMHhiMywweDAyLDB4MjQsMHhlMCB9fSwKLSB7MTYsIDB4YWJmMCwgMCwgezB4MGEsMHgzMCwweDEyLDB4ODAsMHgwMywweGEzLDB4MDAsMHhhOCwweDAwLDB4MDIsMHhiOCwweDIyLDB4YzAsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGFjMDAsIDAsIHsweDI4LDB4YzEsMHgwYiwweDA0LDB4MDIsMHgwOCwweDAwLDB4YjksMHg0MCwweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwMywweDA0IH19LAotIHsxNiwgMHhhYzEwLCAwLCB7MHhiMywweDQ0LDB4MjAsMHgwMCwweDRhLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWMyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MjAsMHgxNywweGEwLDB4NjUsMHhlYywweDA4LDB4MzgsMHgwMiwweGMyLDB4NDEsMHhiMywweDkyLDB4MmIgfX0sCi0gezE2LCAweGFjMzAsIDAsIHsweDY0LDB4MGEsMHgzOCwweDAyLDB4MzYsMHgwMSwweGI3LDB4OTAsMHgyZCwweGUwLDB4MDMsMHhmOCwweDAwLDB4OWEsMHgwMCwweGI1IH19LAotIHsxNiwgMHhhYzQwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4OSwweDc4LDB4MTIsMHgxZSwweDAwLDB4YjcsMHg4MCwweDI5LDB4ZTAsMHgwYSwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YWM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4NzMsMHhiMCwweDI0LDB4YzggfX0sCi0gezE2LCAweGFjNjAsIDAsIHsweDRlLDB4MzAsMHgwYSwweDgwLDB4MDIsMHhlMiwweDAwLDB4MzgsMHg5NCwweDBlLDB4MzEsMHhhMiwweGM4LDB4MDAsMHg3MywweDAwIH19LAotIHsxNiwgMHhhYzcwLCAwLCB7MHgxOCwweGM0LDB4MDUsMHgwMCwweDAzLDB4MDAsMHgwMCwweGYzLDB4MDAsMHgzOCwweGMwLDB4MDcsMHhiMSwweDAzLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWM4MCwgMCwgezB4ZjMsMHgwMSwweDMwLDB4NDEsMHgwZSwweGIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFjOTAsIDAsIHsweDQwLDB4MWQsMHhiZCwweDAwLDB4ZWYsMHgxMCwweDI2LDB4YzgsMHgwMywweGIxLDB4MDMsMHhlMCwweDAwLDB4ZWEsMHg4MSwweDc4IH19LAotIHsxNiwgMHhhY2EwLCAwLCB7MHhjNSwweDBjLDB4YjUsMHhlMywweGRjLDB4MDAsMHhjMywweDAwLDB4M2UsMHhjMSwweDBmLDB4ZjAsMHg4MywweGIwLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YWNiMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGQsMHhmNCwweDAzLDB4ZTQsMHgwMCwweGY3LDB4MDAsMHgzZiwweDQwLDB4MGQsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGFjYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHgxMCwweGNiLDB4MjgsMHgzZSwweGMwIH19LAotIHsxNiwgMHhhY2QwLCAwLCB7MHgwZCwweGIwLDB4MTMsMHhhYywweDEwLDB4ZmIsMHgwMCwweDNhLDB4ODAsMHgwNCwweGI0LDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwNCB9fSwKLSB7MTYsIDB4YWNlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YTQsMHhiMywweGUwLDB4MDAsMHhmYiwweDgwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAgfX0sCi0gezE2LCAweGFjZjAsIDAsIHsweGZiLDB4NDgsMHhiMiwweDgwLDB4MGYsMHhiMCwweDQzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZDAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMiwweDg3LDB4NDQsMHgzOCwweGMwLDB4OGQsMHgzMCwweDAyLDB4NGMsMHgwMCwweGZmLDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YWQxMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjMsMHg1MCwweDIxLDB4ZDQsMHg0ZSwweDYyLDB4MDIsMHhkMCwweDAwLDB4YmYgfX0sCi0gezE2LCAweGFkMjAsIDAsIHsweDAwLDB4MzUsMHhkNCwweDA5LDB4NzAsMHgyMiwweGQ4LDB4MDAsMHhiZiwweDIyLDB4MjEsMHhjMCwweDBiLDB4NzIsMHgwMiwweGQyIH19LAotIHsxNiwgMHhhZDMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHg4NywweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4YWQ0MCwgMCwgezB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI2LDB4ODAsMHgyOSwweGExLDB4MjgsMHg3YSwweDMyLDB4ZGUsMHgwMCwweDM3LDB4YTAgfX0sCi0gezE2LCAweGFkNTAsIDAsIHsweDI1LDB4ZTAsMHgwOSwweDc4LDB4MDYsMHhkMiwweDAwLDB4YjcsMHg4MCwweDIxLDB4ZTgsMHgwYiwweDc5LDB4MDIsMHhkZSwweDAwIH19LAotIHsxNiwgMHhhZDYwLCAwLCB7MHhiNywweDkwLDB4MjEsMHhlMCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWQ3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDQsMHg4MywweDAxLDB4MjgsMHhjMCwweDg5LDB4YjAsMHgwYSwweDRmLDB4MDAsMHhiMiwweDAwLDB4MjAgfX0sCi0gezE2LCAweGFkODAsIDAsIHsweGM0LDB4ODgsMHgzMCwweDE2LDB4Y2YsMHgwMCwweGJiLDB4MDQsMHgyMCwweGMxLDB4MGEsMHgzMiwweDA2LDB4YzIsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhZDkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4NDIsMHhlZiwweDEwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4YWRhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4NGEsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGFkYjAsIDAsIHsweDJkLDB4YTAsMHgwYiwweGFhLDB4ODAsMHhmZSwweDAwLDB4MmIsMHg4MCwweDBjLDB4YTAsMHg0MywweGZiLDB4MzAsMHhmYSwweDAwIH19LAotIHsxNiwgMHhhZGMwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDgzLDB4ZmEsMHgwNCwweGZlLDB4MTgsMHgyMiwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZmEsMHg4NCB9fSwKLSB7MTYsIDB4YWRkMCwgMCwgezB4ZjIsMHgwMCwweDMzLDB4YTIsMHgwZiwweGEwLDB4MDMsMHhmMiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgyZiwweDgwLDB4MDMsMHhhMCwweDIwLDB4ZmMsMHgwMiwweDNlIH19LAotIHsxNiwgMHhhZGYwLCAwLCB7MHgwMCwweDFmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMSwweGUwLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4YWUwMCwgMCwgezB4NDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGFlMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzYsMHgwMCwweGQ5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhhZTIwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHgwNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NjgsMHg2YywweDk0LDB4MDMsMHhlNCwweDIwLDB4YjksMHg5MCB9fSwKLSB7MTYsIDB4YWUzMCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTQsMHgwMywweGU0LDB4MDAsMHgyOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MjAgfX0sCi0gezE2LCAweGFlNDAsIDAsIHsweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZTUwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHg1MCwweDg5LDB4MDAsMHgyMCwweDUwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOSwweGQ5LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YWU2MCwgMCwgezB4NDgsMHg0OCwweDkwLDB4MDYsMHhlNCwweDA0LDB4OTksMHhhMCwweDIyLDB4NDAsMHgwZCwweGI4LDB4MjIsMHg2NCwweDAwLDB4MDkgfX0sCi0gezE2LCAweGFlNzAsIDAsIHsweDUwLDB4MzIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI3LDB4OTAsMHg4OSwweDQwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhhZTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHg5OSwweDAwLDB4NjYsMHg0MiB9fSwKLSB7MTYsIDB4YWU5MCwgMCwgezB4MGEsMHhkMCwweDEyLDB4MzQsMHgwMCwweDg1LDB4MDAsMHgyNiwweDQwLDB4NGEsMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDEgfX0sCi0gezE2LCAweGFlYTAsIDAsIHsweDI0LDB4NDAsMHg1OCwweDkwLDB4MTIsMHhjNCwweDAwLDB4MjksMHg0MCwweDJlLDB4NDAsMHgwYiwweDEwLDB4MGEsMHgyNCwweDgwIH19LAotIHsxNiwgMHhhZWIwLCAwLCB7MHg4OSwweDA1LDB4MjYsMHg0MSwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWVjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4NjEsMHg0OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODEsMHg5NSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGFlZDAsIDAsIHsweDQwLDB4MGEsMHgzNiwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgwMCwweDQ4LDB4NDEsMHgxMCwweDQyLDB4NDQsMHgwMSwweGExIH19LAotIHsxNiwgMHhhZWUwLCAwLCB7MHgwMCwweDI0LDB4NDgsMHgwYiwweDEyLDB4MTIsMHgwNCwweDgwLDB4ODEsMHgyMCwweDI4LDB4NDgsMHgwYiwweDEyLDB4MDIsMHhjYSB9fSwKLSB7MTYsIDB4YWVmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZDgsMHg1MCwweDM2LDB4MDAgfX0sCi0gezE2LCAweGFmMDAsIDAsIHsweDBlLDB4ODUsMHgyMywweDIxLDB4NDIsMHg4YywweDU0LDB4MzQsMHgxNCwweDBlLDB4ODAsMHgwMiwweGUxLDB4NDAsMHhmOCwweDUwIH19LAotIHsxNiwgMHhhZjEwLCAwLCB7MHgzNiwweDE0LDB4MDQsMHg4MCwweDAzLDB4ZTEsMHg0NCwweGU4LDB4NTAsMHg3ZSwweDE1LDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0MiB9fSwKLSB7MTYsIDB4YWYyMCwgMCwgezB4NGEsMHgwMCwweDM2LDB4MTQsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmMzAsIDAsIHsweDk4LDB4MWQsMHhjNCwweDQwLDB4ZjksMHgxMCwweDFlLDB4NDQsMHg0ZSwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmIH19LAotIHsxNiwgMHhhZjQwLCAwLCB7MHhjMCwweDBkLDB4OTEsMHgwMywweGY0LDB4MDAsMHhkOSwweDE0LDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweDc0LDB4MDAsMHhkZCB9fSwKLSB7MTYsIDB4YWY1MCwgMCwgezB4MDAsMHg3YSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MzgsMHgzZiwweDQ0LDB4MGYsMHg5MywweDgzLDB4ZTcgfX0sCi0gezE2LCAweGFmNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZjYsMHg4MCwweGY5LDB4YTQsMHgzZiwweDY4IH19LAotIHsxNiwgMHhhZjcwLCAwLCB7MHgwZSwweDllLDB4NDMsMHg2NywweDgwLDB4ZDksMHhlNCwweDNmLDB4NDEsMHgwZiwweGQ4LDB4NDMsMHgwNCwweDAwLDB4ZWQsMHhjMCB9fSwKLSB7MTYsIDB4YWY4MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkNSwweDQwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGY0LDB4MDAgfX0sCi0gezE2LCAweGFmOTAsIDAsIHsweGRkLDB4MDAsMHgzMiwweDQwLDB4MmMsMHg5YSwweDAzLDB4YzYsMHgwMSwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZmEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGU4LDB4YzAsMHgyZSwweDE0LDB4NGQsMHg4ZiwweDIyLDB4MjMsMHhjMCwweGY4LDB4ZjAsMHhhYSB9fSwKLSB7MTYsIDB4YWZiMCwgMCwgezB4MDAsMHgwYywweDgwLDB4MDMsMHhhMiwweGEwLDB4ZDgsMHg4MiwweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlOCwweDAwLDB4ZDggfX0sCi0gezE2LCAweGFmYzAsIDAsIHsweDgwLDB4MmEsMHgwMCwweDA4LDB4ODAsMHgwMiwweGU4LDB4MDgsMHg4OCwweGE4LDB4MzYsMHgwMCwweDQ4LDB4OGEsMHg4MiwweGNlIH19LAotIHsxNiwgMHhhZmQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDQ4LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YWZlMCwgMCwgezB4MGEsMHgxMiwweDIyLDB4NDQsMHgwMCwweDkxLDB4MDQsMHhhNCwweDQxLDB4MGEsMHg5NCwweDA2LDB4MjQsMHgwMCwweDkxLDB4NDIgfX0sCi0gezE2LCAweGFmZjAsIDAsIHsweDI0LDB4NDEsMHgwOSwweDEwLDB4MDIsMHhlNCwweDAxLDB4OTEsMHgyMCwweDI0LDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDAxIH19LAotIHsxNiwgMHhiMDAwLCAwLCB7MHg5MSwweDAwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHgwMiwweGMyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjAxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDQ4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YWEgfX0sCi0gezE2LCAweGIwMjAsIDAsIHsweDQwLDB4MTgsMHhiMCwweDAyLDB4ZTQsMHgwOCwweDk5LDB4MDAsMHgyMiwweDQwLDB4MTksMHg5MCwweDQ2LDB4ZTQsMHg4MCwweDk5IH19LAotIHsxNiwgMHhiMDMwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4OTksMHgwNCwweDI2LDB4NTAsMHgwOSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YjA0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHgwNiwweDNjLDB4NDAgfX0sCi0gezE2LCAweGIwNTAsIDAsIHsweDBhLDB4OTAsMHgwMywweDY0LDB4MDIsMHhkOSwweDAwLDB4YjYsMHg1MCwweDBlLDB4OTAsMHgyMywweDI2LDB4MDEsMHhmOSwweDAwIH19LAotIHsxNiwgMHhiMDYwLCAwLCB7MHgzNiwweDQwLDB4MjksMHg5NCwweDgzLDB4ZTQsMHgwMCwweGQ5LDB4NDgsMHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4YzcsMHgwMCB9fSwKLSB7MTYsIDB4YjA3MCwgMCwgezB4ZDEsMHgwNywweDNhLDB4NTAsMHhjZCwweDkwLDB4MDMsMHhlOCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIwODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDA4LDB4ZTksMHgwMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhjNCwweDA4LDB4ZjEsMHgwMCwweDNhIH19LAotIHsxNiwgMHhiMDkwLCAwLCB7MHg2OCwweDhmLDB4OTAsMHgwMywweGE0LDB4NDEsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjBhMCwgMCwgezB4YzAsMHgzOCwweDQwLDB4MmUsMHg5MCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDY4LDB4MDYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGIwYjAsIDAsIHsweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDUsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiMGMwLCAwLCB7MHgwNywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MTAsMHgwZCwweDgyLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YjBkMCwgMCwgezB4YjIsMHgwMCwweDhkLDB4ODMsMHgwMywweGUwLDB4MDAsMHhkOCwweDUwLDB4M2EsMHgwMCwweDFlLDB4ODAsMHgwMywweGUxLDB4MjQgfX0sCi0gezE2LCAweGIwZTAsIDAsIHsweGY4LDB4MDAsMHhiMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMGYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyZiwweDg0LDB4NmEsMHhhMCwweDBiLDB4ZTgsMHgwOCwweDhlLDB4MDAsMHgzZCB9fSwKLSB7MTYsIDB4YjEwMCwgMCwgezB4ODAsMHg4OCwweGVjLDB4MDMsMHg2OCwweDEwLDB4YTYsMHgwMSwweDM2LDB4ODAsMHgwOCwweGE4LDB4MDAsMHhjOCwweDEwLDB4OGUgfX0sCi0gezE2LCAweGIxMTAsIDAsIHsweDEwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweGZiLDB4MjAsMHhiZSwweDUxLDB4MmEsMHg4MCwweDBiLDB4YTAsMHgwMiwweDgyIH19LAotIHsxNiwgMHhiMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQxLDB4MjEsMHg5MywweDAwLDB4MmMsMHhmMCB9fSwKLSB7MTYsIDB4YjEzMCwgMCwgezB4MzksMHgzMCwweDA2LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyOCwweDA4LDB4MjgsMHhiYywweDAyLDB4MmMsMHgwMCwweDgzLDB4ODAgfX0sCi0gezE2LCAweGIxNDAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDMwLDB4MDAsMHhjYywweDAwLDB4OWEsMHg4MCwweDI4LDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjZCwweDAwIH19LAotIHsxNiwgMHhiMTUwLCAwLCB7MHhiMywweDA0LDB4NjIsMHhjMSwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjE2MCwgMCwgezB4YTAsMHgwMSwweDFlLDB4MDQsMHgwNywweDExLDB4MmMsMHhkMCwweDBhLDB4MzIsMHgyMiwweGRjLDB4YzEsMHg4NywweDAwLDB4NmQgfX0sCi0gezE2LCAweGIxNzAsIDAsIHsweGQwLDB4MDgsMHgzNCwweDAyLDB4N2MsMHgwMCwweGE3LDB4MDgsMHgyNCwweGM4LDB4MDgsMHg3MCwweDAyLDB4ZGMsMHg4MCwweDBmIH19LAotIHsxNiwgMHhiMTgwLCAwLCB7MHgwMCwweDIxLDB4YzQsMHgwOCwweDczLDB4MDYsMHhkYywweDAwLDB4YjIsMHgwMCwweDYxLDB4YzgsMHgwYiwweDNhLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4YjE5MCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwYSwweDAwLDB4NTcsMHg4MSwweDJkLDB4YTAgfX0sCi0gezE2LCAweGIxYTAsIDAsIHsweDJkLDB4N2MsMHgwMiwweDNlLDB4ODIsMHhlMywweGUwLDB4M2IsMHhlMCwweDBjLDB4NzgsMHgwMywweDFlLDB4MjAsMHhjNywweDgwIH19LAotIHsxNiwgMHhiMWIwLCAwLCB7MHhiOSwweGU4LDB4MmMsMHg3OCwweDAzLDB4ZmYsMHg4MCwweGQ2LDB4ODAsMHgzYiwweGVjLDB4MDIsMHg3YSwweDAzLDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4YjFjMCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4ZWMsMHg4ZiwweDdjLDB4MDMsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwMCwweDFlLDB4ODAsMHgyMywweGI2LDB4ODMsMHhlZCwweGEwLDB4ZGIsMHg2NCwweDNlIH19LAotIHsxNiwgMHhiMWUwLCAwLCB7MHhjMCwweDBlLDB4YjAsMHgwMywweGVkLDB4YzAsMHhmMiwweDAwLDB4M2UsMHhkNCwweDBhLDB4YjAsMHgwMywweGVjLDB4MzAsMHhlZSB9fSwKLSB7MTYsIDB4YjFmMCwgMCwgezB4NjQsMHgzZSwweGMwLDB4MDcsMHhiMCwweGMzLDB4ZTgsMHgwMCwweGZiLDB4MDEsMHgzZSwweGM4LDB4MGYsMHhiOCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGIyMDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGVmLDB4ODAsMHgzYiwweGUwIH19LAotIHsxNiwgMHhiMjEwLCAwLCB7MHgwZiwweGY4LDB4NjMsMHg3ZSwweDA0LDB4Y2YsMHhjMCwweGI3LDB4MjAsMHgwZSwweGY4LDB4MDMsMHhmYywweDAwLDB4YzcsMHg4MCB9fSwKLSB7MTYsIDB4YjIyMCwgMCwgezB4MzMsMHhmMCwweDBjLDB4Y2MsMHgwMywweGZlLDB4MDgsMHhmNywweGMxLDB4MzMsMHhlMCwweDRmLDB4ZjgsMHgwMywweGIyLDB4NDAgfX0sCi0gezE2LCAweGIyMzAsIDAsIHsweGZmLDB4YTAsMHgzMSwweGU2LDB4MGMsMHhmOCwweDAzLDB4MTAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMjQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGVmLDB4MDIsMHgyMSwweDQwLDB4MmQsMHg3MCwweDAyLDB4MWMsMHgwMCwweGY3LDB4MTAsMHgyOSB9fSwKLSB7MTYsIDB4YjI1MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MjIsMHhmYywweGMwLDB4YTcsMHgwMCwweDNkLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfX0sCi0gezE2LCAweGIyNjAsIDAsIHsweDQwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRhLDB4ODAsMHhiNywweDI0LDB4MjksMHhjNiwweDQ4LDB4ZjAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhiMjcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDAwLDB4MjgsMHg4NCB9fSwKLSB7MTYsIDB4YjI4MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyNSwweDgwLDB4MGEsMHg2MSwweDAyLDB4ZGMsMHgwMSwweGE3LDB4MTAgfX0sCi0gezE2LCAweGIyOTAsIDAsIHsweDI0LDB4YzAsMHgwOCwweDQwLDB4ODIsMHhkYywweDAwLDB4OWYsMHgwMCwweDI1LDB4YzQsMHgwYiwweDcwLDB4MDIsMHg5NCwweDI1IH19LAotIHsxNiwgMHhiMmEwLCAwLCB7MHhiNywweDMyLDB4MjMsMHhjNCwweDFiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjJiMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MGMsMHhhMywweDAwLDB4MjAsMHgwMCwweDI5LDB4MzAsMHgwYSwweDBjLDB4MDAsMHhhMywweDAwLDB4NmMgfX0sCi0gezE2LCAweGIyYzAsIDAsIHsweDAwLDB4MDgsMHgxMCwweDQyLDB4Y2QsMHgxMCwweGFhLDB4MDAsMHhhYywweGMwLDB4MDAsMHgwNCwweDAyLDB4Y2QsMHgwMCwweGJiIH19LAotIHsxNiwgMHhiMmQwLCAwLCB7MHgxMCwweDI0LDB4YzAsMHgwMywweDMwLDB4NDIsMHhjMywweDA5LDB4YjMsMHgwMCwweDJjLDB4ZDAsMHgwYSwweDMwLDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4YjJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MCwweDAwLDB4ZWYsMHgwMCwweDNhLDB4NDAgfX0sCi0gezE2LCAweGIyZjAsIDAsIHsweDA3LDB4ZjAsMHg0MywweDNjLDB4MDAsMHg5ZiwweGMwLDB4YjYsMHgxNCwweDBlLDB4ODAsMHgwNiwweGZjLDB4MDEsMHhjYiwweDAxIH19LAotIHsxNiwgMHhiMzAwLCAwLCB7MHgzNywweGMwLDB4YWMsMHhiNCwweDAyLDB4ZmMsMHgwMCwweGQ5LDB4MDEsMHgzNywweGMwLDB4NGIsMHhmMCwweDEzLDB4YWUsMHgwOCB9fSwKLSB7MTYsIDB4YjMxMCwgMCwgezB4ZmIsMHgwMCwweDMzLDB4ZDAsMHgyZSwweGYwLDB4MGIsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzMjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwNSwweDNlLDB4NDAsMHgwZiwweDMwLDB4MDMsMHhhYywweDE0LDB4ZmIsMHhhMCwweDNhIH19LAotIHsxNiwgMHhiMzMwLCAwLCB7MHhjMCwweDBmLDB4ODQsMHg0MywweGVjLDB4MDEsMHhmOSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YTIsMHgwMywweGVjLDB4MjEsMHhmOSB9fSwKLSB7MTYsIDB4YjM0MCwgMCwgezB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgyMCwweGYwLDB4MDAsMHhiYSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGIzNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjgsMHgwMCwweGQ3LDB4MDEsMHgzNSwweDY4IH19LAotIHsxNiwgMHhiMzYwLCAwLCB7MHg2ZCwweGYwLDB4MDMsMHgzYywweDAxLDB4ZTcsMHgwMCwweDMzLDB4YzAsMHgwZCwweGMwLDB4MDMsMHhmYywweDI0LDB4Y2YsMHgwMiB9fSwKLSB7MTYsIDB4YjM3MCwgMCwgezB4MzcsMHhjMCwweDBkLDB4ZDIsMHgwMiwweGZjLDB4MDAsMHhkZiwweDAxLDB4MzMsMHhjMCwweDVlLDB4NzAsMHgzMywweDFjLDB4MTggfX0sCi0gezE2LCAweGIzODAsIDAsIHsweGNmLDB4NDEsMHgzMSwweGMyLDB4MGMsMHhmMCwweDAzLDB4NDAsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMzkwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDUyLDB4MmEsMHhiMCwweDAzLDB4NmMsMHgwMCwweGFiLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4YjNhMCwgMCwgezB4YzAsMHgwYSwweDhjLDB4MDIsMHhlYywweDEwLDB4OGIsMHhlMCwweDIyLDB4YzAsMHgwZiwweDgwLDB4MDIsMHhjYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGIzYjAsIDAsIHsweDgwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJhLDB4MTAsMHhkOSwweDgwLDB4MjIsMHhjMCwweGM4LDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiM2MwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI0LDB4MDEsMHg5YiwweDAwLDB4MjYsMHg4MCB9fSwKLSB7MTYsIDB4YjNkMCwgMCwgezB4MjksMHhiMCwweDYyLDB4MGMsMHgwMCwweGFiLDB4MDEsMHg2YSwweDAwLDB4MDgsMHg5OCwweDAyLDB4Y2MsMHgwMCwweDliLDB4ODMgfX0sCi0gezE2LCAweGIzZTAsIDAsIHsweDJlLDB4YzAsMHhjYiwweGI0LDB4MTIsMHhlYywweDAzLDB4OGIsMHg4MCwweDI4LDB4YzAsMHgwYSwweGIwLDB4MDYsMHhhMiwweDAwIH19LAotIHsxNiwgMHhiM2YwLCAwLCB7MHg4YiwweDAyLDB4NjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjQwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHg4MywweDE0LDB4MjAsMHgwMCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmEgfX0sCi0gezE2LCAweGI0MTAsIDAsIHsweDQwLDB4MGEsMHgxMCwweDAwLDB4Y2MsMHgwMiwweDkzLDB4MDAsMHgyOCwweGMwLDB4MGEsMHgyMCwweDAyLDB4ZWMsMHgwMCwweDAzIH19LAotIHsxNiwgMHhiNDIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MTYsMHgwMCwweDgwLDB4OTEsMHgwMCwweDYwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YjQzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAgfX0sCi0gezE2LCAweGI0NDAsIDAsIHsweDJkLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhhZiwweDAwLDB4M2EsMHg4MCwweDBkLDB4ODAsMHgwMywweGZjLDB4MDAsMHg1YiwweDAwIH19LAotIHsxNiwgMHhiNDUwLCAwLCB7MHgzNywweGMwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzMywweGMwLDB4MGEsMHhmMCwweDAzLDB4YTQsMHgyMCB9fSwKLSB7MTYsIDB4YjQ2MCwgMCwgezB4Y2IsMHgwMCwweGIzLDB4YzAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI0NzAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmYsMHgyMCwweDBmLDB4MDAsMHgyNywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDJkIH19LAotIHsxNiwgMHhiNDgwLCAwLCB7MHgwMCwweDBiLDB4ZDAsMHgyNywweGZjLDB4MDAsMHhlZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4YzAsMHg0MywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjQ5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDBiLDB4ZTAsMHgwMCwweGY1LDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGI0YTAsIDAsIHsweDA3LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjQsMHhjMCwweGZjLDB4MjIsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhiNGIwLCAwLCB7MHgwYywweGQwLDB4NDMsMHgzNiwweDAwLDB4YzQsMHg4MSwweDM0LDB4YzAsMHgxYywweDg5LDB4MDcsMHhmMiwweDgwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4YjRjMCwgMCwgezB4MzMsMHg2MCwweDBmLDB4NzksMHgwMywweDNjLDB4ZTAsMHhjZiwweDA4LDB4MzMsMHg0OCwweDBkLDB4YzQsMHgwMywweGYwLDB4NTAgfX0sCi0gezE2LCAweGI0ZDAsIDAsIHsweGRjLDB4OTAsMHgzNywweGNjLDB4MGYsMHhmOCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNGUwLCAwLCB7MHg4MCwweDEwLDB4ZTksMHg5MCwweGI4LDB4ODAsMHg3ZSwweGU0LDB4ODgsMHg5OSwweDBhLDB4MjYsMHgwOCwweGE5LDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4YjRmMCwgMCwgezB4ZjQsMHgyYywweDk5LDB4MDMsMHhhNywweDAyLDB4ODksMHg4MCwweDIyLDB4MzQsMHgwYiwweDlhLDB4MDMsMHg3ZCwweDAwLDB4ZGYgfX0sCi0gezE2LCAweGI1MDAsIDAsIHsweDQ4LDB4MmIsMHg2MCwweDA4LDB4MDUsMHgwMiwweGU1LDB4MDAsMHg4MiwweDIwLDB4MjIsMHhjNCwweDhiLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiNTEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM1LDB4MDAsMHhiMCwweDEwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4YjUyMCwgMCwgezB4MmEsMHgwMCwweDAyLDB4YTQsMHgwOCwweGE4LDB4MDQsMHhlMCwweDgwLDB4MGIsMHgwMCwweDAyLDB4YzQsMHg0MSwweGIyLDB4MDQgfX0sCi0gezE2LCAweGI1MzAsIDAsIHsweGE0LDB4MGEsMHgwYiwweGIwLDB4MDIsMHg4YywweDgxLDB4ODMsMHgyMCwweDYwLDB4NTAsMHg5OCwweDEyLDB4MTIsMHg4YiwweDgwIH19LAotIHsxNiwgMHhiNTQwLCAwLCB7MHg4OSwweDAwLDB4MmMsMHhjOCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjU1MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAyLDB4MmEsMHhjMCwweDBhLDB4ODgsMHgwMiwweGE0LDB4MDgsMHhhOSwweDgwLDB4YTIgfX0sCi0gezE2LCAweGI1NjAsIDAsIHsweGUxLDB4MWIsMHg5YywweDIyLDB4ZTYsMHgwMCwweGI4LDB4NDAsMHgyNiwweDMwLDB4MGIsMHg5MCwweDAyLDB4Y2MsMHgwMSwweDkzIH19LAotIHsxNiwgMHhiNTcwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgzOSwweDk4LDB4ODIsMHhlYywweDE0LDB4OGIsMHg2NSwweDJhLDB4YzAsMHgwYiwweGIyLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YjU4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlNywweDAwLDB4YjgsMHg0OCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGI1OTAsIDAsIHsweDBlLDB4ODgsMHg0MywweDg0LDB4MDAsMHhlMywweGMxLDB4MzYsMHhlOCwweDBmLDB4OWMsMHgxMiwweGUyLDB4ODAsMHhmMywweGMwIH19LAotIHsxNiwgMHhiNWEwLCAwLCB7MHgzNiwweDcwLDB4NWYsMHhhOCwweDIzLDB4YWMsMHgwMSwweGNiLDB4MDQsMHgyMiwweDQwLDB4NGQsMHg4NCwweDAzLDB4ZTIsMHgwMCB9fSwKLSB7MTYsIDB4YjViMCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1YzAsIDAsIHsweGUwLDB4MDEsMHhiMywweDA5LDB4ZmUsMHgxMCwweDNlLDB4ODEsMHgwZCwweGMwLDB4MDMsMHg3NCwweDBjLDB4ZmYsMHgwMCwweDNkIH19LAotIHsxNiwgMHhiNWQwLCAwLCB7MHhjMSwweDhjLDB4ZDAsMHg4MywweDE0LDB4MDAsMHhjZCwweDIwLDB4M2EsMHg0MCwweDBkLDB4Y2EsMHgwMSwweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjVlMCwgMCwgezB4MDAsMHgxZiwweDQwLDB4MGUsMHhjMCwweDIzLDB4ZjIsMHg0NiwweGZlLDB4ODQsMHgzNywweGMwLDB4MGYsMHhkOCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGI1ZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGRkLDB4MDIsMHgzZCwweDQwIH19LAotIHsxNiwgMHhiNjAwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHg0OCwweDNlLDB4ZDAsMHgwYywweDgwLDB4NjMsMHhhMiwweDA4LDB4Y2EsMHgwMCB9fSwKLSB7MTYsIDB4YjYxMCwgMCwgezB4MzIsMHgwOCwweDBjLDB4YjAsMHgwMywweGFjLDB4MDgsMHhlYiwweDAwLDB4M2UsMHg0MCwweDBjLDB4ZDQsMHg4MywweDU4LDB4MjAgfX0sCi0gezE2LCAweGI2MjAsIDAsIHsweGY5LDB4NDIsMHgzMiwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNjMwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMiwweGRiLDB4MDAsMHgyZSwweGUwLDB4MjgsMHgzYSwweDAyLDB4MmUsMHgwMCwweGRiLDB4NjAsMHg3NiB9fSwKLSB7MTYsIDB4YjY0MCwgMCwgezB4ZTAsMHgwZCwweDhjLDB4MDIsMHhlMCwweDAwLDB4ODgsMHgwMiwweDM2LDB4NTgsMHg2OCwweDE1LDB4ODMsMHg3YywweDA4LDB4YmYgfX0sCi0gezE2LCAweGI2NTAsIDAsIHsweDAwLDB4MmQsMHg2MCwweDA4LDB4OTAsMHgwMiwweGE5LDB4MDAsMHhiMywweDA1LDB4MjMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhiNjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHg4MCwweDAwLDB4MGMsMHhjMSB9fSwKLSB7MTYsIDB4YjY3MCwgMCwgezB4MDgsMHgxYywweDgyLDB4MDYsMHgwMCwweDkzLDB4YzAsMHgyMCwweGY2LDB4MGEsMHgyMCwweDAyLDB4MDgsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweGI2ODAsIDAsIHsweDI0LDB4NjAsMHgwOSwweDNjLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMCwweDJjLDB4NjAsMHgwOSwweDAxLDB4MTIsMHgwMCwweDQwIH19LAotIHsxNiwgMHhiNjkwLCAwLCB7MHhiMCwweDAwLDB4ZTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjZhMCwgMCwgezB4MjAsMHg0MSwweDBhLDB4NDAsMHg4NiwweDgxLDB4MmQsMHhlMCwweDU4LDB4MTgsMHgwYSwweDE2LDB4YTAsMHg5NywweDgwLDB4MjUgfX0sCi0gezE2LCAweGI2YjAsIDAsIHsweGU5LDB4MTksMHg3OCwweDgyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyNSwweGEwLDB4MTksMHhmOCwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhiNmMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgyOCwweDQ4LDB4MTIsMHg5NiwweDAwLDB4YjQsMHg4MCwweDIxLDB4ZTAsMHgyOCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YjZkMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgzMCwweDNjLDB4YzIgfX0sCi0gezE2LCAweGI2ZTAsIDAsIHsweDBlLDB4MDAsMHgwMiwweDg0LDB4MDAsMHhlMywweDQwLDB4MjgsMHhlOCwweDRjLDB4MjksMHgwMywweDBjLDB4MDAsMHhkMywweDAwIH19LAotIHsxNiwgMHhiNmYwLCAwLCB7MHgzNCwweGM0LDB4MGQsMHgzMSwweDAzLDB4OGMsMHgwOCwweGUzLDB4MDAsMHgzYywweDQ2LDB4MGMsMHgyMCwweDAzLDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4YjcwMCwgMCwgezB4ZjIsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3MTAsIDAsIHsweDQwLDB4MTksMHhiOCwweDAwLDB4ZmYsMHgxMCwweDJmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhjNCwweDgwLDB4N2YsMHgxMCwweDNlIH19LAotIHsxNiwgMHhiNzIwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgwMywweGRjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDA2LDB4ZjEsMHg0MywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjczMCwgMCwgezB4MDgsMHg3ZCwweDUwLDB4MGUsMHhlMSwweDIzLDB4YjQsMHgwOCwweGZlLDB4MTAsMHgzZiwweGM0LDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGI3NDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMiwweGNjLDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiNzUwLCAwLCB7MHgyYywweGMwLDB4MDMsMHgwNCwweDAxLDB4Y2IsMHgwMCwweDMzLDB4NjAsMHgyYywweDkwLDB4MTMsMHhlOCwweDAwLDB4NzMsMHgwMCB9fSwKLSB7MTYsIDB4Yjc2MCwgMCwgezB4YjIsMHhjMSwweDBmLDB4YTAsMHgwMywweGVjLDB4ODAsMHhmYiwweDI4LDB4M2UsMHg1NCwweDFmLDB4ZDAsMHgwMywweGZlLDB4MDIgfX0sCi0gezE2LCAweGI3NzAsIDAsIHsweGM5LDB4ODAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4Y2EsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNzgwLCAwLCB7MHg0OCwweDExLDB4ODAsMHgwMCwweDg2LDB4MDAsMHgyZCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MTQsMHgwOCwweDg3LDB4MDAsMHgyOSB9fSwKLSB7MTYsIDB4Yjc5MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDIsMHg1YywweGEwLDB4OTcgfX0sCi0gezE2LCAweGI3YTAsIDAsIHsweDIwLDB4MmQsMHg0OCwweDBiLDB4NTAsMHgwMiwweGRjLDB4MTAsMHg4ZCwweDAwLDB4MjEsMHhjOCwweDBiLDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhiN2IwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlmLDB4MDAsMHg4NSwweDgxLDB4MmMsMHg2MCB9fSwKLSB7MTYsIDB4YjdjMCwgMCwgezB4MTgsMHg1OCwweDAyLDB4ZGUsMHgyMCwweGI3LDB4ODIsMHgyOCwweDYwLDB4NWEsMHg3OCwweDUyLDB4ZGUsMHgxMCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGI3ZDAsIDAsIHsweDIxLDB4ZTAsMHg0YiwweDc4LDB4MDYsMHhkZSwweDQwLDB4YjcsMHhhMCwweDJkLDB4NjksMHg5YiwweDc4LDB4MTIsMHhjZSwweDAwIH19LAotIHsxNiwgMHhiN2UwLCAwLCB7MHg4NywweDgwLDB4ZTEsMHhlNCwweDBiLDB4NzgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjdmMCwgMCwgezB4NDgsMHgxNCwweGVlLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDhjLDB4MDgsMHg4MywweGYwLDB4NjggfX0sCi0gezE2LCAweGI4MDAsIDAsIHsweDQwLDB4MGEsMHgzZSwweDAyLDB4Y2QsMHg0MCwweGIzLDB4MDAsMHgyMCwweGUwLDB4MGIsMHgzMiwweDA2LDB4NGMsMHgwMCwweDliIH19LAotIHsxNiwgMHhiODEwLCAwLCB7MHgwMCwweDBjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDgwLDB4ODMsMHgwOCwweDIwLDB4YzAsMHgwYiwweGIxLDB4MDIsMHhkYSB9fSwKLSB7MTYsIDB4YjgyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4Y2UsMHgwOCwweDNmLDB4YjAgfX0sCi0gezE2LCAweGI4MzAsIDAsIHsweDBjLDB4ZTQsMHgyMywweGRhLDB4MDIsMHhkZSwweDQwLDB4YmIsMHhiMiwweDBlLDB4ZTIsMHg0MywweGZhLDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHhiODQwLCAwLCB7MHgzMywweDkwLDB4MGIsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgxLDB4MGIsMHhlMCwweDEzLDB4ZjksMHgwOCB9fSwKLSB7MTYsIDB4Yjg1MCwgMCwgezB4Y2UsMHg0MCwweDMyLDB4ODAsMHgwZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI4NjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDI0LDB4OTgsMHgwOCwweDNjLDB4MDQsMHgwZiwweDAwLDB4MGIsMHg2MCwweDAwLDB4ZjgsMHg0MCwweDJlIH19LAotIHsxNiwgMHhiODcwLCAwLCB7MHgwMywweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNiwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhkOCB9fSwKLSB7MTYsIDB4Yjg4MCwgMCwgezB4MDAsMHgzYywweDAwLDB4MDMsMHg4YywweDIzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGI4OTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhiOGEwLCAwLCB7MHg4YywweDkwLDB4MDMsMHgyNSwweDAwLDB4ZTksMHg4MCwweDMyLDB4NDQsMHgwZiwweDk0LDB4MDIsMHhlNCwweDIwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4YjhiMCwgMCwgezB4MzIsMHg3MCwweDBmLDB4OWEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4MTAsMHgzMywweDI0LDB4MTAgfX0sCi0gezE2LCAweGI4YzAsIDAsIHsweGY5LDB4MDEsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODIsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4MjQsMHg4MiwweDgxLDB4YzAsMHhhMiB9fSwKLSB7MTYsIDB4YjhlMCwgMCwgezB4NzAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4MzEsMHg0MiwweGEyLDB4NjAsMHgwYiwweDk0LDB4ODIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGI4ZjAsIDAsIHsweDAwLDB4MmEsMHg0MCwweDA4LDB4OTQsMHhhMiwweDI1LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiOTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDY0LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YjkxMCwgMCwgezB4MDgsMHg5MCwweDQyLDB4YTQsMHgwMCwweDg5LDB4NjAsMHgyMiwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTYsMHgwMCwweGI5LDB4ODAgfX0sCi0gezE2LCAweGI5MjAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDA0LDB4YjksMHgwMCwweDIyLDB4NDAsMHgyOCwweDkwLDB4MDIsMHgyNCwweDA0IH19LAotIHsxNiwgMHhiOTMwLCAwLCB7MHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjk0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDAwLDB4MmMsMHhjMSwweDQ4LDB4MTAsMHgwMiwweGE0LDB4MDIsMHg4MSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGI5NTAsIDAsIHsweDQwLDB4ODMsMHgzNCwweDAyLDB4YzQsMHgwMCwweGJiLDB4MDAsMHgyMCwweGQwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxIH19LAotIHsxNiwgMHhiOTYwLCAwLCB7MHgyMCwweGEwLDB4NjgsMHgxOCwweDE0LDB4MWEsMHgwZCwweDAwLDB4YjEsMHg0MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHgwYSB9fSwKLSB7MTYsIDB4Yjk3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGI5ODAsIDAsIHsweDhjLDB4ODAsMHgwYiwweGEwLDB4MDQsMHhlOCwweDAwLDB4MzIsMHgwMCwweDA3LDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhiOTkwLCAwLCB7MHgzMiwweDAwLDB4MWYsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4YjlhMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5YjAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQ2LDB4ZmQsMHg0MCwweDNmLDB4NTAsMHgyMywweGQ0LDB4MTMsMHg3NCwweDA0LDB4ZjUsMHgwMiwweDNmIH19LAotIHsxNiwgMHhiOWMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwMywweGZkLDB4MDAsMHhiZCwweDAwLDB4MmYsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YjlkMCwgMCwgezB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkNCwweDAzLDB4ZjUsMHgwOCwweGZkLDB4MDYsMHgzZSwweDUwLDB4MGYsMHhkMiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGI5ZTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg0MCwweGVkLDB4MDQsMHgzZSwweDQ4IH19LAotIHsxNiwgMHhiOWYwLCAwLCB7MHgwYywweGIyLDB4ODMsMHhmNCwweDAwLDB4YzEsMHgwMCwweDMyLDB4NDAsMHg4YywweGQwLDB4MDMsMHgzNCwweDAwLDB4ZmQsMHgwMCB9fSwKLSB7MTYsIDB4YmEwMCwgMCwgezB4MzcsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU2LDB4MjAsMHhmOSwweDg4LDB4M2QsMHg2MiwweDBjLDB4ZDgsMHgwMywweGZlLDB4MjQgfX0sCi0gezE2LCAweGJhMTAsIDAsIHsweGMxLDB4MDAsMHgzZSwweDc4LDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYTIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyZSwweDEwLDB4MDgsMHhjNCwweDIzLDB4YTAsMHgwOCwweDg4LDB4MDYsMHgyYSB9fSwKLSB7MTYsIDB4YmEzMCwgMCwgezB4MTQsMHgwOCwweDgwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMiwweDAwLDB4YjggfX0sCi0gezE2LCAweGJhNDAsIDAsIHsweDgwLDB4MmUsMHgwMCwweDA4LDB4OGMsMHgwMiwweGUzLDB4ODAsMHg4OCwweDAyLDB4MmUsMHgzOCwweDBiLDB4ODgsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiYTUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODAsMHhhMSwweGMwLDB4MmQsMHg3MCB9fSwKLSB7MTYsIDB4YmE2MCwgMCwgezB4MDgsMHg1MCwweDQyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweGUwLDB4MmEsMHgxMCwweDBhLDB4MDQsMHgxMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGJhNzAsIDAsIHsweDI0LDB4NDAsMHg0YiwweDEwLDB4MDYsMHhjNCwweDIwLDB4YjEsMHgwOCwweDZlLDB4NDAsMHgwYiwweDE2LDB4ODIsMHhjNCwweDIwIH19LAotIHsxNiwgMHhiYTgwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4OTIsMHg4MiwweDUyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmE5MCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhhOSwweDAxLDB4MmUsMHg0MCwweDI4LDB4ZDAsMHgyMCwweGE0LDB4MDQsMHhhOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGJhYTAsIDAsIHsweDQwLDB4MWEsMHhiMCwweDEyLDB4MjQsMHgwMCwweGI5LDB4MGMsMHgyMiwweDQyLDB4MGIsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhiYWIwLCAwLCB7MHgwMCwweDZlLDB4NDAsMHgwYiwweDk2LDB4MDIsMHhlNCwweDExLDB4ODksMHgyMCwweDZlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YmFjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweGMwLDB4YTksMHhjMCwweDNlLDB4NTAgfX0sCi0gezE2LCAweGJhZDAsIDAsIHsweDA4LDB4OWMsMHg4MywweGU0LDB4MDIsMHhlOSwweDAwLDB4YjIsMHg0MCwweDJhLDB4OTIsMHgxMiwweDI2LDB4NDAsMHhmOSwweDQwIH19LAotIHsxNiwgMHhiYWUwLCAwLCB7MHgzNiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwNCwweGY5LDB4MDEsMHgzYywweDQwLDB4MGYsMHg5OCwweDAzLDB4ZTYsMHgwMiB9fSwKLSB7MTYsIDB4YmFmMCwgMCwgezB4YzksMHgyMiwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDIsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiMDAsIDAsIHsweDI4LDB4MDEsMHg4NiwweDA0LDB4ZDksMHg0MCwweDFjLDB4NDAsMHgwZiwweDkyLDB4MjMsMHhhNCwweGIwLDB4ZGIsMHgwNCwweDNjIH19LAotIHsxNiwgMHhiYjEwLCAwLCB7MHhjMCwweDBkLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YmIyMCwgMCwgezB4MDAsMHgzZSwweDQyLDB4MmMsMHg5MCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MiwweDAzLDB4OTIgfX0sCi0gezE2LCAweGJiMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGM4LDB4MjAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiYjQwLCAwLCB7MHg0YywweGMwLDB4OGIsMHgyMCwweDAyLDB4YzgsMHgzMSwweDMyLDB4MjAsMHgyZCwweDg0LDB4MDMsMHhlMSwweDA0LDB4ZjgsMHg0OCB9fSwKLSB7MTYsIDB4YmI1MCwgMCwgezB4YmEsMHgwMCwweDBmLDB4ODksMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBkLDB4ODEsMHgxMywweDIwLDB4MTAgfX0sCi0gezE2LCAweGJiNjAsIDAsIHsweGY4LDB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MSwweDIzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYjcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDBlLDB4NDAsMHgyMiwweDgwLDB4MjgsMHhhNCwweDAyLDB4MTksMHgwMCwweDUyLDB4ODAsMHhhMiB9fSwKLSB7MTYsIDB4YmI4MCwgMCwgezB4ODAsMHg0ZCwweGVkLDB4ODIsMHhlOCwweDAwLDB4YjYsMHg0MiwweDIzLDB4YmQsMHgwYiwweGU4LDB4MDIsMHhlOCwweDA0LDB4ZGEgfX0sCi0gezE2LCAweGJiOTAsIDAsIHsweDAwLDB4MzcsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDNhLDB4MjAsMHhiYSwweDAwLDB4MjIsMHg4MCwweDBiLDB4YTgsMHgwYSwweDBhIH19LAotIHsxNiwgMHhiYmEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDgwLDB4NjAsMHhjMCB9fSwKLSB7MTYsIDB4YmJiMCwgMCwgezB4MDgsMHgyOSwweDAyLDB4MGQsMHgwMCwweDkyLDB4NDAsMHgyNCwweGMwLDB4MDgsMHhiNCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGJiYzAsIDAsIHsweDY4LDB4ZTAsMHgxYiwweDMwLDB4MDIsMHhjYywweDAwLDB4OTMsMHgwMSwweDI0LDB4YzAsMHg2OSwweDM4LDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhiYmQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmJlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHg4MywweGMwLDB4MjAsMHg0MCwweDA4LDB4MjgsMHgwNiwweDljLDB4MTgsMHg5YywweDAyLDB4MjQgfX0sCi0gezE2LCAweGJiZjAsIDAsIHsweGMwLDB4MDksMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4Y2UsMHg0MCwweDk3IH19LAotIHsxNiwgMHhiYzAwLCAwLCB7MHhiMCwweDI1LDB4NDAsMHgwOCwweDc4LDB4MWEsMHg1OCwweDAwLDB4YmYsMHhhMiwweDY1LDB4YzgsMHgwYiwweDc4LDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4YmMxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwZSwweDAyLDB4ODcsMHg4MCwweGIxLDB4YTAgfX0sCi0gezE2LCAweGJjMjAsIDAsIHsweDBjLDB4NjgsMHgwMywweDFhLDB4MDgsMHhkNiwweDkyLDB4MzUsMHhlNCwweDI4LDB4NzgsMHg0MiwweGQ2LDB4MTAsMHhmNSwweDgwIH19LAotIHsxNiwgMHhiYzMwLCAwLCB7MHgzOSwweGEwLDB4MGYsMHg3OCwweDIzLDB4ZGUsMHgzMCwweGQzLDB4YTIsMHgzNSwweGEwLDB4NGQsMHhlOCwweDAzLDB4NWUsMHgwMCB9fSwKLSB7MTYsIDB4YmM0MCwgMCwgezB4ZjcsMHhkMCwweDNkLDB4ZjgsMHgwZiwweGYwLDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjNTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4MDAsMHgwYiwweGEwLDB4MDMsMHg0OCwweDA0LDB4ZmEsMHg0MSwweDNhIH19LAotIHsxNiwgMHhiYzYwLCAwLCB7MHg1MCwweDBmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4ODgsMHhmYiB9fSwKLSB7MTYsIDB4YmM3MCwgMCwgezB4NGQsMHgzZSwweDAwLDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwOCwweGZiLDB4MjAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGJjODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGRjLDB4ODAsMHhiMywweGUwIH19LAotIHsxNiwgMHhiYzkwLCAwLCB7MHgwYywweGQ4LDB4MDMsMHhjZSwweDAwLDB4YzgsMHhhMCwweDMxLDB4YTAsMHg4ZCwweGU5LDB4MDMsMHhiZSwweDAwLDB4YjIsMHg4MCB9fSwKLSB7MTYsIDB4YmNhMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZTgsMHg0MywweDdlLDB4MDQsMHgwZiwweDgxLDB4MzEsMHhlNCwweDBjLDB4ZDgsMHgwMywweGY2LDB4MDAgfX0sCi0gezE2LCAweGJjYjAsIDAsIHsweGZmLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDAzLDB4MDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiY2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4NDAsMHgzNSwweDQwLDB4MDgsMHg1MCwweDgyLDB4ZGUsMHg4MCwweGQ0LDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4YmNkMCwgMCwgezB4ZTAsMHgwZCwweDUxLDB4MDIsMHhkNCwweDQwLDB4YjYsMHhiMCwweDJiLDB4OTAsMHgwZSwweGU1LDB4MDIsMHg5YywweDQwLDB4ZDcgfX0sCi0gezE2LCAweGJjZTAsIDAsIHsweDIyLDB4MTksMHg1YywweDBkLDB4NzAsMHgwMiwweGQ4LDB4MDAsMHhiNywweDIwLDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMywweDZhIH19LAotIHsxNiwgMHhiY2YwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg5MywweDEwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4YmQwMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZGMsMHhjMCwweDk0LDB4MDAsMHgyMywweGQwLDB4MDgsMHg3MCwweGEwLDB4ZDQsMHgyMCwweGI1LDB4MDIgfX0sCi0gezE2LCAweGJkMTAsIDAsIHsweDI5LDB4ODAsMHgwOSwweDYwLDB4ODIsMHgwYywweDAwLDB4ODcsMHgwMiwweDI1LDB4YzAsMHgxOSwweDQwLDB4MDIsMHhkNCwweDAwIH19LAotIHsxNiwgMHhiZDIwLCAwLCB7MHhiNywweDAwLDB4NmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmQzMCwgMCwgezB4MjAsMHgxNCwweGVjLDB4MDAsMHhiMywweGMwLDB4MjAsMHgwMSwweDQ4LDB4MTgsMHgwMiwweGNjLDB4MDIsMHg4MSwweDQ0LDB4YTAgfX0sCi0gezE2LCAweGJkNDAsIDAsIHsweGMwLDB4ODksMHgzOCwweDAyLDB4YzcsMHg4MCwweGIxLDB4MDAsMHgyYywweDA5LDB4NGEsMHgwMCwweDYyLDB4YWMsMHgwOSwweDkzIH19LAotIHsxNiwgMHhiZDUwLCAwLCB7MHgwMSwweDI4LDB4NDAsMHgxOSwweDMwLDB4MDIsMHhjZCwweDEwLDB4YjMsMHg5MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YmQ2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDIwLDB4ZGIsMHg2MiwweDIyLDB4ZTAgfX0sCi0gezE2LCAweGJkNzAsIDAsIHsweDZjLDB4YTAsMHgwMywweGU0LDB4MDAsMHg5OCwweDAwLDB4MzIsMHhjMCwweGVjLDB4OTgsMHgyMywweGFlLDB4MDgsMHhmYiwweDA4IH19LAotIHsxNiwgMHhiZDgwLCAwLCB7MHgzYSwweDc4LDB4MDksMHg5MCwweDAzLDB4N2MsMHgxMCwweGNmLDB4MDAsMHgyNiwweDQwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YmQ5MCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDIwLDB4ZmIsMHg0OCwweDNjLDB4NjEsMHgwZiwweGEwLDB4NDMsMHhlZCwweDAwLDB4ZjgsMHgyNCwweDNlIH19LAotIHsxNiwgMHhiZGIwLCAwLCB7MHg1MCwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHhmYiwweDAwLDB4M2EsMHg1MCwweDBmLDB4ODAsMHg0MywweGVjLDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4YmRjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg0MCwweDAzLDB4ZjAsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMxLDB4MGYsMHg5MCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGJkZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGRkLDB4YTAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhiZGUwLCAwLCB7MHgwYywweGUwLDB4MDEsMHhmYywweDAwLDB4ZGMsMHg5MSwweDM5LDB4YzAsMHgzYywweDQwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4YmRmMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZDAsMHgwNywweGZjLDB4MDAsMHhjYiwweDAwLDB4M2QsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM4LDB4MjAgfX0sCi0gezE2LCAweGJlMDAsIDAsIHsweGNmLDB4MDIsMHgzZCwweGMwLDB4MGMsMHhkMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZTEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDAxLDB4NDAsMHgyMiwweDAwLDB4MjgsMHhhMCwweDAyLDB4Y2UsMHg4NiwweDgzLDB4NjQsMHgyMiB9fSwKLSB7MTYsIDB4YmUyMCwgMCwgezB4ZjQsMHgwOCwweDhjLDB4MGYsMHg2NCwweDAwLDB4YmIsMHgxMCwweDJlLDB4NjAsMHgwYiwweDljLDB4MDMsMHhhYywweDAxLDB4ZGIgfX0sCi0gezE2LCAweGJlMzAsIDAsIHsweDAwLDB4M2UsMHg2MCwweDA4LDB4OGYsMHgwMiwweDIzLDB4NDAsMHg4YiwweDAwLDB4M2EsMHhjMCwweDBkLDB4MTAsMHg0MywweDY4IH19LAotIHsxNiwgMHhiZTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5OSwweDAwLDB4YTIsMHhjMCB9fSwKLSB7MTYsIDB4YmU1MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4YTYsMHgwNywweDk4LDB4MDAsMHgwMiwweGMyLDB4NDgsMHg4OCwweDAyLDB4MmMsMHgwMCwweGJhLDB4MDIgfX0sCi0gezE2LCAweGJlNjAsIDAsIHsweDZlLDB4NjAsMHgwYSwweDk4LDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMSwweDJlLDB4NjAsMHgwOCwweDkwLDB4MDIsMHgwNSwweDAwIH19LAotIHsxNiwgMHhiZTcwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjEsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmU4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MSwweDAwLDB4MjAsMHg0MCwweDI4LDB4MTAsMHgyNiwweGNjLDB4ODAsMHg4MCwweDIwLDB4YTAgfX0sCi0gezE2LCAweGJlOTAsIDAsIHsweGNjLDB4MTgsMHgxNCwweDQyLDB4MDQsMHgwMCwweGIyLDB4MjAsMHg2YywweDQwLDB4MGIsMHgwMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhiZWEwLCAwLCB7MHgwMCwweDI4LDB4NDAsMHgyOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOSwweGIwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YmViMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZDksMHgwMCwweDIyLDB4ODAgfX0sCi0gezE2LCAweGJlYzAsIDAsIHsweDBjLDB4OTAsMHgwMywweGFjLDB4ODAsMHhkYSwweDI5LDB4MmEsMHhkMiwweDI4LDB4ODAsMHgwMiwweDI0LDB4MDAsMHhmYiwweDIwIH19LAotIHsxNiwgMHhiZWQwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg5MCwweDAyLDB4ZmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMiB9fSwKLSB7MTYsIDB4YmVlMCwgMCwgezB4Y2YsMHgwMCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4NjMsMHhmYywweDQ5LDB4ZjUsMHgwMCwweDNlIH19LAotIHsxNiwgMHhiZjAwLCAwLCB7MHhjMCwweDBiLDB4YzAsMHgwMSwweGY0LDB4MDAsMHg3ZiwweDQwLDB4M2YsMHg0MCwweDFmLDB4ZDAsMHgwMywweGJjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YmYxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGJmMjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjIsMHg0MCwweGVjLDB4YTAsMHgzZiwweGUwIH19LAotIHsxNiwgMHhiZjMwLCAwLCB7MHgwZCwweDQ4LDB4MDMsMHg3ZCwweDgwLDB4ZjQsMHg4MCwweDMzLDB4NmMsMHgwZSwweGM4LDB4MDMsMHgzMiwweDAwLDB4ZGQsMHg5MCB9fSwKLSB7MTYsIDB4YmY0MCwgMCwgezB4M2IsMHhhMCwweDJkLDB4ZjAsMHgwMywweGZjLDB4YzAsMHhmZiwweDAwLDB4M2IsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MDQgfX0sCi0gezE2LCAweGJmNTAsIDAsIHsweGVjLDB4NjAsMHgzMSwweDAwLDB4MGMsMHhmMCwweDAzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZjYwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHgwMCwweGQ5LDB4YzEsMHgyZSwweGUxLDB4MGQsMHg4OCwweDAyLDB4M2MsMHg4MCwweGY4LDB4ODAsMHgzNiB9fSwKLSB7MTYsIDB4YmY3MCwgMCwgezB4N2QsMHgxOCwweGEwLDB4MDIsMHgyOCwweGIwLDB4ZWEsMHgyMCwweDIyLDB4MjAsMHgwOCwweDc3LDB4MDIsMHhmZCwweDUwLDB4YmIgfX0sCi0gezE2LCAweGJmODAsIDAsIHsweDgwLDB4MjIsMHg0MCwweDBiLDB4ZjQsMHg0MiwweDNkLDB4ODAsMHg4OCwweDMxLDB4MjIsMHgxMiwweDA4LDB4ZjYsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiZjkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4MCwweDExLDB4MmUsMHhjMSB9fSwKLSB7MTYsIDB4YmZhMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NGQsMHg4MCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MGEsMHgwMiwweDgyLDB4MDAsMHgwMCwweDk5LDB4MjAgfX0sCi0gezE2LCAweGJmYjAsIDAsIHsweDIyLDB4YzAsMHgwOSwweDMwLDB4ODIsMHhjYywweDAwLDB4YjMsMHgwMCwweDI4LDB4Y2EsMHgwYiwweDM0LDB4ODIsMHgwZCwweDIwIH19LAotIHsxNiwgMHhiZmMwLCAwLCB7MHg4MCwweDAwLDB4YTAsMHg4YywweDA4LDB4MzQsMHg4MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmZkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg5OSwweDgwLDB4MmUsMHhjMiwweDA5LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhhOSwweDgwLDB4MjYgfX0sCi0gezE2LCAweGJmZTAsIDAsIHsweDYwLDB4MDgsMHgzOCwweDQyLDB4MjIsMHgyMCwweGJhLDB4NDEsMHg2MiwweDQ2LDB4M2IsMHhiMCwweDAyLDB4ZWMsMHgwMSwweGJiIH19LAotIHsxNiwgMHhiZmYwLCAwLCB7MHg4MCwweDIyLDB4NDAsMHgwYiwweGIwLDB4NDYsMHgwYywweDE4LDB4ODgsMHhjMCwweDIyLDB4MjIsMHgwOCwweGIwLDB4MDYsMHhmMCB9fSwKLSB7MTYsIDB4YzAwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhjYywweDAwLDB4YzksMHg4MSwweDNjLDB4YzEgfX0sCi0gezE2LCAweGMwMTAsIDAsIHsweDBjLDB4YTksMHgyMywweDZjLDB4MDAsMHhiMiwweDgwLDB4MzIsMHg3OCwweDBhLDB4OGEsMHgwYiwweDI2LDB4MDAsMHg5OSwweDAxIH19LAotIHsxNiwgMHhjMDIwLCAwLCB7MHgzMCwweGUwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGI5LDB4MDAsMHgzYSwweGMwLDB4MWUsMHhiMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4YzAzMCwgMCwgezB4Y2IsMHg4MCwweDMyLDB4NjEsMHgwYywweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDEwLDB4ZGQsMHgwMCwweDNmLDB4YzIsMHgwZiwweGU4LDB4MDMsMHhhYywweDAwLDB4ZmUsMHgwMCwweDNkIH19LAotIHsxNiwgMHhjMDUwLCAwLCB7MHg0MCwweDBmLDB4YzAsMHg0MywweGY4LDB4MTAsMHhlZiwweDE0LDB4YjcsMHhlMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNSB9fSwKLSB7MTYsIDB4YzA2MCwgMCwgezB4MDIsMHgzZiwweDQ0LDB4NGYsMHhiMCwweDRiLDB4ZmMsMHgwMiwweGQ0LDB4MDQsMHgzZCwweDQwLDB4MmYsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGMwNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY5LDB4MDgsMHgzZSwweDYwIH19LAotIHsxNiwgMHhjMDgwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHg1MCwweDMyLDB4MDAsMHgwYywweDg0LDB4MDMsMHhhNSwweDAwLDB4ZTksMHgwMCB9fSwKLSB7MTYsIDB4YzA5MCwgMCwgezB4M2EsMHhkOCwweDBmLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGMwYTAsIDAsIHsweGNiLDB4NDQsMHgzZSwweGQ0LDB4MGUsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMGIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwOCwweGI5LDB4ODAsMHgyZSwweGMwLDB4MGEsMHgzMCwweDQyLDB4M2MsMHgwMCwweDg5LDB4MDQsMHg3NiB9fSwKLSB7MTYsIDB4YzBjMCwgMCwgezB4NjAsMHgwOCwweDkwLDB4NjIsMHgyMCwweDAwLDB4ODIsMHgwNCwweDIyLDB4ZDAsMHgwOCwweGYwLDB4NDMsMHg3YywweDAwLDB4YmIgfX0sCi0gezE2LCAweGMwZDAsIDAsIHsweDgyLDB4MjIsMHg0MCwweDBiLDB4ZjAsMHg0MiwweDNjLDB4MDAsMHg4YSwweGMwLDB4MmUsMHhjMSwweDA4LDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhjMGUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHhiMiwweGQwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4YzBmMCwgMCwgezB4MjksMHgxOCwweDAyLDB4OGMsMHgwNCwweGExLDB4MDAsMHgyNCwweDljLDB4MDgsMHgxMCwweDAyLDB4ODAsMHgwMCwweGExLDB4MDEgfX0sCi0gezE2LCAweGMxMDAsIDAsIHsweDBjLDB4YzEsMHgyYiwweDMwLDB4NTIsMHg4YywweDA0LDB4YjMsMHgwMSwweDI4LDB4NDAsMHg0YiwweDMwLDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhjMTEwLCAwLCB7MHg5MCwweDIwLDB4MmMsMHgyMCwweDBhLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzEyMCwgMCwgezB4MjAsMHg0MSwweDFlLDB4MDAsMHhiNywweGEyLDB4MjUsMHhlOCwweDhhLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NSwweDgwLDB4MjUgfX0sCi0gezE2LCAweGMxMzAsIDAsIHsweDgwLDB4ODgsMHhlOCwweDAyLDB4M2UsMHgwMCwweDg1LDB4ODAsMHgyZiwweGU0LDB4MjgsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhjMTQwLCAwLCB7MHg4MCwweDYxLDB4ZTAsMHgwMywweDc4LDB4MDIsMHg1ZSwweDgyLDB4YjcsMHg4MiwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YzE1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwZCwweDAwLDB4ZjAsMHgxMCwweDNjLDB4ODAgfX0sCi0gezE2LCAweGMxNjAsIDAsIHsweDBkLDB4MTAsMHg4MywweDhjLDB4MDAsMHhlMiwweDUwLDB4MjYsMHgwNCwweDBjLDB4MTEsMHgwMywweDg4LDB4NDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhjMTcwLCAwLCB7MHgzYywweGM0LDB4MGYsMHgzMCwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDgsMHgzOCwweDQwLDB4MDcsMHgzMCwweDAzLDB4NmUsMHg0MCB9fSwKLSB7MTYsIDB4YzE4MCwgMCwgezB4ZDAsMHgwOCwweDNjLDB4ODgsMHgwZSwweDMwLDB4NDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMxOTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmIsMHgzNCwweDNjLDB4YzksMHg0ZSwweGIwLDB4MjMsMHhlZCwweDIwLDB4ZmIsMHgwNCwweDNmIH19LAotIHsxNiwgMHhjMWEwLCAwLCB7MHhjOCwweDhmLDB4NzAsMHg1MywweDRjLDB4MDAsMHhlYiwweDEwLDB4MzEsMHhjNSwweDBlLDB4ZjQsMHgwMywweDZkLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4YzFiMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDBiLDB4YmMsMHgwMCwweGNkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDgzLDB4ZDAgfX0sCi0gezE2LCAweGMxYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4Y2UsMHgwNCwweGM5LDB4MDQsMHhiMCwweGMxIH19LAotIHsxNiwgMHhjMWQwLCAwLCB7MHgwZiwweDk4LDB4MTMsMHg2YywweDkwLDB4Y2IsMHgwMiwweDNlLDB4YzAsMHg0ZiwweGIwLDB4NjMsMHhlNCwweDAwLDB4ZjEsMHg4MCB9fSwKLSB7MTYsIDB4YzFlMCwgMCwgezB4MTIsMHhjMCwweDBjLDB4YjUsMHgwMywweGVjLDB4YzAsMHhjZiwweDgzLDB4MzIsMHg0MCwweDBmLDB4YjMsMHgyMywweDJkLDB4YTQgfX0sCi0gezE2LCAweGMxZjAsIDAsIHsweGZiLDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiNCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMjAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MmQsMHg2MCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHgzOSB9fSwKLSB7MTYsIDB4YzIxMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkYywweDAwLDB4YjUsMHgwMCwweDIxLDB4YzAsMHgyYSwweDcwLDB4MTIsMHhjYywweDgwLDB4ODcgfX0sCi0gezE2LCAweGMyMjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDBiLDB4NzIsMHg1MiwweDFjLDB4MDAsMHhiNywweDAwLDB4MmQsMHg0MSwweDBiLDB4MzIsMHgwMiwweDEyIH19LAotIHsxNiwgMHhjMjMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweGJlLDB4MDAsMHg4MSwweGMwLDB4MjMsMHgyMCB9fSwKLSB7MTYsIDB4YzI0MCwgMCwgezB4MGIsMHhkOCwweDAyLDB4NWUsMHgwMCwweDA2LDB4YzAsMHgyZCwweGEwLDB4MGIsMHg3YywweDEyLDB4ZGUsMHgwOCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGMyNTAsIDAsIHsweGExLDB4ZTIsMHgyYSwweDdhLDB4MDIsMHhkZSwweDAwLDB4OTMsMHg4MCwweDI1LDB4NjAsMHgwYiwweDc4LDB4MWUsMHg1ZSwweDUwIH19LAotIHsxNiwgMHhjMjYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhhMCwweDBiLDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzI3MCwgMCwgezB4NDgsMHgxNCwweGNlLDB4MDAsMHg4MywweDYwLDB4MjAsMHhjMCwweDA5LDB4MzEsMHgwMiwweDJjLDB4MDAsMHg5MywweDAwLDB4MjggfX0sCi0gezE2LCAweGMyODAsIDAsIHsweGMwLDB4MWIsMHhiMCwweDA2LDB4Y2MsMHg4MCwweGIzLDB4NDgsMHgyMCwweGYwLDB4MGEsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDkzIH19LAotIHsxNiwgMHhjMjkwLCAwLCB7MHg4MCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHg0YywweDEwLDB4YjMsMHhjOCwweDJjLDB4ZDIsMHg4YiwweDMwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4YzJhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDAwLDB4YzYsMHhjNCwweDMxLDB4ODEgfX0sCi0gezE2LCAweGMyYjAsIDAsIHsweDBmLDB4ZTAsMHgwMywweDY4LDB4MDAsMHhjZSwweDgwLDB4M2YsMHhhMiwweDBiLDB4ZTgsMHgwMywweGY5LDB4MDAsMHhmZSwweDQwIH19LAotIHsxNiwgMHhjMmMwLCAwLCB7MHgzMSwweDgwLDB4NmUsMHhhMCwweDA3LDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgyNiwweDgxLDB4MGYsMHhhMCwweDAyLDB4NjgsMHgwMSB9fSwKLSB7MTYsIDB4YzJkMCwgMCwgezB4ZjYsMHhlMCwweDNkLDB4OTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweGMyLDB4ZjgsMHgwNCwweDNlLDB4MTQsMHgwZiwweDgwLDB4MTMsMHhlMCwweDEwLDB4ZjgsMHgwMSwweDNlIH19LAotIHsxNiwgMHhjMmYwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDAsMHhiOCwweDAwLDB4M2UsMHgwMCwweDQ3LDB4ODAsMHgwMywweGUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YzMwMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDA3LDB4YTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGYsMHg4MCwweDBiLDB4ZDIgfX0sCi0gezE2LCAweGMzMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDEsMHgzMiwweDQwIH19LAotIHsxNiwgMHhjMzIwLCAwLCB7MHg4YywweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDIsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4YzMzMCwgMCwgezB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwYiwweDY0LDB4MDAgfX0sCi0gezE2LCAweGMzNDAsIDAsIHsweGY5LDB4OTAsMHgzMiwweDQxLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMzUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4YzgsMHhhMiwweDYwLDB4MGEsMHg5MiwweDAyLDB4ZTQsMHgwMCwweDg5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4YzM2MCwgMCwgezB4NTgsMHgwYiwweDkwLDB4MDIsMHgwNCwweDAwLDB4ZDksMHgwMCwweDJlLDB4NDIsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4ODkgfX0sCi0gezE2LCAweGMzNzAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDQsMHhiOSwweDA4LDB4MmEsMHg0MCwweDQ4LDB4OTAsMHgxMiwweDIwIH19LAotIHsxNiwgMHhjMzgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDEwLDB4MjIsMHg0NCB9fSwKLSB7MTYsIDB4YzM5MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQ1LDB4OGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGMzYTAsIDAsIHsweDJhLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAwLDB4OTksMHg4MCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MjYsMHgyNCwweDAwIH19LAotIHsxNiwgMHhjM2IwLCAwLCB7MHhiOSwweDAxLDB4MjIsMHg3MCwweDA5LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzNjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDgsMHhiMSwweDIwLDB4MjAsMHg0MCwweDBhLDB4MTAsMHgwMiwweGM0LDB4ODAsMHg4MywweDAwLDB4MmMgfX0sCi0gezE2LCAweGMzZDAsIDAsIHsweDUwLDB4NGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDkxLDB4MDAsMHgyZSwweDQwLDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MSwweDgxIH19LAotIHsxNiwgMHhjM2UwLCAwLCB7MHhhMiwweDZjLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4YjksMHgyMCwweDJhLDB4NDgsMHgyOSwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzNmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGM0MDAsIDAsIHsweDA4LDB4ODAsMHgwMywweGUxLDB4NDIsMHhjOCwweDAwLDB4MzIsMHgwMCwweDFmLDB4ODUsMHgwMywweGExLDB4NDAsMHhjOCwweDUwIH19LAotIHsxNiwgMHhjNDEwLCAwLCB7MHgzYSwweDAwLDB4OGQsMHg4NSwweDAzLDB4NjEsMHg0MCwweGQ4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHgwNSwweDAzLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4YzQyMCwgMCwgezB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwZCwweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0MzAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDA0LDB4ZmQsMHgxMCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhjNCwweDQwLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjNDQwLCAwLCB7MHg1MSwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAxLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4YzQ1MCwgMCwgezB4MTAsMHgzZiwweDRhLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZiwweDQ0LDB4MGUsMHg5MSwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGM0NjAsIDAsIHsweDAyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YzUsMHgwMCwweGNkLDB4MDAsMHgzMSwweDQwIH19LAotIHsxNiwgMHhjNDcwLCAwLCB7MHgwZCwweGQwLDB4NDMsMHhlNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAsMHg0ZiwweDExLDB4MDIsMHhlNCwweDA0LDB4YzEsMHgwMCB9fSwKLSB7MTYsIDB4YzQ4MCwgMCwgezB4M2QsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlZCwweGE0LDB4MzIsMHg1MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGM0OTAsIDAsIHsweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNGEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweGQ4LDB4MDAsMHgzMiwweDAxLDB4MDAsMHg4MCwweDEyLDB4YzAsMHgwMCwweDQ4LDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YzRiMCwgMCwgezB4ODAsMHgwYiwweDhhLDB4MDIsMHhlMCwweDAwLDB4YTgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MDIsMHhlMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGM0YzAsIDAsIHsweDUwLDB4MzQsMHgyOCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDBiLDB4ODAsMHgwMiwweGNlIH19LAotIHsxNiwgMHhjNGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4YzRlMCwgMCwgezB4MDksMHgxOCwweDAyLDB4YzQsMHgwOCwweDIxLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDEgfX0sCi0gezE2LCAweGM0ZjAsIDAsIHsweDJlLDB4NDAsMHgxOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4YTEsMHgwMSwweDIwLDB4NDgsMHgxYiwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHhjNTAwLCAwLCB7MHhiMSwweDAwLDB4NmMsMHg0MCwweDBiLDB4MTAsMHgxMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzUxMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHg5OSwweDgwLDB4YTIsMHg0MiwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDJhLDB4MjYgfX0sCi0gezE2LCAweGM1MjAsIDAsIHsweDQ0LDB4MGIsMHg5MCwweDgyLDB4YzQsMHg4MSwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4YzQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhjNTMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDJlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YzU0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNSwweDIwLDB4YzksMHg4NCwweDMwLDB4NzAgfX0sCi0gezE2LCAweGM1NTAsIDAsIHsweDBkLDB4OTAsMHgxMywweGU0LDB4MDIsMHhlOSwweDAwLDB4MzIsMHg3MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSwweDQwIH19LAotIHsxNiwgMHhjNTYwLCAwLCB7MHgzYywweDQ4LDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGUxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAxLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4YzU3MCwgMCwgezB4ZjksMHg5MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MjYsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM1ODAsIDAsIHsweDI4LDB4MDEsMHhhNSwweDAwLDB4ZjEsMHgwNCwweDNhLDB4NDQsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4YzksMHgwNCwweDNlIH19LAotIHsxNiwgMHhjNTkwLCAwLCB7MHg2MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDIwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4YzVhMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDA3LDB4Y2EgfX0sCi0gezE2LCAweGM1YjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGM4LDB4MDQsMHgzYSwweDAwIH19LAotIHsxNiwgMHhjNWMwLCAwLCB7MHgxZSwweDgwLDB4MDMsMHg4MCwweDAzLDB4YzgsMHg0MCwweDJhLDB4MDQsMHgxZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ODgsMHgwMCB9fSwKLSB7MTYsIDB4YzVkMCwgMCwgezB4MzIsMHgzMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAgfX0sCi0gezE2LCAweGM1ZTAsIDAsIHsweGM4LDB4ODAsMHgzZSwweDIwLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNWYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGFlLDB4ZDAsMHgzNywweDgwLDB4MDgsMHhlYywweDQ2LDB4MzgsMHgwMCwweGQ2LDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4YzYwMCwgMCwgezB4YTAsMHgwYiwweGEwLDB4NDEsMHg3OCwweDA0LDB4ZmEsMHgwMCwweDM3LDB4ODAsMHgwZCwweGEwLDB4MDIsMHhhOCwweDEwLDB4ZWUgfX0sCi0gezE2LCAweGM2MTAsIDAsIHsweDIxLDB4MmUsMHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDgsMHg4ZSwweDgwLDB4MmYsMHhhMCwweDhiLDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhjNjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDRjLDB4MDIsMHg4MywweGMwLDB4YTgsMHhlOCB9fSwKLSB7MTYsIDB4YzYzMCwgMCwgezB4NGEsMHgzNiwweDAyLDB4OGMsMHgwMCwweDEzLDB4YTAsMHgyOCwweGMyLDB4MGIsMHgzMCwweDA2LDB4MGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGM2NDAsIDAsIHsweDI0LDB4ODQsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgyMCwweDI4LDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHhjNjUwLCAwLCB7MHg4MywweDgwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzY2MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4NDQsMHhhZiwweDQwLDB4MjUsMHhjMiwweDQ4LDB4ZjgsMHg4MiwweDFjLDB4YzgsMHg5ZiwweDA4LDB4MjEgfX0sCi0gezE2LCAweGM2NzAsIDAsIHsweGMwLDB4OGIsMHhmOCwweDAyLDB4NWMsMHgwMCwweGJmLDB4YjAsMHgyNywweDgwLDB4MDksMHgzYSwweDAyLDB4OWMsMHgwMCwweGE1IH19LAotIHsxNiwgMHhjNjgwLCAwLCB7MHgwMiwweDJkLDB4ZTgsMHgwOSwweDcwLDB4MDIsMHhjZSwweDgwLDB4ODUsMHgwOCwweDJkLDB4YzIsMHgwYiwweDczLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YzY5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MiwweGE5LDB4ZTAgfX0sCi0gezE2LCAweGM2YTAsIDAsIHsweDBhLDB4NzgsMHgwMiwweDllLDB4NDAsMHg5NywweDg0LDB4MzksMHhhMCwweDBiLDB4N2EsMHg4MywweDNmLDB4ODAsMHhkNywweDkxIH19LAotIHsxNiwgMHhjNmIwLCAwLCB7MHgzNSwweGEwLDB4MGQsMHg3YSwweDA5LDB4MWUsMHg0NCwweGY3LDB4ODAsMHgzZCwweGU4LDB4MmQsMHg3YSwweDAzLDB4ZGUsMHg4MiB9fSwKLSB7MTYsIDB4YzZjMCwgMCwgezB4YzYsMHg4MCwweDNkLDB4MjAsMHg0YiwweDdiLDB4MjMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2ZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZDMsMHgwMCwweDNlLDB4YzEsMHgwZiwweDMwLDB4MDMsMHhlZCwweDgwLDB4ZTMsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjNmUwLCAwLCB7MHg4MCwweDBmLDB4YjYsMHgyMSwweGVjLDB4MDgsMHhkYiwweDIxLDB4M2UsMHg4MCwweDBmLDB4YjUsMHgwMywweDZjLDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YzZmMCwgMCwgezB4MDAsMHgzZSwweGRjLDB4MGUsMHhiMiwweDAzLDB4ZWQsMHg0MCwweGY5LDB4MDIsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGM3MDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGNmLDB4ODAsMHgzZCwweGUwIH19LAotIHsxNiwgMHhjNzEwLCAwLCB7MHgwZiwweGM4LDB4NDMsMHhmZSwweDAwLDB4ZmUsMHg4NCwweDNmLDB4ZTAsMHgwZCwweGY4LDB4YzMsMHhmZiwweDEwLDB4YWYsMHg5MCB9fSwKLSB7MTYsIDB4YzcyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4ZmMsMHgwMywweDNlLDB4MTQsMHhlYywweDg0LDB4M2YsMHhmMCwweDBlLDB4ZmMsMHhjMywweGZmLDB4MDggfX0sCi0gezE2LCAweGM3MzAsIDAsIHsweDRmLDB4ODAsMHgzMywweGU0LDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNzQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTIsMHgyZCwweGM0LDB4MGMsMHg0MSwweGMyLDB4ZGMsMHgwMCwweDc0LDB4MDAsMHgyNSB9fSwKLSB7MTYsIDB4Yzc1MCwgMCwgezB4ODAsMHgwZiwweDcyLDB4NDIsMHhkYywweDkwLDB4ZDcsMHgzOCwweDJkLDB4OTgsMHgwYSwweDcwLDB4MDIsMHgxYywweDA0LDB4ODYgfX0sCi0gezE2LCAweGM3NjAsIDAsIHsweDAwLDB4M2YsMHhjMCwweDBkLDB4NzAsMHgwMiwweGNjLDB4MDAsMHg4NiwweDA4LDB4MzcsMHhjNiwweDI4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhjNzcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDYwLDB4MmQsMHhjMiB9fSwKLSB7MTYsIDB4Yzc4MCwgMCwgezB4MGEsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGI2LDB4MTAsMHgyNSwweGMyLDB4MDksMHg3MCwweDg2LDB4ZGMsMHgzMCwweDk3LDB4MDAgfX0sCi0gezE2LCAweGM3OTAsIDAsIHsweDI1LDB4ODAsMHgwOCwweDMwLDB4MDIsMHg1YywweDAwLDB4ODcsMHgwOCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhjYywweDQwIH19LAotIHsxNiwgMHhjN2EwLCAwLCB7MHg4NiwweDAwLDB4MjEsMHgwMCwweDA5LDB4NzAsMHgwYSwweDAwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzdiMCwgMCwgezB4MjAsMHgxNCwweGVkLDB4ODAsMHg5MywweDAwLDB4MGMsMHhlMSwweDI4LDB4MTgsMHgwMiwweGNjLDB4MDgsMHhhMCwweDAwLDB4MjQgfX0sCi0gezE2LCAweGM3YzAsIDAsIHsweDEyLDB4MWEsMHgzNCwweDAyLDB4Y2YsMHgwNCwweDkzLDB4NDAsMHgyYywweDgwLDB4MGEsMHhiMCwweDIyLDB4NGMsMHgwMiwweDgxIH19LAotIHsxNiwgMHhjN2QwLCAwLCB7MHg4MCwweDI4LDB4ZTAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4ODgsMHg4MiwweDI0LDB4MjAsMHgwOCwweGIwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YzdlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZiwweDIwLDB4YzksMHhlMCwweDJjLDB4ZjEgfX0sCi0gezE2LCAweGM3ZjAsIDAsIHsweDBlLDB4YmQsMHgwMywweGZjLDB4MDAsMHhiOSwweDQwLDB4MzYsMHg0MCwweDA5LDB4ZjUsMHgwMiwweGZkLDB4NDAsMHhmZiwweDgwIH19LAotIHsxNiwgMHhjODAwLCAwLCB7MHgzNiwweGEyLDB4MDgsMHhmMCwweDBiLDB4N2MsMHgwMCwweGViLDB4ODAsMHgyZiwweGUwLDB4MGEsMHhmMCwweDQzLDB4ZmMsMHgwMiB9fSwKLSB7MTYsIDB4YzgxMCwgMCwgezB4OGIsMHhkMCwweDMyLDB4ZjAsMHgwZCwweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4MjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4YzgsMHgwZiwweDk0LDB4MTMsMHhlYywweDAwLDB4ZjksMHg0MCwweDM2IH19LAotIHsxNiwgMHhjODMwLCAwLCB7MHg0MCwweDFmLDB4YjAsMHgwMywweGVjLDB4MTAsMHhmYiwweDAxLDB4M2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgzZSwweGM0LDB4MGYsMHhiMCwweDAxLDB4ZWMsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGM4NTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhjODYwLCAwLCB7MHgwYywweGUwLDB4MDcsMHhmYywweDAwLDB4ZmMsMHgwYSwweDI3LDB4MDAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwOCB9fSwKLSB7MTYsIDB4Yzg3MCwgMCwgezB4MzMsMHg4MCwweDBjLDB4ZjAsMHgwMCwweDJjLDB4MDAsMHg1ZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMSwweGZjLDB4MDAgfX0sCi0gezE2LCAweGM4ODAsIDAsIHsweGZlLDB4MDAsMHgyMywweDQwLDB4MGYsMHhiMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODkwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODYsMHgyZSwweGUwLDB4NDgsMHg4ZiwweDAyLDB4ZWMsMHgwOCwweGI4LDB4YTAsMHgzNiB9fSwKLSB7MTYsIDB4YzhhMCwgMCwgezB4MzAsMHg0YiwweGIwLDB4MDMsMHhhYywweDBjLDB4OWIsMHgwMiwweDNjLDB4YTAsMHgwYywweGIwLDB4NDMsMHg2YywweDAwLDB4YjEgfX0sCi0gezE2LCAweGM4YjAsIDAsIHsweDAwLDB4MjgsMHhjMCwweDBkLDB4YjAsMHgxMiwweGVjLDB4MTAsMHhiOSwweDgwLDB4YTIsMHg2MSwweDBiLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjOGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDg4LDB4MmUsMHhlMCB9fSwKLSB7MTYsIDB4YzhkMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4ZWMsMHgwMSwweGJiLDB4ODAsMHgyNiwweDYyLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGIzLDB4MDEgfX0sCi0gezE2LCAweGM4ZTAsIDAsIHsweDJhLDB4MjEsMHgwOCwweGIwLDB4MTIsMHgyYywweDAwLDB4YjgsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MTIsMHhlYywweDE0IH19LAotIHsxNiwgMHhjOGYwLCAwLCB7MHhiOSwweDg0LDB4MjIsMHhhMiwweDBiLDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzkwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg5MywweDAwLDB4MmMsMHhlMCwweDA4LDB4MDAsMHgwMiwweGNjLDB4MDksMHg5MSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGM5MTAsIDAsIHsweDQwLDB4MGIsMHgzMCwweDA2LDB4NGMsMHgwNCwweDEzLDB4MDAsMHgyNiwweDAwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIyIH19LAotIHsxNiwgMHhjOTIwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgwMSwweDMwLDB4MDAsMHhjZCwweDAwLDB4YjAsMHgwMCwweDIwLDB4ODAsMHgwYiwweDMwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4YzkzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgyNCwweDZlLDB4YzAgfX0sCi0gezE2LCAweGM5NDAsIDAsIHsweDJjLDB4YTAsMHgwMiwweGZjLDB4MDAsMHhiYSwweDA0LDB4MjYsMHg0MCwweDRmLDB4ZjAsMHg1NywweGZjLDB4MDAsMHgzZiwweDAxIH19LAotIHsxNiwgMHhjOTUwLCAwLCB7MHgzYSwweDAwLDB4MmMsMHhmMCwweDAxLDB4M2MsMHgwMCwweGRiLDB4MDAsMHgzMywweGMwLDB4ODQsMHhmMCwweDAzLDB4ZmQsMHgwOCB9fSwKLSB7MTYsIDB4Yzk2MCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4MDAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM5NzAsIDAsIHsweGEwLDB4MTksMHhkYywweDAwLDB4ZWEsMHg0MCwweDNmLDB4MDAsMHgwNywweGMwLDB4MDMsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjOTgwLCAwLCB7MHg0MCwweDBmLDB4ZjAsMHgwMywweDljLDB4MDAsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBlLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4Yzk5MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4NCwweGY0LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGM5YTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjAsMHg4MCwweGZmLDB4MDAsMHgwMywweGMyIH19LAotIHsxNiwgMHhjOWIwLCAwLCB7MHgwZiwweGMyLDB4MDMsMHgzZSwweDAwLDB4ZGYsMHhjMCwweDNlLDB4YzAsMHg0ZCwweGRiLDB4MDIsMHhiMCwweGMwLDB4ZGMsMHgzMCB9fSwKLSB7MTYsIDB4YzljMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZGIsMHgyMywweGY2LDB4MjAsMHhmZiwweDI2LDB4MzMsMHhlMCwweDBmLDB4NTIsMHgwMywweDVlLDB4MDAgfX0sCi0gezE2LCAweGM5ZDAsIDAsIHsweGZmLDB4ODAsMHgzMywweGMwLDB4NGMsMHg0OSwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOWUwLCAwLCB7MHg4MCwweDEwLDB4ZTEsMHhlMCwweGI3LDB4MDgsMHgyMywweGYwLDB4MGIsMHhhZCwweDBhLDB4MmUsMHgwMCwweDlhLDB4MDQsMHgyZSB9fSwKLSB7MTYsIDB4YzlmMCwgMCwgezB4YjAsMHgwOSwweDhmLDB4MDMsMHhhMCwweDQwLDB4YjksMHgzMCwweDJlLDB4YTAsMHgwYiwweDlmLDB4MDMsMHhhNywweDAwLDB4YmIgfX0sCi0gezE2LCAweGNhMDAsIDAsIHsweDgwLDB4MjYsMHhlMCwweDBiLDB4ZGQsMHgwMiwweDJlLDB4MDAsMHhiYiwweDgwLDB4MjIsMHhmNCwweDBhLDB4OTIsMHgwMiwweGEwIH19LAotIHsxNiwgMHhjYTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4ODAsMHhiMywweDEwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Y2EyMCwgMCwgezB4MGIsMHg4MCwweDAyLDB4YWMsMHgwMCwweGEzLDB4MjQsMHgyYywweGQwLDB4MDgsMHgxMCwweDA2LDB4YzAsMHg4MCwweGIyLDB4MDEgfX0sCi0gezE2LCAweGNhMzAsIDAsIHsweDJjLDB4ZWEsMHg0YiwweDAwLDB4MTIsMHhjMiwweDA0LDB4YjMsMHgxMCwweDA4LDB4YzAsMHgwYSwweDkwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHhjYTQwLCAwLCB7MHg5MywweDA0LDB4MjQsMHhjMCwweDA5LDB4ODIsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2E1MCwgMCwgezB4YzAsMHgxNSwweGE1LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4ODAsMHgwMiwweGFjLDB4MDgsMHhiYiwweDE4LDB4MmUgfX0sCi0gezE2LCAweGNhNjAsIDAsIHsweGUwLDB4MTgsMHg4OCwweDAyLDB4ZWMsMHgwMSwweGJhLDB4MDAsMHgyZSwweDgwLDB4MGIsMHg5OCwweDg2LDB4ZTIsMHgwMCwweGJiIH19LAotIHsxNiwgMHhjYTcwLCAwLCB7MHgwMCwweDIyLDB4YzQsMHgwYiwweDkwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweGE2LDB4YzAsMHgwYiwweDkwLDB4MDAsMHhiMCB9fSwKLSB7MTYsIDB4Y2E4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNywweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzAgfX0sCi0gezE2LCAweGNhOTAsIDAsIHsweDBmLDB4YTgsMHgwMywweGFjLDB4MDIsMHhlYiwweDAwLDB4M2UsMHg2MCwweDBkLDB4OWUsMHgwMywweGVjLDB4MDAsMHhkOCwweDQwIH19LAotIHsxNiwgMHhjYWEwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg4OCwweDQzLDB4ZTIsMHgwMCwweGZiLDB4MjAsMHgzMiwweGMwLDB4MGYsMHgxMCwweDBiLDB4NmYsMHg5MCB9fSwKLSB7MTYsIDB4Y2FiMCwgMCwgezB4NWIsMHg4MiwweDM2LDB4YzAsMHgyZCwweDA4LDB4MDEsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhYzAsIDAsIHsweGUwLDB4MDEsMHhiNywweDA4LDB4ZjcsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY5LDB4MDMsMHg3YywweDA4LDB4Y2YsMHg4MiwweDNjIH19LAotIHsxNiwgMHhjYWQwLCAwLCB7MHgwMCwweGFmLDB4ZDAsMHgyMSwweGJjLDB4MDgsMHhmZCwweDEwLDB4M2YsMHg4MCwweDhmLDB4YzAsMHgwMywweGE0LDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4Y2FlMCwgMCwgezB4MDEsMHhiZiwweGMwLDB4MDcsMHhkMCwweDAzLDB4YmQsMHgzMCwweGZmLDB4YTQsMHgzOCwweGMwLDB4MGUsMHhkYSwweDAzLDB4ZjggfX0sCi0gezE2LCAweGNhZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTgsMHgwMCwweGZiLDB4MDAsMHhiMiwweGMxIH19LAotIHsxNiwgMHhjYjAwLCAwLCB7MHgwZSwweDgxLDB4MDMsMHhlYywweDQwLDB4ZmIsMHg0NCwweDNhLDB4YzEsMHgwZSwweDk1LDB4MDMsMHhlMCwweDAwLDB4Y2IsMHg0MSB9fSwKLSB7MTYsIDB4Y2IxMCwgMCwgezB4MzIsMHg0ZCwweDBmLDB4ODEsMHgwMywweGUwLDB4MjAsMHhjOSwweDAwLDB4NzIsMHhlOCwweDQ0LDB4OTEsMHgwMywweDZkLDB4MDAgfX0sCi0gezE2LCAweGNiMjAsIDAsIHsweGNiLDB4MDIsMHgzZSwweGMwLDB4MGMsMHg4MCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYjMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweGJmLDB4MDAsMHgzMywweGM0LDB4MDgsMHgxZCwweDAzLDB4OGMsMHgwMCwweGJiLDB4OTgsMHgzNiB9fSwKLSB7MTYsIDB4Y2I0MCwgMCwgezB4NDgsMHg0ZCwweDk4LDB4MjIsMHhlZCwweDQwLDB4ZGIsMHgwMCwweDM2LDB4YjAsMHgwYiwweDk4LDB4MDIsMHhlMywweDAwLDB4ZGIgfX0sCi0gezE2LCAweGNiNTAsIDAsIHsweDAwLDB4MzIsMHhlMCwweDg4LDB4ZDgsMHgwMiwweDJjLDB4MDIsMHhjMywweDgwLDB4MmYsMHhjMCwweDA4LDB4OTAsMHgwMywweDcyIH19LAotIHsxNiwgMHhjYjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHhmMCB9fSwKLSB7MTYsIDB4Y2I3MCwgMCwgezB4MTgsMHgwOCwweDAyLDB4NGYsMHg4NCwweGIxLDB4YzAsMHgyNCwweGMwLDB4ODksMHgwNiwweDAyLDB4YzQsMHgwMCwweDkxLDB4MDAgfX0sCi0gezE2LCAweGNiODAsIDAsIHsweDIwLDB4ZjAsMHgxYiwweDE4LDB4ODIsMHhjNiwweDAwLDB4OTMsMHgwMCwweDJjLDB4ZDEsMHgwOCwweDFlLDB4MDIsMHgwZSwweDQ0IH19LAotIHsxNiwgMHhjYjkwLCAwLCB7MHg5MywweDk0LDB4MmMsMHhjMCwweDA4LDB4MjAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2JhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MjAsMHhlMiwweDA4LDB4NjgsMHgwNiwweDllLDB4ODAsMHhiZiwweDg0LDB4MjUgfX0sCi0gezE2LCAweGNiYjAsIDAsIHsweGE4LDB4MDksMHg2OCwweDAyLDB4YzYsMHgwMCwweDkzLDB4YTAsMHg2NSwweGU0LDB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweDkzIH19LAotIHsxNiwgMHhjYmMwLCAwLCB7MHgwMCwweGExLDB4ZTAsMHgwOCwweGQ4LDB4MDIsMHgxZSwweGQwLDB4YTcsMHg4MCwweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4Y2JkMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YjMsMHgyMCwweDMwLDB4YzAgfX0sCi0gezE2LCAweGNiZTAsIDAsIHsweDBhLDB4MjIsMHgwMiwweGNlLDB4NDAsMHhmMywweGEwLDB4M2MsMHhlOCwweDBiLDB4MzAsMHgwMiwweGMxLDB4MDAsMHhkMCwweGMxIH19LAotIHsxNiwgMHhjYmYwLCAwLCB7MHgzMCwweGMwLDB4MGIsMHgyMSwweDEzLDB4Y2MsMHgyMSwweGQzLDB4MDAsMHgyYywweGMwLDB4MmMsMHgxMCwweDBiLDB4MGMsMHg4MCB9fSwKLSB7MTYsIDB4Y2MwMCwgMCwgezB4ZDMsMHg2MSwweDNjLDB4YzgsMHgyYywweDIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjMTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHg0MCwweDNiLDB4YzAsMHgwZiwweGUwLDB4MDMsMHhmYywweDAwLDB4ZjcsMHg1MCwweDdmIH19LAotIHsxNiwgMHhjYzIwLCAwLCB7MHhjNCwweDJlLDB4ZjAsMHgwMywweGZjLDB4NDAsMHhmZSwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0NywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4Y2MzMCwgMCwgezB4MDAsMHg3ZCwweGMyLDB4MGYsMHhkMCwweDAxLDB4YmMsMHg4MCwweDVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGNjNDAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGZiLDB4YzAsMHgzMiwweGM4IH19LAotIHsxNiwgMHhjYzUwLCAwLCB7MHgwZSwweGUwLDB4MDMsMHhhYywweGEwLDB4ZWIsMHgyMCwweDMyLDB4NDAsMHg4YywweGEwLDB4MTMsMHgyYywweDAwLDB4ZDksMHgwMCB9fSwKLSB7MTYsIDB4Y2M2MCwgMCwgezB4M2UsMHg2MCwweDBjLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYSwweDgwLDB4MzAsMHhjMCwweDNjLDB4OTIsMHgwMywweGVmLDB4NjAgfX0sCi0gezE2LCAweGNjNzAsIDAsIHsweGMzLDB4MjAsMHgzMSwweGM0LDB4MGMsMHhhMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYzgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDMzLDB4MjAsMHgyMSwweGRhLDB4MGIsMHg3MCwweDQzLDB4OWMsMHgwMSwweGI1LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4Y2M5MCwgMCwgezB4MDAsMHgwYSwweGUwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJmLDB4YzAsMHgwZCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjYgfX0sCi0gezE2LCAweGNjYTAsIDAsIHsweDAwLDB4MzEsMHhjOCwweDA4LDB4NTcsMHgwMiwweGRjLDB4MDAsMHg4NywweDUwLDB4MjEsMHhjMCwweDBhLDB4NzAsMHg0MiwweDkyIH19LAotIHsxNiwgMHhjY2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MTEsMHhiNywweDkwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4Y2NjMCwgMCwgezB4MGIsMHg2OCwweDgyLDB4ZGUsMHgwOCwweGE3LDB4ODAsMHgyNCwweDYwLDB4MDgsMHg3MCwweDEyLDB4MTIsMHgwOCwweDk1LDB4ODAgfX0sCi0gezE2LCAweGNjZDAsIDAsIHsweDJkLDB4NjAsMHgwOSwweDZjLDB4MDIsMHhkZSwweDAwLDB4YjEsMHg4MCwweDIzLDB4ZTAsMHgwYSwweDU4LDB4NjIsMHhmZSwweDAwIH19LAotIHsxNiwgMHhjY2UwLCAwLCB7MHg5NywweGEwLDB4MjEsMHhlOCwweDA5LDB4ZTgsMHgwMiwweDMwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2NmMCwgMCwgezB4NDgsMHgxNCwweGNkLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDhiLDB4M2MsMHgwMiwweDhjLDB4MDAsMHhiYiwweDAwLDB4MjQgfX0sCi0gezE2LCAweGNkMDAsIDAsIHsweGM0LDB4MWEsMHgzZCwweDAyLDB4MmYsMHg4OCwweGIzLDB4NDgsMHgyYywweGUwLDB4ODksMHgzZSwweDAyLDB4OGQsMHg4MCwweDkzIH19LAotIHsxNiwgMHhjZDEwLCAwLCB7MHhkOSwweGE0LDB4NDAsMHg4OCwweDEwLDB4MDIsMHhjYywweDA0LDB4OTMsMHhjOCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4Y2QyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZmEsMHgwMCwweGIyLDB4ODAgfX0sCi0gezE2LCAweGNkMzAsIDAsIHsweDBmLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhlYSwweDgwLDB4MzcsMHhhMCwweDBjLDB4ZTgsMHgxMywweDNiLDB4MDgsMHhkZSwweDAxIH19LAotIHsxNiwgMHhjZDQwLCAwLCB7MHgzZiwweDgyLDB4MGMsMHhlMCwweDQzLDB4ZmEsMHg4MCwweGZlLDB4ODAsMHgzMSwweDI4LDB4MGMsMHhhMCwweDAzLDB4ZjAsMHgwMiB9fSwKLSB7MTYsIDB4Y2Q1MCwgMCwgezB4YzQsMHhjMCwweGIyLDB4ODAsMHgwZCwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNkNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwYiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjgsMHgzMCwweDNhIH19LAotIHsxNiwgMHhjZDcwLCAwLCB7MHgwMCwweDZkLDB4ODAsMHg4MywweGUxLDB4NDQsMHhiOCwweDA0LDB4M2UsMHgxMCwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4Y2Q4MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4NGYsMHgwNCwweDAzLDB4ZTMsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGNkOTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzOCwweDQwIH19LAotIHsxNiwgMHhjZGEwLCAwLCB7MHgwZiwweDFhLDB4MDMsMHgyZSwweDAwLDB4ZmIsMHhhMCwweDM2LDB4NjAsMHgwYywweDk4LDB4MDMsMHhlNiwweDA0LDB4ZDEsMHgwMCB9fSwKLSB7MTYsIDB4Y2RiMCwgMCwgezB4MzYsMHg0OCwweDBlLDB4OTEsMHgwMiwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTksMHgwMywweDYyLDB4NDAgfX0sCi0gezE2LCAweGNkYzAsIDAsIHsweGY4LDB4MDAsMHhhMCwweDY4LDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDQsMHgyZSwweDY0LDB4ODgsMHg5NCwweDAyLDB4YTUsMHgwMCwweGI5LDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4Y2RlMCwgMCwgezB4NjQsMHgwZCwweDljLDB4MDIsMHhlNiwweDQyLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweGNkZjAsIDAsIHsweDQwLDB4M2EsMHg1MCwweDA4LDB4OWMsMHgwMiwweDI3LDB4MjAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMywweDYwIH19LAotIHsxNiwgMHhjZTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4Y2UxMCwgMCwgezB4MGEsMHg5MCwweDgyLDB4MjUsMHg0YywweGI5LDB4MDAsMHgwMiwweDQwLDB4MDgsMHg5NiwweDAyLDB4ZTQsMHgxMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGNlMjAsIDAsIHsweDI2LDB4NTAsMHgxMywweDk0LDB4MDIsMHhlNCwweDQwLDB4YjksMHgwOCwweDJlLDB4NDAsMHgwOCwweDkwLDB4OGEsMHgyNCwweDAwIH19LAotIHsxNiwgMHhjZTMwLCAwLCB7MHhiOSwweDAxLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2U0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDQwLDB4MmMsMHhjOCwweDA4LDB4MTAsMHgwNiwweDg0LDB4MDAsMHhiMSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGNlNTAsIDAsIHsweDQ5LDB4MDksMHgxNCwweDQyLDB4Y2MsMHg4OSwweDgxLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDQ2LDB4YzQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhjZTYwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgyOCwweDE0LDB4MDIsMHgwMSwweDAxLDB4YjAsMHgwNCwweDI4LDB4NDAsMHgzOCwweDk0LDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4Y2U3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ODgsMHgwMCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGNlODAsIDAsIHsweDBlLDB4ODAsMHgyMywweDIwLDB4MDAsMHhmOCwweDUwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgxMiwweGUxLDB4NDAsMHhkOCwweDUwIH19LAotIHsxNiwgMHhjZTkwLCAwLCB7MHgzNiwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHg4MCwweDUzLDB4NjAsMHgwNCB9fSwKLSB7MTYsIDB4Y2VhMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlYjAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQwLDB4ZjksMHg0NCwweDNlLDB4NDQsMHgwZiwweGQ0LDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjZWMwLCAwLCB7MHg0NCwweDBmLDB4ZDQsMHg1MywweGY0LDB4NDQsMHhmZCwweDEwLDB4MmYsMHg0MCwweDBmLDB4ZjQsMHgwMywweGZkLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4Y2VkMCwgMCwgezB4NDAsMHgzYiwweDEwLDB4MGYsMHhkNCwweDIzLDB4ZDEsMHgwNCwweDdjLDB4NDMsMHgzNiwweDUwLDB4MGYsMHg1MCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGNlZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YTYsMHgwMCwweGY5LDB4MTAsMHgyZSwweDYyIH19LAotIHsxNiwgMHhjZWYwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlNCwweDAwLDB4YmQsMHg0MiwweDNlLDB4NjEsMHgwZiwweGQwLDB4MDMsMHhmNiwweGMwLDB4YzksMHhhMiB9fSwKLSB7MTYsIDB4Y2YwMCwgMCwgezB4MmIsMHg0MCwweDBjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhmOSwweDgxLDB4M2UsMHg2OCwweDA4LDB4YzEsMHg0MywweGZhLDB4MDAgfX0sCi0gezE2LCAweGNmMTAsIDAsIHsweGY1LDB4ODAsMHgzZiwweDYyLDB4MGMsMHgxNCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZjIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgyMCwweDg4LDB4MTEsMHgyZSwweDEwLDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4Y2YzMCwgMCwgezB4MTAsMHgwYiwweDgwLDB4MDAsMHhlMywweGM0LDB4ODgsMHhmMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHgyMCwweDAwLDB4ZTggfX0sCi0gezE2LCAweGNmNDAsIDAsIHsweDQwLDB4MmYsMHgxNCwweDA4LDB4ODgsMHgwMiwweGUyLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDA4LDB4ODgsMHgwMiwweDhlIH19LAotIHsxNiwgMHhjZjUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweGM1LDB4MDAsMHhhMSwweDAwLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4Y2Y2MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxOCwweGIxLDB4MjIsMHg2YywweGQxLDB4MGIsMHgxMCwweDI2LDB4YzQsMHgwMCwweDgxLDB4MDggfX0sCi0gezE2LCAweGNmNzAsIDAsIHsweDJhLDB4NDAsMHg4OCwweDEwLDB4MDIsMHgwNCwweDA0LDB4YjUsMHhjMCwweDBmLDB4NDAsMHgwYiwweDAyLDB4MDIsMHg0MSwweGEwIH19LAotIHsxNiwgMHhjZjgwLCAwLCB7MHhiMSwweDQwLDB4MmMsMHg0MCwweDA4LDB4MTIsMHgwMiwweDAyLDB4MTEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA2LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU0LDB4MDAsMHhiOSwweDQwLDB4MmUgfX0sCi0gezE2LCAweGNmYTAsIDAsIHsweDQwLDB4MGIsMHhiMCwweDgyLDB4YzQsMHgwMiwweDg5LDB4NDQsMHgyMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweGE5IH19LAotIHsxNiwgMHhjZmIwLCAwLCB7MHgwMCwweDI3LDB4NDgsMHgwOSwweGIwLDB4MTIsMHhlYywweDE4LDB4YjksMHgwMSwweDJlLDB4NDAsMHg0MCwweDkwLDB4MDIsMHg4NiB9fSwKLSB7MTYsIDB4Y2ZjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDg0LDB4ZTksMHgwMSwweDNlLDB4NDAgfX0sCi0gezE2LCAweGNmZDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg3MiwweDBmLDB4OTAsMHgwMywweGU3LDB4NjAsMHg4OSwweDEwIH19LAotIHsxNiwgMHhjZmUwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NDQsMHgzYywweDQwLDB4MmQsMHg5MCwweDAzLDB4ZTcsMHg2MCB9fSwKLSB7MTYsIDB4Y2ZmMCwgMCwgezB4ZjksMHg3MSwweDNlLDB4NDAsMHgyOCwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwMDAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDQ4LDB4YTksMHgwMCwweDNlLDB4YzAsMHgwZiwweDlhLDB4NDMsMHhlYywweDAwLDB4ZjksMHgyMCwweDdlIH19LAotIHsxNiwgMHhkMDEwLCAwLCB7MHhjOCwweDBmLDB4OWEsMHgwNywweDY2LDB4MDAsMHg3OSwweDgwLDB4N2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGU3LDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ZDAyMCwgMCwgezB4YTAsMHgzZSwweDQwLDB4NDYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGQwMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODAsMHgwMCwweGY4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhkMDQwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhMCwweDA4LDB4ZTgsMHg0MCwweDNhLDB4MTAsMHgwYywweDgzLDB4MDMsMHhhMSwweGMwLDB4ZjAsMHg0MCB9fSwKLSB7MTYsIDB4ZDA1MCwgMCwgezB4M2UsMHgwNiwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhmOCwweDAwLDB4M2IsMHgwMCwweDBmLDB4ODEsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGQwNjAsIDAsIHsweGY4LDB4MTAsMHhiMiwweDAwLDB4NGMsMHg4MCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMDcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyZSwweGIwLDB4MGIsMHhlOCwweDAyLDB4ZTksMHgwMCwweDNlLDB4OTAsMHgwMiB9fSwKLSB7MTYsIDB4ZDA4MCwgMCwgezB4ODEsMHgwOCwweGU0LDB4MTIsMHg3OCwweDAwLDB4YmEsMHgwMCwweDJkLDB4YjAsMHg4OSwweGU4LDB4MjIsMHhmOCwweDBjLDB4YmEgfX0sCi0gezE2LCAweGQwOTAsIDAsIHsweDAwLDB4NmUsMHg4MCwweDAzLDB4YzUsMHgwMywweDMwLDB4MDAsMHhiYSwweDAwLDB4MjIsMHhhOCwweDA4LDB4YTAsMHgyMiwweDhhIH19LAotIHsxNiwgMHhkMGEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhlOCB9fSwKLSB7MTYsIDB4ZDBiMCwgMCwgezB4MWIsMHgzMSwweDEyLDB4OGMsMHhjNCwweGEzLDB4OTIsMHgyYywweDQwLDB4ODgsMHgzNCwweDA2LDB4OGUsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweGQwYzAsIDAsIHsweDJjLDB4ZjAsMHgxOSwweDMxLDB4YTIsMHhjYywweDA0LDB4YjMsMHgwMCwweDI4LDB4ODAsMHgwMSwweDM4LDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhkMGQwLCAwLCB7MHhiMywweDgwLDB4MjAsMHhlMCwweDBhLDB4YjAsMHgxMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDBlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDE0LDB4MmQsMHg0MiwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDgxLDB4MjcgfX0sCi0gezE2LCAweGQwZjAsIDAsIHsweGUwLDB4MTgsMHg2MCwweDAyLDB4NTgsMHgxOCwweGI3LDB4MjIsMHgyZCwweDgwLDB4MDksMHg3MCwweDIyLDB4ZGMsMHgwMCwweGI3IH19LAotIHsxNiwgMHhkMTAwLCAwLCB7MHgwMCwweDJkLDB4ODAsMHgwYiwweDNiLDB4MDIsMHgxZCwweGQwLDB4YmYsMHg4MCwweDI4LDB4YzAsMHg4YSwweGYyLDB4MDIsMHhhMCB9fSwKLSB7MTYsIDB4ZDExMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDgwLDB4ZjcsMHhhMCwweDM5LDB4ZTIgfX0sCi0gezE2LCAweGQxMjAsIDAsIHsweDBmLDB4NjgsMHgwMywweDllLDB4MDAsMHhlZCwweDg0LDB4M2QsMHhlMiwweDQ0LDB4NzgsMHgwMywweDllLDB4MDAsMHhmNywweGI0IH19LAotIHsxNiwgMHhkMTMwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg2OCwweDAzLDB4ZDYsMHgwMCwweGY2LDB4ODAsMHgzOSwweGUwLDB4MGYsMHg3OSwweDAzLDB4NWUsMHg5MCB9fSwKLSB7MTYsIDB4ZDE0MCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4NjAsMHgyZSwweDdjLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxNTAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDAwLDB4ZmIsMHg0MiwweDNlLDB4YzgsMHgwZiwweGEwLDB4MDMsMHhlZCwweGEwLDB4YmIsMHgwMCwweDM4IH19LAotIHsxNiwgMHhkMTYwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweDY4LDB4MDAsMHhmYiwweDExLDB4M2UsMHg0MCwweDA5LDB4YjAsMHg0MSwweGVjLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZDE3MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHhiMiwweDBiLDB4ZWQsMHg4MCwweDNiLDB4MDAsMHgzNiwweDQwLDB4MGQsMHhiMCwweDIzLDB4NDIgfX0sCi0gezE2LCAweGQxODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgwMCwweGNmLDB4ZDAsMHgzMywweGU0IH19LAotIHsxNiwgMHhkMTkwLCAwLCB7MHg0ZiwweGY5LDB4MDMsMHhkZSwweDQwLDB4ZGMsMHg4MCwweDM2LDB4ZTQsMHgwYywweGI5LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg5MCB9fSwKLSB7MTYsIDB4ZDFhMCwgMCwgezB4MzcsMHhlNSwweDBmLDB4ZjgsMHg0MywweGZlLDB4MDAsMHhjZiwweDkyLDB4M2YsMHhhNCwweDBmLDB4NzgsMHgwMywweDFmLDB4MDAgfX0sCi0gezE2LCAweGQxYjAsIDAsIHsweGM1LDB4ODAsMHgzMywweDYwLDB4MGMsMHhmOCwweDIwLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMWMwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDBmLDB4MTAsMHgyMSwweDgxLDB4MGIsMHg2MCwweDAzLDB4ODQsMHgwMCwweDhiLDB4MDgsMHgyMSB9fSwKLSB7MTYsIDB4ZDFkMCwgMCwgezB4NjAsMHgwYSwweDdiLDB4MDMsMHg5OCwweDAwLDB4OGIsMHgxMCwweDI5LDB4ODQsMHgwZSwweDY0LDB4MjIsMHhkYywweDQwLDB4ZDcgfX0sCi0gezE2LCAweGQxZTAsIDAsIHsweDAyLDB4MmQsMHg4NCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NSwweDE4LDB4MjEsMHg0MCwweDBhLDB4ZjAsMHgyMiwweGFhIH19LAotIHsxNiwgMHhkMWYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDE0LDB4NjksMHhjMCB9fSwKLSB7MTYsIDB4ZDIwMCwgMCwgezB4MWEsMHg2MCwweDEyLDB4ZmMsMHgwMSwweGE0LDB4MTAsMHgyZCwweGMwLDB4MGEsMHg1MiwweDAyLDB4NDUsMHg0MCwweDg3LDB4MGMgfX0sCi0gezE2LCAweGQyMTAsIDAsIHsweDIxLDB4ODAsMHgxYiwweDYwLDB4ODIsMHhkNCwweDAwLDB4ODYsMHgwMywweDI1LDB4ZTAsMHgxYiwweDcwLDB4MDIsMHg1YywweDQwIH19LAotIHsxNiwgMHhkMjIwLCAwLCB7MHg5ZCwweDAwLDB4MjksMHg0MCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDIzMCwgMCwgezB4MjAsMHgxNCwweGNkLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCwweDFiLDB4MjAsMHgyMiwweDhjLDB4MTEsMHhhMywweDAwLDB4NjggfX0sCi0gezE2LCAweGQyNDAsIDAsIHsweGY2LDB4MGEsMHgzYywweDA2LDB4ODIsMHgwMCwweDgzLDB4ODAsMHgyOCwweDg0LDB4MGEsMHg4YywweDgyLDB4Y2MsMHg0NCwweDkyIH19LAotIHsxNiwgMHhkMjUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0ZSwweDAwLDB4OTEsMHgwMCwweDI4LDB4NDAsMHgwYSwweDMwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZDI2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZSwweDIyLDB4ZWYsMHgwNCwweGJhLDB4YzAgfX0sCi0gezE2LCAweGQyNzAsIDAsIHsweDBmLDB4MTQsMHg5MywweGVjLDB4MDIsMHhmMSwweGMzLDB4M2UsMHhmMCwweDBlLDB4OTAsMHg4MywweDY2LDB4MDAsMHhjZiwweGQyIH19LAotIHsxNiwgMHhkMjgwLCAwLCB7MHgzMiwweDUwLDB4MGYsMHg5YywweDAzLDB4Y2IsMHgwMCwweGM5LDB4ODAsMHgzZSwweDI4LDB4MGYsMHhiMCwweDAzLDB4NGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDI5MCwgMCwgezB4ZDEsMHhjMCwweGFhLDB4YzAsMHgwYywweDcxLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDIwLDB4ZGIsMHgwMCwweDI2LDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlYywweDA4LDB4MWIsMHgwMCwweDM2IH19LAotIHsxNiwgMHhkMmIwLCAwLCB7MHhjMCwweDBmLDB4ODYsMHgwMSwweGU1LDB4NDAsMHhmYiwweDAyLDB4M2EsMHg0OCwweDBlLDB4OTQsMHgwMywweGVjLDB4ODAsMHhmMSB9fSwKLSB7MTYsIDB4ZDJjMCwgMCwgezB4ODQsMHgzZSwweDAwLDB4NGYsMHhiMCwweDAzLDB4YWQsMHhjMCwweGViLDB4MjAsMHgzNiwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfX0sCi0gezE2LCAweGQyZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGNmLDB4MDAsMHgzZiwweDYwIH19LAotIHsxNiwgMHhkMmUwLCAwLCB7MHgwYywweGUwLDB4ODMsMHgzZSwweDgwLDB4ZWQsMHgwOCwweDMzLDB4ZDAsMHg4ZiwweDUwLDB4MDMsMHg5ZSwweDAwLDB4ZGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDJmMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4YzAsMHgwMywweDMwLDB4MDAsMHhjYywweDEwLDB4MzMsMHg2OCwweDBjLDB4ZjAsMHgwMywweDNjLDB4ODQgfX0sCi0gezE2LCAweGQzMDAsIDAsIHsweDhkLDB4OTAsMHgzMCwweDQwLDB4MGMsMHhmMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMzEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyYywweGY0LDB4MDgsMHhhOCwweDYyLDB4MGMsMHg4MCwweDhiLDB4ODAsMHgyYSB9fSwKLSB7MTYsIDB4ZDMyMCwgMCwgezB4NjAsMHgwZiwweDljLDB4MDIsMHgyZSwweDAwLDB4OGIsMHgwMCwweDIwLDB4NjAsMHgwZCwweDk4LDB4MDIsMHgyYywweDgwLDB4ZDggfX0sCi0gezE2LCAweGQzMzAsIDAsIHsweDAwLDB4MTQsMHg0MCwweDA4LDB4MzQsMHgxMiwweDJlLDB4MDAsMHg4YiwweDgyLDB4MzIsMHg0MCwweDBkLDB4YjAsMHgwMywweDYwIH19LAotIHsxNiwgMHhkMzQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhkMCB9fSwKLSB7MTYsIDB4ZDM1MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MmMsMHgwMCwweDhhLDB4ODQsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZTQsMHhhMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGQzNjAsIDAsIHsweDIyLDB4NjIsMHgwYSwweDk4LDB4MDIsMHgyOCwweDAwLDB4ODksMHgwMCwweDIyLDB4MDAsMHgwYSwweGIxLDB4MDYsMHgyYywweDAwIH19LAotIHsxNiwgMHhkMzcwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDM4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDIsMHhhMywweDAwLDB4MmMsMHhjMSwweDA4LDB4MjAsMHgwMiwweDBjLDB4MDIsMHg4YiwweDAwLDB4MjggfX0sCi0gezE2LCAweGQzOTAsIDAsIHsweGMyLDB4MGEsMHgwMCwweDAyLDB4NDQsMHgxMCwweDgzLDB4MTAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDA2LDB4MGMsMHgwMCwweDkxIH19LAotIHsxNiwgMHhkM2EwLCAwLCB7MHgwNCwweGFhLDB4MDAsMHgyOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YTEsMHgwMSwweDIwLDB4NDAsMHgwOSwweGIwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4ZDNiMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4OGYsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGQzYzAsIDAsIHsweDJjLDB4YTAsMHgwMywweDI5LDB4NDAsMHhhOCwweDQwLDB4MzIsMHhjYywweDhiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhjZiwweDQwIH19LAotIHsxNiwgMHhkM2QwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMiwweDQwLDB4MGMsMHhiMCwweDAzLDB4MmMsMHgwNCB9fSwKLSB7MTYsIDB4ZDNlMCwgMCwgezB4ZWIsMHgwMCwweGIyLDB4NDAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGUwLDB4MDMsMHhmYywweDgwLDB4ZmYsMHgyOCwweDNkIH19LAotIHsxNiwgMHhkNDAwLCAwLCB7MHhjMCwweDBiLDB4YzEsMHgwMywweGIwLDB4MTQsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBkLDB4ZDAsMHgwMywweGRjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgzNywweDQwLDB4MGYsMHhmMCwweDIxLDB4ZmMsMHgwMCwweDFkLDB4MDAsMHg3YiwweDQwLDB4OGYsMHhmMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGQ0MjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGRmLDB4MDAsMHgzMSwweGEwIH19LAotIHsxNiwgMHhkNDMwLCAwLCB7MHg0ZCwweGYwLDB4NDMsMHgzMiwweDAwLDB4Y2UsMHgxNCwweDFiLDB4NjgsMHgwZSwweGRhLDB4MjMsMHhiMiwweGMwLDB4MmYsMHgwMCB9fSwKLSB7MTYsIDB4ZDQ0MCwgMCwgezB4M2YsMHhjMiwweDJjLDB4ZTgsMHgwMywweDNjLDB4NDAsMHhmZCwweDA4LDB4M2IsMHhjOCwweDRjLDB4ZjAsMHg4MywweDNjLDB4YTAgfX0sCi0gezE2LCAweGQ0NTAsIDAsIHsweGNmLDB4MDAsMHgzMywweGM0LDB4MGMsMHhmMywweDA3LDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDYwLCAwLCB7MHg4MCwweDEwLDB4ZTIsMHgwMCwweDhmLDB4YzAsMHgyMiwweGEwLDB4MDgsMHhmZCwweDQyLDB4MmYsMHgwMCwweDhiLDB4NzAsMHgyMiB9fSwKLSB7MTYsIDB4ZDQ3MCwgMCwgezB4MWUsMHg0OCwweDg5LDB4MDIsMHgyNywweGMwLDB4OGYsMHg1YSwweDJlLDB4NTAsMHg0OCwweDMwLDB4MDIsMHhiZCwweGMwLDB4YmQgfX0sCi0gezE2LCAweGQ0ODAsIDAsIHsweDQwLDB4MjMsMHhjNSwweDQ4LDB4ZjQsMHg4MiwweDNkLDB4MmMsMHg4NywweDcwLDB4MjIsMHhjMCwweDA4LDB4ZjEsMHgwMywweGUwIH19LAotIHsxNiwgMHhkNDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGUwLDB4MDAsMHg5MywweDEwLDB4MjYsMHg4MSB9fSwKLSB7MTYsIDB4ZDRhMCwgMCwgezB4NDksMHgzMCwweDAyLDB4ODAsMHg0MCwweDgzLDB4MjAsMHgyOCwweDQwLDB4MGEsMHgxMCwweDAyLDB4ODAsMHgwMCwweGEzLDB4MjQgfX0sCi0gezE2LCAweGQ0YjAsIDAsIHsweDJjLDB4Y2EsMHgwOCwweDMyLDB4ODIsMHgwYywweDAwLDB4OTEsMHgyOCwweDIwLDB4Y2EsMHgxYiwweDMyLDB4MDIsMHgwYywweDg4IH19LAotIHsxNiwgMHhkNGMwLCAwLCB7MHg4MywweDA5LDB4MjAsMHhjOCwweDA5LDB4MzIsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDRkMCwgMCwgezB4YzAsMHgxNSwweGEzLDB4MTQsMHg4YiwweDA0LDB4MjYsMHg4OSwweDA4LDB4YjAsMHgwMiwweGFjLDB4MjIsMHg4YiwweDg4LDB4MmEgfX0sCi0gezE2LCAweGQ0ZTAsIDAsIHsweDIwLDB4MDgsMHg5OCwweDgyLDB4YTYsMHgxMCwweGFiLDB4MDAsMHgyZSwweGNhLDB4MDgsMHhiMCwweDgyLDB4YWMsMHgwMCwweGI5IH19LAotIHsxNiwgMHhkNGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgyOSwweGIwLDB4MGEsMHgyYywweDAxLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOSwweGIwLDB4MjIsMHhmMCB9fSwKLSB7MTYsIDB4ZDUwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMywweDAwLDB4ZGIsMHgwMCwweDM0LDB4ZTIgfX0sCi0gezE2LCAweGQ1MTAsIDAsIHsweDBkLDB4YjAsMHgwMywweGEzLDB4MDAsMHhjYSwweDgwLDB4YmEsMHg3MCwweDBlLDB4ODgsMHgwMywweGE2LDB4MDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhkNTIwLCAwLCB7MHgzZSwweDkwLDB4MGMsMHhiNSwweDAzLDB4MmMsMHgwMCwweGZiLDB4MTAsMHhiYSwweGMwLDB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4ZDUzMCwgMCwgezB4Y2IsMHgwMiwweDMyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1NDAsIDAsIHsweGUwLDB4MDEsMHhiMCwweDA4LDB4ZmYsMHgwMCwweGJiLDB4ZTAsMHgwZiwweDcwLDB4MDMsMHg2NSwweDAwLDB4ZjQsMHgwMCwweDM1IH19LAotIHsxNiwgMHhkNTUwLCAwLCB7MHg0MCwweDBmLDB4NDAsMHgwMywweDU0LDB4MDAsMHhkZiwweDAwLDB4M2UsMHg0MCwweDBmLDB4ZjgsMHgwMywweGVjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4ZDU2MCwgMCwgezB4MDEsMHgzZCwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4YjggfX0sCi0gezE2LCAweGQ1NzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTAsMHg0MCwweGViLDB4MDgsMHgzZSwweDgwIH19LAotIHsxNiwgMHhkNTgwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDNhLDB4NTEsMHgwZiwweDgyLDB4MDMsMHg2NCwweDIwLDB4ZGIsMHgwMCB9fSwKLSB7MTYsIDB4ZDU5MCwgMCwgezB4M2QsMHg4MiwweDBjLDB4YmMsMHgwMywweDJjLDB4MTAsMHhkYiwweDAwLDB4NzIsMHhjMCwweDBkLDB4YjEsMHgwMywweDBjLDB4MjAgfX0sCi0gezE2LCAweGQ1YTAsIDAsIHsweGQzLDB4MDAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNWIwLCAwLCB7MHhjOCwweDA1LDB4MDEsMHgwMCwweDg3LDB4YzAsMHgyZSwweGE4LDB4MDgsMHhmMSwweDEyLDB4YzUsMHg0MCwweDg4LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZDVjMCwgMCwgezB4NDAsMHgwYiwweDg0LDB4MDIsMHgyNywweDAwLDB4YWYsMHgwMCwweDJlLDB4YzAsMHgwOCwweGJjLDB4MTIsMHgzYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGQ1ZDAsIDAsIHsweDAxLDB4MjMsMHhjMCwweDI4LDB4ZjUsMHg0YSwweDNkLDB4MjgsMHhkZiwweDAwLDB4MzMsMHhjMCwweDRiLDB4ZjAsMHgwMywweDMyIH19LAotIHsxNiwgMHhkNWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4ODAsMHhhMywweDkwLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZDVmMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4YzEsMHgwMCwweDkyLDB4MDQsMHgyOCwweDAwLDB4MGIsMHgxNCwweDEyLDB4NDMsMHgwMCwweGIzLDB4MDQgfX0sCi0gezE2LCAweGQ2MDAsIDAsIHsweDJjLDB4MzAsMHgwYSwweGIwLDB4MGEsMHg4YywweDAwLDB4OTMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDNjLDB4MDYsMHgwZSwweDAxIH19LAotIHsxNiwgMHhkNjEwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDhiLDB4MzAsMHgwNiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDYyMCwgMCwgezB4MjAsMHgwMSwweDEyLDB4MDAsMHg4NywweDgwLDB4MmQsMHgyNCwweDA4LDB4NzgsMHgwMiwweGQyLDB4MDAsMHg5NSwweDgwLDB4MjEgfX0sCi0gezE2LCAweGQ2MzAsIDAsIHsweGEwLDB4MGIsMHg2OCwweDAyLDB4NWEsMHgyMCwweDg3LDB4ODAsMHgyZCwweDY2LDB4MWEsMHg3YywweDAyLDB4OWUsMHgwMCwweDg3IH19LAotIHsxNiwgMHhkNjQwLCAwLCB7MHg4MCwweDIxLDB4ZTEsMHgxOCwweDc5LDB4MDIsMHg5ZSwweDQwLDB4YjcsMHg4MCwweGExLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4ZDY1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwMCwweDAwLDB4ZTMsMHhhMCwweDNjLDB4NDAgfX0sCi0gezE2LCAweGQ2NjAsIDAsIHsweDBjLDB4MzAsMHgwMywweGM0LDB4MjIsMHhkOSwweDAwLDB4MzgsMHhkNCwweDBmLDB4MzAsMHg4MywweDY4LDB4NDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhkNjcwLCAwLCB7MHgzYywweDgwLDB4MGEsMHgzMiwweDAyLDB4OGMsMHgwMCwweGRiLDB4MDAsMHhhMiwweGM0LDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4ZDY4MCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ2OTAsIDAsIHsweDQwLDB4MGQsMHhiMCwweDAwLDB4ZmYsMHgxMCwweDNmLDB4NDAsMHgwZSwweGYwLDB4MDMsMHhmYywweDAwLDB4ZWQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhkNmEwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgxMywweGJjLDB4NDAsMHg3ZiwweDEwLDB4M2YsMHhjMSwweDJkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZDZiMCwgMCwgezB4NDAsMHgzZiwweGMyLDB4MGUsMHhmNCwweDgzLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMyLDB4MGYsMHhmMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweGQ2YzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGRiLDB4YTAsMHgzMiwweGMwIH19LAotIHsxNiwgMHhkNmQwLCAwLCB7MHgwZCwweGI3LDB4MDMsMHhlMCwweDAwLDB4Y2EsMHgwNCwweDNlLDB4ODAsMHgwZiwweGI4LDB4MDMsMHgyYywweDEwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZDZlMCwgMCwgezB4MzMsMHgwMCwweDhkLDB4YjAsMHgwMywweDJjLDB4ODAsMHhlOSwweDQwLDB4M2UsMHhkMiwweDBmLDB4YjQsMHgwMywweDJkLDB4ODAgfX0sCi0gezE2LCAweGQ2ZjAsIDAsIHsweGViLDB4MjAsMHhiMiwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNzAwLCAwLCB7MHg0OCwweDExLDB4OTAsMHgwMCwweGI3LDB4MTAsMHgxMSwweGMwLDB4MDgsMHg3MCwweDgyLDB4ZDgsMHgwYSwweDg3LDB4MDEsMHgyZCB9fSwKLSB7MTYsIDB4ZDcxMCwgMCwgezB4ODAsMHg4OSwweDcwLDB4MDMsMHhkOCwweDA4LDB4YjcsMHgwYSwweDIxLDB4NDAsMHgyYywweDcwLDB4MDIsMHgwZCwweGMwLDB4ODUgfX0sCi0gezE2LCAweGQ3MjAsIDAsIHsweDAxLDB4NzksMHhjOCwweDBiLDB4MzIsMHgwMiwweDBkLDB4MjAsMHg4ZiwweDI4LDB4MjEsMHhjMCwweDBiLDB4NzIsMHg4MiwweGQyIH19LAotIHsxNiwgMHhkNzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHg0MCwweDk2LDB4MTAsMHg5NywweDkwLDB4MjMsMHhlMCB9fSwKLSB7MTYsIDB4ZDc0MCwgMCwgezB4MDksMHg3YSwweDAyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDgyLDB4MWUsMHgwMCwweGIzLDB4YjAgfX0sCi0gezE2LCAweGQ3NTAsIDAsIHsweDIxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxZSwweDAwLDB4YTUsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDdhLDB4MDIsMHgxZSwweDgwIH19LAotIHsxNiwgMHhkNzYwLCAwLCB7MHhhNywweGIwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDc3MCwgMCwgezB4NDgsMHgxNCwweGMwLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlMiwweDA4LDB4MzAsMHgwMiwweGM2LDB4NDAsMHg5MywweDcwLDB4MmMgfX0sCi0gezE2LCAweGQ3ODAsIDAsIHsweGMwLDB4MDksMHgzYywweDAyLDB4OGUsMHgwMCwweGIzLDB4MDAsMHgyMCwweGQ4LDB4MDgsMHgxOCwweDAyLDB4MGMsMHgwMCwweDgxIH19LAotIHsxNiwgMHhkNzkwLCAwLCB7MHg5MCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MmEsMHgyYywweDEwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZDdhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhiOSwweDAwLDB4ZGEsMHgwMiwweDMzLDB4YjggfX0sCi0gezE2LCAweGQ3YjAsIDAsIHsweDBkLDB4YTAsMHgwMywweGY4LDB4MDAsMHhkZSwweGMwLDB4M2YsMHhiMCwweDRmLDB4ZWMsMHgwNiwweDM4LDB4NDAsMHhmYSwweDAwIH19LAotIHsxNiwgMHhkN2MwLCAwLCB7MHhiMywweDkwLDB4MGMsMHg2YywweDBiLDB4MjgsMHgwOCwweGVhLDB4MDEsMHg3ZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZDdkMCwgMCwgezB4ZWEsMHgwMCwweDMyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3ZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDNhLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZTgsMHgwMiwweDNlIH19LAotIHsxNiwgMHhkN2YwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4NDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ZDgwMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGQ4MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgyMCwweGY5LDB4YzAsMHgzZSwweDcwIH19LAotIHsxNiwgMHhkODIwLCAwLCB7MHgwZSwweDkwLDB4MDIsMHhlNCwweDgwLDB4YzksMHgwMCwweDMyLDB4NDIsMHgwYywweDk4LDB4ODMsMHhhNCwweDg0LDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZDgzMCwgMCwgezB4YjIsMHg2MCwweDBjLDB4OTAsMHg4MywweDI0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4MWEsMHgwMiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGQ4NDAsIDAsIHsweGMxLDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDAxLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkODUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwMCwweGI5LDB4ODEsMHgyYywweDYwLDB4MGQsMHg5NCwweGMyLDB4YzcsMHgwOCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZDg2MCwgMCwgezB4NDAsMHgwOCwweDk1LDB4YzcsMHhhNCwweDAwLDB4YjksMHgwMCwweDI4LDB4NzAsMHhhOCwweDk0LDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGQ4NzAsIDAsIHsweDA0LDB4MmUsMHg0MCwweDI4LDB4OTAsMHgyYSwweDI2LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhkODgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDQwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZDg5MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTUsMHgwMCwweDgxLDB4MDAsMHhhMCwweDQwLDB4MDksMHg5MCwweDQyLDB4ZWMsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGQ4YTAsIDAsIHsweDIyLDB4NTgsMHgwOCwweDkwLDB4YTIsMHgwNCwweDAyLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNCwweGEwIH19LAotIHsxNiwgMHhkOGIwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDhjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmUsMHhjMCwweDg5LDB4MTIsMHgwMiwweGM0LDB4ODAsMHg4MSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGQ4ZDAsIDAsIHsweDQwLDB4NjEsMHgxMCwweDQyLDB4YzUsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQ4LDB4MTgsMHg5MCwweDQyLDB4MDQsMHg4MCwweDgxIH19LAotIHsxNiwgMHhkOGUwLCAwLCB7MHgyOCwweDJjLDB4NDgsMHgwOCwweDEyLDB4ODIsMHg4NCwweGEwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwYiwweDEyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4ZDhmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGQ5MDAsIDAsIHsweDBlLDB4ODAsMHgwMywweGUwLDB4MDgsMHhjOCwweDUwLDB4MzIsMHgxNCwweDBkLDB4ODAsMHgxNywweGU4LDB4MDQsMHhmOCwweDUwIH19LAotIHsxNiwgMHhkOTEwLCAwLCB7MHgzMiwweDE0LDB4NGMsMHgwNSwweDBiLDB4MjEsMHg0MCwweGM4LDB4MjAsMHgzZSwweDAwLDB4MGMsMHg4NywweDAzLDB4YTEsMHhjMiB9fSwKLSB7MTYsIDB4ZDkyMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MTQsMHg4ZiwweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5MzAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDAwLDB4ZjEsMHgxMCwweDNkLDB4NDAsMHgwZiwweDkxLDB4MDIsMHhkNCwweDQyLDB4ZmQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhkOTQwLCAwLCB7MHg1MSwweDBlLDB4NTQsMHgxMywweGI1LDB4MDAsMHhmOSwweDEwLDB4MzUsMHg0NCwweDJmLDB4ZDAsMHgwMywweGU0LDB4NTAsMHhmZCB9fSwKLSB7MTYsIDB4ZDk1MCwgMCwgezB4MjgsMHgzZSwweDRlLDB4MGYsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MzgsMHgzZSwweDQ0LDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGQ5NjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjQsMHgwMCwweGZkLDB4MDAsMHgzZCwweDQwIH19LAotIHsxNiwgMHhkOTcwLCAwLCB7MHgyYywweGQwLDB4MDMsMHhiNiwweDAwLDB4ZjksMHg4MiwweDNlLDB4NDAsMHgwYywweGQwLDB4MDMsMHhmNCwweDAwLDB4ZjksMHg4MCB9fSwKLSB7MTYsIDB4ZDk4MCwgMCwgezB4MzMsMHg3MCwweDBjLDB4NTAsMHgwMywweDM0LDB4MDAsMHhjOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4ZGEsMHgwMywweDE2LDB4ODAgfX0sCi0gezE2LCAweGQ5OTAsIDAsIHsweGM5LDB4NDAsMHgzZSwweDYyLDB4MmMsMHg5OCwweDgzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjgsMHgwMCwweGI4LDB4NTAsMHgyNiB9fSwKLSB7MTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YjgsMHgwMCwweDJhLDB4MzQsMHgyYSwweGFhLDB4MGEsMHgyMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGQ5YzAsIDAsIHsweGMwLDB4MmUsMHgyYSwweDA4LDB4ODAsMHgyMiwweDIxLDB4MDAsMHhhOCwweDgwLDB4MmUsMHgwMCwweDA4LDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhkOWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZDllMCwgMCwgezB4NDgsMHgxMCwweDA2LDB4OGQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4NDAgfX0sCi0gezE2LCAweGQ5ZjAsIDAsIHsweDJjLDB4NDgsMHgwOCwweDEwLDB4ODIsMHg0NCwweDAwLDB4ODEsMHg2MCwweDJjLDB4NDAsMHgyOCwweDE0LDB4MGEsMHgwNCwweDQwIH19LAotIHsxNiwgMHhkYTAwLCAwLCB7MHg4MSwweDIwLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGExMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4NDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4YjAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDI4LDB4MmUgfX0sCi0gezE2LCAweGRhMjAsIDAsIHsweDUwLDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDYwLDB4MGIsMHgxMiwweDQyLDB4NjQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhkYTMwLCAwLCB7MHgwMCwweDJjLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTksMHgwMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZGE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDIgfX0sCi0gezE2LCAweGRhNTAsIDAsIHsweDBjLDB4OTAsMHgwMywweGE3LDB4NDAsMHhmOSwweDQwLDB4M2UsMHg3MCwweDBjLDB4OTgsMHgwMiwweGU1LDB4NDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhkYTYwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5OCwweDAzLDB4NjQsMHgwNiwweGM5LDB4MDEsMHgyZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCB9fSwKLSB7MTYsIDB4ZGE3MCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4ODMsMHhlNiwweDEwLDB4ZjksMHgwMCwweDM2IH19LAotIHsxNiwgMHhkYTkwLCAwLCB7MHg2OCwweDBmLDB4OWMsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHg5MywweGE0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZGFhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDgzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGRhYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDA0IH19LAotIHsxNiwgMHhkYWMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHg0MCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFkMCwgMCwgezB4M2UsMHgwMiwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGRhZTAsIDAsIHsweGM4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYWYwLCAwLCB7MHgyOCwweDE1LDB4M2EsMHgwMCwweGJlLDB4MDIsMHgyZiwweGIwLDB4MDgsMHg2OCwweDEyLDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyYSB9fSwKLSB7MTYsIDB4ZGIwMCwgMCwgezB4ODAsMHgwYiwweGUwLDB4NDIsMHhmYiwweDIwLDB4YmEsMHgwMCwweDJmLDB4OTEsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGRiMTAsIDAsIHsweDAwLDB4MjYsMHg4MCwweDA4LDB4ZWUsMHgwYSwweDM4LDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MCwweDBiLDB4YTAsMHgwMiwweDhhIH19LAotIHsxNiwgMHhkYjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQyLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiB9fSwKLSB7MTYsIDB4ZGIzMCwgMCwgezB4MjgsMHgzOCwweDBhLDB4NDgsMHgwMCwweDgzLDB4MDQsMHgyMiwweGMwLDB4MGIsMHgxMCwweDAyLDB4Y2QsMHg4MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGRiNDAsIDAsIHsweDJlLDB4YzAsMHgwOCwweDFjLDB4MDIsMHgyNCwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDM0LDB4MTIsMHgwZSwweDQwIH19LAotIHsxNiwgMHhkYjUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgxMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGI2MCwgMCwgezB4YTAsMHgwMSwweDExLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDA4LDB4NzAsMHhhMiwweDRlLDB4MDAsMHg4ZiwweGIwLDB4MjEgfX0sCi0gezE2LCAweGRiNzAsIDAsIHsweGNjLDB4MGIsMHg2MCwweDEyLDB4ZGMsMHgxMCwweGI3LDB4MzAsMHgyZCwweGMwLDB4MDgsMHhkMCwweDgyLDB4MTQsMHg4MCwweGI3IH19LAotIHsxNiwgMHhkYjgwLCAwLCB7MHgxMiwweDI1LDB4YzgsMHgyOCwweDYwLDB4MDIsMHgxNCwweDAwLDB4ODcsMHhiMiwweDIxLDB4Y2MsMHgwYiwweDMxLDB4MDIsMHhhOCB9fSwKLSB7MTYsIDB4ZGI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjcsMHg4MCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweGRiYTAsIDAsIHsweDBjLDB4MzgsMHgwMywweDU2LDB4MDAsMHhjNywweDkwLDB4YjEsMHhlNCwweDBmLDB4NzgsMHgwMywweGRlLDB4MDAsMHhmNywweDkwIH19LAotIHsxNiwgMHhkYmIwLCAwLCB7MHgxZiwweDYwLDB4MmMsMHg0OCwweDBiLDB4MTYsMHhhMCwweGY3LDB4ODAsMHgzYywweGY0LDB4MGMsMHgzOCwweDAzLDB4MWUsMHgwMCB9fSwKLSB7MTYsIDB4ZGJjMCwgMCwgezB4Y2YsMHhhMCwweGIxLDB4ZTgsMHgwZiwweDdiLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiZDAsIDAsIHsweDA4LDB4MGQsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwYiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZjMsMHgyMSwweDNlIH19LAotIHsxNiwgMHhkYmUwLCAwLCB7MHhjOCwweDA3LDB4YjAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDIwLDB4M2YsMHg0MCwweDBmLDB4ODAsMHgwMywweGU0LDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZGJmMCwgMCwgezB4MDAsMHgzNiwweGQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwOCwweGZiLDB4NDIsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGRjMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjAsMHg4MCwweGNmLDB4ODAsMHgzMSwweGUxIH19LAotIHsxNiwgMHhkYzEwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhkYSwweDEwLDB4ZWYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGQ4LDB4MDMsMHhmZSwweDEwLDB4ZmYsMHg4MiB9fSwKLSB7MTYsIDB4ZGMyMCwgMCwgezB4M2YsMHhlMCwweDRjLDB4ZDgsMHgxYiwweDE2LDB4MjAsMHhjZiwweDgwLDB4M2YsMHhlMCwweDRjLDB4ZDgsMHgzMCwweGVlLDB4NDAgfX0sCi0gezE2LCAweGRjMzAsIDAsIHsweGZmLDB4YzAsMHhiMywweGY0LDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYzQwLCAwLCB7MHhhOCwweDAxLDB4OTgsMHgyMCwweDgzLDB4NDAsMHgyMSwweGMwLDB4MDgsMHg3MSwweDAyLDB4ZGMsMHg4NCwweDg3LDB4MjAsMHgyZCB9fSwKLSB7MTYsIDB4ZGM1MCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkOSwweDYwLDB4ZjcsMHgwMCwweDJkLDB4YzAsMHgwOCwweGYwLDB4ODIsMHgxNCwweDA0LDB4ODcgfX0sCi0gezE2LCAweGRjNjAsIDAsIHsweDAwLDB4MmQsMHhjMCwweDA4LDB4ZjAsMHgwMywweDFlLDB4MDAsMHhiNywweDIwLDB4MjEsMHhjMCwweDhiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHhkYzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGIwLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGM4MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZjUsMHgwNCwweDI3LDB4MDAsMHgyZCwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MDAgfX0sCi0gezE2LCAweGRjOTAsIDAsIHsweDJjLDB4NTAsMHgwOCwweDQwLDB4MDIsMHgxNCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwOCwweDUwLDB4MDIsMHg1YywweDA0IH19LAotIHsxNiwgMHhkY2EwLCAwLCB7MHhiNywweDAwLDB4YTEsMHhjMCwweDhiLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGNiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHg4MCwweDAwLDB4MDAsMHg4MCwweDA4LDB4MzAsMHgwMiwweGNlLDB4MDAsMHg4MywweGMwLDB4MmMgfX0sCi0gezE2LCAweGRjYzAsIDAsIHsweGQwLDB4NGIsMHgzMCwweDAyLDB4Y2UsMHgwMCwweGFiLDB4MDIsMHgyYywweDQwLDB4NDgsMHhiYywweDAyLDB4MDQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhkY2QwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwMCwweDA4LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZGNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MywweDQwLDB4YzgsMHgwMCwweDMwLDB4YzAgfX0sCi0gezE2LCAweGRjZjAsIDAsIHsweDJjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhlZiwweDg4LDB4M2YsMHhlNiwweDA3LDB4YjEsMHg4MywweGUxLDB4MDAsMHhiZiwweDAwIH19LAotIHsxNiwgMHhkZDAwLCAwLCB7MHgzZSwweGUwLDB4MGMsMHhiOCwweDAzLDB4MzQsMHgwMCwweGNmLDB4MDAsMHgzZiwweGMwLDB4MmMsMHhiMCwweDAzLDB4NjgsMHgxMCB9fSwKLSB7MTYsIDB4ZGQxMCwgMCwgezB4ZmYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkMjAsIDAsIHsweDgwLDB4MDAsMHhlNCwweDAwLDB4ZjEsMHg0MCwweDNlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhlZCwweDQwLDB4ZmIsMHgwOCwweDNlIH19LAotIHsxNiwgMHhkZDMwLCAwLCB7MHhjMCwweDBmLDB4YTAsMHgwMywweGU1LDB4MjAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBkLDB4YjAsMHg4MywweGU0LDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZGQ0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzQsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGRkNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGNhLDB4MDAsMHgzMywweGUwIH19LAotIHsxNiwgMHhkZDYwLCAwLCB7MHg0ZSwweGYwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGU4LDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ3MCwgMCwgezB4YjEsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM0LDB4MDAsMHhlZiwweDAwLDB4YjMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDM4LDB4MDAgfX0sCi0gezE2LCAweGRkODAsIDAsIHsweGNmLDB4MDAsMHgzZCwweGMwLDB4MGEsMHhmMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZDkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgyMiwweDg4LDB4OTAsMHgyMiwweGUwLDB4MDgsMHgzYywweDAyLDB4MmUsMHgwOCwweGJiLDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4ZGRhMCwgMCwgezB4YzAsMHgwYiwweGEwLDB4MDIsMHg2NiwweDAwLDB4YmIsMHgwMCwweDIyLDB4YTAsMHgwOCwweGE5LDB4MDIsMHgyNCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGRkYjAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDI4LDB4MmMsMHgwMiwweGEyLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGEwIH19LAotIHsxNiwgMHhkZGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIyLDB4MDAsMHg5OCwweDAwLDB4MjIsMHhjOCB9fSwKLSB7MTYsIDB4ZGRkMCwgMCwgezB4MGEsMHg5OCwweDAyLDB4MjcsMHgwNCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZTIsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGRkZTAsIDAsIHsweDIyLDB4ZTIsMHgwOCwweGIwLDB4MDIsMHhhNCwweDAwLDB4YWIsMHgwMCwweDIwLDB4YzAsMHgwYSwweDg4LDB4ODIsMHgyMywweDAwIH19LAotIHsxNiwgMHhkZGYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGUwMCwgMCwgezB4MDgsMHgxNCwweDA0LDB4MDAsMHg5MSwweDQwLDB4MjIsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmMgfX0sCi0gezE2LCAweGRlMTAsIDAsIHsweGMwLDB4NGIsMHgyOCwweDIyLDB4NDAsMHgwNCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MjgsMHgzMCwweDBhLDB4MDQsMHgwNCwweGIzIH19LAotIHsxNiwgMHhkZTIwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgwOCwweDAwLDB4MDIsMHg4NCwweDIwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4ZGUzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2MCwweDAwLDB4ZGEsMHg0MCwweGIyLDB4ODAgfX0sCi0gezE2LCAweGRlNDAsIDAsIHsweDBlLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4YTAsMHgwMywweGUwLDB4MDksMHhmZiwweDAwIH19LAotIHsxNiwgMHhkZTUwLCAwLCB7MHgzMiwweDQwLDB4MDgsMHhhMCwweDBiLDB4MzQsMHgwMCwweGViLDB4MDAsMHgzMSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjgsMHg4MCB9fSwKLSB7MTYsIDB4ZGU2MCwgMCwgezB4YzcsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlNzAsIDAsIHsweGEwLDB4MTUsMHhkMCwweDAwLDB4ZWMsMHgyMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MGIsMHhmYywweDEwLDB4ZmYsMHgwMSwweDNmIH19LAotIHsxNiwgMHhkZTgwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NGYsMHhjMCwweDAxLDB4ZjAsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGRlYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGNjLDB4OTAsMHgzNywweDIwIH19LAotIHsxNiwgMHhkZWIwLCAwLCB7MHgwZSwweGYwLDB4MTMsMHhiZCwweDA0LDB4ZDQsMHhjMSwweDMzLDB4MmMsMHg0YywweGQ5LDB4MjMsMHgzMiwweDYwLDB4ZmYsMHgyMCB9fSwKLSB7MTYsIDB4ZGVjMCwgMCwgezB4M2QsMHhlMCwweDRmLDB4YzEsMHgwMywweGI2LDB4NDAsMHhjZCwweDAwLDB4MzcsMHhlMCwweDBjLDB4ZTIsMHg4YiwweDEwLDB4YzAgfX0sCi0gezE2LCAweGRlZDAsIDAsIHsweGNkLDB4MDAsMHgzMywweGM2LDB4MGYsMHhkOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZWUwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwOCwweDhhLDB4MjAsMHgyMiwweDAwLDB4MDgsMHhiNywweDAyLDB4MmQsMHgwMCwweDhhLDB4MDAsMHhiNiB9fSwKLSB7MTYsIDB4ZGVmMCwgMCwgezB4M2MsMHgwOCwweDk5LDB4MDIsMHgyNywweDg0LDB4YmYsMHg2OCwweDJlLDB4ODIsMHgwYiwweDAxLDB4MDIsMHgyNCwweDQwLDB4ZDkgfX0sCi0gezE2LCAweGRmMDAsIDAsIHsweDQyLDB4MjAsMHhjMCwweDhhLDB4YWMsMHgwMiwweDJkLDB4YzIsMHg4MiwweDQ4LDB4YTIsMHhkMCwweDBiLDB4ODIsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkZjEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4OCwweDA0LDB4MjYsMHg4MCB9fSwKLSB7MTYsIDB4ZGYyMCwgMCwgezB4MmEsMHgzMCwweGMyLDB4YTUsMHg4MCwweGE5LDB4MjEsMHgyOCwweDAwLDB4OGEsMHgwMCwweDAyLDB4MDAsMHgwMCwweGEzLDB4MTAgfX0sCi0gezE2LCAweGRmMzAsIDAsIHsweDJjLDB4YzgsMHgwYiwweDAwLDB4MDIsMHhjNCwweDkwLDB4ODMsMHg0MiwweDI0LDB4YzEsMHgwOCwweDAwLDB4MDIsMHg0MCwweDg4IH19LAotIHsxNiwgMHhkZjQwLCAwLCB7MHhhMywweDYwLDB4YTgsMHhjMCwweDBiLDB4MDAsMHhjMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGY1MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDYsMHg4YSwweDAwLDB4MjIsMHhlMCwweDQ4LDB4YjAsMHgwMiwweDJlLDB4MDIsMHhhYiwweDgwLDB4MmUgfX0sCi0gezE2LCAweGRmNjAsIDAsIHsweDIwLDB4NGEsMHg4YywweDAyLDB4MjYsMHgyMCwweGJiLDB4MDAsMHg2ZSwweDgwLDB4MGIsMHgzMCwweGMyLDB4NDYsMHgwNCwweDliIH19LAotIHsxNiwgMHhkZjcwLCAwLCB7MHgwYSwweGEyLDB4YzAsMHgwYSwweDgwLDB4MTIsMHg2YywweDQwLDB4YTgsMHgwMCwweDJhLDB4YzAsMHgwYiwweDhjLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ZGY4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzEsMHgwOSwweDM2LDB4NjEgfX0sCi0gezE2LCAweGRmOTAsIDAsIHsweDBlLDB4MzIsMHgwMywweGFiLDB4MjAsMHhmOCwweDg0LDB4M2EsMHg3OCwweDJlLDB4OTgsMHgwMywweDI2LDB4MDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhkZmEwLCAwLCB7MHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTIsMHgwMCwweGM5LDB4NDAsMHgzNiwweGUwLDB4MGMsMHhiNCwweDAzLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4ZGZiMCwgMCwgezB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZiwweDg4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmYzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGZhLDB4MTMsMHhmOCwweDEwLDB4ZGMsMHgwNCwweDI3IH19LAotIHsxNiwgMHhkZmQwLCAwLCB7MHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDksMHgwMywweGIwLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZGZlMCwgMCwgezB4MDEsMHgzZiwweGYwLDB4MGYsMHhmMCwweDIzLDB4YjIsMHgwMCwweGQ0LDB4YTAsMHgzNywweGMwLDB4MGYsMHhjMCwweDBiLDB4ZjggfX0sCi0gezE2LCAweGRmZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgyMCwweGViLDB4MTAsMHhmMiwweDAwIH19LAotIHsxNiwgMHhlMDAwLCAwLCB7MHgwZSwweGI0LDB4MDMsMHgyMSwweDgwLDB4YzksMHg0MCwweDNhLDB4NDgsMHgwZiwweDkwLDB4MTMsMHhlMSwweDIwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZTAxMCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODQsMHgwMywweDI0LDB4MDAsMHhmYiwweDAxLDB4MzYsMHhlMCwweDBjLDB4NzQsMHgwYiwweDljLDB4MDAgfX0sCi0gezE2LCAweGUwMjAsIDAsIHsweGNmLDB4MDAsMHgzMiwweGUwLDB4MGYsMHg4NCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMDMwLCAwLCB7MHhjOCwweDA1LDB4MWUsMHgwMCwweDhiLDB4ODAsMHgyMCwweDQwLDB4MDgsMHhiOCwweDAyLDB4ODMsMHg4MCwweDgxLDB4YTAsMHgyMiB9fSwKLSB7MTYsIDB4ZTA0MCwgMCwgezB4NzgsMHgwYiwweDkxLDB4ODMsMHhlMywweDAwLDB4YmYsMHgwMCwweDBlLDB4YzEsMHgwYSwweGI0LDB4MDMsMHg2NCwweDA0LDB4YjkgfX0sCi0gezE2LCAweGUwNTAsIDAsIHsweDUwLDB4MzIsMHhjMCwweDBhLDB4YjIsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhkNCwweDBiLDB4ODgsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlMDYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4NDIsMHhhMCwweDgwLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA3MCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MGQsMHgwNiwweDgwLDB4ODAsMHgyYSwweGQwLDB4MDMsMHgwMCwweDAyLDB4YzgsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGUwODAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDM2LDB4MDIsMHg0MCwweDAwLDB4YjksMHgwMiwweDIyLDB4YzIsMHg4YiwweDI2LDB4MDIsMHgwYywweDEwIH19LAotIHsxNiwgMHhlMDkwLCAwLCB7MHgwMSwweDAyLDB4MjQsMHhjMCwweDRiLDB4YTEsMHgwMiwweGY4LDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDgsMHg4ZSwweDgwLDB4MjEsMHgyMSwweDA4LDB4MjgsMHhjMiwweDllLDB4MDAsMHg4ZSwweDgwLDB4MjEgfX0sCi0gezE2LCAweGUwYjAsIDAsIHsweDYwLDB4MGIsMHg3OCwweDAyLDB4OWUsMHgyMCwweGI3LDB4ODIsMHgyZiwweGExLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweGI1IH19LAotIHsxNiwgMHhlMGMwLCAwLCB7MHg5MSwweGExLDB4ZTAsMHgwYiwweDI5LDB4MDIsMHgzMiwweDQ0LDB4ODYsMHg4MCwweGE1LDB4ZTAsMHgwYiwweDRjLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTEsMHgwMCwweDIyLDB4ODAgfX0sCi0gezE2LCAweGUwZTAsIDAsIHsweDBlLDB4MDAsMHgwYiwweDI0LDB4MDAsMHhjMCwweDQ0LDB4MjgsMHhhZCwweDBmLDB4MjAsMHgwMiwweGM4LDB4MDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhlMGYwLCAwLCB7MHgxYywweGMwLDB4MGMsMHgwMSwweDAzLDB4NDgsMHg0YywweGYyLDB4MDQsMHgzMCwweGMwLDB4MGYsMHgxNSwweDAzLDB4ODAsMHg0MCB9fSwKLSB7MTYsIDB4ZTEwMCwgMCwgezB4YzEsMHgwMCwweDE0LDB4YzgsMHgwZiwweDAwLDB4MDMsMHhkYSwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDQwLDB4ZjcsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGMwLDB4MDMsMHhlNCwweDAwLDB4ZmEsMHgwMSwweDNmIH19LAotIHsxNiwgMHhlMTIwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDgsMHhmYiwweDAwLDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgwMSwweGZjLDB4MTAsMHhmZiB9fSwKLSB7MTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhkMSwweDAzLDB4ZmMsMHg0MiwweGZlLDB4ODAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGUxNDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGM4LDB4MDAsMHgzZSwweGMwIH19LAotIHsxNiwgMHhlMTUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZSwweDA4LDB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwZiwweGEwLDB4MjMsMHhlNiwweDAzLDB4Y2IsMHg0YyB9fSwKLSB7MTYsIDB4ZTE2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YjAsMHgwNywweGU4LDB4MDAsMHhmOSwweDAwLDB4MTYsMHg0MCwweDBjLDB4YTAsMHgwYiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGUxNzAsIDAsIHsweGNmLDB4MDIsMHgzMiwweGM1LDB4MGMsMHg4MCwweDAzLDB4MDIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweDg0LDB4MDQsMHgyZCwweGMxLDB4MGIsMHg0MCwweDQwLDB4ZGMsMHgwMCwweDg3LDB4MDQsMHgyMSB9fSwKLSB7MTYsIDB4ZTE5MCwgMCwgezB4YzAsMHg0YiwweDcwLDB4MTIsMHhmYywweDAxLDB4OGYsMHg2MCwweDI5LDB4NDAsMHgwYiwweDcwLDB4MTMsMHg5YywweDAwLDB4YjUgfX0sCi0gezE2LCAweGUxYTAsIDAsIHsweDAwLDB4YTMsMHg0MCwweDBhLDB4NjAsMHgwMiwweDAwLDB4MDAsMHg4NCwweDAwLDB4MjEsMHhjMCwweDA4LDB4NDAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlMWIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweDgwLDB4MmQsMHhhMiB9fSwKLSB7MTYsIDB4ZTFjMCwgMCwgezB4MGIsMHg0YywweDE2LDB4ZDYsMHgwOCwweDk3LDB4ODgsMHgyMSwweGEwLDB4NGIsMHg2OCwweDAyLDB4ZGUsMHgwNCwweGE3LDB4ODAgfX0sCi0gezE2LCAweGUxZDAsIDAsIHsweDIxLDB4ZTAsMHgwYiwweDQ4LDB4MDIsMHhkYSwweDA0LDB4YjYsMHg4MiwweDI1LDB4NjAsMHgwYSwweGU4LDB4NjIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhlMWUwLCAwLCB7MHg4NywweDgwLDB4MjAsMHhlOCwweDA4LDB4NDgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4YiwweDgwLDB4NmMsMHhmMCwweDBiLDB4M2MsMHgwMiwweGNlLDB4NDYsMHg5YiwweGMwLDB4MjAgfX0sCi0gezE2LCAweGUyMDAsIDAsIHsweGU0LDB4MGIsMHgzYywweDAyLDB4Y2MsMHgyMCwweGEzLDB4MDAsMHgyOCwweGUwLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweGIxIH19LAotIHsxNiwgMHhlMjEwLCAwLCB7MHg4MCwweDIyLDB4NDQsMHgwYSwweDIxLDB4MGEsMHgwMywweDgyLDB4ODAsMHg4MCwweGEwLDB4YzAsMHgwOCwweDA2LDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAyLDB4Y2UsMHg4MCwweDNmLDB4YTAgfX0sCi0gezE2LCAweGUyMzAsIDAsIHsweDBmLDB4ZTAsMHgwMywweGZhLDB4NDAsMHhkZSwweGMwLDB4YjMsMHg5MCwweDBmLDB4ZWEsMHgxMywweGY5LDB4MDgsMHhlYSwweDA0IH19LAotIHsxNiwgMHhlMjQwLCAwLCB7MHgzMywweDgyLDB4OGYsMHhlNCwweDAzLDB4ZmIsMHgwOCwweGZlLDB4YTAsMHgzNiwweGEwLDB4MGMsMHhhYywweDBiLDB4NmIsMHg4MiB9fSwKLSB7MTYsIDB4ZTI1MCwgMCwgezB4YzYsMHhhMCwweDMyLDB4ODAsMHgyYywweGU0LDB4MDMsMHgzYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg5MCwweDNlLDB4MDIsMHgwZiwweDgwLDB4ODMsMHhlMSwweDAwLDB4ZTgsMHgyMCwweDNlIH19LAotIHsxNiwgMHhlMjcwLCAwLCB7MHgwMywweDBmLDB4ODIsMHgwMywweGUxLDB4NDAsMHhkOCwweDAwLDB4M2UsMHgyMCwweDBmLDB4MDAsMHg5MywweGEwLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4OGYsMHgwOCwweDBiLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGUyOTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhlMmEwLCAwLCB7MHgwZiwweDk0LDB4MDcsMHhlNiwweDAwLDB4ZjksMHg4MCwweGIwLDB4NDAsMHgwYywweDk0LDB4MDMsMHhlNCwweDQwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZTJiMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTQsMHgwYiwweGE0LDB4MDAsMHg3MSwweGMwLDB4MzIsMHg0MCwweDJjLDB4OTQsMHgyMywweDI0LDB4MDIgfX0sCi0gezE2LCAweGUyYzAsIDAsIHsweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmQwLCAwLCB7MHg4MCwweDA0LDB4NDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4ZTYsMHg2MCwweGI5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZTJlMCwgMCwgezB4NjAsMHgwYSwweDljLDB4MDIsMHhlNiwweDI0LDB4YjksMHgwNCwweDM2LDB4NDAsMHgwYiwweDk4LDB4MDAsMHgyNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGUyZjAsIDAsIHsweDgwLDB4YTIsMHg1MiwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDQwLDB4MjIsMHg0MCwweDY4LDB4OTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhlMzAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4ZTMxMCwgMCwgezB4MDMsMHg5NCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MTAsMHgyMiwweDU1LDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGUzMjAsIDAsIHsweDI2LDB4NDAsMHgwYiwweDkwLDB4MDAsMHgyYywweDA5LDB4YjksMHgwMCwweDIyLDB4NjAsMHgwOCwweDkwLDB4MGEsMHgxYywweDA0IH19LAotIHsxNiwgMHhlMzMwLCAwLCB7MHg4ZCwweDA4LDB4YTAsMHg0MCwweDA4LDB4MTAsMHg4MiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM0MCwgMCwgezB4MDgsMHgwNCwweDA2LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MCwweDBiLDB4MTIsMHg0MiwweGM0LDB4ODAsMHhiMSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGUzNTAsIDAsIHsweDUwLDB4MGEsMHgxNCwweDAyLDB4YzUsMHgwMCwweGIxLDB4MjIsMHgyNCwweDQwLDB4MGIsMHgxMiwweDIyLDB4MDQsMHgwMSwweGIxIH19LAotIHsxNiwgMHhlMzYwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwOCwweDEwLDB4MGEsMHgxNSwweDAwLDB4ODUsMHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MGEsMHgwYSB9fSwKLSB7MTYsIDB4ZTM3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTgsMHg1MCwweDM2LDB4MDAgfX0sCi0gezE2LCAweGUzODAsIDAsIHsweDBmLDB4ODUsMHgwMiwweGUxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDBjLDB4YTAsMHgyMywweGUwLDB4MTAsMHhmOCwweDUwIH19LAotIHsxNiwgMHhlMzkwLCAwLCB7MHhiMiwweDE0LDB4MGYsMHhhNSwweDAzLDB4YTEsMHg0OCwweGZhLDB4MDAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwNCB9fSwKLSB7MTYsIDB4ZTNhMCwgMCwgezB4YzQsMHgwMiwweDMyLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzYjAsIDAsIHsweDk4LDB4MWQsMHhlNSwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhkNCwweDQ0LDB4ZjUsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlM2MwLCAwLCB7MHg1MSwweDBmLDB4ZDQsMHgwMywweGY1LDB4MDAsMHhmOSwweDEwLDB4M2IsMHg0MCwweDBmLDB4ZDEsMHgwMCwweGY1LDB4MTAsMHhmNSB9fSwKLSB7MTYsIDB4ZTNkMCwgMCwgezB4NDAsMHg3ZiwweDQwLDB4MGYsMHg1NCwweDJiLDB4ZTUsMHgwMCwweGY5LDB4NDAsMHgzNiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGUzZTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgxMCwweGJkLDB4NDAsMHgzMywweDQwIH19LAotIHsxNiwgMHhlM2YwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzNywweDgwLDB4Y2QsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZTksMHhhMCB9fSwKLSB7MTYsIDB4ZTQwMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4ZGUsMHgxNywweGE0LDB4MDgsMHhmZCwweGMwLDB4MzMsMHg0MSwweDhkLDB4ZGEsMHgxMywweDI2LDB4YTAgfX0sCi0gezE2LCAweGU0MTAsIDAsIHsweGY5LDB4YTgsMHgzMiwweDc4LDB4MGMsMHhiNCwweDBiLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4YTAsMHgzNiwweDIwLDB4MGIsMHg4YSwweDgyLDB4YTIsMHg4MCwweDJhLDB4YTgsMHgyZSB9fSwKLSB7MTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MTIsMHhlMCwweDA0LDB4YjgsMHhhMSwweDJlLDB4MjgsMHg0YSwweDhlLDB4MDIsMHgyYSwweGEwLDB4YmEgfX0sCi0gezE2LCAweGU0NDAsIDAsIHsweGMwLDB4MjIsMHgyOCwweDA4LDB4ODUsMHgwMiwweDIxLDB4MDgsMHhiOCwweGU4LDB4YTIsMHgzYywweDA4LDB4YzgsMHgwMiwweDBlIH19LAotIHsxNiwgMHhlNDUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiOSwweDAwLDB4MjAsMHg0YSB9fSwKLSB7MTYsIDB4ZTQ2MCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MDUsMHg4MCwweDAxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwNCwweGExLDB4NGEgfX0sCi0gezE2LCAweGU0NzAsIDAsIHsweDJlLDB4NDIsMHgwOCwweDE0LDB4MDIsMHg4NCwweDEwLDB4YjEsMHg2MCwweGEwLDB4NGEsMHgwOSwweDEwLDB4MDIsMHg0NCwweDAwIH19LAotIHsxNiwgMHhlNDgwLCAwLCB7MHhiNSwweDAxLDB4MjksMHg0MCwweDE4LDB4ZDIsMHgwMiwweDEyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDIxLDB4MjYsMHg0MCwweDBiLDB4OTYsMHgwMiwweGE0LDB4MTAsMHhhOSwweDAwLDB4MmUgfX0sCi0gezE2LCAweGU0YTAsIDAsIHsweDQwLDB4MGIsMHg5NiwweDEyLDB4ZTQsMHgyMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MGEsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlNGIwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOCwweDk4LDB4MjIsMHg2NCwweDAwLDB4YjksMHgyMCwweDJiLDB4NDEsMHgyOCwweGQ0LDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHhlMCwweDMyLDB4NTggfX0sCi0gezE2LCAweGU0ZDAsIDAsIHsweDBmLDB4OTgsMHgwMywweDI2LDB4NDAsMHhjOSwweDQwLDB4M2UsMHg1OCwweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwIH19LAotIHsxNiwgMHhlNGUwLCAwLCB7MHg2ZSwweDQwLDB4MGMsMHg5YSwweDAyLDB4YTYsMHgwMCwweGY5LDB4NDQsMHgzMiwweDQwLDB4MGQsMHg5YSwweDBiLDB4NjQsMHg4NCB9fSwKLSB7MTYsIDB4ZTRmMCwgMCwgezB4ZjksMHgwMCwweGJhLDB4NDAsMHgwYywweDE4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MDAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NTAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwNCwweDNlIH19LAotIHsxNiwgMHhlNTEwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg2NSwweDBmLDB4OTksMHg4MSwweGU0LDB4NTAsMHhmOSB9fSwKLSB7MTYsIDB4ZTUyMCwgMCwgezB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MiwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGU1MzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHhlNTQwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHg2MCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MDgsMHgwZiwweDgwLDB4ODMsMHhlMCwweDI4LDB4ZTgsMHgwNCB9fSwKLSB7MTYsIDB4ZTU1MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODQsMHgwMywweDIxLDB4MWMsMHhmMCwweDQ4LDB4MzIsMHgwMCwweDBiLDB4MDAsMHgwMywweGUwLDB4MDIgfX0sCi0gezE2LCAweGU1NjAsIDAsIHsweGMwLDB4MDAsMHgzMiwweDAwLDB4MGMsMHhjMCwweDBiLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTcwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGIyLDB4ODgsMHgyZSwweDgwLDB4MDgsMHhlMCwweDAzLDB4N2EsMHg4MCwweDhlLDB4MDAsMHgyZiB9fSwKLSB7MTYsIDB4ZTU4MCwgMCwgezB4YTAsMHgwYiwweGU4LDB4MDIsMHhmOSwweDEwLDB4YmEsMHgwMCwweDJjLDB4ODAsMHgyOCwweGU0LDB4MDIsMHgyOCwweDAwLDB4YmUgfX0sCi0gezE2LCAweGU1OTAsIDAsIHsweDQwLDB4MjMsMHhiOCwweDA4LDB4ZTgsMHgwMiwweGU4LDB4MDQsMHhjYSwweDIwLDB4YTIsMHg4MCwweDA4LDB4ZTgsMHgwMiwweDBhIH19LAotIHsxNiwgMHhlNWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHhiMywweDAwLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4ZTViMCwgMCwgezB4MDgsMHhiOCwweDQyLDB4NmMsMHgwMiwweDgzLDB4MDAsMHgyYywweGUwLDB4MGIsMHgzOCwweDAwLDB4Y2YsMHg0MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGU1YzAsIDAsIHsweDJjLDB4YzAsMHgwOCwweGI0LDB4MGEsMHgwYywweDAwLDB4YjMsMHg0MCwweGEyLDB4ODIsMHgwYSwweDM5LDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHhlNWQwLCAwLCB7MHg5MywweDgwLDB4YTAsMHhjMCwweDI5LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVlMCwgMCwgezB4YTAsMHgwMSwweDFkLDB4MDAsMHhiNywweDAwLDB4MmQsMHg2NCwweDI4LDB4NzQsMHgwMiwweDQwLDB4MDAsMHg4NywweDA1LDB4MmQgfX0sCi0gezE2LCAweGU1ZjAsIDAsIHsweDkwLDB4MGIsMHg3NCwweDAyLDB4ZGMsMHgxMCwweGI3LDB4MzAsMHgyZCwweGM4LDB4MDgsMHgzNCwweDA2LDB4MWMsMHg4MCwweGI3IH19LAotIHsxNiwgMHhlNjAwLCAwLCB7MHgwMCwweGExLDB4YzAsMHgwYSwweDcwLDB4MDIsMHhkZSwweDgwLDB4ODMsMHgwMCwweDAxLDB4MDAsMHgwOSwweDYwLDB4ODIsMHgyMCB9fSwKLSB7MTYsIDB4ZTYxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxYSwweDAwLDB4ZjcsMHg4MCwweDNkLDB4NjAgfX0sCi0gezE2LCAweGU2MjAsIDAsIHsweDBlLDB4ZDgsMHgwYiwweDVlLDB4MDAsMHhjNywweDgwLDB4M2QsMHhlMCwweDBmLDB4NjgsMHgwMywweGRlLDB4MTAsMHhmNywweGE5IH19LAotIHsxNiwgMHhlNjMwLCAwLCB7MHg3ZiwweGU4LDB4NDgsMHg3OCwweDAzLDB4MWYsMHgzMCwweGZmLDB4OTQsMHgzMywweGEwLDB4MGUsMHg3OCwweDAzLDB4Y2YsMHgyNCB9fSwKLSB7MTYsIDB4ZTY0MCwgMCwgezB4ZDYsMHg4MCwweGIxLDB4ZTAsMHgwZCwweGY4LDB4NDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4YmIsMHgwMCwweDBjLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDA4LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhlNjYwLCAwLCB7MHgwMCwweDBmLDB4OTAsMHg0MSwweGVjLDB4MDAsMHhmYiwweDYxLDB4N2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGVjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZTY3MCwgMCwgezB4NDAsMHgzZiwweDliLDB4MGMsMHhiMCwweDAzLDB4ZWQsMHg5MCwweGZhLDB4MDAsMHgzYywweDAwLDB4MGUsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGU2ODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZGUsMHgwMCwweGVmLDB4ODAsMHgzMywweDYwIH19LAotIHsxNiwgMHhlNjkwLCAwLCB7MHgwZCwweGQ4LDB4MDMsMHgzNiwweDQwLDB4ZWYsMHg5MCwweDNlLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4ZTZhMCwgMCwgezB4MzMsMHhmZSwweDBjLDB4ZmEsMHgwMywweGZlLDB4MDAsMHhjZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGU2YjAsIDAsIHsweGNkLDB4ODAsMHgzMywweGUwLDB4MGYsMHhjOCwweDQzLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg1LDB4MDgsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAzLDB4NTIsMHgyMCwweDg3LDB4MTEsMHgyYyB9fSwKLSB7MTYsIDB4ZTZkMCwgMCwgezB4ZWMsMHgwYiwweDcxLDB4MDIsMHhkMCwweDAwLDB4ZTcsMHgwMCwweDM1LDB4YzQsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4ODcgfX0sCi0gezE2LCAweGU2ZTAsIDAsIHsweDEwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGZjLDB4ODAsMHg4NSwweDA4LDB4MjEsMHgwMCwweDBiLDB4NDEsMHg4MiwweGVhIH19LAotIHsxNiwgMHhlNmYwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MDAsMHhhZiwweDAwLDB4MjMsMHg1MCB9fSwKLSB7MTYsIDB4ZTcwMCwgMCwgezB4MDksMHg1MCwweDAyLDB4MWMsMHg4MCwweGE3LDB4MDEsMHgyOSwweGMwLDB4MWIsMHg2MCwweDA2LDB4ZGMsMHg0MCwweGI3LDB4MTAgfX0sCi0gezE2LCAweGU3MTAsIDAsIHsweDIxLDB4YzgsMHg0YSwweDUyLDB4MDIsMHhkYywweDAwLDB4ODMsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkYywweDEzIH19LAotIHsxNiwgMHhlNzIwLCAwLCB7MHg4NCwweDAwLDB4MjUsMHhjMCwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTczMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MSwweDgwLDB4MjQsMHg0MCwweDA4LDB4M2UsMHgwMiwweDZlLDB4MDAsMHg4OSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGU3NDAsIDAsIHsweGMwLDB4MGIsMHhiNCwweDAyLDB4Y2EsMHg4MCwweGEzLDB4MDAsMHgyNCwweGMwLDB4MGEsMHgwNCwweDAyLDB4ZWMsMHg0MCwweDgyIH19LAotIHsxNiwgMHhlNzUwLCAwLCB7MHgwYSwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDEwLDB4ODAsMHhjMCwweGE0LDB4MDAsMHgwYiwweDFjLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4NCwweDAwLDB4ZWIsMHg4MCwweDMzLDB4NDAgfX0sCi0gezE2LCAweGU3NzAsIDAsIHsweDBkLDB4OGMsMHg4MywweDI2LDB4MDAsMHhlOSwweGEwLDB4M2UsMHg3OCwweDhmLDB4OTAsMHg4MywweGUxLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhlNzgwLCAwLCB7MHgzMSwweGQxLDB4MGUsMHg4NCwweDIzLDB4ZmMsMHgwMCwweGNiLDB4ODIsMHgzMiwweGMwLDB4OGYsMHhiMCwweDAyLDB4ZmQsMHg0MCB9fSwKLSB7MTYsIDB4ZTc5MCwgMCwgezB4Y2IsMHg4MCwweGI2LDB4YzAsMHgwZiwweGE0LDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3YTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweGEwLDB4MDMsMHhlMCwweDAwLDB4ZjksMHgwMSwweDNlIH19LAotIHsxNiwgMHhlN2IwLCAwLCB7MHg0MiwweDBmLDB4OTAsMHgwMywweGU1LDB4NTQsMHhlMywweDAwLDB4M2UsMHhjOCwweDA1LDB4OTMsMHgwMywweGVjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZTdjMCwgMCwgezB4YzEsMHgzZSwweGMwLDB4MGYsMHgyMCwweDAzLDB4Y2MsMHg0OCwweGYzLDB4MDgsMHgzYSwweDAwLDB4MGYsMHhhMCwweDQzLDB4ZTAgfX0sCi0gezE2LCAweGU3ZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGNmLDB4MDAsMHgzZiwweDQwIH19LAotIHsxNiwgMHhlN2UwLCAwLCB7MHgwZiwweDMwLDB4MDEsMHgyYywweDBhLDB4Y2QsMHgxMCwweDMzLDB4MDAsMHgwZiwweGQwLDB4ODMsMHgxNCwweDAwLDB4Y2IsMHgwMiB9fSwKLSB7MTYsIDB4ZTdmMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4ZTEsMHgwMywweGVjLDB4MTAsMHhjZCwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgzMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGU4MDAsIDAsIHsweGVhLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDgzLDB4YzgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODEwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgwMCwweDhiLDB4MDAsMHgyZSwweDQwLDB4MGIsMHhiYywweDAyLDB4MmUsMHgwMCwweDBiLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZTgyMCwgMCwgezB4MzAsMHgwYiwweDljLDB4MDIsMHgyNywweDgwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGI4LDB4MDIsMHhlYywweDAwLDB4ODkgfX0sCi0gezE2LCAweGU4MzAsIDAsIHsweGMwLDB4MjAsMHhlMCwweDA4LDB4YWUsMHgwMiwweDJjLDB4MDgsMHg4YSwweDAwLDB4MjIsMHgwMCwweDA4LDB4YjAsMHg0MiwweGU4IH19LAotIHsxNiwgMHhlODQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHg4YiwweDA0LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZTg1MCwgMCwgezB4OGIsMHg4YywweDAyLDB4YWUsMHgxMCwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg4YywweDAyLDB4YTIsMHgwMCwweDhiLDB4MDEgfX0sCi0gezE2LCAweGU4NjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweDgwLDB4MDIsMHhlYywweDEwLDB4ODIsMHg4OCwweGEyLDB4NzAsMHgwOSwweGI4LDB4MDIsMHgyYywweDA4IH19LAotIHsxNiwgMHhlODcwLCAwLCB7MHg4OSwweDAwLDB4MjAsMHhjMCwweDI4LDB4ODAsMHgyMiwweGUwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg4MSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MjAsMHgwMiwweDgwLDB4MDAsMHg4MSwweDA0LDB4YTAgfX0sCi0gezE2LCAweGU4OTAsIDAsIHsweDUwLDB4NGIsMHgwMCwweDBhLDB4ODAsMHgwMCwweGEzLDB4MDEsMHgyYSwweGMxLDB4MjAsMHgxMCwweDAyLDB4Y2MsMHgxNCwweDgzIH19LAotIHsxNiwgMHhlOGEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweDIwLDB4MDIsMHgwYywweDAwLDB4ODEsMHgwMCwweGUwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZThiMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGU4YzAsIDAsIHsweDBmLDB4OTAsMHgwYiwweGFjLDB4ODAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBmLDB4ODAsMHgwMywweGE0LDB4MDAsMHhjZiwweDAyIH19LAotIHsxNiwgMHhlOGQwLCAwLCB7MHgzMSwweGMwLDB4MGMsMHg4MCwweDEzLDB4ZmMsMHgwMiwweGNkLDB4MDAsMHgzMywweGMwLDB4MmMsMHg5MCwweDAzLDB4M2MsMHgwMiB9fSwKLSB7MTYsIDB4ZThlMCwgMCwgezB4ZTgsMHgwMCwweGIyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAyLDB4ZjUsMHgwMCwweDNkLDB4NDAsMHg4ZiwweGYwLDB4MjMsMHg2ZCwweDAwLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlOTAwLCAwLCB7MHgwNCwweDBmLDB4YzAsMHgwMywweDcwLDB4MWMsMHhmZiwweDAxLDB4M2YsMHhjMCwweDRmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhlMCwweDBmLDB4ZmMsMHgxOCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGU5MjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGQ3LDB4MDIsMHgwZiwweDMwIH19LAotIHsxNiwgMHhlOTMwLCAwLCB7MHgwYywweGYyLDB4MDEsMHg3ZSwweDA2LDB4NDQsMHgzMCwweDNmLDB4MjAsMHgwZSwweGYwLDB4MDIsMHg3YywweDg0LDB4ZmQsMHgyMCB9fSwKLSB7MTYsIDB4ZTk0MCwgMCwgezB4MjcsMHgwOCwweDBjLDB4ZDAsMHgwMSwweDM2LDB4MDAsMHhmZiwweDYwLDB4MzMsMHhjYywweDBiLDB4ZjEsMHgxMywweDJjLDB4YzQgfX0sCi0gezE2LCAweGU5NTAsIDAsIHsweGZmLDB4MzAsMHgwZiwweGNkLDB4MGMsMHhmNCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTYwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwMCwweDhmLDB4YzAsMHgyZSwweDAwLDB4MDgsMHhmYywweDAyLDB4MmUsMHgwMCwweDhhLDB4MzAsMHgyOCB9fSwKLSB7MTYsIDB4ZTk3MCwgMCwgezB4NTIsMHgwOCwweGY2LDB4ODIsMHgzYywweDY4LDB4YmQsMHg5MCwweDMyLDB4MzQsMHg0OCwweDljLDB4MTIsMHgyNiwweDAwLDB4Y2YgfX0sCi0gezE2LCAweGU5ODAsIDAsIHsweDQwLDB4MjMsMHhjYywweDBiLDB4ZjYsMHgwMiwweDNkLDB4MDAsMHhiZiwweDEwLDB4MmYsMHhjYywweDg4LDB4ZjYsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlOTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDEwLDB4MmMsMHgwOCB9fSwKLSB7MTYsIDB4ZTlhMCwgMCwgezB4MDksMHgzMSwweDAyLDB4NGMsMHgwMCwweDliLDB4MjAsMHg2NCwweDU4LDB4MDMsMHgzMSwweDYyLDB4NGMsMHg4MSwweGExLDB4MDAgfX0sCi0gezE2LCAweGU5YjAsIDAsIHsweDIwLDB4MDAsMHg0OCwweDE0LDB4MDIsMHg0NCwweDAwLDB4OTMsMHgzMCwweDI0LDB4YzAsMHgwYiwweDMzLDB4MDIsMHg4ZCwweDg0IH19LAotIHsxNiwgMHhlOWMwLCAwLCB7MHhiMywweDIwLDB4NmMsMHhjMCwweDJhLDB4MzYsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAyLDB4MmUsMHg0MSwweDBiLDB4YjAsMHgwMiwweGE0LDB4MDAsMHg5YSwweDAwLDB4NGEgfX0sCi0gezE2LCAweGU5ZTAsIDAsIHsweDYwLDB4ODgsMHhiMCwweDUyLDB4NmMsMHgwMSwweGI5LDB4MDAsMHgyNiwweDAwLDB4MDgsMHg5MSwweDIyLDB4ZWMsMHgwOCwweGJiIH19LAotIHsxNiwgMHhlOWYwLCAwLCB7MHgwMCwweDI2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhhYywweDAwLDB4YmIsMHgwNSwweDZlLDB4YzEsMHgwYSwweGIwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZWEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZGIsMHgwMSwweDNlLDB4MzAgfX0sCi0gezE2LCAweGVhMTAsIDAsIHsweDJkLDB4MzAsMHgwMywweDQ3LDB4NjAsMHhkOCwweGEwLDB4MTYsMHgzOCwweDhmLDB4YjAsMHgwMywweDZjLDB4MDAsMHg3OSwweDAyIH19LAotIHsxNiwgMHhlYTIwLCAwLCB7MHgzMSwweDYwLDB4MGMsMHhjOCwweDBhLDB4NjYsMHgwMCwweGJiLDB4MDAsMHhiNiwweGMwLDB4MGYsMHhiMCwweDBiLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4ZWEzMCwgMCwgezB4ZmIsMHgwMSwweDNlLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDEwLDB4ZWYsMHgwOCwweDNmLDB4MjQsMHgwYywweGYwLDB4MDMsMHg3NiwweDIwLDB4ZWUsMHg5MCwweDM1IH19LAotIHsxNiwgMHhlYTUwLCAwLCB7MHg0MCwweDBlLDB4NzAsMHgwMywweGFjLDB4MDAsMHhmZCwweDAwLDB4YmIsMHg2NCwweDBmLDB4ODgsMHgxMywweDM0LDB4ODAsMHhjYiB9fSwKLSB7MTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZmLDB4MDAsMHgzZSwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGVhNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGZiLDB4ODAsMHgzMiwweDEwIH19LAotIHsxNiwgMHhlYTgwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHhlZCwweDAwLDB4Y2IsMHg1MCwweDNlLDB4NDAsMHg4YywweGIwLDB4NDMsMHgyYywweDEwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZWE5MCwgMCwgezB4MzIsMHg2MCwweDBjLDB4NDAsMHgwYiwweDI2LDB4MDAsMHhjMywweDA0LDB4MzYsMHhjMCwweDBjLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGVhYTAsIDAsIHsweDliLDB4MDAsMHhiMCwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWIwLCAwLCB7MHhjOCwweDA1LDB4MGUsMHg4MCwweGJmLDB4MDQsMHgyYSwweDQwLDB4MDAsMHhmNSwweDAwLDB4ZTYsMHgwMCwweDgyLDB4ZDIsMHgyMiB9fSwKLSB7MTYsIDB4ZWFjMCwgMCwgezB4NDAsMHgwZCwweGYwLDB4MjIsMHgzYywweDAwLDB4OTUsMHgwMiwweDM2LDB4NDAsMHgwYSwweDgwLDB4MDIsMHgyZSwweDAwLDB4OGYgfX0sCi0gezE2LCAweGVhZDAsIDAsIHsweDAwLDB4MzcsMHhjMCwweDBhLDB4ZjAsMHg0MiwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MjMsMHhjMCwweDI4LDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlYWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHhiMywweDAwLDB4MjIsMHgyMCB9fSwKLSB7MTYsIDB4ZWFmMCwgMCwgezB4NGEsMHgzMCwweDAwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweDAwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgxMCwweGExLDB4MDAgfX0sCi0gezE2LCAweGViMDAsIDAsIHsweDI4LDB4ODAsMHgxOCwweDMwLDB4MjIsMHgwNCwweDA0LDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA4IH19LAotIHsxNiwgMHhlYjEwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwNiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWIyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MjksMHhhMCwweDA4LDB4NzgsMHgwMiwweGZlLDB4MjAsMHg4ZCwweDgwLDB4MjkgfX0sCi0gezE2LCAweGViMzAsIDAsIHsweGU1LDB4NWIsMHgzOCwweDQyLDB4MWUsMHg0MCwweGExLDB4ODEsMHgyNSwweGE4LDB4MDgsMHg3OSwweDAyLDB4MzcsMHgwMCwweDg3IH19LAotIHsxNiwgMHhlYjQwLCAwLCB7MHg4MCwweDI1LDB4ZTAsMHgwYSwweDc4LDB4MGEsMHhkZSwweDgxLDB4ODcsMHg4MCwweDI1LDB4ZTUsMHg0OCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZWI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YjMsMHgxMCwweDMwLDB4MTIgfX0sCi0gezE2LCAweGViNjAsIDAsIHsweDBlLDB4MzAsMHgxMiwweGNjLDB4YzAsMHhjMywweDAwLDB4MzgsMHg4MCwweDBjLDB4MzEsMHgwNiwweDBjLDB4NDAsMHhmMSwweDAwIH19LAotIHsxNiwgMHhlYjcwLCAwLCB7MHgzOCwweDgwLDB4MGMsMHgzMCwweDQzLDB4MDQsMHg0MiwweGMzLDB4MDAsMHgzNiwweGMwLDB4MGMsMHgzMiwweDAzLDB4Y2UsMHhjMCB9fSwKLSB7MTYsIDB4ZWI4MCwgMCwgezB4ZGIsMHgwMCwweDMwLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViOTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgxMCwweDNkLDB4ODQsMHg0ZiwweGYxLDB4MDMsMHhkMCwweDQwLDB4ZmMsMHgxMCwweDMzIH19LAotIHsxNiwgMHhlYmEwLCAwLCB7MHg4MCwweDVkLDB4YjEsMHg4MywweGZjLDB4NTAsMHhkZCwweDBhLDB4MjUsMHg4OSwweDBmLDB4YjgsMHgwMywweGQ0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZWJiMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDAzLDB4M2MsMHg0MCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGViYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MjAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhlYmQwLCAwLCB7MHgwZiwweGI1LDB4MDMsMHgyOSwweDIwLDB4ZjksMHgwMCwweDMyLDB4YTAsMHgwYywweGIwLDB4ODMsMHhlYywweDAwLDB4NDksMHhjOCB9fSwKLSB7MTYsIDB4ZWJlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YTAsMHgwMywweDY0LDB4MDAsMHhmYiwweDA4LDB4MTIsMHhlYSwweDBjLDB4YjAsMHgwYiwweDJjLDB4ODAgfX0sCi0gezE2LCAweGViZjAsIDAsIHsweGZiLDB4MjAsMHgyZSwweGQyLDB4NmMsMHhiNiwweDQzLDB4ZWEsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4NDksMHgyZCwweDAwLDB4MGIsMHgzMCwweDgyLDB4MTAsMHgwMSwweGI1LDB4MDIsMHg4MyB9fSwKLSB7MTYsIDB4ZWMxMCwgMCwgezB4YzAsMHgxYSwweDcyLDB4MjIsMHhkZCwweDQxLDB4ODUsMHgwMCwweDYxLDB4YzAsMHgxOCwweDIwLDB4MjAsMHgxNCwweDAwLDB4YmYgfX0sCi0gezE2LCAweGVjMjAsIDAsIHsweDQwLDB4MzUsMHhkMCwweDBkLDB4MzQsMHgwMiwweDFkLDB4MjAsMHhiNywweDI4LDB4MjUsMHhjMSwweDA4LDB4NzQsMHg4MiwweGQyIH19LAotIHsxNiwgMHhlYzMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDQsMHgzNywweGEwLDB4MmQsMHgyMCB9fSwKLSB7MTYsIDB4ZWM0MCwgMCwgezB4MGIsMHg3YSwweDEyLDB4MTYsMHgwMSwweGIzLDB4ODAsMHgyMSwweGUyLDB4MDgsMHg3OCwweDQyLDB4OWUsMHgwMCwweDg1LDB4ODAgfX0sCi0gezE2LCAweGVjNTAsIDAsIHsweDIwLDB4ZTEsMHgxOCwweDY4LDB4MDIsMHg1NiwweDAwLDB4YjcsMHhhMCwweDI1LDB4ZTAsMHgwOCwweDdhLDB4MDIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhlYzYwLCAwLCB7MHhiNywweDkwLDB4MmMsMHhlNSwweDg4LDB4N2EsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4NmMsMHgyNCwweDFiLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGVjODAsIDAsIHsweGY4LDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDgxLDB4MDAsMHgyMCwweGQ4LDB4MTgsMHgyMCwweDAyLDB4MDQsMHgwMCwweGIzIH19LAotIHsxNiwgMHhlYzkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDI2LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNkLDB4ODAgfX0sCi0gezE2LCAweGVjYjAsIDAsIHsweDBmLDB4MjAsMHgwYiwweDI4LDB4ODAsMHhmZSwweDAwLDB4MzMsMHhhMCwweDBjLDB4YTAsMHgwMywweGU4LDB4MDIsMHhjYSwweDAyIH19LAotIHsxNiwgMHhlY2MwLCAwLCB7MHgzMiwweDkwLDB4MmMsMHhlNCwweDAzLDB4NzgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZWNkMCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjZTAsIDAsIHsweDQ4LDB4MDAsMHhlMSwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhlMCwweDgwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhlY2YwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgyMywweGMwLDB4MDAsMHhmOCwweDAyLDB4M2MsMHgwMCwweDBmLDB4YzAsMHg4MywweDYwLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDIzLDB4ZTAsMHgxOCwweGY4LDB4MDEsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGVkMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTYsMHgwMCwweGY5LDB4MjEsMHgzMiwweDYwIH19LAotIHsxNiwgMHhlZDIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyYywweDQ0LDB4ZjksMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MWIsMHgyNCwweDAwLDB4ZTksMHgwMCB9fSwKLSB7MTYsIDB4ZWQzMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTAsMHgzMywweDI0LDB4MTAgfX0sCi0gezE2LCAweGVkNDAsIDAsIHsweGYxLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDAsMHhhMiwweDQxLDB4MDgsMHg5MCwweDAyLDB4MjQsMHg4MCwweGU5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWQ2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDEsMHgxOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGVkNzAsIDAsIHsweDA0LDB4MmEsMHg0MSwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4ODAsMHhiOSwweDQyLDB4NjIsMHg0OCB9fSwKLSB7MTYsIDB4ZWQ5MCwgMCwgezB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDIgfX0sCi0gezE2LCAweGVkYTAsIDAsIHsweDJlLDB4NDAsMHgwOCwweGQwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDA0IH19LAotIHsxNiwgMHhlZGIwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRjMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMSwweDIwLDB4NjAsMHg0MCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDAsMHhhMSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGVkZDAsIDAsIHsweDQwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweDkxLDB4MjAsMHgyZCwweDY4LDB4MDgsMHg1MiwweDEyLDB4MDQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhlZGUwLCAwLCB7MHgyOCwweDI4LDB4NGEsMHgwOSwweDEyLDB4ODIsMHg0NCwweGEwLDB4YjEsMHgyYywweDI4LDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ZWRmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MTQgfX0sCi0gezE2LCAweGVlMDAsIDAsIHsweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDUwLDB4MzIsMHgxNCwweDBmLDB4ODUsMHgwMywweDAxLDB4NDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhlZTEwLCAwLCB7MHgyZSwweDAwLDB4MjgsMHhjMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MjQsMHgzMCwweDA4LDB4MGYsMHg4MiwweDIzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4ZWUyMCwgMCwgezB4ZjgsMHgyMCwweDMyLDB4MDgsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMzAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDA4LDB4ZjksMHgxMCwweDNmLDB4NDAsMHg4ZiwweDkxLDB4MTMsMHhlNCwweDAwLDB4ZWQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhlZTQwLCAwLCB7MHg1MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhhNSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDQsMHhmOSB9fSwKLSB7MTYsIDB4ZWU1MCwgMCwgezB4MjgsMHgzZSwweDRiLDB4MGIsMHg5MiwweGEzLDB4ZTQsMHhhMCwweGU5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGVlNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjQsMHgwMCwweGNkLDB4MDAsMHgzMywweDQwIH19LAotIHsxNiwgMHhlZTcwLCAwLCB7MHg4MCwweGQwLDB4MDEsMHhmNCwweDAwLDB4YTUsMHgwMCwweDI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNiwweDAwLDB4ZjEsMHg4OCB9fSwKLSB7MTYsIDB4ZWU4MCwgMCwgezB4M2UsMHg2OCwweDBkLDB4OTgsMHg4MywweDQ0LDB4MDAsMHhjOSwweGMwLDB4M2EsMHg0MCwweDBjLDB4OTgsMHgwMywweDI0LDB4MDggfX0sCi0gezE2LCAweGVlOTAsIDAsIHsweGY5LDB4YTAsMHgzMiwweDc4LDB4MGYsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMiwweDg4LDB4MDAsMHhhMiwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweDBhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHg0MCwweDJlLDB4MTQsMHgwOCwweDgwLDB4NDMsMHgzMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGVlYzAsIDAsIHsweGEwLDB4MjIsMHgyYSwweDBhLDB4OGEsMHg0MiwweGEwLDB4MDUsMHhiOCwweDQyLDB4MzIsMHgzOCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhlZWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDMsMHg5MSwweDAwLDB4MjQsMHg0MCB9fSwKLSB7MTYsIDB4ZWVlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxMSwweGIxLDB4MDQsMHgyMCwweDQxLDB4MWIsMHgxMCwweDIyLDB4NDUsMHgwMCwweGI1LDB4MDAgfX0sCi0gezE2LCAweGVlZjAsIDAsIHsweDI1LDB4NDAsMHgwOSwweDUwLDB4MDIsMHg1NCwweDAxLDB4ODEsMHg0MCwweDJjLDB4NDAsMHgwOSwweDE0LDB4OTIsMHg0NCwweDAwIH19LAotIHsxNiwgMHhlZjAwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0YywweDBiLDB4MTQsMHgwYSwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5OSwweDAwLDB4MjQsMHg0MiwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDEsMHg5OSwweDIwLDB4MjYgfX0sCi0gezE2LCAweGVmMjAsIDAsIHsweDQwLDB4Y2IsMHg5MCwweDAyLDB4NjQsMHgwMCwweGJiLDB4MDAsMHgyZiwweDQxLDB4MGEsMHhkMCwweDAyLDB4MzQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhlZjMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhlNCwweDAwLDB4MzEsMHgwMCwweDYyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZWY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNCwweDAwLDB4ZDksMHgwMSwweDM2LDB4NTAgfX0sCi0gezE2LCAweGVmNTAsIDAsIHsweDJmLDB4OTAsMHgwMywweGU2LDB4NjAsMHhmOSwweDgwLDB4MzYsMHg1MiwweDBiLDB4OTAsMHgwYSwweDY0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhlZjYwLCAwLCB7MHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMiwweDA5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4ZWY3MCwgMCwgezB4YjksMHgwMCwweGI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZTEsMHgwMCwweDNhLDB4NDEsMHgwYywweDkwLDB4MjMsMHhlNiwweDIwLDB4ZTksMHgwMCwweGJhIH19LAotIHsxNiwgMHhlZjkwLCAwLCB7MHg3MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4MTAsMHgxMywweGE3LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHg5MCwweDQzLDB4YTQsMHgwOCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGVmYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgyMCwweGY4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhlZmMwLCAwLCB7MHgwZiwweDgwLDB4ODMsMHgyMSwweDAwLDB4ZjAsMHgwMCwweDNhLDB4MTEsMHgwOSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMSB9fSwKLSB7MTYsIDB4ZWZkMCwgMCwgezB4MzAsMHgwMSwweDBjLDB4ODAsMHgwMywweGIwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4ODAsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGVmZTAsIDAsIHsweGM4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGJlLDB4MDAsMHgyMiwweDgwLDB4MDMsMHhlOCwweDAyLDB4MWEsMHgwOCwweGJlLDB4NDgsMHgyMiB9fSwKLSB7MTYsIDB4ZjAwMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHhiOCwweDAwLDB4Y2EsMHgwOCwweDIyLDB4ODAsMHgwZiwweGE0LDB4MDIsMHgwOCwweDAwLDB4OGEgfX0sCi0gezE2LCAweGYwMTAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDhkLDB4YTAsMHgwMiwweDI4LDB4MDAsMHhkYSwweDAwLDB4MmEsMHg4MSwweDA4LDB4YTAsMHgwMiwweDhhIH19LAotIHsxNiwgMHhmMDIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZjAzMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MDgsMHgwMCwweGIwLDB4NjQsMHg2OCwweGMxLDB4MDgsMHhiMCwweDIyLDB4Y2MsMHgwYywweDkzLDB4ODAgfX0sCi0gezE2LCAweGYwNDAsIDAsIHsweDAwLDB4YzAsMHg0OCwweDM2LDB4MDIsMHg4OCwweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDYsMHgwYywweDAxIH19LAotIHsxNiwgMHhmMDUwLCAwLCB7MHhhMywweDAyLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA2MCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MDgsMHhiNSwweDAwLDB4MjEsMHg0MCwweDBiLDB4MzgsMHg4MiwweDFjLDB4MjEsMHhiNywweDAwLDB4MjMgfX0sCi0gezE2LCAweGYwNzAsIDAsIHsweGU4LDB4NGEsMHg3MiwweDI2LDB4OWUsMHg0MCwweDhmLDB4ODEsMHhhYiwweDQwLDB4NDIsMHg3MCwweDUyLDB4MzgsMHgwMCwweGEzIH19LAotIHsxNiwgMHhmMDgwLCAwLCB7MHgyMiwweDIwLDB4YzQsMHg0OSwweDMxLDB4MDIsMHgxZSwweDBhLDB4YjcsMHgyMiwweDJkLDB4ZTgsMHgwOCwweDcyLDB4MDIsMHhhOCB9fSwKLSB7MTYsIDB4ZjA5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjYsMHg4MCwweDIxLDB4ZTAgfX0sCi0gezE2LCAweGYwYTAsIDAsIHsweDBiLDB4NzgsMHgwYiwweDFlLDB4MDAsMHhiNCwweDgyLDB4M2IsMHhlOCwweDRjLDB4N2MsMHgxMywweGZlLDB4MDIsMHg5NywweDgwIH19LAotIHsxNiwgMHhmMGIwLCAwLCB7MHgzMywweGEwLDB4MDgsMHgzOCwweDAzLDB4OWEsMHgwMCwweGY3LDB4ODgsMHgzNSwweGUyLDB4MGMsMHg3OCwweGUzLDB4MGUsMHgwMCB9fSwKLSB7MTYsIDB4ZjBjMCwgMCwgezB4ZTMsMHhlOCwweDM0LDB4ZjgsMHgwYywweDNjLDB4MjMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwZDAsIDAsIHsweDA4LDB4MWQsMHhhOCwweDA0LDB4ZjEsMHgwMCwweDNlLDB4NDIsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZmIsMHgwMCwweGJlIH19LAotIHsxNiwgMHhmMGUwLCAwLCB7MHhjYywweDFlLDB4YjYsMHgwNywweGVkLDB4ODAsMHhmYiwweDAwLDB4MzYsMHgwMCwweDBmLDB4YjAsMHg0MywweDY4LDB4MDAsMHhjYiB9fSwKLSB7MTYsIDB4ZjBmMCwgMCwgezB4MzAsMHgzZSwweGQ4LDB4MGYsMHhiNiwweDBiLDB4ZWQsMHg0MCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MmYsMHhiNiwweDAzLDB4YzIgfX0sCi0gezE2LCAweGYxMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjIsMHg0MCwweGZiLDB4OTEsMHgzZCwweDRjIH19LAotIHsxNiwgMHhmMTEwLCAwLCB7MHg4MCwweGY4LDB4MDMsMHhkZSwweDQwLDB4YzYsMHg4MCwweDFiLDB4ZjAsMHg0ZiwweGZkLDB4MDcsMHhmZiwweDAwLDB4Y2QsMHg4MCB9fSwKLSB7MTYsIDB4ZjEyMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4NjgsMHgwMywweGJhLDB4MDAsMHhmZiwweDgwLDB4MzMsMHhlMCwweDA3LDB4ZjgsMHgwMywweDNmLDB4MTAgfX0sCi0gezE2LCAweGYxMzAsIDAsIHsweGNmLDB4ODAsMHgzZiwweGUwLDB4MGMsMHhmYywweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTQwLCAwLCB7MHhhOCwweDExLDB4OTAsMHgwMCwweGI1LDB4YzAsMHgyZCwweDQwLDB4MDgsMHg2MiwweDAyLDB4ZGMsMHgyMCwweGQ2LDB4MDIsMHgyMSB9fSwKLSB7MTYsIDB4ZjE1MCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4MDIsMHhkYywweDgxLDB4YjUsMHgwMCwweDgxLDB4NDQsMHgwZCwweDYxLDB4MjIsMHgxOCwweDA0LDB4YjcgfX0sCi0gezE2LCAweGYxNjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDBiLDB4NzAsMHgwMiwweGJjLDB4MDAsMHhhNywweDAxLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMywweGVhIH19LAotIHsxNiwgMHhmMTcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDEsMHhiNiwweDAxLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4ZjE4MCwgMCwgezB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwYSwweDk2LDB4MTAsMHgyOSwweGMxLDB4NGIsMHg3MCwweDA2LDB4ZGMsMHgxMCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGYxOTAsIDAsIHsweDI1LDB4ODAsMHgwOCwweDYwLDB4ODIsMHgxYSwweDIwLDB4YTMsMHgwMCwweDI1LDB4YzAsMHgwYiwweDMxLDB4MDIsMHg1YywweDQwIH19LAotIHsxNiwgMHhmMWEwLCAwLCB7MHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCwweDg4LDB4MjAsMHgwMiwweGVkLDB4MDAsMHg4YSwweDYwLDB4MjAgfX0sCi0gezE2LCAweGYxYzAsIDAsIHsweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIxLDB4MDAsMHgyNCwweDAwLDB4MjgsMHgyNCwweDAyLDB4MGEsMHgwMCwweDMzIH19LAotIHsxNiwgMHhmMWQwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCwweDJjLDB4YzAsMHg4OCwweDMwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZjFlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzYgfX0sCi0gezE2LCAweGYxZjAsIDAsIHsweDBjLDB4ODAsMHgwMywweGU1LDB4MDAsMHgwOSwweGM4LDB4YWIsMHhlMiwweDBiLDB4ZjAsMHgwMiwweGZjLDB4MDAsMHg0YSwweDAwIH19LAotIHsxNiwgMHhmMjAwLCAwLCB7MHgzNiwweGMwLDB4MDgsMHg5MCwweDAzLDB4YTYsMHgwMCwweGZmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4N2MsMHgwMCB9fSwKLSB7MTYsIDB4ZjIxMCwgMCwgezB4OGYsMHgwMCwweDJmLDB4YzAsMHgyOCwweGYwLDB4MDIsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyMjAsIDAsIHsweDgwLDB4MDAsMHhlMSwweDAwLDB4ZmEsMHgwMSwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZjksMHg0MCwweDNlIH19LAotIHsxNiwgMHhmMjMwLCAwLCB7MHhjMCwweDA3LDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSwweDAwLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgyMywweGU1LDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfX0sCi0gezE2LCAweGYyNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGZjLDB4MjAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhmMjYwLCAwLCB7MHgwYywweGM4LDB4MDMsMHhmYywweDIwLDB4Y2QsMHg4MSwweGIzLDB4YzIsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4Y2EsMHgwMCB9fSwKLSB7MTYsIDB4ZjI3MCwgMCwgezB4M2MsMHg4MCwweDBjLDB4ZDAsMHg4MiwweDM2LDB4MDEsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDggfX0sCi0gezE2LCAweGYyODAsIDAsIHsweGNmLDB4MDQsMHgzYSwweGMwLDB4NWMsMHhiMCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgwNCwweGI4LDB4NDAsMHgyYywweDYwLDB4MDgsMHg4OSwweDAyLDB4ZWUsMHg4MCwweGE5LDB4NjAsMHgyYSB9fSwKLSB7MTYsIDB4ZjJhMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4MDMsMHg4YywweDAwLDB4YWEsMHg0MCwweDJlLDB4MDAsMHgwOCwweDEwLDB4MDIsMHgyNiwweDgxLDB4ZWIgfX0sCi0gezE2LCAweGYyYjAsIDAsIHsweDAwLDB4MjYsMHhjMCwweDhiLDB4YjAsMHgxMywweDZjLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDNkLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmMmMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIzLDB4MDAsMHhiYiwweDAzLDB4MmUsMHhjOCB9fSwKLSB7MTYsIDB4ZjJkMCwgMCwgezB4MDksMHhiMCwweDAyLDB4ZWUsMHgwMCwweDhiLDB4MTAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGE4LDB4MDAgfX0sCi0gezE2LCAweGYyZTAsIDAsIHsweDJlLDB4YzAsMHgwOCwweDg4LDB4MjIsMHhhNCwweDgwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHg0YiwweGIwLDB4MjIsMHgwYywweDAwIH19LAotIHsxNiwgMHhmMmYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMwMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMiwweDAwLDB4MmUsMHhjMCwweDI5LDB4MjgsMHgwMiwweGVjLDB4MDEsMHhhMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGYzMTAsIDAsIHsweGMwLDB4MDksMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEwLDB4MDAsMHgyYywweDQwLDB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweDkzIH19LAotIHsxNiwgMHhmMzIwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwYiwweDMwLDB4MDYsMHg0ZCwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZjMzMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgyMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGYzNDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhjYiwweDAwLDB4MzMsMHhjMCwweDBiLDB4ZjAsMHgwMywweGZjLDB4MTgsMHhlOCwweDAwIH19LAotIHsxNiwgMHhmMzUwLCAwLCB7MHgyZSwweDgwLDB4MDgsMHg4MCwweDAzLDB4YTQsMHgwMCwweGJmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4M2QsMHgxMSB9fSwKLSB7MTYsIDB4ZjM2MCwgMCwgezB4Y2YsMHgwMywweDNlLDB4YzEsMHg1ZCwweGYwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNzAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgxMCwweDNmLDB4NDAsMHgwZSwweGUwLDB4MDMsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmMzgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDJmLDB4YzAsMHgwMywweDc0LDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgyNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGYzYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4ZmMsMHg4OCwweDljLDB4MjksMHgzZiwweDA4IH19LAotIHsxNiwgMHhmM2IwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlYywweDAwLDB4ZmYsMHgwOCwweDNmLDB4MjgsMHgwZiwweGNhLDB4MDMsMHgzYywweDQxLDB4Y2YsMHgyMCB9fSwKLSB7MTYsIDB4ZjNjMCwgMCwgezB4NzMsMHgyYywweDBjLDB4YzAsMHgwMywweDMwLDB4MjAsMHhjZiwweDYwLDB4MzMsMHhkOCwweDBmLDB4NzgsMHgwMywweDNmLDB4ODAgfX0sCi0gezE2LCAweGYzZDAsIDAsIHsweGRkLDB4OTIsMHgzMywweGM4LDB4MGYsMHg1MCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2UwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHg0MCwweDg4LDB4NDAsMHgyZSwweDA0LDB4OGIsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgwZSB9fSwKLSB7MTYsIDB4ZjNmMCwgMCwgezB4N2YsMHg4ZiwweDllLDB4ODMsMHg2NSwweDgyLDB4Y2YsMHg2OCwweDNlLDB4NTAsMHg4ZCwweDA0LDB4OTIsMHgyZiwweDA0LDB4ZDMgfX0sCi0gezE2LCAweGY0MDAsIDAsIHsweDQwLDB4NzQsMHhkYywweDBkLDB4YTIsMHgwMiwweDIwLDB4NDAsMHg4OSwweDAwLDB4MjIsMHhmMCwweDBiLDB4OTgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmNDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4MDksMHhhMCwweDg1LDB4MmMsMHgwMSB9fSwKLSB7MTYsIDB4ZjQyMCwgMCwgezB4MGIsMHgwMCwweDEwLDB4Y2MsMHg0MCwweGEyLDB4MDgsMHgyYywweDAwLDB4ZGIsMHgxMSwweDAyLDB4ODksMHgwMCwweDkzLDB4MzAgfX0sCi0gezE2LCAweGY0MzAsIDAsIHsweDIwLDB4MDUsMHgwOCwweDEzLDB4MDIsMHg4MCwweDA4LDB4YTMsMHg2MCwweDYwLDB4YzAsMHgwYSwweGIwLDB4ODIsMHgwOCwweDg0IH19LAotIHsxNiwgMHhmNDQwLCAwLCB7MHg4MSwweDIwLDB4MjAsMHhkMCwweDBiLDB4MTAsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4MTIsMHg4OCwweDgwLDB4NmUsMHgyMCwweDBiLDB4ODgsMHg4MiwweGVlLDB4MDAsMHhiYSwweDgxLDB4MmUgfX0sCi0gezE2LCAweGY0NjAsIDAsIHsweDYwLDB4NWEsMHg5OCwweDAyLDB4YTIsMHgwMCwweDhiLDB4MDAsMHgyYSwweDYwLDB4MDgsMHgxMSwweDFhLDB4MmMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhmNDcwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGI4LDB4MGEsMHgyOCwweDAwLDB4ODEsMHgyMCwweDAyLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhiMCB9fSwKLSB7MTYsIDB4ZjQ4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlZCwweDAwLDB4ZDksMHg4MCwweDNlLDB4MjAgfX0sCi0gezE2LCAweGY0OTAsIDAsIHsweDRmLDB4OTgsMHgwMCwweGViLDB4MjAsMHhmYiwweGUwLDB4MmUsMHg2MCwweDBiLDB4OGMsMHg2MiwweGFlLDB4MjAsMHg4YiwweDAwIH19LAotIHsxNiwgMHhmNGEwLCAwLCB7MHgyMiwweDYwLDB4MDgsMHhiYywweDAzLDB4YTAsMHgyMCwweGViLDB4MDAsMHgyMiwweGMxLDB4MGEsMHgxOCwweDBiLDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4ZjRiMCwgMCwgezB4ZDksMHgwMCwweGIyLDB4YzAsMHgwZiwweDkwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0YzAsIDAsIHsweGUwLDB4MDEsMHg5NCwweDg4LDB4ZmYsMHgwMCwweDNmLDB4MDEsMHgwZiwweGQwLDB4MDEsMHhmMCwweDA4LDB4ZGQsMHgwMSwweDNmIH19LAotIHsxNiwgMHhmNGQwLCAwLCB7MHg0MiwweDA3LDB4NDAsMHgwMywweDVjLDB4MDAsMHhhZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjgsMHgwMCwweGYwLDB4MDAsMHhkZiB9fSwKLSB7MTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4ZjQsMHg1MCwweGZkLDB4ODAsMHgzZiwweGMwLDB4MGYsMHhkMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGY0ZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4YWMsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhmNTAwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhhOCwweDIwLDB4Y2EsMHg0MCwweDNhLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlYSwweDA4LDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZjUxMCwgMCwgezB4M2EsMHgwMCwweDRjLDB4ZjYsMHgyMywweDJjLDB4MzAsMHhjYiwweDAwLDB4MzYsMHhjMCwweDBkLDB4OTAsMHgwMywweGExLDB4MDIgfX0sCi0gezE2LCAweGY1MjAsIDAsIHsweGQ5LDB4MDAsMHhiYSwweGMwLDB4MGYsMHg5OCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweDhhLDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5NSwweDAyLDB4ZTAsMHgwOCwweDg4LDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4ZjU0MCwgMCwgezB4NzAsMHg4ZiwweDhjLDB4MDIsMHhlMCwweDAwLDB4YmYsMHgwMiwweDIwLDB4MDAsMHgwOCwweGI4LDB4MDIsMHgwZSwweDAwLDB4ZGYgfX0sCi0gezE2LCAweGY1NTAsIDAsIHsweDAwLDB4MjMsMHhkZCwweDA4LDB4OTgsMHg4MiwweDJhLDB4MDAsMHg4OSwweDgwLDB4MjMsMHhjMCwweDBiLDB4NTAsMHgxYSwweDMyIH19LAotIHsxNiwgMHhmNTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDA1LDB4MjQsMHg0MSB9fSwKLSB7MTYsIDB4ZjU3MCwgMCwgezB4MDksMHgxMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4OTAsMHgyYywweDgwLDB4MWIsMHgyNCwweDgyLDB4Y2MsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGY1ODAsIDAsIHsweDJjLDB4ODAsMHgwOCwweDA0LDB4MDgsMHgwNCwweDAxLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgyOCwweDEyLDB4MDIsMHg2YywweDgwIH19LAotIHsxNiwgMHhmNTkwLCAwLCB7MHg4MSwweDQ4LDB4MjQsMHhjNCwweDBiLDB4MTAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVhMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4NDIsMHg4NiwweDgwLDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGY2LDB4OTAsMHg4ZCwweDgwLDB4MjEgfX0sCi0gezE2LCAweGY1YjAsIDAsIHsweDIyLDB4MGIsMHg1OCwweDAyLDB4ZDcsMHg0MCwweGI3LDB4OTAsMHgyMSwweGUwLDB4MDgsMHg0OSwweDkyLDB4MWUsMHg1MywweDk3IH19LAotIHsxNiwgMHhmNWMwLCAwLCB7MHg4MSwweDIxLDB4ZTAsMHg0OCwweGM4LDB4MGEsMHg1MiwweDIyLDB4ODUsMHg4OCwweDI1LDB4ZTAsMHgwYiwweDU4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZjVkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODMsMHgwMCwweDM0LDB4YzAgfX0sCi0gezE2LCAweGY1ZTAsIDAsIHsweDBmLDB4MDAsMHgwMywweGNlLDB4MjAsMHhjMywweDMwLDB4N2MsMHg5NCwweDBiLDB4MzQsMHg4MywweGNjLDB4MTQsMHhmMywweDAyIH19LAotIHsxNiwgMHhmNWYwLCAwLCB7MHgzYywweDgwLDB4MGMsMHgwNCwweDAzLDB4MDQsMHg2MCwweGMzLDB4MDAsMHhiMCwweGMwLDB4MGMsMHgxMCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZjYwMCwgMCwgezB4YzksMHgwMCwweDNjLDB4YzQsMHgwZiwweDExLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDAwLDB4ZWUsMHgwMSwweDNmLDB4YzAsMHg0ZiwweGUxLDB4MDMsMHhkNCwweDQwLDB4ZjUsMHgxNiwweDdhIH19LAotIHsxNiwgMHhmNjIwLCAwLCB7MHhjMCwweDRlLDB4ZjAsMHgwMywweGY0LDB4MTAsMHgzNywweDA1LDB4M2QsMHhjMCwweDBmLDB4YzAsMHgwYiwweGRjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgzYiwweGMyLDB4MGUsMHhkMCwweDA3LDB4YmMsMHgwMiwweGVmLDB4MDAsMHgzYiwweGM2LDB4MGYsMHhkMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGY2NDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZjQsMHgwMCwweGRkLDB4ODQsMHgzMywweDgwIH19LAotIHsxNiwgMHhmNjUwLCAwLCB7MHgwNCwweGYwLDB4MDMsMHg2YywweDAyLDB4Y2IsMHgwMiwweDdlLDB4YzAsMHgxZiwweGEwLDB4NTMsMHhlYywweDAwLDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4ZjY2MCwgMCwgezB4MzQsMHg0MCwweDBjLDB4ZDAsMHgwYiwweDIwLDB4MTAsMHhlYiwweDAwLDB4MWUsMHhlMCwweDBmLDB4MzAsMHgwYiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGY2NzAsIDAsIHsweGMxLDB4MDAsMHgzMiwweGMwLDB4MGYsMHg5MSwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweDgwLDB4MDgsMHg2MCwweDAwLDB4MTQsMHgwMCwweDg1LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4ZjY5MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4NTIsMHhkNCwweDA0LDB4ODMsMHgyOCwweDI5LDB4YzAsMHgyOCwweDUwLDB4MDMsMHg1MCwweDAwLDB4ODcgfX0sCi0gezE2LCAweGY2YTAsIDAsIHsweDQwLDB4MjUsMHhjOCwweDBmLDB4NjAsMHgwMiwweDA0LDB4MDAsMHhhNywweDAwLDB4M2QsMHhjOCwweDBiLDB4NTIsMHgwMiwweGQyIH19LAotIHsxNiwgMHhmNmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg5NSwweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4ZjZjMCwgMCwgezB4MDksMHgzOCwweDAyLDB4MWUsMHgxMSwweGE3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDUyLDB4Y2UsMHgwYSwweDk3LDB4OTUgfX0sCi0gezE2LCAweGY2ZDAsIDAsIHsweDIxLDB4ZTAsMHgxOSwweDVjLDB4MDIsMHgwZSwweDAwLDB4YTcsMHg4MCwweDI5LDB4YzgsMHgwYiwweGY4LDB4MDIsMHgxZSwweDIwIH19LAotIHsxNiwgMHhmNmUwLCAwLCB7MHg4ZCwweDgwLDB4MjEsMHhlMCwweDBiLDB4NTgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MiwweGUwLDB4YTAsMHhlOCwweDI5LDB4MzAsMHgwNiwweDBlLDB4NTAsMHhhYiwweDgwLDB4MmMgfX0sCi0gezE2LCAweGY3MDAsIDAsIHsweGYwLDB4MGIsMHgzMSwweDQyLDB4Y2MsMHgwMCwweDkzLDB4MDAsMHgyOCwweGM0LDB4MDksMHg5OCwweDAyLDB4NGMsMHgyOCwweDgzIH19LAotIHsxNiwgMHhmNzEwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYSwweGIwLDB4MDIsMHgwZCwweDAwLDB4YTIsMHg1OCwweDI4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZjcyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZGUsMHg4MCwweDMxLDB4YTAgfX0sCi0gezE2LCAweGY3MzAsIDAsIHsweDA5LDB4ZTIsMHgwYiwweDc4LDB4MDQsMHhlZSwweGE0LDB4MmYsMHhhNCwweDhiLDB4ZWMsMHgwMiwweGQ4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhmNzQwLCAwLCB7MHgyNywweDgxLDB4MGQsMHhlYywweDA2LDB4MWIsMHgwMCwweGVhLDB4MDQsMHgzZSwweDgwLDB4MGIsMHhlMCwweDAzLDB4M2IsMHgwMCB9fSwKLSB7MTYsIDB4Zjc1MCwgMCwgezB4Y2UsMHhjMCwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3NjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDgwLDB4ZjgsMHgxMCwweDNlLDB4MDUsMHgwZSwweDg4LDB4MDMsMHhlMCwweDA4LDB4OTgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhmNzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHg4MywweGUxLDB4NDAsMHhlOCwweDAwLDB4M2EsMHgwMiwweDBlLDB4ODAsMHg0MywweGUxLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGY3OTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhmN2EwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgwNCwweDIwLDB4ZTksMHg5MCwweDMyLDB4NjgsMHgwZSwweDk4LDB4MDMsMHhhNCwweDAwLDB4YzEsMHgwMCB9fSwKLSB7MTYsIDB4ZjdiMCwgMCwgezB4MzAsMHg0MCwweDBjLDB4OTQsMHg4MywweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGE0LDB4MDAgfX0sCi0gezE2LCAweGY3YzAsIDAsIHsweGM5LDB4MDAsMHgzMCwweDUwLDB4MGMsMHgxYSwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDUwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwOCwweDg5LDB4MDYsMHgxNiB9fSwKLSB7MTYsIDB4ZjdlMCwgMCwgezB4NjEsMHgwYiwweDljLDB4MDIsMHhlNCwweDIwLDB4YTksMHgwMCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDIsMHgyNywweDYwLDB4YTkgfX0sCi0gezE2LCAweGY3ZjAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgxYSwweDI0LDB4MDAsMHg4OSwweDAwLDB4MzYsMHg0MCwweDI4LDB4OTgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmODAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDJjLDB4MDAsMHhhOSwweDA4LDB4MmUsMHhjMiB9fSwKLSB7MTYsIDB4ZjgxMCwgMCwgezB4MDksMHgxMCwweDAwLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgwNiwweDQwLDB4ODksMHg5NiwweDA2LDB4ZTYsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGY4MjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAyLDB4ODksMHgwMCwweDI0LDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwYywweDA2IH19LAotIHsxNiwgMHhmODMwLCAwLCB7MHg4MywweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDQ0LDB4MmMsMHg1MCwweDA4LDB4MTQsMHgwMiwweDA1LDB4ODAsMHg4MSwweDIwLDB4NjQgfX0sCi0gezE2LCAweGY4NTAsIDAsIHsweDcwLDB4MWIsMHgxNCwweDAyLDB4ZTQsMHg4MCwweGExLDB4MjAsMHg2NCwweDQwLDB4MTksMHgxMiwweDBhLDB4MDQsMHg4MCwweGExIH19LAotIHsxNiwgMHhmODYwLCAwLCB7MHgwMCwweDJjLDB4NTAsMHgxOCwweDE0LDB4MDIsMHg4NSwweDAwLDB4ODEsMHg0MCwweDI0LDB4NDAsMHg0MCwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4Zjg3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTAsMHgwMCwweDNjLDB4MDAgfX0sCi0gezE2LCAweGY4ODAsIDAsIHsweDBkLDB4ODAsMHgwMiwweDAwLDB4MDAsMHhhYSwweDUwLDB4MzYsMHgwMCwweDBmLDB4ODAsMHgwMywweGUxLDB4NDAsMHhjOCwweDUyIH19LAotIHsxNiwgMHhmODkwLCAwLCB7MHg3MiwweDE0LDB4MGMsMHgwNSwweDE2LDB4MjAsMHgwOCwweGM4LDB4NTAsMHgzZSwweDAxLDB4MGMsMHg4MCwweDAzLDB4YTAsMHgwNCB9fSwKLSB7MTYsIDB4ZjhhMCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4YjAsIDAsIHsweDk4LDB4MTksMHhmNSwweDAyLDB4ZmQsMHg0MCwweDNmLDB4ZDAsMHgwZiwweGQ0LDB4MjMsMHhmNCwweDQ0LDB4ZmQsMHgxNCwweDdmIH19LAotIHsxNiwgMHhmOGMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwNywweGY0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg1MCwweDA3LDB4ZDEsMHgyMywweGY0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4ZjhkMCwgMCwgezB4NDAsMHgxZSwweDUwLDB4MDcsMHhkMCwweDBiLDB4NzUsMHgwMCwweGZkLDB4MDIsMHgzZSwweDUwLDB4MGYsMHhkNCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGY4ZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgwMCwweGM5LDB4YTgsMHgzZSwweDcyIH19LAotIHsxNiwgMHhmOGYwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHhlNiwweGMwLDB4ZmQsMHhhMCwweGIzLDB4NDAsMHgwZiwweGQwLDB4MDMsMHg3NywweDgwLDB4Y2QsMHg5MCB9fSwKLSB7MTYsIDB4ZjkwMCwgMCwgezB4N2YsMHg0MCwweDBmLDB4ZGEsMHhhMywweDE2LDB4OTAsMHhhOSwweGMwLDB4MzIsMHg2MCwweDRjLDB4YjEsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGY5MTAsIDAsIHsweGMxLDB4MDAsMHgzMywweDZhLDB4MGIsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTIwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4ZTAsMHgyZSwweDMwLDB4MGIsMHg4ZCwweDAyLDB4ZjMsMHg0MCwweGI4LDB4ZTgsMHg3NiB9fSwKLSB7MTYsIDB4ZjkzMCwgMCwgezB4MDAsMHg0ZiwweDgwLDB4MGEsMHgyMiwweDgwLDB4ODgsMHg5MCwweDZlLDB4MjgsMHg4ZiwweDhhLDB4MDMsMHg2MSwweDQ0LDB4ZjggfX0sCi0gezE2LCAweGY5NDAsIDAsIHsweGUxLDB4M2UsMHgyYSwweDA4LDB4ODgsMHgwMywweDQyLDB4YTAsMHhkYywweGEwLDB4M2UsMHgxMCwweDBiLDB4ODUsMHgwYSwweDBlIH19LAotIHsxNiwgMHhmOTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4NSwweDA4LDB4MmQsMHg0OCB9fSwKLSB7MTYsIDB4Zjk2MCwgMCwgezB4MWIsMHg1MiwweDgyLDB4ZDQsMHg4MCwweGIxLDB4MTQsMHgyMCwweDQwLDB4MGIsMHgxOCwweDAyLDB4MDUsMHg4MiwweDgxLDB4MDAgfX0sCi0gezE2LCAweGY5NzAsIDAsIHsweDZjLDB4NDIsMHgwYiwweDEyLDB4ODIsMHgwNCwweDAwLDB4YTEsMHg2MCwweDIxLDB4NTAsMHgwYiwweDUwLDB4MDIsMHgxNCwweDkwIH19LAotIHsxNiwgMHhmOTgwLCAwLCB7MHg5NSwweDJjLDB4MjgsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4ZCwweDQ0LDB4MmYsMHg0MCwweDBiLDB4ZDQsMHgwMiwweGY0LDB4MDQsMHhiOSwweDA4LDB4MjIgfX0sCi0gezE2LCAweGY5YTAsIDAsIHsweDQwLDB4MGEsMHg5MiwweDAyLDB4MmMsMHg4NCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGEsMHgxNCwweDAyLDB4NmMsMHg4MCwweGE5IH19LAotIHsxNiwgMHhmOWIwLCAwLCB7MHgwMSwweDJhLDB4NDAsMHgwOSwweDUwLDB4MGEsMHg1YywweDAyLDB4OGQsMHg2MCwweDJhLDB4NDAsMHgwYiwweDkwLDB4NDIsMHgwNiB9fSwKLSB7MTYsIDB4ZjljMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDYyLDB4YzksMHgwMiwweDNlLDB4NTQgfX0sCi0gezE2LCAweGY5ZDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDQwLDB4MjIsMHg0NiwweDBiLDB4OTgsMHgwMywweDY3LDB4MjAsMHhjOSwweDAxIH19LAotIHsxNiwgMHhmOWUwLCAwLCB7MHgyZSwweDY5LDB4MGIsMHg5NCwweDBiLDB4MjUsMHgyMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MmQsMHg5MiwweDBhLDB4MjYsMHgyMiB9fSwKLSB7MTYsIDB4ZjlmMCwgMCwgezB4OTksMHgwMCwweDJhLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMDAsIDAsIHsweDI4LDB4MDEsMHg4NiwweDAyLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDgwLDB4ZjEsMHhhMCwweDNlIH19LAotIHsxNiwgMHhmYTEwLCAwLCB7MHg2MiwweDBmLDB4OTgsMHg4MywweGM2LDB4MjAsMHhmOSwweDAwLDB4M2UsMHg0OSwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHg3MSB9fSwKLSB7MTYsIDB4ZmEyMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDBiLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGZhMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgxMCwweGM4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhmYTQwLCAwLCB7MHg0ZiwweDgwLDB4NDMsMHhiMCwweDAwLDB4YzgsMHg0MSwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHgwMiB9fSwKLSB7MTYsIDB4ZmE1MCwgMCwgezB4M2UsMHgxMCwweDRjLDB4ODAsMHgwMywweDAxLDB4MjAsMHhjOCwweDAwLDB4M2IsMHgwMCwweDBjLDB4YzAsMHgwMywweGIwLDB4MDAgfX0sCi0gezE2LCAweGZhNjAsIDAsIHsweGNjLDB4MDQsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4ZmE4MCwgMCwgezB4YjIsMHgwZSwweGUwLDB4ODIsMHhmOSwweDA0LDB4OGEsMHgwMCwweDJlLDB4ODEsMHgwYywweGUwLDB4MGEsMHgzYSwweDgwLDB4ZGEgfX0sCi0gezE2LCAweGZhOTAsIDAsIHsweDAwLDB4MjIsMHhiNiwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4ZSwweDAwLDB4MmEsMHg4MCwweDBiLDB4NjAsMHgwYiwweDBhIH19LAotIHsxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDIsMHg5MywweDgxLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ZmFiMCwgMCwgezB4NGIsMHgzMCwweDAyLDB4YzgsMHgwMCwweDgzLDB4Y2EsMHgyMCwweGUwLDB4MTksMHhiMCwweDA2LDB4OGMsMHgwMCwweDgxLDB4MDQgfX0sCi0gezE2LCAweGZhYzAsIDAsIHsweDQ0LDB4NDAsMHgwOCwweDM0LDB4MDIsMHgwZCwweDAwLDB4ODMsMHgwMCwweDJhLDB4MDAsMHgwOCwweDAwLDB4MGEsMHg4MCwweDQwIH19LAotIHsxNiwgMHhmYWQwLCAwLCB7MHg4OCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFlMCwgMCwgezB4YTAsMHgwMSwweDA0LDB4MDIsMHg5NywweDA4LDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwNiwweGNhLDB4MDAsMHg4MywweDA5LDB4MjEgfX0sCi0gezE2LCAweGZhZjAsIDAsIHsweGMwLDB4MGEsMHg3MCwweDAyLDB4ZGMsMHgwMCwweDg1LDB4MzEsMHgyZCwweDY4LDB4MDksMHgzMCwweDAyLDB4MWMsMHgxNCwweDkzIH19LAotIHsxNiwgMHhmYjAwLCAwLCB7MHgyMCwweDIwLDB4YzAsMHgwOCwweGYwLDB4NDIsMHg5YywweDAyLDB4OGYsMHgwMCwweDI5LDB4NDAsMHgwMywweDcwLDB4MTIsMHgyOCB9fSwKLSB7MTYsIDB4ZmIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4OTYsMHg4NCwweDNkLDB4YTAgfX0sCi0gezE2LCAweGZiMjAsIDAsIHsweDBmLDB4NzgsMHgwMywweDlhLDB4MDIsMHg4NywweDgwLDB4YjEsMHhlMCwweDBiLDB4NzgsMHgwMywweGI2LDB4MDAsMHhjNSwweGEwIH19LAotIHsxNiwgMHhmYjMwLCAwLCB7MHgzNSwweDYxLDB4MGMsMHg3OCwweDEzLDB4MWUsMHgwMiwweGM3LDB4ODAsMHgyOSwweDAwLDB4MGMsMHg0OCwweDAzLDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI0MCwgMCwgezB4YzQsMHg4MCwweDMxLDB4NjAsMHgwZiwweDU4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNTAsIDAsIHsweDA4LDB4MWQsMHhhNCwweDAwLDB4ZWEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlOCwweDA4LDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhmYjYwLCAwLCB7MHg4MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDgsMHhmOSwweDAwLDB4M2MsMHg1MCwweDJlLDB4ZjAsMHgwMywweGU4LDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4ZmI3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHgzMCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgzMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGZiODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZDYsMHgwMCwweGNkLDB4ODAsMHgzMywweGUwIH19LAotIHsxNiwgMHhmYjkwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhmYSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4YTAsMHgwZCwweGY4LDB4MDMsMHhmYSwweDQwLDB4Y2QsMHhkMCB9fSwKLSB7MTYsIDB4ZmJhMCwgMCwgezB4NzcsMHg3ZSwweDBjLDB4ZTgsMHg0MywweDFlLDB4MDAsMHhjZiwweGQ4LDB4M2YsMHhlMCwweDBjLDB4YzgsMHgwMywweDNhLDB4YzQgfX0sCi0gezE2LCAweGZiYjAsIDAsIHsweGNjLDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMiwweDhkLDB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAzLDB4ZDgsMHgxMCwweDM1LDB4MjAsMHg4YiB9fSwKLSB7MTYsIDB4ZmJkMCwgMCwgezB4ZDQsMHgwZCwweDY0LDB4MDMsMHhkOCwweGMwLDB4ODUsMHgwMCwweDJmLDB4NGUsMHgwNywweDY0LDB4MDIsMHg5YywweDAyLDB4ZDcgfX0sCi0gezE2LCAweGZiZTAsIDAsIHsweDMwLDB4MmYsMHgwNCwweDBkLDB4ZjEsMHgwYiwweDU0LDB4NDAsMHhhZiwweDAwLDB4MzUsMHg0MCwweDA4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4NDAsMHg4NCwweDE4LDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZmMwMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGEsMHgyMCwweGI1LDB4MDAsMHgwOSwweDAwLDB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwNCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGZjMTAsIDAsIHsweDZkLDB4NGMsMHg4OSwweDYwLDB4MDIsMHg1YywweDQwLDB4OTcsMHgwMCwweDZkLDB4YzAsMHgwOSwweDQwLDB4MDIsMHg1OCwweDgwIH19LAotIHsxNiwgMHhmYzIwLCAwLCB7MHg4NCwweDg4LDB4MjUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMzMCwgMCwgezB4MjAsMHgxNCwweGM2LDB4NDgsMHg4MCwweDAwLDB4MjAsMHg4MCwweDA4LDB4YWMsMHgwMiwweGE4LDB4MDAsMHhiMSwweDAwLDB4YTggfX0sCi0gezE2LCAweGZjNDAsIDAsIHsweDg4LDB4MDksMHgyMiwweDAyLDB4ODYsMHg0MiwweDgxLDB4MDAsMHg2YywweDUyLDB4MGIsMHgyMCwweDAyLDB4YzcsMHg1MiwweDgzIH19LAotIHsxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweDM0LDB4ODIsMHg2NywweDAwLDB4YTMsMHg4MCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZmM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMywweDAwLDB4Y2IsMHhjMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGZjNzAsIDAsIHsweDJjLDB4OTAsMHg4MiwweGU2LDB4MDAsMHhiYiwweDgwLDB4YmUsMHg3OCwweDA4LDB4OGUsMHgwMiwweGVlLDB4MDAsMHg4ZCwweDAwIH19LAotIHsxNiwgMHhmYzgwLCAwLCB7MHgyNywweDYwLDB4MGQsMHg5MCwweDBhLDB4NmYsMHgwMCwweDlmLDB4MDIsMHgyZSwweDAwLDB4MDksMHhiNCwweDAzLDB4NjcsMHg4MCB9fSwKLSB7MTYsIDB4ZmM5MCwgMCwgezB4Y2EsMHg0MCwweGU0LDB4YzAsMHgwYywweDMwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjYTAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDgwLDB4ZmIsMHgyMiwweDNlLDB4NDAsMHgwZiwweDgwLDB4MTMsMHhlNCwweDAwLDB4ZmIsMHg4MCwweDNlIH19LAotIHsxNiwgMHhmY2IwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4NzAsMHgyMywweGFjLDB4MjAsMHhmYiB9fSwKLSB7MTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4OGYsMHg4MCwweDAzLDB4ZTksMHgyMCwweGY5LDB4MDgsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweGZjZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGM2LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhmY2UwLCAwLCB7MHgwZiwweGQxLDB4ODMsMHgzNCwweDQwLDB4Y2YsMHgwMCwweDNkLDB4NDAsMHgwYywweGQwLDB4MDMsMHhkZSwweDUwLDB4MGQsMHgwMCB9fSwKLSB7MTYsIDB4ZmNmMCwgMCwgezB4NzMsMHg0MCwweDBjLDB4ZDEsMHgwMywweDdjLDB4NDAsMHg4NywweDAyLDB4YjMsMHgwMCwweDBkLDB4ZjQsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGZkMDAsIDAsIHsweGNlLDB4MjAsMHgzMiwweDQwLDB4MGMsMHhkMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDEwLCAwLCB7MHg4MSwweDA0LDB4NjEsMHgyMiwweDhhLDB4MDAsMHgyMiwweDAwLDB4MGIsMHg4MCwweDQwLDB4MjUsMHgwMCwweDg5LDB4YzMsMHgyZSB9fSwKLSB7MTYsIDB4ZmQyMCwgMCwgezB4MjAsMHgwYSwweDk4LDB4MDMsMHhhMSwweDAwLDB4ODksMHgwMCwweDM2LDB4NDAsMHg4OCwweDk0LDB4MDIsMHgwZiwweDAxLDB4YWIgfX0sCi0gezE2LCAweGZkMzAsIDAsIHsweDAwLDB4MzIsMHhjMCwweDA4LDB4MDQsMHgwYSwweDI5LDB4MDAsMHhhOSwweDAyLDB4YTIsMHg0MCwweDBkLDB4YjAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhmZDQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDAwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHg2MSB9fSwKLSB7MTYsIDB4ZmQ1MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjUsMHgwMSwweDliLDB4ODgsMHgyZSwweDYwLDB4MDgsMHg4OCwweDAyLDB4ZTgsMHgwMCwweGIxLDB4MDIgfX0sCi0gezE2LCAweGZkNjAsIDAsIHsweDI0LDB4NDAsMHgxOCwweDkwLDB4MDIsMHgyYywweDAwLDB4YWIsMHgwMSwweDIwLDB4YzEsMHgwOCwweGI0LDB4NDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhmZDcwLCAwLCB7MHg4MiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ4MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MDAsMHgwYSwweDA0LDB4NDYsMHg4MywweDAxLDB4MmMgfX0sCi0gezE2LCAweGZkOTAsIDAsIHsweDQwLDB4MWEsMHgwMCwweDA2LDB4ODAsMHgwMCwweDgxLDB4MDAsMHgyNCwweDQwLDB4MDgsMHgyMCwweDBhLDB4MGMsMHgwMSwweGEzIH19LAotIHsxNiwgMHhmZGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDgwLDB4MDIsMHgwMCwweDAwLDB4YTEsMHgwMCwweDIwLDB4NDAsMHgwOSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZmRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAyLDB4YzgsMHgwMCwweDIyLDB4MDAgfX0sCi0gezE2LCAweGZkYzAsIDAsIHsweDBmLDB4OTAsMHgwMiwweDI1LDB4MDAsMHhkYSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMiwweGNjLDB4MDAsMHhmZCwweDAwIH19LAotIHsxNiwgMHhmZGQwLCAwLCB7MHgzNywweDQwLDB4MGMsMHgxMCwweDEzLDB4MmMsMHgwMiwweGFmLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZmRlMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4NDAsMHg0YywweDkwLDB4MGIsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkZjAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwNywweGMwLDB4MDMsMHhmNCwweDFjLDB4ZjQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmZTAwLCAwLCB7MHgwMCwweDFmLDB4YzAsMHgyMywweGIwLDB4MDIsMHg5ZCwweDAxLDB4M2YsMHg0MCwweDhmLDB4YzAsMHgwNywweGZjLDB4MDIsMHhmZiB9fSwKLSB7MTYsIDB4ZmUxMCwgMCwgezB4MDAsMHg3YiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGZlMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmEsMHgwMCwweGNiLDB4ODAsMHgzZiwweDI0IH19LAotIHsxNiwgMHhmZTMwLCAwLCB7MHgwYSwweGMxLDB4MDMsMHhmYywweDI0LDB4Y2QsMHgyMCwweDM3LDB4MGEsMHgwYywweGMyLDB4ODMsMHgzMCwweDgwLDB4ZGMsMHgwMiB9fSwKLSB7MTYsIDB4ZmU0MCwgMCwgezB4M2YsMHhjYywweDBkLDB4ZDksMHgwMywweDNjLDB4NTgsMHhkZiwweDMwLDB4MzMsMHhjOCwweDBkLDB4ZjQsMHgyMywweDNjLDB4NDAgfX0sCi0gezE2LCAweGZlNTAsIDAsIHsweGZmLDB4MDAsMHgzZiwweGM1LDB4NGYsMHhmMCwweDIzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZTYwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMiwweDBiLDB4ODIsMHgyZSwweDA4LDB4MGQsMHhiNywweDAyLDB4ZmQsMHgwMCwweDgzLDB4MTgsMHgwYSB9fSwKLSB7MTYsIDB4ZmU3MCwgMCwgezB4NTgsMHgwYSwweDg0LDB4YTIsMHhhNSwweGEwLDB4ODksMHgzMCwweDIyLDB4NTUsMHgwOCwweDEyLDB4NjIsMHhiZCwweDkwLDB4OGYgfX0sCi0gezE2LCAweGZlODAsIDAsIHsweDYyLDB4MjEsMHhkNiwweDQ4LDB4ZjMsMHgwMiwweDNjLDB4YzUsMHhiZiwweDQ4LDB4MmYsMHhkOCwweDRiLDB4YjcsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmZTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGVjLDB4MDAsMHg4MywweDAwLDB4MmUsMHg4OSB9fSwKLSB7MTYsIDB4ZmVhMCwgMCwgezB4MjgsMHgwMCwweDAyLDB4ZWMsMHhhMCwweDg5LDB4MjIsMHgyOCwweDgyLDB4MDgsMHgxMiwweDAyLDB4MjgsMHg0MCwweDlhLDB4MDggfX0sCi0gezE2LCAweGZlYjAsIDAsIHsweDI4LDB4YzgsMHg4OCwweGIyLDB4MGEsMHgwZCwweDEwLDB4OTMsMHgxMCwweGEwLDB4YzgsMHgyOCwweDMwLDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhmZWMwLCAwLCB7MHhiMywweDYwLDB4MmMsMHhjNCwweDBiLDB4MzAsMHhjMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg4YiwweDAwLDB4MmUsMHg4MCwweDA4LDB4YjEsMHgwMiwweGVjLDB4MDIsMHg4YiwweDAwLDB4MjAgfX0sCi0gezE2LCAweGZlZTAsIDAsIHsweGQwLDB4MGEsMHg5MCwweDAyLDB4YWMsMHgwMCwweDBiLDB4MDEsMHgyNiwweDQwLDB4MDgsMHg5NCwweDAyLDB4OGMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhmZWYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDEwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZmYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTQsMHg4YywweDIwLDB4Y2IsMHgwMiwweDNlLDB4MmQgfX0sCi0gezE2LCAweGZmMTAsIDAsIHsweDA4LDB4ODAsMHgwMywweGVjLDB4MDgsMHhjOSwweDgwLDB4MWUsMHgwNCwweDBjLDB4YjAsMHgwMywweDAxLDB4MDgsMHg1MCwweDE4IH19LAotIHsxNiwgMHhmZjIwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHgwNCwweDAzLDB4MmMsMHgwMCwweGRiLDB4MDEsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4MmMsMHgwOCB9fSwKLSB7MTYsIDB4ZmYzMCwgMCwgezB4YmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmNDAsIDAsIHsweGUxLDB4MDAsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NjAsMHgwZiwweGMwLDB4MjMsMHhlYywweDAwLDB4ZmYsMHhjMCwweGJlIH19LAotIHsxNiwgMHhmZjUwLCAwLCB7MHg2MCwweDhmLDB4YzksMHgyMywweGY2LDB4NTAsMHhlZCwweDgwLDB4YjgsMHg1MCwweGFmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZmY2MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGZmNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGViLDB4MDAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhmZjgwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHgyYywweDAwLDB4ODksMHgwMCwweDNlLDB4OTgsMHg4YywweDMwLDB4MDMsMHg2MSwweDgwLDB4ZmEsMHg0MCB9fSwKLSB7MTYsIDB4ZmY5MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4YTUsMHgwMywweDJjLDB4MDAsMHhmYiwweDAxLDB4M2MsMHhjMCwweDJjLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGZmYTAsIDAsIHsweGRiLDB4MDIsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZmIwLCAwLCB7MHhjYSwweDAwLDB4MmUsMHg4MCwweDhiLDB4ODIsMHhhMCwweGMwLDB4OGMsMHg5MCwweDAyLDB4M2MsMHgwMCwweDhiLDB4ZjAsMHgyMiB9fSwKLSB7MTYsIDB4ZmZjMCwgMCwgezB4YzIsMHgwZCwweDgwLDB4MDIsMHgyNywweDAwLDB4OGIsMHgxMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MjIsMHgzYywweDAwLDB4YmYgfX0sCi0gezE2LCAweGZmZDAsIDAsIHsweDAwLDB4MmYsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDNjLDB4MDAsMHhiZiwweDAxLDB4YTMsMHhjMCwweDBiLDB4ZjAsMHgxMiwweGYyIH19LAotIHsxNiwgMHhmZmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDFjLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZmZmMCwgMCwgezB4MDgsMHgwMCwweDA2LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyMCwweGQwLDB4MDgsMHgyMCwweDAyLDB4NGMsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweDgwMTAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDEwLDB4MGEsMHgwYywweDAwLDB4YmIsMHgwMCwweDI4LDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg4MDIwLCAwLCB7MHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODAzMCwgMCwgezB4MjIsMHgxMSwweDFlLDB4MDAsMHg5NywweGEwLDB4MjEsMHhhMCwweDA4LDB4NzksMHgwMiwweDFlLDB4MDAsMHg5NywweDkwLDB4MjEgfX0sCi0gezE2LCAweDgwNDAsIDAsIHsweDYwLDB4MDksMHhlOCwweDIyLDB4M2UsMHgwMCwweGFmLDB4ODQsMHgyMSwweGU0LDB4NDgsMHg1YywweDAyLDB4MWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4MDUwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwOSwweDc4LDB4MDAsMHgxZSwweDA5LDB4YjMsMHg5MCwweDIxLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhkOCB9fSwKLSB7MTYsIDB4ODA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTgsMHgyYywweDQwLDB4YjMsMHhiMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweDgwNzAsIDAsIHsweDJjLDB4ODEsMHgxMywweDBjLDB4NDIsMHhkMSwweDAwLDB4YjAsMHhjMCwweDhjLDB4MzAsMHgwMywweDQ4LDB4MjAsMHhlMywweDAxIH19LAotIHsxNiwgMHg4MDgwLCAwLCB7MHgzYywweGMwLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGYzLDB4MTAsMHgzYywweGMwLDB4Y2QsMHgzMiwweDBiLDB4MGMsMHg0MCB9fSwKLSB7MTYsIDB4ODA5MCwgMCwgezB4ZDMsMHgwMCwweDMwLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwYTAsIDAsIHsweDQwLDB4MTUsMHhiYywweDAwLDB4ZTcsMHgwMCwweDNmLDB4ODAsMHgwYiwweGYxLDB4MDMsMHhmZCwweDAwLDB4NmQsMHgwMCwweDMyIH19LAotIHsxNiwgMHg4MGIwLCAwLCB7MHg0MCwweDFmLDB4NzAsMHgwNywweGQ4LDB4NDEsMHhjMywweDEwLDB4M2IsMHhjMCwweDBmLDB4ZDEsMHgwMywweGZkLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ODBjMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDAzLDB4ZWMsMHgxMCwweGZmLDB4MDgsMHgzZiwweGMzLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDgwZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHgwNCwweGZiLDB4MDIsMHgzZSwweDQwIH19LAotIHsxNiwgMHg4MGUwLCAwLCB7MHgwYiwweGEwLDB4MDMsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAsMHgwZCwweGIwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4ODBmMCwgMCwgezB4MzYsMHhjMSwweDJlLDB4OTAsMHgwMywweDJjLDB4MDAsMHhjYiwweGEwLDB4MzYsMHhkYywweDBmLDB4YjAsMHgwMywweDJkLDB4NjggfX0sCi0gezE2LCAweDgxMDAsIDAsIHsweGZiLDB4YTAsMHg5MiwweGMyLDB4MGMsMHhiMSwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwOCwweDM3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhlMCwweDAyLDB4MWQsMHg4MCwweGI3LDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwYSwweDQwLDB4MDIsMHgxYywweDE4LDB4ODQsMHgwMCwweDI1LDB4YzAsMHgxOCwweDUwLDB4MzIsMHgwZCwweDgwLDB4YTMgfX0sCi0gezE2LCAweDgxMzAsIDAsIHsweDMwLDB4MjEsMHhjYywweDBiLDB4MzQsMHg4MiwweDFjLDB4MTAsMHhiNywweDMwLDB4MjEsMHhjOCwweDA4LDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHg4MTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmQsMHg2MCB9fSwKLSB7MTYsIDB4ODE1MCwgMCwgezB4MGIsMHhmYywweDIyLDB4OWUsMHgwMCwweDhkLDB4ODAsMHgyNSwweGEwLDB4MDgsMHhmOCwweDIyLDB4OTIsMHgwMCwweGI0LDB4ODAgfX0sCi0gezE2LCAweDgxNjAsIDAsIHsweDI1LDB4ZTAsMHgwOCwweGY4LDB4MDIsMHgxZSwweDAwLDB4ODcsMHhiMCwweDIxLDB4ZTAsMHgwOSwweDdhLDB4MDIsMHgxZSwweDE4IH19LAotIHsxNiwgMHg4MTcwLCAwLCB7MHhiMywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE4MCwgMCwgezB4NDgsMHgwNCwweGM1LDB4MjAsMHhiMywweDAxLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMiwweDJjLDB4MDgsMHhiOSwweDAwLDB4MjAgfX0sCi0gezE2LCAweDgxOTAsIDAsIHsweDAzLDB4MGEsMHgwMCwweDgyLDB4MjIsMHgwOCwweDkwLDB4MGQsMHgyNiwweGU0LDB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGEzIH19LAotIHsxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMCwweDIyLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODFiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg5OSwweDAwLDB4ZmEsMHgwMiwweDNmLDB4OTAgfX0sCi0gezE2LCAweDgxYzAsIDAsIHsweDBmLDB4ZWMsMHgyMywweGE4LDB4MDAsMHhkYSwweDAwLDB4MzUsMHg4MCwweDBkLDB4ZTAsMHgwMiwweGJhLDB4MDIsMHhmZSwweGMyIH19LAotIHsxNiwgMHg4MWQwLCAwLCB7MHhiNiwweGEwLDB4MGUsMHhlNCwweDBiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHhiMiwweDgwLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ODFlMCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxZjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgyLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHg4MjAwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2EsMHgwMCwweDRmLDB4ODQsMHg4MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODIxMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDgyMjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTUsMHgwMCwweGM5LDB4MDIsMHgzZSwweDQwIH19LAotIHsxNiwgMHg4MjMwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHgyNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NjgsMHgyZiwweDEwLDB4MDMsMHgyNCwweDAwLDB4ZTksMHgxNCB9fSwKLSB7MTYsIDB4ODI0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwYiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MWUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDgyNTAsIDAsIHsweGM5LDB4MDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MjYwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweDg5LDB4MDEsMHgyZSwweDQwLDB4NGIsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4YzIsMHhhMiB9fSwKLSB7MTYsIDB4ODI3MCwgMCwgezB4NjAsMHg4OCwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHhjMSwweGEyLDB4NDAsMHg0OCwweDE2LDB4MDMsMHg2NCwweDAyLDB4ODkgfX0sCi0gezE2LCAweDgyODAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgyMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4M2UsMHg0MCwweDI4LDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHg4MjkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHg4OSwweDAyLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ODJhMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4ODksMHg5MCwweDAyLDB4YWMsMHgwMCwweGExLDB4MDggfX0sCi0gezE2LCAweDgyYjAsIDAsIHsweDIyLDB4NDAsMHgwOSwweDk4LDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHg4MmMwLCAwLCB7MHg4OSwweDAwLDB4MjYsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODJkMCwgMCwgezB4MDgsMHgwMCwweDI0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MSwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4MjIgfX0sCi0gezE2LCAweDgyZTAsIDAsIHsweDQ4LDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MSwweDgxLDB4MjQsMHgwMiwweDQ4LDB4MGEsMHg5MCwweDAyLDB4ODQsMHhhMCwweDgxIH19LAotIHsxNiwgMHg4MmYwLCAwLCB7MHgyOCwweDZjLDB4NGEsMHgwOCwweDEyLDB4ZDIsMHgwNCwweGExLDB4ODEsMHgyOCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ODMwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHg2MSwweDQwLDB4YzgsMHgwMCwweDJlLDB4MTQgfX0sCi0gezE2LCAweDgzMTAsIDAsIHsweDBmLDB4ODUsMHgwYiwweDIxLDB4NDIsMHhjYSwweDUwLDB4MjIsMHgxNCwweDBkLDB4ODUsMHg0MywweGExLDB4NDAsMHhlOCwweDUwIH19LAotIHsxNiwgMHg4MzIwLCAwLCB7MHgzMCwweDAwLDB4MGQsMHg4NSwweDAyLDB4YTEsMHhjMCwweGQ4LDB4MjAsMHgzYSwweDA4LDB4MmMsMHg4MiwweDBiLDB4MjAsMHg4MiB9fSwKLSB7MTYsIDB4ODMzMCwgMCwgezB4YzgsMHgyMCwweDM0LDB4MDksMHg4YywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzNDAsIDAsIHsweDk4LDB4MGQsMHhmYywweDAyLDB4ZjksMHgwMCwweDNmLDB4NDAsMHg0ZiwweGQxLDB4MDMsMHhlNCwweDQwLDB4ZjUsMHgxNCwweGJmIH19LAotIHsxNiwgMHg4MzUwLCAwLCB7MHg0NCwweDBkLDB4NTEsMHgyMywweDVjLDB4NDAsMHhmNSwweDEwLDB4MWYsMHg0ZSwweDRkLDB4NTAsMHgwMywweDY0LDB4MDgsMHhmOSB9fSwKLSB7MTYsIDB4ODM2MCwgMCwgezB4MjgsMHgzZSwweDRhLDB4OGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzYSwweDRiLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDgzNzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzMCwweDQwIH19LAotIHsxNiwgMHg4MzgwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZGQsMHgwMCwweDNiLDB4NDAsMHgwZSwweDkwLDB4MDMsMHg3NCwweDAwLDB4NWQsMHgwMCB9fSwKLSB7MTYsIDB4ODM5MCwgMCwgezB4MzYsMHg2NCwweDBkLDB4ZDAsMHgwMCwweGE2LDB4MDAsMHhmOSwweDQwLDB4MzIsMHg3OCwweDBjLDB4OTksMHgwMywweDI0LDB4NDAgfX0sCi0gezE2LCAweDgzYTAsIDAsIHsweGM5LDB4OTAsMHgzMiwweDUwLDB4MGYsMHg5YiwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4M2IwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4MDAsMHgyMiwweDAxLDB4MDgsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODNjMCwgMCwgezB4MDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MjAsMHgwOCwweDhhLDB4OGIsMHhlMSwweDAwLDB4YjggfX0sCi0gezE2LCAweDgzZDAsIDAsIHsweDgwLDB4MjIsMHgzMCwweDI4LDB4MGQsMHgwMiwweDIyLDB4MDAsMHhkOCwweGU0LDB4MjIsMHgyOCwweDBiLDB4OGYsMHgwYSwweDBlIH19LAotIHsxNiwgMHg4M2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhiMSwweDAwLDB4YTAsMHg0MCB9fSwKLSB7MTYsIDB4ODNmMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgwOCwweDQwLDB4MGEsMHg5MCwweDQyLDB4NDQsMHgwMCwweDkxLDB4MDAgfX0sCi0gezE2LCAweDg0MDAsIDAsIHsweDIwLDB4NTgsMHgyOCwweDkwLDB4MDIsMHg4NSwweDAwLDB4ODEsMHgyMCwweGEwLDB4NGMsMHgwOSwweDEyLDB4MGEsMHgwNCwweDgwIH19LAotIHsxNiwgMHg4NDEwLCAwLCB7MHg5MSwweDQwLDB4YTAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4OSwweDAxLDB4MjIgfX0sCi0gezE2LCAweDg0MzAsIDAsIHsweDQwLDB4MjgsMHg5MCwweDIyLDB4MDQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGIxIH19LAotIHsxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4MSwweDkwLDB4MDIsMHgwNCwweDAwLDB4OTEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ODQ1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfX0sCi0gezE2LCAweDg0NjAsIDAsIHsweDJjLDB4OTIsMHgxMywweDI0LDB4MDIsMHhkMSwweDEwLDB4M2EsMHg0MCwweDBlLDB4MTIsMHgwMywweDY2LDB4MDQsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4NDcwLCAwLCB7MHhiNiwweDQwLDB4MGQsMHgxOSwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MDksMHg5MCwweDAxLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ODQ4MCwgMCwgezB4ZDksMHgwMiwweDIyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0OTAsIDAsIHsweDJhLDB4MDEsMHhhNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjQsMHgwZiwweDEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MSwweDNlIH19LAotIHsxNiwgMHg4NGEwLCAwLCB7MHg2NiwweDhmLDB4OTAsMHgyMywweGU0LDB4ODAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDQsMHhmOSB9fSwKLSB7MTYsIDB4ODRiMCwgMCwgezB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweDg0YzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYSwweDEwLDB4YTAsMHgwMCwweGY4LDB4MjQsMHgzZSwweDAwIH19LAotIHsxNiwgMHg4NGQwLCAwLCB7MHgyYywweDg0LDB4MDMsMHgyMCwweDAwLDB4YjgsMHgyMCwweDNlLDB4MDAsMHg4YywweDgwLDB4MDMsMHhhMCwweDAwLDB4NzAsMHg4MiB9fSwKLSB7MTYsIDB4ODRlMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDIwLDB4MDggfX0sCi0gezE2LCAweDg0ZjAsIDAsIHsweGM4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NTAwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJlLDB4ODAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwNCwweDhlLDB4MDAsMHg2ZCB9fSwKLSB7MTYsIDB4ODUxMCwgMCwgezB4OTAsMHgwZCwweGEwLDB4MDIsMHgzYSwweDAwLDB4OGUsMHg4MCwweGEyLDB4ODAsMHgwZSwweGUwLDB4MGIsMHg2OCwweDAwLDB4YmEgfX0sCi0gezE2LCAweDg1MjAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhkYSwweDAwLDB4MmUsMHg4MCwweDA4LDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg4NTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4MSwweDRjLDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODU0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MGMsMHgxOCwweGEzLDB4MDIsMHgyYywweDEwLDB4ODgsMHgzMCwweDA2LDB4ODIsMHg4MSwweGEwLDB4MDAgfX0sCi0gezE2LCAweDg1NTAsIDAsIHsweDJhLDB4YzAsMHgwYiwweDMwLDB4MGEsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgxYSwweGIwLDB4MDIsMHg4YywweDAxIH19LAotIHsxNiwgMHg4NTYwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODU3MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MTAsMHhiNCwweDBhLDB4MmIsMHhjOCwweDA4LDB4MzEsMHgyNiwweDFjLDB4MDAsMHg4NiwweDAwLDB4MmQgfX0sCi0gezE2LCAweDg1ODAsIDAsIHsweGMwLDB4MDksMHg3MiwweDAyLDB4MWQsMHgwMCwweGE1LDB4NDAsMHgyOSwweGMwLDB4MGEsMHg2MCwweDAyLDB4NWMsMHg4OCwweGIzIH19LAotIHsxNiwgMHg4NTkwLCAwLCB7MHgyMCwweDI1LDB4YzgsMHgwYSwweDcyLDB4MDIsMHg5YywweDgwLDB4OTcsMHgyMCwweDJjLDB4ZTgsMHg4MCwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ODVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgxNiwweDAwLDB4YjUsMHg4MCwweDNkLDB4ZTIgfX0sCi0gezE2LCAweDg1YjAsIDAsIHsweDBjLDB4N2EsMHg4YiwweDBlLDB4YzAsMHhhNywweDgxLDB4MmMsMHgyMCwweDBjLDB4ZmMsMHgwMywweDkyLDB4MDIsMHhlZiwweDgwIH19LAotIHsxNiwgMHg4NWMwLCAwLCB7MHgzOSwweGU0LDB4MGIsMHhkOCwweDAxLDB4MWYsMHgwMCwweGY3LDB4ODAsMHhiMywweGY0LDB4OGUsMHg3OSwweDAzLDB4OGUsMHgwMCB9fSwKLSB7MTYsIDB4ODVkMCwgMCwgezB4YzcsMHhjNCwweDNkLDB4ZTgsMHgyYywweDdiLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1ZTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4ZGQsMHg4NywweGI2LDB4MDMsMHhlZCwweGNjLDB4ZTksMHgwMCwweDNlIH19LAotIHsxNiwgMHg4NWYwLCAwLCB7MHg0MCwweDBmLDB4YjAsMHgwNywweGNjLDB4MTAsMHgwYiwweDAwLDB4MzYsMHhkOCwweDBmLDB4ODAsMHg0MywweGFkLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ODYwMCwgMCwgezB4MjgsMHgzYSwweGMwLDB4MGQsMHhiNCwweDAzLDB4NmMsMHhlMiwweGViLDB4NjAsMHgzZSwweGQ0LDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDg2MTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGZlLDB4OTAsMHgzZiwweGU1IH19LAotIHsxNiwgMHg4NjIwLCAwLCB7MHgwZSwweGY4LDB4MDMsMHgzZSwweDEwLDB4ZmYsMHg5MCwweDE3LDB4NjAsMHgwZiwweGZjLDB4MDMsMHg3YSwweDAwLDB4ZWUsMHg4MCB9fSwKLSB7MTYsIDB4ODYzMCwgMCwgezB4MzcsMHhlMiwweDBlLDB4NzgsMHgwZiwweGZmLDB4NDAsMHhlZiwweDg4LDB4MWYsMHhlMCwweDBjLDB4ZjgsMHg4MywweGZlLDB4ODAgfX0sCi0gezE2LCAweDg2NDAsIDAsIHsweGNmLDB4ZDAsMHhiMywweGYwLDB4MGMsMHhmOCwweGMzLDB4MTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI0LDB4MTAsMHgwZiwweGNjLDB4MDAsMHg3MiwweDAyLDB4MWMsMHgwMCwweGI2LDB4MDIsMHgwOSB9fSwKLSB7MTYsIDB4ODY2MCwgMCwgezB4YzAsMHgyOCwweGYwLDB4MDIsMHg5OCwweDAwLDB4YTYsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDMsMHhmYywweDAyLDB4ODcgfX0sCi0gezE2LCAweDg2NzAsIDAsIHsweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRlLDB4MDAsMHg4ZiwweDEwLDB4MjEsMHhjMCwweDA4LDB4ZjAsMHgwMywweDZhIH19LAotIHsxNiwgMHg4NjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDk0LDB4MDAsMHhiNiwweDAyLDB4MmYsMHhjMiB9fSwKLSB7MTYsIDB4ODY5MCwgMCwgezB4MWEsMHgzMCwweDgwLDB4MWMsMHgwMCwweGI2LDB4MDgsMHgwMSwweDQwLDB4MGEsMHhmMCwweDAyLDB4MTgsMHgwMCwweDg3LDB4MDAgfX0sCi0gezE2LCAweDg2YTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweGQwLDB4MDIsMHg5YywweDEwLDB4ODcsMHgwMCwweDI5LDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDQ0IH19LAotIHsxNiwgMHg4NmIwLCAwLCB7MHg4NywweDEwLDB4NjQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDA2LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODZjMCwgMCwgezB4NjAsMHgxNCwweGNlLDB4NjAsMHhiMCwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgwYSwweDBjLDB4MDgsMHhiMCwweDA0LDB4MDAgfX0sCi0gezE2LCAweDg2ZDAsIDAsIHsweDQwLDB4MDgsMHgzMCwweGEyLDB4ODksMHg4MCwweGEyLDB4NjIsMHgyMCwweGUwLDB4MGIsMHgwMCwweDBhLDB4Y2MsMHgwOCwweDgzIH19LAotIHsxNiwgMHg4NmUwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwOCwweDMwLDB4NTIsMHhjYywweDAwLDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1OCB9fSwKLSB7MTYsIDB4ODZmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZSwweDAwLDB4ZjgsMHgwMCwweDNmLDB4ZDAgfX0sCi0gezE2LCAweDg3MDAsIDAsIHsweDBlLDB4ZmMsMHgwMywweDNjLDB4MDAsMHhmOSwweDAwLDB4OTIsMHg4NCwweDBmLDB4ZmMsMHgwMywweDY0LDB4MDAsMHg4MCwweDAwIH19LAotIHsxNiwgMHg4NzEwLCAwLCB7MHhiNywweGMzLDB4MGYsMHhiOCwweDgzLDB4YmMsMHgwNCwweGVmLDB4MDAsMHgzZiwweGMwLDB4M2MsMHhmMCwweDAzLDB4ZmMsMHgwMiB9fSwKLSB7MTYsIDB4ODcyMCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzAsMHgyOCwweGYwLDB4MTMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3MzAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjgsMHg0MSwweDNlLDB4YzgsMHgwZiwweDMyLDB4MDMsMHhlYywweDAwLDB4ZjgsMHgwMCwweDNhIH19LAotIHsxNiwgMHg4NzQwLCAwLCB7MHhjNCwweDBmLDB4YjEsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHhjMCwweDBmLDB4ZTQsMHgwYiwweGVjLDB4MDQsMHhmYiB9fSwKLSB7MTYsIDB4ODc1MCwgMCwgezB4MDAsMHgzZSwweGMxLDB4MGYsMHhiMCwweDQzLDB4ZWMsMHgwNCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQgfX0sCi0gezE2LCAweDg3NjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjQsMHgwMCwweGZjLDB4ODAsMHgzZiwweGMwIH19LAotIHsxNiwgMHg4NzcwLCAwLCB7MHgxZiwweGYwLDB4MDMsMHgzYywweDA4LDB4ZmIsMHgwMCwweDMzLDB4ODAsMHgyZSwweGYwLDB4MTMsMHhhNCwweDA0LDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4ODc4MCwgMCwgezB4YjksMHhjMCwweDJjLDB4ZDgsMHgwYiwweDNjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDA5LDB4NzAsMHgwMCwweDJjLDB4MDQgfX0sCi0gezE2LCAweDg3OTAsIDAsIHsweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4N2EwLCAwLCB7MHhjMSwweDAwLDB4NmMsMHgwMCwweGI4LDB4ODAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4NmMsMHgwMCwweGI5LDB4MTYsMHgyOCB9fSwKLSB7MTYsIDB4ODdiMCwgMCwgezB4NzIsMHgwOCwweGIwLDB4MjIsMHgyNywweDQwLDB4ZGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGJkLDB4ODIsMHgyYywweDA4LDB4YmIgfX0sCi0gezE2LCAweDg3YzAsIDAsIHsweDAwLDB4MmUsMHhjMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSwweDBiLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4N2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDYwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ODdlMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIxLDB4MDAsMHgyYSwweDg0LDB4NGEsMHgzMCwweDIyLDB4YWMsMHgyMCwweDk4LDB4ODAgfX0sCi0gezE2LCAweDg3ZjAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhhYywweDAwLDB4M2IsMHgwMCwweDJjLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhhYywweDA4IH19LAotIHsxNiwgMHg4ODAwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODgxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHhiMCwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDQsMHhiMCwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg4MjAsIDAsIHsweDgwLDB4MDgsMHgzMCwweDAyLDB4MDAsMHgwMCwweDEwLDB4MDQsMHgyOCwweGMwLDB4MDgsMHgyMCwweDQyLDB4OGMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg4ODMwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHg0MiwweDMwLDB4MGEsMHg4YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHg4YiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODg0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4ZjgsMHg1MCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDg4NTAsIDAsIHsweDBiLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhmYSwweDA0LDB4MzIsMHg4MCwweDBlLDB4ZjAsMHgyMywweGFjLDB4MDAsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4ODYwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHg5MCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MmUsMHhmMCwweDBiLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4ODg3MCwgMCwgezB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4ODAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHgwNywweGYwLDB4MDMsMHhmYywweDA0LDB4N2MsMHgwMiwweGI1IH19LAotIHsxNiwgMHg4ODkwLCAwLCB7MHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZjAsMHgxMywweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ODhhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4NmQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDg4YjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGQ1LDB4ODAsMHgzMywweDBhIH19LAotIHsxNiwgMHg4OGMwLCAwLCB7MHg0YywweGY4LDB4MDMsMHhmMiwweDAwLDB4ZmMsMHgwMCwweDM3LDB4MjYsMHgxZiwweGNhLDB4MDMsMHhiYywweGM0LDB4Y2YsMHgyMCB9fSwKLSB7MTYsIDB4ODhkMCwgMCwgezB4MzMsMHhlNCwweDBmLDB4NzgsMHgwMywweDNlLDB4NDQsMHhjZiwweDAwLDB4M2IsMHhjZSwweDlmLDB4NjgsMHgxMywweGQwLDB4MDAgfX0sCi0gezE2LCAweDg4ZTAsIDAsIHsweGNkLDB4ODAsMHhiMywweDYwLDB4MGYsMHhmYSwweDgzLDB4ZjAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OGYwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHg4MCwweGM5LDB4MjgsMHgyMiwweDMwLDB4MDgsMHhiMiwweDIyLDB4ZWEsMHgwMSwweGI4LDB4ODIsMHgyMCB9fSwKLSB7MTYsIDB4ODkwMCwgMCwgezB4NTAsMHg0ZiwweDljLDB4MDAsMHhhOCwweGQxLDB4ZGIsMHgxMCwweGE2LDB4ZTAsMHgxNywweGI4LDB4MDMsMHhlYywweDgwLDB4ZGIgfX0sCi0gezE2LCAweDg5MTAsIDAsIHsweDA4LDB4MWYsMHhkMCwweDBiLDB4YjgsMHgwMiwweGY2LDB4MDAsMHhmYiwweDgwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHgwMiwweDYwIH19LAotIHsxNiwgMHg4OTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MjAsMHg4MSwweDgwLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ODkzMCwgMCwgezB4OGIsMHgzMCwweDgyLDB4YzAsMHgwMCwweGIwLDB4MTAsMHgyOCwweDA4LDB4OGIsMHgxMSwweDMwLDB4YzQsMHg4NCwweDkwLDB4MjggfX0sCi0gezE2LCAweDg5NDAsIDAsIHsweDI0LDB4YzgsMHgwYiwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgxMCwweDA0LDB4YzgsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg4OTUwLCAwLCB7MHhiMywweDAwLDB4MjQsMHg0MCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODk2MCwgMCwgezB4YzAsMHgxNSwweGE2LDB4MDAsMHg4MSwweDAwLDB4MjIsMHgxMCwweDBiLDB4YjAsMHgxMiwweGVhLDB4MjAsMHhiYiwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg5NzAsIDAsIHsweDcwLDB4MGEsMHg5YywweDAyLDB4NjIsMHgwMCwweDk4LDB4ODgsMHgyNiwweGM4LDB4MDIsMHhiMiwweDAyLDB4OGUsMHgwOCwweDhiIH19LAotIHsxNiwgMHg4OTgwLCAwLCB7MHgxOCwweDIyLDB4YzAsMHgwYiwweGEwLDB4MDIsMHhlZSwweDIwLDB4M2IsMHgwMCwweDI2LDB4NDAsMHgwYiwweGIwLDB4MDIsMHg3MCB9fSwKLSB7MTYsIDB4ODk5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMCwweDAwLDB4Y2IsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg5YTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGU3LDB4MDAsMHhiOCwweDUyLDB4M2UsMHgyMCwweDRiLDB4MGMsMHg0MywweGVmLDB4ODIsMHg5YiwweGMwIH19LAotIHsxNiwgMHg4OWIwLCAwLCB7MHgzMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4NmMsMHgwMSwweDhiLDB4ODAsMHgyZSwweGMwLDB4MGIsMHhhMCwweDgzLDB4ZTYsMHgwMCB9fSwKLSB7MTYsIDB4ODljMCwgMCwgezB4ZmIsMHgwMCwweDM2LDB4NDAsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5ZDAsIDAsIHsweGUwLDB4MDEsMHhiMCwweDAyLDB4ZmYsMHgwNCwweDNmLDB4OTAsMHgwYywweGYxLDB4MDEsMHhmNCwweDA4LDB4N2QsMHg4MCwweDM3IH19LAotIHsxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDBmLDB4YzAsMHgyMywweDk4LDB4MDAsMHhmNywweDAwLDB4MmIsMHhlMCwweDBmLDB4ZjgsMHgyMywweGZjLDB4MDYsMHhmYiB9fSwKLSB7MTYsIDB4ODlmMCwgMCwgezB4ODMsMHhiZiwweGMwLDB4ODcsMHhkMCwweDAzLDB4ZGMsMHgwMCwweGVmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAxLDB4ZjggfX0sCi0gezE2LCAweDhhMDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTYsMHgwMCwweGNiLDB4MDAsMHgzMywweDgwIH19LAotIHsxNiwgMHg4YTEwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlMSwweDEwLDB4ZjIsMHg0MCwweGIyLDB4MDAsMHgzZCwweDk0LDB4MTcsMHgyZCwweDQ0LDB4ZmEsMHg0MSB9fSwKLSB7MTYsIDB4OGEyMCwgMCwgezB4MzIsMHhjMCwweDlmLDB4YjAsMHgyMywweDJjLDB4MDIsMHhjYiwweDQwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHgwMywweDNkLDB4MDAgfX0sCi0gezE2LCAweDhhMzAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YTQwLCAwLCB7MHg4OCwweDA1LDB4MjYsMHgwMCwweDhiLDB4NzEsMHgyMCwweGQ1LDB4MDMsMHg5OSwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4OGE1MCwgMCwgezB4NjAsMHgxYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YjgsMHgwMiwweDIyLDB4YzIsMHgwYiwweDMyLDB4MDIsMHgyYywweDAxLDB4OGYgfX0sCi0gezE2LCAweDhhNjAsIDAsIHsweDAyLDB4ZDcsMHhjMCwweDBiLDB4YTAsMHgwMywweDZkLDB4NDAsMHg1MywweDgwLDB4MmUsMHhjMCwweDBlLDB4ZjAsMHg0MywweDcyIH19LAotIHsxNiwgMHg4YTcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY4LDB4MDIsMHg4MCwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OGE4MCwgMCwgezB4MGIsMHgzNSwweDI2LDB4YzIsMHgwMCwweGIwLDB4OTAsMHgyMCwweGMwLDB4ODgsMHgwMCwweDAyLDB4NGYsMHgyMCwweGIzLDB4MDIgfX0sCi0gezE2LCAweDhhOTAsIDAsIHsweDYwLDB4ZTIsMHgxYiwweDM4LDB4MDIsMHgwYywweDAwLDB4ODgsMHgwMCwweDYwLDB4YzAsMHgwYiwweDM0LDB4ODIsMHg0YywweDAyIH19LAotIHsxNiwgMHg4YWEwLCAwLCB7MHhhMSwweDkwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDMwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGFiMCwgMCwgezB4MjAsMHgwMSwweDNhLDB4MDgsMHg4YywweGEwLDB4MmQsMHgyMCwweDRiLDB4NzgsMHgwMiwweGRhLDB4MDAsMHhiMiwweDkwLDB4MjEgfX0sCi0gezE2LCAweDhhYzAsIDAsIHsweDY2LDB4NDgsMHg3OSwweDAyLDB4ZGUsMHg0MCwweGI3LDB4OTEsMHhhMSwweGUwLDB4ZGIsMHhmOCwweDAyLDB4MWUsMHg0MCwweDg0IH19LAotIHsxNiwgMHg4YWQwLCAwLCB7MHg5MCwweDAxLDB4ZTAsMHg4YiwweGY5LDB4MDIsMHg1ZSwweDAxLDB4OTcsMHg4MCwweDJkLDB4NjAsMHgwYSwweDc4LDB4MDAsMHg0OCB9fSwKLSB7MTYsIDB4OGFlMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODAsMHgwMCwweDI0LDB4MDQgfX0sCi0gezE2LCAweDhhZjAsIDAsIHsweDBmLDB4MzIsMHgwMywweGM0LDB4YTAsMHhmMSwweDQyLDB4MzAsMHhjNCwweDJjLDB4MzEsMHgwMiwweDQ0LDB4MDAsMHhmMSwweDExIH19LAotIHsxNiwgMHg4YjAwLCAwLCB7MHhhMCwweGMwLDB4MGIsMHgzMCwweDBiLDB4MGMsMHg0MiwweDgzLDB4MDAsMHgwMCwweGMwLDB4MGYsMHgzMCwweDAzLDB4NGMsMHgwMiB9fSwKLSB7MTYsIDB4OGIxMCwgMCwgezB4ZTMsMHgwMCwweDNjLDB4NDAsMHgwYiwweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiMjAsIDAsIHsweGMwLDB4MWQsMHhiYywweDAwLDB4ZmMsMHhhNSwweDMzLDB4YzAsMHgwZiwweGQwLDB4MDMsMHhmYywweDAxLDB4YmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHg4YjMwLCAwLCB7MHhjNCwweDBlLDB4NzEsMHgwMywweDc0LDB4MDAsMHg3NSwweDEwLDB4M2YsMHhjMCwweDA1LDB4ZjAsMHgwMywweGRjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4OGI0MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDdmLDB4MDAsMHgzZiwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhiNTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA0LDB4ZTgsMHgwMCwweGYyLDB4MDQsMHhiMywweDgwIH19LAotIHsxNiwgMHg4YjYwLCAwLCB7MHgwZiwweGI4LDB4MGIsMHgyYywweDAwLDB4ZWIsMHg4MCwweDMyLDB4YzAsMHgwYywweDIwLDB4MTMsMHgyZSwweDA4LDB4Y2IsMHgwMSB9fSwKLSB7MTYsIDB4OGI3MCwgMCwgezB4MzIsMHhjNSwweDBmLDB4YjEsMHgwMywweGVjLDB4NDgsMHhjOCwweDEwLDB4MzIsMHhmYSwweDhjLDB4MzgsMHgwMywweDNjLDB4OTAgfX0sCi0gezE2LCAweDhiODAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4YzIsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YjkwLCAwLCB7MHhjOCwweDEwLDB4OTgsMHgwMCwweGY2LDB4MDAsMHg2MSwweDgxLDB4MGIsMHhmMCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4OGJhMCwgMCwgezB4ODAsMHgwYywweDcwLDB4MDIsMHhiYywweDEwLDB4OGYsMHgwMCwweDIxLDB4YzgsMHg4YiwweDcyLDB4NDMsMHhmYywweDg4LDB4ZGMgfX0sCi0gezE2LCAweDhiYjAsIDAsIHsweDAwLDB4MzcsMHhjOCwweDBkLDB4NTAsMHgwMiwweDFjLDB4MjIsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGQzIH19LAotIHsxNiwgMHg4YmMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhiNiwweDgwLDB4YTksMHhhMCB9fSwKLSB7MTYsIDB4OGJkMCwgMCwgezB4NGIsMHg3YywweDAyLDB4NWUsMHgzMCwweGEzLDB4ODgsMHgyMSwweGYwLDB4MDgsMHg3OCwweDAyLDB4MTYsMHgwMCwweDg1LDB4ODAgfX0sCi0gezE2LCAweDhiZTAsIDAsIHsweDIxLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhkZSwweDAwLDB4ODcsMHg4MCwweGExLDB4ZTQsMHgwOCwweGQ4LDB4MDIsMHg0ZSwweDAwIH19LAotIHsxNiwgMHg4YmYwLCAwLCB7MHg5NywweDgwLDB4MmQsMHg3MCwweDBiLDB4NzgsMHgwMiwweGM4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGMwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMiwweDAwLDB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDRlLDB4OTAsMHg5MywweDAyLDB4MjIgfX0sCi0gezE2LCAweDhjMTAsIDAsIHsweGYwLDB4MDgsMHgzOCwweDQyLDB4OGMsMHg0MiwweDgzLDB4MDQsMHgyMiwweGU0LDB4NGIsMHgzOCwweDAyLDB4OGUsMHg0MCwweDgzIH19LAotIHsxNiwgMHg4YzIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOSwweDM4LDB4MjIsMHg0ZSwweDIxLDB4OTMsMHgwMCwweDJlLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhkYiB9fSwKLSB7MTYsIDB4OGMzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAxLDB4ZmEsMHgwMCwweDNiLDB4ODkgfX0sCi0gezE2LCAweDhjNDAsIDAsIHsweDBmLDB4YTAsMHgwMiwweDc4LDB4MDgsMHhhZSwweDQwLDB4MjMsMHg4MCwweDJjLDB4NmMsMHgwYiwweDNhLDB4MDAsMHg4ZSwweDhjIH19LAotIHsxNiwgMHg4YzUwLCAwLCB7MHhiMiwweDAwLDB4MGIsMHg4MCwweDgyLDB4ZTAsMHgwMiwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGMsMHhlOCwweDAyLDB4N2IsMHg4MCB9fSwKLSB7MTYsIDB4OGM2MCwgMCwgezB4OWEsMHg4MCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjNzAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDA5LDB4ZWMsMHgwMCwweDM2LDB4MjEsMHgwYiwweDgwLDB4MTMsMHhhMSwweDAwLDB4ZjgsMHg2MCwweDNlIH19LAotIHsxNiwgMHg4YzgwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4OGM5MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGYsMHg4NSwweDBiLDB4ODAsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhjYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDIsMHgzMCwweDQ4IH19LAotIHsxNiwgMHg4Y2IwLCAwLCB7MHgwYywweDk5LDB4MTMsMHhhNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIsMHgwYywweDkwLDB4OGYsMHgyNCwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGNjMCwgMCwgezB4MzIsMHgyOCwweDBjLDB4ODgsMHgwMywweGUwLDB4MDAsMHhjOSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgwMywweGU3LDB4MDAgfX0sCi0gezE2LCAweDhjZDAsIDAsIHsweGM5LDB4MTAsMHgzZSwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4Y2UwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMSwweDg5LDB4ODAsMHhhMiwweDQ4LDB4MjgsMHg5MiwweDQyLDB4YzUsMHgwMCwweDg5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4OGNmMCwgMCwgezB4NDAsMHgyYywweDkwLDB4MDYsMHgyNSwweDAwLDB4YjksMHgwMCwweDIyLDB4NTAsMHgwOCwweDk4LDB4MDIsMHhjNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweDhkMDAsIDAsIHsweDAxLDB4NzYsMHg0MCwweDRiLDB4OTIsMHgwMiwweGU1LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBkLDB4OTAsMHgwMywweDYwIH19LAotIHsxNiwgMHg4ZDEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MGMsMHg4NSwweDIwLDB4YTIsMHg0MCB9fSwKLSB7MTYsIDB4OGQyMCwgMCwgezB4MDgsMHg5MCwweDA2LDB4ZTUsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDQyLDB4YTQsMHhhMCwweDMxLDB4MDAgfX0sCi0gezE2LCAweDhkMzAsIDAsIHsweDIyLDB4NTAsMHgxOCwweDkxLDB4MDIsMHhlNCwweDAwLDB4ODEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAwIH19LAotIHsxNiwgMHg4ZDQwLCAwLCB7MHg4OSwweDAwLDB4MmUsMHg0MCwweDA5LDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGQ1MCwgMCwgezB4MDAsMHgwNCwweDE1LDB4MDAsMHg4NSwweDQwLDB4MjAsMHg0MCwweDA4LDB4MTQsMHgyNiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDhkNjAsIDAsIHsweDQwLDB4MTgsMHgxMCwweDAyLDB4ODQsMHg4MCwweGIxLDB4MjAsMHhhMCwweDUwLDB4MDgsMHgxNCwweDAyLDB4ZTUsMHgwMiwweDgxIH19LAotIHsxNiwgMHg4ZDcwLCAwLCB7MHg0MCwweDIwLDB4NDgsMHgwYiwweDEwLDB4MDYsMHhjYywweDAwLDB4ODEsMHgwMSwweDJjLDB4NTAsMHgwOSwweDE0LDB4MDIsMHg0YSB9fSwKLSB7MTYsIDB4OGQ4MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4OGMsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweDhkOTAsIDAsIHsweDBjLDB4ODAsMHgyMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgxNCwweDBkLDB4ODAsMHgxMiwweGExLDB4NDQsMHhmOCwweDUxIH19LAotIHsxNiwgMHg4ZGEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDE0LDB4MGYsMHg4MCwweDA3LDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4OGRiMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkYzAsIDAsIHsweDk4LDB4OWQsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNmLDB4NTAsMHgwZiwweGQwLDB4MDMsMHhkYywweDAxLDB4YmQsMHg0MiwweDNmIH19LAotIHsxNiwgMHg4ZGQwLCAwLCB7MHg1MCwweDRmLDB4ZDQsMHg0MywweDc0LDB4NDEsMHhmZCwweDEwLDB4M2YsMHgxMCwweDFmLDB4YzQsMHgxMywweGYxLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4OGRlMCwgMCwgezB4NDAsMHg3ZSwweDQ0LDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMSwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDhkZjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjQsMHgwMCwweGRmLDB4MDUsMHgzMywweDYxIH19LAotIHsxNiwgMHg4ZTAwLCAwLCB7MHgwZiwweDUwLDB4NTMsMHgzNCwweDEwLDB4ZmQsMHgwNCwweDMzLDB4NDQsMHg0ZiwweDUwLDB4MDMsMHg3NiwweGMxLDB4Y2QsMHhlMCB9fSwKLSB7MTYsIDB4OGUxMCwgMCwgezB4MzMsMHg2MCwweDBjLDB4Y2UsMHgwMywweGY2LDB4YzAsMHhlMSwweGMwLDB4YjYsMHg2NCwweDhmLDB4NTAsMHgwYiwweDM2LDB4ODIgfX0sCi0gezE2LCAweDhlMjAsIDAsIHsweGNkLDB4MDAsMHgzZSwweDQ0LDB4NGMsMHg5ZSwweGMzLDB4YzYsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZTMwLCAwLCB7MHgzOCwweDEwLDB4ZWEsMHgyOCwweDgwLDB4YTAsMHhiMiwweDA0LDB4MGIsMHg4YSwweDgzLDB4NjAsMHgwMCwweGZhLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4OGU0MCwgMCwgezB4MjgsMHg4YiwweDgwLDB4MDMsMHhlMywweGM4LDB4YzgsMHg4NCwweDIyLDB4MTQsMHgwOCwweDhhLDB4MDIsMHhlMiwweDgwLDB4ZDggfX0sCi0gezE2LCAweDhlNTAsIDAsIHsweDgyLDB4MzQsMHgzNCwweDFiLDB4ODAsMHgwMywweDYwLDB4MDQsMHg4OCwweDAwLDB4MmUsMHgyMCwweDBhLDB4OGUsMHg0MiwweGNlIH19LAotIHsxNiwgMHg4ZTYwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDA4LDB4MDQsMHg0MSB9fSwKLSB7MTYsIDB4OGU3MCwgMCwgezB4MGIsMHg5MiwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxOCwweDAyLDB4MjQsMHgwMCwweGIxLDB4NjAgfX0sCi0gezE2LCAweDhlODAsIDAsIHsweDI2LDB4NDAsMHgwYSwweDE2LDB4MDIsMHhjNSwweDAwLDB4YTEsMHhjMCwweDIwLDB4NDgsMHgwYiwweDkwLDB4MDIsMHg0NywweDAwIH19LAotIHsxNiwgMHg4ZTkwLCAwLCB7MHg5MSwweDAxLDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweGQyLDB4MDEsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGVhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MGMsMHg4YiwweDA0LDB4YTIsMHg1MCwweDBiLDB4OTEsMHgwMiwweDI0LDB4MDQsMHhhOSwweDAxLDB4MmUgfX0sCi0gezE2LCAweDhlYjAsIDAsIHsweDQyLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyNiwweDYwLDB4MGEsMHg5MCwweDAyLDB4ZTYsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4YiwweGIwLDB4MDIsMHgyNCwweDA4LDB4OTksMHgxMCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4OGVkMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweDhlZTAsIDAsIHsweDBmLDB4MTAsMHgwMiwweDI1LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg2MCwweDBmLDB4MTAsMHgxMiwweDI0LDB4MDIsMHhiOSwweGEwIH19LAotIHsxNiwgMHg4ZWYwLCAwLCB7MHhhNCwweDQwLDB4MmUsMHg5MSwweDAzLDB4ZTYsMHgwMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxOSwweDgwLDB4NjQsMHgwNCB9fSwKLSB7MTYsIDB4OGYwMCwgMCwgezB4ZDksMHg4MSwweDJlLDB4NDAsMHg0YywweDkwLDB4MDMsMHhlOCwweDE0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmMTAsIDAsIHsweDY4LDB4MDEsMHhhNCwweDBhLDB4ZTksMHgwMCwweGJlLDB4NDgsMHgwZiwweDk4LDB4MGIsMHhlNCwweDAwLDB4ZjksMHhjNCwweDM2IH19LAotIHsxNiwgMHg4ZjIwLCAwLCB7MHg3MCwweDFmLDB4OTIsMHgwMywweGU2LDB4OTAsMHhjMSwweDkwLDB4M2EsMHg0MCwweDhkLDB4ODgsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OGYzMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGIsMHg5OCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhmNDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDEwLDB4YTEsMHgwMiwweGQ4LDB4MjAsMHhiMiwweDEwIH19LAotIHsxNiwgMHg4ZjUwLCAwLCB7MHgwYywweDgwLDB4ODMsMHgyMSwweDQwLDB4YzgsMHg1OCwweGIyLDB4MTAsMHg0YywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZjgsMHg0MiB9fSwKLSB7MTYsIDB4OGY2MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhkOCwweDAwLDB4NzIsMHgwMCwweDFjLDB4ODAsMHgwMCwweDIwLDB4MDAgfX0sCi0gezE2LCAweDhmNzAsIDAsIHsweGY4LDB4MDQsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZjgwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwNCwweGNlLDB4NDEsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4MzksMHgxMCwweGFlLDB4NDAsMHgyMiB9fSwKLSB7MTYsIDB4OGY5MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgxYSwweDAwLDB4YmEsMHgwMCwweDJiLDB4YWQsMHgwMywweDgwLDB4MDIsMHhlOCwweDAwLDB4Y2EgfX0sCi0gezE2LCAweDhmYTAsIDAsIHsweDAwLDB4MmEsMHg4MCwweDBhLDB4ZTAsMHgwMiwweDE4LDB4MDAsMHhiYSwweDAwLDB4MWEsMHg4MCwweDBiLDB4YTAsMHgwMywweDRhIH19LAotIHsxNiwgMHg4ZmIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDZjLDB4MTIsMHg4OSwweDAwLDB4YTAsMHhlMCB9fSwKLSB7MTYsIDB4OGZjMCwgMCwgezB4MDgsMHgzOCwweDAyLDB4MGQsMHg4OCwweDgzLDB4MDAsMHgwNCwweGUwLDB4MDgsMHgzOCwweDMyLDB4MGUsMHgyNSwweDMxLDB4MDEgfX0sCi0gezE2LCAweDhmZDAsIDAsIHsweDI0LDB4ZTAsMHg4YiwweDM4LDB4MDIsMHhlNCwweDAxLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwIH19LAotIHsxNiwgMHg4ZmUwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGZmMCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MjAsMHg4NiwweDIwLDB4MjksMHhiMCwweDA4LDB4ZjAsMHg4MiwweDNlLDB4MDQsMHhhNywweDAwLDB4MjEgfX0sCi0gezE2LCAweDkwMDAsIDAsIHsweDcwLDB4ODgsMHg3MCwweDkyLDB4MWMsMHgyMCwweGJkLDB4MDAsMHg2OSwweGMwLDB4MGIsMHg3NiwweDAyLDB4ZDQsMHg4MCwweDhmIH19LAotIHsxNiwgMHg5MDEwLCAwLCB7MHgyMSwweDI5LDB4ZTAsMHgwYSwweDYwLDB4ODYsMHg5OCwweDAxLDB4YjcsMHgwMCwweDJkLDB4YzgsMHgwYiwweDNiLDB4MDIsMHg2MCB9fSwKLSB7MTYsIDB4OTAyMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAwLDB4YzcsMHhhMCwweGIwLDB4ZTAgfX0sCi0gezE2LCAweDkwMzAsIDAsIHsweDJjLDB4NzgsMHgwYiwweDFhLDB4MDAsMHhjMywweDgwLDB4MzcsMHhlMCwweDI4LDB4NzgsMHgwMywweDFhLDB4MDgsMHhmNSwweDkwIH19LAotIHsxNiwgMHg5MDQwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHg3YywweDEyLDB4ZDYsMHg4MiwweGM3LDB4OTAsMHgyMSwweGU0LDB4MDgsMHg3OCwweDAzLDB4OWUsMHgwMCB9fSwKLSB7MTYsIDB4OTA1MCwgMCwgezB4ZjUsMHg4MCwweDNkLDB4ZjEsMHgwZiwweDc4LDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwNjAsIDAsIHsweDA4LDB4MTksMHhhNCwweDAwLDB4ZWUsMHg4MCwweDM2LDB4YzEsMHg0ZiwweGQwLDB4MDMsMHhjOCwweDAwLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MDcwLCAwLCB7MHg1MSwweDBmLDB4YjAsMHgwMywweGU0LDB4MDgsMHhmMSwweDYwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGM1LDB4MDAsMHhlYiB9fSwKLSB7MTYsIDB4OTA4MCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDA5LDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDkwOTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4ZmUsMHgwMCwweGZkLDB4ODgsMHgzMywweDYwIH19LAotIHsxNiwgMHg5MGEwLCAwLCB7MHgwZiwweGY5LDB4MDMsMHhjZSwweDQwLDB4ZDcsMHg4NCwweDM3LDB4NzAsMHgwYywweGQ4LDB4MjMsMHgzNiwweDAwLDB4YzUsMHg4OCB9fSwKLSB7MTYsIDB4OTBiMCwgMCwgezB4MzMsMHhlMCwweDRmLDB4ZjgsMHgxMywweGY3LDB4MjgsMHhkZiwweDgwLDB4MzcsMHhlMiwweDBjLDB4NTgsMHgwMywweDNlLDB4MDAgfX0sCi0gezE2LCAweDkwYzAsIDAsIHsweGZmLDB4OTAsMHgzZiwweGUwLDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MGQwLCAwLCB7MHhhOSwweDExLDB4OWMsMHgwOCwweGY2LDB4MDAsMHhhMSwweDAwLDB4MGIsMHg2MywweDAyLDB4ZDYsMHgzMCwweDg1LDB4NDEsMHgzMSB9fSwKLSB7MTYsIDB4OTBlMCwgMCwgezB4YzgsMHgwOCwweDUwLDB4MjMsMHgxYywweDAwLDB4ZDUsMHgyMCwweGIxLDB4ODAsMHgwZiwweDcwLDB4MDMsMHhiNCwweDAwLDB4YzcgfX0sCi0gezE2LCAweDkwZjAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDBmLDB4NDAsMHhhMywweDU4LDB4NDAsMHhiNywweDAwLDB4M2YsMHhjNCwweDBhLDB4ZjAsMHgwMiwweDJhIH19LAotIHsxNiwgMHg5MTAwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDAsMHhiNywweDEwLDB4MjEsMHhkMiB9fSwKLSB7MTYsIDB4OTExMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweDg2LDB4MDAsMHgyNSwweDYxLDB4MDgsMHg1MSwweDAyLDB4NTAsMHgwMCwweDk1LDB4MDAgfX0sCi0gezE2LCAweDkxMjAsIDAsIHsweDI1LDB4YzAsMHgwOSwweDcwLDB4ODIsMHhkNCwweDAwLDB4ODcsMHgwMCwweDI0LDB4YzAsMHgwOCwweDUwLDB4MDIsMHg1YywweDAwIH19LAotIHsxNiwgMHg5MTMwLCAwLCB7MHg5NSwweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTE0MCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweGQwLDB4MjAsMHhlMCwweDRiLDB4MDgsMHgwMiwweGM0LDB4MDAsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweDkxNTAsIDAsIHsweGYwLDB4MDgsMHgxYSwweDAyLDB4ODUsMHg0OCwweDgxLDB4MTAsMHgyMCwweDQwLDB4MGEsMHgzMCwweDAyLDB4YzYsMHgxMCwweDkzIH19LAotIHsxNiwgMHg5MTYwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYSwweDFjLDB4MDIsMHgwZCwweDQwLDB4YjMsMHgwMCwweDY4LDB4YzQsMHgwYSwweGIwLDB4MDIsMHgwOSB9fSwKLSB7MTYsIDB4OTE3MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAxLDB4ZmUsMHgwMCwweDMyLDB4ZjAgfX0sCi0gezE2LCAweDkxODAsIDAsIHsweDBmLDB4ODgsMHgwMywweGU2LDB4MDAsMHhjOCwweGM4LDB4MzYsMHhmNiwweDI4LDB4YTYsMHgwYSwweDZkLDB4MDAsMHg5ZCwweDAwIH19LAotIHsxNiwgMHg5MTkwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHhiMCwweDAzLDB4ZjYsMHgwMywweGM3LDB4MDAsMHgzNywweGMwLDB4MDgsMHg5YywweDBhLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4OTFhMCwgMCwgezB4YmIsMHgwMCwweDJmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxYjAsIDAsIHsweDgwLDB4MDAsMHhlNCwweDAxLDB4ZWIsMHg0MCwweDNlLDB4ODAsMHg0ZiwweGMxLDB4MDMsMHhlNCwweDAwLDB4YjgsMHgwOCwweDNhIH19LAotIHsxNiwgMHg5MWMwLCAwLCB7MHg0MCwweDhmLDB4YTQsMHgxMywweDZjLDB4MjAsMHhmOSwweDAwLDB4M2UsMHg3MCwweDBmLDB4YjAsMHgwMywweGE0LDB4NDAsMHhlYiB9fSwKLSB7MTYsIDB4OTFkMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MiwweDIzLDB4ZTgsMHgwMCwweGY5LDB4ODAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDYzLDB4ZTAgfX0sCi0gezE2LCAweDkxZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwOCwweGNlLDB4MDgsMHgzMywweGMwIH19LAotIHsxNiwgMHg5MWYwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzMCwweDAwLDB4ZTQsMHgwNCwweDM1LDB4YzAsMHgwZCwweGEwLDB4MDMsMHgyOCwweDAwLDB4YzUsMHgwMCB9fSwKLSB7MTYsIDB4OTIwMCwgMCwgezB4MzMsMHgwMCwweDBiLDB4ZmEsMHgwMywweGY0LDB4MDMsMHhjYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZDQsMHgwMywweDE0LDB4MjAgfX0sCi0gezE2LCAweDkyMTAsIDAsIHsweGNkLDB4ODAsMHgyMywweGMxLDB4MGMsMHhmMCwweDAyLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjIwLCAwLCB7MHg4MSwweDA0LDB4NDQsMHgxMCwweGNiLDB4ZDAsMHgyMiwweGMwLDB4MGIsMHg5NCwweDAyLDB4MjIsMHg4NCwweGI4LDB4YzYsMHgwMiB9fSwKLSB7MTYsIDB4OTIzMCwgMCwgezB4NDAsMHgwOCwweDI4LDB4MDIsMHhhNSwweDgwLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweGI4LDB4MDIsMHg2NCwweDAwLDB4OGIgfX0sCi0gezE2LCAweDkyNDAsIDAsIHsweDAwLDB4MmEsMHhjMCwweGM4LDB4MDAsMHgwMywweDY2LDB4MDAsMHg4MSwweDAwLDB4MDAsMHhjMCwweDBkLDB4YjAsMHgwYSwweGE4IH19LAotIHsxNiwgMHg5MjUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHgxMywweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4OTI2MCwgMCwgezB4OGIsMHgyNCwweDAyLDB4MmEsMHgwMCwweGJiLDB4ODIsMHgyMiwweDQwLDB4MDAsMHhhYywweDAyLDB4ODQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweDkyNzAsIDAsIHsweDIyLDB4MjIsMHgwYiwweGIwLDB4MDIsMHhjNCwweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyZSwweDAwIH19LAotIHsxNiwgMHg5MjgwLCAwLCB7MHg4YiwweDEwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTI5MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MywweDAwLDB4MjAsMHgwMSwweDBiLDB4MjAsMHgwMiwweDAwLDB4ODAsMHhiMSwweDAwLDB4MjAgfX0sCi0gezE2LCAweDkyYTAsIDAsIHsweGMxLDB4MDgsMHgyMCwweDAyLDB4ODgsMHgwMSwweDgxLDB4MDAsMHhhMCwweDAwLDB4MGIsMHgzMCwweDAyLDB4NDQsMHgwMSwweDliIH19LAotIHsxNiwgMHg5MmIwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwOCwweGIwLDB4MDIsMHg0OCwweDA2LDB4ODksMHgwMCwweDJhLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OTJjMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGQsMHg2YywweDAwLDB4YzMsMHgwMCwweGIyLDB4YzAgfX0sCi0gezE2LCAweDkyZDAsIDAsIHsweDBmLDB4YjAsMHgwMywweDI4LDB4MjAsMHhmYSwweDAwLDB4YjEsMHg0MCwweDBkLDB4YTAsMHgwNywweGEwLDB4MDAsMHhjZCwweDAwIH19LAotIHsxNiwgMHg5MmUwLCAwLCB7MHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZjQsMHgwMCwweDlmLDB4MDAsMHgzYiwweGMwLDB4MmMsMHhiMCwweDBiLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OTJmMCwgMCwgezB4YzksMHgwMCwweGJhLDB4YzAsMHgwYywweGIwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzMDAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA2LDB4ZmYsMHgwMiwweGFmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDEwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5MzEwLCAwLCB7MHhjMCwweDlmLDB4ZTAsMHgxMywweGYwLDB4MDAsMHhmZCwweDA0LDB4M2YsMHg0MCwweDRmLDB4ZjAsMHgwMywweDc0LDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4OTMyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGYsMHhlMCwweDAyLDB4YjQsMHgwMSwweGZkLDB4MDQsMHgzNywweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfX0sCi0gezE2LCAweDkzMzAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGM3LDB4MjAsMHhiMywweGM4IH19LAotIHsxNiwgMHg5MzQwLCAwLCB7MHgxYywweGYxLDB4MDMsMHg3YywweDIwLDB4Y2YsMHgwYSwweDNmLDB4ZDAsMHgwZCwweGYwLDB4MDMsMHg3YywweDgwLDB4OGYsMHgzMiB9fSwKLSB7MTYsIDB4OTM1MCwgMCwgezB4MzMsMHhjNCwweDBmLDB4ZjEsMHg4MywweDNjLDB4ZTAsMHhjZiwweDEwLDB4MzMsMHhjNCwweDBkLDB4ZjIsMHg4MywweDNjLDB4ZTIgfX0sCi0gezE2LCAweDkzNjAsIDAsIHsweGM3LDB4ODAsMHgxNywweGNjLDB4NGMsMHhmMywweDgzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MzcwLCAwLCB7MHg4MCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4NjgsMHgyMiwweDMwLDB4MDgsMHgwNiwweDAyLDB4MDEsMHhhMSwweDg4LDB4YzQsMHgwZSB9fSwKLSB7MTYsIDB4OTM4MCwgMCwgezB4MTQsMHgwOCwweDg3LDB4ODAsMHgwMSwweGMwLDB4MjgsMHg1MCwweDAyLDB4MDQsMHg4YiwweDg2LDB4MDIsMHhhMSwweDk4LDB4ODggfX0sCi0gezE2LCAweDkzOTAsIDAsIHsweDQxLDB4MmEsMHgwNCwweDBhLDB4ODQsMHg4MiwweGJkLDB4ODAsMHg4YiwweDA4LDB4MmIsMHhjNCwweDg4LDB4ZjQsMHgwMywweDYwIH19LAotIHsxNiwgMHg5M2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDgsMHg4MiwweDQwLDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4OTNiMCwgMCwgezB4MDgsMHgyMSwweDEyLDB4NDQsMHgwNCwweDgyLDB4MDQsMHgyYywweDA4LDB4ODksMHg5MCwweDAyLDB4NDQsMHgyMSwweDhiLDB4MDAgfX0sCi0gezE2LCAweDkzYzAsIDAsIHsweDI0LDB4ODgsMHg4YiwweGEwLDB4MDAsMHg0MCwweDg0LDB4ODksMHgzMCwweDIyLDB4NDgsMHg4OCwweGIwLDB4MDIsMHhjYywweDA4IH19LAotIHsxNiwgMHg5M2QwLCAwLCB7MHg4OCwweDIwLDB4YTQsMHhjOCwweDAwLDB4MzIsMHgwYSwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTNlMCwgMCwgezB4YzAsMHgxNSwweGEwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMSwweDg4LDB4OTAsMHg2MiwweDI4LDB4MDgsMHg4OSwweDA4LDB4MmUgfX0sCi0gezE2LCAweDkzZjAsIDAsIHsweGMwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwOCwweGE4LDB4MDAsMHgyNiwweDQyLDB4MGIsMHg5MCwweDAyLDB4Y2MsMHg1MCwweDhhIH19LAotIHsxNiwgMHg5NDAwLCAwLCB7MHgyMiwweDJhLDB4ODYsMHgwYSwweDgwLDB4MDIsMHhlYywweDAwLDB4ODgsMHg4NCwweDJhLDB4YzEsMHgwOCwweGIwLDB4MjYsMHgzMCB9fSwKLSB7MTYsIDB4OTQxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhmMCwweDAyLDB4Y2YsMHgwMCwweDMzLDB4YzAgfX0sCi0gezE2LCAweDk0MjAsIDAsIHsweDQ4LDB4ZjgsMHg0MywweDc5LDB4MDAsMHg4ZCwweGMwLDB4M2YsMHgzMCwweDhkLDB4NjAsMHg4MywweDc4LDB4NjAsMHhjNCwweDU4IH19LAotIHsxNiwgMHg5NDMwLCAwLCB7MHgzNywweDIwLDB4MGYsMHg1OCwweDEzLDB4N2IsMHgwMiwweGNjLDB4YzQsMHgzMSwweDIwLDB4MGMsMHg0NCwweDAzLDB4ZWMsMHgwMiB9fSwKLSB7MTYsIDB4OTQ0MCwgMCwgezB4OGIsMHg4MCwweDM2LDB4YzAsMHgyNCwweGIwLDB4MTIsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0NTAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4ZjQsMHgxMCwweDNkLDB4MDAsMHg2ZiwweGM5LDB4MTMsMHhkNCwweDEyLDB4ZmUsMHg5MCwweDNmIH19LAotIHsxNiwgMHg5NDYwLCAwLCB7MHhmMCwweDBmLDB4ZGEsMHgyMywweGY0LDB4MTQsMHhmZiwweDAyLDB4M2IsMHhmMCwweDBmLDB4ZWEsMHgyMywweGI2LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTQ3MCwgMCwgezB4ODIsMHgzZiwweGUxLDB4OGYsMHhmNCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4YWYsMHg3MCwweDAzLDB4ZjggfX0sCi0gezE2LCAweDk0ODAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTAsMHgwMCwweGNhLDB4MDAsMHgzMiwweDA4IH19LAotIHsxNiwgMHg5NDkwLCAwLCB7MHgxYywweGEwLDB4MDMsMHhhNSwweDIwLDB4Y2IsMHg0MCwweGJhLDB4MTAsMHgxZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHgwMCB9fSwKLSB7MTYsIDB4OTRhMCwgMCwgezB4NzIsMHg5MCwweDBjLDB4YjQsMHgwMywweDI5LDB4MDQsMHhjOSwweDUyLDB4MzIsMHg1MCwweDBjLDB4YjQsMHgwMywweDBjLDB4MDAgfX0sCi0gezE2LCAweDk0YjAsIDAsIHsweGY4LDB4NDAsMHgzMiwweGMxLDB4MGUsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NGMwLCAwLCB7MHhjOCwweDA1LDB4MmQsMHg4MCwweDg5LDB4ODAsMHgyMiwweGQ5LDB4MDgsMHg5MCwweDIyLDB4MmEsMHgwMCwweDg4LDB4NTQsMHgyMiB9fSwKLSB7MTYsIDB4OTRkMCwgMCwgezB4YzAsMHg4YiwweDgwLDB4MjIsMHgyMCwweDE5LDB4YzgsMHgwMCwweDIyLDB4NDAsMHg4ZCwweDgwLDB4MWEsMHgyNCwweDEwLDB4ZDIgfX0sCi0gezE2LCAweDk0ZTAsIDAsIHsweDQ0LDB4MjIsMHg4MSwweDBkLDB4ODAsMHgwMywweDdjLDB4MDAsMHhiMCwweDAwLDB4MzcsMHhjMCwweDg4LDB4ZjAsMHgwMiwweDMyIH19LAotIHsxNiwgMHg5NGYwLCAwLCB7MHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHg4MSwweDAwLDB4YTAsMHhmMCB9fSwKLSB7MTYsIDB4OTUwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODksMHgwMiwweDgwLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgwMCwweDIyLDB4YTAsMHgwMCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDk1MTAsIDAsIHsweDIwLDB4NDAsMHgwOCwweDAwLDB4MDIsMHgwNCwweDAwLDB4ODIsMHg2MCwweDIwLDB4ODAsMHgwOCwweDAwLDB4MDIsMHgwYywweDA4IH19LAotIHsxNiwgMHg5NTIwLCAwLCB7MHhiMiwweDAwLDB4MjIsMHhjMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTUzMCwgMCwgezB4MjAsMHgwMSwweDAzLDB4MTAsMHg4ZSwweDkwLDB4MjMsMHgyNCwweDA4LDB4NmIsMHgwMiwweDE2LDB4NjAsMHg4ZiwweDgwLDB4MjEgfX0sCi0gezE2LCAweDk1NDAsIDAsIHsweDI4LDB4MGIsMHhmOSwweDA2LDB4MWUsMHg0MCwweDhmLDB4ODAsMHgyMywweGE0LDB4NDksMHg3OSwweDAyLDB4M2EsMHg0MCwweDlkIH19LAotIHsxNiwgMHg5NTUwLCAwLCB7MHg5MCwweDIzLDB4NjQsMHgwOSwweGY4LDB4MDIsMHg1ZSwweDQwLDB4YmUsMHg5MCwweDI0LDB4ZTQsMHgyOCwweDc5LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OTU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQyLDB4YzAsMHgwOSwweDMwLDB4MDAgfX0sCi0gezE2LCAweDk1NzAsIDAsIHsweDI4LDB4MDIsMHgwMywweDg0LDB4MDAsMHg4YSwweDIwLDB4MzAsMHhjNCwweDhiLDB4MTEsMHgwMywweDg0LDB4NTAsMHhiMywweDAwIH19LAotIHsxNiwgMHg5NTgwLCAwLCB7MHgyMCwweGMwLDB4MGMsMHhhNCwweDIyLDB4MDQsMHgwMCwweGNiLDB4NDAsMHgzMCwweGM1LDB4MGMsMHgzMCwweDAzLDB4MGUsMHg0MCB9fSwKLSB7MTYsIDB4OTU5MCwgMCwgezB4ZjMsMHgxMCwweDMwLDB4YzQsMHgwYywweGIwLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk1YTAsIDAsIHsweDQwLDB4MWQsMHhiMCwweDA0LDB4ZmIsMHgwNCwweDNkLDB4YzAsMHgwZiwweGYyLDB4NDMsMHhmOCwweDA0LDB4ZmQsMHgwMSwweDNmIH19LAotIHsxNiwgMHg5NWIwLCAwLCB7MHgwYywweDBmLDB4NjEsMHgwMywweGY4LDB4NDgsMHhmNCwweDAwLDB4M2QsMHgwMSwweDBmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4OTVjMCwgMCwgezB4MDQsMHhiZCwweDA0LDB4MGIsMHg0OCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MTQsMHgzZiwweGQ1LDB4MGQsMHhmMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweDk1ZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTAsMHgwMCwweGY5LDB4MDEsMHgzMiwweGMwIH19LAotIHsxNiwgMHg5NWUwLCAwLCB7MHg4ZSwweDkwLDB4MDMsMHgyOCwweDAyLDB4ZDEsMHgwMCwweDMyLDB4YzAsMHgwZCwweGE4LDB4MGIsMHgwOCwweDAwLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4OTVmMCwgMCwgezB4MmUsMHg0MCwweDBjLDB4OTgsMHgwYiwweDJlLDB4MDIsMHhjYSwweDAwLDB4YjIsMHhhMCwweDZjLDB4ODAsMHgyMywweDJkLDB4ODAgfX0sCi0gezE2LCAweDk2MDAsIDAsIHsweGNhLDB4ODAsMHgzMiwweGQwLDB4MGMsMHhiYSwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI2LDB4MDAsMHhhMywweDAwLDB4MDgsMHg2MCwweDAyLDB4MDQsMHgwMCwweDg2LDB4MDQsMHgyOSB9fSwKLSB7MTYsIDB4OTYyMCwgMCwgezB4MDAsMHgwOCwweDUwLDB4NDIsMHgxNCwweDA0LDB4YTcsMHgwMCwweDBkLDB4ODAsMHg0YSwweDYwLDB4MDIsMHgwMCwweDAwLDB4ODEgfX0sCi0gezE2LCAweDk2MzAsIDAsIHsweDAwLDB4MjEsMHg0MCwweDA4LDB4NzAsMHgwMiwweDlkLDB4NDIsMHg4NiwweDAxLDB4MjAsMHhjMCwweDA4LDB4MzIsMHg4MiwweDEyIH19LAotIHsxNiwgMHg5NjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDkyLDB4MDAsMHhiYywweDgwLDB4NjMsMHgyMCB9fSwKLSB7MTYsIDB4OTY1MCwgMCwgezB4ODIsMHgwOCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzIsMHgyMywweDIwLDB4ODgsMHgwYywweDAyLDB4MzMsMHgwMCwweDg0LDB4ODAgfX0sCi0gezE2LCAweDk2NjAsIDAsIHsweDJmLDB4MjEsMHg4OSwweDRjLDB4MDIsMHgxMiwweDE0LDB4OTQsMHhjNSwweDY0LDB4MjEsMHgwOCwweDRjLDB4MDIsMHgwZSwweDgwIH19LAotIHsxNiwgMHg5NjcwLCAwLCB7MHg5NywweDgyLDB4YTEsMHhlYywweDA4LDB4NzksMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTY4MCwgMCwgezB4NDgsMHgxNCwweGNkLDB4NDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDRkLDB4ODAsMHgwMywweDg4LDB4MjggfX0sCi0gezE2LCAweDk2OTAsIDAsIHsweGMwLDB4MDgsMHgzYywweDA2LDB4MGYsMHgwMCwweGEzLDB4NDMsMHgyYywweGMyLDB4MWIsMHgzOCwweDAyLDB4MGYsMHgwMCwweDliIH19LAotIHsxNiwgMHg5NmEwLCAwLCB7MHg4OCwweDY0LDB4ZDAsMHgwOCwweGI4LDB4MDIsMHg4YywweDEwLDB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4OTZiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhYSwweDAwLDB4ZmEsMHgwNSwweDMyLDB4ODAgfX0sCi0gezE2LCAweDk2YzAsIDAsIHsweDhlLDB4YTAsMHgwYiwweDY5LDB4MDAsMHhjYSwweDQwLDB4MzIsMHhhMCwweDNjLDB4YTgsMHgwMywweDJhLDB4MDAsMHhlYSwweDI2IH19LAotIHsxNiwgMHg5NmQwLCAwLCB7MHgzZSwweGIwLDB4MGQsMHhhMSwweDYzLDB4MjgsMHgyMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MGMsMHhlMCwweDEzLDB4MjgsMHgwOSB9fSwKLSB7MTYsIDB4OTZlMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyYywweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2ZjAsIDAsIHsweDQ4LDB4MDAsMHhmMCwweDIwLDB4ZjQsMHgwMCwweDNmLDB4MDAsMHgwZiwweDQwLDB4MjMsMHhiMCwweDAwLDB4ZWMsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5NzAwLCAwLCB7MHgwNiwweDFlLDB4YzIsMHgxMywweGYwLDB4ODgsMHhmYywweDIwLDB4M2YsMHgwNCwweDhlLDB4YzAsMHgwMywweGYwLDB4ODAsMHhlYyB9fSwKLSB7MTYsIDB4OTcxMCwgMCwgezB4NDAsMHgzYiwweDBjLDB4MGYsMHhjMCwweGEzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDk3MjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwIH19LAotIHsxNiwgMHg5NzMwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4NTMsMHhlNCwweDEwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4OTc0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDhmLDB4OTAsMHgwMywweDI0LDB4MTAgfX0sCi0gezE2LCAweDk3NTAsIDAsIHsweGM5LDB4MDEsMHgzYywweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NzYwLCAwLCB7MHg4MCwweDA0LDB4NDcsMHg0NCwweDg5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjUsMHgwYSwweDgxLDB4MTAsMHgyMiB9fSwKLSB7MTYsIDB4OTc3MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDMsMHhjNCwweDAwLDB4ODksMHgwMCwweDc2LDB4NDAsMHgyOCwweDkwLDB4MDIsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweDk3ODAsIDAsIHsweDQwLDB4YjIsMHg0MCwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MSwweDA4LDB4OTAsMHg0MiwweGUwIH19LAotIHsxNiwgMHg5NzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHhiZCwweDAwLDB4MjMsMHg0OCB9fSwKLSB7MTYsIDB4OTdhMCwgMCwgezB4MDgsMHhkMCwweDA2LDB4MWQsMHgwNCwweDhkLDB4MDAsMHgyOSwweGMwLDB4NGEsMHhkMCwweDIyLDB4ZjQsMHgwMCwweDg1LDB4MDAgfX0sCi0gezE2LCAweDk3YjAsIDAsIHsweDYxLDB4NDAsMHgxOCwweGQwLDB4MTIsMHhmYywweDAwLDB4YmQsMHg0MCwweGEzLDB4NDAsMHg0YiwweGYwLDB4MDIsMHgwNCwweDAxIH19LAotIHsxNiwgMHg5N2MwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTdkMCwgMCwgezB4MDgsMHgwNCwweDM2LDB4ODAsMHg4NSwweDIwLDB4YTMsMHg0OCwweDA4LDB4NTIsMHgwYSwweDE0LDB4ODEsMHg4NSwweDIwLDB4MjkgfX0sCi0gezE2LCAweDk3ZTAsIDAsIHsweDQ4LDB4MDgsMHg1MiwweDAyLDB4YjQsMHg4MCwweDg1LDB4MjAsMHgyNSwweDQ4LDB4ODgsMHg1MiwweDAyLDB4ZDQsMHg4MCwweGI1IH19LAotIHsxNiwgMHg5N2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwYiwweDUyLDB4MDIsMHg0NCwweGEyLDB4ODEsMHgwMCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4OTgwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHg1MSwweDIyLDB4MDAgfX0sCi0gezE2LCAweDk4MTAsIDAsIHsweDJjLDB4ODUsMHgwMiwweDIxLDB4NDgsMHhjOCwweDAwLDB4YmEsMHgxNCwweDBmLDB4ODUsMHgxMiwweGUxLDB4NDIsMHhjOCwweDUwIH19LAotIHsxNiwgMHg5ODIwLCAwLCB7MHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MDcsMHg0NSwweDAzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4OTgzMCwgMCwgezB4YzAsMHgwMSwweDNlLDB4MDgsMHgyYywweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4NDAsIDAsIHsweDk4LDB4MGQsMHhlNCwweDQwLDB4ZjEsMHgxMCwweDNlLDB4NDQsMHgwNywweDkxLDB4NDMsMHhlNCwweDU4LDB4ZjksMHgxMSwweDM0IH19LAotIHsxNiwgMHg5ODUwLCAwLCB7MHg0NCwweDRmLDB4OTEsMHgwMiwweGU0LDB4NTAsMHhmOSwweDEwLDB4M2MsMHg0ZiwweDBmLDB4OTMsMHg4MywweGU0LDB4ZjAsMHhmOSB9fSwKLSB7MTYsIDB4OTg2MCwgMCwgezB4MTEsMHgzYSwweDRmLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHhhMCwweGZkLDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDk4NzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHhhMCwweGNkLDB4YTAsMHhiMywweDY4IH19LAotIHsxNiwgMHg5ODgwLCAwLCB7MHg4YywweDlhLDB4MDMsMHgzNiwweDgwLDB4YzUsMHhhMCwweDIyLDB4NjAsMHgwYywweDlhLDB4MjMsMHgyNiwweDA0LDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4OTg5MCwgMCwgezB4MzIsMHg2NiwweDBjLDB4OWEsMHg4MywweDA2LDB4MjAsMHhjNSwweGEwLDB4MjIsMHg2MCwweDBjLDB4OWIsMHgwMywweDI2LDB4NDggfX0sCi0gezE2LCAweDk4YTAsIDAsIHsweGM5LDB4MDAsMHgzZSwweDc4LDB4MGMsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OGIwLCAwLCB7MHgzOCwweDAwLDB4ZTEsMHgwMCwweDg4LDB4NDQsMHgyMiwweDk1LDB4MDgsMHg4NSwweDEyLDB4YTEsMHg0MiwweDg4LDB4NDAsMHgwMiB9fSwKLSB7MTYsIDB4OThjMCwgMCwgezB4OTAsMHgwOCwweDg0LDB4MDIsMHgyMywweGEwLDB4YmEsMHg0MCwweDIyLDB4YTAsMHgwOCwweDhlLDB4OTIsMHhhMywweGEwLDB4YTggfX0sCi0gezE2LCAweDk4ZDAsIDAsIHsweDQwLDB4MmEsMHgxMCwweDA4LDB4YWUsMHgwMiwweDIzLDB4NDAsMHg4OCwweDAwLDB4MmUsMHgzOCwweDA4LDB4ODQsMHgxMiwweDBlIH19LAotIHsxNiwgMHg5OGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxNSwweGM0LDB4MDAsMHg4YiwweDEyLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4OThmMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDgxLDB4NDAsMHhhMCwweDUwLDB4MDgsMHgxMSwweDBhLDB4MDUsMHgwMCwweGIxLDB4MTAgfX0sCi0gezE2LCAweDk5MDAsIDAsIHsweGEwLDB4NDgsMHgwOCwweDkwLDB4MDIsMHgwNCwweDAwLDB4ODEsMHg0MCwweDIwLDB4NTAsMHgyOCwweDExLDB4MDIsMHg0NCwweDgyIH19LAotIHsxNiwgMHg5OTEwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDA4LDB4MTEsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTkyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDIsMHg4OSwweDQwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgxMiwweGE1LDB4MDAsMHg4OSwweDI4LDB4MjIgfX0sCi0gezE2LCAweDk5MzAsIDAsIHsweDQ5LDB4MDgsMHg5NCwweDAyLDB4MjQsMHg0OCwweGI5LDB4MTQsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4YTQsMHg0MCwweGExIH19LAotIHsxNiwgMHg5OTQwLCAwLCB7MHg1MCwweDJhLDB4NTAsMHgwOCwweDkxLDB4NDIsMHg2NCwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4OTk1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NzAgfX0sCi0gezE2LCAweDk5NjAsIDAsIHsweDJjLDB4MTAsMHgwYiwweDY2LDB4MDAsMHhjOSwweDQwLDB4MzIsMHg1MCwweDBjLDB4OTAsMHgwMywweDI2LDB4MjAsMHhmOSwweGMwIH19LAotIHsxNiwgMHg5OTcwLCAwLCB7MHgzMiwweDcwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5YywweDAzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4OTk4MCwgMCwgezB4YzksMHg0MSwweDNlLDB4NDAsMHgyYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5OTAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwNCwweDNlLDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDg4LDB4ZjksMHgwMCwweDM0IH19LAotIHsxNiwgMHg5OWEwLCAwLCB7MHg0MSwweDJmLDB4OWMsMHgwMywweGU0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDJmLDB4OTksMHgwMywweGU0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OTliMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGYsMHgxMCwweDRiLDB4YTQsMHgxMCwweGY5LDB4MjAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4NGEgfX0sCi0gezE2LCAweDk5YzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHg5OWQwLCAwLCB7MHgyYywweDgwLDB4MDMsMHgyMCwweDAyLDB4YzAsMHg0MCwweDMyLDB4MDAsMHgxYywweDA0LDB4MGYsMHgyMSwweDAwLDB4YzAsMHgwNCB9fSwKLSB7MTYsIDB4OTllMCwgMCwgezB4MzgsMHgwMCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDgsMHhjOCwweDYwLDB4MzAsMHgxMCwweDBmLDB4ODAsMHgwMiwweDIwLDB4MDAgfX0sCi0gezE2LCAweDk5ZjAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YTAwLCAwLCB7MHgyOCwweDA1LDB4MWEsMHgyMCwweDgyLDB4MDQsMHgyZiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4OWExMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODEsMHgwYiwweDIwLDB4MDIsMHgyOCwweDAwLDB4ZGUgfX0sCi0gezE2LCAweDlhMjAsIDAsIHsweGU0LDB4MzYsMHg4MCwweDBiLDB4YTAsMHg0MiwweDI4LDB4MDAsMHhiYSwweDA0LDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg5YTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4OWE0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHg2MCwweDgyLDB4OTAsMHhhMCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAgfX0sCi0gezE2LCAweDlhNTAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDMwLDB4MGEsMHgyYywweDAwLDB4ODMsMHhjMiwweDIwLDB4YzAsMHgwYiwweDMwLDB4MmEsMHgyYywweDAwIH19LAotIHsxNiwgMHg5YTYwLCAwLCB7MHhiMywweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWE3MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4MDAsMHg4NywweDAxLDB4MmQsMHhjMiwweDA4LDB4ZjMsMHgxMiwweDNjLDB4MDAsMHg4ZiwweDAxLDB4MjEgfX0sCi0gezE2LCAweDlhODAsIDAsIHsweGM4LDB4NjgsMHg3MiwweDIyLDB4MWUsMHgwNCwweDg3LDB4MjAsMHgyMSwweGM0LDB4MGIsMHg3MCwweDAyLDB4M2MsMHg4NCwweDlmIH19LAotIHsxNiwgMHg5YTkwLCAwLCB7MHgwMCwweDI1LDB4YzQsMHg0YiwweDcwLDB4MDIsMHgxYywweDA0LDB4YjcsMHg4MSwweDIxLDB4YzgsMHgwOCwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OWFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDAsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNjLDB4YTAgfX0sCi0gezE2LCAweDlhYjAsIDAsIHsweDRjLDB4N2EsMHgwYiwweDFhLDB4MDAsMHhjNiwweDgwLDB4MzAsMHhlMCwweDA4LDB4ZjgsMHg4MiwweDBlLDB4NDAsMHhjZiwweGYwIH19LAotIHsxNiwgMHg5YWMwLCAwLCB7MHgzOSwweGU4LDB4MGYsMHgzYSwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAsMHgzMSwweGUzLDB4MGYsMHgzOCwweDIzLDB4MWYsMHgwOCB9fSwKLSB7MTYsIDB4OWFkMCwgMCwgezB4ZmYsMHhjMCwweDMzLDB4ZjIsMHgwYywweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhZTAsIDAsIHsweDA4LDB4MTUsMHg4OCwweDBhLDB4N2IsMHgwMCwweDNlLDB4YzEsMHgwYiwweDM0LDB4MjMsMHhjOCwweDEwLDB4ZmIsMHgwMiwweDNlIH19LAotIHsxNiwgMHg5YWYwLCAwLCB7MHhjYSwweDBmLDB4YjcsMHg0MywweGVjLDB4ODAsMHhmYiwweDAwLDB4MmUsMHhjMiwweDBiLDB4YjQsMHg4MywweGVkLDB4ZDAsMHhmYSB9fSwKLSB7MTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzZSwweGQ5LDB4MGYsMHhiMywweDgzLDB4ZWMsMHg4MCwweGJiLDB4MjAsMHgzZSwweGQ4LDB4MmYsMHhiNCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDliMTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGY1LDB4OTEsMHgzMSwweGEwIH19LAotIHsxNiwgMHg5YjIwLCAwLCB7MHgwYywweGZjLDB4MDMsMHhmZSwweDAwLDB4YzQsMHg4MSwweDMxLDB4ZWUsMHg4ZCwweGY4LDB4MGEsMHgzZSwweDMwLDB4Y2YsMHg4NCB9fSwKLSB7MTYsIDB4OWIzMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHg4MywweGZlLDB4MTAsMHhmZSwweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgxOSwweDNmLDB4NDggfX0sCi0gezE2LCAweDliNDAsIDAsIHsweGNmLDB4YzAsMHgzMywweGUwLDB4MDQsMHhmYywweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwOCwweGI3LDB4YTEsMHgyMSwweGM4LDB4MDgsMHg3MSwweDAyLDB4ZjAsMHhhMCwweDg1LDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4OWI2MCwgMCwgezB4Y2UsMHgwOCwweDcwLDB4MDIsMHgzYywweDgwLDB4OGYsMHgwMCwweDJiLDB4YzUsMHgwOCwweDcxLDB4MDIsMHhkYywweDEwLDB4YjQgfX0sCi0gezE2LCAweDliNzAsIDAsIHsweDAwLDB4MjEsMHhjMSwweDBhLDB4ZjMsMHg4MiwweDBjLDB4MDAsMHg4NywweDAxLDB4MjksMHhjMCwweDA4LDB4NzEsMHgwMiwweDZhIH19LAotIHsxNiwgMHg5YjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDlkLDB4MDAsMHhiZCwweDIxLDB4MjcsMHg4MiB9fSwKLSB7MTYsIDB4OWI5MCwgMCwgezB4MDAsMHg3MCwweDAyLDB4ZmMsMHgwNCwweDhjLDB4MDAsMHhhNywweGNjLDB4YTgsMHg3MCwweDAyLDB4M2MsMHgwOCwweGFmLDB4MDAgfX0sCi0gezE2LCAweDliYTAsIDAsIHsweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzQsMHgwOCwweDcwLDB4MTYsMHgxYywweDBhIH19LAotIHsxNiwgMHg5YmIwLCAwLCB7MHg4ZiwweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWJjMCwgMCwgezB4MjAsMHgxMCwweGM4LDB4MDAsMHhiYiwweDQ0LDB4MjQsMHhlMiwweDA4LDB4YjEsMHgwMiwweGMyLDB4ODAsMHgwMSwweDgwLDB4MjQgfX0sCi0gezE2LCAweDliZDAsIDAsIHsweGQwLDB4ODgsMHgzMCwweDAyLDB4MGYsMHg1MiwweDgzLDB4OTEsMHgyOCwweGU0LDB4ODgsMHgzZCwweDAyLDB4Y2UsMHhkMCwweGIwIH19LAotIHsxNiwgMHg5YmUwLCAwLCB7MHhiMiwweGEyLDB4YzAsMHgwYSwweDM0LDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4OWJmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmIsMHgwMSwweGU0LDB4NDAgfX0sCi0gezE2LCAweDljMDAsIDAsIHsweDJjLDB4ZjAsMHg0MywweGU1LDB4MDAsMHg4YSwweDg4LDB4MzcsMHhlMCwweDAwLDB4ZmEsMHgwMiwweDNkLDB4MDAsMHhlZiwweDAwIH19LAotIHsxNiwgMHg5YzEwLCAwLCB7MHgzMywweGQxLDB4MGMsMHhmNCwweDAzLDB4ZmQsMHgwMCwweGY5LDB4NDAsMHgzMywweGU4LDB4MGMsMHhmYywweDAxLDB4M2MsMHgwNCB9fSwKLSB7MTYsIDB4OWMyMCwgMCwgezB4Y2YsMHgwMiwweDMzLDB4YzAsMHgyYywweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljMzAsIDAsIHsweDgwLDB4MDAsMHhlZSwweDA4LDB4ZjksMHgxMCwweDNhLDB4ZDAsMHgwZiwweGIwLDB4OTMsMHhlYywweDAwLDB4ZmIsMHgwYiwweDNhIH19LAotIHsxNiwgMHg5YzQwLCAwLCB7MHhjMCwweDhlLDB4YjAsMHg4MywweGVjLDB4ODAsMHhmYiwweDA5LDB4N2UsMHhjOCwweDBmLDB4YjIsMHgxMywweGVjLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OWM1MCwgMCwgezB4MDAsMHgzZSwweGMyLDB4OGYsMHhiMiwweDRiLDB4Y2MsMHgwNCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4NjAgfX0sCi0gezE2LCAweDljNjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHgzMywweGMwIH19LAotIHsxNiwgMHg5YzcwLCAwLCB7MHgxYywweGYwLDB4MDMsMHg3MCwweDQwLDB4YzQsMHhjMCwweDMzLDB4YzIsMHgwZiwweGYwLDB4MDMsMHgxYywweDEwLDB4YzcsMHgwMCB9fSwKLSB7MTYsIDB4OWM4MCwgMCwgezB4MzEsMHhjMCwweDBjLDB4NzAsMHgwMywweDFjLDB4MDAsMHhjNSwweDQxLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgyMywweDJjLDB4MDAgfX0sCi0gezE2LCAweDljOTAsIDAsIHsweGNmLDB4MDAsMHhiMywweGMwLDB4NmMsMHhmMCwweDAzLDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5Y2EwLCAwLCB7MHg4MSwweDA0LDB4NmEsMHgwMCwweGI5LDB4OTAsMHgzMiwweGYxLDB4MDgsMHhiMCwweDAyLDB4MGEsMHgxMCwweGQ5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4OWNiMCwgMCwgezB4YzEsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4Y2IsMHgwNiwweDIyLDB4YzAsMHg4OCwweGIwLDB4MTIsMHgyYywweDAwLDB4ODggfX0sCi0gezE2LCAweDljYzAsIDAsIHsweDgwLDB4MjIsMHhjMSwweDBkLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4MywweDAwLDB4MjIsMHhjMSwweDA4LDB4YjAsMHg0NiwweGUwIH19LAotIHsxNiwgMHg5Y2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJlLDB4MDAsMHhiOSwweDAwLDB4MjIsMHhmMCB9fSwKLSB7MTYsIDB4OWNlMCwgMCwgezB4MDgsMHhiMCwweDEyLDB4NjQsMHgwMCwweDhhLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDljZjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDAwLDB4OGEsMHgwMCwweDIyLDB4YzAsMHg4OCwweDMwLDB4MGEsMHgyYywweDAwIH19LAotIHsxNiwgMHg5ZDAwLCAwLCB7MHg4YiwweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHhiMSwweDAyLDB4ZTQsMHhjMSwweDA4LDB4YjAsMHgyMiwweDIwLDB4MDIsMHg5MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDlkMjAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDEyLDB4MGMsMHgwMiwweDgzLDB4MDIsMHhhMCwweGMwLDB4MjgsMHgzMCwweDBlLDB4MGMsMHgwMiwweDgwIH19LAotIHsxNiwgMHg5ZDMwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHg0OSwweDMwLDB4MGEsMHgwYywweDAyLDB4OGIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OWQ0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZjksMHgyNCwweDMyLDB4YzAgfX0sCi0gezE2LCAweDlkNTAsIDAsIHsweDA4LDB4ZjAsMHgwMywweDY0LDB4MDAsMHhjOCwweDAwLDB4YjMsMHhjMCwweDFmLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHg4ZiwweDAwIH19LAotIHsxNiwgMHg5ZDYwLCAwLCB7MHgzMywweGMwLDB4NGMsMHhmMCwweDQzLDB4M2MsMHgwOCwweGMzLDB4MDAsMHgzMSwweGMwLDB4MGMsMHhmMCwweDAzLDB4M2QsMHg0OCB9fSwKLSB7MTYsIDB4OWQ3MCwgMCwgezB4Y2YsMHgwMCwweDMxLDB4YzAsMHgwYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkODAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDA0LDB4ZjksMHg0MSwweDNiLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhmMCwweDExLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5ZDkwLCAwLCB7MHhjMCwweDg3LDB4NzAsMHgyNywweGZjLDB4MDAsMHhlZiwweDA2LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMiwweGZjLDB4MDgsMHhmYyB9fSwKLSB7MTYsIDB4OWRhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NDcsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDc3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDlkYjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGM3LDB4MDEsMHgzNywweDBjIH19LAotIHsxNiwgMHg5ZGMwLCAwLCB7MHgwZiwweGU4LDB4MjMsMHgxMCwweDRhLDB4YzQsMHhjMCwweDMxLDB4MzAsMHgwYywweGM5LDB4MDMsMHgzNCwweDQ2LDB4Y2YsMHgxMCB9fSwKLSB7MTYsIDB4OWRkMCwgMCwgezB4MzMsMHhkMCwweDBjLDB4ZjQsMHgwMywweDNjLDB4NTgsMHhjZiwweDAwLDB4MzMsMHhjMCwweDJkLDB4ZjEsMHgwMywweDNlLDB4MDIgfX0sCi0gezE2LCAweDlkZTAsIDAsIHsweGNmLDB4MjEsMHgzZiwweGU0LDB4MGYsMHhmMiwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZGYwLCAwLCB7MHg4MCwweDEwLDB4ZTQsMHg4NCwweDBiLDB4NDAsMHgyMiwweDRjLDB4MGIsMHhhOCwweDAyLDB4MmMsMHhjMCwweDhiLDB4MjAsMHgyMiB9fSwKLSB7MTYsIDB4OWUwMCwgMCwgezB4YzgsMHg0YSwweDMyLDB4MDIsMHgyNCwweDgwLDB4ODMsMHgyMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4OGIgfX0sCi0gezE2LCAweDllMTAsIDAsIHsweDIxLDB4MzIsMHhjYSwweDQ4LDB4MzIsMHgwMiwweDJjLDB4MzAsMHg4ZiwweDkwLDB4MmUsMHg4OCwweDBiLDB4YmQsMHgxMiwweDIwIH19LAotIHsxNiwgMHg5ZTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNlLDB4MjAsMHhhMywweDQwLDB4ZTAsMHg0OCB9fSwKLSB7MTYsIDB4OWUzMCwgMCwgezB4NGIsMHgyMCwweDIyLDB4MGMsMHgwMiwweDgyLDB4MDAsMHgyYSwweDAwLDB4MDgsMHgyMCwweDAyLDB4MDQsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweDllNDAsIDAsIHsweDIwLDB4YzgsMHgwOCwweDAyLDB4MDIsMHgwYywweDAwLDB4ODAsMHgwYywweDYwLDB4MDAsMHgwOCwweDIwLDB4MTIsMHgyYywweDg4IH19LAotIHsxNiwgMHg5ZTUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlOCwweDBiLDB4MzAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxNSwweGFlLDB4MDAsMHhhYiwweDAxLDB4YTIsMHg2MCwweDBiLDB4YTAsMHgwMiwweDIwLDB4MDEsMHg4MSwweDAwLDB4MjIgfX0sCi0gezE2LCAweDllNzAsIDAsIHsweGMwLDB4MGEsMHg5MCwweDEyLDB4MDQsMHgyMCwweDhhLDB4MDgsMHgyMiwweGMxLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDg4IH19LAotIHsxNiwgMHg5ZTgwLCAwLCB7MHgwMCwweDI0LDB4NDQsMHgwOCwweGEyLDB4MDIsMHhhYywweDAwLDB4OGIsMHgwNCwweDJlLDB4ODgsMHgwMywweGIwLDB4MDIsMHg3MCB9fSwKLSB7MTYsIDB4OWU5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWEsMHg5MCwweDMyLDB4MjggfX0sCi0gezE2LCAweDllYTAsIDAsIHsweDBmLDB4YjYsMHgwMywweDIwLDB4MDgsMHhjOSwweDA0LDB4M2EsMHhjMCwweDRjLDB4OTAsMHgyMiwweDI0LDB4MDAsMHhjYiwweDQwIH19LAotIHsxNiwgMHg5ZWIwLCAwLCB7MHgzMiwweGE4LDB4MGMsMHhiMiwweDAzLDB4MmMsMHgwMCwweGNiLDB4ODAsMHhiMiwweGUwLDB4MGMsMHhiMCwweDBiLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4OWVjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllZDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZGYsMHg4MCwweDNiLDB4ODEsMHgwZiwweGYwLDB4YzMsMHhmYywweDAwLDB4YmUsMHgwMSwweDFmIH19LAotIHsxNiwgMHg5ZWUwLCAwLCB7MHgwMCwweDBmLDB4ZTAsMHgyMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhiMCwweDRmLDB4ZjAsMHg0MywweGQ0LDB4MDIsMHhmZiB9fSwKLSB7MTYsIDB4OWVmMCwgMCwgezB4OTEsMHgzYSwweGUwLDB4NGUsMHhmMCwweDAzLDB4N2MsMHgwYywweGZmLDB4MDAsMHgyZiwweDgwLDB4MGYsMHgzMCwweDAzLDB4YjggfX0sCi0gezE2LCAweDlmMDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGNhLDB4MDAsMHg3MiwweDUwIH19LAotIHsxNiwgMHg5ZjEwLCAwLCB7MHgwNCwweGI0LDB4MDMsMHgyYywweDgyLDB4Y2IsMHgwMCwweDMyLDB4ZTAsMHgwYywweGI4LDB4MDMsMHgyNywweDA0LDB4YzgsMHhjOCB9fSwKLSB7MTYsIDB4OWYyMCwgMCwgezB4YjIsMHhhMiwweDBjLDB4ODgsMHgwMywweDJjLDB4MDAsMHhjMSwweDAwLDB4M2UsMHgwMCwweDJjLDB4MzAsMHgxYiwweDJjLDB4MDQgfX0sCi0gezE2LCAweDlmMzAsIDAsIHsweGZiLDB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZjQwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwNCwweDAzLDB4NTAsMHhhMiwweGUwLDB4MDgsMHgzNCwweDQyLDB4MzMsMHgwMCwweDg4LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OWY1MCwgMCwgezB4MTAsMHgwZCwweDg0LDB4MDMsMHgyNSwweDAwLDB4OGEsMHg0MCwweDIyLDB4OTAsMHgwOCwweGE1LDB4MDIsMHgyYywweDAwLDB4ODkgfX0sCi0gezE2LCAweDlmNjAsIDAsIHsweGE0LDB4M2EsMHg0MCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiZiwweDg0LDB4MmUsMHg4MCwweDBiLDB4ZjAsMHg1MiwweDMyIH19LAotIHsxNiwgMHg5ZjcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDZjLDB4ODAsMHg4MSwweDgwLDB4MjQsMHg4OCB9fSwKLSB7MTYsIDB4OWY4MCwgMCwgezB4ODksMHgzYywweDI2LDB4MjEsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAyLDB4MDgsMHg4MCwweDgyLDB4MDAsMHgyMCwweDliLDB4MDAgfX0sCi0gezE2LCAweDlmOTAsIDAsIHsweDIyLDB4NDAsMHg4OCwweGIwLDB4MTIsMHgwYywweDA4LDB4ODMsMHg4MCwweDJjLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg5ZmEwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWZiMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4MGEsMHg4NSwweGEwLDB4YTUsMHg2MCwweDA4LDB4ZmIsMHg4MiwweDNlLDB4ODQsMHg5ZiwweDgxLDB4NjMgfX0sCi0gezE2LCAweDlmYzAsIDAsIHsweGUwLDB4ODksMHg3OSwweDEyLDB4NTIsMHg4MCwweDk3LDB4ODIsMHgyMSwweDZjLDB4MTgsMHg3OCwweDAyLDB4MTIsMHgwMCwweDg3IH19LAotIHsxNiwgMHg5ZmQwLCAwLCB7MHhhMSwweDI5LDB4ZTAsMHgwOCwweDViLDB4MDIsMHgxZSwweDAwLDB4YjcsMHhjMCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OWZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgwOCwweDI2LDB4YzIgfX0sCi0gezE2LCAweDlmZjAsIDAsIHsweDJjLDB4MzIsMHgxMywweDBlLDB4YTQsMHhkMiwweDAwLDB4YjAsMHgwMCwweDFjLDB4MjEsMHgxMiwweDI0LDB4MDIsMHhkMSwweDIwIH19LAotIHsxNiwgMHhhMDAwLCAwLCB7MHgzMCwweGM4LDB4MGMsMHgxMCwweDAzLDB4MGMsMHgwMCwweGMyLDB4MTAsMHgzYywweDgwLDB4MGMsMHgyMywweDAzLDB4MGMsMHg0MCB9fSwKLSB7MTYsIDB4YTAxMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4NDgsMHgwZiwweDMwLDB4MGIsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwMjAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmQsMHgyMCwweGJiLDB4NDAsMHgwNywweDcyLDB4MDIsMHhmMCwweDEwLDB4ZWQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhhMDMwLCAwLCB7MHhjNCwweDBmLDB4ZDEsMHg2MywweGI0LDB4ODAsMHhlZiwweDAwLDB4M2YsMHhjOCwweDBmLDB4ZjAsMHgwMywweGQ4LDB4MDAsMHhmZSB9fSwKLSB7MTYsIDB4YTA0MCwgMCwgezB4MzQsMHgzZiwweGM0LDB4MGYsMHhlYiwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHg3ZiwweDQwLDB4MGYsMHhmMSwweDgzLDB4ZDAgfX0sCi0gezE2LCAweGEwNTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGM4LDB4MDAsMHgzMywweDgwIH19LAotIHsxNiwgMHhhMDYwLCAwLCB7MHg4ZiwweDI4LDB4MDMsMHgyMCwweDAwLDB4NDksMHgwMiwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyMCwweDAwLDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4YTA3MCwgMCwgezB4MzIsMHg0MCwweDRjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHhjMCwweDBlLDB4OWUsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGEwODAsIDAsIHsweGZiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMDkwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDhkLDB4MDEsMHgyMSwweGMwLDB4MGIsMHg2MCwweDAyLDB4MWQsMHgwMCwweGQ2LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YTBhMCwgMCwgezB4MDAsMHgwYiwweGUwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwNCwweDIwLDB4NDAsMHgwOCwweDcwLDB4NDIsMHgzNCwweDAyLDB4ODcgfX0sCi0gezE2LCAweGEwYjAsIDAsIHsweDAxLDB4MjMsMHhjMCwweDI4LDB4NTEsMHgwYSwweDFjLDB4MDQsMHhiNywweDMwLDB4MmQsMHhjMCwweDBiLDB4NzIsMHgwMywweDkyIH19LAotIHsxNiwgMHhhMGMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNiwweDQwLDB4MjEsMHhhMCB9fSwKLSB7MTYsIDB4YTBkMCwgMCwgezB4MGIsMHg2OCwweDAyLDB4MGUsMHgwMCwweDhmLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4MTYsMHgxMCwweGE1LDB4ODAgfX0sCi0gezE2LCAweGEwZTAsIDAsIHsweDIxLDB4ZTAsMHgwOCwweDE4LDB4MDIsMHgxZSwweDAwLDB4ODMsMHg4MCwweDIxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxZiwweDAwIH19LAotIHsxNiwgMHhhMGYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhlMCwweDBiLDB4MzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTEwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MTIsMHhhMSwweDY0LDB4MjAsMHhlNiwweDBiLDB4MjAsMHgwMiwweDAwLDB4MTAsMHg5MCwweDRhLDB4MjAgfX0sCi0gezE2LCAweGExMTAsIDAsIHsweDIwLDB4NGIsMHgwMCwweDQyLDB4MDQsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMyLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhMTIwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwZSwweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAsMHg0YiwweDMwLDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YTEzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4ZWUsMHhjMCwweDMzLDB4OTAgfX0sCi0gezE2LCAweGExNDAsIDAsIHsweDBmLDB4YTAsMHgxYiwweDA4LDB4MDAsMHhjYSwweDQwLDB4YjIsMHg4MiwweDBmLDB4YTAsMHgwYiwweDI4LDB4MDIsMHhjYSwweDAwIH19LAotIHsxNiwgMHhhMTUwLCAwLCB7MHhiMiwweDkwLDB4YWMsMHhhMCwweDAzLDB4MjksMHgwMCwweGNhLDB4NDAsMHhiMiwweDgwLDB4OGUsMHhhNCwweDAzLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4YTE2MCwgMCwgezB4ZmEsMHgwMCwweDNmLDB4YTgsMHgwZiwweGEwLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExNzAsIDAsIHsweDQ4LDB4MDAsMHhlMiwweDAyLDB4OTAsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg4LDB4MDMsMHhmMSwweDAwLDB4ZmMsMHgwMiwweDNmIH19LAotIHsxNiwgMHhhMTgwLCAwLCB7MHgyMCwweDBmLDB4YzgsMHgwMywweGMxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDhmLDB4MDAsMHgwMSwweDYwLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YTE5MCwgMCwgezB4MDgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4OGYsMHg4MCwweDEzLDB4OTIgfX0sCi0gezE2LCAweGExYTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDAsMHhiMiwweDY0IH19LAotIHsxNiwgMHhhMWIwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCwweDMyLDB4NDAsMHg2YywweDkwLDB4MDMsMHgyNSwweDAyLDB4YzksMHg5MCB9fSwKLSB7MTYsIDB4YTFjMCwgMCwgezB4YjAsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MjAsMHhjOSwweGEwLDB4M2UsMHg0MCwweDRjLDB4OTAsMHgyMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGExZDAsIDAsIHsweGYxLDB4MDAsMHg5MiwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMWUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODAsMHhhMiwweDQwLDB4MGIsMHg5NiwweDQyLDB4ZTUsMHgwNCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YTFmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4MDksMHg0MSwweDIyLDB4NDAsMHg0OCwweDkwLDB4NDIsMHgyNCwweDA0LDB4ODkgfX0sCi0gezE2LCAweGEyMDAsIDAsIHsweDgwLDB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhMjEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4MDAsMHg4OSwweDIwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4YTIyMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZjQsMHg4NCwweDg1LDB4MDAsMHgyMSwweDQwLDB4NDgsMHg1MCwweDAyLDB4MjQsMHgyMCwweDhkLDB4MDggfX0sCi0gezE2LCAweGEyMzAsIDAsIHsweDIzLDB4NDAsMHgwOCwweGQwLDB4MDIsMHg5NCwweDAwLDB4OGQsMHgwMCwweDI5LDB4NDAsMHgwYSwweGQwLDB4MDIsMHhhNCwweDA4IH19LAotIHsxNiwgMHhhMjQwLCAwLCB7MHhiOSwweDAwLDB4MjgsMHg0MCwweDE4LDB4OTAsMHhjMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTI1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MSwweDBiLDB4MTAsMHgwMiwweGY1LDB4ODAsMHg4NSwweGMxLDB4YTEgfX0sCi0gezE2LCAweGEyNjAsIDAsIHsweDUwLDB4MDgsMHg1NCwweDBhLDB4MDUsMHgwNiwweDg1LDB4NDAsMHgyMSwweDUwLDB4ODgsMHg1NCwweDAyLDB4OTUsMHgwMCwweDg1IH19LAotIHsxNiwgMHhhMjcwLCAwLCB7MHg0NCwweDJkLDB4NTAsMHgyYSwweDU0LDB4MTIsMHhjNSwweDAxLDB4YjEsMHgwMCwweDA4LDB4NTAsMHgwOCwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YTI4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4Y2EsMHg1MCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGEyOTAsIDAsIHsweDBmLDB4ODAsMHgwMywweGU4LDB4MDIsMHhjOCwweDAxLDB4MzIsMHgwMCwweDJjLDB4YzAsMHgwMywweDIwLDB4MDAsMHhjOCwweDAyIH19LAotIHsxNiwgMHhhMmEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGUsMHg0MCwweDIzLDB4YTAsMHgwOCB9fSwKLSB7MTYsIDB4YTJiMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgyYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyYzAsIDAsIHsweDk4LDB4MWQsMHhkYywweDA0LDB4ZmQsMHg0MCwweDNmLDB4NTAsMHg0ZiwweDkwLDB4NjMsMHhlNCwweDQwLDB4ZjEsMHgwMiwweDNlIH19LAotIHsxNiwgMHhhMmQwLCAwLCB7MHg0MSwweDBmLDB4OTAsMHgxMywweGY1LDB4MDQsMHhmOSwweDQxLDB4M2UsMHg1MCwweDBmLDB4OTQsMHg0MywweDY1LDB4MDIsMHhmOSB9fSwKLSB7MTYsIDB4YTJlMCwgMCwgezB4NDEsMHgzNiwweDUwLDB4NGQsMHg5NCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4NDEsMHgzNywweDQwLDB4NGYsMHg5NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGEyZjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZmMsMHgwMCwweGNkLDB4YTgsMHgzMywweDcwIH19LAotIHsxNiwgMHhhMzAwLCAwLCB7MHgwZiwweGQwLDB4MTMsMHhmNiwweDg4LDB4Y2QsMHgwMCwweDMyLDB4NTAsMHg0ZiwweDE0LDB4MjMsMHgwNywweGEwLDB4YzksMHhjMCB9fSwKLSB7MTYsIDB4YTMxMCwgMCwgezB4MzIsMHg3OCwweDBjLDB4OWUsMHgwMywweDM3LDB4MDIsMHhjZCwweGMwLDB4MzIsMHg2NCwweDBmLDB4OTgsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGEzMjAsIDAsIHsweGNkLDB4MDAsMHgzMiwweDQwLDB4MmMsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMzMwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweDg4LDB4ZWIsMHgyMiwweDMwLDB4MGIsMHg4MCwweDEyLDB4ZTgsMHgwNCwweGEwLDB4YTAsMHgyYSB9fSwKLSB7MTYsIDB4YTM0MCwgMCwgezB4MjAsMHgwYiwweDhhLDB4MGEsMHgyMywweDAwLDB4ODgsMHg4MCwweDIyLDB4MjgsMHgwMCwweGM4LDB4NDIsMHgyMywweDgwLDB4ODAgfX0sCi0gezE2LCAweGEzNTAsIDAsIHsweGQ0LDB4MjAsMHgyOCwweDA5LDB4ODAsMHgwMiwweDIyLDB4OTQsMHhhOCwweDAwLDB4MmEsMHgwMCwweDg4LDB4ODUsMHgwMiwweDBlIH19LAotIHsxNiwgMHhhMzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4MywweDAwLDB4MjQsMHhkOCB9fSwKLSB7MTYsIDB4YTM3MCwgMCwgezB4OGIsMHgxMCwweDAyLDB4ZTUsMHgxNCwweDg5LDB4MGEsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NTQsMHg4MCwweDg1LDB4NDAgfX0sCi0gezE2LCAweGEzODAsIDAsIHsweDI1LDB4NTgsMHgwOSwweDU2LDB4MDIsMHg0NSwweDAyLDB4ODEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDIsMHgwNCwweDMwIH19LAotIHsxNiwgMHhhMzkwLCAwLCB7MHg4MSwweDAwLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTNhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTIsMHg4OSwweDAwLDB4YTYsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU0LDB4OTgsMHhhOSwweDgwLDB4MmIgfX0sCi0gezE2LCAweGEzYjAsIDAsIHsweDQwLDB4MGIsMHg1MSwweDAyLDB4NTUsMHgwMCwweDlkLDB4MDgsMHgyNywweDQ4LDB4MDksMHhmNiwweDAyLDB4NDQsMHgwMCwweDgxIH19LAotIHsxNiwgMHhhM2MwLCAwLCB7MHgwNCwweDIyLDB4NDAsMHgxOSwweDkxLDB4OGEsMHgyNCwweDgwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YTNkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDAyLDB4YzksMHgwNCwweDM2LDB4NTggfX0sCi0gezE2LCAweGEzZTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGM1LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgxMywweDY0LDB4MDIsMHhjOSwweDAwIH19LAotIHsxNiwgMHhhM2YwLCAwLCB7MHgzNiwweDQwLDB4MmQsMHg5MCwweDBiLDB4NjYsMHgwNCwweGM5LDB4ZTAsMHhiMiwweDQ4LDB4OGYsMHg5OCwweDQ3LDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTQwMCwgMCwgezB4YzksMHgwMCwweDcyLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0MTAsIDAsIHsweDI4LDB4MDEsMHhhNSwweDA4LDB4ZjksMHgyMSwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNDIwLCAwLCB7MHg0MCwweDRmLDB4OTgsMHg4MywweGE0LDB4MDAsMHhlOSwweDQwLDB4YmEsMHg2MCwweDBlLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4YTQzMCwgMCwgezB4YTMsMHgzZSwweDQ4LDB4MGYsMHg5OCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGE0NDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTIsMHg0OCwweGM4LDB4MjAsMHgzMiwweDA4IH19LAotIHsxNiwgMHhhNDUwLCAwLCB7MHgxZiwweDgwLDB4ODMsMHhlMSwweDIyLDB4YzgsMHgwMSwweDMzLDB4MDAsMHgyYywweGMwLDB4MDMsMHgzMCwweDA0LDB4Y2MsMHg0MCB9fSwKLSB7MTYsIDB4YTQ2MCwgMCwgezB4YjEsMHgwMCwweDBjLDB4NDQsMHgwMywweDIwLDB4MTIsMHhjOCwweDQxLDB4MzIsMHgwMCwweDJkLDB4ODQsMHgwYiwweDYwLDB4MDAgfX0sCi0gezE2LCAweGE0NzAsIDAsIHsweGY4LDB4MDAsMHhiMiwweDAwLDB4NGMsMHg4MCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNDgwLCAwLCB7MHgyOCwweDA1LDB4M2EsMHgwMCwweGE2LDB4MDAsMHgyMywweDkwLDB4MDMsMHhlNCwweDkyLDB4ZjgsMHgwMCwweDgyLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YTQ5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4Y2EsMHgwMCwweDIyLDB4ODMsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGE0YTAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiNiwweDgwLDB4MjIsMHg4MCwweDBkLDB4ZTgsMHgwMiwweDBhIH19LAotIHsxNiwgMHhhNGIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZlLDB4MDAsMHg4MiwweDQyLDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4YTRjMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4Y2QsMHgwOSwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMiwweDk4LDB4MDAgfX0sCi0gezE2LCAweGE0ZDAsIDAsIHsweDIwLDB4MjAsMHgyOCwweDAwLDB4MGEsMHgwNCwweDEwLDB4ODEsMHg4MCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhhNGUwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDE4LDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTRmMCwgMCwgezB4YTAsMHgwMSwweDM4LDB4MDIsMHhhMywweDAwLDB4MjEsMHg0MCwweDFiLDB4NzAsMHgwMiwweGRjLDB4MjAsMHg4NCwweDA1LDB4NjUgfX0sCi0gezE2LCAweGE1MDAsIDAsIHsweGUwLDB4MDgsMHhmMCwweDAyLDB4N2MsMHgxMCwweDk3LDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NTQsMHg4OCwweDg3IH19LAotIHsxNiwgMHhhNTEwLCAwLCB7MHgwOSwweDIxLDB4ZTgsMHgwOSwweDMzLDB4MDIsMHgxYywweDgwLDB4YjYsMHgwOCwweDYzLDB4YzgsMHgwOSwweDM4LDB4MTIsMHgyOCB9fSwKLSB7MTYsIDB4YTUyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHhhMCwweGExLDB4ZTAgfX0sCi0gezE2LCAweGE1MzAsIDAsIHsweDBiLDB4NzgsMHgwMywweGZlLDB4MDAsMHhjNSwweDgyLDB4MzMsMHgyMCwweDBjLDB4NDgsMHgwMywweDFlLDB4MDEsMHhkZiwweDgwIH19LAotIHsxNiwgMHhhNTQwLCAwLCB7MHgzMSwweDIwLDB4MGMsMHg0OCwweDAzLDB4MDYsMHg0MCwweDg3LDB4ODIsMHgzMSwweGY4LDB4MGQsMHg3YiwweDAzLDB4NWYsMHgwMCB9fSwKLSB7MTYsIDB4YTU1MCwgMCwgezB4ZjMsMHg4MCwweDMxLDB4ZjIsMHgwYywweDYwLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1NjAsIDAsIHsweDA4LDB4MWQsMHg5YywweDAwLDB4ZmIsMHgwMSwweDJmLDB4NDAsMHgwNywweGIwLDB4MDMsMHhlOCwweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNTcwLCAwLCB7MHhjMSwweDBmLDB4YjAsMHgwMywweGUwLDB4MDYsMHhlOCwweDAyLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweGE0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4YTU4MCwgMCwgezB4NDAsMHhiZSwweGQwLDB4MDYsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGZhLDB4MDAsMHgzYywweGQ4LDB4MGYsMHhhMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGE1OTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNmLDB4ODgsMHgzMywweDY0IH19LAotIHsxNiwgMHhhNWEwLCAwLCB7MHgyYywweGY4LDB4MDMsMHhmZSwweDAyLDB4YzQsMHhiMCwweDMzLDB4MjAsMHg4YywweGQ4LDB4MDMsMHgzMiwweDAwLDB4Y2MsMHhiNCB9fSwKLSB7MTYsIDB4YTViMCwgMCwgezB4MzMsMHhhMCwweDBjLDB4YzgsMHgwMywweDE2LDB4MjAsMHhjZiwweGMwLDB4MzMsMHhmMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGE1YzAsIDAsIHsweGNkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhkOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNWQwLCAwLCB7MHhhOCwweDExLDB4YjUsMHgwNCwweDg3LDB4MTIsMHhhMSwweDUwLDB4MGEsMHg3NCwweDEyLDB4YzQsMHg0MCwweDg0LDB4MTEsMHgyMyB9fSwKLSB7MTYsIDB4YTVlMCwgMCwgezB4YzAsMHgyOCwweGUwLDB4MDIsMHgxYywweDAyLDB4YTcsMHgxMSwweDIxLDB4NTgsMHg0OCwweDcwLDB4MGEsMHgxNCwweDAwLDB4OGQgfX0sCi0gezE2LCAweGE1ZjAsIDAsIHsweDAwLDB4MjMsMHhjMCwweDBiLDB4NzAsMHgwMiwweGZjLDB4NDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhhNjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk1LDB4MDAsMHg4NywweDQwLDB4MjEsMHgwMCB9fSwKLSB7MTYsIDB4YTYxMCwgMCwgezB4MTgsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk1LDB4MjgsMHhlMSwweDAyLDB4MDgsMHg1MCwweDAyLDB4M2MsMHg0MiwweGE3LDB4MjIgfX0sCi0gezE2LCAweGE2MjAsIDAsIHsweDIxLDB4ODAsMHg4OCwweDQxLDB4MDIsMHgxNCwweDAwLDB4ODUsMHgwMCwweGExLDB4YzAsMHgwOSwweDcxLDB4MDIsMHhkYywweDAwIH19LAotIHsxNiwgMHhhNjMwLCAwLCB7MHhiNSwweDEwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTY0MCwgMCwgezB4MjAsMHgxNCwweGM0LDB4MTAsMHg4MywweDg0LDB4MjAsMHgxMSwweDA4LDB4MzAsMHgwMiwweGMzLDB4MTAsMHg5MSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGE2NTAsIDAsIHsweGMwLDB4MDgsMHgyOCwweDEyLDB4MDAsMHgwMCwweGEwLDB4ODQsMHgyMCwweDQwLDB4MDgsMHgzMCwweDAyLDB4MDQsMHgyNiwweDgzIH19LAotIHsxNiwgMHhhNjYwLCAwLCB7MHgwMCwweDIwLDB4ZDAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjIsMHgwMCwweDJjLDB4YzAsMHgwYiwweDAwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YTY3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4Y2YsMHg4OCwweGIyLDB4ZTggfX0sCi0gezE2LCAweGE2ODAsIDAsIHsweDBjLDB4MzAsMHgxMywweGNlLDB4YzIsMHhkMCwweDgyLDB4MzIsMHgwMCwweDBjLDB4MGUsMHgwYiwweDIwLDB4MDAsMHhjOCwweDg4IH19LAotIHsxNiwgMHhhNjkwLCAwLCB7MHhiMiwweDQwLDB4MmMsMHhiYSwweDQzLDB4MzcsMHgwMiwweGNiLDB4MDAsMHhiMywweGMwLDB4MmMsMHhmMCwweDAzLDB4ZmMsMHgxMiB9fSwKLSB7MTYsIDB4YTZhMCwgMCwgezB4ZmIsMHgwMCwweDdmLDB4ZDEsMHgwZiwweDMwLDB4MGIsMHgyYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2YjAsIDAsIHsweDgwLDB4MDAsMHhlZCwweDAyLDB4ZjEsMHg0MCwweDNlLDB4NDEsMHgwZiwweGIwLDB4MjMsMHhlZCwweDAwLDB4ZTgsMHgwMSwweDNlIH19LAotIHsxNiwgMHhhNmMwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDQsMHhkYiwweDAwLDB4M2MsMHg4MCwweDBmLDB4MDQsMHgwMywweGU0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YTZkMCwgMCwgezB4MDAsMHgzYywweGMyLDB4MGUsMHhiMCwweDAzLDB4ZWUsMHgwMCwweDRiLDB4NDEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGE2ZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweDRiLDB4MDAsMHgzMiwweDQyIH19LAotIHsxNiwgMHhhNmYwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzNiwweDgwLDB4Y2QsMHgwMCwweDMzLDB4MDAsMHg0YywweGMwLDB4ODMsMHgzYywweDA0LDB4ZjcsMHgwMCB9fSwKLSB7MTYsIDB4YTcwMCwgMCwgezB4MzIsMHg0MCwweDBjLDB4YjEsMHg0MywweDE0LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAgfX0sCi0gezE2LCAweGE3MTAsIDAsIHsweGZmLDB4MDAsMHhiMywweGMyLDB4MGMsMHhhMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzIwLCAwLCB7MHg4MSwweDA0LDB4NGYsMHgwMiwweDhiLDB4ODAsMHgyMCwweDMwLDB4MDgsMHhiYywweDAyLDB4MjAsMHgxMCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YTczMCwgMCwgezB4YzAsMHgwMCwweGIwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweGEyLDB4OTAsMHgyOCwweDhjLDB4MWEsMHgyNCwweDAyLDB4OGIgfX0sCi0gezE2LCAweGE3NDAsIDAsIHsweDgzLDB4MjIsMHhjMSwweDA4LDB4YjAsMHgwMiwweGZjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDBkLDB4YTAsMHgwMywweGUwIH19LAotIHsxNiwgMHhhNzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHhhYiwweGMwLDB4MjIsMHg2MCB9fSwKLSB7MTYsIDB4YTc2MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MjksMHgwMCwweDg4LDB4MDEsMHgyMCwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAgfX0sCi0gezE2LCAweGE3NzAsIDAsIHsweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlNCwweDAwLDB4ODEsMHgyNCwweGEyLDB4YzAsMHgwOSwweGIwLDB4NDYsMHhlYywweDAwIH19LAotIHsxNiwgMHhhNzgwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTc5MCwgMCwgezB4MDgsMHgwNCwweDJjLDB4MDAsMHhhMSwweDAwLDB4YTAsMHg0MSwweDA4LDB4YjAsMHgwYSwweDIwLDB4NTMsMHg4OCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGE3YTAsIDAsIHsweGMwLDB4MjgsMHhhMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweDAwLDB4ODgsMHgwMCwweDAyLDB4ODQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhN2IwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDYyLDB4YzAsMHgwOSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTdjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZTksMHgwMCwweDIyLDB4MDAgfX0sCi0gezE2LCAweGE3ZDAsIDAsIHsweDBjLDB4YjAsMHgwMywweDAwLDB4MDQsMHhjOSwweDAwLDB4YjIsMHgwMCwweDBjLDB4OTAsMHgwMywweDJjLDB4MDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhhN2UwLCAwLCB7MHhiMiwweGMwLDB4OGMsMHhiMCwweDAzLDB4YjQsMHgwMiwweDhmLDB4MDAsMHgyMywweGMwLDB4MDQsMHhmMCwweDAzLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4YTdmMCwgMCwgezB4ZjksMHgwMCwweDMzLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4MDAsIDAsIHsweGEwLDB4MWQsMHhmYywweDEwLDB4ZGQsMHgwNCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MjMsMHhmMCwweDkwLDB4ZmQsMHgwMCwweDJmIH19LAotIHsxNiwgMHhhODEwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHg0MywweGQwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDhmLDB4YzAsMHgyMiwweDc0LDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4YTgyMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDYsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweGE4MzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg4MCwweGVmLDB4MjAsMHgxMSwweGMwIH19LAotIHsxNiwgMHhhODQwLCAwLCB7MHgwZSwweDcyLDB4MDMsMHhiZCwweGIwLDB4Y2YsMHgzMSwweGJmLDB4Y2MsMHgwMiwweGYwLDB4MDMsMHhmYywweGM2LDB4Y2YsMHgwMSB9fSwKLSB7MTYsIDB4YTg1MCwgMCwgezB4MGIsMHhjNSwweDBmLDB4ZjEsMHgwMywweDNjLDB4MDQsMHhlZiwweDYxLDB4MzMsMHhkOCwweDA3LDB4ZjAsMHgwMywweDM0LDB4ODAgfX0sCi0gezE2LCAweGE4NjAsIDAsIHsweGNkLDB4MzAsMHg3MywweGNjLDB4MGYsMHhlOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhODcwLCAwLCB7MHg4MCwweDE4LDB4ZTksMHgwMCwweDg4LDB4NjksMHgyMiwweDEwLDB4MDgsMHg4YywweDAwLDB4MjEsMHg4NCwweDg4LDB4NDEsMHgyMiB9fSwKLSB7MTYsIDB4YTg4MCwgMCwgezB4MTAsMHg4OCwweDg2LDB4OTIsMHgwMSwweDAwLDB4ODgsMHg2MiwweDIyLDB4MTAsMHg0YiwweDg3LDB4MDIsMHgyMSwweGEwLDB4ODggfX0sCi0gezE2LCAweGE4OTAsIDAsIHsweDYwLDB4MjAsMHgxMCwweDBiLDB4ODYsMHhhMiwweDM1LDB4YTAsMHhhYiwweDYwLDB4YTEsMHhjNCwweDBiLDB4YjgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhOGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4YTgsMHgzMywweDQxLDB4MjAsMHhjNiB9fSwKLSB7MTYsIDB4YThiMCwgMCwgezB4NGEsMHgzMSwweDAwLDB4OGMsMHgxMCwweDkzLDB4MzMsMHgyOCwweGNjLDB4MjksMHgzNCwweDEyLDB4OGMsMHg1MCwweDkzLDB4MWMgfX0sCi0gezE2LCAweGE4YzAsIDAsIHsweDI4LDB4ODQsMHgwMSwweDIwLDB4NGEsMHg0YywweDQxLDB4ODMsMHgxMCwweDI0LDB4Y2MsMHg0YiwweDMxLDB4NDIsMHg0YywweDQwIH19LAotIHsxNiwgMHhhOGQwLCAwLCB7MHg5MSwweDEwLDB4MjQsMHhjMCwweDBiLDB4ODAsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YThlMCwgMCwgezB4YzAsMHgwNSwweGE4LDB4MjAsMHg5MCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMCwweDIwLDB4MzAsMHhiOCwweDA4LDB4MjYgfX0sCi0gezE2LCAweGE4ZjAsIDAsIHsweDAwLDB4MDEsMHg4MCwweDgyLDB4MjAsMHgyMCwweDE4LDB4MDgsMHg0MiwweDQwLDB4MDMsMHg5MSwweDAyLDB4NjAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhhOTAwLCAwLCB7MHgwMSwweGE2LDB4MDAsMHgwYiwweDgwLDB4MDAsMHg2YywweDEwLDB4YmIsMHgwMSwweDI2LDB4YzAsMHg0YiwweDkwLDB4MGEsMHgzMCB9fSwKLSB7MTYsIDB4YTkxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhmZCwweDAwLDB4ZmQsMHg0MSwweDMzLDB4YTEgfX0sCi0gezE2LCAweGE5MjAsIDAsIHsweDBlLDB4ZDIsMHgwMywweGI1LDB4MDIsMHhkZiwweDQyLDB4M2IsMHgwMSwweDBmLDB4ZDQsMHg0MywweGI1LDB4MDAsMHhjZCwweDQwIH19LAotIHsxNiwgMHhhOTMwLCAwLCB7MHgxYiwweGM0LDB4MGQsMHg3OCwweDAzLDB4NzAsMHgwMiwweGVjLDB4MDAsMHgxNywweGExLDB4MGYsMHhlOCwweDBiLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4YTk0MCwgMCwgezB4ZDksMHg5MCwweDI2LDB4YzAsMHgwZiwweGFjLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5NTAsIDAsIHsweGUwLDB4MDEsMHhiOCwweDAwLDB4ZWUsMHgwMCwweDFmLDB4NjQsMHg0ZiwweGUwLDB4MDMsMHhkOCwweDEwLDB4YzQsMHgxOCwweDMzIH19LAotIHsxNiwgMHhhOTYwLCAwLCB7MHhjMCwweDBjLDB4YTAsMHhhMSwweGI4LDB4MDksMHhlNiwweDA5LDB4MzYsMHgyMiwweDBmLDB4ODgsMHgyMywweGJjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTk3MCwgMCwgezB4MDAsMHgzYiwweDY0LDB4MGYsMHhkOSwweDAzLDB4OWMsMHgwMCwweGUzLDB4MDQsMHgzYiwweGMwLDB4MGYsMHhmNCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGE5ODAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGQsMHgwMCwweGM5LDB4NDAsMHhiNiwweDgwIH19LAotIHsxNiwgMHhhOTkwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNywweDIwLDB4ZmIsMHg1MCwweGI2LDB4MDgsMHg0YywweDE0LDB4MDMsMHg2NSwweDIyLDB4ZDksMHg0MCB9fSwKLSB7MTYsIDB4YTlhMCwgMCwgezB4YjYsMHg4MCwweDBlLDB4YTAsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4NzYsMHg4MiwweDI4LDB4YTAsMHgyMywweDY0LDB4MDAgfX0sCi0gezE2LCAweGE5YjAsIDAsIHsweGM5LDB4MDQsMHgxMiwweGMwLDB4OGUsMHg4MCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOWMwLCAwLCB7MHhjOCwweDA1LDB4MmIsMHg2MCwweDhhLDB4MDksMHgyMCwweDUwLDB4MDgsMHhhMCwweDIzLDB4ZTksMHgwMCwweGI4LDB4YzAsMHgyMiB9fSwKLSB7MTYsIDB4YTlkMCwgMCwgezB4ZjAsMHgwOCwweGFjLDB4MDIsMHgyOCwweDA0LDB4OGEsMHhjMiwweDIyLDB4NTAsMHgwOCwweDkwLDB4MDYsMHgyYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGE5ZTAsIDAsIHsweDA0LDB4MjIsMHg1MSwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDQsMHg4YiwweDA0LDB4MzcsMHhjMCwweDA4LDB4MTgsMHg0MiwweDI2IH19LAotIHsxNiwgMHhhOWYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNCwweDRiLDB4MDAsMHg4MiwweGM4LDB4MjQsMHg0MyB9fSwKLSB7MTYsIDB4YWEwMCwgMCwgezB4MGIsMHgyNiwweDBhLDB4ODgsMHgwMCwweGIwLDB4ODAsMHgyMiwweGU0LDB4MGIsMHgyMCwweDQyLDB4NjksMHgwMCwweGEyLDB4OTAgfX0sCi0gezE2LCAweGFhMTAsIDAsIHsweDI4LDB4NDAsMHhlOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YmIsMHgwMCwweDI4LDB4NTAsMHg4OCwweDkwLDB4ODIsMHhjNCwweDAxIH19LAotIHsxNiwgMHhhYTIwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBhLDB4MTAsMHgwMiwweGJhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWEzMCwgMCwgezB4MjAsMHgxMCwweDRlLDB4ODAsMHg4MSwweDAwLDB4MjEsMHhhOCwweDA4LDB4NTgsMHgwMiwweGQ2LDB4MDEsMHhiNywweDkwLDB4NjggfX0sCi0gezE2LCAweGFhNDAsIDAsIHsweDIwLDB4MDMsMHg1OSwweDgyLDB4NTYsMHgwMCwweGE1LDB4ODQsMHgyZCwweGEyLDB4MTgsMHg2OSwweDIyLDB4MDIsMHgwMCwweDM0IH19LAotIHsxNiwgMHhhYTUwLCAwLCB7MHg4MCwweDI5LDB4YTgsMHgwOCwweDY4LDB4MDYsMHhjNiwweDE0LDB4ODUsMHg4MiwweDI1LDB4ZTAsMHgwOCwweDU4LDB4ODIsMHgxYyB9fSwKLSB7MTYsIDB4YWE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0OCwweDAwLDB4YzIsMHhmMCwweDM0LDB4NDAgfX0sCi0gezE2LCAweGFhNzAsIDAsIHsweDBmLDB4MjAsMHgwMywweDg4LDB4ODAsMHhmOCwweDEwLDB4MzAsMHhjMCwweDI3LDB4MjEsMHgwYiwweDQ4LDB4ODAsMHhlYSwweDIwIH19LAotIHsxNiwgMHhhYTgwLCAwLCB7MHgzOCwweDAwLDB4MGMsMHgwMCwweDEyLDB4MGMsMHgwOCwweDczLDB4MDAsMHhiOCwweDQwLDB4MGMsMHgxMiwweDIzLDB4NGMsMHgwMiB9fSwKLSB7MTYsIDB4YWE5MCwgMCwgezB4NDMsMHgzNCwweDMwLDB4YzAsMHgwZSwweDExLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFhYTAsIDAsIHsweDQwLDB4MTUsMHhhYywweDkwLDB4ZjksMHgwMSwweDJlLDB4ODgsMHg0YiwweDkwLDB4MTEsMHg2NCwweDAwLDB4ZmIsMHgxMCwweDMyIH19LAotIHsxNiwgMHhhYWIwLCAwLCB7MHgwMCwweDAwLDB4OTEsMHgwMywweGE0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHhjNCwweDRkLDB4YjAsMHg0MywweGUwLDB4MDQsMHhjOCB9fSwKLSB7MTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzNiwweDg5LDB4MGYsMHhhOCwweDAzLDB4ZWQsMHgwMCwweGY5LDB4MTQsMHgzZSwweGMwLDB4MGYsMHgxMCwweDQzLDB4ZDAgfX0sCi0gezE2LCAweGFhZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZTgsMHgwMCwweGM4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhhYWUwLCAwLCB7MHgwYywweDAwLDB4NTMsMHhhMCwweDAwLDB4ZTgsMHgwMSwweDMyLDB4MDEsMHgwZSwweDgwLDB4NTMsMHgyMCwweDEwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YWFmMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDIwLDB4MTAsMHhlOCwweDA0LDB4YjYsMHgwMCwweDg0LDB4ODAsMHgwMywweDJkLDB4MTIgfX0sCi0gezE2LCAweGFiMDAsIDAsIHsweGNiLDB4MDAsMHgyZSwweGNhLDB4MDQsMHg5MCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjEwLCAwLCB7MHg0YywweDE5LDB4OGMsMHgwMCwweDg3LDB4MDIsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YWIyMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4NjIsMHg0YywweDA0LDB4ODMsMHgwMCwweDIxLDB4ODAsMHg0OCwweGUwLDB4MTIsMHgzYywweDAwLDB4ODcgfX0sCi0gezE2LCAweGFiMzAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NSwweDAxLDB4MjQsMHhkMCwweDBhLDB4NTAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhhYjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDlhLDB4MDAsMHg4MCwweDgwLDB4MjgsMHgyMCB9fSwKLSB7MTYsIDB4YWI1MCwgMCwgezB4MDgsMHg0YywweDIyLDB4ZDIsMHgwMCwweGE0LDB4ODAsMHgyNCwweDMwLDB4MGIsMHg0OCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzAgfX0sCi0gezE2LCAweGFiNjAsIDAsIHsweDIxLDB4MjAsMHgwOSwweDQ4LDB4NjgsMHgxMywweDAwLDB4YTQsMHg4MCwweDYwLDB4MjAsMHgwOSwweDA4LDB4MDIsMHg1NiwweDAwIH19LAotIHsxNiwgMHhhYjcwLCAwLCB7MHg5NywweDgwLDB4MmQsMHhlMCwweDg4LDB4NTgsMHgwMiwweGUwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWI4MCwgMCwgezB4NmMsMHgwNCwweGNjLDB4MDAsMHg4MywweDgwLDB4MjAsMHhkOCwweDA4LDB4MzAsMHgwMiwweDRjLDB4NDAsMHg4MywweDAwLDB4MjQgfX0sCi0gezE2LCAweGFiOTAsIDAsIHsweGQxLDB4MDksMHhiOSwweDQyLDB4NGUsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMxLDB4ODksMHgzMCwweDQyLDB4MGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhYmEwLCAwLCB7MHhmMCwweGEwLDB4ZDksMHgxOSwweDM2LDB4MjIsMHg2NiwweDA2LDB4OTEsMHgwMCwweDBjLDB4YzEsMHgwYSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YWJiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhlOCwweDAyLDB4Y2EsMHhhNSwweDJhLDB4OTEgfX0sCi0gezE2LCAweGFiYzAsIDAsIHsweDI4LDB4YTgsMHgwMywweGVhLDB4MDIsMHhhYSwweDAwLDB4YjYsMHhhMCwweDBmLDB4YTAsMHgwYSwweDJhLDB4OTIsMHhjYSwweDgzIH19LAotIHsxNiwgMHhhYmQwLCAwLCB7MHhiYSwweDgwLDB4MjksMHhhMCwweDAzLDB4MmIsMHgwMCwweGVhLDB4NDAsMHg2NiwweDkwLDB4MmQsMHhlNCwweDBiLDB4NmEsMHg4MCB9fSwKLSB7MTYsIDB4YWJlMCwgMCwgezB4ZGEsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiZjAsIDAsIHsweDQ4LDB4MDEsMHg4MCwweDAwLDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhiMCwweDE0LDB4ZmMsMHgwMCwweDNiIH19LAotIHsxNiwgMHhhYzAwLCAwLCB7MHgxMiwweDBlLDB4YzAsMHg0MywweGIxLDB4MTQsMHhmYywweDAwLDB4M2QsMHgwMCwweDBlLDB4YzAsMHgwMywweGYwLDB4MjAsMHhmNCB9fSwKLSB7MTYsIDB4YWMxMCwgMCwgezB4MDAsMHgzMSwweDAwLDB4MGUsMHg0NCwweDEzLDB4YTAsMHgwMCwweGU4LDB4MDYsMHgzNiwweDAwLDB4NGYsMHg4MCwweDEzLDB4ZDIgfX0sCi0gezE2LCAweGFjMjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGQxLDB4MDAsMHgzNiwweDYwIH19LAotIHsxNiwgMHhhYzMwLCAwLCB7MHgxYywweDE4LDB4MGIsMHg0NiwweDAwLDB4ZDksMHg4MCwweDMwLDB4NDAsMHgyYywweDk4LDB4MDUsMHg4NiwweDAwLDB4YzEsMHg4MCB9fSwKLSB7MTYsIDB4YWM0MCwgMCwgezB4OTIsMHg0MCwweDBkLDB4MTAsMHgwMywweDQ0LDB4MDIsMHg4OSwweDAwLDB4MzIsMHg3MCwweDBjLDB4OTgsMHgwMSwweDI0LDB4MDAgfX0sCi0gezE2LCAweGFjNTAsIDAsIHsweGM5LDB4MDQsMHgzMCwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzYwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjQsMHg4MCwweDg5LDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4YWM3MCwgMCwgezB4NDAsMHg0OCwweDkxLDB4MDIsMHgyNCwweDAwLDB4ZDksMHg5MCwweDIyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDEwLDB4ODkgfX0sCi0gezE2LCAweGFjODAsIDAsIHsweDAwLDB4MzIsMHg0MCwweDA4LDB4OTUsMHgxMiwweDI0LDB4MDIsMHg4MSwweDAwLDB4YTIsMHg0MSwweDBkLDB4OTAsMHg0MiwweGUwIH19LAotIHsxNiwgMHhhYzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwNSwweDI0LDB4MDIsMHg5ZCwweDAwLDB4MjMsMHg0NCB9fSwKLSB7MTYsIDB4YWNhMCwgMCwgezB4MDgsMHhkMiwweDA2LDB4NzQsMHg4MCwweGI1LDB4MjAsMHgyMywweDQwLDB4MWEsMHhkMCwweDA2LDB4MzUsMHg5MCwweDhkLDB4MDIgfX0sCi0gezE2LCAweGFjYjAsIDAsIHsweDJmLDB4NDQsMHgxOSwweGQwLDB4MDIsMHg3NCwweDAwLDB4OGQsMHgwMCwweDYzLDB4NDAsMHgxOCwweGQ0LDB4MDIsMHhhNCwweDExIH19LAotIHsxNiwgMHhhY2MwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWNkMCwgMCwgezB4MjgsMHgxNCwweDA0LDB4ODAsMHg4NSwweDIwLDB4MjEsMHg2OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODAsMHhhNSwweDIwLDB4YTEgfX0sCi0gezE2LCAweGFjZTAsIDAsIHsweDQ4LDB4MGEsMHg3MiwweDM4LDB4MTQsMHg4MCwweDk1LDB4MjQsMHgyZCwweDQ4LDB4MjgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDg1IH19LAotIHsxNiwgMHhhY2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwOCwweDUyLDB4MDYsMHg4NCwweDgwLDB4ODEsMHgyMCwweDIwLDB4NGEsMHgwOSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YWQwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweGIyLDB4MTQgfX0sCi0gezE2LCAweGFkMTAsIDAsIHsweDI4LDB4YTAsMHgwMywweDYxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHg5NCwweDRlLDB4ODUsMHgwNCwweDIxLDB4NDIsMHhjOCwweDUwIH19LAotIHsxNiwgMHhhZDIwLCAwLCB7MHgzYywweDE0LDB4MGQsMHg4MCwweDAzLDB4NjEsMHg0MCwweDg4LDB4NTAsMHhiMiwweDE0LDB4MmMsMHhjNSwweDA5LDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4YWQzMCwgMCwgezB4YzgsMHg1MCwweDMyLDB4MWMsMHgwYywweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkNDAsIDAsIHsweDk4LDB4MTUsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNhLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZDksMHgxNCwweDNlIH19LAotIHsxNiwgMHhhZDUwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHg0MywweDY0LDB4NDAsMHhlOSwweDEwLDB4MzIsMHg0NCwweDA3LDB4OTMsMHhjMywweGU0LDB4NTAsMHhkMSB9fSwKLSB7MTYsIDB4YWQ2MCwgMCwgezB4MTAsMHg3ZSwweDQ0LDB4MDMsMHg5MSwweDAxLDB4NTQsMHg0NCwweGZkLDB4MTQsMHgzZSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGFkNzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHg4MCwweGRkLDB4YTAsMHgzMywweDY4IH19LAotIHsxNiwgMHhhZDgwLCAwLCB7MHgxZSwweGRhLDB4MDMsMHgzNiwweDkwLDB4Y2QsMHhhMCwweDNiLDB4NjgsMHgwYSwweGQ4LDB4MjMsMHg3NiwweDBjLDB4ZWQsMHg4MCB9fSwKLSB7MTYsIDB4YWQ5MCwgMCwgezB4MmIsMHg2MiwweDBiLDB4OTksMHgwMiwweGE3LDB4ODAsMHhmOSwweGUxLDB4MzcsMHg2OCwweDBjLDB4ZGEsMHgwMywweDI3LDB4ODAgfX0sCi0gezE2LCAweGFkYTAsIDAsIHsweGM5LDB4YTIsMHgyMiwweDY4LDB4NGMsMHg1MCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZGIwLCAwLCB7MHgzOCwweDE4LDB4ZTEsMHg0MCwweDg4LDB4NTAsMHgyMiwweDE0LDB4MDgsMHg4MCwweDIyLDB4NjAsMHgwMCwweDg4LDB4MDQsMHgyMiB9fSwKLSB7MTYsIDB4YWRjMCwgMCwgezB4MDAsMHgwOCwweDA0LDB4MjYsMHgwMSwweDAwLDB4ODgsMHg1MCwweDIyLDB4MTAsMHgwOCwweGFmLDB4MDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGFkZDAsIDAsIHsweGMwLDB4YTAsMHgxMCwweDg4LDB4ODQsMHgwMiwweDIzLDB4ODAsMHhhMCwweDQwLDB4MmEsMHgxMCwweDA4LDB4ODAsMHgxMiwweDRlIH19LAotIHsxNiwgMHhhZGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDg0LDB4MDAsMHg4MSwweDAxLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4YWRmMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDUsMHgwMCwweDgxLDB4NDEsMHgyYywweDUwLDB4MGIsMHgxNCwweDAyLDB4MDUsMHgwNCwweGExLDB4MDAgfX0sCi0gezE2LCAweGFlMDAsIDAsIHsweDI4LDB4NDAsMHg4MiwweDEwLDB4MDIsMHg4NCwweDQwLDB4YTEsMHgzMiwweDgwLDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNCwweGM0IH19LAotIHsxNiwgMHhhZTEwLCAwLCB7MHg5MSwweDEwLDB4NjQsMHg0NCwweDI4LDB4MTAsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWUyMCwgMCwgezB4MTgsMHgwNCwweGFjLDB4MDIsMHg4MSwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgwMiwweDQ0LDB4MDIsMHg4OSwweDAyLDB4MjYgfX0sCi0gezE2LCAweGFlMzAsIDAsIHsweDQxLDB4MDksMHg5MCwweDBhLDB4MjQsMHgwYywweDg5LDB4MDQsMHgyMiwweDUwLDB4MDgsMHg5MCwweDI2LDB4MjQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhhZTQwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOSwweDEwLDB4MjIsMHgyNCwweDQwLDB4YjksMHgwMSwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YWU1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ODksMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGFlNjAsIDAsIHsweDBhLDB4OTAsMHgwYiwweDI0LDB4MTAsMHg4OSwweDAwLDB4MWUsMHg0MCwweDliLDB4OTAsMHgwMiwweDI0LDB4MTAsMHgyOSwweDAwIH19LAotIHsxNiwgMHhhZTcwLCAwLCB7MHgxYSwweDQwLDB4MGUsMHg5NCwweDQxLDB4YTQsMHgwMCwweDI5LDB4MDAsMHgxMiwweDQwLDB4MDUsMHg5MCwweDQxLDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4YWU4MCwgMCwgezB4ZDksMHgwMCwweDI0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlOTAsIDAsIHsweDQ4LDB4MDEsMHhhNCwweDAyLDB4YTksMHgwMCwweGJjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDA0LDB4ZjksMHgwMCwweDNhIH19LAotIHsxNiwgMHhhZWEwLCAwLCB7MHg0MSwweDBlLDB4OTAsMHg4MywweDg0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBlLDB4OTAsMHgwMiwweGM0LDB4MDgsMHhlOSB9fSwKLSB7MTYsIDB4YWViMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MmUsMHg5MCwweDBiLDB4ZTYsMHgwMCwweGUxLDB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MiwweDAzLDB4NWEgfX0sCi0gezE2LCAweGFlYzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTAsMHgyMCwweGQ4LDB4MDAsMHgzNiwweDAyIH19LAotIHsxNiwgMHhhZWQwLCAwLCB7MHgwZSwweDAwLDB4YTMsMHhlMCwweDE4LDB4YzAsMHgwMCwweDMwLDB4MDMsMHgwZiwweDgwLDB4MzMsMHgyMCwweDAwLDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4YWVlMCwgMCwgezB4MzIsMHgwZCwweDBmLDB4MDQsMHgwYiwweGEwLDB4MDIsMHhjOCwweDAyLDB4MzIsMHgwMiwweDhjLDB4ODIsMHgwMywweDIwLDB4MDIgfX0sCi0gezE2LCAweGFlZjAsIDAsIHsweGM4LDB4MDQsMHgxNiwweDAwLDB4NGUsMHg4MCwweDAxLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZjAwLCAwLCB7MHgyOCwweDA1LDB4M2IsMHgwMCwweDhlLDB4ZDgsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4ZjgsMHg4MCwweDhlLDB4MTAsMHgyMyB9fSwKLSB7MTYsIDB4YWYxMCwgMCwgezB4YTIsMHgwYiwweGUwLDB4ODIsMHg3YSwweDIwLDB4OGUsMHgzMCwweDIzLDB4YTEsMHgwYiwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweGFmMjAsIDAsIHsweDAwLDB4MmIsMHg4OCwweDA4LDB4ZTQsMHg0MiwweDM4LDB4MDAsMHg4ZSwweDA0LDB4MjMsMHg4MCwweDA4LDB4YTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHhhZjMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZmLDB4NDAsMHg5MywweGM2LDB4MjQsMHg0MCB9fSwKLSB7MTYsIDB4YWY0MCwgMCwgezB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDEsMHhhYywweGYwLDB4MGIsMHhiNCwweDAyLDB4NGMsMHgwNCwweGEzLDB4ODAgfX0sCi0gezE2LCAweGFmNTAsIDAsIHsweDI4LDB4ZDAsMHg0YiwweDMwLDB4MDIsMHg0YywweDAwLDB4YWIsMHgwNCwweDJhLDB4YzAsMHgyYSwweDMwLDB4MGEsMHhhYywweDEwIH19LAotIHsxNiwgMHhhZjYwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMSwweDBhLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWY3MCwgMCwgezB4ODAsMHgxMSwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg0MiwweDg4LDB4NzQsMHgwNiwweGRjLDB4MGIsMHg4NiwweDAyLDB4MmQgfX0sCi0gezE2LCAweGFmODAsIDAsIHsweDgwLDB4MGIsMHg3MCwweDJhLDB4NTgsMHgwMCwweGE2LDB4MDAsMHhhOSwweGMwLDB4MGIsMHg3MCwweDAyLDB4NWMsMHg4OCwweGE3IH19LAotIHsxNiwgMHhhZjkwLCAwLCB7MHgyMCwweDI5LDB4YzAsMHgwYSwweDcwLDB4MDIsMHg5YywweDEwLDB4OTcsMHgyMCwweGExLDB4YzgsMHgwOCwweGQ4LDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4YWZhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDgsMHgwZSwweDAwLDB4ZDcsMHg4MCwweDM3LDB4NjAgfX0sCi0gezE2LCAweGFmYjAsIDAsIHsweDBlLDB4NjgsMHgxMywweGZlLDB4MDAsMHhjZiwweDgwLDB4M2QsMHhlMCwweDBmLDB4NzgsMHgyMywweDFlLDB4MDAsMHhlZiwweDgyIH19LAotIHsxNiwgMHhhZmMwLCAwLCB7MHgzMSwweGUwLDB4MGYsMHgzYywweGMzLDB4N2UsMHgwNCwweGVmLDB4ODAsMHhiMSwweGUwLDB4MGUsMHhlOCwweDAzLDB4YmUsMHg4MCB9fSwKLSB7MTYsIDB4YWZkMCwgMCwgezB4ZDcsMHhlMCwweDMzLDB4ZWEsMHgwZSwweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmZTAsIDAsIHsweDA4LDB4MTUsMHhhYywweDAwLDB4ZmEsMHgwMSwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlMCwweDA0LDB4ZjgsMHgwMCwweDMyIH19LAotIHsxNiwgMHhhZmYwLCAwLCB7MHg4MCwweDBmLDB4ODAsMHg0MywweGFjLDB4MGEsMHhkOCwweDAwLDB4MzYsMHg0MCwweDBmLDB4YjAsMHgwMywweDJjLDB4MGMsMHhkYiB9fSwKLSB7MTYsIDB4YjAwMCwgMCwgezB4MDAsMHgyNiwweGMxLDB4MDksMHhhMCwweDEzLDB4NmMsMHg0MCwweGViLDB4NDAsMHgzYSwweGRjLDB4MGYsMHg5MCwweDBiLDB4YzIgfX0sCi0gezE2LCAweGIwMTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0LDB4YmUsMHgwMCwweGNmLDB4ODEsMHgzMywweGU5IH19LAotIHsxNiwgMHhiMDIwLCAwLCB7MHgxZiwweGY5LDB4MTMsMHhiNiwweDUwLDB4ZWYsMHg4MCwweDFmLDB4ZTQsMHgwNCwweGM4LDB4MDMsMHg3ZSwweDAwLDB4NmQsMHg4MSB9fSwKLSB7MTYsIDB4YjAzMCwgMCwgezB4MzMsMHg2NCwweDBjLDB4ZjgsMHgxYiwweDNlLDB4MjAsMHgyZiwweDg4LDB4OTMsMHhlOCwweDBmLDB4ZmIsMHgwMywweDJlLDB4ODAgfX0sCi0gezE2LCAweGIwNDAsIDAsIHsweGNmLDB4YzAsMHg3MywweGUwLDB4MmMsMHhkOSwweDAzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMDUwLCAwLCB7MHhhOCwweDE4LDB4OTAsMHg0MiwweDg5LDB4MTgsMHgyMSwweGMwLDB4MWYsMHg3MSwweDAyLDB4MTQsMHhjMCwweGY3LDB4MjAsMHgyNyB9fSwKLSB7MTYsIDB4YjA2MCwgMCwgezB4NDAsMHg0MCwweDcxLDB4MTIsMHgxOCwweDAwLDB4ODcsMHgyMCwweDIxLDB4ODAsMHg0OCwweDcxLDB4MDIsMHgzYywweDA4LDB4ODcgfX0sCi0gezE2LCAweGIwNzAsIDAsIHsweDIwLDB4MjEsMHg4MiwweDBiLDB4NjEsMHhhMiwweDFlLDB4NDQsMHhkZiwweDAxLDB4MzEsMHhjOCwweDA4LDB4NzMsMHgwMiwweGVhIH19LAotIHsxNiwgMHhiMDgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDhjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjOCB9fSwKLSB7MTYsIDB4YjA5MCwgMCwgezB4MGIsMHg3MCwweDAyLDB4OWMsMHgwOSwweDg3LDB4MDIsMHgyZCwweDgyLDB4OTksMHg0MCwweDAyLDB4MDQsMHgwMCwweGE1LDB4MDkgfX0sCi0gezE2LCAweGIwYTAsIDAsIHsweDIxLDB4NDAsMHgxOSwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwNSwweDI1LDB4NDgsMHg0YiwweDcyLDB4MDIsMHgwYywweDQwIH19LAotIHsxNiwgMHhiMGIwLCAwLCB7MHg4NywweDAwLDB4YTEsMHhjMCwweDQ4LDB4NTAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjBjMCwgMCwgezB4NjgsMHgwNCwweGMxLDB4MjAsMHg4OSwweDRjLDB4YTAsMHhiNCwweDBhLDB4MzgsMHgwMiwweDIyLDB4MDAsMHhhMSwweGQwLDB4MjQgfX0sCi0gezE2LCAweGIwZDAsIDAsIHsweDMwLDB4MDksMHg4MCwweDAyLDB4MjcsMHg0NCwweDgxLDB4YzYsMHgyMiwweDE0LDB4MDksMHgzZCwweDJhLDB4MGYsMHgwMiwweDhiIH19LAotIHsxNiwgMHhiMGUwLCAwLCB7MHhjMCwweGE2LDB4MjAsMHgwYiwweDI0LDB4MDAsMHgwYywweDEwLDB4OTMsMHg4MSwweDIwLDB4YzAsMHg0OCwweDMwLDB4MDYsMHhkOCB9fSwKLSB7MTYsIDB4YjBmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhhMSwweDAwLDB4ODksMHhjMSwweDMyLDB4ZDEgfX0sCi0gezE2LCAweGIxMDAsIDAsIHsweDAzLDB4YmMsMHgwMywweGE5LDB4MjAsMHg4OSwweDQxLDB4M2UsMHg2MCwweDg1LDB4YmMsMHg4YiwweDI1LDB4NDAsMHhlYiwweDQxIH19LAotIHsxNiwgMHhiMTEwLCAwLCB7MHhhMiwweGEwLDB4MGQsMHhmMCwweDEzLDB4M2UsMHgyMCwweGNmLDB4OTAsMHgzNiwweDMwLDB4NGYsMHhiYywweDBiLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YjEyMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4YzEsMHgwYywweGIxLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxMzAsIDAsIHsweDgwLDB4MDAsMHhlZCwweDAwLDB4ZjgsMHgwMSwweDNjLDB4ZDAsMHgwZiwweGIzLDB4MDMsMHhlOCwweDgyLDB4ZDgsMHgyMCwweDM2IH19LAotIHsxNiwgMHhiMTQwLCAwLCB7MHg4MCwweDJlLDB4YjIsMHgxMywweGUxLDB4MDAsMHhmYSwweDAwLDB4N2UsMHhjOCwweDJlLDB4YjAsMHgwMywweGVjLDB4ODAsMHhkYiB9fSwKLSB7MTYsIDB4YjE1MCwgMCwgezB4MTAsMHgzYSwweDA4LDB4NGYsMHhiMiwweDIzLDB4Y2MsMHgwMiwweGZiLDB4MTAsMHgzYSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTQgfX0sCi0gezE2LCAweGIxNjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDEwLDB4ZjAsMHgwMCwweGNkLDB4MTAsMHgzMywweDQyIH19LAotIHsxNiwgMHhiMTcwLCAwLCB7MHgwYywweGNhLDB4MjMsMHg3YywweDAwLDB4Y2YsMHgwMCwweDMzLDB4NjIsMHgwNiwweGYwLDB4MDEsMHgzYSwweDAwLDB4Y2YsMHgwOCB9fSwKLSB7MTYsIDB4YjE4MCwgMCwgezB4MzMsMHg4MCwweDFjLDB4ZjAsMHg4MSwweDNjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHhhMCwweDBjLDB4Y2EsMHgwMSwweGZjLDB4MDQgfX0sCi0gezE2LCAweGIxOTAsIDAsIHsweGNmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMWEwLCAwLCB7MHhhMSwweDA0LDB4NmQsMHg0MCwweDg4LDB4NDgsMHhhMiwweDMxLDB4MDgsMHgxMCwweDAyLDB4MjAsMHgxMCwweDg4LDB4YjQsMHgyMiB9fSwKLSB7MTYsIDB4YjFiMCwgMCwgezB4YTAsMHgwOCwweDgwLDB4MDAsMHg2YSwweDg0LDB4ODgsMHgyMCwweDIyLDB4NTIsMHgwOCwweGIwLDB4MGEsMHgyYywweDEwLDB4YmIgfX0sCi0gezE2LCAweGIxYzAsIDAsIHsweDAwLDB4MzIsMHhiMywweDg4LDB4ODAsMHgwMiwweGVjLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4OTAsMHgxMiwweGUxIH19LAotIHsxNiwgMHhiMWQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDAwLDB4MTAsMHg4YSwweDAxLDB4MjIsMHhhMCB9fSwKLSB7MTYsIDB4YjFlMCwgMCwgezB4MDgsMHhiMCwweDQyLDB4NjAsMHgyMCwweDgwLDB4MDAsMHgyMCwweDQ0LDB4MWEsMHg4MCwweDFhLDB4ZTQsMHg0MiwweGEwLDB4MDYgfX0sCi0gezE2LCAweGIxZjAsIDAsIHsweDIyLDB4MDAsMHg3OCwweDMwLDB4MDIsMHhhYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NDQsMHgwOCwweGIwLDB4MTIsMHhlYywweDAwIH19LAotIHsxNiwgMHhiMjAwLCAwLCB7MHg4YiwweDAwLDB4MGUsMHhjMCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjIxMCwgMCwgezB4MDgsMHgxNCwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHg4MSwweDA4LDB4MzAsMHgwMiwweDQwLDB4MTIsMHg4MCwweDAwLDB4YTAgfX0sCi0gezE2LCAweGIyMjAsIDAsIHsweDQwLDB4MDgsMHhiMCwweDAyLDB4YzAsMHgwMCwweDgyLDB4MDAsMHgwMCwweDgwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhiMjMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwOCwweDIwLDB4MDIsMHhjYywweDgwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YjI0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4Y2EsMHgxNCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGIyNTAsIDAsIHsweDBjLDB4YjAsMHgwMywweDRjLDB4MDAsMHhjYSwweDAwLDB4MzIsMHgwMCwweDBlLDB4MDAsMHgxMiwweGEwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhiMjYwLCAwLCB7MHg3MCwweDAwLDB4MjgsMHhmMCwweDEzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzMiwweDQwLDB4MmMsMHgxMCwweDQzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YjI3MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyODAsIDAsIHsweDIwLDB4MTUsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDFmLDB4MDAsMHg2NywweDcwLDB4MDMsMHhiMCwweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiMjkwLCAwLCB7MHgwMCwweDJkLDB4YzAsMHgwMywweDMwLDB4MTAsMHhmYywweDAxLDB4YmYsMHgwMCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4YjJhMCwgMCwgezB4MDQsMHgzYiwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZmQsMHgxMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGIyYjAsIDAsIHsweDEyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjQsMHhjMCwweGNmLDB4ODAsMHgzMywweDYwIH19LAotIHsxNiwgMHhiMmMwLCAwLCB7MHgwZSwweGM5LDB4MTMsMHgzNiwweDUwLDB4Y2UsMHg4NiwweDNmLDB4MDgsMHgwYywweGMwLDB4MDMsMHgzZSwweDAyLDB4ZDcsMHg4MCB9fSwKLSB7MTYsIDB4YjJkMCwgMCwgezB4MzksMHhlMCwweDBmLDB4ZjgsMHgxMywweDNlLDB4NDAsMHhjNywweDMwLDB4M2IsMHhjZSwweDBkLDB4ZjYsMHgwMywweDNkLDB4ODggfX0sCi0gezE2LCAweGIyZTAsIDAsIHsweGNmLDB4MzEsMHgzMywweGU0LDB4MGYsMHg3OCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMmYwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHhkMCwweGRiLDB4ODAsMHg3MiwweDYwLDB4ODgsMHg5MiwweDAyLDB4ZTQsMHgxMCwweDhhLDB4ODAsMHgyZSB9fSwKLSB7MTYsIDB4YjMwMCwgMCwgezB4MzQsMHg0YSwweDhjLDB4MDMsMHgyZSwweDAwLDB4YWIsMHg4MCwweDAyLDB4ZTAsMHgwYiwweGI4LDB4MDIsMHgyYywweDgwLDB4OGYgfX0sCi0gezE2LCAweGIzMTAsIDAsIHsweDYwLDB4MTMsMHhkOCwweDRhLDB4NzYsMHgwMiwweDlkLDB4ODQsMHhhZiwweDMwLDB4MjIsMHg0OCwweDBiLDB4ODgsMHgxMiwweGEwIH19LAotIHsxNiwgMHhiMzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MDAsMHg4YiwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YjMzMCwgMCwgezB4NGEsMHgwMCwweDAyLDB4YWMsMHg4MCwweDgzLDB4MDAsMHgyYywweDAxLDB4MjgsMHgwNCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDEgfX0sCi0gezE2LCAweGIzNDAsIDAsIHsweDIwLDB4YzAsMHgwMywweGIwLDB4MDIsMHgwYywweDgwLDB4ODMsMHg0MCwweDIwLDB4YzEsMHhhOCwweDM0LDB4MjIsMHg4ZCwweDEzIH19LAotIHsxNiwgMHhiMzUwLCAwLCB7MHg4MywweDIwLDB4YWMsMHhjOCwweDBiLDB4YjAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjM2MCwgMCwgezB4YzAsMHgxNSwweDg2LDB4MDAsMHg5YiwweDA0LDB4YWUsMHgwMCwweDBhLDB4OTAsMHgwMiwweGVjLDB4MDAsMHgwYiwweDE0LDB4MmUgfX0sCi0gezE2LCAweGIzNzAsIDAsIHsweGM2LDB4MDIsMHhiMSwweDEyLDB4NmMsMHgwMCwweGFiLDB4MjAsMHgyYSwweGMxLDB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhiMzgwLCAwLCB7MHgwMiwweDI2LDB4YzEsMHgwYSwweGIwLDB4MDIsMHhhYywweDAwLDB4YWIsMHgwNCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YjM5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YzMsMHgwMSwweDM2LDB4NDAgfX0sCi0gezE2LCAweGIzYTAsIDAsIHsweDBlLDB4ODgsMHgxMywweDI0LDB4MDIsMHhjYSwweDAwLDB4MWUsMHgyMCwweDJjLDB4OGUsMHgwYiwweDJjLDB4MDAsMHhjYiwweDAwIH19LAotIHsxNiwgMHhiM2IwLCAwLCB7MHgyYSwweGMwLDB4MGYsMHhiOCwweDAzLDB4MmUsMHgwNiwweGNiLDB4MDAsMHgzYSwweGMwLDB4NGMsMHhiMCwweDEzLDB4YWMsMHgwYyB9fSwKLSB7MTYsIDB4YjNjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzgsMHgwZiwweGIwLDB4NDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzZDAsIDAsIHsweGUwLDB4MDEsMHhiNCwweDA4LDB4ZmYsMHg5MSwweDMzLDB4NDAsMHgwOSwweGRjLDB4MDEsMHhmNCwweDIwLDB4N2UsMHgwMiwweDJlIH19LAotIHsxNiwgMHhiM2UwLCAwLCB7MHg0MCwweDBkLDB4OTgsMHgwMSwweGJjLDB4ODAsMHhlZiwweDgwLDB4YjcsMHhlNCwweDhmLDB4ZjQsMHgwYiwweGZlLDB4NDAsMHg3ZiB9fSwKLSB7MTYsIDB4YjNmMCwgMCwgezB4MDAsMHhiOSwweGMwLDB4NGUsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGY3LDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAyLDB4YjggfX0sCi0gezE2LCAweGI0MDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTEsMHg0NCwweGNiLDB4MDIsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiNDEwLCAwLCB7MHgwZCwweDgwLDB4MGEsMHg2ZCwweDAwLDB4ZWIsMHgwNCwweDEwLDB4OTAsMHgyOCwweDIyLDB4MGIsMHgyYywweGMyLDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4YjQyMCwgMCwgezB4NzYsMHhjMCwweDBlLDB4YjEsMHgwMywweGVjLDB4MDEsMHhjYiwweDA2LDB4MzIsMHhjMSwweDBjLDB4MzAsMHgwMywweDJjLDB4MDIgfX0sCi0gezE2LCAweGI0MzAsIDAsIHsweGNiLDB4MDAsMHgzZSwweGQwLDB4MGMsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNDQwLCAwLCB7MHhjOCwweDA1LDB4MjEsMHg0OCwweGFiLDB4MDAsMHgyMCwweDAwLDB4MDAsMHg5NSwweDIzLDB4NGMsMHgwOCwweGJiLDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4YjQ1MCwgMCwgezB4YzAsMHgwOCwweGIyLDB4MDIsMHgwYywweDA4LDB4ODMsMHg4OCwweDkyLDB4ZDUsMHgyOCwweDM0LDB4MDIsMHhlYywweDAyLDB4OGYgfX0sCi0gezE2LCAweGI0NjAsIDAsIHsweDIwLDB4MjMsMHhjMCwweDRkLDB4ZjAsMHgwMSwweDdjLDB4MDAsMHhkZiwweDAwLDB4MmUsMHhjMCwweDBkLDB4MzAsMHgwMywweDcyIH19LAotIHsxNiwgMHhiNDcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDEwLDB4MjAsMHg2MCB9fSwKLSB7MTYsIDB4YjQ4MCwgMCwgezB4MDksMHgyNSwweDAyLDB4MDAsMHgwOCwweGEwLDB4MDAsMHg0YywweDAwLDB4MGIsMHgwYywweDIyLDB4NGYsMHgxMiwweDkzLDB4NDAgfX0sCi0gezE2LCAweGI0OTAsIDAsIHsweDAwLDB4YzAsMHgwOSwweDNlLDB4MDIsMHhlYywweDAwLDB4YWIsMHg4MCwweGE0LDB4YzAsMHgwOSwweDMwLDB4MjIsMHgyYywweDA4IH19LAotIHsxNiwgMHhiNGEwLCAwLCB7MHhiMywweDAxLDB4MGMsMHg4MSwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjRiMCwgMCwgezB4NjAsMHgwMSwweDE2LDB4MDksMHhiNywweDgwLDB4MjEsMHg2NCwweDA4LDB4NzgsMHgwNiwweDEyLDB4MDAsMHhiNCwweDgyLDB4MmQgfX0sCi0gezE2LCAweGI0YzAsIDAsIHsweGE0LDB4MWIsMHg2OSwweDA2LDB4N2UsMHgwNCwweDE3LDB4OTIsMHgyNSwweGU2LDB4MDksMHg3OCwweDA2LDB4ZGUsMHg4MCwweGE3IH19LAotIHsxNiwgMHhiNGQwLCAwLCB7MHg5MCwweDI1LDB4ZTAsMHgwOSwweDc5LDB4NTAsMHg1ZSwweDA0LDB4YjcsMHg5MiwweDJmLDB4NjEsMHgwOSwweGM4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YjRlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyNSwweDAwLDB4YzMsMHgwMCwweGIwLDB4MDMgfX0sCi0gezE2LCAweGI0ZjAsIDAsIHsweDBkLDB4YTMsMHg0MiwweDA5LDB4NDAsMHhlMSwweDAwLDB4YmMsMHg0MCwweDBmLDB4MTEsMHgwMywweDRjLDB4MDAsMHgxMywweDAwIH19LAotIHsxNiwgMHhiNTAwLCAwLCB7MHgyMCwweGMwLDB4MDksMHgzMiwweDAzLDB4Y2MsMHgxMCwweGEzLDB4MDAsMHgyNiwweGM0LDB4OGQsMHgzMCwweDJiLDB4MGMsMHg4MCB9fSwKLSB7MTYsIDB4YjUxMCwgMCwgezB4ZjMsMHgwMCwweDdjLDB4ODAsMHgwYywweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1MjAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZTcsMHgxMCwweDNkLDB4MDEsMHgyZiwweGYxLDB4NDIsMHhlOCwweDAwLDB4ZjUsMHg5MCwweDAzIH19LAotIHsxNiwgMHhiNTMwLCAwLCB7MHhjMSwweDBjLDB4ZjEsMHg0MywweDljLDB4MDQsMHhlZiwweDA4LDB4M2IsMHhjMiwweDBjLDB4ZjAsMHg4MSwweGRjLDB4YTAsMHhkZiB9fSwKLSB7MTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzYiwweGMzLDB4M2YsMHhmMCwweDgzLDB4ZmMsMHgwNSwweGRmLDB4MGMsMHgzZCwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGI1NTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZjQsMHgwMCwweGNiLDB4ODAsMHgzMCwweDQwIH19LAotIHsxNiwgMHhiNTYwLCAwLCB7MHgyYywweGEwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg4MCwweDMyLDB4YzAsMHgyZSwweGI4LDB4MGIsMHgyYywweDQ2LDB4ZDMsMHgwMCB9fSwKLSB7MTYsIDB4YjU3MCwgMCwgezB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhkYiwweDQ4LDB4MzIsMHhjMCwweDFmLDB4YjQsMHgwMywweDJjLDB4ODggfX0sCi0gezE2LCAweGI1ODAsIDAsIHsweGNiLDB4NDgsMHgzMiwweDgwLDB4MGMsMHgzMCwweDEzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNTkwLCAwLCB7MHg0OCwweDExLDB4YjQsMHgwMCwweDg3LDB4MDEsMHgyMSwweDQwLDB4MDgsMHg3MCwweDQyLDB4ZDAsMHgwOCwweGI0LDB4MDAsMHgyOSB9fSwKLSB7MTYsIDB4YjVhMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzgsMHgwYywweDcyLDB4MGEsMHgxYywweDg0LDB4OGYgfX0sCi0gezE2LCAweGI1YjAsIDAsIHsweDQwLDB4MDksMHhjNCwweDhmLDB4NzMsMHgxMiwweDljLDB4NDAsMHg4MywweDIwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDkyIH19LAotIHsxNiwgMHhiNWMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDk2LDB4MDEsMHhhZiwweDgwLDB4MjEsMHgyMCB9fSwKLSB7MTYsIDB4YjVkMCwgMCwgezB4MDgsMHg2OCwweDAyLDB4ZGEsMHgwMCwweGJkLDB4ODAsMHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4MWUsMHgwMCwweDhmLDB4ODggfX0sCi0gezE2LCAweGI1ZTAsIDAsIHsweDgzLDB4ZTIsMHgyOSwweGY4LDB4ODIsMHg1ZiwweDgwLDB4ODcsMHhhMCwweDI1LDB4ZTAsMHgwYiwweDNhLDB4MTIsMHgwZSwweDUwIH19LAotIHsxNiwgMHhiNWYwLCAwLCB7MHg5NywweGE0LDB4MjEsMHhhMCwweDI5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjYwMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDIsMHhhMSwweDgxLDB4MDAsMHgwMCwweDQ4LDB4NzAsMHgwMiwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGI2MTAsIDAsIHsweGY4LDB4MDksMHgzMSwweDQyLDB4MGMsMHgxMCwweDgzLDB4MDAsMHgyMCwweGUwLDB4MDgsMHgzOCwweDEyLDB4NGUsMHgwMCwweDgzIH19LAotIHsxNiwgMHhiNjIwLCAwLCB7MHgwMCwweDZhLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDA0LDB4OTMsMHgwMCwweDIwLDB4ZTAsMHgwOSwweDM4LDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YjYzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZWUsMHgyMCwweDMwLDB4ODAgfX0sCi0gezE2LCAweGI2NDAsIDAsIHsweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4MzMsMHhiMCwweDBkLDB4ZTQsMHgwMywweDMyLDB4ODgsMHhjYywweDgwIH19LAotIHsxNiwgMHhiNjUwLCAwLCB7MHgyMywweDAwLDB4MGQsMHhjMCwweDAzLDB4NjIsMHgwMiwweGNhLDB4MDAsMHgzNiwweDgwLDB4MGYsMHhhMCwweDQzLDB4MjgsMHgwNiB9fSwKLSB7MTYsIDB4YjY2MCwgMCwgezB4ZGEsMHgwMCwweDMzLDB4YTAsMHgwZCwweDZhLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2NzAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4OTgsMHgwMSwweGJlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhmMCwweDAwLDB4YmMsMHgwMCwweDM4IH19LAotIHsxNiwgMHhiNjgwLCAwLCB7MHgwNCwweDA4LDB4ODAsMHhhMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgxMywweGEwLDB4MDAsMHhlMCB9fSwKLSB7MTYsIDB4YjY5MCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHgwMCwweDAzLDB4YzAsMHgwMCwweGU4LDB4MDAsMHhiZSwweDA0LDB4NGUsMHg4MCwweDA3LDB4ZDIgfX0sCi0gezE2LCAweGI2YTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHg4MCwweGM5LDB4MDAsMHgzZSwweDY4IH19LAotIHsxNiwgMHhiNmIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4NDMsMHhlMCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YjZjMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgxMywweDIwLDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweDY0LDB4MDAgfX0sCi0gezE2LCAweGI2ZDAsIDAsIHsweDgxLDB4MDAsMHgzMiwweDQwLDB4MDQsMHg5MCwweDEzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNmUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwNiwweDg5LDB4NDAsMHgyZSwweDYwLDB4MWEsMHgxNCwweDJhLDB4MDUsMHgyMCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YjZmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNCwweDA4LDB4YzEsMHgwMiwweDIwLDB4NDAsMHgwOCwweDEwLDB4MWEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGI3MDAsIDAsIHsweDEwLDB4MzIsMHg0MSwweDA4LDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDA0LDB4MzYsMHg0MCwweDg4LDB4OTQsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiNzEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MjAsMHg4OSwweDU1LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YjcyMCwgMCwgezB4MDgsMHhkNSwweDAyLDB4MzQsMHgwMCwweDhkLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfX0sCi0gezE2LCAweGI3MzAsIDAsIHsweDI2LDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNCwweDBhLDB4ODksMHgwMCwweDI2LDB4NDAsMHgzOCwweDkwLDB4MGEsMHgyNCwweDAwIH19LAotIHsxNiwgMHhiNzQwLCAwLCB7MHhhOSwweDAwLDB4MjAsMHg0MCwweDBhLDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjc1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MmYsMHg0MCwweDBhLDB4ZDQsMHgwMiwweDM0LDB4MDAsMHg4NSwweDAxLDB4MmMgfX0sCi0gezE2LCAweGI3NjAsIDAsIHsweDQwLDB4MDgsMHgxMCwweDQyLDB4ZTQsMHgwNiwweDk5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDUsMHgwMCwweDgxIH19LAotIHsxNiwgMHhiNzcwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MTIsMHgwNSwweDAwLDB4YTEsMHg0MCwweDI0LDB4NTAsMHg1YSwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4Yjc4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwNCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGI3OTAsIDAsIHsweDA4LDB4ODAsMHgwMywweDIxLDB4NDIsMHhjYywweDAwLDB4M2UsMHgwMCwweDJjLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiN2EwLCAwLCB7MHhiNiwweDAwLDB4MmMsMHg4MCwweDAyLDB4MjAsMHgwMiwweGM4LDB4MDAsMHgzNiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMiB9fSwKLSB7MTYsIDB4YjdiMCwgMCwgezB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4ZSwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3YzAsIDAsIHsweDk4LDB4MWQsMHhmNSwweDAwLDB4ZjUsMHgwMCwweDNlLDB4NDAsMHg4NywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNkIH19LAotIHsxNiwgMHhiN2QwLCAwLCB7MHg1MCwweDBmLDB4NTQsMHgwMywweGQxLDB4MDAsMHhlYywweDQwLDB4M2YsMHgxMCwweDBiLDB4YzQsMHg0MywweGYxLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjdlMCwgMCwgezB4NDAsMHgzNiwweDUwLDB4MGYsMHg5NCwweDEzLDB4ZTUsMHgxMCwweGQ5LDB4NDQsMHgzZCwweDQwLDB4MmQsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGI3ZjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHg2MCwweGNkLDB4MDIsMHgzYiwweDQwIH19LAotIHsxNiwgMHhiODAwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhiNCwweDQwLDB4ZmQsMHgwNiwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2NiwweDA0LDB4YzksMHg4MiB9fSwKLSB7MTYsIDB4YjgxMCwgMCwgezB4YjYsMHg2MiwweDBmLDB4MTgsMHgwYiwweDM2LDB4MDAsMHhjZCwweDQwLDB4MzIsMHg2MSwweDBjLDB4OTAsMHgyMywweDI0LDB4MGEgfX0sCi0gezE2LCAweGI4MjAsIDAsIHsweGM5LDB4MDAsMHgzMiwweDQwLDB4NGMsMHhkMCwweDQzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiODMwLCAwLCB7MHgzOSwweDEwLDB4ZTMsMHg4MCwweGQ4LDB4MDAsMHgyMiwweDAwLDB4MGQsMHg4MCwweDAyLDB4MjIsMHg5NCwweGI4LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMSwweDAwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYiwweGM0LDB4MjIsMHgyMSwweDUwLDB4ODggfX0sCi0gezE2LCAweGI4NTAsIDAsIHsweDgwLDB4MjIsMHgyMiwweDA4LDB4ODAsMHgwMiwweDIwLDB4MTAsMHg4MCwweDAxLDB4MmEsMHgwMCwweDBhLDB4ODAsMHgwMywweDRlIH19LAotIHsxNiwgMHhiODYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGM2LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCB9fSwKLSB7MTYsIDB4Yjg3MCwgMCwgezB4ODgsMHgxMCwweDBhLDB4ODQsMHgwOCwweGIxLDB4MDAsMHgyOSwweDQwLDB4MGEsMHg3MCwweDBhLDB4YjUsMHgwMCwweDhmLDB4NDAgfX0sCi0gezE2LCAweGI4ODAsIDAsIHsweDI5LDB4YzAsMHgwYiwweGY0LDB4MDIsMHgyNCwweDAwLDB4ODEsMHgyMCwweDI4LDB4NDQsMHg4OSwweDEwLDB4MDIsMHgwNCwweDA0IH19LAotIHsxNiwgMHhiODkwLCAwLCB7MHg4MSwweDAyLDB4MmEsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjhhMCwgMCwgezB4MTgsMHgxNSwweGE2LDB4MDAsMHg5OSwweDIwLDB4MjIsMHg0MCwweDA5LDB4OTAsMHgxMiwweDI0LDB4ODAsMHhiOSwweDAwLDB4MmYgfX0sCi0gezE2LCAweGI4YjAsIDAsIHsweDQ0LDB4MDMsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDAsMHgyYiwweDQxLDB4MGIsMHhkMCwweDAyLDB4MjYsMHgxMCwweDg5IH19LAotIHsxNiwgMHhiOGMwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgwOSwweDkwLDB4NmUsMHgyNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwYSwweDk0LDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YjhkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEyLDB4MTUsMHhlNiwweDAwLDB4YzksMHgwMCwweDM4LDB4NDIgfX0sCi0gezE2LCAweGI4ZTAsIDAsIHsweDBjLDB4MTAsMHgxMywweGE2LDB4MDQsMHg3OSwweDA4LDB4M2EsMHg3OCwweDA2LDB4OTIsMHgwMywweGE0LDB4MDgsMHhjOSwweDAwIH19LAotIHsxNiwgMHhiOGYwLCAwLCB7MHgzYSwweDYwLDB4OGYsMHg5OCwweDIzLDB4MDYsMHgwMiwweGM5LDB4MDIsMHgzYSwweDQwLDB4MGQsMHg5MCwweDAzLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4YjkwMCwgMCwgezB4YzksMHgwMCwweDM4LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5MTAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDEwLDB4ZjksMHg4MCwweGJlLDB4NDAsMHg0ZiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNjIH19LAotIHsxNiwgMHhiOTIwLCAwLCB7MHg2MCwweDhkLDB4OTIsMHgwMywweDI0LDB4NDIsMHhlOSwweDEwLDB4MzIsMHg1MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjkzMCwgMCwgezB4MDAsMHhiNiwweDQxLDB4MmUsMHgxMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGI5NDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHhiOTUwLCAwLCB7MHgwZiwweDg4LDB4MDMsMHgyMCwweDA4LDB4ZjgsMHhjMCwweDFlLDB4MTAsMHgyYywweDQwLDB4MDMsMHhmMiwweDAwLDB4Y2MsMHgwMCB9fSwKLSB7MTYsIDB4Yjk2MCwgMCwgezB4M2YsMHgwMCwweDBjLDB4YzAsMHgxMywweDIwLDB4MDIsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgyYiwweDIwLDB4MTAgfX0sCi0gezE2LCAweGI5NzAsIDAsIHsweGMwLDB4MDQsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOTgwLCAwLCB7MHhhOCwweDA1LDB4M2EsMHg4MCwweDg2LDB4ZTAsMHgyZiwweGEwLDB4MWIsMHhlMCwweDAyLDB4M2EsMHg4MCwweGJhLDB4MDQsMHgyZSB9fSwKLSB7MTYsIDB4Yjk5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg4OCwweDA4LDB4YzIsMHgwMCwweDJlLDB4ODEsMHgwOCwweDYwLDB4MDIsMHgyOCwweDEwLDB4OGUgfX0sCi0gezE2LCAweGI5YTAsIDAsIHsweDgxLDB4MDMsMHg4MCwweDA4LDB4ZTAsMHgwMSwweDc4LDB4MDAsMHg4ZSwweDA0LDB4MDMsMHg4MCwweDA5LDB4NjgsMHgwMywweGNhIH19LAotIHsxNiwgMHhiOWIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDYwLDB4MmMsMHg0NCB9fSwKLSB7MTYsIDB4YjljMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4MGYsMHg4MCwweGIxLDB4MDAsMHgyYywweGU1LDB4MDMsMHgzMCwweDEwLDB4Y2MsMHgxMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGI5ZDAsIDAsIHsweDBjLDB4YzAsMHgyOSwweDMwLDB4MjIsMHgwNCwweDA5LDB4OTEsMHgxMCwweDI0LDB4YzAsMHhjOCwweDMwLDB4MDAsMHg0YywweDA0IH19LAotIHsxNiwgMHhiOWUwLCAwLCB7MHg5MywweDAyLDB4MjQsMHhjMCwweDBiLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjlmMCwgMCwgezB4ZTAsMHgwMSwweDE4LDB4ODAsMHg4NywweDAwLDB4MmQsMHg0MCwweDBiLDB4NzQsMHg0MiwweDFjLDB4MDEsMHhiNSwweDAxLDB4MmMgfX0sCi0gezE2LCAweGJhMDAsIDAsIHsweGMwLDB4MGIsMHg2MCwweDAyLDB4YjAsMHgwMCwweDk0LDB4MDQsMHgyZiwweDIwLDB4MDksMHhjMCwweDAyLDB4MTQsMHg5MCwweDk3IH19LAotIHsxNiwgMHhiYTEwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwOCwweDcwLDB4MDIsMHg0YywweDgwLDB4OTcsMHgyMCwweDI1LDB4YzAsMHgwOSwweDcwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YmEyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzYSwweDgyLDB4YzYsMHg4MCwweDJkLDB4NjAgfX0sCi0gezE2LCAweGJhMzAsIDAsIHsweDBiLDB4ZjgsMHgwYiwweDFhLDB4MDAsMHhmNSwweDgwLDB4M2QsMHhlMCwweDhmLDB4NzgsMHgwMywweGRlLDB4MDIsMHhjNywweDgwIH19LAotIHsxNiwgMHhiYTQwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg3OCwweDBiLDB4MTcsMHgwMiwweGRmLDB4ODAsMHgyNCwweGY4LDB4MmMsMHhmZCwweDAzLDB4NWUsMHgwYyB9fSwKLSB7MTYsIDB4YmE1MCwgMCwgezB4ZDcsMHhlMCwweDM1LDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhNjAsIDAsIHsweDQ4LDB4MWQsMHhhZSwweDQwLDB4ZmEsMHgwNCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MTMsMHhlYywweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhiYTcwLCAwLCB7MHhjMSwweDBjLDB4YTAsMHgxMywweGMwLDB4MTAsMHhlOCwweDAwLDB4M2MsMHgwMCwweDRlLDB4ODAsMHg0MywweGM0LDB4MjAsMHg4OSB9fSwKLSB7MTYsIDB4YmE4MCwgMCwgezB4MDAsMHhiYSwweGMwLDB4MDcsMHhiNiwweDIxLDB4ZWQsMHgwNiwweGViLDB4NjgsMHhiYSwweGNjLDB4MGYsMHgyMCwweDEzLDB4YzIgfX0sCi0gezE2LCAweGJhOTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4YmUsMHgwMCwweGM2LDB4ODAsMHgzMSwweDYwIH19LAotIHsxNiwgMHhiYWEwLCAwLCB7MHgyZCwweDc4LDB4MGIsMHgzZSwweDQ4LDB4ZWMsMHg5MiwweDNkLDB4NjAsMHgwYywweDU4LDB4MDMsMHg1YSwweDQwLDB4ZDUsMHg4MCB9fSwKLSB7MTYsIDB4YmFiMCwgMCwgezB4MzEsMHg2MSwweDBjLDB4NTgsMHgyMywweDM2LDB4MDAsMHhjZiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZmLDB4NjAgfX0sCi0gezE2LCAweGJhYzAsIDAsIHsweGNmLDB4OTAsMHgzMywweGYwLDB4MGMsMHg1MiwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYWQwLCAwLCB7MHhhOCwweDExLDB4YjgsMHg4NCwweDg2LDB4MTQsMHhiNSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWUsMHhjMCwweGM0LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YmFlMCwgMCwgezB4NDAsMHgwOCwweDQwLDB4MDIsMHgxNCwweGQwLDB4ODYsMHgxMCwweDIxLDB4ODAsMHg0YywweDYyLDB4NDIsMHgzNCwweDQwLDB4YTUgfX0sCi0gezE2LCAweGJhZjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDI4LDB4NzAsMHg0MiwweGRjLDB4YzIsMHg4ZiwweDMwLDB4MjMsMHhjMCwweDA4LDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhiYjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDk4LDB4MjgsMHg4ZSwweDAwLDB4YTUsMHg0MCB9fSwKLSB7MTYsIDB4YmIxMCwgMCwgezB4MDgsMHhmMSwweDAyLDB4MTgsMHg2NCwweGI0LDB4MDAsMHg2ZCwweDQyLDB4MDgsMHg1MCwweDAyLDB4MTgsMHgwMSwweDg1LDB4MDggfX0sCi0gezE2LCAweGJiMjAsIDAsIHsweDIxLDB4NDAsMHgwOSwweDU4LDB4MjIsMHg1NCwweDAwLDB4ODUsMHgxMCwweDJkLDB4YzQsMHgwOSwweDcwLDB4MDIsMHhkYywweDA0IH19LAotIHsxNiwgMHhiYjMwLCAwLCB7MHg5NywweDAwLDB4MjUsMHhjMCwweDA4LDB4NDQsMHgwMiwweDAwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmI0MCwgMCwgezB4NjAsMHgxNCwweDhjLDB4MDAsMHg4MiwweDgwLDB4MjQsMHhjMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4MDAsMHg4MCwweDRhLDB4MmMgfX0sCi0gezE2LCAweGJiNTAsIDAsIHsweDQyLDB4MDgsMHgwYSwweDQyLDB4MDYsMHgwMCwweDkyLDB4ODQsMHgyMCwweGEwLDB4ODgsMHgyOCwweDQyLDB4NDQsMHgwMCwweGEzIH19LAotIHsxNiwgMHhiYjYwLCAwLCB7MHgwNiwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwNCwweDI0LDB4YzEsMHgwOSwweDAwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YmI3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2IsMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGJiODAsIDAsIHsweDBjLDB4YjQsMHgxMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhhMCwweDBjLDB4YTIsMHgwMywweDA0LDB4MDgsMHhjMiwweDgwIH19LAotIHsxNiwgMHhiYjkwLCAwLCB7MHgzMCwweGE4LDB4MGQsMHgyYSwweDAzLDB4NTQsMHgwMCwweGNiLDB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwOCB9fSwKLSB7MTYsIDB4YmJhMCwgMCwgezB4ZGYsMHgwMCwweDM3LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiYjAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDAwLDB4ZmIsMHgxMCwweDNhLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhlZCwweDkwLDB4ZjksMHgxMSwweDdlIH19LAotIHsxNiwgMHhiYmMwLCAwLCB7MHg4MCwweDRmLDB4YjAsMHg1MywweGU4LDB4NDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGE2LDB4MDgsMHhmOSB9fSwKLSB7MTYsIDB4YmJkMCwgMCwgezB4MDEsMHgzYSwweGMwLDB4MGMsMHhiMCwweDEzLDB4Y2MsMHgwMCwweGViLDB4MDIsMHgzYSwweGM2LDB4OGUsMHhiOCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGJiZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwYywweGNlLDB4MDAsMHgzZiwweGUwIH19LAotIHsxNiwgMHhiYmYwLCAwLCB7MHgyYywweGYwLDB4ODMsMHgzYSwweDQ4LDB4Y2QsMHgwMSwweDM1LDB4ODAsMHgwYywweDYwLDB4MTIsMHgzNCwweDBhLDB4Y2UsMHgwMCB9fSwKLSB7MTYsIDB4YmMwMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4ZTAsMHgwYiwweDc0LDB4MDAsMHhjOSwweDEwLDB4YjMsMHhjMSwweDBmLDB4ZjAsMHgxYiwweDNjLDB4MDAgfX0sCi0gezE2LCAweGJjMTAsIDAsIHsweGNmLDB4MDAsMHhiNywweGMwLDB4MmMsMHhlMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzIwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgxMCwweDg4LDB4ODAsMHgyYywweGMwLDB4MTgsMHg5OCwweDAyLDB4MmQsMHg4MCwweDgxLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YmMzMCwgMCwgezB4OTEsMHgwOCwweGIwLDB4MDMsMHg2OCwweDAwLDB4YzksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODMgfX0sCi0gezE2LCAweGJjNDAsIDAsIHsweDgwLDB4MzYsMHhjMCwweDBiLDB4MzAsMHgwMiwweDJjLDB4MDIsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MjAsMHgwMywweDYwIH19LAotIHsxNiwgMHhiYzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDA2LDB4MDAsMHg4YSwweDgwLDB4MmUsMHg0NSB9fSwKLSB7MTYsIDB4YmM2MCwgMCwgezB4MjgsMHg4OCwweDAyLDB4MjQsMHgwMiwweDg4LDB4MDIsMHgwMiwweDAyLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDk4LDB4MDAgfX0sCi0gezE2LCAweGJjNzAsIDAsIHsweDIyLDB4MDAsMHgwOCwweDgwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMSwweDIyLDB4YzEsMHgwYSwweGIwLDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhiYzgwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgxMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmM5MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MmMsMHhjMCwweDQ4LDB4MDgsMHgxMiwweDAwLDB4ODAsMHg4MCwweDAyLDB4MjQgfX0sCi0gezE2LCAweGJjYTAsIDAsIHsweDAwLDB4MDgsMHgxOCwweDQyLDB4YWMsMHgwMiwweDhiLDB4ODAsMHgyMiwweGUwLDB4MDgsMHhiOCwweDEyLDB4MDQsMHgwMiwweDgzIH19LAotIHsxNiwgMHhiY2IwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwYywweDAwLDB4YTMsMHgwMSwweDYwLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YmNjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDA4LDB4Y2EsMHgwMCwweDJlLDB4NDAgfX0sCi0gezE2LCAweGJjZDAsIDAsIHsweDA4LDB4ODAsMHgwMywweDAwLDB4MDAsMHhjOCwweDA2LDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMiwweGEwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiY2UwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NzQsMHgwMCwweGNiLDB4MDAsMHgyMiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YmNmMCwgMCwgezB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwYywweDgwLDB4MDEsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkMDAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmMsMHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlMSwweDAwLDB4ZmMsMHgwMCwweDNiIH19LAotIHsxNiwgMHhiZDEwLCAwLCB7MHgwMCwweDBmLDB4ZDAsMHgwMywweDdjLDB4MDAsMHhlZiwweDAwLDB4MmYsMHhjMCwweDBmLDB4ZjAsMHgxMSwweGY0LDB4MTAsMHhmZCB9fSwKLSB7MTYsIDB4YmQyMCwgMCwgezB4MDIsMHgzZCwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGRmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTkgfX0sCi0gezE2LCAweGJkMzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDEsMHgwMiwweDcwLDB4MjAsMHhkYywweDEwIH19LAotIHsxNiwgMHhiZDQwLCAwLCB7MHg2NywweDA0LDB4MGQsMHhjMSwweDAyLDB4NzAsMHgyMCwweDljLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMSwweDA2LDB4NzAsMHg0MCB9fSwKLSB7MTYsIDB4YmQ1MCwgMCwgezB4NGMsMHgxMCwweDM3LDB4MTQsMHgxNSwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDEzLDB4MDQsMHgwZCwweGMxLDB4MDcgfX0sCi0gezE2LCAweGJkNjAsIDAsIHsweDcwLDB4NDAsMHhkYywweDEwLDB4MzcsMHgwNCwweDBkLDB4YzAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZDcwLCAwLCB7MHgwMCwweGM1LDB4NDQsMHgwNSwweDcxLDB4MjEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDUsMHg1YyB9fSwKLSB7MTYsIDB4YmQ4MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA2LDB4NzEsMHgwMSwweDRjLDB4NDAsMHg1NywweDEwLDB4MGQsMHhjNCwweDA1LDB4NzEgfX0sCi0gezE2LCAweGJkOTAsIDAsIHsweDA1LDB4NWMsMHg0MCwweDUzLDB4MTAsMHgxNSwweGM0LDB4MDcsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGMwIH19LAotIHsxNiwgMHhiZGEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4YmRiMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGJkYzAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhiZGQwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmRlMCwgMCwgezB4MDAsMHg4NCwweDAwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDA0LDB4NTggfX0sCi0gezE2LCAweGJkZjAsIDAsIHsweDAwLDB4MTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDIwLDB4MDEsMHg1OCwweDAwLDB4MTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwIH19LAotIHsxNiwgMHhiZTAwLCAwLCB7MHgwMCwweDU4LDB4MDAsMHg1NiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAsMHgwMCwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YmUxMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA1LDB4NzIsMHgxMSwweDVjLDB4ODAgfX0sCi0gezE2LCAweGJlMjAsIDAsIHsweDE3LDB4MjAsMHgxNSwweGQ4LDB4MDUsMHgzMiwweDExLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxNCwweDg4LDB4MDAsMHg3MiwweDAxIH19LAotIHsxNiwgMHhiZTMwLCAwLCB7MHgxYywweDgwLDB4NTcsMHgyMCwweDA1LDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwMSB9fSwKLSB7MTYsIDB4YmU0MCwgMCwgezB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDI0LDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlNTAsIDAsIHsweDAwLDB4YzEsMHg0MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDQwLDB4MjAsMHgwMCwweDE4IH19LAotIHsxNiwgMHhiZTYwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDkwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4YmU3MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDEwLDB4MDYsMHgwMCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGJlODAsIDAsIHsweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH19LAotIHsxNiwgMHhiZTkwLCAwLCB7MHgwMiwweDIwLDB4MTAsMHg4OCwweDA0LDB4NjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg4OCwweDAwLDB4MjAsMHgwMSB9fSwKLSB7MTYsIDB4YmVhMCwgMCwgezB4MDgsMHg4MCwweDQyLDB4MjAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHgwMCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDAgfX0sCi0gezE2LCAweGJlYjAsIDAsIHsweDIyLDB4MDEsMHgwOCwweDgwLDB4NDIsMHgzMCwweDEwLDB4ODAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZWMwLCAwLCB7MHgwMCwweGM1LDB4NGEsMHgwNSwweDQyLDB4ODEsMHg1MCwweGEwLDB4MDQsMHgyOCwweDE1LDB4MGEsMHgwNSwweDUyLDB4ODEsMHgxMCB9fSwKLSB7MTYsIDB4YmVkMCwgMCwgezB4YTAsMHg0NCwweDI4LDB4MTEsMHgxYSwweDAwLDB4NDAsMHg4MCwweDEwLDB4YTAsMHg1NCwweDI4LDB4MDUsMHgwYSwweDA1LDB4NDIgfX0sCi0gezE2LCAweGJlZTAsIDAsIHsweDgxLDB4NTEsMHgyMCwweDE0LDB4MjgsMHgxNSwweDBhLDB4MDEsMHg0MiwweDgxLDB4NTAsMHhhMCwweDU0LDB4MjgsMHgxNSwweDAwIH19LAotIHsxNiwgMHhiZWYwLCAwLCB7MHgzMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBjLDB4MDEsMHg1MywweDQwLDB4NTQsMHhjMCB9fSwKLSB7MTYsIDB4YmYwMCwgMCwgezB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDU3LDB4NDAsMHg1NCwweGMwLDB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDUzLDB4MDAgfX0sCi0gezE2LCAweGJmMTAsIDAsIHsweDU1LDB4YzAsMHgxNSwweDc0LDB4MDUsMHg0YywweDAxLDB4NTMsMHgwMCwweDU1LDB4YzAsMHgxNSwweDc0LDB4MDUsMHg0YywweDAxIH19LAotIHsxNiwgMHhiZjIwLCAwLCB7MHg1MywweDAwLDB4NTQsMHhjMCwweDExLDB4MzAsMHgwMSwweDQwLDB4MjEsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmYzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAgfX0sCi0gezE2LCAweGJmNDAsIDAsIHsweDAwLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDExLDB4MDAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhiZjUwLCAwLCB7MHgwMCwweDEwLDB4YzEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAsMHgwMSwweDEwLDB4MDEsMHgwMSB9fSwKLSB7MTYsIDB4YmY2MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg2MCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAgfX0sCi0gezE2LCAweGJmNzAsIDAsIHsweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwIH19LAotIHsxNiwgMHhiZjgwLCAwLCB7MHg4MiwweDAwLDB4MjAsMHg4NCwweDAwLDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4NCwweDA4LDB4MjAsMHgwMiB9fSwKLSB7MTYsIDB4YmY5MCwgMCwgezB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMSwweDgwLDB4MDgsMHgwMSwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJmYTAsIDAsIHsweDAwLDB4YzUsMHg0MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg5NiwweDAwLDB4MTUsMHg5MCwweDA1LDB4NjQsMHgwMiwweDU4IH19LAotIHsxNiwgMHhiZmIwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHg1NSwweDkwLDB4MDUsMHg2MCwweDAxLDB4ZDksMHgwMCwweDE2LDB4NDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9fSwKLSB7MTYsIDB4YmZjMCwgMCwgezB4MDEsMHg1OSwweDAwLDB4NzYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfX0sCi0gezE2LCAweGJmZDAsIDAsIHsweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM0LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiZmUwLCAwLCB7MHgzNiwweDAwLDB4NGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjIsMHgwMCB9fSwKLSB7MTYsIDB4YmZmMCwgMCwgezB4NTgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MCwweDAwLDB4ZDgsMHg4MCwweDE2LDB4MDAsMHgwZCwweDgwLDB4MDMgfX0sCi0gezE2LCAweGMwMDAsIDAsIHsweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDFkLDB4ODAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDEwLCAwLCB7MHgwMCwweGM1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYyB9fSwKLSB7MTYsIDB4YzAyMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA2LDB4MzAgfX0sCi0gezE2LCAweGMwMzAsIDAsIHsweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxOCwweGMwIH19LAotIHsxNiwgMHhjMDQwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YzA1MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHg0MCwweDMwLDB4MDAgfX0sCi0gezE2LCAweGMwNjAsIDAsIHsweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjMDcwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzA4MCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMgfX0sCi0gezE2LCAweGMwOTAsIDAsIHsweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgyNSwweDMwLDB4ODEsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwIH19LAotIHsxNiwgMHhjMGEwLCAwLCB7MHg4MCwweDRjLDB4MzIsMHg1MywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMCB9fSwKLSB7MTYsIDB4YzBiMCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA1LDB4NjIsMHg4MSwweDU4LDB4MjAgfX0sCi0gezE2LCAweGMwYzAsIDAsIHsweDU2LDB4MDgsMHgxNSwweDgyLDB4MDQsMHg2MCwweDgxLDB4NTgsMHgyMCwweDQ2LDB4MDgsMHgxNSwweDgyLDB4MDEsMHg2MCwweGMxIH19LAotIHsxNiwgMHhjMGQwLCAwLCB7MHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4ODEsMHg1OCwweDMwLDB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNSB9fSwKLSB7MTYsIDB4YzBlMCwgMCwgezB4NjAsMHg4MSwweDU4LDB4MjAsMHg1NiwweDA4LDB4MDUsMHg4MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwZjAsIDAsIHsweDAwLDB4YzUsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4IH19LAotIHsxNiwgMHhjMTAwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YzExMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGMxMjAsIDAsIHsweDIxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwNCwweDY2LDB4ODEsMHgxOCwweDIwIH19LAotIHsxNiwgMHhjMTMwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjQsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHg4MSB9fSwKLSB7MTYsIDB4YzE0MCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxLDB4MTksMHgyMCwweDQzLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGMxNTAsIDAsIHsweDYwLDB4ODEsMHgxOSwweDIwLDB4NDYsMHg0OCwweDAxLDB4ODAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMTYwLCAwLCB7MHgwMCwweGM1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDE1LDB4NjAsMHgwNCwweDU4LDB4MDEsMHg1NiB9fSwKLSB7MTYsIDB4YzE3MCwgMCwgezB4MDAsMHg0NSwweDgwLDB4MTEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDA2LDB4MDAsMHg0NSwweDgwLDB4MTUsMHg2MCwweDAxLDB4NTggfX0sCi0gezE2LCAweGMxODAsIDAsIHsweDAxLDB4MTYsMHgwMCwweDAxLDB4ODAsMHgxNSwweDYwLDB4MDUsMHg1OCwweDAxLDB4NTYsMHgwMCwweDU1LDB4ODAsMHgwNSwweDQwIH19LAotIHsxNiwgMHhjMTkwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA2LDB4MDEsMHg0OSwweDgwLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4YzFhMCwgMCwgezB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDc5LDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDAxLDB4MDYsMHgwMSwweDQxLDB4ODAgfX0sCi0gezE2LCAweGMxYjAsIDAsIHsweDUwLDB4NjAsMHgwNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwNiwweDAxIH19LAotIHsxNiwgMHhjMWMwLCAwLCB7MHg0MSwweDgwLDB4NTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzFkMCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgwNCwweDgwLDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDAsMHgwNCwweDA0LDB4NDAgfX0sCi0gezE2LCAweGMxZTAsIDAsIHsweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwIH19LAotIHsxNiwgMHhjMWYwLCAwLCB7MHg4MCwweDQxLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4MCwweDQxLDB4MjAsMHgxMCwweDQ4LDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4YzIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfX0sCi0gezE2LCAweGMyMTAsIDAsIHsweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDIsMHgxMSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHgxMSwweDgwIH19LAotIHsxNiwgMHhjMjIwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9fSwKLSB7MTYsIDB4YzIzMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDMxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyNDAsIDAsIHsweDAwLDB4YzUsMHg0NiwweDA1LDB4NzAsMHg4MSwweDVjLDB4NjAsMHgwNywweDE4LDB4MTUsMHhjNiwweDA0LDB4NzEsMHg4MSwweDFjIH19LAotIHsxNiwgMHhjMjUwLCAwLCB7MHg2MCwweDE3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHgzMSwweDgxLDB4ZGMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4YzI2MCwgMCwgezB4ODAsMHgxYywweDYwLDB4NzcsMHgxOCwweDE1LDB4Y2UsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGMyNzAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4NDYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYxIH19LAotIHsxNiwgMHhjMjgwLCAwLCB7MHg3NywweDE4LDB4MGQsMHhjNiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMiwweDAzLDB4MzEsMHg4MCB9fSwKLSB7MTYsIDB4YzI5MCwgMCwgezB4NWMsMHg2MCwweDI3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDgwLDB4OWMsMHg2MCwweDE3LDB4MTgsMHgwZCwweGNlLDB4MDMgfX0sCi0gezE2LCAweGMyYTAsIDAsIHsweDcxLDB4ODAsMHhkYywweDYwLDB4MzcsMHgxOCwweDBkLDB4YzAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMmIwLCAwLCB7MHgwMCwweDQ1LDB4NDYsMHgwNSwweDc1LDB4ODEsMHg1YywweDYwLDB4NzcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDc1LDB4ODEsMHg1YyB9fSwKLSB7MTYsIDB4YzJjMCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweDBjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfX0sCi0gezE2LCAweGMyZDAsIDAsIHsweDgxLDB4NWMsMHg2MCwweDQzLDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGMwIH19LAotIHsxNiwgMHhjMmUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4YzJmMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGMzMDAsIDAsIHsweDVjLDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MDAsMHgxNywweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjMzEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzMyMCwgMCwgezB4MDAsMHgwMCwweDA2LDB4MDEsMHg2MywweDgwLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgwLDB4NTggfX0sCi0gezE2LCAweGMzMzAsIDAsIHsweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODEsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxIH19LAotIHsxNiwgMHhjMzQwLCAwLCB7MHg4MCwweDU4LDB4NjAsMHg1NiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MCwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4MCB9fSwKLSB7MTYsIDB4YzM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAgfX0sCi0gezE2LCAweGMzNjAsIDAsIHsweDE3LDB4MDAsMHgxNSwweGMwLDB4ODUsMHg3NCwweDAxLDB4MWMsMHgwMCwweDQ3LDB4MDAsMHgxMSwweGMwLDB4MDUsMHg3MCwweDAxIH19LAotIHsxNiwgMHhjMzcwLCAwLCB7MHg1YywweDAwLDB4NTMsMHgwMCwweDEwLDB4YzAsMHgwNSwweDcwLDB4MDEsMHg1YywweDAwLDB4NTcsMHgwMCwweDE0LDB4YzksMHgwNCB9fSwKLSB7MTYsIDB4YzM4MCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MDAsMHg1NywweDAwLDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzOTAsIDAsIHsweDAwLDB4NDUsMHg0MiwweDAwLDB4NjAsMHhjMCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4IH19LAotIHsxNiwgMHhjM2EwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHgyMCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4YzNiMCwgMCwgezB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGMzYzAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ0LDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH19LAotIHsxNiwgMHhjM2QwLCAwLCB7MHgwMiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9fSwKLSB7MTYsIDB4YzNlMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGMzZjAsIDAsIHsweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNDAwLCAwLCB7MHgwMCwweDQ1LDB4NDIsMHgwNSwweDQwLDB4YzUsMHg1MCwweDIwLDB4MTQsMHgwOCwweDE1LDB4MDAsMHgwNCwweDQwLDB4ODEsMHg1MCB9fSwKLSB7MTYsIDB4YzQxMCwgMCwgezB4MjAsMHg1NCwweDA4LDB4MTEsMHgwMiwweDA1LDB4MDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDBjLDB4MTEsMHg0MiwweDA0LDB4NDAgfX0sCi0gezE2LCAweGM0MjAsIDAsIHsweDgxLDB4NTAsMHgyMCwweDE0LDB4MGMsMHgxNSwweDQyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDU0LDB4MDgsMHgxNSwweDAwIH19LAotIHsxNiwgMHhjNDMwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAzLDB4MDEsMHg1MCwweGMwLDB4NDQsMHgzMCB9fSwKLSB7MTYsIDB4YzQ0MCwgMCwgezB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAsMHg0YywweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgyMSwweDUwLDB4YzAgfX0sCi0gezE2LCAweGM0NTAsIDAsIHsweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDAxLDB4NTAsMHhjMCwweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDAxIH19LAotIHsxNiwgMHhjNDYwLCAwLCB7MHg1MCwweGMwLDB4NTQsMHgyMCwweDE1LDB4MGMsMHgwNSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzQ3MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQgfX0sCi0gezE2LCAweGM0ODAsIDAsIHsweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyIH19LAotIHsxNiwgMHhjNDkwLCAwLCB7MHgwMCwweDEwLDB4ODAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwMCB9fSwKLSB7MTYsIDB4YzRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDg0LDB4MjAgfX0sCi0gezE2LCAweGM0YjAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODQsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwIH19LAotIHsxNiwgMHhjNGMwLCAwLCB7MHg4MCwweGEwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzRkMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0ZTAsIDAsIHsweDAwLDB4NDUsMHg0MCwweDA1LDB4NjAsMHg0MSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4IH19LAotIHsxNiwgMHhjNGYwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHgyMCwweDAxLDB4ZDgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9fSwKLSB7MTYsIDB4YzUwMCwgMCwgezB4MDEsMHg1OCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfX0sCi0gezE2LCAweGM1MTAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhjNTIwLCAwLCB7MHgyNiwweDAwLDB4MGQsMHg4MCwweDAyLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjAsMHgwMSB9fSwKLSB7MTYsIDB4YzUzMCwgMCwgezB4NWMsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDU3LDB4MDAsMHgwZCwweDgwLDB4MDIgfX0sCi0gezE2LCAweGM1NDAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MjEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYyB9fSwKLSB7MTYsIDB4YzU2MCwgMCwgezB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDE4LDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAgfX0sCi0gezE2LCAweGM1NzAsIDAsIHsweDAxLDB4MGMsMHgwMCwweDQ2LDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MGMsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwIH19LAotIHsxNiwgMHhjNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YzU5MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDM1LDB4MDgsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzYsMHgwMCwweDE0LDB4MDAgfX0sCi0gezE2LCAweGM1YTAsIDAsIHsweDA4LDB4MDAsMHgwMywweDQwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBkLDB4NDAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjNWIwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzVjMCwgMCwgezB4MDAsMHgwMCwweDA1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweGMwLDB4NGMgfX0sCi0gezE2LCAweGM1ZDAsIDAsIHsweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwNSwweDMxLDB4NDEsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxIH19LAotIHsxNiwgMHhjNWUwLCAwLCB7MHg0MCwweDRjLDB4NzAsMHg1MywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEsMHg0MCwweDRjLDB4NDAsMHgxMywweDE0LDB4MDQsMHhjMCB9fSwKLSB7MTYsIDB4YzVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA1LDB4NjgsMHhjMSwweDVhLDB4MzAgfX0sCi0gezE2LCAweGM2MDAsIDAsIHsweDU2LDB4OGMsMHgxNSwweGEzLDB4MDUsMHg2OSwweGMxLDB4NWEsMHgzMCwweDQ2LDB4OGMsMHgxMSwweGE3LDB4MDEsMHg2OCwweGMwIH19LAotIHsxNiwgMHhjNjEwLCAwLCB7MHgxYSwweDMwLDB4NTYsMHg4YywweDExLDB4YTMsMHgwNCwweDY4LDB4YzEsMHgxYSwweDMwLDB4MTYsMHg4YywweDE1LDB4YTMsMHgwNCB9fSwKLSB7MTYsIDB4YzYyMCwgMCwgezB4NjgsMHhjMSwweDVhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA4IH19LAotIHsxNiwgMHhjNjQwLCAwLCB7MHgwMSwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDgsMHg4MCwweDAyLDB4NjAsMHgwMCwweDgwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YzY1MCwgMCwgezB4MDAsMHgwOSwweDQwLDB4MDIsMHgyMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGM2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0IH19LAotIHsxNiwgMHhjNjcwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgwOSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4OCwweDYwLDB4NjIsMHgxMCB9fSwKLSB7MTYsIDB4YzY4MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MDEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4MCwweDA2LDB4MDEsMHgxMSwweDg4LDB4NDQgfX0sCi0gezE2LCAweGM2OTAsIDAsIHsweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCB9fSwKLSB7MTYsIDB4YzZiMCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQwLDB4NTAsMHgxMCwweDU0LDB4MDQsMHg0NSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAgfX0sCi0gezE2LCAweGM2YzAsIDAsIHsweDExLDB4MTQsMHgwMCwweDE1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCwweDExLDB4NTQsMHgwNCwweDU1LDB4MDAsMHgxMSwweDQwIH19LAotIHsxNiwgMHhjNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiB9fSwKLSB7MTYsIDB4YzZlMCwgMCwgezB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDAsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMCwweDQyLDB4MDggfX0sCi0gezE2LCAweGM2ZjAsIDAsIHsweDUwLDB4ODIsMHgxNSwweDIwLDB4MDUsMHg0OCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODEsMHg0MCwweDIxIH19LAotIHsxNiwgMHhjNzAwLCAwLCB7MHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4NSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzcxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDg0LDB4NDAgfX0sCi0gezE2LCAweGM3MjAsIDAsIHsweGExLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MDAsMHgyOCwweDAwLDB4MGEsMHgwMSwweDAyIH19LAotIHsxNiwgMHhjNzMwLCAwLCB7MHg4MCwweDQwLDB4YjAsMHgxMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4Yzc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAgfX0sCi0gezE2LCAweGM3NTAsIDAsIHsweDM1LDB4MzAsMHgwZCwweDRjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDRjLDB4MDMsMHg1MywweDAwIH19LAotIHsxNiwgMHhjNzYwLCAwLCB7MHhkNCwweGMwLDB4MjEsMHgzMCwweDA4LDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDA4LDB4NGMsMHgwMyB9fSwKLSB7MTYsIDB4Yzc3MCwgMCwgezB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3ODAsIDAsIHsweDAwLDB4MDAsMHgwOCwweDA0LDB4NzAsMHgwMSwweDVjLDB4ODAsMHgwNywweDIwLDB4MjUsMHhjOSwweDA0LDB4NzIsMHgwMSwweDVjIH19LAotIHsxNiwgMHhjNzkwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxNSwweGM4LDB4MDAsMHg3MiwweDA1LDB4ZGMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDUsMHg3MiB9fSwKLSB7MTYsIDB4YzdhMCwgMCwgezB4MDEsMHgxYywweDkwLDB4NjcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyLDB4MDEsMHgxYywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGM3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgxOCwweDQ4LDB4YzIsMHgxMiwweDMxIH19LAotIHsxNiwgMHhjN2MwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDAsMHhjOCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDgsMHhjNCB9fSwKLSB7MTYsIDB4YzdkMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4MGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg2MSwweDIzLDB4MTggfX0sCi0gezE2LCAweGM3ZTAsIDAsIHsweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHg4YywweDIxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjN2YwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9fSwKLSB7MTYsIDB4YzgwMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfX0sCi0gezE2LCAweGM4MTAsIDAsIHsweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhiZCwweDAwIH19LAotIHsxNiwgMHhjODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzg2MCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwOSwweDM2LDB4YzIgfX0sCi0gezE2LCAweGM4NzAsIDAsIHsweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiIH19LAotIHsxNiwgMHhjODgwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4Yzg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4MzMgfX0sCi0gezE2LCAweGM4YTAsIDAsIHsweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MsMHg0ZCwweDRlLDB4OTMsMHgzMywweGM0LDB4Y2MsMHhmMSwweDJiLDB4M2MsMHg0YywweGNmIH19LAotIHsxNiwgMHhjOGIwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YzQsMHhjYywweGYxLDB4MzMsMHgzYyB9fSwKLSB7MTYsIDB4YzhjMCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzMsMHhjNCwweGNkLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4ZDAsIDAsIHsweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhjNywweDkzLDB4YjcsMHhlNCwweGVkLDB4ZjksMHgyMywweDdlLDB4NGUsMHg0NywweDkzIH19LAotIHsxNiwgMHhjOGUwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNmLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4OGQsMHhmOSwweDNiLDB4N2UsMHg0ZSB9fSwKLSB7MTYsIDB4YzhmMCwgMCwgezB4ZGYsMHg5MywweGY3LDB4ODQsMHg4ZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlZCwweGI5LDB4MDAgfX0sCi0gezE2LCAweGM5MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMiwweDcwLDB4NDAsMHg5YywweDExIH19LAotIHsxNiwgMHhjOTEwLCAwLCB7MHg2NywweDA0LDB4MTksMHhjMywweDAyLDB4NzAsMHg0MCwweDljLDB4MTAsMHgyNywweDA0LDB4MDksMHhjMSwweDAyLDB4NzAsMHg0MCB9fSwKLSB7MTYsIDB4YzkyMCwgMCwgezB4MWMsMHgxMCwweDI3LDB4MTQsMHgwMSwweGMxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHg1MCwweDA3LDB4MDQsMHgwOSwweGMxLDB4MDIgfX0sCi0gezE2LCAweGM5MzAsIDAsIHsweDcwLDB4NDAsMHg5YywweDEwLDB4NjcsMHgxNCwweDExLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOTQwLCAwLCB7MHgwMCwweDAwLDB4MDQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YyB9fSwKLSB7MTYsIDB4Yzk1MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNiwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTAsMHhjNCwweDA1LDB4NzEgfX0sCi0gezE2LCAweGM5NjAsIDAsIHsweDAxLDB4NWMsMHg2NCwweDAzLDB4MTAsMHg1NSwweGM0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGMwIH19LAotIHsxNiwgMHhjOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4Yzk4MCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIxLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGM5OTAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDUsMHhjMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjQsMHgxNywweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjOWEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDg0LDB4MDAsMHg2MCwweDAwLDB4MTggfX0sCi0gezE2LCAweGM5YzAsIDAsIHsweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgxMCwweDkxLDB4ODAsMHgwMCwweDYwIH19LAotIHsxNiwgMHhjOWQwLCAwLCB7MHgwMCwweDE4LDB4NDYsMHg0NiwweDE4LDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDEwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YzllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4NzMsMHgwMSwweDFjLDB4ODAgfX0sCi0gezE2LCAweGM5ZjAsIDAsIHsweDA3LDB4MjAsMHgwMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxIH19LAotIHsxNiwgMHhjYTAwLCAwLCB7MHgxYywweDgwLDB4NDcsMHgyMiwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4MDcsMHgyMCwweDExLDB4YzgsMHgwNCB9fSwKLSB7MTYsIDB4Y2ExMCwgMCwgezB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDI4LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4IH19LAotIHsxNiwgMHhjYTMwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NDYsMHgwNCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH19LAotIHsxNiwgMHhjYTYwLCAwLCB7MHgwMiwweDIwLDB4MDAsMHg5MCwweDA0LDB4MjcsMHg4MSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg5OCwweDA0LDB4MjQsMHgwMSB9fSwKLSB7MTYsIDB4Y2E3MCwgMCwgezB4MDgsMHg4MCwweDQyLDB4NDgsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDksMHg0MCwweDQyLDB4NjAsMHgxMCwweDg4LDB4MDQgfX0sCi0gezE2LCAweGNhODAsIDAsIHsweDIyLDB4MDEsMHgwOCwweGMwLDB4MDIsMHg0MCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYTkwLCAwLCB7MHgwMCwweDAwLDB4MmEsMHgwNCwweDRiLDB4ODEsMHgxMiwweGEwLDB4MDQsMHhhOCwweDAxLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiB9fSwKLSB7MTYsIDB4Y2FhMCwgMCwgezB4YTAsMHg0NCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NDgsMHg4MCwweDEyLDB4YTAsMHg0NCwweDg4LDB4MDEsMHgyYSwweDA0LDB4NGEgfX0sCi0gezE2LCAweGNhYjAsIDAsIHsweDgxLDB4MTIsMHgyMCwweDA0LDB4YWMsMHgxMSwweDJhLDB4MDQsMHg0YSwweDgxLDB4MTIsMHhiMCwweDQ0LDB4OWMsMHgxMSwweDAwIH19LAotIHsxNiwgMHhjYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDBjLDB4MDAsMHg1MywweDAwLDB4MTQsMHhjMCB9fSwKLSB7MTYsIDB4Y2FkMCwgMCwgezB4MDUsMHgzMCwweDAxLDB4NDQsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwLDB4MDUsMHgzMCwweDA0LDB4MGMsMHgwMCwweDUzLDB4MDAgfX0sCi0gezE2LCAweGNhZTAsIDAsIHsweDE0LDB4YzAsMHgwNSwweGIwLDB4MDEsMHg0YywweDAwLDB4NTMsMHgwMCwweDE2LDB4YzAsMHgwMSwweDMwLDB4MDEsMHg0YywweDAwIH19LAotIHsxNiwgMHhjYWYwLCAwLCB7MHg1MywweDAwLDB4MTQsMHhjMCwweDAxLDB4MzgsMHgwMCwweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2IwMCwgMCwgezB4MDgsMHhjMCwweDAwLDB4MTAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDEwLDB4MDAsMHg0NCwweDgwLDB4MTAgfX0sCi0gezE2LCAweGNiMTAsIDAsIHsweDAwLDB4MDQsMHgwMCwweDAxLDB4MTAsMHgwMCwweDQ2LDB4MDAsMHgwMCwweDAwLDB4MDQsMHg2MCwweDAxLDB4MDAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhjYjIwLCAwLCB7MHgwMCwweDExLDB4NjAsMHgwMiwweDQwLDB4MDEsMHgwMCwweDEwLDB4NDAsMHgwMCwweDEwLDB4NjAsMHgwMSwweDUwLDB4MTAsMHg0MCB9fSwKLSB7MTYsIDB4Y2IzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGNiNDAsIDAsIHsweDIwLDB4MDAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYjUwLCAwLCB7MHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiB9fSwKLSB7MTYsIDB4Y2I2MCwgMCwgezB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMSwweDAwLDB4MDgsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiNzAsIDAsIHsweDA4LDB4YzAsMHg0MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4IH19LAotIHsxNiwgMHhjYjgwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4YzgsMHgwMCwweDQ2LDB4MDAsMHgxOSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2I5MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgwMCwweDExLDB4ODAgfX0sCi0gezE2LCAweGNiYTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAxLDB4MDAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDAwIH19LAotIHsxNiwgMHhjYmIwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MSwweDAyLDB4NjAsMHgwMSwweDk4LDB4MDAsMHgyNiwweDAwLDB4MDksMHg4MCwweDA2LDB4NjIsMHgwMCB9fSwKLSB7MTYsIDB4Y2JjMCwgMCwgezB4NDgsMHgwMCwweDI2LDB4MjAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDA3LDB4MDAsMHgwOSwweDgwLDB4MDIgfX0sCi0gezE2LCAweGNiZDAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4MjYsMHgwMCwweDExLDB4ODIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYmUwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODUsMHg4YyB9fSwKLSB7MTYsIDB4Y2JmMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDQ4LDB4MTEsMHg4MiwweDA0LDB4MzAgfX0sCi0gezE2LCAweGNjMDAsIDAsIHsweDgxLDB4OGQsMHgyMCwweDQ2LDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MGMsMHgxMCwweGMwIH19LAotIHsxNiwgMHhjYzEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4Y2MyMCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDEwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAgfX0sCi0gezE2LCAweGNjMzAsIDAsIHsweDA4LDB4MDAsMHgwMywweDAwLDB4MDAsMHg4MCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjYzQwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2M1MCwgMCwgezB4NDAsMHgwMCwweDAyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMSwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMgfX0sCi0gezE2LCAweGNjNjAsIDAsIHsweDIwLDB4MDMsMHgwOCwweDAwLDB4YzIsMHgwNCwweDMwLDB4YzEsMHgwYywweDIwLDB4MDMsMHgwYywweDEwLDB4YzIsMHgwMCwweDMwIH19LAotIHsxNiwgMHhjYzcwLCAwLCB7MHg4MCwweDBjLDB4YjAsMHg0MywweDA4LDB4MDAsMHhjMiwweDAwLDB4MzAsMHg4MCwweDBjLDB4MjAsMHgwMywweDI4LDB4MTAsMHhjMCB9fSwKLSB7MTYsIDB4Y2M4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfX0sCi0gezE2LCAweGNjOTAsIDAsIHsweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxIH19LAotIHsxNiwgMHhjY2EwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4Y2NiMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDBjLDB4MTEsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjYzAsIDAsIHsweDQwLDB4MDEsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4IH19LAotIHsxNiwgMHhjY2QwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4Y2NlMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDAxLDB4NDIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwIH19LAotIHsxNiwgMHhjZDAwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHhjMSB9fSwKLSB7MTYsIDB4Y2QxMCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MGMsMHgxMCwweGMyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgzMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGNkMjAsIDAsIHsweDYwLDB4ODEsMHgxOCwweDIwLDB4NDYsMHgwOCwweDEwLDB4ODAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZDMwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDAsMHgxNCB9fSwKLSB7MTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDAwLDB4NTAsMHgwMCwweDA0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTAgfX0sCi0gezE2LCAweGNkNTAsIDAsIHsweDAwLDB4MTQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwMCwweDQ1LDB4MDAsMHgwMCwweDQyIH19LAotIHsxNiwgMHhjZDYwLCAwLCB7MHgwMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4Y2Q3MCwgMCwgezB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAgfX0sCi0gezE2LCAweGNkODAsIDAsIHsweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwIH19LAotIHsxNiwgMHhjZDkwLCAwLCB7MHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2RhMCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMSwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAgfX0sCi0gezE2LCAweGNkYjAsIDAsIHsweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIxLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwIH19LAotIHsxNiwgMHhjZGMwLCAwLCB7MHg4MCwweDQwLDB4MzAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MTQsMHgwMCB9fSwKLSB7MTYsIDB4Y2RkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfX0sCi0gezE2LCAweGNkZTAsIDAsIHsweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwIH19LAotIHsxNiwgMHhjZGYwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxMCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDQwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9fSwKLSB7MTYsIDB4Y2UwMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlMTAsIDAsIHsweDAwLDB4MDEsMHg0NiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHgwNywweDE4LDB4MTEsMHhjZSwweDA0LDB4NzEsMHg4MSwweDFjIH19LAotIHsxNiwgMHhjZTIwLCAwLCB7MHg2MCwweDQ3LDB4MTgsMHgwMSwweGM2LDB4MDQsMHg3MSwweDgxLDB4OWMsMHg2MCwweDQ3LDB4MTgsMHgxOSwweGM2LDB4MDQsMHg3MSB9fSwKLSB7MTYsIDB4Y2UzMCwgMCwgezB4ODAsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NDcsMHgxOCwweDExLDB4YzAgfX0sCi0gezE2LCAweGNlNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4NDYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwIH19LAotIHsxNiwgMHhjZTUwLCAwLCB7MHgyNywweDE4LDB4MDksMHhjNiwweDA2LDB4NzEsMHg4MCwweDFjLDB4NjAsMHgyNywweDE4LDB4MDksMHhjNiwweDAxLDB4MzEsMHg4MCB9fSwKLSB7MTYsIDB4Y2U2MCwgMCwgezB4MWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MTIgfX0sCi0gezE2LCAweGNlNzAsIDAsIHsweDcxLDB4ODAsMHg5YywweDYwLDB4MzMsMHgxOCwweDAxLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZTgwLCAwLCB7MHg1MCwweDQ1LDB4NDYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODAsMHg1YyB9fSwKLSB7MTYsIDB4Y2U5MCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDAxLDB4MzEsMHg4MSwweDBjLDB4NjAsMHgxNywweDE4LDB4MTAsMHhjNiwweDA1LDB4NzEgfX0sCi0gezE2LCAweGNlYTAsIDAsIHsweDgxLDB4NWMsMHg2MCwweDAzLDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDUzLDB4MTgsMHgxOCwweDgyIH19LAotIHsxNiwgMHhjZWIwLCAwLCB7MHgxMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0MCwweDEyLDB4MDEsMHgyNCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4Y2VjMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDI0LDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGNlZDAsIDAsIHsweDU4LDB4MjAsMHg1MiwweDBjLDB4MDUsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ5LDB4MjAsMHgwMiwweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjZWUwLCAwLCB7MHgyMCwweDgwLDB4NDksMHgyMCwweDEyLDB4NDgsMHgwNCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2VmMCwgMCwgezB4NDAsMHgwNCwweDA2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDQsMHg2MSwweDgwLDB4MTggfX0sCi0gezE2LCAweGNmMDAsIDAsIHsweDYwLDB4MDYsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODEsMHg0OCwweDYwLDB4MDYsMHgxOCwweDE0LDB4ODYsMHgwMCwweDYxIH19LAotIHsxNiwgMHhjZjEwLCAwLCB7MHg4MCwweDE4LDB4NjAsMHg0MiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAsMHgwNiwweDE4LDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4Y2YyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg2MCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAgfX0sCi0gezE2LCAweGNmMzAsIDAsIHsweDQ3LDB4ODAsMHgxMSwweGU4LDB4MDAsMHg3OCwweDAxLDB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGUwLDB4MDQsMHg3OCwweDAxIH19LAotIHsxNiwgMHhjZjQwLCAwLCB7MHgxZSwweDAwLDB4NDMsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEsMHgxZSwweDAwLDB4MDMsMHg4MCwweDE1LDB4ZTAsMHgwNCB9fSwKLSB7MTYsIDB4Y2Y1MCwgMCwgezB4NzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhjMCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmNjAsIDAsIHsweDQwLDB4MDEsMHgxMiwweDAwLDB4NjQsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjQsMHg4MCwweDE4IH19LAotIHsxNiwgMHhjZjcwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2Y4MCwgMCwgezB4ODAsMHgxOSwweDMwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOSwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNmOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH19LAotIHsxNiwgMHhjZmEwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDAwLDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9fSwKLSB7MTYsIDB4Y2ZiMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGNmYzAsIDAsIHsweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZmQwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDExLDB4MDIsMHgwMCwweDQwLDB4ODEsMHgxMCB9fSwKLSB7MTYsIDB4Y2ZlMCwgMCwgezB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDA4LDB4MDEsMHgwMiwweDA0LDB4NDAgfX0sCi0gezE2LCAweGNmZjAsIDAsIHsweDgxLDB4MTAsMHgyMSwweDAwLDB4MGMsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDQ0LDB4MDgsMHgwMSwweDAwIH19LAotIHsxNiwgMHhkMDAwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDAzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCB9fSwKLSB7MTYsIDB4ZDAxMCwgMCwgezB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAgfX0sCi0gezE2LCAweGQwMjAsIDAsIHsweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwIH19LAotIHsxNiwgMHhkMDMwLCAwLCB7MHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDA0LDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA5LDB4MDAsMHg0MiwweDAxLDB4MTAgfX0sCi0gezE2LCAweGQwNTAsIDAsIHsweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyIH19LAotIHsxNiwgMHhkMDYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MTEsMHgwMCB9fSwKLSB7MTYsIDB4ZDA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweGQwODAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4MDAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDAsMHgwMCwweDgwIH19LAotIHsxNiwgMHhkMDkwLCAwLCB7MHg4MCwweGEwLDB4MDAsMHgwYSwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDM0LDB4NjIsMHgyOCwweDA4LDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MzAsMHgyMCwweDBjLDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwYjAsIDAsIHsweDQwLDB4MDEsMHg0MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMywweDE4IH19LAotIHsxNiwgMHhkMGMwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDYsMHg2MCwweDAxLDB4OTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCB9fSwKLSB7MTYsIDB4ZDBkMCwgMCwgezB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAgfX0sCi0gezE2LCAweGQwZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MDAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDAwIH19LAotIHsxNiwgMHhkMGYwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MCwweDAyLDB4NjQsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTksMHg5MCwweDAyLDB4NjAsMHgwMCB9fSwKLSB7MTYsIDB4ZDEwMCwgMCwgezB4MWQsMHgwMCwweDI2LDB4MDAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAwLDB4OTksMHgwMCwweDA2LDB4NDAsMHgxOSwweDgwLDB4MDIgfX0sCi0gezE2LCAweGQxMTAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4NjYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTIwLCAwLCB7MHg0MCwweDQ1LDB4NjAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDEwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSB9fSwKLSB7MTYsIDB4ZDEzMCwgMCwgezB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDFhLDB4MDAsMHg0MywweDgwLDB4MTEsMHhhMCwweDA0LDB4MzggfX0sCi0gezE2LCAweGQxNDAsIDAsIHsweDAxLDB4MGUsMHgwMCwweDAyLDB4ODAsMHg0MCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQzLDB4ODAsMHgxOCwweDgwIH19LAotIHsxNiwgMHhkMTUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwNCwweDAxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHgxMCB9fSwKLSB7MTYsIDB4ZDE2MCwgMCwgezB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4YzEsMHgwMCwweDMwLDB4NDAgfX0sCi0gezE2LCAweGQxNzAsIDAsIHsweDA4LDB4MTAsMHgwMywweDA0LDB4MDAsMHg4MSwweDAwLDB4MzAsMHg0MCwweDBjLDB4NzgsMHgwMiwweDE0LDB4MDAsMHhjMSwweDAwIH19LAotIHsxNiwgMHhkMTgwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDE5MCwgMCwgezB4NDAsMHgwMCwweDA1LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg1MCwweDAzLDB4MTQsMHgwMCwweGM1LDB4MDAsMHgzNSwweDQwLDB4MGMgfX0sCi0gezE2LCAweGQxYTAsIDAsIHsweDUwLDB4MDMsMHgxNCwweDEwLDB4ZDUsMHgwMCwweDMxLDB4NDEsMHgwZCwweDUwLDB4MDMsMHgxNCwweDEwLDB4YzUsMHgwMCwweDMxIH19LAotIHsxNiwgMHhkMWIwLCAwLCB7MHg0MCwweDBkLDB4NDgsMHg0MywweDU0LDB4MTAsMHhjNSwweDAwLDB4MzEsMHg0MCwweDBjLDB4NDAsMHg0MywweDEwLDB4MDAsMHhjMiB9fSwKLSB7MTYsIDB4ZDFjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MywweDA0LDB4NjAsMHhjMSwweDE4LDB4MzAgfX0sCi0gezE2LCAweGQxZDAsIDAsIHsweDQ2LDB4MGMsMHgxMSwweDgzLDB4MDQsMHg2MSwweGMxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgwMSwweDg3LDB4MDQsMHg2MCwweGMxIH19LAotIHsxNiwgMHhkMWUwLCAwLCB7MHgxOCwweDMwLDB4NDYsMHgwOCwweDExLDB4ODMsMHgwNCwweDYwLDB4YzEsMHgxOCwweDIwLDB4MDYsMHgwYywweDAxLDB4ODMsMHgwNCB9fSwKLSB7MTYsIDB4ZDFmMCwgMCwgezB4NjAsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHg4MCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyMDAsIDAsIHsweDQwLDB4MDEsMHg0MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhkMjEwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyMCwweDAwLDB4MDgsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZDIyMCwgMCwgezB4MDAsMHgwOCwweDQwLDB4NDMsMHgzMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGQyMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0IH19LAotIHsxNiwgMHhkMjQwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjMsMHgwMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MDEsMHg4OCwweDA0LDB4NjIsMHgxMSB9fSwKLSB7MTYsIDB4ZDI1MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MjEsMHgxMCwweGM4LDB4NDQsMHg2MiwweDExLDB4MTgsMHgwNSwweDQzLDB4MDEsMHg4MSwweDg4LDB4NDQgfX0sCi0gezE2LCAweGQyNjAsIDAsIHsweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMjcwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDA0LDB4NDUsMHgwMSwweDExLDB4NDAsMHg0NCwweDUwLDB4MDEsMHgxNCB9fSwKLSB7MTYsIDB4ZDI4MCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MDEsMHg0MCwweDQ1LDB4MDAsMHgxMCwweDE0LDB4MDQsMHg0NSwweDAzLDB4MDAsMHg0MCwweDQ0LDB4NTAgfX0sCi0gezE2LCAweGQyOTAsIDAsIHsweDExLDB4MTQsMHgwNCwweDAxLDB4MDUsMHg0MSwweDQwLDB4NDQsMHg1MCwweDExLDB4MTQsMHgwNCwweDA1LDB4MDEsMHgwMSwweDQwIH19LAotIHsxNiwgMHhkMmEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiB9fSwKLSB7MTYsIDB4ZDJiMCwgMCwgezB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDggfX0sCi0gezE2LCAweGQyYzAsIDAsIHsweDEwLDB4ODIsMHgwNSwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4OGEsMHgwNSwweDIwLDB4MDUsMHgwOCwweDIwIH19LAotIHsxNiwgMHhkMmQwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjIsMHg4MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAyLDB4MDEsMHgwMiwweDgwLDB4NDAgfX0sCi0gezE2LCAweGQyZjAsIDAsIHsweGEwLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MDAsMHgyOSwweDA0LDB4MGEsMHgwMSwweDAyIH19LAotIHsxNiwgMHhkMzAwLCAwLCB7MHg4MCwweDQwLDB4YTQsMHgwMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTgsMHgxMCwweDJiLDB4MTQsMHgwMCB9fSwKLSB7MTYsIDB4ZDMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAgfX0sCi0gezE2LCAweGQzMjAsIDAsIHsweDM1LDB4MzQsMHgwZCwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCwweDM1LDB4MzQsMHgwZCwweDRkLDB4MDMsMHg1MywweDQwIH19LAotIHsxNiwgMHhkMzMwLCAwLCB7MHhkNCwweGQwLDB4MjEsMHgzNCwweDRkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQ5LDB4NjEsMHgzNCwweDA0LDB4MGQsMHgwMyB9fSwKLSB7MTYsIDB4ZDM0MCwgMCwgezB4NTMsMHg0MCwweGMwLDB4ZDgsMHgzNSwweDM3LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzNTAsIDAsIHsweDQwLDB4MDEsMHg0OCwweDA0LDB4NzIsMHgwMCwweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjIH19LAotIHsxNiwgMHhkMzYwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAwLDB4OWMsMHg4MCwweDQ3LDB4MjAsMHgxOSwweGM4LDB4MDAsMHg3MiB9fSwKLSB7MTYsIDB4ZDM3MCwgMCwgezB4MDEsMHgxYywweDg4LDB4NjcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgyLDB4NDcsMHgyMiwweDExLDB4YzAgfX0sCi0gezE2LCAweGQzODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgwOCwweDQ4LDB4YzIsMHgxMiwweDMxIH19LAotIHsxNiwgMHhkMzkwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgyMywweDEwLDB4NDAsMHhjMCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDEwLDB4NDgsMHhjNCB9fSwKLSB7MTYsIDB4ZDNhMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4OGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg0MSwweDIzLDB4MTggfX0sCi0gezE2LCAweGQzYjAsIDAsIHsweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHg4YywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkM2MwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9fSwKLSB7MTYsIDB4ZDNkMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfX0sCi0gezE2LCAweGQzZTAsIDAsIHsweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhkZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDAwIH19LAotIHsxNiwgMHhkM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQzMCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIgfX0sCi0gezE2LCAweGQ0NDAsIDAsIHsweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiIH19LAotIHsxNiwgMHhkNDUwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NGMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgwMCB9fSwKLSB7MTYsIDB4ZDQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDVjLDB4NGMsMHhkNywweDEzLDB4MzMgfX0sCi0gezE2LCAweGQ0NzAsIDAsIHsweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2EsMHg0YSwweGQ2LDB4OTMsMHgzMywweGM0LDB4Y2MsMHhmMSwweDJiLDB4M2EsMHg0YywweGNmIH19LAotIHsxNiwgMHhkNDgwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YTQsMHhhYywweGM5LDB4MzMsMHgzYyB9fSwKLSB7MTYsIDB4ZDQ5MCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzUsMHhjNCwweGNkLDB4NjksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0YTAsIDAsIHsweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjcsMHhlNCwweGVkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzIH19LAotIHsxNiwgMHhkNGIwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4ZWQsMHhlMSwweDNiLDB4N2UsMHg0ZSB9fSwKLSB7MTYsIDB4ZDRjMCwgMCwgezB4ZGYsMHg5MiwweDMxLDB4ODQsMHg4ZCwweGQ5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlYywweDYxLDB4MDAgfX0sCi0gezE2LCAweGQ0ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NCwweDA0LDB4YTEsMHg4MywweDJjIH19LAotIHsxNiwgMHhkNGUwLCAwLCB7MHgwMywweDBhLDB4MTAsMHg4MiwweGMxLDB4MzQsMHgxMCwweDhmLDB4MDAsMHg0MCwweDA5LDB4MTQsMHgwMiwweDAzLDB4MTQsMHg5MSB9fSwKLSB7MTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgwOCwweDQyLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweDMxLDB4Y2EsMHgwYywweDUyLDB4MDIsMHgxMCwweDgwLDB4ODUgfX0sCi0gezE2LCAweGQ1MDAsIDAsIHsweDAwLDB4MjEsMHg4MiwweDI4LDB4NDAsMHgwYSwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTEwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwNCwweDAyLDB4MDEsMHg0MCwweDgwLDB4NzMsMHgyOCwweDEwLDB4NDgsMHgwNywweDA2LDB4MDEsMHgwNCB9fSwKLSB7MTYsIDB4ZDUyMCwgMCwgezB4YTQsMHg0MSwweDIxLDB4MTQsMHgwOCwweDQ0LDB4MDYsMHgxMSwweDQwLDB4ODAsMHg3MCwweDIwLDB4MTQsMHgwYSwweDA0LDB4MDIgfX0sCi0gezE2LCAweGQ1MzAsIDAsIHsweDAwLDB4YzgsMHg4NCwweDQxLDB4MjEsMHgxYywweDA4LDB4MDYsMHgxMiwweDAxLDB4YzAsMHg4MCwweDYwLDB4MjAsMHgxNCwweDAwIH19LAotIHsxNiwgMHhkNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODQsMHgwNCwweDIxLDB4ODIsMHgwOCB9fSwKLSB7MTYsIDB4ZDU1MCwgMCwgezB4NTMsMHgwMiwweDEwLDB4ODAsMHhjNSwweDAwLDB4ODEsMHg0YSwweDA0LDB4NDIsMHgwMiwweDE0LDB4MDAsMHgwNCwweDIwLDB4MjEgfX0sCi0gezE2LCAweGQ1NjAsIDAsIHsweDgwLDB4YTgsMHg3MiwweDIyLDB4MWMsMHg4OCwweGM0LDB4MDYsMHhhMSwweDQyLDB4OGMsMHg1MiwweDIyLDB4MWMsMHg4OCwweDg1IH19LAotIHsxNiwgMHhkNTcwLCAwLCB7MHgyNiwweDIxLDB4YzAsMHg4OCwweDUwLDB4MjIsMHgxOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDU4MCwgMCwgezB4MDAsMHgwMCwweDAyLDB4NDQsMHgwMCwweDAxLDB4MDEsMHgwMCwweDYyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDEgfX0sCi0gezE2LCAweGQ1OTAsIDAsIHsweDIwLDB4NDAsMHgwMCwweDFjLDB4MDAsMHg0NCwweDA0LDB4MDEsMHgwMiwweDIwLDB4NjIsMHgwMCwweDFjLDB4ODAsMHgwNCwweDA0IH19LAotIHsxNiwgMHhkNWEwLCAwLCB7MHg4MCwweDg5LDB4MjAsMHg1MCwweDA4LDB4MTQsMHg4MCwweDA0LDB4MjQsMHgwMSwweGMxLDB4MDAsMHg1MCwweDAwLDB4MTgsMHgwMCB9fSwKLSB7MTYsIDB4ZDViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDgwLDB4MzgsMHgyMCwweDA0LDB4MGMgfX0sCi0gezE2LCAweGQ1YzAsIDAsIHsweDMxLDB4MGEsMHgwMCwweDAwLDB4MDIsMHgxOCwweDIwLDB4OGMsMHhhOCwweDEwLDB4MjgsMHgwOCwweDg4LDB4YzEsMHgxNCwweDEwIH19LAotIHsxNiwgMHhkNWQwLCAwLCB7MHhjNiwweDAwLDB4MjIsMHgwMywweDA4LDB4MDIsMHgwMSwweDA4LDB4YjAsMHgwMCwweDBjLDB4MjEsMHgwMiwweDAwLDB4ODIsMHg4MCB9fSwKLSB7MTYsIDB4ZDVlMCwgMCwgezB4MDgsMHgwMCwweDQ5LDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHg4MCwweDA4LDB4MjAsMHgwMywweDAwLDB4MDQsMHgwMiwweDQzLDB4MjAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhkNjAwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwNCwweDQyLDB4MDEsMHgxMCwweDgwLDB4ODQsMHgyMCwweDExLDB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDYxMCwgMCwgezB4MDAsMHg0NCwweDI0LDB4MjAsMHgwOSwweDA4LDB4NDAsMHgwMywweDAwLDB4OTAsMHhjNCwweDIwLDB4MjAsMHgwOCwweDBjLDB4MDIgfX0sCi0gezE2LCAweGQ2MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHg4MSwweDA4LDB4MjAsMHgwNCwweDg4IH19LAotIHsxNiwgMHhkNjMwLCAwLCB7MHgwMiwweDIyLDB4MDgsMHgwOCwweGMzLDB4MmEsMHg5MCwweDQwLDB4ODQsMHgxMCwweDIwLDB4MDQsMHg4MCwweGMyLDB4MjYsMHgyMCB9fSwKLSB7MTYsIDB4ZDY0MCwgMCwgezB4NDksMHg4OCwweDIyLDB4MjIsMHgwYywweDA4LDB4YzEsMHgyNiwweGEwLDB4YzksMHg4YywweDEyLDB4MmEsMHgwNCwweDg4LDB4NDMgfX0sCi0gezE2LCAweGQ2NTAsIDAsIHsweDBlLDB4YTAsMHhjYiwweDg4LDB4MTAsMHgyMiwweDBjLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjYwLCAwLCB7MHgwOCwweDAwLDB4MGEsMHg0MCwweDMyLDB4MDAsMHgwMSwweDgwLDB4MzEsMHgyOCwweDAwLDB4MDAsMHgwMSwweDEyLDB4ODAsMHg4ZCB9fSwKLSB7MTYsIDB4ZDY3MCwgMCwgezB4ODQsMHgwMCwweDI4LDB4MGMsMHgwOCwweDAxLDB4MzIsMHgwMCwweDhjLDB4ODAsMHgwMiwweDIwLDB4MGMsMHgwOCwweDAxLDB4MmUgfX0sCi0gezE2LCAweGQ2ODAsIDAsIHsweDAwLDB4YzMsMHg4MCwweDAyLDB4MjAsMHgwNCwweDA4LDB4NDMsMHgwMiwweDAwLDB4NDAsMHg4MCwweDEwLDB4MjAsMHgwNCwweDAyIH19LAotIHsxNiwgMHhkNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4ODcsMHgwYSwweDIxLDB4MDQsMHg4OCB9fSwKLSB7MTYsIDB4ZDZhMCwgMCwgezB4MTEsMHgyYSwweDFjLDB4MGEsMHgwNiwweDIyLDB4MjEsMHg0MCwweGEwLDB4NDIsMHgyYSwweDEwLDB4ODgsMHg4NSwweDBhLDB4YTEgfX0sCi0gezE2LCAweGQ2YjAsIDAsIHsweDA2LDB4YTQsMHg2MiwweDIyLDB4MWMsMHgwYSwweGM0LDB4MDIsMHgyMSwweDgwLDB4OGMsMHg1MiwweDIyLDB4MTQsMHg0OCwweDg2IH19LAotIHsxNiwgMHhkNmMwLCAwLCB7MHgyMiwweDIwLDB4MDgsMHhhOCwweDYwLDB4MmEsMHgxNCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDZkMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4NDUsMHgwNiwweDAxLDB4ODksMHg4MCwweDYzLDB4MjAsMHgxYywweDg4LDB4NDAsMHgzNCwweDExLDB4MDEgfX0sCi0gezE2LCAweGQ2ZTAsIDAsIHsweGE0LDB4NTAsMHgyOCwweDE4LDB4NDgsMHgwNCwweDBlLDB4MDEsMHg0YiwweDgwLDB4NzMsMHgyOCwweDFjLDB4OGEsMHgwNCwweDA2IH19LAotIHsxNiwgMHhkNmYwLCAwLCB7MHg5MSwweDQ5LDB4MDQsMHg2MywweDIwLDB4MWMsMHg4YSwweDA2LDB4MjYsMHgwMSwweDg1LDB4ODAsMHg3MCwweDIwLDB4MTgsMHgwMiB9fSwKLSB7MTYsIDB4ZDcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDg1LDB4MDAsMHhiMSwweDQ1LDB4MmMgfX0sCi0gezE2LCAweGQ3MTAsIDAsIHsweDcwLDB4MDIsMHgxNCwweGMwLDB4MDcsMHgwOCwweDIxLDB4NDksMHgwMCwweDQyLDB4MDEsMHgxNCwweDgyLDB4MDUsMHgwMCwweDExIH19LAotIHsxNiwgMHhkNzIwLCAwLCB7MHg4NCwweDAwLDB4NTIsMHgwMiwweDFjLDB4MDAsMHhjNCwweDAwLDB4MjEsMHhjNCwweDJjLDB4NTMsMHgwMiwweDFjLDB4MDIsMHg4MSB9fSwKLSB7MTYsIDB4ZDczMCwgMCwgezB4MDQsMHhhMSwweGNkLDB4MDgsMHg1MCwweDAyLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3NDAsIDAsIHsweDA4LDB4MTAsMHgxMiwweDA0LDB4MzQsMHgwMSwweGNjLDB4MDAsMHg3MywweDQwLDB4MWMsMHg5MCwweDQ1LDB4MDQsMHgwMSwweDQ4IH19LAotIHsxNiwgMHhkNzUwLCAwLCB7MHgwNCwweDYwLDB4NDEsMHgxOCwweGMwLDB4NDQsMHgwNCwweDAxLDB4MDUsMHgwNCwweDczLDB4NDgsMHgxNCwweDUwLDB4NDcsMHgzNCB9fSwKLSB7MTYsIDB4ZDc2MCwgMCwgezB4MDEsMHg0NSwweDIwLDB4NjIsMHgwOCwweDFjLDB4YzIsMHgwNCwweDBjLDB4ODEsMHhjNywweDAwLDB4NzMsMHg4MCwweDE4LDB4YzIgfX0sCi0gezE2LCAweGQ3NzAsIDAsIHsweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MTAsMHg4NCwweDEwLDB4MjEsMHhjYywweDI4IH19LAotIHsxNiwgMHhkNzgwLCAwLCB7MHg0MiwweDAyLDB4MTQsMHgxMiwweGM1LDB4MTAsMHgyMSwweDg0LDB4MDQsMHg0MCwweDAwLDB4MWMsMHg4MCwweDg0LDB4MDAsMHg5MSB9fSwKLSB7MTYsIDB4ZDc5MCwgMCwgezB4MDAsMHgwOCwweDczLDB4ODIsMHgxYywweDkwLDB4MDUsMHgwYywweDAxLDB4Y2YsMHgwYywweDQwLDB4MDIsMHgxNCwweDMwLDB4NDUgfX0sCi0gezE2LCAweGQ3YTAsIDAsIHsweDIwLDB4YTEsMHhjMCwweDA4LDB4NTAsMHgwMiwweDEwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDBjLDB4ODEsMHgwMCwweDAwLDB4MDEsMHgwOCwweDA4LDB4MDAsMHgwNSwweDE4LDB4OTEsMHgwNSB9fSwKLSB7MTYsIDB4ZDdjMCwgMCwgezB4MDQsMHgwMCwweDAxLDB4MDQsMHg0MCwweDA2LDB4MTgsMHgwMCwweDAyLDB4MjQsMHg3MCwweDQwLDB4MDQsMHgwMCwweDQwLDB4MDAgfX0sCi0gezE2LCAweGQ3ZDAsIDAsIHsweDAxLDB4YzQsMHgyNCwweDAwLDB4ODgsMHgwNCwweDAwLDB4NDMsMHgxMCwweDAwLDB4NDAsMHgyMCwweDAwLDB4ODgsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4ODUsMHgyNCwweDMxLDB4MDIsMHgwYyB9fSwKLSB7MTYsIDB4ZDdmMCwgMCwgezB4MDIsMHhjMiwweDA0LDB4MTAsMHhjNCwweDI4LDB4MjEsMHg0OSwweDBjLDB4MDIsMHhjMCwweDA0LDB4YjIsMHgwNiwweDFjLDB4MjAgfX0sCi0gezE2LCAweGQ4MDAsIDAsIHsweDAzLDB4MDgsMHg1MCwweDQyLDB4MGMsMHg4MCwweDAxLDB4MDQsMHhhMSwweDQ5LDB4MGMsMHgwMCwweGMyLDB4MGMsMHgxMCwweDQzIH19LAotIHsxNiwgMHhkODEwLCAwLCB7MHgyNCwweGEwLDB4YzEsMHgwOCwweDEwLDB4NDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDgyMCwgMCwgezB4MDAsMHgxMCwweGEyLDB4MDAsMHgyMCwweDAwLDB4Y2QsMHgwMCwweDAwLDB4NDAsMHgwNCwweDIwLDB4MDEsMHgxMCwweDAwLDB4MDkgfX0sCi0gezE2LCAweGQ4MzAsIDAsIHsweDA0LDB4MDIsMHg0OSwweDBjLDB4OTIsMHgwNywweDMwLDB4MDAsMHgwMCwweDAwLDB4MzMsMHgwOCwweDBjLDB4OTIsMHg0MSwweDAwIH19LAotIHsxNiwgMHhkODQwLCAwLCB7MHg4MCwweGNjLDB4MDAsMHgwMCwweDAwLDB4MGMsMHgwMCwweDQzLDB4MjgsMHg4MCwweGMyLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDg1MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDEwLDB4NTAsMHg4MCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4NjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweGYwLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGQwLDB4ODAsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCB9fSwKLSB7MTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4OTAsIDAsIHsweDNjLDB4M2MsMHgxMCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweGEwLDB4ODAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOGEwLCAwLCB7MHgwMCwweDAwLDB4NDAsMHgxMCwweDkwLDB4ODAsMHhhMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweDkwLDB4ODAsMHhhMCB9fSwKLSB7MTYsIDB4ZDhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDEwLDB4OTAsMHhhMCwweGEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OGYgfX0sCi0gezE2LCAweGQ4YzAsIDAsIHsweDBmLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmMsMHhjMiwweGU0LDB4ODEsMHg4MCwweDNmIH19LAotIHsxNiwgMHhkOGQwLCAwLCB7MHhkOSwweGJmLDB4ZDksMHg5OCwweDcxLDB4OWQsMHg0MiwweDgwLDB4MDAsMHgyNiwweDdmLDB4ZTYsMHg3MiwweGFiLDB4N2MsMHgzYSB9fSwKLSB7MTYsIDB4ZDhlMCwgMCwgezB4NDAsMHgwMCwweDE5LDB4ODAsMHgyNiwweDQ4LDB4ZGQsMHgzYywweDkxLDB4YzAsMHgyNiwweDQwLDB4MjYsMHg0MCwweDM4LDB4MzEgfX0sCi0gezE2LCAweGQ4ZjAsIDAsIHsweGRiLDB4NjEsMHhjMCwweDE5LDB4OTksMHhiZiwweGM5LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOTAwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg4MCwweDEwLDB4MTQsMHg4MCwweDA2LDB4ODQsMHg5NywweDk2LDB4ODYsMHg5NiwweDA2LDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4ZDkxMCwgMCwgezB4M2YsMHhhMSwweDI4LDB4MDEsMHgwMiwweDkwLDB4MTIsMHgwMCwweDgwLDB4MTcsMHg4OCwweDE2LDB4OWUsMHg5MCwweDkwLDB4MDQgfX0sCi0gezE2LCAweGQ5MjAsIDAsIHsweDEwLDB4MDAsMHgzNiwweGJlLDB4YmUsMHg5ZSwweDg2LDB4MTYsMHgxMiwweDg0LDB4ODAsMHgxMywweGJlLDB4OTcsMHhhZSwweDgwIH19LAotIHsxNiwgMHhkOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4MiB9fSwKLSB7MTYsIDB4ZDk0MCwgMCwgezB4ODEsMHg4NCwweDIxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGExLDB4MzgsMHgwMSwweDc4LDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5NTAsIDAsIHsweDA4LDB4YjgsMHgyMSwweDcyLDB4NjgsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4OTgsMHg0NCwweDg4LDB4NjgsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkOTYwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhiOCwweDAxLDB4NzgsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDk3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcsMHhhZiwweGZmLDB4YzAgfX0sCi0gezE2LCAweGQ5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmIH19LAotIHsxNiwgMHhkOTkwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGQ5YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH19LAotIHsxNiwgMHhkOWMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9fSwKLSB7MTYsIDB4ZDlkMCwgMCwgezB4MmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5ZTAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhkOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9fSwKLSB7MTYsIDB4ZGEwMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGRmLDB4YmYsMHhkZiB9fSwKLSB7MTYsIDB4ZGEzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGZmLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYgfX0sCi0gezE2LCAweGRhNDAsIDAsIHsweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTUwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHgzZSwweGFmLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4ZGE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGU3LDB4ZmUgfX0sCi0gezE2LCAweGRhNzAsIDAsIHsweGVmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZGE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmNywweGZmLDB4ZmYgfX0sCi0gezE2LCAweGRhYTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGZmLDB4ZmYsMHhkZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGY3IH19LAotIHsxNiwgMHhkYWIwLCAwLCB7MHhkZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFjMCwgMCwgezB4MDAsMHgwMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4YzMsMHgyYywweDUwLDB4MDksMHgxNCwweDgyLDB4YzQsMHgzMCwweDkxLDB4YzcgfX0sCi0gezE2LCAweGRhZDAsIDAsIHsweDI0LDB4NjAsMHgwOCwweDFjLDB4ODIsMHgwNywweDM0LDB4OTEsMHg0YywweDA0LDB4NDMsMHgwYSwweDEwLDB4YzIsMHg4NCwweDA0IH19LAotIHsxNiwgMHhkYWUwLCAwLCB7MHg5MSwweDg0LDB4MjQsMHg1MiwweDBiLDB4MTgsMHgwMiwweGM0LDB4MjQsMHhiMSwweGMzLDB4MmMsMHg0MCwweDBhLDB4MTAsMHg4MCB9fSwKLSB7MTYsIDB4ZGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4MDIsMHgwMSwweGM0LDB4ODAgfX0sCi0gezE2LCAweGRiMDAsIDAsIHsweDYwLDB4MjAsMHgxYywweDA4LDB4NDQsMHgyMiwweDAxLDB4YzAsMHg4NCwweDUwLDB4MDEsMHg5YywweDA4LDB4MDcsMHgwYSwweDAxIH19LAotIHsxNiwgMHhkYjEwLCAwLCB7MHhjMCwweDg0LDB4NzIsMHgyMCwweDFjLDB4YzgsMHgwNCwweDEyLDB4MTEsMHg0NCwweDgwLDB4NDEsMHgwMSwweDFjLDB4ODAsMHgwNyB9fSwKLSB7MTYsIDB4ZGIyMCwgMCwgezB4MDgsMHgxMSwweGM0LDB4MDAsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDg2LDB4MmMsMHgyMSwweDRhLDB4MGMsMHg1MiwweDAyLDB4MWMsMHg4MCwweDA0LDB4MjAsMHgyMSwweGNhIH19LAotIHsxNiwgMHhkYjQwLCAwLCB7MHgxMCwweDYyLDB4MDIsMHgxYywweDgxLDB4NDcsMHgwNCwweDIxLDB4YzMsMHgyMCwweDUxLDB4MDEsMHgxYywweDgwLDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4ZGI1MCwgMCwgezB4MDEsMHhjYiwweDA0LDB4NTIsMHgwMywweDE0LDB4NDAsMHhjNywweDIwLDB4MzEsMHhjOCwweDBjLDB4NTAsMHgyMiwweDEwLDB4ODAgfX0sCi0gezE2LCAweGRiNjAsIDAsIHsweDAxLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDIwLDB4MDEsMHg4OSwweDAwIH19LAotIHsxNiwgMHhkYjcwLCAwLCB7MHg1MiwweDAwLDB4MTQsMHg4MCwweDA0LDB4MjgsMHgwMSwweDQ1LDB4MDQsMHg2MiwweDAwLDB4MTAsMHg4MCwweDQ2LDB4MzAsMHgxMSB9fSwKLSB7MTYsIDB4ZGI4MCwgMCwgezB4MGQsMHgwMCwweDQyLDB4MDEsMHgxNCwweGMwLDB4NDQsMHgwMCwweDExLDB4MDUsMHgwMCwweDUwLDB4MDAsMHgxYywweDAwLDB4NDQgfX0sCi0gezE2LCAweGRiOTAsIDAsIHsweDI4LDB4MDEsMHg0OSwweDAwLDB4NzAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYmEwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhjMCwweDAyLDB4MzAsMHgwYywweDhjLDB4MzAsMHgyMiwweDA4LDB4ODgsMHhjMiwweDI2LDB4MDAsMHgwOCB9fSwKLSB7MTYsIDB4ZGJiMCwgMCwgezB4ODAsMHgyMCwweDIyLDB4MGMsMHg4OCwweDgxLDB4MDIsMHgxMCwweGM0LDB4ODAsMHgxMCwweDIyLDB4MGMsMHgwOCwweDQwLDB4MDIgfX0sCi0gezE2LCAweGRiYzAsIDAsIHsweDEwLDB4NDgsMHg4OCwweDAxLDB4MjMsMHgwNCwweGM4LDB4NDIsMHgwMiwweDEwLDB4NDYsMHg4YywweDEyLDB4MjIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYmQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4YzgsMHgyMCB9fSwKLSB7MTYsIDB4ZGJlMCwgMCwgezB4MTEsMHgwOSwweDAwLDB4ODAsMHg0MSwweDEwLDB4OTAsMHgwOCwweDI0LDB4MzAsMHgwOCwweDA0LDB4NDIsMHg0MSwweDAwLDB4OTAgfX0sCi0gezE2LCAweGRiZjAsIDAsIHsweGM0LDB4MjAsMHgwMCwweDA4LDB4MDQsMHg0MiwweDAwLDB4MTAsMHg4MCwweDRjLDB4MjAsMHgyMywweDA5LDB4MDQsMHhjMiwweDQzIH19LAotIHsxNiwgMHhkYzAwLCAwLCB7MHgzMCwweDgwLDB4NDAsMHgyMCwweDExLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGMxMCwgMCwgezB4MDgsMHgwMCwweDA4LDB4ODEsMHgwMiwweDIwLDB4YzksMHg4YywweDEyLDB4MjAsMHgwNCwweDQ4LDB4NDEsMHgyMiwweDAwLDB4MDkgfX0sCi0gezE2LCAweGRjMjAsIDAsIHsweDg4LDB4MzAsMHgyMCwweDBjLDB4ODgsMHgwMywweDBlLDB4MDAsMHg0OSwweDhjLDB4MTAsMHgyMiwweDBjLDB4ODgsMHg0MCwweDJlIH19LAotIHsxNiwgMHhkYzMwLCAwLCB7MHgwMCwweGM5LDB4ODQsMHgxMywweDIxLDB4MDQsMHhjOCwweGMzLDB4MjIsMHgwMCwweGNiLDB4OGMsMHgzMiwweDIyLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGM0MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAxLDB4MDIsMHgwMCwweDRiLDB4ODAgfX0sCi0gezE2LCAweGRjNTAsIDAsIHsweDMyLDB4MjEsMHgwOCwweDg4LDB4NDEsMHgwMiwweDEwLDB4MGYsMHg4MCwweDEwLDB4MjEsMHg4YywweDA4LDB4NDEsMHgwMiwweDAwIH19LAotIHsxNiwgMHhkYzYwLCAwLCB7MHg4NywweDg0LDB4MTAsMHgyMCwweDA0LDB4ODgsMHgwMCwweDAyLDB4MDAsMHg0NywweDgwLDB4MTAsMHgyMSwweDBjLDB4ODgsMHg0MSB9fSwKLSB7MTYsIDB4ZGM3MCwgMCwgezB4MTYsMHgxMCwweDQ2LDB4ODAsMHgzMCwweDIwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjODAsIDAsIHsweDAwLDB4MDAsMHgwYSwweGM0LDB4MjIsMHhhMSwweDA4LDB4YTQsMHg3MiwweDJhLDB4MTQsMHgwYSwweDg1LDB4MDIsMHg4MSwweDg0IH19LAotIHsxNiwgMHhkYzkwLCAwLCB7MHhhMCwweDQyLDB4MjgsMHgxYywweDBhLDB4YzUsMHgwMiwweDkxLDB4NDAsMHhiOCwweDczLDB4MjksMHgxMCwweGNhLDB4YzQsMHgwMiB9fSwKLSB7MTYsIDB4ZGNhMCwgMCwgezB4YTEsMHg4MCwweGE0LDB4NDIsMHgyYSwweDE0LDB4Y2EsMHg4NSwweDIyLDB4OTEsMHg4MCwweGE4LDB4NzAsMHgyYSwweDE4LDB4MDIgfX0sCi0gezE2LCAweGRjYjAsIDAsIHsweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwNCwweDFlLDB4MDEsMHhjOCwweDgwIH19LAotIHsxNiwgMHhkY2MwLCAwLCB7MHg0MywweDIwLDB4MTgsMHgwOCwweDQ1LDB4M2UsMHgwMSwweDBjLDB4ODAsMHg2MSwweDIwLDB4OWMsMHg0OCwweDA2LDB4MTIsMHg4MSB9fSwKLSB7MTYsIDB4ZGNkMCwgMCwgezB4YzAsMHg4MCwweDczLDB4MDAsMHgxMCwweDg4LDB4MDYsMHgwMiwweDAxLDB4YzgsMHgwMCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MDcgfX0sCi0gezE2LCAweGRjZTAsIDAsIHsweDAyLDB4MTEsMHhjZCwweDgwLDB4NTEsMHgyMCwweDE0LDB4ODIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkY2YwLCAwLCB7MHgwOCwweDAwLDB4MDAsMHhjNCwweDI0LDB4MjEsMHhjOCwweDBjLDB4NDIsMHgwMSwweDE0LDB4MDAsMHgwMCwweDI4LDB4MTAsMHg0YyB9fSwKLSB7MTYsIDB4ZGQwMCwgMCwgezB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDQ1LDB4MjQsMHgyOSwweDQwLDB4MDQsMHg3MiwweDAwLDB4MTAsMHhjMCwweDA1LDB4MjQgfX0sCi0gezE2LCAweGRkMTAsIDAsIHsweDExLDB4NDQsMHgwOCwweDQzLDB4MDEsMHgxNCwweGMwLDB4NDcsMHgyNCwweDIwLDB4NDgsMHgwOCwweDcyLDB4MDIsMHgxMCwweDAwIH19LAotIHsxNiwgMHhkZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDAwLDB4MDcsMHgxMCwweDExLDB4MDYsMHgwMCB9fSwKLSB7MTYsIDB4ZGQzMCwgMCwgezB4NzIsMHgwMCwweDE4LDB4ZDAsMHg0NiwweDIwLDB4MDEsMHg0ZCwweDAwLDB4NzEsMHg0MCwweDEwLDB4NTAsMHgwNywweDMwLDB4MTEgfX0sCi0gezE2LCAweGRkNDAsIDAsIHsweGMzLDB4MDAsMHg3MSwweDQxLDB4MTAsMHhiMCwweDA1LDB4MmMsMHgwMSwweDQ5LDB4MDAsMHg0MywweDAwLDB4MWMsMHg1MCwweDQ1IH19LAotIHsxNiwgMHhkZDUwLCAwLCB7MHgzMCwweDAxLDB4OGMsMHgwMCwweDYxLDB4NDAsMHgxOCwweDQyLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ2MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4YzUsMHgwMCwweDIxLDB4YzAsMHgwYywweDQwLDB4MDEsMHgxNCwweDEyLDB4NDQsMHgwNCwweDMxLDB4ODQgfX0sCi0gezE2LCAweGRkNzAsIDAsIHsweDI0LDB4NDAsMHg4MCwweDE0LDB4YTEsMHhjNywweDAwLDB4MDEsMHg0MCwweDA4LDB4NDAsMHgwMSwweDE0LDB4MjAsMHgwNSwweDIwIH19LAotIHsxNiwgMHhkZDgwLCAwLCB7MHgxMSwweGMwLDB4MDIsMHg2MCwweDgyLDB4MTgsMHgwMCwweDg3LDB4MjQsMHgxMSwweDQwLDB4MDgsMHg0MCwweDQyLDB4MTAsMHgwMiB9fSwKLSB7MTYsIDB4ZGQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MGMsMHg4MCwweGM0LDB4MjQgfX0sCi0gezE2LCAweGRkYTAsIDAsIHsweDMxLDB4NDgsMHgwYywweDAwLDB4MDEsMHgwOCwweGMxLDB4NDEsMHgwMCwweDAwLDB4NDksMHgwMCwweDQyLDB4MDMsMHgwOCwweDEwIH19LAotIHsxNiwgMHhkZGIwLCAwLCB7MHg4MCwweDIwLDB4MjEsMHgwOSwweDBjLDB4MDIsMHgwMiwweDE4LDB4ODAsMHhjMSwweDI0LDB4MzAsMHgwOCwweDBjLDB4NDIsMHgwMSB9fSwKLSB7MTYsIDB4ZGRjMCwgMCwgezB4MTAsMHg4MCwweDgzLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkZDAsIDAsIHsweDAwLDB4MDAsMHgxMCwweGMxLDB4MDQsMHgyMCwweDQ4LDB4MGMsMHgxMiwweDQyLDB4MDQsMHgwMCwweDgzLDB4MDAsMHgzMSwweDQ4IH19LAotIHsxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDAyLDB4NDEsMHgwNCwweGEwLDB4MDcsMHgwYywweDIwLDB4NDAsMHgwMCwweDEyLDB4YzIsMHgwYywweDgwLDB4YzEsMHgyMCB9fSwKLSB7MTYsIDB4ZGRmMCwgMCwgezB4MjAsMHhjOCwweDAwLDB4MTIsMHhjMSwweDBjLDB4YjAsMHg0MSwweDIwLDB4MDAsMHg0OSwweDA4LDB4MDIsMHg0MiwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ODAsMHgwMSwweDAwLDB4MTAsMHg4MSwweDAwIH19LAotIHsxNiwgMHhkZTEwLCAwLCB7MHgzMCwweDQwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgxMCwweGMxLDB4MjAsMHgwMiwweDAwLDB4MDQsMHg4MCwweDQwLDB4MzAsMHg5MCB9fSwKLSB7MTYsIDB4ZGUyMCwgMCwgezB4MDEsMHgxNCwweDAyLDB4NDAsMHgwNCwweDgwLDB4NDAsMHgyMCwweDAwLDB4MDksMHgwNCwweDMyLDB4MDEsMHgwOCwweGEwLDB4MDMgfX0sCi0gezE2LCAweGRlMzAsIDAsIHsweDA0LDB4MTAsMHgwOCwweDAwLDB4MjIsMHg0MCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTQwLCAwLCB7MHgwMCwweDAwLDB4MzAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4ZjAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDAsMHhmMCwweDAwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4YTAgfX0sCi0gezE2LCAweGRlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweGYwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4ODAsMHgwMCwweGNjIH19LAotIHsxNiwgMHhkZTcwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2MsMHgzYywweDEwLDB4YTAsMHg4MCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU4MCwgMCwgezB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweGMwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGRlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwIH19LAotIHsxNiwgMHhkZWEwLCAwLCB7MHhlMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDhjLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGViMCwgMCwgezB4MDAsMHgwMCwweDA5LDB4NGQsMHhiMSwweGU5LDB4MDAsMHgyNiwweDQwLDB4MmEsMHg3ZiwweGUzLDB4ZjIsMHg1NCwweDk4LDB4YzAgfX0sCi0gezE2LCAweGRlYzAsIDAsIHsweDNmLDB4ZTYsMHg0MCwweDAwLDB4MDEsMHg0MiwweDkxLDB4ZDAsMHhjMCwweDEzLDB4ZTUsMHg4NywweDYzLDB4ODMsMHhiOCwweGNkIH19LAotIHsxNiwgMHhkZWQwLCAwLCB7MHhmOSwweDAwLDB4MjYsMHg3ZiwweDAwLDB4MDAsMHgzNSwweDJlLDB4ZDUsMHgwMywweDQwLDB4M2YsMHhkOSwweGJmLDB4YjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGVlMCwgMCwgezB4MDEsMHhmMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAyLDB4MTYsMHgxNCwweDAwLDB4MWMgfX0sCi0gezE2LCAweGRlZjAsIDAsIHsweGE4LDB4M2YsMHg4OCwweDE2LDB4MDAsMHg4MCwweDg0LDB4ODAsMHgzNywweDllLDB4YmEsMHhhMCwweDUwLDB4MTAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhkZjAwLCAwLCB7MHgwMCwweDE3LDB4OTYsMHg5NywweDI2LDB4NTAsMHgxMCwweDEwLDB4ODIsMHg4MCwweDFlLDB4ODAsMHhkZSwweGJlLDB4OTQsMHgxNCB9fSwKLSB7MTYsIDB4ZGYxMCwgMCwgezB4MDIsMHgxMCwweDgwLDB4MTcsMHhiZSwweDgxLDB4OTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTgsMHg0NCwweDk0LDB4MjgsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhkZjMwLCAwLCB7MHg5NCwweDIxLDB4NDQsMHg1MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCwweDQyLDB4NDEsMHgwMSwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgwOCwweGExLDB4NzIsMHgyMywweDQxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGI4LDB4MDEsMHg3OCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGRmNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGY3LDB4ZmUsMHhkNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZDcsMHhkZiB9fSwKLSB7MTYsIDB4ZGY3MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM3LDB4N2YgfX0sCi0gezE2LCAweGRmODAsIDAsIHsweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjkwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWUsMHhmZiwweGRlLDB4NzcsMHhjMCB9fSwKLSB7MTYsIDB4ZGZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGVmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfX0sCi0gezE2LCAweGRmYjAsIDAsIHsweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZGZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhjZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4YmYgfX0sCi0gezE2LCAweGRmZTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmIH19LAotIHsxNiwgMHhkZmYwLCAwLCB7MHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTAwMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAgfX0sCi0gezE2LCAweGUwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWYsMHhmZiwweDFmIH19LAotIHsxNiwgMHhlMDIwLCAwLCB7MHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGRmLDB4ZmYsMHhjZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGUwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4YmYsMHhhZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH19LAotIHsxNiwgMHhlMDUwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhkZSwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9fSwKLSB7MTYsIDB4ZTA2MCwgMCwgezB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwNzAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweDdmLDB4ZmYsMHhmZiwweGMwIH19LAotIHsxNiwgMHhlMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmUsMHhiZSB9fSwKLSB7MTYsIDB4ZTA5MCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhmZiwweGQ3LDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGUwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4OGUsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMiwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDMsMHg4MCB9fSwKLSB7MTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHg1ZiwweGE3LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMyB9fSwKLSB7MTYsIDB4ZmQ0MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEgfX0sCi0gezE2LCAweGZkODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDA1LDB4MzAsMHgwMCwweGEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAxIH19LAotIHsxNiwgMHhmZDkwLCAwLCB7MHgwMCwweDAwLDB4NmIsMHg5NywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7NCwgMHhmZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MCAsIDB4MDAwMCwgMSwgezB9fQotfTsKLS8vIFZFUlNJT049IDEuMC4wLjE5MQotLy8gREFURT0gMjAwMm9jdDI4Ci1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX0hleFNwZGlmRnc2MltdID0gewotICB7MywweDAwMDAsMCx7MHgwMiwweDQ1LDB4Zjl9fSwKLSB7IDMsMHgwMDAzLDAsezB4MDIsMHgwZiwweGZkfX0sCi0geyAzLDB4MDAwYiwwLHsweDAyLDB4NGQsMHg5Yn19LAotIHsgMywweDAwMTMsMCx7MHgwMiwweDE3LDB4ZmR9fSwKLSB7IDMsMHgwMDFiLDAsezB4MDIsMHg0ZCwweDllfX0sCi0geyAzLDB4MDAyMywwLHsweDAyLDB4NGQsMHg3NX19LAotIHsgMywweDAwMmIsMCx7MHgwMiwweDQ2LDB4Zjd9fSwKLSB7IDMsMHgwMDMzLDAsezB4MDIsMHg0ZCwweDZjfX0sCi0geyAzLDB4MDAzYiwwLHsweDAyLDB4NGQsMHg3Y319LAotIHsgMywweDAwNDMsMCx7MHgwMiwweDQ5LDB4MDB9fSwKLSB7IDMsMHgwMDRiLDAsezB4MDIsMHg0ZCwweDhmfX0sCi0geyAzLDB4MDA1MywwLHsweDAyLDB4NGQsMHg4M319LAotIHsgMywweDAwNWIsMCx7MHgwMiwweDRkLDB4ODl9fSwKLSB7IDMsMHgwMDYzLDAsezB4MDIsMHg0ZCwweDkzfX0sCi0gezE2LDB4MDUwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MTEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfX0sCi0gezE2LDB4MDUxMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4YWMsMHgwMSwweDAzLDB4MDEsMHgwMCwweDgwLDB4MzIsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MDUyMCwwLHsweDAxLDB4MDEsMHgwMCwweDAwLDB4MGEsMHgyNCwweDAxLDB4MDAsMHgwMSwweDU2LDB4MDAsMHgwMiwweDAxLDB4MDIsMHgwYywweDI0fX0sCi0gezE2LDB4MDUzMCwwLHsweDAyLDB4MDEsMHgwMSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgyNCwweDA2LDB4MDUsMHgwMSwweDAyfX0sCi0gezE2LDB4MDU0MCwwLHsweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgyNCwweDAzLDB4MDIsMHgwNCwweDAzLDB4MDAsMHgwNSwweDAwfX0sCi0gezE2LDB4MDU1MCwwLHsweDBjLDB4MjQsMHgwMiwweDAzLDB4MDUsMHgwMiwweDAwLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4MjQsMHgwNiwweDA2fX0sCi0gezE2LDB4MDU2MCwwLHsweDAzLDB4MDIsMHgwMCwweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwfX0sCi0gezE2LDB4MDU3MCwwLHsweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMCwweDAxfX0sCi0gezE2LDB4MDU4MCwwLHsweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAxLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxfX0sCi0gezE2LDB4MDU5MCwwLHsweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJifX0sCi0gezE2LDB4MDVhMCwwLHsweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxfX0sCi0gezE2LDB4MDViMCwwLHsweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNSwweDAwLDB4MDksMHgwNCwweDAxfX0sCi0gezE2LDB4MDVjMCwwLHsweDAyLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfX0sCi0gezE2LDB4MDVkMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fX0sCi0gezE2LDB4MDVlMCwwLHsweDBhLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1fX0sCi0gezE2LDB4MDVmMCwwLHsweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNSwweDAwLDB4MDksMHgwNCwweDAyLDB4MDAsMHgwMCwweDAxLDB4MDIsMHgwMCwweDAwfX0sCi0gezE2LDB4MDYwMCwwLHsweDA5LDB4MDQsMHgwMiwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwfX0sCi0gezE2LDB4MDYxMCwwLHsweDBlLDB4MjQsMHgwMiwweDAxLDB4MDYsMHgwMiwweDEwLDB4MDIsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwOSwweDA1fX0sCi0gezE2LDB4MDYyMCwwLHsweDhjLDB4MDUsMHg0YywweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0fX0sCi0gezE2LDB4MDYzMCwwLHsweDAyLDB4MDIsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0fX0sCi0gezE2LDB4MDY0MCwwLHsweDAyLDB4MDEsMHgwNiwweDAzLDB4MTgsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDUsMHg4YywweDA1fX0sCi0gezE2LDB4MDY1MCwwLHsweDcyLDB4MDMsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAzfX0sCi0gezE2LDB4MDY2MCwwLHsweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxfX0sCi0gezE2LDB4MDY3MCwwLHsweDAyLDB4MDIsMHgxMCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDhjfX0sCi0gezE2LDB4MDY4MCwwLHsweDA1LDB4ODQsMHgwMSwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyfX0sCi0gezE2LDB4MDY5MCwwLHsweDA0LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfX0sCi0gezE2LDB4MDZhMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fX0sCi0gezE2LDB4MDZiMCwwLHsweDhjLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwNCwweDAzfX0sCi0gezE2LDB4MDZjMCwwLHsweDA5LDB4MDQsMHgxOCwweDAzLDB4NDUsMHgwMCwweDZkLDB4MDAsMHg2MSwweDAwLDB4NjcsMHgwMCwweDY5LDB4MDAsMHg2MywweDAwfX0sCi0gezE2LDB4MDZkMCwwLHsweDIwLDB4MDAsMHg0NywweDAwLDB4NmQsMHgwMCwweDYyLDB4MDAsMHg0OCwweDAwLDB4MjIsMHgwMywweDQ1LDB4MDAsMHg2ZCwweDAwfX0sCi0gezE2LDB4MDZlMCwwLHsweDYxLDB4MDAsMHg2NywweDAwLDB4NjksMHgwMCwweDYzLDB4MDAsMHgyMCwweDAwLDB4NDUsMHgwMCwweDRkLDB4MDAsMHg0OSwweDAwfX0sCi0gezE2LDB4MDZmMCwwLHsweDIwLDB4MDAsMHgzNiwweDAwLDB4N2MsMHgwMCwweDMyLDB4MDAsMHgyMCwweDAwLDB4NmQsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwfX0sCi0gezE2LDB4MDcwMCwwLHsweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDAsMHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwfX0sCi0gezE2LDB4MDcxMCwwLHsweDc0LDB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwfX0sCi0gezE2LDB4MDcyMCwwLHsweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDMsMHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwfX0sCi0gezE2LDB4MDczMCwwLHsweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwfX0sCi0gezEwLDB4MDc0MCwwLHsweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MDc0YSwwLHsweDkwLDB4NzYsMHg5YSwweDc0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3NiwweDkwfX0sCi0gezE2LDB4MDc1YSwwLHsweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg5MCwweDc2LDB4OTYsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGU0fX0sCi0gezE2LDB4MDc2YSwwLHsweDkwLDB4NzYsMHg5NywweGYwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTQsMHgwNCwweGYwLDB4OTAsMHg4MCwweDAwfX0sCi0gezE2LDB4MDc3YSwwLHsweGYwLDB4ZTQsMHg5MCwweDc2LDB4OGUsMHhmMCwweDkwLDB4NzYsMHgxYSwweGYwLDB4OTAsMHg3NiwweDk1LDB4MDQsMHhmMCwweGMyfX0sCi0gezE2LDB4MDc4YSwwLHsweDJlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDlifX0sCi0gezE2LDB4MDc5YSwwLHsweGUwLDB4ZmYsMHg1NCwweDEwLDB4ZmUsMHhmZiwweGJlLDB4MTAsMHgwMiwweGQyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMCwweGZmfX0sCi0gezE2LDB4MDdhYSwwLHsweDU0LDB4MjAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MjAsMHhmZSwweGZmfX0sCi0gezE2LDB4MDdiYSwwLHsweGJlLDB4MjAsMHgwMiwweGQyLDB4M2UsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwfX0sCi0gezE2LDB4MDdjYSwwLHsweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwfX0sCi0gezE2LDB4MDdkYSwwLHsweDMwLDB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwfX0sCi0gezE2LDB4MDdlYSwwLHsweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHhhMiwweDNlLDB4OTIsMHg0MCwweGEyfX0sCi0geyAzLDB4MDdmYSwwLHsweDNmLDB4OTIsMHg0MX19LAotIHsgMSwweDA3ZmQsMCx7MHgyMn19LAotIHsgMiwweDA3ZmUsMCx7MHhkMywweDIyfX0sCi0gezE2LDB4MDgwMCwwLHsweGU0LDB4OTAsMHg3NiwweDMxLDB4ZjAsMHg5MCwweDc2LDB4MzEsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfX0sCi0gezE2LDB4MDgxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmQsMHhlZSwweDZkfX0sCi0gezE2LDB4MDgyMCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fX0sCi0gezE2LDB4MDgzMCwwLHsweGVmLDB4YjQsMHgwYiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDAzfX0sCi0gezE2LDB4MDg0MCwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MzMsMHhmMCwweDI0fX0sCi0gezE2LDB4MDg1MCwwLHsweGYwLDB4NjAsMHgwYSwweDI0LDB4MGUsMHg2MCwweDAyLDB4ODEsMHg4NywweDEyLDB4NGIsMHgzZSwweDIyLDB4OTAsMHg3ZiwweGVkfX0sCi0gezE2LDB4MDg2MCwwLHsweGUwLDB4NjQsMHgwNSwweDcwLDB4NTEsMHg5MCwweDc2LDB4MTgsMHg3NCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4MzcsMHg3NCwweDAxfX0sCi0gezE2LDB4MDg3MCwwLHsweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDIxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgyMCwweGYwfX0sCi0gezE2LDB4MDg4MCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MCwweDJmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fX0sCi0gezE2LDB4MDg5MCwwLHsweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkfX0sCi0gezE2LDB4MDhhMCwwLHsweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3NiwweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2fX0sCi0gezE2LDB4MDhiMCwwLHsweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMSwweDkwLDB4N2YsMHhlZCwweGUwLDB4NjQsMHgwNiwweDcwLDB4NTIsMHg5MCwweDc2fX0sCi0gezE2LDB4MDhjMCwwLHsweDE4LDB4NzQsMHgwNiwweGYwLDB4OTAsMHg3NiwweDM3LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwYSwweGYwfX0sCi0gezE2LDB4MDhkMCwwLHsweDkwLDB4NzYsMHgyMSwweGYwLDB4OTAsMHg3NiwweDIwLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwfX0sCi0gezE2LDB4MDhlMCwwLHsweDJmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MDhmMCwwLHsweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkLDB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2fX0sCi0gezE2LDB4MDkwMCwwLHsweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxfX0sCi0gezE2LDB4MDkxMCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4MDkyMCwwLHsweGY1LDB4ODMsMHhlMCwweDkwLDB4NzIsMHgyOSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4M2IsMHhmMCwweDkwLDB4NzYsMHgyMSwweGUwfX0sCi0gezE2LDB4MDkzMCwwLHsweGZlLDB4ZWYsMHg2ZSwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVifX0sCi0gezE2LDB4MDk0MCwwLHsweGUwLDB4MTQsMHg2MCwweDEzLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhlMiwweDI0LDB4MDIsMHg2MCwweDAyLDB4ODEsMHg3ZiwweDkwfX0sCi0gezE2LDB4MDk1MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4N2MsMHg5MCwweDdmfX0sCi0gezE2LDB4MDk2MCwwLHsweGVhLDB4ZTAsMHhmNCwweDcwLDB4NDgsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5fX0sCi0gezE2LDB4MDk3MCwwLHsweGUwLDB4ZmUsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZkLDB4YzMsMHg5ZSwweDUwLDB4MmIsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZlfX0sCi0gezE2LDB4MDk4MCwwLHsweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmUsMHhlZCwweDc1fX0sCi0gezE2LDB4MDk5MCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4MDlhMCwwLHsweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhjNywweDkwLDB4NzYsMHgzZiwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZSwweGMwfX0sCi0gezE2LDB4MDliMCwwLHsweGUwLDB4ZmUsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MDljMCwwLHsweGVlLDB4ZjAsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHgzZSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwfX0sCi0gezE2LDB4MDlkMCwwLHsweDc2LDB4M2UsMHhmMCwweDkwLDB4NzYsMHgzZiwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4MDllMCwwLHsweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg3MCwweDAyLDB4NDEsMHhhMywweDE0LDB4NzAsMHgwMiwweDYxfX0sCi0gezE2LDB4MDlmMCwwLHsweDNmLDB4MTQsMHg3MCwweDAyLDB4NjEsMHhkYiwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg3NywweDkwLDB4N2YsMHhlYSwweGUwfX0sCi0gezE2LDB4MGEwMCwwLHsweGY0LDB4NzAsMHg2YiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmfX0sCi0gezE2LDB4MGExMCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NTAsMHg0ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwfX0sCi0gezE2LDB4MGEyMCwwLHsweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfX0sCi0gezE2LDB4MGEzMCwwLHsweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgzYiwweGUwfX0sCi0gezE2LDB4MGE0MCwwLHsweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlfX0sCi0gezE2LDB4MGE1MCwwLHsweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwfX0sCi0gezE2LDB4MGE2MCwwLHsweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDQwLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlfX0sCi0gezE2LDB4MGE3MCwwLHsweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyfX0sCi0gezE2LDB4MGE4MCwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfX0sCi0gezE2LDB4MGE5MCwwLHsweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MSwweDc0fX0sCi0gezE2LDB4MGFhMCwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2fX0sCi0gezE2LDB4MGFiMCwwLHsweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyfX0sCi0gezE2LDB4MGFjMCwwLHsweDgxLDB4OGUsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGFkMCwwLHsweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGFlMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1fX0sCi0gezE2LDB4MGFmMCwwLHsweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1fX0sCi0gezE2LDB4MGIwMCwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyfX0sCi0gezE2LDB4MGIxMCwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlfX0sCi0gezE2LDB4MGIyMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmYsMHhlZSwweDc1fX0sCi0gezE2LDB4MGIzMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE2LDB4MGI0MCwwLHsweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4MGI1MCwwLHsweDM5LDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDgxLDB4OGUsMHg5MCwweDc2fX0sCi0gezE2LDB4MGI2MCwwLHsweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwfX0sCi0gezE2LDB4MGI3MCwwLHsweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MGI4MCwwLHsweGYwLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlfX0sCi0gezE2LDB4MGI5MCwwLHsweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4MGJhMCwwLHsweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwfX0sCi0gezE2LDB4MGJiMCwwLHsweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGJjMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0fX0sCi0gezE2LDB4MGJkMCwwLHsweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0fX0sCi0gezE2LDB4MGJlMCwwLHsweDcwLDB4NjYsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5LDB4ZTAsMHhmZiwweDkwfX0sCi0gezE2LDB4MGJmMCwwLHsweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDIsMHg4MSwweDhlLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0fX0sCi0gezE2LDB4MGMwMCwwLHsweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwfX0sCi0gezE2LDB4MGMxMCwwLHsweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDNifX0sCi0gezE2LDB4MGMyMCwwLHsweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmfX0sCi0gezE2LDB4MGMzMCwwLHsweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwfX0sCi0gezE2LDB4MGM0MCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTIsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwfX0sCi0gezE2LDB4MGM1MCwwLHsweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MGM2MCwwLHsweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MGM3MCwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE1LDB4MGM4MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDBjOGYsMCx7MHg0MSwweDc2LDB4NjgsMHgwMSwweDQxLDB4NzYsMHg2YSwweDAyLDB4NDEsMHg3NiwweDZiLDB4MGEsMHhjMSwweDIwLDB4YzEsMHgyMX19LAotIHsgMiwweDBjOWYsMCx7MHhjMSwweDJmfX0sCi0geyA0LDB4MGNhMSwwLHsweDQxLDB4NzYsMHgyMywweDAwfX0sCi0gezE2LDB4MGNhNSwwLHsweDQxLDB4NzIsMHgwMSwweDAxLDB4NDUsMHg3MiwweDA1LDB4MDAsMHgwMiwweGM5LDB4MDAsMHgwMCwweDQ1LDB4NzIsMHgwYSwweDAwfX0sCi0gezE2LDB4MGNiNSwwLHsweDAxLDB4MDIsMHgwMywweDA0LDB4NGQsMHg3MiwweDBmLDB4ZDEsMHgwMCwweGQxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGNjNSwwLHsweDI4LDB4MjgsMHgwOSwweDAwLDB4NGQsMHg3MiwweDFjLDB4MDEsMHgwMCwweDAxLDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3fX0sCi0gezE2LDB4MGNkNSwwLHsweDA4LDB4MDksMHgwYSwweDBiLDB4NDEsMHg3MiwweDJlLDB4MjIsMHg0MSwweDcyLDB4MmYsMHgyMywweDQxLDB4NzIsMHgzMCwweDIwfX0sCi0gezE2LDB4MGNlNSwwLHsweDQxLDB4NzIsMHgzMSwweDIxLDB4NjIsMHhkMiwweDcyLDB4M2EsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGNmNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQwNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQxNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQyNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQzNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ0NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ1NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ2NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ3NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGQ4NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGQ5NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGRhNSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGRiNSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRjNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRkNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRlNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRmNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUwNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUxNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUyNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUzNSwwLHsweDAzLDB4MDMsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU0NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU1NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU2NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU3NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGU4NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGU5NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGVhNSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNiwweDA2fX0sCi0gezE2LDB4MGViNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVjNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVkNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVlNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNywweDA3LDB4MDcsMHgwOCwweDA4fX0sCi0gezE2LDB4MGVmNSwwLHsweDA4LDB4MDksMHgwOSwweDA5LDB4MGEsMHgwYSwweDBhLDB4MGIsMHgwYiwweDBiLDB4MGMsMHgwYywweDBjLDB4MGQsMHgwZCwweDBkfX0sCi0gezE2LDB4MGYwNSwwLHsweDBlLDB4MGUsMHgwZSwweDBmLDB4MGYsMHgwZiwweDEwLDB4MTAsMHgxMCwweDExLDB4MTEsMHgxMSwweDEyLDB4MTIsMHgxMiwweDEzfX0sCi0gezE2LDB4MGYxNSwwLHsweDEzLDB4MTMsMHgxNCwweDE0LDB4MTQsMHgxNSwweDE1LDB4MTUsMHgxNiwweDE2LDB4MTYsMHgxNywweDE3LDB4MTcsMHgxOCwweDE4fX0sCi0gezE2LDB4MGYyNSwwLHsweDE4LDB4MTksMHgxOSwweDE5LDB4MTksMHgxYSwweDFhLDB4MWEsMHgxYSwweDFiLDB4MWIsMHgxYiwweDFiLDB4MWMsMHgxYywweDFjfX0sCi0gezE2LDB4MGYzNSwwLHsweDFjLDB4MWQsMHgxZCwweDFkLDB4MWQsMHgxZSwweDFlLDB4MWUsMHgxZSwweDFmLDB4MWYsMHgxZiwweDFmLDB4MjAsMHgyMCwweDIwfX0sCi0gezE2LDB4MGY0NSwwLHsweDIxLDB4MjEsMHgyMSwweDIyLDB4MjIsMHgyMiwweDIzLDB4MjMsMHgyNCwweDI0LDB4MjUsMHgyNSwweDI2LDB4MjYsMHgyNywweDI3fX0sCi0gezE2LDB4MGY1NSwwLHsweDI4LDB4MjgsMHgyOSwweDI5LDB4MmEsMHgyYSwweDJiLDB4MmIsMHgyYywweDJjLDB4MmQsMHgyZCwweDJlLDB4MmUsMHgyZiwweDJmfX0sCi0gezE2LDB4MGY2NSwwLHsweDMwLDB4MzAsMHgzMSwweDMxLDB4MzIsMHgzMiwweDMzLDB4MzMsMHgzNCwweDM0LDB4MzUsMHgzNSwweDM2LDB4MzYsMHgzNywweDM3fX0sCi0gezE2LDB4MGY3NSwwLHsweDM4LDB4MzgsMHgzOSwweDM5LDB4M2EsMHgzYSwweDNiLDB4M2MsMHgzZCwweDNlLDB4M2YsMHg0MCwweDQxLDB4NDIsMHg0MywweDQ0fX0sCi0gezE2LDB4MGY4NSwwLHsweDQ1LDB4NDYsMHg0NywweDQ4LDB4NDksMHg0OSwweDRhLDB4NGIsMHg0YiwweDRjLDB4NGQsMHg0ZSwweDRmLDB4NTAsMHg1MSwweDUyfX0sCi0gezE2LDB4MGY5NSwwLHsweDUzLDB4NTQsMHg1NSwweDU1LDB4NTYsMHg1NiwweDU3LDB4NTcsMHg1OCwweDVhLDB4NWIsMHg1ZCwweDVlLDB4NWYsMHg2MSwweDYyfX0sCi0gezE2LDB4MGZhNSwwLHsweDYzLDB4NjQsMHg2NSwweDY2LDB4NjcsMHg2OCwweDY5LDB4NmEsMHg2YiwweDZjLDB4NmQsMHg2ZiwweDcxLDB4NzIsMHg3MywweDc0fX0sCi0gezE2LDB4MGZiNSwwLHsweDc1LDB4NzYsMHg3NywweDc4LDB4NzksMHg3YSwweDdiLDB4N2MsMHg3ZSwweDgwLDB4MDEsMHgzNywweDAxLDB4MDEsMHgzOCwweDAwfX0sCi0geyAxLDB4MGZjNSwwLHsweDAwfX0sCi0gezE2LDB4MGZjNiwwLHsweGU0LDB4ZmYsMHg3NCwweDQ2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDIwfX0sCi0gezE2LDB4MGZkNiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHg0ZSwweDJmLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MGZlNiwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfX0sCi0geyA2LDB4MGZmNiwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY319LAotIHsgMSwweDBmZmMsMCx7MHgyMn19LAotIHsgMywweDBmZmQsMCx7MHhjMiwweDg5LDB4MzJ9fSwKLSB7MTYsMHgxMDAwLDAsezB4ZTQsMHg5MCwweDc2LDB4MmMsMHhmMCwweDkwLDB4NzYsMHgyYywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9fSwKLSB7MTYsMHgxMDEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgxMDIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyYywweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgxMDMwLDAsezB4ZWYsMHhiNCwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9fSwKLSB7MTYsMHgxMDQwLDAsezB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgyZSwweGYwLDB4MjR9fSwKLSB7MTYsMHgxMDUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZiwweDYwLDB4MDIsMHg4MSwweDdkLDB4MTIsMHg0YiwweDFiLDB4MjIsMHg5MCwweDdmLDB4ZWR9fSwKLSB7MTYsMHgxMDYwLDAsezB4ZTAsMHg2NCwweDA1LDB4NzAsMHg1MSwweDkwLDB4NzYsMHgxOCwweDc0LDB4MDUsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDF9fSwKLSB7MTYsMHgxMDcwLDAsezB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MWMsMHhmMCwweGU0LDB4OTAsMHg3NiwweDFiLDB4ZjB9fSwKLSB7MTYsMHgxMDgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxMDkwLDAsezB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmR9fSwKLSB7MTYsMHgxMGEwLDAsezB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2LDB4MWMsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMGIwLDAsezB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMGMwLDAsezB4MTgsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4MzgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDBhLDB4ZjB9fSwKLSB7MTYsMHgxMGQwLDAsezB4OTAsMHg3NiwweDFjLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjB9fSwKLSB7MTYsMHgxMGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgxMGYwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmQsMHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMTAwLDAsezB4MWMsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDF9fSwKLSB7MTYsMHgxMTEwLDAsezB4ZTQsMHg5MCwweDc2LDB4MWUsMHhmMCwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZlLDB4NmZ9fSwKLSB7MTYsMHgxMTIwLDAsezB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjB9fSwKLSB7MTYsMHgxMTMwLDAsezB4MTMsMHgxNCwweDcwLDB4MDIsMHgyMSwweGJmLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDc1LDB4OTAsMHg3ZiwweGI0LDB4ZTB9fSwKLSB7MTYsMHgxMTQwLDAsezB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDZiLDB4OTAsMHg3ZiwweGVhLDB4ZTB9fSwKLSB7MTYsMHgxMTUwLDAsezB4ZjQsMHg3MCwweDRhLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmZ9fSwKLSB7MTYsMHgxMTYwLDAsezB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZCwweGMzLDB4OWYsMHg1MCwweDJiLDB4ZWQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWJ9fSwKLSB7MTYsMHgxMTcwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjB9fSwKLSB7MTYsMHgxMTgwLDAsezB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxMTkwLDAsezB4MDQsMHhmMCwweDgwLDB4YzcsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHhlZSwweDc1LDB4ZjB9fSwKLSB7MTYsMHgxMWEwLDAsezB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjB9fSwKLSB7MTYsMHgxMWIwLDAsezB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9fSwKLSB7MTYsMHgxMWMwLDAsezB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZSwweDcwLDB4MDIsMHg0MSwweDdlLDB4MTQsMHg3MCwweDAyLDB4NjEsMHgyMywweDE0LDB4NzB9fSwKLSB7MTYsMHgxMWQwLDAsezB4MDIsMHg2MSwweGM4LDB4MjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDZkLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmR9fSwKLSB7MTYsMHgxMWUwLDAsezB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWJ9fSwKLSB7MTYsMHgxMWYwLDAsezB4ZTAsMHhjMywweDlmLDB4NTAsMHg0ZiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMjAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmR9fSwKLSB7MTYsMHgxMjEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWR9fSwKLSB7MTYsMHgxMjIwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZSwweDA0LDB4ZjB9fSwKLSB7MTYsMHgxMjMwLDAsezB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxMjQwLDAsezB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWJ9fSwKLSB7MTYsMHgxMjUwLDAsezB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTB9fSwKLSB7MTYsMHgxMjYwLDAsezB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgxMjcwLDAsezB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxMjgwLDAsezB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2ZCwweDkwLDB4NzYsMHgzOCwweGUwLDB4OTAsMHg3NiwweDFiLDB4ZjAsMHg5MCwweDc2LDB4M2F9fSwKLSB7MTYsMHgxMjkwLDAsezB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxMmEwLDAsezB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmR9fSwKLSB7MTYsMHgxMmIwLDAsezB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWUsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHgxMmMwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMmQwLDAsezB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWZ9fSwKLSB7MTYsMHgxMmUwLDAsezB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDFlLDB4ZTAsMHg5MCwweDdmLDB4YjV9fSwKLSB7MTYsMHgxMmYwLDAsezB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMzAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWZ9fSwKLSB7MTYsMHgxMzEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzR9fSwKLSB7MTYsMHgxMzIwLDAsezB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMzMwLDAsezB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTB9fSwKLSB7MTYsMHgxMzQwLDAsezB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmV9fSwKLSB7MTYsMHgxMzUwLDAsezB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9fSwKLSB7MTYsMHgxMzYwLDAsezB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgxMzcwLDAsezB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZSwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmUsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMzgwLDAsezB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMzkwLDAsezB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxM2EwLDAsezB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHgxM2IwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDF9fSwKLSB7MTYsMHgxM2MwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTB9fSwKLSB7MTYsMHgxM2QwLDAsezB4NzYsMHgzOCwweGUwLDB4OTAsMHg3NiwweDFiLDB4ZjAsMHg5MCwweDc2LDB4M2EsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxM2UwLDAsezB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgxM2YwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjV9fSwKLSB7MTYsMHgxNDAwLDAsezB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWUsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjV9fSwKLSB7MTYsMHgxNDEwLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzR9fSwKLSB7MTYsMHgxNDIwLDAsezB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDR9fSwKLSB7MTYsMHgxNDMwLDAsezB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDFlLDB4ZTAsMHg5MCwweDdmLDB4YjUsMHhmMCwweDIyLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxNDQwLDAsezB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTB9fSwKLSB7MTYsMHgxNDUwLDAsezB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgxNDYwLDAsezB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9fSwKLSB7MTYsMHgxNDcwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9fSwKLSB7IDUsMHgxNDgwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDE0ODUsMCx7MHg3NCwweDAwLDB4ZjUsMHg4NiwweDkwLDB4ZmQsMHhhNSwweDdjLDB4MDUsMHhhMywweGU1LDB4ODIsMHg0NSwweDgzLDB4NzAsMHhmOX19LAotIHsgMSwweDE0OTUsMCx7MHgyMn19LAotIHsxNiwweDE0OTYsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4ODcsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn19LAotIHsxNiwweDE0YTYsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHg4ZCwweGUwLDB4YzAsMHhlMH19LAotIHsxNiwweDE0YjYsMCx7MHg4YywweGUwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4N2QsMHgwMH19LAotIHsxNiwweDE0YzYsMCx7MHg5MCwweDdmLDB4ZTMsMHg3NCwweDdiLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweDdjLDB4MTEsMHg5MCwweDdmLDB4OTksMHhlMH19LAotIHsxNiwweDE0ZDYsMCx7MHg1NCwweDQwLDB4ZGMsMHgwMywweDAyLDB4MTQsMHhmMywweGI0LDB4MDAsMHgxMywweDkwLDB4N2YsMHhlMiwweDc0LDB4NDAsMHhmMH19LAotIHsxNiwweDE0ZTYsMCx7MHg5MCwweDdmLDB4ZTUsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDAyLDB4MTQsMHhkMiwweDkwLDB4NzYsMHg5MH19LAotIHsxNiwweDE0ZjYsMCx7MHhlMCwweGI0LDB4MDEsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMH19LAotIHsxNiwweDE1MDYsMCx7MHg5MCwweDdmLDB4NmMsMHgwMiwweDE1LDB4NTcsMHhiNCwweDAyLDB4MTIsMHg5MCwweDc2LDB4OGYsMHhlMCwweDJkLDB4ZmQsMHg5MH19LAotIHsxNiwweDE1MTYsMCx7MHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweDk2LDB4YjQsMHgwMywweDEyLDB4OTAsMHg3Nn19LAotIHsxNiwweDE1MjYsMCx7MHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHhlMX19LAotIHsxNiwweDE1MzYsMCx7MHhiNCwweDA0LDB4MTIsMHg5MCwweDc2LDB4OGYsMHhlMCwweDJkLDB4ZmQsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MH19LAotIHsxNiwweDE1NDYsMCx7MHg3ZiwweDZjLDB4MDIsMHgxNiwweDEwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNn19LAotIHsxNiwweDE1NTYsMCx7MHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjIsMHg3ZH19LAotIHsxNiwweDE1NjYsMCx7MHgwMiwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNH19LAotIHsxNiwweDE1NzYsMCx7MHgwMCwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMH19LAotIHsxNiwweDE1ODYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhkNCwweDAyLDB4MTYsMHg0MH19LAotIHsxNiwweDE1OTYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsxNiwweDE1YTYsMCx7MHhmMCwweGYwLDB4ZGQsMHhlYywweDdkLDB4MDIsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDE1YjYsMCx7MHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NH19LAotIHsxNiwweDE1YzYsMCx7MHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsgNiwweDE1ZDYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9fSwKLSB7MTYsMHgxNWRjLDAsezB4ZGQsMHhjZSwweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmYSwweDdkLDB4MDIsMHgwNSwweDg2LDB4OTB9fSwKLSB7MTYsMHgxNWVjLDAsezB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNWZjLDAsezB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGR9fSwKLSB7MTYsMHgxNjBjLDAsezB4ZGMsMHgwMiwweDE2LDB4NDAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGY4LDB4N2QsMHgwMiwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNjFjLDAsezB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDV9fSwKLSB7MTYsMHgxNjJjLDAsezB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjB9fSwKLSB7MTYsMHgxNjNjLDAsezB4ZjAsMHhmMCwweGRkLDB4ZGEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNjRjLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmZ9fSwKLSB7IDUsMHgxNjVjLDAsezB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn19LAotIHsxNiwweDE2NjEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3NiwweDdjLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH19LAotIHsxNiwweDE2NzEsMCx7MHg5MCwweDc2LDB4N2QsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwLDB4OTAsMHg3NiwweDdlLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH19LAotIHsgOSwweDE2ODEsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9fSwKLSB7MTYsMHgxNjhhLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODN9fSwKLSB7MTYsMHgxNjlhLDAsezB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGJmLDB4MDAsMHgwMywweDAyLDB4MTd9fSwKLSB7MTYsMHgxNmFhLDAsezB4MDEsMHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxNmJhLDAsezB4NjIsMHhlMCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4N2Z9fSwKLSB7MTYsMHgxNmNhLDAsezB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDc2LDB4OGUsMHhlMCwweGI0LDB4MDEsMHgwNSwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNmRhLDAsezB4MDIsMHgxNiwweGY2LDB4YjQsMHgwMiwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHhlYiwweDA1LDB4ODYsMHgwMiwweDE2LDB4ZmJ9fSwKLSB7MTYsMHgxNmVhLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGYsMHhmOCwweDAyLDB4MTYsMHhmYiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGZ9fSwKLSB7MTYsMHgxNmZhLDAsezB4ZmEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODYsMHhkMCwweDgzLDB4ZDB9fSwKLSB7MTIsMHgxNzBhLDAsezB4ODIsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfX0sCi0gezE2LDB4MTcxNiwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4ZDEsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifX0sCi0gezEwLDB4MTcyNiwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfX0sCi0gezE2LDB4MTczMCwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4NzgsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifX0sCi0gezEwLDB4MTc0MCwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfX0sCi0geyA3LDB4MTc0YSwwLHsweDkwLDB4N2YsMHhjNSwweDc0LDB4MDIsMHhmMCwweDIyfX0sCi0gezE2LDB4MTc1MSwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4OTAsMHg3NiwweDQ1LDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweDkwLDB4NzYsMHg0NCwweGYwfX0sCi0gezE2LDB4MTc2MSwwLHsweDkwLDB4N2UsMHhjMiwweGUwLDB4OTAsMHg3NiwweDQzLDB4ZjAsMHhiNCwweDAwLDB4MDMsMHgwMiwweDE3LDB4NzgsMHg5MCwweDc2fX0sCi0gezE2LDB4MTc3MSwwLHsweDE5LDB4NzQsMHgwMywweGYwLDB4MDIsMHgxNywweDhlLDB4OTAsMHg3NiwweDQ0LDB4ZTAsMHhiNCwweGJiLDB4MDksMHg5MCwweDc2fX0sCi0gezE2LDB4MTc4MSwwLHsweDE5LDB4NzQsMHgwMiwweGYwLDB4MDIsMHgxNywweDhlLDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDQyfX0sCi0geyAzLDB4MTc5MSwwLHsweGU0LDB4ZjAsMHgyMn19LAotIHsgNCwweDE3OTQsMCx7MHg4ZCwweDI5LDB4OGIsMHgyYX19LAotIHsxNiwweDE3OTgsMCx7MHgxMiwweDQ5LDB4ZmYsMHhlYSwweDQ5LDB4NjAsMHg1NywweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYX19LAotIHsxNiwweDE3YTgsMCx7MHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweGFiLDB4MmIsMHhhYSwweDJjLDB4YTksMHgyZH19LAotIHsxNiwweDE3YjgsMCx7MHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHhmZiwweDY0LDB4MDQsMHg2MCwweDA1LDB4ZWYsMHg2NCwweDA1LDB4NzAsMHgyZX19LAotIHsxNiwweDE3YzgsMCx7MHhlZiwweGI0LDB4MDQsMHgxNSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MzYsMHhhYiwweDY1LDB4MjksMHg3MCwweDBiLDB4OTAsMHgwMH19LAotIHsxNiwweDE3ZDgsMCx7MHgwMywweDEyLDB4MzYsMHhhYiwweDY1LDB4MmEsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZn19LAotIHsxNiwweDE3ZTgsMCx7MHhlZSwweDNhLDB4YzksMHhlZiwweGM5LDB4NzUsMHgyYiwweGZmLDB4ZjUsMHgyYywweDg5LDB4MmQsMHg4MCwweGJjLDB4N2IsMHgwMH19LAotIHsgNCwweDE3ZjgsMCx7MHg3YSwweDAwLDB4NzksMHgwMH19LAotIHsgMSwweDE3ZmMsMCx7MHgyMn19LAotIHsgMywweDE3ZmQsMCx7MHhjMiwweDhiLDB4MzJ9fSwKLSB7MTYsMHgxODAwLDAsezB4OTAsMHg3NiwweDkwLDB4ZTAsMHgxNCwweDYwLDB4MzcsMHgxNCwweDcwLDB4MDIsMHgwMSwweGQ4LDB4MTQsMHg3MCwweDAyLDB4MjF9fSwKLSB7MTYsMHgxODEwLDAsezB4NzIsMHgxNCwweDcwLDB4MDIsMHg0MSwweDNiLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg2MSwweDAzLDB4OTAsMHg3ZiwweGZjLDB4NzR9fSwKLSB7MTYsMHgxODIwLDAsezB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NTR9fSwKLSB7MTYsMHgxODMwLDAsezB4MDUsMHhmMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWEsMHhmMCwweGMyLDB4MmUsMHgyMiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxODQwLDAsezB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgxODUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9fSwKLSB7MTYsMHgxODYwLDAsezB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTB9fSwKLSB7MTYsMHgxODcwLDAsezB4N2YsMHhmYywweDc0LDB4NzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9fSwKLSB7MTYsMHgxODgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODB9fSwKLSB7MTYsMHgxODkwLDAsezB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyMiwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmN9fSwKLSB7MTYsMHgxOGEwLDAsezB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTB9fSwKLSB7MTYsMHgxOGIwLDAsezB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmV9fSwKLSB7MTYsMHgxOGMwLDAsezB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmJ9fSwKLSB7MTYsMHgxOGQwLDAsezB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmZSwweGYwLDB4NDR9fSwKLSB7MTYsMHgxOGUwLDAsezB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTR9fSwKLSB7MTYsMHgxOGYwLDAsezB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDF9fSwKLSB7MTYsMHgxOTAwLDAsezB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHgzMCwweGYwLDB4OTB9fSwKLSB7MTYsMHgxOTEwLDAsezB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmIsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTR9fSwKLSB7MTYsMHgxOTIwLDAsezB4ZmQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDIyLDB4OTB9fSwKLSB7MTYsMHgxOTMwLDAsezB4N2YsMHhmYywweDc0LDB4MWMsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9fSwKLSB7MTYsMHgxOTQwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODB9fSwKLSB7MTYsMHgxOTUwLDAsezB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTd9fSwKLSB7MTYsMHgxOTYwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDJ9fSwKLSB7MTYsMHgxOTcwLDAsezB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4NDQsMHgwOCwweGYwLDB4MzB9fSwKLSB7MTYsMHgxOTgwLDAsezB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTB9fSwKLSB7MTYsMHgxOTkwLDAsezB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxOWEwLDAsezB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzR9fSwKLSB7MTYsMHgxOWIwLDAsezB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmIsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NTR9fSwKLSB7MTYsMHgxOWMwLDAsezB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTB9fSwKLSB7MTYsMHgxOWQwLDAsezB4N2YsMHhmYywweDc0LDB4YzgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9fSwKLSB7MTYsMHgxOWUwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9fSwKLSB7MTYsMHgxOWYwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4OTgsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxYTAwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDVmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmR9fSwKLSB7MTYsMHgxYTEwLDAsezB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDl9fSwKLSB7MTYsMHgxYTIwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7MTYsMHgxYTMwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTR9fSwKLSB7MTYsMHgxYTQwLDAsezB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgxYTUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9fSwKLSB7MTYsMHgxYTYwLDAsezB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDI1LDB4OTB9fSwKLSB7MTYsMHgxYTcwLDAsezB4N2YsMHhmYywweDc0LDB4YjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9fSwKLSB7MTYsMHgxYTgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9fSwKLSB7MTYsMHgxYTkwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4YjAsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxYWEwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDJ9fSwKLSB7MTYsMHgxYWIwLDAsezB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDN9fSwKLSB7MTYsMHgxYWMwLDAsezB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDY4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGZ9fSwKLSB7MTYsMHgxYWQwLDAsezB4NzQsMHg1ZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxYWUwLDAsezB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjB9fSwKLSB7MTYsMHgxYWYwLDAsezB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDJ9fSwKLSB7IDQsMHgxYjAwLDAsezB4ZjAsMHhkMiwweDJlLDB4MjJ9fSwKLSB7MTYsMHgxYjA0LDAsezB4MzAsMHgyYywweDM4LDB4YzIsMHgyYywweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2N9fSwKLSB7MTYsMHgxYjE0LDAsezB4NzQsMHhjMCwweGYwLDB4YTMsMHg3NCwweDE0LDB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBkLDB4ZTR9fSwKLSB7MTYsMHgxYjI0LDAsezB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4MTAsMHhmMCwweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGJ9fSwKLSB7MTIsMHgxYjM0LDAsezB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHgxOCwweGYwLDB4YTMsMHhmMCwweDIyfX0sCi0gezE2LDB4MWI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWVhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE0LDB4MWViMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7IDIsMHgxZjNlLDAsezB4MDAsMHgwMH19LAotIHsxNiwweDFmNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNCwweDIzNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjViZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE0LDB4MjZlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzBjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzFjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzJjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzNjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzRjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzVjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzdjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzhjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzljLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2FjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2JjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2NjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2RjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2VjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7IDUsMHgyN2ZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn19LAotIHsxNiwweDI4MDEsMCx7MHhjMiwweDIwLDB4YzIsMHgyMSwweGMyLDB4MmEsMHg5MCwweDdmLDB4ZTgsMHhlMCwweDEyLDB4MzcsMHhmOSwweDI4LDB4MzAsMHgwMH19LAotIHsxNiwweDI4MTEsMCx7MHgyOCwweDhjLDB4MDEsMHgyOCwweGEyLDB4MDIsMHgyYSwweDFmLDB4MjEsMHgyYSwweDZhLDB4MjIsMHgyOSwweDNkLDB4ODAsMHgyOX19LAotIHsxNiwweDI4MjEsMCx7MHg3ZCwweDgxLDB4MjksMHhkMSwweDgyLDB4MmEsMHg4NCwweGExLDB4MmEsMHhiYSwweGEyLDB4MDAsMHgwMCwweDJhLDB4YmYsMHg5MH19LAotIHsxNiwweDI4MzEsMCx7MHg3ZiwweGU5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgyNCwweGZlLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDNiLDB4MjQsMHhmY319LAotIHsxNiwweDI4NDEsMCx7MHg3MCwweDQwLDB4MTIsMHg0YiwweGEwLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhNywweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDI4NTEsMCx7MHhlYSwweGUwLDB4YjQsMHgwMSwweDA0LDB4YzIsMHgyMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNiwweDI4NjEsMCx7MHg0MSwweGNiLDB4MTIsMHg0ZCwweGE5LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhkMiwweDIyLDB4NDEsMHhjYn19LAotIHsxNiwweDI4NzEsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNiwweDI4ODEsMCx7MHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNH19LAotIHsxNiwweDI4OTEsMCx7MHhmNSwweDcwLDB4MDUsMHgxMiwweDQ4LDB4MDAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MX19LAotIHsxNiwweDI4YTEsMCx7MHhjYiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZCwweDYwLDB4NTQsMHgyNCwweDAyLDB4NjAsMHgwMiwweDIxLDB4MzQsMHgxMn19LAotIHsxNiwweDI4YjEsMCx7MHg0ZCwweGE3LDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWMsMHhlMH19LAotIHsxNiwweDI4YzEsMCx7MHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNH19LAotIHsxNiwweDI4ZDEsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDU0LDB4ODAsMHhmZn19LAotIHsxNiwweDI4ZTEsMCx7MHgxMywweDEzLDB4MTMsMHg1NCwweDFmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDkwLDB4N2YsMHhkNywweGYwLDB4ZTAsMHg0NH19LAotIHsxNiwweDI4ZjEsMCx7MHgyMCwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhOX19LAotIHsxNiwweDI5MDEsMCx7MHg0MCwweDAyLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlYSwweGUwLDB4NzAsMHgyMCwweDkwLDB4N2YsMHhlYywweGUwLDB4ZjQsMHg1NH19LAotIHsxNiwweDI5MTEsMCx7MHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4Mn19LAotIHsxNiwweDI5MjEsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX19LAotIHsxNiwweDI5MzEsMCx7MHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMH19LAotIHsxNiwweDI5NDEsMCx7MHg2MCwweDEyLDB4MjQsMHhmOCwweDYwLDB4MDksMHgyNCwweDAyLDB4NzAsMHgyOSwweDEyLDB4NDMsMHhkYiwweDQxLDB4Y2IsMHgxMn19LAotIHsxNiwweDI5NTEsMCx7MHg0ZCwweDVjLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhNSwweGEyLDB4MjIsMHhlNCwweDMzLDB4ZmYsMHgyNSwweGUwLDB4ZmYsMHhhMn19LAotIHsxNiwweDI5NjEsMCx7MHgyMywweGU0LDB4MzMsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMn19LAotIHsxNiwweDI5NzEsMCx7MHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMH19LAotIHsxNiwweDI5ODEsMCx7MHg2MCwweDMzLDB4MjQsMHhmNiwweDYwLDB4MmEsMHgyNCwweDA0LDB4NzAsMHgzZCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhkZX19LAotIHsxNiwweDI5OTEsMCx7MHg2MCwweDBjLDB4MDQsMHg3MCwweDEyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDI5YTEsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYn19LAotIHsxNiwweDI5YjEsMCx7MHgxMiwweDQ2LDB4ODUsMHg0MSwweGNiLDB4MTIsMHg0ZCwweGE1LDB4ZTQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4ZjAsMHg5MH19LAotIHsxNiwweDI5YzEsMCx7MHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYn19LAotIHsxNiwweDI5ZDEsMCx7MHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjQsMHg2MCwweDM0LDB4MjQsMHgwYywweDcwLDB4MzksMHgxMiwweDRkLDB4YTUsMHg5MH19LAotIHsxNiwweDI5ZTEsMCx7MHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNX19LAotIHsxNiwweDI5ZjEsMCx7MHhlMCwweDI0LDB4YjQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmZCwweDkwLDB4N2YsMHgwMH19LAotIHsxNiwweDJhMDEsMCx7MHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMH19LAotIHsxNiwweDJhMTEsMCx7MHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDJhMjEsMCx7MHhlOSwweGUwLDB4MjQsMHhmNiwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWEsMHgyNCwweDAyLDB4NzAsMHgxZCwweGQyLDB4MjAsMHg5MH19LAotIHsxNiwweDJhMzEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDEyLDB4ZDIsMHgyMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX19LAotIHsxNiwweDJhNDEsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MjAsMHgxOCwweDkwLDB4N2YsMHhlZX19LAotIHsxNiwweDJhNTEsMCx7MHhlMCwweDcwLDB4MDQsMHhhMywweGUwLDB4NjAsMHgwYiwweGQyLDB4MjksMHhkMiwweDI3LDB4MTIsMHgxNywweDRhLDB4ZDIsMHgyYX19LAotIHsxNiwweDJhNjEsMCx7MHg4MCwweDAzLDB4MTIsMHgwOCwweDAwLDB4YzIsMHgyMCwweDgwLDB4NjEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDcwLDB4MDQsMHhhM319LAotIHsxNiwweDJhNzEsMCx7MHhlMCwweDYwLDB4MGIsMHhkMiwweDI5LDB4ZDIsMHgyOCwweDEyLDB4MTcsMHg0YSwweGQyLDB4MmEsMHg4MCwweDRjLDB4MTIsMHgzOH19LAotIHsxNiwweDJhODEsMCx7MHg3NCwweDgwLDB4NDcsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDEyLDB4MTQsMHg2MCwweDFhLDB4MjQsMHgwMn19LAotIHsxNiwweDJhOTEsMCx7MHg3MCwweDFkLDB4ZDIsMHgyMSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyLDB4MjEsMHg5MH19LAotIHsxNiwweDJhYTEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMH19LAotIHsxNiwweDJhYjEsMCx7MHgyMSwweDAzLDB4MTIsMHgxMCwweDAwLDB4YzIsMHgyMSwweDgwLDB4MTEsMHgxMiwweDJhLDB4ZDYsMHg4MCwweDBjLDB4MTIsMHg0ZH19LAotIHsxNiwweDJhYzEsMCx7MHhhYiwweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MmEsMHgwNywweDkwLDB4N2YsMHhiNH19LAotIHsgNSwweDJhZDEsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDIyfX0sCi0gezE2LDB4MmFkNiwwLHsweGU0LDB4OTAsMHg3NiwweDI3LDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyfX0sCi0gezE2LDB4MmFlNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfX0sCi0gezE2LDB4MmFmNiwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjcsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fX0sCi0gezE2LDB4MmIwNiwwLHsweGVmLDB4YjQsMHgwNiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDBmfX0sCi0gezE2LDB4MmIxNiwwLHsweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MjgsMHhmMCwweDI0fX0sCi0gezE2LDB4MmIyNiwwLHsweDlmLDB4NzAsMHgwMiwweGExLDB4NzQsMHgyNCwweDIxLDB4NjAsMHgwMiwweGExLDB4YTEsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fX0sCi0gezE2LDB4MmIzNiwwLHsweDdlLDB4NzAsMHgwMiwweDYxLDB4ZmMsMHgxNCwweDcwLDB4MDIsMHg4MSwweGI1LDB4MjQsMHgwMiwweDYwLDB4MDIsMHhhMSwweDZjfX0sCi0gezE2LDB4MmI0NiwwLHsweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjfX0sCi0gezE2LDB4MmI1NiwwLHsweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4fX0sCi0gezE2LDB4MmI2NiwwLHsweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjfX0sCi0gezE2LDB4MmI3NiwwLHsweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwfX0sCi0gezE2LDB4MmI4NiwwLHsweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkfX0sCi0gezE2LDB4MmI5NiwwLHsweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyfX0sCi0gezE2LDB4MmJhNiwwLHsweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzfX0sCi0gezE2LDB4MmJiNiwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fX0sCi0gezE2LDB4MmJjNiwwLHsweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlfX0sCi0gezE2LDB4MmJkNiwwLHsweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDYwfX0sCi0gezE2LDB4MmJlNiwwLHsweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfX0sCi0gezE2LDB4MmJmNiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3fX0sCi0gezE2LDB4MmMwNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzfX0sCi0gezE2LDB4MmMxNiwwLHsweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzfX0sCi0gezE2LDB4MmMyNiwwLHsweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzLDB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1fX0sCi0gezE2LDB4MmMzNiwwLHsweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MmM0NiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdifX0sCi0gezE2LDB4MmM1NiwwLHsweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4MmM2NiwwLHsweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwfX0sCi0gezE2LDB4MmM3NiwwLHsweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MmM4NiwwLHsweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3fX0sCi0gezE2LDB4MmM5NiwwLHsweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg2MCwweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwfX0sCi0gezE2LDB4MmNhNiwwLHsweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE2LDB4MmNiNiwwLHsweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MmNjNiwwLHsweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5fX0sCi0gezE2LDB4MmNkNiwwLHsweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzfX0sCi0gezE2LDB4MmNlNiwwLHsweDc0LDB4YWMsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwfX0sCi0gezE2LDB4MmNmNiwwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzfX0sCi0gezE2LDB4MmQwNiwwLHsweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwfX0sCi0gezE2LDB4MmQxNiwwLHsweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwfX0sCi0gezE2LDB4MmQyNiwwLHsweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmfX0sCi0gezE2LDB4MmQzNiwwLHsweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzfX0sCi0gezE2LDB4MmQ0NiwwLHsweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3fX0sCi0gezE2LDB4MmQ1NiwwLHsweGFiLDB4NzAsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfX0sCi0gezE2LDB4MmQ2NiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfX0sCi0gezE2LDB4MmQ3NiwwLHsweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgxZSwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRmfX0sCi0gezE2LDB4MmQ4NiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fX0sCi0gezE2LDB4MmQ5NiwwLHsweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fX0sCi0geyAzLDB4MmRhNiwwLHsweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDJkYTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDJkYjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn19LAotIHsxNiwweDJkYzksMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNX19LAotIHsxNiwweDJkZDksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZn19LAotIHsxNiwweDJkZTksMCx7MHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMH19LAotIHsxNiwweDJkZjksMCx7MHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNX19LAotIHsxNiwweDJlMDksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNH19LAotIHsxNiwweDJlMTksMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNX19LAotIHsxNiwweDJlMjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn19LAotIHsxNiwweDJlMzksMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJlNDksMCx7MHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDJlNTksMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDJlNjksMCx7MHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDJlNzksMCx7MHg3NCwweDAzLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDJlODksMCx7MHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJlOTksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH19LAotIHsxNiwweDJlYTksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA2LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDJlYjksMCx7MHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMH19LAotIHsxNiwweDJlYzksMCx7MHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDJlZDksMCx7MHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDJlZTksMCx7MHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDJlZjksMCx7MHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDJmMDksMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMH19LAotIHsxNiwweDJmMTksMCx7MHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwOCwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDJmMjksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MH19LAotIHsxNiwweDJmMzksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDJmNDksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn19LAotIHsxNiwweDJmNTksMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNX19LAotIHsxNiwweDJmNjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMH19LAotIHsxNiwweDJmNzksMCx7MHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMn19LAotIHsxNiwweDJmODksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDJmOTksMCx7MHgwOSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDJmYTksMCx7MHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJmYjksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH19LAotIHsxNiwweDJmYzksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA3LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNCwweDJmZDksMCx7MHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDIyfX0sCi0gezE2LDB4MmZlNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjYsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfX0sCi0geyA4LDB4MmZmNywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7IDEsMHgyZmZmLDAsezB4MzJ9fSwKLSB7MTYsMHgzMDAwLDAsezB4OTAsMHg3ZiwweGI2LDB4ZTAsMHgyMCwweGUxLDB4MDIsMHhjMiwweDNkLDB4ZDIsMHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4NmV9fSwKLSB7MTYsMHgzMDEwLDAsezB4MzAsMHgzZCwweDAyLDB4NDEsMHg2ZSwweDkwLDB4ODAsMHgwNywweGUwLDB4NjAsMHgwNCwweGQyLDB4MzYsMHg4MCwweDAyLDB4YzJ9fSwKLSB7MTYsMHgzMDIwLDAsezB4MzYsMHgyMCwweDM2LDB4MDIsMHg0MSwweDJlLDB4ZDIsMHgzNSwweGU0LDB4ZjUsMHgxYSwweDkwLDB4ODAsMHgwNCwweGUwLDB4ZjV9fSwKLSB7MTYsMHgzMDMwLDAsezB4MTksMHg3NCwweDA4LDB4MjUsMHgwZSwweGY4LDB4YTYsMHgxOSwweDg1LDB4MTksMHgxOCwweGU1LDB4MTgsMHgyMCwweGU3LDB4MDR9fSwKLSB7MTYsMHgzMDQwLDAsezB4ZDIsMHgzOCwweDgwLDB4MDIsMHhjMiwweDM4LDB4MzAsMHgzOCwweDAyLDB4MjEsMHhkNCwweGU0LDB4ZjUsMHgxNiwweGU1LDB4MTl9fSwKLSB7MTYsMHgzMDUwLDAsezB4YjQsMHhmMCwweDBjLDB4ZDIsMHgzOSwweDc1LDB4MDgsMHgwNCwweDc1LDB4MDksMHhmMCwweDA1LDB4MGUsMHg4MCwweDAyLDB4MDV9fSwKLSB7MTYsMHgzMDYwLDAsezB4MTYsMHhlNSwweDE5LDB4NjQsMHhmNywweDcwLDB4M2QsMHhjMiwweDM5LDB4ZTUsMHgwZSwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MTR9fSwKLSB7MTYsMHgzMDcwLDAsezB4NjAsMHgyMiwweDI0LDB4MDMsMHg3MCwweDI5LDB4NzUsMHgwOCwweDA1LDB4NzUsMHgwOSwweGY3LDB4ZTQsMHhmNSwweDBhLDB4ZjV9fSwKLSB7MTYsMHgzMDgwLDAsezB4MGIsMHg3NSwweDBlLDB4MDQsMHg4MCwweDIwLDB4NzUsMHgwOCwweDA2LDB4NzUsMHgwYSwweGY3LDB4ZTQsMHhmNSwweDBiLDB4NzV9fSwKLSB7MTYsMHgzMDkwLDAsezB4MGUsMHgwNCwweDgwLDB4MTIsMHg3NSwweDA4LDB4MDcsMHg3NSwweDBiLDB4ZjcsMHg3NSwweDBlLDB4MDQsMHg4MCwweDA3LDB4MTJ9fSwKLSB7MTYsMHgzMGEwLDAsezB4NDgsMHhmMywweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxOSwweDU0LDB4ZjgsMHg2NCwweGY4LDB4NzAsMHgzYiwweGMyLDB4MzV9fSwKLSB7MTYsMHgzMGIwLDAsezB4ZTUsMHgxOSwweDI0LDB4MDcsMHg2MCwweDBjLDB4MjQsMHhmYywweDYwLDB4MDgsMHgyNCwweDA1LDB4MjQsMHhmOCwweDUwLDB4MDZ9fSwKLSB7MTYsMHgzMGMwLDAsezB4ODAsMHgwOCwweGQyLDB4M2EsMHg4MCwweDA2LDB4YzIsMHgzYSwweDgwLDB4MDIsMHhkMiwweDNhLDB4NzUsMHgxYSwweDAxLDB4MjB9fSwKLSB7MTYsMHgzMGQwLDAsezB4M2EsMHgxOSwweDkwLDB4N2UsMHg4MCwweDc0LDB4MGYsMHhmMCwweGEzLDB4ZTUsMHgxOSwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHgzMGUwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjcsMHg3NCwweDA0LDB4ZjAsMHg4MCwweDAyLDB4MDUsMHgxNiwweDIwLDB4MzksMHg2ZCwweGU1LDB4MTl9fSwKLSB7MTYsMHgzMGYwLDAsezB4NjQsMHhmNywweDYwLDB4NjcsMHhlNSwweDFhLDB4NzAsMHg2MywweGU1LDB4MTgsMHg1NCwweGYwLDB4NjQsMHhmMCwweDcwLDB4NTl9fSwKLSB7MTYsMHgzMTAwLDAsezB4ODUsMHgxOCwweDE5LDB4ZjUsMHgwZSwweGU1LDB4MTksMHgyNCwweDBmLDB4NjAsMHgxYiwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MjR9fSwKLSB7MTYsMHgzMTEwLDAsezB4ZmQsMHg2MCwweDIyLDB4MTQsMHg2MCwweDFmLDB4MjQsMHgwNSwweDcwLDB4MmYsMHg3NSwweDA4LDB4MDMsMHgwNSwweDBlLDB4ODV9fSwKLSB7MTYsMHgzMTIwLDAsezB4MTgsMHgwOSwweGQyLDB4MzcsMHg4MCwweDI4LDB4NzUsMHgwOCwweDAyLDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweDc1LDB4MTR9fSwKLSB7MTYsMHgzMTMwLDAsezB4MDEsMHhkMiwweDM3LDB4ODAsMHgxOSwweDc1LDB4MDgsMHgwNSwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhlNCwweGY1LDB4MGF9fSwKLSB7MTYsMHgzMTQwLDAsezB4ZjUsMHgwYiwweDc1LDB4MGUsMHgwMywweGQyLDB4MzcsMHg4MCwweDA1LDB4MTIsMHg0OCwweGYzLDB4YzIsMHgzNSwweDMwLDB4MzV9fSwKLSB7MTYsMHgzMTUwLDAsezB4MGEsMHg4NSwweDA4LDB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweDg1LDB4MTgsMHgxOSwweGU1LDB4MTZ9fSwKLSB7MTYsMHgzMTYwLDAsezB4NjQsMHgwNCwweDcwLDB4NjIsMHhmNSwweDBlLDB4ZTUsMHgxOSwweDU0LDB4ZjAsMHhmNSwweDE5LDB4ZjUsMHgxNSwweDg1LDB4MTh9fSwKLSB7MTYsMHgzMTcwLDAsezB4MTksMHhlNSwweDE1LDB4MjQsMHg3MCwweDYwLDB4MTgsMHgyNCwweGYwLDB4NjAsMHgxNCwweDI0LDB4ZjAsMHg2MCwweDEwLDB4MjR9fSwKLSB7MTYsMHgzMTgwLDAsezB4ZjAsMHg2MCwweDFlLDB4MjQsMHhmMCwweDYwLDB4MWEsMHgyNCwweGYwLDB4NjAsMHgwNCwweDI0LDB4NjAsMHg3MCwweDI3LDB4ZTV9fSwKLSB7MTYsMHgzMTkwLDAsezB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhkMiwweDM3LDB4ODB9fSwKLSB7MTYsMHgzMWEwLDAsezB4MWEsMHhlNSwweDE1LDB4YzQsMHg1NCwweDBmLDB4ZjUsMHgxOSwweGY1LDB4MDgsMHgwNSwweDBlLDB4ODUsMHgxOCwweDA5LDB4NzV9fSwKLSB7MTYsMHgzMWIwLDAsezB4MTQsMHgwMSwweGQyLDB4MzcsMHg4MCwweDA1LDB4MTIsMHg0OCwweGYzLDB4YzIsMHgzNSwweDMwLDB4MzUsMHgwYSwweDg1LDB4MTl9fSwKLSB7MTYsMHgzMWMwLDAsezB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweGU1LDB4MTYsMHhkMywweDk0LDB4MDUsMHg0MCwweDU3LDB4MTJ9fSwKLSB7MTYsMHgzMWQwLDAsezB4NDgsMHhmMywweDgwLDB4NTIsMHgzMCwweDM5LDB4MTcsMHhlNSwweDBlLDB4NzAsMHgwYSwweDg1LDB4MDgsMHgwOSwweDc1LDB4MDh9fSwKLSB7MTYsMHgzMWUwLDAsezB4MDQsMHgwNSwweDBlLDB4ODAsMHg0MSwweDc0LDB4MDgsMHgyNSwweDBlLDB4ZjgsMHhhNiwweDE5LDB4ODAsMHgzOCwweDIwLDB4Mzd9fSwKLSB7MTYsMHgzMWYwLDAsezB4MmEsMHhlNSwweDBlLDB4YjQsMHgwMSwweDBmLDB4ODUsMHgwOCwweDBhLDB4ODUsMHgwOSwweDBiLDB4ODUsMHgxMywweDA4LDB4ODV9fSwKLSB7MTYsMHgzMjAwLDAsezB4MTIsMHgwOSwweDc1LDB4MGUsMHgwNCwweGU1LDB4MTQsMHhiNCwweDAxLDB4MWMsMHg4NSwweDA4LDB4MGEsMHhlNCwweGY1LDB4MGJ9fSwKLSB7MTYsMHgzMjEwLDAsezB4ODUsMHgxMywweDA4LDB4ODUsMHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ODAsMHgwYiwweGU1LDB4MTQsMHhiNCwweDAxLDB4MDZ9fSwKLSB7MTYsMHgzMjIwLDAsezB4ZTQsMHhmNSwweDBiLDB4NzUsMHgwZSwweDA0LDB4ZTQsMHhmNSwweDFhLDB4MzAsMHgzNSwweDAyLDB4MDUsMHgwZSwweGU1LDB4MGV9fSwKLSB7MTYsMHgzMjMwLDAsezB4ZDMsMHg5NCwweDAzLDB4NTAsMHgwMiwweDAxLDB4MGIsMHhjMiwweDM3LDB4ZTQsMHhmNSwweDBlLDB4ZjUsMHgxMCwweGMyLDB4MzZ9fSwKLSB7MTYsMHgzMjQwLDAsezB4ZDIsMHgzZCwweGY1LDB4MTQsMHg3NCwweDA4LDB4MjUsMHgxMCwweGY4LDB4ZTYsMHhmZiwweDc0LDB4ODAsMHgyNSwweDEwLDB4ZjV9fSwKLSB7MTYsMHgzMjUwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MDgsMHgyNSwweDEwLDB4ZjgsMHhlNCwweGY2LDB4MDV9fSwKLSB7MTUsMHgzMjYwLDAsezB4MTAsMHhlNSwweDEwLDB4YjQsMHgwNCwweGRlLDB4OTAsMHg3ZiwweGI3LDB4NzQsMHgwNCwweGYwLDB4MDEsMHgwYiwweDIyfX0sCi0gezE2LDB4MzI2ZiwwLHsweDkwLDB4NzYsMHgxOCwweGUwLDB4ZmYsMHg2NCwweDA1LDB4NzAsMHg0MiwweDkwLDB4NzUsMHhhYiwweGUwLDB4YjQsMHgwMSwweDE5fX0sCi0gezE2LDB4MzI3ZiwwLHsweDkwLDB4NzIsMHgzNywweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MCwweDgwLDB4MzEsMHhmMCwweDkwfX0sCi0gezE2LDB4MzI4ZiwwLHsweDgwLDB4MjgsMHhmMCwweDkwLDB4ODAsMHgzOSwweGYwLDB4ODAsMHgyMiwweGU0LDB4OTAsMHg3MiwweDM3LDB4ZjAsMHg5MCwweDc1fX0sCi0gezE2LDB4MzI5ZiwwLHsweGFkLDB4ZTAsMHg5MCwweDcyLDB4MmIsMHhmMCwweGUwLDB4MjQsMHg4MCwweGYwLDB4ZTAsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwfX0sCi0gezE2LDB4MzJhZiwwLHsweDgwLDB4MzEsMHhmMCwweDkwLDB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHhlZiwweDY0LDB4MDYsMHg2MCwweDAyfX0sCi0gezE2LDB4MzJiZiwwLHsweDgxLDB4OTksMHg5MCwweDcyLDB4MzksMHg3NCwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MzksMHhlMCwweGZmLDB4MjQsMHhmZSwweDkwfX0sCi0gezE2LDB4MzJjZiwwLHsweDcyLDB4MDQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MzJkZiwwLHsweDgzLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg1NCwweDkwLDB4NzIsMHgzNiwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZmfX0sCi0gezE2LDB4MzJlZiwwLHsweDI0LDB4ZmQsMHg2MCwweDI4LDB4MjQsMHhmZSwweDYwLDB4MjQsMHgyNCwweDAzLDB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDFjfX0sCi0gezE2LDB4MzJmZiwwLHsweDgxLDB4OGMsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3NCwweDI4fX0sCi0gezE2LDB4MzMwZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweDkwLDB4NzIsMHgwNCwweGUwfX0sCi0gezE2LDB4MzMxZiwwLHsweGZmLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc0LDB4MzgsMHgyZiwweGY1fX0sCi0gezE2LDB4MzMyZiwwLHsweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg4MSwweDhjLDB4ZTQsMHg5MCwweDcyLDB4MzYsMHhmMCwweDkwfX0sCi0gezE2LDB4MzMzZiwwLHsweDcyLDB4MzksMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MzM0ZiwwLHsweGUwLDB4ZmYsMHg3ZSwweDAwLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDcwLDB4MDYsMHg5MCwweDcyfX0sCi0gezE2LDB4MzM1ZiwwLHsweDAyLDB4NzQsMHgzYiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDY0LDB4ODAsMHg0ZSwweDcwfX0sCi0gezE2LDB4MzM2ZiwwLHsweDA0LDB4OTAsMHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweDgxLDB4MzUsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwfX0sCi0gezE2LDB4MzM3ZiwwLHsweDAyLDB4ODEsMHgzNSwweGVmLDB4ZjgsMHhlNCwweDkwLDB4NzUsMHgwZCwweGYwLDB4ZTgsMHg5MCwweDc1LDB4MGMsMHhmMCwweDkwfX0sCi0gezE2LDB4MzM4ZiwwLHsweDcyLDB4MzQsMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MzM5ZiwwLHsweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwfX0sCi0gezE2LDB4MzNhZiwwLHsweDM0LDB4MDAsMHhmMCwweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHg3YiwweGQ2LDB4N2EsMHhhNSwweGY5fX0sCi0gezE2LDB4MzNiZiwwLHsweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTUsMHg0MCwweDBhLDB4OTAsMHg3NSwweDBjLDB4NzQsMHhhNSwweGYwLDB4YTMsMHg3NCwweGQ2fX0sCi0gezE2LDB4MzNjZiwwLHsweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwfX0sCi0gezE2LDB4MzNkZiwwLHsweGZlLDB4YTMsMHhlMCwweDc4LDB4MDUsMHhjZSwweGEyLDB4ZTcsMHgxMywweGNlLDB4MTMsMHhkOCwweGY4LDB4ZmYsMHg5MCwweDc1fX0sCi0gezE2LDB4MzNlZiwwLHsweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDkwLDB4NzIsMHgyYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHhkMywweDk0fX0sCi0gezE2LDB4MzNmZiwwLHsweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTQsMHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0fX0sCi0gezE2LDB4MzQwZiwwLHsweGQyLDB4ZjAsMHhjMywweDkwLDB4NzIsMHgyYywweGUwLDB4NjQsMHg4MCwweDk0LDB4ODAsMHg1MCwweDA0LDB4ZTQsMHhmMCwweGEzfX0sCi0gezE2LDB4MzQxZiwwLHsweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHgyNCwweDNhLDB4ZjUsMHg4MiwweGVlLDB4MzQsMHg3MiwweGY1fX0sCi0gezE2LDB4MzQyZiwwLHsweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0fX0sCi0gezE2LDB4MzQzZiwwLHsweGZlLDB4NjAsMHgyOSwweDI0LDB4MDMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MjEsMHg4MCwweDQwLDB4OTAsMHg3MiwweDAyfX0sCi0gezE2LDB4MzQ0ZiwwLHsweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDI4fX0sCi0gezE2LDB4MzQ1ZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwfX0sCi0gezE2LDB4MzQ2ZiwwLHsweGZmLDB4OTAsMHg3MiwweDA0LDB4ZTAsMHhmZSwweDI0LDB4MzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MzQ3ZiwwLHsweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3MiwweDM5fX0sCi0gezExLDB4MzQ4ZiwwLHsweGUwLDB4MDQsMHhmMCwweGUwLDB4NjQsMHgwYSwweDYwLDB4MDIsMHg0MSwweGM3LDB4MjJ9fSwKLSB7MTYsMHgzNDlhLDAsezB4OTAsMHg3NiwweDE4LDB4ZTAsMHhmZiwweGI0LDB4MDUsMHgyMywweDkwLDB4NzIsMHgzNywweGUwLDB4NzAsMHgxZCwweDkwLDB4NzV9fSwKLSB7MTYsMHgzNGFhLDAsezB4YWQsMHhlMCwweDkwLDB4NzIsMHgyYiwweGYwLDB4ZTAsMHgyNCwweDgwLDB4ZjAsMHhlMCwweDkwLDB4ODAsMHgyMCwweGYwLDB4OTB9fSwKLSB7MTYsMHgzNGJhLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9fSwKLSB7MTYsMHgzNGNhLDAsezB4YzEsMHg5MSwweDkwLDB4NzIsMHgzNiwweGUwLDB4NjAsMHgwMiwweGMxLDB4OTEsMHg5MCwweDc2LDB4NDAsMHhlMCwweDcwLDB4MzF9fSwKLSB7MTYsMHgzNGRhLDAsezB4OTAsMHg3MiwweDAzLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3MiwweDAzLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjR9fSwKLSB7MTYsMHgzNGVhLDAsezB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDcyLDB4MjksMHhlMCwweGZkLDB4ZWV9fSwKLSB7MTYsMHgzNGZhLDAsezB4NmQsMHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MGEsMHg1MCwweDA4LDB4OTAsMHg3MiwweDAzLDB4ZTAsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgzNTBhLDAsezB4ZDUsMHg5MCwweDcyLDB4MzksMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4NDAsMHhlMCwweDcwLDB4MDgsMHg5MCwweDcyLDB4MDN9fSwKLSB7MTYsMHgzNTFhLDAsezB4ZTAsMHg5MCwweDcyLDB4MzksMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmQsMHgyNCwweGZlLDB4OTAsMHg3MiwweDJhLDB4ZjB9fSwKLSB7MTYsMHgzNTJhLDAsezB4ZWQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmZ9fSwKLSB7MTYsMHgzNTNhLDAsezB4N2UsMHgwMCwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg3MCwweDA2LDB4OTAsMHg3MiwweDAyLDB4NzR9fSwKLSB7MTYsMHgzNTRhLDAsezB4ODAsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDA0LDB4OTB9fSwKLSB7MTYsMHgzNTVhLDAsezB4NzIsMHgwMiwweGYwLDB4ZWYsMHg0ZSwweDcwLDB4MDIsMHhjMSwweDFiLDB4ZWYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDAyLDB4YzF9fSwKLSB7MTYsMHgzNTZhLDAsezB4MWIsMHhlZiwweGY4LDB4ZTQsMHg5MCwweDc1LDB4MGQsMHhmMCwweGU4LDB4OTAsMHg3NSwweDBjLDB4ZjAsMHhlZCwweDc1LDB4ZjB9fSwKLSB7MTYsMHgzNTdhLDAsezB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDJ9fSwKLSB7MTYsMHgzNThhLDAsezB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMCwweDJmLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4MDAsMHhmMCwweGUwLDB4ZmV9fSwKLSB7MTYsMHgzNTlhLDAsezB4YTMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4N2IsMHhkNiwweDdhLDB4YTUsMHhmOSwweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTV9fSwKLSB7MTYsMHgzNWFhLDAsezB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTB9fSwKLSB7MTYsMHgzNWJhLDAsezB4MjQsMHgyYSwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHgzNCwweDVhLDB4ZjAsMHhlMCwweGZlLDB4YTMsMHhlMCwweDc4LDB4MDV9fSwKLSB7MTYsMHgzNWNhLDAsezB4Y2UsMHhhMiwweGU3LDB4MTMsMHhjZSwweDEzLDB4ZDgsMHhmOCwweGZmLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWZ9fSwKLSB7MTYsMHgzNWRhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NCwweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTR9fSwKLSB7MTYsMHgzNWVhLDAsezB4ODIsMHg0MCwweDBhLDB4OTAsMHg3MiwweDJjLDB4NzQsMHgwMiwweGYwLDB4YTMsMHg3NCwweGQyLDB4ZjAsMHhjMywweDkwLDB4NzJ9fSwKLSB7MTYsMHgzNWZhLDAsezB4MmMsMHhlMCwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgwNCwweGU0LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTB9fSwKLSB7MTYsMHgzNjBhLDAsezB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDJ9fSwKLSB7MTYsMHgzNjFhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmEsMHhlMCwweGZmLDB4MjQsMHhmZCwweDYwLDB4MmQsMHgyNCwweGZlLDB4NjAsMHgyOSwweDI0LDB4MDN9fSwKLSB7MTYsMHgzNjJhLDAsezB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDIxLDB4ODAsMHg0MCwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmZ9fSwKLSB7MTYsMHgzNjNhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgzNjRhLDAsezB4ODAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDgwLDB4MjEsMHg5MCwweDcyLDB4MDIsMHhlMCwweGZmLDB4OTAsMHg3MiwweDJhLDB4ZTB9fSwKLSB7MTYsMHgzNjVhLDAsezB4ZmUsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjV9fSwKLSB7MTYsMHgzNjZhLDAsezB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgwNiwweDkwLDB4NzJ9fSwKLSB7MTYsMHgzNjdhLDAsezB4MzksMHg3NCwweDBhLDB4ZjAsMHg5MCwweDcyLDB4MzksMHhlMCwweDA0LDB4ZjAsMHhlMCwweGMzLDB4OTQsMHgwYSwweDUwLDB4MDJ9fSwKLSB7IDgsMHgzNjhhLDAsezB4YTEsMHgxMSwweGU0LDB4OTAsMHg3NiwweDQwLDB4ZjAsMHgyMn19LAotIHsxNiwweDM2OTIsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4MjIsMHg1MCwweDAyLDB4ZTcsMHgyMiwweGJiLDB4ZmUsMHgwMn19LAotIHsgOSwweDM2YTIsMCx7MHhlMywweDIyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhlNCwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNmFiLDAsezB4YmIsMHgwMSwweDBjLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweDIyLDB4NTB9fSwKLSB7MTYsMHgzNmJiLDAsezB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGU2LDB4MjIsMHhiYiwweGZlLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4MjJ9fSwKLSB7MTMsMHgzNmNiLDAsezB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlNCwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNmQ4LDAsezB4YzIsMHhkNSwweGVjLDB4MzAsMHhlNywweDA5LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ZWV9fSwKLSB7MTYsMHgzNmU4LDAsezB4MzAsMHhlNywweDE1LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MTIsMHgzOCwweDFmLDB4YzN9fSwKLSB7MTYsMHgzNmY4LDAsezB4ZTQsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ODAsMHgwMywweDEyLDB4MzgsMHgxZiwweDMwLDB4ZDUsMHgwNywweGMzLDB4ZTR9fSwKLSB7IDYsMHgzNzA4LDAsezB4OWYsMHhmZiwweGU0LDB4OWUsMHhmZSwweDIyfX0sCi0gezE2LDB4MzcwZSwwLHsweGJiLDB4MDEsMHgxMCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHhmNSwweGYwfX0sCi0gezE2LDB4MzcxZSwwLHsweGEzLDB4ZTAsMHgyMiwweDUwLDB4MDksMHhlOSwweDI1LDB4ODIsMHhmOCwweDg2LDB4ZjAsMHgwOCwweGU2LDB4MjIsMHhiYiwweGZlfX0sCi0gezE2LDB4MzcyZSwwLHsweDBhLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlMiwweGY1LDB4ZjAsMHgwOCwweGUyLDB4MjIsMHhlNSwweDgzLDB4MmEsMHhmNSwweDgzfX0sCi0geyA4LDB4MzczZSwwLHsweGU5LDB4OTMsMHhmNSwweGYwLDB4YTMsMHhlOSwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNzQ2LDAsezB4ZTgsMHg4ZiwweGYwLDB4YTQsMHhjYywweDhiLDB4ZjAsMHhhNCwweDJjLDB4ZmMsMHhlOSwweDhlLDB4ZjAsMHhhNCwweDJjLDB4ZmN9fSwKLSB7MTYsMHgzNzU2LDAsezB4OGEsMHhmMCwweGVkLDB4YTQsMHgyYywweGZjLDB4ZWEsMHg4ZSwweGYwLDB4YTQsMHhjZCwweGE4LDB4ZjAsMHg4YiwweGYwLDB4YTR9fSwKLSB7MTYsMHgzNzY2LDAsezB4MmQsMHhjYywweDM4LDB4MjUsMHhmMCwweGZkLDB4ZTksMHg4ZiwweGYwLDB4YTQsMHgyYywweGNkLDB4MzUsMHhmMCwweGZjLDB4ZWJ9fSwKLSB7MTYsMHgzNzc2LDAsezB4OGUsMHhmMCwweGE0LDB4ZmUsMHhhOSwweGYwLDB4ZWIsMHg4ZiwweGYwLDB4YTQsMHhjZiwweGM1LDB4ZjAsMHgyZSwweGNkLDB4Mzl9fSwKLSB7MTUsMHgzNzg2LDAsezB4ZmUsMHhlNCwweDNjLDB4ZmMsMHhlYSwweGE0LDB4MmQsMHhjZSwweDM1LDB4ZjAsMHhmZCwweGU0LDB4M2MsMHhmYywweDIyfX0sCi0gezE2LDB4Mzc5NSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGVjLDB4NjQsMHg4MCwweGM4fX0sCi0geyA2LDB4MzdhNSwwLHsweDY0LDB4ODAsMHg5OCwweDQ1LDB4ZjAsMHgyMn19LAotIHsxNiwweDM3YWIsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH19LAotIHsgMSwweDM3YmIsMCx7MHgyMn19LAotIHsxMiwweDM3YmMsMCx7MHhlYywweGYwLDB4YTMsMHhlZCwweGYwLDB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4MjJ9fSwKLSB7MTYsMHgzN2M4LDAsezB4YTgsMHg4MiwweDg1LDB4ODMsMHhmMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MTIsMHgzNywweGRmLDB4MTIsMHgzNywweGRmLDB4MTJ9fSwKLSB7MTYsMHgzN2Q4LDAsezB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweGU0LDB4NzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODN9fSwKLSB7MTYsMHgzN2U4LDAsezB4YzgsMHhjNSwweDgyLDB4YzgsMHhmMCwweGEzLDB4YzUsMHg4MywweGM1LDB4ZjAsMHhjNSwweDgzLDB4YzgsMHhjNSwweDgyLDB4Yzh9fSwKLSB7IDEsMHgzN2Y4LDAsezB4MjJ9fSwKLSB7MTYsMHgzN2Y5LDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhmOCwweGU0LDB4OTMsMHg3MCwweDEyLDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwZCwweGEzLDB4YTN9fSwKLSB7MTYsMHgzODA5LDAsezB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywweGY1LDB4ODIsMHg4OCwweDgzLDB4ZTQsMHg3MywweDc0LDB4MDIsMHg5MywweDY4LDB4NjB9fSwKLSB7IDYsMHgzODE5LDAsezB4ZWYsMHhhMywweGEzLDB4YTMsMHg4MCwweGRmfX0sCi0gezE2LDB4MzgxZiwwLHsweGJjLDB4MDAsMHgwYiwweGJlLDB4MDAsMHgyOSwweGVmLDB4OGQsMHhmMCwweDg0LDB4ZmYsMHhhZCwweGYwLDB4MjIsMHhlNCwweGNjfX0sCi0gezE2LDB4MzgyZiwwLHsweGY4LDB4NzUsMHhmMCwweDA4LDB4ZWYsMHgyZiwweGZmLDB4ZWUsMHgzMywweGZlLDB4ZWMsMHgzMywweGZjLDB4ZWUsMHg5ZCwweGVjfX0sCi0gezE2LDB4MzgzZiwwLHsweDk4LDB4NDAsMHgwNSwweGZjLDB4ZWUsMHg5ZCwweGZlLDB4MGYsMHhkNSwweGYwLDB4ZTksMHhlNCwweGNlLDB4ZmQsMHgyMiwweGVkfX0sCi0gezE2LDB4Mzg0ZiwwLHsweGY4LDB4ZjUsMHhmMCwweGVlLDB4ODQsMHgyMCwweGQyLDB4MWMsMHhmZSwweGFkLDB4ZjAsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmfX0sCi0gezE2LDB4Mzg1ZiwwLHsweGZmLDB4ZWQsMHgzMywweGZkLDB4NDAsMHgwNywweDk4LDB4NTAsMHgwNiwweGQ1LDB4ZjAsMHhmMiwweDIyLDB4YzMsMHg5OCwweGZkfX0sCi0geyA1LDB4Mzg2ZiwwLHsweDBmLDB4ZDUsMHhmMCwweGVhLDB4MjJ9fSwKLSB7MTYsMHgzODc0LDAsezB4ZTQsMHg5MCwweDc2LDB4MjksMHhmMCwweDkwLDB4NzYsMHgyOSwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9fSwKLSB7MTYsMHgzODg0LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgzODk0LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyOSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgzOGE0LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgzOGI0LDAsezB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgyYSwweGYwLDB4MjR9fSwKLSB7MTYsMHgzOGM0LDAsezB4YmYsMHg3MCwweDAyLDB4NDEsMHg0MSwweDI0LDB4ZTAsMHg3MCwweDAyLDB4NDEsMHgxMiwweDI0LDB4MjEsMHg2MCwweDAyLDB4NDF9fSwKLSB7MTYsMHgzOGQ0LDAsezB4M2EsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDdkLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhiMiwweDI0LDB4MDJ9fSwKLSB7MTYsMHgzOGU0LDAsezB4NjAsMHgwMiwweDQxLDB4MGEsMHgxMiwweDE3LDB4NTEsMHg5MCwweDc2LDB4NDIsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTN9fSwKLSB7MTYsMHgzOGY0LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjV9fSwKLSB7MTYsMHgzOTA0LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDF9fSwKLSB7MTYsMHgzOTE0LDAsezB4MTIsMHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHg5MCwweDc2LDB4N2QsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4N2V9fSwKLSB7MTYsMHgzOTI0LDAsezB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTAsMHg3NiwweDdkLDB4ZjB9fSwKLSB7MTYsMHgzOTM0LDAsezB4OTAsMHg3NiwweDdlLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTB9fSwKLSB7MTYsMHgzOTQ0LDAsezB4NzYsMHg3ZCwweGYwLDB4OTAsMHg3NiwweDdlLDB4NzQsMHgxOCwweGYwLDB4OTAsMHg3NiwweDFhLDB4NzQsMHgwMSwweGYwLDB4MTJ9fSwKLSB7MTYsMHgzOTU0LDAsezB4M2UsMHg4ZiwweDEyLDB4MTgsMHgwMCwweDIyLDB4OTAsMHg3ZSwweGMyLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmJ9fSwKLSB7MTYsMHgzOTY0LDAsezB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDM3LDB4NDYsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2F9fSwKLSB7MTYsMHgzOTc0LDAsezB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZSwweGU0LDB4ZmMsMHhmZCwweDJiLDB4ZmIsMHhlYSwweDNlLDB4ZmF9fSwKLSB7MTYsMHgzOTg0LDAsezB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmZ9fSwKLSB7MTYsMHgzOTk0LDAsezB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgzOWE0LDAsezB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YmMsMHgyMiwweDkwLDB4N2V9fSwKLSB7MTYsMHgzOWI0LDAsezB4YzIsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgzNywweDQ2LDB4Yzh9fSwKLSB7MTYsMHgzOWM0LDAsezB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmV9fSwKLSB7MTYsMHgzOWQ0LDAsezB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYSwweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwLDB4N2V9fSwKLSB7MTYsMHgzOWU0LDAsezB4YzAsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZCwweGVjLDB4Mzh9fSwKLSB7MTYsMHgzOWY0LDAsezB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgzYTA0LDAsezB4ZjUsMHg4MywweDEyLDB4MzcsMHhiYywweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTYsMHgzYTE0LDAsezB4ZTksMHhlMCwweDE0LDB4NzAsMHgxOSwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjB9fSwKLSB7MTYsMHgzYTI0LDAsezB4MGYsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTQsMHgzYTM0LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDNhNDIsMCx7MHhlNCwweDkwLDB4NzYsMHgzNSwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHgwMywweDQwLDB4MDIsMHg0MX19LAotIHsxNiwweDNhNTIsMCx7MHhmZiwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn19LAotIHsxNiwweDNhNjIsMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNH19LAotIHsxNiwweDNhNzIsMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDNhODIsMCx7MHhmMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDNhOTIsMCx7MHg3NCwweGZmLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNhYTIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNhYjIsMCx7MHg4MywweDc0LDB4ODAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhYzIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZDIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZTIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZjIsMCx7MHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHgwNCwweGYwLDB4NDEsMHg0NywweDkwLDB4NzYsMHgzY319LAotIHsxNiwweDNiMDIsMCx7MHg3NCwweDBhLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4M2MsMHhlMH19LAotIHsxNiwweDNiMTIsMCx7MHhmZiwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDYxLDB4ZDIsMHg5MCwweDc2LDB4M2QsMHhlMH19LAotIHsxNiwweDNiMjIsMCx7MHhmZiwweDA0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiMzIsMCx7MHg4MywweGVmLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiNDIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiNTIsMCx7MHg4MywweDc0LDB4NWUsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNiNjIsMCx7MHhmNSwweDgzLDB4NzQsMHhiYSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDNiNzIsMCx7MHg3NSwweGY1LDB4ODMsMHg3NCwweDA1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNiODIsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiOTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiYTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiYjIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxNSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNX19LAotIHsxNiwweDNiYzIsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHgwNCwweGYwLDB4NjEsMHgwZX19LAotIHsgMSwweDNiZDIsMCx7MHgyMn19LAotIHsxNiwweDNiZDMsMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNiZTMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiZjMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNX19LAotIHsxNiwweDNjMDMsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMH19LAotIHsxNiwweDNjMTMsMCx7MHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMH19LAotIHsxNiwweDNjMjMsMCx7MHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDNjMzMsMCx7MHgxMiwweDM3LDB4YzgsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmIsMHg3NX19LAotIHsxNiwweDNjNDMsMCx7MHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQwLDB4ZjAsMHhlYn19LAotIHsxNiwweDNjNTMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4OGMsMHhmMH19LAotIHsxNiwweDNjNjMsMCx7MHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzN319LAotIHsxNiwweDNjNzMsMCx7MHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDNjODMsMCx7MHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNH19LAotIHsxNiwweDNjOTMsMCx7MHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMSwweDc3LDB4MDAsMHg5MH19LAotIHsxNiwweDNjYTMsMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNjYjMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNjYzMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4ZiwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZn19LAotIHsxNiwweDNjZDMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDEsMHhmMH19LAotIHsxNiwweDNjZTMsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4NH19LAotIHsxNiwweDNjZjMsMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNX19LAotIHsxNiwweDNkMDMsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDYxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn19LAotIHsxNiwweDNkMTMsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDNkMjMsMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDNkMzMsMCx7MHg2MSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsgNCwweDNkNDMsMCx7MHg3NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDNkNDcsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH19LAotIHsxNiwweDNkNTcsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn19LAotIHsxNiwweDNkNjcsMCx7MHhjMCwweGUwLDB4OTAsMHg3ZiwweGEyLDB4ZTAsMHg5MCwweDc2LDB4N2YsMHhmMCwweDkwLDB4N2YsMHg3NCwweGUwLDB4OTAsMHg3Nn19LAotIHsxNiwweDNkNzcsMCx7MHg4NywweGYwLDB4OTAsMHg3ZiwweDc1LDB4ZTAsMHg5MCwweDc2LDB4ODgsMHhmMCwweDkwLDB4N2YsMHg5OCwweGUwLDB4NDQsMHgwMn19LAotIHsxNiwweDNkODcsMCx7MHhmMCwweDkwLDB4NzYsMHg5NiwweGUwLDB4ZmYsMHgyMCwweGUxLDB4MGMsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMH19LAotIHsxNiwweDNkOTcsMCx7MHhkMiwweDMyLDB4MTIsMHg0YSwweGM0LDB4OTAsMHg3NiwweDdmLDB4ZTAsMHgyMCwweGUyLDB4NTAsMHg5MCwweDc2LDB4ODcsMHhlMH19LAotIHsxNiwweDNkYTcsMCx7MHhmZSwweGEzLDB4ZTAsMHg3YywweDAwLDB4MjQsMHgwMCwweGY1LDB4MzQsMHhlYywweDNlLDB4ZjUsMHgzMywweDkwLDB4NzYsMHg5OH19LAotIHsxNiwweDNkYjcsMCx7MHhlMCwweGZkLDB4YWUsMHgzMywweGFmLDB4MzQsMHgxMiwweDM2LDB4ZDgsMHg5MCwweDc2LDB4ODcsMHhlZiwweGYwLDB4ZDIsMHgyZn19LAotIHsxNiwweDNkYzcsMCx7MHgzMCwweDMxLDB4MjksMHgyMCwweDNmLDB4MjYsMHhjMiwweDMxLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHg5MH19LAotIHsxNiwweDNkZDcsMCx7MHg3ZiwweDlhLDB4ZTAsMHgzMCwweGU0LDB4MDQsMHhkMiwweDJkLDB4YzIsMHgyYywweDkwLDB4N2YsMHg5YSwweGUwLDB4MjAsMHhlNX19LAotIHsxNiwweDNkZTcsMCx7MHgwNCwweGMyLDB4MmQsMHhkMiwweDJjLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg0NCwweDMwLDB4ZjAsMHgxMiwweDRhLDB4NTAsMHgxMn19LAotIHsxNiwweDNkZjcsMCx7MHgxYiwweDA0LDB4MzAsMHgyZiwweDEyLDB4MTIsMHg0MiwweDE2LDB4YzIsMHgyZiwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MTYsMHg4YX19LAotIHsxNiwweDNlMDcsMCx7MHg3NSwweGU4LDB4MGQsMHhkMiwweDJiLDB4ODAsMHgwNSwweDc1LDB4ZTgsMHgwMSwweGMyLDB4MmIsMHgyMCwweDJiLDB4MzQsMHg5MH19LAotIHsxNiwweDNlMTcsMCx7MHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwZSwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweGEzLDB4NzQsMHgwNn19LAotIHsxNiwweDNlMjcsMCx7MHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMH19LAotIHsxNiwweDNlMzcsMCx7MHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwMywweDBiLDB4OTAsMHg3NiwweDdjLDB4ZTQsMHhmMCwweGEzLDB4ZjAsMHhhM319LAotIHsxNiwweDNlNDcsMCx7MHg3NCwweDE4LDB4ZjAsMHg3NSwweGNhLDB4ZDMsMHg3NSwweGNiLDB4ZmUsMHhkMiwweGNhLDB4MzAsMHgzNCwweDA0LDB4YzIsMHgzNH19LAotIHsxNiwweDNlNTcsMCx7MHg4MCwweDAyLDB4ZDIsMHgzNCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDNlNjcsMCx7MHg5OCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMH19LAotIHsxNiwweDNlNzcsMCx7MHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMH19LAotIHsgOCwweDNlODcsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4M2U4ZiwwLHsweDkwLDB4NzYsMHg5MiwweGUwLDB4MTQsMHg2MCwweDFkLDB4MTQsMHg3MCwweDAyLDB4ZTEsMHg0NCwweDI0LDB4MDIsMHg2MCwweDAyfX0sCi0gezE2LDB4M2U5ZiwwLHsweGUxLDB4ZDQsMHg5MCwweDc2LDB4OTQsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweGU0LDB4OTAsMHg3NiwweDhlfX0sCi0gezE2LDB4M2VhZiwwLHsweGYwLDB4ZDIsMHgzMSwweDIyLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfX0sCi0gezE2LDB4M2ViZiwwLHsweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4M2VjZiwwLHsweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MWIsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfX0sCi0gezE2LDB4M2VkZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4MzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfX0sCi0gezE2LDB4M2VlZiwwLHsweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMywweDE4LDB4ZTQsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwfX0sCi0gezE2LDB4M2VmZiwwLHsweDdmLDB4ZjMsMHg3NCwweDY0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0fX0sCi0gezE2LDB4M2YwZiwwLHsweDA0LDB4ZjAsMHg5MCwweDc2LDB4OTQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4ODAsMHgwMCwweGYwLDB4MzAsMHgzZiwweDA5fX0sCi0gezE2LDB4M2YxZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0gezE2LDB4M2YyZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4M2YzZiwwLHsweDhlLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDFiLDB4ZTQsMHg5MCwweDdmfX0sCi0gezE2LDB4M2Y0ZiwwLHsweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDQ0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4M2Y1ZiwwLHsweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfX0sCi0gezE2LDB4M2Y2ZiwwLHsweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg0YywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4M2Y3ZiwwLHsweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MTgsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfX0sCi0gezE2LDB4M2Y4ZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfX0sCi0gezE2LDB4M2Y5ZiwwLHsweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHg5NCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHg4MCwweDAwLDB4ZjAsMHgzMCwweDNmfX0sCi0gezE2LDB4M2ZhZiwwLHsweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4M2ZiZiwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDYsMHhmMCwweDkwfX0sCi0geyA2LDB4M2ZjZiwwLHsweDc2LDB4OGUsMHg3NCwweDAyLDB4ZjAsMHgyMn19LAotIHsxNiwweDNmZDUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDIsMHhmMH19LAotIHsxNiwweDNmZTUsMCx7MHg5MCwweDdmLDB4YzcsMHhlMCwweGY1LDB4MTEsMHg3NSwweDBmLDB4MDAsMHg3NSwweDBkLDB4MDAsMHhkMiwweDMzLDB4ZDAsMHg4Mn19LAotIHsgNSwweDNmZjUsMCx7MHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0geyA2LDB4M2ZmYSwwLHsweDEyLDB4NGEsMHhjNCwweGMyLDB4MzEsMHgyMn19LAotIHsxNiwweDQwMDAsMCx7MHhlNSwweDExLDB4ZDMsMHg5NCwweDAwLDB4NTAsMHgwMiwweDIxLDB4MDYsMHg5MCwweDc2LDB4ODksMHhlMCwweGMzLDB4OTQsMHgwOH19LAotIHsxNiwweDQwMTAsMCx7MHg0MCwweDAyLDB4MjEsMHgwNiwweDc0LDB4NDAsMHgyNSwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH19LAotIHsxNiwweDQwMjAsMCx7MHhmNSwweDE3LDB4ZTUsMHgwZCwweDYwLDB4MGUsMHg5MCwweDgwLDB4MDUsMHhlNSwweDE3LDB4ZjAsMHg5MCwweDc2LDB4ODksMHhlMH19LAotIHsxNiwweDQwMzAsMCx7MHgwNCwweGYwLDB4MDEsMHhkYSwweGU1LDB4MTcsMHgxMiwweDM3LDB4ZjksMHg0MCwweGMxLDB4MDIsMHg0MCwweDY3LDB4MDUsMHg0MH19LAotIHsxNiwweDQwNDAsMCx7MHg3YSwweDA2LDB4NDAsMHg5OCwweDA3LDB4NDAsMHhjMSwweDBjLDB4NDAsMHhjMSwweDBkLDB4NDAsMHhjNywweDBmLDB4NDAsMHhjYn19LAotIHsxNiwweDQwNTAsMCx7MHhmNiwweDQwLDB4Y2IsMHhmOCwweDQwLDB4Y2IsMHhmYSwweDQwLDB4Y2IsMHhmYiwweDQwLDB4Y2IsMHhmYywweDQwLDB4Y2IsMHhmZX19LAotIHsxNiwweDQwNjAsMCx7MHg0MCwweGNiLDB4ZmYsMHgwMCwweDAwLDB4NDAsMHhkYSwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MH19LAotIHsxNiwweDQwNzAsMCx7MHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg2MCwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MH19LAotIHsxNiwweDQwODAsMCx7MHgwNSwweGYwLDB4OTAsMHg3ZSwweDQyLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDQwOTAsMCx7MHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MCwweDQyLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH19LAotIHsxNiwweDQwYTAsMCx7MHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3ZSwweDQzLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH19LAotIHsxNiwweDQwYjAsMCx7MHg5MCwweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MH19LAotIHsxNiwweDQwYzAsMCx7MHgxOSwweGQyLDB4M2IsMHhkMiwweDNjLDB4ODAsMHgxMywweGQyLDB4M2IsMHg4MCwweDBmLDB4OTAsMHg4MCwweDA1LDB4ZTUsMHgxN319LAotIHsxNiwweDQwZDAsMCx7MHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDIwLDB4M2IsMHgwNCwweDA1LDB4MGQsMHg4MH19LAotIHsxNiwweDQwZTAsMCx7MHgxZiwweDMwLDB4M2MsMHgxYywweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDIsMHhlMH19LAotIHsxNiwweDQwZjAsMCx7MHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMX19LAotIHsxNiwweDQxMDAsMCx7MHgwNSwweDBmLDB4MTUsMHgxMSwweDAxLDB4MDAsMHhlNSwweDExLDB4NzAsMHgxMCwweGMyLDB4MzMsMHhmNSwweDBkLDB4ZjUsMHgwZn19LAotIHsxMSwweDQxMTAsMCx7MHg5MCwweDdmLDB4YzcsMHg3NCwweDA0LDB4ZjAsMHhjMiwweDNiLDB4YzIsMHgzYywweDIyfX0sCi0gezE2LDB4NDExYiwwLHsweDkwLDB4NzYsMHg4ZCwweGUwLDB4NjQsMHgwMSwweDcwLDB4MjcsMHgzMCwweDI3LDB4MDgsMHhjMiwweDI3LDB4MTIsMHgwOCwweDAwfX0sCi0gezE2LDB4NDEyYiwwLHsweDEyLDB4MTcsMHg0YSwweDMwLDB4MjgsMHgwOCwweGMyLDB4MjgsMHgxMiwweDM4LDB4NzQsMHgxMiwweDE3LDB4NGEsMHgzMCwweDJhfX0sCi0gezE2LDB4NDEzYiwwLHsweDBlLDB4ZTQsMHg5MCwweDc2LDB4OGQsMHhmMCwweGMyLDB4MmEsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDkwfX0sCi0gezE2LDB4NDE0YiwwLHsweDc2LDB4M2YsMHhlMCwweGI0LDB4MDEsMHgwNSwweGU0LDB4ZjAsMHgxMiwweDMyLDB4NmYsMHg5MCwweDc2LDB4NDEsMHhlMCwweGI0fX0sCi0gezE2LDB4NDE1YiwwLHsweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzNCwweDlhLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDM0fX0sCi0gezE2LDB4NDE2YiwwLHsweDlhLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHgyMCwweGU0LDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHgzMCwweGU0fX0sCi0gezE2LDB4NDE3YiwwLHsweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4MjAsMHhlNSwweDAyLDB4YzIsMHgzZSwweDkwLDB4N2YsMHg5YiwweGUwfX0sCi0gezE2LDB4NDE4YiwwLHsweDMwLDB4ZTUsMHgwMiwweGQyLDB4M2UsMHhhMiwweDQxLDB4MzAsMHgzZiwweDAxLDB4YjMsMHg1MCwweDFmLDB4YTIsMHgzZiwweDkyfX0sCi0gezE2LDB4NDE5YiwwLHsweDQxLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4NDFhYiwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDMwLDB4M2YsMHgzNCwweDkwfX0sCi0gezE2LDB4NDFiYiwwLHsweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBlLDB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4YTMsMHg3NCwweDA2fX0sCi0gezE2LDB4NDFjYiwwLHsweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwYiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweGYwfX0sCi0gezE2LDB4NDFkYiwwLHsweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGIsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHhmMCwweGEzfX0sCi0gezE2LDB4NDFlYiwwLHsweDc0LDB4MTgsMHhmMCwweGEyLDB4NDAsMHgzMCwweDNlLDB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNlLDB4OTIsMHg0MCwweDMwfX0sCi0gezE2LDB4NDFmYiwwLHsweDNlLDB4MDksMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0fX0sCi0gezExLDB4NDIwYiwwLHsweGZiLDB4ZjAsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0MjE2LDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzNSwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhkMywweDk0LDB4MmR9fSwKLSB7MTYsMHg0MjI2LDAsezB4NDAsMHgyYiwweDkwLDB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDN9fSwKLSB7MTYsMHg0MjM2LDAsezB4OTQsMHgwZiwweDQwLDB4MTksMHhlNCwweGYwLDB4ZWYsMHhkMywweDk0LDB4MzEsMHg0MCwweDA4LDB4OTAsMHg3NiwweDE5LDB4NzR9fSwKLSB7MTYsMHg0MjQ2LDAsezB4MDMsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc2LDB4MTksMHg3NCwweDAyLDB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4MTl9fSwKLSB7MTYsMHg0MjU2LDAsezB4ZTAsMHhiNCwweDAyLDB4MmMsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YzMsMHg5NCwweDJmLDB4NTAsMHgyMiwweGVmLDB4ZDN9fSwKLSB7MTYsMHg0MjY2LDAsezB4OTQsMHgyYSwweDQwLDB4MWMsMHg5MCwweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjB9fSwKLSB7MTYsMHg0Mjc2LDAsezB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MCwweDBhLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDA0LDB4ZjAsMHgxMiwweDNlLDB4OGZ9fSwKLSB7MTYsMHg0Mjg2LDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHhiNCwweDAyLDB4MjYsMHg5MCwweDc2LDB4ODcsMHhlMCwweGQzLDB4OTQsMHgzMSwweDQwLDB4MWR9fSwKLSB7MTYsMHg0Mjk2LDAsezB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGZ9fSwKLSB7MTYsMHg0MmE2LDAsezB4NDAsMHgwYiwweGU0LDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAzLDB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4MTl9fSwKLSB7MTYsMHg0MmI2LDAsezB4ZTAsMHg2NCwweDAzLDB4NzAsMHgzZiwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhjMywweDk0LDB4NWYsMHg1MCwweDM1LDB4OTB9fSwKLSB7MTYsMHg0MmM2LDAsezB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmLDB4NDB9fSwKLSB7MTYsMHg0MmQ2LDAsezB4MjMsMHhlNCwweGYwLDB4ZWYsMHhjMywweDk0LDB4MmYsMHg1MCwweDBjLDB4ZWYsMHhkMywweDk0LDB4MmEsMHg0MCwweDA2LDB4OTB9fSwKLSB7MTYsMHg0MmU2LDAsezB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDJmLDB4NDAsMHgwNiwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDJ9fSwKLSB7MTYsMHg0MmY2LDAsezB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4ODYsMHhlMCwweDcwLDB4MDUsMHg5MCwweDc2LDB4ODUsMHhmMCwweDIyLDB4ZTR9fSwKLSB7IDUsMHg0MzA2LDAsezB4OTAsMHg3NiwweDg2LDB4ZjAsMHgyMn19LAotIHsxNiwweDQzMGIsMCx7MHhlNCwweDkwLDB4NzYsMHg5NiwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZTAsMHg3NCwweDkwLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzMWIsMCx7MHg3ZiwweGUxLDB4NzQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4ZGQsMHhmMCwweDkwLDB4N2YsMHhhMSwweGYwLDB4NTMsMHg4ZX19LAotIHsxNiwweDQzMmIsMCx7MHhmOCwweDc1LDB4ODgsMHgwNSwweDc1LDB4YjgsMHgyMCwweDc1LDB4ZjgsMHgwMSwweDQzLDB4OGUsMHgzMCwweGY1LDB4YzgsMHg3NX19LAotIHsxNiwweDQzM2IsMCx7MHhjYSwweDdmLDB4NzUsMHhjYiwweGY4LDB4NDMsMHhhOCwweDIwLDB4MTIsMHgwNywweDRhLDB4YzIsMHgyYywweGMyLDB4MmQsMHhjMn19LAotIHsxNiwweDQzNGIsMCx7MHgyYiwweGMyLDB4MmYsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGRkLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZmLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzNWIsMCx7MHg3ZiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4NX19LAotIHsxNiwweDQzNmIsMCx7MHhmMCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MTIsMHg0OSwweDU4LDB4MTIsMHgwZn19LAotIHsxNiwweDQzN2IsMCx7MHhjNiwweDEyLDB4NGEsMHg4ZCwweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHgwOCwweGYwLDB4ZTAsMHg1NCwweGI5LDB4ZjAsMHhkMn19LAotIHsxNiwweDQzOGIsMCx7MHgzMCwweDIwLDB4MzAsMHgxOCwweDEyLDB4NDcsMHhiNCwweDEyLDB4MzAsMHgwMCwweDEyLDB4NDAsMHgwMCwweDEyLDB4NDIsMHgxNn19LAotIHsxNiwweDQzOWIsMCx7MHgxMiwweDRhLDB4NTAsMHgxMiwweDFiLDB4MDQsMHgxMiwweDE2LDB4NjEsMHgxMiwweDQyLDB4MTYsMHhjMiwweDJmLDB4YzIsMHgzMX19LAotIHsxNiwweDQzYWIsMCx7MHhjMiwweDMyLDB4YzIsMHgzNCwweGMyLDB4MzMsMHhjMiwweDI5LDB4YzIsMHgyNywweGMyLDB4MjgsMHhlNCwweGY1LDB4MTEsMHg5MH19LAotIHsxNiwweDQzYmIsMCx7MHg3NiwweDg5LDB4ZjAsMHg5MCwweDc2LDB4M2YsMHhmMCwweDkwLDB4NzYsMHg0MSwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzY2IsMCx7MHg3NiwweDhhLDB4ZjAsMHhhMywweGYwLDB4YTMsMHgwNCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3NiwweDk5LDB4ZjAsMHgyMn19LAotIHsxNiwweDQzZGIsMCx7MHgxMiwweDRkLDB4YTMsMHg0MCwweDAyLDB4ODEsMHhhMCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhmZSwweDYwLDB4MWUsMHgxNH19LAotIHsxNiwweDQzZWIsMCx7MHg2MCwweDQ2LDB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4ODEsMHg5MSwweDI0LDB4MDQsMHg2MCwweDAyLDB4ODEsMHg5OX19LAotIHsxNiwweDQzZmIsMCx7MHg3NCwweDA1LDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHg3NCwweDAwLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYX19LAotIHsxNiwweDQ0MGIsMCx7MHhlMCwweGZmLDB4MTIsMHg0OSwweGZmLDB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZX19LAotIHsxNiwweDQ0MWIsMCx7MHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMn19LAotIHsxNiwweDQ0MmIsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZiwweDEyLDB4NDgsMHhiMH19LAotIHsxNiwweDQ0M2IsMCx7MHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZSwweGVlLDB4OTAsMHg3Zn19LAotIHsxNiwweDQ0NGIsMCx7MHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH19LAotIHsxNiwweDQ0NWIsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYn19LAotIHsxNiwweDQ0NmIsMCx7MHgxMiwweDE3LDB4OTQsMHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZX19LAotIHsxNiwweDQ0N2IsMCx7MHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsxNiwweDQ0OGIsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsgNSwweDQ0OWIsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0geyAxLDB4NDRhMCwwLHsweDIyfX0sCi0gezE2LDB4NDRhMSwwLHsweGMyLDB4YWYsMHhkMiwweDI0LDB4OTAsMHg3ZiwweDkzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHhiYiwweGYwfX0sCi0gezE2LDB4NDRiMSwwLHsweDkwLDB4N2YsMHg5NiwweGUwLDB4NDQsMHgzMCwweGYwLDB4ZTAsMHg1NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OTQsMHg3NCwweDMwfX0sCi0gezE2LDB4NDRjMSwwLHsweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHhjZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDk1fX0sCi0gezE2LDB4NDRkMSwwLHsweDc0LDB4YzAsMHhmMCwweDkwLDB4N2YsMHg5ZSwweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHg5OSwweGUwLDB4MzAsMHhlMiwweDA5fX0sCi0gezE2LDB4NDRlMSwwLHsweDkwLDB4MDUsMHgxOSwweDc0LDB4YTAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGMyLDB4MjUsMHhjMiwweDIyLDB4YzIsMHgyMywweGMyfX0sCi0gezE2LDB4NDRmMSwwLHsweDI2LDB4MTIsMHg0YSwweGM0LDB4MTIsMHgyZCwweGE5LDB4MTIsMHgzYiwweGQzLDB4MTIsMHg0NSwweDU5LDB4MTIsMHgzYSwweDQyfX0sCi0gezE2LDB4NDUwMSwwLHsweDkwLDB4NzYsMHg2OCwweDc0LDB4MDEsMHhmMCwweDcwLDB4MGYsMHgxMiwweDRiLDB4YmIsMHgxMiwweDA3LDB4ZmUsMHgxMiwweDRkfX0sCi0gezE2LDB4NDUxMSwwLHsweGExLDB4MTIsMHgxYiwweDQwLDB4MTIsMHgxNCwweDk2LDB4MTIsMHg0MywweDBiLDB4OTAsMHg3ZiwweGFmLDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4NDUyMSwwLHsweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDFmLDB4ZjAsMHg5MCwweDdmLDB4YWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4NDUzMSwwLHsweGFkLDB4ZjAsMHg5MCwweDdmLDB4ZGUsMHhmMCwweDkwLDB4N2YsMHhkZiwweGYwLDB4OTAsMHg3ZiwweGFiLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4NDU0MSwwLHsweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDQzLDB4ZDgsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4fX0sCi0geyA4LDB4NDU1MSwwLHsweDIwLDB4NTMsMHhhOCwweGEwLDB4NDMsMHhhOCwweDgwLDB4MjJ9fSwKLSB7MTYsMHg0NTU5LDAsezB4ZTQsMHg5MCwweDc2LDB4MzYsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NTY5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NTc5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9fSwKLSB7MTYsMHg0NTg5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHg0NTk5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4OTB9fSwKLSB7MTYsMHg0NWE5LDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NWI5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NWM5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9fSwKLSB7MTYsMHg0NWQ5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHg0NWU5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4MjJ9fSwKLSB7MTIsMHg0NWY5LDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDM4LDB4MDIsMHg0NiwweDQwfX0sCi0gezE2LDB4NDYwNSwwLHsweDAyLDB4NDcsMHg1YSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfX0sCi0gezE2LDB4NDYxNSwwLHsweDA4LDB4ZGYsMHhmNCwweDgwLDB4MjksMHhlNCwweDkzLDB4YTMsMHhmOCwweDU0LDB4MDcsMHgyNCwweDBjLDB4YzgsMHhjMywweDMzfX0sCi0gezE2LDB4NDYyNSwwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfX0sCi0gezE2LDB4NDYzNSwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDBjLDB4OGYsMHhlNCwweDdlfX0sCi0gezE2LDB4NDY0NSwwLHsweDAxLDB4OTMsMHg2MCwweGJjLDB4YTMsMHhmZiwweDU0LDB4M2YsMHgzMCwweGU1LDB4MDksMHg1NCwweDFmLDB4ZmUsMHhlNCwweDkzfX0sCi0gezE2LDB4NDY1NSwwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfX0sCi0gezE2LDB4NDY2NSwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfX0sCi0gezE2LDB4NDY3NSwwLHsweGYwLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhLDB4ZGYsMHhlOSwweGRlLDB4ZTcsMHg4MCwweGJlfX0sCi0gezE2LDB4NDY4NSwwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4OTAsMHg3NiwweDgzLDB4ZjAsMHhlMCwweDE0LDB4NjAsMHgxZCwweDE0LDB4NjAsMHgyYSwweDE0fX0sCi0gezE2LDB4NDY5NSwwLHsweDYwLDB4MzcsMHgxNCwweDYwLDB4NDQsMHgyNCwweDA0LDB4NzAsMHg1MCwweDkwLDB4NzYsMHg5MSwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZhNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHg0NywweDkwLDB4NzYsMHg5MiwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZiNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgzNywweDkwLDB4NzYsMHg5MCwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZjNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgyNywweDkwLDB4NzYsMHg4NCwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZkNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgxNywweDkwLDB4NzYsMHg5MywweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZlNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0geyAyLDB4NDZmNSwwLHsweGQzLDB4MjJ9fSwKLSB7MTYsMHg0NmY3LDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9fSwKLSB7MTYsMHg0NzA3LDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9fSwKLSB7MTYsMHg0NzE3LDAsezB4YzAsMHhlMCwweGMyLDB4Y2EsMHhjMiwweGNmLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgzMCwweDJlLDB4MDN9fSwKLSB7MTYsMHg0NzI3LDAsezB4MTIsMHgxNCwweGE2LDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg1MywweGE4LDB4ZmEsMHgxMiwweDE2LDB4NjF9fSwKLSB7MTYsMHg0NzM3LDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDB9fSwKLSB7MTYsMHg0NzQ3LDAsezB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjB9fSwKLSB7IDMsMHg0NzU3LDAsezB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NDc1YSwwLHsweGU0LDB4OTAsMHg3NiwweDY2LDB4ZjAsMHgxMiwweDQ0LDB4YTEsMHgyMCwweDI2LDB4MTMsMHg5MCwweDc2LDB4NjYsMHhlMCwweGMzfX0sCi0gezE2LDB4NDc2YSwwLHsweDk0LDB4MDIsMHg1MCwweDBhLDB4ZTAsMHgwNCwweGYwLDB4ZDIsMHg0MiwweDEyLDB4NGEsMHhmNiwweDgwLDB4ZWEsMHgzMCwweDI2fX0sCi0gezE2LDB4NDc3YSwwLHsweDA1LDB4MTIsMHgyOCwweDAxLDB4YzIsMHgyNiwweDMwLDB4MjUsMHgyYiwweDkwLDB4NzYsMHg5NiwweGUwLDB4NTQsMHhmYywweGYwfX0sCi0gezE2LDB4NDc4YSwwLHsweDkwLDB4ODAsMHgwMywweGYwLDB4MTIsMHgxNCwweDk2LDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg5MCwweDgwfX0sCi0gezE2LDB4NDc5YSwwLHsweDAzLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg2NywweGYwLDB4OTAsMHg3NiwweDY3LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhiNCwweDRifX0sCi0gezEwLDB4NDdhYSwwLHsweGY2LDB4MTIsMHgzZiwweGZhLDB4MTIsMHg0MSwweDFiLDB4ODAsMHhjNSwweDIyfX0sCi0gezE2LDB4NDdiNCwwLHsweGU0LDB4OTAsMHg3NiwweDliLDB4ZjAsMHg5MCwweDc2LDB4OWIsMHhlMCwweGZmLDB4MDQsMHhmMCwweGVmLDB4NjAsMHgwOCwweGUwfX0sCi0gezE2LDB4NDdjNCwwLHsweDI0LDB4MDgsMHhmOCwweGU0LDB4ZjYsMHg4MCwweGVlLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg1NCwweGY3fX0sCi0gezE2LDB4NDdkNCwwLHsweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhlNCwweGY1LDB4MTgsMHhkMiwweDM1LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhkMiwweDM2fX0sCi0gezE2LDB4NDdlNCwwLHsweDc1LDB4MTIsMHgxMSwweDc1LDB4MTMsMHgyMiwweGMyLDB4MzcsMHhjMiwweDM5LDB4YzIsMHgzOCwweGY1LDB4MTYsMHhmNSwweDE0fX0sCi0gezExLDB4NDdmNCwwLHsweGY1LDB4MWEsMHhmNSwweDBkLDB4YzIsMHgzYiwweGMyLDB4M2MsMHhjMiwweDNkLDB4MjJ9fSwKLSB7MTYsMHg0ODAwLDAsezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg5MCwweDc2LDB4ODMsMHhmMCwweGUwLDB4MTQsMHg2MCwweDE3LDB4MTQsMHg2MCwweDIxLDB4MTR9fSwKLSB7MTYsMHg0ODEwLDAsezB4NjAsMHgyYiwweDE0LDB4NjAsMHgzMiwweDI0LDB4MDQsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTF9fSwKLSB7MTYsMHg0ODIwLDAsezB4ZjAsMHg4MCwweDM1LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTIsMHhmMCwweDEyLDB4M2UsMHg4ZiwweDgwLDB4Mjh9fSwKLSB7MTYsMHg0ODMwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTAsMHhmMCwweDEyLDB4MTgsMHgwMCwweDgwLDB4MWIsMHg5MCwweDdmLDB4ZWF9fSwKLSB7MTYsMHg0ODQwLDAsezB4ZTAsMHg5MCwweDc2LDB4ODQsMHhmMCwweDgwLDB4MTEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MywweGYwLDB4ODB9fSwKLSB7MTAsMHg0ODUwLDAsezB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGQzLDB4MjJ9fSwKLSB7MTYsMHg0ODVhLDAsezB4ZTQsMHg5MCwweDc2LDB4MjYsMHhmMCwweDkwLDB4NzYsMHgyNiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzR9fSwKLSB7MTYsMHg0ODZhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHg0ODdhLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHg0ODhhLDAsezB4ZWYsMHhiNCwweDA0LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9fSwKLSB7MTYsMHg0ODlhLDAsezB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTB9fSwKLSB7IDYsMHg0OGFhLDAsezB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDIyfX0sCi0geyAyLDB4NDhiMCwwLHsweDhmLDB4MmV9fSwKLSB7MTYsMHg0OGIyLDAsezB4ZTQsMHhmNSwweDJmLDB4NzUsMHgzMCwweGZmLDB4NzUsMHgzMSwweDA2LDB4NzUsMHgzMiwweGJlLDB4YWIsMHgzMCwweGFhLDB4MzF9fSwKLSB7MTYsMHg0OGMyLDAsezB4YTksMHgzMiwweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweGI0LDB4MDMsMHgxZiwweGFmLDB4MmYsMHgwNSwweDJmLDB4ZWZ9fSwKLSB7MTYsMHg0OGQyLDAsezB4NjUsMHgyZSwweDcwLDB4MDEsMHgyMiwweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYSwweGM5LDB4ZWZ9fSwKLSB7MTYsMHg0OGUyLDAsezB4YzksMHg3NSwweDMwLDB4ZmYsMHhmNSwweDMxLDB4ODksMHgzMiwweDgwLDB4ZDIsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9fSwKLSB7IDEsMHg0OGYyLDAsezB4MjJ9fSwKLSB7MTIsMHg0OGYzLDAsezB4YzIsMHgzNywweGU0LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhjMiwweDM2LDB4ZjUsMHgxNCwweDIyfX0sCi0gezE2LDB4NDkwMCwwLHsweDAyLDB4MmYsMHhlNywweDAwLDB4MDIsMHgzZCwweDQ3LDB4MDAsMHgwMiwweDRkLDB4NDYsMHgwMCwweDAyLDB4NGIsMHhkNSwweDAwfX0sCi0gezE2LDB4NDkxMCwwLHsweDAyLDB4NGIsMHg2MCwweDAwLDB4MDIsMHgyZiwweGZmLDB4MDAsMHgwMiwweDRiLDB4ZWQsMHgwMCwweDAyLDB4NGIsMHg4MSwweDAwfX0sCi0gezE2LDB4NDkyMCwwLHsweDAyLDB4NGMsMHgwNCwweDAwLDB4MDIsMHgzZiwweGQ1LDB4MDAsMHgwMiwweDRjLDB4MWIsMHgwMCwweDAyLDB4NGMsMHgzMiwweDAwfX0sCi0gezE2LDB4NDkzMCwwLHsweDAyLDB4NGMsMHg0OSwweDAwLDB4MDIsMHg0YywweDYwLDB4MDAsMHgwMiwweDRjLDB4NzcsMHgwMCwweDAyLDB4NGMsMHg4ZSwweDAwfX0sCi0gezE2LDB4NDk0MCwwLHsweDAyLDB4NGMsMHhhNSwweDAwLDB4MDIsMHg0YywweGJjLDB4MDAsMHgwMiwweDRjLDB4ZDMsMHgwMCwweDAyLDB4NGMsMHhlYSwweDAwfX0sCi0geyA4LDB4NDk1MCwwLHsweDAyLDB4NGQsMHgwMSwweDAwLDB4MDIsMHg0ZCwweDE4LDB4MDB9fSwKLSB7MTYsMHg0OTU4LDAsezB4OTAsMHg3NiwweDQ2LDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHg0OTY4LDAsezB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7MTYsMHg0OTc4LDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHg0OTg4LDAsezB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7MTYsMHg0OTk4LDAsezB4YTMsMHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7IDUsMHg0OWE4LDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHgyMn19LAotIHsxNiwweDQ5YWQsMCx7MHhlNCwweDkwLDB4NzYsMHgyNSwweGYwLDB4OTAsMHg3NiwweDI1LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH19LAotIHsxNiwweDQ5YmQsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH19LAotIHsxNiwweDQ5Y2QsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI1LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX19LAotIHsxNiwweDQ5ZGQsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzAsMHhlMH19LAotIHsxNiwweDQ5ZWQsMCx7MHhmZSwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZX19LAotIHsgMiwweDQ5ZmQsMCx7MHhmMCwweDIyfX0sCi0gezE2LDB4NDlmZiwwLHsweGU0LDB4ZmUsMHg3NSwweDFkLDB4ZmYsMHg3NSwweDFlLDB4MDUsMHg3NSwweDFmLDB4MTIsMHhhYiwweDFkLDB4YWEsMHgxZSwweGE5fX0sCi0gezE2LDB4NGEwZiwwLHsweDFmLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4NjQsMHgwMiwweDcwLDB4MmYsMHhjZCwweGVlLDB4Y2QsMHgwZSwweGVkfX0sCi0gezE2LDB4NGExZiwwLHsweDZmLDB4NzAsMHgwMSwweDIyLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgzNywweDBlLDB4ODUsMHhmMCwweDFiLDB4ZjUsMHgxYywweDYyfX0sCi0gezE2LDB4NGEyZiwwLHsweDFiLDB4ZTUsMHgxYiwweDYyLDB4MWMsMHhlNSwweDFjLDB4NjIsMHgxYiwweDI5LDB4ZmQsMHhlNSwweDFiLDB4M2EsMHhjOSwweGVkfX0sCi0gezE2LDB4NGEzZiwwLHsweGM5LDB4NzUsMHgxZCwweGZmLDB4ZjUsMHgxZSwweDg5LDB4MWYsMHg4MCwweGMxLDB4N2IsMHgwMCwweDdhLDB4MDAsMHg3OSwweDAwfX0sCi0geyAxLDB4NGE0ZiwwLHsweDIyfX0sCi0gezE2LDB4NGE1MCwwLHsweDMwLDB4MmQsMHgzOSwweGMyLDB4MmQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBkLDB4ZTQsMHg5MCwweDc2fX0sCi0gezE2LDB4NGE2MCwwLHsweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjgsMHhmMCwweGEzLDB4NzQsMHgwYSwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGQsMHhlNCwweDkwfX0sCi0gezE2LDB4NGE3MCwwLHsweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHhmMCwweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwZCwweGU0fX0sCi0gezEzLDB4NGE4MCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweGY4LDB4ZjAsMHhhMywweDc0LDB4MTcsMHhmMCwweDIyfX0sCi0gezE2LDB4NGE4ZCwwLHsweGU0LDB4ZmYsMHg3NCwweDU2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDI4fX0sCi0gezE2LDB4NGE5ZCwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHg1ZSwweDJmLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4NGFhZCwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzgsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfX0sCi0geyA2LDB4NGFiZCwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY319LAotIHsgMSwweDRhYzMsMCx7MHgyMn19LAotIHsxNiwweDRhYzQsMCx7MHhlNCwweDkwLDB4NzIsMHgzNiwweGYwLDB4YTMsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MH19LAotIHsxNiwweDRhZDQsMCx7MHg3MiwweDMzLDB4ZjAsMHg5MCwweDcyLDB4MzIsMHhmMCwweDkwLDB4NzIsMHgwMSwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzIsMHgzM319LAotIHsxNiwweDRhZTQsMCx7MHhmMCwweDkwLDB4NzIsMHgzMiwweGYwLDB4OTAsMHg3MiwweDAxLDB4MDQsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHgwNH19LAotIHsgMiwweDRhZjQsMCx7MHhmMCwweDIyfX0sCi0gezE2LDB4NGFmNiwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgzMCwweDQyLDB4MDQsMHhlMCwweDQ0fX0sCi0gezE2LDB4NGIwNiwwLHsweDAyLDB4ZjAsMHg3ZiwweGRjLDB4N2UsMHgwNSwweDEyLDB4NGQsMHgyZiwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmNywweGYwfX0sCi0geyA1LDB4NGIxNiwwLHsweGUwLDB4NDQsMHgwNCwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YjFiLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTQsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDA0LDB4MTJ9fSwKLSB7MTYsMHg0YjJiLDAsezB4NDgsMHg1YSwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9fSwKLSB7IDMsMHg0YjNiLDAsezB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4NGIzZSwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg3MCwweDEzLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4MDQsMHgxMiwweDQ5fX0sCi0gezE2LDB4NGI0ZSwwLHsweGFkLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0geyAyLDB4NGI1ZSwwLHsweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YjYwLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgxMCwweGYwLDB4OTB9fSwKLSB7MTYsMHg0YjcwLDAsezB4NzYsMHg5NiwweGUwLDB4NTQsMHhmZCwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTB9fSwKLSB7IDEsMHg0YjgwLDAsezB4MzJ9fSwKLSB7MTYsMHg0YjgxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7MTUsMHg0YjkxLDAsezB4YzIsMHgyOSwweDkwLDB4NzYsMHg4ZCwweDc0LDB4MDEsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGJhMCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDgyLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg5MSwweGYwLDB4OTAsMHg3NiwweDkyfX0sCi0gezExLDB4NGJiMCwwLHsweGYwLDB4OTAsMHg3NiwweDkwLDB4ZjAsMHg5MCwweDc2LDB4OTMsMHhmMCwweGQzLDB4MjJ9fSwKLSB7MTYsMHg0YmJiLDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHgzMCwweGU3LDB4MTIsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDdmLDB4MTQsMHg3ZSwweDAwLDB4MTJ9fSwKLSB7MTAsMHg0YmNiLDAsezB4NGQsMHgyZiwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YmQ1LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyNSwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDh9fSwKLSB7IDgsMHg0YmU1LDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRiZWQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsgNywweDRiZmQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMDQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDIsMHhmMH19LAotIHsgNywweDRjMTQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMWIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDQsMHhmMH19LAotIHsgNywweDRjMmIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMzIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDQsMHhmMH19LAotIHsgNywweDRjNDIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNDksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDgsMHhmMH19LAotIHsgNywweDRjNTksMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNjAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDgsMHhmMH19LAotIHsgNywweDRjNzAsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNzcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MTAsMHhmMH19LAotIHsgNywweDRjODcsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjOGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MTAsMHhmMH19LAotIHsgNywweDRjOWUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjYTUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MjAsMHhmMH19LAotIHsgNywweDRjYjUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjYmMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MjAsMHhmMH19LAotIHsgNywweDRjY2MsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjZDMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4NDAsMHhmMH19LAotIHsgNywweDRjZTMsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjZWEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4NDAsMHhmMH19LAotIHsgNywweDRjZmEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMDEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4ODAsMHhmMH19LAotIHsgNywweDRkMTEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4ODAsMHhmMH19LAotIHsgNywweDRkMjgsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMmYsMCx7MHg4ZSwweDM1LDB4OGYsMHgzNiwweGU1LDB4MzYsMHgxNSwweDM2LDB4YWUsMHgzNSwweDcwLDB4MDIsMHgxNSwweDM1LDB4NGUsMHg2MH19LAotIHsgNywweDRkM2YsMCx7MHgwNSwweDEyLDB4MTQsMHg4NSwweDgwLDB4ZWUsMHgyMn19LAotIHsxNiwweDRkNDYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMH19LAotIHsgNiwweDRkNTYsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHg0ZDVjLDAsezB4OTAsMHg3NiwweDgyLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweGQzLDB4MjJ9fSwKLSB7IDksMHg0ZDZjLDAsezB4YzIsMHgyNSwweDUzLDB4ZDgsMHhlZiwweDQzLDB4ZDgsMHgyMCwweDMyfX0sCi0geyA3LDB4NGQ3NSwwLHsweDUzLDB4OTgsMHhmZSwweDUzLDB4OTgsMHhmZCwweDMyfX0sCi0geyA3LDB4NGQ3YywwLHsweDUzLDB4YzAsMHhmZSwweDUzLDB4YzAsMHhmZCwweDMyfX0sCi0geyA2LDB4NGQ4MywwLHsweDUzLDB4OTEsMHhiZiwweGQyLDB4MmQsMHgzMn19LAotIHsgNiwweDRkODksMCx7MHg1MywweDkxLDB4N2YsMHhkMiwweDJjLDB4MzJ9fSwKLSB7IDQsMHg0ZDhmLDAsezB4NTMsMHg5MSwweGRmLDB4MzJ9fSwKLSB7IDQsMHg0ZDkzLDAsezB4NTMsMHhkOCwweGY3LDB4MzJ9fSwKLSB7IDQsMHg0ZDk3LDAsezB4MTIsMHgxNywweDMwLDB4MjJ9fSwKLSB7IDMsMHg0ZDliLDAsezB4YzIsMHg4ZCwweDMyfX0sCi0geyAzLDB4NGQ5ZSwwLHsweGMyLDB4OGYsMHgzMn19LAotIHsgMiwweDRkYTEsMCx7MHhkMywweDIyfX0sCi0geyAyLDB4NGRhMywwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGE1LDAsezB4ZDMsMHgyMn19LAotIHsgMiwweDRkYTcsMCx7MHhkMywweDIyfX0sCi0geyAyLDB4NGRhOSwwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGFiLDAsezB4YzMsMHgyMn19LAotIHsgMCwweDAwMDAsMSx7MH19Ci19OwotLyogU291cmNlOiBFTUk2MlNGVy5IRVggCi06MTAwQzhGMDA0MTc2NjgwMTQxNzY2QTAyNDE3NjZCMEFDMTIwQzEyMTIzCi06MTA0NEExMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMEE0Ci06MTA0NEIxMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDc3Ci06MTA0NEMxMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUNFCi06MTA0NEQxMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOTAwCi06MTA0NEUxMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjMwCi06MTA0NEYxMDAyNjEyNEFDNDEyMkRBOTEyM0JEMzEyNDU1OTEyM0E0MjJGCi06MTA0NTAxMDA5MDc2Njg3NDAxRjA3MDBGMTI0QkJCMTIwN0ZFMTI0RENBCi06MTA0NTExMDBBMTEyMUI0MDEyMTQ5NjEyNDMwQjkwN0ZBRkUwNDQwMThECi06MTA0NTIxMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjdECi06MTA0NTMxMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjY5Ci06MTA0NTQxMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODQ1Ci06MDg0NTUxMDAyMDUzQThBMDQzQTg4MDIyMUEKLToxMDQ3NUEwMEU0OTA3NjY2RjAxMjQ0QTEyMDI2MTM5MDc2NjZFMEMzQjAKLToxMDQ3NkEwMDk0MDI1MDBBRTAwNEYwRDI0MjEyNEFGNjgwRUEzMDI2NTUKLToxMDQ3N0EwMDA1MTIyODAxQzIyNjMwMjUyQjkwNzY5NkUwNTRGQ0YwQ0IKLToxMDQ3OEEwMDkwODAwM0YwMTIxNDk2OTA3Njk2RTA0NDAzRjA5MDgwOUQKLToxMDQ3OUEwMDAzRjBFNDkwNzY2N0YwOTA3NjY3RTAwNEYwRTBCNDRCQkIKLTowQTQ3QUEwMEY2MTIzRkZBMTI0MTFCODBDNTIyRUYKLToxMDI4MDEwMEMyMjBDMjIxQzIyQTkwN0ZFOEUwMTIzN0Y5MjgzMDAwQTUKLToxMDI4MTEwMDI4OEMwMTI4QTIwMjJBMUYyMTJBNkEyMjI5M0Q4MDI5MDcKLToxMDI4MjEwMDdEODEyOUQxODIyQTg0QTEyQUJBQTIwMDAwMkFCRjkwREYKLToxMDI4MzEwMDdGRTlFMDE0NjAxMTI0RkU2MDI4MjRGRTYwM0IyNEZDNDMKLToxMDI4NDEwMDcwNDAxMjRCQTA0MUNCMTI0REE3NDAwMjQxQ0I5MDdGNkIKLToxMDI4NTEwMEVBRTBCNDAxMDRDMjIyNDFDQjkwN0ZCNEUwNDQwMUYwMkMKLToxMDI4NjEwMDQxQ0IxMjREQTk5MDdGRUFFMEI0MDEwNEQyMjI0MUNCQzEKLToxMDI4NzEwMDkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwOUIKLToxMDI4ODEwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDI0NUIKLToxMDI4OTEwMEY1NzAwNTEyNDgwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxNEUKLToxMDI4QTEwMENCOTA3RkU5RTAyNEZENjA1NDI0MDI2MDAyMjEzNDEyQzAKLToxMDI4QjEwMDREQTc0MDAyNDFDQjkwN0ZFQUUwNzAzODkwN0ZFQ0UwNzkKLToxMDI4QzEwMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RDMKLToxMDI4RDEwMEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGRUYKLToxMDI4RTEwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0RDgKLToxMDI4RjEwMDIwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCMTI0REE5Q0YKLToxMDI5MDEwMDQwMDI0MUNCOTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0RUMKLToxMDI5MTEwMDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyNTMKLToxMDI5MjEwMEU0MzQ3RkY1ODM3NDAxRjA0MUNCOTA3RkI0RTA0NDAxM0UKLToxMDI5MzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwREUKLToxMDI5NDEwMDYwMTIyNEY4NjAwOTI0MDI3MDI5MTI0M0RCNDFDQjEyODIKLToxMDI5NTEwMDRENUM0MUNCMTI0REE1QTIyMkU0MzNGRjI1RTBGRkEyM0QKLToxMDI5NjEwMDIzRTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyMkQKLToxMDI5NzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwOUUKLToxMDI5ODEwMDYwMzMyNEY2NjAyQTI0MDQ3MDNEOTA3RkVCRTAyNERFNUUKLToxMDI5OTEwMDYwMEMwNDcwMTI5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGNTEKLToxMDI5QTEwMEI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCNkQKLToxMDI5QjEwMDEyNDY4NTQxQ0IxMjREQTVFNDkwN0YwMEYwQTNGMDkwMjMKLToxMDI5QzEwMDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCN0MKLToxMDI5RDEwMDkwN0ZFOUUwMjRGNDYwMzQyNDBDNzAzOTEyNERBNTkwMDUKLToxMDI5RTEwMDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1MUYKLToxMDI5RjEwMEUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwNTgKLToxMDJBMDEwMEYwRTRBM0YwOTA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwODUKLToxMDJBMTEwMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGODEKLToxMDJBMjEwMEU5RTAyNEY2NjAxMjE0NjAxQTI0MDI3MDFERDIyMDkwOEQKLToxMDJBMzEwMDdGQjRFMDQ0MDFGMDgwMTJEMjIwOTA3RkI0RTA0NDAxRTEKLToxMDJBNDEwMEYwODAwNzkwN0ZCNEUwNDQwMUYwMjAyMDE4OTA3RkVFRTEKLToxMDJBNTEwMEUwNzAwNEEzRTA2MDBCRDIyOUQyMjcxMjE3NEFEMjJBRDAKLToxMDJBNjEwMDgwMDMxMjA4MDBDMjIwODA2MTkwN0ZFRUUwNzAwNEEzMTEKLToxMDJBNzEwMEUwNjAwQkQyMjlEMjI4MTIxNzRBRDIyQTgwNEMxMjM4OTAKLToxMDJBODEwMDc0ODA0NzkwN0ZFOUUwMjRGRTYwMTIxNDYwMUEyNDAyRUEKLToxMDJBOTEwMDcwMUREMjIxOTA3RkI0RTA0NDAxRjA4MDEyRDIyMTkwQzgKLToxMDJBQTEwMDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwNUUKLToxMDJBQjEwMDIxMDMxMjEwMDBDMjIxODAxMTEyMkFENjgwMEMxMjRENUUKLToxMDJBQzEwMEFCNTAwNzkwN0ZCNEUwNDQwMUYwMjAyQTA3OTA3RkI0MTcKLTowNTJBRDEwMEUwNDQwMkYwMjJDOAotOjEwNDNEQjAwMTI0REEzNDAwMjgxQTA5MDdGRUJFMDI0RkU2MDFFMTRERgotOjEwNDNFQjAwNjA0NjE0NjA2RTE0NzAwMjgxOTEyNDA0NjAwMjgxOTlGRQotOjEwNDNGQjAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUEwMwotOjEwNDQwQjAwRTBGRjEyNDlGRjhCMjA4QTIxODkyMkVBNDk2MDExQ0VGNQotOjEwNDQxQjAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBQwotOjEwNDQyQjAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4QjBBNQotOjEwNDQzQjAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0Y0OQotOjEwNDQ0QjAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQ0QQotOjEwNDQ1QjAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzRAotOjEwNDQ2QjAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U1OQotOjEwNDQ3QjAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZGNQotOjEwNDQ4QjAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyRAotOjA1NDQ5QjAwQjRFMDQ0MDFGMDUzCi06MDE0NEEwMDAyMkY5Ci06MDMwMDMzMDAwMjRENkMwRgotOjA5NEQ2QzAwQzIyNTUzRDhFRjQzRDgyMDMyRDAKLTowMjBDOUYwMEMxMkY2MwotOjA2M0ZGQTAwMTI0QUM0QzIzMTIyOEMKLToxMDQzMEIwMEU0OTA3Njk2RjA5MDgwMDNGMDkwN0ZFMDc0OTBGMDkwQkMKLToxMDQzMUIwMDdGRTE3NDA0RjBFNDkwN0ZEREYwOTA3RkExRjA1MzhFODkKLToxMDQzMkIwMEY4NzU4ODA1NzVCODIwNzVGODAxNDM4RTMwRjVDODc1OUEKLToxMDQzM0IwMENBN0Y3NUNCRjg0M0E4MjAxMjA3NEFDMjJDQzIyREMyRTQKLToxMDQzNEIwMDJCQzIyRjkwN0ZGQzc0RERGMDkwN0ZGRjc0RkZGMDkwRjkKLToxMDQzNUIwMDdGOTdFMDQ0MDFGMDkwNzYxOTc0MDFGMEU0OTA3Njg1MzQKLToxMDQzNkIwMEYwQTNGMDkwNzY4MUYwOTA3NjgwRjAxMjQ5NTgxMjBGRkUKLToxMDQzN0IwMEM2MTI0QThEOTA3Rjk3RTA0NDA4RjBFMDU0QjlGMEQyMTIKLToxMDQzOEIwMDMwMjAzMDE4MTI0N0I0MTIzMDAwMTI0MDAwMTI0MjE2N0YKLToxMDQzOUIwMDEyNEE1MDEyMUIwNDEyMTY2MTEyNDIxNkMyMkZDMjMxNUUKLToxMDQzQUIwMEMyMzJDMjM0QzIzM0MyMjlDMjI3QzIyOEU0RjUxMTkwRUIKLToxMDQzQkIwMDc2ODlGMDkwNzYzRkYwOTA3NjQxRjA5MDc2NDBGMDkwRDEKLToxMDQzQ0IwMDc2OEFGMEEzRjBBMzA0RjBFNEEzRjA5MDc2OTlGMDIyQTAKLToxMDRBNTAwMDMwMkQzOUMyMkQ5MDc2MTlFMEZGQjQwMTBERTQ5MDc2MjcKLToxMDRBNjAwMDdDRjBBMzc0RjhGMEEzNzQwQUYwRUZCNDAyMERFNDkwQTQKLToxMDRBNzAwMDc2N0NGMEEzNzRGMEYwQTM3NDBCRjBFRkI0MDMwREU0QjQKLTowRDRBODAwMDkwNzY3Q0YwQTM3NEY4RjBBMzc0MTdGMDIyNzgKLToxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKLToxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKLToxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKLTowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCi06MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCi06MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCi06MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCi06MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCi06MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Ci06MTA0MTZCMDA5QTkwN0Y5QkUwMjBFNDAyQzIzRjkwN0Y5QkUwMzBFNDdCCi06MTA0MTdCMDAwMkQyM0Y5MDdGOUJFMDIwRTUwMkMyM0U5MDdGOUJFMDA2Ci06MTA0MThCMDAzMEU1MDJEMjNFQTI0MTMwM0YwMUIzNTAxRkEyM0Y5MjE1Ci06MTA0MTlCMDA0MTMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5Nzc4Ci06MTA0MUFCMDBFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjAzMDNGMzQ5MDNECi06MTA0MUJCMDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjU5Ci06MTA0MUNCMDBGMEEzNzQwQkYwRUZCNDAyMEJFNDkwNzY3Q0YwQTNGMDQ5Ci06MTA0MURCMDBBMzc0MENGMEVGQjQwMzBCRTQ5MDc2N0NGMEEzRjBBMzg0Ci06MTA0MUVCMDA3NDE4RjBBMjQwMzAzRTAxQjM1MDFGQTIzRTkyNDAzMEYzCi06MTA0MUZCMDAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDY0Ci06MEI0MjBCMDBGQkYwOTA3Njk1RTA5MDgwMDFGMDIyMUYKLTowMjA3RkUwMEQzMjIwNAotOjAyNERBMTAwRDMyMjFCCi06MDI0REEzMDBEMzIyMTkKLToxMDRCQTAwMDkwN0ZFQUUwOTA3NjgyRjBFNDkwNzY5MUYwOTA3NjkyQjEKLTowQjRCQjAwMEYwOTA3NjkwRjA5MDc2OTNGMEQzMjIwNgotOjEwNEQ1QzAwOTA3NjgyRTA5MDdGMDBGMDkwN0ZCNTc0MDFGMEQzMjJDMgotOjEwNDgwMDAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDE3MTQ2MDIxMTQ0MAotOjEwNDgxMDAwNjAyQjE0NjAzMjI0MDQ3MDM4OTA3RkVBRTA5MDc2OTEyNwotOjEwNDgyMDAwRjA4MDM1OTA3RkVBRTA5MDc2OTJGMDEyM0U4RjgwMjhGQgotOjEwNDgzMDAwOTA3RkVBRTA5MDc2OTBGMDEyMTgwMDgwMUI5MDdGRUE1QgotOjEwNDg0MDAwRTA5MDc2ODRGMDgwMTE5MDdGRUFFMDkwNzY5M0YwODA5QgotOjBBNDg1MDAwMDc5MDdGQjRFMDQ0MDFGMEQzMjI4QQotOjEwNDY4NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRBRQotOjEwNDY5NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA1OAotOjEwNDZBNTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDA5RQotOjEwNDZCNTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBBMAotOjEwNDZDNTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBBQwotOjEwNDZENTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDA5RAotOjEwNDZFNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA0RAotOjAyNDZGNTAwRDMyMkNFCi06MDI0REE1MDBEMzIyMTcKLTowMjREQTcwMEQzMjIxNQotOjAyNERBOTAwRDMyMjEzCi06MDI0REFCMDBDMzIyMjEKLToxMDJGRTcwMEMwRTBDMDgzQzA4MkQyMjY1MzkxRUY5MDdGQUI3NDAxQkIKLTowODJGRjcwMEYwRDA4MkQwODNEMEUwMzI1QgotOjEwNEQ0NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDA3MwotOjA2NEQ1NjAwODJEMDgzRDBFMDMyQTAKLToxMDNENDcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRjYKLToxMDNENTcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQjEKLToxMDNENjcwMEMwRTA5MDdGQTJFMDkwNzY3RkYwOTA3Rjc0RTA5MDc2M0QKLToxMDNENzcwMDg3RjA5MDdGNzVFMDkwNzY4OEYwOTA3Rjk4RTA0NDAyMTYKLToxMDNEODcwMEYwOTA3Njk2RTBGRjIwRTEwQzQ0MDJGMDkwODAwM0YwN0IKLToxMDNEOTcwMEQyMzIxMjRBQzQ5MDc2N0ZFMDIwRTI1MDkwNzY4N0UwRDQKLToxMDNEQTcwMEZFQTNFMDdDMDAyNDAwRjUzNEVDM0VGNTMzOTA3Njk4RDIKLToxMDNEQjcwMEUwRkRBRTMzQUYzNDEyMzZEODkwNzY4N0VGRjBEMjJGQ0UKLToxMDNEQzcwMDMwMzEyOTIwM0YyNkMyMzE5MDdGOTRFMDU0Q0ZGMDkwQzQKLToxMDNERDcwMDdGOUFFMDMwRTQwNEQyMkRDMjJDOTA3RjlBRTAyMEU1NTAKLToxMDNERTcwMDA0QzIyREQyMkM5MDdGOTRFMDQ0MzBGMDEyNEE1MDEyMzYKLToxMDNERjcwMDFCMDQzMDJGMTIxMjQyMTZDMjJGNzVFODAxMTIxNjhBQzEKLToxMDNFMDcwMDc1RTgwREQyMkI4MDA1NzVFODAxQzIyQjIwMkIzNDkwNjUKLToxMDNFMTcwMDc2MTlFMEZGQjQwMTBFOTA3NjdDNzQ2N0YwQTM3NDA2MDAKLToxMDNFMjcwMEYwQTM3NDBCRjBFRkI0MDIwQjkwNzY3Q0U0RjBBM0YwRjAKLToxMDNFMzcwMEEzNzQwQ0YwRUZCNDAzMEI5MDc2N0NFNEYwQTNGMEEzMkIKLToxMDNFNDcwMDc0MThGMDc1Q0FEMzc1Q0JGRUQyQ0EzMDM0MDRDMjM0QTUKLToxMDNFNTcwMDgwMDJEMjM0NTM5MUVGOTA3RkFCNzQwMkYwRjA5MDdGRTEKLToxMDNFNjcwMDk4RTA1NEZERjBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRDgKLToxMDNFNzcwMEZDRDBFMEZCRDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwMjkKLTowODNFODcwMDgyRDA4M0QwRjBEMEUwMzJCQwotOjEwNEI2MDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwOTA4RgotOjEwNEI3MDAwNzY5NkUwNTRGREYwOTA4MDAzRjBEMDgyRDA4M0QwRTBCMAotOjAxNEI4MDAwMzIwMgotOjAxMkZGRjAwMzI5RgotOjEwNEJENTAwQzBFMEMwODNDMDgyRDIyNTUzOTFFRjkwN0ZBQjc0MDhBQgotOjA4NEJFNTAwRjBEMDgyRDA4M0QwRTAzMjUxCi06MTA0QkVEMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDFGMEYzCi06MDc0QkZEMDBEMDgyRDA4M0QwRTAzMjJBCi06MTA0QjgxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMDVFCi06MEY0QjkxMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzJBQgotOjEwNEMwNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjBEQQotOjA3NEMxNDAwRDA4MkQwODNEMEUwMzIxMgotOjEwM0ZENTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAxNQotOjEwM0ZFNTAwOTA3RkM3RTBGNTExNzUwRjAwNzUwRDAwRDIzM0QwODJCMwotOjA1M0ZGNTAwRDA4M0QwRTAzMjkyCi06MTA0QzFCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDRGMEMxCi06MDc0QzJCMDBEMDgyRDA4M0QwRTAzMkZCCi06MTA0QzMyMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDRGMEE5Ci06MDc0QzQyMDBEMDgyRDA4M0QwRTAzMkU0Ci06MTA0QzQ5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDhGMDhGCi06MDc0QzU5MDBEMDgyRDA4M0QwRTAzMkNECi06MTA0QzYwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDhGMDc3Ci06MDc0QzcwMDBEMDgyRDA4M0QwRTAzMkI2Ci06MTA0Qzc3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MTBGMDU5Ci06MDc0Qzg3MDBEMDgyRDA4M0QwRTAzMjlGCi06MTA0QzhFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MTBGMDQxCi06MDc0QzlFMDBEMDgyRDA4M0QwRTAzMjg4Ci06MTA0Q0E1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MjBGMDFCCi06MDc0Q0I1MDBEMDgyRDA4M0QwRTAzMjcxCi06MTA0Q0JDMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MjBGMDAzCi06MDc0Q0NDMDBEMDgyRDA4M0QwRTAzMjVBCi06MTA0Q0QzMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0NDBGMENECi06MDc0Q0UzMDBEMDgyRDA4M0QwRTAzMjQzCi06MTA0Q0VBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0NDBGMEI1Ci06MDc0Q0ZBMDBEMDgyRDA4M0QwRTAzMjJDCi06MTA0RDAxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0ODBGMDVFCi06MDc0RDExMDBEMDgyRDA4M0QwRTAzMjE0Ci06MTA0RDE4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0ODBGMDQ2Ci06MDc0RDI4MDBEMDgyRDA4M0QwRTAzMkZECi06MTA0MjE2MDA5MDc2MTlFMDY0MDE3MDM1OTA3Njg3RTBGRkQzOTQyRDhGCi06MTA0MjI2MDA0MDJCOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzFBCi06MTA0MjM2MDA5NDBGNDAxOUU0RjBFRkQzOTQzMTQwMDg5MDc2MTk3NDQ2Ci06MTA0MjQ2MDAwM0YwODAwNjkwNzYxOTc0MDJGMDEyM0U4RjkwNzYxOTZDCi06MTA0MjU2MDBFMEI0MDIyQzkwNzY4N0UwRkZDMzk0MkY1MDIyRUZEMzcwCi06MTA0MjY2MDA5NDJBNDAxQzkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMERFCi06MTA0Mjc2MDBFMEQzOTQwRjQwMEFFNEYwOTA3NjE5MDRGMDEyM0U4RkQyCi06MTA0Mjg2MDA5MDc2MTlFMEI0MDIyNjkwNzY4N0UwRDM5NDMxNDAxREVCCi06MTA0Mjk2MDA5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjcyCi06MTA0MkE2MDA0MDBCRTRGMDkwNzYxOTc0MDNGMDEyM0U4RjkwNzYxOTY1Ci06MTA0MkI2MDBFMDY0MDM3MDNGOTA3Njg3RTBGRkMzOTQ1RjUwMzU5MENCCi06MTA0MkM2MDA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY0MDkyCi06MTA0MkQ2MDAyM0U0RjBFRkMzOTQyRjUwMENFRkQzOTQyQTQwMDY5MEJBCi06MTA0MkU2MDA3NjE5NzQwMUYwRUZEMzk0MkY0MDA2OTA3NjE5NzQwMjc0Ci06MTA0MkY2MDBGMDEyM0U4RjkwNzY4NkUwNzAwNTkwNzY4NUYwMjJFNDg3Ci06MDU0MzA2MDA5MDc2ODZGMDIyMTQKLToxMDA3NEEwMDkwNzY5QTc0MDJGMEU0OTA3NjkxRjBBM0YwOTA3NjkwMDUKLToxMDA3NUEwMEYwOTA3NjkzRjA5MDc2OTY3NDAzRjA5MDgwMDNGMEU0MkMKLToxMDA3NkEwMDkwNzY5N0YwOTA4MDAyRjA5MDc2OTQwNEYwOTA4MDAwNTIKLToxMDA3N0EwMEYwRTQ5MDc2OEVGMDkwNzYxQUYwOTA3Njk1MDRGMEMyQjYKLToxMDA3OEEwMDJFOTA3RjlCRTBGRjU0MTBGRjcwMDJDMjNGOTA3RjlCMjgKLToxMDA3OUEwMEUwRkY1NDEwRkVGRkJFMTAwMkQyM0Y5MDdGOUJFMEZGQTUKLToxMDA3QUEwMDU0MjBGRjcwMDJDMjNFOTA3RjlCRTBGRjU0MjBGRUZGNjAKLToxMDA3QkEwMEJFMjAwMkQyM0UzMDNGMDk5MDc2OTdFMDU0RkVGMDgwODgKLToxMDA3Q0EwMDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwRTcKLToxMDA3REEwMDMwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwRTMKLToxMDA3RUEwMDU0RkJGMDkwNzY5NUUwOTA4MDAxRjBBMjNFOTI0MEEyRjAKLTowMzA3RkEwMDNGOTI0MUVBCi06MDEwN0ZEMDAyMkQ5Ci06MTAzRThGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNDQyNDAyNjAwMkU3Ci06MTAzRTlGMDBFMUQ0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUU3Ci06MTAzRUFGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjNCCi06MTAzRUJGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzYyCi06MTAzRUNGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMEVFCi06MTAzRURGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDRFCi06MTAzRUVGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDJCCi06MTAzRUZGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDRBCi06MTAzRjBGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTg3Ci06MTAzRjFGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDlBCi06MTAzRjJGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkY3Ci06MTAzRjNGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjlDCi06MTAzRjRGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjYyCi06MTAzRjVGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkI2Ci06MTAzRjZGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzk1Ci06MTAzRjdGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDRBCi06MTAzRjhGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNECi06MTAzRjlGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRkFGCi06MTAzRkFGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYxCi06MTAzRkJGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MEVCCi06MDYzRkNGMDA3NjhFNzQwMkYwMjI2MAotOjEwMTgwMDAwOTA3NjkwRTAxNDYwMzcxNDcwMDIwMUQ4MTQ3MDAyMjFCMQotOjEwMTgxMDAwNzIxNDcwMDI0MTNCMjQwNDYwMDI2MTAzOTA3RkZDNzRFNwotOjEwMTgyMDAwQ0NGMDkwN0ZGRjc0RkNGMDkwNzY5NUUwNDQwMUYwNTQ4QQotOjEwMTgzMDAwMDVGMDkwODAwMUYwRTQ5MDc2MUFGMEMyMkUyMjkwNzZBNgotOjEwMTg0MDAwOTVFMDQ0MDFGMDQ0MDJGMDMwM0UwNkUwNDQwNEYwODBBQwotOjEwMTg1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3QQotOjEwMTg2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTIyOTAyNwotOjEwMTg3MDAwN0ZGQzc0NzRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkI3MwotOjEwMTg4MDAwRjA5MDc2OTdFMDU0RkRGMEU0OTA3NjgxRjA5MDc2ODBDOQotOjEwMTg5MDAwRjBFRkI0MDIyMjkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkMzQwotOjEwMThBMDAwRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJGMEU0OTBGOQotOjEwMThCMDAwNzY4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkU4NAotOjEwMThDMDAwRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDU0RkIyMwotOjEwMThEMDAwRjA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTRGRUYwNDRGMwotOjEwMThFMDAwMDJGMDMwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTQyNAotOjEwMThGMDAwRkJGMDkwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFCNAotOjEwMTkwMDAwRjA5MDc2MTlFMEZGQjQwMTIyOTA3RkZDNzQzMEYwOTBFMwotOjEwMTkxMDAwN0ZGRjc0RkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGNAotOjEwMTkyMDAwRkRGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjIyOTBBMgotOjEwMTkzMDAwN0ZGQzc0MUNGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkYwNgotOjEwMTk0MDAwRjA5MDc2OTdFMDQ0MDJGMEU0OTA3NjgxRjA5MDc2ODAxMwotOjEwMTk1MDAwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTczQwotOjEwMTk2MDAwRTA0NDAxRjA5MDc2OTdFMDU0RkJGMDkwODAwMkYwRDJEMgotOjEwMTk3MDAwMkUyMjkwNzY5NUUwNDQwMUYwNDQwMkYwNDQwOEYwMzBDNQotOjEwMTk4MDAwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTAyQQotOjEwMTk5MDAwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFGMDkwNzY5OAotOjEwMTlBMDAwMTlFMEZGQjQwMTI1OTA3RkZDNzRDQ0YwOTA3RkZGNzRBOAotOjEwMTlCMDAwRkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGREYwNTQwNQotOjEwMTlDMDAwRkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjI1OTAwMQotOjEwMTlEMDAwN0ZGQzc0QzhGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkZCQQotOjEwMTlFMDAwRjA5MDc2OTdFMDQ0MDJGMDU0RkJGMEU0OTA3NjgxRjBCQQotOjEwMTlGMDAwOTA3NjgwRjBFRkI0MDMyNTkwN0ZGQzc0OThGMDkwN0Y5MAotOjEwMUEwMDAwRkY3NEZDRjA5MDc2OEY3NDVGRjA5MDc2OTdFMDU0RkQ1MQotOjEwMUExMDAwRjA0NDA0RjBFNDkwNzY4MUYwOTA3NjgwRjAzMDNGMDk1NQotOjEwMUEyMDAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjBCRQotOjEwMUEzMDAwOTA3Njk3RTA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTQzNgotOjEwMUE0MDAwRkVGMDQ0MDJGMDQ0MDhGMDMwM0UwNkUwNDQwNEYwODAyQQotOjEwMUE1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3OAotOjEwMUE2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTI1OTAyMgotOjEwMUE3MDAwN0ZGQzc0QjRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkIzMQotOjEwMUE4MDAwRjA5MDc2OTdFMDU0RkRGMDU0RkJGMEU0OTA3NjgxRjAwRQotOjEwMUE5MDAwOTA3NjgwRjBFRkI0MDIyNTkwN0ZGQzc0QjBGMDkwN0ZEOAotOjEwMUFBMDAwRkY3NEZDRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJFQwotOjEwMUFCMDAwRjA1NEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDM4MAotOjEwMUFDMDAwMjU5MDdGRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc2OEYxNwotOjEwMUFEMDAwNzQ1RkYwOTA3Njk3RTA1NEZERjA0NDA0RjBFNDkwNzY2MwotOjEwMUFFMDAwODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFRjBEOAotOjEwMUFGMDAwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDIxRQotOjA0MUIwMDAwRjBEMjJFMjJDRgotOjA0MENBMTAwNDE3NjIzMDA3NQotOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgotOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgotOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QwotOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAotOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQwotOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNwotOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQotOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NwotOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQotOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAotOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQotOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QwotOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQotOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQotOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMwotOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAotOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQotOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQotOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgotOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQotOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgotOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQotOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQwotOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgotOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQotOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAotOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QwotOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQotOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQotOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQotOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQotOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAotOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQotOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAotOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NwotOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCi06MTAzQkQzMDBFNDkwNzYzNkYwRTBGQjc1RjAwRkE0MjQ0MUY1ODJFNDFGCi06MTAzQkUzMDAzNDc1RjU4Mzc0NDBGMEVCNzVGMDBGQTQyNDQyRjU4MjJECi06MTAzQkYzMDBFNDM0NzVGNTgzNzQwQUYwRUI3NUYwMEZBNDI0NDNGNUYwCi06MTAzQzAzMDA4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMEQ5Ci06MTAzQzEzMDAwRkE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMEY2Ci06MTAzQzIzMDBBQzQ0RUI3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0IzCi06MTAzQzMzMDAxMjM3QzgwMDAxNzcwMDkwNzYzNkUwMDRGMEUwRkI3NTk4Ci06MTAzQzQzMDBGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQwRjBFQjVFCi06MTAzQzUzMDA3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0OENGMDc3Ci06MTAzQzYzMDBFQjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzMTIzNzIyCi06MTAzQzczMDBDODAwMDBBQzQ0RUI3NUYwMEZBNDI0NDdGNTgyRTQzNDhDCi06MTAzQzgzMDA3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMDBGQTQyNDFDCi06MTAzQzkzMDA0QkY1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMTc3MDA5MDQxCi06MTAzQ0EzMDA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNERBCi06MTAzQ0IzMDAzNDc1RjU4Mzc0NDBGMEVGNzVGMDBGQTQyNDQyRjU4MjU4Ci06MTAzQ0MzMDBFNDM0NzVGNTgzNzQ4RkYwOTA3NjM2RTAwNEYwRTBGRjBBCi06MTAzQ0QzMDA3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDFGMDQzCi06MTAzQ0UzMDBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4NEYwCi06MTAzQ0YzMDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTcwCi06MTAzRDAzMDA4MkU0MzQ3NUY1ODM3NDYxRjBFRjc1RjAwRkE0MjQ0MkY3Ci06MTAzRDEzMDBGNTgyRTQzNDc1RjU4Mzc0ODFGMDkwNzYzNkUwMDRGMDJGCi06MTAzRDIzMDBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQ0Ci06MTAzRDMzMDA2MUYwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4MzQ2Ci06MDQzRDQzMDA3NDAxRjAyMkY1Ci06MTA0NTU5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEE2Ci06MTA0NTY5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNEEwCi06MTA0NTc5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTQ4Ci06MTA0NTg5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTgxCi06MTA0NTk5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEIyCi06MTA0NUE5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU2Ci06MTA0NUI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDUwCi06MTA0NUM5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NUY2Ci06MTA0NUQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTMxCi06MTA0NUU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMkNFCi06MTAzQTQyMDBFNDkwNzYzNUYwOTA3NjM1RTBGRkMzOTQwMzQwMDI0MTZFCi06MTAzQTUyMDBGRkVGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1ODNFRjJBCi06MTAzQTYyMDBGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFNDMzCi06MTAzQTcyMDBGMEVGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM3NDkyCi06MTAzQTgyMDBGMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzA1Ci06MTAzQTkyMDA3NEZGRjBFRjc1RjAwQUE0MjRBRUY1ODJFNDM0NzVGNUY0Ci06MTAzQUEyMDA4M0U0RjBFRjc1RjAwQUE0MjRBRkY1ODJFNDM0NzVGNUVGCi06MTAzQUIyMDA4Mzc0ODBGMEVGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUMzCi06MTAzQUMyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUNECi06MTAzQUQyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUJDCi06MTAzQUUyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUFCCi06MTAzQUYyMDBGNTgzNzQwMUYwOTA3NjM1RTAwNEYwNDE0NzkwNzYzQzBFCi06MTAzQjAyMDA3NDBBRjBFNEEzRjA5MDc2MzU3NDAzRjA5MDc2M0NFMDBBCi06MTAzQjEyMDBGRjkwNzYzNUUwRkVDMzlGNDAwMjYxRDI5MDc2M0RFMDkxCi06MTAzQjIyMDBGRjA0RjBFRTc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNUQ4Ci06MTAzQjMyMDA4M0VGRjBFRTc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTU4Ci06MTAzQjQyMDA4M0U0RjBFRTc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTUyCi06MTAzQjUyMDA4Mzc0NUVGMEVFNzVGMDBBQTQyNEFERjU4MkU0MzQ3NTQ4Ci06MTAzQjYyMDBGNTgzNzRCQUYwRUU3NUYwMEFBNDI0QUVGNTgyRTQzNDVCCi06MTAzQjcyMDA3NUY1ODM3NDA1RjBFRTc1RjAwQUE0MjRBRkY1ODJFNEJFCi06MTAzQjgyMDAzNDc1RjU4Mzc0ODBGMEVFNzVGMDBBQTQyNEIwRjU4MkUyCi06MTAzQjkyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIxRjU4MkZECi06MTAzQkEyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIyRjU4MkVDCi06MTAzQkIyMDBFNDM0NzVGNTgzNzQxNUYwRUU3NUYwMEFBNDI0QjNGNUI4Ci06MTAzQkMyMDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM1RTAwNEYwNjEwRTFBCi06MDEzQkQyMDAyMkQwCi06MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Ci06MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCi06MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCi06MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCi06MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Ci06MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCM0UyMjkwN0ZFREU5Ci06MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Ci06MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCi06MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Ci06MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCi06MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Ci06MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Ci06MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Ci06MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Ci06MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Ci06MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Ci06MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Ci06MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECi06MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Ci06MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCi06MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCi06MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Ci06MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCi06MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCi06MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCi06MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCi06MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCi06MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCi06MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCi06MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCi06MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCi06MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCi06MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Ci06MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCi06MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCi06MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Ci06MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCi06MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Ci06MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECi06MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Ci06MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Ci06MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCi06MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECi06MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCi06MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCi06MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCi06MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCi06MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCi06MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCi06MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCi06MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Ci06MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Ci06MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Ci06MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCi06MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCi06MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Ci06MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCi06MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Ci06MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Ci06MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCi06MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Ci06MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCi06MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCi06MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCi06MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCi06MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Ci06MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCi06MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCi06MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Ci06MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCi06MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCi06MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Ci06MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQotOjEwMTAwMDAwRTQ5MDc2MkNGMDkwNzYyQ0UwRkY3NUYwMDNBNDI0MEY4QQotOjEwMTAxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0MgotOjEwMTAyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYyQ0UwMDRGMDgwRDU0RQotOjEwMTAzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNBOQotOjEwMTA0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYyRUYwMjQyNgotOjEwMTA1MDAwRjA2MDBBMjQwRjYwMDI4MTdEMTI0QjFCMjI5MDdGRUQwRAotOjEwMTA2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzODc0MDEzQwotOjEwMTA3MDAwRjA5MDc2M0E3NDAzRjA5MDc2MUNGMEU0OTA3NjFCRjBEMgotOjEwMTA4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MUJFMEZGNzVGMDBBQTRGMQotOjEwMTA5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1MgotOjEwMTBBMDAwRUU2RDYwMTI5MDc2MUNFMEZFRUZDMzlFNTAwODkwNzZDNQotOjEwMTBCMDAwMUJFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFMgotOjEwMTBDMDAwMTg3NDA2RjA5MDc2Mzg3NDA0RjA5MDc2M0E3NDBBRjA0QQotOjEwMTBEMDAwOTA3NjFDRjA5MDc2MUI3NDAzRjA5MDdGRUFFMEY0NjA0OQotOjEwMTBFMDAwMkY5MDc2MUJFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2MQotOjEwMTBGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY3QwotOjEwMTEwMDAwMUNFMEZFRUZDMzlFNTAwODkwNzYxQkUwMDRGMDgwRDFGNwotOjEwMTExMDAwRTQ5MDc2MUVGMDkwNzYxQ0UwRkY5MDc2MUJFMEZFNkY2OAotOjEwMTEyMDAwNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJFMDE0NjBGRgotOjEwMTEzMDAwMTMxNDcwMDIyMUJGMjQwMjYwMDI4MTc1OTA3RkI0RTAxNQotOjEwMTE0MDAwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDZCOTA3RkVBRTAxOQotOjEwMTE1MDAwRjQ3MDRBOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MwotOjEwMTE2MDAwOTA3NjFCRTBGREMzOUY1MDJCRUQ3NUYwMEFBNDI0QUJENQotOjEwMTE3MDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRDA0RjAxRgotOjEwMTE4MDAwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTA1OAotOjEwMTE5MDAwMDRGMDgwQzc5MDc2MUVFMDkwN0ZCNUYwMjJFRTc1RjBFNwotOjEwMTFBMDAwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA2NwotOjEwMTFCMDAwOTA3RkI1NzQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA1QQotOjEwMTFDMDAwN0ZFOUUwMjQ3RTcwMDI0MTdFMTQ3MDAyNjEyMzE0NzA3NgotOjEwMTFEMDAwMDI2MUM4MjQwMzYwMDI4MTZEOTA3RkVBRTBGNDcwNkRDMwotOjEwMTFFMDAwOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUI5MAotOjEwMTFGMDAwRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QUNGNTgyRTRGMQotOjEwMTIwMDAwMzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkQ0OQotOjEwMTIxMDAwRjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QUQ5NwotOjEwMTIyMDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA2RAotOjEwMTIzMDAwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTBBNgotOjEwMTI0MDAwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUI4QgotOjEwMTI1MDAwRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTA3MAotOjEwMTI2MDAwOTA3RjAwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVBOAotOjEwMTI3MDAwRjU4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCQgotOjEwMTI4MDAwRUFFMEY0NzA2RDkwNzYzOEUwOTA3NjFCRjA5MDc2M0E1NAotOjEwMTI5MDAwRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEZGNzVGMDBBQTQ3QgotOjEwMTJBMDAwMjRBRUY1ODJFNDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQxMQotOjEwMTJCMDAwMDRGMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVEMQotOjEwMTJDMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRTBGRjkwNzY0QwotOjEwMTJEMDAwMUVFMEZFMDRGMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUYwNwotOjEwMTJFMDAwRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjUyRAotOjEwMTJGMDAwRjAyMjkwNzYxQkUwRkY3NUYwMEFBNDI0QUVGNTgyRTQ5QwotOjEwMTMwMDAwMzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUYwMEFBNDI0QUYwOAotOjEwMTMxMDAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMUYwOTA3RkI1NzQzOQotOjEwMTMyMDAwMDJGMDIyOTA3RkVBRTBGNDcwNkQ5MDc2MzhFMDkwNzZEQgotOjEwMTMzMDAwMUJGMDkwNzYzQUUwRkY5MDc2MUJFMEMzOUY1MDRGRTBBMQotOjEwMTM0MDAwRkY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0UwRkU1RAotOjEwMTM1MDAwOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTgyRTQzNDdGRjVGNAotOjEwMTM2MDAwODNFRUYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1RjU0QwotOjEwMTM3MDAwODNFMEZGOTA3NjFFRTBGRTA0RjA3NDAwMkVGNTgyRTQxOAotOjEwMTM4MDAwMzQ3RkY1ODNFRkYwOTA3NjFCRTAwNEYwODBBNDkwNzYzNAotOjEwMTM5MDAwMUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEZGNzVGMDBBQTQ2NgotOjEwMTNBMDAwMjRCMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVBQQotOjEwMTNCMDAwRjAwQUE0MjRCMUY1ODJFNDM0NzVGNTgzRTA5MDdGMDE0RQotOjEwMTNDMDAwRjA5MDdGQjU3NDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTBBNwotOjEwMTNEMDAwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCRTA0RQotOjEwMTNFMDAwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzRBNQotOjEwMTNGMDAwNzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJERjU5NwotOjEwMTQwMDAwODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEIzRjU5RgotOjEwMTQxMDAwODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNzRGQwotOjEwMTQyMDAwMDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDQyNAotOjEwMTQzMDAwRjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCRTBCRAotOjEwMTQ0MDAwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0UwOTBDOAotOjEwMTQ1MDAwN0YwMEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU0QgotOjEwMTQ2MDAwODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQjQwQQotOjEwMTQ3MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjQ3OAotOjA1MTQ4MDAwRTA0NDAxRjAyMjMwCi06MTAzODc0MDBFNDkwNzYyOUYwOTA3NjI5RTBGRjc1RjAwRkE0MjQ0MkI1Ci06MTAzODg0MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REE3Ci06MTAzODk0MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI5RTAwNEYwODBENUJBCi06MTAzOEE0MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRjA2Ci06MTAzOEI0MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjJBRjAyNDVCCi06MTAzOEM0MDBCRjcwMDI0MTQxMjRFMDcwMDI0MTEyMjQyMTYwMDI0MTkwCi06MTAzOEQ0MDAzQTkwN0ZFOUUwMjRGRTYwN0QxNDcwMDIyMUIyMjQwMjU0Ci06MTAzOEU0MDA2MDAyNDEwQTEyMTc1MTkwNzY0MkUwRkNBM0UwRkRBMzY2Ci06MTAzOEY0MDBFMEZFQTNFMEZGOTA3NjI5RTA3NUYwMEZBNDI0NDNGNUUxCi06MTAzOTA0MDA4MkU0MzQ3NUY1ODMxMjM3QkM5MDc2MTlFMEZGQjQwMTc0Ci06MTAzOTE0MDAxMjkwNzY3Qzc0NjdGMDkwNzY3RDc0MDZGMDkwNzY3RUQzCi06MTAzOTI0MDA3NDBCRjBFRkI0MDIwRkU0OTA3NjdDRjA5MDc2N0RGMEE3Ci06MTAzOTM0MDA5MDc2N0U3NDBDRjBFRkI0MDMwRkU0OTA3NjdDRjA5MEY0Ci06MTAzOTQ0MDA3NjdERjA5MDc2N0U3NDE4RjA5MDc2MUE3NDAxRjAxMkY5Ci06MTAzOTU0MDAzRThGMTIxODAwMjI5MDdFQzJFMEZGRTRGQ0ZERkVGQkM1Ci06MTAzOTY0MDBGQTc5MDFGODEyMzc0NkM4RUNDOEM5RURDOUNBRUVDQURCCi06MTAzOTc0MDBDQkVGQ0I5MDdFQzFFMEZFRTRGQ0ZEMkJGQkVBM0VGQUVDCi06MTAzOTg0MDBFRDM5RjlFQzM4Rjg5MDdFQzBFMEZGRTRGRUVCMkZGRjUwCi06MTAzOTk0MDBFRTNBRkVFRDM5RkRFQzM4RkM5MDc2MjlFMDc1RjAwRjM3Ci06MTAzOUE0MDBBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdCQzIyOTA3RTUzCi06MTAzOUI0MDBDMkUwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjM3NDZDOEM5Ci06MTAzOUM0MDBFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3RUMxRTBGRTBDCi06MTAzOUQ0MDBFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3RTc1Ci06MTAzOUU0MDBDMEUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOENDCi06MTAzOUY0MDBGQzkwNzYyOUUwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NTJECi06MTAzQTA0MDBGNTgzMTIzN0JDMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjBBCi06MTAzQTE0MDBFOUUwMTQ3MDE5OTA3RUMwRTBGRjkwNzYyOUUwNzVGMDFCCi06MTAzQTI0MDAwRkE0MjQ0RkY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkUwCi06MEUzQTM0MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOUYKLToxMDJBRDYwMEU0OTA3NjI3RjA5MDc2MjdFMEZGNzVGMDBGQTQyNDQyNjUKLToxMDJBRTYwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENTMKLToxMDJBRjYwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjdFMDA0RjA4MEQ1NjgKLToxMDJCMDYwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGQjEKLToxMDJCMTYwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MjhGMDI0MDgKLToxMDJCMjYwMDlGNzAwMkExNzQyNDIxNjAwMkExQTE5MDdGRTlFMDI0OTQKLToxMDJCMzYwMDdFNzAwMjYxRkMxNDcwMDI4MUI1MjQwMjYwMDJBMTZDRjEKLToxMDJCNDYwMEVGNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQjkKLToxMDJCNTYwMEEzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzkwMDc4MTYKLToxMDJCNjYwMDAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTM3NEFDQUIKLToxMDJCNzYwMEYwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwNEIKLToxMDJCODYwMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZENEQKLToxMDJCOTYwMEEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBDMzEyMzYKLToxMDJCQTYwMDM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBFNEEzN0UKLToxMDJCQjYwMEYwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0QUIKLToxMDJCQzYwMDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFNjMKLToxMDJCRDYwMEEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdBQjYwRjgKLToxMDJCRTYwMDAyQTFBODkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0YKLToxMDJCRjYwMDdGQjU3NDAzRjAyMjkwNzYyN0UwNzVGMDBGQTQyNDQ3ODIKLToxMDJDMDYwMEY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzQzIKLToxMDJDMTYwMEUwRkY3QjQ0N0FBQzc5MDA3ODAwQzMxMjM3QUI3MDEzQkYKLToxMDJDMjYwMDkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1RjkKLToxMDJDMzYwMDc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0M0MKLToxMDJDNDYwMDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCODMKLToxMDJDNTYwMDgwN0FCQjc5MDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwN0YKLToxMDJDNjYwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwM0YwMTYKLToxMDJDNzYwMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1QzUKLToxMDJDODYwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCMDA3QTc3RjAKLToxMDJDOTYwMDc5MDE3ODAwQzMxMjM3QUI2MDAyQTFBODkwN0YwMEYwREIKLToxMDJDQTYwMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwQkIKLToxMDJDQjYwMDc2MjdFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzOEUKLToxMDJDQzYwMEUwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5NDEKLToxMDJDRDYwMDAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzRTIKLToxMDJDRTYwMDc0QUNGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwMUYKLToxMDJDRjYwMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzNEMKLToxMDJEMDYwMEUwRkRBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQkMKLToxMDJEMTYwMEMzMTIzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwQkUKLToxMDJEMjYwMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGN0EKLToxMDJEMzYwMEE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRkYKLToxMDJENDYwMEUwRkVBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QjMKLToxMDJENTYwMEFCNzA0RjkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwRUUKLToxMDJENjYwMDdGQjU3NDAzRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGOTcKLToxMDJENzYwMEU5RTAyNDdGNzAxRTkwNzYyN0UwNzVGMDBGQTQyNDRGQkIKLToxMDJEODYwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwN0ZCNTc0QUEKLToxMDJEOTYwMDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0RjYKLTowMzJEQTYwMDAxRjAyMjE3Ci06MTA0QjFCMDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjE3Ci06MTA0QjJCMDA0ODVBMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NEQ1Ci06MDM0QjNCMDAwMUYwMjI2NAotOjEwNEIzRTAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNDkzQgotOjEwNEI0RTAwQUQyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFBNgotOjAyNEI1RTAwRjAyMjQzCi06MTA0ODVBMDBFNDkwNzYyNkYwOTA3NjI2RTBGRjc1RjAwM0E0MjQzNERGCi06MTA0ODZBMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REIxCi06MTA0ODdBMDA2MDBFRUZDMzk0MDQ1MDA4OTA3NjI2RTAwNEYwODBENUM5Ci06MTA0ODhBMDBFRkI0MDQwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwMzFFCi06MTA0ODlBMDBBNDI0MzJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDI5Ci06MDY0OEFBMDA3RkI1NzQwMUYwMjI0RAotOjEwNDlBRDAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQ4RAotOjEwNDlCRDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1RAotOjEwNDlDRDAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDU3NgotOjEwNDlERDAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTA3MwotOjEwNDlFRDAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUUwMQotOjAyNDlGRDAwRjAyMkE2Ci06MDMwMDAzMDAwMjBGRkRFQwotOjAzMEZGRDAwQzI4OTMyNzQKLTowMzAwMTMwMDAyMTdGREQ0Ci06MDMxN0ZEMDBDMjhCMzI2QQotOjAzMDA0QjAwMDI0RDhGRDQKLTowNDREOEYwMDUzOTFERjMyMkIKLTowMzAwNTMwMDAyNEQ4M0Q4Ci06MDY0RDgzMDA1MzkxQkZEMjJEMzI1NgotOjAzMDA1QjAwMDI0RDg5Q0EKLTowNjREODkwMDUzOTE3RkQyMkMzMjkxCi06MDMwMDYzMDAwMjREOTNCOAotOjA0NEQ5MzAwNTNEOEY3MzJDOAotOjAzMDAwQjAwMDI0RDlCMDgKLTowMzREOUIwMEMyOEQzMjk0Ci06MDMwMDFCMDAwMjREOUVGNQotOjAzNEQ5RTAwQzI4RjMyOEYKLTowMzAwMjMwMDAyNEQ3NTE2Ci06MDc0RDc1MDA1Mzk4RkU1Mzk4RkQzMjM0Ci06MDMwMDNCMDAwMjREN0NGNwotOjA3NEQ3QzAwNTNDMEZFNTNDMEZEMzJERAotOjAzMDAyQjAwMDI0NkY3OTMKLToxMDQ2RjcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwM0QKLToxMDQ3MDcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGRjcKLToxMDQ3MTcwMEMwRTBDMkNBQzJDRjkwN0Y5OEUwNDQwMUYwMzAyRTAzQjgKLToxMDQ3MjcwMDEyMTRBNjkwN0Y5OEUwNTRGRUYwNTNBOEZBMTIxNjYxNkYKLToxMDQ3MzcwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwNDEKLToxMDQ3NDcwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMzIKLTowMzQ3NTcwMEQwRTAzMjdECi06MTA0N0I0MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEQ1Ci06MTA0N0M0MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNTRGQkYwNTRGNzczCi06MTA0N0Q0MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkRBCi06MTA0N0U0MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDgxCi06MEI0N0Y0MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOEQKLToxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKLToxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKLToxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKLToxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKLToxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKLToxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKLToxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKLToxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKLToxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKLToxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKLToxMDMwQTAwMDQ4RjM4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MDAKLToxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKLToxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKLToxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKLToxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKLToxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKLToxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKLToxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKLToxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKLToxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKLToxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNDhGM0MyMzUzMDM1QzIKLToxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKLToxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKLToxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKLToxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKLToxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKLToxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKLToxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNDhGM0MyMzUzMDM1MEE4NTE5MUIKLToxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKLToxMDMxRDAwMDQ4RjM4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RTIKLToxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKLToxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKLToxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKLToxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKLToxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKLToxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKLToxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKLToxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKLTowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Ci06MEM0OEYzMDBDMjM3RTRGNTBFRjUxMEMyMzZGNTE0MjJCMQotOjEwNDAwMDAwRTUxMUQzOTQwMDUwMDIyMTA2OTA3Njg5RTBDMzk0MDgwQwotOjEwNDAxMDAwNDAwMjIxMDY3NDQwMjUwRkY1ODJFNDM0N0VGNTgzRTBFQQotOjEwNDAyMDAwRjUxN0U1MEQ2MDBFOTA4MDA1RTUxN0YwOTA3Njg5RTBCNAotOjEwNDAzMDAwMDRGMDAxREFFNTE3MTIzN0Y5NDBDMTAyNDA2NzA1NDA4NAotOjEwNDA0MDAwN0EwNjQwOTgwNzQwQzEwQzQwQzEwRDQwQzcwRjQwQ0JENQotOjEwNDA1MDAwRjY0MENCRjg0MENCRkE0MENCRkI0MENCRkM0MENCRkU0QwotOjEwNDA2MDAwNDBDQkZGMDAwMDQwREE5MDdFNDFFMDkwODAwNUYwOTA2OAotOjEwNDA3MDAwNzY4OUUwMDRGMDc1MTEwMTgwNjA5MDdFNDFFMDkwODBDNwotOjEwNDA4MDAwMDVGMDkwN0U0MkUwOTA4MDA1RjA5MDc2ODlFMDA0RjBBMwotOjEwNDA5MDAwRTAwNEYwNzUxMTAxODA0MjkwN0U0MUUwOTA4MDA1RjBDRgotOjEwNDBBMDAwOTA3RTQyRTA5MDgwMDVGMDkwN0U0M0UwOTA4MDA1RjBBNQotOjEwNDBCMDAwOTA3Njg5RTAwNEYwRTAwNEYwRTAwNEYwNzUxMTAxODBFRQotOjEwNDBDMDAwMTlEMjNCRDIzQzgwMTNEMjNCODAwRjkwODAwNUU1MTc3QwotOjEwNDBEMDAwRjA5MDc2ODlFMDA0RjA3NTExMDEyMDNCMDQwNTBEODAxNQotOjEwNDBFMDAwMUYzMDNDMUM5MDdFNDFFMDkwODAwNUYwOTA3RTQyRTBDNQotOjEwNDBGMDAwOTA4MDA1RjA5MDc2ODlFMDA0RjBFMDA0RjA3NTExMDFGRAotOjEwNDEwMDAwMDUwRjE1MTEwMTAwRTUxMTcwMTBDMjMzRjUwREY1MEYwMwotOjBCNDExMDAwOTA3RkM3NzQwNEYwQzIzQkMyM0MyMjQ5Ci06MTA0QkJCMDA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDAxMkM0Ci06MEE0QkNCMDA0RDJGOTA3RkQ2RTA1NEZFRjAyMjNCCi06MTA0QUY2MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzA0MjA0RTA0NEY2Ci06MTA0QjA2MDAwMkYwN0ZEQzdFMDUxMjREMkY5MDdGRDZFMDU0RjdGMDQxCi06MDU0QjE2MDBFMDQ0MDRGMDIyNjAKLToxMDREMkYwMDhFMzU4RjM2RTUzNjE1MzZBRTM1NzAwMjE1MzU0RTYwMzkKLTowNzREM0YwMDA1MTIxNDg1ODBFRTIyMkQKLToxMDQ5RkYwMEU0RkU3NTFERkY3NTFFMDU3NTFGMTJBQjFEQUExRUE5QkUKLToxMDRBMEYwMDFGOTAwMDAxMTIzNkFCNjQwMjcwMkZDREVFQ0QwRUVENkMKLToxMDRBMUYwMDZGNzAwMTIyOTAwMDAyMTIzNzBFODVGMDFCRjUxQzYyOTkKLToxMDRBMkYwMDFCRTUxQjYyMUNFNTFDNjIxQjI5RkRFNTFCM0FDOUVENEEKLToxMDRBM0YwMEM5NzUxREZGRjUxRTg5MUY4MEMxN0IwMDdBMDA3OTAwQTMKLTowMTRBNEYwMDIyNDQKLTowNDE3OTQwMDhEMjk4QjJBRTYKLToxMDE3OTgwMDEyNDlGRkVBNDk2MDU3MTIzNjkyN0UwMDI5RkZFRTNBNTUKLToxMDE3QTgwMEM5RUZDOTc1MkJGRkY1MkM4OTJEQUIyQkFBMkNBOTJEQjgKLToxMDE3QjgwMDkwMDAwMTEyMzZBQkZGNjQwNDYwMDVFRjY0MDU3MDJFREIKLToxMDE3QzgwMEVGQjQwNDE1OTAwMDAyMTIzNkFCNjUyOTcwMEI5MDAwMzcKLToxMDE3RDgwMDAzMTIzNkFCNjUyQTcwMDEyMjEyMzY5MjdFMDAyOUZGNjkKLToxMDE3RTgwMEVFM0FDOUVGQzk3NTJCRkZGNTJDODkyRDgwQkM3QjAwMUIKLTowNDE3RjgwMDdBMDA3OTAwRkEKLTowMTE3RkMwMDIyQ0EKLTowMjQ4QjAwMDhGMkU0OQotOjEwNDhCMjAwRTRGNTJGNzUzMEZGNzUzMTA2NzUzMkJFQUIzMEFBMzE4MwotOjEwNDhDMjAwQTkzMjkwMDAwMTEyMzZBQkI0MDMxRkFGMkYwNTJGRUZCMAotOjEwNDhEMjAwNjUyRTcwMDEyMjEyMzY5MjdFMDAyOUZGRUUzQUM5RUY1MAotOjEwNDhFMjAwQzk3NTMwRkZGNTMxODkzMjgwRDI3QjAwN0EwMDc5MDBCOAotOjAxNDhGMjAwMjJBMwotOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgotOjEwMDUxMDAwMDAwMTA5MDJBQzAxMDMwMTAwODAzMjA5MDQwMDAwMDA1RgotOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQotOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQotOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQotOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAotOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAotOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAotOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAotOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAotOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAotOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQotOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgotOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQotOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAotOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAotOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQotOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgotOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQotOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgotOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQotOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMwotOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAotOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgotOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQotOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQotOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAotOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA0MDMyQQotOjEwMDZDMDAwMDkwNDE4MDM0NTAwNkQwMDYxMDA2NzAwNjkwMDYzMDBCQwotOjEwMDZEMDAwMjAwMDQ3MDA2RDAwNjIwMDQ4MDAyMjAzNDUwMDZEMDBDNQotOjEwMDZFMDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NTAwNEQwMDQ5MDA3QgotOjEwMDZGMDAwMjAwMDM2MDA3QzAwMzIwMDIwMDA2RDAwMkEwMzQzMDBGOQotOjEwMDcwMDAwNkYwMDZFMDA2NjAwNjkwMDY3MDA3NTAwNzIwMDYxMDA4RQotOjEwMDcxMDAwNzQwMDY5MDA2RjAwNkUwMDIwMDA1MzAwNzQwMDcyMDBDNgotOjEwMDcyMDAwNjkwMDZFMDA2NzAwMjIwMzQ5MDA2RTAwNzQwMDY1MDBENgotOjEwMDczMDAwNzIwMDY2MDA2MTAwNjMwMDY1MDAyMDAwNTMwMDc0MDBEMQotOjBBMDc0MDAwNzIwMDY5MDA2RTAwNjcwMDAwMDBGRgotOjEwMTQ4NTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk3QQotOjAxMTQ5NTAwMjIzNAotOjEwMTQ5NjAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFMAotOjEwMTRBNjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBEQwotOjEwMTRCNjAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NTdEMDAwNAotOjEwMTRDNjAwOTA3RkUzNzQ3QkYwQTM3NDgwRjA3QzExOTA3Rjk5RTBBOQotOjEwMTRENjAwNTQ0MERDMDMwMjE0RjNCNDAwMTM5MDdGRTI3NDQwRjAyRQotOjEwMTRFNjAwOTA3RkU1RjA5MDdGRTI3NDAwRjAwMjE0RDI5MDc2OTAzRgotOjEwMTRGNjAwRTBCNDAxMTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjBDQgotOjEwMTUwNjAwOTA3RjZDMDIxNTU3QjQwMjEyOTA3NjhGRTAyREZEOTBGNQotOjEwMTUxNjAwN0ZFMjc0ODBGMDkwN0Y2QzAyMTU5NkI0MDMxMjkwNzY4OQotOjEwMTUyNjAwOEZFMDJERkQ5MDdGRTI3NDgwRjA5MDdGNkMwMjE1RTFENAotOjEwMTUzNjAwQjQwNDEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwOTBENwotOjEwMTU0NjAwN0Y2QzAyMTYxMDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTYxQQotOjEwMTU1NjAwNDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREYyN0RCOQotOjEwMTU2NjAwMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjRGRAotOjEwMTU3NjAwMDAwNTA1ODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjAyRAotOjEwMTU4NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERDQwMjE2NDBGQwotOjEwMTU5NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0NQotOjEwMTVBNjAwRjBGMERERUM3RDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0YxRQotOjEwMTVCNjAwOUJFMDU0MDRCNDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ1MQotOjEwMTVDNjAwODBGMDA1ODZGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEQQotOjA2MTVENjAwRjBGMEYwRjBGMEYwNkYKLToxMDE1REMwMEREQ0UwMjE2NDBGMEYwRjBGMERERkE3RDAyMDU4NjkwQ0IKLToxMDE1RUMwMDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNTg2MDQKLToxMDE1RkMwMDAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEREOEEKLToxMDE2MEMwMERDMDIxNjQwRjBGMEYwRjBGMEYwRERGODdEMDIwNTg2MUIKLToxMDE2MUMwMDkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1QzkKLToxMDE2MkMwMDg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwQjAKLToxMDE2M0MwMEYwRjBERERBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2N0UKLToxMDE2NEMwMEQwODNEMDgyRDBFMEZDRDBFMEZERDBFMEZFRDBFMEZGMzMKLTowNTE2NUMwMEQwRTBEMEQwMjIxNwotOjEwMTY2MTAwQzBEMEMwRTBDMDgyQzA4MzkwNzY3Q0UwOTA3RjZGRjBGNAotOjEwMTY3MTAwOTA3NjdERTA5MDdGNkZGMDkwNzY3RUUwOTA3RjZGRjBDNgotOjA5MTY4MTAwRDA4M0QwODJEMEUwRDBEMDIyNDkKLToxMDE2OEEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzN0UKLToxMDE2OUEwMDA1ODZDMDg0QzA4NTkwNzY4N0UwRkZCRjAwMDMwMjE3RTUKLToxMDE2QUEwMDAxOTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGMTIKLToxMDE2QkEwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGQTYKLToxMDE2Q0EwMEYwOTA3RkUyNzQ4MEYwOTA3NjhFRTBCNDAxMDUwNTg2OTIKLToxMDE2REEwMDAyMTZGNkI0MDIwNTA1ODYwMjE2RUIwNTg2MDIxNkZCMEIKLToxMDE2RUEwMEUwRTBFMEUwRTBFMERGRjgwMjE2RkJFMEUwRTBFMERGNjcKLToxMDE2RkEwMEZBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDA4M0QwM0EKLTowQzE3MEEwMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjgyCi06MTAxNzE2MDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQjZFCi06MEExNzI2MDBEMEUwRjhEMEUwRDA4M0QwODIyMjlBCi06MTAwQ0E1MDA0MTcyMDEwMTQ1NzIwNTAwMDJDOTAwMDA0NTcyMEEwMDQyCi06MTAwQ0I1MDAwMTAyMDMwNDRENzIwRkQxMDBEMTAwMDAwMDAwMDAwMEI1Ci06MTAwQ0M1MDAyODI4MDkwMDRENzIxQzAxMDAwMTAyMDMwNDA1MDYwN0NFCi06MTAwQ0Q1MDAwODA5MEEwQjQxNzIyRTIyNDE3MjJGMjM0MTcyMzAyMERFCi06MTAwQ0U1MDA0MTcyMzEyMTYyRDI3MjNBMDAwMDAwMDAwMDAwMDAwMDFBCi06MTAwQ0Y1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAwRDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAwRDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAwRDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAwRDM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAwRDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAwRDU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAwRDY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAwRDc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMTAxMDEwMTY4Ci06MTAwRDg1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTRFCi06MTAwRDk1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTNFCi06MTAwREE1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTJFCi06MTAwREI1MDAwMTAxMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjE2Ci06MTAwREM1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkZFCi06MTAwREQ1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkVFCi06MTAwREU1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkRFCi06MTAwREY1MDAwMjAyMDIwMjAyMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0MzCi06MTAwRTA1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0FECi06MTAwRTE1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzlECi06MTAwRTI1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzhECi06MTAwRTM1MDAwMzAzMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDZGCi06MTAwRTQ1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDVECi06MTAwRTU1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDRECi06MTAwRTY1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDNECi06MTAwRTc1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTFECi06MTAwRTg1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTBECi06MTAwRTk1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNUZECi06MTAwRUE1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDYwNkVCCi06MTAwRUI1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkNECi06MTAwRUM1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkJECi06MTAwRUQ1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkFECi06MTAwRUU1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDcwNzA3MDgwODk2Ci06MTAwRUY1MDAwODA5MDkwOTBBMEEwQTBCMEIwQjBDMEMwQzBEMEQwRDQwCi06MTAwRjA1MDAwRTBFMEUwRjBGMEYxMDEwMTAxMTExMTExMjEyMTIxM0Q5Ci06MTAwRjE1MDAxMzEzMTQxNDE0MTUxNTE1MTYxNjE2MTcxNzE3MTgxODc0Ci06MTAwRjI1MDAxODE5MTkxOTE5MUExQTFBMUExQjFCMUIxQjFDMUMxQzE4Ci06MTAwRjM1MDAxQzFEMUQxRDFEMUUxRTFFMUUxRjFGMUYxRjIwMjAyMEM4Ci06MTAwRjQ1MDAyMTIxMjEyMjIyMjIyMzIzMjQyNDI1MjUyNjI2MjcyNzYxCi06MTAwRjU1MDAyODI4MjkyOTJBMkEyQjJCMkMyQzJEMkQyRTJFMkYyRkQ0Ci06MTAwRjY1MDAzMDMwMzEzMTMyMzIzMzMzMzQzNDM1MzUzNjM2MzczNzQ0Ci06MTAwRjc1MDAzODM4MzkzOTNBM0EzQjNDM0QzRTNGNDA0MTQyNDM0NDlCCi06MTAwRjg1MDA0NTQ2NDc0ODQ5NDk0QTRCNEI0QzRENEU0RjUwNTE1MkE3Ci06MTAwRjk1MDA1MzU0NTU1NTU2NTY1NzU3NTg1QTVCNUQ1RTVGNjE2MkI3Ci06MTAwRkE1MDA2MzY0NjU2NjY3Njg2OTZBNkI2QzZENkY3MTcyNzM3NDhCCi06MTAwRkI1MDA3NTc2Nzc3ODc5N0E3QjdDN0U4MDAxMzcwMTAxMzgwMEY4Ci06MTA0QUM0MDBFNDkwNzIzNkYwQTNGMDkwN0Y5N0UwNTRGQkYwRTQ5MDBBCi06MTA0QUQ0MDA3MjMzRjA5MDcyMzJGMDkwNzIwMTA0RjBFNDkwNzIzMzA5Ci06MTA0QUU0MDBGMDkwNzIzMkYwOTA3MjAxMDRGMDkwN0Y5N0UwNDQwNEU5Ci06MDI0QUY0MDBGMDIyQUUKLToxMDMyNkYwMDkwNzYxOEUwRkY2NDA1NzA0MjkwNzVBQkUwQjQwMTE5RDkKLToxMDMyN0YwMDkwNzIzNzc0MDFGMEU0OTA4MDIwRjA5MDgwMzFGMDkwREMKLToxMDMyOEYwMDgwMjhGMDkwODAzOUYwODAyMkU0OTA3MjM3RjA5MDc1QUEKLToxMDMyOUYwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNzEKLToxMDMyQUYwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNTIKLToxMDMyQkYwMDgxOTk5MDcyMzk3NDA0RjA5MDcyMzlFMEZGMjRGRTkwNzYKLToxMDMyQ0YwMDcyMDRGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1QkYKLToxMDMyREYwMDgzRTA2NDAxNzA1NDkwNzIzNjA0RjA5MDcyMDRFMEZGNDIKLToxMDMyRUYwMDI0RkQ2MDI4MjRGRTYwMjQyNDAzMjRGQjUwMDQ2MDFDNkEKLToxMDMyRkYwMDgxOEM3NDIwMkZGNTgyRTQzNDgwRjU4M0U0RjA3NDI4RjgKLToxMDMzMEYwMDJGRjU4MkU0MzQ4MEY1ODNFNEYwODE4QzkwNzIwNEUwMzEKLToxMDMzMUYwMEZGMjQzMEY1ODJFNDM0ODBGNTgzRTRGMDc0MzgyRkY1MjAKLToxMDMzMkYwMDgyRTQzNDgwRjU4M0U0RjA4MThDRTQ5MDcyMzZGMDkwN0YKLToxMDMzM0YwMDcyMzlFMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzOTMKLToxMDMzNEYwMEUwRkY3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMjgKLToxMDMzNUYwMDAyNzQzQkYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwQUEKLToxMDMzNkYwMDA0OTA3MjAyRjBFRjRFNzAwMjgxMzVFRjY0ODA0RTcwNjAKLToxMDMzN0YwMDAyODEzNUVGRjhFNDkwNzUwREYwRTg5MDc1MENGMDkwNDAKLToxMDMzOEYwMDcyMzRFMDc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNDkKLToxMDMzOUYwMEUwRkY5MDcyMDJGMDkwNzUwREUwMkZGMDkwNzUwQ0UwNDkKLToxMDMzQUYwMDM0MDBGMEUwRkVBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5NDQKLToxMDMzQkYwMEY4RDMxMjM3OTU0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2MDQKLToxMDMzQ0YwMEYwOTA3NTBERTAyNDJBRjA5MDc1MENFMDM0NUFGMEUwN0YKLToxMDMzREYwMEZFQTNFMDc4MDVDRUEyRTcxM0NFMTNEOEY4RkY5MDc1QzEKLToxMDMzRUYwMDBDRUVGMEEzRUZGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0NkQKLToxMDMzRkYwMEQyRUU2NDgwOTQ4MjQwMEE5MDcyMkM3NDAyRjBBMzc0MEYKLToxMDM0MEYwMEQyRjBDMzkwNzIyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzNTcKLToxMDM0MUYwMEYwOTA3MjJDRTBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1QzAKLToxMDM0MkYwMDgzRTA5MDcyMDJGMDkwNzIwNEUwRkYyNEZENjAyRDI0N0YKLToxMDM0M0YwMEZFNjAyOTI0MDMyNEZCNTAwNDYwMjE4MDQwOTA3MjAyMTcKLToxMDM0NEYwMEUwRkU3NDIwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDI4Q0IKLToxMDM0NUYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwODAyMTkwNzIwMkUwNDQKLToxMDM0NkYwMEZGOTA3MjA0RTBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGQTAKLToxMDM0N0YwMEYwNzQzODJFRjU4MkU0MzQ4MEY1ODNFRkYwOTA3MjM5RDIKLTowQjM0OEYwMEUwMDRGMEUwNjQwQTYwMDI0MUM3MjI4NAotOjEwMzQ5QTAwOTA3NjE4RTBGRkI0MDUyMzkwNzIzN0UwNzAxRDkwNzU5RQotOjEwMzRBQTAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA2NAotOjEwMzRCQTAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI0NQotOjEwMzRDQTAwQzE5MTkwNzIzNkUwNjAwMkMxOTE5MDc2NDBFMDcwMzEwRAotOjEwMzREQTAwOTA3MjAzNzQwM0YwOTA3MjAzRTBGRjc1RjAwQUE0MjQ1QgotOjEwMzRFQTAwQUFGNTgyRTQzNDc1RjU4M0UwRkU5MDcyMjlFMEZERUVEOAotOjEwMzRGQTAwNkQ2MDBFRUZDMzk0MEE1MDA4OTA3MjAzRTAwNEYwODBFNgotOjEwMzUwQTAwRDU5MDcyMzk3NDA0RjA5MDc2NDBFMDcwMDg5MDcyMDM5NgotOjEwMzUxQTAwRTA5MDcyMzlGMDkwNzIzOUUwRkQyNEZFOTA3MjJBRjA0MAotOjEwMzUyQTAwRUQ3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0UwRkY2NQotOjEwMzUzQTAwN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjAyNzRBNAotOjEwMzU0QTAwODBGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MDA0OTA1QQotOjEwMzU1QTAwNzIwMkYwRUY0RTcwMDJDMTFCRUY2NDgwNEU3MDAyQzExRQotOjEwMzU2QTAwMUJFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjBFRDc1RjAyRQotOjEwMzU3QTAwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwRkY5MDcyMDI2NAotOjEwMzU4QTAwRjA5MDc1MERFMDJGRjA5MDc1MENFMDM0MDBGMEUwRkUzRAotOjEwMzU5QTAwQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOUY4RDMxMjM3OTVCMAotOjEwMzVBQTAwNDAwQTkwNzUwQzc0QTVGMEEzNzRENkYwOTA3NTBERTBERQotOjEwMzVCQTAwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMEZFQTNFMDc4MDU3NgotOjEwMzVDQTAwQ0VBMkU3MTNDRTEzRDhGOEZGOTA3NTBDRUVGMEEzRUY1NgotOjEwMzVEQTAwRjA5MDcyMkNFRUYwQTNFRkYwRDM5NEQyRUU2NDgwOTRDNAotOjEwMzVFQTAwODI0MDBBOTA3MjJDNzQwMkYwQTM3NEQyRjBDMzkwNzJEMwotOjEwMzVGQTAwMkNFMDY0ODA5NDgwNTAwNEU0RjBBM0YwOTA3MjJDRTBGNAotOjEwMzYwQTAwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNTgzRTA5MDcyMDI2QQotOjEwMzYxQTAwRjA5MDcyMkFFMEZGMjRGRDYwMkQyNEZFNjAyOTI0MDMyNQotOjEwMzYyQTAwMjRGQjUwMDQ2MDIxODA0MDkwNzIwMkUwRkU3NDIwMkYzNwotOjEwMzYzQTAwRjU4MkU0MzQ4MEY1ODNFRUYwNzQyODJGRjU4MkU0MzRDMQotOjEwMzY0QTAwODBGNTgzRUVGMDgwMjE5MDcyMDJFMEZGOTA3MjJBRTAwQQotOjEwMzY1QTAwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkYwNzQzODJFRjVEOQotOjEwMzY2QTAwODJFNDM0ODBGNTgzRUZGMDkwNzY0MEUwNzAwNjkwNzI0MQotOjEwMzY3QTAwMzk3NDBBRjA5MDcyMzlFMDA0RjBFMEMzOTQwQTUwMDJGNwotOjA4MzY4QTAwQTExMUU0OTA3NjQwRjAyMjRBCi06MDQ0RDk3MDAxMjE3MzAyMjlECi06MTA0OTU4MDA5MDc2NDY3NDgwRjBFNEEzRjBBM0YwQTNGMEEzRjBBMzRDCi06MTA0OTY4MDBGMEEzRjBBM0YwQTNGMEEzNzQ4MEYwRTRBM0YwQTNGMDA1Ci06MTA0OTc4MDBBM0YwQTNGMEEzRjBBM0YwQTM3NDQwRjBFNEEzRjBBMzgyCi06MTA0OTg4MDA3NDQwRjBFNEEzRjBBM0YwQTNGMEEzRjBBM0YwQTNGMDI1Ci06MTA0OTk4MDBBMzc0NDBGMEU0QTNGMEEzNzQ0MEYwRTRBM0YwQTNGMDAwCi06MDU0OUE4MDBBM0YwQTNGMDIyQzIKLToxMDBGQzYwMEU0RkY3NDQ2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDIwNjAKLToxMDBGRDYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ0RTJGRjU4MkU0MkIKLToxMDBGRTYwMDM0NzZGNTgzRTBGRTc0MzAyRkY1ODJFNDM0ODBGNTgzQTEKLTowNjBGRjYwMEVFRjAwRkJGMDhDQzc1Ci06MDEwRkZDMDAyMkQyCi06MTA0QThEMDBFNEZGNzQ1NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyODQ2Ci06MTA0QTlEMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NUUyRkY1ODJFNDE5Ci06MTA0QUFEMDAzNDc2RjU4M0UwRkU3NDM4MkZGNTgyRTQzNDgwRjU4Mzk3Ci06MDY0QUJEMDBFRUYwMEZCRjA4Q0M3MwotOjAxNEFDMzAwMjJEMAotOjEwMTczMDAwQzA4MkMwODNDMEUwRThDMEUwNzg3OEU4MTRGODcwRkJBRAotOjBBMTc0MDAwRDBFMEY4RDBFMEQwODNEMDgyMjI4MAotOjAzMDA0MzAwMDI0OTAwNkYKLToxMDQ5MDAwMDAyMkZFNzAwMDIzRDQ3MDAwMjRENDYwMDAyNEJENTAwNTIKLToxMDQ5MTAwMDAyNEI2MDAwMDIyRkZGMDAwMjRCRUQwMDAyNEI4MTAwQjIKLToxMDQ5MjAwMDAyNEMwNDAwMDIzRkQ1MDAwMjRDMUIwMDAyNEMzMjAwMzYKLToxMDQ5MzAwMDAyNEM0OTAwMDI0QzYwMDAwMjRDNzcwMDAyNEM4RTAwOTEKLToxMDQ5NDAwMDAyNENBNTAwMDI0Q0JDMDAwMjRDRDMwMDAyNENFQTAwMTEKLTowODQ5NTAwMDAyNEQwMTAwMDI0RDE4MDBBOAotOjEwMUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQotOjEwMUI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQotOjEwMUI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQotOjEwMUI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQotOjEwMUI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQotOjEwMUI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQotOjEwMUJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQotOjEwMUJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQotOjEwMUJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQotOjEwMUJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQotOjEwMUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQotOjEwMUJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQotOjEwMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAotOjEwMUMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAotOjEwMUMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAotOjEwMUMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAotOjEwMUM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAotOjEwMUM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAotOjEwMUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAotOjEwMUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAotOjEwMUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAotOjEwMUM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAotOjEwMUNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAotOjEwMUNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAotOjEwMUNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAotOjEwMUNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAotOjEwMUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAotOjEwMUNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAotOjEwMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMwotOjEwMUQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMwotOjEwMUQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMwotOjEwMUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMwotOjEwMUQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MwotOjEwMUQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MwotOjEwMUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MwotOjEwMUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MwotOjEwMUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MwotOjEwMUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MwotOjEwMURBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMwotOjEwMURCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMwotOjEwMURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMwotOjEwMUREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMwotOjEwMURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMwotOjEwMURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMwotOjEwMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgotOjEwMUUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgotOjEwMUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgotOjEwMUUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgotOjEwMUU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgotOjEwMUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgotOjEwMUU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgotOjEwMUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgotOjEwMUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgotOjEwMUU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgotOjEwMUVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgotOjBFMUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Ci06MTAxRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Ci06MTAxRUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Ci06MTAxRURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Ci06MTAxRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Ci06MTAxRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Ci06MTAxRjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCi06MTAxRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCi06MTAxRjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCi06MDIxRjNFMDAwMDAwQTEKLToxMDFGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKLToxMDFGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKLToxMDFGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKLToxMDFGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKLToxMDFGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKLToxMDFGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKLToxMDFGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKLToxMDFGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKLToxMDFGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKLToxMDFGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKLToxMDFGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKLToxMDFGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKLToxMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKLToxMDIwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKLToxMDIwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKLToxMDIwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKLToxMDIwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKLToxMDIwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKLToxMDIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKLToxMDIwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKLToxMDIwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKLToxMDIwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKLToxMDIwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKLToxMDIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKLToxMDIwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKLToxMDIwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLToxMDIwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKLToxMDIwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKLToxMDIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKLToxMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKLToxMDIxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKLToxMDIxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKLToxMDIxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKLToxMDIxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKLToxMDIxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKLToxMDIxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKLToxMDIxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKLToxMDIxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKLToxMDIxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKLToxMDIxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKLToxMDIxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKLToxMDIxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKLToxMDIxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDIxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKLToxMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDIyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDIyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDIyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDIyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDIyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKLToxMDIyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKLToxMDIyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKLToxMDIyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKLToxMDIyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKLToxMDIyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKLToxMDIyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKLToxMDIyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKLToxMDIyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKLToxMDIyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKLToxMDIzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDIzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDIzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDIzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDIzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLTowRTIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgotOjEwMjM3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgotOjEwMjM4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgotOjEwMjM5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgotOjEwMjNBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgotOjEwMjNCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgotOjEwMjNDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgotOjEwMjNERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMjNFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgotOjEwMjNGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgotOjEwMjQwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMjQxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMjQyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMjQzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMjQ0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMjQ1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQotOjEwMjQ2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQotOjEwMjQ3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQotOjEwMjQ4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQotOjEwMjQ5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQotOjEwMjRBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQotOjEwMjRCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQotOjEwMjRDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQotOjEwMjRERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQotOjEwMjRFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjRGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjUwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjUxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjUyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjUzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjU0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjU1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjEwMjU2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAotOjEwMjU3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAotOjEwMjU4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAotOjEwMjU5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAotOjEwMjVBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAotOjEwMjVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAotOjEwMjVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAotOjEwMjVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAotOjEwMjVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAotOjEwMjVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAotOjEwMjYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQwotOjEwMjYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQwotOjEwMjYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QwotOjEwMjYzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QwotOjEwMjY0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QwotOjEwMjY1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QwotOjEwMjY2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QwotOjEwMjY3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QwotOjEwMjY4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQwotOjEwMjY5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQwotOjEwMjZBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQwotOjEwMjZCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQwotOjEwMjZDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQwotOjEwMjZERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQwotOjBFMjZFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyNkZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyNzBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyNzFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyNzJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyNzNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyNzRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyNzVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MTAyNzZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECi06MTAyNzdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECi06MTAyNzhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECi06MTAyNzlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECi06MTAyN0FDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECi06MTAyN0JDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECi06MTAyN0NDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECi06MTAyN0RDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECi06MTAyN0VDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECi06MDUyN0ZDMDAwMDAwMDAwMDIyQjYKLTowNzE3NEEwMDkwN0ZDNTc0MDJGMDIyM0MKLToxMDE3NTEwMDkwN0VDMEUwOTA3NjQ1RjA5MDdFQzFFMDkwNzY0NEYwQjYKLToxMDE3NjEwMDkwN0VDMkUwOTA3NjQzRjBCNDAwMDMwMjE3Nzg5MDc2NDEKLToxMDE3NzEwMDE5NzQwM0YwMDIxNzhFOTA3NjQ0RTBCNEJCMDk5MDc2OTkKLToxMDE3ODEwMDE5NzQwMkYwMDIxNzhFOTA3NjE5NzQwMUYwOTA3NjQyNjYKLTowMzE3OTEwMEU0RjAyMjVGCi06MDMwMDAwMDAwMjQ1RjlCRAotOjBDNDVGOTAwNzg3RkU0RjZEOEZENzU4MTM4MDI0NjQwNUEKLToxMDM2OTIwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyMzYKLTowOTM2QTIwMEUzMjI4OTgyOEE4M0U0OTMyMjY5Ci06MTAzNkFCMDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MEQ0Ci06MTAzNkJCMDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMjFFCi06MEQzNkNCMDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMjM4Ci06MTAzNkQ4MDBDMkQ1RUMzMEU3MDlCMkQ1RTRDMzlERkRFNDlDRkNFRTBECi06MTAzNkU4MDAzMEU3MTVCMkQ1RTRDMzlGRkZFNDlFRkUxMjM4MUZDMzJFCi06MTAzNkY4MDBFNDlERkRFNDlDRkM4MDAzMTIzODFGMzBENTA3QzNFNDI5Ci06MDYzNzA4MDA5RkZGRTQ5RUZFMjI3QgotOjEwMzcwRTAwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBGOQotOjEwMzcxRTAwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkVENgotOjEwMzcyRTAwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODMxQwotOjA4MzczRTAwRTk5M0Y1RjBBM0U5OTMyMkUxCi06MTAzNzQ2MDBFODhGRjBBNENDOEJGMEE0MkNGQ0U5OEVGMEE0MkNGQzIyCi06MTAzNzU2MDA4QUYwRURBNDJDRkNFQThFRjBBNENEQThGMDhCRjBBNEEwCi06MTAzNzY2MDAyRENDMzgyNUYwRkRFOThGRjBBNDJDQ0QzNUYwRkNFQkZGCi06MTAzNzc2MDA4RUYwQTRGRUE5RjBFQjhGRjBBNENGQzVGMDJFQ0QzOUM0Ci06MEYzNzg2MDBGRUU0M0NGQ0VBQTQyRENFMzVGMEZERTQzQ0ZDMjIzMQotOjEwMzc5NTAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRUM2NDgwQzhBQgotOjA2MzdBNTAwNjQ4MDk4NDVGMDIyNEIKLToxMDM3QUIwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNzQKLTowMTM3QkIwMDIyRUIKLTowQzM3QkMwMEVDRjBBM0VERjBBM0VFRjBBM0VGRjAyMjgwCi06MTAzN0M4MDBBODgyODU4M0YwRDA4M0QwODIxMjM3REYxMjM3REYxMkM4Ci06MTAzN0Q4MDAzN0RGMTIzN0RGRTQ3M0U0OTNBM0M1ODNDNUYwQzU4M0VECi06MTAzN0U4MDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDODRCCi06MDEzN0Y4MDAyMkFFCi06MTAzN0Y5MDBEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzVGCi06MTAzODA5MDA5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MDcyCi06MDYzODE5MDBFRkEzQTNBMzgwREY3MgotOjEwNDYwNTAwMDI0NzVBRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIyQQotOjEwNDYxNTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNCNgotOjEwNDYyNTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REY4NQotOjEwNDYzNTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEM4RkU0N0U3QQotOjEwNDY0NTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTM3QQotOjEwNDY1NTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM0MQotOjEwNDY2NTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0E2QwotOjEwNDY3NTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkUyNAotOjAxMEZDNTAwMDAyQgotOjEwMzgxRjAwQkMwMDBCQkUwMDI5RUY4REYwODRGRkFERjAyMkU0Q0M4RAotOjEwMzgyRjAwRjg3NUYwMDhFRjJGRkZFRTMzRkVFQzMzRkNFRTlERUM1NgotOjEwMzgzRjAwOTg0MDA1RkNFRTlERkUwRkQ1RjBFOUU0Q0VGRDIyRUQ5QwotOjEwMzg0RjAwRjhGNUYwRUU4NDIwRDIxQ0ZFQURGMDc1RjAwOEVGMkZFNgotOjEwMzg1RjAwRkZFRDMzRkQ0MDA3OTg1MDA2RDVGMEYyMjJDMzk4RkRENwotOjA1Mzg2RjAwMEZENUYwRUEyMjc0Ci06MDAwMDAwMDFGRgotKi8KLS8qCi1WRVJTSU9OPTEuMDQuMDYyCi1EQVRFPTE2LjEwLjIwMDIgIAotKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfZW1pNjJfbG9hZGVyW10gPSB7Ci0geyAzLDB4MDAwMCwwLHsweDAyLDB4MDIsMHg4N319LAotIHsgMywweDAwNDMsMCx7MHgwMiwweDA0LDB4MDB9fSwKLSB7MTYsMHgwMTAwLDAsezB4ZTQsMHhmZiwweGZlLDB4YzIsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4LDB4MjAsMHg5MCwweDdmLDB4YWIsMHg3NCwweGZmLDB4ZjB9fSwKLSB7MTYsMHgwMTEwLDAsezB4OTAsMHg3ZiwweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHg5NSwweDc0LDB4YzB9fSwKLSB7MTYsMHgwMTIwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWUsMHhmMCwweDkwLDB4N2YsMHg5OCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTQsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgwMTMwLDAsezB4OWQsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4OTMsMHhlMCwweDU0LDB4ZmN9fSwKLSB7MTYsMHgwMTQwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweDAzLDB4ZjAsMHhlNCwweDkwLDB4N2YsMHg5NiwweGYwLDB4OTAsMHg3ZiwweGFmLDB4ZTB9fSwKLSB7MTYsMHgwMTUwLDAsezB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDBkLDB4ZjAsMHhkMiwweGFmLDB4MGYsMHhiZiwweDAwLDB4MDF9fSwKLSB7MTYsMHgwMTYwLDAsezB4MGUsMHhiZSwweDA3LDB4ZjgsMHhiZiwweDA4LDB4ZjUsMHgyMCwweDIwLDB4NDIsMHg3NSwweDE0LDB4MDAsMHg3NSwweDEzLDB4MDB9fSwKLSB7MTYsMHgwMTcwLDAsezB4NzUsMHgxMiwweDAwLDB4NzUsMHgxMSwweDAwLDB4N2YsMHg0OCwweDdlLDB4OTIsMHg3ZCwweDAwLDB4N2MsMHgwMCwweGFiLDB4MTR9fSwKLSB7MTYsMHgwMTgwLDAsezB4YWEsMHgxMywweGE5LDB4MTIsMHhhOCwweDExLDB4YzMsMHgxMiwweDAzLDB4ZWQsMHg1MCwweGRiLDB4MjAsMHgyMCwweGQ4LDB4N2F9fSwKLSB7MTYsMHgwMTkwLDAsezB4MDAsMHg3OSwweDAwLDB4NzgsMHgwMCwweGU1LDB4MTQsMHgyNCwweDAxLDB4ZjUsMHgxNCwweGVhLDB4MzUsMHgxMywweGY1LDB4MTN9fSwKLSB7MTYsMHgwMWEwLDAsezB4ZTksMHgzNSwweDEyLDB4ZjUsMHgxMiwweGU4LDB4MzUsMHgxMSwweGY1LDB4MTEsMHg4MCwweGNhLDB4MzAsMHgyMCwweGZkLDB4MTJ9fSwKLSB7MTYsMHgwMWIwLDAsezB4MDEsMHhjNywweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9fSwKLSB7IDYsMHgwMWMwLDAsezB4MDIsMHhmMCwweGMyLDB4MjAsMHg4MCwweGU2fX0sCi0geyAxLDB4MDFjNiwwLHsweDIyfX0sCi0gezE2LDB4MDFjNywwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg1YiwweDYwLDB4NjAsMHgyNCwweDAyLDB4NjAsMHgwMywweDAyLDB4MDIsMHg4NSwweDkwfX0sCi0gezE2LDB4MDFkNywwLHsweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1LDB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwfX0sCi0gezE2LDB4MDFlNywwLHsweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1LDB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1fX0sCi0gezE2LDB4MDFmNywwLHsweDE2LDB4NDUsMHgxNSwweDcwLDB4MDMsMHgwMiwweDAyLDB4ODUsMHhlNCwweDkwLDB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0fX0sCi0gezE2LDB4MDIwNywwLHsweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjLDB4MTIsMHgwMywweDEzLDB4YWYsMHgwYywweDdlfX0sCi0gezE2LDB4MDIxNywwLHsweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1LDB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1fX0sCi0gezE2LDB4MDIyNywwLHsweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4YzcsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1fX0sCi0gezE2LDB4MDIzNywwLHsweDBiLDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MGEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1fX0sCi0gezE2LDB4MDI0NywwLHsweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNSwweDE2LDB4NDUsMHgxNSwweDYwLDB4MzAsMHhlNCwweDkwfX0sCi0gezE2LDB4MDI1NywwLHsweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjfX0sCi0gezE2LDB4MDI2NywwLHsweDEyLDB4MDMsMHgyYiwweGFmLDB4MGMsMHg3ZSwweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1fX0sCi0gezE1LDB4MDI3NywwLHsweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNSwweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4Y2EsMHhjM319LAotIHsgMSwweDAyODYsMCx7MHgyMn19LAotIHsxMiwweDAyODcsMCx7MHg3OCwweDdmLDB4ZTQsMHhmNiwweGQ4LDB4ZmQsMHg3NSwweDgxLDB4MjksMHgwMiwweDAyLDB4Y2V9fSwKLSB7MTYsMHgwMjkzLDAsezB4MDIsMHgwMSwweDAwLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9fSwKLSB7MTYsMHgwMmEzLDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9fSwKLSB7MTYsMHgwMmIzLDAsezB4YzQsMHg1NCwweDBmLDB4NDQsMHgyMCwweGM4LDB4ODMsMHg0MCwweDA0LDB4ZjQsMHg1NiwweDgwLDB4MDEsMHg0NiwweGY2LDB4ZGZ9fSwKLSB7MTYsMHgwMmMzLDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MDQsMHg2ZSwweGU0LDB4N2V9fSwKLSB7MTYsMHgwMmQzLDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9fSwKLSB7MTYsMHgwMmUzLDAsezB4YTMsMHg2MCwweDAxLDB4MGUsMHhjZiwweDU0LDB4YzAsMHgyNSwweGUwLDB4NjAsMHhhOCwweDQwLDB4YjgsMHhlNCwweDkzLDB4YTN9fSwKLSB7MTYsMHgwMmYzLDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9fSwKLSB7MTYsMHgwMzAzLDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9fSwKLSB7MTYsMHgwMzEzLDAsezB4ZTUsMHgwYywweGZmLDB4ZTUsMHgwYiwweGY1LDB4ODIsMHhlNSwweDBhLDB4ZjUsMHg4MywweDc1LDB4OTIsMHg3ZSwweDc0LDB4YzB9fSwKLSB7IDgsMHgwMzIzLDAsezB4ZjgsMHhlMiwweDA4LDB4ZjAsMHhhMywweGRmLDB4ZmEsMHgyMn19LAotIHsxNiwweDAzMmIsMCx7MHg5MCwweDdmLDB4OTYsMHg4NSwweDgzLDB4OTIsMHhhOCwweDgyLDB4NzksMHgwMiwweDkwLDB4MDAsMHgwMCwweGUwLDB4YjQsMHgwMH19LAotIHsxNiwweDAzM2IsMCx7MHgwZCwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NDQsMHg4MCwweGYwLDB4ZTUsMHgwY319LAotIHsxNiwweDAzNGIsMCx7MHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZjUsMHgyOCwweGU0LDB4YTIsMHg0NywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMn19LAotIHsxNiwweDAzNWIsMCx7MHg0NiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ1LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDQsMHgzM319LAotIHsxNiwweDAzNmIsMCx7MHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDMsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MiwweDMzLDB4ZjIsMHg2OX19LAotIHsxNiwweDAzN2IsMCx7MHhmMiwweGU0LDB4YTIsMHg0MSwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQwLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhhM319LAotIHsgMywweDAzOGIsMCx7MHhkZiwweGMyLDB4MjJ9fSwKLSB7MTYsMHgwMzhlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4OTAsMHg3ZiwweGM0LDB4ZTQsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2Z9fSwKLSB7MTEsMHgwMzllLDAsezB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDAzYTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDIwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX19LAotIHsgOCwweDAzYjksMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4MDNjMSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGQwfX0sCi0geyA2LDB4MDNkMSwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDAzZDcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHhkMH19LAotIHsgNiwweDAzZTcsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgwM2VkLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9fSwKLSB7IDEsMHgwM2ZkLDAsezB4MjJ9fSwKLSB7IDEsMHgwM2ZlLDAsezB4MzJ9fSwKLSB7IDEsMHgwM2ZmLDAsezB4MzJ9fSwKLSB7MTYsMHgwNDAwLDAsezB4MDIsMHgwMywweGE5LDB4MDAsMHgwMiwweDAzLDB4YzEsMHgwMCwweDAyLDB4MDMsMHg4ZSwweDAwLDB4MDIsMHgwNCwweDU4LDB4MDB9fSwKLSB7MTYsMHgwNDEwLDAsezB4MDIsMHgwMywweGQ3LDB4MDAsMHgwMiwweDAzLDB4ZmUsMHgwMCwweDAyLDB4MDMsMHhmZiwweDAwLDB4MDIsMHgwNCwweDg0LDB4MDB9fSwKLSB7MTYsMHgwNDIwLDAsezB4MDIsMHgwNCwweDg1LDB4MDAsMHgwMiwweDA0LDB4ODYsMHgwMCwweDAyLDB4MDQsMHg4NywweDAwLDB4MDIsMHgwNCwweDg4LDB4MDB9fSwKLSB7MTYsMHgwNDMwLDAsezB4MDIsMHgwNCwweDg5LDB4MDAsMHgwMiwweDA0LDB4OGEsMHgwMCwweDAyLDB4MDQsMHg4YiwweDAwLDB4MDIsMHgwNCwweDhjLDB4MDB9fSwKLSB7MTYsMHgwNDQwLDAsezB4MDIsMHgwNCwweDhkLDB4MDAsMHgwMiwweDA0LDB4OGUsMHgwMCwweDAyLDB4MDQsMHg4ZiwweDAwLDB4MDIsMHgwNCwweDkwLDB4MDB9fSwKLSB7IDgsMHgwNDUwLDAsezB4MDIsMHgwNCwweDkxLDB4MDAsMHgwMiwweDA0LDB4OTIsMHgwMH19LAotIHsxNiwweDA0NTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA4LDB4ZjAsMHhkMH19LAotIHsgNiwweDA0NjgsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgwNDZlLDAsezB4MDIsMHgwYSwweDAwLDB4MGYsMHgwMSwweDBjLDB4MTEsMHgwNCwweDBkLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDAwLDB4MDB9fSwKLSB7IDEsMHgwNDdlLDAsezB4MDB9fSwKLSB7IDQsMHgwNDdmLDAsezB4MDIsMHgxNywweDAwLDB4MDB9fSwKLSB7IDEsMHgwNDgzLDAsezB4MDB9fSwKLSB7IDEsMHgwNDg0LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg1LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg2LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg3LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg4LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg5LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhhLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhiLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhjLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhkLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhlLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhmLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkwLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkxLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkyLDAsezB4MzJ9fSwKLSB7MTYsMHgxMTAwLDAsezB4MTIsMHgwMSwweDEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDZhLDB4MDgsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAxLDB4MDJ9fSwKLSB7MTYsMHgxMTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHgyMCwweDAwLDB4MDEsMHgwMSwweDAzLDB4YTAsMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDJ9fSwKLSB7MTYsMHgxMTIwLDAsezB4ZmYsMHgwMCwweDAwLDB4MDQsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDB9fSwKLSB7MTYsMHgxMTMwLDAsezB4MDAsMHgwMCwweDA0LDB4MDMsMHgwOSwweDA0LDB4MjYsMHgwMywweDQxLDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDY4LDB4MDB9fSwKLSB7MTYsMHgxMTQwLDAsezB4NmYsMHgwMCwweDcyLDB4MDAsMHgyMCwweDAwLDB4NDMsMHgwMCwweDY4LDB4MDAsMHg2OSwweDAwLDB4NzAsMHgwMCwweDczLDB4MDB9fSwKLSB7MTYsMHgxMTUwLDAsezB4MmMsMHgwMCwweDIwLDB4MDAsMHg0OSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHgyZSwweDAwLDB4MjgsMHgwMywweDQ2LDB4MDB9fSwKLSB7MTYsMHgxMTYwLDAsezB4NjksMHgwMCwweDcyLDB4MDAsMHg2ZCwweDAwLDB4NzcsMHgwMCwweDYxLDB4MDAsMHg3MiwweDAwLDB4NjUsMHgwMCwweDIwLDB4MDB9fSwKLSB7MTYsMHgxMTcwLDAsezB4NDYsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NmQsMHgwMCwweDY1LDB4MDAsMHg1NywweDAwLDB4NmYsMHgwMCwweDcyLDB4MDB9fSwKLSB7MTYsMHgxMTgwLDAsezB4NmIsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDB9fSwKLSB7MTYsMHgxMTkwLDAsezB4NjcsMHgwMCwweDc1LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDc0LDB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDB9fSwKLSB7MTYsMHgxMWEwLDAsezB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDN9fSwKLSB7MTYsMHgxMWIwLDAsezB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDB9fSwKLSB7MTYsMHgxMWMwLDAsezB4NjUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDB9fSwKLSB7IDIsMHgxMWQwLDAsezB4MDAsMHgwMH19LAotIHsgMCwweDAwMDAsMSx7MH19Ci19OwotLyogU291cmNlOiBFTUlMT0FELkhFWCAKLToxMDA0NkUwMDAyMEEwMDBGMDEwQzExMDQwRDAwMDAwMDAwNDEwMDAwRjMKLTowMTA0N0UwMDAwN0QKLToxMDAxQzcwMDkwN0ZFOUUwMjQ1QjYwNjAyNDAyNjAwMzAyMDI4NTkwNkYKLToxMDAxRDcwMDdGRUFFMDc1MEEwMEY1MEJBM0UwRkVFNEVFNDIwQTkwMjEKLToxMDAxRTcwMDdGRUVFMDc1MTUwMEY1MTZBM0UwRkVFNEVFNDIxNUU1OTcKLToxMDAxRjcwMDE2NDUxNTcwMDMwMjAyODVFNDkwN0ZDNUYwOTA3RkI0MjEKLToxMDAyMDcwMEUwMjBFM0Y5OTA3RkM1RTBGNTBDMTIwMzEzQUYwQzdFRjUKLToxMDAyMTcwMDAwRUYyNTBCRjUwQkVFMzUwQUY1MEFDM0U1MTY5RkY1M0EKLToxMDAyMjcwMDE2RTUxNTlFRjUxNTgwQzc5MDdGRUFFMDc1MEEwMEY1N0IKLToxMDAyMzcwMDBCQTNFMEZFRTRFRTQyMEE5MDdGRUVFMDc1MTUwMEY1QjEKLToxMDAyNDcwMDE2QTNFMEZFRTRFRTQyMTVFNTE2NDUxNTYwMzBFNDkwOEUKLToxMDAyNTcwMDdGQzVGMDkwN0ZCNEUwMjBFM0Y5OTA3RkM1RTBGNTBDMEYKLToxMDAyNjcwMDEyMDMyQkFGMEM3RTAwRUYyNTBCRjUwQkVFMzUwQUY1Q0QKLTowRjAyNzcwMDBBQzNFNTE2OUZGNTE2RTUxNTlFRjUxNTgwQ0FDMzU3Ci06MDEwMjg2MDAyMjU1Ci06MTAwM0E5MDBDMEUwQzA4M0MwODJEMjIwNTM5MUVGOTA3RkFCNzQwMTJCCi06MDgwM0I5MDBGMEQwODJEMDgzRDBFMDMyQzUKLToxMDAzOEUwMEMwRTBDMDgzQzA4MjkwN0ZDNEU0RjA1MzkxRUY5MDdGQjEKLTowQjAzOUUwMEFCNzQwNEYwRDA4MkQwODNEMEUwMzJCQQotOjEwMDNDMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDA0NAotOjA2MDNEMTAwODJEMDgzRDBFMDMyNkYKLToxMDAzRDcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwMjAKLTowNjAzRTcwMDgyRDA4M0QwRTAzMjU5Ci06MDEwM0ZFMDAzMkNDCi06MTAwNDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA4RjBEMEE2Ci06MDYwNDY4MDA4MkQwODNEMEUwMzJENwotOjAxMDNGRjAwMzJDQgotOjAxMDQ4NDAwMzI0NQotOjAxMDQ4NTAwMzI0NAotOjAxMDQ4NjAwMzI0MwotOjAxMDQ4NzAwMzI0MgotOjAxMDQ4ODAwMzI0MQotOjAxMDQ4OTAwMzI0MAotOjAxMDQ4QTAwMzIzRgotOjAxMDQ4QjAwMzIzRQotOjAxMDQ4QzAwMzIzRAotOjAxMDQ4RDAwMzIzQwotOjAxMDQ4RTAwMzIzQgotOjAxMDQ4RjAwMzIzQQotOjAxMDQ5MDAwMzIzOQotOjAxMDQ5MTAwMzIzOAotOjAxMDQ5MjAwMzIzNwotOjA0MDQ3RjAwMDIxNzAwMDA2MAotOjEwMDEwMDAwRTRGRkZFQzIyMEQyRTg0M0Q4MjA5MDdGQUI3NEZGRjAxQQotOjEwMDExMDAwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0Y5NTc0QzBFMwotOjEwMDEyMDAwRjA5MDdGOUVGMDkwN0Y5OEYwRTQ5MDdGOTRGMDkwN0YyNQotOjEwMDEzMDAwOUQ3NEZGRjA5MDdGOTc3NEEwRjA5MDdGOTNFMDU0RkM0MwotOjEwMDE0MDAwRjA5MDdGOUM3NDAzRjBFNDkwN0Y5NkYwOTA3RkFGRTA5NgotOjEwMDE1MDAwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGMEZCRjAwMDEzQwotOjEwMDE2MDAwMEVCRTA3RjhCRjA4RjUyMDIwNDI3NTE0MDA3NTEzMDA3NQotOjEwMDE3MDAwNzUxMjAwNzUxMTAwN0Y0ODdFOTI3RDAwN0MwMEFCMTRFMwotOjEwMDE4MDAwQUExM0E5MTJBODExQzMxMjAzRUQ1MERCMjAyMEQ4N0FCQwotOjEwMDE5MDAwMDA3OTAwNzgwMEU1MTQyNDAxRjUxNEVBMzUxM0Y1MTMwRAotOjEwMDFBMDAwRTkzNTEyRjUxMkU4MzUxMUY1MTE4MENBMzAyMEZEMTIzQgotOjEwMDFCMDAwMDFDNzUwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQ2MQotOjA2MDFDMDAwMDJGMEMyMjA4MEU2RkYKLTowMTAxQzYwMDIyMTYKLToxMDExMDAwMDEyMDExMDAxMDAwMDAwNDA2QTA4MDEwMTAwMDEwMTAyMDMKLToxMDExMTAwMDAwMDEwOTAyMjAwMDAxMDEwM0EwMDAwOTA0MDAwMDAyRUYKLToxMDExMjAwMEZGMDAwMDA0MDcwNTgyMDI0MDAwMDAwNzA1MDIwMjQwOUMKLToxMDExMzAwMDAwMDAwNDAzMDkwNDI2MDM0MTAwNkUwMDYzMDA2ODAwRjgKLToxMDExNDAwMDZGMDA3MjAwMjAwMDQzMDA2ODAwNjkwMDcwMDA3MzAwQTcKLToxMDExNTAwMDJDMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDI4MDM0NjAwOEEKLToxMDExNjAwMDY5MDA3MjAwNkQwMDc3MDA2MTAwNzIwMDY1MDAyMDAwNjgKLToxMDExNzAwMDQ2MDA3MjAwNjEwMDZEMDA2NTAwNTcwMDZGMDA3MjAwNEMKLToxMDExODAwMDZCMDA3MzAwMkEwMzQzMDA2RjAwNkUwMDY2MDA2OTAwNjUKLToxMDExOTAwMDY3MDA3NTAwNzIwMDYxMDA3NDAwNjkwMDZGMDA2RTAwRTYKLToxMDExQTAwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMjAzODMKLToxMDExQjAwMDQ5MDA2RTAwNzQwMDY1MDA3MjAwNjYwMDYxMDA2MzAwMDMKLToxMDExQzAwMDY1MDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjMKLTowMjExRDAwMDAwMDAxRAotOjEwMDMxMzAwRTUwQ0ZGRTUwQkY1ODJFNTBBRjU4Mzc1OTI3RTc0QzA2MwotOjA4MDMyMzAwRjhFMjA4RjBBM0RGRkEyMjYyCi06MTAwMzJCMDA5MDdGOTY4NTgzOTJBODgyNzkwMjkwMDAwMEUwQjQwMEJBCi06MTAwMzNCMDAwRDc0MDFGMDkwN0Y5N0UwNTQ3RkYwNDQ4MEYwRTUwQzUyCi06MTAwMzRCMDBGRjkwN0VDMEUwRjUyOEU0QTI0NzMzRjI2OUYyRTRBMjA1Ci06MTAwMzVCMDA0NjMzRjI2OUYyRTRBMjQ1MzNGMjY5RjJFNEEyNDQzMzg0Ci06MTAwMzZCMDBGMjY5RjJFNEEyNDMzM0YyNjlGMkU0QTI0MjMzRjI2OTk2Ci06MTAwMzdCMDBGMkU0QTI0MTMzRjI2OUYyRTRBMjQwMzNGMjY5RjJBMzUwCi06MDMwMzhCMDBERkMyMjJBQwotOjAzMDA0MzAwMDIwNDAwQjQKLToxMDA0MDAwMDAyMDNBOTAwMDIwM0MxMDAwMjAzOEUwMDAyMDQ1ODAwODcKLToxMDA0MTAwMDAyMDNENzAwMDIwM0ZFMDAwMjAzRkYwMDAyMDQ4NDAwNkYKLToxMDA0MjAwMDAyMDQ4NTAwMDIwNDg2MDAwMjA0ODcwMDAyMDQ4ODAwOUEKLToxMDA0MzAwMDAyMDQ4OTAwMDIwNDhBMDAwMjA0OEIwMDAyMDQ4QzAwN0EKLToxMDA0NDAwMDAyMDQ4RDAwMDIwNDhFMDAwMjA0OEYwMDAyMDQ5MDAwNUEKLTowODA0NTAwMDAyMDQ5MTAwMDIwNDkyMDA3NQotOjAzMDAwMDAwMDIwMjg3NzIKLTowQzAyODcwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDJDRUQ0Ci06MTAwM0VEMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDY2Ci06MDEwM0ZEMDAyMkRECi06MTAwMjkzMDAwMjAxMDBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjgwCi06MTAwMkEzMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzZDCi06MTAwMkIzMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjNCCi06MTAwMkMzMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDZFRTQ3RTU5Ci06MTAwMkQzMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzMwCi06MTAwMkUzMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0Y3Ci06MTAwMkYzMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTIyCi06MTAwMzAzMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQ5Ci06MDEwNDgzMDAwMDc4Ci06MDAwMDAwMDFGRgotKi8KLS8qCi1WRVJTSU9OPTEuMC4yLjAwMgotREFURT0xMC4wMS4yMDAyCi1FTUkyNl82MgotKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvaXNpZ2h0X2Zpcm13YXJlLmMgYi9kcml2ZXJzL3VzYi9taXNjL2lzaWdodF9maXJtd2FyZS5jCmluZGV4IDM5MGUwNDguLmQ5NGFhNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21pc2MvaXNpZ2h0X2Zpcm13YXJlLmMKKysrIGIvZHJpdmVycy91c2IvbWlzYy9pc2lnaHRfZmlybXdhcmUuYwpAQCAtMzksOSArMzksMTIgQEAKIAlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKIAlpbnQgbGxlbiwgbGVuLCByZXEsIHJldCA9IDA7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZTsKLQl1bnNpZ25lZCBjaGFyICpidWY7CisJdW5zaWduZWQgY2hhciAqYnVmID0ga21hbGxvYyg1MCwgR0ZQX0tFUk5FTCk7CiAJdW5zaWduZWQgY2hhciBkYXRhWzRdOwotCWNoYXIgKnB0cjsKKwljb25zdCB1OCAqcHRyOworCisJaWYgKCFidWYpCisJCXJldHVybiAtRU5PTUVNOwogCiAJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZpcm13YXJlLCAiaXNpZ2h0LmZ3IiwgJmRldi0+ZGV2KSAhPSAwKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIGxvYWQgaXNpZ2h0IGZpcm13YXJlXG4iKTsKQEAgLTU5LDcgKzYyLDcgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0Jd2hpbGUgKDEpIHsKKwl3aGlsZSAocHRyKzQgPD0gZmlybXdhcmUtPmRhdGErZmlybXdhcmUtPnNpemUpIHsKIAkJbWVtY3B5KGRhdGEsIHB0ciwgNCk7CiAJCWxlbiA9IChkYXRhWzBdIDw8IDggfCBkYXRhWzFdKTsKIAkJcmVxID0gKGRhdGFbMl0gPDwgOCB8IGRhdGFbM10pOwpAQCAtNzEsMTAgKzc0LDE0IEBACiAJCQljb250aW51ZTsKIAogCQlmb3IgKDsgbGVuID4gMDsgcmVxICs9IDUwKSB7Ci0JCQlsbGVuID0gbGVuID4gNTAgPyA1MCA6IGxlbjsKKwkJCWxsZW4gPSBtaW4obGVuLCA1MCk7CiAJCQlsZW4gLT0gbGxlbjsKLQotCQkJYnVmID0ga21hbGxvYyhsbGVuLCBHRlBfS0VSTkVMKTsKKwkJCWlmIChwdHIrbGxlbiA+IGZpcm13YXJlLT5kYXRhK2Zpcm13YXJlLT5zaXplKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSCisJCQkJICAgICAgICJNYWxmb3JtZWQgaXNpZ2h0IGZpcm13YXJlIik7CisJCQkJcmV0ID0gLUVOT0RFVjsKKwkJCQlnb3RvIG91dDsKKwkJCX0KIAkJCW1lbWNweShidWYsIHB0ciwgbGxlbik7CiAKIAkJCXB0ciArPSBsbGVuOwpAQCAtODksMTYgKzk2LDE4IEBACiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCWtmcmVlKGJ1Zik7CiAJCX0KIAl9CisKIAlpZiAodXNiX2NvbnRyb2xfbXNnCiAJICAgIChkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLCAweGEwLCAweDQwLCAweGU2MDAsIDAsICJcMCIsIDEsCiAJICAgICAzMDApICE9IDEpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJpc2lnaHQgZmlybXdhcmUgbG9hZGluZyBjb21wbGV0aW9uIGZhaWxlZFxuIik7CiAJCXJldCA9IC1FTk9ERVY7CiAJfQorCiBvdXQ6CisJa2ZyZWUoYnVmKTsKIAlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9zaXN1c2J2Z2Evc2lzdXNiLmMgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwppbmRleCBjYjdmYTBlLi4zMzE4MmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwpAQCAtMzI2NCw4ICszMjY0LDYgQEAKIAogCS8qIGRlY3JlbWVudCBvdXIgdXNhZ2UgY291bnQgKi8KIAlrcmVmX3B1dCgmc2lzdXNiLT5rcmVmLCBzaXN1c2JfZGVsZXRlKTsKLQotCWRldl9pbmZvKCZzaXN1c2ItPnNpc3VzYl9kZXYtPmRldiwgIkRpc2Nvbm5lY3RlZFxuIik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBzaXN1c2JfdGFibGUgW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jIGIvZHJpdmVycy91c2IvbW9uL21vbl9iaW4uYwppbmRleCA0OTE0NTUzLi4yOTNhNDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jCisrKyBiL2RyaXZlcnMvdXNiL21vbi9tb25fYmluLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTI3LDE0ICs1MjgsMTcgQEAKIAlzaXplX3Qgc2l6ZTsKIAlpbnQgcmM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJm1vbl9sb2NrKTsKIAlpZiAoKG1idXMgPSBtb25fYnVzX2xvb2t1cChpbWlub3IoaW5vZGUpKSkgPT0gTlVMTCkgewogCQltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJaWYgKG1idXMgIT0gJm1vbl9idXMwICYmIG1idXMtPnVfYnVzID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSIFRBRyAiOiBjb25zaXN0ZW5jeSBlcnJvciBvbiBvcGVuXG4iKTsKIAkJbXV0ZXhfdW5sb2NrKCZtb25fbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCkBAIC01NjgsNiArNTcyLDcgQEAKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHJwOwogCW11dGV4X3VubG9jaygmbW9uX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX2FsbG9jYnVmZjoKQEAgLTU3Niw2ICs1ODEsNyBAQAogCWtmcmVlKHJwKTsKIGVycl9hbGxvYzoKIAltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCmluZGV4IDliYTY0Y2MuLjlhNzY4MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCkBAIC0zMDQsMTkgKzMwNCwxOSBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX01QUgogCWJvb2wgIlVTQiBLZXlzcGFuIE1QUiBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIEtleXNwYW4gTVBSIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOAogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOCBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFggY29udmVydGVyLgogCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFgsIHRoZXJlIGFyZSBhbHNvIDI4WEEgYW5kIDI4WEIKQEAgLTMyNCw3ICszMjQsNyBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEEKIAlib29sICJVU0IgS2V5c3BhbiBVU0EtMjhYQSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFhBIGNvbnZlcnRlci4KIAkgIEJlIHN1cmUgeW91IGhhdmUgYSBVU0EtMjhYQSwgdGhlcmUgYXJlIGFsc28gMjhYIGFuZCAyOFhCCkBAIC0zMzIsNyArMzMyLDcgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhCCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WEIgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMjhYQiBjb252ZXJ0ZXIuCiAJICBCZSBzdXJlIHlvdSBoYXZlIGEgVVNBLTI4WEIsIHRoZXJlIGFyZSBhbHNvIDI4WCBhbmQgMjhYQQpAQCAtMzQwLDQzICszNDAsNDMgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOSBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOFggY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE5UVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlRVyBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVFJIEZpcm13YXJlIgotCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4gJiYgRklSTVdBUkVfSU5fS0VSTkVMCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTE5UUkgY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtNDlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVdMQwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVdMQyBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS00OVdMQyBjb252ZXJ0ZXIuCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKaW5kZXggNTIzNGU3YS4uMGZmNGEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTYzNyw2ICs2MzcsNyBAQAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9PT0NETElOS19QSUQpLAogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfanRhZ19xdWlyayB9LAogCXsgVVNCX0RFVklDRShSQVRPQ19WRU5ET1JfSUQsIFJBVE9DX1BST0RVQ1RfSURfVVNCNjBGKSB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9SRVVfVElOWV9QSUQpIH0sCiAJeyB9LAkJCQkJLyogT3B0aW9uYWwgcGFyYW1ldGVyIGVudHJ5ICovCiAJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKaW5kZXggMDZlMGVjYS4uODMwMmVjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKQEAgLTgyOCw2ICs4MjgsOSBAQAogLyogUHJvcG94IGRldmljZXMgKi8KICNkZWZpbmUgRlRESV9QUk9QT1hfSlRBR0NBQkxFSUlfUElECTB4RDczOAogCisvKiBSaWcgRXhwZXJ0IFVrcmFpbmUgZGV2aWNlcyAqLworI2RlZmluZSBGVERJX1JFVV9USU5ZX1BJRAkJMHhFRDIyCS8qIFJpZ0V4cGVydCBUaW55ICovCisKIC8qIENvbW1hbmRzICovCiAjZGVmaW5lIEZURElfU0lPX1JFU0VUIAkJMCAvKiBSZXNldCB0aGUgcG9ydCAqLwogI2RlZmluZSBGVERJX1NJT19NT0RFTV9DVFJMIAkxIC8qIFNldCB0aGUgbW9kZW0gY29udHJvbCByZWdpc3RlciAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwppbmRleCAwNmI1MmY0Li4yZmQ0NDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwpAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgpAQCAtNTYsMjYgKzU4LDYgQEAKICNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4gYW5kIERhdmlkIElhY292ZWxsaSIKICNkZWZpbmUgRFJJVkVSX0RFU0MgIkVkZ2Vwb3J0IFVTQiBTZXJpYWwgRHJpdmVyIgogCi0vKiBGaXJzdCwgdGhlIGxhdGVzdCBib290IGNvZGUgLSBmb3IgZmlyc3QgZ2VuZXJhdGlvbiBlZGdlcG9ydHMgKi8KLSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlCb290Q29kZUltYWdlX0dFTjEKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEKLSNpbmNsdWRlICJpb19md19ib290LmgiCQkvKiB0aGUgYm9vdGxvYWRlciBmaXJtd2FyZSB0byBkb3dubG9hZCB0byBhIGRldmljZSwgaWYgaXQgbmVlZHMgaXQgKi8KLQotLyogZm9yIHNlY29uZCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCUJvb3RDb2RlSW1hZ2VfR0VOMgotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMgotI2luY2x1ZGUgImlvX2Z3X2Jvb3QyLmgiCS8qIHRoZSBib290bG9hZGVyIGZpcm13YXJlIHRvIGRvd25sb2FkIHRvIGEgZGV2aWNlLCBpZiBpdCBuZWVkcyBpdCAqLwotCi0vKiBUaGVuIGZpbmFsbHkgdGhlIG1haW4gcnVuLXRpbWUgb3BlcmF0aW9uYWwgY29kZSAtIGZvciBmaXJzdCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjEKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xCi0jaW5jbHVkZSAiaW9fZndfZG93bi5oIgkJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQotLyogZm9yIHNlY29uZCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjIKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yCi0jaW5jbHVkZSAiaW9fZndfZG93bjIuaCIJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQogI2RlZmluZSBNQVhfTkFNRV9MRU4JCTY0CiAKICNkZWZpbmUgQ0hBU0VfVElNRU9VVAkJKDUqSFopCQkvKiA1IHNlY29uZHMgKi8KQEAgLTI1Niw5ICsyMzgsOSBAQAogc3RhdGljIGludCAgd3JpdGVfY21kX3VzYgkJKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHdyaXRlTGVuZ3RoKTsKIHN0YXRpYyB2b2lkIHNlbmRfbW9yZV9wb3J0X2RhdGEJCShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwgc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCk7CiAKLXN0YXRpYyBpbnQgIHNyYW1fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKTsKK3N0YXRpYyBpbnQgIHNyYW1fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBjb25zdCBfX3U4ICpkYXRhKTsKIHN0YXRpYyBpbnQgIHJvbV9yZWFkCQkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSk7Ci1zdGF0aWMgaW50ICByb21fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKTsKK3N0YXRpYyBpbnQgIHJvbV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIGNvbnN0IF9fdTggKmRhdGEpOwogc3RhdGljIHZvaWQgZ2V0X21hbnVmYWN0dXJpbmdfZGVzYwkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOwogc3RhdGljIHZvaWQgZ2V0X2Jvb3RfZGVzYwkJKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKTsKIHN0YXRpYyB2b2lkIGxvYWRfYXBwbGljYXRpb25fZmlybXdhcmUJKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKTsKQEAgLTI4MywzNyArMjY1LDQxIEBACiB7CiAJX191MzIgQm9vdEN1clZlcjsKIAlfX3UzMiBCb290TmV3VmVyOwotCV9fdTggQm9vdE1ham9yVmVyc2lvbjsgICAgICAgICAgICAgICAgICAKLQlfX3U4IEJvb3RNaW5vclZlcnNpb247ICAgICAgICAgICAgICAgICAgCi0JX19sZTE2IEJvb3RCdWlsZE51bWJlcjsKLQlfX3U4ICpCb290SW1hZ2U7ICAgICAgCi0JX191MzIgQm9vdFNpemU7Ci0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICpyZWNvcmQ7Ci0JdW5zaWduZWQgY2hhciAqZmlybXdhcmU7CisJX191OCBCb290TWFqb3JWZXJzaW9uOworCV9fdTggQm9vdE1pbm9yVmVyc2lvbjsKKwlfX3UxNiBCb290QnVpbGROdW1iZXI7CisJX191MzIgQm9vdGFkZHI7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyICpmd19uYW1lOwogCWludCByZXNwb25zZTsKIAotCiAJc3dpdGNoIChlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLmlEb3dubG9hZEZpbGUpIHsKIAkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfSTkzMDoKLQkJCUJvb3RNYWpvclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLk1ham9yVmVyc2lvbjsKLQkJCUJvb3RNaW5vclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLk1pbm9yVmVyc2lvbjsKLQkJCUJvb3RCdWlsZE51bWJlcgkJPSBjcHVfdG9fbGUxNihCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLkJ1aWxkTnVtYmVyKTsKLQkJCUJvb3RJbWFnZQkJPSAmQm9vdENvZGVJbWFnZV9HRU4xWzBdOwotCQkJQm9vdFNpemUJCT0gc2l6ZW9mKCBCb290Q29kZUltYWdlX0dFTjEgKTsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvYm9vdC5mdyI7CiAJCQlicmVhazsKIAogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV84MDI1MToKLQkJCUJvb3RNYWpvclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLk1ham9yVmVyc2lvbjsKLQkJCUJvb3RNaW5vclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLk1pbm9yVmVyc2lvbjsKLQkJCUJvb3RCdWlsZE51bWJlcgkJPSBjcHVfdG9fbGUxNihCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLkJ1aWxkTnVtYmVyKTsKLQkJCUJvb3RJbWFnZQkJPSAmQm9vdENvZGVJbWFnZV9HRU4yWzBdOwotCQkJQm9vdFNpemUJCT0gc2l6ZW9mKCBCb290Q29kZUltYWdlX0dFTjIgKTsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvYm9vdDIuZnciOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKIAkJCXJldHVybjsKIAl9CiAKKwlyZXNwb25zZSA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsCisJCQkJCSAmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYpOworCWlmIChyZXNwb25zZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIGltYWdlIFwiJXNcIiBlcnIgJWRcbiIsCisJCSAgICAgICBmd19uYW1lLCByZXNwb25zZSk7CisJCXJldHVybjsKKwl9CisKKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CisJQm9vdE1ham9yVmVyc2lvbiA9IHJlYy0+ZGF0YVswXTsKKwlCb290TWlub3JWZXJzaW9uID0gcmVjLT5kYXRhWzFdOworCUJvb3RCdWlsZE51bWJlciA9IChyZWMtPmRhdGFbMl0gPDwgOCkgfCByZWMtPmRhdGFbM107CisKIAkvLyBDaGVjayBCb290IEltYWdlIFZlcnNpb24KIAlCb290Q3VyVmVyID0gKGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWFqb3JWZXJzaW9uIDw8IDI0KSArCiAJCSAgICAgKGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWlub3JWZXJzaW9uIDw8IDE2KSArCkBAIC0zMjEsNyArMzA3LDcgQEAKIAogCUJvb3ROZXdWZXIgPSAoQm9vdE1ham9yVmVyc2lvbiA8PCAyNCkgKwogCQkgICAgIChCb290TWlub3JWZXJzaW9uIDw8IDE2KSArCi0JCSAgICAgIGxlMTZfdG9fY3B1KEJvb3RCdWlsZE51bWJlcik7CisJCSAgICAgIEJvb3RCdWlsZE51bWJlcjsKIAogCWRiZygiQ3VycmVudCBCb290IEltYWdlIHZlcnNpb24gJWQuJWQuJWQiLAogCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1ham9yVmVyc2lvbiwKQEAgLTMzNCwzMCArMzIwLDMwIEBACiAJCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1ham9yVmVyc2lvbiwKIAkJICAgIGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWlub3JWZXJzaW9uLAogCQkgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5CdWlsZE51bWJlciksCi0JCSAgICBCb290TWFqb3JWZXJzaW9uLAotCQkgICAgQm9vdE1pbm9yVmVyc2lvbiwKLQkJICAgIGxlMTZfdG9fY3B1KEJvb3RCdWlsZE51bWJlcikpOwotCisJCSAgICBCb290TWFqb3JWZXJzaW9uLCBCb290TWlub3JWZXJzaW9uLCBCb290QnVpbGROdW1iZXIpOwogCiAJCWRiZygiRG93bmxvYWRpbmcgbmV3IEJvb3QgSW1hZ2UiKTsKIAotCQlmaXJtd2FyZSA9IEJvb3RJbWFnZTsKLQotCQlmb3IgKDs7KSB7Ci0JCQlyZWNvcmQgPSAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICopZmlybXdhcmU7Ci0JCQlyZXNwb25zZSA9IHJvbV93cml0ZSAoZWRnZV9zZXJpYWwtPnNlcmlhbCwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pLCAmcmVjb3JkLT5EYXRhWzBdKTsKKwkJZm9yIChyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7IHJlYzsKKwkJICAgICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJCUJvb3RhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKKwkJCXJlc3BvbnNlID0gcm9tX3dyaXRlKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsCisJCQkJCSAgICAgQm9vdGFkZHIgPj4gMTYsCisJCQkJCSAgICAgQm9vdGFkZHIgJiAweEZGRkYsCisJCQkJCSAgICAgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkgICAgICZyZWMtPmRhdGFbMF0pOwogCQkJaWYgKHJlc3BvbnNlIDwgMCkgewotCQkJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCAicm9tX3dyaXRlIGZhaWxlZCAoJXgsICV4LCAlZClcbiIsIGxlMTZfdG9fY3B1KHJlY29yZC0+RXh0QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlmaXJtd2FyZSArPSBzaXplb2YgKHN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCkgKyBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbik7Ci0JCQlpZiAoZmlybXdhcmUgPj0gJkJvb3RJbWFnZVtCb290U2l6ZV0pIHsKKwkJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwKKwkJCQkJInJvbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLAorCQkJCQlCb290YWRkciA+PiAxNiwgQm9vdGFkZHIgJiAweEZGRkYsCisJCQkJCWJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KIAl9IGVsc2UgewogCQlkYmcoIkJvb3QgSW1hZ2UgLS0gYWxyZWFkeSB1cCB0byBkYXRlIik7CiAJfQorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogfQogCiAKQEAgLTQ0Nyw5ICs0MzMsNiBAQAogCWRiZygiICBCb290TWFqb3JWZXJzaW9uICAgICAgJWQuJWQuJWQiLCBwcm9kdWN0X2luZm8tPkJvb3RNYWpvclZlcnNpb24sCiAJICAgIHByb2R1Y3RfaW5mby0+Qm9vdE1pbm9yVmVyc2lvbiwKIAkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5Cb290QnVpbGROdW1iZXIpKTsKLQlkYmcoIiAgRmlybXdhcmVNYWpvclZlcnNpb24gICVkLiVkLiVkIiwgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1ham9yVmVyc2lvbiwKLQkgICAgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1pbm9yVmVyc2lvbiwKLQkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5GaXJtd2FyZUJ1aWxkTnVtYmVyKSk7CiAJZGJnKCIgIE1hbnVmYWN0dXJlRGVzY0RhdGUgICAlZC8lZC8lZCIsIHByb2R1Y3RfaW5mby0+TWFudWZhY3R1cmVEZXNjRGF0ZVswXSwKIAkgICAgcHJvZHVjdF9pbmZvLT5NYW51ZmFjdHVyZURlc2NEYXRlWzFdLAogCSAgICBwcm9kdWN0X2luZm8tPk1hbnVmYWN0dXJlRGVzY0RhdGVbMl0rMTkwMCk7CkBAIC00ODAsMTQgKzQ2Myw4IEBACiAKIAkvLyBjaGVjayBpZiB0aGlzIGlzIDJuZCBnZW5lcmF0aW9uIGhhcmR3YXJlCiAJaWYgKGxlMTZfdG9fY3B1KGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpICYgSU9OX0RFVklDRV9JRF84MDI1MV9ORVRDSElQKSB7Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNYWpvclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NYWpvclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNaW5vclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NaW5vclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVCdWlsZE51bWJlcgk9IGNwdV90b19sZTE2KE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLkJ1aWxkTnVtYmVyKTsKIAkJcHJvZHVjdF9pbmZvLT5pRG93bmxvYWRGaWxlCQk9IEVER0VfRE9XTkxPQURfRklMRV84MDI1MTsKIAl9IGVsc2UgewotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWFqb3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uOwotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWlub3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWlub3JWZXJzaW9uOwotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlQnVpbGROdW1iZXIJPSBjcHVfdG9fbGUxNihPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5CdWlsZE51bWJlcik7CiAJCXByb2R1Y3RfaW5mby0+aURvd25sb2FkRmlsZQkJPSBFREdFX0RPV05MT0FEX0ZJTEVfSTkzMDsKIAl9CiAKQEAgLTIxMzAsNyArMjEwNyw3IEBACiAgKglJZiBzdWNjZXNzZnVsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCBvdGhlcndpc2UgaXQgcmV0dXJucwogICoJYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIgb2YgdGhlIHByb2JsZW0uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgc3JhbV93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKQorc3RhdGljIGludCBzcmFtX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgY29uc3QgX191OCAqZGF0YSkKIHsKIAlpbnQgcmVzdWx0OwogCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOwpAQCAtMjE3NSw3ICsyMTUyLDcgQEAKICAqCUlmIHN1Y2Nlc3NmdWwgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG90aGVyd2lzZSBpdCByZXR1cm5zCiAgKglhIG5lZ2F0aXZlIGVycm9yIG51bWJlciBvZiB0aGUgcHJvYmxlbS4KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCByb21fd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSkKK3N0YXRpYyBpbnQgcm9tX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgY29uc3QgX191OCAqZGF0YSkKIHsKIAlpbnQgcmVzdWx0OwogCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOwpAQCAtMjc2MSwzMiArMjczOCwyMyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgdm9pZCBsb2FkX2FwcGxpY2F0aW9uX2Zpcm13YXJlIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCkKIHsKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgKnJlY29yZDsKLQl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZTsKLQl1bnNpZ25lZCBjaGFyICpGaXJtd2FyZUltYWdlOwotCWludCBJbWFnZVNpemU7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyICpmd19uYW1lOworCWNvbnN0IGNoYXIgKmZ3X2luZm87CiAJaW50IHJlc3BvbnNlOwotCisJX191MzIgT3BlcmFkZHI7CisJX191MTYgYnVpbGQ7CiAKIAlzd2l0Y2ggKGVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uaURvd25sb2FkRmlsZSkgewogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV9JOTMwOgotCQkJZGJnKCJkb3dubG9hZGluZyBmaXJtd2FyZSB2ZXJzaW9uICg5MzApICVkLiVkLiVkIiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5NaW5vclZlcnNpb24sIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLkJ1aWxkTnVtYmVyKTsKLQkJCWZpcm13YXJlID0gJk9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjFbMF07Ci0JCQlGaXJtd2FyZUltYWdlID0gJk9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjFbMF07Ci0JCQlJbWFnZVNpemUgPSBzaXplb2YoT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMSk7CisJCQlmd19pbmZvID0gImRvd25sb2FkaW5nIGZpcm13YXJlIHZlcnNpb24gKDkzMCkiOworCQkJZndfbmFtZQk9ICJlZGdlcG9ydC9kb3duLmZ3IjsKIAkJCWJyZWFrOwogCiAJCWNhc2UgRURHRV9ET1dOTE9BRF9GSUxFXzgwMjUxOgotCQkJZGJnKCJkb3dubG9hZGluZyBmaXJtd2FyZSB2ZXJzaW9uICg4MDI1MSkgJWQuJWQuJWQiLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NYWpvclZlcnNpb24sIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1pbm9yVmVyc2lvbiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuQnVpbGROdW1iZXIpOwotCQkJZmlybXdhcmUgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMlswXTsKLQkJCUZpcm13YXJlSW1hZ2UgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMlswXTsKLQkJCUltYWdlU2l6ZSA9IHNpemVvZihPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yKTsKKwkJCWZ3X2luZm8gPSAiZG93bmxvYWRpbmcgZmlybXdhcmUgdmVyc2lvbiAoODAyNTEpIjsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvZG93bjIuZnciOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfTk9ORToKQEAgLTI3OTcsMTYgKzI3NjUsMzYgQEAKIAkJCXJldHVybjsKIAl9CiAKKwlyZXNwb25zZSA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsCisJCQkJICAgICZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldik7CisJaWYgKHJlc3BvbnNlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJICAgICAgIGZ3X25hbWUsIHJlc3BvbnNlKTsKKwkJcmV0dXJuOworCX0KIAotCWZvciAoOzspIHsKLQkJcmVjb3JkID0gKHN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCAqKWZpcm13YXJlOwotCQlyZXNwb25zZSA9IHNyYW1fd3JpdGUgKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsIGxlMTZfdG9fY3B1KHJlY29yZC0+RXh0QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKSwgJnJlY29yZC0+RGF0YVswXSk7CisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworCWJ1aWxkID0gKHJlYy0+ZGF0YVsyXSA8PCA4KSB8IHJlYy0+ZGF0YVszXTsKKworCWRiZygiJXMgJWQuJWQuJWQiLCBmd19pbmZvLCByZWMtPmRhdGFbMF0sIHJlYy0+ZGF0YVsxXSwgYnVpbGQpOworCisJZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1ham9yVmVyc2lvbiA9IGZ3LT5kYXRhWzBdOworCWVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uRmlybXdhcmVNaW5vclZlcnNpb24gPSBmdy0+ZGF0YVsxXTsKKwllZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlQnVpbGROdW1iZXIgPSBjcHVfdG9fbGUxNihidWlsZCk7CisKKwlmb3IgKHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsgcmVjOworCSAgICAgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCU9wZXJhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKKwkJcmVzcG9uc2UgPSBzcmFtX3dyaXRlKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsCisJCQkJICAgICBPcGVyYWRkciA+PiAxNiwKKwkJCQkgICAgIE9wZXJhZGRyICYgMHhGRkZGLAorCQkJCSAgICAgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCSAgICAgJnJlYy0+ZGF0YVswXSk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKLQkJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCAic3JhbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLCBsZTE2X3RvX2NwdShyZWNvcmQtPkV4dEFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbikpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZmlybXdhcmUgKz0gc2l6ZW9mIChzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQpICsgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pOwotCQlpZiAoZmlybXdhcmUgPj0gJkZpcm13YXJlSW1hZ2VbSW1hZ2VTaXplXSkgeworCQkJZGV2X2VycigmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsCisJCQkJInNyYW1fd3JpdGUgZmFpbGVkICgleCwgJXgsICVkKVxuIiwKKwkJCQlPcGVyYWRkciA+PiAxNiwgT3BlcmFkZHIgJiAweEZGRkYsCisJCQkJYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMjgxNyw2ICsyODA1LDcgQEAKIAkJCQkgICAgVVNCX1JFUVVFU1RfSU9OX0VYRUNfRExfQ09ERSwgCiAJCQkJICAgIDB4NDAsIDB4NDAwMCwgMHgwMDAxLCBOVUxMLCAwLCAzMDAwKTsKIAorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCXJldHVybjsKIH0KIApAQCAtMjkwMyw2ICsyODkyLDEwIEBACiAvLwkJZGJnKCJzZXRfY29uZmlndXJhdGlvbiAxIik7CiAvLwkJdXNiX3NldF9jb25maWd1cmF0aW9uIChkZXYsIDEpOwogCX0KKwlkYmcoIiAgRmlybXdhcmVNYWpvclZlcnNpb24gICVkLiVkLiVkIiwKKwkgICAgZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1ham9yVmVyc2lvbiwKKwkgICAgZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1pbm9yVmVyc2lvbiwKKwkgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZUJ1aWxkTnVtYmVyKSk7CiAKIAkvKiB3ZSBzZXQgdXAgdGhlIHBvaW50ZXJzIHRvIHRoZSBlbmRwb2ludHMgaW4gdGhlIGVkZ2Vfb3BlbiBmdW5jdGlvbiwgCiAJICogYXMgdGhlIHN0cnVjdHVyZXMgYXJlbid0IGNyZWF0ZWQgeWV0LiAqLwpAQCAtMzExNSw2ICszMTA4LDEwIEBACiBNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CiBNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoImVkZ2Vwb3J0L2Jvb3QuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvYm9vdDIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvZG93bi5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlZGdlcG9ydC9kb3duMi5mdyIpOwogCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5OWZhZmEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1NiArMCwwIEBACi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0vLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKLS8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKLS8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0vLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLS8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCi0KLS8vSW1hZ2Ugc3RydWN0dXJlIGRlZmluaXRpb24KLSNpZiAhZGVmaW5lZChERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JEKQotI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKLQkJX19sZTE2IEV4dEFkZHI7Ci0JCV9fbGUxNiBBZGRyOwotCQlfX2xlMTYgTGVuOwotCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOwotCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKLQkJdW5zaWduZWQgY2hhcgkgTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247Ci0JCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOwotCX07Ci0KLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKLSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQkJRmlybXdhcmVJbWFnZQotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KLSNlbmRpZgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7Ci0KLS8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2Ci0weGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDAwLCAweDAzLCAKLQotLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MGIsIAotCi0vLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhiOCwgCi0KLS8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDFiLCAKLQotLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MjMsIAotCi0vLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyYiwgCi0KLS8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDMzLCAKLQotLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4M2IsIAotCi0vLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhiZCwgCi0KLS8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhkMCwgCi0KLS8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHgyMSwgCi0KLS8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg3YiwgCi0KLS8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggMzU4Ci0weGZmLDB4MDAsMHg4MCwweDAwLDB4NjYsMHgwMSwKLSAgICAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDdlLCAweGY4LCAweDAwLCAweDIzLCAweDdlLCAweDAwLCAweDAxLCAweDdlLCAweDEwLCAKLSAgICAweDAwLCAweDEyLCAweDA3LCAweDVmLCAweDY5LCAweDIwLCAweDAwLCAweDBhLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDc1LCAweDkwLCAKLSAgICAweDBkLCAweDgwLCAweDAzLCAweDc1LCAweDkwLCAweDFkLCAweGQyLCAweGI1LCAweDdlLCAweDAwLCAweDAwLCAweGE1LCAweGQ4LCAweGZkLCAweDc1LCAweGE4LCAKLSAgICAweDAwLCAweDc1LCAweGIxLCAweDAwLCAweGE5LCAweGQ1LCAweDg3LCAweGNhLCAweDI5LCAweDEyLCAweDA5LCAweGNjLCAweDEyLCAweDA5LCAweGEwLCAweGY1LCAKLSAgICAweDA5LCAweDdhLCAweGExLCAweDIwLCAweDEyLCAweDAxLCAweGU2LCAweGRhLCAweDI5LCAweGE5LCAweGQwLCAweGM3LCAweDdlLCAweDAwLCAweDA1LCAweDdhLCAKLSAgICAweDAxLCAweGYxLCAweDc1LCAweGUxLCAweDEwLCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGQ3LCAweGU0LCAweGE1LCAweGQ4LCAweGYxLCAweDc1LCAweGYxLCAKLSAgICAweDAwLCAweDc1LCAweGUxLCAweDNmLCAweDc1LCAweGEyLCAweDAzLCAweDc1LCAweGEzLCAweDAwLCAweDc1LCAweGMwLCAweDAwLCAweDc1LCAweGMxLCAweDAwLCAKLSAgICAweGE5LCAweGQxLCAweGIxLCAweGE5LCAweGQwLCAweGIxLCAweGE5LCAweGQ1LCAweGQzLCAweGQyLCAweGFmLCAweGU0LCAweDdlLCAweDA0LCAweDI4LCAweDAwLCAKLSAgICAweDhkLCAweGVmLCAweDFiLCAweDA0LCAweDc4LCAweGZhLCAweDA0LCAweGE5LCAweDM0LCAweGQzLCAweDAzLCAweDMwLCAweGUwLCAweGVlLCAweGJlLCAweDI0LCAKLSAgICAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDYzLCAweDkwLCAweDMwLCAweDgwLCAweGUzLCAweGIyLCAweDk1LCAweDgwLCAweGRmLCAweGJlLCAweGIwLCAweDAyLCAKLSAgICAweDIyLCAweGMwLCAweGQwLCAweGE5LCAweDIwLCAweGRmLCAweDBmLCAweGE5LCAweDMxLCAweGRmLCAweDAzLCAweDAyLCAweDAxLCAweGI1LCAweDc1LCAweDA4LCAKLSAgICAweDAxLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweGZlLCAweDc1LCAweDA4LCAweGZlLCAweDEyLCAweDA4LCAweDMzLCAweDc1LCAweGE4LCAweDAwLCAweDdlLCAKLSAgICAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDRiLCAweDMwLCAweDAxLCAweDQ2LCAweGMyLCAweDkyLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAKLSAgICAweDExLCAweDA5LCAweDc0LCAweDA4LCAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDc0LCAweDBlLCAweDE5LCAweGIyLCAweDAwLCAweDA0LCAweDJlLCAweDI0LCAKLSAgICAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGVkLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDA5LCAweGU0LCAweGQ1LCAweGUwLCAweGZkLCAKLSAgICAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDBhLCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDgwLCAKLSAgICAweGViLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGU0LCAweDQzLCAweDkwLCAweDMwLCAweGQyLCAweGFhLCAweDgwLCAweDA1LCAweGQyLCAKLSAgICAweGFhLCAweDQzLCAweDkwLCAweDM0LCAweGQyLCAweGFmLCAweGE5LCAweGQxLCAweDg3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGE5LCAweDExLCAKLSAgICAweGRmLCAweDAzLCAweGE5LCAweGQyLCAweGRmLCAweDc1LCAweDA4LCAweGZmLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAKLSAgICAweGNhLCAweDA2LCAweDgzLCAweDAwLCAweDMyLCAweGQwLCAweGQwLCAweDMyLCAweGMyLCAweDhiLCAweGMyLCAweGFhLCAweDMyLCAweDc1LCAweDA4LCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGMwLCAweGIxLCAweGE5LCAweGM1LCAweGQzLCAweGE5LCAweGM2LCAweGQzLCAweGE5LCAweGQyLCAweGIxLCAweDMyLCAKLSAgICAweGNhLCAweGI4LCAweDc1LCAweDA4LCAweDAyLCAweDEyLCAweDA4LCAweDMzLCAweGU1LCAweGMwLCAweDU0LCAweDAzLCAweDY4LCAweDA1LCAweDEyLCAweDAxLCAKLSAgICAweGVlLCAweDgwLCAweGY1LCAweGRhLCAweGI4LCAweDMyLCAKLQotLy8gU2VnbWVudCAjMTQsIFN0YXJ0IEFkZHJlc3MgMDBmZjFiY2EsIExlbmd0aCAxCi0weGZmLDB4MDAsMHhjYSwweDFiLDB4MDEsMHgwMCwKLSAgICAweDAwLCAKLQotLy8gU2VnbWVudCAjMTUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAxZTYsIExlbmd0aCAxNjEzCi0weGZmLDB4MDAsMHhlNiwweDAxLDB4NGQsMHgwNiwKLSAgICAweGU0LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDAyLCAweDAyLCAweDYzLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAKLSAgICAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweGMwLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAKLSAgICAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDE5LCAweGI0LCAweDAxLCAweDE2LCAweDMwLCAweGMwLCAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAKLSAgICAweDRkLCAweDgwLCAweDFmLCAweDMwLCAweGMxLCAweDFjLCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDE0LCAweDMwLCAweGMxLCAKLSAgICAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDA5LCAweDMwLCAweGMwLCAweDA2LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAKLSAgICAweDAyLCAweDRkLCAweGQwLCAweGYxLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAKLSAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweGMyLCAweGMwLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAweGI0LCAweDAyLCAweDA3LCAKLSAgICAweDEyLCAweDAyLCAweDZmLCAweDAyLCAweDAyLCAweDYzLCAweDIyLCAweGI0LCAweDAxLCAweGZjLCAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweDAwLCAweDAwLCAKLSAgICAweDdhLCAweDAzLCAweDAxLCAweDJiLCAweDdhLCAweDAzLCAweDAxLCAweDJjLCAweDIyLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweDYwLCAweDYwLCAKLSAgICAweDA1LCAweGI0LCAweDQwLCAweDE1LCAweDgwLCAweDEzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA1LCAweDBjLCAweDc1LCAweDA4LCAweDcxLCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGY1LCAweDhmLCAweDIyLCAweDc1LCAweGY2LCAweDAwLCAweDIyLCAweGJlLCAweDU3LCAKLSAgICAweDAxLCAweDI5LCAweDI4LCAweDA0LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDdhLCAweDBmLCAweDAxLCAweDJlLCAweDdhLCAweDU3LCAweDAxLCAweDMyLCAKLSAgICAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweGVmLCAweDAxLCAweDJlLCAweDdlLCAweGY3LCAweDAxLCAweDMyLCAweDdlLCAweDA3LCAweDAxLCAweDMyLCAweDRkLCAKLSAgICAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweDdlLCAweGViLCAweGIwLCAweGY1LCAweGYzLCAweGEzLCAweGE1LCAweDA4LCAweDFiLCAweGY0LCAKLSAgICAweDY4LCAweDA0LCAweGE1LCAweGI4LCAweDA4LCAweGYwLCAweDdhLCAweGVmLCAweDAxLCAweDJlLCAweDdhLCAweGY3LCAweDAxLCAweDMyLCAweDc1LCAweDA4LCAKLSAgICAweDA2LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweGY2LCAweDIyLCAweGMyLCAweGMxLCAweDc1LCAweDA4LCAweDAzLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweGE5LCAweDM2LCAweGUyLCAweDE2LCAweGU1LCAweGY1LCAweDU0LCAweGMwLCAweDY4LCAweDA3LCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweDI3LCAweGY0LCAKLSAgICAweGZjLCAweDUzLCAweGUxLCAweDNmLCAweDQzLCAweGYyLCAweDg4LCAweDAyLCAweDAzLCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDJjLCAweGI0LCAweDAyLCAKLSAgICAweDBmLCAweGE5LCAweGQ0LCAweGU0LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDAxLCAweDJjLCAweDdhLCAweGIzLCAweDAxLCAweDJiLCAweDIyLCAKLSAgICAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweDIxLCAweGU2LCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDAxLCAweDJkLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKLSAgICAweDAxLCAweDJkLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDAxLCAweDM0LCAweGU1LCAweGUzLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAKLSAgICAweGE1LCAweGRiLCAweGY2LCAweGE5LCAweGQ0LCAweGU0LCAweDc1LCAweDA4LCAweDcwLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDJkLCAKLSAgICAweDdlLCAweGEzLCAweDAxLCAweDJhLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDAzLCAweGVjLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGU1LCAKLSAgICAweGU2LCAweGI0LCAweDA4LCAweDY1LCAweGE5LCAweGM0LCAweGUyLCAweDdlLCAweDAxLCAweGUzLCAweDdlLCAweDExLCAweGUzLCAweDdlLCAweDMxLCAweGUzLCAKLSAgICAweDdlLCAweDIxLCAweGUzLCAweDdlLCAweDUxLCAweGUzLCAweDdlLCAweDQxLCAweGUzLCAweDdlLCAweDcxLCAweGUzLCAweDdlLCAweDYxLCAweGUzLCAweDdhLCAKLSAgICAweDBmLCAweDAxLCAweDIzLCAweDdhLCAweDFmLCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDA0LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDIxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAKLSAgICAweDMxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDQxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDUxLCAweDA4LCAweDEyLCAweDA4LCAKLSAgICAweDMzLCAweDdhLCAweDYxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDcxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGQ0LCAweGU0LCAKLSAgICAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGM2LCAweGUyLCAweDEyLCAweDAzLCAweGMwLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAweDE0LCAweDAxLCAweDAyLCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweDMyLCAweDdhLCAweDAzLCAweDAxLCAweDJkLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDIwLCAweGU3LCAweDBmLCAweDdhLCAKLSAgICAweDIzLCAweDAxLCAweDJjLCAweDdhLCAweDMzLCAweDAxLCAweDJiLCAweGJlLCAweDA3LCAweDAxLCAweDI5LCAweDY4LCAweDA5LCAweDIyLCAweDdhLCAweDMzLCAKLSAgICAweDAxLCAweDJjLCAweDdhLCAweDIzLCAweDAxLCAweDJiLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweGUzLCAweDIzLCAweDIzLCAweDMwLCAweGUwLCAKLSAgICAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAweDAzLCAweDAyLCAweDA3LCAKLSAgICAweDU1LCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDA0LCAweDE4LCAweDc1LCAweDg0LCAKLSAgICAweGZmLCAweDczLCAweDAyLCAweDA1LCAweDZjLCAweDAyLCAweDA0LCAweDYwLCAweDAyLCAweDA2LCAweDA5LCAweDAyLCAweDA2LCAweDI0LCAweDAyLCAweDA1LCAKLSAgICAweDA1LCAweDAyLCAweDA0LCAweGM2LCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAKLSAgICAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAKLSAgICAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQ2LCAweDAyLCAweDA2LCAweGZhLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAKLSAgICAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA2LCAKLSAgICAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDU2LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAKLSAgICAweDI3LCAweDc1LCAweDA4LCAweDcyLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDVmLCAweDQwLCAweDM1LCAweDAyLCAweDAyLCAweDk0LCAweGI0LCAweDA4LCAweDEwLCAweDc1LCAweDA4LCAKLSAgICAweDc0LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweGI0LCAweDAwLCAKLSAgICAweDFjLCAweDc1LCAweDA4LCAweDc1LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDA1LCAweDc1LCAweGYzLCAKLSAgICAweDAyLCAweDgwLCAweDAzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAwLCAweDM1LCAweDc1LCAweDA4LCAweDc2LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKLSAgICAweDI4LCAweDU0LCAweDBmLCAweGY1LCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA5LCAweGU1LCAweGUxLCAweDMwLCAweGU3LCAKLSAgICAweDBkLCAweDc0LCAweDAxLCAweDgwLCAweDBiLCAweGU1LCAweGUxLCAweDMwLCAweGU2LCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAweDAwLCAKLSAgICAweDUzLCAweGYxLCAweDgwLCAweGY1LCAweGYzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGMwLCAKLSAgICAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDU0LCAweDBmLCAweDQyLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAwLCAweDQ1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAxLCAweDI0LCAweDc1LCAweDA4LCAweDc3LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKLSAgICAweDI4LCAweDU0LCAweDBmLCAweDc4LCAweDA1LCAweDUzLCAweGUxLCAweDNmLCAweDgwLCAweDM3LCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAKLSAgICAweDA1LCAweDUzLCAweGUxLCAweDdmLCAweDgwLCAweDJiLCAweDUzLCAweGUxLCAweGJmLCAweDgwLCAweDI2LCAweGI0LCAweDAzLCAweDE3LCAweDc1LCAweDA4LCAKLSAgICAweDc4LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA1LCAweDQzLCAweGUxLCAweDgwLCAweDgwLCAweDExLCAKLSAgICAweDQzLCAweGUxLCAweDQwLCAweDgwLCAweDBjLCAweDQzLCAweGUxLCAweGMwLCAweGQwLCAweGYxLCAweDc1LCAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDIyLCAweGQwLCAweGYxLCAweDAyLCAweDAyLCAweDkwLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA5LCAweDIzLCAweDc1LCAweDA4LCAweDc5LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDExLCAweGNhLCAweGI4LCAweGMwLCAKLSAgICAweGYxLCAweDEyLCAweDAxLCAweDFkLCAweGQwLCAweGYxLCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAKLSAgICAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDA4LCAweDdhLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDA4LCAKLSAgICAweDdiLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAKLSAgICAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAweDc1LCAweDA4LCAweDdjLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAKLSAgICAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAKLSAgICAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDczLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAKLSAgICAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDhiLCAweDQwLCAweDAzLCAweDAyLCAweDAyLCAweDkwLCAKLSAgICAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDBiLCAweGY2LCAweDc1LCAweDA4LCAweDdkLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDdlLCAweGEzLCAweDAxLCAweDI4LCAweDRjLCAweGFiLCAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDdlLCAweGIzLCAKLSAgICAweDAxLCAweDI0LCAweGI0LCAweDBhLCAweGRiLCAweDc1LCAweDA4LCAweDdlLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDcwLCAKLSAgICAweGNmLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDA4LCAweGMzLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweDA0LCAweDAwLCAKLSAgICAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDE4LCAweDAxLCAweDM0LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDAxLCAKLSAgICAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweDAyLCAweDA2LCAweGY0LCAweGI0LCAweDA2LCAweDNhLCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDAxLCAweDI1LCAweDdlLCAweDc4LCAKLSAgICAweDAxLCAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA4LCAweGQ2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAKLSAgICAweDQwLCAweDRmLCAweDgwLCAweDRhLCAweGI0LCAweDAwLCAweDFjLCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDAyLCAweDkwLCAweGU0LCAKLSAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAKLSAgICAweDAwLCAweDAwLCAweDMyLCAweGI0LCAweDA5LCAweDEyLCAweDdlLCAweDU3LCAweDAxLCAweDI1LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweGE5LCAweGQyLCAKLSAgICAweGIxLCAweDgwLCAweDAzLCAweGE5LCAweGMyLCAweGIxLCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDAxLCAKLSAgICAweDI3LCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDAyLCAKLSAgICAweDkwLCAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDA4LCAweGMyLCAweDEyLCAweDA4LCAKLSAgICAweDMzLCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAKLSAgICAweGI0LCAweDA1LCAweDM5LCAweDc1LCAweDA4LCAweGMwLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKLSAgICAweGQ1LCAweDg3LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDI1LCAweDdlLCAweDQ3LCAweDAxLCAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDAxLCAKLSAgICAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAweDAyLCAweDA3LCAweDU1LCAweDc1LCAKLSAgICAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAweDQzLCAweGUxLCAweGMwLCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKLSAgICAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAweGNhLCAweDQwLCAweDE5LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKLSAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDA4LCAweDNmLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAKLSAgICAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAKLSAgICAweGNhLCAweDQwLCAweDJiLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDAxLCAKLSAgICAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweGJkLCAweDc0LCAweDc4LCAweDExLCAweDc1LCAweDA4LCAweGMxLCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA4LCAweGQ2LCAweDQwLCAweDA2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweGQwLCAweDg3LCAKLSAgICAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAKLSAgICAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAKLSAgICAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAKLSAgICAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAKLSAgICAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAKLSAgICAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAKLSAgICAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKLQotLy8gU2VnbWVudCAjMTYsIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjdjMDAsIExlbmd0aCAxOTkKLQotCi0vLyBTZWdtZW50ICMxNywgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2YwMCwgTGVuZ3RoIDE5MgotCi0KLS8vIFNlZ21lbnQgIzE3LCBTdGFydCBBZGRyZXNzIDAwZmY3ZmMwLCBMZW5ndGggNjQKLTB4ZmYsMHgwMCwweGMwLDB4N2YsMHg0MCwweDAwLAotICAgIDB4NDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4Y2EsIDB4MWIsIDB4MDEsIDB4MGMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2MsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZjEsIDB4N2YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDgzMywgTGVuZ3RoIDUwMTUKLTB4ZmYsMHgwMCwweDMzLDB4MDgsMHg5NywweDEzLAotICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MDgsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4ODAsIDB4NTAsIDB4MGIsIDB4MWEsIAotICAgIDB4NjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NzAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4ODAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4OTAsIAotICAgIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YzAsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MWEsIDB4ZDAsIDB4MGIsIDB4MzUsIDB4MWIsIDB4MGEsIDB4NjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4NzAsIDB4MGIsIDB4MTUsIAotICAgIDB4MWIsIDB4MGEsIDB4ODAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4OTAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YTAsIDB4MGIsIDB4MTUsIDB4MWIsIAotICAgIDB4MGEsIDB4YjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YzAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4ZDAsIDB4MGIsIDB4MTUsIDB4OWUsIDB4NDQsIAotICAgIDB4MDAsIDB4MTAsIDB4NTAsIDB4YWEsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGUsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIDB4MGIsIDB4YzAsIAotICAgIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIDB4ZmMsIDB4N2MsIAotICAgIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIDB4NDQsIDB4MDAsIAotICAgIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZmEsIDB4N2YsIAotICAgIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIDB4NDAsIDB4OWQsIAotICAgIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4MDksIDB4MDAsIDB4ZGEsIDB4NzksIAotICAgIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIAotICAgIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIAotICAgIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIAotICAgIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIAotICAgIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmMsIDB4NmQsIDB4MDAsIDB4N2MsIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIAotICAgIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MDEsIDB4NzgsIDB4MTYsIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIAotICAgIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4NjMsIDB4OTAsIDB4MzAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTMsIDB4YzIsIDB4ZDcsIDB4MjIsIAotICAgIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIAotICAgIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIAotICAgIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIAotICAgIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MGIsIDB4MWEsIDB4MDAsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIAotICAgIDB4N2UsIDB4MTgsIDB4MDksIDB4NzYsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIAotICAgIDB4YjgsIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4ZWMsIDB4MDAsIAotICAgIDB4ZmYsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MTYsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmUsIDB4N2EsIDB4ZWMsIDB4MDAsIDB4ZmYsIAotICAgIDB4ZTAsIDB4NjAsIDB4MGMsIDB4MTIsIDB4MDksIDB4YTAsIDB4ZjUsIDB4MDksIDB4N2EsIDB4YTEsIDB4MjAsIDB4MDIsIDB4MGYsIDB4MGEsIDB4MjIsIDB4YzIsIAotICAgIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4ODAsIDB4ZjEsIDB4MGQsIDB4MGEsIAotICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGQsIAotICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIAotICAgIDB4NDUsIDB4NjQsIDB4NjcsIDB4NjUsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MmYsIDB4MzQsIDB4MjAsIDB4MmQsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIAotICAgIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIAotICAgIDB4NzMsIDB4MmMsIDB4MjAsIDB4NTIsIDB4NjUsIDB4NzYsIDB4MjAsIDB4MzEsIDB4MmUsIDB4MzAsIDB4MzAsIDB4M2IsIDB4MjAsIDB4NDMsIDB4NmYsIDB4NzAsIAotICAgIDB4NzksIDB4NzIsIDB4NjksIDB4NjcsIDB4NjgsIDB4NzQsIDB4MjAsIDB4MzEsIDB4MzksIDB4MzksIDB4MzgsIDB4MjAsIDB4NDksIDB4NmUsIDB4NzMsIDB4NjksIAotICAgIDB4NjQsIDB4NjUsIDB4MjAsIDB4NGYsIDB4NzUsIDB4NzQsIDB4MjAsIDB4NGUsIDB4NjUsIDB4NzQsIDB4NzcsIDB4NmYsIDB4NzIsIDB4NmIsIDB4NzMsIDB4MGQsIAotICAgIDB4MGEsIDB4MDAsIDB4NTAsIDB4NjEsIDB4NzMsIDB4NzMsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MDAsIDB4NTAsIAotICAgIDB4NjEsIDB4NzMsIDB4NzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjAsIAotICAgIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTIsIDB4NjEsIDB4NmQsIDB4M2EsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NjEsIDB4NmQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIAotICAgIDB4NjksIDB4NzQsIDB4MjAsIDB4MzAsIDB4MmQsIDB4MzEsIDB4MzQsIDB4MjAsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTcsIDB4NzIsIDB4NmYsIDB4NzQsIDB4NjUsIDB4MjAsIDB4NDEsIAotICAgIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4M2EsIDB4MjAsIDB4MzAsIDB4MzAsIDB4M2EsIDB4MDAsIDB4MjAsIDB4MjAsIDB4NzcsIDB4NjksIAotICAgIDB4NzQsIDB4NjgsIDB4MjAsIDB4NjQsIDB4NjEsIDB4NzQsIDB4NjEsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MmMsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIAotICAgIDB4NzIsIDB4NjUsIDB4NjEsIDB4NjQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NGYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NmYsIDB4NzIsIDB4MjAsIAotICAgIDB4NjIsIDB4NmYsIDB4NzQsIDB4NjgsIDB4MjAsIDB4NmYsIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NmYsIDB4NmMsIDB4NmMsIAotICAgIDB4NmYsIDB4NzcsIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIDB4NjksIAotICAgIDB4NzQsIDB4NzMsIDB4MjAsIDB4NmMsIDB4NjksIDB4NzMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjgsIAotICAgIDB4NmYsIDB4NzIsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MGQsIDB4MGEsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NzMsIDB4NmYsIDB4NmQsIDB4NjUsIDB4NzQsIDB4NjgsIAotICAgIDB4NjksIDB4NmUsIDB4NjcsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIAotICAgIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NTMsIDB4NjMsIDB4NzIsIDB4NjEsIDB4NzQsIDB4NjMsIDB4NjgsIDB4MjAsIDB4NTAsIDB4NjEsIDB4NjQsIDB4MmMsIDB4NDYsIDB4NjksIDB4NDYsIDB4NmYsIAotICAgIDB4MjAsIDB4NDUsIDB4NmUsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4MjYsIDB4MjAsIDB4NTIsIDB4NTMsIDB4NTQsIDB4M2EsIDB4MjAsIDB4MDAsIAotICAgIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4NzMsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAotICAgIDB4MzIsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAotICAgIDB4MzQsIDB4MGQsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAotICAgIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAotICAgIDB4MmQsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NDQsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4NzIsIAotICAgIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjcsIDB4NjksIDB4NzQsIDB4NjEsIDB4NmMsIDB4MjAsIAotICAgIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NmUsIDB4NjEsIDB4NmMsIAotICAgIDB4NmYsIDB4NjcsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIAotICAgIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIAotICAgIDB4NTIsIDB4NDksIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIAotICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIAotICAgIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NTIsIAotICAgIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4NWIsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAotICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIAotICAgIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIAotICAgIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIAotICAgIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIAotICAgIDB4NTIsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAotICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MjAsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAotICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIAotICAgIDB4NjMsIDB4NzMsIDB4MjAsIDB4NmUsIDB4NmYsIDB4NzcsIDB4MjAsIDB4NzcsIDB4NjksIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjUsIAotICAgIDB4NzIsIDB4MjAsIDB4NjEsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NjIsIDB4NzUsIDB4NjcsIDB4MjAsIDB4NmMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4MjAsIDB4NmYsIAotICAgIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NjksIDB4NzIsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIAotICAgIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIDB4MmUsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NGUsIAotICAgIDB4NmYsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIAotICAgIDB4NzMsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MmUsIDB4MGQsIDB4MGEsIDB4MDAsIDB4NDMsIDB4NmYsIAotICAgIDB4NzAsIDB4NzksIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIAotICAgIDB4NGQsIDB4NjEsIDB4NzMsIDB4NzQsIDB4NjUsIDB4NzIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTMsIDB4NmMsIDB4NjEsIDB4NzYsIDB4NjUsIDB4MjcsIAotICAgIDB4NzMsIDB4MjAsIDB4NDUsIDB4NDUsIDB4NzAsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIDB4MmUsIDB4MmUsIDB4MmUsIDB4MDAsIDB4NDQsIDB4NmYsIDB4NmUsIAotICAgIDB4NjUsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MmQsIDB4M2UsIDB4MjAsIDB4NTQsIDB4NzUsIDB4NzIsIDB4NmUsIDB4MjAsIDB4NzUsIDB4NmUsIDB4NjksIDB4NzQsIAotICAgIDB4MjAsIDB4NmYsIDB4NjYsIDB4NjYsIDB4MmMsIDB4MjAsIDB4NjQsIDB4NjksIDB4NzMsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NmUsIDB4NjUsIDB4NjMsIDB4NzQsIAotICAgIDB4MjAsIDB4NjMsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzIsIDB4NzUsIDB4NmUsIDB4MjAsIDB4NzMsIAotICAgIDB4NzQsIDB4NjEsIDB4NmUsIDB4NjQsIDB4NjEsIDB4NmMsIDB4NmYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NjQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIAotICAgIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIDB4NzMsIDB4MmUsIDB4MDAsIDB4YzIsIDB4YWYsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGEsIDB4NzUsIDB4OTAsIDB4MGQsIAotICAgIDB4MjAsIDB4MTcsIDB4MDIsIDB4ZDIsIDB4YjUsIDB4NDMsIDB4OTAsIDB4MzAsIDB4NmMsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDMsIDB4MTIsIDB4MGYsIDB4MzgsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4MDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4MzAsIDB4YjQsIDB4MDIsIAotICAgIDB4ODAsIDB4MjQsIDB4MDIsIDB4MWIsIDB4M2MsIDB4MjAsIDB4MDksIDB4MWQsIDB4YzIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIAotICAgIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZDksIDB4ZTYsIDB4NDMsIAotICAgIDB4OTAsIDB4MzAsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OTQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4N2UsIDB4ZTQsIDB4MTAsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTUsIDB4N2EsIDB4ZTksIDB4NDAsIDB4MGIsIDB4ZTQsIDB4N2UsIDB4NTAsIDB4YWEsIAotICAgIDB4N2EsIDB4ZTksIDB4NTAsIDB4MWIsIDB4ZTQsIDB4YmUsIDB4ZTksIDB4NDAsIDB4NjgsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTMsIDB4N2EsIDB4ZTksIDB4NDAsIDB4N2UsIDB4ZTksIAotICAgIDB4MTAsIDB4ODAsIDB4ZjgsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZDgsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NzAsIDB4MGUsIDB4N2UsIDB4YTQsIDB4ZmYsIDB4ZmYsIDB4N2UsIDB4YjQsIDB4YmYsIDB4ZmYsIDB4N2QsIDB4Y2IsIDB4MGUsIDB4YzQsIDB4N2QsIDB4ZGMsIAotICAgIDB4NWQsIDB4ZGIsIDB4NmMsIDB4YmIsIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIAotICAgIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAotICAgIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4NmMsIDB4YmIsIAotICAgIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4NDEsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIAotICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MzQsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAotICAgIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MjcsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIAotICAgIDB4NzgsIDB4MWEsIDB4MGIsIDB4YjAsIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmUsIDB4NzgsIDB4OTIsIDB4MGUsIDB4YjQsIDB4YTUsIDB4ZGYsIDB4OGIsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NzcsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4MmEsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4NzksIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4NzcsIDB4ZGEsIDB4NmIsIDB4Y2EsIDB4NmIsIDB4MGIsIDB4NzAsIDB4MGUsIDB4YzQsIAotICAgIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4ZjYsIDB4MWIsIDB4NzAsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIDB4MWEsIDB4MDgsIAotICAgIDB4MzAsIDB4MDksIDB4MzAsIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4NmMsIDB4YmIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2QsIDB4ZmEsIDB4NWUsIAotICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIAotICAgIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIAotICAgIDB4YjAsIDB4ODAsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4YjYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MzAsIDB4MTcsIAotICAgIDB4MGUsIDB4N2UsIDB4NzgsIDB4MDQsIDB4MjAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDQsIDB4N2IsIDB4ZTAsIDB4ODAsIDB4MGMsIDB4N2UsIAotICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NDQsIDB4ODAsIDB4MDAsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NDAsIDB4M2EsIAotICAgIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIDB4N2EsIDB4NWIsIDB4NTAsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIAotICAgIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIDB4NzgsIDB4ZjAsIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIAotICAgIDB4YmUsIDB4NWIsIDB4NTAsIDB4NzgsIDB4MWEsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIAotICAgIDB4NzgsIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NGIsIDB4N2YsIAotICAgIDB4NDUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZmEsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2QsIDB4NGIsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4MGYsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4ODgsIDB4N2MsIDB4OTUsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIAotICAgIDB4MGIsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NGIsIDB4OTAsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIAotICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDUsIDB4N2UsIDB4NGIsIDB4OTAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4NjgsIDB4MGIsIDB4N2YsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4ZDIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MDgsIDB4YmUsIDB4YjAsIDB4MDEsIDB4NzgsIDB4MGIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YmUsIDB4YjAsIDB4NjAsIDB4NzgsIDB4MDIsIDB4ODAsIAotICAgIDB4MTcsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIAotICAgIDB4MDksIDB4MTEsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4ODAsIDB4ZmEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAotICAgIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIAotICAgIDB4N2UsIDB4YjAsIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MzcsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4YmUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MmIsIDB4N2UsIDB4YTAsIDB4YWEsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MWMsIDB4NmMsIDB4YmIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MTYsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIAotICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4ODAsIAotICAgIDB4ZjYsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YzMsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4NDUsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIAotICAgIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2UsIDB4MjQsIAotICAgIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIDB4MDEsIDB4MGIsIDB4MDAsIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIAotICAgIDB4NzgsIDB4MTYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZTIsIDB4ODAsIDB4MjUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIAotICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjUsIDB4ODAsIDB4ZWMsIDB4N2UsIDB4NjgsIDB4MGMsIAotICAgIDB4NjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MTMsIDB4OGEsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIAotICAgIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGMsIDB4OGQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4ZTQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MzAsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MDIsIDB4MTMsIDB4YmIsIAotICAgIDB4NzQsIDB4MDcsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YzIsIDB4MGIsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTIsIDB4MTMsIAotICAgIDB4NjQsIDB4N2UsIDB4YjAsIDB4YWEsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MTMsIDB4NjQsIDB4MzAsIDB4MGIsIDB4MGYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MjIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDEsIAotICAgIDB4MjIsIDB4MjAsIDB4MDksIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZjMsIDB4ZDIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NzQsIDB4ODAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZTEsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGMsIDB4YjEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIAotICAgIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZDUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIAotICAgIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIAotICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIAotICAgIDB4MzAsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MTYsIDB4OGMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4M2MsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIAotICAgIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDIsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4NDEsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIAotICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIAotICAgIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIAotICAgIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ODksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4YmUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MWYsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIAotICAgIDB4ZDksIDB4YTIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIDB4YmUsIDB4YjAsIDB4YTAsIDB4NzgsIDB4MWYsIAotICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIAotICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIAotICAgIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4MDIsIDB4MTgsIDB4MmIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIAotICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIAotICAgIDB4MDYsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIAotICAgIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDYsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIAotICAgIDB4NjgsIDB4MGQsIDB4NjUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIAotICAgIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIAotICAgIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIAotICAgIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIAotICAgIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4YWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4YmUsIDB4YjAsIDB4OTAsIDB4NzgsIDB4MWYsIDB4NmMsIAotICAgIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4NzgsIAotICAgIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIAotICAgIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIAotICAgIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTIsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MzAsIDB4MTcsIDB4MDMsIDB4MDIsIDB4MTksIDB4M2IsIDB4YzIsIDB4OGEsIAotICAgIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIAotICAgIDB4OGIsIDB4M2UsIDB4MjAsIDB4ODksIDB4M2IsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4NGUsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4OGIsIDB4MjMsIDB4MzAsIDB4ODksIDB4MjAsIAotICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NWUsIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIAotICAgIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4OGIsIDB4MDUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MWEsIAotICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTQsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4NWUsIAotICAgIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIAotICAgIDB4ODksIDB4MDIsIDB4MTksIDB4M2IsIDB4MjAsIDB4MTcsIDB4ZmEsIDB4MTIsIDB4MTMsIDB4OGEsIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MjAsIDB4ODksIDB4MjYsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4ODksIDB4MGYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MjYsIDB4MTIsIAotICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MjAsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIAotICAgIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTgsIDB4MDIsIDB4MTksIDB4M2IsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MjIsIDB4MzAsIDB4MGEsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZjUsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ZDIsIDB4MDksIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4MDIsIDB4MGYsIDB4MTAsIDB4MzAsIDB4MTcsIDB4MWMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4NmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIAotICAgIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4OTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWIsIDB4M2MsIAotICAgIDB4MDIsIDB4MTksIDB4ZTYsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2YsIDB4NjcsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzAsIDB4M2UsIDB4N2UsIDB4N2IsIDB4YjAsIDB4N2EsIDB4NmIsIDB4YjAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIAotICAgIDB4YTUsIDB4ZGYsIDB4ZjMsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4ODksIDB4NzgsIDB4N2UsIDB4NzgsIDB4MDAsIAotICAgIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmUsIDB4NzQsIDB4YWEsIDB4MzksIAotICAgIDB4YjcsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjcsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjcsIDB4NTUsIDB4NTUsIDB4NmMsIAotICAgIDB4OTksIDB4N2EsIDB4NmIsIDB4OTAsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4NmIsIDB4ODAsIDB4YmMsIDB4ODksIDB4NjgsIDB4MDgsIDB4MWIsIAotICAgIDB4NTQsIDB4NzgsIDB4ZjUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZGUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZTYsIDB4MTIsIDB4MWEsIDB4MDgsIDB4N2UsIDB4NmIsIAotICAgIDB4ODAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4MTAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4ODUsIDB4ODAsIDB4ZjgsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIAotICAgIDB4ZmYsIDB4MWIsIDB4ZjQsIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIDB4MDAsIDB4MWIsIDB4ZjQsIAotICAgIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4MjAsIDB4MDksIDB4MTksIDB4ZDIsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIAotICAgIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4MjIsIDB4Y2EsIDB4MGIsIDB4N2UsIDB4MTAsIDB4MDMsIDB4N2MsIDB4MzAsIDB4NmMsIDB4MjIsIDB4MGIsIDB4MjAsIDB4OWUsIDB4MzAsIDB4MGEsIDB4NTAsIAotICAgIDB4ZjksIDB4MmUsIDB4MzAsIDB4MGIsIDB4MWIsIDB4MjAsIDB4NjgsIDB4MTgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIAotICAgIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIDB4YTUsIDB4ZGEsIDB4ZTgsIAotICAgIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MWIsIDB4MzAsIDB4NjgsIDB4MTksIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIAotICAgIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4YTUsIDB4ZGIsIDB4ZTcsIDB4N2UsIDB4MjAsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZGEsIDB4ZmEsIDB4YTUsIDB4ZDksIDB4YTcsIDB4ZGEsIAotICAgIDB4MGIsIDB4MjIsIDB4MjAsIDB4MDksIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MjIsIAotICAgIDB4MzAsIDB4MTcsIDB4MzIsIDB4MjAsIDB4MDksIDB4MmYsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4N2IsIDB4N2UsIDB4NzgsIDB4ODAsIDB4MDAsIDB4N2EsIDB4N2MsIAotICAgIDB4MDAsIDB4ZmUsIDB4MTIsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NmIsIDB4YTAsIDB4NWMsIDB4YWEsIDB4NjgsIDB4MTAsIDB4MjksIDB4YjcsIDB4MDAsIDB4MTQsIAotICAgIDB4NTQsIDB4NjAsIDB4NjgsIDB4ZjgsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDAsIDB4MGIsIDB4NmMsIDB4ODAsIDB4ZTksIDB4MTIsIDB4MTksIDB4ZWUsIDB4ZDIsIAotICAgIDB4YjUsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4MmIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MjIsIDB4Y2EsIDB4NTksIDB4Y2EsIDB4NWIsIDB4N2UsIDB4YjQsIDB4MDAsIDB4MGIsIDB4N2MsIDB4YjgsIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIAotICAgIDB4YjgsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2UsIAotICAgIDB4YjAsIDB4NjgsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4NmMsIDB4YmIsIDB4N2EsIDB4YjksIDB4YjAsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4NWIsIAotICAgIDB4MjIsIDB4NWUsIDB4YjAsIDB4MGYsIDB4N2MsIDB4YWIsIDB4OWUsIDB4YTAsIDB4MGEsIDB4NDAsIDB4MDUsIDB4MmUsIDB4YjAsIDB4MzcsIDB4ODAsIDB4MDMsIAotICAgIDB4MmUsIDB4YjAsIDB4MzAsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4MjIsIDB4YzIsIDB4YjUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4NzQsIDB4ODAsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDYsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDQsIDB4MzksIDB4YjcsIAotICAgIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4MjIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIAotICAgIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2YsIDB4NjUsIDB4N2UsIDB4NzQsIDB4MjAsIDB4MDAsIDB4MTIsIAotICAgIDB4MDgsIDB4ZDYsIDB4NDAsIDB4NTQsIDB4N2UsIDB4NzgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIAotICAgIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NjgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NzQsIDB4MDQsIDB4MDAsIAotICAgIDB4MTIsIDB4MDgsIDB4ZDYsIDB4NDAsIDB4MzMsIDB4NzQsIDB4ODAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MmMsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4ZDIsIAotICAgIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4ODQsIDB4YTUsIDB4ZGIsIDB4ZmMsIDB4YTUsIDB4ZGEsIDB4ZjksIAotICAgIDB4YTUsIDB4ZDksIDB4ZjYsIDB4NzQsIDB4NDAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MGUsIDB4N2UsIDB4NjgsIDB4MGUsIDB4YzAsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MDIsIDB4MTksIDB4ZTYsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4ODAsIDB4ZmUsIDB4ZjUsIDB4MGEsIAotICAgIDB4N2UsIDB4NzgsIDB4MDAsIDB4MGEsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4NzQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDgsIDB4ZDYsIAotfTsKLQotc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7Ci0JMSwgMTIsIDIgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKLQotI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQotCi0jdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdDIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzQ2M2RlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQ2ICswLDAgQEAKLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQotLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgotLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0vLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCi0jZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIgIERhdGFbMF07Ci0JfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0KLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gewotCQl1bnNpZ25lZCBjaGFyCSBNYWpvclZlcnNpb247Ci0JCXVuc2lnbmVkIGNoYXIgIE1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQgQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCQlGaXJtd2FyZUltYWdlCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlGaXJtd2FyZUltYWdlVmVyc2lvbgotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIElNQUdFX0FSUkFZX05BTUVbXSA9IHsKLQotLy8gU2VnbWVudCAjMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwMCwgTGVuZ3RoIDYKLTB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4ODAsIDB4MDIsIDB4MDAsIDB4MDMsIAotCi0vLyBTZWdtZW50ICMyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDBiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgwYiwgCi0KLS8vIFNlZ21lbnQgIzMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAyLCAweDU2LCAKLQotLy8gU2VnbWVudCAjNCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAxYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDFiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MWIsIAotCi0vLyBTZWdtZW50ICM1LCBTdGFydCBBZGRyZXNzIDAwZmYwMDIzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MjMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyMywgCi0KLS8vIFNlZ21lbnQgIzYsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMmIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDJiLCAKLQotLy8gU2VnbWVudCAjNywgU3RhcnQgQWRkcmVzcyAwMGZmMDAzMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDMzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MzMsIAotCi0vLyBTZWdtZW50ICM4LCBTdGFydCBBZGRyZXNzIDAwZmYwMDNiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4M2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzYiwgCi0KLS8vIFNlZ21lbnQgIzksIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNDMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDQzLCAKLQotLy8gU2VnbWVudCAjMTAsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDRiLCAKLQotLy8gU2VnbWVudCAjMTEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg1MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweGY1LCAKLQotLy8gU2VnbWVudCAjMTIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwN2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg3YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDdiLCAKLQotLy8gU2VnbWVudCAjMTMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwODAsIExlbmd0aCA1MzQKLTB4ZmYsMHgwMCwweDgwLDB4MDAsMHgxNiwweDAyLAotICAgIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDEsIDB4MjAsIDB4ZTMsIDB4MGMsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjIsIDB4ODAsIDB4MGEsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4MjQsIDB4N2UsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4MTAsIDB4MDAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NjksIDB4MjAsIDB4MDAsIDB4MGEsIDB4NWUsIDB4NDAsIDB4MWYsIDB4YmUsIDB4MjQsIDB4MDAsIAotICAgIDB4MDAsIDB4NzgsIDB4MDksIDB4N2UsIDB4MDAsIDB4MDMsIDB4N2EsIDB4MDMsIDB4OTAsIDB4MDAsIDB4ODAsIDB4MDcsIDB4N2UsIDB4MDAsIDB4MDIsIDB4N2EsIAotICAgIDB4MDMsIDB4OTAsIDB4MDAsIDB4NzUsIDB4YjAsIDB4ZGYsIDB4N2UsIDB4MDAsIDB4MDEsIDB4N2EsIDB4MDMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIAotICAgIDB4MjQsIDB4N2UsIDB4MDAsIDB4MDEsIDB4N2EsIDB4MDMsIDB4OTMsIDB4MDAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4YTUsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4YTgsIAotICAgIDB4MDAsIDB4NzUsIDB4YjEsIDB4MDAsIDB4Y2EsIDB4MjksIDB4MTIsIDB4MGMsIDB4NjYsIDB4MTIsIDB4MGMsIDB4MzcsIDB4ZjUsIDB4MjEsIDB4N2EsIDB4YTEsIAotICAgIDB4MjAsIDB4MjAsIDB4MDksIDB4MDgsIDB4MjAsIDB4MGEsIDB4MGEsIDB4N2UsIDB4YjAsIDB4MGMsIDB4ODAsIDB4MDgsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIAotICAgIDB4MDMsIDB4N2UsIDB4YjAsIDB4MDgsIDB4N2EsIDB4YjMsIDB4OTIsIDB4MDAsIDB4MTIsIDB4MDIsIDB4OTYsIDB4ZGEsIDB4MjksIDB4NzQsIDB4MTAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDEsIDB4N2UsIDB4MjAsIDB4MDQsIDB4N2MsIDB4YjIsIDB4YzIsIDB4ZDcsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MDIsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4YTUsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIAotICAgIDB4MzQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTMsIDB4NzQsIDB4M2YsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDYsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4NDQsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4ZWYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIAotICAgIDB4YjMsIDB4OTEsIDB4MDcsIDB4N2EsIDB4YjEsIDB4MGEsIDB4NzUsIDB4MDksIDB4MDEsIDB4ZDIsIDB4YWEsIDB4ZDIsIDB4YWYsIDB4ZTQsIDB4N2UsIDB4NjAsIAotICAgIDB4MDIsIDB4NGQsIDB4MjIsIDB4NzgsIDB4MDMsIDB4N2UsIDB4NjAsIDB4MDMsIDB4N2MsIDB4NzYsIDB4N2UsIDB4MDQsIDB4MjgsIDB4MDAsIDB4OGQsIDB4ZWYsIAotICAgIDB4MWIsIDB4MDQsIDB4NzgsIDB4ZmEsIDB4MDQsIDB4N2UsIDB4MjAsIDB4MDcsIDB4N2EsIDB4MjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MDcsIAotICAgIDB4N2UsIDB4MzEsIDB4MGEsIDB4YmMsIDB4MzIsIDB4NjgsIDB4MjIsIDB4N2EsIDB4MjEsIDB4MGEsIDB4N2UsIDB4MjEsIDB4MDksIDB4NjgsIDB4MTcsIDB4Y2EsIAotICAgIDB4YjgsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NDQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDcsIDB4ZGEsIDB4YjgsIDB4NzUsIDB4MDksIDB4MDAsIDB4MzAsIDB4ZTAsIDB4YzEsIDB4NmMsIDB4NjcsIDB4N2EsIDB4NjMsIDB4OTAsIDB4MDAsIDB4ODAsIAotICAgIDB4YjksIDB4YmUsIDB4YjAsIDB4MDIsIDB4MjIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4MDgsIDB4ZmUsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDIsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIAotICAgIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIAotICAgIDB4ZTAsIDB4MDgsIDB4NzQsIDB4MTgsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDEsIDB4ODAsIDB4MDYsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDEsIAotICAgIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MzYsIDB4NzUsIDB4MDgsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIAotICAgIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NTQsIAotICAgIDB4ZmMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4MzIsIDB4Y2EsIDB4YjgsIDB4NzUsIDB4MDgsIDB4MDIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MDMsIDB4MjAsIDB4ZTUsIDB4MDgsIDB4MzAsIDB4ZTAsIDB4MmIsIDB4MTIsIDB4MDIsIDB4OWUsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4OTEsIAotICAgIDB4MDQsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDIsIDB4MzksIDB4MzAsIDB4ZTEsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDEsIAotICAgIDB4ZjUsIDB4MzAsIDB4ZTYsIDB4MDUsIDB4MTIsIDB4MDQsIDB4MDMsIDB4ODAsIDB4ZDUsIDB4MzAsIDB4ZTIsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDAsIAotICAgIDB4ODAsIDB4ODAsIDB4Y2IsIDB4ZGEsIDB4YjgsIDB4MzIsIAotCi0vLyBTZWdtZW50ICMxNCwgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmMzFkNywgTGVuZ3RoIDEKLQotCi0vLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDI5NiwgTGVuZ3RoIDIwOTAKLTB4ZmYsMHgwMCwweDk2LDB4MDIsMHgyYSwweDA4LAotICAgIDB4ZTQsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4MDIsIDB4MDMsIDB4NDEsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIAotICAgIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MWMsIDB4YjQsIDB4MDEsIDB4MTksIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIAotICAgIDB4NTQsIDB4MTQsIDB4NjgsIDB4MDUsIDB4MTIsIDB4MDMsIDB4MDUsIDB4ODAsIDB4MjMsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MWMsIAotICAgIDB4MTIsIDB4MDQsIDB4NDMsIDB4ODAsIDB4MTcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MDUsIDB4MTIsIDB4MDQsIDB4NDMsIDB4ODAsIAotICAgIDB4MGIsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NTQsIDB4MTQsIDB4NjgsIDB4MDMsIDB4MTIsIDB4MDMsIDB4MDUsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIAotICAgIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4MjAsIAotICAgIDB4ZTQsIDB4MTksIDB4NzUsIDB4MDgsIDB4MGEsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmQsIDB4NzAsIDB4MGEsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDEsIDB4MWYsIDB4MDIsIDB4MDMsIDB4OWQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzUsIDB4MDgsIDB4MGIsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4NzQsIDB4MTQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDIsIDB4MGMsIDB4MTIsIDB4MDMsIAotICAgIDB4NGQsIDB4MDIsIDB4MDMsIDB4NDEsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4MmUsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MmYsIDB4MjIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIDB4NTQsIDB4NjAsIDB4NjAsIDB4MDUsIDB4YjQsIAotICAgIDB4NDAsIDB4MWUsIDB4ODAsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDUsIDB4MTUsIDB4NzUsIDB4MDgsIDB4NzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4YTAsIDB4MDEsIDB4N2EsIDB4YTMsIDB4OTEsIDB4MDYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIAotICAgIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4YmUsIDB4NTcsIAotICAgIDB4MDEsIDB4MmIsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4N2EsIDB4MGYsIDB4MDEsIDB4MzEsIDB4N2EsIDB4NTcsIDB4MDEsIDB4MzUsIAotICAgIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIAotICAgIDB4MWEsIDB4NzAsIDB4NTMsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjAsIDB4ZTQsIDB4NGMsIDB4N2UsIDB4ZWYsIDB4MDEsIDB4MzEsIDB4N2UsIDB4ZjcsIAotICAgIDB4MDEsIDB4MzUsIDB4N2UsIDB4MDcsIDB4MDEsIDB4MzUsIDB4NGQsIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTcsIDB4YTMsIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIDB4NjgsIDB4MDYsIDB4YTUsIDB4YjgsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4N2UsIAotICAgIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YmUsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIAotICAgIDB4MDEsIDB4MmUsIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4N2EsIDB4ZWYsIDB4MDEsIDB4MzEsIDB4N2EsIDB4ZjcsIDB4MDEsIDB4MzUsIAotICAgIDB4NzUsIDB4MDgsIDB4MDYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4Y2EsIDB4MGIsIDB4Y2EsIAotICAgIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzUsIAotICAgIDB4MDgsIDB4MDMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MTIsIDB4MDQsIDB4YjIsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIAotICAgIDB4ZGEsIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzUsIDB4MDgsIDB4MDMsIAotICAgIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmYsIDB4YjQsIDB4MDIsIDB4MTEsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmYsIAotICAgIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmUsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4YjQsIDB4MDEsIDB4NDYsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MDQsIDB4MjAsIDB4ZTYsIDB4NDIsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MWEsIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MzAsIDB4MmMsIAotICAgIDB4MjEsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MDQsIDB4MDEsIDB4MzcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTYsIAotICAgIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4YTUsIDB4ZGIsIDB4ZjQsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzUsIDB4MDgsIAotICAgIDB4NzAsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4YTMsIDB4MDEsIDB4MmMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDMsIAotICAgIDB4MTIsIDB4MDUsIDB4NTIsIDB4MjIsIDB4MDIsIDB4MDksIDB4OGIsIDB4ZGEsIDB4NTksIDB4MDIsIDB4MDQsIDB4MTUsIDB4NzQsIDB4ZTAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MDAsIDB4N2UsIDB4MDMsIDB4OTEsIDB4MTAsIDB4N2UsIDB4MTMsIDB4OTEsIDB4MTEsIDB4N2UsIDB4MzMsIDB4OTEsIDB4MTIsIDB4N2UsIDB4MjMsIAotICAgIDB4OTEsIDB4MTMsIDB4N2UsIDB4NTMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4NDMsIDB4OTEsIDB4MTUsIDB4N2UsIDB4NzMsIDB4OTEsIDB4MTYsIDB4N2UsIDB4NjMsIAotICAgIDB4OTEsIDB4MTcsIDB4N2EsIDB4MGYsIDB4MDEsIDB4MjUsIDB4N2EsIDB4MWYsIDB4MDEsIDB4MjksIDB4NzUsIDB4MDgsIDB4MDQsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MjEsIDB4MDgsIDB4MTIsIAotICAgIDB4MGEsIDB4YzAsIDB4N2EsIDB4MzEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NTEsIAotICAgIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NjEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NzEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MTIsIDB4MDUsIDB4MjYsIDB4MjIsIAotICAgIDB4NmQsIDB4MDAsIDB4N2UsIDB4MTQsIDB4MDEsIDB4MDIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4MzUsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MjUsIDB4MjAsIDB4ZTcsIDB4MGYsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MzMsIDB4MDEsIDB4MmUsIDB4YmUsIDB4MDcsIDB4MDEsIAotICAgIDB4MmIsIDB4NjgsIDB4MDksIDB4MjIsIDB4N2EsIDB4MzMsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MmUsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIAotICAgIDB4NTQsIDB4ZTMsIDB4MjMsIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIAotICAgIDB4MDYsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4MDIsIDB4MDksIDB4OGIsIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIAotICAgIDB4ZjAsIDB4OTAsIDB4MDUsIDB4N2UsIDB4NzUsIDB4ODQsIDB4ZmYsIDB4NzMsIDB4MDIsIDB4MDcsIDB4MzksIDB4MDIsIDB4MDUsIDB4YzYsIDB4MDIsIDB4MDcsIAotICAgIDB4ZDIsIDB4MDIsIDB4MDcsIDB4ZWQsIDB4MDIsIDB4MDYsIDB4ZDAsIDB4MDIsIDB4MDYsIDB4NWIsIDB4MDIsIDB4MDgsIDB4MWUsIDB4MDIsIDB4MDgsIDB4MWUsIAotICAgIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIAotICAgIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjcsIDB4MDIsIDB4MDgsIDB4ZjksIDB4MDIsIDB4MDgsIAotICAgIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIAotICAgIDB4YjQsIDB4MDYsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjcsIDB4NjAsIDB4NzksIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MjgsIDB4N2UsIAotICAgIDB4MTcsIDB4MDEsIDB4MjksIDB4NzUsIDB4MDgsIDB4NzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIAotICAgIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NDAsIDB4NTgsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDgsIDB4MWMsIAotICAgIDB4NzUsIDB4MDgsIDB4NzQsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIAotICAgIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDAsIDB4MzMsIDB4NzUsIAotICAgIDB4MDgsIDB4NzUsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2UsIAotICAgIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4NzQsIDB4MDIsIDB4N2EsIDB4MGIsIDB4YjAsIDB4ODAsIDB4MDUsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4MGIsIDB4YjAsIDB4MGIsIDB4MTQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDIsIDB4ZGEsIDB4MGIsIDB4MDIsIAotICAgIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDAsIDB4NWYsIDB4NzUsIDB4MDgsIDB4NzYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MmEsIDB4NTQsIDB4MGYsIDB4YjQsIDB4MDIsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIAotICAgIDB4YjAsIDB4MDAsIDB4ODAsIDB4MGYsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIAotICAgIDB4N2UsIDB4YjAsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTEsIDB4MzAsIDB4ZTAsIDB4MDQsIDB4NzQsIDB4MDEsIAotICAgIDB4ODAsIDB4MDIsIDB4NzQsIDB4MDAsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2EsIDB4MGIsIAotICAgIDB4YjAsIDB4MGIsIDB4MTQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4ZGEsIDB4MGIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4NTQsIDB4MGYsIAotICAgIDB4YjQsIDB4MDIsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIDB4MGYsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIDB4N2UsIDB4YjAsIDB4MjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YjQsIDB4MDAsIDB4MjYsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDEsIAotICAgIDB4MGUsIDB4NzUsIDB4MDgsIDB4NzcsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4ODAsIDB4MWIsIDB4YjQsIAotICAgIDB4MDMsIDB4MGUsIDB4NzUsIDB4MDgsIDB4NzgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4ODAsIDB4MGEsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4MTIsIDB4MDksIDB4OGIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4MDIsIDB4MDMsIDB4NzcsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDksIDB4MWYsIDB4NzUsIDB4MDgsIDB4NzksIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MGQsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MDEsIDB4ZjEsIDB4ZGEsIAotICAgIDB4YjgsIDB4NTAsIDB4NzYsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MDgsIDB4N2EsIDB4MTIsIAotICAgIDB4MGEsIDB4YzAsIDB4ODAsIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MDgsIDB4N2IsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIAotICAgIDB4MjgsIDB4YjQsIDB4MDEsIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4NDYsIAotICAgIDB4YjQsIDB4MDEsIDB4MTksIDB4NzUsIDB4MDgsIDB4N2MsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YjQsIDB4MDEsIDB4MzksIAotICAgIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIDB4N2UsIAotICAgIDB4YjMsIDB4MDEsIDB4MjcsIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjksIDB4NzUsIAotICAgIDB4MDgsIDB4NzMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4MTIsIDB4MGEsIDB4MGEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NzcsIDB4MDIsIDB4MDksIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIAotICAgIDB4YjQsIDB4MGIsIDB4ZjYsIDB4NzUsIDB4MDgsIDB4N2QsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4YTMsIDB4MDEsIAotICAgIDB4MmEsIDB4NGMsIDB4YWIsIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MGEsIDB4Y2YsIDB4NzUsIDB4MDgsIDB4N2UsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4NzAsIDB4YzMsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGIsIAotICAgIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4MDIsIDB4MDksIDB4OGIsIDB4MDIsIDB4MDksIAotICAgIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDQsIDB4MjAsIDB4NzUsIDB4MDgsIDB4YzMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4N2UsIDB4MTgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIAotICAgIDB4MDEsIDB4MmIsIDB4MTIsIDB4MGEsIDB4Y2MsIDB4MDIsIDB4MDgsIDB4ZjMsIDB4YjQsIDB4MDYsIDB4NDIsIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MDEsIDB4MjcsIDB4N2UsIAotICAgIDB4NzgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MmIsIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4MGIsIDB4NjMsIDB4N2UsIAotICAgIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4NDAsIDB4NjUsIDB4ODAsIDB4NjAsIDB4YjQsIDB4MDAsIDB4MjQsIAotICAgIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MjQsIDB4MTIsIDB4MDMsIDB4NzcsIAotICAgIDB4ZTQsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIAotICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MzIsIDB4YjQsIDB4MDksIDB4MjAsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4MjMsIDB4OTEsIAotICAgIDB4MDcsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjcsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4NGUsIDB4MjAsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NWUsIDB4MjAsIAotICAgIDB4ZmQsIDB4N2EsIDB4MjMsIDB4OTEsIDB4MDcsIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIDB4MjksIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4MDMsIDB4NzcsIAotICAgIDB4MDIsIDB4MDksIDB4OGIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIAotICAgIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MDgsIDB4YzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDUsIDB4NDEsIDB4NzUsIDB4MDgsIAotICAgIDB4YzAsIDB4MTIsIDB4MGEsIDB4YzAsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4N2UsIAotICAgIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4MjcsIDB4N2UsIAotICAgIDB4NDcsIDB4MDEsIDB4MmIsIDB4MTIsIDB4MGEsIDB4Y2MsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIAotICAgIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIAotICAgIDB4MDEsIDB4MjAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDEsIDB4NzUsIDB4MDgsIDB4NzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIAotICAgIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NDAsIDB4MDMsIDB4MDIsIAotICAgIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzUsIDB4MDgsIDB4MDcsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjAsIDB4MDIsIDB4N2EsIDB4YjMsIAotICAgIDB4OTAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NzQsIDB4MDEsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NTQsIDB4NjAsIDB4YmUsIDB4YjAsIDB4NDAsIDB4NjgsIDB4MDgsIDB4NzQsIAotICAgIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTUsIDB4ODAsIDB4ZWQsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4NzQsIDB4MDQsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4ZmYsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmQsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIAotICAgIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4MGEsIDB4NTcsIDB4NDAsIDB4MWYsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIAotICAgIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4MGEsIDB4Y2MsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4N2UsIDB4NDMsIDB4MDEsIAotICAgIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIAotICAgIDB4MDAsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIAotICAgIDB4MGEsIDB4NTcsIDB4NDAsIDB4MzEsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIAotICAgIDB4MDEsIDB4MzcsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MmIsIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTcsIDB4NzUsIDB4MDgsIAotICAgIDB4YzEsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MGIsIDB4NjMsIDB4NDAsIDB4MGMsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIAotICAgIDB4MDAsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4ZDMsIAotICAgIDB4MjIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIDB4ZjAsIDB4N2QsIDB4NjIsIAotICAgIDB4N2QsIDB4NzUsIDB4N2QsIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIDB4NTAsIDB4NDksIDB4M2UsIAotICAgIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIDB4MDIsIDB4YmQsIDB4MzgsIAotICAgIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIDB4NTEsIDB4MmQsIDB4MzUsIAotICAgIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmUsIDB4NDQsIDB4ZmYsIAotICAgIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIDB4NDQsIDB4MDAsIDB4ZmYsIAotICAgIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2MwMCwgTGVuZ3RoIDIyNwotCi0KLS8vIFNlZ21lbnQgIzE3LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmY3ZjAwLCBMZW5ndGggMTkyCi0KLQotLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzAsIExlbmd0aCA2NAotMHhmZiwweDAwLDB4YzAsMHg3ZiwweDQwLDB4MDAsCi0gICAgMHg0MCwgMHgwMSwgMHgwMiwgMHgwMCwgMHhkNywgMHgzMSwgMHgwMiwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHg3YywgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmMSwgMHg3ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0KLS8vIFNlZ21lbnQgIzE4LCBTdGFydCBBZGRyZXNzIDAwZmYwYWMwLCBMZW5ndGggNDE2MwotMHhmZiwweDAwLDB4YzAsMHgwYSwweDQzLDB4MTAsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgwOCwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg4MCwgMHg1MCwgMHgwYiwgMHgxYSwgCi0gICAgMHg2MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg3MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg4MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg5MCwgCi0gICAgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhhMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhiMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhjMCwgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgxYSwgMHhkMCwgMHgwYiwgMHgzNSwgMHgxYiwgMHgwYSwgMHg2MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg3MCwgMHgwYiwgMHgxNSwgCi0gICAgMHgxYiwgMHgwYSwgMHg4MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg5MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhhMCwgMHgwYiwgMHgxNSwgMHgxYiwgCi0gICAgMHgwYSwgMHhiMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhjMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhkMCwgMHgwYiwgMHgxNSwgMHg5ZSwgMHg0NCwgCi0gICAgMHgwMCwgMHgxMCwgMHg1MCwgMHhhYSwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwZSwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgMHgwYiwgMHhjMCwgCi0gICAgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgMHhmYywgMHg3YywgCi0gICAgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgMHg0NCwgMHgwMCwgCi0gICAgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmYSwgMHg3ZiwgCi0gICAgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgMHg0MCwgMHg5ZCwgCi0gICAgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHgwYiwgMHg4ZCwgMHhkYSwgMHg3OSwgCi0gICAgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg3ZSwgMHhjMCwgMHgwMywgCi0gICAgMHg3ZSwgMHhkMCwgMHgwMCwgMHg3YSwgMHhkMywgMHg5MCwgMHgwMCwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgCi0gICAgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHg3MCwgMHg1MCwgCi0gICAgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgMHg2ZCwgMHg3NywgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgMHgwMCwgMHgwYiwgCi0gICAgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZiwgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHgxYiwgCi0gICAgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4MCwgMHgyZiwgMHg2ZCwgMHgwMCwgMHg3YywgMHgyMCwgMHg3ZiwgCi0gICAgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgMHg5ZiwgMHgyMCwgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgwMSwgMHg3OCwgCi0gICAgMHgxOSwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwNiwgMHg2YywgMHhkYywgMHg3YSwgCi0gICAgMHhkMywgMHg5MCwgMHgwMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MCwgMHhjMiwgMHhkNywgMHgyMiwgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgMHgwNCwgMHgwMCwgCi0gICAgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwOCwgMHgxMCwgMHgwMiwgMHgxMCwgCi0gICAgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHg3ZSwgMHgxOCwgMHg3ZiwgMHhiZCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgwYiwgCi0gICAgMHgxYSwgMHgwMCwgMHg1ZSwgMHgxMCwgMHgxZiwgMHhiZSwgMHgxMCwgMHgxNCwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgMHgyMywgMHg3ZSwgMHgxOCwgMHgwYywgCi0gICAgMHgwZCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgMHhhNSwgMHhiOCwgMHgwMiwgMHgwMywgCi0gICAgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHhlYywgMHgwMCwgMHhmZiwgMHhlMCwgMHhmNSwgCi0gICAgMHgyMywgMHg1NCwgMHhjMCwgMHg2OCwgMHgzOCwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZSwgMHg3YSwgMHhlYywgMHgwMCwgMHhmZiwgMHhlMCwgMHg2MCwgMHgyZSwgCi0gICAgMHgxMiwgMHgwYywgMHgzNywgMHhmNSwgMHgyMSwgMHg3YSwgMHhhMSwgMHgyMCwgMHgyMCwgMHgwOSwgMHgwYywgMHgyMCwgMHgwYSwgMHgxMiwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwZSwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg4MCwgMHgxMCwgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg4MCwgMHgwNywgCi0gICAgMHg3ZSwgMHhiMCwgMHgwYSwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg3YSwgMHhiMSwgMHgwZCwgMHgwMiwgMHgwYywgMHhjNCwgMHgyMiwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg4MCwgMHhlYSwgMHhjMiwgMHhhZiwgMHhjMiwgMHgxMSwgMHhjMiwgMHgxMiwgMHg3NSwgMHhiMCwgMHhkZiwgMHg3ZSwgMHgwMCwgMHgwMSwgCi0gICAgMHg3YSwgMHgwMywgMHg5MywgMHgwMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHg2YywgMHgwMCwgMHg3ZSwgMHgxMCwgMHgwMywgCi0gICAgMHgxMiwgMHgwYywgMHhmNSwgMHg3ZSwgMHg2OCwgMHgyYywgMHg2NiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgCi0gICAgMHg4MCwgMHgzMiwgMHgwMiwgMHgxYSwgMHg2ZSwgMHgyMCwgMHgxMSwgMHgyYiwgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgCi0gICAgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHhhNSwgMHhkOSwgMHhkYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgyMiwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmOSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHhlNCwgMHgxMCwgMHgwMCwgMHg3ZSwgMHg0MCwgMHg1NSwgMHg3YSwgMHhlOSwgMHg0MCwgMHgwYiwgMHhlNCwgMHg3ZSwgMHg1MCwgMHhhYSwgMHg3YSwgMHhlOSwgCi0gICAgMHg1MCwgMHgxYiwgMHhlNCwgMHhiZSwgMHhlOSwgMHg0MCwgMHg2OCwgMHgxOSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgxMywgMHg3YSwgMHhlOSwgMHg0MCwgMHg3ZSwgMHhlOSwgMHgxMCwgMHg4MCwgCi0gICAgMHhmOCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZCwgMHgzZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3MCwgMHgwZSwgCi0gICAgMHg3ZSwgMHhhNCwgMHhmZiwgMHhmZiwgMHg3ZSwgMHhiNCwgMHhiZiwgMHhmZiwgMHg3ZCwgMHhjYiwgMHgwZSwgMHhjNCwgMHg3ZCwgMHhkYywgMHg1ZCwgMHhkYiwgCi0gICAgMHg2YywgMHhiYiwgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgCi0gICAgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg2YywgMHhiYiwgMHg3ZCwgMHhmYSwgCi0gICAgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHg0MSwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgCi0gICAgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgzNCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgCi0gICAgMHhiMCwgMHg3OCwgMHgyNywgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgxYSwgCi0gICAgMHgwYiwgMHhiMCwgMHhiZSwgMHhjNCwgMHhmZiwgMHhmZSwgMHg3OCwgMHg5MiwgMHgwZSwgMHhiNCwgMHhhNSwgMHhkZiwgMHg4YiwgMHg3ZSwgMHg2OCwgMHgyYywgCi0gICAgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHg3NywgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg4ZiwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYSwgMHg0NywgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHhkZSwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg2YywgMHg3NywgMHhkYSwgMHg2YiwgMHhjYSwgMHg2YiwgMHgwYiwgMHg3MCwgMHgwZSwgMHhjNCwgMHhiZSwgMHhjNCwgCi0gICAgMHhmZiwgMHhmZiwgMHg3OCwgMHhmNiwgMHgxYiwgMHg3MCwgMHgwYSwgMHg0NywgMHgxMiwgMHgxOSwgMHhmYSwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgCi0gICAgMHgzMCwgMHhkYSwgMHg2YiwgMHhkYSwgMHg1YiwgMHg2YywgMHhiYiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgCi0gICAgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg4MCwgCi0gICAgMHhkNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHgxYiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgzMCwgMHgxZiwgMHgwZSwgMHg3ZSwgCi0gICAgMHg3OCwgMHgwNCwgMHgyMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NCwgMHg3YiwgMHhlMCwgMHg4MCwgMHgwYywgMHg3ZSwgMHg3OCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg0NCwgMHg4MCwgMHgwMCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg0MCwgMHgzYSwgMHg3YywgMHg1NCwgCi0gICAgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgMHg3YSwgMHg1YiwgMHg1MCwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgMHhkZSwgMHgwMiwgCi0gICAgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgMHg3OCwgMHhmMCwgMHg3YywgMHg1NCwgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgMHhiZSwgMHg1YiwgCi0gICAgMHg1MCwgMHg3OCwgMHgxYSwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgMHhkZSwgMHgwMiwgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgMHg3OCwgMHhlZSwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHg0YiwgMHg3ZiwgMHg0NSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg1ZiwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZCwgMHg0YiwgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg3NCwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg2YywgMHg4OCwgMHg3YywgMHg5NSwgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg4MiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg0YiwgMHg5MCwgMHgxMiwgMHgxOSwgMHhmYSwgMHgxMiwgMHgxOSwgMHgxOSwgCi0gICAgMHgzMCwgMHgxMSwgMHgwNSwgMHg3ZSwgMHg0YiwgMHg5MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHgyOCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhiMCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHg3YSwgCi0gICAgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHhiYywgMHhhYiwgMHg3OCwgMHgyMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhhYSwgMHg3YSwgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHhiYywgMHhhYiwgCi0gICAgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwYSwgCi0gICAgMHg3YSwgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHg4MCwgMHhmNiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHg0YSwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxMiwgMHgzMSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhlNCwgMHgxMCwgMHgwMCwgMHg3ZSwgMHhhMCwgCi0gICAgMHhhNSwgMHhjYSwgMHhhOCwgMHg3YSwgMHhlOSwgMHhhMCwgMHg3ZSwgMHhiMCwgMHgzMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhhMCwgCi0gICAgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgwYiwgMHhlNSwgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgCi0gICAgMHhkYSwgMHhhOCwgMHhiYywgMHhhYiwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg4MCwgMHgxZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgCi0gICAgMHgxOSwgMHgzMCwgMHgxMSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgzOCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgMHg4MCwgMHhmYiwgCi0gICAgMHg4MCwgMHgwMCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHhlNCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3NSwgCi0gICAgMHhiMCwgMHhkZiwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHhiZSwgMHhiMCwgMHgwMSwgMHg3OCwgMHgwYiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHhiZSwgMHhiMCwgMHg2MCwgMHg3OCwgMHgwMiwgMHg4MCwgMHgxNywgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgxMSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg4MCwgCi0gICAgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZSwgMHgwNiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3NSwgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHg3ZSwgMHhiMCwgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgzNywgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgMHhjMCwgCi0gICAgMHhiZSwgMHhiMCwgMHhjMCwgMHg3OCwgMHgyYiwgMHg3ZSwgMHhhMCwgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHg2YywgMHhiYiwgMHgxOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgxNiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgCi0gICAgMHhjMCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYiwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgCi0gICAgMHgwYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHg4MCwgMHhmNiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHg2YywgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZSwgMHhlZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3ZSwgMHhiMCwgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxYywgMHgyZSwgCi0gICAgMHgyNCwgMHgwMSwgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3ZSwgCi0gICAgMHhiMCwgMHgwMSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgxNiwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhlMiwgCi0gICAgMHg4MCwgMHgyNSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgCi0gICAgMHgzMCwgMHgxMSwgMHhlNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgyZSwgMHgyNCwgCi0gICAgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhmNSwgMHg4MCwgMHhlYywgMHg3ZSwgMHg2OCwgMHgyZiwgMHgxMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHgxMiwgMHgxMiwgMHgzMSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3NCwgMHgxMCwgCi0gICAgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMSwgMHhhYSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhlZSwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZiwgMHgzNiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHgwYiwgMHgwMCwgMHhlNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMSwgMHhhYSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgCi0gICAgMHhlZiwgMHgzMCwgMHgwMCwgMHgwMywgMHgwMiwgMHgxNywgMHgzYiwgMHgwMiwgMHgxMiwgMHg2YSwgMHg3NCwgMHgwNywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwOCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHhjMiwgMHgxMywgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxMiwgMHgxMiwgMHgwYiwgMHg3ZSwgMHhiMCwgMHhhYSwgMHgxMiwgMHgxMiwgCi0gICAgMHgwYiwgMHg3ZSwgMHhiMCwgMHgwMCwgMHgxMiwgMHgxMiwgMHgwYiwgMHg3ZSwgMHhiMCwgMHhmZiwgMHgxMiwgMHgxMiwgMHgwYiwgMHgzMCwgMHgxMywgMHgwZiwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgyMiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyMiwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHhiYywgMHhhYiwgMHg3OCwgMHgwMSwgMHgyMiwgMHgyMCwgMHgxMSwgMHgwMywgMHhkMiwgMHgxMywgCi0gICAgMHgyMiwgMHgxMiwgMHgxOSwgMHgxOSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHg4MCwgCi0gICAgMHhmMywgMHg3NSwgMHhiMCwgMHhkZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3NSwgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHgyNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3NCwgMHg4MCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMiwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgMHg3NCwgMHgwNiwgMHgxOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgwOCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhkYiwgMHgyMiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHg1YSwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwOSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhmNywgMHgyZSwgCi0gICAgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhiNiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHg3ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxOCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgCi0gICAgMHhiMCwgMHgwYSwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgCi0gICAgMHgxYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgCi0gICAgMHgxMSwgMHgwOSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhmNywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgCi0gICAgMHhkOSwgMHhiNiwgMHgzMCwgMHgwNCwgMHgwMywgMHgwMiwgMHgxNSwgMHg5ZiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHhhMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgCi0gICAgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZiwgMHhlYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMiwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgxNCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgCi0gICAgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHgzMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHhiZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgwZCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgCi0gICAgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgCi0gICAgMHgwMCwgMHhhNSwgMHhkOSwgMHhhMiwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg3YSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHhhMCwgMHhiZSwgMHhiMCwgMHhhMCwgCi0gICAgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgCi0gICAgMHhiMCwgMHhhMCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgCi0gICAgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgCi0gICAgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgCi0gICAgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg5ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgyMCwgMHhiMSwgMHgyNiwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgzMCwgMHhiMSwgMHgxOSwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgyMCwgMHhiMSwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhZSwgMHgwMiwgMHgxNywgMHgzYiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyZiwgMHhjNiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgCi0gICAgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNiwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNiwgMHg3OCwgCi0gICAgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgCi0gICAgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHgwZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgMHgzYywgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg1NiwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgCi0gICAgMHhiZSwgMHhiMCwgMHg5MCwgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhMiwgMHgyMCwgMHgxZiwgMHg2OCwgMHgxMiwgMHgxMiwgCi0gICAgMHgzMSwgMHgxMiwgMHgxNywgMHhhOSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgyMCwgMHg4OSwgMHgyNiwgCi0gICAgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgzMCwgMHg4OSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgyMCwgMHg4OSwgMHgwMiwgMHg4MCwgMHgyNiwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgyMCwgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhlMCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgCi0gICAgMHhhNSwgMHhkOSwgMHhhOCwgMHgwMiwgMHgxNywgMHhjMiwgMHgwMiwgMHgxOCwgMHg0YywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgCi0gICAgMHhlZiwgMHgyMiwgMHgzMCwgMHgxZiwgMHgwMywgMHgwMiwgMHgxOCwgMHg0YywgMHhjMiwgMHg4YSwgMHgxMiwgMHgxNywgMHhhOSwgMHgwYiwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOCwgMHgxNiwgMHgyMCwgMHg4YiwgMHgyNCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwNywgMHg3NCwgMHgwYywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgzMCwgMHg4YiwgMHgwNiwgMHgxMiwgMHgxOCwgMHgxNiwgMHgzMCwgMHg4YiwgMHhhZCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhhNywgMHgxMiwgCi0gICAgMHgxOCwgMHgxNiwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHgxMiwgMHgxOCwgMHgxNiwgMHg4MCwgMHhlOSwgMHg3ZSwgMHhhMCwgMHgwMCwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3YSwgCi0gICAgMHhhMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3YSwgMHhhMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHg3NCwgMHhlZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMywgMHg3NCwgMHgwYywgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgwNiwgMHg3NCwgMHgwOCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgMHgwYywgMHgyMiwgMHgzMCwgMHgxMiwgMHgxOSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgzMCwgMHhjMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHhkMiwgMHgxMSwgMHgxMiwgMHgxOCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwMiwgMHgwYywgMHhjYSwgMHgzMCwgMHgxZiwgMHgxYywgMHg3ZSwgMHg2OCwgMHgzMSwgMHgzYywgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgzMSwgMHg1ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHgxMiwgMHgxYSwgMHg2ZSwgMHgwMiwgMHgxOCwgMHhmNywgMHgwYiwgMHgwMCwgMHg3ZSwgMHg3OCwgMHgxOCwgMHhiMSwgMHg3YSwgMHg3YywgMHgwMCwgCi0gICAgMHhmZiwgMHg3ZiwgMHg2NywgMHg3YSwgMHg2YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3MCwgMHgzZSwgMHg3ZSwgMHg3YiwgMHhiMCwgMHg3YSwgMHg2YiwgMHhiMCwgCi0gICAgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkZiwgMHhmMywgMHg3ZSwgMHg3OCwgMHgxOCwgMHhiMSwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg4OSwgCi0gICAgMHg3OCwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZSwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZSwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNywgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNywgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgCi0gICAgMHhiNywgMHg1NSwgMHg1NSwgMHg2YywgMHg5OSwgMHg3YSwgMHg2YiwgMHg5MCwgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHg2YiwgMHg4MCwgMHhiYywgCi0gICAgMHg4OSwgMHg2OCwgMHgwOCwgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4YSwgMHhmZiwgMHgxOCwgMHhlZiwgMHg4YSwgMHhmZiwgMHgxOCwgMHhmNywgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHg3ZSwgMHg2YiwgMHg4MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHgxMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhhYywgMHg4MCwgMHhmOCwgMHhjYSwgCi0gICAgMHhmOSwgMHg3ZSwgMHhmNCwgMHgwMCwgMHhmZiwgMHgxYiwgMHhmNCwgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHhjYSwgMHhmOSwgMHg3ZSwgMHhmNCwgCi0gICAgMHgwMCwgMHgwMCwgMHgxYiwgMHhmNCwgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHgyMCwgMHgxMSwgMHgyMCwgMHhkMiwgMHgxMiwgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgyMiwgMHhjYSwgMHgwYiwgMHg3ZSwgMHgxMCwgCi0gICAgMHgwMywgMHg3YywgMHgzMCwgMHg2YywgMHgyMiwgMHgwYiwgMHgyMCwgMHg5ZSwgMHgzMCwgMHgwYSwgMHg1MCwgMHhmOSwgMHgyZSwgMHgzMCwgMHgwYiwgMHgxYiwgCi0gICAgMHgyMCwgMHg2OCwgMHgyMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHhhNSwgMHhkYSwgMHhlMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxYiwgMHgzMCwgMHg2OCwgMHgyMCwgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHhhNSwgMHhkYiwgMHhlMCwgMHg3ZSwgMHgyMCwgMHgwYSwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHhhNSwgMHhkYSwgMHhmYSwgMHhhNSwgMHhkOSwgMHg5OCwgMHhkYSwgMHgwYiwgMHgyMiwgMHgyMCwgMHgxMSwgMHgxNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MCwgMHgwMCwgMHgyMiwgMHgzMCwgMHgxZiwgMHgzMiwgMHgyMCwgMHgxMSwgMHgyZiwgMHhjYSwgMHgyYiwgMHhjYSwgMHg3YiwgMHg3ZSwgMHg3OCwgCi0gICAgMHg4MCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZSwgMHgxMiwgMHgxYSwgMHg0ZCwgMHg3ZSwgMHg2YiwgMHhhMCwgMHg1YywgMHhhYSwgMHg2OCwgMHgxMCwgCi0gICAgMHgyOSwgMHhiNywgMHgwMCwgMHgxNCwgMHg1NCwgMHg2MCwgMHg2OCwgMHhmOCwgMHgzOSwgMHhhNywgMHgwMCwgMHgwMCwgMHgwYiwgMHg2YywgMHg4MCwgMHhlOSwgCi0gICAgMHgxMiwgMHgxOCwgMHhmZiwgMHhkMiwgMHhiNSwgMHhkYSwgMHg3YiwgMHhkYSwgMHgyYiwgMHgyMiwgMHgxMiwgMHgxYSwgMHgwNSwgMHg3ZSwgMHg2OCwgMHgwMCwgCi0gICAgMHgwYywgMHgxMiwgMHgxOSwgMHhjNCwgMHgyMiwgMHhjYSwgMHg1OSwgMHhjYSwgMHg1YiwgMHg3ZSwgMHhiNCwgMHgwMCwgMHgwYywgMHg3YywgMHhiOCwgMHhjNCwgCi0gICAgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOCwgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOSwgMHhjNCwgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOSwgCi0gICAgMHgxMiwgMHgxYSwgMHgzNSwgMHg3ZSwgMHhiMCwgMHg2OCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHg2YywgMHhiYiwgMHg3YSwgMHhiOSwgMHhiMCwgCi0gICAgMHhkYSwgMHg1OSwgMHhkYSwgMHg1YiwgMHgyMiwgMHg1ZSwgMHhiMCwgMHgwZiwgMHg3YywgMHhhYiwgMHg5ZSwgMHhhMCwgMHgwYSwgMHg0MCwgMHgwNSwgMHgyZSwgCi0gICAgMHhiMCwgMHgzNywgMHg4MCwgMHgwMywgMHgyZSwgMHhiMCwgMHgzMCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHgyMiwgMHhjMiwgMHhiNSwgMHg3NSwgCi0gICAgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3NCwgMHg4MCwgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwNiwgMHgzOSwgCi0gICAgMHhhNywgMHgwMCwgMHgwNCwgMHgzOSwgMHhiNywgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHgyMiwgMHg3ZSwgMHg3OCwgCi0gICAgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZiwgMHg2NSwgCi0gICAgMHg3ZSwgMHg3NCwgMHgyMCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHg1OCwgMHg3ZSwgMHg3OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgCi0gICAgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg2OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHgwMSwgMHg3ZSwgMHg3NCwgMHgwNCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHgzNywgMHg3NCwgMHg4MCwgMHgxMiwgMHgxYSwgMHhlYSwgMHg0MCwgCi0gICAgMHgzMCwgMHg3ZSwgMHgwMCwgMHgwMywgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHhkMiwgMHgxMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHgxNCwgCi0gICAgMHgwMCwgMHgwMCwgMHg4NCwgMHhhNSwgMHhkYiwgMHhmYywgMHhhNSwgMHhkYSwgMHhmOSwgMHhhNSwgMHhkOSwgMHhmNiwgMHg3NCwgMHg0MCwgMHgxMiwgMHgxYSwgCi0gICAgMHhlYSwgMHg0MCwgMHgwZSwgMHg3ZSwgMHg2OCwgMHgzMSwgMHg4ZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwMiwgMHgxOCwgCi0gICAgMHhmNywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHg4MCwgMHhmZSwgMHhmNSwgMHgwYiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwYiwgCi0gICAgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg3NCwgMHgwMCwgMHgwMSwgCi0gICAgMHgwMiwgMHgwYiwgMHg2MywgCi0KLS8vIFNlZ21lbnQgIzE5LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmYyYzY2LCBMZW5ndGggMTM5MwotCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkyLCAwLCAzIH07CQkvLyBNYWpvciwgTWlub3IsIEJ1aWxkCi0KLSN1bmRlZiBJTUFHRV9WRVJTSU9OX05BTUUKLQotI3VuZGVmIElNQUdFX0FSUkFZX05BTUUKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNjFkODAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaAorKysgL2Rldi9udWxsCkBAIC0xLDEyMjkgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCi0vLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2Ci0vLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0vLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotCi0vL0ltYWdlIHN0cnVjdHVyZSBkZWZpbml0aW9uCi0jaWYgIWRlZmluZWQoREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRCkKLQkjZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIJRGF0YVswXTsKLQl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLQotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyB7Ci0JCXVuc2lnbmVkIGNoYXIJTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyCU1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQJQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotCSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlGaXJtd2FyZUltYWdlCi0JI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KLSNlbmRpZgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7Ci0KLS8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2Ci0weGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDQ0LCAweGIwLCAKLQotLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NDQsIDB4NzIsIAotCi0vLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgxMywgCi0KLS8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDFiLCAKLQotLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MjMsIAotCi0vLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyYiwgCi0KLS8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDMzLCAKLQotLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4M2IsIAotCi0vLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg0MywgCi0KLS8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg2ZSwgMHhjNCwgCi0KLS8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg3NSwgMHg4ZCwgCi0KLS8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg3YiwgCi0KLS8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggNwotMHhmZiwweDAwLDB4ODAsMHgwMCwweDA3LDB4MDAsCi0gICAgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg0MCwgMHg1MSwgCi0KLS8vIFNlZ21lbnQgIzE0LCBTdGFydCBBZGRyZXNzIDAwZmYzMDAwLCBMZW5ndGggMjE3OAotMHhmZiwweDAwLDB4MDAsMHgzMCwweDgyLDB4MDgsCi0gICAgMHgxMiwgMHgzNywgMHgyOCwgMHgxMiwgMHgzMCwgMHgzZSwgMHgxMiwgMHgzMCwgMHg1NCwgMHgxMiwgMHgzMCwgMHhlNSwgMHgxMiwgMHgzMSwgMHg2OCwgMHgxMiwgCi0gICAgMHgzNSwgMHgyMCwgMHgxMiwgMHgzOCwgMHg1OCwgMHgxMiwgMHgzMSwgMHgxNSwgMHgxMiwgMHgzMSwgMHg0MCwgMHgxMiwgMHgzMCwgMHhhMCwgMHg4MCwgMHhlMCwgCi0gICAgMHhlNSwgMHgyMywgMHg2MCwgMHgxOSwgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMSwgMHgwMSwgMHhjZiwgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgCi0gICAgMHgwNSwgMHgxNCwgMHgxOSwgMHhiMSwgMHgwMSwgMHhjZiwgMHhhNSwgMHgwYiwgMHhiZSwgMHgzMSwgMHgyZiwgMHg3OCwgMHhlYiwgMHgyMiwgMHhjMiwgMHhhZiwgCi0gICAgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMSwgMHhiNCwgMHgwMSwgMHgwYSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMiwgMHgxMiwgMHg3MCwgMHhlZiwgMHhkMCwgCi0gICAgMHhmMSwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgyMiwgMHg2MCwgMHg0MywgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHhiZSwgMHgwNCwgCi0gICAgMHgwMywgMHg4MCwgMHgzOCwgMHgzOSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgyMSwgMHgwOSwgMHhhMCwgCi0gICAgMHgwMCwgMHgwNCwgMHg0ZSwgMHhhMCwgMHgwNSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgwNCwgMHgwYSwgMHgzMiwgMHgwOSwgMHg1MywgMHg2NywgMHg4ZSwgMHg1ZSwgCi0gICAgMHg1MSwgMHgyNywgMHg2OCwgMHgwYiwgMHgwOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHg0ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHgyZSwgCi0gICAgMHgwNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhkMSwgMHg3NSwgMHgyMiwgMHgwMCwgMHhkMiwgMHhhZiwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHg3ZSwgMHgyMCwgMHgwMCwgMHg3ZSwgMHgzMCwgMHgwMSwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgzMiwgMHgwMSwgCi0gICAgMHg4ZiwgMHhiZSwgMHgzNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhiMSwgMHgyMSwgMHhhNSwgMHg0YiwgMHg3YSwgMHhiMSwgMHgyMSwgMHhjYSwgCi0gICAgMHgxOSwgMHg0OSwgMHgyMiwgMHgzMCwgMHhkNSwgMHg5OSwgMHgyNCwgMHhkYSwgMHgxOSwgMHgzZSwgMHgzMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhkNiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg0NiwgMHgwZiwgMHg0OSwgMHg2NywgMHg0YywgMHhiZiwgMHg1MCwgMHgxNywgMHg1MywgMHg2ZiwgMHg1NiwgCi0gICAgMHhjNywgMHg1YSwgMHgxZiwgMHg1ZCwgMHg3NywgMHhjMiwgMHhhZiwgMHhlNSwgMHgzMiwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgCi0gICAgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHgwMiwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHgxMiwgMHg2NywgMHhhYiwgMHhkYSwgMHgyOCwgMHg0MCwgMHgwOSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHg2NywgCi0gICAgMHg4ZSwgMHhmNCwgMHg1MiwgMHgzMiwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzNCwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgCi0gICAgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHgzMiwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHgwYSwgMHgyMiwgMHgwOSwgMHg0MiwgMHgwMCwgMHgzZSwgMHgxMiwgMHg2OSwgMHhjMiwgMHhkYSwgMHgyOCwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHhlNSwgMHgzNSwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgCi0gICAgMHg1ZCwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHg3ZSwgCi0gICAgMHg0MCwgMHgwMCwgMHgxMiwgMHg2YywgMHg1YiwgMHhkYSwgMHgyOCwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgyMywgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgCi0gICAgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHg4NSwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzMSwgMHg5MCwgMHg4OSwgMHgyNCwgCi0gICAgMHgzMSwgMHhhMCwgMHgzMiwgMHgxMCwgMHgzMiwgMHg4MCwgMHgzMiwgMHhmMCwgMHgzMywgMHg2MCwgMHgzMywgMHhkMCwgMHgzNCwgMHg0MCwgMHgzNCwgMHhiMCwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg4ZiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0OSwgMHgzMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHg5ZiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5ZiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhjZiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhjZiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxOCwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhjZiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0YywgMHg4OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhMSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhMSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMCwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMCwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxOSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MiwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0ZiwgMHhlMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhMywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhMywgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMSwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MywgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1MywgMHgzOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhNSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhNSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYiwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1NiwgMHg5MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhNywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhNywgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMywgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMywgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYywgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMywgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5OSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1OSwgMHhlOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhOSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhOSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNCwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNCwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZCwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5YiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1ZCwgMHg0MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhYiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhYiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNSwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5ZCwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NywgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg2MCwgMHg5OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhZCwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhZCwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZiwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHhlNSwgMHgyNCwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzNSwgCi0gICAgMHgzZCwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgCi0gICAgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzNSwgMHg0OCwgMHg4OSwgMHgyNCwgMHgzNSwgMHg1OCwgMHgzNSwgMHg5MiwgMHgzNSwgMHhjYywgMHgzNiwgMHgwNiwgCi0gICAgMHgzNiwgMHg0MCwgMHgzNiwgMHg3YSwgMHgzNiwgMHhiNCwgMHgzNiwgMHhlZSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0OSwgMHgzMCwgCi0gICAgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgCi0gICAgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgCi0gICAgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MSwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgCi0gICAgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0YywgMHg4OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgCi0gICAgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgCi0gICAgMHgyMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MiwgMHgwMCwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgCi0gICAgMHgxMiwgMHgxMiwgMHg0ZiwgMHhlMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgCi0gICAgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgCi0gICAgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MywgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgCi0gICAgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1MywgMHgzOCwgMHg3ZCwgMHgyMSwgCi0gICAgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMywgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgCi0gICAgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1NiwgMHg5MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgCi0gICAgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNCwgMHhjMCwgCi0gICAgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1OSwgMHhlOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgCi0gICAgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgCi0gICAgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgCi0gICAgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1ZCwgMHg0MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgCi0gICAgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHhjMiwgMHgyNiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgCi0gICAgMHg4NywgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgCi0gICAgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg2MCwgMHg5OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNywgMHhjMCwgMHhmMSwgMHg3NSwgCi0gICAgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzMywgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgCi0gICAgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzNywgMHg0NSwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzNywgMHg1MCwgMHg4OSwgMHgyNCwgCi0gICAgMHgzNywgMHg2MCwgMHgzNywgMHg3ZiwgMHgzNywgMHg5ZSwgMHgzNywgMHhiZCwgMHgzNywgMHhkYywgMHgzNywgMHhmYiwgMHgzOCwgMHgxYSwgMHgzOCwgMHgzOSwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0OCwgMHgxYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgCi0gICAgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MSwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0YiwgMHg3MywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgCi0gICAgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgCi0gICAgMHg4MiwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0ZSwgMHhjYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgCi0gICAgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MywgCi0gICAgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1MiwgMHgyMywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgCi0gICAgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgCi0gICAgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1NSwgMHg3YiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgCi0gICAgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHhjYSwgCi0gICAgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1OCwgMHhkMywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgCi0gICAgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHhjYSwgMHgxOSwgCi0gICAgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1YywgMHgyYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgCi0gICAgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NywgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgCi0gICAgMHgxMiwgMHgxMiwgMHg1ZiwgMHg4MywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgCi0gICAgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHhjMiwgMHhhZiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHhhOSwgCi0gICAgMHgzMiwgMHhmMiwgMHgxYSwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHhiZSwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgxMCwgMHhlNSwgMHhmNSwgMHgzMywgCi0gICAgMHg4MiwgMHhlNywgMHg0MCwgMHgwOSwgMHg4NSwgMHgzMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHhmNiwgMHgwMCwgMHhkMCwgMHhmMSwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgCi0KLS8vIFNlZ21lbnQgIzE1LCBTdGFydCBBZGRyZXNzIDAwZmY0MDAwLCBMZW5ndGggMTUzODEKLTB4ZmYsMHgwMCwweDAwLDB4NDAsMHgxNSwweDNjLAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTQsIDB4N2YsIDB4ZjgsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4MzEsIDB4MGIsIDB4MWEsIAotICAgIDB4NTAsIDB4MWIsIDB4MGEsIDB4NTAsIDB4N2UsIDB4MTQsIDB4NDAsIDB4MWIsIDB4MDIsIDB4NDAsIDB4NmEsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4NmYsIDB4ZDIsIAotICAgIDB4MDQsIDB4YzIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4N2UsIDB4ZjQsIDB4NDAsIDB4MmMsIDB4MDIsIDB4NDAsIDB4N2MsIDB4MTIsIDB4N2QsIDB4MzAsIDB4ZjUsIAotICAgIDB4MmYsIDB4N2EsIDB4YTEsIDB4MzAsIDB4N2EsIDB4MTEsIDB4NmUsIDB4MTIsIDB4NzUsIDB4Y2EsIDB4MTIsIDB4NDAsIDB4ZGMsIDB4N2UsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjEsIDB4NjAsIDB4MDMsIDB4MTIsIDB4NDMsIDB4ZDQsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4NmYsIDB4ZDIsIDB4YWYsIDB4MDIsIDB4MzAsIAotICAgIDB4MDAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIDB4NDAsIDB4NWYsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTgsIDB4YTksIAotICAgIDB4MjUsIDB4ODcsIDB4MDMsIDB4YTksIDB4ZDUsIDB4ODcsIDB4ZDIsIDB4OTMsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIAotICAgIDB4NDAsIDB4NzgsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTgsIDB4YzIsIDB4OTMsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDgsIDB4MDAsIDB4MjAsIAotICAgIDB4N2UsIDB4NDQsIDB4MDQsIDB4MDAsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4OGUsIDB4MDIsIDB4N2MsIDB4MzAsIDB4N2UsIDB4MDgsIAotICAgIDB4MDEsIDB4NmYsIDB4N2UsIDB4NDQsIDB4MjgsIDB4N2MsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YTAsIDB4MDIsIDB4N2MsIDB4MzAsIAotICAgIDB4N2UsIDB4MDgsIDB4MDAsIDB4NmYsIDB4N2UsIDB4NDQsIDB4MDEsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTMsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YjIsIDB4MDIsIAotICAgIDB4N2MsIDB4MzAsIDB4NzUsIDB4NmQsIDB4MjAsIDB4NzUsIDB4NmMsIDB4MzAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4NzUsIDB4NmEsIDB4NTgsIDB4NzUsIAotICAgIDB4NmIsIDB4MDgsIDB4NzUsIDB4NjcsIDB4MDgsIDB4NzUsIDB4NjksIDB4MDEsIDB4NzUsIDB4ODksIDB4MDEsIDB4NzUsIDB4OGEsIDB4MDEsIDB4NzUsIDB4OGMsIAotICAgIDB4MDAsIDB4ZDIsIDB4OGMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDIsIDB4N2EsIDB4MDUsIDB4NTgsIDB4ODksIDB4ZjQsIDB4NzUsIDB4YjcsIDB4N2YsIDB4NzUsIAotICAgIDB4YjgsIDB4N2YsIDB4NzUsIDB4YjMsIDB4MDcsIDB4NzUsIDB4YjIsIDB4MDcsIDB4ZDIsIDB4YTksIDB4MjIsIDB4ZDIsIDB4OTIsIDB4ZTQsIDB4ZDUsIDB4ZTAsIAotICAgIDB4ZmQsIDB4YzIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MmYsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjIsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4N2UsIDB4MGIsIDB4MjAsIAotICAgIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZjYsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4ODAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4NzQsIDB4MDcsIDB4YTksIDB4MjAsIDB4MzAsIDB4MGIsIDB4YTksIDB4MzUsIDB4MzAsIDB4MDUsIDB4YmUsIDB4MjAsIDB4MDEsIDB4MjgsIDB4MDIsIDB4NzQsIAotICAgIDB4MGYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4YTksIDB4MzMsIDB4MzAsIDB4MTgsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NzQsIAotICAgIDB4MjgsIDB4YTksIDB4MjAsIDB4MzAsIDB4MDIsIDB4NzQsIDB4MjAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIAotICAgIDB4MGMsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4MGMsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4ZTQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NTQsIDB4MDgsIDB4MTksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIAotICAgIDB4MjIsIDB4NDEsIDB4YTUsIDB4ODksIDB4MjQsIDB4NDEsIDB4YjUsIDB4NDEsIDB4ZDQsIDB4NDEsIDB4ZjMsIDB4NDIsIDB4MTIsIDB4NDIsIDB4MzEsIDB4NDIsIAotICAgIDB4NTAsIDB4NDIsIDB4NmYsIDB4NDIsIDB4OGUsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MjAsIDB4YzIsIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDksIAotICAgIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2YsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGYsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4OWYsIDB4MjIsIDB4YzIsIDB4MTEsIDB4YzIsIDB4MTksIDB4YzIsIDB4MjEsIDB4YzIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MGQsIDB4ZTMsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTEsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YTEsIDB4MjIsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MWEsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MGEsIDB4N2UsIDB4MDQsIDB4MTEsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODMsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTMsIDB4N2EsIDB4MDcsIDB4MDEsIAotICAgIDB4YTMsIDB4MjIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MWIsIDB4YzIsIDB4MjMsIDB4YzIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTUsIDB4ZTMsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NzUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTUsIAotICAgIDB4MjIsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MWMsIDB4YzIsIDB4MjQsIDB4YzIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIAotICAgIDB4NzcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTcsIDB4MjIsIAotICAgIDB4YzIsIDB4MTUsIDB4YzIsIDB4MWQsIDB4YzIsIDB4MjUsIDB4YzIsIDB4MGQsIDB4N2UsIDB4MDQsIDB4MWQsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzksIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODksIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTksIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTksIDB4MjIsIDB4YzIsIAotICAgIDB4MTYsIDB4YzIsIDB4MWUsIDB4YzIsIDB4MjYsIDB4YzIsIDB4MGUsIDB4N2UsIDB4MDQsIDB4MjEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2IsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4OGIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWIsIDB4MjIsIDB4YzIsIDB4MTcsIAotICAgIDB4YzIsIDB4MWYsIDB4YzIsIDB4MjcsIDB4YzIsIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjUsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2QsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4OGQsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWQsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIAotICAgIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NDIsIDB4YjgsIDB4ODksIDB4MjQsIDB4NDIsIDB4YzgsIDB4NDIsIDB4ZTksIDB4NDMsIDB4MGEsIDB4NDMsIDB4MmIsIAotICAgIDB4NDMsIDB4NGMsIDB4NDMsIDB4NmQsIDB4NDMsIDB4OGUsIDB4NDMsIDB4YWYsIDB4MzAsIDB4NTAsIDB4MDcsIDB4MjAsIDB4NjgsIDB4MDQsIDB4YzIsIDB4MjgsIAotICAgIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDAsIDB4MDcsIDB4MjAsIDB4NjAsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDgsIDB4MDcsIDB4MjAsIAotICAgIDB4NTgsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MjgsIDB4MjIsIDB4MzAsIDB4NTEsIDB4MDcsIDB4MjAsIDB4NjksIDB4MDQsIDB4YzIsIAotICAgIDB4MjksIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDEsIDB4MDcsIDB4MjAsIDB4NjEsIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDksIDB4MDcsIAotICAgIDB4MjAsIDB4NTksIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MjksIDB4MjIsIDB4MzAsIDB4NTIsIDB4MDcsIDB4MjAsIDB4NmEsIDB4MDQsIAotICAgIDB4YzIsIDB4MmEsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDIsIDB4MDcsIDB4MjAsIDB4NjIsIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGEsIAotICAgIDB4MDcsIDB4MjAsIDB4NWEsIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmEsIDB4MjIsIDB4MzAsIDB4NTMsIDB4MDcsIDB4MjAsIDB4NmIsIAotICAgIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDMsIDB4MDcsIDB4MjAsIDB4NjMsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MGMsIDB4MzAsIAotICAgIDB4NGIsIDB4MDcsIDB4MjAsIDB4NWIsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmIsIDB4MjIsIDB4MzAsIDB4NTQsIDB4MDcsIDB4MjAsIAotICAgIDB4NmMsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDQsIDB4MDcsIDB4MjAsIDB4NjQsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MGMsIAotICAgIDB4MzAsIDB4NGMsIDB4MDcsIDB4MjAsIDB4NWMsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmMsIDB4MjIsIDB4MzAsIDB4NTUsIDB4MDcsIAotICAgIDB4MjAsIDB4NmQsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDUsIDB4MDcsIDB4MjAsIDB4NjUsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIAotICAgIDB4MGMsIDB4MzAsIDB4NGQsIDB4MDcsIDB4MjAsIDB4NWQsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmQsIDB4MjIsIDB4MzAsIDB4NTYsIAotICAgIDB4MDcsIDB4MjAsIDB4NmUsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDYsIDB4MDcsIDB4MjAsIDB4NjYsIDB4MDQsIDB4YzIsIDB4MmUsIAotICAgIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGUsIDB4MDcsIDB4MjAsIDB4NWUsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmUsIDB4MjIsIDB4MzAsIAotICAgIDB4NTcsIDB4MDcsIDB4MjAsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MmYsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDcsIDB4MDcsIDB4MjAsIDB4NjcsIDB4MDQsIDB4YzIsIAotICAgIDB4MmYsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGYsIDB4MDcsIDB4MjAsIDB4NWYsIDB4MDQsIDB4YzIsIDB4MmYsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmYsIDB4MjIsIAotICAgIDB4NDQsIDB4MzgsIDB4NDMsIDB4ZTUsIDB4YmUsIDB4YjAsIDB4MDIsIDB4NDAsIDB4MDEsIDB4MjIsIDB4MjMsIDB4MGEsIDB4NWIsIDB4NDksIDB4NTUsIDB4NDMsIAotICAgIDB4ZDAsIDB4OTksIDB4NTQsIDB4ZDMsIDB4MjIsIDB4YTksIDB4YzUsIDB4ODcsIDB4MTIsIDB4NDQsIDB4NDMsIDB4N2UsIDB4MDQsIDB4MDUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZDcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZDksIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGQsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MDQsIDB4NzQsIDB4YWQsIDB4N2EsIDB4MDUsIDB4NjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4NzUsIDB4ZTEsIDB4MWYsIAotICAgIDB4NzUsIDB4ZTQsIDB4MDQsIDB4NzUsIDB4ZjQsIDB4MDQsIDB4NzUsIDB4ZjEsIDB4MDIsIDB4NzUsIDB4ZTEsIDB4MDMsIDB4NzUsIDB4ZTQsIDB4MDQsIDB4NzUsIAotICAgIDB4ZjQsIDB4MDQsIDB4NDMsIDB4YTIsIDB4MWMsIDB4MTIsIDB4NDAsIDB4ZWIsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4OWEsIDB4MGIsIDB4MjAsIAotICAgIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZjYsIDB4ZDIsIDB4YTgsIDB4MjIsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4NDQsIDB4NDMsIDB4ZDIsIDB4OTIsIAotICAgIDB4YzIsIDB4YTgsIDB4MjIsIDB4NzUsIDB4YTMsIDB4MDAsIDB4NTMsIDB4YTIsIDB4MDMsIDB4NzUsIDB4YzEsIDB4MDAsIDB4NTMsIDB4YzAsIDB4MDMsIDB4N2UsIAotICAgIDB4MDAsIDB4MDUsIDB4N2EsIDB4MDEsIDB4ZjEsIDB4NDMsIDB4ZjQsIDB4ODAsIDB4NDMsIDB4ZTQsIDB4ODAsIDB4ZTUsIDB4ZjIsIDB4NTQsIDB4N2YsIDB4NDQsIAotICAgIDB4MDgsIDB4ZjUsIDB4ZjIsIDB4ZTUsIDB4ZTIsIDB4NTQsIDB4N2YsIDB4NDQsIDB4MDgsIDB4ZjUsIDB4ZTIsIDB4NzUsIDB4ZTEsIDB4MTAsIDB4YTUsIDB4ZDgsIAotICAgIDB4ZTEsIDB4MjIsIDB4Y2EsIDB4MDksIDB4MTIsIDB4MzAsIDB4MjAsIDB4MTAsIDB4MDEsIDB4MTIsIDB4ZDUsIDB4NjcsIDB4MWUsIDB4NjMsIDB4NjksIDB4MDEsIAotICAgIDB4N2UsIDB4MDAsIDB4NmEsIDB4MmUsIDB4MDEsIDB4NjksIDB4YTUsIDB4ZTYsIDB4ZjUsIDB4NjcsIDB4ODAsIDB4MTIsIDB4MjAsIDB4MDIsIDB4MWUsIDB4NzUsIAotICAgIDB4NjksIDB4MDAsIDB4ODUsIDB4NmEsIDB4NjcsIDB4ZDIsIDB4MDIsIDB4NzQsIDB4MDAsIDB4ODAsIDB4MGQsIDB4MzAsIDB4MDIsIDB4MGYsIDB4YzIsIDB4MDIsIAotICAgIDB4N2UsIDB4MDAsIDB4NmMsIDB4MmUsIDB4MDEsIDB4NjksIDB4YTUsIDB4ZTYsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4NDIsIDB4OTAsIDB4ZGEsIDB4MDksIDB4MzIsIAotICAgIDB4YzAsIDB4ZDAsIDB4YzAsIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4ZDIsIDB4MDEsIAotICAgIDB4NzUsIDB4MzEsIDB4ODksIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIAotICAgIDB4MDMsIDB4MDIsIDB4NDUsIDB4NGYsIDB4MjAsIDB4NzgsIDB4NWEsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIAotICAgIDB4MDIsIDB4NDUsIDB4NjcsIDB4MjAsIDB4NzksIDB4NGIsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIAotICAgIDB4NDUsIDB4N2YsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4OTcsIDB4MjAsIDB4N2EsIAotICAgIDB4MzAsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4YWYsIDB4YTUsIDB4MGEsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4YzcsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIAotICAgIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4ZGYsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIAotICAgIDB4ZjcsIDB4MzAsIDB4MDQsIDB4MGMsIDB4YzIsIDB4MDQsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIAotICAgIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIDB4MzIsIDB4NzUsIAotICAgIDB4MzEsIDB4ODAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIAotICAgIDB4MmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4NmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIAotICAgIDB4YWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4ZWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIAotICAgIDB4MmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIDB4NmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIAotICAgIDB4YWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIDB4ZWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4MTAsIAotICAgIDB4MDgsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NDksIDB4MzAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MDgsIAotICAgIDB4MjIsIDB4MzAsIDB4MzAsIDB4NDksIDB4ZDIsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YWYsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NmYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGQsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzAsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzAsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OGYsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YWYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YWYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OGYsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MDUsIDB4NDgsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NmYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGQsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MGQsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MDksIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NDYsIDB4N2YsIAotICAgIDB4MjIsIDB4ZDIsIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2YsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmYsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YmYsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4MzgsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTAsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDAsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YmYsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDAsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NDcsIDB4ZTMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzgsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTAsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NDcsIAotICAgIDB4ZTMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NDksIDB4MzAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NjgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjAsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjAsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTgsIDB4MTIsIAotICAgIDB4NDIsIDB4YzgsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NDgsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MDksIDB4MDEsIDB4MjIsIDB4MjAsIDB4MjksIDB4MDMsIDB4ZDIsIDB4MDksIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODEsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjksIDB4MDMsIAotICAgIDB4ZDIsIDB4MDksIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NGMsIDB4ODgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MDksIDB4MjIsIDB4MzAsIDB4MzEsIDB4NDksIDB4ZDIsIDB4NzEsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjEsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGEsIDB4N2EsIAotICAgIDB4MDUsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzEsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MTEsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzEsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzEsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTEsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjEsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTEsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGEsIDB4N2EsIDB4MDUsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzEsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTEsIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MTEsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MGQsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NDksIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MGQsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODEsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzEsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzEsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzEsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDEsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NGIsIDB4M2IsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGIsIDB4M2IsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGMsIDB4ODgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjksIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NTksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4MTIsIDB4NDIsIDB4ZTksIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGIsIAotICAgIDB4OGQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGEsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmEsIDB4MDMsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODIsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmEsIDB4MDMsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NGYsIDB4ZTAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGEsIAotICAgIDB4MjIsIDB4MzAsIDB4MzIsIDB4NDksIDB4ZDIsIDB4NzIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjMsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NzMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTUsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzIsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzIsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YjMsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YjMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTMsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MDUsIDB4NGMsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTUsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MTUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NGQsIDB4MmYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGEsIDB4N2UsIDB4MDQsIDB4MTEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODMsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzMsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDIsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YzMsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDIsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzMsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDIsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NGUsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTIsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGUsIAotICAgIDB4OTMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGYsIDB4ZTAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjIsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWEsIDB4MTIsIAotICAgIDB4NDMsIDB4MGEsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGUsIDB4ZTUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGIsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmIsIDB4MDMsIDB4ZDIsIDB4MGIsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODMsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmIsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NTMsIDB4MzgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MzAsIDB4MzMsIDB4NDksIDB4ZDIsIDB4NzMsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjUsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGUsIDB4N2EsIAotICAgIDB4MDUsIDB4NGUsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzUsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MTksIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzMsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzMsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjUsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTUsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGUsIDB4N2EsIDB4MDUsIDB4NGUsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzUsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTksIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MTksIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTUsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTAsIDB4ODcsIDB4MjIsIDB4ZDIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODUsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzUsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDMsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzUsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTMsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDMsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzUsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDMsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTEsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTMsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTEsIDB4ZWIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTMsIDB4MzgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmIsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4MTIsIDB4NDMsIDB4MmIsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTIsIAotICAgIDB4M2QsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGMsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODQsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NTYsIDB4OTAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGMsIAotICAgIDB4MjIsIDB4MzAsIDB4MzQsIDB4NDksIDB4ZDIsIDB4NzQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjcsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NzcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MWQsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzQsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzQsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YjcsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YjcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTcsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MDUsIDB4NTAsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MWQsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MWQsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTksIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTMsIDB4ZGYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODcsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzcsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YzcsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTQsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDQsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzcsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDQsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NTUsIDB4NDMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTQsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTUsIAotICAgIDB4NDMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTYsIDB4OTAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjQsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4MTIsIAotICAgIDB4NDMsIDB4NGMsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTUsIDB4OTUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGQsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmQsIDB4MDMsIDB4ZDIsIDB4MGQsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODUsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmQsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NTksIDB4ZTgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MzAsIDB4MzUsIDB4NDksIDB4ZDIsIDB4NzUsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTksIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjksIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTIsIDB4N2EsIAotICAgIDB4MDUsIDB4NTIsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MjEsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzUsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzUsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjksIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjksIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTksIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTIsIDB4N2EsIDB4MDUsIDB4NTIsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjEsIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MjEsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MWQsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTcsIDB4MzcsIDB4MjIsIDB4ZDIsIDB4MGQsIDB4N2UsIDB4MDQsIDB4MWQsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODksIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzksIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzksIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2QsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzksIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDUsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTgsIDB4OWIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2QsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTgsIDB4OWIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTksIDB4ZTgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmQsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIDB4MTIsIDB4NDMsIDB4NmQsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTgsIAotICAgIDB4ZWQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGUsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODYsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NWQsIDB4NDAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGUsIAotICAgIDB4MjIsIDB4MzAsIDB4MzYsIDB4NDksIDB4ZDIsIDB4NzYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmIsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4N2IsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjUsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzYsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzYsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OWIsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YmIsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YmIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWIsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MDUsIDB4NTQsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2IsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjUsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MjUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MjEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NWEsIDB4OGYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGUsIDB4N2UsIDB4MDQsIDB4MjEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2IsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGIsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDYsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTYsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDYsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4Y2IsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDYsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NWIsIDB4ZjMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTYsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWIsIAotICAgIDB4ZjMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NWQsIDB4NDAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4MTIsIAotICAgIDB4NDMsIDB4OGUsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWMsIDB4NDUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGYsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmYsIDB4MDMsIDB4ZDIsIDB4MGYsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODcsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmYsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NjAsIDB4OTgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MzAsIDB4MzcsIDB4NDksIDB4ZDIsIDB4NzcsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OWQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmQsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTYsIDB4N2EsIAotICAgIDB4MDUsIDB4NTYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MjksIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzcsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzcsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YmQsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWQsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTYsIDB4N2EsIDB4MDUsIDB4NTYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjksIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MjksIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MjUsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NWQsIDB4ZTcsIDB4MjIsIDB4ZDIsIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4N2QsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGQsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4Y2QsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4Y2QsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4Y2QsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDcsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NWYsIDB4NGIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWYsIDB4NGIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NjAsIDB4OTgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmYsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjcsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWYsIDB4MTIsIDB4NDMsIDB4YWYsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWYsIAotICAgIDB4OWQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4N2MsIAotICAgIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NjAsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjAsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NTgsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIAotICAgIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjksIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIAotICAgIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmEsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjIsIDB4ODAsIDB4MDIsIDB4YzIsIAotICAgIDB4NjIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWEsIDB4MDIsIDB4NjIsIAotICAgIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NjMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWIsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmMsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjQsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NmQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjUsIDB4ODAsIAotICAgIDB4MDIsIDB4YzIsIDB4NjUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIAotICAgIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIAotICAgIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIAotICAgIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NmYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjcsIDB4YTUsIAotICAgIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWYsIDB4MDIsIDB4NjIsIDB4N2YsIDB4NTQsIAotICAgIDB4ZjAsIDB4YzQsIDB4YTUsIDB4ZmYsIDB4YzQsIDB4YTUsIDB4NGYsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4MjIsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MjksIDB4ZTMsIDB4Y2EsIDB4NzksIAotICAgIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDIsIDB4N2UsIAotICAgIDB4NjQsIDB4MDAsIDB4MDIsIDB4MDIsIDB4NjIsIDB4ZGUsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MjksIAotICAgIDB4ZTMsIDB4Y2EsIDB4NzksIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4NjAsIAotICAgIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDMsIDB4N2UsIDB4NjQsIDB4MDAsIDB4MDMsIDB4MDIsIDB4NjIsIDB4ZGUsIDB4ZDIsIDB4MDQsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4MjYsIDB4YmUsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MmUsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2UsIDB4NzksIDB4YTAsIDB4N2EsIDB4MDksIDB4YTAsIDB4MGIsIDB4MDQsIDB4MGIsIDB4NzQsIDB4YmQsIDB4MDQsIAotICAgIDB4NjgsIDB4MjMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjUsIDB4NDYsIDB4MmQsIDB4MjYsIDB4N2EsIDB4MjUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4ZGEsIDB4MTksIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OWEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4ZGEsIDB4MTksIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDcsIDB4NDgsIDB4YjYsIDB4NDYsIDB4MjUsIDB4NDcsIAotICAgIDB4MWMsIDB4NDksIDB4MTUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDgsIDB4MWIsIDB4NDQsIDB4YzYsIDB4NDksIDB4NTksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDksIDB4NjAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGMsIDB4MGUsIDB4NDksIDB4N2QsIDB4NGEsIAotICAgIDB4NzQsIDB4NGMsIDB4NmQsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGIsIDB4NzMsIDB4NDQsIDB4YzYsIDB4NGMsIDB4YjEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGMsIDB4YjgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGYsIDB4NjYsIDB4NGMsIDB4ZDUsIDB4NGQsIAotICAgIDB4Y2MsIDB4NGYsIDB4YzUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGUsIDB4Y2IsIDB4NDQsIDB4YzYsIDB4NTAsIDB4MDksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTAsIDB4MTAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTIsIDB4YmUsIDB4NTAsIDB4MmQsIDB4NTEsIAotICAgIDB4MjQsIDB4NTMsIDB4MWQsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTIsIDB4MjMsIDB4NDQsIDB4YzYsIDB4NTMsIDB4NjEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTMsIDB4NjgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTYsIDB4MTYsIDB4NTMsIDB4ODUsIDB4NTQsIAotICAgIDB4N2MsIDB4NTYsIDB4NzUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTUsIDB4N2IsIDB4NDQsIDB4YzYsIDB4NTYsIDB4YjksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTYsIDB4YzAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTksIDB4NmUsIDB4NTYsIDB4ZGQsIDB4NTcsIAotICAgIDB4ZDQsIDB4NTksIDB4Y2QsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTgsIDB4ZDMsIDB4NDQsIDB4YzYsIDB4NWEsIDB4MTEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWEsIDB4MTgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWMsIDB4YzYsIDB4NWEsIDB4MzUsIDB4NWIsIAotICAgIDB4MmMsIDB4NWQsIDB4MjUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWMsIDB4MmIsIDB4NDQsIDB4YzYsIDB4NWQsIDB4NjksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWQsIDB4NzAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NjAsIDB4MWUsIDB4NWQsIDB4OGQsIDB4NWUsIAotICAgIDB4ODQsIDB4NjAsIDB4N2QsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWYsIDB4ODMsIDB4NDQsIDB4YzYsIDB4NjAsIDB4YzEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NjAsIDB4YzgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4Y2EsIDB4MjksIDB4MWUsIDB4NTAsIDB4NDAsIAotICAgIDB4MGQsIDB4N2UsIDB4NTQsIDB4MGIsIDB4MTAsIDB4OWMsIDB4YjUsIDB4YTQsIDB4MmUsIDB4NTQsIDB4NjUsIDB4NDgsIDB4ODksIDB4NTQsIDB4N2UsIDB4MzksIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZTksIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIAotICAgIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIAotICAgIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIAotICAgIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIAotICAgIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIAotICAgIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIAotICAgIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIAotICAgIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4ZGEsIDB4MjksIDB4MjIsIDB4MWUsIDB4NTAsIDB4NDAsIDB4MGQsIDB4N2UsIAotICAgIDB4NTQsIDB4MGIsIDB4MWMsIDB4OWMsIDB4YjUsIDB4YTQsIDB4MmUsIDB4NTQsIDB4NjYsIDB4MTYsIDB4ODksIDB4NTQsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2EsIAotICAgIDB4MzksIDB4MDAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZTksIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIAotICAgIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIAotICAgIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIAotICAgIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIAotICAgIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIAotICAgIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIAotICAgIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIAotICAgIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIAotICAgIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIAotICAgIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIAotICAgIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIAotICAgIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIAotICAgIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIAotICAgIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIAotICAgIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIAotICAgIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4MjIsIDB4NjcsIDB4OTYsIDB4NjksIDB4NjMsIDB4NjksIAotICAgIDB4N2IsIDB4NmEsIDB4NDksIDB4NmEsIDB4ZTQsIDB4NmIsIDB4OGUsIDB4NmIsIDB4YTksIDB4NmMsIDB4M2IsIDB4NmIsIDB4YzQsIDB4NmMsIDB4MDUsIDB4NjksIAotICAgIDB4OTYsIDB4NjksIDB4YWEsIDB4N2MsIDB4YjMsIDB4YmUsIDB4YjAsIDB4MGIsIDB4MjgsIDB4MTQsIDB4NzUsIDB4MzEsIDB4MDksIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4NzUsIDB4NmQsIDB4MTAsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4NDMsIDB4ZTEsIDB4YzAsIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4YzAsIDB4YTgsIAotICAgIDB4YzIsIDB4YWYsIDB4MjMsIDB4NmMsIDB4YWEsIDB4MmUsIDB4NTQsIDB4NjcsIDB4NGIsIDB4MGIsIDB4NTgsIDB4NTAsIDB4ODksIDB4NTQsIDB4MDEsIDB4MDIsIAotICAgIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4NzUsIDB4MzEsIDB4YjAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIAotICAgIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzIsIDB4MTksIDB4NDMsIDB4MDAsIDB4MzYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4M2IsIAotICAgIDB4NDksIDB4MzMsIDB4NjcsIDB4Y2IsIDB4MGEsIDB4MjIsIDB4MDksIDB4MzIsIDB4MDAsIDB4MzYsIDB4MDksIDB4YjIsIDB4NjcsIDB4OGUsIDB4YTUsIDB4YmIsIAotICAgIDB4MDAsIDB4MDUsIDB4ZjQsIDB4NTIsIDB4MzMsIDB4ODAsIDB4MDIsIDB4NDIsIDB4MzMsIDB4ODksIDB4MzQsIDB4NjcsIDB4ZGIsIDB4NjgsIDB4MDksIDB4NjgsIAotICAgIDB4MzcsIDB4NjgsIDB4NjUsIDB4NjgsIDB4OTMsIDB4NjgsIDB4YzEsIDB4NjgsIDB4ZWYsIDB4NjksIDB4MWQsIDB4MTIsIDB4NDEsIDB4YjUsIDB4ZDIsIDB4MjgsIAotICAgIDB4ZDIsIDB4MDgsIDB4YzIsIDB4NDAsIDB4YzIsIDB4NDgsIDB4YzIsIDB4MzgsIDB4YzIsIDB4MzAsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4Y2YsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWYsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmYsIAotICAgIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjAsIDB4Y2YsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDEsIDB4ZDQsIDB4ZDIsIDB4MjksIDB4ZDIsIDB4MDksIAotICAgIDB4YzIsIDB4NDEsIDB4YzIsIDB4NDksIDB4YzIsIDB4MzksIDB4YzIsIDB4MzEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzEsIDB4MTIsIDB4NDEsIAotICAgIDB4MTYsIDB4MTIsIDB4NjEsIDB4MDUsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDEsIDB4ZjMsIDB4ZDIsIDB4MmEsIDB4ZDIsIDB4MGEsIDB4YzIsIDB4NDIsIAotICAgIDB4YzIsIDB4NGEsIDB4YzIsIDB4M2EsIDB4YzIsIDB4MzIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzMsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIAotICAgIDB4NjEsIDB4M2IsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4MTIsIDB4ZDIsIDB4MmIsIDB4ZDIsIDB4MGIsIDB4YzIsIDB4NDMsIDB4YzIsIDB4NGIsIAotICAgIDB4YzIsIDB4M2IsIDB4YzIsIDB4MzMsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YjUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzUsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4NzEsIAotICAgIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4MzEsIDB4ZDIsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4NDQsIDB4YzIsIDB4NGMsIDB4YzIsIDB4M2MsIAotICAgIDB4YzIsIDB4MzQsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjcsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzcsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4YTcsIDB4MDIsIDB4NjksIAotICAgIDB4NGIsIDB4MTIsIDB4NDIsIDB4NTAsIDB4ZDIsIDB4MmQsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4NDUsIDB4YzIsIDB4NGQsIDB4YzIsIDB4M2QsIDB4YzIsIDB4MzUsIAotICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjksIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4ZGQsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIAotICAgIDB4NDIsIDB4NmYsIDB4ZDIsIDB4MmUsIDB4ZDIsIDB4MGUsIDB4YzIsIDB4NDYsIDB4YzIsIDB4NGUsIDB4YzIsIDB4M2UsIDB4YzIsIDB4MzYsIDB4NmQsIDB4MDAsIAotICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjIsIDB4MTMsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4OGUsIAotICAgIDB4ZDIsIDB4MmYsIDB4ZDIsIDB4MGYsIDB4YzIsIDB4NDcsIDB4YzIsIDB4NGYsIDB4YzIsIDB4M2YsIDB4YzIsIDB4MzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4ZDYsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4Y2QsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjIsIDB4NDksIDB4MDIsIDB4NjksIDB4NGIsIDB4N2UsIDB4YTAsIDB4ZDAsIDB4N2UsIDB4NjAsIAotICAgIDB4MGYsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MGMsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIAotICAgIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4NTIsIDB4MjMsIDB4NmQsIDB4MDAsIDB4NTksIDB4MDUsIAotICAgIDB4MDAsIDB4NDgsIDB4MTIsIDB4NDEsIDB4N2UsIDB4MTIsIDB4NDEsIDB4OWEsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjMsIDB4N2UsIDB4YjAsIDB4OWMsIDB4MTksIDB4YjIsIDB4MDEsIDB4Y2YsIAotICAgIDB4MTIsIDB4MzEsIDB4ODUsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIAotICAgIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjQsIDB4MTIsIDB4MzUsIDB4M2QsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjksIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzQsIDB4MTksIDB4NDMsIDB4MDAsIDB4M2UsIDB4MTIsIDB4NjksIDB4YzIsIDB4ZDAsIAotICAgIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MGIsIDB4N2MsIDB4YjQsIDB4MjAsIDB4ZTAsIDB4MDQsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MDQsIAotICAgIDB4NDksIDB4MzAsIDB4MDEsIDB4OGYsIDB4N2UsIDB4YTAsIDB4ZDgsIDB4YTUsIDB4ZWYsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MjksIDB4MTIsIDB4NjIsIDB4YjYsIAotICAgIDB4ZGEsIDB4MjksIDB4ZGEsIDB4MGIsIDB4NDAsIDB4NjIsIDB4NzUsIDB4MzEsIDB4YmEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2MsIDB4YjQsIDB4MzAsIDB4ZTAsIAotICAgIDB4MWUsIDB4NmQsIDB4MzMsIDB4NTksIDB4MzAsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzQsIDB4MDksIDB4ZTMsIDB4MGEsIDB4ODIsIDB4N2UsIDB4OTQsIDB4MDQsIAotICAgIDB4MDAsIDB4YWQsIDB4ODksIDB4MmQsIDB4MzksIDB4NTksIDB4MzAsIDB4MDEsIDB4NmYsIDB4NTksIDB4MzAsIDB4MDEsIDB4N2YsIDB4N2MsIDB4YjQsIDB4MzAsIAotICAgIDB4ZTEsIDB4MTAsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NDQsIDB4MDQsIDB4MTksIDB4YjAsIAotICAgIDB4MDAsIDB4MDgsIDB4MGEsIDB4MDIsIDB4MDksIDB4YjAsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjEsIDB4ZjQsIDB4NTIsIDB4MzQsIDB4N2MsIDB4YjIsIDB4MjMsIAotICAgIDB4MGEsIDB4MGIsIDB4Y2EsIDB4MTksIDB4NDksIDB4MDAsIDB4MzAsIDB4ZDUsIDB4OTksIDB4MDQsIDB4ZGEsIDB4MTksIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIAotICAgIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MTIsIDB4NDQsIDB4NDAsIDB4Y2EsIDB4YjgsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIAotICAgIDB4NDQsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4YmYsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZjcsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4Y2EsIDB4YjgsIDB4NzQsIAotICAgIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZGEsIDB4YjgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MGEsIAotICAgIDB4NjIsIDB4MDksIDB4YjYsIDB4NjcsIDB4OGUsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NjgsIDB4MjAsIAotICAgIDB4NDIsIDB4MjcsIDB4Y2EsIDB4YjgsIDB4NzQsIDB4NjEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTksIDB4NDYsIAotICAgIDB4MDEsIDB4YmYsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MTEsIAotICAgIDB4ZjQsIDB4NTIsIDB4MjcsIDB4NzQsIDB4YTEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MzgsIDB4NTksIDB4NDYsIDB4MDEsIAotICAgIDB4YmYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4NzQsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MGEsIDB4NjIsIDB4MDksIDB4YjYsIAotICAgIDB4NjcsIDB4OGUsIDB4YTUsIDB4ZmQsIDB4ZjQsIDB4YTUsIDB4ZmUsIDB4Y2EsIDB4MjgsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4YTUsIDB4ZWUsIDB4NTIsIAotICAgIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MjAsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIDB4ZGEsIDB4MjgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIAotICAgIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MGMsIAotICAgIDB4NDQsIDB4ODAsIDB4Y2EsIDB4YjgsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MmEsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MGEsIDB4NTQsIDB4N2YsIDB4Y2EsIDB4YjgsIAotICAgIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MmEsIDB4ZGEsIDB4YjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDIsIDB4ODAsIAotICAgIDB4MDIsIDB4NTQsIDB4ZmQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIAotICAgIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjgsIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIAotICAgIDB4ODAsIDB4MDQsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDQsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIAotICAgIDB4MjksIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIDB4ODAsIDB4MGIsIDB4YTUsIDB4ZWUsIDB4NTIsIAotICAgIDB4MjksIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NzgsIDB4MDAsIDB4MTIsIDB4NDIsIDB4YWQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIAotICAgIDB4MDAsIDB4MTAsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIDB4MDAsIDB4MTgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NDQsIDB4NDAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZTUsIDB4NmUsIDB4YjQsIDB4MDcsIDB4MjMsIDB4MDksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YjAsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIAotICAgIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZjcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4ZTUsIDB4NmUsIDB4YjQsIDB4MDcsIDB4MTgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NDQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NTQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjQsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4MjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MzIsIDB4MDksIAotICAgIDB4YjMsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzUsIDB4MTIsIDB4NmMsIDB4NWIsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIAotICAgIDB4YzgsIDB4N2MsIDB4NjQsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTMsIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIDB4NjcsIDB4OGUsIDB4ZjQsIDB4NTIsIAotICAgIDB4MzUsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4NmMsIDB4OGMsIDB4NmMsIDB4ZDMsIAotICAgIDB4NmQsIDB4MWEsIDB4NmQsIDB4NjEsIDB4NmQsIDB4YTgsIDB4NmQsIDB4ZWYsIDB4NmUsIDB4MzYsIDB4NmUsIDB4N2QsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4N2YsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OGYsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIAotICAgIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MGQsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIAotICAgIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4N2YsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGYsIDB4MDIsIDB4NDYsIDB4MGYsIDB4N2UsIDB4MTQsIDB4MDksIAotICAgIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODEsIDB4N2UsIAotICAgIDB4MjcsIDB4MDEsIDB4OTEsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIAotICAgIDB4MTQsIDB4MTEsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODEsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4OTEsIDB4MDIsIDB4NDksIDB4NjcsIDB4N2UsIDB4MTQsIDB4MGQsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4NzUsIDB4MzEsIDB4MDIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODMsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTMsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIAotICAgIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTUsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIAotICAgIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODMsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTMsIDB4MDIsIDB4NGMsIDB4YmYsIDB4N2UsIDB4MTQsIDB4MTEsIDB4ZTMsIDB4ODAsIAotICAgIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODUsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTUsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTksIAotICAgIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODUsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTUsIDB4MDIsIAotICAgIDB4NTAsIDB4MTcsIDB4N2UsIDB4MTQsIDB4MTUsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIAotICAgIDB4MDQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTcsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIAotICAgIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MWQsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIAotICAgIDB4MDEsIDB4ODcsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTcsIDB4MDIsIDB4NTMsIDB4NmYsIDB4N2UsIDB4MTQsIDB4MTksIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIAotICAgIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODksIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4MmQsIAotICAgIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjEsIDB4ZTIsIDB4MzgsIAotICAgIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODksIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTksIDB4MDIsIDB4NTYsIDB4YzcsIAotICAgIDB4N2UsIDB4MTQsIDB4MWQsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDYsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIAotICAgIDB4MDEsIDB4OGIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWIsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIAotICAgIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjUsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4OGIsIAotICAgIDB4N2EsIDB4MjcsIDB4MDEsIDB4OWIsIDB4MDIsIDB4NWEsIDB4MWYsIDB4N2UsIDB4MTQsIDB4MjEsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4OGQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4MmQsIDB4MjMsIDB4N2UsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjksIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIAotICAgIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4OGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OWQsIDB4MDIsIDB4NWQsIDB4NzcsIDB4N2UsIDB4MTQsIAotICAgIDB4MjUsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4Y2EsIDB4YjgsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4MzEsIDB4MDIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZTUsIDB4YzAsIAotICAgIDB4NTQsIDB4MDMsIDB4NjgsIDB4MDUsIDB4MTIsIDB4NzUsIDB4Y2QsIDB4ODAsIDB4ZjUsIDB4MzAsIDB4YzIsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIAotICAgIDB4NmYsIDB4ZDksIDB4ODAsIDB4MTQsIDB4MzAsIDB4YzMsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmUsIDB4ZmQsIDB4ODAsIDB4MDksIDB4MzAsIAotICAgIDB4YzQsIDB4MDYsIDB4NzUsIDB4ZjEsIDB4MDIsIDB4MTIsIDB4NzAsIDB4ZTksIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4YjgsIDB4MzIsIDB4NzUsIDB4MzEsIDB4MTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIDB4NTksIDB4YzIsIDB4YzMsIDB4YTksIDB4MjEsIDB4ZTIsIDB4NWMsIDB4ZTUsIAotICAgIDB4ZTUsIDB4NTQsIDB4YzAsIDB4NjgsIDB4NGYsIDB4ZTUsIDB4ZTYsIDB4NmMsIDB4YWEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGIsIDB4MmQsIDB4MzUsIDB4YmUsIAotICAgIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZGIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZDksIDB4N2QsIDB4NDMsIDB4MmQsIAotICAgIDB4NDUsIDB4YmUsIDB4NDQsIDB4MDksIDB4ZTIsIDB4MzgsIDB4NDAsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZDksIDB4NzUsIDB4MzEsIDB4MTEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NzEsIDB4YjgsIDB4YTksIDB4MjEsIDB4ZTUsIDB4MWYsIDB4YTksIDB4ZDQsIAotICAgIDB4ZTQsIDB4YTksIDB4MjQsIDB4ZTQsIDB4ZmMsIDB4YzIsIDB4YzMsIDB4YTksIDB4MjEsIDB4ZTIsIDB4M2IsIDB4ZTUsIDB4ZTUsIDB4NTQsIDB4YzAsIDB4NzgsIAotICAgIDB4YjQsIDB4MTIsIDB4NzQsIDB4NWEsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MGIsIDB4MjIsIDB4ODAsIDB4MjksIDB4ODAsIDB4NTgsIDB4NzUsIAotICAgIDB4MzEsIDB4MTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ODAsIDB4ZWQsIDB4NzUsIDB4MzEsIDB4MTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4YjEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDksIDB4ZTMsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NzEsIDB4YjgsIDB4N2UsIDB4MzQsIDB4MDUsIDB4ZTMsIAotICAgIDB4N2QsIDB4NTQsIDB4MmQsIDB4NDMsIDB4ODAsIDB4YTEsIDB4ZTUsIDB4ZTUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MTIsIDB4NzUsIDB4MzEsIDB4MTMsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZmYsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZmYsIDB4ODAsIDB4YTcsIDB4NzUsIDB4MzEsIAotICAgIDB4MTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MmEsIDB4MDMsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MDMsIDB4YTksIDB4ZDcsIAotICAgIDB4ZTQsIDB4YTksIDB4MjcsIDB4ZTQsIDB4ZmMsIDB4ODAsIDB4OWQsIDB4NzUsIDB4MzEsIDB4MTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MmEsIAotICAgIDB4MDcsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MDcsIDB4ODAsIDB4ZTUsIDB4NzUsIDB4MzEsIDB4MTgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIAotICAgIDB4MDksIDB4Y2EsIDB4MzksIDB4Y2EsIDB4MmIsIDB4YzIsIDB4YzIsIDB4YTksIDB4MjEsIDB4ZjIsIDB4NTIsIDB4ZTUsIDB4ZjUsIDB4MzMsIDB4ODIsIDB4ZTcsIAotICAgIDB4NDAsIDB4NDQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4NTQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4MzUsIDB4NDAsIDB4NDMsIDB4N2EsIDB4MzcsIAotICAgIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGQsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDUsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NTIsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGQsIDB4N2QsIDB4NDUsIDB4MTIsIDB4NzMsIDB4MTYsIDB4YTksIDB4MjAsIDB4ZjUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4MTksIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4OTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4ODEsIDB4ZjcsIDB4N2EsIDB4OTEsIDB4ZjYsIDB4ZTUsIAotICAgIDB4ZjUsIDB4MzMsIDB4ODIsIDB4ZTcsIDB4NTAsIDB4YmMsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MDksIDB4MjIsIDB4ODAsIDB4NDEsIDB4ODAsIAotICAgIDB4NjQsIDB4MmQsIDB4NTMsIDB4NmQsIDB4MzMsIDB4NzAsIDB4YjcsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZGQsIDB4YTksIDB4MzIsIDB4ZjIsIDB4ZGYsIDB4ODUsIDB4MzAsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MDAsIAotICAgIDB4ODAsIDB4ZDQsIDB4Y2EsIDB4NTksIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NzMsIDB4MTYsIDB4N2UsIDB4MzQsIDB4MDEsIAotICAgIDB4ZTMsIDB4N2QsIDB4NTQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGQsIDB4MTIsIDB4NzMsIDB4MTYsIDB4ZGEsIDB4NDksIDB4ODAsIDB4OTksIAotICAgIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MWYsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZWYsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZWYsIAotICAgIDB4ODAsIDB4OWQsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZjcsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZjcsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIAotICAgIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4ODAsIDB4OGEsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZjMsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZjMsIDB4ODAsIAotICAgIDB4ZWIsIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MWYsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MGYsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIAotICAgIDB4MGYsIDB4ODAsIDB4MzQsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MTcsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIDB4MTcsIDB4YTksIDB4ZDcsIDB4ZjQsIAotICAgIDB4YTksIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4ODAsIDB4MjEsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MTMsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIDB4MTMsIAotICAgIDB4ODAsIDB4ZWIsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzUsIDB4MzEsIDB4MjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIAotICAgIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4YzIsIDB4YzQsIDB4YTksIDB4MjEsIDB4ZjIsIDB4YjYsIDB4ZTUsIDB4ZjUsIDB4MzMsIDB4NzIsIDB4ZTcsIAotICAgIDB4NDAsIDB4ZTAsIDB4N2UsIDB4MGQsIDB4NDYsIDB4N2UsIDB4MWQsIDB4NGEsIDB4N2UsIDB4MmQsIDB4NGUsIDB4N2UsIDB4M2QsIDB4NTIsIDB4N2UsIDB4ODUsIAotICAgIDB4NTYsIDB4N2QsIDB4OTAsIDB4NGQsIDB4OTEsIDB4NGQsIDB4OTIsIDB4NGQsIDB4OTMsIDB4NGQsIDB4OTQsIDB4NGQsIDB4OTUsIDB4NGQsIDB4OTYsIDB4NGQsIAotICAgIDB4OTcsIDB4NGQsIDB4OTgsIDB4NjgsIDB4NzIsIDB4N2EsIDB4MTEsIDB4ZjMsIDB4N2EsIDB4MDEsIDB4ZjMsIDB4N2EsIDB4MzEsIDB4ZjMsIDB4N2EsIDB4MjEsIAotICAgIDB4ZjMsIDB4N2EsIDB4NTEsIDB4ZjMsIDB4N2EsIDB4NDEsIDB4ZjMsIDB4N2EsIDB4NzEsIDB4ZjMsIDB4N2EsIDB4NjEsIDB4ZjMsIDB4N2EsIDB4OTEsIDB4ZjMsIAotICAgIDB4N2EsIDB4ODEsIDB4ZjMsIDB4MzAsIDB4N2IsIDB4MWEsIDB4N2EsIDB4YjEsIDB4ZjMsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4N2EsIDB4ZDEsIDB4ZjMsIDB4N2EsIAotICAgIDB4YzEsIDB4ZjMsIDB4N2EsIDB4ZjEsIDB4ZjMsIDB4N2EsIDB4ZTEsIDB4ZjMsIDB4N2QsIDB4NzgsIDB4N2EsIDB4ZjEsIDB4ZjMsIDB4N2EsIDB4ZTEsIDB4ZjMsIAotICAgIDB4YTksIDB4MzAsIDB4ZjUsIDB4MDMsIDB4MDIsIDB4NzAsIDB4ZDYsIDB4NzUsIDB4MzEsIDB4MjksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4N2IsIDB4MGIsIAotICAgIDB4NzUsIDB4MzEsIDB4MGEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MGEsIDB4ODAsIDB4MDksIDB4NzUsIDB4MzEsIDB4MTIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MTIsIDB4NmQsIDB4MDAsIDB4N2QsIDB4MTAsIDB4N2EsIDB4MGQsIDB4NDYsIDB4N2EsIDB4MGQsIDB4NGEsIDB4N2EsIDB4MGQsIAotICAgIDB4NGUsIDB4N2EsIDB4MGQsIDB4NTIsIDB4N2EsIDB4MDUsIDB4NTYsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4MWUsIDB4YjAsIAotICAgIDB4NDAsIDB4MGMsIDB4N2UsIDB4YTAsIDB4MGEsIDB4YTQsIDB4N2UsIDB4MDQsIDB4NzIsIDB4ZmIsIDB4OWQsIDB4MDUsIDB4ODksIDB4MDQsIDB4N2UsIDB4YTEsIAotICAgIDB4ZTMsIDB4N2EsIDB4MzksIDB4YTAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZWEsIDB4YjQsIDB4NDAsIDB4ZTMsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4MjIsIDB4MWUsIDB4YjAsIDB4NDAsIDB4MGMsIAotICAgIDB4N2UsIDB4YTAsIDB4MGEsIDB4YTQsIDB4N2UsIDB4MDQsIDB4NzQsIDB4NTksIDB4OWQsIDB4MDUsIDB4ODksIDB4MDQsIDB4N2UsIDB4MzksIDB4YTAsIDB4N2EsIAotICAgIDB4YTEsIDB4ZjMsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZWEsIDB4YjQsIDB4NDAsIDB4ZTMsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGIsIAotICAgIDB4NGQsIDB4MzMsIDB4NjgsIDB4M2IsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZDcsIDB4N2UsIDB4NTQsIDB4MDksIDB4ZTMsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MzUsIAotICAgIDB4NDAsIDB4MDIsIDB4N2QsIDB4MzUsIDB4Y2EsIDB4MzksIDB4N2UsIDB4NjUsIDB4NjEsIDB4OTksIDB4NjQsIDB4ZGEsIDB4MzksIDB4N2UsIDB4MDcsIDB4MDEsIAotICAgIDB4ZGIsIDB4OWQsIDB4MDMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGIsIDB4MmUsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4YmUsIAotICAgIDB4MzQsIDB4MDksIDB4ZTIsIDB4MjgsIDB4YzcsIDB4N2UsIDB4MzQsIDB4MDUsIDB4ZTMsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4ODAsIDB4YmQsIDB4ZDIsIAotICAgIDB4YWYsIDB4MjIsIDB4NzUsIDB4MzEsIDB4NTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTUsIDB4NjMsIDB4ODAsIDB4MTEsIDB4NzUsIDB4MzEsIDB4NTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGIsIDB4MDgsIDB4MTAsIDB4MGIsIDB4MDUsIDB4OWUsIDB4MzQsIDB4MDAsIDB4MDIsIDB4MjgsIDB4NGQsIDB4N2MsIDB4YjIsIAotICAgIDB4MjAsIDB4ZTcsIDB4MjcsIDB4NTQsIDB4MDcsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NmMsIDB4N2MsIDB4N2MsIDB4YjIsIDB4NTQsIDB4NzgsIAotICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4N2MsIDB4MmIsIDB4OWQsIDB4MTMsIDB4NDAsIDB4MWEsIDB4NjgsIDB4MTIsIDB4N2EsIDB4MTUsIDB4NjMsIDB4N2EsIDB4MjUsIAotICAgIDB4NjUsIDB4N2UsIDB4NjQsIDB4NzUsIDB4MzcsIDB4N2EsIDB4NjUsIDB4NjEsIDB4ODksIDB4MjQsIDB4MDIsIDB4NzUsIDB4NDUsIDB4N2UsIDB4NjQsIDB4NzQsIAotICAgIDB4YWQsIDB4ODAsIDB4ZjIsIDB4MmQsIDB4MTMsIDB4OWQsIDB4MzEsIDB4Y2EsIDB4MzksIDB4N2QsIDB4MzEsIDB4MmQsIDB4MTAsIDB4Y2EsIDB4MTksIDB4Y2EsIAotICAgIDB4MjksIDB4OTksIDB4MjQsIDB4ZGEsIDB4MjksIDB4ZGEsIDB4MDksIDB4ZGEsIDB4MzksIDB4ODAsIDB4YTIsIDB4N2EsIDB4MTUsIDB4NjMsIDB4N2UsIDB4NjQsIAotICAgIDB4NzUsIDB4MjMsIDB4NGQsIDB4MzMsIDB4NzgsIDB4MDksIDB4N2MsIDB4YjIsIDB4MjAsIDB4ZTcsIDB4MmEsIDB4N2UsIDB4NjQsIDB4NzQsIDB4YTIsIDB4N2EsIAotICAgIDB4NjUsIDB4NjEsIDB4MjIsIDB4NzUsIDB4MzEsIDB4NTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MjEsIDB4NjMsIDB4N2UsIDB4MDksIDB4MzAsIDB4MGIsIAotICAgIDB4MDQsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ODksIDB4ODAsIDB4ZDQsIDB4NzUsIDB4MzEsIDB4NTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTUsIDB4NjMsIAotICAgIDB4N2UsIDB4MjUsIDB4NjUsIDB4ODAsIDB4OTAsIDB4NWUsIDB4MjAsIDB4MDcsIDB4NTQsIDB4NzgsIDB4N2UsIDB4NDQsIDB4NzUsIDB4YzEsIDB4MzAsIDB4ZTYsIAotICAgIDB4MTYsIDB4NGQsIDB4MzMsIDB4NjgsIDB4MjYsIDB4MWIsIDB4MzQsIDB4N2UsIDB4MDksIDB4NDAsIDB4MGIsIDB4MDQsIDB4N2UsIDB4NDQsIDB4NjcsIDB4NjMsIAotICAgIDB4MjAsIDB4ZTMsIDB4MDQsIDB4N2UsIDB4NDQsIDB4NzUsIDB4YzksIDB4Y2EsIDB4MDksIDB4Y2EsIDB4MzksIDB4OTksIDB4NDQsIDB4ZGEsIDB4MzksIDB4ZGEsIAotICAgIDB4MDksIDB4N2UsIDB4NjQsIDB4NzQsIDB4YWQsIDB4NGQsIDB4MzMsIDB4NjgsIDB4YTYsIDB4ODksIDB4NjQsIDB4N2EsIDB4MTUsIDB4NjMsIDB4ZjUsIDB4NjUsIAotICAgIDB4N2UsIDB4NjQsIDB4NzUsIDB4ODYsIDB4ODAsIDB4OTksIDB4N2UsIDB4MTUsIDB4NjMsIDB4ZTUsIDB4NjUsIDB4ODAsIDB4YzQsIDB4YzAsIDB4ZDAsIDB4YzAsIAotICAgIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4Y2EsIDB4MTksIDB4YTksIDB4MjAsIDB4ZGYsIDB4MTIsIDB4YTksIDB4MjEsIDB4ZGYsIDB4MWIsIDB4NzUsIDB4MzEsIDB4MDEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTMsIDB4ZGYsIDB4ZjcsIDB4MTIsIDB4NDAsIDB4ZGMsIDB4ODAsIDB4MGQsIDB4NzUsIDB4MzEsIDB4ZmUsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2UsIDB4MTQsIDB4MDAsIDB4NTMsIDB4MDIsIDB4NDAsIDB4NTEsIDB4ZGEsIDB4MTksIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIAotICAgIDB4MzIsIDB4MDMsIDB4YTUsIDB4Y2IsIDB4MTksIDB4YjEsIDB4ODAsIDB4MDAsIDB4MjIsIDB4MjIsIDB4MDIsIDB4NzYsIDB4NDIsIDB4Y2EsIDB4MGIsIDB4Y2EsIAotICAgIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4YzAsIAotICAgIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzMsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MTksIDB4YjQsIDB4MDEsIDB4MTYsIDB4MzAsIDB4YzAsIDB4MDgsIAotICAgIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4MmMsIDB4ODAsIDB4MWYsIDB4MzAsIDB4YzEsIDB4MWMsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIAotICAgIDB4YmQsIDB4ODAsIDB4MTQsIDB4MzAsIDB4YzEsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4YmQsIDB4ODAsIDB4MDksIDB4MzAsIDB4YzAsIAotICAgIDB4MDYsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4MmMsIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIDB4ZGEsIAotICAgIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4YzIsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MzMsIDB4YjQsIDB4MDIsIDB4MDcsIDB4MTIsIDB4NzYsIDB4NGUsIDB4MDIsIDB4NzYsIDB4NDIsIDB4MjIsIDB4YjQsIDB4MDEsIDB4ZmMsIDB4MDIsIAotICAgIDB4NzYsIDB4ODgsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MmEsIDB4MzMsIDB4N2EsIDB4MDMsIDB4MmEsIDB4MzQsIDB4MjIsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmIsIDB4NTQsIDB4NjAsIDB4NjAsIDB4MDUsIDB4YjQsIDB4NDAsIDB4MTUsIDB4ODAsIDB4MTMsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIAotICAgIDB4MDUsIDB4MGMsIDB4NzUsIDB4MzEsIDB4NzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4ZjUsIDB4OGYsIDB4MjIsIDB4NzUsIAotICAgIDB4ZjYsIDB4MDAsIDB4MjIsIDB4YmUsIDB4NTcsIDB4MmEsIDB4MzEsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NTcsIDB4MmEsIDB4MzEsIDB4N2EsIDB4MGYsIDB4MmEsIAotICAgIDB4MzYsIDB4N2EsIDB4NTcsIDB4MmEsIDB4M2EsIDB4MDIsIDB4NzYsIDB4ODgsIDB4N2UsIDB4ZWYsIDB4MmEsIDB4MzYsIDB4N2UsIDB4ZjcsIDB4MmEsIDB4M2EsIAotICAgIDB4N2UsIDB4MDcsIDB4MmEsIDB4M2EsIDB4NGQsIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2UsIDB4ZWIsIDB4YjAsIDB4ZjUsIDB4ZjMsIAotICAgIDB4YTMsIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIDB4NjgsIDB4MDQsIDB4YTUsIDB4YjgsIDB4MDgsIDB4ZjAsIDB4N2EsIDB4ZWYsIDB4MmEsIDB4MzYsIDB4N2EsIAotICAgIDB4ZjcsIDB4MmEsIDB4M2EsIDB4NzUsIDB4MzEsIDB4MDYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4ZjYsIDB4MjIsIDB4YzIsIDB4YzEsIDB4NzUsIAotICAgIDB4MzEsIDB4MDMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTksIDB4MzYsIDB4ZTIsIDB4MTYsIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MDcsIDB4YTksIAotICAgIDB4ZDcsIDB4ZjQsIDB4YTksIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4NTMsIDB4ZTEsIDB4M2YsIDB4NDMsIDB4ZjIsIDB4ODgsIDB4MDIsIDB4NzcsIDB4MjksIDB4N2UsIAotICAgIDB4YjMsIDB4MmEsIDB4MzQsIDB4YjQsIDB4MDIsIDB4MDQsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4MjIsIDB4YjQsIDB4MDEsIDB4MzksIDB4N2UsIDB4MjEsIDB4ZTYsIAotICAgIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MzUsIDB4MmMsIDB4MjEsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzUsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIAotICAgIDB4MDQsIDB4MmEsIDB4M2MsIDB4ZTUsIDB4ZTMsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4YTUsIDB4ZGIsIDB4ZjYsIDB4YTksIDB4ZDQsIDB4ZTQsIAotICAgIDB4NzUsIDB4MzEsIDB4NzAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzUsIDB4N2UsIDB4YTMsIDB4MmEsIDB4MzIsIDB4YmMsIDB4YWIsIAotICAgIDB4NzgsIDB4MDMsIDB4MTIsIDB4NzcsIDB4YzAsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4ZTUsIDB4ZTYsIDB4YjQsIDB4MDgsIDB4NjUsIDB4YTksIDB4YzQsIAotICAgIDB4ZTIsIDB4N2UsIDB4MDEsIDB4ZTMsIDB4N2UsIDB4MTEsIDB4ZTMsIDB4N2UsIDB4MzEsIDB4ZTMsIDB4N2UsIDB4MjEsIDB4ZTMsIDB4N2UsIDB4NTEsIDB4ZTMsIAotICAgIDB4N2UsIDB4NDEsIDB4ZTMsIDB4N2UsIDB4NzEsIDB4ZTMsIDB4N2UsIDB4NjEsIDB4ZTMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MmIsIDB4N2EsIDB4MWYsIDB4MmEsIAotICAgIDB4MmYsIDB4NzUsIDB4MzEsIDB4MDQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIDB4YzYsIDB4ZTIsIAotICAgIDB4MTIsIDB4NzcsIDB4OTQsIDB4MjIsIDB4NmQsIDB4MDAsIDB4N2UsIDB4MTQsIDB4MDEsIDB4MDIsIDB4N2EsIDB4MDcsIDB4MmEsIDB4M2EsIDB4N2EsIDB4MDMsIAotICAgIDB4MmEsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmIsIDB4MjAsIDB4ZTcsIDB4MGYsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzQsIDB4N2EsIDB4MzMsIDB4MmEsIAotICAgIDB4MzMsIDB4YmUsIDB4MDcsIDB4MmEsIDB4MzEsIDB4NjgsIDB4MDksIDB4MjIsIDB4N2EsIDB4MzMsIDB4MmEsIDB4MzQsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzMsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmIsIDB4NTQsIDB4ZTMsIDB4MjMsIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIAotICAgIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIDB4MDYsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4MDIsIDB4N2IsIDB4MjksIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIAotICAgIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4NzcsIDB4ZWMsIDB4NzUsIDB4ODQsIDB4ZmYsIDB4NzMsIDB4MDIsIDB4NzksIDB4NDAsIDB4MDIsIAotICAgIDB4NzgsIDB4MzQsIDB4MDIsIDB4NzksIDB4ZGQsIDB4MDIsIDB4NzksIDB4ZjgsIDB4MDIsIDB4NzgsIDB4ZDksIDB4MDIsIDB4NzgsIDB4OWEsIDB4MDIsIDB4N2EsIAotICAgIDB4MTEsIDB4MDIsIDB4N2EsIDB4MTEsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIAotICAgIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MWEsIDB4MDIsIAotICAgIDB4N2EsIDB4Y2UsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIAotICAgIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDYsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmQsIDB4NjAsIAotICAgIDB4NTYsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmYsIDB4NzUsIDB4MzEsIDB4NzIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2IsIDB4MzMsIAotICAgIDB4NDAsIDB4MzUsIDB4MDIsIDB4NzYsIDB4NzMsIDB4YjQsIDB4MDgsIDB4MTAsIDB4NzUsIDB4MzEsIDB4NzQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4M2YsIDB4ZjEsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIDB4MjIsIDB4YjQsIDB4MDAsIDB4MWMsIDB4NzUsIDB4MzEsIDB4NzUsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4NzUsIDB4ZjMsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NzUsIDB4ZjMsIDB4MDAsIAotICAgIDB4NzUsIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDAsIAotICAgIDB4MzUsIDB4NzUsIDB4MzEsIDB4NzYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4ZjEsIDB4N2UsIAotICAgIDB4YjMsIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDksIDB4ZTUsIDB4ZTEsIDB4MzAsIDB4ZTcsIDB4MGQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MGIsIDB4ZTUsIAotICAgIDB4ZTEsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MDIsIDB4NzQsIDB4MDAsIDB4NTMsIDB4ZjEsIDB4ODAsIDB4ZjUsIDB4ZjMsIDB4NzUsIAotICAgIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4YzAsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIAotICAgIDB4MGYsIDB4NDIsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDAsIDB4NDUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDEsIAotICAgIDB4MjQsIDB4NzUsIDB4MzEsIDB4NzcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIDB4MGYsIDB4NzgsIDB4MDUsIDB4NTMsIAotICAgIDB4ZTEsIDB4M2YsIDB4ODAsIDB4MzcsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4NTMsIDB4ZTEsIDB4N2YsIDB4ODAsIDB4MmIsIAotICAgIDB4NTMsIDB4ZTEsIDB4YmYsIDB4ODAsIDB4MjYsIDB4YjQsIDB4MDMsIDB4MTcsIDB4NzUsIDB4MzEsIDB4NzgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4NDMsIDB4ZTEsIDB4ODAsIDB4ODAsIDB4MTEsIDB4NDMsIDB4ZTEsIDB4NDAsIDB4ODAsIDB4MGMsIDB4NDMsIAotICAgIDB4ZTEsIDB4YzAsIDB4ZDAsIDB4ZjEsIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4ZDAsIDB4ZjEsIDB4MDIsIDB4NzYsIDB4NmYsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDksIDB4MjMsIDB4NzUsIDB4MzEsIDB4NzksIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIAotICAgIDB4MmUsIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MTEsIDB4Y2EsIDB4YjgsIDB4YzAsIDB4ZjEsIDB4MTIsIDB4NDMsIDB4ZDQsIDB4ZDAsIDB4ZjEsIAotICAgIDB4ZGEsIDB4YjgsIDB4NTAsIDB4NzYsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MzEsIDB4N2EsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ODAsIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MzEsIDB4N2IsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDEsIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIAotICAgIDB4NDYsIDB4YjQsIDB4MDEsIDB4MTksIDB4NzUsIDB4MzEsIDB4N2MsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDEsIAotICAgIDB4MzksIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmQsIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmYsIAotICAgIDB4NzUsIDB4MzEsIDB4NzMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2IsIDB4NWYsIDB4NDAsIDB4MDMsIDB4MDIsIDB4NzYsIDB4NmYsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIAotICAgIDB4MmMsIDB4YjQsIDB4MGIsIDB4ZjYsIDB4NzUsIDB4MzEsIDB4N2QsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4YTMsIAotICAgIDB4MmEsIDB4MzAsIDB4NGMsIDB4YWIsIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MGEsIDB4ZGIsIDB4NzUsIAotICAgIDB4MzEsIDB4N2UsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4NzAsIDB4Y2YsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIAotICAgIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4MDIsIDB4N2IsIDB4MjksIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDQsIAotICAgIDB4MjAsIDB4NzUsIDB4MzEsIDB4YzMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmQsIDB4N2UsIAotICAgIDB4MTgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIDB4MmEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MjEsIDB4MDIsIDB4N2EsIAotICAgIDB4YzgsIDB4YjQsIDB4MDYsIDB4M2EsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIAotICAgIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NzgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIAotICAgIDB4N2UsIDB4NzcsIDB4MmEsIDB4MzEsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIAotICAgIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2MsIDB4NWEsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4NDAsIDB4NGYsIDB4ODAsIDB4NGEsIDB4YjQsIDB4MDAsIAotICAgIDB4MWMsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4NzYsIDB4NmYsIDB4ZTQsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIAotICAgIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIDB4MDYsIDB4MDAsIDB4MDAsIDB4MzIsIDB4YjQsIDB4MDksIDB4MTIsIAotICAgIDB4N2UsIDB4NTcsIDB4MmEsIDB4MmQsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4YTksIDB4ZDIsIDB4YjEsIDB4ODAsIDB4MDMsIDB4YTksIDB4YzIsIDB4YjEsIAotICAgIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MmEsIDB4MmYsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmQsIDB4YzAsIAotICAgIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4NzYsIDB4NmYsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MzEsIDB4YzIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIAotICAgIDB4MTcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NTcsIDB4MmEsIDB4MzEsIDB4MDIsIDB4NzYsIDB4NzMsIDB4YjQsIDB4MDUsIDB4MzksIDB4NzUsIDB4MzEsIDB4YzAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIAotICAgIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NDcsIDB4MmEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MjEsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NTcsIDB4MmEsIDB4MzEsIDB4MDIsIDB4NzYsIDB4NzMsIDB4MDIsIDB4N2IsIDB4MjksIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NDMsIAotICAgIDB4ZTEsIDB4YzAsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2IsIDB4OWUsIDB4NDAsIAotICAgIDB4MTksIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4N2MsIDB4MjEsIAotICAgIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIAotICAgIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2IsIDB4OWUsIDB4NDAsIDB4MmIsIDB4N2UsIDB4NTgsIDB4MDAsIAotICAgIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NzcsIDB4MmEsIDB4MzEsIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTEsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2MsIDB4NWEsIAotICAgIDB4NDAsIDB4MDYsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4ZDMsIDB4MjIsIDB4N2UsIDB4MjQsIAotICAgIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIDB4ZjAsIDB4N2QsIDB4NjIsIDB4N2QsIDB4NzUsIDB4N2QsIAotICAgIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4YzIsIDB4N2UsIDB4MWIsIDB4YjAsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4YjQsIDB4MDEsIDB4MDQsIDB4N2UsIAotICAgIDB4MzQsIDB4N2YsIDB4Y2MsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIDB4NTAsIDB4NDksIDB4M2UsIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIAotICAgIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIDB4MDIsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIAotICAgIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIDB4NTEsIDB4MmQsIDB4MzUsIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIAotICAgIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmUsIDB4NDQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIAotICAgIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIAotICAgIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgU3RhcnQgQWRkcmVzcyAwMGZmN2ZjNiwgTGVuZ3RoIDQKLTB4ZmYsMHgwMCwweGM2LDB4N2YsMHgwNCwweDAwLAotICAgIDB4MDEsIDB4MTAsIDB4MDQsIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxNywgU3RhcnQgQWRkcmVzcyAwMGZmN2MxNSwgTGVuZ3RoIDMzMAotMHhmZiwweDAwLDB4MTUsMHg3YywweDRhLDB4MDEsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgzMSwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgCi0gICAgMHgwYiwgMHhjMCwgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgCi0gICAgMHhmYywgMHg3YywgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgCi0gICAgMHg0NCwgMHgwMCwgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgCi0gICAgMHhmYSwgMHg3ZiwgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgCi0gICAgMHg0MCwgMHg5ZCwgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHg3YywgMHg4NCwgCi0gICAgMHhkYSwgMHg3OSwgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg0MywgCi0gICAgMHg5MCwgMHgzMCwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgCi0gICAgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHg3MCwgMHg1MCwgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgCi0gICAgMHg2ZCwgMHg3NywgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgMHgwMCwgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgCi0gICAgMHhmMywgMHg3ZiwgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgCi0gICAgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4MCwgMHgyYywgMHg2ZCwgMHgwMCwgMHg3YywgMHgyMCwgMHg3ZiwgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgCi0gICAgMHg5ZiwgMHgyMCwgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgwMSwgMHg3OCwgMHgxNiwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgCi0gICAgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwMywgMHg2MywgMHg5MCwgMHgzMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MywgMHhjMiwgCi0gICAgMHhkNywgMHgyMiwgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwNCwgMHg0MiwgMHgwOCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgCi0gICAgMHgwMiwgMHgwMSwgMHgwNCwgMHgwMSwgMHgwMiwgMHg4MiwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgCi0gICAgMHgwMiwgMHgwMiwgMHgwNCwgMHgwMiwgMHgwOCwgMHgxMCwgMHgwMiwgMHgxMCwgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwMCwgCi0gICAgMHgwMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyMCwgMHgwNCwgMHg3ZSwgMHgxOCwgMHg3ZiwgMHhiZCwgMHg3YSwgCi0gICAgMHgxYywgMHgwMCwgMHhmZSwgMHgwYiwgMHgxYSwgMHgwMCwgMHg1ZSwgMHgxMCwgMHgxZiwgMHhiZSwgMHgxMCwgMHgxYSwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgCi0gICAgMHgyMywgMHg3ZSwgMHgxOCwgMHg3YywgMHhmYSwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgCi0gICAgMHhhNSwgMHhiOCwgMHgwMiwgMHgwMywgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgCi19OwotCi1zdGF0aWMgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkxLCAxNiwgNCB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NzI3N2UuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMzICswLDAgQEAKLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQotLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgotLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0vLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCi0JI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKLQkJX19sZTE2IEV4dEFkZHI7Ci0JCV9fbGUxNiBBZGRyOwotCQlfX2xlMTYgTGVuOwotCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOwotCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKLQkJdW5zaWduZWQgY2hhciAgTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247Ci0JCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOwotCX07Ci0KLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKLQkjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJRmlybXdhcmVJbWFnZQotCSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCi0jZW5kaWYKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0gewotCi0vLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgotMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg0NSwgMHgxNCwgCi0KLS8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDQ0LCAweGE1LCAKLQotLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NjMsIDB4YWIsIAotCi0vLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgxYiwgCi0KLS8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDIzLCAKLQotLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MmIsIAotCi0vLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzMywgCi0KLS8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDNiLCAKLQotLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NDMsIAotCi0vLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NGIsIAotCi0vLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NjcsIDB4NWYsIAotCi0vLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4N2IsIAotCi0vLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDcKLTB4ZmYsMHgwMCwweDgwLDB4MDAsMHgwNywweDAwLAotICAgIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4NDAsIDB4NTIsIAotCi0vLyBTZWdtZW50ICMxNCwgU3RhcnQgQWRkcmVzcyAwMGZmMzAwMCwgTGVuZ3RoIDI5MTgKLTB4ZmYsMHgwMCwweDAwLDB4MzAsMHg2NiwweDBiLAotICAgIDB4MTIsIDB4MzAsIDB4NjQsIDB4MTIsIDB4MzAsIDB4ZmYsIDB4MTIsIDB4MzEsIDB4MmYsIDB4MTIsIDB4MzAsIDB4YjAsIDB4ODAsIDB4ZjIsIDB4ZTUsIDB4MjMsIAotICAgIDB4NjAsIDB4MTksIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDEsIDB4YjksIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MDUsIDB4MTQsIAotICAgIDB4MTksIDB4YjEsIDB4MDEsIDB4YjksIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWIsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIAotICAgIDB4M2YsIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MDMsIDB4MTIsIDB4NjUsIDB4NjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MWQsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NmMsIDB4YWEsIAotICAgIDB4NjAsIDB4MGYsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIDB4NTksIDB4MTIsIDB4NjQsIDB4MjQsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIAotICAgIDB4MGIsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjIsIDB4NjAsIDB4NDMsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIAotICAgIDB4MDMsIDB4ODAsIDB4MzgsIDB4MzksIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MjEsIDB4MDksIDB4YTAsIAotICAgIDB4MDAsIDB4MDQsIDB4NGUsIDB4YTAsIDB4MDUsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MGEsIDB4MzIsIDB4MDksIDB4NTMsIDB4MzUsIDB4MzMsIDB4NWUsIAotICAgIDB4NTEsIDB4MjcsIDB4NjgsIDB4MGIsIDB4MDksIDB4YTAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTAsIDB4MDAsIDB4MTAsIDB4MmUsIAotICAgIDB4MDQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDEsIDB4NzUsIDB4MjIsIDB4MDAsIDB4ZDIsIDB4YWYsIDB4MjIsIAotICAgIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MzYsIDB4N2UsIDB4MjAsIDB4MDAsIDB4N2UsIDB4MzAsIDB4MDEsIDB4ZTUsIDB4MjYsIDB4YTUsIDB4NWIsIAotICAgIDB4NjgsIDB4MjEsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MzIsIDB4MDEsIDB4NzksIDB4YmUsIDB4MzQsIDB4MDAsIDB4MDAsIDB4NjgsIAotICAgIDB4MTIsIDB4N2UsIDB4YjEsIDB4MjEsIDB4YTUsIDB4NGIsIDB4N2EsIDB4YjEsIDB4MjEsIDB4Y2EsIDB4MTksIDB4NDksIDB4MjIsIDB4MzAsIDB4ZWYsIDB4OTksIAotICAgIDB4MjQsIDB4ZGEsIDB4MTksIDB4M2UsIDB4MzAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDAsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NDYsIAotICAgIDB4NGYsIDB4NDksIDB4N2MsIDB4NGMsIDB4YTksIDB4NGYsIDB4ZDYsIDB4NTMsIDB4MDMsIDB4NTYsIDB4MzAsIDB4NTksIDB4NWQsIDB4NWMsIDB4OGEsIDB4YzIsIAotICAgIDB4YWYsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4MTIsIDB4MzUsIAotICAgIDB4NGMsIDB4ZGEsIDB4MjgsIDB4NDAsIDB4MDksIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4ZjQsIDB4NTIsIDB4MjQsIDB4MjIsIDB4YzIsIAotICAgIDB4YWYsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4NGMsIAotICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAotICAgIDB4MmIsIDB4NDksIDB4MjIsIDB4MzEsIDB4NTcsIDB4ODksIDB4MjQsIDB4MzEsIDB4NjcsIDB4MzEsIDB4ZDAsIDB4MzIsIDB4MzksIDB4MzIsIDB4YTIsIDB4MzMsIAotICAgIDB4MGIsIDB4MzMsIDB4NzQsIDB4MzMsIDB4ZGQsIDB4MzQsIDB4NDYsIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIAotICAgIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIAotICAgIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NDksIDB4NDUsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIAotICAgIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4ODksIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODksIDB4N2UsIAotICAgIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YjksIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YjksIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIAotICAgIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIAotICAgIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTgsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODEsIDB4MDAsIDB4MDksIDB4YjIsIAotICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAotICAgIDB4NGMsIDB4NzIsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAotICAgIDB4MDEsIDB4OGIsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGIsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmEsIDB4ODAsIAotICAgIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmEsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAotICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTksIDB4NmMsIAotICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4YmUsIDB4MjQsIDB4MDAsIAotICAgIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGYsIDB4OWYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIAotICAgIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGQsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4OGQsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmIsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmIsIDB4YTUsIDB4YmUsIAotICAgIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIAotICAgIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWEsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4MTIsIDB4NjQsIAotICAgIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2YsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODMsIDB4MDAsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIAotICAgIDB4MTIsIDB4MTIsIDB4NTIsIDB4Y2MsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIAotICAgIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGYsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIAotICAgIDB4YmMsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmMsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIAotICAgIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIAotICAgIDB4MWIsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4YmUsIAotICAgIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIAotICAgIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTUsIDB4ZjksIDB4N2QsIDB4MjEsIDB4ZGEsIAotICAgIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTEsIDB4NjgsIDB4MGQsIDB4N2EsIAotICAgIDB4MjcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmQsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmQsIAotICAgIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIAotICAgIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWMsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIAotICAgIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIAotICAgIDB4ODUsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIAotICAgIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTksIDB4MjYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIAotICAgIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTMsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIAotICAgIDB4NjMsIDB4MDEsIDB4YmUsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmUsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIAotICAgIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4YzIsIDB4MWQsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4ODUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWMsIDB4NTMsIDB4N2QsIAotICAgIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTUsIDB4NjgsIAotICAgIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmYsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIAotICAgIDB4MDEsIDB4YmYsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIAotICAgIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWUsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4YmYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIAotICAgIDB4N2UsIDB4MjQsIDB4ODcsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIAotICAgIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWYsIDB4ODAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIAotICAgIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTcsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4NjAsIAotICAgIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YzAsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YzAsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIAotICAgIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWYsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4YzIsIAotICAgIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjgsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4MzAsIDB4ZTUsIDB4MWIsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4YmUsIDB4YjAsIDB4M2YsIDB4MzgsIAotICAgIDB4MGMsIDB4ODUsIDB4MzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NzQsIDB4MjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MTUsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4MzUsIDB4M2IsIDB4MzYsIDB4ZTgsIDB4MzcsIDB4MDAsIDB4MzcsIDB4MWIsIDB4MzcsIDB4YjYsIAotICAgIDB4MzgsIDB4NGUsIDB4MzgsIDB4NjksIDB4MzgsIDB4ZmIsIDB4MzgsIDB4ODQsIDB4MzgsIDB4YzUsIDB4N2MsIDB4YjMsIDB4YmUsIDB4YjAsIDB4MDksIDB4MjgsIAotICAgIDB4MjIsIDB4NzUsIDB4MmYsIDB4MDksIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4NTcsIDB4MDIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTEsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4MjMsIDB4NmMsIDB4YWEsIDB4MmUsIDB4NTQsIDB4MzQsIDB4ZTYsIDB4MGIsIDB4NTgsIAotICAgIDB4NTAsIDB4ODksIDB4NTQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4NzUsIDB4MmYsIDB4YjAsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAotICAgIDB4M2IsIDB4NDksIDB4MzMsIDB4MzUsIDB4NTcsIDB4ODksIDB4MzQsIDB4MzUsIDB4NjcsIDB4MzUsIDB4OTUsIDB4MzUsIDB4YzMsIDB4MzUsIDB4ZjEsIDB4MzYsIAotICAgIDB4MWYsIDB4MzYsIDB4NGQsIDB4MzYsIDB4N2IsIDB4MzYsIDB4YTksIDB4MTIsIDB4NDEsIDB4YmEsIDB4ZDIsIDB4MjgsIDB4ZDIsIDB4MDgsIDB4YzIsIDB4NDAsIAotICAgIDB4YzIsIDB4NDgsIDB4YzIsIDB4MzgsIDB4YzIsIDB4MzAsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTksIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIAotICAgIDB4NWYsIDB4YjcsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZDcsIDB4ZDIsIDB4MjksIDB4ZDIsIDB4MDksIDB4YzIsIDB4NDEsIDB4YzIsIDB4NDksIAotICAgIDB4YzIsIDB4MzksIDB4YzIsIDB4MzEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4OWIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWIsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NWYsIDB4ZTAsIAotICAgIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZjQsIDB4ZDIsIDB4MmEsIDB4ZDIsIDB4MGEsIDB4YzIsIDB4NDIsIDB4YzIsIDB4NGEsIDB4YzIsIDB4M2EsIAotICAgIDB4YzIsIDB4MzIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWQsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWQsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MDksIDB4MDIsIDB4MzYsIAotICAgIDB4ZDcsIDB4MTIsIDB4NDIsIDB4MTEsIDB4ZDIsIDB4MmIsIDB4ZDIsIDB4MGIsIDB4YzIsIDB4NDMsIDB4YzIsIDB4NGIsIDB4YzIsIDB4M2IsIDB4YzIsIDB4MzMsIAotICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWYsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWYsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MzIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIAotICAgIDB4NDIsIDB4MmUsIDB4ZDIsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4NDQsIDB4YzIsIDB4NGMsIDB4YzIsIDB4M2MsIDB4YzIsIDB4MzQsIDB4NmQsIDB4MDAsIAotICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjEsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4NWIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NGIsIAotICAgIDB4ZDIsIDB4MmQsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4NDUsIDB4YzIsIDB4NGQsIDB4YzIsIDB4M2QsIDB4YzIsIDB4MzUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4YmUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YjMsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4ODQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NjgsIDB4ZDIsIDB4MmUsIAotICAgIDB4ZDIsIDB4MGUsIDB4YzIsIDB4NDYsIDB4YzIsIDB4NGUsIDB4YzIsIDB4M2UsIDB4YzIsIDB4MzYsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmYsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjUsIAotICAgIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4YWQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4ODUsIDB4ZDIsIDB4MmYsIDB4ZDIsIDB4MGYsIAotICAgIDB4YzIsIDB4NDcsIDB4YzIsIDB4NGYsIDB4YzIsIDB4M2YsIDB4YzIsIDB4MzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTcsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjcsIDB4MTIsIDB4NDEsIAotICAgIDB4MjcsIDB4MTIsIDB4NjAsIDB4ZDYsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4N2UsIDB4YTAsIDB4ZDAsIDB4N2UsIDB4NjAsIDB4MGYsIDB4MTIsIDB4NjEsIDB4MzYsIAotICAgIDB4NDAsIDB4MDUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4NTIsIAotICAgIDB4MjMsIDB4NmQsIDB4MDAsIDB4NTksIDB4MDUsIDB4MDAsIDB4MzIsIDB4MTIsIDB4NDEsIDB4ODMsIDB4MTIsIDB4NDEsIDB4OWYsIDB4ZDAsIDB4YTgsIDB4MjIsIAotICAgIDB4NzUsIDB4MmYsIDB4YjIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjMsIDB4N2UsIDB4YjAsIAotICAgIDB4OWMsIDB4MTksIDB4YjIsIDB4MDEsIDB4YjksIDB4MTIsIDB4MzEsIDB4NGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MTIsIDB4NDQsIDB4NDAsIDB4Y2EsIDB4YjgsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4YmYsIDB4N2MsIDB4NzQsIAotICAgIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZjcsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4Y2EsIAotICAgIDB4YjgsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZGEsIDB4YjgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4MGEsIDB4NjIsIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIAotICAgIDB4NjgsIDB4MjAsIDB4NDIsIDB4MjcsIDB4Y2EsIDB4YjgsIDB4NzQsIDB4NjEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MTAsIAotICAgIDB4NTksIDB4NDYsIDB4MDEsIDB4YTksIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIAotICAgIDB4ODAsIDB4MTEsIDB4ZjQsIDB4NTIsIDB4MjcsIDB4NzQsIDB4YTEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MzgsIDB4NTksIAotICAgIDB4NDYsIDB4MDEsIDB4YTksIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4NzQsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDEsIDB4NjgsIDB4MDQsIDB4NDQsIDB4ODAsIDB4ODAsIDB4MDIsIDB4NTQsIDB4N2YsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIAotICAgIDB4NDQsIDB4MDIsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZmQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MGEsIDB4NjIsIAotICAgIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4YTUsIDB4ZmQsIDB4ZjQsIDB4YTUsIDB4ZmUsIDB4Y2EsIDB4MjgsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4ZGEsIAotICAgIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjgsIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIAotICAgIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4ODAsIDB4MDQsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDQsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjksIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIAotICAgIDB4OTksIDB4ODAsIDB4MTUsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjksIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NzgsIDB4MGEsIDB4NTIsIDB4MjYsIAotICAgIDB4N2UsIDB4NDQsIDB4MDAsIDB4MjAsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4MTIsIDB4NDIsIDB4YTIsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIAotICAgIDB4MDAsIDB4MTAsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIDB4MDAsIDB4MTgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NDQsIDB4NDAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MjMsIDB4MDksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YjAsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIAotICAgIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZjcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MTgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NDQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NTQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjQsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4MjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjAsIDB4MDEsIAotICAgIDB4N2UsIDB4YTAsIDB4YzgsIDB4N2MsIDB4NjQsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4MzksIDB4MmUsIAotICAgIDB4MzksIDB4NzUsIDB4MzksIDB4YmMsIDB4M2EsIDB4MDMsIDB4M2EsIDB4NGEsIDB4M2EsIDB4OTEsIDB4M2EsIDB4ZDgsIDB4M2IsIDB4MWYsIDB4NzUsIDB4MmYsIAotICAgIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4MmQsIDB4MjMsIAotICAgIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MDgsIDB4MmMsIDB4MzgsIDB4MGYsIAotICAgIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2EsIDB4MjcsIDB4MDEsIDB4NzksIDB4MDIsIDB4NDYsIDB4NGYsIDB4N2UsIAotICAgIDB4MTQsIDB4MDQsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDEsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIAotICAgIDB4NmIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIAotICAgIDB4MTQsIDB4YmUsIDB4MTQsIDB4MGMsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmIsIDB4N2EsIAotICAgIDB4MjcsIDB4MDEsIDB4N2IsIDB4MDIsIDB4NDksIDB4N2MsIDB4N2UsIDB4MTQsIDB4MDgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIAotICAgIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIAotICAgIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MDIsIDB4NGMsIDB4YTksIDB4N2UsIDB4MTQsIDB4MGMsIAotICAgIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIAotICAgIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2UsIAotICAgIDB4MjcsIDB4MDEsIDB4N2YsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIAotICAgIDB4MTQsIDB4MTQsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4N2YsIDB4MDIsIDB4NGYsIDB4ZDYsIDB4N2UsIDB4MTQsIDB4MTAsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4NzUsIDB4MmYsIDB4MDQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIAotICAgIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTgsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIAotICAgIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MDIsIDB4NTMsIDB4MDMsIDB4N2UsIDB4MTQsIDB4MTQsIDB4MmQsIDB4ODAsIAotICAgIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4ODMsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MWMsIAotICAgIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODMsIDB4MDIsIAotICAgIDB4NTYsIDB4MzAsIDB4N2UsIDB4MTQsIDB4MTgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIAotICAgIDB4MDYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIAotICAgIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIAotICAgIDB4MDEsIDB4NzUsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MDIsIDB4NTksIDB4NWQsIDB4N2UsIDB4MTQsIDB4MWMsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIAotICAgIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MmQsIAotICAgIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjQsIDB4MmMsIDB4MzgsIAotICAgIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MDIsIDB4NWMsIDB4OGEsIAotICAgIDB4N2UsIDB4MTQsIDB4MjAsIDB4MmQsIDB4ODAsIDB4ZWIsIAotCi0vLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmNDAwMCwgTGVuZ3RoIDEzMTA5Ci0weGZmLDB4MDAsMHgwMCwweDQwLDB4MzUsMHgzMywKLSAgICAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE0LCAweDdmLCAweGY4LCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdkLCAweDMxLCAweDBiLCAweDFhLCAKLSAgICAweDUwLCAweDFiLCAweDBhLCAweDUwLCAweDdlLCAweDE0LCAweDQwLCAweDFiLCAweDAyLCAweDQwLCAweDc0LCAweDdlLCAweGY4LCAweDAwLCAweDU5LCAweDc1LCAKLSAgICAweGIwLCAweGRmLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDdlLCAweGY0LCAweDQwLCAweDMwLCAweDAyLCAweDQwLCAweDhiLCAKLSAgICAweDEyLCAweDc0LCAweDRlLCAweGY1LCAweDJlLCAweDdhLCAweGExLCAweDJkLCAweDdhLCAweDExLCAweDU4LCAweDEyLCAweDZiLCAweDAyLCAweDEyLCAweDQwLCAKLSAgICAweGViLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDYwLCAweDAzLCAweDEyLCAweDQzLCAweDc5LCAweDEyLCAweDZiLCAweGRlLCAweGQyLCAweGFmLCAweDAyLCAKLSAgICAweDMwLCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDYwLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAweDg5LCAweDE4LCAKLSAgICAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAKLSAgICAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDgyLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAKLSAgICAweDg5LCAweDE4LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA4LCAweDAwLCAweDIwLCAweDdlLCAKLSAgICAweDQ0LCAweDA0LCAweDAwLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweDlkLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAweDA4LCAweDAxLCAKLSAgICAweDU5LCAweDdlLCAweDQ0LCAweDJhLCAweGRkLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweGFmLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAKLSAgICAweDA4LCAweDAwLCAweDU5LCAweDdlLCAweDQ0LCAweDAxLCAweDAwLCAweDdlLCAweDQwLCAweDUzLCAweDdlLCAweGU0LCAweDQwLCAweGMxLCAweDAyLCAweDczLCAKLSAgICAweDUwLCAweDc1LCAweDU3LCAweDAxLCAweDc1LCAweDU2LCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDc1LCAweDU0LCAweDU4LCAweDc1LCAweDU1LCAKLSAgICAweDA4LCAweDc1LCAweDUxLCAweDA4LCAweDc1LCAweDUzLCAweDAxLCAweDc1LCAweDg5LCAweDAxLCAweDc1LCAweDhhLCAweDAxLCAweDc1LCAweDhjLCAweDAwLCAKLSAgICAweGQyLCAweDhjLCAweDdlLCAweDA0LCAweDAwLCAweDAyLCAweDdhLCAweDA1LCAweDQyLCAweDg5LCAweGY0LCAweDc1LCAweGI3LCAweDdmLCAweDc1LCAweGI4LCAKLSAgICAweDdmLCAweDc1LCAweGIzLCAweDAxLCAweDc1LCAweGIyLCAweDAxLCAweGQyLCAweGE5LCAweDIyLCAweDc1LCAweGIwLCAweGRmLCAweGU0LCAweGQ1LCAweGUwLCAKLSAgICAweGZkLCAweDc1LCAweGIwLCAweGVmLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDJlLCAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGYyLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDgzLCAweDBiLCAKLSAgICAweDIwLCAweGJlLCAweDIxLCAweDJlLCAweDc4LCAweGY2LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDc0LCAweGJmLCAweDE5LCAKLSAgICAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDEwLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDgwLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDdlLCAKLSAgICAweDU0LCAweDAwLCAweDAyLCAweDE5LCAweGEwLCAweDAwLCAweDA0LCAweDE5LCAweGIwLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAKLSAgICAweDBjLCAweDc0LCAweDA3LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDBmLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDMwLCAweDZiLCAweDE3LCAweDc0LCAKLSAgICAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDI4LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDIwLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAKLSAgICAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDBjLCAweDE5LCAweGIwLCAKLSAgICAweDAwLCAweDEwLCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweGU0LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDA5LCAweGIwLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweDA4LCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDIyLCAweDdjLCAKLSAgICAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQxLCAweGFhLCAweDg5LCAweDI0LCAweDQxLCAweGJhLCAweDQxLCAweGQ3LCAweDQxLCAweGY0LCAKLSAgICAweDQyLCAweDExLCAweDQyLCAweDJlLCAweDQyLCAweDRiLCAweDQyLCAweDY4LCAweDQyLCAweDg1LCAweGMyLCAweDEwLCAweGMyLCAweDE4LCAweGMyLCAweDA4LCAKLSAgICAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAweDAxLCAweDY5LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDc5LCAweDdhLCAweDA3LCAweDAxLCAweDg5LCAweDIyLCAweGMyLCAweDExLCAweGMyLCAweDE5LCAweGMyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAKLSAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdiLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDhiLCAweDIyLCAweGMyLCAweDEyLCAweGMyLCAweDFhLCAweGMyLCAweDBhLCAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdkLCAweDdhLCAweDA3LCAweDAxLCAweDhkLCAKLSAgICAweDIyLCAweGMyLCAweDEzLCAweGMyLCAweDFiLCAweGMyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDZmLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdmLCAweDdhLCAweDA3LCAweDAxLCAweDhmLCAweDIyLCAweGMyLCAweDE0LCAKLSAgICAweGMyLCAweDFjLCAweGMyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAKLSAgICAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDgxLCAweDdhLCAweDA3LCAweDAxLCAweDkxLCAweDIyLCAweGMyLCAweDE1LCAweGMyLCAweDFkLCAweGMyLCAKLSAgICAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAweDA3LCAweDAxLCAweDczLCAweDZkLCAweDAwLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDgzLCAweDdhLCAweDA3LCAweDAxLCAweDkzLCAweDIyLCAweGMyLCAweDE2LCAweGMyLCAweDFlLCAweGMyLCAweDBlLCAweDdlLCAweDA0LCAKLSAgICAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg1LCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweDk1LCAweDIyLCAweGMyLCAweDE3LCAweGMyLCAweDFmLCAweGMyLCAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg3LCAweDdhLCAweDA3LCAweDAxLCAKLSAgICAweDk3LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQyLCAweGFkLCAweDg5LCAweDI0LCAweDQyLCAweGJkLCAweDQyLCAKLSAgICAweGQ0LCAweDQyLCAweGViLCAweDQzLCAweDAyLCAweDQzLCAweDE5LCAweDQzLCAweDMwLCAweDQzLCAweDQ3LCAweDQzLCAweDVlLCAweDMwLCAweDQwLCAweDA3LCAKLSAgICAweDIwLCAweDU4LCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAweDBjLCAweDMwLCAweDQ4LCAweDA3LCAweDIwLCAweDUwLCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAKLSAgICAweDAyLCAweGQyLCAweDI4LCAweDIyLCAweDMwLCAweDQxLCAweDA3LCAweDIwLCAweDU5LCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDBjLCAweDMwLCAweDQ5LCAKLSAgICAweDA3LCAweDIwLCAweDUxLCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDAyLCAweGQyLCAweDI5LCAweDIyLCAweDMwLCAweDQyLCAweDA3LCAweDIwLCAweDVhLCAKLSAgICAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDBjLCAweDMwLCAweDRhLCAweDA3LCAweDIwLCAweDUyLCAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDAyLCAweGQyLCAKLSAgICAweDJhLCAweDIyLCAweDMwLCAweDQzLCAweDA3LCAweDIwLCAweDViLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDBjLCAweDMwLCAweDRiLCAweDA3LCAweDIwLCAKLSAgICAweDUzLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDAyLCAweGQyLCAweDJiLCAweDIyLCAweDMwLCAweDQ0LCAweDA3LCAweDIwLCAweDVjLCAweDA0LCAweGMyLCAKLSAgICAweDJjLCAweDgwLCAweDBjLCAweDMwLCAweDRjLCAweDA3LCAweDIwLCAweDU0LCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDAyLCAweGQyLCAweDJjLCAweDIyLCAKLSAgICAweDMwLCAweDQ1LCAweDA3LCAweDIwLCAweDVkLCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAweDBjLCAweDMwLCAweDRkLCAweDA3LCAweDIwLCAweDU1LCAweDA0LCAKLSAgICAweGMyLCAweDJkLCAweDgwLCAweDAyLCAweGQyLCAweDJkLCAweDIyLCAweDMwLCAweDQ2LCAweDA3LCAweDIwLCAweDVlLCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAKLSAgICAweDBjLCAweDMwLCAweDRlLCAweDA3LCAweDIwLCAweDU2LCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAweDAyLCAweGQyLCAweDJlLCAweDIyLCAweDMwLCAweDQ3LCAKLSAgICAweDA3LCAweDIwLCAweDVmLCAweDA0LCAweGMyLCAweDJmLCAweDgwLCAweDBjLCAweDMwLCAweDRmLCAweDA3LCAweDIwLCAweDU3LCAweDA0LCAweGMyLCAweDJmLCAKLSAgICAweDgwLCAweDAyLCAweGQyLCAweDJmLCAweDIyLCAweDQ0LCAweDY2LCAweDQzLCAweDhhLCAweGJlLCAweGIwLCAweDAyLCAweDQwLCAweDAxLCAweDIyLCAweDIzLCAKLSAgICAweDBhLCAweDViLCAweDQ5LCAweDU1LCAweDQzLCAweDc1LCAweDk5LCAweDU0LCAweGQzLCAweDIyLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk0LCAKLSAgICAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDdlLCAweDA0LCAweDI4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGMxLCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweGMzLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDA0LCAweDY2LCAweDdmLCAweDdhLCAweDA1LCAweDRiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDEyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDFlLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE0LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDA4LCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDJmLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDBmLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDQwLCAweGZhLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDlmLCAweDBiLCAweDIwLCAweGJlLCAweDIxLCAKLSAgICAweDJlLCAweDc4LCAweGY2LCAweGQyLCAweGE4LCAweDIyLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAKLSAgICAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDc1LCAweGIwLCAweGRmLCAweGMyLCAweGE4LCAweDIyLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAKLSAgICAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweDIwLCAweDA0LCAweDdjLCAweGIyLCAweGMyLCAweGQ3LCAweDEzLCAweDEzLCAweDEzLCAKLSAgICAweDEzLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEyLCAweGE1LCAweGRhLCAweGU1LCAweDIyLCAweGNhLCAweDA5LCAweDEyLCAweDMwLCAweDBlLCAweDEwLCAweDAxLCAweDM0LCAweGQ1LCAweDUxLCAweDQwLCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAKLSAgICAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDA0LCAweDYzLCAweDUzLCAweDAxLCAweDdlLCAweDAwLCAweDU0LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweGY1LCAweDUxLCAweDgwLCAKLSAgICAweDEyLCAweDIwLCAweDAyLCAweDFkLCAweDc1LCAweDUzLCAweDAwLCAweDg1LCAweDU0LCAweDUxLCAweGQyLCAweDAyLCAweDc0LCAweDAzLCAweDgwLCAweDBkLCAKLSAgICAweDMwLCAweDAyLCAweDBlLCAweGMyLCAweDAyLCAweDdlLCAweDAwLCAweDU2LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweDdhLCAweGIzLCAweDkwLCAKLSAgICAweDAwLCAweGRhLCAweDA5LCAweDMyLCAweDQ1LCAweDZmLCAweDQ1LCAweDhiLCAweDQ1LCAweGE3LCAweDQ1LCAweGMzLCAweDQ1LCAweGRmLCAweDQ1LCAweGZiLCAKLSAgICAweDQ2LCAweDE3LCAweDQ2LCAweDMzLCAweGMwLCAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAKLSAgICAweGNhLCAweDJiLCAweGQyLCAweDAxLCAweDc1LCAweDJmLCAweDg5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkwLCAweDAwLCAweDYwLCAweDI4LCAKLSAgICAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDdlLCAweDAwLCAweDAwLCAweDEzLCAweDUwLCAweDEzLCAweGNhLCAweDBiLCAweGNhLCAweDU5LCAweDdjLCAweGIwLCAKLSAgICAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQ1LCAweDA0LCAweDk5LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGE1LCAweDBhLCAweGE1LCAKLSAgICAweDA4LCAweGJlLCAweDAxLCAweDJlLCAweDc4LCAweGUxLCAweDgwLCAweGQyLCAweDMwLCAweDA0LCAweDA1LCAweGMyLCAweDA0LCAweDEyLCAweDY0LCAweDg2LCAKLSAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgwLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKLSAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYxLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKLSAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgxLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKLSAgICAweDY5LCAweDUyLCAweDYxLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKLSAgICAweDgyLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDJiLCAKLSAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgzLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg0LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKLSAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKLSAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg1LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKLSAgICAweDY5LCAweDUyLCAweDYyLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKLSAgICAweDg2LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDJiLCAKLSAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg3LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDEwLCAKLSAgICAweDA4LCAweDAxLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDc1LCAweDJmLCAweGEwLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKLSAgICAweDE0LCAweDgwLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKLSAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDQ5LCAweDQ1LCAweDMwLCAweDMwLCAweDA2LCAweDIwLCAweGU2LCAKLSAgICAweDRmLCAweGQyLCAweDA4LCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYwLCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDk5LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA4LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAKLSAgICAweDY5LCAweGYwLCAweDEwLCAweDYwLCAweGM0LCAweDIyLCAweGMyLCAweDYwLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDc5LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDk5LCAweDI4LCAweDA0LCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAKLSAgICAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKLSAgICAweDA4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDA4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA0LCAweDJkLCAKLSAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAKLSAgICAweDAyLCAweDQ2LCAweGMyLCAweDIyLCAweGQyLCAweDA4LCAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDY5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAKLSAgICAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGE5LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAKLSAgICAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAKLSAgICAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGE5LCAweDFiLCAweDM4LCAweDIwLCAKLSAgICAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAweDBhLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAwLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAKLSAgICAweGE5LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAKLSAgICAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAKLSAgICAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAKLSAgICAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAwLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAKLSAgICAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAKLSAgICAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAKLSAgICAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAKLSAgICAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAKLSAgICAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAKLSAgICAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAKLSAgICAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDQ4LCAweDFlLCAweDc1LCAweDJmLCAKLSAgICAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAKLSAgICAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweGRhLCAweGI4LCAKLSAgICAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDQ4LCAweDFlLCAweGRhLCAweGI4LCAweDAyLCAweDQ5LCAKLSAgICAweDQ1LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAKLSAgICAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDEyLCAweDQyLCAweGJkLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAKLSAgICAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAKLSAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAKLSAgICAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDQ4LCAweDcyLCAweDc1LCAweDJmLCAKLSAgICAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDA5LCAweDAxLCAweDIyLCAKLSAgICAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDc1LCAweDJmLCAweGExLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgxLCAweDAwLCAKLSAgICAweDgwLCAweDA2LCAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAKLSAgICAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDRjLCAweDcyLCAweDMwLCAweDMxLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDA5LCAKLSAgICAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYxLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDI3LCAweDAxLCAweDliLCAweDlkLCAweDMyLCAKLSAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAKLSAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAKLSAgICAweDYxLCAweGM0LCAweDIyLCAweGMyLCAweDYxLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDdiLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDliLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDliLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAKLSAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDllLCAweDQ0LCAweDBjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA4LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKLSAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDQ5LCAweGVmLCAKLSAgICAweDIyLCAweGQyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDc1LCAKLSAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFiLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKLSAgICAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAxLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFiLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKLSAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKLSAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAxLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFiLCAweDllLCAweDI0LCAKLSAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKLSAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKLSAgICAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKLSAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAxLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAKLSAgICAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAKLSAgICAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAKLSAgICAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKLSAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKLSAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRiLCAweDRiLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKLSAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRiLCAweDRiLCAweGRhLCAweGI4LCAweDAyLCAweDRjLCAweDcyLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDUxLCAweDEyLCAweDQyLCAweGQ0LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAKLSAgICAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAKLSAgICAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRiLCAweDlmLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBhLCAweDAxLCAweDIyLCAweDIwLCAweDJhLCAweDAzLCAKLSAgICAweGQyLCAweDBhLCAweDIyLCAweDc1LCAweDJmLCAweGEyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgyLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAKLSAgICAweDJhLCAweDAzLCAweGQyLCAweDBhLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAKLSAgICAweDY4LCAweDAzLCAweDEyLCAweDRmLCAweDlmLCAweDMwLCAweDMyLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBhLCAweDIyLCAweDMwLCAweGU2LCAKLSAgICAweDAyLCAweGQyLCAweDYyLCAweDdlLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAKLSAgICAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAKLSAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYyLCAweGM0LCAweDIyLCAKLSAgICAweGMyLCAweDYyLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdkLCAweGJlLCAweDI0LCAKLSAgICAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlkLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDdkLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAKLSAgICAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDEwLCAKLSAgICAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDBjLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweDVkLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDRkLCAweDFjLCAweDIyLCAweGQyLCAweDBhLCAKLSAgICAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAKLSAgICAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFkLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAKLSAgICAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDI0LCAweDAyLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFkLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKLSAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAKLSAgICAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAyLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFkLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAKLSAgICAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKLSAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAKLSAgICAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAKLSAgICAweDIzLCAweDQ0LCAweDAyLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAKLSAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAKLSAgICAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAKLSAgICAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAKLSAgICAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAKLSAgICAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRlLCAweDc4LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKLSAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAKLSAgICAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRlLCAweDc4LCAweGRhLCAweGI4LCAweDAyLCAweDRmLCAweDlmLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAKLSAgICAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAKLSAgICAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDEyLCAweDQyLCAKLSAgICAweGViLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAKLSAgICAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAKLSAgICAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRlLCAweGNjLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBiLCAweDAxLCAweDIyLCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAweDBiLCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweGEzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgzLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAKLSAgICAweDBiLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAKLSAgICAweDUyLCAweGNjLCAweDMwLCAweDMzLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBiLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYzLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKLSAgICAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKLSAgICAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYzLCAweGM0LCAweDIyLCAweGMyLCAweDYzLCAweDJkLCAKLSAgICAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdmLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAKLSAgICAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlmLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDlkLCAKLSAgICAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAKLSAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAKLSAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE0LCAweDJkLCAweDlkLCAweDI0LCAKLSAgICAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDEwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDEyLCAKLSAgICAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUwLCAweDQ5LCAweDIyLCAweGQyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAKLSAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAweDA3LCAweDAxLCAweDZmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAKLSAgICAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGFmLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAKLSAgICAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAKLSAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAzLCAweDAwLCAKLSAgICAweDJlLCAweDI3LCAweDAxLCAweGFmLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKLSAgICAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKLSAgICAweDEzLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAKLSAgICAweDdlLCAweDY0LCAweDAzLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFmLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAKLSAgICAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAKLSAgICAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAzLCAKLSAgICAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAKLSAgICAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAKLSAgICAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAKLSAgICAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAKLSAgICAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAKLSAgICAweDc4LCAweGU3LCAweDAyLCAweDUxLCAweGE1LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKLSAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweGQyLCAweDEzLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAKLSAgICAweDEyLCAweDUxLCAweGE1LCAweGRhLCAweGI4LCAweDAyLCAweDUyLCAweGNjLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAKLSAgICAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAKLSAgICAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDEyLCAweDQzLCAweDAyLCAweDAyLCAweDYxLCAKLSAgICAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAKLSAgICAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAKLSAgICAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAKLSAgICAweGRiLCAweDIyLCAweDAyLCAweDUxLCAweGY5LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBjLCAweDAxLCAweDIyLCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDc1LCAweDJmLCAweGE0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg0LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU1LCAweGY5LCAweDMwLCAKLSAgICAweDM0LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBjLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY0LCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweDgxLCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAKLSAgICAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAKLSAgICAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY0LCAweGM0LCAweDIyLCAweGMyLCAweDY0LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAKLSAgICAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgxLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGExLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDdlLCAweDM3LCAweDAxLCAweDgxLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAKLSAgICAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAKLSAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAKLSAgICAweDdlLCAweDM0LCAweDE0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAKLSAgICAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUzLCAweDc2LCAweDIyLCAweGQyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKLSAgICAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIxLCAweDJlLCAKLSAgICAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAKLSAgICAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKLSAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA0LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAKLSAgICAweGIxLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAKLSAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKLSAgICAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE0LCAweDIyLCAweDgwLCAKLSAgICAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA0LCAKLSAgICAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGIxLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAKLSAgICAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAKLSAgICAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAKLSAgICAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA0LCAweDdhLCAweDY5LCAweGIwLCAKLSAgICAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAKLSAgICAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAKLSAgICAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAKLSAgICAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAKLSAgICAweDU0LCAweGQyLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDMwLCAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKLSAgICAweDE0LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU0LCAweGQyLCAKLSAgICAweGRhLCAweGI4LCAweDAyLCAweDU1LCAweGY5LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAweDU0LCAweDEyLCAweDQzLCAweDE5LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAKLSAgICAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAKLSAgICAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAKLSAgICAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAKLSAgICAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAKLSAgICAweDU1LCAweDI2LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDEwLCAweDBkLCAweDAxLCAweDIyLCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDc1LCAweDJmLCAweGE1LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdlLCAweDE0LCAweDg1LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU5LCAweDI2LCAweDMwLCAweDM1LCAweDA2LCAweDIwLCAKLSAgICAweGU2LCAweDRmLCAweGQyLCAweDBkLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY1LCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGEzLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAKLSAgICAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDY4LCAKLSAgICAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY1LCAweGM0LCAweDIyLCAweGMyLCAweDY1LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAKLSAgICAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgzLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGEzLCAweDI4LCAKLSAgICAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGEzLCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAKLSAgICAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKLSAgICAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKLSAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDFjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDE4LCAKLSAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAKLSAgICAweDAzLCAweDAyLCAweDU2LCAweGEzLCAweDIyLCAweGQyLCAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDczLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAKLSAgICAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIzLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAKLSAgICAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAKLSAgICAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA1LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGIzLCAweDFiLCAweDM4LCAKLSAgICAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNkLCAweDBhLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA1LCAweDAwLCAweDJlLCAweDY3LCAKLSAgICAweDAxLCAweGIzLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAKLSAgICAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAKLSAgICAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAKLSAgICAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA1LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAKLSAgICAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAKLSAgICAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAKLSAgICAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAKLSAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAKLSAgICAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAKLSAgICAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAKLSAgICAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDU3LCAweGZmLCAweDc1LCAKLSAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKLSAgICAweDNkLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweGRhLCAKLSAgICAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU3LCAweGZmLCAweGRhLCAweGI4LCAweDAyLCAKLSAgICAweDU5LCAweDI2LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAKLSAgICAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDEyLCAweDQzLCAweDMwLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAKLSAgICAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAKLSAgICAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAKLSAgICAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDU4LCAweDUzLCAweDc1LCAKLSAgICAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBlLCAweDAxLCAKLSAgICAweDIyLCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDc1LCAweDJmLCAweGE2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg2LCAKLSAgICAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAKLSAgICAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVjLCAweDUzLCAweDMwLCAweDM2LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAKLSAgICAweDBlLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY2LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDI3LCAweDAxLCAweGE1LCAweDlkLCAKLSAgICAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAKLSAgICAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAKLSAgICAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAKLSAgICAweDEwLCAweDY2LCAweGM0LCAweDIyLCAweGMyLCAweDY2LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweDg1LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE1LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGE1LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAKLSAgICAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDllLCAweDQ0LCAweDIwLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDFjLCAweDJkLCAweDdkLCAweDI0LCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDU5LCAKLSAgICAweGQwLCAweDIyLCAweGQyLCAweDBlLCAweDdlLCAweDA0LCAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAKLSAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAKLSAgICAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI1LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAKLSAgICAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA2LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI1LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAKLSAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKLSAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA2LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI1LCAweDllLCAKLSAgICAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAKLSAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAKLSAgICAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAKLSAgICAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA2LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAKLSAgICAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAKLSAgICAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAKLSAgICAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAKLSAgICAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAKLSAgICAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAKLSAgICAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDViLCAweDJjLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAKLSAgICAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDViLCAweDJjLCAweGRhLCAweGI4LCAweDAyLCAweDVjLCAweDUzLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAKLSAgICAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDU2LCAweDEyLCAweDQzLCAweDQ3LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAKLSAgICAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAKLSAgICAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAKLSAgICAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDViLCAweDgwLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBmLCAweDAxLCAweDIyLCAweDIwLCAweDJmLCAKLSAgICAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDc1LCAweDJmLCAweGE3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg3LCAweDAwLCAweDgwLCAweDA2LCAKLSAgICAweDIwLCAweDJmLCAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAKLSAgICAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVmLCAweDgwLCAweDMwLCAweDM3LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBmLCAweDIyLCAweDMwLCAKLSAgICAweGU2LCAweDAyLCAweGQyLCAweDY3LCAweDdlLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAKLSAgICAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAKLSAgICAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAKLSAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY3LCAweGM0LCAKLSAgICAweDIyLCAweGMyLCAweDY3LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDg3LCAweGJlLCAKLSAgICAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE3LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDdlLCAKLSAgICAweDM3LCAweDAxLCAweDg3LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKLSAgICAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKLSAgICAweDI0LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDIwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDY3LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDVjLCAweGZkLCAweDIyLCAweGQyLCAKLSAgICAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDc1LCAweDJmLCAweDk0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI3LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAKLSAgICAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDI0LCAweDA3LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI3LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAKLSAgICAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKLSAgICAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA3LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI3LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAKLSAgICAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKLSAgICAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAKLSAgICAweDIzLCAweDIzLCAweDQ0LCAweDA3LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAKLSAgICAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAKLSAgICAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAKLSAgICAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAKLSAgICAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAKLSAgICAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDVlLCAweDU5LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKLSAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAKLSAgICAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDVlLCAweDU5LCAweGRhLCAweGI4LCAweDAyLCAweDVmLCAweDgwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKLSAgICAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDVmLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDEyLCAKLSAgICAweDQzLCAweDVlLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKLSAgICAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAKLSAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKLSAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDVlLCAweGFkLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDAyLCAweDYwLCAweGZmLCAKLSAgICAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAKLSAgICAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAKLSAgICAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAweDUxLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAKLSAgICAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDAyLCAKLSAgICAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAKLSAgICAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDU0LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAKLSAgICAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAKLSAgICAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAKLSAgICAweGQyLCAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAKLSAgICAweDAyLCAweGMyLCAweDU2LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAweGMyLCAweDVmLCAweGE1LCAKLSAgICAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDAyLCAweDYwLCAweGZmLCAweDU0LCAKLSAgICAweGYwLCAweGM0LCAweGE1LCAweGZmLCAweGM0LCAweGE1LCAweDRmLCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAweDJkLCAweGNhLCAweDc5LCAKLSAgICAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAyLCAweDdlLCAKLSAgICAweDY0LCAweDAwLCAweDAyLCAweDAyLCAweDYxLCAweDVlLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAKLSAgICAweDJkLCAweGNhLCAweDc5LCAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweDYwLCAKLSAgICAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAzLCAweDdlLCAweDY0LCAweDAwLCAweDAzLCAweDAyLCAweDYxLCAweDVlLCAweGQyLCAweDA0LCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweGNiLCAweDJkLCAweDI2LCAweGJlLCAweDI0LCAweDA0LCAweDAwLCAweDM4LCAweDJlLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdlLCAweDc5LCAweGEwLCAweDdhLCAweDA5LCAweGEwLCAweDBiLCAweDA0LCAweDBiLCAweDc0LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweDIzLCAweGE1LCAweGRiLCAweGVmLCAweDdhLCAweDI3LCAweDAxLCAweGNiLCAweDdlLCAweDI1LCAweDMwLCAweDJkLCAweDI2LCAweDdhLCAweDI1LCAKLSAgICAweDMwLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweGRhLCAweDE5LCAweGMyLCAweGQ3LCAweDIyLCAweDc1LCAweDJmLCAweDlhLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGRhLCAweDE5LCAweGQyLCAweGQ3LCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGQ3LCAweDQ4LCAweGYxLCAweDQ2LCAweDY1LCAweDQ3LCAKLSAgICAweDVmLCAweDQ5LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ4LCAweDU2LCAweDQ1LCAweDJhLCAweDQ5LCAweDZlLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ5LCAweDc1LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweDFlLCAweDQ5LCAweDkyLCAweDRhLCAKLSAgICAweDhjLCAweDRjLCAweDU3LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRiLCAweDgzLCAweDQ1LCAweDJhLCAweDRjLCAweDliLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweGEyLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweDRiLCAweDRjLCAweGJmLCAweDRkLCAKLSAgICAweGI5LCAweDRmLCAweDg0LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRlLCAweGIwLCAweDQ1LCAweDJhLCAweDRmLCAweGM4LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweGNmLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweDc4LCAweDRmLCAweGVjLCAweDUwLCAKLSAgICAweGU2LCAweDUyLCAweGIxLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUxLCAweGRkLCAweDQ1LCAweDJhLCAweDUyLCAweGY1LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweGZjLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweGE1LCAweDUzLCAweDE5LCAweDU0LCAKLSAgICAweDEzLCAweDU1LCAweGRlLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweDBhLCAweDQ1LCAweDJhLCAweDU2LCAweDIyLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU2LCAweDI5LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweGQyLCAweDU2LCAweDQ2LCAweDU3LCAKLSAgICAweDQwLCAweDU5LCAweDBiLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweDM3LCAweDQ1LCAweDJhLCAweDU5LCAweDRmLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU5LCAweDU2LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweGZmLCAweDU5LCAweDczLCAweDVhLCAKLSAgICAweDZkLCAweDVjLCAweDM4LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweDY0LCAweDQ1LCAweDJhLCAweDVjLCAweDdjLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVjLCAweDgzLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweDJjLCAweDVjLCAweGEwLCAweDVkLCAKLSAgICAweDlhLCAweDVmLCAweDY1LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVlLCAweDkxLCAweDQ1LCAweDJhLCAweDVmLCAweGE5LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweGIwLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweGNhLCAweGI4LCAweDc1LCAweDJmLCAweDAyLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkxLCAweDAzLCAweDIwLCAweGU1LCAweDIwLCAweDMwLCAweGUwLCAweDA1LCAweDEyLCAweDZiLCAweDA1LCAKLSAgICAweDgwLCAweDMwLCAweDMwLCAweGUxLCAweDA1LCAweDEyLCAweDY0LCAweDg2LCAweDgwLCAweDI4LCAweDMwLCAweGUyLCAweDA1LCAweDEyLCAweDYzLCAweGY1LCAKLSAgICAweDgwLCAweDIwLCAweDMwLCAweGUzLCAweDFkLCAweDEyLCAweDY1LCAweDYxLCAweDgwLCAweDE4LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDMwLCAweGUxLCAKLSAgICAweDAzLCAweDAyLCAweDY3LCAweDVmLCAweDMwLCAweGU2LCAweDA1LCAweDEyLCAweDZjLCAweDZhLCAweDgwLCAweDA2LCAweDIwLCAweGUyLCAweDAzLCAweDAyLCAKLSAgICAweDAwLCAweDgwLCAweGRhLCAweGI4LCAweDMyLCAweDc1LCAweDJmLCAweDEwLCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDM5LCAweGNhLCAKLSAgICAweDU5LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDZjLCAweGFhLCAweGJlLCAweGIwLCAweDQwLCAKLSAgICAweDI4LCAweDBhLCAweDEyLCAweDY0LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDM5LCAweGRhLCAweDBiLCAweDIyLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDgwLCAweGYxLCAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDJkLCAweDM1LCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDJmLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweGM1LCAweDdlLCAweDM3LCAweDAxLCAweGMzLCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAweDQ0LCAweDJjLCAweDJjLCAKLSAgICAweDM4LCAweDI1LCAweDdhLCAweDQ3LCAweDAxLCAweGMzLCAweDc1LCAweDJmLCAweDExLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDEyLCAweDY3LCAweDlmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDEyLCAweDY2LCAweDMwLCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDE2LCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweGY0LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDJjLCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY3LCAweDlmLCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAKLSAgICAweDdkLCAweDU0LCAweDJkLCAweDQzLCAweDgwLCAweGJjLCAweDc1LCAweDJmLCAweDE4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAKLSAgICAweGNhLCAweDJiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDYzLCAweDkxLCAweDFhLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDdlLCAweGIwLCAweDgwLCAweDljLCAweGI2LCAweDYwLCAweDM4LCAweDZjLCAweGFhLCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDlkLCAKLSAgICAweDM1LCAweDQwLCAweDM3LCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM3LCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAKLSAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNiLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDdkLCAweDQ1LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDFlLCAweDIwLCAweGU1LCAweDEzLCAweDc1LCAweDJmLCAweDE5LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDkxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGRhLCAweDJiLCAweGRhLCAweDM5LCAweGRhLCAweDA5LCAweDIyLCAweDgwLCAweDM0LCAweDJkLCAweDUzLCAweDZkLCAweDMzLCAweDYwLCAweDAyLCAKLSAgICAweDgwLCAweGMxLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDgwLCAweGUxLCAKLSAgICAweGNhLCAweDU5LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAKLSAgICAweDU0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDEyLCAweDY4LCAweGQ0LCAweGRhLCAweDQ5LCAweDgwLCAweGIwLCAweDdlLCAweDBmLCAKLSAgICAweDJjLCAweDNlLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDJjLCAweDNlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweGE1LCAweDdlLCAweDJmLCAweDJjLCAweDVlLCAKLSAgICAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJjLCAweDVlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFmLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAKLSAgICAweDIyLCAweDc1LCAweDJmLCAweDI4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweGRiLCAweDdlLCAKLSAgICAweDBkLCAweDMwLCAweDdlLCAweDFkLCAweDM0LCAweDdlLCAweDJkLCAweDM4LCAweDdlLCAweDNkLCAweDNjLCAweDdlLCAweDg1LCAweDQwLCAweDdkLCAweDkwLCAKLSAgICAweDRkLCAweDkxLCAweDRkLCAweDkyLCAweDRkLCAweDkzLCAweDRkLCAweDk0LCAweDRkLCAweDk1LCAweDRkLCAweDk2LCAweDRkLCAweDk3LCAweDRkLCAweDk4LCAKLSAgICAweDY4LCAweGI4LCAweDdhLCAweDEzLCAweDkxLCAweDE3LCAweDdhLCAweDAzLCAweDkxLCAweDE3LCAweDdhLCAweDMzLCAweDkxLCAweDE3LCAweDdhLCAweDIzLCAKLSAgICAweDkxLCAweDE3LCAweDdhLCAweDUzLCAweDkxLCAweDE3LCAweDdhLCAweDQzLCAweDkxLCAweDE3LCAweDdhLCAweDczLCAweDkxLCAweDE3LCAweDdhLCAweDYzLCAKLSAgICAweDkxLCAweDE3LCAweDdhLCAweDkzLCAweDkxLCAweDE3LCAweDdhLCAweDgzLCAweDkxLCAweDE3LCAweDMwLCAweDczLCAweDIyLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDE3LCAweDdhLCAweGEzLCAweDkxLCAweDE3LCAweDdhLCAweGQzLCAweDkxLCAweDE3LCAweDdhLCAweGMzLCAweDkxLCAweDE3LCAweDdhLCAweGYzLCAweDkxLCAKLSAgICAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdkLCAweDc4LCAweDdhLCAweGYzLCAweDkxLCAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdlLCAKLSAgICAweGIzLCAweDkxLCAweDFlLCAweDMwLCAweGU1LCAweDAzLCAweDAyLCAweDY1LCAweDNjLCAweDc1LCAweDJmLCAweDI5LCAweDEyLCAweDczLCAweDM1LCAweDIwLCAKLSAgICAweDczLCAweDA4LCAweDc1LCAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweDA2LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDc0LCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDZkLCAweDAwLCAweDdkLCAweDEwLCAweDdhLCAweDBkLCAweDMwLCAweDdhLCAweDBkLCAweDM0LCAKLSAgICAweDdhLCAweDBkLCAweDM4LCAweDdhLCAweDBkLCAweDNjLCAweDdhLCAweDA1LCAweDQwLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDRkLCAweDMzLCAweDY4LCAweDNiLCAweDdlLCAweDA3LCAweDAxLCAweGMxLCAweDdlLCAweDU0LCAweDJjLCAweDJkLCAKLSAgICAweDlkLCAweDUwLCAweGJkLCAweDM1LCAweDQwLCAweDAyLCAweDdkLCAweDM1LCAweGNhLCAweDM5LCAweDdlLCAweDY1LCAweDRiLCAweDk5LCAweDY0LCAweGRhLCAKLSAgICAweDM5LCAweDdlLCAweDA3LCAweDAxLCAweGM1LCAweDlkLCAweDAzLCAweDdhLCAweDA3LCAweDAxLCAweGM1LCAweDJlLCAweDM3LCAweDAxLCAweGMxLCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweGMxLCAweGJlLCAweDM0LCAweDJjLCAweDJjLCAweDI4LCAweGM3LCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweGMxLCAweDgwLCAweGJkLCAweDIyLCAweDc1LCAweDJmLCAweDUzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE1LCAweDRkLCAweDgwLCAweDExLCAweDc1LCAKLSAgICAweDJmLCAweDUxLCAweDEyLCAweDczLCAweDM1LCAweDBiLCAweDA4LCAweDEwLCAweDBiLCAweDA1LCAweDllLCAweDM0LCAweDAwLCAweDAyLCAweDI4LCAweDRkLCAKLSAgICAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDI3LCAweDU0LCAweDA3LCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDM5LCAweDFlLCAweDdjLCAweGIyLCAKLSAgICAweDU0LCAweDc4LCAweDAzLCAweDAzLCAweDAzLCAweDdjLCAweDJiLCAweDlkLCAweDEzLCAweDQwLCAweDFhLCAweDY4LCAweDEyLCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweDdhLCAweDI1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDA5LCAweDdhLCAweDY1LCAweDRiLCAweDg5LCAweDI0LCAweDAyLCAweDY3LCAweDE3LCAweDdlLCAKLSAgICAweDY0LCAweDY2LCAweDdmLCAweDgwLCAweGYyLCAweDJkLCAweDEzLCAweDlkLCAweDMxLCAweGNhLCAweDM5LCAweDdkLCAweDMxLCAweDJkLCAweDEwLCAweGNhLCAKLSAgICAweDE5LCAweGNhLCAweDI5LCAweDk5LCAweDI0LCAweGRhLCAweDI5LCAweGRhLCAweDA5LCAweGRhLCAweDM5LCAweDgwLCAweGEyLCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweDdlLCAweDY0LCAweDY2LCAweGY1LCAweDRkLCAweDMzLCAweDc4LCAweDA5LCAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDJhLCAweDdlLCAweDY0LCAweDY2LCAKLSAgICAweDc0LCAweDdhLCAweDY1LCAweDRiLCAweDIyLCAweDc1LCAweDJmLCAweDUyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDIxLCAweDRkLCAweDdlLCAweDA5LCAKLSAgICAweDMwLCAweDBiLCAweDA0LCAweDFiLCAweDM0LCAweDc4LCAweDg5LCAweDgwLCAweGQ0LCAweDc1LCAweDJmLCAweDU0LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKLSAgICAweDE1LCAweDRkLCAweDdlLCAweDI1LCAweDRmLCAweDgwLCAweDkwLCAweDVlLCAweDIwLCAweDA3LCAweDU0LCAweDc4LCAweDdlLCAweDQ0LCAweDY3LCAweDdkLCAKLSAgICAweDMwLCAweGU2LCAweDE2LCAweDRkLCAweDMzLCAweDY4LCAweDI2LCAweDFiLCAweDM0LCAweDdlLCAweDA5LCAweDQwLCAweDBiLCAweDA0LCAweDdlLCAweDQ0LCAKLSAgICAweDM0LCAweGZhLCAweDIwLCAweGUzLCAweDA0LCAweDdlLCAweDQ0LCAweDY3LCAweDg1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAweDk5LCAweDQ0LCAweGRhLCAKLSAgICAweDM5LCAweGRhLCAweDA5LCAweDdlLCAweDY0LCAweDY2LCAweDdmLCAweDRkLCAweDMzLCAweDY4LCAweGE2LCAweDg5LCAweDY0LCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweGY1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDU4LCAweDgwLCAweDk5LCAweDdlLCAweDE1LCAweDRkLCAweGU1LCAweDRmLCAweDgwLCAweGM0LCAweGMwLCAKLSAgICAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGNhLCAweDE5LCAweDc1LCAweDJmLCAweGZlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDAwLCAKLSAgICAweDUzLCAweDAyLCAweDQwLCAweDUyLCAweGRhLCAweDE5LCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDAzLCAweGE1LCAweGNiLCAKLSAgICAweDE5LCAweGIxLCAweDgwLCAweDAwLCAweDIyLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAKLSAgICAweDdlLCAweDA0LCAweDY4LCAweGIxLCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDI4LCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAKLSAgICAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweDAwLCAweDI4LCAweDdhLCAweDAzLCAweDk1LCAKLSAgICAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAKLSAgICAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAweDdlLCAweDA0LCAweDY5LCAweGU2LCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDM4LCAweDdhLCAweGIzLCAKLSAgICAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAKLSAgICAweDAwLCAweDM4LCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAKLSAgICAweGNhLCAweDI5LCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAweDU0LCAKLSAgICAweDAyLCAweDIwLCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDMwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAweDk1LCAKLSAgICAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDE3LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDE5LCAKLSAgICAweGRhLCAweDI5LCAweDIyLCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAKLSAgICAweDU0LCAweDAyLCAweDM4LCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDIwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAKLSAgICAweDk1LCAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDg4LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAKLSAgICAweDE5LCAweDIyLCAweDAyLCAweDZiLCAweGE4LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAKLSAgICAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDdmLCAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDFjLCAweGI0LCAweDAxLCAweDE5LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAKLSAgICAweDA1LCAweDEyLCAweDZiLCAweDZjLCAweDgwLCAweDIzLCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDFjLCAweDEyLCAweDZjLCAweGFhLCAKLSAgICAweDgwLCAweDE3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDA1LCAweDEyLCAweDZjLCAweGFhLCAweDgwLCAweDBiLCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAweDAzLCAweDEyLCAweDZiLCAweDZjLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAKLSAgICAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDIwLCAweGU0LCAweDE5LCAweDc1LCAKLSAgICAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdlLCAweDcwLCAweDBhLCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAKLSAgICAweDAxLCAweDFmLCAweDAyLCAweDZjLCAweDA0LCAweDAyLCAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDBiLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDE0LCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAweDAyLCAweDBjLCAweDEyLCAweDZiLCAweGI0LCAweDAyLCAweDZiLCAKLSAgICAweGE4LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDJjLCAweDdmLCAweDdhLCAKLSAgICAweDAzLCAweDJjLCAweDgwLCAweDIyLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweDYwLCAweDYwLCAweDA1LCAweGI0LCAweDQwLCAweDFlLCAweDgwLCAKLSAgICAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA1LCAweDE1LCAweDc1LCAweDJmLCAweDcxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc5LCAweDdlLCAweGEwLCAweDAxLCAweDdhLCAweGEzLCAweDkxLCAweDA2LCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDIyLCAweDc0LCAweDAwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweGJlLCAweDU3LCAweDJjLCAweDdjLCAweDI4LCAKLSAgICAweDA0LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDdhLCAweDBmLCAweDJjLCAweDgyLCAweDdhLCAweDU3LCAweDJjLCAweDg2LCAweDc0LCAweDEwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweDUzLCAKLSAgICAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDIwLCAweGU0LCAweDRjLCAweDdlLCAweGVmLCAweDJjLCAweDgyLCAweDdlLCAweGY3LCAweDJjLCAweDg2LCAweDdlLCAKLSAgICAweDA3LCAweDJjLCAweDg2LCAweDRkLCAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDE3LCAweGEzLCAKLSAgICAweGE1LCAweDA4LCAweDFiLCAweGY0LCAweDY4LCAweDA2LCAweGE1LCAweGI4LCAweDEwLCAweGYwLCAweDgwLCAweDE5LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDJjLCAweDdmLCAweGJlLCAweDAwLCAweDEwLCAweDY4LCAweDBkLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdmLCAweDc0LCAKLSAgICAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDdhLCAweGVmLCAweDJjLCAweDgyLCAweDdhLCAweGY3LCAweDJjLCAweDg2LCAweDc1LCAweDJmLCAweDA2LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAKLSAgICAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAxLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDEyLCAweDZkLCAweDE5LCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAKLSAgICAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDgwLCAweGI0LCAweDAyLCAweDExLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDgwLCAweDdhLCAweGIzLCAweDJjLCAKLSAgICAweDdmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGI0LCAweDAxLCAweDQ2LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDIwLCAKLSAgICAweGU2LCAweDQyLCAweDdlLCAweDIzLCAweDkxLCAweDFhLCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDJjLCAweDgxLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKLSAgICAweDJjLCAweDgxLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDJjLCAweDg4LCAweDdlLCAweGIzLCAweDkxLCAweDE2LCAweDdhLCAweDA5LCAweGIwLCAKLSAgICAweDBiLCAweDA0LCAweGE1LCAweGRiLCAweGY0LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc1LCAweDJmLCAweDcwLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDgxLCAweDdlLCAweGEzLCAweDJjLCAweDdkLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDZkLCAweGI5LCAKLSAgICAweDIyLCAweDAyLCAweDcxLCAweGYyLCAweGRhLCAweDU5LCAweDAyLCAweDZjLCAweDdjLCAweDc0LCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAKLSAgICAweDAzLCAweDkxLCAweDEwLCAweDdlLCAweDEzLCAweDkxLCAweDExLCAweDdlLCAweDMzLCAweDkxLCAweDEyLCAweDdlLCAweDIzLCAweDkxLCAweDEzLCAweDdlLCAKLSAgICAweDUzLCAweDkxLCAweDE0LCAweDdlLCAweDQzLCAweDkxLCAweDE1LCAweDdlLCAweDczLCAweDkxLCAweDE2LCAweDdlLCAweDYzLCAweDkxLCAweDE3LCAweDdhLCAKLSAgICAweDBmLCAweDJjLCAweDc2LCAweDdhLCAweDFmLCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDA0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKLSAgICAweDMxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDQxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDYxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA0LCAweDEyLCAweDZkLCAweDhkLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAKLSAgICAweDE0LCAweDAxLCAweDAyLCAweDdhLCAweDA3LCAweDJjLCAweDg2LCAweDdhLCAweDAzLCAweDJjLCAweDgxLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDIwLCAKLSAgICAweGU3LCAweDBmLCAweDdhLCAweDIzLCAweDJjLCAweDgwLCAweDdhLCAweDMzLCAweDJjLCAweDdmLCAweGJlLCAweDA3LCAweDJjLCAweDdjLCAweDY4LCAweDA5LCAKLSAgICAweDIyLCAweDdhLCAweDMzLCAweDJjLCAweDgwLCAweDdhLCAweDIzLCAweDJjLCAweDdmLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweGUzLCAweDIzLCAKLSAgICAweDIzLCAweDMwLCAweGUwLCAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAKLSAgICAweDAzLCAweDAyLCAweDcxLCAweGYyLCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDZkLCAKLSAgICAweGU1LCAweDc1LCAweDg0LCAweGZmLCAweDczLCAweDAyLCAweDZmLCAweGEwLCAweDAyLCAweDZlLCAweDJkLCAweDAyLCAweDcwLCAweDM5LCAweDAyLCAweDcwLCAKLSAgICAweDU0LCAweDAyLCAweDZmLCAweDM3LCAweDAyLCAweDZlLCAweGMyLCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg4LCAKLSAgICAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAKLSAgICAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDhlLCAweDAyLCAweDcxLCAweDYwLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAKLSAgICAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA2LCAweDJhLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc4LCAweDYwLCAweDc5LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAKLSAgICAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDU4LCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA4LCAweDFjLCAweDc1LCAweDJmLCAweDc0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAKLSAgICAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAwLCAweDMzLCAweDc1LCAweDJmLCAweDc1LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAKLSAgICAweDMwLCAweGUwLCAweDA3LCAweDc0LCAweDAyLCAweDdhLCAweDBiLCAweGIwLCAweDgwLCAweDA1LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAKLSAgICAweDE0LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKLSAgICAweDcxLCAweGYyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc3LCAweGI0LCAweDAwLCAweDVmLCAweDc1LCAweDJmLCAweDc2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAKLSAgICAweDBmLCAweGI0LCAweDAyLCAweDA1LCAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAKLSAgICAweDBmLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDExLCAweDMwLCAweGUwLCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAKLSAgICAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAweDE0LCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAKLSAgICAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAweDBmLCAweGI0LCAweDAyLCAweDA1LCAKLSAgICAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAweDBmLCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAwLCAweDI2LCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDAxLCAweDBlLCAweDc1LCAweDJmLCAKLSAgICAweDc3LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFiLCAweGI0LCAweDAzLCAweDBlLCAweDc1LCAKLSAgICAweDJmLCAweDc4LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDgwLCAweDBhLCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDEyLCAweDcxLCAweGYyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDAyLCAweDZiLCAweGRlLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA5LCAweDFmLCAweDc1LCAweDJmLCAweDc5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDc5LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDBkLCAweGNhLCAweGI4LCAweDEyLCAweDQzLCAweDc5LCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAKLSAgICAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDJmLCAweDdhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAKLSAgICAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDJmLCAweDdiLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAKLSAgICAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAKLSAgICAweDc1LCAweDJmLCAweDdjLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAKLSAgICAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDJjLCAweDc4LCAKLSAgICAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDczLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAKLSAgICAweDcxLCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBiLCAweGY2LCAKLSAgICAweDc1LCAweDJmLCAweDdkLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweDdlLCAweGEzLCAweDJjLCAweDdiLCAweDRjLCAweGFiLCAKLSAgICAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBhLCAweGNmLCAweDc1LCAweDJmLCAweDdlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDc5LCAweDcwLCAweGMzLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAKLSAgICAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc3LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDJmLCAweGMzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAKLSAgICAweDE3LCAweDJjLCAweDc4LCAweDdlLCAweDE4LCAweDJjLCAweDg4LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAweDEyLCAKLSAgICAweDczLCAweDQxLCAweDAyLCAweDcxLCAweDVhLCAweGI0LCAweDA2LCAweDQyLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDU4LCAKLSAgICAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDJjLCAweDc4LCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAKLSAgICAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweGMwLCAweGE4LCAKLSAgICAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDczLCAweDdhLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAKLSAgICAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDQwLCAweDY1LCAweDgwLCAweDYwLCAweGI0LCAweDAwLCAweDI0LCAweGMyLCAweGFmLCAweDdlLCAKLSAgICAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDZiLCAweGRlLCAweGU0LCAweDhkLCAweGVmLCAKLSAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAweDAwLCAweDAwLCAKLSAgICAweDMyLCAweGI0LCAweDA5LCAweDIwLCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweDIzLCAweDkxLCAweDA3LCAweDdlLCAweDU3LCAKLSAgICAweDJjLCAweDc4LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweDRlLCAweDIwLCAweDAyLCAweDgwLCAweDAzLCAweDVlLCAweDIwLCAweGZkLCAweDdhLCAweDIzLCAKLSAgICAweDkxLCAweDA3LCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDJjLCAweDdhLCAweDdlLCAweDE3LCAweDJjLCAKLSAgICAweDc4LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAKLSAgICAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDJmLCAweGMyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDJjLCAKLSAgICAweDc4LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA1LCAweDQxLCAweDc1LCAweDJmLCAweGMwLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAKLSAgICAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAweDJjLCAweDc4LCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAKLSAgICAweDEyLCAweDczLCAweDQxLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDJjLCAKLSAgICAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAxLCAweDIwLCAweDdlLCAKLSAgICAweDAwLCAweDAwLCAweDdlLCAweDEwLCAweDAxLCAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKLSAgICAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDA3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDc0LCAKLSAgICAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDE1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDExLCAweDdlLCAweGIzLCAweDkxLCAweDE1LCAweDU0LCAweDYwLCAweGJlLCAweGIwLCAweDQwLCAweDY4LCAweDA4LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE1LCAweDgwLCAweGVkLCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAKLSAgICAweDc0LCAweGZmLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAKLSAgICAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAweDFmLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKLSAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDczLCAweDQxLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAKLSAgICAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKLSAgICAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAKLSAgICAweDMxLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAweDdhLCAKLSAgICAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweGJkLCAweDc0LCAweDc4LCAweDE3LCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDEyLCAweDczLCAweDdhLCAweDQwLCAweDBjLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKLSAgICAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAKLSAgICAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAKLSAgICAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweGMyLCAweDdlLCAweDFiLCAweGIwLCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweGI0LCAweDAxLCAweDA0LCAweDdlLCAKLSAgICAweDM0LCAweDdmLCAweGNjLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAKLSAgICAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAKLSAgICAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAKLSAgICAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAKLSAgICAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAKLSAgICAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKLQotLy8gU2VnbWVudCAjMTYsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzYsIExlbmd0aCA0Ci0weGZmLDB4MDAsMHhjNiwweDdmLDB4MDQsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDAzLCAweDAwLCAKLQotLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjczMzUsIExlbmd0aCAzMjgKLTB4ZmYsMHgwMCwweDM1LDB4NzMsMHg0OCwweDAxLAotICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIAotICAgIDB4MGIsIDB4YzAsIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIAotICAgIDB4ZmMsIDB4N2MsIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIAotICAgIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIAotICAgIDB4ZmEsIDB4N2YsIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIAotICAgIDB4NDAsIDB4OWQsIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4NzMsIDB4YTQsIAotICAgIDB4ZGEsIDB4NzksIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4N2UsIAotICAgIDB4YzAsIDB4MDMsIDB4N2UsIDB4ZDAsIDB4MDAsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIAotICAgIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIAotICAgIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIAotICAgIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIAotICAgIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmYsIDB4NmQsIDB4MDAsIDB4N2MsIAotICAgIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIAotICAgIDB4MDEsIDB4NzgsIDB4MTksIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4NmMsIAotICAgIDB4ZGMsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTAsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIAotICAgIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIAotICAgIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIAotICAgIDB4ZmUsIDB4MGIsIDB4MWEsIDB4MDAsIDB4NWUsIDB4MTAsIDB4MWYsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIDB4N2UsIAotICAgIDB4MTgsIDB4NzQsIDB4MjQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIDB4YjgsIAotICAgIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIAotfTsKLQotc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7Ci0JMiwgMCwgMyB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0OTZiMDYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NDcgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0IEJpbmFyeSBJbWFnZSAoZm9yIFRJIGJhc2VkIHByb2R1Y3RzKQotLy8qIEdlbmVyYXRlZCBieSBUSUJpbjJDIHYyLjAwICh3YXRjaHBvcnQpCi0vLyogQ29weXJpZ2h0IChDKSAyMDAxIEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotc3RhdGljIGludCBJTUFHRV9TSVpFID0gMTI5Mzg7Ci0KLXN0cnVjdCBFREdFX0ZJUk1XQVJFX1ZFUlNJT05fSU5GTwotewotCXVuc2lnbmVkIGNoYXIgICBNYWpvclZlcnNpb247Ci0JdW5zaWduZWQgY2hhciAgIE1pbm9yVmVyc2lvbjsKLQl1bnNpZ25lZCBzaG9ydCAgQnVpbGROdW1iZXI7Ci19OwotCi1zdGF0aWMgc3RydWN0IEVER0VfRklSTVdBUkVfVkVSU0lPTl9JTkZPIElNQUdFX1ZFUlNJT05fTkFNRSA9Ci17Ci0JNCwgODAsIDAJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKLQotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0gCi17Ci0vLyAgc3RydWN0IEltYWdlSGRyCi0vLyAgewotLy8gICAgICBXT1JEICAgIExlbmd0aDsKLS8vICAgICAgQllURSAgICBDaGVja1N1bTsKLS8vICB9OwotMHg4NywgMHgzMiwKLTB4OWEsCi0KLTB4MDIsIDB4MjcsIDB4YmYsIDB4MDIsIDB4MjEsIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MWUsIDB4MDAsIDB4MDAsCi0weDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAxLCAweDFhLCAweDg1LCAweDNmLCAKLTB4OGMsIDB4ODUsIDB4NDAsIDB4OGEsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZDAsIDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4MDAsIAotMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHhlNSwgMHgzZSwgCi0weDI0LCAweDA4LCAweGY4LCAweGU2LCAweDYwLCAweDJiLCAweGU1LCAweDNlLCAweDI0LCAweDEwLCAweGY4LCAweGE2LCAweDgxLCAweGU1LCAweDNlLCAweDc1LCAKLTB4ZjAsIDB4MjEsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjgsIDB4ZjUsIDB4ODMsIDB4NzgsIDB4OGMsIDB4ZTUsIDB4ODEsIAotMHgwNCwgMHhjMywgMHg5OCwgMHhmOSwgMHg5NCwgMHgyMiwgMHg0MCwgMHgwMywgMHgwMiwgMHgxMSwgMHhkYywgMHhlNiwgMHhmMCwgMHgwOCwgMHhhMywgMHhkOSwKLTB4ZmEsIDB4NzQsIDB4MDgsIDB4MjUsIDB4M2UsIDB4ZjgsIDB4MDUsIDB4M2UsIDB4MDgsIDB4ZTYsIDB4NTQsIDB4ODAsIDB4NzAsIDB4MGMsIDB4ZTUsIDB4M2UsIAotMHhiNCwgMHgwNywgMHhmMywgMHg3OCwgMHgwOCwgMHg3NSwgMHgzZSwgMHgwMCwgMHg4MCwgMHhlZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxMCwgMHhmOCwgMHg4NiwgCi0weDgxLCAweGU1LCAweDNlLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY4LCAweGY1LCAweDgzLCAKLTB4NzgsIDB4OGMsIDB4ZTUsIDB4ODEsIDB4MDQsIDB4YzMsIDB4OTgsIDB4ZjksIDB4ZTAsIDB4ZjYsIDB4MDgsIDB4YTMsIDB4ZDksIDB4ZmEsIDB4ZDAsIDB4MDcsIAotMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgCi0weGQwLCAweDgyLCAweGQwLCAweGYwLCAweGQwLCAweGQwLCAweGQwLCAweGUwLCAweDMyLCAweDMwLCAweDAxLCAweDRkLCAweDMwLCAweGI0LCAweDQ4LCAweDEwLCAKLTB4MDAsIDB4NDUsIDB4OTAsIDB4ZmYsIDB4MDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjgsIDB4OTAsIDB4ZmYsIDB4NDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjksIAotMHg5MCwgMHhmZiwgMHgxMCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYSwgMHg5MCwgMHhmZiwgMHg1MCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYiwgMHg3NCwgMHgwMCwgCi0weGY1LCAweDgyLCAweDc0LCAweGY4LCAweGY1LCAweDgzLCAweGUwLCAweGM4LCAweGYwLCAweDY4LCAweDYwLCAweDAyLCAweDdlLCAweDA0LCAweGEzLCAweGUwLCAKLTB4YzksIDB4ZjAsIDB4NjksIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4Y2EsIDB4ZjAsIDB4NmEsIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIAotMHhhMywgMHhlMCwgMHhjYiwgMHhmMCwgMHg2YiwgMHg2MCwgMHgwMiwgMHg3ZSwgMHgwNCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHhkMCwgMHhjMCwgMHhmMCwgCi0weGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAKLTB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4NzQsIDB4MTUsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjMsIDB4NzQsCi0weDY2LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweGYwLCAweDcwLCAweDE2LCAweDc0LCAweGZmLCAweGYwLCAweDc0LAotMHgxYywgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwNCwgMHgxNCwgMHhmMCwgMHg3MCwgMHgwNCwgMHhjMiwgMHg5MCwKLTB4ODAsIDB4ZmMsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4ZTUsIDB4ODEsIDB4OTQsIDB4ZmQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MTEsCi0weGRjLCAweDg1LCAweDQxLCAweDhkLCAweDg1LCAweDQyLCAweDhiLCAweDc0LCAweGIyLCAweGY1LCAweDgyLCAweDc0LCAweGZhLCAweGY1LCAweDgzLCAweGUwLAotMHhiNCwgMHgwMSwgMHgxYiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg0YSwgMHhlMCwgMHgzMCwgMHhlNywgMHgyYywgMHg5MCwgMHhmZiwKLTB4NGUsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MjUsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MjAsIDB4YjQsIDB4MDIsCi0weDFkLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDMwLCAweGU3LCAweDA1LCAweDEyLCAweDI4LCAweDRlLCAweDgwLAotMHgwOSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg3NCwgMHgwMywgMHhmMCwgMHg4MCwgMHgwNCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhhMywgMHhlMCwKLTB4YjQsIDB4MDEsIDB4MWIsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4OTAsIDB4ZmYsIDB4NTIsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MmMsIDB4OTAsIDB4ZmYsCi0weDU2LCAweGUwLCAweDMwLCAweGU3LCAweDI1LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDI1LCAweGI0LCAweDAyLAotMHgyMiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg3YSwgMHhlMCwgMHgzMCwgMHhlNywgMHgwNSwgMHgxMiwgMHgyOCwgMHg0ZSwgMHg4MCwKLTB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ODAsIDB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ODAsIDB4MDMsCi0weDAyLCAweDAyLCAweDkwLCAweDc0LCAweDE2LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweDA0LCAweGYxLCAweDIwLAotMHgwMiwgMHgwMywgMHgzMCwgMHgwMSwgMHhlYiwgMHg3NCwgMHgxOSwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmYywKLTB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4NjQsIDB4MDQsIDB4NzAsIDB4MGYsIDB4ZWMsIDB4NzAsIDB4NjIsIDB4N2UsIDB4MDEsCi0weDEyLCAweDAwLCAweGM5LCAweDdjLCAweDBhLCAweDdkLCAweGZhLCAweDAyLCAweDAyLCAweDYxLCAweDEyLCAweDAwLCAweGM5LCAweGVlLCAweDY0LCAweDA0LAotMHg2MCwgMHgxZCwgMHhlYywgMHg3MCwgMHg0YiwgMHg3YywgMHgwYSwgMHhlZCwgMHgxNCwgMHhmZCwgMHg3MCwgMHgxNSwgMHhlZSwgMHg2NCwgMHgwMiwgMHg2MCwKLTB4MDcsIDB4N2UsIDB4MDIsIDB4N2QsIDB4MzIsIDB4MDIsIDB4MDIsIDB4NjEsIDB4N2UsIDB4MDEsIDB4N2QsIDB4ZmEsIDB4MDIsIDB4MDIsIDB4NjEsIDB4N2MsCi0weDBhLCAweDc0LCAweDE5LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweGEzLCAweGVkLCAweGYwLCAweGEzLCAweGVlLAotMHhmMCwgMHgxNCwgMHg2MCwgMHgxOCwgMHgyMCwgMHhlMSwgMHgwZiwgMHgyMCwgMHgwMSwgMHgwNiwgMHhkMiwgMHhiMSwgMHhjMiwgMHhiMCwgMHg4MCwgMHgxMCwKLTB4YzIsIDB4YjEsIDB4ZDIsIDB4YjAsIDB4ODAsIDB4MGEsIDB4YzIsIDB4YjEsIDB4YzIsIDB4YjAsIDB4ODAsIDB4MDQsIDB4ZDIsIDB4YjAsIDB4ZDIsIDB4YjEsCi0weDc4LCAweDE5LCAweDc5LCAweDA5LCAweDdhLCAweDA3LCAweGU3LCAweDcwLCAweDA0LCAweGE2LCAweDAwLCAweDgwLCAweDBiLCAweGU2LCAweDYwLCAweDA4LAotMHgxNiwgMHhlNiwgMHg3MCwgMHgwNCwgMHhlNywgMHg0NCwgMHg4MCwgMHhmNywgMHgwOCwgMHgwOSwgMHhkYSwgMHhlYSwgMHhlNSwgMHgzZCwgMHg2MCwgMHgxMywKLTB4MTQsIDB4ZjUsIDB4M2QsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4NzYsIDB4MDAsIDB4MTIsIDB4MTEsIDB4NTcsIDB4ZDIsCi0weDhjLCAweGQyLCAweDhkLCAweGQwLCAweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDA1LCAweGQwLCAweDA0LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLAotMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHhmMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHhmZiwKLTB4MDQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDYsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4ZWMsIDB4ZmYsCi0weGVhLCAweGZlLCAweGVmLCAweGMzLCAweDk0LCAweDA4LCAweGVlLCAweDk0LCAweDAxLCAweDUwLCAweDAyLCAweDgwLCAweDA0LCAweDdlLCAweDAxLCAweDdmLAotMHgwOCwgMHg4ZSwgMHgzYiwgMHg4ZiwgMHgzYywgMHg5MCwgMHhmZiwgMHgwMiwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmYSwgMHhlYywgMHhmZiwgMHhlYSwKLTB4OTAsIDB4ZmEsIDB4YmQsIDB4ZjAsIDB4ZWYsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4ZTQsIDB4ZjUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YzMsCi0weDk0LCAweDAyLCAweDUwLCAweDBmLCAweDEyLCAweDFjLCAweGMxLCAweGU0LCAweDEyLCAweDFhLCAweGU4LCAweDA1LCAweDRkLCAweDA0LCAweDEyLCAweDFjLAotMHhiMiwgMHg4MCwgMHhlYSwgMHgxMiwgMHgxYywgMHhlMCwgMHg5MCwgMHhmZiwgMHgwMCwgMHhlMCwgMHhmZiwgMHg1NCwgMHg2MCwgMHgyNCwgMHhjMCwgMHg3MCwKLTB4MDMsIDB4MDIsIDB4MDgsIDB4ZjMsIDB4MjQsIDB4NDAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmUsCi0weDU0LCAweDBmLCAweGY1LCAweDRkLCAweGVlLCAweDMwLCAweGU3LCAweDAzLCAweGQzLCAweDgwLCAweDAxLCAweGMzLCAweDkyLCAweDBhLCAweDkwLCAweGZmLAotMHgwMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywgMHgwMywgMHg4NCwgMHgwMCwgMHgwNCwgMHg1NywgMHgwMSwgMHgwNSwgMHg2YSwgMHgwMywgMHgwNiwgMHgzMSwKLTB4MDUsIDB4MDYsIDB4NzMsIDB4MDYsIDB4MDcsIDB4ZDUsIDB4MDgsIDB4MDgsIDB4MWQsIDB4MDksIDB4MDgsIDB4NzksIDB4MGEsIDB4MDgsIDB4YjksIDB4MGIsCi0weDAwLCAweDAwLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLAotMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg2NCwgMHgwMiwgMHg0NSwgMHgzYiwgMHg2MCwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZWYsIDB4NTQsIDB4MWYsIDB4MTQsIDB4NjAsIDB4MmIsIDB4MTQsIDB4NjAsIDB4NDcsIDB4MjQsIDB4MDIsIDB4NjAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweGVlLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFjLCAweGMxLCAweDc0LCAweDAxLCAweDEyLAotMHgxYSwgMHhlOCwgMHg3OCwgMHg2NywgMHhlNiwgMHgzMCwgMHhlMCwgMHgwOCwgMHgxMiwgMHgxYywgMHhjMSwgMHg3NCwgMHgwMiwgMHgxMiwgMHgxYSwgMHhlOCwKLTB4N2YsIDB4MDIsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDksIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGQzLCAweDk0LCAweDAxLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDdmLAotMHgwMiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHg2MCwgMHgwNywKLTB4NjQsIDB4ODAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MGYsIDB4ZmEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsCi0weDRkLCAweDcwLCAweDE5LCAweDMwLCAweDBhLCAweDBiLCAweDkwLCAweGZmLCAweDgwLCAweDEyLCAweDFjLCAweGJlLCAweDEyLCAweDFhLCAweGU4LCAweDgwLAotMHgyNCwgMHg5MCwgMHhmZiwgMHg4MiwgMHgxMiwgMHgxYywgMHhiZSwgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgxOSwgMHgxNSwgMHg0ZCwgMHgzMCwgMHgwYSwKLTB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4MTIsIDB4MWMsIDB4YmMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWQsIDB4NjMsIDB4MTIsCi0weDFjLCAweGJjLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDFjLCAweGMxLCAweDEyLCAweDFhLCAweGEyLCAweDYwLCAweDA1LCAweDc0LCAweDAxLCAweDEyLAotMHgxYSwgMHhlOCwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwKLTB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsIDB4NzksIDB4MTQsIDB4NjAsIDB4MmQsIDB4MTQsIDB4NjAsCi0weDU5LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDcwLCAweDA0LCAweGEzLCAweGUwLAotMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwKLTB4NzgsIDB4NjcsIDB4ZTYsIDB4NTQsIDB4ZmUsIDB4ZjYsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDYsCi0weDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUwLCAweDA5LCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMSwgMHgwYywgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhkMywgMHg5NCwgMHgwMSwKLTB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDIsCi0weGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDBmLCAweGZhLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LAotMHgzNSwgMHgyMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMCwgMHgwNywgMHhlNSwKLTB4NGQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MGYsIDB4OTAsIDB4ZmYsIDB4ODIsIDB4ZTAsIDB4NTQsIDB4ZjcsCi0weGYwLCAweDkwLCAweGZmLCAweDgwLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDIyLCAweGU1LCAweDRkLCAweDI0LCAweGZlLCAweDYwLCAweDIwLCAweDI0LAotMHhmYiwgMHg2MCwgMHgzNCwgMHgyNCwgMHgwNiwgMHg3MCwgMHgzNSwgMHgzMCwgMHgwYSwgMHgwYywgMHhhMiwgMHgwYSwgMHhlNCwgMHgzMywgMHhmZCwgMHg3ZiwKLTB4MDMsIDB4MTIsIDB4MmUsIDB4NzksIDB4ODAsIDB4MjYsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MmUsIDB4NzksIDB4ODAsIDB4MWQsIDB4MzAsCi0weDBhLCAweDBjLCAweGEyLCAweDBhLCAweGU0LCAweDMzLCAweGZkLCAweDdmLCAweDA0LCAweDEyLCAweDJlLCAweDc5LCAweDgwLCAweDBlLCAweGU0LCAweGZkLAotMHg3ZiwgMHgwNCwgMHgxMiwgMHgyZSwgMHg3OSwgMHg4MCwgMHgwNSwgMHg3ZiwgMHg4NywgMHgxMiwgMHgzMSwgMHhlZiwgMHgxNSwgMHg0ZCwgMHgzMCwgMHgwYSwKLTB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWQsIDB4NjMsIDB4ZjUsCi0weDgzLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLAotMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHgxNCwgMHg2MCwKLTB4MmQsIDB4MTQsIDB4NjAsIDB4NTUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsCi0weDA0LCAweGEzLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLCAweDAzLAotMHgwMiwgMHgwZiwgMHg2ZSwgMHg3OCwgMHg2NywgMHhlNiwgMHg0NCwgMHgwMSwgMHhmNiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwKLTB4MjAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4ZTUsIDB4NGQsCi0weDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDBhLCAweGU1LCAweDRkLCAweGQzLCAweDk0LCAweDAxLCAweDQwLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywKLTB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MzIsIDB4M2YsIDB4NDAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDA2LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDRkLAotMHg3MCwgMHgwOSwgMHgzMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgxZSwgMHgxNCwgMHgwMiwgMHgxZCwgMHhkZiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4MTUsIDB4NGQsIDB4MzAsIDB4MGEsIDB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsCi0weGYwLCAweDgwLCAweDA5LCAweDEyLCAweDFkLCAweDYzLCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMyLAotMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwKLTB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsIDB4NzksIDB4NjAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDkwLAotMHhmZiwgMHhmZiwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgzNSwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgzNSwgMHhmZSwgMHhlNCwgMHhmZiwKLTB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NzAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLAotMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHgyNCwgMHhmZSwgMHg2MCwgMHgzYSwgMHgxNCwgMHg2MCwgMHg3NSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4ZWQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4MTIsIDB4MWUsIDB4MGQsIDB4N2QsCi0weDAzLCAweDEyLCAweDBmLCAweGI1LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDBmLCAweDcyLCAweDkwLCAweGZhLCAweGI2LCAweGUwLAotMHhmZCwgMHhhMywgMHgxMiwgMHgxZCwgMHgyYiwgMHgxMiwgMHgwZiwgMHhkMSwgMHg1MCwgMHgwMiwgMHg4MCwgMHgwNCwgMHhhZSwgMHgzYiwgMHhhZiwgMHgzYywKLTB4MDIsIDB4MTAsIDB4MDIsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MGQsIDB4MTIsIDB4MWUsIDB4MGQsCi0weDdkLCAweDE0LCAweDEyLCAweDBmLCAweGI1LCAweDYwLCAweDEwLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFlLCAweDBkLCAweDdkLCAweDA0LCAweDEyLAotMHgxMCwgMHgwOSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgwZiwgMHg3MiwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHhmZCwgMHhhMywKLTB4MTIsIDB4MWQsIDB4MmIsIDB4MTIsIDB4MGYsIDB4ZDEsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIDB4MDIsIDB4MTAsCi0weDAyLCAweDEyLCAweDFlLCAweDBkLCAweDdkLCAweDA1LCAweDEyLCAweDEwLCAweDA5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDdiLCAweDAxLAotMHg3YSwgMHhmYSwgMHg3OSwgMHhiNiwgMHgxMiwgMHgxZCwgMHgyOCwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmYSwgMHhiNywgMHhlNCwKLTB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0weDRjLCAweDkwLCAweGZhLCAweGI1LCAweGUwLCAweGZmLCAweGU1LCAweDRjLCAweGMzLCAweDlmLCAweDUwLCAweDI0LCAweDEyLCAweDFkLCAweDIyLCAweDEyLAotMHgxMCwgMHgxNCwgMHhmZiwgMHhmZCwgMHg5MCwgMHhmYSwgMHhiNywgMHhlNCwgMHg4ZCwgMHhmMCwgMHgxMiwgMHgxYiwgMHgxYywgMHg5MCwgMHhmYSwgMHhiNiwKLTB4ZTAsIDB4YzMsIDB4OWYsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MDUsIDB4NGMsIDB4ODAsIDB4ZDEsCi0weDEyLCAweDFkLCAweDIyLCAweDEyLCAweDEwLCAweDE0LCAweDI0LCAweGZlLCAweGZmLCAweDkwLCAweGZhLCAweGI2LCAweGYwLCAweGZkLCAweGEzLCAweGU0LAotMHg3NSwgMHhmMCwgMHgwMiwgMHgxMiwgMHgxYiwgMHgxYywgMHg3YSwgMHhmOSwgMHg3OSwgMHg3MiwgMHg3YiwgMHgwMSwgMHg4YiwgMHgzNiwgMHg4YSwgMHgzNywKLTB4ODksIDB4MzgsIDB4ZTksIDB4MjQsIDB4MDIsIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4MTIsIDB4MWQsIDB4MjgsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OGYsCi0weDRjLCAweDA1LCAweDRjLCAweDA1LCAweDRjLCAweDEyLCAweDFjLCAweGMxLCAweGU1LCAweDRjLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDFjLCAweGMxLAotMHg5MCwgMHgwMCwgMHgwMSwgMHg3NCwgMHgwMywgMHgxMiwgMHgxYSwgMHhmYSwgMHhhZiwgMHg0YywgMHg3ZSwgMHgwMCwgMHhjMywgMHhlZiwgMHg5NSwgMHgzYywKLTB4ZWUsIDB4OTUsIDB4M2IsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIDB4OGUsIDB4MzksIDB4OGYsIDB4M2EsIDB4MDIsCi0weDJjLCAweGQ4LCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDNjLCAweDY0LAotMHgwMSwgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsCi0weDc5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUwLCAweDA2LCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDBmLAotMHg2ZSwgMHg3NSwgMHgzNiwgMHgwMCwgMHg3NSwgMHgzNywgMHgwMCwgMHg3NSwgMHgzOCwgMHgzMiwgMHgwMiwgMHgwZiwgMHhmMSwgMHhlNSwgMHgzNSwgMHgzMCwKLTB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsCi0weGI5LCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGQzLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDk0LCAweDAxLCAweDkwLCAweGZhLAotMHhiZCwgMHhlMCwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsCi0weGY1LCAweDMyLCAweGU1LCAweDMyLCAweDcwLCAweDA4LCAweDQzLCAweDM1LCAweDAxLCAweDUzLCAweDM1LCAweGZkLCAweDgwLCAweDA2LCAweDUzLCAweDM1LAotMHhmZSwgMHg0MywgMHgzNSwgMHgwMiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4ZTUsIDB4M2MsIDB4NjQsIDB4MDEsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsCi0weDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLAotMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4N2YsIDB4MDEsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsCi0weDZlLCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGQzLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDk0LAotMHgwMCwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2NCwKLTB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTQsIDB4ZmYsCi0weDAyLCAweDMyLCAweDZlLCAweDkwLCAweGZmLCAweDAxLCAweDEyLCAweDFlLCAweDI0LCAweGVmLCAweDEyLCAweDFhLCAweGU4LCAweDkwLCAweGZhLCAweGI5LAotMHgxMiwgMHgxZSwgMHgyNCwgMHg5MCwgMHgwMCwgMHgwMSwgMHhlZiwgMHgxMiwgMHgxYSwgMHhmYSwgMHg5MCwgMHgwMCwgMHgwMiwgMHhlNCwgMHgxMiwgMHgxYSwKLTB4ZmEsIDB4NzQsIDB4MDMsIDB4MTIsIDB4MWMsIDB4YjIsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4ODUsIDB4MzgsIDB4ODIsCi0weDg1LCAweDM3LCAweDgzLCAweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDkwLCAweGZmLCAweDAxLCAweGUwLCAweDEyLCAweDFiLCAweGZjLCAweDA5LAotMHg3YiwgMHgwMiwgMHgwOSwgMHg5ZCwgMHgwNCwgMHgwOSwgMHhiZiwgMHgwNSwgMHgwOSwgMHhlYiwgMHgwNiwgMHgwYSwgMHgwOSwgMHgwNywgMHgwYSwgMHgyNywKLTB4MDgsIDB4MGEsIDB4NDUsIDB4MDksIDB4MGEsIDB4NjMsIDB4MGIsIDB4MGIsIDB4MTgsIDB4ODAsIDB4MGQsIDB4YjcsIDB4ODEsIDB4MGQsIDB4ZTgsIDB4ODIsCi0weDBiLCAweDVmLCAweDgzLCAweDBiLCAweGE4LCAweDg0LCAweDBiLCAweGM3LCAweDg1LCAweDBjLCAweDBjLCAweDg2LCAweDBjLCAweDU3LCAweDg3LCAweDBjLAotMHhlOCwgMHg4OCwgMHgwZCwgMHg3MywgMHg4OSwgMHgwYSwgMHg4MSwgMHg5MiwgMHgwYSwgMHg4MSwgMHg5MywgMHgwZCwgMHhhMCwgMHhiMCwgMHgwZSwgMHg5YiwKLTB4YzAsIDB4MGUsIDB4YzcsIDB4YzEsIDB4MGUsIDB4ZDgsIDB4YzIsIDB4MDAsIDB4MDAsIDB4MGYsIDB4NWQsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDUsCi0weDdmLCAweDA1LCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLAotMHgwMCwgMHg3ZiwgMHgwNywgMHgwMiwgMHgxMSwgMHg1ZSwgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNywgMHgwMiwgMHgyZiwgMHhiNCwgMHhlNSwgMHgzNSwgMHgyMCwKLTB4ZTcsIDB4MDUsIDB4N2YsIDB4MDUsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsCi0weGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBjLCAweDAyLCAweDExLCAweDVlLCAweGU0LCAweGZkLCAweDdmLCAweDA3LCAweDAyLCAweDJmLCAweGI0LCAweGU1LAotMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwgMHgxZSwgMHg0MiwgMHg1MCwgMHgwNiwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwKLTB4NzAsIDB4MDUsIDB4N2YsIDB4MDIsIDB4MDIsIDB4MzEsIDB4YTksIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4MjQsIDB4ZmQsIDB4NTAsCi0weDAyLCAweDgwLCAweDAzLCAweDAyLCAweDMyLCAweDJjLCAweDdmLCAweDA3LCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLAotMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwgMHgxZCwgMHg3MSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwKLTB4MDgsIDB4MDIsIDB4MTEsIDB4NWUsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsCi0weDcxLCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDA5LCAweDAyLAotMHgxMSwgMHg1ZSwgMHg3ZiwgMHgwNywgMHgwMiwgMHgzMSwgMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwKLTB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MGEsIDB4MDIsIDB4MTEsIDB4NWUsCi0weDdmLCAweDA3LCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDcxLCAweDEyLCAweDFkLCAweDcxLAotMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwYiwgMHgwMiwgMHgxMSwgMHg1ZSwgMHg3ZiwgMHgwNywKLTB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NzEsIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsCi0weDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBlLCAweDAyLCAweDExLCAweDVlLCAweDdmLCAweDA3LCAweDAyLCAweDMxLAotMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHg1NiwgMHgxMiwgMHgxZCwgMHg3OSwgMHg3MCwgMHg0YSwgMHg5MCwgMHhmZiwgMHgwMiwgMHhlMCwgMHhmNSwKLTB4NGMsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODMsIDB4MDUsCi0weDc1LCAweDRjLCAweDYyLCAweDgwLCAweDA4LCAweGU1LCAweDRjLCAweGM0LCAweDU0LCAweGYwLCAweDA0LCAweGY1LCAweDRjLCAweDEyLCAweDFjLCAweDIyLAotMHgxMiwgMHgxZSwgMHgzYiwgMHgxMiwgMHgyNSwgMHhmYSwgMHgxMiwgMHgxZCwgMHg4OSwgMHgxMiwgMHgxYSwgMHhiYiwgMHg2MCwgMHgwNSwgMHgxMiwgMHgzMiwKLTB4N2EsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzMsIDB4MzksIDB4ODUsIDB4MzQsIDB4M2EsIDB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsCi0weDM4LCAweDc1LCAweDAyLCAweDJjLCAweGQ4LCAweGU0LCAweGZkLCAweDdmLCAweDA1LCAweDAyLCAweDJmLCAweGI0LCAweDEyLCAweDFkLCAweDc5LCAweDYwLAotMHgwNSwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZSwgMHg0MiwgMHg0MCwgMHgwNSwgMHg3ZiwgMHgwMywgMHgwMiwgMHgzMSwgMHhhOSwKLTB4OTAsIDB4ZmYsIDB4MDIsIDB4ZTAsIDB4ZjUsIDB4NGMsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsCi0weGU1LCAweDRjLCAweGI0LCAweDgzLCAweDA1LCAweDc1LCAweDRjLCAweDYyLCAweDgwLCAweDA4LCAweGU1LCAweDRjLCAweGM0LCAweDU0LCAweGYwLCAweDA0LAotMHhmNSwgMHg0YywgMHgxMiwgMHgxYywgMHgyMiwgMHgwMiwgMHgzMiwgMHgyYywgMHgxMiwgMHgxZSwgMHg0YywgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgxZCwKLTB4MzMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZjAsIDB4NzgsIDB4NjgsIDB4MTIsCi0weDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDFhLCAweGJiLCAweDMwLCAweGU3LCAweGYyLCAweDkwLCAweDAwLCAweDAyLCAweGU0LCAweDEyLAotMHgxYSwgMHhmYSwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZiwgMHhmMCwgMHg3OCwgMHg3YywgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwKLTB4OGMsIDB4ODMsIDB4MTIsIDB4MWQsIDB4M2IsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4OTAsCi0weGZhLCAweGI5LCAweGUwLCAweDY0LCAweDAxLCAweDcwLCAweDFmLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweGZmLCAweDdlLCAweDAwLCAweDcwLCAweDA2LAotMHhhMywgMHhlMCwgMHhmNSwgMHg5MCwgMHg4MCwgMHgyZCwgMHhjMiwgMHhhZiwgMHhlZiwgMHhmNCwgMHg1MiwgMHg5MCwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwKLTB4NDIsIDB4OTAsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MWQsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4NzAsIDB4MDYsIDB4YTMsCi0weGUwLCAweGY1LCAweGIwLCAweDgwLCAweDBlLCAweGMyLCAweGFmLCAweGVmLCAweGY0LCAweDUyLCAweGIwLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDQyLAotMHhiMCwgMHhkMiwgMHhhZiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxYywgMHhlMCwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhiNCwKLTB4MDEsIDB4MGEsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTUsIDB4OTAsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4ODAsIDB4MDgsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTUsCi0weGIwLCAweDEyLCAweDFhLCAweGU4LCAweDAyLCAweDBmLCAweGYxLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDI0LCAweDEzLCAweDEyLCAweDFjLAotMHhmMSwgMHgyMCwgMHhlMSwgMHgzMywgMHgxMiwgMHgxZCwgMHg4MCwgMHhlZiwgMHgyNCwgMHhmYywgMHg2MCwgMHgxOCwgMHgwNCwgMHg3MCwgMHgyOCwgMHg5MCwKLTB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4MTIsIDB4MWUsCi0weDU2LCAweGYwLCAweDgwLCAweDEzLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LCAweDEwLAotMHhmMCwgMHg4MCwgMHgwNCwgMHgxMiwgMHgxZSwgMHg1ZCwgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwKLTB4ZmYsIDB4MjQsIDB4MTMsIDB4MTIsIDB4MWMsIDB4ZjEsIDB4MjAsIDB4ZTEsIDB4MzksIDB4MTIsIDB4MWQsIDB4ODAsIDB4ZWYsIDB4MjQsIDB4ZmMsIDB4NjAsCi0weDFiLCAweDA0LCAweDcwLCAweDJlLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDQ0LCAweDIwLAotMHhmMCwgMHg4MCwgMHgxZiwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg4MCwgMHgxNiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwKLTB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsCi0weGRmLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDRkLCAweDA0LAotMHg2MCwgMHgwMywgMHgwMiwgMHgwYywgMHhlMywgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg5MCwgMHhmZiwgMHhhNCwgMHgxMiwgMHgxYywKLTB4ZWEsIDB4MzAsIDB4ZTEsIDB4NmYsIDB4MTIsIDB4MWUsIDB4MmMsIDB4MDIsIDB4MGMsIDB4ZTMsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmIsCi0weDEyLCAweDFjLCAweGVkLCAweGZlLCAweDMwLCAweGUxLCAweDVjLCAweDMwLCAweGUyLCAweDExLCAweDMwLCAweGI0LCAweDA1LCAweDEyLCAweDFlLCAweDJjLAotMHg4MCwgMHg1MSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg4MCwgMHg0OCwgMHgzMCwgMHg5NSwgMHgwNSwgMHgxMiwgMHgxZSwKLTB4MmMsIDB4ODAsIDB4NDAsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ODAsIDB4MzcsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsCi0weDYwLCAweDEyLCAweDkwLCAweGZmLCAweGI0LCAweDEyLCAweDFjLCAweGVhLCAweDMwLCAweGUxLCAweDI4LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LAotMHgwMiwgMHhmMCwgMHg4MCwgMHgxZiwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg1NCwgMHhmYiwgMHgxMiwgMHgxYywgMHhlZCwgMHgzMCwgMHhlMSwgMHgxMywKLTB4MzAsIDB4OTMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsCi0weDU0LCAweGZkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDI0LAotMHhmYywgMHg2MCwgMHg0MCwgMHgwNCwgMHg3MCwgMHg3OCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgxZCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhlMCwKLTB4NDQsIDB4NDAsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NjUsIDB4ZDIsIDB4MDMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsCi0weDkwLCAweGZmLCAweGEzLCAweGVmLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDU1LCAweDMwLCAweDAzLCAweDBlLCAweDkwLCAweGZmLCAweGEzLCAweGUwLAotMHg0NCwgMHg4MCwgMHhmMCwgMHhjMiwgMHgwMywgMHhhMywgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhlMCwgMHg1NCwgMHhiZiwKLTB4ZjAsIDB4ODAsIDB4M2IsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MWQsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsCi0weGEzLCAweGUwLCAweGZmLCAweDMwLCAweGU3LCAweDI4LCAweGQyLCAweDA0LCAweGEzLCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDkwLCAweGZmLCAweGIzLAotMHhlZiwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MCwgMHgxOCwgMHgzMCwgMHgwNCwgMHgwZSwgMHg5MCwgMHhmZiwgMHhiMywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwKLTB4YzIsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTQsIDB4ZmYsCi0weDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFjLCAweGUwLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDI0LCAweGZjLCAweDYwLCAweDBmLCAweDA0LCAweDcwLAotMHgxNiwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHgxMiwgMHgxYywgMHhjMSwgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgwYSwgMHg5MCwgMHhmZiwgMHhiNiwKLTB4ZTAsIDB4MTIsIDB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4NzUsIDB4MzksIDB4MDAsIDB4NzUsIDB4M2EsIDB4MDEsIDB4MDIsIDB4MmMsIDB4ZDgsCi0weDkwLCAweGY5LCAweDE1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweGY5LCAweDFjLCAweDc0LCAweDE5LCAweGYwLCAweDkwLCAweGY5LCAweDY2LCAweDc0LAotMHhmZiwgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZCwgMHhlNywgMHg3ZiwKLTB4MDMsIDB4MTIsIDB4MTIsIDB4NjEsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MDgsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4ODAsCi0weGYwLCAweDgwLCAweDEwLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDdmLCAweGZmLCAweDdlLCAweDAwLCAweDEyLCAweDMwLAotMHhkMywgMHhjMiwgMHg5MCwgMHhjMiwgMHhhZiwgMHgwMCwgMHg4MCwgMHhmZCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhmNSwgMHg0ZiwgMHg5MCwgMHhmYSwgMHhiZiwKLTB4NzQsIDB4M2UsIDB4ZjAsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4ZTAsIDB4NTQsCi0weDNmLCAweGZmLCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweGZhLCAweGJjLCAweGYwLCAweGQzLCAweDk0LCAweDAwLCAweGU0LCAweDk0LCAweDNlLAotMHg0MCwgMHgwOCwgMHg5MCwgMHhmYSwgMHhjMCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYywgMHhmMCwgMHgxMiwgMHgwZiwgMHg5OCwgMHhlNSwgMHgzMSwgMHg0NSwKLTB4MzAsIDB4NzAsIDB4NzMsIDB4MTIsIDB4MWMsIDB4ZmEsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4MTIsIDB4MWUsIDB4MDYsIDB4NjAsIDB4MjcsIDB4ZDMsIDB4ZWYsCi0weDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA4LCAweDkwLCAweGZhLCAweGJjLCAweDc0LCAweDQwLCAweGYwLCAweDgwLCAweDA4LCAweDkwLAotMHhmYSwgMHhjMCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYywgMHhmMCwgMHgxMiwgMHgwZiwgMHg5OCwgMHhlNSwgMHgzMSwgMHg0NSwgMHgzMCwgMHg3MCwgMHg0NiwKLTB4MTIsIDB4MWMsIDB4ZmEsIDB4ODAsIDB4ZDEsIDB4NzUsIDB4NGMsIDB4MDIsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4MDQsIDB4ZjAsCi0weDkwLCAweGZhLCAweGI3LCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBmLCAweGYwLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDRjLCAweDkwLAotMHhmYSwgMHhjMCwgMHhlMCwgMHhmNSwgMHg0YSwgMHg3ZCwgMHgwZiwgMHg3YywgMHgwMCwgMHgxMiwgMHgyOSwgMHg2MCwgMHg3NSwgMHgzMCwgMHgwMCwgMHg4ZiwKLTB4MzEsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4NGMsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsCi0weDk4LCAweGU0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGFmLCAweDMxLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDMwLCAweGU3LAotMHgxMCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg5MCwgMHhmOSwgMHg2NywgMHhmMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgxNSwgMHhjMiwgMHg5NSwgMHg4MCwKLTB4MTEsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4OTAsIDB4ZjksIDB4NjUsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDIsCi0weGMyLCAweDk0LCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFlLCAweDRjLCAweGJmLCAweDAxLCAweDA0LCAweGQyLCAweDkzLCAweDgwLAotMHgwMiwgMHhjMiwgMHg5MywgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZCwgMHg4MCwgMHg1NCwgMHgwMywgMHgxNCwgMHg2MCwgMHgwYSwKLTB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MDgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmIsIDB4ZDIsIDB4OTEsIDB4ODAsIDB4MjcsIDB4YzIsIDB4OTEsCi0weDgwLCAweDIzLCAweDEyLCAweDFlLCAweDU2LCAweDEyLCAweDBmLCAweGMwLCAweDYwLCAweDA0LCAweGQyLCAweDkxLCAweDgwLCAweDE3LCAweDkwLCAweGZmLAotMHhhNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHgxMiwgMHgwZiwgMHhjMCwgMHhmZiwgMHhiZiwgMHhhMCwgMHgwNCwgMHhjMiwgMHg5MSwgMHg4MCwgMHgwMiwgMHhkMiwKLTB4OTEsIDB4MTIsIDB4MWUsIDB4NTYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NTQsIDB4MGMsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4NTQsIDB4M2YsCi0weDE0LCAweDYwLCAweDBhLCAweDE0LCAweDYwLCAweDBmLCAweDE0LCAweDYwLCAweDA4LCAweDI0LCAweDAzLCAweDcwLCAweDJiLCAweGQyLCAweDkyLCAweDgwLAotMHgyNywgMHhjMiwgMHg5MiwgMHg4MCwgMHgyMywgMHgxMiwgMHgxZSwgMHg1ZCwgMHgxMiwgMHgwZiwgMHhlMCwgMHg2MCwgMHgwNCwgMHhkMiwgMHg5MiwgMHg4MCwKLTB4MTcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4MTIsIDB4MGYsIDB4ZTAsIDB4ZmYsIDB4YmYsIDB4YTAsIDB4MDQsIDB4YzIsIDB4OTIsCi0weDgwLCAweDAyLCAweGQyLCAweDkyLCAweDEyLCAweDFlLCAweDVkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLAotMHhlNywgMHgwNywgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgyZiwgMHhiNCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgzMiwKLTB4N2EsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4YjYsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTAsIDB4ZjUsIDB4MmQsIDB4YTMsIDB4ZTAsCi0weGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGI3LCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweDFiLAotMHgxYywgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgyMiwgMHhhYSwgMHg0ZSwgMHhhOSwgMHg0ZiwgMHg3YiwgMHhmZiwgMHg5MCwgMHhmYSwKLTB4YjcsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4OTAsIDB4ZmEsIDB4YmMsIDB4ZTAsIDB4ZjUsIDB4NGEsIDB4MTIsIDB4MjksIDB4NjAsIDB4NzUsCi0weDMwLCAweDAwLCAweDhmLCAweDMxLCAweDIyLCAweDEyLCAweDIzLCAweDYxLCAweDdlLCAweDAwLCAweDhlLCAweDMwLCAweDhmLCAweDMxLCAweGVmLCAweDIyLAotMHhmMCwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg2MSwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYiwgMHhmMCwgMHg1NCwgMHhhMCwKLTB4MjIsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OGYsIDB4NGMsIDB4N2UsIDB4MDAsIDB4YzMsIDB4ZWYsIDB4OTUsIDB4M2MsIDB4ZWUsIDB4OTUsIDB4M2IsIDB4MjIsCi0weGYwLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDYxLCAweDkwLCAweGZmLCAweGI2LCAweGUwLCAweDkwLCAweGZhLCAweGJiLCAweGYwLCAweDU0LCAweGEwLAotMHgyMiwgMHg3NSwgMHgzOSwgMHgwMCwgMHg3NSwgMHgzYSwgMHgwMSwgMHgwMiwgMHgyYywgMHhkOCwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHgwMiwKLTB4MzIsIDB4M2YsIDB4OGUsIDB4MzksIDB4OGYsIDB4M2EsIDB4MDIsIDB4MmMsIDB4ZDgsIDB4MTIsIDB4MjMsIDB4NjEsIDB4N2UsIDB4MDAsIDB4OGUsIDB4MzAsCi0weDhmLCAweDMxLCAweGVmLCAweDIyLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGI0LCAweGUwLCAweDIyLCAweGVmLCAweDkwLAotMHhmOCwgMHgwNCwgMHhmMCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHhlZSwgMHg2MCwgMHgwYSwgMHhjMCwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHhkZCwKLTB4ZmUsIDB4ZGUsIDB4ZmEsIDB4ZDAsIDB4MDUsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4MTUsIDB4NTAsIDB4MDMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4MTMsIDB4NzAsCi0weDAzLCAweGQwLCAweGE4LCAweDIyLCAweGZmLCAweGQ1LCAweDA3LCAweGZkLCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLAotMHgwMiwgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhlNSwgMHgzZSwgMHgyNCwgMHgwOCwgMHhmOCwgMHg4NiwgMHgwNSwgMHg1MywgMHgwNSwgMHg3ZiwgMHg3YywKLTB4ZmYsIDB4MTIsIDB4MTAsIDB4YzAsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MDAsIDB4ZTUsIDB4NDMsIDB4NjAsIDB4NDYsIDB4ZmMsIDB4OTAsIDB4ZjksIDB4MWQsCi0weGUwLCAweDU0LCAweDdmLCAweDZkLCAweDcwLCAweDBmLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLAotMHhhMywgMHgxNSwgMHg0MywgMHg4MCwgMHgwNywgMHhhMywgMHhhMywgMHhhMywgMHhkYywgMHhlNiwgMHg4MCwgMHgyNiwgMHhkYywgMHgwNiwgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ODMsIDB4ODAsIDB4MWUsIDB4ZTAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCi0weGU4LCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweGEzLCAweGVhLCAweGYwLCAweGEzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLAotMHg4MCwgMHhkYSwgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHgyMiwKLTB4ODUsIDB4YTgsIDB4NDQsIDB4NzUsIDB4YTgsIDB4ODgsIDB4ZWMsIDB4NzAsIDB4MDIsIDB4N2MsIDB4M2YsIDB4OGMsIDB4M2QsIDB4MjIsIDB4ZTUsIDB4M2UsCi0weDI0LCAweDA4LCAweGY4LCAweDc2LCAweDAwLCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGZiLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLAotMHhjMCwgMHgwNCwgMHhjMCwgMHgwNiwgMHg3YywgMHhmZiwgMHgxMiwgMHgxMCwgMHhjMCwgMHhlNSwgMHg0MywgMHg2MCwgMHg0MiwgMHhmZSwgMHg5MCwgMHhmOSwKLTB4MWQsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4NmYsIDB4NzAsIDB4MGIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4MTUsIDB4NDMsCi0weDgwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLCAweGRlLCAweGVhLCAweDgwLCAweDI2LCAweGRlLCAweDA2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweDgwLAotMHhkOCwgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhlOCwgMHhmMCwgMHhhMywKLTB4ZTksIDB4ZjAsIDB4YTMsIDB4ZWEsIDB4ZjAsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGEsIDB4NzgsCi0weDA4LCAweDA4LCAweDc5LCAweDE4LCAweDA5LCAweDdjLCAweDAxLCAweGU2LCAweDU0LCAweDdmLCAweDZmLCAweDcwLCAweDA2LCAweDc2LCAweDAwLCAweDc3LAotMHgwMCwgMHg4MCwgMHgwNiwgMHgwOCwgMHgwOSwgMHgwYywgMHhiYywgMHgwOCwgMHhlZSwgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNCwKLTB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDAsIDB4MjIsIDB4NzUsIDB4M2QsIDB4MDAsIDB4ODUsIDB4NDQsIDB4YTgsIDB4MjIsIDB4YzAsIDB4ZjAsCi0weGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMzLCAweGU1LCAweDQzLCAweDI0LCAweGU4LCAweDUwLCAweDA1LCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGY0LAotMHhlZiwgMHg2MCwgMHgzMSwgMHg5MCwgMHgzMSwgMHgxMSwgMHhlNCwgMHg5MywgMHhjMywgMHg5ZiwgMHg0MCwgMHgyZiwgMHhjMCwgMHgwNCwgMHg3YywgMHhmZiwKLTB4MTIsIDB4MTAsIDB4YzAsIDB4ZDAsIDB4MDQsIDB4NDMsIDB4MDcsIDB4ODAsIDB4ZTUsIDB4NDMsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4YTQsIDB4MjQsIDB4MWQsCi0weGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY5LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGVjLCAweGEzLCAweGYwLCAweGVkLCAweGEzLCAweGYwLCAweDA1LAotMHg0MywgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHhmMCwgMHgyMiwgMHgwMiwgMHgxMSwgMHhkYywgMHhjMCwgMHgwNCwKLTB4N2MsIDB4MjAsIDB4ZDIsIDB4OGMsIDB4ZDIsIDB4OGQsIDB4ZDUsIDB4MDQsIDB4ZmQsIDB4ZDAsIDB4MDQsIDB4MjIsIDB4NzUsIDB4YTgsIDB4MDAsIDB4NzUsCi0weDg4LCAweDAwLCAweDc1LCAweGI4LCAweDAwLCAweDc1LCAweGYwLCAweDAwLCAweDc1LCAweGQwLCAweDAwLCAweGU0LCAweGY4LCAweDkwLCAweGY4LCAweDA0LAotMHhmMCwgMHg5MCwgMHgwMCwgMHgwMCwgMHhmNiwgMHgwOCwgMHhiOCwgMHgwMCwgMHhmYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHhjMiwgMHhhZiwgMHhlNCwgMHg5MCwKLTB4ZmYsIDB4NDgsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4NTAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MTAsIDB4ZjAsIDB4OTAsCi0weGZmLCAweDgwLCAweGYwLCAweGEzLCAweGEzLCAweGYwLCAweGQyLCAweGIxLCAweGMyLCAweGIwLCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLAotMHgyNCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwgMHgyNCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwgMHgyNCwgMHhkMiwKLTB4YjAsIDB4ZDIsIDB4YjEsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4MjQsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsCi0weDI0LCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLCAweDI0LCAweDgwLCAweGNjLCAweGMzLCAweGVlLCAweDk0LCAweDAyLCAweDUwLCAweDA0LAotMHg3ZSwgMHgwMywgMHg3ZiwgMHhlOCwgMHhlZiwgMHhmNCwgMHhmZiwgMHhlZSwgMHhmNCwgMHhmZSwgMHgwZiwgMHhiZiwgMHgwMCwgMHgwMSwgMHgwZSwgMHg4ZiwKLTB4NDIsIDB4OGUsIDB4NDEsIDB4MjIsIDB4YzMsIDB4ZWYsIDB4OTQsIDB4YmMsIDB4ZWUsIDB4OTQsIDB4MDIsIDB4NTAsIDB4MDQsIDB4N2UsIDB4MDcsIDB4N2YsCi0weGQwLCAweGVmLCAweGY0LCAweGZmLCAweGVlLCAweGY0LCAweGZlLCAweDBmLCAweGJmLCAweDAwLCAweDAxLCAweDBlLCAweDhmLCAweDQwLCAweDhlLCAweDNmLAotMHgyMiwgMHhlZiwgMHg3MCwgMHgwMSwgMHgyMiwgMHhjMCwgMHgwMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxOCwgMHhmOCwKLTB4YTYsIDB4MDcsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4YzYsIDB4NTQsIDB4N2YsIDB4ZjYsIDB4ZDAsIDB4YTgsIDB4ZTYsIDB4MzAsIDB4ZTcsCi0weDAzLCAweGQwLCAweDAwLCAweDIyLCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGY0LCAweGMwLCAweDAwLCAweDdmLCAweDAxLCAweGVmLCAweDI0LCAweDA4LAotMHhmOCwgMHhlNiwgMHg2MCwgMHgwOSwgMHgwZiwgMHhiZiwgMHgwOCwgMHhmNSwgMHgxMiwgMHgxMSwgMHhhZSwgMHg4MCwgMHhlZSwgMHhkMCwgMHgwMCwgMHgyMiwKLTB4YzAsIDB4ZjAsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDYsIDB4YzAsIDB4MDQsIDB4ZWQsIDB4MjQsIDB4MTAsIDB4ZjgsCi0weDc2LCAweDlhLCAweGVkLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY4LCAweGY1LCAweDgzLAotMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhhMywgMHhhMywgMHhlNCwgMHg3OCwgMHgwZCwgMHhmMCwgMHhhMywgMHhkOCwgMHhmYywgMHhlZiwgMHg1NCwgMHg3ZiwKLTB4NzUsIDB4ZjAsIDB4MDIsIDB4YTQsIDB4MjQsIDB4ZjMsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzQsIDB4MzAsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsCi0weGZlLCAweDc0LCAweDAxLCAweDkzLCAweGZjLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGVjLCAweGYwLCAweGEzLCAweGVlLCAweGYwLCAweGVkLCAweDI0LAotMHgwOCwgMHhmOCwgMHhlZiwgMHg0NCwgMHg4MCwgMHhmNiwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4M2UsIDB4MDAsIDB4NzUsIDB4NDMsIDB4MDAsIDB4N2EsIDB4MDgsIDB4NzksIDB4MTgsIDB4NzgsIDB4MDgsIDB4NzYsCi0weDAwLCAweDc3LCAweDAwLCAweDA4LCAweDA5LCAweGRhLCAweGY4LCAweDkwLCAweGY4LCAweDA0LCAweGUwLCAweGZjLCAweDkwLCAweDMxLCAweDExLCAweGU0LAotMHg5MywgMHhjMywgMHg5YywgMHg1MCwgMHgwNSwgMHhlNCwgMHg5MCwgMHhmOCwgMHgwNCwgMHhmMCwgMHg3OCwgMHgwOCwgMHg3NCwgMHg4MCwgMHg0NCwgMHg3ZiwKLTB4ZjYsIDB4NzQsIDB4MDEsIDB4NDQsIDB4MTAsIDB4ZjUsIDB4ODksIDB4NzUsIDB4YjgsIDB4MDAsIDB4ZDIsIDB4YWIsIDB4ZDIsIDB4YTksIDB4MjIsIDB4NzUsCi0weDgxLCAweDhiLCAweGQyLCAweDhlLCAweGQyLCAweDhjLCAweGQyLCAweGFmLCAweGU1LCAweDQzLCAweDYwLCAweDM2LCAweGZmLCAweDkwLCAweGY5LCAweDFkLAotMHhlMCwgMHg1NCwgMHg4MCwgMHg2MCwgMHgyOCwgMHg3OCwgMHgwOCwgMHg3OSwgMHgwOCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmYSwgMHg3YiwgMHgwMCwgMHhlNiwKLTB4NTQsIDB4N2YsIDB4YjUsIDB4MDIsIDB4MDIsIDB4N2IsIDB4ZmYsIDB4MDgsIDB4ZDksIDB4ZjUsIDB4ZWIsIDB4NzAsIDB4MTAsIDB4ZWEsIDB4ZjAsIDB4YzAsCi0weDA3LCAweDEyLCAweDEyLCAweDg5LCAweGFkLCAweDA3LCAweGFmLCAweDAyLCAweDEyLCAweDEyLCAweGEwLCAweGQwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLAotMHhkZiwgMHhjZSwgMHgxMiwgMHgxMSwgMHhhZSwgMHg4MCwgMHhjMSwgMHg4ZiwgMHgyNCwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhiNSwgMHhhMywKLTB4YTMsIDB4ZTAsIDB4YTMsIDB4MzAsIDB4ZTcsIDB4MjgsIDB4NzgsIDB4N2UsIDB4MTIsIDB4MjIsIDB4OTksIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsCi0weDIyLCAweGZhLCAweDEyLCAweDIyLCAweDlkLCAweGUwLCAweDIwLCAweGUwLCAweGY2LCAweDEyLCAweDIzLCAweDUwLCAweDc0LCAweDAyLCAweGYwLCAweDEyLAotMHgyMiwgMHhkYSwgMHhlMCwgMHhhMywgMHgzMCwgMHhlNSwgMHgwNywgMHgxMiwgMHgyMywgMHg1MCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3OCwgMHg4MCwKLTB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4ZmYsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MjMsCi0weDM5LCAweDhhLCAweDgzLCAweDI0LCAweDBhLCAweDEyLCAweDIyLCAweGExLCAweGVkLCAweGYwLCAweDEyLCAweDIzLCAweDA2LCAweDI0LCAweDA3LCAweDEyLAotMHgyMiwgMHhhMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgyMywgMHg1YSwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlZiwgMHhmMCwgMHg5MCwgMHhmOSwKLTB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MjAsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YjcsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4ZTAsIDB4MjUsCi0weGUwLCAweGZmLCAweDA1LCAweDgyLCAweGQ1LCAweDgyLCAweDAyLCAweDE1LCAweDgzLCAweDE1LCAweDgyLCAweGUwLCAweDMzLCAweGQwLCAweDgyLCAweGQwLAotMHg4MywgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgxMiwgMHgyMiwgMHhiNSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHhmZiwgMHgxMiwKLTB4MjMsIDB4MzksIDB4OGEsIDB4ODMsIDB4MjQsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MTIsIDB4MjMsIDB4NWEsIDB4MjQsCi0weDA3LCAweDEyLCAweDIyLCAweGExLCAweGVkLCAweGYwLCAweDEyLCAweDIyLCAweGE5LCAweGUwLCAweDMwLCAweGU2LCAweDBhLCAweDEyLCAweDIzLCAweDQxLAotMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlNCwgMHhmMCwgMHgxMiwgMHgyMiwgMHhhOSwgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgxYiwgMHgxMiwKLTB4MjMsIDB4MWUsIDB4MjQsIDB4MDksIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4MTIsIDB4MjIsIDB4YTksIDB4ZWYsIDB4NDQsIDB4MDIsCi0weGYwLCAweDgwLCAweDA3LCAweDEyLCAweDIyLCAweGE5LCAweGVmLCAweDU0LCAweGZkLCAweGYwLCAweDc4LCAweDdlLCAweDEyLCAweDIyLCAweGI3LCAweGEzLAotMHhhMywgMHhlMCwgMHhmZiwgMHg1MywgMHgwNywgMHhjNywgMHgwOCwgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwgMHhmZCwgMHgxMiwgMHgyMiwgMHhlMCwgMHhhMywKLTB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTIsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDUsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsCi0weDkwLCAweDMyLCAweDUxLCAweDkzLCAweDQyLCAweDA3LCAweDUzLCAweDA3LCAweGZiLCAweDEyLCAweDIzLCAweDFlLCAweDI0LCAweDA2LCAweDEyLCAweDIyLAotMHhhMSwgMHhlMCwgMHg2MCwgMHgwMywgMHg0MywgMHgwNywgMHgwNCwgMHg1MywgMHgwNywgMHhmYywgMHg3OCwgMHg4MCwgMHgxMiwgMHgyMywgMHgyOSwgMHgyNCwKLTB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NDIsIDB4MDcsIDB4NDMsIDB4MDcsIDB4ODAsIDB4MTIsIDB4MjMsIDB4MzksIDB4ZjUsIDB4ODIsIDB4OGEsCi0weDgzLCAweGEzLCAweGEzLCAweGVmLCAweGYwLCAweDEyLCAweDIzLCAweDVhLCAweDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweGZmLCAweDhkLAotMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMSwgMHgwNSwgMHg1MywgMHgwNywgMHhkZiwKLTB4ODAsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ZWMsIDB4MzAsIDB4ZTQsIDB4MDUsIDB4NTMsIDB4MDcsIDB4ZWYsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MDcsCi0weDEwLCAweDEyLCAweDIyLCAweGE5LCAweGUwLCAweGZlLCAweDU0LCAweDAzLCAweDYwLCAweDczLCAweDUzLCAweDA3LCAweGRmLCAweGVlLCAweDMwLCAweGUxLAotMHg2OSwgMHgxMiwgMHgyMywgMHgxZSwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywgMHgxNSwgMHgyYywgMHgwMCwKLTB4MTUsIDB4NjAsIDB4MDEsIDB4MTUsIDB4NjUsIDB4MDMsIDB4MTUsIDB4NjAsIDB4MDUsIDB4MTUsIDB4NjUsIDB4MDcsIDB4MTUsIDB4NjAsIDB4MDksIDB4MTUsCi0weDY1LCAweDBiLCAweDE1LCAweDYwLCAweDBkLCAweDE1LCAweDY1LCAweDBmLCAweDAwLCAweDAwLCAweDE1LCAweDZkLCAweGU1LCAweDI0LCAweDY0LCAweDAzLAotMHg3MCwgMHgyMSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZCwgMHgzMCwgMHhiNCwgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwKLTB4MmMsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4ODAsIDB4MjcsIDB4MzAsIDB4OTUsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDIsIDB4ODAsIDB4MWYsIDB4NTMsIDB4MDcsCi0weGZkLCAweDgwLCAweDFhLCAweDMwLCAweDkzLCAweDA1LCAweDQzLCAweDA3LCAweDAyLCAweDgwLCAweDEyLCAweDUzLCAweDA3LCAweGZkLCAweDgwLCAweDBkLAotMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgwOCwgMHg1MywgMHgwNywgMHhmZCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmZCwgMHgxMiwgMHgyMywgMHgyNywKLTB4MjQsIDB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWYsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmYsCi0weDEyLCAweDIyLCAweGE5LCAweGUwLCAweGZlLCAweDU0LCAweDAzLCAweDcwLCAweDAzLCAweDAyLCAweDE2LCAweDYwLCAweGVlLCAweDIwLCAweGUxLCAweDAzLAotMHgwMiwgMHgxNiwgMHg1ZCwgMHgwOCwgMHgxMiwgMHgyMywgMHgyMCwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywKLTB4MTUsIDB4YmYsIDB4MDAsIDB4MTUsIDB4ZjUsIDB4MDEsIDB4MTUsIDB4ZjUsIDB4MDMsIDB4MTYsIDB4MjksIDB4MDUsIDB4MTYsIDB4MjksIDB4MDcsIDB4MTYsCi0weDBmLCAweDA5LCAweDE2LCAweDBmLCAweDBiLCAweDE2LCAweDQzLCAweDBkLCAweDE2LCAweDQzLCAweDBmLCAweDAwLCAweDAwLCAweDE2LCAweDYwLCAweGU1LAotMHgyNCwgMHg2NCwgMHgwMywgMHg3MCwgMHgyMywgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZiwgMHgzMCwgMHhiMSwgMHgwNiwgMHg1MywKLTB4MDcsIDB4N2YsIDB4MDIsIDB4MTYsIDB4NjAsIDB4NDMsIDB4MDcsIDB4ODAsIDB4MDIsIDB4MTYsIDB4NjAsIDB4MzAsIDB4OTQsIDB4MDUsIDB4NTMsIDB4MDcsCi0weDdmLCAweDgwLCAweDdkLCAweDQzLCAweDA3LCAweDgwLCAweDgwLCAweDc4LCAweDMwLCAweDkyLCAweDA1LCAweDUzLCAweDA3LCAweDdmLCAweDgwLCAweDcwLAotMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHg2YiwgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhlZiwKLTB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4NTMsIDB4MDcsIDB4N2YsIDB4ODAsIDB4NTEsIDB4ZTUsCi0weDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweDllLAotMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg1MywgMHgwNywgMHg3ZiwgMHg4MCwgMHgzNywgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwKLTB4OWUsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4NDMsIDB4MDcsCi0weDgwLCAweDgwLCAweDFkLCAweGU1LCAweDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLAotMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHg3ZiwKLTB4MTIsIDB4MjIsIDB4ZGEsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ODAsIDB4MDMsCi0weDUzLCAweDA3LCAweGRmLCAweGVjLCAweDMwLCAweGUzLCAweDA1LCAweDQzLCAweDA3LCAweDQwLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGJmLCAweGVjLAotMHgzMCwgMHhlMCwgMHgwNSwgMHg0MywgMHgwNywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhlZiwgMHhlZCwgMHgzMCwgMHhlNCwgMHgwNSwgMHg0MywKLTB4MDcsIDB4MDgsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4ZjcsIDB4ZWQsIDB4MzAsIDB4ZTUsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDQsIDB4ODAsIDB4MDMsCi0weDUzLCAweDA3LCAweGZiLCAweGVkLCAweDMwLCAweGU2LCAweDA1LCAweDQzLCAweDA3LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGZlLCAweGVkLAotMHgzMCwgMHhlNywgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmZCwgMHg3OCwgMHg3ZSwgMHgxMiwgMHgyMiwgMHhkYywKLTB4YTMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4N2YsIDB4MDAsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZmEsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YTMsCi0weDc0LCAweDE2LCAweGYwLCAweDkwLCAweGZmLCAweGY5LCAweDc0LCAweDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNmLCAweGU0LAotMHhmZCwgMHgxMiwgMHgyMywgMHg2MSwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMywgMHgxMiwgMHgxYiwgMHgxYywgMHgxMiwgMHgxOSwKLTB4OTIsIDB4ZTUsIDB4MjMsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4MDIsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjQsIDB4OTAsIDB4ZmEsCi0weGNmLCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGNmLAotMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwYiwgMHhmMCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywgMHg3NSwgMHgyZCwgMHgwMCwgMHhmNSwKLTB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4ZTUsIDB4MjMsIDB4MjQsIDB4ODAsIDB4OTAsIDB4ZmYsIDB4ZjgsIDB4ZjAsIDB4ZTUsIDB4MjMsCi0weDY0LCAweDA3LCAweDYwLCAweDFlLCAweGU1LCAweDIzLCAweDY0LCAweDA2LCAweDYwLCAweDE4LCAweGU1LCAweDIzLCAweDY0LCAweDE0LCAweDYwLCAweDEyLAotMHhlNSwgMHgyMywgMHg2NCwgMHg0MSwgMHg2MCwgMHgwYywgMHhlNSwgMHgyMywgMHg2NCwgMHgxYSwgMHg3MCwgMHg0NiwgMHhlNSwgMHgyNCwgMHg2NCwgMHgwMiwKLTB4NzAsIDB4NDAsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4MTYsIDB4ZDIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4ZDIsIDB4OTIsIDB4ZDIsIDB4OTMsIDB4OTAsCi0weGY5LCAweDE2LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGEzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDFlLCAweGU1LCAweDIzLCAweGI0LAotMHg0MSwgMHgxMiwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwgMHgwNiwgMHhmMCwgMHhhMywgMHhlMCwgMHg0NCwgMHgwNiwgMHhmMCwgMHhkMiwgMHhiMSwKLTB4ZDIsIDB4YjQsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTcsIDB4ZTAsIDB4NDQsCi0weDAxLCAweGYwLCAweGU1LCAweDIzLCAweDY0LCAweDQyLCAweDYwLCAweDBjLCAweGU1LCAweDIzLCAweDY0LCAweDQzLCAweDYwLCAweDA2LCAweGU1LCAweDIzLAotMHg2NCwgMHg0NCwgMHg3MCwgMHgyZSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHhmZiwgMHhlNSwgMHgyMywgMHhiNCwgMHg0NCwgMHgwNCwgMHg3ZSwgMHg0MCwKLTB4ODAsIDB4MDIsIDB4N2UsIDB4MDAsIDB4ZWUsIDB4MjQsIDB4ODAsIDB4NGYsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZTUsCi0weDIzLCAweGI0LCAweDQ0LCAweDA0LCAweDdlLCAweDQwLCAweDgwLCAweDAyLCAweDdlLCAweDAwLCAweGVlLCAweDI0LCAweDgwLCAweDRmLCAweDkwLCAweGY5LAotMHgxNywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwZCwgMHhmMCwgMHgxMiwgMHgxOSwgMHg5MiwgMHg5MCwgMHhmZiwKLTB4ZjUsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzQsIDB4ZjUsIDB4MzIsIDB4MTIsIDB4MWUsIDB4MzQsCi0weDEyLCAweDFjLCAweGUwLCAweDEyLCAweDFlLCAweDNiLCAweDkwLCAweGY5LCAweDZhLCAweDEyLCAweDFiLCAweGYzLCAweDkwLCAweGY5LCAweDZmLCAweDEyLAotMHgxYiwgMHhmMywgMHg5MCwgMHhmZiwgMHhmZiwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MSwKLTB4NzQsIDB4ODAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjMsIDB4ZTUsIDB4MjMsIAotMHgxMiwgMHgxZCwgMHg1NywgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgyMywgMHgxMiwgMHgxZCwgMHg2NSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwKLTB4MDUsIDB4MjMsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4ZTcsIDB4NzgsIDB4N2EsIDB4NzYsIDB4ZmUsIDB4MDgsIDB4NzYsIDB4ZjAsIDB4OTAsIDB4MzIsCi0weDBhLCAweGU0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweGZkLCAweGFkLCAweDA3LCAweDkwLCAweDMyLCAweDE3LCAweGU0LCAweDkzLCAweGZmLAotMHgwOCwgMHhmNiwgMHhmZiwgMHhlZCwgMHg1NCwgMHgwZiwgMHhmZCwgMHgxMiwgMHgxZCwgMHg0NywgMHg3NCwgMHg4NCwgMHhmMCwgMHhlZCwgMHg3NSwgMHhmMCwKLTB4MDgsIDB4YTQsIDB4MjQsIDB4NDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4YzMsIDB4NzQsIDB4ZjAsIAotMHg5ZiwgMHg3OCwgMHg3YiwgMHhmNiwgMHg3NCwgMHhmZSwgMHg5NCwgMHgwMCwgMHgxOCwgMHgxMiwgMHgxYywgMHhkOCwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwKLTB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZWQsIDB4MTIsIDB4MWQsIDB4YTgsIDB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MTIsIDB4MWQsIDB4Y2UsIDB4ZTQsIDB4ZjUsCi0weDIzLCAweGU1LCAweDIzLCAweDkwLCAweDMyLCAweDA0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweGZkLCAweGU1LCAweDIzLCAweDI1LCAweGUwLAotMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgzMiwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgwOCwgMHhmNiwgMHhlZCwgMHgzMCwgMHhlNywKLTB4NTMsIDB4MTgsIDB4ZTYsIDB4NTQsIDB4MGYsIDB4ZjksIDB4MTIsIDB4MWQsIDB4NDcsIDB4MTIsIDB4MWQsIDB4YjYsIDB4MjQsIDB4NDcsIDB4ZjUsIDB4ODIsCi0weGU0LCAweDM0LCAweGZmLCAweDEyLCAweDFjLCAweGM4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweGU5LCAweDEyLAotMHgxZCwgMHhhOCwgMHhlZiwgMHhmMCwgMHgxMiwgMHgxYywgMHhjZiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHgxMiwgMHgxZCwKLTB4YmIsIDB4MjQsIDB4NDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTksIDB4MTIsIDB4MWQsIDB4Y2UsCi0weGU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQ2LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweDc0LCAweDgwLCAKLTB4ZjAsIDB4MDIsIDB4MTksIDB4NjcsIDB4NzgsIDB4NzgsIDB4ZTYsIDB4NTQsIDB4MGYsIDB4ZjksIDB4MTIsIDB4MWQsIDB4OWEsIDB4MTIsIDB4MWQsIDB4YjYsCi0weDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweDEyLCAweDFjLCAweGM4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LAotMHhmOSwgMHgxMiwgMHgxZCwgMHhiYiwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgxMiwKLTB4MWMsIDB4Y2YsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4MTIsIDB4MWQsIDB4YmIsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsCi0weGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIAotMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2NCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgCi0weDE4LCAweDkxLCAweDkwLCAweDMyLCAweDA5LCAweGU0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweDEyLCAweDFkLCAweDk4LCAweGU0LCAweGYwLAotMHg5MCwgMHgzMiwgMHgwOCwgMHg5MywgMHhmZiwgMHhmNiwgMHgxMiwgMHgxZCwgMHg0NSwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmZCwgMHg3NCwgMHgwNSwKLTB4ZjAsIDB4MjIsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjMsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsCi0weDFiLCAweDMyLCAweDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDAyLCAweDI2LCAweDk4LCAweGU3LCAweDA5LCAweGY2LCAweDA4LAotMHhkZiwgMHhmYSwgMHg4MCwgMHg0NiwgMHhlNywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHgzZSwgMHg4OCwgMHg4MiwgMHg4YywgMHg4MywgCi0weGU3LCAweDA5LCAweGYwLCAweGEzLCAweGRmLCAweGZhLCAweDgwLCAweDMyLCAweGUzLCAweDA5LCAweGY2LCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDc4LCAKLTB4ZTMsIDB4MDksIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NzAsIDB4ODgsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTMsIDB4MDksIDB4ZjAsIDB4YTMsIAotMHhkZiwgMHhmYSwgMHg4MCwgMHg2NCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg1OCwgCi0weDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGEzLCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDRjLCAweDgwLCAweGQyLCAweDgwLCAweGZhLCAKLTB4ODAsIDB4YzYsIDB4ODAsIDB4ZDQsIDB4ODAsIDB4NjksIDB4ODAsIDB4ZjIsIDB4ODAsIDB4MzMsIDB4ODAsIDB4MTAsIDB4ODAsIDB4YTYsIDB4ODAsIDB4ZWEsIAotMHg4MCwgMHg5YSwgMHg4MCwgMHhhOCwgMHg4MCwgMHhkYSwgMHg4MCwgMHhlMiwgMHg4MCwgMHhjYSwgMHg4MCwgMHgzMywgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgCi0weGVjLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGYwLCAweGEzLCAweGM4LCAKLTB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4MGQsIDB4ODksIDB4ODIsIDB4OGEsIAotMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmOSwgMHhlYywgMHhmYSwgMHhhOSwgMHhmMCwgMHhlZCwgMHhmYiwgMHgyMiwgMHg4OSwgCi0weDgyLCAweDhhLCAweDgzLCAweGVjLCAweGZhLCAweGUwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGYwLCAKLTB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZWEsIDB4ZGUsIDB4ZTgsIDB4ODAsIDB4ZGIsIDB4ODksIAotMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmOSwgMHg4MCwgMHhjYywgMHg4OCwgMHhmMCwgMHhlZiwgMHg2MCwgCi0weDAxLCAweDBlLCAweDRlLCAweDYwLCAweGMzLCAweDg4LCAweGYwLCAweGVkLCAweDI0LCAweDAyLCAweGI0LCAweDA0LCAweDAwLCAweDUwLCAweGI5LCAweGY1LCAKLTB4ODIsIDB4ZWIsIDB4MjQsIDB4MDIsIDB4YjQsIDB4MDQsIDB4MDAsIDB4NTAsIDB4YWYsIDB4MjMsIDB4MjMsIDB4NDUsIDB4ODIsIDB4MjMsIDB4OTAsIDB4MTksIAotMHhmYywgMHg3MywgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwKLTB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIAotMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgCi0weGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAKLTB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIAotMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhmOCwgMHhiYiwgMHgwMSwgMHgwZCwgMHhlNSwgMHg4MiwgCi0weDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU4LCAweGYwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAKLTB4YzgsIDB4ZjYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDUsIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjIsIDB4MjIsIDB4YzUsIDB4ZjAsIDB4ZjgsIDB4YTMsIAotMHhlMCwgMHgyOCwgMHhmMCwgMHhjNSwgMHhmMCwgMHhmOCwgMHhlNSwgMHg4MiwgMHgxNSwgMHg4MiwgMHg3MCwgMHgwMiwgMHgxNSwgMHg4MywgMHhlMCwgMHgzOCwgCi0weGYwLCAweDIyLCAweGEzLCAweGY4LCAweGUwLCAweGM1LCAweGYwLCAweDI1LCAweGYwLCAweGYwLCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAKLTB4MTUsIDB4ODMsIDB4ZTAsIDB4YzgsIDB4MzgsIDB4ZjAsIDB4ZTgsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MTAsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIAotMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMCwgMHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgCi0weGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAKLTB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODMsIDB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjIsIAotMHhiYiwgMHgwMSwgMHgwYSwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHhlNSwgMHhmMCwgMHhhMywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhmNywgCi0weDA5LCAweGE3LCAweGYwLCAweDE5LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGYzLCAweGU1LCAweGYwLCAweDA5LCAweGYzLCAweDE5LCAweDIyLCAweGY4LCAKLTB4YmIsIDB4MDEsIDB4MTEsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjAsIDB4ZTUsIAotMHhmMCwgMHhhMywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmNiwgMHgwOCwgMHhhNiwgMHhmMCwgMHgyMiwgMHhiYiwgCi0weGZlLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGYyLCAweGU1LCAweGYwLCAweDA4LCAweGYyLCAweDIyLCAweGE0LCAweDI1LCAweDgyLCAweGY1LCAKLTB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4ZTYsIDB4ZmIsIDB4MDgsIDB4ZTYsIDB4ZmEsIDB4MDgsIDB4ZTYsIDB4ZjksIAotMHgyMiwgMHhlYiwgMHhmNiwgMHgwOCwgMHhlYSwgMHhmNiwgMHgwOCwgMHhlOSwgMHhmNiwgMHgyMiwgMHhlMCwgMHhmYiwgMHhhMywgMHhlMCwgMHhmYSwgMHhhMywgCi0weGUwLCAweGY5LCAweDIyLCAweGViLCAweGYwLCAweGEzLCAweGVhLCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAKLTB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIAotMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgCi0weDgwLCAweGRmLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweGU1LCAweDRjLCAweDEyLCAweDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LAotMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHhhYiwgMHgzNiwgMHhmYSwgMHhhOSwgMHgzOCwgMHg3NCwgMHgxMSwgMHgxMiwgCi0weDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweDkwLCAweGZmLCAweDA2LAotMHhlMCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgxMiwgMHgxYSwgMHhlOCwgMHg3NCwgMHgwMSwgMHgyNSwgMHgzOCwgMHhmNSwgMHgzOCwKLTB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4YWIsIDB4MzYsIDB4ZmEsIDB4YTksIDB4MzgsIDB4ZTQsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MDQsIDB4MjUsCi0weDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweGFiLCAweDM2LCAweGZhLCAweGE5LCAweDM4LCAweGU0LCAweDEyLCAweDFhLCAKLTB4ZTgsIDB4MDQsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4OTAsIDB4ZmYsIDB4MDQsIDB4ZTAsIDB4YWIsCi0weDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDEyLCAweDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LAotMHgzNywgMHhmNSwgMHgzNywgMHg5MCwgMHhmZiwgMHgwNSwgMHhlMCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgxMiwgMHgxYSwgMHhlOCwKLTB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4MjIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIAotMHgwOCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgyMiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhmZCwgMHg3YywgMHgwMCwgMHhjMywgCi0weDc4LCAweDdiLCAweGU2LCAweDlkLCAweGY2LCAweDE4LCAweGU2LCAweDljLCAweGY2LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDc4LCAweDAzLCAweDIyLCAKLTB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsIDB4MzgsIDB4NzIsIDB4MjIsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MTMsCi0weDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDkwLCAweGZhLCAweGJjLCAweGUwLCAweGZmLCAweDdlLAotMHgwMCwgMHhjMywgMHg5MCwgMHhmYSwgMHhjMCwgMHhlMCwgMHg5ZiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhiZiwgMHhlMCwgMHg5ZSwgMHhmMCwgMHg5MCwgMHhmYSwKLTB4YjcsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZWYsIDB4MjUsIDB4NGYsIDB4ZjUsIDB4NGYsIDB4ZWUsIDB4MzUsIDB4NGUsIDB4ZjUsCi0weDRlLCAweDIyLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGI0LCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLAotMHhmNSwgMHgyZSwgMHgyMiwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgCi0weDM1LCAweDgzLCAweGY1LCAweDgzLCAweDIyLCAweDU0LCAweDBmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQwLCAweGY1LCAweDgyLCAweGU0LCAKLTB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4ZTUsIDB4NGQsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDgsIDB4ZjUsIDB4ODIsIDB4ZTQsIAotMHgzNCwgMHhmZiwgMHgyMiwgMHhlNSwgMHg0ZCwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgCi0weDIyLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDI0LCAweGZjLCAweDIyLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweDU0LCAweDFmLCAweDIyLAotMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhmMCwgMHgyMiwgMHg3NSwgMHgzMywgMHgwMCwgMHg4ZiwgMHgzNCwgMHg5MCwgMHhmOSwKLTB4NmYsIDB4MTIsIDB4MWIsIDB4ZWEsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MjIsIDB4NTQsIDB4MGYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsCi0weGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweDIyLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQxLCAweGY1LCAweDgyLCAKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4ZmYsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIAotMHhhNCwgMHgyMiwgMHg3NCwgMHhiMiwgMHgyNSwgMHgyMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgMHhmNSwgMHg4MywgMHgyMiwgMHg3NSwgMHhmMCwKLTB4MDgsIDB4YTQsIDB4MjQsIDB4NDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4OTAsIAotMHhmZiwgMHg4MiwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhmZiwgCi0weGZjLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDc4LCAweDY3LCAweGU2LCAweDU0LCAweGZkLCAweGY2LCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAKLTB4NjUsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NGUsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsCi0weGZhLCAweDc5LCAweGI3LCAweDIyLCAweDkwLCAweGZmLCAweDgwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDIyLCAweDkwLCAweGZmLCAweDgzLCAweGUwLAotMHg1NCwgMHg3ZiwgMHhmMCwgMHgyMiwgMHhlMCwgMHhmZiwgMHg5MCwgMHhmOSwgMHg2YSwgMHgwMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwKLTB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4MzksIDB4MDEsIDB4NzUsIDB4M2EsIDB4MDksIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZjksIDB4NzksIAotMHg3MiwgMHgyMiwgMHhkMywgMHhlNSwgMHgzYywgMHg5NCwgMHgwOCwgMHhlNSwgMHgzYiwgMHg5NCwgMHgwMSwgMHgyMiwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwKLTB4ZmYsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4YjQsCi0weGUwLCAweDU0LCAweGVmLCAweDIyLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDg4LCAweGVmLCAweGY2LCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLAotMHhmYSwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgyMiwgMHhlOCwgMHg5MCwgMHgwMCwgMHgwYSwKLTB4MTIsIDB4MjMsIDB4MDIsIDB4MjQsIDB4MGEsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4OTAsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4MTIsCi0weDIyLCAweGZhLCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDUzLCAweDEyLCAweDIzLCAweDA2LCAweDI0LAotMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmNSwgMHg1NCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg1NSwKLTB4ZTUsIDB4NTMsIDB4YzQsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MDEsIDB4NzgsIDB4ODgsIDB4ZjYsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIAotMHhlNSwgMHg1NCwgMHgzMCwgMHhlMSwgMHgwMSwgMHgwNiwgMHg3OCwgMHg4OCwgMHhlNiwgMHgxMiwgMHgyMiwgMHhlNywgMHg5MCwgMHgwMCwgMHgwYywgMHhlZiwKLTB4MTIsIDB4MWEsIDB4ZmEsIDB4MTIsIDB4MjIsIDB4YjUsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NTMsIDB4MDcsIDB4MGMsCi0weDUzLCAweDA2LCAweGU2LCAweGU1LCAweDUzLCAweDMwLCAweGU1LCAweDAzLCAweDQzLCAweDA3LCAweDAxLCAweGU1LCAweDU0LCAweDIwLCAweGU1LCAweDBlLAotMHhlNSwgMHg1MywgMHg1NCwgMHg3ZiwgMHg3MCwgMHgwOCwgMHhlNSwgMHg1MywgMHgyMCwgMHhlNywgMHgwMywgMHg0MywgMHgwNywgMHgwMiwgMHhlNSwgMHg1MywKLTB4MzAsIDB4ZTMsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MTAsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTIsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ZTUsIDB4NTMsCi0weDU0LCAweDAzLCAweDYwLCAweDAzLCAweDQzLCAweDA3LCAweDQwLCAweGU1LCAweDUzLCAweDMwLCAweGUxLCAweDAzLCAweDQzLCAweDA3LCAweDgwLCAweGU1LAotMHg1MywgMHgzMCwgMHhlNCwgMHgwMywgMHg0MywgMHgwNiwgMHgwMSwgMHhlNSwgMHg1MywgMHgzMCwgMHhlNiwgMHgwMywgMHg0MywgMHgwNiwgMHgwOCwgMHhlNSwKLTB4NTQsIDB4MjAsIDB4ZTQsIDB4MGUsIDB4ZTUsIDB4NTMsIDB4NTQsIDB4N2YsIDB4NzAsIDB4MDgsIDB4ZTUsIDB4NTMsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4NDMsCi0weDA2LCAweDEwLCAweDUzLCAweDA3LCAweGZiLCAweDUzLCAweDA2LCAweDc5LCAweDkwLCAweDAwLCAweDA1LCAweGVlLCAweDhmLCAweGYwLCAweDEyLCAweDFiLAotMHg5ZiwgMHhlNSwgMHg1NSwgMHgzMCwgMHhlMywgMHgxMiwgMHg1NCwgMHgzMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHgxMiwgMHgyMiwgMHhlNywgMHg5MCwKLTB4MDAsIDB4MDgsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4ODAsIDB4MGEsIDB4MTIsIDB4MjIsIDB4ZTgsIDB4OTAsIDB4MDAsIDB4MDgsIDB4ZTQsIDB4MTIsCi0weDFhLCAweGZhLCAweGU1LCAweDU1LCAweDU0LCAweDAzLCAweDEyLCAweDIyLCAweGU3LCAweDkwLCAweDAwLCAweDA3LCAweGVmLCAweDEyLCAweDFhLCAweGZhLAotMHhlNSwgMHg1NSwgMHg1NCwgMHgwNCwgMHhmZiwgMHhjMywgMHgxMywgMHg5MCwgMHgwMCwgMHgwOSwgMHgxMiwgMHgxYSwgMHhmYSwgMHg5MCwgMHgwMCwgMHgwNywKLTB4MTIsIDB4MWEsIDB4YmIsIDB4NzAsIDB4MTMsIDB4MTIsIDB4MjIsIDB4ZTgsIDB4ZTksIDB4MjQsIDB4MDksIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4MTIsCi0weDFhLCAweGEyLCAweGZmLCAweGMzLCAweDEzLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDIzLCAweDI3LCAweDI0LCAweDA4LCAweDEyLCAweDIyLCAweGExLAotMHhlMCwgMHhmZSwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNywgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmZCwgMHhlZSwKLTB4ZWQsIDB4MTIsIDB4MjIsIDB4ZTcsIDB4OTAsIDB4MDAsIDB4MDMsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4OWYsIDB4MTIsIDB4MzIsIDB4ODQsCi0weDdkLCAweDBhLCAweGU0LCAweGZmLCAweDEyLCAweDJmLCAweGI0LCAweDAyLCAweDEwLCAweGNlLCAweDkwLCAweGZhLCAweGU2LCAweGUwLCAweGI0LCAweDAzLAotMHgwNiwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHg0MCwgMHg4MCwgMHgwNCwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwOCwgMHg5MCwgMHhmYSwgMHhkYSwgMHhlZSwgMHhmMCwKLTB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4YmIsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4OTAsIDB4ZmEsIDB4ZDYsIDB4ZWUsCi0weGYwLCAweGEzLCAweGVmLCAweGYwLCAweDcwLCAweDAzLCAweDdmLCAweDA4LCAweDIyLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAweDFiLCAweDQ4LCAweGZmLAotMHg5MCwgMHhmYSwgMHhkOCwgMHhlNSwgMHhmMCwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwgMHg4ZSwgMHg1MCwgMHg4ZiwKLTB4NTEsIDB4NzQsIDB4MGEsIDB4MjUsIDB4NTEsIDB4ZjUsIDB4NTEsIDB4ZTQsIDB4MzUsIDB4NTAsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4ZmEsIDB4ZGIsIDB4ZTAsCi0weGZmLCAweDE0LCAweGZlLCAweDkwLCAweGZhLCAweGQ5LCAweGUwLCAweDVlLCAweGZlLCAweGMzLCAweGVmLCAweDllLCAweGZmLCAweDkwLCAweGZhLCAweGRkLAotMHhmMCwgMHhjMywgMHg5MCwgMHhmYSwgMHhkNywgMHhlMCwgMHg5ZiwgMHg5MCwgMHhmYSwgMHhkNiwgMHhlMCwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwNiwgMHhhMywKLTB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZjAsIDB4MTIsIDB4MjAsIDB4YTksIDB4NjAsIDB4MDMsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MmUsIDB4MmIsCi0weDkwLCAweGZhLCAweGQ2LCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDRlLCAweDYwLCAweDJiLCAweDkwLCAweGZhLCAweGRhLCAweGUwLCAweGZjLAotMHhhMywgMHhlMCwgMHhmZCwgMHhkMywgMHhlZiwgMHg5ZCwgMHhlZSwgMHg5YywgMHg0MCwgMHgwNywgMHhlMCwgMHg5MCwgMHhmYSwgMHhkZCwgMHhmMCwgMHg4MCwKLTB4MDgsIDB4OTAsIDB4ZmEsIDB4ZDcsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZjAsIDB4MTIsIDB4MjAsIDB4YTksIDB4NjAsIDB4MDMsIDB4ZTAsIDB4ZmYsCi0weDIyLCAweDEyLCAweDJlLCAweDJiLCAweDgwLCAweGNhLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDUyLCAweGU0LCAweGY1LCAweDJkLCAweGY1LAotMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg3ZiwgMHgwMCwgMHgyMiwgMHhhYSwgMHg1MCwgMHhhOSwgMHg1MSwgMHg3YiwgMHgwMSwgMHg5MCwKLTB4ZmEsIDB4ZDgsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZTAsIDB4ZjUsIDB4NGEsIDB4MTIsIDB4MjksIDB4NjAsCi0weDkwLCAweGZhLCAweGRjLCAweGVmLCAweGYwLCAweDIyLCAweGVmLCAweDI0LCAweGFlLCAweDYwLCAweDUyLCAweDI0LCAweGZlLCAweDYwLCAweDJlLCAweDI0LAotMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgyMSwgMHg2OSwgMHgyNCwgMHgwNiwgMHg2MCwgMHgwMywgMHgwMiwgMHgyMSwgMHhiMSwgMHg3OCwgMHg3MSwgMHhlNiwKLTB4NTQsIDB4ZmIsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4YTUsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NDQsIDB4MGYsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4OTAsIDB4ZmEsCi0weDk0LCAweGYwLCAweGU1LCAweDIyLCAweGEzLCAweGYwLCAweDkwLCAweGZhLCAweGIyLCAweDc0LCAweDAxLCAweGYwLCAweDIyLCAweDc4LCAweDcyLCAweGU2LAotMHg1NCwgMHhmYiwgMHhmNiwgMHg5MCwgMHhmZiwgMHhiNSwgMHhlMCwgMHhmNSwgMHgyMiwgMHg0NCwgMHgwZiwgMHhmMCwgMHg3NCwgMHg0MywgMHg5MCwgMHhmYSwKLTB4OTYsIDB4ZjAsIDB4ZTUsIDB4MjIsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YjMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YTAsCi0weGUwLCAweGEzLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDIxLCAweGIxLCAweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDkwLCAweGZhLCAweGNkLCAweGYwLAotMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZCwgMHhlMCwgMHhmZiwgMHg1NCwgMHgwZiwgMHhmZSwgMHg2MCwgMHgxMCwgMHg5MCwgMHhmZiwgMHhhNiwgMHgxMiwKLTB4MjMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4YTYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZjAsIDB4ODAsIDB4ZTYsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsCi0weGZmLCAweDc0LCAweDM0LCAweGZlLCAweDEyLCAweDJkLCAweDg1LCAweGVmLCAweDcwLCAweDU3LCAweDkwLCAweGZhLCAweGNlLCAweGUwLCAweGZmLCAweDc0LAotMHgzNCwgMHg5MCwgMHhmYSwgMHg5OCwgMHhmMCwgMHhlZiwgMHhhMywgMHhmMCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhhYSwgMHhlMCwgMHhhMywgMHgzMCwgMHhlNSwKLTB4NDAsIDB4OTAsIDB4ZmYsIDB4YjYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZTAsIDB4ZmYsCi0weDU0LCAweDBmLCAweGZlLCAweDYwLCAweDEwLCAweDkwLCAweGZmLCAweGI2LCAweDEyLCAweDIzLCAweDBkLCAweDkwLCAweGZmLCAweGI2LCAweGUwLCAweDkwLAotMHhmYSwgMHhjZCwgMHhmMCwgMHg4MCwgMHhlNiwgMHg5MCwgMHhmYSwgMHhjZSwgMHhlMCwgMHhmZiwgMHg3NCwgMHg0NCwgMHhmZSwgMHgxMiwgMHgyZCwgMHg4NSwKLTB4ZWYsIDB4NzAsIDB4MGUsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4NDQsIDB4OTAsIDB4ZmEsIDB4OWEsIDB4ZjAsIDB4ZWYsIDB4YTMsCi0weGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDAwLCAweGMwLAotMHgwMCwgMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg5MCwKLTB4ZmYsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4OTIsIDB4ZTQsIDB4ZjAsIDB4ZWYsIDB4MTIsIDB4MWIsCi0weGZjLCAweDIyLCAweDY5LCAweDI2LCAweDIyLCAweDY5LCAweDJlLCAweDIyLCAweDBjLCAweDMwLCAweDIyLCAweDBjLCAweDMyLCAweDIyLCAweDFhLCAweDM4LAotMHgyMiwgMHgyYywgMHgzYSwgMHgyMiwgMHg1ZSwgMHgzZSwgMHgyMiwgMHg0OSwgMHg0NCwgMHgyMiwgMHgzZSwgMHg0NiwgMHgyMiwgMHg1NCwgMHg1MCwgMHgyMiwKLTB4NTQsIDB4NTIsIDB4MjIsIDB4NTQsIDB4NTQsIDB4MjIsIDB4NTQsIDB4NTYsIDB4MDAsIDB4MDAsIDB4MjIsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTAsCi0weGZkLCAweDdjLCAweDAwLCAweDdmLCAweDAxLCAweDEyLCAweDExLCAweDVlLCAweDgwLCAweDYyLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAweDAzLAotMHgxMiwgMHgxMSwgMHg1ZSwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1MCwgMHg3YywgMHgwMCwgMHg3ZCwgMHgwMSwKLTB4N2YsIDB4MDIsIDB4MTIsIDB4MTEsIDB4NWUsIDB4OTAsIDB4ZmYsIDB4ZmUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4M2UsIDB4N2MsIDB4MDAsCi0weDdkLCAweDAxLCAweDdmLCAweDA1LCAweDEyLCAweDExLCAweDVlLCAweDgwLCAweDMzLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAweDA2LCAweDEyLAotMHgxMSwgMHg1ZSwgMHg4MCwgMHgyOCwgMHg5MCwgMHhmYSwgMHhjYywgMHhlMCwgMHhmZiwgMHgxMiwgMHgyMCwgMHhjNiwgMHg4MCwgMHgxZSwgMHg3YywgMHgwMCwKLTB4N2QsIDB4MDEsIDB4N2YsIDB4MDQsIDB4MTIsIDB4MTEsIDB4NWUsIDB4ODAsIDB4MTMsIDB4MTIsIDB4MjgsIDB4NGUsIDB4ODAsIDB4MGUsIDB4OTAsIDB4ZmEsCi0weGNjLCAweGUwLCAweDI0LCAweDAwLCAweGZmLCAweGU0LCAweDM0LCAweGZmLCAweGZlLCAweDEyLCAweDJkLCAweDg1LCAweGQwLCAweDA3LCAweGQwLCAweDA2LAotMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4NzgsIDB4N2MsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4MjQsIDB4MDQsIDB4OGUsCi0weDgzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweDIyLCAweDc0LCAweDEzLCAweDI1LCAweDI0LCAweGY1LCAweDgyLCAweGU0LAotMHgzNCwgMHhmOSwgMHhmNSwgMHg4MywgMHgyMiwgMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHgyMiwKLTB4NzgsIDB4ODAsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4YWEsIDB4MDYsIDB4ZjgsIDB4YWMsIDB4MDIsIDB4N2QsIDB4MDEsIDB4N2IsIDB4ZmYsIDB4N2EsCi0weDMyLCAweDc5LCAweDU2LCAweDdlLCAweDAwLCAweDdmLCAweDBhLCAweDAyLCAweDFhLCAweDdjLCAweDc4LCAweDgwLCAweGU2LCAweGZjLCAweDA4LCAweGU2LAotMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHgyMiwgMHhmZiwgMHg5MCwgMHhmOSwgMHg2ZiwgMHgwMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHhmOSwKLTB4NmEsIDB4MTIsIDB4MWIsIDB4ZWEsIDB4OTAsIDB4MDAsIDB4MDQsIDB4MDIsIDB4MWEsIDB4YmIsIDB4NzgsIDB4N2UsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsCi0weGZmLCAweDIyLCAweGVkLCAweDEyLCAweDFhLCAweGZhLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDgyLCAweDIyLCAweGVmLCAweGYwLCAweDkwLAotMHhmYSwgMHhjZSwgMHhlMCwgMHg1NCwgMHgwZiwgMHg0ZSwgMHhmZSwgMHhmMCwgMHhlZiwgMHg1NCwgMHhmMCwgMHg0ZSwgMHhmMCwgMHgyMiwgMHg3OCwgMHg4MCwKLTB4ZTYsIDB4ZmMsIDB4MDgsIDB4ZTYsIDB4OGMsIDB4ODMsIDB4MjIsIDB4NzgsIDB4N2UsIDB4ZTYsIDB4ZmMsIDB4MDgsIDB4ZTYsIDB4ZmQsIDB4OGMsIDB4ODMsCi0weDIyLCAweGE2LCAweDA3LCAweGU2LCAweDI0LCAweDZlLCAweGY4LCAweGU2LCAweDIyLCAweDc4LCAweDdlLCAweGU2LCAweGZhLCAweDA4LCAweGU2LCAweGZiLAotMHgyMiwgMHgwOCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHg4ZSwgMHg4MywgMHgyMiwgMHgyNiwgMHhmNiwgMHgxOCwgMHhlZSwgMHgzNiwgMHhmNiwgMHgyMiwKLTB4ZWYsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTUsIDB4ODIsCi0weDIyLCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweDhkLCAweDI4LCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweGYwLCAweGEzLCAweDc0LAotMHgwMiwgMHhmMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhkMSwgMHg5MCwgMHhmYSwgMHhkMiwgMHhlMCwgMHhmNSwgMHgyZCwgMHhhMywgMHhlMCwKLTB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmEsIDB4ZDEsIDB4ZTAsIDB4NjUsIDB4MjgsIDB4NjAsIDB4NDYsIDB4YTMsCi0weGUwLCAweGZmLCAweGEzLCAweGUwLCAweGEzLCAweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDEyLCAweDIzLCAweGYwLCAweDkwLCAweGZhLCAweGQxLAotMHhlMCwgMHhmZiwgMHg5MCwgMHhmYSwgMHhkNCwgMHhlNCwgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYiwgMHgxYywgMHgxMiwgMHgyMywgMHhmMCwgMHg5MCwgMHhmYSwKLTB4ZDQsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZDIsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZDEsCi0weGUwLCAweGEzLCAweDc1LCAweGYwLCAweDAwLCAweDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweDc1LCAweGYwLCAweDA0LCAweDEyLAotMHgxYiwgMHgxYywgMHgwMiwgMHgyMywgMHg3MiwgMHg5MCwgMHhmYSwgMHhkMywgMHhlMCwgMHgyNCwgMHgwMSwgMHhmZiwgMHg5MCwgMHhmYSwgMHhkMiwgMHhlMCwKLTB4MzQsIDB4MDAsIDB4YWIsIDB4MjUsIDB4YWEsIDB4MjYsIDB4YTksIDB4MjcsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4ODAsIDB4N2YsIDB4MDAsIDB4MjIsCi0weDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGQxLCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweDFiLCAweDFjLAotMHg4NSwgMHhmMCwgMHgyZSwgMHhmNSwgMHgyZCwgMHg3ZCwgMHgwMSwgMHgwMiwgMHgyNiwgMHg5OCwgMHg4ZiwgMHg2MiwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwKLTB4MjIsIDB4ZmEsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0weDA4LCAweDEyLCAweDIyLCAweGRjLCAweGUwLCAweGEzLCAweDMwLCAweGU1LCAweDBjLCAweDEyLCAweDIzLCAweDA2LCAweDI0LCAweDBiLCAweDEyLCAweDIyLAotMHhhMSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywKLTB4ZTAsIDB4NTQsIDB4YjgsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NjIsIDB4MjQsIDB4ZmUsIDB4NDQsIDB4MjAsIDB4ZmMsIDB4NGQsIDB4ZjAsIDB4ZTUsIDB4ODIsCi0weDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDU0LCAweGI4LCAweGYwLCAweDRjLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLAotMHg3NCwgMHgwMywgMHhmMCwgMHgxOCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwNSwgMHgxMiwgMHgyMiwgMHhhMSwKLTB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4NzQsIDB4OTksIDB4MjUsIDB4NjIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmEsIDB4ZjUsCi0weDgzLCAweGUwLCAweDU0LCAweGZjLCAweDQ0LCAweDAzLCAweGZjLCAweGVkLCAweDRjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyLAotMHg4ZSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg0NCwgMHg4MCwKLTB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjIsIDB4ZjgsIDB4NzQsIDB4MDQsIDB4NDYsIDB4ZjYsIDB4N2YsIDB4MDAsIDB4MjIsCi0weDEyLCAweDEwLCAweDRiLCAweDdmLCAweDAyLCAweDEyLCAweDEyLCAweDYxLCAweDc4LCAweDY3LCAweGU2LCAweDQ0LCAweDAyLCAweGY2LCAweGQyLCAweGIwLAotMHhkMiwgMHhiMSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlNCwgMHhmMCwgMHg4MCwgMHgzNiwKLTB4ZDIsIDB4YjMsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4N2UsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4OTAsIDB4ZmEsCi0weDdmLCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweGUwLCAweDkwLCAweGZhLCAweDdjLCAweGYwLCAweDkwLCAweGZmLCAweGIyLCAweGUwLCAweDkwLCAweGZhLAotMHg3ZCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhNCwgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHg3NCwKLTB4NDAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZTcsIDB4ZTUsIDB4YTgsIDB4ZjAsIDB4NzUsIDB4YTgsIDB4ODEsIDB4OTAsCi0weGZmLCAweDkyLCAweGUwLCAweDYwLCAweDA0LCAweGU0LCAweGYwLCAweDgwLCAweGY2LCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAweDNhLCAweGYwLCAweDQzLAotMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg5MCwgMHhmYSwgMHg3ZSwgMHhlMCwgMHg5MCwgMHhmZiwgMHhhNCwgMHhmMCwgMHg5MCwgMHhmYSwgMHg3ZiwKLTB4ZTAsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4N2MsIDB4ZTAsIDB4OTAsIDB4ZmYsIDB4YTIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4N2QsCi0weGUwLCAweDkwLCAweGZmLCAweGIyLCAweGYwLCAweDkwLCAweGY5LCAweDE4LCAweGUwLCAweDYwLCAweDAyLCAweGMyLCAweGIzLCAweDkwLCAweGZhLCAweGU3LAotMHhlMCwgMHhmNSwgMHhhOCwgMHgwMiwgMHgxMCwgMHhjZSwgMHg4YiwgMHg1YywgMHg4YSwgMHg1ZCwgMHg4OSwgMHg1ZSwgMHgxMiwgMHgyZSwgMHgwZCwgMHg5MCwKLTB4ZmEsIDB4YzMsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4YWEsIDB4NWQsIDB4YTksIDB4NWUsIDB4OTAsIDB4ZmEsIDB4YzYsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4OTAsCi0weGZhLCAweGM3LCAweGU0LCAweDc1LCAweGYwLCAweDBhLCAweDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGM2LCAweDEyLCAweDFiLCAweGVhLCAweGU5LAotMHgyNCwgMHgwMSwgMHhmOSwgMHhlNCwgMHgzYSwgMHhmYSwgMHg5MCwgMHhmYSwgMHhjOSwgMHgxMiwgMHgxYiwgMHhmMywgMHhhYiwgMHg1YywgMHhhYSwgMHg1ZCwKLTB4YTksIDB4NWUsIDB4MTIsIDB4MmUsIDB4MTksIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4MTMsIDB4ZjAsIDB4ZTQsIDB4NzgsIDB4ODIsIDB4ZjYsIDB4OTAsIDB4ZmEsCi0weGMxLCAweGUwLCAweGZmLCAweDc4LCAweDgyLCAweGU2LCAweGMzLCAweDlmLCAweDUwLCAweDRhLCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDJkLCAweGVlLAotMHhmZiwgMHg3OCwgMHg4MywgMHhmNiwgMHg5MCwgMHhmYSwgMHhjNiwgMHgxMiwgMHgyZCwgMHhlZSwgMHhmZSwgMHhmNCwgMHg1ZiwgMHhmZiwgMHg3OCwgMHg4MywKLTB4ZjYsIDB4MTIsIDB4MmQsIDB4ZWIsIDB4NWUsIDB4NGYsIDB4ZmYsIDB4NzgsIDB4ODMsIDB4ZjYsIDB4MTIsIDB4MmQsIDB4ZjQsIDB4NzUsIDB4ZjAsIDB4MDIsCi0weDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGM3LCAweGU0LCAweDc1LCAweGYwLCAweDAyLCAweDEyLCAweDFiLCAweDFjLCAweGFiLCAweDVjLCAweGFhLAotMHg1ZCwgMHhhOSwgMHg1ZSwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxYSwgMHhiYiwgMHgzMCwgMHhlNCwgMHgwMywgMHgxMiwgMHgyZSwgMHgwMywgMHg3OCwKLTB4ODIsIDB4MDYsIDB4ODAsIDB4YWEsIDB4ZTQsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZjAsIDB4MjIsIDB4OGIsIDB4NTYsIDB4OGEsIDB4NTcsIDB4ODksIDB4NTgsCi0weDkwLCAweGZhLCAweGMyLCAweDc0LCAweDA2LCAweGYwLCAweGU0LCAweDkwLCAweGZhLCAweGMxLCAweGYwLCAweDEyLCAweDFhLCAweGEyLCAweDI0LCAweDZlLAotMHg2MCwgMHgyNiwgMHgxNCwgMHg3MCwgMHg3MCwgMHgxMiwgMHgyZCwgMHhkYSwgMHg2MCwgMHgwOSwgMHgyNCwgMHgzMCwgMHg3MCwgMHgxMiwgMHgxMiwgMHgyNSwKLTB4NTYsIDB4ODAsIDB4NjIsIDB4MTIsIDB4MmUsIDB4MjQsIDB4MTIsIDB4MWYsIDB4ZGEsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4NTUsCi0weDkwLCAweGZhLCAweGMyLCAweDc0LCAweDgxLCAweGYwLCAweDgwLCAweDRkLCAweDEyLCAweDJkLCAweGRhLCAweDYwLCAweDA5LCAweDI0LCAweDMwLCAweDcwLAotMHgzZSwgMHgxMiwgMHgyZCwgMHgzMCwgMHg4MCwgMHgzZiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwMywgMHhmOSwgMHhlNCwgMHgzNSwgMHg1NywgMHhmYSwgMHg3YiwKLTB4MDEsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDEsIDB4MTIsIDB4MmUsIDB4MjQsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4YmIsCi0weGZkLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAweDFiLCAweDQ4LCAweGY1LCAweDJlLCAweDg1LCAweGYwLCAweDJkLCAweGQwLCAweDAxLCAweGQwLCAweDAyLAotMHhkMCwgMHgwMywgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmYSwgMHhjMSwgMHhlZiwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwKLTB4ZmEsIDB4YzIsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZTAsIDB4MTIsIDB4MmUsIDB4MjQsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsCi0weDFhLCAweGZhLCAweDkwLCAweGZhLCAweGMxLCAweGUwLCAweGZmLCAweDIyLCAweDhiLCAweDI5LCAweDhhLCAweDJhLCAweDg5LCAweDJiLCAweDhkLCAweDJjLAotMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHhhZiwgMHgyYywgMHgyMiwgMHgxMiwgMHgyZSwgMHg1MywgMHg3MCwgMHgxNiwgMHgxMiwgMHgyZSwgMHg3MiwgMHhlNSwKLTB4MmQsIDB4OTAsIDB4ZmYsIDB4ZjEsIDB4ZjAsIDB4MTIsIDB4MzEsIDB4ZDgsIDB4NTAsIDB4ZjIsIDB4MTIsIDB4MjcsIDB4MjUsIDB4NDAsIDB4MGIsIDB4N2YsCi0weDAwLCAweDIyLCAweDEyLCAweDJlLCAweDcyLCAweDEyLCAweDI3LCAweDI1LCAweDUwLCAweGY4LCAweDkwLCAweGZmLCAweGYzLCAweDc0LCAweGExLCAweGYwLAotMHhlNSwgMHgyYywgMHhiNCwgMHgwMSwgMHgwNywgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhlNCwKLTB4ZjAsIDB4ZjUsIDB4MmYsIDB4ZTUsIDB4MmMsIDB4MTQsIDB4ZmYsIDB4ZTUsIDB4MmYsIDB4YzMsIDB4OWYsIDB4NTAsIDB4MmEsIDB4MTIsIDB4MzEsIDB4YzEsCi0weDQwLCAweDAzLCAweGFmLCAweDJmLCAweDIyLCAweGMzLCAweGU1LCAweDJjLCAweDk1LCAweDJmLCAweGZmLCAweGJmLCAweDAyLCAweDA3LCAweDkwLCAweGZmLAotMHhmMCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgxMiwgMHgyZSwgMHg2NSwgMHgwNSwgMHgyZiwgMHg3NCwgMHgwMSwgMHgyNSwgMHgyYiwgMHhmNSwgMHgyYiwKLTB4ZTQsIDB4MzUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ODAsIDB4Y2MsIDB4MTIsIDB4MzEsIDB4YzEsIDB4NDAsIDB4MDMsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsCi0weDJlLCAweDY1LCAweGFmLCAweDJjLCAweDIyLCAweDkwLCAweGZmLCAweGYxLCAweGU1LCAweDJlLCAweGYwLCAweDAyLCAweDMxLCAweGQ4LCAweDEyLCAweDEwLAotMHg0YiwgMHg3OCwgMHg4NCwgMHgxMiwgMHgyMywgMHgzMSwgMHgzMCwgMHhlMSwgMHgwOCwgMHg3ZiwgMHgxMywgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgyNywKLTB4YmMsIDB4NzgsIDB4ODQsIDB4ZTYsIDB4ZjksIDB4MjQsIDB4MTMsIDB4MTIsIDB4MjIsIDB4YWQsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NDAsIDB4NTQsCi0weDAzLCAweDYwLCAweDFlLCAweGU5LCAweGI0LCAweDAzLCAweDBkLCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGUwLCAweDQ0LAotMHgwNCwgMHhmMCwgMHg4MCwgMHg0NiwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHg4MCwKLTB4MzksIDB4ZTksIDB4YjQsIDB4MDMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0weDgwLCAweDI4LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDFiLCAweGVmLAotMHg1NCwgMHgwMywgMHg2MCwgMHgxNCwgMHhlOSwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg4MCwKLTB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4YzIsIDB4YjMsIDB4OTAsIDB4ZjksIDB4MTgsIDB4ZTAsIDB4MDQsIDB4ZjAsCi0weGFmLCAweDAxLCAweDEyLCAweDIyLCAweGVlLCAweGZkLCAweDEyLCAweDJmLCAweGU1LCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLCAweDc1LAotMHhhOCwgMHg0MCwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg4YiwgMHgwMiwgMHgyOCwgMHgwOSwgMHgwMiwgMHgzMSwKLTB4OGMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsCi0weGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LAotMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwKLTB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MmIsIDB4YTksIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsCi0weDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLAotMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwKLTB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsCi0weGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGU0LCAweGY1LAotMHgyMiwgMHgxMiwgMHgxZCwgMHhjMiwgMHhlMCwgMHhiNCwgMHgwNCwgMHgwZCwgMHhlNSwgMHgyMiwgMHgyNCwgMHgwMywgMHhmZiwgMHgxMiwgMHgzMCwgMHgxMywKLTB4MTIsIDB4MWQsIDB4YzIsIDB4ZTQsIDB4ZjAsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MjIsIDB4YzMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4ZTMsIDB4ZTQsIDB4ZjUsCi0weDIyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLCAweGZhLCAweDk0LCAweDEyLCAweDFlLCAweDAzLCAweDYwLCAweDJjLCAweDEyLCAweDJkLAotMHg4NSwgMHhlZiwgMHg2MCwgMHg1MiwgMHg3NSwgMHhmMCwgMHgwMiwgMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgMHg5NCwgMHgxMiwgMHgxYiwgMHhjYywgMHhlNCwKLTB4ZjAsIDB4YTMsIDB4ZjAsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YTAsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTAsIDB4YTMsCi0weDMwLCAweGU2LCAweDMzLCAweDEyLCAweDFkLCAweGMyLCAweDc0LCAweDA0LCAweGYwLCAweDIyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLAotMHhmYSwgMHg5OCwgMHgxMiwgMHgxZSwgMHgwMywgMHg2MCwgMHgxNiwgMHgxMiwgMHgyZCwgMHg4NSwgMHhlZiwgMHg2MCwgMHgxOSwgMHg3NSwgMHhmMCwgMHgwMiwKLTB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4OTgsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MjIsIDB4MDUsIDB4MjIsIDB4ZTUsCi0weDIyLCAweGMzLCAweDk0LCAweDAyLCAweDQwLCAweDliLCAweDIyLCAweGU0LCAweGZmLCAweDkwLCAweGZmLCAweDgzLCAweGUwLCAweDU0LCAweDBmLCAweGZlLAotMHhlZiwgMHhjMywgMHg5ZSwgMHg1MCwgMHgxNywgMHg3NCwgMHhmMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZSwgMHhmNSwgMHg4MywgMHhlMCwKLTB4MTIsIDB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MGYsIDB4MTIsIDB4MWMsIDB4YjAsIDB4ODAsIDB4ZGQsIDB4ZWYsIDB4ZmQsIDB4YzMsIDB4ZTUsCi0weDNhLCAweDlkLCAweGY1LCAweDNhLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweGY1LCAweDM5LCAweGQzLCAweGU1LCAweDNhLCAweDk0LCAweDAwLCAweGU1LAotMHgzOSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHhlNCwgMHg5MCwgMHhmZiwgMHg4MywgMHhmMCwgMHgyMiwgMHgxMiwgMHgxZCwgMHhkZiwgMHgxMiwgMHgxZSwKLTB4MzQsIDB4MTIsIDB4MWUsIDB4MjYsIDB4MTIsIDB4MWEsIDB4YTIsIDB4MjQsIDB4NmUsIDB4NjAsIDB4MWUsIDB4MTQsIDB4NjAsIDB4MWIsIDB4MjQsIDB4OGUsCi0weDcwLCAweDJkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDFhLCAweGJiLCAweGZmLCAweDI0LCAweGZjLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDFmLAotMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwZCwgMHgwMiwgMHgxMSwgMHg1ZSwgMHgxMiwgMHgxZSwgMHgzYiwgMHgxMiwgMHgyNSwgMHhmYSwgMHgxMiwKLTB4MWQsIDB4ODksIDB4MTIsIDB4MWEsIDB4YmIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MzIsIDB4N2EsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MzIsIDB4NmUsIDB4MjIsCi0weDhiLCAweDQ1LCAweDhhLCAweDQ2LCAweDg5LCAweDQ3LCAweDhjLCAweDQ4LCAweDhkLCAweDQ5LCAweGQyLCAweDAwLCAweDEyLCAweDJlLCAweDUzLCAweDcwLAotMHgxNiwgMHgxMiwgMHgyZSwgMHg3MiwgMHhlNSwgMHg0OCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhmMCwgMHgxMiwgMHgzMSwgMHhkOCwgMHg1MCwgMHhmMiwgMHgxMiwKLTB4MjksIDB4ZDUsIDB4NDAsIDB4MGIsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsIDB4MmUsIDB4NzIsIDB4MTIsIDB4MjksIDB4ZDUsIDB4NTAsIDB4ZjgsIDB4ZTQsCi0weGY1LCAweDRiLCAweGU1LCAweDRhLCAweDE0LCAweGZmLCAweGU1LCAweDRiLCAweGMzLCAweDlmLCAweDUwLCAweDE3LCAweDEyLCAweDI5LCAweGM1LCAweDQwLAotMHgwMywgMHg3ZiwgMHgxOCwgMHgyMiwgMHgwNSwgMHg0YiwgMHg3NCwgMHgwMSwgMHgyNSwgMHg0NywgMHhmNSwgMHg0NywgMHhlNCwgMHgzNSwgMHg0NiwgMHhmNSwKLTB4NDYsIDB4ODAsIDB4ZGYsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MjksIDB4YzUsIDB4NDAsIDB4MDMsIDB4N2YsCi0weDE4LCAweDIyLCAweDdmLCAweDAwLCAweDIyLCAweGFiLCAweDQ1LCAweGFhLCAweDQ2LCAweGE5LCAweDQ3LCAweDEyLCAweDFhLCAweGEyLCAweDkwLCAweGZmLAotMHhmMSwgMHhmMCwgMHgwMiwgMHgzMSwgMHhkOCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhlNSwgMHg0OSwgMHhmMCwgMHgwMiwgMHgzMSwgMHhkOCwgMHg3YiwgMHgwMSwKLTB4N2EsIDB4ZmEsIDB4NzksIDB4Y2YsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MjMsIDB4NjEsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDksCi0weDEyLCAweDFiLCAweDFjLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDIzLCAweDkwLCAweGZhLCAweGNmLCAweGU0LCAweDc1LCAweGYwLCAweDAxLAotMHgxMiwgMHgxYiwgMHgzMiwgMHg4NSwgMHhmMCwgMHgyZSwgMHhmNSwgMHgyZCwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmZiwgMHhmNywKLTB4ZTUsIDB4MjMsIDB4MTIsIDB4MmEsIDB4MzksIDB4OTAsIDB4ZmYsIDB4ZjYsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4ZjAsCi0weGEzLCAweDc0LCAweDA2LCAweDEyLCAweDJhLCAweDM5LCAweGU1LCAweDIzLCAweDMwLCAweGUwLCAweDA3LCAweDkwLCAweGZmLCAweGZjLCAweDc0LCAweDk0LAotMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmYywgMHg3NCwgMHg5MCwgMHhmMCwgMHgyMiwgMHhmMCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywKLTB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4MWIsIDB4MzIsIDB4ODUsIDB4ZjAsIDB4MmUsIDB4ZjUsIDB4MmQsIDB4N2QsCi0weDAxLCAweDAyLCAweDI2LCAweDk4LCAweDkwLCAweGZmLCAweDkzLCAweDc0LCAweDgxLCAweGYwLCAweDkwLCAweGZmLCAweGZmLCAweGUwLCAweDYwLCAweDA2LAotMHg5MCwgMHhmZiwgMHhmYywgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg5MSwgMHhlMCwgMHg0NCwgMHg5MCwgMHhmMCwgMHhlNCwgMHg5MCwgMHhmOSwKLTB4MTYsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MmIsIDB4MzksIDB4MTIsIDB4MTYsIDB4YzksIDB4MTIsIDB4MzAsIDB4NjksIDB4N2UsIDB4MDcsIDB4N2YsCi0weGQwLCAweDEyLCAweDEyLCAweDJhLCAweDdlLCAweDBmLCAweDdmLCAweGEwLCAweDEyLCAweDEyLCAweDQ0LCAweGU0LCAweDc4LCAweDc3LCAweGY2LCAweDc4LAotMHg3NywgMHhlNiwgMHhmZiwgMHhjMywgMHg5NCwgMHgwNiwgMHg1MCwgMHgwYiwgMHg3NCwgMHg2ZSwgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNiwgMHg3OCwgMHg3NywKLTB4MDYsIDB4ODAsIDB4ZWMsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MzAsIDB4YjIsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MjAsIDB4ZTQsIDB4MDUsIDB4N2YsCi0weDA0LCAweDEyLCAweDMwLCAweGIyLCAweDkwLCAweGZmLCAweDliLCAweGU0LCAweGYwLCAweDkwLCAweGZmLCAweDlhLCAweGYwLCAweDkwLCAweGZmLCAweGU4LAotMHhlMCwgMHg1NCwgMHgxZiwgMHhmMCwgMHhkMiwgMHhhOCwgMHgyMiwgMHgxNSwgMHg2NSwgMHhhOCwgMHg2NSwgMHhhNiwgMHgwNywgMHgzMCwgMHgwOCwgMHgwNSwKLTB4MTIsIDB4MTEsIDB4YWUsIDB4ODAsIDB4ZjgsIDB4ZDIsIDB4MDgsIDB4YTgsIDB4NjUsIDB4ZTYsIDB4ZmYsIDB4YjQsIDB4MDMsIDB4MGYsIDB4NzgsIDB4N2MsCi0weDc2LCAweGZmLCAweDA4LCAweDc2LCAweGUwLCAweDA4LCAweDc2LCAweGZmLCAweDA4LCAweDc2LCAweGEwLCAweDgwLCAweDBkLCAweDc4LCAweDdjLCAweDc2LAotMHhmZiwgMHgwOCwgMHg3NiwgMHhlMiwgMHgwOCwgMHg3NiwgMHhmZiwgMHgwOCwgMHg3NiwgMHhiMCwgMHg3OCwgMHg4MCwgMHg3NiwgMHhmYSwgMHgwOCwgMHg3NiwKLTB4OWUsIDB4ZWYsIDB4MjQsIDB4ZmQsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4YTQsIDB4YWUsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4NDksIDB4N2IsIDB4MDEsIDB4N2EsCi0weGZmLCAweDc5LCAweDQ4LCAweDc4LCAweDY4LCAweDEyLCAweDFiLCAweGUxLCAweGE4LCAweDY1LCAweGU2LCAweDI0LCAweGZkLCAweDc1LCAweGYwLCAweDA4LAotMHhhNCwgMHhmZiwgMHhhZSwgMHhmMCwgMHg3OCwgMHg2YSwgMHgxMiwgMHgyMywgMHg0OSwgMHg3OSwgMHgwOCwgMHg3OCwgMHg2YiwgMHgxMiwgMHgxYiwgMHhlMSwKLTB4NzgsIDB4NmQsIDB4ZWYsIDB4MTIsIDB4MjMsIDB4NDksIDB4MDUsIDB4NjUsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4YWIsIDB4ZjAsCi0weGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGZhLCAweGU2LCAweDc0LCAweDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNmLAotMHhlNCwgMHhmNSwgMHgyZCwgMHhmNSwgMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg3ZSwgMHgwMCwgMHg5MCwgMHhmYSwgMHhlNCwgMHhlZSwKLTB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4NjQsIDB4MDEsIDB4NzAsIDB4MTAsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTAsIDB4YjQsIDB4NTIsIDB4MDksIDB4OTAsCi0weGY5LCAweDE2LCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDgwLCAweDI5LCAweDkwLCAweGZhLCAweGU0LCAweGUwLCAweDcwLCAweDA0LCAweGEzLCAweGUwLAotMHg2NCwgMHgwMSwgMHg3MCwgMHgxMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlMCwgMHhiNCwgMHgxMCwgMHgwOSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwKLTB4MTAsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4OTAsIDB4ZmEsIDB4ZTYsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4NTQsIDB4ZWYsCi0weGYwLCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDIyLCAweDAzLCAweDY4LCAweDAxLCAweGZmLCAweDQ4LCAweDAzLCAweDZiLAotMHgwMSwgMHhmZiwgMHgwOCwgMHgwMiwgMHg2NiwgMHgwMCwgMHgwMCwgMHg0NCwgMHhmYSwgMHg5OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0NCwgMHhmYSwKLTB4OTQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4YjIsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4NDIsCi0weGZhLCAweDdjLCAweDAwLCAweDAwLCAweDQyLCAweGY5LCAweDZkLCAweGZmLCAweGZmLCAweDQyLCAweGZhLCAweDdhLCAweDAwLCAweDAwLCAweDQxLCAweGY5LAotMHg2NiwgMHhmZiwgMHg0MSwgMHhmOSwgMHgxYywgMHgxOSwgMHg0MSwgMHhmOSwgMHgxNSwgMHgwMCwgMHg0MywgMHhmOSwgMHgxOSwgMHgwYSwgMHgzMiwgMHgwMiwKLTB4NDEsIDB4ZjksIDB4NjgsIDB4MjAsIDB4NDEsIDB4ZjksIDB4NjksIDB4MjAsIDB4NDEsIDB4ZjksIDB4NjUsIDB4MDAsIDB4NDEsIDB4ZjksIDB4NjcsIDB4MDAsCi0weDQ0LCAweGY4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDQyLCAweGY5LCAweDE2LCAweDAwLCAweDAwLCAweDQxLCAweGY5LCAweDE4LCAweDAwLAotMHgwMSwgMHgyMCwgMHgwMCwgMHg0MSwgMHhmOCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4YSwgMHhlZiwgMHhmNiwgMHgxMiwKLTB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsIDB4ZWUsIDB4MzAsIDB4ZTAsIDB4MjksIDB4NzgsIDB4N2MsIDB4MTIsIDB4MjIsIDB4YjcsIDB4ZTAsIDB4NTQsIDB4N2YsCi0weGYwLCAweDc4LCAweDZiLCAweDEyLCAweDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDFhLCAweGJiLCAweDMwLCAweGU3LCAweDA5LCAweDkwLAotMHgwMCwgMHgwMiwgMHhlNCwgMHgxMiwgMHgxYSwgMHhmYSwgMHg4MCwgMHhlOSwgMHg3OCwgMHg3YywgMHgxMiwgMHgyMiwgMHhiNywgMHhlMCwgMHg0NCwgMHg4MCwKLTB4ZjAsIDB4MTIsIDB4MjIsIDB4ZWUsIDB4MzAsIDB4ZTEsIDB4MWUsIDB4MTIsIDB4MjIsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MTIsIDB4MzIsCi0weDE5LCAweDc4LCAweDY4LCAweDEyLCAweDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDc0LCAweDgwLCAweDEyLCAweDFhLCAweGZhLCAweDEyLCAweDIyLAotMHg5NywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwgMHhjZSwKLTB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODUsIDB4ZWYsIDB4ZjYsIDB4MTIsIDB4MzEsIDB4NTAsIDB4MTIsIDB4MzEsIDB4YTksIDB4NzgsIDB4ODUsIDB4ZTYsCi0weGZmLCAweDI0LCAweDEzLCAweDEyLCAweDIyLCAweGFkLCAweGUwLCAweGZlLCAweDMwLCAweGU3LCAweDE2LCAweGVmLCAweGI0LCAweDAzLCAweDA5LCAweDkwLAotMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmYSwgMHhmMCwgMHg4MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmNSwgMHhmMCwgMHg4MCwKLTB4MTksIDB4ZWUsIDB4NTQsIDB4MDMsIDB4NjAsIDB4MTQsIDB4ZWYsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MjAsCi0weGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGY5LCAweDE4LCAweGUwLCAweDE0LCAweGYwLAotMHhlMCwgMHg3MCwgMHgwMiwgMHhkMiwgMHhiMywgMHgwMiwgMHgxMCwgMHhjZSwgMHgxMiwgMHgxZSwgMHgxYywgMHhlNSwgMHgzYSwgMHg2NCwgMHgwOSwgMHg3MCwKLTB4MDQsIDB4ZTUsIDB4MzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4NDgsIDB4YzMsIDB4ZTUsIDB4M2EsIDB4OTQsIDB4MDgsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsCi0weDQwLCAweDExLCAweDdmLCAweDA4LCAweGVmLCAweGU1LCAweDNhLCAweDk0LCAweDA4LCAweGY1LCAweDNhLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweGY1LAotMHgzOSwgMHg4MCwgMHgwNSwgMHhhZiwgMHgzYSwgMHgxMiwgMHgxZSwgMHgzNCwgMHhlNCwgMHhmZSwgMHhlZSwgMHhjMywgMHg5ZiwgMHg1MCwgMHgxOSwgMHgxMiwKLTB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4YTIsIDB4ZmQsIDB4NzQsIDB4ZjgsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmUsIDB4ZjUsIDB4ODMsCi0weGVkLCAweGYwLCAweDBlLCAweDEyLCAweDFjLCAweGIwLCAweDgwLCAweGUyLCAweGVmLCAweDU0LCAweDdmLCAweDkwLCAweGZmLCAweDgxLCAweGYwLCAweDIyLAotMHg4YiwgMHg1OSwgMHg4YSwgMHg1YSwgMHg4OSwgMHg1YiwgMHgxMiwgMHgyZSwgMHgxOSwgMHg3MCwgMHgwNSwgMHhhMywgMHg3NCwgMHgwOCwgMHhmMCwgMHgyMiwKLTB4YWIsIDB4NTksIDB4YWEsIDB4NWEsIDB4YTksIDB4NWIsIDB4MTIsIDB4MmUsIDB4MGQsIDB4OTAsIDB4ZmEsIDB4YzksIDB4MTIsIDB4MWIsIDB4ZjMsIDB4ZTUsCi0weDViLCAweDI0LCAweDAzLCAweGY5LCAweGU0LCAweDM1LCAweDVhLCAweGZhLCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDFiLCAweGYzLCAweGU0LCAweDkwLAotMHhmYSwgMHhjMiwgMHhmMCwgMHg3OCwgMHg4YiwgMHhmNiwgMHg5MCwgMHhmYSwgMHhjMSwgMHhlMCwgMHhmZiwgMHg3OCwgMHg4YiwgMHhlNiwgMHhjMywgMHg5ZiwKLTB4NTAsIDB4MTIsIDB4MTIsIDB4MmQsIDB4ZWIsIDB4ZmYsIDB4MTIsIDB4MmQsIDB4ZjQsIDB4MTIsIDB4MmUsIDB4MDcsIDB4NzgsIDB4OGIsIDB4MDYsIDB4MTIsCi0weDJlLCAweDAzLCAweDgwLCAweGUyLCAweDIyLCAweGFkLCAweDA3LCAweGFjLCAweDA2LCAweDkwLCAweDMyLCAweDBhLCAweGU0LCAweDkzLCAweGZmLCAweDc4LAotMHg3NCwgMHhmNiwgMHg1NCwgMHgwZiwgMHgxMiwgMHgxZCwgMHhhOCwgMHhlMCwgMHgwOCwgMHg3NiwgMHgwMCwgMHgwOCwgMHhmNiwgMHgxOCwgMHgxMiwgMHgxYywKLTB4ZDksIDB4YzMsIDB4MzMsIDB4Y2UsIDB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4NzgsIDB4NzUsIDB4ZWUsIDB4ZjYsIDB4MDgsIDB4ZWYsIDB4ZjYsCi0weGVlLCAweDQ0LCAweGY4LCAweDE4LCAweGY2LCAweGVmLCAweDA4LCAweGY2LCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDIwLCAweGU3LCAweDAzLCAweDdmLAotMHgwMCwgMHgyMiwgMHg3OCwgMHg3NSwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlYywgMHhmMCwgMHhhMywgMHhlZCwKLTB4ZjAsIDB4OTAsIDB4ZmYsIDB4N2EsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4MjIsIDB4YWIsIDB4NTYsIDB4YWEsIDB4NTcsIDB4YTksIDB4NTgsCi0weDkwLCAweDAwLCAweDAzLCAweDEyLCAweDFhLCAweGJiLCAweDU0LCAweGYwLCAweDI0LCAweGEwLCAweDIyLCAweDkwLCAweGZhLCAweGM5LCAweDEyLCAweDFiLAotMHhlYSwgMHgwMiwgMHgxYSwgMHhhMiwgMHg5MCwgMHhmYSwgMHhjMywgMHgxMiwgMHgxYiwgMHhlYSwgMHhlZiwgMHgxMiwgMHgxYSwgMHhlOCwgMHg5MCwgMHhmYSwKLTB4Y2EsIDB4ZTQsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YzQsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MDIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDgsCi0weDEyLCAweDFiLCAweDQ4LCAweGFhLCAweGYwLCAweGY5LCAweDdiLCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDA1LCAweDEyLCAweDFhLCAweGJiLCAweDkwLAotMHhmYSwgMHhjMSwgMHhmMCwgMHgyMiwgMHhhYiwgMHg1NiwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhkZCwgMHhlMCwgMHhmZiwKLTB4N2UsIDB4MDAsIDB4YzMsIDB4OTAsIDB4ZmEsIDB4ZDcsIDB4ZTAsIDB4OWYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZDYsIDB4ZTAsIDB4OWUsIDB4ZjAsIDB4OTAsCi0weGZhLCAweGQ4LCAweGVlLCAweDhmLCAweGYwLCAweDEyLCAweDFiLCAweDFjLCAweGVmLCAweDI1LCAweDUxLCAweGY1LCAweDUxLCAweGVlLCAweDM1LCAweDUwLAotMHhmNSwgMHg1MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHhmYSwKLTB4ZTYsIDB4ZTAsIDB4NjQsIDB4MDMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjIsIDB4ZTAsIDB4YWIsIDB4MjksIDB4YWEsIDB4MmEsIDB4YTksIDB4MmIsIDB4MDIsCi0weDFhLCAweGU4LCAweDkwLCAweGZmLCAweGYzLCAweDc0LCAweGEwLCAweGYwLCAweDIyLCAweDhmLCAweDY0LCAweGVkLCAweDcwLCAweDBmLCAweGU1LCAweDY0LAotMHhiNCwgMHgwMywgMHgwNSwgMHg3ZiwgMHgwMSwgMHgwMiwgMHgzMSwgMHhlZiwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMSwgMHhlZiwgMHhhZiwgMHg2NCwgMHgxMiwKLTB4MmEsIDB4YzcsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjQsIDB4ZjgsIDB4ZTYsIDB4MzAsIDB4ZTIsIDB4MGIsIDB4ZDIsIDB4MDksIDB4MTIsIDB4MWQsIDB4MzMsCi0weGUwLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDAyLCAweGMyLCAweDA5LCAweGU1LCAweDY0LCAweGI0LCAweDAzLCAweDA3LCAweDdmLCAweDgxLCAweDEyLAotMHgzMSwgMHhlZiwgMHg4MCwgMHgwNSwgMHg3ZiwgMHg4MiwgMHgxMiwgMHgzMSwgMHhlZiwgMHgzMCwgMHgwOSwgMHgwNywgMHgxMiwgMHgxZCwgMHgzMywgMHhlMCwKLTB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4MjIsIDB4MTIsIDB4MTAsIDB4NGIsIDB4OTAsIDB4ZmYsIDB4ZmQsIDB4ZTAsIDB4NDQsIDB4NjAsCi0weGYwLCAweGQyLCAweDAxLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweDMwLCAweGU3LAotMHgxMywgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHgzNSwgMHg4MCwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHg0NCwKLTB4MDEsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4MTIsIDB4MWQsIDB4ZGYsIDB4NTMsIDB4MzUsIDB4N2YsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NTQsIDB4ZmUsCi0weGYwLCAweDkwLCAweGZmLCAweDgxLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDEyLCAweDAyLCAweGRlLCAweDEyLCAweDFkLCAweGU3LCAweDAyLCAweDEwLAotMHhjZSwgMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4OSwgMHhlZiwgMHhmNiwgMHhkMiwgMHgwMCwgMHgxMiwgMHgyYSwgMHhjNywgMHg5MCwgMHhmOSwgMHg2YSwKLTB4MTIsIDB4MWIsIDB4ZWEsIDB4ZTksIDB4MjQsIDB4MDMsIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4YzAsIDB4MDIsIDB4NzgsIDB4ODAsIDB4ZTYsIDB4ZmUsCi0weDA4LCAweGU2LCAweGFhLCAweDA2LCAweGY4LCAweGFjLCAweDAyLCAweDdkLCAweDAxLCAweGQwLCAweDAyLCAweDEyLCAweDIyLCAweGQzLCAweDEyLCAweDMyLAotMHg4NCwgMHg3OCwgMHg4OSwgMHhlNiwgMHhmZiwgMHgxMiwgMHgxMywgMHg4NywgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwgMHhjZSwgMHg4ZiwgMHg2MywKLTB4MTIsIDB4MmEsIDB4YzcsIDB4NzgsIDB4N2MsIDB4MTIsIDB4MjIsIDB4YjcsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsCi0weDEyLCAweDIyLCAweGExLCAweGUwLCAweDU0LCAweDNmLCAweGYwLCAweDEyLCAweDIzLCAweDQxLCAweDI0LCAweDBiLCAweDEyLCAweDIyLCAweGExLCAweGUwLAotMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3NCwgMHg2ZSwgMHgyNSwgMHg2MywgMHhmOCwgMHg3NCwgMHhmYiwgMHg1NiwgMHhmNiwgMHg3ZiwKLTB4MDAsIDB4MjIsIDB4MTIsIDB4MTAsIDB4NGIsIDB4MTIsIDB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsIDB4ZmEsIDB4MjQsIDB4MDYsIDB4MTIsIDB4MjIsIDB4OWYsCi0weGUwLCAweGZkLCAweDEyLCAweDIyLCAweGU4LCAweDkwLCAweDAwLCAweDAzLCAweDEyLCAweDIzLCAweDAyLCAweDI0LCAweDA1LCAweDEyLCAweDIyLCAweGExLAotMHhlMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxYSwgMHhmYSwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3ZCwgMHgwMiwgMHhlNCwgMHhmZiwgMHgxMiwgMHgyZiwKLTB4YjQsIDB4MDIsIDB4MTAsIDB4Y2UsIDB4YWUsIDB4MDUsIDB4MTIsIDB4MWQsIDB4OGUsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4MGUsIDB4MGUsIDB4MGUsCi0weGVlLCAweGQzLCAweDk1LCAweDNjLCAweGU0LCAweDk1LCAweDNiLCAweDQwLCAweDAyLCAweGFlLCAweDNjLCAweGVlLCAweGQzLCAweDk0LCAweDA4LCAweDc0LAotMHg4MCwgMHg5NCwgMHg4MSwgMHg0MCwgMHgwYSwgMHg3ZSwgMHgwMywgMHg5MCwgMHgwMCwgMHgwMiwgMHg3NCwgMHgwMiwgMHgxMiwgMHgxYSwgMHhmYSwgMHhhZiwKLTB4MDYsIDB4MTIsIDB4MzIsIDB4NmUsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZWQsIDB4NTQsIDB4MDMsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4N2YsIDB4MTAsCi0weDIyLCAweGVkLCAweDU0LCAweDdjLCAweGMzLCAweDk0LCAweDA0LCAweDUwLCAweDAzLCAweDdmLCAweDBiLCAweDIyLCAweDc0LCAweDZlLCAweDJlLCAweGY4LAotMHg3NCwgMHgwMiwgMHg0NiwgMHhmNiwgMHg3NCwgMHg5OSwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgMHhmNSwgMHg4MywgMHhlZCwgMHhmMCwKLTB4N2YsIDB4MDAsIDB4MjIsIDB4YmYsIDB4MDMsIDB4MDYsIDB4N2MsIDB4ZmYsIDB4N2QsIDB4ZTAsIDB4ODAsIDB4MDQsIDB4N2MsIDB4ZmYsIDB4N2QsIDB4ZTIsCi0weDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLAotMHg0NCwgMHg4MCwgMHhmMCwgMHg3NCwgMHg2ZSwgMHgyZiwgMHhmOCwgMHg3NCwgMHgwNCwgMHg0NiwgMHhmNiwgMHg3ZiwgMHgwMCwgMHgyMiwgMHgxMiwgMHgxMCwKLTB4NGIsIDB4ZTUsIDB4M2EsIDB4NjQsIDB4MDksIDB4NzAsIDB4MDQsIDB4ZTUsIDB4MzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4MTYsIDB4OTAsIDB4ZmYsIDB4ODMsCi0weGUwLCAweDU0LCAweDBmLCAweGZmLCAweGMzLCAweGU1LCAweDNhLCAweDlmLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweDQwLCAweDA1LCAweDEyLCAweDI4LAotMHhkNywgMHg4MCwgMHgwMywgMHgxMiwgMHgzMiwgMHg3YSwgMHgwMiwgMHgxMCwgMHhjZSwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHgyMCwgMHhlNywgMHgxZiwKLTB4YzIsIDB4YWYsIDB4N2QsIDB4ZmYsIDB4YWMsIDB4MDUsIDB4MWQsIDB4ZWMsIDB4NjAsIDB4MTUsIDB4N2UsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ZWYsIDB4MWYsCi0weGFhLCAweDA2LCAweDcwLCAweDAxLCAweDFlLCAweDRhLCAweDYwLCAweGVjLCAweDkwLCAweGZmLCAweDkyLCAweGU0LCAweGYwLCAweDgwLCAweGVmLCAweDIyLAotMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg2NiwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHgzMCwgMHhlMCwgMHgxMiwgMHgzMCwgMHhlMSwgMHgwZiwKLTB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4N2YsIDB4MDQsIDB4MTIsIDB4MTIsIDB4NjEsIDB4MTIsIDB4MWQsIDB4ZjYsIDB4MDIsCi0weDEwLCAweGNlLCAweDhmLCAweDIzLCAweGMyLCAweDA4LCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLCAweGMwLCAweDc4LCAweDdlLCAweDEyLCAweDIzLAotMHg0MiwgMHgyNCwgMHgwYiwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHhhZiwgMHgyMywgMHgxMiwKLTB4MTMsIDB4ODcsIDB4MjIsIDB4OGUsIDB4NWYsIDB4OGYsIDB4NjAsIDB4ZTUsIDB4NjAsIDB4MTUsIDB4NjAsIDB4YWUsIDB4NWYsIDB4NzAsIDB4MDIsIDB4MTUsCi0weDVmLCAweGQzLCAweDk0LCAweDAwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA5LCAweDdlLCAweDA3LCAweDdmLCAweGQwLCAweDEyLCAweDEwLCAweDI0LAotMHg4MCwgMHhlNSwgMHgyMiwgMHgxMSwgMHhkYywgMHgyZSwgMHhjNywgMHgyNCwgMHhiMCwgMHgzMiwgMHg2MCwgMHgzMCwgMHg5MCwgMHgzMCwgMHgzZSwgMHgzMSwKLTB4NmYsIDB4MmYsIDB4ODIsIDB4MjcsIDB4MmUsIDB4MmMsIDB4ODAsIDB4MzEsIDB4MTIsIDB4MzEsIDB4MzEsIDB4MWUsIDB4NjQsIDB4MmYsIDB4MTEsIDB4MmMsCi0weDE4LCAweDBlLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDg2LCAweDEyLCAweDIzLCAweDMxLCAweDIwLCAweGUxLCAweDA3LCAweDdmLCAweDEyLCAweDEyLAotMHgzMSwgMHhhOSwgMHg4MCwgMHgwYSwgMHg3OCwgMHg4NiwgMHhlNiwgMHhmZiwgMHgxMiwgMHgyNCwgMHgwYSwgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwKLTB4Y2UsIDB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODcsIDB4MTIsIDB4MjMsIDB4MzEsIDB4MjAsIDB4ZTIsIDB4MDcsIDB4N2YsIDB4MTEsIDB4MTIsIDB4MzEsCi0weGE5LCAweDgwLCAweDBhLCAweDc4LCAweDg3LCAweGU2LCAweGZmLCAweDEyLCAweDJmLCAweDRlLCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLAotMHg4ZiwgMHg2MSwgMHgxMiwgMHgyZiwgMHg0ZSwgMHhhZiwgMHg2MSwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhjMCwgMHgxMiwgMHgzMiwgMHg4NCwKLTB4NzQsIDB4NmUsIDB4MjUsIDB4NjEsIDB4ZjgsIDB4NzQsIDB4ZmQsIDB4NTYsIDB4ZjYsIDB4YWYsIDB4NjEsIDB4MTIsIDB4MTMsIDB4ODcsIDB4MjIsIDB4MTIsCi0weDEwLCAweDRiLCAweGU1LCAweDNhLCAweDY0LCAweDA5LCAweDcwLCAweDA0LCAweGU1LCAweDM5LCAweDY0LCAweDAxLCAweDYwLCAweDA1LCAweDEyLCAweDJjLAotMHhkOCwgMHg4MCwgMHgwNiwgMHgxMiwgMHgxZSwgMHgxNCwgMHgxMiwgMHgxZSwgMHgxYywgMHgwMiwgMHgxMCwgMHhjZSwgMHgxMiwgMHgyYSwgMHg1NCwgMHgxMiwKLTB4MTMsIDB4MDMsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZTAsIDB4ZmYsIDB4NjAsIDB4MDUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YTAsIDB4MTIsIDB4MjksCi0weGRlLCAweDEyLCAweDEzLCAweDNmLCAweDEyLCAweDExLCAweGJjLCAweDgwLCAweGUzLCAweDEyLCAweDFkLCAweDhlLCAweGVmLCAweDEyLCAweDFhLCAweGZhLAotMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNCwgMHhlZiwgMHg2MCwgMHgwMywgMHgwMiwgMHgzMiwgMHg3YSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMiwgMHg2ZSwKLTB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4YTAsIDB4NjAsIDB4ZjcsIDB4ZWYsIDB4MzAsIDB4ZTUsIDB4MDgsIDB4OTAsIDB4ZmYsCi0weGYwLCAweDQ0LCAweDIwLCAweGYwLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweGZmLCAweDU0LCAweDI4LCAweDYwLAotMHhmNywgMHhlZiwgMHgzMCwgMHhlNSwgMHgwOCwgMHg5MCwgMHhmZiwgMHhmMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhlZiwKLTB4MzAsIDB4ZTcsIDB4MDgsIDB4MTIsIDB4MWQsIDB4NDUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4MjIsIDB4ZWYsIDB4MTIsIDB4MWQsIDB4OTgsIDB4ZTAsCi0weDU0LCAweGRmLCAweGYwLCAweDIyLCAweDgxLCAweDAxLCAweDgyLCAweDAyLCAweDgzLCAweDAzLCAweDg3LCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLAotMHgwMCwgMHg0MCwgMHgwMCwgMHg0MCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwOCwgMHgwMCwgMHg3OCwgMHg3ZSwgMHgxMiwgMHgyMiwgMHhiNywgMHhhMywgMHhhMywKLTB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MDYsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4ODUsIDB4M2IsIDB4MzksIDB4ODUsCi0weDNjLCAweDNhLCAweDkwLCAweGZmLCAweDgyLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGEzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDIyLCAweGU0LAotMHhmZSwgMHhlZSwgMHg5MCwgMHgzMiwgMHgwNCwgMHg5MywgMHhiNSwgMHgwNywgMHgwMiwgMHhkMywgMHgyMiwgMHgwZSwgMHhiZSwgMHgwNywgMHhmMiwgMHhjMywKLTB4MjIsIDB4MDAsIDB4MDgsIDB4MTgsIDB4MjgsIDB4MzgsIDB4MDEsIDB4ODEsIDB4OTAsIDB4MGEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MTEsIDB4MTMsIDB4MDAsCi0weDEyLCAweDEwLCAweDRiLCAweDdmLCAweDAyLCAweDEyLCAweDEwLCAweGRhLCAweDEyLCAweDFkLCAweGY2LCAweDAyLCAweDEwLCAweGNlLCAweDc1LCAweDM5LAotMHgwMCwgMHg4ZiwgMHgzYSwgMHgxMiwgMHgxYywgMHhlMCwgMHgxMiwgMHgyYywgMHhkOCwgMHgyMiwgMHgxMiwgMHgxZSwgMHgxYywgMHgxMiwgMHgxZCwgMHhkZiwKLTB4MTIsIDB4MWUsIDB4MTQsIDB4MjIsIDB4YzIsIDB4MDgsIDB4MjIsCi19OwotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb190aS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKaW5kZXggMDVlNGZhNy4uNjFkYWVhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KQEAgLTUyLDEzICs1Myw2IEBACiAjZGVmaW5lIERSSVZFUl9BVVRIT1IgIkdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+IGFuZCBEYXZpZCBJYWNvdmVsbGkiCiAjZGVmaW5lIERSSVZFUl9ERVNDICJFZGdlcG9ydCBVU0IgU2VyaWFsIERyaXZlciIKIAotCi0vKiBmaXJtd2FyZSBpbWFnZSBjb2RlICovCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlCi0jZGVmaW5lIElNQUdFX1NJWkUJCVBhZ2FibGVPcGVyYXRpb25hbENvZGVTaXplCi0jaW5jbHVkZSAiaW9fZndfZG93bjMuaCIJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQogI2RlZmluZSBFUFJPTV9QQUdFX1NJWkUJCTY0CiAKIApAQCAtMjMxLDcgKzIyNSw5IEBACiB9OwogCiAKLXN0YXRpYyBzdHJ1Y3QgRURHRV9GSVJNV0FSRV9WRVJTSU9OX0lORk8gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uOworc3RhdGljIHVuc2lnbmVkIGNoYXIgT3BlcmF0aW9uYWxNYWpvclZlcnNpb247CitzdGF0aWMgdW5zaWduZWQgY2hhciBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbjsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBPcGVyYXRpb25hbEJ1aWxkTnVtYmVyOwogCiBzdGF0aWMgaW50IGRlYnVnOwogCkBAIC04ODUsMTAgKzg4MSwxMyBAQAogCV9fdTggKmJ1ZmZlcjsKIAlpbnQgYnVmZmVyX3NpemU7CiAJaW50IGk7CisJaW50IGVycjsKIAlfX3U4IGNzID0gMDsKIAlzdHJ1Y3QgdGlfaTJjX2Rlc2MgKmkyY19oZWFkZXI7CiAJc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKmltZ19oZWFkZXI7CiAJc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKmZpcm13YXJlX3JlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgKmZ3X25hbWUgPSAiZWRnZXBvcnQvZG93bjMuYmluIjsKIAogCS8vIEluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgSTJDIGZpcm13YXJlIHdlIG11c3QgY2hhbmdlIHRoZSB0eXBlIDIgcmVjb3JkIHRvIHR5cGUgMHhGMi4KIAkvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIFVNUCB0byBjb21lIHVwIGluIEJvb3QgTW9kZS4gIFRoZW4gd2hpbGUgaW4gYm9vdCBtb2RlLCB0aGUgZHJpdmVyIApAQCAtOTA5LDE5ICs5MDgsMzQgQEAKIAkvLyBTZXQgZW50aXJlIGltYWdlIG9mIDB4ZmZzCiAJbWVtc2V0IChidWZmZXIsIDB4ZmYsIGJ1ZmZlcl9zaXplKTsKIAorCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCBkZXYpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBpbWFnZSBcIiVzXCIgZXJyICVkXG4iLAorCQkgICAgICAgZndfbmFtZSwgZXJyKTsKKwkJa2ZyZWUoYnVmZmVyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwkvKiBTYXZlIERvd25sb2FkIFZlcnNpb24gTnVtYmVyICovCisJT3BlcmF0aW9uYWxNYWpvclZlcnNpb24gPSBmdy0+ZGF0YVswXTsKKwlPcGVyYXRpb25hbE1pbm9yVmVyc2lvbiA9IGZ3LT5kYXRhWzFdOworCU9wZXJhdGlvbmFsQnVpbGROdW1iZXIgPSBmdy0+ZGF0YVsyXSB8IChmdy0+ZGF0YVszXSA8PCA4KTsKKwogCS8vIENvcHkgdmVyc2lvbiBudW1iZXIgaW50byBmaXJtd2FyZSByZWNvcmQKIAlmaXJtd2FyZV9yZWMgPSAoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKilidWZmZXI7CiAKLQlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb247Ci0JZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uOworCWZpcm13YXJlX3JlYy0+VmVyX01ham9yCT0gT3BlcmF0aW9uYWxNYWpvclZlcnNpb247CisJZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbjsKIAogCS8vIFBvaW50ZXIgdG8gZndfZG93biBtZW1vcnkgaW1hZ2UKLQlpbWdfaGVhZGVyID0gKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyICopJlBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVswXTsKKwlpbWdfaGVhZGVyID0gKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyICopJmZ3LT5kYXRhWzRdOwogCiAJbWVtY3B5IChidWZmZXIgKyBzaXplb2Yoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMpLAotCQkmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlW3NpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcildLAorCQkmZnctPmRhdGFbNCArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcildLAogCQlsZTE2X3RvX2NwdShpbWdfaGVhZGVyLT5MZW5ndGgpKTsKIAorCXJlbGVhc2VfZmlybXdhcmUoZncpOworCiAJZm9yIChpPTA7IGkgPCBidWZmZXJfc2l6ZTsgaSsrKSB7CiAJCWNzID0gKF9fdTgpKGNzICsgYnVmZmVyW2ldKTsKIAl9CkBAIC05MzUsOCArOTQ5LDggQEAKIAlpMmNfaGVhZGVyLT5UeXBlCT0gSTJDX0RFU0NfVFlQRV9GSVJNV0FSRV9CTEFOSzsKIAlpMmNfaGVhZGVyLT5TaXplCT0gKF9fdTE2KWJ1ZmZlcl9zaXplOwogCWkyY19oZWFkZXItPkNoZWNrU3VtCT0gY3M7Ci0JZmlybXdhcmVfcmVjLT5WZXJfTWFqb3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uOwotCWZpcm13YXJlX3JlYy0+VmVyX01pbm9yCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbjsKKwlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uOworCWZpcm13YXJlX3JlYy0+VmVyX01pbm9yCT0gT3BlcmF0aW9uYWxNaW5vclZlcnNpb247CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwNzUsMTEgKzEwODksNiBAQAogCQkvLyBPdGhlcndpc2Ugd2Ugd2lsbCByZW1haW4gaW4gY29uZmlndXJpbmcgbW9kZQogCQlzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPSBUSV9NT0RFX0NPTkZJR1VSSU5HOwogCi0JLy8gU2F2ZSBEb3dubG9hZCBWZXJzaW9uIE51bWJlcgotCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb24gPSBQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbjsKLQlPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uID0gUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb247Ci0JT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLkJ1aWxkTnVtYmVyCSA9IFBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uQnVpbGROdW1iZXI7Ci0KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJLyogRG93bmxvYWQgTW9kZSAqLwogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTExNTQsMTUgKzExNjMsMTUgQEAKIAkJCS8vIENoZWNrIHZlcnNpb24gbnVtYmVyIG9mIGRvd25sb2FkIHdpdGggY3VycmVudCB2ZXJzaW9uIGluIEkyYwogCQkJZG93bmxvYWRfY3VyX3ZlciA9IChmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IgPDwgOCkgKyAKIAkJCQkJICAgKGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NaW5vcik7Ci0JCQlkb3dubG9hZF9uZXdfdmVyID0gKE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb24gPDwgOCkgKwotCQkJCQkgICAoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisJCQlkb3dubG9hZF9uZXdfdmVyID0gKE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uIDw8IDgpICsKKwkJCQkJICAgKE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uKTsKIAogCQkJZGJnICgiJXMgLSA+Pj5GaXJtd2FyZSBWZXJzaW9ucyBEZXZpY2UgJWQuJWQgIERyaXZlciAlZC4lZCIsCiAJCQkgICAgIF9fZnVuY19fLAogCQkJICAgICBmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IsCiAJCQkgICAgIGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NaW5vciwKLQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiwKLQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisJCQkgICAgIE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uLAorCQkJICAgICBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbik7CiAKIAkJCS8vIENoZWNrIGlmIHdlIGhhdmUgYW4gb2xkIHZlcnNpb24gaW4gdGhlIEkyQyBhbmQgdXBkYXRlIGlmIG5lY2Vzc2FyeQogCQkJaWYgKGRvd25sb2FkX2N1cl92ZXIgIT0gZG93bmxvYWRfbmV3X3ZlcikgewpAQCAtMTE3MCw4ICsxMTc5LDggQEAKIAkJCQkgICAgIF9fZnVuY19fLAogCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01ham9yLAogCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yLAotCQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiwKLQkJCQkgICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb24pOworCQkJCSAgICAgT3BlcmF0aW9uYWxNYWpvclZlcnNpb24sCisJCQkJICAgICBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbik7CiAKIAkJCQkvLyBJbiBvcmRlciB0byB1cGRhdGUgdGhlIEkyQyBmaXJtd2FyZSB3ZSBtdXN0IGNoYW5nZSB0aGUgdHlwZSAyIHJlY29yZCB0byB0eXBlIDB4RjIuCiAJCQkJLy8gVGhpcyB3aWxsIGZvcmNlIHRoZSBVTVAgdG8gY29tZSB1cCBpbiBCb290IE1vZGUuICBUaGVuIHdoaWxlIGluIGJvb3QgbW9kZSwgdGhlIGRyaXZlciAKQEAgLTEzNzcsNiArMTM4Niw5IEBACiAJCV9fdTggY3MgPSAwOwogCQlfX3U4ICpidWZmZXI7CiAJCWludCBidWZmZXJfc2l6ZTsKKwkJaW50IGVycjsKKwkJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwkJY29uc3QgY2hhciAqZndfbmFtZSA9ICJlZGdlcG9ydC9kb3duMy5iaW4iOwogCiAJCS8qIFZhbGlkYXRlIEhhcmR3YXJlIHZlcnNpb24gbnVtYmVyCiAJCSAqIFJlYWQgTWFudWZhY3R1cmluZyBEZXNjcmlwdG9yIGZyb20gVEkgQmFzZWQgRWRnZXBvcnQKQEAgLTE0MjUsNyArMTQzNywxNSBAQAogCQkvLyBJbml0aWFsaXplIHRoZSBidWZmZXIgdG8gMHhmZiAocGFkIHRoZSBidWZmZXIpCiAJCW1lbXNldCAoYnVmZmVyLCAweGZmLCBidWZmZXJfc2l6ZSk7CiAKLQkJbWVtY3B5IChidWZmZXIsICZQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VbMF0sIFBhZ2FibGVPcGVyYXRpb25hbENvZGVTaXplKTsKKwkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsIGRldik7CisJCWlmIChlcnIpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJCSAgICAgICBmd19uYW1lLCBlcnIpOworCQkJa2ZyZWUoYnVmZmVyKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwkJbWVtY3B5KGJ1ZmZlciwgJmZ3LT5kYXRhWzRdLCBmdy0+c2l6ZSAtIDQpOworCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAogCQlmb3IoaSA9IHNpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcik7IGkgPCBidWZmZXJfc2l6ZTsgaSsrKSB7CiAJCQljcyA9IChfX3U4KShjcyArIGJ1ZmZlcltpXSk7CkBAIC0zMTE5LDYgKzMxMzksNyBAQAogTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKIE1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoImVkZ2Vwb3J0L2Rvd24zLmJpbiIpOwogCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmMKaW5kZXggZWE5MjRkYy4uZDlmYjM3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaXBhcS5jCkBAIC01NzAsNyArNTcwLDEyIEBACiAJLmRlc2NyaXB0aW9uID0JCSJQb2NrZXRQQyBQREEiLAogCS51c2JfZHJpdmVyID0gCQkmaXBhcV9kcml2ZXIsCiAJLmlkX3RhYmxlID0JCWlwYXFfaWRfdGFibGUsCi0JLm51bV9wb3J0cyA9CQkyLAorCS8qCisJICogc29tZSBkZXZpY2VzIGhhdmUgYW4gZXh0cmEgZW5kcG9pbnQsIHdoaWNoCisJICogbXVzdCBiZSBpZ25vcmVkIGFzIGl0IHdvdWxkIG1ha2UgdGhlIGNvcmUKKwkgKiBjcmVhdGUgYSBzZWNvbmQgcG9ydCB3aGljaCBvb3BzZXMgd2hlbiB1c2VkCisJICovCisJLm51bV9wb3J0cyA9CQkxLAogCS5vcGVuID0JCQlpcGFxX29wZW4sCiAJLmNsb3NlID0JCWlwYXFfY2xvc2UsCiAJLmF0dGFjaCA9CQlpcGFxX3N0YXJ0dXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uYwppbmRleCAzZGY4YTY2Li4xMWU0MzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmMKQEAgLTEwNSw2ICsxMDUsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KQEAgLTEzMzksMTMgKzEzNDEsMTMgQEAKIAlwb3J0LT50dHkgPSBOVUxMOwogfQogCi0KIAkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgdG8gYSBwcmUtcmVudW1lcmF0aW9uIGRldmljZSAqLwogc3RhdGljIGludCBrZXlzcGFuX2Zha2Vfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKIHsKIAlpbnQgCQkJCXJlc3BvbnNlOwotCWNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIAkqcmVjb3JkOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAJKnJlY29yZDsKIAljaGFyCQkJCSpmd19uYW1lOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZQkJKmZ3OwogCiAJZGJnKCJLZXlzcGFuIHN0YXJ0dXAgdmVyc2lvbiAlMDR4IHByb2R1Y3QgJTA0eCIsCiAJICAgIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSksCkBAIC0xMzU5LDcyICsxMzYxLDYwIEBACiAJCS8qIFNlbGVjdCBmaXJtd2FyZSBpbWFnZSBvbiB0aGUgYmFzaXMgb2YgaWRQcm9kdWN0ICovCiAJc3dpdGNoIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKSB7CiAJY2FzZSBrZXlzcGFuX3VzYTI4X3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOF9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0EyOCI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOC5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTI4eF9wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMjh4X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTI4WCI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOHguZnciOwogCQlicmVhazsKIAogCWNhc2Uga2V5c3Bhbl91c2EyOHhhX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTI4WEEiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMjh4YS5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTI4eGJfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTI4eGJfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMjhYQiI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOHhiLmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhMTlfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE5IjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTE5LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOXFpX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2ExOXFpX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE5UUkiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTlxaS5mdyI7CiAJCWJyZWFrOwogCQkJICAgICAKIAljYXNlIGtleXNwYW5fbXByX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl9tcHJfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiTVBSIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL21wci5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTE5cXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5cXdfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMTlRSSI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2ExOXF3LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOHhfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0ExOFgiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTh4LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5d19maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0ExOVciOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTl3LmZ3IjsKIAkJYnJlYWs7CiAJCQogCWNhc2Uga2V5c3Bhbl91c2E0OXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTQ5d19maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0E0OVciOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhNDl3LmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhNDl3bGNfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTQ5V0xDIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTQ5d2xjLmZ3IjsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlyZWNvcmQgPSBOVUxMOwotCQlmd19uYW1lID0gIlVua25vd24iOwotCQlicmVhazsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIlVua25vd24gcHJvZHVjdCBJRCAoJTA0eClcbiIsCisJCQlsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsKKwkJcmV0dXJuIDE7CiAJfQogCi0JaWYgKHJlY29yZCA9PSBOVUxMKSB7CisJaWYgKHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZzZXJpYWwtPmRldi0+ZGV2KSkgewogCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiUmVxdWlyZWQga2V5c3BhbiBmaXJtd2FyZSBpbWFnZSAoJXMpIHVuYXZhaWxhYmxlLlxuIiwgZndfbmFtZSk7CiAJCXJldHVybigxKTsKIAl9CkBAIC0xNDM0LDE5ICsxNDI0LDIyIEBACiAJCS8qIGRvd25sb2FkIHRoZSBmaXJtd2FyZSBpbWFnZSAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMSk7CiAKLQl3aGlsZShyZWNvcmQtPmFkZHJlc3MgIT0gMHhmZmZmKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsCisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworCisJd2hpbGUgKHJlY29yZCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKIAkJCQkJICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKLQkJCQkJICAgICByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJCQkJCSAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEwKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgImV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3IgS2V5c3BhbiIKIAkJCQkiZmlybXdhcmUgKCVkICUwNFggJXAgJWQpXG4iLAotCQkJCXJlc3BvbnNlLCAKLQkJCQlyZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJCXJlc3BvbnNlLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJCXJlY29yZC0+ZGF0YSwgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9Ci0JCXJlY29yZCsrOworCQlyZWNvcmQgPSBpaGV4X25leHRfYmlucmVjKHJlY29yZCk7CiAJfQorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCQkvKiBicmluZyBkZXZpY2Ugb3V0IG9mIHJlc2V0LiBSZW51bWVyYXRpb24gd2lsbCBvY2N1ciBpbiBhCiAJCSAgIG1vbWVudCBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CkBAIC0yNzU2LDYgKzI3NDksMTkgQEAKIE1PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTI4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjh4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjh4YS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTI4eGIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTE5cWkuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi9tcHIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOXF3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMTh4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMTl3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhNDl3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhNDl3bGMuZnciKTsKKwogbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CiBNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmgKaW5kZXggOGQ2ZWQwMi4uYjUyZmI2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uaAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oCkBAIC0xMDMsOTAgKzEwMyw2IEBACiAJCQkJCSBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAogCQkJCQkgaW50IHJlc2V0X3BvcnQpOwogCi0vKiBTdHJ1Y3QgdXNlZCBmb3IgZmlybXdhcmUgLSBpbmNyZWFzZWQgc2l6ZSBvZiBkYXRhIHNlY3Rpb24KLSAgIHRvIGFsbG93IEtleXNwYW4ncyAnQycgZmlybXdhcmUgc3RydWN0IHRvIGJlIHVzZWQgdW5tb2RpZmllZCAqLwotc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgewotCV9fdTE2IGFkZHJlc3M7Ci0JX191OCBkYXRhX3NpemU7Ci0JX191OCBkYXRhWzY0XTsKLX07Ci0KLS8qIENvbmRpdGlvbmFsbHkgaW5jbHVkZSBmaXJtd2FyZSBpbWFnZXMsIGlmIHRoZXkgYXJlbid0Ci0gICBpbmNsdWRlZCBjcmVhdGUgYSBudWxsIHBvaW50ZXIgaW5zdGVhZC4gIEN1cnJlbnQgCi0gICBmaXJtd2FyZSBpbWFnZXMgYXJlbid0IG9wdGltaXNlZCB0byByZW1vdmUgZHVwbGljYXRlCi0gICBhZGRyZXNzZXMgaW4gdGhlIGltYWdlIGl0c2VsZi4gKi8KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4Ci0JI2luY2x1ZGUgImtleXNwYW5fdXNhMjhfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFgKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOHhfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eF9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eGFfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eGFfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEIKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOHhiX2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2EyOHhiX2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5X2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2ExOV9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5cWlfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5cWlfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX01QUgotICAgICAgICAjaW5jbHVkZSAia2V5c3Bhbl9tcHJfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX21wcl9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRVwotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5cXdfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5cXdfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE4WAotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE4eF9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTh4X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVcKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2ExOXdfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5d19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhNDl3X2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2E0OXdfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5V0xDCi0gICAgICAgICNpbmNsdWRlICJrZXlzcGFuX3VzYTQ5d2xjX2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2E0OXdsY19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQogLyogVmFsdWVzIHVzZWQgZm9yIGJhdWQgcmF0ZSBjYWxjdWxhdGlvbiAtIGRldmljZSBzcGVjaWZpYyAqLwogI2RlZmluZQlLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFCQkoLTEpCiAjZGVmaW5lCUtFWVNQQU5fQkFVRF9SQVRFX09LCQkJKDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9tcHJfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzg4MDVlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjg2ICswLDAgQEAKLS8qIGtleXNwYW5fbXByX2Z3LmgKLSAKLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX21wcl9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLXN0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTUzW10gPQotCSIwNC8yNi8yMDAyICAwMjo0N3AgICAgICAgICAgICAgIDExLDU3MCBVU0E1MyI7Ci0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl9tcHJfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDFhfX0sCi0gezB4MDAxYSwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwMDMsIDE2LCB7IDB4OGUsIDB4NTYsIDB4OGYsIDB4NTcsIDB4ZTUsIDB4NTcsIDB4MTUsIDB4NTcsIDB4YWUsIDB4NTYsIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTYsIDB4NGUsIDB4NjB9fSwKLSB7MHgwMDEzLCAgNywgeyAweDA1LCAweDEyLCAweDBmLCAweGEyLCAweDgwLCAweGVlLCAweDIyfX0sCi0gezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAotIHsweDAwNDYsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDh9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDMwLCAweDk5LCAweDBlLCAweDMwLCAweDBiLCAweDA3LCAweGEyLCAweDBlLCAweDkyLCAweDliLCAweDg1LCAweDM2LCAweDk5LCAweGMyLCAweDk5LCAweGQyfX0sCi0gezB4MDA2NiwgMTYsIHsgMHgxMiwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwMiwgMHhmOSwgMHhjMiwgMHgxMiwgMHgzMCwgMHgwMywgMHgxOSwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MH19LAotIHsweDAwNzYsIDE2LCB7IDB4NzUsIDB4MWEsIDB4N2UsIDB4NzUsIDB4MWIsIDB4NDAsIDB4NzUsIDB4MTcsIDB4MDAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTgsIDB4N2R9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDc1LCAweDE5LCAweGMwLCAweDgwLCAweDE3LCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDc1LCAweDFhLCAweDdkLCAweDc1LCAweDFiLCAweGMwLCAweDc1fX0sCi0gezB4MDA5NiwgMTYsIHsgMHgxNywgMHgwMSwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxOCwgMHg3ZSwgMHg3NSwgMHgxOSwgMHg0MCwgMHgyMCwgMHgwYiwgMHgwMywgMHgwMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MDEsIDB4ODQsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4M2MsIDB4MjAsIDB4MGMsIDB4MzQsIDB4MjAsIDB4MDksIDB4MzEsIDB4OTB9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDI5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFifX0sCi0gezB4MDBjNiwgMTYsIHsgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYX19LAotIHsweDAwZDYsIDE2LCB7IDB4ZTUsIDB4MWIsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDIsIDB4Zjd9fSwKLSB7MHgwMGU2LCAxNiwgeyAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDAzLCAweDExLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGEzLCAweGUwLCAweDU0fX0sCi0gezB4MDBmNiwgMTYsIHsgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHg4MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGYsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDAwLCAweDI2fX0sCi0gezB4MDAyNiwgMTIsIHsgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg1YSwgMHgwMiwgMHgwYSwgMHgzM319LAotIHsweDAxMDYsIDY0LCB7IDB4YzYsIDB4ZTAsIDB4NTQsIDB4MDIsIDB4ZjUsIDB4MWQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4ZTUsIDB4MTcsIDB4MjQsIDB4ZmYsIDB4OTIsIDB4MDMsIDB4MzAsCi0gIDB4MGQsIDB4MGQsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4ZTUsCi0gIDB4MWQsIDB4NjAsIDB4MDUsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4ODUsIDB4MWMsIDB4NTMsIDB4ODUsIDB4MTksIDB4ODIsIDB4ODUsIDB4MTgsCi0gIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTIsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4M2EsIDB4MjAsIDB4MDksIDB4MzcsIDB4OTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDJmLCAweDMwLCAweDEwLCAweDFjLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDM2LCAweDc1LAotICAweDNhLCAweDAzLCAweDAyLCAweDAyLCAweGY3LCAweDc1LCAweDNhLCAweDAyLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLCAweGUwLAotICAweGY1LCAweDM2LCAweDAyLCAweDAyLCAweGY3LCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDAzfX0sCi0gezB4MDE4NiwgNjQsIHsgMHgwZSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHg1NCwgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwKLSAgMHhjOCwgMHhlMCwgMHg1NCwgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwKLSAgMHgwMywgMHgwMiwgMHgwMiwgMHg2OCwgMHhlNSwgMHgxZCwgMHg2MCwgMHgwNywgMHhjMiwgMHgxNCwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwMiwgMHhmNywgMHg4NSwKLSAgMHgxYywgMHg1MywgMHg4NSwgMHgxYiwgMHg4MiwgMHg4NSwgMHgxYSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxMiwgMHhmZn19LAotIHsweDAxYzYsIDY0LCB7IDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsCi0gIDB4MzgsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4MzAsIDB4MTAsIDB4MWIsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsCi0gIDB4M2EsIDB4MDMsIDB4ODAsIDB4MGQsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzV9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDNhLCAweDAyLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLCAweDI2LCAweDMwLCAweDAzLCAweDA3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLAotICAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGU1LCAweDE3LCAweDI0LCAweGZmLCAweDkyLCAweDAzLCAweDIwLCAweDBkLCAweDAzLAotICAweDAyLCAweDAyLCAweGY3LCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDEwLAotICAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzfX0sCi0gezB4MDI0NiwgNjQsIHsgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgxNCwgMHgwMiwgMHgwMiwKLSAgMHhmNywgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwMiwgMHhmNSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMiwgMHhmNSwgMHg5MCwgMHg3ZiwgMHg5YiwKLSAgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHg3OSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZn19LAotIHsweDAyODYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsCi0gIDB4NDAsIDB4MjIsIDB4MzAsIDB4MDMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsCi0gIDB4ZjAsIDB4ZTUsIDB4MTcsIDB4MjQsIDB4ZmYsIDB4OTIsIDB4MDMsIDB4MzAsIDB4MGQsIDB4MzYsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmJ9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLCAweDgwLCAweDAyLCAweGMyLCAweDE0LAotICAweGQyLCAweDAxLCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA0LCAweDM1LCAweGMyLCAweDk4LCAweDIwLCAweDAyLCAweDAzLCAweDAyLCAweDAzfX0sCi0gezB4MDMwNiwgNjQsIHsgMHhhMiwgMHgyMCwgMHgxNSwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHg1NSwgMHhlNSwgMHg1NSwgMHhiNSwKLSAgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwgMHgyZSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNX19LAotIHsweDAzNDYsIDY0LCB7IDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NTUsIDB4ZjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCi0gIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MzMsCi0gIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDA0LCAweDMzLCAweDE1LCAweDM5LCAweDE1LCAweDM5LCAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDAyLCAweDA0LCAweDMzLCAweDkwLCAweDdmLCAweGI3LAotICAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGMyLCAweDAyLCAweDAyLCAweDA0LCAweDMzLCAweDIwLCAweDE1LCAweDI3LCAweGFmLCAweDM5LAotICAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLAotICAweDEwLCAweDRkLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHg1NSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwKLSAgMHgyZSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg1NSwgMHhmMCwgMHgzMCwgMHgxMCwgMHgxMSwgMHhhZiwgMHgzOSwKLSAgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMH19LAotIHsweDA0MDYsIDY0LCB7IDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NDAsIDB4MjQsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTIsIDB4ZTUsCi0gIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NDAsIDB4MTYsIDB4MTUsIDB4MzksIDB4MTUsIDB4MzksIDB4MDUsIDB4MmIsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ODAsCi0gIDB4MGIsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MDAsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDEsIDB4MzAsIDB4MDEsCi0gIDB4MDUsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDAsIDB4NTYsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDB9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDU0LCAweGU1LCAweDM0LCAweDYwLCAweDUwLCAweGU1LCAweDMxLCAweDcwLCAweDRjLAotICAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDBiLCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDM0LCAweDAxLCAweDc1LCAweDMxLCAweDAyLCAweDgwLCAweDBlLAotICAweGEyLCAweDA4LCAweGU0LCAweDMzLCAweGY1LCAweDJmLCAweGMyLCAweDA4LCAweGU0LCAweGY1LCAweDM0LCAweDc1LCAweDMxLCAweDEwLCAweGU0LCAweGY1LAotICAweDU2LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDU2LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHgwYywgMHg3OSwgMHhmZiwgMHg3NCwgMHgwMCwgMHgyNSwgMHg1NiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwKLSAgMHg1NiwgMHhlNSwgMHg1NiwgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwKLSAgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwgMHhkMSwgMHhlNCwgMHhmNSwgMHg1NiwgMHg3NCwgMHg0MCwgMHgyNSwgMHg1NiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg1NiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHgzYiwgMHhmOX19LAotIHsweDA0YzYsIDY0LCB7IDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGMsIDB4OTIsIDB4MDUsIDB4NTYsIDB4ZTUsIDB4NTYsIDB4YjQsIDB4MTgsIDB4ZGIsIDB4ZTUsIDB4M2IsCi0gIDB4NjAsIDB4MTEsIDB4NzUsIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzYsIDB4ODUsIDB4M2MsIDB4Y2EsIDB4ODUsIDB4M2QsIDB4Y2IsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OWYsIDB4ZjAsIDB4ZTUsIDB4M2UsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTIsIDB4OWYsIDB4ODUsIDB4M2YsIDB4MzgsIDB4ZTUsIDB4NDAsIDB4MTMsCi0gIDB4OTIsIDB4MTUsIDB4ZTUsIDB4NDEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDd9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDQyLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweDdmLAotICAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ4LCAweDYwLCAweDBiLCAweGMyLCAweDBjLAotICAweGMyLCAweDA5LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ5LCAweDYwLCAweDBjLCAweGQyLCAweDA5LCAweDQzLAotICAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDRhLCAweDYwLCAweDBkLCAweGMyLCAweGFmfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhjMiwgMHgwYiwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHhkMiwgMHhhZiwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNSwgMHgzMCwgMHgxNSwKLSAgMHgwMiwgMHhkMiwgMHgwOSwgMHhlNSwgMHg0YywgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5ZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg0ZCwgMHg2MCwgMHgwYSwKLSAgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwgMHg3NSwgMHgyYywgMHgwMSwgMHg3NSwgMHgzMSwgMHgxZSwgMHhlNSwgMHg0ZSwgMHg2MCwgMHgwNywgMHhjMn19LAotIHsweDA1ODYsIDY0LCB7IDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZTUsIDB4NTAsIDB4NjAsIDB4MDIsCi0gIDB4ZDIsIDB4MDcsIDB4ZTUsIDB4NTEsIDB4NjAsIDB4MGEsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTUsIDB4NTEsIDB4NDIsIDB4MzQsCi0gIDB4ZTUsIDB4NTIsIDB4NjAsIDB4MWYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsCi0gIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweGQyLCAweDAzLCAweGQyLCAweDAyLCAweGQyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDBjLCAweGU0LCAweDMzLCAweGZmLCAweDY1LAotICAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLCAweDM0LCAweDAxLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDJhLCAweDYwLAotICAweDA1LCAweDhmLCAweDJhLCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweGZmLCAweDU0LCAweDA4LCAweDY0LCAweDA4LCAweGY1LAotICAweDU3LCAweDY1LCAweDI1LCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDI1LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDEwLCAweDY0fX0sCi0gezB4MDYwNiwgNjQsIHsgMHgxMCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyNiwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHg0MCwgMHg2NCwKLSAgMHg0MCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyNywgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyNywgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgyMCwKLSAgMHg2NCwgMHgyMCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyOCwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyOCwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwKLSAgMHg5YSwgMHhlMCwgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyZSwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyZX19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MzQsIDB4MDEsIDB4MzAsIDB4MDcsIDB4MzUsIDB4YzIsIDB4YWYsIDB4MzAsIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsCi0gIDB4MjcsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDcsCi0gIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjksCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZDIsIDB4MDIsIDB4YzIsIDB4MDcsIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDUsIDB4M2QsIDB4MzAsIDB4MDN9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDFlLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDMzLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLAotICAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweGQyLCAweDA1LCAweDc1LCAweDEyLCAweGZmLCAweDgwLCAweDFjLCAweDkwLCAweDdmLAotICAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDE1LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLCAweDAxLCAweDkwLAotICAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzLCAweGQyLCAweDA1LCAweDc1LCAweDEyLCAweGZmLCAweDIwLCAweDE0LCAweDMzLCAweDIwLCAweDAwfX0sCi0gezB4MDZjNiwgNjQsIHsgMHgwNiwgMHhlNSwgMHgzYSwgMHg2NSwgMHg1MywgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNSwgMHgxYSwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywKLSAgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwKLSAgMHg1MywgMHhmNSwgMHgzYSwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwKLSAgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwNywgMHhiZiwgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwNywgMHhiZiwgMHgzMCwgMHgwYywgMHgwM319LAotIHsweDA3MDYsIDY0LCB7IDB4MDIsIDB4MDcsIDB4YmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDcsIDB4YmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NjAsIDB4MDMsCi0gIDB4MDIsIDB4MDcsIDB4YmYsIDB4MzAsIDB4MDMsIDB4MGMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4NzUsIDB4NTgsIDB4N2UsIDB4NzUsIDB4NTksIDB4NDAsCi0gIDB4ODAsIDB4MGEsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4NzUsIDB4NTgsIDB4N2QsIDB4NzUsIDB4NTksIDB4YzAsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsCi0gIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4NTksIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTN9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDkyLCAweDFhLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLAotICAweGY1LCAweDU3LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDJhLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAotICAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLAotICAweDA1LCAweDNhLCAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2fX0sCi0gezB4MDc4NiwgNjQsIHsgMHhkMiwgMHgwYiwgMHg4MCwgMHgxNSwgMHhjMiwgMHgwYiwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwKLSAgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgxMCwgMHgwNCwgMHhhMiwgMHgxYSwgMHg5MiwgMHg5YiwgMHhkMiwKLSAgMHgxNCwgMHhjMiwgMHhhZiwgMHg4NSwgMHg1NywgMHg5OSwgMHgyMCwgMHgwYiwgMHgwZCwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwMCwKLSAgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwY319LAotIHsweDA3YzYsIDY0LCB7IDB4YTQsIDB4MDksIDB4MWMsIDB4MDAsIDB4MDksIDB4ODksIDB4MDEsIDB4MDksIDB4ZTYsIDB4MDMsIDB4MDcsIDB4ZTMsIDB4MDYsIDB4MDksIDB4MGQsIDB4MDgsIDB4MDksCi0gIDB4MDEsIDB4MDksIDB4MDgsIDB4ZTksIDB4MGEsIDB4MDgsIDB4ZjgsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGEsIDB4MjQsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsCi0gIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWMsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDgsIDB4NzksIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGEsCi0gIDB4MjQsIDB4NzQsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4ODcsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGF9fSwKLSB7MHgwODA2LCA2NCwgeyAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweGQ4LAotICAweDc1LCAweDgzLCAweDBkLCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweGQxLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGNhLCAweDc1LAotICAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGMzLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LAotICAweDgyLCAweDllLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGVmLCAweGUwLCAweGZlLCAweDkwLCAweDdmLCAweGVlLCAweGUwfX0sCi0gezB4MDg0NiwgNjQsIHsgMHg3YywgMHgwMCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg1YSwgMHhlYywgMHgzZSwgMHhmNSwgMHg1OSwgMHg3NSwgMHgxNSwgMHgwZCwgMHg3NSwgMHgxNiwgMHg5OSwgMHg3NSwKLSAgMHg4MiwgMHg5YiwgMHg3NSwgMHg4MywgMHgwZCwgMHhlMCwgMHg3NSwgMHgxMywgMHgwMCwgMHhmNSwgMHgxNCwgMHhkMywgMHhlNSwgMHgxNCwgMHg5NSwgMHg1YSwKLSAgMHhlNSwgMHgxMywgMHg5NSwgMHg1OSwgMHg0MCwgMHgwNiwgMHg4NSwgMHg1OSwgMHgxMywgMHg4NSwgMHg1YSwgMHgxNCwgMHgxMiwgMHgwYiwgMHhiYSwgMHgwMiwKLSAgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwYiwgMHg3NSwgMHg1NiwgMHhmZiwgMHg3NSwgMHg1NywgMHgwZCwgMHg3NX19LAotIHsweDA4ODYsIDY0LCB7IDB4NTgsIDB4ZGMsIDB4ODAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MGIsIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsIDB4NTcsIDB4MGQsCi0gIDB4NzUsIDB4NTgsIDB4ZTAsIDB4ODAsIDB4MWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDIsIDB4MGIsIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsCi0gIDB4NTcsIDB4MGQsIDB4NzUsIDB4NTgsIDB4ZjAsIDB4ODAsIDB4MDksIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsIDB4NTcsIDB4MGUsIDB4NzUsIDB4NTgsIDB4MWUsCi0gIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4NzUsIDB4NTksIDB4MDAsIDB4ZjUsIDB4NWEsIDB4YWUsIDB4NTcsIDB4YWYsIDB4NTgsIDB4OGUsIDB4MTV9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDhmLCAweDE2LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDhlLCAweDEzLCAweGY1LCAweDE0LCAweGQzLCAweDk1LCAweDVhLAotICAweGU1LCAweDEzLCAweDk1LCAweDU5LCAweDQwLCAweDA2LCAweDg1LCAweDU5LCAweDEzLCAweDg1LCAweDVhLCAweDE0LCAweDEyLCAweDBiLCAweGJhLCAweDAyLAotICAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDExLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDExLCAweDAyLCAweDBhLCAweDJiLCAweDEyLCAweDBjLCAweDI0LCAweDkwLCAweDdmfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhlYSwgMHhlMCwgMHhmNSwgMHgxMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNywgMHgxNCwgMHg2MCwgMHgzNCwKLSAgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYSwgMHgyNCwgMHhhMiwgMHgxNiwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwKLSAgMHgxOCwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NH19LAotIHsweDA5NDYsIDY0LCB7IDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsCi0gIDB4ZjAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsCi0gIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjB9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDAyLCAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE3LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBhLCAweDI0LCAweGMyLCAweDE2LCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDc2LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0fX0sCi0gezB4MDljNiwgNjQsIHsgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwKLSAgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg0NSwgMHg5MCwKLSAgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxMCwgMHgyNCwgMHgwMiwgMHg3MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwKLSAgMHgwMSwgMHg3MCwgMHgyYSwgMHhkMiwgMHgxNiwgMHg4MCwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhMDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCi0gIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsCi0gIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4YzIsIDB4MTAsIDB4ZTQsIDB4ZjUsCi0gIDB4MTAsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGMsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTV9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGMyLCAweDExLCAweGMyLCAweDA3LCAweGMyLCAweDEyLCAweGMyLCAweDBmLCAweGMyLCAweDA4LCAweGY1LCAweDM1LCAweGY1LCAweDM5LCAweGY1LCAweDUzLCAweGY1LAotICAweDNhLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDJmLCAweGY1LCAweDJlLCAweGY1LCAweDJkLCAweGY1LCAweDJjLCAweGY1LCAweDJiLCAweGY1LAotICAweDJhLCAweGY1LCAweDI5LCAweGY1LCAweDI4LCAweGY1LCAweDI3LCAweGY1LCAweDI2LCAweGY1LCAweDI1LCAweGY1LCAweDI0LCAweGMyLCAweDA1LCAweGMyLAotICAweDE3LCAweGMyLCAweDE5LCAweGMyLCAweDE2LCAweGMyLCAweDE4LCAweGMyLCAweDA0LCAweGQyLCAweDEzLCAweGMyLCAweDA2LCAweGMyLCAweDAxfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwKLSAgMHhlMCwgMHg0NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHg3NCwgMHgwZSwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMn19LAotIHsweDBhYzYsIDY0LCB7IDB4MWEsIDB4MTIsIDB4MGYsIDB4N2QsIDB4YzIsIDB4MTcsIDB4MzAsIDB4MDQsIDB4MDMsIDB4MTIsIDB4MDQsIDB4NDgsIDB4MzAsIDB4MDQsIDB4MmEsIDB4MzAsIDB4MDYsCi0gIDB4MjcsIDB4YzIsIDB4MDYsIDB4ZTUsIDB4MTIsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsCi0gIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MTIsIDB4MGIsIDB4MTQsIDB4ODAsIDB4Y2QsIDB4MzAsIDB4MTcsIDB4MDcsIDB4YzIsIDB4MTcsIDB4MTIsIDB4MDd9fSwKLSB7MHgwYjA2LCA2NCwgeyAweGMwLCAweDgwLCAweGMzLCAweDMwLCAweDE5LCAweGMwLCAweGMyLCAweDE5LCAweDEyLCAweDBlLCAweGRjLCAweDgwLCAweGI5LCAweDIyLCAweGU1LCAweDMxLCAweDYwLAotICAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM5LCAweDYwLCAweDU1LCAweDY1LCAweDM1LCAweDcwLCAweDRiLCAweGU1LCAweDMzLCAweGY0LCAweDYwLCAweDAyLAotICAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGMzLCAweDk1LCAweDQ0LCAweDQwLCAweDQzLCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLAotICAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDJkLCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1fX0sCi0gezB4MGI0NiwgNjQsIHsgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwgMHgxMiwgMHhmZiwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwKLSAgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwKLSAgMHgxMiwgMHhmZiwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzOSwgMHgzNSwgMHhlNCwgMHhmNSwgMHgzMywgMHhlNSwgMHgyYywgMHg2MCwgMHgzMCwKLSAgMHgyMCwgMHgwZiwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNH19LAotIHsweDBiODYsIDY0LCB7IDB4ZjUsIDB4MmQsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ODAsIDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDUsIDB4NTAsIDB4MGQsCi0gIDB4ZTUsIDB4MzAsIDB4YjUsIDB4NDUsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTQsIDB4NDUsIDB4MTMsIDB4NjAsIDB4NTcsIDB4YWUsIDB4MTMsIDB4YWYsIDB4MTQsIDB4ZDMsIDB4ZWZ9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDdlLCAweDAwLCAweDdmLCAweDQwLCAweGMzLCAweGU1LCAweDE0LCAweDlmLCAweGY1LCAweDE0LAotICAweGU1LCAweDEzLCAweDllLCAweGY1LCAweDEzLCAweGU0LCAweGZkLCAweGVkLCAweGMzLCAweDlmLCAweGU0LCAweDllLCAweDUwLCAweDFmLCAweDg1LCAweDE2LAotICAweDgyLCAweDg1LCAweDE1LCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDAwLCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLAotICAweGVjLCAweGYwLCAweDBkLCAweDA1LCAweDE2LCAweGU1LCAweDE2LCAweDcwLCAweDAyLCAweDA1LCAweDE1LCAweDgwLCAweGRhLCAweDkwLCAweDdmfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhlZiwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5NCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHg3NCwgMHg4Nn19LAotIHsweDBjNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4NzUsIDB4OTgsIDB4NDAsCi0gIDB4NDMsIDB4YTgsIDB4MTAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4ZDIsCi0gIDB4MDQsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjJ9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLAotICAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLAotICAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LAotICAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzfX0sCi0gezB4MGNjNiwgNjQsIHsgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg0NCwgMHg0MiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5YywgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhiZSwgMHhmMCwgMHgzMCwKLSAgMHgxNiwgMHgwNCwgMHg3ZiwgMHg4MCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlZiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDBkMDYsIDY0LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4YzAsCi0gIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsCi0gIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MGIsIDB4YmEsIDB4ZDAsIDB4ZDAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzB9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLCAweDdmLCAweGM0LAotICAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLAotICAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHhmZiwgMHg0MCwgMHhjZCwgMHgwNiwgMHgxYywgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMiwKLSAgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg0MywgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNywKLSAgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDBkYzYsIDY0LCB7IDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsCi0gIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MTAsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmUsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTAsIDB4MDB9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDUzLCAweDAwLCAweDQ4LCAweDAwLCAweDMxLCAweDAwLCAweDMxLCAweDAwLCAweDMyLCAweDAwLCAweDJkLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLAotICAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDIyLCAweDAzLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQxLCAweDAwLCAweDJkLAotICAweDAwLCAweDM1LCAweDAwLCAweDMzLCAweDAwLCAweDIwLCAweDAwLCAweDMyLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMyLCAweDAwLCAweDYxLAotICAweDAwLCAweDcwLCAweDAwLCAweDcyLCAweDAwLCAweDMyLCAweDAwLCAweDM2LCAweDAwLCAweDAwLCAweDAwLCAweGMwLCAweGUwLCAweGMwLCAweDgzfX0sCi0gezB4MGU0NiwgNjQsIHsgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMiwgMHgwNiwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwKLSAgMHgwMCwgMHhkMiwgMHgxNywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMH19LAotIHsweDBlODYsIDY0LCB7IDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTksIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAyLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLAotICAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDEyLCAweDBjLCAweGNhLCAweDEyLCAweDBmLCAweGIzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLAotICAweGU3LCAweDEyLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLCAweDdlLCAweDAwLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2LAotICAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDEyLCAweDBjLCAweDI0LCAweDIyLCAweDAwLCAweDAyLCAweDBlLCAweDY5LCAweDAwLCAweDAyLCAweDBlfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg0MiwgMHgwMCwgMHgwMiwgMHgwZCwgMHg0NSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MCwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxNCwKLSAgMHgwMCwgMHgwMiwgMHgwZCwgMHgxMiwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxYywgMHgwMCwgMHgwMiwgMHgwZSwgMHhiNywgMHgwMCwgMHgwMiwgMHgwZiwgMHgyNCwKLSAgMHgwMCwgMHgwMiwgMHgwZiwgMHgzMywgMHgwMCwgMHgwMiwgMHgwZiwgMHgyYywgMHgwMCwgMHgwMiwgMHgwZiwgMHg1OCwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywKLSAgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MH19LAotIHsweDBmNDYsIDY0LCB7IDB4N2YsIDB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsCi0gIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsCi0gIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsCi0gIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwZjg2LCA2MSwgeyAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLCAweDAzLCAweDkwLAotICAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLAotICAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAotICAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9fQotfTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYwppbmRleCBmZjU0MjAzLi42NDRhMWVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYwpAQCAtNzYsMTggKzc2LDE0IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KIAogc3RhdGljIGludCBkZWJ1ZzsKIAotc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgewotCV9fdTE2IGFkZHJlc3M7Ci0JX191OCBkYXRhX3NpemU7Ci0JX191OCBkYXRhWzE2XTsKLX07Ci0KIC8qIG1ha2UgYSBzaW1wbGUgZGVmaW5lIHRvIGhhbmRsZSBpZiB3ZSBhcmUgY29tcGlsaW5nIGtleXNwYW5fcGRhIG9yIHhpcmNvbSBzdXBwb3J0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkgfHwgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQV9NT0RVTEUpCiAJI2RlZmluZSBLRVlTUEFOCkBAIC0xMDAsMTQgKzk2LDYgQEAKIAkjdW5kZWYgWElSQ09NCiAjZW5kaWYKIAotI2lmZGVmIEtFWVNQQU4KLSNpbmNsdWRlICJrZXlzcGFuX3BkYV9mdy5oIgotI2VuZGlmCi0KLSNpZmRlZiBYSVJDT00KLSNpbmNsdWRlICJ4aXJjb21fcGdzX2Z3LmgiCi0jZW5kaWYKLQogLyoKICAqIFZlcnNpb24gSW5mb3JtYXRpb24KICAqLwpAQCAtNzIyLDM4ICs3MTAsNDcgQEAKIHN0YXRpYyBpbnQga2V5c3Bhbl9wZGFfZmFrZV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQogewogCWludCByZXNwb25zZTsKLQljb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqcmVjb3JkID0gTlVMTDsKKwljb25zdCBjaGFyICpmd19uYW1lOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjb3JkOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAKIAkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgaGVyZSAuLi4gKi8KIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldChzZXJpYWwsIDEpOwogCisJaWYgKDApIHsgOyB9CiAjaWZkZWYgS0VZU1BBTgotCWlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gS0VZU1BBTl9WRU5ET1JfSUQpCi0JCXJlY29yZCA9ICZrZXlzcGFuX3BkYV9maXJtd2FyZVswXTsKKwllbHNlIGlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gS0VZU1BBTl9WRU5ET1JfSUQpCisJCWZ3X25hbWUgPSAia2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuZnciOwogI2VuZGlmCiAjaWZkZWYgWElSQ09NCi0JaWYgKChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gWElSQ09NX1ZFTkRPUl9JRCkgfHwKLQkgICAgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBFTlRSRUdSQV9WRU5ET1JfSUQpKQotCQlyZWNvcmQgPSAmeGlyY29tX3Bnc19maXJtd2FyZVswXTsKKwllbHNlIGlmICgobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IFhJUkNPTV9WRU5ET1JfSUQpIHx8CisJCSAobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IEVOVFJFR1JBX1ZFTkRPUl9JRCkpCisJCWZ3X25hbWUgPSAia2V5c3Bhbl9wZGEveGlyY29tX3Bncy5mdyI7CiAjZW5kaWYKLQlpZiAocmVjb3JkID09IE5VTEwpIHsKKwllbHNlIHsKIAkJZXJyKCIlczogdW5rbm93biB2ZW5kb3IsIGFib3J0aW5nLiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQorCWlmIChyZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCAmc2VyaWFsLT5kZXYtPmRldikpIHsKKwkJZXJyKCJmYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVzXCJcbiIsIGZ3X25hbWUpOworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOwogCi0Jd2hpbGUocmVjb3JkLT5hZGRyZXNzICE9IDB4ZmZmZikgewotCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLAorCXdoaWxlIChyZWNvcmQpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeShzZXJpYWwsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCiAJCQkJCSAgICAgKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsCi0JCQkJCSAgICAgcmVjb3JkLT5kYXRhX3NpemUsIDB4YTApOworCQkJCQkgICAgIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSwgMHhhMCk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKIAkJCWVycigiZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBLZXlzcGFuIFBEQSAiCiAJCQkgICAgImZpcm13YXJlICglZCAlMDRYICVwICVkKSIsCi0JCQkgICAgcmVzcG9uc2UsIAotCQkJICAgIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkgICAgcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkgICAgcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KLQkJcmVjb3JkKys7CisJCXJlY29yZCA9IGloZXhfbmV4dF9iaW5yZWMocmVjb3JkKTsKIAl9CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJLyogYnJpbmcgZGV2aWNlIG91dCBvZiByZXNldC4gUmVudW1lcmF0aW9uIHdpbGwgb2NjdXIgaW4gYSBtb21lbnQKIAkgICBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGFfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjUzYWNjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIFVTQiBLZXlzcGFuIFBEQSBGaXJtd2FyZQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBCcmlhbiBXYXJuZXIJPHdhcm5lckBsb3RoYXIuY29tPgotICoKLSAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogR2VuZXJhdGVkIGZyb20ga2V5c3Bhbl9wZGEucyBieSBlenVzYl9jb252ZXJ0LnBsCi0gKgotICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3BkYV9maXJtd2FyZVtdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDAyLCAweDAwfSB9LAoteyAweDAwMjMsCTQsCXsweDAyLCAweDA1LCAweDVmLCAweDAwfSB9LAoteyAweDAwNDMsCTQsCXsweDAyLCAweDAxLCAweDAwLCAweDAwfSB9LAoteyAweDAwMzAsCTUsCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAxMDAsCTE2LAl7MHgwMiwgMHgwMiwgMHg5NiwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTEwLAkxNiwJezB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDEyMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDA0LCAweDYxLCAweDAwLCAweDAyLCAweDA0LCAweDg5LCAweDAwfSB9LAoteyAweDAyMDAsCTE2LAl7MHg3NSwgMHg4MSwgMHg1ZSwgMHhlNCwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzNCwgMHhjMiwgMHgwMH0gfSwKLXsgMHgwMjEwLAkxNiwJezB4YzIsIDB4MDEsIDB4YTksIDB4MDAsIDB4NzQsIDB4ZmUsIDB4OTAsIDB4MTAsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZDksIDB4ZmMsIDB4NzQsIDB4ZmQsIDB4OTB9IH0sCi17IDB4MDIyMCwJMTYsCXsweDExLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDc0LCAweDAyLCAweDkwLCAweDdmLCAweDlkLCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmfSB9LAoteyAweDAyMzAsCTE2LAl7MHg5NywgMHhmMCwgMHg3NCwgMHg4NiwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwMjQwLAkxNiwJezB4YWYsIDB4ZTAsIDB4ZDIsIDB4ZTAsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDI1MCwJMTYsCXsweDdmLCAweGFjLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGFkLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDc0fSB9LAoteyAweDAyNjAsCTE2LAl7MHg4NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg3NCwgMHgwMCwgMHhmNSwgMHg5OCwgMHg3NSwgMHhjOCwgMHgzMCwgMHg3YiwgMHgwNSwgMHg5MSwgMHgyMH0gfSwKLXsgMHgwMjcwLAkxNiwJezB4ZDIsIDB4Y2EsIDB4NzUsIDB4OTgsIDB4NTAsIDB4ZDIsIDB4ZTgsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YWMsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTB9IH0sCi17IDB4MDI4MCwJMTYsCXsweDdmLCAweGQ2LCAweDc0LCAweDAyLCAweGYwLCAweDc5LCAweDJlLCAweDdhLCAweDAwLCAweDdiLCAweDAwLCAweGRiLCAweGZlLCAweGRhLCAweGZhLCAweGQ5fSB9LAoteyAweDAyOTAsCTE2LAl7MHhmNiwgMHg3NCwgMHgwNiwgMHhmMCwgMHg4MCwgMHhmZSwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NX0gfSwKLXsgMHgwMmEwLAkxNiwJezB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDJiMCwJMTYsCXsweGU4LCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZjLCAweGU5LCAweDU0LCAweDYwLCAweGI0fSB9LAoteyAweDAyYzAsCTE2LAl7MHgwMCwgMHgwMywgMHgwMiwgMHgwMywgMHgzOSwgMHhiNCwgMHg0MCwgMHg2ZSwgMHhiYSwgMHgwMCwgMHgwYiwgMHgxMiwgMHgwNCwgMHgyMCwgMHg0MCwgMHgwM30gfSwKLXsgMHgwMmQwLAkxNiwJezB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDIsIDB4MDMsIDB4MDJ9IH0sCi17IDB4MDJlMCwJMTYsCXsweDA0LCAweDBhLCAweGJhLCAweDAzLCAweDAzLCAweDAyLCAweDA0LCAweDQ0LCAweGJhLCAweDA0LCAweDFlLCAweGJiLCAweDAwLCAweDBhLCAweDkwLCAweDdmfSB9LAoteyAweDAyZjAsCTE2LAl7MHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwMzAwLAkxNiwJezB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmEsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmF9IH0sCi17IDB4MDMxMCwJMTYsCXsweDA2LCAweDE5LCAweGJiLCAweDAwLCAweDA4LCAweGU1LCAweDMzLCAweGQzLCAweDk1LCAweDMyLCAweDAyLCAweDAzLCAweGRlLCAweGJiLCAweDAxLCAweDA4fSB9LAoteyAweDAzMjAsCTE2LAl7MHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHgzMywgMHgwMiwgMHgwMywgMHhkZSwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwNywgMHgwNSwgMHg4YiwgMHgzNH0gfSwKLXsgMHgwMzMwLAkxNiwJezB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDAsIDB4MjAsIDB4YjksIDB4ODAsIDB4MTAsIDB4OTB9IH0sCi17IDB4MDM0MCwJMTYsCXsweDdmLCAweDAwLCAweGU0LCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGI5fSB9LAoteyAweDAzNTAsCTE2LAl7MHg4MiwgMHgwMiwgMHg4MCwgMHhlYiwgMHhiOSwgMHg4MSwgMHgwMiwgMHg4MCwgMHhlNiwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwMSwgMHgwZiwgMHhiYn0gfSwKLXsgMHgwMzYwLAkxNiwJezB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDN9IH0sCi17IDB4MDM3MCwJMTYsCXsweDBmLCAweGJiLCAweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDBhLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhfSB9LAoteyAweDAzODAsCTE2LAl7MHhiYSwgMHgwNiwgMHg1NiwgMHhiYywgMHgwMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHg3NCwgMHgwNiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHg3NH0gfSwKLXsgMHgwMzkwLAkxNiwJezB4MTIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmMsIDB4MDIsIDB4MTIsIDB4YmIsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4NzQsIDB4MDZ9IH0sCi17IDB4MDNhMCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweDc0LCAweDI0LCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGJjLCAweDAzLCAweDI5LCAweDc0LCAweDA0LCAweGMzfSB9LAoteyAweDAzYjAsCTE2LAl7MHg5YiwgMHg0MCwgMHg1NywgMHg2MCwgMHg1NSwgMHhlYiwgMHgyYiwgMHg5MCwgMHgwNiwgMHg0NCwgMHgyNSwgMHg4MiwgMHhmNSwgMHg4MiwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwM2MwLAkxNiwJezB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZTksIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDNkMCwJMTYsCXsweGQ1LCAweGVhLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDA4LCAweDBmLCAweDc0LCAweDAxLCAweDkwLCAweDdmfSB9LAoteyAweDAzZTAsCTE2LAl7MHgwMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYSwgMHgwOSwgMHgwMywgMHgwMiwgMHgwNH0gfSwKLXsgMHgwM2YwLAkxNiwJezB4MDIsIDB4YmEsIDB4MGEsIDB4MDUsIDB4NzQsIDB4MDAsIDB4MDIsIDB4MDMsIDB4ZGUsIDB4YmEsIDB4MGIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDJ9IH0sCi17IDB4MDQwMCwJMTYsCXsweDA0LCAweDBhLCAweDkwLCAweDdmLCAweGI0LCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxfSB9LAoteyAweDA0MTAsCTE2LAl7MHhmMCwgMHg4MCwgMHgwMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMn0gfSwKLXsgMHgwNDIwLAkxNiwJezB4ZWIsIDB4MjAsIDB4ZTcsIDB4MWUsIDB4YzMsIDB4OTQsIDB4MGEsIDB4NTAsIDB4MTksIDB4ZWIsIDB4MjMsIDB4MjQsIDB4ZmUsIDB4ZjUsIDB4ODIsIDB4NzR9IH0sCi17IDB4MDQzMCwJMTYsCXsweDA1LCAweDM0LCAweDAwLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGNiLCAweGY1LCAweGNkLCAweGEzLCAweGUwLCAweGY1LCAweGNhLCAweGY1LCAweGNjfSB9LAoteyAweDA0NDAsCTE2LAl7MHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhiOSwgMHg0MSwgMHgxMSwgMHhlYiwgMHg2NCwgMHhmZiwgMHg1NCwgMHg4NCwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OH0gfSwKLXsgMHgwNDUwLAkxNiwJezB4ZTAsIDB4NTQsIDB4N2IsIDB4NGIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NjQsIDB4ZmYsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDQ2MCwJMTYsCXsweGRlLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyfSB9LAoteyAweDA0NzAsCTE2LAl7MHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHgxMiwgMHgwNSwgMHhhMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NX0gfSwKLXsgMHgwNDgwLAkxNiwJezB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzB9IH0sCi17IDB4MDQ5MCwJMTYsCXsweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA0fSB9LAoteyAweDA0YTAsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmOSwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHg3NSwgMHg4NSwgMHgxMCwgMHg4NX0gfSwKLXsgMHgwNGIwLAkxNiwJezB4MzIsIDB4ODQsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4MDUsIDB4ODQsIDB4ZjAsIDB4ZTUsIDB4ODQsIDB4YjUsIDB4MzMsIDB4MDIsIDB4ODAsIDB4MDksIDB4MDV9IH0sCi17IDB4MDRjMCwJMTYsCXsweDMyLCAweDA1LCAweDg2LCAweGEzLCAweGQ5LCAweGVjLCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGIxLCAweDMxLCAweGQwLCAweGUwfSB9LAoteyAweDA0ZDAsCTE2LAl7MHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNGUwLAkxNiwJezB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NGIsIDB4OTAsIDB4N2QsIDB4MDAsIDB4ZTUsIDB4MzIsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzMsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDRmMCwJMTYsCXsweGU1LCAweDMwLCAweGYwLCAweGEzLCAweGU1LCAweDMxLCAweGYwLCAweGEzLCAweGU0LCAweDMwLCAweDAwLCAweDAxLCAweDA0LCAweGYwLCAweGEzLCAweDA1fSB9LAoteyAweDA1MDAsCTE2LAl7MHg4NiwgMHg5MCwgMHgxMCwgMHgwMCwgMHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkOSwgMHhmNn0gfSwKLXsgMHgwNTEwLAkxNiwJezB4MDUsIDB4ODYsIDB4NzQsIDB4ZmMsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MTEsIDB4MDAsIDB4NzksIDB4MTAsIDB4ZTAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MDUyMCwJMTYsCXsweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGQ5LCAweGY2LCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGJkLCAweDc0LCAweDI2LCAweGYwfSB9LAoteyAweDA1MzAsCTE2LAl7MHgyMiwgMHgyMCwgMHgwMCwgMHgxMywgMHhlNSwgMHgzMiwgMHhiNSwgMHgzMywgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMywgMHg3NSwgMHg4MywgMHgxMCwgMHg4NX0gfSwKLXsgMHgwNTQwLAkxNiwJezB4MzMsIDB4ODIsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZDIsIDB4MDAsIDB4NzQsIDB4MDAsIDB4YjUsIDB4MzQsIDB4MDEsIDB4MjIsIDB4ZTUsIDB4MzMsIDB4ZDN9IH0sCi17IDB4MDU1MCwJMTYsCXsweDk1LCAweDMyLCAweGMzLCAweDk1LCAweDM0LCAweDQwLCAweGY1LCAweDc1LCAweDM0LCAweDAwLCAweGQyLCAweDAxLCAweDAyLCAweDA1LCAweGEwLCAweGMwfSB9LAoteyAweDA1NjAsCTE2LAl7MHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHgzMCwgMHg5OSwgMHgwNywgMHhjMiwgMHg5OX0gfSwKLXsgMHgwNTcwLAkxNiwJezB4YzIsIDB4MDAsIDB4MTIsIDB4MDUsIDB4MzQsIDB4MzAsIDB4OTgsIDB4MDUsIDB4MTIsIDB4MDUsIDB4OGEsIDB4YzIsIDB4OTgsIDB4ZDAsIDB4ZTAsIDB4ZDB9IH0sCi17IDB4MDU4MCwJMTYsCXsweDg1LCAweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweDc1LCAweDgzLCAweDExLCAweDg1LCAweDMwLCAweDgyfSB9LAoteyAweDA1OTAsCTE2LAl7MHgwNSwgMHg4MiwgMHhlNSwgMHg5OSwgMHhmMCwgMHhlNSwgMHg4MiwgMHhiNSwgMHgzMSwgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMCwgMHhiMSwgMHhhMCwgMHgyMn0gfSwKLXsgMHgwNWEwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzgsIDB4MjAsIDB4MDEsIDB4MzYsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4MzEsIDB4MDEsIDB4MjJ9IH0sCi17IDB4MDViMCwJMTYsCXsweGU0LCAweGY1LCAweDg2LCAweDc1LCAweDgzLCAweDExLCAweDA1LCAweDg2LCAweDkwLCAweDdlLCAweDAwLCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDc5fSB9LAoteyAweDA1YzAsCTE2LAl7MHgwMSwgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMSwgMHgwMiwgMHg4MCwgMHgxMCwgMHgwNSwgMHgzMSwgMHg4NSwgMHgzMSwgMHg4MiwgMHhlMCwgMHgwNSwgMHg4Nn0gfSwKLXsgMHgwNWQwLAkxNiwJezB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4MDksIDB4YjksIDB4NDAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTksIDB4NjAsIDB4MDEsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MDVlMCwJMTYsCXsweGMyLCAweDAxLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdlLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDAyLCAweGYwLCAweDkwfSB9LAoteyAweDA1ZjAsCTE2LAl7MHg3ZiwgMHhiOSwgMHhmMCwgMHgyMiwgMHhjMiwgMHg5OSwgMHhmNSwgMHg5OSwgMHgzMCwgMHg5OSwgMHhmZCwgMHhjMiwgMHg5OSwgMHgyMiwgMHhlNSwgMHg1ZX0gfSwKLXsgMHgwNjAwLAkxNiwJezB4ZjYsIDB4M2MsIDB4ZmQsIDB4OGYsIDB4ZmUsIDB4YzgsIDB4ZmYsIDB4NjQsIDB4ZmYsIDB4YjIsIDB4ZmYsIDB4ZDksIDB4ZmYsIDB4ZWQsIDB4ZmYsIDB4ZjN9IH0sCi17IDB4MDYxMCwJMTYsCXsweGZmLCAweGZhLCAweDEyLCAweDAxLCAweDAwLCAweDAxLCAweGZmLCAweGZmLCAweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDA0LCAweDAxLCAweDg5LCAweGFifSB9LAoteyAweDA2MjAsCTE2LAl7MHgwMSwgMHgwMiwgMHgwMywgMHgwMSwgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMH0gfSwKLXsgMHgwNjMwLAkxNiwJezB4MDAsIDB4MDIsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDMsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4MDJ9IH0sCi17IDB4MDY0MCwJMTYsCXsweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA2LCAweDRjLCAweDA2LCAweDUwLCAweDA2LCAweDcyLCAweDA2LCAweGEwLCAweDA0LCAweDAzLCAweDAwLCAweDAwfSB9LAoteyAweDA2NTAsCTE2LAl7MHgyMiwgMHgwMywgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MywgMHgwMH0gfSwKLXsgMHgwNjYwLAkxNiwJezB4NjIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDY3MCwJMTYsCXsweDczLCAweDAwLCAweDJlLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwfSB9LAoteyAweDA2ODAsCTE2LAl7MHg1MywgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMH0gfSwKLXsgMHgwNjkwLAkxNiwJezB4NmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDZhMCwJNiwJezB4MDYsIDB4MDMsIDB4MzQsIDB4MDAsIDB4MzcsIDB4MDB9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOHhfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE4eF9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2IzYmMwLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE4eF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQ3ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMTh4X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTh4X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTIsIDB4Zjd9fSwKLSB7MHgwMDAzLCAxNiwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwfX0sCi0gezB4MDAxMywgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MH19LAotIHsweDAwMjMsIDE1LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhiYX19LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4YmEsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGQ2LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMiwgMHhlYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDRiLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhkZiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YX19LAotIHsweDAxODYsIDY0LCB7IDB4N2UsIDB4NzksIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsCi0gIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsCi0gIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDdlLCAweDEzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDM1LCAweDkwLCAweDdlLCAweDAyLCAweGUwLAotICAweGZmLCAweDEyLCAweDEwLCAweDViLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLAotICAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwKLSAgMHg3ZSwgMHgxMywgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwKLSAgMHhmNSwgMHg0NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgwNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0Mn19LAotIHsweDAyNDYsIDY0LCB7IDB4N2YsIDB4NTMsIDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTAsIDB4YTcsIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4Y2QsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsCi0gIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2UsIDB4MGMsCi0gIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmR9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLAotICAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMiwgMHhkZiwKLSAgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMn19LAotIHsweDAzMDYsIDY0LCB7IDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsCi0gIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsCi0gIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLAotICAweDUzLCAweDNlLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLAotICAweDdlLCAweDFiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweGU0LAotICAweGY1LCAweDJiLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyfX0sCi0gezB4MDM4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwKLSAgMHg5MCwgMHg3ZSwgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwKLSAgMHgxZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKLSAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTIsIDB4ZGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGQsIDB4MTEsIDB4MTJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLCAweDA3LCAweDIwLAotICAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGVjLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk1LCAweDNkLCAweDQwLAotICAweDAzLCAweDAyLCAweDA0LCAweGFlLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDgwLCAweDc3LAotICAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzfX0sCi0gezB4MDQ0NiwgNjQsIHsgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHgxNCwgMHhmNSwKLSAgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwKLSAgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgwNCwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwKLSAgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MH19LAotIHsweDA0ODYsIDY0LCB7IDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsCi0gIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGQsIDB4MDQsCi0gIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsCi0gIDB4MzYsIDB4MTIsIDB4MTIsIDB4MjAsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBjLAotICAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweDMwLAotICAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLAotICAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmLCAweDg0LCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwKLSAgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MSwgMHg3NSwKLSAgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgyOSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5NywgMHhjMiwgMHgwNiwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDE5LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDNmLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NjUsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4OGIsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsCi0gIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsCi0gIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsIDB4MTMsIDB4MTIsCi0gIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MzMsIDB4ZDJ9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDA4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJmLCAweGQyLAotICAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDJlLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDIwLCAweGUxLCAweDIzLCAweDkwLAotICAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDE2LCAweDkwfX0sCi0gezB4MDgwNiwgNjQsIHsgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyMCwgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwKLSAgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA4NDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsCi0gIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsCi0gIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKLSB7MHgwODg2LCA2NCwgeyAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAotICAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM5LCAweDEwLCAweGU0LAotICAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDE0LCAweDJmLCAweGMyLAotICAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwKLSAgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwKLSAgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA5MDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsCi0gIDB4ZTQsIDB4MGEsIDB4MDgsIDB4MDAsIDB4MGEsIDB4N2MsIDB4MDEsIDB4MGEsIDB4ZTgsIDB4MDMsIDB4MDksIDB4NDQsIDB4MDYsIDB4MDksIDB4ZmIsIDB4MDgsCi0gIDB4MDksIDB4ZjUsIDB4MDksIDB4MDksIDB4ZGQsIDB4MGEsIDB4MDksIDB4ZWMsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MzcsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweGQzLCAweDc0LAotICAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LAotICAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5fX0sCi0gezB4MDk4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKLSAgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwKLSAgMHgwYSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMH19LAotIHsweDA5YzYsIDY0LCB7IDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsIDB4MGIsIDB4M2UsIDB4MTIsIDB4MGIsCi0gIDB4NDYsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAotICAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAotICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweGU0LCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMn19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MGIsIDB4M2UsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsCi0gIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsCi0gIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLAotICAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAotICAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKLSAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKLSAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn19LAotIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0gIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLCAweDAxLCAweGU0LCAweGY1LCAweDM4LAotICAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLCAweGMyLCAweDA5LCAweGMyLCAweDEzLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLAotICAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdmfX0sCi0gezB4MGJjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwKLSAgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMX19LAotIHsweDBjMDYsIDY0LCB7IDB4YjEsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsCi0gIDB4MGMsIDB4YjcsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsCi0gIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzJ9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDEwLAotICAweGYzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0fX0sCi0gezB4MGM4NiwgNjQsIHsgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwKLSAgMHgxMSwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwKLSAgMHg3ZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4YiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4Mn19LAotIHsweDBjYzYsIDY0LCB7IDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsCi0gIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LAotICAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLAotICAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLAotICAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwKLSAgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywKLSAgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMH19LAotIHsweDBkODYsIDY0LCB7IDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCi0gIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MTIsIDB4NDUsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTJ9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLCAweDA1LCAweGQyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLCAweDA1LCAweGMyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDIxLCAweDgwLCAweGQ2LCAweDMwLCAweDE4LAotICAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDkzLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkfX0sCi0gezB4MGUwNiwgNjQsIHsgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg0NywgMHgwMiwgMHgwZCwgMHg2ZiwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKLSAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKLSAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwKLSAgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4MTIsIDB4YWMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCi0gIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCi0gIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsCi0gIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLAotICAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLAotICAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LAotICAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1fX0sCi0gezB4MGVjNiwgNjQsIHsgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKLSAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKLSAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksIDB4NzUsIDB4MWMsCi0gIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YTUsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OGMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsCi0gIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDB9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAotICAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLAotICAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LAotICAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhfX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwKLSAgMHhmMCwgMHgxMiwgMHgxMywgMHgzZiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwKLSAgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMH19LAotIHsweDBmYzYsIDY0LCB7IDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsCi0gIDB4MTEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDB9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwfX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDEwODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDR9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAotICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwfX0sCi0gezB4MTEwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKLSAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAotICAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwfX0sCi0gezB4MTFjNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHg4MCwKLSAgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MH19LAotIHsweDEyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsCi0gIDB4NjMsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsCi0gIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTB9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAotICAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGM4LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LAotICAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwfX0sCi0gezB4MTI4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MCwKLSAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwKLSAgMHgwMCwgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMX19LAotIHsweDEyYzYsIDY0LCB7IDB4MWIsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsCi0gIDB4NjAsIDB4MDUsIDB4MTIsIDB4MGQsIDB4NGUsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4ZTcsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBmLCAweGJkLCAweDAwLCAweDAyLCAweDEwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MDAsIDB4MDMsIDB4MTIsCi0gIDB4MGQsIDB4NWYsIDB4MTIsIDB4MGIsIDB4NDYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEyLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgMjAsIHsgMHg3MiwgMHgwMCwgMHgxMCwgMHgwMywgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwKLSAgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsCTAsCXsweDAwfSB9Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwMjNjNTIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NSArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5X2Z3LmgKLSAKLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTE5X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLSovCi0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTlfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDI2LCAxMCwgeyAweDEyLCAweDBkLCAweGJmLCAweDEyLCAweDBmLCAweDQ3LCAweDEyLCAweDBkLCAweDZiLCAweDIyfX0sCi0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgxYX19LAotIHsweDAwMWEsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDAzLCAxNiwgeyAweDhlLCAweDEzLCAweDhmLCAweDE0LCAweGU1LCAweDE0LCAweDE1LCAweDE0LCAweGFlLCAweDEzLCAweDcwLCAweDAyLCAweDE1LCAweDEzLCAweDRlLCAweDYwfX0sCi0gezB4MDAxMywgIDcsIHsgMHgwNSwgMHgxMiwgMHgwZiwgMHgzNiwgMHg4MCwgMHhlZSwgMHgyMn19LAotIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgzMCwgMHg5OSwgMHgwZSwgMHgzMCwgMHgwOCwgMHgwNywgMHhhMiwgMHgwYiwgMHg5MiwgMHg5YiwgMHg4NSwgMHgzNSwgMHg5OSwgMHhjMiwgMHg5OSwgMHhkMn19LAotIHsweDAwNjYsIDE2LCB7IDB4MGYsIDB4MjAsIDB4MGYsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MzEsIDB4YzIsIDB4MGYsIDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NTYsIDB4MjB9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDA4LCAweDAzLCAweDAyLCAweDAxLCAweDI3LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDNlLCAweDIwLCAweDA5LCAweDM2LCAweDIwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwNiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyOSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZn19LAotIHsweDAwOTYsIDE2LCB7IDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MDBiNiwgMTYsIHsgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMn19LAotIHsweDAwYzYsIDE2LCB7IDB4MDIsIDB4MzAsIDB4MGEsIDB4MGMsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmZ9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM5LCAweGUwfX0sCi0gezB4MDBlNiwgMTYsIHsgMHhmNSwgMHg1MCwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHgyMCwgMHgwOSwgMHgyZCwgMHgyMCwgMHgwNiwgMHgyYSwgMHg5MH19LAotIHsweDAwZjYsIDE2LCB7IDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4MjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTB9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBmLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwYywgMHg2MX19LAotIHsweDAxMDYsIDY0LCB7IDB4MTMsIDB4OTIsIDB4MGIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MzcsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDIsIDB4OTAsCi0gIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsCi0gIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsCi0gIDB4MDcsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTAsIDB4OTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAxLCAweGM3LCAweDIwLCAweDA2LCAweDcyLCAweDIwLCAweDAwLAotICAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDY1LCAweDMwLCAweDBkLCAweDEwLCAweDkwLCAweDdlLAotICAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDM3LCAweDAzLCAweDgwLCAweDA5LCAweDkwLCAweDdlLAotICAweDQxLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDE3LCAweDkwfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMiwgMHgyMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHgwMiwgMHgwNH19LAotIHsweDAxYzYsIDY0LCB7IDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDIsIDB4NTEsIDB4MjAsIDB4MDYsCi0gIDB4NzksIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NmYsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsCi0gIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsCi0gIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGY1LCAweDk5LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAyLCAweDIwLAotICAweDBhLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLAotICAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0fX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgyMCwKLSAgMHgwOCwgMHgwMywgMHgwMiwgMHgwMywgMHgwOCwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgzZSwgMHgyMCwgMHgwOSwgMHgzNiwgMHgyMCwKLSAgMHgwNiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyOSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwKLSAgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDAyODYsIDY0LCB7IDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsCi0gIDB4MDIsIDB4MzAsIDB4MGEsIDB4MGMsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsCi0gIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4Yzd9fSwKLSB7MHgwMmM2LCA2NCwgeyAweGUwLCAweGY1LCAweDUwLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDIwLCAweDA5LCAweDJkLCAweDIwLCAweDA2LCAweDJhLCAweDkwLAotICAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDIwLCAweDMwLCAweDBkLCAweDExLCAweDkwLCAweDdlLCAweDQxLCAweGUwLAotICAweDEzLCAweDkyLCAweDBiLCAweGEzLCAweGUwLCAweGY1LCAweDM1LCAweDc1LCAweDM3LCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweDc1LCAweDM3LCAweDAyLAotICAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDM1LCAweDAyLCAweDA0LCAweDJmLCAweDc1LCAweDM3LCAweDAxLCAweGMyLCAweDA4LCAweDAyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgwNCwgMHgyZiwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwMywgMHhiMCwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgzMCwKLSAgMHhlMSwgMHgwNywgMHhjMiwgMHgxMCwgMHhjMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MCwgMHg5MCwKLSAgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMywgMHhhOCwgMHgyMCwgMHgwNiwgMHg3MiwgMHgyMCwKLSAgMHgwMCwgMHg2ZiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHg2NSwgMHgzMCwgMHgwZCwgMHgxMH19LAotIHsweDAzNDYsIDY0LCB7IDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsCi0gIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTAsCi0gIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4MjAsIDB4MGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsCi0gIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzB9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LAotICAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0LAotICAweDJmLCAweDc1LCAweDM3LCAweDAxLCAweGMyLCAweDEwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDA0LCAweDJkLCAweDIwLAotICAweDA2LCAweDc0LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDZhLCAweDMwLCAweDBkLCAweDEyfX0sCi0gezB4MDNjNiwgNjQsIHsgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKLSAgMHg5YiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHhmNSwgMHg5OSwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMiwKLSAgMHgzMCwgMHgwYSwgMHgzNSwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgwZCwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjAsIDB4OTgsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NmQsCi0gIDB4YzIsIDB4OTgsIDB4MjAsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4ZGEsIDB4MjAsIDB4MTEsIDB4MjcsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzZ9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDBkLCAweDRkLCAweGFmLAotICAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLAotICAweDgwLCAweDNhLCAweDg1LCAweDk5LCAweDEwLCAweGU1LCAweDEwLCAweGI1LCAweDQ0LCAweDA0LCAweGQyLCAweDA2LCAweDgwLCAweDJlLCAweGU1LCAweDEwLAotICAweGI1LCAweDQzLCAweDA0LCAweGMyLCAweDA2LCAweDgwLCAweDI1LCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDgwLCAweDJmLCAweGY1fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHgxMCwgMHhmMCwgMHgzMCwgMHgwZCwgMHgxMSwgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwKLSAgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgwYywgMHhlNSwgMHgzNiwKLSAgMHhjMywgMHg5NSwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxNiwgMHhlNSwKLSAgMHgzNiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2YiwgMHgxNSwgMHgzNiwgMHgxNSwgMHgzNiwgMHgwNSwgMHgyYn19LAotIHsweDA0YzYsIDY0LCB7IDB4NDMsIDB4MzMsIDB4MDEsIDB4MDIsIDB4MDUsIDB4NmIsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4NzUsIDB4MzYsIDB4MDAsIDB4YzIsIDB4MDEsCi0gIDB4MDIsIDB4MDUsIDB4NmIsIDB4MjAsIDB4MTEsIDB4MjcsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MGQsIDB4NGQsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTl9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDEwLCAweGU1LCAweDEwLCAweGI1LCAweDQ0LCAweDA0LCAweGQyLCAweDA2LCAweDgwLCAweDJlLCAweGU1LCAweDEwLCAweGI1LCAweDQzLCAweDA0LCAweGMyLCAweDA2LAotICAweDgwLCAweDI1LCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGU1LCAweDEwLCAweGYwLCAweDMwLCAweDBkLCAweDExLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBjLCAweGU1LCAweDM2LCAweGMzLCAweDk1LCAweDQwLCAweDQwfX0sCi0gezB4MDU0NiwgNjQsIHsgMHgyNCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMiwgMHhlNSwgMHgzNiwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNiwgMHgxNSwgMHgzNiwKLSAgMHgxNSwgMHgzNiwgMHgwNSwgMHgyYiwgMHg0MywgMHgzMywgMHgwMSwgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3NSwKLSAgMHgzNiwgMHgwMCwgMHhkMiwgMHgwMSwgMHhkMiwgMHgxMiwgMHgzMCwgMHgxMiwgMHgwNSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwMCwgMHg1NiwgMHhkMCwgMHhkMCwKLSAgMHhkMCwgMHg4NiwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgzMCwgMHhlMX19LAotIHsweDA1ODYsIDY0LCB7IDB4MDMsIDB4MDIsIDB4MDYsIDB4YWIsIDB4ZTQsIDB4ZjUsIDB4MTMsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTMsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDAsIDB4MjQsIDB4MzgsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsCi0gIDB4ZWYsIDB4MTIsIDB4MGQsIDB4MzMsIDB4MDUsIDB4MTMsIDB4ZTUsIDB4MTMsIDB4YjQsIDB4MTgsIDB4ZGIsIDB4ZTUsIDB4MzgsIDB4NjAsIDB4MGMsIDB4NzUsCi0gIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzQsIDB4ODUsIDB4MzksIDB4Y2EsIDB4ODUsIDB4M2EsIDB4Y2IsIDB4ZTUsIDB4M2IsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDBkLCAweDkyLCAweDlmLCAweGU1LCAweDNjLCAweDEzLCAweDkyLCAweDBlLCAweGU1LCAweDNkLCAweDEzLCAweDkyLCAweDExLCAweGU1LCAweDNlLCAweDYwLCAweDA5LAotICAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLAotICAweGU1LCAweDNmLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LAotICAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ1LCAweDYwLCAweDBiLCAweGMyLCAweDA5LCAweGMyLCAweDA2LCAweDkwLCAweDdmLCAweDk1fX0sCi0gezB4MDYwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0NiwgMHg2MCwgMHgwYywgMHhkMiwgMHgwNiwgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwKLSAgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0NywgMHg2MCwgMHgwZCwgMHhjMiwgMHhhZiwgMHhjMiwgMHgwOCwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MCwKLSAgMHhmNSwgMHgzNywgMHhkMiwgMHhhZiwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwNSwgMHgzMCwgMHgxMSwgMHgwMiwgMHhkMiwgMHgwNiwgMHhlNSwgMHg0OSwgMHg2MCwKLSAgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH19LAotIHsweDA2NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NGEsIDB4NjAsIDB4MGEsIDB4ZDIsIDB4OWMsIDB4YzIsIDB4OTgsIDB4NzUsIDB4MmMsCi0gIDB4MDEsIDB4NzUsIDB4MzEsIDB4MWUsIDB4ZTUsIDB4NGIsIDB4NjAsIDB4MDcsIDB4YzIsIDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MmMsIDB4ZTUsCi0gIDB4NGMsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZTUsIDB4NGQsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MDQsIDB4ZTUsIDB4NGUsIDB4NjAsIDB4MGEsCi0gIDB4ZTUsIDB4NGEsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTUsIDB4NGUsIDB4NDIsIDB4MzMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MWYsIDB4OTB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDEyLCAweGYwLCAweDc0LCAweDMyLCAweGYwLCAweDc0LCAweDEzLCAweGYwLAotICAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE0LCAweGYwLCAweDc0LCAweDM0LCAweGYwLCAweGQyLCAweDAyLCAweGQyLCAweDAxLCAweGQyLCAweDA1LCAweGU0LAotICAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLAotICAweDMzLCAweDAxLCAweGEyLCAweDA2LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDJhLCAweDYwLCAweDA1LCAweDhmLCAweDJhLCAweDQzLCAweDMzfX0sCi0gezB4MDZjNiwgNjQsIHsgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgwOCwgMHhiNSwgMHgyNSwgMHgwYSwgMHhlMCwgMHg1NCwgMHgwOCwgMHg2NCwgMHgwOCwgMHhmNSwgMHgyNSwKLSAgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgxMCwgMHhiNSwgMHgyNiwgMHgwYSwgMHhlMCwgMHg1NCwgMHgxMCwgMHg2NCwKLSAgMHgxMCwgMHhmNSwgMHgyNiwgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHg0MCwgMHhiNSwgMHgyNywgMHgwYSwgMHhlMCwKLSAgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmNSwgMHgyNywgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgyMH19LAotIHsweDA3MDYsIDY0LCB7IDB4YjUsIDB4MjgsIDB4MGEsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4NjQsIDB4MjAsIDB4ZjUsIDB4MjgsIDB4NDMsIDB4MzMsIDB4MDEsIDB4MzAsIDB4MDQsIDB4MzUsIDB4YzIsCi0gIDB4YWYsIDB4MzAsIDB4MDEsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4MDksIDB4OTAsCi0gIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDEsIDB4YzIsIDB4MDQsIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsCi0gIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjksIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZDJ9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDAxLCAweGMyLCAweDA0LCAweGQyLCAweGFmLCAweDIwLCAweDAzLCAweDM3LCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLAotICAweDJkLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDc1LCAweDM3LCAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LAotICAweDUwLCAweGQyLCAweDAzLCAweDgwLCAweDE5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDEyLCAweDkwLCAweDdkLCAweGMwLCAweGUwLAotICAweDEzLCAweDkyLCAweDBhLCAweDc1LCAweDM3LCAweDAxLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUwLCAweGQyLCAweDAzLCAweDIwfX0sCi0gezB4MDc4NiwgNjQsIHsgMHgxMCwgMHgzMywgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHgzNywgMHg2NSwgMHg1MCwgMHg3MCwgMHgyYSwgMHgzMCwgMHgwMywgMHgxYSwgMHgzMCwgMHgwMiwgMHgwOSwKLSAgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMiwgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMiwKLSAgMHhjMiwgMHgwMywgMHhlNCwgMHhmNSwgMHg1MCwgMHhmNSwgMHgzNywgMHgzMCwgMHgwYSwgMHgwYSwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwKLSAgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHgzMCwgMHgxMCwgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwOH19LAotIHsweDA3YzYsIDY0LCB7IDB4YzUsIDB4MzAsIDB4MGUsIDB4MGEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDYsIDB4MDMsCi0gIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDIsIDB4NjIsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsCi0gIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4MTksIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwODA2LCA2NCwgeyAweGUwLCAweGY1LCAweDE0LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDJhLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LAotICAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LAotICAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLAotICAweDA4LCAweDgwLCAweDZiLCAweGMyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAyLCAweDgwLCAweDYwLCAweDMwfX0sCi0gezB4MDg0NiwgNjQsIHsgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHgxMywgMHg5MiwgMHgxOSwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHhmNSwgMHgxNCwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgyYSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywKLSAgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5Mn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsCi0gIDB4MzUsIDB4ZDIsIDB4MDgsIDB4ODAsIDB4MDksIDB4YzIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4MzAsIDB4MGQsCi0gIDB4MDQsIDB4YTIsIDB4MTksIDB4OTIsIDB4OWIsIDB4ZDIsIDB4MTAsIDB4YzIsIDB4YWYsIDB4ODUsIDB4MTQsIDB4OTksIDB4MjAsIDB4MDgsIDB4MGQsIDB4MzAsCi0gIDB4MGEsIDB4MGEsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4OTB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDUxLCAweGU1LCAweDMzLCAweDYwLCAweDRkLCAweGU1LCAweDMxLCAweDcwLCAweDQ5LCAweGU1LCAweDMzLCAweDMwLAotICAweGUxLCAweDA4LCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDMzLCAweDAxLCAweDgwLCAweDBiLCAweGEyLCAweDA1LCAweGU0LCAweDMzLCAweGY1LCAweDJmLAotICAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDMzLCAweGU0LCAweGY1LCAweDEzLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDEzLAotICAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBjLCAweGVkLCAweGZmLCAweDc0LCAweDAwLCAweDI1LCAweDEzLCAweGY1LCAweDgyfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMywgMHhlNSwgMHgxMywgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwKLSAgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHgzMSwgMHgxMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZCwgMHg0NSwgMHgwYSwgMHgwMywKLSAgMHgwMCwgMHgwYSwgMHg3NywgMHgwMSwgMHgwYSwgMHhlMywgMHgwMywgMHgwOSwgMHg0MSwgMHgwNiwgMHgwOSwgMHhmNCwgMHgwOCwgMHgwOSwgMHhlOCwgMHgwOSwKLSAgMHgwOSwgMHhkMCwgMHgwYSwgMHgwOSwgMHhkZiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNH19LAotIHsweDA5NDYsIDY0LCB7IDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4NTcsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NzYsIDB4NzQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsCi0gIDB4NjQsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4YjUsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YWUsIDB4NzUsCi0gIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YTcsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YTAsIDB4NzUsIDB4ODN9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDBmLCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDBmLCAweGYwLCAweDc0LCAweDBmLCAweDkwLAotICAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDc2LCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLAotICAweGZmLCAweDEyLCAweDBlLCAweDQ4LCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLAotICAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5fX0sCi0gezB4MDljNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxOSwgMHgwMiwgMHgwYiwKLSAgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxOCwgMHgxMiwgMHgwZCwgMHg2YiwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhlNSwgMHgxOCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlOH19LAotIHsweDBhMDYsIDY0LCB7IDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MTMsIDB4ZTQsIDB4MzMsIDB4ZmYsCi0gIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTcsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODB9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LAotICAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDM5fX0sCi0gezB4MGE4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMywgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZn19LAotIHsweDBhYzYsIDY0LCB7IDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsCi0gIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsCi0gIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsCi0gIDB4MTMsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWF9fSwKLSB7MHgwYjA2LCA2NCwgeyAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LAotICAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLAotICAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDBifX0sCi0gezB4MGI0NiwgNjQsIHsgMHhkMywgMHhlNSwgMHgzMSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzMSwgMHhlNSwgMHgzNiwgMHg2MCwgMHg0ZiwgMHg2NSwgMHgzNCwgMHg3MCwgMHg0NSwgMHhlNSwgMHgzMiwKLSAgMHhmNCwgMHg2MCwgMHgwMiwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHg0MSwgMHg0MCwgMHgzZCwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMSwKLSAgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzNiwgMHhmMCwgMHhjMiwgMHgwMSwKLSAgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzNCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMX19LAotIHsweDBiODYsIDY0LCB7IDB4MGYsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MzIsIDB4ZjUsIDB4MzQsIDB4ZDIsCi0gIDB4YWYsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzYsIDB4MzQsIDB4ZTQsIDB4ZjUsIDB4MzIsIDB4ZTUsIDB4MmMsIDB4NjAsIDB4MmYsIDB4MjAsIDB4MGMsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGYsIDB4ZTUsIDB4MmQsIDB4NjAsIDB4MDYsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4NDMsIDB4MzMsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ODAsIDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDIsIDB4NTAsIDB4MGQsIDB4ZTUsIDB4MzB9fSwKLSB7MHgwYmM2LCA2NCwgeyAweGI1LCAweDQyLCAweDA2LCAweDc1LCAweDJkLCAweDAxLCAweDQzLCAweDMzLCAweDAxLCAweDA1LCAweDMwLCAweGMyLCAweDBjLCAweDIyLCAweDc1LCAweDEyLCAweDAxLAotICAweGMyLCAweDE0LCAweGMyLCAweDE4LCAweGMyLCAweDEzLCAweGMyLCAweDE3LCAweGMyLCAweDE1LCAweGMyLCAweDEyLCAweGQyLCAweDE2LCAweGU0LCAweGY1LAotICAweDE4LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDEzLAotICAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0fX0sCi0gezB4MGMwNiwgNjQsIHsgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwKLSAgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMiwgMHgxOSwgMHgxMiwgMHgwZSwgMHhkYSwgMHhjMiwgMHgxNCwgMHgzMCwKLSAgMHgxNSwgMHgwMywgMHgxMiwgMHgwNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgxMSwgMHg2MCwgMHgwOCwgMHhlMCwgMHhmNX19LAotIHsweDBjNDYsIDY0LCB7IDB4MTEsIDB4MTIsIDB4MGIsIDB4NDEsIDB4ODAsIDB4ZWEsIDB4MzAsIDB4MTQsIDB4MDcsIDB4YzIsIDB4MTQsIDB4MTIsIDB4MDksIDB4MWUsIDB4ODAsIDB4ZTAsIDB4MzAsCi0gIDB4MTgsIDB4ZGQsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MDAsIDB4MjYsIDB4ODAsIDB4ZDYsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsCi0gIDB4NzUsIDB4ODEsIDB4NTAsIDB4MDIsIDB4MGMsIDB4YTgsIDB4MDIsIDB4MGIsIDB4ZDQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsCi0gIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4Zjh9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LAotICAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLAotICAweDgwLCAweDkwLCAweDBlLCAweDA0LCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LAotICAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwfX0sCi0gezB4MGNjNiwgNjQsIHsgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwKLSAgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwKLSAgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwKLSAgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn19LAotIHsweDBkMDYsIDY0LCB7IDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsCi0gIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsCi0gIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksCi0gIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDB9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LAotICAweDc0LCAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLAotICAweGEzLCAweGEzLCAweDgwLCAweGRmLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLAotICAweDdmLCAweDk2LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDA0fX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwKLSAgMHg4NCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhjYiwgMHhmMCwgMHg3NSwgMHg5OCwgMHg0MCwgMHg0MywgMHhhOCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkZiwgMHg3NCwgMHgwZiwgMHhmMCwgMHhkMiwgMHgxNSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBkYzYsIDY0LCB7IDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsCi0gIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MjAsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4ZmQsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4MGMsIDB4MjR9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDMwLCAweDAwLCAweDAxLCAweDMzLAotICAweDAxLCAweDAxLCAweDMyLCAweDAwLCAweDAxLCAweDM3LCAweDAwLCAweDAxLCAweDUwLCAweDAwLCAweDAxLCAweDM2LCAweDAwLCAweDAxLCAweDM0LCAweDAwLAotICAweGMxLCAweDA1LCAweGMxLCAweDBjLCAweGMxLCAweDAzLCAweGMxLCAweDBmLCAweGMxLCAweDA0LCAweGMxLCAweDBlLCAweGMxLCAweDExLCAweGMxLCAweDBhLAotICAweGMxLCAweDEwLCAweGMxLCAweDA4LCAweGMxLCAweDA5LCAweGMxLCAweDA2LCAweGMxLCAweDAwLCAweGMxLCAweDBkLCAweGMxLCAweDgxLCAweGMxfX0sCi0gezB4MGU0NiwgNjQsIHsgMHg4MiwgMHgwMCwgMHg4ZiwgMHgxMywgMHhlNCwgMHhmNSwgMHgxNCwgMHg3NSwgMHgxNSwgMHhmZiwgMHg3NSwgMHgxNiwgMHgwZiwgMHg3NSwgMHgxNywgMHhiOSwgMHhhYiwKLSAgMHgxNSwgMHhhYSwgMHgxNiwgMHhhOSwgMHgxNywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZCwgMHgwNiwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxNCwKLSAgMHgwNSwgMHgxNCwgMHhlZiwgMHhiNSwgMHgxMywgMHgwMSwgMHgyMiwgMHgxMiwgMHgwYywgMHhlZCwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwKLSAgMHhhOSwgMHgwNywgMHg3NSwgMHgxNSwgMHhmZiwgMHhmNSwgMHgxNiwgMHg4OSwgMHgxNywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4NzksIDB4MDAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsCi0gIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsCi0gIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTQsIDB4NTMsIDB4OTF9fSwKLSB7MHgwZWM2LCA2NCwgeyAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLAotICAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDE5LAotICAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAotICAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDAwLCAweDAyLCAweDBlLCAweGIzLCAweDAwLCAweDAyLCAweDBmfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4OSwgMHgwMCwgMHgwMiwgMHgwZiwgMHgwZiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwKLSAgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg3NCwKLSAgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX19LAotIHsweDBmNDYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsCi0gIDB4MDEsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDcsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksCi0gIDB4MDIsIDB4NDMsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ZmYsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LAotICAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLAotICAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLAotICAweDAwLCAweDAxLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDEwLCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczfX0sCi0gezB4MGZjNiwgMjMsIHsgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgwZSwgMHgwMywgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwKLSAgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsCTAsCXsweDAwfSB9Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxaV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxaV9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTI2NDcyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cWlfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5cWlfZncuaAotIAotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwbl91c2ExOXFpX2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTlxaV9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWF9fSwKLSB7MHgwMDFhLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDAwMywgMTYsIHsgMHg4ZSwgMHgxMSwgMHg4ZiwgMHgxMiwgMHhlNSwgMHgxMiwgMHgxNSwgMHgxMiwgMHhhZSwgMHgxMSwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxMSwgMHg0ZSwgMHg2MH19LAotIHsweDAwMTMsICA3LCB7IDB4MDUsIDB4MTIsIDB4MGYsIDB4ODQsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKLSB7MHgwMDIzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAotIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MGIsIDB4MDcsIDB4YTIsIDB4MGUsIDB4OTIsIDB4OWIsIDB4ODUsIDB4MzYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDEyLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA0LCAweDFlLCAweGMyLCAweDEyLCAweDIwLCAweDAzLCAweDAzLCAweDAyLCAweDAyLCAweDRlLCAweDIwfX0sCi0gezB4MDA3NiwgMTYsIHsgMHgwYiwgMHgwMywgMHgwMiwgMHgwMSwgMHgyNiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgzYywgMHgyMCwgMHgwYywgMHgzNCwgMHgyMH19LAotIHsweDAwODYsIDE2LCB7IDB4MDksIDB4MzEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjksIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDV9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmfX0sCi0gezB4MDBhNiwgMTYsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNn19LAotIHsweDAwYjYsIDE2LCB7IDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4MzB9fSwKLSB7MHgwMGM2LCAxNiwgeyAweDBkLCAweDBjLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1M319LAotIHsweDAwZTYsIDE2LCB7IDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4MmIsIDB4MjAsIDB4MDksIDB4Mjh9fSwKLSB7MHgwMGY2LCAxNiwgeyAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDIwLCAweDMwLCAweDEwLCAweDExLCAweDkwLCAweDdkLCAweGMxLCAweGUwLCAweDEzfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgwZSwgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MDAsIDB4MjZ9fSwKLSB7MHgwMDI2LCAxMiwgeyAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDU0LCAweDAyLCAweDBiLCAweDI4fX0sCi0gezB4MDEwNiwgNjQsIHsgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzNiwgMHg3NSwgMHgzYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMiwgMHg5MCwgMHg3ZCwKLSAgMHhjMSwgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHhlNSwKLSAgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMSwgMHhjOSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywKLSAgMHhjMiwgMHgxNCwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHg5MCwgMHg3ZX19LAotIHsweDAxNDYsIDY0LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4NzAsIDB4MjAsIDB4MDksIDB4NmQsIDB4OTAsIDB4N2YsIDB4OWIsCi0gIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NjUsIDB4MzAsIDB4MTAsIDB4MTAsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsCi0gIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsCi0gIDB4MDIsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDN9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDIwLCAweDBkLCAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDFjLCAweDMwLAotICAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLAotICAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDE0fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwMiwgMHg0OSwgMHgyMCwgMHgwOSwgMHg3NywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwKLSAgMHgzOCwgMHg3MCwgMHg2ZiwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MH19LAotIHsweDAyMDYsIDY0LCB7IDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4MjAsIDB4MGQsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGQsIDB4OTAsCi0gIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGJ9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDE0LCAweDAyLCAweDA0LCAweDFjLCAweDIwLCAweDBiLCAweDAzLCAweDAyLCAweDAyLCAweGZmLCAweGU1LCAweDNhLCAweGMzLAotICAweDk1LCAweDUzLCAweDUwLCAweDNjLCAweDIwLCAweDBjLCAweDM0LCAweDIwLCAweDA5LCAweDMxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LAotICAweDcwLCAweDI5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1fX0sCi0gezB4MDI4NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywKLSAgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgwZCwgMHgwYywgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwKLSAgMHhmMCwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwYiwgMHgwMiwKLSAgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZH19LAotIHsweDAyYzYsIDY0LCB7IDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4MmIsIDB4MjAsIDB4MDksIDB4MjgsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4NzUsIDB4M2EsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDIsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDQsIDB4MWMsCi0gIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MDN9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDAyLCAweDAzLCAweGEyLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDE0LCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDFjLAotICAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDE2LCAweGZmLAotICAweDIwLCAweDBjLCAweDcwLCAweDIwLCAweDA5LCAweDZkLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDY1LCAweDMwLCAweDEwLAotICAweDEwLCAweDkwLCAweDdkLCAweGMxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDNhLCAweDAzfX0sCi0gezB4MDM0NiwgNjQsIHsgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzYSwgMHgwMiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MCwKLSAgMHgxNywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgyMCwgMHgwZCwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwZCwKLSAgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwKLSAgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYX19LAotIHsweDAzODYsIDY0LCB7IDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGIsCi0gIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MTQsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MjAsIDB4MGMsIDB4NzUsIDB4MjAsIDB4MDksCi0gIDB4NzIsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NmEsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YWZ9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDk5LCAweGU1LAotICAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDBkLCAweDM1LAotICAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAotICAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmfX0sCi0gezB4MDQwNiwgNjQsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwKLSAgMHgwYiwgMHg4MCwgMHgwMiwgMHhjMiwgMHgxNCwgMHhkMiwgMHgwMSwgMHgyMCwgMHg5OCwgMHgwMywgMHgwMiwgMHgwNSwgMHg1YSwgMHhjMiwgMHg5OCwgMHgyMCwKLSAgMHgwMiwgMHgwMywgMHgwMiwgMHgwNCwgMHhjNywgMHgyMCwgMHgxNiwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNX19LAotIHsweDA0NDYsIDY0LCB7IDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsCi0gIDB4OTksIDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDcsIDB4MDQsIDB4ZDIsIDB4MDksIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDYsIDB4MDQsCi0gIDB4YzIsIDB4MDksIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsCi0gIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmZ9fSwKLSB7MHgwNDg2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBmLCAweGU1LCAweDM5LCAweGMzLCAweDk1LCAweDQzLAotICAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDU4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDMwLCAweGUxLCAweDE2LCAweGU1LCAweDM5LCAweGMzLCAweDk0LAotICAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDU4LCAweDE1LCAweDM5LCAweDE1LCAweDM5LCAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDAyLAotICAweDA1LCAweDU4LCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGMyLCAweDAyLCAweDAyLCAweDA1fX0sCi0gezB4MDRjNiwgNjQsIHsgMHg1OCwgMHgyMCwgMHgxNiwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHgxMCwgMHhlNSwgMHgxMCwgMHhiNSwKLSAgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwgMHgyZSwgMHhlNSwgMHgxMCwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNX19LAotIHsweDA1MDYsIDY0LCB7IDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MTAsIDB4ZjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCi0gIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NDAsIDB4MjQsIDB4OTAsIDB4N2YsIDB4YjYsCi0gIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTIsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NDAsIDB4MTYsIDB4MTUsIDB4MzksIDB4MTUsIDB4Mzl9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGQyLAotICAweDAyLCAweGQyLCAweDAxLCAweDMwLCAweDAxLCAweDA1LCAweGMyLCAweDAxLCAweDAyLCAweDAwLCAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLAotICAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDUxLCAweGU1LCAweDM0LCAweDYwLAotICAweDRkLCAweGU1LCAweDMxLCAweDcwLCAweDQ5LCAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDA4LCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDM0fX0sCi0gezB4MDU4NiwgNjQsIHsgMHgwMSwgMHg4MCwgMHgwYiwgMHhhMiwgMHgwOCwgMHhlNCwgMHgzMywgMHhmNSwgMHgyZiwgMHhjMiwgMHgwOCwgMHhlNCwgMHhmNSwgMHgzNCwgMHhlNCwgMHhmNSwgMHgxMSwKLSAgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxMSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZCwgMHgwNiwKLSAgMHhmZiwgMHg3NCwgMHgwMCwgMHgyNSwgMHgxMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMSwKLSAgMHhlNSwgMHgxMSwgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHgzMSwgMHgxMCwgMHg5MH19LAotIHsweDA1YzYsIDY0LCB7IDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDYsIDB4ZjMsIDB4ZTQsIDB4ZjUsIDB4MTEsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTEsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTEsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDAsIDB4MjQsIDB4M2IsCi0gIDB4ZjksIDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGQsIDB4MWYsIDB4MDUsIDB4MTEsIDB4ZTUsIDB4MTEsIDB4YjQsIDB4MTgsIDB4ZGIsCi0gIDB4ZTUsIDB4M2IsIDB4NjAsIDB4MTEsIDB4NzUsIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzYsIDB4ODUsIDB4M2MsIDB4Y2EsIDB4ODUsIDB4M2R9fSwKLSB7MHgwNjA2LCA2NCwgeyAweGNiLCAweGU0LCAweDkwLCAweDdmLCAweDlmLCAweGYwLCAweGU1LCAweDNlLCAweDEzLCAweDkyLCAweDEwLCAweDkyLCAweDlmLCAweDg1LCAweDNmLCAweDM4LCAweGU1LAotICAweDQwLCAweDEzLCAweDkyLCAweDE2LCAweGU1LCAweDQxLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDgwLAotICAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDQyLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLAotICAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ4LCAweDYwfX0sCi0gezB4MDY0NiwgNjQsIHsgMHgwYiwgMHhjMiwgMHgwYywgMHhjMiwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwYywgMHhkMiwKLSAgMHgwOSwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0YSwgMHg2MCwgMHgwZCwgMHhjMiwKLSAgMHhhZiwgMHhjMiwgMHgwYiwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHhkMiwgMHhhZiwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNSwKLSAgMHgzMCwgMHgxNiwgMHgwMiwgMHhkMiwgMHgwOSwgMHhlNSwgMHg0YywgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZH19LAotIHsweDA2ODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NGQsCi0gIDB4NjAsIDB4MGEsIDB4ZDIsIDB4OWMsIDB4YzIsIDB4OTgsIDB4NzUsIDB4MmMsIDB4MDEsIDB4NzUsIDB4MzEsIDB4MWUsIDB4ZTUsIDB4NGUsIDB4NjAsIDB4MDcsCi0gIDB4YzIsIDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZTUsIDB4NTAsCi0gIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MDcsIDB4ZTUsIDB4NTEsIDB4NjAsIDB4MGEsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTV9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDUxLCAweDQyLCAweDM0LCAweGU1LCAweDUyLCAweDYwLCAweDFmLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LAotICAweDEyLCAweGYwLCAweDc0LCAweDMyLCAweGYwLCAweDc0LCAweDEzLCAweGYwLCAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE0LCAweGYwLCAweDc0LCAweDM0LAotICAweGYwLCAweGQyLCAweDAzLCAweGQyLCAweDAyLCAweGQyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDBjLCAweGU0LCAweDMzLAotICAweGZmLCAweDY1LCAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLCAweDM0LCAweDAxLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmfX0sCi0gezB4MDcwNiwgNjQsIHsgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4ZiwgMHgyYSwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHhmZiwgMHg1NCwgMHgwOCwgMHg2NCwKLSAgMHgwOCwgMHhmZSwgMHg2NSwgMHgyNSwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNSwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgxMCwgMHg2NCwgMHgxMCwKLSAgMHhmZSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNiwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmZSwKLSAgMHg2NSwgMHgyNywgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNywgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgyMCwgMHg2NCwgMHgyMCwgMHhmZX19LAotIHsweDA3NDYsIDY0LCB7IDB4NjUsIDB4MjgsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MjgsIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsCi0gIDB4ZmUsIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MmUsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MzAsIDB4MDcsIDB4MzUsIDB4YzIsIDB4YWYsIDB4MzAsCi0gIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjcsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDcsIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjB9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGUxLCAweDBmLCAweGU1LCAweDM5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweGU0LCAweGY1LCAweDM5LCAweGQyLCAweDAyLCAweGMyLCAweDA3LAotICAweGQyLCAweGFmLCAweDIwLCAweDA1LCAweDNkLCAweDMwLCAweDAzLCAweDFlLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDMzLCAweDkwLAotICAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLCAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweGQyLAotICAweDA1LCAweDc1LCAweDE2LCAweGZmLCAweDgwLCAweDFjLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDE1LCAweDkwLCAweDdkfX0sCi0gezB4MDdjNiwgNjQsIHsgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgzYSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MywgMHhkMiwgMHgwNSwgMHg3NSwKLSAgMHgxNiwgMHhmZiwgMHgyMCwgMHgxNCwgMHgzMywgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHgzYSwgMHg2NSwgMHg1MywgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNSwKLSAgMHgxYSwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMn19LAotIHsweDA4MDYsIDY0LCB7IDB4MGQsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MjAsIDB4MDUsCi0gIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsCi0gIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MDMsIDB4NjEsIDB4MzAsIDB4MTAsCi0gIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwODQ2LCA2NCwgeyAweGUwLCAweDEzLCAweDkyLCAweDFiLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAotICAweDgzLCAweGUwLCAweGZlLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDJhLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LAotICAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLAotICAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1fX0sCi0gezB4MDg4NiwgNjQsIHsgMHgzNiwgMHhkMiwgMHgwYiwgMHg4MCwgMHg2YSwgMHhjMiwgMHgwYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHg1ZiwgMHgzMCwKLSAgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHgxMywgMHg5MiwgMHgxYiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZn19LAotIHsweDA4YzYsIDY0LCB7IDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsCi0gIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsCi0gIDB4MzYsIDB4ZDIsIDB4MGIsIDB4ODAsIDB4MDksIDB4YzIsIDB4MGIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTAsCi0gIDB4MDQsIDB4YTIsIDB4MWIsIDB4OTIsIDB4OWIsIDB4ZDIsIDB4MTQsIDB4YzIsIDB4YWYsIDB4OGUsIDB4OTksIDB4MjAsIDB4MGIsIDB4MGQsIDB4MzB9fSwKLSB7MHgwOTA2LCA2NCwgeyAweDBkLCAweDBhLCAweGMyLCAweDBkLCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLAotICAweGU5LCAweGUwLCAweDEyLCAweDBkLCAweDMxLCAweDBhLCAweDExLCAweDAwLCAweDBhLCAweDdlLCAweDAxLCAweDBhLCAweGRiLCAweDAzLCAweDA5LCAweDM4LAotICAweDA2LCAweDBhLCAweDAyLCAweDA4LCAweDA5LCAweGY2LCAweDA5LCAweDA5LCAweGRlLCAweDBhLCAweDA5LCAweGVkLCAweDBiLCAweDAwLCAweDAwLCAweDBiLAotICAweDE5LCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDVhLCAweDI0LCAweDAyLCAweDYwfX0sCi0gezB4MDk0NiwgNjQsIHsgMHgwMywgMHgwMiwgMHgwYiwgMHgxOSwgMHg3NCwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHg4NywgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwKLSAgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwKLSAgMHhkOCwgMHg3NSwgMHg4MywgMHgwZCwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhkMSwgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjYSwKLSAgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjMywgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH19LAotIHsweDA5ODYsIDY0LCB7IDB4MDQsIDB4NzUsIDB4ODIsIDB4OWUsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzQsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4OTksIDB4OTAsCi0gIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MGIsIDB4NzUsIDB4MTEsIDB4ZmYsIDB4NzUsCi0gIDB4MTIsIDB4MGQsIDB4NzUsIDB4MTMsIDB4ZGMsIDB4ODAsIDB4MWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MGIsIDB4NzUsIDB4MTEsCi0gIDB4ZmYsIDB4NzUsIDB4MTIsIDB4MGQsIDB4NzUsIDB4MTMsIDB4ZTAsIDB4ODAsIDB4MDksIDB4NzUsIDB4MTEsIDB4ZmYsIDB4NzUsIDB4MTIsIDB4MGR9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDc1LCAweDEzLCAweGYwLCAweGFhLCAweDEyLCAweGE5LCAweDEzLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLAotICAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDE1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE1LCAweDAyLCAweDBiLCAweDIwLCAweDEyLAotICAweDBjLCAweGIxLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE0LCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweDAwLCAweGU1fX0sCi0gezB4MGEwNiwgNjQsIHsgMHgxNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwKLSAgMHg2MCwgMHgyNywgMHgxNCwgMHg2MCwgMHgzNCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgxOSwgMHhhMiwgMHgxNywgMHhlNCwgMHgzMywKLSAgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxOSwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhM319LAotIHsweDBhNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsCi0gIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTd9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBiLAotICAweDE5LCAweGMyLCAweDE3LCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDc2LCAweDkwLCAweDdmLCAweGVjLCAweGUwLAotICAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LAotICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwfX0sCi0gezB4MGFjNiwgNjQsIHsgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwKLSAgMHgyMCwgMHhmMCwgMHg4MCwgMHg0NSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxMCwgMHgyNCwgMHgwMiwgMHg3MCwgMHgzOSwKLSAgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwgMHgwMSwgMHg3MCwgMHgyYSwgMHhkMiwgMHgxNywgMHg4MCwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwKLSAgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMH19LAotIHsweDBiMDYsIDY0LCB7IDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0gIDB4MjIsIDB4YzIsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MTQsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGMsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MTQsCi0gIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTYsIDB4YzIsIDB4MTEsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MGYsIDB4YzIsIDB4MDgsIDB4ZjV9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDM1LCAweGY1LCAweDM5LCAweGY1LCAweDUzLCAweGY1LCAweDNhLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDJmLCAweGY1LCAweDJlLCAweGY1LCAweDJkLAotICAweGY1LCAweDJjLCAweGY1LCAweDJiLCAweGY1LCAweDJhLCAweGY1LCAweDI5LCAweGY1LCAweDI4LCAweGY1LCAweDI3LCAweGY1LCAweDI2LCAweGY1LCAweDI1LAotICAweGY1LCAweDI0LCAweGMyLCAweDA1LCAweGMyLCAweDE4LCAweGMyLCAweDFhLCAweGMyLCAweDE3LCAweGMyLCAweDE5LCAweGMyLCAweDE1LCAweGMyLCAweDA0LAotICAweGQyLCAweDEzLCAweGMyLCAweDA2LCAweGMyLCAweDAxLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGQyLCAweGU4fX0sCi0gezB4MGI4NiwgNjQsIHsgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHg3NCwgMHgwZSwKLSAgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMiwgMHgxYiwgMHgxMiwgMHgwZiwgMHg1ZiwgMHhjMiwgMHgxOCwgMHgzMCwgMHgwNCwgMHgwM319LAotIHsweDBiYzYsIDY0LCB7IDB4MTIsIDB4MDUsIDB4NmQsIDB4MzAsIDB4MDQsIDB4MmEsIDB4MzAsIDB4MDYsIDB4MjcsIDB4YzIsIDB4MDYsIDB4ZTUsIDB4MTYsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MTYsCi0gIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MTIsIDB4MGMsIDB4MGIsIDB4ODAsIDB4Y2QsIDB4MzAsCi0gIDB4MTgsIDB4MDcsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MDksIDB4MTUsIDB4ODAsIDB4YzMsIDB4MzAsIDB4MWEsIDB4YzAsIDB4YzIsIDB4MWEsIDB4MTJ9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDBmLCAweGJiLCAweDgwLCAweGI5LCAweDIyLCAweGU1LCAweDMxLCAweDYwLCAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM5LCAweDYwLCAweDU1LCAweDY1LCAweDM1LAotICAweDcwLCAweDRiLCAweGU1LCAweDMzLCAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGMzLCAweDk1LCAweDQ0LCAweDQwLCAweDQzLAotICAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDJkLCAweDkwLCAweDdmLCAweGI3LCAweGU1LAotICAweDM5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDMzLCAweGY1LCAweDM1LCAweDc1LCAweDE2LCAweGZmLCAweDgwfX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxOSwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwgMHgxNiwgMHhmZiwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzOSwgMHgzNSwKLSAgMHhlNCwgMHhmNSwgMHgzMywgMHhlNSwgMHgyYywgMHg2MCwgMHgzMCwgMHgyMCwgMHgwZiwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwKLSAgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNCwgMHhmNSwgMHgyZCwgMHg0MywgMHgzNCwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzMCwgMHg4MH19LAotIHsweDBjODYsIDY0LCB7IDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDUsIDB4NTAsIDB4MGQsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4NDUsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsCi0gIDB4MzQsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDQsIDB4N2YsIDB4MDAsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4NzR9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweDc0LCAweDg2LCAweGYwLCAweDkwLCAweDdmLCAweDk1LAotICAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4LCAweDEwLAotICAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDFmLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweDBmLCAweGYwLCAweGQyLCAweDA0LCAweDIyfX0sCi0gezB4MGQwNiwgNjQsIHsgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywKLSAgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwKLSAgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwKLSAgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5M319LAotIHsweDBkNDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsCi0gIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsCi0gIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwLCAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDBjLCAweDAxLCAweDAxLCAweDAwLCAweDAxLCAweDAyLAotICAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDQzLCAweDAwLCAweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDA3LAotICAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwKLSAgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgxMCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwKLSAgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgwZSwgMHgwMywgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZSwgMHhhMiwgMHgwMCwgMHgwMiwgMHgwZX19LAotIHsweDBlMDYsIDY0LCB7IDB4N2IsIDB4MDAsIDB4MDIsIDB4MGQsIDB4NTcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YzksIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTQsCi0gIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTgsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MWMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ZjAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MjQsCi0gIDB4MDAsIDB4MDIsIDB4MGYsIDB4MTUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MmMsIDB4MDAsIDB4MDIsIDB4MGYsIDB4M2EsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4MDJ9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweDk2LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZlLCAweGYwLCAweDMwLCAweDE3LCAweDA0LCAweDdmLCAweDgwLCAweDgwLCAweDAyLCAweDdmLAotICAweDAwLCAweDkwLCAweDdmLCAweDk3LCAweGVmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGYwLCAweDkwLAotICAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMiwgMHgwNiwgMHhkMCwgMHg4NiwKLSAgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwKLSAgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwKLSAgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4M319LAotIHsweDBlYzYsIDY0LCB7IDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsCi0gIDB4MDAsIDB4ZDIsIDB4MWEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsCi0gIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzR9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDAyLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAotICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLAotICAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLAotICAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2fX0sCi0gezB4MGY0NiwgNjQsIHsgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwKLSAgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwKLSAgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxYiwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwMCwKLSAgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMiwgMHg3NCwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MGUsIDB4MzMsIDB4MTIsIDB4MGYsIDB4OTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzB9fSwKLSB7MHgwZmM2LCAgOSwgeyAweGU3LCAweDAzLCAweDEyLCAweDBmLCAweGE1LCAweDEyLCAweDBjLCAweGIxLCAweDIyfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgwM2Y4Yi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXF3X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDggKzAsMCBAQAotLyoga2V5c3Bhbl91c2ExOXF3X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTl3cV9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE5cXdfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDJkfX0sCi0gezB4MDAyZCwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MTAsIDB4MTksIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4MTQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZGYsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDEwLCAweGMyLCAweDBiLCAweDAyLCAweDAwLCAweGRmLCAweDMwLCAweDBkLCAweDNlLCAweDkwfX0sCi0gezB4MDA2NiwgMTYsIHsgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg3MywgMHgxMiwgMHgwZSwgMHgwZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2YSwgMHg5MH19LAotIHsweDAwNzYsIDE2LCB7IDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MzYsIDB4MjAsIDB4MGIsIDB4MTF9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDYwLCAweDBmLCAweGY1LCAweDI0LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDI5LCAweDdlLCAweDc1LCAweDJhLCAweDQxLCAweDEyLCAweDA5fX0sCi0gezB4MDA5NiwgMTYsIHsgMHgxMCwgMHhjMiwgMHgwZCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg3NSwgMHgyNiwgMHhmZiwgMHg4MCwgMHgzYywgMHg5MCwgMHg3ZiwgMHhjOH19LAotIHsweDAwYTYsIDE2LCB7IDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzUsIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MmMsIDB4OTAsIDB4N2QsIDB4YzB9fSwKLSB7MHgwMGI2LCAxNiwgeyAweGUwLCAweDEzLCAweDkyLCAweDEwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDM2LCAweDIwLCAweDBiLCAweDExLCAweDYwLCAweDBmfX0sCi0gezB4MDBjNiwgMTYsIHsgMHhmNSwgMHgyNCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMSwgMHg3NSwgMHgyOSwgMHg3ZCwgMHg3NSwgMHgyYSwgMHhjMSwgMHgxMiwgMHgwOSwgMHgxMCwgMHhkMn19LAotIHsweDAwZDYsIDE2LCB7IDB4MGQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4NzUsIDB4MjYsIDB4ZmYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDN9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDAyLCAweDAxLCAweDY4LCAweDEyLCAweDBjLCAweGZmLCAweDhmLCAweDM2LCAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweGU1LCAweDM2LCAweGMzfX0sCi0gezB4MDBmNiwgMTYsIHsgMHg5NSwgMHgxMywgMHg1MCwgMHgwZiwgMHgxMiwgMHgwZCwgMHhkZSwgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgxMSwgMHgyMCwgMHhlNywgMHgwM319LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCi0gezB4MDAwMywgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MH19LAotIHsweDAwMTMsIDE2LCB7IDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKLSB7MHgwMDIzLCAxMCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwOSwgMHhjNX19LAotIHsweDAxMDYsIDY0LCB7IDB4MzAsIDB4MTMsIDB4NWYsIDB4YzIsIDB4MTMsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4NTksIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MTEsIDB4MDIsIDB4ZTUsIDB4MTEsCi0gIDB4MzAsIDB4ZTcsIDB4MjQsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MzYsIDB4MjAsIDB4ODUsIDB4MzYsIDB4MjQsCi0gIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MjksIDB4N2UsIDB4NzUsIDB4MmEsIDB4ODAsIDB4MTIsIDB4MGIsIDB4OWEsIDB4ZTUsIDB4MzYsIDB4MjUsCi0gIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ODAsIDB4MmEsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzV9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDM2LCAweDNmLCAweDg1LCAweDM2LCAweDI0LCAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDExLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDI5LAotICAweDdlLCAweDc1LCAweDJhLCAweDgxLCAweDEyLCAweDA5LCAweDM1LCAweGU1LCAweDM2LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDc1LCAweDI2LAotICAweGZmLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDBlLCAweDAzLCAweDAyLCAweDAzLCAweGM0LCAweGU0LCAweGY1LAotICAweDM1LCAweDc0LCAweDQwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgzNSwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwYSwgMHg5NywgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2ZSwKLSAgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgwYywgMHgxYywgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHg0MiwgMHhkMiwgMHgxMSwgMHhkMiwgMHgxMiwgMHg3NX19LAotIHsweDAxYzYsIDY0LCB7IDB4MzYsIDB4MDQsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4YzAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsCi0gIDB4YjQsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4MGIsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4NjAsIDB4MDcsCi0gIDB4YzIsIDB4MTEsIDB4NDMsIDB4MzYsIDB4MDksIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4N2YsIDB4MDMsIDB4YWQsIDB4MzYsIDB4MTIsIDB4MGMsCi0gIDB4ZGEsIDB4NDMsIDB4MWEsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWF9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDE5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLCAweDYwLCAweDQyLCAweDkwLCAweDdlLCAweDEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDE2LCAweDA0LCAweDgwLCAweDAzLCAweDUzLCAweDE2LCAweGZiLCAweGU0LCAweGZmLCAweGFkLCAweDE2LCAweDEyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwOCwgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOCwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgxOCwgMHg3ZiwgMHg1MywKLSAgMHgxOCwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOCwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywKLSAgMHg4ZSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHhiNCwgMHhhZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZSwKLSAgMHgwZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxYSwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgxYX19LAotIHsweDAyODYsIDY0LCB7IDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsCi0gIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWEsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MWEsIDB4ZmQsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4MTMsCi0gIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWF9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDFhLCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDFhLAotICAweGYwLCAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDE5LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDBkLAotICAweGQyLCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDE2LCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDE2fX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMiwgMHgwYywgMHhkYSwgMHhlNCwgMHhmNSwgMHgwZSwgMHhmNSwgMHgwZCwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywKLSAgMHgxNiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwKLSAgMHgxOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNywgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHhkMiwgMHgwYiwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOSwgMHg0MCwgMHg5MCwgMHg3Zn19LAotIHsweDAzNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsCi0gIDB4MGYsIDB4NTMsIDB4MTYsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4NzUsIDB4MGYsIDB4MDEsIDB4ZDIsIDB4MGYsCi0gIDB4OTAsIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4MTYsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsCi0gIDB4ZTQsIDB4ZjUsIDB4MGYsIDB4ZDIsIDB4MGYsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLAotICAweDEzLCAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDEwLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGQyLCAweDBmLCAweDkwLAotICAweDdlLCAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LAotICAweGYwLCAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDBkLCAweGMyLCAweDBlLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDE2fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg3MSwgMHhlNSwgMHgxMiwgMHg2MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgzMCwgMHg4MCwKLSAgMHg2MCwgMHg3NSwgMHgzMCwgMHgwYSwgMHgxMiwgMHgwZCwgMHhkMiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgzNiwgMHg2NSwgMHgwZSwgMHg2MCwgMHgwNywKLSAgMHg4NSwgMHgzNiwgMHgwZSwgMHhkMiwgMHgwZiwgMHg4MCwgMHgxMSwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgzNiwgMHg2NSwKLSAgMHgwOSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgzNiwgMHgwOSwgMHhkMiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNX19LAotIHsweDA0MDYsIDY0LCB7IDB4MzYsIDB4NjUsIDB4MGEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MzYsIDB4MGEsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4ZjUsCi0gIDB4MzYsIDB4NjUsIDB4MGIsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGIsIDB4MzAsIDB4MTEsIDB4MDIsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsCi0gIDB4ZWYsIDB4NTQsIDB4NDAsIDB4ZjUsIDB4MzYsIDB4NjUsIDB4MGMsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGMsIDB4MzAsIDB4MTIsIDB4MDIsIDB4ZDIsCi0gIDB4MGYsIDB4MzAsIDB4MTYsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTB9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDMyLCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDMzLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LAotICAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLAotICAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweDI5LCAweGU1LCAweDI3LCAweDcwLCAweDQwLCAweDMwLCAweDBmLCAweDM5LCAweGU1LAotICAweDEyLCAweDcwLCAweDM1LCAweGMyLCAweDBmLCAweGY1LCAweDM1LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDI1LCAweDM1fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwYSwgMHg1MSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKLSAgMHgwOSwgMHhmMCwgMHg3NSwgMHgxMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxMCwgMHg3NSwgMHgyNywgMHgwMiwgMHgyMiwgMHhlNSwgMHgyNywgMHg2NCwgMHgwMiwKLSAgMHg3MCwgMHgzNiwgMHgzMCwgMHgwNSwgMHgyZiwgMHhjMiwgMHgwNSwgMHhmNSwgMHgzNSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyYn19LAotIHsweDA0YzYsIDY0LCB7IDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGEsIDB4NTEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MzUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzUsIDB4ZTUsIDB4MzUsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsCi0gIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MjcsIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MzMsIDB4NzUsIDB4MzEsIDB4MDMsIDB4MTUsCi0gIDB4MzIsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MzEsIDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzR9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDAwLCAweGZhLCAweDEyLCAweDBhLCAweDUxLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLAotICAweGVmLCAweGYwLCAweDA1LCAweDM1LCAweGU1LCAweDM1LCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LAotICAweGY1LCAweDI3LCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBhLCAweGE5LCAweDA2LCAweDA4LCAweDAwLCAweDA2LCAweDdjLCAweDAxLAotICAweDA2LCAweGU5LCAweDAzLCAweDA1LCAweDRkLCAweDA2LCAweDA1LCAweGY5LCAweDA4LCAweDA1LCAweGVkLCAweDA5LCAweDA1LCAweGQ1LCAweDBhfX0sCi0gezB4MDU0NiwgNjQsIHsgMHgwNSwgMHhlNCwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwNywgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwKLSAgMHg1MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2ZiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwKLSAgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywKLSAgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMH19LAotIHsweDA1ODYsIDY0LCB7IDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsCi0gIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsCi0gIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGIsIDB4MWMsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsCi0gIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLAotICAweDAwLCAweGU1LCAweDI1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGY1LCAweDI1LCAweDAyLCAweDA3LCAweDQwLCAweDEyLCAweDA3LCAweDQ4LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIzLCAweDAyLAotICAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyfX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwKLSAgMHhhMiwgMHgwMSwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3Zn19LAotIHsweDA2NDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCi0gIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsCi0gIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWUsIDB4MjQsIDB4MDJ9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA2LCAweDEyLCAweDBkLCAweGY5LCAweDAyLCAweDA3LAotICAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLAotICAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LAotICAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwKLSAgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHg1NywgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YiwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZCwgMHhmNiwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAotIHsweDA3MDYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsCi0gIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDJ9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LAotICAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLAotICAweGYwLCAweGU0LCAweGY1LCAweDA4LCAweDdmLCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDJmLCAweGY5LCAweGU0LCAweDM0LCAweDAwfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmYSwgMHhlNCwgMHgxMiwgMHgwYSwgMHg5NywgMHgwZiwgMHhiZiwgMHgwOSwgMHhlZSwgMHg3NSwgMHgxMywgMHgwMSwgMHhlNCwgMHhmNSwgMHgxMiwgMHhmNSwgMHgzMCwKLSAgMHhmNSwgMHgxMSwgMHhjMiwgMHgwZiwgMHhjMiwgMHgxMywgMHhjMiwgMHgwZSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMCwgMHhjMiwgMHgwNCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NSwgMHgxOSwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwKLSAgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDA3YzYsIDY0LCB7IDB4MTIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4MTcsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsCi0gIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4N2YsCi0gIDB4MDEsIDB4MTIsIDB4MGQsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTZ9fSwKLSB7MHgwODA2LCA2NCwgeyAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDEyLCAweDBlLCAweDBmLCAweDhmLCAweDE1LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDQ0LCAweDgwLAotICAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweGU1LCAweDE1LCAweDMwLCAweGU3LCAweDA0LCAweGMyLCAweDA4LCAweDgwLCAweDAyLCAweGQyLCAweDA4LCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDFhLCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweGQyLCAweDAzLAotICAweDIyLCAweGQyLCAweDE1LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDEyLCAweDBkLCAweGY5LCAweGQyLCAweGU4fX0sCi0gezB4MDg0NiwgNjQsIHsgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxNiwgMHgxMiwgMHgwZCwKLSAgMHgyNCwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgyOCwgMHhmNSwgMHgzMCwgMHhjMiwgMHgwOSwgMHhmNSwgMHgyMywgMHhjMiwgMHgwMywgMHg5MH19LAotIHsweDA4ODYsIDY0LCB7IDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MzQsIDB4NjAsIDB4NDgsIDB4MzAsIDB4MDMsIDB4MDUsIDB4ZDIsIDB4MTYsCi0gIDB4MTIsIDB4MDAsIDB4NDYsIDB4ZTUsIDB4MGYsIDB4NjAsIDB4MjIsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MjYsIDB4OTAsIDB4N2YsIDB4ZDgsCi0gIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4N2YsIDB4MjAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4ODAsCi0gIDB4MWEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ODAsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTJ9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LAotICAweDM0LCAweDgwLCAweDIwLCAweDMwLCAweDAzLCAweDA3LCAweGMyLCAweDE2LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDE2LCAweGU1LCAweDBmLCAweDcwLAotICAweDEyLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDMwLCAweGUyLCAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLAotICAweDk2LCAweGVmLCAweGYwLCAweDMwLCAweDAyLCAweDA3LCAweGMyLCAweDAyLCAweDEyLCAweDA1LCAweDJhLCAweDgwLCAweDg2LCAweDMwLCAweDBhfX0sCi0gezB4MDkwNiwgNjQsIHsgMHg4MywgMHhjMiwgMHgwYSwgMHgxMiwgMHgwYiwgMHg1ZCwgMHgwMiwgMHgwOCwgMHg4YSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwKLSAgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMn19LAotIHsweDA5NDYsIDY0LCB7IDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsCi0gIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MjQsIDB4ZTUsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTUsCi0gIDB4MjksIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWZ9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDI0LCAweGU1LCAweDJhLCAweGY1LCAweDgyLCAweGU1LCAweDI5LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLAotICAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAotICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAotICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDc4fX0sCi0gezB4MDljNiwgNjQsIHsgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzOSwgMHgwMiwgMHgwYSwgMHgwYywgMHgwMiwgMHgwOCwgMHgzOCwgMHhlNCwgMHg5MywgMHhhMywKLSAgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwKLSAgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGQsIDB4OGIsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsCi0gIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsCi0gIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsCi0gIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODJ9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLAotICAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLAotICAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLAotICAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1fX0sCi0gezB4MGE4NiwgNjQsIHsgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwKLSAgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwKLSAgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwKLSAgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMn19LAotIHsweDBhYzYsIDY0LCB7IDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsCi0gIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4MDMsIDB4ZmYsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsCi0gIDB4MzAsIDB4MDgsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDk4LCAweDc0LCAweDIwLCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGRmLCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweDhmLCAweDM1LCAweGU0LCAweGY1LCAweDM2LCAweDc1LCAweDM3LCAweGZmLCAweDc1LCAweDM4LCAweDE5LAotICAweDc1LCAweDM5LCAweDg2LCAweGFiLCAweDM3LCAweGFhLCAweDM4LCAweGE5LCAweDM5LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBhLCAweDZhLCAweGI0LAotICAweDAzLCAweDFkLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweGVmLCAweGI1LCAweDM1LCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweDUxLCAweDdlfX0sCi0gezB4MGI0NiwgNjQsIHsgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgzNywgMHhmZiwgMHhmNSwgMHgzOCwgMHg4OSwgMHgzOSwgMHg4MCwgMHhkNCwgMHg3YiwKLSAgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgzNSwgMHgxMiwgMHgwYSwgMHhjZiwgMHgyMCwKLSAgMHgwOCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwKLSAgMHgxMiwgMHgwOSwgMHhiNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwZSwgMHgzMCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZH19LAotIHsweDBiODYsIDY0LCB7IDB4YmMsIDB4ODAsIDB4MDYsIDB4MTIsIDB4MGQsIDB4NDksIDB4ZWYsIDB4NjAsIDB4ZTEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsCi0gIDB4MDcsIDB4NDgsIDB4MjIsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWUsIDB4MjksIDB4NzAsIDB4MDIsIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsCi0gIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWMsIDB4MjksIDB4NzAsIDB4MDIsCi0gIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MjQsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MDd9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweDgwLCAweGNkLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAotICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDBhfX0sCi0gezB4MGMwNiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKLSAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwfX0sCi0gezB4MGNjNiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZCwgMHhlYSwgMHg4ZiwgMHgzNywgMHgxMiwgMHgwZH19LAotIHsweDBkMDYsIDY0LCB7IDB4ZWEsIDB4OGYsIDB4MzgsIDB4ZTUsIDB4MzcsIDB4NjUsIDB4MzgsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4NjUsCi0gIDB4MzgsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzgsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MzcsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCi0gIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTYsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCi0gIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDA0LCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDM2LCAweDEyLCAweDA3LCAweDQ4LCAweDEyLCAweDBlLCAweDI3LCAweGVmLCAweDMwLAotICAweGU2LCAweDBiLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDM2LCAweDYwLCAweGYxLCAweDdmLCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweGNmLAotICAweDdmLCAweDAwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE2LCAweDQ0LCAweDgwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHgyMiwgMHgwNSwgMHgyYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgzMSwgMHgwMywgMHgwMCwgMHgwMCwKLSAgMHhjMSwgMHg4NiwgMHhjMSwgMHgwMiwgMHhjMSwgMHgwYSwgMHhjMSwgMHgwMSwgMHhjMSwgMHgwNywgMHgwMSwgMHgyNywgMHgwMCwgMHgwMCwgMHg4ZSwgMHgzNiwKLSAgMHg4ZiwgMHgzNywgMHhlNSwgMHgzNywgMHgxNSwgMHgzNywgMHhhZSwgMHgzNiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgzNiwgMHg0ZSwgMHg2MCwgMHgwNSwgMHgxMiwKLSAgMHgwOSwgMHhhNCwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZX19LAotIHsweDBkYzYsIDY0LCB7IDB4MDAsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsCi0gIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZDIsCi0gIDB4MDEsIDB4MjIsIDB4YzIsIDB4MDEsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGIsIDB4Y2UsIDB4MDAsIDB4MDIsIDB4MGV9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDBiLCAweGY1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgMCwJezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5d19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1ZDYxOTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDYgKzAsMCBAQAotLyoga2V5c3Bhbl91c2ExOXdfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2ExOXdfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTl3X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwZCwgMHg1Y319LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgxNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MGYsIDB4MTgsIDB4MTIsIDB4MGQsIDB4MzgsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4MTQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBmLCAweGMyLCAweDBhLCAweDgwLCAweDc3LCAweDMwLCAweDBjLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGYsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MWMsIDB4MjAsIDB4MGEsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDIzLCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDI3LCAweDdlLCAweDc1LCAweDI4LCAweDQxLCAweDEyLCAweDA4LCAweDAxfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwYywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MGQsIDB4MzgsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGZ9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDFjLCAweDIwLCAweDBhLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDIzLCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgyNywgMHg3ZCwgMHg3NSwgMHgyOCwgMHhjMSwgMHgxMiwgMHgwOCwgMHgwMSwgMHhkMiwgMHgwYywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NWUsIDB4MTIsIDB4MGMsIDB4NDEsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDFjLCAweDEyLCAweDBkLCAweDQ0LCAweDhmLCAweDExLCAweGU1LCAweDFjLCAweGMzLCAweDk1LCAweDEzLCAweDUwLCAweDBmLCAweDEyLCAweDBkLCAweDIwfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgxMSwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgxMiwgMHg1YywgMHhjMiwgMHgxMiwgMHhlNSwgMHgxY319LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwOCwgMHhiNn19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTYsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MTEsIDB4MDIsIDB4ZTUsIDB4MTEsIDB4MzAsIDB4ZTcsIDB4MjQsIDB4ZTUsIDB4MWMsIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MWMsIDB4MjAsIDB4ODUsIDB4MWMsIDB4MjMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MjcsIDB4N2UsCi0gIDB4NzUsIDB4MjgsIDB4ODAsIDB4MTIsIDB4MGEsIDB4ODYsIDB4ZTUsIDB4MWMsIDB4MjUsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ODAsIDB4MjcsCi0gIDB4ZTUsIDB4MWMsIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MWMsIDB4M2YsIDB4ODUsIDB4MWMsIDB4MjMsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDgwLCAweGU1LCAweDExLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDI3LCAweDdlLCAweDc1LCAweDI4LCAweDgxLCAweDEyLCAweDA4LCAweDI2LAotICAweGU1LCAweDFjLCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDBkLAotICAweDAzLCAweDAyLCAweDAzLCAweGJhLCAweGU0LCAweGY1LCAweDFiLCAweDc0LCAweDQwLCAweDI1LCAweDFiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLAotICAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDFiLCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5LCAweDAwLCAweDI0fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwYSwgMHgwZCwgMHgwNSwgMHgxYiwgMHhlNSwgMHgxYiwgMHhiNCwgMHgyMCwgMHhkNywKLSAgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2ZSwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxYywKLSAgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHg1ZSwgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHg4NCwKLSAgMHhkMiwgMHgxMCwgMHhkMiwgMHgxMSwgMHg3NSwgMHgxYywgMHgwNCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwNSwgMHhjMiwgMHgxMX19LAotIHsweDAxYzYsIDY0LCB7IDB4NDMsIDB4MWMsIDB4YzAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4NDMsIDB4MWMsIDB4MGIsIDB4ODAsIDB4MTAsCi0gIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4NjAsIDB4MDcsIDB4YzIsIDB4MTAsIDB4NDMsIDB4MWMsIDB4MDksIDB4ODAsIDB4MDMsIDB4NDMsIDB4MWMsIDB4MDIsCi0gIDB4N2YsIDB4MDMsIDB4YWQsIDB4MWMsIDB4MTIsIDB4MGMsIDB4MWMsIDB4NDMsIDB4MTksIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDR9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDE4LAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE4LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLAotICAweDYwLCAweDQyLCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE1LCAweDA0LCAweDgwLCAweDAzLCAweDUzLCAweDE1LCAweGZiLAotICAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweDkwLCAweDdlLCAweDA4LCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE3fX0sCi0gezB4MDI0NiwgNjQsIHsgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgxNywgMHg3ZiwgMHg1MywgMHgxNywgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxNywKLSAgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHhkMCwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHhmNiwgMHhhZiwKLSAgMHgxNywgMHgxMiwgMHgwYiwgMHhhYSwgMHg5MCwgMHg3ZSwgMHgwZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwKLSAgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgxOSwgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMH19LAotIHsweDAyODYsIDY0LCB7IDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTksIDB4MDIsIDB4ODAsCi0gIDB4MDMsIDB4NTMsIDB4MTksIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4YTMsCi0gIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTksIDB4MTAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MTksIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDE4LCAweGJmLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDBkLCAweDE0LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDE1LAotICAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweGU0LCAweGY1LCAweDBlLCAweGY1LCAweDBkLCAweGQyLCAweDBlfX0sCi0gezB4MDMwNiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgxNSwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHg3NSwKLSAgMHgwZCwgMHgwMSwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwKLSAgMHhlNSwgMHgxNiwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwgMHgwYSwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwKLSAgMHg0MywgMHgxOCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMH19LAotIHsweDAzNDYsIDY0LCB7IDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4MTUsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsCi0gIDB4MWMsIDB4NzUsIDB4MGYsIDB4MDEsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4MTUsIDB4MDEsIDB4ZTQsCi0gIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4ZTQsIDB4ZjUsIDB4MGYsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsCi0gIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjB9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDEyLCAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDEwLCAweDAxLAotICAweGU0LCAweGY1LCAweDEyLCAweGQyLCAweDBlLCAweDkwLCAweDdlLCAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLAotICAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLCAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDBjLCAweGMyLCAweDBkLCAweGU0LCAweDkwLAotICAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDE1LCAweDcxLCAweGU1LCAweDEyLCAweDYwLCAweDAyLCAweDE1LCAweDEyLCAweGU1LCAweDJlLCAweGQzfX0sCi0gezB4MDNjNiwgNjQsIHsgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgyZSwgMHg4MCwgMHg2MCwgMHg3NSwgMHgyZSwgMHgwYSwgMHgxMiwgMHgwZCwgMHgxNCwgMHhlZiwgMHg1NCwgMHgwMSwKLSAgMHhmNSwgMHgxYywgMHg2NSwgMHgwZSwgMHg2MCwgMHgwNywgMHg4NSwgMHgxYywgMHgwZSwgMHhkMiwgMHgwZSwgMHg4MCwgMHgxMSwgMHgxMiwgMHgwZCwgMHg1MCwKLSAgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwOSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxYywgMHgwOSwgMHhkMiwgMHgwZSwgMHgxMiwgMHgwZCwKLSAgMHg1MCwgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxYywgMHgwYSwgMHhkMiwgMHgwZX19LAotIHsweDA0MDYsIDY0LCB7IDB4MTIsIDB4MGQsIDB4NTAsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4ZjUsIDB4MWMsIDB4NjUsIDB4MGIsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MWMsIDB4MGIsIDB4MzAsIDB4MTAsCi0gIDB4MDIsIDB4ZDIsIDB4MGUsIDB4MTIsIDB4MGQsIDB4NTAsIDB4ZWYsIDB4NTQsIDB4NDAsIDB4ZjUsIDB4MWMsIDB4NjUsIDB4MGMsIDB4NjAsIDB4MDgsIDB4ODUsCi0gIDB4MWMsIDB4MGMsIDB4MzAsIDB4MTEsIDB4MDIsIDB4ZDIsIDB4MGUsIDB4MzAsIDB4MTUsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsCi0gIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MzAsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjV9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDMxLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweDFmLCAweGU1LCAweDI1LAotICAweDcwLCAweDQwLCAweDMwLCAweDBlLCAweDM5LCAweGU1LCAweDEyLCAweDcwLCAweDM1LCAweGMyLCAweDBlLCAweGY1LCAweDFiLCAweDdlLCAweDAwLCAweDdiLAotICAweDAwLCAweDc0LCAweDA4LCAweDI1LCAweDFiLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDA5LCAweGM3LCAweGZmLCAweDc0fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg4MCwgMHgyNSwgMHgxYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxYiwgMHhlNSwgMHgxYiwgMHhiNCwKLSAgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgxMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxMCwgMHg3NSwgMHgyNSwKLSAgMHgwMiwgMHgyMiwgMHhlNSwgMHgyNSwgMHg2NCwgMHgwMiwgMHg3MCwgMHgzNiwgMHgzMCwgMHgwNSwgMHgyZiwgMHhjMiwgMHgwNSwgMHhmNSwgMHgxYiwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyOSwgMHgyNSwgMHgxYiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwOSwgMHhjN319LAotIHsweDA0YzYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MWIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MWIsIDB4ZTUsCi0gIDB4MWIsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MjUsIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MzAsCi0gIDB4NjAsIDB4MzMsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTUsIDB4MzAsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmYsCi0gIDB4MjUsIDB4MWIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MDksIDB4YzcsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MWJ9fSwKLSB7MHgwNTA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LCAweDAzLCAweGRiLCAweDkwLAotICAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDI1LCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBhLCAweDFmLAotICAweDA1LCAweGY2LCAweDAwLCAweDA2LCAweDZhLCAweDAxLCAweDA2LCAweGQ3LCAweDAzLCAweDA1LCAweDQzLCAweDA2LCAweDA1LCAweGU5LCAweDA4LCAweDA1LAotICAweGUzLCAweDA5LCAweDA1LCAweGNiLCAweDBhLCAweDA1LCAweGRhLCAweDBiLCAweDAwLCAweDAwLCAweDA3LCAweDI3LCAweDkwLCAweDdmLCAweGVifX0sCi0gezB4MDU0NiwgNjQsIHsgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg1MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2ZiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwKLSAgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwKLSAgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwKLSAgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYX19LAotIHsweDA1ODYsIDY0LCB7IDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MTIsCi0gIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4NDUsIDB4ZWEsCi0gIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDI0LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLAotICAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDI0LCAweDAyLCAweDA3LCAweDJlLCAweDEyLCAweDA3LCAweDM2LCAweDAyLAotICAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLAotICAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyfX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwMSwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNH19LAotIHsweDA2NDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsCi0gIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDYsIDB4MTIsIDB4MGQsIDB4NjMsIDB4MDIsIDB4MDcsIDB4MmV9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLAotICAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LAotICAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLAotICAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NywKLSAgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwKLSAgMHhiNCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZCwgMHg2MCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwKLSAgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZn19LAotIHsweDA3MDYsIDY0LCB7IDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsCi0gIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE4LAotICAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweGU0LCAweGY1LAotICAweDA4LCAweDdmLCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDJmLCAweGY5LCAweGU0LCAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBhLAotICAweDBkLCAweDBmLCAweGJmLCAweDA5LCAweGVlLCAweDc1LCAweDEzLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGY1LCAweDJlLCAweGY1LCAweDExfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhjMiwgMHgwZSwgMHhjMiwgMHgxMiwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwZiwgMHhjMiwgMHgwNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHg3NSwgMHgxOCwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgwYywKLSAgMHgxYywgMHg3ZiwgMHgxMCwgMHg4ZiwgMHgxNywgMHgxMiwgMHgwYiwgMHhhYSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwKLSAgMHg4ZiwgMHgxNiwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxY319LAotIHsweDA3YzYsIDY0LCB7IDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MGMsIDB4MWMsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGMsCi0gIDB4YWMsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzUsIDB4MTksCi0gIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLAotICAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLAotICAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgyMywgMHhlNSwgMHgyOCwgMHhmNSwgMHg4MiwKLSAgMHhlNSwgMHgyNywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwKLSAgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwKLSAgMHgyMywgMHhlNSwgMHgyOCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyNywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMH19LAotIHsweDA4ODYsIDY0LCB7IDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NzQsIDB4MDAsCi0gIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4NzgsCi0gIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4MzEsIDB4MDIsIDB4MDgsIDB4ZmQsIDB4MDIsIDB4MDksIDB4NDIsIDB4ZTR9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LAotICAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLAotICAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLAotICAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDBjLCAweGNkLCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwKLSAgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwKLSAgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhkMiwgMHgxNCwgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsIDB4MGQsIDB4NjMsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWUsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MTUsIDB4MTIsIDB4MGMsIDB4NjYsIDB4YzIsIDB4MDIsIDB4ZTQsIDB4ZjV9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDI2LCAweGY1LCAweDJlLCAweGMyLCAweDA4LCAweGMyLCAweDAzLCAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LAotICAweDFhLCAweDYwLCAweDEwLCAweDMwLCAweDAzLCAweDA1LCAweGQyLCAweDE1LCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LAotICAweDFhLCAweDgwLCAweDA4LCAweDMwLCAweDAzLCAweDA1LCAweGMyLCAweDE1LCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDAyLCAweDA3LCAweGMyLCAweDAyLAotICAweDEyLCAweDA1LCAweDIwLCAweDgwLCAweGQ2LCAweDMwLCAweDA5LCAweGQzLCAweGMyLCAweDA5LCAweDEyLCAweDBhLCAweGJhLCAweDgwLCAweGNjfX0sCi0gezB4MDljNiwgNjQsIHsgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwKLSAgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwKLSAgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwKLSAgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNX19LAotIHsweDBhMDYsIDY0LCB7IDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsCi0gIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsCi0gIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsCi0gIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGZ9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweDFiLCAweGU0LCAweGY1LCAweDFjLCAweDc1LCAweDFkLCAweGZmLCAweDc1LCAweDFlLCAweDE5LCAweDc1LCAweDFmLCAweDg2LCAweGFiLCAweDFkLCAweGFhLCAweDFlLAotICAweGE5LCAweDFmLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA5LCAweGUwLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDFjLCAweDA1LCAweDFjLCAweGVmLAotICAweGI1LCAweDFiLCAweDAxLCAweDIyLCAweDEyLCAweDA5LCAweGM3LCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LAotICAweDFkLCAweGZmLCAweGY1LCAweDFlLCAweDg5LCAweDFmLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHgwNSwgMHgyOCwgMHhlNSwgMHgyOCwgMHhhZSwgMHgyNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyNywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxMSwKLSAgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHgwNSwgMHgyOCwgMHhlNSwgMHgyOCwgMHhhYywgMHgyNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyNywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2MCwgMHgwNywgMHgxMiwgMHgwZCwgMHg0NCwgMHg4ZiwgMHgxMSwKLSAgMHg4MCwgMHhjZCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgxYiwgMHgxMiwgMHgwMCwgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MDgsIDB4YTYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MGUsIDB4MzAsIDB4MDEsIDB4MDUsCi0gIDB4MTIsIDB4MGMsIDB4ZmUsIDB4ODAsIDB4MDYsIDB4MTIsIDB4MGMsIDB4OGIsIDB4ZWYsIDB4NjAsIDB4ZTEsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MjIsIDB4YzAsCi0gIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsCi0gIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAotICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAotICAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLAotICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhkMiwgMHgwOSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwKLSAgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDBiODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTN9fSwKLSB7MHgwYmM2LCA2NCwgeyAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0fX0sCi0gezB4MGMwNiwgNjQsIHsgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWUsIDB4ZTUsIDB4MWQsIDB4NjUsIDB4MWUsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWQsIDB4ZTUsCi0gIDB4MWQsIDB4NjUsIDB4MWUsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWUsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWQsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTUsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsCi0gIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGMsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjB9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDFjLCAweDEyLCAweDA3LCAweDM2LCAweDEyLCAweDBkLCAweDUwLAotICAweGVmLCAweDMwLCAweGU2LCAweDBiLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDFjLCAweDYwLCAweGYxLCAweDdmLCAweDAxLCAweDIyLCAweDEyLAotICAweDAwLCAweDAzLCAweDdmLCAweDAwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE1LCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLAotICAweDFjLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE1fX0sCi0gezB4MGNjNiwgNjQsIHsgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxYywgMHgyMiwgMHgwNSwgMHgyOSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyZiwgMHgwMywKLSAgMHgwMCwgMHgwMCwgMHhjMSwgMHg4NiwgMHhjMSwgMHgwMiwgMHhjMSwgMHgwOSwgMHhjMSwgMHgwMSwgMHhjMSwgMHgwNywgMHgwMSwgMHgyNSwgMHgwMCwgMHgwMCwKLSAgMHg4ZSwgMHgxYywgMHg4ZiwgMHgxZCwgMHhlNSwgMHgxZCwgMHgxNSwgMHgxZCwgMHhhZSwgMHgxYywgMHg3MCwgMHgwMiwgMHgxNSwgMHgxYywgMHg0ZSwgMHg2MCwKLSAgMHgwNSwgMHgxMiwgMHgwOCwgMHg5NSwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3Zn19LAotIHsweDBkMDYsIDY0LCB7IDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGMsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsCi0gIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweGQyLCAweDAxLCAweDIyLCAweGMyLCAweDAxLCAweDIyLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBkYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MGV9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBhLCAweGU2LCAweDAwLCAweDAyLCAweDBiLCAweDM3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOF9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjhfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ4YjBhMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDY2ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMjhfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2EyOF9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAyNiwgMTAsIHsgMHgxMiwgMHgxNywgMHhkYiwgMHgxMiwgMHgxOCwgMHhiNSwgMHgxMiwgMHgxNCwgMHhjMywgMHgyMn19LAotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWR9fSwKLSB7MHgwMDFkLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDAwNiwgMTYsIHsgMHg4ZSwgMHgxMiwgMHg4ZiwgMHgxMywgMHhlNSwgMHgxMywgMHgxNSwgMHgxMywgMHhhZSwgMHgxMiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHg0ZSwgMHg2MH19LAotIHsweDAwMTYsICA3LCB7IDB4MDUsIDB4MTIsIDB4MTgsIDB4YTQsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKLSB7MHgwMDAzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAotIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YTIsIDB4MTcsIDB4OTIsIDB4OWIsIDB4ODUsIDB4NDYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDFmLCAweDMwLCAweGMxLCAweDBlLCAweDMwLCAweDEyLCAweDA3LCAweGEyLCAweDE4LCAweDkyLCAweGMzLCAweDg1LCAweDQ3LCAweGMxLCAweGMyLCAweGMxfX0sCi0gezB4MDA3NiwgMTYsIHsgMHhkMiwgMHgyMCwgMHgyMCwgMHgxZiwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MiwgMHhjMiwgMHgxZiwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwMiwgMHg2N319LAotIHsweDAwODYsIDE2LCB7IDB4MjAsIDB4MTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzgsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MTMsIDB4MzZ9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDIwLCAweDBiLCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDI5LCAweDMwLCAweDFiLCAweDEyfX0sCi0gezB4MDBhNiwgMTYsIHsgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDAwYjYsIDE2LCB7IDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwMGM2LCAxNiwgeyAweGUwLCAweGY1LCAweDQ2LCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjMiwgMHgwMywgMHgzMCwgMHgxNSwgMHgwYywgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiZiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNH19LAotIHsweDAwZTYsIDE2LCB7IDB4NDAsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4Yzl9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAotIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDNiLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgxNiwgMHgzZH19LAotIHsweDAxMDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4MjAsIDB4MzAsIDB4MWIsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsCi0gIDB4MTMsIDB4OTIsIDB4MTcsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4NzUsIDB4NGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDIsCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsCi0gIDB4NDAsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIxLCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDdjLCAweDkwLAotICAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDAxLCAweGQ4LCAweDIwLCAweDBiLCAweDcyLCAweDIwLAotICAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDY1LCAweDMwLCAweDFiLCAweDEwLCAweDkwLAotICAweDdlLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDRhLCAweDAzLCAweDgwLCAweDA5fX0sCi0gezB4MDE4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHg0YSwgMHgwMiwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxNywgMHg5MCwKLSAgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMywgMHgyMCwgMHgxNSwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwKLSAgMHhiZiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHg0MCwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YX19LAotIHsweDAxYzYsIDY0LCB7IDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4MDIsIDB4MDQsCi0gIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MjEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjIsIDB4MjAsCi0gIDB4MGIsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NmYsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWUsCi0gIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTN9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDkyLCAweDliLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLAotICAweGY1LCAweDk5LCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLAotICAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDE1LCAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLAotICAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlfX0sCi0gezB4MDI0NiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMiwgMHgxMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgyMSwgMHgwMiwgMHgwNCwgMHg0MCwKLSAgMHgyMCwgMHgxMSwgMHgwMywgMHgwMiwgMHgwMywgMHgxOSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgzZSwgMHgyMCwgMHgxMywgMHgzNiwKLSAgMHgyMCwgMHgwYiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHgyOSwgMHgzMCwgMHgxYn19LAotIHsweDAyODYsIDY0LCB7IDB4MTIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsCi0gIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MGMsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MTEsIDB4MDJ9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LAotICAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhLAotICAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDIwLCAweDMwLCAweDFiLCAweDExLCAweDkwLCAweDdlLCAweDQxLAotICAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGEzLCAweGUwLCAweGY1LCAweDQ2LCAweDc1LCAweDRhLCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweDc1fX0sCi0gezB4MDMwNiwgNjQsIHsgMHg0YSwgMHgwMiwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg0NiwgMHgwMiwgMHgwNCwgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMSwgMHhjMiwgMHgxMSwgMHgwMiwKLSAgMHgwNCwgMHg0MCwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwKLSAgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMSwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg3YywKLSAgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHgzMCwgMHgxMywgMHgwMywgMHgwMiwgMHgwMywgMHhiOSwgMHgyMCwgMHgwYn19LAotIHsweDAzNDYsIDY0LCB7IDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NjUsIDB4MzAsIDB4MWIsIDB4MTAsCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDMsIDB4ODAsIDB4MDksCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDIsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NDAsIDB4MTcsCi0gIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTV9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLAotICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFlLCAweDRhLCAweDA1LCAweDRhLAotICAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LCAweGQyLCAweDExLCAweDAyLAotICAweDA0LCAweDQwLCAweDc1LCAweDRhLCAweDAxLCAweGMyLCAweDIxLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDA0fX0sCi0gezB4MDNjNiwgNjQsIHsgMHgzZSwgMHgyMCwgMHgwYiwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHg2YSwgMHgzMCwgMHgxYiwgMHgxMiwKLSAgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHg5YiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMH19LAotIHsweDA0MDYsIDY0LCB7IDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MzUsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWIsIDB4MTIsCi0gIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MjEsIDB4ZDIsIDB4MjUsIDB4MjAsIDB4MjAsIDB4MDMsIDB4MDJ9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDA4LCAweDBjLCAweGMyLCAweDIwLCAweDIwLCAweDA0LCAweDAzLCAweDAyLCAweDA2LCAweDMxLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA1LCAweDAyLCAweGU1LAotICAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDNlLCAweDIwLCAweDE0LCAweDM2LCAweDIwLCAweDBkLCAweDMzLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAotICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDI5LCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLAotICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRifX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwKLSAgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwgMHgzMCwgMHgxNiwgMHgwYywgMHhjMiwgMHgxNiwKLSAgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwKLSAgMHgwNSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMH19LAotIHsweDA0YzYsIDY0LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTYsIDB4MjAsIDB4MTQsIDB4MmQsIDB4MjAsIDB4MGQsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsCi0gIDB4MjAsIDB4MWUsIDB4MjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4ZjUsCi0gIDB4NDcsIDB4NzUsIDB4NGIsIDB4MDMsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDIsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDcsCi0gIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDdkLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweGFhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIyLCAweGMyLCAweDA2LAotICAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE2LAotICAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDIwLCAweDBkLCAweDcyLCAweDIwLCAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAotICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDY1LCAweDMwLCAweDFkLCAweDEwLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhjMywgMHhhMywgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwgMHg0YiwgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwKLSAgMHg0YiwgMHgwMiwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg0MCwgMHgxNywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwKLSAgMHgyMCwgMHgxNiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwOCwgMHgwYSwKLSAgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZH19LAotIHsweDA1ODYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MjIsCi0gIDB4MDIsIDB4MDgsIDB4MGEsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDYsIDB4MmMsIDB4MjAsIDB4MGQsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsCi0gIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NmYsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweGMzLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LAotICAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGMxLCAweGU1LCAweDRiLCAweGMzLCAweDk1LAotICAweDdkLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGNiLCAweGU0LCAweGYwLCAweGMyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLAotICAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LCAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRifX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwKLSAgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywKLSAgMHhkMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwNiwgMHhlMywKLSAgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgzZSwgMHgyMCwgMHgxNCwgMHgzNiwgMHgyMCwgMHgwZCwgMHgzMywgMHg5MCwgMHg3Zn19LAotIHsweDA2NDYsIDY0LCB7IDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4MjksIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCi0gIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4MDIsIDB4MDgsIDB4MGEsCi0gIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MGN9fSwKLSB7MHgwNjg2LCA2NCwgeyAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLAotICAweGUxLCAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLAotICAweGUwLCAweDEzLCAweDkyLCAweDE2LCAweDIwLCAweDE0LCAweDJkLCAweDIwLCAweDBkLCAweDJhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LAotICAweDAzLCAweDIwLCAweDFlLCAweDIwLCAweDMwLCAweDFkLCAweDExLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGEzfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhlMCwgMHhmNSwgMHg0NywgMHg3NSwgMHg0YiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMiwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwKLSAgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwKLSAgMHg3ZCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNywgMHg4YiwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMiwgMHhjMiwKLSAgMHgwNiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxM319LAotIHsweDA3MDYsIDY0LCB7IDB4OTIsIDB4MTYsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ODMsIDB4MjAsIDB4MGQsIDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWEsCi0gIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NjUsIDB4MzAsIDB4MWQsIDB4MTAsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4YzMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4YzEsIDB4NzUsIDB4NGIsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4YzEsCi0gIDB4NzUsIDB4NGIsIDB4MDIsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGQyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLCAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LAotICAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLAotICAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LCAweGQyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDc1LCAweDRiLCAweDAxfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwOCwgMHgwOCwgMHgyMCwgMHgwZCwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YSwKLSAgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHg2YSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwKLSAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHhjMywgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwKLSAgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhjMSwgMHhlNSwgMHg0Yn19LAotIHsweDA3YzYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MzUsIDB4YzIsIDB4MTYsCi0gIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCi0gIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTJ9fSwKLSB7MHgwODA2LCA2NCwgeyAweDgwLCAweDAyLCAweGMyLCAweDIyLCAweGQyLCAweDI1LCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA5LCAweDNlLCAweGMyLCAweDk4LCAweDIwLCAweDAxLCAweDAzLAotICAweDAyLCAweDA4LCAweGIwLCAweDIwLCAweDIzLCAweDI3LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDFiLCAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLAotICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5fX0sCi0gezB4MDg0NiwgNjQsIHsgMHhlZiwgMHhiNSwgMHg1OCwgMHgwNCwgMHhkMiwgMHgwYiwgMHg4MCwgMHgyYywgMHhlZiwgMHhiNSwgMHg1NywgMHgwNCwgMHhjMiwgMHgwYiwgMHg4MCwgMHgyNCwgMHhhZSwKLSAgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgzMCwKLSAgMHgxYiwgMHgxMSwgMHhhZSwgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywKLSAgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwOSwgMHgzY319LAotIHsweDA4ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTUsIDB4ZTUsIDB4NDgsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDksIDB4M2MsCi0gIDB4MTUsIDB4NDgsIDB4MTUsIDB4NDgsIDB4MDUsIDB4MmQsIDB4ZDIsIDB4MGMsIDB4MDIsIDB4MDksIDB4M2MsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4NDgsCi0gIDB4ZjAsIDB4NzUsIDB4NDgsIDB4MDAsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDksIDB4M2MsIDB4MjAsIDB4MjMsIDB4MjcsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsCi0gIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MWJ9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LAotICAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5LCAweGVmLCAweGI1LCAweDU4LCAweDA0LCAweGQyLCAweDBiLCAweDgwLCAweDJjLCAweGVmLCAweGI1LCAweDU3LAotICAweDA0LCAweGMyLCAweDBiLCAweDgwLCAweDI0LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdlLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDMwLCAweDFiLCAweDExLCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwKLSAgMHg0MCwgMHgyMywgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNSwKLSAgMHgxNSwgMHg0OCwgMHgxNSwgMHg0OCwgMHgwNSwgMHgyZCwgMHhkMiwgMHgwYywgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHg0OCwgMHhmMCwKLSAgMHg3NSwgMHg0OCwgMHgwMCwgMHhkMiwgMHgwMSwgMHhkMiwgMHgyNSwgMHgyMCwgMHhjMCwgMHgwMywgMHgwMiwgMHgwYSwgMHg3MCwgMHhjMiwgMHhjMH19LAotIHsweDA5NDYsIDY0LCB7IDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZTIsIDB4MjAsIDB4MjQsIDB4MjcsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzEsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4NDksIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksCi0gIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsCi0gIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGR9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDgwLCAweDI0LCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDMwLCAweDFkLCAweDExLCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLAotICAweGY1LCAweDgzLCAweGU1LCAweGMwLCAweGYwLCAweGQyLCAweDFhLCAweGU1LCAweDQ5LCAweGMzLCAweDk1LCAweDZjLCAweDUwLCAweDAzLCAweDAyLCAweDBhLAotICAweDZlLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDMwLCAweGUxLCAweDE1LCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYSwgMHg2ZSwgMHgxNSwgMHg0OSwgMHgxNSwgMHg0OSwgMHgwNSwgMHgzOSwgMHhkMiwgMHgwZSwgMHgwMiwgMHgwYSwgMHg2ZSwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHhlNSwgMHg0OSwgMHhmMCwgMHg3NSwgMHg0OSwgMHgwMCwgMHhjMiwgMHgwMiwgMHgwMiwgMHgwYSwgMHg2ZSwgMHgyMCwgMHgyNCwgMHgyNywgMHhhZSwgMHg0OSwKLSAgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMSwgMHhmMCwgMHgzMCwKLSAgMHgxZCwgMHg0OSwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNX19LAotIHsweDBhMDYsIDY0LCB7IDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsCi0gIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGQsIDB4ODAsIDB4MjQsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ZDIsIDB4MWEsIDB4ZTUsIDB4NDl9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGMzLCAweDk1LCAweDZjLCAweDQwLCAweDIzLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDMwLCAweGUxLCAweDExLCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLAotICAweDQwLCAweDE1LCAweDE1LCAweDQ5LCAweDE1LCAweDQ5LCAweDA1LCAweDM5LCAweGQyLCAweDBlLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGJkLCAweGU1LAotICAweDQ5LCAweGYwLCAweDc1LCAweDQ5LCAweDAwLCAweGQyLCAweDAyLCAweGQyLCAweDI1LCAweDMwLCAweDI1LCAweDA1LCAweGMyLCAweDI1LCAweDAyLCAweDAwLAotICAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGNlfX0sCi0gezB4MGE4NiwgNjQsIHsgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYiwgMHhhNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg0YywgMHhmOSwgMHhlYywKLSAgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHg0YywKLSAgMHg2MCwgMHgwYywgMHg3NSwgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNiwgMHg4NSwgMHg0ZCwgMHhjYSwgMHg4NSwgMHg0ZSwgMHhjYiwgMHhlNX19LAotIHsweDBhYzYsIDY0LCB7IDB4NGYsIDB4MTMsIDB4OTIsIDB4MWIsIDB4OTIsIDB4OWYsIDB4ZTUsIDB4NTAsIDB4MTMsIDB4OTIsIDB4MWMsIDB4ZTUsIDB4NTEsIDB4MTMsIDB4OTIsIDB4MjMsIDB4ZTUsCi0gIDB4NTIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsCi0gIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4NTMsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NTksIDB4NjAsIDB4MGIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MGJ9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDVhLCAweDYwLCAweDBiLCAweGQyLCAweDBiLCAweGQyLCAweDBjLCAweDkwLCAweDdmLAotICAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDViLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDExLCAweGQyLCAweDAwLCAweGU0LAotICAweGY1LCAweDdjLCAweGY1LCAweDRhLCAweGQyLCAweGFmLCAweGU1LCAweDVjLCAweDYwLCAweDA1LCAweDMwLCAweDIzLCAweDAyLCAweGQyLCAweDBiLCAweGU1LAotICAweDVkLCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0fX0sCi0gezB4MGI0NiwgNjQsIHsgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg1ZSwgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwKLSAgMHg3NSwgMHgyZSwgMHgwMSwgMHg3NSwgMHg0MCwgMHgyOCwgMHhlNSwgMHg1ZiwgMHg2MCwgMHgwNywgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHg0OCwgMHhmNSwKLSAgMHgyZSwgMHhlNSwgMHg2MCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OCwgMHhlNSwgMHg2MSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNywgMHhlNSwgMHg2MiwKLSAgMHg2MCwgMHgwOCwgMHhlNSwgMHg1ZSwgMHg3MCwgMHgwMiwgMHhmNSwgMHg0MCwgMHhkMiwgMHgwYywgMHhlNSwgMHg2MywgMHg2MCwgMHgxOSwgMHg5MH19LAotIHsweDBiODYsIDY0LCB7IDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsCi0gIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZDIsIDB4MDEsIDB4ZDIsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4YTIsIDB4MTMsCi0gIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmIsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmIsIDB4ZDIsIDB4MGMsIDB4YTIsIDB4MGIsIDB4ZTQsIDB4MzMsIDB4ZmYsCi0gIDB4NjUsIDB4MmMsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTQsIDB4MDgsIDB4NjV9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDI3LCAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDA4LCAweGY1LCAweDI3LCAweGQyLCAweDBjLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAotICAweDI5LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDI5LCAweGQyLCAweDBjLCAweDMwLCAweDA3LCAweDM1LCAweGMyLCAweGFmLAotICAweDMwLCAweDAxLCAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ4LCAweDYwLCAweDA5LCAweDkwLCAweDdmLAotICAweGI3LCAweGYwLCAweGU0LCAweGY1LCAweDQ4LCAweGMyLCAweDAxLCAweGMyLCAweDA3LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwfX0sCi0gezB4MGMwNiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OCwgMHhkMiwgMHgwMSwgMHhjMiwKLSAgMHgwNywgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNSwgMHgzNywgMHgzMCwgMHgwMywgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKLSAgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHg3NSwgMHg0YSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg3YywKLSAgMHhkMiwgMHgwNSwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4OTIsIDB4MTUsIDB4NzUsIDB4NGEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4N2MsIDB4ZDIsIDB4MDUsIDB4MjAsIDB4MjEsIDB4MzMsCi0gIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGEsIDB4NjUsIDB4N2MsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDUsIDB4MWEsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4YzIsCi0gIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4N2MsIDB4ZjUsIDB4NGEsIDB4MzAsIDB4MTUsIDB4MGEsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIxLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLAotICAweDFjLCAweDBhLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDBiLCAweDAzLCAweDAyLAotICAweDBkLCAweDk0LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDAzLCAweDYyLCAweDMwLCAweDFiLCAweDEyLCAweGFmLCAweDRhLAotICAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHgyZCwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgxMywgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwKLSAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZiwgMHg0YSwgMHgwNSwKLSAgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMn19LAotIHsweDBkMDYsIDY0LCB7IDB4MTEsIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWIsIDB4MTIsCi0gIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWYsIDB4NGF9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFmLAotICAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LAotICAweGQyLCAweDExLCAweDgwLCAweDA5LCAweGMyLCAweDExLCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDFiLCAweDA0LAotICAweGEyLCAweDJkLCAweDkyLCAweDliLCAweGQyLCAweDIxLCAweGMyLCAweGFmLCAweDg1LCAweDEzLCAweDk5LCAweDIwLCAweDExLCAweDBkLCAweDMwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgxNSwgMHgwYSwgMHhjMiwgMHgxNSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhkMCwKLSAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZSwgMHhiNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg2NCwgMHhmOSwKLSAgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYn19LAotIHsweDBkYzYsIDY0LCB7IDB4ZTUsIDB4NjQsIDB4NjAsIDB4MGIsIDB4NzUsIDB4ODksIDB4NjAsIDB4NzUsIDB4ODgsIDB4NDAsIDB4ZDIsIDB4ZGYsIDB4ODUsIDB4NjUsIDB4OGQsIDB4ZTUsIDB4NjcsCi0gIDB4MTMsIDB4OTIsIDB4MWQsIDB4OTIsIDB4YzcsIDB4ZTUsIDB4NjgsIDB4MTMsIDB4OTIsIDB4MWUsIDB4ZTUsIDB4NjksIDB4MTMsIDB4OTIsIDB4MjQsIDB4ZTUsCi0gIDB4NmEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsCi0gIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4NmIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODB9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA3LCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDcxLCAweDYwLCAweDBiLCAweGMyLCAweDE0LCAweGMyLCAweDBkLCAweDkwLAotICAweDdmLCAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDcyLCAweDYwLCAweDBiLCAweGQyLCAweDBkLCAweGQyLCAweDBlLCAweDkwLCAweDdmLAotICAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDczLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDEyLCAweGQyLCAweDAwLCAweGU0LAotICAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweGQyLCAweGFmLCAweGU1LCAweDc0LCAweDYwLCAweDA1LCAweDMwLCAweDI0LCAweDAyLCAweGQyLCAweDBkfX0sCi0gezB4MGU0NiwgNjQsIHsgMHhlNSwgMHg3NSwgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwOCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNSwgMHg3NiwgMHg2MCwgMHgwYSwgMHhkMiwgMHhjNCwgMHhjMiwgMHhjMCwKLSAgMHg3NSwgMHgzYSwgMHgwMSwgMHg3NSwgMHg0MSwgMHgyOCwgMHhlNSwgMHg3NywgMHg2MCwgMHgwNywgMHhjMiwgMHhjNCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhmNSwKLSAgMHgzYSwgMHhlNSwgMHg3OCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OSwgMHhlNSwgMHg3OSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwOCwgMHhlNX19LAotIHsweDBlODYsIDY0LCB7IDB4N2EsIDB4NjAsIDB4MDgsIDB4ZTUsIDB4NzYsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4NDEsIDB4ZDIsIDB4MGUsIDB4ZTUsIDB4N2IsIDB4NjAsIDB4MTksIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsCi0gIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MGEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsIDB4YTIsIDB4MTQsCi0gIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MzcsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MzcsIDB4ZDIsIDB4MGUsIDB4YTIsIDB4MGQsIDB4ZTQsIDB4MzN9fSwKLSB7MHgwZWM2LCA2NCwgeyAweGZmLCAweDY1LCAweDM4LCAweDYwLCAweDA0LCAweDhmLCAweDM4LCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDIwLCAweDY1LCAweDMzLAotICAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDIwLCAweGY1LCAweDMzLCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAotICAweDM1LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDM1LCAweGQyLCAweDBlLCAweDMwLCAweDA4LCAweDM1LCAweGMyLCAweGFmLAotICAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ5LCAweDYwLCAweDA5LCAweDkwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg3ZiwgMHhiYiwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwOCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwKLSAgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhkMiwgMHgwMiwgMHhjMiwKLSAgMHgwOCwgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNiwgMHgzNywgMHgzMCwgMHgwNCwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKLSAgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNiwgMHg3NSwgMHg0YiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmNX19LAotIHsweDBmNDYsIDY0LCB7IDB4N2QsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4Y2MsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTYsIDB4NzUsIDB4NGIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZjUsIDB4N2QsIDB4ZDIsIDB4MDYsIDB4MjAsIDB4MjIsIDB4MzMsCi0gIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGIsIDB4NjUsIDB4N2QsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDYsIDB4MWEsIDB4MzAsIDB4MDQsIDB4MDksIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4ZDIsIDB4MDR9fSwKLSB7MHgwZjg2LCA2NCwgeyAweGMyLCAweDA2LCAweGU0LCAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweDMwLCAweDE2LCAweDBhLCAweGMyLCAweDE2LCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGMxLAotICAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIyLCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLAotICAweDFlLCAweDBhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDBkLCAweDAzLCAweDAyLAotICAweDEwLCAweGE0LCAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDA0LCAweDYyLCAweDMwLCAweDFkLCAweDEyLCAweGFmfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgyZCwKLSAgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgxMywgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgyYSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwKLSAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZiwgMHg0Yn19LAotIHsweDEwMDYsIDY0LCB7IDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsCi0gIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWQsIDB4MTIsCi0gIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjV9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGY1LCAweDEzLCAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDJhLCAweDMwLCAweDFkLCAweDEyLCAweGFmLCAweDRiLCAweDA1LAotICAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFmLAotICAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LAotICAweGQyLCAweDEyLCAweDgwLCAweDA5LCAweGMyLCAweDEyLCAweGU0LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweGQyLCAweDA0LCAweDMwLCAweDFkfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwNCwgMHhhMiwgMHgyZCwgMHg5MiwgMHhjMywgMHhkMiwgMHgyMiwgMHhjMiwgMHhhZiwgMHg4NSwgMHgxMywgMHhjMSwgMHgyMCwgMHgxMiwgMHgwZCwgMHgzMCwgMHgxNiwKLSAgMHgwYSwgMHhjMiwgMHgxNiwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjMSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhjMiwKLSAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxMSwgMHg3YSwgMHhlNSwgMHgxYSwgMHg3MCwgMHg0NiwgMHgzMCwgMHgwYywgMHgzZiwgMHhlNSwgMHg0MCwKLSAgMHg3MCwgMHgzYiwgMHhhMiwgMHgwOSwgMHgzMywgMHhmNSwgMHgzMSwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZX19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjYsIDB4MjUsIDB4MTIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTUsIDB4ODcsIDB4ZmYsIDB4NzQsCi0gIDB4ODAsIDB4MjUsIDB4MTIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTIsIDB4ZTUsIDB4MTIsCi0gIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDAsIDB4MTAsIDB4MjIsIDB4NzUsIDB4MWEsIDB4MDEsCi0gIDB4MjIsIDB4ZTUsIDB4MWEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDUsIDB4MzAsIDB4MGUsIDB4M2UsIDB4ZTUsIDB4NDEsIDB4NzAsIDB4M2EsIDB4YTJ9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDBhLCAweDMzLCAweGY1LCAweDNkLCAweGMyLCAweDBhLCAweGMyLCAweDBlLCAweGU0LCAweGY1LCAweDEyLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDMyLAotICAweDI1LCAweDEyLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDE1LCAweDg3LCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDEyLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDBjLCAweGRiLCAweDkwLAotICAweDdmLCAweGMzLCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQxLCAweDEwLCAweDc1LCAweDFhLCAweDAyLCAweDIyLCAweGU1LCAweDFjLCAweDYwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgzMCwgMHgxNSwgMHgxYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgxYiwgMHgyNSwgMHgxMiwgMHhmOSwgMHhlZSwgMHgzNCwKLSAgMHgwMCwgMHhmYSwgMHgxMiwgMHgxNSwgMHg4NywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwKLSAgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwKLSAgMHhlNCwgMHhmNSwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgxNiwgMHgxNywgMHgxMiwgMHg0MCwgMHgwMCwgMHgxMn19LAotIHsweDExODYsIDY0LCB7IDB4YjQsIDB4MDEsIDB4MTMsIDB4MjAsIDB4MDMsIDB4MTEsIDB4OWUsIDB4MDYsIDB4MTIsIDB4MzMsIDB4MDgsIDB4MTIsIDB4MmQsIDB4MDksIDB4MTIsIDB4MjAsIDB4MGEsCi0gIDB4MTMsIDB4NzYsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MTMsIDB4NmYsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsCi0gIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsCi0gIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTcsIDB4NGIsIDB4OGIsIDB4MTJ9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDhhLCAweDEzLCAweDg5LCAweDE0LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLAotICAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLAotICAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDE3LCAweDlhLCAweDhiLCAweDEyLCAweDhhLCAweDEzLCAweDg5LCAweDE0LAotICAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwKLSAgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHgxMiwgMHgxNCwgMHhjMywgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3Zn19LAotIHsweDEyNDYsIDY0LCB7IDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsCi0gIDB4YTIsIDB4MmIsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTR9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLAotICAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLAotICAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGU4LAotICAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgyNiwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwKLSAgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwKLSAgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsCi0gIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MjYsIDB4ODAsIDB4M2YsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LAotICAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweDAyLCAweDE0LCAweGMyLCAweGU1LCAweDQwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHg0MCwgMHhlNSwgMHg0OCwgMHg2MCwgMHg0ZiwgMHg2NSwgMHg0NCwgMHg3MCwgMHg0NSwgMHhlNSwgMHg0MiwgMHhmNCwgMHg2MCwgMHgwMiwKLSAgMHgwNSwgMHg0MiwgMHhlNSwgMHg0MiwgMHhjMywgMHg5NSwgMHg1NSwgMHg0MCwgMHgzZCwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMSwgMHgxOCwgMHg5MCwgMHg3ZiwKLSAgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHg0OCwgMHhmMCwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg0OCwKLSAgMHhmNSwgMHg0MiwgMHhmNSwgMHg0NCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3Zn19LAotIHsweDEzYzYsIDY0LCB7IDB4YjksIDB4ZTUsIDB4NDgsIDB4ZjAsIDB4ZDIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4NDgsIDB4ZjUsIDB4NDIsIDB4ZjUsIDB4NDQsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MDYsCi0gIDB4ODUsIDB4NDgsIDB4NDQsIDB4ZTQsIDB4ZjUsIDB4NDIsIDB4ZTUsIDB4MmUsIDB4NjAsIDB4MmQsIDB4MjAsIDB4MTksIDB4MDcsIDB4OTAsIDB4N2YsIDB4OWIsCi0gIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGUsIDB4ZTUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4ZDIsIDB4MGMsIDB4ZTQsIDB4ZjUsIDB4M2UsCi0gIDB4ODAsIDB4MTMsIDB4ZTUsIDB4M2UsIDB4ZDMsIDB4OTUsIDB4NTYsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2UsIDB4YjUsIDB4NTYsIDB4MDUsIDB4NzV9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDJmLCAweDAxLCAweGQyLCAweDBjLCAweDA1LCAweDNlLCAweGMyLCAweDE5LCAweGU1LCAweDQxLCAweDYwLCAweDAyLCAweDE1LCAweDQxLCAweGU1LCAweDQ5LCAweDYwLAotICAweDRmLCAweDY1LCAweDQ1LCAweDcwLCAweDQ1LCAweGU1LCAweDQzLCAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDQzLCAweGU1LCAweDQzLCAweGMzLCAweDk1LAotICAweDZkLCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLAotICAweDdmLCAweGJiLCAweGU1LCAweDQ5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDQ5LCAweGY1LCAweDQzLCAweGY1LCAweDQ1LCAweDgwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhlNSwgMHg0OSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwKLSAgMHhmNSwgMHg0OSwgMHhmNSwgMHg0MywgMHhmNSwgMHg0NSwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHg0OSwgMHg0NSwgMHhlNCwgMHhmNSwgMHg0MywKLSAgMHhlNSwgMHgzYSwgMHg2MCwgMHgyZCwgMHgyMCwgMHgxYSwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZSwgMHhlNSwgMHgzYiwKLSAgMHg2MCwgMHgwNSwgMHhlNCwgMHhmNSwgMHgzYiwgMHhkMiwgMHgwZSwgMHhlNCwgMHhmNSwgMHgzZiwgMHg4MCwgMHgxMywgMHhlNSwgMHgzZiwgMHhkM319LAotIHsweDE0ODYsIDY0LCB7IDB4OTUsIDB4NmUsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2YsIDB4YjUsIDB4NmUsIDB4MDUsIDB4NzUsIDB4M2IsIDB4MDEsIDB4ZDIsIDB4MGUsIDB4MDUsIDB4M2YsIDB4YzIsCi0gIDB4MWEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsCi0gIDB4MWMsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MWQsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsCi0gIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk0LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDlhLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDU0LCAweGZkLAotICAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4fX0sCi0gezB4MTUwNiwgNjQsIHsgMHgxMCwgMHhjMiwgMHgxYiwgMHhjMiwgMHgwNSwgMHhjMiwgMHgyMSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMywgMHhmNSwgMHg3YywgMHhmNSwgMHg0YSwgMHhjMiwgMHgxMSwKLSAgMHhjMiwgMHgxNSwgMHhmNSwgMHg0MiwgMHhjMiwgMHgxOSwgMHhmNSwgMHg0NCwgMHhmNSwgMHg0OCwgMHhjMiwgMHgyMywgMHhjMiwgMHgxYywgMHhmNSwgMHgyZCwKLSAgMHhmNSwgMHgyZiwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMCwgMHhjMiwgMHgxZiwgMHhmNSwgMHgzZSwgMHhjMiwgMHgwOSwgMHhkMiwgMHgwYywgMHhmNSwgMHgyNiwKLSAgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwgMHg3NSwgMHhjMCwgMHg0MH19LAotIHsweDE1NDYsIDY0LCB7IDB4NDMsIDB4YTgsIDB4NDAsIDB4YzIsIDB4MWQsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTQsIDB4ZjUsIDB4N2QsIDB4ZjUsIDB4NGIsCi0gIDB4YzIsIDB4MTIsIDB4YzIsIDB4MTYsIDB4ZjUsIDB4NDMsIDB4YzIsIDB4MWEsIDB4ZjUsIDB4NDUsIDB4ZjUsIDB4NDksIDB4YzIsIDB4MjQsIDB4YzIsIDB4MWUsCi0gIDB4ZjUsIDB4MzksIDB4ZjUsIDB4M2IsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MjAsIDB4ZjUsIDB4M2YsIDB4YzIsIDB4MGEsIDB4ZDIsIDB4MGUsCi0gIDB4NzUsIDB4MzIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZDIsIDB4Mjh9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLAotICAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAotICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLAotICAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1fX0sCi0gezB4MTVjNiwgNjQsIHsgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwKLSAgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwKLSAgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMCwgMHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwKLSAgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNX19LAotIHsweDE2MDYsIDY0LCB7IDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODMsIDB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsCi0gIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsCi0gIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4N2R9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAyLCAweDE2LCAweDg0LCAweDAyLCAweDE2LCAweGM5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLAotICAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LAotICAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LAotICAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDE4fX0sCi0gezB4MTY4NiwgNjQsIHsgMHhjNSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwKLSAgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZX19LAotIHsweDE2YzYsIDY0LCB7IDB4ZTcsIDB4ODAsIDB4YmUsIDB4NzUsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsCi0gIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsCi0gIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDR9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweGJlLCAweGQyLCAweDJkLAotICAweDEyLCAweDE4LCAweDdmLCAweGMyLCAweDI3LCAweGMyLCAweDI1LCAweGMyLCAweDI4LCAweDMwLCAweDI4LCAweDAzLCAweDEyLCAweDBhLCAweDgzLCAweDkwLAotICAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDEwLCAweDYwLCAweDA4LCAweGUwLCAweGY1LCAweDEwLCAweDEyLCAweDEzLCAweDdlLCAweDgwLCAweGVhLCAweDMwLAotICAweDI3LCAweDA3LCAweGMyLCAweDI3LCAweDEyLCAweDExLCAweDdiLCAweDgwLCAweGUwLCAweDMwLCAweDJjLCAweGRkLCAweGMyLCAweDJjLCAweDEyfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgyNiwgMHg4MCwgMHhkNiwgMHgyMiwgMHhlNCwgMHhmZSwgMHg3NSwgMHgxNywgMHhmZiwgMHg3NSwgMHgxOCwgMHgxOSwgMHg3NSwgMHgxOSwgMHgxMiwgMHhhYiwKLSAgMHgxNywgMHhhYSwgMHgxOCwgMHhhOSwgMHgxOSwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxNSwgMHhhMCwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwKLSAgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNSwgMHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgxNSwgMHhkZiwgMHg4NSwgMHhmMCwgMHgxNSwKLSAgMHhmNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHhlNSwgMHgxNSwgMHg2MiwgMHgxNiwgMHhlNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHgyOSwgMHhmZCwgMHhlNX19LAotIHsweDE3ODYsIDY0LCB7IDB4MTUsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4ZjUsIDB4MTgsIDB4ODksIDB4MTksIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsCi0gIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MTUsIDB4ZTQsIDB4ZjUsIDB4MTYsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4NzUsIDB4MTgsIDB4MTksIDB4NzUsIDB4MTksCi0gIDB4ODYsIDB4YWIsIDB4MTcsIDB4YWEsIDB4MTgsIDB4YTksIDB4MTksIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MTUsIDB4YTAsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTYsIDB4MDUsIDB4MTYsIDB4ZWYsIDB4YjUsIDB4MTUsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MTUsIDB4ODcsIDB4N2UsIDB4MDAsIDB4Mjl9fSwKLSB7MHgxN2M2LCA2NCwgeyAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDE3LCAweGZmLCAweGY1LCAweDE4LCAweDg5LCAweDE5LCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLAotICAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDkwLCAweDdmLCAweDk0LAotICAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLAotICAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweGYwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKLSAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwKLSAgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwKLSAgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgyNywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MH19LAotIHsweDE4NDYsIDY0LCB7IDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsCi0gIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsCi0gIDB4ZDIsIDB4MmMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsCi0gIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjB9fSwKLSB7MHgxODg2LCA2NCwgeyAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDJkLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLAotICAweDA2LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAotICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAotICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGMxfX0sCi0gezB4MThjNiwgNjQsIHsgMHhhYSwgMHgwMSwgMHgxYSwgMHgwMCwgMHgwMywgMHgxYiwgMHgwMywgMHgwMCwgMHgwMCwgMHhjMSwgMHgyNywgMHhjMSwgMHgyYywgMHhjMSwgMHgyNiwgMHhjMSwgMHgyYiwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MGYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCA2NCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDE4LCAweDMxLCAweDAwLCAweDAyLCAweDFifX0sCi0gezB4MWIwNiwgIDksIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgxOCwgMHgwNywgMHgwMCwgMHgwMiwgMHgxOCwgMHg1OH19LAotIHsweGZmZmYsICAwLCB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4N2VkOS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NyArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTI4eF9mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTI4eF9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4eF9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTIsIDB4Zjd9fSwKLSB7MHgwMDAzLCAxNiwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwfX0sCi0gezB4MDAxMywgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MH19LAotIHsweDAwMjMsIDE1LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhiYX19LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4YmEsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGQ2LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMiwgMHhlYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDRiLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhkZiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YX19LAotIHsweDAxODYsIDY0LCB7IDB4N2UsIDB4NzksIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsCi0gIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsCi0gIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDdlLCAweDEzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDM1LCAweDkwLCAweDdlLCAweDAyLCAweGUwLAotICAweGZmLCAweDEyLCAweDEwLCAweDViLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLAotICAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwKLSAgMHg3ZSwgMHgxMywgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwKLSAgMHhmNSwgMHg0NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgwNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0Mn19LAotIHsweDAyNDYsIDY0LCB7IDB4N2YsIDB4NTMsIDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTAsIDB4YTcsIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4Y2QsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsCi0gIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2UsIDB4MGMsCi0gIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmR9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLAotICAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMiwgMHhkZiwKLSAgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMn19LAotIHsweDAzMDYsIDY0LCB7IDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsCi0gIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsCi0gIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLAotICAweDUzLCAweDNlLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLAotICAweDdlLCAweDFiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweGU0LAotICAweGY1LCAweDJiLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyfX0sCi0gezB4MDM4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwKLSAgMHg5MCwgMHg3ZSwgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwKLSAgMHgxZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKLSAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTIsIDB4ZGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGQsIDB4MTEsIDB4MTJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLCAweDA3LCAweDIwLAotICAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGVjLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk1LCAweDNkLCAweDQwLAotICAweDAzLCAweDAyLCAweDA0LCAweGFlLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDgwLCAweDc3LAotICAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzfX0sCi0gezB4MDQ0NiwgNjQsIHsgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHgxNCwgMHhmNSwKLSAgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwKLSAgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgwNCwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwKLSAgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MH19LAotIHsweDA0ODYsIDY0LCB7IDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsCi0gIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGQsIDB4MDQsCi0gIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsCi0gIDB4MzYsIDB4MTIsIDB4MTIsIDB4MjAsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBjLAotICAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweDMwLAotICAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLAotICAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmLCAweDg0LCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwKLSAgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MSwgMHg3NSwKLSAgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgyOSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5NywgMHhjMiwgMHgwNiwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDE5LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDNmLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NjUsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4OGIsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsCi0gIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsCi0gIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsIDB4MTMsIDB4MTIsCi0gIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MzMsIDB4ZDJ9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDA4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJmLCAweGQyLAotICAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDJlLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDIwLCAweGUxLCAweDIzLCAweDkwLAotICAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDE2LCAweDkwfX0sCi0gezB4MDgwNiwgNjQsIHsgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyMCwgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwKLSAgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA4NDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsCi0gIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsCi0gIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKLSB7MHgwODg2LCA2NCwgeyAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAotICAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM5LCAweDEwLCAweGU0LAotICAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDE0LCAweDJmLCAweGMyLAotICAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwKLSAgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwKLSAgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA5MDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsCi0gIDB4ZTQsIDB4MGEsIDB4MDgsIDB4MDAsIDB4MGEsIDB4N2MsIDB4MDEsIDB4MGEsIDB4ZTgsIDB4MDMsIDB4MDksIDB4NDQsIDB4MDYsIDB4MDksIDB4ZmIsIDB4MDgsCi0gIDB4MDksIDB4ZjUsIDB4MDksIDB4MDksIDB4ZGQsIDB4MGEsIDB4MDksIDB4ZWMsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MzcsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweGQzLCAweDc0LAotICAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LAotICAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5fX0sCi0gezB4MDk4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKLSAgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwKLSAgMHgwYSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMH19LAotIHsweDA5YzYsIDY0LCB7IDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsIDB4MGIsIDB4M2UsIDB4MTIsIDB4MGIsCi0gIDB4NDYsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAotICAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAotICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweGU0LCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMn19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MGIsIDB4M2UsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsCi0gIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsCi0gIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLAotICAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAotICAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKLSAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKLSAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn19LAotIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0gIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLCAweDAxLCAweGU0LCAweGY1LCAweDM4LAotICAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLCAweGMyLCAweDA5LCAweGMyLCAweDEzLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLAotICAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdmfX0sCi0gezB4MGJjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwKLSAgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMX19LAotIHsweDBjMDYsIDY0LCB7IDB4YjEsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsCi0gIDB4MGMsIDB4YjcsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsCi0gIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzJ9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDEwLAotICAweGYzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0fX0sCi0gezB4MGM4NiwgNjQsIHsgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwKLSAgMHgxMSwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwKLSAgMHg3ZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4YiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4Mn19LAotIHsweDBjYzYsIDY0LCB7IDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsCi0gIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LAotICAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLAotICAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLAotICAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwKLSAgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywKLSAgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMH19LAotIHsweDBkODYsIDY0LCB7IDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCi0gIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MTIsIDB4NDUsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTJ9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLCAweDA1LCAweGQyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLCAweDA1LCAweGMyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDIxLCAweDgwLCAweGQ2LCAweDMwLCAweDE4LAotICAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDkzLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkfX0sCi0gezB4MGUwNiwgNjQsIHsgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg0NywgMHgwMiwgMHgwZCwgMHg2ZiwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKLSAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKLSAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwKLSAgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4MTIsIDB4YWMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCi0gIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCi0gIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsCi0gIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLAotICAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLAotICAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LAotICAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1fX0sCi0gezB4MGVjNiwgNjQsIHsgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKLSAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKLSAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksIDB4NzUsIDB4MWMsCi0gIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YTUsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OGMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsCi0gIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDB9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAotICAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLAotICAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LAotICAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhfX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwKLSAgMHhmMCwgMHgxMiwgMHgxMywgMHgzZiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwKLSAgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMH19LAotIHsweDBmYzYsIDY0LCB7IDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsCi0gIDB4MTEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDB9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwfX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDEwODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDR9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAotICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwfX0sCi0gezB4MTEwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKLSAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAotICAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwfX0sCi0gezB4MTFjNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHg4MCwKLSAgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MH19LAotIHsweDEyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsCi0gIDB4NjMsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsCi0gIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTB9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAotICAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGM4LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LAotICAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwfX0sCi0gezB4MTI4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MCwKLSAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwKLSAgMHgwMCwgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMX19LAotIHsweDEyYzYsIDY0LCB7IDB4OWIsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsCi0gIDB4NjAsIDB4MDUsIDB4MTIsIDB4MGQsIDB4NGUsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4ZTcsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBmLCAweGJkLCAweDAwLCAweDAyLCAweDEwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MDAsIDB4MDMsIDB4MTIsCi0gIDB4MGQsIDB4NWYsIDB4MTIsIDB4MGIsIDB4NDYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEwLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgIDQsIHsgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsICAwLCAgezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I1NjY3OC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhhX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDkgKzAsMCBAQAotLyoga2V5c3Bhbl91c2EyOHhhX2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjh4YS5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLQotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxMiwgMHhmOX19LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgyNywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGM4fX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhjOCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZTQsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDBmfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgwZX19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCi0gIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NTksIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCi0gIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAotICAweDBjLCAweGVkLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAotICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwKLSAgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg0MywgMHg0NiwKLSAgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDAxYzYsIDY0LCB7IDB4N2UsIDB4MTMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NDMsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsCi0gIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NjksIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MDMsCi0gIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLAotICAweDdlLCAweDEzLCAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLAotICAweGY1LCAweDQ0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLAotICAweDA3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZiwgMHg1MywgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgxMCwgMHhiNSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhkYiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwKLSAgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwgMHg3ZSwgMHgwYywKLSAgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZH19LAotIHsweDAyODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTB9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLAotICAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAotICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEyLCAweGVkLAotICAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMSwgMHhiZiwgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwKLSAgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwKLSAgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDAzNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsCi0gIDB4NTMsIDB4M2UsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsCi0gIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4ZTQsCi0gIDB4ZjUsIDB4MmIsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLAotICAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLAotICAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLAotICAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM4fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKLSAgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMiwgMHhlZCwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKLSAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHgzZiwgMHhlZiwgMHg1NCwgMHg4MCwKLSAgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZCwgMHgxMSwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4MTMsIDB4M2YsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsIDB4MDcsIDB4MjAsCi0gIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZWMsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2QsIDB4NDAsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4YWUsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsCi0gIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzN9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweDE0LCAweGY1LAotICAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LAotICAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDEyLCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLAotICAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDdiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwKLSAgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwZCwgMHgxMiwKLSAgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwKLSAgMHgzNiwgMHgxMiwgMHgxMiwgMHgyZSwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg4NywgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOSwgMHhjMywgMHg5NX19LAotIHsweDA0YzYsIDY0LCB7IDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGMsCi0gIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4MzAsCi0gIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsCi0gIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGYsIDB4OTIsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LAotICAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgxLCAweDc1LAotICAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDM3LCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDkwLAotICAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk3LCAweGMyLCAweDA2LCAweGU0fX0sCi0gezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKLSAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKLSAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3ZiwgMHgwM319LAotIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTEsIDB4MjcsIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NGQsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCi0gIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MDksIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAotICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAotICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAotICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKLSAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg3MywgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg5OSwKLSAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCi0gIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCi0gIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKLSAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKLSAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3NSwgMHgzMiwKLSAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAotIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MDksCi0gIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAotICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwKLSAgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwKLSAgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwgMHgxMywgMHgxMiwKLSAgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgzMywgMHhkMn19LAotIHsweDA3YzYsIDY0LCB7IDB4MDgsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsCi0gIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsCi0gIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsCi0gIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MTYsIDB4OTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDIwLCAweGU1LCAweDBhLCAweDcwLCAweDQwLAotICAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwKLSAgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwKLSAgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCi0gIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsCi0gIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsCi0gIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA1LCAweGYwLCAweDc1LCAweDBhLAotICAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDkwNiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwKLSAgMHhmMiwgMHgwYSwgMHgwOCwgMHgwMCwgMHgwYSwgMHg3YywgMHgwMSwgMHgwYSwgMHhlOCwgMHgwMywgMHgwOSwgMHg0NCwgMHgwNiwgMHgwOSwgMHhmYiwgMHgwOCwKLSAgMHgwOSwgMHhmNSwgMHgwOSwgMHgwOSwgMHhkZCwgMHgwYSwgMHgwOSwgMHhlYywgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzNywgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZDMsIDB4NzQsCi0gIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NzQsIDB4NzUsIDB4ODMsIDB4MTl9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAotICAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBmLAotICAweDE4LCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwgMHgwYiwgMHgzZSwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsCi0gIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsCi0gIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAotICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwYiwgMHgzZSwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwKLSAgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwKLSAgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsCi0gIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLAotICAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LAotICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwKLSAgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYX19LAotIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZTAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsCi0gIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsCi0gIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4OGYsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLAotICAweDEyLCAweDExLCAweGJmLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLCAweDExLCAweGJmLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDExfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhiZiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg3OCwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwMSwKLSAgMHgxMiwgMHgxMSwgMHhiZiwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwgMHgwYywgMHhjNSwgMHg3NSwgMHgyZCwgMHgwMSwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwKLSAgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwKLSAgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgxMywgMHhmNSwgMHgzN319LAotIHsweDBjNDYsIDY0LCB7IDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsCi0gIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsCi0gIDB4MDksIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsCi0gIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjB9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGZmLAotICAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDk5LAotICAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDEzLCAweDdkLCAweDAxLCAweDEyLCAweDEyLCAweDA5LCAweGQyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwKLSAgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwKLSAgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwKLSAgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNX19LAotIHsweDBkMDYsIDY0LCB7IDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsCi0gIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LAotICAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LAotICAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywKLSAgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxYX19LAotIHsweDBkYzYsIDY0LCB7IDB4MTIsIDB4MTIsIDB4NTMsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTIsIDB4OTAsIDB4N2YsIDB4YTEsCi0gIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsIDB4MDUsIDB4ZDIsIDB4MWEsIDB4MTIsCi0gIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsIDB4MDUsIDB4YzIsIDB4MWEsIDB4MTIsCi0gIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjEsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MTgsIDB4ZDN9fSwKLSB7MHgwZTA2LCA2NCwgeyAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDlmLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDQ3LAotICAweDAyLCAweDBlLCAweDU1LCAweDAyLCAweDBkLCAweDdkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LAotICAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLAotICAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgxMiwKLSAgMHhiYSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwKLSAgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOH19LAotIHsweDBlODYsIDY0LCB7IDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsCi0gIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsCi0gIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsCi0gIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjV9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAotICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLAotICAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LAotICAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwKLSAgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwgMHg3NSwgMHgxYywgMHg4NiwgMHhhYiwKLSAgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhiMywgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxOSwKLSAgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg5YSwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZX19LAotIHsweDBmNDYsIDY0LCB7IDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsCi0gIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsCi0gIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsIDB4NjB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDBhLCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LAotICAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLAotICAweDEzLCAweDRiLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLAotICAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDg3LCAweDhmLCAweDFhLCAweGVmfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwKLSAgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwKLSAgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwKLSAgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxMX19LAotIHsweDEwMDYsIDY0LCB7IDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsCi0gIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNH19LAotIHsweDEwYzYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsCi0gIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGJ9fSwKLSB7MHgxMTA2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1fX0sCi0gezB4MTE0NiwgNjQsIHsgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwKLSAgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MH19LAotIHsweDExODYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsCi0gIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDFiLAotICAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDFiLAotICAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweDgwLCAweGU4fX0sCi0gezB4MTIwNiwgNjQsIHsgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwKLSAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwKLSAgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NX19LAotIHsweDEyNDYsIDY0LCB7IDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NmYsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsCi0gIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ZDYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsCi0gIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2UsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDExLAotICAweGJmLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLAotICAweDEyLCAweDA5LCAweDIyLCAweDA1LCAweDBlLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDE0LCAweDAzLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMSwgMHg5YiwgMHgwMCwgMHg4ZSwKLSAgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwgMHgwNSwKLSAgMHgxMiwgMHgwZCwgMHg1YywgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwKLSAgMHhmZiwgMHgyMiwgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhmNSwgMHgwMCwgMHgwMiwgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGYsIDB4Y2IsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwMCwgMHgwMywgMHgxMiwgMHgwZCwgMHg2ZCwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgIDAsIHsweDAwfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1ZmNhZDQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4Yl9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQ4ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMjh4Yl9mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTI5eGJfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhiX2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgyZH19LAotIHsweDAwMmQsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDMzLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhjY319LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDMzLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4Y2MsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGY1LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgzZiwgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMywgMHgxYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDMsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwfX0sCi0gezB4MDAyMywgMTAsIHsgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MTJ9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDVkLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhmMSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OX19LAotIHsweDAxODYsIDY0LCB7IDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsCi0gIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsCi0gIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MTN9fSwKLSB7MHgwMWM2LCA2NCwgeyAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDU0LCAweDkwLCAweDdlLCAweDAyLCAweGUwLCAweGZmLCAweDEyLAotICAweDEwLCAweDdhLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDdmLCAweDAzLCAweDdkLCAweDA3LAotICAweDEyLCAweDExLCAweGQwLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LAotICAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgxMywKLSAgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwNywgMHhlMCwKLSAgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MiwgMHg3ZiwgMHg1M319LAotIHsweDAyNDYsIDY0LCB7IDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4YzYsCi0gIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4ZWMsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4YTAsIDB4OTAsIDB4N2UsIDB4MDMsCi0gIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4YTAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLAotICAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLCAweGUwLCAweDEzLAotICAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwLCAweDgwLCAweDAzfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwKLSAgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMywgMHgwZiwgMHhlZiwgMHg1NCwKLSAgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhkMH19LAotIHsweDAzMDYsIDY0LCB7IDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDIsIDB4ZTQsCi0gIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsIDB4ZTAsIDB4NjAsCi0gIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsCi0gIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTN9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNlLAotICAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFiLAotICAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwLCAweGU0LCAweGY1LCAweDJiLAotICAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1fX0sCi0gezB4MDM4NiwgNjQsIHsgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwgMHg5MCwgMHg3ZSwKLSAgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxZiwgMHhlMCwKLSAgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg3NCwgMHgzNSwKLSAgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1NCwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NGIsIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4NDAsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTMsIDB4MGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4NjQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGR9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDExLCAweDEyLCAweDEzLCAweDRiLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLAotICAweDA3LCAweDIwLCAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGYwLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweGMzLCAweDk1LAotICAweDNkLCAweDQwLCAweDAzLCAweDAyLCAweDA0LCAweGIwLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLAotICAweDgwLCAweDc3LCAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDg3fX0sCi0gezB4MDQ0NiwgNjQsIHsgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwKLSAgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywKLSAgMHg3ZCwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgxNiwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwKLSAgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg4NywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MH19LAotIHsweDA0ODYsIDY0LCB7IDB4MjksIDB4OTAsIDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsCi0gIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsCi0gIDB4MGQsIDB4MTYsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsCi0gIDB4MDIsIDB4MDUsIDB4MzgsIDB4MTIsIDB4MTIsIDB4M2YsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4OTMsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwNGM2LCA2NCwgeyAweGMzLCAweDk1LCAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLAotICAweDMwLCAweDBjLCAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LAotICAweDM3LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LAotICAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmfX0sCi0gezB4MDUwNiwgNjQsIHsgMHg5NiwgMHhlNSwgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwKLSAgMHgwMywgMHg3NSwgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwKLSAgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgzYiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5OSwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDEyLCAweDFhLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDM4LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDVlLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDFhLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4ODQsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4YWEsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDExLCAweDEyLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4YzIsIDB4MDYsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4ZDEsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4NTQsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NGIsIDB4ZTUsIDB4MTMsCi0gIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4NDAsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsCi0gIDB4MTMsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTl9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDMzLCAweGQyLCAweDA4LCAweDEyLCAweDEzLCAweDlmLCAweGVmLCAweDU0LCAweDgwLCAweDY0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJmLCAweGQyLCAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDlmLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LAotICAweDY1LCAweDJlLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLAotICAweDIwLCAweGUxLCAweDIzLCAweDkwLCAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyfX0sCi0gezB4MDgwNiwgNjQsIHsgMHhlMCwgMHhmNSwgMHgxNiwgMHg5MCwgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywKLSAgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyNCwKLSAgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZX19LAotIHsweDA4NDYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsCi0gIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsCi0gIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWV9fSwKLSB7MHgwODg2LCA2NCwgeyAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LAotICAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLAotICAweDc1LCAweDM5LCAweDEwLCAweGU0LCAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LAotICAweDMwLCAweDE0LCAweDJmLCAweGMyLCAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4fX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKLSAgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZX19LAotIHsweDA5MDYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsIDB4ZjYsIDB4MGEsIDB4MGMsIDB4MDAsIDB4MGEsIDB4ODAsIDB4MDEsIDB4MGEsIDB4ZWMsIDB4MDMsIDB4MDksIDB4NDgsCi0gIDB4MDYsIDB4MDksIDB4ZmYsIDB4MDgsIDB4MDksIDB4ZjksIDB4MDksIDB4MDksIDB4ZTEsIDB4MGEsIDB4MDksIDB4ZjAsIDB4MGIsIDB4MDAsIDB4MDB9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweDBiLCAweDNiLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLAotICAweDAyLCAweDA5LCAweGQ3LCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLAotICAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLAotICAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyfX0sCi0gezB4MDk4NiwgNjQsIHsgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywKLSAgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwKLSAgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwKLSAgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwgMHgxYywgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOX19LAotIHsweDA5YzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsCi0gIDB4MGIsIDB4NDIsIDB4MTIsIDB4MGIsIDB4NGEsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLAotICAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLAotICAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLAotICAweDQyLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyfX0sCi0gezB4MGE0NiwgNjQsIHsgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywKLSAgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwKLSAgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwKLSAgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZX19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsCi0gIDB4MTAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsCi0gIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LAotICAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLAotICAweDRhLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0fX0sCi0gezB4MGIwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMH19LAotIHsweDBiNDYsIDY0LCB7IDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4Zjl9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBlLCAweGU0LCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLAotICAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLAotICAweGMyLCAweDA5LCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyfX0sCi0gezB4MGJjNiwgNjQsIHsgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwKLSAgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwKLSAgMHgxMSwgMHhkMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNX19LAotIHsweDBjMDYsIDY0LCB7IDB4N2QsIDB4N2YsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ODksIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4ZDAsCi0gIDB4N2YsIDB4MTMsIDB4N2QsIDB4MDksIDB4MTIsIDB4MTEsIDB4ZDAsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsIDB4MGMsIDB4YzksIDB4NzUsIDB4MmQsIDB4MDEsCi0gIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsCi0gIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4Mzl9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweGY1LCAweDEzLCAweGY1LCAweDM3LCAweGMyLCAweDA4LCAweGMyLCAweDBjLCAweGMyLCAweDA2LCAweGMyLCAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLAotICAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDExLCAweDEyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MGM4NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHg0NywgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwKLSAgMHgxMiwgMHgxYSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwKLSAgMHgwMSwgMHgxMiwgMHgxMiwgMHhhYSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwOX19LAotIHsweDBjYzYsIDY0LCB7IDB4MTIsIDB4MTIsIDB4MWEsIDB4ZDIsIDB4MTIsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsCi0gIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsCi0gIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTB9fSwKLSB7MHgwZDA2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLAotICAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLAotICAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywKLSAgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwKLSAgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwKLSAgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5Mn19LAotIHsweDBkODYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsCi0gIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsCi0gIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjB9fSwKLSB7MHgwZGM2LCA2NCwgeyAweGQyLCAweGFmLCAweGQyLCAweDFhLCAweDEyLCAweDEyLCAweDY0LCAweGMyLCAweDExLCAweGU0LCAweGY1LCAweDBiLCAweGY1LCAweDEzLCAweGMyLCAweDE3LCAweGMyLAotICAweDEyLCAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLAotICAweDA1LCAweGQyLCAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLAotICAweDA1LCAweGMyLCAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDI1LCAweDgwfX0sCi0gezB4MGUwNiwgNjQsIHsgMHhkNiwgMHgzMCwgMHgxOCwgMHhkMywgMHhjMiwgMHgxOCwgMHgxMiwgMHgxMywgMHhhYiwgMHg4MCwgMHhjYywgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwKLSAgMHhmZCwgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg1OSwgMHgwMiwgMHgwZCwgMHg4MSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywKLSAgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwKLSAgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsCi0gIDB4NDAsIDB4ODAsIDB4OTAsIDB4MTIsIDB4Y2IsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsCi0gIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsCi0gIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTN9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLAotICAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLAotICAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLAotICAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyfX0sCi0gezB4MGVjNiwgNjQsIHsgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwKLSAgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwKLSAgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwKLSAgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsCi0gIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksCi0gIDB4NzUsIDB4MWMsIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YjcsIDB4YjQsCi0gIDB4MDMsIDB4MWQsIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OWUsIDB4N2V9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFhLCAweGZmLCAweGY1LCAweDFiLCAweDg5LCAweDFjLCAweDgwLCAweGQ0LCAweDdiLAotICAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLAotICAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LAotICAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1fX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHgzZiwgMHg4ZiwgMHgxYSwgMHhlZiwgMHg0MiwgMHgzNiwgMHg4MCwgMHhjYSwgMHgyMiwgMHg4ZiwKLSAgMHgxYSwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywKLSAgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgxMywgMHg1NywgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywKLSAgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxM319LAotIHsweDBmYzYsIDY0LCB7IDB4OTMsIDB4OGYsIDB4MWEsIDB4ZWYsIDB4NDIsIDB4MzcsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsCi0gIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsCi0gIDB4MjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgxMDA2LCA2NCwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDExLAotICAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLAotICAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LAotICAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4fX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMH19LAotIHsweDEwODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLAotICAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4fX0sCi0gezB4MTEwNiwgNjQsIHsgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwKLSAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDExNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsCi0gIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBifX0sCi0gezB4MTFjNiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywKLSAgMHgyNywgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMn19LAotIHsweDEyMDYsIDY0LCB7IDB4MTMsIDB4MjcsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MjcsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsCi0gIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTN9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdiLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LAotICAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFiLCAweDgwLCAweGU4LCAweGFmLCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LAotICAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLAotICAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGU3LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0fX0sCi0gezB4MTI4NiwgNjQsIHsgMHgwNCwgMHhmMCwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZSwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZSwgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwKLSAgMHgxMSwgMHhkMCwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MH19LAotIHsweDEyYzYsIDY0LCB7IDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4MjIsIDB4MDUsIDB4MGUsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MTQsIDB4MDMsIDB4MDAsIDB4MDAsCi0gIDB4YzEsIDB4MTEsIDB4YzEsIDB4MTgsIDB4YzEsIDB4OTUsIDB4YzEsIDB4MTAsIDB4YzEsIDB4MTYsIDB4MDEsIDB4MGEsIDB4MDAsIDB4YzEsIDB4OWIsIDB4MDAsCi0gIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsIDB4NjAsCi0gIDB4MDUsIDB4MTIsIDB4MGQsIDB4NjAsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MDYsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDEwLCAweDJkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MGYsIDB4Y2YsIDB4MTIsIDB4MGQsIDB4NzEsIDB4MTIsIDB4MGIsIDB4NGEsIDB4MjIsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEwLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgIDQsIHsgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsICAwLCB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMyNGRhYy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2NCArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTQ5d19mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTQ5d19mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTQ5d19maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTgsIDB4ZmJ9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0NiwgMTYsIHsgMHhlNCwgMHhmZiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgxNX19LAotIHsweDAwNTYsIDE2LCB7IDB4MjQsIDB4MDQsIDB4ZmQsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmEsIDB4YTksIDB4MDUsIDB4N2IsIDB4MDEsIDB4ZWYsIDB4N2MsIDB4MDAsIDB4MjksIDB4Zjl9fSwKLSB7MHgwMDY2LCAxNiwgeyAweGVjLCAweDNhLCAweGZhLCAweGVlLCAweDEyLCAweDExLCAweGYxLCAweDBmLCAweGJmLCAweDIyLCAweGQ3LCAweGU1LCAweDE1LCAweDI0LCAweDA1LCAweGY1fX0sCi0gezB4MDA3NiwgMTYsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMSwgMHgzNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOX19LAotIHsweDAwODYsIDE2LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwMDk2LCAxNiwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDE4LCAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweGU1fX0sCi0gezB4MDBhNiwgMTYsIHsgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhjZiwgMHhmMCwgMHg4MCwgMHg0MX19LAotIHsweDAwYjYsIDE2LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NzZ9fSwKLSB7MHgwMGM2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDAwLCAweDAzfX0sCi0gezB4MDBkNiwgMTYsIHsgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMn19LAotIHsweDAwZTYsIDE2LCB7IDB4MTYsIDB4NDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MzB9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwfX0sCi0gezB4MDAwMywgMTYsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAotIHsweDAwMTMsIDE2LCB7IDB4MDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKLSB7MHgwMDIzLCAxNiwgeyAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MTAsIDB4OTV9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDMyLCAweGU1LCAweDE1LCAweDI0LCAweDBjfX0sCi0gezB4MDE0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMiwgMHg0ZiwgMHhlNX19LAotIHsweDAxODYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTV9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDE1LCAweDI0LCAweDBlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAotICAweDMzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDBmfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHhlNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHgxNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNH19LAotIHsweDAyNDYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4YjcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4NDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDEyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDEzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCi0gezB4MDJjNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4Mn19LAotIHsweDAzMDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LAotICAweDE1LCAweDI0LCAweDE5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LAotICAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LAotICAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDkwLCAweDc4fX0sCi0gezB4MDM4NiwgNjQsIHsgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAotIHsweDAzYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MDAsCi0gIDB4MzYsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDFiLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDQ3LCAweGU1fX0sCi0gezB4MDQ0NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgyYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg3MCwgMHgwZSwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyYSwgMHg5MCwgMHg3OCwgMHg0MSwKLSAgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDA0ODYsIDY0LCB7IDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZWYsIDB4NjAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFlLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDQ3LAotICAweGU1LCAweDE1LCAweDI0LCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyNywgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwKLSAgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAotIHsweDA1NDYsIDY0LCB7IDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjEsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwNTg2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LAotICAweDAxLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHgwMywgMHgxMiwgMHgxOCwgMHg4NSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHg2MCwgMHgxYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwOCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNiwgMHhmNCwgMHhmZSwgMHhlZiwgMHg1ZSwgMHhmMCwgMHhlNSwgMHgxNX19LAotIHsweDA2MDYsIDY0LCB7IDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDUsIDB4MTYsCi0gIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MTIsIDB4MDMsIDB4MDcsIDB4ODMsIDB4MDAsIDB4MDcsIDB4ZjcsIDB4MDEsIDB4MDgsCi0gIDB4NjMsIDB4MDMsIDB4MDYsIDB4NGMsIDB4MDYsIDB4MDcsIDB4NzQsIDB4MDgsIDB4MDcsIDB4NjgsIDB4MDksIDB4MDcsIDB4NTAsIDB4MGEsIDB4MDd9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDVmLCAweDBiLCAweDAwLCAweDAwLCAweDA4LCAweGIyLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFjLCAweDE0LCAweDcwLCAweDAzLAotICAweDAyLCAweDA2LCAweGZlLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDQ2LCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAotICAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLAotICAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDMwLCAweGUwLCAweDA0LCAweDdmLCAweDAzLCAweDgwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHgwMiwgMHg3ZiwgMHgwMiwgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg2ZCwgMHg3NSwgMHg4MywgMHgxOSwKLSAgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1ZiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwKLSAgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNCwgMHg3ZiwgMHg2NCwgMHg4MCwKLSAgMHgwMiwgMHg3ZiwgMHgzMiwgMHg3NSwgMHg4MiwgMHgxYSwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlZiwgMHhlMH19LAotIHsweDA2YzYsIDY0LCB7IDB4ZmUsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4N2MsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4MTksIDB4ZWMsIDB4M2UsIDB4ZjUsIDB4MTgsIDB4NzUsIDB4MzMsCi0gIDB4MTksIDB4NzUsIDB4MzQsIDB4MTIsIDB4NzUsIDB4ODIsIDB4MTQsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZTAsIDB4NzUsIDB4MjcsIDB4MDAsIDB4ZjUsIDB4MjgsCi0gIDB4ZDMsIDB4ZTUsIDB4MjgsIDB4OTUsIDB4MTksIDB4ZTUsIDB4MjcsIDB4OTUsIDB4MTgsIDB4NDAsIDB4MDYsIDB4ODUsIDB4MTgsIDB4MjcsIDB4ODUsIDB4MTksCi0gIDB4MjgsIDB4MTIsIDB4MTMsIDB4MTIsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTQsIDB4MmJ9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGVhLCAweDQ5LCAweDYwLCAweDMyLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDc1LCAweDE4LCAweDAwLCAweGY1LCAweDE5LCAweGFlLCAweDAyLCAweGFmLCAweDAxLAotICAweDhlLCAweDMzLCAweDhmLCAweDM0LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDhlLCAweDI3LCAweGY1LCAweDI4LAotICAweGQzLCAweDk1LCAweDE5LCAweGU1LCAweDI3LCAweDk1LCAweDE4LCAweDQwLCAweDA2LCAweDg1LCAweDE4LCAweDI3LCAweDg1LCAweDE5LCAweDI4LCAweDEyLAotICAweDEzLCAweDEyLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5fX0sCi0gezB4MDc0NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyNSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgyNSwgMHgwMiwgMHgwOCwKLSAgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgyMiwgMHgxMiwgMHgwYSwgMHhiOCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhlNSwgMHgyMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlOH19LAotIHsweDA3ODYsIDY0LCB7IDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsCi0gIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODB9fSwKLSB7MHgwN2M2LCA2NCwgeyAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5LAotICAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA4LCAweGI5fX0sCi0gezB4MDgwNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZn19LAotIHsweDA4NDYsIDY0LCB7IDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsCi0gIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsCi0gIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsCi0gIDB4MDAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWF9fSwKLSB7MHgwODg2LCA2NCwgeyAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LAotICAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLAotICAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweGU1LCAweDExLCAweDU0LCAweDBmLCAweDcwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHgwMywgMHgwMiwgMHgwOSwgMHhiMiwgMHgxMiwgMHgxNiwgMHhhNSwgMHhlZiwgMHgyMCwgMHhlMSwgMHg3NSwgMHgxMiwgMHgxNywgMHgwMywgMHhlZiwgMHgxNCwgMHhmNSwKLSAgMHgxOSwgMHgxMiwgMHgxOCwgMHhjYywgMHhlZiwgMHgyNSwgMHgxOSwgMHhmZiwgMHhlNCwgMHgzMywgMHhmZSwgMHhjMywgMHhlZiwgMHg5NCwgMHg4MCwgMHhlZSwKLSAgMHg2NCwgMHg4MCwgMHg5NCwgMHg4MCwgMHg1MCwgMHg1OSwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwKLSAgMHhmZiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4Mn19LAotIHsweDA5MDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTIsIDB4MTIsIDB4ZTUsIDB4MTksIDB4NjAsIDB4MGUsIDB4ZjUsIDB4MjMsIDB4ZWYsIDB4MjQsCi0gIDB4MDEsIDB4ZjUsIDB4MmQsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4MmMsIDB4MTIsIDB4MTQsIDB4YWQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTQsIDB4ZTN9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU3LCAweDVkLCAweDEyLCAweDE4LAotICAweGNjLCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGVmLCAweGMzLAotICAweDllLCAweDUwLCAweDQ4LCAweGU1LCAweDE1LCAweDI0LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLAotICAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdifX0sCi0gezB4MDk4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwKLSAgMHgxMywgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgyNCwgMHg4MCwgMHgwMywgMHgxMiwgMHgxMiwgMHhhMSwgMHgxMiwgMHgxNiwgMHhkNCwgMHhlZiwgMHgzMCwKLSAgMHhlMSwgMHgwMywgMHgwMiwgMHgwYSwgMHhiNywgMHgxMiwgMHgxNywgMHhkMiwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxOCwgMHhkOCwgMHhlNSwgMHgxNX19LAotIHsweDA5YzYsIDY0LCB7IDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OWYsIDB4NTAsIDB4MjgsIDB4MTIsIDB4MTgsIDB4YjQsCi0gIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MjEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4MjAsIDB4ZTcsIDB4MTIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDBhLCAweGI3LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDE5LCAweDcwLCAweDAzLCAweDAyLCAweDBhLCAweGI3LCAweGI0LCAweDgwLCAweDBmLCAweGU1LCAweDE1LAotICAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDMwLCAweGU3LCAweDI5LCAweGU1LCAweDE5fX0sCi0gezB4MGE0NiwgNjQsIHsgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgyMCwgMHg4NSwgMHgxOSwgMHgyMywgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywKLSAgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHg4YywgMHgyYywgMHhmNSwgMHgyZCwgMHgxMiwgMHgxMywgMHhkZCwgMHhlNSwgMHgxOSwgMHgyNSwKLSAgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHgxOSwgMHgyMiwgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgzZiwKLSAgMHg4NSwgMHgxOSwgMHgyMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDBhODYsIDY0LCB7IDB4ZmYsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsCi0gIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4MjQsIDB4MDEsCi0gIDB4ZjUsIDB4MmQsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4MmMsIDB4MTIsIDB4MTQsIDB4NmMsIDB4ZTUsIDB4MTksIDB4MDQsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4MTksCi0gIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTZ9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDc4LCAweDRhLCAweDA0LCAweGYwLCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweDk1LCAweDc0LAotICAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDFmLCAweGYwLCAweDkwLCAweDc4LAotICAweDQzLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweDlmLCAweGYwLCAweDkwLAotICAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1fX0sCi0gezB4MGIwNiwgNjQsIHsgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwZiwgMHgxMiwKLSAgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwKLSAgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NH19LAotIHsweDBiNDYsIDY0LCB7IDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2UsIDB4ZjAsCi0gIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsCi0gIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MGYsIDB4MTIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwYjg2LCA2NCwgeyAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDg1LAotICAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweGMwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDAwLAotICAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdlLCAweGYwLCAweGEzLCAweDc0LCAweDAwLCAweGYwLCAweDdlLAotICAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwfX0sCi0gezB4MGJjNiwgNjQsIHsgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwZiwgMHgxMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwKLSAgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywKLSAgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NX19LAotIHsweDBjMDYsIDY0LCB7IDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MGYsIDB4MTIsCi0gIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzR9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDAzLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweGMwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdjLCAweGYwLCAweGEzLCAweDc0LAotICAweGMwLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDAwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLAotICAweGYwLCAweGEzLCAweDc0LCAweDAwLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDA5LCAweGQyLCAweDAyLCAweDIyLCAweGU1LCAweDEwLCAweDA0LCAweDU0LAotICAweDAzLCAweGY1LCAweDEwLCAweDE0LCAweDYwLCAweDFmLCAweDE0LCAweDYwLCAweDMxLCAweDE0LCAweDYwLCAweDQzLCAweDI0LCAweDAzLCAweDcwfX0sCi0gezB4MGM4NiwgNjQsIHsgMHg1MiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwMSwgMHg4MCwgMHgzZCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwKLSAgMHg3ZiwgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHg4MCwgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHg4MCwgMHgxM319LAotIHsweDBjYzYsIDY0LCB7IDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsCi0gIDB4MTYsIDB4MDgsIDB4ZTUsIDB4MzIsIDB4NTUsIDB4MTYsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MGUsIDB4MTEsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4ZmYsIDB4NTIsCi0gIDB4MzIsIDB4ZTUsIDB4MjYsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NzAsIDB4MGYsIDB4ZTUsIDB4MmEsIDB4NTUsIDB4MTYsIDB4NjAsIDB4MjQsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4ZTAsIDB4NDUsIDB4MTYsIDB4ZjAsIDB4ODAsIDB4MWIsIDB4YmUsIDB4MjAsIDB4MTgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjV9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUzLCAweDA5LCAweGU0LCAweGY1LCAweDJhLCAweDkwLCAweDdmLCAweDk4LCAweGUwLAotICAweDVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDAzLAotICAweGUwLCAweDE0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDAzLCAweGUwLCAweDE0LCAweGYwLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBlLCAweDExLCAweDc0LCAweDBhLCAweGYwLCAweDEyLCAweDAwfX0sCi0gezB4MGQ0NiwgNjQsIHsgMHgzNiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmZiwgMHhmNSwgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg2ZiwgMHg2MCwgMHgwNywgMHhlNSwgMHgxOSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHgxMiwgMHgxOCwgMHhlNCwgMHg4ZiwKLSAgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOSwKLSAgMHg1NCwgMHgxMCwgMHhmZSwgMHg2ZiwgMHg2MCwgMHgwNiwgMHhlZSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNH19LAotIHsweDBkODYsIDY0LCB7IDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTksIDB4NTQsIDB4ODAsIDB4ZmUsIDB4NmYsIDB4NjAsCi0gIDB4MDYsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTksIDB4NTQsIDB4MjAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MTUsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MDQsIDB4ZTUsIDB4MTZ9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDQyLCAweDEzLCAweGU1LCAweDEyLCAweDU1LCAweDE2LCAweGZmLCAweGY1LCAweDE5LCAweGU1LCAweDE1LCAweDI0LCAweDJhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDZmLCAweDYwLCAweDE2LCAweGU1LCAweDE5LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU1LCAweDA0LCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE3LCAweDU1LAotICAweDE2LCAweGZmLCAweGY1LCAweDE5LCAweGU1LCAweDE1LCAweDI0LCAweDMwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzfX0sCi0gezB4MGUwNiwgNjQsIHsgMHhlMCwgMHg2ZiwgMHg2MCwgMHgwNywgMHhlNSwgMHgxOSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHgyMiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwZiwKLSAgMHgxMSwgMHhlNSwgMHgyNCwgMHgxNCwgMHg2MCwgMHgyYSwgMHgxNCwgMHg2MCwgMHg0MSwgMHgxNCwgMHg2MCwgMHg1OCwgMHgxNCwgMHg2MCwgMHg2ZiwgMHgyNCwKLSAgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZSwgMHhjZiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwKLSAgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgxMiwgMHhhMSwgMHg3NSwgMHgyNCwgMHgwMX19LAotIHsweDBlNDYsIDY0LCB7IDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MTIsIDB4YTEsIDB4NzUsIDB4MjQsIDB4MDIsIDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MTIsIDB4YTEsCi0gIDB4NzUsIDB4MjQsIDB4MDMsIDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTB9fSwKLSB7MHgwZTg2LCA2NCwgeyAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDEyLCAweGExLCAweDc1LCAweDI0LCAweDA0LCAweDIyLCAweDMwLCAweDA0LAotICAweDMzLCAweGMyLCAweDA0LCAweDUzLCAweDEzLCAweGRmLCAweGU0LCAweGY1LCAweDE5LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJlLCAweDI1LAotICAweDE5LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDExLCAweGFiLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE5LCAweGY1LCAweDgyLAotICAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE5LCAweGU1LCAweDE5LCAweGI0LCAweDAzLCAweGRiLCAweDkwfX0sCi0gezB4MGVjNiwgNjQsIHsgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHg3NSwgMHgyNCwgMHgwNSwgMHgyMiwgMHhlNSwgMHgzNiwgMHg2MCwgMHgzYiwgMHhkNSwgMHgzNiwgMHgwYSwgMHg1MywKLSAgMHgxMywgMHhlZiwgMHgzMCwgMHgwYSwgMHgwNCwgMHhkMiwgMHgwOSwgMHhjMiwgMHgwYSwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwKLSAgMHg3NCwgMHgzNSwgMHgyNSwgMHgxOSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgxMSwgMHhhYiwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwKLSAgMHgxOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOSwgMHhlNSwgMHgxOSwgMHhiNH19LAotIHsweDBmMDYsIDY0LCB7IDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjQsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MWEsIDB4N2UsIDB4MDAsCi0gIDB4N2IsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjUsIDB4MWEsIDB4ZjksIDB4ZWUsIDB4MzUsIDB4MTQsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MTEsIDB4ZjEsIDB4MDUsCi0gIDB4MWEsIDB4ZTUsIDB4MWEsIDB4YjQsIDB4M2MsIDB4ZTgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjV9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLAotICAweDEyLCAweDE2LCAweDQ3LCAweDdmLCAweDEwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGVmLCAweGYwLCAweDEyLCAweDE1LCAweGI3LCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAyLCAweGYwLCAweDdmLCAweDAxLCAweGU1LCAweDE1LCAweDI0LAotICAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwfX0sCi0gezB4MGY4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHg3NCwgMHg4MCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNCwgMHhmZiwKLSAgMHg3ZSwgMHhhMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZSwgMHhmMCwgMHhmZCwKLSAgMHgxMiwgMHgxNiwgMHg0NywgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3Zn19LAotIHsweDBmYzYsIDY0LCB7IDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTYsIDB4NDcsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTUsIDB4NGYsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTYsCi0gIDB4NDcsIDB4MjIsIDB4NTMsIDB4MTMsIDB4M2YsIDB4OTAsIDB4N2IsIDB4ZjEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsCi0gIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsCi0gIDB4MDgsIDB4YzEsIDB4OTAsIDB4N2MsIDB4MzEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTR9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDA4LCAweGMxLCAweDkwLAotICAweDdjLCAweDcxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLAotICAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDA4LCAweGMxLCAweDkwLCAweDdjLCAweGIxLCAweGUwLAotICAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmfX0sCi0gezB4MTA0NiwgNjQsIHsgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwOCwgMHhjMSwgMHgwNSwgMHgxMSwgMHhlNSwgMHgxMSwgMHg1NCwgMHgwZiwgMHhmNSwKLSAgMHgxOCwgMHg3MCwgMHgxZiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OSwgMHhlMCwgMHhmNSwgMHgxNywKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OSwgMHhlMCwgMHhmNCwgMHhmNSwgMHgxMiwgMHgxMiwgMHgxMSwKLSAgMHgyMSwgMHgyMiwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMSwgMHgwNCwgMHgxMiwgMHgwYywgMHg3MywgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMH19LAotIHsweDEwODYsIDY0LCB7IDB4MjAsIDB4ZTEsIDB4MDgsIDB4ZTUsIDB4MTMsIDB4NjAsIDB4MDQsIDB4MTIsIDB4MGUsIDB4MTIsIDB4MjIsIDB4MTIsIDB4MGMsIDB4NzMsIDB4MjIsIDB4NzgsIDB4N2YsCi0gIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4MzcsIDB4MDIsIDB4MTAsIDB4ZGMsIDB4MDIsIDB4MTIsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsCi0gIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsCi0gIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjB9fSwKLSB7MHgxMGM2LCA2NCwgeyAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LAotICAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDE4LCAweDUwLCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLAotICAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LAotICAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4fX0sCi0gezB4MTEwNiwgNjQsIHsgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwKLSAgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgzMCwgMHhlMSwKLSAgMHgwMywgMHgwMiwgMHgxMSwgMHhhYSwgMHhjMiwgMHgwOSwgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHgxNCwgMHg2MCwgMHgyNiwgMHgxNCwgMHg2MCwgMHgzYiwKLSAgMHgxNCwgMHg2MCwgMHg1MCwgMHgyNCwgMHg4MywgMHg2MCwgMHg2NCwgMHgyNCwgMHg4MCwgMHg3MCwgMHg2MywgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMH19LAotIHsweDExNDYsIDY0LCB7IDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MDAsCi0gIDB4NDYsIDB4ODAsIDB4NGIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MzMsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsCi0gIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTJ9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDAwLCAweDQ2LCAweDgwLCAweDFiLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LAotICAweDc0LCAweDdmLCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDAzLCAweDEyLCAweDE3LCAweDVjLCAweGU0LCAweDkwLAotICAweDdmLCAweGQzLCAweGYwLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LAotICAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxfX0sCi0gezB4MTFjNiwgNjQsIHsgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwKLSAgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwKLSAgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwKLSAgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMH19LAotIHsweDEyMDYsIDY0LCB7IDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsCi0gIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsCi0gIDB4ODAsIDB4ZGYsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsCi0gIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjB9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLAotICAweDkwLCAweDdmLCAweGFmLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweDc0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweDBiLAotICAweDEyLCAweDE4LCAweDE0LCAweGMyLCAweDAxLCAweGU0LCAweGY1LCAweDJiLCAweGY1LCAweDMxLCAweGMyLCAweDA3LCAweGMyLCAweDAyLCAweDc1LCAweDI5LAotICAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDI2LCAweDYwLCAweDA2LCAweDc1LCAweDMyLCAweDBmLCAweGUwLCAweGY1LCAweDI2fX0sCi0gezB4MTI4NiwgNjQsIHsgMHgzMCwgMHgwMiwgMHgwMywgMHgxMiwgMHgwZiwgMHhkOSwgMHgzMCwgMHgwMSwgMHgwNywgMHhjMiwgMHgwMSwgMHgxMiwgMHgwNiwgMHgyOSwgMHg4MCwgMHhlMiwgMHgzMCwKLSAgMHgwOCwgMHhkZiwgMHhjMiwgMHgwOCwgMHgxMiwgMHgxOCwgMHgzNSwgMHg4MCwgMHhkOCwgMHgyMiwgMHhlNSwgMHgxMywgMHg1NSwgMHgxNiwgMHg2MCwgMHg2YSwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHg1YywgMHhlNSwgMHgxNiwKLSAgMHhmNCwgMHg1MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmZiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmZSwgMHhlNCwgMHhmZCwgMHgwZn19LAotIHsweDEyYzYsIDY0LCB7IDB4ZWYsIDB4YWEsIDB4MDYsIDB4NzAsIDB4MDEsIDB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzQsIDB4ODAsIDB4MmQsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4YmQsIDB4MGIsIDB4ZTIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsCi0gIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MTAsIDB4ZjAsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTV9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDI0LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDIyLCAweGU1LCAweDI4LCAweDQ1LCAweDI3LCAweDYwLAotICAweDU3LCAweGFlLCAweDI3LCAweGFmLCAweDI4LCAweGQzLCAweGVmLCAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDdlLCAweDAwLAotICAweDdmLCAweDQwLCAweGMzLCAweGU1LCAweDI4LCAweDlmLCAweGY1LCAweDI4LCAweGU1LCAweDI3LCAweDllLCAweGY1LCAweDI3LCAweGU0LCAweGZkLCAweGVkLAotICAweGMzLCAweDlmLCAweGU0LCAweDllLCAweDUwLCAweDFmLCAweDg1LCAweDM0LCAweDgyLCAweDg1LCAweDMzLCAweDgzLCAweGUwLCAweGZjLCAweDc0fX0sCi0gezB4MTM0NiwgNjQsIHsgMHgwMCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHgwZCwgMHgwNSwgMHgzNCwgMHhlNSwgMHgzNCwgMHg3MCwKLSAgMHgwMiwgMHgwNSwgMHgzMywgMHg4MCwgMHhkYSwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhlZiwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNCwKLSAgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhmMH19LAotIHsweDEzODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NGEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsCi0gIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4MDcsIDB4ZTUsIDB4MjksIDB4NTQsIDB4ZjAsIDB4ZmYsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4ZWYsIDB4NDQsIDB4MDgsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGYwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLCAweDdmLAotICAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDJkLCAweGU1LCAweDJkLCAweGFlLCAweDJjLCAweDcwLCAweDAyLAotICAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDE4LCAweGYwLCAweDA1LCAweDJkLCAweGU1LAotICAweDJkLCAweGFjLCAweDJjLCAweDcwLCAweDAyLCAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1fX0sCi0gezB4MTQwNiwgNjQsIHsgMHgyMywgMHhlNSwgMHgyMywgMHg2MCwgMHgxZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhjMCwKLSAgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZSwgMHgxMiwgMHgxOCwgMHhkOCwgMHg4ZiwgMHgxYSwgMHhlZSwgMHg0ZiwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywKLSAgMHhmMCwgMHg4MCwgMHhiNSwgMHgyMiwgMHg4ZiwgMHgxYSwgMHhlNCwgMHhmNSwgMHgxYiwgMHg3NSwgMHgxYywgMHhmZiwgMHg3NSwgMHgxZCwgMHgxOSwgMHg3NSwKLSAgMHgxZSwgMHg4NiwgMHhhYiwgMHgxYywgMHhhYSwgMHgxZCwgMHhhOSwgMHgxZSwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxMSwgMHhjNCwgMHhiNH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDMsIDB4MWQsIDB4YWYsIDB4MWIsIDB4MDUsIDB4MWIsIDB4ZWYsIDB4YjUsIDB4MWEsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MTEsIDB4YWIsIDB4N2UsIDB4MDAsIDB4MjksCi0gIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWMsIDB4ZmYsIDB4ZjUsIDB4MWQsIDB4ODksIDB4MWUsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsCi0gIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NGYsIDB4NzQsIDB4YzAsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTAsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4OTAsIDB4NzgsIDB4NTEsIDB4ZjAsIDB4YWUsIDB4MmMsIDB4ZTUsIDB4MmR9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDkwLCAweDc4LCAweDUyLCAweGYwLCAweDkwLCAweDc4LCAweDU0LCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDc4LCAweDU3LCAweDc0LCAweDA0LCAweGYwLCAweDkwLAotICAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDU1LCAweGYwLCAweDkwLAotICAweDc4LCAweDU1LCAweGUwLCAweDYwLCAweGZhLCAweDIyLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweGU1LCAweDJjLCAweDkwLCAweDc4LCAweDRmLAotICAweGYwLCAweGFlLCAweDJjLCAweGU1LCAweDJkLCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweDkwLCAweDc4LCAweDUxLCAweDc0LCAweGMwLCAweGYwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NywgMHg3NCwgMHgwNCwgMHhmMCwKLSAgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwgMHg2MCwgMHgxMywgMHgxNCwgMHg2MCwKLSAgMHgxNywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlZiwgMHhmMCwgMHg4MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlZiwgMHhmMH19LAotIHsweDE1MDYsIDY0LCB7IDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsCi0gIDB4MmEsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsCi0gIDB4MGYsIDB4MTQsIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsCi0gIDB4OTAsIDB4N2YsIDB4YjksIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDdmLCAweGJkLCAweGVmLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDJhLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDMyLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweDkwLCAweDc4LAotICAweDQxLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweDIyLCAweGMwLCAweGUwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwKLSAgMHg3NSwgMHhkMCwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgxMiwgMHgxMywgMHgxMiwgMHhkMCwKLSAgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MX19LAotIHsweDE1YzYsIDY0LCB7IDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsCi0gIDB4MDQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTV9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LAotICAweDA2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHg5MCwKLSAgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MX19LAotIHsweDE2ODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsCi0gIDB4MTQsIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNjLCAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDE1LCAweDI0LAotICAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LAotICAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDE1LCAweDI0fX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwgMHg2MCwKLSAgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwKLSAgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwKLSAgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMH19LAotIHsweDE3NDYsIDY0LCB7IDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4NDMsIDB4MTMsIDB4MTAsIDB4YTMsIDB4ZTAsCi0gIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4OTAsIDB4N2IsIDB4NDMsIDB4ZTAsIDB4ZjUsCi0gIDB4MzcsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZjAsIDB4ZjUsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4YzAsIDB4ZTB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAxLCAweDUzLCAweDkxLAotICAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLAotICAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LAotICAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHgxMiwgMHgxOCwgMHhjMCwgMHhhZSwgMHgwNywKLSAgMHgxMiwgMHgxOCwgMHhjMCwgMHhhZCwgMHgwNywgMHhlZSwgMHg2ZCwgMHg2MCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhjMCwgMHhhZSwgMHgwNywgMHhlZSwgMHg2ZCwKLSAgMHg2MCwgMHgwNywgMHgxMiwgMHgxOCwgMHhjMCwgMHhhZCwgMHgwNywgMHg4MCwgMHhlYywgMHhhZiwgMHgwNiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwKLSAgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDE4MDYsIDY0LCB7IDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCi0gIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MGIsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCi0gIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTgsIDB4NmIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsCi0gIDB4N2MsIDB4MTIsIDB4MTgsIDB4MDQsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MGEsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDEyLCAweDE4LCAweDZiLCAweDEyLCAweDE4LCAweDllLCAweDEyLCAweDBhLCAweGI4LCAweDIyLCAweDAzLCAweDM1LCAweDgwLCAweDAwLCAweDAwLCAweDAzLCAweDJlLAotICAweDgxLCAweDAwLCAweDAwLCAweGMxLCAweDg1LCAweGMxLCAweDgxLCAweGMxLCAweDA4LCAweGMxLCAweDAwLCAweGMxLCAweDA2LCAweDAxLCAweDIyLCAweDAwLAotICAweDAxLCAweDI0LCAweDAwLCAweDAwLCAweDhlLCAweDE4LCAweDhmLCAweDE5LCAweGU1LCAweDE5LCAweDE1LCAweDE5LCAweGFlLCAweDE4LCAweDcwLCAweDAyLAotICAweDE1LCAweDE4LCAweDRlLCAweDYwLCAweDA4LCAweDEyLCAweDE3LCAweGYzLCAweDEyLCAweDE3LCAweGYzLCAweDgwLCAweGViLCAweDIyLCAweGU1fX0sCi0gezB4MTg4NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgwNCwgMHhmZiwgMHg0NCwgMHgxMCwgMHg5MCwgMHg3ZiwKLSAgMHhkNywgMHhmMCwgMHhlZiwgMHg0NCwgMHgzMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwKLSAgMHg3ZSwgMHgwMCwgMHgxMiwgMHgxOCwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwKLSAgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMH19LAotIHsweDE4YzYsIDY0LCB7IDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsCi0gIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsCi0gIDB4NzQsIDB4MDYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDBhLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDA0LCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDM0LCAweDAwLCAweDJkLCAweDAwLCAweDcwLCAweDAwLCAweDZmLCAweDAwLCAweDcyLCAweDAwLCAweDc0LAotICAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDIwLAotICAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwfX0sCi0gezB4MWEwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWFjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgxNywgMHg4NCwgMHgwMCwgMHgwMiwgMHgxYn19LAotIHsweDFiMDYsIDIxLCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MTcsIDB4MzIsIDB4MDAsIDB4MDIsIDB4MTcsIDB4YWIsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTQsCi0gIDB4MDAsIDB4MDIsIDB4MTUsIDB4ODR9fSwKLSB7MHhmZmZmLCAwLCB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3bGNfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d2xjX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZjA2YTMuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3bGNfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3NiArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTQ5d19mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTQ5d19mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDMKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLXN0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTQ5W10gPQotCSIwMi8xNC8yMDAyICAwMjozN3AgICAgICAgICAgICAgIDE5LDM0NyBVU0E0OSI7Ci0KLQotCi1zdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU2NVtdID0KLQkiMDEvMzEvMjAwMyAgMDk6MzRhICAgICAgICAgICAgICAxOSwzMzEgVVNBNjUiOwotCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlW10gPSB7Ci0gezB4N2Y5MiwgIDEsIHsgMHgwMX19LAotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTgsIDB4ZmJ9fSwKLSB7MHgwMDM2LCAxMywgeyAweGU1LCAweDExLCAweDA0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0NiwgMTYsIHsgMHhlNCwgMHhmZiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgxNX19LAotIHsweDAwNTYsIDE2LCB7IDB4MjQsIDB4MDQsIDB4ZmQsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmEsIDB4YTksIDB4MDUsIDB4N2IsIDB4MDEsIDB4ZWYsIDB4N2MsIDB4MDAsIDB4MjksIDB4Zjl9fSwKLSB7MHgwMDY2LCAxNiwgeyAweGVjLCAweDNhLCAweGZhLCAweGVlLCAweDEyLCAweDExLCAweGVjLCAweDBmLCAweGJmLCAweDIyLCAweGQ3LCAweGU1LCAweDE1LCAweDI0LCAweDA1LCAweGY1fX0sCi0gezB4MDA3NiwgMTYsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMSwgMHgzNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOX19LAotIHsweDAwODYsIDE2LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwMDk2LCAxNiwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDE4LCAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweGU1fX0sCi0gezB4MDBhNiwgMTYsIHsgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhjZiwgMHhmMCwgMHg4MCwgMHg0MX19LAotIHsweDAwYjYsIDE2LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MDAsIDB4MDN9fSwKLSB7MHgwMGM2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGFifX0sCi0gezB4MDBkNiwgMTYsIHsgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMn19LAotIHsweDAwZTYsIDE2LCB7IDB4MTYsIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MzB9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwfX0sCi0gezB4MDAwMywgMTYsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAotIHsweDAwMTMsIDE2LCB7IDB4ZjAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKLSB7MHgwMDIzLCAxNiwgeyAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MTAsIDB4OTB9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDMyLCAweGU1LCAweDE1LCAweDI0LCAweDBjfX0sCi0gezB4MDE0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMiwgMHg0ZiwgMHhlNX19LAotIHsweDAxODYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTV9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDE1LCAweDI0LCAweDBlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAotICAweDMzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDBmfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHgwYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHgzYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNH19LAotIHsweDAyNDYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4ZGIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4NDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDEyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDEzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCi0gezB4MDJjNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4Mn19LAotIHsweDAzMDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjV9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LAotICAweDE1LCAweDI0LCAweDE5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LAotICAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LAotICAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDkwLCAweDc4fX0sCi0gezB4MDM4NiwgNjQsIHsgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAotIHsweDAzYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4MTIsIDB4MDAsCi0gIDB4MzYsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDFiLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDZiLCAweGU1fX0sCi0gezB4MDQ0NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgyYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg3MCwgMHgwZSwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyYSwgMHg5MCwgMHg3OCwgMHg0MSwKLSAgMHg3NCwgMHhmMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDA0ODYsIDY0LCB7IDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZWYsIDB4NjAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFlLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI4LCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZlLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDZiLAotICAweGU1LCAweDE1LCAweDI0LCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyNywgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwKLSAgMHhmZiwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAotIHsweDA1NDYsIDY0LCB7IDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjEsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwNTg2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LAotICAweDAxLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHgwMywgMHgxMiwgMHgxOCwgMHg3YSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHg2MCwgMHgyMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwOCwKLSAgMHhmMCwgMHhlNSwgMHgxNiwgMHhjNCwgMHg1NCwgMHhmMCwgMHhmZiwgMHg0MiwgMHgxMSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0ZiwgMHhmMH19LAotIHsweDA2MDYsIDY0LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NGYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NjAsIDB4MjQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsCi0gIDB4ZjcsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4ZjQsIDB4ZmYsIDB4NTIsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NWYsCi0gIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NWYsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MTEsIDB4ZmV9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDA3LCAweDk5LCAweDAwLCAweDA4LCAweDBkLCAweDAxLCAweDA4LCAweDc5LCAweDAzLCAweDA2LCAweDYyLCAweDA2LCAweDA3LCAweDhhLCAweDA4LCAweDA3LCAweDdlLAotICAweDA5LCAweDA3LCAweDY2LCAweDBhLCAweDA3LCAweDc1LCAweDBiLCAweDAwLCAweDAwLCAweDA4LCAweGM4LCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LAotICAweGZlLCAweDYwLCAweDFjLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA3LCAweDE0LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDVjLAotICAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA4LCAweGNmfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgzMCwKLSAgMHhlMCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwKLSAgMHg3NSwgMHg4MiwgMHg2ZCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwKLSAgMHg1ZiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYX19LAotIHsweDA2YzYsIDY0LCB7IDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDQsIDB4N2YsIDB4NjQsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MzIsIDB4NzUsIDB4ODIsIDB4MWEsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWYsIDB4ZTAsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4N2MsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4MTgsCi0gIDB4ZWMsIDB4M2UsIDB4ZjUsIDB4MTcsIDB4NzUsIDB4MzMsIDB4MTksIDB4NzUsIDB4MzQsIDB4MTIsIDB4NzUsIDB4ODIsIDB4MTQsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZTAsIDB4NzUsIDB4MjcsIDB4MDAsIDB4ZjUsIDB4MjgsIDB4ZDMsIDB4ZTUsIDB4MjgsIDB4OTUsIDB4MTgsIDB4ZTUsIDB4MjcsIDB4OTUsIDB4MTd9fSwKLSB7MHgwNzA2LCA2NCwgeyAweDQwLCAweDA2LCAweDg1LCAweDE3LCAweDI3LCAweDg1LCAweDE4LCAweDI4LCAweDEyLCAweDEzLCAweDBkLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGZmLCAweDEyLCAweDE0LCAweDVmLCAweGVhLCAweDQ5LCAweDYwLCAweDMyLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDc1LCAweDE3LCAweDAwLAotICAweGY1LCAweDE4LCAweGFlLCAweDAyLCAweGFmLCAweDAxLCAweDhlLCAweDMzLCAweDhmLCAweDM0LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZlLAotICAweGEzLCAweGUwLCAweDhlLCAweDI3LCAweGY1LCAweDI4LCAweGQzLCAweDk1LCAweDE4LCAweGU1LCAweDI3LCAweDk1LCAweDE3LCAweDQwLCAweDA2fX0sCi0gezB4MDc0NiwgNjQsIHsgMHg4NSwgMHgxNywgMHgyNywgMHg4NSwgMHgxOCwgMHgyOCwgMHgxMiwgMHgxMywgMHgwZCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwKLSAgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHhmNSwgMHgyNSwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgyMiwgMHgxMiwgMHgwYX19LAotIHsweDA3ODYsIDY0LCB7IDB4Y2UsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsCi0gIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsCi0gIDB4NWIsIDB4YTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4ZTR9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLAotICAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLAotICAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLAotICAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGI0fX0sCi0gezB4MDgwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwKLSAgMHg2MCwgMHgwMywgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMiwgMHgwOCwKLSAgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwKLSAgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NH19LAotIHsweDA4NDYsIDY0LCB7IDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsCi0gIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTB9fSwKLSB7MHgwODg2LCA2NCwgeyAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDAwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLAotICAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLAotICAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwKLSAgMHhlNSwgMHgxMiwgMHg1NCwgMHgwZiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwOSwgMHhjOCwgMHgxMiwgMHgxNiwgMHg5YSwgMHhlZiwgMHgyMCwgMHhlMSwgMHg3NSwKLSAgMHgxMiwgMHgxNiwgMHhmOCwgMHhlZiwgMHgxNCwgMHhmNSwgMHgxOCwgMHgxMiwgMHgxOCwgMHhjNSwgMHhlZiwgMHgyNSwgMHgxOCwgMHhmZiwgMHhlNCwgMHgzMywKLSAgMHhmZSwgMHhjMywgMHhlZiwgMHg5NCwgMHg4MCwgMHhlZSwgMHg2NCwgMHg4MCwgMHg5NCwgMHg4MCwgMHg1MCwgMHg1OSwgMHg4NSwgMHgxNSwgMHg4Mn19LAotIHsweDA5MDYsIDY0LCB7IDB4ODUsIDB4MTQsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4MGYsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTIsIDB4MTIsIDB4ZTV9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweDE4LCAweDYwLCAweDBlLCAweGY1LCAweDIzLCAweGVmLCAweDI0LCAweDAxLCAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweGEwLAotICAweGU0LCAweGZmLCAweDEyLCAweDE0LCAweGQ3LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDMwLCAweGU3LCAweDVkLCAweDEyLCAweDE4LCAweGM1LCAweGU1LCAweDE1LCAweDI0LCAweDNiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGVmLCAweGMzLCAweDllLCAweDUwLCAweDQ4LCAweGU1LCAweDE1LCAweDI0LCAweDJmLCAweGY1LCAweDgyfX0sCi0gezB4MDk4NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3YiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMCwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgyNCwgMHg4MCwgMHgwMywgMHgxMn19LAotIHsweDA5YzYsIDY0LCB7IDB4MTIsIDB4OWMsIDB4MTIsIDB4MTYsIDB4YzksIDB4ZWYsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4Y2QsIDB4MTIsIDB4MTcsIDB4YzcsIDB4OGYsIDB4MTgsCi0gIDB4MTIsIDB4MTgsIDB4ZDMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4YzMsCi0gIDB4OWYsIDB4NTAsIDB4MjgsIDB4MTIsIDB4MTgsIDB4YTksIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MjEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjV9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGU3LCAweDEyLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDBhLCAweGNkLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDE4LCAweDcwLCAweDAzLCAweDAyLCAweDBhLAotICAweGNkLCAweGI0LCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwKLSAgMHgzMCwgMHhlNywgMHgyOSwgMHhlNSwgMHgxOCwgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOCwgMHgyMCwgMHg4NSwgMHgxOCwgMHgyMywKLSAgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHg4YywgMHgyYywgMHhmNSwgMHgyZCwKLSAgMHgxMiwgMHgxMywgMHhjZiwgMHhlNSwgMHgxOCwgMHgyNSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHgwZCwgMHgyMiwgMHhlNSwgMHgxOCwgMHhkM319LAotIHsweDBhODYsIDY0LCB7IDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTgsIDB4M2YsIDB4ODUsIDB4MTgsIDB4MjMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsCi0gIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsCi0gIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4MmQsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4MmMsIDB4MTIsIDB4MTQsIDB4MWR9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGU1LCAweDE4LCAweDA0LCAweGZmLCAweDEyLCAweDE1LCAweDBkLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LAotICAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDc4LCAweDRhLCAweDA0LCAweGYwLAotICAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDJmLCAweGYwLCAweDkwLCAweDc4LCAweDQzLCAweDc0LCAweGY3LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHg5ZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwKLSAgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwZiwgMHgyOCwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4Mn19LAotIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCi0gIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsCi0gIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MGZ9fSwKLSB7MHgwYjg2LCA2NCwgeyAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLAotICAweDc1LCAweDE2LCAweDAyLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLAotICAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LAotICAweGMwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDAwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0fX0sCi0gezB4MGJjNiwgNjQsIHsgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwZiwgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwKLSAgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3Zn19LAotIHsweDBjMDYsIDY0LCB7IDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsCi0gIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODAsIDB4ZjAsCi0gIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MGYsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTV9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAzLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweGMwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LAotICAweDgzLCAweDc0LCAweDdjLCAweGYwLCAweGEzLCAweDc0LCAweGMwLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDAwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LAotICAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDAwLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDA5fX0sCi0gezB4MGM4NiwgNjQsIHsgMHhlNCwgMHhmNSwgMHgxMSwgMHhkMiwgMHgwMiwgMHgyMiwgMHhlNSwgMHgxMCwgMHgwNCwgMHg1NCwgMHgwMywgMHhmNSwgMHgxMCwgMHgxNCwgMHg2MCwgMHgxZiwgMHgxNCwKLSAgMHg2MCwgMHgzMSwgMHgxNCwgMHg2MCwgMHg0MywgMHgyNCwgMHgwMywgMHg3MCwgMHg1MiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwKLSAgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHg4MCwgMHgzZCwgMHg3ZSwgMHg3YywKLSAgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NX19LAotIHsweDBjYzYsIDY0LCB7IDB4MTYsIDB4MDIsIDB4ODAsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ODAsIDB4MTMsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsCi0gIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4ZTUsIDB4MzIsIDB4NTUsIDB4MTYsIDB4NzAsCi0gIDB4MDMsIDB4MDIsIDB4MGUsIDB4MjcsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4NTIsIDB4MzIsIDB4ZTUsIDB4MjYsIDB4NTQsIDB4N2YsIDB4ZmYsIDB4NzB9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDE3LCAweGU1LCAweDJhLCAweDU1LCAweDE2LCAweDYwLCAweDM0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweGZlLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLAotICAweGY0LCAweGZkLCAweGVlLCAweDVkLCAweGYwLCAweDgwLCAweDIzLCAweGJmLCAweDIwLCAweDIwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUzLCAweDExLCAweGU0LCAweGY1LCAweDJhLCAweDkwLCAweDdmLCAweDk2LCAweGUwLAotICAweGZmLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwKLSAgMHgwZSwgMHgyNywgMHg3NCwgMHgwYSwgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmZiwgMHhmNSwgMHgxOCwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2ZiwgMHg2MCwgMHgwNywgMHhlNSwgMHgxOH19LAotIHsweDBkODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MTIsIDB4MTgsIDB4ZTEsIDB4OGYsIDB4MTgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjcsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4MTAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsCi0gIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4ODAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTN9fSwKLSB7MHgwZGM2LCA2NCwgeyAweGU1LCAweDE1LCAweDI0LCAweDI5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDIwLAotICAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDMwLCAweGU0LCAweDA0LCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDJhLCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDQwLCAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlfX0sCi0gezB4MGUwNiwgNjQsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNSwgMHgwNCwgMHhlNSwKLSAgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwKLSAgMHgyMiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwZiwgMHgyNywgMHhlNSwgMHgyNCwgMHgxNCwgMHg2MCwgMHgyYSwgMHgxNCwgMHg2MCwgMHg0MSwgMHgxNCwKLSAgMHg2MCwgMHg1OCwgMHgxNCwgMHg2MCwgMHg2ZiwgMHgyNCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZSwgMHhlNSwgMHg3ZSwgMHg3YiwgMHg3Zn19LAotIHsweDBlNDYsIDY0LCB7IDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsCi0gIDB4MTIsIDB4OWMsIDB4NzUsIDB4MjQsIDB4MDEsIDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MTIsIDB4OWMsIDB4NzUsIDB4MjQsIDB4MDIsIDB4MjIsCi0gIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmJ9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDEyLCAweDljLCAweDc1LCAweDI0LCAweDAzLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDEyLCAweDljLAotICAweDc1LCAweDI0LCAweDA0LCAweDIyLCAweDMwLCAweDA0LCAweDMzLCAweGMyLCAweDA0LCAweDUzLCAweDEzLCAweGRmLCAweGU0LCAweGY1LCAweDE4LCAweDdlLAotICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDExLCAweGE2fX0sCi0gezB4MGVjNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHg3NSwgMHgyNCwgMHgwNSwgMHgyMiwgMHhlNSwgMHgzNiwKLSAgMHg2MCwgMHgzYiwgMHhkNSwgMHgzNiwgMHgwYSwgMHg1MywgMHgxMywgMHhlZiwgMHgzMCwgMHgwYSwgMHgwNCwgMHhkMiwgMHgwOSwgMHhjMiwgMHgwYSwgMHhlNCwKLSAgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgzNSwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYX19LAotIHsweDBmMDYsIDY0LCB7IDB4MTIsIDB4MTEsIDB4YTYsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsCi0gIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjQsCi0gIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjUsIDB4MTksIDB4ZjksIDB4ZWUsIDB4MzUsIDB4MTQsCi0gIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MTEsIDB4ZWMsIDB4MDUsIDB4MTksIDB4ZTUsIDB4MTksIDB4YjQsIDB4M2MsIDB4ZTgsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLAotICAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweDdmLCAweDEwLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDEyLCAweDE1LCAweGRiLCAweDkwLCAweDc4LCAweDQxLCAweDc0fX0sCi0gezB4MGY4NiwgNjQsIHsgMHhmMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwKLSAgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHg4MCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwKLSAgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNH19LAotIHsweDBmYzYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTYsIDB4NmIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTUsIDB4NDMsCi0gIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTYsIDB4NmIsIDB4MjIsIDB4NTMsIDB4MTMsIDB4M2YsIDB4OTAsIDB4N2IsIDB4ZjEsIDB4ZTAsIDB4MzAsCi0gIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDA4LCAweGQ3LCAweDkwLCAweDdjLCAweDMxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLAotICAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1LAotICAweDE2LCAweDAyLCAweDEyLCAweDA4LCAweGQ3LCAweDkwLCAweDdjLCAweDcxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDQwLAotICAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0fX0sCi0gezB4MTA0NiwgNjQsIHsgMHgxMiwgMHgwOCwgMHhkNywgMHg5MCwgMHg3YywgMHhiMSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywKLSAgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwOCwgMHhkNywgMHgwNSwKLSAgMHgxMiwgMHhlNSwgMHgxMiwgMHg1NCwgMHgwZiwgMHhmNSwgMHgxNywgMHg3MCwgMHgwNCwgMHgxMiwgMHgxMSwgMHgxYywgMHgyMiwgMHhlNSwgMHgxNywgMHhiNCwKLSAgMHgwMSwgMHgwNCwgMHgxMiwgMHgwYywgMHg4YywgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwOCwgMHhlNSwgMHgxM319LAotIHsweDEwODYsIDY0LCB7IDB4NjAsIDB4MDQsIDB4MTIsIDB4MGUsIDB4MjgsIDB4MjIsIDB4MTIsIDB4MGMsIDB4OGMsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsCi0gIDB4ODEsIDB4MzcsIDB4MDIsIDB4MTAsIDB4ZDcsIDB4MDIsIDB4MTIsIDB4MjQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsCi0gIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsCi0gIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjR9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLAotICAweDkwLCAweDE4LCAweDQ1LCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LAotICAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LAotICAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1fX0sCi0gezB4MTEwNiwgNjQsIHsgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwKLSAgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxMSwgMHhhNSwgMHhjMiwKLSAgMHgwOSwgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHgxNCwgMHg2MCwgMHgyNiwgMHgxNCwgMHg2MCwgMHgzYiwgMHgxNCwgMHg2MCwgMHg1MCwgMHgyNCwgMHg4MywKLSAgMHg2MCwgMHg2NCwgMHgyNCwgMHg4MCwgMHg3MCwgMHg2MywgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNX19LAotIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4NGIsIDB4N2UsIDB4N2MsCi0gIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsIDB4MTYsCi0gIDB4MDIsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MzMsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MWIsIDB4N2V9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LAotICAweDA4LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDAzLCAweDEyLCAweDE3LCAweDUxLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDIyLCAweGJiLAotICAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLAotICAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1fX0sCi0gezB4MTFjNiwgNjQsIHsgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwKLSAgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwKLSAgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwKLSAgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MH19LAotIHsweDEyMDYsIDY0LCB7IDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsCi0gIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OTAsIDB4N2YsIDB4YWUsCi0gIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsCi0gIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmZ9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweDc0LCAweDAxLAotICAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweDc0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweDBiLCAweDEyLCAweDE4LCAweDA5LCAweGMyLCAweDAxLAotICAweGU0LCAweGY1LCAweDJiLCAweGY1LCAweDMxLCAweGMyLCAweDA3LCAweGMyLCAweDAyLCAweDc1LCAweDI5LCAweDBmLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLAotICAweDY1LCAweDI2LCAweDYwLCAweDA2LCAweDc1LCAweDMyLCAweDBmLCAweGUwLCAweGY1LCAweDI2LCAweDMwLCAweDAyLCAweDAzLCAweDEyLCAweDBmfX0sCi0gezB4MTI4NiwgNjQsIHsgMHhlZiwgMHgzMCwgMHgwMSwgMHgwNywgMHhjMiwgMHgwMSwgMHgxMiwgMHgwNiwgMHgzZiwgMHg4MCwgMHhlMiwgMHgzMCwgMHgwOCwgMHhkZiwgMHhjMiwgMHgwOCwgMHgxMiwKLSAgMHgxOCwgMHgyYSwgMHg4MCwgMHhkOCwgMHgyMiwgMHhlNSwgMHgxMywgMHg1NSwgMHgxNiwgMHg2MCwgMHg2YSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHg1YywgMHhlNSwgMHgxNiwgMHhmNCwgMHg1MiwgMHgxMywgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyNiwgMHhmZiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmZSwgMHhlNCwgMHhmZCwgMHgwZiwgMHhlZiwgMHhhYSwgMHgwNiwgMHg3MCwgMHgwMX19LAotIHsweDEyYzYsIDY0LCB7IDB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzQsIDB4ODAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsCi0gIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4YmQsIDB4MGIsIDB4ZTIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmUsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDIyLCAweGU1LCAweDI4LCAweDQ1LCAweDI3LCAweDYwLCAweDU3LCAweGFlLCAweDI3LCAweGFmLCAweDI4LAotICAweGQzLCAweGVmLCAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDdlLCAweDAwLCAweDdmLCAweDQwLCAweGMzLCAweGU1LCAweDI4LAotICAweDlmLCAweGY1LCAweDI4LCAweGU1LCAweDI3LCAweDllLCAweGY1LCAweDI3LCAweGU0LCAweGZkLCAweGVkLCAweGMzLCAweDlmLCAweGU0LCAweDllLCAweDUwLAotICAweDFmLCAweDg1LCAweDM0LCAweDgyLCAweDg1LCAweDMzLCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDAwLCAweDJkLCAweGY1LCAweDgyLCAweGU0fX0sCi0gezB4MTM0NiwgNjQsIHsgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHgwZCwgMHgwNSwgMHgzNCwgMHhlNSwgMHgzNCwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMywgMHg4MCwgMHhkYSwKLSAgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwKLSAgMHhlZiwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0YSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMH19LAotIHsweDEzODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4MDcsIDB4ZTUsIDB4MjksIDB4NTQsIDB4MGYsIDB4ZmYsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4ZGZ9fSwKLSB7MHgxM2M2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDhmLCAweDE5LCAweDA1LCAweDJkLCAweGU1LCAweDJkLCAweGFlLCAweDJjLAotICAweDcwLCAweDAyLCAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDE5LCAweGYwLCAweDEyLCAweDE4LCAweGVmLCAweDA1LAotICAweDJkLCAweGU1LCAweDJkLCAweGFjLCAweDJjLCAweDcwLCAweDAyLCAweDA1LCAweDJjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLAotICAweDE1LCAweDIzLCAweGU1LCAweDIzLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCi0gezB4MTQwNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZSwgMHgxMiwgMHgxOCwgMHhkMywgMHg4ZiwgMHgxOSwgMHhlZSwgMHg0ZiwgMHhkMCwgMHg4MiwKLSAgMHhkMCwgMHg4MywgMHhmMCwgMHg4MCwgMHhiNSwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0ZiwgMHg3NCwKLSAgMHhjMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHhlNSwgMHgyYywgMHg5MCwgMHg3OCwgMHg1MSwgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwKLSAgMHgyZCwgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NywgMHg3NH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsCi0gIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsIDB4OGYsIDB4MTksIDB4ZTQsIDB4ZjUsIDB4MWEsIDB4NzUsIDB4MWIsIDB4ZmYsCi0gIDB4NzUsIDB4MWMsIDB4MTksIDB4NzUsIDB4MWQsIDB4ODYsIDB4YWIsIDB4MWIsIDB4YWEsIDB4MWMsIDB4YTksIDB4MWQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsCi0gIDB4MTEsIDB4YmYsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MWEsIDB4MDUsIDB4MWEsIDB4ZWYsIDB4YjUsIDB4MTksIDB4MDEsIDB4MjIsIDB4MTJ9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDExLCAweGE2LCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFiLCAweGZmLCAweGY1LCAweDFjLCAweDg5LCAweDFkLAotICAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweGU1LCAweDExLCAweGYwLCAweGU1LAotICAweDJjLCAweDkwLCAweDc4LCAweDRmLCAweGYwLCAweGFlLCAweDJjLCAweGU1LCAweDJkLCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweDkwLCAweDc4LCAweDUxLAotICAweDc0LCAweGMwLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDUyLCAweGYwLCAweDkwLCAweDc4LCAweDU0LCAweGU1LCAweDIzLCAweGYwLCAweDkwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHg3OCwgMHg1NywgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwKLSAgMHg2MCwgMHgxMywgMHgxNCwgMHg2MCwgMHgxNywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlZiwgMHhmMCwgMHg4MCwgMHgxMywgMHg5MCwgMHg3ZiwKLSAgMHhjOSwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhjZH19LAotIHsweDE1MDYsIDY0LCB7IDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MmEsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YjcsCi0gIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZWYsIDB4ZjAsCi0gIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YmQsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MmEsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTR9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGZkLCAweDEyLAotICAweDE2LCAweDZiLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE1LAotICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDE2LCAweDZiLAotICAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2fX0sCi0gezB4MTU4NiwgNjQsIHsgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwKLSAgMHgxMiwgMHgxMywgMHgwZCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAotIHsweDE1YzYsIDY0LCB7IDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsCi0gIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2Z9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLAotICAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmfX0sCi0gezB4MTY0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywKLSAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MX19LAotIHsweDE2ODYsIDY0LCB7IDB4NzQsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsCi0gIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2N9fSwKLSB7MHgxNmM2LCA2NCwgeyAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLAotICAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweGZmLCAweDIyLCAweDkwLAotICAweDdmLCAweGI4LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweGZmLAotICAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHhjOSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKLSAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4Nn19LAotIHsweDE3NDYsIDY0LCB7IDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzYsCi0gIDB4NDMsIDB4MTMsIDB4MTAsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsCi0gIDB4OTAsIDB4N2IsIDB4NDMsIDB4ZTAsIDB4ZjUsIDB4MzcsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZjAsIDB4ZjUsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsCi0gIDB4MGEsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzV9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDg2LCAweDAwLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LAotICAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAotICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAotICAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgzMiwgMHgxMiwgMHgxOCwgMHhiNywgMHhhZSwgMHgwNywgMHgxMiwgMHgxOCwgMHhiNywgMHhhZCwgMHgwNywgMHhlZSwgMHg2ZCwgMHg2MCwgMHgxMCwgMHgxMiwgMHgxOCwKLSAgMHhiNywgMHhhZSwgMHgwNywgMHhlZSwgMHg2ZCwgMHg2MCwgMHgwNywgMHgxMiwgMHgxOCwgMHhiNywgMHhhZCwgMHgwNywgMHg4MCwgMHhlYywgMHhhZiwgMHgwNiwKLSAgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwKLSAgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MGIsIDB4MDQsCi0gIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTgsIDB4NjAsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsCi0gIDB4ZjcsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NzcsIDB4MTIsIDB4MTcsIDB4ZjksIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MGEsCi0gIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MTgsIDB4NjAsIDB4MTIsIDB4MTgsIDB4OTMsIDB4MTIsIDB4MGEsIDB4Y2UsIDB4MjIsIDB4MDN9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDM1LCAweDgwLCAweDAwLCAweDAwLCAweDAzLCAweDJlLCAweDgxLCAweDAwLCAweDAwLCAweGMxLCAweDg1LCAweGMxLCAweDgxLCAweGMxLCAweDA4LCAweGMxLCAweDAwLAotICAweGMxLCAweDA2LCAweDAxLCAweDIyLCAweDAwLCAweDAxLCAweDI0LCAweDAwLCAweDAwLCAweDhlLCAweDE3LCAweDhmLCAweDE4LCAweGU1LCAweDE4LCAweDE1LAotICAweDE4LCAweGFlLCAweDE3LCAweDcwLCAweDAyLCAweDE1LCAweDE3LCAweDRlLCAweDYwLCAweDA4LCAweDEyLCAweDE3LCAweGU4LCAweDEyLCAweDE3LCAweGU4LAotICAweDgwLCAweGViLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwNCwgMHhmZiwgMHg0NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlZiwgMHg0NCwgMHgzMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgxOCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwKLSAgMHhmMCwgMHgyMiwgMHhlNSwgMHgxMSwgMHgyNCwgMHgwMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHhlNSwgMHgxMSwgMHgyNCwgMHgwMywgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNX19LAotIHsweDE4YzYsIDY0LCB7IDB4MTEsIDB4MjQsIDB4MDQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDUsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDYsIDB4OTAsIDB4NzgsCi0gIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4ZmZ9fSwKLSB7MHgxOTA2LCA2NCwgeyAweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDJhLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDA0LCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI0LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQxLCAweDAwLCAweDJkLCAweDAwLCAweDM0LCAweDAwLCAweDM5LCAweDAwLCAweDU3LCAweDAwLCAweDRjLCAweDAwLCAweDQzLCAweDAwLCAweDIyLAotICAweDAzLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQxLCAweDAwLCAweDJkLCAweDAwLCAweDM2LCAweDAwLCAweDM1LCAweDAwLCAweDIwLCAweDAwfX0sCi0gezB4MWEwNiwgNjQsIHsgMHgzMiwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMywgMHgwMCwgMHg2YSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgzMywgMHgwMCwgMHgzMSwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWFjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgxNywgMHg3OSwgMHgwMCwgMHgwMiwgMHgxYn19LAotIHsweDFiMDYsIDIxLCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MTcsIDB4MjcsIDB4MDAsIDB4MDIsIDB4MTcsIDB4YTAsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MWIsIDB4MTQsCi0gIDB4MDAsIDB4MDIsIDB4MTUsIDB4Nzh9fSwKLSB7MHhmZmZmLCAgMCwgeyAweDAwfX0sCi19OwotCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYwppbmRleCA0M2NmZGU4Li5hNzM0MjBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCkBAIC0zMDYsNiArMzA2LDcgQEAKIAl7IFVTQl9ERVZJQ0UoQkFORFJJQ0hfVkVORE9SX0lELCBCQU5EUklDSF9QUk9EVUNUX0MxMDBfMSkgfSwKIAl7IFVTQl9ERVZJQ0UoQkFORFJJQ0hfVkVORE9SX0lELCBCQU5EUklDSF9QUk9EVUNUX0MxMDBfMikgfSwKIAl7IFVTQl9ERVZJQ0UoS1lPQ0VSQV9WRU5ET1JfSUQsIEtZT0NFUkFfUFJPRFVDVF9LUEM2ODApIH0sCisJeyBVU0JfREVWSUNFKFFVQUxDT01NX1ZFTkRPUl9JRCwgMHg2MDAwKX0sIC8qIFpURSBBQzg3MDAgKi8KIAl7IFVTQl9ERVZJQ0UoUVVBTENPTU1fVkVORE9SX0lELCAweDY2MTMpfSwgLyogT25kYSBINjAwL1pURSBNRjMzMCAqLwogCXsgVVNCX0RFVklDRShNQVhPTl9WRU5ET1JfSUQsIDB4NjI4MCkgfSwgLyogQlAzLVVTQiAmIEJQMy1FWFQgSFNEUEEgKi8KIAl7IFVTQl9ERVZJQ0UoVEVMSVRfVkVORE9SX0lELCBURUxJVF9QUk9EVUNUX1VDODY0RSkgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwppbmRleCAxMDMxOTVhLi4yYTBkZDFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCkBAIC01Nyw2ICs1Nyw3IEBACiAJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX1BIQVJPUykgfSwKIAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfQUxESUdBKSB9LAogCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9NTVgpIH0sCisJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX0dQUlMpIH0sCiAJeyBVU0JfREVWSUNFKElPREFUQV9WRU5ET1JfSUQsIElPREFUQV9QUk9EVUNUX0lEKSB9LAogCXsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9SX0lELCBJT0RBVEFfUFJPRFVDVF9JRF9SU0FRNSkgfSwKIAl7IFVTQl9ERVZJQ0UoQVRFTl9WRU5ET1JfSUQsIEFURU5fUFJPRFVDVF9JRCkgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaAppbmRleCBjZmYxNjBhLi42YWMzYmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmgKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCkBAIC0xNSw2ICsxNSw3IEBACiAjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX1JTQVEzCQkweGFhYTIKICNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfQUxESUdBCTB4MDYxMQogI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9NTVgJCTB4MDYxMgorI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9HUFJTCQkweDA2MDkKIAogI2RlZmluZSBBVEVOX1ZFTkRPUl9JRAkJMHgwNTU3CiAjZGVmaW5lIEFURU5fVkVORE9SX0lEMgkJMHgwNTQ3CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfMzQxMC5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzM0MTAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFlODg1Ny4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfMzQxMC5oCisrKyAvZGV2L251bGwKQEAgLTEsODg1ICswLDAgQEAKLS8qIHZpOiB0cz04IHN3PTgKLSAqCi0gKiBUSSAzNDEwIFVTQiBTZXJpYWwgRHJpdmVyIEZpcm13YXJlIEhlYWRlcgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cwotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKi8KLQotI2lmbmRlZiBfVElfRldfMzQxMF9IXwotI2RlZmluZSBfVElfRldfMzQxMF9IXwotCi0vKiBmaXJtd2FyZSA5LzEwLzA0IEZXMzQxMF9TcGVjaWFsX1N0YXJ0V2RvZ09uU3RhcnRQb3J0ICovCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHRpX2Z3XzM0MTBbXSA9IHsKLTB4QzIsIDB4MzUsCS8qIGZpcm13YXJlIGltYWdlIGxlbmd0aCBleGNsdWRpbmcgaGVhZGVyLCBsaXR0bGUgZW5kaWFuICovCi0weDAwLCAJCS8qIHBsYWNlaG9sZGVyIGZvciBjaGVja3N1bSAqLwotCi0weDAyLDB4MDAsMHgxZSwweDAyLDB4MWEsMHhkYiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMyLDB4Y2IsMHhmZiwweGZmLAotMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHgzMywweDc2LDB4NzUsMHg4MSwKLTB4Y2UsMHg5MCwweGZkLDB4ZTgsMHg4NSwweDgzLDB4YTAsMHgxMiwweDM0LDB4ZWEsMHhlYywweDRkLDB4NjAsMHg2YSwweDc4LDB4YWIsCi0weDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDljLDB4ZmEsMHg3OCwweDdmLDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LAotMHg2NSwweGZhLDB4NzgsMHgyMCwweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDIwLDB4ZmEsMHg5MCwweGZkLDB4ZGQsMHhhZSwKLTB4ODMsMHhhZiwweDgyLDB4OTAsMHhmYiwweGY4LDB4MTIsMHgwMCwweGExLDB4NjAsMHgwNSwweGU0LDB4ZjAsMHhhMywweDgwLDB4ZjYsCi0weDkwLDB4ZmQsMHhlOCwweGE4LDB4ODIsMHg5MCwweGZkLDB4ZTgsMHhhOSwweDgyLDB4ZTgsMHhjMywweDk5LDB4NTAsMHgwNSwweDc2LAotMHgwMCwweDA4LDB4ODAsMHhmNiwweDkwLDB4MDAsMHhmZiwweDEyLDB4MDAsMHhhYSwweDkwLDB4MDEsMHgwMywweDEyLDB4MDAsMHhhYSwKLTB4OTAsMHgwMSwweDA3LDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDBiLDB4MTIsMHgwMCwweGM4LDB4OTAsMHgwMSwweDExLDB4MTIsCi0weDAwLDB4YzgsMHg5MCwweDAxLDB4MTcsMHgxMiwweDAwLDB4YzgsMHg3NSwweGQwLDB4MDAsMHgxMiwweDMzLDB4YzgsMHgwMiwweDAxLAotMHgxZCwweGVmLDB4NjUsMHg4MiwweDcwLDB4MDMsMHhlZSwweDY1LDB4ODMsMHgyMiwweGU0LDB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywKLTB4ZjksMHg3NCwweDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGY1LDB4ODIsMHg4ZSwweDgzLDB4ZTgsMHg2OSwweDcwLDB4MDEsCi0weDIyLDB4ZTQsMHg5MywweGY2LDB4YTMsMHgwOCwweDgwLDB4ZjQsMHhlNCwweDkzLDB4ZmMsMHg3NCwweDAxLDB4OTMsMHhmZCwweDc0LAotMHgwMiwweDkzLDB4ZmUsMHg3NCwweDAzLDB4OTMsMHhmZiwweDc0LDB4MDQsMHg5MywweGY4LDB4NzQsMHgwNSwweDkzLDB4ZjUsMHg4MiwKLTB4ODgsMHg4MywweDEyLDB4MDAsMHhhMSwweDcwLDB4MDEsMHgyMiwweGU0LDB4OTMsMHhhMywweGE4LDB4ODMsMHhhOSwweDgyLDB4OGMsCi0weDgzLDB4OGQsMHg4MiwweGYwLDB4YTMsMHhhYywweDgzLDB4YWQsMHg4MiwweDg4LDB4ODMsMHg4OSwweDgyLDB4ODAsMHhlMywweDIxLAotMHgyMSwweDA0LDB4OTIsMHg4MCwweDgwLDB4MDQsMHg5MiwweGFjLDB4YWUsMHgwNCwweDkyLDB4ZmQsMHhlOCwweDA0LDB4OTQsMHgwNCwKLTB4OTQsMHhmYiwweGYzLDB4MDQsMHg5OSwweDA0LDB4OTQsMHhmYiwweGYzLDB4MDQsMHhmOSwweDA0LDB4ZjksMHg4MCwweGZlLDB4ZDAsCi0weGYwLDB4MzAsMHhmMCwweDA5LDB4MjAsMHhmMywweDAzLDB4ZjYsMHg4MCwweDEwLDB4ZjcsMHg4MCwweDBkLDB4MzAsMHhmMSwweDA5LAotMHgyMCwweGYzLDB4MDMsMHhmMiwweDgwLDB4MDQsMHhmMywweDgwLDB4MDEsMHhmMCwweDIwLDB4ZjQsMHgwNCwweGZjLDB4ZDAsMHhlMCwKLTB4Y2MsMHgyMiwweGNjLDB4YzAsMHhlMCwweDEyLDB4MDEsMHg1YSwweDAyLDB4MDEsMHg0YiwweGJjLDB4MDAsMHgwNSwweGQwLDB4ZjAsCi0weGFjLDB4ZjAsMHgyMiwweGMzLDB4MTMsMHhkYywweGZjLDB4MDIsMHgwMSwweDIxLDB4YmYsMHgwMCwweDA5LDB4ZWQsMHgyNSwweDgyLAotMHg3NSwweGYwLDB4MDEsMHhmOCwweGU2LDB4MjIsMHhiZiwweDAxLDB4MGYsMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwKLTB4ODMsMHhmNSwweDgzLDB4NzUsMHhmMCwweDA0LDB4ZTAsMHgyMiwweGVkLDB4MjUsMHg4MiwweDc1LDB4ZjAsMHgwMiwweGY4LDB4ZTIsCi0weDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4YzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweGYwLDB4OTUsMHhmMCwweGMwLAotMHhlMCwweGMzLDB4ZDAsMHhmMCwweGU0LDB4OTMsMHhhMywweDk1LDB4ZjAsMHg0MCwweDEyLDB4YTMsMHhhMywweGMzLDB4ZTUsMHhmMCwKLTB4MzMsMHg1MCwweDAyLDB4MDUsMHg4MywweDI1LDB4ODIsMHhmNSwweDgyLDB4NTAsMHgwMiwweDA1LDB4ODMsMHg3NCwweDAxLDB4OTMsCi0weGMwLDB4ZTAsMHhlNCwweDkzLDB4YzAsMHhlMCwweDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4ZTQsMHg5MywweDcwLAotMHgwOSwweDc0LDB4MDEsMHg5MywweDcwLDB4MDQsMHhhMywweGEzLDB4ODAsMHgwYywweDc0LDB4MDIsMHg5MywweDY1LDB4ZjAsMHg2MCwKLTB4MDUsMHhhMywweGEzLDB4YTMsMHg4MCwweGU3LDB4NzQsMHgwMSwweDkzLDB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsCi0weDEyLDB4MDIsMHg1YiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhkMywweDAyLAotMHgwMSwweGYyLDB4MzAsMHhlMCwweDA3LDB4MjAsMHhlMywweDAyLDB4ZTYsMHgyMiwweGU3LDB4MjIsMHgzMCwweGUxLDB4MDcsMHgyMCwKLTB4ZTMsMHgwMiwweGUyLDB4MjIsMHhlMywweDIyLDB4MzAsMHhlMiwweDAyLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHgyMiwweDEyLDB4MDIsCi0weGQzLDB4MDIsMHgwMiwweDFhLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMiwweDFhLDB4YWIsMHhmMCwweDEyLDB4MDIsMHgyNCwweGNiLAotMHhjNSwweGYwLDB4Y2IsMHgyMiwweDMwLDB4ZTAsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGU2LDB4ZjUsMHhmMCwweDA4LDB4ZTYsMHgyMiwKLTB4ZTcsMHhmNSwweGYwLDB4MDksMHhlNywweDE5LDB4MjIsMHgzMCwweGUxLDB4MTAsMHgyMCwweGUzLDB4MDYsMHhlMiwweGY1LDB4ZjAsCi0weDA4LDB4ZTIsMHgyMiwweGUzLDB4ZjUsMHhmMCwweDA5LDB4ZTMsMHgxOSwweDIyLDB4MzAsMHhlMiwweDA2LDB4ZTAsMHhmNSwweGYwLAotMHhhMywweGUwLDB4MjIsMHhlNCwweDkzLDB4ZjUsMHhmMCwweDc0LDB4MDEsMHg5MywweDIyLDB4YmIsMHgwMCwweDAzLDB4NzQsMHgwOSwKLTB4MjIsMHhiYiwweDAxLDB4MDcsMHg4OSwweDgyLDB4OGEsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwNywweDg5LDB4ODIsCi0weDhhLDB4ODMsMHg3NCwweDEwLDB4MjIsMHg3NCwweDBhLDB4MjIsMHgwMiwweDAyLDB4N2IsMHhiYiwweDAwLDB4MDcsMHhlOSwweDI1LAotMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmIsMHgwMSwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKLTB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwZCwweGU5LDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlYSwweDM1LDB4ODMsCi0weGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlOSwweDI1LDB4ODIsMHhmOCwweDc0LDB4MDIsMHgyMiwweDAyLDB4MDIsMHhhZiwweGJmLAotMHgwMCwweDA1LDB4ZWQsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJmLDB4MDEsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgwNCwKLTB4MjIsMHhiZiwweDAyLDB4MDcsMHg4ZCwweDgyLDB4OGUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4ZjgsMHg3NCwweDAyLDB4MjIsCi0weDAyLDB4MDIsMHhkMywweGJmLDB4MDAsMHgwNywweGVkLDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDBkLAotMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJmLDB4MDIsMHgwZCwKLTB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsMHg4MywweGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlZCwweDI1LDB4ODIsCi0weGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMywweDA3LDB4YzAsMHhlMCwweDEyLDB4MDIsMHg1YiwweDAyLDB4MDMsMHgxZiwweGMwLAotMHhlMCwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDMsMHgxZiwweGMwLDB4ZTAsMHgxMiwweDAyLDB4ZDMsMHgwMiwweDAzLDB4MWYsMHgzMCwKLTB4ZTAsMHgwYiwweDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmNiwweDIyLDB4ZDAsMHhlMCwweGY3LDB4MjIsMHgzMCwweGUxLDB4MGIsCi0weDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmMiwweDIyLDB4ZDAsMHhlMCwweGYzLDB4MjIsMHhkMCwweGUwLDB4ZjAsMHgyMiwweGM5LAotMHhjZCwweGM5LDB4Y2EsMHhjZSwweGNhLDB4Y2IsMHhjZiwweGNiLDB4MTIsMHgwMywweDUyLDB4ZWQsMHhmOSwweGVlLDB4ZmEsMHhlZiwKLTB4ZmIsMHgyMiwweGJiLDB4MDAsMHgyZiwweGJmLDB4MDAsMHgwYSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjYsMHgwOCwweDA5LDB4ZGEsCi0weGZhLDB4MjIsMHhiZiwweDAxLDB4MTIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY4LDB4MDIsMHgwMywweDZmLDB4MDksMHhhMywweGU3LAotMHhmMCwweGQ4LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHg3YSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjIsMHgwOCwweDA5LDB4ZGEsMHhmYSwKLTB4MjIsMHgwMiwweDAzLDB4ODQsMHhiYiwweDAxLDB4NGQsMHhiZiwweDAwLDB4MTQsMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsCi0weGY4LDB4MDIsMHgwMywweDk2LDB4MDgsMHhhMywweGUwLDB4ZjYsMHhkOSwweGZhLDB4MjIsMHgwMiwweDAzLDB4YTcsMHhiZiwweDAxLAotMHgyMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlMCwKLTB4YTMsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZWEsMHhkOCwweGU4LDB4MjIsCi0weDAyLDB4MDMsMHhjYSwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTAsMHhmMiwweDA4LDB4YTMsMHhkOSwweGZhLAotMHgyMiwweDAyLDB4MDMsMHhkNCwweGJiLDB4MDIsMHg0ZCwweGJmLDB4MDAsMHgxMiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKLTB4ZjgsMHgwMiwweDAzLDB4ZTYsMHgwOCwweGEzLDB4ZTQsMHg5MywweGY2LDB4ZDksMHhmOSwweDIyLDB4YmYsMHgwMSwweDIzLDB4OGQsCi0weDgyLDB4OGUsMHg4MywweGZiLDB4MDgsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZTQsMHg5MywweGEzLAotMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZTksMHhkOCwweGU3LDB4MjIsMHgwMiwKLTB4MDQsMHgxOSwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTQsMHg5MywweGYyLDB4MDgsMHhhMywweGQ5LDB4ZjksCi0weDIyLDB4MDIsMHgwNCwweDJhLDB4YmYsMHgwMCwweDBkLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmNiwweDA4LDB4MDksMHhkYSwweGZhLAotMHgyMiwweDAyLDB4MDQsMHgzNCwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDA0LDB4NDEsMHgwOSwKLTB4YTMsMHhlMywweGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwNCwweDRjLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmMiwweDA4LDB4MDksCi0weGRhLDB4ZmEsMHgyMiwweDAyLDB4MDQsMHg1NiwweGU2LDB4ZmIsMHgwOCwweGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksMHgwNCwweGY2LAotMHgxOCwweDcwLDB4MDEsMHgwNiwweDIyLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHhmZSwweDA4LDB4ZTYsMHhmZCwweDIyLDB4ZWYsMHhmMCwKLTB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZCwweGYwLDB4MjIsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOSwweGYwLDB4MjIsCi0weGUwLDB4ZmYsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmQsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLAotMHhmOSwweDIyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweGY5LDB4MDAsMHg2MSwweDA1LDB4NjgsMHgwMCwKLTB4MjYsMHgwNSwweDhmLDB4MDAsMHgzMywweDBhLDB4MDAsMHgwMCwweDYxLDB4MGEsMHg2YywweDAwLDB4NjYsMHgxNSwweDFkLDB4MDAsCi0weDYxLDB4MGMsMHhmMCwweDAwLDB4NjEsMHgwOSwweGEwLDB4MDAsMHg2MSwweDA5LDB4ZDcsMHgwMCwweDYxLDB4MGQsMHhiNywweDAwLAotMHg2MSwweDBiLDB4ZTgsMHgwMCwweDYxLDB4MGEsMHgxMywweDAwLDB4NjEsMHgwYSwweDQ4LDB4MDAsMHg2MSwweDE3LDB4MTUsMHgwMCwKLTB4MzMsMHgxNywweDI4LDB4MDAsMHgzNCwweDFkLDB4ZjYsMHgwMCwweDQzLDB4MWUsMHhhMSwweDAwLDB4NDQsMHgyMCwweDBlLDB4MDAsCi0weDQ0LDB4MWYsMHhmYywweDAwLDB4NDcsMHgxZSwweGM4LDB4MDAsMHg0NywweDFmLDB4NmQsMHgwMCwweDRkLDB4MWYsMHhiZSwweDAwLAotMHg0ZiwweDFlLDB4ZWEsMHgwMCwweDU4LDB4MzIsMHg1NiwweDAwLDB4NjEsMHg3YywweGNjLDB4N2QsMHhmZiwweDEyLDB4MWMsMHhhNywKLTB4MjIsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDIwLDB4ZTcsMHgyZCwweGMyLDB4YWYsMHhhZSwweDU5LDB4YWYsMHg1OCwweDc1LDB4NWEsCi0weDIwLDB4ZTUsMHg1YSwweDE0LDB4YzUsMHg1YSwweDYwLDB4MTksMHhlNCwweGZlLDB4N2YsMHgwNSwweGVlLDB4NGYsMHhjZSwweDI0LAotMHhmZiwweGNlLDB4Y2YsMHgzNCwweGZmLDB4Y2YsMHg2MCwweDA3LDB4ZTQsMHg5MCwweGZmLDB4OTIsMHhmMCwweDgwLDB4ZWQsMHg4MCwKLTB4ZTAsMHg4ZSwweDU5LDB4OGYsMHg1OCwweDIyLDB4MTIsMHgwNSwweDAxLDB4N2QsMHgwNywweDdjLDB4YjcsMHgxMiwweDMyLDB4NzIsCi0weDdkLDB4MGYsMHg3YywweDZlLDB4MTIsMHgzMiwweDhjLDB4NzgsMHg5ZCwweDdhLDB4MDYsMHhlNCwweGY2LDB4MDgsMHhkYSwweGZjLAotMHg3YSwweDA2LDB4MTIsMHgwNSwweGM0LDB4N2MsMHgwMywweDEyLDB4MGUsMHg0YywweDEyLDB4MjEsMHg0YSwweGU0LDB4ZmUsMHhmZiwKLTB4N2MsMHgwZiwweDEyLDB4MzEsMHhmYiwweGQyLDB4YTgsMHgyMiwweDEyLDB4MzAsMHhlNiwweGU0LDB4OTAsMHhmYywweDM4LDB4ZjAsCi0weDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsMHhlNCwweDA4LDB4NzQsMHgwMSwweDkwLDB4ZmMsMHgzOSwweGYwLDB4ODAsMHgwNSwweGU0LAotMHg5MCwweGZjLDB4MzksMHhmMCwweDdkLDB4MGEsMHg3YywweDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwKLTB4MzAsMHhlNiwweDkwLDB4ZmMsMHgzOSwweGUwLDB4MTQsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDEwLDB4ZjAsCi0weDdjLDB4MDAsMHgxMiwweDI1LDB4YmYsMHg4MCwweDE5LDB4OTAsMHhmYywweDM5LDB4ZTAsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLAotMHhlMCwweDU0LDB4ZWYsMHhmMCwweDdjLDB4MDAsMHgxMiwweDI1LDB4YmYsMHg4MCwweDA1LDB4N2MsMHgxNywweDEyLDB4MjUsMHhiZiwKLTB4MTIsMHgzMSwweDY5LDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4YWIsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsCi0weDIwLDB4ZjAsMHgyMiwweDhjLDB4MzcsMHg4ZCwweDM2LDB4NzgsMHg4MiwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHhlZCwweGZlLAotMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4ODAsMHhmNiwweDc4LDB4ODIsMHhlNiwKLTB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsCi0weDU0LDB4MGYsMHhmYywweDdkLDB4ODAsMHgxMiwweDE3LDB4NDYsMHg3OCwweDgwLDB4ZTYsMHg3MCwweDBkLDB4YWQsMHgzYSwweGFlLAotMHgzOSwweGFmLDB4MzgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDgsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZSwKLTB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDgwLDB4MWUsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsCi0weGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4MjUsMHhlMCwweDQ0LAotMHgwMSwweDkwLDB4ZmYsMHhmMywweGYwLDB4MDIsMHgwNiwweGQwLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwKLTB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwweGZmLDB4ZjMsCi0weGYwLDB4ODAsMHgyYiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLAotMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGViLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwKLTB4MGQsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDc4LDB4ODIsCi0weGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLAotMHgwZSwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwKLTB4ZTQsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsCi0weGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NDQsMHgwMSwweDkwLDB4ZmYsMHhmMywweGYwLAotMHg3OCwweDgzLDB4ZTYsMHgyNCwweDAzLDB4ZjYsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LDB4NzgsMHg4MCwweGU2LDB4MjQsMHhmZSwKLTB4NTAsMHgwOSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsCi0weDAyLDB4ZjAsMHhlNCwweDkwLDB4ZmYsMHhmMSwweGYwLDB4NzgsMHg4MSwweDc2LDB4MDAsMHg3OCwweDgwLDB4ZTYsMHgyNCwweGZmLAotMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4NzgsMHg4MSwweGU2LDB4N2YsMHgwMCwweGZlLDB4ZWMsMHhkMywweDllLDB4ZWYsMHg2NCwKLTB4ODAsMHhjZCwweDY0LDB4ODAsMHg5ZCwweDQwLDB4MmYsMHgxMiwweDA4LDB4YTQsMHg0MCwweDBmLDB4NzgsMHg4MSwweGU2LDB4YWQsCi0weDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLAotMHg3OCwweDgyLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjAsMHg3OCwweDgxLDB4MDYsMHhhMywweDc4LDB4ODIsMHhhNiwKLTB4ODMsMHgwOCwweGE2LDB4ODIsMHg4MCwweGI1LDB4MTIsMHgwOCwweGE0LDB4NDAsMHgwZiwweDc4LDB4ODEsMHhlNiwweGFkLDB4M2EsCi0weGFlLDB4MzksMHhhZiwweDM4LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4OTAsMHhmZiwweGYyLDB4ZTAsMHhmYywweDc4LAotMHg4MiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGYwLDB4NzgsMHg4MCwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwKLTB4MzgsMHgxMiwweDAzLDB4MGYsMHg3YywweDAwLDB4MjIsMHg4YywweDM3LDB4OGQsMHgzNiwweDc4LDB4ODIsMHhlZCwweGY2LDB4MDgsCi0weGVjLDB4ZjYsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHg3OCwweDgxLAotMHhmNiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwKLTB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHg3ZCwweDgxLDB4MTIsMHgxNywweDQ2LDB4NzgsMHg4MSwweGU2LDB4NzAsCi0weDAzLDB4N2MsMHgwOCwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LAotMHhmZCwweGYwLDB4ODAsMHgxYiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwKLTB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHgyNSwweGUwLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDViLDB4NzgsCi0weDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNiwweDEyLAotMHgwMiwweDBlLDB4NTQsMHhmZSwweDkwLDB4ZmYsMHhmMywweGYwLDB4ODAsMHgyMSwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwKLTB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGViLDB4OTAsCi0weGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LAotMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4OTAsMHhmZiwKLTB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDgzLDB4ZTYsMHgyNCwweDBhLDB4ZjYsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjYsMHg3OCwweDgwLDB4NzYsMHgwMCwweDc4LDB4ODEsMHhlNiwweDI0LDB4ZmYsMHhmYywweGU0LAotMHgzNCwweGZmLDB4ZmQsMHg3OCwweDgwLDB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LDB4ODAsMHhjZCwKLTB4NjQsMHg4MCwweDlkLDB4NDAsMHgyMSwweDc4LDB4ODIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg5MCwweGZmLDB4ZjEsCi0weGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4ODAsMHgwNiwweDc4LDB4ODMsMHgwNiwweGU2LAotMHgxOCwweDcwLDB4MDEsMHgwNiwweDgwLDB4YzMsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDc4LDB4ODIsMHg4NiwKLTB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsCi0weDIyLDB4N2MsMHgwMCwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgyMCwweGU3LDB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLAotMHhlNSwweDA5LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywweDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg5MCwKLTB4ZmYsMHhmMCwweGUwLDB4MjAsMHhlMywweDEyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsCi0weGUwLDB4NDQsMHgyMCwweGYwLDB4YzMsMHgyMiwweDgwLDB4ZTcsMHhkMywweDIyLDB4OGMsMHg0MiwweDhkLDB4NDEsMHg3YywweDAwLAotMHhlZCwweDU0LDB4ZjAsMHhmZCwweGVjLDB4NzAsMHgwMywweGVkLDB4NjQsMHgzMCwweDcwLDB4MDUsMHg3NSwweDNlLDB4MDMsMHg4MCwKLTB4MDMsMHg3NSwweDNlLDB4MDQsMHhhYywweDNlLDB4MTIsMHgwZiwweDY5LDB4NzUsMHg4MywweDAwLDB4ODUsMHg4MywweDQwLDB4ZTUsCi0weDQxLDB4NTQsMHgwZiwweGY1LDB4M2YsMHhlNSwweDQwLDB4NzAsMHgwNCwweGU1LDB4M2YsMHg2NCwweDAzLDB4NzAsMHgzNSwweGU1LAotMHgzZSwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywKLTB4ZTAsMHgzMCwweGU2LDB4MDUsMHgxMiwweDEwLDB4NGIsMHg4MCwweDE5LDB4ZTUsMHgzZSwweDI0LDB4OWQsMHhmOCwweGM2LDB4NTQsCi0weGZiLDB4ZjYsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LAotMHgwZiwweGYwLDB4ODAsMHg1OSwweGU1LDB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDQsMHg3MCwweDQ4LDB4ZTUsMHgzZSwKLTB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgwMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsCi0weDMwLDB4ZTUsMHgwNywweGFjLDB4NDIsMHhhZCwweDQxLDB4MTIsMHgxYywweDNjLDB4ZTUsMHg0MiwweDMwLDB4ZTIsMHgxNSwweDc4LAotMHhhZCwweGU2LDB4MzAsMHhlMCwweDBmLDB4NzgsMHhhZCwweGU2LDB4MzAsMHhlMSwweDA5LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywKLTB4MDQsMHgxMiwweDMxLDB4ZmIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4NzQsMHgwZiwweGYwLDB4ODAsMHgwNywweGU0LDB4ZmMsMHg3ZCwweGVlLDB4MTIsMHgxYywweDNjLDB4YzIsMHgwMywweDIyLAotMHgxMiwweDMwLDB4ZTYsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweGZjLDB4MzgsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHgzOSwweGYwLDB4YzIsMHgwMywweDdkLDB4MDIsMHg3YywweDAwLAotMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4ZWMsMHgyNCwKLTB4OWQsMHhmOCwweGU2LDB4MzAsMHhlMSwweDA3LDB4N2MsMHgxMywweDEyLDB4MjUsMHhiZiwweDgwLDB4MGYsMHg5MCwweGZjLDB4MzksCi0weGUwLDB4ZmQsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTMsMHhjOCwweDEyLDB4MjUsMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLAotMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweDdkLDB4MDAsMHgxMiwweDBmLDB4MDksMHgxMiwweDI1LDB4YmYsMHgxMiwKLTB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDI0LDB4OWQsMHhmOCwweGU2LDB4MzAsCi0weGUyLDB4MDcsMHg3YywweDEzLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgxYiwweDc4LDB4OTUsMHhlNiwweDI0LDB4OWQsMHhmOCwweGU2LAotMHgyMCwweGUxLDB4MDcsMHg3YywweDEyLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwYSwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMywKLTB4ZWMsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4ZWMsCi0weDI0LDB4OWQsMHhmOCwweGU2LDB4MjAsMHhlMiwweDA3LDB4N2MsMHgxMSwweDEyLDB4MjUsMHhiZiwweDgwLDB4MGEsMHg3OCwweDk1LAotMHhlNiwweGZjLDB4MTIsMHgxNCwweGVkLDB4MTIsMHgyNSwweGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwKLTB4OTUsMHhlYywweGY2LDB4MTIsMHgwZiwweDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHhmYywweDNmLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBhLDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweGZjLDB4NDAsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDMsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHg2MiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LDB4NjMsMHg4YywweDYxLDB4ZTQsMHhlYywweDMzLDB4MzMsMHg1NCwKLTB4MDEsMHg3OCwweDk1LDB4ZjYsMHg2MCwweDA4LDB4ZTUsMHg2MiwweDMwLDB4ZTEsMHgwMywweDc4LDB4OTUsMHgwNiwweDc4LDB4OTUsCi0weGU2LDB4OTAsMHhmYywweDQxLDB4ZjAsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHg1NCwweDBjLDB4ZmMsMHhlZCwweDU0LDB4ZTYsMHg4YywweDY1LDB4ZjUsMHg2NCwKLTB4ZTUsMHg2MSwweDMwLDB4ZTUsMHgwMywweDQzLDB4NjUsMHgwMSwweGU1LDB4NjIsMHgyMCwweGU1LDB4MGUsMHhlNSwweDYxLDB4NTQsCi0weDdmLDB4NzAsMHgwOCwweGU1LDB4NjEsMHgyMCwweGU3LDB4MDMsMHg0MywweDY1LDB4MDIsMHhlNSwweDYxLDB4MzAsMHhlMywweDAzLAotMHg0MywweDY1LDB4MTAsMHhlNSwweDYxLDB4MzAsMHhlMiwweDAzLDB4NDMsMHg2NSwweDIwLDB4ZTUsMHg2MSwweDU0LDB4MDMsMHg2MCwKLTB4MDMsMHg0MywweDY1LDB4NDAsMHhlNSwweDYxLDB4MzAsMHhlMSwweDAzLDB4NDMsMHg2NSwweDgwLDB4ZTUsMHg2MSwweDMwLDB4ZTQsCi0weDAzLDB4NDMsMHg2NCwweDAxLDB4ZTUsMHg2MSwweDMwLDB4ZTYsMHgwMywweDQzLDB4NjQsMHgwOCwweGU1LDB4NjIsMHgyMCwweGU0LAotMHgwZSwweGU1LDB4NjEsMHg1NCwweDdmLDB4NzAsMHgwOCwweGU1LDB4NjEsMHgyMCwweGU3LDB4MDMsMHg0MywweDY0LDB4MTAsMHg1MywKLTB4NjUsMHhmYiwweDUzLDB4NjQsMHg3OSwweGFkLDB4NjQsMHhlNSwweDY1LDB4OTAsMHhmYywweDNhLDB4Y2QsMHhmMCwweGEzLDB4Y2QsCi0weGYwLDB4ZTUsMHg2MywweDMwLDB4ZTMsMHgwZCwweGU1LDB4NjMsMHg1NCwweDMwLDB4YzQsMHg1NCwweDBmLDB4OTAsMHhmYywweDNkLAotMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwLDB4ZmMsMHgzZCwweGYwLDB4ZTUsMHg2MywweDU0LDB4MDMsMHg5MCwweGZjLDB4M2MsMHhmMCwKLTB4ZTUsMHg2MywweDU0LDB4MDQsMHhjMywweDEzLDB4OTAsMHhmYywweDNlLDB4ZjAsMHg5MCwweGZjLDB4M2MsMHhlMCwweDcwLDB4MGUsCi0weDdkLDB4MzUsMHg3ZSwweGZjLDB4N2YsMHgwMSwweDc0LDB4MDEsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4NDIsMHg3OCwweGE5LAotMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3YywweDAwLDB4ZmQsMHg3OCwKLTB4YTksMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3ZiwweDAwLDB4NGMsCi0weGZlLDB4ZWYsMHg0ZCwweDkwLDB4ZmMsMHgzOCwweGYwLDB4YTMsMHhjZSwweGYwLDB4Y2UsMHhjMiwweDAzLDB4N2QsMHgwYSwweDdjLAotMHgwMCwweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHg3OCwKLTB4OWEsMHg3NiwweDAxLDB4MDgsMHg3NiwweGZjLDB4MDgsMHg3NiwweDM4LDB4NzgsMHg5NywweDc2LDB4MGMsMHg3OCwweDlhLDB4MTIsCi0weDA0LDB4NjUsMHgxMiwweDAyLDB4MTQsMHg3OCwweDk4LDB4Y2IsMHhmNiwweGNiLDB4MDgsMHhmNiwweDdmLDB4MDAsMHhlZiwweDI0LAotMHhlYSwweDQwLDB4MWYsMHhlNCwweGVmLDB4MjUsMHhlMCwweDkwLDB4MzUsMHgyYywweGZkLDB4OTMsMHhjZCwweDA0LDB4OTMsMHg3OCwKLTB4OTksMHg2NiwweDcwLDB4MDMsMHhlZCwweDE4LDB4NjYsMHg3MCwweDA2LDB4NzgsMHg5NywweDc2LDB4MDAsMHg4MCwweDAzLDB4MGYsCi0weDgwLDB4ZGMsMHg3OCwweDk2LDB4ZWYsMHhmNiwweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAyLAotMHgwZSwweDc4LDB4OTgsMHhjYiwweGY2LDB4Y2IsMHgwOCwweGY2LDB4NTQsMHgwNCwweGNiLDB4NTQsMHg4NiwweDRiLDB4NjAsMHgwNCwKLTB4NzgsMHg5NywweDc2LDB4MGIsMHg3OCwweDk5LDB4ZTYsMHgzMCwweGUzLDB4MTMsMHg3OCwweDlhLDB4MTIsMHgwNCwweDY1LDB4OTAsCi0weDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDc4LDB4OTcsMHg3NiwweDBkLDB4NzgsMHg5OSwweGU2LAotMHg1NCwweGMwLDB4N2QsMHgwMCwweDY0LDB4YzAsMHg0ZCwweDcwLDB4MDQsMHg3OCwweDk3LDB4NzYsMHgwYiwweDc4LDB4OWEsMHgxMiwKLTB4MDQsMHg2NSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmMsMHg1MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGYsCi0weDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLDB4NTAsMHgwNCwweDc4LAotMHg5NywweDc2LDB4MGUsMHg3OCwweDlhLDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmZCwKLTB4NTAsMHgwNCwweDc4LDB4OTcsMHg3NiwweDBhLDB4NzgsMHg5NywweGU2LDB4NzAsMHgyYSwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsCi0weDBmLDB4NjksMHg3OCwweDlhLDB4MTIsMHgwNCwweDY1LDB4NzgsMHhhNywweGU2LDB4ZjksMHg3OCwweGE2LDB4ZTYsMHhmYSwweDdiLAotMHgwMSwweDc0LDB4MGEsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4YzIsMHgwMywweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMSwKLTB4MDcsMHg3OCwweDk3LDB4ZWMsMHhmNiwweDc4LDB4OTcsMHhlNiwweGZjLDB4MTIsMHgyNSwweGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsCi0weDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4MTIsMHgwZiwweDY5LDB4NzgsMHg5NSwweGU2LDB4MjQsMHhmZCwweDc1LAotMHhmMCwweDBhLDB4YTQsMHgyNCwweDE0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhhYywweDgyLDB4YWQsMHg4MywKLTB4NzgsMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGY5LDB4ZWQsMHhmYSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsCi0weDAzLDB4YTcsMHhjMiwweDAzLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDExLDB4MDcsMHgxMiwweDMxLDB4NjksMHgyMiwweDhkLAotMHgyYiwweDhjLDB4MmEsMHhlZCwweDYwLDB4NDAsMHg3NSwweDI3LDB4MDEsMHg3NSwweDI5LDB4NDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwKLTB4MmEsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsCi0weGRjLDB4ZjksMHhmYywweGU1LDB4MjksMHgyYywweGY1LDB4MjksMHhlNSwweDI4LDB4M2QsMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLAotMHgyOCwweGFmLDB4MjcsMHg3NCwweDgwLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4NzQsMHg4MCwweDkwLDB4MDAsMHgwMiwKLTB4MTIsMHgwMywweDE3LDB4MTIsMHgwZiwweGI3LDB4ZTUsMHgyYiwweDE0LDB4NjAsMHgzYiwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksCi0weDA4LDB4NzUsMHgyOCwweGZmLDB4ZTUsMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLAotMHgyNSwweGUwLDB4Y2QsMHgzMywweGNkLDB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwweDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwKLTB4ZjUsMHgyOCwweGFkLDB4MjksMHhhZSwweDI4LDB4YWYsMHgyNywweGU0LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4ZTQsCi0weDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDI0LAotMHg5ZCwweGY4LDB4ZTYsMHgzMCwweGUyLDB4MDksMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTQsMHhlZCwweGQyLDB4MDAsMHg3OCwKLTB4OTUsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsMHg5NiwweDc2LDB4MDAsMHg5MCwweGZjLDB4MzksMHhlMCwweDMwLDB4ZTcsCi0weDA0LDB4NzgsMHg5NiwweDc2LDB4MDEsMHg3OCwweDk2LDB4ZTYsMHhmZCwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgwZCwweDJmLAotMHhjMiwweDAzLDB4MzAsMHgwMCwweDA3LDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDEzLDB4ZWMsMHg3YywweDAwLDB4MTIsMHgyNSwKLTB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTAsMHgwMiwweDgwLDB4ZWQsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGY4LDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweGMyLDB4MDMsMHg4YywweDU4LAotMHgxMiwweDBmLDB4NjksMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4NWQsMHg3YSwweDM1LDB4N2IsMHgwYSwKLTB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweDEyLDB4MGUsMHgwNSwweGFjLDB4NTgsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDJmLDB4YzIsCi0weDAzLDB4YWMsMHg1OCwweDEyLDB4MTEsMHgwNywweDIyLDB4OGQsMHg1MywweDhlLDB4NTIsMHg4ZiwweDUxLDB4OGMsMHg1MCwweDEyLAotMHgwZiwweDY5LDB4NzUsMHg0ZiwweDAwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4MjAsMHhlNCwweDFmLDB4ZTUsMHg0ZiwweDI0LDB4ZjYsMHg0MCwweDE5LDB4MDUsMHg0ZiwweGMyLDB4MDMsCi0weDdjLDB4MTgsMHgxMiwweDMyLDB4YTksMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGIyLDB4YjMsMHhhYywweDUwLAotMHgxMiwweDBmLDB4NjksMHg4MCwweGQwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4MjAsMHhlNCwweDA1LDB4YzIsMHgwMywweDdjLDB4MDIsMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4MGYsMHg2MCwweDE2LDB4NzgsMHhhOSwweGU2LAotMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwZiwweGYwLDB4YzIsMHgwMywKLTB4N2MsMHgwMSwweDIyLDB4NzgsMHhhOCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweGFkLDB4NTMsMHhhZSwweDUyLDB4YWYsCi0weDUxLDB4MTIsMHgwMywweDBmLDB4YzIsMHgwMywweDdjLDB4MDAsMHgyMiwweDhkLDB4MzEsMHg4YywweDMwLDB4MTIsMHgxNCwweGVkLAotMHhlNSwweDMxLDB4NjAsMHgwZiwweGU1LDB4MzAsMHhiNCwweDAzLDB4MGEsMHg3YywweDAxLDB4MTIsMHgyNCwweGVlLDB4N2MsMHg4MSwKLTB4MTIsMHgyNCwweGVlLDB4YWMsMHgzMCwweDEyLDB4MGYsMHg2OSwweGU1LDB4MzEsMHg2MCwweDFhLDB4NzgsMHhhYSwweDg2LDB4ODMsCi0weDA4LDB4ODYsMHg4MiwweGUwLDB4NTQsMHhlNywweGYwLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDU0LDB4ZTcsMHhmMCwweGFjLAotMHgzMCwweDdkLDB4MDIsMHgxMiwweDBkLDB4MmYsMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4NjcsMHg3YSwKLTB4MzUsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweGMyLDB4MDMsMHhlNSwweDMwLDB4MjQsMHg5ZCwweGY4LDB4YzYsCi0weDU0LDB4ZmQsMHhmNiwweGFjLDB4MzAsMHgxMiwweDExLDB4MDcsMHgyMiwweDhjLDB4MjYsMHgzMCwweDAzLDB4MDUsMHgxMiwweDMyLAotMHg0OCwweDgwLDB4ZjgsMHg3YywweDBhLDB4MTIsMHgzMSwweDViLDB4ZDIsMHgwMywweGU1LDB4MjYsMHgyNCwweGZkLDB4NzgsMHhhMywKLTB4ZjYsMHg3MCwweDA3LDB4NzgsMHhhYSwweDc2LDB4ZmYsMHgwOCwweDc2LDB4ZTAsMHg3OCwweGEzLDB4ZTYsMHg3NSwweGYwLDB4MTAsCi0weGE0LDB4YWQsMHhmMCwweGZjLDB4MjQsMHhhMCwweDc4LDB4YTksMHhmNiwweGVkLDB4MzQsMHhmZiwweDE4LDB4ZjYsMHg3OCwweGEzLAotMHhlNiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgwMCwweGZjLDB4ZTQsMHgzNCwweGZjLDB4ZmQsMHg3OCwweGE2LDB4ZWQsMHhmNiwKLTB4MDgsMHhlYywweGY2LDB4MTIsMHgzMSwweGY0LDB4MjIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU3LDB4MjIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsCi0weDg2LDB4ODIsMHhlMCwweDU0LDB4N2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLAotMHg4MiwweGY1LDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YWIsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHgyMiwweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsCi0weDg2LDB4ODIsMHhlMCwweDU0LDB4M2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLAotMHg4MiwweGY1LDB4ODMsMHhlMCwweDU0LDB4M2YsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4YTQsMHhmOCwweGU2LDB4ZmMsMHg3OCwKLTB4YWIsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTMsCi0weGU2LDB4MjQsMHhhNCwweGY4LDB4ZTYsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NTQsMHhmYiwweDQ0LDB4MDIsMHhmNSwweDI2LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNSwweDAzLDB4NDMsMHgyNiwweDAxLDB4NzgsMHhhOSwweGU2LAotMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDAzLDB4MTIsMHgwZiwKLTB4YjcsMHhlNSwweDI2LDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZWMsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHg3NCwweDBmLDB4ZjAsMHg3OCwweGFhLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NDQsMHg4MCwweGYwLDB4YTMsMHhhMywKLTB4YTMsMHhhMywweGUwLDB4NDQsMHg4MCwweGYwLDB4MjIsMHg4YywweDJhLDB4MTIsMHgwZiwweDY5LDB4NzgsMHhhNywweGU2LDB4MjQsCi0weDA4LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBhLAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDcsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLAotMHhmZCwweGEzLDB4ZTAsMHhmYywweGVkLDB4ZmUsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweGVjLDB4ZmUsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA3LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDhjLDB4MjksMHg4ZCwweDI4LDB4YzMsMHhlYywweDk0LDB4MDUsMHhlZCwweDk0LAotMHgwYywweDQwLDB4MDUsMHg3NSwweDI3LDB4N2MsMHg4MCwweDMzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHgwMSwweGU1LDB4MjgsMHg5NCwKLTB4MDMsMHg0MCwweDA1LDB4NzUsMHgyNywweDNjLDB4ODAsMHgyMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4ODEsMHhlNSwweDI4LDB4OTQsCi0weDAxLDB4NDAsMHgwNSwweDc1LDB4MjcsMHgxOCwweDgwLDB4MTMsMHhkMywweGU1LDB4MjksMHg5NCwweDYwLDB4ZTUsMHgyOCwweDk0LAotMHgwMCwweDQwLDB4MDUsMHg3NSwweDI3LDB4MGMsMHg4MCwweDAzLDB4NzUsMHgyNywweDA4LDB4YWYsMHgyNywweGU0LDB4ZWYsMHg1NCwKLTB4N2MsMHg0NCwweDgzLDB4ZmYsMHg4ZiwweDI3LDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA1LAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTMsMHhlNiwKLTB4MjQsMHhhNCwweGY4LDB4ZWMsMHhmNiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweGY1LDB4MjcsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTMsMHgxNywweDUzLDB4MjcsMHhjNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDUsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4MzUsMHg1OCwweDkzLDB4NDIsMHgyNywweDUzLDB4MjcsCi0weGZiLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDYwLAotMHgwMywweDQzLDB4MjcsMHgwNCwweDUzLDB4MjcsMHhmYywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQyLDB4MjcsMHg0MywweDI3LDB4ODAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE5LDB4ZTYsCi0weDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LAotMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LDB4MjcsMHg3OCwweGE3LDB4ZTYsMHgyNCwKLTB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTEsMHgwNSwweDUzLDB4MjcsCi0weGRmLDB4ODAsMHgwMywweDQzLDB4MjcsMHgyMCwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgwNSwweDUzLDB4MjcsMHhlZiwweDgwLDB4MDMsMHg0MywweDI3LDB4MTAsMHg3OCwKLTB4YTcsMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhiNCwweDAyLDB4MDMsCi0weDQzLDB4MjcsMHgwMiwweGU1LDB4MjcsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDcwLDB4MDUsMHg1MywweDI3LDB4N2YsMHg4MCwweDAzLDB4NDMsMHgyNywweDgwLDB4NzgsMHhhNywweGU2LAotMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGUwLDB4MDUsMHg0MywKLTB4MjcsMHgyMCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZGYsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUzLDB4MDUsMHg0MywweDI3LDB4NDAsMHg4MCwweDAzLDB4NTMsMHgyNywweGJmLAotMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwKLTB4MDUsMHg0MywweDI3LDB4MTAsMHg4MCwweDAzLDB4NTMsMHgyNywweGVmLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU0LDB4MDUsMHg0MywweDI3LDB4MDgsMHg4MCwweDAzLAotMHg1MywweDI3LDB4ZjcsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4YTMsMHhlMCwweDMwLDB4ZTUsMHgwNSwweDQzLDB4MjcsMHgwNCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZmIsMHg3OCwweGE3LDB4ZTYsCi0weDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTYsMHgwNSwweDQzLAotMHgyNywweDAxLDB4ODAsMHgwMywweDUzLDB4MjcsMHhmZSwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNywweDA1LDB4NDMsMHgyNywweDAyLDB4ODAsMHgwMywweDUzLDB4MjcsCi0weGZkLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGVjLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHgwMCwweDIyLDB4OGQsMHgyNywweDhjLDB4MjYsMHhlZCwweDU0LDB4MDMsMHgxNCwKLTB4NjAsMHgwMywweDdjLDB4MTAsMHgyMiwweGU1LDB4MjcsMHg1NCwweDdjLDB4MjQsMHhmYywweDQwLDB4MDMsMHg3YywweDBiLDB4MjIsCi0weGU1LDB4MjYsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDQ0LDB4MDIsMHhmNiwweDdjLDB4MDAsMHgyMiwweDhjLDB4MzAsMHgxMiwweDBmLAotMHg2OSwweGU1LDB4MzAsMHgyNCwweDlkLDB4ZjgsMHhlNiwweDIwLDB4ZTIsMHg0ZiwweGFjLDB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwKLTB4MmYsMHhlNSwweDMwLDB4MjQsMHhmZSwweDQ0LDB4MjgsMHhmYywweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsCi0weGYwLDB4YWYsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmUsMHhlNCwweDNmLDB4ZmYsMHhlYywweDhlLDB4ODIsMHg4ZiwweDgzLAotMHhmMCwweDdjLDB4MDMsMHg4YywweDJjLDB4ZTUsMHgyYywweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDJjLDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA1LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc1LDB4MmQsMHgwMSwweDc1LDB4MmYsMHg0OCwweDc1LAotMHgyZSwweGZmLDB4ZTUsMHgzMCwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwKLTB4Y2QsMHgzMywweGNkLDB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyZiwweDJjLDB4ZjUsMHgyZiwweGU1LDB4MmUsMHgzZCwweGY1LDB4MmUsCi0weDc4LDB4YWIsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGU3LAotMHhmNSwweDJjLDB4YWQsMHgyZiwweGFlLDB4MmUsMHhhZiwweDJkLDB4ZTQsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLDB4MTcsMHhlNCwKLTB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4MTIsMHgwMSwweGU2LDB4MzAsMHhlNSwweDAzLDB4NDMsMHgyYywweDEwLDB4ZTUsCi0weDJjLDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLAotMHhmMCwweDEyLDB4MTAsMHg0YiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweGMyLDB4MDMsMHhmYywweGU1LDB4MzAsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDQ0LDB4MDQsMHhmNiwweDhjLDB4MmMsCi0weGU1LDB4MzAsMHg1NCwweDBmLDB4YzQsMHg1NCwweGYwLDB4N2UsMHgwMCwweGZmLDB4ZWUsMHhlZiwweDQ0LDB4MDQsMHg3ZCwweDAwLAotMHhmZiwweGVjLDB4NGUsMHhmYywweGVkLDB4NGYsMHhmZCwweDEyLDB4MWMsMHhhNywweDdjLDB4MDAsMHgyMiwweDhjLDB4MmYsMHgxMiwKLTB4MGYsMHg2OSwweDEyLDB4MGYsMHhlYiwweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwweDA4LDB4ZjAsCi0weGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg1NCwweDA4LDB4ZjAsMHhhYywweDJmLDB4N2QsMHgwMiwweDEyLDB4MGQsMHgyZiwweGMyLAotMHgwMywweGU1LDB4MmYsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDU0LDB4ZmIsMHhmNiwweDdjLDB4MDAsMHgyMiwweDEyLDB4MzAsMHhlNiwKLTB4NzgsMHg5NiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OWQsMHhmOCwweGU2LDB4MzAsMHhlMSwweDBhLDB4N2QsMHgwMCwweDdjLDB4MTMsCi0weDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDc4LDB4OTYsMHhlNiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NDQsMHgwMSwweGY2LAotMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LDB4OTYsMHhlNiwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwKLTB4MjQsMHgxNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4NzgsMHhhNiwweGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksCi0weDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4NzgsMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHg3OSwweDY3LAotMHg3YSwweDM1LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHgxMiwweDBmLDB4YjcsMHhjMiwweDAzLDB4NzgsMHg5NiwKLTB4ZTYsMHhmYywweDEyLDB4MTEsMHgwNywweDc4LDB4OTUsMHhlYywweGY2LDB4ZWMsMHg2MCwweDBhLDB4N2QsMHgwMCwweDdjLDB4MDgsCi0weDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsMHhhOSwweGU2LAotMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgxMCwweDU0LDB4ZGYsMHhmYywKLTB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsCi0weDk1LDB4ZWMsMHhmNiwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLAotMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwKLTB4ZWYsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksCi0weDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDEwLAotMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwKLTB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDIwLDB4ZjAsCi0weGMyLDB4MDMsMHg3YywweGYwLDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LAotMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU0LDB4MTUsMHhjMiwKLTB4MDMsMHg3OCwweDk2LDB4ZTYsMHg0NCwweDEwLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgwNywweDEyLDB4MzEsMHhmYiwweDEyLDB4MzEsCi0weDY5LDB4MDIsMHgxNywweDE0LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4NTQsMHhjZiwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywKLTB4MTIsMHgwZiwweDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4NDQsMHgzMCwweGYwLDB4YzIsMHgwMywweDdjLDB4ZjAsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLAotMHgwZiwweDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwKLTB4MzAsMHhlNCwweDE0LDB4YzIsMHgwMywweDc4LDB4OTYsMHhlNiwweDQ0LDB4MTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDA3LDB4MTIsCi0weDMxLDB4ZmIsMHgxMiwweDMxLDB4NjksMHg4MCwweDVkLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhlZiwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLDB4NzgsMHg5NiwweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsCi0weDBhLDB4YTQsMHgyNCwweDE0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhhYywweDgyLDB4YWQsMHg4MywweDc4LAotMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGY5LDB4ZWQsMHhmYSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywKLTB4YTcsMHhjMiwweDAzLDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDExLDB4MDcsMHg3ZCwweDAwLDB4N2MsMHgwYiwweDEyLDB4MjUsCi0weDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHhlNCwweDkwLDB4ZmMsMHgzOSwweGYwLDB4N2QsMHgwMiwweDdjLAotMHgwMCwweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4N2MsMHgwMCwweDEyLDB4MjUsMHhiZiwKLTB4MTIsMHgzMSwweDY5LDB4MjIsMHg3NCwweDNjLDB4OTAsMHhmYiwweGUwLDB4ZjAsMHg3NCwweDNlLDB4OTAsMHhmYiwweGUwLDB4ZjAsCi0weGU0LDB4OTAsMHhmYywweDI4LDB4ZjAsMHgyMiwweDhkLDB4MzUsMHg4YywweDM0LDB4ZWMsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLAotMHhkMywweDQwLDB4MDIsMHg4MCwweDI4LDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwOCwweGE4LDB4MzUsMHhjNiwKLTB4MjUsMHhlMCwweGY2LDB4ODAsMHgxOCwweGI0LDB4MDQsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhhOCwweDM1LDB4YzYsCi0weDI1LDB4ZTAsMHgyNSwweGUwLDB4ZjYsMHg4MCwweDA2LDB4YTgsMHgzNSwweDc2LDB4MDAsMHg4MCwweDAwLDB4MjIsMHg4YywweDNjLAotMHg4ZCwweDNiLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4NzUsMHg2NiwweDA2LDB4NzUsMHg2NywweDAwLDB4OTAsMHhmYywKLTB4MjksMHgxMiwweDA0LDB4NmUsMHgxMiwweDAxLDB4ZTYsMHhiNCwweDgwLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsCi0weDE4LDB4NDcsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDMsMHgxMiwweDAxLDB4ZWMsMHg1NCwweGYwLAotMHhiNCwweDMwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDVmLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwKLTB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGZkLDB4ZWIsMHhmZSwweDdmLDB4MDEsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4NmUsCi0weGVlLDB4Y2QsMHg5MCwweDM1LDB4NzEsMHhmYywweGU0LDB4OTMsMHhmZiwweDc0LDB4MDEsMHg5MywweGZlLDB4ZjksMHhlZiwweGZhLAotMHg3YiwweDAxLDB4ZWEsMHhmZiwweGU5LDB4ZmUsMHhlYywweGMzLDB4OWUsMHhlZCwweDlmLDB4NDAsMHgyNSwweDkwLDB4MzUsMHg3MywKLTB4ZTQsMHg5MywweGZkLDB4NzQsMHgwMSwweDkzLDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHhlZSwweGNkLDB4ZmMsCi0weDkwLDB4ZmMsMHgyZSwweGUwLDB4ZDMsMHg5YywweDkwLDB4ZmMsMHgyZCwweGUwLDB4OWQsMHg1MCwweDA1LDB4NzUsMHg2NiwweDgwLAotMHg4MCwweDMzLDB4MTIsMHgxOSwweDY1LDB4ODAsMHgyZSwweGI0LDB4NjAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGIsMHhhYywKLTB4M2MsMHhhZCwweDNiLDB4MTIsMHgwNywweDc3LDB4OGMsMHg2NiwweDgwLDB4MWIsMHhiNCwweDEwLDB4MDMsMHhiMywweDQwLDB4MTAsCi0weGMzLDB4YjQsMHgyMCwweDAzLDB4YjMsMHg0MCwweDA5LDB4YzMsMHhiNCwweDQwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLAotMHg3NSwweDY2LDB4ODEsMHg4MCwweDAwLDB4ODAsMHg3NSwweGI0LDB4ODEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NmIsMHg5MCwKLTB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwMywweDEyLDB4MDEsMHhlYywweDU0LDB4ZjAsMHhiNCwweDMwLDB4MDIsCi0weDgwLDB4MDMsMHhkMywweDQwLDB4MWQsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLAotMHgwZSwweGZhLDB4ZmQsMHhlYiwweGZlLDB4N2YsMHgwMSwweDkwLDB4ZmMsMHgyZiwweDEyLDB4MDQsMHg2ZSwweDEyLDB4MTgsMHhjZiwKLTB4ODAsMHgzNiwweGI0LDB4NjAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTMsMHg3NSwweDNhLDB4NjcsMHhlNCwweGY1LDB4MzksCi0weGY1LDB4MzgsMHhhYywweDNjLDB4YWQsMHgzYiwweDEyLDB4MDUsMHhkMywweDhjLDB4NjYsMHg4MCwweDFiLDB4YjQsMHgxMCwweDAzLAotMHhiMywweDQwLDB4MTAsMHhjMywweGI0LDB4MjAsMHgwMywweGIzLDB4NDAsMHgwOSwweGMzLDB4YjQsMHg0MCwweDAyLDB4ODAsMHgwMywKLTB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2NiwweDgxLDB4ODAsMHgwMCwweDgwLDB4MDIsMHg4MCwweDAwLDB4ZTUsMHg2NiwweGZjLDB4OTAsCi0weGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHhlYywweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweGFjLDB4NjcsMHgyMiwweDkwLAotMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NjAsMHgwNCwweDc0LDB4MDEsMHg4MCwKLTB4MDEsMHhlNCwweGEyLDB4ZTAsMHg5MiwweDAxLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDAzLDB4ZmQsCi0weDUwLDB4MDEsMHgwZSwweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg2ZSwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLAotMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4ZjUsMHg2NywweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywKLTB4N2QsMHg2NywweDEyLDB4MTcsMHg0NiwweGU1LDB4NjcsMHg3MCwweDA0LDB4NzUsMHg2NiwweDA4LDB4MjIsMHg3NSwweDY2LDB4MDAsCi0weDc4LDB4ODQsMHg3NiwweDAwLDB4NzgsMHg4NCwweGU2LDB4YzMsMHg5NSwweDY3LDB4NTAsMHgzOCwweDkwLDB4ZmMsMHgyZiwweDEyLAotMHgwNCwweDgwLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4ODAsMHhlYywweDEyLDB4MDMsMHgwZiwKLTB4MzAsMHgwMSwweDBlLDB4OTAsMHhmYywweDMxLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmYywweDMwLDB4NzAsMHgwMywweGUwLDB4MDQsCi0weGYwLDB4NzgsMHg4NCwweDA2LDB4OTAsMHhmYywweDJlLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmYywweDJkLDB4NzAsMHgwMywweGUwLAotMHgwNCwweGYwLDB4ODAsMHhjMCwweDIyLDB4OTAsMHhmYywweDJhLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweGVkLDB4ZmUsMHhlYywKLTB4ZmQsMHg3ZiwweDAxLDB4ZWQsMHgyNCwweDBhLDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4NmUsCi0weDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhiNCwweDAxLAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTcsMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4ODAsMHgwZCwweGVkLDB4NzAsMHgwMSwKLTB4MGUsMHg5MCwweGZjLDB4MmYsMHgxMiwweDA0LDB4NmUsMHg3OCwweDg4LDB4NzYsMHgwMSwweDgwLDB4NGUsMHhiNCwweDAyLDB4MDIsCi0weDgwLDB4MDMsMHhkMywweDQwLDB4MTksMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDIsMHhmZCwweDUwLAotMHgwMSwweDBlLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4OCwweDc2LDB4MDIsMHg4MCwweDJkLDB4YjQsMHgwNCwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE5LDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDA0LDB4ZmQsCi0weDUwLDB4MDEsMHgwZSwweDkwLDB4ZmMsMHgyZiwweDEyLDB4MDQsMHg2ZSwweDc4LDB4ODgsMHg3NiwweDA0LDB4ODAsMHgwYywweGI0LAotMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDc1LDB4NjYsMHgwOCwweDIyLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwKLTB4ODAsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHhmNSwweDY3LDB4NzgsMHg4NSwweDc2LDB4MDAsMHg3OCwweDg1LDB4ZTYsCi0weGMzLDB4OTUsMHg2NywweDQwLDB4MDMsMHgwMiwweDFhLDB4Y2QsMHg3OCwweDg2LDB4NzYsMHgwMCwweDc4LDB4ODYsMHhlNiwweGMzLAotMHg3OCwweDg4LDB4OTYsMHg1MCwweDc2LDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDgwLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHg5MCwKLTB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4OSwweDEyLDB4MDEsMHhlMCwweGY0LDB4NWMsMHhmYywweDEyLDB4MDEsMHhlMCwweGY4LDB4OTAsCi0weGZjLDB4MmYsMHgxMiwweDA0LDB4ODAsMHhlOCwweGMwLDB4ZTAsMHgxMiwweDAxLDB4ZTYsMHhjOCwweGQwLDB4ZTAsMHhjOCwweDU4LAotMHg0YywweGZjLDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDgwLDB4ZWMsMHgxMiwweDAzLDB4MGYsMHg3OCwweDg3LDB4ZWMsMHhmNiwKLTB4OTAsMHhmYywweDMxLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmYywweDMwLDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDA5LDB4ZTksCi0weDcwLDB4MDEsMHgwYSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg3NywweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLAotMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4MzAsMHhlNCwweDBlLDB4OTAsMHhmYywweDJlLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmYywKLTB4MmQsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4NzgsMHg4NiwweDA2LDB4ODAsMHg4MSwweDc4LDB4ODgsMHhlNiwweGZkLDB4ZTQsCi0weGZlLDB4ZmYsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZjLDB4MzEsMHhlMCwweDJjLDB4ZjAsMHg5MCwweGZjLDB4MzAsMHhlMCwweDNkLAotMHhmMCwweDc4LDB4ODgsMHhlNiwweGZkLDB4ZTQsMHhmZSwweGZmLDB4ZWUsMHhjZCwweGZjLDB4OTAsMHhmYywweDM0LDB4ZTAsMHgyYywKLTB4ZjAsMHg5MCwweGZjLDB4MzMsMHhlMCwweDNkLDB4ZjAsMHg3OCwweDg1LDB4MDYsMHgwMiwweDFhLDB4MGQsMHg3NSwweDY2LDB4MDAsCi0weDIyLDB4ZTUsMHgzZCwweDA1LDB4M2QsMHgwNCwweDcwLDB4MDIsMHhiMiwweGIwLDB4MjIsMHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLAotMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwLDB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwKLTB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZiwweGMwLDB4ZTAsMHg5MCwweGZmLDB4OTIsCi0weGUwLDB4MTIsMHgwMSwweGI3LDB4MWIsMHgyOSwweDMwLDB4MWIsMHgyOSwweDMyLDB4MWIsMHgzOCwweDM4LDB4MWIsMHg0YSwweDNhLAotMHgxYiwweDVjLDB4M2UsMHgxYiwweDc0LDB4NDQsMHgxYiwweDY4LDB4NDYsMHgxYiwweDgwLDB4NTAsMHgxYiwweGMyLDB4NTIsMHgxYiwKLTB4YTEsMHg1NCwweDFiLDB4ZTMsMHg1NiwweDAwLDB4MDAsMHgxYywweDA0LDB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZiwweDAwLDB4ZmUsCi0weDdjLDB4MDEsMHgxMiwweDMxLDB4ZmIsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDMsMHgxMiwweDMxLAotMHhmYiwweDc0LDB4MjAsMHg5MCwweGZmLDB4ZmUsMHhmMCwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMiwKLTB4MTIsMHgzMSwweGZiLDB4NzQsMHg0MCwweDkwLDB4ZmYsMHhmZSwweGYwLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsCi0weDdjLDB4MDQsMHgxMiwweDMxLDB4ZmIsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDUsMHgxMiwweDMxLAotMHhmYiwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNiwweDEyLDB4MzEsMHhmYiwweDAyLDB4MWMsMHgxNCwKLTB4OTAsMHhmZiwweGE1LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmYiwweGY4LDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmIsCi0weGY5LDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZiLDB4ZjgsMHhlMCwweDQ0LDB4MzMsMHhmZCwweDEyLDB4MWMsMHhhNywweDgwLAotMHg3MywweDkwLDB4ZmYsMHhiNSwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmIsMHhmYSwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwKLTB4ZmIsMHhmYiwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmYiwweGZhLDB4ZTAsMHg0NCwweDQzLDB4ZmQsMHgxMiwweDFjLDB4YTcsCi0weDgwLDB4NTIsMHg5MCwweGZmLDB4YTYsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZmMsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLAotMHg5MCwweGZiLDB4ZmQsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmYywweGUwLDB4NDQsMHgzNCwweGZkLDB4MTIsMHgxYywKLTB4YTcsMHg4MCwweDMxLDB4OTAsMHhmZiwweGI2LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmYiwweGZlLDB4Y2QsMHhmMCwweGEzLDB4Y2QsCi0weGYwLDB4OTAsMHhmYiwweGZmLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZiLDB4ZmUsMHhlMCwweDQ0LDB4NDQsMHhmZCwweDEyLAotMHgxYywweGE3LDB4ODAsMHgxMCwweDkwLDB4ZmYsMHg5MiwweGUwLDB4N2QsMHgwMCwweGZjLDB4ZWQsMHg0NCwweGFhLDB4ZmQsMHgxMiwKLTB4MWMsMHhhNywweDgwLDB4MDAsMHhlNCwweDkwLDB4ZmYsMHg5MiwweGYwLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsCi0weGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMCwweGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLAotMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzIsMHgwNSwweDgxLDB4MDUsMHg4MSwKLTB4MDUsMHg4MSwweDA1LDB4ODEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDkwLDB4ZmYsCi0weDVhLDB4ZTAsMHgyMCwweGU3LDB4MDIsMHg4MCwweGY3LDB4OTAsMHhmZiwweDU5LDB4ZTAsMHg3ZCwweDAwLDB4YTgsMHg4MSwweDE4LAotMHhjZCwweGY2LDB4Y2QsMHgwOCwweGY2LDB4N2QsMHgwMywweGE4LDB4ODEsMHhlNiwweDE4LDB4ZmMsMHhlNiwweGNjLDB4MjUsMHhlMCwKLTB4Y2MsMHgzMywweGNjLDB4ZGQsMHhmOSwweGNjLDB4ZjYsMHhjYywweDA4LDB4ZjYsMHhhOCwweDgxLDB4MTgsMHhlNiwweDQ0LDB4ZjgsCi0weGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhhOCwweDgxLDB4MTgsMHg4NiwweDgzLAotMHgwOCwweDg2LDB4ODIsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLDB4NzQsMHgwMiwweDkwLDB4ZmYsMHg1YSwweGYwLDB4MTUsMHg4MSwKLTB4MTUsMHg4MSwweDE1LDB4ODEsMHgxNSwweDgxLDB4MjIsMHhlNSwweDgxLDB4MjQsMHgwNSwweGY1LDB4ODEsMHhlNCwweGE4LDB4ODEsCi0weDE4LDB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmYiwweGY1LAotMHhlMCwweDI0LDB4ZjgsMHg1MCwweDAzLDB4MDIsMHgxZCwweGM4LDB4ZTQsMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4YTgsMHg4MSwKLTB4MTgsMHhlNiwweGZlLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDdmLDB4MDAsCi0weGVmLDB4MjQsMHhmOCwweDQwLDB4NGQsMHhlNCwweGVmLDB4MjUsMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLAotMHhmNSwweDgzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHg2YywweDcwLDB4MDMsMHhmYSwweGViLDB4NmQsMHg3MCwweDA5LDB4NzQsMHgwMSwKLTB4YTgsMHg4MSwweDE4LDB4MTgsMHhmNiwweDgwLDB4MmIsMHhlNCwweGVmLDB4MjUsMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmMsMHhmNSwweDgzLDB4N2EsMHgwMCwweGUwLDB4NTQsMHhmMCwweGNjLDB4ZjgsMHhjYywweGNkLDB4ZjksMHhjZCwweGZiLAotMHg3OCwweDAwLDB4ZTksMHg1NCwweGYwLDB4ZjksMHhlYSwweDY4LDB4NzAsMHgwMiwweGViLDB4NjksMHg3MCwweDAxLDB4MGUsMHgwZiwKLTB4ODAsMHhhZSwweGE4LDB4ODEsMHgxOCwweGVlLDB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsCi0weGVjLDB4ZjYsMHhhOCwweDgxLDB4ZWYsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4ZTYsMHg3MCwweDc5LDB4YTgsMHg4MSwweDE4LAotMHhlNiwweDI0LDB4ZjcsMHg0MCwweDcxLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHg1NCwweDBmLDB4YTgsMHg4MSwKLTB4ZjYsMHg2NCwweDA0LDB4NjAsMHgxNywweGE4LDB4ODEsMHhlNiwweDY0LDB4MDMsMHg2MCwweDEwLDB4YTgsMHg4MSwweDE4LDB4MTgsCi0weDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4MTIsMHgxYywweDNjLDB4ODAsMHg0YSwweDdjLDB4MGEsMHgxMiwweDMxLAotMHg1YiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHg5MCwweGZiLDB4ZjQsMHhlMCwKLTB4MjUsMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsCi0weDkwLDB4ZmIsMHhmNCwweGUwLDB4ZmYsMHhlNCwweGVmLDB4MDQsMHg1NCwweDA3LDB4ZmYsMHg5MCwweGZiLDB4ZjQsMHhmMCwweDkwLAotMHhmYiwweGY1LDB4ZTAsMHgwNCwweGYwLDB4MTIsMHgzMSwweGY0LDB4OTAsMHhmYiwweGY2LDB4ZTAsMHg3MCwweDA4LDB4ZTQsMHhmZSwKLTB4ZmYsMHg3YywweDBmLDB4MTIsMHgzMSwweGZiLDB4ODAsMHgyNywweDkwLDB4ZmIsMHhmNywweGUwLDB4MDQsMHhmMCwweDU0LDB4M2YsCi0weDcwLDB4MWQsMHg5MCwweGZiLDB4ZjcsMHhlMCwweDQ0LDB4ZmUsMHg3ZCwweDAwLDB4ZmMsMHg5MCwweGZiLDB4ZjQsMHhlMCwweDI1LAotMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHhlNSwKLTB4ODEsMHgyNCwweGZiLDB4ZjUsMHg4MSwweDIyLDB4NzgsMHg4YiwweDc2LDB4MDAsMHg3OCwweDhjLDB4NzYsMHgwMCwweDc0LDB4MDEsCi0weDkwLDB4ZmIsMHhmNiwweGYwLDB4MTIsMHgzMCwweGU2LDB4OTAsMHhmYiwweGY1LDB4ZTAsMHg2MCwweDU3LDB4N2MsMHgwYSwweDEyLAotMHgzMSwweDViLDB4OTAsMHhmYiwweGYzLDB4ZTAsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwKLTB4ODMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4OTAsMHhmYiwweGYzLDB4ZTAsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlNCwweGYwLDB4YTMsMHhmMCwweDkwLDB4ZmIsMHhmMywweGUwLDB4ZmYsMHhlNCwweGVmLAotMHgwNCwweDU0LDB4MDcsMHhmZiwweDkwLDB4ZmIsMHhmMywweGYwLDB4OTAsMHhmYiwweGY1LDB4ZTAsMHgxNCwweGYwLDB4NzgsMHg4OSwKLTB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDEyLDB4MzEsMHhmNCwweDc4LDB4ODksMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4MTIsCi0weDA4LDB4ZGEsMHg4MCwweGEzLDB4MTIsMHgzMiwweDQ4LDB4OTAsMHhmZiwweDkzLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhiMiwweGIzLAotMHg3OCwweDhiLDB4MDYsMHhiNiwweDAwLDB4MTEsMHg3OCwweDhiLDB4NzYsMHgwMCwweDc4LDB4OGMsMHhlNiwweGY0LDB4MDQsMHgwNCwKLTB4YTIsMHhlMCwweDkyLDB4YjQsMHg3OCwweDhjLDB4ZjYsMHgwMiwweDFlLDB4MDcsMHhlNCwweDkwLDB4ZmIsMHhmNiwweGYwLDB4OTAsCi0weGZiLDB4ZjUsMHhlMCwweDdkLDB4MDAsMHhmYywweGVkLDB4NDQsMHhjZiwweGZkLDB4MTIsMHgxYywweDNjLDB4MTIsMHgzMSwweDY5LAotMHgyMiwweDEyLDB4MzAsMHhlNiwweGU1LDB4NzAsMHg2NCwweDQ5LDB4NDUsMHg2ZiwweDYwLDB4MTUsMHg5MCwweGZmLDB4ODMsMHhlMCwKLTB4NTQsMHgwZiwweDdkLDB4MDAsMHhkMywweDk1LDB4NzAsMHhlZCwweDk1LDB4NmYsMHg1MCwweDA1LDB4MTIsMHgyZiwweDJmLDB4ODAsCi0weDAzLDB4MTIsMHgyZiwweGZmLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHhlNSwweDcwLDB4NjQsMHg0OSwweDQ1LAotMHg2ZiwweDYwLDB4MDUsMHgxMiwweDMwLDB4MzksMHg4MCwweDBlLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwKLTB4ZmYsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg4YywweDU0LDB4ZWMsCi0weDU0LDB4ZjAsMHhiNCwweDEwLDB4MTUsMHg3NSwweDZhLDB4MzUsMHg3NSwweDY5LDB4ZmMsMHg3NSwweDY4LDB4MDEsMHhlNSwweDZhLAotMHgyNCwweDAzLDB4ZjUsMHg2YSwweGU1LDB4NjksMHgzNCwweDAwLDB4ZjUsMHg2OSwweGU0LDB4ZjUsMHg1NywweGY1LDB4NTYsMHhlNSwKLTB4NTYsMHhjMywweDk0LDB4MDEsMHg1MCwweDI3LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHhmYywweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsCi0weDY4LDB4MTIsMHgwZSwweDc3LDB4OGMsMHg1NSwweGVjLDB4NjAsMHgwMiwweDgwLDB4MTIsMHgwNSwweDZhLDB4ZTUsMHg2YSwweDcwLAotMHgwMiwweDA1LDB4NjksMHgwNSwweDU3LDB4ZTUsMHg1NywweDcwLDB4MDIsMHgwNSwweDU2LDB4ODAsMHhkMiwweGU1LDB4NTQsMHg1NCwKLTB4MGYsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDU0LDB4ZmUsMHhmNiwweGU1LDB4NTQsMHg1NCwweDBmLDB4N2YsMHgwMCwweGZlLDB4N2MsCi0weDEyLDB4MTIsMHgzMSwweGZiLDB4ZTUsMHg1NSwweDE0LDB4NzAsMHgwOSwweDdkLDB4MDAsMHg3YywweDA5LDB4MTIsMHgyNSwweDI2LAotMHg4MCwweDA3LDB4YWQsMHg1NywweDdjLDB4MDAsMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwKLTB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweGZmLDB4MDAsMHhlMCwweDMwLDB4ZTcsMHgxMywweDkwLDB4ZmYsCi0weDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg0MywweDZkLDB4ODAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLAotMHgxMSwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4NTMsMHg2ZCwweDdmLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwKLTB4ZmUsMHhmMCwweDkwLDB4ZmYsMHg4MSwweGUwLDB4NDQsMHg4MCwweGYwLDB4MTIsMHgyNSwweGQ5LDB4OTAsMHhmZiwweGZlLDB4ZTAsCi0weDQ0LDB4MDUsMHhmMCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NTQsMHhmZCwweGYwLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLAotMHhlNiwweDdjLDB4MDEsMHgxMiwweDMyLDB4YTksMHg3OCwweGFkLDB4ZTYsMHg0NCwweDAyLDB4ZjYsMHg3NCwweGZlLDB4ZmMsMHgwNCwKLTB4ZmQsMHgxMiwweDFjLDB4YTcsMHg5MCwweGZmLDB4NWEsMHhlMCwweDMwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHhlNCwweGY1LDB4NGUsCi0weDc1LDB4NGQsMHgxMCwweGFjLDB4NGUsMHhhZCwweDRkLDB4ZTUsMHg0ZSwweDE1LDB4NGUsMHg3MCwweDAyLDB4MTUsMHg0ZCwweGVjLAotMHg0ZCwweDYwLDB4MDIsMHg4MCwweGVlLDB4NDMsMHg4NywweDAxLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3YywKLTB4MDIsMHgxMiwweDMxLDB4NzUsMHg3OCwweGFkLDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsCi0weGU2LDB4NzgsMHhhZCwweGU2LDB4MzAsMHhlMCwweDJjLDB4NzgsMHhhZCwweGU2LDB4MzAsMHhlMSwweDI2LDB4NzgsMHhhZCwweGU2LAotMHhmYywweGY1LDB4ODMsMHgxOCwweGU2LDB4NDQsMHhmMCwweGZkLDB4MTIsMHgxYywweDNjLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwKLTB4MjAsMHhmMCwweDdjLDB4MDIsMHgxMiwweDMyLDB4YTksMHg3OCwweGFkLDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHg3NCwweDFhLDB4OTAsCi0weGZmLDB4ZmUsMHhmMCwweDc4LDB4YWQsMHhlNiwweGZjLDB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYxLDB4ZmQsMHgxMiwweDFjLAotMHgzYywweDEyLDB4MzEsMHg2OSwweDIyLDB4NzUsMHg2ZCwweDAwLDB4OTAsMHhmZiwweGZmLDB4ZTAsMHg2MCwweDAzLDB4NDMsMHg2ZCwKLTB4MDEsMHg3NSwweDZlLDB4MDAsMHhlNCwweGY1LDB4NmMsMHhmNSwweDZiLDB4ZTQsMHhmNSwweDZmLDB4NzUsMHg3MCwweDQ5LDB4NzQsCi0weDg0LDB4OTAsMHhmZiwweDgyLDB4ZjAsMHg3NCwweDg0LDB4OTAsMHhmZiwweDgwLDB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDU4LAotMHhmMCwweDc0LDB4ODAsMHg5MCwweGZmLDB4NWEsMHhmMCwweGFkLDB4NDYsMHhhZiwweDQ1LDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmZSwKLTB4NTAsMHgwMywweDAyLDB4MjEsMHgyNCwweGU0LDB4ZWUsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4N2YsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZjgsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHg1NCwweDgwLDB4ZmQsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LAotMHhmZiwweGVkLDB4NjAsMHgzOCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4NzQsMHg5MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweDgwLDB4MzQsMHhlNCwweGVmLDB4NzUsMHhmMCwKLTB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsCi0weDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LAotMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwKLTB4MGUsMHgwMiwweDIwLDB4OGQsMHg4ZCwweDQ2LDB4OGUsMHg0NCwweDhmLDB4NDUsMHg3NCwweDdmLDB4OTAsMHhmZiwweGZkLDB4ZjAsCi0weDc0LDB4OTAsMHg5MCwweGZmLDB4ZmMsMHhmMCwweDIyLDB4OGMsMHg1OCwweGVjLDB4MjQsMHhmNiwweDUwLDB4MDYsMHhlNSwweDU4LAotMHgyNCwweDM3LDB4ZmMsMHgyMiwweGU1LDB4NTgsMHgyNCwweDMwLDB4ZmMsMHgyMiwweDEyLDB4MjUsMHgyMywweGVjLDB4NzAsMHgwMywKLTB4MDIsMHgyMiwweDVlLDB4NzUsMHg1YywweDAzLDB4YWUsMHg1YiwweDdmLDB4MDAsMHhlNSwweDVjLDB4MTUsMHg1YywweDY0LDB4ODAsCi0weDI0LDB4N2YsMHg1MCwweDM1LDB4ZWYsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweGZlLAotMHgyNCwweGZlLDB4NTAsMHgxZSwweGVmLDB4N2QsMHgwMCwweGZjLDB4ZTQsMHhmYiwweDc0LDB4NzQsMHhjMywweDljLDB4ZmEsMHhlYiwKLTB4OWQsMHhmYiwweGVlLDB4N2QsMHgwMCwweGZjLDB4ZWEsMHhjMywweDljLDB4ZWQsMHg2NCwweDgwLDB4Y2IsMHg2NCwweDgwLDB4OWIsCi0weDUwLDB4MDIsMHg4MCwweDA1LDB4ZWYsMHgyZSwweGZmLDB4ODAsMHhjMSwweDhlLDB4NWIsMHg4ZiwweDVhLDB4ZTUsMHg1YywweDY0LAotMHg4MCwweDI0LDB4N2YsMHg1MCwweDAzLDB4MDIsMHgyMiwweDVlLDB4ZTUsMHg1YSwweDI0LDB4OGUsMHg1MCwweDAzLDB4MDIsMHgyMiwKLTB4NWUsMHg4NSwweDVhLDB4NWQsMHg3NSwweDViLDB4MDAsMHhhZSwweDVhLDB4YWYsMHg1YiwweDkwLDB4MzUsMHg5YywweGU0LDB4OTMsCi0weGY1LDB4NWMsMHhlNSwweDVjLDB4MTUsMHg1YywweDY0LDB4ODAsMHgyNCwweDdmLDB4NTAsMHgxOCwweGVlLDB4MjQsMHgwMCwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweGZjLDB4ZWYsMHg5MCwweDM1LDB4OWMsMHg5MywweDZjLDB4NzAsMHgwNCwKLTB4MGUsMHgwZiwweDgwLDB4ZGUsMHg4ZSwweDVhLDB4OGYsMHg1YiwweGU1LDB4NWMsMHg2NCwweDgwLDB4MjQsMHg3ZiwweDQwLDB4NmUsCi0weDc1LDB4NWUsMHgwMSwweDc1LDB4NjAsMHhlOCwweDc1LDB4NWYsMHhmZiwweGU1LDB4NWQsMHgyNCwweDAyLDB4ZjUsMHg1YSwweDc1LAotMHg1YywweDA3LDB4ZTUsMHg1YywweDMzLDB4NDAsMHg1NywweGFkLDB4NjAsMHhhZSwweDVmLDB4YWYsMHg1ZSwweGU1LDB4NWMsMHhmNSwKLTB4ODIsMHgzMywweDk1LDB4ZTAsMHhmNSwweDgzLDB4MTIsMHgwMSwweGVjLDB4YzQsMHg1NCwweDBmLDB4ZmMsMHgxMiwweDIxLDB4MzcsCi0weGU1LDB4NWEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlYywweGYwLDB4MDUsMHg1YSwweDA1LAotMHg1YSwweGFkLDB4NjAsMHhhZSwweDVmLDB4YWYsMHg1ZSwweGU1LDB4NWMsMHhmNSwweDgyLDB4MzMsMHg5NSwweGUwLDB4ZjUsMHg4MywKLTB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLDB4MTIsMHgyMSwweDM3LDB4ZTUsMHg1YSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmIsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDA1LDB4NWEsMHgwNSwweDVhLDB4MTUsMHg1YywweDgwLDB4YTQsMHg3NCwweDAyLAotMHg5MCwweGY4LDB4NTEsMHhmMCwweDkwLDB4ZjgsMHg2YiwweDc5LDB4NzUsMHg3YSwweDM1LDB4N2IsMHgyNywweDc4LDB4MDEsMHgxMiwKLTB4MDMsMHhmNSwweDc1LDB4NmEsMHgzNSwweDc1LDB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweGU0LDB4OTAsMHhmZiwweDgzLDB4ZjAsCi0weDc0LDB4ODAsMHg5MCwweGZmLDB4ODEsMHhmMCwweDc1LDB4NTksMHgwMiwweGU1LDB4NTksMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LAotMHg3ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZjgsMHhmNSwweDgzLDB4ZTAsMHg3OCwweDhmLDB4ZjYsMHhmYywweDU0LDB4MGYsMHgxNCwKLTB4ZmMsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGU1LDB4NTksMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4ODEsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZjgsMHhmNSwweDgzLDB4ZTAsMHg3OCwweDkyLDB4NzYsMHhmZCwweDA4LDB4NzYsMHhlOCwweGZjLDB4NzgsMHg4ZiwweGU2LAotMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwKLTB4OGYsMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWMsCi0weGYwLDB4NzgsMHg5MiwweGU2LDB4ZmYsMHgwOCwweGU2LDB4N2UsMHgwMywweGNmLDB4YzMsMHgxMywweGNmLDB4MTMsMHhkZSwweGY5LAotMHhmZSwweDc4LDB4OGYsMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKLTB4ODMsMHhlZSwweGYwLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweDc4LDB4OTAsMHhlYywweGY2LDB4N2QsMHgwMCwweDc4LDB4OTMsMHhlNiwweDJjLAotMHhmNiwweDE4LDB4ZTYsMHgzZCwweGY2LDB4NzgsMHg5MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4N2MsMHgwMywweGNkLDB4YzMsMHgxMywKLTB4Y2QsMHgxMywweGRjLDB4ZjksMHhmYywweDc4LDB4OGYsMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZCwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDkyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywKLTB4NzgsMHg4ZiwweGU2LDB4ZmYsMHg3ZSwweDAwLDB4ZWUsMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjQsMHhkZCwweGU0LDB4ZWUsCi0weDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg3ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZjgsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGU0LAotMHhlZiwweDU0LDB4ODAsMHhmYSwweGU0LDB4ZWYsMHg1NCwweDBmLDB4MTQsMHhmZiwweGU0LDB4ZWUsMHg3NSwweGYwLDB4MDcsMHhhNCwKLTB4MjQsMHg4MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZjgsMHhmNSwweDgzLDB4ZTAsMHg3OCwweDkwLDB4ZjYsMHhlNCwweGVlLDB4MTMsCi0weDEzLDB4NTQsMHg4MCwweDI0LDB4ZjAsMHhmOCwweGU0LDB4MzQsMHhmZCwweGY5LDB4ZTgsMHhmYywweGU5LDB4ZmQsMHg4YSwweDVhLAotMHhlYSwweDcwLDB4MDMsMHgwMiwweDI0LDB4NGEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDkwLDB4ZTYsMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsCi0weGE0LDB4MjQsMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGVkLDB4ZmIsMHhlYywweDdhLAotMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwKLTB4NDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHg3OCwweDkwLDB4ZTYsMHg3YiwweDAwLDB4ZmEsCi0weGVjLDB4MmEsMHhmYywweGVkLDB4M2IsMHhmZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLAotMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKLTB4ODMsMHhlYSwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsCi0weGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweDAyLDB4MjQsMHhkOSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwKLTB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OTAsMHhlNiwweGZhLDB4ZTQsCi0weGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLAotMHhlZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwKLTB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweDc4LDB4OTAsCi0weGU2LDB4N2IsMHgwMCwweGZhLDB4ZWMsMHgyYSwweGZjLDB4ZWQsMHgzYiwweGZkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLAotMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBkLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBhLDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBlLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHgwZSwweDAyLDB4MjMsMHg2NiwweDhlLDB4NTksMHg3OCwKLTB4OTIsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4NzgsMHg4ZiwweGVmLDB4ZjYsMHgxMiwweDIwLDB4NTUsMHgyMiwweDhjLDB4MjYsCi0weGVjLDB4MzAsMHhlNywweDE4LDB4ZTUsMHgyNiwweDU0LDB4MGYsMHgxNCwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwweDgwLDB4MTYsMHhlNSwweDI2LDB4NTQsMHgwZiwKLTB4MTQsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsCi0weGRmLDB4ZjAsMHgyMiwweDdjLDB4MDAsMHgyMiwweGVjLDB4OTAsMHhmYywweDM3LDB4ZjAsMHg4YywweDI0LDB4ZWQsMHgyNCwweDAzLAotMHhmNSwweDI1LDB4N2QsMHgwMCwweGQzLDB4OTUsMHg3MiwweGVkLDB4OTUsMHg3MSwweDQwLDB4MDMsMHg4NSwweDcyLDB4MjUsMHhlNSwKLTB4MjUsMHgyNCwweGI3LDB4NTAsMHgwOSwweDc1LDB4MjUsMHgwMywweDc0LDB4MDIsMHg5MCwweGZjLDB4MzcsMHhmMCwweGFjLDB4MjUsCi0weDEyLDB4MzAsMHgyNCwweDIyLDB4ZTQsMHhmNSwweDZjLDB4ZjUsMHg2YiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4OTAsMHhmYywweDM1LAotMHhlMCwweDY1LDB4NzMsMHg2MCwweDBlLDB4NzQsMHgwNCwweDkwLDB4ZmMsMHgzNywweGYwLDB4ZTQsMHhmNSwweDZiLDB4NzUsMHg2YywKLTB4MDMsMHg4MCwweDQ2LDB4N2QsMHg3MywweGU0LDB4ZmUsMHhmZiwweDc5LDB4MzUsMHg3YSwweGZjLDB4N2IsMHgwMSwweDc0LDB4MDUsCi0weDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHhlNSwweDZjLDB4MjQsMHgwMywweGY1LDB4NmMsMHhlNSwweDZiLDB4MzQsMHgwMCwweGY1LAotMHg2YiwweGU1LDB4NmMsMHhkMywweDk1LDB4NzIsMHhlNSwweDZiLDB4OTUsMHg3MSwweDQwLDB4MDYsMHg4NSwweDcyLDB4NmMsMHg4NSwKLTB4NzEsMHg2YiwweGQzLDB4ZTUsMHg2YywweDk0LDB4NDgsMHhlNSwweDZiLDB4OTQsMHgwMCwweDQwLDB4MGMsMHg3NCwweDAyLDB4OTAsCi0weGZjLDB4MzcsMHhmMCwweGU0LDB4ZjUsMHg2YiwweDc1LDB4NmMsMHgwMywweGFjLDB4NmMsMHgxMiwweDMwLDB4MjQsMHgyMiwweGVjLAotMHg5MCwweGZjLDB4MzcsMHhmMCwweGU0LDB4ZjUsMHg2YywweGY1LDB4NmIsMHg4YywweDMyLDB4ZWMsMHg2MCwweDA1LDB4MTIsMHgzMCwKLTB4MTUsMHg4MCwweDA1LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4OTAsMHhmZiwweDkzLDB4ZTAsMHg0NCwweDAxLDB4ZjAsCi0weGIyLDB4YjMsMHg5MCwweGZmLDB4MDQsMHhlMCwweGY1LDB4NGEsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLAotMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwKLTB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmYywweGVkLDB4NGYsMHhmZCwweGMzLDB4ZWMsMHg5NCwweDQ4LDB4ZWQsMHg5NCwweDAwLDB4NTAsCi0weDIyLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLAotMHhmZiwweDA2LDB4ZTAsMHhmZiwweGEzLDB4ZTAsMHg3ZSwweDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwKLTB4ZmQsMHg4MCwweDA0LDB4ZTQsMHhmZCwweDdjLDB4NDgsMHg4YywweDcyLDB4OGQsMHg3MSwweDkwLDB4ZmYsMHgwMiwweGUwLDB4ZmQsCi0weGEzLDB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwMiwweGUwLDB4ZmYsMHhhMywweGUwLAotMHg3ZSwweDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGY1LDB4NGMsMHhlZCwweDRmLDB4ZjUsMHg0YiwweDc1LDB4NmEsMHgzNSwKLTB4NzUsMHg2OSwweGZjLDB4NzUsMHg2OCwweDAxLDB4N2QsMHgzNSwweDdlLDB4ZmMsMHg3ZiwweDAxLDB4NzksMHg3MywweGU0LDB4ZmEsCi0weGZiLDB4NzQsMHgwNSwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHg3NSwweDQ5LDB4MDAsMHhlNSwweDQ5LDB4MjQsMHhmZSwweDQwLAotMHgxOSwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweGU0LDB4MTIsMHgwMywweDBmLDB4MDUsMHg0OSwweDBkLDB4ZWQsMHg3MCwKLTB4MDEsMHgwZSwweDhkLDB4NmEsMHg4ZSwweDY5LDB4OGYsMHg2OCwweDgwLDB4ZTEsMHg3NSwweDZhLDB4MzUsMHg3NSwweDY5LDB4ZmMsCi0weDc1LDB4NjgsMHgwMSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHg2MCwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLAotMHgwMywweDAyLDB4MmMsMHg2ZCwweGU1LDB4NGEsMHg1NCwweDBmLDB4ZjUsMHg0OSwweGU1LDB4NGEsMHg1NCwweDgwLDB4YTIsMHhlMCwKLTB4OTIsMHgwMiwweDkwLDB4ZmYsMHgwMSwweGUwLDB4MTIsMHgwMSwweDgxLDB4MDAsMHgwYiwweDJjLDB4NjgsMHgyNiwweGU1LDB4MjgsCi0weDAzLDB4MmMsMHg2OCwweDI5LDB4MGYsMHgyYywweDY4LDB4MjksMHhmMiwweDJhLDB4MjYsMHgyYiwweDhkLDB4MmIsMHg5MCwweDJiLAotMHhkMCwweDJjLDB4MTEsMHgyYywweDNmLDB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgwZSwweGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOCwKLTB4ZTUsMHg3MiwweDY0LDB4MDIsMHg0NSwweDcxLDB4NjAsMHgwMywweDAyLDB4MmMsMHg2YSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsCi0weDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgyOSwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOCwweDAwLAotMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHg3NCwweDAxLDB4MTIsMHgwMywweDBmLDB4NzgsMHhhZCwweGU2LDB4MzAsMHhlMCwKLTB4MGIsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHg3NCwweDAyLDB4MTIsMHgwMywweDBmLDB4N2MsMHgwMiwweDEyLDB4MzAsCi0weDI0LDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFiLDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwNywweGU1LAotMHg0YSwweDYwLDB4MDMsMHgwMiwweDI4LDB4MDAsMHhlNSwweDRhLDB4MjQsMHhmZSwweDUwLDB4MDMsMHgwMiwweDI4LDB4MDAsMHg3YywKLTB4MDIsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDI3LDB4ZmUsCi0weGU1LDB4NmQsMHgyMCwweGUxLDB4MGQsMHhlNSwweDRhLDB4NjAsMHgwOSwweGU1LDB4NGEsMHg2NCwweDgwLDB4NjAsMHgwMywweDAyLAotMHgyOCwweDAwLDB4YWMsMHg0YSwweDEyLDB4MzAsMHhhYiwweDQwLDB4MDMsMHgwMiwweDI4LDB4MDAsMHhlNSwweDQ5LDB4NzAsMHgyNSwKLTB4MzAsMHgwMiwweDExLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsCi0weDAzLDB4MGYsMHg4MCwweDBmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LAotMHgxMiwweDAzLDB4MGYsMHg4MCwweDNkLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxZCwweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwKLTB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2YSwweGFlLDB4NjksCi0weGFmLDB4NjgsMHgxMiwweDAzLDB4MGYsMHg4MCwweDFiLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHgxMiwKLTB4MDMsMHgwZiwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDEyLDB4MDEsMHhlNiwweDYwLDB4MGIsMHhhZCwweDZhLDB4YWUsCi0weDY5LDB4YWYsMHg2OCwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg4MCwweDAwLAotMHgwMiwweDJjLDB4NmEsMHhlNSwweDZkLDB4MjAsMHhlNywweDA2LDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg2MCwweDAzLDB4MDIsMHgyYywKLTB4NmEsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFhLDB4ZTUsCi0weDRjLDB4MTQsMHg0NSwweDRiLDB4NzAsMHgwNCwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOSwweDBjLDB4NzgsMHhhZCwweGU2LAotMHg1NCwweGZlLDB4ZjYsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKLTB4MmEsMHhlNSwweDZkLDB4MjAsMHhlMSwweDA4LDB4ZTUsMHg2ZCwweDIwLDB4ZTAsMHgwMywweDAyLDB4MjksMHgwYywweGU1LDB4NmQsCi0weDMwLDB4ZTAsMHgwNCwweGU1LDB4NGEsMHg3MCwweDBiLDB4ZTUsMHg2ZCwweDMwLDB4ZTEsMHgwOSwweGU1LDB4NGEsMHgyNCwweGZlLAotMHg1MCwweDAzLDB4MDIsMHgyOSwweDBjLDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwNiwKLTB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyOSwweDBhLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg2MCwweDAzLDB4MDIsMHgyOSwweDBjLDB4YWMsCi0weDRhLDB4MTIsMHgzMCwweGFiLDB4NDAsMHgwMywweDAyLDB4MjksMHgwYywweGU1LDB4NmQsMHgyMCwweGUxLDB4MDcsMHhlNSwweDZkLAotMHgyMCwweGUwLDB4MDIsMHg4MCwweDc3LDB4ZTUsMHg2ZCwweDMwLDB4ZTAsMHgwNiwweGU1LDB4NDksMHg2MCwweDAyLDB4ODAsMHg2YywKLTB4ZTUsMHg0OSwweDcwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NTQsCi0weGY3LDB4ZjAsMHgyMiwweGU1LDB4NDksMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA5LDB4N2QsMHgwMSwweDdjLAotMHgwMywweDEyLDB4MGYsMHgwOSwweDgwLDB4MTEsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA5LDB4N2QsMHgwMSwKLTB4N2MsMHgwNCwweDEyLDB4MGYsMHgwOSwweDgwLDB4MDAsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsMHg0OSwweDc1LDB4ZjAsCi0weDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDgwLAotMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywKLTB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg4MCwweDAwLDB4MDIsMHgyYywweDZhLDB4ZTUsCi0weDZkLDB4MjAsMHhlNywweDA2LDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4OTAsMHhmZiwweDAwLAotMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFhLDB4ZTUsMHg0YywweDE0LDB4NDUsMHg0YiwKLTB4NzAsMHgwNCwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOSwweGVmLDB4NzgsMHhhZCwweGU2LDB4NDQsMHgwMSwweGY2LDB4N2MsCi0weDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsMHg2ZCwweDIwLAotMHhlMSwweDA4LDB4ZTUsMHg2ZCwweDIwLDB4ZTAsMHgwMywweDAyLDB4MjksMHhlZiwweGU1LDB4NmQsMHgzMCwweGUwLDB4MDQsMHhlNSwKLTB4NDksMHg3MCwweDBiLDB4ZTUsMHg2ZCwweDMwLDB4ZTEsMHgwOCwweGU1LDB4NDksMHgyNCwweGZlLDB4NTAsMHgwMiwweDgwLDB4N2YsCi0weDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NmYsMHhlNSwweDRjLAotMHg0NSwweDRiLDB4NjAsMHgwMiwweDgwLDB4NjksMHhhYywweDRhLDB4MTIsMHgzMCwweGFiLDB4NDAsMHgwMiwweDgwLDB4NjAsMHhlNSwKLTB4NmQsMHgyMCwweGUxLDB4MDcsMHhlNSwweDZkLDB4MjAsMHhlMCwweDAyLDB4ODAsMHg1NCwweGU1LDB4NDksMHg3MCwweDE0LDB4MzAsCi0weDAyLDB4MDksMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDgwLDB4MDcsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LAotMHgwOCwweGYwLDB4MjIsMHhlNSwweDZkLDB4MzAsMHhlMSwweDMzLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxNSwweGU1LDB4NDksMHg3NSwKLTB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDA4LDB4ZjAsCi0weDgwLDB4MTMsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAotMHg4MywweGUwLDB4NDQsMHgwOCwweGYwLDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4ODAsMHgwMiwweDgwLDB4MDAsMHgwMiwKLTB4MmMsMHg2YSwweGU1LDB4NmQsMHgyMCwweGU3LDB4MTIsMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MGMsMHhlNSwweDRhLDB4NzAsCi0weDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsMHg2YSwweGU1LDB4NGMsMHg5MCwweGZmLAotMHhmZiwweGYwLDB4OTAsMHhmZiwweGZmLDB4ZTAsMHg2MCwweDA1LDB4NDMsMHg2ZCwweDAxLDB4ODAsMHgwMywweDUzLDB4NmQsMHhmZSwKLTB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgwZSwweGU1LDB4NzIsMHg0NSwweDcxLDB4NjAsCi0weDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsMHg2YSwweGFkLDB4NGIsMHhlNSwweDRjLAotMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweGJkLDB4MDAsMHgwMiwweDgwLDB4MDMsMHgwMiwweDJiLDB4ODgsMHhiNCwKLTB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MzIsMHhlNSwweDRhLDB4NzAsMHgwNSwweGU1LDB4NGMsMHhmYywweDYwLDB4MDMsCi0weDAyLDB4MmIsMHg4YSwweDc1LDB4NmEsMHg0MCwweDc1LDB4NjksMHhmOCwweDc1LDB4NjgsMHgwMSwweGQzLDB4ZTUsMHg3MiwweDk0LAotMHgxMiwweGU1LDB4NzEsMHg5NCwweDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDEyLDB4ODAsMHgwNCwweGFjLDB4NzIsMHhhZCwKLTB4NzEsMHg4YywweDcwLDB4OGQsMHg2ZiwweDEyLDB4MzAsMHgzOSwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsCi0weDU5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDJiLDB4OGEsMHhlNSwweDRjLDB4ZmMsMHg3MCwweDI3LDB4NzUsMHg2YSwweDUyLAotMHg3NSwweDY5LDB4ZjgsMHg3NSwweDY4LDB4MDEsMHhkMywweGU1LDB4NzIsMHg5NCwweDE5LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg0MCwKLTB4MDYsMHhlNCwweGZkLDB4N2MsMHgxOSwweDgwLDB4MDQsMHhhYywweDcyLDB4YWQsMHg3MSwweDhjLDB4NzAsMHg4ZCwweDZmLDB4MTIsCi0weDMwLDB4MzksMHg4MCwweDI1LDB4NzUsMHg2YSwweDZiLDB4NzUsMHg2OSwweGY4LDB4NzUsMHg2OCwweDAxLDB4ZDMsMHhlNSwweDcyLAotMHg5NCwweDI3LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MjcsMHg4MCwweDA0LDB4YWMsMHg3MiwKLTB4YWQsMHg3MSwweDhjLDB4NzAsMHg4ZCwweDZmLDB4MTIsMHgzMCwweDM5LDB4MjIsMHhiNCwweDAzLDB4MDIsMHg4MCwweDA2LDB4ZDMsCi0weDUwLDB4MDMsMHgwMiwweDJiLDB4ODgsMHhlNSwweDRjLDB4ZjUsMHg0OSwweDcwLDB4MGYsMHg5MCwweGZmLDB4MDQsMHhlMCwweGZkLAotMHhhMywweGUwLDB4NGQsMHg2MCwweDAzLDB4MDIsMHgyYiwweDhhLDB4ODAsMHgxOCwweDkwLDB4ZmIsMHgwMiwweGUwLDB4ZmQsMHhhMywKLTB4ZTAsMHhmYywweDkwLDB4ZmYsMHgwNSwweGUwLDB4NmMsMHg3MCwweDA3LDB4OTAsMHhmZiwweDA0LDB4ZTAsMHg2ZCwweDYwLDB4MDIsCi0weDgwLDB4NjgsMHhlNCwweGY1LDB4NzAsMHhmNSwweDZmLDB4N2YsMHgwMCwweGU1LDB4NDksMHgxNCwweGM1LDB4NDksMHg2MCwweDBmLAotMHhlZiwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4MmYsMHhmZiwweDgwLDB4ZWEsMHg4ZiwKLTB4NGEsMHhlNSwweDRhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHg3ZCwweDAwLDB4ZDMsCi0weDk1LDB4NzIsMHhlZCwweDk1LDB4NzEsMHg0MCwweDA2LDB4YWMsMHg3MiwweGFkLDB4NzEsMHg4MCwweDBmLDB4ZTUsMHg0YSwweDI0LAotMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHg4YywweDcwLDB4OGQsMHg2ZiwKLTB4ZTUsMHg0YSwweDI0LDB4MDAsMHhmYywweGU0LDB4MzQsMHhmYiwweGZkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDhkLDB4NmEsCi0weDhlLDB4NjksMHg4ZiwweDY4LDB4MTIsMHgzMCwweDM5LDB4MjIsMHg4MCwweDAwLDB4MDIsMHgyYywweDZhLDB4MDIsMHgyYywweDZhLAotMHhlNSwweDZkLDB4MzAsMHhlNywweDE5LDB4ZTUsMHg3MiwweDE0LDB4NDUsMHg3MSwweDcwLDB4MTIsMHhlNSwweDRhLDB4NzAsMHgwZSwKLTB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsCi0weDZhLDB4ZTUsMHg2ZCwweDIwLDB4ZTAsMHgwOCwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDMsMHgwMiwweDJjLDB4NmEsMHg3NSwweDZhLAotMHg2ZSwweGU0LDB4ZjUsMHg2OSwweGY1LDB4NjgsMHhlNCwweGY1LDB4NmYsMHgwNCwweGY1LDB4NzAsMHgxMiwweDMwLDB4MzksMHgyMiwKLTB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxMiwweGU1LDB4NzIsMHg0NSwweDcxLDB4NzAsMHgwYywweGU1LDB4NGEsMHg3MCwweDA4LDB4OTAsCi0weGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4ZTUsMHg2ZCwweDIwLDB4ZTAsMHgwNywweGU1LAotMHg2ZCwweDIwLDB4ZTEsMHgwMiwweDgwLDB4NzQsMHg4NSwweDRjLDB4NmUsMHhlNSwweDZlLDB4NzAsMHgwOCwweDQzLDB4NmQsMHgwMSwKLTB4NTMsMHg2ZCwweGZkLDB4ODAsMHgwNiwweDUzLDB4NmQsMHhmZSwweDQzLDB4NmQsMHgwMiwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsCi0weDIyLDB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgxYSwweGU1LDB4NzIsMHgxNCwweDQ1LDB4NzEsMHg3MCwweDEzLDB4ZTUsMHg0YSwweDcwLAotMHgwZiwweGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwKLTB4ODAsMHgzOCwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDIsMHg4MCwweDMxLDB4N2MsMHgwMSwweDEyLDB4MzAsMHgyNCwweDIyLDB4ZTUsCi0weDZkLDB4MjAsMHhlNywweDE1LDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg3MCwweDBmLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LAotMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHgxNCwweDYwLDB4MDIsMHg4MCwweDBmLDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwMiwKLTB4ODAsMHgwOCwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJmLDB4MmIsMHhiNCwweDQwLDB4MDIsCi0weDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDJmLDB4MjEsMHg5MCwweGZmLDB4MDEsMHhlMCwweDkwLDB4ZmMsMHgzNSwweGYwLAotMHhlNSwweDRhLDB4OTAsMHhmYywweDM2LDB4ZjAsMHhlNCwweDkwLDB4ZmMsMHgzNywweGYwLDB4ZTUsMHg2YSwweDI0LDB4MDMsMHhmNSwKLTB4NmEsMHhlNSwweDY5LDB4MzQsMHgwMCwweGY1LDB4NjksMHhhZCwweDRiLDB4ZTUsMHg0YywweDg1LDB4NmEsMHg4MiwweDg1LDB4NjksCi0weDgzLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmYsMHgwMSwweGUwLDB4MTIsMHgwMSwweGI3LDB4MmMsMHhkOCwweDAxLAotMHgyYywweGZlLDB4MDIsMHgyZCwweDI4LDB4MDMsMHgyZCwweDUyLDB4MDQsMHgyZCwweGEwLDB4MDUsMHgyZCwweGRkLDB4MDYsMHgyZSwKLTB4MDMsMHgwNywweDJlLDB4MjksMHgwOCwweDJlLDB4NTUsMHgwOSwweDJlLDB4N2IsMHgwYiwweDJlLDB4YTEsMHgwYywweDJlLDB4YjAsCi0weDgwLDB4MmUsMHhiMCwweDgxLDB4MDAsMHgwMCwweDJmLDB4MGUsMHhlNSwweDZkLDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLAotMHgyNSwweGJmLDB4MjIsMHg3ZCwweDI0LDB4N2UsMHgzNSwweDdmLDB4MDIsMHg3OSwweDM4LDB4N2EsMHhmYywweDdiLDB4MDEsMHg3NCwKLTB4MDgsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4N2QsMHgwOCwweDdjLDB4MDAsMHgxMiwweDI1LDB4MjYsMHgyMiwweGU1LDB4NmQsCi0weDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLAotMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTAsMHgxMiwweDMxLDB4ZmIsMHgyMiwKLTB4N2QsMHgwMCwweDdjLDB4MDcsMHgxMiwweDI1LDB4MjYsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsCi0weDI1LDB4YmYsMHgyMiwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LAotMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTEsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNSwKLTB4MjYsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwweDRhLDB4YjQsCi0weDA1LDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDBhLDB4MTIsMHgzMSwweGZiLAotMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDgsMHgxMiwKLTB4MzEsMHhmYiwweDIyLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsCi0weDAwLDB4ZmUsMHg3YywweDEzLDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3ZCwweDAwLDB4N2MsMHgwNywweDEyLDB4MjUsMHgyNiwweDIyLAotMHhlNSwweDZkLDB4MjAsMHhlNywweDM0LDB4ZDMsMHhlNSwweDcyLDB4OTQsMHg0OCwweGU1LDB4NzEsMHg5NCwweDAwLDB4NTAsMHgwNiwKLTB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg3MCwweDA2LDB4N2MsMHgwMiwweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDEsCi0weDAzLDB4YjMsMHg0MCwweDBiLDB4YzMsMHhiNCwweDAzLDB4MDAsMHg0MCwweDA5LDB4YjQsMHgwNiwweDAwLDB4NTAsMHgwNCwweDEyLAotMHgzMCwweGQxLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwKLTB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsCi0weDdmLDB4MDAsMHhmZSwweDdjLDB4MTYsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLAotMHgyNSwweDVkLDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwKLTB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxOSwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsCi0weDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MjMsMHg3NCwweDgxLAotMHg5MCwweGZmLDB4OTMsMHhmMCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwKLTB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTcsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsCi0weDIyLDB4MTIsMHgyNSwweDVkLDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLAotMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxOCwweDEyLDB4MzEsMHhmYiwKLTB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MWQsCi0weGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLAotMHhmZSwweDdjLDB4MTUsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwKLTB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLDB4MjIsCi0weGU1LDB4NmQsMHgzMCwweGU3LDB4MjAsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg3MCwweDEwLDB4OTAsMHhmZiwweDAxLAotMHhlMCwweGI0LDB4ODAsMHgwNSwweDEyLDB4MjUsMHg1NCwweDgwLDB4MDMsMHgxMiwweDI1LDB4NWQsMHgyMiwweDdkLDB4MDAsMHg3YywKLTB4MDUsMHgxMiwweDI1LDB4MjYsMHgyMiwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDYsMHg3YywweDA1LDB4MTIsCi0weDI1LDB4YmYsMHgyMiwweGQzLDB4ZTUsMHg3MiwweDk0LDB4NDgsMHhlNSwweDcxLDB4OTQsMHgwMCwweDUwLDB4MGIsMHhjMywweGU1LAotMHg3MiwweDk0LDB4MDcsMHhlNSwweDcxLDB4OTQsMHgwMCwweDUwLDB4MDYsMHg3YywweDAzLDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwKLTB4NGEsMHhiNCwweDA1LDB4MDQsMHgxMiwweDMwLDB4ZDEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LDB4NmQsCi0weDMwLDB4ZTcsMHgwOCwweDdkLDB4MDAsMHg3YywweDA1LDB4MTIsMHgyNSwweDI2LDB4MjIsMHg3YywweDA1LDB4MTIsMHgyNSwweGJmLAotMHgyMiwweGI0LDB4MjAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg4MCwweDAwLDB4MTIsMHgyZiwweGZmLDB4MjIsMHg3NSwKLTB4NDMsMHgwMCwweDkwLDB4ZmYsMHg4MywweGUwLDB4NTQsMHgwZiwweGQzLDB4OTUsMHg0MywweDQwLDB4MjQsMHhlNSwweDQzLDB4MjQsCi0weGYwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZSwweGY1LDB4ODMsMHhlMCwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDEyLAotMHgwMywweDBmLDB4MDUsMHg0MywweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDZhLDB4OGUsMHg2OSwweDhmLDB4NjgsMHg4MCwKLTB4ZDEsMHhlNSwweDQzLDB4N2QsMHgwMCwweGZjLDB4YzMsMHhlNSwweDcwLDB4OWMsMHhmNSwweDcwLDB4ZTUsMHg2ZiwweDlkLDB4ZjUsCi0weDZmLDB4ZTUsMHg3MCwweDQ1LDB4NmYsMHg2MCwweDA2LDB4ZTQsMHg5MCwweGZmLDB4ODMsMHhmMCwweDIyLDB4OTAsMHhmZiwweDgyLAotMHhlMCwweDQ0LDB4MDgsMHhmMCwweGU0LDB4ZjUsMHg2ZiwweDc1LDB4NzAsMHg0OSwweDkwLDB4ZmMsMHgzNSwweGUwLDB4YjQsMHgwNSwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDQwLDB4OTAsMHhmYywweDM2LDB4ZTAsMHhmNSwweDQzLDB4YjQsMHgwNSwweDAyLDB4ODAsCi0weDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDBiLDB4MTIsMHgzMSwweGZiLDB4MjIsMHhiNCwweDAxLAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDksMHgxMiwweDMxLDB4ZmIsMHgyMiwKLTB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDQzLDB4N2YsMHgwMCwweGZlLDB4N2MsCi0weDE0LDB4MTIsMHgzMSwweGZiLDB4MjIsMHgyMiwweGI0LDB4ODAsMHgwMCwweDQwLDB4MjMsMHhiNCwweDgyLDB4MDAsMHg1MCwweDFlLAotMHg3YywweDM1LDB4N2QsMHhmYywweDEyLDB4MTcsMHg3ZSwweDdkLDB4MDAsMHg4YywweDZjLDB4OGQsMHg2YiwweDkwLDB4ZmMsMHgzNywKLTB4ZTAsMHg2MCwweDA1LDB4MTIsMHgyZiwweGZmLDB4ODAsMHgwNSwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDIyLDB4OTAsCi0weGZmLDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwweDgwLAotMHhlMCwweDQ0LDB4MDgsMHhmMCwweDIyLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLDB4ODAsMHhlMCwKLTB4NDQsMHgwOCwweGYwLDB4MjIsMHg4YywweDIzLDB4N2QsMHgwMCwweDhjLDB4NzAsMHg4ZCwweDZmLDB4NzUsMHg2YSwweDM1LDB4NzUsCi0weDY5LDB4ZmMsMHg3NSwweDY4LDB4MDEsMHgxMiwweDMwLDB4MzksMHgyMiwweDkwLDB4ZmYsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLAotMHhlNSwweDcwLDB4NjQsMHg0OSwweDQ1LDB4NmYsMHg3MCwweDAxLDB4MjIsMHhjMywweGU1LDB4NzAsMHg5NCwweDA4LDB4ZTUsMHg2ZiwKLTB4OTQsMHgwMCwweDQwLDB4MTUsMHg3NSwweDIxLDB4MDgsMHhlNSwweDIxLDB4N2QsMHgwMCwweGZjLDB4YzMsMHhlNSwweDcwLDB4OWMsCi0weGY1LDB4NzAsMHhlNSwweDZmLDB4OWQsMHhmNSwweDZmLDB4ODAsMHgwOSwweDg1LDB4NzAsMHgyMSwweGU0LDB4ZjUsMHg2ZiwweDc1LAotMHg3MCwweDQ5LDB4NzUsMHgyMiwweDAwLDB4ZTUsMHgyMiwweGMzLDB4OTUsMHgyMSwweDUwLDB4MjYsMHhhZCwweDZhLDB4YWUsMHg2OSwKLTB4YWYsMHg2OCwweDEyLDB4MDEsMHhlNiwweGZjLDB4ZTUsMHgyMiwweDI0LDB4ZjgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZlLDB4ZjUsCi0weDgzLDB4ZWMsMHhmMCwweDA1LDB4MjIsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2YSwweDhlLDB4NjksMHg4ZiwweDY4LAotMHg4MCwweGQzLDB4ZTUsMHgyMSwweDU0LDB4N2YsMHg5MCwweGZmLDB4ODEsMHhmMCwweDIyLDB4OGMsMHg0OCwweDdmLDB4MDAsMHhlZiwKLTB4MjQsMHhmZCwweDQwLDB4MTksMHhlNCwweGVmLDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDdmLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGY4LDB4ZjUsMHg4MywweGUwLDB4NjUsMHg0OCwweDcwLDB4MDIsMHhkMywweDIyLDB4MGYsMHg4MCwweGUyLDB4OGYsMHg0NywweGMzLAotMHgyMiwweDg1LDB4NzIsMHg3MCwweDg1LDB4NzEsMHg2ZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwKLTB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDIyLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNiwweGMwLDB4MDcsCi0weGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHg4NiwweDA2LDB4NTMsMHgwNiwweDdmLDB4N2MsMHhmZiwweDEyLDB4MzEsMHg1YiwweDdjLAotMHgwMCwweDdkLDB4MDAsMHhlNSwweDdiLDB4NjAsMHg0NiwweGZmLDB4OTAsMHhmZCwweDk1LDB4ZTAsMHg1NCwweDdmLDB4NmUsMHg3MCwKLTB4MGYsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweGEzLDB4MTUsMHg3YiwweDgwLDB4MDcsCi0weGEzLDB4YTMsMHhhMywweGRmLDB4ZTYsMHg4MCwweDI2LDB4ZGYsMHgwNiwweGQwLDB4ODIsMHhkMCwweDgzLDB4ODAsMHgxZSwweGUwLAotMHhmOCwweGEzLDB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZTgsMHhmMCwweGEzLDB4ZTksMHhmMCwKLTB4YTMsMHhlYSwweGYwLDB4YTMsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGEsMHgxMiwweDMxLDB4ZjQsCi0weGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMiwweGQwLDB4MDEsMHhkMCwweDAwLDB4MjIsMHg4NSwweGE4LDB4N2EsMHg3NSwweGE4LAotMHg4OCwweGVjLDB4NzAsMHgwMiwweDdjLDB4M2YsMHg4YywweDc5LDB4MjIsMHhlNSwweDc4LDB4MjQsMHgwOCwweGY4LDB4NzYsMHgwMCwKLTB4MTIsMHgzMiwweDQ4LDB4ODAsMHhmYiwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDYsMHhjMCwweDA3LDB4YWUsCi0weDA0LDB4N2MsMHhmZiwweDEyLDB4MzEsMHg1YiwweGU1LDB4N2IsMHg2MCwweDQyLDB4ZmYsMHg5MCwweGZkLDB4OTUsMHhlMCwweDU0LAotMHg3ZiwweDZlLDB4NzAsMHgwYiwweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4MTUsMHg3YiwweDgwLDB4MDcsMHhhMywKLTB4YTMsMHhhMywweGRmLDB4ZWEsMHg4MCwweDI2LDB4ZGYsMHgwNiwweGQwLDB4ODIsMHhkMCwweDgzLDB4ODAsMHhkOCwweGUwLDB4ZjgsCi0weGEzLDB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZTgsMHhmMCwweGEzLDB4ZTksMHhmMCwweGEzLAotMHhlYSwweGYwLDB4YTMsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGEsMHg3OCwweDA4LDB4MDgsMHg3OSwKLTB4MTgsMHgwOSwweDdjLDB4MDEsMHhlNiwweDU0LDB4N2YsMHg2ZSwweDcwLDB4MDYsMHg3NiwweDAwLDB4NzcsMHgwMCwweDgwLDB4MDYsCi0weDA4LDB4MDksMHgwYywweGJjLDB4MDgsMHhlZSwweDEyLDB4MzEsMHhmNCwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMiwweGQwLAotMHgwMSwweGQwLDB4MDAsMHgyMiwweDc1LDB4NzksMHgwMCwweDg1LDB4N2EsMHhhOCwweDIyLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwKLTB4ODMsMHhjMywweGU1LDB4N2IsMHgyNCwweGU4LDB4NTAsMHgwNSwweDEyLDB4MzIsMHg0OCwweDgwLDB4ZjQsMHhlYywweDYwLDB4MzEsCi0weDkwLDB4MzUsMHgyMywweGU0LDB4OTMsMHhjMywweDljLDB4NDAsMHgyOCwweGMwLDB4MDQsMHg3YywweGZmLDB4MTIsMHgzMSwweDViLAotMHhkMCwweDA0LDB4NDMsMHgwNCwweDgwLDB4ZTUsMHg3YiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHg5NSwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmZCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZWYsMHhhMywweGYwLDB4ZWUsMHhhMywweGYwLDB4MDUsMHg3YiwweDEyLDB4MzEsCi0weGY0LDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHhjMCwweDA0LDB4N2MsMHgyMCwweGQyLDB4OGMsMHhkMiwweDhkLAotMHhkNSwweDA0LDB4ZmQsMHhkMCwweDA0LDB4MjIsMHg3NSwweGE4LDB4MDAsMHg3NSwweDg4LDB4MDAsMHg3NSwweGI4LDB4MDAsMHg3NSwKLTB4ZjAsMHgwMCwweDc1LDB4ZDAsMHgwMCwweGU0LDB4ZjgsMHg5MCwweDAwLDB4MDAsMHhmNiwweDA4LDB4YjgsMHgwMCwweGZiLDB4MDIsCi0weDAwLDB4MDAsMHhjMywweGVkLDB4OTQsMHgwMiwweDUwLDB4MDQsMHg3ZCwweDAzLDB4N2MsMHhlOCwweGVjLDB4ZjQsMHhmYywweGVkLAotMHhmNCwweGZkLDB4MGMsMHhiYywweDAwLDB4MDEsMHgwZCwweDhjLDB4N2YsMHg4ZCwweDdlLDB4MjIsMHhjMywweGVjLDB4OTQsMHhiYywKLTB4ZWQsMHg5NCwweDAyLDB4NTAsMHgwNCwweDdkLDB4MDcsMHg3YywweGQwLDB4ZWMsMHhmNCwweGZjLDB4ZWQsMHhmNCwweGZkLDB4MGMsCi0weGJjLDB4MDAsMHgwMSwweDBkLDB4OGMsMHg3ZCwweDhkLDB4N2MsMHgyMiwweGVjLDB4NzAsMHgwMSwweDIyLDB4YzAsMHgwMCwweGU1LAotMHg3OCwweDI0LDB4MTgsMHhmOCwweGE2LDB4MDQsMHhlNSwweDc4LDB4MjQsMHgwOCwweGY4LDB4YzYsMHg1NCwweDdmLDB4ZjYsMHhlNiwKLTB4MzAsMHhlNywweDAzLDB4ZDAsMHgwMCwweDIyLDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhmNCwweGMyLDB4OGMsMHg4NSwweDdjLDB4OGMsCi0weDg1LDB4N2QsMHg4YSwweGQyLDB4OGMsMHhjMCwweGUwLDB4YzAsMHhkMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLAotMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHgxMiwKLTB4MWEsMHhkMSwweGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHhlNiwweDYwLDB4MjQsMHhlNSwweDc4LDB4MjQsMHgxMCwweGY4LDB4YTYsCi0weDgxLDB4ZTUsMHg3OCwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg4ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLAotMHg3OCwweGFlLDB4ZTUsMHg4MSwweDA0LDB4YzMsMHg5OCwweGY5LDB4ZTYsMHhmMCwweDA4LDB4YTMsMHhkOSwweGZhLDB4NzQsMHgwOCwKLTB4MjUsMHg3OCwweGY4LDB4MDUsMHg3OCwweDA4LDB4ZTYsMHg1NCwweDgwLDB4NzAsMHgwYywweGU1LDB4NzgsMHhiNCwweDA3LDB4ZjMsCi0weDc4LDB4MDgsMHg3NSwweDc4LDB4MDAsMHg4MCwweGVmLDB4ZTUsMHg3OCwweDI0LDB4MTAsMHhmOCwweDg2LDB4ODEsMHhlNSwweDc4LAotMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweDc4LDB4YWUsMHhlNSwKLTB4ODEsMHgwNCwweGMzLDB4OTgsMHhmOSwweGUwLDB4ZjYsMHgwOCwweGEzLDB4ZDksMHhmYSwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsCi0weDA1LDB4ZDAsMHgwNCwweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLAotMHhmMCwweGQwLDB4ZDAsMHhkMCwweGUwLDB4MzIsMHhjMCwweGUwLDB4YzAsMHhkMCwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwKLTB4YzIsMHg4ZSwweDg1LDB4N2UsMHg4ZCwweDg1LDB4N2YsMHg4YiwweGQyLDB4OGUsMHg3OCwweDE5LDB4NzksMHgwOSwweDdhLDB4MDcsCi0weGU3LDB4NzAsMHgwNCwweGE2LDB4MDAsMHg4MCwweDBiLDB4ZTYsMHg2MCwweDA4LDB4MTYsMHhlNiwweDcwLDB4MDQsMHhlNywweDQ0LAotMHg4MCwweGY3LDB4MDgsMHgwOSwweGRhLDB4ZWEsMHhlNSwweDc5LDB4NjAsMHgxMywweDE0LDB4ZjUsMHg3OSwweDcwLDB4MGUsMHhlNSwKLTB4NzgsMHgyNCwweDA4LDB4ZjgsMHg3NiwweDAwLDB4MTIsMHgzMSwweGY0LDB4ZDIsMHg4YywweGQyLDB4OGQsMHhkMCwweDAyLDB4ZDAsCi0weDAxLDB4ZDAsMHgwMCwweGQwLDB4ZDAsMHhkMCwweGUwLDB4MzIsMHg3NSwweDgxLDB4YWQsMHg3NCwweDJhLDB4OTAsMHhmZiwweDkzLAotMHhmMCwweDc1LDB4N2YsMHgzMCwweDc1LDB4N2UsMHhmOCwweDc1LDB4N2QsMHg2MCwweDc1LDB4N2MsMHhmMCwweDEyLDB4MDUsMHgzNiwKLTB4MTIsMHgzNCwweDdjLDB4MTIsMHgxNywweDM0LDB4OTAsMHhmZiwweDkzLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhiMiwweGIzLDB4MTIsCi0weDM0LDB4YTYsMHgxMiwweDMyLDB4NTYsMHg4MCwweGRhLDB4MjIsMHhjMCwweDAwLDB4N2MsMHgwMSwweGVjLDB4MjQsMHgwOCwweGY4LAotMHhlNiwweDYwLDB4MDksMHgwYywweGJjLDB4MDgsMHhmNSwweDEyLDB4MzIsMHg0OCwweDgwLDB4ZWUsMHhkMCwweDAwLDB4MjIsMHhjMCwKLTB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDAsMHhjMCwweDA2LDB4YzAsMHgwNywweGVkLDB4MjQsMHgxMCwweGY4LDB4NzYsCi0weGJjLDB4ZWQsMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGMwLAotMHg4MiwweGMwLDB4ODMsMHhhMywweGEzLDB4ZTQsMHg3OCwweDBkLDB4ZjAsMHhhMywweGQ4LDB4ZmMsMHhlYywweDU0LDB4N2YsMHg3NSwKLTB4ZjAsMHgwMiwweGE0LDB4MjQsMHhlZiwweGY1LDB4ODIsMHhlNSwweGYwLDB4MzQsMHgzNCwweGY1LDB4ODMsMHhlNCwweDkzLDB4ZmUsCi0weDc0LDB4MDEsMHg5MywweGY1LDB4ODIsMHg4ZSwweDgzLDB4ZTQsMHg5MywweGZlLDB4NzQsMHgwMSwweDkzLDB4ZmYsMHhkMCwweDgzLAotMHhkMCwweDgyLDB4ZWYsMHhmMCwweGEzLDB4ZWUsMHhmMCwweGVkLDB4MjQsMHgwOCwweGY4LDB4ZWMsMHg0NCwweDgwLDB4ZjYsMHhkMCwKLTB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweDIyLDB4NzUsMHg3OCwweDAwLDB4NzUsCi0weDdiLDB4MDAsMHg3YSwweDA4LDB4NzksMHgxOCwweDc4LDB4MDgsMHg3NiwweDAwLDB4NzcsMHgwMCwweDA4LDB4MDksMHhkYSwweGY4LAotMHhlNCwweDc4LDB4MDgsMHg3NCwweDgwLDB4NDQsMHg3ZiwweGY2LDB4NzQsMHgwMSwweDQ0LDB4MTAsMHhmNSwweDg5LDB4NzUsMHhiOCwKLTB4MDgsMHhkMiwweGFiLDB4ZDIsMHhhOSwweDIyLDB4NzUsMHg4MSwweGFkLDB4ZDIsMHg4ZSwweGQyLDB4OGMsMHhkMiwweGFmLDB4ZTUsCi0weDdiLDB4NjAsMHgzMiwweGZmLDB4OTAsMHhmZCwweDk1LDB4ZTAsMHg1NCwweDgwLDB4NjAsMHgyNCwweDc4LDB4MDgsMHg3OSwweDA4LAotMHhlMCwweDU0LDB4N2YsMHhmYSwweDdiLDB4MDAsMHhlNiwweDU0LDB4N2YsMHhiNSwweDAyLDB4MDIsMHg3YiwweGZmLDB4MDgsMHhkOSwKLTB4ZjUsMHhlYiwweDcwLDB4MGMsMHhlYSwweGYwLDB4MTIsMHgzMywweGY4LDB4YWQsMHgwNCwweGFjLDB4MDIsMHgxMiwweDM0LDB4MGYsCi0weGEzLDB4YTMsMHhhMywweGRmLDB4ZDIsMHgxMiwweDMyLDB4NDgsMHg4MCwweGM1LDB4N2MsMHgwMSwweDdkLDB4MDAsMHgyMiwweDA0LAotMHhmNSwweDA0LDB4ZTksMHgwNCwweGVkLDB4MDQsMHhlMSwweDA0LDB4ZGQsMHgwNCwweGQ5LDB4MDQsMHhlNSwweDA0LDB4ZjEsMHgwNCwKLTB4OWQsMHgwNCwweGExLDB4MDQsMHhjZCwweDA0LDB4ZDEsMHgwNCwweDk5LDB4MDQsMHg5OSwweDA0LDB4OTksMHgwNCwweGQ1LDB4MDQsCi0weGI1LDB4MDQsMHhhZCwweDA0LDB4YjEsMHgwNCwweGE5LDB4MDQsMHhjMSwweDA0LDB4YmQsMHgwNCwweGI5LDB4MDQsMHhjNSwweDA0LAotMHhjOSwweDA0LDB4YTUsMHgxOSwweDAxLDB4MDMsMHgwMCwweDIyLDB4MDAsMHg0OCwweDAyLDB4MDAsMHg0OCwweDBlLDB4MzAsMHgxNCwKLTB4MjAsMHhjOCwweDFhLDB4ZDAsMHgxOCwweDBhLDB4MGMsMHgwNSwweDA2LDB4MDIsMHgwMywweDAxLDB4MDIsMHgwMCwweDAxLDB4Y2UsCi0weDAxLDB4ODEsMHgwMSwweDAwLDB4MDAsMHhjMCwweDAwLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgzMCwweDAwLDB4MTgsMHgwMCwweDEwLAotMHgwMCwweDA4LDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDAxLDB4MDAsMHgwOCwweDE4LDB4MzgsMHgyOCwweDBjLDB4MDUsMHgxMCwKLTB4MGEsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMywweDAxLDB4MTAsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4ZmIsMHhlMCwweGZiLDB4ZjIsMHgwOSwweDAyLDB4MjcsMHgwMCwweDAxLDB4MDIsMHgwMCwweGEwLDB4MzIsMHgwOSwweDA0LAotMHgwMCwweDAwLDB4MDMsMHhmZiwweDAwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MSwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwKLTB4MDEsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MywweDAzLDB4MDIsMHgwMCwweDAxLDB4MjIsMHgwMywweDU0LDB4MDAsCi0weDU1LDB4MDAsMHg1MywweDAwLDB4NDIsMHgwMCwweDMzLDB4MDAsMHgzNCwweDAwLDB4MzEsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAwLAotMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwKLX07Ci0KLSNlbmRpZiAvKiBpZm5kZWYgX1RJX0ZXXzM0MTBfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md181MDUyLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfNTA1Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2NmNDBhLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md181MDUyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ODUgKzAsMCBAQAotLyogdmk6IHRzPTggc3c9OAotICoKLSAqIFRJIDUwNTIgVVNCIFNlcmlhbCBEcml2ZXIgRmlybXdhcmUgSGVhZGVyCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqLwotCi0jaWZuZGVmIF9USV9GV181MDUyX0hfCi0jZGVmaW5lIF9USV9GV181MDUyX0hfCi0KLS8qIGZpcm13YXJlIDkvMTgvMDQgKi8KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgdGlfZndfNTA1MltdID0gewotMHhDMSwgMHgzNSwJLyogZmlybXdhcmUgaW1hZ2UgbGVuZ3RoIGV4Y2x1ZGluZyBoZWFkZXIsIGxpdHRsZSBlbmRpYW4gKi8KLTB4MDAsIAkJLyogcGxhY2Vob2xkZXIgZm9yIGNoZWNrc3VtICovCi0KLTB4MDIsMHgwMCwweDFlLDB4MDIsMHgxYiwweDMyLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4MzIsMHg2YSwweGZmLDB4ZmYsCi0weGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMzLDB4MTUsMHg3NSwweDgxLAotMHhjOCwweDkwLDB4ZmUsMHhmMCwweDg1LDB4ODMsMHhhMCwweDEyLDB4MzQsMHg3ZCwweGVjLDB4NGQsMHg2MCwweDZhLDB4NzgsMHhhNSwKLTB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4OTYsMHhmYSwweDc4LDB4NzksMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsCi0weDVmLDB4ZmEsMHg3OCwweDIwLDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4MjAsMHhmYSwweDkwLDB4ZmUsMHhlNSwweGFlLAotMHg4MywweGFmLDB4ODIsMHg5MCwweGZkLDB4MDAsMHgxMiwweDAwLDB4YTEsMHg2MCwweDA1LDB4ZTQsMHhmMCwweGEzLDB4ODAsMHhmNiwKLTB4OTAsMHhmZSwweGYwLDB4YTgsMHg4MiwweDkwLDB4ZmUsMHhmMCwweGE5LDB4ODIsMHhlOCwweGMzLDB4OTksMHg1MCwweDA1LDB4NzYsCi0weDAwLDB4MDgsMHg4MCwweGY2LDB4OTAsMHgwMCwweGZmLDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDAzLDB4MTIsMHgwMCwweGFhLAotMHg5MCwweDAxLDB4MDcsMHgxMiwweDAwLDB4YWEsMHg5MCwweDAxLDB4MGIsMHgxMiwweDAwLDB4YzgsMHg5MCwweDAxLDB4MTEsMHgxMiwKLTB4MDAsMHhjOCwweDkwLDB4MDEsMHgxNywweDEyLDB4MDAsMHhjOCwweDc1LDB4ZDAsMHgwMCwweDEyLDB4MzMsMHg2NywweDAyLDB4MDEsCi0weDFkLDB4ZWYsMHg2NSwweDgyLDB4NzAsMHgwMywweGVlLDB4NjUsMHg4MywweDIyLDB4ZTQsMHg5MywweGY4LDB4NzQsMHgwMSwweDkzLAotMHhmOSwweDc0LDB4MDIsMHg5MywweGZlLDB4NzQsMHgwMywweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlOCwweDY5LDB4NzAsMHgwMSwKLTB4MjIsMHhlNCwweDkzLDB4ZjYsMHhhMywweDA4LDB4ODAsMHhmNCwweGU0LDB4OTMsMHhmYywweDc0LDB4MDEsMHg5MywweGZkLDB4NzQsCi0weDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGZmLDB4NzQsMHgwNCwweDkzLDB4ZjgsMHg3NCwweDA1LDB4OTMsMHhmNSwweDgyLAotMHg4OCwweDgzLDB4MTIsMHgwMCwweGExLDB4NzAsMHgwMSwweDIyLDB4ZTQsMHg5MywweGEzLDB4YTgsMHg4MywweGE5LDB4ODIsMHg4YywKLTB4ODMsMHg4ZCwweDgyLDB4ZjAsMHhhMywweGFjLDB4ODMsMHhhZCwweDgyLDB4ODgsMHg4MywweDg5LDB4ODIsMHg4MCwweGUzLDB4MjEsCi0weDIxLDB4MDQsMHg5MiwweDdhLDB4N2EsMHgwNCwweDkyLDB4YTYsMHhhOCwweDA0LDB4OTIsMHhmZSwweGYwLDB4MDQsMHg5NCwweDA0LAotMHg5NCwweGZiLDB4ZmIsMHgwNCwweDk5LDB4MDQsMHg5NCwweGZiLDB4ZmIsMHgwNCwweGY5LDB4MDQsMHhmOSwweDgwLDB4ZmUsMHhkMCwKLTB4ZjAsMHgzMCwweGYwLDB4MDksMHgyMCwweGYzLDB4MDMsMHhmNiwweDgwLDB4MTAsMHhmNywweDgwLDB4MGQsMHgzMCwweGYxLDB4MDksCi0weDIwLDB4ZjMsMHgwMywweGYyLDB4ODAsMHgwNCwweGYzLDB4ODAsMHgwMSwweGYwLDB4MjAsMHhmNCwweDA0LDB4ZmMsMHhkMCwweGUwLAotMHhjYywweDIyLDB4Y2MsMHhjMCwweGUwLDB4MTIsMHgwMSwweDVhLDB4MDIsMHgwMSwweDRiLDB4YmMsMHgwMCwweDA1LDB4ZDAsMHhmMCwKLTB4YWMsMHhmMCwweDIyLDB4YzMsMHgxMywweGRjLDB4ZmMsMHgwMiwweDAxLDB4MjEsMHhiZiwweDAwLDB4MDksMHhlZCwweDI1LDB4ODIsCi0weDc1LDB4ZjAsMHgwMSwweGY4LDB4ZTYsMHgyMiwweGJmLDB4MDEsMHgwZiwweGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LAotMHg4MywweGY1LDB4ODMsMHg3NSwweGYwLDB4MDQsMHhlMCwweDIyLDB4ZWQsMHgyNSwweDgyLDB4NzUsMHhmMCwweDAyLDB4ZjgsMHhlMiwKLTB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhjMywweGU0LDB4OTMsMHhhMywweGM1LDB4ZjAsMHg5NSwweGYwLDB4YzAsCi0weGUwLDB4YzMsMHhkMCwweGYwLDB4ZTQsMHg5MywweGEzLDB4OTUsMHhmMCwweDQwLDB4MTIsMHhhMywweGEzLDB4YzMsMHhlNSwweGYwLAotMHgzMywweDUwLDB4MDIsMHgwNSwweDgzLDB4MjUsMHg4MiwweGY1LDB4ODIsMHg1MCwweDAyLDB4MDUsMHg4MywweDc0LDB4MDEsMHg5MywKLTB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhlNCwweDkzLDB4NzAsCi0weDA5LDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwNCwweGEzLDB4YTMsMHg4MCwweDBjLDB4NzQsMHgwMiwweDkzLDB4NjUsMHhmMCwweDYwLAotMHgwNSwweGEzLDB4YTMsMHhhMywweDgwLDB4ZTcsMHg3NCwweDAxLDB4OTMsMHhjMCwweGUwLDB4ZTQsMHg5MywweGMwLDB4ZTAsMHgyMiwKLTB4MTIsMHgwMiwweDViLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGQzLDB4MDIsCi0weDAxLDB4ZjIsMHgzMCwweGUwLDB4MDcsMHgyMCwweGUzLDB4MDIsMHhlNiwweDIyLDB4ZTcsMHgyMiwweDMwLDB4ZTEsMHgwNywweDIwLAotMHhlMywweDAyLDB4ZTIsMHgyMiwweGUzLDB4MjIsMHgzMCwweGUyLDB4MDIsMHhlMCwweDIyLDB4ZTQsMHg5MywweDIyLDB4MTIsMHgwMiwKLTB4ZDMsMHgwMiwweDAyLDB4MWEsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAyLDB4MWEsMHhhYiwweGYwLDB4MTIsMHgwMiwweDI0LDB4Y2IsCi0weGM1LDB4ZjAsMHhjYiwweDIyLDB4MzAsMHhlMCwweDEwLDB4MjAsMHhlMywweDA2LDB4ZTYsMHhmNSwweGYwLDB4MDgsMHhlNiwweDIyLAotMHhlNywweGY1LDB4ZjAsMHgwOSwweGU3LDB4MTksMHgyMiwweDMwLDB4ZTEsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGUyLDB4ZjUsMHhmMCwKLTB4MDgsMHhlMiwweDIyLDB4ZTMsMHhmNSwweGYwLDB4MDksMHhlMywweDE5LDB4MjIsMHgzMCwweGUyLDB4MDYsMHhlMCwweGY1LDB4ZjAsCi0weGEzLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHhmNSwweGYwLDB4NzQsMHgwMSwweDkzLDB4MjIsMHhiYiwweDAwLDB4MDMsMHg3NCwweDA5LAotMHgyMiwweGJiLDB4MDEsMHgwNywweDg5LDB4ODIsMHg4YSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDA3LDB4ODksMHg4MiwKLTB4OGEsMHg4MywweDc0LDB4MTAsMHgyMiwweDc0LDB4MGEsMHgyMiwweDAyLDB4MDIsMHg3YiwweGJiLDB4MDAsMHgwNywweGU5LDB4MjUsCi0weDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiYiwweDAxLDB4MGQsMHhlOSwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWEsMHgzNSwweDgzLAotMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKLTB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGU5LDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMiwweGFmLDB4YmYsCi0weDAwLDB4MDUsMHhlZCwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDA3LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg3NCwweDA0LAotMHgyMiwweGJmLDB4MDIsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZWQsMHhmOCwweDc0LDB4MDIsMHgyMiwKLTB4MDIsMHgwMiwweGQzLDB4YmYsMHgwMCwweDA3LDB4ZWQsMHgyNSwweDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiZiwweDAxLDB4MGQsCi0weGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LDB4ODMsMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmYsMHgwMiwweDBkLAotMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4MjUsMHg4MiwKLTB4ZjgsMHg3NCwweDAyLDB4MjIsMHgwMiwweDAzLDB4MDcsMHhjMCwweGUwLDB4MTIsMHgwMiwweDViLDB4MDIsMHgwMywweDFmLDB4YzAsCi0weGUwLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMywweDFmLDB4YzAsMHhlMCwweDEyLDB4MDIsMHhkMywweDAyLDB4MDMsMHgxZiwweDMwLAotMHhlMCwweDBiLDB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGY2LDB4MjIsMHhkMCwweGUwLDB4ZjcsMHgyMiwweDMwLDB4ZTEsMHgwYiwKLTB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGYyLDB4MjIsMHhkMCwweGUwLDB4ZjMsMHgyMiwweGQwLDB4ZTAsMHhmMCwweDIyLDB4YzksCi0weGNkLDB4YzksMHhjYSwweGNlLDB4Y2EsMHhjYiwweGNmLDB4Y2IsMHgxMiwweDAzLDB4NTIsMHhlZCwweGY5LDB4ZWUsMHhmYSwweGVmLAotMHhmYiwweDIyLDB4YmIsMHgwMCwweDJmLDB4YmYsMHgwMCwweDBhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmNiwweDA4LDB4MDksMHhkYSwKLTB4ZmEsMHgyMiwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDAzLDB4NmYsMHgwOSwweGEzLDB4ZTcsCi0weGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwMywweDdhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmMiwweDA4LDB4MDksMHhkYSwweGZhLAotMHgyMiwweDAyLDB4MDMsMHg4NCwweGJiLDB4MDEsMHg0ZCwweGJmLDB4MDAsMHgxNCwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKLTB4ZjgsMHgwMiwweDAzLDB4OTYsMHgwOCwweGEzLDB4ZTAsMHhmNiwweGQ5LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHhhNywweGJmLDB4MDEsCi0weDIyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmYiwweDA4LDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGUwLAotMHhhMywweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlYSwweGQ4LDB4ZTgsMHgyMiwKLTB4MDIsMHgwMywweGNhLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlMCwweGYyLDB4MDgsMHhhMywweGQ5LDB4ZmEsCi0weDIyLDB4MDIsMHgwMywweGQ0LDB4YmIsMHgwMiwweDRkLDB4YmYsMHgwMCwweDEyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLAotMHhmOCwweDAyLDB4MDMsMHhlNiwweDA4LDB4YTMsMHhlNCwweDkzLDB4ZjYsMHhkOSwweGY5LDB4MjIsMHhiZiwweDAxLDB4MjMsMHg4ZCwKLTB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlNCwweDkzLDB4YTMsCi0weGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlOSwweGQ4LDB4ZTcsMHgyMiwweDAyLAotMHgwNCwweDE5LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlNCwweDkzLDB4ZjIsMHgwOCwweGEzLDB4ZDksMHhmOSwKLTB4MjIsMHgwMiwweDA0LDB4MmEsMHhiZiwweDAwLDB4MGQsMHhmYSwweGVkLDB4ZjgsMHhlMywweGY2LDB4MDgsMHgwOSwweGRhLDB4ZmEsCi0weDIyLDB4MDIsMHgwNCwweDM0LDB4YmYsMHgwMSwweDEyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOCwweDAyLDB4MDQsMHg0MSwweDA5LAotMHhhMywweGUzLDB4ZjAsMHhkOCwweGZhLDB4MjIsMHgwMiwweDA0LDB4NGMsMHhmYSwweGVkLDB4ZjgsMHhlMywweGYyLDB4MDgsMHgwOSwKLTB4ZGEsMHhmYSwweDIyLDB4MDIsMHgwNCwweDU2LDB4ZTYsMHhmYiwweDA4LDB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwweDA0LDB4ZjYsCi0weDE4LDB4NzAsMHgwMSwweDA2LDB4MjIsMHhlNiwweGZmLDB4MDgsMHhlNiwweGZlLDB4MDgsMHhlNiwweGZkLDB4MjIsMHhlZiwweGYwLAotMHhhMywweGVlLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHgyMiwweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5LDB4ZjAsMHgyMiwKLTB4ZTAsMHhmZiwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsCi0weGY5LDB4MjIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4ZjksMHgwMCwweDViLDB4MDUsMHg3MywweDAwLAotMHgyNiwweDA1LDB4OWEsMHgwMCwweDMzLDB4MGEsMHgwYiwweDAwLDB4NWIsMHgwYSwweDc3LDB4MDAsMHg2MCwweDE1LDB4NTIsMHgwMCwKLTB4NWIsMHgwYywweGZiLDB4MDAsMHg1YiwweDA5LDB4YWIsMHgwMCwweDViLDB4MDksMHhlMiwweDAwLDB4NWIsMHgwZCwweGMyLDB4MDAsCi0weDViLDB4MGIsMHhmMywweDAwLDB4NWIsMHgwYSwweDFlLDB4MDAsMHg1YiwweDBhLDB4NTMsMHgwMCwweDViLDB4MTcsMHg0YSwweDAwLAotMHgzMywweDE3LDB4NjAsMHgwMCwweDM0LDB4MWUsMHg0ZCwweDAwLDB4NDMsMHgxZSwweGYwLDB4MDAsMHg0NCwweDIwLDB4NWQsMHgwMCwKLTB4NDQsMHgyMCwweDRiLDB4MDAsMHg0NywweDFmLDB4MTcsMHgwMCwweDQ3LDB4MWYsMHhiYywweDAwLDB4NGQsMHgyMCwweDBkLDB4MDAsCi0weDRmLDB4MWYsMHgzOSwweDAwLDB4NTgsMHgzMSwweGY1LDB4MDAsMHg1YiwweDdjLDB4Y2MsMHg3ZCwweGZmLDB4MTIsMHgxYywweGZlLAotMHgyMiwweDc0LDB4OTAsMHg5MCwweGZmLDB4OTEsMHhmMCwweDkwLDB4ZmYsMHhmYywweGUwLDB4MjAsMHhlNywweDJkLDB4YzIsMHhhZiwKLTB4YWUsMHg1OSwweGFmLDB4NTgsMHg3NSwweDVhLDB4MjAsMHhlNSwweDVhLDB4MTQsMHhjNSwweDVhLDB4NjAsMHgxOSwweGU0LDB4ZmUsCi0weDdmLDB4MDUsMHhlZSwweDRmLDB4Y2UsMHgyNCwweGZmLDB4Y2UsMHhjZiwweDM0LDB4ZmYsMHhjZiwweDYwLDB4MDcsMHhlNCwweDkwLAotMHhmZiwweDkyLDB4ZjAsMHg4MCwweGVkLDB4ODAsMHhlMCwweDhlLDB4NTksMHg4ZiwweDU4LDB4MjIsMHgxMiwweDA1LDB4MDEsMHg3ZCwKLTB4MDcsMHg3YywweGI3LDB4MTIsMHgzMiwweDExLDB4N2QsMHgwZiwweDdjLDB4NmUsMHgxMiwweDMyLDB4MmIsMHg3OCwweDk3LDB4N2EsCi0weDA2LDB4ZTQsMHhmNiwweDA4LDB4ZGEsMHhmYywweDdhLDB4MDYsMHgxMiwweDA1LDB4Y2YsMHg3YywweDAzLDB4MTIsMHgwZSwweDU3LAotMHg3YywweDA0LDB4MTIsMHgwZSwweDU3LDB4MTIsMHgyMSwweDhiLDB4ZTQsMHhmZSwweGZmLDB4N2MsMHgwZiwweDEyLDB4MzEsMHg5YSwKLTB4ZDIsMHhhOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4ZTQsMHg5MCwweGZkLDB4NDAsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsCi0weGU0LDB4MDgsMHg3NCwweDAxLDB4OTAsMHhmZCwweDQxLDB4ZjAsMHg4MCwweDA1LDB4ZTQsMHg5MCwweGZkLDB4NDEsMHhmMCwweDdkLAotMHgwYSwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDkwLDB4ZmQsMHg0MSwKLTB4ZTAsMHgxNCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MTAsMHhmMCwweDdjLDB4MDAsMHgxMiwweDI1LDB4NGEsCi0weDgwLDB4MTksMHg5MCwweGZkLDB4NDEsMHhlMCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZWYsMHhmMCwweDdjLAotMHgwMCwweDEyLDB4MjUsMHg0YSwweDgwLDB4MDUsMHg3YywweDE3LDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHg5MCwKLTB4ZmYsMHhmMCwweGUwLDB4NTQsMHhhYiwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDIwLDB4ZjAsMHgyMiwweDhjLDB4MzcsCi0weDhkLDB4MzYsMHg3OCwweDdjLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLAotMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4NzgsMHg3YSwweGY2LDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwKLTB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDdkLDB4N2EsCi0weDEyLDB4MTcsMHg5ZCwweDc4LDB4N2EsMHhlNiwweDcwLDB4MGQsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHhlNCwweDEyLAotMHgwMywweDBmLDB4N2MsMHgwOCwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwKLTB4NTQsMHhmZCwweGYwLDB4ODAsMHgxZSwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsCi0weDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHgyNSwweGUwLDB4NDQsMHgwMSwweDkwLDB4ZmYsMHhmMywweGYwLAotMHgwMiwweDA2LDB4ZGIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwKLTB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NTQsMHhmZSwweDkwLDB4ZmYsMHhmMywweGYwLDB4ODAsMHgyYiwweDc4LDB4N2MsCi0weGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLAotMHgwZSwweGZhLDB4ZWIsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhjYSwweDQwLDB4MGQsMHhhZCwweDNhLDB4YWUsMHgzOSwKLTB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsCi0weGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDkwLDB4ZmYsMHhmMSwweGYwLAotMHgxMiwweDA4LDB4Y2EsMHg0MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHg3YywKLTB4MTgsMHgyMiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsCi0weDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg0NCwweDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg3OCwweDdkLDB4ZTYsMHgyNCwweDAzLAotMHhmNiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjYsMHg3OCwweDdhLDB4ZTYsMHgyNCwweGZlLDB4NTAsMHgwOSwweDkwLDB4ZmYsMHhmMCwKLTB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHhlNCwweDkwLDB4ZmYsCi0weGYxLDB4ZjAsMHg3OCwweDdiLDB4NzYsMHgwMCwweDc4LDB4N2EsMHhlNiwweDI0LDB4ZmYsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLAotMHg3OCwweDdiLDB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LDB4ODAsMHhjZCwweDY0LDB4ODAsMHg5ZCwKLTB4NDAsMHgyZiwweDEyLDB4MDgsMHhhZiwweDQwLDB4MGYsMHg3OCwweDdiLDB4ZTYsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsCi0weDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDkwLDB4ZmYsMHhmMiwweGUwLDB4ZmMsMHg3OCwweDdjLDB4ODYsMHg4MywweDA4LAotMHg4NiwweDgyLDB4ZWMsMHhmMCwweDc4LDB4N2IsMHgwNiwweGEzLDB4NzgsMHg3YywweGE2LDB4ODMsMHgwOCwweGE2LDB4ODIsMHg4MCwKLTB4YjUsMHgxMiwweDA4LDB4YWYsMHg0MCwweDBmLDB4NzgsMHg3YiwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4MTIsCi0weDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLDB4NzgsMHg3YywweDg2LDB4ODMsMHgwOCwweDg2LAotMHg4MiwweGVjLDB4ZjAsMHg3OCwweDdhLDB4ZTYsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHgxMiwweDAzLDB4MGYsMHg3YywKLTB4MDAsMHgyMiwweDhjLDB4MzcsMHg4ZCwweDM2LDB4NzgsMHg3YywweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHhlZCwweGZlLDB4ZWMsCi0weGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4N2IsMHhmNiwweDc4LDB4N2MsMHhlNiwweGZkLAotMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwKLTB4MGYsMHhmYywweDdkLDB4N2IsMHgxMiwweDE3LDB4OWQsMHg3OCwweDdiLDB4ZTYsMHg3MCwweDAzLDB4N2MsMHgwOCwweDIyLDB4OTAsCi0weGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgxYiwweDc4LAotMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwKLTB4MDIsMHgwZSwweDI1LDB4ZTAsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4NWIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsCi0weGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NTQsMHhmZSwweDkwLAotMHhmZiwweGYzLDB4ZjAsMHg4MCwweDIxLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwKLTB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZWIsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsCi0weGNhLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLAotMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhjYSwKLTB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4N2QsMHhlNiwweDI0LDB4MGEsMHhmNiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjYsCi0weDc4LDB4N2EsMHg3NiwweDAwLDB4NzgsMHg3YiwweGU2LDB4MjQsMHhmZiwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHg3OCwweDdhLAotMHhlNiwweDdmLDB4MDAsMHhmZSwweGVjLDB4ZDMsMHg5ZSwweGVmLDB4NjQsMHg4MCwweGNkLDB4NjQsMHg4MCwweDlkLDB4NDAsMHgyMSwKLTB4NzgsMHg3YywweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGNhLDB4NDAsCi0weDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg3YSwweDA2LDB4NzgsMHg3ZCwweDA2LDB4ZTYsMHgxOCwweDcwLDB4MDEsMHgwNiwweDgwLAotMHhjMywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NzgsMHg3YywweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwKLTB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4N2MsMHgwMCwweDIyLDB4OTAsCi0weGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTcsMHgxMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsMHhlNSwweDA5LDB4OTAsMHhmZiwweGYwLAotMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLDB4MjIsMHg4MCwweGU3LDB4ZDMsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MjAsMHhlMywKLTB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgyMCwweGYwLDB4YzMsCi0weDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg4YywweDQyLDB4OGQsMHg0MSwweDdjLDB4MDAsMHhlZCwweDU0LDB4ZjAsMHhmZCwweGVjLAotMHg3MCwweDAzLDB4ZWQsMHg2NCwweDMwLDB4NzAsMHgwNSwweDc1LDB4M2UsMHgwMywweDgwLDB4MDMsMHg3NSwweDNlLDB4MDQsMHhhYywKLTB4M2UsMHgxMiwweDBmLDB4N2MsMHg3NSwweDgzLDB4MDAsMHg4NSwweDgzLDB4NDAsMHhlNSwweDQxLDB4NTQsMHgwZiwweGY1LDB4M2YsCi0weGU1LDB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDMsMHg3MCwweDM1LDB4ZTUsMHgzZSwweDI0LDB4ZmQsMHg3NSwweGYwLAotMHgwYSwweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU2LDB4MDUsMHgxMiwKLTB4MTAsMHg2NywweDgwLDB4MTksMHhlNSwweDNlLDB4MjQsMHg5NywweGY4LDB4YzYsMHg1NCwweGZiLDB4ZjYsMHg3OCwweGEzLDB4ZTYsCi0weDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4ODAsMHg1OSwweGU1LAotMHg0MCwweDcwLDB4MDQsMHhlNSwweDNmLDB4NjQsMHgwNCwweDcwLDB4NDgsMHhlNSwweDNlLDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwKLTB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTUsMHgwNywweGFjLDB4NDIsCi0weGFkLDB4NDEsMHgxMiwweDFjLDB4OTMsMHhlNSwweDQyLDB4MzAsMHhlMiwweDE1LDB4NzgsMHhhNywweGU2LDB4MzAsMHhlMCwweDBmLAotMHg3OCwweGE3LDB4ZTYsMHgzMCwweGUxLDB4MDksMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDQsMHgxMiwweDMxLDB4OWEsMHg3OCwKLTB4YTMsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4ODAsCi0weDA3LDB4ZTQsMHhmYywweDdkLDB4ZWUsMHgxMiwweDFjLDB4OTMsMHhjMiwweDAzLDB4MjIsMHgxMiwweDMwLDB4ODUsMHgxMiwweDBmLAotMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwKLTB4ZmQsMHg0MCwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4OTAsMHhmZCwweDQxLDB4ZjAsMHhjMiwweDAzLDB4N2QsMHgwMiwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLAotMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMSwKLTB4MDcsMHg3YywweDEzLDB4MTIsMHgyNSwweDRhLDB4ODAsMHgwZiwweDkwLDB4ZmQsMHg0MSwweGUwLDB4ZmQsMHg3OCwweDhmLDB4ZTYsCi0weGZjLDB4MTIsMHgxMywweGZkLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLAotMHhlYywweGY2LDB4N2QsMHgwMCwweDEyLDB4MGYsMHgwYiwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwKLTB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgzMCwweGUyLDB4MDcsMHg3YywweDEzLDB4MTIsCi0weDI1LDB4NGEsMHg4MCwweDFiLDB4NzgsMHg4ZiwweGU2LDB4MjQsMHg5NywweGY4LDB4ZTYsMHgyMCwweGUxLDB4MDcsMHg3YywweDEyLAotMHgxMiwweDI1LDB4NGEsMHg4MCwweDBhLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDE0LDB4MjEsMHgxMiwweDI1LDB4NGEsMHgxMiwKLTB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MjAsCi0weGUyLDB4MDcsMHg3YywweDExLDB4MTIsMHgyNSwweDRhLDB4ODAsMHgwYSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxNSwweDIyLAotMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4MTIsMHgwZiwKLTB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsCi0weGZkLDB4NDcsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MGEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDkwLDB4ZmQsMHg0OCwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHhmNSwweDVjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4ZjUsMHg1ZCwweDhjLDB4NWIsMHhlNCwweGVjLDB4MzMsMHgzMywweDU0LDB4MDEsMHg3OCwweDhmLDB4ZjYsMHg2MCwKLTB4MDgsMHhlNSwweDVjLDB4MzAsMHhlMSwweDAzLDB4NzgsMHg4ZiwweDA2LDB4NzgsMHg4ZiwweGU2LDB4OTAsMHhmZCwweDQ5LDB4ZjAsCi0weDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmZCwweGEzLAotMHhlMCwweDU0LDB4MGMsMHhmYywweGVkLDB4NTQsMHhlNiwweDhjLDB4NWYsMHhmNSwweDVlLDB4ZTUsMHg1YiwweDMwLDB4ZTUsMHgwMywKLTB4NDMsMHg1ZiwweDAxLDB4ZTUsMHg1YywweDIwLDB4ZTUsMHgwZSwweGU1LDB4NWIsMHg1NCwweDdmLDB4NzAsMHgwOCwweGU1LDB4NWIsCi0weDIwLDB4ZTcsMHgwMywweDQzLDB4NWYsMHgwMiwweGU1LDB4NWIsMHgzMCwweGUzLDB4MDMsMHg0MywweDVmLDB4MTAsMHhlNSwweDViLAotMHgzMCwweGUyLDB4MDMsMHg0MywweDVmLDB4MjAsMHhlNSwweDViLDB4NTQsMHgwMywweDYwLDB4MDMsMHg0MywweDVmLDB4NDAsMHhlNSwKLTB4NWIsMHgzMCwweGUxLDB4MDMsMHg0MywweDVmLDB4ODAsMHhlNSwweDViLDB4MzAsMHhlNCwweDAzLDB4NDMsMHg1ZSwweDAxLDB4ZTUsCi0weDViLDB4MzAsMHhlNiwweDAzLDB4NDMsMHg1ZSwweDA4LDB4ZTUsMHg1YywweDIwLDB4ZTQsMHgwZSwweGU1LDB4NWIsMHg1NCwweDdmLAotMHg3MCwweDA4LDB4ZTUsMHg1YiwweDIwLDB4ZTcsMHgwMywweDQzLDB4NWUsMHgxMCwweDUzLDB4NWYsMHhmYiwweDUzLDB4NWUsMHhmOSwKLTB4YWQsMHg1ZSwweGU1LDB4NWYsMHg5MCwweGZkLDB4NDIsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4ZTUsMHg1ZCwweDMwLDB4ZTMsCi0weDBkLDB4ZTUsMHg1ZCwweDU0LDB4MzAsMHhjNCwweDU0LDB4MGYsMHg5MCwweGZkLDB4NDUsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwLAotMHhmZCwweDQ1LDB4ZjAsMHhlNSwweDVkLDB4NTQsMHgwMywweDkwLDB4ZmQsMHg0NCwweGYwLDB4ZTUsMHg1ZCwweDU0LDB4MDQsMHhjMywKLTB4MTMsMHg5MCwweGZkLDB4NDYsMHhmMCwweDkwLDB4ZmQsMHg0NCwweGUwLDB4NzAsMHgwZSwweDdkLDB4M2QsMHg3ZSwweGZkLDB4N2YsCi0weDAxLDB4NzQsMHgwMSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MDEsMHg0MiwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdjLDB4MDAsMHhmZCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDcsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdmLDB4MDAsMHg0YywweGZlLDB4ZWYsMHg0ZCwweDkwLDB4ZmQsCi0weDQwLDB4ZjAsMHhhMywweGNlLDB4ZjAsMHhjZSwweGMyLDB4MDMsMHg3ZCwweDBhLDB4N2MsMHgwMCwweDEyLDB4MjQsMHhiMSwweDEyLAotMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweDc4LDB4OTQsMHg3NiwweDAxLDB4MDgsMHg3NiwKLTB4ZmQsMHgwOCwweDc2LDB4NDAsMHg3OCwweDkxLDB4NzYsMHgwYywweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHgxMiwweDAyLDB4MTQsCi0weDc4LDB4OTIsMHhjYiwweGY2LDB4Y2IsMHgwOCwweGY2LDB4N2YsMHgwMCwweGVmLDB4MjQsMHhlYiwweDQwLDB4MWYsMHhlNCwweGVmLAotMHgyNSwweGUwLDB4OTAsMHgzNCwweGJmLDB4ZmQsMHg5MywweGNkLDB4MDQsMHg5MywweDc4LDB4OTMsMHg2NiwweDcwLDB4MDMsMHhlZCwKLTB4MTgsMHg2NiwweDcwLDB4MDYsMHg3OCwweDkxLDB4NzYsMHgwMCwweDgwLDB4MDMsMHgwZiwweDgwLDB4ZGMsMHg3OCwweDkwLDB4ZWYsCi0weGY2LDB4NzgsMHg5NCwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDIsMHgwZSwweDc4LDB4OTIsMHhjYiwweGY2LAotMHhjYiwweDA4LDB4ZjYsMHg1NCwweDA0LDB4Y2IsMHg1NCwweDA2LDB4NGIsMHg2MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGIsMHg3OCwKLTB4OTMsMHhlNiwweDMwLDB4ZTMsMHgxMywweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsCi0weDI0LDB4ZmIsMHg1MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGQsMHg3OCwweDkzLDB4ZTYsMHg1NCwweGMwLDB4N2QsMHgwMCwweDY0LAotMHhjMCwweDRkLDB4NzAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBiLDB4NzgsMHg5NCwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwNCwKLTB4MTIsMHgwMSwweGVjLDB4MjQsMHhmYywweDUwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwZiwweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsCi0weDkwLDB4MDAsMHgwNiwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmQsMHg1MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGUsMHg3OCwweDk0LAotMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwKLTB4MGEsMHg3OCwweDkxLDB4ZTYsMHg3MCwweDJhLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweDk0LDB4MTIsCi0weDA0LDB4NjUsMHg3OCwweGExLDB4ZTYsMHhmOSwweDc4LDB4YTAsMHhlNiwweGZhLDB4N2IsMHgwMSwweDc0LDB4MGEsMHg3OCwweDAwLAotMHgxMiwweDAzLDB4M2YsMHhjMiwweDAzLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHg3OCwweDkxLDB4ZWMsMHhmNiwKLTB4NzgsMHg5MSwweGU2LDB4ZmMsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsCi0weGVjLDB4ZjYsMHgxMiwweDBmLDB4N2MsMHg3OCwweDhmLDB4ZTYsMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDFjLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGFjLDB4ODIsMHhhZCwweDgzLDB4NzgsMHhhMCwweDg2LDB4ODMsMHgwOCwKLTB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4YTcsMHhjMiwweDAzLDB4NzgsCi0weDhmLDB4ZTYsMHhmYywweDEyLDB4MTEsMHgyMywweDEyLDB4MzEsMHgwOCwweDIyLDB4OGQsMHgyYiwweDhjLDB4MmEsMHhlZCwweDYwLAotMHg0MCwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksMHg0OCwweDc1LDB4MjgsMHhmZiwweGU1LDB4MmEsMHgyNCwweGZkLDB4ZmMsMHhlNCwKLTB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwweGRjLDB4ZjksMHhmYywweGU1LDB4MjksCi0weDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwweGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsMHgyOCwweGFmLDB4MjcsMHg3NCwweDgwLAotMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHg3NCwweDgwLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4MTIsMHgwZiwKLTB4ZDMsMHhlNSwweDJiLDB4MTQsMHg2MCwweDNiLDB4NzUsMHgyNywweDAxLDB4NzUsMHgyOSwweDA4LDB4NzUsMHgyOCwweGZmLDB4ZTUsCi0weDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLDB4Y2QsMHgzMywweGNkLAotMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LDB4MmMsMHhmNSwweDI5LDB4ZTUsMHgyOCwweDNkLDB4ZjUsMHgyOCwweGFkLDB4MjksMHhhZSwKLTB4MjgsMHhhZiwweDI3LDB4ZTQsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHhlNCwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsCi0weDE3LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgzMCwweGUyLAotMHgwOSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxNSwweDIyLDB4ZDIsMHgwMCwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgwZiwKLTB4N2MsMHg3OCwweDkwLDB4NzYsMHgwMCwweDkwLDB4ZmQsMHg0MSwweGUwLDB4MzAsMHhlNywweDA0LDB4NzgsMHg5MCwweDc2LDB4MDEsCi0weDc4LDB4OTAsMHhlNiwweGZkLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDBkLDB4M2EsMHhjMiwweDAzLDB4MzAsMHgwMCwweDA3LAotMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTQsMHgyMSwweDdjLDB4MDAsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwKLTB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDEsCi0weGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLAotMHhlMCwweDAyLDB4ODAsMHhlZCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4YzIsMHgwMywweDhjLDB4NTgsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEwLAotMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHhlZSwweDdhLDB4MzQsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwKLTB4MTIsMHgwZSwweDEwLDB4YWMsMHg1OCwweDdkLDB4MDIsMHgxMiwweDBkLDB4M2EsMHhjMiwweDAzLDB4YWMsMHg1OCwweDEyLDB4MTEsCi0weDIzLDB4MjIsMHg4ZCwweDUzLDB4OGUsMHg1MiwweDhmLDB4NTEsMHg4YywweDUwLDB4MTIsMHgwZiwweDdjLDB4NzUsMHg0ZiwweDAwLAotMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MjAsMHhlNCwKLTB4MTYsMHhlNSwweDRmLDB4MjQsMHhmNiwweDQwLDB4MTAsMHgwNSwweDRmLDB4YzIsMHgwMywweDdjLDB4MTgsMHgxMiwweDMyLDB4NDgsCi0weGFjLDB4NTAsMHgxMiwweDBmLDB4N2MsMHg4MCwweGQ5LDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MjAsMHhlNCwweDA1LDB4YzIsMHgwMywweDdjLDB4MDIsMHgyMiwweDc4LDB4YTMsMHhlNiwKLTB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4MGYsMHg2MCwweDE2LDB4NzgsCi0weGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwZiwweGYwLAotMHhjMiwweDAzLDB4N2MsMHgwMSwweDIyLDB4NzgsMHhhMiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweGFkLDB4NTMsMHhhZSwKLTB4NTIsMHhhZiwweDUxLDB4MTIsMHgwMywweDBmLDB4YzIsMHgwMywweDdjLDB4MDAsMHgyMiwweDhkLDB4MzEsMHg4YywweDMwLDB4MTIsCi0weDE1LDB4MjIsMHhlNSwweDMxLDB4NjAsMHgyMCwweGU1LDB4MzAsMHhiNCwweDAzLDB4MGMsMHg3YywweDAxLDB4MTIsMHgyNCwweDdjLAotMHg3YywweDgxLDB4MTIsMHgyNCwweDdjLDB4ODAsMHgwZiwweGU1LDB4MzAsMHhiNCwweDA0LDB4MGEsMHg3YywweDAyLDB4MTIsMHgyNCwKLTB4N2MsMHg3YywweDgyLDB4MTIsMHgyNCwweDdjLDB4YWMsMHgzMCwweDEyLDB4MGYsMHg3YywweGU1LDB4MzEsMHg2MCwweDFhLDB4NzgsCi0weGE0LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NTQsMHhlNywweGYwLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDU0LAotMHhlNywweGYwLDB4YWMsMHgzMCwweDdkLDB4MDIsMHgxMiwweDBkLDB4M2EsMHg3OCwweGEwLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwKLTB4NzksMHhmOCwweDdhLDB4MzQsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweGMyLDB4MDMsMHhlNSwweDMwLDB4MjQsCi0weDk3LDB4ZjgsMHhjNiwweDU0LDB4ZmQsMHhmNiwweGFjLDB4MzAsMHgxMiwweDExLDB4MjMsMHgyMiwweDhjLDB4MjYsMHgzMCwweDAzLAotMHgwNSwweDEyLDB4MzEsMHhlNywweDgwLDB4ZjgsMHg3YywweDBhLDB4MTIsMHgzMCwweGZhLDB4ZDIsMHgwMywweGU1LDB4MjYsMHgyNCwKLTB4ZmQsMHg3OCwweDlkLDB4ZjYsMHg3MCwweDA5LDB4NzgsMHhhNCwweDc2LDB4ZmYsMHgwOCwweDc2LDB4ZTAsMHg4MCwweDA3LDB4NzgsCi0weGE0LDB4NzYsMHhmZiwweDA4LDB4NzYsMHhlMiwweDc4LDB4OWQsMHhlNiwweDc1LDB4ZjAsMHgxMCwweGE0LDB4YWQsMHhmMCwweGZjLAotMHgyNCwweGEwLDB4NzgsMHhhMywweGY2LDB4ZWQsMHgzNCwweGZmLDB4MTgsMHhmNiwweDc4LDB4OWQsMHhlNiwweDc1LDB4ZjAsMHgwYSwKLTB4YTQsMHgyNCwweDA4LDB4ZmMsMHhlNCwweDM0LDB4ZmQsMHhmZCwweDc4LDB4YTAsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4MTIsCi0weDMxLDB4OTMsMHgyMiwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDMwLDB4ZTcsMHgyMiwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4NzgsMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LAotMHg3ZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsMHg4MiwweGY1LDB4ODMsMHhlMCwKLTB4NTQsMHg3ZiwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4NTQsMHhmOCwweGYwLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDIyLDB4NzgsMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LAotMHgzZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsMHg4MiwweGY1LDB4ODMsMHhlMCwKLTB4NTQsMHgzZiwweGYwLDB4NzgsMHg5ZCwweGU2LDB4MjQsMHg5ZSwweGY4LDB4ZTYsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDEsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHg5ZCwweGU2LDB4MjQsMHg5ZSwweGY4LAotMHhlNiwweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywKLTB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsCi0weGZiLDB4NDQsMHgwMiwweGY1LDB4MjYsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU1LDB4MDMsMHg0MywweDI2LDB4MDEsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLDB4MDMsMHgxMiwweDBmLDB4ZDMsMHhlNSwweDI2LDB4ZmMsCi0weDc4LDB4YTMsMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LAotMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHg3OCwKLTB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NDQsCi0weDgwLDB4ZjAsMHgyMiwweDhjLDB4MmEsMHgxMiwweDBmLDB4N2MsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MGEsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwNywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywKLTB4ZWQsMHhmZSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWUsCi0weGYwLDB4ZWMsMHhmZSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlZSwweGYwLDB4OGMsMHgyOSwweDhkLDB4MjgsMHhjMywweGVjLDB4OTQsMHgwMiwweGVkLDB4OTQsMHgwNiwweDQwLDB4MDUsMHg3NSwKLTB4MjcsMHg3YywweDgwLDB4MzMsMHhkMywweGU1LDB4MjksMHg5NCwweDgxLDB4ZTUsMHgyOCwweDk0LDB4MDEsMHg0MCwweDA1LDB4NzUsCi0weDI3LDB4M2MsMHg4MCwweDIzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHhjMCwweGU1LDB4MjgsMHg5NCwweDAwLDB4NDAsMHgwNSwweDc1LAotMHgyNywweDE4LDB4ODAsMHgxMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4MzAsMHhlNSwweDI4LDB4OTQsMHgwMCwweDQwLDB4MDUsMHg3NSwKLTB4MjcsMHgwYywweDgwLDB4MDMsMHg3NSwweDI3LDB4MDgsMHhhZiwweDI3LDB4ZTQsMHhlZiwweDU0LDB4N2MsMHg0NCwweDgzLDB4ZmYsCi0weDhmLDB4MjcsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHg5ZCwweGU2LDB4MjQsMHg5ZSwweGY4LDB4ZWMsCi0weGY2LDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LAotMHgyNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwKLTB4MzAsMHhlMywweDE3LDB4NTMsMHgyNywweGM3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHgzNCwweGU5LDB4OTMsMHg0MiwweDI3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNywweDA1LDB4NDMsMHgyNywweDQwLDB4ODAsMHgwMywKLTB4NTMsMHgyNywweGJmLDB4NTMsMHgyNywweGZiLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4NjAsMHgwMywweDQzLDB4MjcsMHgwNCwweDUzLDB4MjcsMHhmYywweDc4LDB4YTEsMHhlNiwweDI0LAotMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQyLDB4MjcsMHg0MywweDI3LDB4ODAsMHhlNSwKLTB4MjcsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsCi0weGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LAotMHgyNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwKLTB4MzAsMHhlMSwweDA1LDB4NTMsMHgyNywweGRmLDB4ODAsMHgwMywweDQzLDB4MjcsMHgyMCwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgwNSwweDUzLDB4MjcsMHhlZiwweDgwLAotMHgwMywweDQzLDB4MjcsMHgxMCwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweGI0LDB4MDIsMHgwMywweDQzLDB4MjcsMHgwMiwweGU1LDB4MjcsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMywweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDksMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDcwLDB4MDUsMHg1MywweDI3LDB4N2YsMHg4MCwweDAzLDB4NDMsCi0weDI3LDB4ODAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLAotMHhlMCwweDMwLDB4ZTAsMHgwNSwweDQzLDB4MjcsMHgyMCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZGYsMHg3OCwweGExLDB4ZTYsMHgyNCwKLTB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUzLDB4MDUsMHg0MywweDI3LDB4NDAsCi0weDgwLDB4MDMsMHg1MywweDI3LDB4YmYsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLDB4MDUsMHg0MywweDI3LDB4MTAsMHg4MCwweDAzLDB4NTMsMHgyNywweGVmLDB4NzgsMHhhMSwKLTB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU0LDB4MDUsCi0weDQzLDB4MjcsMHgwOCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTUsMHgwNSwweDQzLDB4MjcsMHgwNCwweDgwLDB4MDMsMHg1MywKLTB4MjcsMHhmYiwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsCi0weGUwLDB4MzAsMHhlNiwweDA1LDB4NDMsMHgyNywweDAxLDB4ODAsMHgwMywweDUzLDB4MjcsMHhmZSwweDc4LDB4YTEsMHhlNiwweDI0LAotMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNywweDA1LDB4NDMsMHgyNywKLTB4MDIsMHg4MCwweDAzLDB4NTMsMHgyNywweGZkLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMywweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHgwMCwweDIyLDB4OGQsMHgyNywweDhjLAotMHgyNiwweGVkLDB4NTQsMHgwMywweDE0LDB4NjAsMHgwMywweDdjLDB4MTAsMHgyMiwweGU1LDB4MjcsMHg1NCwweDdjLDB4MjQsMHhmYywKLTB4NDAsMHgwMywweDdjLDB4MGIsMHgyMiwweGU1LDB4MjYsMHgyNCwweDk3LDB4ZjgsMHhjNiwweDQ0LDB4MDIsMHhmNiwweDdjLDB4MDAsCi0weDIyLDB4OGMsMHgzMCwweDEyLDB4MGYsMHg3YywweGU1LDB4MzAsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDIwLDB4ZTIsMHg0ZiwweGFjLAotMHgzMCwweDdkLDB4MDIsMHgxMiwweDBkLDB4M2EsMHhlNSwweDMwLDB4MjQsMHhmZSwweDQ0LDB4MjgsMHhmYywweDc4LDB4YTQsMHg4NiwKLTB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGYwLDB4YWYsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmUsMHhlNCwweDNmLDB4ZmYsCi0weGVjLDB4OGUsMHg4MiwweDhmLDB4ODMsMHhmMCwweDdjLDB4MDMsMHg4YywweDJjLDB4ZTUsMHgyYywweGZjLDB4NzgsMHhhNSwweGU2LAotMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDJjLDB4ZmMsMHg3OCwKLTB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc1LDB4MmQsCi0weDAxLDB4NzUsMHgyZiwweDQ4LDB4NzUsMHgyZSwweGZmLDB4ZTUsMHgzMCwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLAotMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLDB4Y2QsMHgzMywweGNkLDB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyZiwweDJjLDB4ZjUsMHgyZiwKLTB4ZTUsMHgyZSwweDNkLDB4ZjUsMHgyZSwweDc4LDB4YTUsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDU0LDB4ZTcsMHhmNSwweDJjLDB4YWQsMHgyZiwweGFlLDB4MmUsMHhhZiwweDJkLDB4ZTQsMHg5MCwweDAwLAotMHgwMiwweDEyLDB4MDMsMHgxNywweGU0LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4MTIsMHgwMSwweGU2LDB4MzAsMHhlNSwKLTB4MDMsMHg0MywweDJjLDB4MTAsMHhlNSwweDJjLDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDEyLDB4MTAsMHg2NywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGMyLDB4MDMsMHhmYywweGU1LDB4MzAsMHgyNCwweDk3LDB4ZjgsMHhjNiwKLTB4NDQsMHgwNCwweGY2LDB4OGMsMHgyYywweGU1LDB4MzAsMHg1NCwweDBmLDB4YzQsMHg1NCwweGYwLDB4N2UsMHgwMCwweGZmLDB4ZWUsCi0weGVmLDB4NDQsMHgwNCwweDdkLDB4MDAsMHhmZiwweGVjLDB4NGUsMHhmYywweGVkLDB4NGYsMHhmZCwweDEyLDB4MWMsMHhmZSwweDdjLAotMHgwMCwweDIyLDB4OGMsMHgyZiwweDEyLDB4MGYsMHg3YywweDEyLDB4MTAsMHgwNywweDc4LDB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwKLTB4ODIsMHhlMCwweDU0LDB4MDgsMHhmMCwweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg1NCwweDA4LDB4ZjAsMHhhYywweDJmLDB4N2QsCi0weDAyLDB4MTIsMHgwZCwweDNhLDB4YzIsMHgwMywweGU1LDB4MmYsMHgyNCwweDk3LDB4ZjgsMHhjNiwweDU0LDB4ZmIsMHhmNiwweDdjLAotMHgwMCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg5MCwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMSwKLTB4MGEsMHg3ZCwweDAwLDB4N2MsMHgxMywweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDc4LDB4OTAsMHhlNiwweDI0LDB4OTcsCi0weGY4LDB4YzYsMHg0NCwweDAxLDB4ZjYsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4OTAsMHhlNiwweDI0LAotMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxYywweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4NzgsMHhhMCwKLTB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4NzgsMHhhMCwweDg2LDB4ODMsCi0weDA4LDB4ODYsMHg4MiwweDc5LDB4ZjgsMHg3YSwweDM0LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHgxMiwweDBmLAotMHhkMywweGMyLDB4MDMsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MTEsMHgyMywweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHg2MCwKLTB4MGEsMHg3ZCwweDAwLDB4N2MsMHgwOCwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsCi0weDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLAotMHg0NCwweDEwLDB4NTQsMHhkZiwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweDQ4LDB4NzgsCi0weDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZWYsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweDQ4LDB4NzgsMHg5MCwKLTB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDQ0LDB4MTAsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweDQ4LDB4NzgsMHg5MCwweGU2LAotMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMyLDB4MDMsMHg3YywweGYwLDB4MTIsMHgzMiwweDQ4LDB4NzgsMHg5MCwweGU2LDB4ZmMsCi0weDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDMwLDB4ZTQsMHgxNSwweGMyLDB4MDMsMHg3OCwweDkwLDB4ZTYsMHg0NCwweDEwLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgwNywKLTB4MTIsMHgzMSwweDlhLDB4MTIsMHgzMSwweDA4LDB4MDIsMHgxNywweDQ5LDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhjZiwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLAotMHg0OCwweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgzMCwweGYwLDB4YzIsMHgwMywweDdjLDB4ZjAsMHgxMiwweDMyLDB4NDgsCi0weDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNCwweDE0LDB4YzIsMHgwMywweDc4LDB4OTAsMHhlNiwweDQ0LDB4MTAsMHg3ZiwKLTB4MDAsMHhmZSwweDdjLDB4MDcsMHgxMiwweDMxLDB4OWEsMHgxMiwweDMxLDB4MDgsMHg4MCwweDVkLDB4NzgsMHhhMywweGU2LDB4MjQsCi0weDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhlZiwweGYwLDB4NzgsMHhhMywweGU2LAotMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLDB4NzgsMHg5MCwKLTB4ZTYsMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsCi0weGFjLDB4ODIsMHhhZCwweDgzLDB4NzgsMHhhMCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGY5LDB4ZWQsMHhmYSwweDdiLAotMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4YTcsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHg3ZCwKLTB4MDAsMHg3YywweDBiLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg5MCwweGZmLDB4OTEsCi0weGUwLDB4OTAsMHhmZCwweDQxLDB4ZjAsMHg3ZCwweDAyLDB4N2MsMHgwMCwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDIyLAotMHgxMiwweDMwLDB4ODUsMHg5MCwweGZkLDB4NDAsMHhlMCwweGY0LDB4ZmMsMHg5MCwweGZmLDB4OTEsMHhlMCwweDVjLDB4ZjUsMHgzMywKLTB4OTAsMHhmZCwweDQxLDB4ZTAsMHhmYywweDkwLDB4ZmQsMHg0MCwweGUwLDB4NWMsMHg0MiwweDMzLDB4ZTUsMHgzMywweDkwLDB4ZmYsCi0weDkxLDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHg3NCwweDNjLDB4OTAsMHhmYiwweGU4LAotMHhmMCwweDc0LDB4M2UsMHg5MCwweGZiLDB4ZTgsMHhmMCwweGU0LDB4OTAsMHhmZCwweDMwLDB4ZjAsMHgyMiwweDhkLDB4MzUsMHg4YywKLTB4MzQsMHhlYywweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDIsMHg4MCwweDI4LDB4YjQsMHgwMiwweDAyLDB4ODAsCi0weDAzLDB4ZDMsMHg0MCwweDA4LDB4YTgsMHgzNSwweGM2LDB4MjUsMHhlMCwweGY2LDB4ODAsMHgxOCwweGI0LDB4MDQsMHgwMiwweDgwLAotMHgwMywweGQzLDB4NDAsMHgwYSwweGE4LDB4MzUsMHhjNiwweDI1LDB4ZTAsMHgyNSwweGUwLDB4ZjYsMHg4MCwweDA2LDB4YTgsMHgzNSwKLTB4NzYsMHgwMCwweDgwLDB4MDAsMHgyMiwweDhjLDB4M2MsMHg4ZCwweDNiLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4NzUsCi0weDYwLDB4MDYsMHg3NSwweDYxLDB4MDAsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4NmUsMHgxMiwweDAxLDB4ZTYsMHhiNCwweDgwLAotMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDE4LDB4OWUsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwKLTB4MDAsMHgwMywweDEyLDB4MDEsMHhlYywweDU0LDB4ZjAsMHhiNCwweDMwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDVmLDB4OTAsCi0weGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGZkLDB4ZWIsMHhmZSwweDdmLAotMHgwMSwweDkwLDB4ZmQsMHgzNCwweDEyLDB4MDQsMHg2ZSwweGVlLDB4Y2QsMHg5MCwweDM1LDB4MDIsMHhmYywweGU0LDB4OTMsMHhmZiwKLTB4NzQsMHgwMSwweDkzLDB4ZmUsMHhmOSwweGVmLDB4ZmEsMHg3YiwweDAxLDB4ZWEsMHhmZiwweGU5LDB4ZmUsMHhlYywweGMzLDB4OWUsCi0weGVkLDB4OWYsMHg0MCwweDI1LDB4OTAsMHgzNSwweDA0LDB4ZTQsMHg5MywweGZkLDB4NzQsMHgwMSwweDkzLDB4ZmMsMHhlZCwweGZlLAotMHhlYywweGZkLDB4N2YsMHgwMSwweGVlLDB4Y2QsMHhmYywweDkwLDB4ZmQsMHgzNiwweGUwLDB4ZDMsMHg5YywweDkwLDB4ZmQsMHgzNSwKLTB4ZTAsMHg5ZCwweDUwLDB4MDUsMHg3NSwweDYwLDB4ODAsMHg4MCwweDMzLDB4MTIsMHgxOSwweGJjLDB4ODAsMHgyZSwweGI0LDB4NjAsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYiwweGFjLDB4M2MsMHhhZCwweDNiLDB4MTIsMHgwNywweDgyLDB4OGMsMHg2MCwweDgwLAotMHgxYiwweGI0LDB4MTAsMHgwMywweGIzLDB4NDAsMHgxMCwweGMzLDB4YjQsMHgyMCwweDAzLDB4YjMsMHg0MCwweDA5LDB4YzMsMHhiNCwKLTB4NDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg3NSwweDYwLDB4ODEsMHg4MCwweDAwLDB4ODAsMHg3NSwweGI0LDB4ODEsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2YiwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwMywweDEyLAotMHgwMSwweGVjLDB4NTQsMHhmMCwweGI0LDB4MzAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWQsMHg5MCwweGZkLDB4MzEsMHgxMiwKLTB4MDQsMHg4MCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZmQsMHhlYiwweGZlLDB4N2YsMHgwMSwweDkwLDB4ZmQsCi0weDM3LDB4MTIsMHgwNCwweDZlLDB4MTIsMHgxOSwweDI2LDB4ODAsMHgzNiwweGI0LDB4NjAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAotMHgxMywweDc1LDB4M2EsMHg2MSwweGU0LDB4ZjUsMHgzOSwweGY1LDB4MzgsMHhhYywweDNjLDB4YWQsMHgzYiwweDEyLDB4MDUsMHhkZSwKLTB4OGMsMHg2MCwweDgwLDB4MWIsMHhiNCwweDEwLDB4MDMsMHhiMywweDQwLDB4MTAsMHhjMywweGI0LDB4MjAsMHgwMywweGIzLDB4NDAsCi0weDA5LDB4YzMsMHhiNCwweDQwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2MCwweDgxLDB4ODAsMHgwMCwweDgwLAotMHgwMiwweDgwLDB4MDAsMHhlNSwweDYwLDB4ZmMsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHhlYywweDkwLDB4MDAsMHgwMiwKLTB4MTIsMHgwMywweDE3LDB4YWMsMHg2MSwweDIyLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LDB4MTIsCi0weDAxLDB4ZWMsMHg2MCwweDA0LDB4NzQsMHgwMSwweDgwLDB4MDEsMHhlNCwweGEyLDB4ZTAsMHg5MiwweDAxLDB4OTAsMHhmZCwweDMxLAotMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDMsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzNCwweDEyLDB4MDQsMHg2ZSwKLTB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4ZjUsMHg2MSwweDkwLDB4MDAsCi0weDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLDB4N2QsMHg2MSwweDEyLDB4MTcsMHg5ZCwweGU1LDB4NjEsMHg3MCwweDA0LAotMHg3NSwweDYwLDB4MDgsMHgyMiwweDc1LDB4NjAsMHgwMCwweDc4LDB4N2UsMHg3NiwweDAwLDB4NzgsMHg3ZSwweGU2LDB4YzMsMHg5NSwKLTB4NjEsMHg1MCwweDM4LDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDgwLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHg5MCwweGZkLDB4MzQsCi0weDEyLDB4MDQsMHg4MCwweGVjLDB4MTIsMHgwMywweDBmLDB4MzAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM5LDB4ZTAsMHgwNCwweGYwLAotMHg5MCwweGZkLDB4MzgsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4NzgsMHg3ZSwweDA2LDB4OTAsMHhmZCwweDM2LDB4ZTAsMHgwNCwKLTB4ZjAsMHg5MCwweGZkLDB4MzUsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhjMCwweDIyLDB4OTAsMHhmZCwweDMyLDB4ZTAsCi0weGZkLDB4YTMsMHhlMCwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4ZWQsMHgyNCwweDBhLDB4ZmQsMHg1MCwweDAxLAotMHgwZSwweDkwLDB4ZmQsMHgzYSwweDEyLDB4MDQsMHg2ZSwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwKLTB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTcsMHg5MCwweGZkLDB4M2EsCi0weDEyLDB4MDQsMHg4MCwweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4NmUsMHg3OCwweDgyLAotMHg3NiwweDAxLDB4ODAsMHg0ZSwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTksMHg5MCwweGZkLDB4M2EsMHgxMiwKLTB4MDQsMHg4MCwweGVkLDB4MjQsMHgwMiwweGZkLDB4NTAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDZlLDB4NzgsCi0weDgyLDB4NzYsMHgwMiwweDgwLDB4MmQsMHhiNCwweDA0LDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE5LDB4OTAsMHhmZCwweDNhLAotMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDQsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg2ZSwKLTB4NzgsMHg4MiwweDc2LDB4MDQsMHg4MCwweDBjLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDc1LDB4NjAsCi0weDA4LDB4MjIsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHhmNSwweDYxLAotMHg3OCwweDdmLDB4NzYsMHgwMCwweDc4LDB4N2YsMHhlNiwweGMzLDB4OTUsMHg2MSwweDQwLDB4MDMsMHgwMiwweDFiLDB4MjQsMHg3OCwKLTB4ODAsMHg3NiwweDAwLDB4NzgsMHg4MCwweGU2LDB4YzMsMHg3OCwweDgyLDB4OTYsMHg1MCwweDc2LDB4OTAsMHhmZCwweDM0LDB4MTIsCi0weDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLDB4ZmQsMHgzYSwweDEyLDB4MDQsMHg4OSwweDEyLDB4MDEsMHhlMCwweGY0LAotMHg1YywweGZjLDB4MTIsMHgwMSwweGUwLDB4ZjgsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4ODAsMHhlOCwweGMwLDB4ZTAsMHgxMiwKLTB4MDEsMHhlNiwweGM4LDB4ZDAsMHhlMCwweGM4LDB4NTgsMHg0YywweGZjLDB4OTAsMHhmZCwweDM0LDB4MTIsMHgwNCwweDgwLDB4ZWMsCi0weDEyLDB4MDMsMHgwZiwweDc4LDB4ODEsMHhlYywweGY2LDB4OTAsMHhmZCwweDM5LDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmZCwweDM4LAotMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4MDksMHhlOSwweDcwLDB4MDEsMHgwYSwweDkwLDB4ZmQsMHgzYSwweDEyLDB4MDQsMHg3NywKLTB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4MzAsMHhlNCwweDBlLDB4OTAsCi0weGZkLDB4MzYsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZkLDB4MzUsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4NzgsMHg4MCwweDA2LAotMHg4MCwweDgxLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHhlNCwweGZlLDB4ZmYsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZkLDB4MzksMHhlMCwKLTB4MmMsMHhmMCwweDkwLDB4ZmQsMHgzOCwweGUwLDB4M2QsMHhmMCwweDc4LDB4ODIsMHhlNiwweGZkLDB4ZTQsMHhmZSwweGZmLDB4ZWUsCi0weGNkLDB4ZmMsMHg5MCwweGZkLDB4M2MsMHhlMCwweDJjLDB4ZjAsMHg5MCwweGZkLDB4M2IsMHhlMCwweDNkLDB4ZjAsMHg3OCwweDdmLAotMHgwNiwweDAyLDB4MWEsMHg2NCwweDc1LDB4NjAsMHgwMCwweDIyLDB4ZTUsMHgzZCwweDA1LDB4M2QsMHgwNCwweDcwLDB4MDIsMHhiMiwKLTB4YjAsMHgyMiwweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksCi0weGMwLDB4ZTAsMHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLAotMHhlMCwweGVmLDB4YzAsMHhlMCwweDkwLDB4ZmYsMHg5MiwweGUwLDB4MTIsMHgwMSwweGI3LDB4MWIsMHg4MCwweDMwLDB4MWIsMHg4MCwKLTB4MzIsMHgxYiwweDhmLDB4MzgsMHgxYiwweGExLDB4M2EsMHgxYiwweGIzLDB4M2UsMHgxYiwweGNiLDB4NDQsMHgxYiwweGJmLDB4NDYsCi0weDFiLDB4ZDcsMHg1MCwweDFjLDB4MTksMHg1MiwweDFiLDB4ZjgsMHg1NCwweDFjLDB4M2EsMHg1NiwweDAwLDB4MDAsMHgxYywweDViLAotMHg5MCwweGZmLDB4OTIsMHhlMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDEsMHgxMiwweDMxLDB4OWEsMHgwMiwweDFjLDB4NmIsMHhlNCwKLTB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMywweDEyLDB4MzEsMHg5YSwweDc0LDB4MjAsMHg5MCwweGZmLDB4ZmUsMHhmMCwweDAyLDB4MWMsCi0weDZiLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDAyLDB4MTIsMHgzMSwweDlhLDB4NzQsMHg0MCwweDkwLDB4ZmYsMHhmZSwweGYwLAotMHgwMiwweDFjLDB4NmIsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDQsMHgxMiwweDMxLDB4OWEsMHgwMiwweDFjLDB4NmIsMHhlNCwKLTB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNSwweDEyLDB4MzEsMHg5YSwweDAyLDB4MWMsMHg2YiwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsCi0weDA2LDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4OTAsMHhmZiwweGE1LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmZCwweDAwLAotMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZCwweDAxLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZkLDB4MDAsMHhlMCwKLTB4NDQsMHgzMywweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHg3MywweDkwLDB4ZmYsMHhiNSwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmQsCi0weDAyLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwMywweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmZCwweDAyLAotMHhlMCwweDQ0LDB4NDMsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4NTIsMHg5MCwweGZmLDB4YTYsMHhlMCwweDdkLDB4MDAsMHg5MCwKLTB4ZmQsMHgwNCwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZkLDB4MDUsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmQsCi0weDA0LDB4ZTAsMHg0NCwweDM0LDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDMxLDB4OTAsMHhmZiwweGI2LDB4ZTAsMHg3ZCwweDAwLAotMHg5MCwweGZkLDB4MDYsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZCwweDA3LDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwKLTB4ZmQsMHgwNiwweGUwLDB4NDQsMHg0NCwweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHgxMCwweDkwLDB4ZmYsMHg5MiwweGUwLDB4N2QsCi0weDAwLDB4ZmMsMHhlZCwweDQ0LDB4YWEsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4MDAsMHhlNCwweDkwLDB4ZmYsMHg5MiwweGYwLAotMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMCwKLTB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsCi0weGQwLDB4ZTAsMHgzMiwweDA1LDB4ODEsMHgwNSwweDgxLDB4MDUsMHg4MSwweDA1LDB4ODEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LAotMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmZiwweDZhLDB4ZTAsMHgyMCwweGU3LDB4MDIsMHg4MCwweGY3LDB4OTAsMHhmZiwKLTB4NjksMHhlMCwweDdkLDB4MDAsMHhhOCwweDgxLDB4MTgsMHhjZCwweGY2LDB4Y2QsMHgwOCwweGY2LDB4N2QsMHgwMywweGE4LDB4ODEsCi0weGU2LDB4MTgsMHhmYywweGU2LDB4Y2MsMHgyNSwweGUwLDB4Y2MsMHgzMywweGNjLDB4ZGQsMHhmOSwweGNjLDB4ZjYsMHhjYywweDA4LAotMHhmNiwweGE4LDB4ODEsMHgxOCwweGU2LDB4NDQsMHhmOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwKLTB4ZTYsMHhmYywweGE4LDB4ODEsMHgxOCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLDB4NzQsCi0weDAyLDB4OTAsMHhmZiwweDZhLDB4ZjAsMHgxNSwweDgxLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgxNSwweDgxLDB4MjIsMHhlNSwweDgxLAotMHgyNCwweDA1LDB4ZjUsMHg4MSwweGU0LDB4YTgsMHg4MSwweDE4LDB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlZCwKLTB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg5MCwweGZiLDB4ZmQsMHhlMCwweDI0LDB4ZjgsMHg1MCwweDAzLDB4MDIsMHgxZSwweDFmLDB4ZTQsCi0weGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHhhOCwweDgxLDB4MTgsMHhlNiwweGZlLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LAotMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4N2YsMHgwMCwweGVmLDB4MjQsMHhmOCwweDQwLDB4NGQsMHhlNCwweGVmLDB4MjUsMHhlMCwKLTB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHg2YywweDcwLDB4MDMsCi0weGZhLDB4ZWIsMHg2ZCwweDcwLDB4MDksMHg3NCwweDAxLDB4YTgsMHg4MSwweDE4LDB4MTgsMHhmNiwweDgwLDB4MmIsMHhlNCwweGVmLAotMHgyNSwweGUwLDB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4N2EsMHgwMCwweGUwLDB4NTQsMHhmMCwKLTB4Y2MsMHhmOCwweGNjLDB4Y2QsMHhmOSwweGNkLDB4ZmIsMHg3OCwweDAwLDB4ZTksMHg1NCwweGYwLDB4ZjksMHhlYSwweDY4LDB4NzAsCi0weDAyLDB4ZWIsMHg2OSwweDcwLDB4MDEsMHgwZSwweDBmLDB4ODAsMHhhZSwweGE4LDB4ODEsMHgxOCwweGVlLDB4ZjYsMHhhOCwweDgxLAotMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHhhOCwweDgxLDB4ZWYsMHhmNiwweGE4LDB4ODEsMHgxOCwKLTB4MTgsMHhlNiwweDcwLDB4NzksMHhhOCwweDgxLDB4MTgsMHhlNiwweDI0LDB4ZjcsMHg0MCwweDcxLDB4YTgsMHg4MSwweDE4LDB4MTgsCi0weDE4LDB4MTgsMHhlNiwweDU0LDB4MGYsMHhhOCwweDgxLDB4ZjYsMHg2NCwweDA0LDB4NjAsMHgxNywweGE4LDB4ODEsMHhlNiwweDY0LAotMHgwMywweDYwLDB4MTAsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4MTIsMHgxYywKLTB4OTMsMHg4MCwweDRhLDB4N2MsMHgwYSwweDEyLDB4MzAsMHhmYSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsCi0weDA4LDB4ZTYsMHhmYywweDkwLDB4ZmIsMHhmYywweGUwLDB4MjUsMHhlMCwweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLAotMHhmNSwweDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweDkwLDB4ZmIsMHhmYywweGUwLDB4ZmYsMHhlNCwweGVmLDB4MDQsMHg1NCwKLTB4MDcsMHhmZiwweDkwLDB4ZmIsMHhmYywweGYwLDB4OTAsMHhmYiwweGZkLDB4ZTAsMHgwNCwweGYwLDB4MTIsMHgzMSwweDkzLDB4OTAsCi0weGZiLDB4ZmUsMHhlMCwweDcwLDB4MDgsMHhlNCwweGZlLDB4ZmYsMHg3YywweDBmLDB4MTIsMHgzMSwweDlhLDB4ODAsMHgyNywweDkwLAotMHhmYiwweGZmLDB4ZTAsMHgwNCwweGYwLDB4NTQsMHgzZiwweDcwLDB4MWQsMHg5MCwweGZiLDB4ZmYsMHhlMCwweDQ0LDB4ZmUsMHg3ZCwKLTB4MDAsMHhmYywweDkwLDB4ZmIsMHhmYywweGUwLDB4MjUsMHhlMCwweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsCi0weDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweGU1LDB4ODEsMHgyNCwweGZiLDB4ZjUsMHg4MSwweDIyLDB4NzgsMHg4NSwweDc2LAotMHgwMCwweDc4LDB4ODYsMHg3NiwweDAwLDB4NzQsMHgwMSwweDkwLDB4ZmIsMHhmZSwweGYwLDB4MTIsMHgzMCwweDg1LDB4OTAsMHhmYiwKLTB4ZmQsMHhlMCwweDYwLDB4NTksMHg3YywweDBhLDB4MTIsMHgzMCwweGZhLDB4OTAsMHhmYiwweGZiLDB4ZTAsMHgyNSwweGUwLDB4MjQsCi0weDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4OTAsMHhmYiwweGZiLAotMHhlMCwweDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhlNCwweGYwLDB4YTMsMHhmMCwKLTB4OTAsMHhmYiwweGZiLDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHgwNCwweDU0LDB4MDcsMHhmZiwweDkwLDB4ZmIsMHhmYiwweGYwLDB4OTAsCi0weGZiLDB4ZmQsMHhlMCwweDE0LDB4ZjAsMHg3OCwweDgzLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDEyLDB4MzEsMHg5MywweGIyLAotMHhiMywweDc4LDB4ODMsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4MTIsMHgwOCwweGU1LDB4ODAsMHhhMSwweDEyLDB4MzEsMHhlNywKLTB4NzgsMHg4NSwweDA2LDB4YjYsMHgwMCwweDExLDB4NzgsMHg4NSwweDc2LDB4MDAsMHg3OCwweDg2LDB4ZTYsMHhmNCwweDA0LDB4MDQsCi0weGEyLDB4ZTAsMHg5MiwweGI0LDB4NzgsMHg4NiwweGY2LDB4ODAsMHg4NSwweGU0LDB4OTAsMHhmYiwweGZlLDB4ZjAsMHg5MCwweGZiLAotMHhmZCwweGUwLDB4N2QsMHgwMCwweGZjLDB4ZWQsMHg0NCwweGNmLDB4ZmQsMHgxMiwweDFjLDB4OTMsMHgxMiwweDMxLDB4MDgsMHgyMiwKLTB4MTIsMHgzMCwweDg1LDB4ZTUsMHg2YSwweDY0LDB4NDksMHg0NSwweDY5LDB4NjAsMHgxNSwweDkwLDB4ZmYsMHg4MywweGUwLDB4NTQsCi0weDBmLDB4N2QsMHgwMCwweGQzLDB4OTUsMHg2YSwweGVkLDB4OTUsMHg2OSwweDUwLDB4MDUsMHgxMiwweDJlLDB4Y2UsMHg4MCwweDAzLAotMHgxMiwweDJmLDB4OWUsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweGU1LDB4NmEsMHg2NCwweDQ5LDB4NDUsMHg2OSwKLTB4NjAsMHgwNSwweDEyLDB4MmYsMHhkOCwweDgwLDB4MGUsMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsCi0weDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDhjLDB4NTQsMHhlYywweDU0LAotMHhmMCwweGI0LDB4MTAsMHgxNSwweDc1LDB4NjQsMHgzZCwweDc1LDB4NjMsMHhmZCwweDc1LDB4NjIsMHgwMSwweGU1LDB4NjQsMHgyNCwKLTB4MDMsMHhmNSwweDY0LDB4ZTUsMHg2MywweDM0LDB4MDAsMHhmNSwweDYzLDB4ZTQsMHhmNSwweDU3LDB4ZjUsMHg1NiwweGU1LDB4NTYsCi0weGMzLDB4OTQsMHgwMSwweDUwLDB4MjcsMHhlNSwweDU0LDB4NTQsMHgwZiwweGZjLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLAotMHgxMiwweDBlLDB4ODIsMHg4YywweDU1LDB4ZWMsMHg2MCwweDAyLDB4ODAsMHgxMiwweDA1LDB4NjQsMHhlNSwweDY0LDB4NzAsMHgwMiwKLTB4MDUsMHg2MywweDA1LDB4NTcsMHhlNSwweDU3LDB4NzAsMHgwMiwweDA1LDB4NTYsMHg4MCwweGQyLDB4ZTUsMHg1NCwweDU0LDB4MGYsCi0weDI0LDB4OTcsMHhmOCwweGM2LDB4NTQsMHhmZSwweGY2LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDEyLAotMHgxMiwweDMxLDB4OWEsMHhlNSwweDU1LDB4MTQsMHg3MCwweDA5LDB4N2QsMHgwMCwweDdjLDB4MDksMHgxMiwweDI0LDB4YjEsMHg4MCwKLTB4MDcsMHhhZCwweDU3LDB4N2MsMHgwMCwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4OTAsCi0weGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4MzAsMHhlNywweDEzLDB4OTAsMHhmZiwweDgzLAotMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4NjcsMHg4MCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMSwKLTB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg1MywweDY3LDB4N2YsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDU0LDB4ZmUsCi0weGYwLDB4OTAsMHhmZiwweDgxLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgxMiwweDI1LDB4NjQsMHg5MCwweGZmLDB4ZmUsMHhlMCwweDQ0LAotMHgwNSwweGYwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwKLTB4N2MsMHgwMSwweDEyLDB4MzIsMHg0OCwweDc4LDB4YTcsMHhlNiwweDQ0LDB4MDIsMHhmNiwweDc0LDB4ZmUsMHhmYywweDA0LDB4ZmQsCi0weDEyLDB4MWMsMHhmZSwweDkwLDB4ZmYsMHg2YSwweGUwLDB4MzAsMHhlNywweDAyLDB4ODAsMHhmNywweGU0LDB4ZjUsMHg0ZSwweDc1LAotMHg0ZCwweDEwLDB4YWMsMHg0ZSwweGFkLDB4NGQsMHhlNSwweDRlLDB4MTUsMHg0ZSwweDcwLDB4MDIsMHgxNSwweDRkLDB4ZWMsMHg0ZCwKLTB4NjAsMHgwMiwweDgwLDB4ZWUsMHg0MywweDg3LDB4MDEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDdjLDB4MDIsCi0weDEyLDB4MzEsMHgxNCwweDc4LDB4YTcsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LAotMHg3OCwweGE3LDB4ZTYsMHgzMCwweGUwLDB4MmMsMHg3OCwweGE3LDB4ZTYsMHgzMCwweGUxLDB4MjYsMHg3OCwweGE3LDB4ZTYsMHhmYywKLTB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYwLDB4ZmQsMHgxMiwweDFjLDB4OTMsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MjAsCi0weGYwLDB4N2MsMHgwMiwweDEyLDB4MzIsMHg0OCwweDc4LDB4YTcsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDc0LDB4MWEsMHg5MCwweGZmLAotMHhmZSwweGYwLDB4NzgsMHhhNywweGU2LDB4ZmMsMHhmNSwweDgzLDB4MTgsMHhlNiwweDQ0LDB4ZjEsMHhmZCwweDEyLDB4MWMsMHg5MywKLTB4MTIsMHgzMSwweDA4LDB4MjIsMHg3NSwweDY3LDB4MDAsMHg3NSwweDY4LDB4MDAsMHhlNCwweGY1LDB4NjYsMHhmNSwweDY1LDB4ZTQsCi0weGY1LDB4NjksMHg3NSwweDZhLDB4NDksMHg3NCwweDg0LDB4OTAsMHhmZiwweDgyLDB4ZjAsMHg3NCwweDg0LDB4OTAsMHhmZiwweDgwLAotMHhmMCwweDc0LDB4ODAsMHg5MCwweGZmLDB4NjgsMHhmMCwweDc0LDB4ODAsMHg5MCwweGZmLDB4NmEsMHhmMCwweGFkLDB4NDYsMHhhZiwKLTB4NDUsMHg3ZSwweDAwLDB4ZWUsMHgyNCwweGZjLDB4NTAsMHgwMywweDAyLDB4MjEsMHg2YSwweGU0LDB4ZWUsMHg3NSwweGYwLDB4MDcsCi0weGE0LDB4MjQsMHgzZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHg1NCwweDgwLAotMHhmZCwweGU0LDB4ZWYsMHg1NCwweDBmLDB4MTQsMHhmZiwweGVkLDB4NjAsMHgzOCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwKLTB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg5MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsCi0weDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGVmLAotMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwKLTB4ODAsMHgzNCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCi0weDgzLDB4NzQsMHg5MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4MGUsMHgwMiwweDIwLDB4ZDMsMHg4ZCwweDQ2LDB4OGUsMHg0NCwweDhmLDB4NDUsCi0weDc0LDB4N2YsMHg5MCwweGZmLDB4ZmQsMHhmMCwweDc0LDB4OTAsMHg5MCwweGZmLDB4ZmMsMHhmMCwweDkwLDB4ZmMsMHgxOSwweGUwLAotMHgzMCwweGU2LDB4MDcsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDIyLDB4OTAsMHhmYywweDBkLDB4ZTAsMHgxNCwKLTB4NzAsMHgwNCwweDkwLDB4ZmMsMHgwYywweGUwLDB4NzAsMHgzOSwweDkwLDB4ZmMsMHgwMCwweDc5LDB4MDYsMHg3YSwweDM1LDB4N2IsCi0weDEyLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweDdmLDB4MDAsMHhlZiwweDMzLDB4NDAsMHgxNSwweGVmLDB4OTAsMHgzNSwweDRkLAotMHg5MywweGZjLDB4ZWYsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlYywweGYwLDB4MGYsMHg4MCwKLTB4ZTcsMHg4ZiwweDU5LDB4OTAsMHhmYywweDJiLDB4NzksMHgxOCwweDdhLDB4MzUsMHg3YiwweDM1LDB4NzgsMHgwMSwweDEyLDB4MDMsCi0weGY1LDB4ZTQsMHg5MCwweGZmLDB4ZmYsMHhmMCwweDc0LDB4NTEsMHg5MCwweGZmLDB4ZmEsMHhmMCwweDc0LDB4MDQsMHg5MCwweGZmLAotMHhmYiwweGYwLDB4NzQsMHg1MywweDkwLDB4ZmYsMHhmOCwweGYwLDB4NzQsMHg1MSwweDkwLDB4ZmYsMHhmOSwweGYwLDB4NzQsMHg1NSwKLTB4OTAsMHhmZiwweGY3LDB4ZjAsMHg3NCwweDkzLDB4OTAsMHhmZiwweGY2LDB4ZjAsMHg3NCwweDMyLDB4OTAsMHhmZiwweGY1LDB4ZjAsCi0weDc1LDB4NjQsMHgzZCwweDc1LDB4NjMsMHhmZCwweDc1LDB4NjIsMHgwMSwweGU0LDB4OTAsMHhmZiwweDgzLDB4ZjAsMHg3NCwweDgwLAotMHg5MCwweGZmLDB4ODEsMHhmMCwweDc1LDB4NTgsMHgwNCwweGU1LDB4NTgsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4M2YsMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHg3OCwweDg5LDB4ZjYsMHhmYywweDU0LDB4MGYsMHgxNCwweGZjLDB4NzgsCi0weDg5LDB4ZWMsMHhmNiwweGU1LDB4NTgsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLAotMHhmNSwweDgzLDB4ZTAsMHg3OCwweDhjLDB4NzYsMHhmOCwweDA4LDB4NzYsMHgwMCwweGZjLDB4NzgsMHg4OSwweGU2LDB4NzUsMHhmMCwKLTB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDg5LDB4ZTYsCi0weDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LAotMHg4YywweGU2LDB4ZmYsMHgwOCwweGU2LDB4N2UsMHgwMywweGNmLDB4YzMsMHgxMywweGNmLDB4MTMsMHhkZSwweGY5LDB4ZmUsMHg3OCwKLTB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWUsCi0weGYwLDB4NzgsMHg4OSwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAotMHg4MywweDc0LDB4ODAsMHhmMCwweDc4LDB4OGEsMHhlYywweGY2LDB4N2QsMHgwMCwweDc4LDB4OGQsMHhlNiwweDJjLDB4ZjYsMHgxOCwKLTB4ZTYsMHgzZCwweGY2LDB4NzgsMHg4YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4N2MsMHgwMywweGNkLDB4YzMsMHgxMywweGNkLDB4MTMsCi0weGRjLDB4ZjksMHhmYywweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHg4OSwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDhjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDc4LDB4ODksCi0weGU2LDB4ZmYsMHg3ZSwweDAwLDB4ZWUsMHgyNCwweGZjLDB4NTAsMHgwMywweDAyLDB4MjQsMHg2YiwweGU0LDB4ZWUsMHg3NSwweGYwLAotMHgwNywweGE0LDB4MjQsMHgzZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHg1NCwKLTB4ODAsMHhmYSwweGU0LDB4ZWYsMHg1NCwweDBmLDB4MTQsMHhmZiwweGU0LDB4ZWUsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4NDEsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHg3OCwweDhhLDB4ZjYsMHhlZSwweDc1LDB4ZjAsMHg4MCwweGE0LAotMHgyNCwweDA4LDB4ZjgsMHhlNSwweGYwLDB4MzQsMHhmOCwweGY5LDB4ZTgsMHhmYywweGU5LDB4ZmQsMHg4YSwweDU5LDB4ZWEsMHg3MCwKLTB4MDMsMHgwMiwweDIzLDB4ZDgsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LAotMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGVkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwKLTB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ5LDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHg3YiwweDAwLDB4ZmEsMHhlYywweDJhLAotMHhmYywweGVkLDB4M2IsMHhmZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwKLTB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsCi0weGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLAotMHg3NCwweDgwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwKLTB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweDAyLDB4MjQsMHg2NywweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OGEsMHhlNiwweGZhLDB4ZTQsMHhlZiwweDc1LAotMHhmMCwweDA4LDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZWQsMHhmYiwKLTB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsCi0weGE0LDB4MjQsMHgwOSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweDc4LDB4OGEsMHhlNiwweDdiLAotMHgwMCwweGZhLDB4ZWMsMHgyYSwweGZjLDB4ZWQsMHgzYiwweGZkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwKLTB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBkLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHgwZSwweDAyLDB4MjIsMHhmNCwweDhlLDB4NTgsMHg3OCwweDhjLDB4ZWQsCi0weGY2LDB4MDgsMHhlYywweGY2LDB4NzgsMHg4OSwweGVmLDB4ZjYsMHgxMiwweDIwLDB4YTQsMHgyMiwweDhjLDB4MjYsMHhlYywweDMwLAotMHhlNywweDE4LDB4ZTUsMHgyNiwweDU0LDB4MGYsMHgxNCwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwweDgwLDB4MTYsMHhlNSwweDI2LDB4NTQsMHgwZiwweDE0LDB4NzUsCi0weGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLAotMHgyMiwweGVjLDB4OTAsMHhmZCwweDNmLDB4ZjAsMHg4YywweDI0LDB4ZWQsMHgyNCwweDAzLDB4ZjUsMHgyNSwweDdkLDB4MDAsMHhkMywKLTB4OTUsMHg2YywweGVkLDB4OTUsMHg2YiwweDQwLDB4MDMsMHg4NSwweDZjLDB4MjUsMHhlNSwweDI1LDB4MjQsMHhiNywweDUwLDB4MDksCi0weDc1LDB4MjUsMHgwMywweDc0LDB4MDIsMHg5MCwweGZkLDB4M2YsMHhmMCwweGFjLDB4MjUsMHgxMiwweDJmLDB4YzMsMHgyMiwweGU0LAotMHhmNSwweDY2LDB4ZjUsMHg2NSwweDEyLDB4MjQsMHhlOCwweDIyLDB4OTAsMHhmZCwweDNkLDB4ZTAsMHg2NSwweDZkLDB4NjAsMHgwZSwKLTB4NzQsMHgwNCwweDkwLDB4ZmQsMHgzZiwweGYwLDB4ZTQsMHhmNSwweDY1LDB4NzUsMHg2NiwweDAzLDB4ODAsMHg0NiwweDdkLDB4NmQsCi0weGU0LDB4ZmUsMHhmZiwweDc5LDB4M2QsMHg3YSwweGZkLDB4N2IsMHgwMSwweDc0LDB4MDUsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLAotMHhlNSwweDY2LDB4MjQsMHgwMywweGY1LDB4NjYsMHhlNSwweDY1LDB4MzQsMHgwMCwweGY1LDB4NjUsMHhlNSwweDY2LDB4ZDMsMHg5NSwKLTB4NmMsMHhlNSwweDY1LDB4OTUsMHg2YiwweDQwLDB4MDYsMHg4NSwweDZjLDB4NjYsMHg4NSwweDZiLDB4NjUsMHhkMywweGU1LDB4NjYsCi0weDk0LDB4NDgsMHhlNSwweDY1LDB4OTQsMHgwMCwweDQwLDB4MGMsMHg3NCwweDAyLDB4OTAsMHhmZCwweDNmLDB4ZjAsMHhlNCwweGY1LAotMHg2NSwweDc1LDB4NjYsMHgwMywweGFjLDB4NjYsMHgxMiwweDJmLDB4YzMsMHgyMiwweGVjLDB4OTAsMHhmZCwweDNmLDB4ZjAsMHhlNCwKLTB4ZjUsMHg2NiwweGY1LDB4NjUsMHg4YywweDMyLDB4ZWMsMHg2MCwweDA1LDB4MTIsMHgyZiwweGI0LDB4ODAsMHgwNSwweDdjLDB4MDAsCi0weDEyLDB4MmYsMHhjMywweDIyLDB4OTAsMHhmZiwweDA0LDB4ZTAsMHhmNSwweDRhLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZCwweGEzLAotMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZiwweGEzLDB4ZTAsMHg3ZSwKLTB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLDB4ZmQsMHhjMywweGVjLDB4OTQsMHg0OCwweGVkLDB4OTQsCi0weDAwLDB4NTAsMHgyMiwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLAotMHhmYywweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsMHgwMCwweGZmLDB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmYywKLTB4ZWQsMHg0ZiwweGZkLDB4ODAsMHgwNCwweGU0LDB4ZmQsMHg3YywweDQ4LDB4OGMsMHg2YywweDhkLDB4NmIsMHg5MCwweGZmLDB4MDIsCi0weGUwLDB4ZmQsMHhhMywweGUwLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHg5MCwweGZmLDB4MDIsMHhlMCwweGZmLAotMHhhMywweGUwLDB4N2UsMHgwMCwweGZmLDB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmNSwweDRjLDB4ZWQsMHg0ZiwweGY1LDB4NGIsMHg3NSwKLTB4NjQsMHgzZCwweDc1LDB4NjMsMHhmZCwweDc1LDB4NjIsMHgwMSwweDdkLDB4M2QsMHg3ZSwweGZkLDB4N2YsMHgwMSwweDc5LDB4NmQsCi0weGU0LDB4ZmEsMHhmYiwweDc0LDB4MDUsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4NzUsMHg0OSwweDAwLDB4ZTUsMHg0OSwweDI0LAotMHhmZSwweDQwLDB4MTksMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHhlNCwweDEyLDB4MDMsMHgwZiwweDA1LDB4NDksMHgwZCwKLTB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDY0LDB4OGUsMHg2MywweDhmLDB4NjIsMHg4MCwweGUxLDB4NzUsMHg2NCwweDNkLDB4NzUsCi0weDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4NjAsMHhiNCwweDAwLDB4MDIsMHg4MCwweDA2LAotMHhkMywweDUwLDB4MDMsMHgwMiwweDJjLDB4MTIsMHhlNSwweDRhLDB4NTQsMHgwZiwweGY1LDB4NDksMHhlNSwweDRhLDB4NTQsMHg4MCwKLTB4YTIsMHhlMCwweDkyLDB4MDIsMHg5MCwweGZmLDB4MDEsMHhlMCwweDEyLDB4MDEsMHg4MSwweDAwLDB4MGIsMHgyYywweDBkLDB4MjYsCi0weDY3LDB4MjcsMHg4NSwweDJjLDB4MGQsMHgyOCwweDkxLDB4MmMsMHgwZCwweDI5LDB4NzQsMHgyOSwweGE4LDB4MmIsMHgwZiwweDJiLAotMHgxMiwweDJiLDB4NTIsMHgyYiwweGI2LDB4MmIsMHhlNCwweGU1LDB4NjcsMHgzMCwweGU3LDB4MGUsMHhlNSwweDRjLDB4NDUsMHg0YiwKLTB4NzAsMHgwOCwweGU1LDB4NmMsMHg2NCwweDAyLDB4NDUsMHg2YiwweDYwLDB4MDMsMHgwMiwweDJjLDB4MGYsMHg5MCwweGZmLDB4MDAsCi0weGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLAotMHgyNywweDgyLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDc4LDB4YTcsMHhlNiwKLTB4MzAsMHhlMCwweDBiLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4NzQsMHgwMiwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsCi0weDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxYiwweGU1LDB4NjcsMHgyMCwweGUxLAotMHgwNywweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyNywweDgyLDB4ZTUsMHg0YSwweDI0LDB4ZmUsMHg1MCwweDAzLDB4MDIsMHgyNywKLTB4ODIsMHg3YywweDAyLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsCi0weDI3LDB4ODAsMHhlNSwweDY3LDB4MjAsMHhlMSwweDBkLDB4ZTUsMHg0YSwweDYwLDB4MDksMHhlNSwweDRhLDB4NjQsMHg4MCwweDYwLAotMHgwMywweDAyLDB4MjcsMHg4MiwweGFjLDB4NGEsMHgxMiwweDMwLDB4NGEsMHg0MCwweDAzLDB4MDIsMHgyNywweDgyLDB4ZTUsMHg0OSwKLTB4NzAsMHgyNSwweDMwLDB4MDIsMHgxMSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NTQsMHgwOCwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsCi0weDYyLDB4MTIsMHgwMywweDBmLDB4ODAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHgwOCwweGFkLDB4NjQsMHhhZSwweDYzLAotMHhhZiwweDYyLDB4MTIsMHgwMywweDBmLDB4ODAsMHgzZCwweDE1LDB4NDksMHgzMCwweDAyLDB4MWQsMHhlNSwweDQ5LDB4NzUsMHhmMCwKLTB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NjQsCi0weGFlLDB4NjMsMHhhZiwweDYyLDB4MTIsMHgwMywweDBmLDB4ODAsMHgxYiwweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LAotMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwKLTB4NjIsMHgxMiwweDAzLDB4MGYsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHgxMiwweDAxLDB4ZTYsMHg2MCwweDBiLDB4YWQsCi0weDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHg3NCwweDAxLDB4MTIsMHgwMywweDBmLDB4N2MsMHgwMiwweDEyLDB4MmYsMHhjMywweDIyLAotMHg4MCwweDAwLDB4MDIsMHgyYywweDBmLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NjAsMHgwMywKLTB4MDIsMHgyYywweDBmLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsCi0weDFhLDB4ZTUsMHg0YywweDE0LDB4NDUsMHg0YiwweDcwLDB4MDQsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjgsMHg4ZSwweDc4LAotMHhhNywweGU2LDB4NTQsMHhmZSwweGY2LDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywKLTB4ZDMsMHg0MCwweDJhLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwOCwweGU1LDB4NjcsMHgyMCwweGUwLDB4MDMsMHgwMiwweDI4LDB4OGUsCi0weGU1LDB4NjcsMHgzMCwweGUwLDB4MDQsMHhlNSwweDRhLDB4NzAsMHgwYiwweGU1LDB4NjcsMHgzMCwweGUxLDB4MDksMHhlNSwweDRhLAotMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjgsMHg4ZSwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDIsMHgwMiwKLTB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MjgsMHg4YywweGU1LDB4NGMsMHg0NSwweDRiLDB4NjAsMHgwMywweDAyLDB4MjgsCi0weDhlLDB4YWMsMHg0YSwweDEyLDB4MzAsMHg0YSwweDQwLDB4MDMsMHgwMiwweDI4LDB4OGUsMHhlNSwweDY3LDB4MjAsMHhlMSwweDA3LAotMHhlNSwweDY3LDB4MjAsMHhlMCwweDAyLDB4ODAsMHg3NywweGU1LDB4NjcsMHgzMCwweGUwLDB4MDYsMHhlNSwweDQ5LDB4NjAsMHgwMiwKLTB4ODAsMHg2YywweGU1LDB4NDksMHg3MCwweDBmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg5MCwweGZmLDB4ODAsCi0weGUwLDB4NTQsMHhmNywweGYwLDB4MjIsMHhlNSwweDQ5LDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwOSwweDdkLAotMHgwMSwweDdjLDB4MDMsMHgxMiwweDBmLDB4MGIsMHg4MCwweDExLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwOSwKLTB4N2QsMHgwMSwweDdjLDB4MDQsMHgxMiwweDBmLDB4MGIsMHg4MCwweDAwLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxNSwweGU1LDB4NDksCi0weDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGY3LAotMHhmMCwweDgwLDB4MTMsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwKLTB4ZjUsMHg4MywweGUwLDB4NTQsMHhmNywweGYwLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4ODAsMHgwMCwweDAyLDB4MmMsCi0weDBmLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NjAsMHgwMywweDAyLDB4MmMsMHgwZiwweDkwLAotMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxYSwweGU1LDB4NGMsMHgxNCwKLTB4NDUsMHg0YiwweDcwLDB4MDQsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjksMHg3MSwweDc4LDB4YTcsMHhlNiwweDQ0LDB4MDEsCi0weGY2LDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgyOSwweGU1LAotMHg2NywweDIwLDB4ZTEsMHgwOCwweGU1LDB4NjcsMHgyMCwweGUwLDB4MDMsMHgwMiwweDI5LDB4NzEsMHhlNSwweDY3LDB4MzAsMHhlMCwKLTB4MDQsMHhlNSwweDQ5LDB4NzAsMHgwYiwweGU1LDB4NjcsMHgzMCwweGUxLDB4MDgsMHhlNSwweDQ5LDB4MjQsMHhmZSwweDUwLDB4MDIsCi0weDgwLDB4N2YsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDZmLAotMHhlNSwweDRjLDB4NDUsMHg0YiwweDYwLDB4MDIsMHg4MCwweDY5LDB4YWMsMHg0YSwweDEyLDB4MzAsMHg0YSwweDQwLDB4MDIsMHg4MCwKLTB4NjAsMHhlNSwweDY3LDB4MjAsMHhlMSwweDA3LDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwMiwweDgwLDB4NTQsMHhlNSwweDQ5LDB4NzAsCi0weDE0LDB4MzAsMHgwMiwweDA5LDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHhmZiwweDgyLAotMHhlMCwweDQ0LDB4MDgsMHhmMCwweDIyLDB4ZTUsMHg2NywweDMwLDB4ZTEsMHgzMywweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwKLTB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NDQsCi0weDA4LDB4ZjAsMHg4MCwweDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweDgwLDB4MDIsMHg4MCwKLTB4MDAsMHgwMiwweDJjLDB4MGYsMHhlNSwweDY3LDB4MjAsMHhlNywweDEyLDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg3MCwweDBjLDB4ZTUsCi0weDRhLDB4NzAsMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4MGYsMHhlNSwweDRjLAotMHg5MCwweGZmLDB4ZmYsMHhmMCwweDkwLDB4ZmYsMHhmZiwweGUwLDB4NjAsMHgwNSwweDQzLDB4NjcsMHgwMSwweDgwLDB4MDMsMHg1MywKLTB4NjcsMHhmZSwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGU1LDB4NjcsMHgzMCwweGU3LDB4MGUsMHhlNSwweDZjLDB4NDUsCi0weDZiLDB4NjAsMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4MGYsMHhhZCwweDRiLAotMHhlNSwweDRjLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHhiZCwweDAwLDB4MDIsMHg4MCwweDAzLDB4MDIsMHgyYiwKLTB4MGEsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDMyLDB4ZTUsMHg0YSwweDcwLDB4MDUsMHhlNSwweDRjLDB4ZmMsCi0weDYwLDB4MDMsMHgwMiwweDJiLDB4MGMsMHg3NSwweDY0LDB4MDAsMHg3NSwweDYzLDB4ZmMsMHg3NSwweDYyLDB4MDEsMHhkMywweGU1LAotMHg2YywweDk0LDB4MTIsMHhlNSwweDZiLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgxMiwweDgwLDB4MDQsMHhhYywKLTB4NmMsMHhhZCwweDZiLDB4OGMsMHg2YSwweDhkLDB4NjksMHgxMiwweDJmLDB4ZDgsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsCi0weGQzLDB4NDAsMHg1OSwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyYiwweDBjLDB4ZTUsMHg0YywweGZjLDB4NzAsMHgyNywweDc1LAotMHg2NCwweDEyLDB4NzUsMHg2MywweGZjLDB4NzUsMHg2MiwweDAxLDB4ZDMsMHhlNSwweDZjLDB4OTQsMHgxOSwweGU1LDB4NmIsMHg5NCwKLTB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MTksMHg4MCwweDA0LDB4YWMsMHg2YywweGFkLDB4NmIsMHg4YywweDZhLDB4OGQsCi0weDY5LDB4MTIsMHgyZiwweGQ4LDB4ODAsMHgyNSwweDc1LDB4NjQsMHgyYiwweDc1LDB4NjMsMHhmYywweDc1LDB4NjIsMHgwMSwweGQzLAotMHhlNSwweDZjLDB4OTQsMHgzNSwweGU1LDB4NmIsMHg5NCwweDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDM1LDB4ODAsMHgwNCwKLTB4YWMsMHg2YywweGFkLDB4NmIsMHg4YywweDZhLDB4OGQsMHg2OSwweDEyLDB4MmYsMHhkOCwweDIyLDB4YjQsMHgwMywweDAyLDB4ODAsCi0weDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyYiwweDBhLDB4ZTUsMHg0YywweGY1LDB4NDksMHg3MCwweDBmLDB4OTAsMHhmZiwweDA0LAotMHhlMCwweGZkLDB4YTMsMHhlMCwweDRkLDB4NjAsMHgwMywweDAyLDB4MmIsMHgwYywweDgwLDB4MTgsMHg5MCwweGZjLDB4ODIsMHhlMCwKLTB4ZmQsMHhhMywweGUwLDB4ZmMsMHg5MCwweGZmLDB4MDUsMHhlMCwweDZjLDB4NzAsMHgwNywweDkwLDB4ZmYsMHgwNCwweGUwLDB4NmQsCi0weDYwLDB4MDIsMHg4MCwweDY4LDB4ZTQsMHhmNSwweDZhLDB4ZjUsMHg2OSwweDdmLDB4MDAsMHhlNSwweDQ5LDB4MTQsMHhjNSwweDQ5LAotMHg2MCwweDBmLDB4ZWYsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDJmLDB4ZmYsMHg4MCwKLTB4ZWEsMHg4ZiwweDRhLDB4ZTUsMHg0YSwweDI0LDB4ODAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4N2QsCi0weDAwLDB4ZDMsMHg5NSwweDZjLDB4ZWQsMHg5NSwweDZiLDB4NDAsMHgwNiwweGFjLDB4NmMsMHhhZCwweDZiLDB4ODAsMHgwZiwweGU1LAotMHg0YSwweDI0LDB4ODAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4N2QsMHgwMCwweGZjLDB4OGMsMHg2YSwKLTB4OGQsMHg2OSwweGU1LDB4NGEsMHgyNCwweDgwLDB4ZmMsMHhlNCwweDM0LDB4ZmMsMHhmZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsCi0weDhkLDB4NjQsMHg4ZSwweDYzLDB4OGYsMHg2MiwweDEyLDB4MmYsMHhkOCwweDIyLDB4ODAsMHgwMCwweDAyLDB4MmMsMHgwZiwweDAyLAotMHgyYywweDBmLDB4ZTUsMHg2NywweDMwLDB4ZTcsMHgxOSwweGU1LDB4NmMsMHgxNCwweDQ1LDB4NmIsMHg3MCwweDEyLDB4ZTUsMHg0YSwKLTB4NzAsMHgwZSwweGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsCi0weDAyLDB4MmMsMHgwZiwweGU1LDB4NjcsMHgyMCwweGUwLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMSwweDAzLDB4MDIsMHgyYywweDBmLAotMHg3NSwweDY0LDB4NjgsMHhlNCwweGY1LDB4NjMsMHhmNSwweDYyLDB4ZTQsMHhmNSwweDY5LDB4MDQsMHhmNSwweDZhLDB4MTIsMHgyZiwKLTB4ZDgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MjcsMHhlNSwweDZjLDB4NDUsMHg2YiwweDcwLDB4MjEsMHhlNSwweDRhLDB4NzAsCi0weDFkLDB4ZTUsMHg0YywweDY0LDB4MDIsMHg0NSwweDRiLDB4NjAsMHgwZCwweGU1LDB4NGMsMHgxNCwweDQ1LDB4NGIsMHg2MCwweDA2LAotMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywKLTB4MGYsMHhlNSwweDY3LDB4MjAsMHhlMCwweDA4LDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMywweDAyLDB4MmMsMHgwZiwweDg1LDB4NGMsCi0weDY4LDB4ZTUsMHg2OCwweDcwLDB4MDgsMHg0MywweDY3LDB4MDEsMHg1MywweDY3LDB4ZmQsMHg4MCwweDEzLDB4ZTUsMHg2OCwweDY0LAotMHgwMiwweDYwLDB4MDcsMHhlNSwweDY4LDB4MTQsMHg2MCwweDAyLDB4ODAsMHg2NSwweDUzLDB4NjcsMHhmZSwweDQzLDB4NjcsMHgwMiwKLTB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4ZTUsMHg2NywweDMwLDB4ZTcsMHgxYSwweGU1LDB4NmMsMHgxNCwweDQ1LDB4NmIsCi0weDcwLDB4MTMsMHhlNSwweDRhLDB4NzAsMHgwZiwweGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOSwweDkwLDB4ZmYsMHgwMCwweGUwLAotMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLDB4ODAsMHgzOCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDIsMHg4MCwweDMxLDB4N2MsMHgwMSwKLTB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDE1LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg3MCwweDBmLDB4ZTUsCi0weDRjLDB4NDUsMHg0YiwweDcwLDB4MDksMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHgxNCwweDYwLDB4MDIsMHg4MCwweDBmLAotMHhlNSwweDY3LDB4MjAsMHhlMSwweDAyLDB4ODAsMHgwOCwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweDgwLDB4MDAsMHgwMiwKLTB4MmUsMHhjYSwweGI0LDB4NDAsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDJlLDB4YzAsMHg5MCwweGZmLDB4MDEsCi0weGUwLDB4OTAsMHhmZCwweDNkLDB4ZjAsMHhlNSwweDRhLDB4OTAsMHhmZCwweDNlLDB4ZjAsMHhlNCwweDkwLDB4ZmQsMHgzZiwweGYwLAotMHhlNSwweDY0LDB4MjQsMHgwMywweGY1LDB4NjQsMHhlNSwweDYzLDB4MzQsMHgwMCwweGY1LDB4NjMsMHhhZCwweDRiLDB4ZTUsMHg0YywKLTB4ODUsMHg2NCwweDgyLDB4ODUsMHg2MywweDgzLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmYsMHgwMSwweGUwLDB4MTIsCi0weDAxLDB4YjcsMHgyYywweDdkLDB4MDEsMHgyYywweGEzLDB4MDIsMHgyYywweGNkLDB4MDMsMHgyYywweGY3LDB4MDQsMHgyZCwweDQ1LAotMHgwNSwweDJkLDB4ODIsMHgwNiwweDJkLDB4YTgsMHgwNywweDJkLDB4Y2UsMHgwOCwweDJkLDB4ZjQsMHgwOSwweDJlLDB4MWEsMHgwYiwKLTB4MmUsMHg0MCwweDBjLDB4MmUsMHg0ZiwweDgwLDB4MmUsMHg0ZiwweDgxLDB4MDAsMHgwMCwweDJlLDB4YWQsMHhlNSwweDY3LDB4MjAsCi0weGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsMHg3ZCwweGI3LDB4N2UsMHgzNCwweDdmLDB4MDIsMHg3OSwweDQwLAotMHg3YSwweGZkLDB4N2IsMHgwMSwweDc0LDB4MDgsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4N2QsMHgwOCwweDdjLDB4MDAsMHgxMiwKLTB4MjQsMHhiMSwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4NGEsMHgyMiwweGU1LDB4NGEsCi0weGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLAotMHgxMCwweDEyLDB4MzEsMHg5YSwweDIyLDB4N2QsMHgwMCwweDdjLDB4MDcsMHgxMiwweDI0LDB4YjEsMHgyMiwweGU1LDB4NjcsMHgyMCwKLTB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4NGEsMHgyMiwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsCi0weDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTEsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdkLAotMHgwMCwweDdjLDB4MDcsMHgxMiwweDI0LDB4YjEsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwKLTB4NGEsMHgyMiwweGU1LDB4NGEsMHhiNCwweDA1LDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsCi0weDdjLDB4MGEsMHgxMiwweDMxLDB4OWEsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLAotMHgwNCwweGZlLDB4N2MsMHgwOCwweDEyLDB4MzEsMHg5YSwweDIyLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwKLTB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDEzLDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3ZCwweDAwLDB4N2MsCi0weDA3LDB4MTIsMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDM0LDB4ZDMsMHhlNSwweDZjLDB4OTQsMHg0OCwweGU1LAotMHg2YiwweDk0LDB4MDAsMHg1MCwweDA2LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg3MCwweDA2LDB4N2MsMHgwMiwweDEyLDB4MjUsMHg0YSwKLTB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMSwweDAzLDB4YjMsMHg0MCwweDBiLDB4YzMsMHhiNCwweDAzLDB4MDAsMHg0MCwweDA5LDB4YjQsCi0weDA2LDB4MDAsMHg1MCwweDA0LDB4MTIsMHgzMCwweDcwLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LAotMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwKLTB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTYsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdjLDB4MDcsCi0weDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LAotMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxOSwKLTB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwweGU1LDB4NjcsCi0weDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LAotMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTcsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwKLTB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsCi0weGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxOCwweDEyLDB4MzEsMHg5YSwweDIyLAotMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MWQsMHhlNSwKLTB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsCi0weDdjLDB4MTUsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLAotMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwKLTB4NjcsMHgzMCwweGU3LDB4MjAsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg3MCwweDEwLDB4OTAsMHhmZiwweDAxLDB4ZTAsCi0weGI0LDB4ODAsMHgwNSwweDEyLDB4MjQsMHhkZiwweDgwLDB4MDMsMHgxMiwweDI0LDB4ZTgsMHgyMiwweDdkLDB4MDAsMHg3YywweDA1LAotMHgxMiwweDI0LDB4YjEsMHgyMiwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwKLTB4NGEsMHgyMiwweGQzLDB4ZTUsMHg2YywweDk0LDB4NDgsMHhlNSwweDZiLDB4OTQsMHgwMCwweDUwLDB4MGIsMHhjMywweGU1LDB4NmMsCi0weDk0LDB4MDcsMHhlNSwweDZiLDB4OTQsMHgwMCwweDUwLDB4MDYsMHg3YywweDAzLDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDRhLAotMHhiNCwweDA1LDB4MDQsMHgxMiwweDMwLDB4NzAsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweGU1LDB4NjcsMHgzMCwKLTB4ZTcsMHgwOCwweDdkLDB4MDAsMHg3YywweDA1LDB4MTIsMHgyNCwweGIxLDB4MjIsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsCi0weGI0LDB4MjAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg4MCwweDAwLDB4MTIsMHgyZiwweDllLDB4MjIsMHg3NSwweDQzLAotMHgwMCwweDkwLDB4ZmYsMHg4MywweGUwLDB4NTQsMHgwZiwweGQzLDB4OTUsMHg0MywweDQwLDB4MjQsMHhlNSwweDQzLDB4MjQsMHhmMCwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZSwweGY1LDB4ODMsMHhlMCwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDEyLDB4MDMsCi0weDBmLDB4MDUsMHg0MywweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDY0LDB4OGUsMHg2MywweDhmLDB4NjIsMHg4MCwweGQxLAotMHhlNSwweDQzLDB4N2QsMHgwMCwweGZjLDB4YzMsMHhlNSwweDZhLDB4OWMsMHhmNSwweDZhLDB4ZTUsMHg2OSwweDlkLDB4ZjUsMHg2OSwKLTB4ZTUsMHg2YSwweDQ1LDB4NjksMHg2MCwweDA2LDB4ZTQsMHg5MCwweGZmLDB4ODMsMHhmMCwweDIyLDB4OTAsMHhmZiwweDgyLDB4ZTAsCi0weDQ0LDB4MDgsMHhmMCwweGU0LDB4ZjUsMHg2OSwweDc1LDB4NmEsMHg0OSwweDkwLDB4ZmQsMHgzZCwweGUwLDB4YjQsMHgwNSwweDAyLAotMHg4MCwweDAzLDB4ZDMsMHg0MCwweDQwLDB4OTAsMHhmZCwweDNlLDB4ZTAsMHhmNSwweDQzLDB4YjQsMHgwNSwweDAyLDB4ODAsMHgwMywKLTB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDBiLDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwweDAxLDB4MDIsCi0weDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDksMHgxMiwweDMxLDB4OWEsMHgyMiwweGI0LAotMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDQzLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNCwKLTB4MTIsMHgzMSwweDlhLDB4MjIsMHgyMiwweGI0LDB4ODAsMHgwMCwweDQwLDB4MjMsMHhiNCwweDgyLDB4MDAsMHg1MCwweDFlLDB4N2MsCi0weDNkLDB4N2QsMHhmZCwweDEyLDB4MTcsMHhkNSwweDdkLDB4MDAsMHg4YywweDY2LDB4OGQsMHg2NSwweDkwLDB4ZmQsMHgzZiwweGUwLAotMHg2MCwweDA1LDB4MTIsMHgyZiwweDllLDB4ODAsMHgwNSwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweDIyLDB4OTAsMHhmZiwKLTB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsCi0weDQ0LDB4MDgsMHhmMCwweDIyLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LAotMHgwOCwweGYwLDB4MjIsMHg4YywweDIzLDB4N2QsMHgwMCwweDhjLDB4NmEsMHg4ZCwweDY5LDB4NzUsMHg2NCwweDNkLDB4NzUsMHg2MywKLTB4ZmQsMHg3NSwweDYyLDB4MDEsMHgxMiwweDJmLDB4ZDgsMHgyMiwweDkwLDB4ZmYsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4ZTUsCi0weDZhLDB4NjQsMHg0OSwweDQ1LDB4NjksMHg3MCwweDAxLDB4MjIsMHhjMywweGU1LDB4NmEsMHg5NCwweDA4LDB4ZTUsMHg2OSwweDk0LAotMHgwMCwweDQwLDB4MTUsMHg3NSwweDIxLDB4MDgsMHhlNSwweDIxLDB4N2QsMHgwMCwweGZjLDB4YzMsMHhlNSwweDZhLDB4OWMsMHhmNSwKLTB4NmEsMHhlNSwweDY5LDB4OWQsMHhmNSwweDY5LDB4ODAsMHgwOSwweDg1LDB4NmEsMHgyMSwweGU0LDB4ZjUsMHg2OSwweDc1LDB4NmEsCi0weDQ5LDB4NzUsMHgyMiwweDAwLDB4ZTUsMHgyMiwweGMzLDB4OTUsMHgyMSwweDUwLDB4MjYsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLAotMHg2MiwweDEyLDB4MDEsMHhlNiwweGZjLDB4ZTUsMHgyMiwweDI0LDB4ZjgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZlLDB4ZjUsMHg4MywKLTB4ZWMsMHhmMCwweDA1LDB4MjIsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4ODAsCi0weGQzLDB4ZTUsMHgyMSwweDU0LDB4N2YsMHg5MCwweGZmLDB4ODEsMHhmMCwweDIyLDB4OGMsMHg0OCwweDdmLDB4MDAsMHhlZiwweDI0LAotMHhmYiwweDQwLDB4MTksMHhlNCwweGVmLDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDNmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywKLTB4ZjUsMHg4MywweGUwLDB4NjUsMHg0OCwweDcwLDB4MDIsMHhkMywweDIyLDB4MGYsMHg4MCwweGUyLDB4OGYsMHg0NywweGMzLDB4MjIsCi0weDg1LDB4NmMsMHg2YSwweDg1LDB4NmIsMHg2OSwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwweDgzLAotMHhlMCwweDU0LDB4N2YsMHhmMCwweDIyLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhlNSwKLTB4NzIsMHgyNCwweDA4LDB4ZjgsMHg4NiwweDA2LDB4NTMsMHgwNiwweDdmLDB4N2MsMHhmZiwweDEyLDB4MzAsMHhmYSwweDdjLDB4MDAsCi0weDdkLDB4MDAsMHhlNSwweDc1LDB4NjAsMHg0NiwweGZmLDB4OTAsMHhmZSwweDlkLDB4ZTAsMHg1NCwweDdmLDB4NmUsMHg3MCwweDBmLAotMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweGEzLDB4MTUsMHg3NSwweDgwLDB4MDcsMHhhMywKLTB4YTMsMHhhMywweGRmLDB4ZTYsMHg4MCwweDI2LDB4ZGYsMHgwNiwweGQwLDB4ODIsMHhkMCwweDgzLDB4ODAsMHgxZSwweGUwLDB4ZjgsCi0weGEzLDB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZTgsMHhmMCwweGEzLDB4ZTksMHhmMCwweGEzLAotMHhlYSwweGYwLDB4YTMsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGEsMHgxMiwweDMxLDB4OTMsMHhkMCwKLTB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMiwweGQwLDB4MDEsMHhkMCwweDAwLDB4MjIsMHg4NSwweGE4LDB4NzQsMHg3NSwweGE4LDB4ODgsCi0weGVjLDB4NzAsMHgwMiwweDdjLDB4M2YsMHg4YywweDczLDB4MjIsMHhlNSwweDcyLDB4MjQsMHgwOCwweGY4LDB4NzYsMHgwMCwweDEyLAotMHgzMSwweGU3LDB4ODAsMHhmYiwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDYsMHhjMCwweDA3LDB4YWUsMHgwNCwKLTB4N2MsMHhmZiwweDEyLDB4MzAsMHhmYSwweGU1LDB4NzUsMHg2MCwweDQyLDB4ZmYsMHg5MCwweGZlLDB4OWQsMHhlMCwweDU0LDB4N2YsCi0weDZlLDB4NzAsMHgwYiwweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4MTUsMHg3NSwweDgwLDB4MDcsMHhhMywweGEzLAotMHhhMywweGRmLDB4ZWEsMHg4MCwweDI2LDB4ZGYsMHgwNiwweGQwLDB4ODIsMHhkMCwweDgzLDB4ODAsMHhkOCwweGUwLDB4ZjgsMHhhMywKLTB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZTgsMHhmMCwweGEzLDB4ZTksMHhmMCwweGEzLDB4ZWEsCi0weGYwLDB4YTMsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGEsMHg3OCwweDA4LDB4MDgsMHg3OSwweDE4LAotMHgwOSwweDdjLDB4MDEsMHhlNiwweDU0LDB4N2YsMHg2ZSwweDcwLDB4MDYsMHg3NiwweDAwLDB4NzcsMHgwMCwweDgwLDB4MDYsMHgwOCwKLTB4MDksMHgwYywweGJjLDB4MDgsMHhlZSwweDEyLDB4MzEsMHg5MywweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMiwweGQwLDB4MDEsCi0weGQwLDB4MDAsMHgyMiwweDc1LDB4NzMsMHgwMCwweDg1LDB4NzQsMHhhOCwweDIyLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLAotMHhjMywweGU1LDB4NzUsMHgyNCwweGU4LDB4NTAsMHgwNSwweDEyLDB4MzEsMHhlNywweDgwLDB4ZjQsMHhlYywweDYwLDB4MzEsMHg5MCwKLTB4MzQsMHhiNiwweGU0LDB4OTMsMHhjMywweDljLDB4NDAsMHgyOCwweGMwLDB4MDQsMHg3YywweGZmLDB4MTIsMHgzMCwweGZhLDB4ZDAsCi0weDA0LDB4NDMsMHgwNCwweDgwLDB4ZTUsMHg3NSwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHg5ZCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZSwweGY1LDB4ODMsMHhlYywweGYwLDB4ZWYsMHhhMywweGYwLDB4ZWUsMHhhMywweGYwLDB4MDUsMHg3NSwweDEyLDB4MzEsMHg5MywKLTB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHhjMCwweDA0LDB4N2MsMHgyMCwweGQyLDB4OGMsMHhkMiwweDhkLDB4ZDUsCi0weDA0LDB4ZmQsMHhkMCwweDA0LDB4MjIsMHg3NSwweGE4LDB4MDAsMHg3NSwweDg4LDB4MDAsMHg3NSwweGI4LDB4MDAsMHg3NSwweGYwLAotMHgwMCwweDc1LDB4ZDAsMHgwMCwweGU0LDB4ZjgsMHg5MCwweDAwLDB4MDAsMHhmNiwweDA4LDB4YjgsMHgwMCwweGZiLDB4MDIsMHgwMCwKLTB4MDAsMHhjMywweGVkLDB4OTQsMHgwMiwweDUwLDB4MDQsMHg3ZCwweDAzLDB4N2MsMHhlOCwweGVjLDB4ZjQsMHhmYywweGVkLDB4ZjQsCi0weGZkLDB4MGMsMHhiYywweDAwLDB4MDEsMHgwZCwweDhjLDB4NzksMHg4ZCwweDc4LDB4MjIsMHhjMywweGVjLDB4OTQsMHhiYywweGVkLAotMHg5NCwweDAyLDB4NTAsMHgwNCwweDdkLDB4MDcsMHg3YywweGQwLDB4ZWMsMHhmNCwweGZjLDB4ZWQsMHhmNCwweGZkLDB4MGMsMHhiYywKLTB4MDAsMHgwMSwweDBkLDB4OGMsMHg3NywweDhkLDB4NzYsMHgyMiwweGVjLDB4NzAsMHgwMSwweDIyLDB4YzAsMHgwMCwweGU1LDB4NzIsCi0weDI0LDB4MTgsMHhmOCwweGE2LDB4MDQsMHhlNSwweDcyLDB4MjQsMHgwOCwweGY4LDB4YzYsMHg1NCwweDdmLDB4ZjYsMHhlNiwweDMwLAotMHhlNywweDAzLDB4ZDAsMHgwMCwweDIyLDB4MTIsMHgzMSwweGU3LDB4ODAsMHhmNCwweGMyLDB4OGMsMHg4NSwweDc2LDB4OGMsMHg4NSwKLTB4NzcsMHg4YSwweGQyLDB4OGMsMHhjMCwweGUwLDB4YzAsMHhkMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDAsCi0weGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHgxMiwweDFiLAotMHgyOCwweGU1LDB4NzIsMHgyNCwweDA4LDB4ZjgsMHhlNiwweDYwLDB4MjQsMHhlNSwweDcyLDB4MjQsMHgxMCwweGY4LDB4YTYsMHg4MSwKLTB4ZTUsMHg3MiwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg5NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4NzgsCi0weGE4LDB4ZTUsMHg4MSwweDA0LDB4YzMsMHg5OCwweGY5LDB4ZTYsMHhmMCwweDA4LDB4YTMsMHhkOSwweGZhLDB4NzQsMHgwOCwweDI1LAotMHg3MiwweGY4LDB4MDUsMHg3MiwweDA4LDB4ZTYsMHg1NCwweDgwLDB4NzAsMHgwYywweGU1LDB4NzIsMHhiNCwweDA3LDB4ZjMsMHg3OCwKLTB4MDgsMHg3NSwweDcyLDB4MDAsMHg4MCwweGVmLDB4ZTUsMHg3MiwweDI0LDB4MTAsMHhmOCwweDg2LDB4ODEsMHhlNSwweDcyLDB4NzUsCi0weGYwLDB4MjEsMHhhNCwweDI0LDB4OTUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDc4LDB4YTgsMHhlNSwweDgxLAotMHgwNCwweGMzLDB4OTgsMHhmOSwweGUwLDB4ZjYsMHgwOCwweGEzLDB4ZDksMHhmYSwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwNSwKLTB4ZDAsMHgwNCwweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsCi0weGQwLDB4ZDAsMHhkMCwweGUwLDB4MzIsMHhjMCwweGUwLDB4YzAsMHhkMCwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMyLAotMHg4ZSwweDg1LDB4NzgsMHg4ZCwweDg1LDB4NzksMHg4YiwweGQyLDB4OGUsMHg3OCwweDE5LDB4NzksMHgwOSwweDdhLDB4MDcsMHhlNywKLTB4NzAsMHgwNCwweGE2LDB4MDAsMHg4MCwweDBiLDB4ZTYsMHg2MCwweDA4LDB4MTYsMHhlNiwweDcwLDB4MDQsMHhlNywweDQ0LDB4ODAsCi0weGY3LDB4MDgsMHgwOSwweGRhLDB4ZWEsMHhlNSwweDczLDB4NjAsMHgxMywweDE0LDB4ZjUsMHg3MywweDcwLDB4MGUsMHhlNSwweDcyLAotMHgyNCwweDA4LDB4ZjgsMHg3NiwweDAwLDB4MTIsMHgzMSwweDkzLDB4ZDIsMHg4YywweGQyLDB4OGQsMHhkMCwweDAyLDB4ZDAsMHgwMSwKLTB4ZDAsMHgwMCwweGQwLDB4ZDAsMHhkMCwweGUwLDB4MzIsMHg3NSwweDgxLDB4YTcsMHg3NSwweDkwLDB4MDAsMHg3NSwweDc5LDB4MzAsCi0weDc1LDB4NzgsMHhmOCwweDc1LDB4NzcsMHg2MCwweDc1LDB4NzYsMHhmMCwweDEyLDB4MDUsMHgzYywweDEyLDB4MzQsMHgwZiwweDEyLAotMHgxNywweDhiLDB4MTIsMHgzNCwweDM5LDB4MTIsMHgzMSwweGY1LDB4ODAsMHhlMywweDIyLDB4YzAsMHgwMCwweDdjLDB4MDEsMHhlYywKLTB4MjQsMHgwOCwweGY4LDB4ZTYsMHg2MCwweDA5LDB4MGMsMHhiYywweDA4LDB4ZjUsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGVlLDB4ZDAsCi0weDAwLDB4MjIsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAwLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhlZCwweDI0LAotMHgxMCwweGY4LDB4NzYsMHhiNiwweGVkLDB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwKLTB4ZjUsMHg4MywweGMwLDB4ODIsMHhjMCwweDgzLDB4YTMsMHhhMywweGU0LDB4NzgsMHgwZCwweGYwLDB4YTMsMHhkOCwweGZjLDB4ZWMsCi0weDU0LDB4N2YsMHg3NSwweGYwLDB4MDIsMHhhNCwweDI0LDB4ODIsMHhmNSwweDgyLDB4ZTUsMHhmMCwweDM0LDB4MzQsMHhmNSwweDgzLAotMHhlNCwweDkzLDB4ZmUsMHg3NCwweDAxLDB4OTMsMHhmNSwweDgyLDB4OGUsMHg4MywweGU0LDB4OTMsMHhmZSwweDc0LDB4MDEsMHg5MywKLTB4ZmYsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGVmLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhlZCwweDI0LDB4MDgsMHhmOCwweGVjLDB4NDQsCi0weDgwLDB4ZjYsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHgyMiwweDc1LAotMHg3MiwweDAwLDB4NzUsMHg3NSwweDAwLDB4N2EsMHgwOCwweDc5LDB4MTgsMHg3OCwweDA4LDB4NzYsMHgwMCwweDc3LDB4MDAsMHgwOCwKLTB4MDksMHhkYSwweGY4LDB4ZTQsMHg3OCwweDA4LDB4NzQsMHg4MCwweDQ0LDB4N2YsMHhmNiwweDc0LDB4MDEsMHg0NCwweDEwLDB4ZjUsCi0weDg5LDB4NzUsMHhiOCwweDA4LDB4ZDIsMHhhYiwweGQyLDB4YTksMHgyMiwweDc1LDB4ODEsMHhhNywweGQyLDB4OGUsMHhkMiwweDhjLAotMHhkMiwweGFmLDB4ZTUsMHg3NSwweDYwLDB4MzIsMHhmZiwweDkwLDB4ZmUsMHg5ZCwweGUwLDB4NTQsMHg4MCwweDYwLDB4MjQsMHg3OCwKLTB4MDgsMHg3OSwweDA4LDB4ZTAsMHg1NCwweDdmLDB4ZmEsMHg3YiwweDAwLDB4ZTYsMHg1NCwweDdmLDB4YjUsMHgwMiwweDAyLDB4N2IsCi0weGZmLDB4MDgsMHhkOSwweGY1LDB4ZWIsMHg3MCwweDBjLDB4ZWEsMHhmMCwweDEyLDB4MzMsMHg4YiwweGFkLDB4MDQsMHhhYywweDAyLAotMHgxMiwweDMzLDB4YTIsMHhhMywweGEzLDB4YTMsMHhkZiwweGQyLDB4MTIsMHgzMSwweGU3LDB4ODAsMHhjNSwweDdjLDB4MDEsMHg3ZCwKLTB4MDAsMHgyMiwweDA0LDB4ZjUsMHgwNCwweGU5LDB4MDQsMHhlZCwweDA0LDB4ZTEsMHgwNCwweGRkLDB4MDQsMHhkOSwweDA0LDB4ZTUsCi0weDA0LDB4ZjEsMHgwNCwweDlkLDB4MDQsMHhhMSwweDA0LDB4Y2QsMHgwNCwweGQxLDB4MDQsMHg5OSwweDA0LDB4OTksMHgwNCwweDk5LAotMHgwNCwweGQ1LDB4MDQsMHhiNSwweDA0LDB4YWQsMHgwNCwweGIxLDB4MDQsMHhhOSwweDA0LDB4YzEsMHgwNCwweGJkLDB4MDQsMHhiOSwKLTB4MDQsMHhjNSwweDA0LDB4YzksMHgwNCwweGE1LDB4MTksMHgwMSwweDAzLDB4MDAsMHgyMiwweDAwLDB4NDgsMHgwMiwweDAwLDB4MjQsCi0weDBmLDB4MTgsMHgwYSwweDEwLDB4NjQsMHgwZCwweDY4LDB4MGMsMHgwNSwweDA2LDB4MDIsMHgwMywweDAxLDB4MDEsMHg4MSwweDAxLAotMHgwMCwweDAwLDB4ZTcsMHgwMCwweGMwLDB4MDAsMHg4MCwweDAwLDB4NjAsMHgwMCwweDQwLDB4MDAsMHgzMCwweDAwLDB4MTgsMHgwMCwKLTB4MGMsMHgwMCwweDA4LDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDAxLDB4MDAsMHgwOCwweDE4LDB4MzgsMHgyOCwweDA2LDB4MDIsCi0weDEwLDB4MGEsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDgxLDB4MTAsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4ZmIsMHhlOCwweGZiLDB4ZmEsMHgxMiwweDAxLDB4MTAsMHgwMSwweGZmLDB4MDAsMHgwMCwweDA4LDB4NTEsMHgwNCwKLTB4NWYsMHg1MCwweDE2LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMiwweDA5LDB4MDIsMHgzNSwweDAwLDB4MDEsMHgwMiwweDAwLDB4ZTAsCi0weDAwLDB4MDksMHgwNCwweDAwLDB4MDAsMHgwNSwweGZmLDB4MDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgxLDB4MDIsMHg0MCwweDAwLAotMHgwMCwweDA3LDB4MDUsMHgwMSwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgyLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywKLTB4MDUsMHgwMiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDg1LDB4MDMsMHgwMiwweDAwLDB4MDEsMHgwNCwweDAzLDB4MDksCi0weDA0LDB4MjQsMHgwMywweDU0LDB4MDAsMHg2NSwweDAwLDB4NzgsMHgwMCwweDYxLDB4MDAsMHg3MywweDAwLDB4MjAsMHgwMCwweDQ5LAotMHgwMCwweDZlLDB4MDAsMHg3MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg3NSwweDAwLDB4NmQsMHgwMCwweDY1LDB4MDAsMHg2ZSwKLTB4MDAsMHg3NCwweDAwLDB4NzMsMHgwMCwweDJhLDB4MDMsMHg1NCwweDAwLDB4NTUsMHgwMCwweDUzLDB4MDAsMHg0MiwweDAwLDB4MzUsCi0weDAwLDB4MzAsMHgwMCwweDM1LDB4MDAsMHgzMiwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg2NSwweDAwLDB4NzIsMHgwMCwweDY5LAotMHgwMCwweDYxLDB4MDAsMHg2YywweDAwLDB4MjAsMHgwMCwweDUwLDB4MDAsMHg2ZiwweDAwLDB4NzIsMHgwMCwweDc0LDB4MDAsMHgyMiwKLTB4MDMsMHg1NCwweDAwLDB4NTUsMHgwMCwweDUzLDB4MDAsMHg0MiwweDAwLDB4MzUsMHgwMCwweDMwLDB4MDAsMHgzNSwweDAwLDB4MzIsCi0weDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLAotMHgwMCwKLX07Ci0KLSNlbmRpZiAvKiBpZm5kZWYgX1RJX0ZXXzUwNTJfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jCmluZGV4IGExYzhhZWYuLmEyNmE2MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYwpAQCAtODQsMTEgKzg0LDkgQEAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogCiAjaW5jbHVkZSAidGlfdXNiXzM0MTBfNTA1Mi5oIgotI2luY2x1ZGUgInRpX2Z3XzM0MTAuaCIJCS8qIGZpcm13YXJlIGltYWdlIGZvciAzNDEwICovCi0jaW5jbHVkZSAidGlfZndfNTA1Mi5oIgkJLyogZmlybXdhcmUgaW1hZ2UgZm9yIDUwNTIgKi8KLQogCiAvKiBEZWZpbmVzICovCiAKQEAgLTE5NCw4ICsxOTIsOCBAQAogc3RhdGljIGludCB0aV93cml0ZV9ieXRlKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlfX3U4IG1hc2ssIF9fdTggYnl0ZSk7CiAKLXN0YXRpYyBpbnQgdGlfZG93bmxvYWRfZmlybXdhcmUoc3RydWN0IHRpX2RldmljZSAqdGRldiwKLQl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgdW5zaWduZWQgaW50IGZpcm13YXJlX3NpemUpOworc3RhdGljIGludCB0aV9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LCBjaGFyICpmd19uYW1lKTsKKwogCiAvKiBjaXJjdWxhciBidWZmZXIgKi8KIHN0YXRpYyBzdHJ1Y3QgY2lyY19idWYgKnRpX2J1Zl9hbGxvYyh2b2lkKTsKQEAgLTMyMCw2ICszMTgsOSBAQAogTU9EVUxFX1ZFUlNJT04oVElfRFJJVkVSX1ZFUlNJT04pOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCitNT0RVTEVfRklSTVdBUkUoInRpXzM0MTAuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgidGlfNTA1Mi5mdyIpOworCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJFbmFibGUgZGVidWdnaW5nLCAwPW5vLCAxPXllcyIpOwogCkBAIC00MzEsMTEgKzQzMiw5IEBACiAJaWYgKGRldi0+ZGVzY3JpcHRvci5iTnVtQ29uZmlndXJhdGlvbnMgPT0gMSkgewogCiAJCWlmICh0ZGV2LT50ZF9pc18zNDEwKQotCQkJc3RhdHVzID0gdGlfZG93bmxvYWRfZmlybXdhcmUodGRldiwgdGlfZndfMzQxMCwKLQkJCQlzaXplb2YodGlfZndfMzQxMCkpOworCQkJc3RhdHVzID0gdGlfZG93bmxvYWRfZmlybXdhcmUodGRldiwgInRpXzM0MTAuZnciKTsKIAkJZWxzZQotCQkJc3RhdHVzID0gdGlfZG93bmxvYWRfZmlybXdhcmUodGRldiwgdGlfZndfNTA1MiwKLQkJCQlzaXplb2YodGlfZndfNTA1MikpOworCQkJc3RhdHVzID0gdGlfZG93bmxvYWRfZmlybXdhcmUodGRldiwgInRpXzUwNTIuZnciKTsKIAkJaWYgKHN0YXR1cykKIAkJCWdvdG8gZnJlZV90ZGV2OwogCkBAIC0xNjU4LDggKzE2NTcsOSBAQAogCiAKIHN0YXRpYyBpbnQgdGlfZG93bmxvYWRfZmlybXdhcmUoc3RydWN0IHRpX2RldmljZSAqdGRldiwKLQl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgdW5zaWduZWQgaW50IGZpcm13YXJlX3NpemUpCisJCQkJY2hhciAqZndfbmFtZSkKIHsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCWludCBzdGF0dXMgPSAwOwogCWludCBidWZmZXJfc2l6ZTsKIAlpbnQgcG9zOwpAQCAtMTY3MiwxNiArMTY3MiwyOSBAQAogCXVuc2lnbmVkIGludCBwaXBlID0gdXNiX3NuZGJ1bGtwaXBlKGRldiwKIAkJdGRldi0+dGRfc2VyaWFsLT5wb3J0WzBdLT5idWxrX291dF9lbmRwb2ludEFkZHJlc3MpOwogCi0KIAlidWZmZXJfc2l6ZSA9IFRJX0ZJUk1XQVJFX0JVRl9TSVpFICsgc2l6ZW9mKHN0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIpOworCisJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCAmZGV2LT5kZXYpKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgLSBmYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVzXCJcbiIsCisJCQlfX2Z1bmNfXywgZndfbmFtZSk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKwlpZiAoZnctPnNpemUgPiBidWZmZXJfc2l6ZSkgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gZmlybXdhcmUgXCIlc1wiIGlzIHRvbyBsYXJnZVxuIiwKKwkJCV9fZnVuY19fLCBmd19uYW1lKTsKKwkJcmVsZWFzZV9maXJtd2FyZShmdyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCWJ1ZmZlciA9IGttYWxsb2MoYnVmZmVyX3NpemUsIEdGUF9LRVJORUwpOwogCWlmICghYnVmZmVyKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgLSBvdXQgb2YgbWVtb3J5XG4iLCBfX2Z1bmNfXyk7CisJCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLQltZW1jcHkoYnVmZmVyLCBmaXJtd2FyZSwgZmlybXdhcmVfc2l6ZSk7Ci0JbWVtc2V0KGJ1ZmZlcitmaXJtd2FyZV9zaXplLCAweGZmLCBidWZmZXJfc2l6ZS1maXJtd2FyZV9zaXplKTsKKwltZW1jcHkoYnVmZmVyLCBmdy0+ZGF0YSwgZnctPnNpemUpOworCW1lbXNldChidWZmZXIrZnctPnNpemUsIDB4ZmYsIGJ1ZmZlcl9zaXplLWZ3LT5zaXplKTsKIAogCWZvcihwb3MgPSBzaXplb2Yoc3RydWN0IHRpX2Zpcm13YXJlX2hlYWRlcik7IHBvcyA8IGJ1ZmZlcl9zaXplOyBwb3MrKykKIAkJY3MgPSAoX191OCkoY3MgKyBidWZmZXJbcG9zXSk7CkBAIC0xNjk5LDYgKzE3MTIsNyBAQAogCX0KIAogCWtmcmVlKGJ1ZmZlcik7CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAKIAlpZiAoc3RhdHVzKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgLSBlcnJvciBkb3dubG9hZGluZyBmaXJtd2FyZSwgJWRcbiIsIF9fZnVuY19fLCBzdGF0dXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jCmluZGV4IGYwN2U4YTQuLjY2NWFhNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmMKQEAgLTgxLDcgKzgxLDggQEAKICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgotI2luY2x1ZGUgIndoaXRlaGVhdF9mdy5oIgkJLyogZmlybXdhcmUgZm9yIHRoZSBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgZGV2aWNlICovCisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAjaW5jbHVkZSAid2hpdGVoZWF0LmgiCQkJLyogV2hpdGVIRUFUIHNwZWNpZmljIGNvbW1hbmRzICovCiAKIHN0YXRpYyBpbnQgZGVidWc7CkBAIC0yNzksMzcgKzI4MCw1MiBAQAogKi8KIHN0YXRpYyBpbnQgd2hpdGVoZWF0X2Zpcm13YXJlX2Rvd25sb2FkIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiB7Ci0JaW50IHJlc3BvbnNlOwotCWNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCAqcmVjb3JkOwotCQorCWludCByZXNwb25zZSwgcmV0ID0gLUVOT0VOVDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmxvYWRlcl9mdyA9IE5VTEwsICpmaXJtd2FyZV9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQ7CisKIAlkYmcoIiVzIiwgX19mdW5jX18pOwotCQorCisJaWYgKHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZmlybXdhcmVfZncsICJ3aGl0ZWhlYXQuZnciLAorCQkJCSAgJnNlcmlhbC0+ZGV2LT5kZXYpKSB7CisJCWVycigiJXMgLSByZXF1ZXN0IFwid2hpdGVoZWF0LmZ3XCIgZmFpbGVkIiwgX19mdW5jX18pOworCQlnb3RvIG91dDsKKwl9CisJaWYgKHJlcXVlc3RfaWhleF9maXJtd2FyZSgmbG9hZGVyX2Z3LCAid2hpdGVoZWF0X2xvYWRlci5mdyIsCisJCQkgICAgICZzZXJpYWwtPmRldi0+ZGV2KSkgeworCQllcnIoIiVzIC0gcmVxdWVzdCBcIndoaXRlaGVhdF9sb2FkZXIuZndcIiBmYWlsZWQiLCBfX2Z1bmNfXyk7CisJCWdvdG8gb3V0OworCX0KKwlyZXQgPSAwOwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDEpOwogCi0JcmVjb3JkID0gJndoaXRlaGVhdF9sb2FkZXJbMF07Ci0Jd2hpbGUgKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKLQkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsIAotCQkJCSh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWxvYWRlcl9mdy0+ZGF0YTsKKwl3aGlsZSAocmVjb3JkKSB7CisJCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCQkJICAgICAgKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsCisJCQkJCSAgICAgIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSwgMHhhMCk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKIAkJCWVycigiJXMgLSBlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIGxvYWRlciAoJWQgJTA0WCAlcCAlZCkiLAotCQkJCV9fZnVuY19fLCByZXNwb25zZSwgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCSAgICBfX2Z1bmNfXywgcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkgICAgcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KLQkJKytyZWNvcmQ7CisJCXJlY29yZCA9IGloZXhfbmV4dF9iaW5yZWMocmVjb3JkKTsKIAl9CiAKIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAwKTsKIAotCXJlY29yZCA9ICZ3aGl0ZWhlYXRfZmlybXdhcmVbMF07Ci0Jd2hpbGUgKHJlY29yZC0+YWRkcmVzcyA8IDB4MWI0MCkgewotCQkrK3JlY29yZDsKLQl9Ci0Jd2hpbGUgKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKLQkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsIAotCQkJCSh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMyk7CisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCXdoaWxlIChyZWNvcmQgJiYgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSA8IDB4MWI0MCkKKwkJcmVjb3JkID0gaWhleF9uZXh0X2JpbnJlYyhyZWNvcmQpOworCXdoaWxlIChyZWNvcmQpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJCQkgICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKKwkJCQkJICAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEzKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZXJyKCIlcyAtIGV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3IgZmlyc3QgZmlybXdhcmUgc3RlcCAoJWQgJTA0WCAlcCAlZCkiLCAKLQkJCQlfX2Z1bmNfXywgcmVzcG9uc2UsIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkgICAgX19mdW5jX18sIHJlc3BvbnNlLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJICAgIHJlY29yZC0+ZGF0YSwgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9CiAJCSsrcmVjb3JkOwpAQCAtMzE3LDIxICszMzMsMjUgQEAKIAkKIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAxKTsKIAotCXJlY29yZCA9ICZ3aGl0ZWhlYXRfZmlybXdhcmVbMF07Ci0Jd2hpbGUgKHJlY29yZC0+YWRkcmVzcyA8IDB4MWI0MCkgewotCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywgCi0JCQkJKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplLCAweGEwKTsKKwlyZWNvcmQgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJd2hpbGUgKHJlY29yZCAmJiBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpIDwgMHgxYjQwKSB7CisJCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCQkJICAgICAgKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsCisJCQkJCSAgICAgIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSwgMHhhMCk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKIAkJCWVycigiJXMgLSBlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIHNlY29uZCBmaXJtd2FyZSBzdGVwICglZCAlMDRYICVwICVkKSIsIAotCQkJCV9fZnVuY19fLCByZXNwb25zZSwgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCSAgICBfX2Z1bmNfXywgcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkgICAgcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KIAkJKytyZWNvcmQ7CiAJfQotCisJcmV0ID0gMDsKIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAwKTsKLQotCXJldHVybiAwOworIG91dDoKKwlyZWxlYXNlX2Zpcm13YXJlKGxvYWRlcl9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShmaXJtd2FyZV9mdyk7CisJcmV0dXJuIHJldDsKIH0KIAogCkBAIC0xNTAzLDYgKzE1MjMsOSBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCitNT0RVTEVfRklSTVdBUkUoIndoaXRlaGVhdC5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJ3aGl0ZWhlYXRfbG9hZGVyLmZ3Iik7CisKIG1vZHVsZV9wYXJhbSh1cmJfcG9vbF9zaXplLCBpbnQsIDApOwogTU9EVUxFX1BBUk1fREVTQyh1cmJfcG9vbF9zaXplLCAiTnVtYmVyIG9mIHVyYnMgdG8gdXNlIGZvciBidWZmZXJpbmciKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdF9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdF9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBiZGM3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXRfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2NjkgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICogICAgICB3aGl0ZWhlYXQuaCAgLS0gIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBGaXJtd2FyZS4KLSAqCi0gKiAgICAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAyICBDb25uZWN0VGVjaCBJbmMgKGh0dHA6Ly93d3cuY29ubmVjdHRlY2guY29tLykKLSAqCi0gKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICAgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0gKgotICogKDEwLzA5LzIwMDIpIFN0dWFydCBNYWNEb25hbGQKLSAqCUZpcm13YXJlIDQuMDYKLSAqCi0gKiAoMDQvMDkvMjAwMCkgZ2toCi0gKglVcGRhdGVkIHRoZSBmaXJtd2FyZSB3aXRoIHRoZSBsYXRlc3QgcHJvdmlkZWQgYnkgQ29ubmVjdFRlY2guCi0gKgotICogKDAxLzE2LzIwMDApIGdraAotICoJRml4ZWQgbXkgaW50ZWwgaGV4IHByb2Nlc3NpbmcgdG9vbCwgc28gbm93IHRoZSBmaXJtd2FyZSBhY3R1YWxseQotICoJbWF0Y2hlcyB0aGUgb3JpZ2luYWwgZmlsZSAodGhpcyB3YXMgY2F1c2luZyBhIGZldyBwcm9ibGVtcy4uLikKLSAqCi0gKiAoMDEvMTUvMjAwMCkgZ2toCi0gKglBZGRlZCBkZWJ1ZyBsb2FkZXIgZmlybXdhcmUgaWYgREVCVUcgaXMgI2RlZmluZWQ6Ci0gKgkJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCi0gKgkJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcwotICoJCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKLSAqCQlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCi0gKgotICogdmVyc2lvbiAxLjAgKDAxLzA5LzIwMDApIGdraAotICoJT3JpZ2luYWwgZmlybXdhcmUgZnJvbSBDb25uZWN0VGVjaCBtYXNzYWdlZCBhIGxpdHRsZSB0byBiZSBwcm9ncmFtCi0gKglyZWFkYWJsZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLSNkZWZpbmUgd2hpdGVoZWF0X0RBVEUgIjIwMDAwMTA2IgotCi1zdHJ1Y3Qgd2hpdGVoZWF0X2hleF9yZWNvcmQgewotCV9fdTE2CWFkZHJlc3M7Ci0JX191OAlkYXRhX3NpemU7Ci0JX191OAlkYXRhWzE2XTsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2hpdGVoZWF0X2hleF9yZWNvcmQgd2hpdGVoZWF0X2Zpcm13YXJlW10gPSB7Ci17IDB4MDAwMCwJMywJezB4MDIsIDB4OTcsIDB4ZTN9IH0sCi17IDB4MDAwMywJMywJezB4MDIsIDB4MTMsIDB4MTJ9IH0sCi17IDB4MDAwYiwJMywJezB4MDIsIDB4MGIsIDB4YjV9IH0sCi17IDB4MDAzMywJMywJezB4MDIsIDB4MDgsIDB4MWN9IH0sCi17IDB4MDA0MywJMywJezB4MDIsIDB4MGEsIDB4MDB9IH0sCi17IDB4MDA1YiwJMywJezB4MDIsIDB4ODMsIDB4M2J9IH0sCi17IDB4MDM3MCwJMTYsCXsweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDczLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweGU3LCAweDI0fSB9LAoteyAweDAzODAsCTE2LAl7MHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg0ZiwgMHgyNCwgMHhmYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg2NCwgMHgxNCwgMHg3MCwgMHgwM30gfSwKLXsgMHgwMzkwLAkxNiwJezB4MDIsIDB4MDQsIDB4NTIsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4M2EsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDksIDB4MjR9IH0sCi17IDB4MDNhMCwJMTYsCXsweDA1LCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweDllLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwfSB9LAoteyAweDAzYjAsCTE2LAl7MHgzNiwgMHgyNCwgMHgwMiwgMHg3MCwgMHg3YiwgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNX0gfSwKLXsgMHgwM2MwLAkxNiwJezB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4OTksIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGR9IH0sCi17IDB4MDNkMCwJMTYsCXsweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGI0fSB9LAoteyAweDAzZTAsCTE2LAl7MHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYSwgMHg1OCwgMHhlYX0gfSwKLXsgMHgwM2YwLAkxNiwJezB4NDksIDB4NjAsIDB4MzMsIDB4MTIsIDB4YTIsIDB4M2IsIDB4ZjUsIDB4NGUsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NGUsIDB4ZDN9IH0sCi17IDB4MDQwMCwJMTYsCXsweDlmLCAweDQwLCAweDAzLCAweGUwLCAweGY1LCAweDRlLCAweGU1LCAweDRlLCAweGQzLCAweDk0LCAweDQwLCAweDQwLCAweDAzLCAweDc1LCAweDRlLCAweDQwfSB9LAoteyAweDA0MTAsCTE2LAl7MHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwgMHg3YywgMHg3ZiwgMHg3ZCwgMHgwMCwgMHhhYiwgMHg0ZSwgMHgxMiwgMHg5MSwgMHgzNywgMHg5MCwgMHg3ZiwgMHhiNX0gfSwKLXsgMHgwNDIwLAkxNiwJezB4ZTUsIDB4NGUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTV9IH0sCi17IDB4MDQzMCwJMTYsCXsweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDIxLCAweGYwfSB9LAoteyAweDA0NDAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgyMSwgMHgwMn0gfSwKLXsgMHgwNDUwLAkxNiwJezB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MDIsIDB4NDMsIDB4ODgsIDB4MTAsIDB4ZDIsIDB4ZWIsIDB4ZDJ9IH0sCi17IDB4MDQ2MCwJMTYsCXsweGE4LCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDM1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwfSB9LAoteyAweDA0NzAsCTE2LAl7MHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMn0gfSwKLXsgMHgwNDgwLAkxNiwJezB4NzAsIDB4NWIsIDB4YTIsIDB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDUsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTB9IH0sCi17IDB4MDQ5MCwJMTYsCXsweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweGU0fSB9LAoteyAweDA0YTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MH0gfSwKLXsgMHgwNGIwLAkxNiwJezB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjV9IH0sCi17IDB4MDRjMCwJMTYsCXsweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDAxLCAweDkwLCAweDdmLCAweDAwfSB9LAoteyAweDA0ZDAsCTE2LAl7MHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKLXsgMHgwNGUwLAkxNiwJezB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjR9IH0sCi17IDB4MDRmMCwJMTYsCXsweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyfSB9LAoteyAweDA1MDAsCTE2LAl7MHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH0gfSwKLXsgMHgwNTEwLAkxNiwJezB4NzAsIDB4MzQsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4MDcsIDB4ZmUsIDB4ZjUsIDB4NGUsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4MDN9IH0sCi17IDB4MDUyMCwJMTYsCXsweDQzLCAweDRlLCAweDEwLCAweDkwLCAweDdmLCAweGQ3LCAweGU1LCAweDRlLCAweGYwLCAweGU1LCAweDRlLCAweDQ0LCAweDIwLCAweGYwLCAweGVmLCAweGY0fSB9LAoteyAweDA1MzAsCTE2LAl7MHg1NCwgMHg4MCwgMHhmZCwgMHhjNCwgMHg1NCwgMHgwZiwgMHgyZSwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3Zn0gfSwKLXsgMHgwNTQwLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTB9IH0sCi17IDB4MDU1MCwJMTYsCXsweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0fSB9LAoteyAweDA1NjAsCTE2LAl7MHgwMSwgMHgwNCwgMHhkMiwgMHgwMCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MH0gfSwKLXsgMHgwNTcwLAkxNiwJezB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGZ9IH0sCi17IDB4MDU4MCwJMTYsCXsweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoteyAweDA1OTAsCTE2LAl7MHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNWEwLAkxMiwJezB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9IH0sCi17IDB4MDVhYywJMSwJezB4MjJ9IH0sCi17IDB4MDVhZCwJMTYsCXsweDc1LCAweDRhLCAweGZmLCAweDc1LCAweDQ5LCAweGZmLCAweDc1LCAweDQ4LCAweDBmLCAweDc1LCAweDQ3LCAweDAwLCAweGQyLCAweDAzLCAweGMyLCAweDA2fSB9LAoteyAweDA1YmQsCTE2LAl7MHhjMiwgMHgwMiwgMHhjMiwgMHgwMCwgMHhjMiwgMHgwNSwgMHhjMiwgMHgwMSwgMHg5MCwgMHgwMywgMHgwMCwgMHg3NCwgMHgxOSwgMHhmMCwgMHhlNCwgMHg5MH0gfSwKLXsgMHgwNWNkLAkxNiwJezB4MDEsIDB4YmMsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YzIsIDB4YWYsIDB4YzIsIDB4YTgsIDB4MTJ9IH0sCi17IDB4MDVkZCwJMTYsCXsweDBjLCAweDIyLCAweGU0LCAweDkwLCAweDAyLCAweGFmLCAweGYwLCAweDkwLCAweDAxLCAweGJkLCAweGYwLCAweDkwLCAweDAxLCAweDAwLCAweGYwLCAweGEzfSB9LAoteyAweDA1ZWQsCTE2LAl7MHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMSwgMHhmMCwgMHhhM30gfSwKLXsgMHgwNWZkLAkxNiwJezB4NzQsIDB4MDgsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MDAsIDB4MTIsIDB4MTksIDB4YzEsIDB4NzUsIDB4NGMsIDB4MTIsIDB4NzUsIDB4NGQsIDB4MGF9IH0sCi17IDB4MDYwZCwJMTYsCXsweDkwLCAweDAxLCAweDBiLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0fSB9LAoteyAweDA2MWQsCTE2LAl7MHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHgwYywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNX0gfSwKLXsgMHgwNjJkLAkxNiwJezB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDF9IH0sCi17IDB4MDYzZCwJMTYsCXsweDBkLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyfSB9LAoteyAweDA2NGQsCTE2LAl7MHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHgwZSwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MH0gfSwKLXsgMHgwNjVkLAkxNiwJezB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MTIsIDB4MGEsIDB4ZTQsIDB4OTMsIDB4ZmZ9IH0sCi17IDB4MDY2ZCwJMTYsCXsweDc0LCAweDAxLCAweDkzLCAweDkwLCAweDAxLCAweDFjLCAweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDkwLCAweDAxLCAweDFjLCAweGUwLCAweGZmfSB9LAoteyAweDA2N2QsCTE2LAl7MHhhMywgMHhlMCwgMHhmZSwgMHhlZiwgMHg2ZSwgMHhmZiwgMHg5MCwgMHgwMSwgMHgxYywgMHhmMCwgMHhhMywgMHhlMCwgMHg2ZiwgMHhmZiwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwNjhkLAkxNiwJezB4MDEsIDB4MWMsIDB4ZTAsIDB4NmYsIDB4ZjAsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZTQsIDB4ZmMsIDB4ZmQsIDB4NzUsIDB4NTIsIDB4MTB9IH0sCi17IDB4MDY5ZCwJMTYsCXsweDc1LCAweDUzLCAweDAyLCAweDc1LCAweDU0LCAweDEyLCAweDc1LCAweDU1LCAweGFjLCAweDEyLCAweDk0LCAweDI2LCAweDc1LCAweDRjLCAweDEyLCAweDc1fSB9LAoteyAweDA2YWQsCTE2LAl7MHg0ZCwgMHhiMiwgMHg5MCwgMHgwMSwgMHgwZCwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNX0gfSwKLXsgMHgwNmJkLAkxNiwJezB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MGUsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTV9IH0sCi17IDB4MDZjZCwJMTYsCXsweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDdmfSB9LAoteyAweDA2ZGQsCTE2LAl7MHg5MiwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHgyNCwgMHg0MSwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MH0gfSwKLXsgMHgwNmVkLAkxNiwJezB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWUsIDB4NGN9IH0sCi17IDB4MDZmZCwJMTYsCXsweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU0LCAweGYwLCAweDc1LCAweDgyLCAweDEwLCAweDc1LCAweDgzfSB9LAoteyAweDA3MGQsCTE2LAl7MHgwMSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMSwgMHgxOCwgMHgxMn0gfSwKLXsgMHgwNzFkLAkxNiwJezB4YTMsIDB4ZWUsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MTgsIDB4MTIsIDB4ODYsIDB4YmUsIDB4OTAsIDB4MDEsIDB4MTgsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTB9IH0sCi17IDB4MDcyZCwJMTYsCXsweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDc1LCAweDUyLCAweDBhLCAweDc1LCAweDUzLCAweDA2LCAweDc1LCAweDU0LCAweDEyfSB9LAoteyAweDA3M2QsCTE2LAl7MHg3NSwgMHg1NSwgMHhiOCwgMHgxMiwgMHg5NCwgMHgyNiwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZn0gfSwKLXsgMHgwNzRkLAkxNiwJezB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MDc1ZCwJMTYsCXsweDFmLCAweGYwLCAweGQyLCAweGFmLCAweDIwLCAweDAxLCAweDJlLCAweDIwLCAweDAxLCAweDJiLCAweGEyLCAweDAzLCAweDkyLCAweDA3LCAweDEyLCAweDA5fSB9LAoteyAweDA3NmQsCTE2LAl7MHhjNSwgMHg3NSwgMHg0NiwgMHg1MCwgMHg3NSwgMHg0NSwgMHg2ZCwgMHg3NSwgMHg0NCwgMHgzMywgMHg3NSwgMHg0MywgMHgwMCwgMHgyMCwgMHgwMSwgMHhlNH0gfSwKLXsgMHgwNzdkLAkxNiwJezB4N2YsIDB4ZmYsIDB4N2UsIDB4ZmYsIDB4N2QsIDB4ZmYsIDB4N2MsIDB4ZmYsIDB4NzgsIDB4NDMsIDB4MTIsIDB4YTMsIDB4ZDcsIDB4ZWMsIDB4NGQsIDB4NGV9IH0sCi17IDB4MDc4ZCwJMTYsCXsweDRmLCAweDYwLCAweGQxLCAweDgwLCAweGU4LCAweDMwLCAweDAxLCAweDA1LCAweDEyLCAweDAzLCAweDcwLCAweGMyLCAweDAxLCAweDMwLCAweDA2LCAweDBhfSB9LAoteyAweDA3OWQsCTE2LAl7MHgxMiwgMHgwOSwgMHhmYiwgMHg1MCwgMHgwMywgMHgxMiwgMHgwYSwgMHhlOCwgMHhjMiwgMHgwNiwgMHgxMiwgMHg5NiwgMHg1ZSwgMHg5MCwgMHgwMSwgMHhiZH0gfSwKLXsgMHgwN2FkLAkxNiwJezB4ZTAsIDB4NjAsIDB4MGMsIDB4MTIsIDB4OTIsIDB4MDEsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4YmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDdiZCwJMTYsCXsweDAyLCAweGFmLCAweGUwLCAweGI0LCAweDBmLCAweDAzLCAweDEyLCAweDk5LCAweGI5LCAweDEyLCAweGEwLCAweDk1LCAweGU0LCAweGZmLCAweDc0LCAweDAxfSB9LAoteyAweDA3Y2QsCTE2LAl7MHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmZSwgMHg5MCwgMHgwMSwgMHhiYywgMHhlMCwgMHg1ZSwgMHg2MH0gfSwKLXsgMHgwN2RkLAkxNiwJezB4MTQsIDB4NzQsIDB4MjgsIDB4MmYsIDB4ZjgsIDB4ZTYsIDB4ZDMsIDB4OTQsIDB4MGEsIDB4NDAsIDB4MDQsIDB4N2UsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2V9IH0sCi17IDB4MDdlZCwJMTYsCXsweDAwLCAweDhlLCAweDRiLCAweDgwLCAweDAzLCAweDc1LCAweDRiLCAweDAxLCAweDc0LCAweDY4LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwfSB9LAoteyAweDA3ZmQsCTE2LAl7MHhmNSwgMHg4MywgMHhlNSwgMHg0YiwgMHhmMCwgMHgwZiwgMHhiZiwgMHgwNCwgMHhjNSwgMHhlNSwgMHgyYywgMHhkMywgMHg5NCwgMHgwYSwgMHg0MCwgMHgwNH0gfSwKLXsgMHgwODBkLAkxNCwJezB4N2YsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4MjAsIDB4NmMsIDB4ZWYsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4OTJ9IH0sCi17IDB4MDgxYiwJMSwJezB4MjJ9IH0sCi17IDB4MDgxYywJNCwJezB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9IH0sCi17IDB4MDgyMCwJMTYsCXsweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDBlLCAweDkwLCAweDdmLCAweDkzLCAweGUwLCAweDQ0LCAweDMwLCAweGYwLCAweDkwLCAweDdmfSB9LAoteyAweDA4MzAsCTE2LAl7MHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMH0gfSwKLXsgMHgwODQwLAkxNiwJezB4NTQsIDB4ZmUsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MDh9IH0sCi17IDB4MDg1MCwJMTYsCXsweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDdmfSB9LAoteyAweDA4NjAsCTE2LAl7MHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg1MCwgMHgwZSwgMHg3ZiwgMHgwMiwgMHg3ZH0gfSwKLXsgMHgwODcwLAkxNiwJezB4ZmYsIDB4MTIsIDB4ODIsIDB4ZWEsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MDg4MCwJMTYsCXsweDAyLCAweGYwLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2fSB9LAoteyAweDA4OTAsCTE2LAl7MHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NH0gfSwKLXsgMHgwOGEwLAkxNiwJezB4YmYsIDB4ZjAsIDB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjB9IH0sCi17IDB4MDhiMCwJOCwJezB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4MjJ9IH0sCi17IDB4MDhiOCwJMTYsCXsweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyfSB9LAoteyAweDA4YzgsCTE2LAl7MHgwOSwgMHhhZSwgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg1MCwgMHgwZSwgMHg3ZiwgMHgwMiwgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MiwgMHhlYX0gfSwKLXsgMHgwOGQ4LAkxNiwJezB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4N2YsIDB4MDV9IH0sCi17IDB4MDhlOCwJMTYsCXsweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoteyAweDA4ZjgsCTE2LAl7MHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOX0gfSwKLXsgMHgwOTA4LAkxNiwJezB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4ZTV9IH0sCi17IDB4MDkxOCwJMTYsCXsweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDBlLCAweDkwLCAweDdmLCAweDkzLCAweGUwLCAweDU0LCAweGNmLCAweGYwLCAweDkwLCAweDdmLCAweDk1fSB9LAoteyAweDA5MjgsCTgsCXsweGUwLCAweDU0LCAweDNmLCAweGYwLCAweDEyLCAweDBiLCAweDAwLCAweDIyfSB9LAoteyAweDA5MzAsCTE2LAl7MHg5MCwgMHgwYSwgMHhmNCwgMHhlNCwgMHg5MywgMHg3MCwgMHg3NiwgMHg5MCwgMHg3ZiwgMHg5MywgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NH0gfSwKLXsgMHgwOTQwLAkxNiwJezB4NzQsIDB4M2MsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzYsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWV9IH0sCi17IDB4MDk1MCwJMTYsCXsweGU0LCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGNmfSB9LAoteyAweDA5NjAsCTE2LAl7MHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHgyMCwgMHg3MCwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZn0gfSwKLXsgMHgwOTcwLAkxNiwJezB4ZjUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTQsIDB4OTB9IH0sCi17IDB4MDk4MCwJMTYsCXsweDdmLCAweDk3LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDBifSB9LAoteyAweDA5OTAsCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHg3NCwgMHgxMn0gfSwKLXsgMHgwOWEwLAkxNCwJezB4ZjAsIDB4MTIsIDB4MDgsIDB4MjAsIDB4NzUsIDB4ODIsIDB4ZjQsIDB4NzUsIDB4ODMsIDB4MGEsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MDlhZSwJMTYsCXsweDhlLCAweDVkLCAweDhmLCAweDVlLCAweGU1LCAweDVlLCAweDE1LCAweDVlLCAweGFlLCAweDVkLCAweDcwLCAweDAyLCAweDE1LCAweDVkLCAweDRlLCAweDYwfSB9LAoteyAweDA5YmUsCTcsCXsweDA1LCAweDEyLCAweDA5LCAweGVhLCAweDgwLCAweGVlLCAweDIyfSB9LAoteyAweDA5YzUsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgwNywgMHgwNCwgMHhlMCwgMHg0NH0gfSwKLXsgMHgwOWQ1LAkxNiwJezB4MDIsIDB4ZjAsIDB4N2YsIDB4ZDAsIDB4N2UsIDB4MDcsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjB9IH0sCi17IDB4MDllNSwJNSwJezB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MDllYSwJMTYsCXsweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5fSB9LAoteyAweDA5ZmEsCTEsCXsweDIyfSB9LAoteyAweDA5ZmIsCTUsCXsweDEyLCAweDA4LCAweGI4LCAweGQzLCAweDIyfSB9LAoteyAweDBhMDAsCTE2LAl7MHgwMiwgMHgwYywgMHg0ZSwgMHgwMCwgMHgwMiwgMHgwYywgMHg4MSwgMHgwMCwgMHgwMiwgMHgwYywgMHg2NiwgMHgwMCwgMHgwMiwgMHgwYywgMHhjMCwgMHgwMH0gfSwKLXsgMHgwYTEwLAkxNiwJezB4MDIsIDB4MGMsIDB4YWEsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZWQsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZWUsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZWYsIDB4MDB9IH0sCi17IDB4MGEyMCwJMTYsCXsweDAyLCAweDBjLCAweGRiLCAweDAwLCAweDAyLCAweDBkLCAweGNiLCAweDAwLCAweDAyLCAweDBkLCAweDE3LCAweDAwLCAweDAyLCAweDBlLCAweDJiLCAweDAwfSB9LAoteyAweDBhMzAsCTE2LAl7MHgwMiwgMHgwZCwgMHg1MywgMHgwMCwgMHgwMiwgMHgwZSwgMHg4YiwgMHgwMCwgMHgwMiwgMHgwZCwgMHg4ZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHhlYiwgMHgwMH0gfSwKLXsgMHgwYTQwLAkxNiwJezB4MDIsIDB4MGEsIDB4ZjAsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZjIsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZjEsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZjMsIDB4MDB9IH0sCi17IDB4MGE1MCwJOCwJezB4MDIsIDB4MGYsIDB4NGIsIDB4MDAsIDB4MDIsIDB4MGYsIDB4NjEsIDB4MDB9IH0sCi17IDB4MGE1OCwJMiwJezB4OGYsIDB4NGZ9IH0sCi17IDB4MGE1YSwJMTYsCXsweGU0LCAweGY1LCAweDUwLCAweDc1LCAweDUxLCAweGZmLCAweDc1LCAweDUyLCAweDEyLCAweDc1LCAweDUzLCAweDZhLCAweGFiLCAweDUxLCAweGFhLCAweDUyfSB9LAoteyAweDBhNmEsCTE2LAl7MHhhOSwgMHg1MywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg1NCwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHg1MCwgMHgwNSwgMHg1MCwgMHhlZn0gfSwKLXsgMHgwYTdhLAkxNiwJezB4YjUsIDB4NGYsIDB4MDEsIDB4MjIsIDB4MTIsIDB4YTIsIDB4M2IsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzV9IH0sCi17IDB4MGE4YSwJMTQsCXsweDUxLCAweGZmLCAweGY1LCAweDUyLCAweDg5LCAweDUzLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDBhOTgsCTEsCXsweDIyfSB9LAoteyAweDBhOTksCTE2LAl7MHhlNCwgMHhmZSwgMHg3NSwgMHg1MSwgMHhmZiwgMHg3NSwgMHg1MiwgMHgxMiwgMHg3NSwgMHg1MywgMHgxMiwgMHhhYiwgMHg1MSwgMHhhYSwgMHg1MiwgMHhhOX0gfSwKLXsgMHgwYWE5LAkxNiwJezB4NTMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4NTQsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MmQsIDB4YWQsIDB4MDYsIDB4MGUsIDB4ZWQsIDB4YjV9IH0sCi17IDB4MGFiOSwJMTYsCXsweDA3LCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweGEyLCAweGFkLCAweDg1LCAweGYwLCAweDRmLCAweGY1LCAweDUwLCAweDYyLCAweDRmfSB9LAoteyAweDBhYzksCTE2LAl7MHhlNSwgMHg0ZiwgMHg2MiwgMHg1MCwgMHhlNSwgMHg1MCwgMHg2MiwgMHg0ZiwgMHgyOSwgMHhmZCwgMHhlNSwgMHg0ZiwgMHgzYSwgMHhhOSwgMHgwNSwgMHg3NX0gfSwKLXsgMHgwYWQ5LAkxNCwJezB4NTEsIDB4ZmYsIDB4ZjUsIDB4NTIsIDB4ODksIDB4NTMsIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MGFlNywJMSwJezB4MjJ9IH0sCi17IDB4MGFlOCwJNSwJezB4MTIsIDB4MDgsIDB4MjAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGFlZCwJMSwJezB4MzJ9IH0sCi17IDB4MGFlZSwJMSwJezB4MzJ9IH0sCi17IDB4MGFlZiwJMSwJezB4MzJ9IH0sCi17IDB4MGFmMCwJMSwJezB4MzJ9IH0sCi17IDB4MGFmMSwJMSwJezB4MzJ9IH0sCi17IDB4MGFmMiwJMSwJezB4MzJ9IH0sCi17IDB4MGFmMywJMSwJezB4MzJ9IH0sCi17IDB4MGFmNCwJMywJezB4MDAsIDB4MDQsIDB4MDd9IH0sCi17IDB4MGIwMCwJOSwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4NzR9IH0sCi17IDB4MGI3ZCwJMTYsCXsweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfSB9LAoteyAweDBiOGQsCTE2LAl7MHg1MywgMHg4ZSwgMHhmNywgMHhlNSwgMHg4OSwgMHg1NCwgMHhmMSwgMHg0NCwgMHgwMSwgMHhmNSwgMHg4OSwgMHg3NSwgMHg4YywgMHhiMSwgMHhkMiwgMHhhOX0gfSwKLXsgMHgwYjlkLAkxNiwJezB4NzUsIDB4OTgsIDB4NDAsIDB4NzUsIDB4Y2IsIDB4ZmYsIDB4NzUsIDB4Y2EsIDB4ZjMsIDB4NzUsIDB4YzgsIDB4MzQsIDB4ZTQsIDB4ZmYsIDB4N2YsIDB4MDV9IH0sCi17IDB4MGJhZCwJNywJezB4NzgsIDB4MjgsIDB4ZTQsIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZmN9IH0sCi17IDB4MGJiNCwJMSwJezB4MjJ9IH0sCi17IDB4MGJiNSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDAwLCAweGMwLCAweDAwLCAweGMwLCAweDA2LCAweGMwfSB9LAoteyAweDBiYzUsCTEsCXsweDA3fSB9LAoteyAweDBiYzYsCTE2LAl7MHgzMCwgMHgwNCwgMHgxNiwgMHg3NSwgMHg4YywgMHhmOCwgMHg3NSwgMHg4YSwgMHgzMCwgMHg3ZiwgMHgyZiwgMHhhZSwgMHgwNywgMHgxZiwgMHhlZSwgMHg2MH0gfSwKLXsgMHgwYmQ2LAkxNiwJezB4M2MsIDB4OTAsIDB4MjAsIDB4MDAsIDB4NzQsIDB4NTUsIDB4ZjAsIDB4ODAsIDB4ZjIsIDB4NzUsIDB4OGMsIDB4YjEsIDB4N2YsIDB4MjgsIDB4ZWYsIDB4ZDN9IH0sCi17IDB4MGJlNiwJMTYsCXsweDk0LCAweDJjLCAweDUwLCAweDA5LCAweGE4LCAweDA3LCAweGU2LCAweDYwLCAweDAxLCAweDE2LCAweDBmLCAweDgwLCAweGYxLCAweDkwLCAweDAzLCAweDAwfSB9LAoteyAweDBiZjYsCTE2LAl7MHhlMCwgMHg2MCwgMHgwMiwgMHgxNCwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwZSwgMHg5MH0gfSwKLXsgMHgwYzA2LAkxMywJezB4MDEsIDB4YzEsIDB4ZTAsIDB4MjQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4MzQsIDB4ZmYsIDB4ZjB9IH0sCi17IDB4MGMxMywJMTUsCXsweGQwLCAweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDAwLCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjMjIsCTE2LAl7MHhkMiwgMHgwMCwgMHg3NSwgMHg4ZSwgMHgxMCwgMHgxMiwgMHgwOSwgMHgzMCwgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwOCwgMHg5MH0gfSwKLXsgMHgwYzMyLAkxNiwJezB4N2YsIDB4OTIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZjAsIDB4MTIsIDB4ODAsIDB4MDAsIDB4MTJ9IH0sCi17IDB4MGM0MiwJMTIsCXsweDBmLCAweDdkLCAweDEyLCAweDk0LCAweGY3LCAweDEyLCAweDFiLCAweDBjLCAweDEyLCAweDBiLCAweDhkLCAweDIyfSB9LAoteyAweDBjNGUsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMX0gfSwKLXsgMHgwYzVlLAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwYzY2LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGM3NiwJMTEsCXsweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjODEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwYzkxLAkxNiwJezB4N2YsIDB4ZDgsIDB4ZTAsIDB4NzAsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4NzAsIDB4MDcsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDMsIDB4NzV9IH0sCi17IDB4MGNhMSwJOSwJezB4MmMsIDB4MTQsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGNhYSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDEwLCAweGYwLCAweGQwfSB9LAoteyAweDBjYmEsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjYzAsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHgzMCwgMHgwMiwgMHgwMiwgMHhkMiwgMHgwNiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwY2QwLAkxMSwJezB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGNkYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBjZWIsCTE2LAl7MHhhOSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMCwgMHgxMywgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMCwgMHgwNywgMHg5MCwgMHgyMH0gfSwKLXsgMHgwY2ZiLAkxNiwJezB4MDQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDEsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDN9IH0sCi17IDB4MGQwYiwJMTIsCXsweDc1LCAweDJjLCAweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkMTcsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwZDI3LAkxNiwJezB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTEsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTEsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCi17IDB4MGQzNywJMTYsCXsweDBjLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoteyAweDBkNDcsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDUzLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGQ2MywJMTYsCXsweGE5LCAweDc0LCAweDA4LCAweGYwLCAweGU1LCAweDM0LCAweDMwLCAweGUyLCAweDEzLCAweGU1LCAweDMyLCAweDMwLCAweGUyLCAweDA3LCAweDkwLCAweDIwfSB9LAoteyAweDBkNzMsCTE2LAl7MHgxNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxMSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwM30gfSwKLXsgMHgwZDgzLAkxMiwJezB4NzUsIDB4MmMsIDB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ4ZiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBkOWYsCTE2LAl7MHhhOSwgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMywgMHgxMywgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMywgMHgwNywgMHg5MCwgMHgyMH0gfSwKLXsgMHgwZGFmLAkxNiwJezB4MWMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTksIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDN9IH0sCi17IDB4MGRiZiwJMTIsCXsweDc1LCAweDJjLCAweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkY2IsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwZGRiLAkxNiwJezB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MjB9IH0sCi17IDB4MGRlYiwJMTYsCXsweGUwLCAweDA2LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDgwLCAweDIyLCAweGU1LCAweDMxLCAweDMwLCAweGUwLCAweDBhLCAweDkwLCAweDdmLCAweGM3fSB9LAoteyAweDBkZmIsCTE2LAl7MHhlMCwgMHg5MCwgMHgwMiwgMHhmOCwgMHhmMCwgMHg4MCwgMHgxMywgMHhlNSwgMHgyMiwgMHgzMCwgMHhlMCwgMHgwNywgMHg5MCwgMHgyMCwgMHgwNCwgMHhlMH0gfSwKLXsgMHgwZTBiLAkxNiwJezB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDEsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmN9IH0sCi17IDB4MGUxYiwJMTYsCXsweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBlMmIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwZTNiLAkxNiwJezB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MjB9IH0sCi17IDB4MGU0YiwJMTYsCXsweGUxLCAweDA2LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDgwLCAweDIyLCAweGU1LCAweDMxLCAweDMwLCAweGUxLCAweDBhLCAweDkwLCAweDdmLCAweGM5fSB9LAoteyAweDBlNWIsCTE2LAl7MHhlMCwgMHg5MCwgMHgwMiwgMHhmOSwgMHhmMCwgMHg4MCwgMHgxMywgMHhlNSwgMHgyMiwgMHgzMCwgMHhlMSwgMHgwNywgMHg5MCwgMHgyMCwgMHgwYywgMHhlMH0gfSwKLXsgMHgwZTZiLAkxNiwJezB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDksIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmN9IH0sCi17IDB4MGU3YiwJMTYsCXsweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBlOGIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwZTliLAkxNiwJezB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MjB9IH0sCi17IDB4MGVhYiwJMTYsCXsweGUyLCAweDA2LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDIyLCAweGU1LCAweDMxLCAweDMwLCAweGUyLCAweDBhLCAweDkwLCAweDdmLCAweGNifSB9LAoteyAweDBlYmIsCTE2LAl7MHhlMCwgMHg5MCwgMHgwMiwgMHhmYSwgMHhmMCwgMHg4MCwgMHgxMywgMHhlNSwgMHgyMiwgMHgzMCwgMHhlMiwgMHgwNywgMHg5MCwgMHgyMCwgMHgxNCwgMHhlMH0gfSwKLXsgMHgwZWNiLAkxNiwJezB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmN9IH0sCi17IDB4MGVkYiwJMTYsCXsweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBlZWIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwZWZiLAkxNiwJezB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MjB9IH0sCi17IDB4MGYwYiwJMTYsCXsweGUzLCAweDA2LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweDgwLCAweDIyLCAweGU1LCAweDMxLCAweDMwLCAweGUzLCAweDBhLCAweDkwLCAweDdmLCAweGNkfSB9LAoteyAweDBmMWIsCTE2LAl7MHhlMCwgMHg5MCwgMHgwMiwgMHhmYiwgMHhmMCwgMHg4MCwgMHgxMywgMHhlNSwgMHgyMiwgMHgzMCwgMHhlMywgMHgwNywgMHg5MCwgMHgyMCwgMHgxYywgMHhlMH0gfSwKLXsgMHgwZjJiLAkxNiwJezB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTksIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmN9IH0sCi17IDB4MGYzYiwJMTYsCXsweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBmNGIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHg4MCwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwZjViLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZjYxLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MGY3MSwJMTIsCXsweDAxLCAweGJkLCAweDc0LCAweGZmLCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBmN2QsCTE2LAl7MHg5MCwgMHgwMSwgMHgyMCwgMHgxMiwgMHhhMywgMHhmYSwgMHgwMCwgMHgwMCwgMHgyNSwgMHg4MCwgMHg5MCwgMHgwMSwgMHgyNCwgMHg3NCwgMHgwOCwgMHhmMH0gfSwKLXsgMHgwZjhkLAkxNiwJezB4YTMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NmUsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4YTMsIDB4NzR9IH0sCi17IDB4MGY5ZCwJMTYsCXsweDExLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZmfSB9LAoteyAweDBmYWQsCTE2LAl7MHgwNCwgMHhhMywgMHhmMCwgMHhlZiwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmOSwgMHg3NCwgMHgwMywgMHgzNSwgMHhmMCwgMHhhOH0gfSwKLXsgMHgwZmJkLAkxNiwJezB4MDEsIDB4ZmMsIDB4N2QsIDB4MDEsIDB4N2IsIDB4MDEsIDB4N2EsIDB4MDEsIDB4NzksIDB4MWYsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MGQsIDB4MTIsIDB4YTJ9IH0sCi17IDB4MGZjZCwJMTYsCXsweDEyLCAweDdlLCAweDAxLCAweDdmLCAweDFmLCAweDEyLCAweDg3LCAweGE2LCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweDA0LCAweGYwLCAweGUwLCAweGMzfSB9LAoteyAweDBmZGQsCTE2LAl7MHg5NCwgMHgwNCwgMHg0MCwgMHhjNywgMHhlNCwgMHhmNSwgMHgyNywgMHg5MCwgMHgwMSwgMHgxZSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZn0gfSwKLXsgMHgwZmVkLAkxNiwJezB4YzMsIDB4OTQsIDB4MDQsIDB4NTAsIDB4MWEsIDB4NzQsIDB4ZjgsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTR9IH0sCi17IDB4MGZmZCwJMTYsCXsweGYwLCAweDc0LCAweDIzLCAweDJmLCAweGY4LCAweGU0LCAweGY2LCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweDA0LCAweGYwLCAweDgwLCAweGRjLCAweGU0fSB9LAoteyAweDEwMGQsCTE2LAl7MHhmNSwgMHgzNCwgMHhlNSwgMHhjMCwgMHg2MCwgMHgyZiwgMHg5MCwgMHgwMSwgMHgxZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMH0gfSwKLXsgMHgxMDFkLAkxNiwJezB4ZmYsIDB4ZDMsIDB4OTQsIDB4MDQsIDB4NTAsIDB4MWYsIDB4ZWYsIDB4MTQsIDB4ZmYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDJ9IH0sCi17IDB4MTAyZCwJMTYsCXsweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDQyLCAweDM0LCAweDdlLCAweDAxLCAweDdmLCAweDFlLCAweDEyLCAweDg0LCAweDQxLCAweDkwLCAweDAxLCAweDFlfSB9LAoteyAweDEwM2QsCTE2LAl7MHhlMCwgMHgwNCwgMHhmMCwgMHg4MCwgMHhkNywgMHhlNCwgMHhmNSwgMHgzZSwgMHhmNSwgMHgyMiwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzMiwgMHg5MCwgMHgwMX0gfSwKLXsgMHgxMDRkLAkxNiwJezB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4MTA1ZCwJMTYsCXsweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGYwLCAweGZlLCAweDc0LCAweGM1LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAxfSB9LAoteyAweDEwNmQsCTE2LAl7MHhmNSwgMHg4MywgMHhlZSwgMHhmMCwgMHg3NCwgMHgzYSwgMHgyZiwgMHhmOCwgMHhhNiwgMHgwNiwgMHg3NCwgMHgzNiwgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNn0gfSwKLXsgMHgxMDdkLAkxNiwJezB4NzQsIDB4MmQsIDB4MmYsIDB4ZjgsIDB4ZTQsIDB4ZjYsIDB4NzQsIDB4ZmMsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MTA4ZCwJMTYsCXsweGU0LCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweDA0LCAweGYwLCAweGUwLCAweGI0LCAweDA0LCAweGI2LCAweDkwLCAweDIwLCAweDYwLCAweGUwfSB9LAoteyAweDEwOWQsCTQsCXsweDU0LCAweDBmLCAweGY1LCAweDRlfSB9LAoteyAweDEwYTEsCTE2LAl7MHg3MCwgMHgwMywgMHgwMiwgMHgxMSwgMHgyNiwgMHhlNCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZiwgMHhjM30gfSwKLXsgMHgxMGIxLAkxNiwJezB4OTQsIDB4MDQsIDB4NTAsIDB4ZTQsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NTV9IH0sCi17IDB4MTBjMSwJMTYsCXsweDRlLCAweDYwLCAweDVhLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyfSB9LAoteyAweDEwZDEsCTE2LAl7MHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgxMGUxLAkxNiwJezB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4MTBmMSwJMTYsCXsweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGFmLCAweDA2LCAweGVlLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1fSB9LAoteyAweDExMDEsCTE2LAl7MHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMH0gfSwKLXsgMHgxMTExLAkxNiwJezB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDYsIDB4MTIsIDB4ODMsIDB4ZGYsIDB4OTAsIDB4MDEsIDB4MWV9IH0sCi17IDB4MTEyMSwJNiwJezB4ZTAsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4ODUsIDB4MjJ9IH0sCi17IDB4MTEyNywJMiwJezB4YWMsIDB4MDd9IH0sCi17IDB4MTEyOSwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGVjLCAweDI1LCAweGUwLCAweDQ0LCAweDQxLCAweDkwLCAweDdmLCAweGE2LCAweGYwfSB9LAoteyAweDExMzksCTE2LAl7MHg3YiwgMHgzYywgMHhhZiwgMHgwMywgMHgxYiwgMHhlZiwgMHg3MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgxMTQ5LAkxNiwJezB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmQsIDB4N2QsIDB4MzIsIDB4YWYsIDB4MDUsIDB4MWQsIDB4ZWYsIDB4NjAsIDB4ZDQsIDB4ODAsIDB4ZjgsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MTE1OSwJMTYsCXsweGE1LCAweGUwLCAweGZkLCAweDMwLCAweGUwLCAweGRjLCAweDIwLCAweGUxLCAweDA5LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdlLCAweGZmLCAweDdmfSB9LAoteyAweDExNjksCTE2LAl7MHhmOSwgMHgyMiwgMHhlZCwgMHgzMCwgMHhlMiwgMHgwYywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHhmZiwgMHg3Zn0gfSwKLXsgMHgxMTc5LAkxNiwJezB4ZmEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmQsIDB4N2IsIDB4MWV9IH0sCi17IDB4MTE4OSwJMTYsCXsweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDcwLCAweDE2LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE2fSB9LAoteyAweDExOTksCTE2LAl7MHhlMCwgMHhmZCwgMHg3ZCwgMHgzMiwgMHhhZiwgMHgwNSwgMHgxZCwgMHhlZiwgMHg2MCwgMHg4NiwgMHg4MCwgMHhmOCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMH0gfSwKLXsgMHgxMWE5LAkxNiwJezB4ZmQsIDB4MjAsIDB4ZTAsIDB4ZGMsIDB4N2IsIDB4M2MsIDB4YWYsIDB4MDMsIDB4MWIsIDB4ZWYsIDB4NzAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTB9IH0sCi17IDB4MTFiOSwJMTYsCXsweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZkLCAweDdkLCAweDMyLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDcwLCAweDAzfSB9LAoteyAweDExYzksCTE2LAl7MHgwMiwgMHgxMSwgMHgyOSwgMHg4MCwgMHhmNSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMCwgMHhkOSwgMHgzMCwgMHhlMiwgMHgwOX0gfSwKLXsgMHgxMWQ5LAkxNiwJezB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmEsIDB4MjIsIDB4YzIsIDB4YWYsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MTFlOSwJMTIsCXsweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZkLCAweGQyLCAweGFmLCAweGZmLCAweDdlLCAweDAwfSB9LAoteyAweDExZjUsCTEsCXsweDIyfSB9LAoteyAweDEyMDAsCTE2LAl7MHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHhmZiwgMHg0MCwgMHgxMCwgMHgwNywgMHgwMSwgMHg4MCwgMHg0MiwgMHgwMCwgMHgwMSwgMHgwMn0gfSwKLXsgMHgxMjEwLAkxNiwJezB4MDMsIDB4MDEsIDB4MDksIDB4MDIsIDB4NTgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDQsIDB4ODAsIDB4M2MsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGF9IH0sCi17IDB4MTIyMCwJMTYsCXsweGZmLCAweGZmLCAweGZmLCAweDA1LCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwfSB9LAoteyAweDEyMzAsCTE2LAl7MHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgxMjQwLAkxNiwJezB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDV9IH0sCi17IDB4MTI1MCwJMTYsCXsweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDg3LCAweDAyfSB9LAoteyAweDEyNjAsCTE2LAl7MHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgyNCwgMHgwM30gfSwKLXsgMHgxMjcwLAkxNiwJezB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4MjAsIDB4MDB9IH0sCi17IDB4MTI4MCwJMTYsCXsweDU0LCAweDAwLCAweDY1LCAweDAwLCAweDYzLCAweDAwLCAweDY4LCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwfSB9LAoteyAweDEyOTAsCTE2LAl7MHgyZSwgMHgwMCwgMHgxOCwgMHgwMywgMHg1NywgMHgwMCwgMHg2OCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg0OCwgMHgwMH0gfSwKLXsgMHgxMmEwLAkxNiwJezB4NDUsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NTQsIDB4MDAsIDB4MmQsIDB4MDAsIDB4MzQsIDB4MDAsIDB4MWEsIDB4MDMsIDB4NTgsIDB4MDAsIDB4NTgsIDB4MDB9IH0sCi17IDB4MTJiMCwJMTYsCXsweDJkLCAweDAwLCAweDU4LCAweDAwLCAweDU4LCAweDAwLCAweDJkLCAweDAwLCAweDU4LCAweDAwLCAweDU4LCAweDAwLCAweDU4LCAweDAwLCAweDU4LCAweDAwfSB9LAoteyAweDEyYzAsCTE2LAl7MHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHgyYSwgMHgwMywgMHg0MywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2OSwgMHgwMH0gfSwKLXsgMHgxMmQwLAkxNiwJezB4NjcsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDB9IH0sCi17IDB4MTJlMCwJMTYsCXsweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwLCAweDIyLCAweDAzfSB9LAoteyAweDEyZjAsCTE2LAl7MHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2MywgMHgwMH0gfSwKLXsgMHgxMzAwLAkxNiwJezB4NjUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDB9IH0sCi17IDB4MTMxMCwJMiwJezB4MDAsIDB4MDB9IH0sCi17IDB4MTMxMiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweGMwLCAweGQwfSB9LAoteyAweDEzMjIsCTE2LAl7MHg3NSwgMHg4NiwgMHgwMCwgMHg3NSwgMHhkMCwgMHgxOCwgMHg5MCwgMHgyMCwgMHg2MCwgMHhlMCwgMHg1NCwgMHgwZiwgMHhmNSwgMHhmMCwgMHg3MCwgMHgxMX0gfSwKLXsgMHgxMzMyLAkxNiwJezB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTB9IH0sCi17IDB4MTM0MiwJMTYsCXsweDMyLCAweDc1LCAweDg2LCAweDAwLCAweDEwLCAweGYwLCAweDBiLCAweDEwLCAweGYxLCAweDEyLCAweDEwLCAweGYyLCAweDE5LCAweDEwLCAweGYzLCAweDIwfSB9LAoteyAweDEzNTIsCTE2LAl7MHg4MCwgMHhkNCwgMHhlNSwgMHgyOCwgMHg3MCwgMHgwMywgMHg3NSwgMHgyOCwgMHgxNCwgMHgwMiwgMHgxMywgMHg3YywgMHhlNSwgMHgyOSwgMHg3MCwgMHgwM30gfSwKLXsgMHgxMzYyLAkxNiwJezB4NzUsIDB4MjksIDB4MTQsIDB4MDIsIDB4MTUsIDB4MGQsIDB4ZTUsIDB4MmEsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmEsIDB4MTQsIDB4MDIsIDB4MTYsIDB4OWV9IH0sCi17IDB4MTM3MiwJMTYsCXsweGU1LCAweDJiLCAweDcwLCAweDAzLCAweDc1LCAweDJiLCAweDE0LCAweDAyLCAweDE4LCAweDJmLCAweDkwLCAweDIwLCAweDAyLCAweGUwLCAweDU0LCAweDNmfSB9LAoteyAweDEzODIsCTE2LAl7MHgyMCwgMHhlMiwgMHgzYSwgMHgyMCwgMHhlMSwgMHgwYiwgMHgyMCwgMHhlNCwgMHgwYiwgMHgyMCwgMHhlNSwgMHgxNCwgMHg2MCwgMHgwOSwgMHgwMiwgMHgxM30gfSwKLXsgMHgxMzkyLAkxNiwJezB4NDMsIDB4MDIsIDB4MTQsIDB4NjUsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4MDIsIDB4MTMsIDB4NDN9IH0sCi17IDB4MTNhMiwJMTYsCXsweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDQzLCAweDJkLCAweDAxLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDgyLCAweGY4LCAweDQzLCAweDgyLCAweDA1fSB9LAoteyAweDEzYjIsCTE2LAl7MHhlMCwgMHg0MiwgMHgzNiwgMHg1MywgMHg4MiwgMHhmYiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHgzMCwgMHhlMSwgMHgwMn0gfSwKLXsgMHgxM2MyLAkxNiwJezB4ODAsIDB4ZTgsIDB4ZjUsIDB4ODUsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTAsIDB4MGEsIDB4NTMsIDB4ODIsIDB4ZjgsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTB9IH0sCi17IDB4MTNkMiwJMTYsCXsweDU0LCAweGZlLCAweGYwLCAweGU1LCAweDg1LCAweDIwLCAweGUzLCAweDU2LCAweDkwLCAweDIwLCAweDUwLCAweDc0LCAweDAwLCAweGYwLCAweDkwLCAweDIwfSB9LAoteyAweDEzZTIsCTE2LAl7MHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4Nn0gfSwKLXsgMHgxM2YyLAkxNiwJezB4OTAsIDB4N2UsIDB4ODAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MTQwMiwJMTYsCXsweGU1LCAweGU1LCAweDNmLCAweGZkLCAweDAzLCAweDAzLCAweDAzLCAweGZlLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwfSB9LAoteyAweDE0MTIsCTE2LAl7MHhkZSwgMHhmNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgxNDIyLAkxNiwJezB4N2YsIDB4YjcsIDB4ZWQsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDEsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4N2YsIDB4NDB9IH0sCi17IDB4MTQzMiwJMTYsCXsweDkwLCAweDdlLCAweDgwLCAweDA1LCAweDg2LCAweDkwLCAweDIwLCAweDAwLCAweGU1LCAweDg0LCAweGZlLCAweDI0LCAweDA1LCAweGZkLCAweDhkLCAweDg0fSB9LAoteyAweDE0NDIsCTE2LAl7MHhlMCwgMHg4ZSwgMHg4NCwgMHgzMCwgMHhlMCwgMHgwOSwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhlZiwgMHgwNX0gfSwKLXsgMHgxNDUyLAkxNiwJezB4ODYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjB9IH0sCi17IDB4MTQ2MiwJMTYsCXsweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDJkLCAweGZhLCAweGU1LCAweDIzLCAweDYwLCAweDA4LCAweDc1LCAweDIzLCAweDAwLCAweGQyLCAweGU3LCAweGZlfSB9LAoteyAweDE0NzIsCTE2LAl7MHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxNCwgMHhmZiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NH0gfSwKLXsgMHgxNDgyLAkxNiwJezB4MDAsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MTQ5MiwJMTYsCXsweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdlLCAweDQwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwfSB9LAoteyAweDE0YTIsCTE2LAl7MHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlZSwgMHgzMCwgMHhlNywgMHgwOCwgMHgwNSwgMHg4NiwgMHhlMCwgMHgyNCwgMHgzOCwgMHhmMCwgMHgwNX0gfSwKLXsgMHgxNGIyLAkxNiwJezB4ODYsIDB4ZWUsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NTQsIDB4MDcsIDB4ZmIsIDB4ZWUsIDB4NTQsIDB4NzgsIDB4NjAsIDB4MzAsIDB4MDMsIDB4MDMsIDB4MDN9IH0sCi17IDB4MTRjMiwJMTYsCXsweDMwLCAweGUzLCAweDA0LCAweDc0LCAweDA3LCAweDdiLCAweDA4LCAweGZkLCAweGZjLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwfSB9LAoteyAweDE0ZDIsCTE2LAl7MHhlMCwgMHhkZCwgMHhmNiwgMHhlYiwgMHhmZSwgMHg2MCwgMHgxOSwgMHhlYywgMHg2NCwgMHgwNywgMHg3MCwgMHgxMSwgMHg4YiwgMHgyMywgMHg5MCwgMHg3Zn0gfSwKLXsgMHgxNGUyLAkxNiwJezB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4ODAsIDB4MWIsIDB4ZTAsIDB4ZGUsIDB4ZmR9IH0sCi17IDB4MTRmMiwJMTYsCXsweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDkwLCAweDIwLCAweDAxfSB9LAoteyAweDE1MDIsCTE2LAl7MHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg5MCwgMHgyMCwgMHgwYSwgMHhlMCwgMHg1NH0gfSwKLXsgMHgxNTEyLAkxNiwJezB4M2YsIDB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTUsIDB4MTQsIDB4NjAsIDB4MDksIDB4MDJ9IH0sCi17IDB4MTUyMiwJMTYsCXsweDEzLCAweDQzLCAweDAyLCAweDE1LCAweGY2LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweGY1LCAweDNiLCAweDAyLCAweDEzfSB9LAoteyAweDE1MzIsCTE2LAl7MHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgyZSwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4Mn0gfSwKLXsgMHgxNTQyLAkxNiwJezB4MDUsIDB4ZTAsIDB4NDIsIDB4MzcsIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4MzAsIDB4ZTF9IH0sCi17IDB4MTU1MiwJMTYsCXsweDAyLCAweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUxLCAweDBhLCAweDUzLCAweDgyLCAweGY4LCAweDQzLCAweDgyLCAweDA0fSB9LAoteyAweDE1NjIsCTE2LAl7MHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MH0gfSwKLXsgMHgxNTcyLAkxNiwJezB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTMsIDB4MDV9IH0sCi17IDB4MTU4MiwJMTYsCXsweDg2LCAweDkwLCAweDdlLCAweDAwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwLCAweDA1LCAweDg2LCAweDkwfSB9LAoteyAweDE1OTIsCTE2LAl7MHg3ZiwgMHhlNSwgMHhlNSwgMHg0MCwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKLXsgMHgxNWEyLAkxNiwJezB4ZjAsIDB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjB9IH0sCi17IDB4MTViMiwJMTYsCXsweDkwLCAweDdmLCAweGI5LCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDdmfSB9LAoteyAweDE1YzIsCTE2LAl7MHg0MCwgMHg5MCwgMHg3ZSwgMHgwMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgwOCwgMHhlNSwgMHg4NCwgMHhmZSwgMHgyNCwgMHgwNSwgMHhmZCwgMHg4ZH0gfSwKLXsgMHgxNWQyLAkxNiwJezB4ODQsIDB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZWZ9IH0sCi17IDB4MTVlMiwJMTYsCXsweDA1LCAweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweDA1LCAweDg2LCAweGEzLCAweGUwLCAweDU0LCAweGZlfSB9LAoteyAweDE1ZjIsCTE2LAl7MHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgyZSwgMHhmYSwgMHhlNSwgMHgyNCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyNCwgMHgwMCwgMHhkMiwgMHhlN30gfSwKLXsgMHgxNjAyLAkxNiwJezB4ZmUsIDB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTYsIDB4OTAsIDB4OTAsIDB4MjAsIDB4NTB9IH0sCi17IDB4MTYxMiwJMTYsCXsweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwfSB9LAoteyAweDE2MjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NH0gfSwKLXsgMHgxNjMyLAkxNiwJezB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4MjQsIDB4MzgsIDB4ZjB9IH0sCi17IDB4MTY0MiwJMTYsCXsweDA1LCAweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4LCAweDYwLCAweDMwLCAweDAzLCAweDAzfSB9LAoteyAweDE2NTIsCTE2LAl7MHgwMywgMHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMH0gfSwKLXsgMHgxNjYyLAkxNiwJezB4ZTAsIDB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzAsIDB4MTEsIDB4OGIsIDB4MjQsIDB4OTB9IH0sCi17IDB4MTY3MiwJMTYsCXsweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDgwLCAweDFiLCAweGUwLCAweGRlfSB9LAoteyAweDE2ODIsCTE0LAl7MHhmZCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMH0gfSwKLXsgMHgxNjkwLAkxNiwJezB4OTAsIDB4MjAsIDB4MDksIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4OTAsIDB4MjB9IH0sCi17IDB4MTZhMCwJMTYsCXsweDEyLCAweGUwLCAweDU0LCAweDNmLCAweDIwLCAweGUyLCAweDNhLCAweDIwLCAweGUxLCAweDBiLCAweDIwLCAweGU0LCAweDBiLCAweDIwLCAweGU1LCAweDE0fSB9LAoteyAweDE2YjAsCTE2LAl7MHg2MCwgMHgwOSwgMHgwMiwgMHgxMywgMHg0MywgMHgwMiwgMHgxNywgMHg4NywgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHhmNX0gfSwKLXsgMHgxNmMwLAkxNiwJezB4M2MsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NDMsIDB4MmYsIDB4MDEsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4ODJ9IH0sCi17IDB4MTZkMCwJMTYsCXsweGY4LCAweDQzLCAweDgyLCAweDA1LCAweGUwLCAweDQyLCAweDM4LCAweDUzLCAweDgyLCAweGZiLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDAyLCAweDEzfSB9LAoteyAweDE2ZTAsCTE2LAl7MHg0MywgMHgzMCwgMHhlMSwgMHgwMiwgMHg4MCwgMHhlOCwgMHhmNSwgMHg4NSwgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMiwgMHgwYSwgMHg1MywgMHg4MiwgMHhmOH0gfSwKLXsgMHgxNmYwLAkxNiwJezB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTUsIDB4ODUsIDB4MjAsIDB4ZTMsIDB4NTYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzR9IH0sCi17IDB4MTcwMCwJMTYsCXsweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwfSB9LAoteyAweDE3MTAsCTE2LAl7MHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHg4MCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMH0gfSwKLXsgMHgxNzIwLAkxNiwJezB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZTUsIDB4NDEsIDB4ZmQsIDB4MDMsIDB4MDMsIDB4MDMsIDB4ZmUsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjB9IH0sCi17IDB4MTczMCwJMTYsCXsweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGRlLCAweGY2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4fSB9LAoteyAweDE3NDAsCTE2LAl7MHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhlZCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxMSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMn0gfSwKLXsgMHgxNzUwLAkxNiwJezB4MTMsIDB4NDMsIDB4N2YsIDB4NDAsIDB4OTAsIDB4N2QsIDB4ODAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MjAsIDB4MTAsIDB4ZTUsIDB4ODQsIDB4ZmUsIDB4MjR9IH0sCi17IDB4MTc2MCwJMTYsCXsweDA1LCAweGZkLCAweDhkLCAweDg0LCAweGUwLCAweDhlLCAweDg0LCAweDMwLCAweGUwLCAweDA5LCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fSB9LAoteyAweDE3NzAsCTE2LAl7MHg4NiwgMHhkZiwgMHhlZiwgMHgwNSwgMHg4NiwgMHhjMywgMHg3NCwgMHg0MCwgMHg5ZiwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhhM30gfSwKLXsgMHgxNzgwLAkxNiwJezB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4MmYsIDB4ZmEsIDB4ZTUsIDB4MjUsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MjV9IH0sCi17IDB4MTc5MCwJMTYsCXsweDAwLCAweGQyLCAweGU3LCAweGZlLCAweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDE4LCAweDIxfSB9LAoteyAweDE3YTAsCTE2LAl7MHg5MCwgMHgyMCwgMHg1MCwgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMH0gfSwKLXsgMHgxN2IwLAkxNiwJezB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4NDAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjB9IH0sCi17IDB4MTdjMCwJMTYsCXsweGEzLCAweGU1LCAweDg0LCAweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGVlLCAweDMwLCAweGU3LCAweDA4LCAweDA1LCAweDg2LCAweGUwfSB9LAoteyAweDE3ZDAsCTE2LAl7MHgyNCwgMHgzOCwgMHhmMCwgMHgwNSwgMHg4NiwgMHhlZSwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg1NCwgMHgwNywgMHhmYiwgMHhlZSwgMHg1NCwgMHg3OCwgMHg2MH0gfSwKLXsgMHgxN2UwLAkxNiwJezB4MzAsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MzAsIDB4ZTMsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2IsIDB4MDgsIDB4ZmQsIDB4ZmMsIDB4ZTAsIDB4ZTAsIDB4ZTB9IH0sCi17IDB4MTdmMCwJMTYsCXsweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGRkLCAweGY2LCAweGViLCAweGZlLCAweDYwLCAweDE5LCAweGVjLCAweDY0LCAweDA3LCAweDcwLCAweDExfSB9LAoteyAweDE4MDAsCTE2LAl7MHg4YiwgMHgyNSwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg4MH0gfSwKLXsgMHgxODEwLAkxNiwJezB4MWIsIDB4ZTAsIDB4ZGUsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDB9IH0sCi17IDB4MTgyMCwJMTYsCXsweGYwLCAweDkwLCAweDIwLCAweDExLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDkwfSB9LAoteyAweDE4MzAsCTE2LAl7MHgyMCwgMHgxYSwgMHhlMCwgMHg1NCwgMHgzZiwgMHgyMCwgMHhlMiwgMHgzYSwgMHgyMCwgMHhlMSwgMHgwYiwgMHgyMCwgMHhlNCwgMHgwYiwgMHgyMCwgMHhlNX0gfSwKLXsgMHgxODQwLAkxNiwJezB4MTQsIDB4NjAsIDB4MDksIDB4MDIsIDB4MTMsIDB4NDMsIDB4MDIsIDB4MTksIDB4MTgsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTB9IH0sCi17IDB4MTg1MCwJMTYsCXsweGY1LCAweDNkLCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDQzLCAweDMwLCAweDAxLCAweDAyLCAweDEzLCAweDQzLCAweDUzfSB9LAoteyAweDE4NjAsCTE2LAl7MHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNSwgMHhlMCwgMHg0MiwgMHgzOSwgMHg1MywgMHg4MiwgMHhmYiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHgwMn0gfSwKLXsgMHgxODcwLAkxNiwJezB4MTMsIDB4NDMsIDB4MzAsIDB4ZTEsIDB4MDIsIDB4ODAsIDB4ZTgsIDB4ZjUsIDB4ODUsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTMsIDB4MGEsIDB4NTMsIDB4ODJ9IH0sCi17IDB4MTg4MCwJMTYsCXsweGY4LCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU1LCAweDg1LCAweDIwLCAweGUzLCAweDU2LCAweDkwLCAweDIwLCAweDUwfSB9LAoteyAweDE4OTAsCTE2LAl7MHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMH0gfSwKLXsgMHgxOGEwLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODR9IH0sCi17IDB4MThiMCwJMTYsCXsweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGU1LCAweDQyLCAweGZkLCAweDAzLCAweDAzLCAweDAzLCAweGZlLCAweGYwLCAweGYwLCAweGYwfSB9LAoteyAweDE4YzAsCTE2LAl7MHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhkZSwgMHhmNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMH0gfSwKLXsgMHgxOGQwLAkxNiwJezB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmQsIDB4ZWQsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTksIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjB9IH0sCi17IDB4MThlMCwJMTYsCXsweDAyLCAweDEzLCAweDQzLCAweDdmLCAweDQwLCAweDkwLCAweDdkLCAweDAwLCAweDA1LCAweDg2LCAweDkwLCAweDIwLCAweDE4LCAweGU1LCAweDg0LCAweGZlfSB9LAoteyAweDE4ZjAsCTE2LAl7MHgyNCwgMHgwNSwgMHhmZCwgMHg4ZCwgMHg4NCwgMHhlMCwgMHg4ZSwgMHg4NCwgMHgzMCwgMHhlMCwgMHgwOSwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhM30gfSwKLXsgMHgxOTAwLAkxNiwJezB4MDUsIDB4ODYsIDB4ZGYsIDB4ZWYsIDB4MDUsIDB4ODYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4N2YsIDB4YmQsIDB4ZjAsIDB4MDUsIDB4ODZ9IH0sCi17IDB4MTkxMCwJMTYsCXsweGEzLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDMwLCAweGZhLCAweGU1LCAweDI2LCAweDYwLCAweDA4LCAweDc1fSB9LAoteyAweDE5MjAsCTE2LAl7MHgyNiwgMHgwMCwgMHhkMiwgMHhlNywgMHhmZSwgMHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxOX0gfSwKLXsgMHgxOTMwLAkxNiwJezB4YjIsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTJ9IH0sCi17IDB4MTk0MCwJMTYsCXsweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdjLCAweGMwLCAweDA1LCAweDg2LCAweGU1LCAweDg1fSB9LAoteyAweDE5NTAsCTE2LAl7MHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlZSwgMHgzMCwgMHhlNywgMHgwOCwgMHgwNSwgMHg4Nn0gfSwKLXsgMHgxOTYwLAkxNiwJezB4ZTAsIDB4MjQsIDB4MzgsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZWUsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NTQsIDB4MDcsIDB4ZmIsIDB4ZWUsIDB4NTQsIDB4Nzh9IH0sCi17IDB4MTk3MCwJMTYsCXsweDYwLCAweDMwLCAweDAzLCAweDAzLCAweDAzLCAweDMwLCAweGUzLCAweDA0LCAweDc0LCAweDA3LCAweDdiLCAweDA4LCAweGZkLCAweGZjLCAweGUwLCAweGUwfSB9LAoteyAweDE5ODAsCTE2LAl7MHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhkZCwgMHhmNiwgMHhlYiwgMHhmZSwgMHg2MCwgMHgxOSwgMHhlYywgMHg2NCwgMHgwNywgMHg3MH0gfSwKLXsgMHgxOTkwLAkxNiwJezB4MTEsIDB4OGIsIDB4MjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjB9IH0sCi17IDB4MTlhMCwJMTYsCXsweDgwLCAweDFiLCAweGUwLCAweGRlLCAweGZkLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0fSB9LAoteyAweDE5YjAsCTE2LAl7MHgwMCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxOSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHgwMiwgMHgxMywgMHg0M30gfSwKLXsgMHgxOWMwLAkxLAl7MHgzMn0gfSwKLXsgMHgxOWMxLAk0LAl7MHhhZCwgMHgwNywgMHhhYywgMHgwNn0gfSwKLXsgMHgxOWM1LAkxNiwJezB4NzksIDB4MDYsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmEsIDB4YTMsIDB4ZTAsIDB4ZmJ9IH0sCi17IDB4MTlkNSwJMTYsCXsweDRhLCAweDcwLCAweDAzLCAweDAyLCAweDFiLCAweDA5LCAweGU5LCAweGI0LCAweDA3LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDFhLCAweGRiLCAweDkwfSB9LAoteyAweDE5ZTUsCTE2LAl7MHgxOSwgMHhlYiwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMiwgMHgxYSwgMHhiOSwgMHgwMiwgMHgxYSwgMHg3MSwgMHgwMiwgMHgxYSwgMHg1YSwgMHgwMn0gfSwKLXsgMHgxOWY1LAkxNiwJezB4MWEsIDB4NDAsIDB4MDIsIDB4MWEsIDB4MmYsIDB4MDIsIDB4MWEsIDB4MWEsIDB4MDIsIDB4MWEsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MWEwNSwJMTYsCXsweDgwLCAweGYwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDI1LCAweGUwLCAweDQ0LCAweGEwLCAweDkwLCAweDdmLCAweGE2fSB9LAoteyAweDFhMTUsCTE2LAl7MHhmMCwgMHgxOSwgMHgwMiwgMHgxYSwgMHhkYiwgMHgxOSwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHhjMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwYX0gfSwKLXsgMHgxYTI1LAkxNiwJezB4YTMsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4MDIsIDB4MWEsIDB4ZGIsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCi17IDB4MWEzNSwJMTYsCXsweGUwLCAweGEzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDE5LCAweDAyLCAweDFhLCAweGRiLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoteyAweDFhNDUsCTE2LAl7MHg4MCwgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHgyNSwgMHhlMCwgMHg0NCwgMHhhMSwgMHg5MCwgMHg3ZiwgMHhhNn0gfSwKLXsgMHgxYTU1LAkxNiwJezB4ZjAsIDB4MTksIDB4MDIsIDB4MWEsIDB4ZGIsIDB4ZWIsIDB4NjQsIDB4MDEsIDB4NGEsIDB4NzAsIDB4MDgsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MWE2NSwJMTYsCXsweDIwLCAweGYwLCAweDE5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGY1LCAweDU5LCAweDE5LCAweDgwLCAweDZhLCAweGVkLCAweDI0LCAweDA0LCAweGY1fSB9LAoteyAweDFhNzUsCTE2LAl7MHg4MiwgMHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHg2NCwgMHgwMiwgMHg0ZSwgMHg3MCwgMHgwOCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgxYTg1LAkxNiwJezB4YTUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmYsIDB4ZWQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MWE5NSwJMTYsCXsweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzfSB9LAoteyAweDFhYTUsCTE2LAl7MHhlZiwgMHhmMCwgMHhlZCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHg3NCwgMHhmZiwgMHhmNSwgMHhmMCwgMHgxMn0gfSwKLXsgMHgxYWI1LAkxNiwJezB4YTIsIDB4ODEsIDB4ODAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MWFjNSwJMTYsCXsweGVkLCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGY1LCAweDgyLCAweDhhfSB9LAoteyAweDFhZDUsCTE2LAl7MHg4MywgMHhlZiwgMHhmMCwgMHg3ZiwgMHgwOCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHhmNSwgMHg1OSwgMHgzMCwgMHhlMCwgMHhmNywgMHgzMH0gfSwKLXsgMHgxYWU1LAkxNiwJezB4ZTIsIDB4MDcsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDYsIDB4MjIsIDB4ZTksIDB4ZDMsIDB4OTQsIDB4MDIsIDB4NTAsIDB4MDMsIDB4MDJ9IH0sCi17IDB4MWFmNSwJMTYsCXsweDE5LCAweGM3LCAweGU1LCAweDU5LCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDE5LCAweGM3LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwfSB9LAoteyAweDFiMDUsCTYsCXsweGYwLCAweDdmLCAweDA3LCAweDIyLCAweDdmLCAweDA4fSB9LAoteyAweDFiMGIsCTEsCXsweDIyfSB9LAoteyAweDFiMGMsCTE2LAl7MHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg1MCwgMHgxYywgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg3ZiwgMHgwMn0gfSwKLXsgMHgxYjFjLAkxNiwJezB4N2QsIDB4ZmYsIDB4MTIsIDB4ODIsIDB4ZWEsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4N2YsIDB4MDMsIDB4N2QsIDB4ZmZ9IH0sCi17IDB4MWIyYywJNCwJezB4MTIsIDB4ODIsIDB4ZWEsIDB4MjJ9IH0sCi17IDB4ODAwMCwJMTYsCXsweDdiLCAweGZmLCAweDdhLCAweDEyLCAweDc5LCAweDFiLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweGEyLCAweDU0LCAweGZkLCAweDhiLCAweDUwLCAweDc1fSB9LAoteyAweDgwMTAsCTE2LAl7MHg1MSwgMHgxMiwgMHg3NSwgMHg1MiwgMHgyNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhlMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMCwgMHhmMCwgMHhmNSwgMHg0ZX0gfSwKLXsgMHg4MDIwLAkxNiwJezB4ZjUsIDB4NGYsIDB4OTAsIDB4MDIsIDB4YWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4ODAzMCwJMTYsCXsweGE5LCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweGU0LCAweGZjLCAweGVjLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1fSB9LAoteyAweDgwNDAsCTE2LAl7MHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwYywgMHhiYywgMHgxMCwgMHhlZSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkZH0gfSwKLXsgMHg4MDUwLAkxNiwJezB4ZjAsIDB4YWYsIDB4MDUsIDB4MWQsIDB4ZWYsIDB4NzAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4YzYsIDB4YWIsIDB4NTAsIDB4YWEsIDB4NTEsIDB4YTksIDB4NTJ9IH0sCi17IDB4ODA2MCwJMTYsCXsweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweDY0LCAweDA1LCAweDYwLCAweDAzLCAweDAyLCAweDgxLCAweGI1LCAweDkwLCAweDAwLCAweDAzfSB9LAoteyAweDgwNzAsCTE2LAl7MHgxMiwgMHhhMiwgMHg1NCwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHg4MSwgMHgzYywgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHhhMiwgMHg1NH0gfSwKLXsgMHg4MDgwLAkxNiwJezB4ZmYsIDB4NTQsIDB4N2YsIDB4ZmMsIDB4ZDMsIDB4OTQsIDB4MDcsIDB4NTAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4MTYsIDB4ZWMsIDB4YzMsIDB4OTQsIDB4MTB9IH0sCi17IDB4ODA5MCwJMTYsCXsweDQwLCAweDAzLCAweDAyLCAweDgxLCAweDE2LCAweGVmLCAweDMwLCAweGU3LCAweDQyLCAweGU1LCAweDRmLCAweGFlLCAweDRlLCAweDc4LCAweDAyLCAweGNlfSB9LAoteyAweDgwYTAsCTE2LAl7MHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHhmZiwgMHg3NCwgMHhmMCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNX0gfSwKLXsgMHg4MGIwLAkxNiwJezB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTAsIDB4ZTAsIDB4ZmYsIDB4ZWMsIDB4MjQsIDB4ZjgsIDB4ZmUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDZ9IH0sCi17IDB4ODBjMCwJMTYsCXsweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDRmLCAweDkwLCAweDdmLCAweGUwLCAweGYwLCAweDkwLCAweDAyLCAweGFlLCAweGUwfSB9LAoteyAweDgwZDAsCTE2LAl7MHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgzZSwgMHhlNSwgMHg0ZiwgMHhhZSwgMHg0ZSwgMHg3OH0gfSwKLXsgMHg4MGUwLAkxNiwJezB4MDIsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4NzQsIDB4ZTgsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCi17IDB4ODBmMCwJMTYsCXsweDdmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGUxLCAweGUwLCAweGZmLCAweGVjLCAweDI0LCAweGY4LCAweGZlLCAweDc0LCAweDAxfSB9LAoteyAweDgxMDAsCTE2LAl7MHhhOCwgMHgwNiwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhlMSwgMHhmMCwgMHg5MCwgMHgwMn0gfSwKLXsgMHg4MTEwLAkxNiwJezB4YWUsIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDQsIDB4MTIsIDB4YTIsIDB4NTQsIDB4MjV9IH0sCi17IDB4ODEyMCwJMTYsCXsweDRmLCAweGY1LCAweDRmLCAweGU0LCAweDM1LCAweDRlLCAweGY1LCAweDRlLCAweDkwLCAweDAwLCAweDA1LCAweDEyLCAweGEyLCAweDU0LCAweGZlLCAweGU0fSB9LAoteyAweDgxMzAsCTE2LAl7MHgyNSwgMHg0ZiwgMHhmNSwgMHg0ZiwgMHhlZSwgMHgzNSwgMHg0ZSwgMHhmNSwgMHg0ZSwgMHgwMiwgMHg4MSwgMHhiOCwgMHhhYiwgMHg1MCwgMHhhYSwgMHg1MX0gfSwKLXsgMHg4MTQwLAkxNiwJezB4YTksIDB4NTIsIDB4OTAsIDB4MDAsIDB4MDMsIDB4MTIsIDB4YTIsIDB4NTQsIDB4ZmYsIDB4NjQsIDB4MDIsIDB4NjAsIDB4MDUsIDB4ZWYsIDB4NjQsIDB4MDN9IH0sCi17IDB4ODE1MCwJMTYsCXsweDcwLCAweDYwLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweGEyLCAweDU0LCAweGZmLCAweDU0LCAweDdmLCAweGZjLCAweGQzLCAweDk0LCAweDA3LCAweDUwfSB9LAoteyAweDgxNjAsCTE2LAl7MHg0ZSwgMHhlZiwgMHgzMCwgMHhlNywgMHgxZSwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhlMCwgMHhmZiwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNCwgMHgwOCwgMHg4MH0gfSwKLXsgMHg4MTcwLAkxNiwJezB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZmUsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NGV9IH0sCi17IDB4ODE4MCwJMTYsCXsweGYwLCAweDgwLCAweDM1LCAweDkwLCAweDdmLCAweGRmLCAweGUwLCAweGZmLCAweDc0LCAweDAxLCAweGE4LCAweDA0LCAweDA4LCAweDgwLCAweDAyLCAweGMzfSB9LAoteyAweDgxOTAsCTE2LAl7MHgzMywgMHhkOCwgMHhmYywgMHhmZSwgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZCwgMHhlMCwgMHg0ZSwgMHhmMCwgMHhlY30gfSwKLXsgMHg4MWEwLAkxNiwJezB4MjUsIDB4ZTAsIDB4MjQsIDB4YzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4ODAsIDB4MDksIDB4N2Z9IH0sCi17IDB4ODFiMCwJMTYsCXsweGZmLCAweDIyLCAweDdmLCAweGZmLCAweDIyLCAweDdmLCAweGZmLCAweDIyLCAweDc0LCAweDA3LCAweDI1LCAweDUyLCAweGY1LCAweDUyLCAweGU0LCAweDM1fSB9LAoteyAweDgxYzAsCTE2LAl7MHg1MSwgMHhmNSwgMHg1MSwgMHgwMiwgMHg4MCwgMHg1MSwgMHgyMCwgMHgwMywgMHgwZCwgMHg5MCwgMHgwMiwgMHhhZSwgMHhlMCwgMHg2MCwgMHgwNywgMHg5MH0gfSwKLXsgMHg4MWQwLAk4LAl7MHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4MWQ4LAkxLAl7MHgyMn0gfSwKLXsgMHg4MWQ5LAk0LAl7MHg4ZSwgMHg1OSwgMHg4ZiwgMHg1YX0gfSwKLXsgMHg4MWRkLAkxNiwJezB4NzUsIDB4NWIsIDB4MDMsIDB4ZTUsIDB4NWEsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmV9IH0sCi17IDB4ODFlZCwJMTYsCXsweGEzLCAweGUwLCAweDRlLCAweDcwLCAweDAzLCAweDAyLCAweDgyLCAweGU3LCAweGU1LCAweDViLCAweDYwLCAweDRlLCAweDE0LCAweDYwLCAweDM4LCAweDE0fSB9LAoteyAweDgxZmQsCTE2LAl7MHg2MCwgMHgyMCwgMHgxNCwgMHg2MCwgMHgwMywgMHgwMiwgMHg4MiwgMHg4YiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4NX0gfSwKLXsgMHg4MjBkLAkxNiwJezB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjB9IH0sCi17IDB4ODIxZCwJMTYsCXsweDgwLCAweDZjLCAweDg1LCAweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGUwLCAweGMzLCAweDk0LCAweDIwLCAweDQwLCAweDA5LCAweGEzLCAweGEzfSB9LAoteyAweDgyMmQsCTE2LAl7MHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4MCwgMHg1NywgMHgxNSwgMHg1YiwgMHg4NSwgMHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhhM30gfSwKLXsgMHg4MjNkLAkxNiwJezB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ODAsIDB4NDQsIDB4ZTUsIDB4NWEsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4ODI0ZCwJMTYsCXsweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1fSB9LAoteyAweDgyNWQsCTE2LAl7MHg4MywgMHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNSwgMHg1YSwgMHgyNH0gfSwKLXsgMHg4MjZkLAkxNiwJezB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTksIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjUsIDB4ZjAsIDB4MTIsIDB4YTIsIDB4ODEsIDB4ODV9IH0sCi17IDB4ODI3ZCwJMTYsCXsweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGEzLCAweGEzLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDgxLCAweDkwLCAweDdmfSB9LAoteyAweDgyOGQsCTE2LAl7MHhhNSwgMHhlMCwgMHhmNSwgMHg1YywgMHgzMCwgMHhlMCwgMHhmNywgMHgzMCwgMHhlMiwgMHgwNywgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNn0gfSwKLXsgMHg4MjlkLAkxNiwJezB4MjIsIDB4ZTUsIDB4NWMsIDB4MjAsIDB4ZTEsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDcsIDB4MjJ9IH0sCi17IDB4ODJhZCwJMTYsCXsweGU1LCAweDViLCAweDcwLCAweDMxLCAweDdmLCAweDAxLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoteyAweDgyYmQsCTE2LAl7MHg4MCwgMHhmMCwgMHg4NSwgMHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHgyNSwgMHhlMCwgMHg0NCwgMHhhMCwgMHg5MH0gfSwKLXsgMHg4MmNkLAkxNiwJezB4N2YsIDB4YTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZjUsIDB4NWMsIDB4MzAsIDB4ZTAsIDB4ZjcsIDB4MzAsIDB4ZTEsIDB4ZDUsIDB4NzV9IH0sCi17IDB4ODJkZCwJMTIsCXsweDViLCAweDAzLCAweDAyLCAweDgxLCAweGUwLCAweDE1LCAweDViLCAweDAyLCAweDgxLCAweGUwLCAweDdmLCAweDA4fSB9LAoteyAweDgyZTksCTEsCXsweDIyfSB9LAoteyAweDgyZWEsCTIsCXsweGFlLCAweDA3fSB9LAoteyAweDgyZWMsCTE2LAl7MHg3YywgMHgwMiwgMHhlYywgMHgxNCwgMHg2MCwgMHgxNSwgMHgxNCwgMHg3MCwgMHgxZSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMH0gfSwKLXsgMHg4MmZjLAkxNiwJezB4ZWUsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZWQsIDB4ZjB9IH0sCi17IDB4ODMwYywJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweGZiLCAweDMwLCAweGUwLCAweGY4LCAweGJjfSB9LAoteyAweDgzMWMsCTE2LAl7MHgwMiwgMHgwYSwgMHgyMCwgMHhlMSwgMHgwNywgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlYiwgMHgzMCwgMHhlMiwgMHgwYX0gfSwKLXsgMHg4MzJjLAkxNCwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDYsIDB4MjIsIDB4ZGMsIDB4YjYsIDB4N2YsIDB4MDh9IH0sCi17IDB4ODMzYSwJMSwJezB4MjJ9IH0sCi17IDB4ODMzYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMyLCAweGE5LCAweDkwLCAweDAzLCAweDAwLCAweDc0LCAweDE5LCAweGYwLCAweGQyLCAweGE5fSB9LAoteyAweDgzNGIsCTE1LAl7MHg1MywgMHg5MSwgMHg3ZiwgMHg5MCwgMHgwMSwgMHhjNCwgMHhlNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHg4MzVhLAkxNiwJezB4ZWYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWIsIDB4ODIsIDB4ZmEsIDB4ZjV9IH0sCi17IDB4ODM2YSwJMTYsCXsweDgzLCAweGEzLCAweGU0LCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDYxLCAweDc0LCAweGJmfSB9LAoteyAweDgzN2EsCTE2LAl7MHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhM30gfSwKLXsgMHg4MzhhLAkxNiwJezB4YTMsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4ZjAsIDB4ZjksIDB4ZWQsIDB4NjAsIDB4MWQsIDB4NzQsIDB4MDF9IH0sCi17IDB4ODM5YSwJMTYsCXsweDdlLCAweDAwLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0fSB9LAoteyAweDgzYWEsCTE2LAl7MHhlZiwgMHg1NSwgMHgzMSwgMHg2MCwgMHgwNCwgMHg3OSwgMHgwOSwgMHg4MCwgMHgwMiwgMHg3OSwgMHgwZCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhM30gfSwKLXsgMHg4M2JhLAkxNiwJezB4YTMsIDB4YTMsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4OGJ9IH0sCi17IDB4ODNjYSwJMTYsCXsweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGU1LCAweDYxLCAweGYwLCAweGFlLCAweDAyLCAweGFmLCAweDAzLCAweDhmLCAweDgyLCAweDhlfSB9LAoteyAweDgzZGEsCTQsCXsweDgzLCAweGEzLCAweGU5LCAweGYwfSB9LAoteyAweDgzZGUsCTEsCXsweDIyfSB9LAoteyAweDgzZGYsCTQsCXsweDhmLCAweDYxLCAweDhkLCAweDYyfSB9LAoteyAweDgzZTMsCTE2LAl7MHhlNCwgMHhmNSwgMHg2NywgMHg3NCwgMHgzZiwgMHgyZiwgMHhmOCwgMHg3NiwgMHgwOCwgMHg3ZiwgMHg4MCwgMHg3ZSwgMHgyNSwgMHg3ZCwgMHgwMCwgMHg3Y30gfSwKLXsgMHg4M2YzLAkxNiwJezB4MDAsIDB4YWIsIDB4NjYsIDB4YWEsIDB4NjUsIDB4YTksIDB4NjQsIDB4YTgsIDB4NjMsIDB4ZDMsIDB4MTIsIDB4YTMsIDB4YjMsIDB4NDAsIDB4MjYsIDB4N2Z9IH0sCi17IDB4ODQwMywJMTYsCXsweDAwLCAweDdlLCAweDk2LCAweDdkLCAweDAwLCAweDdjLCAweDAwLCAweGE4LCAweDYzLCAweGQzLCAweDEyLCAweGEzLCAweGIzLCAweDUwLCAweDBjLCAweDc1fSB9LAoteyAweDg0MTMsCTE2LAl7MHg2NywgMHg0MCwgMHg3NCwgMHgzZiwgMHgyNSwgMHg2MSwgMHhmOCwgMHg3NiwgMHgxMCwgMHg4MCwgMHgwYSwgMHg3NSwgMHg2NywgMHg4MCwgMHg3NCwgMHgzZn0gfSwKLXsgMHg4NDIzLAkxNiwJezB4MjUsIDB4NjEsIDB4ZjgsIDB4NzYsIDB4MzgsIDB4ZTUsIDB4NjcsIDB4NDUsIDB4NjIsIDB4NDQsIDB4MDEsIDB4ZmYsIDB4ZTUsIDB4NjEsIDB4NzUsIDB4ZjB9IH0sCi17IDB4ODQzMywJMTMsCXsweDA4LCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGVmLCAweGYwfSB9LAoteyAweDg0NDAsCTEsCXsweDIyfSB9LAoteyAweDg0NDEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmNSwgMHg1NywgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMn0gfSwKLXsgMHg4NDUxLAkxNiwJezB4ZTUsIDB4NTcsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZjV9IH0sCi17IDB4ODQ2MSwJMTYsCXsweDU4LCAweDhmLCAweDU5LCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweDI0LCAweGM2LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoteyAweDg0NzEsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNX0gfSwKLXsgMHg4NDgxLAkxNiwJezB4ODMsIDB4ZTQsIDB4ZjAsIDB4NzQsIDB4MjMsIDB4MjUsIDB4NTcsIDB4ZjgsIDB4ZTQsIDB4ZjYsIDB4ZTUsIDB4NTksIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4ODQ5MSwJMTYsCXsweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAzLCAweGYwLCAweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0fSB9LAoteyAweDg0YTEsCTE2LAl7MHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZX0gfSwKLXsgMHg4NGIxLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDYsIDB4YWYsIDB4NTcsIDB4MTIsIDB4ODN9IH0sCi17IDB4ODRjMSwJMTYsCXsweGRmLCAweGFmLCAweDU3LCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhLCAweDg1LCAweDU5LCAweDgyLCAweDg1LCAweDU4LCAweDgzLCAweGEzLCAweGEzfSB9LAoteyAweDg0ZDEsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMCwgMHg0MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg1OSwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNX0gfSwKLXsgMHg4NGUxLAkxNiwJezB4ODMsIDB4ZTAsIDB4ZTUsIDB4NTksIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTV9IH0sCi17IDB4ODRmMSwJMTYsCXsweDU3LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjfSB9LAoteyAweDg1MDEsCTE2LAl7MHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2M30gfSwKLXsgMHg4NTExLAkxNiwJezB4N2QsIDB4MDYsIDB4YWYsIDB4NTcsIDB4MTIsIDB4ODMsIDB4ZGYsIDB4NzQsIDB4ZjgsIDB4MjUsIDB4NTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDJ9IH0sCi17IDB4ODUyMSwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweGZmLCAweGMzLCAweDc0LCAweDBjLCAweDlmLCAweDc1LCAweGYwLCAweDQwfSB9LAoteyAweDg1MzEsCTE2LAl7MHhhNCwgMHgyNCwgMHg0MCwgMHhmNSwgMHg4MiwgMHhlNSwgMHhmMCwgMHgzNCwgMHg3YiwgMHhhZiwgMHg4MiwgMHhmZSwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMH0gfSwKLXsgMHg4NTQxLAkxNiwJezB4MjQsIDB4ZWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4YWYsIDB4NTd9IH0sCi17IDB4ODU1MSwJMTUsCXsweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDQyLCAweDM0LCAweDdmLCAweDAwfSB9LAoteyAweDg1NjAsCTEsCXsweDIyfSB9LAoteyAweDg1NjEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmNSwgMHg1NywgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMn0gfSwKLXsgMHg4NTcxLAkxNiwJezB4YWYsIDB4NTcsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4ODMsIDB4NWEsIDB4NzQsIDB4ZjgsIDB4MjUsIDB4NTcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDJ9IH0sCi17IDB4ODU4MSwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoteyAweDg1OTEsCTE2LAl7MHgyMCwgMHhhZiwgMHg4MiwgMHhmNSwgMHg1OSwgMHg4ZiwgMHg1YSwgMHhmNSwgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHg4NWExLAkxNiwJezB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmMsIDB4ZjAsIDB4ZTUsIDB4NTcsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MGN9IH0sCi17IDB4ODViMSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0fSB9LAoteyAweDg1YzEsCTE2LAl7MHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZX0gfSwKLXsgMHg4NWQxLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDYsIDB4YWYsIDB4NTcsIDB4MTIsIDB4ODN9IH0sCi17IDB4ODVlMSwJMTYsCXsweGRmLCAweGU1LCAweDVhLCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDA5fSB9LAoteyAweDg1ZjEsCTE2LAl7MHg4NSwgMHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhlMCwgMHhmNSwgMHg1OCwgMHhhZiwgMHg1NywgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOH0gfSwKLXsgMHg4NjAxLAkxNiwJezB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjQsIDB4NTIsIDB4MzQsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YzYsIDB4ZjV9IH0sCi17IDB4ODYxMSwJMTYsCXsweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUxLCAweDBmLCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweDI0LCAweGM3fSB9LAoteyAweDg2MjEsCTExLAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4NjJjLAkxLAl7MHgyMn0gfSwKLXsgMHg4NjJkLAk0LAl7MHg4ZSwgMHg1NywgMHg4ZiwgMHg1OH0gfSwKLXsgMHg4NjMxLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NTksIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCi17IDB4ODY0MSwJMTYsCXsweGU1LCAweDU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwfSB9LAoteyAweDg2NTEsCTE2LAl7MHg1NCwgMHgwMywgMHg3MCwgMHg2NiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHgzMCwgMHhlMCwgMHgyOCwgMHhlNX0gfSwKLXsgMHg4NjYxLAkxNiwJezB4NTksIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmN9IH0sCi17IDB4ODY3MSwJMTYsCXsweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzfSB9LAoteyAweDg2ODEsCTE2LAl7MHg3ZCwgMHgwMiwgMHhhZiwgMHg1OSwgMHgxMiwgMHg4MywgMHhkZiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHgzMH0gfSwKLXsgMHg4NjkxLAkxNiwJezB4ZTEsIDB4MjgsIDB4ZTUsIDB4NTksIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjV9IH0sCi17IDB4ODZhMSwJMTYsCXsweDgzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkfSB9LAoteyAweDg2YjEsCTEyLAl7MHg2NCwgMHg4YywgMHg2MywgMHg3ZCwgMHgwNCwgMHhhZiwgMHg1OSwgMHgxMiwgMHg4MywgMHhkZiwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4NmJkLAkxLAl7MHgyMn0gfSwKLXsgMHg4NmJlLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4ZWR9IH0sCi17IDB4ODZjZSwJMTYsCXsweDZjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGMwLCAweDgzLCAweGMwfSB9LAoteyAweDg2ZGUsCTE2LAl7MHg4MiwgMHhlMCwgMHhmZCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmYywgMHhlZCwgMHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMH0gfSwKLXsgMHg4NmVlLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4ZWMsIDB4NmQsIDB4ZDB9IH0sCi17IDB4ODZmZSwJMTYsCXsweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZkLCAweDhmfSB9LAoteyAweDg3MGUsCTE2LAl7MHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhlZCwgMHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4Mn0gfSwKLXsgMHg4NzFlLAkxNiwJezB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4ZTB9IH0sCi17IDB4ODcyZSwJMTYsCXsweGZjLCAweGVkLCAweDZjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGMwLCAweDgzLCAweGMwfSB9LAoteyAweDg3M2UsCTE2LAl7MHg4MiwgMHhlMCwgMHhmZCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmZiwgMHhlZCwgMHg2ZiwgMHhkMCwgMHg4MiwgMHhkMH0gfSwKLXsgMHg4NzRlLAkzLAl7MHg4MywgMHhmMCwgMHgyMn0gfSwKLXsgMHg4NzUxLAk0LAl7MHhhZCwgMHgwNywgMHhhYywgMHgwNn0gfSwKLXsgMHg4NzU1LAkxNiwJezB4NzksIDB4MGQsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmZ9IH0sCi17IDB4ODc2NSwJMTYsCXsweDIyLCAweDhjLCAweDU3LCAweDhkLCAweDU4LCAweGVlLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAxLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoteyAweDg3NzUsCTE2LAl7MHgwMywgMHhhZiwgMHg4MiwgMHhmZSwgMHhhZCwgMHgwMSwgMHgxOSwgMHhlZCwgMHg2MCwgMHgyNCwgMHgwZiwgMHhlZiwgMHhhYywgMHgwNiwgMHg3MCwgMHgwMX0gfSwKLXsgMHg4Nzg1LAkxNiwJezB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MDUsIDB4NTgsIDB4ZTUsIDB4NTgsIDB4YWEsIDB4NTcsIDB4NzAsIDB4MDJ9IH0sCi17IDB4ODc5NSwJMTYsCXsweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDZkLCAweDYwLCAweGQ5LCAweDdmLCAweDAxLCAweDIyLCAweDdmLCAweDAwfSB9LAoteyAweDg3YTUsCTEsCXsweDIyfSB9LAoteyAweDg3YTYsCTQsCXsweDhlLCAweDU3LCAweDhmLCAweDU4fSB9LAoteyAweDg3YWEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmNSwgMHg1ZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMn0gfSwKLXsgMHg4N2JhLAkxNiwJezB4ZTUsIDB4NWUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZjV9IH0sCi17IDB4ODdjYSwJMTYsCXsweDVmLCAweDhmLCAweDYwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzfSB9LAoteyAweDg3ZGEsCTE2LAl7MHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg3YiwgMHgwOCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHhkMywgMHgxMiwgMHhhM30gfSwKLXsgMHg4N2VhLAkxNiwJezB4YjMsIDB4NDAsIDB4MTAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4MTIsIDB4YTMsIDB4ZmEsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4ODdmYSwJMTYsCXsweDA4LCAweDgwLCAweDJlLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzfSB9LAoteyAweDg4MGEsCTE2LAl7MHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwOCwgMHg3OSwgMHgwNywgMHg3OCwgMHgwMCwgMHhjMywgMHgxMiwgMHhhM30gfSwKLXsgMHg4ODFhLAkxNiwJezB4YjMsIDB4NTAsIDB4MGUsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4MTIsIDB4YTMsIDB4ZmEsIDB4MDAsIDB4MDcsIDB4MDh9IH0sCi17IDB4ODgyYSwJMTYsCXsweDAwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGY4LCAweGEzLCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhfSB9LAoteyAweDg4M2EsCTE2LAl7MHhhMywgMHhlMCwgMHhmYiwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHg1MCwgMHg3ZCwgMHg0NiwgMHg3YywgMHgwMCwgMHgxMiwgMHhhMywgMHgyMSwgMHg4ZiwgMHg1Y30gfSwKLXsgMHg4ODRhLAkxNiwJezB4OGUsIDB4NWIsIDB4OGQsIDB4NWEsIDB4OGMsIDB4NTksIDB4N2IsIDB4MGEsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4MTIsIDB4YTN9IH0sCi17IDB4ODg1YSwJMTYsCXsweDIxLCAweGFmLCAweDAzLCAweDhmLCAweDVkLCAweGFmLCAweDVjLCAweGFlLCAweDViLCAweGFkLCAweDVhLCAweGFjLCAweDU5LCAweDdiLCAweDBhLCAweDdhfSB9LAoteyAweDg4NmEsCTE2LAl7MHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHgxMiwgMHhhMywgMHgyMSwgMHg4ZiwgMHg1YywgMHg4ZSwgMHg1YiwgMHg4ZCwgMHg1YSwgMHg4YywgMHg1OX0gfSwKLXsgMHg4ODdhLAkxNiwJezB4ZTUsIDB4NWQsIDB4YzMsIDB4OTQsIDB4MDUsIDB4NDAsIDB4MTUsIDB4ZTUsIDB4NWMsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4NWMsIDB4ZTQsIDB4MzUsIDB4NWJ9IH0sCi17IDB4ODg4YSwJMTYsCXsweGY1LCAweDViLCAweGU0LCAweDM1LCAweDVhLCAweGY1LCAweDVhLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDU5LCAweDg1LCAweDYwLCAweDgyLCAweDg1fSB9LAoteyAweDg4OWEsCTE2LAl7MHg1ZiwgMHg4MywgMHhhMywgMHhlNCwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg0NH0gfSwKLXsgMHg4OGFhLAkxNiwJezB4ODAsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4ZTUsIDB4NWMsIDB4ZjAsIDB4YWYsIDB4NWMsIDB4YWUsIDB4NWIsIDB4YWR9IH0sCi17IDB4ODhiYSwJMTYsCXsweDVhLCAweGFjLCAweDU5LCAweDc4LCAweDA4LCAweDEyLCAweGEzLCAweGM0LCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGVmfSB9LAoteyAweDg4Y2EsCTE2LAl7MHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNCwgMHhmNX0gfSwKLXsgMHg4OGRhLAkxNiwJezB4NWQsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTB9IH0sCi17IDB4ODhlYSwJMTYsCXsweDIzLCAweDU0LCAweDAxLCAweGYwLCAweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGUwfSB9LAoteyAweDg4ZmEsCTE2LAl7MHg1NCwgMHhmZCwgMHhmMCwgMHhhZiwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmY30gfSwKLXsgMHg4OTBhLAkxNiwJezB4NDIsIDB4MjIsIDB4ODAsIDB4MzYsIDB4NzQsIDB4MDEsIDB4N2UsIDB4MDAsIDB4YTgsIDB4NWUsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2V9IH0sCi17IDB4ODkxYSwJMTYsCXsweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0LCAweGVmLCAweDU1LCAweDIyLCAweDYwLCAweDFmLCAweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1fSB9LAoteyAweDg5MmEsCTE2LAl7MHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhhZiwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwN30gfSwKLXsgMHg4OTNhLAkxNiwJezB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjQsIDB4NTIsIDB4MjIsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDgsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4ODk0YSwJMTYsCXsweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGI0LCAweDYyLCAweDA1LCAweDQzLCAweDVkLCAweDBhLCAweDgwLCAweDFhLCAweGVmfSB9LAoteyAweDg5NWEsCTE2LAl7MHhiNCwgMHg3MiwgMHgwNSwgMHg0MywgMHg1ZCwgMHgwOCwgMHg4MCwgMHgxMSwgMHhlZiwgMHhiNCwgMHg3NCwgMHgwNSwgMHg0MywgMHg1ZCwgMHgwMiwgMHg4MH0gfSwKLXsgMHg4OTZhLAkxNiwJezB4MDgsIDB4ZWYsIDB4NjQsIDB4NmUsIDB4NjAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4ODk3YSwJMTYsCXsweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDMwLCAweGUzLCAweDAzLCAweDQzLCAweDVkLCAweDgwLCAweGVmLCAweDMwLCAweGU3LCAweDEyfSB9LAoteyAweDg5OGEsCTE2LAl7MHg0MywgMHg1ZCwgMHg0MCwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NH0gfSwKLXsgMHg4OTlhLAkxNiwJezB4MDIsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTF9IH0sCi17IDB4ODlhYSwJMTYsCXsweDIwLCAweGFmLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDQyLCAweDMyfSB9LAoteyAweDg5YmEsCTE2LAl7MHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MH0gfSwKLXsgMHg4OWNhLAkxNiwJezB4MTAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjQsIDB4NTJ9IH0sCi17IDB4ODlkYSwJMTYsCXsweDMyLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDMwLCAweGU0fSB9LAoteyAweDg5ZWEsCTE2LAl7MHgxMSwgMHhhZSwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNiwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzMX0gfSwKLXsgMHg4OWZhLAkxNiwJezB4ODAsIDB4MTAsIDB4YWUsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDYsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjR9IH0sCi17IDB4OGEwYSwJMTYsCXsweDUyLCAweDMxLCAweGVmLCAweDIwLCAweGUxLCAweDAzLCAweDMwLCAweGU0LCAweDAzLCAweGU0LCAweGY1LCAweDVkLCAweDg1LCAweDYwLCAweDgyLCAweDg1fSB9LAoteyAweDhhMWEsCTE2LAl7MHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHg3NCwgMHhiZiwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhM30gfSwKLXsgMHg4YTJhLAkxNiwJezB4ZTQsIDB4ZjAsIDB4ZTUsIDB4NWQsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODN9IH0sCi17IDB4OGEzYSwJMTYsCXsweGUwLCAweGZmLCAweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1fSB9LAoteyAweDhhNGEsCTE2LAl7MHg1OCwgMHgyNCwgMHgwYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNX0gfSwKLXsgMHg4YTVhLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDksIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4OGE2YSwJMTYsCXsweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDYwLCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1fSB9LAoteyAweDhhN2EsCTE2LAl7MHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZn0gfSwKLXsgMHg4YThhLAkxNiwJezB4ZTUsIDB4NjAsIDB4MjQsIDB4MDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODJ9IH0sCi17IDB4OGE5YSwJMTYsCXsweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGU0LCAweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzfSB9LAoteyAweDhhYWEsCTE2LAl7MHhmMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZX0gfSwKLXsgMHg4YWJhLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDYsIDB4YWYsIDB4NWUsIDB4MTIsIDB4ODN9IH0sCi17IDB4OGFjYSwJMTYsCXsweGRmLCAweDc1LCAweDVkLCAweDA4LCAweGU1LCAweDU4LCAweDI0LCAweDBjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwfSB9LAoteyAweDhhZGEsCTE2LAl7MHg2MCwgMHgwMywgMHg0MywgMHg1ZCwgMHgxMCwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4M30gfSwKLXsgMHg4YWVhLAkxNiwJezB4ZTAsIDB4NTQsIDB4MDMsIDB4NDUsIDB4NWQsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjV9IH0sCi17IDB4OGFmYSwJMTYsCXsweDgzLCAweGUwLCAweGZlLCAweGMzLCAweDk0LCAweDA1LCAweDQwLCAweDA2LCAweGVlLCAweGQzLCAweDk0LCAweDA4LCAweDQwLCAweDAzLCAweDdmLCAweGZmfSB9LAoteyAweDhiMGEsCTE2LAl7MHgyMiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHhjMywgMHg5NH0gfSwKLXsgMHg4YjFhLAkxNiwJezB4MDEsIDB4NDAsIDB4MDYsIDB4ZWQsIDB4ZDMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWQsIDB4MTQsIDB4ZmYsIDB4MjV9IH0sCi17IDB4OGIyYSwJMTYsCXsweGUwLCAweDI1LCAweGUwLCAweGZmLCAweGVlLCAweDI0LCAweGZiLCAweDRmLCAweGY1LCAweDVkLCAweGU1LCAweDU4LCAweDI0LCAweDA3LCAweGY1LCAweDgyfSB9LAoteyAweDhiM2EsCTE2LAl7MHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHgyNCwgMHhkMCwgMHg2MCwgMHgxOCwgMHgxNCwgMHg2MCwgMHgxYSwgMHgyNCwgMHhjMywgMHg2MH0gfSwKLXsgMHg4YjRhLAkxNiwJezB4MWUsIDB4MTQsIDB4NjAsIDB4MDksIDB4MjQsIDB4MGEsIDB4NzAsIDB4MTQsIDB4NDMsIDB4NWQsIDB4MTgsIDB4ODAsIDB4MTIsIDB4NDMsIDB4NWQsIDB4MDh9IH0sCi17IDB4OGI1YSwJMTYsCXsweDgwLCAweDBkLCAweDQzLCAweDVkLCAweDM4LCAweDgwLCAweDA4LCAweDQzLCAweDVkLCAweDI4LCAweDgwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweDg1fSB9LAoteyAweDhiNmEsCTE2LAl7MHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlNSwgMHg1ZCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg3ZSwgMHgwMCwgMHhhOH0gfSwKLXsgMHg4YjdhLAkxNiwJezB4NWUsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2UsIDB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTQsIDB4ZWYsIDB4NTUsIDB4MzR9IH0sCi17IDB4OGI4YSwJMTYsCXsweDYwLCAweDA3LCAweGFmLCAweDVlLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhLCAweGFhLCAweDU3LCAweGE5LCAweDU4LCAweDdiLCAweDAxLCAweGMwfSB9LAoteyAweDhiOWEsCTE2LAl7MHgwMywgMHhjMCwgMHgwMSwgMHhlNSwgMHg1ZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmOSwgMHg3NCwgMHgwMywgMHgzNSwgMHhmMH0gfSwKLXsgMHg4YmFhLAkxNiwJezB4YTgsIDB4MDEsIDB4ZmMsIDB4YWQsIDB4MDMsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDMsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MGQsIDB4MTIsIDB4YTIsIDB4MTJ9IH0sCi17IDB4OGJiYSwJMiwJezB4N2YsIDB4MDB9IH0sCi17IDB4OGJiYywJMSwJezB4MjJ9IH0sCi17IDB4OGJiZCwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoteyAweDhiY2QsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZCwgMHg4MiwgMHhmYywgMHg5MCwgMHgwMX0gfSwKLXsgMHg4YmRkLAkxNiwJezB4MmMsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZWUsIDB4MDQsIDB4YTMsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTV9IH0sCi17IDB4OGJlZCwJMTYsCXsweDgyLCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweDAxLCAweDJmLCAweGYwLCAweDhkfSB9LAoteyAweDhiZmQsCTE2LAl7MHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg1NH0gfSwKLXsgMHg4YzBkLAkxNiwJezB4MWUsIDB4OTAsIDB4MDEsIDB4MzAsIDB4ZjAsIDB4NzQsIDB4MmQsIDB4MmUsIDB4ZjgsIDB4ZTYsIDB4YTMsIDB4ZjAsIDB4YWYsIDB4MDYsIDB4NzQsIDB4MDF9IH0sCi17IDB4OGMxZCwJMTYsCXsweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY1LCAweDU3LCAweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxfSB9LAoteyAweDhjMmQsCTE2LAl7MHg0MCwgMHgwZCwgMHg5MCwgMHgyMCwgMHg3OCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg3NSwgMHg1OCwgMHgwMCwgMHhmNSwgMHg1OSwgMHg4MCwgMHgwOSwgMHg3Zn0gfSwKLXsgMHg4YzNkLAkxNiwJezB4MDIsIDB4MTIsIDB4MTEsIDB4MjcsIDB4OGUsIDB4NTgsIDB4OGYsIDB4NTksIDB4YzMsIDB4ZTUsIDB4NTgsIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NDB9IH0sCi17IDB4OGM0ZCwJMTYsCXsweGRhLCAweGU1LCAweDU3LCAweDU1LCAweDU5LCAweDkwLCAweDAxLCAweDMyLCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDJjLCAweDdkLCAweDA3LCAweDEyfSB9LAoteyAweDhjNWQsCTQsCXsweDkxLCAweDZhLCAweDdmLCAweDAwfSB9LAoteyAweDhjNjEsCTEsCXsweDIyfSB9LAoteyAweDhjNjIsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKLXsgMHg4YzcyLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4OTAsIDB4MDF9IH0sCi17IDB4OGM4MiwJMTYsCXsweDMzLCAweDc0LCAweDBhLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1fSB9LAoteyAweDhjOTIsCTE2LAl7MHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHgwMSwgMHgzNCwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgzMywgMHg3ZCwgMHgwMiwgMHgxMiwgMHg5MX0gfSwKLXsgMHg4Y2EyLAkzLAl7MHg2YSwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4Y2E1LAkxLAl7MHgyMn0gfSwKLXsgMHg4Y2E2LAk0LAl7MHg4ZSwgMHg1NywgMHg4ZiwgMHg1OH0gfSwKLXsgMHg4Y2FhLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCi17IDB4OGNiYSwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFkLCAweDgyLCAweGZjLCAweDg1LCAweDU4fSB9LAoteyAweDhjY2EsCTE2LAl7MHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlZCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYywgMHhmNX0gfSwKLXsgMHg4Y2RhLAkxNiwJezB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4NDMsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MGMsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OGNlYSwJMTYsCXsweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDIwLCAweGVlLCAweDI1LCAweGUwLCAweDI0LCAweGM2LCAweGY1LCAweDgyfSB9LAoteyAweDhjZmEsCTE2LAl7MHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMSwgMHhmMCwgMHg3ZiwgMHg2MCwgMHhlZCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4ZDBhLAkxNiwJezB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NWYsIDB4YjUsIDB4MDcsIDB4ZjIsIDB4YWUsIDB4MDQsIDB4YWYsIDB4MDUsIDB4ZWYsIDB4MjQsIDB4MDR9IH0sCi17IDB4OGQxYSwJMTIsCXsweGY1LCAweDgyLCAweGU0LCAweDNlLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDhkMjYsCTEsCXsweDIyfSB9LAoteyAweDhkMjcsCTQsCXsweGFkLCAweDA3LCAweGFjLCAweDA2fSB9LAoteyAweDhkMmIsCTE2LAl7MHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKLXsgMHg4ZDNiLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4OGQsIDB4ODJ9IH0sCi17IDB4OGQ0YiwJMTYsCXsweDhjLCAweDgzLCAweGEzLCAweGUwLCAweDYwLCAweDBmLCAweGVmLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNlLCAweGY1LCAweDgzLCAweGUwfSB9LAoteyAweDhkNWIsCTE2LAl7MHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwZCwgMHhlZiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NH0gfSwKLXsgMHg4ZDZiLAk0LAl7MHhmZSwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4ZDZmLAkxLAl7MHgyMn0gfSwKLXsgMHg4ZDcwLAk0LAl7MHhhZCwgMHgwNywgMHhhYywgMHgwNn0gfSwKLXsgMHg4ZDc0LAkxNiwJezB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCi17IDB4OGQ4NCwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGZlLCAweDhkLCAweDgyfSB9LAoteyAweDhkOTQsCTE2LAl7MHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHg2MCwgMHgwZCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg0NCwgMHg0MH0gfSwKLXsgMHg4ZGE0LAkxNiwJezB4ZjAsIDB4ODAsIDB4MGIsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGRiNCwJMSwJezB4MjJ9IH0sCi17IDB4OGRiNSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGFmfSB9LAoteyAweDhkYzUsCTE2LAl7MHgwNiwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzZSwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4ZGQ1LAkxLAl7MHgyMn0gfSwKLXsgMHg4ZGQ2LAk0LAl7MHg4ZSwgMHg1NywgMHg4ZiwgMHg1OH0gfSwKLXsgMHg4ZGRhLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NWMsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NTksIDB4ZDN9IH0sCi17IDB4OGRlYSwJMTYsCXsweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGU1LCAweDU5LCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLCAweDFmfSB9LAoteyAweDhkZmEsCTE2LAl7MHgxNCwgMHg2MCwgMHgyOCwgMHgyNCwgMHgwMywgMHg3MCwgMHgyZSwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHg1YSwgMHg3ZSwgMHg3NSwgMHg1Yn0gfSwKLXsgMHg4ZTBhLAkxNiwJezB4ODAsIDB4ODAsIDB4MjIsIDB4N2UsIDB4N2UsIDB4N2YsIDB4MDAsIDB4NzUsIDB4NWEsIDB4N2UsIDB4NzUsIDB4NWIsIDB4MDAsIDB4ODAsIDB4MTYsIDB4N2V9IH0sCi17IDB4OGUxYSwJMTYsCXsweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDVhLCAweDdkLCAweDc1LCAweDViLCAweDgwLCAweDgwLCAweDBhLCAweDdlLCAweDdkLCAweDdmLCAweDAwLCAweDc1fSB9LAoteyAweDhlMmEsCTE2LAl7MHg1YSwgMHg3ZCwgMHg3NSwgMHg1YiwgMHgwMCwgMHhlNSwgMHg1YywgMHg3MCwgMHgxYiwgMHg4NSwgMHg1YiwgMHg4MiwgMHg4NSwgMHg1YSwgMHg4MywgMHg3NH0gfSwKLXsgMHg4ZTNhLAkxNiwJezB4ZmYsIDB4ZjAsIDB4ZTUsIDB4NTksIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzR9IH0sCi17IDB4OGU0YSwJMTYsCXsweDAxLCAweGYwLCAweDgwLCAweDQ4LCAweGU1LCAweDU4LCAweDI0LCAweDAyLCAweGZmLCAweGU0LCAweDM1LCAweDU3LCAweGZlLCAweGU1LCAweDVjLCAweDYwfSB9LAoteyAweDhlNWEsCTE2LAl7MHgyMywgMHgwZiwgMHhlZiwgMHhhYywgMHgwNiwgMHg3MCwgMHgwMSwgMHgwZSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHhmZCwgMHgwNX0gfSwKLXsgMHg4ZTZhLAkxNiwJezB4NWIsIDB4ZTUsIDB4NWIsIDB4YWEsIDB4NWEsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NWEsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWQsIDB4ZjB9IH0sCi17IDB4OGU3YSwJMTYsCXsweDE1LCAweDVjLCAweDgwLCAweGQ5LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweGU1LCAweDU5LCAweDI1fSB9LAoteyAweDhlOGEsCTE0LAl7MHhlMCwgMHgyNCwgMHhiNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4ZTk4LAkxLAl7MHgyMn0gfSwKLXsgMHg4ZTk5LAkxNiwJezB4ZWYsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4NTgsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4NTcsIDB4OTAsIDB4MDEsIDB4MzUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4OTB9IH0sCi17IDB4OGVhOSwJMTYsCXsweDAxLCAweDdhLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDM2LCAweGYwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzfSB9LAoteyAweDhlYjksCTE2LAl7MHhhMywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHg4ZSwgMHg1OSwgMHhmNSwgMHg1YSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4M30gfSwKLXsgMHg4ZWM5LAkxNiwJezB4ZTAsIDB4MjQsIDB4OWUsIDB4NjAsIDB4NjEsIDB4MjQsIDB4ZjksIDB4NjAsIDB4MGUsIDB4MjQsIDB4ZjEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OGYsIDB4N2F9IH0sCi17IDB4OGVkOSwJMTYsCXsweDI0LCAweDE0LCAweDYwLCAweDAzLCAweDAyLCAweDhmLCAweGM4LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlfSB9LAoteyAweDhlZTksCTE2LAl7MHhhMywgMHhlMCwgMHhmZiwgMHhjMywgMHhlNCwgMHg5ZiwgMHhmNSwgMHg1YywgMHg3NCwgMHgwMSwgMHg5ZSwgMHhmNSwgMHg1YiwgMHhkMywgMHhlNSwgMHg1Y30gfSwKLXsgMHg4ZWY5LAkxNiwJezB4OTQsIDB4M2YsIDB4ZTUsIDB4NWIsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIDB4NzUsIDB4NWIsIDB4MDAsIDB4NzUsIDB4NWMsIDB4M2YsIDB4ZDMsIDB4ZTV9IH0sCi17IDB4OGYwOSwJMTYsCXsweDVhLCAweDk1LCAweDVjLCAweGU1LCAweDU5LCAweDk1LCAweDViLCAweDUwLCAweDAzLCAweDAyLCAweDhmLCAweGNiLCAweGFlLCAweDViLCAweGFmLCAweDVjfSB9LAoteyAweDhmMTksCTE2LAl7MHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlZSwgMHhmMCwgMHhmZSwgMHhhMywgMHhlZiwgMHhmMCwgMHg4ZX0gfSwKLXsgMHg4ZjI5LAkxNiwJezB4NTksIDB4ZjUsIDB4NWEsIDB4MDIsIDB4OGYsIDB4Y2IsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTN9IH0sCi17IDB4OGYzOSwJMTYsCXsweGUwLCAweGZmLCAweGMzLCAweDc0LCAweDMwLCAweDlmLCAweGY1LCAweDVjLCAweGU0LCAweDllLCAweGY1LCAweDViLCAweGQzLCAweGU1LCAweDVjLCAweDk0fSB9LAoteyAweDhmNDksCTE2LAl7MHgxMCwgMHhlNSwgMHg1YiwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHg3NSwgMHg1YiwgMHgwMCwgMHg3NSwgMHg1YywgMHgxMCwgMHhkMywgMHhlNSwgMHg1YX0gfSwKLXsgMHg4ZjU5LAkxNiwJezB4OTUsIDB4NWMsIDB4ZTUsIDB4NTksIDB4OTUsIDB4NWIsIDB4NDAsIDB4NmEsIDB4YWUsIDB4NWIsIDB4YWYsIDB4NWMsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODV9IH0sCi17IDB4OGY2OSwJMTYsCXsweDU3LCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGVlLCAweGYwLCAweGZlLCAweGEzLCAweGVmLCAweGYwLCAweDhlLCAweDU5LCAweGY1LCAweDVhLCAweDgwfSB9LAoteyAweDhmNzksCTE2LAl7MHg1MSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhjMywgMHhlNCwgMHg5Zn0gfSwKLXsgMHg4Zjg5LAkxNiwJezB4ZjUsIDB4NWMsIDB4ZTQsIDB4OWUsIDB4ZjUsIDB4NWIsIDB4NDUsIDB4NWMsIDB4NjAsIDB4MGIsIDB4ZDMsIDB4ZTUsIDB4NWMsIDB4OTQsIDB4M2YsIDB4ZTV9IH0sCi17IDB4OGY5OSwJMTYsCXsweDViLCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAweDc1LCAweDViLCAweDAwLCAweDc1LCAweDVjLCAweDNmLCAweGQzLCAweGU1LCAweDVhLCAweDk1LCAweDVjfSB9LAoteyAweDhmYTksCTE2LAl7MHhlNSwgMHg1OSwgMHg5NSwgMHg1YiwgMHg0MCwgMHgxYywgMHhhZSwgMHg1YiwgMHhhZiwgMHg1YywgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4M30gfSwKLXsgMHg4ZmI5LAkxNiwJezB4YTMsIDB4YTMsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZmUsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OGUsIDB4NTksIDB4ZjUsIDB4NWEsIDB4ODAsIDB4MDMsIDB4N2Z9IH0sCi17IDB4OGZjOSwJMTYsCXsweDAxLCAweDIyLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGUwLCAweDI0LCAweDllLCAweDcwLCAweDAzLCAweDAyLCAweDkwLCAweDhifSB9LAoteyAweDhmZDksCTE2LAl7MHgyNCwgMHhmOSwgMHg2MCwgMHg1OCwgMHgyNCwgMHhmMSwgMHg3MCwgMHgwMywgMHgwMiwgMHg5MCwgMHhkYiwgMHgyNCwgMHgxNCwgMHg2MCwgMHgwMywgMHgwMn0gfSwKLXsgMHg4ZmU5LAkxNiwJezB4OTEsIDB4MWYsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTR9IH0sCi17IDB4OGZmOSwJMTYsCXsweGZmLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDkxLCAweDFmLCAweDkwLCAweDAxLCAweDc1LCAweGVmLCAweGYwLCAweGU1LCAweDVhfSB9LAoteyAweDkwMDksCTE2LAl7MHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OSwgMHg0ZSwgMHg3MCwgMHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHg5MCwgMHgwMX0gfSwKLXsgMHg5MDE5LAkxNiwJezB4NzUsIDB4ZTAsIDB4ZmYsIDB4MDQsIDB4ZjAsIDB4YTgsIDB4MDcsIDB4ZTYsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4N2EsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDF9IH0sCi17IDB4OTAyOSwJMTYsCXsweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDgwLCAweGQyLCAweDg1LCAweDU4LCAweDgyLCAweDg1fSB9LAoteyAweDkwMzksCTE2LAl7MHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhjMywgMHg5NCwgMHg4MCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwM30gfSwKLXsgMHg5MDQ5LAkxNiwJezB4MDIsIDB4OTEsIDB4MWYsIDB4ZDMsIDB4ZWYsIDB4OTQsIDB4ZmYsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTB9IH0sCi17IDB4OTA1OSwJMTYsCXsweDAxLCAweDc2LCAweGVmLCAweGYwLCAweGU1LCAweDVhLCAweDE1LCAweDVhLCAweGFlLCAweDU5LCAweDcwLCAweDAyLCAweDE1LCAweDU5LCAweDRlLCAweDcwfSB9LAoteyAweDkwNjksCTE2LAl7MHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHg5MCwgMHgwMSwgMHg3NiwgMHhlMCwgMHhmZiwgMHgwNCwgMHhmMCwgMHhhOCwgMHgwNywgMHhlNiwgMHhmZiwgMHg5MH0gfSwKLXsgMHg5MDc5LAkxNiwJezB4MDEsIDB4N2EsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCi17IDB4OTA4OSwJMTYsCXsweDgwLCAweGQyLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGMzLCAweDk0fSB9LAoteyAweDkwOTksCTE2LAl7MHgyMCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHhkMywgMHhlZiwgMHg5NCwgMHgyZiwgMHhlZSwgMHg5NCwgMHgwMH0gfSwKLXsgMHg5MGE5LAkxNiwJezB4NTAsIDB4NzQsIDB4OTAsIDB4MDEsIDB4NzcsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4MTUsIDB4NWEsIDB4YWUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTV9IH0sCi17IDB4OTBiOSwJMTYsCXsweDU5LCAweDRlLCAweDYwLCAweDYyLCAweDkwLCAweDAxLCAweDc3LCAweGUwLCAweGZmLCAweDA0LCAweGYwLCAweGE4LCAweDA3LCAweGU2LCAweGZmLCAweDkwfSB9LAoteyAweDkwYzksCTE2LAl7MHgwMSwgMHg3YSwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMH0gfSwKLXsgMHg5MGQ5LAkxNiwJezB4ODAsIDB4ZDUsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4Nzh9IH0sCi17IDB4OTBlOSwJMTYsCXsweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweGU1LCAweDVhLCAweDE1LCAweDVhLCAweGFlLCAweDU5LCAweDcwLCAweDAyLCAweDE1LCAweDU5LCAweDRlfSB9LAoteyAweDkwZjksCTE2LAl7MHg2MCwgMHgyNCwgMHg5MCwgMHgwMSwgMHg3OCwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNX0gfSwKLXsgMHg5MTA5LAkxNiwJezB4ODMsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4N2EsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODJ9IH0sCi17IDB4OTExOSwJMTYsCXsweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDgwLCAweGNmLCAweDdlLCAweDAxLCAweDdmLCAweDM1LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzfSB9LAoteyAweDkxMjksCTEzLAl7MHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhhMywgMHhlMCwgMHgwNCwgMHhmZCwgMHgxMiwgMHg5MSwgMHg2YSwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg5MTM2LAkxLAl7MHgyMn0gfSwKLXsgMHg5MTM3LAkxNiwJezB4OGUsIDB4NjIsIDB4OGYsIDB4NjMsIDB4OGMsIDB4NjQsIDB4OGQsIDB4NjUsIDB4YWYsIDB4MDMsIDB4MWIsIDB4ZWYsIDB4NjAsIDB4MjQsIDB4MDUsIDB4NjN9IH0sCi17IDB4OTE0NywJMTYsCXsweGU1LCAweDYzLCAweGFlLCAweDYyLCAweDcwLCAweDAyLCAweDA1LCAweDYyLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZmLCAweDA1fSB9LAoteyAweDkxNTcsCTE2LAl7MHg2NSwgMHhlNSwgMHg2NSwgMHhhYywgMHg2NCwgMHg3MCwgMHgwMiwgMHgwNSwgMHg2NCwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMH0gfSwKLXsgMHg5MTY3LAkzLAl7MHg4MCwgMHhkNiwgMHgyMn0gfSwKLXsgMHg5MTZhLAk2LAl7MHg4ZCwgMHg1ZCwgMHhhYiwgMHgwNywgMHhhYSwgMHgwNn0gfSwKLXsgMHg5MTcwLAkxNiwJezB4NzUsIDB4NjEsIDB4NDAsIDB4NzUsIDB4NjAsIDB4MGQsIDB4NzUsIDB4NWYsIDB4MDMsIDB4NzUsIDB4NWUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTB9IH0sCi17IDB4OTE4MCwJMTYsCXsweDIwLCAweGUxLCAweGY5LCAweGFmLCAweDYxLCAweGFlLCAweDYwLCAweGFkLCAweDVmLCAweGFjLCAweDVlLCAweGVjLCAweDRkLCAweDRlLCAweDRmLCAweDcwfSB9LAoteyAweDkxOTAsCTE2LAl7MHgwOCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHhkNywgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxNn0gfSwKLXsgMHg5MWEwLAkxNiwJezB4YWYsIDB4MDMsIDB4YWUsIDB4MDIsIDB4N2MsIDB4N2IsIDB4N2QsIDB4ODAsIDB4YWIsIDB4NWQsIDB4MTIsIDB4OTEsIDB4MzcsIDB4OTAsIDB4N2YsIDB4YzN9IH0sCi17IDB4OTFiMCwJOCwJezB4ZTUsIDB4NWQsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCi17IDB4OTFiOCwJMSwJezB4MjJ9IH0sCi17IDB4OTFiOSwJMTYsCXsweDkwLCAweDAxLCAweDg0LCAweDc0LCAweDBiLCAweGYwLCAweGEzLCAweGU1LCAweDMzLCAweGYwLCAweDkwLCAweDBhLCAweGY1LCAweGU0LCAweDkzLCAweDkwfSB9LAoteyAweDkxYzksCTE2LAl7MHgwMSwgMHg4NiwgMHhmMCwgMHg5MCwgMHgwYSwgMHhmNiwgMHhlNCwgMHg5MywgMHg5MCwgMHgwMSwgMHg4NywgMHhmMCwgMHhlNCwgMHg5MCwgMHgwMSwgMHg3Y30gfSwKLXsgMHg5MWQ5LAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDF9IH0sCi17IDB4OTFlOSwJMTYsCXsweGYwLCAweGEzLCAweDc0LCAweDg4LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDdjLCAweDEyLCAweDE5LCAweGMxLCAweDdlLCAweDAxLCAweDdmLCAweDg0fSB9LAoteyAweDkxZjksCTcsCXsweDdkLCAweDE0LCAweDEyLCAweDkxLCAweDZhLCAweDdmLCAweDAwfSB9LAoteyAweDkyMDAsCTEsCXsweDIyfSB9LAoteyAweDkyMDEsCTE2LAl7MHg3ZSwgMHg3YiwgMHg3ZiwgMHg0MCwgMHg3NSwgMHg0ZSwgMHg3YiwgMHg3NSwgMHg0ZiwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhlMCwgMHhmZiwgMHg4NX0gfSwKLXsgMHg5MjExLAkxNiwJezB4NGUsIDB4NTEsIDB4ODUsIDB4NGYsIDB4NTIsIDB4ZTUsIDB4NTIsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4NTYsIDB4ZTQsIDB4MzUsIDB4NTEsIDB4ZjUsIDB4NTV9IH0sCi17IDB4OTIyMSwJMTYsCXsweGU0LCAweGY1LCAweDUwLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxLCAweDgzLCAweGUwLCAweGZlLCAweDE0LCAweGI0LCAweDBjLCAweDAwLCAweDUwfSB9LAoteyAweDkyMzEsCTE2LAl7MHg1YiwgMHg5MCwgMHg5MiwgMHgzOSwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMiwgMHg5MiwgMHg1ZCwgMHgwMiwgMHg5MiwgMHg1ZCwgMHgwMiwgMHg5Mn0gfSwKLXsgMHg5MjQxLAkxNiwJezB4NjcsIDB4MDIsIDB4OTIsIDB4NzEsIDB4MDIsIDB4OTIsIDB4NzEsIDB4MDIsIDB4OTIsIDB4NzEsIDB4MDIsIDB4OTIsIDB4ODUsIDB4MDIsIDB4OTIsIDB4NWR9IH0sCi17IDB4OTI1MSwJMTYsCXsweDAyLCAweDkyLCAweDdiLCAweDAyLCAweDkyLCAweDVkLCAweDAyLCAweDkyLCAweDhkLCAweDAyLCAweDkyLCAweDVkLCAweGVmLCAweDY0LCAweDAyLCAweDYwfSB9LAoteyAweDkyNjEsCTE2LAl7MHgyYiwgMHg3NSwgMHg1MCwgMHhmZiwgMHg4MCwgMHgyNiwgMHhlZiwgMHg2NCwgMHgwZSwgMHg2MCwgMHgyMSwgMHg3NSwgMHg1MCwgMHhmZiwgMHg4MCwgMHgxY30gfSwKLXsgMHg5MjcxLAkxNiwJezB4ZWYsIDB4NjQsIDB4MDMsIDB4NjAsIDB4MTcsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ODAsIDB4MTIsIDB4ZWYsIDB4NjQsIDB4MDMsIDB4NjAsIDB4MGQsIDB4NzV9IH0sCi17IDB4OTI4MSwJMTYsCXsweDUwLCAweGZmLCAweDgwLCAweDA4LCAweGVmLCAweDY0LCAweDA2LCAweDYwLCAweDAzLCAweDc1LCAweDUwLCAweGZmLCAweGU1LCAweDUwLCAweDYwLCAweDE1fSB9LAoteyAweDkyOTEsCTE2LAl7MHg5MCwgMHgwMSwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHhhMywgMHhlZSwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg5OCwgMHg3ZCwgMHgwMiwgMHgxMn0gfSwKLXsgMHg5MmExLAkxNiwJezB4OTEsIDB4NmEsIDB4YWYsIDB4NTAsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4NTAsIDB4ODUsIDB4NTIsIDB4ODIsIDB4ODUsIDB4NTEsIDB4ODMsIDB4ZTAsIDB4MTR9IH0sCi17IDB4OTJiMSwJMTYsCXsweGI0LCAweDBmLCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDkzLCAweGNmLCAweDkwLCAweDkyLCAweGMwLCAweGY4LCAweDI4LCAweDI4LCAweDczLCAweDAyfSB9LAoteyAweDkyYzEsCTE2LAl7MHg5MiwgMHhlZCwgMHgwMiwgMHg5MiwgMHhmOSwgMHgwMiwgMHg5MywgMHgwNSwgMHgwMiwgMHg5MywgMHg1MywgMHgwMiwgMHg5MywgMHg1ZSwgMHgwMiwgMHg5M30gfSwKLXsgMHg5MmQxLAkxNiwJezB4NjksIDB4MDIsIDB4OTMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4N2YsIDB4MDIsIDB4OTMsIDB4OGEsIDB4MDIsIDB4OTMsIDB4OTUsIDB4MDIsIDB4OTMsIDB4YTB9IH0sCi17IDB4OTJlMSwJMTYsCXsweDAyLCAweDkzLCAweGE3LCAweDAyLCAweDkzLCAweGNmLCAweDAyLCAweDkzLCAweGIyLCAweDAyLCAweDkzLCAweGJkLCAweGFmLCAweDU2LCAweGFlLCAweDU1fSB9LAoteyAweDkyZjEsCTE2LAl7MHgxMiwgMHg4NCwgMHg0MSwgMHg4ZiwgMHg1MCwgMHgwMiwgMHg5MywgMHhkMiwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4NSwgMHg2MSwgMHg4Zn0gfSwKLXsgMHg5MzAxLAkxNiwJezB4NTAsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4ODUsIDB4NTUsIDB4NTMsIDB4ODUsIDB4NTYsIDB4NTQsIDB4ZTUsIDB4NTQsIDB4MjQsIDB4MDEsIDB4ZmYsIDB4ZTR9IH0sCi17IDB4OTMxMSwJMTYsCXsweDM1LCAweDUzLCAweGZlLCAweDEyLCAweDg2LCAweGJlLCAweGFmLCAweDU0LCAweGFlLCAweDUzLCAweDEyLCAweDg3LCAweDUxLCAweDhmLCAweDUwLCAweGVmfSB9LAoteyAweDkzMjEsCTE2LAl7MHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHg5MywgMHhkMiwgMHhhZiwgMHg1NCwgMHhhZSwgMHg1MywgMHgxMiwgMHg4NywgMHhhNiwgMHg4ZiwgMHg1MH0gfSwKLXsgMHg5MzMxLAkxNiwJezB4ZTUsIDB4NTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4ZTAsIDB4NzUsIDB4ZjB9IH0sCi17IDB4OTM0MSwJMTYsCXsweDBkLCAweGE0LCAweDI0LCAweGY0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGFmLCAweDgyLCAweGZlLCAweDEyLCAweDg3LCAweGE2LCAweDAyfSB9LAoteyAweDkzNTEsCTE2LAl7MHg5MywgMHhkMiwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4YywgMHhhNiwgMHg4ZiwgMHg1MCwgMHg4MCwgMHg3NCwgMHhhZiwgMHg1NiwgMHhhZX0gfSwKLXsgMHg5MzYxLAkxNiwJezB4NTUsIDB4MTIsIDB4OGQsIDB4MjcsIDB4OGYsIDB4NTAsIDB4ODAsIDB4NjksIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGQsIDB4NzAsIDB4OGZ9IH0sCi17IDB4OTM3MSwJMTYsCXsweDUwLCAweDgwLCAweDVlLCAweGFmLCAweDRmLCAweGFlLCAweDRlLCAweDEyLCAweDhlLCAweDk5LCAweDhmLCAweDUwLCAweDgwLCAweDUzLCAweGFmLCAweDU2fSB9LAoteyAweDkzODEsCTE2LAl7MHhhZSwgMHg1NSwgMHgxMiwgMHg4YiwgMHhiZCwgMHg4ZiwgMHg1MCwgMHg4MCwgMHg0OCwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4NiwgMHgyZH0gfSwKLXsgMHg5MzkxLAkxNiwJezB4OGYsIDB4NTAsIDB4ODAsIDB4M2QsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGMsIDB4NjIsIDB4OGYsIDB4NTAsIDB4ODAsIDB4MzIsIDB4MTJ9IH0sCi17IDB4OTNhMSwJMTYsCXsweDkxLCAweGI5LCAweDhmLCAweDUwLCAweDgwLCAweDJiLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhkLCAweGI1LCAweDhmLCAweDUwLCAweDgwfSB9LAoteyAweDkzYjEsCTE2LAl7MHgyMCwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4ZCwgMHhkNiwgMHg4ZiwgMHg1MCwgMHg4MCwgMHgxNSwgMHhhZiwgMHg0ZiwgMHhhZSwgMHg0ZX0gfSwKLXsgMHg5M2MxLAkxNiwJezB4N2MsIDB4MDIsIDB4N2QsIDB4YWYsIDB4N2IsIDB4NDAsIDB4MTIsIDB4OTEsIDB4MzcsIDB4ZTQsIDB4ZjUsIDB4NTAsIDB4ODAsIDB4MDMsIDB4NzUsIDB4NTB9IH0sCi17IDB4OTNkMSwJMTYsCXsweGZmLCAweGU1LCAweDUwLCAweDYwLCAweDFkLCAweDkwLCAweDAxLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxfSB9LAoteyAweDkzZTEsCTE2LAl7MHg4MywgMHhlMCwgMHg5MCwgMHgwMSwgMHg5OSwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg5OCwgMHg3ZCwgMHgwMiwgMHgxMiwgMHg5MSwgMHg2YSwgMHhhZn0gfSwKLXsgMHg5M2YxLAkxNiwJezB4NTAsIDB4MjIsIDB4ODUsIDB4NTIsIDB4ODIsIDB4ODUsIDB4NTEsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTQsIDB4MjQsIDB4ZmEsIDB4NTAsIDB4MDQsIDB4MjR9IH0sCi17IDB4OTQwMSwJMTYsCXsweGZlLCAweDcwLCAweDFmLCAweDkwLCAweDAxLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDg1LCAweDU2LCAweDgyLCAweDg1fSB9LAoteyAweDk0MTEsCTE2LAl7MHg1NSwgMHg4MywgMHhlMCwgMHg5MCwgMHgwMSwgMHg5YSwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg5OCwgMHg3ZCwgMHgwMywgMHgxMiwgMHg5MSwgMHg2YX0gfSwKLXsgMHg5NDIxLAk0LAl7MHg4ZiwgMHg1MCwgMHhhZiwgMHg1MH0gfSwKLXsgMHg5NDI1LAkxLAl7MHgyMn0gfSwKLXsgMHg5NDI2LAk4LAl7MHg4ZiwgMHg1MSwgMHg4ZSwgMHg1MCwgMHg4ZCwgMHg0ZiwgMHg4YywgMHg0ZX0gfSwKLXsgMHg5NDJlLAkxNiwJezB4NzUsIDB4NTgsIDB4MDEsIDB4NzUsIDB4NTksIDB4OWMsIDB4ZTQsIDB4ZjUsIDB4NTcsIDB4YWYsIDB4NTMsIDB4MTUsIDB4NTMsIDB4ZWYsIDB4NzAsIDB4MDN9IH0sCi17IDB4OTQzZSwJMTYsCXsweDAyLCAweDk0LCAweGM0LCAweGFmLCAweDUyLCAweGU0LCAweGZjLCAweGZkLCAweGZlLCAweGY4LCAweGY5LCAweGZhLCAweGFiLCAweDA3LCAweGFmLCAweDUxfSB9LAoteyAweDk0NGUsCTE2LAl7MHhhZSwgMHg1MCwgMHhhZCwgMHg0ZiwgMHhhYywgMHg0ZSwgMHgxMiwgMHhhMywgMHgyMSwgMHhhZiwgMHgwMywgMHg4ZiwgMHg1NiwgMHhhZiwgMHg1MSwgMHhhZX0gfSwKLXsgMHg5NDVlLAkxNiwJezB4NTAsIDB4YWQsIDB4NGYsIDB4YWMsIDB4NGUsIDB4YzAsIDB4MDQsIDB4YzAsIDB4MDUsIDB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4YWYsIDB4NTIsIDB4ZTR9IH0sCi17IDB4OTQ2ZSwJMTYsCXsweGZjLCAweGZkLCAweGZlLCAweGY4LCAweGY5LCAweGZhLCAweGFiLCAweDA3LCAweGQwLCAweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDA1LCAweGQwLCAweDA0fSB9LAoteyAweDk0N2UsCTE2LAl7MHgxMiwgMHhhMywgMHgyMSwgMHg4ZiwgMHg1MSwgMHg4ZSwgMHg1MCwgMHg4ZCwgMHg0ZiwgMHg4YywgMHg0ZSwgMHhlNSwgMHg1NiwgMHgyNCwgMHgzMCwgMHhmNX0gfSwKLXsgMHg5NDhlLAkxNiwJezB4NTYsIDB4ZDMsIDB4OTQsIDB4MzksIDB4NDAsIDB4MDYsIDB4NzQsIDB4MDcsIDB4MjUsIDB4NTYsIDB4ZjUsIDB4NTYsIDB4MDUsIDB4NTksIDB4ZTUsIDB4NTl9IH0sCi17IDB4OTQ5ZSwJMTYsCXsweGFlLCAweDU4LCAweDcwLCAweDAyLCAweDA1LCAweDU4LCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU0LCAweGYwLCAweDA1LCAweDU5LCAweGU1fSB9LAoteyAweDk0YWUsCTE2LAl7MHg1OSwgMHhhZSwgMHg1OCwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1OCwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHg1NiwgMHhmMCwgMHgwNX0gfSwKLXsgMHg5NGJlLAkxNiwJezB4NTcsIDB4MDUsIDB4NTcsIDB4MDIsIDB4OTQsIDB4MzcsIDB4ZTUsIDB4NTksIDB4MTUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTgsIDB4YWYsIDB4NTd9IH0sCi17IDB4OTRjZSwJMTYsCXsweDE1LCAweDU3LCAweGVmLCAweDYwLCAweDIzLCAweGU1LCAweDU5LCAweDE1LCAweDU5LCAweGFlLCAweDU4LCAweDcwLCAweDAyLCAweDE1LCAweDU4LCAweGY1fSB9LAoteyAweDk0ZGUsCTE2LAl7MHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZiwgMHgwNSwgMHg1NSwgMHhlNSwgMHg1NSwgMHhhYywgMHg1NCwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NCwgMHgxNH0gfSwKLXsgMHg5NGVlLAk4LAl7MHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg4MCwgMHhkNn0gfSwKLXsgMHg5NGY2LAkxLAl7MHgyMn0gfSwKLXsgMHg5NGY3LAkxNiwJezB4ZTQsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4Y2EsIDB4OTAsIDB4MDEsIDB4YmUsIDB4ZWUsIDB4ZjAsIDB4YTMsIDB4ZWZ9IH0sCi17IDB4OTUwNywJMTAsCXsweGYwLCAweDkwLCAweDAxLCAweGMyLCAweGVlLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDIyfSB9LAoteyAweDk1MTEsCTE2LAl7MHhhYSwgMHgwNywgMHhhOSwgMHgwNSwgMHg5MCwgMHgwMSwgMHhjOSwgMHhlMCwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2MSwgMHhhYywgMHgwMiwgMHg3NH0gfSwKLXsgMHg5NTIxLAkxNiwJezB4MDEsIDB4N2UsIDB4MDAsIDB4YTgsIDB4MDQsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2UsIDB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmZ9IH0sCi17IDB4OTUzMSwJMTYsCXsweGU0LCAweGVmLCAweDU1LCAweDM0LCAweDYwLCAweDQ1LCAweGVhLCAweDA0LCAweGZmLCAweDkwLCAweDAxLCAweGMyLCAweGUwLCAweGZjLCAweGEzLCAweGUwfSB9LAoteyAweDk1NDEsCTE2LAl7MHhmZCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHhhMywgMHhlOSwgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhM30gfSwKLXsgMHg5NTUxLAkxNiwJezB4ZWIsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzIsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4YTIsIDB4ODEsIDB4ZmMsIDB4ZDMsIDB4ZTUsIDB4ZjB9IH0sCi17IDB4OTU2MSwJMTYsCXsweDk0LCAweDg3LCAweGVjLCAweDk0LCAweDAyLCAweDQwLCAweDBhLCAweDkwLCAweDAxLCAweGMyLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweGNhfSB9LAoteyAweDk1NzEsCTE2LAl7MHhmMCwgMHhjMiwgMHhhZiwgMHg5MCwgMHgwMSwgMHhjOSwgMHhlMCwgMHgwNCwgMHhmMCwgMHhkMiwgMHhhZiwgMHg3ZiwgMHgwMSwgMHgyMiwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg5NTgxLAkxLAl7MHgyMn0gfSwKLXsgMHg5NTgyLAkxNiwJezB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4NTUsIDB4OTAsIDB4MDEsIDB4YmUsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTB9IH0sCi17IDB4OTU5MiwJMTYsCXsweGFhLCAweDA0LCAweGY5LCAweDdiLCAweDAxLCAweGMwLCAweDAzLCAweGMwLCAweDAyLCAweGMwLCAweDAxLCAweGFhLCAweDA2LCAweGE5LCAweDA3LCAweGE4fSB9LAoteyAweDk1YTIsCTE2LAl7MHgwMSwgMHhhYywgMHgwMiwgMHhhZCwgMHgwMywgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMywgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwMywgMHgxMn0gfSwKLXsgMHg5NWIyLAkxNiwJezB4YTIsIDB4MTIsIDB4OTAsIDB4MDEsIDB4YmUsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4YTIsIDB4ODEsIDB4ZmMsIDB4ZDMsIDB4ZTUsIDB4ZjB9IH0sCi17IDB4OTVjMiwJMTYsCXsweDk0LCAweDg3LCAweGVjLCAweDk0LCAweDAyLCAweDQwLCAweDBhLCAweDkwLCAweDAxLCAweGJlLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweGNhfSB9LAoteyAweDk1ZDIsCTE2LAl7MHhmMCwgMHhjMiwgMHhhZiwgMHg5MCwgMHgwMSwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmMCwgMHhkMiwgMHhhZiwgMHg3ZiwgMHgwMSwgMHgyMiwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg5NWUyLAkxLAl7MHgyMn0gfSwKLXsgMHg5NWUzLAkxNiwJezB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NzMsIDB4N2UsIDB4N2IsIDB4N2YsIDB4ODAsIDB4NzUsIDB4NTMsIDB4N2IsIDB4NzUsIDB4NTR9IH0sCi17IDB4OTVmMywJMTYsCXsweDgwLCAweGU1LCAweDU0LCAweDI0LCAweDAxLCAweGZmLCAweGU0LCAweDM1LCAweDUzLCAweGE5LCAweDA3LCAweDdiLCAweDAxLCAweDhiLCAweDU1LCAweGY1fSB9LAoteyAweDk2MDMsCTE2LAl7MHg1NiwgMHg4OSwgMHg1NywgMHhmZSwgMHgxMiwgMHg5NSwgMHg4MiwgMHhlZiwgMHg2MCwgMHg1MCwgMHhhYiwgMHg1NSwgMHhhYSwgMHg1NiwgMHhhOSwgMHg1N30gfSwKLXsgMHg5NjEzLAkxNiwJezB4MTIsIDB4YTIsIDB4M2IsIDB4MTQsIDB4ZmYsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4NTQsIDB4YjQsIDB4MDIsIDB4MTYsIDB4YzIsIDB4YWZ9IH0sCi17IDB4OTYyMywJMTYsCXsweGVmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweDQ0fSB9LAoteyAweDk2MzMsCTE2LAl7MHgwNCwgMHhmMCwgMHhkMiwgMHhhZiwgMHg3NCwgMHgwMSwgMHg3ZSwgMHgwMCwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZX0gfSwKLXsgMHg5NjQzLAkxNiwJezB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTQsIDB4ZWYsIDB4NTUsIDB4MzQsIDB4NjAsIDB4MGYsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTN9IH0sCi17IDB4OTY1MywJMTAsCXsweDgzLCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA0LCAweGYwfSB9LAoteyAweDk2NWQsCTEsCXsweDIyfSB9LAoteyAweDk2NWUsCTE2LAl7MHgxMiwgMHg5NSwgMHhlMywgMHhlNCwgMHhmNSwgMHg0ZSwgMHg3NCwgMHgzYSwgMHgyNSwgMHg0ZSwgMHhmOCwgMHhlNiwgMHg1NCwgMHhmMCwgMHhmNSwgMHg0Zn0gfSwKLXsgMHg5NjZlLAkxNiwJezB4NzQsIDB4YzUsIDB4MjUsIDB4NGUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjUsIDB4NGYsIDB4ZmYsIDB4YzR9IH0sCi17IDB4OTY3ZSwJMTYsCXsweDU0LCAweDBmLCAweGY1LCAweDUwLCAweDYwLCAweDIyLCAweDc0LCAweGM1LCAweDI1LCAweDRlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAxLCAweGY1fSB9LAoteyAweDk2OGUsCTE2LAl7MHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMSwgMHhlNSwgMHg0ZiwgMHg0NSwgMHg1MCwgMHhmYiwgMHgxMiwgMHg5NSwgMHgxMX0gfSwKLXsgMHg5NjllLAkxNiwJezB4ZWYsIDB4NzAsIDB4MDUsIDB4MTIsIDB4OTUsIDB4ZTMsIDB4ODAsIDB4ZWMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDB9IH0sCi17IDB4OTZhZSwJMTYsCXsweGI1LCAweDEyLCAweDk1LCAweGUzLCAweGU1LCAweDNlLCAweDYwLCAweDQ4LCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweDc0LCAweDAxLCAweGE4fSB9LAoteyAweDk2YmUsCTE2LAl7MHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg0ZiwgMHg1NSwgMHgzZSwgMHg2MCwgMHgyOSwgMHhlNSwgMHg0ZX0gfSwKLXsgMHg5NmNlLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTZ9IH0sCi17IDB4OTZkZSwJMTYsCXsweDE2LCAweGFmLCAweDRlLCAweDdkLCAweDA0LCAweDdiLCAweDgwLCAweDEyLCAweDk1LCAweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzfSB9LAoteyAweDk2ZWUsCTE2LAl7MHg4MCwgMHhlZiwgMHhlNSwgMHg0ZiwgMHhmNCwgMHg1MiwgMHgzZSwgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHhiYn0gfSwKLXsgMHg5NmZlLAkxNiwJezB4OTAsIDB4MDMsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OTcsIDB4ZGYsIDB4NzQsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTR9IH0sCi17IDB4OTcwZSwJMTYsCXsweDAxLCAweDQwLCAweDBkLCAweDkwLCAweDIwLCAweDc4LCAweGUwLCAweDU0LCAweDBmLCAweDc1LCAweDUxLCAweDAwLCAweGY1LCAweDUyLCAweDgwLCAweDA5fSB9LAoteyAweDk3MWUsCTE2LAl7MHg3ZiwgMHgwMiwgMHgxMiwgMHgxMSwgMHgyNywgMHg4ZSwgMHg1MSwgMHg4ZiwgMHg1MiwgMHhjMywgMHhlNSwgMHg1MSwgMHg2NCwgMHg4MCwgMHg5NCwgMHg4MH0gfSwKLXsgMHg5NzJlLAkxNiwJezB4NDAsIDB4ZGEsIDB4OTAsIDB4MDEsIDB4YmMsIDB4ZTAsIDB4NjUsIDB4NTIsIDB4ZjAsIDB4NjAsIDB4MzcsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4YWYsIDB4NGV9IH0sCi17IDB4OTczZSwJMTYsCXsweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY1LCAweDRmLCAweDkwLCAweDAxLCAweGJjfSB9LAoteyAweDk3NGUsCTE2LAl7MHhlMCwgMHg1NSwgMHg0ZiwgMHg2MCwgMHgxNCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwOCwgMHhlNSwgMHg0ZiwgMHg1NSwgMHg1MiwgMHhmYiwgMHgxMiwgMHg5NX0gfSwKLXsgMHg5NzVlLAkxNiwJezB4MTEsIDB4ZWYsIDB4NzAsIDB4MDUsIDB4MTIsIDB4OTUsIDB4ZTMsIDB4ODAsIDB4ZWMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4YzMsIDB4OTQsIDB4MDR9IH0sCi17IDB4OTc2ZSwJMTYsCXsweDQwLCAweGNjLCAweDkwLCAweDAxLCAweGJjLCAweGU1LCAweDUyLCAweGYwLCAweGU0LCAweGY1LCAweDRlLCAweGMyLCAweGFmLCAweDc0LCAweDM2LCAweDI1fSB9LAoteyAweDk3N2UsCTE2LAl7MHg0ZSwgMHhmOCwgMHhlNiwgMHhmNSwgMHg0ZiwgMHhlNCwgMHhmNiwgMHhkMiwgMHhhZiwgMHg1MywgMHg0ZiwgMHgxZSwgMHhlNSwgMHg0ZiwgMHg2MCwgMHgxMX0gfSwKLXsgMHg5NzhlLAkxNiwJezB4YWYsIDB4NGUsIDB4N2QsIDB4MDIsIDB4YWIsIDB4NGYsIDB4MTIsIDB4OTUsIDB4MTEsIDB4ZWYsIDB4NzAsIDB4MDUsIDB4MTIsIDB4OTUsIDB4ZTMsIDB4ODB9IH0sCi17IDB4OTc5ZSwJMTYsCXsweGVmLCAweDc0LCAweDJkLCAweDI1LCAweDRlLCAweGY4LCAweGU2LCAweGY1LCAweDRmLCAweDc0LCAweGZjLCAweDI1LCAweDRlLCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDk3YWUsCTE2LAl7MHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlMCwgMHg2NSwgMHg0ZiwgMHg2MCwgMHgxMSwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwNCwgMHhhYiwgMHg0ZiwgMHgxMn0gfSwKLXsgMHg5N2JlLAkxNiwJezB4OTUsIDB4MTEsIDB4ZWYsIDB4NzAsIDB4MDUsIDB4MTIsIDB4OTUsIDB4ZTMsIDB4ODAsIDB4ZWYsIDB4NzQsIDB4ZmMsIDB4MjUsIDB4NGUsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OTdjZSwJMTYsCXsweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGU1LCAweDRmLCAweGYwLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0LCAweDQwfSB9LAoteyAweDk3ZGUsCTQsCXsweDlhLCAweDEyLCAweDk1LCAweGUzfSB9LAoteyAweDk3ZTIsCTEsCXsweDIyfSB9LAoteyAweDk3ZTMsCTEyLAl7MHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg2NywgMHgwMiwgMHg5OCwgMHgyYX0gfSwKLXsgMHg5N2VmLAkxNiwJezB4MDIsIDB4MDUsIDB4YWQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjJ9IH0sCi17IDB4OTdmZiwJMTYsCXsweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzfSB9LAoteyAweDk4MGYsCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZn0gfSwKLXsgMHg5ODFmLAkxNiwJezB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4OTgsIDB4NmYsIDB4ZTQsIDB4N2V9IH0sCi17IDB4OTgyZiwJMTYsCXsweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzfSB9LAoteyAweDk4M2YsCTE2LAl7MHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhM30gfSwKLXsgMHg5ODRmLAkxNiwJezB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9IH0sCi17IDB4OTg1ZiwJMTYsCXsweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlfSB9LAoteyAweDk4NmYsCTE2LAl7MHg2MCwgMHgyNCwgMHgwMiwgMHg4YSwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg4MSwgMHg4MiwgMHg4NCwgMHg4OH0gfSwKLXsgMHg5ODdmLAkxNiwJezB4OTAsIDB4YTAsIDB4YzAsIDB4YzEsIDB4YzIsIDB4YzQsIDB4YzgsIDB4ZDAsIDB4ZTAsIDB4ZTEsIDB4ZTIsIDB4ZTQsIDB4ZTgsIDB4ZjAsIDB4ZjEsIDB4ZjJ9IH0sCi17IDB4OTg4ZiwJOCwJezB4ZjQsIDB4ZjgsIDB4ZjksIDB4ZmEsIDB4ZmMsIDB4ZmQsIDB4ZmUsIDB4ZmZ9IH0sCi17IDB4OTg5NywJMSwJezB4MDB9IH0sCi17IDB4OTg5OCwJOCwJezB4OGIsIDB4NTksIDB4OGEsIDB4NWEsIDB4ODksIDB4NWIsIDB4OGQsIDB4NWN9IH0sCi17IDB4OThhMCwJMTYsCXsweGU0LCAweGY1LCAweDVkLCAweGY1LCAweDVlLCAweGFmLCAweDVjLCAweDE1LCAweDVjLCAweGVmLCAweDYwLCAweDM2LCAweGFiLCAweDU5LCAweDA1LCAweDVifSB9LAoteyAweDk4YjAsCTE2LAl7MHhlNSwgMHg1YiwgMHhhYSwgMHg1YSwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1YSwgMHgxNCwgMHhmOSwgMHgxMiwgMHhhMiwgMHgzYiwgMHhmZiwgMHhlNSwgMHg1ZH0gfSwKLXsgMHg5OGMwLAkxNiwJezB4ZTUsIDB4NWUsIDB4NmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4NzQsIDB4OTUsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZWUsIDB4MzR9IH0sCi17IDB4OThkMCwJMTYsCXsweDllLCAweGY1LCAweDgzLCAweGU1LCAweDVkLCAweGZmLCAweGU0LCAweDkzLCAweGY1LCAweDVkLCAweDc0LCAweDAxLCAweDkzLCAweDZmLCAweGY1LCAweDVlfSB9LAoteyAweDk4ZTAsCTYsCXsweDgwLCAweGMzLCAweGFlLCAweDVkLCAweGFmLCAweDVlfSB9LAoteyAweDk4ZTYsCTEsCXsweDIyfSB9LAoteyAweDk4ZTcsCTExLAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxOH0gfSwKLXsgMHg5OGYyLAkxNiwJezB4OTAsIDB4MjAsIDB4NjAsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4ZmUsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4OTAsIDB4MjAsIDB4MDIsIDB4ZTAsIDB4ZmYsIDB4ZWV9IH0sCi17IDB4OTkwMiwJMTYsCXsweDMwLCAweGUxLCAweDA1LCAweDkwLCAweDIwLCAweDBhLCAweGUwLCAweGZmLCAweGVlLCAweDMwLCAweGUyLCAweDA1LCAweDkwLCAweDIwLCAweDEyLCAweGUwfSB9LAoteyAweDk5MTIsCTE2LAl7MHhmZiwgMHhlZSwgMHgzMCwgMHhlMywgMHgwNSwgMHg5MCwgMHgyMCwgMHgxYSwgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMSwgMHhjNCwgMHhlMCwgMHhiNSwgMHgxZX0gfSwKLXsgMHg5OTIyLAkxMCwJezB4MDQsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZWUsIDB4ZjB9IH0sCi17IDB4OTkyYywJOSwJezB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4OTkzNSwJMiwJezB4YTksIDB4MDN9IH0sCi17IDB4OTkzNywJMTYsCXsweGVmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFiLCAweDgyLCAweGZhLCAweGU1fSB9LAoteyAweDk5NDcsCTE2LAl7MHg1YywgMHg0NSwgMHg1ZCwgMHhmNSwgMHg1ZSwgMHhlOSwgMHg2MCwgMHgxNCwgMHg4YSwgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg5OTU3LAkxNiwJezB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NGQsIDB4ZjAsIDB4ZTQsIDB4ZmUsIDB4ODAsIDB4MTMsIDB4ZWIsIDB4MjQsIDB4MDQsIDB4ZjV9IH0sCi17IDB4OTk2NywJMTYsCXsweDgyLCAweGU0LCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGVkLCAweGY0LCAweGZjLCAweGVmLCAweDVjLCAweGYwLCAweGFlLCAweDVlLCAweGVifSB9LAoteyAweDk5NzcsCTE2LAl7MHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NSwgMHg1ZSwgMHhmYywgMHhiNSwgMHgwNiwgMHgwMywgMHhhZn0gfSwKLXsgMHg5OTg3LAkxNiwJezB4MDUsIDB4MjIsIDB4ZTUsIDB4NWMsIDB4NWMsIDB4ZmUsIDB4ZTUsIDB4NWQsIDB4NWMsIDB4ZmQsIDB4ZTksIDB4NjAsIDB4MTYsIDB4ZWUsIDB4NzAsIDB4MDR9IH0sCi17IDB4OTk5NywJMTYsCXsweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweGFlLCAweDA3LCAweGVkLCAweDcwLCAweDA0LCAweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmfSB9LAoteyAweDk5YTcsCTE2LAl7MHgwMCwgMHhhZCwgMHgwNywgMHhlZSwgMHg2MCwgMHgwMywgMHhhZiwgMHg1YywgMHgyMiwgMHhlZCwgMHg2MCwgMHgwMywgMHhhZiwgMHg1ZCwgMHgyMiwgMHg3Zn0gfSwKLXsgMHg5OWI3LAkxLAl7MHgwMH0gfSwKLXsgMHg5OWI4LAkxLAl7MHgyMn0gfSwKLXsgMHg5OWI5LAkxNiwJezB4NzUsIDB4NTUsIDB4MDIsIDB4NzUsIDB4NTYsIDB4YjAsIDB4OTAsIDB4MDMsIDB4MzUsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODV9IH0sCi17IDB4OTljOSwJMTYsCXsweDU1LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDkwLCAweDAzLCAweDM3LCAweGYwLCAweDg1LCAweDU2LCAweDgyLCAweDg1LCAweDU1LCAweDgzLCAweGUwfSB9LAoteyAweDk5ZDksCTE2LAl7MHg5MCwgMHgwMywgMHgzNiwgMHhmMCwgMHg5MCwgMHgwMywgMHgzOCwgMHg3NCwgMHhmZiwgMHhmMCwgMHg3NSwgMHg1NywgMHgwMywgMHg3NSwgMHg1OCwgMHgzOX0gfSwKLXsgMHg5OWU5LAkxNiwJezB4ZWYsIDB4MTQsIDB4YjQsIDB4MGIsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4OWUsIDB4NWQsIDB4OTAsIDB4OTksIDB4ZmEsIDB4ZjgsIDB4MjgsIDB4Mjh9IH0sCi17IDB4OTlmOSwJMTYsCXsweDczLCAweDAyLCAweDlhLCAweDFiLCAweDAyLCAweDlhLCAweGJhLCAweDAyLCAweDliLCAweGJmLCAweDAyLCAweDliLCAweGRlLCAweDAyLCAweDliLCAweGRlfSB9LAoteyAweDlhMDksCTE2LAl7MHgwMiwgMHg5YywgMHg5NCwgMHgwMiwgMHg5YywgMHhjZiwgMHgwMiwgMHg5YywgMHhmNCwgMHgwMiwgMHg5ZCwgMHhiMiwgMHgwMiwgMHg5ZCwgMHhlMiwgMHgwMn0gfSwKLXsgMHg5YTE5LAkxNiwJezB4OWUsIDB4MGUsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4OWEyOSwJMTYsCXsweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1LCAweDUzLCAweDhmLCAweDU0LCAweGU0LCAweGZmLCAweGU0LCAweGZlLCAweGVmLCAweDYwLCAweDEwLCAweDc0fSB9LAoteyAweDlhMzksCTE2LAl7MHg4YSwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNCwgMHhmNSwgMHg0ZiwgMHg4MCwgMHgwZCwgMHg3NH0gfSwKLXsgMHg5YTQ5LAkxNiwJezB4OGEsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NGYsIDB4ZTUsIDB4NTQsIDB4MjQsIDB4MDd9IH0sCi17IDB4OWE1OSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDUzLCAweGY1LCAweDgzLCAweGU1LCAweDRmLCAweGYwLCAweGUwLCAweGY1LCAweDUwLCAweDY1LCAweDRmLCAweDYwfSB9LAoteyAweDlhNjksCTE2LAl7MHgzOCwgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZCwgMHgwNSwgMHg1OCwgMHhlNSwgMHg1OCwgMHhhYSwgMHg1N30gfSwKLXsgMHg5YTc5LAkxNiwJezB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWQsIDB4ZjAsIDB4MDUsIDB4NTgsIDB4ZTUsIDB4NTgsIDB4YWN9IH0sCi17IDB4OWE4OSwJMTYsCXsweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGU1LCAweDRmLCAweGYwLCAweDg1LCAweDU4LCAweDgyfSB9LAoteyAweDlhOTksCTE2LAl7MHg4NSwgMHg1NywgMHg4MywgMHhlNSwgMHg1MCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHgwZSwgMHhiZSwgMHgyNCwgMHg4ZiwgMHgwZiwgMHhlZiwgMHg2NH0gfSwKLXsgMHg5YWE5LAkxNiwJezB4MDIsIDB4NzAsIDB4ODcsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4NjQsIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OWEsIDB4MWUsIDB4MDIsIDB4OWV9IH0sCi17IDB4OWFiOSwJMTYsCXsweDYzLCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweGU0LCAweGZkLCAweDEyLCAweDgzLCAweDVhLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGQzfSB9LAoteyAweDlhYzksCTE2LAl7MHg5NCwgMHgwMywgMHg0MCwgMHhmMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHg3NCwgMHg5OCwgMHhmMCwgMHhhMywgMHg3NCwgMHhlNywgMHhmMCwgMHhlNCwgMHhmNX0gfSwKLXsgMHg5YWQ5LAkxNiwJezB4NTAsIDB4N2UsIDB4MjAsIDB4N2YsIDB4MDAsIDB4NzUsIDB4NTMsIDB4MjAsIDB4NzUsIDB4NTQsIDB4MDAsIDB4ZjUsIDB4NGUsIDB4YWYsIDB4NGUsIDB4NzR9IH0sCi17IDB4OWFlOSwJMTYsCXsweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY1LCAweDRmLCAweDkwLCAweDAxLCAweGM0LCAweGYwfSB9LAoteyAweDlhZjksCTE2LAl7MHg5MCwgMHgwMSwgMHhjMCwgMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwYSwgMHhmMCwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1MywgMHg4MywgMHhhM30gfSwKLXsgMHg5YjA5LAkxNiwJezB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTAsIDB4YjUsIDB4NGYsIDB4MzQsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDJ9IH0sCi17IDB4OWIxOSwJMTYsCXsweGEzLCAweGUwLCAweDcwLCAweGVmLCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweGU1LCAweDRlLCAweDA0LCAweGZmLCAweDA1LCAweDU4LCAweGU1LCAweDU4fSB9LAoteyAweDliMjksCTE2LAl7MHhhYywgMHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4Mn0gfSwKLXsgMHg5YjM5LAkxNiwJezB4ODUsIDB4NTcsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZjAsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4OTAsIDB4MDF9IH0sCi17IDB4OWI0OSwJMTYsCXsweGM0LCAweGUwLCAweGZmLCAweDYwLCAweDM3LCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweGU1LCAweDRlLCAweDA0LCAweGZlLCAweDA1LCAweDU4fSB9LAoteyAweDliNTksCTE2LAl7MHhlNSwgMHg1OCwgMHhhYywgMHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZSwgMHhmMCwgMHgwNX0gfSwKLXsgMHg5YjY5LAkxNiwJezB4NTgsIDB4ZTUsIDB4NTgsIDB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCi17IDB4OWI3OSwJMTYsCXsweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGU1LCAweDRmLCAweGYwLCAweDc1LCAweDUwLCAweGZmLCAweGU1LCAweDUwLCAweDcwLCAweDE2fSB9LAoteyAweDliODksCTE2LAl7MHg3NCwgMHgwOCwgMHgyNSwgMHg1NCwgMHhmNSwgMHg1NCwgMHhlNCwgMHgzNSwgMHg1MywgMHhmNSwgMHg1MywgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHg2NH0gfSwKLXsgMHg5Yjk5LAkxNiwJezB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OWEsIDB4ZTYsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWF9IH0sCi17IDB4OWJhOSwJMTYsCXsweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGQzLCAweDk0LCAweDAzLCAweDQwLCAweGYwLCAweDkwLCAweDAwLCAweDA0LCAweDc0LCAweDEzLCAweGYwLCAweGEzfSB9LAoteyAweDliYjksCTE2LAl7MHg3NCwgMHgxMiwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NSwgMHg1NSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZiwgMHg3NH0gfSwKLXsgMHg5YmM5LAkxNiwJezB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4OTAsIDB4MDIsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4MDF9IH0sCi17IDB4OWJkOSwJMTYsCXsweGM0LCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweDkwLCAweDAxLCAweGMwLCAweDc0LCAweDAzLCAweGYwLCAweGEzLCAweDc0LCAweGU4LCAweGYwLCAweGU0fSB9LAoteyAweDliZTksCTE2LAl7MHhmNSwgMHg1MCwgMHg5MCwgMHgwMiwgMHhmNywgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMSwgMHhjNCwgMHhlMCwgMHhiNSwgMHgwNywgMHgxOSwgMHg5MCwgMHgwMX0gfSwKLXsgMHg5YmY5LAkxNiwJezB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NzAsIDB4ZWEsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODV9IH0sCi17IDB4OWMwOSwJMTYsCXsweDU3LCAweDgzLCAweDc0LCAweGZmLCAweGYwLCAweGY1LCAweDUwLCAweGU1LCAweDUwLCAweDYwLCAweDAzLCAweDAyLCAweDllLCAweDYzLCAweDkwLCAweDAxfSB9LAoteyAweDljMTksCTE2LAl7MHhjMCwgMHhmMCwgMHhhMywgMHg3NCwgMHg5NiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg3MCwgMHhmNn0gfSwKLXsgMHg5YzI5LAkxNiwJezB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MGQsIDB4OTAsIDB4MjAsIDB4NzgsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4NzUsIDB4NTEsIDB4MDB9IH0sCi17IDB4OWMzOSwJMTYsCXsweGY1LCAweDUyLCAweDgwLCAweDA5LCAweDdmLCAweDAyLCAweDEyLCAweDExLCAweDI3LCAweDhlLCAweDUxLCAweDhmLCAweDUyLCAweGMzLCAweGU1LCAweDUxfSB9LAoteyAweDljNDksCTE2LAl7MHg2NCwgMHg4MCwgMHg5NCwgMHg4MCwgMHg0MCwgMHhkYSwgMHhlNSwgMHg1MiwgMHg1NCwgMHgwZiwgMHhmNSwgMHg1MCwgMHg5MCwgMHgwMiwgMHhmNywgMHhlMH0gfSwKLXsgMHg5YzU5LAkxNiwJezB4NTUsIDB4NTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OGYsIDB4NGYsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODV9IH0sCi17IDB4OWM2OSwJMTYsCXsweDU1LCAweDgzLCAweGEzLCAweGUwLCAweGI0LCAweDA1LCAweDBjLCAweGU1LCAweDRmLCAweDcwLCAweDA0LCAweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmfSB9LAoteyAweDljNzksCTE2LAl7MHgwMCwgMHg4ZiwgMHg0ZiwgMHhlNSwgMHg0ZiwgMHg3MCwgMHgwMywgMHgwMiwgMHg5ZSwgMHg2MywgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHg4NX0gfSwKLXsgMHg5Yzg5LAkxNiwJezB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NTAsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4ZmYsIDB4ZmQsIDB4MTIsIDB4ODN9IH0sCi17IDB4OWM5OSwJMTYsCXsweDVhLCAweDdlLCAweDIwLCAweDdmLCAweDAwLCAweDc1LCAweDUzLCAweDIwLCAweDc1LCAweDU0LCAweDAwLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzfSB9LAoteyAweDljYTksCTE2LAl7MHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1MywgMHg4MywgMHg3NCwgMHgwMX0gfSwKLXsgMHg5Y2I5LAkxNiwJezB4ZjAsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4N2Z9IH0sCi17IDB4OWNjOSwJMTYsCXsweGYwLCAweGQyLCAweDA0LCAweDAyLCAweDllLCAweDYzLCAweGMyLCAweDA0LCAweDdlLCAweDIwLCAweDdmLCAweDAwLCAweDc1LCAweDUzLCAweDIwLCAweDc1fSB9LAoteyAweDljZDksCTE2LAl7MHg1NCwgMHgwMCwgMHhlNSwgMHg1NCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1MywgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNn0gfSwKLXsgMHg5Y2U5LAkxNiwJezB4ZjEsIDB4ZTQsIDB4ZmYsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWEsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4ZjUsIDB4NTAsIDB4ZjUsIDB4NGV9IH0sCi17IDB4OWNmOSwJMTYsCXsweGFmLCAweDRlLCAweGU0LCAweGZkLCAweDEyLCAweDgzLCAweDVhLCAweGU1LCAweDRlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1fSB9LAoteyAweDlkMDksCTE2LAl7MHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmNSwgMHg1MywgMHg4ZiwgMHg1NCwgMHhmNSwgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNH0gfSwKLXsgMHg5ZDE5LAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmMsIDB4ZjAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4N2J9IH0sCi17IDB4OWQyOSwJMTYsCXsweDAxLCAweDc1LCAweDVjLCAweDgwLCAweDc1LCAweDVkLCAweDQwLCAweDEyLCAweDk5LCAweDM1LCAweDhmLCAweDUwLCAweGU1LCAweDUwLCAweDcwLCAweDExfSB9LAoteyAweDlkMzksCTE2LAl7MHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMiwgMHg3YiwgMHgwMSwgMHg3NSwgMHg1YywgMHgxMCwgMHg3NSwgMHg1ZCwgMHgyMCwgMHgxMiwgMHg5OSwgMHgzNSwgMHg4Zn0gfSwKLXsgMHg5ZDQ5LAkxNiwJezB4NTAsIDB4ZTUsIDB4NTAsIDB4NzAsIDB4MTAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4ZmIsIDB4NzUsIDB4NWMsIDB4ODAsIDB4NzUsIDB4NWQsIDB4NDB9IH0sCi17IDB4OWQ1OSwJMTYsCXsweDEyLCAweDk5LCAweDM1LCAweDhmLCAweDUwLCAweGU1LCAweDUwLCAweDcwLCAweDEwLCAweGFmLCAweDRlLCAweDdkLCAweDAyLCAweGZiLCAweDc1LCAweDVjfSB9LAoteyAweDlkNjksCTE2LAl7MHgxMCwgMHg3NSwgMHg1ZCwgMHgyMCwgMHgxMiwgMHg5OSwgMHgzNSwgMHg4ZiwgMHg1MCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YX0gfSwKLXsgMHg5ZDc5LAkxNiwJezB4ZTUsIDB4NTAsIDB4NjAsIDB4MjYsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4MDQsIDB4ZmYsIDB4MDUsIDB4NTgsIDB4ZTV9IH0sCi17IDB4OWQ4OSwJMTYsCXsweDU4LCAweGFjLCAweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDg1LCAweDU4fSB9LAoteyAweDlkOTksCTE2LAl7MHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlNSwgMHg1MCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkMywgMHg5NH0gfSwKLXsgMHg5ZGE5LAkxNiwJezB4MDMsIDB4NTAsIDB4MDMsIDB4MDIsIDB4OWMsIDB4ZjksIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4NTksIDB4ZjAsIDB4YTMsIDB4ZjB9IH0sCi17IDB4OWRiOSwJMTYsCXsweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweDc0LCAweDllLCAweGYwLCAweGEzLCAweDc0fSB9LAoteyAweDlkYzksCTE2LAl7MHg4NSwgMHhmMCwgMHg3ZSwgMHgwMywgMHg3ZiwgMHg1OSwgMHgxMiwgMHg4MSwgMHhkOSwgMHhlZiwgMHg2NCwgMHgwOCwgMHg3MCwgMHgwMywgMHgwMiwgMHg5ZX0gfSwKLXsgMHg5ZGQ5LAkxNiwJezB4NjMsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4NTksIDB4ZjAsIDB4YTMsIDB4ZjB9IH0sCi17IDB4OWRlOSwJMTYsCXsweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweGU1LCAweDU3LCAweGYwLCAweGEzLCAweGU1fSB9LAoteyAweDlkZjksCTE2LAl7MHg1OCwgMHhmMCwgMHg3ZSwgMHgwMywgMHg3ZiwgMHg1OSwgMHgxMiwgMHgxOSwgMHhjMSwgMHhlZiwgMHg2NCwgMHgwOCwgMHg2MCwgMHg1YywgMHhlNCwgMHg5MH0gfSwKLXsgMHg5ZTA5LAkxNiwJezB4MDMsIDB4MzgsIDB4ZjAsIDB4ODAsIDB4NTUsIDB4ZTUsIDB4NTYsIDB4MjQsIDB4MDIsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4NTUsIDB4ZmEsIDB4YTksIDB4MDd9IH0sCi17IDB4OWUxOSwJMTYsCXsweDdiLCAweDAxLCAweDdkLCAweDEwLCAweDEyLCAweDk4LCAweDk4LCAweGVmLCAweDRlLCAweDcwLCAweDMyLCAweDkwLCAweDAzLCAweDU5LCAweGYwLCAweGEzfSB9LAoteyAweDllMjksCTE2LAl7MHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNSwgMHg1NiwgMHgyNCwgMHgwMiwgMHg5MH0gfSwKLXsgMHg5ZTM5LAkxNiwJezB4MDMsIDB4NjAsIDB4ZjAsIDB4ZTQsIDB4MzUsIDB4NTUsIDB4OTAsIDB4MDMsIDB4NWYsIDB4ZjAsIDB4N2UsIDB4MDMsIDB4N2YsIDB4NTksIDB4MTIsIDB4ODF9IH0sCi17IDB4OWU0OSwJMTYsCXsweGQ5LCAweGVmLCAweDY0LCAweDA4LCAweDYwLCAweDE0LCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDgwLCAweDBkLCAweGU0LCAweDkwLCAweDAzfSB9LAoteyAweDllNTksCTE2LAl7MHgzOCwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHgwMywgMHgzOCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlNCwgMHhmMCwgMHhhM30gfSwKLXsgMHg5ZTY5LAkxNiwJezB4NzQsIDB4MGEsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NzAsIDB4ZjYsIDB4N2UsIDB4MDMsIDB4N2Z9IH0sCi17IDB4OWU3OSwJMTEsCXsweDM1LCAweDdkLCAweDI0LCAweDEyLCAweDkxLCAweDZhLCAweGU0LCAweDkwLCAweDAyLCAweGFmLCAweGYwfSB9LAoteyAweDllODQsCTEsCXsweDIyfSB9LAoteyAweDllODUsCTE2LAl7MHhmZiwgMHhmZSwgMHhmYywgMHhmOCwgMHhmMCwgMHhlMCwgMHhjMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMywgMHgwNywgMHgwZiwgMHgxZiwgMHgzZiwgMHg3Zn0gfSwKLXsgMHg5ZTk1LAkxNiwJezB4MDAsIDB4MDAsIDB4YzAsIDB4YzEsIDB4YzEsIDB4ODEsIDB4MDEsIDB4NDAsIDB4YzMsIDB4MDEsIDB4MDMsIDB4YzAsIDB4MDIsIDB4ODAsIDB4YzIsIDB4NDF9IH0sCi17IDB4OWVhNSwJMTYsCXsweGM2LCAweDAxLCAweDA2LCAweGMwLCAweDA3LCAweDgwLCAweGM3LCAweDQxLCAweDA1LCAweDAwLCAweGM1LCAweGMxLCAweGM0LCAweDgxLCAweDA0LCAweDQwfSB9LAoteyAweDllYjUsCTE2LAl7MHhjYywgMHgwMSwgMHgwYywgMHhjMCwgMHgwZCwgMHg4MCwgMHhjZCwgMHg0MSwgMHgwZiwgMHgwMCwgMHhjZiwgMHhjMSwgMHhjZSwgMHg4MSwgMHgwZSwgMHg0MH0gfSwKLXsgMHg5ZWM1LAkxNiwJezB4MGEsIDB4MDAsIDB4Y2EsIDB4YzEsIDB4Y2IsIDB4ODEsIDB4MGIsIDB4NDAsIDB4YzksIDB4MDEsIDB4MDksIDB4YzAsIDB4MDgsIDB4ODAsIDB4YzgsIDB4NDF9IH0sCi17IDB4OWVkNSwJMTYsCXsweGQ4LCAweDAxLCAweDE4LCAweGMwLCAweDE5LCAweDgwLCAweGQ5LCAweDQxLCAweDFiLCAweDAwLCAweGRiLCAweGMxLCAweGRhLCAweDgxLCAweDFhLCAweDQwfSB9LAoteyAweDllZTUsCTE2LAl7MHgxZSwgMHgwMCwgMHhkZSwgMHhjMSwgMHhkZiwgMHg4MSwgMHgxZiwgMHg0MCwgMHhkZCwgMHgwMSwgMHgxZCwgMHhjMCwgMHgxYywgMHg4MCwgMHhkYywgMHg0MX0gfSwKLXsgMHg5ZWY1LAkxNiwJezB4MTQsIDB4MDAsIDB4ZDQsIDB4YzEsIDB4ZDUsIDB4ODEsIDB4MTUsIDB4NDAsIDB4ZDcsIDB4MDEsIDB4MTcsIDB4YzAsIDB4MTYsIDB4ODAsIDB4ZDYsIDB4NDF9IH0sCi17IDB4OWYwNSwJMTYsCXsweGQyLCAweDAxLCAweDEyLCAweGMwLCAweDEzLCAweDgwLCAweGQzLCAweDQxLCAweDExLCAweDAwLCAweGQxLCAweGMxLCAweGQwLCAweDgxLCAweDEwLCAweDQwfSB9LAoteyAweDlmMTUsCTE2LAl7MHhmMCwgMHgwMSwgMHgzMCwgMHhjMCwgMHgzMSwgMHg4MCwgMHhmMSwgMHg0MSwgMHgzMywgMHgwMCwgMHhmMywgMHhjMSwgMHhmMiwgMHg4MSwgMHgzMiwgMHg0MH0gfSwKLXsgMHg5ZjI1LAkxNiwJezB4MzYsIDB4MDAsIDB4ZjYsIDB4YzEsIDB4ZjcsIDB4ODEsIDB4MzcsIDB4NDAsIDB4ZjUsIDB4MDEsIDB4MzUsIDB4YzAsIDB4MzQsIDB4ODAsIDB4ZjQsIDB4NDF9IH0sCi17IDB4OWYzNSwJMTYsCXsweDNjLCAweDAwLCAweGZjLCAweGMxLCAweGZkLCAweDgxLCAweDNkLCAweDQwLCAweGZmLCAweDAxLCAweDNmLCAweGMwLCAweDNlLCAweDgwLCAweGZlLCAweDQxfSB9LAoteyAweDlmNDUsCTE2LAl7MHhmYSwgMHgwMSwgMHgzYSwgMHhjMCwgMHgzYiwgMHg4MCwgMHhmYiwgMHg0MSwgMHgzOSwgMHgwMCwgMHhmOSwgMHhjMSwgMHhmOCwgMHg4MSwgMHgzOCwgMHg0MH0gfSwKLXsgMHg5ZjU1LAkxNiwJezB4MjgsIDB4MDAsIDB4ZTgsIDB4YzEsIDB4ZTksIDB4ODEsIDB4MjksIDB4NDAsIDB4ZWIsIDB4MDEsIDB4MmIsIDB4YzAsIDB4MmEsIDB4ODAsIDB4ZWEsIDB4NDF9IH0sCi17IDB4OWY2NSwJMTYsCXsweGVlLCAweDAxLCAweDJlLCAweGMwLCAweDJmLCAweDgwLCAweGVmLCAweDQxLCAweDJkLCAweDAwLCAweGVkLCAweGMxLCAweGVjLCAweDgxLCAweDJjLCAweDQwfSB9LAoteyAweDlmNzUsCTE2LAl7MHhlNCwgMHgwMSwgMHgyNCwgMHhjMCwgMHgyNSwgMHg4MCwgMHhlNSwgMHg0MSwgMHgyNywgMHgwMCwgMHhlNywgMHhjMSwgMHhlNiwgMHg4MSwgMHgyNiwgMHg0MH0gfSwKLXsgMHg5Zjg1LAkxNiwJezB4MjIsIDB4MDAsIDB4ZTIsIDB4YzEsIDB4ZTMsIDB4ODEsIDB4MjMsIDB4NDAsIDB4ZTEsIDB4MDEsIDB4MjEsIDB4YzAsIDB4MjAsIDB4ODAsIDB4ZTAsIDB4NDF9IH0sCi17IDB4OWY5NSwJMTYsCXsweGEwLCAweDAxLCAweDYwLCAweGMwLCAweDYxLCAweDgwLCAweGExLCAweDQxLCAweDYzLCAweDAwLCAweGEzLCAweGMxLCAweGEyLCAweDgxLCAweDYyLCAweDQwfSB9LAoteyAweDlmYTUsCTE2LAl7MHg2NiwgMHgwMCwgMHhhNiwgMHhjMSwgMHhhNywgMHg4MSwgMHg2NywgMHg0MCwgMHhhNSwgMHgwMSwgMHg2NSwgMHhjMCwgMHg2NCwgMHg4MCwgMHhhNCwgMHg0MX0gfSwKLXsgMHg5ZmI1LAkxNiwJezB4NmMsIDB4MDAsIDB4YWMsIDB4YzEsIDB4YWQsIDB4ODEsIDB4NmQsIDB4NDAsIDB4YWYsIDB4MDEsIDB4NmYsIDB4YzAsIDB4NmUsIDB4ODAsIDB4YWUsIDB4NDF9IH0sCi17IDB4OWZjNSwJMTYsCXsweGFhLCAweDAxLCAweDZhLCAweGMwLCAweDZiLCAweDgwLCAweGFiLCAweDQxLCAweDY5LCAweDAwLCAweGE5LCAweGMxLCAweGE4LCAweDgxLCAweDY4LCAweDQwfSB9LAoteyAweDlmZDUsCTE2LAl7MHg3OCwgMHgwMCwgMHhiOCwgMHhjMSwgMHhiOSwgMHg4MSwgMHg3OSwgMHg0MCwgMHhiYiwgMHgwMSwgMHg3YiwgMHhjMCwgMHg3YSwgMHg4MCwgMHhiYSwgMHg0MX0gfSwKLXsgMHg5ZmU1LAkxNiwJezB4YmUsIDB4MDEsIDB4N2UsIDB4YzAsIDB4N2YsIDB4ODAsIDB4YmYsIDB4NDEsIDB4N2QsIDB4MDAsIDB4YmQsIDB4YzEsIDB4YmMsIDB4ODEsIDB4N2MsIDB4NDB9IH0sCi17IDB4OWZmNSwJMTYsCXsweGI0LCAweDAxLCAweDc0LCAweGMwLCAweDc1LCAweDgwLCAweGI1LCAweDQxLCAweDc3LCAweDAwLCAweGI3LCAweGMxLCAweGI2LCAweDgxLCAweDc2LCAweDQwfSB9LAoteyAweGEwMDUsCTE2LAl7MHg3MiwgMHgwMCwgMHhiMiwgMHhjMSwgMHhiMywgMHg4MSwgMHg3MywgMHg0MCwgMHhiMSwgMHgwMSwgMHg3MSwgMHhjMCwgMHg3MCwgMHg4MCwgMHhiMCwgMHg0MX0gfSwKLXsgMHhhMDE1LAkxNiwJezB4NTAsIDB4MDAsIDB4OTAsIDB4YzEsIDB4OTEsIDB4ODEsIDB4NTEsIDB4NDAsIDB4OTMsIDB4MDEsIDB4NTMsIDB4YzAsIDB4NTIsIDB4ODAsIDB4OTIsIDB4NDF9IH0sCi17IDB4YTAyNSwJMTYsCXsweDk2LCAweDAxLCAweDU2LCAweGMwLCAweDU3LCAweDgwLCAweDk3LCAweDQxLCAweDU1LCAweDAwLCAweDk1LCAweGMxLCAweDk0LCAweDgxLCAweDU0LCAweDQwfSB9LAoteyAweGEwMzUsCTE2LAl7MHg5YywgMHgwMSwgMHg1YywgMHhjMCwgMHg1ZCwgMHg4MCwgMHg5ZCwgMHg0MSwgMHg1ZiwgMHgwMCwgMHg5ZiwgMHhjMSwgMHg5ZSwgMHg4MSwgMHg1ZSwgMHg0MH0gfSwKLXsgMHhhMDQ1LAkxNiwJezB4NWEsIDB4MDAsIDB4OWEsIDB4YzEsIDB4OWIsIDB4ODEsIDB4NWIsIDB4NDAsIDB4OTksIDB4MDEsIDB4NTksIDB4YzAsIDB4NTgsIDB4ODAsIDB4OTgsIDB4NDF9IH0sCi17IDB4YTA1NSwJMTYsCXsweDg4LCAweDAxLCAweDQ4LCAweGMwLCAweDQ5LCAweDgwLCAweDg5LCAweDQxLCAweDRiLCAweDAwLCAweDhiLCAweGMxLCAweDhhLCAweDgxLCAweDRhLCAweDQwfSB9LAoteyAweGEwNjUsCTE2LAl7MHg0ZSwgMHgwMCwgMHg4ZSwgMHhjMSwgMHg4ZiwgMHg4MSwgMHg0ZiwgMHg0MCwgMHg4ZCwgMHgwMSwgMHg0ZCwgMHhjMCwgMHg0YywgMHg4MCwgMHg4YywgMHg0MX0gfSwKLXsgMHhhMDc1LAkxNiwJezB4NDQsIDB4MDAsIDB4ODQsIDB4YzEsIDB4ODUsIDB4ODEsIDB4NDUsIDB4NDAsIDB4ODcsIDB4MDEsIDB4NDcsIDB4YzAsIDB4NDYsIDB4ODAsIDB4ODYsIDB4NDF9IH0sCi17IDB4YTA4NSwJMTYsCXsweDgyLCAweDAxLCAweDQyLCAweGMwLCAweDQzLCAweDgwLCAweDgzLCAweDQxLCAweDQxLCAweDAwLCAweDgxLCAweGMxLCAweDgwLCAweDgxLCAweDQwLCAweDQwfSB9LAoteyAweGEwOTUsCTE2LAl7MHhlNCwgMHhmZiwgMHg3NCwgMHhmOCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwMywgMHgwMn0gfSwKLXsgMHhhMGE1LAkxNiwJezB4YTEsIDB4MzgsIDB4NzQsIDB4M2EsIDB4MmYsIDB4ZjgsIDB4ZTYsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MDIsIDB4YTEsIDB4MzgsIDB4ZWYsIDB4NzUsIDB4ZjB9IH0sCi17IDB4YTBiNSwJMTYsCXsweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFkLCAweDgyLCAweGZjLCAweGY1LCAweDgzLCAweGU1LCAweDgyfSB9LAoteyAweGEwYzUsCTE2LAl7MHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg2MCwgMHg2NCwgMHg2MCwgMHg3MCwgMHg2M30gfSwKLXsgMHhhMGQ1LAkxNiwJezB4ZWYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4ZWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDF9IH0sCi17IDB4YTBlNSwJMTYsCXsweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzLCAweGUwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGYwLCAweDc0LCAweGY4fSB9LAoteyAweGEwZjUsCTE2LAl7MHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmMCwgMHg3MCwgMHgzNiwgMHhlZiwgMHgyNSwgMHhlMH0gfSwKLXsgMHhhMTA1LAkxNiwJezB4MjQsIDB4YzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZWYsIDB4MjUsIDB4ZTAsIDB4ZmUsIDB4YzN9IH0sCi17IDB4YTExNSwJMTYsCXsweDc0LCAweDBjLCAweDllLCAweDc1LCAweGYwLCAweDQwLCAweGE0LCAweDI0LCAweDQwLCAweGY1LCAweDgyLCAweGU1LCAweGYwLCAweDM0LCAweDdiLCAweGFkfSB9LAoteyAweGExMjUsCTE2LAl7MHg4MiwgMHhmYywgMHhlZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhlZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMH0gfSwKLXsgMHhhMTM1LAkxMiwJezB4YTMsIDB4ZWQsIDB4ZjAsIDB4MGYsIDB4ZWYsIDB4NjQsIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4YTAsIDB4OTd9IH0sCi17IDB4YTE0MSwJMSwJezB4MjJ9IH0sCi17IDB4YTE0MiwJMTYsCXsweGU3LCAweDA5LCAweGY2LCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDQ2LCAweGU3LCAweDA5LCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDNlfSB9LAoteyAweGExNTIsCTE2LAl7MHg4OCwgMHg4MiwgMHg4YywgMHg4MywgMHhlNywgMHgwOSwgMHhmMCwgMHhhMywgMHhkZiwgMHhmYSwgMHg4MCwgMHgzMiwgMHhlMywgMHgwOSwgMHhmNiwgMHgwOH0gfSwKLXsgMHhhMTYyLAkxNiwJezB4ZGYsIDB4ZmEsIDB4ODAsIDB4NzgsIDB4ZTMsIDB4MDksIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NzAsIDB4ODgsIDB4ODIsIDB4OGMsIDB4ODN9IH0sCi17IDB4YTE3MiwJMTYsCXsweGUzLCAweDA5LCAweGYwLCAweGEzLCAweGRmLCAweGZhLCAweDgwLCAweDY0LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGEzLCAweGY2LCAweDA4fSB9LAoteyAweGExODIsCTE2LAl7MHhkZiwgMHhmYSwgMHg4MCwgMHg1OCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg0Y30gfSwKLXsgMHhhMTkyLAkxNiwJezB4ODAsIDB4ZDIsIDB4ODAsIDB4ZmEsIDB4ODAsIDB4YzYsIDB4ODAsIDB4ZDQsIDB4ODAsIDB4NjksIDB4ODAsIDB4ZjIsIDB4ODAsIDB4MzMsIDB4ODAsIDB4MTB9IH0sCi17IDB4YTFhMiwJMTYsCXsweDgwLCAweGE2LCAweDgwLCAweGVhLCAweDgwLCAweDlhLCAweDgwLCAweGE4LCAweDgwLCAweGRhLCAweDgwLCAweGUyLCAweDgwLCAweGNhLCAweDgwLCAweDMzfSB9LAoteyAweGExYjIsCTE2LAl7MHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlYywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4M30gfSwKLXsgMHhhMWMyLAkxNiwJezB4Y2MsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODB9IH0sCi17IDB4YTFkMiwJMTYsCXsweDBkLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweGEzLCAweGY2LCAweDA4LCAweGRmLCAweGY5LCAweGVjLCAweGZhLCAweGE5LCAweGYwfSB9LAoteyAweGExZTIsCTE2LAl7MHhlZCwgMHhmYiwgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlYywgMHhmYSwgMHhlMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjY30gfSwKLXsgMHhhMWYyLAkxNiwJezB4YzUsIDB4ODMsIDB4Y2MsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZWEsIDB4ZGV9IH0sCi17IDB4YTIwMiwJMTYsCXsweGU4LCAweDgwLCAweGRiLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweGEzLCAweGYyLCAweDA4LCAweGRmLCAweGY5LCAweDgwLCAweGNjfSB9LAoteyAweGEyMTIsCTE2LAl7MHg4OCwgMHhmMCwgMHhlZCwgMHgyNCwgMHgwMiwgMHhiNCwgMHgwNCwgMHgwMCwgMHg1MCwgMHhjMiwgMHhmNSwgMHg4MiwgMHhlYiwgMHgyNCwgMHgwMiwgMHhiNH0gfSwKLXsgMHhhMjIyLAkxNiwJezB4MDQsIDB4MDAsIDB4NTAsIDB4YjgsIDB4MjMsIDB4MjMsIDB4NDUsIDB4ODIsIDB4ZjUsIDB4ODIsIDB4ZWYsIDB4NGUsIDB4NjAsIDB4YWUsIDB4ZWYsIDB4NjB9IH0sCi17IDB4YTIzMiwJOSwJezB4MDEsIDB4MGUsIDB4ZTUsIDB4ODIsIDB4MjMsIDB4OTAsIDB4YTEsIDB4OTIsIDB4NzN9IH0sCi17IDB4YTIzYiwJMTYsCXsweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyfSB9LAoteyAweGEyNGIsCTksCXsweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweGEyNTQsCTE2LAl7MHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MH0gfSwKLXsgMHhhMjY0LAkxNiwJezB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjJ9IH0sCi17IDB4YTI3NCwJMTMsCXsweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweGEyODEsCTE2LAl7MHhjNSwgMHhmMCwgMHhmOCwgMHhhMywgMHhlMCwgMHgyOCwgMHhmMCwgMHhjNSwgMHhmMCwgMHhmOCwgMHhlNSwgMHg4MiwgMHgxNSwgMHg4MiwgMHg3MCwgMHgwMn0gfSwKLXsgMHhhMjkxLAk2LAl7MHgxNSwgMHg4MywgMHhlMCwgMHgzOCwgMHhmMCwgMHgyMn0gfSwKLXsgMHhhMjk3LAkxNiwJezB4YTMsIDB4ZjgsIDB4ZTAsIDB4YzUsIDB4ZjAsIDB4MjUsIDB4ZjAsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MTUsIDB4ODIsIDB4NzAsIDB4MDIsIDB4MTUsIDB4ODN9IH0sCi17IDB4YTJhNywJNiwJezB4ZTAsIDB4YzgsIDB4MzgsIDB4ZjAsIDB4ZTgsIDB4MjJ9IH0sCi17IDB4YTJhZCwJMTYsCXsweGJiLCAweDAxLCAweDEwLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwfSB9LAoteyAweGEyYmQsCTE2LAl7MHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZX0gfSwKLXsgMHhhMmNkLAkxNiwJezB4MGEsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4ZjUsIDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODN9IH0sCi17IDB4YTJkZCwJOCwJezB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjJ9IH0sCi17IDB4YTJlNSwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweDc1LCAweDgyLCAweDAwLCAweGVmLCAweDJmLCAweGZmLCAweGVlLCAweDMzLCAweGZlLCAweGNkLCAweDMzLCAweGNkLCAweGNjfSB9LAoteyAweGEyZjUsCTE2LAl7MHgzMywgMHhjYywgMHhjNSwgMHg4MiwgMHgzMywgMHhjNSwgMHg4MiwgMHg5YiwgMHhlZCwgMHg5YSwgMHhlYywgMHg5OSwgMHhlNSwgMHg4MiwgMHg5OCwgMHg0MH0gfSwKLXsgMHhhMzA1LAkxNiwJezB4MGMsIDB4ZjUsIDB4ODIsIDB4ZWUsIDB4OWIsIDB4ZmUsIDB4ZWQsIDB4OWEsIDB4ZmQsIDB4ZWMsIDB4OTksIDB4ZmMsIDB4MGYsIDB4ZDUsIDB4ZjAsIDB4ZDZ9IH0sCi17IDB4YTMxNSwJMTYsCXsweGU0LCAweGNlLCAweGZiLCAweGU0LCAweGNkLCAweGZhLCAweGU0LCAweGNjLCAweGY5LCAweGE4LCAweDgyLCAweDIyLCAweGI4LCAweDAwLCAweGMxLCAweGI5fSB9LAoteyAweGEzMjUsCTE2LAl7MHgwMCwgMHg1OSwgMHhiYSwgMHgwMCwgMHgyZCwgMHhlYywgMHg4YiwgMHhmMCwgMHg4NCwgMHhjZiwgMHhjZSwgMHhjZCwgMHhmYywgMHhlNSwgMHhmMCwgMHhjYn0gfSwKLXsgMHhhMzM1LAkxNiwJezB4ZjksIDB4NzgsIDB4MTgsIDB4ZWYsIDB4MmYsIDB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4ZWQsIDB4MzMsIDB4ZmQsIDB4ZWMsIDB4MzMsIDB4ZmMsIDB4ZWJ9IH0sCi17IDB4YTM0NSwJMTYsCXsweDMzLCAweGZiLCAweDEwLCAweGQ3LCAweDAzLCAweDk5LCAweDQwLCAweDA0LCAweGViLCAweDk5LCAweGZiLCAweDBmLCAweGQ4LCAweGU1LCAweGU0LCAweGY5fSB9LAoteyAweGEzNTUsCTE2LAl7MHhmYSwgMHgyMiwgMHg3OCwgMHgxOCwgMHhlZiwgMHgyZiwgMHhmZiwgMHhlZSwgMHgzMywgMHhmZSwgMHhlZCwgMHgzMywgMHhmZCwgMHhlYywgMHgzMywgMHhmY30gfSwKLXsgMHhhMzY1LAkxNiwJezB4YzksIDB4MzMsIDB4YzksIDB4MTAsIDB4ZDcsIDB4MDUsIDB4OWIsIDB4ZTksIDB4OWEsIDB4NDAsIDB4MDcsIDB4ZWMsIDB4OWIsIDB4ZmMsIDB4ZTksIDB4OWF9IH0sCi17IDB4YTM3NSwJMTYsCXsweGY5LCAweDBmLCAweGQ4LCAweGUwLCAweGU0LCAweGM5LCAweGZhLCAweGU0LCAweGNjLCAweGZiLCAweDIyLCAweDc1LCAweGYwLCAweDEwLCAweGVmLCAweDJmfSB9LAoteyAweGEzODUsCTE2LAl7MHhmZiwgMHhlZSwgMHgzMywgMHhmZSwgMHhlZCwgMHgzMywgMHhmZCwgMHhjYywgMHgzMywgMHhjYywgMHhjOCwgMHgzMywgMHhjOCwgMHgxMCwgMHhkNywgMHgwN30gfSwKLXsgMHhhMzk1LAkxNiwJezB4OWIsIDB4ZWMsIDB4OWEsIDB4ZTgsIDB4OTksIDB4NDAsIDB4MGEsIDB4ZWQsIDB4OWIsIDB4ZmQsIDB4ZWMsIDB4OWEsIDB4ZmMsIDB4ZTgsIDB4OTksIDB4Zjh9IH0sCi17IDB4YTNhNSwJMTQsCXsweDBmLCAweGQ1LCAweGYwLCAweGRhLCAweGU0LCAweGNkLCAweGZiLCAweGU0LCAweGNjLCAweGZhLCAweGU0LCAweGM4LCAweGY5LCAweDIyfSB9LAoteyAweGEzYjMsCTE2LAl7MHhlYiwgMHg5ZiwgMHhmNSwgMHhmMCwgMHhlYSwgMHg5ZSwgMHg0MiwgMHhmMCwgMHhlOSwgMHg5ZCwgMHg0MiwgMHhmMCwgMHhlOCwgMHg5YywgMHg0NSwgMHhmMH0gfSwKLXsgMHhhM2MzLAkxLAl7MHgyMn0gfSwKLXsgMHhhM2M0LAkxNiwJezB4ZTgsIDB4NjAsIDB4MGYsIDB4ZWMsIDB4YzMsIDB4MTMsIDB4ZmMsIDB4ZWQsIDB4MTMsIDB4ZmQsIDB4ZWUsIDB4MTMsIDB4ZmUsIDB4ZWYsIDB4MTMsIDB4ZmZ9IH0sCi17IDB4YTNkNCwJMywJezB4ZDgsIDB4ZjEsIDB4MjJ9IH0sCi17IDB4YTNkNywJMTYsCXsweDA4LCAweDA4LCAweDA4LCAweGU2LCAweGNmLCAweDJmLCAweGY2LCAweDE4LCAweGU2LCAweGNlLCAweDNlLCAweGY2LCAweDE4LCAweGU2LCAweGNkLCAweDNkfSB9LAoteyAweGEzZTcsCTcsCXsweGY2LCAweDE4LCAweGU2LCAweGNjLCAweDNjLCAweGY2LCAweDIyfSB9LAoteyAweGEzZWUsCTEyLAl7MHhlYywgMHhmMCwgMHhhMywgMHhlZCwgMHhmMCwgMHhhMywgMHhlZSwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgyMn0gfSwKLXsgMHhhM2ZhLAkxNiwJezB4YTgsIDB4ODIsIDB4ODUsIDB4ODMsIDB4ZjAsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4MTIsIDB4YTQsIDB4MTEsIDB4MTIsIDB4YTQsIDB4MTEsIDB4MTJ9IH0sCi17IDB4YTQwYSwJMTYsCXsweGE0LCAweDExLCAweDEyLCAweGE0LCAweDExLCAweGU0LCAweDczLCAweGU0LCAweDkzLCAweGEzLCAweGM1LCAweDgzLCAweGM1LCAweGYwLCAweGM1LCAweDgzfSB9LAoteyAweGE0MWEsCTE2LAl7MHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhmMCwgMHhhMywgMHhjNSwgMHg4MywgMHhjNSwgMHhmMCwgMHhjNSwgMHg4MywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOH0gfSwKLXsgMHhhNDJhLAkxLAl7MHgyMn0gfSwKLXsgMHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKLQotI2lmZGVmIERFQlVHCi1zdGF0aWMgY29uc3Qgc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHdoaXRlaGVhdF9sb2FkZXJbXSA9IHsKLXsgMHgwMDAwLAkzLAl7MHgwMiwgMHgwOSwgMHg4ZH0gfSwKLXsgMHgwMDMzLAkzLAl7MHgwMiwgMHgwZSwgMHg3MH0gfSwKLXsgMHgwMDQzLAkzLAl7MHgwMiwgMHgwYiwgMHgwMH0gfSwKLXsgMHgwMDRiLAkzLAl7MHgwMiwgMHgwNSwgMHhiM30gfSwKLXsgMHgwMTAwLAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NTQsIDB4MTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4NTAsIDB4ZjUsIDB4MGYsIDB4MTMsIDB4ZTR9IH0sCi17IDB4MDExMCwJMTYsCXsweDMzLCAweGY1LCAweDExLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDI0LCAweDVlLCAweGI0LCAweDA3LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDAzfSB9LAoteyAweDAxMjAsCTE2LAl7MHg3YywgMHg5MCwgMHgwMSwgMHgyOCwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMiwgMHgwMSwgMHhiYywgMHgwMiwgMHgwMSwgMHhiYywgMHgwMiwgMHgwMX0gfSwKLXsgMHgwMTMwLAkxNiwJezB4OTEsIDB4MDIsIDB4MDEsIDB4M2QsIDB4MDIsIDB4MDEsIDB4NTMsIDB4MDIsIDB4MDEsIDB4NmYsIDB4MDIsIDB4MDEsIDB4OWEsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCi17IDB4MDE0MCwJMTYsCXsweGU1LCAweDExLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwfSB9LAoteyAweDAxNTAsCTE2LAl7MHgwMiwgMHgwMywgMHg3YywgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwMTYwLAkxNiwJezB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDMsIDB4N2MsIDB4MTJ9IH0sCi17IDB4MDE3MCwJMTYsCXsweDBhLCAweDg5LCAweDUwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDBmfSB9LAoteyAweDAxODAsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwM30gfSwKLXsgMHgwMTkwLAkxNiwJezB4N2MsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MGYsIDB4MDIsIDB4MDMsIDB4N2MsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDcsIDB4ZjB9IH0sCi17IDB4MDFhMCwJMTYsCXsweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGU4LCAweDdlfSB9LAoteyAweDAxYjAsCTE2LAl7MHgwMywgMHgxMiwgMHgwZCwgMHhkNSwgMHhkMiwgMHgwNiwgMHgxMiwgMHgwZCwgMHgwZCwgMHgwMiwgMHgwMywgMHg3YywgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH0gfSwKLXsgMHgwMWMwLAkxNiwJezB4NzUsIDB4MjksIDB4MDAsIDB4ZjUsIDB4MmEsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZTQsIDB4ZWUsIDB4NDIsIDB4MjksIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTB9IH0sCi17IDB4MDFkMCwJMTYsCXsweDc1LCAweDJiLCAweDAwLCAweGY1LCAweDJjLCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDJiLCAweDkwLCAweDdmLCAweGU4LCAweGUwfSB9LAoteyAweDAxZTAsCTE2LAl7MHg2NCwgMHhjMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwMiwgMHhjOSwgMHhlNSwgMHgyYywgMHg0NSwgMHgyYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3Y30gfSwKLXsgMHgwMWYwLAkxNiwJezB4YzMsIDB4ZTUsIDB4MmMsIDB4OTQsIDB4NDAsIDB4ZTUsIDB4MmIsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDgsIDB4ODUsIDB4MmIsIDB4MmQsIDB4ODUsIDB4MmN9IH0sCi17IDB4MDIwMCwJMTYsCXsweDJlLCAweDgwLCAweDA2LCAweDc1LCAweDJkLCAweDAwLCAweDc1LCAweDJlLCAweDQwLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwfSB9LAoteyAweDAyMTAsCTE2LAl7MHgzNCwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzMiwgMHhjMywgMHhlNSwgMHgzMiwgMHg5NSwgMHgyZSwgMHhlNSwgMHgzMSwgMHg5NSwgMHgyZCwgMHg1MCwgMHg1Y30gfSwKLXsgMHgwMjIwLAkxNiwJezB4ZTUsIDB4MmEsIDB4MjUsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzEsIDB4MzUsIDB4MjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDIzMCwJMTYsCXsweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweDcwfSB9LAoteyAweDAyNDAsCTE2LAl7MHgwMiwgMHgwNSwgMHgzMSwgMHg4MCwgMHhkMCwgMHhlNCwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzMiwgMHhjMywgMHhlNSwgMHgzMiwgMHg5NSwgMHgyZSwgMHhlNX0gfSwKLXsgMHgwMjUwLAkxNiwJezB4MzEsIDB4OTUsIDB4MmQsIDB4NTAsIDB4MTgsIDB4NzQsIDB4MDAsIDB4MjUsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDI2MCwJMTYsCXsweDc0LCAweGNkLCAweGYwLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweDcwLCAweDAyLCAweDA1LCAweDMxLCAweDgwLCAweGRkLCAweGFmLCAweDJhLCAweGFlfSB9LAoteyAweDAyNzAsCTE2LAl7MHgyOSwgMHhhZCwgMHgyZSwgMHg3YSwgMHg3ZiwgMHg3OSwgMHgwMCwgMHg3YiwgMHgwMCwgMHgxMiwgMHgwYiwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhlNX0gfSwKLXsgMHgwMjgwLAkxNiwJezB4MmUsIDB4ZjAsIDB4ZTUsIDB4MmUsIDB4MjUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ZTUsIDB4MmQsIDB4MzUsIDB4MjksIDB4ZjUsIDB4MjksIDB4YzMsIDB4ZTV9IH0sCi17IDB4MDI5MCwJMTYsCXsweDJjLCAweDk1LCAweDJlLCAweGY1LCAweDJjLCAweGU1LCAweDJiLCAweDk1LCAweDJkLCAweGY1LCAweDJiLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmfSB9LAoteyAweDAyYTAsCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg3NSwgMHgyZiwgMHgwMCwgMHhmNSwgMHgzMCwgMHhkMywgMHg5NCwgMHgwMCwgMHhlNSwgMHgyZiwgMHg5NCwgMHgwMCwgMHg1MH0gfSwKLXsgMHgwMmIwLAkxNiwJezB4MGMsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTcsIDB4ODAsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCi17IDB4MDJjMCwJMTYsCXsweGUwLCAweDIwLCAweGUyLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDY0LCAweDQwLCAweDYwfSB9LAoteyAweDAyZDAsCTE2LAl7MHgwMywgMHgwMiwgMHgwMywgMHg3YywgMHhlNSwgMHgyYywgMHg0NSwgMHgyYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3YywgMHhlNCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwMmUwLAkxNiwJezB4YzUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmYsIDB4MDAsIDB4ZjUsIDB4MzAsIDB4ZDN9IH0sCi17IDB4MDJmMCwJMTYsCXsweDk0LCAweDAwLCAweGU1LCAweDJmLCAweDk0LCAweDAwLCAweDUwLCAweDA5LCAweDkwLCAweDdmLCAweGM0LCAweGUwLCAweDMwLCAweGUxLCAweDA5LCAweDgwfSB9LAoteyAweDAzMDAsCTE2LAl7MHhmNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHgyMCwgMHhlMywgMHhmOSwgMHg5MCwgMHg3ZiwgMHhjNSwgMHhlMCwgMHg3NSwgMHgyZCwgMHgwMCwgMHhmNX0gfSwKLXsgMHgwMzEwLAkxNiwJezB4MmUsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NjQsIDB4YTMsIDB4NzAsIDB4MzgsIDB4OTAsIDB4MjAsIDB4NmIsIDB4ZjAsIDB4ZjUsIDB4MzEsIDB4ZjV9IH0sCi17IDB4MDMyMCwJMTYsCXsweDMyLCAweGMzLCAweGU1LCAweDMyLCAweDk1LCAweDJlLCAweGU1LCAweDMxLCAweDk1LCAweDJkLCAweDUwLCAweDM0LCAweDc0LCAweGMwLCAweDI1LCAweDMyfSB9LAoteyAweDAzMzAsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgyYSwgMHgyNSwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNX0gfSwKLXsgMHgwMzQwLAkxNiwJezB4MzEsIDB4MzUsIDB4MjksIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzIsIDB4ZTUsIDB4MzIsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzEsIDB4ODB9IH0sCi17IDB4MDM1MCwJMTYsCXsweGQwLCAweGFmLCAweDJhLCAweGFlLCAweDI5LCAweGFkLCAweDJlLCAweDdhLCAweDdlLCAweDc5LCAweGMwLCAweDdiLCAweGMwLCAweDEyLCAweDBjLCAweDgwfSB9LAoteyAweDAzNjAsCTE2LAl7MHhlNSwgMHgyZSwgMHgyNSwgMHgyYSwgMHhmNSwgMHgyYSwgMHhlNSwgMHgyZCwgMHgzNSwgMHgyOSwgMHhmNSwgMHgyOSwgMHhjMywgMHhlNSwgMHgyYywgMHg5NX0gfSwKLXsgMHgwMzcwLAkxMywJezB4MmUsIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4MmIsIDB4OTUsIDB4MmQsIDB4ZjUsIDB4MmIsIDB4MDIsIDB4MDIsIDB4ZDQsIDB4YzN9IH0sCi17IDB4MDM3ZCwJMSwJezB4MjJ9IH0sCi17IDB4MDM3ZSwJMTYsCXsweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDU2LCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweGQyLCAweDI0fSB9LAoteyAweDAzOGUsCTE2LAl7MHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg0NiwgMHgyNCwgMHhmYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg1MCwgMHgxNCwgMHg3MCwgMHgwM30gfSwKLXsgMHgwMzllLAkxNiwJezB4MDIsIDB4MDQsIDB4NGEsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4M2UsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDQsIDB4MjR9IH0sCi17IDB4MDNhZSwJMTYsCXsweDA1LCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweDlhLCAweDEyLCAweDBlLCAweDdiLCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmfSB9LAoteyAweDAzYmUsCTE2LAl7MHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg0MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2OSwgMHg3NCwgMHgxMSwgMHg5MH0gfSwKLXsgMHgwM2NlLAkxNiwJezB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCi17IDB4MDNkZSwJMTYsCXsweGZmLCAweDEyLCAweDBiLCAweDU4LCAweDhiLCAweDI2LCAweDhhLCAweDI3LCAweDg5LCAweDI4LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyfSB9LAoteyAweDAzZWUsCTE2LAl7MHhlZSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MH0gfSwKLXsgMHgwM2ZlLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGN9IH0sCi17IDB4MDQwZSwJMTYsCXsweDNmLCAweDhiLCAweDI2LCAweDhhLCAweDI3LCAweDg5LCAweDI4LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmfSB9LAoteyAweDA0MWUsCTE2LAl7MHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMH0gfSwKLXsgMHgwNDJlLAkxNiwJezB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWJ9IH0sCi17IDB4MDQzZSwJMTYsCXsweDEyLCAweDBlLCAweDUyLCAweDAyLCAweDA1LCAweGFiLCAweDEyLCAweDBlLCAweDYwLCAweDAyLCAweDA1LCAweGFiLCAweDEyLCAweDBhLCAweGY3LCAweDAyfSB9LAoteyAweDA0NGUsCTE2LAl7MHgwNSwgMHhhYiwgMHgxMiwgMHgwOCwgMHhmMSwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwZSwgMHg3ZCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYn0gfSwKLXsgMHgwNDVlLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTJ9IH0sCi17IDB4MDQ2ZSwJMTYsCXsweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDAyLCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwfSB9LAoteyAweDA0N2UsCTE2LAl7MHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHgwNDhlLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTB9IH0sCi17IDB4MDQ5ZSwJMTYsCXsweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0fSB9LAoteyAweDA0YWUsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhM30gfSwKLXsgMHgwNGJlLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDF9IH0sCi17IDB4MDRjZSwJMTYsCXsweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDEyLCAweDBlLCAweDdmLCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGU4LCAweGUwfSB9LAoteyAweDA0ZGUsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNH0gfSwKLXsgMHgwNGVlLAkxNiwJezB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDV9IH0sCi17IDB4MDRmZSwJMTYsCXsweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0fSB9LAoteyAweDA1MGUsCTE2LAl7MHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3Zn0gfSwKLXsgMHgwNTFlLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWZ9IH0sCi17IDB4MDUyZSwJMTYsCXsweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDZlLCAweDkwfSB9LAoteyAweDA1M2UsCTE2LAl7MHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg2NSwgMHgxMiwgMHgwZSwgMHg4MSwgMHg1MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhlOH0gfSwKLXsgMHgwNTRlLAkxNiwJezB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NTQsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDR9IH0sCi17IDB4MDU1ZSwJMTYsCXsweGQyLCAweDAwLCAweDgwLCAweDQ5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDQwLCAweDkwLCAweDdmLCAweGVhfSB9LAoteyAweDA1NmUsCTE2LAl7MHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMH0gfSwKLXsgMHgwNTdlLAkxNiwJezB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDF9IH0sCi17IDB4MDU4ZSwJMTYsCXsweGYwLCAweDgwLCAweDFhLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDExLCAweGU0LCAweDkwLCAweDIwLCAweDZhfSB9LAoteyAweDA1OWUsCTE2LAl7MHhmMCwgMHgxMiwgMHgwMSwgMHgwMCwgMHg1MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKLXsgMHgwNWFlLAk0LAl7MHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKLXsgMHgwNWIyLAkxLAl7MHgyMn0gfSwKLXsgMHgwNWIzLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MDVjMywJMTYsCXsweGQwLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweDkwLCAweDdmLCAweGE1fSB9LAoteyAweDA1ZDMsCTE2LAl7MHhlMCwgMHgzMCwgMHhlMiwgMHgwNiwgMHg3NSwgMHgwZCwgMHgwNiwgMHgwMiwgMHgwNiwgMHg3ZiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHgyMCwgMHhlMX0gfSwKLXsgMHgwNWUzLAkxNiwJezB4MGMsIDB4ZTUsIDB4MGQsIDB4NjQsIDB4MDIsIDB4NjAsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDcsIDB4MDIsIDB4MDYsIDB4N2YsIDB4YWYsIDB4MGQsIDB4ZWZ9IH0sCi17IDB4MDVmMywJMTYsCXsweDI0LCAweGZlLCAweDYwLCAweDQ4LCAweDE0LCAweDYwLCAweDJjLCAweDI0LCAweGZlLCAweDYwLCAweDc3LCAweDI0LCAweDA0LCAweDYwLCAweDAzLCAweDAyfSB9LAoteyAweDA2MDMsCTE2LAl7MHgwNiwgMHg3ZiwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZiwgMHgwYywgMHgwNSwgMHgwYywgMHg4ZiwgMHg4MiwgMHg3NSwgMHg4M30gfSwKLXsgMHgwNjEzLAkxNiwJezB4MDAsIDB4MTIsIDB4MDcsIDB4ODUsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ZTUsIDB4MGMsIDB4NjUsIDB4MDgsIDB4NzAsIDB4NWUsIDB4NzUsIDB4MGR9IH0sCi17IDB4MDYyMywJMTYsCXsweDA1LCAweDgwLCAweDU5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5LCAweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFlLCAweDBjLCAweDhlfSB9LAoteyAweDA2MzMsCTE2LAl7MHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwNywgMHhiMiwgMHg3NSwgMHgwZCwgMHgwMiwgMHg4MCwgMHg0MCwgMHhlNSwgMHgwOCwgMHgyNCwgMHhmZX0gfSwKLXsgMHgwNjQzLAkxNiwJezB4YjUsIDB4MGMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ZTUsIDB4MDgsIDB4MTQsIDB4YjUsIDB4MGMsIDB4MGF9IH0sCi17IDB4MDY1MywJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5fSB9LAoteyAweDA2NjMsCTE2LAl7MHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZSwgMHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwNywgMHhiMiwgMHgwNSwgMHgwY30gfSwKLXsgMHgwNjczLAkxNiwJezB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4NTMsIDB4OTEsIDB4ZGYsIDB4ZDB9IH0sCi17IDB4MDY4MywJMTYsCXsweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwfSB9LAoteyAweDA2OTMsCTEwLAl7MHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwNjlkLAkxNiwJezB4YzIsIDB4MDQsIDB4ZDIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MjUsIDB4YzIsIDB4MDMsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDEsIDB4MTJ9IH0sCi17IDB4MDZhZCwJMTYsCXsweDBlLCAweDc0LCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5fSB9LAoteyAweDA2YmQsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwNmNkLAkxNiwJezB4N2YsIDB4OTMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4MTIsIDB4MGEsIDB4MTksIDB4NzUsIDB4MjQsIDB4NDgsIDB4NzUsIDB4MjMsIDB4OTIsIDB4NzUsIDB4MjJ9IH0sCi17IDB4MDZkZCwJMTYsCXsweDAwLCAweDc1LCAweDIxLCAweDAwLCAweGU0LCAweGZmLCAweGZlLCAweDdlLCAweDA1LCAweDkwLCAweDIwLCAweDY4LCAweDc0LCAweDAxLCAweGYwLCAweGEzfSB9LAoteyAweDA2ZWQsCTE2LAl7MHhkZSwgMHhmYywgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZX0gfSwKLXsgMHgwNmZkLAkxNiwJezB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4MTIsIDB4MGUsIDB4NjgsIDB4MzAsIDB4MDEsIDB4MGEsIDB4ZTQsIDB4OTAsIDB4MjAsIDB4Njl9IH0sCi17IDB4MDcwZCwJMTYsCXsweGYwLCAweDEyLCAweDAzLCAweDdlLCAweGMyLCAweDAxLCAweDMwLCAweDA0LCAweDFhLCAweDEyLCAweDBlLCAweDc3LCAweDUwLCAweDEzLCAweDEyLCAweDA5fSB9LAoteyAweDA3MWQsCTE2LAl7MHgwMCwgMHgzMCwgMHgwMCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHhmMywgMHgxMiwgMHgwZCwgMHg4YiwgMHgxMiwgMHgwZX0gfSwKLXsgMHgwNzJkLAkxNiwJezB4NzksIDB4YzIsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4N2UsIDB4ZmYsIDB4N2QsIDB4ZmYsIDB4N2MsIDB4ZmYsIDB4NzgsIDB4MjEsIDB4MTIsIDB4MDgsIDB4MWR9IH0sCi17IDB4MDczZCwJMTYsCXsweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweGMzLCAweDEyLCAweDA4LCAweDBjLCAweDcwLCAweDFiLCAweDc1LCAweDI0fSB9LAoteyAweDA3NGQsCTE2LAl7MHg0OCwgMHg3NSwgMHgyMywgMHg5MiwgMHhmNSwgMHgyMiwgMHhmNSwgMHgyMSwgMHg2MywgMHgyNSwgMHhmZiwgMHg5MCwgMHgyMCwgMHg2OCwgMHhlNSwgMHgyNX0gfSwKLXsgMHgwNzVkLAkxNCwJezB4ZjAsIDB4YTMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MDgsIDB4ZmYsIDB4ODAsIDB4OWJ9IH0sCi17IDB4MDc2YiwJMSwJezB4MjJ9IH0sCi17IDB4MDc2YywJMTYsCXsweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyfSB9LAoteyAweDA3N2MsCTksCXsweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweDA3ODUsCTE2LAl7MHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MH0gfSwKLXsgMHgwNzk1LAkxNiwJezB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjJ9IH0sCi17IDB4MDdhNSwJMTMsCXsweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweDA3YjIsCTE2LAl7MHhmOCwgMHhiYiwgMHgwMSwgMHgwZCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlOCwgMHhmMH0gfSwKLXsgMHgwN2MyLAkxNiwJezB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDUsIDB4ZTksIDB4MjUsIDB4ODIsIDB4Yzh9IH0sCi17IDB4MDdkMiwJMiwJezB4ZjIsIDB4MjJ9IH0sCi17IDB4MDdkNCwJMTYsCXsweGJiLCAweDAxLCAweDEwLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwfSB9LAoteyAweDA3ZTQsCTE2LAl7MHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZX0gfSwKLXsgMHgwN2Y0LAkxNiwJezB4MGEsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4ZjUsIDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDgwNCwJOCwJezB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDgwYywJMTYsCXsweGViLCAweDlmLCAweGY1LCAweGYwLCAweGVhLCAweDllLCAweDQyLCAweGYwLCAweGU5LCAweDlkLCAweDQyLCAweGYwLCAweGU4LCAweDljLCAweDQ1LCAweGYwfSB9LAoteyAweDA4MWMsCTEsCXsweDIyfSB9LAoteyAweDA4MWQsCTE2LAl7MHgwOCwgMHgwOCwgMHgwOCwgMHhlNiwgMHgyZiwgMHhmZiwgMHhmNiwgMHgxOCwgMHhlNiwgMHgzZSwgMHhmZSwgMHhmNiwgMHgxOCwgMHhlNiwgMHgzZCwgMHhmZH0gfSwKLXsgMHgwODJkLAk3LAl7MHhmNiwgMHgxOCwgMHhlNiwgMHgzYywgMHhmYywgMHhmNiwgMHgyMn0gfSwKLXsgMHgwODM0LAk0LAl7MHg4YywgMHgzNCwgMHg4ZCwgMHgzNX0gfSwKLXsgMHgwODM4LAkxNiwJezB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MzcsIDB4YzMsIDB4ZTUsIDB4MzcsIDB4OTV9IH0sCi17IDB4MDg0OCwJMTYsCXsweDM1LCAweGU1LCAweDM2LCAweDk1LCAweDM0LCAweDUwLCAweDY5LCAweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1fSB9LAoteyAweDA4NTgsCTE2LAl7MHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhmNCwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNn0gfSwKLXsgMHgwODY4LAkxNiwJezB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzZ9IH0sCi17IDB4MDg3OCwJMTYsCXsweDNlLCAweGY1LCAweDgzLCAweDc0LCAweGFhLCAweGYwLCAweDY0LCAweGFhLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM3LCAweGY1fSB9LAoteyAweDA4ODgsCTE2LAl7MHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHg1NSwgMHhmMCwgMHg2NCwgMHg1NSwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhhZH0gfSwKLXsgMHgwODk4LAkxNiwJezB4MzcsIDB4ZTUsIDB4MzcsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZWQsIDB4ZjAsIDB4ZmMsIDB4YWMsIDB4MDV9IH0sCi17IDB4MDhhOCwJMTYsCXsweGVkLCAweDZjLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweDA1LCAweDM3LCAweGU1LCAweDM3LCAweDcwLCAweDAyLCAweDA1LCAweDM2LCAweDgwLCAweDhjfSB9LAoteyAweDA4YjgsCTE2LAl7MHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzNywgMHhjMywgMHhlNSwgMHgzNywgMHg5NSwgMHgzNSwgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHg1MCwgMHgyN30gfSwKLXsgMHgwOGM4LAkxNiwJezB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjUsIDB4MzcsIDB4NjAsIDB4MDIsIDB4YzN9IH0sCi17IDB4MDhkOCwJMTYsCXsweDIyLCAweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDA1LCAweDM3LCAweGU1fSB9LAoteyAweDA4ZTgsCTgsCXsweDM3LCAweDcwLCAweDAyLCAweDA1LCAweDM2LCAweDgwLCAweGNlLCAweGQzfSB9LAoteyAweDA4ZjAsCTEsCXsweDIyfSB9LAoteyAweDA4ZjEsCTE0LAl7MHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwOGZmLAkxLAl7MHgyMn0gfSwKLXsgMHgwOTAwLAk5LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHg3NH0gfSwKLXsgMHgwOTdkLAkxNiwJezB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MDk4ZCwJMTIsCXsweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDNhLCAweDAyLCAweDA5LCAweGQ0fSB9LAoteyAweDA5OTksCTE2LAl7MHgwMiwgMHgwNiwgMHg5ZCwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMn0gfSwKLXsgMHgwOWE5LAkxNiwJezB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzN9IH0sCi17IDB4MDliOSwJMTYsCXsweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmfSB9LAoteyAweDA5YzksCTE2LAl7MHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgwZSwgMHgyZCwgMHhlNCwgMHg3ZX0gfSwKLXsgMHgwOWQ5LAkxNiwJezB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTN9IH0sCi17IDB4MDllOSwJMTYsCXsweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzfSB9LAoteyAweDA5ZjksCTE2LAl7MHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYX0gfSwKLXsgMHgwYTA5LAkxNiwJezB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmV9IH0sCi17IDB4MGExOSwJMTYsCXsweGU0LCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDdmLCAweDBhLCAweGZlLCAweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDg5fSB9LAoteyAweDBhMjksCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhjZiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwYTM5LAkxNiwJezB4OTYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCi17IDB4MGE0OSwJMTYsCXsweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDdmLCAweDA1fSB9LAoteyAweDBhNTksCTE2LAl7MHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwYTY5LAkxNiwJezB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGR9IH0sCi17IDB4MGE3OSwJMTYsCXsweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweGQ1LCAweDIyfSB9LAoteyAweDBhODksCTE2LAl7MHg3NSwgMHgzMywgMHgwMSwgMHhlNSwgMHgzMywgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgwZSwgMHgxOCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgwZX0gfSwKLXsgMHgwYTk5LAkxNiwJezB4N2QsIDB4MDAsIDB4N2MsIDB4MDEsIDB4MTIsIDB4MDgsIDB4MzQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzMsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTJ9IH0sCi17IDB4MGFhOSwJMTYsCXsweDBlLCAweDE4LCAweGU1LCAweDMzLCAweDYwLCAweDFiLCAweDdmLCAweDAyLCAweDEyLCAweDBlLCAweDE4LCAweDdmLCAweDAwLCAweDdlLCAweDgwLCAweDdkfSB9LAoteyAweDBhYjksCTE2LAl7MHgwMCwgMHg3YywgMHg4MCwgMHgxMiwgMHgwOCwgMHgzNCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMywgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZX0gfSwKLXsgMHgwYWM5LAkxNiwJezB4MTgsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MGUsIDB4MTgsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MjAsIDB4N2QsIDB4NDB9IH0sCi17IDB4MGFkOSwJMTYsCXsweDdjLCAweDViLCAweDEyLCAweDA4LCAweDM0LCAweGU0LCAweDMzLCAweGY1LCAweDMzLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyLCAweDBlLCAweDE4fSB9LAoteyAweDBhZTksCTEzLAl7MHhlNSwgMHgzMywgMHg2MCwgMHgwNSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgwZSwgMHgxOCwgMHhlNSwgMHgzMywgMHgyNCwgMHhmZn0gfSwKLXsgMHgwYWY2LAkxLAl7MHgyMn0gfSwKLXsgMHgwYWY3LAk4LAl7MHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwYWZmLAkxLAl7MHgzMn0gfSwKLXsgMHgwYjAwLAkxNiwJezB4MDIsIDB4MGQsIDB4YTUsIDB4MDAsIDB4MDIsIDB4MGQsIDB4ZWMsIDB4MDAsIDB4MDIsIDB4MGQsIDB4NzAsIDB4MDAsIDB4MDIsIDB4MGQsIDB4YmQsIDB4MDB9IH0sCi17IDB4MGIxMCwJMTYsCXsweDAyLCAweDBlLCAweDAyLCAweDAwLCAweDAyLCAweDBhLCAweGZmLCAweDAwLCAweDAyLCAweDBlLCAweDgzLCAweDAwLCAweDAyLCAweDBlLCAweDg0LCAweDAwfSB9LAoteyAweDBiMjAsCTE2LAl7MHgwMiwgMHgwZSwgMHg4NSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4NiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4NywgMHgwMCwgMHgwMiwgMHgwZSwgMHg4OCwgMHgwMH0gfSwKLXsgMHgwYjMwLAkxNiwJezB4MDIsIDB4MGUsIDB4ODksIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGEsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGIsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGMsIDB4MDB9IH0sCi17IDB4MGI0MCwJMTYsCXsweDAyLCAweDBlLCAweDhkLCAweDAwLCAweDAyLCAweDBlLCAweDhlLCAweDAwLCAweDAyLCAweDBlLCAweDhmLCAweDAwLCAweDAyLCAweDBlLCAweDkwLCAweDAwfSB9LAoteyAweDBiNTAsCTgsCXsweDAyLCAweDBlLCAweDkxLCAweDAwLCAweDAyLCAweDBlLCAweDkyLCAweDAwfSB9LAoteyAweDBiNTgsCTE2LAl7MHhlNCwgMHhmZSwgMHg3NSwgMHgyYiwgMHhmZiwgMHg3NSwgMHgyYywgMHgxMSwgMHg3NSwgMHgyZCwgMHgxMiwgMHhhYiwgMHgyYiwgMHhhYSwgMHgyYywgMHhhOX0gfSwKLXsgMHgwYjY4LAkxNiwJezB4MmQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDcsIDB4ODUsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MmQsIDB4YWQsIDB4MDYsIDB4MGUsIDB4ZWQsIDB4YjV9IH0sCi17IDB4MGI3OCwJMTYsCXsweDA3LCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDA3LCAweGQ0LCAweDg1LCAweGYwLCAweDI5LCAweGY1LCAweDJhLCAweDYyLCAweDI5fSB9LAoteyAweDBiODgsCTE2LAl7MHhlNSwgMHgyOSwgMHg2MiwgMHgyYSwgMHhlNSwgMHgyYSwgMHg2MiwgMHgyOSwgMHgyOSwgMHhmZCwgMHhlNSwgMHgyOSwgMHgzYSwgMHhhOSwgMHgwNSwgMHg3NX0gfSwKLXsgMHgwYjk4LAkxNCwJezB4MmIsIDB4ZmYsIDB4ZjUsIDB4MmMsIDB4ODksIDB4MmQsIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MGJhNiwJMSwJezB4MjJ9IH0sCi17IDB4MGJhNywJNiwJezB4YWIsIDB4MDcsIDB4YWEsIDB4MDYsIDB4YWMsIDB4MDV9IH0sCi17IDB4MGJhZCwJMTYsCXsweGU0LCAweGZkLCAweGU1LCAweDExLCAweDYwLCAweDExLCAweGVhLCAweGZmLCAweGFlLCAweDA1LCAweDBkLCAweGVlLCAweDI0LCAweDEwLCAweGY1LCAweDgyfSB9LAoteyAweDBiYmQsCTE2LAl7MHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlYiwgMHhhZSwgMHgwNSwgMHgwZCwgMHg3NCwgMHgxMCwgMHgyZSwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgwYmNkLAkxNiwJezB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWIsIDB4ZjAsIDB4YWYsIDB4MDUsIDB4MGQsIDB4NzQsIDB4MTAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4MGJkZCwJMTYsCXsweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweGFmLCAweDBmLCAweDdhLCAweDBmLCAweDdiLCAweDEwLCAweDEyLCAweDBkLCAweDUxLCAweDdmfSB9LAoteyAweDBiZWQsCTYsCXsweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweGQ1fSB9LAoteyAweDBiZjMsCTEsCXsweDIyfSB9LAoteyAweDBiZjQsCTEwLAl7MHg4ZSwgMHgzMywgMHg4ZiwgMHgzNCwgMHg4ZCwgMHgzNSwgMHg4YSwgMHgzNiwgMHg4YiwgMHgzN30gfSwKLXsgMHgwYmZlLAkxNiwJezB4ZTQsIDB4ZmQsIDB4ZjUsIDB4MzgsIDB4ZTUsIDB4MTEsIDB4NjAsIDB4MTIsIDB4ZTUsIDB4MzMsIDB4ZmYsIDB4YWUsIDB4MDUsIDB4MGQsIDB4ZWUsIDB4MjR9IH0sCi17IDB4MGMwZSwJMTYsCXsweDEzLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDM0LCAweGFlLCAweDA1LCAweDBkLCAweDc0fSB9LAoteyAweDBjMWUsCTE2LAl7MHgxMywgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlNSwgMHgzNCwgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZn0gfSwKLXsgMHgwYzJlLAkxNiwJezB4N2IsIDB4MTMsIDB4MTIsIDB4MGQsIDB4NTEsIDB4YWYsIDB4MGYsIDB4YWQsIDB4MzUsIDB4YWIsIDB4MzcsIDB4YWEsIDB4MzYsIDB4MTIsIDB4MGQsIDB4MzJ9IH0sCi17IDB4MGMzZSwJMSwJezB4MjJ9IH0sCi17IDB4MGMzZiwJMiwJezB4OGYsIDB4Mjl9IH0sCi17IDB4MGM0MSwJMTYsCXsweGU0LCAweGY1LCAweDJhLCAweDc1LCAweDJiLCAweGZmLCAweDc1LCAweDJjLCAweDExLCAweDc1LCAweDJkLCAweDMyLCAweGFiLCAweDJiLCAweGFhLCAweDJjfSB9LAoteyAweDBjNTEsCTE2LAl7MHhhOSwgMHgyZCwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwNywgMHg4NSwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgyYSwgMHgwNSwgMHgyYSwgMHhlZn0gfSwKLXsgMHgwYzYxLAkxNiwJezB4YjUsIDB4MjksIDB4MDEsIDB4MjIsIDB4MTIsIDB4MDcsIDB4NmMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzV9IH0sCi17IDB4MGM3MSwJMTQsCXsweDJiLCAweGZmLCAweGY1LCAweDJjLCAweDg5LCAweDJkLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDBjN2YsCTEsCXsweDIyfSB9LAoteyAweDBjODAsCTEwLAl7MHg4ZSwgMHgzMywgMHg4ZiwgMHgzNCwgMHg4ZCwgMHgzNSwgMHg4YSwgMHgzNiwgMHg4YiwgMHgzN30gfSwKLXsgMHgwYzhhLAkxNiwJezB4ZTQsIDB4ZjUsIDB4MzgsIDB4ZTUsIDB4MzgsIDB4YzMsIDB4OTUsIDB4MzUsIDB4NTAsIDB4MjAsIDB4MDUsIDB4MzQsIDB4ZTUsIDB4MzQsIDB4YWUsIDB4MzN9IH0sCi17IDB4MGM5YSwJMTYsCXsweDcwLCAweDAyLCAweDA1LCAweDMzLCAweDE0LCAweGZmLCAweGU1LCAweDM3LCAweDI1LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDM2LCAweGY1fSB9LAoteyAweDBjYWEsCTEwLAl7MHg4MywgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYiwgMHhhNywgMHgwNSwgMHgzOCwgMHg4MCwgMHhkOX0gfSwKLXsgMHgwY2I0LAkxLAl7MHgyMn0gfSwKLXsgMHgwY2I1LAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCi17IDB4MGNjNSwJMTYsCXsweDQ0LCAweDAxLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhfSB9LAoteyAweDBjZDUsCTEzLAl7MHgwYSwgMHg4OSwgMHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMywgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKLXsgMHgwY2UyLAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjMsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCi17IDB4MGNmMiwJMTYsCXsweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhLCAweDBhLCAweDg5fSB9LAoteyAweDBkMDIsCTExLAl7MHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKLXsgMHgwZDBkLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MDYsIDB4MDQsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MGQxZCwJMTYsCXsweDAyLCAweGYwLCAweDdmLCAweGQwLCAweDdlLCAweDA3LCAweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwfSB9LAoteyAweDBkMmQsCTUsCXsweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyfSB9LAoteyAweDBkMzIsCTE2LAl7MHgxMiwgMHgwYywgMHhiNSwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKLXsgMHgwZDQyLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCi17IDB4MGQ1MSwJMTYsCXsweDEyLCAweDBjLCAweGUyLCAweGU1LCAweDBkLCAweDI0LCAweGZhLCAweDYwLCAweDEwLCAweDE0LCAweDYwLCAweDA3LCAweDI0LCAweDA3LCAweDcwLCAweGYzfSB9LAoteyAweDBkNjEsCTE1LAl7MHg3ZiwgMHgwOCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNiwgMHgyMn0gfSwKLXsgMHgwZDcwLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGQ4MCwJMTEsCXsweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkOGIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgxMiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgxNCwgMHg3ZSwgMHgwMCwgMHgxMn0gfSwKLXsgMHgwZDliLAkxMCwJezB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MGRhNSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxfSB9LAoteyAweDBkYjUsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkYmQsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOH0gfSwKLXsgMHgwZGNkLAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZGQ1LAkxNiwJezB4OGUsIDB4MzksIDB4OGYsIDB4M2EsIDB4ZTUsIDB4M2EsIDB4MTUsIDB4M2EsIDB4YWUsIDB4MzksIDB4NzAsIDB4MDIsIDB4MTUsIDB4MzksIDB4NGUsIDB4NjB9IH0sCi17IDB4MGRlNSwJNywJezB4MDUsIDB4MTIsIDB4MGUsIDB4NDEsIDB4ODAsIDB4ZWUsIDB4MjJ9IH0sCi17IDB4MGRlYywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAyLCAweGYwLCAweGQwfSB9LAoteyAweDBkZmMsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBlMDIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgxMCwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwZTEyLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZTE4LAkxNiwJezB4YWUsIDB4MDcsIDB4N2YsIDB4MjEsIDB4N2QsIDB4MDEsIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4YWIsIDB4ODJ9IH0sCi17IDB4MGUyOCwJNSwJezB4ZmEsIDB4MTIsIDB4MGQsIDB4NTEsIDB4MjJ9IH0sCi17IDB4MGUyZCwJMTYsCXsweDUwLCAweDBmLCAweDAwLCAweGMwLCAweGY5LCAweGE0LCAweGIwLCAweDk5LCAweDkyLCAweDgyLCAweGY4LCAweDgwLCAweDk4LCAweDg4LCAweDgzLCAweGM2fSB9LAoteyAweDBlM2QsCTMsCXsweGExLCAweDg2LCAweDhlfSB9LAoteyAweDBlNDAsCTEsCXsweDAwfSB9LAoteyAweDBlNDEsCTE2LAl7MHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX0gfSwKLXsgMHgwZTUxLAkxLAl7MHgyMn0gfSwKLXsgMHgwZTUyLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU2MCwJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MGUsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU2OCwJOCwJezB4ZTQsIDB4ZjUsIDB4MGQsIDB4ZDIsIDB4ZTksIDB4ZDIsIDB4YWYsIDB4MjJ9IH0sCi17IDB4MGU3MCwJNCwJezB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9IH0sCi17IDB4MGU3NCwJMywJezB4ZDIsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MGU3NywJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU3OSwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU3YiwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU3ZCwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU3ZiwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU4MSwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU4MywJMSwJezB4MzJ9IH0sCi17IDB4MGU4NCwJMSwJezB4MzJ9IH0sCi17IDB4MGU4NSwJMSwJezB4MzJ9IH0sCi17IDB4MGU4NiwJMSwJezB4MzJ9IH0sCi17IDB4MGU4NywJMSwJezB4MzJ9IH0sCi17IDB4MGU4OCwJMSwJezB4MzJ9IH0sCi17IDB4MGU4OSwJMSwJezB4MzJ9IH0sCi17IDB4MGU4YSwJMSwJezB4MzJ9IH0sCi17IDB4MGU4YiwJMSwJezB4MzJ9IH0sCi17IDB4MGU4YywJMSwJezB4MzJ9IH0sCi17IDB4MGU4ZCwJMSwJezB4MzJ9IH0sCi17IDB4MGU4ZSwJMSwJezB4MzJ9IH0sCi17IDB4MGU4ZiwJMSwJezB4MzJ9IH0sCi17IDB4MGU5MCwJMSwJezB4MzJ9IH0sCi17IDB4MGU5MSwJMSwJezB4MzJ9IH0sCi17IDB4MGU5MiwJMSwJezB4MzJ9IH0sCi17IDB4MTEwMCwJMTYsCXsweDEyLCAweDAxLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDQwLCAweDQ3LCAweDA1LCAweDEwLCAweDI3LCAweDAxLCAweDAwLCAweDAxLCAweDAyfSB9LAoteyAweDExMTAsCTE2LAl7MHgwMCwgMHgwMSwgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMywgMHhhMCwgMHgwMCwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMn0gfSwKLXsgMHgxMTIwLAkxNiwJezB4ZmYsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDB9IH0sCi17IDB4MTEzMCwJMTYsCXsweDAwLCAweDAwLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDI2LCAweDAzLCAweDQxLCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDY4LCAweDAwfSB9LAoteyAweDExNDAsCTE2LAl7MHg2ZiwgMHgwMCwgMHg3MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MywgMHgwMCwgMHg2OCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3MywgMHgwMH0gfSwKLXsgMHgxMTUwLAkxNiwJezB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MjgsIDB4MDMsIDB4NDYsIDB4MDB9IH0sCi17IDB4MTE2MCwJMTYsCXsweDY5LCAweDAwLCAweDcyLCAweDAwLCAweDZkLCAweDAwLCAweDc3LCAweDAwLCAweDYxLCAweDAwLCAweDcyLCAweDAwLCAweDY1LCAweDAwLCAweDIwLCAweDAwfSB9LAoteyAweDExNzAsCTE2LAl7MHg0NiwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg1NywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg3MiwgMHgwMH0gfSwKLXsgMHgxMTgwLAkxNiwJezB4NmIsIDB4MDAsIDB4NzMsIDB4MDAsIDB4MmEsIDB4MDMsIDB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjksIDB4MDB9IH0sCi17IDB4MTE5MCwJMTYsCXsweDY3LCAweDAwLCAweDc1LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDc0LCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwfSB9LAoteyAweDExYTAsCTE2LAl7MHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMCwgMHgyMiwgMHgwM30gfSwKLXsgMHgxMWIwLAkxNiwJezB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NjMsIDB4MDB9IH0sCi17IDB4MTFjMCwJMTYsCXsweDY1LCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwfSB9LAoteyAweDExZDAsCTIsCXsweDAwLCAweDAwfSB9LAoteyAweGZmZmYsCTAsCXsweDAwfSB9Ci19OwotCi0jZWxzZQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHdoaXRlaGVhdF9sb2FkZXJbXSA9IHsKLXsgMHgwMDAwLAkzLAl7MHgwMiwgMHgwOSwgMHg4ZH0gfSwKLXsgMHgwMDMzLAkzLAl7MHgwMiwgMHgwOCwgMHhmYn0gfSwKLXsgMHgwMDQzLAkzLAl7MHgwMiwgMHgwYiwgMHgwMH0gfSwKLXsgMHgwMDRiLAkzLAl7MHgwMiwgMHgwNSwgMHhhYX0gfSwKLXsgMHgwMTAwLAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NTQsIDB4MTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4NTAsIDB4ZjUsIDB4MGYsIDB4MTMsIDB4ZTR9IH0sCi17IDB4MDExMCwJMTYsCXsweDMzLCAweGY1LCAweDExLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDI0LCAweDVlLCAweGI0LCAweDA3LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDAzfSB9LAoteyAweDAxMjAsCTE2LAl7MHg3OCwgMHg5MCwgMHgwMSwgMHgyOCwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMiwgMHgwMSwgMHhiYywgMHgwMiwgMHgwMSwgMHhiYywgMHgwMiwgMHgwMX0gfSwKLXsgMHgwMTMwLAkxNiwJezB4OTEsIDB4MDIsIDB4MDEsIDB4M2QsIDB4MDIsIDB4MDEsIDB4NTMsIDB4MDIsIDB4MDEsIDB4NmYsIDB4MDIsIDB4MDEsIDB4OWEsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCi17IDB4MDE0MCwJMTYsCXsweGU1LCAweDExLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwfSB9LAoteyAweDAxNTAsCTE2LAl7MHgwMiwgMHgwMywgMHg3OCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwMTYwLAkxNiwJezB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDMsIDB4NzgsIDB4MTJ9IH0sCi17IDB4MDE3MCwJMTYsCXsweDBhLCAweDg5LCAweDUwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDBmfSB9LAoteyAweDAxODAsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwM30gfSwKLXsgMHgwMTkwLAkxNiwJezB4NzgsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MGYsIDB4MDIsIDB4MDMsIDB4NzgsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDcsIDB4ZjB9IH0sCi17IDB4MDFhMCwJMTYsCXsweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGU4LCAweDdlfSB9LAoteyAweDAxYjAsCTE2LAl7MHgwMywgMHgxMiwgMHgwZCwgMHg5NCwgMHhkMiwgMHgwNiwgMHgxMiwgMHgwYywgMHhjYywgMHgwMiwgMHgwMywgMHg3OCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH0gfSwKLXsgMHgwMWMwLAkxNiwJezB4NzUsIDB4MjgsIDB4MDAsIDB4ZjUsIDB4MjksIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZTQsIDB4ZWUsIDB4NDIsIDB4MjgsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTB9IH0sCi17IDB4MDFkMCwJMTYsCXsweDc1LCAweDJhLCAweDAwLCAweGY1LCAweDJiLCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDJhLCAweDkwLCAweDdmLCAweGU4LCAweGUwfSB9LAoteyAweDAxZTAsCTE2LAl7MHg2NCwgMHhjMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwMiwgMHhjOSwgMHhlNSwgMHgyYiwgMHg0NSwgMHgyYSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3OH0gfSwKLXsgMHgwMWYwLAkxNiwJezB4YzMsIDB4ZTUsIDB4MmIsIDB4OTQsIDB4NDAsIDB4ZTUsIDB4MmEsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDgsIDB4ODUsIDB4MmEsIDB4MmMsIDB4ODUsIDB4MmJ9IH0sCi17IDB4MDIwMCwJMTYsCXsweDJkLCAweDgwLCAweDA2LCAweDc1LCAweDJjLCAweDAwLCAweDc1LCAweDJkLCAweDQwLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwfSB9LAoteyAweDAyMTAsCTE2LAl7MHgzNCwgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhjMywgMHhlNSwgMHgzMSwgMHg5NSwgMHgyZCwgMHhlNSwgMHgzMCwgMHg5NSwgMHgyYywgMHg1MCwgMHg1Y30gfSwKLXsgMHgwMjIwLAkxNiwJezB4ZTUsIDB4MjksIDB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzAsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDIzMCwJMTYsCXsweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDMxLCAweGU1LCAweDMxLCAweDcwfSB9LAoteyAweDAyNDAsCTE2LAl7MHgwMiwgMHgwNSwgMHgzMCwgMHg4MCwgMHhkMCwgMHhlNCwgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhjMywgMHhlNSwgMHgzMSwgMHg5NSwgMHgyZCwgMHhlNX0gfSwKLXsgMHgwMjUwLAkxNiwJezB4MzAsIDB4OTUsIDB4MmMsIDB4NTAsIDB4MTgsIDB4NzQsIDB4MDAsIDB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDI2MCwJMTYsCXsweDc0LCAweGNkLCAweGYwLCAweDA1LCAweDMxLCAweGU1LCAweDMxLCAweDcwLCAweDAyLCAweDA1LCAweDMwLCAweDgwLCAweGRkLCAweGFmLCAweDI5LCAweGFlfSB9LAoteyAweDAyNzAsCTE2LAl7MHgyOCwgMHhhZCwgMHgyZCwgMHg3YSwgMHg3ZiwgMHg3OSwgMHgwMCwgMHg3YiwgMHgwMCwgMHgxMiwgMHgwYiwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhlNX0gfSwKLXsgMHgwMjgwLAkxNiwJezB4MmQsIDB4ZjAsIDB4ZTUsIDB4MmQsIDB4MjUsIDB4MjksIDB4ZjUsIDB4MjksIDB4ZTUsIDB4MmMsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4MjgsIDB4YzMsIDB4ZTV9IH0sCi17IDB4MDI5MCwJMTYsCXsweDJiLCAweDk1LCAweDJkLCAweGY1LCAweDJiLCAweGU1LCAweDJhLCAweDk1LCAweDJjLCAweGY1LCAweDJhLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmfSB9LAoteyAweDAyYTAsCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg3NSwgMHgyZSwgMHgwMCwgMHhmNSwgMHgyZiwgMHhkMywgMHg5NCwgMHgwMCwgMHhlNSwgMHgyZSwgMHg5NCwgMHgwMCwgMHg1MH0gfSwKLXsgMHgwMmIwLAkxNiwJezB4MGMsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTcsIDB4ODAsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCi17IDB4MDJjMCwJMTYsCXsweGUwLCAweDIwLCAweGUyLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDY0LCAweDQwLCAweDYwfSB9LAoteyAweDAyZDAsCTE2LAl7MHgwMywgMHgwMiwgMHgwMywgMHg3OCwgMHhlNSwgMHgyYiwgMHg0NSwgMHgyYSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3OCwgMHhlNCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwMmUwLAkxNiwJezB4YzUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmUsIDB4MDAsIDB4ZjUsIDB4MmYsIDB4ZDN9IH0sCi17IDB4MDJmMCwJMTYsCXsweDk0LCAweDAwLCAweGU1LCAweDJlLCAweDk0LCAweDAwLCAweDUwLCAweDA5LCAweDkwLCAweDdmLCAweGM0LCAweGUwLCAweDMwLCAweGUxLCAweDA5LCAweDgwfSB9LAoteyAweDAzMDAsCTE2LAl7MHhmNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHgyMCwgMHhlMywgMHhmOSwgMHg5MCwgMHg3ZiwgMHhjNSwgMHhlMCwgMHg3NSwgMHgyYywgMHgwMCwgMHhmNX0gfSwKLXsgMHgwMzEwLAkxNiwJezB4MmQsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NjQsIDB4YTMsIDB4NzAsIDB4MzQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YzMsIDB4ZTUsIDB4MzF9IH0sCi17IDB4MDMyMCwJMTYsCXsweDk1LCAweDJkLCAweGU1LCAweDMwLCAweDk1LCAweDJjLCAweDUwLCAweDM0LCAweDc0LCAweGMwLCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoteyAweDAzMzAsCTEsCXsweDdlfSB9LAoteyAweDAzMzEsCTE2LAl7MHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgyOSwgMHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzMCwgMHgzNSwgMHgyOCwgMHhmNSwgMHg4M30gfSwKLXsgMHgwMzQxLAkxNiwJezB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzEsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzAsIDB4ODAsIDB4ZDAsIDB4YWYsIDB4MjksIDB4YWUsIDB4Mjh9IH0sCi17IDB4MDM1MSwJMTYsCXsweGFkLCAweDJkLCAweDdhLCAweDdlLCAweDc5LCAweGMwLCAweDdiLCAweGMwLCAweDEyLCAweDBjLCAweDNmLCAweGU1LCAweDJkLCAweDI1LCAweDI5LCAweGY1fSB9LAoteyAweDAzNjEsCTE2LAl7MHgyOSwgMHhlNSwgMHgyYywgMHgzNSwgMHgyOCwgMHhmNSwgMHgyOCwgMHhjMywgMHhlNSwgMHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHhlNSwgMHgyYX0gfSwKLXsgMHgwMzcxLAk5LAl7MHg5NSwgMHgyYywgMHhmNSwgMHgyYSwgMHgwMiwgMHgwMiwgMHhkNCwgMHhjMywgMHgyMn0gfSwKLXsgMHgwMzdhLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NTIsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4Y2UsIDB4MjR9IH0sCi17IDB4MDM4YSwJMTYsCXsweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDA1LCAweDQyLCAweDI0LCAweGZiLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDRjLCAweDE0LCAweDcwLCAweDAzfSB9LAoteyAweDAzOWEsCTE2LAl7MHgwMiwgMHgwNCwgMHg0NiwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHgzYSwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHgyNH0gfSwKLXsgMHgwM2FhLAkxNiwJezB4MDUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4OTYsIDB4MTIsIDB4MGUsIDB4NDQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDNiYSwJMTYsCXsweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLCAweDQwLCAweDI0LCAweDAyLCAweDcwLCAweDY5LCAweDc0LCAweDExLCAweDkwfSB9LAoteyAweDAzY2EsCTE2LAl7MHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH0gfSwKLXsgMHgwM2RhLAkxNiwJezB4ZmYsIDB4MTIsIDB4MGIsIDB4NTgsIDB4OGIsIDB4MjUsIDB4OGEsIDB4MjYsIDB4ODksIDB4MjcsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDJ9IH0sCi17IDB4MDNlYSwJMTYsCXsweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwfSB9LAoteyAweDAzZmEsCTE2LAl7MHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwOH0gfSwKLXsgMHgwNDBhLAkxNiwJezB4YmEsIDB4OGIsIDB4MjUsIDB4OGEsIDB4MjYsIDB4ODksIDB4MjcsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDIsIDB4ZWUsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDQxYSwJMTYsCXsweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGI0LCAweGUwfSB9LAoteyAweDA0MmEsCTE2LAl7MHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMn0gfSwKLXsgMHgwNDNhLAkxNiwJezB4MTIsIDB4MGUsIDB4MWYsIDB4MDIsIDB4MDUsIDB4YTIsIDB4MTIsIDB4MGUsIDB4MmQsIDB4MDIsIDB4MDUsIDB4YTIsIDB4MTIsIDB4MGEsIDB4ZjcsIDB4MDJ9IH0sCi17IDB4MDQ0YSwJMTYsCXsweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDExLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDQ2LCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGEyfSB9LAoteyAweDA0NWEsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMn0gfSwKLXsgMHgwNDZhLAkxNiwJezB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDIsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjB9IH0sCi17IDB4MDQ3YSwJMTYsCXsweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweGU0LCAweDkwLCAweDdmLCAweDAwfSB9LAoteyAweDA0OGEsCTE2LAl7MHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMH0gfSwKLXsgMHgwNDlhLAkxNiwJezB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjR9IH0sCi17IDB4MDRhYSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzfSB9LAoteyAweDA0YmEsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMX0gfSwKLXsgMHgwNGNhLAkxNiwJezB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4MTIsIDB4MGUsIDB4NDgsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTB9IH0sCi17IDB4MDRkYSwJMTYsCXsweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0fSB9LAoteyAweDA0ZWEsCTE2LAl7MHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNX0gfSwKLXsgMHgwNGZhLAkxNiwJezB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzR9IH0sCi17IDB4MDUwYSwJMTYsCXsweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmfSB9LAoteyAweDA1MWEsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZn0gfSwKLXsgMHgwNTJhLAkxNiwJezB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NjksIDB4OTB9IH0sCi17IDB4MDUzYSwJMTYsCXsweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDYwLCAweDEyLCAweDBlLCAweDRhLCAweDUwLCAweDViLCAweDkwLCAweDdmLCAweGU4fSB9LAoteyAweDA1NGEsCTE2LAl7MHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNH0gfSwKLXsgMHgwNTVhLAkxNiwJezB4ZDIsIDB4MDAsIDB4ODAsIDB4NDQsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4M2IsIDB4OTAsIDB4N2YsIDB4ZWF9IH0sCi17IDB4MDU2YSwJMTYsCXsweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwfSB9LAoteyAweDA1N2EsCTE2LAl7MHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMX0gfSwKLXsgMHgwNThhLAkxNiwJezB4ZjAsIDB4ODAsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4MTIsIDB4MDEsIDB4MDAsIDB4NTB9IH0sCi17IDB4MDU5YSwJMTYsCXsweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfSB9LAoteyAweDA1YWEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwNWJhLAkxNiwJezB4ZDAsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YTV9IH0sCi17IDB4MDVjYSwJMTYsCXsweGUwLCAweDMwLCAweGUyLCAweDA2LCAweDc1LCAweDBkLCAweDA2LCAweDAyLCAweDA2LCAweDc2LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDIwLCAweGUxfSB9LAoteyAweDA1ZGEsCTE2LAl7MHgwYywgMHhlNSwgMHgwZCwgMHg2NCwgMHgwMiwgMHg2MCwgMHgwNiwgMHg3NSwgMHgwZCwgMHgwNywgMHgwMiwgMHgwNiwgMHg3NiwgMHhhZiwgMHgwZCwgMHhlZn0gfSwKLXsgMHgwNWVhLAkxNiwJezB4MjQsIDB4ZmUsIDB4NjAsIDB4NDgsIDB4MTQsIDB4NjAsIDB4MmMsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4NzcsIDB4MjQsIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDJ9IH0sCi17IDB4MDVmYSwJMTYsCXsweDA2LCAweDc2LCAweGFiLCAweDA5LCAweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFmLCAweDBjLCAweDA1LCAweDBjLCAweDhmLCAweDgyLCAweDc1LCAweDgzfSB9LAoteyAweDA2MGEsCTE2LAl7MHgwMCwgMHgxMiwgMHgwOCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHhlNSwgMHgwYywgMHg2NSwgMHgwOCwgMHg3MCwgMHg1ZSwgMHg3NSwgMHgwZH0gfSwKLXsgMHgwNjFhLAkxNiwJezB4MDUsIDB4ODAsIDB4NTksIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4YWIsIDB4MDksIDB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWUsIDB4MGMsIDB4OGV9IH0sCi17IDB4MDYyYSwJMTYsCXsweDgyLCAweDc1LCAweDgzLCAweDAwLCAweDEyLCAweDA4LCAweDRmLCAweDc1LCAweDBkLCAweDAyLCAweDgwLCAweDQwLCAweGU1LCAweDA4LCAweDI0LCAweGZlfSB9LAoteyAweDA2M2EsCTE2LAl7MHhiNSwgMHgwYywgMHgwNywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHhlNSwgMHgwOCwgMHgxNCwgMHhiNSwgMHgwYywgMHgwYX0gfSwKLXsgMHgwNjRhLAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4YWIsIDB4MDl9IH0sCi17IDB4MDY1YSwJMTYsCXsweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFlLCAweDBjLCAweDhlLCAweDgyLCAweDc1LCAweDgzLCAweDAwLCAweDEyLCAweDA4LCAweDRmLCAweDA1LCAweDBjfSB9LAoteyAweDA2NmEsCTE2LAl7MHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgwZCwgMHg1MywgMHg5MSwgMHhkZiwgMHhkMH0gfSwKLXsgMHgwNjdhLAkxNiwJezB4MDcsIDB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDMsIDB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDAsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDB9IH0sCi17IDB4MDY4YSwJMTAsCXsweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDA2OTQsCTE2LAl7MHg4YywgMHgzMywgMHg4ZCwgMHgzNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzNn0gfSwKLXsgMHgwNmE0LAkxNiwJezB4YzMsIDB4ZTUsIDB4MzYsIDB4OTUsIDB4MzQsIDB4ZTUsIDB4MzUsIDB4OTUsIDB4MzMsIDB4NTAsIDB4NjksIDB4ZWYsIDB4MjUsIDB4MzYsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MDZiNCwJMTYsCXsweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweDc0LCAweGZmLCAweGYwLCAweGY0LCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM2fSB9LAoteyAweDA2YzQsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNn0gfSwKLXsgMHgwNmQ0LAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4YWEsIDB4ZjAsIDB4NjQsIDB4YWEsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MDZlNCwJMTYsCXsweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweDc0LCAweDU1LCAweGYwLCAweDY0LCAweDU1LCAweDYwfSB9LAoteyAweDA2ZjQsCTE2LAl7MHgwMiwgMHhjMywgMHgyMiwgMHhhZCwgMHgzNiwgMHhlNSwgMHgzNiwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHhlZH0gfSwKLXsgMHgwNzA0LAkxNiwJezB4ZjAsIDB4ZmMsIDB4YWMsIDB4MDUsIDB4ZWQsIDB4NmMsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4MDUsIDB4MzYsIDB4ZTUsIDB4MzYsIDB4NzAsIDB4MDJ9IH0sCi17IDB4MDcxNCwJMTYsCXsweDA1LCAweDM1LCAweDgwLCAweDhjLCAweGU0LCAweGY1LCAweDM1LCAweGY1LCAweDM2LCAweGMzLCAweGU1LCAweDM2LCAweDk1LCAweDM0LCAweGU1LCAweDM1fSB9LAoteyAweDA3MjQsCTE2LAl7MHg5NSwgMHgzMywgMHg1MCwgMHgyNywgMHhlZiwgMHgyNSwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2NX0gfSwKLXsgMHgwNzM0LAkxNiwJezB4MzYsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTR9IH0sCi17IDB4MDc0NCwJMTMsCXsweGYwLCAweDA1LCAweDM2LCAweGU1LCAweDM2LCAweDcwLCAweDAyLCAweDA1LCAweDM1LCAweDgwLCAweGNlLCAweGQzLCAweDIyfSB9LAoteyAweDA3NTEsCTE2LAl7MHhjMiwgMHgwNCwgMHhkMiwgMHgwNSwgMHhjMiwgMHgwMywgMHhjMiwgMHgwMCwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwMSwgMHgxMiwgMHgwZSwgMHgzZCwgMHhkMn0gfSwKLXsgMHgwNzYxLAkxNiwJezB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDc3MSwJMTYsCXsweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDkzLCAweDc0fSB9LAoteyAweDA3ODEsCTE2LAl7MHgzMCwgMHhmMCwgMHgxMiwgMHgwYSwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMH0gfSwKLXsgMHgwNzkxLAkxNiwJezB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4MTIsIDB4MGUsIDB4MzUsIDB4MjAsIDB4MDEsIDB4NDIsIDB4NzUsIDB4MjQsIDB4MDAsIDB4NzUsIDB4MjN9IH0sCi17IDB4MDdhMSwJMTYsCXsweDAwLCAweDc1LCAweDIyLCAweDAwLCAweDc1LCAweDIxLCAweDAwLCAweDdmLCAweDQ4LCAweDdlLCAweDkyLCAweDdkLCAweDAwLCAweDdjLCAweDAwLCAweGFifSB9LAoteyAweDA3YjEsCTE2LAl7MHgyNCwgMHhhYSwgMHgyMywgMHhhOSwgMHgyMiwgMHhhOCwgMHgyMSwgMHhjMywgMHgxMiwgMHgwOCwgMHhhOSwgMHg1MCwgMHhkYiwgMHgyMCwgMHgwMSwgMHhkOH0gfSwKLXsgMHgwN2MxLAkxNiwJezB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4ZTUsIDB4MjQsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4MjQsIDB4ZWEsIDB4MzUsIDB4MjMsIDB4ZjV9IH0sCi17IDB4MDdkMSwJMTYsCXsweDIzLCAweGU5LCAweDM1LCAweDIyLCAweGY1LCAweDIyLCAweGU4LCAweDM1LCAweDIxLCAweGY1LCAweDIxLCAweDgwLCAweGNhLCAweDMwLCAweDAxLCAweDA1fSB9LAoteyAweDA3ZTEsCTE2LAl7MHgxMiwgMHgwMywgMHg3YSwgMHhjMiwgMHgwMSwgMHgzMCwgMHgwNCwgMHgxYSwgMHgxMiwgMHgwZSwgMHg0MCwgMHg1MCwgMHgxMywgMHgxMiwgMHgwOSwgMHgwMH0gfSwKLXsgMHgwN2YxLAkxNiwJezB4MzAsIDB4MDAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4ZjMsIDB4MTIsIDB4MGQsIDB4NGEsIDB4MTIsIDB4MGUsIDB4NDJ9IH0sCi17IDB4MDgwMSwJOCwJezB4YzIsIDB4MDMsIDB4MTIsIDB4MDgsIDB4ZmYsIDB4ODAsIDB4ZDYsIDB4MjJ9IH0sCi17IDB4MDgwOSwJMTYsCXsweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyfSB9LAoteyAweDA4MTksCTksCXsweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweDA4MjIsCTE2LAl7MHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MH0gfSwKLXsgMHgwODMyLAkxNiwJezB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjJ9IH0sCi17IDB4MDg0MiwJMTMsCXsweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyfSB9LAoteyAweDA4NGYsCTE2LAl7MHhmOCwgMHhiYiwgMHgwMSwgMHgwZCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlOCwgMHhmMH0gfSwKLXsgMHgwODVmLAkxNiwJezB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDUsIDB4ZTksIDB4MjUsIDB4ODIsIDB4Yzh9IH0sCi17IDB4MDg2ZiwJMiwJezB4ZjIsIDB4MjJ9IH0sCi17IDB4MDg3MSwJMTYsCXsweGJiLCAweDAxLCAweDEwLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwfSB9LAoteyAweDA4ODEsCTE2LAl7MHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZX0gfSwKLXsgMHgwODkxLAkxNiwJezB4MGEsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4ZjUsIDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDhhMSwJOCwJezB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDhhOSwJMTYsCXsweGViLCAweDlmLCAweGY1LCAweGYwLCAweGVhLCAweDllLCAweDQyLCAweGYwLCAweGU5LCAweDlkLCAweDQyLCAweGYwLCAweGU4LCAweDljLCAweDQ1LCAweGYwfSB9LAoteyAweDA4YjksCTEsCXsweDIyfSB9LAoteyAweDA4YmEsCTIsCXsweDhmLCAweDI4fSB9LAoteyAweDA4YmMsCTE2LAl7MHhlNCwgMHhmNSwgMHgyOSwgMHg3NSwgMHgyYSwgMHhmZiwgMHg3NSwgMHgyYiwgMHgxMSwgMHg3NSwgMHgyYywgMHgzMiwgMHhhYiwgMHgyYSwgMHhhYSwgMHgyYn0gfSwKLXsgMHgwOGNjLAkxNiwJezB4YTksIDB4MmMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDgsIDB4MjIsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MjksIDB4MDUsIDB4MjksIDB4ZWZ9IH0sCi17IDB4MDhkYywJMTYsCXsweGI1LCAweDI4LCAweDAxLCAweDIyLCAweDEyLCAweDA4LCAweDA5LCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1fSB9LAoteyAweDA4ZWMsCTE0LAl7MHgyYSwgMHhmZiwgMHhmNSwgMHgyYiwgMHg4OSwgMHgyYywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwOGZhLAkxLAl7MHgyMn0gfSwKLXsgMHgwOGZiLAk0LAl7MHg1MywgMHhkOCwgMHhlZiwgMHgzMn0gfSwKLXsgMHgwOGZmLAkxLAl7MHgyMn0gfSwKLXsgMHgwOTAwLAk5LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHg3NH0gfSwKLXsgMHgwOTdkLAkxNiwJezB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MDk4ZCwJMTIsCXsweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDM5LCAweDAyLCAweDA5LCAweGQ0fSB9LAoteyAweDA5OTksCTE2LAl7MHgwMiwgMHgwNywgMHg1MSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMn0gfSwKLXsgMHgwOWE5LAkxNiwJezB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzN9IH0sCi17IDB4MDliOSwJMTYsCXsweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmfSB9LAoteyAweDA5YzksCTE2LAl7MHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgwZCwgMHhlYywgMHhlNCwgMHg3ZX0gfSwKLXsgMHgwOWQ5LAkxNiwJezB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTN9IH0sCi17IDB4MDllOSwJMTYsCXsweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzfSB9LAoteyAweDA5ZjksCTE2LAl7MHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYX0gfSwKLXsgMHgwYTA5LAkxNiwJezB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmV9IH0sCi17IDB4MGExOSwJMTYsCXsweGU0LCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDdmLCAweDBhLCAweGZlLCAweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDg5fSB9LAoteyAweDBhMjksCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhjZiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwYTM5LAkxNiwJezB4OTYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCi17IDB4MGE0OSwJMTYsCXsweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDdmLCAweDA1fSB9LAoteyAweDBhNTksCTE2LAl7MHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwYTY5LAkxNiwJezB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGR9IH0sCi17IDB4MGE3OSwJMTYsCXsweDk0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweDk0LCAweDIyfSB9LAoteyAweDBhODksCTE2LAl7MHg3NSwgMHgzMiwgMHgwMSwgMHhlNSwgMHgzMiwgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgwZCwgMHhkNywgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgwZX0gfSwKLXsgMHgwYTk5LAkxNiwJezB4N2QsIDB4MDAsIDB4N2MsIDB4MDEsIDB4MTIsIDB4MDYsIDB4OTQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTJ9IH0sCi17IDB4MGFhOSwJMTYsCXsweDBkLCAweGQ3LCAweGU1LCAweDMyLCAweDYwLCAweDFiLCAweDdmLCAweDAyLCAweDEyLCAweDBkLCAweGQ3LCAweDdmLCAweDAwLCAweDdlLCAweDgwLCAweDdkfSB9LAoteyAweDBhYjksCTE2LAl7MHgwMCwgMHg3YywgMHg4MCwgMHgxMiwgMHgwNiwgMHg5NCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMiwgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZH0gfSwKLXsgMHgwYWM5LAkxNiwJezB4ZDcsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MjAsIDB4N2QsIDB4NDB9IH0sCi17IDB4MGFkOSwJMTYsCXsweDdjLCAweDViLCAweDEyLCAweDA2LCAweDk0LCAweGU0LCAweDMzLCAweGY1LCAweDMyLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyLCAweDBkLCAweGQ3fSB9LAoteyAweDBhZTksCTE0LAl7MHhlNSwgMHgzMiwgMHg2MCwgMHgwNSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgwZCwgMHhkNywgMHhlNSwgMHgzMiwgMHgyNCwgMHhmZiwgMHgyMn0gfSwKLXsgMHgwYWY3LAk4LAl7MHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwYWZmLAkxLAl7MHgzMn0gfSwKLXsgMHgwYjAwLAkxNiwJezB4MDIsIDB4MGQsIDB4NjQsIDB4MDAsIDB4MDIsIDB4MGQsIDB4YWIsIDB4MDAsIDB4MDIsIDB4MGQsIDB4MmYsIDB4MDAsIDB4MDIsIDB4MGQsIDB4N2MsIDB4MDB9IH0sCi17IDB4MGIxMCwJMTYsCXsweDAyLCAweDBkLCAweGMxLCAweDAwLCAweDAyLCAweDBhLCAweGZmLCAweDAwLCAweDAyLCAweDBlLCAweDRjLCAweDAwLCAweDAyLCAweDBlLCAweDRkLCAweDAwfSB9LAoteyAweDBiMjAsCTE2LAl7MHgwMiwgMHgwZSwgMHg0ZSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg0ZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1MCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1MSwgMHgwMH0gfSwKLXsgMHgwYjMwLAkxNiwJezB4MDIsIDB4MGUsIDB4NTIsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTQsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTUsIDB4MDB9IH0sCi17IDB4MGI0MCwJMTYsCXsweDAyLCAweDBlLCAweDU2LCAweDAwLCAweDAyLCAweDBlLCAweDU3LCAweDAwLCAweDAyLCAweDBlLCAweDU4LCAweDAwLCAweDAyLCAweDBlLCAweDU5LCAweDAwfSB9LAoteyAweDBiNTAsCTgsCXsweDAyLCAweDBlLCAweDVhLCAweDAwLCAweDAyLCAweDBlLCAweDViLCAweDAwfSB9LAoteyAweDBiNTgsCTE2LAl7MHhlNCwgMHhmZSwgMHg3NSwgMHgyYSwgMHhmZiwgMHg3NSwgMHgyYiwgMHgxMSwgMHg3NSwgMHgyYywgMHgxMiwgMHhhYiwgMHgyYSwgMHhhYSwgMHgyYiwgMHhhOX0gfSwKLXsgMHgwYjY4LAkxNiwJezB4MmMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDgsIDB4MjIsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MmQsIDB4YWQsIDB4MDYsIDB4MGUsIDB4ZWQsIDB4YjV9IH0sCi17IDB4MGI3OCwJMTYsCXsweDA3LCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDA4LCAweDcxLCAweDg1LCAweGYwLCAweDI4LCAweGY1LCAweDI5LCAweDYyLCAweDI4fSB9LAoteyAweDBiODgsCTE2LAl7MHhlNSwgMHgyOCwgMHg2MiwgMHgyOSwgMHhlNSwgMHgyOSwgMHg2MiwgMHgyOCwgMHgyOSwgMHhmZCwgMHhlNSwgMHgyOCwgMHgzYSwgMHhhOSwgMHgwNSwgMHg3NX0gfSwKLXsgMHgwYjk4LAkxNCwJezB4MmEsIDB4ZmYsIDB4ZjUsIDB4MmIsIDB4ODksIDB4MmMsIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MGJhNiwJMSwJezB4MjJ9IH0sCi17IDB4MGJhNywJMTYsCXsweGFiLCAweDA3LCAweGFhLCAweDA2LCAweGFjLCAweDA1LCAweGU0LCAweGZkLCAweGU1LCAweDExLCAweDYwLCAweDExLCAweGVhLCAweGZmLCAweGFlLCAweDA1fSB9LAoteyAweDBiYjcsCTE2LAl7MHgwZCwgMHhlZSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlYiwgMHhhZSwgMHgwNX0gfSwKLXsgMHgwYmM3LAkxNiwJezB4MGQsIDB4NzQsIDB4MTAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWIsIDB4ZjAsIDB4YWYsIDB4MDUsIDB4MGR9IH0sCi17IDB4MGJkNywJMTYsCXsweDc0LCAweDEwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweGFmLCAweDBmLCAweDdhLCAweDBmfSB9LAoteyAweDBiZTcsCTEzLAl7MHg3YiwgMHgxMCwgMHgxMiwgMHgwZCwgMHgxMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHg5NCwgMHgyMn0gfSwKLXsgMHgwYmY0LAkxNiwJezB4OGUsIDB4MzIsIDB4OGYsIDB4MzMsIDB4OGQsIDB4MzQsIDB4OGEsIDB4MzUsIDB4OGIsIDB4MzYsIDB4ZTQsIDB4ZmQsIDB4ZjUsIDB4MzcsIDB4ZTUsIDB4MTF9IH0sCi17IDB4MGMwNCwJMTYsCXsweDYwLCAweDEyLCAweGU1LCAweDMyLCAweGZmLCAweGFlLCAweDA1LCAweDBkLCAweGVlLCAweDI0LCAweDEzLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmfSB9LAoteyAweDBjMTQsCTE2LAl7MHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgzMywgMHhhZSwgMHgwNSwgMHgwZCwgMHg3NCwgMHgxMywgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKLXsgMHgwYzI0LAkxNiwJezB4MGYsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MzMsIDB4ZjAsIDB4YWYsIDB4MGYsIDB4N2EsIDB4MGYsIDB4N2IsIDB4MTMsIDB4MTIsIDB4MGQsIDB4MTAsIDB4YWZ9IH0sCi17IDB4MGMzNCwJMTEsCXsweDBmLCAweGFkLCAweDM0LCAweGFiLCAweDM2LCAweGFhLCAweDM1LCAweDEyLCAweDBjLCAweGYxLCAweDIyfSB9LAoteyAweDBjM2YsCTE2LAl7MHg4ZSwgMHgzMiwgMHg4ZiwgMHgzMywgMHg4ZCwgMHgzNCwgMHg4YSwgMHgzNSwgMHg4YiwgMHgzNiwgMHhlNCwgMHhmNSwgMHgzNywgMHhlNSwgMHgzNywgMHhjM30gfSwKLXsgMHgwYzRmLAkxNiwJezB4OTUsIDB4MzQsIDB4NTAsIDB4MjAsIDB4MDUsIDB4MzMsIDB4ZTUsIDB4MzMsIDB4YWUsIDB4MzIsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzIsIDB4MTQsIDB4ZmZ9IH0sCi17IDB4MGM1ZiwJMTYsCXsweGU1LCAweDM2LCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDM1LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyLCAweDBiLCAweGE3fSB9LAoteyAweDBjNmYsCTUsCXsweDA1LCAweDM3LCAweDgwLCAweGQ5LCAweDIyfSB9LAoteyAweDBjNzQsCTE2LAl7MHhhOSwgMHgwNywgMHhlNSwgMHgwZCwgMHg3MCwgMHgyNSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlOSwgMHgyNSwgMHhlMH0gfSwKLXsgMHgwYzg0LAkxNiwJezB4NDQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OGQsIDB4MDgsIDB4YWYsIDB4MDMsIDB4YTksIDB4MDcsIDB4NzUsIDB4MDksIDB4MDEsIDB4OGF9IH0sCi17IDB4MGM5NCwJMTMsCXsweDBhLCAweDg5LCAweDBiLCAweGU0LCAweGY1LCAweDBjLCAweDc1LCAweDBkLCAweDAzLCAweGQzLCAweDIyLCAweGMzLCAweDIyfSB9LAoteyAweDBjYTEsCTE2LAl7MHhhOSwgMHgwNywgMHhlNSwgMHgwZCwgMHg3MCwgMHgyMywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlOSwgMHgyNSwgMHhlMH0gfSwKLXsgMHgwY2IxLAkxNiwJezB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OGQsIDB4MDgsIDB4YWYsIDB4MDMsIDB4YTksIDB4MDcsIDB4NzUsIDB4MDksIDB4MDEsIDB4OGEsIDB4MGEsIDB4ODl9IH0sCi17IDB4MGNjMSwJMTEsCXsweDBiLCAweGU0LCAweGY1LCAweDBjLCAweDc1LCAweDBkLCAweDAxLCAweGQzLCAweDIyLCAweGMzLCAweDIyfSB9LAoteyAweDBjY2MsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgwNiwgMHgwNCwgMHhlMCwgMHg0NH0gfSwKLXsgMHgwY2RjLAkxNiwJezB4MDIsIDB4ZjAsIDB4N2YsIDB4ZDAsIDB4N2UsIDB4MDcsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjB9IH0sCi17IDB4MGNlYywJNSwJezB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MGNmMSwJMTYsCXsweDEyLCAweDBjLCAweDc0LCAweGU1LCAweDBkLCAweDI0LCAweGZhLCAweDYwLCAweDEwLCAweDE0LCAweDYwLCAweDA3LCAweDI0LCAweDA3LCAweDcwLCAweGYzfSB9LAoteyAweDBkMDEsCTE1LAl7MHg3ZiwgMHgwOCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNiwgMHgyMn0gfSwKLXsgMHgwZDEwLAkxNiwJezB4MTIsIDB4MGMsIDB4YTEsIDB4ZTUsIDB4MGQsIDB4MjQsIDB4ZmEsIDB4NjAsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MDcsIDB4MjQsIDB4MDcsIDB4NzAsIDB4ZjN9IH0sCi17IDB4MGQyMCwJMTUsCXsweDdmLCAweDA4LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA3LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA2LCAweDIyfSB9LAoteyAweDBkMmYsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwZDNmLAkxMSwJezB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ0YSwJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDEyLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDE0LCAweDdlLCAweDAwLCAweDEyfSB9LAoteyAweDBkNWEsCTEwLAl7MHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwZDY0LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDF9IH0sCi17IDB4MGQ3NCwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ3YywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAzLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4fSB9LAoteyAweDBkOGMsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkOTQsCTE2LAl7MHg4ZSwgMHgzOCwgMHg4ZiwgMHgzOSwgMHhlNSwgMHgzOSwgMHgxNSwgMHgzOSwgMHhhZSwgMHgzOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHg0ZSwgMHg2MH0gfSwKLXsgMHgwZGE0LAk3LAl7MHgwNSwgMHgxMiwgMHgwZSwgMHgwMCwgMHg4MCwgMHhlZSwgMHgyMn0gfSwKLXsgMHgwZGFiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGRiYiwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGRjMSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDEwLCAweGYwLCAweGQwfSB9LAoteyAweDBkZDEsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkZDcsCTE2LAl7MHhhZSwgMHgwNywgMHg3ZiwgMHgyMSwgMHg3ZCwgMHgwMSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhhYiwgMHg4Mn0gfSwKLXsgMHgwZGU3LAk1LAl7MHhmYSwgMHgxMiwgMHgwZCwgMHgxMCwgMHgyMn0gfSwKLXsgMHgwZGVjLAkxNiwJezB4NTAsIDB4MGYsIDB4MDAsIDB4YzAsIDB4ZjksIDB4YTQsIDB4YjAsIDB4OTksIDB4OTIsIDB4ODIsIDB4ZjgsIDB4ODAsIDB4OTgsIDB4ODgsIDB4ODMsIDB4YzZ9IH0sCi17IDB4MGRmYywJMywJezB4YTEsIDB4ODYsIDB4OGV9IH0sCi17IDB4MGRmZiwJMSwJezB4MDB9IH0sCi17IDB4MGUwMCwJMTYsCXsweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5fSB9LAoteyAweDBlMTAsCTEsCXsweDIyfSB9LAoteyAweDBlMTEsCTE0LAl7MHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwZTFmLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGUyZCwJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MGUsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGUzNSwJOCwJezB4ZTQsIDB4ZjUsIDB4MGQsIDB4ZDIsIDB4ZTksIDB4ZDIsIDB4YWYsIDB4MjJ9IH0sCi17IDB4MGUzZCwJMywJezB4ZDIsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MGU0MCwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0MiwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0NCwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0NiwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0OCwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0YSwJMiwJezB4ZDMsIDB4MjJ9IH0sCi17IDB4MGU0YywJMSwJezB4MzJ9IH0sCi17IDB4MGU0ZCwJMSwJezB4MzJ9IH0sCi17IDB4MGU0ZSwJMSwJezB4MzJ9IH0sCi17IDB4MGU0ZiwJMSwJezB4MzJ9IH0sCi17IDB4MGU1MCwJMSwJezB4MzJ9IH0sCi17IDB4MGU1MSwJMSwJezB4MzJ9IH0sCi17IDB4MGU1MiwJMSwJezB4MzJ9IH0sCi17IDB4MGU1MywJMSwJezB4MzJ9IH0sCi17IDB4MGU1NCwJMSwJezB4MzJ9IH0sCi17IDB4MGU1NSwJMSwJezB4MzJ9IH0sCi17IDB4MGU1NiwJMSwJezB4MzJ9IH0sCi17IDB4MGU1NywJMSwJezB4MzJ9IH0sCi17IDB4MGU1OCwJMSwJezB4MzJ9IH0sCi17IDB4MGU1OSwJMSwJezB4MzJ9IH0sCi17IDB4MGU1YSwJMSwJezB4MzJ9IH0sCi17IDB4MGU1YiwJMSwJezB4MzJ9IH0sCi17IDB4MTEwMCwJMTYsCXsweDEyLCAweDAxLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDQwLCAweDQ3LCAweDA1LCAweDEwLCAweDI3LCAweDAxLCAweDAwLCAweDAxLCAweDAyfSB9LAoteyAweDExMTAsCTE2LAl7MHgwMCwgMHgwMSwgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMywgMHhhMCwgMHgwMCwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMn0gfSwKLXsgMHgxMTIwLAkxNiwJezB4ZmYsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDB9IH0sCi17IDB4MTEzMCwJMTYsCXsweDAwLCAweDAwLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDI2LCAweDAzLCAweDQxLCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDY4LCAweDAwfSB9LAoteyAweDExNDAsCTE2LAl7MHg2ZiwgMHgwMCwgMHg3MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MywgMHgwMCwgMHg2OCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3MywgMHgwMH0gfSwKLXsgMHgxMTUwLAkxNiwJezB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MjgsIDB4MDMsIDB4NDYsIDB4MDB9IH0sCi17IDB4MTE2MCwJMTYsCXsweDY5LCAweDAwLCAweDcyLCAweDAwLCAweDZkLCAweDAwLCAweDc3LCAweDAwLCAweDYxLCAweDAwLCAweDcyLCAweDAwLCAweDY1LCAweDAwLCAweDIwLCAweDAwfSB9LAoteyAweDExNzAsCTE2LAl7MHg0NiwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg1NywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg3MiwgMHgwMH0gfSwKLXsgMHgxMTgwLAkxNiwJezB4NmIsIDB4MDAsIDB4NzMsIDB4MDAsIDB4MmEsIDB4MDMsIDB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjksIDB4MDB9IH0sCi17IDB4MTE5MCwJMTYsCXsweDY3LCAweDAwLCAweDc1LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDc0LCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwfSB9LAoteyAweDExYTAsCTE2LAl7MHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMCwgMHgyMiwgMHgwM30gfSwKLXsgMHgxMWIwLAkxNiwJezB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NjMsIDB4MDB9IH0sCi17IDB4MTFjMCwJMTYsCXsweDY1LCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwfSB9LAoteyAweDExZDAsCTIsCXsweDAwLCAweDAwfSB9LAoteyAweGZmZmYsCTAsCXsweDAwfSB9Ci19OwotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bnc19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3NfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZmNzRhNi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bnc19mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBVU0IgWGlyY29tIFBHUyBGaXJtd2FyZQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBCcmlhbiBXYXJuZXIgICAgICAgIDx3YXJuZXJAbG90aGFyLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwMSBDcmlzdGlhbiBNLiBDcmFjaXVuZXNjdQk8Y3Jpc3RpQGRudC5ybz4KLSAqCi0gKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogR2VuZXJhdGVkIGZyb20geGlyY29tX3Bncy5TIGJ5IGV6dXNiX2NvbnZlcnRfeC5wbAotICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCB4aXJjb21fcGdzX2Zpcm13YXJlW10gPSB7Ci17IDB4MDAwMCwJMywJezB4MDIsIDB4MDIsIDB4MDB9IH0sCi17IDB4MDAyMywJNCwJezB4MDIsIDB4MDUsIDB4OWIsIDB4MDB9IH0sCi17IDB4MDAzMCwJNSwJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDA0MywJNCwJezB4MDIsIDB4MDEsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDEwMCwJMTYsCXsweDAyLCAweDAyLCAweGJhLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAxMTAsCTE2LAl7MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTIwLAkxNiwJezB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDQsIDB4ODUsIDB4MDAsIDB4MDIsIDB4MDQsIDB4YjksIDB4MDB9IH0sCi17IDB4MDIwMCwJMTYsCXsweDc1LCAweDgxLCAweDVlLCAweGU0LCAweGY1LCAweDMyLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGY1LCAweDM0LCAweGMyLCAweDAwfSB9LAoteyAweDAyMTAsCTE2LAl7MHhjMiwgMHgwMSwgMHhhOSwgMHgwMCwgMHg3NCwgMHhmZSwgMHg5MCwgMHgxMCwgMHgwMCwgMHhmMCwgMHhhMywgMHhkOSwgMHhmYywgMHg3NCwgMHhmZCwgMHg5MH0gfSwKLXsgMHgwMjIwLAkxNiwJezB4MTEsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZDksIDB4ZmMsIDB4OTAsIDB4N2YsIDB4OTQsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzR9IH0sCi17IDB4MDIzMCwJMTYsCXsweGVmLCAweGYwLCAweDc0LCAweDEwLCAweDkwLCAweDdmLCAweDllLCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDc0LCAweDQwfSB9LAoteyAweDAyNDAsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5ZCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg3NCwgMHg4MiwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMH0gfSwKLXsgMHgwMjUwLAkxNiwJezB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4ZDIsIDB4ZTAsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4OTB9IH0sCi17IDB4MDI2MCwJMTYsCXsweDdmLCAweGFiLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGFkfSB9LAoteyAweDAyNzAsCTE2LAl7MHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg3NCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhhZiwgMHhmMCwgMHg3NCwgMHgyMCwgMHg5MH0gfSwKLXsgMHgwMjgwLAkxNiwJezB4N2YsIDB4OWMsIDB4ZjAsIDB4NzQsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4NzQsIDB4NTMsIDB4ZjUsIDB4OTgsIDB4NzUsIDB4YzgsIDB4MzB9IH0sCi17IDB4MDI5MCwJMTYsCXsweDdiLCAweDA1LCAweDkxLCAweDQ0LCAweGQyLCAweGNhLCAweDc1LCAweDk4LCAweDUwLCAweGQyLCAweGU4LCAweGQyLCAweGFmLCAweGQyLCAweGFjLCAweDc0fSB9LAoteyAweDAyYTAsCTE2LAl7MHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg3OSwgMHgyZSwgMHg3YSwgMHgwMCwgMHg3YiwgMHgwMCwgMHhkYn0gfSwKLXsgMHgwMmIwLAkxNiwJezB4ZmUsIDB4ZGEsIDB4ZmEsIDB4ZDksIDB4ZjYsIDB4NzQsIDB4MDYsIDB4ZjAsIDB4ODAsIDB4ZmUsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODN9IH0sCi17IDB4MDJjMCwJMTYsCXsweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGFiLCAweDc0fSB9LAoteyAweDAyZDAsCTE2LAl7MHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHhhMywgMHhlMCwgMHhmYiwgMHhhMywgMHhlMCwgMHhmY30gfSwKLXsgMHgwMmUwLAkxNiwJezB4ZTksIDB4NTQsIDB4NjAsIDB4YjQsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NWQsIDB4YjQsIDB4NDAsIDB4NmUsIDB4YmEsIDB4MDAsIDB4MGIsIDB4MTJ9IH0sCi17IDB4MDJmMCwJMTYsCXsweDA0LCAweDQ0LCAweDQwLCAweDAzLCAweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDJlfSB9LAoteyAweDAzMDAsCTE2LAl7MHhiYSwgMHgwMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwMywgMHgwMywgMHgwMiwgMHgwNCwgMHg2OCwgMHhiYSwgMHgwNCwgMHgxZSwgMHhiYn0gfSwKLXsgMHgwMzEwLAkxNiwJezB4MDAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTB9IH0sCi17IDB4MDMyMCwJMTYsCXsweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweGJhLCAweDA1LCAweDAzfSB9LAoteyAweDAzMzAsCTE2LAl7MHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwNiwgMHgxOSwgMHhiYiwgMHgwMCwgMHgwOCwgMHhlNSwgMHgzMywgMHhkMywgMHg5NSwgMHgzMiwgMHgwMiwgMHgwNH0gfSwKLXsgMHgwMzQwLAkxNiwJezB4MDIsIDB4YmIsIDB4MDEsIDB4MDgsIDB4ZTUsIDB4MzIsIDB4YzMsIDB4OTUsIDB4MzMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmF9IH0sCi17IDB4MDM1MCwJMTYsCXsweDA3LCAweDA1LCAweDhiLCAweDM0LCAweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDAwLCAweDIwfSB9LAoteyAweDAzNjAsCTE2LAl7MHhiOSwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMH0gfSwKLXsgMHgwMzcwLAkxNiwJezB4MDIsIDB4MDQsIDB4MjYsIDB4YjksIDB4ODIsIDB4MDIsIDB4ODAsIDB4ZWIsIDB4YjksIDB4ODEsIDB4MDIsIDB4ODAsIDB4ZTYsIDB4MDIsIDB4MDQsIDB4MmV9IH0sCi17IDB4MDM4MCwJMTYsCXsweGJhLCAweDAxLCAweDBmLCAweGJiLCAweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDJlLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDI2LCAweDAyfSB9LAoteyAweDAzOTAsCTE2LAl7MHgwNCwgMHgyZSwgMHhiYSwgMHgwMywgMHgwZiwgMHhiYiwgMHgwMCwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYiwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNH0gfSwKLXsgMHgwM2EwLAkxNiwJezB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDYsIDB4NTYsIDB4YmMsIDB4MDEsIDB4MGYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4NzQsIDB4MDYsIDB4ZjB9IH0sCi17IDB4MDNiMCwJMTYsCXsweDkwLCAweDdmLCAweGQ1LCAweDc0LCAweDVhLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweGJjLCAweDAyLCAweDEyLCAweGJiLCAweDAwLCAweDZmLCAweDkwfSB9LAoteyAweDAzYzAsCTE2LAl7MHg3ZiwgMHhkNCwgMHg3NCwgMHgwNiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHg3NCwgMHg2YywgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYywgMHgwM30gfSwKLXsgMHgwM2QwLAkxNiwJezB4MjksIDB4NzQsIDB4MDQsIDB4YzMsIDB4OWIsIDB4NDAsIDB4NTcsIDB4NjAsIDB4NTUsIDB4ZWIsIDB4MmIsIDB4OTAsIDB4MDYsIDB4OGMsIDB4MjUsIDB4ODJ9IH0sCi17IDB4MDNlMCwJMTYsCXsweGY1LCAweDgyLCAweDc0LCAweDAwLCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweDkwLCAweDdmLCAweGQ0fSB9LAoteyAweDAzZjAsCTE2LAl7MHhlOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhlYSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwOCwgMHgwZn0gfSwKLXsgMHgwNDAwLAkxNiwJezB4NzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmF9IH0sCi17IDB4MDQxMCwJMTYsCXsweDA5LCAweDAzLCAweDAyLCAweDA0LCAweDI2LCAweGJhLCAweDBhLCAweDA1LCAweDc0LCAweDAwLCAweDAyLCAweDA0LCAweDAyLCAweGJhLCAweDBiLCAweDAzfSB9LAoteyAweDA0MjAsCTE2LAl7MHgwMiwgMHgwNCwgMHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwOSwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNDMwLAkxNiwJezB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDB9IH0sCi17IDB4MDQ0MCwJMTYsCXsweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGViLCAweDIwLCAweGU3LCAweDFlLCAweGMzLCAweDk0LCAweDBhLCAweDUwLCAweDE5LCAweGViLCAweDIzLCAweDI0fSB9LAoteyAweDA0NTAsCTE2LAl7MHg0NiwgMHhmNSwgMHg4MiwgMHg3NCwgMHgwNiwgMHgzNCwgMHgwMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhjYiwgMHhmNSwgMHhjZCwgMHhhMywgMHhlMH0gfSwKLXsgMHgwNDYwLAkxNiwJezB4ZjUsIDB4Y2EsIDB4ZjUsIDB4Y2MsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIDB4YjksIDB4NDEsIDB4MTEsIDB4ZWIsIDB4NjQsIDB4ZmYsIDB4NTQsIDB4ODB9IH0sCi17IDB4MDQ3MCwJMTYsCXsweGZiLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweDdmLCAweDRiLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweDkwLCAweDdmLCAweDliLCAweGUwfSB9LAoteyAweDA0ODAsCTE2LAl7MHg2NCwgMHhmZiwgMHgwMiwgMHgwNCwgMHgwMiwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMH0gfSwKLXsgMHgwNDkwLAkxNiwJezB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MjAsIDB4OTB9IH0sCi17IDB4MDRhMCwJMTYsCXsweDdmLCAweDljLCAweGYwLCAweDEyLCAweDA1LCAweGRjLCAweDc0LCAweDIwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweDg1fSB9LAoteyAweDA0YjAsCTE2LAl7MHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMH0gfSwKLXsgMHgwNGMwLAkxNiwJezB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4NzQsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjV9IH0sCi17IDB4MDRkMCwJMTYsCXsweDkxLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY5LCAweGU0LCAweGY1LCAweDg2LCAweDkwfSB9LAoteyAweDA0ZTAsCTE2LAl7MHg3ZCwgMHhjMCwgMHg3NSwgMHg4NSwgMHgxMCwgMHg4NSwgMHgzMiwgMHg4NCwgMHhlMCwgMHgwNSwgMHg4NiwgMHgwNSwgMHg4NCwgMHhmMCwgMHhlNSwgMHg4NH0gfSwKLXsgMHgwNGYwLAkxNiwJezB4YjUsIDB4MzMsIDB4MDIsIDB4ODAsIDB4MDksIDB4MDUsIDB4MzIsIDB4MDUsIDB4ODYsIDB4YTMsIDB4ZDksIDB4ZWMsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDUwMCwJMTYsCXsweGM5LCAweGYwLCAweGIxLCAweDZkLCAweDc0LCAweDIwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweDg1LCAweGQwLCAweDg0fSB9LAoteyAweDA1MTAsCTE2LAl7MHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHgyMCwgMHhlMX0gfSwKLXsgMHgwNTIwLAkxNiwJezB4NGIsIDB4OTAsIDB4N2QsIDB4MDAsIDB4ZTUsIDB4MzIsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzMsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzAsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDUzMCwJMTYsCXsweGU1LCAweDMxLCAweGYwLCAweGEzLCAweGU0LCAweDMwLCAweDAwLCAweDAxLCAweDA0LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDkwLCAweDEwLCAweDAwfSB9LAoteyAweDA1NDAsCTE2LAl7MHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkOSwgMHhmNiwgMHgwNSwgMHg4NiwgMHg3NCwgMHhmY30gfSwKLXsgMHgwNTUwLAkxNiwJezB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MTEsIDB4MDAsIDB4NzksIDB4MTAsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MDU2MCwJMTYsCXsweDg2LCAweGQ5LCAweGY2LCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGJkLCAweDc0LCAweDI2LCAweGYwLCAweDIyLCAweDIwLCAweDAwLCAweDEzfSB9LAoteyAweDA1NzAsCTE2LAl7MHhlNSwgMHgzMiwgMHhiNSwgMHgzMywgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMywgMHg3NSwgMHg4MywgMHgxMCwgMHg4NSwgMHgzMywgMHg4MiwgMHhlMCwgMHhmNX0gfSwKLXsgMHgwNTgwLAkxNiwJezB4OTksIDB4ZDIsIDB4MDAsIDB4NzQsIDB4MDAsIDB4YjUsIDB4MzQsIDB4MDEsIDB4MjIsIDB4ZTUsIDB4MzMsIDB4ZDMsIDB4OTUsIDB4MzIsIDB4YzMsIDB4OTV9IH0sCi17IDB4MDU5MCwJMTYsCXsweDM0LCAweDQwLCAweGY1LCAweDc1LCAweDM0LCAweDAwLCAweGQyLCAweDAxLCAweDAyLCAweDA1LCAweGRjLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwfSB9LAoteyAweDA1YTAsCTE2LAl7MHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHgzMCwgMHg5OSwgMHgwNywgMHhjMiwgMHg5OSwgMHhjMiwgMHgwMCwgMHgxMiwgMHgwNX0gfSwKLXsgMHgwNWIwLAkxNiwJezB4NzAsIDB4MzAsIDB4OTgsIDB4MDUsIDB4MTIsIDB4MDUsIDB4YzYsIDB4YzIsIDB4OTgsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODQsIDB4ZDB9IH0sCi17IDB4MDVjMCwJMTYsCXsweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweDc1LCAweDgzLCAweDExLCAweDg1LCAweDMwLCAweDgyLCAweDA1LCAweDgyLCAweGU1LCAweDk5fSB9LAoteyAweDA1ZDAsCTE2LAl7MHhmMCwgMHhlNSwgMHg4MiwgMHhiNSwgMHgzMSwgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMCwgMHhiMSwgMHhkYywgMHgyMiwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNWUwLAkxNiwJezB4OWMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4M2UsIDB4MjAsIDB4MDEsIDB4M2MsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4MzF9IH0sCi17IDB4MDVmMCwJMTYsCXsweDAxLCAweDIyLCAweGU0LCAweGY1LCAweDg2LCAweDc1LCAweDgzLCAweDExLCAweDA1LCAweDg2LCAweDkwLCAweDdlLCAweDAwLCAweGYwLCAweGEzLCAweDA1fSB9LAoteyAweDA2MDAsCTE2LAl7MHg4NiwgMHg3OSwgMHgwMSwgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMSwgMHgwMiwgMHg4MCwgMHgxMCwgMHgwNSwgMHgzMSwgMHg4NSwgMHgzMSwgMHg4MiwgMHhlMH0gfSwKLXsgMHgwNjEwLAkxNiwJezB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4MDksIDB4YjksIDB4NDAsIDB4ZTksIDB4NzQsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjB9IH0sCi17IDB4MDYyMCwJMTYsCXsweDkwLCAweDdmLCAweGI5LCAweGU5LCAweDYwLCAweDAxLCAweGYwLCAweDIyLCAweGMyLCAweDAxLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdlLCAweDAwfSB9LAoteyAweDA2MzAsCTE2LAl7MHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHgyMiwgMHhjMiwgMHg5OSwgMHhmNSwgMHg5OX0gfSwKLXsgMHgwNjQwLAkxNiwJezB4MzAsIDB4OTksIDB4ZmQsIDB4YzIsIDB4OTksIDB4MjIsIDB4ZTUsIDB4NWUsIDB4ZjYsIDB4M2MsIDB4ZmQsIDB4OGYsIDB4ZmUsIDB4YzgsIDB4ZmYsIDB4NjR9IH0sCi17IDB4MDY1MCwJMTYsCXsweGZmLCAweGIyLCAweGZmLCAweGQ5LCAweGZmLCAweGVkLCAweGZmLCAweGYzLCAweGZmLCAweGZhLCAweDEyLCAweDAxLCAweDAwLCAweDAxLCAweGZmLCAweGZmfSB9LAoteyAweDA2NjAsCTE2LAl7MHhmZiwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwNCwgMHgwMSwgMHg4OSwgMHhhYiwgMHgwMSwgMHgwMiwgMHgwMywgMHgwMSwgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMH0gfSwKLXsgMHgwNjcwLAkxNiwJezB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDcsIDB4MDV9IH0sCi17IDB4MDY4MCwJMTYsCXsweDgyLCAweDAzLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA2LCAweDk0LCAweDA2LCAweDk4fSB9LAoteyAweDA2OTAsCTE2LAl7MHgwNiwgMHhiYSwgMHgwNiwgMHhlOCwgMHgwNCwgMHgwMywgMHgwMCwgMHgwMCwgMHgyMiwgMHgwMywgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMH0gfSwKLXsgMHgwNmEwLAkxNiwJezB4NDUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDB9IH0sCi17IDB4MDZiMCwJMTYsCXsweDY0LCAweDAwLCAweDY3LCAweDAwLCAweDY1LCAweDAwLCAweDc0LCAweDAwLCAweDczLCAweDAwLCAweDJlLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwfSB9LAoteyAweDA2YzAsCTE2LAl7MHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3MywgMHgwMH0gfSwKLXsgMHgwNmQwLAkxNiwJezB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDB9IH0sCi17IDB4MDZlMCwJMTQsCXsweDY0LCAweDAwLCAweDY3LCAweDAwLCAweDY1LCAweDAwLCAweDc0LCAweDAwLCAweDA2LCAweDAzLCAweDM0LCAweDAwLCAweDM3LCAweDAwfSB9LAoteyAweGZmZmYsCTAsCXsweDAwfSB9Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaCBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgKaW5kZXggNDVmZTM2Ni4uMzlhN2MxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaAorKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oCkBAIC00MDIsMTEgKzQwMiwxOSBAQAogCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAogCiAjaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IKKy8qIENZN0M2ODMwMCA6IHN1cHBvcnQgYXRhY2IgKi8KIFVOVVNVQUxfREVWKCAgMHgwNGI0LCAweDY4MzAsIDB4MDAwMCwgMHg5OTk5LAogCQkiQ3lwcmVzcyIsCiAJCSJDeXByZXNzIEFUMkxQIiwKIAkJVVNfU0NfQ1lQX0FUQUNCLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAJCTApLAorCisvKiBDWTdDNjgzMTAgOiBzdXBwb3J0IGF0YWNiIGFuZCBhdGFjYjIgKi8KK1VOVVNVQUxfREVWKCAgMHgwNGI0LCAweDY4MzEsIDB4MDAwMCwgMHg5OTk5LAorCQkiQ3lwcmVzcyIsCisJCSJDeXByZXNzIElTRC0zMDBMUCIsCisJCVVTX1NDX0NZUF9BVEFDQiwgVVNfUFJfREVWSUNFLCBOVUxMLAorCQkwKSwKICNlbmRpZgogCiAvKiBSZXBvcnRlZCBieSBTaW1vbiBMZXZpdHQgPHNpbW9uQHdoYXR0Zi5jb20+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL0tjb25maWcgYi9kcml2ZXJzL3ZpZGVvL0tjb25maWcKaW5kZXggMDAyYjYxYi4uOWI4ODdlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9LY29uZmlnCisrKyBiL2RyaXZlcnMvdmlkZW8vS2NvbmZpZwpAQCAtNyw3ICs3LDcgQEAKIAogc291cmNlICJkcml2ZXJzL2NoYXIvYWdwL0tjb25maWciCiAKLXNvdXJjZSAiZHJpdmVycy9jaGFyL2RybS9LY29uZmlnIgorc291cmNlICJkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyIKIAogY29uZmlnIFZHQVNUQVRFCiAgICAgICAgdHJpc3RhdGUKQEAgLTE4MjUsMTIgKzE4MjUsMTMgQEAKIAogY29uZmlnIEZCX1cxMDAKIAl0cmlzdGF0ZSAiVzEwMCBmcmFtZSBidWZmZXIgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEZCICYmIFBYQV9TSEFSUFNMCisJZGVwZW5kcyBvbiBGQiAmJiBBUkNIX1BYQQogIAlzZWxlY3QgRkJfQ0ZCX0ZJTExSRUNUCiAgCXNlbGVjdCBGQl9DRkJfQ09QWUFSRUEKICAJc2VsZWN0IEZCX0NGQl9JTUFHRUJMSVQKIAktLS1oZWxwLS0tCiAJICBGcmFtZSBidWZmZXIgZHJpdmVyIGZvciB0aGUgdzEwMCBhcyBmb3VuZCBvbiB0aGUgU2hhcnAgU0wtQ3h4IHNlcmllcy4KKwkgIEl0IGNhbiBhbHNvIGRyaXZlIHRoZSB3MzIyMCBjaGlwIGZvdW5kIG9uIGlQQVEgaHg0NzAwLgogCiAJICBUaGlzIGRyaXZlciBpcyBhbHNvIGF2YWlsYWJsZSBhcyBhIG1vZHVsZSAoID0gY29kZSB3aGljaCBjYW4gYmUKIAkgIGluc2VydGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJ1bm5pbmcga2VybmVsIHdoZW5ldmVyIHlvdSB3YW50KS4gVGhlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZwppbmRleCBkY2Q4MDczLi4zMGJmN2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L0tjb25maWcKQEAgLTExMiwzICsxMTIsMTAgQEAKIAloZWxwCiAJICBJZiB5b3UgaGF2ZSBhIEludGVsIExFODA1NzggKENhcmlsbG8gUmFuY2gpIHNheSBZIHRvIGVuYWJsZSB0aGUKIAkgIGJhY2tsaWdodCBkcml2ZXIuCisKK2NvbmZpZyBCQUNLTElHSFRfUFdNCisJdHJpc3RhdGUgIkdlbmVyaWMgUFdNIGJhc2VkIEJhY2tsaWdodCBEcml2ZXIiCisJZGVwZW5kcyBvbiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFICYmIEhBVkVfUFdNCisJaGVscAorCSAgSWYgeW91IGhhdmUgYSBMQ0QgYmFja2xpZ2h0IGFkanVzdGFibGUgYnkgUFdNLCBzYXkgWSB0byBlbmFibGUKKwkgIHRoaXMgZHJpdmVyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9NYWtlZmlsZQppbmRleCAzM2Y2YzdjLi5iNTFhN2NkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9NYWtlZmlsZQpAQCAtMTAsMyArMTAsNCBAQAogb2JqLSQoQ09ORklHX0JBQ0tMSUdIVF9PTUFQMSkJKz0gb21hcDFfYmwubwogb2JqLSQoQ09ORklHX0JBQ0tMSUdIVF9QUk9HRUFSKSArPSBwcm9nZWFyX2JsLm8KIG9iai0kKENPTkZJR19CQUNLTElHSFRfQ0FSSUxMT19SQU5DSCkgKz0gY3JfYmxsY2Qubworb2JqLSQoQ09ORklHX0JBQ0tMSUdIVF9QV00pCSs9IHB3bV9ibC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3B3bV9ibC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMzhkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYwpAQCAtMCwwICsxLDE4NSBAQAorLyoKKyAqIGxpbnV4L2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3B3bV9ibC5jCisgKgorICogc2ltcGxlIFBXTSBiYXNlZCBiYWNrbGlnaHQgY29udHJvbCwgYm9hcmQgY29kZSBoYXMgdG8gc2V0dXAKKyAqIDEpIHBpbiBjb25maWd1cmF0aW9uIHNvIFBXTSB3YXZlZm9ybXMgY2FuIG91dHB1dAorICogMikgcGxhdGZvcm1fZGF0YSBjYXN0cyB0byB0aGUgUFdNIGlkICgwLzEvMi8zIG9uIFBYQSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZmIuaD4KKyNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKyNpbmNsdWRlIDxsaW51eC9wd21fYmFja2xpZ2h0Lmg+CisKK3N0cnVjdCBwd21fYmxfZGF0YSB7CisJc3RydWN0IHB3bV9kZXZpY2UJKnB3bTsKKwl1bnNpZ25lZCBpbnQJCXBlcmlvZDsKKwlpbnQJCQkoKm5vdGlmeSkoaW50IGJyaWdodG5lc3MpOworfTsKKworc3RhdGljIGludCBwd21fYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQoreworCXN0cnVjdCBwd21fYmxfZGF0YSAqcGIgPSBkZXZfZ2V0X2RydmRhdGEoJmJsLT5kZXYpOworCWludCBicmlnaHRuZXNzID0gYmwtPnByb3BzLmJyaWdodG5lc3M7CisJaW50IG1heCA9IGJsLT5wcm9wcy5tYXhfYnJpZ2h0bmVzczsKKworCWlmIChibC0+cHJvcHMucG93ZXIgIT0gRkJfQkxBTktfVU5CTEFOSykKKwkJYnJpZ2h0bmVzcyA9IDA7CisKKwlpZiAoYmwtPnByb3BzLmZiX2JsYW5rICE9IEZCX0JMQU5LX1VOQkxBTkspCisJCWJyaWdodG5lc3MgPSAwOworCisJaWYgKHBiLT5ub3RpZnkpCisJCWJyaWdodG5lc3MgPSBwYi0+bm90aWZ5KGJyaWdodG5lc3MpOworCisJaWYgKGJyaWdodG5lc3MgPT0gMCkgeworCQlwd21fY29uZmlnKHBiLT5wd20sIDAsIHBiLT5wZXJpb2QpOworCQlwd21fZGlzYWJsZShwYi0+cHdtKTsKKwl9IGVsc2UgeworCQlwd21fY29uZmlnKHBiLT5wd20sIGJyaWdodG5lc3MgKiBwYi0+cGVyaW9kIC8gbWF4LCBwYi0+cGVyaW9kKTsKKwkJcHdtX2VuYWJsZShwYi0+cHdtKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwpCit7CisJcmV0dXJuIGJsLT5wcm9wcy5icmlnaHRuZXNzOworfQorCitzdGF0aWMgc3RydWN0IGJhY2tsaWdodF9vcHMgcHdtX2JhY2tsaWdodF9vcHMgPSB7CisJLnVwZGF0ZV9zdGF0dXMJPSBwd21fYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMsCisJLmdldF9icmlnaHRuZXNzCT0gcHdtX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcywKK307CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgKmRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmw7CisJc3RydWN0IHB3bV9ibF9kYXRhICpwYjsKKwlpbnQgcmV0OworCisJaWYgKCFkYXRhKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChkYXRhLT5pbml0KSB7CisJCXJldCA9IGRhdGEtPmluaXQoJnBkZXYtPmRldik7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlwYiA9IGt6YWxsb2Moc2l6ZW9mKCpwYiksIEdGUF9LRVJORUwpOworCWlmICghcGIpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfYWxsb2M7CisJfQorCisJcGItPnBlcmlvZCA9IGRhdGEtPnB3bV9wZXJpb2RfbnM7CisJcGItPm5vdGlmeSA9IGRhdGEtPm5vdGlmeTsKKworCXBiLT5wd20gPSBwd21fcmVxdWVzdChkYXRhLT5wd21faWQsICJiYWNrbGlnaHQiKTsKKwlpZiAoSVNfRVJSKHBiLT5wd20pKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgInVuYWJsZSB0byByZXF1ZXN0IFBXTSBmb3IgYmFja2xpZ2h0XG4iKTsKKwkJcmV0ID0gUFRSX0VSUihwYi0+cHdtKTsKKwkJZ290byBlcnJfcHdtOworCX0KKworCWJsID0gYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihwZGV2LT5uYW1lLCAmcGRldi0+ZGV2LAorCQkJcGIsICZwd21fYmFja2xpZ2h0X29wcyk7CisJaWYgKElTX0VSUihibCkpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGJhY2tsaWdodFxuIik7CisJCXJldCA9IFBUUl9FUlIoYmwpOworCQlnb3RvIGVycl9ibDsKKwl9CisKKwlibC0+cHJvcHMubWF4X2JyaWdodG5lc3MgPSBkYXRhLT5tYXhfYnJpZ2h0bmVzczsKKwlibC0+cHJvcHMuYnJpZ2h0bmVzcyA9IGRhdGEtPmRmdF9icmlnaHRuZXNzOworCWJhY2tsaWdodF91cGRhdGVfc3RhdHVzKGJsKTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGJsKTsKKwlyZXR1cm4gMDsKKworZXJyX2JsOgorCXB3bV9mcmVlKHBiLT5wd20pOworZXJyX3B3bToKKwlrZnJlZShwYik7CitlcnJfYWxsb2M6CisJaWYgKGRhdGEtPmV4aXQpCisJCWRhdGEtPmV4aXQoJnBkZXYtPmRldik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwd21fYmFja2xpZ2h0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgKmRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiID0gZGV2X2dldF9kcnZkYXRhKCZibC0+ZGV2KTsKKworCWJhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihibCk7CisJcHdtX2NvbmZpZyhwYi0+cHdtLCAwLCBwYi0+cGVyaW9kKTsKKwlwd21fZGlzYWJsZShwYi0+cHdtKTsKKwlwd21fZnJlZShwYi0+cHdtKTsKKwlrZnJlZShwYik7CisJaWYgKGRhdGEtPmV4aXQpCisJCWRhdGEtPmV4aXQoJnBkZXYtPmRldik7CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkJIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiID0gZGV2X2dldF9kcnZkYXRhKCZibC0+ZGV2KTsKKworCXB3bV9jb25maWcocGItPnB3bSwgMCwgcGItPnBlcmlvZCk7CisJcHdtX2Rpc2FibGUocGItPnB3bSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWJhY2tsaWdodF91cGRhdGVfc3RhdHVzKGJsKTsKKwlyZXR1cm4gMDsKK30KKyNlbHNlCisjZGVmaW5lIHB3bV9iYWNrbGlnaHRfc3VzcGVuZAlOVUxMCisjZGVmaW5lIHB3bV9iYWNrbGlnaHRfcmVzdW1lCU5VTEwKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBwd21fYmFja2xpZ2h0X2RyaXZlciA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAicHdtLWJhY2tsaWdodCIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0sCisJLnByb2JlCQk9IHB3bV9iYWNrbGlnaHRfcHJvYmUsCisJLnJlbW92ZQkJPSBwd21fYmFja2xpZ2h0X3JlbW92ZSwKKwkuc3VzcGVuZAk9IHB3bV9iYWNrbGlnaHRfc3VzcGVuZCwKKwkucmVzdW1lCQk9IHB3bV9iYWNrbGlnaHRfcmVzdW1lLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcHdtX2JhY2tsaWdodF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcHdtX2JhY2tsaWdodF9kcml2ZXIpOworfQorbW9kdWxlX2luaXQocHdtX2JhY2tsaWdodF9pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IHB3bV9iYWNrbGlnaHRfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZwd21fYmFja2xpZ2h0X2RyaXZlcik7Cit9Cittb2R1bGVfZXhpdChwd21fYmFja2xpZ2h0X2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlBXTSBiYXNlZCBCYWNrbGlnaHQgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2NpcnJ1c2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL2NpcnJ1c2ZiLmMKaW5kZXggMzVhYzlkOS4uYzE0YjI0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9jaXJydXNmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vY2lycnVzZmIuYwpAQCAtMjQzMiw5ICsyNDMyLDkgQEAKIAlpbmZvLT5zY3JlZW5fc2l6ZSA9IGJvYXJkX3NpemU7CiAJY2luZm8tPnVubWFwID0gY2lycnVzZmJfcGNpX3VubWFwOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiIFJBTSAoJWx1IGtCKSBhdCAweHglbHgsICIsCi0JCWluZm8tPnNjcmVlbl9zaXplID4+IDEwLCBib2FyZF9hZGRyKTsKLQlwcmludGsoS0VSTl9JTkZPICJDaXJydXMgTG9naWMgY2hpcHNldCBvbiBQQ0kgYnVzXG4iKTsKKwlwcmludGsoS0VSTl9JTkZPICJSQU0gKCVsdSBrQikgYXQgMHglbHgsIENpcnJ1cyAiCisJCQkiTG9naWMgY2hpcHNldCBvbiBQQ0kgYnVzXG4iLAorCQkJaW5mby0+c2NyZWVuX3NpemUgPj4gMTAsIGJvYXJkX2FkZHIpOwogCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBpbmZvKTsKIAogCXJldCA9IGNpcnJ1c2ZiX3JlZ2lzdGVyKGluZm8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYl9kZWZpby5jIGIvZHJpdmVycy92aWRlby9mYl9kZWZpby5jCmluZGV4IDI0ODQzZmQuLjU5ZGYxMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJfZGVmaW8uYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiX2RlZmlvLmMKQEAgLTc0LDYgKzc0LDcgQEAKIHsKIAlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBmYl9kZWZlcnJlZF9pbyAqZmJkZWZpbyA9IGluZm8tPmZiZGVmaW87CisJc3RydWN0IHBhZ2UgKmN1cjsKIAogCS8qIHRoaXMgaXMgYSBjYWxsYmFjayB3ZSBnZXQgd2hlbiB1c2Vyc3BhY2UgZmlyc3QgdHJpZXMgdG8KIAl3cml0ZSB0byB0aGUgcGFnZS4gd2Ugc2NoZWR1bGUgYSB3b3JrcXVldWUuIHRoYXQgd29ya3F1ZXVlCkBAIC04Myw3ICs4NCwyNCBAQAogCiAJLyogcHJvdGVjdCBhZ2FpbnN0IHRoZSB3b3JrcXVldWUgY2hhbmdpbmcgdGhlIHBhZ2UgbGlzdCAqLwogCW11dGV4X2xvY2soJmZiZGVmaW8tPmxvY2spOwotCWxpc3RfYWRkKCZwYWdlLT5scnUsICZmYmRlZmlvLT5wYWdlbGlzdCk7CisKKwkvKiB3ZSBsb29wIHRocm91Z2ggdGhlIHBhZ2VsaXN0IGJlZm9yZSBhZGRpbmcgaW4gb3JkZXIKKwl0byBrZWVwIHRoZSBwYWdlbGlzdCBzb3J0ZWQgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1ciwgJmZiZGVmaW8tPnBhZ2VsaXN0LCBscnUpIHsKKwkJLyogdGhpcyBjaGVjayBpcyB0byBjYXRjaCB0aGUgY2FzZSB3aGVyZSBhIG5ldworCQlwcm9jZXNzIGNvdWxkIHN0YXJ0IHdyaXRpbmcgdG8gdGhlIHNhbWUgcGFnZQorCQl0aHJvdWdoIGEgbmV3IHB0ZS4gdGhpcyBuZXcgYWNjZXNzIGNhbiBjYXVzZSB0aGUKKwkJbWt3cml0ZSBldmVuIHdoZW4gdGhlIG9yaWdpbmFsIHBzJ3MgcHRlIGlzIG1hcmtlZAorCQl3cml0YWJsZSAqLworCQlpZiAodW5saWtlbHkoY3VyID09IHBhZ2UpKQorCQkJZ290byBwYWdlX2FscmVhZHlfYWRkZWQ7CisJCWVsc2UgaWYgKGN1ci0+aW5kZXggPiBwYWdlLT5pbmRleCkKKwkJCWJyZWFrOworCX0KKworCWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJmN1ci0+bHJ1KTsKKworcGFnZV9hbHJlYWR5X2FkZGVkOgogCW11dGV4X3VubG9jaygmZmJkZWZpby0+bG9jayk7CiAKIAkvKiBjb21lIGJhY2sgYWZ0ZXIgZGVsYXkgdG8gcHJvY2VzcyB0aGUgZGVmZXJyZWQgSU8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJtZW0uYyBiL2RyaXZlcnMvdmlkZW8vZmJtZW0uYwppbmRleCA3NzZmN2ZjLi4zM2ViZGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMKKysrIGIvZHJpdmVycy92aWRlby9mYm1lbS5jCkBAIC0xMzI2LDIwICsxMzI2LDI3IEBACiAKIAlpZiAoZmJpZHggPj0gRkJfTUFYKQogCQlyZXR1cm4gLUVOT0RFVjsKKwlsb2NrX2tlcm5lbCgpOwogI2lmZGVmIENPTkZJR19LTU9ECiAJaWYgKCEoaW5mbyA9IHJlZ2lzdGVyZWRfZmJbZmJpZHhdKSkKIAkJdHJ5X3RvX2xvYWQoZmJpZHgpOwogI2VuZGlmIC8qIENPTkZJR19LTU9EICovCi0JaWYgKCEoaW5mbyA9IHJlZ2lzdGVyZWRfZmJbZmJpZHhdKSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JaWYgKCF0cnlfbW9kdWxlX2dldChpbmZvLT5mYm9wcy0+b3duZXIpKQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIShpbmZvID0gcmVnaXN0ZXJlZF9mYltmYmlkeF0pKSB7CisJCXJlcyA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KKwlpZiAoIXRyeV9tb2R1bGVfZ2V0KGluZm8tPmZib3BzLT5vd25lcikpIHsKKwkJcmVzID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGluZm87CiAJaWYgKGluZm8tPmZib3BzLT5mYl9vcGVuKSB7CiAJCXJlcyA9IGluZm8tPmZib3BzLT5mYl9vcGVuKGluZm8sMSk7CiAJCWlmIChyZXMpCiAJCQltb2R1bGVfcHV0KGluZm8tPmZib3BzLT5vd25lcik7CiAJfQorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZzbC1kaXUtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1mYi5jCmluZGV4IGI1MGJiMDMuLjA5ZDdlMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1mYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1mYi5jCkBAIC0yODYsNyArMjg2LDcgQEAKICAqCXJoZWFwIGFuZCBtYWtlIHRoZSBmdXJ0dXJlIGxhcmdlIGFsbG9jYXRpb24gZmFpbC4KICAqLwogCi12b2lkICpmc2xfZGl1X2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGh5c19hZGRyX3QgKnBoeXMpCitzdGF0aWMgdm9pZCAqZnNsX2RpdV9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHBoeXNfYWRkcl90ICpwaHlzKQogewogCXZvaWQgKnZpcnQ7CiAKQEAgLTMxMSwxMiArMzExLDEyIEBACiAJCW1lbXNldCh2aXJ0LCAwLCBzaXplKTsKIAl9CiAKLQlwcl9kZWJ1ZygicmggdmlydD0lcCBwaHlzPSVseFxuIiwgdmlydCwgKnBoeXMpOworCXByX2RlYnVnKCJyaCB2aXJ0PSVwIHBoeXM9JWxseFxuIiwgdmlydCwgKHVuc2lnbmVkIGxvbmcgbG9uZykqcGh5cyk7CiAKIAlyZXR1cm4gdmlydDsKIH0KIAotdm9pZCBmc2xfZGl1X2ZyZWUodm9pZCAqcCwgdW5zaWduZWQgbG9uZyBzaXplKQorc3RhdGljIHZvaWQgZnNsX2RpdV9mcmVlKHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlwcl9kZWJ1ZygicD0lcCBzaXplPSVsdVxuIiwgcCwgc2l6ZSk7CiAKQEAgLTc3MCw3ICs3NzAsNyBAQAogCWluZm8tPmZpeC5zbWVtX2xlbiA9IGluZm8tPmZpeC5saW5lX2xlbmd0aCAqIGluZm8tPnZhci55cmVzX3ZpcnR1YWw7CiAJcHJfZGVidWcoIk1BUF9WSURFT19NRU1PUlk6IHNtZW1fbGVuID0gJWRcbiIsIGluZm8tPmZpeC5zbWVtX2xlbik7CiAJaW5mby0+c2NyZWVuX2Jhc2UgPSBmc2xfZGl1X2FsbG9jKGluZm8tPmZpeC5zbWVtX2xlbiwgJnBoeXMpOwotCWlmIChpbmZvLT5zY3JlZW5fYmFzZSA9PSAwKSB7CisJaWYgKGluZm8tPnNjcmVlbl9iYXNlID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gYWxsb2NhdGUgZmIgbWVtb3J5XG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQpAQCAtNzg4LDcgKzc4OCw3IEBACiBzdGF0aWMgdm9pZCB1bm1hcF92aWRlb19tZW1vcnkoc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJZnNsX2RpdV9mcmVlKGluZm8tPnNjcmVlbl9iYXNlLCBpbmZvLT5maXguc21lbV9sZW4pOwotCWluZm8tPnNjcmVlbl9iYXNlID0gMDsKKwlpbmZvLT5zY3JlZW5fYmFzZSA9IE5VTEw7CiAJaW5mby0+Zml4LnNtZW1fc3RhcnQgPSAwOwogCWluZm8tPmZpeC5zbWVtX2xlbiA9IDA7CiB9CkBAIC0xMTU4LDcgKzExNTgsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGluc3RhbGxfZmIoc3RydWN0IGZiX2luZm8gKmluZm8pCitzdGF0aWMgaW50IF9fZGV2aW5pdCBpbnN0YWxsX2ZiKHN0cnVjdCBmYl9pbmZvICppbmZvKQogewogCWludCByYzsKIAlzdHJ1Y3QgbWZiX2luZm8gKm1mYmkgPSBpbmZvLT5wYXI7CkBAIC0xMjMzLDcgKzEyMzMsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2V4aXQgdW5pbnN0YWxsX2ZiKHN0cnVjdCBmYl9pbmZvICppbmZvKQorc3RhdGljIHZvaWQgdW5pbnN0YWxsX2ZiKHN0cnVjdCBmYl9pbmZvICppbmZvKQogewogCXN0cnVjdCBtZmJfaW5mbyAqbWZiaSA9IGluZm8tPnBhcjsKIApAQCAtMTI4Nyw3ICsxMjg3LDcgQEAKIAkvKiBSZWFkIHRvIGNsZWFyIHRoZSBzdGF0dXMgKi8KIAlzdGF0dXMgPSBpbl9iZTMyKCZody0+aW50X3N0YXR1cyk7CiAKLQlyZXQgPSByZXF1ZXN0X2lycShpcnEsIGZzbF9kaXVfaXNyLCAwLCAiZGl1IiwgMCk7CisJcmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBmc2xfZGl1X2lzciwgMCwgImRpdSIsIE5VTEwpOwogCWlmIChyZXQpCiAJCXByX2luZm8oIlJlcXVlc3QgZGl1IElSUSBmYWlsZWQuXG4iKTsKIAllbHNlIHsKQEAgLTEzMTIsNyArMTMxMiw3IEBACiAJLyogRGlzYWJsZSBhbGwgTENEQyBpbnRlcnJ1cHQgKi8KIAlvdXRfYmUzMigmaHctPmludF9tYXNrLCAweDFmKTsKIAotCWZyZWVfaXJxKGlycSwgMCk7CisJZnJlZV9pcnEoaXJxLCBOVUxMKTsKIH0KIAogI2lmZGVmIENPTkZJR19QTQpAQCAtMTMyMCw3ICsxMzIwLDcgQEAKICAqIFBvd2VyIG1hbmFnZW1lbnQgaG9va3MuIE5vdGUgdGhhdCB3ZSB3b24ndCBiZSBjYWxsZWQgZnJvbSBJUlEgY29udGV4dCwKICAqIHVubGlrZSB0aGUgYmxhbmsgZnVuY3Rpb25zIGFib3ZlLCBzbyB3ZSBtYXkgc2xlZXAuCiAgKi8KLXN0YXRpYyBpbnQgZnNsX2RpdV9zdXNwZW5kKHN0cnVjdCBvZl9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQorc3RhdGljIGludCBmc2xfZGl1X3N1c3BlbmQoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAlzdHJ1Y3QgZnNsX2RpdV9kYXRhICptYWNoaW5lX2RhdGE7CiAKQEAgLTEzMzAsNyArMTMzMCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZnNsX2RpdV9yZXN1bWUoc3RydWN0IG9mX2RldmljZSAqZGV2KQorc3RhdGljIGludCBmc2xfZGl1X3Jlc3VtZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldikKIHsKIAlzdHJ1Y3QgZnNsX2RpdV9kYXRhICptYWNoaW5lX2RhdGE7CiAKQEAgLTEzNTMsNyArMTM1Myw4IEBACiAJZG1hX2FkZHJfdCBwYWRkciA9IDA7CiAKIAlzc2l6ZSA9IHNpemUgKyBieXRlc19hbGlnbjsKLQlidWYtPnZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KDAsIHNzaXplLCAmcGFkZHIsIEdGUF9ETUEgfCBfX0dGUF9aRVJPKTsKKwlidWYtPnZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KE5VTEwsIHNzaXplLCAmcGFkZHIsIEdGUF9ETUEgfAorCQkJCQkJCSAgICAgX19HRlBfWkVSTyk7CiAJaWYgKCFidWYtPnZhZGRyKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMTM3MSw3ICsxMzcyLDcgQEAKIAogc3RhdGljIHZvaWQgZnJlZV9idWYoc3RydWN0IGRpdV9hZGRyICpidWYsIHUzMiBzaXplLCB1MzIgYnl0ZXNfYWxpZ24pCiB7Ci0JZG1hX2ZyZWVfY29oZXJlbnQoMCwgc2l6ZSArIGJ5dGVzX2FsaWduLAorCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIHNpemUgKyBieXRlc19hbGlnbiwKIAkJCQlidWYtPnZhZGRyLCAoYnVmLT5wYWRkciAtIGJ1Zi0+b2Zmc2V0KSk7CiAJcmV0dXJuOwogfQpAQCAtMTQxMSw3ICsxNDEyLDcgQEAKIAlyZXR1cm4gZGl1X29wcy5zaG93X21vbml0b3JfcG9ydChtYWNoaW5lX2RhdGEtPm1vbml0b3JfcG9ydCwgYnVmKTsKIH0KIAotc3RhdGljIGludCBmc2xfZGl1X3Byb2JlKHN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2LAorc3RhdGljIGludCBfX2RldmluaXQgZnNsX2RpdV9wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldiwKIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaCkKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gb2ZkZXYtPm5vZGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2hnYWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2hnYWZiLmMKaW5kZXggZmI5ZTY3Mi4uYzE4ODgwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9oZ2FmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vaGdhZmIuYwpAQCAtMjc5LDcgKzI3OSw3IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGhnYV9jYXJkX2RldGVjdCh2b2lkKQogewotCWludCBjb3VudD0wOworCWludCBjb3VudCA9IDA7CiAJdm9pZCBfX2lvbWVtICpwLCAqcTsKIAl1bnNpZ25lZCBzaG9ydCBwX3NhdmUsIHFfc2F2ZTsKIApAQCAtMzAzLDIwICszMDMsMTggQEAKIAl3cml0ZXcoMHg1NWFhLCBwKTsgaWYgKHJlYWR3KHApID09IDB4NTVhYSkgY291bnQrKzsKIAl3cml0ZXcocF9zYXZlLCBwKTsKIAotCWlmIChjb3VudCAhPSAyKSB7Ci0JCXJldHVybiAwOwotCX0KKwlpZiAoY291bnQgIT0gMikKKwkJZ290byBlcnJvcjsKIAogCS8qIE9rLCB0aGVyZSBpcyBkZWZpbml0ZWx5IGEgY2FyZCByZWdpc3RlcmluZyBhdCB0aGUgY29ycmVjdAogCSAqIG1lbW9yeSBsb2NhdGlvbiwgc28gbm93IHdlIGRvIGFuIEkvTyBwb3J0IHRlc3QuCiAJICovCiAJCi0JaWYgKCF0ZXN0X2hnYV9iKDB4NjYsIDB4MGYpKSB7CSAgICAvKiBjdXJzb3IgbG93IHJlZ2lzdGVyICovCi0JCXJldHVybiAwOwotCX0KLQlpZiAoIXRlc3RfaGdhX2IoMHg5OSwgMHgwZikpIHsgICAgIC8qIGN1cnNvciBsb3cgcmVnaXN0ZXIgKi8KLQkJcmV0dXJuIDA7Ci0JfQorCWlmICghdGVzdF9oZ2FfYigweDY2LCAweDBmKSkJICAgIC8qIGN1cnNvciBsb3cgcmVnaXN0ZXIgKi8KKwkJZ290byBlcnJvcjsKKworCWlmICghdGVzdF9oZ2FfYigweDk5LCAweDBmKSkgICAgIC8qIGN1cnNvciBsb3cgcmVnaXN0ZXIgKi8KKwkJZ290byBlcnJvcjsKIAogCS8qIFNlZSBpZiB0aGUgY2FyZCBpcyBhIEhlcmN1bGVzLCBieSBjaGVja2luZyB3aGV0aGVyIHRoZSB2c3luYwogCSAqIGJpdCBvZiB0aGUgc3RhdHVzIHJlZ2lzdGVyIGlzIGNoYW5naW5nLiAgVGhpcyB0ZXN0IGxhc3RzIGZvcgpAQCAtMzMxLDcgKzMyOSw3IEBACiAJfQogCiAJaWYgKHBfc2F2ZSA9PSBxX3NhdmUpIAotCQlyZXR1cm4gMDsKKwkJZ290byBlcnJvcjsKIAogCXN3aXRjaCAoaW5iX3AoSEdBX1NUQVRVU19QT1JUKSAmIDB4NzApIHsKIAkJY2FzZSAweDEwOgpAQCAtMzQ4LDYgKzM0NiwxMiBAQAogCQkJYnJlYWs7CiAJfQogCXJldHVybiAxOworZXJyb3I6CisJaWYgKHJlbGVhc2VfaW9fcG9ydHMpCisJCXJlbGVhc2VfcmVnaW9uKDB4M2IwLCAxMik7CisJaWYgKHJlbGVhc2VfaW9fcG9ydCkKKwkJcmVsZWFzZV9yZWdpb24oMHgzYmYsIDEpOworCXJldHVybiAwOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vbGVvLmMgYi9kcml2ZXJzL3ZpZGVvL2xlby5jCmluZGV4IDhiYzQ2ZTkuLjEzZmVhNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vbGVvLmMKKysrIGIvZHJpdmVycy92aWRlby9sZW8uYwpAQCAtMTcsOCArMTcsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCi0jaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2ZiaW8uaD4KIAogI2luY2x1ZGUgInNidXNsaWIuaCIKQEAgLTMzLDcgKzMzLDYgQEAKIAogc3RhdGljIGludCBsZW9fbW1hcChzdHJ1Y3QgZmJfaW5mbyAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7CiBzdGF0aWMgaW50IGxlb19pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwotc3RhdGljIGludCBsZW9fcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICosIHN0cnVjdCBmYl9pbmZvICopOwogCiAvKgogICogIEZyYW1lIGJ1ZmZlciBvcGVyYXRpb25zCkBAIC00Myw3ICs0Miw2IEBACiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVnCQk9IGxlb19zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCQk9IGxlb19ibGFuaywKLQkuZmJfcGFuX2Rpc3BsYXkJCT0gbGVvX3Bhbl9kaXNwbGF5LAogCS5mYl9maWxscmVjdAkJPSBjZmJfZmlsbHJlY3QsCiAJLmZiX2NvcHlhcmVhCQk9IGNmYl9jb3B5YXJlYSwKIAkuZmJfaW1hZ2VibGl0CQk9IGNmYl9pbWFnZWJsaXQsCkBAIC03OCw3ICs3Niw3IEBACiAjZGVmaW5lIExFT19DVVJfVFlQRV9DTUFQCTB4MDAwMDAwNTAKIAogc3RydWN0IGxlb19jdXJzb3IgewotCXU4CQl4eHgwWzE2XTsKKwl1OAl4eHgwWzE2XTsKIAl1MzIJY3VyX3R5cGU7CiAJdTMyCWN1cl9taXNjOwogCXUzMgljdXJfY3Vyc3h5OwpAQCAtMTA1LDcgKzEwMyw3IEBACiAKIHN0cnVjdCBsZW9fbGNfc3MwX2tybiB7CiAJdTMyIAltaXNjOwotCXU4CQl4eHgwWzB4ODAwLTRdOworCXU4CXh4eDBbMHg4MDAtNF07CiAJdTMyCXJldjsKIH07CiAKQEAgLTExNiw3ICsxMTQsNyBAQAogCXUzMglmb250dDsKIAl1MzIJZXh0ZW50OwogCXUzMglzcmM7Ci0JdTMyCQlkc3Q7CisJdTMyCWRzdDsKIAl1MzIJY29weTsKIAl1MzIJZmlsbDsKIH07CkBAIC0xMjksOCArMTI3LDggQEAKIAl1OAl1bmtub3duOwogfTsKIAotc3RydWN0IGxlb19sZCB7Ci0JdTgJCXh4eDBbMHhlMDBdOworc3RydWN0IGxlb19sZF9zczAgeworCXU4CXh4eDBbMHhlMDBdOwogCXUzMgljc3I7CiAJdTMyCXdpZDsKIAl1MzIJd21hc2s7CkBAIC0xNDQsMTMgKzE0MiwxMyBAQAogCXUzMglzcmM7CQkvKiBDb3B5L1Njcm9sbCAoU1MwIG9ubHkpICovCiAJdTMyCWRzdDsJCS8qIENvcHkvU2Nyb2xsL0ZpbGwgKFNTMCBvbmx5KSAqLwogCXUzMglleHRlbnQ7CQkvKiBDb3B5L1Njcm9sbC9GaWxsIHNpemUgKFNTMCBvbmx5KSAqLwotCXUzMgkJeHh4MVszXTsKKwl1MzIJeHh4MVszXTsKIAl1MzIJc2V0c2VtOwkJLyogU1MxIG9ubHkgKi8KIAl1MzIJY2xyc2VtOwkJLyogU1MxIG9ubHkgKi8KIAl1MzIJY2xycGljazsJLyogU1MxIG9ubHkgKi8KIAl1MzIJY2xyZGF0OwkJLyogU1MxIG9ubHkgKi8KIAl1MzIJYWxwaGE7CQkvKiBTUzEgb25seSAqLwotCXU4CQl4eHgyWzB4MmNdOworCXU4CXh4eDJbMHgyY107CiAJdTMyCXdpbmJnOwogCXUzMglwbGFuZW1hc2s7CiAJdTMyCXJvcDsKQEAgLTE5OSwxMSArMTk3LDEyIEBACiBzdGF0aWMgdm9pZCBsZW9fd2FpdChzdHJ1Y3QgbGVvX2x4X2tybiBfX2lvbWVtICpseF9rcm4pCiB7CiAJaW50IGk7Ci0JCisKIAlmb3IgKGkgPSAwOwotCSAgICAgKHNidXNfcmVhZGwoJmx4X2tybi0+a3JuX2NzcikgJiBMRU9fS1JOX0NTUl9QUk9HUkVTUykgJiYgaSA8IDMwMDAwMDsKKwkgICAgIChzYnVzX3JlYWRsKCZseF9rcm4tPmtybl9jc3IpICYgTEVPX0tSTl9DU1JfUFJPR1JFU1MpICYmCisJICAgICBpIDwgMzAwMDAwOwogCSAgICAgaSsrKQotCQl1ZGVsYXkgKDEpOyAvKiBCdXN5IHdhaXQgYXQgbW9zdCAwLjMgc2VjICovCisJCXVkZWxheSgxKTsgLyogQnVzeSB3YWl0IGF0IG1vc3QgMC4zIHNlYyAqLwogCXJldHVybjsKIH0KIApAQCAtMjIxLDcgKzIyMCw3IEBACiAJCQkgdW5zaWduZWQgdHJhbnNwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgbGVvX3BhciAqcGFyID0gKHN0cnVjdCBsZW9fcGFyICopIGluZm8tPnBhcjsKLSAgICAgICAgc3RydWN0IGxlb19seF9rcm4gX19pb21lbSAqbHhfa3JuID0gcGFyLT5seF9rcm47CisJc3RydWN0IGxlb19seF9rcm4gX19pb21lbSAqbHhfa3JuID0gcGFyLT5seF9rcm47CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgdmFsOwogCWludCBpOwpAQCAtNDA4LDcgKzQwNyw3IEBACiAJbGVvX3dhaXQobHhfa3JuKTsKIAogCWZvciAoaSA9IDAsIHdpID0gd2wtPndsX2xpc3Q7IGkgPCB3bC0+d2xfY291bnQ7IGkrKywgd2krKykgewotCQlzd2l0Y2god2ktPndpX3R5cGUpIHsKKwkJc3dpdGNoICh3aS0+d2lfdHlwZSkgewogCQljYXNlIEZCX1dJRF9EQkxfODoKIAkJCWogPSAod2ktPndpX2luZGV4ICYgMHhmKSArIDB4NDA7CiAJCQlicmVhazsKQEAgLTQ1MywxMyArNDUyLDEyIEBACiAJd2kud2lfaW5kZXggPSAxOwogCXdpLndpX3ZhbHVlcyBbMF0gPSAweDMwOwogCWxlb193aWRfcHV0KGluZm8sICZ3bCk7Ci0KIH0KIAogc3RhdGljIHZvaWQgbGVvX3N3aXRjaF9mcm9tX2dyYXBoKHN0cnVjdCBmYl9pbmZvICppbmZvKQogewogCXN0cnVjdCBsZW9fcGFyICpwYXIgPSAoc3RydWN0IGxlb19wYXIgKikgaW5mby0+cGFyOwotCXN0cnVjdCBsZW9fbGQgX19pb21lbSAqc3MgPSAoc3RydWN0IGxlb19sZCBfX2lvbWVtICopIHBhci0+bGRfc3MwOworCXN0cnVjdCBsZW9fbGRfc3MwIF9faW9tZW0gKnNzID0gcGFyLT5sZF9zczA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgdmFsOwogCkBAIC00ODUsMjEgKzQ4MywxNSBAQAogCQl2YWwgPSBzYnVzX3JlYWRsKCZwYXItPmxjX3NzMF91c3ItPmNzcik7CiAJfSB3aGlsZSAodmFsICYgMHgyMDAwMDAwMCk7CiAKKwkvKiBzZXR1cCBzY3JlZW4gYnVmZmVyIGZvciBjZmJfKiBmdW5jdGlvbnMgKi8KKwlzYnVzX3dyaXRlbCgxLCAmc3MtPndpZCk7CisJc2J1c193cml0ZWwoMHgwMGZmZmZmZiwgJnNzLT5wbGFuZW1hc2spOworCXNidXNfd3JpdGVsKDB4MzEwYjkwLCAmc3MtPnJvcCk7CisJc2J1c193cml0ZWwoMCwgJnBhci0+bGNfc3MwX3Vzci0+YWRkcnNwYWNlKTsKKwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBhci0+bG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgaW50IGxlb19wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwgc3RydWN0IGZiX2luZm8gKmluZm8pCi17Ci0JLyogV2UganVzdCB1c2UgdGhpcyB0byBjYXRjaCBzd2l0Y2hlcyBvdXQgb2YKLQkgKiBncmFwaGljcyBtb2RlLgotCSAqLwotCWxlb19zd2l0Y2hfZnJvbV9ncmFwaChpbmZvKTsKLQotCWlmICh2YXItPnhvZmZzZXQgfHwgdmFyLT55b2Zmc2V0IHx8IHZhci0+dm1vZGUpCi0JCXJldHVybiAtRUlOVkFMOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBsZW9faW5pdF9odyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgbGVvX3BhciAqcGFyID0gKHN0cnVjdCBsZW9fcGFyICopIGluZm8tPnBhcjsKQEAgLTU0Miw3ICs1MzQsOCBAQAogCQlvZl9pb3VubWFwKCZvcC0+cmVzb3VyY2VbMF0sIGluZm8tPnNjcmVlbl9iYXNlLCAweDgwMDAwMCk7CiB9CiAKLXN0YXRpYyBpbnQgX19kZXZpbml0IGxlb19wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvcCwgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBsZW9fcHJvYmUoc3RydWN0IG9mX2RldmljZSAqb3AsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpkcCA9IG9wLT5ub2RlOwogCXN0cnVjdCBmYl9pbmZvICppbmZvOwpAQCAtNTk0LDggKzU4Nyw5IEBACiAJICAgICFpbmZvLT5zY3JlZW5fYmFzZSkKIAkJZ290byBvdXRfdW5tYXBfcmVnczsKIAotCWluZm8tPmZsYWdzID0gRkJJTkZPX0RFRkFVTFQgfCBGQklORk9fSFdBQ0NFTF9ZUEFOOworCWluZm8tPmZsYWdzID0gRkJJTkZPX0RFRkFVTFQ7CiAJaW5mby0+ZmJvcHMgPSAmbGVvX29wczsKKwlpbmZvLT5wc2V1ZG9fcGFsZXR0ZSA9IHBhci0+Y2x1dF9kYXRhOwogCiAJbGVvX2luaXRfd2lkcyhpbmZvKTsKIAlsZW9faW5pdF9odyhpbmZvKTsKQEAgLTY0OSw3ICs2NDMsNyBAQAogCiBzdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCBsZW9fbWF0Y2hbXSA9IHsKIAl7Ci0JCS5uYW1lID0gImxlbyIsCisJCS5uYW1lID0gIlNVTlcsbGVvIiwKIAl9LAogCXt9LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vcHhhZmIuYyBiL2RyaXZlcnMvdmlkZW8vcHhhZmIuYwppbmRleCAyNzRiYzkzLi5kMDc0NjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3B4YWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9weGFmYi5jCkBAIC01NzMsOCArNTczLDggQEAKIAkJZG1hX2Rlc2MtPmZkYWRyID0gZmJpLT5kbWFfYnVmZl9waHlzICsgZG1hX2Rlc2Nfb2ZmOwogCQlmYmktPmZkYWRyW2RtYV0gPSBmYmktPmRtYV9idWZmX3BoeXMgKyBkbWFfZGVzY19vZmY7CiAJfSBlbHNlIHsKLQkJcGFsX2Rlc2MgPSAmZmJpLT5kbWFfYnVmZi0+cGFsX2Rlc2NbZG1hXTsKLQkJcGFsX2Rlc2Nfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IHB4YWZiX2RtYV9idWZmLCBkbWFfZGVzY1twYWxdKTsKKwkJcGFsX2Rlc2MgPSAmZmJpLT5kbWFfYnVmZi0+cGFsX2Rlc2NbcGFsXTsKKwkJcGFsX2Rlc2Nfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IHB4YWZiX2RtYV9idWZmLCBwYWxfZGVzY1twYWxdKTsKIAogCQlwYWxfZGVzYy0+ZnNhZHIgPSBmYmktPmRtYV9idWZmX3BoeXMgKyBwYWwgKiBQQUxFVFRFX1NJWkU7CiAJCXBhbF9kZXNjLT5maWRyICA9IDA7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQAogICogICAgICBjYWNoZS4gIE9uY2UgdGhpcyBhcmVhIGlzIHJlbWFwcGVkLCBhbGwgdmlydHVhbCBtZW1vcnkKICAqICAgICAgYWNjZXNzIHRvIHRoZSB2aWRlbyBtZW1vcnkgc2hvdWxkIG9jY3VyIGF0IHRoZSBuZXcgcmVnaW9uLgogICovCi1zdGF0aWMgaW50IF9faW5pdCBweGFmYl9tYXBfdmlkZW9fbWVtb3J5KHN0cnVjdCBweGFmYl9pbmZvICpmYmkpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBweGFmYl9tYXBfdmlkZW9fbWVtb3J5KHN0cnVjdCBweGFmYl9pbmZvICpmYmkpCiB7CiAJLyoKIAkgKiBXZSByZXNlcnZlIG9uZSBwYWdlIGZvciB0aGUgcGFsZXR0ZSwgcGx1cyB0aGUgc2l6ZQpAQCAtMTI3Niw2ICsxMjc2LDggQEAKIAkJZmJpLT5kbWFfYnVmZl9waHlzID0gZmJpLT5tYXBfZG1hOwogCQlmYmktPnBhbGV0dGVfY3B1ID0gKHUxNiAqKSBmYmktPmRtYV9idWZmLT5wYWxldHRlOwogCisJICAgICAgICBwcl9kZWJ1ZygicHhhZmI6IHBhbGV0dGVfbWVtX3NpemUgPSAweCUwOGx4XG4iLCBmYmktPnBhbGV0dGVfc2l6ZSpzaXplb2YodTE2KSk7CisKICNpZmRlZiBDT05GSUdfRkJfUFhBX1NNQVJUUEFORUwKIAkJZmJpLT5zbWFydF9jbWRzID0gKHVpbnQxNl90ICopIGZiaS0+ZG1hX2J1ZmYtPmNtZF9idWZmOwogCQlmYmktPm5fc21hcnRfY21kcyA9IDA7CkBAIC0xMzQ2LDcgKzEzNDgsNyBAQAogCXB4YWZiX2RlY29kZV9tb2RlX2luZm8oZmJpLCBpbmYtPm1vZGVzLCBpbmYtPm51bV9tb2Rlcyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcHhhZmJfaW5mbyAqIF9faW5pdCBweGFmYl9pbml0X2ZiaW5mbyhzdHJ1Y3QgZGV2aWNlICpkZXYpCitzdGF0aWMgc3RydWN0IHB4YWZiX2luZm8gKiBfX2RldmluaXQgcHhhZmJfaW5pdF9mYmluZm8oc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBweGFmYl9pbmZvICpmYmk7CiAJdm9pZCAqYWRkcjsKQEAgLTE0MDgsNyArMTQxMCw3IEBACiB9CiAKICNpZmRlZiBDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlMKLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX29wdF9tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqdGhpc19vcHQpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBwYXJzZV9vcHRfbW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKnRoaXNfb3B0KQogewogCXN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmluZiA9IGRldi0+cGxhdGZvcm1fZGF0YTsKIApAQCAtMTQ2Nyw3ICsxNDY5LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgcGFyc2Vfb3B0KHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqdGhpc19vcHQpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBwYXJzZV9vcHQoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICp0aGlzX29wdCkKIHsKIAlzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvICppbmYgPSBkZXYtPnBsYXRmb3JtX2RhdGE7CiAJc3RydWN0IHB4YWZiX21vZGVfaW5mbyAqbW9kZSA9ICZpbmYtPm1vZGVzWzBdOwpAQCAtMTU2NSw3ICsxNTY3LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgcHhhZmJfcGFyc2Vfb3B0aW9ucyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKm9wdGlvbnMpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBweGFmYl9wYXJzZV9vcHRpb25zKHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqb3B0aW9ucykKIHsKIAljaGFyICp0aGlzX29wdDsKIAlpbnQgcmV0OwpAQCAtMTU4Niw4ICsxNTg4LDggQEAKIAogc3RhdGljIGNoYXIgZ19vcHRpb25zWzI1Nl0gX19kZXZpbml0ZGF0YSA9ICIiOwogCi0jaWZuZGVmIENPTkZJR19NT0RVTEVTCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBweGFmYl9zZXR1cF9vcHRpb25zKHZvaWQpCisjaWZuZGVmIE1PRFVMRQorc3RhdGljIGludCBfX2luaXQgcHhhZmJfc2V0dXBfb3B0aW9ucyh2b2lkKQogewogCWNoYXIgKm9wdGlvbnMgPSBOVUxMOwogCkBAIC0xNjExLDcgKzE2MTMsNyBAQAogI2RlZmluZSBweGFmYl9zZXR1cF9vcHRpb25zKCkJCSgwKQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgX19pbml0IHB4YWZiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcHhhZmJfaW5mbyAqZmJpOwogCXN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmluZjsKQEAgLTE2ODMsMTQgKzE2ODUsMTQgQEAKIAlpZiAociA9PSBOVUxMKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LCAibm8gSS9PIG1lbW9yeSByZXNvdXJjZSBkZWZpbmVkXG4iKTsKIAkJcmV0ID0gLUVOT0RFVjsKLQkJZ290byBmYWlsZWQ7CisJCWdvdG8gZmFpbGVkX2ZiaTsKIAl9CiAKIAlyID0gcmVxdWVzdF9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEsIGRldi0+bmFtZSk7CiAJaWYgKHIgPT0gTlVMTCkgewogCQlkZXZfZXJyKCZkZXYtPmRldiwgImZhaWxlZCB0byByZXF1ZXN0IEkvTyBtZW1vcnlcbiIpOwogCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZmFpbGVkOworCQlnb3RvIGZhaWxlZF9mYmk7CiAJfQogCiAJZmJpLT5tbWlvX2Jhc2UgPSBpb3JlbWFwKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOwpAQCAtMTczMyw4ICsxNzM1LDE3IEBACiAJICogVGhpcyBtYWtlcyBzdXJlIHRoYXQgb3VyIGNvbG91ciBiaXRmaWVsZAogCSAqIGRlc2NyaXB0b3JzIGFyZSBjb3JyZWN0bHkgaW5pdGlhbGlzZWQuCiAJICovCi0JcHhhZmJfY2hlY2tfdmFyKCZmYmktPmZiLnZhciwgJmZiaS0+ZmIpOwotCXB4YWZiX3NldF9wYXIoJmZiaS0+ZmIpOworCXJldCA9IHB4YWZiX2NoZWNrX3ZhcigmZmJpLT5mYi52YXIsICZmYmktPmZiKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBzdWl0YWJsZSBtb2RlXG4iKTsKKwkJZ290byBmYWlsZWRfZnJlZV9pcnE7CisJfQorCisJcmV0ID0gcHhhZmJfc2V0X3BhcigmZmJpLT5mYik7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIkZhaWxlZCB0byBzZXQgcGFyYW1ldGVyc1xuIik7CisJCWdvdG8gZmFpbGVkX2ZyZWVfaXJxOworCX0KIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgZmJpKTsKIApAQCAtMTc0Miw3ICsxNzUzLDcgQEAKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKCZkZXYtPmRldiwKIAkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgZnJhbWVidWZmZXIgZGV2aWNlOiAlZFxuIiwgcmV0KTsKLQkJZ290byBmYWlsZWRfZnJlZV9pcnE7CisJCWdvdG8gZmFpbGVkX2ZyZWVfY21hcDsKIAl9CiAKICNpZmRlZiBDT05GSUdfQ1BVX0ZSRVEKQEAgLTE3NjEsMzEgKzE3NzIsNzQgQEAKIAogCXJldHVybiAwOwogCitmYWlsZWRfZnJlZV9jbWFwOgorCWlmIChmYmktPmZiLmNtYXAubGVuKQorCQlmYl9kZWFsbG9jX2NtYXAoJmZiaS0+ZmIuY21hcCk7CiBmYWlsZWRfZnJlZV9pcnE6CiAJZnJlZV9pcnEoaXJxLCBmYmkpOwotZmFpbGVkX2ZyZWVfcmVzOgotCXJlbGVhc2VfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKLWZhaWxlZF9mcmVlX2lvOgotCWlvdW5tYXAoZmJpLT5tbWlvX2Jhc2UpOwogZmFpbGVkX2ZyZWVfbWVtOgogCWRtYV9mcmVlX3dyaXRlY29tYmluZSgmZGV2LT5kZXYsIGZiaS0+bWFwX3NpemUsCiAJCQlmYmktPm1hcF9jcHUsIGZiaS0+bWFwX2RtYSk7Ci1mYWlsZWQ6CitmYWlsZWRfZnJlZV9pbzoKKwlpb3VubWFwKGZiaS0+bW1pb19iYXNlKTsKK2ZhaWxlZF9mcmVlX3JlczoKKwlyZWxlYXNlX21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CitmYWlsZWRfZmJpOgorCWNsa19wdXQoZmJpLT5jbGspOwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgTlVMTCk7CiAJa2ZyZWUoZmJpKTsKK2ZhaWxlZDoKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBweGFmYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBweGFmYl9pbmZvICpmYmkgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCByZXNvdXJjZSAqcjsKKwlpbnQgaXJxOworCXN0cnVjdCBmYl9pbmZvICppbmZvOworCisJaWYgKCFmYmkpCisJCXJldHVybiAwOworCisJaW5mbyA9ICZmYmktPmZiOworCisJdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcihpbmZvKTsKKworCXB4YWZiX2Rpc2FibGVfY29udHJvbGxlcihmYmkpOworCisJaWYgKGZiaS0+ZmIuY21hcC5sZW4pCisJCWZiX2RlYWxsb2NfY21hcCgmZmJpLT5mYi5jbWFwKTsKKworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEoZGV2LCAwKTsKKwlmcmVlX2lycShpcnEsIGZiaSk7CisKKwlkbWFfZnJlZV93cml0ZWNvbWJpbmUoJmRldi0+ZGV2LCBmYmktPm1hcF9zaXplLAorCQkJCQlmYmktPm1hcF9jcHUsIGZiaS0+bWFwX2RtYSk7CisKKwlpb3VubWFwKGZiaS0+bW1pb19iYXNlKTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UoZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOworCisJY2xrX3B1dChmYmktPmNsayk7CisJa2ZyZWUoZmJpKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBweGFmYl9kcml2ZXIgPSB7CiAJLnByb2JlCQk9IHB4YWZiX3Byb2JlLAorCS5yZW1vdmUgCT0gcHhhZmJfcmVtb3ZlLAogCS5zdXNwZW5kCT0gcHhhZmJfc3VzcGVuZCwKIAkucmVzdW1lCQk9IHB4YWZiX3Jlc3VtZSwKIAkuZHJpdmVyCQk9IHsKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCiAJCS5uYW1lCT0gInB4YTJ4eC1mYiIsCiAJfSwKIH07CiAKLXN0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IHB4YWZiX2luaXQodm9pZCkKIHsKIAlpZiAocHhhZmJfc2V0dXBfb3B0aW9ucygpKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE3OTMsNyArMTg0NywxMyBAQAogCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnB4YWZiX2RyaXZlcik7CiB9CiAKK3N0YXRpYyB2b2lkIF9fZXhpdCBweGFmYl9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnB4YWZiX2RyaXZlcik7Cit9CisKIG1vZHVsZV9pbml0KHB4YWZiX2luaXQpOworbW9kdWxlX2V4aXQocHhhZmJfZXhpdCk7CiAKIE1PRFVMRV9ERVNDUklQVElPTigibG9hZGFibGUgZnJhbWVidWZmZXIgZHJpdmVyIGZvciBQWEEiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vc2dpdndmYi5jIGIvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKaW5kZXggNGZiMTYyNC4uZjUyNTJjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKQEAgLTIxLDggKzIxLDcgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0KLSNpbmNsdWRlIDxzZXR1cF9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL3NnaXZ3Lmg+CiAKICNkZWZpbmUgSU5DTFVERV9USU1JTkdfVEFCTEVfREFUQQogI2RlZmluZSBEQkVfUkVHX0JBU0UgcGFyLT5yZWdzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3cxMDBmYi5jIGIvZHJpdmVycy92aWRlby93MTAwZmIuYwppbmRleCAzMDQ2OWJmLi5kMDY3NGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3cxMDBmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vdzEwMGZiLmMKQEAgLTEwMDMsNiArMTAwMyw3IEBACiBzdGF0aWMgc3RydWN0IHcxMDBfcGxsX2luZm8geHRhbF8xNjAwMDAwMFtdID0gewogCS8qZnJlcSAgICAgTSAgIE5faW50ICAgIE5fZmFjICB0ZmdvYWwgIGxvY2tfdGltZSAqLwogCXsgNzIsICAgICAgMSwgICA4LCAgICAgICAwLCAgICAgMHhlMCwgICAgICAgIDQ4fSwgLyogdGZnb2FsIGd1ZXNzZWQgKi8KKwl7IDgwLCAgICAgIDEsICAgOSwgICAgICAgMCwgICAgIDB4ZTAsICAgICAgICAxM30sIC8qIHRmZ29hbCBndWVzc2VkICovCiAJeyA5NSwgICAgICAxLCAgIDEwLCAgICAgIDcsICAgICAweGUwLCAgICAgICAgMzh9LCAvKiB0ZmdvYWwgZ3Vlc3NlZCAqLwogCXsgOTYsICAgICAgMSwgICAxMSwgICAgICAwLCAgICAgMHhlMCwgICAgICAgIDM2fSwgLyogdGZnb2FsIGd1ZXNzZWQgKi8KIAl7ICAwLCAgICAgIDAsICAgMCwgICAgICAgMCwgICAgICAgIDAsICAgICAgICAgMH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3hlbi1mYmZyb250LmMgYi9kcml2ZXJzL3ZpZGVvL3hlbi1mYmZyb250LmMKaW5kZXggNjE5YTZmOC4uNDdlZDM5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby94ZW4tZmJmcm9udC5jCisrKyBiL2RyaXZlcnMvdmlkZW8veGVuLWZiZnJvbnQuYwpAQCAtMTgsNiArMTgsNyBAQAogICogZnJhbWUgYnVmZmVyLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9mYi5oPgpAQCAtNDIsMzcgKzQzLDY4IEBACiAJc3RydWN0IHhlbmZiX3BhZ2UJKnBhZ2U7CiAJdW5zaWduZWQgbG9uZyAJCSptZm5zOwogCWludAkJCXVwZGF0ZV93YW50ZWQ7IC8qIFhFTkZCX1RZUEVfVVBEQVRFIHdhbnRlZCAqLworCWludAkJCWZlYXR1cmVfcmVzaXplOyAvKiBYRU5GQl9UWVBFX1JFU0laRSBvayAqLworCXN0cnVjdCB4ZW5mYl9yZXNpemUJcmVzaXplOwkJLyogcHJvdGVjdGVkIGJ5IHJlc2l6ZV9sb2NrICovCisJaW50CQkJcmVzaXplX2RweTsJLyogZGl0dG8gKi8KKwlzcGlubG9ja190CQlyZXNpemVfbG9jazsKIAogCXN0cnVjdCB4ZW5idXNfZGV2aWNlCSp4YmRldjsKIH07CiAKLXN0YXRpYyB1MzIgeGVuZmJfbWVtX2xlbiA9IFhFTkZCX1dJRFRIICogWEVORkJfSEVJR0hUICogWEVORkJfREVQVEggLyA4OworI2RlZmluZSBYRU5GQl9ERUZBVUxUX0ZCX0xFTiAoWEVORkJfV0lEVEggKiBYRU5GQl9IRUlHSFQgKiBYRU5GQl9ERVBUSCAvIDgpCiAKK2VudW0geyBLUEFSQU1fTUVNLCBLUEFSQU1fV0lEVEgsIEtQQVJBTV9IRUlHSFQsIEtQQVJBTV9DTlQgfTsKK3N0YXRpYyBpbnQgdmlkZW9bS1BBUkFNX0NOVF0gPSB7IDIsIFhFTkZCX1dJRFRILCBYRU5GQl9IRUlHSFQgfTsKK21vZHVsZV9wYXJhbV9hcnJheSh2aWRlbywgaW50LCBOVUxMLCAwKTsKK01PRFVMRV9QQVJNX0RFU0ModmlkZW8sCisJIlZpZGVvIG1lbW9yeSBzaXplIGluIE1CLCB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdCAyLDgwMCw2MDApIik7CisKK3N0YXRpYyB2b2lkIHhlbmZiX21ha2VfcHJlZmVycmVkX2NvbnNvbGUodm9pZCk7CiBzdGF0aWMgaW50IHhlbmZiX3JlbW92ZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqKTsKLXN0YXRpYyB2b2lkIHhlbmZiX2luaXRfc2hhcmVkX3BhZ2Uoc3RydWN0IHhlbmZiX2luZm8gKik7CitzdGF0aWMgdm9pZCB4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKHN0cnVjdCB4ZW5mYl9pbmZvICosIHN0cnVjdCBmYl9pbmZvICopOwogc3RhdGljIGludCB4ZW5mYl9jb25uZWN0X2JhY2tlbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKiwgc3RydWN0IHhlbmZiX2luZm8gKik7CiBzdGF0aWMgdm9pZCB4ZW5mYl9kaXNjb25uZWN0X2JhY2tlbmQoc3RydWN0IHhlbmZiX2luZm8gKik7CiAKK3N0YXRpYyB2b2lkIHhlbmZiX3NlbmRfZXZlbnQoc3RydWN0IHhlbmZiX2luZm8gKmluZm8sCisJCQkgICAgIHVuaW9uIHhlbmZiX291dF9ldmVudCAqZXZlbnQpCit7CisJdTMyIHByb2Q7CisKKwlwcm9kID0gaW5mby0+cGFnZS0+b3V0X3Byb2Q7CisJLyogY2FsbGVyIGVuc3VyZXMgIXhlbmZiX3F1ZXVlX2Z1bGwoKSAqLworCW1iKCk7CQkJLyogZW5zdXJlIHJpbmcgc3BhY2UgYXZhaWxhYmxlICovCisJWEVORkJfT1VUX1JJTkdfUkVGKGluZm8tPnBhZ2UsIHByb2QpID0gKmV2ZW50OworCXdtYigpOwkJCS8qIGVuc3VyZSByaW5nIGNvbnRlbnRzIHZpc2libGUgKi8KKwlpbmZvLT5wYWdlLT5vdXRfcHJvZCA9IHByb2QgKyAxOworCisJbm90aWZ5X3JlbW90ZV92aWFfaXJxKGluZm8tPmlycSk7Cit9CisKIHN0YXRpYyB2b2lkIHhlbmZiX2RvX3VwZGF0ZShzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbywKIAkJCSAgICBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkKIHsKIAl1bmlvbiB4ZW5mYl9vdXRfZXZlbnQgZXZlbnQ7Ci0JdTMyIHByb2Q7CiAKKwltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YoZXZlbnQpKTsKIAlldmVudC50eXBlID0gWEVORkJfVFlQRV9VUERBVEU7CiAJZXZlbnQudXBkYXRlLnggPSB4OwogCWV2ZW50LnVwZGF0ZS55ID0geTsKIAlldmVudC51cGRhdGUud2lkdGggPSB3OwogCWV2ZW50LnVwZGF0ZS5oZWlnaHQgPSBoOwogCi0JcHJvZCA9IGluZm8tPnBhZ2UtPm91dF9wcm9kOwogCS8qIGNhbGxlciBlbnN1cmVzICF4ZW5mYl9xdWV1ZV9mdWxsKCkgKi8KLQltYigpOwkJCS8qIGVuc3VyZSByaW5nIHNwYWNlIGF2YWlsYWJsZSAqLwotCVhFTkZCX09VVF9SSU5HX1JFRihpbmZvLT5wYWdlLCBwcm9kKSA9IGV2ZW50OwotCXdtYigpOwkJCS8qIGVuc3VyZSByaW5nIGNvbnRlbnRzIHZpc2libGUgKi8KLQlpbmZvLT5wYWdlLT5vdXRfcHJvZCA9IHByb2QgKyAxOworCXhlbmZiX3NlbmRfZXZlbnQoaW5mbywgJmV2ZW50KTsKK30KIAotCW5vdGlmeV9yZW1vdGVfdmlhX2lycShpbmZvLT5pcnEpOworc3RhdGljIHZvaWQgeGVuZmJfZG9fcmVzaXplKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvKQoreworCXVuaW9uIHhlbmZiX291dF9ldmVudCBldmVudDsKKworCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZihldmVudCkpOworCWV2ZW50LnJlc2l6ZSA9IGluZm8tPnJlc2l6ZTsKKworCS8qIGNhbGxlciBlbnN1cmVzICF4ZW5mYl9xdWV1ZV9mdWxsKCkgKi8KKwl4ZW5mYl9zZW5kX2V2ZW50KGluZm8sICZldmVudCk7CiB9CiAKIHN0YXRpYyBpbnQgeGVuZmJfcXVldWVfZnVsbChzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbykKQEAgLTg0LDEyICsxMTYsMjggQEAKIAlyZXR1cm4gcHJvZCAtIGNvbnMgPT0gWEVORkJfT1VUX1JJTkdfTEVOOwogfQogCitzdGF0aWMgdm9pZCB4ZW5mYl9oYW5kbGVfcmVzaXplX2RweShzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbykKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmluZm8tPnJlc2l6ZV9sb2NrLCBmbGFncyk7CisJaWYgKGluZm8tPnJlc2l6ZV9kcHkpIHsKKwkJaWYgKCF4ZW5mYl9xdWV1ZV9mdWxsKGluZm8pKSB7CisJCQlpbmZvLT5yZXNpemVfZHB5ID0gMDsKKwkJCXhlbmZiX2RvX3Jlc2l6ZShpbmZvKTsKKwkJfQorCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbmZvLT5yZXNpemVfbG9jaywgZmxhZ3MpOworfQorCiBzdGF0aWMgdm9pZCB4ZW5mYl9yZWZyZXNoKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvLAogCQkJICBpbnQgeDEsIGludCB5MSwgaW50IHcsIGludCBoKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHkyID0geTEgKyBoIC0gMTsKIAlpbnQgeDIgPSB4MSArIHcgLSAxOworCWludCB5MiA9IHkxICsgaCAtIDE7CisKKwl4ZW5mYl9oYW5kbGVfcmVzaXplX2RweShpbmZvKTsKIAogCWlmICghaW5mby0+dXBkYXRlX3dhbnRlZCkKIAkJcmV0dXJuOwpAQCAtMjIyLDYgKzI3MCw1NyBAQAogCXJldHVybiByZXM7CiB9CiAKK3N0YXRpYyBpbnQKK3hlbmZiX2NoZWNrX3ZhcihzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwgc3RydWN0IGZiX2luZm8gKmluZm8pCit7CisJc3RydWN0IHhlbmZiX2luZm8gKnhlbmZiX2luZm87CisJaW50IHJlcXVpcmVkX21lbV9sZW47CisKKwl4ZW5mYl9pbmZvID0gaW5mby0+cGFyOworCisJaWYgKCF4ZW5mYl9pbmZvLT5mZWF0dXJlX3Jlc2l6ZSkgeworCQlpZiAodmFyLT54cmVzID09IHZpZGVvW0tQQVJBTV9XSURUSF0gJiYKKwkJICAgIHZhci0+eXJlcyA9PSB2aWRlb1tLUEFSQU1fSEVJR0hUXSAmJgorCQkgICAgdmFyLT5iaXRzX3Blcl9waXhlbCA9PSB4ZW5mYl9pbmZvLT5wYWdlLT5kZXB0aCkgeworCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQ2FuJ3QgcmVzaXplIHBhc3QgaW5pdGlhbCB3aWR0aCBhbmQgaGVpZ2h0ICovCisJaWYgKHZhci0+eHJlcyA+IHZpZGVvW0tQQVJBTV9XSURUSF0gfHwgdmFyLT55cmVzID4gdmlkZW9bS1BBUkFNX0hFSUdIVF0pCisJCXJldHVybiAtRUlOVkFMOworCisJcmVxdWlyZWRfbWVtX2xlbiA9IHZhci0+eHJlcyAqIHZhci0+eXJlcyAqIHhlbmZiX2luZm8tPnBhZ2UtPmRlcHRoIC8gODsKKwlpZiAodmFyLT5iaXRzX3Blcl9waXhlbCA9PSB4ZW5mYl9pbmZvLT5wYWdlLT5kZXB0aCAmJgorCSAgICB2YXItPnhyZXMgPD0gaW5mby0+Zml4LmxpbmVfbGVuZ3RoIC8gKFhFTkZCX0RFUFRIIC8gOCkgJiYKKwkgICAgcmVxdWlyZWRfbWVtX2xlbiA8PSBpbmZvLT5maXguc21lbV9sZW4pIHsKKwkJdmFyLT54cmVzX3ZpcnR1YWwgPSB2YXItPnhyZXM7CisJCXZhci0+eXJlc192aXJ0dWFsID0gdmFyLT55cmVzOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgeGVuZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgeGVuZmJfaW5mbyAqeGVuZmJfaW5mbzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJeGVuZmJfaW5mbyA9IGluZm8tPnBhcjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZ4ZW5mYl9pbmZvLT5yZXNpemVfbG9jaywgZmxhZ3MpOworCXhlbmZiX2luZm8tPnJlc2l6ZS50eXBlID0gWEVORkJfVFlQRV9SRVNJWkU7CisJeGVuZmJfaW5mby0+cmVzaXplLndpZHRoID0gaW5mby0+dmFyLnhyZXM7CisJeGVuZmJfaW5mby0+cmVzaXplLmhlaWdodCA9IGluZm8tPnZhci55cmVzOworCXhlbmZiX2luZm8tPnJlc2l6ZS5zdHJpZGUgPSBpbmZvLT5maXgubGluZV9sZW5ndGg7CisJeGVuZmJfaW5mby0+cmVzaXplLmRlcHRoID0gaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsOworCXhlbmZiX2luZm8tPnJlc2l6ZS5vZmZzZXQgPSAwOworCXhlbmZiX2luZm8tPnJlc2l6ZV9kcHkgPSAxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnhlbmZiX2luZm8tPnJlc2l6ZV9sb2NrLCBmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHhlbmZiX2ZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3JlYWQJPSBmYl9zeXNfcmVhZCwKQEAgLTIzMCw2ICszMjksOCBAQAogCS5mYl9maWxscmVjdAk9IHhlbmZiX2ZpbGxyZWN0LAogCS5mYl9jb3B5YXJlYQk9IHhlbmZiX2NvcHlhcmVhLAogCS5mYl9pbWFnZWJsaXQJPSB4ZW5mYl9pbWFnZWJsaXQsCisJLmZiX2NoZWNrX3Zhcgk9IHhlbmZiX2NoZWNrX3ZhciwKKwkuZmJfc2V0X3BhciAgICAgPSB4ZW5mYl9zZXRfcGFyLAogfTsKIAogc3RhdGljIGlycXJldHVybl90IHhlbmZiX2V2ZW50X2hhbmRsZXIoaW50IHJxLCB2b2lkICpkZXZfaWQpCkBAIC0yNTgsNiArMzU5LDggQEAKIHsKIAlzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbzsKIAlzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbzsKKwlpbnQgZmJfc2l6ZTsKKwlpbnQgdmFsOwogCWludCByZXQ7CiAKIAlpbmZvID0ga3phbGxvYyhzaXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKQEAgLTI2NSwxOCArMzY4LDM1IEBACiAJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCAtRU5PTUVNLCAiYWxsb2NhdGluZyBpbmZvIHN0cnVjdHVyZSIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CisKKwkvKiBMaW1pdCBrZXJuZWwgcGFyYW0gdmlkZW9yYW0gYW1vdW50IHRvIHdoYXQgaXMgaW4geGVuc3RvcmUgKi8KKwlpZiAoeGVuYnVzX3NjYW5mKFhCVF9OSUwsIGRldi0+b3RoZXJlbmQsICJ2aWRlb3JhbSIsICIlZCIsICZ2YWwpID09IDEpIHsKKwkJaWYgKHZhbCA8IHZpZGVvW0tQQVJBTV9NRU1dKQorCQkJdmlkZW9bS1BBUkFNX01FTV0gPSB2YWw7CisJfQorCisJLyogSWYgcmVxdWVzdGVkIHJlcyBkb2VzIG5vdCBmaXQgaW4gYXZhaWxhYmxlIG1lbW9yeSwgdXNlIGRlZmF1bHQgKi8KKwlmYl9zaXplID0gdmlkZW9bS1BBUkFNX01FTV0gKiAxMDI0ICogMTAyNDsKKwlpZiAodmlkZW9bS1BBUkFNX1dJRFRIXSAqIHZpZGVvW0tQQVJBTV9IRUlHSFRdICogWEVORkJfREVQVEggLyA4CisJICAgID4gZmJfc2l6ZSkgeworCQl2aWRlb1tLUEFSQU1fV0lEVEhdID0gWEVORkJfV0lEVEg7CisJCXZpZGVvW0tQQVJBTV9IRUlHSFRdID0gWEVORkJfSEVJR0hUOworCQlmYl9zaXplID0gWEVORkJfREVGQVVMVF9GQl9MRU47CisJfQorCiAJZGV2LT5kZXYuZHJpdmVyX2RhdGEgPSBpbmZvOwogCWluZm8tPnhiZGV2ID0gZGV2OwogCWluZm8tPmlycSA9IC0xOwogCWluZm8tPngxID0gaW5mby0+eTEgPSBJTlRfTUFYOwogCXNwaW5fbG9ja19pbml0KCZpbmZvLT5kaXJ0eV9sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmaW5mby0+cmVzaXplX2xvY2spOwogCi0JaW5mby0+ZmIgPSB2bWFsbG9jKHhlbmZiX21lbV9sZW4pOworCWluZm8tPmZiID0gdm1hbGxvYyhmYl9zaXplKTsKIAlpZiAoaW5mby0+ZmIgPT0gTlVMTCkKIAkJZ290byBlcnJvcl9ub21lbTsKLQltZW1zZXQoaW5mby0+ZmIsIDAsIHhlbmZiX21lbV9sZW4pOworCW1lbXNldChpbmZvLT5mYiwgMCwgZmJfc2l6ZSk7CiAKLQlpbmZvLT5ucl9wYWdlcyA9ICh4ZW5mYl9tZW1fbGVuICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwlpbmZvLT5ucl9wYWdlcyA9IChmYl9zaXplICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKIAogCWluZm8tPm1mbnMgPSB2bWFsbG9jKHNpemVvZih1bnNpZ25lZCBsb25nKSAqIGluZm8tPm5yX3BhZ2VzKTsKIAlpZiAoIWluZm8tPm1mbnMpCkBAIC0yODcsOCArNDA3LDYgQEAKIAlpZiAoIWluZm8tPnBhZ2UpCiAJCWdvdG8gZXJyb3Jfbm9tZW07CiAKLQl4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKGluZm8pOwotCiAJLyogYWJ1c2luZyBmcmFtZWJ1ZmZlcl9hbGxvYygpIHRvIGFsbG9jYXRlIHBzZXVkb19wYWxldHRlICovCiAJZmJfaW5mbyA9IGZyYW1lYnVmZmVyX2FsbG9jKHNpemVvZih1MzIpICogMjU2LCBOVUxMKTsKIAlpZiAoZmJfaW5mbyA9PSBOVUxMKQpAQCAtMzAxLDkgKzQxOSw5IEBACiAJZmJfaW5mby0+c2NyZWVuX2Jhc2UgPSBpbmZvLT5mYjsKIAogCWZiX2luZm8tPmZib3BzID0gJnhlbmZiX2ZiX29wczsKLQlmYl9pbmZvLT52YXIueHJlc192aXJ0dWFsID0gZmJfaW5mby0+dmFyLnhyZXMgPSBpbmZvLT5wYWdlLT53aWR0aDsKLQlmYl9pbmZvLT52YXIueXJlc192aXJ0dWFsID0gZmJfaW5mby0+dmFyLnlyZXMgPSBpbmZvLT5wYWdlLT5oZWlnaHQ7Ci0JZmJfaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsID0gaW5mby0+cGFnZS0+ZGVwdGg7CisJZmJfaW5mby0+dmFyLnhyZXNfdmlydHVhbCA9IGZiX2luZm8tPnZhci54cmVzID0gdmlkZW9bS1BBUkFNX1dJRFRIXTsKKwlmYl9pbmZvLT52YXIueXJlc192aXJ0dWFsID0gZmJfaW5mby0+dmFyLnlyZXMgPSB2aWRlb1tLUEFSQU1fSEVJR0hUXTsKKwlmYl9pbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPSBYRU5GQl9ERVBUSDsKIAogCWZiX2luZm8tPnZhci5yZWQgPSAoc3RydWN0IGZiX2JpdGZpZWxkKXsxNiwgOCwgMH07CiAJZmJfaW5mby0+dmFyLmdyZWVuID0gKHN0cnVjdCBmYl9iaXRmaWVsZCl7OCwgOCwgMH07CkBAIC0zMTUsOSArNDMzLDkgQEAKIAlmYl9pbmZvLT52YXIudm1vZGUgPSBGQl9WTU9ERV9OT05JTlRFUkxBQ0VEOwogCiAJZmJfaW5mby0+Zml4LnZpc3VhbCA9IEZCX1ZJU1VBTF9UUlVFQ09MT1I7Ci0JZmJfaW5mby0+Zml4LmxpbmVfbGVuZ3RoID0gaW5mby0+cGFnZS0+bGluZV9sZW5ndGg7CisJZmJfaW5mby0+Zml4LmxpbmVfbGVuZ3RoID0gZmJfaW5mby0+dmFyLnhyZXMgKiBYRU5GQl9ERVBUSCAvIDg7CiAJZmJfaW5mby0+Zml4LnNtZW1fc3RhcnQgPSAwOwotCWZiX2luZm8tPmZpeC5zbWVtX2xlbiA9IHhlbmZiX21lbV9sZW47CisJZmJfaW5mby0+Zml4LnNtZW1fbGVuID0gZmJfc2l6ZTsKIAlzdHJjcHkoZmJfaW5mby0+Zml4LmlkLCAieGVuIik7CiAJZmJfaW5mby0+Zml4LnR5cGUgPSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFM7CiAJZmJfaW5mby0+Zml4LmFjY2VsID0gRkJfQUNDRUxfTk9ORTsKQEAgLTMzNCw2ICs0NTIsOCBAQAogCWZiX2luZm8tPmZiZGVmaW8gPSAmeGVuZmJfZGVmaW87CiAJZmJfZGVmZXJyZWRfaW9faW5pdChmYl9pbmZvKTsKIAorCXhlbmZiX2luaXRfc2hhcmVkX3BhZ2UoaW5mbywgZmJfaW5mbyk7CisKIAlyZXQgPSByZWdpc3Rlcl9mcmFtZWJ1ZmZlcihmYl9pbmZvKTsKIAlpZiAocmV0KSB7CiAJCWZiX2RlZmVycmVkX2lvX2NsZWFudXAoZmJfaW5mbyk7CkBAIC0zNDgsNiArNDY4LDcgQEAKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJvcjsKIAorCXhlbmZiX21ha2VfcHJlZmVycmVkX2NvbnNvbGUoKTsKIAlyZXR1cm4gMDsKIAogIGVycm9yX25vbWVtOgpAQCAtMzU4LDEyICs0NzksMzQgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgX19kZXZpbml0IHZvaWQKK3hlbmZiX21ha2VfcHJlZmVycmVkX2NvbnNvbGUodm9pZCkKK3sKKwlzdHJ1Y3QgY29uc29sZSAqYzsKKworCWlmIChjb25zb2xlX3NldF9vbl9jbWRsaW5lKQorCQlyZXR1cm47CisKKwlhY3F1aXJlX2NvbnNvbGVfc2VtKCk7CisJZm9yIChjID0gY29uc29sZV9kcml2ZXJzOyBjOyBjID0gYy0+bmV4dCkgeworCQlpZiAoIXN0cmNtcChjLT5uYW1lLCAidHR5IikgJiYgYy0+aW5kZXggPT0gMCkKKwkJCWJyZWFrOworCX0KKwlyZWxlYXNlX2NvbnNvbGVfc2VtKCk7CisJaWYgKGMpIHsKKwkJdW5yZWdpc3Rlcl9jb25zb2xlKGMpOworCQljLT5mbGFncyB8PSBDT05fQ09OU0RFVjsKKwkJYy0+ZmxhZ3MgJj0gfkNPTl9QUklOVEJVRkZFUjsgLyogZG9uJ3QgcHJpbnQgYWdhaW4gKi8KKwkJcmVnaXN0ZXJfY29uc29sZShjKTsKKwl9Cit9CisKIHN0YXRpYyBpbnQgeGVuZmJfcmVzdW1lKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHhlbmZiX2luZm8gKmluZm8gPSBkZXYtPmRldi5kcml2ZXJfZGF0YTsKIAogCXhlbmZiX2Rpc2Nvbm5lY3RfYmFja2VuZChpbmZvKTsKLQl4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKGluZm8pOworCXhlbmZiX2luaXRfc2hhcmVkX3BhZ2UoaW5mbywgaW5mby0+ZmJfaW5mbyk7CiAJcmV0dXJuIHhlbmZiX2Nvbm5lY3RfYmFja2VuZChkZXYsIGluZm8pOwogfQogCkBAIC0zOTEsMjAgKzUzNCwyMyBAQAogCXJldHVybiBwZm5fdG9fbWZuKHZtYWxsb2NfdG9fcGZuKGFkZHJlc3MpKTsKIH0KIAotc3RhdGljIHZvaWQgeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbykKK3N0YXRpYyB2b2lkIHhlbmZiX2luaXRfc2hhcmVkX3BhZ2Uoc3RydWN0IHhlbmZiX2luZm8gKmluZm8sCisJCQkJICAgc3RydWN0IGZiX2luZm8gKmZiX2luZm8pCiB7CiAJaW50IGk7CisJaW50IGVwZCA9IFBBR0VfU0laRSAvIHNpemVvZihpbmZvLT5tZm5zWzBdKTsKIAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5ucl9wYWdlczsgaSsrKQogCQlpbmZvLT5tZm5zW2ldID0gdm1hbGxvY190b19tZm4oaW5mby0+ZmIgKyBpICogUEFHRV9TSVpFKTsKIAotCWluZm8tPnBhZ2UtPnBkWzBdID0gdm1hbGxvY190b19tZm4oaW5mby0+bWZucyk7Ci0JaW5mby0+cGFnZS0+cGRbMV0gPSAwOwotCWluZm8tPnBhZ2UtPndpZHRoID0gWEVORkJfV0lEVEg7Ci0JaW5mby0+cGFnZS0+aGVpZ2h0ID0gWEVORkJfSEVJR0hUOwotCWluZm8tPnBhZ2UtPmRlcHRoID0gWEVORkJfREVQVEg7Ci0JaW5mby0+cGFnZS0+bGluZV9sZW5ndGggPSAoaW5mby0+cGFnZS0+ZGVwdGggLyA4KSAqIGluZm8tPnBhZ2UtPndpZHRoOwotCWluZm8tPnBhZ2UtPm1lbV9sZW5ndGggPSB4ZW5mYl9tZW1fbGVuOworCWZvciAoaSA9IDA7IGkgKiBlcGQgPCBpbmZvLT5ucl9wYWdlczsgaSsrKQorCQlpbmZvLT5wYWdlLT5wZFtpXSA9IHZtYWxsb2NfdG9fbWZuKCZpbmZvLT5tZm5zW2kgKiBlcGRdKTsKKworCWluZm8tPnBhZ2UtPndpZHRoID0gZmJfaW5mby0+dmFyLnhyZXM7CisJaW5mby0+cGFnZS0+aGVpZ2h0ID0gZmJfaW5mby0+dmFyLnlyZXM7CisJaW5mby0+cGFnZS0+ZGVwdGggPSBmYl9pbmZvLT52YXIuYml0c19wZXJfcGl4ZWw7CisJaW5mby0+cGFnZS0+bGluZV9sZW5ndGggPSBmYl9pbmZvLT5maXgubGluZV9sZW5ndGg7CisJaW5mby0+cGFnZS0+bWVtX2xlbmd0aCA9IGZiX2luZm8tPmZpeC5zbWVtX2xlbjsKIAlpbmZvLT5wYWdlLT5pbl9jb25zID0gaW5mby0+cGFnZS0+aW5fcHJvZCA9IDA7CiAJaW5mby0+cGFnZS0+b3V0X2NvbnMgPSBpbmZvLT5wYWdlLT5vdXRfcHJvZCA9IDA7CiB9CkBAIC01MDQsNiArNjUwLDExIEBACiAJCQl2YWwgPSAwOwogCQlpZiAodmFsKQogCQkJaW5mby0+dXBkYXRlX3dhbnRlZCA9IDE7CisKKwkJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBkZXYtPm90aGVyZW5kLAorCQkJCSAiZmVhdHVyZS1yZXNpemUiLCAiJWQiLCAmdmFsKSA8IDApCisJCQl2YWwgPSAwOworCQlpbmZvLT5mZWF0dXJlX3Jlc2l6ZSA9IHZhbDsKIAkJYnJlYWs7CiAKIAljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKQEAgLTU0Nyw0ICs2OTgsNiBAQAogbW9kdWxlX2luaXQoeGVuZmJfaW5pdCk7CiBtb2R1bGVfZXhpdCh4ZW5mYl9jbGVhbnVwKTsKIAorTU9EVUxFX0RFU0NSSVBUSU9OKCJYZW4gdmlydHVhbCBmcmFtZWJ1ZmZlciBkZXZpY2UgZnJvbnRlbmQiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BTElBUygieGVuOnZmYiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW8uYwppbmRleCAwZjNjMmJiLi43MDg0ZTdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW8uYworKysgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW8uYwpAQCAtMTI0LDkgKzEyNCw5IEBACiAJaWYgKGVycikKIAkJYWRkX3N0YXR1cyhkZXYsIFZJUlRJT19DT05GSUdfU19GQUlMRUQpOwogCWVsc2UgewotCQlhZGRfc3RhdHVzKGRldiwgVklSVElPX0NPTkZJR19TX0RSSVZFUl9PSyk7CiAJCS8qIFRoZXkgc2hvdWxkIG5ldmVyIGhhdmUgc2V0IGZlYXR1cmUgYml0cyBiZXlvbmQgMzIgKi8KIAkJZGV2LT5jb25maWctPnNldF9mZWF0dXJlcyhkZXYsIGRldi0+ZmVhdHVyZXNbMF0pOworCQlhZGRfc3RhdHVzKGRldiwgVklSVElPX0NPTkZJR19TX0RSSVZFUl9PSyk7CiAJfQogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2hwd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2hwd2R0LmMKaW5kZXggNmE2MzUzNS4uZWFhM2YyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9ocHdkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvaHB3ZHQuYwpAQCAtMTQwLDQ5ICsxNDAsNTMgQEAKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaHB3ZHRfZGV2aWNlcyk7CiAKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgYXNtaW5saW5lX2NhbGwoc3RydWN0IGNtbl9yZWdpc3RlcnMgKnBpODZSZWdzLCB1bnNpZ25lZCBsb25nICpwUm9tRW50cnkpOworCiAjaWZuZGVmIENPTkZJR19YODZfNjQKIC8qIC0tMzIgQml0IEJpb3MtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2RlZmluZSBIUFdEVF9BUkNICTMyCiAKLXN0YXRpYyB2b2lkIGFzbWlubGluZV9jYWxsKHN0cnVjdCBjbW5fcmVnaXN0ZXJzICpwaTg2UmVncywKLQkJCSAgIHVuc2lnbmVkIGxvbmcgKnBSb21FbnRyeSkKLXsKLQlhc20oInB1c2hsICAgICAgICVlYnAgICAgICAgICAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVzcCwgJWVicCAgICAgICAgIFxuXHQiCi0JICAgICJwdXNoYSAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hmICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotCSAgICAicHVzaCAgICAgICAgJWVzICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNoICAgICAgICAlZHMgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcCAgICAgICAgICVlcyAgICAgICAgICAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgOCglZWJwKSwlZWF4ICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICA0KCVlYXgpLCVlYnggICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDgoJWVheCksJWVjeCAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgMTIoJWVheCksJWVkeCAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAxNiglZWF4KSwlZXNpICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDIwKCVlYXgpLCVlZGkgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgKCVlYXgpLCVlYXggICAgICAgIFxuXHQiCi0JICAgICJwdXNoICAgICAgICAlY3MgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgImNhbGwgICAgICAgICoxMiglZWJwKSAgICAgICAgICBcblx0IgotCSAgICAicHVzaGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNobCAgICAgICAlZWF4ICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDgoJWVicCksJWVheCAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVieCw0KCVlYXgpICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWN4LDgoJWVheCkgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgICVlZHgsMTIoJWVheCkgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVzaSwxNiglZWF4KSAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWRpLDIwKCVlYXgpICAgICAgXG5cdCIKLQkgICAgIm1vdncgICAgICAgICVkcywyNCglZWF4KSAgICAgICBcblx0IgotCSAgICAibW92dyAgICAgICAgJWVzLDI2KCVlYXgpICAgICAgIFxuXHQiCi0JICAgICJwb3BsICAgICAgICAlZWJ4ICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgICVlYngsKCVlYXgpICAgICAgICBcblx0IgotCSAgICAicG9wbCAgICAgICAgJWVieCAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWJ4LDI4KCVlYXgpICAgICAgXG5cdCIKLQkgICAgInBvcCAgICAgICAgICVlcyAgICAgICAgICAgICAgICBcblx0IgotCSAgICAicG9wZiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BhICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgImxlYXZlICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAicmV0Iik7Ci19Cithc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICIuYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgImFzbWlubGluZV9jYWxsOiAgICAgICAgICAgICAgICBcblx0IgorICAgICJwdXNobCAgICAgICAlZWJwICAgICAgICAgICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVzcCwgJWVicCAgICAgICAgIFxuXHQiCisgICAgInB1c2hhICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJwdXNoZiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicHVzaCAgICAgICAgJWVzICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInB1c2ggICAgICAgICVkcyAgICAgICAgICAgICAgICBcblx0IgorICAgICJwb3AgICAgICAgICAlZXMgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgOCglZWJwKSwlZWF4ICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgIDQoJWVheCksJWVieCAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICA4KCVlYXgpLCVlY3ggICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgMTIoJWVheCksJWVkeCAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgIDE2KCVlYXgpLCVlc2kgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAyMCglZWF4KSwlZWRpICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgKCVlYXgpLCVlYXggICAgICAgIFxuXHQiCisgICAgInB1c2ggICAgICAgICVjcyAgICAgICAgICAgICAgICBcblx0IgorICAgICJjYWxsICAgICAgICAqMTIoJWVicCkgICAgICAgICAgXG5cdCIKKyAgICAicHVzaGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInB1c2hsICAgICAgICVlYXggICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICA4KCVlYnApLCVlYXggICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVieCw0KCVlYXgpICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlY3gsOCglZWF4KSAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAlZWR4LDEyKCVlYXgpICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVzaSwxNiglZWF4KSAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlZGksMjAoJWVheCkgICAgICBcblx0IgorICAgICJtb3Z3ICAgICAgICAlZHMsMjQoJWVheCkgICAgICAgXG5cdCIKKyAgICAibW92dyAgICAgICAgJWVzLDI2KCVlYXgpICAgICAgIFxuXHQiCisgICAgInBvcGwgICAgICAgICVlYnggICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAlZWJ4LCglZWF4KSAgICAgICAgXG5cdCIKKyAgICAicG9wbCAgICAgICAgJWVieCAgICAgICAgICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlYngsMjgoJWVheCkgICAgICBcblx0IgorICAgICJwb3AgICAgICAgICAlZXMgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicG9wZiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInBvcGEgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgIi5wcmV2aW91cyIpOworCiAKIC8qCiAgKgljcnVfZGV0ZWN0CkBAIC0zMzMsNDMgKzMzNyw0NCBAQAogCiAjZGVmaW5lIEhQV0RUX0FSQ0gJNjQKIAotc3RhdGljIHZvaWQgYXNtaW5saW5lX2NhbGwoc3RydWN0IGNtbl9yZWdpc3RlcnMgKnBpODZSZWdzLAotCQkJICAgdW5zaWduZWQgbG9uZyAqcFJvbUVudHJ5KQotewotCWFzbSgicHVzaHEgICAgICAlcmJwICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXJzcCwgJXJicCAgICAgIFxuXHQiCi0JICAgICJwdXNocSAgICAgICVyYXggICAgICAgICAgICBcblx0IgotCSAgICAicHVzaHEgICAgICAlcmJ4ICAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hxICAgICAgJXJkeCAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNocSAgICAgICVyMTIgICAgICAgICAgICBcblx0IgotCSAgICAicHVzaHEgICAgICAlcjkgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXJzaSwgJXIxMiAgICAgIFxuXHQiCi0JICAgICJtb3ZxICAgICAgICVyZGksICVyOSAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICA0KCVyOSksJWVieCAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgOCglcjkpLCVlY3ggICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgIDEyKCVyOSksJWVkeCAgICBcblx0IgotCSAgICAibW92bCAgICAgICAxNiglcjkpLCVlc2kgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgMjAoJXI5KSwlZWRpICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICglcjkpLCVlYXggICAgICBcblx0IgotCSAgICAiY2FsbCAgICAgICAqJXIxMiAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hmcSAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BxICAgICAgICAlcjEyICAgICAgICAgICBcblx0IgotCSAgICAicG9wZnEgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgJWVheCwgKCVyOSkgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlYngsIDQoJXI5KSAgICBcblx0IgotCSAgICAibW92bCAgICAgICAlZWN4LCA4KCVyOSkgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgJWVkeCwgMTIoJXI5KSAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlc2ksIDE2KCVyOSkgICBcblx0IgotCSAgICAibW92bCAgICAgICAlZWRpLCAyMCglcjkpICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXIxMiwgJXJheCAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlYXgsIDI4KCVyOSkgICBcblx0IgotCSAgICAicG9wcSAgICAgICAlcjkgICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcHEgICAgICAgJXIxMiAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BxICAgICAgICVyZHggICAgICAgICAgICBcblx0IgotCSAgICAicG9wcSAgICAgICAlcmJ4ICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcHEgICAgICAgJXJheCAgICAgICAgICAgIFxuXHQiCi0JICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICBcblx0IiAicmV0Iik7Ci19Cithc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgIi5hbGlnbiA0ICAgICAgICAgICAgICAgICAgIFxuIgorICAgICJhc21pbmxpbmVfY2FsbDogICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYnAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyc3AsICVyYnAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYXggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYnggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyZHggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyMTIgICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyOSAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyc2ksICVyMTIgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyZGksICVyOSAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDQoJXI5KSwlZWJ4ICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDgoJXI5KSwlZWN4ICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDEyKCVyOSksJWVkeCAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDE2KCVyOSksJWVzaSAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDIwKCVyOSksJWVkaSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICglcjkpLCVlYXggICAgICBcblx0IgorICAgICJjYWxsICAgICAgIColcjEyICAgICAgICAgICBcblx0IgorICAgICJwdXNoZnEgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICAlcjEyICAgICAgICAgICBcblx0IgorICAgICJwb3BmcSAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYXgsICglcjkpICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYngsIDQoJXI5KSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlY3gsIDgoJXI5KSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlZHgsIDEyKCVyOSkgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlc2ksIDE2KCVyOSkgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlZGksIDIwKCVyOSkgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyMTIsICVyYXggICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYXgsIDI4KCVyOSkgICBcblx0IgorICAgICJwb3BxICAgICAgICVyOSAgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyMTIgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyZHggICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyYnggICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyYXggICAgICAgICAgICBcblx0IgorICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJyZXQgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICIucHJldmlvdXMiKTsKIAogLyoKICAqCWRtaV9maW5kX2NydQpAQCAtNDE4LDIwICs0MjMsMjMgQEAKIAlzdGF0aWMgdW5zaWduZWQgbG9uZyByb21fcGw7CiAJc3RhdGljIGludCBkaWVfbm1pX2NhbGxlZDsKIAotCWlmICh1bFJlYXNvbiA9PSBESUVfTk1JIHx8IHVsUmVhc29uID09IERJRV9OTUlfSVBJKSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZyb21fbG9jaywgcm9tX3BsKTsKLQkJaWYgKCFkaWVfbm1pX2NhbGxlZCkKLQkJCWFzbWlubGluZV9jYWxsKCZjbW5fcmVncywgY3J1X3JvbV9hZGRyKTsKLQkJZGllX25taV9jYWxsZWQgPSAxOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyb21fbG9jaywgcm9tX3BsKTsKLQkJaWYgKGNtbl9yZWdzLnUxLnJhbCAhPSAwKSB7Ci0JCQlwYW5pYygiQW4gTk1JIG9jY3VycmVkLCBwbGVhc2Ugc2VlIHRoZSBJbnRlZ3JhdGVkICIKLQkJCSAgICAgICJNYW5hZ2VtZW50IExvZyBmb3IgZGV0YWlscy5cbiIpOwotCQl9CisJaWYgKHVsUmVhc29uICE9IERJRV9OTUkgJiYgdWxSZWFzb24gIT0gRElFX05NSV9JUEkpCisJCXJldHVybiBOT1RJRllfT0s7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcm9tX2xvY2ssIHJvbV9wbCk7CisJaWYgKCFkaWVfbm1pX2NhbGxlZCkKKwkJYXNtaW5saW5lX2NhbGwoJmNtbl9yZWdzLCBjcnVfcm9tX2FkZHIpOworCWRpZV9ubWlfY2FsbGVkID0gMTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyb21fbG9jaywgcm9tX3BsKTsKKwlpZiAoY21uX3JlZ3MudTEucmFsID09IDApIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiaHB3ZHQ6IEFuIE5NSSBvY2N1cnJlZCwgIgorCQkgICAgICAgImJ1dCB1bmFibGUgdG8gZGV0ZXJtaW5lIHNvdXJjZS5cbiIpOworCX0gZWxzZSB7CisJCXBhbmljKCJBbiBOTUkgb2NjdXJyZWQsIHBsZWFzZSBzZWUgdGhlIEludGVncmF0ZWQgIgorCQkJIk1hbmFnZW1lbnQgTG9nIGZvciBkZXRhaWxzLlxuIik7CiAJfQogCi0JZGllX25taV9jYWxsZWQgPSAwOwotCXJldHVybiBOT1RJRllfRE9ORTsKKwlyZXR1cm4gTk9USUZZX1NUT1A7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9NYWtlZmlsZSBiL2RyaXZlcnMveGVuL01ha2VmaWxlCmluZGV4IDM3YWYwNGYuLjM2MzI4NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL01ha2VmaWxlCisrKyBiL2RyaXZlcnMveGVuL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAotb2JqLXkJKz0gZ3JhbnQtdGFibGUubyBmZWF0dXJlcy5vIGV2ZW50cy5vCitvYmoteQkrPSBncmFudC10YWJsZS5vIGZlYXR1cmVzLm8gZXZlbnRzLm8gbWFuYWdlLm8KIG9iai15CSs9IHhlbmJ1cy8KIG9iai0kKENPTkZJR19YRU5fWEVOQ09NTSkJKz0geGVuY29tbS5vCiBvYmotJChDT05GSUdfWEVOX0JBTExPT04pCSs9IGJhbGxvb24ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vYmFsbG9vbi5jIGIvZHJpdmVycy94ZW4vYmFsbG9vbi5jCmluZGV4IGFiMjViYTYuLjU5MWJjMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2JhbGxvb24uYworKysgYi9kcml2ZXJzL3hlbi9iYWxsb29uLmMKQEAgLTIyNSw3ICsyMjUsNyBAQAogCQlwYWdlID0gYmFsbG9vbl9uZXh0X3BhZ2UocGFnZSk7CiAJfQogCi0JcmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpZnJhbWVfbGlzdDsKKwlzZXRfeGVuX2d1ZXN0X2hhbmRsZShyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQsIGZyYW1lX2xpc3QpOwogCXJlc2VydmF0aW9uLm5yX2V4dGVudHMgICA9IG5yX3BhZ2VzOwogCXJjID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoCiAJCVhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwLCAmcmVzZXJ2YXRpb24pOwpAQCAtMzIxLDcgKzMyMSw3IEBACiAJCWJhbGxvb25fYXBwZW5kKHBmbl90b19wYWdlKHBmbikpOwogCX0KIAotCXJlc2VydmF0aW9uLmV4dGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKWZyYW1lX2xpc3Q7CisJc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCBmcmFtZV9saXN0KTsKIAlyZXNlcnZhdGlvbi5ucl9leHRlbnRzICAgPSBucl9wYWdlczsKIAlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sICZyZXNlcnZhdGlvbik7CiAJQlVHX09OKHJldCAhPSBucl9wYWdlcyk7CkBAIC0zNjgsNyArMzY4LDcgQEAKIH0KIAogLyogUmVzZXRzIHRoZSBYZW4gbGltaXQsIHNldHMgbmV3IHRhcmdldCwgYW5kIGtpY2tzIG9mZiBwcm9jZXNzaW5nLiAqLwotdm9pZCBiYWxsb29uX3NldF9uZXdfdGFyZ2V0KHVuc2lnbmVkIGxvbmcgdGFyZ2V0KQorc3RhdGljIHZvaWQgYmFsbG9vbl9zZXRfbmV3X3RhcmdldCh1bnNpZ25lZCBsb25nIHRhcmdldCkKIHsKIAkvKiBObyBuZWVkIGZvciBsb2NrLiBOb3QgcmVhZC1tb2RpZnktd3JpdGUgdXBkYXRlcy4gKi8KIAliYWxsb29uX3N0YXRzLmhhcmRfbGltaXQgICA9IH4wVUw7CkBAIC00ODMsNyArNDgzLDcgQEAKIAkJLmV4dGVudF9vcmRlciA9IDAsCiAJCS5kb21pZCAgICAgICAgPSBET01JRF9TRUxGCiAJfTsKLQlyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQgPSAodW5zaWduZWQgbG9uZykmbWZuOworCXNldF94ZW5fZ3Vlc3RfaGFuZGxlKHJlc2VydmF0aW9uLmV4dGVudF9zdGFydCwgJm1mbik7CiAJc2V0X3B0ZV9hdCgmaW5pdF9tbSwgYWRkciwgcHRlLCBfX3B0ZV9tYSgwdWxsKSk7CiAJc2V0X3BoeXNfdG9fbWFjaGluZShfX3BhKGFkZHIpID4+IFBBR0VfU0hJRlQsIElOVkFMSURfUDJNX0VOVFJZKTsKIAlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sICZyZXNlcnZhdGlvbik7CkBAIC01MTksNyArNTE5LDcgQEAKIAkJCQkuZXh0ZW50X29yZGVyID0gMCwKIAkJCQkuZG9taWQgICAgICAgID0gRE9NSURfU0VMRgogCQkJfTsKLQkJCXJlc2VydmF0aW9uLmV4dGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKSZnbWZuOworCQkJc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCAmZ21mbik7CiAJCQlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sCiAJCQkJCQkgICAmcmVzZXJ2YXRpb24pOwogCQkJaWYgKHJldCA9PSAxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZXZlbnRzLmMgYi9kcml2ZXJzL3hlbi9ldmVudHMuYwppbmRleCA0ZjBmMjJiLi4zMzJkZDYzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRzLmMKKysrIGIvZHJpdmVycy94ZW4vZXZlbnRzLmMKQEAgLTM1NSw3ICszNTUsNyBAQAogCiAJc3Bpbl9sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CiAKLQlpZiAoVkFMSURfRVZUQ0hOKGV2dGNobikgJiYgKC0taXJxX2JpbmRjb3VudFtpcnFdID09IDApKSB7CisJaWYgKCgtLWlycV9iaW5kY291bnRbaXJxXSA9PSAwKSAmJiBWQUxJRF9FVlRDSE4oZXZ0Y2huKSkgewogCQljbG9zZS5wb3J0ID0gZXZ0Y2huOwogCQlpZiAoSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wKEVWVENITk9QX2Nsb3NlLCAmY2xvc2UpICE9IDApCiAJCQlCVUcoKTsKQEAgLTM3NSw3ICszNzUsNyBAQAogCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSAtMTsKIAkJaXJxX2luZm9baXJxXSA9IElSUV9VTkJPVU5EOwogCi0JCWR5bmFtaWNfaXJxX2luaXQoaXJxKTsKKwkJZHluYW1pY19pcnFfY2xlYW51cChpcnEpOwogCX0KIAogCXNwaW5fdW5sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CkBAIC01MjksNyArNTI5LDcgQEAKIAogI2lmbmRlZiBDT05GSUdfWDg2IC8qIE5vIG5lZWQgZm9yIGEgYmFycmllciAtLSBYQ0hHIGlzIGEgYmFycmllciBvbiB4ODYuICovCiAJCS8qIENsZWFyIG1hc3RlciBmbGFnIC9iZWZvcmUvIGNsZWFyaW5nIHNlbGVjdG9yIGZsYWcuICovCi0JCXJtYigpOworCQl3bWIoKTsKICNlbmRpZgogCQlwZW5kaW5nX3dvcmRzID0geGNoZygmdmNwdV9pbmZvLT5ldnRjaG5fcGVuZGluZ19zZWwsIDApOwogCQl3aGlsZSAocGVuZGluZ193b3JkcyAhPSAwKSB7CkBAIC01NTcsNiArNTU3LDMzIEBACiAJcHV0X2NwdSgpOwogfQogCisvKiBSZWJpbmQgYSBuZXcgZXZlbnQgY2hhbm5lbCB0byBhbiBleGlzdGluZyBpcnEuICovCit2b2lkIHJlYmluZF9ldnRjaG5faXJxKGludCBldnRjaG4sIGludCBpcnEpCit7CisJLyogTWFrZSBzdXJlIHRoZSBpcnEgaXMgbWFza2VkLCBzaW5jZSB0aGUgbmV3IGV2ZW50IGNoYW5uZWwKKwkgICB3aWxsIGFsc28gYmUgbWFza2VkLiAqLworCWRpc2FibGVfaXJxKGlycSk7CisKKwlzcGluX2xvY2soJmlycV9tYXBwaW5nX3VwZGF0ZV9sb2NrKTsKKworCS8qIEFmdGVyIHJlc3VtZSB0aGUgaXJxPC0+ZXZ0Y2huIG1hcHBpbmdzIGFyZSBhbGwgY2xlYXJlZCBvdXQgKi8KKwlCVUdfT04oZXZ0Y2huX3RvX2lycVtldnRjaG5dICE9IC0xKTsKKwkvKiBFeHBlY3QgaXJxIHRvIGhhdmUgYmVlbiBib3VuZCBiZWZvcmUsCisJICAgc28gdGhlIGJpbmRjb3VudCBzaG91bGQgYmUgbm9uLTAgKi8KKwlCVUdfT04oaXJxX2JpbmRjb3VudFtpcnFdID09IDApOworCisJZXZ0Y2huX3RvX2lycVtldnRjaG5dID0gaXJxOworCWlycV9pbmZvW2lycV0gPSBta19pcnFfaW5mbyhJUlFUX0VWVENITiwgMCwgZXZ0Y2huKTsKKworCXNwaW5fdW5sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CisKKwkvKiBuZXcgZXZlbnQgY2hhbm5lbHMgYXJlIGFsd2F5cyBib3VuZCB0byBjcHUgMCAqLworCWlycV9zZXRfYWZmaW5pdHkoaXJxLCBjcHVtYXNrX29mX2NwdSgwKSk7CisKKwkvKiBVbm1hc2sgdGhlIGV2ZW50IGNoYW5uZWwuICovCisJZW5hYmxlX2lycShpcnEpOworfQorCiAvKiBSZWJpbmQgYW4gZXZ0Y2huIHNvIHRoYXQgaXQgZ2V0cyBkZWxpdmVyZWQgdG8gYSBzcGVjaWZpYyBjcHUgKi8KIHN0YXRpYyB2b2lkIHJlYmluZF9pcnFfdG9fY3B1KHVuc2lnbmVkIGlycSwgdW5zaWduZWQgdGNwdSkKIHsKQEAgLTY0Nyw2ICs2NzQsODkgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV92aXJxcyh1bnNpZ25lZCBpbnQgY3B1KQoreworCXN0cnVjdCBldnRjaG5fYmluZF92aXJxIGJpbmRfdmlycTsKKwlpbnQgdmlycSwgaXJxLCBldnRjaG47CisKKwlmb3IgKHZpcnEgPSAwOyB2aXJxIDwgTlJfVklSUVM7IHZpcnErKykgeworCQlpZiAoKGlycSA9IHBlcl9jcHUodmlycV90b19pcnEsIGNwdSlbdmlycV0pID09IC0xKQorCQkJY29udGludWU7CisKKwkJQlVHX09OKGlycV9pbmZvW2lycV0udHlwZSAhPSBJUlFUX1ZJUlEpOworCQlCVUdfT04oaXJxX2luZm9baXJxXS5pbmRleCAhPSB2aXJxKTsKKworCQkvKiBHZXQgYSBuZXcgYmluZGluZyBmcm9tIFhlbi4gKi8KKwkJYmluZF92aXJxLnZpcnEgPSB2aXJxOworCQliaW5kX3ZpcnEudmNwdSA9IGNwdTsKKwkJaWYgKEhZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcChFVlRDSE5PUF9iaW5kX3ZpcnEsCisJCQkJCQkmYmluZF92aXJxKSAhPSAwKQorCQkJQlVHKCk7CisJCWV2dGNobiA9IGJpbmRfdmlycS5wb3J0OworCisJCS8qIFJlY29yZCB0aGUgbmV3IG1hcHBpbmcuICovCisJCWV2dGNobl90b19pcnFbZXZ0Y2huXSA9IGlycTsKKwkJaXJxX2luZm9baXJxXSA9IG1rX2lycV9pbmZvKElSUVRfVklSUSwgdmlycSwgZXZ0Y2huKTsKKwkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgY3B1KTsKKworCQkvKiBSZWFkeSBmb3IgdXNlLiAqLworCQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7CisJfQorfQorCitzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV9pcGlzKHVuc2lnbmVkIGludCBjcHUpCit7CisJc3RydWN0IGV2dGNobl9iaW5kX2lwaSBiaW5kX2lwaTsKKwlpbnQgaXBpLCBpcnEsIGV2dGNobjsKKworCWZvciAoaXBpID0gMDsgaXBpIDwgWEVOX05SX0lQSVM7IGlwaSsrKSB7CisJCWlmICgoaXJxID0gcGVyX2NwdShpcGlfdG9faXJxLCBjcHUpW2lwaV0pID09IC0xKQorCQkJY29udGludWU7CisKKwkJQlVHX09OKGlycV9pbmZvW2lycV0udHlwZSAhPSBJUlFUX0lQSSk7CisJCUJVR19PTihpcnFfaW5mb1tpcnFdLmluZGV4ICE9IGlwaSk7CisKKwkJLyogR2V0IGEgbmV3IGJpbmRpbmcgZnJvbSBYZW4uICovCisJCWJpbmRfaXBpLnZjcHUgPSBjcHU7CisJCWlmIChIWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AoRVZUQ0hOT1BfYmluZF9pcGksCisJCQkJCQkmYmluZF9pcGkpICE9IDApCisJCQlCVUcoKTsKKwkJZXZ0Y2huID0gYmluZF9pcGkucG9ydDsKKworCQkvKiBSZWNvcmQgdGhlIG5ldyBtYXBwaW5nLiAqLworCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSBpcnE7CisJCWlycV9pbmZvW2lycV0gPSBta19pcnFfaW5mbyhJUlFUX0lQSSwgaXBpLCBldnRjaG4pOworCQliaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huLCBjcHUpOworCisJCS8qIFJlYWR5IGZvciB1c2UuICovCisJCXVubWFza19ldnRjaG4oZXZ0Y2huKTsKKworCX0KK30KKwordm9pZCB4ZW5faXJxX3Jlc3VtZSh2b2lkKQoreworCXVuc2lnbmVkIGludCBjcHUsIGlycSwgZXZ0Y2huOworCisJaW5pdF9ldnRjaG5fY3B1X2JpbmRpbmdzKCk7CisKKwkvKiBOZXcgZXZlbnQtY2hhbm5lbCBzcGFjZSBpcyBub3QgJ2xpdmUnIHlldC4gKi8KKwlmb3IgKGV2dGNobiA9IDA7IGV2dGNobiA8IE5SX0VWRU5UX0NIQU5ORUxTOyBldnRjaG4rKykKKwkJbWFza19ldnRjaG4oZXZ0Y2huKTsKKworCS8qIE5vIElSUSA8LT4gZXZlbnQtY2hhbm5lbCBtYXBwaW5ncy4gKi8KKwlmb3IgKGlycSA9IDA7IGlycSA8IE5SX0lSUVM7IGlycSsrKQorCQlpcnFfaW5mb1tpcnFdLmV2dGNobiA9IDA7IC8qIHphcCBldmVudC1jaGFubmVsIGJpbmRpbmcgKi8KKworCWZvciAoZXZ0Y2huID0gMDsgZXZ0Y2huIDwgTlJfRVZFTlRfQ0hBTk5FTFM7IGV2dGNobisrKQorCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSAtMTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKwkJcmVzdG9yZV9jcHVfdmlycXMoY3B1KTsKKwkJcmVzdG9yZV9jcHVfaXBpcyhjcHUpOworCX0KK30KKwogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCB4ZW5fZHluYW1pY19jaGlwIF9fcmVhZF9tb3N0bHkgPSB7CiAJLm5hbWUJCT0gInhlbi1keW4iLAogCS5tYXNrCQk9IGRpc2FibGVfZHluaXJxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYyBiL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMKaW5kZXggNTJiNmI0MS4uZTllMTExNiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYworKysgYi9kcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jCkBAIC00NzEsMTQgKzQ3MSwxNCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdudHRhYl9yZXN1bWUodm9pZCkKK2ludCBnbnR0YWJfcmVzdW1lKHZvaWQpCiB7CiAJaWYgKG1heF9ucl9ncmFudF9mcmFtZXMoKSA8IG5yX2dyYW50X2ZyYW1lcykKIAkJcmV0dXJuIC1FTk9TWVM7CiAJcmV0dXJuIGdudHRhYl9tYXAoMCwgbnJfZ3JhbnRfZnJhbWVzIC0gMSk7CiB9CiAKLXN0YXRpYyBpbnQgZ250dGFiX3N1c3BlbmQodm9pZCkKK2ludCBnbnR0YWJfc3VzcGVuZCh2b2lkKQogewogCWFyY2hfZ250dGFiX3VubWFwX3NoYXJlZChzaGFyZWQsIG5yX2dyYW50X2ZyYW1lcyk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9tYW5hZ2UuYyBiL2RyaXZlcnMveGVuL21hbmFnZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNTQ2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9tYW5hZ2UuYwpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqIEhhbmRsZSBleHRlcm4gcmVxdWVzdHMgZm9yIHNodXRkb3duLCByZWJvb3QgYW5kIHN5c3JxCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgorI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KKworI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CisjaW5jbHVkZSA8eGVuL2h2Yy1jb25zb2xlLmg+CisjaW5jbHVkZSA8eGVuL3hlbi1vcHMuaD4KKworI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CisjaW5jbHVkZSA8YXNtL3hlbi9wYWdlLmg+CisKK2VudW0gc2h1dGRvd25fc3RhdGUgeworCVNIVVRET1dOX0lOVkFMSUQgPSAtMSwKKwlTSFVURE9XTl9QT1dFUk9GRiA9IDAsCisJU0hVVERPV05fU1VTUEVORCA9IDIsCisJLyogQ29kZSAzIGlzIFNIVVRET1dOX0NSQVNILCB3aGljaCB3ZSBkb24ndCB1c2UgYmVjYXVzZSB0aGUgZG9tYWluIGNhbiBvbmx5CisJICAgcmVwb3J0IGEgY3Jhc2gsIG5vdCBiZSBpbnN0cnVjdGVkIHRvIGNyYXNoIQorCSAgIEhBTFQgaXMgdGhlIHNhbWUgYXMgUE9XRVJPRkYsIGFzIGZhciBhcyB3ZSdyZSBjb25jZXJuZWQuICBUaGUgdG9vbHMgdXNlCisJICAgdGhlIGRpc3RpbmN0aW9uIHdoZW4gd2UgcmV0dXJuIHRoZSByZWFzb24gY29kZSB0byB0aGVtLiAgKi8KKwkgU0hVVERPV05fSEFMVCA9IDQsCit9OworCisvKiBJZ25vcmUgbXVsdGlwbGUgc2h1dGRvd24gcmVxdWVzdHMuICovCitzdGF0aWMgZW51bSBzaHV0ZG93bl9zdGF0ZSBzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKKworI2lmZGVmIENPTkZJR19QTV9TTEVFUAorc3RhdGljIGludCB4ZW5fc3VzcGVuZCh2b2lkICpkYXRhKQoreworCWludCAqY2FuY2VsbGVkID0gZGF0YTsKKwlpbnQgZXJyOworCisJQlVHX09OKCFpcnFzX2Rpc2FibGVkKCkpOworCisJbG9hZF9jcjMoc3dhcHBlcl9wZ19kaXIpOworCisJZXJyID0gZGV2aWNlX3Bvd2VyX2Rvd24oUE1TR19TVVNQRU5EKTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAieGVuX3N1c3BlbmQ6IGRldmljZV9wb3dlcl9kb3duIGZhaWxlZDogJWRcbiIsCisJCSAgICAgICBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXhlbl9tbV9waW5fYWxsKCk7CisJZ250dGFiX3N1c3BlbmQoKTsKKwl4ZW5fcHJlX3N1c3BlbmQoKTsKKworCS8qCisJICogVGhpcyBoeXBlcmNhbGwgcmV0dXJucyAxIGlmIHN1c3BlbmQgd2FzIGNhbmNlbGxlZAorCSAqIG9yIHRoZSBkb21haW4gd2FzIG1lcmVseSBjaGVja3BvaW50ZWQsIGFuZCAwIGlmIGl0CisJICogaXMgcmVzdW1pbmcgaW4gYSBuZXcgZG9tYWluLgorCSAqLworCSpjYW5jZWxsZWQgPSBIWVBFUlZJU09SX3N1c3BlbmQodmlydF90b19tZm4oeGVuX3N0YXJ0X2luZm8pKTsKKworCXhlbl9wb3N0X3N1c3BlbmQoKmNhbmNlbGxlZCk7CisJZ250dGFiX3Jlc3VtZSgpOworCXhlbl9tbV91bnBpbl9hbGwoKTsKKworCWRldmljZV9wb3dlcl91cCgpOworCisJaWYgKCEqY2FuY2VsbGVkKSB7CisJCXhlbl9pcnFfcmVzdW1lKCk7CisJCXhlbl9jb25zb2xlX3Jlc3VtZSgpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBkb19zdXNwZW5kKHZvaWQpCit7CisJaW50IGVycjsKKwlpbnQgY2FuY2VsbGVkID0gMTsKKworCXNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9TVVNQRU5EOworCisjaWZkZWYgQ09ORklHX1BSRUVNUFQKKwkvKiBJZiB0aGUga2VybmVsIGlzIHByZWVtcHRpYmxlLCB3ZSBuZWVkIHRvIGZyZWV6ZSBhbGwgdGhlIHByb2Nlc3NlcworCSAgIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGluIHRoZSBtaWRkbGUgb2YgYSBwYWdldGFibGUgdXBkYXRlCisJICAgZHVyaW5nIHN1c3BlbmQuICovCisJZXJyID0gZnJlZXplX3Byb2Nlc3NlcygpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ4ZW4gc3VzcGVuZDogZnJlZXplIGZhaWxlZCAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuOworCX0KKyNlbmRpZgorCisJZXJyID0gZGV2aWNlX3N1c3BlbmQoUE1TR19TVVNQRU5EKTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAieGVuIHN1c3BlbmQ6IGRldmljZV9zdXNwZW5kICVkXG4iLCBlcnIpOworCQlnb3RvIG91dDsKKwl9CisKKwlwcmludGsoInN1c3BlbmRpbmcgeGVuYnVzLi4uXG4iKTsKKwkvKiBYWFggdXNlIG5vcm1hbCBkZXZpY2UgdHJlZT8gKi8KKwl4ZW5idXNfc3VzcGVuZCgpOworCisJZXJyID0gc3RvcF9tYWNoaW5lX3J1bih4ZW5fc3VzcGVuZCwgJmNhbmNlbGxlZCwgMCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBzdGFydCB4ZW5fc3VzcGVuZDogJWRcbiIsIGVycik7CisJCWdvdG8gb3V0OworCX0KKworCWlmICghY2FuY2VsbGVkKQorCQl4ZW5idXNfcmVzdW1lKCk7CisJZWxzZQorCQl4ZW5idXNfc3VzcGVuZF9jYW5jZWwoKTsKKworCWRldmljZV9yZXN1bWUoKTsKKworCS8qIE1ha2Ugc3VyZSB0aW1lciBldmVudHMgZ2V0IHJldHJpZ2dlcmVkIG9uIGFsbCBDUFVzICovCisJY2xvY2tfd2FzX3NldCgpOworb3V0OgorI2lmZGVmIENPTkZJR19QUkVFTVBUCisJdGhhd19wcm9jZXNzZXMoKTsKKyNlbmRpZgorCXNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9JTlZBTElEOworfQorI2VuZGlmCS8qIENPTkZJR19QTV9TTEVFUCAqLworCitzdGF0aWMgdm9pZCBzaHV0ZG93bl9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLAorCQkJICAgICBjb25zdCBjaGFyICoqdmVjLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCWNoYXIgKnN0cjsKKwlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKwlpbnQgZXJyOworCisJaWYgKHNodXR0aW5nX2Rvd24gIT0gU0hVVERPV05fSU5WQUxJRCkKKwkJcmV0dXJuOworCisgYWdhaW46CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpCisJCXJldHVybjsKKworCXN0ciA9IChjaGFyICopeGVuYnVzX3JlYWQoeGJ0LCAiY29udHJvbCIsICJzaHV0ZG93biIsIE5VTEwpOworCS8qIElnbm9yZSByZWFkIGVycm9ycyBhbmQgZW1wdHkgcmVhZHMuICovCisJaWYgKFhFTkJVU19JU19FUlJfUkVBRChzdHIpKSB7CisJCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwkJcmV0dXJuOworCX0KKworCXhlbmJ1c193cml0ZSh4YnQsICJjb250cm9sIiwgInNodXRkb3duIiwgIiIpOworCisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDApOworCWlmIChlcnIgPT0gLUVBR0FJTikgeworCQlrZnJlZShzdHIpOworCQlnb3RvIGFnYWluOworCX0KKworCWlmIChzdHJjbXAoc3RyLCAicG93ZXJvZmYiKSA9PSAwIHx8CisJICAgIHN0cmNtcChzdHIsICJoYWx0IikgPT0gMCkgeworCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fUE9XRVJPRkY7CisJCW9yZGVybHlfcG93ZXJvZmYoZmFsc2UpOworCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInJlYm9vdCIpID09IDApIHsKKwkJc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX1BPV0VST0ZGOyAvKiA/ICovCisJCWN0cmxfYWx0X2RlbCgpOworI2lmZGVmIENPTkZJR19QTV9TTEVFUAorCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInN1c3BlbmQiKSA9PSAwKSB7CisJCWRvX3N1c3BlbmQoKTsKKyNlbmRpZgorCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0lORk8gIklnbm9yaW5nIHNodXRkb3duIHJlcXVlc3Q6ICVzXG4iLCBzdHIpOworCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKKwl9CisKKwlrZnJlZShzdHIpOworfQorCitzdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLCBjb25zdCBjaGFyICoqdmVjLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCWNoYXIgc3lzcnFfa2V5ID0gJ1wwJzsKKwlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKwlpbnQgZXJyOworCisgYWdhaW46CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpCisJCXJldHVybjsKKwlpZiAoIXhlbmJ1c19zY2FuZih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJnN5c3JxX2tleSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcmVhZCBzeXNycSBjb2RlIGluICIKKwkJICAgICAgICJjb250cm9sL3N5c3JxXG4iKTsKKwkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOworCQlyZXR1cm47CisJfQorCisJaWYgKHN5c3JxX2tleSAhPSAnXDAnKQorCQl4ZW5idXNfcHJpbnRmKHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMiLCAnXDAnKTsKKworCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAoZXJyID09IC1FQUdBSU4pCisJCWdvdG8gYWdhaW47CisKKwlpZiAoc3lzcnFfa2V5ICE9ICdcMCcpCisJCWhhbmRsZV9zeXNycShzeXNycV9rZXksIE5VTEwpOworfQorCitzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzaHV0ZG93bl93YXRjaCA9IHsKKwkubm9kZSA9ICJjb250cm9sL3NodXRkb3duIiwKKwkuY2FsbGJhY2sgPSBzaHV0ZG93bl9oYW5kbGVyCit9OworCitzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzeXNycV93YXRjaCA9IHsKKwkubm9kZSA9ICJjb250cm9sL3N5c3JxIiwKKwkuY2FsbGJhY2sgPSBzeXNycV9oYW5kbGVyCit9OworCitzdGF0aWMgaW50IHNldHVwX3NodXRkb3duX3dhdGNoZXIodm9pZCkKK3sKKwlpbnQgZXJyOworCisJZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzaHV0ZG93bl93YXRjaCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc2h1dGRvd24gd2F0Y2hlclxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzeXNycV93YXRjaCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc3lzcnEgd2F0Y2hlclxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2h1dGRvd25fZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpub3RpZmllciwKKwkJCSAgdW5zaWduZWQgbG9uZyBldmVudCwKKwkJCSAgdm9pZCAqZGF0YSkKK3sKKwlzZXR1cF9zaHV0ZG93bl93YXRjaGVyKCk7CisJcmV0dXJuIE5PVElGWV9ET05FOworfQorCitzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zaHV0ZG93bl9ldmVudCh2b2lkKQoreworCXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90aWZpZXIgPSB7CisJCS5ub3RpZmllcl9jYWxsID0gc2h1dGRvd25fZXZlbnQKKwl9OworCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlmaWVyKCZ4ZW5zdG9yZV9ub3RpZmllcik7CisKKwlyZXR1cm4gMDsKK30KKworc3Vic3lzX2luaXRjYWxsKHNldHVwX3NodXRkb3duX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jCmluZGV4IDBmODZiMGYuLjk2NzhiM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAJY2hhciAqcGF0aDsKIAogCXZhX3N0YXJ0KGFwLCBwYXRoZm10KTsKLQlwYXRoID0ga3Zhc3ByaW50ZihHRlBfS0VSTkVMLCBwYXRoZm10LCBhcCk7CisJcGF0aCA9IGt2YXNwcmludGYoR0ZQX05PSU8gfCBfX0dGUF9ISUdILCBwYXRoZm10LCBhcCk7CiAJdmFfZW5kKGFwKTsKIAogCWlmICghcGF0aCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jCmluZGV4IDZlZmJlM2YuLjA5MGM2MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY29tbXMuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NvbW1zLmMKQEAgLTIwMyw3ICsyMDMsNiBAQAogaW50IHhiX2luaXRfY29tbXModm9pZCkKIHsKIAlzdHJ1Y3QgeGVuc3RvcmVfZG9tYWluX2ludGVyZmFjZSAqaW50ZiA9IHhlbl9zdG9yZV9pbnRlcmZhY2U7Ci0JaW50IGVycjsKIAogCWlmIChpbnRmLT5yZXFfcHJvZCAhPSBpbnRmLT5yZXFfY29ucykKIAkJcHJpbnRrKEtFUk5fRVJSICJYRU5CVVMgcmVxdWVzdCByaW5nIGlzIG5vdCBxdWllc2NlbnQgIgpAQCAtMjE2LDE4ICsyMTUsMjAgQEAKIAkJaW50Zi0+cnNwX2NvbnMgPSBpbnRmLT5yc3BfcHJvZDsKIAl9CiAKLQlpZiAoeGVuYnVzX2lycSkKLQkJdW5iaW5kX2Zyb21faXJxaGFuZGxlcih4ZW5idXNfaXJxLCAmeGJfd2FpdHEpOworCWlmICh4ZW5idXNfaXJxKSB7CisJCS8qIEFscmVhZHkgaGF2ZSBhbiBpcnE7IGFzc3VtZSB3ZSdyZSByZXN1bWluZyAqLworCQlyZWJpbmRfZXZ0Y2huX2lycSh4ZW5fc3RvcmVfZXZ0Y2huLCB4ZW5idXNfaXJxKTsKKwl9IGVsc2UgeworCQlpbnQgZXJyOworCQllcnIgPSBiaW5kX2V2dGNobl90b19pcnFoYW5kbGVyKHhlbl9zdG9yZV9ldnRjaG4sIHdha2Vfd2FpdGluZywKKwkJCQkJCTAsICJ4ZW5idXMiLCAmeGJfd2FpdHEpOworCQlpZiAoZXJyIDw9IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiWEVOQlVTIHJlcXVlc3QgaXJxIGZhaWxlZCAlaVxuIiwgZXJyKTsKKwkJCXJldHVybiBlcnI7CisJCX0KIAotCWVyciA9IGJpbmRfZXZ0Y2huX3RvX2lycWhhbmRsZXIoCi0JCXhlbl9zdG9yZV9ldnRjaG4sIHdha2Vfd2FpdGluZywKLQkJMCwgInhlbmJ1cyIsICZ4Yl93YWl0cSk7Ci0JaWYgKGVyciA8PSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiWEVOQlVTIHJlcXVlc3QgaXJxIGZhaWxlZCAlaVxuIiwgZXJyKTsKLQkJcmV0dXJuIGVycjsKKwkJeGVuYnVzX2lycSA9IGVycjsKIAl9CiAKLQl4ZW5idXNfaXJxID0gZXJyOwotCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKaW5kZXggMjI3ZDUzYjEuLjdmMmY5MWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfeHMuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKQEAgLTI4Myw5ICsyODMsOSBAQAogCWNoYXIgKmJ1ZmZlcjsKIAogCWlmIChzdHJsZW4obmFtZSkgPT0gMCkKLQkJYnVmZmVyID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICIlcyIsIGRpcik7CisJCWJ1ZmZlciA9IGthc3ByaW50ZihHRlBfTk9JTyB8IF9fR0ZQX0hJR0gsICIlcyIsIGRpcik7CiAJZWxzZQotCQlidWZmZXIgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIiVzLyVzIiwgZGlyLCBuYW1lKTsKKwkJYnVmZmVyID0ga2FzcHJpbnRmKEdGUF9OT0lPIHwgX19HRlBfSElHSCwgIiVzLyVzIiwgZGlyLCBuYW1lKTsKIAlyZXR1cm4gKCFidWZmZXIpID8gRVJSX1BUUigtRU5PTUVNKSA6IGJ1ZmZlcjsKIH0KIApAQCAtMjk3LDcgKzI5Nyw3IEBACiAJKm51bSA9IGNvdW50X3N0cmluZ3Moc3RyaW5ncywgbGVuKTsKIAogCS8qIFRyYW5zZmVyIHRvIG9uZSBiaWcgYWxsb2MgZm9yIGVhc3kgZnJlZWluZy4gKi8KLQlyZXQgPSBrbWFsbG9jKCpudW0gKiBzaXplb2YoY2hhciAqKSArIGxlbiwgR0ZQX0tFUk5FTCk7CisJcmV0ID0ga21hbGxvYygqbnVtICogc2l6ZW9mKGNoYXIgKikgKyBsZW4sIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCFyZXQpIHsKIAkJa2ZyZWUoc3RyaW5ncyk7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwpAQCAtNzUxLDcgKzc1MSw3IEBACiAJfQogCiAKLQltc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7CisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKG1zZyA9PSBOVUxMKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwpAQCAtNzYzLDcgKzc2Myw3IEBACiAJCWdvdG8gb3V0OwogCX0KIAotCWJvZHkgPSBrbWFsbG9jKG1zZy0+aGRyLmxlbiArIDEsIEdGUF9LRVJORUwpOworCWJvZHkgPSBrbWFsbG9jKG1zZy0+aGRyLmxlbiArIDEsIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKGJvZHkgPT0gTlVMTCkgewogCQlrZnJlZShtc2cpOwogCQllcnIgPSAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvTWFrZWZpbGUgYi9maXJtd2FyZS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGYyZmIzCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvTWFrZWZpbGUKQEAgLTAsMCArMSwxNzUgQEAKKyMKKyMga2J1aWxkIGZpbGUgZm9yIGZpcm13YXJlLworIworCisjIENyZWF0ZSAkKGZ3YWJzKSBmcm9tICQoQ09ORklHX0VYVFJBX0ZJUk1XQVJFX0RJUikgLS0gaWYgaXQgZG9lc24ndCBoYXZlIGEKKyMgbGVhZGluZyAvLCBpdCdzIHJlbGF0aXZlIHRvICQoc3JjdHJlZSkuCitmd2RpciA6PSAkKHN1YnN0ICIsLCQoQ09ORklHX0VYVFJBX0ZJUk1XQVJFX0RJUikpCitmd2FicyA6PSAkKGFkZHByZWZpeCAkKHNyY3RyZWUpLywkKGZpbHRlci1vdXQgLyUsJChmd2RpcikpKSQoZmlsdGVyIC8lLCQoZndkaXIpKQorCitmdy1leHRlcm5hbC15IDo9ICQoc3Vic3QgIiwsJChDT05GSUdfRVhUUkFfRklSTVdBUkUpKQorCisjIFRoZXJlIGFyZSB0aHJlZSBjYXNlcyB0byBjYXJlIGFib3V0OgorIyAxLiBCdWlsZGluZyBrZXJuZWwgd2l0aCBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMPXkgLS0gJChmdy1zaGlwcGVkLXkpIHNob3VsZAorIyAgICBpbmNsdWRlIHRoZSBmaXJtd2FyZSBmaWxlcyB0byBpbmNsdWRlLCBhY2NvcmRpbmcgdG8gLmNvbmZpZworIyAyLiAnbWFrZSBtb2R1bGVzX2luc3RhbGwnLCB3aGljaCB3aWxsIGluc3RhbGwgZmlybXdhcmUgZm9yIG1vZHVsZXMsIGFuZCAKKyMgICAgX2Fsc29fIGZvciB0aGUgaW4ta2VybmVsIGRyaXZlcnMgd2hlbiBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMPW4KKyMgMy4gJ21ha2UgZmlybXdhcmVfaW5zdGFsbCcsIHdoaWNoIGluc3RhbGxzIGFsbCBmaXJtd2FyZSwgdW5jb25kaXRpb25hbGx5LgorCisjIEZvciB0aGUgZm9ybWVyIHR3byBjYXNlcyB3ZSB3YW50ICQoZnctc2hpcHBlZC15KSBhbmQgJChmdy1zaGlwcGVkLW0pIHRvIGJlCisjIGFjY3VyYXRlLiBJbiB0aGUgbGF0dGVyIGNhc2UgaXQgZG9lc24ndCBtYXR0ZXIgLS0gaXQnbGwgdXNlICQoZnctc2hpcHBlZC1hbGwpLgorIyBCdXQgYmUgYXdhcmUgdGhhdCB0aGUgY29uZmlnIGZpbGUgbWlnaHQgbm90IGJlIGluY2x1ZGVkIGF0IGFsbC4KKworZnctc2hpcHBlZC0kKENPTkZJR19BVEFSSV9EU1A1NkspICs9IGRzcDU2ay9ib290c3RyYXAuYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX0FUTV9BTUJBU1NBRE9SKSArPSBhdG1zYXIxMS5mdworZnctc2hpcHBlZC0kKENPTkZJR19DT01QVVRPTkUpICs9IGludGVsbGlwb3J0Mi5iaW4KK2Z3LXNoaXBwZWQtJChDT05GSUdfRFZCX1RUVVNCX0JVREdFVCkgKz0gdHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19TTUNUUikgKz0gdHJfc21jdHIuYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX1NORF9LT1JHMTIxMikgKz0ga29yZy9rMTIxMi5kc3AKK2Z3LXNoaXBwZWQtJChDT05GSUdfU05EX01BRVNUUk8zKSArPSBlc3MvbWFlc3RybzNfYXNzcF9rZXJuZWwuZncgXAorCQkJCSAgICAgZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdworZnctc2hpcHBlZC0kKENPTkZJR19TTkRfU0IxNl9DU1ApICs9IHNiMTYvbXVsYXdfbWFpbi5jc3Agc2IxNi9hbGF3X21haW4uY3NwIFwKKwkJCQkgICAgIHNiMTYvaW1hX2FkcGNtX2luaXQuY3NwIFwKKwkJCQkgICAgIHNiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcCBcCisJCQkJICAgICBzYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcAorZnctc2hpcHBlZC0kKENPTkZJR19TTkRfWU1GUENJKSArPSB5YW1haGEvZHMxX2N0cmwuZncgeWFtYWhhL2RzMV9kc3AuZncgXAorCQkJCSAgIHlhbWFoYS9kczFlX2N0cmwuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX0RBQlVTQikgKz0gZGFidXNiL2Zpcm13YXJlLmZ3IGRhYnVzYi9iaXRzdHJlYW0uYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9FTUkyNikgKz0gZW1pMjYvbG9hZGVyLmZ3IGVtaTI2L2Zpcm13YXJlLmZ3IFwKKwkJCQkgIGVtaTI2L2JpdHN0cmVhbS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfRU1JNjIpICs9IGVtaTYyL2xvYWRlci5mdyBlbWk2Mi9iaXRzdHJlYW0uZncgXAorCQkJCSAgZW1pNjIvc3BkaWYuZncgZW1pNjIvbWlkaS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfS0FXRVRIKSArPSBrYXdldGgvbmV3X2NvZGUuYmluIGthd2V0aC90cmlnZ2VyX2NvZGUuYmluIFwKKwkJCQkgICBrYXdldGgvbmV3X2NvZGVfZml4LmJpbiBcCisJCQkJICAga2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluCitpZmRlZiBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMCitmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9NUFIpICs9IGtleXNwYW4vbXByLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOFgpICs9IGtleXNwYW4vdXNhMTh4LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOSkgKz0ga2V5c3Bhbi91c2ExOS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSSkgKz0ga2V5c3Bhbi91c2ExOXFpLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXKSArPSBrZXlzcGFuL3VzYTE5cXcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VykgKz0ga2V5c3Bhbi91c2ExOXcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4KSArPSBrZXlzcGFuL3VzYTI4LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhBKSArPSBrZXlzcGFuL3VzYTI4eGEuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEIpICs9IGtleXNwYW4vdXNhMjh4Yi5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYKSArPSBrZXlzcGFuL3VzYTI4eC5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXKSArPSBrZXlzcGFuL3VzYTQ5dy5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXTEMpICs9IGtleXNwYW4vdXNhNDl3bGMuZncKK2Vsc2UKK2Z3LXNoaXBwZWQtIDo9IGtleXNwYW4vbXByLmZ3IGtleXNwYW4vdXNhMTh4LmZ3IGtleXNwYW4vdXNhMTkuZncJXAorCWtleXNwYW4vdXNhMTlxaS5mdyBrZXlzcGFuL3VzYTE5cXcuZncga2V5c3Bhbi91c2ExOXcuZncJCVwKKwlrZXlzcGFuL3VzYTI4LmZ3IGtleXNwYW4vdXNhMjh4YS5mdyBrZXlzcGFuL3VzYTI4eGIuZncJCVwKKwlrZXlzcGFuL3VzYTI4eC5mdyBrZXlzcGFuL3VzYTQ5dy5mdyBrZXlzcGFuL3VzYTQ5d2xjLmZ3CitlbmRpZgorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX1RJKSArPSB0aV8zNDEwLmZ3IHRpXzUwNTIuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVCkgKz0gZWRnZXBvcnQvYm9vdC5mdyBlZGdlcG9ydC9ib290Mi5mdyBcCisJCQkJCSAgICBlZGdlcG9ydC9kb3duLmZ3IGVkZ2Vwb3J0L2Rvd24yLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEkpICs9IGVkZ2Vwb3J0L2Rvd24zLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX1dISVRFSEVBVCkgKz0gd2hpdGVoZWF0X2xvYWRlci5mdyB3aGl0ZWhlYXQuZncgXAorCQkJCQkgICAjIHdoaXRlaGVhdF9sb2FkZXJfZGVidWcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkgKz0ga2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9YSVJDT00pICs9IGtleXNwYW5fcGRhL3hpcmNvbV9wZ3MuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1ZJQ0FNKSArPSB2aWNhbS9maXJtd2FyZS5mdworZnctc2hpcHBlZC0kKENPTkZJR19WSURFT19DUElBMikgKz0gY3BpYTIvc3R2MDY3Ml92cDQuYmluCisKK2Z3LXNoaXBwZWQtYWxsIDo9ICQoZnctc2hpcHBlZC15KSAkKGZ3LXNoaXBwZWQtbSkgJChmdy1zaGlwcGVkLSkKKworIyBEaXJlY3RvcmllcyB3aGljaCB3ZSBfbWlnaHRfIG5lZWQgdG8gY3JlYXRlLCBzbyB3ZSBoYXZlIGEgcnVsZSBmb3IgdGhlbS4KK2Zpcm13YXJlLWRpcnMgOj0gJChzb3J0ICQocGF0c3Vic3QgJSwkKG9ianRyZWUpLyQob2JqKS8lLywkKGRpciAkKGZ3LWV4dGVybmFsLXkpICQoZnctc2hpcHBlZC1hbGwpKSkpCisKK3F1aWV0X2NtZF9ta2RpciA9IE1LRElSICAgJChwYXRzdWJzdCAkKG9ianRyZWUpLyUsJSwkQCkKKyAgICAgIGNtZF9ta2RpciA9IG1rZGlyIC1wICRACisKK3F1aWV0X2NtZF9paGV4ICA9IElIRVggICAgJEAKKyAgICAgIGNtZF9paGV4ICA9ICQoT0JKQ09QWSkgLUlpaGV4IC1PYmluYXJ5ICQ8ICRACisKK3F1aWV0X2NtZF9paGV4MmZ3ICA9IElIRVgyRlcgJEAKKyAgICAgIGNtZF9paGV4MmZ3ICA9ICQob2JqdHJlZSkvJChvYmopL2loZXgyZncgJDwgJEAKKworcXVpZXRfY21kX2gxNnRvZncgID0gSDE2VE9GVyAkQAorICAgICAgY21kX2gxNnRvZncgID0gJChvYmp0cmVlKS8kKG9iaikvaWhleDJmdyAtdyAkPCAkQAorCitxdWlldF9jbWRfZndiaW4gPSBNS19GVyAgICRACisgICAgICBjbWRfZndiaW4gPSBGV05BTUU9IiQocGF0c3Vic3QgZmlybXdhcmUvJS5nZW4uUywlLCRAKSI7CQkgICAgIFwKKwkJICBGV1NUUj0iJChzdWJzdCAvLF8sJChzdWJzdCAuLF8sJChzdWJzdCAtLF8sJChwYXRzdWJzdAkgICAgIFwKKwkJCQlmaXJtd2FyZS8lLmdlbi5TLCUsJEApKSkpIjsJCSAgICAgXAorCQkgIEFTTV9XT1JEPSQoaWYgJChDT05GSUdfNjRCSVQpLC5xdWFkLC5sb25nKTsJCSAgICAgXAorCQkgIEFTTV9BTElHTj0kKGlmICQoQ09ORklHXzY0QklUKSwzLDIpOwkJCSAgICAgXAorCQkgIFBST0dCSVRTPSQoaWYgJChDT05GSUdfQVJNKSwlLEApcHJvZ2JpdHM7CQkgICAgIFwKKwkJICBlY2hvICIvKiBHZW5lcmF0ZWQgYnkgZmlybXdhcmUvTWFrZWZpbGUgKi8iCQk+ICRAO1wKKwkJICBlY2hvICIgICAgLnNlY3Rpb24gLnJvZGF0YSIJCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5wMmFsaWduICQke0FTTV9BTElHTn0iCQkJPj4kQDtcCisJCSAgZWNobyAiX2Z3XyQke0ZXU1RSfV9iaW46IgkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAgLmluY2JpbiBcIiQoMilcIiIJCQkJPj4kQDtcCisJCSAgZWNobyAiX2Z3X2VuZDoiCQkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAuc2VjdGlvbiAucm9kYXRhLnN0cixcImFNU1wiLCQke1BST0dCSVRTfSwxIgk+PiRAO1wKKwkJICBlY2hvICIgICAgLnAyYWxpZ24gJCR7QVNNX0FMSUdOfSIJCQk+PiRAO1wKKwkJICBlY2hvICJfZndfJCR7RldTVFJ9X25hbWU6IgkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAgLnN0cmluZyBcIiQkRldOQU1FXCIiCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5zZWN0aW9uIC5idWlsdGluX2Z3LFwiYVwiLCQke1BST0dCSVRTfSIJPj4kQDtcCisJCSAgZWNobyAiICAgIC5wMmFsaWduICQke0FTTV9BTElHTn0iCQkJPj4kQDtcCisJCSAgZWNobyAiICAgICQke0FTTV9XT1JEfSBfZndfJCR7RldTVFJ9X25hbWUiCQk+PiRAO1wKKwkJICBlY2hvICIgICAgJCR7QVNNX1dPUkR9IF9md18kJHtGV1NUUn1fYmluIgkJPj4kQDtcCisJCSAgZWNobyAiICAgICQke0FTTV9XT1JEfSBfZndfZW5kIC0gX2Z3XyQke0ZXU1RSfV9iaW4iCT4+JEA7CisKKyMgT25lIG9mIHRoZXNlIGZpbGVzIHdpbGwgY2hhbmdlLCBvciBjb21lIGludG8gZXhpc3RlbmNlLCB3aGVuZXZlcgorIyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIGJldHdlZW4gMzItYml0IGFuZCA2NC1iaXQuIFRoZSAuUyBmaWxlcworIyBuZWVkIHRvIGNoYW5nZSB3aGVuIHRoYXQgaGFwcGVucy4KK3dvcmRzaXplX2RlcHMgOj0gJCh3aWxkY2FyZCBpbmNsdWRlL2NvbmZpZy82NGJpdC5oIGluY2x1ZGUvY29uZmlnLzMyYml0LmggXAorCQlpbmNsdWRlL2NvbmZpZy9wcGMzMi5oIGluY2x1ZGUvY29uZmlnL3BwYzY0LmggXAorCQlpbmNsdWRlL2NvbmZpZy9zdXBlcmgzMi5oIGluY2x1ZGUvY29uZmlnL3N1cGVyaDY0LmggXAorCQlpbmNsdWRlL2NvbmZpZy94ODZfMzIuaCBpbmNsdWRlL2NvbmZpZy94ODZfNjQuaCkKKworIyBXb3JrYXJvdW5kIGZvciBtYWtlIDwgMy44MSwgd2hlcmUgLlNFQ09OREVYUEFOU0lPTiBkb2Vzbid0IHdvcmsuCisjIEl0J2xsIGVuZCB1cCBkZXBlbmRpbmcgb24gdGhlc2UgdGFyZ2V0cywgc28gbWFrZSB0aGVtIGEgUEhPTlkgcnVsZSB3aGljaAorIyBkZXBlbmRzIG9uIF9hbGxfIHRoZSBkaXJlY3RvcmllcyBpbiAkKGZpcm13YXJlLWRpcnMpLCBhbmQgaXQnbGwgd29yayBvdXQgT0suCitQSE9OWSArPSAkKG9ianRyZWUpLyQkKCUpICQob2JqdHJlZSkvJChvYmopLyQkKCUpCiskKG9ianRyZWUpLyQkKCUpICQob2JqdHJlZSkvJChvYmopLyQkKCUpOiAkKGZpcm13YXJlLWRpcnMpCisJQHRydWUKKworIyBGb3IgdGhlICQkKGRpciAlKSB0cmljaywgd2hlcmUgd2UgbmVlZCAlIHRvIGJlIGV4cGFuZGVkIGZpcnN0LgorLlNFQ09OREVYUEFOU0lPTjoKKworJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5TLCAkKGZ3LXNoaXBwZWQteSkpOiAlOiAkKHdvcmRzaXplX2RlcHMpIFwKKwkJfCAkKG9ianRyZWUpLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsZndiaW4sJChwYXRzdWJzdCAlLmdlbi5TLCUsJEApKQorJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5TLCAkKGZ3LWV4dGVybmFsLXkpKTogJTogJCh3b3Jkc2l6ZV9kZXBzKSBcCisJCWluY2x1ZGUvY29uZmlnL2V4dHJhL2Zpcm13YXJlL2Rpci5oIHwgJChvYmp0cmVlKS8kJChkaXIgJSkKKwkkKGNhbGwgY21kLGZ3YmluLCQoZndhYnMpLyQocGF0c3Vic3QgJChvYmopLyUuZ2VuLlMsJSwkQCkpCisKKyMgVGhlIC5vIGZpbGVzIGRlcGVuZCBvbiB0aGUgYmluYXJpZXMgZGlyZWN0bHk7IHRoZSAuUyBmaWxlcyBkb24ndC4KKyQocGF0c3Vic3QgJSwkKG9iaikvJS5nZW4ubywgJChmdy1zaGlwcGVkLXkpKTogJS5nZW4ubzogJQorJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5vLCAkKGZ3LWV4dGVybmFsLXkpKTogJChvYmopLyUuZ2VuLm86ICQoZndkaXIpLyUKKworIyAuaWhleCBpcyB1c2VkIGp1c3QgYXMgYSBzaW1wbGUgd2F5IHRvIGhvbGQgYmluYXJ5IGZpbGVzIGluIGEgc291cmNlIHRyZWUKKyMgd2hlcmUgYmluYXJpZXMgYXJlIGZyb3duZWQgdXBvbi4gVGhleSBhcmUgZGlyZWN0bHkgY29udmVydGVkIHdpdGggb2JqY29weS4KKyQob2JqKS8lOiAkKG9iaikvJS5paGV4IHwgJChvYmp0cmVlKS8kKG9iaikvJCQoZGlyICUpCisJJChjYWxsIGNtZCxpaGV4KQorCisjIC5IRVggaXMgYWxzbyBJbnRlbCBIRVgsIGJ1dCB3aGVyZSB0aGUgb2Zmc2V0IGFuZCBsZW5ndGggaW4gZWFjaCByZWNvcmQKKyMgaXMgYWN0dWFsbHkgbWVhbmluZ2Z1bCwgYmVjYXVzZSB0aGUgZmlybXdhcmUgaGFzIHRvIGJlIGxvYWRlZCBpbiBhIGNlcnRhaW4KKyMgb3JkZXIgcmF0aGVyIHRoYW4gYXMgYSBzaW5nbGUgYmluYXJ5IGJsb2IuIFRodXMsIHdlIGNvbnZlcnQgdGhlbSBpbnRvIG91cgorIyBtb3JlIGNvbXBhY3QgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXggcmVjb3JkcyAoPGxpbnV4L2loZXguaD4pCiskKG9iaikvJS5mdzogJChvYmopLyUuSEVYICQob2JqKS9paGV4MmZ3IHwgJChvYmp0cmVlKS8kKG9iaikvJCQoZGlyICUpCisJJChjYWxsIGNtZCxpaGV4MmZ3KQorCisjIC5IMTYgaXMgb3VyIG93biBtb2RpZmllZCBmb3JtIG9mIEludGVsIEhFWCwgd2l0aCAxNi1iaXQgbGVuZ3RoIGZvciByZWNvcmRzLgorJChvYmopLyUuZnc6ICQob2JqKS8lLkgxNiAkKG9iaikvaWhleDJmdyB8ICQob2JqdHJlZSkvJChvYmopLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsaDE2dG9mdykKKworJChmaXJtd2FyZS1kaXJzKToKKwkkKGNhbGwgY21kLG1rZGlyKQorCitvYmoteQkJCQkgKz0gJChwYXRzdWJzdCAlLCUuZ2VuLm8sICQoZnctZXh0ZXJuYWwteSkpCitvYmotJChDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMKSArPSAkKHBhdHN1YnN0ICUsJS5nZW4ubywgJChmdy1zaGlwcGVkLXkpKQorCisjIFJlbW92ZSAuUyBmaWxlcyBhbmQgYmluYXJpZXMgY3JlYXRlZCBmcm9tIGloZXgKKyMgKGR1cmluZyAnbWFrZSBjbGVhbicgLmNvbmZpZyBpc24ndCBpbmNsdWRlZCBzbyB0aGV5J3JlIGFsbCBpbiAkKGZ3LXNoaXBwZWQtKSkKK3RhcmdldHMgOj0gJChmdy1zaGlwcGVkLSkgJChwYXRzdWJzdCAkKG9iaikvJSwlLCBcCisJCQkJJChzaGVsbCBmaW5kICQob2JqKSAtbmFtZSBcKi5nZW4uUyAyPi9kZXYvbnVsbCkpCisKKyMgV2l0aG91dCB0aGlzLCBidWlsdC1pbi5vIHdvbid0IGJlIGNyZWF0ZWQgd2hlbiBpdCdzIGVtcHR5LCBhbmQgdGhlCisjIGZpbmFsIHZtbGludXggbGluayB3aWxsIGZhaWwuCitvYmotbiA6PSBkdW1teQorCitob3N0cHJvZ3MteSA6PSBpaGV4MmZ3CmRpZmYgLS1naXQgYS9maXJtd2FyZS9XSEVOQ0UgYi9maXJtd2FyZS9XSEVOQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZjNTFiMgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL1dIRU5DRQpAQCAtMCwwICsxLDM0MSBAQAorICAgICAgICAgICAgICoqKioqKioqKioKKyAgICAgICAgICAgICAqIFdIRU5DRSAqCisgICAgICAgICAgICAgKioqKioqKioqKgorCitUaGlzIGZpbGUgYXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlIG9yaWdpbiBhbmQgbGljZW5zaW5nIGluZm9ybWF0aW9uLAoraWYga25vd24sIGZvciBlYWNoIHBpZWNlIG9mIGZpcm13YXJlIGRpc3RyaWJ1dGVkIGZvciB1c2Ugd2l0aCB0aGUgTGludXgKK2tlcm5lbC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrb3JnMTIxMiAtLSBLb3JnIDEyMTIgSU8gYXVkaW8gZGV2aWNlCisKK0ZpbGU6IGtvcmcvazEyMTIuZHNwCisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gYWxzYS1maXJtd2FyZSBwYWNrYWdlIGluIGhleCBmb3JtOyBubyBsaWNlbnNpbmcgaW5mb3JtYXRpb24uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogbWFlc3RybzMgLS0gRVNTIEFsbGVncm8gTWFlc3RybzMgYXVkaW8gZGV2aWNlCisKK0ZpbGU6IGVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdworRmlsZTogZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdworCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGFsc2EtZmlybXdhcmUgcGFja2FnZSBpbiBoZXggZm9ybSB3aXRoIGEgY29tbWVudCBjbGFpbWluZyB0bworYmUgR1BMdjIrLCBidXQgd2l0aG91dCBzb3VyY2UgLS0gYW5kIHdpdGggYW5vdGhlciBjb21tZW50IHNheWluZyAiRVNTCitkcm9wcyBiaW5hcnkgZHNwIGNvZGUgaW1hZ2VzIG9uIG91ciBoZWFkcywgYnV0IHdlIGRvbid0IGdldCB0byBzZWUKK3NwZWNzIG9uIHRoZSBkc3AuIgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHltZnBjaSAtLSBZYW1haGEgWU1GNzI0Lzc0MC83NDQvNzU0IGF1ZGlvIGRldmljZXMKKworRmlsZTogeWFtYWhhL2RzMV9jdHJsLmZ3CitGaWxlOiB5YW1haGEvZHMxX2RzcC5mdworRmlsZTogeWFtYWhhL2RzMWVfY3RybC5mdworCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGFsc2EtZmlybXdhcmUgcGFja2FnZSBpbiBoZXggZm9ybSwgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1lbnQ6CisgICBDb3B5cmlnaHQgKGMpIDE5OTctMTk5OSBZYW1haGEgQ29ycG9yYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogc21jdHIgLS0gU01DIElTQS9NQ0EgVG9rZW4gUmluZyBhZGFwdGVyCisKK0ZpbGU6IHRyX3NtY3RyLmJpbgorSW5mbzogTUNULkJJTiB2Ni4zQzEgMDMvMDEvOTUKKworT3JpZ2luYWwgbGljZW5jZSBpbmZvOgorCisgKiBUaGlzIGZpcm13YXJlIGlzIGxpY2Vuc2VkIHRvIHlvdSBzdHJpY3RseSBmb3IgdXNlIGluIGNvbmp1bmN0aW9uCisgKiB3aXRoIHRoZSB1c2Ugb2YgU01DIFRva2VuUmluZyBhZGFwdGVycy4gVGhlcmUgaXMgbm8gd2FyYW50eQorICogZXhwcmVzc2VkIG9yIGltcGxpZWQgYWJvdXQgaXRzIGZpdG5lc3MgZm9yIGFueSBwdXJwb3NlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGthd2V0aCAtLSBVU0IgS0xTSSBLTDVVU0IxMDEtYmFzZWQgRXRoZXJuZXQgZGV2aWNlCisKK0ZpbGU6IGthd2V0aC9uZXdfY29kZS5iaW4KK0ZpbGU6IGthd2V0aC9uZXdfY29kZV9maXguYmluCitGaWxlOiBrYXdldGgvdHJpZ2dlcl9jb2RlLmJpbgorRmlsZToga2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluCisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gaGV4IGZvcm0gaW4gdGhlIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogdHR1c2ItYnVkZ2V0IC0tIFRlY2hub3RyZW5kL0hhdXBwYXVnZSBOb3ZhLVVTQiBkZXZpY2VzCisKK0ZpbGU6IHR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4KKworTGljZW5jZTogVW5rbm93bgorCitGb3VuZCBpbiBoZXggZm9ybSBpbiB0aGUga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrZXlzcGFuIC0tIFVTQiBLZXlzcGFuIFVTQS14eHggc2VyaWFsIGRldmljZQorCitGaWxlOiBrZXlzcGFuL21wci5mdworRmlsZToga2V5c3Bhbi91c2ExOHguZncKK0ZpbGU6IGtleXNwYW4vdXNhMTkuZncKK0ZpbGU6IGtleXNwYW4vdXNhMTlxaS5mdworRmlsZToga2V5c3Bhbi91c2ExOXF3LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTE5dy5mdworRmlsZToga2V5c3Bhbi91c2EyOC5mdworRmlsZToga2V5c3Bhbi91c2EyOHhhLmZ3CitGaWxlOiBrZXlzcGFuL3VzYTI4eGIuZncKK0ZpbGU6IGtleXNwYW4vdXNhMjh4LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTQ5dy5mdworRmlsZToga2V5c3Bhbi91c2E0OXdsYy5mdworCitDb252ZXJ0ZWQgZnJvbSBJbnRlbCBIRVggZmlsZXMsIHVzZWQgaW4gb3VyIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBpaGV4LgorCitPcmlnaW5hbCBsaWNlbmNlIGluZm9ybWF0aW9uOgorCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrZXlzcGFuX3BkYSAtLSBVU0IgS2V5c3BhbiBQREEgc2luZ2xlLXBvcnQgc2VyaWFsIGRldmljZQorCitGaWxlOiBrZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5mdworU291cmNlOiBrZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5TCisKK0ZpbGU6IGtleXNwYW5fcGRhL3hpcmNvbV9wZ3MuZncKK1NvdXJjZToga2V5c3Bhbl9wZGEveGlyY29tX3Bncy5TCisKK0xpY2VuY2U6IEdQTHYyKworCitDb21waWxlZCBmcm9tIG9yaWdpbmFsIDgwNTEgc291cmNlIGludG8gSW50ZWwgSEVYLCB1c2VkIGluIG91ciBiaW5hcnkgaWhleCBmb3JtLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGVtaTI2IC0tIEVNSSAyfDYgVVNCIEF1ZGlvIGludGVyZmFjZQorCitGaWxlOiBlbWkyNi9iaXRzdHJlYW0uZncKK0luZm86IFZFUlNJT049MS4xLjEuMTMxIERBVEU9MjAwMWRlYzA2CisKK0ZpbGU6IGVtaTI2L2Zpcm13YXJlLmZ3CitJbmZvOiBWRVJTSU9OPTEuMC4yLjkxNiBEQVRFPTEyLjAyLjIwMDIKKworRmlsZTogZW1pMjYvbG9hZGVyLmZ3CisKK0NvbnZlcnRlZCBmcm9tIEludGVsIEhFWCBmaWxlcywgdXNlZCBpbiBvdXIgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXguCisKK09yaWdpbmFsIGxpY2VuY2UgaW5mb3JtYXRpb246CisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorICogaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisgKiBpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqLworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGVtaTYyIC0tIEVNSSA2fDJtIFVTQiBBdWRpbyBpbnRlcmZhY2UKKworRmlsZTogZW1pNjIvYml0c3RyZWFtLmZ3CitJbmZvOiBWRVJTSU9OPTEuMC4wLjE5MSBEQVRFPSAyMDAyb2N0MjgKKworRmlsZTogZW1pNjIvbG9hZGVyLmZ3CitTb3VyY2U6IEVNSUxPQUQuSEVYCitJbmZvOiBWRVJTSU9OPTEuMC4yLjAwMiBEQVRFPTEwLjAxLjIwMDIKKworRmlsZTogZW1pNjIvbWlkaS5mdworU291cmNlOiBFTUk2Mk1GVy5IRVgKK0luZm86IFZFUlNJT049MS4wNC4wNjIgREFURT0xNi4xMC4yMDAyCisKK0ZpbGU6IGVtaTYyL3NwZGlmLmZ3CitTb3VyY2U6IEVNSTYyU0ZXLkhFWAorSW5mbzogVkVSU0lPTj0xLjA0LjA2MiBEQVRFPTE2LjEwLjIwMDIKKworQ29udmVydGVkIGZyb20gSW50ZWwgSEVYIGZpbGVzLCB1c2VkIGluIG91ciBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgaWhleC4KKworT3JpZ2luYWwgbGljZW5jZSBpbmZvcm1hdGlvbjogTm9uZQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHR1X3VzYl8zNDEwXzUwNTIgLS0gVVNCIFRJIDM0MTAvNTA1MiBzZXJpYWwgZGV2aWNlCisKK0ZpbGU6IHRpXzM0MTAuZncKK0luZm86IGZpcm13YXJlIDkvMTAvMDQgRlczNDEwX1NwZWNpYWxfU3RhcnRXZG9nT25TdGFydFBvcnQKKworRmlsZTogdGlfNTA1Mi5mdworSW5mbzogZmlybXdhcmUgOS8xOC8wNAorCitMaWNlbmNlOiBBbGxlZ2VkbHkgR1BMdjIrLCBidXQgbm8gc291cmNlIHZpc2libGUuIE1hcmtlZDoKKwkgQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogd2hpdGVoZWF0IC0tIFVTQiBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgc2VyaWFsIGRldmljZQorCitGaWxlOiB3aGl0ZWhlYXQuZncKK1ZlcnNpb246IDQuMDYKKworRmlsZTogd2hpdGVoZWF0X2xvYWRlci5mdworRmlsZTogd2hpdGVoZWF0X2xvYWRlcl9kZWJ1Zy5mdworCitMaWNlbmNlOiBBbGxlZ2VkbHkgR1BMdjIsIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorCSBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jCisKK0RlYnVnIGxvYWRlciBjbGFpbXMgdGhlIGZvbGxvd2luZyBiZWhhdmlvdXI6CisJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCisJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcworCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKKwlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCisKK0NvbnZlcnRlZCBmcm9tIEludGVsIEhFWCBmaWxlcywgdXNlZCBpbiBvdXIgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXguCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogaXAyIC0tIENvbXB1dG9uZSBJbnRlbGxpUG9ydCBQbHVzIHNlcmlhbCBkZXZpY2UKKworRmlsZTogaW50ZWxsaXBvcnQyLmJpbgorCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogQ1BpQTIgLS0gY2FtZXJhcyBiYXNlZCBvbiBWaXNpb24ncyBDUGlBMgorCitGaWxlOiBjcGlhMi9zdHYwNjcyX3ZwNC5iaW4KKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyKywgYnV0IG5vIHNvdXJjZSB2aXNpYmxlLiBNYXJrZWQ6CisJQ29weXJpZ2h0IChDKSAyMDAxIFNUTWljcm9lbGVjdHJvbmljcywgSW5jLgorCUNvbnRhY3Q6ICBzdGV2ZS5taWxsZXJAc3QuY29tCisJRGVzY3JpcHRpb246IFRoaXMgZmlsZSBjb250YWlucyBwYXRjaCBkYXRhIGZvciB0aGUgQ1BpQTIgKHN0djA2NzIpIFZQNC4KKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBEQUJVU0IgLS0gRGlnaXRhbCBBdWRpbyBCcm9hZGNhc3RpbmcgKERBQikgUmVjZWl2ZXIgZm9yIFVTQiBhbmQgTGludXgKKworRmlsZTogZGFidXNiL2Zpcm13YXJlLmZ3CitGaWxlOiBkYWJ1c2IvYml0c3RyZWFtLmJpbgorCitMaWNlbmNlOiBEaXN0cmlidXRhYmxlCisKKyAqIENvcHlyaWdodCAoQykgMTk5OSBCYXlDb20gR21iSAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgcmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZQorICogY29kZSByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgY29tbWVudCB3aXRob3V0CisgKiBtb2RpZmljYXRpb24uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogVVNCX1ZJQ0FNIC0tIFVTQiAzY29tIEhvbWVDb25uZWN0IChha2EgdmljYW0pCisKK0ZpbGU6IHZpY2FtL2Zpcm13YXJlLmZ3CisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBVU0JfU0VSSUFMX0VER0VQT1JUIC0gVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlcgorCitGaWxlOiBlZGdlcG9ydC9ib290LmZ3CitGaWxlOiBlZGdlcG9ydC9ib290Mi5mdworRmlsZTogZWRnZXBvcnQvZG93bi5mdworRmlsZTogZWRnZXBvcnQvZG93bjIuZncKKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyKywgYnV0IG5vIHNvdXJjZSB2aXNpYmxlLiBNYXJrZWQ6CisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBVU0JfU0VSSUFMX0VER0VQT1JUX1RJIC0gVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlcgorKFRJIERldmljZXMpCisKK0ZpbGU6IGVkZ2Vwb3J0L2Rvd24zLmJpbgorCitMaWNlbmNlOgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0IEJpbmFyeSBJbWFnZSAoZm9yIFRJIGJhc2VkIHByb2R1Y3RzKQorLy8qIEdlbmVyYXRlZCBieSBUSUJpbjJDIHYyLjAwICh3YXRjaHBvcnQpCisvLyogQ29weXJpZ2h0IChDKSAyMDAxIEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogQVRBUklfRFNQNTZLIC0gQXRhcmkgRFNQNTZrIHN1cHBvcnQKKworRmlsZTogZHNwNTZrL2Jvb3RzdHJhcC5iaW4KK1NvdXJjZTogZHNwNTZrL2Jvb3RzdHJhcC5hc20KKworTGljZW5jZTogR1BMdjIgb3IgbGF0ZXIKKworRFNQNTYwMDEgYXNzZW1ibGVyLCBwb3NzaWJseSBidWlsZGFibGUgd2l0aCBhNTYgZnJvbSAKK2h0dHA6Ly93d3cuemRvbWFpbi5jb20vYTU2Lmh0bWwKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBTTkRfU0IxNl9DU1AgLSBTb3VuZCBCbGFzdGVyIDE2L0FXRSBDU1Agc3VwcG9ydAorCitGaWxlOiBzYjE2L211bGF3X21haW4uY3NwCitGaWxlOiBzYjE2L2FsYXdfbWFpbi5jc3AKK0ZpbGU6IHNiMTYvaW1hX2FkcGNtX2luaXQuY3NwCitGaWxlOiBzYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AKK0ZpbGU6IHNiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwCisKK0xpY2VuY2U6IEFsbGVnZWRseSBHUEx2MissIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLworCitGb3VuZCBpbiBoZXggZm9ybSBpbiBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvYXRtc2FyMTEuSEVYIGIvZmlybXdhcmUvYXRtc2FyMTEuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZGRjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9hdG1zYXIxMS5IRVgKQEAgLTAsMCArMSwyMDQgQEAKKzowNDAwMDAwMEEwRDBGMDAwOUMKKzoyQzAwODAwMDQwMUE2ODAwMDAwMDAwMDAzMzVCMDA3QzEzNjAwMDA1MzM1QjEwMDAzQzFBQTBDMDM3NUEwMTgwMDM0MDAwMDgwMDAwMDAwMDE3NjBGRkZCMzM1QjQwMDAyMAorOjJDMDBBQzAwNDAxQTcwMDAxMzYwMDAwMzI0MUIwRkMwQUY5QjQ1MDAyNTA4MDAwODAzNDAwMDA4NDIwMDAwMTA4RjgxMEM5MDMyMjIwMDAyMTA0MDAwMDMzQzAzQTBEMTc0Cis6MkMwMEQ4MDAyNDYzRjgxMDAwNjBGODA5MjQyMTAwMDExMDAwMDAxQUFGODEwQzkwODIwMjAwMTFBRjkwMEM0ODA0NDEwMDBBMzQ0MjAwODA5NjdEMDAwMjk2MDIwMDEyQTQKKzoyQzAxMDQwMDAwMDAwMDAwMTA1RDAwMTEwMDAwMDAwMDA0MTEwMTYxQTY2MjAwMDIxMDAwMDAwREFFNjIwMDBDMzQ4NDgwMDBBMjAyMDAxMTREMDFGRkZGMDAwMDAwMDA1RQorOjJDMDEzMDAwOEY4MzRDMDAwMDAwMDAwMEFGODMwRkVDMDBFMEY4MDkwM0UwMzgyMTAwMDQxNDAwMDQ0MEZGRjcwMDAwMDAwMEFGODA0NjBDOEUxMDAwMDg0RDAxRkZGRjM2Cis6MkMwMTVDMDAwMDAwMDAwMDhGODM0QzAwNDkwMDAwMURBRjgzMEZFQzhGODIwQ0JDOEY5RDBDNEMyNDQyMDAwMTk3QkUwMDAwQUY4MjBDQkMxM0MwMDAwOUFDQTIwMEQ4NzIKKzoyQzAxODgwMEE3QTAwMDAwM0MwMTAwRDEwMDNFMDgyNTk0MjIwMDJDMDQxMTAxM0ZBNDIyMDAwMkFDMjIwMDBDQUMyMDAwMTA4RjlFMEM1NDI3QkQwMDAyMTdCRTAwMDI4QworOjJDMDFCNDAwOENBMjAwQzA4RjlEMEM1MDhGOTcwRkM4QUY5RDBDNEMxMkUyMDAwNTg3ODA0MDAyM0MwMkEwRDEyNDQyRjk0QzAwNDBGODA5MDAwMDAwMDAwMEUwRjgwOTRBCis6MkMwMUUwMDAwM0UwMzgyMTQ1MDBGRkRDOEUxMTAwMEMzQzEzMDBEMTAwMTExMTAyMkM0MzA0MDAxMDYwRkZCOTAwMDIxMTgwMDI2Mjk4MjE4RTc2MDAzQzMyMjIwMDA4QzEKKzoyQzAyMEMwMDE0NDBGRkI3OEU3NzAwMzQ4RTc1MDAzMDNDMDNDRkIwMTZDMDAwMDMwMkQ1MTAyQjA0MTEwMEJFMDAwMDAwMDAxMDQwRkZBNjAwNzAxODI2NEQwMUZGRkZFNQorOjJDMDIzODAwMDAwMDAwMDA4RjgyNEMwMEFGOTc0QzAwQUY4MjBGRUNBQzc2MDAxMDAyNjA5MDIxMzIyMjAwMDIxMDQwMDAwNzhGOTQ0QTAwOTYwMjAwM0EzNDg0MDAwNDkyCis6MkMwMjY0MDAxNDQwMDAwM0FGODIwRkJDM0MwMjkwMDBBRjgyMEZCQzhFMTAwMDA4MzI5NDNGMDA4RTExMDAwQzI2OTRGRjAwMTI4MDAwNzMzQzEzMDBEMTQ5MDEwMDcxNjIKKzoyQzAyOTAwMDMyMzcwMDA4MTZFMDAwNkYwMDExMTEwMjJDNDMwNDAwMTA2MDAwNkMwMDAyQjk4MDAwMDQxNzQwMDQ0MDAwM0EwMjc3OTgyMTEyNzIwMDIzMjZENjAwMzBFMAorOjJDMDJCQzAwQUU1NjAwM0M4RTc2MDAzQzhFNzcwMDM0OEU3NTAwMzAzQzAzQ0ZCMDE2QzAwMDAzMDJENTEwMkIwNDExMDA5MTAwMDAwMDAwMTA0MDAwNjAyRTgyMTAwMDZCCis6MkMwMkU4MDAxNDQwMDAwOTAwNzAxODI2NEQwMUZGRkYwMDAwMDAwMDhGODI0QzAwQUY5NzRDMDBBQzc2MDAxMEFFNDIwMDM0MTAwMEZGRDBBRjgwNDYwQzAwRTBGODA5MEQKKzoyQzAzMTQwMDAzRTAzODIxM0MwM0NGQjAwMDcwMTgyNkFFNDYwMDM0NEQwMUZGRkYwMDAwMDAwMDhGODI0QzAwQUY5NzRDMDBBRjgyMEZFQ0FDNzYwMDEwMTAwMEZGQzM4MgorOjJDMDM0MDAwQUY4MDQ2MEMwMkQ1MTAyQjEwNDAwMDQyM0MxN0NGQjAyRTgyMTAwMDE0NDAwMDA2MDJGMEI4MjY0RDAxRkZGRjAwMDAwMDAwQUVGNjAwMTAxMDAwRkZCOEU5Cis6MkMwMzZDMDBBRjgwNDYwQzAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwOEY4MjRDMDBBRjg2NEMwMEFFRjYwMDEwQUY4MjBGRUMxMDAwRkZBRUFGODA0NjBDN0YKKzoyQzAzOTgwMDMwODRGRkZCOEU1NzAwMzgzMjQyRkZDMDAwMDIxMTgyQTc4MjBGQjhBRjk3MEZCNDg2NUQwMDJBODY1RTAwMDhBNzlEMEZCQTI3OUQwRjE4MzNERTAwNjA0QgorOjJDMDNDNDAwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEY5NzBDNTg0RDAxRkZGRjAwMDAwMDAwOEY4MzRDMDA4RkEyMDAxQzEyRTMwMDAzM0MwMzBDNDAzQzFFQzAwMDhCCis6MkMwM0YwMDBBRjlFMEZCQ0FDNjIwRkI0OEZBMzAwMTgyNDQyMDAwQzE0NDMwMDAyQUY4MDQ2MEM4RkEyMDAxNEFFNDAwMDNDQUZBMjAwMUM4RTc2MDAzQzhFNzcwMDM0MEQKKzoyQzA0MUMwMDhFNzUwMDMwM0MwM0NGQjAxNkMwMDAwMzAyRDUxMDJCMDQxMTAwM0MwMDAwMDAwMDAwNzAxODI2NEQwMUZGRkYwMDAwMDAwMEFDQTUwMEU0MTA0MDAwMzJENgorOjJDMDQ0ODAwQUY5NzRDMDAxMDAwRkY3RkFDNzYwMDEwMDAwNDE3NDAwNDQwMDAwNzI2RDYwMDMwQUU1NjAwM0MwMEUwRjgwOTAzRTAzODIxQUY4MDQ2MEMxMDAwRkYzOTNFCis6MkMwNDc0MDBBRTQ2MDAzNDhFNTcwMDM4MzI0MkZGQzAwMDAyMTE4MkE3ODIwRkI4QUY5NzBGQjQ4Rjk3MEM1ODAwRTBGODA5MDNFMDM4MjExMkU2MDAwMzNDMDMwQzQwMjkKKzoyQzA0QTAwMDNDMDJDMDAwQUY4MjBGQkM4NjVEMDAyQTg2NUUwMDA4QTc5RDBGQkEyNzlEMEYxODMzREUwMDYwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEZBMjAwMUMyMworOjJDMDRDQzAwNEQwMUZGRkYwMDAwMDAwMDhGOTc0QzAwQUM2MjBGQjQzMDg0RkZGQjhGQTMwMDE4MjQ0MjAwMEMxNDQzMDAwMkFGODA0NjBDOEZBMjAwMTRBRTQwMDAzQ0MyCis6MkMwNEY4MDBBRkEyMDAxQzREMDFGRkZGMDAwMDAwMDBBQ0E1MDBFNDEwMDBGRjEzQUY5NzRDMDAwMEUwRjgwOTAzRTAzODIxMTAwMEZGMEYwMDAwMDAwMDEwNDAwMDVCNTAKKzoyQzA1MjQwMDg2N0UwMDA4Mjc5RDBGMTgzM0RFMDA2MDAzQkVFODIxMDAxRTEwQzIwM0EyRTgyMThGQjcwMDA4OEZBMjAwMEM4RUY2MDAwNDEyRTIwMDI4ODY2MjAwMDhCQworOjJDMDU1MDAwODIwMzAwMTAwMDAyMTc0MDA0NDEwMDE5MjQ2MzAwMDExMDYwMDAxNzNDMDJEMUIwMDA1MDEwMjY0RDAxRkZGRjAwMDAwMDAwOEY5RTRDMDBBQzU2MDAxMDA4Cis6MkMwNTdDMDAyNkQ2RkZGRTg2MDIwMDEwM0MwM0NGQjAzNDYzMjAwMEE2NjIwMDJBOEVFMjAwMDAyNkY3MDAwOEFFNjIwMDM4OEZBMjAwMjBBRkI3MDAwODI0MTdGRkZGNDYKKzoyQzA1QTgwMDAyQzJBODIxNEQwMUZGRkYwMDAwMDAwMEFGOUU0QzAwMDNFMDAwMDhBRTc1MDAzMDhFRTIwMDAwMjZGNzAwMDhBRTYyMDAzODhGQTIwMDIwQUZCNzAwMDhEQgorOjJDMDVENDAwMjQxN0ZGRkZBNjc3MDAyQTAyQzJBODIxM0MwM0NGQjAwM0UwMDAwOEFFNzUwMDMwMDAxRTE4QzIwMDY1MTgyMThDNjMwMEM4OEZBMjAwMTAwMDAwMDAwMDY0Cis6MkMwNjAwMDAwMDYyQjAyMzFFQzAwMDAzOEZBMTAwMDQxMkMwMDAxQjAwMjJCMDIzMkVDMzAwNDExNDYwMDAwMjNDMTUwMDQwMjQxNjAwNDAwMDE2MUU4MDAwMDMxODgyOUUKKzoyQzA2MkMwMDAwNzUxODI1NEQwMUZGRkYwMDAwMDAwMDhGOTU0QzAwMDAxRUI4NDAwMDc3MTgyMUFDNjI0RDAwMDA1NjEwMjExNDQxMDAwMjI3ODMwRDAwOEZBMjAwMDA0RAorOjJDMDY1ODAwMDJFM0I4MjFBRkEyMDAxMDAyRDcxODIxQUZBMzAwMEM0RDAxRkZGRjAwMDAwMDAwOEVGNjAwMDQxMDAwRkZCNUFGOTU0QzAwM0MxNkRFQURBRTc2MDAzQzgyCis6MkMwNjg0MDBBRTYwMDAzODI2RDVGRkZGMDAwMDEwMjEwM0UwMDAwOEFFNzUwMDMwMkM0MzBBQjIxMDYwMDAwNTJDNDMyNEIyMTAwMDAwMDQyNDAyMEFCMjEwMDAwMDAyQUYKKzoyQzA2QjAwMDI0MDIyNEIxMTA2MEZGRkQzMDQzMDFGRjAwMDMxODQwM0MxREEwRDEyN0JERDZDQzAwN0QxODIxOTQ2MzAwMDAwMDAyRUE0MjAwMDMxQzAwMjdCREZGRkJDMQorOjJDMDZEQzAwMDNFMDAwMDgwM0EzMTAwNjI0MDMwRkMwQUY4MzQ1MDAxMDAwMDAwMjAxMjA2MDIxM0MwQ0NGQjAxMUUwMDA1NjAxODk2MDI2ODVGRTAwMDAwMDAwMDAwMDg5Cis6MkMwNzA4MDAxM0MwMDA0NzNDMDJDRkIwMDdDMDAwMkQwMDFFMUY4MDA0NjEwMDM0MDAxRTFGQzAwNDYwMDAwOTNDMDJEM0IwMDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMTAKKzoyQzA3MzQwMDAwMDAwMDAwOEY4NjRDMDA4Rjk5MEZFQzEwMDAwMDBCQUY5OTRDMDAwMUUyNzgyNjAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwOEY4NjRDMDAxQgorOjJDMDc2MDAwQUY5OTRDMDBBREVGMjAxMDNDMDJEM0IwMDFFMjc4MjY4RjgyMEZDMDhGODMwRkM0QUY4MjREMDA4REUyMDAwNEE1RTAwMDAwQUM2MjAwMDA4QzYyMDAwMDk0Cis6MkMwNzhDMDAyNDAyMDM4MEFGODI0RDAwOEY4MjREMDA4RjgyMEYxNDI0NjMwMDA0MTQ2MjAwMDIyNDE5RkZGRjhGODMwRjEwQUNBNTAwRTRBRjgzMEZDNDREMDFGRkZGOTMKKzoyQzA3QjgwMDAwMDAwMDAwOEY4MjRDODAxMDAwMDAxRkFERTIwMDNDMDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMDAwMDAwMDBBNUUwMDAwMDhGODY0QzAwMTU4MDAwMjIzOAorOjJDMDdFNDAwQUY4RjQ1NDAxMDAwMDAxNzAxRTI3ODI2MDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMDAwMDAwMDA4Rjg2NEMwMEFGOTk0QzAwQURFRjIwMTAzQzAyQ0ZCMDk3Cis6MkMwODEwMDAwMUUyNzgyNkE1RTAwMDAwNEQwMUZGRkYwMDAwMDAwMDEwMDAwMDA3OEY5OTRDMDAwMEUwRjgwOTAzRTAzODIxNEQwMUZGRkYwMDAwMDAwMDhGODY0QzAwMTUKKzoyQzA4M0MwMDhGOTkwRkVDMTU4MDAwMEFBRjhGNDUwMDAwMDA3ODIxMTAwMDAwMTRBRjE5MDAxNDAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwMTE4MEZGRjhDMQorOjJDMDg2ODAwOEY4NjRDMDA4NTIyMDAwMDAxMjA3ODIxMDQ0MDAwMEE4RDI5MDAwODEzMEIwMDA0MDAwQzE2MDJBRjE5MDAxNDhENzkwMDE0MDE2MEMwMjFBRjk5NEMwMDg0Cis6MkMwODk0MDBBRDhFNDAxMDMwNDIwMDNGMDFDMjcwMjEwMDA0MTc4MDA0NDAwMThCOEY4MjRBMDAzMDgxODAwMDMwNDIwMDA0MTQ0MEZGOEQ4RDRCMDAwMDEwMjAwMDBDNDcKKzoyQzA4QzAwMDMwODQ3RkZGOEY4MjBDNDgwMTIwRjAyMTI0NDMwMDM0OEM1RDAwMEMyNDQyMDAwNEFGREQwMDBDMTQ2MkZGRkMyN0RFMDAwNEE1MjEwMDAwMTAwMEZGODJFMAorOjJDMDhFQzAwMjUwODAwMDgxMTYwMDA1ODAwMDAwMDAwODU3RDAwMDg4RDYzMDAwQzk1NjIwMDBBOEQ0MTAwMDQwN0ExMDAyNjAwNjIxODIxQTU2MzAwMEEwMDAzMUMwMjZECis6MkMwOTE4MDAwNDExMDFBMDAwMDMxOEMwMDAxRDE2QzAwNDQxMDAxRjI3QTIwMDgwMDAwMjFDQzAwNDYxMDAwRTAwNDBFODIxMjdCRDAwODA5NTYyMDAwMDk1NjMwMDAyOTMKKzoyQzA5NDQwMDM0NDIwMDBDQUQyMjAwMEMyNDAyMDEwMEE1MjIwMDEwOTU2MjAwMkNBNTIzMDAxNEE1MjIwMDEyQTUyMDAwMTYzNDAyODAwMEE1MjIwMDAwQTU3RDAwMDhEMgorOjJDMDk3MDAwMDdBMDAwMEM4RjgyMEM0QzhGODMwQzUwMjQ0MUZGRTgwMDIzRjAyQjEzQzAwMDAyMDAyMDEwMjEyNDQyMDQwMDk0NUUwMDAwMjQ0MUZGRkUxN0MwRkZGOTk0Cis6MkMwOTlDMDBBRDYyMDAxMEE0NEIwMDAwMTQyQjAwMUNBRDQwMDAwMEFENDAwMDA0MjU0QTAwMDgzMTQyMDA3RjE0NDAwMDBFMDAwNDE3ODAwNDQxMDAwMzhGODIwRkUwM0EKKzoyQzA5QzgwMDEwMDAwMDA2MzQ4NDAwMDEzNDg0MDAwMjI0NDIwMDA4MzQ0MjEwMDAzODQyMTAwMEFGODIwRkUwMzU0QTAxMDAzOTRBMDEwMDM5NDIwMDgwQUY4MjBGRTRCOQorOjJDMDlGNDAwMDAxRDE0QzAwNDQxMDAwMzMzQTJFRkZGMTAwMEZGM0NBNTYyMDAwODA3QTAwMDlGMzNBMkZGRkUxMDAwMDAyMUE1NjIwMDA4OEQ2MjAwMjQwMDFEMUNDMDFECis6MkMwQTIwMDAwNDYxMDAwNEFENDIwMDAwMzNBM0VGRkYxMDAwRkYzMUE1NjMwMDA4MDdBMDAwMDUzM0EzRkZGRUE1NjMwMDA4OEQ0QjAwMDAxMDAwRkZBQTAwMDAwMDAwMUUKKzoyQzBBNEMwMDEwMDAwMDhFMjUwODAwMDgyNTRBMDAwODMxNDIwMDdGMTQ0MDAwMEUwMDA0MTc4MDA0NDEwMDAzOEY4MjBGRTAxMDAwMDAwNjM0ODQwMDAxMzQ4NDAwMDI3NAorOjJDMEE3ODAwMjQ0MjAwMDgzNDQyMTAwMDM4NDIxMDAwQUY4MjBGRTAzNTRBMDEwMDM5NEEwMTAwMzk0MjAwODBBRjgyMEZFNDExMDAwMDAzOEQ0QjAwMDAxMDAwRkY5MzAzCis6MkMwQUE0MDAyNTA4RkZGODhGODIwRkQ4OEY4MzBGREM4RjgxMEZENDEwNjIwMDFEMjQ2MjAwMDg0RDAxRkZGRjAwMDAwMDAwOEY4QzRDMDA4NDdGMDAwMDNDMUUwMEQxMUMKKzoyQzBBRDAwMDMzRkQwM0ZGMDAxRDU5ODAwMTdFNTgyMTg1N0UwMDA4MDAxREU5MDAwMDFFMEYwMDAzRTFGODI1MDdFMDAwMDNBRjgyMEZEQzg3OUUwQ0EwMjc4QjBDOTg2RQorOjJDMEFGQzAwMDdDMTAwNDIzQzAyMDg0MDNDMDFGN0IwOEQ2MjAwMjAwMDIzMDgyNkFDMjIwMDAwOEM2MjAwMDQ5NDYzMDAwMjI0NDJGRkY4MDA0MzEwMjExMDAwMDA0RTEyCis6MkMwQjI4MDBBRDYyMDAyMDhGODIwRkQwODc4MzBDQTAxNDIyMDAwNzI3OEIwQzk4NDEwMDAwNTEzQzAxODAwMEFDQTEwMEUwOENBMTAwQzQwMDAwMDAwMDEwMjIwMDRDNEUKKzoyQzBCNTQwMDAwMjJFODIzOEY5RjBGMEMwN0ExMDAwMkFGODEwRkQ0MDNFMkU4MjMyRkEzMDA0MTE0NjAwMDAyM0MxRTAwNDAyNDFEMDA0MDAwMUQxRTgwMDAwMzE4ODI1NgorOjJDMEI4MDAwMDA3RTE4MjU0RDAxRkZGRjAwMDAwMDAwOEY4QzRDMDBBQzYyNENDMDAwNUQxMDIxMTQ1RjAwMDIyNzgzMENDMDhGODIwRjA4MDNBM0YwMjFBRjgyMEZEMDU5Cis6MkMwQkFDMDBBRjlFMEZEODREMDFGRkZGMDAwMDAwMDAxMDAwRkZDMzI0NjIwMDA4OEQ2MzAwMEM4RDdEMDAxMEE1NjMwMDBBMTNBMDAwMDIwMDAzMUMwMkE3QTAwMDAwRjgKKzoyQzBCRDgwMDAwMDMxOEMwMDQxMTAwRUYwMDY4MTgyMTREMDFGRkZGMDAwMDAwMDA4RjgyMEM0NDhGODMwQzQwQUQ2MjAwMTBBNTYzMDAwNEE1NjMwMDA2MTAwMDAwMjFGQworOjJDMEMwNDAwQUY4QzRDMDBBNTdEMDAwMDhDN0QwMDA0OTQ2MzAwMDJBQzVENEM0MDI3QTIwMDA4QUQ2MjAwMTgwM0EzRTgyMTI3QkRGRkY0QUQ3RDAwMUMyN0JEMDAwNEQ0Cis6MkMwQzMwMDBBRDdEMDAyMDM3QzE4MDAxMDAxRTE3QzAwNDQxRkZFMEE1NjEwMDA4NEQwMUZGRkYwMDAwMDAwMDhGODIwQzQ0OEY4MzBDNDBBRDYyMDAxMEE1NjMwMDA0NzgKKzoyQzBDNUMwMEE1NjMwMDA2OEY4MjBGRDg4RjgzMEZEQzREMDFGRkZGMDAwMDAwMDAxNDYyRkY5NTI0NjIwMDA4QUY4QzRDMDA4NzgzMENBMDI3OEIwQzk4MDQ2MUZFOTdGOAorOjJDMEM4ODAwMDAwNDE3MDAwNDQwMDAwNTk1NjIwMDAwMTE3ODAwMDYwMDAwMDAwMEFGMEUwMDEwQTcwRDAwMDQzMDg0RkZGNzk1NkQwMDA0OEQ2RTAwMTAyNUFERkZEMDc1Cis6MkMwQ0I0MDAwNUExRkU4RkFEMjIwMDBDM0MwQ0ZGQjAwMTg5NjAyNjAwMEQxODIyMjVBRDAwMzA4RDdFMDAxODhENjEwMDFDNEQwMUZGRkYwMDAwMDAwMDEwM0UwMDM2QjkKKzoyQzBDRTAwMDhGOUQ0QzAwM0MwMTA4NDBBQzNFNEM0MDI3REUwMDA4MTFBMDAwMTdBRDdFMDAxODAwMERGNjAwMDE5RTYwMjU0RDAxRkZGRjAwMDAwMDAwQUQ4RTQwMTA1RgorOjJDMEQwQzAwOEY4RDBDNDA5NTdFMDAwNjhGOEUwQzQ0MDNDREYwMjFBNTdFMDAwNjAwMENGNzgyMDAwQzBFMDIwM0MxRjAyMTAwMUUwRjgwMDAwQzYyMDAwMDBDNjIwMkMyCis6MkMwRDM4MDAwMTgxNjAyNTMzREUwMDNDMDE5RTYwMjEzNDAxMDAwMTEwMDAwMDA4QTUyMTAwMDA5NTdFMDAwNjREMDFGRkZGMDAwMDAwMDA4RjhEMEM0MDhGOEUwQzQ0Q0QKKzoyQzBENjQwMDAzQ0RGMDIxQTU3RTAwMDY0RDAxRkZGRjAwMDAwMDAwMDFBM0YwMkIxN0MwMDAwODAwMDNGNjAwMDFBMzY4MjMwMTlFNjAyNTAxODk2MDI2NEQwMUZGRjdDRgorOjJDMEQ5MDAwMDAwMDAwMDAxMDAwRkU1OEFGOUQ0QzAwOEQ3RTAwMTg4RDYxMDAxQzAwMDAwMDAwMTQzRUZGQ0UwMDZEMTgyMzREMDFGRkZGMDAwMDAwMDAyQzYxMDAwODY0Cis6MkMwREJDMDAxMDIwMDAxNzk1NjEwMDA4MDAwMDAwMDAwMDAxRkY4MDA3RTAwMDBCMzQyMTAwMDIwMDZEMTgyMTAwMDMxRTAwMDE4MzYwMjUwMTg5NjAyNjI0MEQwMDJDQzAKKzoyQzBERTgwMEE1NjEwMDA4NEQwMUZGRkYwMDAwMDAwMDEwMDBGRTQwQUY5RDRDMDAzQzFGMEM0MEFGRkU0RkE4MzAyMUZGRkRBNTYxMDAwODNDMENEM0NGMzU4Q0UwMDA2RQorOjJDMEUxNDAwMTAwMDAwMDgzNDAzMDAwMjNDMUYwQzQwQUZGRTRGQTgxMUEwRkZGOTAwMERGNjAwMzQwMzAwMDMwMTlFNjAyNTAxODk2MDI2MzQ4NDAwMDgzNDQyMDAwMkM0Cis6MkMwRTQwMDBBRDIyMDAwQzk1NjIwMDA2QTUyMzAwMDBBRDIyMDAzODREMDFGRkZGMDAwMDAwMDA4NTdFMDAwODhGODIwRkE4OTc4MzBGQUNBRDIyMDAwNDMzQzE3RkZGQTYKKzoyQzBFNkMwMEFENjAwMDEwQTU2MTAwMDgxMDYwRkUyMEFGOUQ0QzAwQTU3RTAwMDgwMDAzMTkwMDMwNjMzRkYwQTU2MzAwMDA4RjgyMEZCMDNDMDMwODQwQUM2MjRDNDAwNworOjJDMEU5ODAwMjQ0MzAwMDhBRDYzMDAxODk3ODMwRkFFMjQ0MkZGRjQwMDYyMTgyMUFENjMwMDFDNEQwMUZGRkYwMDAwMDAwMDhGOEQwQzQwOEY4MzBDNDRBNTZEMDAwNDc0Cis6MkMwRUM0MDBBNTZEMDAwNkFENjMwMDEwMTAwMEZFMEFBRjlENEMwMDhGODIwRkUwMDAwNDBGQzA4QzQzMDAwMDA0MjEwMDFCOEY5RjBGRTQ4QzVEMDAwNEFDNDAwMDA0M0EKKzoyQzBFRjAwMDEwNjAwMDBFQUM0MDAwMDAwMDAwMDAwMDk0NjIwMDI4MDAwMDAwMDAwMDVGMTAyMDhDNDEwMDA0MDAwMDAwMDAxMDIwMDAwM0FDNDMwMDA0MTAwMDAwMDJCNgorOjJDMEYxQzAwQUMyMzAwMjRBQzQzMDAwMDE3QTNGRkY0OEM2MzAwMjQ4RjgyMEZFMDNCRkYwMDgwMjQ0MjAwMDgzNDQyMTAwMDM4NDIxMDAwQUY4MjBGRTBBRjlGMEZFNDZFCis6MkMwRjQ4MDAxMDAwRkU1NzMwODRGRkZFMTA2MDAwMTAwMDAwMDAwMDk0N0QwMDI4MDAwMDAwMDAwM0JGRTgyMDhGQTEwMDA0QUZBMzAwMDQxMDIwMDAwMzhDNUUwMDA0MzkKKzoyQzBGNzQwMDEwMDAwMDAyQUMyMzAwMjRBRkEzMDAwMDhDNjEwMDI0MTdDM0ZFNDhBQzQxMDAwMEFDNDAwMDA0QUM0MDAwMDAxMDAwRkU0NDMwODRGRkZEMkM2MjAxMDA2RgorOjJDMEZBMDAwMTQ0MDAwMEUwMDZBMTAyMTMxNDMwMDdGMDE0MzE4MjMwMDQzMTgyMzMwNjIwMDdGQTU2MjAwMjgwMDYyMTgyMzAwMDMxOTAyOEY4MjBGRTAyNDYzRkZGOEJGCis6MkMwRkNDMDAwMDYyMTgyMTM0NjMxMDAwMTAwMDAwMDMzODYzMTAwMDM0NDMwMTAwMzg2MzAxMDA4QzYyMDAwNDAwMDAwMDAwMTA0MDAwMDNBQzZCMDAwNDAzRTAwMDA4OUEKKzowQzBGRjgwMEFDNEIwMDI0MDNFMDAwMDhBQzZCMDAwMEQwCis6MDIwMDAwMDRBMEQwOEEKKzoyQ0Q1MDAwMDAwMDAwMDAyQTBEMEUwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDYwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMkEwRDBENjQ4MDAwMDAwMDBGNworOjJDRDUyQzAwMDAwMDA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0MzEzMjAwMjQzMTMyMDAyNDMxMzIwMDAwMDAwMDAwMjQ0RDQzNTIyNDIwNDM2RkIyCis6MkNENTU4MDA3MDc5NzI2OTY3Njg3NDIwMjg2MzI5MjA0RDYxNjQ2NzY1MjA0RTY1NzQ3NzZGNzI2QjczMjA0Qzc0NjQyMDMxMzkzOTM1MkUyMDQxNkM2QzIwNzI2OTY3NEMKKzoyQ0Q1ODQwMDY4NzQ3MzIwNzI2NTczNjU3Mjc2NjU2NDJFMDA0RDYxNjQ2NzY1MjA0MTZENjI2MTczNzM2MTY0NkY3MjIwNzYzMTJFMzAzMTAwMDAwMDAwMDAwMDAwMDEyQworOjJDRDVCMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MkNENURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoyQ0Q2MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjBDRDYzNDAwMDAwMDAwMDBGRkYwNDAwMDAwMDAwMDAwQkIKKzoyQ0YwMDAwMDBDMzQzRTJEMDAwMDAwMDAzQzFDQTBEMTI3OUM1NjM4M0MxREEwRDEyN0JEREZEMDNDMDhBMEQxMjUwOERGRDBBRjg3ODAwODBDMzQzQzEzMDAwMDAwMDBFNAorOjJDRjAyQzAwMjQwNDAwMDMwMDk3MDAwRDNDMDhCRkMwMzUwODAyMzA4RDA4MDAwMDAwMDAwMDAwMDEwMDAwMDgwMDAwMDAwMDI3QkRGRkQwQUZCRjAwMUNBRkIxMDAxODY0Cis6MkNGMDU4MDBBRkIwMDAxNDNDMTFGRkYwMDAwMDgwMjEzQzE4MDA1NjM3MTgzQjc5MjYxOTAyMDAxNzIwMDAwMjAzMTkwMDFBMDAwNzAwMEQyNDAxRkZGRjE3MjEwMDA1NkIKKzoyQ0YwODQwMDAwMDAwMDAwM0MwMTgwMDAxNzAxMDAwMjAwMDAwMDAwMDAwNjAwMEQwMDAwMTAxMjAwMTAxODQwM0MwNUEwRDEyNEE1RDZDQzAwQTMyMDIxQTQ4MjAwMDBDNQorOjJDRjBCMDAwMjYxMDAwMDEyQTAxMDIwMDE0MjBGRkVBMDAwMDAwMDAzQzA2QTBEMTI0QzZGOUU0M0MwN0EwRDEyNEU3RDY0OEFDRTYwMDAwM0MwOEEwRDEyNTA4RkIxNEQ5Cis6MkNGMERDMDBBQ0U4MDAwNDNDMDlBMEQxMjUyOUZDOTRBQ0U5MDAwODNDMEFBMEQxMjU0QUZDRDRBQ0VBMDAwQzNDMEJBMEQxMjU2QkZCQThBQ0VCMDAxMDNDMENBMEQxNUMKKzoyQ0YxMDgwMDI1OENGQkM0QUNFQzAwMTQzQzBEQTBEMTI1QURGQkUwQUNFRDAwMTgzQzBFQTBEMTI1Q0VGQkZDQUNFRTAwMUMzQzBGQTBEMTI1RUZGQzE4QUNFRjAwMjBBRAorOjJDRjEzNDAwM0MxOEEwRDEyNzE4RkMzNEFDRjgwMDI0M0MxOUEwRDEyNzM5RkM1MEFDRjkwMDI4M0MwMkEwRDEyNDQyRkM2MEFDRTIwMDJDM0MwM0EwRDEyNDYzRkM3MEE2Cis6MkNGMTYwMDBBQ0UzMDAzMDNDMDRBMEQxMjQ4NEZDODBBQ0U0MDAzNDNDMDVBMEQxMjRBNUZDQjRBQ0U1MDAzODNDMDZBMEQxMjRDNkZFMDhBQ0U2MDAzQzNDMDhBMEQxMTEKKzoyQ0YxOEMwMDI1MDhGRTkwQUNFODAwNDAzQzA5QTBEMTI1MjlGQTM4QUNFOTAwNDQzQzBBQTBEMTI1NEFGQTc0QUNFQTAwNDgyNDEwMDAxMzNDMEJBMEQxMjU2QkY5RDhFNworOjJDRjFCODAwMDAxMDYwODAzQzBFQTBEMTI1Q0VENjQ4MDFDQzY4MjFBREFCMDAwMDI2MTAwMDAxMkEwMTAwMjAxNDIwRkZGNjAwMDAwMDAwOEY5ODgwMDAwMDAwMDAwMDZGCis6MkNGMUU0MDBBRjAwMDEwMDhGODI4MDAwMjQxOTAzRkZBNDU5MDIwMjAwMDA4MDIxOEY4NjgwMDAyNDAzMEZGRjAwMTAyMDQwMjRDNzAzODAwMEU0MjgyMUE0QTMwMDAwQzEKKzoyQ0YyMTAwMDI2MTAwMDAxMkEwMTAwMDgxNDIwRkZGNzAwMDAwMDAwOEY4OTgwMDAzNDA4OUM0MEFEMjgwM0EwOEY4QjgwMDAzQzBBMDBGRjM1NEFGRkZGQUQ2QTAzQTRGQworOjJDRjIzQzAwMDAwMDgwMjE4RjhGODAwMDI0MEMwRkZGMDAxMDY4NDAyNUY4MDMwMDAzMEQ3MDIxQTVDQzAwMDAyNjEwMDAwMTJBMDEwMDA4MTQyMEZGRjcwMDAwMDAwMEFCCis6MkNGMjY4MDA4RjgyODAwMDM0MTk5QzQwQUM1OTAzMjA4Rjg0ODAwMDNDMDMwMEZGMzQ2M0ZGRkZBQzgzMDMyNDhGODY4MDAwMjQwNTAyRkZBNEM1MDIwMjNDMDhBMEMwMEMKKzoyQ0YyOTQwMDM1MDgwMTgwM0MwOUEwRDEyNTI5RDVCODI1MEEwMDI4OEQwQjAwMDA4RDBDMDAwNEFEMkIwMDAwQUQyQzAwMDQyNTA4MDAwODE1MEFGRkZBMjUyOTAwMDgxQgorOjJDRjJDMDAwNDAwMjYwMDAwMDAwMDAwMEFGQTIwMDI4MjQwMzAwMjIzQzA0QTBFMDM0ODQwMDE0QUM4MzAwMDA4RkE1MDAyODAwMDAwMDAwMzRBNjEwMDEwMEMwMTAyMUNCCis6MkNGMkVDMDBBRkE2MDAyODNDMDdGRkJGMzRFN0ZGRkYwMEM3MzgyNDAwRTAxMDIxQUZBNzAwMjg0MDg3NjAwMDAwMDAwMDAwM0MwODAwMDIzNTA4RDg5MDNDMDlGRkZFNTkKKzoyQ0YzMTgwMDM1MjkwMTMwQUQyODAwMDA4RkFBMDAyODNDMEJGMDAwMDE0QjU4MjUwMTYwMTAyMUFGQUIwMDI4MDE2MDYwMjE0MDhDNjAwMDAwMDAwMDAwMDAwMDgwMjE0MQorOjJDRjM0NDAwMDAxMDcwODAwMjJFNzgyMUFERTAwMDAwMjYxMDAwMDEyQTAxMDQwMDE0MjBGRkZBMDAwMDAwMDAyNDE4MDAwMTNDMTlBMEU4QUYzODAwMDAyNDAyMDAxMTdDCis6MkNGMzcwMDAzQzAzQTBGMDM0NjMwMDE3QTA2MjAwMDAzQzA0RjBFQjM0ODQwMDcwM0MwNUZGRjAzNEE1NEEwMEFDQTQwMDAwM0MwNkZDRUIzNEM2MDA3MEFDQTYwMDAwMjcKKzoyQ0YzOUMwMDNDMDdGRkYwMzRFNzQ3MDBBQ0UwMDAwMDAwMDA4MDIxM0MwOEZGRjAzNTA4MEZDMDNDMDlGRkYwMzUyOTQ1MDBBRDI4MDAwMDI2MTAwMDAxMkEwMTAwMDQzMworOjJDRjNDODAwMTQyMEZGRjgwMDAwMDAwMDAwMDA4MDIxM0MwQURFQUQwMDEwNTk4MDNDMDEwMEQxMDAyQjA4MjFBQzJBMDAzQzNDMDEwMEQxMDAyQjA4MjFBQzIwMDAzMEMxCis6MkNGM0Y0MDAzQzAxMDBEMTAwMkIwODIxQUMyMDAwMzgyNDBERkZGRjNDMDEwMEQxMDAyQjA4MjFBQzJEMDAxNDAwMTA3MTAwM0MwMTAwRDEwMDJCMDgyMUE0MkUwMDAwNTQKKzoyQ0Y0MjAwMDNDMDEwMEQxMDAyQjA4MjFBNDIwMDAwNDI0MTgwMDIwM0MwMTAwRDEwMDJCMDgyMUE0MzgwMDA4M0MwMTAwRDEwMDJCMDgyMUFDMjAwMDEwMjYxMDAwMDE3RgorOjJDRjQ0QzAwMkEwMTA0MDAxNDIwRkZFMDAwMDAwMDAwMDAwMDgwMjEwMDEwMThDMDNDMDVBMEQxMjRBNUUwMDAwMEEzMjAyMUFDODAwMDAwM0MwN0EwRDEyNEU3RTAwMEJGCis6MkNGNDc4MDAyNEU4MDAwNDAxMDMzMDIxQUNDMDAwMDAyNjEwMDAwMTJBMDEwMDA5MTQyMEZGRjMwMDAwMDAwMDI0MDkwMzgwM0MwQUZGRjAzNTRBNEQwMEFENDkwMDAwNUYKKzoyQ0Y0QTQwMDNDMENBMDgwMzU4QzAwOUNBRDgwMDAwMDNDMERBMDgwMzVBRDAwQTBBREEwMDAwMDNDMEUxMTAwM0MwRkEwODAzNUVGMDBBOEFERUUwMDAwNDEwMTAwMDNBMAorOjJDRjREMDAwMDAwMDAwMDA0MTAwRkZGRjAwMDAwMDAwM0MxOEEwODAzNzE4MDBFMDhGMTkwMDAwM0MwMUEwRDFBQzM5RDZDODBDMzQzRDQzMDMyMDIwMjE4RkIwMDAxNERFCis6MkNGNEZDMDA4RkJGMDAxQzhGQjEwMDE4MDNFMDAwMDgyN0JEMDAzMDAwODBCODIxM0MxQ0ZGRjBBMzgwMEM4NEEzODAwQzg4OEY5MDQ0MDAwMDAwMjAyMUFGODAwQ0JDN0UKKzoyQ0Y1MjgwMDI0MDIwMEE4Mjc4MzBGMDAyQzVEMDA0MDE3QTAwMDBDM0MxREZGQjAwM0EzRTgyNkFGQjc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQwMUZGRkZGNgorOjJDRjU1NDAwMDAwMDAwMDAyNDQyRkZDMDI0NjMwMDQwMTAwMEZGRjMyNkY3MDA0MDEwNDAwMDBEMDAwMDAwMDAwMDAyRUUwMDNDMDEwMDQwMDNBMUU4MjUzQzAxRkZGMDk5Cis6MkNGNTgwMDAwM0ExRTgyNjAzQTNFODI2QUZCNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RDAxRkZGRjAwMDAwMDAwM0MwNUEwODA4RjgyMEYwODAwMDAwMDAwN0UKKzoyQ0Y1QUMwMEFGODIwRkQ0QUY4MjBGRDBBQ0EyMDBDNDhGODIwRjEwMDAwMDAwMDAwMDAyMUQ4MkFGODMwRkMwMDAwMzFEODAwMDQzMTAyMzNDMDFBMDgwMDA0MTEwMjU0MgorOjJDRjVEODAwQUY4MjBGQzRBRjgyMEYxMDhGODIwRjE0MDAwMDAwMDAwMDQzMTAyMzNDMDFBMDgwMDA0MTEwMjVBRjgyMEYxNDI0MDMwMDAzMjc5RDBGMTgyNEJFMDBDODIzCis6MkNGNjA0MDAyNzgxMEQwMDhGQTIwMDAwMDAwMDAwMDBBRkEyMDAxMEFGQzIwMDAwQUZBMTAwMDhBRkExMDAwQzhGQTIwMDE0MDAwMDAwMDBBRkEyMDAxQzI3QkQwMDI0QjQKKzoyQ0Y2MzAwMDI3REUwMDA0MjQyMTAwNDAxNDYwRkZGMzI0NjNGRkZGOEY4MjBGMDAwMDAwMDAwMEFGODIwRkM4QUNBMjAwQzAyNzgyMDgwMDI0MDMwMDBGQUM0MDAwMDAyQworOjJDRjY1QzAwMjQ0MjAwMDQxNDYwRkZGRDI0NjNGRkZGOEY4MzBGQzAwMDAwMDAwMEFGODM0RDAwOEY4MzREMDA4RjgzMEYxNDhGODIwRjEwMjQ2M0ZGRkNBQzQwMDAwMDkxCis6MkNGNjg4MDAxNDQzRkZGRTI0NDIwMDA0MjQwMjAzODBBRjgyNEQwMDI3OUQwRjE4MjdBMTAwOTA4RkEyMDAxNDhGQTMwMDE4MDAwMDAwMDAwMDYyMTgyMzJDN0YwMDQwMTcKKzoyQ0Y2QjQwMDE3RTAwMDA5M0MxRjAwNDAzN0ZGMDgwMDAzQTBGMDIxNEQwMUZGRkYwMDAwMDAwMEFGRTIwMDAwMjQ0MjAwNDAxMDAwRkZGNjI0NjNGRkMwMTA2MDAwMDY1OQorOjJDRjZFMDAwMzdGRjA4MDAwMDAzMUUwMDAzRTNGODI1NEQwMUZGRkYwMDAwMDAwMEFGRTIwMDAwMjdCRDAwMjQxN0ExRkZFODAwMDAwMDAwMDAwMDM4MjE4RkMyMDAxNDVBCis6MkNGNzBDMDA4RkMzMDAxODAwMDAwMDAwMDA2MjE4MjMyQzdGMDA0MDEzRTAwMDA0M0MxRjAwNDAwMDAzMEUwMDEwMDAwMDAyMDNFMUY4MjUyNDAzMDA0MDM3RkYwODAwODQKKzoyQ0Y3MzgwMDI0MUUwM0U3MDAwMDA4MjE0RDAxRkZGRjAwMDAwMDAwQUZFMjAwMDAwMDIzMDgyMTQ5MDBGRkZCMDAwMDAwMDA4NzgwNDAwMjE3QzBGRkY4MjdERUZGRkZDQQorOjJDRjc2NDAwMTRFMDAwMDQzNEU3NDAwMDAzRTdGODI1MTAwMEZGRjBBRjgxMEM2MEFGODEwQzVDM0MwMUEwRDE4QzIyRDZDODAwMDAwMDAwM0MwMUEwODBBQzIyMDBFMEU3Cis6MkNGNzkwMDAzQzAxQTA4MDhDMjAwMEUwQUY4MDBGQjRBNzgwMEZCOEE3ODAwRkJBQTc4MDBGQkNBNzgwMEZCRTI3ODIwQ0MwQUY4MjBGRENBRjgyMEZEODNDMDJBMEQxNTYKKzoyQ0Y3QkMwMDI0NDJEQUNDQUY4MjBDNENBRjgyMEM1MDI0NDIwNDAwQUY4MjBDNTQyNDAyMDAxRTNDMDNGRkYwMjQ3RDAwNDBBQzdEMDAwODAzQTAxODIxMTQ0MEZGRkM1NQorOjJDRjdFODAwMjQ0MkZGRkYzQzFERkZGMEFDN0QwMDA4M0MwMkM3MDQzNDQyREQ3QkFGODIwQzU4M0MwNzAwMDAyNEU3MDE1ODA4MzQzRkE5MDAwMDAwMDA4RTYyMDAzOEI5Cis6MkNGODE0MDAwMDAwMDAwMDE0NDAwMDA1OEY4MzBDOTQxMkEwMDAyMjI0NjMwMDAxMTAwMDAwMjBBRjgzMEM5NEFGODIwRkI0MzI2MkZGQzAwMDAyMTE4Mjg2NjMwMDJBNzAKKzoyQ0Y4NDAwMEE3ODIwRkI4M0MwMkEwMDBBRjgyMEZCQ0E3ODMwRkJBODY3RTAwMDgyNzlEMEYxODMzREUwMDYwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEZBMjAwMUNDNgorOjJDRjg2QzAwM0MwMzBDNDA0RDAxRkZGRjAwMDAwMDAwOEY5NzRDMDBBQzYyMEZCNDhGQTMwMDE4MjQ0MjAwMEMxNDQzMDAwMzAwMDAwMDAwOEZBMjAwMTQwMDAwMDAwMEZCCis6MkNGODk4MDBBRkEyMDAxQzREMDFGRkZGMDAwMDAwMDBBQ0E1MDBFNEFGOTc0QzAwMDNFMDAwMDhBRTYwMDAzQzNDMERBMEQxMjVBREQ1MDAxMUEwMDAyMTAwMDAwMDAwNUMKKzoyQ0Y4QzQwMDhEQTkwMDAwMDAwMDAwMDAxMTIwMDAxRDAwMDAwMDAwOERBQTAwMDQ4REFCMDAwODhEQUMwMDBDMDAwOTQ3NDAwNTAxMDAwNDAwMDAwMDAwM0MwOEEwRDE4NQorOjJDRjhGMDAwMjUwOEQ2MzgwMTQ4NTAyMTAwMDk0NzgwMDUwMTAwMDcwMDAwMDAwMDExODAwMDBEMDAwMDAwMDBBRDQwMDAwMDI1NEEwMDA0MTAwMEZGRkIyNThDRkZGQzY2Cis6MkNGOTFDMDAxMTgwMDAwNzAwMDAwMDAwOEQ2RTAwMDAyNTZCMDAwNEFENEUwMDAwMjU0QTAwMDQxMDAwRkZGOTI1OENGRkZDMTAwMEZGRTEyNUFEMDAxMDAzRTAwMDA4QjkKKzoyQ0Y5NDgwMDAwMDAwMDAwM0MwMjEwNDBBQzU3NEZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQwMUZGRkYwMDAwMDAwMDhGODIwRkZDMDAwMDAwMDA1QgorOjJDRjk3NDAwMzA0MjAwMUYwMDAyMTA4MDNDMTdBMEQxMDJFMkI4MjEyNkY3RDY0ODhFRjcwMDAwMDAwMDAwMDAwMkUwMDAwODAwMDAwMDAwMjQwMkZGRkZBRjgyMEZGQ0I5Cis6MkNGOUEwMDA4Rjk3MEZDODNDMDIxMDQwQUM1NzBGRjA4RjgyMEYwNDI2RjcwMDEwMTZFMjAwMDRBRjk3MEZDODhGOTcwRjAwMDAwMDAwMDBBRjk3MEZDODREMDFGRkZGQTYKKzoyQ0Y5Q0MwMDAwMDAwMDAwMDNFMDAwMDgwMDAwMDAwMDNDMUZBMEQxMjdGRkYwMkMxMDAwRkZFRDhGOTcwRkYwM0MwMjAwRDEzMkY3MDNGRjAwMTdCOTgwMDJFMkI4MjVBQQorOjJDRjlGODAwQUVFMDAwM0MyNDAyRkZGRkFFRTIwMDMwQUVFMjAwMTQ5NzgzMEZGNDk3ODIwRkY4M0MxRDAwMDAyN0JEMDY5OEE2RTMwMDA4QTZFMjAwMDJBRjlGMEZFODE5Cis6MkNGQTI0MDAwM0EwRjgwOUE2RTIwMDJDOEY5RjBGRTgxMDAwRkZEOUFFRTIwMDBDOEY5NzBGRjAzQzAyMDBEMTMyRjcwM0ZGMDAxN0I5ODAwMkUyQjgyNTk3ODIwRkY0MjkKKzoyQ0ZBNTAwMDNDMDMwMDAwMjQ2MzA2OThBNkUyMDAwMkFGOUYwRkU4MDA2MEY4MDlBNkUyMDAyQzhGOUYwRkU4MTAwMEZGQ0FBRUUyMDAwQzhGOTcwRkYwM0MwMjAwRDE3NAorOjJDRkE3QzAwMzJGNzAzRkYwMDE3Qjk4MDAyRTJCODI1OTc4MjBGRjQwMDAwMDAwMDk2RTMwMDA4QTZFMjAwMDgwMDQzMTAyNjMwNDIwMDYwMTA0MEZGQkQ4RUUyMDAzQ0YyCis6MkNGQUE4MDBBRUUwMDAzQzEwNDBGRkJBM0MwMjg4MDBBRjgyMEZCQzhFRTIwMDM4QUVFMDAwMzgzMDYzMDA2MDI3OUQwRjE4MDNBM0U4MjEwMDAzMThDMjAzQTNFODIxMTYKKzoyQ0ZBRDQwMDhGQTMwMDFDMTA0MEZGQUZBRjgyMEZCNDNDMDIwQzQwQUM0MzBGQjQ4RkEyMDAxODI0NjMwMDBDMTQ0MzAwMDMwMDAwMDAwMDhGQTMwMDE0MDAwMDAwMDAwRQorOjJDRkIwMDAwQUZBMzAwMUM0RDAxRkZGRjAwMDAwMDAwMTAwMEZGQTIwMDAwMDAwMDhGOTcwRkYwM0MwMjAwRDFBNzk3MEZCODAwMTdCOTgwMzJGN0ZGQzAwMkUyQjgyMTQwCis6MkNGQjJDMDBBRUUwMDAzMDNDMDJERUFEOEVFMzAwM0NBRUUyMDAzQzhFRTIwMDM4MTA2MEZGOTVBRUUwMDAzODNDMDM4ODAwQUY4MzBGQkM4NkUzMDAwODI3OTcwRjE4MjEKKzoyQ0ZCNTgwMDMwNjMwMDYwMDJFM0I4MjEwMDAzMThDMjAyRTNCODIxOEVFMzAwMUMxMDQwRkY4QUFGODIwRkI0M0MwMjBDNDBBQzQzMEZCNDhFRTIwMDE4MjQ2MzAwMEM4NAorOjJDRkI4NDAwMTQ0MzAwMDMwMDAwMDAwMDhFRTMwMDE0MDAwMDAwMDBBRUUzMDAxQzREMDFGRkZGMDAwMDAwMDAxMDAwRkY3RDAwMDAwMDAwOEY4MjBGRjA4Rjk3MEZGNEI4Cis6MkNGQkIwMDA5MDQxMDAwMDAwMDAwMDAwMDAzNzA4MjUxMDAwRkY3NkEwNDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDk0NDEwMDAwMDAwMDAwMDAwMDM3MDgyNTEwMDBGRjZGOUUKKzoyQ0ZCREMwMEE0NDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDhDNDEwMDAwMDAwMDAwMDAwMDM3MDgyNTEwMDBGRjY4QUM0MTAwMDA4RjgyMEZGMDhGOTcwRkY0OTA0MTAwMDA0MAorOjJDRkMwODAwMDJFMEI4MjcwMDM3MDgyNDEwMDBGRjYxQTA0MTAwMDA4RjgyMEZGMDhGOTcwRkY0OTQ0MTAwMDAwMkUwQjgyNzAwMzcwODI0MTAwMEZGNUFBNDQxMDAwMERCCis6MkNGQzM0MDA4RjgyMEZGMDhGOTcwRkY0OEM0MTAwMDAwMkUwQjgyNzAwMzcwODI0MTAwMEZGNTNBQzQxMDAwMDhGODIwRkYwOEY5NzBGRjQxMDAwRkY0RkEwNTcwMDAwOUQKKzoyQ0ZDNjAwMDhGODIwRkYwOEY5NzBGRjQxMDAwRkY0QkE0NTcwMDAwOEY4MjBGRjA4Rjk3MEZGNDEwMDBGRjQ3QUM1NzAwMDA4RjgyMEZGMDAwMDAwMDAwOEM0MjAwMDA3QQorOjJDRkM4QzAwMTAwMEZGNDJBRjgyMEZGNDNDMDFBMEMyOEMyMkMwMDAwMDAwMDAwMEFGODIwRkYwM0MwMUEwQzI4QzIyQzAwNDEwMDBGRjNBQUY4MjBGRjQzQzAxQTBEMTRFCis6MkNGQ0I4MDA4QzIyRDVBQzAwMDAwMDAwQUY4MjBGRjAzQzAxQTBEMThDMjJENUIwMTAwMEZGMzJBRjgyMEZGNDNDMDJBMEYwQUM0MDAwMDA5MDU3MDE1MzAwMDAwMDAwNzYKKzoyQ0ZDRTQwMEEzOTcwQzgwOTA1NzAxNTcwMDAwMDAwMEEzOTcwQzgxOTA1NzAxNUIwMDAwMDAwMEEzOTcwQzg3OTA1NzAxNUYwMDAwMDAwMEEzOTcwQzg2OTA1NzAxNjNCQQorOjJDRkQxMDAwMDAwMDAwMDAzMkY3MDAwN0EzOTcwQzg1OTA1NzAxOTMwMDAwMDAwMEEzOTcwQzhCOTA1NzAxOTcwMDAwMDAwMEEzOTcwQzhBOTA1NzAxOUIwMDAwMDAwMEFFCis6MkNGRDNDMDAzMkY3MDAwN0EzOTcwQzg5OTA1NzAwMEIwMDAwMDAwMDMyRjcwMEUwMDAxNzA5NDI5MDU3MDA0NzAwMDAwMDAwMzJGNzAwNzgwMDM3MDgyNTkwNTcwMDY3QkUKKzoyQ0ZENjgwMDAwMDAwMDAwMzJGNzAwMEYwMDE3QjlDMDAwMzcwODI1OTA1NzAwQzcwMDAwMDAwMDMyRjcwMDJGMDAxN0JBQzAwMDM3MDgyNTkwNTcwMTQ3MDAwMDAwMDAxOQorOjJDRkQ5NDAwMzJGNzAwMUUwMDE3QkMwMDAwMzcwODI1OTA1NzAxODMwMDAwMDAwMDMyRjcwMDYwMDAxN0JDMDAwMDM3MDgyNUFGODEwQzhDM0MwMjE4NDA4Rjk3MEZDODNGCis6MkNGREMwMDAwMDAwMDAwMDhGOTcwRkYwMDAwMDAwMDBBQzU3MEM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDREMDFGRkZGMTcKKzoyQ0ZERUMwMDAwMDAwMDAwM0MwMkEwRDEyNDQyRjk5OEFGODAwQzkwQUY4MDBDOTQwMDQwMDAwODAwMDAwMDAwODc5NzBGRjAzQzEzMDBEMUE2NzcwMDA4M0MwMzAwMDBDMgorOjJDRkUxODAwMjQ2MzA1MjBBRjlGMEZFODAwNjBGODA5MjQwMjAwMDE4RjlGMEZFODEwNDBGRURBOTc5NzBGRjAyNzgzMEYxODAwNzcxODIxMDAxN0I4QzIwMkUzQjgyMUZCCis6MkNGRTQ0MDAzQzAyODgwMEFGODIwRkJDOEU2MjAwMzhBNzgwMEZCOEFGODIwRkI0OEVFMzAwMUMzQzAyMEM0MEFDNDMwRkI0OEVFMjAwMTgyNDYzMDAwQzE0NDMwMDA0ODcKKzoyQ0ZFNzAwMEFFRTMwMDFDOEVFMzAwMTQwMDAwMDAwMEFFRTMwMDFDNEQwMUZGRkYwMDAwMDAwMDEwMDBGRkRGMDAwMDAwMDA4RjgyMEM1QzhGODMwQzYwQUY4MjBGRjAyNgorOjJDRkU5QzAwMTAwMEZFQkVBRjgzMEZGNDIzODkwODAwMDEyMDE4MjEyNDAyMDAwRjIwNkMwMDQwQUM2QzAwMDgwMTgwMTgyMTE0NDBGRkZDMjA0MkZGRkZBQzY5MDAwODg0Cis6MkNGRUM4MDAyNzhCMEM5OEE1NjAwMDAwMjQwM0ZGRkZBRDYzMDAxNDM0MDIwMDAxMzQ0MjAwMjBBNTYyMDAwODI3OEEwRTAwMDE0MDEwMjEwMDAwMTgyMUFDNDAwMDAwMzgKKzoyQ0ZFRjQwMDI0NjMwMDA0MkM2QzAxMDAxNTgwRkZGQzI0NDIwMDA0M0MwMkEwRDEyNDQyRTAwMEFGODIwRkUwM0MxODAwRDEwMTIwNjAyMTAwMDA2ODIxMDAwMDc4MjFDNgorOjI4RkYyMDAwMDAwMDU4MjEwMDAwNDAyMTQwMDI2MDAwMDAwMDAwMDAzNDQyNDAwMTQwODI2MDAwM0MwMjAwMDAyNDQyMDZGODAwNDAwMDA4MDAwMDAwMDA3QQorOjAwMDAwMDAxRkYKKy8qCisgIE1hZGdlIEFtYmFzc2Fkb3IgQVRNIEFkYXB0ZXIgbWljcm9jb2RlLgorICBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OSAgTWFkZ2UgTmV0d29ya3MgTHRkLgorCisgIFRoaXMgbWljcm9jb2RlIGRhdGEgaXMgcGxhY2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwKKyAgUHVibGljIExpY2Vuc2UuIFRoZSBHUEwgaXMgY29udGFpbmVkIGluIC91c3IvZG9jL2NvcHlyaWdodC9HUEwgb24gYQorICBEZWJpYW4gc3lzdGVtIGFuZCBpbiB0aGUgZmlsZSBDT1BZSU5HIGluIHRoZSBMaW51eCBrZXJuZWwgc291cmNlLgorCisgIFdlIHdvdWxkIHByZWZlciB5b3Ugbm90IHRvIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgd2l0aG91dAorICBjb25zdWx0YXRpb24gYW5kIG5vdCB0byBhc2sgZm9yIGFzc2VtYmx5L290aGVyIG1pY3JvY29kZSBzb3VyY2UuCisqLworCitGaXJzdCByZWNvcmQgaXMgc3RhcnQgYWRkcmVzcyBpbiBhIF9fYmUzMi4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2NwaWEyL3N0djA2NzJfdnA0LmJpbi5paGV4IGIvZmlybXdhcmUvY3BpYTIvc3R2MDY3Ml92cDQuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQwYjljZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2NwaWEyL3N0djA2NzJfdnA0LmJpbi5paGV4CkBAIC0wLDAgKzEsNzMgQEAKKzoxMDAwMDAwMDAxQkNFMzAyRTMwM0UzMDRFMzA1RTMwNkUzMDc5MzQ0RUYKKzoxMDAwMTAwMDU2RDQ5MzRFNTY1MTkzNEU1MUQ2OTM0RTRGNTQ5MzRFQzEKKzoxMDAwMjAwMDkyNEY5MkE0OTMwNTkyRjQ5MzFCOTI5MjkxRTY5MjM2OEEKKzoxMDAwMzAwMDkyNzQ5MjRBOTI4QzkyOEVDOEQwMEI0MjAyQTBDQTkyQkQKKzoxMDAwNDAwMDA5MDJDOTEwMEEwQTBBODFFM0I4RTNCMEUzQThFM0EwRjEKKzoxMDAwNTAwMEUzOThFMzkwRTEwMENGRDcwQTEyQ0M5NTA4QjIwQTE4RDIKKzoxMDAwNjAwMEUxMDAwMUVFMEMwODRBMTJDODE4RjA5QUMwMjJGMzFDRjUKKzoxMDAwNzAwMDRBMTNGMzE0QzhBMEYyMTRGMjFDRUIxM0QzQTI2MzE2QjQKKzoxMDAwODAwMDQ4OUVGMDE4QTQwM0YzOTNDMDU4RjcxMzUxOUNFOTIwM0QKKzoxMDAwOTAwMENGRUY2M0Y5OTIyRUQzNUY2M0ZBOTIyRUQzNjc2M0ZCOUYKKzoxMDAwQTAwMDkyMkVEMzZGRTkxQTYzMTY0OEE3RjAyMEE0MDZGMzk0QTIKKzoxMDAwQjAwMEMwMjdGNzE0RjUxMzUxOURGNjEzNjMxOEM0MjBDQkVGMzYKKzoxMDAwQzAwMDYzRkM5MjJFRDM3NzYzRkQ5MjJFRDM3RjYzRkU5MjJFMzQKKzoxMDAwRDAwMEQzODc2M0ZGOTIyRUQzOEY2NDM4OTIyRUQzOTc2NDM5REYKKzoxMDAwRTAwMDkyMkVEMzlGRTEwMEY1M0FGNDNCRjdCRkYyQkNGMjNEMEMKKzoxMDAwRjAwMEUxMDA4MDg3OTA4MDUxRDUwMjIyMDIzMjRCRDNGNzExNjQKKzoxMDAxMDAwMDBCREFFMTAwMEUwMjAyNDAwREI1RTMwMjQ4NTVFNTEyOUMKKzoxMDAxMTAwMEE0MDFFODFCRTM5MEYwMThBNDAxRThCRjhEQjg0QkQxMEYKKzoxMDAxMjAwMDRCRDgwQkNCMEJDMkUxMDBFMzAyRTMwMzUyRDM2MDU5N0YKKzoxMDAxMzAwMEU2OTMwRDIyNTJENEU2OTMwRDJBRTM5OEUzOTBFMTAwNzIKKzoxMDAxNDAwMDAyNUQwMjYzRTMwMkM4MTIwMkNBQzg1MjAyQzI4MjY4OTgKKzoxMDAxNTAwMEUzMDJDODE0MDJDQUM4OTAwMkMyMEFEMEM5OTMwQURBREMKKzoxMDAxNjAwMENDRDIwQUUyNjMxMjAyREEwQTk4MEFBMDBBQThFMzkwNDMKKzoxMDAxNzAwMEUxMDBFMzAyMEFEMEM5OTMwQURBQ0NEMjBBRTI2MzEyQTAKKzoxMDAxODAwMDAyREEwQTk4MEFBMDBBQTg0OTkxRTU2QUE0MDRDODEyRUEKKzoxMDAxOTAwMDAyQ0FDODUyODI4OUM4MTQwMkNBQzg5MDAyQzJFMzkwMzcKKzoxMDAxQTAwMEUxMDAwODYwRTEwMDQ4NTNFODk3MDg1QUUxMDBFMzAyRTMKKzoxMDAxQjAwMEUzMDM1NEQzNjA1OUU2OTMwRDUyRTM5OEUzOTBFMTAwRDIKKzoxMDAxQzAwMDAyOUNFMzAyNTUxMzkzMTc1NTEzOTMxN0UzOTBFMTAwMzQKKzoxMDAxRDAwMDc1MzBFMzAyRTMwMzU1NTU2MDU5RTY5MzBEQjJFMzk4OTkKKzoxMDAxRTAwMEUzOTBFMTAwMDJBRUU3OTJFOTE4RUE5QUU4OThFODEwOTUKKzoxMDAxRjAwMEU4MTFFODUxRDJEQUQyRjNFODEzRDJGQUU4NTBEMkVBQTEKKzoxMDAyMDAwMEU4RDBFOEQxRDMwQTAzMDk0ODIzRTUyQ0EwMDM0ODI0MDkKKzoxMDAyMTAwMEVBMUMwMzA4RDJFM0QzMDNEMzEzRTEwMDAyQ0IwNTkzMTYKKzoxMDAyMjAwMDU3OTNGMDlBQUMwQkUzMDc5MkVBRTI5RkU1MDZFM0IwM0UKKzoxMDAyMzAwMEEwMDJFQjFFODJEN0VBMUVFMjNCODU5QkU5MUVDODkwMTYKKzoxMDAyNDAwMDg1OTQwMkRFMDU4MDU3OTNGMEJBQUMwNjkyRUFFMkJGQ0QKKzoxMDAyNTAwMEU1MDZBMDAxRUJCRjg1ODhFOTNFQzg5MDg1ODFFOTNFQUYKKzoxMDAyNjAwMEYwQkFGMzM5RjAzQTYwMTdGMDNBQzA5MEYwQkFFMTAwMTIKKzoxMDAyNzAwMDAwM0ZFMzAyRTMwMzU4MTA2MDU5RTY5MzBEQTI1ODEyQzEKKzoxMDAyODAwMEU2OTMwREFBRTM5OEUzOTBFMTAwMDMwMUUxMDAwMzAzODQKKzoxMDAyOTAwMDlCN0Q4QjhCRTMwMkUzMDM1ODU2NjA1OUU2OTMwREJBQkUKKzoxMDAyQTAwMEUzOThFMzkwRTEwMDAzMEY5MzExRTEwMEUzMDI0QTExQTgKKzoxMDAyQjAwMDBCNDI5MUFGRTM5MEUxMDBGMjkxRjA5MUEzRkVFMTAwRDcKKzoxMDAyQzAwMDYwOTJDMDVGRjAxM0YwMTM1OTVCRTIxM0YwMTE1QTE5RkEKKzoxMDAyRDAwMEUyMTNFMTAwMDAwMDAzMjc2ODYxNzY2MTZFNjEwMDA2QTkKKzoxMDAyRTAwMDAzMkNFMzAyRTMwM0U5Mzg1OTE1NTk1QUYyOUFCQzBCN0YKKzoxMDAyRjAwMEE0MEE1OTFFRjMxMUYwMUFFMkJCNTkxNUYwMTExOTJBN0MKKzoxMDAzMDAwMEU1MDJBNDAxRUJCRkUzOThFMzkwRTEwMDAzNDIxOTI4NjIKKzoxMDAzMTAwMEUxMDBFOTMwNjA3OUUxMDBFMzAzRTMwNzYwNzk5MzRFOUYKKzoxMDAzMjAwMEUzQjhFMzk4RTEwMEU5MUFGMDFGRTIzM0YwOTFFMjkyQkEKKzowODAzMzAwMEUwMzJGMDMxRTEwMDAwMDBCMQorOjAwMDAwMDAxRkYKKworICBDb3B5cmlnaHQgMjAwMSwgU1RNaWNyb2xlY3Ryb25pY3MsIEluYy4KKyAgQ29udGFjdDogIHN0ZXZlLm1pbGxlckBzdC5jb20KKworICBEZXNjcmlwdGlvbjoKKyAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHBhdGNoIGRhdGEgZm9yIHRoZSBDUGlBMiAoc3R2MDY3MikgVlA0LgorCisgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RhYnVzYi9iaXRzdHJlYW0uYmluLmloZXggYi9maXJtd2FyZS9kYWJ1c2IvYml0c3RyZWFtLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMjFhNGIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9kYWJ1c2IvYml0c3RyZWFtLmJpbi5paGV4CkBAIC0wLDAgKzEsNzYxIEBACis6MTAwMDAwMDAwMDA5MEZGMDBGRjAwRkYwMEZGMDAwMDAwMTYxMDAwRDdDCis6MTAwMDEwMDA2NDYxNjI3NTczNjI3NDcyMkU2RTYzNjQwMDYyMDAwQkI5Cis6MTAwMDIwMDA3MzMxMzA3ODZDNzY3MTMxMzAzMDAwNjMwMDBCMzEzOUM4Cis6MTAwMDMwMDAzOTM5MkYzMDM5MkYzMjM0MDA2NDAwMDkzMTMwM0EzNEU1Cis6MTAwMDQwMDAzMjNBMzQzNjAwNjUwMDAwMkVDMEZGMjAxNzVGOUY1QkY4Cis6MTAwMDUwMDBGRUZCQkJCN0JCQkJGQkJGQUZFRkZCREZCN0ZCRkI3RjYxCis6MTAwMDYwMDBCRkI3RUZGMkZGRkJGRUZGRkZFRkZGRkVGRkJGRkZGRjlCCis6MTAwMDcwMDBGRkZGQUZGRkZBRkZGRkZGQzlGRkZGRkZERkZGRkZGRjNCCis6MTAwMDgwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkJGRkEzRkZGQkU0Cis6MTAwMDkwMDBGRUZGQkZFRkUzRkVGRkJGRTNGRUZGQkY2RkZCRjZGRjE4Cis6MTAwMEEwMDBCRkZGNDdGRkZGOUZFRUY5RkVDRjlGRUZGQkNGOUJFRTE5Cis6MTAwMEIwMDBGOEZFRUY4RkVFRkJGRTBCRkZGRkZGRkZGRkZGRkZGRkUyCis6MTAwMEMwMDBGRkZGQkZGRkZGRkJGRkZGQkZGRkZGRkMxN0ZGRkZGRkFGCis6MTAwMEQwMDBGRkZGRkY3RkZGRkZGRjdGRkZGRkZCRkZGRjdGRkZGRkI0Cis6MTAwMEUwMDBGQzNGRkZGRkZGRkZGRkZGRkZGRkZGRkJGRkZGRkZGRkU3Cis6MTAwMEYwMDBGRkZGRkZGRkZGRkU1RkZGRkZGREZGRkZEQkZGRkRGRkQ5Cis6MTAwMTAwMDA3N0ZGRkRGRkZGREZGRUZERkZGRkYyRkZGRkZGRkZGRkI5Cis6MTAwMTEwMDBGRkZERkZGRkZGRkRGRkZGRkZGRkZGRkZGRkZGRkZFMTExCis6MTAwMTIwMDA3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjNGRkZGRjFGCis6MTAwMTMwMDBGRkZGRkZGRkUzRkZGRkZGRkZGRkZGRkZGRkZGRkZCRjJCCis6MTAwMTQwMDBGRkZFRkZGRkZGRkZGRkZGRkY2N0ZGRkZGRkZGRkZGRjU4Cis6MTAwMTUwMDA3RkZGRkZGRjdGRkZGRkZGRkZGRkRGRkZGRkZGMkZGRjlGCis6MTAwMTYwMDBGM0ZERkY3RkRFRjdGREZGN0ZGNzdERkY3RkRGRjdCRDRDCis6MTAwMTcwMDBGRjdGRkYxRkZGRUZGQkZFRkZCRkVGRkJGRUZGRUZGQjZECis6MTAwMTgwMDBGRUZGQkZFRkZCRkVGRkZGM0ZGRTdGOUZFN0Y5RkU3RjE1Cis6MTAwMTkwMDA5RkU3RkE3RjlGRTdGOUZFN0Y5RkU3RkZGQzdGQkZCRkU2Cis6MTAwMUEwMDBFRkZCRkVGRkJGRUZGQkI3QkZFRkZCRkVGRkJGRUZGQkI5Cis6MTAwMUIwMDBGRkUwRkRGOUZFN0Y5RkU3RjlGRTdGOURGOUZFN0Q5RDQzCis6MTAwMUMwMDBFN0Y5RkU3RjlGRURFREZGRkRGRjdGREZGN0ZERkY3RjhFCis6MTAwMUQwMDBERkZERkY3RkRGRjdGREZGN0ZERkZGOUJGRkVGRkJGRTE0Cis6MTAwMUUwMDBGQkJGRUZCQkZFRkZBRkJCQkVGRkJGRUZGQkZFRkZGRkUyCis6MTAwMUYwMDBCN0JGREJGNkJEQkY2QkRCRjZGOUJGNUJENkY5QkY2RkYwCis6MTAwMjAwMDBEQkY2RkRCRkZGMEVGRkZGRkZGRjVGRkZGN0ZGRkY3Rjg2Cis6MTAwMjEwMDBGN0JERkZGRkZGRkZGRkZGRkZERjlGRkZGRkZGRkVGRkI5Cis6MTAwMjIwMDBGRkVGRkVGRUZGRkY3N0ZGRkJGQkZGRkZGRkZGRjgzRjQ3Cis6MTAwMjMwMDBGRkZERkZGRkZGRkRGRkZGRkZGRkZGRkZGRkZGRkZGRkQyCis6MTAwMjQwMDBGRkZGRkZGNDdGRkZGRUZEQkVGRkRGRkVGRkZGRUY3RjNFCis6MTAwMjUwMDBGRkNGRkZDRkZGRkZGRkRGRTZGRkZGN0ZERkY3REQ3RjkxCis6MTAwMjYwMDA3RkRGRjdGRjdGREZEN0ZERkY3RkRGRjdGRkNERkZGMkY3Cis6MTAwMjcwMDBGRkZGNEY3RkY0RkZGRkZGRTdFRkZGRkZGRkZGRkZGRkYxCis6MTAwMjgwMDBGRkZGQkJGRkVGRkZGRUZGRkZGRkVGRkZGRkVGRkZGQkY3Cis6MTAwMjkwMDBGRkZGRkZGRkZGRkZGRjY1RUZGRkZGN0ZGRkZERUZGRkFBCis6MTAwMkEwMDBGRkZGRkVGRkZGRkZGRkZGRkZGRkZGRkVDRkRGRkVGRkIxCis6MTAwMkIwMDBGRkZCRkZGRkZGRkZGM0ZGRkZGRkZGRkZGRkZGRkZGRjVFCis6MTAwMkMwMDBGRURGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjVGCis6MTAwMkQwMDBGRkZGRkZGRkZGRkVCRkZGRkZGRkUzN0ZGRkZGRkZGRjBCCis6MTAwMkUwMDBGRkZGRUZFQkZGRkVCRkZGRUJGRkZDN0ZGRkZGRkZFRTJCCis6MTAwMkYwMDBGRkZGRkZGRkZGRkZEREZGRDZGRkZEQkZGRkZCRkZGRUEwCis6MTAwMzAwMDBGREZGRkZGREVGRkZGRkZGRkZGRkZGREVGRkZGRkZGRjMyCis6MTAwMzEwMDBGRkZGQkZGRkZERkY3RkJGRkY1RkRGRkZGRkJGNzdGRjc3Cis6MTAwMzIwMDBGRkZGN0ZEN0ZGRkZGRkZGRkZDM0ZGRkZGRkZGREZFRkYxCis6MTAwMzMwMDBGRkZGRkVGQkZGRkZERkJGRkZGRkZGRkZFREZGQjdGRjhDCis6MTAwMzQwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkJECis6MTAwMzUwMDBGRkZGRkZBRjdGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjdECis6MTAwMzYwMDBGRkZGRkZGRkZGRkZGRkZGREZCRkRGRjNGREZCRkY1QkQzCis6MTAwMzcwMDBGREZGQkZFRkY3RkZGRjdERkZGRkZGRkZGODNCRkZCRjc0Cis6MTAwMzgwMDA2RkZGRkVGRkJGRkZFQjdERkZFRkZCRkVGRkZGRkZGRkY5Cis6MTAwMzkwMDBGRkYyN0ZGQ0ZGM0ZERkVERkVGRkZGRkZGRkVGNUZGN0E4Cis6MTAwM0EwMDBCNUZGRUZGRkZGRkZFMDNGOUY5RUZGRkZFRkZGREZGRjg3Cis6MTAwM0IwMDBCRjVGQkZDRkYzRkZGRkZGRkZGRkZGNjlBRjMzRkRGRjVECis6MTAwM0MwMDBGQkZGRkZGRkZGRkNGRjdGRDlGRkRGRkZGRkZGRkZGNTE0Cis6MTAwM0QwMDBBM0RGNkVERUZGRkZCREZGRkZGRUZGRkZGRkZFRTdGREI5Cis6MTAwM0UwMDBGRkZGRkZGOUVGQzZGRUI3QURFNUY5RkZGRkZGQ0ZGRjU3Cis6MTAwM0YwMDBGRkZGQ0RGQjdGRkZGRkZGRjlGNjBGREZFQ0NGN0ZGRkE1Cis6MTAwNDAwMDBGQjdGRkZGRkZGRkRGRkZFRjlGRDdGRkY3RkZGRjk1QjM1Cis6MTAwNDEwMDBGRjczRENGRDdCREZGRkZGRkY3QkZGRkZGNzUzRDZGRkEyCis6MTAwNDIwMDBGRkZGRkZEODlGRkVGRkVGN0ZFRUZGRkZGRkZCRURFRDJECis6MTAwNDMwMDBGREZGRkVGRkZGRkI3RkZGRTI3RkZGNkZEODU3RjdGRjU3Cis6MTAwNDQwMDBGRkZGREZGRkU4RkZGRkZERkZGRkZDN0ZGRkU0RkZGQjk3Cis6MTAwNDUwMDBFRkZCRkVERkI3RURGRkZFREY3RkZGRkU3RkI3RkZGRkE1Cis6MTAwNDYwMDBGRkZGODlGRkZGQ0ZGM0ZFN0ZGRkVGRkZGRTdFN0ZGQkU1Cis6MTAwNDcwMDBGRkZGRkZGRkZGRkZGRkYxRkZFQjdBRDVCRjZGREJCRTkyCis6MTAwNDgwMDBGREI3RDhGNkU1QkY2RkZCRkVGNUJEN0UwNkZGREZGN0QzCis6MTAwNDkwMDBGQkY2RkYzRkZGREJGRkZGNkZGQkY3RkZGRkZGRkJGRUZFCis6MTAwNEEwMDBGN0FGRkZCN0VERUZGN0ZFRkZGRkRGRkZGRUZGRUZGRjU4Cis6MTAwNEIwMDBGRkZGRkZCRkY3RkMxRkVFRkJGRUJERkY3RjVGRDdGRDE5Cis6MTAwNEMwMDBGQjQzRkZGRkZERkY1RkZGRjdGRkY5M0ZGRkNGRjNGREFBCis6MTAwNEQwMDBGNzdFRUZBN0Y5RkU4RkE3RTlGMzdFOUZGQkY4RkZGRkZBCis6MTAwNEUwMDAzRkZEN0Y1RkRGRkRGRkZGNUZGRkZENUZGRkZGN0ZGREU0Cis6MTAwNEYwMDA3RkZEOUZGRkUwRkZGQUY4QkU2RjlGRTZGOEJFM0Y5QUQwCis6MTAwNTAwMDBGOUJFNkY5RkUyRjlGRTZGOUZGOUZGRjVGRDdGQ0ZERjI4Cis6MTAwNTEwMDBGREZEN0ZGRkY1RkZGRkZGRjdGNUZEMEZEQkZGRDNGRkNECis6MTAwNTIwMDBFQkZBRkZGRkJGRkZGQUZGRkZDQkZCRkVGRkZGRUJGQThCCis6MTAwNTMwMDBGRUZGRkZCN0ZGRkZGRkZGQkZGRkRGRjVGRkZGRDdGRkE2Cis6MTAwNTQwMDBGRkZGREZEN0Y1RkY3RkZFNEZGRkZERkY3RjdGRkZBRDkyCis6MTAwNTUwMDBFQkZCRkZBREZGRkZGRkZGQUZFQkZCRkZGQzBERkZGRjcyCis6MTAwNTYwMDBERkQyRkRGRkZGRkRGNkZGRkY3RkZGRkYxRkZGRkZGRjU1Cis6MTAwNTcwMDBGRkZCM0Y3REVCMzJGRUJGMkZFQkZBQUVCREUwRkE3RTE0Cis6MTAwNTgwMDBCRkFERUJGQUZFQkZGNTdGRkZERUZFRTNGQkZGRkZGRjMzCis6MTAwNTkwMDBERkVGNEZERkZGN0ZERkZGRjdGRkZGRjg3RkZGRkZFRkFBCis6MTAwNUEwMDBGQkZGRkZGRkVGRkZGRkRGRURGQkRGRkZCRkZGRkZGRjA1Cis6MTAwNUIwMDA4MUZGRkZGRkZGM0ZGRkZGRkZGRkZFRERGRUVGRkRGRkJGCis6MTAwNUMwMDBGRkZCRkVGN0ZGOTNGREZCN0VGRkZFODdFOUZGN0ZCMzk2Cis6MTAwNUQwMDA5RkZFRkVGRkFGRkRGRTdFM0ZGRTY3RkZGRkY3RkZGRkMyCis6MTAwNUUwMDBGQ0Y3REZGREZGN0ZGRkZGN0Y2REZGRkZGRUZGRkYyRkFCCis6MTAwNUYwMDBGRkJGRkZGRkVFRkZCRUZGRkZGRUZGRUZGRkZGRkVGRkFGCis6MTAwNjAwMDBFRkZGRkZGQTVGRkZGRkZCRkZGRkVGRkZGQkZFRkRGRkNBCis6MTAwNjEwMDBGRUZGRkJGRkZGRkY3RkZGRkVCRkRGRkZGQkZGRkZGN0RDCis6MTAwNjIwMDBGQ0ZERkZGRkZGRkZGRjdGRkZGRkZGRkZGRkYyN0ZGRkVDCis6MTAwNjMwMDBGRkZGRkY3RkZGRkZGRkZGRjNGRkZGRkZFRkZCRkZGRjZBCis6MTAwNjQwMDBGRkRGRTJGRkZGRkJGRkZGRkZGRkZGRkZGQkU3RkZGRDE5Cis6MTAwNjUwMDBGRkZGRkZCRkZGRkZGRkVERUZGREZGRkZERkQ3RjVGRDYyCis6MTAwNjYwMDA3RjVERkRGRjdGREY5N0Y0RkQ3QjVGRkZDOUZGRkJGRTMyCis6MTAwNjcwMDBGRkJGRkY1RkZGRkZGN0ZGRUZGREZGRUZGRkZGRkZGRjk0Cis6MTAwNjgwMDBGRkY3RkZEN0ZEN0Q3RkZGRkZGRkZGRUZERkY3RkRGRkU4Cis6MTAwNjkwMDBCQkZGRkY3RkZGRkVFM0ZGRjlGRTdGQkZFRkZCRkVGRjI3Cis6MTAwNkEwMDBCRkY5RkVGRjlGRUZGOUZFRkZCRkYzREFGRjM3Q0RGMzhGCis6MTAwNkIwMDA3Q0RGMzdDREYzN0YzN0NERjM3Q0RGMzdDQ0YzN0Y1QTQ4Cis6MTAwNkMwMDBCREY2RkRCRjZGREJGNkZEQkY2RkRFRkRCRjZGREJGNjc2Cis6MTAwNkQwMDBGREJGNkZGRUYxNkZFQjdBREVCN0FERUI3QURFQjdBRjQxCis6MTAwNkUwMDA3QURFQjdBREVCN0FERUI3RkY3RUZGRkVDREIzNkNEQjEzCis6MTAwNkYwMDAzNkNEQjM2Q0RFQ0RCMzZDREIzNkNEQjM2Q0RGQzlCRkFBCis6MTAwNzAwMDBGN0JERUY3QTlFQTdBOUVBN0FCN0JERUE3QkRFQTdCRDVGCis6MTAwNzEwMDBDQTcyOEQ5MUZGRUZGQkZFRkZCRkVGRkJGRUY3RUZGQjExCis6MTAwNzIwMDBGRUZGQkZFRkZCRkVGRkZFODdGRkY2RkRCRjZGREJGNkIwCis6MTAwNzMwMDBGREJGNkZGNkZEQkY2RkRCRjZGREJGNkZGRTRGRkZCRjY2Cis6MTAwNzQwMDBFRkJCRUVGQkJFRUZCQkVGQkVFRkJCRUVGQkJFRUZCQjA2Cis6MTAwNzUwMDBFRkZDNUZGRkZGRkYzRkNGRjNGQ0ZGM0ZDRkZDRkYzRjBFCis6MTAwNzYwMDBDRkYzRkNGRjNGQ0ZGRDlGRkVCRkFGRUJGQUZFQkZBRjY1Cis6MTAwNzcwMDBFQkZFQkZBRkVCRkFGRUJGQUZFQkZGRTE2RkZERkY3RjFDCis6MTAwNzgwMDBERkY3RkRGRjdGREZGREZGN0ZERkY3RkRGRjdGREZGRjhGCis6MTAwNzkwMDA3QUJGRkJGRURGQjdFREZCN0VERkI3RkI3RURGQjdFRDk5Cis6MTAwN0EwMDBGQjdFREZCN0ZGQzlGRkZGQkZFRkZCRkVGRkJGRUZGQjI1Cis6MTAwN0IwMDBGRkJGRUZGQkZFRkZCRkVFRkJGRUJCRkZGRUZGQkZFRjg5Cis6MTAwN0MwMDBGQkZFRkZCRkVGRkVGRkJGRUZGQkZFRkYzRkNGRkZFN0VDCis6MTAwN0QwMDBGRUZGRjVGRDc3NURENzM1REQ3N0Q3RjVDRDdCNUREN0FFCis6MTAwN0UwMDBGNURENzdGRTI3RkZGRjhCRTJGOEJFMkY4QkUyRjlBRjM2Cis6MTAwN0YwMDA4QkUyRjhCRTJGOEJFMkY5RkUxRkZGNUZEN0Y1RkQ3RjdFCis6MTAwODAwMDA1RkQ3RjVGRjVGRDdGNUZEN0Y1RkQ3RjVGRkZBM0ZGRUI2Cis6MTAwODEwMDBCRkFGRUJGQUZFQkZBRkVCRUNCRkFGRUJGQUZFQkZBRjgzCis6MTAwODIwMDBFQkZGRkU3RkZEN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkVGCis6MTAwODMwMDBGRkZGRkZGRkZGRkZGRkU2RkZGQURGRjdGREZGN0ZERkIwCis6MTAwODQwMDBGN0ZDRkZERkY3RkRGRjdGREZGN0ZERkZGNUZGRkZGRkExCis6MTAwODUwMDBGRkZGRkZGRkZGRkZGQkZGRkZGRkZGRkZGRkZGRkZGRkFDCis6MTAwODYwMDBGRjAyRkZGRUJGQUJFQkZBQkVCRjIzRUJERTFGQUZFQTFBCis6MTAwODcwMDBGQUZFQUZBRkVCRkQ5N0ZGRjNGQzdCMUZDRkYxRkM3RkUwCis6MTAwODgwMDAxRkYxRkM3NzFGQ0RGMUZDRkYxRkZFODdGRkFGRUZGQUQyCis6MTAwODkwMDBGRUZGQUZFRkZBRkRCRjJCRkI3RUJGQkZFQkZCRkJGQjA5Cis6MTAwOEEwMDBERkZGRkJGN0ZGRkY3RkY3RjdGRkZEREZGRUZDREZGRjVBCis6MTAwOEIwMDBERkZGRkRGRkRBQkZGRkJCRUZGQkY5RkZCRUVGRkJGQjg2Cis6MTAwOEMwMDBCRkVGRkJGRUZGQkZFRkZCRkZGNzdGRkREN0ZGRkY3RjEzCis6MTAwOEQwMDBGRkZGRkZGRUY3RkZGRUZGRjdGRkZGN0ZGRkZGRUNGRkNECis6MTAwOEUwMDBGRkZFREZCRkZGRkJGRUZGQkI2OEFFMUZBRUZCRkJGRkUzCis6MTAwOEYwMDBGRkJGRkZENUZGN0ZGRkZGRjdGRUZFRkZCRkVGOUZGREFFCis6MTAwOTAwMDA3RkZGQ0JGRkZGREZGRkZGQkJGN0JGRkZGRkZGRkZERjc3Cis6MTAwOTEwMDBGRkJGRkJGRkZGRkZERTNGRkZGRkZGRkZGRkE3RkZGRjY0Cis6MTAwOTIwMDBGRkZGRUZGRjdGRkJGREZCN0ZGRkZGRkZGRkNGRjM3Q0IwCis6MTAwOTMwMDBGRjdGOEQ3RkZGRkZGRkZGRkJGRkY3RkJGRUZERkZGRjRDCis6MTAwOTQwMDBGRkZGRjdGREZGN0ZGRDFGRkRGRkZGRkZGRkJGREZGRjg1Cis6MTAwOTUwMDBGRkZFNUNGRjZERkY3RkFCRTdGMUZGRkQ5RkZGRkZBRDhCCis6MTAwOTYwMDBFQjdBM0YxRkZGRkZGRUJGQUZGM0RFRjVGRjhGRkJERjJDCis6MTAwOTcwMDBFNjdGRkZERkYzRkRGRjdFRkZGRkZGRkZGRkZERjdGM0U1Cis6MTAwOTgwMDA3RkRGRjdFRkZGRjYzRjlGREZGRkZGRUVGRkZGRUZGQjlECis6MTAwOTkwMDBGRkZGRjlGQkZFNEZCRkVGQkJGRjY5QUZBRkZDRkYzRkFGCis6MTAwOUEwMDBEREZGRkNCRjhGRkZGREYzQkZFRDlFRkNCRjZGRjVEM0Y2Cis6MTAwOUIwMDBERkZGREJENkY1RUZGREZFRkZCOUZGMUZEMkE5QUZGRkNBCis6MTAwOUMwMDBEQkY3QkZFRjQ2RkZGRkFERUI3QURGRUZGN0ZGN0ZGNzE3Cis6MTAwOUQwMDA5RkVERkY3RkZGQURFQjdGRjU2RkZGRkRGQkQ2RjRGN0RCCis6MTAwOUUwMDBGQkY5N0U3RkZGNUZDMkZFQkZGREZCMzNERkY5NUJGRkRDCis6MTAwOUYwMDBGRkRENjc3RENGRUZEQkVDRkY3N0RERjdGREZGRkZERThGCis6MTAwQTAwMDBBN0JGRDQ5RkZGRkZCRkVGRkVGRkRGRUZCQkZGRkZFRkVFCis6MTAwQTEwMDBFQkZBRkZFRkJERkJGRkUyN0ZGRkRGREZGN0ZEQkZCQkMwCis6MTAwQTIwMDA3M0Y3RkQ3RkRGREVGN0JGRUFEQkY2RkZENkZGRkY2Njc5Cis6MTAwQTMwMDBGRkJFRkZCRjZCRDlGNkRGRkZGQjdFN0ZCNzdFRkZGRUY5Cis6MTAwQTQwMDBGRkNERkZGRTdGRkZGQ0ZEM0ZGQkZCRjdGRkZGRkJGNjRCCis6MTAwQTUwMDA3REZFN0ZGRkZDRkZCOUZGRjlGQUZFQkZBRjVCRDZFRDZECis6MTAwQTYwMDBBRDdCRjZGOUJGRUZGOEZBRkVCRkZFRTZGRkZGRjdGRDNDCis6MTAwQTcwMDBGRjdGQkZFRkYzRkZGRjZGRjdGRUZGRkZGN0ZERkVGNzBFCis6MTAwQTgwMDBFRkZGRkJFRkZCN0VERUZFRkZCRkZGRkVGRkZGRkJGRjg2Cis6MTAwQTkwMDBGRkVGRkI2RkZDMUZGRUU3RkZGRkZGRUZGRkQzQjRCQkQxCis6MTAwQUEwMDBGRkZGRkRCRjZGRTNGRUZGQkZGQ0JGRjdDRkY3RkRGRjBBCis6MTAwQUIwMDAyRkRGQUJFQUZGREZFN0VBOUFBRkVGRkJGRUZGRjUzRjgwCis6MTAwQUMwMDBGRDdFRkZEN0Y1RkJGRkZERjdGRjdGRkVGN0ZERkZEN0FDCis6MTAwQUQwMDBGRkQ3N0ZFRTdGRkE3OUZFMkY4QkU2RjlGRTNGOUVGOTc2Cis6MTAwQUUwMDBCRTJGMEJFN0Y5RkUyRjlGRkRGRkZFN0Q3RjVGRDdGRjM3Cis6MTAwQUYwMDBGRjdGRkZGREZGN0Y1Rjk3RkZGRDdGNUZGRkUzRkZGRjRFCis6MTAwQjAwMDBGQUZFQkZBRkZCRkJGRkZGQ0ZFQkZFQkZBRkZGRkFGRTZFCis6MTAwQjEwMDBCRkZGODdGRkZGRjVGRkZGRkZGRkZERkY3RkZGRkZGRjI5Cis6MTAwQjIwMDBGQkZGRkZGNUZGRkZGRTBGRkZGREVCRkZGRkY3RkZFRjAyCis6MTAwQjMwMDA3QkRGRkVGRkZGREZGN0ZERUI3RkRGRkY1RkZGRkZGRkU4Cis6MTAwQjQwMDBGRkZEQkZGRjdFRkFCRkM3REJGN0JEM0ZGQkZGRjZGRjMwCis6MTAwQjUwMDBGQUFGRkZFQkZBRkUzRjJGRUFGQTNFQURDOUJBRjZBREE3Cis6MTAwQjYwMDBBRkVCRkFGNkJGRkU3RkZGRkZGREZGRjE3RjNGQ0ZGMTU2Cis6MTAwQjcwMDBFRkZGN0ZGRkJDREZERkY3RERGRkUwN0ZGRkZGRkVGRjYyCis6MTAwQjgwMDBGQUVDQkI3RjVGRkZGQkVDRkZFRkI3RkZGN0ZGRkZCNUIyCis6MTAwQjkwMDBGRkZGN0ZGRkZGRkZFRURGNUZERkRFRkZBRUU3NzdGRkU4Cis6MTAwQkEwMDBGRkRGRjdGRkUzRkZGQUJCRkVGRkFGRkRGQkZFQkZBQkNFCis6MTAwQkIwMDBGOUZFRkZCRjdGQkZGRUJERkVEN0ZGOUZGREZGQkVFRjZCCis6MTAwQkMwMDBGRkVFRkRCQjVCRUZGRjdGRUZGRkVGRkY3RkZGNEZGRjEwCis6MTAwQkQwMDBFRkZCQkNGQ0ZGRkZGRkZFRkVGREZBRkVGQkZGRkRGMzlCCis6MTAwQkUwMDBGQkZGRjg1RkZGRkZEN0Y1RkRERkVGRkZGM0RDNUZDRTI0Cis6MTAwQkYwMDBGNUJERkZGRkQ3RkZGRkY5M0ZGRkRGRjdGRkZFRkZGRDZBCis6MTAwQzAwMDBGRkZCRkZGN0I5N0RGRURGRkZGRkZGRkZGOTdGRkZGRTcwCis6MTAwQzEwMDBGRkZGN0ZGRkZFRkZGRkY3RjZGRkJGRjFGOEZGRkZGRkNCCis6MTAwQzIwMDBGRkUwRkZGRkZGRkZGOUZGRkZGRkZGRkZFRkVGRkZGRjE5Cis6MTAwQzMwMDA5QkZCN0ZGRkZGRkZDMUZGREZGRjNGNUZEN0JGRUZCQjI2Cis6MTAwQzQwMDBERUVFRkY3RkRGRkZGRUY1N0ZERkZGOTlGRkZGRkFGRjlDCis6MTAwQzUwMDBCRkZERUI3QUZGQjdGRUZFRkZGRkVGRkZGRkZEQkZGRjFCCis6MTAwQzYwMDA5N0ZGRkRGN0ZGN0ZGN0ZGRkZGRDVGRkVGM0Y5REZERjgzCis6MTAwQzcwMDBGRkZGRkNGRkZGODNGRkZGRkVGRjlFRUNGQkVFRkY5RkVECis6MTAwQzgwMDBCRkVGRkZGRUVEN0JGRkZGRkZGMTVBRkZGRkZERkY3QzkzCis6MTAwQzkwMDA2OTNCREZGRjdGMUZERkZGRkRCQUZGRkZGQkZGNUJCRDhGCis6MTAwQ0EwMDBGRkZGRkZGRkQ3QjZFREU5RkZENkJENkY1RkZCRkZFRjlDCis6MTAwQ0IwMDBGRjVGRkVGNjZGRkZGRkZGRkZGN0VCN0FERkZGOUY3RjFGCis6MTAwQ0MwMDA3RkZGQjdGRkZGRkVERkZGNkNGRkZCRkZCQjZGRUJGRTlECis6MTAwQ0QwMDBDQ0Y3QTVGQTVDRjU3NUJCQjdERkZFNkY1RkM1QkZGRDRFCis6MTAwQ0UwMDA3QkZFRkY5NUU3MjlDRjRGRjU5MUVFNkJERkVGRkQ1NENCCis6MTAwQ0YwMDBGNUJEQjFGRkVGRUVGQkJFQkZBRkZFREVCRDZGREFGMkJBCis6MTAwRDAwMDBGRkFGQkVGRkZGRkQ3RUE3RkZGN0ZGQkZFRjdCRjZGRDQ2Cis6MTAwRDEwMDBCRDRBRjI4NTg1QkY1QkZFQjVGREZBRkY0RkZGRkVERkUyCis6MTAwRDIwMDBGRkVERkZCRkZGQkY3RkZFRkZCNzZERkZGN0JGQkZFRjU4Cis6MTAwRDMwMDBGRDFGRkZGRTdERkY2N0ZGRkZGRjNGN0ZGRUJGRkZFNzU5Cis6MTAwRDQwMDBERkU3RkZFRjZCRkMxRkZGQkZFRkZCRkVERUJGQUZGQTdECis6MTAwRDUwMDBGRkI2RUZGOUZFRkY4RkVGREJFRkFCNkZGQkZFRkZGRkEwCis6MTAwRDYwMDBFRkZERkY3RkZGRkZERUZGRkZFRkZGRkZGRjNGRkY2Q0E5Cis6MTAwRDcwMDBGRkJGRkJGRkZFRkZGQkZFREZGRkZGRUZGRkZGQkZGRjNECis6MTAwRDgwMDBGRkZFRkJGRkQ1N0ZGRkZGRUZGQkZGRkZCRkVGNDNCNThDCis6MTAwRDkwMDBGRDZGQ0ZENkJFM0Y3RkRCRkVDM0ZGRkRGRkFGRUJGQjlBCis6MTAwREEwMDBGQ0ZGM0VFRkU4RkFCRENEQUFGRUZFN0RDRkZGQjdGRjA4Cis6MTAwREIwMDBGN0ZGRkZGRkZERkY3NUNENTJEN0ZERkJGN0RERkJFRjIyCis6MTAwREMwMDBFQkZGRkY0RkZGQkY5RkU3RjlGQzdGOEJDM0Y5QUY4RkFFCis6MTAwREQwMDBFN0U5QkU3RjlGRTZGOUZDNUZGRkZGRjdGREZGN0E1RjYzCis6MTAwREUwMDBEN0VERkZGRkQ3RkZERDdGRTdGRkZDRkZGQzNGRkZGRkY1Cis6MTAwREYwMDBGRkZCRkZGRUJGQUZGRkZERkZFRkZGRUJGRkZGRkZGRkJFCis6MTAwRTAwMDBGRkY3N0ZGRjdGREZGRkZERkQ3RkZFRjdGRDdGREZGRjQ5Cis6MTAwRTEwMDBGREZGRkZERkZCRkZFRUZGRkJGRkY3RkRGRjdBREZGNUQ2Cis6MTAwRTIwMDBGREZBREZGN0ZDRkY3RkRGQkZFREZGQzlGRkRGRkZCRjhDCis6MTAwRTMwMDAyRkZCRkZCQ0FERkZGN0ZGRkZFRkQzRkY3REJGNkZGRkMxCis6MTAwRTQwMDBGQUZGRkVCRkFFRUFGQUJFQURBNUVCQ0VCRkE3RUI1QUU2Cis6MTAwRTUwMDBERUJEQUY2QkZENTdGRkZGRjQ3RjFGN0ZGREZGN0YzNkM5Cis6MTAwRTYwMDBGMERGNzlGRkZGRkZGN0ZEQkZGRjg3RkZGQkYzRkNGRjFDCis6MTAwRTcwMDBGRkZGRkY3RUZGQkZERkZGRkZGRkZGRkZGREJGRjg5RjBDCis6MTAwRTgwMDBGRkZGRkZGRkJGRkZGRkZERjdGQ0JERkZGRUZGRkZGRjAyCis6MTAwRTkwMDBGRkZGRkJGOUJGRkZGRkVCRTJGRUZGQkZFRkE5QkEyRjk5Cis6MTAwRUEwMDBFQkY5RkU3N0RGRjdGRkZGRjk3RkZGRkY3RkVGRDdGRjVCCis6MTAwRUIwMDBGREZGRkJGNUZGQkY2RkRGRkZGRkZERkZGRkYwRkZGRjUzCis6MTAwRUMwMDBGRjNGQ0ZGRkJBRUU5QkJGRUVEN0ZFQ0RFRkZGREZCRkY4Cis6MTAwRUQwMDBGRkZGQzVGRkZGRkQ3RjRGRkRGNkQ5RkY0RkQ2RkRCRkRBCis6MTAwRUUwMDA2RUZGRkZGNDdGRkY3RjhCRkZGRkZGRkZGN0ZGRjlGRTMxCis6MTAwRUYwMDAzN0ZGRDlGQkY1QUZGREZGRkZGQkZGRkYwN0ZGRkZGRjRDCis6MTAwRjAwMDBGQkY3RkZGREZGN0NGQTdFNEZGQ0RGMURDN0ZGRkZGRkY1Cis6MTAwRjEwMDBGRkFFRkZGRkZGRkZGREZCRkZGRkZFRkVGQ0ZGN0Y3RjNECis6MTAwRjIwMDBCRkVGRkVGRkZGRkY1RkZERkZGRkZGRkQ2RjVBRDc3QkE3Cis6MTAwRjMwMDBCRTVGRkUzOUZGRjdGRkY3RkRGRUFBMUZGRkZGRkZGRkIxCis6MTAwRjQwMDBGRUZFQUJBRkZERkVCRkZGRjdGRjdGRkU4RkUzRkJFRUM0Cis6MTAwRjUwMDA3RkZGRkZGRkZGRUJGQkZGRkRCRkVGREZGRkZGRkZGRkFCCis6MTAwRjYwMDBGRkZGRkZGQkU0M0ZGRkRGRkZGRkZGRkZGM0VGQkJGQkY0Cis6MTAwRjcwMDBCRkVGQkJGRkQ3QkZGRkZGRkYyOUFGRjdGRkZGRkJGRkFGCis6MTAwRjgwMDBGQkU2RkYwRkZCM0ZERjBGRkZBRkZGRkZGRkY1QzNERjA4Cis6MTAwRjkwMDA1RkZGRkZGRkZFNkJDQUJFQkNGRjlGRjJCRkZGRkVGQTAyCis6MTAwRkEwMDBGRkZGRUYxNkZGRkZGRkZGRkZGQ0RGOTdGRDc5RkYzNzI1Cis6MTAwRkIwMDBFNzdGRkZGRkI1RkZGRkY2MkZGRkZERkJGRUZGRkZGRDA1Cis6MTAwRkMwMDA1RjU3NUZGRkRCNTJERkZGRkRCRkZGRkZGQ0RCRkY3QkY3Cis6MTAwRkQwMDBCNUZEN0ZGRjcxOUM2RUZGRjYzNUE1OUJGRkZGRkRGRjAyCis6MTAwRkUwMDBGRkRCOUU3RkZFRUZGQkZGRkZCREVGRkZERUI3Rjk0QkEwCis6MTAwRkYwMDBGRkY1RUZGRkZGRkZFODdFRkZFQURGRjdGRkZENjk1QjJDCis6MTAxMDAwMDBGQzlGRUY3OEQ2RkZFQkVGRkZGRkZGRThGRkZGRURGRjYwCis6MTAxMDEwMDBGRkZGRkZFM0Y5RjZCRkZGRkZGRURGRkY3RkZGRkZGRkVDCis6MTAxMDIwMDBEMUZGRkZFN0ZGRkZGRkZGRTdGOUZGQkY3RkQ5RkZGRDFDCis6MTAxMDMwMDBGRTdGRkZGRUZGRjlGRkZCRDZERkJGRUY1QkQ2RkZCRkYyCis6MTAxMDQwMDBGQkY2RkZCRkVGRjhGNkREQkVGRTE2RkZCRkVGRkZGRUJCCis6MTAxMDUwMDBGRkJGRUZGRkZGRkY2RkZCRkZGRkZGNkZGM0ZGRjdFRjM4Cis6MTAxMDYwMDBGQkZGQkZGRkVGRkVGRkJGRkZGRkZGQkVCRkZGRUZGRkI2Cis6MTAxMDcwMDA3RkVGRkZGRDE3RkI3QkZGRkZGRDdGREJGNkY0N0ZGQUMxCis6MTAxMDgwMDBGRUY1QkZFQkUzRjdGRkZGRTlCRkZGQUZGN0ZERjM3RTMwCis6MTAxMDkwMDA4RkEzRUFGRkNCRjNFRUZGQkZFRkY3RjlGRkZFN0ZGRjcxCis6MTAxMEEwMDBGRkZGRkZGNUZCRjZGRkY1MkZGRUZCRDdCRkZGQkVERjBGCis6MTAxMEIwMDA5RkZGRjBGRkZGRjlGRTdGOEZBM0Y4RkU2RjlGRjlGNjA5Cis6MTAxMEMwMDAyRjlGRTdGOUZFMkY5RkUxRkZGRkZGN0ZERkY3RjVGRDgxCis6MTAxMEQwMDA3RjdGRjVGRjlGNUZGQkZFRkY3RkZGRkZDQkZGRkZGQkU3Cis6MTAxMEUwMDBGRUZGQkZBRkZCRkVGRkRGRkVGRUJGRjdGRkZGRkZGRjEwCis6MTAxMEYwMDBGRkM3RkZGRkZERkY3RkRERjdGREZGRkZEN0ZGRkQ3RjkwCis6MTAxMTAwMDBGRkZCRkRGRkZGRkVFRjdGRkRFRkZCRkVGQkZERkY3RjIzCis6MTAxMTEwMDBERkZERkY3QURGRjdGREZGRkZGRkZGMUZGRkZGRDNGN0M0Cis6MTAxMTIwMDBGRkZGNkZEQkZGRkZFRkNCRjRGRkZGRkZGRkZGRkZGRUQzCis6MTAxMTMwMDAyOUZGRThEQTc2OUZBRjZBREFGRTM1RUJEQUQ2QkZBQjg1Cis6MTAxMTQwMDBFQjdBREVCRkQ3N0ZGRkZFRkZCRkVGRkRERjc3QkZGRDhFCis6MTAxMTUwMDAzN0VGRkZFRkZGM0ZGRkZGRkZGRTdGRkZGRkZGRjc3RTUxCis6MTAxMTYwMDBERkZGRkZGRkZBQjc3RkZGRkZGRUZGRkZGRkZGODlGRkYzCis6MTAxMTcwMDBGRkZGRkZGRkZGRkZGRkZGRkY5RkZCRkZGRkZGRTdGRkZCCis6MTAxMTgwMDBGRkZGRkZBQUZGQUJGQkZBRUZCRkZGREZGQTdCQjlGRTYxCis6MTAxMTkwMDBGRUZGRkRGRkY3RkUzRkZGQjdGRkY3RUVGRjdGRUZGRjFDCis6MTAxMUEwMDBGRjdGRkYxRkZCRkZCRkZCRkVGRkJERkZGRjJGRkZCRjRBCis6MTAxMUIwMDBGRjdGREZGQUZGRkZGQ0VFRjVGM0JFRkIwRkVGRjNCRUEwCis6MTAxMUMwMDBFRkZDNUZGRjVBRkZGN0RGRkZGRkZFRDVGQzVGRkJGMjhFCis6MTAxMUQwMDBGRkZGMkZCQkYzRkZGRkJGRkZFRkZGRUZGRkZGRkZGRjlGCis6MTAxMUUwMDBCRkZGRkZGRDdCRkZERkI5RkZGQkZGRDg3RkZGRkZGRkU2Cis6MTAxMUYwMDBGQkZGRkM3RjFGQkZFMERGRjdFRkZGRkQ3RkZFREZGRkEwCis6MTAxMjAwMDBFMEZGRkZGREVGRkJGRkZFRjdERkZGRUI1RkZGRjdGRjA4Cis6MTAxMjEwMDBGRkZGRkZCRkZGRkRGRkZERkZGRkZGRjdGREZGM0JEQzEzCis6MTAxMjIwMDBGRDZEN0I1RjU3RjVGRDdGNUZGRkIxRkZFQkZGRkZGRkJDCis6MTAxMjMwMDBGQkZCRkVGRkJGRkJCRUZGQkZFRkZCRkVGRkFGRkVGN0ZBCis6MTAxMjQwMDBERkRGRkZGRkZGN0ZDRkYzRjhGRkQ3RkJGRjVGQkZGN0M1Cis6MTAxMjUwMDBGQkZGN0ZGRTIzRkZGRkZFN0ZGM0ZGRkJGRUZGRkZGMzlECis6MTAxMjYwMDBGRkZGRjVGOUZGM0ZGRkZGRjA5QUZGQkU3RkZGRkNGOTlDCis6MTAxMjcwMDBGRkZEQUZFQkZFQkZGRkNGRjNGRTdGRkZGRjVCQkRGRkM4Cis6MTAxMjgwMDBCQ0VCRkZEN0Q0QUZBRkZERkZDRkY3RkRGRjdGREZGNzlDCis6MTAxMjkwMDBGREZFRkY2RkZGRkJGRkZGRkZGRDdGNUVGREJGREJGNjg3Cis6MTAxMkEwMDBGREJGNkZGQkVFRkRGRjdBRkZGQUZCRkYzRkZCQjc1RjcxCis6MTAxMkIwMDBENkY3MUY3MURDNzcxREM3MzFEQzc3REZGOUJGRjU1QjJGCis6MTAxMkMwMDBGNEQ3OURBRUZGQkZGREJGREJGNkZEQkY2RkRCRjZGRUMzCis6MTAxMkQwMDAzRDgxRkZFQkZFRkVGRUZGRUI3QURGN0Q3NzdERjU3OTRBCis6MTAxMkUwMDBERjU3RERGNTdEN0VFNkZGRDYzRkJGN0ZGRkQ0RjUzRkJDCis6MTAxMkYwMDBCRkZCQkVFRkIzRUVGQjlFRUZCQkZFOEJGRkZFREZCNzg3Cis6MTAxMzAwMDBFREZGRjdGREZFRkZFRkJCRUVGRkJFRUZCQkVFRUJGQzJDCis6MTAxMzEwMDAxRkZGRkZGREZGRTdGRkY3RkRGRkVGRkVGRkJGRUZGQjQ2Cis6MTAxMzIwMDBGRUZGQkZFQkZBMUZGRkI3RUY1QkZFRkZBRkVCRERFN0EyCis6MTAxMzMwMDBERTc3OURFNzc5REU3NzlEQkZFNjZGRkZGRUZGQkZFRkFCCis6MTAxMzQwMDBGQkZFRkRCRjZGRjZGREJGNkZEQkY2RkRCRkZGN0VGRjRGCis6MTAxMzUwMDBGRkZCRkVGRUZGRUZGQkZERUY3RUY3QkRFRjdCREVGNzUxCis6MTAxMzYwMDBCREVGRkZENUZGQkZGRkVGRkVGRkZDM0YwRkU3RkU3RkE2Cis6MTAxMzcwMDA5RkU3RjlGRTdGOUZFN0ZFRjNGRkZFREZBRERGNjdFRTNECis6MTAxMzgwMDBGQkJGRUZGRUZGQkZFRkZCRkVGRkJGRUZGRjIzRkZGRjQzCis6MTAxMzkwMDBGRkZGN0ZGRkYzQkNEQkZFRkJGRkZCQkVGN0ZCRkY3RjI2Cis6MTAxM0EwMDBERkZGQ0ZGQkZGOUZFM0Y5QkUzRjhGRTc3OUZGOURFN0FDCis6MTAxM0IwMDBGOUZFN0Y5RkU3RjlGRTVGRkZDRkY3RkZGRkZGREZGNzQzCis6MTAxM0MwMDBGRTdGRTdGOUZFN0ZGRkZGRkJGRUZGRkZCRkZGQkZCRjEyCis6MTAxM0QwMDBGRkZFRkZCRkVGRkZGREZGRkZGRkZGRkZGRkY3RkRGRjdBCis6MTAxM0UwMDBGRjNGRkZCRkZGRjdGRkZGN0ZERkZGRkZGRkZGRkZGRkI1Cis6MTAxM0YwMDBGRkZGRkZGRkZGRThFRkZGNUZGN0JGRjlGRURGQjdGRDdECis6MTAxNDAwMDBGRkRGRjdGREZGN0ZERkY3RkRGRkRERkZGMkZGQkZGRjJGCis6MTAxNDEwMDBGRkJGRkZGRjJGRjJGRkJGMkY3QkQyRjdCRjJGRkZCQjE2Cis6MTAxNDIwMDBGRkVFOEZBRkVCRkFGRTNGQTc2OUNFOEZBNEVBRkFFRThDCis6MTAxNDMwMDBCN0FFRUJGREM3RkZGN0Y3RkZGRkZGRkZGRjdGM0VGMzAwCis6MTAxNDQwMDA3NEZGM0Y0RkZGRTdGRjNGRkVBN0ZGRkZERkY3QjdGRjQ4Cis6MTAxNDUwMDBGN0ZGQkFFRjM3RUJGQkZFQkZGQkZFRjNGRkY5REZGRjUxCis6MTAxNDYwMDBCRkZGRkZGRkJGRkZGRkZGRkRERkZGRkRGRkZGRkJGRTM1Cis6MTAxNDcwMDBGREZGRkJCRkZFM0ZFREZGREZCRTNEQTdGQkZBM0ZFNkYyCis6MTAxNDgwMDBFMUZFRkUzRkVGRTNERkY1N0ZGRUZGN0VGRkZGRkZGRkE0Cis6MTAxNDkwMDBFRjZGRjZGRjdERUZEN0RFRkY3REVGRkZGMkZGRkZGRjdGCis6MTAxNEEwMDBGRkZGRkY3QkRFRkJFNkVFRUYzNzZFRjM3RUVCMzdFRjAxCis6MTAxNEIwMDBGRkMxRkZGRUZGRjdFRkZGRkZGRkJGM0ZEMkRGQkYyRkYwCis6MTAxNEMwMDA3QkUyRkZGRTNCQkREQkZGRkVGRkZGRkZGRkZGRUZGRTBBCis6MTAxNEQwMDBGRkZCRkZGRkJGRkZGQkRGRkZCRkZGQjdGRkZGQkZFRjVDCis6MTAxNEUwMDBGRkZGRkZGRkZGRkYwRkZGN0ZGRjFGRUZGMUZERkZGNjg1Cis6MTAxNEYwMDBBRkZGRkZGRkZGRkZFRkZGRkZGRkZFOUZGRkZGRkY3NzQ1Cis6MTAxNTAwMDBFRkY3RkJGRkZFNUZGRkZGQkZDRkZCRjdEREY3RjVGRjU4Cis6MTAxNTEwMDA1RkQ1RjVGRDdGNUZEN0Y1RkZGQjBGRkZGRkE5RUE3QUU3Cis6MTAxNTIwMDBGRkFGOEZGRURGQUZFRkZCRkVGRkJGRUZGQkRGRTU1RjNGCis6MTAxNTMwMDBGRkZGRkZGRkZGQkQ1N0ZGRkY2Rjc3QkZGN0ZCRkY3Rjg5Cis6MTAxNTQwMDBCRkY3RkZGQ0JGRkY5RkZGRkZFRkZGRkVGRkZGRkYxRjg3Cis6MTAxNTUwMDBDRkZGRkNGRkZGRkZGRkZCNjVBRkYzN0NGRjNGREZGRjJCCis6MTAxNTYwMDBGREU5RkU3RkU3RkZGRTdGRkZGRkZGRkZGREUzREZGQkZGCis6MTAxNTcwMDBEQkY2RkRFRjVCRkJGRkRGRkNGRjNGREZGM0ZERkY3RkYzCis6MTAxNTgwMDBERkVGNjZGRkRGQURFQjdBREVGN0Y3RTdEOUZEOUY2N0E4Cis6MTAxNTkwMDBEOUY2N0Q5RkU3REZGNTQ3RkQ2NTVCRDZGNEZFRkZFRkVCCis6MTAxNUEwMDBGRjZERjZEREI3NkREQjc2RENCNzdERkE5QkY2NkQ5REUyCis6MTAxNUIwMDA2NzU5REZGN0RERkZFQkZFQkZBRkVCRkFGRUJGQUZFMzJFCis6MTAxNUMwMDBEMTlGRkZCREJGRUZGRUY3QkZCRkY3RDc3RkRERjc5RDEwCis6MTAxNUQwMDBERjdGREZGN0ZGRTA3RkZEQzFERkY3RkRDNzdGN0ZGQjI4Cis6MTAxNUUwMDBGRkJCRUNGQjNFRkZCRkVDRkJGRkQ4N0ZCRjZDRkZCRTM5Cis6MTAxNUYwMDBGRkJGRURGRkVGRkVGQkJGRUZGQkZFRkZCRkVFRkZDNTQyCis6MTAxNjAwMDBGRkFGNkZGRkZDRkQzRkU3RkZGRUZGRUZGQkZFRkZCRkZECis6MTAxNjEwMDBFRkZCRkVCRjg5RkVGQUJBRkVCRkFGRkJGNkY1RDk3RDQwCis6MTAxNjIwMDA5NzY1RDk3NDVEOTc2NUQzRkVENkZGQkZGN0ZERkY3RjQxCis6MTAxNjMwMDBCRkNGRkJGRUZGRUZGQkZFRkZCRkVGRkJGRkY2OEZGQjE1Cis6MTAxNjQwMDBGRkVGRkI3RURCRkVGRkJFRUZFRUZCQkVFRkJCRUVGQjc0Cis6MTAxNjUwMDBCRUZGRkZERkZGNDNGRkZGRkJFRjVGQjdGRTdGRTdGOTUyCis6MTAxNjYwMDBGRTdGOUZFN0Y5RkU3RkY5QkZGRUFGNzdGREZGMkZBRjRCCis6MTAxNjcwMDBBN0ZFRkZFRkZCRkVGRkJGRUZGQkZFRkZGMTdGRUZERkZCCis6MTAxNjgwMDBGRjk3RjVFRkZGREZGRkZGQkZGRkJGRkZGRkZFRkZGRjhECis6MTAxNjkwMDBGRkUwRkZGRkY5RkUyRjhCRTNGOEJFNzc5RkY5REE3N0MzCis6MTAxNkEwMDA5REU3NzlERTc3OUZEREZGRkRGRDdGNUZEN0ZERkY3RjQzCis6MTAxNkIwMDBFN0ZFN0Y5N0U3RkJGRUZGQkZFRkZGQUJGRkVGRkFGRTEyCis6MTAxNkMwMDBCRkFGRkZGQUZGRkZERkZGRkJGRkY3RkRGRjdGREZGRjhECis6MTAxNkQwMDA2N0ZGRjdGNUZGRkZGRkRGRkRGRkZGRkZGRkZGRkZGRkU2Cis6MTAxNkUwMDBGRkZGRkZGRkZGRUZGRkJERUJGRkZGRjdBREVCRkZERkZFCis6MTAxNkYwMDBGREZGM0ZERkY3RkRGRjdGREZGRjVGRkZGN0ZGRkZGRDMwCis6MTAxNzAwMDBCRkZGQ0JGNEZGN0ZEM0Y3RkQzRjdGRDNGN0ZGRkMzRjU1Cis6MTAxNzEwMDBGRkVBRkFCRUFGQUJFQkJBRjQ5NTZCNTJENEFEMkY0QUU5Cis6MTAxNzIwMDBEMkY2QkZEMjdGRjczRkZGRkZGMzdGRkZGRkY3RkZCQThECis6MTAxNzMwMDBERkZCRkRGRkJGRkZGQkZGRjg3RkVBRkZGRUZFREZGRkUxCis6MTAxNzQwMDBGN0ZGN0ZCQkZGRkZCRkRGRkJGRkZGQkZGRkIxN0ZGRkU3Cis6MTAxNzUwMDBGQkVGRkZGRkZGRkZGRkJGQ0ZGRUZGRkZFRkZGRjdGRjM2Cis6MTAxNzYwMDBGRkZGRjFGRjY5QkVGQUJGQUZFMkZGRkVGREFGRjNGRTgwCis6MTAxNzcwMDBGRkJGRUZGQkZDRkZGRjA3RkQ5NURCREY3RkRGQUZGRjY4Cis6MTAxNzgwMDBGN0FGMzZGRUJGNjVFQkY2RkU5RjZGRkUwN0ZGQ0ZGRjlDCis6MTAxNzkwMDBGOEZFRkZDRkZGRjZGQUU3RkJGRUZGQkJFREY5RkZGRjE4Cis6MTAxN0EwMDBGRjVGRkZGRkZGNzVGRkVGN0VGREUwRTg1RUQzRTVGOTI5Cis6MTAxN0IwMDAzRTVGRDdGN0ZGRkEyRkZCRkZGRkZGRkZGRUZGRkY3RjI0Cis6MTAxN0MwMDA3RkQ3RjU3RDVGNTdENUY1RUZGRkYzN0ZGQzdGRkZDNzMwCis6MTAxN0QwMDBGMUZGRkYxRkNGQjBGRjNGQ0ZGM0ZDRkYzRkNFRkZFNDkxCis6MTAxN0UwMDBGRkRGN0ZGRUY3QkJGRkZGREZFRkVFRkZCRkVGRkJGRThDCis6MTAxN0YwMDBCRkJGRUZGRkQxRkZGRkZGRkRGQkZGRkRGRkZCOUZFOTM5Cis6MTAxODAwMDBGRTdGOUZFN0Y5RkU3RkJGRkZCM0ZGRkZGN0ZGRkZBRjRDCis6MTAxODEwMDBGN0ZGQjYzRkVCRkFGRUJGQUZFQkZBRkVCRkZFQTdGRjQ2Cis6MTAxODIwMDBGRkZGRkZGRkY3RkZGRkZGRkU5RkY3RjlGRjdGOUZFNzM3Cis6MTAxODMwMDBGRkZGRkVBRjZGRkZGRkZGOUZGRkRGRkY3RDVGRERGRjVECis6MTAxODQwMDBGQkJGRTdCQkZGRkJERjZENUY3RUZGRkZGRkZGRkZGRjFGCis6MTAxODUwMDBFQkY3RkZFN0VGRjdGRkZGN0ZGRkY3RkZGQzhGRkZFRkVGCis6MTAxODYwMDBGREZFRkZCRUY0RjI3REQ3Q0ZGRjNGRkZGRkZGRkZGRjdFCis6MTAxODcwMDBGRkNGNkJGRkJGM0ZGQkYyRkM3RkVCRkY5RkZBRkZGRjQ5Cis6MTAxODgwMDAzRkZGRjNGRkZGRkQ3MEY3RkZGRkJGRkZGQkQ3RkVGNTQ0Cis6MTAxODkwMDA3N0ZGMTVERDc3RkRGRjdGREZGN0ZCQ0RCRkZGRkRGRjk2Cis6MTAxOEEwMDBGRkRGMzdDREY5RUNGRUVGQkJGNEZCM0Y0RkIzRkZGRDlECis6MTAxOEIwMDBDQkZGRTk3RTU0OUZFNTRCQjdGRkREN0RDNzcxREQ3NzM4Cis6MTAxOEMwMDA1REQ3NzVDRDdGRDZGRkQzRjZGOTNGNkQ5NUFGN0ZGRTFGCis6MTAxOEQwMDBGRkVGRkJGRUZGQkZFRkZCRkVGNkM3RkZBRDdCQ0FGRkNFCis6MTAxOEUwMDBCRkJGRUZGREUzREZCN0VERkI3RURGMzdFREUzRkJERkVGCis6MTAxOEYwMDBGRjUyNUMxNUZEQ0Y3RkRGRkVFRkVGRkJGRUZGQkZFQzdECis6MTAxOTAwMDA3QkZFRkZGRTNFN0ZEQUY3RkRGRjdGRkZGRkZCRUZCQkI1Cis6MTAxOTEwMDA2RkZCRkVGRkJGRUZGQkZGRjc3REZGRDhGRkZEQkY3RjMzCis6MTAxOTIwMDBGQkZGRkY5RkZCRkU3RjlGRTdGOUZFN0Y5RkVBN0ZGNkFECis6MTAxOTMwMDBCRkJENkE1QUY2RTVCRjc3NUY2RERENzc1REQ3NzVEREIwCis6MTAxOTQwMDA3N0ZGQTVCRkNGRkJGRkZGQkZDRkZCRkRGRkJGRjNGRUMwCis6MTAxOTUwMDBGRkJGRUZGQkZFRkZGREFCRkZCRkJGRkZGQkZGN0ZFRjU2Cis6MTAxOTYwMDBGRkJFRkJFRUZCQkVFRkJCRUVGQkJGRkZCNUZGRDBCQzg3Cis6MTAxOTcwMDBGRDJGNEJGN0ZGRkY5RkY5RkU3RjlGRTdGOUZFN0Y5RjRCCis6MTAxOTgwMDBGQThGRkRBQkZBREFCRkFGQjNGREZGQkZGQkZFRkZCRkJGCis6MTAxOTkwMDBFRkZCRkVGN0JGRkY5RkZGNzdGN0JERkQ3N0RGRkY3RTExCis6MTAxOUEwMDBERkVEQkJGRUZGQkVFRkZCRkVGRkZBM0ZGRkJFNkY4RjFBCis6MTAxOUIwMDBFNkY5RkU3RjlGQzdGRTdGOUZFN0Y5RkU3RjlGRTdGQjZCCis6MTAxOUMwMDA3RkZGN0ZDRkZGRkRGRkZGREZGQkFGQkZFRkZGRkVGRjFFCis6MTAxOUQwMDA5RkVGRkJGRkZDRkZGQkZFRkZGRkZGRkZGRUZGRkZGNzlDCis6MTAxOUUwMDBGRkZGRkZGRkZGRkZGRkZGRkZGNUZGRkZGRjNGREZGN0Y5Cis6MTAxOUYwMDBGRkZGN0ZFRkZFRkZCRkZGRkJGRkZGQkZFRkZGQjM3RkU4Cis6MTAxQTAwMDBGRjdCNUVGN0ZERkY3QjdGRjdGRjdGREZGN0ZERkY3RjRCCis6MTAxQTEwMDBERkY3RkYxN0ZGRkZGRjdGRkZGRkRERjZGQ0JGQ0JGMjE1Cis6MTAxQTIwMDBCQ0JGMkZDQkYyRkNCRkZFOEZGRkZBN0VCRkE3RUJEQTY1Cis6MTAxQTMwMDBGQ0JGQUY3QUZFQkZBRkVBRkFGRUJGQUZGNERGRkVGRjM2Cis6MTAxQTQwMDBGMzNDN0YzRUZGQ0ZGOEJGOEZFM0Y4RkUzRjhGRTdFODIwCis6MTAxQTUwMDBGRkZDOUZGRkZGQ0ZFQkIzRTdGQjdCRjNGRUZGQ0ZEQjhBCis6MTAxQTYwMDBGQkZCQkY2RjZGREZFQzdGRkZGRkY3RkRGREZGRkZGRkFECis6MTAxQTcwMDBGRkIyQkZGRkRFRkRCREVGRkJGNkRGRUFFN0RCRkVCQjNCCis6MTAxQTgwMDBGRkVCRkJCRjlGOEZFOEZFM0Y4RkEzRjhGRTNGOEZGRjZBCis6MTAxQTkwMDBGODdFRkRGRDdGRkZGQkNERkZGREZGNUZFRkZERkZGRjRDCis6MTAxQUEwMDBERkY3RkRGRkJFOTBGRkZGRUVGRjNGQkZGM0JCRkVCN0NBCis6MTAxQUIwMDBBQkZBRkVBRkFERUFGQURFQUJGRjYzRkZGRUYyRkZCM0I3Cis6MTAxQUMwMDBGRkRGRUU3REZGMDNGMUY0M0YxRkMzRjFFQzdGRkU2RkZDCis6MTAxQUQwMDBGRkZCRkJGRjlGRkZCRkZGN0I1RkZERkZERkY3RkRGRDEwCis6MTAxQUUwMDA3RjdGREZGRUNGRkJGRkZGQUZGQkZGMUZFRkE1RkRCRjNCCis6MTAxQUYwMDBERkZCN0RGRkJGREZGQkZGRkQzQkZGRkZGRkZGRkZGREM4Cis6MTAxQjAwMDBBRkYzRkZGQjdGQkZEN0ZCQkY3RkJCRjdGRkY4N0ZGRkM0Cis6MTAxQjEwMDBGQTVGRDdGRkRGN0ZFRkZGRkY3RkRCRjdGREZGN0ZERkEwCis6MTAxQjIwMDBCN0ZCRUNGRkZGRjdCRkVGRkRGQ0ZCRkZFRkYwRkUzRjY1Cis6MTAxQjMwMDA4RkUzRjhGRTNGOEZFRjhERkZGRkVGN0ZCRkZGRkJGRkNGCis6MTAxQjQwMDBEQkJGRkZGRkZGRkZGRkZGRkZGRkZGRUZEOEZGMkU3RjkxCis6MTAxQjUwMDBCRUVGRkU2RUZGQkZGOUZGRkZGM0ZGRkZGRkZGRkZGRkNBCis6MTAxQjYwMDBGQzY2QkU0N0YzN0ZERkZFODc5RkZGRkZGRkZGRTdGRkI3Cis6MTAxQjcwMDBGRkZGRkZGRkZGRDY2RjdDRkI0RkQyRkZGRDJCRkVGRjY5Cis6MTAxQjgwMDBGRkZENUZEN0Q1RjU3REZGRkZGRkJGOUJGRkZGREZCN0YxCis6MTAxQjkwMDBGRkZGREZGRjNGQ0ZGRTdGQkZFRkZCRkNGRjNGRkZEOTIzCis6MTAxQkEwMDBCRkZFOTdFQzhGQjdGRTlCN0RGREI3REQ3NzFEQzc3MTNDCis6MTAxQkIwMDBERDc3NUREN0YzNkZGRDNGNzNEREFGRkQ3QUZGRkZBRkRDCis6MTAxQkMwMDBGRUZEQkZFRkZCRkVGRkJGRUY2NjdGRkZGRkJGQkZGRjY2Cis6MTAxQkQwMDBGQkZGRjdERkZERkI3RERGQjdDREYzN0M1RjNGOTEzRjgwCis6MTAxQkUwMDBGRjNERUY3QkZGRkNGRkNBRUZGRUZGQkRFRkZCMUVFN0YzCis6MTAxQkYwMDBCQkVDN0ZCM0ZGRkQ5RkZGRkZGRUZGRkY3RkJGRkJGRTQwCis6MTAxQzAwMDBGRkJGRUZGQkVFRkJCRkRGNjdGRkZGQkZFRkRCRkZCQ0ZDCis6MTAxQzEwMDBGRTdGRkJGRjlGRUZGOUZFN0Y5RkU3RjlGRTg3RkZFRTU4Cis6MTAxQzIwMDBGQkJFRTVCRkVGRjlENzY1RjdEREU3N0RERjc3NURENzcxCis6MTAxQzMwMDA3RkY4OUJGRUZGQkZFRkZCRkZGRkJGRUZGQkZGN0ZDRkY4Cis6MTAxQzQwMDBGM0ZDRkZCRkVGRkZEQjNGRUZGQkZFRkZERkZGRkVGQjIxCis6MTAxQzUwMDBCQkVGQkZFRkJCRUVGQkJFRUZCQkZGRkM3RkZEM0I1QjEzCis6MTAxQzYwMDBENkU1RkQ0RkMzRkJGRkJGRUZGQkZFRkZCRkVGRkJGRjYyCis6MTAxQzcwMDBCNEZGRkFCQzhGQjJFOUQyMkVDRkZCRkZCRkVGRkJGRTYxCis6MTAxQzgwMDBGRkJGRUZGQkZGRUNGRkZERkQ3RkRGRjdFNERGNUZGRjUyCis6MTAxQzkwMDBGRkZCRkZGRkZGRkZGRkZGRkZGRkMzRkZFRkU2RjhGRUM1Cis6MTAxQ0EwMDAzRjhCODNGOUZFN0ZFN0Y5RkU3RjlGRTdGOUZFN0YxNzAxCis6MTAxQ0IwMDBGREZGRkZGRjdGNUZGNzJDRkZGRkZGRkU3RkZGRTdGOUQwCis6MTAxQ0MwMDBGRTdGOUZGRTJGRkZGRkVGRkZGRUJGRUZBREZGRkY3RjA5Cis6MTAxQ0QwMDBGRkZGRkZGRkZGRkZGRkZGRkVERkZGREZGRkZERkQ3RkQ5Cis6MTAxQ0UwMDBERkY3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZBM0ZGRUYyCis6MTAxQ0YwMDBGN0ZERUY3QUZGQjFCREZGN0ZGN0ZERkY3RkRGRjdGRDU3Cis6MTAxRDAwMDBGRjdGRjMyN0ZGREZGRkRERkZGQzlCRkZDQkZDQkYyRjM3Cis6MTAxRDEwMDBDQkYyRkNCRjJGQzlGRkRFRkZERkFGRUJEQUZFQkJBRkJDCis6MTAxRDIwMDBFQkY4RjdBRkU4RkFGRUJGQUZFQkYyRkZGREZGRkZFRjE2Cis6MTAxRDMwMDBCREQ3QkZGRkZGREU4RkI4REUzNzhEQTM3OERBM0Y4RkM4Cis6MTAxRDQwMDBGRkExRkZGRkZCRkJGRkZGRkZGRkE3QkRGQjc2RkRCRjcyCis6MTAxRDUwMDBFRkRCRkVCQkJGRkUyNzdGRkZGRUZFRkRGNUZGRUZGNUNECis6MTAxRDYwMDBERjFGRTdGREZGN0ZERkY3RkRGRkZGQ0RGREFFRkZGQUQxCis6MTAxRDcwMDAzRTNGQUJGREY4N0U4RkUzRjhGRTNFOEZFM0Y4RkZGRUJCCis6MTAxRDgwMDAxRkVGREZCRkZFREVERkQ5RkZERkJDRkZGRjdGRkZFRjBFCis6MTAxRDkwMDBGRDdGREZGN0Y5M0ZGRUZGRkY2RkZFREVCRkY3RURFQUU1Cis6MTAxREEwMDBGRDhGODNGOEVBM0Y4RkVGRkZGNDdGRkZFRkVGN0JGM0M4Cis6MTAxREIwMDBGMTVGRkZGRkYxM0I3RkRGRjdGREZGRkZGRkZGRTBGRjdDCis6MTAxREMwMDBGRkZGRjdGRjZGRkY3RkZGRkZGN0RFRjdCRkVGRkJGN0M4Cis6MTAxREQwMDBGREZGRkZGNUZBRkZGRkZCRTdGRkYzRjg3RkYzREZGRkZGCis6MTAxREUwMDBGRkZGRkZGRkZGRkYxRkVGQkJGRkZGRkZGRkZGRkZGRDM5Cis6MTAxREYwMDBGRjdGRkY5RkZGRkZGRkZGRkZGRkZGQ0ZGRjM3RkZGRkNCCis6MTAxRTAwMDA3RkRGNzc1REU3RkNGRkJGRjdGNUZCRkZGRkQ3RjVGQjUzCis6MTAxRTEwMDBGRkZGNDVGRDdGRUFGREJFQkZERkY3RkZGRkRCRkJGRUY3Cis6MTAxRTIwMDBGRkJGRUZGRkZGRkZGQjVGN0ZGRkZFRkZGRkZGRkZGRjM3Cis6MTAxRTMwMDBGRkZFRkZFRkZERkY3RkRGRkZFRkZCRjgwRkYzRkZGOTgyCis6MTAxRTQwMDAyRUZCRkVGQ0YzRUZGRkZGQkZGRkZCRTdGRkZFN0VGRjc1Cis6MTAxRTUwMDBDMDZCQ0ZGRjM0REZGMUZERkZFRkZGRkZGRkRGRjdGRENBCis6MTAxRTYwMDBDRjdGOUNGREZENkNGN0ZGRjZGREVCMkI5RkZGRkNGRThCCis6MTAxRTcwMDA3RUZGRkZGRkZGRDdGM0Y3RkZGQkUxQkZGRkVCN0FERTRCCis6MTAxRTgwMDBEN0ZCRkZGOUZFRkZGRkYzREU3RkZERTc3RkZGRkRCQjIyCis6MTAxRTkwMDBGRkZGN0VDQ0Y2QUY1RjdGRkVGNDdERjdGREJCNkVEQjEwCis6MTAxRUEwMDBCN0ZGRjdERjY2RkZGRkY3M0RDRkRFQkRGRkZGREVEQkVECis6MTAxRUIwMDA4REY3N0VERkI3RUY3RkZGRjY4N0ZGRkZFRkZFREVCRjE4Cis6MTAxRUMwMDBGRkZGRkZCQkVGRkRGRjdCREVGNzNGRkZCRkZCREJGRjRECis6MTAxRUQwMDBGMkI2RkRCRDdGRTdGRkZGRkY2RkY3RkZGRkZGRkU3NzY1Cis6MTAxRUUwMDBGRkJGRjhBRkZGREZCRkZGQkY3RkZCRkZGRkZGREJGRUUyCis6MTAxRUYwMDBGRkJGRkZGQUZGRkRGRkY2N0ZGRjlGRkZGRjNGRUZGOEY5Cis6MTAxRjAwMDBFRTdFOUZCQUZFQkY4RkVGRkVGRUY5RkZGQTdGRkU3RUU4Cis6MTAxRjEwMDBCRkFGRkI5NkZEOUZFRjVFNjVCRUVGNUJCNkZGQkVFMzE2Cis6MTAxRjIwMDBGRkI1QkZGRkZERkY3RkZGRUZERkZFRkZCRkZCRkVGRjQzCis6MTAxRjMwMDBCRkNGRkZGRkZGRkQ5QkZGRkVGQkZFREZGRjdGRkZGNzM1Cis6MTAxRjQwMDBGRUZGREZGQkZCRkVGRkZGRkZGRkZGQjdGRUZBRkZBQjZECis6MTAxRjUwMDBFRkZGRkRCNTdCN0ZGQkY3RkRGRkZGRERGRkVGOEZGRkExCis6MTAxRjYwMDAyRkZGRkI3Q0ZGM0ZERjczRUJGRTNGRkZFRkZCRkVGRjJFCis6MTAxRjcwMDBFRkZERkZCRkZEMEZGRkZGRkZGNUY5RkY3RkQ3RkRGRjZGCis6MTAxRjgwMDBERkZGRjdGQkZGN0ZCRkZGRkZGMDlGRkZGRTdGOEJFM0NECis6MTAxRjkwMDBGOURFMjc5QkU2QkU3RjlCQzNGOERFN0Y5REU3RkU3RkQxCis6MTAxRkEwMDBGRkZGNUZEN0ZGRkZGRjRGRkJGRkZGN0ZGRkFGRkY5RkVECis6MTAxRkIwMDA3RkZCRkZFOEZGRkZGRUJGQUZGRkZGRkVCRkVGRjdGRkI2Cis6MTAxRkMwMDBCRkZGRkZGRkZGRkZGN0ZGRkNGRkZGRkQ3RkZGRkZGRkVFCis6MTAxRkQwMDBGRDNGQ0ZGRkZGRkZGRkY3RkZGRDdGRkZGRjkzRkZGRkY5Cis6MTAxRkUwMDA3QURGRjdGRkZGN0I3RkI3RUZGRkZGRkRCRkZERkJGRjUyCis6MTAxRkYwMDBGN0ZGRDdGRkZGRkZGQzlGNkZDQkZGRjRCQkRGRDZGREUyCis6MTAyMDAwMDBCRjJGRDNGN0ZGREZGRkNGRkZGQUJFQkRBRjZBREFCRTQ3Cis6MTAyMDEwMDBCQkFCM0FCRTJEQUVFQkRBRjYzRkFERjVEREZGQ0ZGMTRGCis6MTAyMDIwMDBGRkY5N0ZGRjczRkVGRkNGQzNGNEY3MkZGM0ZGRkNGRjMxCis6MTAyMDMwMDA3QzFGRkYzRjRGRkY3RUZGRUZCREY2RkVGRjJCRUZEQzY3Cis6MTAyMDQwMDBGQkZERkZGQkZGRUE3QkZGRkZGRkZGRkZGQkY3REZGRjZGCis6MTAyMDUwMDBFMzdERkZCN0ZGQkZGRkZGREZGRkY4RkZCRkZGQkZFQjcxCis6MTAyMDYwMDBFN0ZBRkUzREJGRTlGQ0JGRkZGQUZCRkVGRkZGRkZEOTI5Cis6MTAyMDcwMDBGRkZGRkZGNjdGRkZGNjdERkZERkNGRkRCRkZCRUY3RUFCCis6MTAyMDgwMDBGRjdGRkZGRkQzRkZGREZCRkZGQkZGRkZGRkVGRkZCRjY2Cis6MTAyMDkwMDBGRUZGRjdFRkZGRkZGRkZCRkY4N0ZGRkRGRkZGRkZGRkU3Cis6MTAyMEEwMDA3QkZFRkZGRTNCRjdGN0ZGM0ZGRkZGRkZGRkZGMEZGRjRBCis6MTAyMEIwMDBGRkZGRkZGQkZGRkZGRkY3RkZGRkFERkZGRUY3RkZGRjk3Cis6MTAyMEMwMDA1RkZGRkZERkZGRkRGRkY1RkZERkZGQkRGRkU5RkZDNzlDCis6MTAyMEQwMDBGM0ZGRkZGN0ZGRjNGRkY4M0JGRkZGN0JERkJGRkJFRkYzCis6MTAyMEUwMDBGQkZGRkJGN0Y3QkJGRkZGRkZGRkZCRkZGRTdGRjM3RjZECis6MTAyMEYwMDA1RUI3QkZGRDdGRkZGOTdGRkJGRkVCRkQ3RjdGRkZFRjRCCis6MTAyMTAwMDBGQkUwM0ZGRUJGQkZERkZGN0VGRkY3RkZGRkZFQkZGRjJECis6MTAyMTEwMDBEQjc4RkZGRkZGRUVBMUJGRjVERUZCRjdGRkZCRkZGRjY0Cis6MTAyMTIwMDBGRkZGRkJGRkZGRDdGRkZGRkZGRkVGRjBGRkZGRkZGMzE2Cis6MTAyMTMwMDBGN0ZGRUZGRkU3Q0ZGRkZCRkZFRkZGRkY5RjlGRUZGQ0Y2Cis6MTAyMTQwMDAxNkJGRkVGM0U0RkZGRkM2RkZFN0ZGRkZGREZGQkZGRjgzCis6MTAyMTUwMDBGRjNGRkZCRkQ2QUY3RkZFNkI3RTdGRkZBRkZGRkZCRkFFCis6MTAyMTYwMDBGRjVGRkZGRUZGRkZGRUZGRkZCRERCRkZGRTVGRjJGRjM1Cis6MTAyMTcwMDBGRjVGRkZGRkZGRkZGRkZGRUY3RkZGRkZGRkZGREVCRjAwCis6MTAyMTgwMDBGRkZGRUZGQjc3RkVCRDdGNUZGRkZGRkZERjZGRURGRjIwCis6MTAyMTkwMDBGREZGN0ZGRDZGRkZGRjc3REFDRkZENUZGRkJGRkZGRjIyCis6MTAyMUEwMDBERjdGRkZGQkZGRkZGRkZGNjY3RkZGRkVCRkU3QkZGQTlBCis6MTAyMUIwMDBGRkZFRkZGRkZGREZGRjU5RUZGRkVGRkI3Rjg5RkZGRjEwCis6MTAyMUMwMDBFOUZGNkZGRkY1RkZGRkZGRkZGRjdGRjJGN0ZGRkZFRjc0Cis6MTAyMUQwMDBGODdGRkJGRkZERkZGRkQ5RkZFRkJCRkZGRkZGQkZFRjY2Cis6MTAyMUUwMDBERUZGRkY5RjdGREZGRkY3RkZGRkZGRkZERkZGRkZBRjk4Cis6MTAyMUYwMDBGRkZGRjczRkVCOUZGRTdGOUU3RjlGRkU4N0ZGRUREQjlDCis6MTAyMjAwMDA1NkZGQkZBRjBCRDJGRkVGREI2RTdEQkQ2RkY4RkUzRjE5Cis6MTAyMjEwMDBGQTVCRkZGREJGRUZGRkJGNkZEQkU2RkZGRjNGRkZERkI2Cis6MTAyMjIwMDBGRUZGRkZGRkZGREEzRkZGRkJGRUZFRkZGRkRGRjdCRDE0Cis6MTAyMjMwMDBGRkZERkZGRUZGRkJGRkZGRkZGRkYxNUZGRDlGREZGREU3Cis6MTAyMjQwMDBGRkZEN0ZGRkZGRkZGRjc2RkFGRkZGN0ZFM0Y4RkZBRUEyCis6MTAyMjUwMDBGRkZCN0U5RDczRkZGQTdGREZGRkZGN0ZGRkZCQ0RGRjVDCis6MTAyMjYwMDA3RkVGRkJGRkZERkZGNzdGN0ZFRkZGRURGRkZGRkZCNTg4Cis6MTAyMjcwMDBGRkJGRkZCRkZERUZEQkY3RkY5M0ZGRUZFMkY5QkU3RjhDCis6MTAyMjgwMDA4QkU3RjlGRTZCRTdGOUZFN0Y5RkU3RjlGRTdGNDdGRkRCCis6MTAyMjkwMDBGRkZERkY5RkZGRDdGRkZGRkZGRkY1RkY5RkZGRjdGRTRCCis6MTAyMkEwMDBGRkJGRkU2RkZGRkZGQkZGRkZGRkFGRkZGRkZGN0ZGQkU3Cis6MTAyMkIwMDBGRkZFRkZGRkZGRkZGRkZEREZGRkZGRjdGRkZGRkZERjc5Cis6MTAyMkMwMDBGRkZGRkY1RkZGRkZGRkZGNUZGQkZFRkZGODM3RkZGRjMyCis6MTAyMkQwMDBFRkZGN0ZGRUJGRkZGRkZFQkZGRkZGN0ZGRkJGRkRGRkUyCis6MTAyMkUwMDA3RkZBN0ZGRkZGNkZGRkZGN0RGRkNGRkZGRkZGNEZGRkY1Cis6MTAyMkYwMDBGMkZGRkZGRkZGRkZGQUJGRkZBRUVCRkFGRUJCQURFQjU1Cis6MTAyMzAwMDBGQUY3QUY2QkZBRjZCRjI1RTlGMjdGNDVGRkZGRkRGNzVECis6MTAyMzEwMDBGN0JGRkZERkZGRkZCRkZCRkZERkYzRkZGNzNGQ0ZGRjlECis6MTAyMzIwMDBBMUZGRkZCRkU3RkZGRjdGRkYzREZGRkZGRkY3RkYyRjhECis6MTAyMzMwMDBGRkZCRjU3RkZFNTdGRkZGRkZGRkZGRkZGRkZGRkZGN0VDCis6MTAyMzQwMDAzRkZGRkVGRkZGRkZGREZFRjdFRUFGRkVFRUU3RkFGRkY5Cis6MTAyMzUwMDBGRTlERjk1RUZFRkZFQkZGRkZERkE3RkZGRkZGRkNEQjRCCis6MTAyMzYwMDBGRkZGRkY3RUZCRkZGRkVGRkJGREZGREJGRkZGRkZFRjRDCis6MTAyMzcwMDBGRkZGRkZGREJGRkVCRkZGNkY3RkZGRjdGRkZGRjlGRjBFCis6MTAyMzgwMDBGN0ZGQkZERUY3RkZGRkZGRkE3RkZEQkY1RkZGRkZCRjc1Cis6MTAyMzkwMDBGRkVERkZGN0JGRkZGRkVGRkZERkZGRkZGRkU2RkZGQkY0Cis6MTAyM0EwMDA3RkZGRkZGRkZGRkZGN0ZGRkZGRkZGRkZGRkZGRUJGRkQ5Cis6MTAyM0IwMDBGREZGRjVGRkY2N0ZERkJEQ0ZGRkZGRkZGRkRGRkZGRjc0Cis6MTAyM0MwMDBGRkY5RkZGRkZGRkZGRkUzRkZFRUJGRkY3REVGRkVGRjIzCis6MTAyM0QwMDBGRkZGQkZGRkZGRkZGRkZFRkZGRkZGRkZFN0ZGQjVBRTAxCis6MTAyM0UwMDBGRkZGQjZGRUJGRkZGRkJGRkZGRkZGRkZGRkZGRkZGRkM3Cis6MTAyM0YwMDBGRjI3RkZFRkZFN0ZERkZGN0VGRkZGRkZGRkZGRkZGRkY3Cis6MTAyNDAwMDBGRkZGRkRGRkY3Rjk5RkZGNUZGRkZGRkZGRkZGRkY3RjZDCis6MTAyNDEwMDBGRkZGRkVGRkZGRkZGRkZGRkZGRkZGMEZGRkU3QkZGRTE2Cis6MTAyNDIwMDBGRkJGRkZGRkZGRkZGQ0JGRkZGRkZFRkZGRkZGRkZDNDdCCis6MTAyNDMwMDA2QkZGMjkxRkZCQUZGRkZGRkZGRkZGRUYxQkZFRkZGQzQyCis6MTAyNDQwMDA2RkZGRkZGRDZBRjdEN0Y1QkZGRkZFRkZGRkZGRkZGRjNFCis6MTAyNDUwMDBGRUJGRkZGRkZBRkZGRkY3RkJEREJGRkZFN0ZGRkZGRjU4Cis6MTAyNDYwMDBGRkZGRkZGRkZGRkQ3RkZGRkZGNUZGRkZGN0ZEQjNFRjZFCis6MTAyNDcwMDBGRDdFNURGRkZERkZGRkZGRkQ3RkQyRjVGQjdFQ0JCNzRECis6MTAyNDgwMDBGRkZGRkZDNkZGRkRFRTYzRkZGRkZGRkZGRkY2RkQ2NUU5Cis6MTAyNDkwMDA1QkRGRkZENUZGRkZGRkY2RTdCRkY3QTlGRkZGRURGRjBCCis6MTAyNEEwMDBGRkZGRkZGRkVCRkZGRkZGQUZGRkZGRkZGODFCRkZFM0E3Cis6MTAyNEIwMDBEMEJGRkZFMUZGRkZGRkZGRkZEN0ZGRkZGRjVGRkZGRjgxCis6MTAyNEMwMDBGRkZGQUZGRkRCNzZCRkZGN0ZGRkJGRUZGRUZGQkZFRjdBCis6MTAyNEQwMDBGQkZFRkZGRkZGQkZGMjdGRkY5RkZFQkRGRTdGRkZGRjAyCis6MTAyNEUwMDBGRkZGRkZGRkZGRkZGRkZGRkZGNzNGRUM3RkY2OTVCQjBFCis6MTAyNEYwMDBFRkY4RkVGQ0JGMkZEQUZDQkYyRkNCRjJGQ0JGRUZGRkUzCis6MTAyNTAwMDBBOUJGQ0ZGQkZGRkZGRkZFRERCNzZERjZEOUI2NkQ5QjEwCis6MTAyNTEwMDA3NkQ5QkZGQkZEQTNGRkJGRUZGRkVGRkZGRkZGN0ZERjFDCis6MTAyNTIwMDBGREVGN0JERUY3RkRFRjdGRkZGRjA1RkZGQUZFN0ZFRjlDCis6MTAyNTMwMDBFM0ZGRkZGRDdGRkZGRkZGRkY1RkZGRkZGRDdGRkJBRkJGCis6MTAyNTQwMDBGRjYzQzhGRkJGRUZGRkZGRkE3RkZGRkZGRkZFOUZGN0FDCis6MTAyNTUwMDBGRkZBQkZGRTlGRkI3RkZGRkZFRkQ3RkZGRkY1RkZGRkY3Cis6MTAyNTYwMDBGRkZGRkQ3RkZGRkZCRkZGRjlCRkZGQkUyNzlGRTdGOTFBCis6MTAyNTcwMDBGRTdGOEJFN0ZFN0Y5RkUyRjlGRTdGOUZFN0YxN0ZGRjAzCis6MTAyNTgwMDBGRkZGRkJGRUZGRkZGRkQ3RkZGRkZGRkZGNUZGRkZGRjkyCis6MTAyNTkwMDBEN0ZGRkFGRkZFRkZGRkZGRkRGRkZGRkZBRkY3RkZGRkQzCis6MTAyNUEwMDBGRkVCRkZGRkZGQUZGRkM0RkZGN0ZGRkZFRkZGRkZGRkYyCis6MTAyNUIwMDBGRjVGRkZGRkZGRkZEN0ZGRkZGRkZGRkZFQkZGRkI3QTkwCis6MTAyNUMwMDBERkY3RkRGRkZGRkVCRkZGRkY3RkZGQUZGRkZGRkZGNzVFCis6MTAyNUQwMDBFRkUzRkZEREQyRkZERkZGRkZGMkZDQkZDQkY2RkRCRjc1Cis6MTAyNUUwMDAyRkNCRkY3RkRGREVBRkZGREFFRUJGQUZFOUZBRjRCRDNFCis6MTAyNUYwMDBBRjVBQUVCQkFCNkJEQURFQkZBREQ3NUVGRkZGQkZGQzQxCis6MTAyNjAwMDBGRkRGRkRGRkZGRkZGRkRGRjdGRkZGRkZGRkZERkZGQTJCCis6MTAyNjEwMDAxRkZGRkVGQkVGQkZGREZGRkRCRDc3RkZGRkZGRkY5RDJGCis6MTAyNjIwMDBFRkZGRkZGRkVGN0RGRkZCRkVFRkZGRkZGRkZGRkZGNzc5Cis6MTAyNjMwMDBGRkZGRkZGRkZGRkZGRkVFQkZFNEZCRkZGRTNGRkVGRkRDCis6MTAyNjQwMDBGRkZGRkZBRkVBRkVCRkFGRUJGQUZFRkZGRkZGNTVGNjVECis6MTAyNjUwMDBGRkZFRjdGRjdGRkZFQkY3NUZDNUZEN0Y1RkQ3RjVGRjVECis6MTAyNjYwMDA2RkZCRkY4QUZGRkZGRkZGRUJGRkZGRkZGRkZCQkZCRjFCCis6MTAyNjcwMDBFRkZCRkZGRkZGRkZGQkZGNzdERkZCRkZGRDdGRUZGRkMwCis6MTAyNjgwMDBGRkZGQkY3RkZGREZCRkZGRkJGRkZGRkZGRUVGREZGRkFGCis6MTAyNjkwMDBGRUZGOUZFRjdERkZGN0ZGN0ZGRkZGREZGN0ZERkZFRkZGCis6MTAyNkEwMDBERkZGREZGRkZGRkZGRkZGRkZGRkZGRkZGREZGRkZGQjgwCis6MTAyNkIwMDBGREZGQkZERkQxRkZGODNCRkZGRkZGRkZGRkZGRkZGRjg1Cis6MTAyNkMwMDA3RURCRkRGRjc3REJCNzdEQkZGQkZGRjg3RkVEN0I1RTM5Cis6MTAyNkQwMDBGRkZFRkZGRjRGRDdGRDdGREZEN0Y1RkY3RkZGRkZGRjM3Cis6MTAyNkUwMDBGMjNGRkVGRkJGRkZGRkZGRkZCRkVGRkVGRjNCRUVGRjJFCis6MTAyNkYwMDBGQ0VGRkZGRkZGODVGRkZERkVGRkY1RkZGRkZFRkZERkE1Cis6MTAyNzAwMDBGQkZGNUZCRkZGRkRGRkZGRkZGRkE4RkZGRjlGOUVGRkQ3Cis6MTAyNzEwMDBGRkZGN0ZGM0ZGRkZDRkZGRjdGREZGN0ZGRkZGRkMxNkZCCis6MTAyNzIwMDBCRkNGQTNFNUVGN0ZGRkYzRTRGRkNGOTNGQ0ZGM0ZDRkU1Cis6MTAyNzMwMDBGRkZGRkZENjBGN0RCRjZFRkJGNEZDQUY2RERCNzdCN0ZECis6MTAyNzQwMDA2RERCRjZGREJGRkZGRkZGQkY5QkZBREVCN0I3RURGOTBDCis6MTAyNzUwMDA3RUI3QUNFQkQ2QjNBREVCN0FERkZGRkZGRkQ4QkZGRkEwCis6MTAyNzYwMDBCN0VEOUY2RkRERjc2OERCMzdCMzZDREIzNkNEQjM3RjNBCis6MTAyNzcwMDBGRjdGRjU2RkZERUY3OTNERjc5M0U0N0E5RUFERUE3QTNFCis6MTAyNzgwMDA5RUY3QkRFRkZGRkZGRjc2N0ZGQkM2RkZCQkVGREFGRUQ0Cis6MTAyNzkwMDBGREJGRkJGRUZGQkZFRkZCRkZGRkZCRkZBNUZGRkRBQjk4Cis6MTAyN0EwMDA2Rjc4REUxNzhGNzlERkZERkY3RkRGRjdGREZGRkZGQjFGCis6MTAyN0IwMDBGRkZCRkZFRkZCRUZGQkZFRkZCQkRBRjNFRjNCQ0VGM0RDCis6MTAyN0MwMDBCQ0VGM0ZDRkRGRkZCN0ZGRkZGRkNGNzNGRkJGRUZGRkQwCis6MTAyN0QwMDBGM0ZGM0ZDRkYzRkNGRjNEQ0Y5RkZFMDdGRkFGRUJGRUM0Cis6MTAyN0UwMDBGREJGRUZFQkZBRkZBRkVCRkFGRUJGQUZGQkZFM0ZGQjI3Cis6MTAyN0YwMDA5QkZGN0ZERkZGRjNGRUZGREVGN0JGN0JERUY3QkRFRjYyCis6MTAyODAwMDA3QkZFRkZGRkRGM0ZGRUZGQjdGRkVGRjdGRkJGRURGRUYxCis6MTAyODEwMDBERkI3RURGQjdFREZGRkZGRkZGRDVGRUZFQkZBRkVGNUJECis6MTAyODIwMDBCRjZGRkZGRkZGRkZGRkZGRkZGRkZGRkVGOEZGQThGRkU3Cis6MTAyODMwMDBGRkJGRUZGQjZBRkJCN0VGRkJGRkJGRUZGQkZFRkZCRjg2Cis6MTAyODQwMDBFRkZCRkZFMEZGRkZGRDdGNUNENzdEREZGMzVDRjVDREE1Cis6MTAyODUwMDA3MzVFRDdCNUZEN0ZFRkZGREJGRkZGRTJGOEJFMkY4RjgyCis6MTAyODYwMDBFN0Y4QkU2QkUyRjhCRTJGOEJFMkY5RkU3RkU3RkZEN0Y5Cis6MTAyODcwMDBGNUZEN0ZGRkY3RjVGRDdGRDdGNUZEN0Y1RkQ3RjVGRjBFCis6MTAyODgwMDBGRkZGOEZGRkFGRUJGQUZGRkZCRkVCRkFGRjJGRUJGQTczCis6MTAyODkwMDBGRUJGQUZFQkZGRkZGRTVGRkY1RkZGRkZGREZGRkZENzU4Cis6MTAyOEEwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCRkZFQjdGREMzCis6MTAyOEIwMDBGRjdFREZGN0FERkY3RkY3RkRGRjdGREZGN0ZERkY3RkQ3Cis6MTAyOEMwMDBGNjdGRkZGRkZGREJGNkZDQUZGRkZGRkZGRkY3RkZGRjI5Cis6MTAyOEQwMDBGRkZGRkZGRkZGRUNCRkZGQUZFQkZBRjZBQjhGRUJGQUFBCis6MTAyOEUwMDBGN0E1RUJGQUJFQkZBRkVCRkFGRjZERkZGRjdGREYzMzVCCis6MTAyOEYwMDBEREZGN0ZGRUY3RkM3RkZCRkZGRkZGRkZGRkZGRkZBOTcwCis6MTAyOTAwMDBGRkZERkZGRkZFRkZGRkRGRkZGRkVGRUZGREZGN0ZGRjlDCis6MTAyOTEwMDBGRkZGRkZGRUE3RkZGRkZGNzdERkY3RkQ5RjdGRkU3NzNCCis6MTAyOTIwMDBFRkZGRkZGRkZGRkZGRkZGRkZBRkJGQUZGRkY5QkVCRjJFCis6MTAyOTMwMDA4RkZCRkVGRUVGRkJGRUZGQkZFRkZCRkZGRkZEREY2RjM4Cis6MTAyOTQwMDBFRkZGN0ZGRkJGQkZERkZGRkNGRkRGRjdGREVGN0ZERkE0Cis6MTAyOTUwMDBGRkZGRkYzRkY2RkZDRkZGREJGQkY3RkZFQjdBRkZGRjQ5Cis6MTAyOTYwMDBGRkJGRUZGQkZGRkZGRkZFNkRGREZGNUZGQkZGRkZGNzBDCis6MTAyOTcwMDBGRjVGRjVGRkZGRkZGRkZGRkZGRkZGRkZGOEZGRkJGRjFDCis6MTAyOTgwMDBGRkZERkZGRkZGRkZFN0Y2QkZGRkZGRkZGRkZCRkZGRkJFCis6MTAyOTkwMDBGRkM5RkZGRkZGQkRGRkJGQUZFRkVGM0ZEMUZDN0ZGQkU0Cis6MTAyOUEwMDBDN0ZGRkZGRkZGRkZFM0ZGRkZGRkZGRkRGRkZGNzdGRjE1Cis6MTAyOUIwMDBERkI3RkRGN0ZERjdGRkZGRkZGRkZGNTdGRkY3QTVGREFGCis6MTAyOUMwMDAzRkRGQkZCRkZFN0ZGRkZGRkZERkZBRkRGRkZGRkZGRTIwCis6MTAyOUQwMDA4N0ZGRTlGRkZFRUZCRkVGRkVGRUZGRUZGRkZGRkZGRjA4Cis6MTAyOUUwMDBGRkZGRkZGRkZBOUZGRjNGRkZGREZENTdERkZERjNGRkY2Cis6MTAyOUYwMDBERkZERkY1RkRGRjVGREZGRkZGOThGRkZGRkZGRUU3RkRDCis6MTAyQTAwMDBGRkZGQkY1RUZFRUNGQjNGN0Y5RkVGRjlGRkZGQ0Q2QjRCCis6MTAyQTEwMDBGRkZGRkZDNUYzRkNGQTM4RkZBRjNGRUU3RjlGRkZEOTAyCis6MTAyQTIwMDBGRkZGRkQ3QUY3RkZGM0ZGQUY2RkRCRjJCOUU5RkJGRkMyCis6MTAyQTMwMDBGRkZGRkVGRkZGRUZGRkZCQzVCRkZGRUZGRjVFQjdBRDgwCis6MTAyQTQwMDBDRDc5N0NGRkZGRkZGRkZGRkZGRkZGRkZGRDkzRkZFRjRGCis6MTAyQTUwMDBFQUZFQkZFRjVCRDJDREY1NkQ3N0RGRjdGREZGN0ZERkRECis6MTAyQTYwMDBGRkZGNjZGRkQ1NjU3RDVGNzU5RDY1N0ZENkZCNEZGRkQ4Cis6MTAyQTcwMDBGRkZGRkZGRkZGRkZGNkM3RkZCRkVGRkFGRUZGQkZFQjUxCis6MTAyQTgwMDBGRkRGRkY3RUZGRkZFRkZEN0VEN0ZGNzhERkZGNUZERjE5Cis6MTAyQTkwMDBGNUJGN0ZERkM1RkYzRkY2N0VGRjBGRUZGMjNFQkZGRkMyCis6MTAyQUEwMDBGQjNGRkZGQjdGRkZCM0ZFRkJGNkZERkZEQUY3RkRGRjA5Cis6MTAyQUIwMDA3RkRGRjdCRkZGRkE3RkZGRkZGRkZGOUZGRkYzRENGOTI4Cis6MTAyQUMwMDBCRkNFRTdGOUZFN0Y5RkU3RkZGRkUyN0ZGRUZGQkZFRjhDCis6MTAyQUQwMDBFQkZBRkY5RjY3MUVGRjhGRTdGOEZFN0Y4RkVGRkZCRENBCis6MTAyQUUwMDBCRkZGRkJGRkZGREZGN0ZGRkNGRkJGRkZGRkZGRkZGRkE1Cis6MTAyQUYwMDBGRkZGRkZGREIzRkZGRkVGRkZGRkJGRURGRkZCRUVGRUFDCis6MTAyQjAwMDBGRkZGRUZGRkZFRkZGRkZGRkZCNUZGQjdGREZENkVGRjBECis6MTAyQjEwMDBGRkZFRkQyRkQ4RkVCRjhGRUJGOUZFM0ZGRkZBQ0ZGRjgwCis6MTAyQjIwMDBFN0Q5RkFCRkRGNzdGQ0ZCM0ZBQkZFRkZCRkVGRkJGRTUxCis6MTAyQjMwMDBGRkZGRUUxRkZGREZGN0ZGRkZGRjVGOTczNUJGNUVGRTcyCis6MTAyQjQwMDBCRkVGRkZGN0ZERkZGRkZBQkZGRkJFNkY5RkU3RjhCRUM1Cis6MTAyQjUwMDAyRjhCNjY5NDdEOURFN0Y5RkU3RjlGRTdGMTdGRkZGRjU2Cis6MTAyQjYwMDBGRkY3RjVGRDdGNUZGQkZEOUVGRkZCRkVGRkZGRUZGRjI1Cis6MTAyQjcwMDBGRkEwRkZGRkZGQkZFRkVCRkFGRUJGQjdGN0Y3RkZGRkM2Cis6MTAyQjgwMDBGREZGRkZGRkZGRkZEREZGRkRGRkZGRkZEN0ZGRkZGRkEzCis6MTAyQjkwMDA3RkY1RkZGRkVGRkZGRkZGQkZGRkZGQUJGRUZCRkVGRjc5Cis6MTAyQkEwMDBGN0FGRkZGRkRFRjdFQjVGREZGN0ZERkY3RkRGRkZGRjM0Cis6MTAyQkIwMDBCM0ZGQzlGRUZGRkZGRkZGRDZGRkZGQ0JGRkZGREZGRjI1Cis6MTAyQkMwMDBGRkZGRkZGRkZDOEZGRkJBQkVCRkFGRUI3OEZFQjdBREQ0Cis6MTAyQkQwMDAzQUZFQjdBRkVCN0FGRUJGQUZGRjlGRkZGRkRGRkNGRjEwCis6MTAyQkUwMDBGRkZFQzNGRUZGRkYzM0ZDRkZCRkRGRjNGRkZGQkI5RjEyCis6MTAyQkYwMDBGRkZGRkZFQkRGRkZGRkFGRjc2RkY5QkZFRkZERkZGRjU5Cis6MTAyQzAwMDBGRkZGRkZFMzdGRkZGRkZGRkJGRkZGQkZGREZCRjdGRkMyCis6MTAyQzEwMDBERkY3RkZGRUVGNUZCREZGRkFGRkY4RkZCRkFGRkJGRTgwCis6MTAyQzIwMDBGRTNGRUZFOEZGREZGM0ZERkZGRkZGRkZGRkVERkZGQkUwCis6MTAyQzMwMDBGREZGQUZGRkZGRkVGRUJGREJGRkZGRkZCRkZGREZGRkJDCis6MTAyQzQwMDBGREZGQ0JGRkZGRkZGRkZGQkY2RkZGN0ZCN0IzRkZGRkFFCis6MTAyQzUwMDBERkZGRkJFRkZGRkZGRjA3RkZGQkZGRkZGRkVERkZGNUQwCis6MTAyQzYwMDA3Q0ZGN0ZGRUZGRkZFRkNGRkZGQkZGRkYyRkZGRkZGRjhDCis6MTAyQzcwMDBGRkYzRkZGQkZGRkVGRkZGRkZGRkZGRkZCRkZGRkZGRkI1Cis6MTAyQzgwMDBGRDFCRkZGRkZGRkZGRkZGRkZGRkZFN0NGRkZGRkZGRkJFCis6MTAyQzkwMDBFRkZGRkZGRkZGRkJCRjdGRkRGRkZGRkZGRkZGRkZGRjFBCis6MTAyQ0EwMDBEQkZGRkZGRkZGRkZGRkZERkZGRkYwN0ZGRkZGRkZGRkU5Cis6MTAyQ0IwMDBGRkZGRkZGRkZGRkJGRkRGRkZGRkZGRkZGRkZEQkZGRThCCis6MTAyQ0MwMDA3RkZGRkZGRkZGRkZGRkZGRkZFRkZFRkZCRkZGRkZGRkU1Cis6MTAyQ0QwMDBGRkZGRUZGQUI1RkZGRkZGRjdGN0ZGRkZGRkZGREZGQjk3Cis6MTAyQ0UwMDBGQ0ZGRkZGRUZGN0ZERkJGRkZDQkJGRjlGRTdGOUZFNzRCCis6MTAyQ0YwMDBGOUZFN0Y5N0UxRkU3OTlGRTdGREZFN0ZERkZFMzdGRjVDCis6MTAyRDAwMDBGQkRFREVCREVGRjNGRUZCQUZFQkZFRkZGRkNGRkZGRTEyCis6MTAyRDEwMDBGRkJGRkY4RkZGRUZGQkZFRkZCRkU3Rjk1RTdGRUZGQjFCCis6MTAyRDIwMDBEQUZGQkZFRkZCRkVGRkZEMUZGRkZGRkZGRkZGRkZERjJGCis6MTAyRDMwMDBGRkZGN0ZGRkZGRjdGQjdGRkZGRkZGRkZGQzNGRkZCRkIyCis6MTAyRDQwMDBFRkZCRkVGRkJGRUY3QjdGQkZFRkZCRkVGRkI1RUZGQkFGCis6MTAyRDUwMDBCRkZBN0ZGQ0ZGM0ZDRkYzRkNGRjNGQ0ZCQ0ZGM0ZFRjRECis6MTAyRDYwMDBGM0ZDRkUzRkNGRkZFRUVGRkJGRUZGQkZFRkZCNkFEN0FBCis6MTAyRDcwMDBCN0ZCRjhGRkI3RUZCQUZFRkZCRjdGRTlGRkY5N0U1RjUxCis6MTAyRDgwMDA5N0U1RjlGRTdGQkZGOTdFNUY5RkU1RkJGRTVGQjdGRjJBCis6MTAyRDkwMDBBM0ZGRjdGREZGN0ZERkY3RkRGRjVFRjc3REZGNzdERjI2Cis6MTAyREEwMDBGN0ZERkY3RkZGRDdGRkZGRkZGRkZGRkZGRERGRkI3RjhCCis6MTAyREIwMDBGRkZGRUZGRkZFRkJGRkZGQkZGRThGRkZERkY3RkRGRDE1Cis6MTAyREMwMDA3RkRGRjdGRDNFREZGNUJERkY3RkRGRjdGREY3RkY5RkZDCis6MTAyREQwMDBGRkZGRkZGRkZGRkZGRkZGRkZGREZGQkVGRkZGRkZGRjQ2Cis6MTAyREUwMDBGRkZGRkZGRDNGRkZERkY3RkRGRjdGREZGN0ZERkZDRkI5Cis6MTAyREYwMDA3N0ZDRkY1RkRGRjdGREZGRjQ3RkZGRkZGRkZGRkZGRkMzCis6MTAyRTAwMDBGRkZGRkZGRkZGRkZGRkZGRkZGREZGRkZGRkVFRkZGRkU1Cis6MTAyRTEwMDBGRkZGRkZGRkZGRkZGRkZGRURGQkZGRkZCRkZGRkZGRjE4Cis6MTAyRTIwMDBGRkZGRTlGRkZGRkZGRkZGRkZGQkZGRkZGRkQzRkZGRkY4Cis6MTAyRTMwMDBCRjNGRkJGRkZGRkZGQkYzRkZGRkZGRkZGRkZGRkZGRkI2Cis6MTAyRTQwMDBGRkZGRkZGRkZGRkVGRkY3RkZGRkZGRkYxN0ZGRkZGRjgzCis6MTAyRTUwMDBERkZGRkRGRkZGRkZGRkZGREZERkZGRkRGRkZGREZGNzBFCis6MTAyRTYwMDBGRjRGRkZGRkZGRkZGRkZGRkZGRkZGRkVGRkZGRkZGRDI1Cis6MTAyRTcwMDBGRkZGRkZGRkZFRkY5RkZGRkZGRkZGRkZGRkZGRkZGRkMzCis6MTAyRTgwMDBGREZGRkZGRkZGRkY3RkZGRkZGRjdBM0ZGRkZGRkZGRjE5Cis6MTAyRTkwMDBGRkZGRkY3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMkNGCis6MTAyRUEwMDA3RkZGRkJGRUZGQkZFRkY4RkVGRkJGRkJGRUZGOEZFQ0Q3Cis6MTAyRUIwMDBGQkZFRkZCRkY4RjdGRUZGQkZFRkZCRkVGREJGQ0ZFQzUxCis6MTAyRUMwMDBGRjNGRUZEQkY4RkZCRkNGRkZGOUZGRkZCRkZGRkJGRkM3Cis6MTAyRUQwMDBGRkZGRUZGQkRGRkZGRkZGRkZGRkJGRkZGRkZGQkJGRkJBCis6MTAyRUUwMDBFRkZCRkVFRkJGRUVFQkZCRkVGRkVGRkVFRUJGRkVFQkY4Cis6MTAyRUYwMDBGRkVGRkYxN0ZGN0VFQkJCRkVCRkJFRkJFRjVCRjdCRDM3Cis6MEEyRjAwMDBGQkNGQkZCRkJCRkI3RUNDRUZGRjkxCis6MDAwMDAwMDFGRgorCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKKyAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAorICogbW9kaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZGFidXNiL2Zpcm13YXJlLkhFWCBiL2Zpcm13YXJlL2RhYnVzYi9maXJtd2FyZS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MyNThkZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2RhYnVzYi9maXJtd2FyZS5IRVgKQEAgLTAsMCArMSw2NDkgQEAKKzowMjAwMDAwMDIxNTc4NgorOjAzMDAwMzAwMDIwMTY2OTEKKzowMzAwMEIwMDAyMDE2Njg5Cis6MDMwMDEzMDAwMjAxNjY4MQorOjAzMDAxQjAwMDIwMTY2NzkKKzowMzAwMjMwMDAyMDE2NjcxCis6MDMwMDJCMDAwMjAxNjY2OQorOjAzMDAzMzAwMDIwMzBGQjYKKzowMzAwM0IwMDAyMDE2NjU5Cis6MDMwMDQzMDAwMjAxMDBCNworOjAzMDA0QjAwMDIwMTY2NDkKKzowMzAwNTMwMDAyMDE2NjQxCis6MDMwMDVCMDAwMjA0QkRERgorOjAzMDA2MzAwMDIwMTY3MzAKKzowMzAxMDAwMDAyMEM1QTk0Cis6MDMwMTA0MDAwMjAxRUQwOAorOjAzMDEwODAwMDIwMjUxOUYKKzowMzAxMEMwMDAyMDI3QzcwCis6MDMwMTEwMDAwMjAyRTQwNAorOjAxMDExNDAwMzJCOAorOjAxMDExODAwMzJCNAorOjAzMDExQzAwMDIwNUZEREMKKzowMzAxMjAwMDAyMDAwMERBCis6MDMwMTI0MDAwMjAwMDBENgorOjAzMDEyODAwMDIwNDNDOTIKKzowMzAxMkMwMDAyMDQ2QTYwCis6MDMwMTMwMDAwMjAwMDBDQQorOjAzMDEzNDAwMDIwMDAwQzYKKzowMzAxMzgwMDAyMDAwMEMyCis6MDMwMTNDMDAwMjAwMDBCRQorOjAzMDE0MDAwMDIwMDAwQkEKKzowMzAxNDQwMDAyMDAwMEI2Cis6MDMwMTQ4MDAwMjAwMDBCMgorOjAzMDE0QzAwMDIwMDAwQUUKKzowMzAxNTAwMDAyMDAwMEFBCis6MDMwMTU0MDAwMjAwMDBBNgorOjBBMDE1NzAwNzU4MTdGRTU4MjYwMDMwMjAxNjFGQgorOjA1MDE2MTAwMTIwNzZGMjE2NDhDCis6MDEwMTY2MDAzMjY2Cis6MEUwMTY3MDBDMEQwQzA4NkMwODJDMDgzQzBFMDkwN0Y5N0UwMDkKKzowRTAxNzUwMDQ0ODBGMDkwN0Y2OUYwRjBGMEYwRjBGMEYwRjBEMAorOjBFMDE4MzAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDRFCis6MEUwMTkxMDBGMEYwRjBGMEYwRjBGMEYwRjBGMDkwN0Y5N0UwN0EKKzowMzAxOUYwMDU1N0ZGMDk5Cis6MEUwMUEyMDA5MDdGOUFFMDMwRTQyMzkwN0Y2OEYwRjBGMEYwNTgKKzowRTAxQjAwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjAyMQorOjBFMDFCRTAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDEzCis6MEUwMUNDMDBFNUQ4QzJFM0Y1RDhEMEUwRDA4M0QwODJEMDg2NEIKKzowMzAxREEwMEQwRDAzMjUwCis6MDgwMUREMDA3NTg2MDA5MEZGQzM3QzA1NEMKKzowNzAxRTUwMEEzRTU4MjQ1ODM3MEY5RDgKKzowMTAxRUMwMDIyRjAKKzowRTAxRUQwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwRDAxQQorOjBFMDFGQjAwNzVEMDAwQzA4Njc1ODYwMEU1OTFDMkU0RjU5MUNFCis6MEQwMjA5MDA5MDg4MDBFMEY1NDE5MDdGQUI3NDAyRjA5MDBBCis6MDkwMjE2MDA3RkFCNzQwMkYwRTUzMjYwMjFCNworOjA0MDIxRjAwN0EwMDdCMDBFNgorOjBCMDIyMzAwQzNFQTk0MThFQjY0ODA5NDgwNTAxMjMyCis6MEUwMjJFMDA5MDdGNjlGMEYwRjBGMEYwRjBGMEYwMEFCQTAwMDYKKzowMjAyM0MwMDAxMEJCNAorOjAyMDIzRTAwODBFMzVCCis6MDIwMjQwMDBEMDg2NjYKKzowRTAyNDIwMEQwRDBEMDAzRDAwMkQwODNEMDgyRDBGMEQwRTA1NAorOjAxMDI1MDAwMzI3QgorOjBFMDI1MTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDM1Cis6MEUwMjVGMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQjc0NDAKKzowNDAyNkQwMDA0RjBEMDg2NDMKKzowQjAyNzEwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzI5QgorOjBFMDI3QzAwQzBFMEMwRjBDMDgyQzA4M0MwMDJDMDAzQzAwNDU2Cis6MEUwMjhBMDBDMDA1QzAwNkMwMDdDMDAwQzAwMUMwRDA3NUQwQkUKKzowRDAyOTgwMDAwQzA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwRTYKKzowQzAyQTUwMDdGQUI3NDA4RjA3NTZFMDA3NTZGMDIxMkRDCis6MDYwMkIxMDAxMTQ0NzU3MDM5NzU1RgorOjA2MDJCNzAwNzEwQzc1NzIwMjEyQzkKKzowQzAyQkQwMDExNzU5MDdGRDZFNEYwNzVEODIwRDA4NjMzCis6MEUwMkM5MDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0OTAKKzowRDAyRDcwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyMkUKKzowRTAyRTQwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzBBMgorOjBFMDJGMjAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQUI3NEFECis6MDQwMzAwMDAxMEYwRDA4NkEzCis6MEIwMzA0MDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyMDcKKzowRTAzMEYwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDRDMgorOjBFMDMxRDAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMDJBCis6MEMwMzJCMDAwMEMwODY3NTg2MDA3NTZFMDA3NTZGMDJCQworOjA3MDMzNzAwMTIxMTQ0NzU3MDQwNzVCRQorOjA2MDMzRTAwNzEwQzc1NzIwMjEyNDEKKzowRTAzNDQwMDExNzU5MDdGRDY3NDAyRjA5MDdGRDY3NDA2RjA4QgorOjA1MDM1MjAwNzVEODEwRDA4NkYzCis6MEUwMzU3MDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0MDEKKzowRDAzNjUwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyOUYKKzowRDAzNzIwMDkwN0ZBNTc0ODBGMDkwN0ZBNjc0OUFGMDEyMjEKKzowQzAzN0YwMDEwMUI5MDdGQTZFNTQyRjAxMjEwMUI5MEFFCis6MEQwMzhCMDA3RkE2RTU0M0YwMTIxMDFCOTA3RkE1NzQ0MDgzCis6MDEwMzk4MDBGMDc0Cis6MDEwMzk5MDAyMjQxCis6MEQwMzlBMDA5MDdGQTU3NDgwRjA5MDdGQTY3NDlBRjAxMkY5Cis6MEMwM0E3MDAxMDFCOTA3RkE2RTU0NEYwMTIxMDFCOTA4NAorOjBDMDNCMzAwN0ZBNkU1NDVGMDEyMTAxQjkwN0ZBNkU1MjgKKzowQjAzQkYwMDQ2RjAxMjEwMUI5MDdGQTU3NDQwRjA2OAorOjAxMDNDQTAwMjIxMAorOjBBMDNDQjAwNzU0NDAyNzU0NTAwNzU0NjAwMTJFNgorOjA5MDNENTAwMDM5QTc1NDIwMzc1NDMwMDEyRkUKKzowMjAzREUwMDAzNzJBOAorOjAxMDNFMDAwMjJGQQorOjBDMDNFMTAwOTA4ODAwRTUzNkYwOTA4ODAwNzQxMDI1MkMKKzowOTAzRUQwMDM2RjAxMjAxREQ3NTQyMDE3NUM0Cis6MDkwM0Y2MDA0MzE4MTIwMzcyNzU0NDAyNzVFQworOjA5MDNGRjAwNDUwMDc1NDYwMDEyMDM5QTc1RDEKKzowODA0MDgwMDQyMDM3NTQzNDQxMjAzNzIyNAorOjAxMDQxMDAwMjJDOQorOjBFMDQxMTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDczCis6MEUwNDFGMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQTc0N0YKKzowNDA0MkQwMDAyRjBEMDg2ODMKKzowQjA0MzEwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzJEOQorOjBFMDQzQzAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDQ4Cis6MEUwNDRBMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBOTc0NTUKKzowNzA0NTgwMDA0RjA3NTMwMDFEMDg2QUQKKzowQjA0NUYwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzJBQgorOjBFMDQ2QTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDFBCis6MEUwNDc4MDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQTc0MjYKKzowNzA0ODYwMDA0RjA3NTMxMDFEMDg2N0UKKzowQjA0OEQwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzI3RAorOjBFMDQ5ODAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMEVDCis6MEMwNEE2MDA4Njc1ODYwMEU1OTFDMkU1RjU5MUQwODZEMAorOjBCMDRCMjAwRDBEMEQwODNEMDgyRDBGMEQwRTAzMjU4Cis6MEUwNEJEMDBDMEUwQzBGMEMwODJDMDgzQzBEMDc1RDAwMEMwQzcKKzowQzA0Q0IwMDg2NzU4NjAwRTU5MUMyRTdGNTkxRDA4NkE5Cis6MEIwNEQ3MDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyMzMKKzowQzA0RTIwMDkwN0ZFQUUwRkE4QTIwOTA3Rjk2RTRGMDE4Cis6MDEwNEVFMDAyMkVCCis6MDcwNEVGMDA5MDdGRUFFMEZBOEEyMTg4Cis6MDEwNEY2MDAyMkUzCis6MEUwNEY3MDA5MDE3MTNFMEZBOTAxNzE1RTBGQjc0ODAyQUZBQjQKKzowRTA1MDUwMDc0ODAyQkZCRUEwMzAzNTQzRkZDRUFDNDIzNTQyQQorOjBFMDUxMzAwMUZGQTJDRkFFQjAzMDM1NDNGRkNFQkM0MjM1NEY1Cis6MEIwNTIxMDAxRkZCMkNGQjkwMTcwQUUwRkM2MDAyOUYKKzowMjA1MkMwMDdBMDA1MworOjA3MDUyRTAwOTAxNzBDRTBGQzYwMDJENQorOjAyMDUzNTAwN0IwMDQ5Cis6MEIwNTM3MDBFQTJCRkNDMzEzRjUzQTc1NDQwMjhCNUQKKzowNzA1NDIwMDQ1OEE0NjEyMDM5QTc1NzkKKzowOTA1NDkwMDZFMDg3NTZGMDAxMjExNDQ3NTczCis6MDQwNTUyMDA3MDQ3NzU3MTA4Cis6MDgwNTU2MDAwQzc1NzIwMjEyMTE3NTg1OEIKKzowNTA1NUUwMDNBNzMxMjExQTAyOAorOjAxMDU2MzAwMjI3NQorOjBFMDU2NDAwOTA3Rjk2RTBGQTkwN0Y5Njc0ODA2NTAyRjA5MDhBCis6MEUwNTcyMDA3RkVCRTBGQTkwN0ZFQUUwRkI5MDdGRUZFMEZDODkKKzowRTA1ODAwMDMzOTVFMEZEOEMwNTdDMDA5MDdGRUVFMEZFMzNBRAorOjBFMDU4RTAwOTVFMEZGRUMyRUZDRUQzRkZEOTA3RkU5RTBGRUQ2Cis6MDUwNTlDMDBCRTAxMDI4MDAzMTYKKzowMzA1QTEwMDAyMDVGOTU3Cis6MDYwNUE0MDBCQzAxMjFCRDAwMUU5OAorOjBFMDVBQTAwRUFDNDAzNTRGOEZDRUIyNUUwRkQyQzI0MDBGQzExCis6MEUwNUI4MDBFNDM0MTdGRDkwN0VDMEUwRkU4QzgyOEQ4M0YwNEYKKzowMjA1QzYwMDgwMzE4MgorOjBFMDVDODAwRUFDNDAzNTRGOEZBRUIyNUUwRkIyQUZBMjQwMEZCCis6MEUwNUQ2MDBGQkU0MzQxN0ZDOTA3RUMwRTBGRDhCODI4QzgzMkEKKzowRTA1RTQwMEYwNzQwMTJBMjQwMEZBRTQzNDE3RkI5MDdFQzE2MworOjA3MDVGMjAwRTBGQzhBODI4QjgzRjAxQworOjAzMDVGOTAwNzUzODAxNTEKKzowMTA1RkMwMDIyREMKKzowRTA1RkQwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDREMgorOjBFMDYwQjAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMDM5Cis6MEQwNjE5MDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDYxCis6MEQwNjI2MDA3RkFBNzQwMUYwMTIwNTY0NzUzNzAwRDA4NkJDCis6MEUwNjMzMDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0MjIKKzowRDA2NDEwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyQzAKKzowRTA2NEUwMDkwN0ZFQkUwRkE5MDdGRUFFMEZCOTA3RkVFRTAxOQorOjBFMDY1QzAwRkMzMzk1RTBGRDkwN0Y5NkUwRkU5MDdGOTY3NDUzCis6MEUwNjZBMDA4MDY1MDZGMDkwN0YwMDc0MDFGMEVBQzQwMzU0MkUKKzowRTA2NzgwMEY4RkVFQjI1RTBGQjJFRkUyNDAwRkJFNDM0MTcxOQorOjBFMDY4NjAwRkY4QjgyOEY4M0UwRkI3NDAxMkUyNDAwRkVFNEM0Cis6MEUwNjk0MDAzNDE3RkY4RTgyOEY4M0UwRkU5MDdGRTlFMEZGMzcKKzowMzA2QTIwMEJGODEwQTBCCis6MEEwNkE1MDA5MDdGMDBFQkYwOTA3RjAxRUVGMDczCis6MDgwNkFGMDA5MDdGRTlFMEZCQkI4MjFBMTkKKzowMzA2QjcwMEJBMDEwQzc5Cis6MEMwNkJBMDA5MDdGMDBFNEYwOTA3RjAxRTRGMDgwMEJFMgorOjBCMDZDNjAwOTA3RjAwRTRGMDkwN0YwMTc0QjVGMDFECis6MDgwNkQxMDA5MDdGRTlFMEZCQkI4MzFCRjUKKzowMzA2RDkwMEJBMDEwRDU2Cis6MEQwNkRDMDA5MDdGMDA3NDAxRjA5MDdGMDFFNEYwODAwQjJFCis6MEIwNkU5MDA5MDdGMDBFNEYwOTA3RjAxNzQxMkYwOUQKKzowODA2RjQwMDkwN0ZFOUUwRkJCQjg0MUNEMAorOjAzMDZGQzAwQkEwMTBEMzMKKzowRDA2RkYwMDkwN0YwMDc0MDFGMDkwN0YwMUU0RjA4MDBDMEEKKzowQzA3MEMwMDkwN0YwMDc0ODBGMDkwN0YwMTc0MDFGMDc5Cis6MDUwNzE4MDA5MDdGQjVFQ0YwM0MKKzowMTA3MUQwMDIyQjkKKzowQzA3MUUwMDc1MzYwRDkwODgwMDc0MURGMDc1NkI4MDFFCis6MEEwNzJBMDA3NTZDM0MxMjEwRTI3NTZCODA3NUNGCis6MDkwNzM0MDA2QzBGMTIxMEUyNzU2QjgwNzU2OAorOjA5MDczRDAwNkMwNjEyMTBFMjc1NkI4MDc1NjgKKzowNzA3NDYwMDZDMDExMjEwRTI3QTAwQzEKKzowMzA3NEQwMEJBRkYwMEYwCis6MDIwNzUwMDA1MDBBNEQKKzowQTA3NTIwMEMwMDIxMjAxREREMDAyMEE4MEYxOUUKKzowQTA3NUMwMDc1NkI4MDc1NkMzQzEyMTBFMjc1OUQKKzowODA3NjYwMDZCODA3NTZDMEYxMjEwRTJBQworOjAxMDc2RTAwMjI2OAorOjBFMDc2RjAwOTA3RkExRTRGMDkwN0ZBRjc0MDFGMDkwN0Y5MjM0Cis6MEUwNzdEMDA3NDAyRjA3NThFMzE3NTg5MjE3NTg4MDA3NUM4N0IKKzowRTA3OEIwMDAwNzU4RDQwNzU5ODQwNzVDMDQwNzU4NzAwNzVFQgorOjA5MDc5OTAwMjAwMDc1MjEwMDc1MjIwMDc1OTUKKzowNTA3QTIwMDIzMDA3NTQ3MDA3MworOjA3MDdBNzAwQzNFNTQ3OTQyMDUwMTE0NworOjBEMDdBRTAwRTU0NzI0MDBGNTgyRTQzNDE3RjU4M0U0RjBGQworOjA0MDdCQjAwMDU0NzgwRTg4NgorOjA5MDdCRjAwRTRGNTQwRjUzRkU0RjUzQ0Y1REEKKzowNzA3QzgwMDNCRTRGNTNFRjUzRDc1MzEKKzowQjA3Q0YwMDMyMDA3NTM3MDA3NTM5MDA5MDdGOTNGMQorOjBFMDdEQTAwNzQzQ0YwOTA3RjlDNzRGRkYwOTA3Rjk2NzQ4MENBCis6MEUwN0U4MDBGMDkwN0Y5NDc0NzBGMDkwN0Y5RDc0OEZGMDkwNkQKKzowRTA3RjYwMDdGOTdFNEYwOTA3Rjk1NzRDMkYwOTA3Rjk4NzQyNgorOjBFMDgwNDAwMjhGMDkwN0Y5RTc0MjhGMDkwN0ZGMEU0RjA5MDMyCis6MEUwODEyMDA3RkYxRTRGMDkwN0ZGMkU0RjA5MDdGRjNFNEYwRTkKKzowRTA4MjAwMDkwN0ZGNEU0RjA5MDdGRjVFNEYwOTA3RkY2RTQzMgorOjBFMDgyRTAwRjA5MDdGRjdFNEYwOTA3RkY4RTRGMDkwN0ZGOTBGCis6MEUwODNDMDA3NDM4RjA5MDdGRkE3NEEwRjA5MDdGRkI3NEEwRTcKKzowRTA4NEEwMEYwOTA3RkZDNzRBMEYwOTA3RkZENzRBMEYwOTAwMQorOjBFMDg1ODAwN0ZGRTc0QTBGMDkwN0ZGRjc0QTBGMDkwN0ZFMDEwCis6MEUwODY2MDA3NDAzRjA5MDdGRTE3NDAxRjA5MDdGREQ3NDgwRTgKKzowQjA4NzQwMEYwMTIxMjQzMTIwNzFFN0EwMDdCMDBGNgorOjA5MDg3RjAwQzNFQTk0MUVFQjk0MDA1MDE3MkIKKzowQzA4ODgwMDkwODgwMEUwRjU0NzkwODgwQkUwRjU0N0YxCis6MDkwODk0MDA5MDdGNjhGMDBBQkEwMDAxMEIyNAorOjAyMDg5RDAwODBFMEY5Cis6MEMwODlGMDAxMjAzRTE5MDdGRDZFNEYwN0EwMDdCMDBBOQorOjBEMDhBQjAwOEEwNDhCMDVDM0VBOTRFMEVCOTQyRTUwMUFFQQorOjBFMDhCODAwQzAwMkMwMDNDMDA0QzAwNTEyMDFEREQwMDVEMDhGCis6MEEwOEM2MDAwNEQwMDNEMDAyMEFCQTAwMDEwQkFGCis6MDIwOEQwMDA4MEQ5Q0QKKzowRDA4RDIwMDkwN0ZENjc0MDJGMDkwN0ZENjc0MDZGMDkwRUYKKzowRTA4REYwMDdGREU3NDA1RjA5MDdGREY3NDA1RjA5MDdGQUMzMworOjBFMDhFRDAwRTRGMDkwN0ZBRDc0MDVGMDc1QTg4MDc1RjgxMEVBCis6MEQwOEZCMDA5MDdGQUU3NDBCRjA5MDdGRTI3NDg4RjA5MDU3Cis6MEMwOTA4MDA3RkFCNzQwOEYwNzVFODExNzUzMjAxNzVDMgorOjBDMDkxNDAwMzEwMDc1MzAwMEMwMDRDMDA1MTIwNEY3NkIKKzowQTA5MjAwMEQwMDVEMDA0NzUzNDAwNzUzNTAxRDAKKzowRDA5MkEwMDkwN0ZBRTc0MDNGMDhDMDJCQTAwMDI4MDAzQ0YKKzowMzA5MzcwMDAyMEEzRjcyCis6MEMwOTNBMDA4NTMzMzQ5MDdGOUQ3NDhGRjA5MDdGOTc4MAorOjBFMDk0NjAwNzQwOEYwOTA3RjlENzQ4OEYwOTA3RjlBRTBGQTFDCis6MEMwOTU0MDA3NDA1NUFGNTMzOTA3RjlENzQ4RkYwOTA2RAorOjBEMDk2MDAwN0Y5Nzc0MDJGMDkwN0Y5RDc0ODJGMEU1MzM2NAorOjBEMDk2RDAwMjVFMEZBOTA3RjlBRTA1NDA1RkI0QUY1MzMyRgorOjAyMDk3QTAwNjAwQzBGCis6MEMwOTdDMDA5MDdGOTZFMEZBOTA3Rjk2NzQ4MDRBRjAxRAorOjBCMDk4ODAwNzU2RTAwNzU2RjAwQzAwNEMwMDUxMjAyCis6MEUwOTkzMDAxMTQ0RDAwNUQwMDQ5MDE3MTNFMEZBNzQ4MDJBQTYKKzowNjA5QTEwMEZBRTUzM0I0MDQyOTVECis6MDMwOUE3MDBCQUEwMDBGMworOjAyMDlBQTAwNTAyNEQ3Cis6MEQwOUFDMDA5MDE3MTNFMDA0RkIwQjkwMTcxM0VCRjA5MDc1Cis6MEUwOUI5MDAxNzEzRTBGQjkwMTcxNUYwQzAwMkMwMDRDMDA1MzQKKzowOTA5QzcwMDEyMDRGN0QwMDVEMDA0RDAwMjlGCis6MDUwOUQwMDBFNTMzQjQwMjI2MkUKKzowNjA5RDUwMEMzNzQwNDlBNTAyMEQ3Cis6MEQwOURCMDA5MDE3MTNFMEZBMUExQTkwMTcxM0VBRjA5MDIzCis6MEQwOUU4MDAxNzEzRTBGQTkwMTcxNUYwQzAwNEMwMDUxMkI3Cis6MDYwOUY1MDAwNEY3RDAwNUQwMDQ1OAorOjA1MDlGQjAwRTUzM0I0MDgxRDA2Cis6MDQwQTAwMDBFNTM0NzAxOTUwCis6MEEwQTA0MDA3NDAxMjUzNTU0MEZGNTM1ODUzNUQyCis6MEMwQTBFMDA3NTc1NzYwMEMwMDRDMDA1MTIxM0ZFRDAwMAorOjAzMEExQTAwMDVEMDA0MDAKKzowNTBBMUQwMEU1MzNCNDAxMURFQQorOjA0MEEyMjAwRTUzNDcwMTkyRQorOjBBMEEyNjAwRTUzNTI0RkY1NDBGRjUzNTg1MzU0MgorOjBDMEEzMDAwNzU3NTc2MDBDMDA0QzAwNTEyMTNGRUQwREUKKzowMzBBM0MwMDA1RDAwNERFCis6MEUwQTNGMDBDMDA0QzAwNTEyMDFEREQwMDVEMDA0OTA3Rjk2RTIKKzowRTBBNEQwMEUwRkE5MDdGOTY3NDdGNUFGMDkwN0Y5Nzc0MDhCRAorOjBBMEE1QjAwRjBDM0VDOTQwMEVEOTQwMjQwMDg5MworOjA4MEE2NTAwOTA3Rjk2RTBGQTIwRTYwOEZDCis6MDgwQTZEMDBDM0U0OUM3NDA4OUQ1MDEzQzIKKzowRTBBNzUwMDkwN0Y5NkUwRkE5MDdGOTY3NDQwNjUwMkYwN0NDOAorOjA1MEE4MzAwMDA3RDAwODAwNTZDCis6MDUwQTg4MDAwQ0JDMDAwMTBEOTMKKzowNTBBOEQwMEU1MzhCNDAxMEU4NAorOjBEMEE5MjAwQzAwNEMwMDUxMjA0RjdEMDA1RDAwNDc1Mzg2QgorOjAxMEE5RjAwMDA1NgorOjA3MEFBMDAwRTUzMTcwMDMwMjA5MkE5MQorOjBBMEFBNzAwOTA3RkM5RTBGQTcwMDMwMjBDMkRFNQorOjBFMEFCMTAwOTA3Rjk2RTBGQTkwN0Y5Njc0ODA2NTAyRjA5MDM4Cis6MDkwQUJGMDA3REMwRTBGQUJBMkMwMjgwMDNBQworOjAzMEFDODAwMDIwQjM2RTgKKzowNTBBQ0IwMDc1MzIwMDdCMDAwNAorOjAzMEFEMDAwQkI2NDAwMDQKKzowMjBBRDMwMDUwMUNCNQorOjBFMEFENTAwQzAwMkMwMDNDMDA0QzAwNTEyMDFEREQwMDVEMDcwCis6MEQwQUUzMDAwNEQwMDNEMDAyOTA4ODBGRTBGNTQ3MEI4MDhGCis6MDEwQUYwMDBERjI2Cis6MEQwQUYxMDBDMDAyQzAwNEMwMDUxMjA3MUUxMjAzRTExMjZFCis6MEMwQUZFMDAwNEY3RDAwNUQwMDREMDAyNzU2RTAwNzUxRQorOjBEMEIwQTAwNkYwMUMwMDJDMDA0QzAwNTEyMTE0NEQwMDVFNworOjA5MEIxNzAwRDAwNEQwMDI3NTcwNEQ3NTcxMTcKKzowQjBCMjAwMDBDNzU3MjAyQzAwMkMwMDRDMDA1MTI3OAorOjBCMEIyQjAwMTE3NUQwMDVEMDA0RDAwMjAyMEMyRDgzCis6MDMwQjM2MDBCQTJBM0I5RAorOjBEMEIzOTAwOTA3Rjk4NzQyMEYwQzAwMkMwMDRDMDA1MTIyNworOjBFMEI0NjAwMDFEREQwMDVEMDA0RDAwMjkwN0Y5ODc0MjhGMDE1Cis6MDIwQjU0MDA3QjAwMjQKKzowMzBCNTYwMEJCMEEwMEQ3Cis6MDUwQjU5MDA0MDAzMDIwQzJEMTkKKzowRTBCNUUwMEMwMDJDMDAzQzAwNEMwMDUxMjAxREREMDA1RDBFNgorOjA4MEI2QzAwMDREMDAzRDAwMjBCODBFMjZCCis6MDMwQjc0MDBCQTJCMUE3RgorOjA4MEI3NzAwOTA3RkM5RTBGQkJCNDAxMkI2Cis6MEUwQjdGMDBDMDAyQzAwNEMwMDUxMjEyMDVEMDA1RDAwNEQwN0IKKzowNDBCOEQwMDAyMDIwQzJEMjcKKzowMzBCOTEwMEJBMTAxRjc4Cis6MEUwQjk0MDA5MDdGOTZFMEZCOTA3Rjk2NzQ4MDY1MDNGMEMwMjIKKzowRTBCQTIwMDAyQzAwNEMwMDUxMjEwM0REMDA1RDAwNEQwMDJFMAorOjAzMEJCMDAwMDIwQzJEMDcKKzowMzBCQjMwMEJBMTExMjYyCis6MEUwQkI2MDBDMDAyQzAwNEMwMDUxMjEwNkFEMDA1RDAwNEQwRTEKKzowNDBCQzQwMDAyMDIwQzJERjAKKzowMzBCQzgwMEJBMTIxMjRDCis6MEUwQkNCMDBDMDAyQzAwNEMwMDUxMjEwOEZEMDA1RDAwNEQwQTcKKzowNDBCRDkwMDAyMDIwQzJEREIKKzowMzBCREQwMEJBMTMwQjNECis6MEIwQkUwMDA5MDdEQzFFMEZCOTA4ODAwRjA4MDQyOTcKKzowMzBCRUIwMEJBMTQxMTI4Cis6MEUwQkVFMDBDMDAyQzAwNEMwMDUxMjExREREMDA1RDAwNEQwMzUKKzowMzBCRkMwMDAyODAyRTQ2Cis6MDMwQkZGMDBCQTE1MUQwNworOjBDMEMwMjAwOTA3REMxRTBGNTc1OTA3REMyRTBGNTc2QjQKKzowRTBDMEUwMEMwMDJDMDA0QzAwNTEyMTNGRUQwMDVEMDA0RDBGMQorOjAzMEMxQzAwMDI4MDBFNDUKKzowMzBDMUYwMEJBMTYwQkY3Cis6MEIwQzIyMDBDMDA0QzAwNTEyMTNBM0QwMDVEMDA0Q0QKKzowQjBDMkQwMDkwN0ZDOUU0RjA3NTMxMDAwMjA5MkEzNQorOjAxMEMzODAwMjI5OQorOjA3MEMzOTAwNTM1NTUwNDU0RTQ0MDBFNQorOjA3MEM0MDAwNTI0NTUzNTU0RDQ1MDBEQworOjA2MEM0NzAwMjA1NjZGNkMyMDAwMzYKKzowRDBDNEQwMDQ0NDE0MjU1NTM0MjIwNzYzMTJFMzAzMDAwOTQKKzowRTBDNUEwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDQ2RQorOjBFMEM2ODAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMEQ2Cis6MEQwQzc2MDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTE5MEZFCis6MEUwQzgzMDA3RkFCNzQwMUYwOTA3RkU4RTBGQTkwN0ZFOUUwMkIKKzowNjBDOTEwMEZCQkIwMDAyODAwMzIyCis6MDMwQzk3MDAwMjBEMzgxMworOjAzMEM5QTAwQkE4MDE0MDkKKzowRTBDOUQwMDkwN0YwMDc0MDFGMDkwN0YwMUU0RjA5MDdGQjUyRAorOjA2MENBQjAwNzQwMkYwMDIwRUNEMDAKKzowNTBDQjEwMEJBODIwMjgwMDM3RAorOjAzMENCNjAwMDIwRDFEMEYKKzowODBDQjkwMDkwN0ZFQ0UwRkNCQzAxMDA5RgorOjAyMENDMTAwNDAyMUQwCis6MDYwQ0MzMDBDMzc0MDc5QzQwMUJGNgorOjBFMENDOTAwRUMyNEZGMjVFMEZEMjRDNkY1ODJFNDM0N0ZGNTFGCis6MEQwQ0Q3MDA4M0UwRkQ1MzA1MDE5MDdGMDBFREYwODAyQkMwCis6MDMwQ0U0MDBCQzgxMDBEMAorOjAyMENFNzAwNDAyMUFBCis6MDYwQ0U5MDBDMzc0ODc5QzQwMUI1MAorOjBFMENFRjAwRUMyNDdGMjVFMEZDMjRCNkY1ODJFNDM0N0ZGNThBCis6MEQwQ0ZEMDA4M0UwRkM1MzA0MDE5MDdGMDBFQ0YwODAwNUMzCis6MDUwRDBBMDA5MDdGMDBFNEYwMDEKKzowRTBEMEYwMDkwN0YwMUU0RjA5MDdGQjU3NDAyRjAwMjBFQ0RFQgorOjA1MEQxRDAwQkE4MTAyODAwMzExCis6MDMwRDIyMDAwMjBFQzVGOQorOjBFMEQyNTAwOTA3RjAwRTRGMDkwN0YwMUU0RjA5MDdGQjU3NEMxCis6MDUwRDMzMDAwMkYwMDIwRUNERUMKKzowMzBEMzgwMEJCMDEyRENGCis6MDYwRDNCMDBCQTAwMDMwMjBFQ0QxOAorOjAzMEQ0MTAwQkEwMjExRTIKKzowRDBENDQwMDc1NTkwMEMwMDJDMDAzMTIwRUYwRDAwM0QwOUMKKzowNDBENTEwMDAyMDIwRUNEQkYKKzowNTBENTUwMEJBMjEwMjgwMDMzOQorOjAzMEQ1QTAwMDIwRUNEQjkKKzowQjBENUQwMDc1MzcwMTkwN0ZDNUU0RjAwMjBFQ0Q1OQorOjAzMEQ2ODAwQkIwMzFGQUIKKzowNjBENkIwMEJBMDAwMzAyMEVDREU4Cis6MDUwRDcxMDBCQTAyMDI4MDAzM0MKKzowMzBENzYwMDAyMEVDRDlECis6MEQwRDc5MDA3NTU5MDFDMDAyQzAwMzEyMEVGMEQwMDNEMDY2Cis6MDQwRDg2MDAwMjAyMEVDRDhBCis6MDMwRDhBMDBCQjA2NTQ1MQorOjA1MEQ4RDAwQkE4MDAyODAwM0EyCis6MDMwRDkyMDAwMjBFQzU4OQorOjA4MEQ5NTAwOTA3RkVCRTBGQ0JDMDExNUFFCis6MEMwRDlEMDA3Q0ZCN0QwRjhEMDY3RjAwOTA3RkQ0RUU2NAorOjA5MERBOTAwRjA5MDdGRDVFQ0YwMDIwRUNEQjQKKzowQTBEQjIwMDkwN0ZFQkUwRkNCQzAyMDI4MDAzMUUKKzowMzBEQkMwMDAyMEVDNTVGCis6MEEwREJGMDA5MDdGRUFFMEZDQkMwMDAyODAwMzE0Cis6MDMwREM5MDAwMjBFQzU1MgorOjBDMERDQzAwN0MzQjdEMEY4RDA2N0YwMDkwN0ZENEVFRjUKKzowOTBERDgwMEYwOTA3RkQ1RUNGMDAyMEVDRDg1Cis6MDYwREUxMDBCQjA3MDMwMjBFQzU3MgorOjAzMERFNzAwQkIwODEwMzYKKzowRDBERUEwMEFDNDg5MDdGMDBFQ0YwOTA3RkI1NzQwMUYwRjQKKzowMzBERjcwMDAyMEVDRDFDCis6MDMwREZBMDBCQjA5MzEwMQorOjA1MERGRDAwQkEwMDAyODAwM0IyCis6MDMwRTAyMDAwMjBFQzUxOAorOjBFMEUwNTAwOTA3RkVBRTBGQ0MzNzQwMTlDNTAwMzAyMEVDNTBFCis6MDgwRTEzMDA5MDdGRUFFMEZDQkMwMDBBM0MKKzowQTBFMUIwMDkwMTcyMUU0RjA5MDE3MjJFNEYwOTQKKzowOTBFMjUwMDkwN0ZFQUUwRjU0ODAyMEVDREQxCis6MDMwRTJFMDBCQjBBMjdENQorOjA1MEUzMTAwQkE4MTAyODAwM0ZDCis6MDMwRTM2MDAwMjBFQzVFNAorOjBFMEUzOTAwOTA3RkVDRTBGQTI0MjBGQUU0MzQxN0ZDOEE4MjYxCis6MEUwRTQ3MDA4QzgzRTBGQTkwN0YwMEYwOTA3RkI1NzQwMUYwOEMKKzowMzBFNTUwMDAyMEVDREJECis6MDUwRTU4MDBCQjBCMDI4MDAzNEEKKzowMzBFNUQwMDAyMEVBOUQ5Cis6MEQwRTYwMDA5MDE3MjBFNEYwOTA3RkVDRTBGQUJBMDExQTQwCis6MDgwRTZEMDA5MDdGRURFMEZBQkEwMDEyREIKKzowRTBFNzUwMDkwN0ZFQUUwRkE5MDE3MjFGMEMwMDMxMjA0RTIyOQorOjA0MEU4MzAwRDAwMzgwNDZEMgorOjA4MEU4NzAwOTA3RkVDRTBGQUJBMDIzRTk0Cis6MDgwRThGMDA5MDdGRURFMEZBQkEwMDM2OTUKKzowRDBFOTcwMEMwMDMxMjA0RUZEMDAzOTA3RkVBRTBGQTkwNTAKKzowNTBFQTQwMDE3MjJGMDgwMjQ3QworOjA1MEVBOTAwQkIxMjAyODAxN0RFCis6MDUwRUFFMDBCQjgxMDI4MDBENzQKKzowNTBFQjMwMEJCODMwMjgwMDg3MgorOjA1MEVCODAwQkI4MjAyODAwMzczCis6MDMwRUJEMDBCQjg0MDVFRQorOjA1MEVDMDAwMTIwNjRFODAwODNGCis6MDgwRUM1MDA5MDdGQjQ3NDAzRjA4MDA2NzUKKzowNjBFQ0QwMDkwN0ZCNDc0MDJGMEY2Cis6MDIwRUQzMDBEMDg2QzcKKzowRTBFRDUwMEQwRDBEMDAxRDAwMEQwMDdEMDA2RDAwNUQwMDQ3OAorOjBEMEVFMzAwRDAwM0QwMDJEMDgzRDA4MkQwRjBEMEUwMzIxNgorOjBCMEVGMDAwOTA3RkVDRTBGNTVBQzM5NDAxNDAxRDE4Cis6MDcwRUZCMDBDMzc0MDc5NTVBNDAxNjZECis6MEQwRjAyMDBFNTVBMjRGRjI1RTBGQTI0QzZGNTgyRTQzNDA4Cis6MDkwRjBGMDA3RkY1ODNBQTU5RUFGMDgwMjI2MworOjA3MEYxODAwQzNFNTVBOTQ4MTQwMUI2MAorOjA3MEYxRjAwQzM3NDg3OTU1QTQwMTRDQQorOjBEMEYyNjAwRTU1QTI0RkYyNUUwRkEyNEI2RjU4MkU0MzRGNAorOjA3MEYzMzAwN0ZGNTgzQUE1OUVBRjBFMworOjAxMEYzQTAwMjI5NAorOjBFMEYzQjAwMDkwMkJBMDAwMzAxMDA0MDAwMDkwNDAwMDAwMDkyCis6MEUwRjQ5MDAwMTAxMDAwMDA5MjQwMTAwMDEzRDAwMDEwMTBDMUUKKzowRTBGNTcwMDI0MDIwMTEwMDcwMDAyMDMwMDAwMDAwRDI0MDYxMgorOjBFMEY2NTAwMDMwMTAyMTUwMDAzMDAwMzAwMDAwOTI0MDMwMjJCCis6MEUwRjczMDAwMTAxMDAwMTAwMDkyNDAzMDQwMjAzMDAwMzAwMzEKKzowRTBGODEwMDA5MjQwMzA1MDMwNjAwMDEwMDA5MDQwMTAwMDAxNQorOjBFMEY4RjAwMDEwMjAwMDAwOTA0MDEwMTAxMDEwMjAwMDAwNzM3Cis6MEUwRjlEMDAyNDAxMDIwMTAxMDAwQjI0MDIwMTAyMDIxMDAxRDYKKzowRTBGQUIwMDgwQkIwMDA5MDU4ODA1MDAwMTAxMDAwMDA3MjUzNAorOjBFMEZCOTAwMDEwMDAwMDAwMDA5MDQwMjAwMDIwMDAwMDAwMDE4Cis6MEUwRkM3MDAwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDAwMDAwRkMKKzowRTBGRDUwMDA5MDQwMjAxMDMwMDAwMDAwMDA3MDU4MjAyNDAyQgorOjBFMEZFMzAwMDAwMDA3MDUwMjAyNDAwMDAwMDkwNTg5MDVBMDc0Cis6MEEwRkYxMDAwMTAxMDAwMDAwRkZGRkZGRkYwMEY4Cis6MEUwRkZCMDAxMjAxMDAwMTAwMDAwMDQwNDcwNTk5OTkwMDAxMTUKKzowRTEwMDkwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwOTAyQkExMworOjA0MTAxNzAwMDAwMzAxMDBEMQorOjAyMTAxQjAwN0EwMDU5Cis6MDMxMDFEMDBCQTA1MDAxMQorOjAyMTAyMDAwNTAxNzY3Cis6MDgxMDIyMDA5MDdGQTVFMEZCMzBFMDA1MjIKKzowNTEwMkEwMDkwMDAwMTgwMERBMworOjBBMTAyRjAwQzAwMjEyMDFEREQwMDIwQTgwRTRDNQorOjAzMTAzOTAwOTAwMDAxMjMKKzowMTEwM0MwMDIyOTEKKzowRTEwM0QwMDkwN0RDMUUwRjlBM0UwRkFBM0UwRkI3QzAwN0QwQQorOjA0MTA0QjAwN0VFQjYwMTJDNgorOjBFMTA0RjAwODk4MjhBODNFMEEzQTk4MkFBODM4QzgyOEQ4MzgyCis6MDQxMDVEMDBGMDBDREJFRUNBCis6MDgxMDYxMDA5MDdEQzNFMDkwN0ZCOUYwMUYKKzowMTEwNjkwMDIyNjQKKzowRTEwNkEwMDkwN0RDMUUwRjlBM0UwRkFBM0UwRkI3Q0M0N0QxOQorOjA0MTA3ODAwN0RFQjYwRTVDNworOjBFMTA3QzAwOEM4MjhEODNFMDBDODk4MjhBODNGMEEzQTk4Mjg2Cis6MDQxMDhBMDBBQTgzREJFRTZDCis6MDExMDhFMDAyMjNGCis6MEUxMDhGMDA5MDdGQTU3NDgwRjAwNTg2OTA3REMxRTAwNTg2RjcKKzowRTEwOUQwMEEzRjAxMjEwMUI5MDdGQTYwNTg2QTNBM0UwRjkxNgorOjA1MTBBQjAwNjAxNkEzMDU4NjlDCis6MEQxMEIwMDA5MDdGQTYwNTg2RTBBMzA1ODZGMEMwMDExMjIyCis6MDYxMEJEMDAxMDFCRDAwMUQ5RUQ2QgorOjA2MTBDMzAwOTA3RkE1NzQ0MEYwQ0YKKzowMTEwQzkwMDIyMDQKKzowODEwQ0EwMDkwODgwMjc0MDFGMDdBMDAyNQorOjAzMTBEMjAwQkFGRjAwNjIKKzowMjEwRDUwMDUwMEFCRgorOjBBMTBENzAwQzAwMjEyMDFEREQwMDIwQTgwRjExMAorOjAxMTBFMTAwMjJFQworOjA1MTBFMjAwRTU2QkI0QzAwODNECis6MDgxMEU3MDA5MDg4MDNFNTZDRjA4MDA2MUYKKzowNjEwRUYwMDkwODgwMkU1NkNGMEEwCis6MDQxMEY1MDA3QTAwN0IwMDAyCis6MEIxMEY5MDBDM0VBOTQzMkVCNjQ4MDk0ODA1MDA3M0YKKzowNTExMDQwMDBBQkEwMDAxMEIxNgorOjAyMTEwOTAwODBFRTc2Cis6MDExMTBCMDAyMkMxCis6MEExMTBDMDA5MDg4MDNFNTZERjAwNTM5N0EwMEM0Cis6MDMxMTE2MDBCQTI4MDBGNAorOjAyMTExOTAwNTAwMzgxCis6MDMxMTFCMDAwQTgwRjg0RgorOjA1MTExRTAwRTUzOUI0MTAwOEUyCis6MDgxMTIzMDA5MDg4MDI3NEMwRjA4MDBFRjgKKzowNTExMkIwMEU1MzlCNDIwMDlDNAorOjA5MTEzMDAwOTA4ODAyNzQ4MEYwNzUzOTAwMEEKKzowMjExMzkwMDdBMDAzQQorOjAzMTEzQjAwQkEyODAwQ0YKKzowMjExM0UwMDUwMDM1QworOjAzMTE0MDAwMEE4MEY4MkEKKzowMTExNDMwMDIyODkKKzowNDExNDQwMEU1NkY2MDAyRjEKKzowMjExNDgwMDgwMDcxRQorOjA3MTE0QTAwN0EwMDc1MzkwMDgwMDVGMQorOjA1MTE1MTAwN0E0MDc1MzkxMDIxCis6MDkxMTU2MDBFNTZFMkFGQUU1NkUyNTM5RjU3MworOjBBMTE1RjAwMzk5MDg4MDI3NDgwMkFGMDdBMDBBQgorOjA4MTE2OTAwQzNFQTY0ODA5NEE4NTAwMzVFCis6MDMxMTcxMDAwQTgwRjVGQworOjAxMTE3NDAwMjI1OAorOjA2MTE3NTAwQUE3MEFCNzFBQzcyMjAKKzowQzExN0IwMDhBODI4QjgzOENGMDEyMTRFRUZENjAxODQ5Cis6MEQxMTg3MDA4RDZEQzAwMkMwMDNDMDA0MTIxMTBDRDAwNDE1Cis6MDkxMTk0MDBEMDAzRDAwMjBBQkEwMDAxMEJERAorOjAyMTE5RDAwODBEQ0Y0Cis6MDExMTlGMDAyMjJECis6MEQxMUEwMDBFNTczQzQ1NDBGRkE1MzAyMEZDMzc0MDk5QThCCis6MDIxMUFEMDA1MDA2RUEKKzowNjExQUYwMDc0MzcyQUZCODAwNEU2Cis6MDQxMUI1MDA3NDMwMkFGQjZECis6MEMxMUI5MDA4QjZEQzAwMzEyMTEwQ0QwMDNBQTczNTNGRAorOjA4MTFDNTAwMDIwRkMzNzQwOTlBNTAwNkUxCis6MDYxMUNEMDA3NDM3MkFGQjgwMDRDOAorOjA0MTFEMzAwNzQzMDJBRkI0RgorOjA1MTFENzAwOEI2RDEyMTEwQ0VDCis6MDExMURDMDAyMkYwCis6MDcxMUREMDA5MDdEQzNFMEZBNjAwRkYyCis6MEMxMUU0MDA5MDdEQzFFMEY1NkU5MDdEQzJFMEY1NkZEQgorOjAzMTFGMDAwMTIxMTQ0OTUKKzowQzExRjMwMDkwN0RGRkU0RjA3NTcwQzQ3NTcxN0Q3NThGCis6MDUxMUZGMDA3MjAxMTIxMTc1RTAKKzowMTEyMDQwMDIyQzcKKzowMjEyMDUwMDdBMDQ2OQorOjAzMTIwNzAwQkE0MDAwRUEKKzowMjEyMEEwMDUwMzY1QworOjBFMTIwQzAwRUEyNEMwRjU4MkU0MzQ3REY1ODNFMEZCN0MwMDJCCis6MDMxMjFBMDBCQzA4MDAwRAorOjAyMTIxRDAwNTAyMDVGCis6MDYxMjFGMDA4QjA1RUQzMEU3MEIyQQorOjBCMTIyNTAwOTA3Rjk2NzQ0MkYwNzRDM0YwODAwOEM0Cis6MDgxMjMwMDA5MDdGOTZFNEYwNzQ4MUYwNTgKKzowNzEyMzgwMEVCMjVFMEZCMEM4MERCNUQKKzowMzEyM0YwMDBBODBDNTVECis6MDExMjQyMDAyMjg5Cis6MDQxMjQzMDA3QTAwN0JFRkMzCis6MDMxMjQ3MDBCQTEwMDBEQQorOjAyMTI0QTAwNTAyMDMyCis6MEUxMjRDMDA3NDExMkJGQjI0MDBGQ0U0MzQxOEZEOEM4MjhEMDEKKzowRTEyNUEwMDgzRTRGMEVBMjQwMEY1ODJFNDM0MTlGNTgzRTQxRAorOjA0MTI2ODAwRjAwQTgwREIyRAorOjAxMTI2QzAwMjI1RgorOjBFMTI2RDAwNzRGODI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEYxCis6MEUxMjdCMDA3NEY5MjQwMEY1ODI3NDAzMzQ4NEY1ODNFNEYwRTIKKzowRTEyODkwMDc0RkEyNDAwRjU4Mjc0MDMzNDg0RjU4M0U0RjBEMworOjBFMTI5NzAwNzRGQjI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEM0Cis6MEUxMkE1MDA3NEZGMjQwMEY1ODI3NDAzMzQ4NEY1ODNFNEYwQjIKKzowMTEyQjMwMDIyMTgKKzowRTEyQjQwMDEyMDNDQjEyMTI2RDdBQzA3Qjg3N0MwMTc0MDE4RAorOjBFMTJDMjAwMkFGREU0M0JGRThDMDc4QTgyOEI4MzhDRjA3NDNECis6MEUxMkQwMDAwMTEyMTRCRjJERkFFNDNFRkI4RjA0OEQ4MjhFQjYKKzowRTEyREUwMDgzOEZGMDc0MDYxMjE0QkY3NDAxMkFGREU0M0JFNgorOjBFMTJFQzAwRkU4QzA3OEE4MjhCODM4Q0YwRTQxMjE0QkY3NDkwCis6MEUxMkZBMDAwMTJERkFFNDNFRkI4RjA0OEQ4MjhFODM4RkYwNkYKKzowRTEzMDgwMDc0MEIxMjE0QkY3NDAxMkFGREU0M0JGRThDMDcyNworOjBFMTMxNjAwOEE4MjhCODM4Q0YwNzQwODEyMTRCRjc0MDEyRDMwCis6MEUxMzI0MDBGQUU0M0VGQjhGMDQ4RDgyOEU4MzhGRjA3NDAxRkQKKzowRTEzMzIwMDEyMTRCRjJBRkRFNDNCRkU4QzA3OEE4MjhCODNENworOjBFMTM0MDAwOENGMEU0MTIxNEJGNzQwMTJERkFFNDNFRkI4RjEyCis6MEUxMzRFMDAwNDhEODI4RTgzOEZGMDc0MDMxMjE0QkY3RDAwMTUKKzowMzEzNUMwMEJEMDYwMENCCis6MDIxMzVGMDA1MDEyMkEKKzowQjEzNjEwMDhBODI4QjgzOENGMDBBQkEwMDAxMEIxQgorOjA3MTM2QzAwRTQxMjE0QkYwRDgwRTkzQgorOjBEMTM3MzAwOEE4MjhCODM4Q0YwRTU3NDEyMTRCRjc0RjkyQworOjBFMTM4MDAwMjQwMEY1ODI3NDAzMzQ4NEY1ODM3NDBGRjA3NDM2Cis6MEUxMzhFMDBGRTI0MDBGNTgyNzQwMzM0ODRGNTgzNzQwMUYwQUMKKzowNjEzOUMwMDEyMDNFMTEyMDRGNzQ4Cis6MDExM0EyMDAyMjI4Cis6MEQxM0EzMDA5MDdEQzFFMEZBMjQwMEZCRTQzNDE5RkM5MEI5Cis6MEUxM0IwMDA3REMyRTBGRDhCODI4QzgzRjA3NUYwMTFFQUE0MDMKKzowMzEzQkUwMEZBN0IwMEI3Cis6MDMxM0MxMDBCQjEwMDA1RQorOjAyMTNDNDAwNTAyNEIzCis6MEUxM0M2MDBFQTI0MDBGQ0U0MzQxOEZERUIyQ0ZDRTQzREZEQjEKKzowRTEzRDQwMDc0MDQyQjI0QzBGNTgyRTQzNDdERjU4M0UwRkUyMgorOjA4MTNFMjAwOEM4MjhEODNGMDBCODBENzkzCis6MEUxM0VBMDBFQTI0MDBGQUU0MzQxOEZCNzQxMDJBRjU4MkU0QjkKKzowNTEzRjgwMDNCRjU4M0U0RjA2OQorOjAxMTNGRDAwMjJDRAorOjA0MTNGRTAwRTU3NjYwMDIyRQorOjAyMTQwMjAwODAxNjUyCis6MEMxNDA0MDA3NDBGNTU3NUZBOEE3NTI0MDBGNTgyRTQxNworOjBBMTQxMDAwMzQxOUY1ODNFMEY1NzQxMjEyQjRFQworOjBBMTQxQTAwMTIxMENBNzU2RTAwNzU2RjAwMTIwMworOjA2MTQyNDAwMTE0NDc1NzBCOTc1NUEKKzowNjE0MkEwMDcxMTQ3NTcyMDIxMjNDCis6MEIxNDMwMDAxMTc1RTU3NkI0MDIwNDc0MDE4MDAxMjAKKzowMTE0M0IwMEU0Q0MKKzowMzE0M0MwMEZBNzAwRjM0Cis6MEMxNDNGMDA3NDAxMjU3NUY1NzNDMDAyMTIxMUEwRDBENQorOjAzMTQ0QjAwMDI4MDBBMTIKKzowQTE0NEUwMDg1NzU3M0MwMDIxMjExQTBEMDAyRDAKKzowQzE0NTgwMDc1NkUwMDc1NkYwMUMwMDIxMjExNDREMEM3Cis6MDQxNDY0MDAwMkVBNzAxQTBFCis6MEQxNDY4MDA3NUYwMTFFNTc1QTRGQTI0MDBGQUU0MzQxOEJCCis6MDkxNDc1MDBGQjhBNzA4QjcxNzU3MjAxMTI4MworOjA0MTQ3RTAwMTE3NTgwMzYyRQorOjAyMTQ4MjAwN0EwMEVFCis6MDMxNDg0MDBCQTEwMDA5QgorOjAyMTQ4NzAwNTAyRkU0Cis6MEQxNDg5MDBFQTI0MDBGNTgyRTQzNDE5RjU4M0UwRkJFNTY4Cis6MDQxNDk2MDA3NUI1MDMxQjBBCis6MEUxNDlBMDA3NUYwMTFFQUE0RkIyNDAwRkJFNDM0MThGQzhCNkYKKzowOTE0QTgwMDcwOEM3MTc1NzIwMUMwMDIxMjEyCis6MDQxNEIxMDAxMTc1RDAwMkRGCis6MDMxNEI1MDAwQTgwQ0NERQorOjAxMTRCODAwMjIxMQorOjA2MTRCOTAwNTA3MjZGNjcyMDAwNzUKKzowRTE0QkYwMEM4QzBFMEM4QzBFMEU1RjA2MDBCMTQ2MDBGMTQ3OAorOjA3MTRDRDAwNjAxMTE0NjAxMjgwMTU4QworOjA3MTRENDAwRDBFMEE4ODJGNjgwMEVCMworOjA1MTREQjAwRDBFMEYwODAwOUUzCis6MDQxNEUwMDBEMEUwODAwNUQzCis6MDUxNEU0MDBEMEUwQTg4MkYyMzcKKzowNDE0RTkwMEM4RDBFMEM4QkYKKzowMTE0RUQwMDIyREMKKzowRTE0RUUwMEM4QzBFMEU1RjA2MDBEMTQ2MDBGMTQ2MDBGMTQyQworOjA2MTRGQzAwNjAxMDc0RkY4MDBGNzgKKzowNTE1MDIwMEE4ODJFNjgwMEE0QQorOjAzMTUwNzAwRTA4MDA3N0EKKzowNDE1MEEwMEU0OTM4MDAzRTMKKzowMzE1MEUwMEE4ODJFMkNFCis6MDQxNTExMDBGOEQwRTBDODY2Cis6MDExNTE1MDAyMkIzCis6MDAwMDAwMDFGRgorCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKKyAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAorICogbW9kaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5hc20gYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGQ4OTE5Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5hc20KQEAgLTAsMCArMSw5OCBAQAorOyBBdXRob3I6IEZyZWRlcmlrIE5vcmluZyA8bm9yaW5nQG5vY3Jldy5vcmc+Cis7Cis7IFRoaXMgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCis7IExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBhcmNoaXZlCis7IGZvciBtb3JlIGRldGFpbHMuCisKKzsgRFNQNTZrIGxvYWRlcgorCis7IEhvc3QgSW50ZXJmYWNlCitNX0JDUiAgIEVRVSAgICAgJEZGRkUgICAgICAgICAgIDsgUG9ydCBBIEJ1cyBDb250cm9sIFJlZ2lzdGVyCitNX1BCQyAgIEVRVSAgICAgJEZGRTAgICAgICAgICAgIDsgUG9ydCBCIENvbnRyb2wgUmVnaXN0ZXIKK01fUEJERFIgRVFVICAgICAkRkZFMiAgICAgICAgICAgOyBQb3J0IEIgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIKK01fUEJEICAgRVFVICAgICAkRkZFNCAgICAgICAgICAgOyBQb3J0IEIgRGF0YSBSZWdpc3RlcgorTV9QQ0MgICBFUVUgICAgICRGRkUxICAgICAgICAgICA7IFBvcnQgQyBDb250cm9sIFJlZ2lzdGVyCitNX1BDRERSIEVRVSAgICAgJEZGRTMgICAgICAgICAgIDsgUG9ydCBDIERhdGEgRGlyZWN0aW9uIFJlZ2lzdGVyCitNX1BDRCAgIEVRVSAgICAgJEZGRTUgICAgICAgICAgIDsgUG9ydCBDIERhdGEgUmVnaXN0ZXIKKworTV9IQ1IgICBFUVUgICAgICRGRkU4ICAgICAgICAgICA7IEhvc3QgQ29udHJvbCBSZWdpc3RlcgorTV9IU1IgICBFUVUgICAgICRGRkU5ICAgICAgICAgICA7IEhvc3QgU3RhdHVzIFJlZ2lzdGVyCitNX0hSWCAgIEVRVSAgICAgJEZGRUIgICAgICAgICAgIDsgSG9zdCBSZWNlaXZlIERhdGEgUmVnaXN0ZXIKK01fSFRYICAgRVFVICAgICAkRkZFQiAgICAgICAgICAgOyBIb3N0IFRyYW5zbWl0IERhdGEgUmVnaXN0ZXIKKworOyBTU0ksIFN5bmNocm9ub3VzIFNlcmlhbCBJbnRlcmZhY2UKK01fUlggICAgRVFVICAgICAkRkZFRiAgICAgICAgICAgOyBTZXJpYWwgUmVjZWl2ZSBEYXRhIFJlZ2lzdGVyCitNX1RYICAgIEVRVSAgICAgJEZGRUYgICAgICAgICAgIDsgU2VyaWFsIFRyYW5zbWl0IERhdGEgUmVnaXN0ZXIKK01fQ1JBICAgRVFVICAgICAkRkZFQyAgICAgICAgICAgOyBTU0kgQ29udHJvbCBSZWdpc3RlciBBCitNX0NSQiAgIEVRVSAgICAgJEZGRUQgICAgICAgICAgIDsgU1NJIENvbnRyb2wgUmVnaXN0ZXIgQgorTV9TUiAgICBFUVUgICAgICRGRkVFICAgICAgICAgICA7IFNTSSBTdGF0dXMgUmVnaXN0ZXIKK01fVFNSICAgRVFVICAgICAkRkZFRSAgICAgICAgICAgOyBTU0kgVGltZSBTbG90IFJlZ2lzdGVyCisKKzsgRXhjZXB0aW9uIFByb2Nlc3NpbmcKK01fSVBSICAgRVFVICAgICAkRkZGRiAgICAgICAgICAgOyBJbnRlcnJ1cHQgUHJpb3JpdHkgUmVnaXN0ZXIKKworICAgICAgICBvcmcgICAgIFA6JDAKK3N0YXJ0ICAgam1wICAgICA8JDQwCisKKyAgICAgICAgb3JnICAgICBQOiQ0MAorOyAgICAgICA7IFplcm8gMTYzODQgRFNQIFggYW5kIFkgd29yZHMKKzsgICAgICAgY2xyICAgICBBICMwLHIwCis7ICAgICAgIGNsciAgICAgQiAjMCxyNAorOyAgICAgICBkbyAgICAgICM2NCw8X2Jsb2NrMQorOyAgICAgICByZXAgICAgICMyNTYKKzsgICAgICAgbW92ZSAgICBBLFg6KHIwKSsgQixZOihyNCkrCis7X2Jsb2NrMSAgICAgICAgOyBaZXJvICgzMjc2OC01MTIpIFByb2dyYW0gd29yZHMKKzsgICAgICAgY2xyICAgICBBICM1MTIscjAKKzsgICAgICAgZG8gICAgICAjMTI2LDxfYmxvY2syCis7ICAgICAgIHJlcCAgICAgIzI1NgorOyAgICAgICBtb3ZlICAgIEEsUDoocjApKworO19ibG9jazIKKworICAgICAgICA7IENvcHkgRFNQIHByb2dyYW0gY29udHJvbAorICAgICAgICBtb3ZlICAgICNyZWFsLHIwCisgICAgICAgIG1vdmUgICAgI3VwbG9hZCxyMQorICAgICAgICBkbyAgICAgICN1cGxvYWRfZW5kLXVwbG9hZCw8X2NvcHkKKyAgICAgICAgbW92ZSAgICBQOihyMCkrLHgwCisgICAgICAgIG1vdmUgICAgeDAsUDoocjEpKworX2NvcHkgICBtb3ZlcCAgICM+NCxYOjw8TV9IQ1IKKyAgICAgICAgbW92ZXAgICAjPiRjMDAsWDo8PE1fSVBSCisgICAgICAgIGFuZCAgICAgIzwkZmUsbXIKKyAgICAgICAgam1wICAgICB1cGxvYWQKKworcmVhbAorICAgICAgICBvcmcgICAgIFA6JDdlYTkKK3VwbG9hZAorICAgICAgICBtb3ZlcCAgICM+MSxYOjw8TV9QQkMKKyAgICAgICAgbW92ZXAgICAjPjAsWDo8PE1fQkNSCisKK25leHQgICAgamNsciAgICAjMCxYOjw8TV9IU1IsKgorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCxBCisgICAgICAgIG1vdmUgICAgIz4zLHgwCisgICAgICAgIGNtcCAgICAgeDAsQSAjPjEseDAKKyAgICAgICAgamVxICAgICA8JDAKK19nZXRfYWRkcmVzcworICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUixfZ2V0X2FkZHJlc3MKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgscjAKK19nZXRfbGVuZ3RoCisgICAgICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLF9nZXRfbGVuZ3RoCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLHkwCisgICAgICAgIGNtcCAgICAgeDAsQSAjPjIseDAKKyAgICAgICAgamVxICAgICBsb2FkX1gKKyAgICAgICAgY21wICAgICB4MCxBCisgICAgICAgIGplcSAgICAgbG9hZF9ZCisKK2xvYWRfUCAgZG8gICAgICB5MCxfbG9hZAorICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUiwqCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLFA6KHIwKSsKK19sb2FkICAgam1wICAgICBuZXh0Citsb2FkX1ggIGRvICAgICAgeTAsX2xvYWQKKyAgICAgICAgamNsciAgICAjMCxYOjw8TV9IU1IsKgorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCxYOihyMCkrCitfbG9hZCAgIGptcCAgICAgbmV4dAorbG9hZF9ZICBkbyAgICAgIHkwLF9sb2FkCisgICAgICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLCoKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgsWToocjApKworX2xvYWQgICBqbXAgICAgIG5leHQKKwordXBsb2FkX2VuZAorICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RzcDU2ay9ib290c3RyYXAuYmluLmloZXggYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzM2YyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmJpbi5paGV4CkBAIC0wLDAgKzEsMjYgQEAKKzoxMDAwMDAwMDBDMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKKzoxMDAwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDAwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDAwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDAwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDAwQzAwMDYwRjQwMDAwMDA0RjYxRjQwMDAwN0VBOTA2MkU4MDAwNUQKKzoxMDAwRDAwMDAwNDcwN0Q4ODQwNzU5ODQwOEY0QTgwMDAwMDQwOEY0RUUKKzoxMDAwRTAwMEJGMDAwQzAwMDBGRUI4MEFGMDgwMDA3RUE5MDhGNEEwNTIKKzoxMDAwRjAwMDAwMDAwMTA4RjRCRTAwMDAwMDBBQTk4MDAwN0VBRDA4REYKKzoxMDAxMDAwMDRFMkI0NEY0MDAwMDAwMDM0NEY0NDUwMDAwMDEwRUEwMEYKKzoxMDAxMTAwMDAwMEFBOTgwMDA3RUI1MDg1MDJCMEFBOTgwMDA3RUI4OEQKKzoxMDAxMjAwMDA4NDYyQjQ0RjQ0NTAwMDAwMjBBRjBBQTAwN0VDOTIwQ0MKKzoxMDAxMzAwMDAwNDUwQUYwQUEwMDdFRDAwNkM2MDAwMDdFQzYwQUE5QzUKKzoxMDAxNDAwMDgwMDA3RUM0MDg1ODZCMEFGMDgwMDA3RUFEMDZDNjAwQjEKKzoxMDAxNTAwMDAwN0VDRDBBQTk4MDAwN0VDQjA4NThBQjBBRjA4MDAwNTMKKzoxMDAxNjAwMDdFQUQwNkM2MDAwMDdFRDQwQUE5ODAwMDdFRDIwODU4NjMKKzowNzAxNzAwMEVCMEFGMDgwMDA3RUFERjgKKzowMDAwMDAwMUZGCisvKiBEU1A1NjAwMSBib290c3RyYXAgY29kZSAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZWRnZXBvcnQvYm9vdC5IMTYgYi9maXJtd2FyZS9lZGdlcG9ydC9ib290LkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmY4ZTkxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdC5IMTYKQEAgLTAsMCArMSwyOSBAQAorOjAwMDQwMDAwMDAwMTBDMDAwMkVECis6MDAwMjAwMDAwNDAwRkZGQgorOjAwMDYwMDAwMDAwMjAwODAwMjAwMDM3MworOjAwMDMwMDBCMDAwMjAwMEJFNQorOjAwMDMwMDEzMDAwMjAxQjgyRgorOjAwMDMwMDFCMDAwMjAwMUJDNQorOjAwMDMwMDIzMDAwMjAwMjNCNQorOjAwMDMwMDJCMDAwMjAwMkJBNQorOjAwMDMwMDMzMDAwMjAwMzM5NQorOjAwMDMwMDNCMDAwMjAwM0I4NQorOjAwMDMwMDQzMDAwMjAxQkRGQQorOjAwMDMwMDRCMDAwMjAxRDBERgorOjAwMDMwMDUzMDAwMjAxMjE4NgorOjAwMDMwMDdCMDAwMjAwN0IwNQorOjAxNjYwMDgwMDA3RUIwMDA3QUIzM0ZGMjdFRjgwMDIzN0UwMDAxN0UxMDAwMTIwNzVGNjkyMDAwMEFCRTI0MDAwMDc4MDU3NTkwMEQ4MDAzNzU5MDFERDJCNTdFMDAwMEE1RDhGRDc1QTgwMDc1QjEwMEE5RDU4N0NBMjkxMjA5Q0MxMjA5QTBGNTA5N0FBMTIwMTIwMUU2REEyOUE5RDBDNzdFMDAwNTdBMDFGMTc1RTExMEE5RDdGNEE5RDdFNEE1RDhGMTc1RjEwMDc1RTEzRjc1QTIwMzc1QTMwMDc1QzAwMDc1QzEwMEE5RDFCMUE5RDBCMUE5RDVEM0QyQUZFNDdFMDQyODAwOERFRjFCMDQ3OEZBMDRBOTM0RDMwMzMwRTBFRUJFMjQwMDAwNzgwNTYzOTAzMDgwRTNCMjk1ODBERkJFQjAwMjIyQzBEMEE5MjBERjBGQTkzMURGMDMwMjAxQjU3NTA4MDExMjA4MzM4MEZFNzUwOEZFMTIwODMzNzVBODAwN0VCMzNGRjIzMEUwNEIzMDAxNDZDMjkyN0UyNDgwMDA3RTExMDk3NDA4MTlCMjAwMTA3NDBFMTlCMjAwMDQyRTI0MDEwMEE1RDlFRDdFMjQ4MDAwN0UxMTA5RTRENUUwRkQwOUIyMDAwODIwRTAwQTA5QjIwMDAwMDlCMjAwMTg4MEVCMkUyNDAxMDBBNUQ5RTQ0MzkwMzBEMkFBODAwNUQyQUE0MzkwMzREMkFGQTlEMTg3MDAwMDAwMDAwMEE5MTFERjAzQTlEMkRGNzUwOEZGMTIwODMzQzBEMUNBMDJGRkNBMDY4MzAwMzJEMEQwMzJDMjhCQzJBQTMyNzUwODA4MTIwODMzQTlDMEIxQTlDNUQzQTlDNkQzQTlEMkIxMzJDQUI4NzUwODAyMTIwODMzRTVDMDU0MDM2ODA1MTIwMUVFODBGNURBQjgzMkFFCis6MDAwMTFCQ0EwMDAwMUEKKzowNjREMDFFNjAwRTQ3QUIzM0ZGMTAyMDI2M0NBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQkMwRjE3RUIzMDEyQkI0MDAwMjgwMTlCNDAxMTYzMEMwMDg3NUYxMDAxMjAyNEQ4MDFGMzBDMTFDNzVGMTAwMTIwMkRFODAxNDMwQzEwODc1RjEwMDEyMDJERTgwMDkzMEMwMDY3NUYxMDAxMjAyNEREMEYxREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjJDMkMwN0VCMzAxMkJCNDAyMDcxMjAyNkYwMjAyNjMyMkI0MDFGQzAyMDJBOTdFMDAwMDdBMDMwMTJCN0EwMzAxMkMyMjdFQjMwMTIzNTQ2MDYwMDVCNDQwMTU4MDEzN0VCMzAxMjRCNDA1MEM3NTA4NzExMjA4MzM3RUIzMDEyNkY1OEYyMjc1RjYwMDIyQkU1NzAxMjkyODA0N0U1NzAxMjk3QTBGMDEyRTdBNTcwMTMyMDIwMkE5N0VFRjAxMkU3RUY3MDEzMjdFMDcwMTMyNEQwMDY4MjE3RTAwMDA3RUVCQjBGNUYzQTNBNTA4MUJGNDY4MDRBNUI4MDhGMDdBRUYwMTJFN0FGNzAxMzI3NTA4MDYxMjA4MzM3QTAxRjYyMkMyQzE3NTA4MDMxMjA4MzNBOTM2RTIxNkU1RjU1NEMwNjgwN0E5RDdGNEE5MjdGNEZDNTNFMTNGNDNGMjg4MDIwMzU1N0VCMzAxMkNCNDAyMEZBOUQ0RTQ3RUIwMDA3QUIzMDEyQzdBQjMwMTJCMjJCNDAxMzk3RTIxRTY3QzMyN0UxMzAxMkQyQzIxN0EyMzAxMkQ3RTAwMDAyRTA0MDEzNEU1RTM3QTA5QjAwQjA0QTVEQkY2QTlENEU0NzUwODcwMTIwODMzN0VCMzAxMkQ3RUEzMDEyQUJDQUI3ODAzMTIwM0VDMjIwMjA3NTVFNUU2QjQwODY1QTlDNEUyN0UwMUUzN0UxMUUzN0UzMUUzN0UyMUUzN0U1MUUzN0U0MUUzN0U3MUUzN0U2MUUzN0EwRjAxMjM3QTFGMDEyNzc1MDgwNDEyMDgzMzdBMDEwODEyMDgzMzdBMTEwODEyMDgzMzdBMjEwODEyMDgzMzdBMzEwODEyMDgzMzdBNDEwODEyMDgzMzdBNTEwODEyMDgzMzdBNjEwODEyMDgzMzdBNzEwODEyMDgzM0E5RDRFNEE5RDdGNEE5QzZFMjEyMDNDMDIyNkQwMDdFMTQwMTAyN0EwNzAxMzI3QTAzMDEyRDdFQjMwMTIzMjBFNzBGN0EyMzAxMkM3QTMzMDEyQkJFMDcwMTI5NjgwOTIyN0EzMzAxMkM3QTIzMDEyQjdFQjMwMTIzNTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyMDc1NTU0M0VGNUYwMDM1NDFGQzMyNUYwOTAwNDE4NzU4NEZGNzMwMjA1NkMwMjA0NjAwMjA2MDkwMjA2MjQwMjA1MDUwMjA0QzYwMjA2M0QwMjA2M0QwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDYwMjA2RkEwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDM3RUIzMDEyNEI0MDYyQTdFQjMwMTI1NjA1NjdDMEI3RTEzMDEyNjdFMTcwMTI3NzUwODcyMTIwODMzN0EwMTA4MTIwODMzN0ExMTA4MTIwODMzMTIwNzVGNDAzNTAyMDI5NEI0MDgxMDc1MDg3NDEyMDgzMzdFQjMzRkYxRjVGMzc1RjYwMTIyQjQwMDFDNzUwODc1MTIwODMzN0VCMzNGRjIzMEUwMDU3NUYzMDI4MDAzNzVGMzAwNzVGMzAwNzVGNjAyMjIwMjA3NTU3RUIzMDEyNEI0MDAzNTc1MDg3NjEyMDgzMzdFQjMwMTI4NTQwRkY1RjE3RUIzMDEyODIwRTcwOUU1RTEzMEU3MEQ3NDAxODAwQkU1RTEzMEU2MDQ3NDAxODAwMjc0MDA1M0YxODBGNUYzNzVGMzAwNzVGNjAyMjIwMjA3NTVDMEYxN0VCMzAxMjg1NDBGNDJGMTdFQjMwMTI2QjQwMDQ1N0VCMzAxMjRCNDAxMjQ3NTA4NzcxMjA4MzM3RUIzMDEyODU0MEY3ODA1NTNFMTNGODAzNzdFQjMwMTI4MjBFNzA1NTNFMTdGODAyQjUzRTFCRjgwMjZCNDAzMTc3NTA4NzgxMjA4MzM3RUIzMDEyODIwRTcwNTQzRTE4MDgwMTE0M0UxNDA4MDBDNDNFMUMwRDBGMTc1MDgwNzEyMDgzMzIyRDBGMTAyMDI5MDdFQjMwMTI0QjQwOTIzNzUwODc5MTIwODMzN0VCMzAxMjZCRUIzM0ZGMTY4MTFDQUI4QzBGMTEyMDExREQwRjFEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MDg3QTEyMDgzMzgwNjJCNDAzMTk3NTA4N0IxMjA4MzM3RUIzMDEyNkI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MDg3QzEyMDgzMzdFQjMwMTI2QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzAxMjU2MDI0N0MwQjdFMTMwMTI2N0UxNzAxMjc3NTA4NzMxMjA4MzM3QTAxMDgxMjA4MzM3QTExMDgxMjA4MzMxMjA3OEI0MDAzMDIwMjkwMDIwNzU1N0VCMzAxMjRCNDBCRjY3NTA4N0QxMjA4MzM3RUIzMDEyNjdFQTMwMTI4NENBQjc4RTQ4MERGN0VCMzAxMjRCNDBBREI3NTA4N0UxMjA4MzM3RUIzMDEyNjcwQ0ZGNUYzNzVGNjAxMjIwMjA3NTUwMjA3NTUwMjA3NTU3RUIzMDEyNEI0MDQyMDc1MDhDMzEyMDgzMzdFMDQwMDAxN0UxNzAxMjU3RTE4MDEzNDdBMUMwMDAwN0U0NzAxMjkxMjA4M0YwMjA2RjRCNDA2M0E3NTA4QzExMjA4MzM3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcwMTI1N0U3ODAxMzQ3QTdDMDAwMDdFNzcwMTI5NzUwOEMxMTIwODMzQzBBOEMwODdDMkFGQTlENTg3MTIwOEQ2RDA4N0QwQTg0MDRGODA0QUI0MDAxQ0MyQUZBOUQ1ODcxMjAyOTBFNDhERUY4REVGOERFRkQ1RTBGN0MwRDFDQTAyRkZDQTA2MDAwMDMyQjQwOTEyN0U1NzAxMjU0RDU1NjgwNUE5RDJCMTgwMDNBOUMyQjE4MDE2QjQwNzE2QzJBRjdFMDcwMTI3N0UxNzAxMjVDMEQxQ0ExOENBMzhDQTI4MzIwMjAyOTAwMjA3NTU3RUIzMDEyNEI0MDMxNTc1MDhDMjEyMDgzMzdFMDQwMDAxN0UxNzAxMjU3RTU3MDEyOTAyMDI5NEI0MDUzOTc1MDhDMDEyMDgzM0MwQThDMDg3QzJBRkE5RDU4NzdFMDgwMTM0N0EwQzAwMDA3RTI0MDBGRTdFMzcwMTI1N0U0NzAxMjkxMjA4M0ZEMDg3RDBBODdFMDgwMTM0N0EwQzAwMDA3RTU3MDEyOTAyMDI5NDAyMDc1NTc1MDgwNzEyMDgzMzQzRTFDMDIyQzBBOEMwODdDMkFGQTlENTg3MTIwN0NBNDAxOTdFMDgwMTM0N0EwQzAwMDBDQTBCQ0E0OTEyMDgzRkRBNTlEQTBCRDA4N0QwQThDMzIyRDA4N0QwQTgyMkMwQThDMDg3QzJBRkE5RDU4NzEyMDdDQTQwMkI3RTU4MDAwMDdBNUMwMEZFN0Y2MTdFNzgwMTM0N0E3QzAwMDA3RTc3MDEyOUJENzQ3ODExNzUwOEMxMTIwODMzMTIwOEQ2NDAwNkQwODdEMEE4QzMyMkQwODdEMEE4RDMyMjdFMjQwMEZFN0UzNDdGQ0EwQjFBNTBDNUYwN0Q2MjdENzU3RDg3N0UzNDdGMDM3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMjM0Cis6MDA0MDdGQzAwMDQwMDEwMjAwQ0ExQjAxMEMwMjAwMDA3QzAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMTdGMDAwMDAwMDAwMDAwNUQKKzoxMzk3MDgzMzAwQ0EwODdFMDEwODdBMDMzRkYwREEwODIyODA1MDBCMUE2MDBCMzUwQjFBNzAwQjM1MEIxQTgwMEIzNTBCMUE5MDBCMzUwQjFBQTAwQjM1MEIxQUIwMEIzNTBCMUFDMDBCMzUwQjFBRDAwQjM1MUIwQTYwMEIxNTFCMEE3MDBCMTUxQjBBODAwQjE1MUIwQTkwMEIxNTFCMEFBMDBCMTUxQjBBQjAwQjE1MUIwQUMwMEIxNTFCMEFEMDBCMTU5RTQ0MDAxMDUwQUEyRTQ0MDAxMDY4MEU3RTFCQzA3QTBCQzAwQjE0MEIzNDFCNDQ3OEYyMjI3RjZGN0ZGMDFCRkM3QzU0N0QzMjgwMDhDQTFCQ0ExQkNBMUJDQTFCOUU0NDAwMTA1MEYyMkU0NDAwMTA2ODA2Q0E0ODFCNDQ3OEZBN0ZGNjg5RTRDQTZCNUVENDAwM0Y2ODIwN0U4NDAwNDA5RDhEREE2QkJEODczODE2Q0E3OTdENzgxMjA5MDBEQTc5NDAwODlENzg2ODAyODAwNUMyRDcyMkRBNkI0MzkwMzA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJDNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTYwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDM2MzkwMzA0RDc3Nzg5M0MyRDcyMkQyRDcyMjAwMDQwMDA0MDAwMDA2MDQwMjA0MDAwMjAxMDQwMTAyMDAwMDAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAwMDgxMDAyMTAwNDAyMDgwMDAxMDEwODdFMTg3RkJEN0ExQzAwRkYwQjFBMDBCRTEwMTQzODFBMEE1MTIzN0UxODA5NzY3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkU3RUU4N0ZCRjdBRUMwMEZGRTBGNTIyNTRDMDY4MTY3RUU4N0ZCRTdBRUMwMEZGRTA2MDBDMTIwOUEwRjUwOTdBQTEyMDAyMEYwQTIyQzI5NUQyOTQxMjE5RkI1MzkwQ0YxMjE5RkI4MEYxMEQwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBEMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEE0NTY0Njc2NTcwNkY3Mjc0MkYzNDIwMkQyMDQ4NjE3MjY0Nzc2MTcyNjUyMDQ0Njk2MTY3NkU2RjczNzQ2OTYzNzMyQzIwNTI2NTc2MjAzMTJFMzAzMDNCMjA0MzZGNzA3OTcyNjk2NzY4NzQyMDMxMzkzOTM4MjA0OTZFNzM2OTY0NjUyMDRGNzU3NDIwNEU2NTc0Nzc2RjcyNkI3MzBEMEEwMDUwNjE3MzczMDA0NjQxNDk0QzIwMjEyMTAwNTA2MTczNzMyMDIwMjAyMDAwNDY0MTQ5NEMyMDIxMjEyMDAwMEQwQTQ0NjU3NDY1NjM3NDIwNTI2MTZEM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI2MTZEMjA1NDY1NzM3NDNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDBEMEE0MTY0NjQ3MjY1NzM3MzIwNjI2OTc0MjAzMDJEMzEzNDIwNzQ2NTczNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTU3NzI2Rjc0NjUyMDQxNjQ2NDcyNjU3MzczM0EyMDMwMzAzQTAwMjAyMDc3Njk3NDY4MjA2NDYxNzQ2MTNBMjAwMDJDMjA2MTZFNjQyMDcyNjU2MTY0M0EyMDAwMEQwQTRGNkU2NTIwNkY3MjIwNjI2Rjc0NjgyMDZGNjYyMDc0Njg2NTIwNjY2RjZDNkM2Rjc3Njk2RTY3MjA0MTY0NjQ3MjY1NzM3MzIwNjI2OTc0NzMyMDZDNjk3Mzc0NjU2NDIwNjE3MjY1MjA3MzY4NkY3Mjc0NjU2NDBEMEE3NDZGMjA3MzZGNkQ2NTc0Njg2OTZFNjczQTIwMDAyMDYxNkU2NDIwMDAwRDBBNDQ2NTc0NjU2Mzc0MjA1NTYxNzI3NDNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDBEMEE1MzYzNzI2MTc0NjM2ODIwNTA2MTY0MkM0NjY5NDY2RjIwNDU2RTYxNjI2QzY1MjAyNjIwNTI1MzU0M0EyMDAwMEQwQTBBMjAyMDIwNTU2MTcyNzQyMDU0NjU3Mzc0NzMyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwNTA2RjcyNzQzMTIwMjAyMDUwNkY3Mjc0MzIyMDIwMjA1MDZGNzI3NDMzMjAyMDIwNTA2RjcyNzQzNDBEMEEyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMDAwRDBBNTA2RjcyNzQyMDQ0NjU2MzZGNjQ2NTcyM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDQ2OTY3Njk3NDYxNkMyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDE2RTYxNkM2RjY3MjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1ODQ0MkM1NDU4NDQyMDc0NkYyMDUyNTQ1MzJDNDM1NDUzMkM1MjQ5MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNTI1ODQ0MkM1NDU4NDQyMDc0NkYyMDQ0NTQ1MjJDNDQ1MzUyMkM0MzQ0MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNTI1NDUzNUI0MzU0NTMyQzUyNDk1RDIwNzQ2RjIwNDQ1NDUyMkM0NDUzNTIyQzQzNDQyMDUzNjg2RjcyNzQzQTIwMDAwRDBBNTI1NDUzNUI0MzU0NTMyQzQzNDQ1RDIwNzQ2RjIwNDQ1MzUyMkM1MjQ5MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNDQ1NDUyNUI0NDUzNTIyQzQzNDQ1RDIwNzQ2RjIwNTI1NDUzMkM0MzU0NTMyQzUyNDkyMDUzNjg2RjcyNzQzQTIwMDAwRDBBNDQ1NDUyMjA3NDZGMjA0MzU0NTMyQzQzNDQyMDUzNjg2RjcyNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1NDUzMjA3NDZGMjA0MzU0NTMyQzUyNDkyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1NDUzMjA3NDZGMjA0MzU0NTMyQzQzNDQyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDQ1NDUyMjA3NDZGMjA0NDUzNTIyQzQzNDQyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBMEEyMDIwMjA0NTIwNTIyMDUyMjA0RjIwNTIyMDIxMjEyMTJDMjA0NTIwNTIyMDUyMjA0RjIwNTIyMDIxMjEyMTIwMkMyMDQ1MjA1MjIwNTIyMDRGMjA1MjIwMjEyMTIxMEQwQTBBNDQ2OTYxNjc2RTZGNzM3NDY5NjM3MzIwNkU2Rjc3MjA3NzY5NkM2QzIwNjU2RTc0NjU3MjIwNjEyMDY0NjU2Mjc1NjcyMDZDNkY2RjcwMjA2RjY2MjA3NDY4NjUyMDY2Njk3MjczNzQyMDY0NjU3NDY1NjM3NDY1NjQyMDY1NzI3MjZGNzIyRTAwMEQwQTBBNEU2RjIwNDg2MTcyNjQ3NzYxNzI2NTIwNjU3MjcyNkY3MjczMjA2NDY1NzQ2NTYzNzQ2NTY0MkUwRDBBMDA0MzZGNzA3OTY5NkU2NzIwNjM2RjY0NjUyMDY2NzI2RjZEMjA0RDYxNzM3NDY1NzIyMDc0NkYyMDUzNkM2MTc2NjUyNzczMjA0NTQ1NzA3MjZGNkQyMDJFMkUyRTAwNDQ2RjZFNjUwRDBBMEEyRDNFMjA1NDc1NzI2RTIwNzU2RTY5NzQyMDZGNjY2NjJDMjA2NDY5NzM2MzZGNkU2RTY1NjM3NDIwNjM2MTYyNkM2NTIwNjE2RTY0MjA3Mjc1NkUyMDczNzQ2MTZFNjQ2MTZDNkY2RTY1MjA2NDY5NjE2NzZFNkY3Mzc0Njk2MzczMkUwMEMyQUZDMjA5QzIwQTc1OTAwRDIwMTcwMkQyQjU0MzkwMzA2QzAwN0UxMDAzMTIwRjM4N0U2ODBBMDE3QTZDMDBGRjEyMUE5MzBCMDAzMEI0MDI4MDI0MDIxQjNDMjAwOTFEQzI5NEQyOTUxMjE5RkI1MzkwQ0YxMjE5RkJDMjk1RDI5NDEyMTlGQkE1RDlFNjQzOTAzMDEyMTlGQjIyN0U2ODBBOTQ3QTZDMDBGRjEyMUE5MzdFRTQxMDAwN0U0MDU1N0FFOTQwMEJFNDdFNTBBQTdBRTk1MDFCRTRCRUU5NDA2ODE5N0U2ODBBN0E3QTZDMDBGRjEyMUE5MzEyMUEwODMwMDkxMzdBRTk0MDdFRTkxMDgwRjg3RTY4MEE3NTdBNkMwMEZGMTIxQTkzMEIwMDdFNjgwQUQ4N0E2QzAwRkYxMjFBOTM3RTc4MDAwMDdFNzAwRTdFQTRGRkZGN0VCNEJGRkY3RENCMEVDNDdEREM1RERCNkNCQjdERkE1RUY0N0ZGRjdBN0JCMDBCQjA3REZCNUVGNDdGRkY3QTdCQjAwQkIwN0RGQzVFRjQ3RkZGN0E3QkIwMEJCMDdERkQ1RUY0N0ZGRjdBN0JCMDZDQkI3REZBNUVGNDdGRkZCRTdCQjA3ODQxMEJCMDdERkI1RUY0N0ZGRkJFN0JCMDc4MzQwQkIwN0RGQzVFRjQ3RkZGQkU3QkIwNzgyNzBCQjA3REZENUVGNDdGRkZCRTdCQjA3ODFBMEJCMEJFQzRGRkZFNzg5MjBFQjRBNURGOEI3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODA3N0NBNUJDQTZCN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzdFNjgwQjJBN0E2QzAwRkYxMjFBOTMwQTQ3MTIxQUM5N0U2ODBCNzk3QTZDMDBGRjEyMUE5MzZDNzdEQTZCQ0E2QjBCNzAwRUM0QkVDNEZGRkY3OEY2MUI3MDBBNDcxMjFBQzkxMjFBMDgzMDA5MzBEQTZCREE1QjZDQkI3RTc4MDAwMDdERkE1RUY0N0ZGRjdBN0JCMDdERkI1RUY0N0ZGRjdBN0JCMDdERkM1RUY0N0ZGRjdBN0JCMDdERkQ1RUY0N0ZGRjdBN0JCMDgwRDQ3RTY4MEFCNjdBNkMwMEZGMTIxQTkzMzAxNzBFN0U3ODA0MjA3QTdDMDAwMDdFNDQ3QkUwODAwQzdFNzgwMDAwN0E3QzAwMDE3RTQ0ODAwMDBCMDA3RTQwM0E3QzU0N0Y1NzdEODQ2QzY2N0E1QjUwMEI1QzBCNTBBNURFMDIwQjUwMUI4NDc4RjA3QzU0N0Y1NzdEODQ2QzY2QkU1QjUwNzgxQTBCNUMwQjUwQTVERTAyMEI1MDFCODQ3OEVFN0U2ODBBNzU3QTZDMDBGRjEyMUE5MzgwNEI3RjQ1N0U2ODBBN0E3QTZDMDBGRjEyMUE5MzdFNjgwQUZBN0E2QzAwRkYxMjFBOTM3RDRCMTIxQUM5N0U2ODBCMEY3QTZDMDBGRjEyMUE5MzZDODg3Qzk1MTIxQUM5N0U2ODBCMUQ3QTZDMDBGRjEyMUE5MzdFNEI5MDEyMUFDOTEyMUEwODMwMDkwNTdFNEI5MDgwRkI3RTY4MEI3RjdBNkMwMEZGMTIxQTkzMEIwMEQyOTI3RTI0ODAwMDA5QjIwMDA4QkVCMDAxNzgwQjA5QjIwMDE0QkVCMDYwNzgwMjgwMTc3RTY4MEE3QTdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTExMDlCMjAwMDg4MEZBN0U2ODBBNzU3QTZDMDBGRjEyMUE5MzdFNjgwQkExN0E2QzAwRkYxMjFBOTMwQjAwQzI5MjEyMTlFRTdFMjQ4MDAwN0VBMDU1MTlBMjAwMUM3RUIwMDExOUIyMDAwODA5QjIwMDFDQkNBQjc4MzcwOUIyMDAwODVFQjBDMEJFQjBDMDc4MkI3RUEwQUExOUEyMDAxQzZDQkIxOUIyMDAwODA5QjIwMDFDQkNBQjc4MTYwOUIyMDAwODVFQjBDMDc4MEQ3RTY4MEE3NTdBNkMwMEZGMTIxQTkzODAxQjdFNjgwQTdBN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEExOUEyMDAxQzA5QjIwMDFDODBGNjdFNjgwQkMzN0E2QzAwRkYxMjFBOTM3RTY4MEM0NTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDk3RUIwMDExOUIyMDAxQzJFMjQwMTAwMEJCMEE1RDlGMzdFMjQ4MDAwN0UxMTA5N0VCMDAxMEIwMDA5QTIwMDFDQkNBQjc4MTY3RTY4MEE4MjdBNkMwMEZGMTIxQTkzMkUyNDAxMDAwQkIwQTVEOUUyODAyNTdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTQ3RTI0ODAwMDdFMTEwOTA5QTIwMDFDMkUyNDAxMDBBNUQ5RjU4MEVDN0U2ODBDNjk3QTZDMDBGRjEyMUE5MzEyMTM4QTdFMjQ4MDAwN0UxMTA5MEIwMDc0MTAxOUIyMDAxMDEyMTMwMzJFMjQwMTAwQTVEOUVFN0U2ODBDOEQ3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMEU0MTlCMjAwMTAxMjEzMDMyRTI0MDEwMEE1RDlFRjMwMDAwMzAyMThCNzAyMTNCQjc0MDcxOUIyMDAwODEyMTlGQjA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTRDMjBCN0VCMDU1MTIxMzY0N0VCMEFBMTIxMzY0N0VCMDAwMTIxMzY0N0VCMEZGMTIxMzY0MzAwQjBGN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzEyMUEwODIyN0U2ODBBODI3QTZDMDBGRjEyMUE5MzIyMTlCMjAwMDAxMjE5RUUwOUEyMDAwMEJDQUI3ODAxMjIyMDA5MDNEMjBCMjIxMjFBMDgxOUIyMDAwMDEyMTlFRTA5QTIwMDAwODBGM0QyOTIxMjE5RUVDMjkyMTIxOUVFN0UyNDgwMDA3RTExMDk3NDgwMTlCMjAwMEM3RTU0MDAwMjE5QTIwMDA0MTlCMjAwMDA3NDAzMTlCMjAwMEMyRTI0MDEwMEE1RDlFMTIyN0U2ODBDQjE3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDEyMTlFRTA5QjIwMDE4N0VBMDU1MTlBMjAwMDAxMjE5RUUwOUIyMDAxODVFQjAwNTc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAxQTdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MDkxOUEyMDAwMDEyMTlFRTgwRjcyRTI0MDEwMEE1RDlCNjdFNjgwQ0Q1N0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDAxMjE5RUUwOUIyMDAxODdFQTA1NTE5QTIwMDAwMTIxOUVFMDlCMjAwMTg1RUIwMEE3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMUE3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTA5MTlBMjAwMDAxMjE5RUU4MEY3MkUyNDAxMDBBNUQ5QjYzMDA0MDMwMjE2OEM3RTY4MENGOTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDBBNzgzQzdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMEE3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ0MTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA1NzgzQzdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDU3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ4OTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwN0VBMDAyMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA1MEJFQjA1MDc4MUY2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA1MDc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBMjdFNjgwREQxN0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDAwOUIyMDAxODdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwQTBCRUIwQTA3ODFGNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwQTA3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTBGN0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5OUUwMjE4MkI3RTY4MEQxRDdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA2NzgzQzdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDY3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ2NTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA5NzgzQzdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDk3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MERBRDdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwN0VBMDAyMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA5MEJFQjA5MDc4MUY2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA5MDc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBMjAyMThCNzMwMTcwMzAyMTkzQkMyOEExMjE5MjI3RTI0ODAwMDdFMTEwOTZDQUExOUEyMDAwNDEyMTlFRTBCMDA3RUEwMDgxOUEyMDAxMDEyMTlFRTIwOEIzRTIwODkzQjdFQTAwODE5QTIwMDA0MDlBMjAwMTA0RUEwMDIxOUEyMDAxMDEyMTlFRTMwOEIyMzMwODkyMDA5QTIwMDEwNUVBMEZEMTlBMjAwMTAxMjE5RUU3RUEwMDAxOUEyMDAwNDEyMTlFRTIwOEIwNTIwODkwMjgwMUExMjFBMDgzMDA5MTQ3RUEwMDIxOUEyMDAxMDAwMDA1RUEwRkQxOUEyMDAxMDAwMDA4MEVDMkUyNDAxMDBBNUQ5ODkwMjE5M0IyMDE3RkExMjEzOEExMjE5MjI3RTI0ODAwMDdFMTEwOTBCMDAyMDg5MjY3RUEwRkYxOUEyMDAwNDEyMTlFRTdFQjA1NTE5QjIwMDAwMTIxOUVFMzA4OTBGN0VBMDAwMTlBMjAwMDQxMjE5RUUyMDg5MDI4MDI2MTIxQTA4MzAwOTIwN0VBMEZGMTlBMjAwMDQxMjE5RUU3RUIwNTUxOUIyMDAwMDEyMTlFRTdFQTAwMDE5QTIwMDA0MTIxOUVFODBFMDJFMjQwMTAwQTVEOUE4MDIxOTNCN0UyNDgwMDA3RTExMDk3RUEwMDgxOUEyMDAxMDEyMTlFRTJFMjQwMTAwQTVEOUVGMjIzMDBBMTk3RTY4MERGNTdBNkMwMEZGMTIxQTkzRDIwOTEyMTlFRTEyMTlFRTEyMTlFRTAyMEYxMDMwMTcxQzdFNjgwRTZGN0E2QzAwRkYxMjFBOTM3RTY4MEU5MTdBNkMwMEZGMTIxQTkzMTIxQjNDMDIxOUU2MEIwMDdFNzgxOUEwN0E3QzAwRkY3RjY3N0E2QzAwMDA3RTcwM0U3RTdCQjA3QTZCQjAwQjdDMEI2Q0E1REZGMzdFNzgxOUEwN0E3QzAwMDA4OTc4N0U3ODAwMDA3QTdDMDBGRTdFNjg3RkJGN0E2QzAwRkU3NEFBMzlCNzU1NTU3NDU1MzlCNzJBQUE3NEEwMzlCNzU1NTU2Qzk5N0E2QjkwN0U1NDI3MTA3RTZCODBCQzg5NjgwODFCNTQ3OEY1OEFGRjE5REU4QUZGMTlFNjEyMUEwODdFNkI4MDgwRkI3RTEwRkYxMjFBODU4MEY4Q0FGOTdFRjQwMEZGMUJGNDc4RkNEQUY5MjJDQUY5N0VGNDAwMDAxQkY0NzhGQ0RBRjkyMjIwMDkxOUQyMEExMjE5RkJDMjk1RDI5NDEyMTlGQjEyMTlGQjEyMTlGQjEyMTlGQjQzOTAzMDIyQ0EwQjdFMTAwMzdDMzA2QzIyMEIyMDlFMzAwQTUwRjkyRTMwMEIxQjIwNjgxODEyMTlGQjEyMTlGQjUzOTBDRjEyMTlGQjEyMTlGQjEyMTlGQjQzOTAzMEE1REFFODEyMTlGQjEyMTlGQjFCMzA2ODE5MTIxOUZCMTIxOUZCQzI5NUQyOTQxMjE5RkIxMjE5RkIxMjE5RkI0MzkwMzBBNURCRTc3RTIwMEExMjE5RkJBNURBRkFBNUQ5QTdEQTBCMjIyMDA5MEExMjE5RkJCMjk0MTIxOUZCQjI5NDIyMzAxNzMyMjAwOTJGQ0EyQkNBN0I3RTc4ODAwMDdBN0MwMEZFMTIxQjFDN0U2QkEwNUNBQTY4MTAyOUI3MDAxNDU0NjA2OEY4MzlBNzAwMDAwQjZDODBFOTEyMTlFRUQyQjVEQTdCREEyQjIyMTIxQUQ0N0U2ODAwMEIxMjFBOTMyMkNBNTlDQTVCN0VCNDAwMEI3Q0I4QzQxMjFCMDQ3Q0I4MTIxQjA0N0NCOUM0MTIxQjA0N0NCOTEyMUIwNDdFQjA2ODdBQjlCMDBCQjQ2Q0JCN0FCOUIwREE1OURBNUIyMjVFQjAwRjdDQUI5RUEwMEE0MDA1MkVCMDM3ODAwMzJFQjAzMDdBQjlCMDBCQjQyMkMyQjVDMjkyMTIxOUVFNzQ4MDM5QjcwMDBDN0U1NDAwMDYzOUE3MDAwNDM5QjcwMDAwNzQwMzM5QjcwMDBDMjI3RTc4MDAwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdGNjU3RTc0MjAwMDEyMDhENjQwNTQ3RTc4N0MwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdFNjg3QzAwN0E2QzAwMDE3RTc0MDQwMDEyMDhENjQwMzM3NDgwMTIxQkIxNDAyQzUzOTBDRkQyMDg3RTA0MDAwODdFMTQwMDAwODRBNURCRkNBNURBRjlBNUQ5RjY3NDQwMTIxQkIxNDAwRTdFNjgwRUMwN0E2QzAwRkYxMjFBOTMwMjE5RTZDMjk1RDI5NDgwRkVGNTBBN0U3ODAwMEE3QTdDMDAwMDdFNjg3RkJGN0E2QzAwMDE3RTc0MDAwMTAyMDhENkQyCis6MDAwMDAwMDAwMUZGCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisvLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKy8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZWRnZXBvcnQvYm9vdDIuSDE2IGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdDIuSDE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTQyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lZGdlcG9ydC9ib290Mi5IMTYKQEAgLTAsMCArMSwyOCBAQAorOjAwMDQwMDAwMDAwMjAwMDAwM0Y3Cis6MDAwMjAwMDAwNDAwRkZGQgorOjAwMDYwMDAwMDAwMjAwODAwMjAwMDM3MworOjAwMDMwMDBCMDAwMjAwMEJFNQorOjAwMDMwMDEzMDAwMjAyNTY5MAorOjAwMDMwMDFCMDAwMjAwMUJDNQorOjAwMDMwMDIzMDAwMjAwMjNCNQorOjAwMDMwMDJCMDAwMjAwMkJBNQorOjAwMDMwMDMzMDAwMjAwMzM5NQorOjAwMDMwMDNCMDAwMjAwM0I4NQorOjAwMDMwMDQzMDAwMjAwNDM3NQorOjAwMDMwMDRCMDAwMjAwNEI2NQorOjAwMDMwMDUzMDAwMjAxRjVCMgorOjAwMDMwMDdCMDAwMjAwN0IwNQorOjAyMTYwMDgwMDA3RUIzOTEwMTIwRTMwQzdFQjMzRkYyNTRGRTdBQjMzRkYyODAwQTdFQjMzRkYyNDQwMTdBQjMzRkYyNzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyN0VGODAwMjQ3RTAwMDE3RTEwMDAxMjA5RDA2OTIwMDAwQTVFNDAxRkJFMjQwMDAwNzgwOTdFMDAwMzdBMDM5MDAwODAwNzdFMDAwMjdBMDM5MDAwNzVCMERGN0UwMDAxN0EwMzk0MDA3QTAzMDEyNDdFMDAwMTdBMDM5MzAwN0UwMDAwQTVEOEZENzVBODAwNzVCMTAwQ0EyOTEyMEM2NjEyMEMzN0Y1MjE3QUExMjAyMDA5MDgyMDBBMEE3RUIwMEM4MDA4N0VCMDAwODAwMzdFQjAwODdBQjM5MjAwMTIwMjk2REEyOTc0MTA3QUIzOTEwMTdFMjAwNDdDQjJDMkQ3MTMxMzEzMTM3QUIzOTEwMDc0MDA3QUIzOTExMDc0NjA3QUIzOTExQzc0MDI3QUIzOTExMkE1REFERjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzc0MTA3QUIzOTEwNjc0MTA3QUIzOTEwNzc0MzQ3QUIzOTExMzc0M0Y3QUIzOTExNDc0MDI3QUIzOTEwNjc0MDE3QUIzOTEwNzc0MDM3QUIzOTEwNjc0NDQ3QUIzOTEwNzc0RUY3QUIzOTEwNDc0MDc3QUIzOTEwNjdFQjM5MTA3N0FCMTBBNzUwOTAxRDJBQUQyQUZFNDdFNjAwMjREMjI3ODAzN0U2MDAzN0M3NjdFMDQyODAwOERFRjFCMDQ3OEZBMDQ3RTIwMDc3QTIzOTEwNjdFMjM5MTA3N0UzMTBBQkMzMjY4MjI3QTIxMEE3RTIxMDk2ODE3Q0FCODc0MDM3QUIzOTEwNjdFQjM5MTA3NDQwMjdBQjM5MTA3REFCODc1MDkwMDMwRTBDMTZDNjc3QTYzOTAwMDgwQjlCRUIwMDIyMkMwRDA3NTA4RkUxMjBBQzA3NDAyN0FCMzkxMDY3NDAwN0FCMzkxMDc3NDAzN0FCMzkxMDY3NDAwN0FCMzkxMDc3NDAyN0FCMzkxMDQ3RUIzM0ZGMjMwRTAwODc0MTg3QUIzOTEwMTgwMDY3NDEwN0FCMzkxMDE3NDEwN0FCMzkxMDQwMjAyMzY3NTA4RkYxMjBBQzA3NDAxN0FCMzkxMDQ3NDAzN0FCMzkxMDY3RUIzOTEwNzU0RkM3QUIzOTEwNzMyQ0FCODc1MDgwMjEyMEFDMDdFQjM5MTAzMjBFNTA4MzBFMDJCMTIwMjlFODBGMTdFQjM5MTA0MzBFMDA1REFCODAyMDIzOTMwRTEwNURBQjgwMjAxRjUzMEU2MDUxMjA0MDM4MEQ1MzBFMjA1REFCODAyMDA4MDgwQ0JEQUI4MzI2RAorOjA4MkEwMjk2MDBFNDdBQjMzRkYxMDIwMzQxQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzQwMDdBQjM5MTAwN0VCMzAxMkVCNDAwMDI4MDFDQjQwMTE5N0VCMzkxMTQ1NDE0NjgwNTEyMDMwNTgwMjM3RUIzOTExNDMwRTUxQzEyMDQ0MzgwMTc3RUIzOTExNDMwRTUwNTEyMDQ0MzgwMEI3RUIzOTExNDU0MTQ2ODAzMTIwMzA1REFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjIyMEU0MTk3NTA4MEExMjBBQzA3RUIzMDEyRDcwMEE3RUIzMDEyRUI0MDExRjAyMDM5RDAyMDk4Qjc1MDgwQjEyMEFDMDc0MTQ3QUIzOTExNDdFQjMwMTJFQjQwMjBDMTIwMzREMDIwMzQxNzQwNDdBQjM5MTE0MjI3RTAwMDA3QTAzMDEyRTdBMDMwMTJGMjI3RUIzMDEyNTU0NjA2MDA1QjQ0MDFFODAxQzdFQjMwMTI2QjQwNTE1NzUwODcxMTIwQUMwN0VCMzAxMjg3RUEwMDE3QUEzOTEwNjdBQjM5MTA3MjI3NDAwN0FCMzkxMDA3NDEwN0FCMzkxMTIyMkJFNTcwMTJCMjgwNDdFNTcwMTJCN0EwRjAxMzE3QTU3MDEzNTc0MTA3QUIzOTExMjIyNzQwMDdBQjM5MTAwN0VCMzkxMUE3MDUzN0VCMzkxMTQyMEU0NEM3RUVGMDEzMTdFRjcwMTM1N0UwNzAxMzU0RDAwNjgyMTdFMDAwMEUwN0FCMzkxMTdBM0E1MDgxQkY0NjgwNkE1QjgxMEYwODAxOTdFQjAwMDdBQjMwMTJFQkUwMDEwNjgwRDdFQjAwMDdBQjMwMTJFNzQ4MDdBQjM5MTFFN0FFRjAxMzE3QUY3MDEzNTc1MDgwNjEyMEFDMDc0MDQ3QUIzOTExNDIyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzUwODAzMTIwQUMwNzQwMDdBQjMwMTJENzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyMTIwNEIyREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjI3NTA4MDMxMjBBQzA3RUIzMDEyRkI0MDIxMTc0MDA3QUIzMDEyRjdBQjMwMTJFNzQyMDdBQjM5MTE0MjJCNDAxNDY3RUIzOTEwNDIwRTY0MjdFMjM5MTFBN0MzMjdFMTMwMTMwMkMyMTdBMjMwMTMwN0UwMDAwMkUwNDAxMzc3RUIzOTExNjdBMDlCMDBCMDRBNURCRjQ3NDIwN0FCMzkxMTQ3NTA4NzAxMjBBQzA3RUIzMDEzMDdFQTMwMTJDQkNBQjc4MDMxMjA1NTIyMjAyMDk4QkRBNTkwMjA0MTU3NEUwN0FCMzkxMDA3RTAzOTExMDdFMTM5MTExN0UzMzkxMTI3RTIzOTExMzdFNTM5MTE0N0U0MzkxMTU3RTczOTExNjdFNjM5MTE3N0EwRjAxMjU3QTFGMDEyOTc1MDgwNDEyMEFDMDdBMDEwODEyMEFDMDdBMTEwODEyMEFDMDdBMjEwODEyMEFDMDdBMzEwODEyMEFDMDdBNDEwODEyMEFDMDdBNTEwODEyMEFDMDdBNjEwODEyMEFDMDdBNzEwODEyMEFDMDc0MDA3QUIzOTEwMDc0NDA3QUIzOTEwNDEyMDUyNjIyNkQwMDdFMTQwMTAyN0EwNzAxMzU3QTAzMDEzMDdFQjMwMTI1MjBFNzBGN0EyMzAxMkY3QTMzMDEyRUJFMDcwMTJCNjgwOTIyN0EzMzAxMkY3QTIzMDEyRTdFQjMwMTI1NTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyMDk4QjU0M0VGNUYwMDM1NDFGQzMyNUYwOTAwNTdFNzU4NEZGNzMwMjA3MzkwMjA1QzYwMjA3RDIwMjA3RUQwMjA2RDAwMjA2NUIwMjA4MUUwMjA4MUUwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjcwMjA4RjkwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQ3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMDEyNkI0MDYyQTdFQjMwMTI3NjA3OTdDMEI3RTEzMDEyODdFMTcwMTI5NzUwODcyMTIwQUMwN0EwMTA4MTIwQUMwN0ExMTA4MTIwQUMwMTIwOUQwNDA1ODAyMDM4NEI0MDgxQzc1MDg3NDEyMEFDMDdFQjMzRkYxN0UwODAxMzc3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDIwMzg0QjQwMDMzNzUwODc1MTIwQUMwN0UwODAxMzc3QTBDMDAwMENBMEI3RUIzM0ZGMjMwRTAwNzc0MDI3QTBCQjA4MDA1NzQwMDdBMEJCMDBCMTQ3NDAwN0EwQkIwN0U1NDAwMDJEQTBCMDIwMzg0MDIwOThCNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDAwNUY3NTA4NzYxMjBBQzA3RUIzMDEyQTU0MEZCNDAyMDU3RUIwNjA4MDE3QjQwMDA1N0VCMDAwODAwRjdFQjMwMTJBMjBFNzA1N0VCMDQwODAwMzdFQjAyMDdBQjM5MTAwN0VCMzkxMTEzMEUwMDQ3NDAxODAwMjc0MDA3RTA4MDEzNzdBMEMwMDAwQ0EwQjdBMEJCMDBCMTQ3NDAwN0EwQkIwNzQwMDdBQjM5MTAwN0U1NDAwMDJEQTBCMDIwMzg0MDIwOThCN0VCMzAxMkE1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMDEyQTIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjMwMTI4QjQwMDI2N0VCMzAxMjZCNDAxMEU3NTA4NzcxMjBBQzA3NDAxN0FCMzkxMTI4MDFCQjQwMzBFNzUwODc4MTIwQUMwNzQwMTdBQjM5MTExODAwQTc0MDA3QUIzOTEwMDEyMDk4QjIyNzQwMDdBQjM5MTAwMDIwMzc3N0VCMzAxMjZCNDA5MUY3NTA4NzkxMjBBQzA3RUIzMDEyOEJFQjMzRkYxNjgwRENBQjgxMjAxRjFEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MDg3QTEyMEFDMDgwNjJCNDAzMTk3NTA4N0IxMjBBQzA3RUIzMDEyOEI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MDg3QzEyMEFDMDdFQjMwMTI4QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzAxMjc2MDI0N0MwQjdFMTMwMTI4N0UxNzAxMjk3NTA4NzMxMjBBQzA3QTAxMDgxMjBBQzA3QTExMDgxMjBBQzAxMjBBMEE0MDAzMDIwMzc3MDIwOThCN0VCMzAxMjZCNDBCRjY3NTA4N0QxMjBBQzA3RUIzMDEyODdFQTMwMTJBNENBQjc4RTQ4MERGNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDBBQ0Y3NTA4N0UxMjBBQzA3RUIzMDEyODcwQzM3RTA4MDEzNzdBMEMwMDAwN0EwQkIwN0U1NDAwMDEwMjAzODQwMjA5OEIwMjA5OEIwMjA5OEI3RUIzMDEyNkI0MDQyMDc1MDhDMzEyMEFDMDdFMDQwMDAxN0UxNzAxMjc3RTE4MDEzNzdBMUMwMDAwN0U0NzAxMkIxMjBBQ0MwMjA4RjNCNDA2NDI3NTA4QzExMjBBQzA3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcwMTI3N0U3ODAxMzc3QTdDMDAwMDdFNzcwMTJCNzUwOEMxMTIwQUMwQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyMEI2MzdFNDMwMTI0N0E0Mzk0MDBEMEE4NDA2NTgwNjBCNDAwMjRDMkFGN0VCMDAxN0FCMzk0MDA3QUIzMDEyNDEyMDM3N0U0OERFRjhERUY4REVGRDVFMEY3QzBEMUNBMDJGRkNBMDYwMDAwMzJCNDA5MjA3NDAzN0FCMzkxMDY3RTIzOTEwNzdFNTcwMTI3NEQ1NTY4MDU0RTIwMDI4MDAzNUUyMEZEN0EyMzkxMDc4MDE2QjQwNzE2QzJBRjdFMDcwMTI5N0UxNzAxMjdDMEQxQ0ExOENBMzhDQTI4MzIwMjAzNzcwMjA5OEI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMDEyNkI0MDMxNTc1MDhDMjEyMEFDMDdFMDQwMDAxN0UxNzAxMjc3RTU3MDEyQjAyMDM4NEI0MDU0MTc1MDhDMDEyMEFDMEMwQThDMkFGN0U0MDAxN0E0Mzk0MDA3RTA4MDEzNzdBMEMwMDAwN0UyNDAwRkU3RTM3MDEyNzdFNDcwMTJCMTIwQUNDN0U0MzAxMjQ3QTQzOTQwMEQwQTg3RTA4MDEzNzdBMEMwMDAwN0U1NzAxMkIwMjAzODRCNDAxMjA3RTAwMDA3RTEwMDE3NTA4NzIxMjBBQzA3QTAxMDgxMjBBQzA3QTExMDgxMjBBQzAxMjA5RDA0MDAzMDIwMzg0MDIwOThCNzUwODA3MTIwQUMwN0VCMDAyN0FCMzkwMDA3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMTU3NDAxN0FCMzkxMTE3RUIzOTExNTU0NjBCRUIwNDA2ODA4NzQyMDdBQjM5MTE1ODBFRDc0MDE3QUIzOTExMjc0MDQ3QUIzOTExNDc0RkY3QUIzMDEyRDIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyMEE1NzQwMUY3RTA4MDEzNzdBMEMwMDAwQ0EwQkNBNDkxMjBBQ0NEQTU5REEwQjdFNDMwMTI0N0E0Mzk0MDBEMEE4QzMyMjdFNDMwMTI0N0E0Mzk0MDBEMEE4MjJDMEE4QzJBRjdFNDAwMTdBNDM5NDAwMTIwQTU3NDAzMTdFNTgwMDAwN0E1QzAwRkU3RjYxN0U3ODAxMzc3QTdDMDAwMDdFNzcwMTJCQkQ3NDc4MTc3NTA4QzExMjBBQzAxMjBCNjM0MDBDN0U0MzAxMjQ3QTQzOTQwMEQwQThDMzIyN0U0MzAxMjQ3QTQzOTQwMEQwQThEMzIyN0UyNDAwRkU3RTM0N0ZDQTBCMUE1MEM1RjA3RDYyN0Q3NTdEODc3RTM0N0YwMzdFMUJCMEJDMEI1MDQ5M0UwMDNFMDAwQTUwMkQ3NTBCM0EzMDY5NTMwMDAyQkQzODUwMDIyRDM4QkMxQjUwMzAzRTEwM0UxMDBBNTEyRDM1Njk0MTAwMDIwQjFBMzBCRDM4NTAwMjJEMzhCRTQ0RkZGRjc4MDU3RTFCOTAwQTQ5NEQ0NDY4MENCRTQ0MDBGRjI4MDQ3RTQ0MDBGRkMzMjJEMzIyNDgKKzowMDQwN0ZDMDAwNDAwMTAyMDBENzMxMDIwMDAzMDAwMDdDMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxN0YwMDAwMDAwMDAwMDA0NAorOjEwNDMwQUMwMDBDQTA4N0UwMTA4N0EwMzNGRjBEQTA4MjI4MDUwMEIxQTYwMEIzNTBCMUE3MDBCMzUwQjFBODAwQjM1MEIxQTkwMEIzNTBCMUFBMDBCMzUwQjFBQjAwQjM1MEIxQUMwMEIzNTBCMUFEMDBCMzUxQjBBNjAwQjE1MUIwQTcwMEIxNTFCMEE4MDBCMTUxQjBBOTAwQjE1MUIwQUEwMEIxNTFCMEFCMDBCMTUxQjBBQzAwQjE1MUIwQUQwMEIxNTlFNDQwMDEwNTBBQTJFNDQwMDEwNjgwRTdFMUJDMDdBMEJDMDBCMTQwQjM0MUI0NDc4RjIyMjdGNkY3RkYwMUJGQzdDNTQ3RDMyODAwOENBMUJDQTFCQ0ExQkNBMUI5RTQ0MDAxMDUwRjIyRTQ0MDAxMDY4MDZDQTQ4MUI0NDc4RkE3RkY2ODlFNENBNkI1RUQ0MDAzRjY4MjA3RTg0MDA0MDlEOEREQTZCQkQ4NzM4MTZDQTc5N0Q3ODEyMEI4RERBNzk0MDA4OUQ3ODY4MDI4MDA1QzJENzIyREE2QjdFQzAwMzdFRDAwMDdBRDM5MDAwNzRBQTM5QjU1NTU1NzQ1NTM5QjUyQUFBNzRBMDM5QjU1NTU1N0UwNDAwNDA5RDcwNTAwNjJENzA3RDA3NkQ3NzdDMzE3RTdCMDA3QTZCMDAwQjdDMEI2Q0E1RDlGMzdGMTYxQjFDN0U1NDI3MTA3RTFCMTBCQzEwNjgwNjFCNTQ3OEY1ODAyRjZEMDA3QzIwN0YxNjlGMTA3RjI3OUYyMDdFMkIwMDdFMUIxMEJDMDE3ODE5MEIyQzBCMUNBNURCRUY3Q0I2MjBFMDA2NkNEQzdBRDM5MDAwNEQ3Nzc4OTBDMkQ3MjJEMkQ3MjIwMDA0MDAwNDAwMDAwNjA0MDIwNDAwMDIwMTA0MDEwMjAwMDAwMDAwMDAwMDAwMDAwMjAyMDIwMjAyMDQwMDA4MTAwMjEwMDQwMjA4MDAwMTAxMDg3RTE4N0ZCRDdBMUMwMEZGMEIxQTAwNUUxMDFGQkUxMDE0MzgxQTBBNTEyMzdFMTgwQzBEN0ExQzAwRkYyRDM1MEIxQTUwNjAwOEE1QjgwMjAzNEVBMDA4MjI4MEZFN0VFODdGQkY3QUVDMDBGRkUwRjUyMzU0QzA2ODM4N0VFODdGQkU3QUVDMDBGRkUwNjAyRTEyMEMzN0Y1MjE3QUExMjAyMDA5MEMyMDBBMTI3RUIwMEU3QUIzOTIwMDgwMTA3RUIwMDI3QUIzOTIwMDgwMDc3RUIwMEE3QUIzOTIwMDdBQjEwRDAyMENDNDIyN0VCMDAyN0FCMzkwMDAxMjE5MEM3RUIwMDM3QUIzOTAwMDEyMTkwQzgwRUFDMkFGQzIxMUMyMTI3NUIwREY3RTAwMDE3QTAzOTMwMDdFMDAwMDdBMDM5MDAwNkMwMDdFMTAwMzEyMENGNTdFNjgyQzY2N0E2QzAwRkYxMjE5QzQwQjAwODAzMjAyMUE2RTIwMTEyQjdFQjAwMTdBQjM5MDAwMTIxOTBDN0VCMDAzN0FCMzkwMDAxMjE5MEM3RUIwMDI3QUIzOTAwMDEyMTkwQ0E1RDlEQzdFQjAwMDdBQjM5MDAwMTIxOTBDMjI3RTY4MkNGOTdBNkMwMEZGMTIxOUM0N0VFNDEwMDA3RTQwNTU3QUU5NDAwQkU0N0U1MEFBN0FFOTUwMUJFNEJFRTk0MDY4MTk3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTEzN0FFOTQwN0VFOTEwODBGODdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQwQjAwN0U2ODJEM0Q3QTZDMDBGRjEyMTlDNDdFNzgwMDAwN0U3MDBFN0VBNEZGRkY3RUI0QkZGRjdEQ0IwRUM0N0REQzVEREI2Q0JCN0RGQTVFRjQ3RkZGN0E3QkIwMEJCMDdERkI1RUY0N0ZGRjdBN0JCMDBCQjA3REZDNUVGNDdGRkY3QTdCQjAwQkIwN0RGRDVFRjQ3RkZGN0E3QkIwNkNCQjdERkE1RUY0N0ZGRkJFN0JCMDc4NDEwQkIwN0RGQjVFRjQ3RkZGQkU3QkIwNzgzNDBCQjA3REZDNUVGNDdGRkZCRTdCQjA3ODI3MEJCMDdERkQ1RUY0N0ZGRkJFN0JCMDc4MUEwQkIwQkVDNEZGRkU3ODkyMEVCNEE1REY4QjdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDc3Q0E1QkNBNkI3RTY4MkNGMDdBNkMwMEZGMTIxOUM0N0U2ODJEOEY3QTZDMDBGRjEyMTlDNDBBNDcxMjE5RkE3RTY4MkRERTdBNkMwMEZGMTIxOUM0NkM3N0RBNkJDQTZCMEI3MDBFQzRCRUM0RkZGRjc4RjYxQjcwMEE0NzEyMTlGQTEyMTkxOTMwMTEzMERBNkJEQTVCNkNCQjdFNzgwMDAwN0RGQTVFRjQ3RkZGN0E3QkIwN0RGQjVFRjQ3RkZGN0E3QkIwN0RGQzVFRjQ3RkZGN0E3QkIwN0RGRDVFRjQ3RkZGN0E3QkIwODBENDdFNjgyRDFCN0E2QzAwRkYxMjE5QzQzMDFGMEU3RTc4MDQyMDdBN0MwMDAwN0U0NDdCRTA4MDBDN0U3ODAwMDA3QTdDMDAwMTdFNDQ4MDAwMEIwMDdFNDAzQTdDNTQ3RjU3N0Q4NDZDNjY3QTVCNTAwQjVDMEI1MEE1REUwMjBCNTAxQjg0NzhGMDdDNTQ3RjU3N0Q4NDZDNjZCRTVCNTA3ODFBMEI1QzBCNTBBNURFMDIwQjUwMUI4NDc4RUU3RTY4MkNEQTdBNkMwMEZGMTIxOUM0ODA0QjdGNDU3RTY4MkNERjdBNkMwMEZGMTIxOUM0N0U2ODJENUY3QTZDMDBGRjEyMTlDNDdENEIxMjE5RkE3RTY4MkQ3NDdBNkMwMEZGMTIxOUM0NkM4ODdDOTUxMjE5RkE3RTY4MkQ4MjdBNkMwMEZGMTIxOUM0N0U0QjkwMTIxOUZBMTIxOTE5MzAxMTA1N0U0QjkwODBGQjdFNjgyRTI4N0E2QzAwRkYxMjE5QzQwQjAwN0VCMDgwN0FCMzkxMDA3RUEwNTU3QUEzOTExMDdFQjM5MTA3N0VCMzkxMTBCQ0FCNzgyMDdFQTBBQTdBQTM5MTEwN0VCMzkxMDc3RUIzOTExMEJDQUI3ODBEN0U2ODJDREE3QTZDMDBGRjEyMTlDNDgwMUI3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBBN0FBMzkxMTA3RUIzOTExMDgwRjY3RTY4MkU0QTdBNkMwMEZGMTIxOUM0MTIxMjMxMEIwMDdFRTQxMDAwN0VBMEE1Q0FBODdBRTlBMDdFQjAzMDdBQjM5NTAwN0VFOUEwN0VCMDAwN0FCMzk1MDAxMjE5MEMwQkU1N0VCMDIwN0FCMzk1MDA3RUU5QjA3RUIwMDA3QUIzOTUwMDdFRTlCMERBQThCQ0FCNzgwRDdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQ4MDFEN0U2ODJDREY3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwQzdFQjAzODdBQjM5NTAwN0VFOUIwODBGQjgwMDA3RTY4MkRFNDdBNkMwMEZGMTIxOUM0MEIwMDc1QjBERjdFMjQ4MDAwMDlCMjAwMDhCRUIwMDE3ODBCMDlCMjAwMTRCRUIwNjA3ODAyODAxNzdFNjgyQ0RGN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMTEwOUIyMDAwODgwRkE3RTY4MkNEQTdBNkMwMEZGMTIxOUM0N0U2ODJFMDY3QTZDMDBGRjEyMTlDNDBCMDA3NUIwRUYxMjE4RkY3RTI0ODAwMDdFQTA1NTE5QTIwMDFDN0VCMDAxMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODM3MDlCMjAwMDg1RUIwQzBCRUIwQzA3ODJCN0VBMEFBMTlBMjAwMUM2Q0JCMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODE2MDlCMjAwMDg1RUIwQzA3ODBEN0U2ODJDREE3QTZDMDBGRjEyMTlDNDgwMUI3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBBMTlBMjAwMUMwOUIyMDAxQzgwRjY3RTY4MkU2QzdBNkMwMEZGMTIxOUM0N0U2ODJFRUU3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxN0VCMDAxMTlCMjAwMUMyRTI0MDEwMDBCQjBBNUQ5RjM3RTI0ODAwMDdFMTEyMTdFQjAwMTBCMDAwOUEyMDAxQ0JDQUI3ODE2N0U2ODJDRTc3QTZDMDBGRjEyMTlDNDJFMjQwMTAwMEJCMEE1RDlFMjgwMjU3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU0N0UyNDgwMDA3RTExMjEwOUEyMDAxQzJFMjQwMTAwQTVEOUY1ODBFQzdFNjgyRjEyN0E2QzAwRkYxMjE5QzQxMjEyMzE3RTI0ODAwMDdFMTEyMTBCMDA3NDEwMTlCMjAwMTAxMjExQUEyRTI0MDEwMEE1RDlFRTdFNjgyRjM2N0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDBFNDE5QjIwMDEwMTIxMUFBMkUyNDAxMDBBNUQ5RUYzMDAwMDMwMjE3M0IwMjEyNkE3NDA3MTlCMjAwMDgxMjE5MEMwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0QzIxMzdFQjA1NTEyMTIwQjdFQjBBQTEyMTIwQjdFQjAwMDEyMTIwQjdFQjBGRjEyMTIwQjMwMTMwRjdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkyMjdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyMjE5QjIwMDAwMTIxOEZGMDlBMjAwMDBCQ0FCNzgwMTIyMjAxMTAzRDIxMzIyMTIxOTE5MTlCMjAwMDAxMjE4RkYwOUEyMDAwMDgwRjM3NUIwREYxMjE4RkY3NUIwRUYxMjE4RkY3RTI0ODAwMDdFMTEyMTc0ODAxOUIyMDAwQzdFNTQwMDAyMTlBMjAwMDQxOUIyMDAwMDc0MDMxOUIyMDAwQzc0MDYxOUIyMDAwODJFMjQwMTAwQTVEOURCMjI3RTY4MkY1QTdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwMTIxOEZGMDlCMjAwMTg3RUEwNTUxOUEyMDAwMDEyMThGRjA5QjIwMDE4NUVCMDA1NzgwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDFBN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwOTE5QTIwMDAwMTIxOEZGODBGNzJFMjQwMTAwQTVEOUI2N0U2ODJGN0U3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDEyMThGRjA5QjIwMDE4N0VBMDU1MTlBMjAwMDAxMjE4RkYwOUIyMDAxODVFQjAwQTc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAxQTdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMDkxOUEyMDAwMDEyMThGRjgwRjcyRTI0MDEwMEE1RDlCNjMwMDQwMzAyMTU5RjdFNjgyRkEyN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMEE3ODNDN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwQTc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgyRkVBN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMDU3ODNDN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwNTc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgzMDMyN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDUwQkVCMDUwNzgxRjZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDUwNzgwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwRjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOUEyN0U2ODMwN0E3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDA5QjIwMDE4N0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjBBMEJFQjBBMDc4MUY2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjBBMDc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMEY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDk5RTdFNjgzMDlFN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDAyMEIxMjY3RUEwMDIxOUEyMDAxMDEyMThGRjMwQjExOTZDQUExOUEyMDAxMDEyMThGRjIwQjEwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwRjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOUFFMDIxNzNCN0U2ODJGQzY3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwNjc4M0M3RUEwMDExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDA2NzgxNDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU2N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODMwMEU3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwOTc4M0M3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDA5NzgxNDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU2N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODMwNTY3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDdFQTAwMjE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwOTBCRUIwOTA3ODFGNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwOTA3ODBEN0U2ODJDRTc3QTZDMDBGRjEyMTlDNDgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBGN0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5QTIyMDFGNjgxMjEyMzExMjE3QTk3RTI0ODAwMDdFMTEyMTBCMDAyMDg5MjY3RUEwRkYxOUEyMDAwNDEyMThGRjdFQjA1NTE5QjIwMDAwMTIxOEZGMzA4OTBGN0VBMDAwMTlBMjAwMDQxMjE4RkYyMDg5MDI4MDI2MTIxOTE5MzAxMTIwN0VBMEZGMTlBMjAwMDQxMjE4RkY3RUIwNTUxOUIyMDAwMDEyMThGRjdFQTAwMDE5QTIwMDA0MTIxOEZGODBFMDJFMjQwMTAwQTVEOUE4MDIxN0MyMDIxODRDN0UyNDgwMDA3RTExMjE3RUEwMDgxOUEyMDAxMDEyMThGRjJFMjQwMTAwQTVEOUVGMjIzMDFGMDMwMjE4NENDMjhBMTIxN0E5MEIwMDEyMTgxNjIwOEIyNDc0MDM3QUIzOTEwNjc0MDI3QUIzOTEwNzc0MEM3QUIzOTEwNjc0MDA3QUIzOTEwNzEyMTkwQzMwOEIwNjEyMTgxNjMwOEJBRDEyMTkxOTMwMTFBNzEyMTgxNjc0MDM3QUIzOTEwNjc0MDI3QUIzOTEwNzEyMTkwQzEyMTgxNjgwRTk3RUEwMDA3NDAyN0FCMzkxMDY3QUEzOTEwNzc0MDM3QUIzOTEwNjdBQTM5MTA3MTIxOEZGNzRFRjdBQjM5MTA0NzQ4MDdBQjM5MTAzNzQwQzdBQjM5MTA2NzQwODdBQjM5MTA3MTIxOTBDMjIzMDEyMTk3RTY4MzBDMjdBNkMwMEZGMTIxOUM0RDIxMTEyMThGRjEyMThGRjEyMThGRjAyMENDQTMwMUYxQzdFNjgzMTNDN0E2QzAwRkYxMjE5QzQ3RTY4MzE1RTdBNkMwMEZGMTIxOUM0MTIxQTZFMDIxOEY3MEIwMDdFNzgxOEIxN0E3QzAwRkY3RjY3N0E2QzAwMDA3RTcwM0U3RTdCQjA3QTZCQjAwQjdDMEI2Q0E1REZGMzdFNzgxOEIxN0E3QzAwMDA4OTc4N0U3ODAwMDA3QTdDMDBGRTdFNjg3RkJGN0E2QzAwRkU3NEFBMzlCNzU1NTU3NDU1MzlCNzJBQUE3NEEwMzlCNzU1NTU2Qzk5N0E2QjkwN0U1NDI3MTA3RTZCODBCQzg5NjgwODFCNTQ3OEY1OEFGRjE4RUY4QUZGMThGNzEyMTkxOTdFNkI4MDgwRkI3RTEwRkYxMjE5QUM4MEY4Q0FGOTdFRjQwMEZGMUJGNDc4RkNEQUY5MjJDQUY5N0VGNDAwMDAxQkY0NzhGQ0RBRjkyMjIwMTEyMEQyMTIxMjE5MEM3RUIwMDI3QUIzOTAwMDEyMTkwQzEyMTkwQzEyMTkwQzEyMTkwQzdFQjAwMDdBQjM5MDAwMjJDQTBCN0UxMDAzN0MzMDZDMjIwQjIwOUUzMDBBNTBGOTJFMzAwQjFCMjA2ODIwMTIxOTBDMTIxOTBDN0VCMDAzN0FCMzkwMDAxMjE5MEMxMjE5MEMxMjE5MEM3RUIwMDA3QUIzOTAwMEE1REFFMDEyMTkwQzEyMTkwQzFCMzA2ODIwMTIxOTBDMTIxOTBDN0VCMDAyN0FCMzkwMDAxMjE5MEMxMjE5MEMxMjE5MEM3RUIwMDA3QUIzOTAwMEE1REJFMDdFMjAwQTEyMTkwQ0E1REFGQUE1RDk5OERBMEIyMjIwMTExNDEyMTkwQzdFQjAwMTdBQjM5MDAwMTIxOTBDN0VCMDAwN0FCMzkwMDAyMjMwMUYzMjIwMTEyRkNBMkJDQTdCN0U3ODgwMDA3QTdDMDBGRTEyMUE0RDdFNkJBMDVDQUE2ODEwMjlCNzAwMTQ1NDYwNjhGODM5QTcwMDAwMEI2QzgwRTkxMjE4RkZEMkI1REE3QkRBMkIyMjEyMUEwNTdFNjgwMDBDMTIxOUM0MjJDQTU5Q0E1QjdFQjQwMDBDN0NCOEM0MTIxQTM1N0NCODEyMUEzNTdDQjlDNDEyMUEzNTdDQjkxMjFBMzU3RUIwNjg3QUI5QjAwQkI0NkNCQjdBQjlCMERBNTlEQTVCMjI1RUIwMEY3Q0FCOUVBMDBBNDAwNTJFQjAzNzgwMDMyRUIwMzA3QUI5QjAwQkI0MjJDMkI1NzVCMEVGMTIxOEZGNzQ4MDM5QjcwMDBDN0U1NDAwMDYzOUE3MDAwNDM5QjcwMDAwNzQwMzM5QjcwMDBDMjI3RTc4MDAwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdGNjU3RTc0MjAwMDEyMEI2MzQwNTg3RTc4N0MwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdFNjg3QzAwN0E2QzAwMDE3RTc0MDQwMDEyMEI2MzQwMzc3NDgwMTIxQUVBNDAzMDdFMDAwMzdBMDM5MDAwRDIxMDdFMDQwMDA4N0UxNDAwMDA4NEE1REJGQ0E1REFGOUE1RDlGNjc0NDAxMjFBRUE0MDBFN0U2ODMxOEQ3QTZDMDBGRjEyMTlDNDAyMThGNzdFQjAwMjdBQjM5MDAwODBGRUY1MEI3RTc4MDAwQjdBN0MwMDAwN0U2ODdGQkY3QTZDMDAwMTdFNzQwMDAxMDIwQjYzNzQKKzowMDAwMDAwMDAxRkYKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lZGdlcG9ydC9kb3duLkgxNiBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24uSDE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMzZmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lZGdlcG9ydC9kb3duLkgxNgpAQCAtMCwwICsxLDI5IEBACis6MDAwNDAwMDAwMDAxMTAwMDA0RTcKKzowMDAyMDAwMDA0MDBGRkZCCis6MDAwNjAwMDAwMDAyMDA4MDAyNDRCMDgyCis6MDAwMzAwMEIwMDAyNDQ3MjNBCis6MDAwMzAwMTMwMDAyMDAxM0Q1Cis6MDAwMzAwMUIwMDAyMDAxQkM1Cis6MDAwMzAwMjMwMDAyMDAyM0I1Cis6MDAwMzAwMkIwMDAyMDAyQkE1Cis6MDAwMzAwMzMwMDAyMDAzMzk1Cis6MDAwMzAwM0IwMDAyMDAzQjg1Cis6MDAwMzAwNDMwMDAyMDA0Mzc1Cis6MDAwMzAwNEIwMDAyNkVDNDdFCis6MDAwMzAwNTMwMDAyNzU4REE2Cis6MDAwMzAwN0IwMDAyMDA3QjA1Cis6MDAwNzAwODAwMDdFMTQwMDAwMDI0MDUxNTQKKzowODgyMzAwMDAwMTIzNzI4MTIzMDNFMTIzMDU0MTIzMEU1MTIzMTY4MTIzNTIwMTIzODU4MTIzMTE1MTIzMTQwMTIzMEEwODBFMEU1MjM2MDE5N0UxNDAwMDAwOUIxMDFDRkI0MDAwMjgwMDUxNDE5QjEwMUNGQTUwQkJFMzEyRjc4RUIyMkMyQUY3RUIzM0ZGMUI0MDEwQUMwRjE3NUYxMDIxMjcwRUZEMEYxRDJBRjIyQzJBRkU1MjI2MDQzN0UwNzAxRTFCRTA0MDM4MDM4Mzk3RTA0ODAwMDdFMjAwMDEzNTAyMTA5QTAwMDA0NEVBMDA1MTlBMDAwMDQwQTMyMDk1MzY3OEU1RTUxMjc2ODBCMDlBMDAwMTA0RUEwMDExOUEwMDAxMDJFMDQwMTAwQTUwQUJFMjEyRjc4RDE3NTIyMDBEMkFGMjJDMkFGN0UyMDAwN0UzMDAxN0NCMjIzMEEyQjQ5MzIwMThGQkUzNDAwMDA2ODEyN0VCMTIxQTU0QjdBQjEyMUNBMTk0OTIyMzBENTk5MjREQTE5M0UzMEE1MEFCRTIxMkY3OEQ2RDJBRjIyNDYwRjQ5Njc0Q0JGNTAxNzUzNkY1NkM3NUExRjVENzdDMkFGRTUzMjYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTAyREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyQ0EyODEyNjdBQkRBMjg0MDA5MEEyMjA5QjI2NzhFRjQ1MjMyMjJDMkFGRTUzNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTMyREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyQ0EyODBBMjIwOTQyMDAzRTEyNjlDMkRBMjgyMkMyQUZFNTM1NjAxNDdFMjAwMDEzNTAwN0NBQjgxMjMxNUREQUI4QTUwQUJFMjEyRjc4RUZEMkFGMjJDQTI4N0U0MDAwMTI2QzVCREEyODIyQzJBRkU1MjM2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzE4NURBQjhBNTBBQkUyMTJGNzhFRkQyQUYyMjdDQjIyMzBBMkI0OTIyMzE5MDg5MjQzMUEwMzIxMDMyODAzMkYwMzM2MDMzRDAzNDQwMzRCMDdFMjcwMThGQkUyNDAwMDA3ODI0N0UyNDgwMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0OTMwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOUY2ODBEN0EyNzAxOUY3RTYwOUM3QTYzMDFDRjgwMkU3RTYzMDFDRkE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMTg2QzAwN0EwMzAxQ0ZDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTFCRTI0MDAwMDc4MjQ3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDODg3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBMTY4MEQ3QTI3MDFBMTdFNjA5QzdBNjMwMUQwODAyRTdFNjMwMUQwQTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxOTZDMDA3QTAzMDFEMEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5M0JFMjQwMDAwNzgyNDdFMjQ4MjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNEZFMDdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUEzNjgwRDdBMjcwMUEzN0U2MDlDN0E2MzAxRDE4MDJFN0U2MzAxRDFBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFBNkMwMDdBMDMwMUQxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTk1QkUyNDAwMDA3ODI0N0UyNDgzMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1MzM4N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQTU2ODBEN0EyNzAxQTU3RTYwOUM3QTYzMDFEMjgwMkU3RTYzMDFEMkE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUI2QzAwN0EwMzAxRDJDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTdCRTI0MDAwMDc4MjQ3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU2OTA3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBNzY4MEQ3QTI3MDFBNzdFNjA5QzdBNjMwMUQzODAyRTdFNjMwMUQzQTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxQzZDMDA3QTAzMDFEM0MwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5OUJFMjQwMDAwNzgyNDdFMjQ4NTAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTlFODdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUE5NjgwRDdBMjcwMUE5N0U2MDlDN0E2MzAxRDQ4MDJFN0U2MzAxRDRBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFENkMwMDdBMDMwMUQ0QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTlCQkUyNDAwMDA3ODI0N0UyNDg2MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1RDQwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQUI2ODBEN0EyNzAxQUI3RTYwOUM3QTYzMDFENTgwMkU3RTYzMDFENUE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUU2QzAwN0EwMzAxRDVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOURCRTI0MDAwMDc4MjQ3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjYwOTg3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBRDY4MEQ3QTI3MDFBRDdFNjA5QzdBNjMwMUQ2ODAyRTdFNjMwMUQ2QTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxRjZDMDA3QTAzMDFENkMwRjE3NUYxMDExMjZGRDlEMEYxMjJDMkFGRTUyNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzNTNEREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyN0NCMjIzMEEyQjQ5MjIzNTQ4ODkyNDM1NTgzNTkyMzVDQzM2MDYzNjQwMzY3QTM2QjQzNkVFN0UyNDgwMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0OTMwN0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyMEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDODg3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjIxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNEZFMDdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjJDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgzMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1MzM4N0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyM0MwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU2OTA3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjI0QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NTAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTlFODdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg2MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1RDQwN0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyNkMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjYwOTg3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjI3QzBGMTc1RjEwMTEyNkZEOUQwRjEyMkMyQUZFNTMzNjAxNDdFMjAwMDEzNTAwN0NBQjgxMjM3NDVEQUI4QTUwQUJFMjEyRjc4RUZEMkFGMjI3Q0IyMjMwQTJCNDkyMjM3NTA4OTI0Mzc2MDM3N0YzNzlFMzdCRDM3REMzN0ZCMzgxQTM4Mzk3RTI0ODAwMENBMTk3RDEyMTI0ODFCREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MTAwQ0ExOTdEMTIxMjRCNzNEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgyMDBDQTE5N0QxMjEyNEVDQkRBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODMwMENBMTk3RDEyMTI1MjIzREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NDAwQ0ExOTdEMTIxMjU1N0JEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg1MDBDQTE5N0QxMjEyNThEM0RBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODYwMENBMTk3RDEyMTI1QzJCREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NzAwQ0ExOTdEMTIxMjVGODNEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyQzJBRkMwRjE3NUYxMDFBOTMyRjIxQTdFMDcwMUUxQkUwNDAwMDA3ODEwRTVGNTMzODJFNzQwMDk4NTMxMzExMjdDMTU3NUY2MDBEMEYxRDJBRjIyNDcKKzozQzE1NDAwMDAwN0UwNDAwMDE3RTE0N0ZGODdFMjQwMEZFN0QzMTBCMUE1MDFCMEE1MDdFMTQ0MDFCMDI0MDZBN0VGODAwNkZEMjA0QzI5NEQyOTU3RUY0NDAyQzAyNDA3QzEyN0QzMEY1MkY3QUExMzA3QTExNkUxMjc1Q0ExMjQwREM3RUIzM0ZGMTYwMDMxMjQzRDQ3NUYxMDAxMjc2NkZEMkFGMDIzMDAwN0UwNDAwRkY3RTE4NDA1RjdBMUMwMDAxODkxOEE5MjU4NzAzQTlENTg3RDI5Mzg5MDg3RTA0MDBGRjdFMTg0MDc4N0ExQzAwMDE4OTE4QzI5Mzg5MDg3RTA4MDAyMDdFNDQwNDAwN0U0MDAwN0VFNDQwOEUwMjdDMzA3RTA4MDE2RjdFNDQyODdDN0U0MDAwN0VFNDQwQTAwMjdDMzA3RTA4MDA2RjdFNDQwMTAwN0U0MDUzN0VFNDQwQjIwMjdDMzA3NTZEMjA3NTZDMzA3RTA0MDAwODc1NkE1ODc1NkIwODc1NjcwODc1NjkwMTc1ODkwMTc1OEEwMTc1OEMwMEQyOEM3RTA0MDAwMjdBMDU1ODg5RjQ3NUI3N0Y3NUI4N0Y3NUIzMDc3NUIyMDdEMkE5MjJEMjkyRTRENUUwRkRDMjkyN0UyNDgwMDA3RTExMkY3RUEwMDgxOUEyMDAxMDJFMjQwMTAwQTVEOUYyN0UyMDAwMTI0MTdFMEIyMEJFMjEyRjc4RjYyMjdFMDQ4MDAwNEMwMjc0QkYxOUIwMDAwQzc0MTAxOUIwMDAwODc0ODAxOUIwMDAwQzdFNTQwMDAyMTlBMDAwMDQxOUIwMDAwMDc0MDMxOUIwMDAwQzc0MDdBOTIwMzAwQkE5MzUzMDA1QkUyMDAxMjgwMjc0MEYxOUIwMDAwNEE5MzMzMDE4NzRCRjE5QjAwMDBDNzQyOEE5MjAzMDAyNzQyMDE5QjAwMDA0NzQwMzE5QjAwMDBDNzRBNzE5QjAwMDA4NzQwQzE5QjAwMDEwMjI3RTA0ODAwMDRDMDJFNDE5QjAwMDA0MDlCMDAwMTA1NDA4MTlCMDAwMTA3NEE3MTlCMDAwMDgyMjdDQjIyMzBBMkI0OTIyNDFBNTg5MjQ0MUI1NDFENDQxRjM0MjEyNDIzMTQyNTA0MjZGNDI4RUMyMTBDMjE4QzIyMEMyMDg3RTA0MDlFMzdBMDcwMTZGN0EwNzAxN0Y2RDAwN0EwNzAxOEY3QTA3MDE5RjIyQzIxMUMyMTlDMjIxQzIwOTdFMDQwREUzN0EwNzAxNzE3QTA3MDE4MTZEMDA3QTA3MDE5MTdBMDcwMUExMjJDMjEyQzIxQUMyMjJDMjBBN0UwNDExRTM3QTA3MDE3MzdBMDcwMTgzNkQwMDdBMDcwMTkzN0EwNzAxQTMyMkMyMTNDMjFCQzIyM0MyMEI3RTA0MTVFMzdBMDcwMTc1N0EwNzAxODU2RDAwN0EwNzAxOTU3QTA3MDFBNTIyQzIxNEMyMUNDMjI0QzIwQzdFMDQxOUUzN0EwNzAxNzc3QTA3MDE4NzZEMDA3QTA3MDE5NzdBMDcwMUE3MjJDMjE1QzIxREMyMjVDMjBEN0UwNDFERTM3QTA3MDE3OTdBMDcwMTg5NkQwMDdBMDcwMTk5N0EwNzAxQTkyMkMyMTZDMjFFQzIyNkMyMEU3RTA0MjFFMzdBMDcwMTdCN0EwNzAxOEI2RDAwN0EwNzAxOUI3QTA3MDFBQjIyQzIxN0MyMUZDMjI3QzIwRjdFMDQyNUUzN0EwNzAxN0Q3QTA3MDE4RDZEMDA3QTA3MDE5RDdBMDcwMUFEMjI3Q0IyMjMwQTJCNDkyMjQyQjg4OTI0NDJDODQyRTk0MzBBNDMyQjQzNEM0MzZENDM4RTQzQUYzMDUwMDcyMDY4MDRDMjI4ODAxNjMwNDAwNzIwNjAwNEMyMjg4MDBDMzA0ODA3MjA1ODA0QzIyODgwMDJEMjI4MjIzMDUxMDcyMDY5MDRDMjI5ODAxNjMwNDEwNzIwNjEwNEMyMjk4MDBDMzA0OTA3MjA1OTA0QzIyOTgwMDJEMjI5MjIzMDUyMDcyMDZBMDRDMjJBODAxNjMwNDIwNzIwNjIwNEMyMkE4MDBDMzA0QTA3MjA1QTA0QzIyQTgwMDJEMjJBMjIzMDUzMDcyMDZCMDRDMjJCODAxNjMwNDMwNzIwNjMwNEMyMkI4MDBDMzA0QjA3MjA1QjA0QzIyQjgwMDJEMjJCMjIzMDU0MDcyMDZDMDRDMjJDODAxNjMwNDQwNzIwNjQwNEMyMkM4MDBDMzA0QzA3MjA1QzA0QzIyQzgwMDJEMjJDMjIzMDU1MDcyMDZEMDRDMjJEODAxNjMwNDUwNzIwNjUwNEMyMkQ4MDBDMzA0RDA3MjA1RDA0QzIyRDgwMDJEMjJEMjIzMDU2MDcyMDZFMDRDMjJFODAxNjMwNDYwNzIwNjYwNEMyMkU4MDBDMzA0RTA3MjA1RTA0QzIyRTgwMDJEMjJFMjIzMDU3MDcyMDZGMDRDMjJGODAxNjMwNDcwNzIwNjcwNEMyMkY4MDBDMzA0RjA3MjA1RjA0QzIyRjgwMDJEMjJGMjI0NDM4NDNFNUJFQjAwMjQwMDEyMjIzMEE1QjQ5NTU0M0QwOTk1NEQzMjJBOUM1ODcxMjQ0NDM3RTA0MDVFMzdBMDcwMUQ3N0EwNzAxRDk3RTA0MDFFMzdBMDcwMUREN0EwNzAxREY3RTA0NzRBRDdBMDU2MTc1RjEwMTc1RTExRjc1RTQwNDc1RjQwNDc1RjEwMjc1RTEwMzc1RTQwNDc1RjQwNDQzQTIxQzEyNDBFQjdFMjAwMDEyNDE5QTBCMjBCRTIxMkY3OEY2RDJBODIyQTlENTg3MTI0NDQzRDI5MkMyQTgyMjc1QTMwMDUzQTIwMzc1QzEwMDUzQzAwMzdFMDAwNTdBMDFGMTQzRjQ4MDQzRTQ4MEU1RjI1NDdGNDQwOEY1RjJFNUUyNTQ3RjQ0MDhGNUUyNzVFMTEwQTVEOEUxMjJDQTA5MTIzMDIwMTAwMTEyRDU2NzFFNjM2OTAxN0UwMDZBMkUwMTY5QTVFNkY1Njc4MDEyMjAwMjFFNzU2OTAwODU2QTY3RDIwMjc0MDA4MDBEMzAwMjBGQzIwMjdFMDA2QzJFMDE2OUE1RTY1MzkwQ0Y0MjkwREEwOTMyQzBEMEMwRDFDMEUwQzBGMENBMEJDQTFCQ0EyQkQyMDE3NTMxODkxMjdDMTU3RTE0ODAwMDA5QjEwMDA4MjBFMDAzMDI0NTRGMjA3ODVBQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTY3MjA3OTRCQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTdGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTk3MjA3QTMwQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUFGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUM3QTUwQTA5QjEwMDA4MjBFMDAzMDI0NURGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUY3MzAwNDBDQzIwNEMwRjE3NUYxMDExMjZGRDlEMEYxREEyQkRBMUJEQTBCRDBGMEQwRTBEMEQxRDBEMDMyNzUzMTgwMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzJCQ0EwNkM2NDQ4OTU0NzUzMTgxMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzZCQ0EwNkM2NDQ4OTU0NzUzMTgyMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2M0FCQ0EwNkM2NDQ4OTU0NzUzMTgzMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2M0VCQ0EwNkM2NDQ4OTU0NzUzMTg0MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NDJCQ0EwNkM2NDQ4OTU0NzUzMTg1MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NDZCQ0EwNkM2NDQ4OTU0NzUzMTg2MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NEFCQ0EwNkM2NDQ4OTU0NzUzMTg3MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NEVCQ0EwNkM2NDQ4OTU0MTAwODAxMjIyMDI4MDNEMjA4MjI3NTMxQTAxMjdDMTU3RTE0ODAwMDgwMDYyMDI4MDNEMjA4MjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNDkzMDIwRTYwM0QyMDgyMjMwMzA0OUQyNzA3RTM3MDE4RjdFMjcwMUFGOUQzMjQwMzE3RDAyMkUwNTQ4N0EwNTQ4N0EzNzAxOEY3RTM3MDE2RjdENDMyRDQyQkU0NDBERTIzODY4N0E0NzAxNkY3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDcwQzQyMkMyNzAyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOEZCRTI0MDAwMDY4NkFCRTI3MDFBRjI4MDQ3RTI3MDFBRjdFMzcwMThGOUQzMjdEMDIyRTA1NDg3QTA1NDg3QTM3MDE4RjdFMzcwMTZGN0Q0MzJENDJCRTQ0MERFMjM4MTM3QTQ3MDE2Rjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQwREUzOUQyNDEyNjUyQjdFMzQwOUUzN0QyNDJENDM3QTQ3MDE2RjEyNjUyQkJFMjUyMDc4MDMwMjQ2N0YyMkQyMDg3RTA0MDlFMzdBMDcwMTZGN0EwNzAxN0Y3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUJGMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDAwMDAyRTI3MDFCRjFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM4MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTAyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDAwMDJFNjcwMUJGOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwMDdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjQ3RTM3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzgwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMDIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNDdFM0RBQjgwMjQ5MzAwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjY4ODAwMkMyNjhBNUZENUU1MDIwNjgwNEQyNjA4MDAyQzI2MEE1RkQ1RTUwODA2ODA0RDI1ODgwMDJDMjU4MTI0MkM4MDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNDgzNTc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDA5MDEyMjIwMjkwM0QyMDkyMjc1MzFBMTEyN0MxNTdFMTQ4MTAwODAwNjIwMjkwM0QyMDkyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0Qzg4MjBFNjAzRDIwOTIyMzAzMTQ5RDI3MTdFMzcwMTkxN0UyNzAxQjE5RDMyNDAzMTdEMDIyRTA1NEE3QTA1NEE3QTM3MDE5MTdFMzcwMTcxN0Q0MzJENDJCRTQ0MTFFMjM4Njg3QTQ3MDE3MTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzFDNDIyQzI3MTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5MUJFMjQwMDAwNjg2QUJFMjcwMUIxMjgwNDdFMjcwMUIxN0UzNzAxOTE5RDMyN0QwMjJFMDU0QTdBMDU0QTdBMzcwMTkxN0UzNzAxNzE3RDQzMkQ0MkJFNDQxMUUyMzgxMzdBNDcwMTcxNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDExRTM5RDI0MTI2NTJCN0UzNDBERTM3RDI0MkQ0MzdBNDcwMTcxMTI2NTJCQkUyNTIwNzgwMzAyNDlENzIyRDIwOTdFMDQwREUzN0EwNzAxNzE3QTA3MDE4MTc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzEyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDEwMDJFMjcwMUMxMUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzkwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMTIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwMTAwMkU2NzAxQzE5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAxN0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNEIzQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzOTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjExMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0QjNCREFCODAyNEM4ODA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNjk4MDAyQzI2OUE1RkQ1RTUwMjA2ODA0RDI2MTgwMDJDMjYxQTVGRDVFNTA4MDY4MDREMjU5ODAwMkMyNTkxMjQyRTkwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI0QjhENzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEEwMTIyMjAyQTAzRDIwQTIyNzUzMUEyMTI3QzE1N0UxNDgyMDA4MDA2MjAyQTAzRDIwQTIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjRGRTAyMEU2MDNEMjBBMjIzMDMyNDlEMjcyN0UzNzAxOTM3RTI3MDFCMzlEMzI0MDMxN0QwMjJFMDU0QzdBMDU0QzdBMzcwMTkzN0UzNzAxNzM3RDQzMkQ0MkJFNDQxNUUyMzg2ODdBNDcwMTczNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3MkM0MjJDMjcyMkQyMzY4Nzg2RDMzODAxQTdFMjcwMTkzQkUyNDAwMDA2ODZBQkUyNzAxQjMyODA0N0UyNzAxQjM3RTM3MDE5MzlEMzI3RDAyMkUwNTRDN0EwNTRDN0EzNzAxOTM3RTM3MDE3MzdENDMyRDQyQkU0NDE1RTIzODEzN0E0NzAxNzM3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MTVFMzlEMjQxMjY1MkI3RTM0MTFFMzdEMjQyRDQzN0E0NzAxNzMxMjY1MkJCRTI1MjA3ODAzMDI0RDJGMjJEMjBBN0UwNDExRTM3QTA3MDE3MzdBMDcwMTgzNzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDMzJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwMjAwMkUyNzAxQzMxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDAyMDAyRTY3MDFDMzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDI3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0RTkzNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNBMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTIyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRFOTNEQUI4MDI0RkUwMDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2QTgwMDJDMjZBQTVGRDVFNTAyMDY4MDREMjYyODAwMkMyNjJBNUZENUU1MDgwNjgwNEQyNUE4MDAyQzI1QTEyNDMwQTAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjRFRTU3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwQjAxMjIyMDJCMDNEMjBCMjI3NTMxQTMxMjdDMTU3RTE0ODMwMDgwMDYyMDJCMDNEMjBCMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTMzODIwRTYwM0QyMEIyMjMwMzM0OUQyNzM3RTM3MDE5NTdFMjcwMUI1OUQzMjQwMzE3RDAyMkUwNTRFN0EwNTRFN0EzNzAxOTU3RTM3MDE3NTdENDMyRDQyQkU0NDE5RTIzODY4N0E0NzAxNzU3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDczQzQyMkMyNzMyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOTVCRTI0MDAwMDY4NkFCRTI3MDFCNTI4MDQ3RTI3MDFCNTdFMzcwMTk1OUQzMjdEMDIyRTA1NEU3QTA1NEU3QTM3MDE5NTdFMzcwMTc1N0Q0MzJENDJCRTQ0MTlFMjM4MTM3QTQ3MDE3NTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQxOUUzOUQyNDEyNjUyQjdFMzQxNUUzN0QyNDJENDM3QTQ3MDE3NTEyNjUyQkJFMjUyMDc4MDMwMjUwODcyMkQyMEI3RTA0MTVFMzdBMDcwMTc1N0EwNzAxODU3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUM1MkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDAzMDAyRTI3MDFDNTFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNCMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTMyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDMwMDJFNjcwMUM1OUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwMzdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjUxRUI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0IwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMzIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNTFFQkRBQjgwMjUzMzgwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZCODAwMkMyNkJBNUZENUU1MDIwNjgwNEQyNjM4MDAyQzI2M0E1RkQ1RTUwODA2ODA0RDI1QjgwMDJDMjVCMTI0MzJCMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNTIzRDc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBDMDEyMjIwMkMwM0QyMEMyMjc1MzFBNDEyN0MxNTdFMTQ4NDAwODAwNjIwMkMwM0QyMEMyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1NjkwMjBFNjAzRDIwQzIyMzAzNDQ5RDI3NDdFMzcwMTk3N0UyNzAxQjc5RDMyNDAzMTdEMDIyRTA1NTA3QTA1NTA3QTM3MDE5NzdFMzcwMTc3N0Q0MzJENDJCRTQ0MURFMjM4Njg3QTQ3MDE3Nzc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzRDNDIyQzI3NDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5N0JFMjQwMDAwNjg2QUJFMjcwMUI3MjgwNDdFMjcwMUI3N0UzNzAxOTc5RDMyN0QwMjJFMDU1MDdBMDU1MDdBMzcwMTk3N0UzNzAxNzc3RDQzMkQ0MkJFNDQxREUyMzgxMzdBNDcwMTc3NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDFERTM5RDI0MTI2NTJCN0UzNDE5RTM3RDI0MkQ0MzdBNDcwMTc3MTI2NTJCQkUyNTIwNzgwMzAyNTNERjIyRDIwQzdFMDQxOUUzN0EwNzAxNzc3QTA3MDE4Nzc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzcyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDQwMDJFMjcwMUM3MUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0MwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNDIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwNDAwMkU2NzAxQzc5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA0N0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTU0Mzc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQzBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE0MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1NTQzREFCODAyNTY5MDA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkM4MDAyQzI2Q0E1RkQ1RTUwMjA2ODA0RDI2NDgwMDJDMjY0QTVGRDVFNTA4MDY4MDREMjVDODAwMkMyNUMxMjQzNEMwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI1NTk1NzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEQwMTIyMjAyRDAzRDIwRDIyNzUzMUE1MTI3QzE1N0UxNDg1MDA4MDA2MjAyRDAzRDIwRDIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjU5RTgyMEU2MDNEMjBEMjIzMDM1NDlEMjc1N0UzNzAxOTk3RTI3MDFCOTlEMzI0MDMxN0QwMjJFMDU1MjdBMDU1MjdBMzcwMTk5N0UzNzAxNzk3RDQzMkQ0MkJFNDQyMUUyMzg2ODdBNDcwMTc5NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3NUM0MjJDMjc1MkQyMzY4Nzg2RDMzODAxQTdFMjcwMTk5QkUyNDAwMDA2ODZBQkUyNzAxQjkyODA0N0UyNzAxQjk3RTM3MDE5OTlEMzI3RDAyMkUwNTUyN0EwNTUyN0EzNzAxOTk3RTM3MDE3OTdENDMyRDQyQkU0NDIxRTIzODEzN0E0NzAxNzk3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MjFFMzlEMjQxMjY1MkI3RTM0MURFMzdEMjQyRDQzN0E0NzAxNzkxMjY1MkJCRTI1MjA3ODAzMDI1NzM3MjJEMjBEN0UwNDFERTM3QTA3MDE3OTdBMDcwMTg5NzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDOTJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwNTAwMkUyNzAxQzkxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDA1MDAyRTY3MDFDOTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDU3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1ODlCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNEMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTUyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU4OUJEQUI4MDI1OUU4MDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2RDgwMDJDMjZEQTVGRDVFNTAyMDY4MDREMjY1ODAwMkMyNjVBNUZENUU1MDgwNjgwNEQyNUQ4MDAyQzI1RDEyNDM2RDAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjU4RUQ3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwRTAxMjIyMDJFMDNEMjBFMjI3NTMxQTYxMjdDMTU3RTE0ODYwMDgwMDYyMDJFMDNEMjBFMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNUQ0MDIwRTYwM0QyMEUyMjMwMzY0OUQyNzY3RTM3MDE5QjdFMjcwMUJCOUQzMjQwMzE3RDAyMkUwNTU0N0EwNTU0N0EzNzAxOUI3RTM3MDE3QjdENDMyRDQyQkU0NDI1RTIzODY4N0E0NzAxN0I3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDc2QzQyMkMyNzYyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOUJCRTI0MDAwMDY4NkFCRTI3MDFCQjI4MDQ3RTI3MDFCQjdFMzcwMTlCOUQzMjdEMDIyRTA1NTQ3QTA1NTQ3QTM3MDE5QjdFMzcwMTdCN0Q0MzJENDJCRTQ0MjVFMjM4MTM3QTQ3MDE3Qjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQyNUUzOUQyNDEyNjUyQjdFMzQyMUUzN0QyNDJENDM3QTQ3MDE3QjEyNjUyQkJFMjUyMDc4MDMwMjVBOEYyMkQyMEU3RTA0MjFFMzdBMDcwMTdCN0EwNzAxOEI3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUNCMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDA2MDAyRTI3MDFDQjFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNFMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTYyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDYwMDJFNjcwMUNCOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwNjdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjVCRjM3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0UwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNjIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNUJGM0RBQjgwMjVENDAwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZFODAwMkMyNkVBNUZENUU1MDIwNjgwNEQyNjY4MDAyQzI2NkE1RkQ1RTUwODA2ODA0RDI1RTgwMDJDMjVFMTI0MzhFMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNUM0NTc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBGMDEyMjIwMkYwM0QyMEYyMjc1MzFBNzEyN0MxNTdFMTQ4NzAwODAwNjIwMkYwM0QyMEYyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI2MDk4MjBFNjAzRDIwRjIyMzAzNzQ5RDI3NzdFMzcwMTlEN0UyNzAxQkQ5RDMyNDAzMTdEMDIyRTA1NTY3QTA1NTY3QTM3MDE5RDdFMzcwMTdEN0Q0MzJENDJCRTQ0MjlFMjM4Njg3QTQ3MDE3RDc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzdDNDIyQzI3NzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5REJFMjQwMDAwNjg2QUJFMjcwMUJEMjgwNDdFMjcwMUJEN0UzNzAxOUQ5RDMyN0QwMjJFMDU1NjdBMDU1NjdBMzcwMTlEN0UzNzAxN0Q3RDQzMkQ0MkJFNDQyOUUyMzgxMzdBNDcwMTdENzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDI5RTM5RDI0MTI2NTJCN0UzNDI1RTM3RDI0MkQ0MzdBNDcwMTdEMTI2NTJCQkUyNTIwNzgwMzAyNURFNzIyRDIwRjdFMDQyNUUzN0EwNzAxN0Q3QTA3MDE4RDc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQ0QyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDcwMDJFMjcwMUNEMUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0YwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNzIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwNzAwMkU2NzAxQ0Q5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA3N0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNUY0Qjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE3MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1RjRCREFCODAyNjA5ODA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkY4MDAyQzI2RkE1RkQ1RTUwMjA2ODA0RDI2NzgwMDJDMjY3QTVGRDVFNTA4MDY4MDREMjVGODAwMkMyNUYxMjQzQUYwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI1RjlENzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2ODgwMDJDMjY4QTVGRDVFNTAyMDY4MDREMjYwODAwMkMyNjBBNUZENUU1MDgwNjgwNEQyNTg4MDAyQzI1ODAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2OTgwMDJDMjY5QTVGRDVFNTAyMDY4MDREMjYxODAwMkMyNjFBNUZENUU1MDgwNjgwNEQyNTk4MDAyQzI1OTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QTgwMDJDMjZBQTVGRDVFNTAyMDY4MDREMjYyODAwMkMyNjJBNUZENUU1MDgwNjgwNEQyNUE4MDAyQzI1QTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QjgwMDJDMjZCQTVGRDVFNTAyMDY4MDREMjYzODAwMkMyNjNBNUZENUU1MDgwNjgwNEQyNUI4MDAyQzI1QjAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QzgwMDJDMjZDQTVGRDVFNTAyMDY4MDREMjY0ODAwMkMyNjRBNUZENUU1MDgwNjgwNEQyNUM4MDAyQzI1QzAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RDgwMDJDMjZEQTVGRDVFNTAyMDY4MDREMjY1ODAwMkMyNjVBNUZENUU1MDgwNjgwNEQyNUQ4MDAyQzI1RDAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RTgwMDJDMjZFQTVGRDVFNTAyMDY4MDREMjY2ODAwMkMyNjZBNUZENUU1MDgwNjgwNEQyNUU4MDAyQzI1RTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RjgwMDJDMjZGQTVGRDVFNTAyMDY4MDREMjY3ODAwMkMyNjdBNUZENUU1MDgwNjgwNEQyNUY4MDAyQzI1RjAyNjI3RjU0RjBDNEE1RkZDNEE1NEY3NTMxOTAxMjdDMTVGNTMxMTI3QzE1MjJDQTE5NUUyMDA3NENBMjdFNzQyOUUzQ0E3OTdBNzlBMDBCNzQ3QTc5QjAwQjc0REE3OTdFMzAwMjdFNjQwMDAyMDI2MkRFQ0ExOTVFMjAwNzRDQTI3RTc0MjlFM0NBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NDdBNzk2MDBCNzREQTc5N0UzMDAzN0U2NDAwMDMwMjYyREVEMjA0N0UyNzAxRTEyRDI2QkUyNDA0MDAzODJFN0UwNzAxREY3RTQ0MDVFMzdFNzlBMDdBMDlBMDBCMDQwQjc0QkQwNDY4MjNBNURCRUY3QTI3MDFFMTdFMjU0NjJEMjY3QTI1NDY3QTA3MDFERkRBMTlDMkQ3MjI3NTMxOUExMjdDMTVEQTE5RDJENzIyN0UwNDAxRTM4MEQ3NDhCNjQ2MjU0NzFDNDkxNTQ0QzY0NEM2NDgxQjQ0QzY0OTU5NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ5NjA0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0QzBFNDk3RDRBNzQ0QzZENDRDNjQ0QzY0QjczNDRDNjRDQjE0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NENCODQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjRGNjY0Q0Q1NERDQzRGQzU0NEM2NDRDNjRFQ0I0NEM2NTAwOTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1MDEwNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTJCRTUwMkQ1MTI0NTMxRDQ0QzY0NEM2NTIyMzQ0QzY1MzYxNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjUzNjg0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1NjE2NTM4NTU0N0M1Njc1NDRDNjQ0QzY1NTdCNDRDNjU2Qjk0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTZDMDQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjU5NkU1NkRENTdENDU5Q0Q0NEM2NDRDNjU4RDM0NEM2NUExMTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1QTE4NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NUNDNjVBMzU1QjJDNUQyNTQ0QzY0NEM2NUMyQjQ0QzY1RDY5NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjVENzA0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY2MDFFNUQ4RDVFODQ2MDdENDRDNjQ0QzY1RjgzNDRDNjYwQzE0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NjBDODQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNkNBMjkxRTUwNDAwRDdFNTQwQjEwOUNCNUE0MkU1NDY1NDg4OTU0N0UzOTAwN0ExOTAwMEIzNDgwRTkwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1REEyOTIyMUU1MDQwMEQ3RTU0MEIxQzlDQjVBNDJFNTQ2NjE2ODk1NDdFMTkwMDdBMzkwMDBCMzQ4MEU5N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTIyNjc5NjY5NjM2OTdCNkE0OTZBRTQ2QjhFNkJBOTZDM0I2QkM0NkMwNTY5OTY2OUFBN0NCM0JFQjAwQjI4MTQ3NTMxMDkxMjdDMTU3NTZEMTBDMEYxNzVGMTAxNDNFMUMwRDBGMTIyQzBBOEMyQUYyMzZDQUEyRTU0Njc0QjBCNTg1MDg5NTQwMTAyMDQwODEwMjA0MDgwNzUzMUIwMTI3QzE1MEEzMjA5QjM2NzhFNDIzMjE5NDMwMDM2RDBBODIyN0NCMjIzMEEzQjQ5MzM2N0NCMEEyMjA5MzIwMDM2MDlCMjY3OEVBNUJCMDAwNUY0NTIzMzgwMDI0MjMzODkzNDY3REI2ODA5NjgzNzY4NjU2ODkzNjhDMTY4RUY2OTFEMTI0MUI1RDIyOEQyMDhDMjQwQzI0OEMyMzhDMjMwNkQwMDdBMDMwMUNGN0UwNDAwMjA3QTA3MDFBRjdFMDQwMDM4N0EwNzAxQkYxMjQxMTYxMjYwQ0YwMjY5NEIxMjQxRDREMjI5RDIwOUMyNDFDMjQ5QzIzOUMyMzE2RDAwN0EwMzAxRDA3RTA0MDAyMDdBMDcwMUIxN0UwNDAwMzg3QTA3MDFDMTEyNDExNjEyNjEwNTAyNjk0QjEyNDFGM0QyMkFEMjBBQzI0MkMyNEFDMjNBQzIzMjZEMDA3QTAzMDFEMTdFMDQwMDIwN0EwNzAxQjM3RTA0MDAzODdBMDcwMUMzMTI0MTE2MTI2MTNCMDI2OTRCMTI0MjEyRDIyQkQyMEJDMjQzQzI0QkMyM0JDMjMzNkQwMDdBMDMwMUQyN0UwNDAwMjA3QTA3MDFCNTdFMDQwMDM4N0EwNzAxQzUxMjQxMTYxMjYxNzEwMjY5NEIxMjQyMzFEMjJDRDIwQ0MyNDRDMjRDQzIzQ0MyMzQ2RDAwN0EwMzAxRDM3RTA0MDAyMDdBMDcwMUI3N0UwNDAwMzg3QTA3MDFDNzEyNDExNjEyNjFBNzAyNjk0QjEyNDI1MEQyMkREMjBEQzI0NUMyNERDMjNEQzIzNTZEMDA3QTAzMDFENDdFMDQwMDIwN0EwNzAxQjk3RTA0MDAzODdBMDcwMUM5MTI0MTE2MTI2MUREMDI2OTRCMTI0MjZGRDIyRUQyMEVDMjQ2QzI0RUMyM0VDMjM2NkQwMDdBMDMwMUQ1N0UwNDAwMjA3QTA3MDFCQjdFMDQwMDM4N0EwNzAxQ0IxMjQxMTYxMjYyMTMwMjY5NEIxMjQyOEVEMjJGRDIwRkMyNDdDMjRGQzIzRkMyMzc2RDAwN0EwMzAxRDY3RTA0MDAyMDdBMDcwMUJEN0UwNDAwMzg3QTA3MDFDRDEyNDExNjEyNjI0OTAyNjk0QjdFQTBEMDdFNjAwRjEyNjJCNjQwMENDMEYxNzVGMTAxMTI2RkQ5RDBGMUMyRDcyMjc1MzFCMTEyN0MxNTBBNTIyMzZEMDA1OTA1MDA0ODEyNDE3RTEyNDE5QUQwQTgyMjc1MzFCMjEyN0MxNTBBMjIwOUIyNjc4RTQyMjM3RUIwOUMxOUIyMDFDRjEyMzE4NUQwQTgyMjc1MzFCNzEyN0MxNTBBMjIwOUIyNjc4RTQyMjQxMjM1M0REMEE4MjI3NTMxQjkxMjdDMTUwQTMyMDlCMzY3OEU0MjM0MTk0MzAwM0UxMjY5QzJEMEE4MjI3Q0IyMjMwQTBCN0NCNDIwRTAwNDZEMzM4MDA0NDkzMDAxOEY3RUEwRDhBNUVGQ0EwQkNBMjkxMjYyQjZEQTI5REEwQjQwNjI3NTMxQkExMjdDMTU3Q0I0MzBFMDFFNkQzMzU5MzAwMThGN0UzNDA5RTMwQTgyN0U5NDA0MDBBRDg5MkQzOTU5MzAwMTZGNTkzMDAxN0Y3Q0I0MzBFMTEwN0UwNDgwMDA0QzAyMDlCMDAwMDg0NDA0MTlCMDAwMDgwQTAyMDlCMDY3OEU0MjIxRjQ1MjM0N0NCMjIzMEEwQkNBMTk0OTAwMzBENTk5MDREQTE5QzBGMTc1RjEwMTEyNkZEOUQwRjFDMkQ3MjI3RTA0ODAwMDRDMDIwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA4MTkzMDAwMEM3Qzc0NUU3MDAxNjgxMjQ0NDBDQUI4MDlCMDAwMTA0NDAyMTlCMDAwMTBEQUI4ODAwMjU0QkY3Qzc0NUU3MDA4NjgwNDQ0MDg4MDAyNTRGNzA5MzAwMDBDQ0FCODc0QkYxOUIwMDAwQ0RBQjgxOUIwMDAwODE5MzAwMDBDMEE2MjA5QjY2NzhFM0UyMDBBNjI3Qzc0NUU3MDAyNjgyMDQyMjdDQUI4NzQ2MTE5QjAwMDA4N0U0NDAwMTA1OTQ2MDFCRjA5QjAwMDEwNDQwMTE5QjAwMDEwREFCODgwMTFGNDUyMjc3NEExMTlCMDAwMDg3RTQ0MDAzODU5NDYwMUJGRDBBODIyN0M3NDdFMDQ4MDAwNEMwMjBBNjIwOUI2Njc4RUE1RkRGNEE1RkVDQTI4M0UyMDBBNjJBNUVFNTIyNjdFNDQwMDIwNTk0NjAxQUZEQTI4MDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwODdDNzQ1RTcwMDE2ODBDNDQ4MENBQjhBNUVENDIyQURBQjg4MDBBNTQ3RkNBQjhBNUVFNTIyQURBQjg3Qzc0NUU3MDA4NjgwNDQ0MDI4MDAyNTRGRDE5QjAwMDA4MTkzMDAwMEM3Qzc0NUU3MDAyNjgxMEE1RUQ0MjI4NDIyNjdFNDQwMDA4NTk0NjAxQUY4MDA0QTVFRTUyMjg3Qzc0NUU3MDA0NjgxMEE1RUQ0MjI5NDIyNjdFNDQwMDA4NTk0NjAxQUY4MDBCQTVFRTUyMjk3Qzc0NUU3MDAyNzgwMDEyNDJBREQwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTAxOTMwMDAwQ0QwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTgxOTMwMDAwQ0QwQTgyMjc1MzFCNTEyN0MxNTdFMDQ4MDAwNEMwMjA5QjAwMDBDNDQ0MDE5QjAwMDBDRTU2RUI0MDcyMzA5QjAwMDEwNEVCMDAyMTlCMDAwMTAwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA0NTRGNzE5QjAwMDA0MTkzMDAwMENEMEE4MjI3NTMxQjYxMjdDMTU3RTA0ODAwMDRDMDJFNTZFQjQwNzE4MDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwNDQ0MDgxOUIwMDAwNDE5MzAwMDBDMDlCMDAwMEM1NEJGMTlCMDAwMENEMEE4MjI3NTMxQjQxMjdDMTU3QTIxMzExMjdDMTU3QTQxMzExMjdDMTUwQTMyMDlCMzY3OEU0MjM1MTI2QzVCRDBBODIyN0VCMDAxN0VBMEM4N0M2NDEyNjJCNjQwMTMwQTMyMDlCMzY3OEVGNDUyMzVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyNkM4QzZDRDM2RDFBNkQ2MTZEQTg2REVGNkUzNjZFN0Q3NTMxNTUxMjdDMTU3NTMxMDAxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE3RjdFMjcwMThGMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDBERTIzODBGMUIzNDc4RUM3QTE3MDE3RjdBMjcwMThGMDI0NjBGN0UxNDA5RTM4MEVCNzUzMTU1MTI3QzE1NzUzMTAxMTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxODE3RTI3MDE5MTJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxMUUyMzgwRjFCMzQ3OEVDN0ExNzAxODE3QTI3MDE5MTAyNDk2NzdFMTQwREUzODBFQjc1MzE1NTEyN0MxNTc1MzEwMjEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTgzN0UyNzAxOTMyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTVFMjM4MEYxQjM0NzhFQzdBMTcwMTgzN0EyNzAxOTMwMjRDQkY3RTE0MTFFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDMxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4NTdFMjcwMTk1MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE5RTIzODBGMUIzNDc4RUM3QTE3MDE4NTdBMjcwMTk1MDI1MDE3N0UxNDE1RTM4MEVCNzUzMTU1MTI3QzE1NzUzMTA0MTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxODc3RTI3MDE5NzJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxREUyMzgwRjFCMzQ3OEVDN0ExNzAxODc3QTI3MDE5NzAyNTM2RjdFMTQxOUUzODBFQjc1MzE1NTEyN0MxNTc1MzEwNTEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTg5N0UyNzAxOTkyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MjFFMjM4MEYxQjM0NzhFQzdBMTcwMTg5N0EyNzAxOTkwMjU2Qzc3RTE0MURFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDYxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4QjdFMjcwMTlCMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDI1RTIzODBGMUIzNDc4RUM3QTE3MDE4QjdBMjcwMTlCMDI1QTFGN0UxNDIxRTM4MEVCNzUzMTU1MTI3QzE1NzUzMTA3MTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxOEQ3RTI3MDE5RDJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQyOUUyMzgwRjFCMzQ3OEVDN0ExNzAxOEQ3QTI3MDE5RDAyNUQ3NzdFMTQyNUUzODBFQkNBQjhDMEYxNzUzMTAyMTI3QzE1RTVDMDU0MDM2ODA1MTI3NUNEODBGNTMwQzIwODc1RjEwMTEyNkZEOTgwMTQzMEMzMDg3NUYxMDExMjZFRkQ4MDA5MzBDNDA2NzVGMTAyMTI3MEU5RDBGMURBQjgzMjc1MzExMDEyN0MxNUNBMEJDQTM5Q0E1OUMyQzNBOTIxRTI1Q0U1RTU1NEMwNjg0RkU1RTY2Q0FBN0UzNzAxREIyRDM1QkUzNDA0MDAzODRBN0EzNzAxREI3RTM3MDFEOTdENDMyRDQ1QkU0NDA5RTIzODQwN0E0NzAxRDk3NTMxMTExMjdDMTU3QUIxMzExMjdDMTUxMjcxQjhBOTIxRTUxRkE5RDRFNEE5MjRFNEZDQzJDM0E5MjFFMjNCRTVFNTU0QzA3OEI0MTI3NDVBREE1OURBMzlEQTBCMjI4MDI5ODA1ODc1MzExNjEyN0MxNTgwRUQ3NTMxMTIxMjdDMTU3QUIxMzExMjdDMTU5RTQ0MDlFMzlENTQxMjcxQjg3RTM0MDVFMzdENTQyRDQzODBBMUU1RTU1NDAzNzgxMjc1MzExMzEyN0MxNTdFMEYyOUZGMEIwQzdBMEYyOUZGODBBNzc1MzExNDEyN0MxNTdFMEYyQTAzMEIwQzdBMEYyQTAzQTlEN0U0QTkyN0U0RkM4MDlENzUzMTE1MTI3QzE1N0UwRjJBMDcwQjBDN0EwRjJBMDc4MEU1NzUzMTE4MTI3QzE1Q0EwOUNBMzlDQTJCQzJDMkE5MjFGMjUyRTVGNTMzODJFNzQwNDQ3RTM3MDFFMTdFNTQwMDQwOUQzNTQwNDM3QTM3MDFFMTdFMzcwMUREN0Q0MzJENDVCRTQ0MDVFMjM4NTI3QTQ3MDFERDdENDUxMjczMTZBOTIwRjUyMjc1MzExOTEyN0MxNTdBOTEzMTEyN0MxNTdBODFGNzdBOTFGNkU1RjUzMzgyRTc1MEJDREEyQkRBMzlEQTA5MjI4MDQxODA2NDJENTM2RDMzNzBCNzdFMDQwMUUzN0EwNzAxREY3QTA3MDFEREE5MzJGMkRGODUzMDMxMTI3QzE1NzVGNjAwODBENENBNTk5RTQ0MDVFMzlENTQxMjczMTY3RTM0MDFFMzdENTQyRDQzN0E0NzAxREQxMjczMTZEQTQ5ODA5OUU1RjU1NDAzNzgxRjdFMEYyOUVGMEIwQzdBMEYyOUVGODA5RDdFMEYyOUY3MEIwQzdBMEYyOUY3QTlEN0Y0QTkyN0Y0RkM4MDhBN0UwRjI5RjMwQjBDN0EwRjI5RjM4MEVCRTVGNTU0MDM3ODFGN0UyRjJBMEYwQjJDN0EyRjJBMEY4MDM0N0UyRjJBMTcwQjJDN0EyRjJBMTdBOUQ3RjRBOTI3RjRGQzgwMjE3RTJGMkExMzBCMkM3QTJGMkExMzgwRUJEQTJCREExQkRBMEIyMjc1MzEyODEyN0MxNUNBMEJDQTFCQ0EyQkMyQzRBOTIxRjJCNkU1RjUzMzcyRTc0MEUwN0UwRDQ2N0UxRDRBN0UyRDRFN0UzRDUyN0U4NTU2N0Q5MDREOTE0RDkyNEQ5MzREOTQ0RDk1NEQ5NjREOTc0RDk4Njg3MjdBMTFGMzdBMDFGMzdBMzFGMzdBMjFGMzdBNTFGMzdBNDFGMzdBNzFGMzdBNjFGMzdBOTFGMzdBODFGMzMwN0IxQTdBQjFGMzdBQTFGMzdBRDFGMzdBQzFGMzdBRjFGMzdBRTFGMzdENzg3QUYxRjM3QUUxRjNBOTMwRjUwMzAyNzBENjc1MzEyOTEyN0MxNTIwN0IwQjc1MzEwQTEyN0MxNTc1RjYwQTgwMDk3NTMxMTIxMjdDMTU3NUY2MTI2RDAwN0QxMDdBMEQ0NjdBMEQ0QTdBMEQ0RTdBMEQ1MjdBMDU1NkRBMkJEQTFCREEwQjIyMUVCMDQwMEM3RUEwMEFBNDdFMDQ3MkZCOUQwNTg5MDQ3RUExRTM3QTM5QTAwQjM0ODBFQUI0NDBFMzdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzUyMjFFQjA0MDBDN0VBMDBBQTQ3RTA0NzQ1OTlEMDU4OTA0N0UzOUEwN0FBMUYzMEIzNDgwRUFCNDQwRTMwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MjJDMkFGN0UzNzAxREI0RDMzNjgzQjdFMDcwMUQ3N0U1NDA5RTM5RDUwQkQzNTQwMDI3RDM1Q0EzOTdFNjU2MTk5NjREQTM5N0UwNzAxREI5RDAzN0EwNzAxREIyRTM3MDFENzdBMzcwMUQ3QkUzNDA5RTIyOEM3N0UzNDA1RTM3QTM3MDFENzgwQkREMkFGMjI3NTMxNTMxMjdDMTU3RTE1NjM4MDExNzUzMTUxMTI3QzE1MEIwODEwMEIwNTlFMzQwMDAyMjg0RDdDQjIyMEU3Mjc1NDA3MjMwQTJCNDkyMjZDN0M3Q0IyNTQ3ODAzMDMwMzdDMkI5RDEzNDAxQTY4MTI3QTE1NjM3QTI1NjU3RTY0NzUzNzdBNjU2MTg5MjQwMjc1NDU3RTY0NzRBRDgwRjIyRDEzOUQzMUNBMzk3RDMxMkQxMENBMTlDQTI5OTkyNERBMjlEQTA5REEzOTgwQTI3QTE1NjM3RTY0NzUyMzREMzM3ODA5N0NCMjIwRTcyQTdFNjQ3NEEyN0E2NTYxMjI3NTMxNTIxMjdDMTU3RTIxNjM3RTA5MzAwQjA0MUIzNDc4ODk4MEQ0NzUzMTU0MTI3QzE1N0UxNTYzN0UyNTY1ODA5MDVFMjAwNzU0Nzg3RTQ0NzVDMTMwRTYxNjREMzM2ODI2MUIzNDdFMDk0MDBCMDQ3RTQ0Njc2MzIwRTMwNDdFNDQ3NUM5Q0EwOUNBMzk5OTQ0REEzOURBMDk3RTY0NzRBRDREMzM2OEE2ODk2NDdBMTU2M0Y1NjU3RTY0NzU4NjgwOTk3RTE1NjNFNTY1ODBDNEMwRDBDMEQxQzBFMENBMTlBOTIwREYxMkE5MjFERjFCNzUzMTAxMTI3QzE1NTNERkY3MTI0MERDODAwRDc1MzFGRTEyN0MxNTdFMTQwMDUzMDI0MDUxREExOUQwRTBEMEQxRDBEMDMyMDNBNUNCMTlCMTgwMDAyMjIyMDI3NjQyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCQzBGMTdFQjMyQTMzQjQwMDAyODAxOUI0MDExNjMwQzAwODc1RjEwMDEyNzYyQzgwMUYzMEMxMUM3NUYxMDAxMjc2QkQ4MDE0MzBDMTA4NzVGMTAwMTI3NkJEODAwOTMwQzAwNjc1RjEwMDEyNzYyQ0QwRjFEQUVCREE3QkRBNkJEQTVCREE0QkRBM0JEQTJCREExQkRBMEIyMkMyQzA3RUIzMkEzM0I0MDIwNzEyNzY0RTAyNzY0MjIyQjQwMUZDMDI3Njg4N0UwMDAwN0EwMzJBMzM3QTAzMkEzNDIyN0VCMzJBMkI1NDYwNjAwNUI0NDAxNTgwMTM3RUIzMkEyQ0I0MDUwQzc1MzE3MTEyN0MxNTdFQjMyQTJFRjU4RjIyNzVGNjAwMjJCRTU3MkEzMTI4MDQ3RTU3MkEzMTdBMEYyQTM2N0E1NzJBM0EwMjc2ODg3RUVGMkEzNjdFRjcyQTNBN0UwNzJBM0E0RDAwNjgyMTdFMDAwMDdFRUJCMEY1RjNBM0E1MDgxQkY0NjgwNEE1QjgwOEYwN0FFRjJBMzY3QUY3MkEzQTc1MzEwNjEyN0MxNTdBMDFGNjIyQzJDMTc1MzEwMzEyN0MxNUE5MzZFMjE2RTVGNTU0QzA2ODA3QTlEN0Y0QTkyN0Y0RkM1M0UxM0Y0M0YyODgwMjc3Mjk3RUIzMkEzNEI0MDIwNEE5RDRFNDIyQjQwMTM5N0UyMUU2N0MzMjdFMTMyQTM1MkMyMTdBMjMyQTM1N0UwMDAwMkUwNDJBM0NFNUUzN0EwOUIwMEIwNEE1REJGNkE5RDRFNDc1MzE3MDEyN0MxNTdFQjMyQTM1N0VBMzJBMzJCQ0FCNzgwMzEyNzdDMDIyMDI3QjI5RTVFNkI0MDg2NUE5QzRFMjdFMDFFMzdFMTFFMzdFMzFFMzdFMjFFMzdFNTFFMzdFNDFFMzdFNzFFMzdFNjFFMzdBMEYyQTJCN0ExRjJBMkY3NTMxMDQxMjdDMTU3QTAxMzExMjdDMTU3QTExMzExMjdDMTU3QTIxMzExMjdDMTU3QTMxMzExMjdDMTU3QTQxMzExMjdDMTU3QTUxMzExMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTVBOUQ0RTRBOUQ3RjRBOUM2RTIxMjc3OTQyMjZEMDA3RTE0MDEwMjdBMDcyQTNBN0EwMzJBMzU3RUIzMkEyQjIwRTcwRjdBMjMyQTM0N0EzMzJBMzNCRTA3MkEzMTY4MDkyMjdBMzMyQTM0N0EyMzJBMzM3RUIzMkEyQjU0RTMyMzIzMzBFMDAyRDJFNTMwRTcwMkQyRTQzMEU1MDYzMEU0MDMwMjdCMjk1NDNFRjVGMDAzNTQxRkMzMjVGMDkwNzdFQzc1ODRGRjczMDI3OTQwMDI3ODM0MDI3OUREMDI3OUY4MDI3OEQ5MDI3ODlBMDI3QTExMDI3QTExMDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTFBMDI3QUNFMDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3N0VCMzJBMkNCNDA2MkE3RUIzMkEyRDYwNTY3QzBCN0UxMzJBMkU3RTE3MkEyRjc1MzE3MjEyN0MxNTdBMDEzMTEyN0MxNTdBMTEzMTEyN0MxNTEyN0IzMzQwMzUwMjc2NzNCNDA4MTA3NTMxNzQxMjdDMTU3RUIzM0ZGMUY1RjM3NUY2MDEyMkI0MDAxQzc1MzE3NTEyN0MxNTdFQjMzRkYyMzBFMDA1NzVGMzAyODAwMzc1RjMwMDc1RjMwMDc1RjYwMjIyMDI3QjI5N0VCMzJBMkNCNDAwMzU3NTMxNzYxMjdDMTU3RUIzMkEzMDU0MEZGNUYxN0VCMzJBMzAyMEU3MDlFNUUxMzBFNzBENzQwMTgwMEJFNUUxMzBFNjA0NzQwMTgwMDI3NDAwNTNGMTgwRjVGMzc1RjMwMDc1RjYwMjIyMDI3QjI5QzBGMTdFQjMyQTMwNTQwRjQyRjE3RUIzMkEyRUI0MDA0NTdFQjMyQTJDQjQwMTI0NzUzMTc3MTI3QzE1N0VCMzJBMzA1NDBGNzgwNTUzRTEzRjgwMzc3RUIzMkEzMDIwRTcwNTUzRTE3RjgwMkI1M0UxQkY4MDI2QjQwMzE3NzUzMTc4MTI3QzE1N0VCMzJBMzAyMEU3MDU0M0UxODA4MDExNDNFMTQwODAwQzQzRTFDMEQwRjE3NTMxMDcxMjdDMTUyMkQwRjEwMjc2NkY3RUIzMkEyQ0I0MDkyMzc1MzE3OTEyN0MxNTdFQjMyQTJFQkVCMzNGRjE2ODExQ0FCOEMwRjExMjQzRDREMEYxREFCODUwNzY3QUIzM0ZGMTgwNkRCNDA1MDg3NTMxN0ExMjdDMTU4MDYyQjQwMzE5NzUzMTdCMTI3QzE1N0VCMzJBMkVCNDAxNTU3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjgwNDZCNDAxMTk3NTMxN0MxMjdDMTU3RUIzMkEyRUI0MDEzOTdFQjMzRkYyNTRGRTdBQjMzRkYyODAyQUI0MDcyQTdFQjMyQTJENjAyNDdDMEI3RTEzMkEyRTdFMTcyQTJGNzUzMTczMTI3QzE1N0EwMTMxMTI3QzE1N0ExMTMxMTI3QzE1MTI3QjVGNDAwMzAyNzY2RjAyN0IyOTdFQjMyQTJDQjQwQkY2NzUzMTdEMTI3QzE1N0VCMzJBMkU3RUEzMkEzMDRDQUI3OEU0ODBERjdFQjMyQTJDQjQwQURCNzUzMTdFMTI3QzE1N0VCMzJBMkU3MENGRjVGMzc1RjYwMTIyMDI3QjI5MDI3QjI5MDI3QjI5N0VCMzJBMkNCNDA0MjA3NTMxQzMxMjdDMTU3RTA0MDAwMTdFMTcyQTJEN0UxODJBM0M3QTFDMDAwMDdFNDcyQTMxMTI3QzIxMDI3QUM4QjQwNjNBNzUzMUMxMTI3QzE1N0U1ODAwMDA3QTVDMDBGRTdEQ0E3RUQ3MkEyRDdFNzgyQTNDN0E3QzAwMDA3RTc3MkEzMTc1MzFDMTEyN0MxNUMwQThDMDg3QzJBRkE5RDU4NzEyN0M1QUQwODdEMEE4NDA0RjgwNEFCNDAwMUNDMkFGQTlENTg3MTI3NjZGRTQ4REVGOERFRjhERUZENUUwRjdDMEQxQ0EwMkZGQ0EwNjAwMDAzMkI0MDkxMjdFNTcyQTJENEQ1NTY4MDVBOUQyQjE4MDAzQTlDMkIxODAxNkI0MDcxNkMyQUY3RTA3MkEyRjdFMTcyQTJEQzBEMUNBMThDQTM4Q0EyODMyMDI3NjZGMDI3QjI5N0VCMzJBMkNCNDAzMTU3NTMxQzIxMjdDMTU3RTA0MDAwMTdFMTcyQTJEN0U1NzJBMzEwMjc2NzNCNDA1Mzk3NTMxQzAxMjdDMTVDMEE4QzA4N0MyQUZBOUQ1ODc3RTA4MkEzQzdBMEMwMDAwN0UyNDAwRkU3RTM3MkEyRDdFNDcyQTMxMTI3QzIxRDA4N0QwQTg3RTA4MkEzQzdBMEMwMDAwN0U1NzJBMzEwMjc2NzMwMjdCMjk3NTMxMDcxMjdDMTU0M0UxQzAyMkMwQThDMDg3QzJBRkE5RDU4NzEyN0I5RTQwMTk3RTA4MkEzQzdBMEMwMDAwQ0EwQkNBNDkxMjdDMjFEQTU5REEwQkQwODdEMEE4QzMyMkQwODdEMEE4MjJDMEE4QzA4N0MyQUZBOUQ1ODcxMjdCOUU0MDJCN0U1ODAwMDA3QTVDMDBGRTdGNjE3RTc4MkEzQzdBN0MwMDAwN0U3NzJBMzFCRDc0NzgxMTc1MzFDMTEyN0MxNTEyN0M1QTQwMDZEMDg3RDBBOEMzMjJEMDg3RDBBOEQzMjI3RTI0MDBGRTdFMzQ3RkNBMEIxQTUwQzVGMDdENjI3RDc1N0Q4NzdFMzQ3RkMyN0UxQkIwN0UzNDdGMDNCNDAxMDQ3RTM0N0ZDQzdFMUJCMEJDMEI1MDQ5M0UwMDNFMDAwQTUwMkQ3NTBCM0EzMDY5NTMwMDAyQkQzODUwMDIyRDM4QkMxQjUwMzAzRTEwM0UxMDBBNTEyRDM1Njk0MTAwMDIwQjFBMzBCRDM4NTAwMjJEMzhCRTQ0RkZGRjc4MDU3RTFCOTAwQTQ5NEQ0NDY4MENCRTQ0MDBGRjI4MDQ3RTQ0MDBGRkMzMjJEMzIyRkEKKzowMDA0N0ZDNjAwMDExMDA0MDBBMgorOjAxNEE3QzE1MDBDQTA4N0UwMTMxN0EwMzNGRjBEQTA4MjI3RTFCQzA3QTBCQzAwQjE0MEIzNDFCNDQ3OEYyMjI3RjZGN0ZGMDFCRkM3QzU0N0QzMjgwMDhDQTFCQ0ExQkNBMUJDQTFCOUU0NDAwMTA1MEYyMkU0NDAwMTA2ODA2Q0E0ODFCNDQ3OEZBN0ZGNjg5RTRDQTZCNUVENDAwM0Y2ODIwN0U4NDAwNDA5RDhEREE2QkJEODczODE2Q0E3OTdENzgxMjdDODREQTc5NDAwODlENzg2ODAyODAwNUMyRDcyMkRBNkI0MzkwMzA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJDNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTYwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDM2MzkwMzA0RDc3Nzg5M0MyRDcyMkQyRDcyMjAwMDQwMDA0NDIwODA2MDQwMjA0MDAwMjAxMDQwMTAyODIwODAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAyMDgxMDAyMTAwNDAyMDgwMDAxMDEwODAwMDEwMDAyMDAwMjAyMDgwMjA0MjAwNDdFMTg3RkJEN0ExQzAwRkUwQjFBMDA1RTEwMUZCRTEwMUEzODFBMEE1MTIzN0UxODdDRkE3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkU3MworOjAwMDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24yLkgxNiBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24yLkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjRiNGZmCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvZG93bjIuSDE2CkBAIC0wLDAgKzEsMjkgQEAKKzowMDA0MDAwMDAwMDIwMDAwMDNGNworOjAwMDIwMDAwMDQwMEZGRkIKKzowMDA2MDAwMDAwMDIwMDgwMDI0NTE0MUQKKzowMDAzMDAwQjAwMDI0NEE1MDcKKzowMDAzMDAxMzAwMDI2M0FCREEKKzowMDAzMDAxQjAwMDIwMDFCQzUKKzowMDAzMDAyMzAwMDIwMDIzQjUKKzowMDAzMDAyQjAwMDIwMDJCQTUKKzowMDAzMDAzMzAwMDIwMDMzOTUKKzowMDAzMDAzQjAwMDIwMDNCODUKKzowMDAzMDA0MzAwMDIwMDQzNzUKKzowMDAzMDA0QjAwMDIwMDRCNjUKKzowMDAzMDA1MzAwMDI2NzVGRTIKKzowMDAzMDA3QjAwMDIwMDdCMDUKKzowMDA3MDA4MDAwN0UxNDAwMDAwMjQwNTI1MworOjBCNjYzMDAwMDAxMjMwNjQxMjMwRkYxMjMxMkYxMjMwQjA4MEYyRTUyMzYwMTk3RTE0MDAwMDA5QjEwMUI5QjQwMDAyODAwNTE0MTlCMTAxQjlBNTBBQkUyMTJFNzhFQjIyQzJBRjdFQjMzRkYxQjQwMTAzMTI2NTY3RDJBRjIyQzJBRjdFQjMzRkYxQjQwMTFENzQ0MDdBQjM5MTAwN0VCMzkxMUE2Q0FBNjAwRkNBMEJDQTM5Q0E1OTEyNjQyNERBNTlEQTM5REEwQkQyQUYyMkMyQUZFNTIyNjA0MzdFMDcwMUNCQkUwNDAzODAzODM5N0UwNDgwMDA3RTIwMDAxMzUwMjEwOUEwMDAwNDRFQTAwNTE5QTAwMDA0MEEzMjA5NTMzNTMzNUU1MTI3NjgwQjA5QTAwMDEwNEVBMDAxMTlBMDAwMTAyRTA0MDEwMEE1MEFCRTIxMkU3OEQxNzUyMjAwRDJBRjIyQzJBRkU1MjY2MDM2N0UyMDAwN0UzMDAxRTUyNkE1NUI2ODIxN0NCMjIzMEEyQjQ5MzIwMTc5QkUzNDAwMDA2ODEyN0VCMTIxQTU0QjdBQjEyMUNBMTk0OTIyMzBFRjk5MjREQTE5M0UzMEE1MEFCRTIxMkU3OEQwRDJBRjIyNDY0RjQ5N0M0Q0E5NEZENjUzMDM1NjMwNTk1RDVDOEFDMkFGRTUyNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTFDREFCOEE1MEFCRTIxMkU3OEVGRDJBRjIyQ0EyODEyMzU0Q0RBMjg0MDA5MEEyMjA5QjIzNTMzRjQ1MjI0MjJDMkFGRTUyMzYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTRDREFCOEE1MEFCRTIxMkU3OEVGRDJBRjIyN0NCMjIzMEEyQjQ5MjIzMTU3ODkyNDMxNjczMUQwMzIzOTMyQTIzMzBCMzM3NDMzREQzNDQ2N0UyNzAxNzlCRTI0MDAwMDc4MjQ3RTI0ODAwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjQ5NDU3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4OTY4MEQ3QTI3MDE4OTdFNjA5QzdBNjMwMUI5ODAyNzdFNjMwMUI5QTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxODZDMDA3QTAzMDFCOTEyNjQ4NjIyN0UyNzAxN0JCRTI0MDAwMDc4MjQ3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDNzI3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4QjY4MEQ3QTI3MDE4QjdFNjA5QzdBNjMwMUJBODAyNzdFNjMwMUJBQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxOTZDMDA3QTAzMDFCQTEyNjQ4NjIyN0UyNzAxN0RCRTI0MDAwMDc4MjQ3RTI0ODIwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRGOUY3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4RDY4MEQ3QTI3MDE4RDdFNjA5QzdBNjMwMUJCODAyNzdFNjMwMUJCQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQTZDMDA3QTAzMDFCQjEyNjQ4NjIyN0UyNzAxN0ZCRTI0MDAwMDc4MjQ3RTI0ODMwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjUyQ0M3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4RjY4MEQ3QTI3MDE4RjdFNjA5QzdBNjMwMUJDODAyNzdFNjMwMUJDQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQjZDMDA3QTAzMDFCQzEyNjQ4NjIyN0UyNzAxODFCRTI0MDAwMDc4MjQ3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU1Rjk3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5MTY4MEQ3QTI3MDE5MTdFNjA5QzdBNjMwMUJEODAyNzdFNjMwMUJEQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQzZDMDA3QTAzMDFCRDEyNjQ4NjIyN0UyNzAxODNCRTI0MDAwMDc4MjQ3RTI0ODUwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU5MjY3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5MzY4MEQ3QTI3MDE5MzdFNjA5QzdBNjMwMUJFODAyNzdFNjMwMUJFQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRDZDMDA3QTAzMDFCRTEyNjQ4NjIyN0UyNzAxODVCRTI0MDAwMDc4MjQ3RTI0ODYwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjVDNTM3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5NTY4MEQ3QTI3MDE5NTdFNjA5QzdBNjMwMUJGODAyNzdFNjMwMUJGQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRTZDMDA3QTAzMDFCRjEyNjQ4NjIyN0UyNzAxODdCRTI0MDAwMDc4MjQ3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjVGODA3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5NzY4MEQ3QTI3MDE5NzdFNjA5QzdBNjMwMUMwODAyNzdFNjMwMUMwQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRjZDMDA3QTAzMDFDMDEyNjQ4NjIyQzJBRjdFMDcwMUNCQkUwNDAwMDA3ODI4NzQyMDdBQjM5MTAwN0VCMzkxMTUzMEU1MUI3RUIzOTExQUJFQjAzRjM4MEM4NTMxMkYxMjczMzU3NDgwN0FCMzkxMUU3NDIwN0FCMzkxMTVEMkFGMjIzNTNCMzZFODM3MDAzNzFCMzdCNjM4NEUzODY5MzhGQjM4ODQzOEM1N0NCM0JFQjAwOTI4MjI3NTJGMDkxMjczMzU3NTU3MDI3NDIwN0FCMzkxMDA3NDAxN0FCMzkxMTE3NDQwN0FCMzkxMDA3NDAxN0FCMzkxMTEyMkMwQThDMkFGMjM2Q0FBMkU1NDM0RTYwQjU4NTA4OTU0MDEwMjA0MDgxMDIwNDA4MDc1MkZCMDEyNzMzNTBBMjIwOUIyMzUzMzQyMjREMEE4MjI3Q0IyMjMwQTNCNDkzMzM1NTc4OTM0MzU2NzM1OTUzNUMzMzVGMTM2MUYzNjREMzY3QjM2QTkxMjQxQkFEMjI4RDIwOEMyNDBDMjQ4QzIzOEMyMzA2RDAwN0EwMzAxQjk3RTA0MDAyMDdBMDcwMTk5N0UwNDAwMzg3QTA3MDFBOTEyNDEyNzEyNUZCNzAyMzZENzEyNDFEN0QyMjlEMjA5QzI0MUMyNDlDMjM5QzIzMTZEMDA3QTAzMDFCQTdFMDQwMDIwN0EwNzAxOUI3RTA0MDAzODdBMDcwMUFCMTI0MTI3MTI1RkUwMDIzNkQ3MTI0MUY0RDIyQUQyMEFDMjQyQzI0QUMyM0FDMjMyNkQwMDdBMDMwMUJCN0UwNDAwMjA3QTA3MDE5RDdFMDQwMDM4N0EwNzAxQUQxMjQxMjcxMjYwMDkwMjM2RDcxMjQyMTFEMjJCRDIwQkMyNDNDMjRCQzIzQkMyMzM2RDAwN0EwMzAxQkM3RTA0MDAyMDdBMDcwMTlGN0UwNDAwMzg3QTA3MDFBRjEyNDEyNzEyNjAzMjAyMzZENzEyNDIyRUQyMkNEMjBDQzI0NEMyNENDMjNDQzIzNDZEMDA3QTAzMDFCRDdFMDQwMDIwN0EwNzAxQTE3RTA0MDAzODdBMDcwMUIxMTI0MTI3MTI2MDVCMDIzNkQ3MTI0MjRCRDIyREQyMERDMjQ1QzI0REMyM0RDMjM1NkQwMDdBMDMwMUJFN0UwNDAwMjA3QTA3MDFBMzdFMDQwMDM4N0EwNzAxQjMxMjQxMjcxMjYwODQwMjM2RDcxMjQyNjhEMjJFRDIwRUMyNDZDMjRFQzIzRUMyMzY2RDAwN0EwMzAxQkY3RTA0MDAyMDdBMDcwMUE1N0UwNDAwMzg3QTA3MDFCNTEyNDEyNzEyNjBBRDAyMzZENzEyNDI4NUQyMkZEMjBGQzI0N0MyNEZDMjNGQzIzNzZEMDA3QTAzMDFDMDdFMDQwMDIwN0EwNzAxQTc3RTA0MDAzODdBMDcwMUI3MTI0MTI3MTI2MEQ2MDIzNkQ3N0VBMEQwN0U2MDBGMTI2MTM2NDAwNTEyNjQ4NkMyRDcyMjc1MkZCMTEyNzMzNTBBNTIyMzZEMDA1OTA1MDAzMjEyNDE4MzEyNDE5RkQwQTgyMjc1MkZCMjEyNzMzNTBBMjIwOUIyMzUzMzQyMjM3RUIwOUMxOUIyMDFCOTEyMzE0Q0QwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDgxOTMwMDAwQzdDNzQ1RTcwMDE2ODEyNDQ0MENBQjgwOUIwMDAxMDQ0MDIxOUIwMDAxMERBQjg4MDAyNTRCRjdDNzQ1RTcwMDg2ODA0NDQwODgwMDI1NEY3MDkzMDAwMENDQUI4NzRCRjE5QjAwMDBDREFCODE5QjAwMDA4MTkzMDAwMEMwQTYyMDlCNjM1MzMzRTIwMEE2MjdDNzQ1RTcwMDI2ODIwNDIyN0NBQjg3NDYxMTlCMDAwMDg3RTQ0MDAxMDU5NDYwMUE5MDlCMDAwMTA0NDAxMTlCMDAwMTBEQUI4ODAxMUY0NTIyNzc0QTExOUIwMDAwODdFNDQwMDM4NTk0NjAxQTlEMEE4MjI3Qzc0N0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwODdDNzQ1RTcwMDE2ODA0NDQ4MDgwMDI1NDdGN0M3NDVFNzAwODY4MDQ0NDAyODAwMjU0RkQxOUIwMDAwODE5MzAwMDBDMEE2MjA5QjYzNTMzQTVGREY0QTVGRUNBMjgzRTIwMEE2MkRBMjg3Qzc0NUU3MDAyNjgxMEE1RUQ0MjI4NDIyNjdFNDQwMDA4NTk0NjAxOTk4MDA0QTVFRTUyMjg3Qzc0NUU3MDA0NjgxMEE1RUQ0MjI5NDIyNjdFNDQwMDA4NTk0NjAxOTk4MDE1QTVFRTUyMjk3Qzc0NUU3MDAyNzgwQTUyMjY3RTQ0MDAyMDU5NDYwMTk5MTI0MkEyRDBBODIyN0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMxOTQwMDAxMDE5MzAwMDBDRDBBODIyN0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMxOTQwMDAxODE5MzAwMDBDRDBBODIyNzUyRkI1MTI3MzM1N0UwNDgwMDA0QzAyMDlCMDAwMEM0NDQwMTlCMDAwMENFNTU4QjQwNzIzMDlCMDAwMTA0RUIwMDIxOUIwMDAxMDA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDQ1NEY3MTlCMDAwMDQxOTMwMDAwQ0QwQTgyMjc1MkZCNjEyNzMzNTdFMDQ4MDAwNEMwMkU1NThCNDA3MTgwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA0NDQwODE5QjAwMDA0MTkzMDAwMEMwOUIwMDAwQzU0QkYxOUIwMDAwQ0QwQTgyMjc1MkZCNDEyNzMzNTdBMjEyRjEyNzMzNTdBNDEyRjEyNzMzNTdFQjAwMTdFQTBDODdDNjQxMjYxMzYxMjY0ODZEMEE4MjIzOTJFMzk3NTM5QkMzQTAzM0E0QTNBOTEzQUQ4M0IxRjc1MkY1NTEyNzMzNTc1MkYwMDEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTY5N0UyNzAxNzkyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MDgyQzM4MEYxQjM0NzhFQzdBMTcwMTY5N0EyNzAxNzkwMjQ2NEY3RTE0MDQyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDExMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE2QjdFMjcwMTdCMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDBDMkMzODBGMUIzNDc4RUM3QTE3MDE2QjdBMjcwMTdCMDI0OTdDN0UxNDA4MkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjAyMTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNkQ3RTI3MDE3RDJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxMDJDMzgwRjFCMzQ3OEVDN0ExNzAxNkQ3QTI3MDE3RDAyNENBOTdFMTQwQzJEODBFQjc1MkY1NTEyNzMzNTc1MkYwMzEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTZGN0UyNzAxN0YyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTQyQzM4MEYxQjM0NzhFQzdBMTcwMTZGN0EyNzAxN0YwMjRGRDY3RTE0MTAyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDQxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE3MTdFMjcwMTgxMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE4MkMzODBGMUIzNDc4RUM3QTE3MDE3MTdBMjcwMTgxMDI1MzAzN0UxNDE0MkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjA1MTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNzM3RTI3MDE4MzJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxQzJDMzgwRjFCMzQ3OEVDN0ExNzAxNzM3QTI3MDE4MzAyNTYzMDdFMTQxODJEODBFQjc1MkY1NTEyNzMzNTc1MkYwNjEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTc1N0UyNzAxODUyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MjAyQzM4MEYxQjM0NzhFQzdBMTcwMTc1N0EyNzAxODUwMjU5NUQ3RTE0MUMyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDcxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE3NzdFMjcwMTg3MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDI0MkMzODBGMUIzNDc4RUM3QTE3MDE3NzdBMjcwMTg3MDI1QzhBN0UxNDIwMkQ4MEVCNjQKKzozMzM1NDAwMDAwN0UwNDAwMDE3RTE0N0ZGODdFMjQwMEZFN0QzMTBCMUE1MDFCMEE1MDdFMTQ0MDFCMDI0MDc0N0VGODAwNTk3NUIwREY3RUIwMDE3QUIzOTAwMDdFRjQ0MDMwMDI0MDhCMTI3NDRFRjUyRTdBQTEyRDdBMTE1ODEyNkIwMjEyNDBFQjdFQjMzRkYxNjAwMzEyNDM3OTEyNkJERUQyQUYwMjMwMDA3RTA0MDBGRjdFMTg0MDYwN0ExQzAwMDE4OTE4N0VCMDAxN0FCMzk0MDA3QUIzMkMzNTdFQjAwMTdBQjM5MzAwODkwODdFMDQwMEZGN0UxODQwODI3QTFDMDAwMTg5MTg3RUIwMDA3QUIzOTMwMDg5MDg3RTA4MDAyMDdFNDQwNDAwN0U0MDAwN0VFNDQwOUQwMjczNTA3RTA4MDE1OTdFNDQyQUREN0U0MDAwN0VFNDQwQUYwMjczNTA3RTA4MDA1OTdFNDQwMTAwN0U0MDUzN0VFNDQwQzEwMjczNTA3NTU3MDE3NTU2MDA3RTA0MDAwODc1NTQ1ODc1NTUwODc1NTEwODc1NTMwMTc1ODkwMTc1OEEwMTc1OEMwMEQyOEM3RTA0MDAwMjdBMDU0Mjg5RjQ3NUI3N0Y3NUI4N0Y3NUIzMDE3NUIyMDFEMkE5MjI3NUIwREZFNEQ1RTBGRDc1QjBFRjdFMjQ4MDAwN0UxMTJFN0VBMDA4MTlBMjAwMTAyRTI0MDEwMEE1RDlGMjdFMjAwMDEyNDE4MzBCMjBCRTIxMkU3OEY2MjI3RTA0ODAwMDRDMDI3NEJGMTlCMDAwMEM3NDEwMTlCMDAwMDg3NDgwMTlCMDAwMEM3RTU0MDAwMjE5QTAwMDA0MTlCMDAwMDA3NDAzMTlCMDAwMEM3NDA3MjA2ODAyNzQwRjE5QjAwMDA0MzA2QjE3NzRCRjE5QjAwMDBDNzQyODIwNjgwMjc0MjAxOUIwMDAwNDc0MDMxOUIwMDAwQzc0QTcxOUIwMDAwODc0MEMxOUIwMDAxMDIyN0UwNDgwMDA0QzAyRTQxOUIwMDAwNDA5QjAwMDEwNTQwODE5QjAwMDEwNzRBNzE5QjAwMDA4MjI3Q0IyMjMwQTJCNDkyMjQxQUE4OTI0NDFCQTQxRDc0MUY0NDIxMTQyMkU0MjRCNDI2ODQyODVDMjEwQzIxOEMyMDg3RTA0MDQyRDdBMDcwMTU5N0EwNzAxNjk2RDAwN0EwNzAxNzk3QTA3MDE4OTIyQzIxMUMyMTlDMjA5N0UwNDA4MkQ3QTA3MDE1QjdBMDcwMTZCNkQwMDdBMDcwMTdCN0EwNzAxOEIyMkMyMTJDMjFBQzIwQTdFMDQwQzJEN0EwNzAxNUQ3QTA3MDE2RDZEMDA3QTA3MDE3RDdBMDcwMThEMjJDMjEzQzIxQkMyMEI3RTA0MTAyRDdBMDcwMTVGN0EwNzAxNkY2RDAwN0EwNzAxN0Y3QTA3MDE4RjIyQzIxNEMyMUNDMjBDN0UwNDE0MkQ3QTA3MDE2MTdBMDcwMTcxNkQwMDdBMDcwMTgxN0EwNzAxOTEyMkMyMTVDMjFEQzIwRDdFMDQxODJEN0EwNzAxNjM3QTA3MDE3MzZEMDA3QTA3MDE4MzdBMDcwMTkzMjJDMjE2QzIxRUMyMEU3RTA0MUMyRDdBMDcwMTY1N0EwNzAxNzU2RDAwN0EwNzAxODU3QTA3MDE5NTIyQzIxN0MyMUZDMjBGN0UwNDIwMkQ3QTA3MDE2NzdBMDcwMTc3NkQwMDdBMDcwMTg3N0EwNzAxOTcyMjdDQjIyMzBBMkI0OTIyNDJBRDg5MjQ0MkJENDJENDQyRUI0MzAyNDMxOTQzMzA0MzQ3NDM1RTMwNDAwNzIwNTgwNEMyMjg4MDBDMzA0ODA3MjA1MDA0QzIyODgwMDJEMjI4MjIzMDQxMDcyMDU5MDRDMjI5ODAwQzMwNDkwNzIwNTEwNEMyMjk4MDAyRDIyOTIyMzA0MjA3MjA1QTA0QzIyQTgwMEMzMDRBMDcyMDUyMDRDMjJBODAwMkQyMkEyMjMwNDMwNzIwNUIwNEMyMkI4MDBDMzA0QjA3MjA1MzA0QzIyQjgwMDJEMjJCMjIzMDQ0MDcyMDVDMDRDMjJDODAwQzMwNEMwNzIwNTQwNEMyMkM4MDAyRDIyQzIyMzA0NTA3MjA1RDA0QzIyRDgwMEMzMDREMDcyMDU1MDRDMjJEODAwMkQyMkQyMjMwNDYwNzIwNUUwNEMyMkU4MDBDMzA0RTA3MjA1NjA0QzIyRTgwMDJEMjJFMjIzMDQ3MDcyMDVGMDRDMjJGODAwQzMwNEYwNzIwNTcwNEMyMkY4MDAyRDIyRjIyNDQ2NjQzOEFCRUIwMDI0MDAxMjIyMzBBNUI0OTU1NDM3NTk5NTREMzIyN0VCMDAwN0FCMzk0MDA3QUIzMkMzNTEyNDQ3QTdFMDQyODJEN0EwNzAxQzE3QTA3MDFDMzdFMDQyNDJEN0EwNzAxQzc3QTA3MDFDOTdFMDQ2NjdGN0EwNTRCNzQyMDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxMjdBQjM5MTA2NzQ0MDdBQjM5MTA3NzQxRTdBQjM5MTEwNzQ0ODdBQjM5MTEyNzQxMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQ0MDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxNDdBQjM5MTA2NzQ0MDdBQjM5MTA3NzQxNjdBQjM5MTEwNzQwODdBQjM5MTExNzQyMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQ2MDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxNjdBQjM5MTA2NzQyMDdBQjM5MTA3NzQyRjdBQjM5MTEwNzQ0ODdBQjM5MTEyNzQxMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQwMjdBQjM5MTA2NzQwRjdBQjM5MTA3MTI0MEZBN0UyMDAwMTI0MTlGMEIyMEJFMjEyRTc4RjZEMkE4MjI3RUIwMDE3QUIzOTQwMDdBQjMyQzM1MTI0NDdBNzVCMERGQzJBODIyNzQwMjdBQjM5MTA2NzQwMTdBQjM5MTA3N0UyMDA0N0NCMkMyRDcxMzEzMTMxMzdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQwMjdBQjM5MTEyQTVEQUU1MjJDQTA5MTIzMDBFMTAwMTM0RDU1MTQwNzQwMDdBQjM5MTAwNzQwMjdBQjM5MTA2N0VCMzkxMDc3NDAzN0FCMzkxMDY3RUIzOTEwNzdFQjM5MTE0N0VCMzkxMDQ2MzUzMDE3RTAwNTQyRTAxNTNBNUU2RjU1MTgwMTIyMDAyMUQ3NTUzMDA4NTU0NTFEMjAyNzQwMzgwMEQzMDAyMEVDMjAyN0UwMDU2MkUwMTUzQTVFNjdBQjM5MDAwREEwOTMyNDU2RjQ1OEI0NUE3NDVDMzQ1REY0NUZCNDYxNzQ2MzNDMEQwQzBEMUMwRTBDMEYwQ0EwQkNBMUJDQTJCRDIwMTc1MkY4OTEyNzMzNTdFQjM5MDAwNjAyODdFMTQ4MDAwN0UwMDAwMTM1MDEzQ0EwQkNBNTk3Q0IwMjMwQTJCNDkyMjQ1MDQ5OTI0REE1OURBMEJBNTBBQTUwOEJFMDEyRTc4RTE4MEQyMzAwNDA1QzIwNDEyNjQ4NkRBMkJEQTFCREEwQkQwRjBEMEUwRDBEMUQwRDAzMjA5QjEwMDA4MjBFMDE0NzUyRjgwMTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MUFCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODExMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYxRUI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4MjEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjIyQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjgzMTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MjZCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODQxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYyQUI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4NTEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjJFQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjg2MTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzJCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODcxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYzNkI4OTU0MjIxMDA4MDEyMjIwMjgwM0QyMDgyMjc1MkZBMDEyNzMzNTdFMTQ4MDAwODAwNjIwMjgwM0QyMDgyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0OTQ1MzAzMDA2MjBFNjRGRDIwODIyMzBFNjAyRDI2MDdFMzcwMTc5N0UyNzAxOTk5RDMyNDAzMTdEMDIyRTA1MzI3QTA1MzI3QTM3MDE3OTdFMzcwMTU5N0Q0MzJENDJCRTQ0MDgyQzM4Njg3QTQ3MDE1OTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjBDNDIyQzI2MDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3OUJFMjQwMDAwNjg2QUJFMjcwMTk5MjgwNDdFMjcwMTk5N0UzNzAxNzk5RDMyN0QwMjJFMDUzMjdBMDUzMjdBMzcwMTc5N0UzNzAxNTk3RDQzMkQ0MkJFNDQwODJDMzgxMzdBNDcwMTU5NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDA4MkQ5RDI0MTI2OUYwN0UzNDA0MkQ3RDI0MkQ0MzdBNDcwMTU5MTI2OUYwQkUyNTIwNzgwMzAyNDZDMjIyRDIwODdFMDQwNDJEN0EwNzAxNTk3QTA3MDE2OTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQTkyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDAwMDJFMjcwMUE5MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzODBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEwMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAwMDAyRTY3MDFBOTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDA3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0ODFFNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM4MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTAyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjQ4MUVEQUI4MDI0OTQ1MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNTg4MDAyQzI1OEE1RkQ1RTUwODA2ODA0RDI1MDgwMDJDMjUwMTI0MkJEMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNDg3Mjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDA5MDEyMjIwMjkwM0QyMDkyMjc1MkZBMTEyNzMzNTdFMTQ4MTAwODAwNjIwMjkwM0QyMDkyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0QzcyMzAzMTA2MjBFNjRGRDIwOTIyMzBFNjAyRDI2MTdFMzcwMTdCN0UyNzAxOUI5RDMyNDAzMTdEMDIyRTA1MzQ3QTA1MzQ3QTM3MDE3QjdFMzcwMTVCN0Q0MzJENDJCRTQ0MEMyQzM4Njg3QTQ3MDE1Qjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjFDNDIyQzI2MTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3QkJFMjQwMDAwNjg2QUJFMjcwMTlCMjgwNDdFMjcwMTlCN0UzNzAxN0I5RDMyN0QwMjJFMDUzNDdBMDUzNDdBMzcwMTdCN0UzNzAxNUI3RDQzMkQ0MkJFNDQwQzJDMzgxMzdBNDcwMTVCNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDBDMkQ5RDI0MTI2OUYwN0UzNDA4MkQ3RDI0MkQ0MzdBNDcwMTVCMTI2OUYwQkUyNTIwNzgwMzAyNDlFRjIyRDIwOTdFMDQwODJEN0EwNzAxNUI3QTA3MDE2Qjc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUIyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDEwMDJFMjcwMUFCMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzOTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjExMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAxMDAyRTY3MDFBQjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDE3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0QjRCNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM5MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTEyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRCNEJEQUI4MDI0QzcyMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNTk4MDAyQzI1OUE1RkQ1RTUwODA2ODA0RDI1MTgwMDJDMjUxMTI0MkQ0MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNEI5Rjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBBMDEyMjIwMkEwM0QyMEEyMjc1MkZBMjEyNzMzNTdFMTQ4MjAwODAwNjIwMkEwM0QyMEEyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0RjlGMzAzMjA2MjBFNjRGRDIwQTIyMzBFNjAyRDI2MjdFMzcwMTdEN0UyNzAxOUQ5RDMyNDAzMTdEMDIyRTA1MzY3QTA1MzY3QTM3MDE3RDdFMzcwMTVEN0Q0MzJENDJCRTQ0MTAyQzM4Njg3QTQ3MDE1RDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjJDNDIyQzI2MjJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3REJFMjQwMDAwNjg2QUJFMjcwMTlEMjgwNDdFMjcwMTlEN0UzNzAxN0Q5RDMyN0QwMjJFMDUzNjdBMDUzNjdBMzcwMTdEN0UzNzAxNUQ3RDQzMkQ0MkJFNDQxMDJDMzgxMzdBNDcwMTVENzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDEwMkQ5RDI0MTI2OUYwN0UzNDBDMkQ3RDI0MkQ0MzdBNDcwMTVEMTI2OUYwQkUyNTIwNzgwMzAyNEQxQzIyRDIwQTdFMDQwQzJEN0EwNzAxNUQ3QTA3MDE2RDc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUQyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDIwMDJFMjcwMUFEMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAyMDAyRTY3MDFBRDlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDI3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0RTc4NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNBMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTIyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRFNzhEQUI4MDI0RjlGMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUE4MDAyQzI1QUE1RkQ1RTUwODA2ODA0RDI1MjgwMDJDMjUyMTI0MkVCMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNEVDQzc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBCMDEyMjIwMkIwM0QyMEIyMjc1MkZBMzEyNzMzNTdFMTQ4MzAwODAwNjIwMkIwM0QyMEIyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1MkNDMzAzMzA2MjBFNjRGRDIwQjIyMzBFNjAyRDI2MzdFMzcwMTdGN0UyNzAxOUY5RDMyNDAzMTdEMDIyRTA1Mzg3QTA1Mzg3QTM3MDE3RjdFMzcwMTVGN0Q0MzJENDJCRTQ0MTQyQzM4Njg3QTQ3MDE1Rjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjNDNDIyQzI2MzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3RkJFMjQwMDAwNjg2QUJFMjcwMTlGMjgwNDdFMjcwMTlGN0UzNzAxN0Y5RDMyN0QwMjJFMDUzODdBMDUzODdBMzcwMTdGN0UzNzAxNUY3RDQzMkQ0MkJFNDQxNDJDMzgxMzdBNDcwMTVGNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDE0MkQ5RDI0MTI2OUYwN0UzNDEwMkQ3RDI0MkQ0MzdBNDcwMTVGMTI2OUYwQkUyNTIwNzgwMzAyNTA0OTIyRDIwQjdFMDQxMDJEN0EwNzAxNUY3QTA3MDE2Rjc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUYyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDMwMDJFMjcwMUFGMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEzMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAzMDAyRTY3MDFBRjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDM3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1MUE1NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNCMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTMyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjUxQTVEQUI4MDI1MkNDMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUI4MDAyQzI1QkE1RkQ1RTUwODA2ODA0RDI1MzgwMDJDMjUzMTI0MzAyMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTFGOTc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBDMDEyMjIwMkMwM0QyMEMyMjc1MkZBNDEyNzMzNTdFMTQ4NDAwODAwNjIwMkMwM0QyMEMyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1NUY5MzAzNDA2MjBFNjRGRDIwQzIyMzBFNjAyRDI2NDdFMzcwMTgxN0UyNzAxQTE5RDMyNDAzMTdEMDIyRTA1M0E3QTA1M0E3QTM3MDE4MTdFMzcwMTYxN0Q0MzJENDJCRTQ0MTgyQzM4Njg3QTQ3MDE2MTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjRDNDIyQzI2NDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4MUJFMjQwMDAwNjg2QUJFMjcwMUExMjgwNDdFMjcwMUExN0UzNzAxODE5RDMyN0QwMjJFMDUzQTdBMDUzQTdBMzcwMTgxN0UzNzAxNjE3RDQzMkQ0MkJFNDQxODJDMzgxMzdBNDcwMTYxNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDE4MkQ5RDI0MTI2OUYwN0UzNDE0MkQ3RDI0MkQ0MzdBNDcwMTYxMTI2OUYwQkUyNTIwNzgwMzAyNTM3NjIyRDIwQzdFMDQxNDJEN0EwNzAxNjE3QTA3MDE3MTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjEyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDQwMDJFMjcwMUIxMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQzBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE0MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA0MDAyRTY3MDFCMTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDQ3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1NEQyNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNDMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTQyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU0RDJEQUI4MDI1NUY5MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUM4MDAyQzI1Q0E1RkQ1RTUwODA2ODA0RDI1NDgwMDJDMjU0MTI0MzE5MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTUyNjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBEMDEyMjIwMkQwM0QyMEQyMjc1MkZBNTEyNzMzNTdFMTQ4NTAwODAwNjIwMkQwM0QyMEQyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1OTI2MzAzNTA2MjBFNjRGRDIwRDIyMzBFNjAyRDI2NTdFMzcwMTgzN0UyNzAxQTM5RDMyNDAzMTdEMDIyRTA1M0M3QTA1M0M3QTM3MDE4MzdFMzcwMTYzN0Q0MzJENDJCRTQ0MUMyQzM4Njg3QTQ3MDE2Mzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjVDNDIyQzI2NTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4M0JFMjQwMDAwNjg2QUJFMjcwMUEzMjgwNDdFMjcwMUEzN0UzNzAxODM5RDMyN0QwMjJFMDUzQzdBMDUzQzdBMzcwMTgzN0UzNzAxNjM3RDQzMkQ0MkJFNDQxQzJDMzgxMzdBNDcwMTYzNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDFDMkQ5RDI0MTI2OUYwN0UzNDE4MkQ3RDI0MkQ0MzdBNDcwMTYzMTI2OUYwQkUyNTIwNzgwMzAyNTZBMzIyRDIwRDdFMDQxODJEN0EwNzAxNjM3QTA3MDE3Mzc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjMyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDUwMDJFMjcwMUIzMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA1MDAyRTY3MDFCMzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDU3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1N0ZGNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNEMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTUyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU3RkZEQUI4MDI1OTI2MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUQ4MDAyQzI1REE1RkQ1RTUwODA2ODA0RDI1NTgwMDJDMjU1MTI0MzMwMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTg1Mzc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBFMDEyMjIwMkUwM0QyMEUyMjc1MkZBNjEyNzMzNTdFMTQ4NjAwODAwNjIwMkUwM0QyMEUyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1QzUzMzAzNjA2MjBFNjRGRDIwRTIyMzBFNjAyRDI2NjdFMzcwMTg1N0UyNzAxQTU5RDMyNDAzMTdEMDIyRTA1M0U3QTA1M0U3QTM3MDE4NTdFMzcwMTY1N0Q0MzJENDJCRTQ0MjAyQzM4Njg3QTQ3MDE2NTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjZDNDIyQzI2NjJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4NUJFMjQwMDAwNjg2QUJFMjcwMUE1MjgwNDdFMjcwMUE1N0UzNzAxODU5RDMyN0QwMjJFMDUzRTdBMDUzRTdBMzcwMTg1N0UzNzAxNjU3RDQzMkQ0MkJFNDQyMDJDMzgxMzdBNDcwMTY1NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDIwMkQ5RDI0MTI2OUYwN0UzNDFDMkQ3RDI0MkQ0MzdBNDcwMTY1MTI2OUYwQkUyNTIwNzgwMzAyNTlEMDIyRDIwRTdFMDQxQzJEN0EwNzAxNjU3QTA3MDE3NTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjUyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDYwMDJFMjcwMUI1MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE2MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA2MDAyRTY3MDFCNTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDY3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1QjJDNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNFMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTYyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjVCMkNEQUI4MDI1QzUzMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUU4MDAyQzI1RUE1RkQ1RTUwODA2ODA0RDI1NjgwMDJDMjU2MTI0MzQ3MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNUI4MDc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBGMDEyMjIwMkYwM0QyMEYyMjc1MkZBNzEyNzMzNTdFMTQ4NzAwODAwNjIwMkYwM0QyMEYyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1RjgwMzAzNzA2MjBFNjRGRDIwRjIyMzBFNjAyRDI2NzdFMzcwMTg3N0UyNzAxQTc5RDMyNDAzMTdEMDIyRTA1NDA3QTA1NDA3QTM3MDE4NzdFMzcwMTY3N0Q0MzJENDJCRTQ0MjQyQzM4Njg3QTQ3MDE2Nzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjdDNDIyQzI2NzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4N0JFMjQwMDAwNjg2QUJFMjcwMUE3MjgwNDdFMjcwMUE3N0UzNzAxODc5RDMyN0QwMjJFMDU0MDdBMDU0MDdBMzcwMTg3N0UzNzAxNjc3RDQzMkQ0MkJFNDQyNDJDMzgxMzdBNDcwMTY3NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDI0MkQ5RDI0MTI2OUYwN0UzNDIwMkQ3RDI0MkQ0MzdBNDcwMTY3MTI2OUYwQkUyNTIwNzgwMzAyNUNGRDIyRDIwRjdFMDQyMDJEN0EwNzAxNjc3QTA3MDE3Nzc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjcyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDcwMDJFMjcwMUI3MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE3MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA3MDAyRTY3MDFCNzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDc3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1RTU5NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNGMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTcyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjVFNTlEQUI4MDI1RjgwMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUY4MDAyQzI1RkE1RkQ1RTUwODA2ODA0RDI1NzgwMDJDMjU3MTI0MzVFMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNUVBRDc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjI3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNTg4MDAyQzI1OEE1RkQ1RTUwODA2ODA0RDI1MDgwMDJDMjUwMDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjU5ODAwMkMyNTlBNUZENUU1MDgwNjgwNEQyNTE4MDAyQzI1MTAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1QTgwMDJDMjVBQTVGRDVFNTA4MDY4MDREMjUyODAwMkMyNTIwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUI4MDAyQzI1QkE1RkQ1RTUwODA2ODA0RDI1MzgwMDJDMjUzMDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVDODAwMkMyNUNBNUZENUU1MDgwNjgwNEQyNTQ4MDAyQzI1NDAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1RDgwMDJDMjVEQTVGRDVFNTA4MDY4MDREMjU1ODAwMkMyNTUwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUU4MDAyQzI1RUE1RkQ1RTUwODA2ODA0RDI1NjgwMDJDMjU2MDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVGODAwMkMyNUZBNUZENUU1MDgwNjgwNEQyNTc4MDAyQzI1NzAyNjBGRjU0RjBDNEE1RkZDNEE1NEY3NTJGOTAxMjczMzVGNTJGMTI3MzM1MjJDQTE5NUUyMDA3NENBMjdFNzQyQzJEQ0E3OTdBNzlBMDBCNzQ3QTc5QjAwQjc0REE3OTdFMzAwMjdFNjQwMDAyMDI2MTVFQ0ExOTVFMjAwNzRDQTI3RTc0MkMyRENBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NDdBNzk2MDBCNzREQTc5N0UzMDAzN0U2NDAwMDMwMjYxNUVEMjA0N0UyNzAxQ0IyRDI2QkUyNDA0MDAzODJFN0UwNzAxQzk3RTQ0MjgyRDdFNzlBMDdBMDlBMDBCMDQwQjc0QkQwNDY4MjNBNURCRUY3QTI3MDFDQjdFMjUzMDJEMjY3QTI1MzA3QTA3MDFDOURBMTlDMkQ3MjI3NTJGOUExMjczMzVEQTE5RDJENzIyN0UwNDI0MkQ4MEQ3NDhGMTQ2NjU0NzVGNDkyQTQ1MkE0NTJBNDg1NjQ1MkE0OTZFNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ5NzU0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0QzFFNDk5MjRBOEM0QzU3NDUyQTQ1MkE0QjgzNDUyQTRDOUI0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNENBMjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTRGNEI0Q0JGNERCOTRGODQ0NTJBNDUyQTRFQjA0NTJBNEZDODQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0RkNGNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTI3ODRGRUM1MEU2NTJCMTQ1MkE0NTJBNTFERDQ1MkE1MkY1NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTUyRkM0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1NUE1NTMxOTU0MTM1NURFNDUyQTQ1MkE1NTBBNDUyQTU2MjI0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTYyOTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTU4RDI1NjQ2NTc0MDU5MEI0NTJBNDUyQTU4Mzc0NTJBNTk0RjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1OTU2NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNUJGRjU5NzM1QTZENUMzODQ1MkE0NTJBNUI2NDQ1MkE1QzdDNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTVDODM0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1RjJDNUNBMDVEOUE1RjY1NDUyQTQ1MkE1RTkxNDUyQTVGQTk0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNUZCMDQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQUNBQjg3NTJGMDIxMjczMzU3RUIzOTEwMzIwRTUyMDMwRTAwNTEyNkIwNTgwMzAzMEUxMDUxMjY0ODY4MDI4MzBFMjA1MTI2M0Y1ODAyMDMwRTMxRDEyNjU2MTgwMTg3RUIzOTEwNDMwRTEwMzAyNjc1RjMwRTYwNTEyNkM2QTgwMDYyMEUyMDMwMjAwODBEQUI4MzI3NTJGMTAxMjczMzVDQTBCQ0EzOUNBNTk3NDQwN0FCMzkxMDA3RUIzOTExQTZDQUFCRUIwNDAyODBBMTI2NDI0REE1OURBMzlEQTBCMjI3NDIwN0FCMzkxMTQ4MEYxN0UzNzAxQzUyRDM1QkUzNDA0MDAzODJGN0EzNzAxQzU3RTM3MDFDMzdENDMyRDQ1QkU0NDJDMkMzODI1N0E0NzAxQzM3NTJGMTExMjczMzU3QUIxMkYxMjczMzUxMjY3OUY3NDIwN0FCMzkxMTQxMjY2MzAyMjc1MkYxNjEyNzMzNTgwRjQ3NTJGMTIxMjczMzU3QUIxMkYxMjczMzU5RTQ0MkMyRDlENTQxMjY3OUY3RTM0MjgyRDdENTQyRDQzODBCQzc1MkYxODEyNzMzNUNBMDlDQTM5Q0EyQjc0MjA3QUIzOTEwMDdFNjM5MTFBNzQxMDdBQjM5MTE0N0VCMDgwOUNCNjYwMzg2Q0FBN0UzNzAxQ0I5RDM1NDAzNzdBMzcwMUNCN0UzNzAxQzc3RDQzMkQ0NUJFNDQyODJDMzgzQjdBNDcwMUM3N0Q0NTEyNjhENDdFQjM5MTFFMjBFNTEzNzUyRjE5MTI3MzM1N0E5MTJGMTI3MzM1REEyQkRBMzlEQTA5MjI4MDM0MkQ1MzZEMzM2MDAyODBDMTdFMDQyNDJEN0EwNzAxQzk3QTA3MDFDNzgwRTFDQTU5OUU0NDI4MkQ5RDU0MTI2OEQ0N0UzNDI0MkQ3RDU0MkQ0MzdBNDcwMUM3MTI2OEQ0REE0OTgwQjA3RTBGMkMzRTBCMEM3QTBGMkMzRTc0MjA3QUIzOTExRTc0NjA3QUIzOTExQzc0MDI3QUIzOTExMjgwQTU3RTJGMkM1RTBCMkM3QTJGMkM1RTc0MjA3QUIzOTExRTc0NjA3QUIzOTExQzc0MDI3QUIzOTExMjgwMUZEQTJCREExQkRBMEIyMjc1MkYyODEyNzMzNUNBMEJDQTFCQ0EyQjc0NjA3QUIzOTEwMDc0MTA3QUIzOTExNDdFQjM5MTFBNzBEQjdFMEQzMDdFMUQzNDdFMkQzODdFM0QzQzdFODU0MDdEOTA0RDkxNEQ5MjREOTM0RDk0NEQ5NTREOTY0RDk3NEQ5ODY4Qjg3QTEzOTExNzdBMDM5MTE3N0EzMzkxMTc3QTIzOTExNzdBNTM5MTE3N0E0MzkxMTc3QTczOTExNzdBNjM5MTE3N0E5MzkxMTc3QTgzOTExNzMwNzMyMjdBQjM5MTE3N0FBMzkxMTc3QUQzOTExNzdBQzM5MTE3N0FGMzkxMTc3QUUzOTExNzdENzg3QUYzOTExNzdBRTM5MTE3N0VCMzkxMUUzMEU1MDMwMjY1M0M3NTJGMjkxMjczMzUyMDczMDg3NTJGMEExMjczMzU4MDA2NzUyRjEyMTI3MzM1NzQ4MDdBQjM5MTFFNkQwMDdEMTA3QTBEMzA3QTBEMzQ3QTBEMzg3QTBEM0M3QTA1NDBEQTJCREExQkRBMEIyMjdFMzcwMUM1NEQzMzY4M0I3RTA3MDFDMTdFNTQyQzJEOUQ1MEJEMzU0MDAyN0QzNUNBMzk3RTY1NEI5OTY0REEzOTdFMDcwMUM1OUQwMzdBMDcwMUM1MkUzNzAxQzE3QTM3MDFDMUJFMzQyQzJDMjhDNzdFMzQyODJEN0EzNzAxQzE4MEJEMjI3NTJGNTMxMjczMzU3RTE1NEQ4MDExNzUyRjUxMTI3MzM1MEIwODEwMEIwNTlFMzQwMDAyMjg0RDdDQjIyMEU3Mjc1NDA3MjMwQTJCNDkyMjM5MUU3Q0IyNTQ3ODAzMDMwMzdDMkI5RDEzNDAxQTY4MTI3QTE1NEQ3QTI1NEY3RTY0NjcwOTdBNjU0Qjg5MjQwMjY3MTc3RTY0NjY3RjgwRjIyRDEzOUQzMUNBMzk3RDMxMkQxMENBMTlDQTI5OTkyNERBMjlEQTA5REEzOTgwQTI3QTE1NEQ3RTY0NjZGNTREMzM3ODA5N0NCMjIwRTcyQTdFNjQ2Njc0N0E2NTRCMjI3NTJGNTIxMjczMzU3RTIxNEQ3RTA5MzAwQjA0MUIzNDc4ODk4MEQ0NzUyRjU0MTI3MzM1N0UxNTREN0UyNTRGODA5MDVFMjAwNzU0Nzg3RTQ0Njc3RDMwRTYxNjREMzM2ODI2MUIzNDdFMDk0MDBCMDQ3RTQ0MzRGQTIwRTMwNDdFNDQ2Nzg1Q0EwOUNBMzk5OTQ0REEzOURBMDk3RTY0NjY3RjREMzM2OEE2ODk2NDdBMTU0REY1NEY3RTY0Njc1ODgwOTk3RTE1NERFNTRGODBDNEMwRDBDMEQxQzBFMENBMTk3NTJGRkUxMjczMzU3RTE0MDA1MzAyNDA1MkRBMTlEMEUwRDBEMUQwRDAzMjAzQTVDQjE5QjE4MDAwMjIyMjdFMjQwMDAwN0ZFMTdFQTAwMkE0N0UwNDY4QjE5RDA1N0VCMDI4N0FCMzk1MDA4OTA0Q0EyOUI0ODBFMjdFMjQwMDAwN0ZFMTdFMDAyODdBMDM5NTAwRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTM3RTAwMDA3QTAzOTUwMERBMjkyMjdFMjQwMDAwN0ZFMTdFQTAwMkE0N0UwNDY5RTY5RDA1N0VCMDM4N0FCMzk1MDA4OTA0Q0EyOUI0ODBFMjdFMjQwMDAwN0ZFMTdFMDAzODdBMDM5NTAwRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTM3RTAwMDA3QTAzOTUwMERBMjkyMkNBMjlDQTE5Q0E1ODdFMjQwMDAwN0ZFMURBNTg3RTU0MDIyMDlDQjVBNDdFNTAzMDVFMjAwNzJDNTI3QTUzOTUwMDJFNTQ2QTE3ODk1NEUwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzN0UwMDAwN0EwMzk1MDBEQTE5REEyOTIyQ0ExOUNBNTg3RTI0MDAwMDdGRTFEQTU4N0U1NDAyMzg5Q0I1QTQ3RTUwMjA1RTIwMDcyQzUyN0E1Mzk1MDAyRTU0NkE4ODg5NTRFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBMzdFMDAwMDdBMDM5NTAwREExOTIyMDI2QkE4Q0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzQwMDdBQjM5MTAwN0VCMzJDN0ZCNDAwMDI4MDFDQjQwMTE5N0VCMzkxMTQ1NDE0NjgwNTEyNkI2QzgwMjM3RUIzOTExNDMwRTUxQzEyNkNBQTgwMTc3RUIzOTExNDMwRTUwNTEyNkNBQTgwMEI3RUIzOTExNDU0MTQ2ODAzMTI2QjZDREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjIyMEU0MTk3NTJGMEExMjczMzU3RUIzMkM3RTcwMEE3RUIzMkM3RkI0MDExRjAyNkMwNDAyNzFGMjc1MkYwQjEyNzMzNTc0MTQ3QUIzOTExNDdFQjMyQzdGQjQwMjBDMTI2QkI0MDI2QkE4NzQwNDdBQjM5MTE0MjI3RTAwMDA3QTAzMkM3RjdBMDMyQzgwMjI3RUIzMkM3NjU0NjA2MDA1QjQ0MDFFODAxQzdFQjMyQzc3QjQwNTE1NzUyRjcxMTI3MzM1N0VCMzJDNzk3RUEwMDE3QUEzOTEwNjdBQjM5MTA3MjI3NDAwN0FCMzkxMDA3NDEwN0FCMzkxMTIyMkJFNTcyQzdDMjgwNDdFNTcyQzdDN0EwRjJDODI3QTU3MkM4Njc0MTA3QUIzOTExMjIyNzQwMDdBQjM5MTAwN0VCMzkxMUE3MDUzN0VCMzkxMTQyMEU0NEM3RUVGMkM4MjdFRjcyQzg2N0UwNzJDODY0RDAwNjgyMTdFMDAwMEUwN0FCMzkxMTdBM0E1MDgxQkY0NjgwNkE1QjgxMEYwODAxOTdFQjAwMDdBQjMyQzdGQkUwMDEwNjgwRDdFQjAwMDdBQjMyQzdGNzQ4MDdBQjM5MTFFN0FFRjJDODI3QUY3MkM4Njc1MkYwNjEyNzMzNTc0MDQ3QUIzOTExNDIyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzUyRjAzMTI3MzM1NzQwMDdBQjMyQzdFNzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyMTI2RDE5REFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjI3NTJGMDMxMjczMzU3RUIzMkM4MEI0MDIxMTc0MDA3QUIzMkM4MDdBQjMyQzdGNzQyMDdBQjM5MTE0MjJCNDAxNDY3RUIzOTEwNDIwRTY0MjdFMjM5MTFBN0MzMjdFMTMyQzgxMkMyMTdBMjMyQzgxN0UwMDAwMkUwNDJDODg3RUIzOTExNjdBMDlCMDBCMDRBNURCRjQ3NDIwN0FCMzkxMTQ3NTJGNzAxMjczMzU3RUIzMkM4MTdFQTMyQzdEQkNBQjc4MDMxMjZEQjkyMjAyNzFGMkRBNTkwMjZDN0M3NEUwN0FCMzkxMDA3RTAzOTExMDdFMTM5MTExN0UzMzkxMTI3RTIzOTExMzdFNTM5MTE0N0U0MzkxMTU3RTczOTExNjdFNjM5MTE3N0EwRjJDNzY3QTFGMkM3QTc1MkYwNDEyNzMzNTdBMDEyRjEyNzMzNTdBMTEyRjEyNzMzNTdBMjEyRjEyNzMzNTdBMzEyRjEyNzMzNTdBNDEyRjEyNzMzNTdBNTEyRjEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTc0MDA3QUIzOTEwMDc0NDA3QUIzOTEwNDEyNkQ4RDIyNkQwMDdFMTQwMTAyN0EwNzJDODY3QTAzMkM4MTdFQjMyQzc2MjBFNzBGN0EyMzJDODA3QTMzMkM3RkJFMDcyQzdDNjgwOTIyN0EzMzJDODA3QTIzMkM3RjdFQjMyQzc2NTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyNzFGMjU0M0VGNUYwMDM1NDFGQzMyNUYwOTA2REU1NzU4NEZGNzMwMjZGQTAwMjZFMkQwMjcwMzkwMjcwNTQwMjZGMzcwMjZFQzIwMjcwODUwMjcwODUwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwOEUwMjcxNjAwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMkM3N0I0MDYyQTdFQjMyQzc4NjA3OTdDMEI3RTEzMkM3OTdFMTcyQzdBNzUyRjcyMTI3MzM1N0EwMTJGMTI3MzM1N0ExMTJGMTI3MzM1MTI3MjM3NDA1ODAyNkJFQkI0MDgxQzc1MkY3NDEyNzMzNTdFQjMzRkYxN0UwODJDODg3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDI2QkVCQjQwMDMzNzUyRjc1MTI3MzM1N0UwODJDODg3QTBDMDAwMENBMEI3RUIzM0ZGMjMwRTAwNzc0MDI3QTBCQjA4MDA1NzQwMDdBMEJCMDBCMTQ3NDAwN0EwQkIwN0U1NDAwMDJEQTBCMDI2QkVCMDI3MUYyNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDAwNUY3NTJGNzYxMjczMzU3RUIzMkM3QjU0MEZCNDAyMDU3RUIwNjA4MDE3QjQwMDA1N0VCMDAwODAwRjdFQjMyQzdCMjBFNzA1N0VCMDQwODAwMzdFQjAyMDdBQjM5MTAwN0VCMzkxMTEzMEUwMDQ3NDAxODAwMjc0MDA3RTA4MkM4ODdBMEMwMDAwQ0EwQjdBMEJCMDBCMTQ3NDAwN0EwQkIwNzQwMDdBQjM5MTAwN0U1NDAwMDJEQTBCMDI2QkVCMDI3MUYyN0VCMzJDN0I1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMkM3QjIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjMyQzc5QjQwMDI2N0VCMzJDNzdCNDAxMEU3NTJGNzcxMjczMzU3NDAxN0FCMzkxMTI4MDFCQjQwMzBFNzUyRjc4MTI3MzM1NzQwMTdBQjM5MTExODAwQTc0MDA3QUIzOTEwMDEyNzFGMjIyNzQwMDdBQjM5MTAwMDI2QkRFN0VCMzJDNzdCNDA5MUY3NTJGNzkxMjczMzU3RUIzMkM3OUJFQjMzRkYxNjgwRENBQjgxMjQzNzlEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MkY3QTEyNzMzNTgwNjJCNDAzMTk3NTJGN0IxMjczMzU3RUIzMkM3OUI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MkY3QzEyNzMzNTdFQjMyQzc5QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzJDNzg2MDI0N0MwQjdFMTMyQzc5N0UxNzJDN0E3NTJGNzMxMjczMzU3QTAxMkYxMjczMzU3QTExMkYxMjczMzUxMjcyNzE0MDAzMDI2QkRFMDI3MUYyN0VCMzJDNzdCNDBCRjY3NTJGN0QxMjczMzU3RUIzMkM3OTdFQTMyQzdCNENBQjc4RTQ4MERGNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDBBQ0Y3NTJGN0UxMjczMzU3RUIzMkM3OTcwQzM3RTA4MkM4ODdBMEMwMDAwN0EwQkIwN0U1NDAwMDEwMjZCRUIwMjcxRjIwMjcxRjIwMjcxRjI3RUIzMkM3N0I0MDQyMDc1MkZDMzEyNzMzNTdFMDQwMDAxN0UxNzJDNzg3RTE4MkM4ODdBMUMwMDAwN0U0NzJDN0MxMjczNDEwMjcxNUFCNDA2NDI3NTJGQzExMjczMzU3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcyQzc4N0U3ODJDODg3QTdDMDAwMDdFNzcyQzdDNzUyRkMxMTI3MzM1QzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyNzM3QTdFNDMyQzM1N0E0Mzk0MDBEMEE4NDA2NTgwNjBCNDAwMjRDMkFGN0VCMDAxN0FCMzk0MDA3QUIzMkMzNTEyNkJERUU0OERFRjhERUY4REVGRDVFMEY3QzBEMUNBMDJGRkNBMDYwMDAwMzJCNDA5MjA3NDAzN0FCMzkxMDY3RTIzOTEwNzdFNTcyQzc4NEQ1NTY4MDU0RTIwMDI4MDAzNUUyMEZEN0EyMzkxMDc4MDE2QjQwNzE2QzJBRjdFMDcyQzdBN0UxNzJDNzhDMEQxQ0ExOENBMzhDQTI4MzIwMjZCREUwMjcxRjI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMkM3N0I0MDMxNTc1MkZDMjEyNzMzNTdFMDQwMDAxN0UxNzJDNzg3RTU3MkM3QzAyNkJFQkI0MDU0MTc1MkZDMDEyNzMzNUMwQThDMkFGN0U0MDAxN0E0Mzk0MDA3RTA4MkM4ODdBMEMwMDAwN0UyNDAwRkU3RTM3MkM3ODdFNDcyQzdDMTI3MzQxN0U0MzJDMzU3QTQzOTQwMEQwQTg3RTA4MkM4ODdBMEMwMDAwN0U1NzJDN0MwMjZCRUJCNDAxMjA3RTAwMDA3RTEwMDE3NTJGNzIxMjczMzU3QTAxMkYxMjczMzU3QTExMkYxMjczMzUxMjcyMzc0MDAzMDI2QkVCMDI3MUYyNzUyRjA3MTI3MzM1N0VCMDAyN0FCMzkwMDA3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMTU3NDAxN0FCMzkxMTE3RUIzOTExNTU0NjBCRUIwNDA2ODA4NzQyMDdBQjM5MTE1ODBFRDc0MDE3QUIzOTExMjc0MDQ3QUIzOTExNDc0RkY3QUIzMkM3RTIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyNzJCRTQwMUY3RTA4MkM4ODdBMEMwMDAwQ0EwQkNBNDkxMjczNDFEQTU5REEwQjdFNDMyQzM1N0E0Mzk0MDBEMEE4QzMyMjdFNDMyQzM1N0E0Mzk0MDBEMEE4MjJDMEE4QzJBRjdFNDAwMTdBNDM5NDAwMTI3MkJFNDAzMTdFNTgwMDAwN0E1QzAwRkU3RjYxN0U3ODJDODg3QTdDMDAwMDdFNzcyQzdDQkQ3NDc4MTc3NTJGQzExMjczMzUxMjczN0E0MDBDN0U0MzJDMzU3QTQzOTQwMEQwQThDMzIyN0U0MzJDMzU3QTQzOTQwMEQwQThEMzIyN0UyNDAwRkU3RTM0N0ZDQTBCMUE1MEM1RjA3RDYyN0Q3NTdEODc3RTM0N0ZDMjdFMUJCMDdFMzQ3RjAzQjQwMTA0N0UzNDdGQ0M3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMjc0Cis6MDAwNDdGQzYwMDAyMDAwMzAwQjIKKzowMTQ4NzMzNTAwQ0EwODdFMDEyRjdBMDMzRkYwREEwODIyN0UxQkMwN0EwQkMwMEIxNDBCMzQxQjQ0NzhGMjIyN0Y2RjdGRjAxQkZDN0M1NDdEMzI4MDA4Q0ExQkNBMUJDQTFCQ0ExQjlFNDQwMDEwNTBGMjJFNDQwMDEwNjgwNkNBNDgxQjQ0NzhGQTdGRjY4OUU0Q0E2QjVFRDQwMDNGNjgyMDdFODQwMDQwOUQ4RERBNkJCRDg3MzgxNkNBNzk3RDc4MTI3M0E0REE3OTQwMDg5RDc4NjgwMjgwMDVDMkQ3MjJEQTZCN0VDMDAzN0VEMDAwN0FEMzkwMDA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJGNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTkwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDY2Q0RDN0FEMzkwMDA0RDc3Nzg5MEMyRDcyMkQyRDcyMjAwMDQwMDA0MDAwMDA2MDQwMjA0MDAwMjAxMDQwMTAyMDAwMDAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAwMDgxMDAyMTAwNDAyMDgwMDAxMDEwODdFMTg3RkJEN0ExQzAwRkUwQjFBMDA1RTEwMUZCRTEwMTQzODFBMEE1MTIzN0UxODc0MjQ3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkVDQgorOjAwMDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24zLmJpbi5paGV4IGIvZmlybXdhcmUvZWRnZXBvcnQvZG93bjMuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkzNWU1MgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24zLmJpbi5paGV4CkBAIC0wLDAgKzEsODE1IEBACis6MTAwMDAwMDAwNDUwMDAwMDg3MzI5QTAyMjdCRjAyMjFCMjAwMDAwMDhDCis6MTAwMDEwMDAwMDAwMDIwMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAwMDIwMDAwMDAwMDIwMTFBODUzRjhDODU0MDhBQzBFMEMwRDBDMDI0Cis6MTAwMDMwMDBGMEMwODJDMDgzQzAwMEMwMDFDMDAyQzAwM0MwMDRDMEMxCis6MTAwMDQwMDAwNUMwMDZDMDA3RTUzRTI0MDhGOEU2NjAyQkU1M0UyNDFGCis6MTAwMDUwMDAxMEY4QTY4MUU1M0U3NUYwMjFBNDI0MDVGNTgyRTQzNDZDCis6MTAwMDYwMDBGOEY1ODM3ODhDRTU4MTA0QzM5OEY5OTQyMjQwMDMwMjYzCis6MTAwMDcwMDAxMURDRTZGMDA4QTNEOUZBNzQwODI1M0VGODA1M0UwODFECis6MTAwMDgwMDBFNjU0ODA3MDBDRTUzRUI0MDdGMzc4MDg3NTNFMDA4MEI2Cis6MTAwMDkwMDBFRkU1M0UyNDEwRjg4NjgxRTUzRTc1RjAyMUE0MjQwNUE1Cis6MTAwMEEwMDBGNTgyRTQzNEY4RjU4Mzc4OENFNTgxMDRDMzk4RjlFMEFGCis6MTAwMEIwMDBGNjA4QTNEOUZBRDAwN0QwMDZEMDA1RDAwNEQwMDNEMEQzCis6MTAwMEMwMDAwMkQwMDFEMDAwRDA4M0QwODJEMEYwRDBEMEQwRTAzMkE2Cis6MTAwMEQwMDAzMDAxNEQzMEI0NDgxMDAwNDU5MEZGMDhFMDU0MjBGODNFCis6MTAwMEUwMDA5MEZGNDhFMDU0MjBGOTkwRkYxMEUwNTQyMEZBOTBGRjcwCis6MTAwMEYwMDA1MEUwNTQyMEZCNzQwMEY1ODI3NEY4RjU4M0UwQzhGMEZBCis6MTAwMTAwMDA2ODYwMDI3RTA0QTNFMEM5RjA2OTYwMDI3RTA0QTNFMDk3Cis6MTAwMTEwMDBDQUYwNkE2MDAyN0UwNEEzRTBDQkYwNkI2MDAyN0UwNDRBCis6MTAwMTIwMDAyMkMwRTBDMEQwQzBGMEMwODJDMDgzQzAwMEMwMDFDMDA3Cis6MTAwMTMwMDAwMkMwMDNDMDA0QzAwNUMwMDZDMDA3NzQxNUY1ODI3NDcwCis6MTAwMTQwMDBGOUY1ODNFMDYwMjM3NDY2RjU4Mjc0RjlGNTgzRTAxNEIxCis6MTAwMTUwMDBGMDcwMTY3NEZGRjA3NDFDRjU4Mjc0RjlGNTgzRTA2MDlBCis6MTAwMTYwMDAwNDE0RjA3MDA0QzI5MDgwRkM5MEZGOTM3NDgxRjBFNTU5Cis6MTAwMTcwMDA4MTk0RkQ0MDAzMDIxMURDODU0MThEODU0MjhCNzRCMjcwCis6MTAwMTgwMDBGNTgyNzRGQUY1ODNFMEI0MDExQkMwODJDMDgzOTBGRjRFCis6MTAwMTkwMDA0QUUwMzBFNzJDOTBGRjRFRTAzMEU3MjVEMDgzRDA4MjU0Cis6MTAwMUEwMDA3NDAyRjA4MDIwQjQwMjFEQzA4MkMwODM5MEZGN0FFMDA4Cis6MTAwMUIwMDAzMEU3MDUxMjI4NEU4MDA5RDA4M0QwODI3NDAzRjA4MDg2Cis6MTAwMUMwMDAwNEQwODNEMDgyQTNFMEI0MDExQkMwODJDMDgzOTBGRjFGCis6MTAwMUQwMDA1MkUwMzBFNzJDOTBGRjU2RTAzMEU3MjVEMDgzRDA4MjA0Cis6MTAwMUUwMDA3NDAyRjA4MDI1QjQwMjIyQzA4MkMwODM5MEZGN0FFMEJFCis6MTAwMUYwMDAzMEU3MDUxMjI4NEU4MDA5RDA4M0QwODI3NDAzRjA4MDQ2Cis6MTAwMjAwMDAwOUQwODNEMDgyODAwMzAyMDI5MDc0MTZGNTgyNzRGOUJCCis6MTAwMjEwMDBGNTgzRTAyMDA0RjEyMDAyMDMzMDAxRUI3NDE5RjU4MjJDCis6MTAwMjIwMDA3NEY5RjU4M0UwMTRGQ0YwQTNFMEZEQTNFMEZFNjQwNEEwCis6MTAwMjMwMDA3MDBGRUM3MDYyN0UwMTEyMDBDOTdDMEE3REZBMDIwMjI2Cis6MTAwMjQwMDA2MTEyMDBDOUVFNjQwNDYwMURFQzcwNEI3QzBBRUQxNDcxCis6MTAwMjUwMDBGRDcwMTVFRTY0MDI2MDA3N0UwMjdEMzIwMjAyNjE3RTRGCis6MTAwMjYwMDAwMTdERkEwMjAyNjE3QzBBNzQxOUY1ODI3NEY5RjU4MzQyCis6MTAwMjcwMDBFQ0YwQTNFREYwQTNFRUYwMTQ2MDE4MjBFMTBGMjAwMUU0Cis6MTAwMjgwMDAwNkQyQjFDMkIwODAxMEMyQjFEMkIwODAwQUMyQjFDMjJGCis6MTAwMjkwMDBCMDgwMDREMkIwRDJCMTc4MTk3OTA5N0EwN0U3NzAwNDM2Cis6MTAwMkEwMDBBNjAwODAwQkU2NjAwODE2RTY3MDA0RTc0NDgwRjcwOEI1Cis6MTAwMkIwMDAwOURBRUFFNTNENjAxMzE0RjUzRDcwMEVFNTNFMjQwOEM5Cis6MTAwMkMwMDBGODc2MDAxMjExNTdEMjhDRDI4REQwMDdEMDA2RDAwNTA3Cis6MTAwMkQwMDBEMDA0RDAwM0QwMDJEMDAxRDAwMEQwODNEMDgyRDBGMDlGCis6MTAwMkUwMDBEMEQwRDBFMDMyOTBGRjA0RTA5MEZBQjlGMDkwRkYwNjUxCis6MTAwMkYwMDBFMEZDQTNFMEZBRUNGRkVBRkVFRkMzOTQwOEVFOTQwMTAxCis6MTAwMzAwMDA1MDAyODAwNDdFMDE3RjA4OEUzQjhGM0M5MEZGMDJFMDBDCis6MTAwMzEwMDBGQ0EzRTBGQUVDRkZFQTkwRkFCREYwRUZBM0YwMTIxQ0E4Cis6MTAwMzIwMDBFMEU0RjU0REU1NERDMzk0MDI1MDBGMTIxQ0MxRTQxMkY4Cis6MTAwMzMwMDAxQUU4MDU0RDA0MTIxQ0IyODBFQTEyMUNFMDkwRkYwMDdFCis6MTAwMzQwMDBFMEZGNTQ2MDI0QzA3MDAzMDIwOEYzMjQ0MDYwMDMwMkZECis6MTAwMzUwMDAwRjZFOTBGQUI5RTBGRTU0MEZGNTRERUUzMEU3MDNEMzdGCis6MTAwMzYwMDA4MDAxQzM5MjBBOTBGRjAxRTAxMjFCRkMwMzg0MDAwNDg5Cis6MTAwMzcwMDA1NzAxMDU2QTAzMDYzMTA1MDY3MzA2MDdENTA4MDgxREVGCis6MTAwMzgwMDAwOTA4NzkwQTA4QjkwQjAwMDAwRjZFRTUzNTIwRTcwMzZDCis6MTAwMzkwMDAwMjBGNkU5MEZBQkRFMDcwMDJBM0UwNjAwMzAyMEY2RUUwCis6MTAwM0EwMDBFNTNDNjQwMjQ1M0I2MDAzMDIwRjZFRUY1NDFGMTQ2MDhFCis6MTAwM0IwMDAyQjE0NjA0NzI0MDI2MDAzMDIwRjZFRUU2MDAzMDIwRkVECis6MTAwM0MwMDA2RTEyMUNDMTc0MDExMjFBRTg3ODY3RTYzMEUwMDgxMjU4Cis6MTAwM0QwMDAxQ0MxNzQwMjEyMUFFODdGMDIwMjMyNkVFNTM1MjBFMTc4Cis6MTAwM0UwMDAwOTkwRkFCOUUwNjAwMzAyMEY2RTkwRkFCOUUwRDM5NDc1Cis6MTAwM0YwMDAwMTQwMDMwMjBGNkU3RjAyMDIzMjZFRTUzNTIwRTEwRUVFCis6MTAwNDAwMDA5MEZBQjlFMEZGNjAwNzY0ODA2MDAzMDIwRjZFMTIwRjdDCis6MTAwNDEwMDBGQTQwMDMwMjBGNkVFNTRENzAxOTMwMEEwQjkwRkY4MDExCis6MTAwNDIwMDAxMjFDQkUxMjFBRTg4MDI0OTBGRjgyMTIxQ0JFMTIxQUZGCis6MTAwNDMwMDBFODgwMTkxNTREMzAwQTBCMTIxRDU1MTIxQ0JDMTIxQUZBCis6MTAwNDQwMDBFODgwMDkxMjFENjMxMjFDQkMxMjFBRTgxMjFDQzExMkFBCis6MTAwNDUwMDAxQUEyNjAwNTc0MDExMjFBRTg3RjAyMDIzMjZFRTUzNUI1Cis6MTAwNDYwMDAzMEU3MDMwMjBGNkVFNTNDNDUzQjYwMDMwMjBGNkUxMjVFCis6MTAwNDcwMDAxRDc5MTQ2MDJEMTQ2MDU5MjQwMjYwMDMwMjBGNkU5MEUwCis6MTAwNDgwMDBGQUJERTA3MDA0QTNFMDY0MDE2MDAzMDIwRjZFOTBGQTBECis6MTAwNDkwMDBCOUUwNjAwMzAyMEY2RTc4NjdFNjU0RkVGNkU0RkYwMkVGCis6MTAwNEEwMDAzMjZFRTUzNTIwRTEwNjIwRTAwMzAyMEY2RUU1MzUzMEJGCis6MTAwNEIwMDBFMDA5OTBGQUI5RTA2MDAzMDIwRjZFRTUzNTMwRTEwQzE3Cis6MTAwNEMwMDA5MEZBQjlFMEQzOTQwMTQwMDMwMjBGNkVFNEZGMDIzMkM4Cis6MTAwNEQwMDA2RTkwRkFCREUwNzAwMkEzRTA2MDAzMDIwRjZFMTIwRjhGCis6MTAwNEUwMDBGQTQwMDMwMjBGNkVFNTM1MjBFMTA2MjBFMDAzMDIwRjFCCis6MTAwNEYwMDA2RUU1MzUzMEUwMDdFNTRENjAwMzAyMEY2RUU1NEQ3MEE3Cis6MTAwNTAwMDAwRjkwRkY4MkUwNTRGN0YwOTBGRjgwRTA1NEY3RjAyMjY0Cis6MTAwNTEwMDBFNTREMjRGRTYwMjAyNEZCNjAzNDI0MDY3MDM1MzAwQTRCCis6MTAwNTIwMDAwQ0EyMEFFNDMzRkQ3RjAzMTIyRTc5ODAyNkU0RkQ3RkJFCis6MTAwNTMwMDAwMzEyMkU3OTgwMUQzMDBBMENBMjBBRTQzM0ZEN0YwNEQ5Cis6MTAwNTQwMDAxMjJFNzk4MDBFRTRGRDdGMDQxMjJFNzk4MDA1N0Y4N0JDCis6MTAwNTUwMDAxMjMxRUYxNTREMzAwQTBCMTIxRDU1RjU4M0UwNTRGNzlCCis6MTAwNTYwMDBGMDgwMDkxMjFENjNGNTgzRTA1NEY3RjBFNEZGMDIzMkQ2Cis6MTAwNTcwMDA2RUU1MzUzMEU3MDMwMjBGNkVFNTNDNDUzQjYwMDMwMjU0Cis6MTAwNTgwMDAwRjZFMTIxRDc5MTQ2MDJEMTQ2MDU1MjQwMjYwMDMwMjUxCis6MTAwNTkwMDAwRjZFOTBGQUJERTA3MDA0QTNFMDY0MDE2MDAzMDIwRkU3Cis6MTAwNUEwMDA2RTkwRkFCOUUwNjAwMzAyMEY2RTc4NjdFNjQ0MDFGNkQ4Cis6MTAwNUIwMDBFNEZGMDIzMjZFRTUzNTIwRTEwNjIwRTAwMzAyMEY2RTEzCis6MTAwNUMwMDBFNTM1MzBFMDA3RTU0RDYwMDMwMjBGNkVFNTM1MzBFMUJCCis6MTAwNUQwMDAwQUU1NEREMzk0MDE0MDAzMDIwRjZFRTRGRjAyMzI2RTMwCis6MTAwNUUwMDA5MEZBQkRFMDcwMDJBM0UwNjAwMzAyMEY2RTkwRkFCOUNBCis6MTAwNUYwMDBFMEZGMTIzMjNGNDAwMzAyMEY2RUU1MzUyMEUxMDYyMDk2Cis6MTAwNjAwMDBFMDAzMDIwRjZFRTU0RDcwMDkzMDBBMDMwMjFFMTQwMjZBCis6MTAwNjEwMDAxRERGRTUzNTIwRTEwMzAyMEY2RTE1NEQzMDBBMEIxMjg4Cis6MTAwNjIwMDAxRDU1RjU4M0UwNDQwOEYwODAwOTEyMUQ2M0Y1ODNFMDUxCis6MTAwNjMwMDA0NDA4RjBFNEZGMDIzMjZFRTUzNTMwRTcwMzAyMEY2RTQ2Cis6MTAwNjQwMDBFNTNDNDUzQjYwMDMwMjBGNkU5MEZBQjlFMDYwMDMwMjlGCis6MTAwNjUwMDAwRjZFMTIxRDc5NjAwMzAyMEY2RUU1MzUzMEUxMDMwMjYzCis6MTAwNjYwMDAwRjZFOTBGQUJFRTA5MEZGRkZGMEUwNjAwNTQzMzUwMUE5Cis6MTAwNjcwMDA4MDAzNTMzNUZFRTRGRjAyMzI2RUU1MzUyMEU3MDMwMkM2Cis6MTAwNjgwMDAwRjZFRTUzQzQ1M0I3MDAzMDIwRjZFMTIxRDc5NjAwMzRGCis6MTAwNjkwMDAwMjBGNkU5MEZBQkRFMEZDQTNFMEZERUMyNEZFNjAzQTkwCis6MTAwNkEwMDAxNDYwNzUyNDAyNjAwMzAyMEY2RUVENjAwMzAyMEY2RThBCis6MTAwNkIwMDAxMjFDRTAxMjFFMEQ3RDAzMTIwRkI1NjAwMzAyMEY2RUI3Cis6MTAwNkMwMDAxMjBGNzI5MEZBQjZFMEZEQTMxMjFEMkIxMjBGRDE1MDNCCis6MTAwNkQwMDAwMjgwMDRBRTNCQUYzQzAyMTAwMjEyMUNFMDkwRjkxNkZGCis6MTAwNkUwMDBFMDMwRTQwRDEyMUUwRDdEMTQxMjBGQjU2MDEwMDIwRkU0Cis6MTAwNkYwMDA2RTEyMUUwRDdEMDQxMjEwMDk2MDAzMDIwRjZFMTIwRkEwCis6MTAwNzAwMDA3MjkwRkFCNkUwRkRBMzEyMUQyQjEyMEZEMTUwMDI4MDk5Cis6MTAwNzEwMDAwNEFFM0JBRjNDMDIxMDAyMTIxRTBEN0QwNTEyMTAwOTAzCis6MTAwNzIwMDA2MDAzMDIwRjZFN0IwMTdBRkE3OUI2MTIxRDI4N0QwMUYzCis6MTAwNzMwMDAxMjI2OTg5MEZBQjdFNDc1RjAwMzEyMUIxQzkwRkFCRUNCCis6MTAwNzQwMDBFMDkwRkFCNUYwRTRGNTRDOTBGQUI1RTBGRkU1NENDMzYzCis6MTAwNzUwMDA5RjUwMjQxMjFEMjIxMjEwMTRGRkZEOTBGQUI3RTQ4RDUxCis6MTAwNzYwMDBGMDEyMUIxQzkwRkFCNkUwQzM5RkYwRDM5NDAwNTAwMzI0Cis6MTAwNzcwMDAwMjBGNkUwNTRDODBEMTEyMUQyMjEyMTAxNDI0RkVGRkIwCis6MTAwNzgwMDA5MEZBQjZGMEZEQTNFNDc1RjAwMjEyMUIxQzdBRjk3OTE5Cis6MTAwNzkwMDA3MjdCMDE4QjM2OEEzNzg5MzhFOTI0MDJGOUU0M0FGQTA4Cis6MTAwN0EwMDAxMjFEMjgxMjI2OTg4RjRDMDU0QzA1NEMxMjFDQzFFNUQxCis6MTAwN0IwMDA0QzEyMUFFODEyMUNDMTkwMDAwMTc0MDMxMjFBRkFBRjBECis6MTAwN0MwMDA0QzdFMDBDM0VGOTUzQ0VFOTUzQjUwMDI4MDA0QUUzQjVGCis6MTAwN0QwMDBBRjNDOEUzOThGM0EwMjJDRDgwMjBGNkVFNTM1MjBFN0Y4Cis6MTAwN0UwMDAwMzAyMEY2RUU1M0M2NDAxNDUzQjYwMDMwMjBGNkU5MDBGCis6MTAwN0YwMDBGQUI5RTA2MDAzMDIwRjZFOTBGQUJERTA3MDAyQTNFMDY4Cis6MTAwODAwMDA2MDAzMDIwRjZFMTIxRDc5NjAwMzAyMEY2RUU1MzUyMDQyCis6MTAwODEwMDBFMDA2MjBFMTAzMDIwRjZFNzUzNjAwNzUzNzAwNzUzODZCCis6MTAwODIwMDAzMjAyMEZGMUU1MzUzMEU3MDMwMjBGNkVFNTNDNDUzQjQwCis6MTAwODMwMDA2MDAzMDIwRjZFOTBGQUI5RTA2MDAzMDIwRjZFRDM5MDZFCis6MTAwODQwMDBGQUJFRTA5NDAxOTBGQUJERTA5NDAwNDAwMzAyMEY2RUZFCis6MTAwODUwMDAxMjFENzk2MDAzMDIwRjZFRTUzNTIwRTAwNjIwRTEwM0VBCis6MTAwODYwMDAwMjBGNkU5MEZBQkVFMEY1MzJFNTMyNzAwODQzMzUwMUIyCis6MTAwODcwMDA1MzM1RkQ4MDA2NTMzNUZFNDMzNTAyRTRGRjAyMzI2RUU4Cis6MTAwODgwMDBFNTM1MjBFNzAzMDIwRjZFRTUzQzY0MDE0NTNCNjAwMzVDCis6MTAwODkwMDAwMjBGNkU5MEZBQjlFMDYwMDMwMjBGNkU5MEZBQkRFMEFECis6MTAwOEEwMDA3MDAyQTNFMDYwMDMwMjBGNkUxMjFENzk2NDAxNjAwMzAxCis6MTAwOEIwMDAwMjBGNkVFNTM1MjBFMTAzMDIwRjZFN0YwMTAyMzI2RUZBCis6MTAwOEMwMDBFNTM1MzBFNzAzMDIwRjZFRTUzQzQ1M0I2MDAzMDIwRjYwCis6MTAwOEQwMDA2RUQzOTBGQUJFRTA5NDAwOTBGQUJERTA5NDAwNDAwMzFECis6MTAwOEUwMDAwMjBGNkUxMjFENzk2NDAxNjAwMzAyMEY2RUU1MzUyMDYwCis6MTAwOEYwMDBFMTAzMDIwRjZFRTRGRjAyMzI2RTkwRkYwMTEyMUUyNDJDCis6MTAwOTAwMDBFRjEyMUFFODkwRkFCOTEyMUUyNDkwMDAwMUVGMTIxQUExCis6MTAwOTEwMDBGQTkwMDAwMkU0MTIxQUZBNzQwMzEyMUNCMjkwRkFCREEzCis6MTAwOTIwMDBFMEZGQTNFMDg1Mzg4Mjg1Mzc4M0NGRjBBM0VGRjA5MDE2Cis6MTAwOTMwMDBGRjAxRTAxMjFCRkMwOTdCMDIwOTlEMDQwOUJGMDUwOUE4Cis6MTAwOTQwMDBFQjA2MEEwOTA3MEEyNzA4MEE0NTA5MEE2MzBCMEIxODcwCis6MTAwOTUwMDA4MDBEQjc4MTBERTg4MjBCNUY4MzBCQTg4NDBCQzc4NUUwCis6MTAwOTYwMDAwQzBDODYwQzU3ODcwQ0U4ODgwRDczODkwQTgxOTIwQTUzCis6MTAwOTcwMDA4MTkzMERBMEIwMEU5QkMwMEVDN0MxMEVEOEMyMDAwMDVGCis6MTAwOTgwMDAwRjVERTUzNTIwRTcwNTdGMDUwMjMxQTkxMjFENzE2MDc1Cis6MTAwOTkwMDAwMzA0NzAwOUVGRkQ3QzAwN0YwNzAyMTE1RUU0RkQ3RjE4Cis6MTAwOUEwMDAwNzAyMkZCNEU1MzUyMEU3MDU3RjA1MDIzMUE5MTIxREE2Cis6MTAwOUIwMDA3MTYwMDMwNDcwMDlFRkZEN0MwMDdGMEMwMjExNUVFNDlFCis6MTAwOUMwMDBGRDdGMDcwMjJGQjRFNTM1MzBFNzAzMDIwRjcxMTIxRUQ5Cis6MTAwOUQwMDA0MjUwMDZFNTNDNDUzQjcwMDU3RjAyMDIzMUE5OTBGQTgyCis6MTAwOUUwMDBCOUUwMjRGRTI0RkQ1MDAyODAwMzAyMzIyQzdGMDcwMjZFCis6MTAwOUYwMDAzMUE5RTUzNTMwRTcwMzAyMEY3MTEyMUQ3MTYwMDMwNDYwCis6MTAwQTAwMDA3MDA5RUZGRDdDMDA3RjA4MDIxMTVFN0YwNzAyMzFBOUFCCis6MTAwQTEwMDBFNTM1MzBFNzAzMDIwRjcxMTIxRDcxNjAwMzA0NzAwOUEwCis6MTAwQTIwMDBFRkZEN0MwMDdGMDkwMjExNUU3RjA3MDIzMUE5RTUzNUU5Cis6MTAwQTMwMDAzMEU3MDMwMjBGNzExMjFENzE2MDAzMDQ3MDA5RUZGREFFCis6MTAwQTQwMDA3QzAwN0YwQTAyMTE1RTdGMDcwMjMxQTlFNTM1MzBFNzlECis6MTAwQTUwMDAwMzAyMEY3MTEyMUQ3MTYwMDMwNDcwMDlFRkZEN0MwMDI5Cis6MTAwQTYwMDA3RjBCMDIxMTVFN0YwNzAyMzFBOUU1MzUzMEU3MDMwMkYzCis6MTAwQTcwMDAwRjcxMTIxRDcxNjAwMzA0NzAwOUVGRkQ3QzAwN0YwRTgxCis6MTAwQTgwMDAwMjExNUU3RjA3MDIzMUE5RTUzNTMwRTc1NjEyMUQ3OTY0Cis6MTAwQTkwMDA3MDRBOTBGRjAyRTBGNTRDRTU0Q0I0ODIwNTc1NEM2MTVDCis6MTAwQUEwMDA4MDEyRTU0Q0I0ODMwNTc1NEM2MjgwMDhFNTRDQzQ1NDUzCis6MTAwQUIwMDBGMDA0RjU0QzEyMUMyMjEyMUUzQjEyMjVGQTEyMUQ4OTVECis6MTAwQUMwMDAxMjFBQkI2MDA1MTIzMjdBODAwNjg1MzMzOTg1MzQzQUIyCis6MTAwQUQwMDA3NTM2MDE3NTM3Rjk3NTM4NzUwMjJDRDhFNEZEN0YwNTM4Cis6MTAwQUUwMDAwMjJGQjQxMjFENzk2MDA1N0YwNTAyMzFBOTEyMUU0MjQyCis6MTAwQUYwMDA0MDA1N0YwMzAyMzFBOTkwRkYwMkUwRjU0Q0U1NENCNEJDCis6MTAwQjAwMDA4MjA1NzU0QzYxODAxMkU1NENCNDgzMDU3NTRDNjI4MDlBCis6MTAwQjEwMDAwOEU1NENDNDU0RjAwNEY1NEMxMjFDMjIwMjMyMkMxMjhECis6MTAwQjIwMDAxRTRDMTIyQUM3MTIxRDMzRTA1NDdGRjAwMDAwMDBFMDczCis6MTAwQjMwMDA5MEZBQkFGMDc4NjgxMjFCRDg5MDAwMDIxMjFBQkIzMEYzCis6MTAwQjQwMDBFN0YyOTAwMDAyRTQxMjFBRkE5MEZBQkFFMDQ0ODBGRjQ5Cis6MTAwQjUwMDBGMDc4N0NFNkZDMDhFNjhDODMxMjFEM0JFRkYwMTIzMjQ1Cis6MTAwQjYwMDA4NEU0RkYwMjMxQTk5MEZBQjlFMDY0MDE3MDFGOTBGQUExCis6MTAwQjcwMDBCREUwRkY3RTAwNzAwNkEzRTBGNTkwODAyREMyQUZFRkQwCis6MTAwQjgwMDBGNDUyOTA5MEZBQkVFMDQyOTBEMkFGODAxRDkwRkFCRDMwCis6MTAwQjkwMDBFMEZGN0UwMDcwMDZBM0UwRjVCMDgwMEVDMkFGRUZGNDc4Cis6MTAwQkEwMDA1MkIwOTBGQUJFRTA0MkIwRDJBRkU0RkYwMjMxQTkxMkQ3Cis6MTAwQkIwMDAxQ0UwOTBGQUI5RTBCNDAxMEExMjFDQzFFNTkwMTIxQUM3Cis6MTAwQkMwMDBFODgwMDgxMjFDQzFFNUIwMTIxQUU4MDIwRkYxOTBGQTkxCis6MTAwQkQwMDBCOUUwRkYyNDEzMTIxQ0YxMjBFMTMzMTIxRDgwRUYyNDMxCis6MTAwQkUwMDBGQzYwMTgwNDcwMjg5MEZBQkFFMDYwMDk5MEZGQTRFMDU1Cis6MTAwQkYwMDA0NDEwRjA4MDE5MTIxRTU2RjA4MDEzOTBGQUJBRTA2MDhCCis6MTAwQzAwMDAwOTkwRkZCNEUwNDQxMEYwODAwNDEyMUU1REYwRTRGRjkwCis6MTAwQzEwMDAwMjMxQTk5MEZBQjlFMEZGMjQxMzEyMUNGMTIwRTEzOTQ2Cis6MTAwQzIwMDAxMjFEODBFRjI0RkM2MDFCMDQ3MDJFOTBGQUJBRTA2MDY1Cis6MTAwQzMwMDAwOTkwRkZBNEUwNDQyMEYwODAxRjkwRkZBNEUwNTRERjVGCis6MTAwQzQwMDBGMDgwMTY5MEZBQkFFMDYwMDk5MEZGQjRFMDQ0MjBGMDFBCis6MTAwQzUwMDA4MDA3OTBGRkI0RTA1NERGRjBFNEZGMDIzMUE5MTIxREQ5Cis6MTAwQzYwMDA4MDEyMUQ3MTYwNEQwNDYwMDMwMjBDRTM5MEZBQkFFMDNCCis6MTAwQzcwMDA2MDBGOTBGRkE0MTIxQ0VBMzBFMTZGMTIxRTJDMDIwQ0QwCis6MTAwQzgwMDBFMzkwRkZBNEUwNTRGQjEyMUNFREZFMzBFMTVDMzBFMjg3Cis6MTAwQzkwMDAxMTMwQjQwNTEyMUUyQzgwNTE5MEZGQTRFMDU0RkRGMEQ5Cis6MTAwQ0EwMDA4MDQ4MzA5NTA1MTIxRTJDODA0MDkwRkZBNEUwNTRGRDMyCis6MTAwQ0IwMDBGMDgwMzc5MEZBQkFFMDYwMTI5MEZGQjQxMjFDRUEzMDZDCis6MTAwQ0MwMDBFMTI4OTBGRkI0RTA0NDAyRjA4MDFGOTBGRkI0RTA1NEFDCis6MTAwQ0QwMDBGQjEyMUNFRDMwRTExMzMwOTMwOTkwRkZCNEUwNDQwMkE1Cis6MTAwQ0UwMDBGMDgwMDc5MEZGQjRFMDU0RkRGMEU0RkYwMjMxQTkxMjU4Cis6MTAwQ0YwMDAxRDgwOTBGQUI5RTAyNEZDNjA0MDA0NzA3ODkwRkFCQTQ0Cis6MTAwRDAwMDBFMDYwMUQ5MEZGQTJFMDQ0NDBGMEEzRTBGRjMwRTc2NTAzCis6MTAwRDEwMDBEMjAzQTNFMDU0REZGMDkwRkZBM0VGNTQ3RkYwODA1NTlGCis6MTAwRDIwMDAzMDAzMEU5MEZGQTNFMDQ0ODBGMEMyMDNBM0UwNDQyMDEwCis6MTAwRDMwMDBGMDkwRkZBMkUwNTRCRkYwODAzQjkwRkFCQUUwNjAxRDUzCis6MTAwRDQwMDA5MEZGQjJFMDQ0NDBGMEEzRTBGRjMwRTcyOEQyMDRBM0Q0Cis6MTAwRDUwMDBFMDU0REZGMDkwRkZCM0VGNTQ3RkYwODAxODMwMDQwRUMyCis6MTAwRDYwMDA5MEZGQjNFMDQ0ODBGMEMyMDRBM0UwNDQyMEYwOTBGRjgxCis6MTAwRDcwMDBCMkUwNTRCRkYwRTRGRjAyMzFBOTEyMUNFMDkwRkFCOUNFCis6MTAwRDgwMDBFMDI0RkM2MDBGMDQ3MDE2OTBGRkE2RTAxMjFDQzExMjU0Cis6MTAwRDkwMDAxQUU4ODAwQTkwRkZCNkUwMTIxQ0MxMTIxQUU4NzUzOUYxCis6MTAwREEwMDAwMDc1M0EwMTAyMkNEODkwRjkxNTc0MDFGMDkwRjkxQ0U1Cis6MTAwREIwMDA3NDE5RjA5MEY5NjY3NEZGRjBFNEZGMDIzMUE5RTRGRkMyCis6MTAwREMwMDAxMjMxQTkxMjFERTc3RjAzMTIxMjYxOTBGOTE2RTAzMDZCCis6MTAwREQwMDBFNDA4OTBGRjkzNzQ4MEYwODAxMDkwRkZGQ0UwNTQ3RjUzCis6MTAwREUwMDBGMDdGRkY3RTAwMTIzMEQzQzI5MEMyQUYwMDgwRkRFNERFCis6MTAwREYwMDBGNTRFRjU0RjkwRkFCRjc0M0VGMEEzRTRGMDkwRkFCN0M5Cis6MTAwRTAwMDBGMEEzNzQxNUYwRTA1NDNGRkZDMzc0NDA5RjkwRkFCQzA4Cis6MTAwRTEwMDBGMEQzOTQwMEU0OTQzRTQwMDg5MEZBQzBFMDkwRkFCQzBECis6MTAwRTIwMDBGMDEyMEY5OEU1MzE0NTMwNzA3MzEyMUNGQTkwRkFCRjNBCis6MTAwRTMwMDAxMjFFMDY2MDI3RDNFRjk0NDBFRTk0MDA0MDA4OTBGQTBCCis6MTAwRTQwMDBCQzc0NDBGMDgwMDg5MEZBQzBFMDkwRkFCQ0YwMTIwRjM5Cis6MTAwRTUwMDA5OEU1MzE0NTMwNzA0NjEyMUNGQTgwRDE3NTRDMDI5MEVECis6MTAwRTYwMDBGQUJGRTRGMEEzMDRGMDkwRkFCN0U0RjBBMzc0MEZGMDMzCis6MTAwRTcwMDA3QjAwN0EwMDc5NEM5MEZBQzBFMEY1NEE3RDBGN0MwMDQ3Cis6MTAwRTgwMDAxMjI5NjA3NTMwMDA4RjMxN0IwMDdBMDA3OTRDRTRGNUNGCis6MTAwRTkwMDAyREY1MkU3RDAxMTIyNjk4RTRGNTMwRjUzMUFGMzEwMkEzCis6MTAwRUEwMDAzMUE5MTIxRDgwMzBFNzEwRTA1NDBGOTBGOTY3RjBEMzlDCis6MTAwRUIwMDA5NDAwNDAxNUMyOTU4MDExOTBGQUJBRTA1NDBGOTBGOTUxCis6MTAwRUMwMDA2NUYwRDM5NDAwNDAwMkMyOTRFNEZGMDIzMUE5MTIxRURGCis6MTAwRUQwMDA0Q0JGMDEwNEQyOTM4MDAyQzI5M0U0RkYwMjMxQTkxMkY1Cis6MTAwRUUwMDAxRDgwNTQwMzE0NjAwQTE0NjAwRjE0NjAwODI0MDM3MEZBCis6MTAwRUYwMDAyQkQyOTE4MDI3QzI5MTgwMjMxMjFFNTYxMjBGQzA2MDAwCis6MTAwRjAwMDAwNEQyOTE4MDE3OTBGRkE0RTA0NDEwMTIwRkMwRkZCRkRECis6MTAwRjEwMDBBMDA0QzI5MTgwMDJEMjkxMTIxRTU2RjA5MEZBQkFFMDVCCis6MTAwRjIwMDA1NDBDRkYxMzEzNTQzRjE0NjAwQTE0NjAwRjE0NjAwODJDCis6MTAwRjMwMDAyNDAzNzAyQkQyOTI4MDI3QzI5MjgwMjMxMjFFNUQxMjRFCis6MTAwRjQwMDAwRkUwNjAwNEQyOTI4MDE3OTBGRkI0RTA0NDEwMTIwRkJCCis6MTAwRjUwMDBFMEZGQkZBMDA0QzI5MjgwMDJEMjkyMTIxRTVERjBFNEI0Cis6MTAwRjYwMDBGRjAyMzFBOUU1MzUzMEU3MDdFNEZEN0YwNTAyMkZCNDI0Cis6MTAwRjcwMDA3RjA1MDIzMUE5MTIzMjdBMjI3QjAxN0FGQTc5QjY5MDgyCis6MTAwRjgwMDBGQUI3RTBGNTJEQTNFMEY1MkU3RDAxMTIyNjk4OTBGQTMwCis6MTAwRjkwMDBCN0U0NzVGMDAzMTIxQjFDQUIzNkFBMzdBOTM4MjJBQTk2Cis6MTAwRkEwMDA0RUE5NEY3QkZGOTBGQUI3RTBGQ0EzRTBGRDkwRkFCQzlFCis6MTAwRkIwMDBFMEY1NEExMjI5NjA3NTMwMDA4RjMxMjIxMjIzNjE3RURDCis6MTAwRkMwMDAwMDhFMzA4RjMxRUYyMkYwN0YwMTEyMTI2MTkwRkZBNjY4Cis6MTAwRkQwMDBFMDkwRkFCQkYwNTRBMDIyMTIyNjk4OEY0QzdFMDBDM0ZBCis6MTAwRkUwMDBFRjk1M0NFRTk1M0IyMkYwN0YwMTEyMTI2MTkwRkZCNjI3Cis6MTAwRkYwMDBFMDkwRkFCQkYwNTRBMDIyNzUzOTAwNzUzQTAxMDIyQzNBCis6MTAxMDAwMDBEODkwRkFCOUUwRkYwMjMyM0Y4RTM5OEYzQTAyMkNEOERECis6MTAxMDEwMDAxMjIzNjE3RTAwOEUzMDhGMzFFRjIyN0QwMTEyMjY5OERGCis6MTAxMDIwMDA5MEZBQjRFMDIyRUY5MEY4MDRGMDIyQzBBOEMyQUZFRTJDCis6MTAxMDMwMDA2MDBBQzAwNTdEN0ZEREZFREVGQUQwMDVFRkMzOTQxNUEyCis6MTAxMDQwMDA1MDAzRDBBODIyMTM3MDAzRDBBODIyRkZENTA3RkREMEVCCis6MTAxMDUwMDBBODIyQzAwMEMwMDFDMDAyQzAwNEMwMDVFNTNFMjQwOEFCCis6MTAxMDYwMDBGODg2MDU1MzA1N0Y3Q0ZGMTIxMEMwN0YwMDdFMDBFNUU3Cis6MTAxMDcwMDA0MzYwNDZGQzkwRjkxREUwNTQ3RjZENzAwRkMwODNDMDQzCis6MTAxMDgwMDA4MkEzRTBGRUEzRTBGRkEzMTU0MzgwMDdBM0EzQTNEQzk0Cis6MTAxMDkwMDBFNjgwMjZEQzA2RDA4MkQwODM4MDFFRTBGOEEzRTBGOTRCCis6MTAxMEEwMDBBM0UwRkFEMDgyRDA4M0U4RjBBM0U5RjBBM0VBRjBBM0FBCis6MTAxMEIwMDBDMDgzQzA4MkEzQTNBMzgwREExMjExNTdEMDA1RDAwNDQ1Cis6MTAxMEMwMDBEMDAyRDAwMUQwMDAyMjg1QTg0NDc1QTg4OEVDNzAwMjE3Cis6MTAxMEQwMDA3QzNGOEMzRDIyRTUzRTI0MDhGODc2MDAxMjExQUU4MDVDCis6MTAxMEUwMDBGQkMwMDBDMDAxQzAwMkMwMDRDMDA2N0NGRjEyMTBDMERCCis6MTAxMEYwMDBFNTQzNjA0MkZFOTBGOTFERTA1NDdGNkY3MDBCQzA4M0EyCis6MTAxMTAwMDBDMDgyQTNBM0EzMTU0MzgwMDdBM0EzQTNERUVBODAyNjdFCis6MTAxMTEwMDBERTA2RDA4MkQwODM4MEQ4RTBGOEEzRTBGOUEzRTBGQTFECis6MTAxMTIwMDBEMDgyRDA4M0U4RjBBM0U5RjBBM0VBRjBBM0MwODNDMEEzCis6MTAxMTMwMDA4MkEzQTNBMzgwREE3ODA4MDg3OTE4MDk3QzAxRTY1NDExCis6MTAxMTQwMDA3RjZGNzAwNjc2MDA3NzAwODAwNjA4MDkwQ0JDMDhFRUY5Cis6MTAxMTUwMDAxMjExNTdEMDA2RDAwNEQwMDJEMDAxRDAwMDIyNzUzRDI0Cis6MTAxMTYwMDAwMDg1NDRBODIyQzBGMEMwODJDMDgzQzNFNTQzMjRFOEMwCis6MTAxMTcwMDA1MDA1MTIxMUFFODBGNEVGNjAzMTkwMzExMUU0OTNDMzQ5Cis6MTAxMTgwMDA5RjQwMkZDMDA0N0NGRjEyMTBDMEQwMDQ0MzA3ODBFNUFECis6MTAxMTkwMDA0Mzc1RjAwM0E0MjQxREY1ODJFNDM0RjlGNTgzRUZGMEUwCis6MTAxMUEwMDBFQ0EzRjBFREEzRjAwNTQzMTIxMTU3RDA4M0QwODJEMDA5Cis6MTAxMUIwMDBGMDIyMDIxMURDQzAwNDdDMjBEMjhDRDI4REQ1MDRGRDNCCis6MTAxMUMwMDBEMDA0MjI3NUE4MDA3NTg4MDA3NUI4MDA3NUYwMDA3NTA4Cis6MTAxMUQwMDBEMDAwRTRGODkwRjgwNEYwOTAwMDAwRjYwOEI4MDBGQkE2Cis6MTAxMUUwMDAwMjAwMDBDMkFGRTQ5MEZGNDhGMDkwRkY1MEYwOTBGRjgzCis6MTAxMUYwMDAwOEYwOTBGRjEwRjA5MEZGODBGMEEzQTNGMEQyQjFDMkVFCis6MTAxMjAwMDBCMDdFRkY3RkZGMTIxMDI0N0VGRjdGRkYxMjEwMjQ3RTJFCis6MTAxMjEwMDBGRjdGRkYxMjEwMjREMkIwRDJCMTdFRkY3RkZGMTIxMEU5Cis6MTAxMjIwMDAyNDdFRkY3RkZGMTIxMDI0N0VGRjdGRkYxMjEwMjQ4MDk4Cis6MTAxMjMwMDBDQ0MzRUU5NDAyNTAwNDdFMDM3RkU4RUZGNEZGRUVGNDlCCis6MTAxMjQwMDBGRTBGQkYwMDAxMEU4RjQyOEU0MTIyQzNFRjk0QkNFRTExCis6MTAxMjUwMDA5NDAyNTAwNDdFMDc3RkQwRUZGNEZGRUVGNEZFMEZCRjQwCis6MTAxMjYwMDAwMDAxMEU4RjQwOEUzRjIyRUY3MDAxMjJDMDAwQzBBODA3Cis6MTAxMjcwMDBDMkFGRTUzRTI0MThGOEE2MDdFNTNFMjQwOEY4QzY1NDk4Cis6MTAxMjgwMDA3RkY2RDBBOEU2MzBFNzAzRDAwMDIyMTIxMUFFODBGNDNBCis6MTAxMjkwMDBDMDAwN0YwMUVGMjQwOEY4RTY2MDA5MEZCRjA4RjUxMkNGCis6MTAxMkEwMDAxMUFFODBFRUQwMDAyMkMwRjBDMDgyQzA4M0MwMDBDMDZBCis6MTAxMkIwMDAwNkMwMDRFRDI0MTBGODc2OUFFRDc1RjAyMUE0MjQwNUZCCis6MTAxMkMwMDBGNTgyRTQzNEY4RjU4M0MwODJDMDgzQTNBM0U0NzgwREVCCis6MTAxMkQwMDBGMEEzRDhGQ0VGNTQ3Rjc1RjAwMkE0MjRGM0Y1ODJFNTY3Cis6MTAxMkUwMDBGMDM0MzBGNTgzRTQ5M0ZFNzQwMTkzRkNEMDgzRDA4MjE0Cis6MTAxMkYwMDBFQ0YwQTNFRUYwRUQyNDA4RjhFRjQ0ODBGNkQwMDREMDMzCis6MTAxMzAwMDAwNkQwMDBEMDgzRDA4MkQwRjAyMjc1M0UwMDc1NDMwMDE1Cis6MTAxMzEwMDA3QTA4NzkxODc4MDg3NjAwNzcwMDA4MDlEQUY4OTBGOEUyCis6MTAxMzIwMDAwNEUwRkM5MDMxMTFFNDkzQzM5QzUwMDVFNDkwRjgwNDcwCis6MTAxMzMwMDBGMDc4MDg3NDgwNDQ3RkY2NzQwMTQ0MTBGNTg5NzVCODFDCis6MTAxMzQwMDAwMEQyQUJEMkE5MjI3NTgxOEJEMjhFRDI4Q0QyQUZFNURFCis6MTAxMzUwMDA0MzYwMzZGRjkwRjkxREUwNTQ4MDYwMjg3ODA4NzkwOEQyCis6MTAxMzYwMDBFMDU0N0ZGQTdCMDBFNjU0N0ZCNTAyMDI3QkZGMDhEOTg4Cis6MTAxMzcwMDBGNUVCNzAxMEVBRjBDMDA3MTIxMjg5QUQwN0FGMDIxMjQ4Cis6MTAxMzgwMDAxMkEwRDAwN0EzQTNBM0RGQ0UxMjExQUU4MEMxOEYyNDc5Cis6MTAxMzkwMDAxMjJBQzcxMjIyQjVBM0EzRTBBMzMwRTcyODc4N0UxMjUxCis6MTAxM0EwMDAyMjk5RTA0NDAxRjAxMjIyRkExMjIyOURFMDIwRTBGNjk4Cis6MTAxM0IwMDAxMjIzNTA3NDAyRjAxMjIyREFFMEEzMzBFNTA3MTIyMzYwCis6MTAxM0MwMDA1MEUwNDQwMUYwNzg4MEU2RkUwOEU2RkY4RTgzMjQwOEIyCis6MTAxM0QwMDAxMjIyQTFFMEZEMTIyMzM5OEE4MzI0MEExMjIyQTFFREYwCis6MTAxM0UwMDBGMDEyMjMwNjI0MDcxMjIyQTFFMEZGMTIyMzVBMjQwOTM3Cis6MTAxM0YwMDAxMjIyQTFFRkYwOTBGOTE2RTAzMEU0MjAwODEyMjJCNzkzCis6MTAxNDAwMDBDMDgzQzA4MkEzRTAyNUUwRkYwNTgyRDU4MjAyMTU4MzU4Cis6MTAxNDEwMDAxNTgyRTAzM0QwODJEMDgzRjBBM0VGRjAxMjIyQjVFMDQyCis6MTAxNDIwMDBGQ0EzRTBGREVDRkYxMjIzMzk4QTgzMjQwODEyMjJBMUQ5Cis6MTAxNDMwMDBFRkYwRUQxMjIzNUEyNDA3MTIyMkExRURGMDEyMjJBOTk3Cis6MTAxNDQwMDBFMDMwRTYwQTEyMjM0MTI0MDkxMjIyQTFFNEYwMTIyMjFDCis6MTAxNDUwMDBBOUUwRkYzMEU3MUIxMjIzMUUyNDA5MTIyMkExRTA2MDNECis6MTAxNDYwMDAwOTEyMjJBOUVGNDQwMkYwODAwNzEyMjJBOUVGNTRGRENECis6MTAxNDcwMDBGMDc4N0UxMjIyQjdBM0EzRTBGRjUzMDdDNzA4RTZGQzZCCis6MTAxNDgwMDAwOEU2RkQxMjIyRTBBM0UwMzBFMzEyOEQ4MjhDODNFNUIyCis6MTAxNDkwMDA4MjI0MDUxMjIyQTFFMDkwMzI1MTkzNDIwNzUzMDdGQkE4Cis6MTAxNEEwMDAxMjIzMUUyNDA2MTIyMkExRTA2MDAzNDMwNzA0NTMwN0ZGCis6MTAxNEIwMDBGQzc4ODAxMjIzMjkyNDA0MTIyMkExRTA0MjA3NDMwNzZBCis6MTAxNEMwMDA4MDEyMjMzOUY1ODI4QTgzQTNBM0VGRjAxMjIzNUEyNEQyCis6MTAxNEQwMDAwNDEyMjJBMUUwRkY4RDgyOEM4M0EzQTNFMEZDQTNFMDkxCis6MTAxNEUwMDBGRDMwRTEwNTUzMDdERjgwMDM0MzA3MjBFQzMwRTQwNUJFCis6MTAxNEYwMDA1MzA3RUY4MDAzNDMwNzEwMTIyMkE5RTBGRTU0MDM2MDU0Cis6MTAxNTAwMDA3MzUzMDdERkVFMzBFMTY5MTIyMzFFMjQwOTEyMjJBMTcyCis6MTAxNTEwMDBFMDEyMUJGQzE1MkMwMDE1NjAwMTE1NjUwMzE1NjAwNTE0Cis6MTAxNTIwMDAxNTY1MDcxNTYwMDkxNTY1MEIxNTYwMEQxNTY1MEYwMDJDCis6MTAxNTMwMDAwMDE1NkRFNTI0NjQwMzcwMjE5MEY5MTZFMDMwRTIwRDhBCis6MTAxNTQwMDAzMEI0MDU0MzA3MDI4MDJDNTMwN0ZEODAyNzMwOTUwNUYyCis6MTAxNTUwMDA0MzA3MDI4MDFGNTMwN0ZEODAxQTMwOTMwNTQzMDcwMjlCCis6MTAxNTYwMDA4MDEyNTMwN0ZEODAwRDQzMDcwMjgwMDg1MzA3RkQ4MDVBCis6MTAxNTcwMDAwMzUzMDdGRDEyMjMyNzI0MDQxMjIyQTFFRkYwOEQ4MkNBCis6MTAxNTgwMDA4QzgzQTNBM0EzRTBGRjEyMjJBOUUwRkU1NDAzNzAwM0ZGCis6MTAxNTkwMDAwMjE2NjBFRTIwRTEwMzAyMTY1RDA4MTIyMzIwMjQwOUUyCis6MTAxNUEwMDAxMjIyQTFFMDEyMUJGQzE1QkYwMDE1RjUwMTE1RjUwMzcxCis6MTAxNUIwMDAxNjI5MDUxNjI5MDcxNjBGMDkxNjBGMEIxNjQzMEQxNkM3Cis6MTAxNUMwMDA0MzBGMDAwMDE2NjBFNTI0NjQwMzcwMjM5MEY5MTZFMEQxCis6MTAxNUQwMDAzMEUyMEYzMEIxMDY1MzA3N0YwMjE2NjA0MzA3ODAwMkU2Cis6MTAxNUUwMDAxNjYwMzA5NDA1NTMwNzdGODA3RDQzMDc4MDgwNzgzMEY0Cis6MTAxNUYwMDA5MjA1NTMwNzdGODA3MDQzMDc4MDgwNkJFNTI0QjQwMzE2Cis6MTAxNjAwMDAwOTkwRkY5RUUwNTRFRkYwODAwNzkwRkY5RUUwNTRERkNBCis6MTAxNjEwMDBGMDUzMDc3RjgwNTFFNTI0QjQwMzA5OTBGRjlFRTA0NDE2Cis6MTAxNjIwMDAxMEYwODAwNzkwRkY5RUUwNDQyMEYwNTMwNzdGODAzNzQyCis6MTAxNjMwMDBFNTI0QjQwMzA5OTBGRjlFRTA1NEVGRjA4MDA3OTBGRjhCCis6MTAxNjQwMDA5RUUwNTRERkYwNDMwNzgwODAxREU1MjRCNDAzMDk5MDM5Cis6MTAxNjUwMDBGRjlFRTA0NDEwRjA4MDA3OTBGRjlFRTA0NDIwRjA0MzlFCis6MTAxNjYwMDAwNzgwODAwMzUzMDc3RjEyMjJEQUUwRkNBM0UwRkQzMEZECis6MTAxNjcwMDBFMDA1NDMwNzIwODAwMzUzMDdERkVDMzBFMzA1NDMwNzExCis6MTAxNjgwMDA0MDgwMDM1MzA3QkZFQzMwRTAwNTQzMDcxMDgwMDM1MzRECis6MTAxNjkwMDAwN0VGRUQzMEU0MDU0MzA3MDg4MDAzNTMwN0Y3RUQzMDBCCis6MTAxNkEwMDBFNTA1NDMwNzA0ODAwMzUzMDdGQkVEMzBFNjA1NDMwN0Q4Cis6MTAxNkIwMDAwMTgwMDM1MzA3RkVFRDMwRTcwNTQzMDcwMjgwMDM1MzIzCis6MTAxNkMwMDAwN0ZENzg3RTEyMjJEQ0EzRUZGMDEyMzI4NDdGMDAyMjI1Cis6MTAxNkQwMDA5MEZGRkE3NDA4RjBBMzc0MTZGMDkwRkZGOTc0MDJGMDBBCis6MTAxNkUwMDA3QjAxN0FGQTc5Q0ZFNEZEMTIyMzYxOTBGQUNGRTQ3NTk5Cis6MTAxNkYwMDBGMDAzMTIxQjFDMTIxOTkyRTUyMzMwRTcwMkQyMDI3QjgxCis6MTAxNzAwMDAwMDdBMDA3OTI0OTBGQUNGRTBGNTJEQTNFMEY1MkU3RDQ0Cis6MTAxNzEwMDAwMTEyMjY5ODkwRkFDRkU0RjBBMzc0MEJGMDdCMDA3QUM0Cis6MTAxNzIwMDAwMDc5MjM3NTJEMDBGNTJFN0QwMTEyMjY5OEU1MjMyNERFCis6MTAxNzMwMDA4MDkwRkZGOEYwRTUyMzY0MDc2MDFFRTUyMzY0MDY2MEVGCis6MTAxNzQwMDAxOEU1MjM2NDE0NjAxMkU1MjM2NDQxNjAwQ0U1MjM2NDBBCis6MTAxNzUwMDAxQTcwNDZFNTI0NjQwMjcwNDBFNTIzQjQwNzE2RDI5NDVCCis6MTAxNzYwMDBEMjk1RDI5MkQyOTM5MEY5MTZFMDQ0MDJGMEEzRTA0NENECis6MTAxNzcwMDAwMkYwODAxRUU1MjNCNDQxMTI5MEY5MTZFMDQ0MDZGMDExCis6MTAxNzgwMDBBM0UwNDQwNkYwRDJCMUQyQjQ4MDA3OTBGOTE2RTA0NDQ5Cis6MTAxNzkwMDAwMUYwOTBGOTE3RTA0NDAxRjBFNTIzNjQ0MjYwMENFNUE0Cis6MTAxN0EwMDAyMzY0NDM2MDA2RTUyMzY0NDQ3MDJFOTBGOTE2RTBGRjNECis6MTAxN0IwMDBFNTIzQjQ0NDA0N0U0MDgwMDI3RTAwRUUyNDgwNEY5MEY2Cis6MTAxN0MwMDBGOTE2RjBBM0UwRkZFNTIzQjQ0NDA0N0U0MDgwMDI3RUQ2Cis6MTAxN0QwMDAwMEVFMjQ4MDRGOTBGOTE3RjA5MEZBQ0ZFNEYwQTM3NDU0Cis6MTAxN0UwMDAwREYwMTIxOTkyOTBGRkY1RTUyM0YwRTRGNTM1RjUzMzhECis6MTAxN0YwMDBGNTM0RjUzMjEyMUUzNDEyMUNFMDEyMUUzQjkwRjk2QUM5Cis6MTAxODAwMDAxMjFCRjM5MEY5NkYxMjFCRjM5MEZGRkZFNEYwOTBGRkFGCis6MTAxODEwMDA4M0UwRTRGMDkwRkY4MTc0ODBGMEEzNzQ4NEYwOTBGRjgzCis6MTAxODIwMDA4MEYwRTRGNTIzRTUyMzEyMUQ1N0Y1ODNFNEYwRTUyMzZBCis6MTAxODMwMDAxMjFENjVGNTgzRTRGMDA1MjNFNTIzQjQwN0U3Nzg3QTA0Cis6MTAxODQwMDA3NkZFMDg3NkYwOTAzMjBBRTQ5M0ZGNzg3OEY2RkRBREU0Cis6MTAxODUwMDAwNzkwMzIxN0U0OTNGRjA4RjZGRkVENTQwRkZEMTIxREI5Cis6MTAxODYwMDA0Nzc0ODRGMEVENzVGMDA4QTQyNDQ3RjU4MkU0MzRGRjUyCis6MTAxODcwMDBGNTgzRUZGMEMzNzRGMDlGNzg3QkY2NzRGRTk0MDAxODQ0Cis6MTAxODgwMDAxMjFDRDhDRUMzMTNDRTEzRDhGOUZGRUQxMjFEQThFRjRBCis6MTAxODkwMDBGMEVEMTIxRENFRTRGNTIzRTUyMzkwMzIwNDkzRkY3ODlBCis6MTAxOEEwMDA3OEY2RkRFNTIzMjVFMDI0MEJGNTgyRTQzNDMyRjU4MzU4Cis6MTAxOEIwMDBFNDkzMDhGNkVEMzBFNzUzMThFNjU0MEZGOTEyMUQ0NzhDCis6MTAxOEMwMDAxMjFEQjYyNDQ3RjU4MkU0MzRGRjEyMUNDOENFQzMxM0EwCis6MTAxOEQwMDBDRTEzRDhGOUZGRTkxMjFEQThFRkYwMTIxQ0NGQ0VDMzJBCis6MTAxOEUwMDAxM0NFMTNEOEY5MTIxREJCMjQ0NUY1ODJFNDM0RkZGNTVECis6MTAxOEYwMDA4M0VGRjBFOTEyMURDRUU5NzVGMDA4QTQyNDQ2RjU4MkM1Cis6MTAxOTAwMDBFNDM0RkZGNTgzNzQ4MEYwMDIxOTY3Nzg3OEU2NTQwRkE5Cis6MTAxOTEwMDBGOTEyMUQ5QTEyMURCNjI0MDdGNTgyRTQzNEZGMTIxQzM5Cis6MTAxOTIwMDBDOENFQzMxM0NFMTNEOEY5MTIxREJCMjQwMUY1ODJFNDJGCis6MTAxOTMwMDAzNEZGRjU4M0VGRjAxMjFDQ0ZDRUMzMTNDRTEzRDhGOUNBCis6MTAxOTQwMDAxMjFEQkIyNDA1RjU4MkU0MzRGRkY1ODNFRkYwRTk3NTQxCis6MTAxOTUwMDBGMDA4QTQyNDAyRjU4MkU0MzRGRkY1ODNFNEYwRTk3NThECis6MTAxOTYwMDBGMDA4QTQyNDA2RjU4MkU0MzRGRkY1ODNFNEYwMDUyM0FGCis6MTAxOTcwMDBFNTIzNjQwNDYwMDMwMjE4OTE5MDMyMDlFNDkzRkY3ODMwCis6MTAxOTgwMDA3OEY2MTIxRDk4RTRGMDkwMzIwODkzRkZGNjEyMUQ0NTg4Cis6MTAxOTkwMDBFNEYwOTBGRkZENzQwNUYwMjI3QjAwN0EwMDc5MjM5MDNCCis6MTAxOUEwMDBGQUNGRTQ3NUYwMDExMjFCMzI4NUYwMkVGNTJEN0QwMTgyCis6MTAxOUIwMDAwMjI2OThFNzA5RjYwOERGRkE4MDQ2RTcwOUYyMDhERjExCis6MTAxOUMwMDBGQTgwM0U4ODgyOEM4M0U3MDlGMEEzREZGQTgwMzJFMzU1Cis6MTAxOUQwMDAwOUY2MDhERkZBODA3OEUzMDlGMjA4REZGQTgwNzA4OEY4Cis6MTAxOUUwMDA4MjhDODNFMzA5RjBBM0RGRkE4MDY0ODk4MjhBODNFMDMyCis6MTAxOUYwMDBBM0Y2MDhERkZBODA1ODg5ODI4QTgzRTBBM0YyMDhERjIxCis6MTAxQTAwMDBGQTgwNEM4MEQyODBGQTgwQzY4MEQ0ODA2OTgwRjI4MENGCis6MTAxQTEwMDAzMzgwMTA4MEE2ODBFQTgwOUE4MEE4ODBEQTgwRTI4MEY1Cis6MTAxQTIwMDBDQTgwMzM4OTgyOEE4M0VDRkFFNDkzQTNDOEM1ODJDODRBCis6MTAxQTMwMDBDQ0M1ODNDQ0YwQTNDOEM1ODJDOENDQzU4M0NDREZFOUI0Cis6MTAxQTQwMDBERUU3ODAwRDg5ODI4QTgzRTQ5M0EzRjYwOERGRjlFQzUwCis6MTAxQTUwMDBGQUE5RjBFREZCMjI4OTgyOEE4M0VDRkFFMEEzQzhDNURCCis6MTAxQTYwMDA4MkM4Q0NDNTgzQ0NGMEEzQzhDNTgyQzhDQ0M1ODNDQzAyCis6MTAxQTcwMDBERkVBREVFODgwREI4OTgyOEE4M0U0OTNBM0YyMDhERjcxCis6MTAxQTgwMDBGOTgwQ0M4OEYwRUY2MDAxMEU0RTYwQzM4OEYwRUQyNDQxCis6MTAxQTkwMDAwMkI0MDQwMDUwQjlGNTgyRUIyNDAyQjQwNDAwNTBBRjQ0Cis6MTAxQUEwMDAyMzIzNDU4MjIzOTAxOUZDNzNCQjAxMDY4OTgyOEE4MzE0Cis6MTAxQUIwMDBFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDBECis6MTAxQUMwMDA5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDk4Cis6MTAxQUQwMDAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEI3Cis6MTAxQUUwMDBFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjdECis6MTAxQUYwMDAwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzlECis6MTAxQjAwMDAyMkY4QkIwMTBERTU4MjI5RjU4MkU1ODMzQUY1ODNFOEU5Cis6MTAxQjEwMDBGMDIyNTAwNkU5MjU4MkM4RjYyMkJCRkUwNUU5MjU4MjlGCis6MTAxQjIwMDBDOEYyMjJDNUYwRjhBM0UwMjhGMEM1RjBGOEU1ODIxNTY4Cis6MTAxQjMwMDA4MjcwMDIxNTgzRTAzOEYwMjJBM0Y4RTBDNUYwMjVGMEFBCis6MTAxQjQwMDBGMEU1ODIxNTgyNzAwMjE1ODNFMEM4MzhGMEU4MjJCQjA4Cis6MTAxQjUwMDAwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBBM0VCCis6MTAxQjYwMDBFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkUwQTQ5Cis6MTAxQjcwMDBFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODNFOTE3Cis6MTAxQjgwMDA5M0Y1RjBBM0U5OTMyMkJCMDEwQTg5ODI4QTgzRjBFNUU5Cis6MTAxQjkwMDBGMEEzRjAyMjUwMDZGNzA5QTdGMDE5MjJCQkZFMDZGM0M2Cis6MTAxQkEwMDBFNUYwMDlGMzE5MjJGOEJCMDExMUU1ODIyOUY1ODJFNTc4Cis6MTAxQkIwMDA4MzNBRjU4M0U4RjBFNUYwQTNGMDIyNTAwOUU5MjU4MkE1Cis6MTAxQkMwMDBDOEY2MDhBNkYwMjJCQkZFMDlFOTI1ODJDOEYyRTVGMEI2Cis6MTAxQkQwMDAwOEYyMjJBNDI1ODJGNTgyRTVGMDM1ODNGNTgzMjJFNjFBCis6MTAxQkUwMDBGQjA4RTZGQTA4RTZGOTIyRUJGNjA4RUFGNjA4RTlGNjU5Cis6MTAxQkYwMDAyMkUwRkJBM0UwRkFBM0UwRjkyMkVCRjBBM0VBRjBBM0QyCis6MTAxQzAwMDBFOUYwMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MENCCis6MTAxQzEwMDAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjhGCis6MTAxQzIwMDA5MzY4NjBFRkEzQTNBMzgwREZBQjM2QUEzN0E5MzhFNTlBCis6MTAxQzMwMDA0QzEyMUFFODc0MDEyNTM4RjUzOEU0MzUzN0Y1MzdBQjFFCis6MTAxQzQwMDAzNkZBQTkzODc0MTExMjFBRTg3NDAxMjUzOEY1MzhFNDA3Cis6MTAxQzUwMDAzNTM3RjUzNzkwRkYwNkUwQUIzNkFBMzdBOTM4MTIxQUE4Cis6MTAxQzYwMDBFODc0MDEyNTM4RjUzOEU0MzUzN0Y1MzdBQjM2RkFBOThECis6MTAxQzcwMDAzOEU0MTIxQUU4MDQyNTM4RjUzOEU0MzUzN0Y1MzdBQjdGCis6MTAxQzgwMDAzNkZBQTkzOEU0MTIxQUU4MDQyNTM4RjUzOEU0MzUzNzZECis6MTAxQzkwMDBGNTM3OTBGRjA0RTBBQjM2QUEzN0E5MzgxMjFBRTg3NDdBCis6MTAxQ0EwMDAwMTI1MzhGNTM4RTQzNTM3RjUzNzkwRkYwNUUwQUIzNkQ4Cis6MTAxQ0IwMDBBQTM3QTkzODEyMUFFODc0MDEyNTM4RjUzOEU0MzUzN0ZGCis6MTAxQ0MwMDBGNTM3MjJGNTgzRTA1NDA4QUIzNkFBMzdBOTM4MjJGNTU4Cis6MTAxQ0QwMDA4M0VGRjBGRDdDMDBDMzc4N0JFNjlERjYxOEU2OUNGNjZBCis6MTAxQ0UwMDBFNkZFMDhFNjc4MDMyMjc1MzYwMTc1MzdGOTc1Mzg3MjE1Cis6MTAxQ0YwMDAyMkUwNDQwNEYwNzQxMzJGRjU4MkU0MzRGOUY1ODNFMDE0Cis6MTAxRDAwMDAyMjkwRkFCQ0UwRkY3RTAwQzM5MEZBQzBFMDlGRjA5MDAyCis6MTAxRDEwMDBGQUJGRTA5RUYwOTBGQUI3RUU4RkYwMTIxQjFDRUYyNTkxCis6MTAxRDIwMDA0RkY1NEZFRTM1NEVGNTRFMjI3QjAxN0FGQTc5QjQ5MDlECis6MTAxRDMwMDBGQUI3RTBGNTJEQTNFMEY1MkUyMjc4N0NFNkZFMDhFNjYyCis6MTAxRDQwMDA4RTgzMjQwNEY1ODJFNDM1ODNGNTgzMjI1NDBGNzVGMEU1Cis6MTAxRDUwMDAwOEE0MjQ0MEY1ODJFNDM0RkZGNTgzMjJFNTRENzVGMEI0Cis6MTAxRDYwMDAwOEE0MjQ0OEY1ODJFNDM0RkYyMkU1NEQ3NUYwMDhBNDY4Cis6MTAxRDcwMDAyNDA4RjU4MkU0MzRGRjIyOTBGQUI5RTBGRjI0RkMyMjIzCis6MTAxRDgwMDA5MEZGMDBFMDU0MUYyMjkwRkFCRUUwOTBGQUJBRjAyMkQxCis6MTAxRDkwMDA3NTMzMDA4RjM0OTBGOTZGMTIxQkVBOTAwMDAyMjI1NEMxCis6MTAxREEwMDAwRjc1RjAwOEE0MjQwMEY1ODJFNDM0RkZGNTgzMjI3NTUyCis6MTAxREIwMDBGMDA4QTQyNDQxRjU4MkU0MzRGRkY1ODMyMjc0ODBGMDE2Cis6MTAxREMwMDAwOEU2RkZFOTc1RjAwOEE0MjI3NEIyMjUyMkY1ODJFNDQyCis6MTAxREQwMDAzNEZBRjU4MzIyNzVGMDA4QTQyNDQyRjU4MkU0MzRGRjM2Cis6MTAxREUwMDBGNTgzNzQ4MEYwMjI5MEZGODJFMDQ0MDhGMDIyOTBGRjk3Cis6MTAxREYwMDBGRUUwNDQwM0YwOTBGRkZDRTA1NEZERjAyMjc4NjdFNjNCCis6MTAxRTAwMDA1NEZERjY5MEZGRkQ3NDY1RjAyMjEyMUJDQ0UwRkVBMzlBCis6MTAxRTEwMDBFMEZGNEUyMjdCMDE3QUZBNzlCNzIyOTBGRjgwRTA0NEZFCis6MTAxRTIwMDAwOEYwMjI5MEZGODNFMDU0N0ZGMDIyRTBGRjkwRjk2QUVGCis6MTAxRTMwMDAwMjFCRUE5MEZGQTRFMDQ0MDJGMDIyNzUzOTAxNzUzQUQyCis6MTAxRTQwMDAwOTIyN0IwMTdBRjk3OTcyMjJEM0U1M0M5NDA4RTUzQkJCCis6MTAxRTUwMDA5NDAxMjI5MEZBQkVFMEZGOTBGQUJBRjAyMjkwRkZBNDFCCis6MTAxRTYwMDBFMDU0RUYyMjkwRkZCNEUwNTRFRjIyMTIxMDRCNzg4ODM4Cis6MTAxRTcwMDBFRkY2MTIyQUM3MTIyMkZBOEU4MzI0MDkxMjIyQTFFMDU5Cis6MTAxRTgwMDBGRDEyMjJFODkwMDAwQTEyMjMwMjI0MEExMjIyQTFFMDg1Cis6MTAxRTkwMDA5MDAwMEIxMjFBRkExMjIyRkFGNTgyOEU4M0EzQTNBM0UyCis6MTAxRUEwMDBFMEY1NTMxMjIzMDYyNDA0MTIyMkExRTBGNTU0OEY4Mjk4Cis6MTAxRUIwMDA4RTgzQTNBM0UwRjU1NUU1NTNDNDEzMTMxMzU0MDE3ODlGCis6MTAxRUMwMDA4OEY2RDM5NDAwNDAwNkU1NTQzMEUxMDEwNjc4ODhFNkIwCis6MTAxRUQwMDAxMjIyRTc5MDAwMENFRjEyMUFGQTEyMjJCNUEzQTNFMDI3Cis6MTAxRUUwMDBGRUEzRTBGRjUzMDcwQzUzMDZFNkU1NTMzMEU1MDM0MzNBCis6MTAxRUYwMDAwNzAxRTU1NDIwRTUwRUU1NTM1NDdGNzAwOEU1NTMyMEIzCis6MTAxRjAwMDBFNzAzNDMwNzAyRTU1MzMwRTMwMzQzMDcxMEU1NTMzMDhCCis6MTAxRjEwMDBFMjAzNDMwNzIwRTU1MzU0MDM2MDAzNDMwNzQwRTU1M0JFCis6MTAxRjIwMDAzMEUxMDM0MzA3ODBFNTUzMzBFNDAzNDMwNjAxRTU1MzAyCis6MTAxRjMwMDAzMEU2MDM0MzA2MDhFNTU0MjBFNDBFRTU1MzU0N0Y3MDcxCis6MTAxRjQwMDAwOEU1NTMyMEU3MDM0MzA2MTA1MzA3RkI1MzA2Nzk5MDM3Cis6MTAxRjUwMDAwMDA1RUU4RkYwMTIxQjlGRTU1NTMwRTMxMjU0MzBGRjYxCis6MTAxRjYwMDBDNDU0MEYxMjIyRTc5MDAwMDhFRjEyMUFGQTgwMEExMkU2Cis6MTAxRjcwMDAyMkU4OTAwMDA4RTQxMjFBRkFFNTU1NTQwMzEyMjJFNzA5Cis6MTAxRjgwMDA5MDAwMDdFRjEyMUFGQUU1NTU1NDA0RkZDMzEzOTAwMEFFCis6MTAxRjkwMDAwOTEyMUFGQTkwMDAwNzEyMUFCQjcwMTMxMjIyRThFOTBDCis6MTAxRkEwMDAyNDA5RjlFNDNBRkExMjFBQTJGRkMzMTMxMjFBRTgxMjJBCis6MTAxRkIwMDAyMzI3MjQwODEyMjJBMUUwRkU4RDgyOEM4M0U1ODIyNDRGCis6MTAxRkMwMDAwNzEyMjJBMUUwRkRFRUVEMTIyMkU3OTAwMDAzRUU4RjUyCis6MTAxRkQwMDBGMDEyMUI5RjEyMzI4NDdEMEFFNEZGMTIyRkI0MDIxMDBDCis6MTAxRkUwMDBDRTkwRkFFNkUwQjQwMzA2N0UwMDdGNDA4MDA0N0UwMEQ3Cis6MTAxRkYwMDA3RjA4OTBGQURBRUVGMEEzRUZGMDkwMDAwNTEyMUFCQjFBCis6MTAyMDAwMDBGRjdFMDA5MEZBRDZFRUYwQTNFRkYwNzAwMzdGMDgyMjc3Cis6MTAyMDEwMDA5MDAwMDgxMjFCNDhGRjkwRkFEOEU1RjBGMEEzRUZGMDBCCis6MTAyMDIwMDBBRTAyQUYwMThFNTA4RjUxNzQwQTI1NTFGNTUxRTQzNTNGCis6MTAyMDMwMDA1MEY1NTA5MEZBREJFMEZGMTRGRTkwRkFEOUUwNUVGRTE2Cis6MTAyMDQwMDBDM0VGOUVGRjkwRkFEREYwQzM5MEZBRDdFMDlGOTBGQUJECis6MTAyMDUwMDBENkUwOTQwMDUwMDZBM0UwOTBGQURERjAxMjIwQTk2MENCCis6MTAyMDYwMDAwM0UwRkYyMjEyMkUyQjkwRkFENkUwRkVBM0UwRkY0RUYzCis6MTAyMDcwMDA2MDJCOTBGQURBRTBGQ0EzRTBGREQzRUY5REVFOUM0MEVDCis6MTAyMDgwMDAwN0UwOTBGQURERjA4MDA4OTBGQUQ3RTA5MEZBRERGMEYyCis6MTAyMDkwMDAxMjIwQTk2MDAzRTBGRjIyMTIyRTJCODBDQTdCMDA3QTU3Cis6MTAyMEEwMDAwMDc5NTJFNEY1MkRGNTJFN0QwMTEyMjY5ODdGMDAyMjRECis6MTAyMEIwMDBBQTUwQTk1MTdCMDE5MEZBRDhFMEZDQTNFMEZEOTBGQTY4Cis6MTAyMEMwMDBEREUwRjU0QTEyMjk2MDkwRkFEQ0VGRjAyMkVGMjRBRTUxCis6MTAyMEQwMDA2MDUyMjRGRTYwMkUyNEZFNzAwMzAyMjE2OTI0MDY2MEYzCis6MTAyMEUwMDAwMzAyMjFCMTc4NzFFNjU0RkJGNjkwRkZBNUUwRjUyMkRBCis6MTAyMEYwMDA0NDBGRjA3NDMzOTBGQTk0RjBFNTIyQTNGMDkwRkFCMjEyCis6MTAyMTAwMDA3NDAxRjAyMjc4NzJFNjU0RkJGNjkwRkZCNUUwRjUyMkY4Cis6MTAyMTEwMDA0NDBGRjA3NDQzOTBGQTk2RjBFNTIyQTNGMDkwRkFCM0RFCis6MTAyMTIwMDA3NDAxRjAyMjkwRkFBMEUwQTMyMEU1MDMwMjIxQjE5MDBGCis6MTAyMTMwMDBGRkE2RTA5MEZBQ0RGMEEzRjA5MEZBQ0RFMEZGNTQwRkE3Cis6MTAyMTQwMDBGRTYwMTA5MEZGQTYxMjIzMEQ5MEZGQTZFMDkwRkFDRDNFCis6MTAyMTUwMDBGMDgwRTY5MEZBQ0VFMEZGNzQzNEZFMTIyRDg1RUY3MDI5Cis6MTAyMTYwMDA1NzkwRkFDRUUwRkY3NDM0OTBGQTk4RjBFRkEzRjAyMjgzCis6MTAyMTcwMDA5MEZBQUFFMEEzMzBFNTQwOTBGRkI2RTA5MEZBQ0RGMEU3Cis6MTAyMTgwMDBBM0YwOTBGQUNERTBGRjU0MEZGRTYwMTA5MEZGQjYxMjVFCis6MTAyMTkwMDAyMzBEOTBGRkI2RTA5MEZBQ0RGMDgwRTY5MEZBQ0VFMDA1Cis6MTAyMUEwMDBGRjc0NDRGRTEyMkQ4NUVGNzAwRTkwRkFDRUUwRkY3NDlFCis6MTAyMUIwMDA0NDkwRkE5QUYwRUZBM0YwMjJDMEUwQzBGMEMwODNDMEQwCis6MTAyMUMwMDA4MkMwRDA3NUQwMDBDMDAwQzAwMUMwMDJDMDAzQzAwNEVFCis6MTAyMUQwMDBDMDA1QzAwNkMwMDc5MEZGOTJFMEZGOTBGQUNDRjA5MEQ3Cis6MTAyMUUwMDBGRjkyRTRGMEVGMTIxQkZDMjI2OTI2MjI2OTJFMjIwQ0RBCis6MTAyMUYwMDAzMDIyMEMzMjIyMUEzODIyMkMzQTIyNUUzRTIyNDk0NEU2Cis6MTAyMjAwMDAyMjNFNDYyMjU0NTAyMjU0NTIyMjU0NTQyMjU0NTYwMDA0Cis6MTAyMjEwMDAwMDIyNkU5MEZBQ0NFMEZEN0MwMDdGMDExMjExNUU4MEZFCis6MTAyMjIwMDA2MjdDMDA3RDAxN0YwMzEyMTE1RTkwRkZGRUUwNDQyMDdFCis6MTAyMjMwMDBGMDgwNTA3QzAwN0QwMTdGMDIxMjExNUU5MEZGRkVFMDc1Cis6MTAyMjQwMDA0NDQwRjA4MDNFN0MwMDdEMDE3RjA1MTIxMTVFODAzM0FBCis6MTAyMjUwMDA3QzAwN0QwMTdGMDYxMjExNUU4MDI4OTBGQUNDRTBGRkExCis6MTAyMjYwMDAxMjIwQzY4MDFFN0MwMDdEMDE3RjA0MTIxMTVFODAxMzQ3Cis6MTAyMjcwMDAxMjI4NEU4MDBFOTBGQUNDRTAyNDAwRkZFNDM0RkZGRURBCis6MTAyMjgwMDAxMjJEODVEMDA3RDAwNkQwMDVEMDA0RDAwM0QwMDJEMEJGCis6MTAyMjkwMDAwMUQwMDBEMEQwRDA4MkQwODNEMEYwRDBFMDMyNzg3QzkyCis6MTAyMkEwMDBFNkZFMDhFNjI0MDQ4RTgzRjU4MkU0MzU4M0Y1ODMyMjc2Cis6MTAyMkIwMDA3NDEzMjUyNEY1ODJFNDM0RjlGNTgzMjI3ODgwRTZGRTUwCis6MTAyMkMwMDAwOEU2RjU4MjhFODMyMjc4ODBFNkZFMDhFNkFBMDZGODA0Cis6MTAyMkQwMDBBQzAyN0QwMTdCRkY3QTMyNzk1NjdFMDA3RjBBMDIxQUJBCis6MTAyMkUwMDA3Qzc4ODBFNkZDMDhFNkY1ODI4QzgzQTNBMzIyRkY5MDJECis6MTAyMkYwMDBGOTZGMDIxQkVBOTBGOTZBMTIxQkVBOTAwMDA0MDIxQUI1Cis6MTAyMzAwMDBCQjc4N0VFNkZFMDhFNkZGMjJFRDEyMUFGQThGODI4RTc3Cis6MTAyMzEwMDA4M0U1ODIyMkVGRjA5MEZBQ0VFMDU0MEY0RUZFRjBFRjBDCis6MTAyMzIwMDA1NEYwNEVGMDIyNzg4MEU2RkMwOEU2OEM4MzIyNzg3RTFBCis6MTAyMzMwMDBFNkZDMDhFNkZEOEM4MzIyQTYwN0U2MjQ2RUY4RTYyMjdBCis6MTAyMzQwMDA3ODdFRTZGQTA4RTZGQjIyMDhFNkZFMDhFNjhFODMyMjlGCis6MTAyMzUwMDAyNkY2MThFRTM2RjYyMkVGMjQwQkY1ODJFNDNFRjU4M0RFCis6MTAyMzYwMDAyMjhCODI4QTgzRTU4MjIyOEIyNThBMjY4OTI3OEQyOEUzCis6MTAyMzcwMDA5MEZBRDJFNEYwQTM3NDAyRjA3QjAxN0FGQTc5RDE5MDVBCis6MTAyMzgwMDBGQUQyRTBGNTJEQTNFMEY1MkU3RDAxMTIyNjk4OTBGQTAxCis6MTAyMzkwMDBEMUUwNjUyODYwNDZBM0UwRkZBM0UwQTNDRkYwQTNFRjYwCis6MTAyM0EwMDBGMDEyMjNGMDkwRkFEMUUwRkY5MEZBRDRFNDhGRjAxMjBCCis6MTAyM0IwMDAxQjFDMTIyM0YwOTBGQUQ0RTBGRkEzRTA5MEZBRDJDRkQ2Cis6MTAyM0MwMDBGMEEzRUZGMDkwRkFEMUUwQTM3NUYwMDAxMjFCMUM5MDdGCis6MTAyM0QwMDBGQUQyRTQ3NUYwMDQxMjFCMUMwMjIzNzI5MEZBRDNFMEM3Cis6MTAyM0UwMDAyNDAxRkY5MEZBRDJFMDM0MDBBQjI1QUEyNkE5Mjc4RjVBCis6MTAyM0YwMDBGMDEyMUI4MDdGMDAyMjdCMDE3QUZBNzlEMTkwRkFEMjA5Cis6MTAyNDAwMDBFNDc1RjAwMTEyMUIxQzg1RjAyRUY1MkQ3RDAxMDIyNkNFCis6MTAyNDEwMDA5ODhGNjIxMjJBQzcxMjIyRkE4RTgzMjQwQjEyMjJBMUVECis6MTAyNDIwMDBFMDU0RkJGMDQ0MDJGMDA4MTIyMkRDRTBBMzMwRTUwQzlCCis6MTAyNDMwMDAxMjIzMDYyNDBCMTIyMkExRTA0NDAxRjA3ODdDRTZGRTcwCis6MTAyNDQwMDAwOEU2RkZGNTgyOEU4M0UwNTRCOEZERjBFNTYyMjRGRUQ1Cis6MTAyNDUwMDA0NDIwRkM0REYwRTU4MjI0MDQxMjIyQTFFMDU0QjhGMDlGCis6MTAyNDYwMDA0Q0YwOEY4MjhFODNBMzc0MDNGMDE4RTZGRTA4RTZGRjFCCis6MTAyNDcwMDA4RTgzMjQwNTEyMjJBMUMwODNDMDgyRTBGRDc0OTkyNUI5Cis6MTAyNDgwMDA2MkY1ODJFNDM0RkFGNTgzRTA1NEZDNDQwM0ZDRUQ0QzNECis6MTAyNDkwMDBEMDgyRDA4M0YwOEY4MjhFODNFMDQ0ODBGMEU1ODIyNDY2Cis6MTAyNEEwMDAwNDEyMjJBMUUwNDQ4MEYwMTIzMjg0NzQ2RTI1NjJGODk2Cis6MTAyNEIwMDA3NDA0NDZGNjdGMDAyMjEyMTA0QjdGMDIxMjEyNjE3OERDCis6MTAyNEMwMDA2N0U2NDQwMkY2RDJCMEQyQjE5MEY5MTZFMDMwRTcwN0UxCis6MTAyNEQwMDA5MEZGOUVFNEYwODAzNkQyQjM5MEZGQTRFMDkwRkE3RUE1Cis6MTAyNEUwMDBGMDkwRkZCNEUwOTBGQTdGRjA5MEZGQTJFMDkwRkE3Q0M5Cis6MTAyNEYwMDBGMDkwRkZCMkUwOTBGQTdERjA5MEZGQTQ3NDMwRjA5MDdECis6MTAyNTAwMDBGRkI0RjA5MEZGQTI3NDQwRjA5MEZGQjJGMDkwRkFFN0IxCis6MTAyNTEwMDBFNUE4RjA3NUE4ODE5MEZGOTJFMDYwMDRFNEYwODBGNkYxCis6MTAyNTIwMDA5MEZGRkQ3NDNBRjA0Mzg3MDEwMDAwMDA5MEZBN0VFMENFCis6MTAyNTMwMDA5MEZGQTRGMDkwRkE3RkUwOTBGRkI0RjA5MEZBN0NFMDc2Cis6MTAyNTQwMDA5MEZGQTJGMDkwRkE3REUwOTBGRkIyRjA5MEY5MThFMEQxCis6MTAyNTUwMDA2MDAyQzJCMzkwRkFFN0UwRjVBODAyMTBDRThCNUM4QTY1Cis6MTAyNTYwMDA1RDg5NUUxMjJFMEQ5MEZBQzMxMjFCRjNBQTVEQTk1RTVGCis6MTAyNTcwMDA5MEZBQzYxMjFCRjM5MEZBQzdFNDc1RjAwQTEyMUIxQ0ZFCis6MTAyNTgwMDA5MEZBQzYxMjFCRUFFOTI0MDFGOUU0M0FGQTkwRkFDOTcyCis6MTAyNTkwMDAxMjFCRjNBQjVDQUE1REE5NUUxMjJFMTlFMEZGQzMxM0Y4Cis6MTAyNUEwMDBGMEU0Nzg4MkY2OTBGQUMxRTBGRjc4ODJFNkMzOUY1MEFCCis6MTAyNUIwMDA0QTkwRkFDMzEyMkRFRUZGNzg4M0Y2OTBGQUM2MTIyREQ4Cis6MTAyNUMwMDBFRUZFRjQ1RkZGNzg4M0Y2MTIyREVCNUU0RkZGNzg4MzBCCis6MTAyNUQwMDBGNjEyMkRGNDc1RjAwMjEyMUIxQzkwRkFDN0U0NzVGMDg4Cis6MTAyNUUwMDAwMjEyMUIxQ0FCNUNBQTVEQTk1RTkwMDAwNDEyMUFCQjEwCis6MTAyNUYwMDAzMEU0MDMxMjJFMDM3ODgyMDY4MEFBRTQ5MEZBQzJGMDM3Cis6MTAyNjAwMDAyMjhCNTY4QTU3ODk1ODkwRkFDMjc0MDZGMEU0OTBGQUUxCis6MTAyNjEwMDBDMUYwMTIxQUEyMjQ2RTYwMjYxNDcwNzAxMjJEREE2MEI2Cis6MTAyNjIwMDAwOTI0MzA3MDEyMTIyNTU2ODA2MjEyMkUyNDEyMUZEQUVECis6MTAyNjMwMDA5MEZBQzJFRkYwODA1NTkwRkFDMjc0ODFGMDgwNEQxMjhBCis6MTAyNjQwMDAyRERBNjAwOTI0MzA3MDNFMTIyRDMwODAzRkU1NTgyNDg5Cis6MTAyNjUwMDAwM0Y5RTQzNTU3RkE3QjAxQzAwM0MwMDJDMDAxMTIyRTEyCis6MTAyNjYwMDAyNDkwMDAwNTEyMUFCQkZEOTAwMDA4MTIxQjQ4RjUyRTlECis6MTAyNjcwMDA4NUYwMkREMDAxRDAwMkQwMDMxMjI2OTg5MEZBQzFFRjM4Cis6MTAyNjgwMDBGMEU0QTNGMDgwMDY5MEZBQzI3NDgxRjA5MEZBQzJFMDAwCis6MTAyNjkwMDAxMjJFMjQ5MDAwMDIxMjFBRkE5MEZBQzFFMEZGMjI4QjQ3Cis6MTAyNkEwMDAyOThBMkE4OTJCOEQyQ0U1MkM3MDAzQUYyQzIyMTIyRTFGCis6MTAyNkIwMDA1MzcwMTYxMjJFNzJFNTJEOTBGRkYxRjAxMjMxRDg1MEEyCis6MTAyNkMwMDBGMjEyMjcyNTQwMEI3RjAwMjIxMjJFNzIxMjI3MjU1MDZFCis6MTAyNkQwMDBGODkwRkZGMzc0QTFGMEU1MkNCNDAxMDc5MEZGRjBFMDRGCis6MTAyNkUwMDA0NDAyRjA5MEZGRjFFNEYwRjUyRkU1MkMxNEZGRTUyRjA0Cis6MTAyNkYwMDBDMzlGNTAyQTEyMzFDMTQwMDNBRjJGMjJDM0U1MkM5NTRFCis6MTAyNzAwMDAyRkZGQkYwMjA3OTBGRkYwRTA0NDAyRjAxMjJFNjUwNTk0Cis6MTAyNzEwMDAyRjc0MDEyNTJCRjUyQkU0MzUyQUY1MkE4MENDMTIzMUI0Cis6MTAyNzIwMDBDMTQwMDM3RjE4MjIxMjJFNjVBRjJDMjI5MEZGRjFFNUU1Cis6MTAyNzMwMDAyRUYwMDIzMUQ4MTIxMDRCNzg4NDEyMjMzMTMwRTEwODg4Cis6MTAyNzQwMDA3RjEzMTIzMUE5MDIyN0JDNzg4NEU2RjkyNDEzMTIyMkUwCis6MTAyNzUwMDBBREUwRkYzMEU3NDA1NDAzNjAxRUU5QjQwMzBEOTBGRjg1Cis6MTAyNzYwMDA5RUUwNTRGRUYwRTA0NDA0RjA4MDQ2OTBGRjlFRTA1NDZBCis6MTAyNzcwMDBGREYwRTA0NDA4RjA4MDM5RTlCNDAzMEQ5MEZGOUVFMERECis6MTAyNzgwMDA1NEZCRjBFMDQ0MDFGMDgwMjg5MEZGOUVFMDU0RjdGMDA1Cis6MTAyNzkwMDBFMDQ0MDJGMDgwMUJFRjU0MDM2MDE0RTlCNDAzMDk5MDk1Cis6MTAyN0EwMDBGRkE0RTA1NERGRjA4MDA3OTBGRkI0RTA1NERGRjBDMkY0Cis6MTAyN0IwMDBCMzkwRjkxOEUwMDRGMEFGMDExMjIyRUVGRDEyMkZFNUZDCis6MTAyN0MwMDAxMjMxQTkwMjEwQ0U3NUE4NDA3ODdGRTRGNkQ4RkQ3NUM1Cis6MTAyN0QwMDA4MThCMDIyODA5MDIzMThDRTQ5M0EzRjhFNDkzQTM0MDhGCis6MTAyN0UwMDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzhDCis6MTAyN0YwMDAyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1Njg3Cis6MTAyODAwMDA4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MEJFCis6MTAyODEwMDA5MDJCQTlFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOUVGCis6MTAyODIwMDA1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBOEJFCis6MTAyODMwMDA0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MjUxCis6MTAyODQwMDBDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkJGCis6MTAyODUwMDBFOURFRTc4MEJFRTRGNTIyMTIxREMyRTBCNDA0MERFNTE2Cis6MTAyODYwMDAyMjI0MDNGRjEyMzAxMzEyMURDMkU0RjAwNTIyRTUyMkQ4Cis6MTAyODcwMDBDMzk0MDI0MEUzRTRGNTIyNzVGMDAyRTUyMjkwRkE5NDU1Cis6MTAyODgwMDAxMjFFMDM2MDJDMTIyRDg1RUY2MDUyNzVGMDAyRTUyMkI2Cis6MTAyODkwMDA5MEZBOTQxMjFCQ0NFNEYwQTNGMDc1RjAwQUU1MjI5MEI0Cis6MTAyOEEwMDBGQUEwMTIxQkNDRTBBMzMwRTYzMzEyMURDMjc0MDRGMDcwCis6MTAyOEIwMDAyMjc1RjAwMkU1MjI5MEZBOTgxMjFFMDM2MDE2MTIyRDdFCis6MTAyOEMwMDA4NUVGNjAxOTc1RjAwMkU1MjI5MEZBOTgxMjFCQ0NFNEFFCis6MTAyOEQwMDBGMEEzRjAyMjA1MjJFNTIyQzM5NDAyNDA5QjIyRTRGRkVDCis6MTAyOEUwMDA5MEZGODNFMDU0MEZGRUVGQzM5RTUwMTc3NEYwMkZGNTU2Cis6MTAyOEYwMDA4MkU0MzRGRUY1ODNFMDEyMUNDMTEyMUFFODBGMTIxQ0E4Cis6MTAyOTAwMDBCMDgwRERFRkZEQzNFNTNBOURGNTNBRTUzOTk0MDBGNTc5Cis6MTAyOTEwMDAzOUQzRTUzQTk0MDBFNTM5OTQwMDQwMDZFNDkwRkY4MzBBCis6MTAyOTIwMDBGMDIyMTIxRERGMTIxRTM0MTIxRTI2MTIxQUEyMjQ2RTZECis6MTAyOTMwMDA2MDFFMTQ2MDFCMjQ4RTcwMkQ5MDAwMDExMjFBQkJGRkM0Cis6MTAyOTQwMDAyNEZDNjAwMzA0NzAxRkVGRkQ3QzAwN0YwRDAyMTE1RTBDCis6MTAyOTUwMDAxMjFFM0IxMjI1RkExMjFEODkxMjFBQkI2MDAzMDIzMkE1Cis6MTAyOTYwMDA3QUU0RkYxMjMyNkUyMjhCNDU4QTQ2ODk0NzhDNDg4RDY1Cis6MTAyOTcwMDA0OUQyMDAxMjJFNTM3MDE2MTIyRTcyRTU0ODkwRkZGMUM0Cis6MTAyOTgwMDBGMDEyMzFEODUwRjIxMjI5RDU0MDBCN0YxODIyMTIyRUE2Cis6MTAyOTkwMDA3MjEyMjlENTUwRjhFNEY1NEJFNTRBMTRGRkU1NEJDMzE0Cis6MTAyOUEwMDA5RjUwMTcxMjI5QzU0MDAzN0YxODIyMDU0Qjc0MDEyNTNCCis6MTAyOUIwMDA0N0Y1NDdFNDM1NDZGNTQ2ODBERjkwRkZGMEUwNDQwMUY3Cis6MTAyOUMwMDBGMDEyMjlDNTQwMDM3RjE4MjI3RjAwMjJBQjQ1QUE0NjlBCis6MTAyOUQwMDBBOTQ3MTIxQUEyOTBGRkYxRjAwMjMxRDg5MEZGRjFFNTU5Cis6MTAyOUUwMDA0OUYwMDIzMUQ4N0IwMTdBRkE3OUNGRTRGRDEyMjM2MUY0Cis6MTAyOUYwMDA5MEZBQ0ZFNDc1RjAwOTEyMUIxQzdCMDA3QTAwNzkyMzUyCis6MTAyQTAwMDA5MEZBQ0ZFNDc1RjAwMTEyMUIzMjg1RjAyRUY1MkQ3RDgyCis6MTAyQTEwMDAwMTEyMjY5ODkwRkZGN0U1MjMxMjJBMzk5MEZGRjZFNTc4Cis6MTAyQTIwMDAyM0YwOTBGQUNGRTRGMEEzNzQwNjEyMkEzOUU1MjMzMDlDCis6MTAyQTMwMDBFMDA3OTBGRkZDNzQ5NEYwMjI5MEZGRkM3NDkwRjAyMjY5Cis6MTAyQTQwMDBGMDdCMDA3QTAwNzkyMzkwRkFDRkU0NzVGMDAxMTIxQjM1Cis6MTAyQTUwMDAzMjg1RjAyRUY1MkQ3RDAxMDIyNjk4OTBGRjkzNzQ4MTJBCis6MTAyQTYwMDBGMDkwRkZGRkUwNjAwNjkwRkZGQzc0MTBGMDkwRkY5MTgzCis6MTAyQTcwMDBFMDQ0OTBGMEU0OTBGOTE2RjBBM0YwMTIyQjM5MTIxNjBFCis6MTAyQTgwMDBDOTEyMzA2OTdFMDc3RkQwMTIxMjJBN0UwRjdGQTAxMkYyCis6MTAyQTkwMDAxMjQ0RTQ3ODc3RjY3ODc3RTZGRkMzOTQwNjUwMEI3NDE3Cis6MTAyQUEwMDA2RTJGRjhFNEY2Nzg3NzA2ODBFQzdGMDMxMjMwQjI5MDUwCis6MTAyQUIwMDBGOTE2RTAyMEU0MDU3RjA0MTIzMEIyOTBGRjlCRTRGMEE5Cis6MTAyQUMwMDA5MEZGOUFGMDkwRkZFOEUwNTQxRkYwRDJBODIyMTU2NTFECis6MTAyQUQwMDBBODY1QTYwNzMwMDgwNTEyMTFBRTgwRjhEMjA4QTg2NUNGCis6MTAyQUUwMDBFNkZGQjQwMzBGNzg3Qzc2RkYwODc2RTAwODc2RkYwOEVGCis6MTAyQUYwMDA3NkEwODAwRDc4N0M3NkZGMDg3NkUyMDg3NkZGMDg3NjZGCis6MTAyQjAwMDBCMDc4ODA3NkZBMDg3NjlFRUYyNEZENzVGMDBBQTRBRUMwCis6MTAyQjEwMDBGMDEyMjM0OTdCMDE3QUZGNzk0ODc4NjgxMjFCRTFBOEZCCis6MTAyQjIwMDA2NUU2MjRGRDc1RjAwOEE0RkZBRUYwNzg2QTEyMjM0OTJCCis6MTAyQjMwMDA3OTA4Nzg2QjEyMUJFMTc4NkRFRjEyMjM0OTA1NjUyMjQ1Cis6MTAyQjQwMDA5MEZGRjBFMDU0QUJGMEUwNDQyMEYwOTBGQUU2NzQwMjFECis6MTAyQjUwMDBGMDdCMDE3QUZBNzlDRkU0RjUyREY1MkU3RDAxMTIyNjZFCis6MTAyQjYwMDA5ODdFMDA5MEZBRTRFRUYwQTNFRkYwNjQwMTcwMTA5MDBDCis6MTAyQjcwMDBGQUNGRTBCNDUyMDk5MEY5MTZFMDU0RUZGMDgwMjk5MEIyCis6MTAyQjgwMDBGQUU0RTA3MDA0QTNFMDY0MDE3MDEwOTBGQUNGRTBCNEJFCis6MTAyQjkwMDAxMDA5OTBGOTE2RTA0NDEwRjA4MDBEOTBGQUU2NzQwM0U1Cis6MTAyQkEwMDBGMDkwRjkxNkUwNTRFRkYwOTBGRkYwRTA0NDIwRjAyMkFFCis6MTAyQkIwMDAwMzY4MDFGRjQ4MDM2QjAxRkYwODAyNjYwMDAwNDRGQTQ2Cis6MTAyQkMwMDA5ODAwMDAwMDAwNDRGQTk0MDAwMDAwMDA0MkZBQjIwMEFECis6MTAyQkQwMDAwMDQyRkE3RTAwMDA0MkZBN0MwMDAwNDJGOTZERkZGRkRECis6MTAyQkUwMDA0MkZBN0EwMDAwNDFGOTY2RkY0MUY5MUMxOTQxRjkxNUQyCis6MTAyQkYwMDAwMDQzRjkxOTBBMzIwMjQxRjk2ODIwNDFGOTY5MjA0MTdDCis6MTAyQzAwMDBGOTY1MDA0MUY5NjcwMDQ0RjgwMDAwMDAwMDAwNDJGOTRFCis6MTAyQzEwMDAxNjAwMDA0MUY5MTgwMDAxMjAwMDQxRjgwNDAwMDAxMkRDCis6MTAyQzIwMDAxMDRCNzg4QUVGRjYxMjJBQzcxMjIyRUUzMEUwMjk3ODhDCis6MTAyQzMwMDA3QzEyMjJCN0UwNTQ3RkYwNzg2QjEyMUJEODkwMDAwMjEwCis6MTAyQzQwMDAxMjFBQkIzMEU3MDk5MDAwMDJFNDEyMUFGQTgwRTk3ODAwCis6MTAyQzUwMDA3QzEyMjJCN0UwNDQ4MEYwMTIyMkVFMzBFMTFFMTIyMkY0Cis6MTAyQzYwMDA5N0UwNTQ3RkYwMTIzMjE5Nzg2ODEyMUJEODkwMDAwMjU2Cis6MTAyQzcwMDA3NDgwMTIxQUZBMTIyMjk3RTA0NDgwRjAxMjMyODRFNDJGCis6MTAyQzgwMDBGRjEyMzFBOTAyMTBDRTEyMTA0Qjc4ODVFRkY2MTIzMUU3Cis6MTAyQzkwMDA1MDEyMzFBOTc4ODVFNkZGMjQxMzEyMjJBREUwRkUzMEYwCis6MTAyQ0EwMDBFNzE2RUZCNDAzMDk5MEZGOUVFMDU0RkFGMDgwMjI5MEZCCis6MTAyQ0IwMDBGRjlFRTA1NEY1RjA4MDE5RUU1NDAzNjAxNEVGQjQwMzY2Cis6MTAyQ0MwMDAwOTkwRkZBNEUwNDQyMEYwODAwNzkwRkZCNEUwNDQyMDg2Cis6MTAyQ0QwMDBGMDkwRjkxOEUwMTRGMEUwNzAwMkQyQjMwMjEwQ0UxMkI2Cis6MTAyQ0UwMDAxRTFDRTUzQTY0MDk3MDA0RTUzOTY0MDE2MDQ4QzNFNUQ3Cis6MTAyQ0YwMDAzQTk0MDhFNTM5OTQwMDQwMTE3RjA4RUZFNTNBOTQwOENBCis6MTAyRDAwMDBGNTNBRTUzOTk0MDBGNTM5ODAwNUFGM0ExMjFFMzRFNEZFCis6MTAyRDEwMDBGRUVFQzM5RjUwMTkxMjFDQzExMjFBQTJGRDc0RjgyRUE4Cis6MTAyRDIwMDBGNTgyRTQzNEZFRjU4M0VERjAwRTEyMUNCMDgwRTJFRjg0Cis6MTAyRDMwMDA1NDdGOTBGRjgxRjAyMjhCNTk4QTVBODk1QjEyMkUxOTk5Cis6MTAyRDQwMDA3MDA1QTM3NDA4RjAyMkFCNTlBQTVBQTk1QjEyMkUwRDg0Cis6MTAyRDUwMDA5MEZBQzkxMjFCRjNFNTVCMjQwM0Y5RTQzNTVBRkE5MEEzCis6MTAyRDYwMDBGQUMzMTIxQkYzRTQ5MEZBQzJGMDc4OEJGNjkwRkFDMTIyCis6MTAyRDcwMDBFMEZGNzg4QkU2QzM5RjUwMTIxMjJERUJGRjEyMkRGNDZCCis6MTAyRDgwMDAxMjJFMDc3ODhCMDYxMjJFMDM4MEUyMjJBRDA3QUMwNkM2Cis6MTAyRDkwMDA5MDMyMEFFNDkzRkY3ODc0RjY1NDBGMTIxREE4RTAwOEVECis6MTAyREEwMDA3NjAwMDhGNjE4MTIxQ0Q5QzMzM0NFMzNDRUQ4RjlGRkZCCis6MTAyREIwMDA3ODc1RUVGNjA4RUZGNkVFNDRGODE4RjZFRjA4RjY5MEEwCis6MTAyREMwMDBGRjdBRTAyMEU3MDM3RjAwMjI3ODc1RTZGRTA4RTZGNTRCCis6MTAyREQwMDA4MjhFODNFQ0YwQTNFREYwOTBGRjdBNzQwMkYwN0YwMTE1Cis6MTAyREUwMDAyMkFCNTZBQTU3QTk1ODkwMDAwMzEyMUFCQjU0RjAyNERDCis6MTAyREYwMDBBMDIyOTBGQUM5MTIxQkVBMDIxQUEyOTBGQUMzMTIxQjZGCis6MTAyRTAwMDBFQUVGMTIxQUU4OTBGQUNBRTQyMjkwRkFDNEU0NzVGMEU0Cis6MTAyRTEwMDAwMTAyMUIxQzkwMDAwODEyMUI0OEFBRjBGOTdCMDEyMjNBCis6MTAyRTIwMDA5MDAwMDUxMjFBQkI5MEZBQzFGMDIyQUI1NkFBNTdBOTFFCis6MTAyRTMwMDA1ODIyOTBGQURERTBGRjdFMDBDMzkwRkFEN0UwOUZGMEMxCis6MTAyRTQwMDA5MEZBRDZFMDlFRjA5MEZBRDhFRThGRjAxMjFCMUNFRkFECis6MTAyRTUwMDAyNTUxRjU1MUVFMzU1MEY1NTAyMjkwRkZGMEUwNTRGRTJCCis6MTAyRTYwMDBGMEUwNTRGREYwOTBGQUU2RTA2NDAzMjI5MEZGRjJFMDE3Cis6MTAyRTcwMDBBQjI5QUEyQUE5MkIwMjFBRTg5MEZGRjM3NEEwRjAyMjJBCis6MTAyRTgwMDA4RjY0RUQ3MDBGRTU2NEI0MDMwNTdGMDEwMjMxRUY3RkJECis6MTAyRTkwMDAwMjAyMzFFRkFGNjQxMjJBQzc3NDZFMjU2NEY4RTYzMDdGCis6MTAyRUEwMDBFMjBCRDIwOTEyMUQzM0UwNTQ3RkYwODAwMkMyMDlFNTIzCis6MTAyRUIwMDA2NEI0MDMwNzdGODExMjMxRUY4MDA1N0Y4MjEyMzFFRjA2Cis6MTAyRUMwMDAzMDA5MDcxMjFEMzNFMDQ0ODBGMDEyMzI4NDIyMTIxMEMwCis6MTAyRUQwMDA0QjkwRkZGREUwNDQ2MEYwRDIwMTkwRkZGQ0UwNDQwMjIzCis6MTAyRUUwMDBGMDkwRkYwMEUwMzBFNzEzOTBGRjgzRTA0NDgwRjA0MzcwCis6MTAyRUYwMDAzNTgwOTBGRkZDRTA0NDAxRjA4MDBEMTIxRERGNTMzNTVBCis6MTAyRjAwMDA3RjkwRkZGQ0UwNTRGRUYwOTBGRjgxRTA0NDgwRjAxMkRGCis6MTAyRjEwMDAwMkRFMTIxREU3MDIxMENFMTIxMDRCNzg4OUVGRjZEMkI2Cis6MTAyRjIwMDAwMDEyMkFDNzkwRjk2QTEyMUJFQUU5MjQwM0Y5RTQzQTZECis6MTAyRjMwMDBGQUMwMDI3ODgwRTZGRTA4RTZBQTA2RjhBQzAyN0QwMTM3Cis6MTAyRjQwMDBEMDAyMTIyMkQzMTIzMjg0Nzg4OUU2RkYxMjEzODcxMjNDCis6MTAyRjUwMDAzMUE5MDIxMENFOEY2MzEyMkFDNzc4N0MxMjIyQjdFMDAzCis6MTAyRjYwMDA1NDNGRjBFNTgyMjQwNDEyMjJBMUUwNTQzRkYwMTIyM0UyCis6MTAyRjcwMDA0MTI0MEIxMjIyQTFFMDU0RjhGMDEyMzI4NDc0NkUyNTIxCis6MTAyRjgwMDA2M0Y4NzRGQjU2RjY3RjAwMjIxMjEwNEIxMjJBQzcxMjA4Cis6MTAyRjkwMDAyMkZBMjQwNjEyMjI5RkUwRkQxMjIyRTg5MDAwMDMxMjdBCis6MTAyRkEwMDAyMzAyMjQwNTEyMjJBMUUwOTAwMDA0MTIxQUZBMTIzMjIwCis6MTAyRkIwMDA4NDdEMDJFNEZGMTIyRkI0MDIxMENFQUUwNTEyMUQ4RUU2Cis6MTAyRkMwMDBFRjEyMUFGQTBFMEUwRUVFRDM5NTNDRTQ5NTNCNDAwMjNBCis6MTAyRkQwMDBBRTNDRUVEMzk0MDg3NDgwOTQ4MTQwMEE3RTAzOTAwMDQ2Cis6MTAyRkUwMDAwMjc0MDIxMjFBRkFBRjA2MTIzMjZFMjJBRTA3RUQ1NEM0Cis6MTAyRkYwMDAwMzY0MDE2MDAzN0YxMDIyRUQ1NDdDQzM5NDA0NTAwM0VBCis6MTAzMDAwMDA3RjBCMjI3NDZFMkVGODc0MDI0NkY2NzQ5OTJFRjU4MkE4Cis6MTAzMDEwMDBFNDM0RkFGNTgzRURGMDdGMDAyMkJGMDMwNjdDRkY3REU4Cis6MTAzMDIwMDBFMDgwMDQ3Q0ZGN0RFMjhEODI4QzgzRTA0NDgwRjBFNUNCCis6MTAzMDMwMDA4MjI0MDQxMjIyQTFFMDQ0ODBGMDc0NkUyRkY4NzQwNEZDCis6MTAzMDQwMDA0NkY2N0YwMDIyMTIxMDRCRTUzQTY0MDk3MDA0RTUzOTE4Cis6MTAzMDUwMDA2NDAxNjAxNjkwRkY4M0UwNTQwRkZGQzNFNTNBOUZFNURCCis6MTAzMDYwMDAzOTk0MDA0MDA1MTIyOEQ3ODAwMzEyMzI3QTAyMTBDRTFDCis6MTAzMDcwMDA5MEZGRkNFMDIwRTcxRkMyQUY3REZGQUMwNTFERUM2MEI4Cis6MTAzMDgwMDAxNTdFMDQ3RjAwRUYxRkFBMDY3MDAxMUU0QTYwRUM5MEI3Cis6MTAzMDkwMDBGRjkyRTRGMDgwRUYyMjEyMTA0Qjc4NjZFNkZFMDhFNjFECis6MTAzMEEwMDBGRjMwRTAxMjMwRTEwRjkwRkZGQ0UwNDQyMEYwN0YwNDlECis6MTAzMEIwMDAxMjEyNjExMjFERjYwMjEwQ0U4RjIzQzIwODEyMkFDNzA3Cis6MTAzMEMwMDAxMjIyQzA3ODdFMTIyMzQyMjQwQjEyMjJBMUUwNTRGODZGCis6MTAzMEQwMDBGMDEyMzI4NEFGMjMxMjEzODcyMjhFNUY4RjYwRTU2MDc3Cis6MTAzMEUwMDAxNTYwQUU1RjcwMDIxNTVGRDM5NDAwRUU5NDAwNDAwOTQ2Cis6MTAzMEYwMDA3RTA3N0ZEMDEyMTAyNDgwRTUyMjExREMyRUM3MjRCMDc5Cis6MTAzMTAwMDAzMjYwMzA5MDMwM0UzMTZGMkY4MjI3MkUyQzgwMzExMjZBCis6MTAzMTEwMDAzMTMxMUU2NDJGMTEyQzE4MEUxMjEwNEI3ODg2MTIyMzk5Cis6MTAzMTIwMDAzMTIwRTEwNzdGMTIxMjMxQTk4MDBBNzg4NkU2RkYxMjZBCis6MTAzMTMwMDAyNDBBMTIzMUE5MDIxMENFMTIxMDRCNzg4NzEyMjMzMUMzCis6MTAzMTQwMDAyMEUyMDc3RjExMTIzMUE5ODAwQTc4ODdFNkZGMTIyRjRCCis6MTAzMTUwMDA0RTEyMzFBOTAyMTBDRThGNjExMjJGNEVBRjYxMTIyQThBCis6MTAzMTYwMDBDNzEyMjJDMDEyMzI4NDc0NkUyNTYxRjg3NEZENTZGNkJGCis6MTAzMTcwMDBBRjYxMTIxMzg3MjIxMjEwNEJFNTNBNjQwOTcwMDRFNTFGCis6MTAzMTgwMDAzOTY0MDE2MDA1MTIyQ0Q4ODAwNjEyMUUxNDEyMUUxQzEwCis6MTAzMTkwMDAwMjEwQ0UxMjJBNTQxMjEzMDM5MEY4MDRFMEZGNjAwNUM3Cis6MTAzMUEwMDA3RDAxMTIxMkEwMTIyOURFMTIxMzNGMTIxMUJDODBFMzFFCis6MTAzMUIwMDAxMjFEOEVFRjEyMUFGQUU0RjUzM0Y1MzRFRjYwMDMwMkI0Cis6MTAzMUMwMDAzMjdBRTRGRjEyMzI2RTIyOTBGRkYwRTBGRjU0QTA2MEVBCis6MTAzMUQwMDBGN0VGMzBFNTA4OTBGRkYwNDQyMEYwQzMyMkQzMjI5MEFGCis6MTAzMUUwMDBGRkYwRTBGRjU0Mjg2MEY3RUYzMEU1MDg5MEZGRjA0NDZGCis6MTAzMUYwMDAyMEYwQzMyMkQzMjJFRjMwRTcwODEyMUQ0NUUwNTRERjUwCis6MTAzMjAwMDBGMDIyRUYxMjFEOThFMDU0REZGMDIyODEwMTgyMDI4MzQ4Cis6MTAzMjEwMDAwMzg3NDAwMDQwMDA0MDAwNDAwMDQwMDA0MDAwMDgwMDlDCis6MTAzMjIwMDA3ODdFMTIyMkI3QTNBM0UwRkYzMEU3MDY1NDdGRjA0NDc0Cis6MTAzMjMwMDA4MEYwMjI4NTNCMzk4NTNDM0E5MEZGODJFMDU0RjdGMERDCis6MTAzMjQwMDBBM0UwNTQ3RkYwMjJFNEZFRUU5MDMyMDQ5M0I1MDcwMjJGCis6MTAzMjUwMDBEMzIyMEVCRTA3RjJDMzIyMDAwODE4MjgzODAxODE5MDNECis6MTAzMjYwMDAwQTAyMDAwMDExMTMwMDEyMTA0QjdGMDIxMjEwREExMjMyCis6MTAzMjcwMDAxREY2MDIxMENFNzUzOTAwOEYzQTEyMUNFMDEyMkNEOEMwCis6MEUzMjgwMDAyMjEyMUUxQzEyMURERjEyMUUxNDIyQzIwODIyNzIKKzowMDAwMDAwMUZGCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQgQmluYXJ5IEltYWdlIChmb3IgVEkgYmFzZWQgcHJvZHVjdHMpCisvLyogR2VuZXJhdGVkIGJ5IFRJQmluMkMgdjIuMDAgKHdhdGNocG9ydCkKKy8vKiBDb3B5cmlnaHQgKEMpIDIwMDEgSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTI2L2JpdHN0cmVhbS5IRVggYi9maXJtd2FyZS9lbWkyNi9iaXRzdHJlYW0uSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NGQzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWkyNi9iaXRzdHJlYW0uSEVYCkBAIC0wLDAgKzEsNDM5MSBAQAorOjEwODAxMDAwRkZGRkZGRkZBQTk5NTU2NjMwMDA4MDAxMDAwMDAwMDdBRQorOjEwODAyMDAwMzAwMTYwMDEwMDAwMDAwQjMwMDEyMDAxMDA4MDNGMkQ3NQorOjEwODAzMDAwMzAwMEMwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDk5NQorOjEwODA0MDAwMzAwMDIwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDEyRAorOjEwODA1MDAwMzAwMDQwMDA1MDAwM0UwNDA4MTIxMDAwMDAwMDAwMDBGNAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDRCQworOjEwODA4MDAwODAwMDAwMDAwMDAwMDAwMDAwMTIxMDAwMDAwMDAwMDA0RQorOjEwODA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwODQwQworOjEwODBCMDAwODAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAzRQorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA5OAorOjEwODBFMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDBDRQorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwODAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDBDRAorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzQgorOjEwODE0MDAwODAwMDAwMDAwMDAwMDAwMDA4MTMwMDAwMDAwMDAwMDA5NAorOjEwODE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwOTAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDA1RAorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1QgorOjEwODFBMDAwOTAwMDAwMDAwMDAwMDAwMEY3MTAwMTE0MDAyNTAwMDVGOQorOjEwODFCMDAwNDAwMTUwMDA5NDAwMTUwMDA3NDAwMUQwMDA5NDAwMjVCNAorOjEwODFDMDAwODAwMTYwMDJEODAwRjYwMDJGODAwMkUwMDREODM3NDQxNgorOjEwODFEMDAwOTAwMDAwMDAwMDAwMDAwMEMwMDVGMjAwQ0M5MDM5MjBBMworOjEwODFFMDAwMEQ5ODAzRDIwMEU3ODAzNzA0MEVGMTgzN0UwMERGOTAwNAorOjEwODFGMDAwMzFFNDhGNzkwMzdDMjBERjIyMzNDMDBDRjAyMjMwMDA4MQorOjEwODIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTA2MjAwODAyNDIyMjAyNgorOjEwODIxMDAwMDg5ODEyRTIwMDhCODEyMDk0MDg3NDAyMkUwMDhBMDFEMworOjEwODIyMDAwMjJDODA4OTIwMjNEODA4QjYwMjI4MDA4QjAwMjIwMDRBMAorOjEwODIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwQTAwMDIwMDBGOQorOjEwODI0MDAwMEIxMDAyQzAwMEExMDAyNDA5NEEzMjAyNDgwMEIxMDAwQworOjEwODI1MDAwNjJDMDA5QTA0NkNDMjQ5MzQ5MkE4MDQ4MzAyMjYyMDE5QQorOjEwODI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEyQTgwMDIyMDA0NQorOjEwODI3MDAwMDg5MDAyRTAwMDg5ODAyMjQ0MDhCMDEyQTgwMEE5NDBCQQorOjEwODI4MDAwMjJDMDA4OTA4MkFDMDA5QjA0MkFDNDA4QjAwMjcwMDQ4QgorOjEwODI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTQ4NDAwRTk4MEIyNjQ2NworOjEwODJBMDAwNERBMDAzRUEyMEU5QzAzNjQwMEVCMDAzNDQwMEZCOTAyNQorOjEwODJCMDAwQjI4ODBEQkMwM0VDMDg1QjAwMzg2MDJDQjA2MzQwMDQ0RQorOjEwODJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDI2REQ5MDM3NDA5RgorOjEwODJEMDAwNEZFMDEzRjI4MEZEMDAzREEwMEQ3MDAzNzUwMDVFMDBCRAorOjEwODJFMDAwM0ZBNDBERjkwMzVDMTBFQjAwMzcyMDBGMzAwM0I4MDBGQQorOjEwODJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRTk4MDMyNDA0NworOjEwODMwMDAwMENBMTgzRTgwMEU5MDAzMjQyMEVCMDAzQUM0OEU5MDA1QQorOjEwODMxMDAwM0E4MDBFQTQwM0VDMDBFQjAwQjIwMzBFQjAwQjEwMDQ4NQorOjEwODMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRTgwODlEMTIwNDBGOAorOjEwODMzMDAwMDhBMDAyQzAwMDgxODAyMjU4MDhGNTAyMkY0MDhCMDA1RgorOjEwODM0MDAwMjBDMDA4MzA0MzdDMDA4NzAwMjI0MDA4RjAwMjMyMDA0MQorOjEwODM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MjAxOUE0NDI4QTIwRAorOjEwODM2MDAwMDgxODAyQzA4MEExODBBMDAwMDgzMDAyOEUwMEFCMDA3NworOjEwODM3MDAwMkM0MDBBMzAwMjBDMDBBMzAwMjA0NDBBMzAwMjM4MDBDRQorOjEwODM4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDEzMjAwOTY4MjJCQTIyNQorOjEwODM5MDAwODg1QTAyRjIwMDA1ODAyOUEwMDg3ODQyQkUwMDhFODQyNworOjEwODNBMDAwMkY2MTBBRDgwMjRFMTBBNzgwMjAyODA4NzgwMjE4MDBGMgorOjEwODNCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwRjIyNDM4ODA1NworOjEwODNDMDAwMkMxQTAzQzQwMEUwNThBMDgwMkUzMDAzODg0MUUzMDIzOQorOjEwODNEMDAwM0M0MDA2MjAwMzhDMDBFMzAwMTAwMDBFMzE0MzEyMDJFMworOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRUUwMTM3ODRFRQorOjEwODNGMDAwOUZEOTAzRjA0OEZEMTAzN0MwMDdCMDAzNUMwMEY2MTBBQQorOjEwODQwMDAwMzNDMDBERTEwM0VEMjBERjEwM0Y0ODBGRjAyM0QwMDYwRAorOjEwODQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAyQ0I4MDMwQzAyRQorOjEwODQyMDAwMENBMDAzRTIwMkM5MDAzQTQwMERCNjAzNjQwMEVCMDA2MQorOjEwODQzMDAwM0VDMDBGQjAwM0VEMDBGQjAxM0VFMDBDQjAwMkVBMDBDRAorOjEwODQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwODcwMDIxQzA2NworOjEwODQ1MDAwMjg2MDAyRDAwMDg1MDAyRDgwNDhGMDgyMUMwMEI3MDAwMworOjEwODQ2MDAwMkQwMDBCNTAwMkRDMDBCN0EwMkY4MDI4N0EwMkQyMDQyNgorOjEwODQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMxMDBCRTAwODc4MDIxRTAxNQorOjEwODQ4MDAwMjg2ODAyRDcwMDg0ODAyREUwNDk3OTA2NTMwOUI1ODAxOQorOjEwODQ5MDAwMkRFMjBCNzgwMkRFODBCNzkwMkRCMDA4NzkwMkYwMDA1MworOjEwODRBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODMwMTI4QzgwMAorOjEwODRCMDAwMDgyMDAyQzIwNjgxMDAyQ0M4ODgzMDYyMEUyMUIzQTBCOQorOjEwODRDMDAwMkNDMTBCQjYwMkNDMDBCMzAwMkNFMDA4MzAwMkQyMDQ2MQorOjEwODREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0E0MEIwODA4RAorOjEwODRFMDAwMEMyQzAyRjgwMEM2MjAzRjkwMERBMDAzN0IwMUVFRTBBQgorOjEwODRGMDAwM0ZCNDBGRUMwM0U4MDBGQTAwM0ZBMDBDQTAwM0ZBMDQxRAorOjEwODUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMzAwRjgwOTI2MDBCOQorOjEwODUxMDAwMEZDMTgzRTAxMEY4NDAzQzAwMEY4MDAzRTAwMUY4MDAzOQorOjEwODUyMDAwM0UwMDBGODEwM0UwMDRGODAwM0UxMDBGODAwM0QyMDBFQworOjEwODUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAyQzkwMDNFNDBDNgorOjEwODU0MDAwNEY5MDYzMjY4NDM5MDJCMjQwMEM5MTAzMjQwMEY5MDA1NQorOjEwODU1MDAwM0U0MDBGOTAwMzI0MDBGMTAwM0E0NDBGOTAwM0MyMDQwMAorOjEwODU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ0NTAwODk0MDJFNDBEQgorOjEwODU3MDAwMDg5MjBBMjQwMEI5MzEyMjYwODg5NDhBMjQyMEI5MDAyNAorOjEwODU4MDAwMkU0MDBCOTAwMjI0MDBCOTAwMjI2ODBCOTAwMkUwMDBGQworOjEwODU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNEEwOEQ4NDJGNDA2QQorOjEwODVBMDAwMEJEMTAyMjQwMEI5MDAyMjRBMDgxMDAyMkM0MEI5MDA2NQorOjEwODVCMDAwMkU0MDBCOTAwMjI0MDBCOTAwMkE0MDBCOTAwMkM2MDAwNgorOjEwODVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwODU4MDJENDBEOQorOjEwODVEMDAwMDg1MDAyMDQwQ0I5MDBBMDUwMDgxNDIyMDQwMEIxMDA5NQorOjEwODVFMDAwMkM0MDBCMTAwMjA0MDBCMTI4MjA0QTBCMTMwMkMyMDFEOAorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzA1MDNFODA4OAorOjEwODYwMDAwMEZDMDQzMjAwMEY4MDAzMDAwMkM4MDIzMjAwMEY4NTFEOAorOjEwODYxMDAwM0UxNDhGODUwQjIxNDBGODcwM0EwODBGODQ4M0VFMDNENworOjEwODYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDAwRjkwNDNFNDAwNgorOjEwODYzMDAwMEY5MDIzRDQwMEZEMDAzRjUwMEY5NDAzRjQwNEZEMDA3RAorOjEwODY0MDAwM0Y0MThGRDA0M0U1MENGOTAyM0Y0QTBGOTIwM0U2MDIwNworOjEwODY1MDAwNzAwMDAwMDAwMDAwMDAwMDg4MDVENDAxRkQwMDNENDBDRQorOjEwODY2MDAwMENEMDEzRjQwMEQ1MDAzMzZBMUNEQzgzMzQwMEQxMDQzMQorOjEwODY3MDAwM0U1MDBDOTEwM0U2QzBEREIwMzM2QTJDOUM4M0U2MDBDQgorOjEwODY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA5Rjg4MDJFMDBBMworOjEwODY5MDAwODg4MDAwRTgwMEJBMDAyMkIwMDg4RTAyMjgwMDg4QTg2RQorOjEwODZBMDAwMjYyODA4OEEyMkUyMDA4OEU0MjIzMDA4OEMwMkNFMDRDMAorOjEwODZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEyODJFNDA3MgorOjEwODZDMDAwMDgxMDAyQzQwMDk5MDAyMDQyNDgxMDAyNjQwMTkxODAwMQorOjEwODZEMDAwMkM0ODA4MTAwMkM0QzA4MTQwMjA0QTA4MTIwMkMyMDE3RQorOjEwODZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDk0QTkwMjJFNDA5QworOjEwODZGMDAwMEE5MDAyNjQwMEI5MDA4MjYwMDg5MDAyNjYwMDg5MTA0NgorOjEwODcwMDAwMjQ2MjA4OTAwMkU0MDA4OTAyMjI0MDE4OTAwMkM2MDQwNAorOjEwODcxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwNDNFNDAyMworOjEwODcyMDAwMEM5MDEzRTQwMEQxQzAxMjUwMjg5MDAzNDQwMEQ5MDBFQgorOjEwODczMDAwM0U0MDI4OTIwM0U0MDJEOTAwMzI0MjhDOTAxMkU4MDRCMQorOjEwODc0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjIwRjkwMDNFNDE1MgorOjEwODc1MDAwMkQ5MDAzRTQwMEY5MjAzRTQwNEY5MDAxQTQwMEY5MDA2MQorOjEwODc2MDAwMzY0MDhGOTIwN0U0MDBGMTAwQkU0MDBGOTAwM0NBMDAyQworOjEwODc3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDNFMjA5QgorOjEwODc4MDAwMEM4MDAzRTA0MEY4MDAzNjEyMkMwMDAzRTBDMEY4MDAzMworOjEwODc5MDAwMzIxMDBEODQwM0EwMDBGODAyM0UwODBGODAwMENBMDRDNgorOjEwODdBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTkwOEUwMDJEQTA1NworOjEwODdCMDAwODBFODAyRkEwMEJFNDAyMzgwMDhFODAyRkEwMDhBMDAzRQorOjEwODdDMDAwMzY4MDA4QTAwMkU4MDBCQTAwMkY4MDBCQTAwMzhBMDBDMAorOjEwODdEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0NjAyODMwMDJDODBCNQorOjEwODdFMDAwMDgyMjQyQzY4MEIxNjAyRUY0MDgzODIyQ0UwMEEzMDBEMQorOjEwODdGMDAwMjBDMDA4MzAwMkFDMDBCMTAwMkU0MDBCMzAwMkNBMDA4RAorOjEwODgwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAyODUwMTJEQzJFMgorOjEwODgxMDAwQTg0NDAyRDQwMEJEMDEyOTQwMTg2OEQyREMwMDhGODAzMgorOjEwODgyMDAwMjVDQzI4NzM0MkRDODBCNTMwMkRDMDFCNzIwMkU4MDBENQorOjEwODgzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTA0QzY4MjNERTBDMQorOjEwODg0MDAwMEM0ODEyRDYxMEY1ODAzQ0EwMEM3MDAzREUwMEU3OTBCNworOjEwODg1MDAwMjNFQTA0N0EwMzlFMDBGNTgwM0RFMDBGN0EwM0VBMDJFMgorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzAwOUMwMDNFQzBBRAorOjEwODg3MDAwMEY4MDAzRTQxMEY5MDAzNjAxMEZBMDAzQzAwMEVCMDBFNQorOjEwODg4MDAwM0VEODRFQjA4M0VDMDBGOTAwM0VDMDBGQjQ0MzgyMDZFMAorOjEwODg5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVERTAwQ0Y4NDMxRTA3MQorOjEwODhBMDAwMEVDODQzRDYwMENEODAzM0UwQ0REOTAzM0EwMEZGODgwRgorOjEwODhCMDAwMzNFMDBGRjkxM0ZFMjRGRDgwM0YyMDBDRjY4MzEwMDBGNworOjEwODhDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODUwMDIxQzQ3OQorOjEwODhEMDAwMjg0MDgyRDAwMEQ1MDAyMzgwNDhDOTAyMUMwMEI3MDA4MAorOjEwODhFMDAwMjFDMDBCNzEwMkRFODBCNTEwMkRDMDI4RjAwMjJBMDREMQorOjEwODhGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwOTYwMDIxQzBGNQorOjEwODkwMDAwMEE0MTAyRjU0MDhEMDAyMTQwMDk1MjAyOTgyMEI3MDAyQgorOjEwODkxMDAwMjFDMDBCNzAwNkRDODBCNTAwMkRDMDA4NzAwMjA0MDA3OQorOjEwODkyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzEwOTgwMDAwQzA3RgorOjEwODkzMDAwODgwNDgyQzAwMDkxMDQyMDAzMDkwMDAyOEEwMEIzMEE1RgorOjEwODk0MDAwMjBDNDhCMzQwMkNDMDBCOTAwMkNDMDAwMzAwMjE4MDRDMworOjEwODk1MDAwMzAwMDAwMDAwMDAwMDAwMEY4MTVBQzAwREIwMEIwQzBFMworOjEwODk2MDAwMEU5QzAyQzUwMEMxMTBCMkMwMERCMDBCQTcwOEZGMDBERAorOjEwODk3MDAwQjNDMDBGRkEwM0ZDMDBGRDAwM0VENDBDRjAwQjJFMDQzNAorOjEwODk4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RUQwMDNFNDBBQworOjEwODk5MDAwMEY4NDAzRTU0MEY5NDAzRTYwQ0VCNDQzNjQwMEZCODBBMQorOjEwODlBMDAwM0VDMjBGQjAxM0VDMDBGOTAyM0VDMDRGQjAwM0UxMDAyRAorOjEwODlCMDAwMzAwMDAwMDAwMDAwMDAwMDkwMTBGRjAwQ0UwMDMzQzAyNworOjEwODlDMDAwMEVDMDA3NzQwNEVDMDAxMTgwMENDQTAzRkU2MEZGMDBBNworOjEwODlEMDAwM0ZDMDBGRjA4MzNDMDBERDAwQjM1MDJDRjAwMzIwMDRCNworOjEwODlFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA0QzA0OEIwQjIyNzA1RQorOjEwODlGMDAwMDgwODAzNjcyMDhBODhBMjAwMjg4NDAyRTcwMEJCMDBEOQorOjEwOEEwMDAwM0VDMDBCQjAwMjJDMDBCOTAwMjI2MTA4QjAwMzYwNDBFOAorOjEwOEExMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIyMDIyRTJFNgorOjEwOEEyMDAwMEE4QzAyMjYwMEE5ODAyQUMwMDhCNDQyRUQwMEJCMDBDRgorOjEwOEEzMDAwMkVDMDBCMzAwMjJDMDBCOTAwMjA4MDA4MzAwMjYwMDBFQworOjEwOEE0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwRTAxODEwMEEwQzBFQQorOjEwOEE1MDAwMDg4MTAyNDQwMDgxMDAyODgxMDgzMjAyQ0MwMEIzMDA2MgorOjEwOEE2MDAwMjhDMDBCMzAwMjBDODBCMTAwMjBDMDA4MzAxMjQyMDEzNworOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzIwMTMyQzA0OAorOjEwOEE4MDAwMkU4MDE2MkMwOEU5MDAzQTQwMEM4MDAzRUMwMEY3MDAxOQorOjEwOEE5MDAwMkZDMDBGRjAwQjJDMDBEOTAwMzA0MDBDRjAwMzYwMDMwNgorOjEwOEFBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMERGODA4RkYwMDNGQzBDQgorOjEwOEFCMDAwMEZDMjE3RkMwMEY3MDAzNzAwMEY4NDAzRkMwMEZGMDAxMworOjEwOEFDMDAwM0ZDMDBGRjAwM0VEMDBGRDAwM0Y0MDBGRjAwM0U4MDY0QworOjEwOEFEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQ0YzMDE3NDgwNworOjEwOEFFMDAwMEM1OTAzQjkwMERGMjgzNTI0MEQ4MkEzN0M4MEZGMDBEOAorOjEwOEFGMDAwM0ZDODBGRjIwM0U0QTBFRjgwM0ZFMThDRDg0MzMwMDA4MQorOjEwOEIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRDQ4ODkzNEEzNzA2MAorOjEwOEIxMDAwMjhCMDIzNjAwMDhCQzAyMjQwMDhCNDgyMkY0MEJGRDExMAorOjEwOEIyMDAwNkZGNDhFQkQwMkU3MDBCQjgwM0FFMDA4OTgwQTI4MDQ4MworOjEwOEIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNEIwOTEwMEE4NTA3QgorOjEwOEI0MDAwMDhCMjAyQzg4NDkzMDAyNDQ5MEIwMjAyNEMwMEIzMDQwQgorOjEwOEI1MDAwMkNDMDBCMzA0Mjg0MDBCMzAwMkUwMDBBQjAxMjIyMDE1OAorOjEwOEI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBQzAyOTkxODJBNDRGNworOjEwOEI3MDAwMDhCODgyQTIwMUJCMDAyODYwMEFBMDEyNkMwMEJCMDBFQQorOjEwOEI4MDAwNkVDMDBBQjAwMkU0MDBCQjAwMkEwMDJBQjAwMjM4MDQxQQorOjEwOEI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDA4REFDMDNBNjAwNAorOjEwOEJBMDAwMEMxODBBRUIwNERCMDAzNkUwMDc4NTgzNkMwMEZCMDA0MQorOjEwOEJCMDAwMkVDMDBGQjA0M0U0MDBFQjAwM0U4ODBFMTgwMzEwMDRGMworOjEwOEJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwNDE5QzEwRTkwMDM3NjBFOAorOjEwOEJEMDAwODdGMDE3NzAwMENGMDEzN0MwNEM5ODAzQkMwMEZCMDAzMgorOjEwOEJFMDAwM0ZDMjBGRjAwM0U0MDBGRjQwM0ZFNDBERDkwM0YwMDA2MworOjEwOEJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRjQwMDMwNDBCRAorOjEwOEMwMDAwMEZCNDAzOTkwMEZCMDAzRUMwMEQwNDIzMkMwOEZCODgyMQorOjEwOEMxMDAwMzJDMDBGQjAwM0U2MDBEQjEwM0UwMjBGQjA4M0QwMDQ3OQorOjEwOEMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjk1MEEyNDgzOAorOjEwOEMzMDAwOEJCMDAzMjAwMEQ3ODAyRUQ4MDA4MDAyM0MwMEJGODA3QworOjEwOEM0MDAwMjNFODhCRjAwMkY0NDA4QjQwMEM0MjAzQjYwMkYyMDBBMgorOjEwOEM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjI0NDAwQzhFNQorOjEwOEM2MDAwMEIzMDEyOEMwMEEzODAyNEM4MEIwMDBBQ0MwMEIzNDQ0NAorOjEwOEM3MDAwMDRDMDFCMzYwMkM1MDE4MzBDMkNBMDBCMzAwMkY4MDA4NworOjEwOEM4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc5MDIxNjQ4MQorOjEwOEM5MDAwMEJGODAyNEEwNDk3ODEyRkU0MEE3ODAyOUUwMEI3ODBGRAorOjEwOENBMDAwMjFFMDhCNzg4MkQ2ODY4Nzg0MkRBMDBCNzgwMkMwMDBDNQorOjEwOENCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwRjIwMDMwQzAzRQorOjEwOENDMDAwMEYzMDAzOEMwMEUzMEEzQ0MwMEYxODAzOEMwMEYzMDI0MgorOjEwOENEMDAwMzBDMDFGMzAwMUM2ODBDMzAwM0NDMDBGMTIwM0RBMDI0RgorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzAwRkYwMDNGNDFGQworOjEwOENGMDAwMEZGMDAzQjgwOEZGMDgzRkMwMERGMDAzM0MyMEZGMDg0OQorOjEwOEQwMDAwM0JEMjBGRjAwM0Y0NDBFRjAwM0ZDNDBGRDAwM0QwMDY3NgorOjEwOEQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRkUwMDMyQzI3MAorOjEwOEQyMDAwMEMzMDBCMjYwMEZCODAzNkMwMERBMDAzRUMwMEZCRTBFRQorOjEwOEQzMDAwMzJEMDBGQjg0MzY0NDREQjA0M0U4MDBGQjAwM0UyMDAzRQorOjEwOEQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMEExQzBBNgorOjEwOEQ1MDAwODg3MDAzMTAwMEI3MjAyMUMwMDg3MDAyREM4MEIzMzA5NworOjEwOEQ2MDAwMzFDODBCNzQwMjE0MDA4NzQwMkRDMDRCNzAwMkQyMDAzMgorOjEwOEQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5NjIwQjY4MDIwRTBFNworOjEwOEQ4MDAwMjhGODAyOTQxMEI3ODEyN0UyMDk3ODAyREUwMEI3QTAyNAorOjEwOEQ5MDAwQTlFODBCMzgwMjc2MDA4NzgwMkRBMDBCNTgwMkYwMDA1RQorOjEwOERBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRTEwQjMwMDIwQzREMgorOjEwOERCMDAwMDgyMDAyODAxMEIzMDAyMkM4MDhCMDAyQ0MxMUIzMDIxMAorOjEwOERDMDAwMjhDMDBCMzAwMjA0MDA5MzgwMkNEMjBCMTAwMkQyMDQ3NgorOjEwOEREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkU0MDMyQTBBRQorOjEwOERFMDAwMENFNDAzOTg4MEZBMDAzN0EwMERFMDgzRTgwMEZFMDA1MQorOjEwOERGMDAwM0E4MDBCQTAwMzY4MDBEOEEwM0Y5MDBGQTAwM0ZBMDRBQworOjEwOEUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA4RjgwODNFMDA5NAorOjEwOEUxMDAwMEY4MDAzMjAwMEY4NDAzRTAwMEY4MDAzRTAwMEY4MDRCQworOjEwOEUyMDAwMzAxMDBGODAwM0UwMDJFODAwM0UwMDBGODAwM0QyMDAwNAorOjEwOEUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjEwMDMyNDBBMworOjEwOEU0MDAwMEU5MDgzQTQwMEM5ODAzRTQwMEU5MDAzQTQwMEY5MDA1OAorOjEwOEU1MDAwM0U0MDBDOTAwM0U0MDBDODAwM0U0MDhGOTAwMzAyMDRBMworOjEwOEU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEwNjJFRgorOjEwOEU3MDAwMDgxMDAyMjQxMDg5MDAyRTQwMDg5MDAyMjQwMEI5MDAzNgorOjEwOEU4MDAwMkU1MjA4OTQwMkM0MDA4OTQwMkU0MDBCMTAwMzYwMTAzQgorOjEwOEU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxODIyNDQ0QQorOjEwOEVBMDAwMEE5MDAyQUMwMDg5MTAyRUMwMEE5MDAyQTQwMEI5ODA3QQorOjEwOEVCMDAwMkU2MDA4OTgwMkU2MDI4OTA4MkU0MDBCOTAwMjA2MDBGOAorOjEwOEVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMEEwNDgxOQorOjEwOEVEMDAwMDg5MDAyMjQwODgxMjMyQzUwMDgxMDAyMDQ4MEIxMjAzRAorOjEwOEVFMDAwMkM0ODI4MTIwMkU0ODA4MTIwMkM0MDBCOTgwMjQyMDU3NQorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMDA5MgorOjEwOEYwMDAwMEU4NTAzQTFFMENBMDAzRTAwMEU4NTAzQTAwMEY4MDAxNAorOjEwOEYxMDAwMkUwMDlDQTAwM0UwMDBDODI4M0UwMDBGODAwMzJFMDExNQorOjEwOEYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjUxMDNGNDQ4MAorOjEwOEYzMDAwMEZEMDAzRjQwMEYxMTAzRDQwOEZENDAzRTQ1MEY5MTAzQQorOjEwOEY0MDAwM0U0NTBGOTEwM0Q0NDBGQzAwM0ZDMDhGRDAyM0U2MDQ4MAorOjEwOEY1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIwQ0RBODMzNDA5NgorOjEwOEY2MDAwOEREMDAzMjY4MENEMDAzRDUwMEM5QTAzNjQwMEY5QTBGQgorOjEwOEY3MDAwN0E2QTBGOUE2M0U2ODBDOTgwM0U0MDBGOTAwMzA2MDAyQworOjEwOEY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwODhFMDM2MDBBQQorOjEwOEY5MDAwMDg4MDBBMjE0MkM4MDAyRTI5MENBNDQyMjAwMEI4NDBCMworOjEwOEZBMDAwMkUwMDBCODEwMkUxMDA4ODAyM0EwMTBCQzAwMjBFMDQ4MAorOjEwOEZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwODI0NDBDMQorOjEwOEZDMDAwMDkxMDAyMDQwMDkxMDAyQzQwNEIxNDAyNDQwMEI1MTAxQgorOjEwOEZEMDAwMjk0MDBCNTAwMkY1MDBCNTAwMkQ0MDBCRDAwMjAyMDFENAorOjEwOEZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNjAxODkwMDI2NDA1MgorOjEwOEZGMDAwMDg5NDAyMjQwMTg5MDAyRTQwMUE5MDAyNkMwMEJGMDJERQorOjEwOTAwMDAwMkY0MDBCRDAwMkY0MDJCRDgwMkI0MDhCRDgzQTA2MDRDRgorOjEwOTAxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwNTM2NDExMgorOjEwOTAyMDAwMEQxQzAzMjQwMEQ5MDAzRTQyMkY5NDAzNjQwMEY5MDA3NAorOjEwOTAzMDAwM0E0MDBGOTAwM0M0MDBGOTAwM0U3MDBGMTAwMzI4MDQ1QgorOjEwOTA0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDA4RjkyNDNFNDA2MAorOjEwOTA1MDAwMEY5MTAzRTQwMEY5MDAzRTQxMEQxMDAzQTQwMEY5MDA1NAorOjEwOTA2MDAwM0U0MDBGOTAwM0U0MDBDOTAwM0U2NDBGOTAwM0NBMDAyNQorOjEwOTA3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA4Qzg4MDMyMDIzNAorOjEwOTA4MDAwMEY4MDAzMDAwMEM4MDgzQTEwQ0U4NDAzRTAwMEZDMDAwMworOjEwOTA5MDAwM0YwMDhGQzAwM0YwODBGQzAwM0YxODBGQzA0M0NBMDQ5QworOjEwOTBBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEUwMEExODA5QworOjEwOTBCMDAwMEJFMDAyMjgwMERFQzIyMzkwMDBBMDAyRTgwMEJBMDAwNAorOjEwOTBDMDAwMkU4MDBCQTAwMkU4MDBGQTAwMkU4MDBCQTAwMkNBMDAzRQorOjEwOTBEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTk4MTYwQzA5RAorOjEwOTBFMDAwMEIxMDAyMEMwMDkwMTAyQUZDMEIzMDAyQ0MwMEIzMDBENQorOjEwOTBGMDAwMkNDMDBCMzAwMkNDMDBCMzAwMkNDMDBCMzAwMkNBMDBENQorOjEwOTEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgyOTU0MDIxQzAxQQorOjEwOTExMDAwMEI1MDAyMUM4MDkwODAyMzAxMDk3MjEyREMwMEI2MDAwMworOjEwOTEyMDAwMkQwMDBCNDAwMkQwMDBCNDA5MkQwMDRCNDA4MkU4MDAxNgorOjEwOTEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTgwREQ4MEIxRTA5MworOjEwOTE0MDAwMEZEQTAzMEY4MEQ0ODAzOUUwMEI3QTAzREUwMEY1ODA1QworOjEwOTE1MDAwM0QyMDBGNDgwM0Q2MTBGNjgxM0RFMDhGNjgwM0VBMDJGOAorOjEwOTE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRUQwMDNFMDAwMworOjEwOTE3MDAwMEY5MTBCRUMxMEY4MDAzRTAwMEVCMDAzRUMwMEY4MDA2RAorOjEwOTE4MDAwM0VDMDRGQjAwM0U4MDBFOTAxM0UwMDBGOTAwM0MyMDY2NQorOjEwOTE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTIwQkY4MTMzQTQzNQorOjEwOTFBMDAwOEMxOTAzM0UwMENEODAzRkUwMEZGODgzM0UwMEVGODAzNgorOjEwOTFCMDAwM0ZFMDBGRjkxM0ZBMTBGRDgwM0ZBNDBGRDgwM0MwMDA2MQorOjEwOTFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkYyMDMxQzIwOAorOjEwOTFEMDAwMDg1QTAyM0MwMjg3MDAyRDk0MEI3MDBBMUM0MDg2MTAyRQorOjEwOTFFMDAwMkQwMDBCNDAwMkQ0MDBGNjAwMkQ0MDRCNjAwMkVBMDQzMworOjEwOTFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTIzODAxOAorOjEwOTIwMDAwMjg1MDAyMUMwMDg0MDAyREMwMEIzMDAyMUMwMEI1MDA0OQorOjEwOTIxMDAwMkQwMDBCNDAwNkQwNDBCNDA4MkQ4MDBCNDgwMkMwMDA0MgorOjEwOTIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjMwOEEwMjBBMworOjEwOTIzMDAwMDgxMThBMEUwMDgwMDAyQzkwMEIzNzAyMEMwMDkwMDA2MQorOjEwOTI0MDAwMkNDMDBCMzA0MkNDMDRBMzgwMkM1MDBCMzAwMkM4MDQzRAorOjEwOTI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRjk4MDMyNjA1QQorOjEwOTI2MDAwMENENDAzM0M4MDg4MDAzRUQwMEZGODAzMjgwMEZBMDA5RAorOjEwOTI3MDAwM0VDMDBGQjAwN0VDMDFCQjgwM0U1NDBGQjAwNkVBMDRCRAorOjEwOTI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRTA4Rjk4MDNBQzA5NQorOjEwOTI5MDAwMEY5MDAzRUMwMEY4NDAzRTU4MEZCMDQzRTkwMEVCNDQ1OAorOjEwOTJBMDAwM0UwMDBGODAwM0UwMERGODAwM0U4MDBGODAwM0UwMDBEOQorOjEwOTJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDMzNDA0RgorOjEwOTJDMDAwMENEMDAzM0MzMENDMDAzQkMwMkRGMDAzRDgwMkNDMDBDNgorOjEwOTJEMDAwM0QwMDBDQzAwM0Y0MDBFRTAyMzc0MDBDRTAwM0MwNDQzNAorOjEwOTJFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzE4ODM4NDIwMDAxRQorOjEwOTJGMDAwNEExMDAyMEMwMEE4NDgyRTYwMDhCMDAyRTkwMDg5NDAxQworOjEwOTMwMDAwMkVDMDA4QjAwMkU4MTBCMTAxMjA4MDBBOTAwM0EwNDBFRQorOjEwOTMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEI4MjIyMDg1NQorOjEwOTMyMDAwMDg5MDAyMkMxNDg4MDQyQzA4MDhCMDEyRTgwMDhBMDA2NworOjEwOTMzMDAwMkVDMDBBQjAwMkU4MDFCOTAwMjYwNDA4OTAwMkUwMDAzRAorOjEwOTM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODM4MEEyQzA2MAorOjEwOTM1MDAwMEE5MjAyMkMwMEEyMDAyQzAwMDgzNDAyQzgwMDgzMDBFQworOjEwOTM2MDAwMkMwMDI4MDAwMkM0MDFCQTAwMjJDMDAyMjAwNkMyMDE1QgorOjEwOTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyMDBGOAorOjEwOTM4MDAwMEM5MjBCMkMwNEM4MDQzQTAwMENCNDAzRTgwMEM4MDA4QgorOjEwOTM5MDAwMkUwMDBDODAzM0UxNDBFODAwMzYwMDBDODAwM0MwMDM0RgorOjEwOTNBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNEMDA3OAorOjEwOTNCMDAwMEZEMTBCRkMwMUZDMDAzRjAwMEZGMDAzRDgwMEZEMDBCMworOjEwOTNDMDAwM0ZDMDBGRjAwM0ZDODBGRjAwM0ZDMDBGRjAwN0E4MDY2RQorOjEwOTNEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMzAwQ0Y4MDM1NjA3MQorOjEwOTNFMDAwNEU2ODQzNUMwMEU3ODAzOUMwMENDMTAzN0UwMENGMzQ3NworOjEwOTNGMDAwMzVFMTRERjIwMzdDMDBERjM4M0ZDODBGRjgwM0YwMDA4MQorOjEwOTQwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMThDODAwREI4NDIyNjA2QgorOjEwOTQxMDAwMDhBQzBBMkMwMDhCODAyMjMwMDg5MTIyMkM5MDI3NjEwNgorOjEwOTQyMDAwMjJDQTg4RkMyMkJGMDA4QjYyMkZEMDA5QjgwM0IwMDQ4NworOjEwOTQzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVFMjgwQTkwMjI0NDBCRQorOjEwOTQ0MDAwODIzNDQyMDQwMEE5MDAyOEM1NDgzMjAyNEMyMDgzMzBFRgorOjEwOTQ1MDAwMjBDMDA4MzEwMjBEMDBCMzIwMkNDNDBCMzAwMkYyMDFGMQorOjEwOTQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQTAyQjkwNDIyNjBEQworOjEwOTQ3MDAwMjhCMjAyMjYwMDg5ODgwMkMwMDgzMTEyRUMwMDhCMDA1NQorOjEwOTQ4MDAwMkFEMDA4QjAwMkFDMDAyQjAwMkVDMDBCQjAwMkIwMDRGMgorOjEwOTQ5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVFMjAwRTMwMDM2MjA4QworOjEwOTRBMDAwMEVBNDYzNkUwMEUxQzAxQUMxMEM4MDAzNjg3MENCMDA4QgorOjEwOTRCMDAwMzY4MDBEQjAwMzRDMDBGQjA0M0VDMTBGQjAwM0QwMDQ1NgorOjEwOTRDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODA0REYwMDNGMDA3MQorOjEwOTREMDAwMEZFODAzRkMwMEZEMDAzRjAwMkI5ODAzM0EwMDc3MDBFMworOjEwOTRFMDAwMjdFNDBGRjAwM0ZDMDBERjAwM0VDMDBERjA0M0Y4MDA1RQorOjEwOTRGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMDBBNDY4Q0IyMDNBOTBGQgorOjEwOTUwMDAwMEYyNEEzQUMwMEU5NTAzQUMwMEVCNDgzMkMwOEVCMDA0MgorOjEwOTUxMDAwM0E5MDBFQjA4QkVDODBGQjAwM0VDMDBFQjAwMzkwMDQ3RQorOjEwOTUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQTAwOEJBMDIwODA3RAorOjEwOTUzMDAwMERBODAyMkMwNDg5NDAyOEU4MDhCMjAyMkMwMEFGMDBENAorOjEwOTU0MDAwMDI4MDA4N0MwMzNEODAzRjAwMkZDMDA4QjAwMjM2MDAzNworOjEwOTU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTAwMDM0MDI4QzA3MgorOjEwOTU2MDAwMkIyODRBMjgwMEExMDA2OEQyMEEyMDQyQTQwMUEzMDBBNworOjEwOTU3MDAwMDI0MDBBMzQwMjBEMDAzMzAwMkNDMDBBMzAwMEI4MDA0QgorOjEwOTU4MDAwNTAwMDAwMDAwMDAwMDAwMEI4MDExQTAwODc5MDIxRTQ5QworOjEwOTU5MDAwMkJDODEyM0EwMDg1QzAyQjIxMjg2ODAyQjYwMEE3ODQ4OAorOjEwOTVBMDAwMjM2MDA4Mzg4MDFFMDBCNzgwMkRFMDA4NzgwMjJFMDA2NgorOjEwOTVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzEwMDM4NTRDNgorOjEwOTVDMDAwMEYyNjgzODAwMEUwMzQyOEM4MEUyQzBCOEMwMEUzMDBBQgorOjEwOTVEMDAwNzg0NTBFMzAwMzhFODBGMzAwM0NDODBFMzAwMzkyMDJCMworOjEwOTVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCODAwRjUwMjNGNDRFQworOjEwOTVGMDAwMEQ5MDAzRjgwMEJEMTQxRkMwMEZFMTIzNUM0NDlGNDI4RgorOjEwOTYwMDAwM0ZDMDBGRjQ4MjdENDBGRjEwM0ZDMDRGNzAwN0QwMDY2RgorOjEwOTYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAyQ0IwMDM4QzA5MAorOjEwOTYyMDAwM0NBMDAzRUMwMEU5MDAzRUMwMENCMDAzMjAwNEZCMjE4OQorOjEwOTYzMDAwM0U4MDRGQjQwM0NGMDBDQjAwM0VDQzRGQjA0M0VBMDA5NgorOjEwOTY0MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5ODAwODcwMDIxQzA1MQorOjEwOTY1MDAwMDg0MDAyREMwNEI1MDAyRDAwMkQ3MDAyMUMxQ0I3MDI2RQorOjEwOTY2MDAwMkRDMDBCNzIwMkRDMDA4NzQwMkRDQThCNzAwMkYyMDQwMQorOjEwOTY3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBCQTAwODc4ODJCRTAzNgorOjEwOTY4MDAwMTg3ODIyRDYxMUE0ODIyRkUwMDg3ODAyMTIwMEI3OTQyRAorOjEwOTY5MDAwNkQ2MDRCN0EwMkRFNDBCN0EwMkRFMDBCNzgwNkUwMDA0QgorOjEwOTZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDOTEyODM4MjI4RDQ2MgorOjEwOTZCMDAwOTgwMDA2RUYwNUIxOTAyQ0MxMDlCNDAyMEMwNEIzMDE2NworOjEwOTZDMDAwNkNGMDBCMzAwMkNDMDBCQjAwMkVDMDBCMzAwMkQyMDQ3OQorOjEwOTZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODQwQ0E4MDNCQTA0MAorOjEwOTZFMDAwNENFNTAyRjg4MEVFMDAzRDgwMkNFMDBGMzg4MEZBMDA1NworOjEwOTZGMDAwM0ZBOTBGQTAwM0U4MDBCQTAyM0U4MDhCQTAwM0ZBMDQ0MgorOjEwOTcwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjgwMDI2MDJBMQorOjEwOTcxMDAwMEY4NDAzRTAyNEY4MDAzRTAwNEY4MEEzRTAzMEY4MDBGRgorOjEwOTcyMDAwMzYwMjBGODAyM0UwMDQwODAwM0UwMDBGODAwM0QyMDBDMQorOjEwOTczMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMEI2NDEyRAorOjEwOTc0MDAwNEU5OTBCQTQwMDY5MTAzRTQwMEM5MDAzQTQxMEM5MDA3MAorOjEwOTc1MDAwM0U0MDBEOTIwM0U2MDBGOTAwM0E0MDBFOTAwM0MyMDQyOQorOjEwOTc2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODEwMDIwNDJGRQorOjEwOTc3MDAwMDgxNDlBMjQwMDg5MDA2RTUwMDA5MDAyMjQxMEQ5MDIyNworOjEwOTc4MDAwNkU0MDBCOTQwM0E3MDBCOTAwMjI0MDA4OTAwM0UwMDA0QworOjEwOTc5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNjAwOTkwMEE2NDExNgorOjEwOTdBMDAwMEE5MDA2MkMwMEE5MDk2RTUwMDg5MTAyODQwNDg5MDBEMQorOjEwOTdCMDAwMEU0MDBCOTQwMkU1NDlCOTAwMEE0MDBBOTAwMkM2MDAyNworOjEwOTdDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwODEwMDIyNDA2NAorOjEwOTdEMDAwMDgxMjIyMDQ4MUExMDAyQzQwMDgxNjAyMDQwMDkxMjBFNgorOjEwOTdFMDAwMkM0MDBCMTI0Mjg0ODlCMTIwMjA0ODA4MTAwMkMyMDE4QgorOjEwOTdGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDgwMDM2MDBGNQorOjEwOTgwMDAwMEE4MDAzQTE0MEU4MDAyRTAwMEMwMDIzQTE0MEM4NTBBQworOjEwOTgxMDAwMkUxNDBEODAwM0UwMDBGODUwM0EwMDBFODAwM0VFMDM5MgorOjEwOTgyMDAwNTAwMDAwMDAwMDAwMDAwMDg4MURENDAwRjUwMEJGNDA3QgorOjEwOTgzMDAwMEZEMTAzRjQ0NEREMDIzRDUwMkJEMTIzRjQwMEY5MTA4NQorOjEwOTg0MDAwM0Y0MDBEOTEwM0E0NDhGOTEyM0U0RTFGOTAwM0E2MDIxQgorOjEwOTg1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNDAwQzUwNDNCNDAzMworOjEwOTg2MDAwMEZEODAzQTc4MEZEMDBCMzY4MEREODQzQTUxMEM5QTA4OQorOjEwOTg3MDAwMzI1MTRGNUE0MzM2MDBDOUEwN0E2ODBCRDAwM0M2MDE1MworOjEwOTg4MDAwNzAwMDAwMDAwMDAwMDAwMDc4MThDQTg4ODgwMjAyMDBGQQorOjEwOTg5MDAwOEQ4NDIyMjM0MkY4MDAyMjA0Mjg4QUEyQUE5NDg4RTkwRgorOjEwOThBMDAwMjBBODBBODAwQTIxNDA4MEUyMkUyODBCODAwMkNFMDRFNAorOjEwOThCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDIwQTEwNEE4QzAzQQorOjEwOThDMDAwMEIxQzJBMjQwMDM5MDQyMDQwMkExRTAyRTQ4MEIxMTAxNworOjEwOThEMDAwMkE0ODA5MTQ0NjA0MDA4MTM4MkM1QjBCMTAwMkQyMDA4MAorOjEwOThFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MDVBNDEyQTkyNDIyNDA0NgorOjEwOThGMDAwMjk5MDAyMjQwMDM5MDAwMjU4MDgxODEwRTYwMUI5MDAyNgorOjEwOTkwMDAwQUE0NDA4OTAwMjI0MDA4OTAwMEU0MTBCOTAwMkM2MDQ2QworOjEwOTkxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwRTEwMTJBNjRFRQorOjEwOTkyMDAwMkY5NDEzMjQwMjcxNjAxMjYwNEQ5MDAwQzUwMkY5MDA1QgorOjEwOTkzMDAwM0E0MDBGOTAyMzI0MDJDOTAyM0E0MDBGOTAwMkU4MDRGMworOjEwOTk0MDAwNTAwMDAwMDAwMDAwMDAwMDY4MDFBNDAwRDkwMDNFNjA0MworOjEwOTk1MDAwQUY5MDgzNjQ4OEY5MjAzRTYyMDM5MDgzQTQwMEM5MDAxRAorOjEwOTk2MDAwMzY2MDBGMTAwM0M0MDBGOTAwN0U0MDBGOTAwM0RBMDA0OAorOjEwOTk3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMTAwQzg4MjMyMDA0MgorOjEwOTk4MDAwNkYwMDAzQTAwMEQ4NDAzMDAwMEU4MDAzNjAwNEY4MDE4RgorOjEwOTk5MDAwM0UxMDRGODA4QjIyMDBGODAwMzIwMTBFODAwM0NBMDQ3MworOjEwOTlBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDEzODAwMEUwMEE5OTBFRgorOjEwOTlCMDAwMkZFNjIwODgwMDlFODAyMzgwMEFFODAzMjgwMEJBMDA1MgorOjEwOTlDMDAwMTg4MDBERUMwMjM4ODBCQTAwQTI4MDA4QTAwMzhBMDAzQgorOjEwOTlEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAyODM4MDIwQzhDMQorOjEwOTlFMDAwMEIyMDAyMEMwMTkyMTA2OEMwM0EzQzAyQ0MxMDNCMDJFMgorOjEwOTlGMDAwMENDMDI4M0MwMjRFMDBCMzAwMjhDMDI4MzAwMkNBMDAyOAorOjEwOUEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODc0MjJCQzA5RAorOjEwOUExMDAwMjk3MDIyOUMwMEI2MDAyQkMyMEE2MDg2MUMwMEI3MjE2OAorOjEwOUEyMDAwMjlDMDAwNzQwMjVDMDAzNzkxMDFFMDA4NzQwMkE4MDBBQworOjEwOUEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4MDIxRTBEMAorOjEwOUE0MDAwMkY3ODAyOUUwMDk2ODAzOUUwMkVGODAzREUzMEY3RDBBMgorOjEwOUE1MDAwMkRGMjAwNzgwMzUyMDBGN0EyM0JFMDBFNzgwN0VBMDJFRAorOjEwOUE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCNDAwRkIwMDBDQzA1NgorOjEwOUE3MDAwMEYzMDAzRUMxMEQzMDBCNEMwMkY4MDAzNkM0OEZCMDAwMAorOjEwOUE4MDAwM0VDODREOTAwM0E0MDBGQjIwMUVDMDBGQjAwM0MyMDZDOQorOjEwOUE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0M4MDJCMkNDMAorOjEwOUFBMDAwMkZGODAzN0UwMDZFODAzQkExMEREODQzM0UwMEZGOTA0RgorOjEwOUFCMDAwMzNFMDBGRTkzM0ZFMDBDRkMwM0ZFMjBGRDgwM0MwMDAxMAorOjEwOUFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCNDQwODcwMDIxMDRDRAorOjEwOUFEMDAwMDg3ODAyMUMwMDg2MDAyMUMwMjg5MDAyREMwMEI3MTAyNAorOjEwOUFFMDAwMjFDMDBGNzMwMkNDMDA4NzAwMkRDMDBCNTAwMkVBMDA4QQorOjEwOUFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RDAwQTQwMDI5NDg1NAorOjEwOUIwMDAwNkFGMDgyNEMwMEFFMDBBMUM0Mjk3NDAyNUM0MEEzMTAyQworOjEwOUIxMDAwNjFDMjBCNjAwNkM4MDA4NzAwMkRDMDBCNTAwMkMwMDQ1NAorOjEwOUIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNjAxQTMwMjIwNDBGNQorOjEwOUIzMDAwMjgzQzAyMEMwMDgzNDIyMEM4MDgxMDAyQ0QwMEIzMDA2QworOjEwOUI0MDAwMjhGMDBCMzAwMkNDMDE4MzA0MkNDMDgzMTAwMkM4MDQxRgorOjEwOUI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQTgwRUIwMDM4QzAwQgorOjEwOUI2MDAwMEE5MDAzN0MyMkEyNDAzMjQ4MERCMDBCM0UwMEZGMDA1OQorOjEwOUI3MDAwMzNGNDBGOTAwM0VDMDA4RjAyM0ZDMDBGOTAwM0VBMDQxMAorOjEwOUI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDAwRDkwMjNFQzAzQworOjEwOUI5MDAwMEVCNjAzRUMwMEZBMjAzRUMwNEYyNDIzQUM2MEZCMDA1RAorOjEwOUJBMDAwQTZDMDBFOTAwM0U0MDBGQjAwM0NDMTBGOTAwM0UwMDA1MAorOjEwOUJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAyQ0YwMDMzRTA4OAorOjEwOUJDMDAwMkNGMDEzQkMwMDJFMTBCMTY0MkVGMDAyM0MwMEZGMDJGQQorOjEwOUJEMDAwM0ZDMTRERUM2M0ZFMDBCNzAwM0JDMDBDRDgwM0MwNDQ0RQorOjEwOUJFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzI4ODE4MTIyRTAyOQorOjEwOUJGMDAwMEEzODAyM0MwNEJBQzkzMkUwMjA4NDAyMkMwMEJCMDBCRgorOjEwOUMwMDAwMkVDMDBCOUMwMkU3ODFCQjA0MjJDMDBBOTkwMkUwMDAyRgorOjEwOUMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODQwODg4MDIyODg5NQorOjEwOUMyMDAwMjhCQzQyQUMwMEJBMDAyQTgwMDg4NDAyQUMwMEJCMDAwOQorOjEwOUMzMDAwMkVDMDBCQjA4MkU4OTBBQjAwNjJDMDA4QjAxMkUwMDAwQQorOjEwOUM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODkwMDJBODA5NQorOjEwOUM1MDAwMjhCMjAyMEMwMEJBMDAyMEMwMDgwMDAyOEMwMEIzMDAzOQorOjEwOUM2MDAwMkNDMDBCMzAyMDRDMTRCMzAwMjBDMDA4MzAwMkMyMDFCRAorOjEwOUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2ODAwQzgwMEIyQzAzNQorOjEwOUM4MDAwMkNCMjAzQUMwMEZBMDAzQUMwNEVBNTAzQkMwMEZGMDBBMgorOjEwOUM5MDAwM0ZDMDA5QTAwM0U5MDRFRjAwQkFDMDBDQjAwMUMwMDE0NQorOjEwOUNBMDAwMTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDM1QzAwNQorOjEwOUNCMDAwQUYzNDAzRkMwMEY0MDAzOUMwMEZDMjAzN0MwMEZGMDE4NQorOjEwOUNDMDAwM0ZDMDBGRjAwM0ZDQTBGRjAwM0ZDMDBGRjAwM0U4MDUwQQorOjEwOUNEMDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwRkYyOTNEMjBERQorOjEwOUNFMDAwOEVDMTAzMzI0OERDODAyMzI1MEVGMjAzM0NDMERGODRBMgorOjEwOUNGMDAwMzNDOTBGRjIwM0ZDMDBDRjgwMzM0MDBDRjIwMzMwMDA3NQorOjEwOUQwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0MwQkI2MDJFMDg1NgorOjEwOUQxMDAwMDg4MTAyMjAwNDg4MjAyMDQ4MDhGMTgyMkRDMDgzMDA5OQorOjEwOUQyMDAwMjJENDA5RjUwMkZDMDg4QjAxMjI0MDI4QjQwMjIwMDQ0OQorOjEwOUQzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzIwQjMwOTJDODIxMAorOjEwOUQ0MDAwMDgxMDE2QTAxMDkwMDgyODQ4MEEzMjAyMEMwMEJCMDAyOAorOjEwOUQ1MDAwMkNDMDBCMzAwMkNDMDI5MzAxMjAwMDhBMzEyMkUyMDE5OAorOjEwOUQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QkIwMDJDODA5NworOjEwOUQ3MDAwMDg4NjAyQTAyMEEwMDAyQTYwMEFCMDEwMkMwMEFCMENCQworOjEwOUQ4MDAwNkVDMDA5QjAwMkNDMDA5QjAwMjI2MDBBQjAwMkYwMDQ1MQorOjEwOUQ5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFQzAwQkIwMDNFMzQzNQorOjEwOURBMDAwMDhBMDBCODMwMEQ5MDIzQUUwMkVCMDBCMkMwMEY4ODBGQgorOjEwOURCMDAwM0VDMDRGQjAwM0VDMDBDQTQwQjI3MjBFQjAwQkMwMDRGQworOjEwOURDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzEwRkIwMDNGMDAzQworOjEwOUREMDAwMERGODEzNzA0OERENDAzN0MyOERGMDAzREMwMEREQzg5QworOjEwOURFMDAwMTNDMDBGRjAwM0ZDMDBFRTQwN0Y0MDBENzAwMzM4MDBGRAorOjEwOURGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMTMyQzAxOQorOjEwOUUwMDAwMDQxMDAzMjA0MEU4MTAzQUMwMERCMDAzQUMwOEY4NDAzRAorOjEwOUUxMDAwQjJDMDJDQjAzM0E0ODJEQTQwQkE0MDBGQjAwM0QwMDRGMQorOjEwOUUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA4QkY4MDIyQzhEOAorOjEwOUUzMDAwMDhCNzAwMjM0NDg4RDAyMkQwMDg3MDgyRkMwMEIyRTAyQQorOjEwOUU0MDAwMDNGNDA4RjUwMjM3MDQ4QkQxMjI2MDRCRkQwMkYyMDBDNworOjEwOUU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjMxMEE0NDBFQQorOjEwOUU2MDAwMDgwMDAyNDgwMEEwNDIyQUQwMDEzMDAyOEMwMEIzODBEMgorOjEwOUU3MDAwMkNDMDA5MzEwMkNDMDA4OTAwMjJFODAzMzgwMkY4MDAyNgorOjEwOUU4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDExRTAwQjc4MDI3NjQ0MQorOjEwOUU5MDAwNjg0QTAyNTIwMDhDODAyMUUwMDg3ODAyREUwMEI3ODAxOAorOjEwOUVBMDAwMkRFMjE5MzkwMjVFMzA4NTk4MjFFNDBCNzkwMkQ4MDA0MQorOjEwOUVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMyMDM0MDBCRgorOjEwOUVDMDAwMENCODAzNDg4MEUyMjIzOEMwMEQzMDAzOEMwMEYzMDA0OAorOjEwOUVEMDAwM0VDMDBEMzEwM0VDMDBDQjAwMzgwNjBGMzA4M0QyMDJCOAorOjEwOUVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNCMDExRQorOjEwOUVGMDAwMEZEMDAzOTAwMEY2MDAzRkMwMEZGNDAxRkMwMEZGMDFGQgorOjEwOUYwMDAwMzNDMjBFRjUxM0JDMDBFRDAwM0ZDNDBGRjAwM0QwMDZDMgorOjEwOUYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDNDQzA1MQorOjEwOUYyMDAwMEVBMDAxNjQwMUQ4MDAzMkUwMkNCNTAzMkMwMEYyMDAzMQorOjEwOUYzMDAwN0FDMDBEQjQwMzJEODBDOTAyMzJDMDBDQjAwMzJBMDBEMAorOjEwOUY0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA4OAorOjEwOUY1MDAwMEQ2MDAyRDAwMTg0MDAyMUMwMDgzMDAyMUQwMEI3MDA0RQorOjEwOUY2MDAwMjFDODBCRjQwMzFFQzA4NjAwMjFDMDA4N0MwMzUyMDRFNAorOjEwOUY3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RUMwQjc5MDJERTAwRgorOjEwOUY4MDAwMDg3ODA2RDYwMUI0ODIyMUUwMDg3ODBBMUUwMEI1QzAyMAorOjEwOUY5MDAwMjlFODA5NzgwMjM2QzE5NzgwMjhCMDBBN0EwMjMwMDA5MQorOjEwOUZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQkIwMDJDRTBBMgorOjEwOUZCMDAwMDkzNTgyQzBDMUEwNTEyMEU0MDgzMDAyOEMwMEJCQzQyNgorOjEwOUZDMDAwMjBDMDBCMzAwMjA2MDA5MzE4QUFCMDJBMzAwQTUyMDRBRgorOjEwOUZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwMTNEQUNDOAorOjEwOUZFMDAwNENFQzEzNzgxMEY2ODBCMzkwMENBMDAzMjgwMEZFMDAxMAorOjEwOUZGMDAwM0E4MTBEQTAwRjJBODBERTA0M0JBMDBFQTAwMzNBMDQ5NAorOjEwQTAwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA5MgorOjEwQTAxMDAwMEQ4MDAyRTEwMEQ4NDgzRTEyMEY4MDEzNjAwMEY4NjAwNgorOjEwQTAyMDAwM0UwMDA3ODAwM0EwMDJFODA0MjYwODA1ODAwMzkyMDA5MgorOjEwQTAzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwNDNBNDA3RAorOjEwQTA0MDAwMEMxMjAzMjQ4MkM5MDAzNjQ0MEYxMDAzMjQwMEY5MDBDNworOjEwQTA1MDAwMzY0MDA0OTAwMzA0MDBDOTAwMTI0MDBDOTAwMzAyMDQyRgorOjEwQTA2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk4MTIyNDAzQworOjEwQTA3MDAwMDg5MDFBMjQwMDg5MDAyMjY4MEI5OTAyMjQwMEI5MDA3NAorOjEwQTA4MDAwMjI0MDY4OTAwQTI0MDA4OTAwQTI0MDA4OTAwQTIwMDAxQgorOjEwQTA5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxMDIyRTBBNAorOjEwQTBBMDAwMDg5NDAwMDQwNDhCMDgyNkMwMEI5MDAyMjQwNEI5MEMwOQorOjEwQTBCMDAwMjQ0MDBBMTAwMjI0MDAyMzAyMkE0MEE4MTAwMjA2MDBBRAorOjEwQTBDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwQjEyMDIyNDA3RAorOjEwQTBEMDAwMDgxMjAyMEMxMDgxMDJBMDUwMEIxMjAyMDQ4MEIxMDU3QworOjEwQTBFMDAwMDA0ODBBMTAwMjA0QTBBMTAwMjg0QTA4MTIwMDAyMDEzOAorOjEwQTBGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MEJBMTRFNAorOjEwQTEwMDAwMEM4NTAzMDE0MkM4NTAzNDAwMEY4NTAzMjE0MEY4MDAzQworOjEwQTExMDAwMzYwMDBFODAxMzIwODBFMDAwMUEwODBDMDAwMzJFMDM4NgorOjEwQTEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQ0RjkxMDNGNDA3QQorOjEwQTEzMDAwMkZEMTEzRjQwNEY1MDAzRjQwMEY5MTBCRTQ0MEZGMjhBQQorOjEwQTE0MDAwQkU0RTBEOTY4M0Q0QTJERDI4Mzc0QTBGOTM4M0U2MDZEMAorOjEwQTE1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNDEwQ0QwMDNGNDBCMgorOjEwQTE2MDAwMEZEMDAzMzUwMjVEMDEzMTQ0MEZEMDAzMjQwMEY5MDAwNAorOjEwQTE3MDAwMzI2MDBDOTg4M0U2NDBEOTAwMzY2QTBDOUU4MzI2MDEzMworOjEwQTE4MDAwNjAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwODgwMDJFMDA5MQorOjEwQTE5MDAwMEI4MDQyMDI4MDhBMDAyMjIwODg4MDAzMjAwOEI4ODIzNworOjEwQTFBMDAwMjIyMTA4ODg4MkUyNDI4OEE4MjIyMDA4Q0UwMjBFMDREQQorOjEwQTFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwMDY4NDA3MworOjEwQTFDMDAwMEIxMDAyODQwMUI5MDAyMDQwNDkxMDBBMDQwMEI1MDhCMAorOjEwQTFEMDAwMjE0NjA4NTAwMkQ0MDA4RDIwMjU0QTBCNTAwMjQyMDEyRQorOjEwQTFFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwODkwNDZFNTQyMworOjEwQTFGMDAwMEIxMDEyQTQwMUE5MDBBMjQwMTg5MDE2MjQwMEI5MDA2NworOjEwQTIwMDAwMjM0MDE4RDAwMkY0MDA4RDQwMjE0QTBCRDAwMjQ2MDRBRQorOjEwQTIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDNBNTBGMgorOjEwQTIyMDAwOEY5NjBCODQwMkYxMDEzMDQ4OEQ5MDAzMjQxMEY5MDBDMQorOjEwQTIzMDAwQjI0MDJDOTAwM0U2NDBEMUMwMzY1MDJGOTAwQjY4MDRGQQorOjEwQTI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNjAzQQorOjEwQTI1MDAwMEY5OUMzNjQwMEQ5MjgzRTQwMEQ5MDAzQTQwMEY5NDAzMworOjEwQTI2MDAwM0U0MDBGOTAwM0U0MjBGOTQwM0U0MDBDOTAwMzhBMDBFQQorOjEwQTI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMTM2MDA3NworOjEwQTI4MDAwOEY4MDAzRTAwMkY4MDQzMjAwMEQ4MDQzMjAwMkNDMDBFRQorOjEwQTI5MDAwM0YwMDBGQzAxMzkwMDJEQzQwM0YxMDRDQzAyMzBBMDQ2MworOjEwQTJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDIyODBERAorOjEwQTJCMDAwMEJFODIwRjgwMDRFQzAyM0EwMDhBMDAzNjgwMDhBMDAyNQorOjEwQTJDMDAwMkU4MDFGQTAwMjJBMDY4QTAwMkVBMDAyNjAwMzBBMDAyOAorOjEwQTJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjMwMDIwQzAxMgorOjEwQTJFMDAwMEIzRDAyQzAwMzIzMDAyMEUwMDFCMDA2NEMwMDhCMDBCMAorOjEwQTJGMDAwMkVDMDRCMzAwMjhFMDg4MzgwMkNDNDAwMzQ4RTRBMDA1RQorOjEwQTMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgwQjU4MDYxQzA2QQorOjEwQTMxMDAwMEI0MDAyRDQwMDg0MDgyM0MyMDg1MDAyNUVDMDg0MDFBRQorOjEwQTMyMDAwMkQwMDhBMDgwMjEwMjQ4NDA4NkQwMDBBMDMxMjI4MDBGOAorOjEwQTMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4MjIxNjAxNworOjEwQTM0MDAwMEY3ODAzRDYwNEFFODAzMUUwMEQ1ODIzN0UwMEM2ODAxRQorOjEwQTM1MDAwMkRFMDBCNzgwMzhFMDBENzgyM0RGMDBDN0EwMzZBMDI2MQorOjEwQTM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwMEJBRDg5OQorOjEwQTM3MDAwMEY4MDAzRTQxMkY4MDBCRTgwMEUxMDAzRUMwMEY5MDAxOQorOjEwQTM4MDAwM0UwMDVGODAwM0UwMDhGODA0M0MwMDBGODAwM0MyMDYzMworOjEwQTM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTIwRkY4MDNGRjA0QworOjEwQTNBMDAwMEZGODAzRDIwMEVGODRCMzYxMENCOTAzRkUwMEZGODAwNQorOjEwQTNCMDAwMzNFMDBDRjgxMzIyMTFDRDkwM0Y2MDBDRTgwMzEwMDAzRAorOjEwQTNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwRjUwMDJEQzBFNgorOjEwQTNEMDAwMEIwMDAyRDQwNDg0MjAyMzQwMDg1QTAyREMwMEI0MDA5RAorOjEwQTNFMDAwMjEwMDI4QzIwMjFFMDQ4NjA0MkQ4ODA4RDAwMjJBMDRGNworOjEwQTNGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwQjUwMDJENDAyRgorOjEwQTQwMDAwMEI3MDAyRjQyMEE3MDQyMUMwMEE1MDAyREMwMEJFMDAzOQorOjEwQTQxMDAwMjFDMDA4NzAxMjAwMDA4NTAwMkQ0MDg4NjgwQTA0MDBFMQorOjEwQTQyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzAwQTEwMDJFQzAzRAorOjEwQTQzMDAwMUIwODA2QzQyMDgwMDAyMDk4MUExMDAyQ0MwMEIxMDgyNgorOjEwQTQ0MDAwMjAwMDA4MDAwMjBDMDE4MkMwMkNBQzI4OTAyMjE4MDRDNQorOjEwQTQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQjMwMDNFNDAyMgorOjEwQTQ2MDAwMEZCQTAzRTUwMkU5MDQzMjkwQUVCMDAzRkMxMEZCNDBFMgorOjEwQTQ3MDAwQjIwMDBDODAwQjJDMDI4MjE4M0ZBMDBDRDAwMzJFMDREQgorOjEwQTQ4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzA0RkIwMTNFNDA3MgorOjEwQTQ5MDAwMEZCNjQzRTQwMEY4MDAzRTgwMDE5MDAzRUMwMEY4ODEyMQorOjEwQTRBMDAwM0VEMDBEQjQ1M0UwMDBGOTQwM0U0MDBGQTAwM0UwMDA2MQorOjEwQTRCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBEQzAyQ0Q4MDMzNjAxRQorOjEwQTRDMDAwMkNEQTAzRkMwMEVDMDAzMzQwMEZGMjAzN0MwNEZFMDBBNgorOjEwQTREMDAwMzIwMDBDQzgwMzNDMDBDRTAwMzE4MDBDRDEwMzI0MDRCMAorOjEwQTRFMDAwMzAwMDAwMDAwMDAwMDAwMDkxMDQ2QzAwMDkwMDJBNjRBNAorOjEwQTRGMDAwMDg4RTAyQzIxMEEwMTAzRTEwMEI5ODAyRUMwMEI5MDBBQQorOjEwQTUwMDAwMDJEODA4QkUyMjIwMDA4OTAwMjI1MDA4QTAwMjIwNDA2NAorOjEwQTUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwMEIyMDIyNDBFRAorOjEwQTUyMDAwMDhBMDAyRTU0MkFCMDQyMjE4MEJCMDAyNkMwMEIzMDA5NQorOjEwQTUzMDAwMjAwNDA4MDEwMjAwMDRBODQwMjIxMDA4ODAwMjIwMDAyNAorOjEwQTU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzA4ODMwMDI4NDBDMAorOjEwQTU1MDAwMDgwNDAyQzQwMkE4MDAyQzAwMEIxMjAyQ0MwMEIwMDBCOAorOjEwQTU2MDAwMjBDMDQwMzAwMjBDMDA4QjAwQThDMDA4MzAwMjAyMTE0RAorOjEwQTU3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzkwMDMzNDBBNgorOjEwQTU4MDAwMENCMDAzRUMwMkVCMDAzMjQwMEZCMDAzNkMwMEZBMDA5OQorOjEwQTU5MDAwMzIwMDBDODAwMzIwODBDODAwMzAwMDBDODAwMzIwMDNCMAorOjEwQTVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkQwMDNGNDAyQQorOjEwQTVCMDAwMEZDMjEzRjAwMEY0MDAzRjAwNEZENDAzRkMwMEY1MDA3RAorOjEwQTVDMDAwM0ZDMDhGRjAwM0ZDNDBGRjAwMzdDMDJGRjAwM0U4MDZDOAorOjEwQTVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDAwQ0MwMDMzMDA1NworOjEwQTVFMDAwMEVEMDBCMzMwMENDMDAzM0UwMEZDMDgzN0MwMENGMjBCMworOjEwQTVGMDAwN0IwOThDRjgwM0ZFNTBDRjM4M0ZFMTBEQzIwM0YwMDAxOQorOjEwQTYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMjAwOTgwODIwODAyOAorOjEwQTYxMDAwMDg5ODAyMjAwMDg4RDAyMkUwMEVCNDIyN0QxOTlGNjk5QworOjEwQTYyMDAwMkU5MDA4MzA5MjI4ODFEQjY0MkVFMTg4MTZBMkUwMDQ4NworOjEwQTYzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwOTAyNDIwMDFDMAorOjEwQTY0MDAwMDgxMDE2MDA4MjgzMDEyOEMxMEIwMjgyMENFMEEzMTBCRgorOjEwQTY1MDAwMjgwRTFCOTIwMjg0ODQ5MzIwMkVDMDA4MzEwMkUyMDE0RQorOjEwQTY2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEwOTgwMDIyODBCMworOjEwQTY3MDAwMDg5MDAyMDA2MDhBMTAyQUMwMEEyMDAyNkMxOEJCMDBGMQorOjEwQTY4MDAwNkU2MDJCOTAwMjQ2MjA4QjAwMkVDMjA4QjE4MkYwMDQyRgorOjEwQTY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDAyQ0IwMEIyNDA2NgorOjEwQTZBMDAwMkM5MjAzMjcwMDg4MDBCQUMwMEY4ODAzMkMwMEVCMDQwQgorOjEwQTZCMDAwM0FBMENGMkNBM0VEMDA5QjAwM0NGMDJEOEMzM0QwMDRBRQorOjEwQTZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDA0RUYwMDNGQzA5MworOjEwQTZEMDAwMEQ1MTAzRjAwMEYxODEzN0MwMEVGNDAzOUMxMENGMDA0MAorOjEwQTZFMDAwM0Q4MDBDRUMwN0I4MDhGRjAyMUZDNDBGQzgwM0Y4MDAzOAorOjEwQTZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA5RTAwQzMwMDM4NDBEMQorOjEwQTcwMDAwMEM5MjAzQTQ4MEZCMjAzQUMwMEQ5NDAzMkM0MEZCMDA2NAorOjEwQTcxMDAwM0UwMTBGODAwM0U1MDBFQjAwM0FDMDBEODQwQjEwMDRFRQorOjEwQTcyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzA4OEIwMjIyQzA5OQorOjEwQTczMDAwMDg5MjAzMjEwMDhCNDgyMkMwMEJCNzAyM0Q0MDNGMDEyNQorOjEwQTc0MDAwMjI3NDBCOTAwMjI4MDRCRjAwQjJDMDBCODUwMjMyMDBCNQorOjEwQTc1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAxODAwMDI4MDBFQgorOjEwQTc2MDAwMDgyQzEyODg0MEIwNDAwOEMwMEIxODAyMEUwMEIzMDAzRAorOjEwQTc3MDAwMjgyMDExMzAwMjBDMDBCMzAwMjQwMDA5MDAwNjM4MDAyNAorOjEwQTc4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwODQ4MDIxQTA4MQorOjEwQTc5MDAwMjg2ODEyM0EwMDg0ODAyNUUwOEI1ODAyMUU0MEI3ODI1OAorOjEwQTdBMDAwMjFBNjBCNzgwMjFBMDBCNzgwMjEyMDBCNTgwMjA4MDA1RQorOjEwQTdCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzgyMTM4MDlENworOjEwQTdDMDAwMEMyODAzODAwMUYxMDAzOEMwMEQ4NTAyMEMwMEZCMDA0RAorOjEwQTdEMDAwMzg4NTBGMTAwMzhDMDBFQjEwM0NDODBEMzAwMzEyMDJCQgorOjEwQTdFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRkMwMTNGODBCOAorOjEwQTdGMDAwMEY2ODAzRDA0MEZDMDAzQkMwMERDMDAzRkMyMEZGMDBFRAorOjEwQTgwMDAwM0JDNTBGRjAwQkI0NDBGRjE4M0YwMDBGRjEwM0QwMDYxQgorOjEwQTgxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRUIwMEIwNDE2QgorOjEwQTgyMDAwMENBMDAzRTAwNENBMDRCMEUwMEVCMDAzRUM4MENCMjAxRgorOjEwQTgzMDAwMzI4MTBDQTAwM0VFMDBEQjAwM0UwMDBFQjAwMzJBMDBDNAorOjEwQTg0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDA0ODcwMDIxQzAzRgorOjEwQTg1MDAwNDg2MDAyRjAwMDg3MDAyMUMwMDg3MDAyRkNBMDgzMjgzNQorOjEwQTg2MDAwQTM4MDA4NjAwMkRDMDA4NzIwMkRDMDBCNzAwMjEyMDQ1OAorOjEwQTg3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QzAyQTM4MDIxNjA3NgorOjEwQTg4MDAwMDg2ODAyRDIwMDg3ODAyMUUwMjk3ODAyREU4MDg3OTA2NAorOjEwQTg5MDAwMjFBMDE5NDgwMkZFMDA5NzgwMkRFMDBBMzg4MjMwMDA3RQorOjEwQThBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxODM4MDIwQzA3QworOjEwQThCMDAwMDgyMDQyQzAzMDgzNzBBMEMwODkzNDAyQ0MwMjgzMDBEQgorOjEwQThDMDAwNjBDMDI5MDAwMkNFMDA4MzAwMkNDODBCQkMwMjEyMDQxOQorOjEwQThEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTAwRUFFMjMyOTAxNAorOjEwQThFMDAwMkNFMDAzRkIwMkNFQzAzMjgwMEZFNDAzRTgwMDhBMDBCNAorOjEwQThGMDAwMzM4ODBENjRDM0ZBMDBEQTAwM0Q5MDBFRTAwQjNBMDQ5MQorOjEwQTkwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDI0RjgwODNFMTI2QgorOjEwQTkxMDAwMEZDMDAzRTA0OEYwMDAzRTAwMEU4MDkzQzAwMEY4MDAzNgorOjEwQTkyMDAwN0UwMTBFODBDMkUwNDBGODAwN0UwMDhGODQwM0QyMDBEQQorOjEwQTkzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwQzEwMTMyNDhBRQorOjEwQTk0MDAwMEM5ODAzRTY0MEM5MDAzMjQwMEY5MDAzNjYwMEM5MDAyRQorOjEwQTk1MDAwMTg2MTBDOTAwMzY0MjBGOTA1M0U0MDBDOTA4MzAyMDRCQQorOjEwQTk2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NjIwODkwMDIwNTJCMgorOjEwQTk3MDAwMjgxMEMyMjYwMkE5MDAyMjQwMEI5MDBBMjcwMEE5MDAzNQorOjEwQTk4MDAwMjI3MDA4OTAwMjI0MDhCOTAwMkU0MDBBOTAwQTIwMDA4NAorOjEwQTk5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAyOEQwMDIzNDA3NAorOjEwQTlBMDAwMDhEMTAyODQyMDg5MDAyMjYwMEIxMUYyMjRCMDgxMDBCQQorOjEwQTlCMDAwMkE0NjA4OTA0MjY0MDhCOTAwMkU0MDA4OTIwMjA2MDAxOAorOjEwQTlDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDgwODUyMDIzNDg5NworOjEwQTlEMDAwMDg1MjAyODQwODgxMDAyMDQwMEIxMjAyMDQ4MEExMjA0QQorOjEwQTlFMDAwMjg0OTI4OTAwMjA0MDAzMTIwMkU0MDA4MzIwMjAyMDEzQQorOjEwQTlGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzg1MEIyMTQ1NAorOjEwQUEwMDAwMENDMDAzQTE0MEM4MDBCMjAwMDc4NTAzMjE0MEM4NTAxNAorOjEwQUExMDAwM0ExNTBDODUwMzYxNDBGODUxM0UwMDJDODUwMzJFMDM0NgorOjEwQUEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDQ4RjkxMDNFNDQ4QQorOjEwQUEzMDAwNEY5MTAzNzQwMEY1NDQzRTQwMEZEMTAzRTQ0MEY5MTBGOAorOjEwQUE0MDAwMzc0NDBGRDAwM0Q0MDBGOTEwM0ZDMDBGRDEwM0U2MDZGRQorOjEwQUE1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNkEwREQ4QzMzNzhBRgorOjEwQUE2MDAwMEVEQTAzMzUwMENEQTAzMzQwMERGODBCMzY4MUU5ODBCNgorOjEwQUE3MDAwMzM3MDBDOTEwM0U0NDBGOUMwM0VDMDBGREMwM0M2MDAwNAorOjEwQUE4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA0Qjg0MDIwM0NENQorOjEwQUE5MDAwMEM4NTAyMDI4NDhBNDAyMjAwMDg4RjgyMjMwMEI4RThENQorOjEwQUFBMDAwMjIyMDA4ODgwMkUyMDBCOEQwMkUwMDBCOEMwMkNFMDRDRgorOjEwQUFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwOTEwMDYwNDg1QworOjEwQUFDMDAwNEIxMDAyMDQ4QTgxNDA2MDQwNDkxMDAyOERBMEExNDFEMAorOjEwQUFEMDAwMjA1MDA5MTIyMkM0ODBCMTIwMkM0MDRCM0UwMkMyMDFGQQorOjEwQUFFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA4QjkwNEEwNDA4MAorOjEwQUFGMDAwNDhCMDAyMjQwMDg5MDA4MjQwMDg5MEE2QTQwMEI5MDQ0RQorOjEwQUIwMDAwMjI1NDI5OTUwMkU1NDBCOTAwNkU0MDBCOTIwMkM2MDQxQQorOjEwQUIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwOTEwMDMyNDA0OQorOjEwQUIyMDAwMEY5MDA5MjQwMDg5OTAzMjQwMEQ5NDAzQTQwMEU5MDI5QgorOjEwQUIzMDAwNzI2MDBEOTQwM0U0MDFGOTAxM0U2MDBGOTAwM0U4MDQ5NAorOjEwQUI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDQwRjkwMDNFNDAxMQorOjEwQUI1MDAwNEY5MDAzRTcxMEY5ODAzRTQwMEYxMDEzNjQwMEYxMDA5RQorOjEwQUI2MDAwQkU0MDBFOTAwM0U2MDhGOTAxM0U2NDBGOTAwM0NBMDA1MAorOjEwQUI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjgwMDMyMDg3QgorOjEwQUI4MDAwMEMwMTBCMjA0MEM4NDAzMjAwMEU4NDgzMjAwMEY4MDRFMgorOjEwQUI5MDAwM0UwNDBGODAwMzIxMDBFODAwM0UxMDBGODgwM0NBMDQyMgorOjEwQUJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwM0UwNDIzODAzQgorOjEwQUJCMDAwMDhFQzEyMzk0NEE2MDAyODgxMDhFMDAwMzgwOEJBMDBFMQorOjEwQUJDMDAwM0Y4MDBCQTAwMkE4MDA4QTAyMkU4MDBCRTAwMkNBMDA4MAorOjEwQUJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0ODAwMzEwMDI0RDA5QgorOjEwQUJFMDAwMDgzRTEyQUUwODgxQTAyQ0MwMEEzODAwNEMwMEIzMDAwOQorOjEwQUJGMDAwNkVDMDBBMzAwMjBDMDBBMzAwNkNDMDBCMzAwMkNBMDAwOQorOjEwQUMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExODAwQjUxMDI1QzA5MQorOjEwQUMxMDAwMjg2MDEyOTAxMEE1MDgyREMyMDg2NDIyNTgxOEI3MDBBOQorOjEwQUMyMDAwMkQ4MDBCNzkwMkJFQzA4NzAxNkRDMDBCNjAwMkU4MDA2OQorOjEwQUMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4NDM1MjAzOAorOjEwQUM0MDAwOEMxODAyOTIxMEM1ODAzRDYwMEVDODBCNUEwODc3RjMyRAorOjEwQUM1MDAwM0RBMDBGRjgwMzFFQjBFNzg1M0RFMDBGNzgwM0VBMDI0MAorOjEwQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwNEJBMDE2MworOjEwQUM3MDAwMEZBMDQzNjAwOUUxMDAzODQwMEVBMDAzQTgxNEZCMjA5OAorOjEwQUM4MDAwM0E4MDBGQjQxQjRDODBGQjI5M0VDMDBGQjAyM0MyMDY5NAorOjEwQUM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0Q4MDNCRTBFRAorOjEwQUNBMDAwNEVGODAzRjIwMkQ0ODEzQkUwOEU5ODA3M0U0NEVGOTFDOAorOjEwQUNCMDAwM0ZFMDRGRkMwN0VFRDBDRjk4MzNFNDBGRjgwM0MwMDAxRAorOjEwQUNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDE5ODAwODUxMDJEQzQ0RAorOjEwQUNEMDAwMEQxMTAyRjAwMDg1MjAzMUM0MEI3QjAwMzg0MEQ3MTBFNQorOjEwQUNFMDAwMkQ4MDBCNzA2MkZFRTE4NzE0MzlDMDBCNjAwMkVBMDQwQworOjEwQUNGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTBCQzQwQTUwMDI5NDBEQQorOjEwQUQwMDAwMEI1MDgyREM0MDg0MDQyREMwMEIxMDA2NTg0NEE3MTA2MQorOjEwQUQxMDAwMkQ4MDBCNzEwMkRDMDA4NzA0MjFDMjBCNTAwMkMwMTA5MQorOjEwQUQyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzBBQTEwMTJDNDBFQgorOjEwQUQzMDAwODkxODAyQzEwMEExMDgyMEMwMEIzNDA2NDAwMDkzMDUwOQorOjEwQUQ0MDAwMkMxNDBCM0M4NkNFMTA4MzAxMjhGMTBCMTQwMkM4MDQ4RQorOjEwQUQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRUQwMDNBQzA3RgorOjEwQUQ2MDAwMDdCQzYzRUQwMDgxNDAzRUMwMEU4ODAzNjQwMEVGMDAyNQorOjEwQUQ3MDAwN0U1MDBGRjAwMkZENDJDRjAwNzJDMDFGQjQwM0VBMDQwMAorOjEwQUQ4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFODAwOTkwMDNFRTA0NAorOjEwQUQ5MDAwNEZCNDgzRUQ5MDA5NDAzRUMwMEZBMTgzQTgwMUVCMDFBMQorOjEwQURBMDAwM0UwMDBGQjExM0VDMENGQjAwM0FDMDVGMjAyM0UwMDAyMworOjEwQURCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAwRkQwNDNGQjA2QQorOjEwQURDMDAwMEQ2MDAzM0UwMENEMDAzM0YwMEZGMjAxRjAwMEZGMDNGMQorOjEwQUREMDAwM0YwMzBGRjAwMUZDMDBGQjAyMzNDMjBGRjBFMzAwNDQxRAorOjEwQURFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QTAwQjkwMjJFQTBCQgorOjEwQURGMDAwNEFBQzAyMEU4MEY5QzAzNkUxMEJBMDAyMkEwOEJCMDA2MworOjEwQUUwMDAwMkUyMDBFQjAwMkVDMDBFQjAwMjJDMDhCQjAwMjIwNDBERQorOjEwQUUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyMzAwQTkwMDI4QzBFRAorOjEwQUUyMDAwMDlCMjIyNkM0MDg5ODkyQUMwMEIxNDA2MjYwMEFCMDJBNQorOjEwQUUzMDAwNkVFMDA5QjAwNjZDMDBCMzAyMjJDMDBCQjAwMjIwMDAyNQorOjEwQUU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwODAwQjEwMDJDQzAxMQorOjEwQUU1MDAwMEEzMDAyMkMwMEJCMDA2NEMwMEIzMjBBMDgwMDMzMDAyOQorOjEwQUU2MDAwNkM4MDAyMzA0NkNDMThBMzAwMjBDMDBCMjgwMjAyMTFDRgorOjEwQUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2ODAwRTkwMDM4QzE4MworOjEwQUU4MDAwMERCMTBCMkMwMDg5MDAzQUMwMEI5MDAzNjAwMEZGMDI0QgorOjEwQUU5MDAwM0U4MDBGRjAwM0ZDODBGRjAwMzJDMDhGODAwQjAwMDM2OAorOjEwQUVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFEODAwRkQwNDNGQzBDOQorOjEwQUVCMDAwMkZGMjAzRkMxMUVGMDAzRkMwMEZGNDQzNzAwMEZGMDBCRQorOjEwQUVDMDAwM0YwMDQ2RjAwM0ZEMDBFRjAwM0ZDMDBGQzAwM0U4MDY1RgorOjEwQUVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTAwRkY4MDNERTBBMworOjEwQUVFMDAwMENGOTEzREUwMDdGODBCM0UwMEZGQzAzQkU0MENGODA3RgorOjEwQUVGMDAwMzNGMDBGRjgwMzdDMDRDQzgwMzNBMDBDRjAwQjMwMDE0RQorOjEwQUYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMDIwODgwMDJFMjA2QgorOjEwQUYxMDAwMDg4MjEyRTA4MEE4ODEyMjAyMEI4MDAyMjA4MEE4ODA5MworOjEwQUYyMDAwMjIwODBCODAwMjJDMDI4ODA0QUEyMDA4QjAwMjIwMDQwOAorOjEwQUYzMDAwMjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwQTMwODJDODAyMQorOjEwQUY0MDAwMDgzMjAyQzQyMEEzMDAyODQwMEI5MjAyODQwMEE5MDEwOQorOjEwQUY1MDAwMjhDODFCMTI4MkNDNDBBODAwMjRFMDBBMzA0MjIyMDFGQgorOjEwQUY2MDAwMzAwMDAwMDAwMDAwMDAwMEMwMTFBODgwQTgwMjJFNDBBMAorOjEwQUY3MDAwNjg4MDEwQzgwMEI4NDAyQTkwMEJBMDAwMjgwMEFBMDhEQQorOjEwQUY4MDAwMkEwMjAzMjAwMjhDMDBBODg4MkUyMDBBQjAwMjMwMDQ3NgorOjEwQUY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFODA0RkEwMDNDNDA5QQorOjEwQUZBMDAwMENBMDAzRTgwMEVCMDAzQUMwMEYyMDUzQTgwMEUzNDBEOAorOjEwQUZCMDAwMkE0MDBGQTAwMzZDMDBBODgwMzQyMDFFQjAwMzEwMDRBOAorOjEwQUZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwOUQ5MTNGODA4RgorOjEwQUZEMDAwMEZEQTIzRjQwMENDMjAzNzAwMDdEMDEzNzQwMEJDMDAzNAorOjEwQUZFMDAwQjc4MDBCRDA0MzdDMDBEQzA0M0IwMDZERjAwM0Y4MDAxRAorOjEwQUZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBODAwRkE4MDNBMDA0NQorOjEwQjAwMDAwMkNBMDBCMjAwMkNCNjIzRTUwMEU4ODAzMjAwMEQ5MTBFQQorOjEwQjAxMDAwM0U3MDhDODAzM0VDODBEODQwM0EwMjBEQjAwMzEwMDRBRgorOjEwQjAyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQzAwMzk4MDIyQzA5MAorOjEwQjAzMDAwMEM5RDgyMkMxMEQwNDAyRUEwMDhCODAzNEUwMjhBNDBFRQorOjEwQjA0MDAwMEVBMDBEQjAwMzNEMDBEMDkwMzYxMDBCRjAwMkIyMDAwMAorOjEwQjA1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDYwQzBBRQorOjEwQjA2MDAwOEExODAyOEMwODgwNDAwQ0EwMDIzMDAyQ0UwMDgyNDg3MAorOjEwQjA3MDAwMkM4MDJCMzAwNjhDMDA4MTAyMjA5MDA5QjAwMjM4MDAxMQorOjEwQjA4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwQjY5MEEzMzAyNAorOjEwQjA5MDAwMDhFODIyQjIxNDg3ODAyRDYwMDg0OTEyMTI2MTk1OTA0OQorOjEwQjBBMDAwMkQ2MTBBNDgxNjFFODA5NTgwMjUyMDBCNzgwMjg4MDBBNQorOjEwQjBCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjEwMDI4OEM0RgorOjEwQjBDMDAwOEUxMDAzODQ4MDgwMDAyQzAyMEE5QTAyRTQwMEQwMDBEMworOjEwQjBEMDAwM0U4MDBCOTEwMzhFODBDMjA4Mzg4MDBEQjAwMzEyMDJBRgorOjEwQjBFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCMDAwRjYwMDNGNDREQQorOjEwQjBGMDAwMEYyMTEzNzgwMEZGMDAzREMwMEZFMDAzNzgwMEVGMDQzQworOjEwQjEwMDAwM0Y0MDhERTgwM0RDMDRGNjAwM0YwMDBGRjA4M0QwMDZEQgorOjEwQjExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTg4MDMyNDA2MAorOjEwQjEyMDAwMEY4ODBCMjgwMDc4MDIzRTgwMEUyODAzMjgwMENBODA3MgorOjEwQjEzMDAwMzIwMDBGQTAwM0VDMDBDOTgwMzI4MDBGQjAwMzJBMDA1OAorOjEwQjE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4QzAwOEYwMEExODBGQQorOjEwQjE1MDAwMEI3MDQyMTQwMEI3MDAyRDQxMEI1MDQyMTQwMEE1MDBBMworOjEwQjE2MDAwQTFDMDBCNTAwMkZDODBBNTAwMjEwMDBCRjIwMjEyMDRDQQorOjEwQjE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCQTAwQTQ4MDI5MzA3OAorOjEwQjE4MDAwNEI0ODA2NTIwOEI0ODAyRDIwMEI0ODQyMzIwMDg0ODA4MAorOjEwQjE5MDAwMjEyMDBCNDgxMkRFNDA4NjgxMjlBMDBCNzgwQTMwMDA1RQorOjEwQjFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwNTIwRTBDRgorOjEwQjFCMDAwMEIzNDAyNkMxMEIzMDAyQ0MwMEIzNjRBMEQwREEzMDBFQgorOjEwQjFDMDAwMjBDMDBCMzQ4MkNDMDJBMjAwMjgwMDBCMzAwMjEyMDRGMworOjEwQjFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTIwRUE0MDMwQTA3RgorOjEwQjFFMDAwMDdBMDQzNjk0MEZBMDAzQzgwMEZBMDAzMDg0MENBMDA1MgorOjEwQjFGMDAwMzBBMDBGQTQwM0U4MDBDRTAwM0I5ODBGQTAwMzNBMDQ1MAorOjEwQjIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBEMjAwRkMwODNGMDA4MQorOjEwQjIxMDAwMEJDMjAzQjAwMEZDMDAzRjAwMEZDMDAzRjAwMEZDMDBCNQorOjEwQjIyMDAwM0YwNDBGQzAwM0UwMDBGODAwQjYwMjBGODAwM0QyMDAxNQorOjEwQjIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMDNFNjg2MworOjEwQjI0MDAwNEM5MTAxRTQwOEM5MDAzRTQwMkM5MjAzRTQwMkM5QTBERAorOjEwQjI1MDAwM0U3MDBFOTAwM0M2NDJDOTAwM0U0MDBGMTAwMzAyMDQyOAorOjEwQjI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4NjBFNjA0OQorOjEwQjI3MDAwMDg5ODAyRTQwODg5MTAyRTYwMDg5MDAyRTQwMDg5MEMwNgorOjEwQjI4MDAwMkU2MDA4OTAwMkU2ODg4OTAwMkU0MDBCOTAwMkEwMDBGNAorOjEwQjI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOUQxMDJGNDA0MQorOjEwQjJBMDAwMjhEMDA2RjQwMkFEMDAyRjYwMDhEMDAyRjQwMDhEMDAxMworOjEwQjJCMDAwMkY0MDBBRDAwMkU0MDA4OTAwMkU2MDBCOTAwMjA2MDBBNQorOjEwQjJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQzNDAwODUwMDJENDAwQworOjEwQjJEMDAwMDg1ODAyRDQwMEE1MDIyRDQwMDg1MDAwRDQwMDg1MDA3MworOjEwQjJFMDAwMkQ0MDA4NTQwMkM0ODA4MTAwMkM2MDBCMTQwMjgyMDE5RQorOjEwQjJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MjNFMDA4MAorOjEwQjMwMDAwMEMwNTAzRTE0MEU4MDQzRTE0MEM4NTAzRTE0MEM4MDA0RAorOjEwQjMxMDAwM0UxNDBFQzAwM0UwMDBDMDAyM0UwMDRGODAyMzJFMDMwNworOjEwQjMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkwMTNFNDBBQworOjEwQjMzMDAwNEY5MDEzRTQwMEQ5MDAxRTQwMEY5MDAzQzQxMEYxMDA5OQorOjEwQjM0MDAwMUU0MDBGOTAwM0U0RTBGRDI4M0Y0MDBGOTQwM0U2MDYwMworOjEwQjM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwRkQwMDNGNDA0MAorOjEwQjM2MDAwNEQ1MDAyRTQwMDk1MDQzMzQwMjhEMDAzRjQwMEZEMDA2MgorOjEwQjM3MDAwMzM0MDBGOTEwMzM0MDBDRDQwMzM0MDBGOTg4MTA2MDBENQorOjEwQjM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDEwQjgwMDJFMDAyRgorOjEwQjM5MDAwMEI4MDAyRTAxMEI4MDAyMjAwMDg4MDAyRTAwMEI4MDAzNAorOjEwQjNBMDAwMjIwMDBCODgwM0MyODA4ODgwMjIwMDBCOEMwMjBFMDRDRQorOjEwQjNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDRDNDAwQjEwMDJDQzBGMAorOjEwQjNDMDAwMEIxMDAyQzQwMEJCMDAyMjQwMDgxMDAyQzQwMUI5MDBFNworOjEwQjNEMDAwMjA0MDFCOTAwMjA0MjI4OTAwMjA2MDBCMTI4MjAyMDE4RgorOjEwQjNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDQ0QjkwMDJFQzAzMQorOjEwQjNGMDAwNEI5MDAyRTQxMEI5MDIwMjQwMDg5MTQyRTQwMEI5ODA4NworOjEwQjQwMDAwMjI0MDBCOTIwMkM0MDA5OTQwMjI0MDRCOTAxMjA2MDQ0NQorOjEwQjQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwMTNFNThFMQorOjEwQjQyMDAwMEQ5MDAzRTYwMEQxMDAzMjYwMEM5ODAyRTY0MEY5MDA2RQorOjEwQjQzMDAwQjI0MDBGMTgwMzI0MDBDOTgwMzI1MDBGOTAyMzI4MDQxMworOjEwQjQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNDI0NgorOjEwQjQ1MDAwMEI5MDAzRTcwOEY5MDBCRTQ4MEY5MDAzRTQwMEY5MDBFMQorOjEwQjQ2MDAwM0U0MDBGOTgwM0E0MDBFOUEwQkU0MDBGMTAwQjRBMDAxNQorOjEwQjQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTNFMDA3RAorOjEwQjQ4MDAwMEY4MDhCMjAwMEY4MjAzRTAxMEY4MTAzRTAwMEY4MDhCOAorOjEwQjQ5MDAwM0EwMDBDODAwM0UwMDBEODQwMzIwMDBGODAxMzBBMDQwOQorOjEwQjRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDJGOTE1RAorOjEwQjRCMDAwMEJFRTAyMjgwMUJFMDAyMDgwMEJBMDAyRUE4MEI2NDhGNQorOjEwQjRDMDAwMjI4MDBEQTAwMkZBMDI4NjQxQTNBNjBCQTAwMzBBMDA2NworOjEwQjREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTM4MDJDQzBCNAorOjEwQjRFMDAwMEIzMDAyMEMxMEIzMDAyOEMwMEIzODAyQ0MwMEIzMDBBNAorOjEwQjRGMDAwMjhDMDA5MzAwMkM2MDE4MzYwMjA3MDBCMzAwQTRBMDA2MAorOjEwQjUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDEyRTg4ODUwODJEODA1QQorOjEwQjUxMDAwNEJGODA2MUM4MEI3MDAyMUMwMEI1MDAyRDQwMEI2MDBDNworOjEwQjUyMDAwMjk2MDA5NzAwMkQwQTA4RDAwMjE0MDBCMzIwMjI4MDA1MgorOjEwQjUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDU4MDNERTA4QgorOjEwQjU0MDAwOEY3ODAzMUU4NEI3ODIzRDYwMEY1OTAzREUwMEY3ODBCOQorOjEwQjU1MDAwMjk2MDE1NzgwM0RFMDBDNzgwMzE2MDBGN0MwMzZBMDIyMgorOjEwQjU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRTkwMDNFODAyMworOjEwQjU3MDAwMEZBMDAzRUQzMEZCMDAzNkMxMEY5NjAzRTQwMEIzMDBDQgorOjEwQjU4MDAwMzQ0MDBGQjc4M0VDNDAyMTAwM0U0MDBGQjAwM0MyMDZBOQorOjEwQjU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MTMzRTBCNQorOjEwQjVBMDAwMEZGOTAzREUyMENGODEzRkUwMDc3ODAzM0UwMEZGODBFNAorOjEwQjVCMDAwM0ZFMDA0RjgxM0ZFMDJERTgwMzM2MDBGRjgwMzAwMDA2MgorOjEwQjVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDIxQzQxQQorOjEwQjVEMDAwMEI1QTAyREM0ODg2NTAyREMwMEIzMTAyOTQ2MEI0MTgxRgorOjEwQjVFMDAwMkQ0MDQ4NzAwMkU4MDBBNTEwMjE0MDBCNzEwMjJBMDQ4QQorOjEwQjVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQkQwMDIxNDIyRgorOjEwQjYwMDAwMEI3MDAyRkMwMjg1MDAyNTQwMEI1MDAyOUMwMEI3MDAyNQorOjEwQjYxMDAwMkY0MDI4NzEwMkRDMDBBNjAwMjFDMDBCNzAwMjAwMDA0MAorOjEwQjYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTQ2RDgwQjEyMEEwNTAxOAorOjEwQjYzMDAwMEJCMjA2Q0UwMEEwMzQyRUYwMEIxODAyODUyMEIzNEFDMAorOjEwQjY0MDAwMkM1NDg4MzgwMkNDMTBBMTAwMjBCMDBCMzAwMjA4MDQyMgorOjEwQjY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRTgwRjMwODEwNTQ2MAorOjEwQjY2MDAwMEI4ODEzRkYwMEMwODAzRTY0MEZCNDgzMDcwMEY5QzA0RAorOjEwQjY3MDAwM0VGMDBDRkMxM0Y0MDBFQTAwMzI3MDBGRjAwQjJBMDRDOQorOjEwQjY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFMTBBNworOjEwQjY5MDAwMDc5MTAzRUNDMDU4MDAzRTQ0MEY5MjAzRTQwMEY5MDAwOAorOjEwQjZBMDAwM0VDMDhGQjMwM0UwMDBCQjAwQkU0NDBGQjAwM0UwMDAxOAorOjEwQjZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0QwNDMzRTA2NworOjEwQjZDMDAwMENDMDAzM0MwOEZFMDAzMzYwMkNEMDAyQjQ4MENGMDBENQorOjEwQjZEMDAwM0Y1MjA3RjAxM0ZDMDBDRTEwMzM0MjBDQjAwM0MwNDRCRAorOjEwQjZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwODkwMDJBQjBENgorOjEwQjZGMDAwMDg4ODAyMkMwMEJBMDAzNjQ0MDg5MDAwMjYwMERCQzBGRgorOjEwQjcwMDAwMkU0MDBCQjAwMkVDMDA4M0MwMjg0MDBBQjAwMkUwNDA5QgorOjEwQjcxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDIyMDhCMworOjEwQjcyMDAwMUFBMjAyMkMxMEI5MjAyMjQwMDgzMDAyMkMwNEFBNTQ3QworOjEwQjczMDAwMkVDMDBCQjAxMkNDMDA4QjA4MjI0MDA4QjAwMkUwMDBGMworOjEwQjc0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwNDJBMDBGMAorOjEwQjc1MDAwMEEwODgyMEMwMEI4MDA2NDQwMDgzMDAyQTQwMEIwMDA1RgorOjEwQjc2MDAwMkNDMDhCMzAxMEM4MDI4QjAwMkE0MDBBMzAwMkMyMDE2NAorOjEwQjc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDMyMDA1NQorOjEwQjc4MDAwMUE4MjAzM0MwMEY5MDAzMjQwMENEMTAzQUMwMEVCMDBGQworOjEwQjc5MDAwM0U0MDBGRjAwM0VEMDBDMzAwMzJDMDhDQjAwM0MwMDM4NQorOjEwQjdBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDNGMDA2MAorOjEwQjdCMDAwMEQ4MDRCRkMwMDdDMDAzRjQwMEZEMjBCNzQwMERGMDA3QgorOjEwQjdDMDAwMUQ0MDhGRjAwM0ZDQTBGRjAwM0Y4MDBGRjAwM0U4MDY1MAorOjEwQjdEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwREY4NDNCRTBCQQorOjEwQjdFMDAwMEZGODBCM0UwMEVDODAzM0UxMEMzMDAzM0M4MENGNDg3NworOjEwQjdGMDAwMzdDMDBFNDAwM0UwQzBDNzkxQjMwNDBDRjAwMzMwMDAyMworOjEwQjgwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRjA0OEI4MDIyNDFENworOjEwQjgxMDAwMEJCMDgyMkUwMDg4ODBBMkUwMEFBMjkyQUQ4MDg3NDJGRgorOjEwQjgyMDAwMjNEODhBQUQwMkUwQzA4QjAwMjA0QzQ4QTQwMjIwMDQzQgorOjEwQjgzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzU4QkIwMDI4ODBDNAorOjEwQjg0MDAwMEJCMjQyMjQwMEE4MDAyQUMwMEExMDAyMDQ2MEEzMjAwMAorOjEwQjg1MDAwMjREMjA4MDA0MjhDODM5QjAxMjA0OTA4MzNDMjIyMDE3NAorOjEwQjg2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAwQUI4ODIyQTBGMgorOjEwQjg3MDAwMEJCODAyMjYwQ0E4MDAyQUMwMEE5MjAyQTQwMEFCMDY0QworOjEwQjg4MDAwMjJDMDBBQjAwMkU4MDA5QjAwMDI0MDA4QTA0MjMwMDQzNworOjEwQjg5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRDM4MDNBRTA5QQorOjEwQjhBMDAwMEYxODAxMDYwMEU4MzAzODY2MEVCODAzMkE0MEVCMDA5NgorOjEwQjhCMDAwMzZDMTBFOTYwM0UyODBEQTA4MzI4MDJDQkIwMzEwMDRGNgorOjEwQjhDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwREYwMDNGQzBBRAorOjEwQjhEMDAwMEZEMDAzRjQwMERDODAzNzYwMEZFODAzRkEwMERGMDFDQgorOjEwQjhFMDAwM0ZDMDBGQzA0M0U2NENFRkEwM0Y0NDBGQTAwM0Y4MDA1OQorOjEwQjhGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzQwREIwMDM2ODAxQgorOjEwQjkwMDAwMEM5ODAzMjYwMEY4MDAzRUMwMEUxODAzODQwMkUzMDFFMQorOjEwQjkxMDAwMzhDMTBFQjQwM0FDODBDQTE4M0FEMDJDMzAwMzEwMDRERQorOjEwQjkyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRjQwQjk4ODJFODBCQworOjEwQjkzMDAwMDhCQzAyQTMwMEIwMDAwRUMwMDhCMDA2MjAwMDhGMDRBRgorOjEwQjk0MDAwMjNDMTA4QjkxMjJGMDA4MzgwMzY0MDA4QUQwMjMyMDBBRgorOjEwQjk1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjIwMDJDQzBEOAorOjEwQjk2MDAwMDkzMjAyODQwMDMzMDAyQ0IyMEEzNjEyOEMwODkzMDU4NworOjEwQjk3MDAwMjBDMDBCMTgwMkVEMDA5MTgwNkEwMDA4MTAwMjM4MDAwOAorOjEwQjk4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDJERTBFNAorOjEwQjk5MDAwMDk3ODAyOTc0MEI0ODAyRkEwMDhFODAyMEU0MDk3ODJGMQorOjEwQjlBMDAwMjFFMDk4Njg4MjFBMTg5RDkwMkRBMTE4NTgwMjA4MDA2RAorOjEwQjlCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQ0MwRjMwMDNFQzAzQQorOjEwQjlDMDAwMERCMDQzODQ0MEYwMDAzQzgyMEUzODEyOEM0NEYzMzBCQQorOjEwQjlEMDAwQkFDMTFFMTA0NzhFMjJEMTEwMzgxODBDMzA4MzEyMDJDMworOjEwQjlFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzQwRkYwMDNGQzAwMAorOjEwQjlGMDAwMEVFMDAzRjQ0MEZDMDAzREM0MEZEMDAxRjQ0MUVGMTgwOQorOjEwQkEwMDAwM0ZDNDFGRjAwM0Y4NDhFRjE0MzM4MDBGQzEwM0QwMDY4MgorOjEwQkExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzQwRkIwMDNFQzBFNAorOjEwQkEyMDAwMEY5ODAzMjQwMENCMDAzRTQwMEZCMDAzQTgwMERCMjg5MgorOjEwQkEzMDAwM0VDNDFGOTAyM0VDMDBDQTAwMzJFMDBDOTAwM0VBMDBFMQorOjEwQkE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA2RAorOjEwQkE1MDAwNEI1MDUyMTQwMEQ0MDEyRDgwMEI2MDAyRDgwMEE3MjA1NworOjEwQkE2MDAwMkRDNTBCNDAxNkRDMDA4NDAwMjNDMDA4NDAwMkQyMDQyMAorOjEwQkE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTgwQjc4MDJERTA0NAorOjEwQkE4MDAwMEI3ODBBOTYwMDk0ODAyRDYwMUI3ODA2RDIwMEE3ODA2MAorOjEwQkE5MDAwMkRFMDBCNzgyMkRFMDA4NzgyMjFFMDA4NTgwMkYwMDBCQQorOjEwQkFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjNFNDJDQzBDQgorOjEwQkFCMDAwMUIyMTAyODEwMDkwMDAyQ0M4MEIzOTAyQ0UwMEEzMDA4QworOjEwQkFDMDAwMkNDMDBCMzAwMkNEMDA4QjIwMjBGMDA4QjIwMkQyMDQzMworOjEwQkFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkVBMDNGODIzMgorOjEwQkFFMDAwMEZFODAzOTgzMEQ2MDAzRkEwMEZFMDAzQkFDMEZBMDA3OQorOjEwQkFGMDAwM0U4MDBGRUMzM0Y4MDJDRTAwQjNCODJDRUM4M0ZBMDQ4RQorOjEwQkIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDE4Rjg0MDNFMDAxRgorOjEwQkIxMDAwMEY4MDAyNjA4NEY4MDUyRTA0OEY4MDQxRTAwMDc4MDJENworOjEwQkIyMDAwM0UwMDBGODE4M0UwMjBGODAwQkUwMjBGODAwM0QyMDBBOAorOjEwQkIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjE4RjkyMDNFNDAyOAorOjEwQkI0MDAwMEY5QzAzRTQ0MEM5MDAzMjYxMEM5MDEzQzQwOEM5MDE4MgorOjEwQkI1MDAwM0U0MTBGMTgwMzI0MDBDOUEwMzI0MDBGOTg0MzAyMDQ0RAorOjEwQkI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NTAwQjFDMDIyNDBFOQorOjEwQkI3MDAwMEI5QzAyRTcxMDg5MDAyODQ0MDg5NDIyRTQxMDg5MDBGNQorOjEwQkI4MDAwMkU0MDBCOUYyMjI2NjA4OTgwMjI0MDBCOTEwQTIwMDBDNAorOjEwQkI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDgwQjkwMDJFQzAyRAorOjEwQkJBMDAwNEJCNDAyRTQyMDg5MjAyMjQwMDg5NDAyRUMwMDg5MDA3MgorOjEwQkJCMDAwMkU0MTBCOTAwMjA0MDA4OTQwMjI0MDBCOTAwMjA2MDBBNworOjEwQkJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwNDIwNDAxMAorOjEwQkJEMDAwOEIxMDAyRTQwNTgxMDAyODQwMjgxMjEyQzQ4MjgxMjBDMworOjEwQkJFMDAwMkM0ODBCMTIwQTA0ODI4MTAwMjA0ODBCMTIwMjAyMDEyOQorOjEwQkJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OEEwRkEwMjNFMTQyQQorOjEwQkMwMDAwMEY4NTAzRTAwMEM4MDAzMjAwMEM4NTAzQzE0MEM4NTMxMworOjEwQkMxMDAwM0UxNDBGODAwMzAxNDhDMDUwQjIxNDBGODUwMzJFMDM1OQorOjEwQkMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDAwRkQwMEJGNDAyRgorOjEwQkMzMDAwMEY1MDEzRDQwMkZEMDAyRkMwMEZEMTAzRjQ0MEY5MTBCMAorOjEwQkM0MDAwM0U0NDBGRDEwM0Y0NDBGRjAwQkY0NDBGRDEwM0U2MDY4QQorOjEwQkM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNkEwRkQwMTNFNDQ1MQorOjEwQkM2MDAwMEZEMTAzRDQwMEM1MDAzMzQxMEZEQjAzMjcyMEQ5RTBGNworOjEwQkM3MDAwQjI3MDBEREE4M0Y2NDBDRjEwMzI3ODJEREEwMzA2MDA2OQorOjEwQkM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwQjgwMDJFMjgwRAorOjEwQkM5MDAwMEI4ODQyRTAxMEQ4MDAyMjAwMEI4QzBBMjMwMDg4QzBEOQorOjEwQkNBMDAwMjIyODA4ODQwMkMyODA4MEEwMjIzMDQ4QUE4MjBFMDQ4MgorOjEwQkNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA2NgorOjEwQkNDMDAwOEIxMjAyQzQwMDk5MDIyODQwOEIxNjAyODQ4MTkxMzBBNQorOjEwQkNEMDAwMjA1ODA5MTAwMkM1MDA4MTAwNjQ0RDA4MzQwMjAyMDE5OQorOjEwQkNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzBDQjkwNDJFNDhDQworOjEwQkNGMDAwMEI5NDA2RTQwMDk5NDBBQTQwMEI5MjIyQTQwMDg5MDAwQworOjEwQkQwMDAwNjA0MDA4OTQwMkU0MDA4OTgwQTY1MDA4OTIwMjA2MDQ2QworOjEwQkQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk5ODNFNDgxMworOjEwQkQyMDAwMEY5ODAzRTUyMEQ5MDAzQTY0MEY5NDgzQTRDMEQ5MDI4OAorOjEwQkQzMDAwNzI0MDREOTA0MkU0ODJDOTQwMzY0MDBDOTAwQjI4MDQ3QQorOjEwQkQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBQzI4Rjk4ODNFNDA4NworOjEwQkQ1MDAwMEY5OTEzRTcwMEY5QzAzNjYwMEY5MDAzNjYwMEYxMDBGOQorOjEwQkQ2MDAwN0U0MDBGOTkwN0U0NjBGOTAwMzg0MDBGOTgwM0NBMDAzRAorOjEwQkQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgxMDMyMDA1MQorOjEwQkQ4MDAwMEY4MjBCMjEwMEU4MDAzNjA0MEM4NjAzRTEwMEQ4MDA4NgorOjEwQkQ5MDAwMzIwMDBGODAwMzYxMDBDODAwMzIwMDBGMDAwMzBBMDQ2NAorOjEwQkRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwQkUwMDIyODA5RQorOjEwQkRCMDAwMjhFQzAyMTkwNDgyMDAwMzgwMERFNDgyRTgwMDhBMDE2NQorOjEwQkRDMDAwQUE4MDhCRUQ4MjNCODA4RTkwMzY4MDBCRTAwMzRBMDA4OAorOjEwQkREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0MjAwQjM4MDIwQzBBMQorOjEwQkRFMDAwNkIzNDE2NDBDMDgzMTAyNDcyODhCMDAyRUMwMDgzMDBDQworOjEwQkRGMDAwMjRDMDBCMDQwMjZGMDk5QjAwMjRDMDBCMzAwMjBBMDAxMAorOjEwQkUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwQjc4MDIzRTRFRgorOjEwQkUxMDAwMjg3ODgyNzQxNDhGMDA2MUUwMDk1MDEyREMwNDg3MjJCNAorOjEwQkUyMDAwMjVDODFCNzgwMjE0MDA5NDQwQTVDMDBCNjAyMjY4MDA0RQorOjEwQkUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxMjIwQjc4MEIxRTAxOAorOjEwQkU0MDAwOEZGODAzMTIwMkU3ODAzNUUwMEM2ODA2Q0ZDMkNGQjA0RQorOjEwQkU1MDAwMjVGNDBGNTgwMzVBMDJENTgwNzVGQTRGRjgwMzJBMDJDOQorOjEwQkU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNTkwRjMwMDNEQzA4OAorOjEwQkU3MDAwNEZCMDEzQTgwNEZCMDAzQ0MwMEY4MDQzRUM4MEVCNjA4NAorOjEwQkU4MDAwM0FDOTBGMzAwM0VDMDBFOTAwM0VDODBGQTAwM0MyMDYxOAorOjEwQkU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGNjAwRUU4MDNGRTBCQQorOjEwQkVBMDAwMEQ4OTAzRDI0MEU1ODEzOUUwM0NGOTA3RkUwMENGODhENworOjEwQkVCMDAwM0ZFMDBGRTgwM0YyMDhDRTgwMzNFMDBDRjgwMzAwMDAwNworOjEwQkVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQ0QzYwMDJGQzBCQworOjEwQkVEMDAwMDg1ODAyRDBDNDg1MjQyMTkwMDg1NDEyREM4MjA3MDAzRgorOjEwQkVFMDAwMkRDMDBCNzAwNkQ0MDA4RTQ4MjFDMDBBNjAwMjJBMDRCRgorOjEwQkVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQTc0MDJEQzA3MgorOjEwQkYwMDAwMDg0MjAyRDAwMEFEMDAyOUMwMDg3MDIyREMyODg3MDA1QQorOjEwQkYxMDAwMkRDMDBCNDAwMjk4MDA5NzAwQTBDNDA4NzAwMjAwMDBEQQorOjEwQkYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4OTMwMDJDRTA0QQorOjEwQkYzMDAwMDgzQzIyQzEwMDgxMDAyMDgwODgxNTAyQ0UzMDgzMDA5OQorOjEwQkY0MDAwMkNDMDBCM0MwMkNDMDQ5M0MwMjBGNDRBMEM4MjA4MDRBMQorOjEwQkY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRTNDMDFGRTBCMgorOjEwQkY2MDAwNkMxMDgzRTAwNEVCMDAzQTUyNENCNDAzRkUwMkNGMDBBNQorOjEwQkY3MDAwM0ZDMDBGODQ0M0UxMDJEOEMyMzNDMDBDODQwQjJBMDRCMworOjEwQkY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFOTAwRUIxMDNFQzRFQgorOjEwQkY5MDAwMEU5NDAzRTQwMEZCMTgzRUMyMEZCNjAzRUMwMEZCMDE1NQorOjEwQkZBMDAwM0VDMDBGMzUwM0M0MjhFQTQyM0VDMDBGODEwM0UwMDBDMworOjEwQkZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzQwRkYwMDMzQzAxMgorOjEwQkZDMDAwMENDMEEzMzAyOENEQTAzM0MwMENFODAzMEMwMEVGMDU1MworOjEwQkZEMDAwM0RDMDBDQ0E4MzNDMDBDRDA4M0ZDMjBDQTAwM0MwNDQ0NgorOjEwQkZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzAwQkI4MDIwQzAxQQorOjEwQkZGMDAwMDhBQTAyMDgwMEExMDEzNEQxMDhBNDEyMkMwMDhCMDA2OQorOjEwQzAwMDAwNkVDMDg4QjIwMjJDMDg4OTgwMkVDMDBBQTgwM0EwNDAwNgorOjEwQzAxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkE4MEEyQzBDMworOjEwQzAyMDAwMDhBODBBQTAwMDhCMDBBMkMwNDgxMTAyQUMwNDhCMDAzMworOjEwQzAzMDAwMkVDMDAwODAxMjJBMDg4QjE0MkNDMDA4ODgwMkUwMDA1MQorOjEwQzA0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjIwMDIyQzAwNAorOjEwQzA1MDAwMDhCMjEyODAwMEFCMDEyNEMwMDgwMDAyMEMwNDgzMDA2NworOjEwQzA2MDAwMkNDMDA4MzAwMjA3MDA4MjAwMjRDMDA4MDgwMjgyMDFBOAorOjEwQzA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkIwMDMyQzA1QQorOjEwQzA4MDAwMENBMjAzQTAwMEM5MDAzMkMwMjQ5NDAzM0MwMkNGMDBEQworOjEwQzA5MDAwMkZDMDA0ODAwQjA5MDJDQjAxM0ZDMDJDQTAwM0MwMDNCQQorOjEwQzBBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRkQwMjNGQzBBRAorOjEwQzBCMDAwNEZFNDEzNzAwMEZEMDAzRkMwMEZDMjgzRkMwMEZGMDA3RgorOjEwQzBDMDAwM0ZDMDBGRjAwM0ZDMDBGRjAwM0ZDMDBGQzAwM0E4MDZGNQorOjEwQzBEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwRUYzMDNGMDRBRAorOjEwQzBFMDAwNkM4ODAzM0E0MkU0OTEzRjBEMEQ0ODAzM0NDMEZGMDJDNworOjEwQzBGMDAwMzM0NDBDRjQwM0ZDODJERjMwMzM2MDBERjEwMzMwMDA3NQorOjEwQzEwMDAwNzAwMDAwMDAwMDAwMDAwMEEwMTBFRDAwOEI3MDJFMThFMQorOjEwQzExMDAwODgyMjRBMkM4MkVBMjYyRTBDMEJCODQyM0Q4MEJGOTAyMgorOjEwQzEyMDAwMkE1NDI4QjQwMkNEMDBEQjQwMkE0QTQ4MzAwMkEwMDQzOQorOjEwQzEzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQ0IwQTMwMDZDMTBBNworOjEwQzE0MDAwMDkwMDgyMjA4MkEwMjAyQzg4NEI4MDAwMEM0MEIzMDE4MworOjEwQzE1MDAwMjA0ODBCMzYwMjhDRTA4MzY0MjQ0MDI4MzIwMjIyMDFGRQorOjEwQzE2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTFBQzAwOEIwMDJFMDAwOQorOjEwQzE3MDAwMDk4MDgwQTYwMEJBMTEyRTg4MEJCMDAwMkMwMEJCMDJFQgorOjEwQzE4MDAwMDI0MDA5QjAwMkVDMDA4QjAwMkNDODA4Qjg4MkIwMDQ1MQorOjEwQzE5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRUIwMDNFOTI0MworOjEwQzFBMDAwMEQ4MDAzMEEyMEU5MDAzRTUwNDU4MDAxMkMwNEYzMDA3NQorOjEwQzFCMDAwOTA2MDA5QjAwM0VDMDA4QjAyMjY1MDhEQkMwMzEwMDQ4NAorOjEwQzFDMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFCQzAwRkYwMjNGODBDMgorOjEwQzFEMDAwMEVGOTAyN0MyMkFGMDAzRjYwMDNDMDBCRkMxMEZGMDA5MQorOjEwQzFFMDAwM0Y0QTRFRjAwM0ZDMDBGNzAwMkI2MDBGNzAwM0Y4MDA4RAorOjEwQzFGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMEIwMDAzOAorOjEwQzIwMDAwMEY4MjBCQTkwMEM5MDAzMkQyMEZBMDgzQUMwMENCMTA2MworOjEwQzIxMDAwM0U0MDBDQjAwM0VDMDBEQjAwMzI1MDJDOTUwMzEwMDRDMAorOjEwQzIyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA0QkYwMjIyODA3RQorOjEwQzIzMDAwMEI5ODAwMjkwMENCNDAyMkMwMEIyNDAyM0MwODhGNTBGMQorOjEwQzI0MDAwMkU1MDBERjAwMkZENDI4RjU4MjJFMDQ4QjUwMjMyMDAxOAorOjEwQzI1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDI0NDAzNgorOjEwQzI2MDAwNEI5NDAwNDkwMDkwODAwNDMwMDkwMDBFNEMwMDgzODBGQworOjEwQzI3MDAwMkNDMDA5MzAyMjZFNDI4MzgwMjA0ODA4MzgwMjM4MDBFMgorOjEwQzI4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDY1MjA2MworOjEwQzI5MDAwMEI3ODgyN0EwODhDQzAyNUEzNEI3ODAyNUUwNDg3ODREMQorOjEwQzJBMDAwMkQ2MTg5NzgwMkRFMDQ4NzgwRTk2MjA4NzgwMjA4MDAzRgorOjEwQzJCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRkIwMDM0NDg2QgorOjEwQzJDMDAwMEYzQjAzNDgwMDkzNDgzNDUwMEQwMDAzNkMwMEMzMTAyQgorOjEwQzJEMDAwMUNDMjA1MzAwM0NDNDBDQjAwMzI0MDBDMjAwMzEyMDJCQworOjEwQzJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzIwRkYwMTAzNDBEMgorOjEwQzJGMDAwMEZGMDIzMUMwMEZGMDAzQjgwMEZCMDIzM0MwMkZGNTBENworOjEwQzMwMDAwM0RDNDBGRjEwM0VDMDBFRjAwQjdDMDBGRTEwM0QwMDYwRQorOjEwQzMxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwRkIwMjNFRTAyOQorOjEwQzMyMDAwMEM4MDAzNDgwMkM4ODEzMjAwMEY5MDQyRUNBMEZCMTA0MQorOjEwQzMzMDAwM0VFMDBDQjEwM0VDNDBGQjEwMzI0MDFGRjAwMzJBMDAzQQorOjEwQzM0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcyNDJEODAwMAorOjEwQzM1MDAwMDg3MDQyRDgxMDhDMDIyMTQwMEI1MDAyREQwMEU3MjAwQgorOjEwQzM2MDAwMkY0MDA4NzAwMkRDMDVCNzAwMjFDMDBCRjAwMjEyMDQ1OAorOjEwQzM3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc5MDJGNDA0OQorOjEwQzM4MDAwMEE2ODAyN0EwMDk3ODAyMUUwMEI3ODAyREUwMEI3ODAwRAorOjEwQzM5MDAwMkRFMDA4NzgwNkRFMDBCN0EwMjE2MDBCNzg0MjMwMDA1RgorOjEwQzNBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDQzBBNgorOjEwQzNCMDAwMEEzNDAyQzgwMDgzNEEyMEY4MEIzMTAyQ0MwMEEzMDBFMworOjEwQzNDMDAwMkNDMDA4MzAwMkNDMDBCMzAwMjBCMjBCMjA0MjEyMDQ3MworOjEwQzNEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQkEwMDNGODgwNworOjEwQzNFMDAwMkVFMDQzNTk4OERFMDAzM0IwMEY2QzAzRTgwMEZBMDBGQQorOjEwQzNGMDAwM0U4MDJDQTAwM0U4MDRGQTAwMjNCODBGRTA4QjNBMDQzNworOjEwQzQwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjgwMTNFMDA2OQorOjEwQzQxMDAwMDk4MjIxRTAwMEY4NDBCRTE0MEY4NDgxRTAwMEU4MDBBQQorOjEwQzQyMDAwM0UwMDFGODAwM0UwMDBGODAwQkUwMDBGODgwM0QyMDAyQQorOjEwQzQzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRTEwMDMyNDA3RAorOjEwQzQ0MDAwMEM5MDQzRTQyMEQ5MDAzQzQ0MDg5MDAzMjQwMEY5MDFGNworOjEwQzQ1MDAwM0U0ODBGMTA0MzI1MDBDOTAwQjI0MDBDOTAwMzAyMDQ2RgorOjEwQzQ2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMEEwNDAxQgorOjEwQzQ3MDAwMDg5ODAyRTYwOEE5NjAyRTQ5MDg5NDAyMjQwMEI5MDAzMQorOjEwQzQ4MDAwMkU3MDBCOTAwMjI2MDI4OTAwQTA0MDBBOTAwQTIwMDAxQworOjEwQzQ5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDIyNDAzMAorOjEwQzRBMDAwMDg5ODA0RTYwMDk5ODAyRTQwMEFCMTAyMjQwMEI5MDBFMQorOjEwQzRCMDAwMEU0MDBCOTAwQTA0MDA4MTAxMjJDMDA4MTAwMjA2MDAwMQorOjEwQzRDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMDIyNDg2MQorOjEwQzREMDAwMDgxODA2QzQwMEExMDAyQzQ4MkEzMDAyMDQ4MEIxMjJBQQorOjEwQzRFMDAwMkM0ODBCMTIwMjA1ODA4MTYwMjI1MDBBMTQwMjAyMDFCRQorOjEwQzRGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMTQ0OAorOjEwQzUwMDAwMEM4NTAzRTE0MEQ4NTAzRTE0MEU4MDBCMjE0MEZBMDAwOAorOjEwQzUxMDAwM0U5NDBGODUwMzIwMDBDMDAwMzIwMDBDODAwMzJFMDNFMAorOjEwQzUyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQxRjkxMDNENDU1NgorOjEwQzUzMDAwMEZEMDAzRjQwMEZGMDAzRjQ1MEREMDAzRTQ0MEY5MTA5NQorOjEwQzU0MDAwM0Y0NDBGOTEwM0U0NDJGOTEwM0Y0MDBGRDQwM0U2MDY0NQorOjEwQzU1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRjkwMDNFNDBGMworOjEwQzU2MDAwMENEMDAzRjQwODhEMDIzRjQwMEZEMDAzRTQwMENEMDA0RgorOjEwQzU3MDAwMzM0MDBDOTAwMzI0MDBGOTAwMzI0MDRDOTgyMzA2MDAwRAorOjEwQzU4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwRTgwMDJFMDBGRAorOjEwQzU5MDAwNDg4MDAyRTgwMEQwMDAyRTgwMEI4MDEyRTAwMjg4MDA2NAorOjEwQzVBMDAwQTIwMDBBODAxMjIyMDBCODgxMjIyODA4Q0YwMjBFMDRCRAorOjEwQzVCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1RAorOjEwQzVDMDAwMjgxMDAyQzQwMDgxMDAyQzQwMEIxMDAyQzQwMDkxMDAwRQorOjEwQzVEMDAwMjY0MDA5MTAwMjU0QTBCNTJDQTU0MjA4NTA4MjAyMDE0MQorOjEwQzVFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkwMDJFNTBFMworOjEwQzVGMDAwNTg5MDAyRTQ4MDlCMDAyRTQ1OEI5MjAyRTQwMDk5MDA0MworOjEwQzYwMDAwMjY0NDBCOTAwMjY0MDhCNTAwMjU0QTA4NTEwMjA2MDQyRQorOjEwQzYxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDNFNTQ5NgorOjEwQzYyMDAwMEM5MDQzQzQwMEM5OTAzRTcwMEY5ODAzRTQwMEQ5MDBGOQorOjEwQzYzMDAwMzQ2MDREOTAwQTY0MDBGOTAwMzY0MDJDOUUwMzI4MDRCMworOjEwQzY0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNDNDAzOAorOjEwQzY1MDAwMEY5QzAzRTYzMEY5MDAzRTYyMEY5MDAzRTQwMEU5MDAwRQorOjEwQzY2MDAwM0E0MDRFOTAwM0E0MDA3OTBDM0E0MDBGOTAxQkNBMDA0OAorOjEwQzY3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMDNFMDA0QworOjEwQzY4MDAwMEM4MTEzRTEwOEM4NDgzMjAwM0M4MDAzQzAwMEYwMTA2MAorOjEwQzY5MDAwM0UwNjBDODAwM0YwMDhDQzAwMzMwNDBDQzAwMzBBMDRFRgorOjEwQzZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDJFODBBRAorOjEwQzZCMDAwMDhFQzQyRkEyMDhFMDAyM0EwMDhFODQyRTgwMEJFODA4MQorOjEwQzZDMDAwMkY4MDA4QTAwMkU4MDBEQTAwMjI4MDQ4RTAwMjBBMDA3OQorOjEwQzZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwMDJDQzAwMgorOjEwQzZFMDAwMDkzNDgyQzkwMDgzODAyMEYwMDgzMDgyQ0MwMEIzODBGNgorOjEwQzZGMDAwMkNGMDA4QjAwMkMxMjA4MDAwQTAzMjA4MDAwMjBBMDAxRAorOjEwQzcwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0MwQjcwMTJGQzhBRAorOjEwQzcxMDAwODk1MDAyRDgwMjg3QzQyMUUyNDg3MDgyREMwMEI3MDA0OQorOjEwQzcyMDAwMkM0MDA4NzIwMkNFMDA5NzA4MjNDMDA4NzAwMjI4MDAyRgorOjEwQzczMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjdFMTNERThFRQorOjEwQzc0MDAwMkQ2ODAzRjIwMEM3ODBCMEUwMDg2ODAzREY4MEY2ODA0MAorOjEwQzc1MDAwM0RFMDhDN0UwM0RBMDBDQzgwMzEyMDBDQzgwQjJBMDIyRAorOjEwQzc2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzA4RkIwMDNDQzBGOQorOjEwQzc3MDAwMEU4MDAzRTAwOEY5MDAzRTQwMEZCMDAyRUMwMEZBMDAyMgorOjEwQzc4MDAwM0U0MDJGQjAwM0U0MDBGQjAwM0NDMDJGQjAwM0MyMDZDNAorOjEwQzc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY5MjdGRUEzQworOjEwQzdBMDAwMENGODAzRkUwMENDQTAzRjIwMERGOTAzM0UwMENGODAyMworOjEwQzdCMDAwMzM2MDBGRjgwM0Y2MDBFRjg0MzNFMDJDQzgwMzAwMDA2OQorOjEwQzdDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDJGQzhGNgorOjEwQzdEMDAwMDg1NDAyRDgwMEQ2MDQyRDAxMDg2OTAyMUMwMDg1MDAwNworOjEwQzdFMDAwMjE0MzBCNzAwMzlBQzA4QzAwQTMwMjA4RjEwMjJBMDRCMworOjEwQzdGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTJEQ0M4QworOjEwQzgwMDAwMDg3MDAyRDQwMDk0MjgyREMyMDhDMjAyNUMwMDg2MDA4MQorOjEwQzgxMDAwMjE4MDBCNzEwMkRDMDBBNzEwMjFDMDA4NDgwMjQwMDBGMworOjEwQzgyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4QjMwMDJDRjAxMQorOjEwQzgzMDAwMDgwNTAyQzAyMDkwODAyRTAwMDgwMDgyNEMwMjgwMDA3MworOjEwQzg0MDAwQTA2MTBCMzAwMkEwMDA4MDAwQTAzMDg4QjEwQTQ4MDQyQgorOjEwQzg1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkYwMDJEQzgzQgorOjEwQzg2MDAwMEMzRDAzRTQwMERCMDIzRUYwMkM5MDRCN0MwMEMxMDA0OQorOjEwQzg3MDAwMzIyMDRGRjAxM0UwMDBFODAxMzIwMDhDQUMwMzZBMDQ3MAorOjEwQzg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFQzJERAorOjEwQzg5MDAwNEZCMDAzRTAwNEZBNDAzRUMyNEU5ODIzQUMxMEY4MDBCQgorOjEwQzhBMDAwM0U1MDA3QjAxM0FDMDBGQjAwM0VDMjBGOTIwM0EwMDA0NQorOjEwQzhCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDNGQzA4RAorOjEwQzhDMDAwMENDODIzMzY4MkNGODAzRjgwMENFMDAzRUMwMEY5MjBCNworOjEwQzhEMDAwMzNDMDBFRjAwM0Y4MTBEQzAwMzMwMDRDRTgyMTAwNDRCNAorOjEwQzhFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQUIwMDJFQzA4RQorOjEwQzhGMDAwNEE4RDQyMjEwMDhCNDIyRUQyMDhCMDAzRUMwMEI4ODg0QQorOjEwQzkwMDAwMzQ2MjBEQjAwMkU0MDA4QjAwMjJDMDA4OTAwQTIwNDA3RgorOjEwQzkxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDJFQzBERAorOjEwQzkyMDAwMDhBMDAyMEQwMDg5MTAyRTA4Mjg5MjAyRUMwNEJCMDAxQQorOjEwQzkzMDAwMjJBMDA4QjAwMjY0MDJCMzAyMjBDMDA4QTIwMkEwMDAzNAorOjEwQzk0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQTMwMDJFQzBGRQorOjEwQzk1MDAwMEE5MDIyMEMxMDgwMDAyQzAwMTgwMjgyQ0MwMEIwMDAzQgorOjEwQzk2MDAwMjY0MDA5MzAwMkM4MjA4MDAwMjAwMDA4MTAwNjgyMDFGRAorOjEwQzk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0IwMDJFQzA4NQorOjEwQzk4MDAwMENBMTAyMjQwMDg4MDAzQzAwMEM4MDAzRUMwMEZCMDA5QQorOjEwQzk5MDAwMzI4MDBFQjAwM0NDODBEQjAwMzJDMDBDQTAwMzgwMDNEOQorOjEwQzlBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGQzA4MAorOjEwQzlCMDAwNEZDMjEzRDQxMEZDMDAzRjAwMEYwMDAzQkMwMEZDMDA2QQorOjEwQzlDMDAwM0Y0MDBGRjAyM0UwMTJGQzAxQkYwMDBGRDAwMzY4MDJDQworOjEwQzlEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQzc4MDMzQzBFQworOjEwQzlFMDAwOEJCNDAzQjBDMENGMkUxRjBDNEZDMzAzMzA4MEZGMDFBOAorOjEwQzlGMDAwM0YwODBGRjAwMDdDMDBGRjIxMzNFNDBDRTAwMzMwMDAxRgorOjEwQ0EwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRTAwOEI4MjIzRjAxOAorOjEwQ0ExMDAwMEJCNTEyMEQ4ODg4QzAwRTk4MEI4NjAyMjEwMEJCQzA5MgorOjEwQ0EyMDAwMkVFNDRCRjc4MzJGNDRCRjkwMjJDODQ4QTY4MjIwMDRFRgorOjEwQ0EzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzA5OEEwMDIwNTA2QQorOjEwQ0E0MDAwNEJCMjBBODBDQzgzMDEwQzhDMEIyMzBBMDQ2MEIzMTQxNAorOjEwQ0E1MDAwMjQ0MDRCMzAwMkNDMTBCMzAwMjBDOEU5MTEwNjYyMDExQgorOjEwQ0E2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAxOEE4MEEyNDRFNAorOjEwQ0E3MDAwMEJCMDAyQTEwNDg4NDAyRUEwMEIyMDAyMjgyMEJCNDA0RQorOjEwQ0E4MDAwMkU0MDBCQjAwMjJDMDhCQjAwMjJDMDA5QjAwMjcwMDQ3QgorOjEwQ0E5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQzM4MzMyRTA5RAorOjEwQ0FBMDAwOEYwMDAzQTAwMkNCQzQzRTI4MDc4QjAzMjEwMEY5QzBFRQorOjEwQ0FCMDAwM0UxMDBGQjAwM0VDMDA3QjAwMzJDMDBEQTAwMzUwMDQwOQorOjEwQ0FDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAyRkYwMDNGRTA1OQorOjEwQ0FEMDAwMEZGNDQzNUU4MEZDOTQzRjAwMEZDMDJCRjI1MEZEMjEwOQorOjEwQ0FFMDAwN0U4NDhGRjAwMzZDMENGRjAwM0ZDMDBFNjIwM0I4MDAyMQorOjEwQ0FGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRUIwMDMyNDA3RAorOjEwQ0IwMDAwMkM4MDAzNjkwMENCMzBCMjAwNEZCMzQzRTUwMENCNDAyQgorOjEwQ0IxMDAwNzIxODJDQjAwM0VDMjhDMzIxM0FDMTBGOTQwMzEwMDRGRgorOjEwQ0IyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzAwOEIyMDIyNTBCRgorOjEwQ0IzMDAwMDhCMDAyMjgwMDg4QzAyQTAwOEJCNDAyRTgwMERCMDA5RAorOjEwQ0I0MDAwNjIzMDA4RjAwMkZDMDA4RjgwMjJDMDBCOTU0NzMyMDA1MworOjEwQ0I1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDIwQzJEMQorOjEwQ0I2MDAwNDgzMDAyNDk4MDgzNDI2MDEyMEIzMDAyQzgwMDgyMDJDMgorOjEwQ0I3MDAwMkMzMDA5QjAwMkNGMDE4MzUwMkFDMDBCMjAwMkI4MDAyQworOjEwQ0I4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwOUQ4MEEwRTA3OQorOjEwQ0I5MDAwMDg3OTIyNUU2MDg3OTAyOUEwMEI3ODAyQzYwMDkyODFGNgorOjEwQ0JBMDAwMDVFMDA5NzgwMkRFNDA4NzgwMjFFMDBCMjkwMjA4MDBCOQorOjEwQ0JCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRjIwMDMwQzBCNworOjEwQ0JDMDAwMDgzQTAzNDQwNEMzMTQzMEMwMEYyMjAzQ0M4MEMyMDBDRgorOjEwQ0JEMDAwQTREMjBEMzAxM0NDMjBDMzAwMzhDNDRGMDQ0MzEyMDIzQQorOjEwQ0JFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRUUwMDNGRTAzRgorOjEwQ0JGMDAwMEY3MDAzQjQwMkY0MTAzRkMwOEZBMDAzRkMwMDdFMDA0RQorOjEwQ0MwMDAwM0JDMDBFRjA4M0VDMDBGNzAwM0ZDMDBGQzAwM0QwMDYxRQorOjEwQ0MxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzAwRjkwMDNFQzAxNAorOjEwQ0MyMDAwMEZBMDAzQUExMkNCMDEzMjgwMEZCMDEzMjgxNEY5ODA5MQorOjEwQ0MzMDAwM0E0MDAzQjQwM0VDNDJDQjE4M0VDMDBGQjAwMzJBMDBDNQorOjEwQ0M0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5RDAwQjUwMDJEQzREOAorOjEwQ0M1MDAwMEI3MDRCN0MwMDg0MDAyMTgwMEI3MDAyOTQxMEIyMDA5QQorOjEwQ0M2MDAwMjlDMDBCNzI4MkRDMDA4NzIwMkRDMTBFNzAwMjEyMDRENQorOjEwQ0M3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJERTBCMgorOjEwQ0M4MDAwMEI2ODAyOUUwMDgzODAyMUUwNUIzODAyMUUwMEI0QzA2NgorOjEwQ0M5MDAwMjVFMDA5NzgzMkNFMDA5NzgwMkRFMDBCNUM0RTMwMDAwNQorOjEwQ0NBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjM0NDJDQzA1OQorOjEwQ0NCMDAwMEIzQzAyQ0M0MDkzMDgyMEUwMEIzMDAyOEMxMEIzQzAzOAorOjEwQ0NDMDAwMjhEODFCMzAwMkNDMDg5MzAxNkNDMDBBQjg4MjEyMDQyOQorOjEwQ0NEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRjYxMDNFODBCQgorOjEwQ0NFMDAwNEJFRDgzQjgwMENFRTRCM0EzMEZFMDAzMzgwMEZFMDBBMQorOjEwQ0NGMDAwM0I4MDBEQTAwMkU4MDBEQTAwM0U4MDBGRTgwMjNBMDQxMworOjEwQ0QwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjg0MDNFMDAxNQorOjEwQ0QxMDAwMEY4MDEzNjAwMEUwMDAzRTAwNDMwODAzRTAwMEY4MDhDNQorOjEwQ0QyMDAwM0EwMDBGODAwM0UwMDBFODQwM0UwMDBFODAyM0QyMDA2RQorOjEwQ0QzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBDNDAwRDlDMEJFNDA1MAorOjEwQ0Q0MDAwMEY5MDAzRTYwMEY5MDAzMjQwMDE5QTAzMjQwMEY5MDAzNQorOjEwQ0Q1MDAwM0U0MDBGOTAwM0M0NDAwOTEwMEU0MDBGOUEwMzAyMDQ5NgorOjEwQ0Q2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0ODkwNEEyNjAxOAorOjEwQ0Q3MDAwOEI5RDgwQTYwMEI5ODAyMjQwNDg5ODAyMjQwMEI5MDAwQgorOjEwQ0Q4MDAwMkU0MDhCOTAwMkU0OTQ4OTYwMkU0MDBCOTQwQjIwMDA3RgorOjEwQ0Q5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkwOEFFNDhBQgorOjEwQ0RBMDAwNEIxMDAyRTU4MUI5MTAyMDQ0MUI5NDAyMjQxMEI5MDBGNQorOjEwQ0RCMDAwNkU2MDBCOTAwMkU0MDA4OTAwMkU0MDBCOTQwMjA2MDA4NgorOjEwQ0RDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODkwMEEwNjgwMgorOjEwQ0REMDAwMEIxMjAyODQ4OUIxMjAyMDQ4MUExMjEyMDQ4MEIxMjI1OQorOjEwQ0RFMDAwMEM0ODBCMTIwMkM0ODFBMTIwMkM0MDBCMTIwMjAyMDEzQworOjEwQ0RGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRDgwMEJFMDA3OAorOjEwQ0UwMDAwMEYwNTBCRTE0MEY4MDAzMjE0MEY4NTAzMjE0MEY4MDBCNAorOjEwQ0UxMDAwMkU4MDBGODUxM0UwMDJDODAwM0UxNDBGMDUwMTJFMDM3QgorOjEwQ0UyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQwRkQwMEJGNDREOQorOjEwQ0UzMDAwMEZEMTAzRjQ0MDdEMTBCRjQ0NDVGMTJCRjQ0MEZEMTBBOQorOjEwQ0U0MDAwM0Y0NDBGOTEwM0U0NDBEOTEwM0U0MDBGRDEwM0E2MDZBMgorOjEwQ0U1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkQwMDFGNjJEMQorOjEwQ0U2MDAwMEZEODgyMzYwMEJEQTAzQjY4MENEQzgzMjZDOEQ5QTA1MQorOjEwQ0U3MDAwMzM2MDBEOTk4MzU2MjBENUE4MkU0NDBDRDg4Mzg2MDRBMAorOjEwQ0U4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTQ4QjgwMDJFMDBEQgorOjEwQ0U5MDAwMEIwQTgyMjIyMEI4NTAyMkJBMDg4QTIyMjI4MDg4MDBGNworOjEwQ0VBMDAwMjIwMTA4MEMwMjIwMDA4ODAwMkUyODg4ODgwMkNFMDQ2NworOjEwQ0VCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1NAorOjEwQ0VDMDAwMUIxMDBBODQ0MEIxMDAyODU4MEEzMjAyMDUwMDk5NDAxQworOjEwQ0VEMDAwMjA2NTA5MTA0MkM0MDA5MTAwMkM0MDBBMzA4MkMyMDEzMgorOjEwQ0VFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjkwMDJFNDBERQorOjEwQ0VGMDAwMUI5MDAyQTU4MEI5MTAyMjQ4MDgxMDQyMDQxMDA5MDBCNgorOjEwQ0YwMDAwMjI0MDA4OTAwMkU0MDA5QjAwMkM0MDBBOTQyMkM2MDRCMAorOjEwQ0YxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkyMDNFNDA4MQorOjEwQ0YyMDAwMEY5MDEzQTcxMEY5NjBCQTUwMkU5QzBBMjU4NEQxRjBGNworOjEwQ0YzMDAwQjI2MDBEOTAwM0U0MDBEOTAwM0U0MDBFOTAwM0E4MDBCQgorOjEwQ0Y0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDBDRjk5MDNFNkE2NworOjEwQ0Y1MDAwOEY5MDIzNjYwMEYxMDgzQzQwMEY5QzQzRTQ0MEY5ODAyOQorOjEwQ0Y2MDAwM0E0NDBGOTAwMzI0MDRFOTAyM0U0MDJEOTExM0NBMDA3NQorOjEwQ0Y3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRTgyMDNFMDEzMgorOjEwQ0Y4MDAwMEMwMDAzQTEyMEU4NTAzMjEwMkM4QzAzMjEwMEU4MDA5MworOjEwQ0Y5MDAwMzIwMjBGMDAxMzIwODhDODA4MzIwMDBGOEMwM0NBMDAyOQorOjEwQ0ZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwOEVFMzJGOTBCQworOjEwQ0ZCMDAwMEFFMDA2M0IwMEVFMDQyMzkwMDhFMDAyMjgwODhBMDJGQgorOjEwQ0ZDMDAwNzU5MDhCQTA0MTU4OTA4RTgwMkE4MTBCRTAwMzhBMTBDNworOjEwQ0ZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RTAwQTMwMDZDNjAyNworOjEwQ0ZFMDAwMDgzODFBOEU0MEEwODAyMENDMDkzMDAyMEMwNUEzMDQxQQorOjEwQ0ZGMDAwMjhDNDBCMzAwMjBEMDE4M0MwMjBDMDBCMzAwMkNBMDBEMAorOjEwRDAwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTA4ODcwMDJENjJGMworOjEwRDAxMDAwMEI3MDkyMUMwOEEwMDA2MUMwMDk2MDA2MUM4MEE3MDA2QworOjEwRDAyMDAwMjFDMDBCNzIwMjU4MDE4Nzg4MjlDMDBCNjAxMkE4MDAyQQorOjEwRDAzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRTY4MDNENjBERgorOjEwRDA0MDAwMEM3ODQyOTYwMEU0ODBBMzYwMEQ3ODAzM0YwMEUzODBGMworOjEwRDA1MDAwMjFFMDBGN0IwMzE2MDhDNzgwMzFFMjRGNzg0M0VBMDJENAorOjEwRDA2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAxRjgwMDNDNDA5QQorOjEwRDA3MDAwMEVCMDAyRUMwMEY4MDEzRTQwNEUzMDMzRUQyMERCMDFGMworOjEwRDA4MDAwQkVDMDBGQjQwM0VDMDBGQjAwM0VEODBGQTAwM0MyMDZFNQorOjEwRDA5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQzc4NDIzNjA1RgorOjEwRDBBMDAwMEM3ODBCQkUwMEZEODAzRkUwMEZFQjAzM0UwMENGODAwRAorOjEwRDBCMDAwM0IyNTBDRjg4MzdFNDBDRDgwMzNFMjBCRjkwMzAwMDA2MgorOjEwRDBDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAyODcwMDE1NDhCNQorOjEwRDBEMDAwMDg3MDAyMTQyMEI2MDAzNTlBNDlDODAzOUM4NEE3MDA0MgorOjEwRDBFMDAwMzlEMDBBNzAwMjFBMDhBNDAwMjFDMDA5NjE0MjJBMDQzQQorOjEwRDBGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDA0QworOjEwRDEwMDAwMDg3MTAyOTQwMEI1MDAyRDQwMEJGMTIyNUMwMjA3MDg2MworOjEwRDExMDAwMkM1MDA4NzAwMjUwMDA4NzAwMkRDNDBCNTA0MjAwMDBCNAorOjEwRDEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwODMwMjI0NDBGNgorOjEwRDEzMDAwMTgzRDBBMDEwMEIwNTgyNDIwMDkzMDAyOEY0MDgzRTBENgorOjEwRDE0MDAwMkNDMTBBMzA0MjA4MDBCMzAxNkNDMDA5MDgxNjA4MDQ1QgorOjEwRDE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU4QzAwOEIwMDMyNDA1OQorOjEwRDE2MDAwMEMyNTAzQTg0OEY4ODEzRTgwMEY4MDYzN0MwMENCODBBQgorOjEwRDE3MDAwM0FDMDBDRjAwMzZDMDBDQTAyQkZDMDBGOTg4QjJBMDQ5RgorOjEwRDE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFNTA0QworOjEwRDE5MDAwMkZBNDBCQzgwMEYwNDAzRUQwMEZBMDMzRUMyMEZCMDRCRQorOjEwRDFBMDAwN0FFMDBGQjAwM0VEMDhFOTAzMzJDMDBEOTAwM0UwMDAxMAorOjEwRDFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFQzQwRUUwMDNFQzAxNgorOjEwRDFDMDAwMENEQTAzNzAwNENDMDJCMUEwMEVGMDIzRUMwMEZGMDBENworOjEwRDFEMDAwMzcyMENEQjA3M0VDODhGQjgwM0ZDMDBGMzAwMzAwNDQ5NAorOjEwRDFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTAwODg4MDJDRTEwNworOjEwRDFGMDAwMDg5NDBBQTkwMjg4NDAyMkQwMDhCOTQyRUMwNEJCMDA3NgorOjEwRDIwMDAwMkNENDBEQjAwMkVEMjBCQkQwMkVDMDBCQjAwMkEwNDAzQworOjEwRDIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwQUI4MDJFRjAwQworOjEwRDIyMDAwMjlBMDgyNkQwMDg4MDgyMjA0MDg5MDQyRUMwMEJCMDAwRgorOjEwRDIzMDAwMkE4MTA4QjAwMkU0MDlCQTA0MkVDMTRCOTg4MjIwMDA2QQorOjEwRDI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDJDQzAxRgorOjEwRDI1MDAwMEEyMTAyODQxMDgyMDBFMDAwMTgwQTEyQ0MwMEIzMDBGOAorOjEwRDI2MDAwMENDMDA5MzAwMkNDOTBCMDAwMkNDMDBCMTAwMjgyMDExRgorOjEwRDI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwRUIwMDNFMDAxNAorOjEwRDI4MDAwMkNCNDAzNjQwODg4MDBCMjAwMENCMjQzRkMwMEZCMDAxRAorOjEwRDI5MDAwNTYwMDBDRjAwMUU0MDBGQjAwM0ZDMDBGODAwQjAwMDNDMAorOjEwRDJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDNGNDBGRgorOjEwRDJCMDAwMkRGMDYxRjAwMEY0MDAyNzAxMERCMTExRkMwMEZGMDIxOAorOjEwRDJDMDAwMDdDMDBGRjAwM0VDNDBGRjAwM0ZDMDBGQzAwMzY4MDYyQgorOjEwRDJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNjAwRUY5MDNENEMxQgorOjEwRDJFMDAwMkNDMDEzRjQwOEZEMjAzNzRDOEU4MjgzNzQ4NERDQzI3QQorOjEwRDJGMDAwM0ZEODBERjIwM0VDQzBGRjgxM0YwMDBDRjgwM0YwMDBCMworOjEwRDMwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNjAwOEIyNDJFNUNGRQorOjEwRDMxMDAwMDg4RDAyRkY0OEI5OTAyRjU0MEI4NDgyM0U0MEEwODBCNAorOjEwRDMyMDAwMkVDNDBBRkM0MkVEODBCOTgwMkU2MDBBOTgxMkUwMDRGNworOjEwRDMzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFNDAxQTMwMDI4NDgzOAorOjEwRDM0MDAwMEEwMDQyQzQwMEIxMDAyQzQ5MEIwQTQyMDRBMjkxMjFGOAorOjEwRDM1MDAwMkNDOTA4MzEwMjhDQzFBMzAwMkM0MDA4MTgwMkEyMDE3QworOjEwRDM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMDIwOEI4MjJFNDQzOQorOjEwRDM3MDAwNTg4MDAyRTQwMEJCMTAyRTQwMEJBMTEyMEMwMTg5MTA1MgorOjEwRDM4MDAwMkVDMDBBQjAwMkVDMDFCODgwMkVFMjBBQTEwMkYwMDQxRAorOjEwRDM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQjQwRUI0MDNFNjBFNAorOjEwRDNBMDAwMEU4NzMzRTQwMEI5QTEzNkMwMEVBODBCMjYwMERBQzAwMAorOjEwRDNCMDAwM0VDMDhEQjAwM0VDMDBGQjg1M0VFMTA4QjgwMzkwMDU0QworOjEwRDNDMDAwMjAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMjJGNjAxNAorOjEwRDNEMDAwMDNFODgzRkMxMEZEODAxRjQwMUZEMDEzQkU0MEVFMDQwNQorOjEwRDNFMDAwM0ZDMDBGRjA0M0ZDMDhGRDAwM0NDMDBGRDAxMUY4MDAxNworOjEwRDNGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwREIwMEIyNDAwQworOjEwRDQwMDAwMEU5NDAzMjQwMEQ5MDBCQUMwMEMyMDAzRTQ5MEZCMDA2MgorOjEwRDQxMDAwM0FDMDBDQjAwM0VDMDFGQTAwM0VEMDJDOTgwMzkwMDQwMworOjEwRDQyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMzAwOEIwMDIyNDgxNworOjEwRDQzMDAwMDg4NDIyMkMwMEI5MDAyMkMwMDhBMDAyRUQwMDhCQTBCNQorOjEwRDQ0MDAwMjFDMDA4RjAwMkZDMDBCOTgwMkVDMDA4QTAwMjMyMDAwMgorOjEwRDQ1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0NTIwOTMwMDIyRjg5NQorOjEwRDQ2MDAwMEIzMDBBODQ0MEIyMDAyMDQwMDgxMDAyQzQwMDgwODBDMworOjEwRDQ3MDAwMjhDMDI4MzkwMjRDMDBCMTAwMkNDMDA4MzAwMkI4MDA4NgorOjEwRDQ4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEzNjAwOUY4MDIxNjA1NQorOjEwRDQ5MDAwMDkzODAyOUUwMEIyQzAyMDYwNDg0ODEyRDZDNjg2RDAyNQorOjEwRDRBMDAwMjFFMDA4NzgwMERFODBCNzgyMkRFMDA4RjgwMjA4MDA0RAorOjEwRDRCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzIwRDMxMDMwQzhENQorOjEwRDRDMDAwMEYzMDAzODQwMEYxMDAzMDQwMjQxOTAzRTRDMEUwNDAzMQorOjEwRDREMDAwM0FDMDBDMzIwM0NFODBCMTI4M0NDMDBDMzAxMzkyMDIwQgorOjEwRDRFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRTYwMDdGQzAxRQorOjEwRDRGMDAwMEVGMDIzNzQ0MEZGMTAzRjQwNEZEMDAzRkNEMkNFMDQwNworOjEwRDUwMDAwM0ZDMDBGRjQwM0ZDMDBGRTAwM0ZDMDBGNzEwM0QwMTJCOAorOjEwRDUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAwQ0IwMDE2QzA2RgorOjEwRDUyMDAwMEQ4MDAzMjcyMENCMDAzRUMyMEFCMDUzRTQyOEMxODFGRQorOjEwRDUzMDAwMzJDMTBFQjkwMzJDMDBGMTgwMzVFMDBDQjgwMzJBMDQ4NworOjEwRDU0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcxMDJENDA3MAorOjEwRDU1MDAwMDg3MDAzNUMwMEE3MDAyRDQwMjg3MDAyRDQwNDg3MDRFMworOjEwRDU2MDAwQTFEMDBCNzIwMjFEMDBGNzAwMjFDMDBENTAwMjEyMDQ2MQorOjEwRDU3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODU4MDI1RTBFMworOjEwRDU4MDAwMDk3ODAyMzcwMzg3ODAyRkUwMDg3ODEyQzYxMDhEODA1MworOjEwRDU5MDAwMjVFODBCMzgwMjFFODBCQzg0MjVFMDA4NTgwMjcwMDA4NAorOjEwRDVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDgwODM4ODJDQzBCQgorOjEwRDVCMDAwMDgzQzAyNEUwMUEzRDIyRUM0MDhCMTAyQ0MwMDgzODBFNQorOjEwRDVDMDAwMjRDMTBCMzAwMjBDMDBCMzQwQTBEMjA5MzAxMjUyMDAyQgorOjEwRDVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTAwQ0FDMDM2ODAyNAorOjEwRDVFMDAwMEQ2NzEzMjgwMENFMDAzRUEwMENFRDAzRTgwMENFRTA0RQorOjEwRDVGMDAwMzY4MDFFQTAwQjI4MDRGRTAwQjdCMjBDRTAwQjdBMDBBOAorOjEwRDYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDJFMTAwQworOjEwRDYxMDAwMEY4MDAzRTAwMUQ4MEEzRTAwMEY4MDAzQzAwMkY4MDgyMworOjEwRDYyMDAwM0EwMDBGODAwM0UwMTBFODIwQkUwMDBGODAxMzkyMDA0NAorOjEwRDYzMDAwMjAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwRkIwMDNFNDA1NAorOjEwRDY0MDAwMEM5MTAzMjYwMDYxODAzMjQwMEM5MDAzMjQwMEM5MDAzNQorOjEwRDY1MDAwMUU0MDBDOUMwM0U0MDFGOTAwM0U0MDBGOTAwM0MyMDAwMQorOjEwRDY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NzAwQjkwMDJDNDA3QQorOjEwRDY3MDAwMDA5QzAyQTYwMDc5MDAyMjQwMjg5MDAyMjQwMDg5MDAyNAorOjEwRDY4MDAwMkM0NDA4OTgwMkU0MDBCOTgwMkU0MDBCOTAwMkUwMDE3RgorOjEwRDY5MDAwMDAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQkIwMDI2NTAxQworOjEwRDZBMDAwMjg5MDgyMjQ4NDk5MjAyMjQwNDk5MDAyMjQwMDg5MDBGNQorOjEwRDZCMDAwMkU0MDA4OTAwMkU0MDBCOTYwMkU0MDBCOTAwMkM2MDQ5MAorOjEwRDZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwQjEwMDJFNDhFMQorOjEwRDZEMDAwMDgxMjAyODQ4MEIxMjBBMDQ4MDkxMjBBMDQ4MDgxMDA0NworOjEwRDZFMDAwMkM0ODI4MTI0MkM0ODgzMTAwMkM0MDBCMTgwMkMyMDE3OQorOjEwRDZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRjg1MDM2MTQ3MworOjEwRDcwMDAwMEM4MDAzMjAwMEU4MDAzMjE0MEM4NTAzMjE0MEM4NTAyRgorOjEwRDcxMDAwM0UxNDBDODAwM0UxNDAzODAwM0UwMDhGODAwM0VFMDM4RQorOjEwRDcyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURENDAwRkIwNDNENDRBMAorOjEwRDczMDAwMEY1MTIzRDQ0OEVEMTAzRDQ0NEVEMTIzRjQ0MkZEMDA1NworOjEwRDc0MDAwM0U0NDhGOTEwM0U0NThGRDAwM0Y1MDBGNTAwM0U2MDYxRQorOjEwRDc1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNDAwRjkwMDNENDBEMgorOjEwRDc2MDAwMENEMDAzRjQwMEREMDIzRTQwMEM5MDAzRTQ0MEM5MTBFRAorOjEwRDc3MDAwMzc0MDA3RDAwNzI0MDBFNTAwMkY2QTBGNzAwMzA2MDAyQQorOjEwRDc4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjgwMDNBMDAwRgorOjEwRDc5MDAwODA4MDAyRTAwMDg4MDAyRTAwMEE4MDUzQTI4MDJDQTAyNgorOjEwRDdBMDAwMjIwMDBCODAwQTIwMDBCODAwMkUxMDA5ODAwMzBFMDQwRQorOjEwRDdCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDZDNDAwQgorOjEwRDdDMDAwMkExMDAyODQwMTgxODAyRTQwMDkxMDAyRjQwMDhEMDQ4OQorOjEwRDdEMDAwMjA0MDBCMTAwMjg0MDBCMTAwMkM0MDBCOTgwMjQyMDE0MworOjEwRDdFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDIwQjkwMDJBNDBCOQorOjEwRDdGMDAwODhCNDAyRTYwMUE5MjAyRTQ4MEE5MDAwQTQ0MEFENDA1QQorOjEwRDgwMDAwMjI0MDBCOTAxMkE0MDRCOTAxMkU0MTBCOTAwMjA2MDQ5MQorOjEwRDgxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjlDMDNFNjBCOAorOjEwRDgyMDAwMEM5NDEzQTYwMkQ5NDIxQzYwMEM5RTAxQzYwNEMxMDBEMAorOjEwRDgzMDAwQjI0MDFGOTAwMkE0MDBFOTA4M0U2ODRGOTgwQjY4MDRBQworOjEwRDg0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjQwRjkyMDM4NzA5OAorOjEwRDg1MDAwMEY5MTAzRTQwMEQ5ODAzRTQwMEY5QzEzQTQwMEY5MDAwRgorOjEwRDg2MDAwM0U0MDBGMTAwMzY0MTBGOTBBM0U1MDBEOUEwM0NBMDA5RgorOjEwRDg3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwRDgwNDNFMDA1NQorOjEwRDg4MDAwMEM4MTEzQzAwMkQ4MjAzRTAwMkQ4NDAzRTAwMENDMDg5OAorOjEwRDg5MDAwM0EwMDBGODA0M0UwMDBGODQxMzIwMDA3ODE4QjBBMDQxMAorOjEwRDhBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTYwOEEwMDJGQTgzMAorOjEwRDhCMDAwMEFFMDIyRTgwMjdFNDgyRTgwMDhBMDQyRTgwNDhFMDA5QQorOjEwRDhDMDAwMjNBODBCQTg4MkU4MDBFRTAwQTI4MDRCNjAwMjBBMDBBOQorOjEwRDhEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMDZDQzBEMAorOjEwRDhFMDAwMDgzMDAyQ0MwMDEzODEyQ0MwMDgzMDAyQ0U0MDgyNDBBOAorOjEwRDhGMDAwMjhFMDBCMzgwMkNDMDBCMzEwMjRDMDhCMzgwMjBBMDA5OQorOjEwRDkwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwODcyMDJGQzA3MgorOjEwRDkxMDAwMEE3MDAyREMwQUI2MDAyQ0M4ODg3MjA2RDgwMDg2MDA5RAorOjEwRDkyMDAwMjFDMDBCNzAwMkRDODRBRjgwQTVDMDBCRDAwMjI4MDBBMAorOjEwRDkzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDc4MDNEQTBBNQorOjEwRDk0MDAwMUM3ODEzRDYwMkQ3ODAzREVDMDg3RTIzRkUwMENFODBFMworOjEwRDk1MDAwMzk2MDBGNzgwM0RGMDBGNjgwNzVFMDBGNzgwMzJBMDI0NAorOjEwRDk2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAwRkIxMDNFODAzRAorOjEwRDk3MDAwMUZBMDIxQ0MwMEZBMDAzRUMwMEVCMDAzRTgwMkZBMDA1RQorOjEwRDk4MDAwM0U0MDBGQjAxM0VDMDBFQTAxM0FDMDBGOTAwM0MyMDYwQworOjEwRDk5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQzAwRkY4MDNGNjAwOAorOjEwRDlBMDAwMDg5OTA3N0UwMEREODAzRkUyMENGODAzRjYwMkRGODA3NQorOjEwRDlCMDAwQjNFMDBDRjgwMzNFNDFDQzgwMzNFNDBGRjgwM0MwMDAyMQorOjEwRDlDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjcwMDJEQzBBRQorOjEwRDlEMDAwMEQ1QTIyREM4MDc1MDAyREMwMDg3MTAyRjAyMDg3MDBFRQorOjEwRDlFMDAwMjFDMDBBNzAwMjFDMDBENDI4MjFDMDBCNzIwMkVBMDQ3NAorOjEwRDlGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzQwQjcwMDJEMDAwNworOjEwREEwMDAwMDg3MjIyRjQwMDg3MDAyREMyMDg3MDAyRDQwMDg3ODBCQgorOjEwREExMDAwMjU0MDA5MzAwMjVDMDFBRDAwMjlEMDRCNzAwMkMwMDBFNgorOjEwREEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQkJDODJDQTA4NworOjEwREEzMDAwMDkyMDAyQ0UwMEEzMDAyQ0UwQTgzRDQyQzIwMDhCODA0QQorOjEwREE0MDAwMjQ0MDBCMzAwQTZDMDhBMzQwQThFMDBCMzQwMkM4MDQ0MQorOjEwREE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwRkY0ODNDMjg4MQorOjEwREE2MDAwMENBOTIzNkM4MDhCMDAzRkMwMENGQzAzRUMwMEQ4ODAxOQorOjEwREE3MDAwMzQ0MDBEMzAwMzdDMDJBMzQwMzg2ODBGMjQwM0VBMDRDRAorOjEwREE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRDg4RkIwMDNFNTBCOAorOjEwREE5MDAwMEZBMTAzRUMwNDNBQzAzRUMwMEZCMDgzRTgwMkY4MTBCNworOjEwREFBMDAwM0E0MTBFOTAwM0FDMDA5QjA4QjY0MDBGODEwM0UwMDBBMgorOjEwREFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMEIzMjA1NworOjEwREFDMDAwMEM1MDEzMUMwOUNEODMzM0MwODM3MDAwM0MwMERDMTA2NAorOjEwREFEMDAwMzI2MDBFRjE0MzJDMDBDRTA0M0I3MDBDRjA4MzAwNDQwNgorOjEwREFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzgwQkIwMTYyMjE1QgorOjEwREFGMDAwOEE4OTIwMkMwMDgwRTAyMkMwMEJCMDAzRDgxMDhDMDQ0RgorOjEwREIwMDAwMjI0MDA1OTAwMkFDMDBEODgwMzY0MDBBOTAwMjIwNDBBNgorOjEwREIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQkIwMDIyMDY2NworOjEwREIyMDAwMDg4MDAyMkUwMDg4MjAyMkMwMDlCMDAyQTQwMDk5MDBCQgorOjEwREIzMDAwNjJDNDA4QjAwNjJDMDA4ODgwMjI0MTA4QTAwMjIwMDBBMAorOjEwREI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwMDIwNDA2QQorOjEwREI1MDAwMEEwMDgyMEMwMDgwMDAyMEMwMEIzMDIyQTAwMDgxMDA0RgorOjEwREI2MDAwQTBDMDA5MzAwMjhDMDA5MDAwMjQ0MDBBMjgwMjAyMDE2MworOjEwREI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRkIwMjIwMDAxQgorOjEwREI4MDAwMkM5MjAzMkMwMjg4MDAzMUMwMEJCNTAyQTQwMEQxMDRGMgorOjEwREI5MDAwMzI0MDBFOTAwMzJDNDBDOTAwM0E0MDhDQTAwMzAwMDM5MQorOjEwREJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDJGMDA0NgorOjEwREJCMDAwMEZDMDAzREMwMEZDMDAzRkMxMEZGMDQzRjAwMEZEMDA4QworOjEwREJDMDAwM0Y0MDRGRDAwM0ZDMDBGNTAwM0Y0MDBGRTAwM0U4MDY2NAorOjEwREJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVEODgwQ0MwMEI3MDQzMQorOjEwREJFMDAwNEVFMTAzM0MyMERGMTAzMTgwMDZGMDAzN0YwMEZGQzBEMAorOjEwREJGMDAwM0JDMDBFRjIwMzVFMDBFRjEwMzNEMDJDRjIwMzMwMDA3NgorOjEwREMwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBFOTAwODhDNjIwNUMyMQorOjEwREMxMDAwMDhBNDU3NjUwMDhGNTIyQUYwMDlGQzAyMDQwMEJCMDBEQgorOjEwREMyMDAwMkREOTA5NzQ4MzY0Mjg4MzQ0MjI4NDg4MDY4MjMwMDRCMQorOjEwREMzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDOTAwODAxMDIwMDg2NgorOjEwREM0MDAwMDgzMTEyMDRCMkEzMDAyMDg0MUIzNDAyMEM4MEIzMjBEQworOjEwREM1MDAwMkNDNzA5MzYwMjhDODA5MzQwQUNDODA4MzEyODMyMDFBOQorOjEwREM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBOTAwODgwMEEyNTA0QworOjEwREM3MDAwMDgzNTAyMjQwMDhCMDQyRUMxMDlCMDAyMjQ5NEJCMDA5NQorOjEwREM4MDAwMkVDMDBCQjAwMkNDNjA4QjAwMkU4MDA4ODAwMDMwMDRDOAorOjEwREM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNzAyQ0IxOEIyODAxMQorOjEwRENBMDAwMkNBQzBBMkUwOEVCMDAzMjEyNEVCMDAzMkI4MEZCMDA4NgorOjEwRENCMDAwM0FDMDBBQjAwM0FCMDhFQjA0MkU0ODBDQjg4MzAwMDQ0QQorOjEwRENDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkY4MDM5Q0E0QgorOjEwRENEMDAwMERFODAzRDY0MEU3MDQzQjY2NEU3MDAzQjgwMEZGMDEzMQorOjEwRENFMDAwM0ZDMDZDRjAwMzcwMDZFNzAwMzEwNDBGQzE0M0Y4MDAzOQorOjEwRENGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4NTAwQ0I0MDMyOTAyMgorOjEwREQwMDAwMkZCMDBCNjQ4MEZCMDhCQTEwMERCMEE3MkQwMEZCMDRFOAorOjEwREQxMDAwM0VDMDhFQjAwMzZEMDBEQjAxMzI0MDhDMzMwMzkwMDRCMworOjEwREQyMDAwMjAwMDAwMDAwMDAwMDAwMEMwMDUyNDAwODNFMEEyRDAxNQorOjEwREQzMDAwNDBCMDAyMjUwNEJGODBBMDUwMDhGODAyMjAwMDhCMDJFQQorOjEwREQ0MDAwMkZEMDA4RjAwMjI0MDA4RjgwMzYwMTA4ODQ0MjM2MDA2QworOjEwREQ1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0NDAwODM0ODIwQzRBMworOjEwREQ2MDAwMDkwMDAyNDYwMEIzMDFBODkwMTkzMDEyOEMwMEEzMDRFOAorOjEwREQ3MDAwMkVFMjBBQjAwMjBDMDA4MzQ5MjhDMDA5M0MwMjM4MDA5OAorOjEwREQ4MDAwNTAwMDAwMDAwMDAwMDAwMEYwMDEzNjA0ODM4MDIxRTExMworOjEwREQ5MDAwMDgzODEyMUUyOEIzOTgyMUEwMTkzODgyOTYwMDg3ODM2QworOjEwRERBMDAwMkRFMjA4NzgyMjM2OEM4NzgwMkRFMDA5NzkwMjNFMDAyQQorOjEwRERCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwQzMzMDMwQzhFNAorOjEwRERDMDAwNEQwMDBCNEM4MEYzMTIzOEMwMEQzQTAyOEM4MEYzMDBFQQorOjEwREREMDAwM0NDMDBFMzAwQjBFMDBDMzBDM0FDMDBEMzAwMzEyMDJEMworOjEwRERFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDA2RkYxMDNGQzAwRQorOjEwRERGMDAwMEZCMDEzQkMwMEZGMTA3RkMwMEVGMUEzN0MwMEZGMTIxOAorOjEwREUwMDAwM0ZDMjBGRjUyM0JDNDFFRjE4Mzc4MEFFQzAwMzUwMDY2OAorOjEwREUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwREIwMDNFREExRQorOjEwREUyMDAwMEM4MDAzNjYxMDhCMDAzMjgwOENCNjAzNEEwMDRCODA1NgorOjEwREUzMDAwMzJDODBDQjQwMzBBMTBEQjAwM0VDMTBDQjA0MzJBMDAwOAorOjEwREU0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTFCNDAwODcwNDJDQzA1RQorOjEwREU1MDAwMEQ3MDAzMUMwODg3NDgyMDgxMEQ3MjgyNUMwMEQ3MDA3QQorOjEwREU2MDAwMjFDQzI4RjAwMjFDMTA4NzIwMkMwMDA4NDAwQTMyMDQyNAorOjEwREU3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5NjAwQjc4MTJERTBFNworOjEwREU4MDAwMDg0ODAyMEUwNDg3ODAyMUUwMDg3ODAyM0UwMTg3ODA1RQorOjEwREU5MDAwMjFFMDE4NzkwMjNBMDE5N0EwMkQ2MDA4MzgwMjIwMDA4RAorOjEwREVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDNjAwQTNDNjJDQzBEQgorOjEwREVCMDAwMDkzMDAyMEMwMTgzMDAyMEUwMDkzMDAyNEUwMDkzMDA3QgorOjEwREVDMDAwMjBDMDQ5MzAyMjBGNjQ4MzAyNkNENDI4MzAwMjEyMDQyRgorOjEwREVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTFBQjgwRkFFMDNDODg1MAorOjEwREVFMDAwMENFMDAyMjgwMkNBMDBCM0E5MENBMDAzM0IxMENBMDAzMAorOjEwREVGMDAwQTI4MDBDQTAwQjM4MDBEQTAwM0ZCMDBDRTYwMzNBMDQxNQorOjEwREYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDIwOTgwODNFMDBBQgorOjEwREYxMDAwMEY4MDBCRTEwMEY4MDEzQzEwNEYwMDAzQTA0MEY4MDAxNworOjEwREYyMDAwM0UxMDBFODAwM0UwMDBGODAwM0MwMjJGMDQ5M0QyMDA2NAorOjEwREYzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzFDMTMyNDBDMQorOjEwREY0MDAwMEM5ODAzMjY0MEY5MDAzMjQwMEM5ODAzMjQyNEY5MDA3MQorOjEwREY1MDAwM0M2MDBDMTAwM0E0MDBGOTgyMzI0MDBDOTAwMzAyMDREMAorOjEwREY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNTA5RQorOjEwREY3MDAwMEQ5ODAyMjU4MEI5MDAyMjUyMEQ5QzAyMjQwMEI5MDBBMAorOjEwREY4MDAwMkU2MDA4OTA0MjI0MDBCOTQwMzY0MDA4OTAwQTIwMDBENAorOjEwREY5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOEQwMDIzNDA0MAorOjEwREZBMDAwMDgxMjAyMjQwMEExMTBBMjYwMDg5MjhBMjQwMEI5MDE3QworOjEwREZCMDAwMkU0NjA4OTAwMkE0MDBCMTUwMjI0MDI4OTA4MjA2MDAwQworOjEwREZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0ODUyMEExRDg1RgorOjEwREZEMDAwMDkxMDAyMDQ4MEIzMjAyMDQwMjkxMjA2MDQwMEIxMDE3OAorOjEwREZFMDAwMkM0ODI4MTIwMjA0MDBCMTIwMjQ0ODA4MTIwMjAyMDEyMQorOjEwREZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyOEEwMEIzMDA3QworOjEwRTAwMDAwMEMwNTAzMjE0MEUwNTBCMjAwMkM4MDAyMjE0MEYwNTA2QQorOjEwRTAxMDAwM0MxNDBDODUxM0ExNTBGODUwMzIxNDBDODUyMzJFMDNBOAorOjEwRTAyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNFNDQyQworOjEwRTAzMDAwMEZENDBCRjQ0NEY5MTAzRjUwNEYxMTAzRjQwMEY5MDBEMgorOjEwRTA0MDAwM0U0NDBGOTE1M0Y0MTRGOTEwM0Y0NDBGRDEwM0U2MDJGQworOjEwRTA1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNkEwREQ4OEIzNjZBRgorOjEwRTA2MDAwMENEQzgzMzY4OEJEQTAzNzZBMENEQTBCMjUwMkM5NDA2OAorOjEwRTA3MDAwM0Y3ODRGOThCM0U1MDRDREEwNzI3ODBDRDg4QjI2MTQ2NgorOjEwRTA4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzAwODg0MjIyMzFEOAorOjEwRTA5MDAwMDgwQTAyMjJBMEI4RjkyMjEwMEQ4NDEyNkE4MDg4ODAzMgorOjEwRTBBMDAwMkUyMDBCMDgwMkUyODBBOEE4QTIzODQ4QTgwMjBFMDA4MQorOjEwRTBCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNEEyODEwMDIwNDg5NAorOjEwRTBDMDAwMDgxMjQyNDUwMEIxMDAyNDQwMDkxNDAyMjQwMDgxMjBCNgorOjEwRTBEMDAwMkM1ODBCMTA4MkM0MDQ5MTQwNjQ2QzA4MzA4MjEyMDVFNQorOjEwRTBFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkwMDIyNDEwMworOjEwRTBGMDAwMDg5MDhBNjQ4MEI5MDAyMjUwMDk5MDA2NjQwODk5MDA0QgorOjEwRTEwMDAwMkU0MDBCOTAwNkM0MDFCOTAyMjY2MTg4OTAwMjA2MDRENQorOjEwRTExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDIyNDBEQgorOjEwRTEyMDAwMkM5NDIzNjQwMEI5MDAzNjQwMDk5MDEzMDUwMEM5MDBGRgorOjEwRTEzMDAwM0U0MDRGOTAxM0U1QzBEOTAwMjY0MDJDOTQwMzI4MDBBMAorOjEwRTE0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDAyRTkwODNDNDBFMworOjEwRTE1MDAwMEY5MDBCQTQwMEYxMDAzRTQxMEY5MDQzQTQ4OEU5MDQwNgorOjEwRTE2MDAwM0U0MDBGOTAwM0U2MDBFMTAwM0E0MDlGOTI2M0RBMDBFMAorOjEwRTE3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MDEwRTAwMTMyMDA2NAorOjEwRTE4MDAwOEY4MDAzMjAwMEQ4MDgzMDAxOEMwMDAzRTEwMkM4MDQwRQorOjEwRTE5MDAwM0UwMDBDODAwQjIxMDBDODAwNzgwMDBGODYwMzBBMDBBNworOjEwRTFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU0MDJCODI3RgorOjEwRTFCMDAwMEJBMDAyM0EwMDhFODAyMzgyMDhFMjAyMjgxMDhBMDAxNworOjEwRTFDMDAwMkY5ODI4QTAxMjI4MDA4RTIwMkU4MDRCRTQwMjBBMDBFRgorOjEwRTFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyQTI0MDIwODAwMgorOjEwRTFFMDAwMEJCMDAyNEU0MDkzQzBBMDIwMDgzNjAyOEMwMDkzMDA3MgorOjEwRTFGMDAwMkNFMjA4MzAwNjRDMTI5MzA4MjhDMDBCQjAwMjBBMDAyQgorOjEwRTIwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzA4ODI0MDI5NDBDRQorOjEwRTIxMDAwMEI3MDAyNUUwODg0MDgyMzQwMDg3MDA2MUM4MDg3MDA4QgorOjEwRTIyMDAwMkQyMDA4NzkxMjVDMDA5NDAwMkRDMDBCMzA0MjI4MDA4QworOjEwRTIzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAwRTQ4MDMxQTE3QQorOjEwRTI0MDAwMEY1ODEzNzYwMEQwODAzMUMwMEMzODAzQkU4MEQ3ODFDMAorOjEwRTI1MDAwM0YyMDhDNzkwMzdGMDFENjgwMzlFODRGNjgwMzJBMDA3QworOjEwRTI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCRTAwRkEwMDNFMDA5MworOjEwRTI3MDAwOEY5NjBCQTQwMEVBMDAzQ0MwMEY5MDAzQUMyMEZCNDAzQgorOjEwRTI4MDAwMkUwMDBGQjIwM0FEQTBFQTAwM0VDMDBGQTAxQkMyMDRENworOjEwRTI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTA4REU4MTMzQTQ5RAorOjEwRTJBMDAwMEVGQzEzM0UwMEZDODAxMzIwMEM2ODAzM0UyMEZGQzhDOAorOjEwRTJCMDAwM0Y2MDFERjgwMzdFMDBDNzgwMzNFMjBDRDgwMzEwMDBENgorOjEwRTJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODY0MTMxQzRDRAorOjEwRTJEMDAwMDg3OTQyOUMwMEJDMTAyMTQwODUzNTAzNUMwMEI3MDBFMgorOjEwRTJFMDAwMkRDMDA4NzIwMjJDMDBBNzAxMzdDMDA4NTE0MjJBMDAzNQorOjEwRTJGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA4QzQwODIwMDI0ODFCQgorOjEwRTMwMDAwMDhEODAyMTQyMEI1MDAyMDQwMDk2MDAyMUM0MEI3MDA2NAorOjEwRTMxMDAwMkM0MDBCMzAyMkRDMDA5NzAwMjFDNDA4NDAwMjQ0MDA0RQorOjEwRTMyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRFQzAwOTIwNjIwOTAyNQorOjEwRTMzMDAwMzgxNTAyODYwMEI4MDA2MDUwMDkzMDAyNEUwMUJCMDA1QgorOjEwRTM0MDAwMkU0MDBCMzAwMkNFMjBCMzAwMjRGMDQ4MDIwQTU4MDRCRAorOjEwRTM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQ0EwMEE2OTQxMAorOjEwRTM2MDAwMkM5MDAzMkUwMEZCMDVCMjg1MEQ5MDAzM0Y5MEZGMDAxQgorOjEwRTM3MDAwN0U4MDFGRjA0M0ZDMjE5QTAwMzNDODNDQjIwMzZBMDQzQworOjEwRTM4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzAyRUE0MDNEODBDOAorOjEwRTM5MDAwMEYxMDkzRUQwMEZCNDAzRTkwOEYzMDAzRUM4MEZCMDBBQworOjEwRTNBMDAwM0U5MTFDQjAwMzJDMTBFODAwM0VDODFGOTAwM0E1MTAzRQorOjEwRTNCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBGQzAyRTQwMDczQTBBOAorOjEwRTNDMDAwMENGQzAzN0MwMkZGMTAxM0M0MUNDMDAzM0MwMEZGMDBDNAorOjEwRTNEMDAwMzdFMDBERjAwM0ZDMDBFRDgwMzFDMDBDMzI2MzIwMDQwNworOjEwRTNFMDAwMzAwMDAwMDAwMDAwMDAwMDg0MDA2QzAwOEFDMDIyQjFGMAorOjEwRTNGMDAwOEFCODQzNEExMERCMjAyMEYwMEE5NDAzNkMwMEJCMDc2NAorOjEwRTQwMDAwMjJCODA4QjAwMkVDMTFFOEMwQjJDMDJBOTIxQTIwMDA2QgorOjEwRTQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyQzAwQUE4MDIyOTg1QgorOjEwRTQyMDAwMDg5MDAyMkYwM0JCMDEyQTgzMDhCMjRFMkMwNEFCMDJEMgorOjEwRTQzMDAwMjJDNDI4QjAyMkVDMDlCMzUwNjJDMDA4QjAwMjIwMDAwOAorOjEwRTQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxODMwMDYwODAxMAorOjEwRTQ1MDAwMDgxMjBBNDQwMDkzMDAyQTgwNEEzMDAyMEMwMEIzMDBEQworOjEwRTQ2MDAwNjBDMDA4MzAwMkNDMDBCMzAyNjBDMDA4MDA0NjAyMDE2MAorOjEwRTQ3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwRTgwMjIyODAxNworOjEwRTQ4MDAwMkNGMjQzMkMwMEZCMDBCQUMwMDhBNTAyM0MwMEVGMDBCMAorOjEwRTQ5MDAwMzZDMDRERjAxM0ZENTFGQjAwMzJDMDBDQjAwMzIwMDExQgorOjEwRTRBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwN0UwNDNGODAyMgorOjEwRTRCMDAwMEYzMTQzRjAwMkZGMDAzN0MwMEZGMDAzRkMwOEZGMDBFQworOjEwRTRDMDAwM0ZDMDBGRjAwM0ZDMDBFRjAwM0JDMDBGQzAwM0U4MTY5NQorOjEwRTREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMjQwRkM4MDNGMjRGNgorOjEwRTRFMDAwMEREODUzRDYwNERGMzIzRkNDNENDMDQzRkMwMERGNjA3NAorOjEwRTRGMDAwMzdDMDBGQzQwMzdDRDBERjIwMzNEODBERjg0M0YwMDBDMQorOjEwRTUwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMThFODgwQjAwMTJFMDhCNAorOjEwRTUxMDAwODg5MDAyRUMyMDhCNzAyRkNDMDhCMzgyRkRFMEJGNDBDNgorOjEwRTUyMDAwMjJEODBCOTMwMkZEQzBBRjEwMjhGMDA4QkMxMkYwMDRGMworOjEwRTUzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwQjAwMDJFMDE3QgorOjEwRTU0MDAwMEExMjgyRUM4MEIzMDAyQ0M4MEEwMDMyOEMwMEEzMzA3RgorOjEwRTU1MDAwMjBEMjA5MDAwMjhDODA4MzAwMjhEODBCMzQxMkYyMDFFQgorOjEwRTU2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQzAxQjgwMjJFMDBFMQorOjEwRTU3MDAwMEE5MDEyRUMxMDhCMDAyRUMwMEFCMDAwRUMwMEIzMDAyMQorOjEwRTU4MDAwMjJDMTBCOTIwMkNDMDFBQjAwMkFDMDAyQjAwMkYwMDRGRgorOjEwRTU5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMDAwRkEwQzNFQzBFMgorOjEwRTVBMDAwMEZBMDEzRUUyMERCMDAzRUMwMkU4ODUzRUMwMEZCMDBEMgorOjEwRTVCMDAwQjJDMDhGQUM4M0FDMDhEQjAwMUFDMDRGQjAwM0MwMDRGQworOjEwRTVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkUwMDNGQzA0NQorOjEwRTVEMDAwMkRFMDAzRkU4MDdGMDAzRkMwMEREMjAzRkMwMEJGMDE5MQorOjEwRTVFMDAwM0VDMDBEQzgwM0ZDMENGRjAwM0ZDMDA5RjAyM0Y4MDAzQgorOjEwRTVGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRkE0MDMyQzE5QQorOjEwRTYwMDAwMEZBMDAzMjkwOERCMDAzRUMwMEU4NTAzRUMyMENCMDBFMQorOjEwRTYxMDAwM0FDMDBFQTQwM0VDMDBGQjAwM0FDMjBFQjAwMzEwMDQ5MworOjEwRTYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkE2MDIwQzBENworOjEwRTYzMDAwMEJBMDAyMDgwMEFGMDAyRkQwMEJCNTAyRkUwMjhGMDAyNgorOjEwRTY0MDAwMkZDMDBEODAwQTNDMDBCNzAwMjNDMjA1RjAyMjM2MDAxRgorOjEwRTY1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQ0MDAwQjE4ODIwMDAxRAorOjEwRTY2MDAwMEIxMDAyMEMwMDgzMDAyRUM4MEIwODA2NEQ0MDgzMDBERgorOjEwRTY3MDAwMjBDMDA4MzAwNjBDMDg5MzIwMEFFMDRBMzAwMjM4MDAxNworOjEwRTY4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMTA1QTAwQjU5MDIxMjAyQQorOjEwRTY5MDAwMEI1ODQyM0UwMEE3ODAyREUwMEI2OTAyREU0MDg3OTJCNgorOjEwRTZBMDAwMkRFMDA5MTgwMjlFMDFCNzgwMjlFMDAzNzAwMjNFMDBBOAorOjEwRTZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDg0NDAwRjEwMTMwMDA2NAorOjEwRTZDMDAwNUYxODAzMEMxMDgzMDAzQ0M0MEUwNDAzRUMwMDgzMDBBRAorOjEwRTZEMDAwMzBDNDBDMzEwMzhDMDBGMzAwMzhDODBFMzEwMzEyMDIzMQorOjEwRTZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTVCQzAwRkQwNEJGMDQ1NQorOjEwRTZGMDAwNEY1ODAzRjgwOEVGMDgzRkMwMEZGMDAxRkMwMEZGNEMzMworOjEwRTcwMDAwM0ZDMTBGRDAwMzNDMDBGNzAwMzdDMjBENzIwM0QwMDZBMworOjEwRTcxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFMjAwREIwMDMyQzBERAorOjEwRTcyMDAwNERBODAzMkMwOEZCMDA3RUM4OEZCMDBCNkY0NUVCQzJEMQorOjEwRTczMDAwMzZDMDA3QTAwM0VGMjBDQjUwQjJDMDBDNzkwMzJBMDBFQgorOjEwRTc0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTk5ODAwOEYwMDIxQzBGMAorOjEwRTc1MDAwMEI2MDAzNUMwMDM3MDAyREQyMEIzMDAyMENBODg3MjQxRAorOjEwRTc2MDAwMjFEMDA5NzAwMkREODg4NzJBMjNFODA4NzAwMjMyMDQ2QworOjEwRTc3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCNjAwOTc4MDIxRTA0QgorOjEwRTc4MDAwMEI2ODAyMUUwMEI3ODAyREU4OEI0ODgyMUU4MEEzODQ5MAorOjEwRTc5MDAwMjVFODBCNjgwMkNFMDI4NzgwMjFFMDA4N0EwMjIwMDA3QgorOjEwRTdBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MDRDQzA4ODM4MjIwRTAwNAorOjEwRTdCMDAwOEIyQTAyNDg0MEIzMDAyQ0MwMEIzMDgyMEMwMDgzMDAyRgorOjEwRTdDMDAwMDBDMTA5MzEwMkNDMDA4MzAwMjBDMDA4MzAwQTEyMDRDNQorOjEwRTdEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVFODAwREFBMDMyQThEMAorOjEwRTdFMDAwOERBODAzM0IwMEZBMDAzRTgwMEZFNDAzNjgwMEVBMDJCNAorOjEwRTdGMDAwMzY4MDBGRTQwM0U4MDBDQTAwMzI4MDJDQTAwMzNBMDRGQworOjEwRTgwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDFBMDEwRjgwMEJFMjBEOQorOjEwRTgxMDAwOEZDMTAzRTAyNEY4MDAzRTEwMEY4NDAzRTAwMEY4MDFFQworOjEwRTgyMDAwM0UwMDBGODAwM0UwMDBGODAxQkUxMDBGODAwM0QyMDAwRAorOjEwRTgzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MDMyNDA0MQorOjEwRTg0MDAwQ0Y5MDAzRTQwMEM5MDAwRTUwMEYxQTAzMjYwMEY5MDAxMAorOjEwRTg1MDAwM0U0MDBGOTA4MUU0MDBGOTgwMzI0MDBDOTAwM0MyMDRFNgorOjEwRTg2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjEwNDIyNDA3NQorOjEwRTg3MDAwMEI5MDAyRTQwMEE5MDAyRTUzMEI5MjBBMjY0OEI5MDQxQgorOjEwRTg4MDAwMkU0MDBCOTAwMkU0MDBCOTgwMDI1MDA4OTAwMkUwMDA5NAorOjEwRTg5MDAwMTAwMDAwMDAwMDAwMDAwMDM4MDUyNDAwQkQwMDIzNDBFNworOjEwRThBMDAwMEJEMDEyQzQwMDg5MDIyRTQwMEI5MDIyMjQwMEI5MDAyNAorOjEwRThCMDAwMkU0MDBCOTAwMkU0MDBCMTIwMjA0MDY4OTAyMkM2MDA1OAorOjEwRThDMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTQxNDAwQkYxMkExNDAwNgorOjEwRThEMDAwMEI1MDAyQzQwMEExMjAyQzQ4MEIxMjAyMDQxMEIxMTFFRAorOjEwRThFMDAwMkM0ODBCMTMyMkM0MDBCMTQwMjA1QTA4MTAwMkMyMDE2OAorOjEwRThGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg0MDMyMTQzNAorOjEwRTkwMDAwMEY0NTAzRTE0MEM4NTAzRTE1OEY4NTAzMjFFOEY4NjhBNAorOjEwRTkxMDAwM0UxNDBGODQwM0UxRTBGMDI4MzJBOENDODAyM0VFMDNGQworOjEwRTkyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTVDNDEwRjkyMDNFNDA3RgorOjEwRTkzMDAwMEY5MDAzRjQwMEY5MTAzRTQ0MEZEMTAzRTQwMEY5MjBENgorOjEwRTk0MDAwM0U0NDBGRDMwM0U0MDBGOTAwQkU0MDBGOTQwM0U2MDZGMworOjEwRTk1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNDAwRkQxMDMzNDBCNgorOjEwRTk2MDAwMENEMDAzMjQwMEQ5MDAzRjQwNENEMDAzRjYwMEZEOTBBQQorOjEwRTk3MDAwM0E0MDBDOTAwM0U2QTBGREE4Mzc2ODBDRDg4MzI2MDAyNworOjEwRTk4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA4QzhBMDIyMDA1RAorOjEwRTk5MDAwMDg4MDAyMjAwMDg4MDAyRTAwMEM4MDEyRTAwMEI4ODA2MQorOjEwRTlBMDAwMjIwMDBEMEEwMkUzODBCMEMwMjAzNDA4ODQwMzRFMDQyNAorOjEwRTlCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDA5QTEwMDIwNDE1MAorOjEwRTlDMDAwMDg5MDAyMjQwMDkxMDAyQzQwMDgxMDAyQzUwMEIxNjA5QworOjEwRTlEMDAwMjA0MDA4MTBBMkM0MjBCMTI4MjQ0QTA4MTAwMjUyMDE4NQorOjEwRTlFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDAxODEwMEEyNDA4MworOjEwRTlGMDAwQTg5MDAwMjU0MDg5MDEyQzQwMDg5NDAyRTQwMEI5MDA0OQorOjEwRUEwMDAwMkE0MDA5OTAwMkU0MDFCOTA0MjI0MTQ4OTAwMjQ2MDREOAorOjEwRUExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTIwRTkwMDMyNDBDMgorOjEwRUEyMDAwNEMxMDBCMjYwMEQ5MDAzRTQwMkM5ODAzRTQwMEY5MDA1RQorOjEwRUEzMDAwQjI0MDBDOTAwM0U0MDBGOTAwMzY0MDJDOTAwMzY4MDRDNworOjEwRUE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MDFBNDAwRTkwMDNFNDAwMgorOjEwRUE1MDAwMEY5MDAzRTYwMEY5MDAzRTQwMEU5QTAzRTQwMEY5MDAyRgorOjEwRUE2MDAwMzY0MDBGOTAwM0U0MDBGOTAwM0M0MDBGOTAwM0RBMDBCOQorOjEwRUE3MDAwNjAwMDAwMDAwMDAwMDAwMDA4MTBBMTAwRjgwMDMyMDA1MworOjEwRUE4MDAwMEY4MDEzQTAwMEM4MDAzMjA0OEM4MDAzQTBDMEY4MDBERgorOjEwRUE5MDAwM0EwMDBGODAwMzIwMDBDMDA5MzIwMDRDODAwMTBBMDRCNAorOjEwRUFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkUwMDIwODA5MworOjEwRUFCMDAwMEJFMDAyODgwMEFBMDAwM0EwMEFFNjAyRkEwMDhBMDAxRQorOjEwRUFDMDAwMzI4MDBCQTAwMjI4MDA4RTgwQTM4MDI4MjAwMjhBMDBCQQorOjEwRUFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjM0ODIwNDAwMgorOjEwRUFFMDAwMEIxMDAyMEMwMDgzMDAyMEMwMDgzNDgyOEUwNDk5MDBCMQorOjEwRUFGMDAwMEFDMDFCMzAwMjBDMDI5MDUwMjA2MDA4MzAwMjBBMDA0RAorOjEwRUIwMDAwNTAwMDAwMDAwMDAwMDAwMDgwMTExQzgwQkQwQTIxNDg1OAorOjEwRUIxMDAwMEI1MjAyOUM0MEEzQTAyMDgwMEE2MDAyQ0UwMDg1MjBGOAorOjEwRUIyMDAwMjFDNDBCN0EwNjFFODA5NTIwMjE5MDA4NzAwMjI4MDBDRgorOjEwRUIzMDAwNDAwMDAwMDAwMDAwMDAwMDg4MDgxRTgwRjc4MEIxNzlDNgorOjEwRUI0MDAwMEZEQjAyM0UyMEM3QTBCMTYwQ0M3ODEzOTYwMEYxRjAzNQorOjEwRUI1MDAwMzlFMjBGN0IxMzBGMDBENEEwMzE2MDJDNzAwMzJBMDIxRQorOjEwRUI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTVBQzAwRjcwMDNFNDA2NworOjEwRUI3MDAwMEY5MDAzRUQ4MEZCMTAzRTQwMEJCMDIzRUMwMEY5MjAxQQorOjEwRUI4MDAwM0FEODBGQjAwQkVEODFFRDEwM0U4MDBGMzAwM0MyMDY3NgorOjEwRUI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDRCRTIwRUU4MDMzNjAzMgorOjEwRUJBMDAwMENEODgzMUUwMDZGODAzM0UwMEZCODExMzIwNEY1ODA1QgorOjEwRUJCMDAwMzNFMDBGRjg4MzJGNDBGRTgwQjNFMDBDRjgwMzEwMDAyMQorOjEwRUJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTg5QzAwQkMwMEExNDREOAorOjEwRUJEMDAwMDgxMDAzNUMwMDhGMDAyMTgwMEJFQTIyMUM4MEI1MDEyNQorOjEwRUJFMDAwMjFDMDBCRjAwMjFFODBCRTAwMjM4MDJBNzAwMjJBMDQ3RQorOjEwRUJGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzIwQTcwMDIzNDBFRgorOjEwRUMwMDAwMEI1MDBBM0MwMEE3MDAyNUMwMEE0MzAyMTAwMEI1MDBDMworOjEwRUMxMDAwMjFDMDBCNzA4MjFDODBCNDAwMjFDMDA4NzAwMjA0MDA2NworOjEwRUMyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDQ4RTA0QjMwMDIyNDBGOQorOjEwRUMzMDAwMDkxNDAyNEMwMDgzMDAyMEMwMEIyNDgyMDQwMEIxMDBBMAorOjEwRUM0MDAwMjBDMDhCM0EwMjJDMDFCMDAwMjA4MDBBMzAwMjFBMDQ0NgorOjEwRUM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU5RTAwRUIwNDMzNDBDNworOjEwRUM2MDAwMkREQzAzMUQ2MEVGMDAzMjAwQ0Y5QTAzMjgwMEZEMDA2OQorOjEwRUM3MDAwMzNDMThCRkMwQjNDMDBGQzAwMzI4MDBDOTAwMzJBMDQ1NworOjEwRUM4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBBQzEwRjgwMDNFNDA3MgorOjEwRUM5MDAwMEU5ODIzQUMwNEZCMDAzQzAwMEY4NDIwRUQwMEY5MDAyQgorOjEwRUNBMDAwM0VDMDRGQjAwM0VDMDBGRDAwM0U4MDBGOTAwM0U0MDAzNworOjEwRUNCMDAwMzAwMDAwMDAwMDAwMDAwMDIxMTBGQzAwQ0Y4MDMzNDAzNQorOjEwRUNDMDAwMENEMDgzRkMwMEVGMDAzRjQwMENGMTQxMzAxMENEMDAzMAorOjEwRUNEMDAwM0ZDMDAwNzAxMzNDMDBFNDAwQjFEMDBDMTAwMzIwMDRDRQorOjEwRUNFMDAwMzAwMDAwMDAwMDAwMDAwMEExMDQyQzAwOEFFNDJBNDA0QgorOjEwRUNGMDAwMjg5MDAyRUMwMDhCMDAzRTAyMEE4MDAyMkM4Mjg5MDREQworOjEwRUQwMDAwMkVDMTBBQjAwQTJDMDA4OTAyMjJGMjJBOTgwMjIwMDBBMQorOjEwRUQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAyODAxNDJBNDAzMgorOjEwRUQyMDAwMDg5MDAyRUMwOEFCMDQyRTg0MDgxMDgyODAxMDg5MDMzRQorOjEwRUQzMDAwMkNDMDRBQjAyMjJDMDBBQTAwMjI4MDA4OTEwMjIwMDA5OAorOjEwRUQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MTQyQzAwODAwMDI4NDA1MworOjEwRUQ1MDAwMDgxMTAyRUMwMDgzMDAyQzgxMEEwMDVBODgwMDAxMDA4RgorOjEwRUQ2MDAwMkNDMDBBMzAwMjBDMDA4MjAwMjA4MDBBMTAwMjAyMDEyRQorOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDNBNDBENworOjEwRUQ4MDAwMENENDAzRkMwMEVCMDAzRTQwMEM5MjAzQTAwMDREMDBBRAorOjEwRUQ5MDAwM0ZDMDBFRjAzMzNDODBFODAwMzJDMDBDOTAwMzIwMDNFQgorOjEwRURBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFGQzAwRkMwMDNENDBFRAorOjEwRURCMDAwMEY1MDAzRkMwMjNGMDQzQjAxNEZDNDEzNzAwMEZEMDBFMQorOjEwRURDMDAwM0ZDMDFGRjAwMUZDNDBGQzAwM0ZDMDBGRDAxM0U4MDYxRAorOjEwRUREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGOEUwRkY4MDNEQzBBQQorOjEwRURFMDAwMERGMzgyRjA4MEZGNDAzMUNCMENGMzAzRkQwNEVGQzE0MworOjEwRURGMDAwMzNFMDBGNzkwM0ZFMDBDRjQyMzNGMDRDRjgwMzMwMDBDQworOjEwRUUwMDAwNzAwMDAwMDAwMDAwMDAwMEUwMTBFOTA4Qjk4MTJGRjA1OAorOjEwRUUxMDAwMDhGNDUyRTkyMEJGNDAyM0YwMEFGMzAyRkQwODhCMDBGQQorOjEwRUUyMDAwMzZFMDBCODAyMkU4ODA4RjQwMjJDMDA4QjA4MjMwMDQ5OAorOjEwRUUzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwQjE4MDJDQzVFNworOjEwRUU0MDAwMDkzMjQyQzhDMEIzMzEyMEMxMDgzMjAyQ0NENEJCMjA0MQorOjEwRUU1MDAwNjhDMDBCMzAwMkNDMjA5MzYwMjA4ODA4MzIwMjMyMDE1NworOjEwRUU2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTVBMDAwQkI4MDJFQzA3NAorOjEwRUU3MDAwMDhCMDAyRUEwMEJCMDA2MkMxMEFCMDAyQ0MwMEFCMDBERAorOjEwRUU4MDAwMkVDMDBCQTAwMEU4MDA4MzAwMjJDMTA4MzAwMjMwMDQyRAorOjEwRUU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFODkwRkI4MDNFQzAwQworOjEwRUVBMDAwMERCMDAzRTIxMEZCMDAzMkMwNENCMDEzRUMwMEU5NTQ4QgorOjEwRUVCMDAwM0FDMDBGQjAwM0U2MDBDQjAwQjI0MDBDQjAwMzA0MDQyQworOjEwRUVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMDNGQzAzQgorOjEwRUVEMDAwOEZGMDAzRjAwMEY3MDJCRkMxMEZGMDIzRkMwMERGMDY0NAorOjEwRUVFMDAwMzdDMDhGQzkwN0ZBOTJGRjA0M0Y1MDJGRjAwM0Y4MDA5NAorOjEwRUVGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwQzkwMDNFQzJERAorOjEwRUYwMDAwMEVCMDIzRTQwMEVCMDAzQUM4MEVCMDAzRUMwMEY5MDBBOQorOjEwRUYxMDAwM0VDMDBGQjQwM0E0MDBGQjAwM0U4MDBGQjA4M0QwMDRCQQorOjEwRUYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAwOEI3NDJEQzBFMAorOjEwRUYzMDAwMDhGMDAyRTQwMDhGMDAyMUYwMDhGMDAyRkMxMEQzMDA3QQorOjEwRUY0MDAwMkVDMDBCOTAxMjJDMDBFRjAwMkVDMDBCQjYwMkY2MDA2NAorOjEwRUY1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0ODAwQTMwMDJDQzRBOQorOjEwRUY2MDAwMEEzMDAyQzAwMEEzMDA2OEYwMEEzMDEyQ0MwNEEyMDBFQworOjEwRUY3MDAwMkNDMDBCMzAwMkVDMDBCMzAxMkVDMDBCMzQwMkY4MDBBMQorOjEwRUY4MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDEwQzAwODc4MDJERTg1OAorOjEwRUY5MDAwMDg3ODQyREEwMDg3ODAyNUUwMDg3OTAyQ0UwMDk2ODA2MgorOjEwRUZBMDAwMkRFMDBCRDkwMkRFMDBBNzgwMkRFMDBCNzgwMkZDMDBEQgorOjEwRUZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRTMxMDNDQzA4NgorOjEwRUZDMDAwMEEzODAzRTgwMEVCMDAzOEMyMEEzMDAzQ0MwMEUzNDAwMworOjEwRUZEMDAwM0NDMDBGMzQwM0NEMDBGMzIwM0M4ODBGMzAwM0QyMDIzNQorOjEwRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDgwRkYwNDNGQzg4NgorOjEwRUZGMDAwMEZGMDgzRjg0MEZGMTgzQkMwMEZGNDgzRkMwMEVFMDJEMworOjEwRjAwMDAwM0ZDMDBGRjAwMzNDMDBFRjA4M0Y4MDBGRjAxM0QwMDYyNQorOjEwRjAxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFODAwQ0IwMDNFRjIyMAorOjEwRjAyMDAwNERCMjEzRTgwNENCMDEzMkY4NERCMjEzNkQyMEY4MDA1NQorOjEwRjAzMDAwM0VDMDBGMzAwMzI0MDBGQjAwM0U0MDhGQjgwMzJBMDA3RgorOjEwRjA0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTE4QzAwODYwMDJDQzA3OQorOjEwRjA1MDAwMDg3MzAyRDgxMjg3MzAyMENCMDhGMjAyMUQwNUI1MDBENAorOjEwRjA2MDAwMkRDMDBCNjAwMzUwMTBCNzA5MkRDMDBCRjAwMjMyMDQwNQorOjEwRjA3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTAwODc4MDJERTRGQQorOjEwRjA4MDAwMDk3QTAyQ0UwMTg3ODAyMUVDMDk3ODAyNUU4MEI3QzA0MAorOjEwRjA5MDAwMkRFMDBCRjgwMjFFMDBCN0EwMkQ2MDBCNzgwMjIwMDBCNworOjEwRjBBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRTAwODI4MDJDQzAwOAorOjEwRjBCMDAwMDgzMDAyRUMwMDgzMDBBMEMwMDgzMDAyMEMwMEIzODBDRQorOjEwRjBDMDAwMkNDMTBCMzAwMjRFMDBCMzAwMkNGMTBCMzAwQTEyMDQ5RAorOjEwRjBEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTgwQzYwMDNFODA0NQorOjEwRjBFMDAwMERBMDAzRjg0MENBMDAzMjgwMERBMDEzNjgwMEZFMDI5NAorOjEwRjBGMDAwN0U4MDBGRUQ4MzM5MTBGQTAwM0Y4QzBGQTAwMzNBMDQ5NQorOjEwRjEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEyRjg5MDNFMDA5RgorOjEwRjExMDAwMEY4MDAzRTAwMEY4MDUzRTAwMEUwMDAzRTAwMEY4ODBEOQorOjEwRjEyMDAwM0UwMDBGODAwM0UwNjBGODAwN0UwMDBGODAwM0QyMDBGNQorOjEwRjEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzk4MDMyNjRDNAorOjEwRjE0MDAwMEY5MDQzRTQwNkMxMDQzQTQwMEY5MDAzRTQwMEU5MDA0NQorOjEwRjE1MDAwMzI0MDBGOTAwMzI0MDBDMTAxMzI0MDBDOTAwM0MyMDRERQorOjEwRjE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODlDMDIyNDBEQworOjEwRjE3MDAwMEI5MDAyMjQwMDg5MDAyMjUwMUI5MDIyMjQwMDgxMDA2MQorOjEwRjE4MDAwMjI0MDBCOTAyMjI0MDhDOTAwMjA0MDA4OTQwMkUwMDA4RAorOjEwRjE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkyMDIyNDAwMworOjEwRjFBMDAwMEIxMDAyQTQwMDg5MDAyQTU4MEI5MDAyODQwMEE5MDBDOQorOjEwRjFCMDAwMjI0MDBCMTAwQTA0MDA5OTAyMjJDMTA4OTA4MkM2MDA2NgorOjEwRjFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwOTEwMkEwQzhGNAorOjEwRjFEMDAwMEIxMjAyMDQ4MDgxMjIyMDQ4OUIxMjAyMDQ5MDg5MDFCNAorOjEwRjFFMDAwMjA0MDBCMTAwMjA0MDI4MTIyMjI0MDA4MTAwMkMyMDFCQQorOjEwRjFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyREEwMTMyMDE5OQorOjEwRjIwMDAwMEY4NTAzQTE0MEMwNTAzQTAxOEI4NTIzQTE0NEU4NTBFQgorOjEwRjIxMDAwQjIwMDBGODUwMzIxNDhEODUxMzIxNDJDODUwM0VFMDMyOAorOjEwRjIyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNTAwRUQwMjNFNDQ3MworOjEwRjIzMDAwMEY5MTAzRjQ0MEY5MTAzRTQ0MEY5MTAzRTQ0MEZEMDBBOAorOjEwRjI0MDAwM0U0MDBGRDAwM0Y0MDBFOTEwQkY0MDBGOTAwMzY2MDY2NAorOjEwRjI1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIxQzUwMDMzNjhCQQorOjEwRjI2MDAwMEY5QTAzNkY4OEM5QzAzMzY4MEM5RTAzMjc4MEQ5NDA2QQorOjEwRjI3MDAwM0U0MDBGOTAwM0M1MTBEOUU4MzY1MDBDRDAwM0U2MDA4RAorOjEwRjI4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4ODgwMDgyMDBEMworOjEwRjI5MDAwMEI4RTgyRUJDODg4RTAyMjAwMjg4ODQyQTI4MDhBODBGOAorOjEwRjJBMDAwMjIwMDBCQUEwMkUyMDA4OEMwMjJBOTA4OEEwMzhFMDQ2OQorOjEwRjJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDAwODEwMDIwRDA5QworOjEwRjJDMDAwMEIxMTMyODQ4NDgxNjA2MDUwMDgxNjA2MDUwMDkxMjA3RAorOjEwRjJEMDAwMjA0MDBCMTA4MkU0MDk5MTIwMjQ0MDA4MTBDMkQyMDE4MgorOjEwRjJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwNDIyNDBFQQorOjEwRjJGMDAwMEI5MDAyQzQwMEE5MDAyMjQxMDA5MDAyQTQwMDgxMDBFQQorOjEwRjMwMDAwMjI0MDBCOTIyMkU1ODA5OTAxMjI2MTA4OTAwMjg2MDQzNgorOjEwRjMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTgyODE5MDMyNDAyRgorOjEwRjMyMDAwMEY5MDEzNjcwMkM5MDAzMjQwMEM5MDIzMjQwNEQ5QzAwNworOjEwRjMzMDAwQjI0MDBGOUMwM0U2MDBEOTAwMzY1MDBDOTAwM0U4MDQ1RAorOjEwRjM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDBBNjgwRjkwMDNFNDA0OAorOjEwRjM1MDAwMEY5MDAzRTcwMEQ5MDBCQzQyMEY5MDUzRTQwNEY5MTA2QQorOjEwRjM2MDAwM0U0MDBGOTgwM0U2MDRFMTAwM0U0MDJGOTAwM0RBMDA5MAorOjEwRjM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MTEwNDgxMDMyMDhEMgorOjEwRjM4MDAwMEM4MDBGMjEwMkM4MDAzQTA0MEY4MDA3NjAwMEY4NDA4QgorOjEwRjM5MDAwQjIwMDBGODQwQjIwMDBEODAwMzYxMDBDODAwM0NBMDQ4MgorOjEwRjNBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQyODA0OEU4MDIzODAzNAorOjEwRjNCMDAwMDhBMDQyMjgwMDhBMDAyM0EwNEJBMDAyRTgwMEJBMDA1RgorOjEwRjNDMDAwNzY4MDBCQTAwMjA4MDA4QTAwMzI4MDA4RTAwM0NBMDBBMQorOjEwRjNEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwODIwMDIwRDAwMgorOjEwRjNFMDAwMDgzMDAyMEMwMDlCMDAyOEMwMUFCMDAyNkMwMEIzMDI2NworOjEwRjNGMDAwMjBDMDBCMzAwMjBDMDBBMzAwMjJDMDI4MzQ4MkNBMDBCNworOjEwRjQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQzAwODcwMDIwRTBFOAorOjEwRjQxMDAwMDg3ODAyMEMwMDk3MjAyNUMwMEI3MTAyREM4MUI3MjAxMAorOjEwRjQyMDAwMjFDMDBCN0E0MjNDODA4NzIwMjFDMDA4NzAwMkU4MDA4RQorOjEwRjQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgwRTgyQzc4MEIxRTBGNAorOjEwRjQ0MDAwMkNGQTA2MUUwOEQzQjEzOTYwNEU3ODEyNUVBMEZGRjA4OAorOjEwRjQ1MDAwMjFFMDBGRjgwMzFGMDhFM0EwMzNFMDBDNjgwM0VBMDI4MQorOjEwRjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRkIwMDNFQzA5MgorOjEwRjQ3MDAwMEZCMjAzRURBOEVCMTAzQTgwMEZCMEMzRUM0MEZCMDBENQorOjEwRjQ4MDAwM0VDMDBGQjA4M0VDODBFQjcwQkVDNDBGQjAwMzgyMDZBOQorOjEwRjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwQ0U4MEIzNjA2OAorOjEwRjRBMDAwMEZGQzgzN0UyMEVGQjAzQkUwMEZCODAzM0UwMENGODExRQorOjEwRjRCMDAwM0ZFMDhGRjg4M0VGNDBGRkMyMzNFMTBDRjgwM0QwMDA0OAorOjEwRjRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzgyODcxODIxODBCNQorOjEwRjREMDAwMEIzMDAyMUM2MEQ3MTAyMUQwMEI3QjAyM0MwMEQ3MDAwMAorOjEwRjRFMDAwMkRDMDBCNzAwMkRFMDBCRjAwQTNDNDA4NzAwM0FBMDQ4NQorOjEwRjRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDBCQzExODcwMDIxQzA3NworOjEwRjUwMDAwMEIzMDAyMUMwMDkzMjA2OUMwMEI3MDAyMUMwMDg3MDBBNgorOjEwRjUxMDAwMkRDMDBCNzEwMkRDMjBCNzEwMjFDMDA4NjAwMjg0MDBFRQorOjEwRjUyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDRDAwODM0MDIwQzBENworOjEwRjUzMDAwNEIzMDAyMEMwMTgzMDAyMEMwMEIzMDAyMEMwMDkzODA4MgorOjEwRjU0MDAwMkNDMDBCMzAwMkNDMDFCMzAwMjBDMDA4MzAyMjk4MDQzQworOjEwRjU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRjIwQ0FDMDMyODBBMworOjEwRjU2MDAwMEZGMDAzM0UwMDlGMDAzQTgwMEZGMDBCM0MwMENGOTg1NQorOjEwRjU3MDAwM0VDMDBGRjYwM0ZGMDBGRjAwMzFFMDJDQjAwM0FFMDRFNQorOjEwRjU4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzgwRkIwMDNFNTBDNgorOjEwRjU5MDAwMEZCMDAzQUMwMkZCMDA3RTUwMEZCMDAzRUMwMEZCMDA4OQorOjEwRjVBMDAwM0VDMDBGQjIwM0VDMjBGMzAwM0VDNjBGOTAwM0EwMDA1NAorOjEwRjVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0Y5ODczQzg2QQorOjEwRjVDMDAwMEY3MDAzM0MwMEZGMDAzMzI4MEZCMDAyMUMwMDRGMDBGNworOjEwRjVEMDAwM0ZDMDBGRjAwM0ZDMDBGRjAxMzNDMDBDRTQwM0U0MDQ2MAorOjEwRjVFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAwODM4MEEyRjg1RQorOjEwRjVGMDAwMEJCMDQyMkMwMEJCMDAzMjEwMEZCMDAzNkMwNEFCMDAwOAorOjEwRjYwMDAwMkVDMDBCQjAxMkVDMDRFQjAwMjJDMDRBOTQ4MkUwMDA0MgorOjEwRjYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2QzAwOEEwMDIyMDAzRAorOjEwRjYyMDAwMEJCMDAyMkMwMEIzMDBBMkMwMEIzMDAyQUMwMEFCMDQ0NAorOjEwRjYzMDAwMkVDMDBCQjA0MkVDMDBCQjAwMjJDMDA4QjAyMkUwMDA5QworOjEwRjY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwOEIwMTIwMDBCQQorOjEwRjY1MDAwMEIzMDA2MEMwMEIzMDAyMEMwMEEzMjBBQ0MwMEEzMDAxNQorOjEwRjY2MDAwMkNDMDBCMzAwMkNDMDBBMzAwMjJDMDRBMDAxMkMyMDEwMQorOjEwRjY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2QzAwOEIwNDIyQzBBNQorOjEwRjY4MDAwMEZGMTAzMUMwMEZGMDQzMkMwMEJGMjAzQkMwMEVGMDBCQgorOjEwRjY5MDAwM0VDMDA3RjAwM0ZDODBGRjAwQjJDMDBDQTAwM0UwMDNGMworOjEwRjZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRjUwMDNGQzA4MQorOjEwRjZCMDAwMEZGMDAzRkMwMUZGMDIzQkMwMEZGMTAzN0MwMEZGMDBEMQorOjEwRjZDMDAwM0ZDMDBGRjAxM0ZDNDBFRjAwM0ZDMDBGQzAwM0U4MDYzRgorOjEwRjZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMjQwQ0M4MDM3MjAxMAorOjEwRjZFMDAwMENEODAzQjA0NEZDMDgzRjBFMEZDMTAzRkMwMENDOTRCRgorOjEwRjZGMDAwM0YwQTJFQzQwMzdEODBDRjEwM0ZDMDBGQzA4MzMwMDA2RgorOjEwRjcwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDhFMDkwODgwMjIyODE2NAorOjEwRjcxMDAwMDg5MjEzQTQ0MDNCNjAyMjE4MEI4MTAyRkNENDgxMDBBNAorOjEwRjcyMDAwM0FCMDBBOTQwMjNENDBBRjYzMkZERjBCOTgwMDIwMDRFQgorOjEwRjczMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFMDAwODgwMDIwNDA0NAorOjEwRjc0MDAwODgzMDgyQzAwMEIwMDgyODgwMEExMDAyQ0MyMDgwMDFENgorOjEwRjc1MDAwMkM0MDFCMDYwMjhDOTA5MzYwNjhDMDRBMDA0MjIyMDEzNAorOjEwRjc2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBMDAyODgwMDIyQzA1OAorOjEwRjc3MDAwMDhCMDAyRTQyMEJCODgyNjk4MEI4MDQyQ0MxODhBMDA4RgorOjEwRjc4MDAwMkVDMjFCOTgwMkFDMDBBQjAwMkVDMDBCOTg4MjMwMDQzNgorOjEwRjc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTFFM0MwQ0IwMjMyMDA1NgorOjEwRjdBMDAwMkM4MDAzQUUwOEI5MDAzRTcwMEZCOTAzRUMwMjQ4NDg0NAorOjEwRjdCMDAwM0NDMDBGOEM5M0VDMDBEQjAwMUFDMDBFQUMwMzEwMDRBRAorOjEwRjdDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCMjAwRkYwMEJCODBGQworOjEwRjdEMDAwMEZDMDQzQjY0MEJEMDAzQjYwMEZFODAzRkMwMEZGOTQ0MAorOjEwRjdFMDAwM0JFNDBFNjAwRjZDMDhFRjAxM0ZDMDBGNjAwM0Y4MDBCMAorOjEwRjdGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBMTAwRkIwMDNFNjAxRgorOjEwRjgwMDAwMEZBMDAzRUQwMEY5NDAzQTAwMEY5MDAzRUMwMkM5MDQ4OQorOjEwRjgxMDAwMzJEMDBGOTAwMzJDMDhEQjAwQjZDMDBEQjQwM0QwMDQyNworOjEwRjgyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMDAwQjM4OTJFRTBBMQorOjEwRjgzMDAwMEJBNDAzQTQwMUI5MDAyRTAxMEI5MDQyRkMxMDg5NTBDNworOjEwRjg0MDAwQTJDMDhEQjQwMjNDNDQ4RjAwMjNDMDA4QjAwMkYyMDA3NQorOjEwRjg1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQwQzAwQjA4MDJFMDAzQQorOjEwRjg2MDAwMEIxMjAyQzgwMEJBMDAyQ0MwMEIyMDAyQ0MwMEEyMDA3MAorOjEwRjg3MDAwMjAwMDJCMkQ5QTJFNDI4MzAwMjhDMDA4MjAwMkY4MDA3OQorOjEwRjg4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDAxRTA0QjQ4MDJEQTBFNQorOjEwRjg5MDAwMEI1ODAyOTIwMEI2ODAyREUwMEI2ODAyREU0MEE2ODA3NQorOjEwRjhBMDAwMjEyNDI5NDgwMjFFODA4NzgwNjlFMDA4NjEwMkM4MDA3RgorOjEwRjhCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MTgwQzAwRjAzMDNDNENGNAorOjEwRjhDMDAwMEYzMjAzQzg4MEIyMDAzODgwMEYxQjAzRUMwMEUwMzAxOQorOjEwRjhEMDAwMzAwNDBGQjEwMzBFODVDQjAwM0FDMDBDMzEwM0QyMDJDNQorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUNCQzAwRkMxMTNGQzRGMAorOjEwRjhGMDAwMEZCODEzQjAwNEZFMDIzRjgwMEZDMDAzRkQwMERGMTJGQgorOjEwRjkwMDAwMUQwNDBGRDA0M0JDMDFFRjEwMzNDNDBFRjMwM0QwMDYyNworOjEwRjkxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFRTAwQ0IwMDNFMDA4MworOjEwRjkyMDAwMEY4MDAzMjgwMEY4MDAzRTQwM0RCMDAzRUYwOEM5MDBGNworOjEwRjkzMDAwM0EwMDBDQTAwM0VDOThGQjIwMzJEMjBDQTgwMzJBMDI1OAorOjEwRjk0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTJEODAxRAorOjEwRjk1MDAwMEI0MDQyMUMwNDM3MDBBMTQwMDg2MDAyQ0M4MDg3MDBBNQorOjEwRjk2MDAwMkQ4MDJFNzAwMkRDQTlCNzI4MjFEMDA4NzAwMjEyMDA2OQorOjEwRjk3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCRTAyODc4MDJENjBCMworOjEwRjk4MDAwNEJFODAyNUEwMUI0ODgyOEUwODg3OEMyREU1Mjg2QzA2QgorOjEwRjk5MDAwMjk2MDA4NjgwMkRFNDBCMzkyRTFFODI4MjgwMjcwMDA3RQorOjEwRjlBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MTRDQzAwOEI4MDJFQzBGNgorOjEwRjlCMDAwMEIyMDAyNEQ4MDlCMjAyMEUwMDgzODAyQ0MwMDgzODA4MQorOjEwRjlDMDAwMkNDMDBBQjAwMkNDMDhCMzAwMjBDMDA4MzEwMjUyMDQ5NworOjEwRjlEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MDVBODAwQ0FFMDNFODBGQQorOjEwRjlFMDAwMUZBNDBCNzkwMEZFMDAzRjgyMURFMDAzRTgwMENFNDAxQgorOjEwRjlGMDAwM0I4ODJDRTQwM0U4MDFGQTAwMzI4MDBDRTgwMzdBMDQyNworOjEwRkEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MTFBMDAwRjgwOTNFMDA1RQorOjEwRkExMDAwOEZDMDgzQTAxOEY4MDAzQzIwMEY4ODAzRTAwMEY4MDg4RQorOjEwRkEyMDAwM0UyMDBFODA4M0UxMDFGMDAwM0MwMDBGODAwQjkyMDAyRAorOjEwRkEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MjMyNDAyRAorOjEwRkE0MDAwNEM5ODAzMDQwMEM5MDAzQTQwMEY5MDIzMjQwMEI5ODE2OAorOjEwRkE1MDAwM0M0MDBDOTIwMzI0MDBGOTA1MzI0MDZDOTBDM0MyMDQ3MAorOjEwRkE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQyNDE0QjkwMEEyNTRGQgorOjEwRkE3MDAwMDg5QjFBMjQwMjg5MDAyMjQwMjg5MDAyQTQwMEI5OTAxMQorOjEwRkE4MDAwMkU0MDI4OUM4MjI1MDRCOTAwMjI0MDA4OTgxMkUwMDBFQworOjEwRkE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQUQwMDIzNDAwNQorOjEwRkFBMDAwMDg1MDAyNjQwMDg5MDAyQTQwMDgxMDAyNjQwMEI5MDA2RQorOjEwRkFCMDAwNkU0MDA4OTAwMjI1MDBBOTAwMjI0MDA4OTEwNkM2MDA2OQorOjEwRkFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwQjUxMEExNDQyQworOjEwRkFEMDAwMjg1MDAyNDQ4MDgxMzAyMDQ4MDgxMjAyODQ0MEIxODBCRQorOjEwRkFFMDAwNkNDODA4MTIwMjA0ODBCMTM0MjA0ODA4MTIwMkMyMDExNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg0MDMyOTBCNgorOjEwRkIwMDAwMENDNTAzNjE0MEMwNDAzQTE0MEY4NTAzMjFCMEY4NTA4MgorOjEwRkIxMDAwM0UwMDBDODUwMzIxNDBGODQwQjAxNDBDODAwM0VFMDEzOAorOjEwRkIyMDAwNTAwMDAwMDAwMDAwMDAwMEI4MURDNDA0RjkyMjBFNDg3NworOjEwRkIzMDAwMEYxMDEzQjQ0MEZEMzAzRjQ0NEZEMTAwRTQ4NEZGMDE2NworOjEwRkI0MDAwM0Q0NDBGRDEwQkU0NDBGOTMwM0U0NDBGRDEwM0U2MDRBRAorOjEwRkI1MDAwNzAwMDAwMDAwMDAwMDAwMDM4MDVFNDAwREQ0MDNGNTA2OAorOjEwRkI2MDAwMENEMDAzMkMwMEM5MDAzNjQwMEY5MDEzMjcwNEY1MDE3OAorOjEwRkI3MDAwMzc0MDBDRjAwM0Y2MjBGOUE4MzI2ODBDRDAwM0M2MDAxOQorOjEwRkI4MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDBFMDAwODhBMDJFMjg4RgorOjEwRkI5MDAwMjg4MDAyMjAwMDg4QTAyMjAwMEI4MDBBNjI4MEI4MDAyMgorOjEwRkJBMDAwMjIwMDA4ODAwMkUxMDBCOEUwMjIzQTA4QTAwMkNFMDQ1OAorOjEwRkJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDAyODEwMDJFNDA1OAorOjEwRkJDMDAwMDgxMDBBNDQwMjgxMDgyNDQwMEExMDAyNDU4MEI5MDA0NgorOjEwRkJEMDAwMjQ0MDI5MTAwMkM0MDBCMTA4MjQ0NDA4MTAwMkMyMDFDNAorOjEwRkJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDA0ODkwMTJFNTBDOQorOjEwRkJGMDAwNDhCMjAyNjQwMDkxMDAyMjQ2MEI5MDAyNjQwMEI5MDFGMQorOjEwRkMwMDAwMjZDMDA5QjAxMkU0MDBCMTAwMjY0MDA4OTAwMkM2MDRFNAorOjEwRkMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDRFNDAwQzkwMDNDNDBCNworOjEwRkMyMDAwMEM5MDAzNjQwMEM5MDIzNjUwMEU5MzAzMjQwMEY5OTAyRgorOjEwRkMzMDAwMzY0ODBEOTQ4M0U0MDhGOTAwQjY0MDBDOTQwM0U4MDRCOAorOjEwRkM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MTBBNDAwRTkwMDNFNDBDMQorOjEwRkM1MDAwMEY5MDEzQTQwMEU5MDIyRTYxMDU5MDAzQTQwMEY5MDA5RgorOjEwRkM2MDAwM0E0MDBFOTA0M0U0MTBGOTAwMzg0MDJGOTAwM0NBMDA0OAorOjEwRkM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTMyMDQzRAorOjEwRkM4MDAwMEY4MDQzQzAwMUM4MDBCMjAxMEM4MDAzMjAwMEM4NDBBRgorOjEwRkM5MDAwMzAwMDhDODQ4M0UwMDBDODAwMzIwMDZDODQwM0NBMDQwNgorOjEwRkNBMDAwMjAwMDAwMDAwMDAwMDAwMDA4MDQyODAwQkEwMDIzODBBMworOjEwRkNCMDAwMEJFQTAyRTgwMEFBMDAyMjgwMDhBMDAyMjgwMDg2MjBBMQorOjEwRkNDMDAwMzdBMDhERTQwMkY4MDBEQTAwMjI4MDA4QTAwMkNBMDAwMgorOjEwRkNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDU2QzAwQjMwMDIwQzBEOAorOjEwRkNFMDAwMEJCODAyNEMwNDgzMDAyMEMwMDhCMDAyMEMwMjgzMDA1MQorOjEwRkNGMDAwMjA0MDI4MzQwMkNFOTA4MzAwQTBDMDA4MzAwMkNBMDAwMQorOjEwRkQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQ0MwQjU4ODIxNDAwOAorOjEwRkQxMDAwMEI3MDAyREM4MEEzMjAyMUUwNDgzMjQyMEU5MDhFMDE1RAorOjEwRkQyMDAwNjU1MDA5NzAwMkRFMjA5MzIxMjFDMDA4NzAwMkU4MDBBRQorOjEwRkQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTgxRTAwRkY4MEIxQTA1NQorOjEwRkQ0MDAwMEY0ODAyN0UwMDg3QTAzM0UwMjg3QTBCMUYwMEM0ODA5MgorOjEwRkQ1MDAwMzE2MDhDNTgwM0ZFMDBDN0M4MzNFODBDNTgwM0VBMDIzMAorOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkYwMDNFMDA4NQorOjEwRkQ3MDAwMEY5MDIzRUNBMEZCNDAzRUMwOEZCNTAzRUQ4MEY4MDA1MAorOjEwRkQ4MDAwM0M0MDBGQjAwM0U4MDBGQjAyM0VEMDBGOTAwM0MyMDZEOAorOjEwRkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDYwMDRCRTAwRkY4MDNGRTA0MworOjEwRkRBMDAwMEZEOTAzRkUyMENGQzgzM0VBOEZGQzAzM0YwMEZEODA0QworOjEwRkRCMDAwM0Y2MDBFRTgwM0YyMDBDRjgwMkZGRTBDNzgwMzAwMDBCNgorOjEwRkRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDA5QzAwQjUwMjJEQzBEQgorOjEwRkREMDAwMEI1ODQyREM4MENGMDAyMUMxMEIzMDEyMUM0MEI0MDIxMgorOjEwRkRFMDAwMkQ0NjA4NzExMkM4MDBFNzAwMkRDNDA4NzAwMzZBMDQ4QworOjEwRkRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMDJEMDIyMQorOjEwRkUwMDAwMEI0NjAyREMwODk3MDAyMUM5MEEzMDIyMUMwMEI0MDAwRQorOjEwRkUxMDAwMkQ0MDBBNTA4MkM0MDBCNzAwMkNDODI4NTAwMjQwMTA2MAorOjEwRkUyMDAwMjAwMDAwMDAwMDAwMDAwMDQwMTQ4QzE4QjMwMDJFMjBCOQorOjEwRkUzMDAwMEIxODAyQ0Y0QTgzQzIyMEMxMEIzNDIyMEMwNEI4NThERAorOjEwRkU0MDAwMkM0MDBCMjgwMkM4MDBBMzAwMkNDMDA4MTQwMjQ4MDQ1MAorOjEwRkU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MDVCQzAwRkIwMDNFODA1MAorOjEwRkU2MDAwMEZBMDAyRkMwMERGQTBCM0MwMEVGMDBCM0MwMEZCQzBGMworOjEwRkU3MDAwM0NBMDBFQkQwM0VDMDBGRjAwM0ZDMDBDMzAwMzZBMDQ0MQorOjEwRkU4MDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBFQzAwRjkwMDNFMDEzRQorOjEwRkU5MDAwOEZCMTQzRUMwMEYzMDAzRUMwNEZCMDEzRUMwMEZCMDAwOQorOjEwRkVBMDAwM0U4MDBDODQwM0UxMDA3MzAwM0VDMTBGQjI0M0UwMDBDQQorOjEwRkVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxNTBGQzEwRkY4MDM3QzAzRgorOjEwRkVDMDAwMENFMDAzRkMyMEZGMDgzM0MwMEZGMDgzQkMwMEZGMDBGMAorOjEwRkVEMDAwMzNDMDJFNDAwMzFDMDFDRjAwMTFDMDRDRDAwMzAwNDQ5RQorOjEwRkVFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzA0QjMwMjIyNzJBNAorOjEwRkVGMDAwMDhBMTE2RUMwMEJCMDQyMkMwMEJCMDQyRUMwMEJBMTlGQQorOjEwRkYwMDAwQjZEMDA4OUM0QTI2ODBEQjAwMjJDMDA4OTAwMzYwNDBERgorOjEwRkYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQjkxMDYyMjBENQorOjEwRkYyMDAwNDhBMDAyRUMwMEJCMDAyMkMwMEJCMDAyRUMxMEJCMDBFQQorOjEwRkYzMDAwNjYwODBBQTgxMjI2MTA5QjAwMkFDMDI4QjAyNjIwMDBCNgorOjEwRkY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwQjkwMDIwMDA4NAorOjEwRkY1MDAwMDgzMjAyQ0MwNEIzMDAyMEMwNEIzMDAyQ0MwMEIzMDAwNgorOjEwRkY2MDAwMjAwMDA4MDAwMjAxMDA5MzAwMjhDMDA4MzAwNjQyMTE1QQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMUM2QzAwRjkwMEIyNDAwRQorOjEwRkY4MDAwMEM4MjAyREMwMUZGMDBCMkMwMEJGMTAzQkMwMEY5MDBERgorOjEwRkY5MDAwMjY0MDJFODAwMzIxMDRDRjAwQkJDMDBDOTAwMzAwMDMzOQorOjEwRkZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkQwMDNGNDBDQworOjEwRkZCMDAwMEY4MTAzRkMwMEZGMDAzRkMwMEZGMDIzRkMwMEZDMDA5QQorOjEwRkZDMDAwMkQ0MDJGQzAwM0YwODhGRjAwMzdDMDhGRDAwM0U4MDIxOAorOjEwRkZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwRkY4MDMzQzIzQQorOjEwRkZFMDAwMENGODAzN0NBMEZGOTAzRkM0MkNCNDAzQkM4MENGNDAyRQorOjEwRkZGMDAwMzdFMDBGRjE5MzZFNDRCRjMwM0YyMDJDRjg2M0YwMDREQworOjEwODAxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzAwRUIyMDIzRjA1NgorOjEwODAyMDAwMDhCODUyM0QwMEIzMDAyRURDMDhGNDQyMUM0MjhCNDBERAorOjEwODAzMDAwMjJDODBCRjYwMzZDODhCQjMwMkUwMDA4QjIwMkUwMDRBNQorOjEwODA0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAwQkIwODIwQzAwNAorOjEwODA1MDAwMDgzMDAyNENBMEIzMjAyNjgwODgzNjAyQ0NBMDkzNjA2MgorOjEwODA2MDAwQTRDMjBBMzI0MjRDOTBCMzIwMkMwQjg4MzA4MkUyMDEyOQorOjEwODA3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4QkIyMkEyQzBDOAorOjEwODA4MDAwMDhCMDAyMkMwMEJCMDAyRTkwMDhCMDAyRUMwMDlCMDA1MAorOjEwODA5MDAwMjJDMDBCQjAwMjZDMDBCQjAyMkUyMDA4QjAwMkYwMDAyMAorOjEwODBBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQjE4MzMyQzAwOQorOjEwODBCMDAwMEMxQTAzNkMxMEZCMDAzNEMwMENCMDAzRUMwOERBMDA5RgorOjEwODBDMDAwMzZDMDBFQjAwQjZDMDBGQjAwM0UyODBDQjAwMkQwMDA5NgorOjEwODBEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUQ4MDNGQzAyNworOjEwODBFMDAwMEZENDAzRUMwMEZGMDAzRkM4MEZCMDAzM0MwMEVFNDA4QworOjEwODBGMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwM0Y4MDBGRjAwM0Y4MDA0QgorOjEwODEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIyMEIwQzA4OAorOjEwODExMDAwMEZCNDAzQUMwMkNCMDAzMjkwMEVCMDAzNkMwMEVCMDA0NgorOjEwODEyMDAwM0FDMDBDQjAwMkVDMDBGQjAwM0U5MTBGQjAwMzkwMDA4RgorOjEwODEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkI4MDIzRDdGMQorOjEwODE0MDAwMEI5MDAyM0MxNDhCMDA2QTA4MjhGMDAwQkMwMDgzMDBFRQorOjEwODE1MDAwQkVDMDg4RjAxMzJDMDBFRjAwMkU4MDBCQjAwN0IyMDBEOQorOjEwODE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjM0MDIwRDBCQgorOjEwODE3MDAwMEIyODAyOEMwMDgzMDEyMEMwMUFCODAwNkMxMEExMDBFQgorOjEwODE4MDAwNjhDMDJBMzAwMjhDMDBCMzAyMkUwMDRCMzAwMkY4MDQ4MworOjEwODE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjdBMDIxRTBGOAorOjEwODFBMDAwMEJFQ0MyMUUwNDg3ODAyOUU0MDg3OTgyOUU0MEFGOTBDMAorOjEwODFCMDAwMjlFMDBBMzgwMDFFMDBBNzkwMkQyNDBCNzgwMjg4MDBDMQorOjEwODFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzUwRkIwOTMwQzBDRgorOjEwODFEMDAwMEYyMDAyOEM0MEMzMDAyMEMwMEEzODAzNEM0NEUxMDA0OQorOjEwODFFMDAwQUFDMDBFMzE0MzhFMDBGMzAwM0MwMDBGMzAwM0QyMDJEMAorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNERCQzAwRkYyMDNGRDAwOAorOjEwODIwMDAwNEY3MDAzRkMwMEZGMDAzREMwMEZGMzQzRkM0MEQ3MDA1QworOjEwODIxMDAwQkZDMDBERjRDM0ZDNDBGRjAwM0Y0MDBGRjAwM0QwMDY4OQorOjEwODIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDMyRDA1OAorOjEwODIzMDAwMEQ5MDAxRURDMEZCMDAzRUMwMUZCQTAzQUNDMEM4MDBFQQorOjEwODI0MDAwMzJFMDhEQjQ0M0VDMDBGQjAwMzZBMDBDQjAwMzZBMDBCMgorOjEwODI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMDIxQzgxOQorOjEwODI2MDAwMDg2MDAyREMyMEI3MDAyREMwMEY3NEEyMUMyOEQ2MDBDNQorOjEwODI3MDAwMzVDMDA4NzIwMjVDMDhCNzQ0QTE4MDQ4NzAwMjEyMDA0MQorOjEwODI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDIwRTRGNQorOjEwODI5MDAwMDk3ODI2REUwMEI3ODAyREUyMEE3MDEyOEM4ODgxODA3MgorOjEwODJBMDAwMjFFMDA5NzgwMkRFMDBCM0EwMjVBMDI4NzgwMjcwMDQzRQorOjEwODJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxQkI4MDIwQzA1QQorOjEwODJDMDAwMDgzMDQyRUMwMEIzMDAyQ0MwMEEzMDIyMEMwMDkzMDBBRQorOjEwODJEMDAwMjRDMTA4MzAwMkNDMDBCMzAwMjBFMDA4QjAwMjEyMDQzMAorOjEwODJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwOEIyODA4NQorOjEwODJGMDAwMERFMjAzRTgwMEZBMDAzRjgwMEFBMDAzQTgwMENFNTA3OAorOjEwODMwMDAwMzI4MDA1QTAwM0U4MDBGQTAwMzdBODBDQTAwMzdBMDQyNQorOjEwODMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDA2MDA4RjgwMDNDMDAxOQorOjEwODMyMDAwMEY4ODAxRTAwMEY4MDQzQzAwNEYwMDEzQzAwMEY4MDA4MworOjEwODMzMDAwM0UwMDBGODAwMzYwMDBGODAyM0UwMTBGODAwM0QyMDA3MAorOjEwODM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjk5MDEyNDAyNgorOjEwODM1MDAwMEM5MDAzQTQwMEM5MDAzRTcwMEU5NDMzMjQwOEM5MDA5OQorOjEwODM2MDAwMkE0MDBCOTAwM0U0MDBGOTAwM0E0MDBGOTAwMzAyMDQwNgorOjEwODM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MjIyNjA2OAorOjEwODM4MDAwMDgxMDAyMjQwMDg5MDMyRTQwMDg5MDAyQTQwMTgxMDRGMQorOjEwODM5MDAwM0U0MDBCOTAwMkU0MDBCOTAyMjI0MDBFOTAwMjIwMDAwMQorOjEwODNBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjk0MDJBNEEwRgorOjEwODNCMDAwMDg5MTAyQTQwMDg5MDAyRTQwMUE5MDBBMjQwNDg5MDAyMgorOjEwODNDMDAwMkE0MDBCOTAwMkU0MDBCMTAwMkE0MDBCOTAwMjA2MDAwNAorOjEwODNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwMUE4NDhBQgorOjEwODNFMDAwODg5MDAyMDQ4MDgxNDAyQzUwMTgxNDBBODQxMDg5NDAxRgorOjEwODNGMDAwMkM0MDBCMTAwMkM0MDAzMTIwMjA0MDBBMTAwQTAyMDE1OAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjA1MDNBMDA4QworOjEwODQxMDAwMkNBMDAyQTE0MkM4MDAzRTAwREUwMDIzMjE0Mjg4MDBCOQorOjEwODQyMDAwMzgxNDBGODUwM0UxNDBGODUwMzgxNDBGMDUwMzJFMDE2RQorOjEwODQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDA4RkQwMDM2NDRENAorOjEwODQ0MDAwMEZEMDAzNjQ0MEY5MDAzRDUwMEY5NDAzRTUwMDdENDBEOAorOjEwODQ1MDAwM0U0MDBGOTQwM0U0MDBGOTEwM0Y0MDBFOTAwM0U2MDQwMQorOjEwODQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRkQ0MDMzNjhDMworOjEwODQ3MDAwMENEMDAzRTc4MUY5MDAzMzc4MEREODEzMjZBMENEQTBFNgorOjEwODQ4MDAwMzI0MDBEOUIwMzI0MDBGOUEwM0M0NDJDOTAwNzg2MDA0OQorOjEwODQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjhBMEEyMTAzQQorOjEwODRBMDAwMTg4MDAzODI4NEI4ODAzNjJDMkUwRjAyQTNBMEQ4RTA1NworOjEwODRCMDAwMzYyMjhCMDgwMzQyQTBGOEUwMkUyODA4ODgwMkNFMDQ1QQorOjEwODRDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMEEwNTAwQQorOjEwODREMDAwMjgzMDAyQzU4MEIxMDgyMDQwMDkxMEEyNDQwODgxNDgxNAorOjEwODRFMDAwMjA0MDBCMTQwMjA0ODBCMTM4MkM0ODA4MTI4MjgyMDEwQgorOjEwODRGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjEwMDIyNDAyQworOjEwODUwMDAwMDg5MjAyRTQwMEI5MDIyNjU4NEE5MDAyRTQwODk5NDAxMQorOjEwODUxMDAwMjY0MDBCOTAwMjY0MDhCOTAxMkM0ODA4OTAxMkM2MDQ0QQorOjEwODUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk4MDMyNDA2NworOjEwODUzMDAwMDg5ODgzRTQwNEI5MDEzMDQwMEQ5MDBCNjQwMkM5MDAyRgorOjEwODU0MDAwMzI0MDBGOTAwMzI0MDBGOTAwMUU1ODBDOTAwM0E4MDQzOQorOjEwODU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkyMDNDNDA0OQorOjEwODU2MDAwMEY5ODAzQTQwMEI5MDAzRTQyOEUxMDRCODQwNEY5MDAxQQorOjEwODU3MDAwM0U0MDhGOTAwM0U0MDBFOTAwM0U0MDBGOTAwM0NBMDBBNAorOjEwODU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMDMyMDhBMQorOjEwODU5MDAwMEY4NDgzQTAwNEM4MDQzRTAwODM4MDAxMjAwMEMwMDAzMworOjEwODVBMDAwMzIwMDBGMDAwM0EwMDBDODAwMzIxMDRFODAxM0NBMDQyRQorOjEwODVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU5MEEzODAwNQorOjEwODVDMDAwMEJFNDAyMjgwMENBMDAyRjgwNEFBMDEzQTgwMEFBMDBDQQorOjEwODVEMDAwMzY4MTBCQTAwMjI4MDA4QTAwMjI4MDA4QTAwMzhBMDBBRQorOjEwODVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTNDMDIwRDA4RgorOjEwODVGMDAwMEIzNDAyOEMwMDhCMDAyQ0YwOEIxODAyNEMwMDgzMDA5MworOjEwODYwMDAwNjBDMDBCMzAwMjhDMDI4MzAwMjhDMTBBMzAwMkNBMDAwRAorOjEwODYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwQjQwQjY5QzA2MworOjEwODYyMDAwMDk1ODA2MUU4MDk3MTAyRkMyNDg3MDgyOUM4MEE3MDhBOAorOjEwODYzMDAwMjVDQzBCNzAwMjFFODE4N0EyQUJDNDA4NzMwMkU4MDAzMAorOjEwODY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTEwREM4NDIxRTA4QgorOjEwODY1MDAwMEY3ODQyOUYwMkM3ODgzREUwMkY3MTAzNEUwMENGODAwNAorOjEwODY2MDAwMjFFMjBGNzg4MzlFNDlDRkQwMzlFODBFNzgwM0VBMDJFMQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4NERBQzQwQ0EwMDM2MDBCOQorOjEwODY4MDAwOEYzMDIzRUNBOEVCNDAzQ0MwMEY5NjQzRUQ4MEZCMDBGRAorOjEwODY5MDAwM0VEODhGQjE0M0VEODBGQjIwMzZDQTBGQjBBMzgyMDZDRgorOjEwODZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTgwRkM4MDMxRTA1QQorOjEwODZCMDAwMDVBQTEwRkU0NEZGOTAzRkUxQ0ZGOTE3M0YyMEQ3ODA3NQorOjEwODZDMDAwOEJFNDBGRjgwMzNFMzBGRjgwMzdFMDBGRjgwMDQwMDBFNgorOjEwODZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkQxMDIxQzAyNworOjEwODZFMDAwMDg0QTAyRENDMEI3MDAyREMyMENEMzAyMUM4MDg3MDBGMAorOjEwODZGMDAwMjlDMDRCNzIwMjFDMDBCNzAxMjFDMDBCRjAxMjJBMDRFMgorOjEwODcwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzkwMzQwMDIxODAwOAorOjEwODcxMDAwMDk3MDAwNUMwQ0I3MDAyREM0MDg1MDFBMEMwMDk3MDBCQgorOjEwODcyMDAwMjFDMDRCMzAwMjFDMDBCNzAwMjVDMDBCNzAwMjQwMDA3NgorOjEwODczMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjAwMDYwMDAwOQorOjEwODc0MDAwMDgzRTAyQ0MwMEIzMDIwQ0UwMkJCMDAyMEMwMDkzMDBGOAorOjEwODc1MDAwMjhDMDBCQjAwMjJDMTBCMzAwMjBENjAzMzAwMjA4MDQ0RQorOjEwODc2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkIwMEIyMDBCMworOjEwODc3MDAwMDVCRTAzN0MwMEZGMDAzRTIwMENCMDAzM0MwMEQ5ODAwNgorOjEwODc4MDAwMzNDMDhCRjAwMzNDMDBGRjAwMzdFMDBGRjAwMzZBMDRCNgorOjEwODc5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFMDBEMAorOjEwODdBMDAwMEZBNDIzQ0MwMEZCMDAzRTgxMDg5MDAzRUMwMEU5MTRFOQorOjEwODdCMDAwM0VDMDBGQjAwM0VDMTBGQjAwM0VDMDBGQjAwM0UwMDA2MgorOjEwODdDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDM3ODBCNgorOjEwODdEMDAwMEZGQTAzRkMwMENGMDAzRjkwMDZEQzIzM0MwMEZEMTBBNQorOjEwODdFMDAwMzNDMDBGRjAwQjNDMDA0MzAwMzNDMDBGRjAwM0MwNDQxNAorOjEwODdGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2QzA5QkIxOTIyMzIyQgorOjEwODgwMDAwMEJCRTAzNkMwMDhCMDAyQzkwMERCODAyQUMwMEIxMDBDNQorOjEwODgxMDAwRjJDMDBCQjAxMkFDMDA4QjAwMjJDMDBCQjAwM0EwNDAyMgorOjEwODgyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzEwQjMwMDI2MjA3RQorOjEwODgzMDAwMEI5MDEyRUMwMThCMDAyQUMyMEE5MDAyMkMwMEJCMDBBNAorOjEwODg0MDAwQTJDMDBCQjAwMjJDMDBBQjAwMkFDMDBCQjAwMkUwMDBBQgorOjEwODg1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxQjMwMDIwMDBFQworOjEwODg2MDAwMEIwMDAyOEMwMDgzMDAyRUMwMEIzNDAyOEMwMEJCMDA3NgorOjEwODg3MDAwMjBDMDBCMzAwMjBEMDBBMzAwQTBDMDBCMzAwMjgyMDEwQgorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQkIwNDM2ODBGQQorOjEwODg5MDAwMEZCMjAyRkMwMkNGMDIzOEMwMEVGMDAzM0MwMEZCMDAxNgorOjEwODhBMDAwMjNDMDBGRjAwMzNEMDJFRjAwMzNDMDBGRjA0M0MwMDNCRAorOjEwODhCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGMDA3MQorOjEwODhDMDAwMEZGNDIzN0MwMEZGMDAzRkMwMEREMDAzRkMwMEZGMDAyRAorOjEwODhEMDAwM0JDMDBGRjAwM0ZDODhERjAwM0ZDMDBGRjAwM0E4MDY4OQorOjEwODhFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDUwQ0UxMjMzRDAzMAorOjEwODhGMDAwNEM4NjgzMzA4MDVGNjgzM0M0MEZGMzgzM0NDMENDMzgzMAorOjEwODkwMDAwQjMwODBDQzYwM0YxQTBGRjAwMzMyNDBDQzIwM0YwMDAyRgorOjEwODkxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzgwRDIyMDIzRDhGRQorOjEwODkyMDAwMEQ5NjAyODg2MEFGNDAyM0RDMEJGNjAyM0NDMjg4NjBFMworOjEwODkzMDAwMjI1MjA4OTEyMkUxMDBCNzI0QTI0ODhBODQ4MjYwMDQ2RQorOjEwODk0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwODEwMEUwQzQ4MQorOjEwODk1MDAwMEEwMDAyMDQ4MEEzMjBBOEMwMUIzMDBBMEMwMEEwMDA1QgorOjEwODk2MDAwMjgwQzA5MDIwMkM0ODBCMzFDMjIwODE5MDMwMkUyMTE3OAorOjEwODk3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNDAwOTk4MDYyQzBEMworOjEwODk4MDAwMEJBMDMyQTQ1MUFCMDAyQUMwOEJCMDAwMEMwMEE5QzBEMAorOjEwODk5MDAwMkEyMTA4QjgyMkUyMDBCQjAwMjI4NDFCQTg0MjcwMDRFRQorOjEwODlBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMjAwQ0JDOTMyQzBBQQorOjEwODlCMDAwMEU4QjEzMjIxMERCMDEzMkMwMEZCMDBCMkMwMDY4ODEyQworOjEwODlDMDAwM0EyMjJDODgyM0UzMDBGQjAwMzAzMDhEOUM4M0QwMDRCNgorOjEwODlEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQTQwRjcwNDNFQzI1MQorOjEwODlFMDAwMEREODIzRDgwMDdCMDAzN0MwMEY3MDMzRkMxMEQyMDBBNQorOjEwODlGMDAwMzVDMDhGQzAwM0Y0MDBGNzAyM0ZFMDBFODAwM0Y4MDA5QgorOjEwOEEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4MTIwQzgwODMwQzA1NQorOjEwOEExMDAwMEMwMDgzMjQ0MEMzODkzQUMwMEVCMDBCMkMwOEM5NDgwRgorOjEwOEEyMDAwNzI1NDBGOTEwM0VEMDJFQjhBM0E2MjhDODAwQjEwMDRCMgorOjEwOEEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQjA0ODg0MEEzQzJFRAorOjEwOEE0MDAwMDJBRTEyMjc0MjhGNDQyM0MyMEJGNDAyM0QwMDBBNDBCQgorOjEwOEE1MDAwMjJFMDBCQjUwMkVDMjA4RjQ0QTI0MDhEQkQyMzMyMDBGMgorOjEwOEE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTQwODM4MTI0QzE2RgorOjEwOEE3MDAwMDgyODAyMDEwMDkzMDBBMEU4MEEzMDgyOEY2MEIzOTBCQQorOjEwOEE4MDAwNjBCODBCMjgxMjRBMDA5MzAwMjA5MDA5MjAwMjc4MDA1OQorOjEwOEE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAyODdBODI1RTAxMQorOjEwOEFBMDAwMEE3QjAyMUEwNDg3ODAyMUU0MEI3ODgyOEUwMjk2OTE1OQorOjEwOEFCMDAwMjEyMTBCNjk0MERCNDA5NzkyMjNBMDg5NTg4MjA4MDA0RQorOjEwOEFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyNTgyQzMwMDM0QzBCOAorOjEwOEFEMDAwMEM5QjQzMDhEMEQzMjAzOEMwMEVCMDAzOEMwMEIzMDBFOQorOjEwOEFFMDAwMjA4MDA3MTAwM0UwMDBEMzEwMzgxODBEMzAwMzUyMDIyNQorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDAwN0YyMDFCRDBEQgorOjEwOEIwMDAwMEZGMTAzRjg0MEVGMDAzRkMwMEZCNDAzN0MyMENGMDQwNworOjEwOEIxMDAwQkY0MDBGRjAwM0U0MTBFRjE4M0RDMDBGRTAwM0QwMDY5NAorOjEwOEIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTMwMEIyQzRGNworOjEwOEIzMDAwMENBMDAzMjQwMERCNjgzMkM4MENCNDAzRUM4MEM4ODBBRQorOjEwOEI0MDAwQjZFMDBDQTAwMzJFMDBDQkUwQjI2MDBDQjgwQjJBMDBGQworOjEwOEI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcwMEExQzhCRQorOjEwOEI2MDAwMDg3MDAyMUMwODk3MDIyMUQ0MDg3NDAyRENDMDA3MDBCOAorOjEwOEI3MDAwMjFDMDg4NzAwMjE4MDA4MzA4MjFDMDA4NTAwMjEyMDQyNgorOjEwOEI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTIwQUQ4MDI5RTBEMQorOjEwOEI5MDAwMDg1ODAyMUUwMDk3QjAyMUU4MDg3ODAyREUxMDE1ODAwMAorOjEwOEJBMDAwMjFBMTA4NDgwMjVFMDA4N0E0NjVBMDA4NzgwMjMwMDA3MQorOjEwOEJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRjEwODE3MEE4QzAwMQorOjEwOEJDMDAwMzgzMDBBMEQwMDkzMDBBMEMxMjgzMDAyQ0MwMjgzODhGRgorOjEwOEJEMDAwMjBFMDM4MzQwQTRENzI4MzAwMjRFODI4MzQ4MjEyMDRERAorOjEwOEJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTQwRUVDMEJBODA3NgorOjEwOEJGMDAwMENFMDAzMzkxMERBMDAzMjgwMENBMDAzRTgwMERFQzg3NAorOjEwOEMwMDAwMzNBMDBDRTAwMzdCMDBDQTAwMzdCMTBDRTQyMzNBMDQyNAorOjEwOEMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMTAwRjgwMDM2MDBCRAorOjEwOEMyMDAwMEY4MDAzQzAyMDM4MDAzRTAwMEYwMDAzRTAwMEY4MDI3MAorOjEwOEMzMDAwM0EyNDBGODA4M0EwMDFGODA0M0EwNDBEODAxM0QyMDA3NworOjEwOEM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQ0QzEwMDMyNDA4MQorOjEwOEM1MDAwMEM5MDMyMjQwQ0MxMDYzODQwMEQ5MDA5MDQwMEQ5MDA1NAorOjEwOEM2MDAwM0U0MDBGMTgwMzI0MDBGOTAxM0U0MDBGOTAwM0MyMDQ1OAorOjEwOEM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA2ODkwMDJBNTBEMworOjEwOEM4MDAwMDg5NDBBMjQwMDg5NDIyMjUwMEE5MDEyMjUwMDg5MDA4MworOjEwOEM5MDAwMkU1MDBCOUMwQTI1MTBCOTAwMkU1MDBCOTAwMkUwMDBCQworOjEwOENBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDIwODkwMDIwNDI2OAorOjEwOENCMDAwMDgxMEMyQUMxMDg5MDgyQTQyMDk5MDAyMjQyMDk5MDBBOQorOjEwOENDMDAwMkU0MjBBQjE4MjJDMjBCOTAwNkU0MjBCOTAwMkM2MDBERgorOjEwOENEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDI4NDg1MQorOjEwOENFMDAwMDgxMjYyOEM4MDgxMDAyMDQwMDIxMDAyODQ4MDgxMjA2MgorOjEwOENGMDAwMkM0OTBCMTIwNjA0ODRCMzAyNkM0MDBCMTIwMkMyMDExMQorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwQzg3ODMwMTRGOQorOjEwOEQxMDAwNEMwNTEzQTE0MkMwNzgzODFFMEQ4NzgzMDE0MEQwNTAwNgorOjEwOEQyMDAwM0MxNDBFMDUwMzAxNDBGODc4M0MxNDBGMDUwM0VFMDNENAorOjEwOEQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzAwRkYwMDBFNDRFMQorOjEwOEQ0MDAwMkZGMTAzNzQ0MEY5MDAzRTQwMEQ5MDAzNjQ0MEZEMTA4NAorOjEwOEQ1MDAwM0Y0NDBGRDEwMUY0NDBGOTAxM0ZDMDBGRDEwM0U2MDZCMworOjEwOEQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIyRTk4OEIyNDAwQgorOjEwOEQ3MDAwMEY5MDAzMjQxNkM5OEMzNjdCOEY5QzgzQTc5MEM5MDA2MworOjEwOEQ4MDAwM0U1MDA0OTQxMzI0NTBDOUUwM0U1MDBGOTAwMzA2MDA1NworOjEwOEQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjgwODhBMDIyMjg0NworOjEwOERBMDAwMEI4QTAyMkE4MDg4QTQyMjMwMDg4RTBBMjIwMjg4QTAxOAorOjEwOERCMDAwMkUyODg4QUExMjIyOTA4OEY0MkUyMDBCQzgwMjBFMDRCNgorOjEwOERDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVENDIwQTUwODIxNDI2MgorOjEwOEREMDAwMEI1MDgyMTQzMTg1MDgyNTQwMEE1MDIyOTQ0MDg1MDhBMgorOjEwOERFMDAwNkQ0MDA4NTAwMjU0MDI5NTAwMkQ0ODBCNTA4MjQyMDFGQworOjEwOERGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTU4NDAwOEQxMDIzNDA1MgorOjEwOEUwMDAwMEJEMDAwMzQwMThEMDAyMzQxNThEMDAyMzQwMDhEMDg2RQorOjEwOEUxMDAwMkY1MDA4RDIwMjc0ODA5RDAwMkY0ODBCREMwMjQ2MDRCQworOjEwOEUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzQwRTlDMDMyNDBFQgorOjEwOEUzMDAwMEY5MDA5MjYwMEM5MDQzNjQwMUY5MDIzQTQwOEM5NDA5QQorOjEwOEU0MDAwM0U0MDBDOTQwQjY0MjBEOTAyM0U0MTBGOTQwMzY4MDQwOQorOjEwOEU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDBERQorOjEwOEU2MDAwMEYxNDAzQzUwOEY5MDAzRTQwMUY5MDIzRTQwMEY5MDBFOQorOjEwOEU3MDAwM0M0MEFGOTgwMzg2MDBFOTAwM0U0MDBGMTAwQjhBMDA4QgorOjEwOEU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBCMDAwREM0MEIzMDBDQgorOjEwOEU5MDAwMEZDMDAzMzEwMkM0MDRCMTAwM0M0MDAzMTAwMEZDNDA4OQorOjEwOEVBMDAwMzMwMDBDQzQwM0IxMDBDQzAwQjMwMDBDQzQwM0NBMDRFQgorOjEwOEVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDIyQTA3MQorOjEwOEVDMDAwMEJBMDAyMkEwMDhBODQyMkExMDhBMDAyMjgwOEJBMDE2NQorOjEwOEVEMDAwMjI4MDA4QTAyQjI4MDA4QTgwMkE4MDA4RTAwMkNBMDA4RAorOjEwOEVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyOUI4MTIwRTBBQgorOjEwOEVGMDAwOEIzODA2Q0UwMDkzODAyMEMwMDgzODAyMEMwMEIzODA2NworOjEwOEYwMDAwNkNFMDBBQjAwMjRDMDA5MzAwMjBFMDA4MzAwMkNBMDA3NgorOjEwOEYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExMDA0ODAwODIxMDJBMQorOjEwOEYyMDAwNEI0NDA2RDAyMDkwMDgyMTAyODA0NDAyMTAwMEI0QzBCNworOjEwOEYzMDAwMkQxMDQ4NDAwMjAwMDA5NDg5MjkzMDA4NDAwMkU4MDBDMgorOjEwOEY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzMjAwRDY4MDMxQTBEOAorOjEwOEY1MDAwMEZFODBCQ0EwMEQ2ODAyM0EwMDRGODBCMUEwMEZGODA4QworOjEwOEY2MDAwQkZBMDJFQzgxM0RBMDI1RTgwNzNBMDJDNzgwM0VBMDIzOQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFNDBBOQorOjEwOEY4MDAwMEY5MDAzMjQwMEU5MDAzRTQwMEU4MDAzRTQwMEY4MDA0NworOjEwOEY5MDAwMzI0MDBGQjAwM0U0MDFFOTA0MzY0MDBGODAwM0MyMDZGQgorOjEwOEZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0Q4MDMzNjA3RQorOjEwOEZCMDAwMENEODQzMzYwMENEODAzMzYwMENEOTIzQkUwMDREODBFMQorOjEwOEZDMDAwMzM2MDA4RjgwQjNFMDBGRDg0M0Y2MDBGRjkwM0MwMDBEQQorOjEwOEZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDA0REUwMDIzODA1MworOjEwOEZFMDAwMDg2MDAyQjgyMDhFMDQyMzgwMDg2ODAyMTAwMDhFMjBEQQorOjEwOEZGMDAwMjM4MjA4NDAwMjEyMDBGNjAwMkQ4MDBCNDFBMEVBMDRGMworOjEwOTAwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwODQwMDIxMDBDQgorOjEwOTAxMDAwMDg0MTAyNTA0MDk0MDAyMTAwMEE1MjAyRDgwMDg1MDIwMworOjEwOTAyMDAwMjUwNDA4NDAyMjE4MDhCNDAwMkQxMDBCNzg0MEMwMDAxOQorOjEwOTAzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFRTIyOTMwMDIwQzA1OQorOjEwOTA0MDAwMDgzODAyRUMwMDkzMDAyMEMxMkEyMDAyNjQwMjgyMTAzQQorOjEwOTA1MDAwMjRGMDBBM0M0MjI0MjhCMzAwMkNFMDBCODg4MkM4MDQ4OAorOjEwOTA2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwQ0IwMEIyQzAyOQorOjEwOTA3MDAwQUNCRTAzNkUwMkRCMDBCMkMwMUVBMDAzRTQwMENBMTE0NgorOjEwOTA4MDAwQjZEMEFDQkMwMzI0MDBGQjAwM0VDMENGODQwM0VBMDQ4RQorOjEwOTA5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDQwRjgwMDNDMDA5QworOjEwOTBBMDAwMkY4MjAzQTAwMEU4MDAzRTAwMUQ5MDEzQTgwMEY5MDBFNQorOjEwOTBCMDAwM0EwMDgxODM0M0U4MDBFODAzM0UwNDBGQjAwM0UwMDA3OAorOjEwOTBDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFMDAwRDYwMDM3ODBGMgorOjEwOTBEMDAwMENBMDAzRjgwMENFMDAzMzgwMERBMDEzMjAwOENFMDBCMgorOjEwOTBFMDAwMzM4MjBDNDA3MzMwMThDRTAwMUY4MDRGQzE0MzAwNDRDMAorOjEwOTBGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ3QzAwOEQwMDIzNDA0RgorOjEwOTEwMDAwMEFEMDAyRjQwMDhEMDAyMzQwMDhENDgwM0U0MjhENDBGNgorOjEwOTExMDAwMjM0MDA4RjAwMjNFNDA4RDAwMEY0MDBCRjQwMjIwNDAzNworOjEwOTEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOTkwMEE2NDBGRgorOjEwOTEzMDAwMDg5MDA2RTQwMDkxMDAyMDQwODgwMDAyMjQwODgwNDA0NgorOjEwOTE0MDAwMjA0MDBBQjAwMjI0MDA4OTAwMEU0MDBCODQwMjIwMDA1NworOjEwOTE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODIwMDIwODBBMQorOjEwOTE2MDAwMEEyMTA2QzgwMTgyMDAyMDgwMDgzMjgyMDgwODgzMDA5NAorOjEwOTE3MDAwNjA4MDBBMDAxMjA4ODA4MjAwMkM4MDBCMzAwQTAyMDFGNQorOjEwOTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRDgwMDM2MDA2NAorOjEwOTE5MDAwMEM4NDIzRTAwMEM4MDAzMjAwMEQ4MjBCMjAwMkM4MDBCRQorOjEwOTFBMDAwMzIwMDBFMDAwMzIwMDJDODAwM0UwMDBGODAwMzAwMDNCRgorOjEwOTFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwQkYwMDNGQzBFOAorOjEwOTFDMDAwMEZGMDAzRkMwMEZGMDBCRkMwOEZCMDAzRkMwOEZGMDJEQworOjEwOTFEMDAwM0ZDMDBERjAwM0VEMDBGRjAyM0ZDMDBGRjAwM0U4MDZCMworOjEwOTFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFGMDhDRkYwMDNENjAzNgorOjEwOTFGMDAwMkNCMjgzN0M5MERGMzgzMUUwMEZGODAzM0MwMEZGMjA3NQorOjEwOTIwMDAwM0ZDNDBFRjQwMzdDMDBGNDgwMzMwMDBERjgwM0YwMDAzQgorOjEwOTIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTIwQkI2MjJFNDJDMAorOjEwOTIyMDAwMjhGNDQyM0U0MDhGNDQyMkUwMEJCMDgzN0Y0NEJGQzEwQworOjEwOTIzMDAwMkREQzJBRjYwMjNGNDVCODgwMjI2MTg4QjgwMkUwMDQ5RQorOjEwOTI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTgwQjIxODJFQzg1QworOjEwOTI1MDAwMjkzMDMyMEMwOEIzMjAyMEMwNEI5MjAyMEMwMEIzNDBERQorOjEwOTI2MDAwMkNDMDg5MzQxMjRDMDBCMDAwMjRDMTQ5MzAwMkUyMDEwNAorOjEwOTI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBNDAwQkEwQzJFRTAzNQorOjEwOTI4MDAwQTlCMDA2MkMwMDhCMDBBMkMwMEI5MDAwNkMwMEJCMDBBNAorOjEwOTI5MDAwMkVDMDBCMzAwMjZDMDBCQTgwMjZGMDA4QjAwMkYwMDQzOQorOjEwOTJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFRTAwRkJDNDNFNzhBQQorOjEwOTJCMDAwMkRCMDAzNkMwOEZCMDAzMkMwOEIyNDgzMkMwMEZCMDAxNAorOjEwOTJDMDAwM0VDMDhGQjAwQjZDMDhCMkUwMTY2MDhEQjAyM0QwMDRBNgorOjEwOTJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCRTk4RkY0MDNGQzBBOQorOjEwOTJFMDAwMEU3MDAzREMwMEZGMDAzRkMwMEZFMDAzRkMwMEZGMDAzNgorOjEwOTJGMDAwM0ZDMDBFRjAwM0FDMDBGRTAwQjlDMDBGRjAwM0Y4MDA1MQorOjEwOTMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBRDAwRkE0MDNFRDBCOAorOjEwOTMxMDAwMEVCMjAzRUMwMEMzMDAzRUMwMENBMDAzMkMwMUZCMDAwNgorOjEwOTMyMDAwM0NDMDBFQjgwM0VDMDBEQTAwM0FEMDRGQjAyM0QwMDRCMgorOjEwOTMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkEwMDJDQzA2RQorOjEwOTM0MDAwMDhGNDA3QkMxNERGMDAzRUMwMUFBMDUyQkMwMEJGMDRFMgorOjEwOTM1MDAwM0ZDMDhBRjAwM0JDMDBGQTAwMjJDODBGQjAwM0YyMDAzRAorOjEwOTM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0ODAxQjEwMDZDQzJCMAorOjEwOTM3MDAwMEEzMDQyQ0MwMDgzMDUyQ0MwMDgzMDAyOEMwMUIzMDRCMworOjEwOTM4MDAwMkNDMDBBMzAyMjhDMDA4MDgwMjhDMDBCMzAyMkY4MDBDQworOjEwOTM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc4MDZGRTBCMAorOjEwOTNBMDAwMTg3ODAyOEU0MEI3ODAyREUwMEE3ODAyOUUwMEI3ODBDMAorOjEwOTNCMDAwMjlFMTBBNzgwMjlFMDFCQzgwMjlFNDBCNzgwMkM4MDBFQQorOjEwOTNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwOTQwRjEyMDNDQzRCMworOjEwOTNEMDAwMEUzOTAyQ0MwMEMzMDAyQ0M0MDg5MjAzOEM4OEIzMTA1MQorOjEwOTNFMDAwMkNDNDBFQjAwNzhDMDBDMjA4MzhDMDBGMzA0M0QyMDIyNAorOjEwOTNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzEwRkMwMDdGQzAwOQorOjEwOTQwMDAwMEZGMDgzRkMyMURGMDgzQkMwOEY5MDAxRkMyMUZGMEM5MworOjEwOTQxMDAwM0ZDMjBGRjEwM0VDMDBFRjAwNzdDMDFFRjAwMzkwMDY4RgorOjEwOTQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAxRjkwMDMyQzA1QgorOjEwOTQzMDAwMEZCMjAzRUU5MERCRTEzQUMwNEQzODEzMkQzMEZCMDA0NAorOjEwOTQ0MDAwM0VFMDRGQkE0MzJDNDBGQTAwM0ZDMDhDQjAwM0VBMDAyNAorOjEwOTQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjEwMDIxQzAxNQorOjEwOTQ2MDAwMEI3MTAyQ0MyMEE3MjgyMUMwMEI3MDEzNUMwOEI3MTAyOQorOjEwOTQ3MDAwMkRDNDRCMzQ4MzFDQzFCNzAyMkRDMDFBNzAwMkQyMDQxNAorOjEwOTQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTIwQjRDNDI1QTJDMworOjEwOTQ5MDAwMEI3ODA2REUwMDgzODAyOUUwMUJGODAyNUU4MEE3QTAxRgorOjEwOTRBMDAwMkRDODBBNzIwMjFFMDBBNjgwMjhFMDA4NzgwMkYwMDA4QgorOjEwOTRCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDAwQjM0MDI0QzM2OQorOjEwOTRDMDAwMEIzMDQyQ0MwMEEzMDAyMEMwMUIzNDAyNEMwMEIzMDA4MAorOjEwOTREMDAwMkNDMDRCMzAwMjBDMDBCMzg4MkNENDBBMzAwMkQyMDRDQQorOjEwOTRFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwRkU0MEI3QTAwMgorOjEwOTRGMDAwMEZBMDAzRTgwMERBMDAzQTgwMEZFMjAzNjgwMEZBMDBFOAorOjEwOTUwMDAwM0U4MDBGQTAwQjI4MDBFRUUwM0ZCMDA0QTAwM0ZBMDQ1OQorOjEwOTUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjAwODNBMTA3RAorOjEwOTUyMDAwMEY4NDAzRTAxMEY4MDAzRTAwNEY4MDgzRTAwMEY4MDA1NQorOjEwOTUzMDAwM0MwMDBGODAwMzgwMDBGODQwM0UwOTBGODAwM0QyMDBGQQorOjEwOTU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwRTkwMDMyNDQ3MAorOjEwOTU1MDAwMEM5MDAzMjQwMEY5MDAzRTQwMEY5MDEzRTQwMEI5MDA4MgorOjEwOTU2MDAwMUU0MDBDMTAwMzI0MDBDOUEwM0M2NDBDOTAwMzgyMDQyQworOjEwOTU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNjhDMAorOjEwOTU4MDAwMDgxMzAyMjQwOEY5MDAyRTQ4MUI5MDAyRTQwMEI5MDBEOQorOjEwOTU5MDAwM0U0MDBDOTAwMjI0MDhGOTQwMkU2MDBBOTAwNkUwMDAzQworOjEwOTVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQTkwMDIwNDA2NQorOjEwOTVCMDAwMDg5MDAyMjQwMEI5MDEyRTQwMEI5MDAyRTQwMEI5MDA4QgorOjEwOTVDMDAwMkU0MDA4OTIyMjI0MDA4OTAwMkU0MDA4OTAwMkM2MDBGNgorOjEwOTVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODEyMUUwNTBFOQorOjEwOTVFMDAwMjgxNjBBMDQ4MEExNDAyQzQwNEIxNDIyQzQwMEIxMDA2QworOjEwOTVGMDAwMkM1MDA5MTQwMjA0MDRCMTAwMkM0MDBBMTAwMkMyMDFDQworOjEwOTYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg1MDMyMDA4QQorOjEwOTYxMDAwOEM4MDAyMjAwMEI4MDAzRTAwMEI4MDMzRTAxMEY4MDA4MAorOjEwOTYyMDAwM0UwMDBDODAwMzIwMDhDQTAwM0UwMDBDODAwM0FFMDNGRAorOjEwOTYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzQwRkQxMDJGNDE2QworOjEwOTY0MDAwNEY5MTAzRTQ0MEY5NDAzRTQwNEZEMDYzRTUwMEY5NDBCQworOjEwOTY1MDAwM0E1MDJFOTQwMzY1MDBFRDAwM0Y1MDBGOTAwM0U2MDY0QworOjEwOTY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNjAwRjlFMDMzNTAxQgorOjEwOTY3MDAwMENEQTAzQTYwMEQ5ODAzRjQwMEY5MTAzQTYwMEY5ODhCOQorOjEwOTY4MDAwM0U2ODBDREUwMzY2MDBFRDAwM0I2OTBDOTAwM0M2MDBFQgorOjEwOTY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4QjhFMDIwMjA1MQorOjEwOTZBMDAwMTg4RTI2RTEwMDgwQTAyRTAwNEI4ODQyRTE1MEI4NDA4MQorOjEwOTZCMDAwMkUyQTBEMEEwMjIwMDhCODAwMkUxNDBEODAwMkNFMDRCNgorOjEwOTZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjE2MDIwNDAyNworOjEwOTZEMDAwMDgzMUEyQzUwMDkxNDgyQzQwMUIxMjAyODQwMEIxMDA0MQorOjEwOTZFMDAwMkM1MDA5MTYwMjA1MDBBMzA0Mjg0MDA4MTAwMkMyMDFFQworOjEwOTZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwQjkwODIwNzBFOAorOjEwOTcwMDAwMjg5MDAyRTQwMDg5MDAyRTQwMEI5MDAyRTQwOEI5MDM3RgorOjEwOTcxMDAwMkM0MDI5OTAwMjY0MDBCOTAwMkU2MjA5OTAwMkM2MDQxMAorOjEwOTcyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNTAwRjlEMEIyNzA2NAorOjEwOTczMDAwMDg5MDAzRTQwMEQ5MDQzRTQwMEY5MDAzQTQxMEY5MDJGRQorOjEwOTc0MDAwM0U0MDBEOTAyQjY0MDBFOThEM0E2MDBDOTAwM0U4MDRENAorOjEwOTc1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDJEMworOjEwOTc2MDAwMEY5MDAzRTQwMEY5MDAzRTQwMEY5QTAzRTQwMEY5MDA3MworOjEwOTc3MDAwM0U0MDJGMTAwM0E0MDBGOTIyM0M0MDRGOTAwM0NBMDA0MgorOjEwOTc4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjA0MDMyMDA0RgorOjEwOTc5MDAwMEM4MDAzQzAwMEY4MDAzMjIwMUY4MDAzRTAwMEM4MDBFNgorOjEwOTdBMDAwMzIwMDBDODAwMjIwMDBDOEMwM0UwMDBDODAwM0NBMDRCNgorOjEwOTdCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MTUyODEwQkEwMDIzQTA5NworOjEwOTdDMDAwMEFFNDAyRTgwMEJBMDAyQkExMEJBMDAyRTgwMEFBMDBGQworOjEwOTdEMDAwMkE4MTBBQTAwM0U4MDhERTAwMkU4MDBBQTAwMkNBMDAzRgorOjEwOTdFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwNEEwQjFCOAorOjEwOTdGMDAwMDgzNjIyQ0MwMEIzMDAyMEU0MEIzMDAyQ0MwMDgzMDBGQQorOjEwOTgwMDAwMjBDMDA4MTgwMjBDMDA5MTAxMkNDMDA4MzAwNkNBMDBDNAorOjEwOTgxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0M4QjMyMTIxQzJCQworOjEwOTgyMDAwMkE3MDAyREMwMEI3QTAyOUMwMEI3MjAyQ0UwMEE3ODEwQgorOjEwOTgzMDAwMjlDMDRBNzQwMkZFMDA5NzAxMkNDMDBBNzAxMkU4MDA4OQorOjEwOTg0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTgwRjdDMDMxRTBDMgorOjEwOTg1MDAwMEM0ODAzREUxMUY3ODAyMUUwMEI3QTAzREUwMEMzODBBMQorOjEwOTg2MDAwMzNEODZDNzgwMzNFMDBENjgwM0RFMDBDNzgwM0VBMDJFMgorOjEwOTg3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzA4RkI4MDNFQzBBNgorOjEwOTg4MDAwMEZEMDAzRUMwNEZCM0MzRUMwMEZCNjA3NkMwMUZCMDA5RAorOjEwOTg5MDAwM0VEMDBGOTQwN0VDMDFFQTAwM0VDMDBGQjAwM0MyMDZCMQorOjEwOThBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDFGRTAwQ0ZBNDNCNjA0QgorOjEwOThCMDAwMDhEOTAzN0UwMENGODAzRjI1NEZGQzg3QkUwMENGODBCNAorOjEwOThDMDAwN0ZGQzBDRkMwMzdDMDBGNjkwMzNFMDBGRjgwM0MwMDAzMworOjEwOThEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzA4OEYyODIxNDBBMworOjEwOThFMDAwMDhEMDAyMUM0MEE3MjAzMTA0MUI3ODAyREM4MEQ3MDA3RQorOjEwOThGMDAwMkZDNDFBRDAwMjFFNDhCNjAwNjFDMDBCNzAwNkVBMDRERAorOjEwOTkwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwODczMDY5NDQwNworOjEwOTkxMDAwMDg1MDIyMEMwMDg3MDEyRDQ0OEI3MDA2OEMxMDg3MDBBNAorOjEwOTkyMDAwMjlDOTA4NTAwMjFDNDRBNjAwNjFDMDBCNzAwMkMwMDA4NworOjEwOTkzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDRDAwODM4ODYwNDA1QgorOjEwOTk0MDAwMDAxMDAyNEMwMDJCMDAyQzQxMUIzMDAyQ0MwMDkzMDA3NQorOjEwOTk1MDAwMkNDMDBBMzA0MjBDMDBCMjQwMjBGMTBCMzAwMkM4MDQ4NworOjEwOTk2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRDQxQ0ZDMEJBRjBEMworOjEwOTk3MDAwMjg5MDFCNkMwOENGMDAyQ0MwMEZGMDAzQUMwMDhCMDBBQworOjEwOTk4MDAwM0ZDMDZDQjA0QjJDMDFGQjQwMjJDODBGQjAwM0VBMDQ2RgorOjEwOTk5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RkIwNDNGRDRFNQorOjEwOTlBMDAwMEYxMDAzQUMwMEZCMDAzMkMwNUZCMDAzRUMwMEZCMDRGRgorOjEwOTlCMDAwM0VDMDRGMTAxM0VDMDBGQjg4M0VDMDRGQjAwM0UwMDBFOAorOjEwOTlDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzNjIxRQorOjEwOTlEMDAwMENDMDBCM0MwMEVGMDAzM0UwMUNGMDEzM0MwOEY3MDAxOAorOjEwOTlFMDAwMzFDMDBFRDgwM0JDMDBGRTAwM0RDNjBDRjAwM0MwNDRERAorOjEwOTlGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQ0IwMzIyNDcwRgorOjEwOUEwMDAwMDg5ODQyMkMwMDlCMDAyQUMwMEFCMDAyMkMwMEJCMDQxQworOjEwOUExMDAwMkFDMDBBQjAwMkFDMDhGQTAwMkU2MDA4QjAwMkUwNDA4QQorOjEwOUEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOUIwMDIwNDA3QQorOjEwOUEzMDAwMDg5ODAyMkMwMEJCMDAyMjg4MDgzMDAyMkMwMEJCMDBEMgorOjEwOUE0MDAwMjJDMDhBOTIwMkFDMDBBQTgwMkVDMDA4QjAwNkUwMDBCNAorOjEwOUE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMEEwNDA0QgorOjEwOUE2MDAwMDgxMDAyMEMwMEIzMDAyODgwMEEzMjEyMEMwMEIzMDQ2NAorOjEwOUE3MDAwMjhDMDBBMzAyMjhDMjBCMjAwMkNDMDA4MzAwMkMyMDE1QgorOjEwOUE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAyQ0IwMDMwNDAyMAorOjEwOUE5MDAwMUM5NDAzMkMwMEVGMDAzMkMwODhGMDhCMkMwMEZCMDBEQworOjEwOUFBMDAwMzNDMEFFRjAwM0FDODBFQTAxM0VDMDJDQjAwM0MwMDM2QgorOjEwOUFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDJGNDAyRgorOjEwOUFDMDAwMDdEMjgzRkMwMERGMDQzRkMwMEZCMDAzRkMwMEZGMDA5RgorOjEwOUFEMDAwM0ZDMDBGRDAwQkVDMDBFRTAwM0Y0MDBGRjAwM0U4MDY1NAorOjEwOUFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNTAwQ0YwODNGNDhFRQorOjEwOUFGMDAwMEZDMzkzNzBEMERDMzAzRkQ4MENCMjAzM0NDMEZGNDBBMgorOjEwOUIwMDAwMzNDNDJDRjEwMzYyNTBGQzM0MzMwMDBGNUMwM0YwMDBDQgorOjEwOUIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBDNDgwOEIwMDJGNUFFRAorOjEwOUIyMDAwMEJBNjEyMjFDMDg5NzAyRkRDMDhGMkMyM0REMEJGNDBDNQorOjEwOUIzMDAwMzdEQzg4RjUwQTIwODBFODEwMkExNjBCOTAwMkUwMDQzMgorOjEwOUI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDAwODMwODJDNDQ5RAorOjEwOUI1MDAwMEIwMjAyMEMwMDgwMDAyQ0M4MDgzMzQyOEM5MEIzMzBGQQorOjEwOUI2MDAwMjhDODRBMzIxMjgwMENCMEEwMjgyODBCMTIwMkUyMDE0OQorOjEwOUI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMjAwOEIwMDJFNDhGRAorOjEwOUI4MDAwMEJBMDIyMjAyMDg4ODAyRUMwMjhCMDBBQUMwMEJCMDA4OQorOjEwOUI5MDAwMkVDMDBBQjAwMkEwMDBBQjgyMkFBMDBCQjIwMkYwMDREMQorOjEwOUJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFNzAwQ0IwMDNFQzA1MAorOjEwOUJCMDAwQ0Y5QzBCMjEwMEQ4ODgzRUMwMENCMDAzQUMwMEZCMDA0QQorOjEwOUJDMDAwM0FDMDBFQjA0M0U4NDBGODgwM0E2MDBGOTgwM0QwMDRFMgorOjEwOUJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwRkYwMDBGRTA5MgorOjEwOUJFMDAwMDdBMTAzRTgwMkZCMDAzRkMwMEY3MDIzN0MwMEZGMDJDNworOjEwOUJGMDAwMzVDMDREQjAwMzc0MjBGQzAxM0YwMDBGRjgwM0Y4MDA5RQorOjEwOUMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAwQ0IwMEJBNDAzQQorOjEwOUMxMDAwMEMxNDBCMkYyMkM5NDAzMkMwOEVCMDAzQUMwMEZCMDBFNQorOjEwOUMyMDAwM0VDMDBFQjAwM0U0MDBDOTAwMzIwMDJDOTAwMzEwMDRDMworOjEwOUMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEyNDAwOEYwMDIyNDAyNgorOjEwOUM0MDAwMkNBNTQyMjkwMDhCMDRBM0MxMERGMDBBM0MwMEJGMDBFMworOjEwOUM1MDAwM0ZDMDA4RjAwMTY5MDBEQTA1MjJEMDA4OTQwMzcyMDBDMQorOjEwOUM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2MDQwODMwMTIwQzBDQgorOjEwOUM3MDAwMDkwMDAyMjAwMDgyNjAyMkMwMDgzMDQyNEMxMEJCMDI2MgorOjEwOUM4MDAwMkNDMDA4QjAxMjA1MDA5QjAwMjA4MjA5MzIwMjM4MDA2NworOjEwOUM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjkwODc4MDIwRTBBNgorOjEwOUNBMDAwMDg1ODAyMTYxNDg0ODEyMUUwMjkzOTAyNUUwMEI3ODAyOQorOjEwOUNCMDAwMjhFMDA4NzgwMjdBODA5NjgxMjFFMDA5RjgwMjQ4MDBCRAorOjEwOUNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODA5OEIxMDM4NDREQworOjEwOUNEMDAwNEQyNTEyMEMwMEMyMTAyMkM4MEEzODAzQ0MwMEYzMTAyNAorOjEwOUNFMDAwMkNDMDBDMzAwMzhBQzBEOTEwMzI0MDJEMTAwMzEyMDI1MAorOjEwOUNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzgwRkYwMDNGNDA0RAorOjEwOUQwMDAwMEZGMDAzRjQ0MEVEMDAzRkMwMEVGMzAzQkMwNEZGMDA2RQorOjEwOUQxMDAwM0ZDMjBGRjAwQkQ0MDBGRjEwQkY4MDBFRjAwM0QwMDYzRgorOjEwOUQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQTAwQ0IwMjNFQzA2MQorOjEwOUQzMDAwMEY5MDAzQTAwMENCMDAzQUNBMENCMzEzQUYyNENCNDg1QQorOjEwOUQ0MDAwMUVDODBGQjYwMzJDMDBGQTAwM0VDMDBGOTAwM0VBMDBCNQorOjEwOUQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzA4ODcyMDJEQzRGRQorOjEwOUQ2MDAwMEI1MDEyREMwNDg3MDAyQ0MwMDg3MEEyMUQwMEE3NDAxNQorOjEwOUQ3MDAwMjVDQjhCNzQ4MjFDMDBCNzAwMkRDMTBCNzAwMkQyMDQ1RQorOjEwOUQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAxODc5MDJERTBGNAorOjEwOUQ5MDAwMEI3ODAyQ0UwMDg2ODAyREU0Mjk3QTAyOUU4MDg3QTA2RgorOjEwOURBMDAwNkRFODBCNzgwMjFFMDBCNTgwMkQ2MDBCNzgwMkYwMDA4NAorOjEwOURCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDAwODMwMjJDRTBDOQorOjEwOURDMDAwMEIzMDAyQ0MwMDgzRTAyQ0MwMDgzMDAyMEMwMEEzMDA1MgorOjEwOUREMDAwMjRDMDBCQjAwMjBFMjBCMzA4MkNDMDBCMzAwMkQyMDRGQQorOjEwOURFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODgyQ0EwMDNFQTg1QworOjEwOURGMDAwMEZFMDAzRjgwMjhFODAzRTgwMERBMDVCQTgwMENBMDAzMQorOjEwOUUwMDAwM0U4MDBGQTAwMzNCODBGRTQyMkY4MDBGQTgwM0ZBMDQ4MAorOjEwOUUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDIwRjgwMDNFMDA2NAorOjEwOUUyMDAwMEYwNjAzQzAwMEY4MTEzRTAwMEYwMDAzRTAwMEY4MDAyOQorOjEwOUUzMDAwMzYwMDBGODAwQkUwMDBGODA0M0UyMDBGODEwM0QyMDBCMworOjEwOUU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwMDNFNDA2RgorOjEwOUU1MDAwMEM5QTAzMjQ0MEM5QzAzRTQwNEM5MDAzMjQwMEY5MDBGMgorOjEwOUU2MDAwMzY0MDA3OTAwMzI0MDBDOTA0MzI2MDBGOTAwM0MyMDRGNworOjEwOUU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMjJFNDBBMQorOjEwOUU4MDAwMEE5MjAyMjUwMjg5RTAyRTQwOTg5MDAyMjQwMEI5MDAyRgorOjEwOUU5MDAwMjI0MDA5OTAwMjA0MDBEOTAwMjI0NDBCOUMwMkUwMDBGOQorOjEwOUVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyQzAwQjkwMDJDNDAzNAorOjEwOUVCMDAwMDg5MDAyMjQyODg5MDAyQzQwNjg5MDQyMjQwQ0IxMDRBOAorOjEwOUVDMDAwMjY0MDBCOTAwQTJDODA4MTAwMjI0MENCOTI4MkM2MDA1MworOjEwOUVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEyMDJDNDhFRAorOjEwOUVFMDAwMEExMjAyMDQ4MDgxMjEyQzRDMDgxMTAyMDQwOEIxMTBDRQorOjEwOUVGMDAwMjA0QzA5MTIwMjI0MDE5MTIwQTA0ODBCMTAwMkMyMDEzQgorOjEwOUYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwRjg1MDNFMTREMQorOjEwOUYxMDAwMEM4NTAzMjE0MEM4NTAzRTEwMDgwNjgzMDFGMEY4NjgwNAorOjEwOUYyMDAwMzYxMDBGMDUwMzI5NDBDODUwMzI5NDBGODUwM0VFMDMwNQorOjEwOUYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkxMDNGNDQ5QworOjEwOUY0MDAwMEZEMTBCRjQ0MEZEMTIyRTRDMDM5MjBCRTQwMEY5MjBDQworOjEwOUY1MDAwM0U0QzBGOTEwM0ZDMDBGRDEwM0Y0NDBGRDAwM0U2MDY3QQorOjEwOUY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIwQzkwMTNFNDAwNgorOjEwOUY3MDAwMEZEMDAzM0MwMEJEMDAzMjYzMEM5RTQzMjcwMEU5QzBCNAorOjEwOUY4MDAwM0U2ODBDOTgwMzM0MDBGOTEwM0Y0MDBGRDAwM0M2MDAyMAorOjEwOUY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjIwRDgwMDJFMDAyMQorOjEwOUZBMDAwMEI4MDUyMjgwNEI4MDAyMjM4MDg4ODAzNjIwMDg4RjAyOQorOjEwOUZCMDAwMkUzQTQ4OEYwQTIwMDBCMDgwMkUwMDBCODAwMkNFMDQ3QgorOjEwOUZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDgwODEwMDJDNDAyMworOjEwOUZEMDAwMEIxMDAyMDQwMEIxMDAyMDQyNDgxNDQyMDU4MEExMjA2OQorOjEwOUZFMDAwMkM0NDA4MTA4MjA0MDBCMTIwMkM0MDBCMTAwMkMyMDE0NgorOjEwOUZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTAxOTkwMDJFNDAxNworOjEwQTAwMDAwMEI5MDAyMjQ0MEJCMDEyMjQxMDg5MDEyMjQwMEE5MDBCOQorOjEwQTAxMDAwMkM0MDA4MTA0MDI0MDhCOTQwNkU1MDBCOTIwMkM2MDQzMAorOjEwQTAyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzE0QzkwNTNFNDFEMworOjEwQTAzMDAwMEY5MDBCMjQwNEY5MDhCMjQwMkM5MDBBMjQwMEU5MDA4OAorOjEwQTA0MDAwM0U0MDJDOTAwMzI3MDBGOTgwM0U2MDBGOTAwM0U4MDQwNworOjEwQTA1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDg4RjkwMDNFNDhEQworOjEwQTA2MDAwMEY5OTAzRTYwMEY5MDIzQzQwQUYxMDAzRTQxMkQ5MDQ1MworOjEwQTA3MDAwM0U0MDBGOTAwM0U1MDBGOUMwM0U2NDBGOTA4M0NBMDA5NAorOjEwQTA4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwQzgwMDNFMDA5MQorOjEwQTA5MDAwMEY4MDAzMjEwMEM4NDBCMjAwMEM4MDAzMjAxMEM4MDBDQworOjEwQTBBMDAwMzIwMDBDODAwM0UwODBGODA0MzIwMDJDODAwQjBBMDQ5QworOjEwQTBCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQ0EwMDJFODBCMworOjEwQTBDMDAwMEJFODBBMzgxMDhFQzAyMjgwMERBMDAyMjgwMDBBMDQ3NgorOjEwQTBEMDAwMDI4MDI4QTAwMkZCMDBCQTAwMzdCMDQ4RUEwMjBBMDA1QQorOjEwQTBFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMTJDQzAzNworOjEwQTBGMDAwOEJCMDQyMEM5MDlCMjAyMEMwNDgzMDQyMkMwMDgzMDA0MworOjEwQTEwMDAwMjBDMDA4MzAwMkNENDBCMzAwMjRDODA4MzgwMjBBMDAzRAorOjEwQTExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODcwMDJEQzBDNgorOjEwQTEyMDAwMEIyNDA2MTYwMDkzMDgyMUM4MDkzMTAyMEM4MDg3QTA3MQorOjEwQTEzMDAwMjFDMDE4NzIwMkRDMDBCN0I0MjRFMzA4NzgwMjI4MDBCQQorOjEwQTE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAyOTdBMDNERjA5QgorOjEwQTE1MDAwMEY0ODAzM0UwMEQ2ODAzMEUwMkM3QTAyMUU4MkMzRjAwNgorOjEwQTE2MDAwMzNFQzBDN0MwM0Q2MDBGNzgwMzVFMDBDRDgwMzJBMDJEMAorOjEwQTE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTlBNUEwRkIwMDNFQ0E3NgorOjEwQTE4MDAwMEY4MDAzRUMwMkVBMDAzRUM2MEZCNDBCRUQ0MEZCMDA2QgorOjEwQTE5MDAwQkVDMDBGQjY0M0UwMDBGQjAyM0U4MDBGOTAwM0MyMDYzNAorOjEwQTFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAyQ0Y4ODNGRTBENAorOjEwQTFCMDAwMENCOTAzRkUwMEREODEzM0UwOENGQzAzM0YwNENGODA0QgorOjEwQTFDMDAwMzNFMjRGRkMwMzNFMDBDRkMwMzM2NDBDRjgwM0MwMDAwMQorOjEwQTFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQwODcwMDJGQzEwQgorOjEwQTFFMDAwMEQ2OUEyRDA0MEJDMDAyM0MwMDhGMDAyOUMwMDg3MDA4QgorOjEwQTFGMDAwMjFDMDBCNzAwQTNDMDQ4NzEwMjE0QzA4NjAwMkVBMDQ1RAorOjEwQTIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RTAwODcwMDJEQzBEQworOjEwQTIxMDAwMDk2MjAyRDgwMDk3MDAyMUM0MDg3MDAyMEM0MDk3MDAyMAorOjEwQTIyMDAwMjFDNDBCMzAwMjU4MDBBNzA4MjE4MDA4NjA4MkMwMDBCQQorOjEwQTIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNDI1ODMwMDJDQzA1MgorOjEwQTI0MDAwMDkyMjAyQ0MyMEIyMDAyMEMwMjhCMDAyOEMwMDkzMDA2QQorOjEwQTI1MDAwMjBDMDBCMzA0MjZDMjA4MzA4MjBFMjA4QjgwMkM4MDRGQQorOjEwQTI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBNDAwQ0YwMDNGQzA4RgorOjEwQTI3MDAwMEQ5QzAzRTgwMERCODAzM0MwMENGMDBCM0MwNkRGMDBENAorOjEwQTI4MDAwQjNDMDBCRjAwNzY4MDBFRjQwMzJBODBDQTgwM0VBMDQ0MworOjEwQTI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDJFQzAwOQorOjEwQTJBMDAwMEY5NDAzQzU0MEZBMzAzRUMwMEZCMDAzNkMwMEVCMDBDMgorOjEwQTJCMDAwM0VDMDBGMzAxM0FENDBGQjAyM0VEMDBGQjQwM0UwMDBCMAorOjEwQTJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFNDAwQzcwMDMxQzFCMAorOjEwQTJEMDAwOENEMDAzMzQwMENEMDAzREMwMENGMDAxN0MwMERCMDFDQworOjEwQTJFMDAwM0RDMDRDRjAwQjMwMDJDMzAwMzIwMDBGRDAwMzAwNDRERAorOjEwQTJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTQwOEIwMDJBQzA4NgorOjEwQTMwMDAwMjg4NDQyMjI4MDg4ODAzQUMwMERCMDAyQUMwODhCMDBCRAorOjEwQTMxMDAwMkVDMDA4QjAwMjIzMjA4QjAwMjIzMDhCOEMwMjIwNDBGQworOjEwQTMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwOEIwMDIyQzAwNworOjEwQTMzMDAwMDgzODg2MkEwMDg5ODAyQUMwMDhCMDAyQ0MwMDlCMDAxOQorOjEwQTM0MDAwMkVDMDA4QjA0MjI2MDA4QjAwMjI3MTBCOEMwMjIwMDAyOAorOjEwQTM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMDI4QzAzQQorOjEwQTM2MDAwMDgzMjQyMDAwMDgxMDAyOEMwMDkzMDUyOEMwODgzMDA2NgorOjEwQTM3MDAwMkNDMDE4MzAwNjAwMDA4MzAwQTAwMDBCMDAwMjAyMDE3MAorOjEwQTM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3NDAyOEIwMDMzQzBDQworOjEwQTM5MDAwMEM5MjBCMjAwMkM4MDAzQkMwMENGNTAzRkMwMERGMDE0RgorOjEwQTNBMDAwM0ZDMTA0RjAzMzIxNDBDRjAwMzIwMDBGODAwQjAwMDM4NworOjEwQTNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkYwMDNGQzA5QQorOjEwQTNDMDAwMEZDNDAzRjAwMDlDMDAzQkMwMEZGMDAzRkMwMEZGMDAzMworOjEwQTNEMDAwMkZDMDBGRjAwM0YwODBGRjAwM0YwMDBGQzAwM0U4MDYxRQorOjEwQTNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEMwRkZBMDMxMjQ5NAorOjEwQTNGMDAwMEVGMDYzMTAwNEVGNjQzRkMwNENGMzAzMUM4MERGMDhEMQorOjEwQTQwMDAwMzdDMDBGRjAwM0YwQTBGQzAwMzEwODJDRDIwM0YwMDA5RAorOjEwQTQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTAwQkJDMTIyNDg3NQorOjEwQTQyMDAwMDhGRDAyMkUwMDk3MDAyRkMyNDg3MTIzN0U0MEJGMDAxNgorOjEwQTQzMDAwMjFDNTRCRjUwMkVGMDBCQjQwMzZFMDA4QTgwMkUwMDQ1RQorOjEwQTQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTg0QjMxMUEyQzlENworOjEwQTQ1MDAwMEEzMDAyMDAwMUIzMzAyOEM0MDgzMjQyMEMwMEEzMDhCRAorOjEwQTQ2MDAwQTBDQTBBMzI4MjgwMTBCMDQxMjQxMTA4MzEwMkUyMDFGMAorOjEwQTQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNTAwQkIwMDIyRTEzNAorOjEwQTQ4MDAwMjhCMDAyMkM4MDlCMDAyRUMwMDhCMDAyNkMwMEIzMDBFNAorOjEwQTQ5MDAwMjJDMDBCQjAwMEVDMjBCQjAwMjZDMDA4ODAwMkYwMDRGNAorOjEwQTRBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMzQwRjcwNDMyQzBFNworOjEwQTRCMDAwNEVCMDIzMkUyMEVCMDAxRUMwMENCMDAxMkMwMEZCMDA4MAorOjEwQTRDMDAwMzZDMDFGQjAwM0UxNDBGQjAwMzY5ODBDOTAwM0QwMDQ2NworOjEwQTREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjA0RkYwMjNGQzA3MQorOjEwQTRFMDAwMEZGMDAzRkUwMEVGMDIzREMwMEZGMDIzRkMwMEZGMDA2MQorOjEwQTRGMDAwM0ZDMDRGRjAwM0ZDMDBGNDAwM0I0MDBGQTAxM0Y4MDBGNgorOjEwQTUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQTIwRUIxMDM2QzBFMAorOjEwQTUxMDAwMERCMDA3RUMyMERCMDAzMkMwMENCMDAyNkMyMEVCMDA2OQorOjEwQTUyMDAwM0VDMTBEQjAwM0UwMjBEQkEwMzI5MDRDQjAwQjEwMDQxNAorOjEwQTUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRDAwOEY4MDIwQzExMQorOjEwQTU0MDAwMDg3MDEyQ0YwMDhGMDBBM0MwMERGMDAyM0MwMDhGMDBGNgorOjEwQTU1MDAwMzdDMDg4RjAwMkVDMDA4ODAwMjA0MDA4ODAwMjMyMDBGQQorOjEwQTU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQTM4MDI0ODFCMgorOjEwQTU3MDAwMDkzMDA2Q0M0MDkzMDAyOEMxMDhCMDAyQ0Y0MEEzMDBBOAorOjEwQTU4MDAwMkNDMDA5MzAwMkNEMDA5MDQwNjA0MDI4MTAwMjM4MDBGNQorOjEwQTU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEwRTAwODc4MDIzRTAzMgorOjEwQTVBMDAwNDg3OTAyREU0MTk3ODAyOUUwMTk3ODA2OUUwMDg3ODA2RAorOjEwQTVCMDAwMjVFMDA4NzgwMkQyMDM4MzgwMjFBMDA4NjgwMjA4MDAwMQorOjEwQTVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwQTMwMDM0QzA1OAorOjEwQTVEMDAwMEQzMDQyQ0MwMUQzMTAzQUM1MEMzOTAzQ0MwMEUzMDQ1MgorOjEwQTVFMDAwM0NDNDBEMzAwM0NFMDBEMDAwMzA0MDBDMzAwMzEyMDJDQQorOjEwQTVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRjcwMDNGQzA0QworOjEwQTYwMDAwMUZGMDUzRkMwMEVGMDgzN0QxMEZGMDgzN0MwMEY3NDBCOAorOjEwQTYxMDAwM0ZDMTBGRjEwM0QwMDBGRjAwQkY4NDBGQzgwM0QwMDY3NQorOjEwQTYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFMDAwRkIwMDNFRTAyNAorOjEwQTYzMDAwMkNCRTgzRUMwMEVCNDAzRUMwMEZCNDAzRUQyMEZCMTBCQQorOjEwQTY0MDAwQjZEMjBGQjQ4M0VDMDBEQjgwMzZDMTBDOTAyMTJBMDAxNworOjEwQTY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjcwMDJGQzBGNworOjEwQTY2MDAwMDgzNjAyMEMwODg3MzAyREQ5OEI3Mjg2REQwMEIzMjBBNgorOjEwQTY3MDAwMjFDODBCNzQwMkQwMDI4NDAwQTAwMDI4MjAwMjEyMDQxQQorOjEwQTY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAwQjc4MDJERTBDQworOjEwQTY5MDAwMDg3QTAyOUQwMEE3QTAyREUwMEI3ODAyOUU4MEE3ODA3QgorOjEwQTZBMDAwMjFFNDA4N0EyNjlFMTg4MzA0MjFFMDA4NzgwQTcwMDBDNQorOjEwQTZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDRTA5MworOjEwQTZDMDAwNTgzMDEyMEU4MjgzMDAyQ0MwMEIzMDAyQ0MwMUIzMDAzNAorOjEwQTZEMDAwMjBDMTBCMzAwMkMwMDg4OEQyMjAyMDA4MDAwMjUyMDQ5QQorOjEwQTZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODYwRkEwMDNGODI2QQorOjEwQTZGMDAwMENBMDAzRkEwMEFBMDAxRTgwOEZBMDAzRTgwMEYyMDA1RAorOjEwQTcwMDAwMzI4MDFGQTAwM0U4MDBEQTAwMzY4OEFDRTAwMzdBMDQ0OAorOjEwQTcxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMTAwRjgwMDNFMjA1QQorOjEwQTcyMDAwNEY4MDAzRTEwMEYwMDAzQzAwMEI4MDAzRTAwMEY4MDJFMgorOjEwQTczMDAwM0EwMDBGODA0M0YxMDBGQzBBM0QwMDBGQzAwMzkyMDA3NQorOjEwQTc0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjAwQzk5MDNFNDAwNAorOjEwQTc1MDAwMEY5MjAzRTQwMEQ5MDAzMjQwMDQ5MDA3RTcwMEY5MTA5QgorOjEwQTc2MDAwMzA0MDBDOTA0M0U0MDlEOTgwMjI0MDJDMTAwQjAyMDRBNQorOjEwQTc3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDYwODlDMDJFNDBBQQorOjEwQTc4MDAwMEI5ODI2QzU4MDg5MDAyMjQwMjg5MDEyRTcxMEI5MDA1NgorOjEwQTc5MDAwMzY0MDI4OTAxMkM1ODNDOTgwQjY0MDA4OTAwMjIwMDAzOAorOjEwQTdBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNDAwODk0MDJFNDE0MAorOjEwQTdCMDAwNEI5MDAyRTQwMDk5MDBBMjQwMEE5MDAyRTUwMEI5MDAyMworOjEwQTdDMDAwRTI0MTA4OTA0MkU0MDA5RDUwQUI0QTA4RDAyNjA2MDBDMgorOjEwQTdEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgyODEyMDJDNTA4QQorOjEwQTdFMDAwMEIxMDAyRTQwMDgxNDAyMDUwNEExNDMyQzQwMEIxNDBGMgorOjEwQTdGMDAwMjQ1MTE4MTQxMkQ0MDA4NTQwMkQ0MDA4NTAwNjAyMDEzRgorOjEwQTgwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwQzgwMDNFMDBEQworOjEwQTgxMDAwMEY4MDAyRTAwMEQ4MDAzMjAwMEE4MDAyRTAxMEY4MDA0OQorOjEwQTgyMDAwMzIwMDA0ODAwM0UwMDBEODAwM0EwMDBDQzAwMzJFMDM3RAorOjEwQTgzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNGNDE1NgorOjEwQTg0MDAwMEY5NDAzRjUwMEY5NDAzRTUwMEQ5NDAzRTUxMEY5NDBENAorOjEwQTg1MDAwM0U1MDRGOTQwM0M1MDBFOTQxMzY1MDBGOTQwM0U2MDY3RAorOjEwQTg2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkRBODNBNDA0NgorOjEwQTg3MDAwMENEODIzMzYwMEU5QTAzRTc4MEY5RTAzQjY4MENERTJDNworOjEwQTg4MDAwMzI2ODBDOUIwMzM2ODI0REEwMzc2ODhDOTgwMzA2MDAxMworOjEwQTg5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFQkEwQjg0MDIwMjAzRAorOjEwQThBMDAwMDg4NTAyMjE1MTg4QzAyRTI5MEI4RTAyRTEwMEQ4RTBENAorOjEwQThCMDAwMjIzMjBEOEQyMzYxNDg5OEQ0QTIxMDI4ODQwMjBFMDQwMAorOjEwQThDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjMwMDJBNEE1RgorOjEwQThEMDAwMjgxMDRFQTQwOEExNjgyODQ0MEIxNDAyQzUwMDgxNDAyQQorOjEwQThFMDAwQTA1MDA4MTAwMjA0MDI5MTJBMjA0NDI4MTQ0QTAyMDFCMAorOjEwQThGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzgwQjkwMDIyNDA3NAorOjEwQTkwMDAwNDg5MDA2QTQwMEE5MDAyRTQwMEI5MDIyRTQwMDk5MDA3NAorOjEwQTkxMDAwMjI0MDA5MTAwMjY0MDI5OTAwMjI0MDA4OTAwMjA2MDRCNQorOjEwQTkyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDM4NThBNQorOjEwQTkzMDAwMEM5MDUzODQxNEE5MDQzRTQwMEY5MDAzRTQwMEM5MDAxNgorOjEwQTk0MDAwMzI0MDBDOTAwMzI0MDREOTAwQjY0MDRDOTAwQjI4MDRFQworOjEwQTk1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMjNFNDkzOAorOjEwQTk2MDAwMEYxMDQzNjQwMEQ5MDAzRTQwMEY5MDAzQzQwMEYxMDI3MQorOjEwQTk3MDAwM0U0MDBGOTAwM0M0MDJFOTA0M0M0MDBGMUMwM0NBMDA5MAorOjEwQTk4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgwQzgyMDNFMDBFOAorOjEwQTk5MDAwOEM4MDBCMjAwMEU4MDIzRTAwMEY4MDAzQTA4MkM4MDBEQworOjEwQTlBMDAwNkMwMDBGODAwMzIwMTBDODAwMzIwMjBDODAwMzBBMDRFMAorOjEwQTlCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwODYwMDJFODBERQorOjEwQTlDMDAwNjhBODgwM0EwMDhBMDAyRTgwMEJBMDAyRjgwMDhBMDA1NgorOjEwQTlEMDAwMkU4MDBCQTAwQTNBMDA4RTEwMjM4MDA4QTAwMzBBMDBFNAorOjEwQTlFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwODMwMDJDQzAzRQorOjEwQTlGMDAwMDgzODAwMEM2MDIzMDAyQ0MwMEIzMDAyQ0M0MDgzMDBEMAorOjEwQUEwMDAwMkNDMDBCMzAwMjBDMDI4QTgwQTBFMDI4MzAwQTRBMDBEOQorOjEwQUExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNjIwODcwMjJEQzE5OAorOjEwQUEyMDAwNDg3MDEyN0MwMEE3MjAyREM5MEI3MjAwREMwMDg3MDgzQgorOjEwQUEzMDAwMkRDNDFCMzIwMjFEMDE4NzQyMjFDMjA4NzAwMjI4MDA2QQorOjEwQUE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAyQzc4MDNERUM2NgorOjEwQUE1MDAwMEM1ODAzMUUwMEU3ODAzREVDMEY3RjAzOTYwMEM3ODA3MworOjEwQUE2MDAwMkRFMjA3NzkwMzBBMDZDMzgwMzAyMDhDMzgwMzZBMDI3RQorOjEwQUE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkIwMDNFQzAwQworOjEwQUE4MDAwMEYxMDQzOEMwMERCMzgzRUQ4MEZCMDAzQ0MwNEZCNDRERQorOjEwQUE5MDAwM0VDMDhGQjYxM0VDMDJGRjAyM0UwMDBGQjAwM0MyMDZBOQorOjEwQUFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwRkY4MDMxRTNCNAorOjEwQUFCMDAwMEVGODIzRkUwMkRGODBCN0UyMEVGODAzN0UwMDZERDBCMQorOjEwQUFDMDAwMzNFMDBDRjg5Qjc2QzBERjg0QjNFMDA0RjgwM0MwMDBFOQorOjEwQUFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDQwQjcwMjIxQzRERgorOjEwQUFFMDAwMDg3QjQyREMwMDg3MDAyMUM0MEIzMDAwMTA4MDhEMDAwMQorOjEwQUFGMDAwMjNDMDBERjIwMjA0NDI4RjAwMjlDODI4NzAwMkVBMDQyNAorOjEwQUIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NDAwQjYwMDIzQzBCOAorOjEwQUIxMDAwMEE3MjAyOEMwMDg3MDAyMUMwMEEzMDAyMDQwMUE3MDJEOQorOjEwQUIyMDAwMjFDMDA4NzA0MjAwOEE4NzAwMjFDMDI4NzAwMkMwMDAzRQorOjEwQUIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNTAwQjAwMEEwRDBEQworOjEwQUI0MDAwMDhCMDAyQzk0MjhCMDAyMEMwMEIzMDIyMDQwMDgzMDBGMQorOjEwQUI1MDAwQTBDMDQ5MzAwMjQ1NDA5M0MwQThENDAwMzUwMkM4MDRDMworOjEwQUI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQkIwMDMxQzBBMAorOjEwQUI3MDAwMEVCMDIzQ0QwMERGMDAzN0MwMEVGMDAxNjgwMEUzMDAwNworOjEwQUI4MDAwMzNDMDFDRjAwMzQ1MDBEQUM4OTJENDJDQjQwM0VBMDRBNQorOjEwQUI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNTIwRkIwMDNFQzBENworOjEwQUJBMDAwMEZCMDAzRUMwMEZCMDAzRUMwNEZCMDAzQUQwMEZCMDA1NAorOjEwQUJCMDAwN0VDMDFGMzAwM0E0ODBFOTIwM0NDMDBGMzIwM0UwMDBCOAorOjEwQUJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzQzJBQworOjEwQUJEMDAwMkNGMDAzM0UyMERCMDAxM0MwMEM3MDAzM0M4MEVGMDQxQworOjEwQUJFMDAwNzNDMTBGRjAyMjMwMDBDNjAwQjJDMDBDRjAwMzAwNDQ2NQorOjEwQUJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2OTAwOEI0NEEyQzEwOQorOjEwQUMwMDAwODhCMDAzNkMwMDhCMDAyMkMwMjhCMDBBMkQwMEJCMDA2NgorOjEwQUMxMDAwNjJDMDBCQjAwMjI2MDI4QjgwMjJDMDA4QjAwMzIwNDAyNQorOjEwQUMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODAxOEEwODIyQzBGMgorOjEwQUMzMDAwMDhCMjAyNkM0MDlCMDAyOEMwNDhCMDE2MjkwNEI5MDEzNAorOjEwQUM0MDAwMjJDMDQ5QjAwNkFFMDk4QjgwMjJFMDQ4QjAwMjIwMDA0NQorOjEwQUM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAyODIwMDIyQzA0MgorOjEwQUM2MDAwODhCMDAyNDQwMDgzMDAyOEMwMDgzMDAyMDgwMEIxMDAwOAorOjEwQUM3MDAwMjBDMDBCMzAwMjhDMDA4MzgwMjBFMDA4MzAwQTAyMDFFMworOjEwQUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwQ0EwMDMzQzA5NgorOjEwQUM5MDAwMENCMjAzMkMwMERGMDAzQkMwNENGNTEzMkMwNEVGMDA3QQorOjEwQUNBMDAwQTNDMDBERjAwM0E4NDBDQjAwQjIwMDJDQjAwMzAwMDNGQQorOjEwQUNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRjQwMDNGQzBBNAorOjEwQUNDMDAwMEZCMTAzRjAwMEZGMDAzN0MwMEZGMDAzRkMwMEZGMDBERQorOjEwQUNEMDAwM0ZDMDA3RjAwQjdDMDhGRjAxM0YwMDBGRjAwM0E4MDYwMAorOjEwQUNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM1RUQzMzNCQ0M1MworOjEwQUNGMDAwMENGMDAzMzA0MEZGMjUzRkNDMENGMzgzM0NEMERGNDgwMQorOjEwQUQwMDAwMzczMDRDRjMwM0ZEODBDRjI4MzNEODBDRjEwMzMwMDBFQgorOjEwQUQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0QwQkIzMTIwQ0M5RgorOjEwQUQyMDAwODhGMzQyMjA1MEJGOTAyRkM0MEFGNjAyN0RDMDhGNDBBNgorOjEwQUQzMDAwMjY0MDhGRjYwMkZEMDBGRjA4MzlDODA4RjYwMkEwMDQ3RAorOjEwQUQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwQTEyMDI4Qzk1MAorOjEwQUQ1MDAwMDgzMDlBMDAwOUIzMDAyQ0MwMjAzMDAyNEM5MDgzMjBBOAorOjEwQUQ2MDAwMDIwODBCMzMxMkNEODA5MzIwMjREODA4MzQyMjIyMDEwQworOjEwQUQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBRTAwQkIxMDIyQzAzNworOjEwQUQ4MDAwMDhCMDAyMjYwMTNCMDE2RUMwMDhCMDAyNEMwODhCMDBERgorOjEwQUQ5MDAwQTI4OTBCQjAwMkVDMDBBQjAwNkFDMTI4QjAwMkIwMDQ3QgorOjEwQURBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTU2RTAwRThDMTNBQzBERAorOjEwQURCMDAwMkNCMDQzMjYwMEZCMDYzRUMxMENCMDBCMkMwMkNCMDA4RQorOjEwQURDMDAwMzQyMjlGQjA0M0VDMDA5QjAyMzZDMThDQjAwMzEwMDRDOAorOjEwQUREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRkM4MDNERDBERAorOjEwQURFMDAwMkZGMDAzRkMwMEZCMDAzREMwMDczMDAzQkMwMEVGMDQ2NAorOjEwQURGMDAwM0ZFMDVFQjAwMUZDMDBGRjAwMUJDMDBGRjAwM0Y4MDA1NQorOjEwQUUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwQ0IwMTNFQzkxMworOjEwQUUxMDAwMENCMDE3MjA4NEVCMDBCMkMxMERCMDAzNkMwMEMzMDA2RQorOjEwQUUyMDAwMzI1MDBGQjAwMzBDNDBDMzAwN0VDMDBDMzAwMzEwMDQzRQorOjEwQUUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwOEE1ODJFRTAwOQorOjEwQUU0MDAwNDhGMDAyMkQwMEVGMDEyM0MwMDhGMDIyM0MwNDhGNjA3RgorOjEwQUU1MDAwMzY1NDBCRjAwQTNENDA4RjAwMkZDMDA4RjAwMzcyMDBGQgorOjEwQUU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAwODk4MDJDMTAzOAorOjEwQUU3MDAwMDhCMDAyNDkwMEEzQTAyNEMwMDkzMDAyNEMwMDgzQzlENQorOjEwQUU4MDAwMjA5MDQyMzAxMjREMDA4MzAwNkFDMDA5MzAwMjM4MDAyMQorOjEwQUU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODU4MDZENjI1NworOjEwQUVBMDAwMDg3RTAyNTY0MDI3ODAyNUUwMTk3ODA2MEUwMDgzODAzMAorOjEwQUVCMDAwNjFBMDBCNzgwMjRFMDA4NzgyNkRFMDA5NzkwMjQ4MDA5QworOjEwQUVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyQzAyQzM2MTNDODhEQworOjEwQUVEMDAwMkNCQTEyNDkxMEUzMkMzNkMwMEQzMDUzNEM0NEMzMDAzOQorOjEwQUVFMDAwMjAwMTBGMzEwMzRDMDBDMzAxM0NDMDJEQjEwMzEyMDJGRAorOjEwQUVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNGMDBGQgorOjEwQUYwMDAwNEZGMTA5QjAwMEZGMDAzQkMwMEVGNDAxRkQyNEZGNDBFQgorOjEwQUYxMDAwQkZDMDA3RjAwM0JDMDA2RjEwM0ZDNDFFRjE4M0QwMDYxMgorOjEwQUYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVDNDAwRTgwNDMyMDAzMgorOjEwQUYzMDAwMENCNjAzRTgwMkNCMDAzNkNBMEZCNTAzQUQwMEZCMjAwOAorOjEwQUY0MDAwM0U0MDBGQjMwM0VDODBGQkE4MzJDNjhDQjYwMzJBMDA0OAorOjEwQUY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAyRTYwMDIwMDA4QworOjEwQUY2MDAwMDg3MzAyREMwMDg3NzAyREQwMEJGMDAyMUM4NEI3MjAyMAorOjEwQUY3MDAwMkRDMDBCNzA4MkREMjRCNzQwMzRDOTI4NzI4MjkyMDQ0MAorOjEwQUY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCRTAyQUM4MEExMjBGNAorOjEwQUY5MDAwMDg3OTAwQ0UwNDg3ODA2NUUwMEI3QTAyOUUwMEI3OTBBNgorOjEwQUZBMDAwNkRBMDBCNzgwMkRFMDBCNzgwMjFFMDA4NzgwMjMwMDA0NworOjEwQUZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDgyQUJFMDIwRTQxNworOjEwQUZDMDAwMDgzMDAyRUUwNDgzMDAyQ0MxMUIzMDAyMEMwOEIzMDBEMQorOjEwQUZEMDAwNjRGNjBCQjAwMkNDMDRCMzAwMjZDMDA4MzAwMjkyMDQyMQorOjEwQUZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjgwRUU0OTMxQTBGMQorOjEwQUZGMDAwMkNBMDAzRkEwMENBMDIzNjgwMEZBMDAzQTgwMEZBMDJCMAorOjEwQjAwMDAwM0Y5MDBGQTA2M0U4MDBGQTAwMzI4MDBDQTAyMzNBMDRCRQorOjEwQjAxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDBBRTgwMDNFMDg3MAorOjEwQjAyMDAwMEY4MDAzRTM1MEYwMDAzRTAwMEY4MDEzRTAwMEY4MDBCMworOjEwQjAzMDAwM0UwMDBGODAwM0UwMDFGODAxN0UwMDBGODAwM0QyMDA4NAorOjEwQjA0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQwQzlBMTMyNDBCOAorOjEwQjA1MDAwMjAxMTAxQTY0MEM5ODQzNjQwMEQ5MDAzNDQwMDQxMDBGMAorOjEwQjA2MDAwMzI0MDBGOTAwQjI0MDBGOTAwM0U0MDRDMTAwMzAyMDRDNAorOjEwQjA3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4MkEyNDBDQgorOjEwQjA4MDAwMDg5QzAyMjUwMDg5QzgyMjQwMDg5MDQyMjQwMDg5MjA5QgorOjEwQjA5MDAwMjI2MDBCOTAwMjI0MTBCOTAwMkU0MDA4OTAwMzYwMDAzQgorOjEwQjBBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwODkwNDIyQ0FENgorOjEwQjBCMDAwMEE5MDBBMjUwMjg5MjAyMDQwMjgxMDAyNjQwMUE5MDA3NAorOjEwQjBDMDAwMjI0QjBCOTAwMjI0MDFCOTAwMkU0MTI4OTAwMjA2MDA2OQorOjEwQjBEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwODFBMDIwNDgwNworOjEwQjBFMDAwMEEzMjAyMDQ4MDgxMDAyMDQ0MDgxMTAyMDREMEExMjAwOQorOjEwQjBGMDAwMjA0MDBCMTEwMjA2MDBCMTMxMkM0ODA4MTQwMjQyMDExNQorOjEwQjEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyQzg1NDMyMTQ3NQorOjEwQjExMDAwMEU4NTAzMjE0NEM4MjhCMjFBNEM4NjkzNjExNEU4NTA2NgorOjEwQjEyMDAwMjIxNDBGODY4MzIxNDBGMDQwMUUxNDBDMDAwMzJFMDNDRQorOjEwQjEzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MUQ3NDQ0RjUxMDNGNDRDQQorOjEwQjE0MDAwMEQ5MTAzNzQ0MEY5MDAzRTQ4MEI5MjAzRTRDMkQ5MTBGQworOjEwQjE1MDAwQkY0MDBGOTIwM0U1MDRGOTMwM0U0NDBGOTQ0M0U2MDZFNgorOjEwQjE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIyQ0RBMTMzNjEzOAorOjEwQjE3MDAwMENEOEQzMzQxMENEQTgzRTYwOEU5QzkzQTcwOENEODAwOAorOjEwQjE4MDAwMzM0MDBFOUFEMzM2QTBDOTgwMzI2MDBDOTkwMzA2MDA3MgorOjEwQjE5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzg4OEFBMDIwMjgxQQorOjEwQjFBMDAwMDg4MDIyMjAxMjg4NDAyQzI4MDg4QTAyMjIwMDg4MDA2OQorOjEwQjFCMDAwMjIwMDBCOEMwMzIxMDA4OEQwQTIzRTI4OEQwMjBFMDRCMQorOjEwQjFDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDRTIwQTE0ODIwNTJGOQorOjEwQjFEMDAwMjkxMDAyMjQwMzgxMDAyQzUyMEExMDEyODUxMDkxNDA3QworOjEwQjFFMDAwQTQ0MDBBMTI4MjQ0MDA5MTI4MjQ0MDI4MTIwMjAyMDEzRAorOjEwQjFGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkxNDIyNDBFRgorOjEwQjIwMDAwMDk5MDAyQTQwMTg5MDQyQzQwMDg5MDAyMjQwMDk5MDBBRQorOjEwQjIxMDAwMjI0NDRCMTA0MjI0MTQ5OTAwMjY0MDA4MTAwMjA2MDREMAorOjEwQjIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDQwRTk0MEIyNzg5MgorOjEwQjIzMDAwMEQ5MDBCMjQyMkM5MDMzRTQxMEU5MDAzQTQwMkQ5MDBCNQorOjEwQjI0MDAwMTY1ODA2OTAwQjY0MDJEOTAwMzY0MDBDOTAwQjI4MDQ2NworOjEwQjI1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDAwRDk4MDNFNEFGMAorOjEwQjI2MDAwMEU5MDAzNjQyMEY5MDgzRTQxMEY5MDAzRTQwMEUxMDhDQQorOjEwQjI3MDAwM0U0MDBGOTAwM0M0MDBFMTAwMzg0MDBGOTAwM0NBMDAyNQorOjEwQjI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA5RjA0MEIwMTA4RAorOjEwQjI5MDAwNEMwMDBCMjAwMEY4MDAzQTAwMUMwMDAzRTAwMEM4MDAzRQorOjEwQjJBMDAwMzYwMDBDODAwMzIwMDBDODAwMzIwMDBGODAwMzBBMDQxRgorOjEwQjJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwM0U4ODIzQTI4RQorOjEwQjJDMDAwNDhFMDAwMTk4MEJFODgyRTgwMERBMDQyRTgwMDhFMDA2NAorOjEwQjJEMDAwMjM5MDA4QTAwQTNBMDBEQTAwMzY4MDBCQTAwQTBBMDA4MAorOjEwQjJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjM4MDIwRTA3MgorOjEwQjJGMDAwMjgzMEMyMEYxMEIzNDAyOEMwMEIzMDAyRUMxMTgzNDAzRAorOjEwQjMwMDAwMjhEMjBBMzAwMjBDQzA4MzAwMjBDMDBCMzAwMjBBMDA5MQorOjEwQjMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjYwMDIxQzA4OQorOjEwQjMyMDAwMDgyMEMyMUMxMEI1MDAyREM4MEE3MjAyREM0MDg1MDgzNgorOjEwQjMzMDAwMjlBMjFBNzIyMjBDMDA5MzMwMDVDNDBCMzIyMjI4MDA3NQorOjEwQjM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxNjAwQjI4MDMxMjA3NAorOjEwQjM1MDAwMEM1ODAzMUUwMEY3ODAzOUY4MEI3QzIyQ0U0MENGODBCQQorOjEwQjM2MDAwOUI2MDJFM0IwMzFBMDBDN0E4MTFFMDBGNzgwMzJBMDI0NgorOjEwQjM3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNDAwRkEwMDNFQzAwQworOjEwQjM4MDAwMEY5MDIzRTgwMEZCMDAzRUQwMkRCNjAzRUQwMkY5MDAzQworOjEwQjM5MDAwMzI0MDBEQjAwN0VDMDBGQjYwM0VDODBGQjUwM0MyMDY5QgorOjEwQjNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MDMzQTBFOAorOjEwQjNCMDAwMENGODBCMzI0MENFODEzN0YwMENCQzAzRkUwMEZGODQ0QQorOjEwQjNDMDAwMzNFMDJDRjg4M0U2MDJDRjg1MzNGMDBDRkMwMzAwMTQ0NQorOjEwQjNEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkUwMDM1QzZFRgorOjEwQjNFMDAwMjgzMDAyMzA0MDg3MDAyM0MwMDg3QTAyREMwMEJFMDAwQgorOjEwQjNGMDAwMjNDMDA4NzAxMkZFMDA4NzAwMjFDMDA4RjAwMjJBMDQ1MgorOjEwQjQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NTIwQjYwMDIwODBEMQorOjEwQjQxMDAwMDgzMTAyNUMwMTg3MDAyNUMwMDg3MjAyREMwMEI2MDAxQQorOjEwQjQyMDAwMjFEMDA5NzAwMkQ0MDg5MzAwMjBDMDA4NzAwMjAwMDBFNworOjEwQjQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjBFMDI0NjBFMAorOjEwQjQ0MDAwMDgyMDA2NDgwMTgwMDAyMEMwMDgzMDAyQ0MwNEIzMDA2OAorOjEwQjQ1MDAwMjA4NDBCMzAwMkU4MDA5QjAwMjBDMDA4MzAwMjA4MDQ2MgorOjEwQjQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQjlFMDMyODBGOAorOjEwQjQ3MDAwNkNCMDIzNkYwMEMzMDAzN0MxM0NGMDAzRkMwMEZBMDAzRQorOjEwQjQ4MDAwQjBDMDA5RjAwM0VDMTBERjAwNzNDMDBDRjAwQjJBMDAxMQorOjEwQjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzEwRjgwMDNFNDI1OAorOjEwQjRBMDAwMEYyNDAzQTg2MEY4MDAzQ0MxMEZCMDAzRUMwMEY5NDA4MgorOjEwQjRCMDAwM0U4MDA0QjAyM0UxMDBFQjAwM0VDMDBGQjAwM0UwMDA4QgorOjEwQjRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGNDAwRUUwMDNEMzBFQworOjEwQjREMDAwMENDMDAzMTQwMENDQTBCM0MwNEM3MDAzNUMxMERGMDBBMAorOjEwQjRFMDAwM0YwMDBDRjAwM0Y4MDBDRjAwMjNDMDBDRjAwMzAwNDAzNQorOjEwQjRGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NDAwQkE4MTJFNTg3MgorOjEwQjUwMDAwMDg4ODAyMjc4MDg5MjAyMkMwMjhCMDAyMkMwMDg4ODM2NgorOjEwQjUxMDAwMkUyMDA1QjA2MkUzMDA4QjAwMkFDMDA4QjAwMzYwNDAxMworOjEwQjUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQjk4MTJFNDBCOAorOjEwQjUzMDAwMDg4QzA2MjYwMDg4MDAyMkMwMDhCMDE2NkMwMDk4ODg4NworOjEwQjU0MDAwMkUyMDA4QjAwNEUzMDEwQjAwMjhDMDA4MzAwMjIwMDBDMAorOjEwQjU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjAwMDJDQzBGRgorOjEwQjU2MDAwMjgwMDBFMDAxMDgwMDAyMEMwMDgzMjAyMEMwMDgwMDQ2OQorOjEwQjU3MDAwMkUyMDA5MzAwMkM0MTI4MzAwMjhDMDA4MzAwMjQyMDE4NAorOjEwQjU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkEwMDNFMDAwQQorOjEwQjU5MDAwMkM5MTAzMjAwMDhBMDAzM0MwMENGMDAzN0MwMEQ4MDBGQgorOjEwQjVBMDAwMkU0MDBDRjAwM0UwODBDRjAwM0JDMDBDRjAwMzAwMDMwMgorOjEwQjVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkMwMTNGNDAwNgorOjEwQjVDMDAwMEZDMDEzRjAwMEY0MDAzRkMxMEZGNDIzRkMwOEZDMDA4RgorOjEwQjVEMDAwM0YwMDBGRjAwM0YwNDBGRjAwM0ZDMDBGRjAwM0U4MDYwQworOjEwQjVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwQ0QxMDM5QzgyQworOjEwQjVGMDAwMERDMTAzM0M4MEVGOTAyM0Q4MEZGODAwRkUwMENGODBGMAorOjEwQjYwMDAwMUZEMDBGRjkwM0ZGMDBFN0MwMzNDNDBGRjAwM0IwMDBGMQorOjEwQjYxMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBGRTAyODk0MDIzRjAwRQorOjEwQjYyMDAwMDg4NTEwM0MwMDhCMDBBM0RDNEJCMjgyRUMyMDhCMDAyMQorOjEwQjYzMDAwMjZDMDRCQjAwMkVDMTBCOTA0MkFDOTBCQjU4MEYwMDQ0NworOjEwQjY0MDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwODE2NDI4QzQ2MAorOjEwQjY1MDAwMDlCMjBBMENGMEEzMjAyMEM4MEIzMjAyRUMwMjgzMDhDNgorOjEwQjY2MDAwMkNDODA5MzIwMkNDODBBQkEwMjBDODBCMzIwMEIyMDEzQQorOjEwQjY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzEwODkwMDIyQzA1RQorOjEwQjY4MDAwMDhCMjEyMkMwMjBCMDAyMkMwMEJCODAyRUMwMDhCMDA5NworOjEwQjY5MDAwMjZDMDRCQjA0NkVDMDBCOTAwMEFDMDBCQjAwMkYwMDQ2MworOjEwQjZBMDAwNjAwMDAwMDAwMDAwMDAwMEQwMTVFQzEwQzlFMDNBQzBCNgorOjEwQjZCMDAwMEQyODAzMkMwMEVCMTAzMkMwMEY4MjAzQzQwMENCMDAxNgorOjEwQjZDMDAwM0VDMTBGQjAwNkVDMDhFOTAwQjJDMDBGQjAxMzkwMDQwMQorOjEwQjZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwRjVBMDNGQzBFOQorOjEwQjZFMDAwMEZFODAzRkMwOEZGMDAzRkMwOEZDMDAzRkMwMEZGMDAxMQorOjEwQjZGMDAwMzdDMDBGRjAwM0ZDMDBGRjA0M0VDMDBGRjAwM0Y4MDA1QQorOjEwQjcwMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwRjk0MDM0QzBBMAorOjEwQjcxMDAwMERCNDAzMkMwMERCNDAzRUMwMkM4MDAzNjQwOEZCMTBGQQorOjEwQjcyMDAwM0VDNjhGQjAwM0VDMDBGOTgwMzJDMDBDQjAwQjE0MDQ5RAorOjEwQjczMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRTIwRTlDODM3RDQwMgorOjEwQjc0MDAwNDhBQTIyMUMwMDhCMDA2RkUwMDg4NTgyRUQ0MEJCODQ3NAorOjEwQjc1MDAwMkZDMDRCQjgwM0FENDBCMzAwMjNENDA4RjcwMjMyMDAyQQorOjEwQjc2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDE0QzAwQjE2NEE0QzBGMworOjEwQjc3MDAwMDkyMDBBMEMwNEI4MDA2Q0MwMDgzODAyQzg0MEIzODAyNQorOjEwQjc4MDAwMkNEMTBCMzAwMkNDMDRCMzAwMjhDMDA4MzAwMjNBMDBBMAorOjEwQjc5MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDExRTAwQTU4MDI1RTA2MAorOjEwQjdBMDAwODgzQTEyMUUwMEE2OTAyREUyMDg3OTAyREEwMEI3ODJDQworOjEwQjdCMDAwMkRFMDAzNzg4MjlFMDBCQ0MxMjlFMDA4NzgwMjJDMTA5RAorOjEwQjdDMDAwNDAwMDAwMDAwMDAwMDAwMDQ5MDgwQzAwRjMwMDM0QzBGNQorOjEwQjdEMDAwMEQzRTAzMEMwMEYwNDAyRUMwMEMzMDQzQzgwMEYzMDBCNworOjEwQjdFMDAwM0NDMDA3MzAwM0NDODBGMjAwMzhDMDBDMzAwMzEyMDI5QQorOjEwQjdGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTlCRDIwRjcwMDNGQzIxQgorOjEwQjgwMDAwMEZGMTBCREMyMERFMDQzRkQyMDdGMDEzRjg0MEZGMDBGRAorOjEwQjgxMDAwM0ZDMDA3RjAwM0ZDMDBGRDAwMzdDMDBGNzAwM0QwMDZFNworOjEwQjgyMDAwNjAwMDAwMDAwMDAwMDAwMEFBMDVDRjAwREMwMDNFQ0E1NgorOjEwQjgzMDAwMEZBMDAwQUM5MkM5MDAzMkMwMEZCMDExQTQwOEZCMDBFOQorOjEwQjg0MDAwMkVDMDRGQjAyM0VDMDBGOTAwM0VDNDBGQjAwM0VBMDA1NQorOjEwQjg1MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5QzAwODQwMDAxQzAzRQorOjEwQjg2MDAwNEI3MDIyMUNDMDg3MDAyMUMwNEI3MDAyMUMwMEI3MDEyNgorOjEwQjg3MDAwMjVEODBCNzAyMkRDMDBCNjAwMkRDMDBCNzIyMkYyMDQxQQorOjEwQjg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTgwOTc4MEE5RTAxQQorOjEwQjg5MDAwMEJGODAyQ0UwODg1ODAyOUU4MEJGQzAyMTcwMEI3ODA2MAorOjEwQjhBMDAwMkRFMDhCNzgwMkRFMDBCNEMwMkRFODBCNzkwMkUwMDBCOQorOjEwQjhCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwOEEwQzA1NQorOjEwQjhDMDAwOEIzQzAyNEMwMDgzMDBBMEMwMUIzQzBBMEYyOUIzMDAzNAorOjEwQjhEMDAwMjRDMDBCMzAwMkNDMDBCMzgwMkNDMDBCMzAwMkQyMDQ0OQorOjEwQjhFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwREUwMDNBODBFQgorOjEwQjhGMDAwMEZFQTAyRTgwMENFMDAzQTgwMEZFMDAzMzgwMEZBMDBCOQorOjEwQjkwMDAwM0U4MDBGQTAwM0U4MDBGRTAwM0U4MDBCQTAwM0ZBMDQ3NworOjEwQjkxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwNEJBMDFFOAorOjEwQjkyMDAwMEY4MjBCODAwNEY4ODAzRTAwMEY4NjAzNjAwMEY4MDA1MQorOjEwQjkzMDAwMzYwMDBGODAyM0UxMDBGODAwM0UwMDBGODAwM0QyMDBBNAorOjEwQjk0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDMyNDA1RgorOjEwQjk1MDAwMEY5MDAzRTQwMDQ5MDAzMjQwMEI5MDAzMjQwMDQ5MDA5QgorOjEwQjk2MDAwM0M0MDBEOTAwM0U0MDhDOTAwM0U2MDBDOTAwMzAyMDRDMworOjEwQjk3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEyNjRCMAorOjEwQjk4MDAwMEIxODAyMjUwMEQxNTAzNjUwNEU5MDBBMjQwMjg5NDBFRgorOjEwQjk5MDAwM0E1MTA4OTQwMkU1MjI4OTQ0MkU2MDI4OTAwQTIwMDAzQQorOjEwQjlBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQjEwODIyNDAyRgorOjEwQjlCMDAwNEI5MjgyQTUwMEE5MDgyMjUwMEExMDAyMEMwMEE5NDA0RgorOjEwQjlDMDAwNkU1MDBCOTQwMkM0MDQ4OTQ0NkM0ODg4MTAwMjQ2MDBFRgorOjEwQjlEMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDQwNDAwQjE0MEUwNDAwRQorOjEwQjlFMDAwMUIxNDBBMDQwMEI5MDAyNDQwMUExMDIyMDQwMEExMDAwQworOjEwQjlGMDAwMjg0MDBBMTAxMkM0MDA4MTAyNkM0MDA4MTIwMjQyMDE2MQorOjEwQkEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDA4QjAwMDMyMDAyNworOjEwQkExMDAwNEY4MDAyQTE1MEUwNTAzMjE0MEVBNTIzMjE0MEU4NTA3RgorOjEwQkEyMDAwM0UxNDBGODUwM0UxNDBDODUwMUUxNDBDODU0MzZFMDM3RAorOjEwQkEzMDAwNTAwMDAwMDAwMDAwMDAwMEQ4MTlFNTAwRkQ0MDNFNTAxNQorOjEwQkE0MDAwMEY3NDAzQTUwMDVEMDAzRTUwMEE1MDEzRjQwMEQ5MDBBNgorOjEwQkE1MDAwM0E1MDBEOTAxM0U0MDBGRjAwM0U1MDBGOTEwM0E2MDZFQworOjEwQkE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjkwQkRFODIzNkI5MAorOjEwQkE3MDAwMEJEQTBCMzY4MEM5MDAzMjY4NDY5MDQzRTQwMDQ5MDA3NworOjEwQkE4MDAwMzI2ODBDOTAwMzI0NDBGOTAwMzI2MDBDOUMwM0M2MDExQworOjEwQkE5MDAwNjAwMDAwMDAwMDAwMDAwMDc4MTBFMTAwQjhFMEEyMTE5MgorOjEwQkFBMDAwMEI4RTBBMjMyMjg4ODAyQTMxMjg4ODAyNjIwMDg4ODAyRgorOjEwQkFCMDAwQTIzMDI4ODg4QTIyMDBCOEE4QTIzOTA4Q0EwMkNFMDQ3NworOjEwQkFDMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNTA4MjEwMDAwNDBDQgorOjEwQkFEMDAwMDMxNDgyODU4MEFEMDgyMTUyOTg1MDgyMzQyMzg1MDg1MgorOjEwQkFFMDAwMjE1MjA4NTAwNjU0MDBCNTIwMjE1QTA5NTQwMkQyMDFBRgorOjEwQkFGMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjk2MTIyNDBDRAorOjEwQkIwMDAwMEI5MDA2MDQwMEFEMDA2OTQwMDhEMDAyNzQwMDg1MDA2NworOjEwQkIxMDAwMDE0MDAwNzAwNjc0MDRCNTAwMjM0MDA5RDAwMkM2MDQzOQorOjEwQkIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNDAwRTkwMDMyNDAwMgorOjEwQkIzMDAwNEY5NTBCQTQwMEU5MDAzMjQwOEM5MDAzMjQwMEM5MDAwQgorOjEwQkI0MDAwMzI0MDBDOTAwMzY0MDhGOTAwMzI0MDNEOTAwM0U4MDQ1MQorOjEwQkI1MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDA4RjkwMDNFNDBFOQorOjEwQkI2MDAwNEY5MDhCRTQwNEQ5MDEzRTQwMEQ5MDAzNjQwMEQ5MDE0RAorOjEwQkI3MDAwM0U0MDBGOTAwM0E0MDBGOTAwM0M0MDBFOTAwM0RBMDAxMQorOjEwQkI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjg0MDM2MjBFRgorOjEwQkI5MDAwMTc4NDAzMjAyMUM4MDA3RTAyMkM4MDQzMjAwMEU4MDI4NQorOjEwQkJBMDAwM0UwMTBGODAwM0UwMDBDODQwMUUwMDBGODAwM0NBMDQ1RQorOjEwQkJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyQTg4QjYwMjIzQTAwQgorOjEwQkJDMDAwMEJFQzQyMkIwMEQyODA2RUIxMDhBMDIyMDgwMEVBMDRFMAorOjEwQkJEMDAwM0E4MDlGQTAwM0E4MDA4QTA0MkU4MDBCQTgwMkNBMDAwNgorOjEwQkJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjIwMEE0RTE2NQorOjEwQkJGMDAwOEJCNDMyNDc0NTgzOTAyQ0Y0NEIzODEyMEU0NEEzMDE4QQorOjEwQkMwMDAwMkNDMDRCMzAwMkNFMDA5MzAwNkNDMDBCMzgwMkNBMDAyRgorOjEwQkMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjc0NDIxQzIzOQorOjEwQkMyMDAwMEI1NDAyNTQwNTg3MDAyQzQwOUI2QzAyMTgxMEE3MDQ4QgorOjEwQkMzMDAwMjlDMDBBNzAwMjlCMDA5NzA0MEQ4MDBCNjA4MkU4MDAwNworOjEwQkM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjM4MDM1RTA1RQorOjEwQkM1MDAwMEIzODAyNTIxMDg0ODAyREEwMEZGODBCMUUwMEU2ODBENgorOjEwQkM2MDAwMURBMDBCNjgwM0ZFMDJENjgwM0RFMDBGNzgwM0VBMDJCOAorOjEwQkM3MDAwMDAwMDAwMDAwMDAwMDAwMDBBMURBQzAwRkIwMDNFQzFGNworOjEwQkM4MDAwOEI5MDBCODAwQUI4MDEyRTAwMENCMDAzRTgwMEZBMDA3QworOjEwQkM5MDAwM0VDMDBGQTA0M0VDMDBFQjAwM0U4MDBGQTYyM0MyMDI4MworOjEwQkNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkU4MDMzMjA2MAorOjEwQkNCMDAwNEVDOTEyRjY1MEVGOTAzRkUwMEMxOTAwQjY0MkNGMjE2QQorOjEwQkNDMDAwM0ZFMDBFRjkwMkU2QzBGRjgwM0ZFMDRDREMwMzQwMDA5RAorOjEwQkNEMDAwNzAwMDAwMDAwMDAwMDAwMEFBMTE5NDAwQjcwMDgxNDAyRAorOjEwQkNFMDAwMDgwMzAyMTRDNDg3MDEyREM4MDg2QTEyMzg0MDg3MDI2RAorOjEwQkNGMDAwMkRDMDA4NzExMkQyODBCNzAwMkQ4MDA4NjAwMjJBMDQ3RQorOjEwQkQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcxMDIxODBDRgorOjEwQkQxMDAwMDhGNDEyOTQwNEE2MDAyQ0MwMThEMjAyMTQ0ODg2MTAwRAorOjEwQkQyMDAwMkQ4MDBBNjEzMkQ0MDBCNjE4MkRDNDA4NTgwMjAwMTBDNAorOjEwQkQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjMwMDIwQzA1OAorOjEwQkQ0MDAwNDBCMDIyMDQwMDgyODEwQ0MwMDgzMDBBMEEwMDhBMDAzOAorOjEwQkQ1MDAwMkVDMDA4QTAwMkM0MDBCQjAwMkU4MDA4MjAwMjA4MDRFOAorOjEwQkQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRkIwMEEwQzBERgorOjEwQkQ3MDAwMjQ5NDIzQUMxMEVCQTAwRUMwMENCMDAyMkUyMEM5MDBGRQorOjEwQkQ4MDAwMkU0MDBFOTAwM0VDMDBGOTgwM0U0MDZDQTAwQjJBMDQ3QworOjEwQkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzAwRkIwMDNFQzBGRQorOjEwQkRBMDAwODk5MDAzMkMwMEZCMDIzRTQwNEZBMDAzNkQwMUZCNDEzNAorOjEwQkRCMDAwM0VDMDhGQjQwM0U4MDBGQjIwM0U1MDBGQTQwM0UwMDAxOAorOjEwQkRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQzMyMEIyQzBFMQorOjEwQkREMDAwMEREMDAzMzgwMENEMDAzRjgwMERGMDAzRkMwMEZEMDJDNAorOjEwQkRFMDAwMzYwMDBDRDAwMzNGMDhGQzA0MTJDMDBDQTAwM0MwNDQ3MgorOjEwQkRGMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAyOEJDODIyQzBFQworOjEwQkUwMDAwMDg5ODBBMkE0MDg5MjAyRTAxOEVCMDEyRUM4MEJCRjBERgorOjEwQkUxMDAwMjJFNTA4QkQwMjJFMDBCQjkwMjJFRDA4QTIwMkUwMDA0MAorOjEwQkUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMTIyMDBBMworOjEwQkUzMDAwNDlBODFFMDQwMDhCMDEyRUMwNDk5MDAyRTQwMEI5MDBGRAorOjEwQkU0MDAwMjI0MDBBOTAwMjJDMDBCOTAwMkE0MDA4ODAwMkUwMDAzQgorOjEwQkU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODEwMDIwNDBCMQorOjEwQkU2MDAwMDgyMDAyMDQwMDgzMDAyQ0MwMEEyMDQyQ0MwMEIzMDA0QQorOjEwQkU3MDAwMjBDMDAyMzAwMjA4ODRCMzA0MDg0MDA4MjAwMkMyMTEyNgorOjEwQkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwOEIwMEIyODA3QworOjEwQkU5MDAwMERCMTAzMjQwMkNCMDEzRUMwNEQ5MDQzRTQwMEY5MDBGNAorOjEwQkVBMDAwQjIwMDJFOTAwQjJDODBGODAwQkFDMDJDODAwM0MwMDM4NworOjEwQkVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwN0QwMDNGQzAwNQorOjEwQkVDMDAwMEY3MjAzRDQwMEZGMDAzRkMwMEVGMTQ3RkMwMEZGMDBEQgorOjEwQkVEMDAwM0JDMDBERjAxM0ZDNTBGRjAwMzdDMDBGRTAwM0U4MDYzNQorOjEwQkVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM0Q0MzMzNGMDQyNworOjEwQkVGMDAwMkNGNjAzMzg2MENDOTBCMzIwMEZGMTIzRjA2MEZGMDFFMworOjEwQkYwMDAwMjNDODBDRjI4QTNDODFERjMwM0Y2NDBDRDgwMzMwMDQzNAorOjEwQkYxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMEMyOEEzMDJFMTg3RgorOjEwQkYyMDAwMDhGNTMwQTU5NDU4MjIyMjIxNEJGMzAyRTEwMDlGNzBCRQorOjEwQkYzMDAwMkJFNDBBRjQxMjFENDBBRjcyMkM0OTJGMzA4MkEwMDY2OAorOjEwQkY0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwODBBMDJDOTgwQworOjEwQkY1MDAwMDgzMjIyMDgwMDgyMDAyODAwMDMzMjAyQzA4NEIzMEM5OQorOjEwQkY2MDAwMjBDMDU4MzI5MjhDMzBBMzIwMkVDMDQ4MTI0MjYyMDE2OQorOjEwQkY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODAwOEIwMDJFMjBGQgorOjEwQkY4MDAwMDhCMDBBMjAwMTk4MDAyQTIyMEJCMDAyRTYwMDlCMDBBQworOjEwQkY5MDAwMjJDMDBBQjAxMkFDMDRBQjAwMkVDMDAzQjAwMkYwMDAwNQorOjEwQkZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNTAwQzgwMDNFQjA4MQorOjEwQkZCMDAwMENCMDAzMjkwMEM4MDAzQTIwNEZCMDAzRTIyMEZCMDE3NworOjEwQkZDMDAwQjBDMDBDQjAwMzJDMDBGQjAyM0M0MTBDOTA0MzQ4MDQ3MQorOjEwQkZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFBMjgwRkU0MDNFMDA3MgorOjEwQkZFMDAwMEZGMDYzRUMwMEJGQzQxNzQyMEZGMDAzRUMwMEZGMDAzQQorOjEwQkZGMDAwMUZDMTBGQjAwMzVDMDBGQjAwM0Y0MDRGRjAwMEI4MDBEMgorOjEwQzAwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAyQzgwMDNFOTA0MworOjEwQzAxMDAwMkNCMDBCMDEwNkNCMDEzRTUwNUZCMDEzMjExMENCMDBCQQorOjEwQzAyMDAwN0VDMDBDQjAwQjJDMDBDQjAwMzJDMDBDOTAwMzEwMDQ2RgorOjEwQzAzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAxOEJEMDJDMzQyRgorOjEwQzA0MDAwNDhGRjAyMzAwMEFBMDQyRTY5MEZGMDAzNjgxMERGMDBEOQorOjEwQzA1MDAwMkZENDBERjAwMjNFMDA1RjA0QjZDMDA4QjAwMzcyMDA5QQorOjEwQzA2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2OTkwODE4MDJDMDA4NQorOjEwQzA3MDAwNDhCODAyMDgwOTk5MDA0Q0IwMEIzMDAyMEMwMDhCMDA0NAorOjEwQzA4MDAwMkNDMDA5QjA0MDBDNDA4MzAwMDA0MDBBOTAwMjMwMDBGMAorOjEwQzA5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODQ4ODJERTRGQworOjEwQzBBMDAwNDgzOTAyMTYwMEI0ODAyREUwMEE3QjA2NUUwMDk3ODBCNgorOjEwQzBCMDAwMkRFMjA5NzgwMjFFOTA5NzgwMjU2NDhBNzgwMjQ4MDA1NAorOjEwQzBDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwRDAwODExMDJDOTY4MAorOjEwQzBEMDAwMDgzMTIzMEMwMDkwMjAzQ0M0MUJCODAyMDg0MEMzMDA2OAorOjEwQzBFMDAwMkNDNDBEMzAwMzBFNDBDMzEwMzBDMDRFMTAwNzFBMTI3RQorOjEwQzBGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwN0QwNTNGQzVBMQorOjEwQzEwMDAwMEZCMTBCRjQwMEVGMDAxRjQ1MEZGMDQzRkMwMUZGNDA5RgorOjEwQzExMDAwM0RDNDFGRjAwNkZDMTBGRjAwM0JDMTJERjEwM0QwMDYwQgorOjEwQzEyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA0Q0IwNDNFQTA2NQorOjEwQzEzMDAwNDRCNjAzMjgwNENCODAzMjgwMEZCMzkzNjAwOEZCMjAwMQorOjEwQzE0MDAwM0VEMjFGQjMwMzJEODBGQjYxN0U0MDhDOTgwMzJBMDBGMgorOjEwQzE1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4NDBDODYwNTJEQzAwRQorOjEwQzE2MDAwMDhGNDgyOEM5MDg1MDBBMUMwMEJGMDAyNUMwMDM3MDBCRgorOjEwQzE3MDAwMkREMDBCNzEwMjFDQzhCNzQ4MkQ0MDBBNzAwMjEyMDQ2MgorOjEwQzE4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDJEQTExQworOjEwQzE5MDAwNjA3ODRBMTZEMEE3ODAyOUUwMEI3ODUyOTYwMUI3OTBCNAorOjEwQzFBMDAwMkRFODBCN0EyMjVFNDBCN0EwMkZFMTQ4NTAyMjMwMDBFNAorOjEwQzFCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODM4NDJDQzAzNAorOjEwQzFDMDAwMDgzMDAyQTQxMDgzQ0IyOEUwMEIzMDJBNEY0MDkzMDBBNAorOjEwQzFEMDAwMkNDMDBCMzAwMjRDMTBCMzAyMkNDMEFBMzAwMjEyMDQ0NworOjEwQzFFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwQ0VBMDNGODAzRAorOjEwQzFGMDAwNENBMDJCM0EwMENFNDAzQkI4MEZBMDAzQjkwMEJBMDBDOAorOjEwQzIwMDAwM0U4MDBGQTAwMzY4MDBGQTAwN0U4MDFDQTAwQjNBMDQ1OQorOjEwQzIxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAyRjgwMDNFMDQ1QQorOjEwQzIyMDAwOEYwMDAzRTA0QUY4MTAyNjE4MEY4MDAzQTA4MEY4MDI2MAorOjEwQzIzMDAwM0UwMDhGMDAwQkEwMDBGODAyM0UwMDBGODAxM0QyMDBEQQorOjEwQzI0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwQzkwMDMyNDA2NworOjEwQzI1MDAwNEQ5OTAzMjQwMEM5MDIzRTY4MEY5MDAyMjQwMEU5MDBCMgorOjEwQzI2MDAwMzA0MDhDOTAwMzA0NDBDOTAwM0U0MDBDOTAwMzAyMDQwRgorOjEwQzI3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDIwODkwNjIyNTA4NQorOjEwQzI4MDAwOEI5Q0MyMjQwMEQ5MDEyRTQwMEI5MDQyMjQwOEI5MDE5NgorOjEwQzI5MDAwMjI0NjBEOTAwQTI2MDI4OTAwMkM0MDBBMTAwMjIwMDAzNgorOjEwQzJBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEwNjAwOTE0MDQyNzBEQworOjEwQzJCMDAwMEI5MDEyMkMwMjhCMDAyRTQwMEIxMDIyRTQxMEIxMDBDOAorOjEwQzJDMDAwQTI0MDQ4OTAxMjI0MDg5OTAyMkU0MDA4OTAwMjA2MDBDRAorOjEwQzJEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkyOTEyMEUwNDhBMworOjEwQzJFMDAwMEIxMjAyMDQwMjkxMTAyQ0MwMEIxMDA2ODRDMEIxMTA3NgorOjEwQzJGMDAwMjA0ODg5MTEwMjA1ODA5MTQwMkU0NDJBOTQwMjAyMDFBRgorOjEwQzMwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MDMwMTQ1QgorOjEwQzMxMDAwMEY4NTBCMjFFMDgwNDAzRTAwMEY4NzhCRTEwQ0Y4NkMwRAorOjEwQzMyMDAwMzIwMDg0MDY4MzIwMDREODI4M0UxMDBDMDAwMzJFMDMxQworOjEwQzMzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwQUQxMDNGNDU4MworOjEwQzM0MDAwMEY5MTAzRkMxODdEMjAxRjQxMEY5MDAzNzRDMEY5MjE0OQorOjEwQzM1MDAwM0U0NDBGOTIwMUU0NDBFOTAwM0Q0ODRGRDAwM0U2MDYxOQorOjEwQzM2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNzgwRkRFMDMzNzA0OQorOjEwQzM3MDAwMENEQTAzMjYyMEM5NDAzMTQwMEU5QTAzMjQwMEY5ODBDQworOjEwQzM4MDAwM0I2MDBGOUM4MzM2QTBGOUExQjA0MDBGOTEwM0M2MDAxQgorOjEwQzM5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjkwQjhBMDIyMjhEMQorOjEwQzNBMDAwMjg4ODBBMjIwMjg4QTAyMjAwMDg4ODAyQzI4MEI4ODg1MQorOjEwQzNCMDAwMjIwNDBCOEUwMzIyODBCOEQwMkEyMDBCODgwMkNFMDRFMAorOjEwQzNDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTgwQjE2MTAwNTg4MQorOjEwQzNEMDAwNDgxNjhBMDRBMDg5MDEyMjQwMUExNDg4MDQyMEIxNDAxQQorOjEwQzNFMDAwMjg0MDBCMTAwQTA0MjBCMTJDMjA0QTBCMTIwMkMyMDE3MworOjEwQzNGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTkwQkI0MDIwNDAxMAorOjEwQzQwMDAwMDg5MDAyMjQ0MDg5NDI2MjU4MDgxMDAyRTUwMEI5MDNFRQorOjEwQzQxMDAwMjJDMDBCOTAwMkE0MTQzMTAwMkE0NDBCOTAwMkM2MDRERgorOjEwQzQyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBBNTAwRjkwMTMyNDBFQgorOjEwQzQzMDAwOEM5MDAzMjcwMEMxOTQzMDQwMEU5MDAzMjQwMEY5MDAzMworOjEwQzQ0MDAwM0E0MDBGOTAwMzI0MDBGOTAwMzI2MDA3OTAyN0U4MDU3NgorOjEwQzQ1MDAwMjAwMDAwMDAwMDAwMDAwMDI4MDBBNDE4RjkwMEJFNDRERAorOjEwQzQ2MDAwMEY5MDAzQzQwMEY5MDBCRTYxOEY5MDAzQTQwMEYxMDA5NworOjEwQzQ3MDAwMUU0MDBGMTAwMzI0MDhGOTAwN0U0MDBGOTAwM0NBMDBFRAorOjEwQzQ4MDAwMjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgxRjgwMDMyMDQwNAorOjEwQzQ5MDAwMEMwMEQzMjEwMEQ4MDQzQTE0OUM4MDAzMjEwMUM4MDA2OQorOjEwQzRBMDAwMzYwMDBDODAxMzIwMTBDODAwMzIwMDJDODAwM0NBMDQxMAorOjEwQzRCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQzQTAwQkU4NDIzODUwQworOjEwQzRDMDAwMDhFQzgzNjgwNDhBMDAyRjkwNERBMDAyMjgwMURBMDA0RQorOjEwQzREMDAwMjNCMDBBQTAwMjJBMDhEQTAxMjI4MDBGQTAwMkNBMDBCMworOjEwQzRFMDAwMDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQkJGMDIwQzA0OAorOjEwQzRGMDAwMDgzQzBBMEMwMDkzMDEyOEM4ODkzMDA2NEMwMDgzMDJDRQorOjEwQzUwMDAwMkNGNjA4MzAwMjA0MDBBMzAwMjBDMDBBMzAwMkNBMDA0MgorOjEwQzUxMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRDExQjMwMEEwQzA2OQorOjEwQzUyMDAwMDg1MDAyNUMxMDg3MDE2RDgxNDkzMjUyMUVDMzg3MDA5QQorOjEwQzUzMDAwMjhFMDBBMzIyNjFGMDAzNzAwMjNFMDBCNzIwMkM4MDBGMQorOjEwQzU0MDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgxMjAwQjc4MjMxMjBERgorOjEwQzU1MDAwMDgwODM3MEYwOEQ3RTAzOTYwMTk3QTBCNUUwQzgzQjJGMAorOjEwQzU2MDAwN0RFMDBDN0EwQjNFMDJBRkEwQjFFMDBFN0EwM0NBMDI2NgorOjEwQzU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBMDEwRkIwMDNFQzBFRAorOjEwQzU4MDAwNkZCMDQzRUMxMUZCMDAzRTQwMEZCNTAzRUMyMEZCNTBCNQorOjEwQzU5MDAwMzYwMDBGQjU0M0U1QTFEQjc4M0VDMDBGQjQwM0MyMDZGOQorOjEwQzVBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwRkZBMDNGQTA2QQorOjEwQzVCMDAwMERDOTEzM0UwMENGRDAzREU4MDJGRjEzM0UwMENGODJFRAorOjEwQzVDMDAwM0Y2MDBDRkMyMzNFMTBFRjgwMzNGMjBDRkM4MzEwMDAyNAorOjEwQzVEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjUwMTJERDBBMworOjEwQzVFMDAwMDg1ODAyMUM0MDU3MTAyRDVBMjgzMTAyQkMwMTk3MTBFMAorOjEwQzVGMDAwMkQwMDBBNzAwMjg0MDRDRjAwMjlDMDBBRjAwMjJBMDQyOAorOjEwQzYwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwQjcyQTJEODJBQQorOjEwQzYxMDAwMDg0MjIyM0MwMDg3MTEwRENDODgzMjAyMUQwMDk3MDA5MQorOjEwQzYyMDAwMkNDNDA4MzAwMjE0MDBBNzAwMjNDMDA5NzA4MjAwMDA0NworOjEwQzYzMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDMDIwQjAyMDJDNTAzQQorOjEwQzY0MDAwMDgxMDAyMkRDMDkzRTIyQzIxMDgzMDAyMEUwODkzMDAzRQorOjEwQzY1MDAwMkM0MDBBMzAwMjhDMDA5MzAwMkFDMDBCMzAwMjE4MDREMAorOjEwQzY2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRjhDMDNFODBCQgorOjEwQzY3MDAwMkNBMDBCM0YwMEM3NjAzRUQwMENGMDBCM0MwMENGMDA1RAorOjEwQzY4MDAwM0U4MDBDRjAwQjJDMDBFRjAwMzNDMTBERjAwQjJBMDRBMAorOjEwQzY5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzQwRjM0MDNFNTBDRAorOjEwQzZBMDAwOEVCNDAzRUMxMEZCMDAzRTA5MEZCMDEzRUM0MkVCMDAxQworOjEwQzZCMDAwM0MwMDhGQjAxM0M0MTFFMzAwM0VDMDBFQjAwM0UwMDA5NQorOjEwQzZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkM4MDMxMjI1RQorOjEwQzZEMDAwMENBODAzM0MwMENGMDAzM0EwMEVGMDAzREMwMENGMDAxOQorOjEwQzZFMDAwMUZGMDBDRjAwM0Y0MDBDRjAyMzNDMDBDRjAwMjAwNTQzMgorOjEwQzZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RjAwQkJDMDIyNzAwOQorOjEwQzcwMDAwMEFCOTQyMkMxMDhCMDA3NjExODNCMDAyRUMxMEFCMDBGQQorOjEwQzcxMDAwMkVCMDBBQjAwM0VDMDQ4QjAwQTJDMDI4QjAwMjIwNDA2NworOjEwQzcyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2NTQwQjgyMDIyNDQ5MQorOjEwQzczMDAwNTgzNDBBMkMwMDhCMDAyMjg0NEJCMDAyRUMwMDhCMDA5MgorOjEwQzc0MDAwNkVDMDA4QjA0MkU2MDQ4QjAwMDJDMDA4MzAwMkEwMDFBRgorOjEwQzc1MDAwNDAwMDAwMDAwMDAwMDAwMDBDMDAwMDAwQjEwMDIwQzBGQworOjEwQzc2MDAwMEEzMDBBMEMwMDhCMDMyNDgwMEIzMDAyQ0MwMEEzMDA5QgorOjEwQzc3MDAwNkMwMDBBMzAwMjhEMDA4MzAwMjBDMDE4MzAwMjgyMDA1NQorOjEwQzc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2NDAwRjgwMDMwMDAxNQorOjEwQzc5MDAwNENBMDBCMkMwMkNGMDAyMjQwMEVGNTAzRkMwMENGMDE3MQorOjEwQzdBMDAwM0UwMDBDRjAxMkREMDJDRjAyMzNDMDRDRjAwQjgwMDNEMAorOjEwQzdCMDAwMTAwMDAwMDAwMDAwMDAwMEE0MTlGMDAwRkMwMDNGNDA0MQorOjEwQzdDMDAwMEZCMTAzREMwMEJGMDEzRjAwMEZGMjIzRkMxMEZGMDA5QworOjEwQzdEMDAwM0YwMDBGRjAwMUY0ODRGRjAwM0RDMDRGRjAxMzY4MDZFNgorOjEwQzdFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwREY4MDMzQzg3QworOjEwQzdGMDAwMENGODAzM0MwQTlGQzAzRkYwMDhCODAyM0UwMEZGODBERgorOjEwQzgwMDAwM0ZEODBDRjk2MTJFNDA2RjkwM0ZFNDhGRjE4MzMwMDBFOAorOjEwQzgxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzA0OEI4MDIzRjAwQQorOjEwQzgyMDAwMDhCODAyM0Q0MEFCMDAwRTA4NDgyMjgyNkMyMEJCMDBENQorOjEwQzgzMDAwMkZEMDQ4QjAwMjJDMDBCQjAwMkVDMTBCQjAwMjMwMDQzOAorOjEwQzg0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAyODMwMUEwQzU3NAorOjEwQzg1MDAwMDhCMDRBNENBMDgwMjQyOEM4MDkzMjAyNEMwMEIzMDgxMgorOjEwQzg2MDAwMkVEMTI5QjIzQTBDODRBMzIxMkNDODRCQjIwQTMyMDEzMgorOjEwQzg3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4OEIwMDIyQzA1MgorOjEwQzg4MDAwMDhCMDAyNEMwMDg4MjEyNDIxMDlCMDQ2NkMwMEJCMDY4OAorOjEwQzg5MDAwMkVDMDA5QjAwMjJDMTBCQjAwMkVDMDBCQjAwMjMwMDQxOQorOjEwQzhBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQ0IwMDMyQzAyQQorOjEwQzhCMDAwMENCOTAyNkMwMENCQzgzQUMwMkQ5MDBCMkMwOEZCMDBDMQorOjEwQzhDMDAwM0VDMDBEMzA0MjJDMDBFQjAwM0VDMDBGQjAxMzAwMDQwMAorOjEwQzhEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUYwMDNEQzA1RgorOjEwQzhFMDAwMEZGMDAzQkMwNkVGODIzRjQwNEVDOTgzQkMwMEZGMDAzRgorOjEwQzhGMDAwN0ZDMDFDRjAxMzdDMDBGRjA0M0ZDMDBGRjAwM0Y4MDA2MgorOjEwQzkwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMjNFQzBEMAorOjEwQzkxMDAwMEVCMDAzQUMyMEQ4NDAzRUMwOEM5MDBCMkMwMEZCMDAyNgorOjEwQzkyMDAwM0VDOTBEQjAzM0VDMDhGQjAyM0VDMDBGQjAwQjU0MDRGRgorOjEwQzkzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjMwMDJGQzAzQworOjEwQzk0MDAwMEIzMDEyRkMwMDg4QTAyRTQwMjg5NDAyMkMxMEJCMDQ0RgorOjEwQzk1MDAwMkRDMDI4QjAwMkVDMDBCQjAwMkVDMDBCNzIwNjMyMDBDNgorOjEwQzk2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDJDRTA3NworOjEwQzk3MDAwMEExMDAyQ0QwMDkzMDAyQ0MwMDhCMDAyNEMwMEIzMDA5NgorOjEwQzk4MDAwMjhDMDA4MzAwMkNDMDBCMzAwMkNDMDBCMzAwMjNBMDBBMworOjEwQzk5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTQwQjc4MDJERTI4MgorOjEwQzlBMDAwMEI1ODAyREUwMjk3ODEyRkEwMDg2ODAyNUUwMEI3ODE1MworOjEwQzlCMDAwMkZFMDA4NzkwMkRFMDBCNzgxMkRFMDBCNzgwMjNDMDAwMQorOjEwQzlDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMwMDNDQzBEQworOjEwQzlEMDAwMEUzMjAzQ0M4MEQzMDAzQ0M0MEMzOTAzNEMwOEYzMUE0QworOjEwQzlFMDAwM0NDNjBEMzAwM0NFMjBGMzA4M0NDMDBGMzAwMzUyMDI4QQorOjEwQzlGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURBQzAwRkIwMDJFQzA0NQorOjEwQ0EwMDAwMEJCMDAzQ0MyMEVCMDAzQzgwMEZCMDQxQUMwMEZCMDAyRQorOjEwQ0ExMDAwM0NDMjBGQjAwM0VDNDBGQjAwM0VDMDBGMzAwM0QwMDYxOQorOjEwQ0EyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAyQzM4MDMwQ0VDOAorOjEwQ0EzMDAwMEQ5ODAzQUNBMEMzODBCMkMwMEZCMDAzRUMwMEZCMDBBNAorOjEwQ0E0MDAwM0VEMjRGQjAwOTJFMDg0QjAxM0VDMDI0QjAwM0VBMDA4RAorOjEwQ0E1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTIxQzAwOAorOjEwQ0E2MDAwNDg1MDEyNEMwMDg3MDAzNUMwNEI2MDAyREMwNEI3MDEwRgorOjEwQ0E3MDAwMkRDMDBCNzAwMjFDMDA4NzAwMkRDMTBDNzIwMkYyMDQ0NQorOjEwQ0E4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDIzRTBERQorOjEwQ0E5MDAwMDhGODAyREU4MDhGODEyMUUwNEI3ODEyREUwNDM3ODBCNworOjEwQ0FBMDAwMkRFODBCRjgwMjNFMTg4NzgwMkZFMDA5NzkwMkUwMDA5QworOjEwQ0FCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwMEEwQzA0QgorOjEwQ0FDMDAwMjgzMDQyNEMwMDgzMDAyNEMwMEIzODA2Q0MwNEIzMDA0RAorOjEwQ0FEMDAwMkNDMDBCMzAwMjBDMDI4MzAwMkNDMDA4MzAwMkQyMDRBMAorOjEwQ0FFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0EwMDMxODBGNgorOjEwQ0FGMDAwMDhFMDAyOTgwMkNFMDAzMzg0MEJFQTAzRTgwMEJBMDA5MworOjEwQ0IwMDAwM0Y4MTBGQTAwMzI4MDBDQTAwM0U4MDBERTAwM0ZBMDQxNQorOjEwQ0IxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA1NworOjEwQ0IyMDAwMEU4NDIzQTAwMEY4MDAzQTEwMEY4MDAzRTAwMEY4MDAwNAorOjEwQ0IzMDAwM0UxMDBGODAxM0UwMDBGODAwM0UwMDBEODAwM0QyMDA4RAorOjEwQ0I0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDNFNDA0MQorOjEwQ0I1MDAwMEM5QTEzRTQwMEM5MDAzRTQwMEM5ODIzRTQ4MEY5MDBDRAorOjEwQ0I2MDAwM0U0MDJDOTgwMzY0MDBGOTAwM0U0MDBDOTAwM0MyMDQ0MAorOjEwQ0I3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjkwMDJFNDA3MgorOjEwQ0I4MDAwNjg5QzIyRTQwMjg5MDE3QzUwOEQ5ODIyRTQ4MEI5MjBCRgorOjEwQ0I5MDAwMkU1MDQ4MTAwQjI1MDBCOTQ0MkM0MDI4OTAwMEUwMDA4RQorOjEwQ0JBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDJFNTBGRAorOjEwQ0JCMDAwMDg5MDAyRTQwNDg5MDAyRTUwMEE5MjAyRTQwMEI5MDBCMQorOjEwQ0JDMDAwMkM0MDA4OTEwMjI0MDBCOTAwMkU0MDA4OTAwMkM2MDBCMworOjEwQ0JEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNTAwQjEwMTJDNDBFNgorOjEwQ0JFMDAwNDgzMDAyRTQwMDgxMDAyQTQwNEIxMDAyQzQwMEIxMDAyQQorOjEwQ0JGMDAwMENDMDA4OTAwMjBDMDBCMzAwMkU0MDQ4MTIwMkMyMDE4MworOjEwQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQjgwMTNFMDAwOAorOjEwQ0MxMDAwMUM4MDA3RTE1MEM4NTAyRTE0MUU4NTAzRTE0MUY4NTBENgorOjEwQ0MyMDAwM0UxNDBDODUxMzIxNDhGODUwM0UxNDBDODU0M0VFMDM0NgorOjEwQ0MzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTlDNDAwRjkwMDNFNTFBNworOjEwQ0M0MDAwMEY1MDAzRTUwMEZEMDAzRjQwMUREMDAzRjQxMEY5MDAzNAorOjEwQ0M1MDAwM0U1MDBGNTAwMDk0MDBGOTAwM0Q0MDBGOTEwM0U2MDY0RQorOjEwQ0M2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFFNDUwQ0QwMDMxNjBBOQorOjEwQ0M3MDAwMDREMDAzMzY4MEMxNDIyRTUwMUY5NDAzRTUwMEU5MDIyMAorOjEwQ0M4MDAwMkU3MjBBOTAyMjA1MDhFOTQwM0U1MDQwOUMwMzI2MDA3RgorOjEwQ0M5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjgyODgwMDIyMTVEOQorOjEwQ0NBMDAwMDg4MDAyMjM1ODg4QTAyRTI4MEJBQTQyRTI4Mjg4ODA5RQorOjEwQ0NCMDAwMkUzODI4ODgwMjIyODBCOEEwM0EyODA4Q0QwMjBFMDQxNworOjEwQ0NDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEwMEE2NDBGQworOjEwQ0NEMDAwMjgxMDBBMjQyNjk1MDAwRDQwMEI1MDAyNzQwMDg1MDg4OAorOjEwQ0NFMDAwMkY0MDc5RDJBQTE0MDBBNTAxMkY0MDM4NTAwMjEyMDExQQorOjEwQ0NGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwMDI2NDAwMAorOjEwQ0QwMDAwMDg5MTAyMjQxMDlEMDgyRjQwMEJEMDAyRjQwMDhEMDJFMAorOjEwQ0QxMDAwMkY0MDA5RDAwMDM0MDBCRDAwMEI0MDE4NzAwMjA2MDRGQgorOjEwQ0QyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVDNDAwQzkwNTM2NDFFNQorOjEwQ0QzMDAwNEM5MDYzMjQwMEQ5MDAzRTQwMEI5MDAzNDQwOEM5MDA4NgorOjEwQ0Q0MDAwM0U0MDE1MTAwMzI0MDBFOTAwM0M0MDBDOTAwMzI4MDRFOQorOjEwQ0Q1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDA0RjkwMDNBNDAxRgorOjEwQ0Q2MDAwNEY5ODAzRTQwMEU5OTkzRTQwNEY5MDAzRTQyMEY5MEEwQworOjEwQ0Q3MDAwM0U0MDBFOTA0MzY0MjRGOTA4M0E0MjBGOTA4QkRBMDA0QgorOjEwQ0Q4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDEyMDA5MQorOjEwQ0Q5MDAwMEM4MDQzRTAwMEM4NDAzMjAwMEY4NDUzRTAxMEY4MDBEQworOjEwQ0RBMDAwM0UwMDBEODAyMzIwMDBEODAwM0UwMDBGODAwMzBBMDRCRgorOjEwQ0RCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAyODIwMEExODg0MQorOjEwQ0RDMDAwMDg2MDIyQzgwMDhBNDAzNkExMEJBMDAyRTkxMEJBNDRDQworOjEwQ0REMDAwMkM4MDBDQTQxMjI5MDI4QTQ0MkU5ODBCQTQwMjBBMDA2QgorOjEwQ0RFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzEwODMwMDIwRTBGNworOjEwQ0RGMDAwMTgzMDkyQzQwODkzNDAyMEUwMEIzMDAyQ0QwMEIzNDBCRAorOjEwQ0UwMDAwMkNDMDBCM0E0MkNEMDA4MzQwMkNEMDBCMzgwMjRBMDA5NAorOjEwQ0UxMDAwNTAwMDAwMDAwMDAwMDAwMEEwNDExQzAwODcwMDIxQzA1RAorOjEwQ0UyMDAwMjg3MDAyRDEwMDlEODAyNUMyNEI2MDAyREMwOEI3MDI0OQorOjEwQ0UzMDAwMkNDMDBBNzQwMkZFMDA4NzAwMkRDMDBCMzQwMjY4MDA2QgorOjEwQ0U0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4NDMxRTA3OAorOjEwQ0U1MDAwMEM2ODAzRDYwMDk3ODAzMUEwMEY1ODEzREUwOEY3ODJDNAorOjEwQ0U2MDAwM0RBMDBGRjgwQkRFMDBDNzgwM0RFMDBGNzg4QjZBMDIxMworOjEwQ0U3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBRDgwRjMwMDNFQzE2RQorOjEwQ0U4MDAwMEZBMDIzQzAwMkU5MDAzRTgxMEY4MDAzRUMwMEZCMDBFRAorOjEwQ0U5MDAwM0VDMDBEQjAxMzJDMDBFQjAwM0VDMDBGQjAwMzgyMDI2OQorOjEwQ0VBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRjMyQzc4MDMzNjAxMgorOjEwQ0VCMDAwMEY3ODAzM0VDODRFODAyMzY0MENGODAzM0EwMENFODBGRQorOjEwQ0VDMDAwMTNFQzA2RDgwMzNBMDBERTgwMzNBNDBDQzgwM0QwMDA2QworOjEwQ0VEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODcxMDAxQzAzNQorOjEwQ0VFMDAwMEI3MDAyMTg1MDg0MDAyQjQ0MDg2MDEyOTgwMDg2MTNCRgorOjEwQ0VGMDAwMjFDNDg4NTAwMjE4ODA4NjAwMjE4MDA4NjEwMkVBMDQ1QgorOjEwQ0YwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDAzRAorOjEwQ0YxMDAwMEJGMTAyNUM4MDA2MDAyMTAwODhEMDAyNUMwMDg3MDBEMworOjEwQ0YyMDAwMjA4OThBRjEwMjFDMDg4NzEwMjE4MTg4NDgwMkM2MDBFNgorOjEwQ0YzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzEwODMwNEEwQzFEOQorOjEwQ0Y0MDAwMEIzMDBBNDgwQzg4MDY2MDM4MDgwNDQyRUMwMThCMDQ1OAorOjEwQ0Y1MDAwMjJDMTA4MzAwQTJDMDA4QjAwMjI4MDAwMjAwMkQ4MDQ1NQorOjEwQ0Y2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQzMwMDIyODBCMworOjEwQ0Y3MDAwOEY5MDAzNjQwQUNCMDJCMkYyMjAzNTEyNjQwQUM5MDAxMgorOjEwQ0Y4MDAwQjI0MDBFQTAwMzI0MEFDOTAwQTI0MDJDQTAwM0VFMDQ2NAorOjEwQ0Y5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDNDODAwRQorOjEwQ0ZBMDAwMEY5MDAzQTUwMERCNDAzRUQwNERCNDEzQTQwOEZCMDE1NQorOjEwQ0ZCMDAwM0VDMDFDQTAwMzZDMDBGQjA0M0U1MDRGQTQwM0UwMDBFNQorOjEwQ0ZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDMzQzAzMgorOjEwQ0ZEMDAwMENFODQzMjYwMERGODBCM0UwMEZGODAzN0MwMENEMDBBRgorOjEwQ0ZFMDAwMzMwNDBDRTAyMzM0NDBDRDAwMjM0MDBDRTAwM0UwMDQ4NAorOjEwQ0ZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzEwQkIwMEEyRDJEMQorOjEwRDAwMDAwMDgyODAyMDQ2MDhCMTkyMkM2MEVCMThBMkU0MDhCOTAyQworOjEwRDAxMDAwMjJDMTA4QTQ4MjJDMDA4QjkwMjI2NDQ4QTQwMkUwMDA2NAorOjEwRDAyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkIwMDIyMDA2MgorOjEwRDAzMDAwMDg5MTJFMjQwMDlCMDAyMkMwOEJCMDEyMjAwNDg4MDA4RgorOjEwRDA0MDAwMjI0MDA4MTAyMjIwMDA4ODAxMkFEMDA4ODA0MkUwMDBGNworOjEwRDA1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwNDIwODAyMQorOjEwRDA2MDAwMDgxMDA2MDQxMDgzMDAyMEMwOEJCMDEyMDAwMDgyMDA1QworOjEwRDA3MDAwMjBDMDI4MTA0MjA5MDY4MjAwMjhDMDA4MjAwMkMyMDFGMAorOjEwRDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3QzAwQkIwMDMyNDBFQQorOjEwRDA5MDAwMkNCMDAzMjQwMEQzMDAzMkMwNUZCNTAzMEMwMkMxMDBFMgorOjEwRDBBMDAwQjIwMDBDQjAwQjA1MDBDMTAwQjhDMDJDODAxM0UwMDMyNworOjEwRDBCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMUREQzAwRkYwMDFGQzBBOQorOjEwRDBDMDAwODdGMDAxRjQwMEZGMDAzRkMwMEU3MDQzRkMxMDdGMDBBQQorOjEwRDBEMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwMzdDMDBGRTAwM0U4MDZGRAorOjEwRDBFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMTg0RkU2MTMxRDgyRQorOjEwRDBGMDAwMENCMkMzRkNFMENDODA3QkMwMEVGMTAzN0NFMENDODM5RgorOjEwRDEwMDAwM0YyMDBGRjBDQjMyNDREQzg0M0YyNTRDRjI0MzMwMDAwQgorOjEwRDExMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNDQ4QjAxMDIyREMyNQorOjEwRDEyMDAwMDhCNjAyRkQ5Mjg4ODUyM0Y0NDBGMTAyRUQwMDg4MkRCNworOjEwRDEzMDAwMEU2MDBCQkMxMjJDMTBBODgyMkUwMDBBRkMyMkEwMDQ0OAorOjEwRDE0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDgwQjMyMjI4QzAyNQorOjEwRDE1MDAwMDgzMDgyQ0MwMTg4MDAyQ0MwNEEzMjAyQ0MwMDAxMDE4OAorOjEwRDE2MDAwMjgwMDRCQjAwMkEwMDA4MDAwMkMwOTA4MzQwMjYyMDFBNAorOjEwRDE3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QjIxMDJBQzEwRAorOjEwRDE4MDAwMDhCMDAyRUMxMDg5ODAyMkMwMDhCMDAyRUMwODg4MDBDOAorOjEwRDE5MDAwMkU0MDgzQjAwMkEwNDBCOTgwMkMyMTBBQjAwMkYwMDRENgorOjEwRDFBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRkEwMEJBQzA2QQorOjEwRDFCMDAwMkNCMDQzRUMwMEMwODAzRUMwOEVCMDAzNEMwQ0M4MTBCNQorOjEwRDFDMDAwM0U4MDhGQjAwMzgyMTBEODgyM0UyODBDQjAwQjUwMDRGMgorOjEwRDFEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkQwMjM3QzFEMQorOjEwRDFFMDAwMEZCMDAzRkMwMEZEMDAzRUMwMEZCMDUzRkMwMkZGMDE3NgorOjEwRDFGMDAwMkZBNDhCRjA4MzdDMDBBRDAyMkY0MDAzNzAwM0I4MDA5NgorOjEwRDIwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwNDMyQzBEMQorOjEwRDIxMDAwNENCMDIzMkMwMEY4NDAzRUMyMENCMDAzMkMwMEZCNDE2NAorOjEwRDIyMDAwMzJDMjBGQjA0MzJEMDBDODUwM0U0MDBDQjAwQjEwMDQ2QQorOjEwRDIzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRjkwQjk1MDAzQzA3NgorOjEwRDI0MDAwMThGMDFBM0MwMEI5MzIyREUwMzhGMDYwM0MwNEY5MDBDNworOjEwRDI1MDAwM0VGMDBCN0M4MDJDMDBEOUMwMkU0MDBERjAwMjMyMDAzNQorOjEwRDI2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QjI0QjIxMDAyQzFBNQorOjEwRDI3MDAwMjgzMDAyNkMwNEIyQzEyQ0MwMDgzMDAwMEMwMEIyMDA4RgorOjEwRDI4MDAwMjgyNDAzM0MwQTAwMDA4MkM4MkNBMDA4MzAwMjM4MDA4MQorOjEwRDI5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwQjQ4MDIxRTRDRQorOjEwRDJBMDAwNDg3QjAyNUUwMEI2ODA2REUyNDg3OTIyMUU0MEFDODQ2NQorOjEwRDJCMDAwMkRFMDBCRkEwMDUyNDA5NjgwMkRFODE5MzgwMjA4MDA0NAorOjEwRDJDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODQwRjMxMEIwQzQwRgorOjEwRDJEMDAwMDgzQTAyNEM5MEYzMTAzQ0NDMDgzMTAzMEM0OUIwNDBBMgorOjEwRDJFMDAwMzAwNTBGMzAwNzIxNDA0MzAxM0VDMjFDMzA0MzEyMDI3QgorOjEwRDJGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzEwRkMxMDNGQzUwNQorOjEwRDMwMDAwMEZGMTAxQkMwNEZGMDQzRkM0MEZCMTRCRkM2NEY3MDBGNAorOjEwRDMxMDAwMzdDMDBGNzI1M0FDNDRGRjAxM0ZDOTBGRjQwM0QwMDY2RQorOjEwRDMyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA4RkEwMDNFRTBFNAorOjEwRDMzMDAwMENCMDAzMkMwMENCMDIzRUNBMEZCMjA3MkUwMERCMDI1QQorOjEwRDM0MDAwMzIwODBGMzEwMzJDMDBDQjA0M0U4MDBDMzUwMzJBMDAzOQorOjEwRDM1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjUwMDJEQzhDNgorOjEwRDM2MDAwMDg3MDBBMUMyMjg3MDAyREM5MEJGMjgyOUM4MEE2MDAzRgorOjEwRDM3MDAwMDk4QjBCNzAwQTFDMDI4NTAwMkQ0MDA4NzAwMjkyMDQ3NAorOjEwRDM4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJDRUM5MAorOjEwRDM5MDAwMDg3QjAyNUU0MDg1ODkyREVDOEI3QjAyNEU4NDhGODA1QQorOjEwRDNBMDAwMjU2NDBCRkEwMjEyMDg5NzgwNkZFMTA4N0EwMjMwMDBCOAorOjEwRDNCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzIwQjM2NDJDQzAwMgorOjEwRDNDMDAwMDgzMDA2MEMxMDgzOEE2Q0MwNUIzMDQyQ0MwMEFCMTA3NgorOjEwRDNEMDAwMkNGMjBCMzAwMjBEMDA5MzA0MkNENTA4MzAwQTkyMDQ3NQorOjEwRDNFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjAwRkVDMDNFODBEOQorOjEwRDNGMDAwMkNBMDAzNjgwMEM2NDAzRjgwMEZBMDAyNjgwMENFNDQwNgorOjEwRDQwMDAwMzY5MDRGNjAwMzFCNzBERUQ4M0ZBMDBDMjAwMzNBMDQxNworOjEwRDQxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDNFMDBGRQorOjEwRDQyMDAwMEY4MDAzQTAxMEY4NDIzRTEwMUY4MDAzQTAwMEU4MENGQworOjEwRDQzMDAwM0EwNDFGODAwM0UwMDBFODQ1N0UwMjJGODAwM0QyMDBGQgorOjEwRDQ0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTA2NDAwRTk4MDMyNDA1NQorOjEwRDQ1MDAwMEY5MDBCMDQwOEQ5ODAzNjQwMEYxMDEzMjQwOEY5MDBGMAorOjEwRDQ2MDAwNzI3MDBGOTExMzI0MTBDOTEwM0U2OTBDOTAwMzAyMDRDRQorOjEwRDQ3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA4Qjk4MDIyNDBGMQorOjEwRDQ4MDAwMEIxMDAyMjQwMDg5QzQyMjUyMEI5MDQyMjQwMEI5MDBFMAorOjEwRDQ5MDAwMjJFMDBCOTAxMjI0MDREOTRBMkU2MDA4OTAwMzYwMDAwOQorOjEwRDRBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjExODIyNDAwMAorOjEwRDRCMDAwMEI5MDAyMjQwMDhCMjAyNjQ5MEI5MDAyNjQwMEI5MDBENworOjEwRDRDMDAwQTI0MDBCOTA4QTI0MDA4QjAwMkM0MEE4OTAwMjA2MDBGQQorOjEwRDREMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0QjEyMEEwNDhCRgorOjEwRDRFMDAwMEIxMTA2MDQwMDgzMDAwMDQwNEIxMTAyMDQ0OUIxMTBFNworOjEwRDRGMDAwMjg0MDBCMTAwMjI0NDE5MTAwMkM1MDA4MTAwMjQyMDFEOAorOjEwRDUwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OTQwRTg1MDMyMTQyRgorOjEwRDUxMDAwMEY4NjkzMjFFMkM4MDAzNjBBMEI4NjhCNjFBOEY4NDA3QgorOjEwRDUyMDAwMjI4MDBGODJBMzIxMDhDODAyM0UwMDBDODA0MzJFMDNGNAorOjEwRDUzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQ4RkQxMjNFNDQxOQorOjEwRDU0MDAwMEYxMjAzQzQwMDdEMDExRTQwMEI5MjAzRTQ4MEY1MjBGRQorOjEwRDU1MDAwMzY0MDBGOTAwM0Q0OTA3RDAwM0Q0MDBGOTQwM0U2MDZDMworOjEwRDU2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFGNkMxREQ4ODMyNzI3MgorOjEwRDU3MDAwMEM5ODAzMjYyMkREMDAzRjYyMkM5OTgzNDZBMEM5NDAwNworOjEwRDU4MDAwQjI0MDBGRDgwMzI0MDBGRDAwMzM1MTJDRDg4MzA2MDA4RAorOjEwRDU5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFM0MyODhDMDIyMzA5NAorOjEwRDVBMDAwMDg4QzQyMjIxMThBMDEyRTAwMDg4ODUyMjMwMDgwQTM5MQorOjEwRDVCMDAwMkEwMDRCODA0MjIyQTBCODAwMjIyODA4ODQwMjhFMDQ1MAorOjEwRDVDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEyRDIwNDg0NAorOjEwRDVEMDAwNjgxNDgwMDQyMDgxMDAyRTQwMEIxMjEyMDQyNDgxMjA0NAorOjEwRDVFMDAwMjA0MDBCOTQzMjA0OTBCOTAwMjA0MDQ4MTA0QTAyMDFCOAorOjEwRDVGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkyMDIyNDBERgorOjEwRDYwMDAwMDg5MDEyMjQwMDg5MDAyRTQwMDg5MDAyMjQwODg5NDBDNgorOjEwRDYxMDAwMjI1MDBCQjAwMjI0MjBCOTA5QTI0NDA4OTAwMjg2MDRDQgorOjEwRDYyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRDkwOEIyNDAyRQorOjEwRDYzMDAwNEMxMDIzMDQwNEQ5QzEzRTQwOEY5MDBCMDQwOEMxNDAxNAorOjEwRDY0MDAwMTI0MDBGOTA0MzI0MDRGMTQxMzA3ODBDOTAwMzI4MDREOQorOjEwRDY1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NjY0Rjk4MDNFNDA1MAorOjEwRDY2MDAwMEY5MDBCRTQwMEY5OTgzRTQwMkYxMDAzQTQwMkY5MTAyQworOjEwRDY3MDAwM0U0MDBGOTAwQkU2NDBGOTkwM0U2MDBGOTAwM0NBMDBDOQorOjEwRDY4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzg0MTMyMDAyNworOjEwRDY5MDAwMEM4MDA3MjAxMEM4MTAzRTBDMEU4MDAzRTAwNEM4MDA2OAorOjEwRDZBMDAwQkEwMDBGODE0MzIwMDBGODcwM0UwMDBGMDAwQjBBMDRGRgorOjEwRDZCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzOTAyOEUyMEEzODAxMQorOjEwRDZDMDAwMjhFMDBBMzgxMEFFMDQzREExOEVFMDAyRjgwMDhFMDA3QQorOjEwRDZEMDAwNzY4MDBCNjAwMzc4MDBCRTQwMkY4MjBCQTAwM0NBMDA0NworOjEwRDZFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwOEI4ODIyQzA4QgorOjEwRDZGMDAwMTgzMDAyMEMwMDgzNDQyQ0QwMUIzMDEyQ0MwNjgzMDA1RgorOjEwRDcwMDAwMjBDMTBCMzA4MjBDMDFCMzAwMkM0MDBCMzAwMjBBMDAwOAorOjEwRDcxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwODUwMDIwQ0M4QgorOjEwRDcyMDAwMDg3MDA2MUM4NEE3MDEyOUMwMEI3MjIyREM4MDg3MzQ5NAorOjEwRDczMDAwNjE4MDBCMTAwMjVDMDBCNzAwMkRDMDBCNzAwMkU4MDA4NgorOjEwRDc0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgwRTAwOEM4MDMxRTBCRQorOjEwRDc1MDAwMENGRTAyM0YwMEM1ODAyREUwMEU3ODAzREZBMEM3QTBCRAorOjEwRDc2MDAwMjE2MDBGNzgwMzFFODBGNzgwM0RFMDBGNzgwMzJBMDJDNgorOjEwRDc3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFQzBFMQorOjEwRDc4MDAwMEZCMDAzRUMwMEZBMDAzRUMwMDZCMDAzRUM4MEZCMjhBQgorOjEwRDc5MDAwMzZEODRGQTAwM0VDMTBGQTAwM0U1MDBGMzAwM0MyMDZGQgorOjEwRDdBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0M4MEIzRTAzQgorOjEwRDdCMDAwMEZGODAzM0UwMENGOTAzRjYwNEZGOEMzM0UwMEVGODA2QworOjEwRDdDMDAwMzNGMDBDN0EwMzNFNzBDNTkwMzNGMTBDNzgwMzAwMDBGRgorOjEwRDdEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCODAwODcwMDIxQzAwMAorOjEwRDdFMDAwMEI3MDRBMUMwMDg3MTAyREMwNEI3MTBBM0M0NDhGMTJFRAorOjEwRDdGMDAwMjE4NjBENzIwMjFFMDA4NzAwMjM0MDA4NzAwQTJBMDQ0OQorOjEwRDgwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODQwMDI1QzBCMworOjEwRDgxMDAwMEI3MTBBMEMwMEE3MTIyRDg0MEI3MDBBMUMwMEI3MDhBQworOjEwRDgyMDAwMjM0MDA5RjMxQTVDODY5NzA4MjU0MDA4NzAwMjAwMDAxRgorOjEwRDgzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzIwODEyMDI2QzAyMQorOjEwRDg0MDAwMEIzMDAyMkMwMDgyNDIyQzgwMEIzMDIyMEMwODlCODA3MworOjEwRDg1MDAwMjBFMDA5MjAwMjREMDg5MjAwMjRFNTA4MzAwQTA4MDQ1RgorOjEwRDg2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRTgyQ0FFMEI3QzA3QQorOjEwRDg3MDAwMEZGMDEzM0MwQUM5QzgzRTQwMEZGMDAzM0MwNEZGODQ3QworOjEwRDg4MDAwMzJDMDBEOTAxMzdDMDBEOTAwRjZDMDJDMTAwMzJBMDQ3RQorOjEwRDg5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNDAwRjMwMDNBQzFENgorOjEwRDhBMDAwNEZCMDAzRUMwMEY5MDgzQzAwMEYzMDEzRUMwMEVCMDQyMAorOjEwRDhCMDAwQkUxODBGOTAyM0FDNjBFOTAyM0E0MDRGOTAwM0UwMDA5RAorOjEwRDhDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQ0EwMDMzQzA1RQorOjEwRDhEMDAwMENGMDAzRkMwMENEMDI3RjQwMENGMDQyM0MwMENGMDg2RQorOjEwRDhFMDAwMzcxMDBGRDAwM0ZDMTBDRDA4M0Y2NjJDRDkwMzAwNDQzRAorOjEwRDhGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2MzgwOEJFMDIyQzA0MworOjEwRDkwMDAwMDhCMDIyRUMwMEQ4ODA2RTIwNjhCMDFBMkMwMUZCMDAxMQorOjEwRDkxMDAwMjIxODBCODg0MzRDMDA4OEEwMkNDMDFEOTAwMjIwNDA4OAorOjEwRDkyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEwODgwOEIyMDIyQzA1MQorOjEwRDkzMDAwMDhCMDIyRUMwMDg4ODgyRTYyNDhCMDFBQ0MwMDhCMDAxOAorOjEwRDk0MDAwMjZDMDRBODgwMkVDMDAwODg0MkU0MDA5OTAwMjIwMDA3QworOjEwRDk1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODMwMDYwQzBEOAorOjEwRDk2MDAwMDgzMDAyQ0MwMDkwMDY2QzAwMDgzMDAyOEMwMEEzMDQ0MgorOjEwRDk3MDAwMjAwMDhCMDAwNjRDMjE4MDAwNkNDMDQ5MTAwQTAyMDE3NworOjEwRDk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyQzFFMQorOjEwRDk5MDAwODhCNDAzRUMxMEM4MDAyRTAwMENCMDBCQkMwODhGMDAzQworOjEwRDlBMDAwMzYwMDA2ODAwM0VDODBDODAyM0ZDMTBDOTAwMzAwMDNFMAorOjEwRDlCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRkYwMDNGQzA2QworOjEwRDlDMDAwMEY3MjgzRkMxOEZDMDMzRjAwOEY3MDAzN0MwMEZGMDA4NAorOjEwRDlEMDAwM0QwMDBGQzAyMzhDMDZGQzAwM0Y0MDBFRDAwM0U4MDYzQworOjEwRDlFMDAwNzAwMDAwMDAwMDAwMDAwMDAwQzU0MTAzNzA0MERDMTAyMgorOjEwRDlGMDAwMzcwNDBEQzEwMzcwNDBEQzEwMzcwNDBEQzEwMTcwNDBDNQorOjEwREEwMDAwOUMxMDE3MTQwNUMxMDM3MDQwREMxMDE3MDQwREMwMzFDMQorOjEwREExMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NDA1NzEwMTVDNDBFQQorOjEwREEyMDAwNTcxMDE1QzQwNTIxMDE1QzQwNTcxMDE1QzQwMTcxMDE0MAorOjEwREEzMDAwNUM0MDE3MTAwNUM0MDU3MTA1NUM0MTU3MTAxNUMwMTFGNQorOjEwREE0MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMjA4MDQ4MjBGQgorOjEwREE1MDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBEQworOjEwREE2MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwNDgwMjBFNworOjEwREE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNjAwMDU4MDA2RQorOjEwREE4MDAwMTYwMDA1ODAwMTYwMDA1ODAwMTYwMDA1ODAwNTYwMDA0MgorOjEwREE5MDAwNTgwMDE2MTgwMTgwMDE2MDAwNTgwMDU2MDAwNTgwMjBDQgorOjEwREFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA1MjIwMTFDODBBNQorOjEwREFCMDAwNDcyMDExQzgwNDcyMDE1QzgwNTcyMDExQzgwNDcyNDFDQworOjEwREFDMDAwNUM4MDU3MjAxMUM4MDQ3MjAxMUM4MDQ3MjAxNUMwMzFBQQorOjEwREFEMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDAwNjAwMDE4MDA3OQorOjEwREFFMDAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDA1MAorOjEwREFGMDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMzE1NworOjEwREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA0MjIwMTA4ODA1OQorOjEwREIxMDAwNDIyMDEwODgwNDIyMDEwODgwNDIyMDEwODAwNDIzMDE0MgorOjEwREIyMDAwMDg4MDQyMjAxMDg4MDQyMjAxMDgwMDQyMjAxMDgwMjEzMQorOjEwREIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0QTA1NDI4MTUwQTAxRQorOjEwREI0MDAwNDQyQzExMEIwNDQyODExMEUwNTQyODExMDIwMDQyODE0MAorOjEwREI1MDAwMTBBMDQ0MzgxMTBCMDU0MjgxMTAyMTE0MjgxNTAwMzEwMgorOjEwREI2MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwQzAxNTcwMDU0QzA2RAorOjEwREI3MDAwMTUzMDA0NEMwMTEzMDA1NEMwMTU3MDA1NEMwMTUzMDBCRQorOjEwREI4MDAwNTRDMDE1MzA4NTRDMDExMzAwNTRDMDE1MzAwNTQwMjE5OAorOjEwREI5MDAwNDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNDAwMDEwMDA3NQorOjEwREJBMDAwMDQwMDAwNDAwMDEwMDAxMDYyMDQwMDAxMDgwNDQxMDA1RAorOjEwREJCMDAwMTAwMDQ0MTgxMTAwMDAxMDAwMTA4MDA0MDAwMTAxMjAyMgorOjEwREJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2MDAyMDgwMDgyMDAyNAorOjEwREJEMDAwMjA4MDA4NjAwMjE4MDA4MjAwMjA4MDA4MjAwMDA4MjBCMQorOjEwREJFMDAwODIwMDAwODA4MDIwMDIxODAwODIwMDIwODAwODAxMzExRAorOjEwREJGMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDA1NjQwMTU4MDAwRQorOjEwREMwMDAwNTYwMDE1ODAwNTYwMDE1ODAwNTY0MDE1ODAwNTYwMDFEQQorOjEwREMxMDAwNTgwMDU2MDAxNTgwMDU2MDAxNTgwMDc2MDAxNTgwMzFDNworOjEwREMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDBCNAorOjEwREMzMDAwMzYwMDBEODAwMzYwMDA5ODAwMzYwMDFEODgwNTYwMDBFNgorOjEwREM0MDAwRDgwMDE2MDAwRDgwMDM2MDAwRDg4MDQ2MDAwRDgwMzE5QQorOjEwREM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0MzA4MTBDMjBEQworOjEwREM2MDAwNDMwODEwQzIwNDMwODEwQzIyNDEwODE4QzIwNDMwODlENAorOjEwREM3MDAwMEMyMDAzMDgxMEMyMDQzMDgxMEMyMDQzMDgxMEMwMTA4RgorOjEwREM4MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMzAwMDBDMDA4OAorOjEwREM5MDAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDA5MgorOjEwRENBMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDFBNQorOjEwRENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMzA4MDRDMjBDNQorOjEwRENDMDAwMTMwODA0QzIwMTMwODA0QzIwMTMwODA0QzMwMTMwODBDMworOjEwRENEMDAwNEMyMDEzMDgwNEMyMDEzMDgwNEMzMDEzMDgwNEMwMjFDQQorOjEwRENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA1NjA4MTU4MjBDRgorOjEwRENGMDAwNTYwODExODIwNTYwODE1ODIwNTYwODExODMwMDYwODEwMgorOjEwREQwMDAwNTgyMDQ2MDgxMTgyMDQ2MDgxMTgzMDU2MDgxNTgwMzA2QQorOjEwREQxMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MjAwMjA4MDA4MjBFNAorOjEwREQyMDAwMDIwODAwODIwMDIwODAwODIwMDIwODAwODIwMDMwODA2MworOjEwREQzMDAwMDgyMDAyMDAwMDgyMDAyMDgwMDgyMDAzMDgwMDgwMzFCMworOjEwREQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0NjA4MTE4MjBBRgorOjEwREQ1MDAwNDY0ODExOTIwNDYwODExOTIwNDYyODExODIwMDM0ODFCRQorOjEwREQ2MDAwMTgyMDQ2NDgxMTkyMDQ2MDgxMTgyMDQzMDgxMTgwMTE0MAorOjEwREQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU2MDA0NTgwMTU2MDBDQgorOjEwREQ4MDAwNTU4MDE1NjAwNDU4MDExNjAwNTU4MDAxNjAwNDE4MDE4MworOjEwREQ5MDAwNTYwMDQ1ODAxMTYwMDQ1ODAxMTYwMDQxODAxMTQwMzE0MQorOjEwRERBMDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwNjAxNDE4MDUwNjAyQgorOjEwRERCMDAwMTQxODA1MDYwMTQxODA1MDYwMDQxODA1MDYwMDQxODBEMgorOjEwRERDMDAwMTA2MDE0MTgwNTA2MDE0MTgwNTA2MDE0MTgwNTAwMjBFOQorOjEwREREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMDA4MDQwMjA2MAorOjEwRERFMDAwMTA0ODA0MTIwMTAwODA0MTIwMTAwODA0MDIwMTA0ODA0MAorOjEwRERGMDAwNDAyMDUwNDgwNDEyMDEwMDg0NDAyMDEwMDgwNDAwMjBGNAorOjEwREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NjAzNTE4MEQ0NjBGRgorOjEwREUxMDAwMzAxODBENDYwMzUxODBENTYwMzUxODBENDYwMzA1ODAzNgorOjEwREUyMDAwRDQ2MDE1MTgwRDQ2MDMxMTgwRDQ2MDM1MTgwRDQwMzFBQgorOjEwREUzMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0NjA1NzE4MDVDNjBENQorOjEwREU0MDAwOTcxODE1QzYwNTcxODE1QzIwNTcxODE1QzYwMzcwODE5NworOjEwREU1MDAwNUM2MDU3MTgxMUM2MDUzMTgxNUM2MDc3MTgxNUMwMzFCOAorOjEwREU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjAzNzE4MERDNjBGNworOjEwREU3MDAwMzcxODBEQzYwMzcxODBERDYwMzcxODA1QzYwMTc1ODEzRQorOjEwREU4MDAwREM2MDM3MTgwREM2MDM3MTg0NUM2MDE3MTgxOUMwMTE2NworOjEwREU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjA1NzE4MTVDNjA0NAorOjEwREVBMDAwNTcxODE0ODYwNTcxODE1QzYwNTcxODA1QzYwNDMxODFDNgorOjEwREVCMDAwNUM2MDU3MTgxNUM2MDU3MTgwNUM2MDQzMTgxNUMwMTE2OQorOjEwREVDMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBGNworOjEwREVEMDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTcwODAwOAorOjEwREVFMDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDE3MDgwNDgwMDA3RQorOjEwREVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAxNjE4MDU4NjA4MgorOjEwREYwMDAwMTYxODQxODYwMTYxODAxODYwMDYzQzA1ODYwNDYxODAxMAorOjEwREYxMDAwMTg2MDE2MTgwMTg2MDA2MTgwNTg2MDU2MTgxNTgwMTAyOAorOjEwREYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NzAwMTVDMDA5QQorOjEwREYzMDAwNTcwMDE1QzAwNDcwMDE1QzAwNTcwMDEwQzAwNDcwMDA0OQorOjEwREY0MDAwMUMwMDQ3MDAxMUMwMDQ3MDAxNUMwMDQ3MDAwMUMwMTFCMworOjEwREY1MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MjAwNjA4MDE4MjBEMgorOjEwREY2MDAwMDYwODAxODIwMDYwODAxODIwMDYwODAwODIwMDYwODA5OAorOjEwREY3MDAwMTgyMDA2MDgwMTgyMDA2MDgwMTgyMDA2MDgwMTgwMTEyMAorOjEwREY4MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDU0MjA0MjA4MTA4MjAzRAorOjEwREY5MDAwNDIwODEwODIwNDIwODEwODIwNDIwODExODIwNDIwODA1NworOjEwREZBMDAwMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDgwMDgwMTFDNQorOjEwREZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjA1NDA4MTUwMjBBNAorOjEwREZDMDAwNTQwODE1MDIwNTQwODExMDIwNTQwQzE1NDIwMDQwODE3MAorOjEwREZEMDAwNTAyMDQ0MDgxMTAyMDU0MDgxMTAyMDE0MDgwNTAwMTE0QQorOjEwREZFMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDEwMzAxNTBDMDU0MzA0OAorOjEwREZGMDAwMTUwODA1NDIwMTUwQzA1NDMwMTUwQzA1NDMwMTUwQzBBRQorOjEwRTAwMDAwNTQzMDE1MEMwNTQyMDE1MEMwNTQzMDE1MEMwNTQwMTAxOQorOjEwRTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwNDIwMDEwODAyNgorOjEwRTAyMDAwMDQyMDAxODgwMDYyMDAxMDgwMDQwMDExMDgwMDQyMDBGMgorOjEwRTAzMDAwMTA4MDA0MjAwMTA4MDA0MjAxMTA4MDA0MjAwMTAwMDAyQgorOjEwRTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjAyMDA4MDgwMjAyNworOjEwRTA1MDAwMjAwODA4MDIwMjIwODA4MDIwMjAyODAwMDIwMjAwODA4MAorOjEwRTA2MDAwODAyMDIwMEEwODAyMDIwMDgwMDAyMDIwMDgwODAwMTFGOQorOjEwRTA3MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NjAwMTU4MDAwRAorOjEwRTA4MDAwNTYwMDA1ODAwNTYwMDE1ODA4NTYwMDE1ODAwNzYwMDI5QgorOjEwRTA5MDAwNTgwMDU2NDAxNTgwMDU2MDAzMTgwMDc2MDAxNTgwMTE2MQorOjEwRTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDAzMAorOjEwRTBCMDAwMzYwMDBEODAwMTYwMDBEODBBMzYwMDBEODAwNTcwMDkxOQorOjEwRTBDMDAwRDgwMTM2MDAwRDgwMDM2MDAwRDgwMDU3MDAwRDgwMDA5NQorOjEwRTBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MzAwMTBDMDBGRgorOjEwRTBFMDAwNDMwMDEwQzAwMDMwMDEwQzAwNDMyMDEwQzAwNDYwMDE0OAorOjEwRTBGMDAwMEMwMDQzNDA1MEMxMDQzMDAxMEMwMDQ2MDAxMEMwMDAyOQorOjEwRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDBDMDBEMworOjEwRTExMDAwMDEwMDAwQzAwMDMwMDAwQzAwMDMwMDAwRDAwMDIwMDAwRgorOjEwRTEyMDAwMEMwMDAzNDAwMEMwMDAzMDAwMEQwMDAyMDAwMEMwMDBFMQorOjEwRTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAxMzE0MDRDNTBDQworOjEwRTE0MDAwMTMxMDA0QzQwMTMxNDA0QzUwMTMxNDA0QzUxMTMxNDE2MworOjEwRTE1MDAwNEM1MDEzMTQwNEM1MDEzMTQwNEM1MDEzMTQwNEMwMDAzQQorOjEwRTE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA1NjhDMTVBMzBENAorOjEwRTE3MDAwNTY4QzExQTMwNDY4QzExQTMwNTY4QzExQTMwNTY4QzBDRgorOjEwRTE4MDAwNUEzMDQ2OEMxMUEzMDQ2OEMxNUEzMDE2OEMxNTgwMDA5MQorOjEwRTE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDA4MDA1NworOjEwRTFBMDAwMDIwMDAwODAwMDIwMDAwODAwMDIyMDAwOTAwMDIwMDBGMworOjEwRTFCMDAwMDgwMDAyNDAwMDgwMDAyMDAwMDkwMDAyMDAwMDgwMDBFQQorOjEwRTFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ0NjIwMTE4ODQwNAorOjEwRTFEMDAwNDYyMTExODg0NDYyMTExODg0NDYwMTExODg0NDYyMTA1NgorOjEwRTFFMDAwMTg4NDQ2MjExMTg4NDQ2MjExMTg4NDA2MjExMTgwMDA4OAorOjEwRTFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NTAxMTU0MDQyMQorOjEwRTIwMDAwNTUwMTExNDA0NTUwMTExNDAwNDUwMTExNDA0NDUwMDA4MgorOjEwRTIxMDAwMTQwNDQ1MDAxNTQwNDQ1MDExMTQwNDU1MDExMTQwMDBFOAorOjEwRTIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIxNDIwODUwODJBOQorOjEwRTIzMDAwMTQyMDg1MDgyMTQyMDg1MDgyMDQyMDg1MDgyMTQyMDhDNAorOjEwRTI0MDAwNTA4MjE0MjAwNTA4MjE0MjA4NTA4MjE0MjA4NTAwMDBDNQorOjEwRTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAxMDI4MDQwQTA1MQorOjEwRTI2MDAwMTAyODA0MEEwMTAyODA0MEEwMTAyODQwMEEwMTAyODAwMAorOjEwRTI3MDAwNDBBMDEwMjg0NDBBMDEwMjgwNDBBMDEwMjgwNDAwMDA5OQorOjEwRTI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAzNTMwMEQ0QzA5OAorOjEwRTI5MDAwMzUzMDBENEMwMTUzMDBENEMwMzUxMDBDNEMwMzUzMDBFNQorOjEwRTJBMDAwRDRDMDM1MzAwRDRDMDM1MzAwRDRDMDM1MzAwRDQwMDA4MAorOjEwRTJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA1NzIwMTVDODAwMgorOjEwRTJDMDAwMTcyMDA1QzgwNjcyMDE1QzgwNTcyMDE1QzgwMjcyMDEyQworOjEwRTJEMDAwNUM4MDU3MjAxNUM4MDU3MjAxNUM4MDM3MjAxMUMwMDA5MgorOjEwRTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzE4NDBDNjEyMzFBQQorOjEwRTJGMDAwODQ4QzIxMjMwODQ4QzYxMjMwODQwQzYxMjMxMDQ4QzI0NAorOjEwRTMwMDAwMTIzMTg0OEMwMTIzMDg0OEM2MTIzMTA0OEM2MTAwMDA0QworOjEwRTMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY5RgorOjEwRTMyMDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkYyMworOjEwRTMzMDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBDRAorOjEwRTM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwRTM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwRTM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwRTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQ0RCMEZCNkMyQ0Q0MgorOjEwRTM4MDAwQjBCMzZDMkNEQjBCMzZDMkRGQjBCMzZDMkNEQjBCN0U3NgorOjEwRTM5MDAwQzJDREIwQjdGRDJDREIwQjM2QzJDREIwQjM2QzAwMDBFNAorOjEwRTNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMzNDNEZDRjEzMzM5QQorOjEwRTNCMDAwQzRDQ0YxMzMzQzRDQ0YxMzNGQzRDQ0YxMzMzQzRDRkZDNQorOjEwRTNDMDAwMTMzM0M0Q0ZGRDMzM0M0Q0NGMTMzM0M0Q0NGMTAwMDAyNgorOjEwRTNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjcwRAorOjEwRTNFMDAwRTRFQzc5M0IxRTRFREY5M0JGRTQ4REY5M0I3ODRFRkZBMgorOjEwRTNGMDAwOTNCN0U0RURGRDNCMUU0RURGOTNCNzg0RURGOTAwMDBDQgorOjEwRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAyNzA0MDlDMTBBRAorOjEwRTQxMDAwMjcxQzA5QzEwMTMwNDAxQzEwNjcwNDA5QzEwMjcwNDE2QQorOjEwRTQyMDAwOUMxMTA3MTQwMUMxMDI3MDQwOUM1MDA3MUMwMUMwMDBFMAorOjEwRTQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA1NzEwMTVDNDBDNQorOjEwRTQ0MDAwNTcxMDU1QzQwMTMxMDA1QzQwNTcxMDE1QzQwNTcxMDFDNworOjEwRTQ1MDAwREM0MDE3MTgxREM0MDU3MTA1NUM0MDU3MTAxREMwMDAzNQorOjEwRTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBBMQorOjEwRTQ3MDAwMTIwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBCQQorOjEwRTQ4MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDg2MDEyMDgwNDgwMDA5RAorOjEwRTQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDAwNAorOjEwRTRBMDAwMDYwMDQxODAwMDYwMDAxODAwNDYwMDAxODAwMDYwMDAwNgorOjEwRTRCMDAwMTAwMDA2MTAwMTgwMDA2MDAwMTgyMDQ2MTAwMTgwMDA0NgorOjEwRTRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0NzIwMTFDODAzMQorOjEwRTREMDAwNDcyMDExQzgwNDcyMDExQzgwMDcyMDExQzgwNDczMDA3MgorOjEwRTRFMDAwMUM4MDQ3MjAxMUNDMDQ3MjAxMUM4MDQ3MjAxMUMwMDAwMQorOjEwRTRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDBBNAorOjEwRTUwMDAwMDYwMDAxODQwMDYwMDAxODAwMDYwMDAxODAwMDYwNDBFMQorOjEwRTUxMDAwMTgwMDA2MDQwMTgxMDA2MDAwMTgwMDA2MTQwMTgwMDA0NAorOjEwRTUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTA4ODAzNAorOjEwRTUzMDAwNDI3MDEwOEMwNDIyMDEwOEMwMDIyMDEwODgwNDIyMDBCRQorOjEwRTU0MDAwMDg4MDQyNTAxMDA4MDQyMjAxMDkwMDQyNDAxMDgwMDA1NworOjEwRTU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRTA0NEE4MTEyQTAwQworOjEwRTU2MDAwNDRBODExMkEwNDRBODExMkEwMDRBODExMkEwNDRCODA0RAorOjEwRTU3MDAwMTJBMDQ0ODgwMTJFMDQ0QTgxMTIyMDA0OTgwMTAwMDA1MAorOjEwRTU4MDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwRTAwNTMwMDE0QzA4RQorOjEwRTU5MDAwMDUzMDAxNEMwMDUzMDAxNEUwMDUzMDAxNEMwMDUzMDBERAorOjEwRTVBMDAwMDRDMDA1MzAwMDRDMDAwMzAwMTRDMDA1MzAwMDQwMTBDQQorOjEwRTVCMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwNDAwNDAwMDEwMDAzRgorOjEwRTVDMDAwMDQ1ODAxMDQwMDQwMDAxMDAwMDQwMDAxMDAwMDQxMDA1NAorOjEwRTVEMDAwMDQwMDQ0NTgxMDQ0MDAwMDAwMTE4MDA0NTAxMDQwMzBFMgorOjEwRTVFMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAyMDAwMDgwMDBBMQorOjEwRTVGMDAwMjAwMDA4MDA0MDAwMDAwMDAwMjAwMDA4MDAwMjAwMDA4OQorOjEwRTYwMDAwODQwMDAwMDAwODQwMDIwMDAwODAwMDIwMDAwODQwMzAyNAorOjEwRTYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAwNjAwMTE4MDA3OQorOjEwRTYyMDAwNDYwMDAxODAwNjYwMDE5ODAwNDYwMDExODAwNDYwMDFFOAorOjEwRTYzMDAwMTgwMDQ2MDAxMTgwMDQyMDAxMTgwMDY2MDAxMTgwMzA4NworOjEwRTY0MDAwMDAwMDAwMDAwMDAwMDAwMDEwMDE0MDAwNjAwMDk4MDA4MQorOjEwRTY1MDAwMjYwMDA5ODAwMjYwMDE5ODAwMDYwMDBDODAwMjYwMDAxQworOjEwRTY2MDAwMTgwMDA2MDAwMTgwMDI2MDAwOTg4MDA2MDAwMTgyMDAwOAorOjEwRTY3MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAwMzA4MTBDMjBGNgorOjEwRTY4MDAwNDMwODEwQzIyNDMwODE4QzIwMDMwODEwQzIwNDIwODA2QgorOjEwRTY5MDAwMEMyMDAzMDgxOEMyMDQzMDgxMEMyMDQzMDgxOEMwMTE1NAorOjEwRTZBMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMzAwMDBDMDA5RQorOjEwRTZCMDAwMDMwMDAwQzA0MDMwMDAwQzAwMDMwMDAwODAwMDMwMDA2OAorOjEwRTZDMDAwMEMwMDAzMjAwMEMwMDAzMDAwMEMwMDAzMjAwMEMwMDAzQworOjEwRTZEMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDEwMjEwMzA4MDBDMjAwQgorOjEwRTZFMDAwMDMwODAwQzIwMDMwODAwQzIwMDMwODAwQzIwMTIwODAxMworOjEwRTZGMDAwMEMyMDAzMkMwMEMyMDAzMDgwMEMzMDQzMkMwMEMwMDBFMgorOjEwRTcwMDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NjA4MTE4MjBFNQorOjEwRTcxMDAwNDYwODExODIwNDYwODAxODIwNDYwODExODIwNDYwODEzNgorOjEwRTcyMDAwMTgyMDQ2MEMxMUMyMDQ2MDgxMTgzMDQ2MEMxMUMwMTEyQgorOjEwRTczMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MjAwMjA4MDA4MjAzRQorOjEwRTc0MDAwMDIyODAwODIwMDIwODAwODIwMDIwODAwODIwMDIwODAyOQorOjEwRTc1MDAwMDgyMDAyMDgwMTgyMDAyMDgwMDgyMDAzMDgwMTgwMDBCMAorOjEwRTc2MDAwMDAwMDAwMDAwMDAwMDAwMDUwMDE0MjA0NjA4MTE4MjBGOQorOjEwRTc3MDAwNDYyODExODIwNDYwODAxODIwNDYwODExODIwNDYwODFCNgorOjEwRTc4MDAwMTgyMDQ2MDgxMDgyMDQ2MDgxMTgyMDQzMDgxMDgwMDA3OQorOjEwRTc5MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAwMTE0MDA0QgorOjEwRTdBMDAwNDUwMDExNDAyNTAwMDAxNDAwNDUwMDExNDAwNDUwMDFBRgorOjEwRTdCMDAwMTQwMDQ1MDAwMDQwMDQ1MDAxNDAwMDAxMDAwMDQyMTFENworOjEwRTdDMDAwNTAwMDAwMDAwMDAwMDAwMDQ4MDAwNjAwNDE4MDEwNjA3QQorOjEwRTdEMDAwMDQxODAxMDYwMDQxODAxMDYwMDQxODAxMDYwMDQxODAwMQorOjEwRTdFMDAwMTA2MDA0MTgwMTA2MDA0MTgwMTA2MDA0MTgwMTAwMDA0OAorOjEwRTdGMDAwMDAwMDAwMDAwMDAwMDAwMDQ4MDAwMjA1MDA4MDQwMjFFOQorOjEwRTgwMDAwMTAwODA0MDAwMTAwODA0MDIwMTAwODA0MDIwMTAwODA2QworOjEwRTgxMDAwNDAyMDUwMDgxNDAyMTEwMDg0NDAyMDEwMDgxNDAwMDAwOQorOjEwRTgyMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0NjAxNTE4MEQ0NjAxNworOjEwRTgzMDAwMzUxODBENDYwMzUxODBENDYwMTUxODBENDYwMzUxODBEQworOjEwRTg0MDAwNTQ2MDE1MTgwRDQ2MDM1MTgwRDQ2MDM1MTgwRDQwMTFFMQorOjEwRTg1MDAwNTAwMDAwMDAwMDAwMDAwMDAwMDE0NjA0NzE4MTFDNjBBRgorOjEwRTg2MDAwNDUxODExRDYwNDcxODExQzYwNjcxODExQzYwNDcxODFBNgorOjEwRTg3MDAwOUM2MDQ3MTgxMUM2MDQ3MTgxMUM2MDY3MTgxMUMwMDBBNAorOjEwRTg4MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDU0NjAyNzE4MDlDNjAwRQorOjEwRTg5MDAwMjcxODA5QzYwMDcxODA5QzYwNjcxODA5QzYwMjcxODAzQworOjEwRThBMDAwOUM2MTI3MTgwMUM2MDI3MTgwOUM2MDA3MTgwMUMwMDA5NgorOjEwRThCMDAwMDAwMDAwMDAwMDAwMDAwMDUwNDU0NjA1NzE4MTVDNjBDQQorOjEwRThDMDAwNTcxODU1RDYwMTcxODE1QzYwNTcxODE1QzYwNTcxODFCRQorOjEwRThEMDAwNUM2MDU3MTgxOEM2MDU3MTgxNUM2MDQzMTgxODgyMTE3NgorOjEwRThFMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDQ1MjAxMjA4MDQ4MjAzOQorOjEwRThGMDAwMTI0ODA0OTAwMTIwODA0OTIwMTIwODA0ODIwMTI0ODBEQgorOjEwRTkwMDAwNDgyMDEyNDgwMDkyMDEyMDgwNDgyMDE3NDgwNDgwMDFDNgorOjEwRTkxMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwNjAwNjE4MDE4NjA1OAorOjEwRTkyMDAwMDYzQzAxODYwMDYxODAxODYwNDYxODAxODYwMDYxODBGRgorOjEwRTkzMDAwMTg2MDA2MTgwMTg2MDA2MTgwMTg2MDQ2MTgwMTgwMDE4MQorOjEwRTk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDE2MDA0NzgwMTFFMDA4QgorOjEwRTk1MDAwNDc4MDExRTAyNDc4MDExRTAwMDc4MDExRTAwNDc4MDE0RgorOjEwRTk2MDAwMUUwMDQ3ODAxMUUwMDQzODAxMUUwMDQ3ODAxMUMwMTFDRAorOjEwRTk3MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDExMjAwNjA4MDE4MjBEQworOjEwRTk4MDAwMDY0ODAxOTIwMDYwODAxOTIwMDYwODAxODIwMDY0ODAxOAorOjEwRTk5MDAwMTgyMDA2NDgwMTkzMDAyMDgwMTgyMDA2NDgwMTgwMDBCNgorOjEwRTlBMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MjA0MjA4MTA4MjAxNworOjEwRTlCMDAwNDIwODEwODIwNDIwODEwODIwMDIwODEwODIwNDIwODE2RAorOjEwRTlDMDAwMDgyMDQyMDgxMDhBMDQ2MDgxMDgyMDQyMDgxMDgwMDA1NAorOjEwRTlEMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NDA4MTEwMjA3QgorOjEwRTlFMDAwNDQwODExMDIwNDQwODExMDIwMDQwODExMDIwNDQwODFFRgorOjEwRTlGMDAwMTAyMTQ0MDgwMTAyMDQ1MDgxMTAyMDA0MDgwMTAwMTE3NAorOjEwRUEwMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMzAwNTBDMDE0MzAxRgorOjEwRUExMDAwMDUwQzAxNDMwMDUwQzAxNDMwMDUwQzAxNDMwMDUwODAyOAorOjEwRUEyMDAwMTQzMDA1MDgwMTRBMDA1MEMwMTQzMDA1MDgwMTQwMDBBOAorOjEwRUEzMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwODAwNDIwMDEwODBCQworOjEwRUE0MDAwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDA1OAorOjEwRUE1MDAwMTA4MDA0MjAxMTAwMDA0MjAwMTA4MDA0MjAxMTAwMTBEQQorOjEwRUE2MDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAyMDA4MDgwMjA3RAorOjEwRUE3MDAwMjAwODA4MDIwMDAwODA4MDIwMjAwODA4MDIwMjAwODA5MAorOjEwRUE4MDAwODAyMDIwMDgwODAyMDIwMDgwODAyMDIwMDgwODAwMTE1MQorOjEwRUE5MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MDAwNjAwMTE4MDAyQworOjEwRUFBMDAwNDYwMDExODAwNjYwMDExODAwNDYwMDExODAwNDYwMDFENAorOjEwRUFCMDAwMTgwMDQ2MDAxMTgwMDQ2MDAxMTgwMDY2MDAxMTgwMTBFMworOjEwRUFDMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MDAyNjQwMDk4MDBDNworOjEwRUFEMDAwMjYwMDA5OTAwNjYwMDE5ODAwMjY0MDA5ODAwMjYwMDAyNworOjEwRUFFMDAwOTgwMDI2MDAwMDkwMDI2MDAwOTgwMDA3MDAwMTgwMDA1NgorOjEwRUFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU2MDA0MzgwNTBFMDBFMgorOjEwRUIwMDAwNDM4MDEwRTA0NDM4MDEwRTAwNDM4MDEwRTAwNDM4MDFENworOjEwRUIxMDAwMEUwMDQzODAxOEEwMDQzODAxMEUwMDQ2ODAxODgwMTFCMgorOjEwRUIyMDAwNTAwMDAwMDAwMDAwMDAwMDUwMDAwMTAwMzA0MDBDMTBCOAorOjEwRUIzMDAwMDMwNDAwQzUwMDMwNDAwQzEwMDMxNDAwQzEwMDMwNDAzNQorOjEwRUI0MDAwMEMxMDAzMDQwMDg3NDAzMDQwMEMxMDAyMDQwMDgwMDBDOQorOjEwRUI1MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDQwNTAwMzU0MDBDNTA5QgorOjEwRUI2MDAwMDMxNDAwRDUwNDMxNDEwQzUwMDM1QzAwQzUwMDMxMDA5MgorOjEwRUI3MDAwMEM1MDAzMTAwMDk0MDAzMTQwMEM1MDQzMTAwMEMyMDBCMAorOjEwRUI4MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MzA1MjBDMTE4MzA4RgorOjEwRUI5MDAwNDYwQzExOTcwMDYwQzAxODMwNDYxQzExODMwNDYwQzFGOAorOjEwRUJBMDAwMTgzMDUyMEMxMTg3MDQ2MEMxMTgzMDQ2MEMxMTgwMTFDNgorOjEwRUJCMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwMDAwMjE0MDA4MDA1QgorOjEwRUJDMDAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDBGOQorOjEwRUJEMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAwMQorOjEwRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0ODQ0MjIwMTE4ODQ5OQorOjEwRUJGMDAwNDYyMTExOTgwMDYyMTAxODg0NDQyMDExODg0NDYyMTE0MworOjEwRUMwMDAwMTg4NDQyMjExMTgwNDQ2MjExMTg4NDQ2MjExMTgwMDAyOQorOjEwRUMxMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAxMTE0MDRCMgorOjEwRUMyMDAwNDUwMDExNDEwMDUwMTAxNDAwNDUwMTExNDA0NDUwMTE5RAorOjEwRUMzMDAwMTQwNDQ1MDEwMTQwNDQ1MDExMTQwNDA1MDEwMTQwMTEyMAorOjEwRUM0MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwODIwNDIwODEwODIzMAorOjEwRUM1MDAwMDQyMDAxMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDg3NAorOjEwRUM2MDAwMTA4MjA0MjI4MTA4MjA1MjA4MTA4QTA0MjI4MTAwMDBBOAorOjEwRUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwQTAxMDI4NDQwQTExRQorOjEwRUM4MDAwMTAyODAwMEEwMTAyODA0MEEwMTAyODA0MEEwMTAyODAxNgorOjEwRUM5MDAwNDBBMDEwMkMxNDBBMDAwMjgwNDBCMDEwMkMxNDAwMDA3OAorOjEwRUNBMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0RDAzNTM0MEQ0RDA1OAorOjEwRUNCMDAwMzUzMDBDNEQwMzUzNDBENEQwMzUzNDBENEQwMzUzNDAwMworOjEwRUNDMDAwRDREMDM1MzQwRDREMDIxMzQwRDREMDM1MzQwRDQwMTExRAorOjEwRUNEMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwODA0NzIwMTFDODA4OAorOjEwRUNFMDAwNDcyMDE1QzgwNDcyMDExQzgwNDcyMDExQzgwNDcyMTEwNgorOjEwRUNGMDAwMUM4MDQ3MjYxMUM4NDQ3MjAxMUM5MDY3MjYxMUMwMDA3MQorOjEwRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA4NDBDNjEyMzE4RgorOjEwRUQxMDAwODQ4QzAxMDMwODQ4QzYxMjMwODQwQzYxMjMxODQ4QzI1MQorOjEwRUQyMDAwMTIzMTg0OEMwMTAzMDg0OEM2MTIzMTA0OEMwMTAwMDBBMgorOjEwRUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY3NQorOjEwRUQ0MDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZGOQorOjEwRUQ1MDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBBMworOjEwRUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwRUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyREZCMEZCNkMyQ0RGNworOjEwRURBMDAwQjBCN0ZEM0ZGQjBCMzZDMkRGQjBGQjZDMkNEQjBCN0UzQworOjEwRURCMDAwQzJDREIwQjdGRDNGRkIwQjM2QzJDREY0QjdGRDAwMDBBRQorOjEwRURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzM0ZDNEZDRjEzMzNCMAorOjEwRUREMDAwQzRDRkZEM0ZGQzRDQ0YxMzNGQzRGQ0YxMzMzQzRDRkY5MAorOjEwRURFMDAwMTMzM0M0Q0ZGRDNGRkM0Q0NGMTMzM0Y0Q0ZGRDAwMDBGMQorOjEwRURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjdFMworOjEwRUUwMDAwRTRFREY5M0ZGRTRFREY5M0I3RTRFREY5M0I3RTRFQzdFQworOjEwRUUxMDAwOTNCN0U0RUM2MTIzMUU0RURGOTNCNzg0RUM2MTAwMDBFRQorOjEwRUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1MjRBMTRBMjRFQQorOjEwRUUzMDAwNjMwMTE0MDI0NDAwODEwQjI4NzEwMjEwODI0MDM4MTFEMgorOjEwRUU0MDAwNDEwNDUwMDgxODgyODczODMxQzMyQzUyMEExMDAwMDA0MAorOjEwRUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1MTI4MTQ0ODAwRQorOjEwRUU2MDAwNzEyMTFDMEEwNzFBODEwMkEwNTIyMDE0NDgwNzEyODEzRQorOjEwRUU3MDAwQzY4MDYwMjAwODg4NDcwMjAxNEE4MDcwMjAxMDAwMDA4OAorOjEwRUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM1MkMwMTRBMDA0NAorOjEwRUU5MDAwNTIwOTFDODAwNzI0MjEwODA4NzEwMjEwODA0NTIwQTExNgorOjEwRUVBMDAwNDkyODUyMDExNEMwNDUwMDkxQzQwMDcyMDIxMDAwMDBBQworOjEwRUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjA3MjAwMUMxMDA2NworOjEwRUVDMDAwNzEwOTEwODAwNzAwMDEwMTAwNzAwODE4ODAwNzAwMDExNworOjEwRUVEMDAwODkyMDUyMDEwQzgwNDYzMDgxNDUwNDYwMDAxMDAwMDBGQQorOjEwRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMyMDIyMDAwODhBRQorOjEwRUVGMDAwMjAyMjAwMDhDMjIyODA0MDg4MDIyMjAwMDg4MjBBQTA0NAorOjEwRUYwMDAwMENBODAyMjIwMDA4ODAwQTAwODA4QzAyMjIwMDAwMDA2NworOjEwRUYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjQzMDAwMDQwMjA0NAorOjEwRUYyMDAwMzAwODA0NDA0MTMwMTBDODAwMDAwMDAwMDIwMzAwMTAwNworOjEwRUYzMDAwQzAwMDExMDgwMEMyNDMxMDgwQzAyMDAxMDgwMDAyMDA3OAorOjEwRUY0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwOEMzMEEyMEMxOEM3NworOjEwRUY1MDAwMTIyMjA0ODgwMTM2MjBDMzA4MTIyODA0MDgwMTA0MDA4NAorOjEwRUY2MDAwNEFBODIyMDEwNEM4NDEyNjMwQzA4ODAyMjEwMDAyMDBCQworOjEwRUY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAwMEExMEMxODAyNgorOjEwRUY4MDAwMzIyMTBDODg0MzAyODA0NDgwMTIyOTA0MDg0MjBBOTBFRQorOjEwRUY5MDAwOEE4MDAwMjAwNDQ4MDMwQTEwODI4MDAwMjAwMDAyMDBCQQorOjEwRUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTg3MDJBMTgwQUMwMQorOjEwRUZCMDAwNDMyOTE0OEE4NDAyQTEwMEFDNDEyMDEwMDgwNjI2MzE5RQorOjEwRUZDMDAwODBBNDYwMjAxNDRBNDQzMjgxODFBQzYwMkExODAyMDA3NworOjEwRUZEMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA3MjIwMUM1ODBCMgorOjEwRUZFMDAwNzMyMTFDQzgwNzJBMDEwQzgwNzIyMDEwNDg0NzI2MTE4MworOjEwRUZGMDAwQzU4MDczMjAxQzg4MDcyQTExNDk4MDcwMjAxNDAyMDBFNAorOjEwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDQ1MTAzMUM5MEM5RAorOjEwRjAxMDAwNzMwMjFDQzA0NzA0MDEwQTBDNTEwQTEwODI0NzIwMzFCOAorOjEwRjAyMDAwQzgwMDcyMDIxQzQwMDUzMDExQzQwMDcyMDExODAyMDBCMQorOjEwRjAzMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAxMDA2MjQwMTQ1MDQzNAorOjEwRjA0MDAwNTE4MTE4OTA0NzE0MDEwNDA0NzE4ODEwMTIwNTM0MDE4RAorOjEwRjA1MDAwNDQwNDUxNDAxOEQwMDczODAxQzQwNDUyMDExNEMyMDRCQQorOjEwRjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3MDAyMTg5MEM2MworOjEwRjA3MDAwNjAwMTFDRDA0NTI0MDFDMTBDNDIwMTAwMDBDNTIwMzFCMworOjEwRjA4MDAwNDEwODQwMDAxODgwNDUwMDIxNDEwQzcwNDIxQ0MyMDAxQworOjEwRjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMUM4MEM0MjBFRAorOjEwRjBBMDAwMzEwODEwNDI0MjA4ODBDNjIwMzEwOTAwMjAwMzFDOTAxQworOjEwRjBCMDAwQzQyMDAxNDkwQzQyNDMxMDgwNDQyMDMxMDgxMDAwMDA1NAorOjEwRjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDgzMjAzMDQ4MENFOQorOjEwRjBEMDAwMzI0MDEwOTA4MTI0MjBDODA0MzI0MDEwMjBDMzIwODA4OAorOjEwRjBFMDAwQzgwMDAyNEEwQ0EwMDEyNDEwQzgwODMyNDExMDAwMDBEOAorOjEwRjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA5MDAzMDAwMEM5MDRBMAorOjEwRjEwMDAwMzA0MDAwOTAwMDIwMDA4MDAwMTA0MDEwMDA0MDIwMTA4RgorOjEwRjExMDAwQzIwMDAwODAwODIwNDMwODEwODEwMDMyNDAwQ0MwMDQ2NworOjEwRjEyMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwNDAwMDAwMDA0RgorOjEwRjEzMDAwMTAwMDAwRjAxMDIwMDAwMDAwMTAwMDAwRjAxMDgwNDBDRgorOjEwRjE0MDAwMDAwMDAwNDAwMEYwMTA5MDgwMDAwMDAwMDAwMEMwMDBBRgorOjEwRjE1MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwOTA0MDAwMDBENworOjEwRjE2MDAwMDA4MDEwOTBBMDkwMDAwMDAwMDAwMDEwOTA4MDgwMDBBRgorOjEwRjE3MDAwMDAwMDAwMDAxMDkwODA5MDAwMDAwMDAwNDAxMDhGMEZGMQorOjEwRjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNEM2QkEwNkMwMUNGOQorOjEwRjE5MDAwNDkyODYxMTQyQjFDMEU0MDNGRDlCRkQ5QUFCQzFBNUY2NQorOjEwRjFBMDAwMDAxMEE2NTAzQjYxQjMyNUJDNDAxOUJGRkZFOTgwMDBBOQorOjEwRjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDkyMTQ5NDgwMEM3OQorOjEwRjFDMDAwMDczRjJCOTQ4NjE0ODQ4MDI4MDAwMDQ5MTQwNDg2MTI3QgorOjEwRjFEMDAwODAwMDQxMjczNEQwOTA4NDkyMDAyRDhBMjExRTgwMDAyNworOjEwRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QTI3NQorOjEwRjFGMDAwQjEwMTAxMDAwMDAwMDAwODg0QjE3ODI4MDAwMDAwMDA3RgorOjEwRjIwMDAwMDhCMTMyMTQxNDAwMDAwMDAwMDhBODIzNTQyMTQwMDA2MworOjEwRjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBGMgorOjEwRjIyMDAwMDAwMDAwMkZGRkZFRjdDMDAwMDAwMDAwMkZEN0ZFRUYwOAorOjEwRjIzMDAwQzAwMDAwMDAwMDNGRkY3RkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBDMgorOjEwRjI1MDAwMDAwMDAwMEZFRjc3RkZDMDAwMDAwMDAwM0VGRkZFRUY1MAorOjEwRjI2MDAwNDAwMDAwMDAwMDNGRkZCRkZGNDAwMDAwMDAwMDAwMDAyMgorOjEwRjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA5MgorOjEwRjI4MDAwMDAwMDAwM0ZGRkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkY2NgorOjEwRjI5MDAwQzAwMDAwMDAwMDNGN0YyRkZGQzAwMDAwMDAwMDAwMDAwMgorOjEwRjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA2MgorOjEwRjJCMDAwMDAwMDAwMUZGRkZGRUZDMDAwMDAwMDAwMUZFRkVGRUY5NgorOjEwRjJDMDAwQzAwMDAwMDAwMDJGRkZGRkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAzMgorOjEwRjJFMDAwMDAwMDAwM0ZGRkVGRkZDMDAwMDAwMDAwMkZBRkRGRkY3NgorOjEwRjJGMDAwQzAwMDAwMDAwMDNGRUZGRkY3QzAwMDAwMDAwMDAwMDA2QQorOjEwRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMQorOjEwRjMxMDAwMDAwMDAwM0ZERkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkZGNQorOjEwRjMyMDAwQzAwMDAwMDAwMDFGRkZERkZGQzAwMDAwMDAwMDAwMDA2MQorOjEwRjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM0MjRBMTAwMkMxNgorOjEwRjM0MDAwNTIwQjE4QzI4NjJDQTE4MDM4NjIwQTA4NDBDNDJDQTEzNgorOjEwRjM1MDAwMDgyODQyMEIxNDAwODUxNEExMDgyODQzMEExMDAwMDA1NQorOjEwRjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MTIwMTAzODBGQgorOjEwRjM3MDAwNjEyMDEwMDgwNzEyNDE0MjgwNzAyMDFDMDgwNDFBMDEwNQorOjEwRjM4MDAwODQ4MTQwMjAxODA4NDYzNjgxMDU4MDYzMjAxMDAwMDFFMgorOjEwRjM5MDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0MjQyMTAwMEMxOAorOjEwRjNBMDAwNTIwMjE0MDA4NzI4MjE4MTA4NzIwNjFDODI4NDIwMjFDMQorOjEwRjNCMDAwNDgxODQyMDM1NDgwNDUzMDI1NEExODUzMDIxMDAwMDE3MgorOjEwRjNDMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTAxODA2RAorOjEwRjNEMDAwNDIyMDE4Qzg0NDIyMDE4MDg0NDIyMDFDODgwNDIyMDE1MworOjEwRjNFMDAwMDA4MDQwMjAxMDg4NDQzNjAxNDA4MDQxMDAxMDAwMDAxOQorOjEwRjNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwMDgyMDAwMEMxOQorOjEwRjQwMDAwMjIwMzA0NDA4MTAwMjA4NDA4MDMwMDAwODBDMjAwMjAwMQorOjEwRjQxMDAwQzQwODAwMDMwODg4ODIxNkEwNDA4ODMyMjI4MDAwMDBCOQorOjEwRjQyMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjAxMDA4MDA0MjAyRAorOjEwRjQzMDAwMTAwODBDQzIxMjEwODRDODIyMTIwODA0MDIwMzAwODhBQgorOjEwRjQ0MDAwMDAyMTAwMEMwQzQwNDEzMDAwODQyMDEwMDgwMDAyMDAxNAorOjEwRjQ1MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODgyMDYyMDA4OEM2MAorOjEwRjQ2MDAwMzIyMjBDODg4MTI2MjA0RDg4MjMyMjgwODg4MzA2MjAyMgorOjEwRjQ3MDAwMDg4ODAwMjMwNDhBODEzNjIwNEI4ODMyMjIwMDAwMDA0RAorOjEwRjQ4MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAyMDIwMDA5ODBERgorOjEwRjQ5MDAwMzIyMDA0ODg2MDIyMDA4OTg0MDAyMDA4OTgwMDAyMDAzRAorOjEwRjRBMDAwMDA4MDAwMjAwMDA4MDIzQTgwNDg4MDMwMjAwMDAyMDBERQorOjEwRjRCMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwQUM0MUFBMTgwQTg5MworOjEwRjRDMDAwNDEyQTEwQ0FDNzFBQTEwNEFENzEyQTE4NEFENDA2QjEzQworOjEwRjREMDAwMDBBODcxMkExMDA4ODQyNjI5MDZBQzUyMkExMDAyMDBCRQorOjEwRjRFMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA0MkEwMTQxODAxQworOjEwRjRGMDAwNDIyMDFDMDAwNDBBMDEwOTg0NTEyMDFDODg0NDAyMDE5NgorOjEwRjUwMDAwMDg4MDQwMjAxMDRBNDcwMjAxNDg4MDYzMjAxMDAyMDAxMgorOjEwRjUxMDAwODAwMDAwMDAwMDAwMDAwMDA4MDAwMEM0MTAyMTgxMENFMQorOjEwRjUyMDAwNDEwMjBDMDBDMDIwNjEwRDBFNzIwMjFDNDBDNDA4MzE2MworOjEwRjUzMDAwMDQxODQyMDIxMDgwODcyMEIxQzQwQzUzMDIxMDAwMDA0RQorOjEwRjU0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAyMDA3MjQwMUNDMDA4QgorOjEwRjU1MDAwNzI0MDE0MDAwNDI0MDEwODAwNzM0MTEwQzAwNzMwMTFFOAorOjEwRjU2MDAwQ0MwMDcxMDExMDAyMDQyMDgxNDYxMDQyNDAxMDAyMDRCOAorOjEwRjU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMEM1MTAyMTAwMDg4NQorOjEwRjU4MDAwNjIwMjFDOTBDNTI0MjEwMDBDNzA4MjFDMTBDNDIwMzEyMgorOjEwRjU5MDAwODgwMjQwMDYxQzAwODUwMEExMDAwQzQwNDIwMDAyMDBDOQorOjEwRjVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjA1MTQ4MDAxMjA3RgorOjEwRjVCMDAwMzAwODBDNDIwNjAwODAwMTI0NTEwODBDMDI0MTAwODBGMgorOjEwRjVDMDAwNEMyMDAwMDgwQzMwNDIwNDAwMDQyMDAwMDgwMDAwMDAxOQorOjEwRjVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMEM2MjQyMDAwMEMwNQorOjEwRjVFMDAwMzJDMjA0ODBDNzMwMjAwMDBDNTNDMjA0MTBDMjI4NzBGRAorOjEwRjVGMDAwMEMwOTAyMDI0QzgwODEwNDMwMDkwQzAyNDIxMDAwMDAwOAorOjEwRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA4MDAxMzgwMDAyMDAyRgorOjEwRjYxMDAwMTI0MDBDMjAwNzM0MDQwMjAwNjMwMTA4MTAwMDI0MTA3QgorOjEwRjYyMDAwMDQwMDAyMDEwNDgyMDEwODgwMDkxMDAyNDAxMDAwMDQ1NQorOjEwRjYzMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMTA4MDAwMDBCQQorOjEwRjY0MDAwMjA4MDAwRjAyMDEwODAwMDAwMjA4MDAwRDA4MDAwMDA4QQorOjEwRjY1MDAwNDAwMDAwMDAwMDMwMTAwMDgwMDAwMDAwMDAwMENDNDA5RQorOjEwRjY2MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwODAwMDAwMDAxMgorOjEwRjY3MDAwMDAwMDEwOTA4MDgwMDAwMDAwMDAwMDEwOTA4MDAwOTAzQQorOjEwRjY4MDAwODAwMDEwMDAwMDEwQTA4MDAwMDAwMDIwMDAxMDhDMDhGNgorOjEwRjY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDFBQkUxNzgwMDBDNworOjEwRjZBMDAwM0U0MDI2NkZCQUUzMjQ4MDAwMTY1OUJEODI4MTgyRDg3RAorOjEwRjZCMDAwODAwMDAwMTk5OTg2ODA2NDgwQzAzRkQ5OTk4MDAwMDEzQworOjEwRjZDMDAwRjAwMDAwMDAwMDAwMDAwMDAwMDAwNjE2MDI5NDAwMTY4MgorOjEwRjZEMDAwQzAxNjk0ODI5MDE2MTA4MDIxMTgyODI4MDIwQTAyMDg2OQorOjEwRjZFMDAwODAwMDAwMDAwMDAyODI4MDE0MDAwMTE0MTFBMDQwMDA3QworOjEwRjZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODQ3RQorOjEwRjcwMDAwMDI4NEE4ODAwMDAwMDAwODkxMjI4NDQxQTIwODI0MDFGQworOjEwRjcxMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDg4NDAxNDQwMTAwMDBFNworOjEwRjcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBERAorOjEwRjczMDAwMDAwMDAwM0VGN0ZGRjdDMDAwMDAwMDAwMkZFN0I3RkYxMgorOjEwRjc0MDAwQzAwMDAwMDAwMDJGRkU3RkY3QzAwMDAwMDAwMDAwMDA5NgorOjEwRjc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBBRAorOjEwRjc2MDAwMDAwMDAwMzZCRkZFREZDMDAwMDAwMDAwMEZGN0RGRkYyMworOjEwRjc3MDAwQzAwMDAwMDAwMDNEQjdCN0VGQzAwMDAwMDAwMDAwMDA2RgorOjEwRjc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA3RAorOjEwRjc5MDAwMDAwMDAwMUZERkRGRkZDMDAwMDAwMDAwMEZERkRGRkYwMQorOjEwRjdBMDAwQzAwMDAwMDAwMDNGRUZGRkZGQzAwMDAwMDAwMDAwMDBBRAorOjEwRjdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA0RAorOjEwRjdDMDAwMDAwMDAwM0ZCRjdGRkZDMDAwMDAwMDAwM0ZGRjdGRjc0OQorOjEwRjdEMDAwQzAwMDAwMDAwMDNGREZGRkZGQzAwMDAwMDAwMDAwMDA4RAorOjEwRjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAxRAorOjEwRjdGMDAwMDAwMDAwM0Y3RUZGRkY0MDAwMDAwMDAwM0ZGRUZGRkZEMworOjEwRjgwMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAzQworOjEwRjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBFQworOjEwRjgyMDAwMDAwMDAwMzdGRjZGRkZDMDAwMDAwMDAwM0ZGRkZGRkYzOAorOjEwRjgzMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAwQworOjEwRjg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwRjg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwRjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwRjg3MDAwMDAwMDAwMDAwMDAwMDAwMDMwMDAyMDAxMDIwMDAwMDAzNQorOjEwRjg4MDAwMzAwMDQzMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwRjg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwRjhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwRjhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwRjhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwRjhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwRjhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFOAorOjEwRjkwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwRjkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwRjkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwRjkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwRjk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwRjk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDNworOjEwRjk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwRjk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwRjk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwRjlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwRjlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0NworOjEwRjlDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwRjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwRjlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwRkExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEZDOAorOjEwRkEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwRkEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwRkE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwRkE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwRkE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0Y0OAorOjEwRkE4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwRkFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwRkFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwRkFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwRkFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEYyOAorOjEwRkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwRkIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwRkIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwRkIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM2QjAwQzAwMENGMkM4QworOjEwRkI0MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwRkI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwRkI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwRkI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDA0NworOjEwRkJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwRkJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwRkJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwRkJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwRkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwRkJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzBDNworOjEwRkMwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwRkMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwRkMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwRkMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwRkM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwRkM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDBBNgorOjEwRkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwRkM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwRkM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwRkNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwRkNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDNGQzAzRkMwMzAyNgorOjEwRkNDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwRkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwRkNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwRkQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEZBNworOjEwRkQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwRkQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwRkQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRkQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0YyNworOjEwRkQ4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwRkRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwRkRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwRkRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwRkREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEYwNworOjEwRkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwRkRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwRkUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwRkUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwRkUzMDAwMDAwMDAwMDAwMDAwMDAwMDA2MzM1RDgwQzAwMEZEQUM0MworOjEwRkU0MDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwRkU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwRkU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwRkU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwRkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwRkU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwRkVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwRkVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwRkVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwRkVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwRkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwRkVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFMgorOjEwRkYwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwRkYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwRkYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwRkYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwRkY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwRkY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDMQorOjEwRkY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwRkY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwRkZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwRkZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0MQorOjEwRkZDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwRkZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwRkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwODAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEYzMgorOjEwODAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwODA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwODA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwODA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0ZCMgorOjEwODA5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwODBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwODBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEY5MgorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwODE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM3NEMwQzAwMEYwRUM0QworOjEwODE1MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDBCMQorOjEwODFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwODFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwODFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwODFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzAzMAorOjEwODIxMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwODIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwODIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwODI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDAxMAorOjEwODI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwODI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwODI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwODJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwODJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwODJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTk4NjEwODAzMDgyM0Q5MAorOjEwODJEMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwODJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwODMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwODMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEYxMQorOjEwODMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwODM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwODM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwODM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwODM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0Y5MQorOjEwODM5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwODNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwODNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwODNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEY3MQorOjEwODNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwODQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwODQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwODQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwODQ0MDAwMDAwMDAwMDAwMDAwMDAwMDM3NjUyNUU0ODAwMEIwODhDRgorOjEwODQ1MDAwQUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwODQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwODQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjEwODQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQworOjEwODRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQworOjEwODRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwODRDMDAwMDAwMDAwMDAzMDAwMjAwMTAyMDIwMDAwMzAwMDQzMDBFNAorOjEwODREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwODRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwODRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjEwODUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QgorOjEwODUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwODUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwODU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwODU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwODU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwODU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwODU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwODVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwODVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwODVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwODVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwODVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwODYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwODYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwODYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwODY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwODY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwODY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwODY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwODY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwODZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwODZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQQorOjEwODZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjEwODZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QQorOjEwODZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QQorOjEwODZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjEwODcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OQorOjEwODcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OQorOjEwODczMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOQorOjEwODc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjEwODc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOQorOjEwODc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOQorOjEwODc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwODc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjEwODc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOQorOjEwODdBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOQorOjEwODdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOQorOjEwODdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjEwODdEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OQorOjEwODdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OQorOjEwODdGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OQorOjEwODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwODgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwODgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwODgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwODg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwODg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOAorOjEwODg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOAorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjEwODg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOAorOjEwODhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOAorOjEwODhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwODhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwODhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwODhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OAorOjEwODhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OAorOjEwODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwODkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwODkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NworOjEwODkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwODk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwODk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwODk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwODk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNworOjEwODk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwODk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwODlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwODlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwODlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjEwODlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwODlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwODlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwOEExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwOEEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwOEEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwOEE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjEwOEE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwOEE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwOEE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjEwOEE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwOEFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwOEFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwOEFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwOEFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwOEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NgorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NgorOjEwOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwOEIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwOEIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwOEIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwOEI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwOEI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwOEI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwOEI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwOEI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwOEI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwOEJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNQorOjEwOEJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNQorOjEwOEJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwOEJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwOEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwOEJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwOEMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwOEMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwOEMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwOEM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwOEM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOEM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwOEM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwOEM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwOENBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwOENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwOENDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwOENEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwOENGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwOEQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwOEQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwOEQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwOEQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwOEQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwOEQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwOEQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwOEQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwOEQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwOERBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwOERCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwOERDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwOEREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwOERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwOERGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwOEUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwOEUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwOEUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwOEU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwOEU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwOEU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwOEU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwOEU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwOEU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwOEVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwOEVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwOEVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwOEVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwOEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwOEYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwOEYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwOEYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwOEY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwOEY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwOEY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwOEY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwOEY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwOEZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwOEZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwOEZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwOEZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwOEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwOEZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwOTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwOTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwOTAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwOTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwOTA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwOTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwOTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwOTA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwOTA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwOTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwOTBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwOTBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwOTBEMDAwMzAwMDAwMDEwMDAwNDQ3MjMwMDA4MDAxMDAwMDAwMDNGNQorOjEwOTBFMDAwMzAwMDQwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOTBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwOTExMDAwMDAwMDAwMDAzMDAwODAwMTAwMDAwMDA1MzAwMEEwMDFDOAorOjEwOTEyMDAwMDAwMDAwMDAzMDAwMDAwMTAwMDBFMTVBMDAwMDAwMDBEMworOjBDOTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzowMDAwMDAwMUZGCisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorICogaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisgKiBpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqCisvLy8gVkVSU0lPTj0xLjEuMS4xMzEKKy8vIERBVEU9MjAwMWRlYzA2CisvLyBQUk9EVUNUPUVNSSAyfDYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTI2L2Zpcm13YXJlLkhFWCBiL2Zpcm13YXJlL2VtaTI2L2Zpcm13YXJlLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2E0MDBlCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pMjYvZmlybXdhcmUuSEVYCkBAIC0wLDAgKzEsMTI2MSBAQAorOjAzMDAwMDAwMDI0MzU2NjIKKzowMzAwMDMwMDAyNEJDREUwCis6MDMwMDBCMDAwMjRCRDJEMworOjAzMDAxMzAwMDI0QjkyMEIKKzowMzAwMUIwMDAyNEJENUMwCis6MDMwMDIzMDAwMjFCMzk4NAorOjAzMDAyQjAwMDI0M0UyQUIKKzowMzAwMzMwMDAyM0ZGMzk2Cis6MDMwMDNCMDAwMjRCQzBCNQorOjAzMDA0MzAwMDI0NzAwNzEKKzowMzAwNEIwMDAyM0ZGQzc1Cis6MDMwMDUzMDAwMjM3RkE3NworOjAzMDA1QjAwMDI0QkM3OEUKKzowMzAwNjMwMDAyNDZGQzU2Cis6MTAwNTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjBGCis6MTAwNTEwMDAwMDAxMDkwMkI4MDEwMzAxMDA4MEEwMDkwNDAwMDAwMEU1Cis6MTAwNTIwMDAwMTAxMDAwMDBBMjQwMTAwMDE1NjAwMDIwMTAyMEMyNDBFCis6MTAwNTMwMDAwMjAxMDEwMTAwMDYwMDAwMDAwMDE1MjQwNjA1MDEwMjY5Cis6MTAwNTQwMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTlGCis6MTAwNTUwMDAyNDAzMDIwNDAzMDAwNTAwMEMyNDAyMDMwMTAyMDAwMjJDCis6MTAwNTYwMDAwMDAwMDAwMDBEMjQwNjA2MDMwMjAzMDAwMDAwMDAwMDQ2Cis6MTAwNTcwMDAwMDA5MjQwMzA0MDEwMTAwMDYwMDA5MDQwMTAwMDAwMTMwCis6MTAwNTgwMDAwMjAwMDAwOTA0MDEwMTAyMDEwMjAwMDAwNzI0MDEwMTI4Cis6MTAwNTkwMDAwMDAxMDAxMTI0MDIwMTAyMDIxMDAzNDRBQzAwODBCQkUwCis6MTAwNUEwMDAwMDAwNzcwMTA5MDUwQTA1ODQwMTAxMDA4RjA3MjUwMTc0Cis6MTAwNUIwMDAwMTAwMDAwMDA5MDU4RjAxMDMwMDAxMDYwMDA5MDQwMTg0Cis6MTAwNUMwMDAwMjAyMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDBFMjQwMkMyCis6MTAwNUQwMDAwMTA2MDIxMDAyNDRBQzAwODBCQjAwMDkwNTBBMDU0QzZDCis6MTAwNUUwMDAwMjAxMDA4RjA3MjUwMTAxMDAwMDAwMDkwNThGMDEwM0FBCis6MTAwNUYwMDAwMDAxMDYwMDA5MDQwMTAzMDIwMTAyMDAwMDA3MjQwMUIyCis6MTAwNjAwMDAwMTAwMDEwMDBFMjQwMjAxMDYwMzE4MDI0NEFDMDA4MDIwCis6MTAwNjEwMDBCQjAwMDkwNTBBMDU3MjAzMDEwMDhGMDcyNTAxMDEwMENGCis6MTAwNjIwMDAwMDAwMDkwNThGMDEwMzAwMDEwNjAwMDkwNDAxMDQwMjBFCis6MTAwNjMwMDAwMTAyMDAwMDA3MjQwMTAxMDAwMTAwMEIyNDAyMDEwMjU1Cis6MTAwNjQwMDAwMzE4MDEwMDc3MDEwOTA1MEEwNTQ2MDIwMTAwOEYwNzFBCis6MTAwNjUwMDAyNTAxMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA2MDAwOUMyCis6MTAwNjYwMDAwNDAyMDAwMDAxMDIwMDAwMDkwNDAyMDEwMTAxMDIwMDZECis6MTAwNjcwMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDEwMjAyMTAwM0ZBCis6MTAwNjgwMDA0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMwNTg0MDEwMUEyCis6MTAwNjkwMDAwMDAwMDcyNTAxMDEwMjAwMDAwOTA0MDIwMjAxMDEwMjE1Cis6MTAwNkEwMDAwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDIwMTAyMDMxOEM0Cis6MTAwNkIwMDAwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU4QzA1NDYwMkFECis6MTAwNkMwMDAwMTAwMDAwNzI1MDEwMTAyMDAwMDA1MEMwOTAxQTEwMTNDCis6MTAwNkQwMDAwNTBDMDlFOTA1MEMwOUVBMTUwMDI1MDE5NTAyNzUwMUNCCis6MTAwNkUwMDA4MTQyOTUwMTc1MDY4MTAxMDUwQzA5MDAwNTBDMDkwMDgwCis6MTAwNkYwMDAxNTAwMjUwMTk1MDI3NTAxOTEwNjk1MDE3NTA2OTEwMzc2Cis6MTAwNzAwMDBDMDA0MDMwOTA0MTgwMzQ1MDA0RDAwNDEwMDQ3MDA0OTk3Cis6MTAwNzEwMDAwMDQzMDAyMDAwNDcwMDZEMDA2MjAwNDgwMDFFMDM0NUIyCis6MTAwNzIwMDAwMDZEMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ1MDA0RDE2Cis6MTAwNzMwMDAwMDQ5MDAyMDAwMzIwMDdDMDAzNjAwMkEwMzQzMDA2RjhECis6MTAwNzQwMDAwMDZFMDA2NjAwNjkwMDY3MDA3NTAwNzIwMDYxMDA3NDQ5Cis6MTAwNzUwMDAwMDY5MDA2RjAwNkUwMDIwMDA1MzAwNzQwMDcyMDA2OTkxCis6MTAwNzYwMDAwMDZFMDA2NzAwMjIwMzQ5MDA2RTAwNzQwMDY1MDA3MjhECis6MTAwNzcwMDAwMDY2MDA2MTAwNjMwMDY1MDAyMDAwNTMwMDc0MDA3MjkxCis6MDkwNzgwMDAwMDY5MDA2RTAwNjcwMDAwMDAzMgorOjEwMDc4OTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk4MworOjAxMDc5OTAwMjIzRAorOjEwMDc5QTAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFOQorOjEwMDdBQTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBFNQorOjEwMDdCQTAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NUU1MTg4RAorOjEwMDdDQTAwQjQwMjAzMDIwN0Q5QjQwMTAzMDIwN0RFMDIwN0ZBN0Q2NQorOjEwMDdEQTAwMDEwMjA4MTZFNTE5MTRGNTE5QzNCNTEzMDMwMjA3RjU0MgorOjEwMDdFQTAwNTAwOUI0MDBFQTc1MTkwQTAyMDdEOTdEMDAwMjA4MTZGMQorOjEwMDdGQTAwRTUxOTE0RjUxOUMzQjUxNDAzMDIwODExNTAwOUI0MDAxOAorOjEwMDgwQTAwQ0U3NTE5MEEwMjA3RDk3RDAyMDIwODE2N0MwNTkwN0Y2NworOjEwMDgxQTAwOTlFMDU0NDBEQzAzMDIwODQzQjQwMDFEOTA3RkUzNzQ1RQorOjEwMDgyQTAwN0JGMEEzNzQ4MEYwOTA3RkUyNzQ0MEYwOTA3RkU1RjA1MworOjEwMDgzQTAwOTA3RkUyNzQwMEYwMDIwODE4MDU4NjkwN0ZFMjc0ODBDNworOjEwMDg0QTAwRjA5MDc5NjVFMEI0MDEwMzAyMDg5RUI0MDIwMzAyMDgzRAorOjEwMDg1QTAwOTZCNDAzMDMwMjA4OEVCNDA0MDMwMjA4ODZCNDA1MDM5RgorOjEwMDg2QTAwMDIwODdFQjQwNjAzMDIwODc2MDIwOEY0MDU4NjkwN0YyMQorOjEwMDg3QTAwNkMwMjA4RTkwNTg2OTA3RjZDMDIwOEREMDU4NjkwN0Y4OAorOjEwMDg4QTAwNkMwMjA4Q0YwNTg2OTA3RjZDMDIwOEMwMDU4NjkwN0ZBRgorOjEwMDg5QTAwNkMwMjA4QjIwNTg2OTA3RjZDRjAwMEYwMDBGMDAwRjA2MAorOjEwMDhBQTAwMERFREI0MkRGNDAyMDhGNEYwRjBGMEYwRjBGMDBERURENworOjEwMDhCQTAwQjQyREY1MDIwOEY0RjAwMEYwMDBGMDAwRjAwREVEQjRFQworOjEwMDhDQTAwMzFGNDAyMDhGNEYwRjBGMEYwRjBGMDBERURCNDMxRjU4NworOjEwMDhEQTAwMDIwOEY0RjBGMEYwRjAwREVEQjQ2MUY3MDIwOEY0RjA1QworOjEwMDhFQTAwRjBGMEYwRjBGMDBERURCNDYxRjU5MDdGRTI3NDAwRjBGNQorOjEwMDhGQTAwRDA4NUQwODQwNTg2RDA4M0QwODJEMEUwRkNEMEUwRkRCQworOjA1MDkwQTAwRDBFMEZFRDBFMDhBCis6MDYwOTBGMDBGRkQwRTBEMEQwMjI3MQorOjEwMDkxNTAwQzBEMEMwRTBDMDgyQzA4MzkwN0Y2RkU1MENGMEU1MERDQworOjBEMDkyNTAwRjBFNTBFRjBEMDgzRDA4MkQwRTBEMEQwMjJEQgorOjEwMDkzMjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODNFMworOjEwMDk0MjAwMDU4NkMwODRDMDg1OTA3OTcwRTBGRkJGMDAwMzAyMEE2QgorOjEwMDk1MjAwQjg5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0ZDMAorOjEwMDk2MjAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0YwQgorOjEwMDk3MjAwRjA5MDdGRTI3NDgwRjA5MDc5ODhFMEI0MDEwMzAyMDk3QworOjEwMDk4MjAwQkVCNDAyMDMwMjA5QzNCNDAzMDMwMjA5QUNCNDA0MDNGNAorOjEwMDk5MjAwMDIwOTlBMDU4NjAyMEFCMkVGNTQwM0ZFRUYwMzAzNTREQQorOjEwMDlBMjAwM0ZGRjkwN0Y2MzA1ODYwMjA5QzlFRjU0MDNGRUVGMDMwMAorOjEwMDlCMjAwMDM1NDNGRkY5MDdGNjMwNTg2MDIwQTM2MDU4NjAyMEFDQQorOjEwMDlDMjAwQTUwNTg2MDIwQThFRTBFMEUwRTBFMEUwMDU4NkUwRTBEMAorOjEwMDlEMjAwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODZCNAorOjEwMDlFMjAwRTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODZFMEUwRTA2RgorOjEwMDlGMjAwRTBFMEUwMDU4NkUwRTBFMDA1ODZERkNBRUVCNDAwMDM1MQorOjEwMEEwMjAwMDIwQUIyQjQwMTAzMDIwQTI1RTBFMEUwRTBFMEUwMDVGOAorOjEwMEExMjAwODZFMEUwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTA5OAorOjEwMEEyMjAwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODY2MworOjEwMEEzMjAwMDIwQUIyRTBFMEUwRTAwNTg2RTBFMDA1ODZFMEUwRTAwMAorOjBEMEE0MjAwRTAwNTg2RTBFMDA1ODZFMEUwRTBFMDA1ODZFNgorOjEwMEE0RjAwRTBFMDA1ODZFMEUwRTBFMDA1ODZFMEUwMDU4NkRGRDY0MQorOjEwMEE1RjAwRUVCNDAwMDMwMjBBQjJCNDAxMDMwMjBBODBFMEUwRTA0MAorOjEwMEE2RjAwRTAwNTg2RTBFMDA1ODZFMEUwRTBFMDA1ODZFMEUwMDVGMQorOjEwMEE3RjAwODZFMEUwRTBFMDA1ODZFMEUwMDU4NjAyMEFCMkUwRTAwRAorOjEwMEE4RjAwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTA1NworOjEwMEE5RjAwREZFQzAyMEFCMkUwRTBFMEUwRTBFMEUwRTBFMEUwRTAxRQorOjEwMEFBRjAwRTBERkYyOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDAyRAorOjBFMEFCRjAwODNEMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjg1Cis6MTAwQUNEMDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQkM0Cis6MEEwQUREMDBEMEUwRjhEMEUwRDA4M0QwODIyMkYwCis6MTAwQUU3MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMEE1Cis6MTAwQUY3MDA4Q0UwQzBFMDc1ODYwMEMwODJDMDgzMDU4NkMwODRDMEQ0Cis6MTAwQjA3MDA4NTdFMDA5MDc5OEVFMEI0MDAxNjc0MDFGMDkwMDZDQUQ1Cis6MTAwQjE3MDBBM0EzQTNBM0EzQTNBM0UwRkY5MDc5OERGMDAyMEIzOUFFCis6MTAwQjI3MDA5MDc5OERFMEZGOTA3OThGRTBGRDkwNzk5MEUwRkMwMjVECis6MTAwQjM3MDAwQjQ2OTAwNkNBMDU4NjkwN0YwMDA1ODYwMjBCNTE4REVECis6MTAwQjQ3MDA4NDhDODUwNTg2OTA3RjAwMDU4NkUwQTMwNTg2RjBBMzQzCis6MTAwQjU3MDAwRUVFQjQ0MDAzMDIwQjZDMDU4NkRGRUU5MDc5OEU3NEJGCis6MTAwQjY3MDAwMEYwMDIwQjgyMDU4NkFEODRBQzg1OTA3OThGRURGMDlECis6MTAwQjc3MDA5MDc5OTBFQ0YwOTA3OThEMUZFRkYwOTA3RkI1RUVGMEMzCis6MTAwQjg3MDBEMDg1RDA4NDA1ODZEMDgzRDA4MkQwRTBGQ0QwRTBGRDJDCis6MEIwQjk3MDBEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODQKKzoxMDBCQTIwMEMwRDBDMEUwQzA4MkMwODM5MDdGQUVFMDU0RTBGMDkwM0QKKzoxMDBCQjIwMDdGOTZFMDQ0MDg1NEZCRjA5MDdGOTdFMDU0QkZGMDkwOUEKKzoxMDBCQzIwMDdGRTM3NDdCRjA5MDdGRTQ3NDQwRjA5MDc5NzhFMDkwNUEKKzoxMDBCRDIwMDdCNDBGMDkwN0ZFMjc0NDhGMDkwN0ZFNUUwOTA3RkUyMDYKKzoxMDBCRTIwMDc0MDBGMDkwN0Y5NkUwNTRGNzQ0MDRGMDkwN0ZFMzc0MzEKKzoxMDBCRjIwMDdCRjA5MDdGRTQ3NDQwRjA5MDc5NzlFMDkwN0I0MEYwNTQKKzoxMDBDMDIwMDkwN0ZFMjc0NDhGMDkwN0ZFNUUwOTA3RkUyNzQwMEYwMUMKKzoxMDBDMTIwMDkwN0Y5NkUwNTRGM0YwOTA3RkFFRTA0NDFGRjBEMDgzRDMKKzowNzBDMjIwMEQwODJEMEUwRDBEMDIyMDcKKzoxMDBDMjkwMEMwRDBDMEUwQzA4M0MwODI5MDc5MkZFMDY0RkZDMzI0QTQKKzowQjBDMzkwMDAxRjBEMDgyRDA4M0QwRTBEMEQwMjJBOAorOjEwMEM0NDAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJBRQorOjA5MEM1NDAwRTMyMjg5ODI4QTgzRTQ5MzIyRTEKKzoxMDBDNUQwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwNEMKKzoxMDBDNkQwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyOTYKKzowRDBDN0QwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQjAKKzoxMDBDOEEwMEJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxNDkKKzowMjBDOUEwMEYzMjI0MworOjEwMEM5QzAwRjhCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4M0U4RjA4RQorOjEwMENBQzAwMjI1MDA2RTkyNTgyQzhGNjIyQkJGRTA1RTkyNTgyQzgzQQorOjAyMENCQzAwRjIyMjIyCis6MTAwQ0JFMDBDMkQ1RUMzMEU3MDlCMkQ1RTRDMzlERkRFNDlDRkNFRTUxCis6MTAwQ0NFMDAzMEU3MTVCMkQ1RTRDMzlGRkZFNDlFRkUxMjBFNDBDMzdCCis6MTAwQ0RFMDBFNDlERkRFNDlDRkM4MDAzMTIwRTQwMzBENTA3QzNFNDc2Cis6MDYwQ0VFMDA5RkZGRTQ5RUZFMjJDMAorOjEwMENGNDAwQzVGMEY4QTNFMDI4RjBDNUYwRjhFNTgyMTU4MjcwMDI4QgorOjA2MEQwNDAwMTU4M0UwMzhGMDIyMjcKKzoxMDBEMEEwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwMjcKKzoxMDBEMUEwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFMDQKKzoxMDBEMkEwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzNEEKKzowODBEM0EwMEU5OTNGNUYwQTNFOTkzMjIwRgorOjEwMEQ0MjAwRTg4RkYwQTRDQzhCRjBBNDJDRkNFOThFRjBBNDJDRkM1MAorOjEwMEQ1MjAwOEFGMEVEQTQyQ0ZDRUE4RUYwQTRDREE4RjA4QkYwQTRDRQorOjEwMEQ2MjAwMkRDQzM4MjVGMEZERTk4RkYwQTQyQ0NEMzVGMEZDRUIyRAorOjEwMEQ3MjAwOEVGMEE0RkVBOUYwRUI4RkYwQTRDRkM1RjAyRUNEMzlGMgorOjBGMEQ4MjAwRkVFNDNDRkNFQUE0MkRDRTM1RjBGREU0M0NGQzIyNUYKKzoxMDBEOTEwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwQjgKKzowMTBEQTEwMDIyMkYKKzoxMDBEQTIwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUExQTYKKzoxMDBEQjIwMDUwMDdFOTI1ODJGODAyMEU5NUJCRkUwN0U5MjU4MkY4NjUKKzoxMDBEQzIwMDAyMEVBREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUI5N0EKKzoxMDBERDIwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUQ1NDIKKzoxMDBERTIwMDUwMDdFOTI1ODJGODAyMEVDOUJCRkUwN0U5MjU4MkY4MDEKKzowNDBERjIwMDAyMEVFMTIyRUEKKzoxMDBERjYwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRjA2RUMKKzoxMDBFMDYwMDUwMDdFOTI1ODJGODAyMEVFREJCRkUwN0U5MjU4MkY4QjgKKzowNDBFMTYwMDAyMEYzNzIyNkUKKzoxMDBFMUEwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNjcKKzoxMDBFMkEwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwN0IKKzowNjBFM0EwMEVGQTNBM0EzODBERjdCCis6MTAwRTQwMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzk2Cis6MTAwRTUwMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzVGCis6MTAwRTYwMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFREE1Cis6MTAwRTcwMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkVGCis6MTAwRTgwMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREUwCis6MDUwRTkwMDAwRkQ1RjBFQTIyN0QKKzowQzBFOTUwMEU2RkMwOEU2RkQwOEU2RkUwOEU2RkYyMjg5Cis6MEMwRUExMDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGMjJDNAorOjBDMEVBRDAwRTJGQzA4RTJGRDA4RTJGRTA4RTJGRjIyODEKKzoxMDBFQjkwMEU0OTNGQ0EzRTQ5M0ZEQTNFNDkzRkVBM0U0OTNGRjIyNEMKKzowQzBFQzkwMEVDRjYwOEVERjYwOEVFRjYwOEVGRjYyMjU1Cis6MEMwRUQ1MDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjI5MAorOjBDMEVFMTAwRUNGMjA4RURGMjA4RUVGMjA4RUZGMjIyNEQKKzoxMDBFRUQwMEQwODNEMDgyRTQ5M0Y2MDg3NDAxOTNGNjA4NzQwMjkzQ0MKKzowOTBFRkQwMEY2MDg3NDAzOTNGNjc0MDQ3MzAzCis6MTAwRjA2MDBBODgyODU4M0YwRDA4M0QwODIxMjBGMUQxMjBGMUQxMjg2Cis6MTAwRjE2MDAwRjFEMTIwRjFERTQ3M0U0OTNBM0M1ODNDNUYwQzU4M0FCCis6MTAwRjI2MDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDODM1Cis6MDEwRjM2MDAyMjk4Cis6MTAwRjM3MDBEMDgzRDA4MkU0OTNGMjA4NzQwMTkzRjIwODc0MDI5Mzg5Cis6MDkwRjQ3MDBGMjA4NzQwMzkzRjI3NDA0NzNDMAorOjEwMEY1MDAwQzJBRkQyMkM5MDdGOTM3NDMwRjA5MDdGOUM3NEJGRjAxRQorOjEwMEY2MDAwOTA3Rjk2RTA1NDMwRjA5MDdGOTQ3NDMwRjA5MDdGOURBNQorOjEwMEY3MDAwNzRDRkYwOTA3Rjk3NzRBMEYwOTA3Rjk1NzRDQ0YwRTREQworOjEwMEY4MDAwOTA3RjlFRjBDMjJEQzIyQUMyMkJDMjJFOTA3OTc0MDQ4QgorOjEwMEY5MDAwRjAxMjJFOTQxMjQ5RTIxMjRCRTYxMjMyMEQxMjNCMEQ2MgorOjEwMEZBMDAwMTI0MUZEMTIzRTk5RTUxRjcwMTg3NTFGMDExMjE3RkZCRgorOjEwMEZCMDAwMTIyRkZGMTI0OUM4MTI0QkQ4MTI0QkRBMTI0OTZGMTI4NgorOjEwMEZDMDAwMUI0MDEyMzk4RDkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA3RQorOjEwMEZEMDAwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RkFERjA5MDdGREUwNworOjEwMEZFMDAwRjA5MDdGREZGMDkwN0ZBQkYwOTA3RkE5RjA5MDdGQUEyOAorOjEwMEZGMDAwRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODIwNDNBODgwMjI3MQorOjEwMTAwMDAwOTA3OTYzRTAxNDYwNDQxNDcwMDIyMUQwMTQ3MDAyNDE5RQorOjEwMTAxMDAwRDkxNDcwMDI2MUQ3MjQwNDYwMDI4MTU2RTQ5MDc5Nzg3MworOjEwMTAyMDAwRjA5MDc5N0JFMDkwNzk3OUYwNDQwMUYwNTRGREYwOTBGNAorOjEwMTAzMDAwNzk3QkYwRTQ5MDc5ODhGMEEyQUYzM0Y1MTJDMkFGMTI1OQorOjEwMTA0MDAwMEJBMkU1MTI3MDAyODE1NkQyQUYyMjkwNzkyREUwNjQ5NgorOjEwMTA1MDAwMDE3MDc5OTA3RkYyRjA5MDdGRjM3NDMwRjA5MDdGRkYxMQorOjEwMTA2MDAwNzRGQ0YwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5RjBGNQorOjEwMTA3MDAwNDQwMUYwNDQwMkYwOTA3OTdCRjBBMkFGRTQzM0Y1MTIyMgorOjEwMTA4MDAwQzJBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA0QworOjEwMTA5MDAwNzk3OUYwOTA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkU5NAorOjEwMTBBMDAwRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDU0RkQ3RgorOjEwMTBCMDAwRjA1NEZCRjA5MDc5ODRGMDEyMEJBMjkwNzk4Mjc0MDRDMgorOjEwMTBDMDAwRjA5MDc5ODgxNEYwRTUxMjYwMDJEMkFGOTA3OTJERTBBQgorOjEwMTBEMDAwNjQwMjcwNzk5MDdGRjJGMDkwN0ZGMzc0MzRGMDkwN0YyNworOjEwMTBFMDAwRkY3NEZDRjBFNDkwNzk3OEYwOTA3OTdCRTA5MDc5Nzk2NgorOjEwMTBGMDAwRjA0NDAxRjA0NDAyRjA5MDc5N0JGMEEyQUZFNDMzRjVDNAorOjEwMTEwMDAwMTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA3OTg0RTA0OQorOjEwMTExMDAwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzk3OUUwNTQ4MQorOjEwMTEyMDAwRkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OUUwNDQwRAorOjEwMTEzMDAwMDJGMDU0RkJGMDkwNzk4NEYwMTIwQkEyOTA3OTgyNzQ0MworOjEwMTE0MDAwMDRGMDkwNzk4ODE0RjBFNTEyNjAwMkQyQUY5MDc5MkQwNgorOjEwMTE1MDAwRTA2NDAzNjAwMjgxNTY5MDdGRjJGMDkwN0ZGMzc0NjQ0NAorOjEwMTE2MDAwRjA5MDdGRkY3NEZDRjBFNDkwNzk3OEYwOTA3OTdCRTA2OAorOjEwMTE3MDAwOTA3OTc5RjA0NDAxRjA0NDAyRjA5MDc5N0JGMEEyQUZDRAorOjEwMTE4MDAwRTQzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA5QQorOjEwMTE5MDAwNzk4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzlEMQorOjEwMTFBMDAwNzlFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3RAorOjEwMTFCMDAwNzlFMDQ0MDRGMDkwNzk4NEYwMTIwQkEyOTA3OTgyNzQ2MworOjEwMTFDMDAwMDRGMDkwNzk4ODE0RjBFNTEyNzAwMjgxNTZEMkFGMjJCMworOjEwMTFEMDAwOTA3OTJERTA2NDAxNzA3QTkwN0ZGMkYwOTA3RkYzNzQ0MworOjEwMTFFMDAwODhGMDkwN0ZGRjc0RkNGMEU0OTA3OTc4RjA5MDc5N0I0MAorOjEwMTFGMDAwRTA5MDc5NzlGMDQ0MDFGMDU0RkRGMDkwNzk3QkYwQTIxMQorOjEwMTIwMDAwQUZFNDMzRjUxMkMyQUYxMjBCQTI5MDc5Nzg3NDAyRjBGQQorOjEwMTIxMDAwOTA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwQjQwMTA5OTAzOQorOjEwMTIyMDAwNzk3OUUwNTRGRUYwODAwNzkwNzk3OUUwNDQwMUYwOTBGQworOjEwMTIzMDAwNzk3OUUwNTRGREYwNTRGQkYwOTA3OTg0RjAxMjBCQTIyMAorOjEwMTI0MDAwOTA3OTgyNzQwQ0YwOTA3OTg4NzQwMUYwRTUxMjYwMDI1NAorOjEwMTI1MDAwRDJBRjkwNzkyREUwNjQwMjYwMDI4MTU2OTA3RkYyRjA2NworOjEwMTI2MDAwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwRTQ5MDc5NzhCMQorOjEwMTI3MDAwRjA5MDc5N0JFMDkwNzk3OUYwNDQwMUYwNTRGREYwOTBBMgorOjEwMTI4MDAwNzk3QkYwQTJBRkU0MzNGNTEyQzJBRjEyMEJBMjkwNzlEMgorOjEwMTI5MDAwNzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTA3OTdGRTAyOQorOjEwMTJBMDAwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTA3OTc5RTBGMworOjEwMTJCMDAwNDQwMUYwOTA3OTc5RTA0NDAyRjA1NEZCRjA5MDc5ODQ5NQorOjEwMTJDMDAwRjAxMjBCQTI5MDc5ODI3NDBDRjA5MDc5ODg3NDAxRjA3RQorOjEwMTJEMDAwRTUxMjcwMDI4MTU2RDJBRjIyOTA3OTJERTA2NDAxNzA0MAorOjEwMTJFMDAwNzc5MDdGRjJGMDkwN0ZGMzc0Q0NGMDkwN0ZGRjc0RkNFNgorOjEwMTJGMDAwRjBFNDkwNzk3OEYwOTA3OTdCRTA5MDc5NzlGMDU0RkM4MworOjEwMTMwMDAwRjA5MDc5N0JGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTJEQQorOjEwMTMxMDAwOTA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwNzlGRQorOjEwMTMyMDAwN0ZFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNzk2QworOjEwMTMzMDAwNzlFMDQ0MDFGMDkwNzk3OUUwNTRGREYwNTRGQkYwOTBBRAorOjEwMTM0MDAwNzk4NEYwMTIwQkEyOTA3OTgyNzQxMkYwOTA3OTg4NzRFQgorOjEwMTM1MDAwMDJGMEU1MTI2MDAyRDJBRjkwNzkyREUwNjQwMjcwNzc1RQorOjEwMTM2MDAwOTA3RkYyRjA5MDdGRjM3NEUwRjA5MDdGRkY3NEZDRjBEOAorOjEwMTM3MDAwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5RjA1NEZDRjAwMgorOjEwMTM4MDAwOTA3OTdCRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQkEyOTBCQQorOjEwMTM5MDAwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDc5N0Y4RgorOjEwMTNBMDAwRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MDc5NzlGMgorOjEwMTNCMDAwRTA0NDAxRjA5MDc5NzlFMDQ0MDJGMDU0RkJGMDkwNzkzOAorOjEwMTNDMDAwODRGMDEyMEJBMjkwNzk4Mjc0MTJGMDkwNzk4ODc0MDJFMgorOjEwMTNEMDAwRjBFNTEyNjAwMkQyQUY5MDc5MkRFMDY0MDM3MDc3OTA0RgorOjEwMTNFMDAwN0ZGMkYwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwRTQ1MAorOjEwMTNGMDAwOTA3OTc4RjA5MDc5N0JFMDkwNzk3OUYwNTRGRUYwNDQyMAorOjEwMTQwMDAwMDJGMDkwNzk3QkYwQTJBRkU0MzNGNTEyQzJBRjEyMEI3OQorOjEwMTQxMDAwQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTBENAorOjEwMTQyMDAwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTA2QgorOjEwMTQzMDAwNzk3OUUwNDQwMUYwOTA3OTc5RTA0NDA0RjA5MDc5ODQ3RQorOjEwMTQ0MDAwRjAxMjBCQTI5MDc5ODI3NDA2RjA5MDc5ODg3NDA0RjBGRgorOjA3MTQ1MDAwRTUxMjYwMDJEMkFGMjI5OQorOjEwMTQ1NzAwQzIyOEMyMjk5MDdGRThFMDEyMEUxQTE0ODQwMDE0RTAxMworOjEwMTQ2NzAwMDExNEY2MDIxNjdDMjExNkJFMjIxNTkxODAxNUQxODEzMgorOjEwMTQ3NzAwMTYyRTgyMTZDRkExMTcwNUEyMDAwMDE3MEE5MDdGRTk0MgorOjEwMTQ4NzAwRTAxNDYwMTEyNEZFNjAyODI0RkU2MDNCMjRGQzcwNDBCOQorOjEwMTQ5NzAwMTI0QTJBRTExNjEyNEJFMDQwMDJFMTE2OTA3RkVBRTA3OQorOjEwMTRBNzAwQjQwMTA0QzIyQUUxMTY5MDdGQjRFMDQ0MDFGMEUxMTZDQQorOjEwMTRCNzAwMTI0QkUyOTA3RkVBRTBCNDAxMDREMjJBRTExNjkwN0Y1MgorOjEwMTRDNzAwQjRFMDQ0MDFGMEUxMTY5MDdGQjRFMDQ0MDFGMEUxMTY4NgorOjEwMTRENzAwOTA3RkI0RTA0NDAxRjBFMTE2OTA3RkU5RTAyNEY1NzBENQorOjEwMTRFNzAwMDUxMjQ3OUNFMTE2OTA3RkI0RTA0NDAxRjBFMTE2OTBBNQorOjEwMTRGNzAwN0ZFOUUwMjRGRDYwNTQyNDAyNjAwMkExODgxMjRCRTBEQQorOjEwMTUwNzAwNDAwMkUxMTY5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTRGNworOjEwMTUxNzAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI2MQorOjEwMTUyNzAwRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTNGRAorOjEwMTUzNzAwMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjBBQgorOjEwMTU0NzAwRTExNjkwN0ZCNEUwNDQwMUYwRTExNjEyNEJFMjQwMDI0RAorOjEwMTU1NzAwRTExNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkY4MgorOjEwMTU2NzAwQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3OAorOjEwMTU3NzAwN0ZGNTgzNzQwMUYwRTExNjkwN0ZCNEUwNDQwMUYwRTE1OAorOjEwMTU4NzAwMTY5MDdGQjRFMDQ0MDFGMEUxMTY5MDdGRTlFMDYwMTIyNQorOjEwMTU5NzAwMjRGODYwMDkyNDAyNzAyOTEyMTcxRUUxMTYxMjRCQTBDNQorOjEwMTVBNzAwRTExNjEyNEJERUEyMkFFNDMzRkYyNUUwRkZBMjJCRTQ2QgorOjEwMTVCNzAwMzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwRTEyMQorOjEwMTVDNzAwMTY5MDdGQjRFMDQ0MDFGMEUxMTY5MDdGRTlFMDYwMzdDMAorOjEwMTVENzAwMjRGNjYwMkUyNDA0NzA0MTkwN0ZFQkUwMjRERTYwMEUzOQorOjEwMTVFNzAwMDQ3MDE2RDIyOTkwN0ZCNEUwNDQwMUYwRTExNkQyMjlBNQorOjEwMTVGNzAwOTA3RkI0RTA0NDAxRjBFMTE2OTA3RkI0RTA0NDAxRjAzRAorOjEwMTYwNzAwRTExNjEyNDQ2M0UxMTYxMjRCREVFNDkwN0YwMEYwQTM2QgorOjEwMTYxNzAwRjA5MDdGQjU3NDAyRjBFMTE2MjAyOTA3OTA3RkI0RTBCRgorOjEwMTYyNzAwNDQwMUYwQzIyOUUxMTY5MDdGRTlFMDI0RjQ2MDM0MjRGNAorOjEwMTYzNzAwMEM3MDM5MTI0QkRFOTA3RkVDRTBGNDU0ODBGRkM0NTRGOQorOjEwMTY0NzAwMEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjUzQgorOjEwMTY1NzAwODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIxRgorOjEwMTY2NzAwRjBFMTE2OTA3RkI0RTA0NDAxRjBFMTE2OTA3RkI0RTAxQQorOjEwMTY3NzAwNDQwMUYwRTExNjkwN0ZFOUUwMjRGNjYwMTIxNDYwMUE0NQorOjEwMTY4NzAwMjQwMjcwMUREMjI4OTA3RkI0RTA0NDAxRjA4MDEyRDI2QQorOjEwMTY5NzAwMjg5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFENAorOjEwMTZBNzAwRjAyMDI4MEY5MDc5ODU3NDAxRjAxMjQ5NkY5MDdGQzU1QgorOjEwMTZCNzAwNzQwMkYwQzIyODgwNTg5MDc5ODY3NDAxRjAxMjQ5NkYzRAorOjEwMTZDNzAwOTA3RkM1NzQwMkYwODA0NzkwN0ZFOUUwMjRGRTYwMTJBNgorOjEwMTZENzAwMTQ2MDFBMjQwMjcwMUREMjI4OTA3RkI0RTA0NDAxRjBGMAorOjEwMTZFNzAwODAxMkQyMjg5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjQ0NQorOjEwMTZGNzAwRTA0NDAxRjAyMDI4MDMxMjFBN0JDMjI4ODAxMTEyMkMyMworOjEwMTcwNzAwMkI4MDBDMTI0QkU0NTAwNzkwN0ZCNEUwNDQwMUYwOTAxQgorOjA3MTcxNzAwN0ZCNEUwNDQwMkYwMjI2MAorOjEwMTcxRTAwMTI0QkRDNDAwMkUxRTM5MDdGRUJFMDI0RkU2MDFFMTRFRQorOjEwMTcyRTAwNjA0NjE0NjA2RTE0NzAwMkUxRDQyNDA0NjAwMkUxRENBMQorOjEwMTczRTAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUFFQworOjEwMTc0RTAwRTBGRjEyM0ZBMjhCMzM4QTM0ODkzNUVBNDk2MDExQ0UwRAorOjEwMTc1RTAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5NgorOjEwMTc2RTAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4MDAzRgorOjEwMTc3RTAwOEIzMzhBMzQ4OTM1RUE0OTYwMTFDRUVBQ0VFRTkwN0ZGQQorOjEwMTc4RTAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQzNAorOjEwMTc5RTAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIyNworOjEwMTdBRTAwMTI0NEQyOEIzMzhBMzQ4OTM1RUE0OTYwMTFDRUVBQ0U5RgorOjEwMTdCRTAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZERgorOjEwMTdDRTAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YxNworOjA1MTdERTAwQjRFMDQ0MDFGMDNECis6MDExN0UzMDAyMkUzCis6MTAxN0U0MDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RjQ3Cis6MEIxN0Y0MDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyNTAKKzowMTE3RkYwMDIyQzcKKzoxMDE4MDAwMEU0OTA3ODE1RjA3QjAxOTA3ODEyMDRGMEEzNzQ3OEYwREUKKzoxMDE4MTAwMEEzNzQ1OEYwOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTkwRUIKKzoxMDE4MjAwMDAwMDExMjBDNURGRjkwNzk5QUUwNkY2MDE4OTA3ODE1QjYKKzoxMDE4MzAwMEUwQzM5NDA2NTAwRkUwMDRGMDkwNzgxM0U0NzVGMDBGQzUKKzoxMDE4NDAwMDEyMENGNDgwQ0Y5MDc4MTVFMEI0MDYwODkwN0ZCNEUwRDUKKzoxMDE4NTAwMDQ0MDFGMDIyOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTEyMzEKKzoxMDE4NjAwMDBDNDRGRjI0QkY3MDAyNDE3QTI0RTA3MDAyNDE0QzI0RjIKKzoxMDE4NzAwMDIxNjAwMjQxNzM5MDc5OTdFMDI0RkU3MDAyMjE5QTE0NEUKKzoxMDE4ODAwMDcwMDIyMUVGMjQwMjYwMDI0MTQ0OTA3OTJERTBBM0YwMjAKKzoxMDE4OTAwMDkwNzkyM0UwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjBEREMKKzoxMDE4QTAwMDQyQzhFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3OTIyQzkKKzoxMDE4QjAwMEUwRkVFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4RUEKKzoxMDE4QzAwMDkwNzkyMUUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZEQ0IKKzoxMDE4RDAwMEVDMzhGQzkwNzgxMkUwRkJBM0UwRkFBM0UwRjk5MDAwNkEKKzoxMDE4RTAwMDAyMTIwREQyOTAwMDAyMTIwREEyN0I0NDdBQUM3OTAwNTQKKzoxMDE4RjAwMDc4MDBDMzEyMEQ5MTcwMDU5MDc5MkQwNEYwOTA3ODEyNDQKKzoxMDE5MDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMjBEQTI3QjgwQjUKKzoxMDE5MTAwMDdBQkI3OTAwNzgwMEMzMTIwRDkxNzAwNjkwNzkyRDc0MEUKKzoxMDE5MjAwMDAyRjA5MDc4MTJFMEZCQTNFMEZBQTNFMEY5OTAwMDAyNDUKKzoxMDE5MzAwMDEyMERBMjdCMDA3QTc3NzkwMTc4MDBDMzEyMEQ5MTcwQTUKKzoxMDE5NDAwMDA2OTA3OTJENzQwM0YwOTA3OTJERTBGRkI0MDEwOTc1QUMKKzoxMDE5NTAwMDBDNjc3NTBEMDY3NTBFMEJFRkI0MDIwOEU0RjUwQ0Y1NzcKKzoxMDE5NjAwMDBENzUwRTBDRUZCNDAzMDhFNEY1MENGNTBENzUwRTE4QUIKKzoxMDE5NzAwMEVGQjQwMzBEOTA3OTJFRTA2NDAzNjAwNUQyMkYxMjNEODEKKzoxMDE5ODAwMDc5OTA3OTJERTA2NDAzNjAwQUEzRTBCNDAzMDVDMjJGQzcKKzoxMDE5OTAwMDEyM0Q3OTEyMTAwMDEyMjgwMTIyOTA3OTIzRTBGRkU0MTEKKzoxMDE5QTAwMEZDRkRGRUZCRkE3OTAxRjgxMjBENDJDOEVDQzhDOUVENDYKKzoxMDE5QjAwMEM5Q0FFRUNBQ0JFRkNCOTA3OTIyRTBGRUU0RkNGRDJCNDYKKzoxMDE5QzAwMEZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3OTIxRTBGRkU0RDIKKzoxMDE5RDAwMEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOEZDOTA3ODEyNkQKKzoxMDE5RTAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDYxMjBERDIyMjkwRUEKKzoxMDE5RjAwMDc5MjNFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIwRDQyQzkKKzoxMDFBMDAwMEM4RUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwNzkyMkUwQzkKKzoxMDFBMTAwMEZFRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwRDgKKzoxMDFBMjAwMDc5MjFFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMEQKKzoxMDFBMzAwMDM4RkM5MDc4MTJFMEZCQTNFMEZBQTNFMEY5OTAwMDBBRUEKKzoxMDFBNDAwMDEyMEREMjIyOTA3RkI0RTA0NDAxRjAyMjkwNzk5N0UwMDkKKzoxMDFBNTAwMDE0NzAxODkwNzkyMUUwRkY5MDc4MTJFMEZCQTNFMEZBNkYKKzoxMDFBNjAwMEEzRTBGOTkwMDAwRUVGMTIwQzlDMjI5MDdGQjRFMDQ0QUEKKzowQTFBNzAwMDAxRjAyMjkwN0ZCNEUwNDQwMUYwODEKKzowMTFBN0EwMDIyNDkKKzoxMDFBN0IwMEU0RkZGRTdCMDE5MDc4MEYwNEYwQTM3NDc4RjBBMzc0NUQKKzoxMDFBOEIwMDJCRjA5MDc4MEZFMEZCQTNFMEZBQTNFMEY5OTAwMDAyQjMKKzoxMDFBOUIwMDEyMEM1REZEOTA3RkVDRTA2RDYwMTNFRkMzOTQwNTUwNkQKKzoxMDFBQUIwMDBEMEY5MDc4MTBFNDc1RjAwMzEyMENGNDgwRDQ4RDMzODUKKzoxMDFBQkIwMDkwNzgwRkUwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjBDODEKKzoxMDFBQ0IwMDVERkQ5MDdGRURFMDZENjAxM0VFQzM5NDBCNTAwRDBFM0EKKzoxMDFBREIwMDkwNzgxMEU0NzVGMDAzMTIwQ0Y0ODBENDkwN0ZFREUwNTUKKzoxMDFBRUIwMEY1MzRFRjY0MDU2MDAzQkUwQjA4OTA3RkI0RTA0NDAxNEUKKzoxMDFBRkIwMEYwMjI5MDc4MEZFMEZCQTNFMEZBQTNFMEY5MTIwQzQ0N0MKKzoxMDFCMEIwMEZGMjRGMDYwMDgyNDBGNzAwRTEyNDkyQTIyMTI0QjgzMTcKKzowRTFCMUIwMDkwNzkyMEU1MzRGMDIyOTA3RkI0RTA0NDAxRjA5MAorOjAxMUIyOTAwMjI5OQorOjBGMUIyQTAwOTA3RkVBRTBCNEZGMDQxMjM0MTYyMjEyMzgwMDIyMzIKKzowNzFCMzkwMDUzOThGRTUzOThGRDMyQTIKKzoxMDFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDFCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDFCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDFCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDFCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDFCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDFCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDFCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDFCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDFCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDFCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDFCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDFDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDFDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDFDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDFDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDFDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzowRTFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMUYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjAyMUYzRTAwMDAwMEExCis6MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MEUyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIzN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIzOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIzOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIzQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIzQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIzQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIzREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIzRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIzRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDI0MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDI0MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDI0MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDI0M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDI0NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDI0NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDI0NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDI0N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDI0OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDI0OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDI0QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDI0QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDI0Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDI0REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDI0RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI0RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI1MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI1MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI1MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI1M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI1NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI1NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI1NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI1N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI1OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI1OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI1QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI1QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI1Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI1REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI1RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI1RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDI2MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI2MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI2MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI2M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI2NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI2NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI2NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI2N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI2OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI2OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI2QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI2QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI2Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI2REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzowRTI2RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjZGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjcwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjcxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjcyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjczQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjc0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjc3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjc4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjc5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjdBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjdCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjdDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjdEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjdFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjA1MjdGQzAwMDAwMDAwMDAyMkI2Cis6MTAyODAxMDA5MDc5NjRFMDE0NjA0NjE0NzAwMjQxM0MyNDAyNjAwMjM1Cis6MTAyODExMDA4MTJBOTA3RkZDNzRDQ0YwOTA3RkZGNzRGQ0YwOTA3OTVBCis6MTAyODIxMDA3ODc0MDFGMDkwNzk3Q0UwOTA3OTc5RjA1NEZERjA0NDZFCis6MTAyODMxMDAwMUYwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjM0Cis6MTAyODQxMDBBMkU1MTI2MDAyRDJBRkU0OTA3OTdBRjAyMjkwNzkyRDVDCis6MTAyODUxMDBFMDY0MDE2MDAyMDFGMTkwN0ZGQzc0Q0NGMDkwN0ZGRjk1Cis6MTAyODYxMDA3NEZDRjA5MDc5Nzg3NDAxRjA5MDc5N0NFMDkwNzk3OTNBCis6MTAyODcxMDBGMDQ0MDFGMDQ0MDJGMDkwNzk3RUUwQjQwMTA5OTA3OUNFCis6MTAyODgxMDA3OUUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwOTA3OTg1Cis6MTAyODkxMDA3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjZDCis6MTAyOEExMDBBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDJGCis6MTAyOEIxMDA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MEM2Cis6MTAyOEMxMDA3OTc5RTA0NDAxRjA5MDc5NzlFMDU0RkRGMDU0RkJGMDFFCis6MTAyOEQxMDA5MDc5ODRGMDEyMEJBMjkwNzk3QTc0MDFGMDkwNzk2NTY1Cis6MTAyOEUxMDBGMEU1MTI2MDAyRDJBRkU0OTA3OThDRjA5MDc5OEJGMDMwCis6MTAyOEYxMDA5MDc5MkRFMDY0MDI2MDAyMjE5NjkwN0ZGQzc0QzhGMDBCCis6MTAyOTAxMDA5MDdGRkY3NEZDRjA5MDc5Nzg3NDAxRjA5MDc5N0NFMDBECis6MTAyOTExMDA5MDc5NzlGMDQ0MDFGMDQ0MDJGMDkwNzk3RUUwQjQwMUJECis6MTAyOTIxMDAwOTkwNzk3OUUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkNCCis6MTAyOTMxMDBGMDkwNzk3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMjlFCis6MTAyOTQxMDBBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OUJCCis6MTAyOTUxMDA3OUYwOTA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDQzCis6MTAyOTYxMDA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDQ0MDJGMEIwCis6MTAyOTcxMDA1NEZCRjA5MDc5ODRGMDEyMEJBMjkwNzk3QTc0MDFGMEYzCis6MTAyOTgxMDA5MDc5NjU3NDAzRjBFNTEyNjAwMkQyQUZFNDkwNzk4QzFFCis6MTAyOTkxMDBGMDkwNzk4QkYwOTA3OTJERTA2NDAzNjAwMjgxMkE5MEE4Cis6MTAyOUExMDA3RkZDNzQ5OEYwOTA3RkZGNzRGQ0YwOTA3OTc4NzQwMTRCCis6MTAyOUIxMDBGMDkwNzk3Q0UwOTA3OTc5RjA0NDAxRjA0NDAyRjA5MDU0Cis6MTAyOUMxMDA3OTdFRTBCNDAxMDk5MDc5NzlFMDQ0MDRGMDgwMDc5MEMwCis6MTAyOUQxMDA3OTc5RTA1NEZCRjA5MDc5NzlFMDkwNzk3Q0YwQTJBRkJECis6MTAyOUUxMDBFNDMzRjUxMkMyQUYxMjBCQTI5MDc5Nzg3NDAyRjA5MDIxCis6MTAyOUYxMDA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwQjQwMTA5OTA3OTU4Cis6MTAyQTAxMDA3OUUwNTRGRUYwODAwNzkwNzk3OUUwNDQwMUYwOTA3OTAzCis6MTAyQTExMDA3OUUwNTRGREYwNDQwNEYwOTA3OTg0RjAxMjBCQTI5MDE3Cis6MTAyQTIxMDA3OTdBNzQwMUYwOTA3OTY1NzQwNUYwRTUxMjYwMDJEMjRCCis6MTAyQTMxMDBBRkU0OTA3OThDRjA5MDc5OEJGMDIyOTA3OTJERTA2NDVECis6MTAyQTQxMDAwMTYwMDI0MUUwOTA3RkZDNzRCNEYwOTA3RkZGNzRGQzYwCis6MTAyQTUxMDBGMDkwNzk3ODc0MDFGMDkwNzk3Q0UwOTA3OTc5RjA1NDc0Cis6MTAyQTYxMDBGRUYwNDQwMkYwOTA3OTdFRTBCNDAxMDk5MDc5NzlFMEJBCis6MTAyQTcxMDA0NDA0RjA4MDA3OTA3OTc5RTA1NEZCRjA5MDc5NzlFMDkzCis6MTAyQTgxMDA5MDc5N0NGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTI5MEExCis6MTAyQTkxMDA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwNzk3Rjc3Cis6MTAyQUExMDBFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNzk3OURBCis6MTAyQUIxMDBFMDQ0MDFGMDkwNzk3OUUwNTRGREYwNTRGQkYwOTA3OTE1Cis6MTAyQUMxMDA4NEYwMTIwQkEyOTA3OTdBNzQwMUYwOTA3OTY1MDRGMDg4Cis6MTAyQUQxMDBFNTEyNjAwMkQyQUZFNDkwNzk4Q0YwOTA3OThCRjA5MDlFCis6MTAyQUUxMDA3OTJERTA2NDAyNjAwMjYxODU5MDdGRkM3NEIwRjA5MDAyCis6MTAyQUYxMDA3RkZGNzRGQ0YwOTA3OTc4NzQwMUYwOTA3OTdDRTA5MDFDCis6MTAyQjAxMDA3OTc5RjA1NEZFRjA0NDAyRjA5MDc5N0VFMEI0MDEwOTQ1Cis6MTAyQjExMDA5MDc5NzlFMDQ0MDRGMDgwMDc5MDc5NzlFMDU0RkJGMEYyCis6MTAyQjIxMDA5MDc5NzlFMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzJBRkVECis6MTAyQjMxMDAxMjBCQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUZGCis6MTAyQjQxMDBGMDkwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDRBCis6MTAyQjUxMDAwNzkwNzk3OUUwNDQwMUYwOTA3OTc5RTA0NDAyRjA1NEVBCis6MTAyQjYxMDBGQkYwOTA3OTg0RjAxMjBCQTI5MDc5N0E3NDAxRjA5MEM1Cis6MTAyQjcxMDA3OTY1NzQwNEYwRTUxMjYwMDJEMkFGRTQ5MDc5OENGMENCCis6MTAyQjgxMDA5MDc5OEJGMDkwNzkyREUwNjQwMzYwMDI4MTJBOTA3RjI3Cis6MTAyQjkxMDBGQzc0NjhGMDkwN0ZGRjc0RkNGMDkwNzk3ODc0MDFGMDE4Cis6MTAyQkExMDA5MDc5N0NFMDkwNzk3OUYwNTRGRUYwNDQwMkYwOTA3OUNDCis6MTAyQkIxMDA3RUUwQjQwMTA5OTA3OTc5RTA0NDA0RjA4MDA3OTA3OUNFCis6MTAyQkMxMDA3OUUwNTRGQkYwOTA3OTc5RTA5MDc5N0NGMEEyQUZFNDYwCis6MTAyQkQxMDAzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA3OTlBCis6MTAyQkUxMDA4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzk3OTY2Cis6MTAyQkYxMDBFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OTEyCis6MTAyQzAxMDBFMDU0RkRGMDQ0MDRGMDkwNzk4NEYwMTIwQkEyOTA3OTI1Cis6MTAyQzExMDA3QTc0MDFGMDkwNzk2NTc0MDZGMEU1MTI2MDAyRDJBRjIyCis6MEEyQzIxMDBFNDkwNzk4Q0YwOTA3OThCRjAyMjlBCis6MTAyQzJCMDBFNEZGN0IwMTkwNzgxNjA0RjBBMzc0NzhGMEEzNzQ1ODNBCis6MTAyQzNCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjA0Cis6MTAyQzRCMDAwQzVERkU5MDdGRUNFMDZFNjAxM0VGQzM5NDA2NTAwREFECis6MTAyQzVCMDAwRjkwNzgxN0U0NzVGMDBGMTIwQ0Y0ODBENEJGMDYwOEIwCis6MTAyQzZCMDA5MDdGQjRFMDQ0MDFGMDIyOTA3ODE2RTBGQkEzRTBGQUU5Cis6MTAyQzdCMDBBM0UwRjkxMjBDNDRGRjI0OUY3MDAyQzE2NjI0MjE2MDZCCis6MTAyQzhCMDAwMkMxOEM5MDdGRTlFMDI0N0U3MDAyQTEzMDE0NzAwMkE3Cis6MTAyQzlCMDBBMUM4MjQwMjYwMDJDMTVFOTAwMDAyMTIwREEyN0I0NDA3Cis6MTAyQ0FCMDA3QUFDNzkwMDc4MDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDg5Cis6MTAyQ0JCMDA0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MEYwCis6MTAyQ0NCMDA3ODE2RTBGQkEzRTBGQUEzRTBGOTkwMDAwMjEyMERBMjQ0Cis6MTAyQ0RCMDA3QjgwN0FCQjc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RkMzCis6MTAyQ0VCMDAwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwMzgxCis6MTAyQ0ZCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMjQzCis6MTAyRDBCMDAwREEyN0IwMDdBNzc3OTAxNzgwMEMzMTIwRDkxNjAwMkQ2Cis6MTAyRDFCMDBDMTkzOTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTA3RkMwCis6MTAyRDJCMDBCNTc0MDNGMDIyOTA3ODE2RTBGQkEzRTBGQUEzRTBGOTY4Cis6MTAyRDNCMDA5MDAwMDYxMjBEQTI3QjQ0N0FBQzc5MDA3ODAwQzMxMjg2Cis6MTAyRDRCMDAwRDkxNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBMzY2Cis6MTAyRDVCMDBGMDkwN0ZCNTc0MDNGMDkwNzgxNkUwRkJBM0UwRkFBMzM0Cis6MTAyRDZCMDBFMEY5OTAwMDA2MTIwREEyN0I4MDdBQkI3OTAwNzgwMDA3Cis6MTAyRDdCMDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMDlECis6MTAyRDhCMDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc4MTZFMEZCQTNFMDFBCis6MTAyRDlCMDBGQUEzRTBGOTkwMDAwNjEyMERBMjdCMDA3QTc3NzkwMTc1Cis6MTAyREFCMDA3ODAwQzMxMjBEOTE2MDAyQzE5MzkwN0YwMEYwQTM3NDYxCis6MTAyREJCMDA3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwNzgxNjJFCis6MTAyRENCMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDBBMTIwREEyN0I0NDBBCis6MTAyRERCMDA3QUFDNzkwMDc4MDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDU4Cis6MTAyREVCMDA0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MEJGCis6MTAyREZCMDA3ODE2RTBGQkEzRTBGQUEzRTBGOTkwMDAwQTEyMERBMjBCCis6MTAyRTBCMDA3QjgwN0FCQjc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RjkxCis6MTAyRTFCMDAwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwMzRGCis6MTAyRTJCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMEExMjA5Cis6MTAyRTNCMDAwREEyN0IwMDdBNzc3OTAxNzgwMEMzMTIwRDkxNzA0ODRGCis6MTAyRTRCMDA5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NEJBCis6MTAyRTVCMDAwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAyNDVDCis6MTAyRTZCMDA3RjcwMTY5MDc4MTZFMEZCQTNFMEZBQTNFMEY5OTAwMEQwCis6MTAyRTdCMDAwRTEyMEM1RDkwN0YwMEYwMjI5MDdGQjRFMDQ0MDFGMEM1Cis6MDgyRThCMDAyMjkwN0ZCNEUwNDQwMUYwNDUKKzowMTJFOTMwMDIyMUMKKzoxMDJFOTQwMDc1MzYyNTc1MzcyNDkwNzk3NEUwNjQwMTcwNTRGMEY1MjMKKzoxMDJFQTQwMDM1NzUyMjAxRTUyMjY0MDE3MDQ4OTA3RkE1RTA0NDgwRDUKKzoxMDJFQjQwMEYwOTA3RkE2RTUzNkYwMTI0NkMwNzQ0RjI1MzVGNTgyQjIKKzoxMDJFQzQwMEU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NkMwNzQzNTI1OEEKKzoxMDJFRDQwMDM1RjU4MkU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NkMwOUMKKzoxMDJFRTQwMDkwN0ZBNTc0NDBGMDEyMEFDRDA1MzVFNTM1QzM5NDBERTUKKzoxMDJFRjQwMDQwQjI5MDc5NzVFMDY0MDE2MDAyRTFERUYwOTA3OTIwREYKKzoxMDJGMDQwMEUwNjQwNTYwMDJFMThEN0IwMTkwNzk1QzA0RjBBMzc0QjgKKzoxMDJGMTQwMDc4RjBBMzc0QjJGMDc1MzMwNzkwNzk1Q0UwRkJBM0UwMUEKKzoxMDJGMjQwMEZBQTNFMEY5OTAwMDAxMTIwQzVENzAwRjkwMDAwNDEyRjYKKzoxMDJGMzQwMDBDNUQ5MDc5MkZGMDEyMEMyOTgwMDY5MDc5MkY3NEZGODQKKzoxMDJGNDQwMEYwRTRGNTM1NzUyMjAxNzUzNDAyRTUyMjY0MDE3MDM5MjcKKzoxMDJGNTQwMDkwN0ZBNUUwNDQ4MEYwOTA3RkE2RTUzNkYwMTI0NkMwNEQKKzoxMDJGNjQwMEFGMzQwNTM0OTA3RkE2RUZGMDEyNDZDMDkwNzkyRkUwN0QKKzoxMDJGNzQwMDkwN0ZBNkYwMTI0NkMwOTA3RkE1NzQ0MEYwMTIwQUNENEYKKzoxMDJGODQwMDA1MzVFNTM1QzM5NDA2NDBDMTkwNzkyMEUwNjQwNjcwQTgKKzoxMDJGOTQwMDQ5N0IwMTkwNzk1RjA0RjBBMzc0NzhGMEEzNzRGRkYwODcKKzoxMDJGQTQwMDc1MzMwMzkwNzk1RkUwRkJBM0UwRkFBM0UwRjk5MDAwQTYKKzoxMDJGQjQwMDAxMTIwQzVENzAxQzkwMDAwNDEyMEM1RDkwNzkzM0YwQ0EKKzoxMDJGQzQwMDcwMDM3NEZGRjA5MDc5MzNFMDU0N0ZGRkYwMjVFMEYwNTQKKzowQTJGRDQwMDgwMDVFNDkwNzkzM0YwMTI0N0RGMjYKKzowMTJGREUwMDIyRDAKKzoxMDJGREYwMDkwNzk3ODc0MDNGMDkwNzk4M0UwOTA3OTc5RjBBMkFGQ0IKKzoxMDJGRUYwMEU0MzNGNTEyQzJBRjEyMEJBMkU1MTI2MDAyRDJBRjIyODgKKzowMTJGRkYwMDIyQUYKKzoxMDMwMDAwMEU0RkU5MDc5MjBFMEZEQjQwNTExOTA3ODI1NzQwMUYwN0MKKzoxMDMwMTAwMEEzNzQ3OEYwQTM3NEIyRjA3NTM1MDdFREI0MDYxMTkwN0YKKzoxMDMwMjAwMDc4MjU3NDAxRjBBMzc0NzhGMEEzNzRGRkYwNzUzNTAzNkMKKzoxMDMwMzAwMDkwN0ZFQkUwMTQ2MDExMTQ2MDVCMjQwMjYwMDI0MTA1OTQKKzoxMDMwNDAwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDNENUUKKzoxMDMwNTAwMEU0RkZFRkMzOTUzNTUwMkY5MDc4MjVFMEZCQTNFMEZBMEQKKzoxMDMwNjAwMEEzRTBGOTkwMDAwMTEyMEM1REZEQ0NFRUNDMEU3NDAwRDMKKzoxMDMwNzAwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTA3ODI2RTQ3NUYwNEEKKzoxMDMwODAwMDBCMTIwQ0Y0MEY4MENCOTA3RkI1RUVGMDIyOTA3RkI0NDIKKzoxMDMwOTAwMEUwNDQwMUYwMjI5MDdGRTlFMDI0N0U2MDY0MTQ3MDAyMzUKKzoxMDMwQTAwMDIxNTUxNDcwMDIyMUE5MjQwMzYwMDIyMUZERTRGRkVGRTEKKzoxMDMwQjAwMEMzOTUzNTUwNDY5MDc4MjVFMEZCQTNFMEZBQTNFMEY5RUMKKzoxMDMwQzAwMDkwMDAwMzEyMEM1REZEQ0NFRUNDMEU3NDAwMkNGNTgyNEEKKzoxMDMwRDAwMEU0MzQ3RkY1ODNFREYwOTAwMDA0MTIwQzVERkRDQ0VFM0UKKzoxMDMwRTAwMENDMEU3NDAwMkNGNTgyRTQzNDdGRjU4M0VERjA5MDc4RkIKKzoxMDMwRjAwMDI2RTQ3NUYwMEIxMjBDRjQwRjgwQjQ5MDdGQjVFRUYwNUYKKzoxMDMxMDAwMDIyRTRGRkVGQzM5NTM1NTA0NjkwNzgyNUUwRkJBM0UwMUQKKzoxMDMxMTAwMEZBQTNFMEY5OTAwMDA1MTIwQzVERkRDQ0VFQ0MwRTc0MjQKKzoxMDMxMjAwMDAwMkNGNTgyRTQzNDdGRjU4M0VERjA5MDAwMDYxMjBDNUMKKzoxMDMxMzAwMDVERkRDQ0VFQ0MwRTc0MDAyQ0Y1ODJFNDM0N0ZGNTgzN0IKKzoxMDMxNDAwMEVERjA5MDc4MjZFNDc1RjAwQjEyMENGNDBGODBCNDkwM0IKKzoxMDMxNTAwMDdGQjVFRUYwMjJFNEZGRUZDMzk1MzU1MDQ2OTA3ODI1MTkKKzoxMDMxNjAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDcxMjBDNURGRENDQjAKKzoxMDMxNzAwMEVFQ0MwRTc0MDAyQ0Y1ODJFNDM0N0ZGNTgzRURGMDkwRjQKKzoxMDMxODAwMDAwMDgxMjBDNURGRENDRUVDQzBFNzQwMDJDRjU4MkU0MzAKKzoxMDMxOTAwMDM0N0ZGNTgzRURGMDkwNzgyNkU0NzVGMDBCMTIwQ0Y0OTMKKzoxMDMxQTAwMDBGODBCNDkwN0ZCNUVFRjAyMkU0RkZFRkMzOTUzNTUwNjkKKzoxMDMxQjAwMDQ2OTA3ODI1RTBGQkEzRTBGQUEzRTBGOTkwMDAwOTEyMUQKKzoxMDMxQzAwMDBDNURGRENDRUVDQzBFNzQwMDJDRjU4MkU0MzQ3RkY1NjIKKzoxMDMxRDAwMDgzRURGMDkwMDAwQTEyMEM1REZEQ0NFRUNDMEU3NDAwNzUKKzoxMDMxRTAwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTA3ODI2RTQ3NUYwRDkKKzoxMDMxRjAwMDBCMTIwQ0Y0MEY4MEI0OTA3RkI1RUVGMDIyOTA3RkI0RTgKKzowQzMyMDAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMEIzCis6MDEzMjBDMDAyMjlGCis6MTAzMjBEMDA3QjAxN0E3ODc5MkI5MDc4MDBFQkYwQTNFQUYwQTNFOUIzCis6MTAzMjFEMDBGMDc0MDExMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEIxCis6MTAzMjJEMDBGOTkwMDAwMTc0MDExMjBDOUM5MDAwMDJFNDEyMEM5Q0E4Cis6MTAzMjNEMDA5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEUwRkJBMzk0Cis6MTAzMjREMDBFMEZBQTNFMEY5NzQxMDEyMEM4QTkwNzgwMEUwRkJBMzY5Cis6MTAzMjVEMDBFMEZBQTNFMEY5OTAwMDAxNzQwNTEyMEM5QzkwMDAwMkI1Cis6MTAzMjZEMDBFNDEyMEM5QzkwNzgwMUU0NzVGMDAzMTIwQ0Y0OTA3ODQ0Cis6MTAzMjdEMDAwMEUwRkJBM0UwRkFBM0UwRjk3NDAyMTIwQzhBOTA3ODQ3Cis6MTAzMjhEMDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDAyMTIwQzM4Cis6MTAzMjlEMDA5QzkwMDAwMkU0MTIwQzlDOTA3ODAxRTQ3NUYwMDMxMkVFCis6MTAzMkFEMDAwQ0Y0OTA3ODAwRTBGQkEzRTBGQUEzRTBGOTc0MDExMkFFCis6MTAzMkJEMDAwQzhBOTA3ODAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwMUZFCis6MTAzMkNEMDA3NDAzMTIwQzlDOTAwMDAyRTQxMjBDOUM5MDc4MDFFNEEzCis6MTAzMkREMDA3NUYwMDMxMjBDRjQ5MDc4MDBFMEZCQTNFMEZBQTNFMDg0Cis6MTAzMkVEMDBGOTc0MTAxMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEM5Cis6MTAzMkZEMDBGOTkwMDAwMTc0MDYxMjBDOUM5MDAwMDJFNDEyMEM5Q0QzCis6MTAzMzBEMDA5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEUwRkJBM0MzCis6MTAzMzFEMDBFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzgwMEUwRkJBM0E2Cis6MTAzMzJEMDBFMEZBQTNFMEY5OTAwMDAxNzQwNDEyMEM5QzkwMDAwMkU1Cis6MTAzMzNEMDBFNDEyMEM5QzkwNzgwMUU0NzVGMDAzMTIwQ0Y0OTA3ODczCis6MTAzMzREMDAwMEUwRkJBM0UwRkFBM0UwRjk3NDAyMTIwQzhBOTA3ODc2Cis6MTAzMzVEMDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDA0MTIwQzY1Cis6MTAzMzZEMDA5QzkwMDAwMjc0MDQxMjBDOUM5MDc4MDFFNDc1RjAwMzlCCis6MTAzMzdEMDAxMjBDRjQ5MDc4MDBFMEZCQTNFMEZBQTNFMEY5NzQwMkRDCis6MTAzMzhEMDAxMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEY5OTAwMDFDCis6MTAzMzlEMDAwMTc0MDMxMjBDOUM5MDAwMDI3NDA0MTIwQzlDOTA3ODIyCis6MTAzM0FEMDAwMUU0NzVGMDAzMTIwQ0Y0OTA3ODAwRTBGQkEzRTBGQTUxCis6MTAzM0JEMDBBM0UwRjk3NDAyMTIwQzhBOTA3ODAwRTBGQkEzRTBGQTA2Cis6MTAzM0NEMDBBM0UwRjk5MDAwMDE3NDAyMTIwQzlDOTAwMDAyNzQwNEE5Cis6MTAzM0REMDAxMjBDOUM5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEI3Cis6MTAzM0VEMDBFMEZCQTNFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzgwMEQ2Cis6MTAzM0ZEMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwMTEyMEM5QzJDCis6MDgzNDBEMDA5MDAwMDI3NDA0MTIwQzlDRjMKKzowMTM0MTUwMDIyOTQKKzoxMDM0MTYwMEU0RkU5MDc5MjBFMEZEQjQwNTExOTA3ODFGNzQwMUYwNjgKKzoxMDM0MjYwMEEzNzQ3OEYwQTM3NEIyRjA3NTM1MDdFREI0MDYxMTkwNjUKKzoxMDM0MzYwMDc4MUY3NDAxRjBBMzc0NzhGMEEzNzRGRkYwNzUzNTAzNTgKKzoxMDM0NDYwMDkwNzk5OUUwMTQ2MDExMTQ2MDVCMjQwMjYwMDJDMTA2NTEKKzoxMDM0NTYwMDkwN0ZCNEUwNDQwMUYwMjI5MDc5OTdFMDE0NzAzRUU0NDYKKzoxMDM0NjYwMEZGRUZDMzk1MzU1MDJGQ0RFRUNEMEU3NDIxMkRGNTgyOEQKKzoxMDM0NzYwMEU0MzQ3OUY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQUEzM0UKKzoxMDM0ODYwMEUwRjk5MDAwMDFFRDEyMEM5QzkwNzgyMEU0NzVGMDBCQTkKKzoxMDM0OTYwMDEyMENGNDBGODBDQjkwNzk3NTc0MDFGMDIyOTA3RkI0RjIKKzoxMDM0QTYwMEUwNDQwMUYwMjI5MDc5OTdFMDI0RkU2MDYzMTQ3MDAyRjQKKzoxMDM0QjYwMEExNjQxNDcwMDJBMUIyMjQwMzYwMDJBMUZFRTRGRkVGMkUKKzoxMDM0QzYwMEMzOTUzNTUwNDRDREVFQ0QwRTc0MjEyREY1ODJFNDM0RUUKKzoxMDM0RDYwMDc5RjU4M0UwRkQ5MDc4MUZFMEZCQTNFMEZBQTNFMEY5MUQKKzoxMDM0RTYwMDkwMDAwM0VEMTIwQzlDQ0RFRUNEMEU3NDIxMkRGNTgyQ0QKKzoxMDM0RjYwMEU0MzQ3OUY1ODNFMDkwMDAwNDEyMEM5QzkwNzgyMEU0ODMKKzoxMDM1MDYwMDc1RjAwQjEyMENGNDBGODBCNjkwNzk3NTc0MDFGMDIyRTkKKzoxMDM1MTYwMEU0RkZFRkMzOTUzNTQwMDJDMTBEQ0RFRUNEMEU3NDIxMEIKKzoxMDM1MjYwMDJERjU4MkU0MzQ3OUY1ODNFMEZEOTA3ODFGRTBGQkEzNjYKKzoxMDM1MzYwMEUwRkFBM0UwRjk5MDAwMDVFRDEyMEM5Q0NERUVDRDBFNUQKKzoxMDM1NDYwMDc0MjEyREY1ODJFNDM0NzlGNTgzRTA5MDAwMDYxMjBDOUYKKzoxMDM1NTYwMDlDOTA3ODIwRTQ3NUYwMEIxMjBDRjQwRjgwQjRFNEZGMTUKKzoxMDM1NjYwMEVGQzM5NTM1NDAwMkMxMERDREVFQ0QwRTc0MjEyREY1N0MKKzoxMDM1NzYwMDgyRTQzNDc5RjU4M0UwRkQ5MDc4MUZFMEZCQTNFMEZBNUUKKzoxMDM1ODYwMEEzRTBGOTkwMDAwN0VEMTIwQzlDQ0RFRUNEMEU3NDIxNTAKKzoxMDM1OTYwMDJERjU4MkU0MzQ3OUY1ODNFMDkwMDAwODEyMEM5QzkwQjYKKzoxMDM1QTYwMDc4MjBFNDc1RjAwQjEyMENGNDBGODBCNEU0RkZFRkMzM0YKKzoxMDM1QjYwMDk1MzU1MDUzQ0RFRUNEMEU3NDIxMkRGNTgyRTQzNDc5MzgKKzoxMDM1QzYwMEY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQUEzRTBGOTkwMTUKKzoxMDM1RDYwMDAwMDlFRDEyMEM5Q0NERUVDRDBFNzQyMTJERjU4MkU0ODIKKzoxMDM1RTYwMDM0NzlGNTgzRTA5MDAwMEExMjBDOUM5MDc4MjBFNDc1RkIKKzoxMDM1RjYwMEYwMEIxMjBDRjQwRjgwQjY5MDdGQjRFMDQ0MDFGMDIyNzkKKzowNzM2MDYwMDkwN0ZCNEUwNDQwMUYwRTUKKzowMTM2MEQwMDIyOUEKKzoxMDM2MEUwMEU0RkU5MDc5MjBFMEZEQjQwNTEwOTA3ODI4NzQwMUYwNjYKKzoxMDM2MUUwMEEzNzQ3OEYwQTM3NEIyRjA3RjA3RURCNDA2MTA5MDc4MUYKKzoxMDM2MkUwMDI4NzQwMUYwQTM3NDc4RjBBMzc0RkZGMDdGMDM5MDc4RjAKKzoxMDM2M0UwMDI4RTBGQkEzRTBGQUEzRTBGOTEyMEM0NEZEOTA3RkVBMjgKKzoxMDM2NEUwMEUwNkQ2MDEyRUVDMzlGNTAwRDkwNzgyOUU0NzVGMDBCN0IKKzoxMDM2NUUwMDEyMENGNDBFODBEODkwN0ZFQkUwMTQ2MDExMTQ2MDQ2Q0IKKzoxMDM2NkUwMDI0MDI2MDAyRTE5QTkwN0ZCNEUwNDQwMUYwMjI5MDdGNDAKKzoxMDM2N0UwMEU5RTAyNDdGNzAyOEVFNkY3MDA4OTA3RkI0RTA0NDAxN0IKKzoxMDM2OEUwMEYwMjI5MDc4MjhFMEZCQTNFMEZBQTNFMEY5OTAwMDAxODUKKzoxMDM2OUUwMDEyMEM1RDkwN0YwMEYwOTA3RkI1NzQwMUYwMjI5MDdGNDgKKzoxMDM2QUUwMEI0RTA0NDAxRjAyMjkwN0ZFOUUwMjQ3RTYwNDAxNDYwOTMKKzoxMDM2QkUwMDZGMTQ3MDAyRTE2MDI0MDM2MDAyRTE5MkVFNkY3MDA4RjUKKzoxMDM2Q0UwMDkwN0ZCNEUwNDQwMUYwMjI5MDc4MjhFMEZCQTNFMEZBNkEKKzoxMDM2REUwMEEzRTBGOTkwMDAwMzEyMEM1RDkwN0YwMEYwOTAwMDA0QkYKKzoxMDM2RUUwMDEyMEM1RDkwN0YwMUYwOTA3RkI1NzQwMkYwMjJFRTZGQTgKKzoxMDM2RkUwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3ODI4RTBGQkEzOUMKKzoxMDM3MEUwMEUwRkFBM0UwRjk5MDAwMDUxMjBDNUQ5MDdGMDBGMDkwQjYKKzoxMDM3MUUwMDAwMDYxMjBDNUQ5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyQ0UKKzoxMDM3MkUwMEVFNkY3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzgyOEUwQUMKKzoxMDM3M0UwMEZCQTNFMEZBQTNFMEY5OTAwMDA3MTIwQzVEOTA3RjAwNjYKKzoxMDM3NEUwMEYwOTAwMDA4MTIwQzVEOTA3RjAxRjA5MDdGQjU3NDAyMkUKKzoxMDM3NUUwMEYwMjJFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDc4NzIKKzoxMDM3NkUwMDI4RTBGQkEzRTBGQUEzRTBGOTkwMDAwOTEyMEM1RDkwQUIKKzoxMDM3N0UwMDdGMDBGMDkwMDAwQTEyMEM1RDkwN0YwMUYwOTA3RkI1RjMKKzoxMDM3OEUwMDc0MDJGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwMDYKKzowMzM3OUUwMDQ0MDFGMEYzCis6MDEzN0ExMDAyMjA1Cis6MTAzN0EyMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEExCis6MTAzN0IyMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRjVDCis6MTAzN0MyMDBDMEUwNTM5MUVGOTA3RkFCNzQxMEYwOTA3OTgzRTA1NDk2Cis6MTAzN0QyMDBGREYwMTIyRkRGRDBFMEZGRDBFMEZFRDBFMEZERDBFMDIwCis6MTAzN0UyMDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMEM1Cis6MDgzN0YyMDA4MkQwODNEMEYwRDBFMDMyNTgKKzowNjM3RkEwMDUzOTFCRkQyMjYzMkZDCis6MTAzODAwMDBFNEZFOTA3OTIwRTBGREI0MDUxMDkwNzgyMjc0MDFGMDc4Cis6MTAzODEwMDBBMzc0NzhGMEEzNzRCMkYwN0YwN0VEQjQwNjEwOTA3ODJCCis6MTAzODIwMDAyMjc0MDFGMEEzNzQ3OEYwQTM3NEZGRjA3RjAzOTA3ODAyCis6MTAzODMwMDAyMkUwRkJBM0UwRkFBM0UwRjkxMjBDNDRGRDkwNzk5ODkyCis6MTAzODQwMDBFMDZENjAxMkVFQzM5RjUwMEQ5MDc4MjNFNDc1RjAwQjhECis6MTAzODUwMDAxMjBDRjQwRTgwRDg5MDc5OTlFMDE0NjAxMTE0NjA0ODJECis6MTAzODYwMDAyNDAyNjAwMjIxODU5MDdGQjRFMDQ0MDFGMDIyOTA3OTI3Cis6MTAzODcwMDA5N0UwMTQ3MDJCRUU2RjcwMDk5MDdGQjRFMDQ0MDFGMDc0Cis6MTAzODgwMDA4MDE3OTA3OTIxRTBGRDkwNzgyMkUwRkJBM0UwRkFBMzc1Cis6MTAzODkwMDBFMEY5OTAwMDAxRUQxMjBDOUM5MDc5NzU3NDAxRjAyMjEyCis6MTAzOEEwMDA5MDdGQjRFMDQ0MDFGMDIyOTA3OTk3RTAyNEZFNjA0M0Q5Cis6MTAzOEIwMDAxNDYwNkUxNDcwMDIyMTRGMjQwMzYwMDIyMTdERUU2RkFDCis6MTAzOEMwMDA3MDA5OTA3RkI0RTA0NDAxRjA4MDIxOTA3OTIxRTBGREZGCis6MTAzOEQwMDA5MDc4MjJFMEZCQTNFMEZBQTNFMEY5OTAwMDAzRUQxMjU4Cis6MTAzOEUwMDAwQzlDOTA3OTIyRTA5MDAwMDQxMjBDOUM5MDc5NzU3NEU1Cis6MTAzOEYwMDAwMUYwMjJFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDU2Cis6MTAzOTAwMDA3OTIxRTBGRDkwNzgyMkUwRkJBM0UwRkFBM0UwRjk5MEIyCis6MTAzOTEwMDAwMDA1RUQxMjBDOUM5MDc5MjJFMDkwMDAwNjEyMEM5Q0EwCis6MTAzOTIwMDAyMkVFNkY3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzkyMTdDCis6MTAzOTMwMDBFMEZEOTA3ODIyRTBGQkEzRTBGQUEzRTBGOTkwMDAwNzE1Cis6MTAzOTQwMDBFRDEyMEM5QzkwNzkyMkUwOTAwMDA4MTIwQzlDMjJFRTYzCis6MTAzOTUwMDA2RjcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3OTIxRTBGRTdFCis6MTAzOTYwMDA5MDc4MjJFMEZCQTNFMEZBQTNFMEY5OTAwMDA5RUUxMkMwCis6MTAzOTcwMDAwQzlDOTA3OTIyRTA5MDAwMEExMjBDOUMyMjkwN0ZCNDVCCis6MEMzOTgwMDBFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyQworOjAxMzk4QzAwMjIxOAorOjEwMzk4RDAwQTJBRkU0MzNGNTEyRTQ5MDc5ODNGMDEyMkZERjkwN0YyQworOjEwMzk5RDAwRTA3NDkwRjA5MDdGRTE3NDA0RjBFNDkwN0ZEREYwOTA5RQorOjEwMzlBRDAwN0ZBMUYwNTM4RUY4NzU4ODA1NzVCODIwNzVGODAxNDMyMQorOjEwMzlCRDAwOEUzMEY1Qzg3NUNBN0Y3NUNCRjg0M0E4MjA5MDc5NzQwMQorOjEwMzlDRDAwMDRGMEMyMjJFNEY1MEY5MDc5NzhGMEEzRjA5MDc5NjJCQgorOjEwMzlERDAwRjBBM0YwQTNGMDkwNzk2NkYwQTNGMDkwNzk3QkYwQTNCQgorOjEwMzlFRDAwRjA5MDc5ODRGMDkwNzk3REYwOTA3OTc1RjBBM0YwQTM0MworOjEwMzlGRDAwRjBDMjIzQzIyNEMyMjVDMjI2QzIyMDkwN0Y5QkUwRjVDRgorOjEwM0EwRDAwMEE1NDIwRjUwQTcwMDY5MDc5N0VGMDgwMDY5MDc5N0UzMgorOjEwM0ExRDAwNzQwMUYwOTA3RjlCRTBGNTBBNTQwMkY1MEE3MDA2OTA1MAorOjEwM0EyRDAwNzk3RkYwODAwNjkwNzk3Rjc0MDFGMDkwNzk3ODc0MDIzNworOjEwM0EzRDAwRjA5MDc5ODRFMDkwNzk3OUYwOTA3OTdGRTBCNDAxMDk4NAorOjEwM0E0RDAwOTA3OTc5RTA1NEZFRjA4MDA3OTA3OTc5RTA0NDAxRjBBNworOjEwM0E1RDAwOTA3OTc5RTA5MDc5ODRGMDEyMEJBMjkwNzk3ODc0MDFDNQorOjEwM0E2RDAwRjA5MDc5N0NFMDkwNzk3OUYwOTA3OTdFRTBCNDAxMDk1RAorOjEwM0E3RDAwOTA3OTc5RTA0NDA0RjA4MDA3OTA3OTc5RTA1NEZCRjA3NworOjEwM0E4RDAwOTA3OTc5RTA5MDc5N0NGMDEyMEJBMkU0OTA3OTc4RjAzRQorOjEwM0E5RDAwQTMwNEYwRTQ5MDc5ODhGMDEyMEJBMjkwN0ZGQzc0REQwMgorOjEwM0FBRDAwRjA5MDdGRkY3NEZGRjA5MDc5Nzg3NDAxRjBBM0YwMTIxRAorOjEwM0FCRDAwMEJBMkU0OTA3OTdBRjA5MDc5ODMwNEYwMTIyRkRGRTQ3MQorOjEwM0FDRDAwOTA3OTMwRjA5MDc5ODVGMEEzRjBBM0YwMTIyRTk0OTBCOAorOjEwM0FERDAwNzkyRDc0MDJGMDkwNzk4ODE0RjBDMjJGRTQ5MDc5NjhGMgorOjEwM0FFRDAwRjA5MDc5OEFGMDkwNzk2QUYwQTNGMDc1MTMwODc1MTQ0NworOjEwM0FGRDAwMDhGNTE2RjUxNUY1MTc5MDc5OENGMDkwNzk4QkYwMjI2NQorOjEwM0IwRDAwN0IwMTdBNzg3OTU4OTA3ODAzRUJGMEEzRUFGMEEzRTk3QQorOjEwM0IxRDAwRjA3NDQwMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTA2NgorOjEwM0IyRDAwRjk5MDAwMDE3NDBBMTIwQzlDOTAwMDAyMTIwREY2MDAxRgorOjEwM0IzRDAwMDBCQjgwOTAwMDA2MTIwREY2MDAwMEFDNDQ5MDAwMEEwOAorOjEwM0I0RDAwMTIwREY2MDAwMTc3MDA5MDc4MDRFNDc1RjAwRjEyMEM1OQorOjEwM0I1RDAwRjQ5MDc4MDNFMEZCQTNFMEZBQTNFMEY5NzQ0MDEyMENCMworOjEwM0I2RDAwOEE5MDc4MDNFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzREQQorOjEwM0I3RDAwOEMxMjBDOUM5MDAwMDIxMjBERjYwMDAwQkI4MDkwMDA4MAorOjEwM0I4RDAwMDYxMjBERjYwMDAwQUM0NDkwMDAwQTEyMERGNjAwMDE2RAorOjEwM0I5RDAwNzcwMDkwNzgwNEU0NzVGMDBGMTIwQ0Y0OTA3ODAzRTA0MAorOjEwM0JBRDAwRkJBM0UwRkFBM0UwRjk3NDQwMTIwQzhBOTA3ODAzRTBDRAorOjEwM0JCRDAwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDhGMTIwQzlDOTAyNgorOjEwM0JDRDAwNzgwNEU0NzVGMDBGMTIwQ0Y0OTA3ODAzRTBGQkEzRTA5OQorOjEwM0JERDAwRkFBM0UwRjk3NDQxMTIwQzhBOTA3ODAzRTBGQkEzRTA5QworOjEwM0JFRDAwRkFBM0UwRjk5MDAwMDE3NDg0MTIwQzlDOTA3ODA0RTQxRgorOjEwM0JGRDAwNzVGMDBGMTIwQ0Y0OTA3ODAzRTBGQkEzRTBGQUEzRTA0QworOjEwM0MwRDAwRjk3NDYxMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTA0QgorOjEwM0MxRDAwRjk5MDAwMDE3NDgxMTIwQzlDOTA3ODA0RTQ3NUYwMEZGQQorOjEwM0MyRDAwMTIwQ0Y0OTA3ODAzRTBGQkEzRTBGQUEzRTBGOTc0NjFDMQorOjEwM0MzRDAwMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTBGOTkwMDA2MAorOjA2M0M0RDAwMDE3NDAxMTIwQzlDNDEKKzowMTNDNTMwMDIyNEUKKzoxMDNDNTQwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRUEKKzoxMDNDNjQwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQTUKKzowMjNDNzQwMEMwRTBBRQorOjEwM0M3NjAwOTA3RkEyRTBGNTBCOTA3Rjc0RTA5MDc5NzBGMDkwN0ZEMgorOjEwM0M4NjAwNzVFMDkwNzk3MUYwOTA3OTgzRTBGRkZFNTQwMkZFNzA0MgorOjEwM0M5NjAwMERFRjQ0MDJGMDEyMkZERjkwNzk3NDc0MDFGMEU1MEJGQQorOjEwM0NBNjAwMjBFMjI4OTA3OTcwRTBGRUEzRTA3QzAwMjQwMEY1MTE2NAorOjEwM0NCNjAwRUMzRUY1MTA5MDc5ODJFMEZEQUUxMEFGMTExMjBDQkUwRAorOjEwM0NDNjAwOTA3OTcwRUZGMDkwNzk4OTc0MDFGMDEyNDg0MzEyNDhBOAorOjEwM0NENjAwNzY5MDc5ODlFMDY0MDE3MDMyMTI0MTA4OTA3OTg5RTQxRQorOjEwM0NFNjAwRjA5MDdGOThFMDQ0NDBGMDkwN0Y5RUUwNDQ0MEYwOTA1MgorOjEwM0NGNjAwN0Y5NTc0ODBGMDc1RTgwMTEyMDkzMjc1RTgwRDkwN0ZBMgorOjEwM0QwNjAwOTU3NEMwRjA3NUU4MEREMjIwODAwNTc1RTgwMUMyMjBEMworOjEwM0QxNjAwMjAyMDJCOTA3OTJERTBGRkI0MDEwOTc1MEM2Nzc1MERGNQorOjEwM0QyNjAwMDY3NTBFMEJFRkI0MDIwOTc1MEMwMDc1MEQwMDc1MEVDNQorOjEwM0QzNjAwMENFRkI0MDMwOTc1MEMwMDc1MEQwMDc1MEUxODc1Q0FFNQorOjEwM0Q0NjAwNkY3NUNCRkVEMkNBNTM5MUVGOTA3RkFCNzQwMkYwRjA0MQorOjEwM0Q1NjAwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDAyQworOjEwM0Q2NjAwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjAxRAorOjAzM0Q3NjAwRDBFMDMyNjgKKzoxMDNENzkwMDc1MzMyNTc1MzQyNDkwNzk1Qzc0MDFGMEEzNzQ3OEYwNTcKKzoxMDNEODkwMEEzNzRCMkYwMjAyRjAyQzExN0U0RjUzNTc1MjIwMTkwMTIKKzoxMDNEOTkwMDc5NUNFMEZCQTNFMEZBQTNFMEY5OTAwMDA0MTIwQzVENjIKKzoxMDNEQTkwMEY1MzY3NTM1MDY3NDQyMjUzNUY1ODJFNDM0NzlGNTgzOUYKKzoxMDNEQjkwMEU1MzZGMDA1MzVFNTM1QjQwQ0VCRTUzNUMzOTQwRDQwMzIKKzoxMDNEQzkwMDAyQzE5OEU1MjI2NDAxNjAwMkMxOTg5MDdGQTVFMDQ0OTAKKzoxMDNERDkwMDgwRjA5MDdGQTZFNTMzRjAxMjQ2QzA3NDRGMjUzNUY1ODMKKzoxMDNERTkwMDgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjQ2QzA3NDQyRUMKKzoxMDNERjkwMDI1MzVGNTgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjQ2MDMKKzoxMDNFMDkwMEMwOTA3RkE1NzQ0MEYwMTIwQUNEMDUzNTgwQUNFNEY1NjkKKzoxMDNFMTkwMDM1NzUyMjAxOTA3OTVDRTBGQkEzRTBGQUEzRTBGOTkwMDMKKzoxMDNFMjkwMDAwMDQxMjBDNURGNTM2NzUzNTA2NzQzNTI1MzVGNTgyQjUKKzoxMDNFMzkwMEU0MzQ3OUY1ODNFNTM2RjAwNTM1RTUzNUI0MENFQkU1ODEKKzoxMDNFNDkwMDM1QzM5NDBENTA0OUU1MjI2NDAxNzA0MzkwN0ZBNUUwODQKKzoxMDNFNTkwMDQ0ODBGMDkwN0ZBNkU1MzNGMDEyNDZDMDc0NEYyNTM1QjMKKzoxMDNFNjkwMEY1ODJFNDM0NzlGNTgzRTA5MDdGQTZGMDEyNDZDMDc0QjgKKzoxMDNFNzkwMDM1MjUzNUY1ODJFNDM0NzlGNTgzRTA5MDdGQTZGMDEyOTMKKzowRjNFODkwMDQ2QzA5MDdGQTU3NDQwRjAxMjBBQ0QwNTM1ODBCMDc5Cis6MDEzRTk4MDAyMjA3Cis6MTAzRTk5MDA5MDc4MDk3NDAxRjBBMzc0NzhGMEEzNzRCMkYwRTRGRjg4Cis6MTAzRUE5MDBGRTkwNzgwOUUwRkJBM0UwRkFBM0UwRjlFRjEyMEM4QThGCis6MTAzRUI5MDA5MDc4MDlFMEZCQTNFMEZBQTNFMEY5OTAwMDAxRTQxMjhECis6MTAzRUM5MDAwQzlDOTAwMDAyNzQxNTEyMEM5QzkwMDAwM0U0MTIwQ0Q3Cis6MTAzRUQ5MDA5QzkwMDAwNDc0RkYxMjBDOUM5MDAwMDVFNDEyMEM5QzQ5Cis6MTAzRUU5MDA5MDAwMDY3NEMzMTIwQzlDOTAwMDA3RTQxMjBDOUM5MDdECis6MTAzRUY5MDAwMDA4RTQxMjBDOUM5MDAwMDlFNDEyMEM5QzkwMDAwQTQyCis6MTAzRjA5MDA3NDAxMTIwQzlDOTA3ODBBRTQ3NUYwMEIxMjBDRjQwRkYyCis6MTAzRjE5MDAwRUJFMDc4RDkwNzgwOTc0MDFGMEEzNzQ3OEYwQTM3NDJDCis6MTAzRjI5MDBGRkYwRTRGRkZFOTA3ODA5RTBGQkEzRTBGQUEzRTBGOUQzCis6MTAzRjM5MDBFRjEyMEM4QTkwNzgwOUUwRkJBM0UwRkFBM0UwRjk5MDZDCis6MTAzRjQ5MDAwMDAxRTQxMjBDOUM5MDAwMDI3NDE1MTIwQzlDOTAwMDY0Cis6MTAzRjU5MDAwM0U0MTIwQzlDOTAwMDA0NzQ4MDEyMEM5QzkwMDAwNUUwCis6MTAzRjY5MDBFNDEyMEM5QzkwMDAwNjc0QzMxMjBDOUM5MDAwMDdFNEE4Cis6MTAzRjc5MDAxMjBDOUM5MDAwMDhFNDEyMEM5QzkwMDAwOUU0MTIwQ0FECis6MTAzRjg5MDA5QzkwMDAwQTc0MDExMjBDOUM5MDc4MEFFNDc1RjAwQjVECis6MDgzRjk5MDAxMjBDRjQwRjBFQkUwMzhEQTMKKzowMTNGQTEwMDIyRkQKKzoxMDNGQTIwMEU0RkU3NTNERkY3NTNFMDU3NTNGMTJBQjNEQUEzRUE5ODUKKzoxMDNGQjIwMDNGOTAwMDAxMTIwQzVENjQwMjcwMkZDREVFQ0QwRUVEMkMKKzoxMDNGQzIwMDZGNzAwMTIyOTAwMDAyMTIwRDBBODVGMDNCRjUzQzYyRUYKKzoxMDNGRDIwMDNCRTUzQjYyM0NFNTNDNjIzQjI5RkRFNTNCM0FDOUVERjIKKzoxMDNGRTIwMEM5NzUzREZGRjUzRTg5M0Y4MEMxN0IwMDdBMDA3OTAwQUIKKzowMTNGRjIwMDIyQUMKKzowOTNGRjMwMDUzRDhFRjQzRDgyMEMyMkQzMjRGCis6MDQzRkZDMDA1MzkxREYzMkNDCis6MTA0MDAwMDA5MDc5ODdFMEI0MDExRDkwNzk4NUUwQjQwMTAzMTI0MkY0Cis6MTA0MDEwMDBBQTkwNzk4NkUwQjQwMTAzMTIxODAwRTQ5MDc5ODVGMDQzCis6MTA0MDIwMDBBM0YwQTNGMDEyMkU5NDkwN0Y5QkUwRjUwQTU0MDJGNUMyCis6MTA0MDMwMDAwQTcwMDQ5MDc5N0ZGMDkwN0Y5QkUwRjUwQTU0MDJGRkFDCis6MTA0MDQwMDBGNTBBQkYwMjA2OTA3OTdGNzQwMUYwOTA3RjlCRTBGNTNFCis6MTA0MDUwMDAwQTU0MjBGNTBBNzAwNDkwNzk3RUYwOTA3RjlCRTBGNTc5Cis6MTA0MDYwMDAwQTU0MjBGRkY1MEFCRjIwMDY5MDc5N0U3NDAxRjA5MDczCis6MTA0MDcwMDA3OTdGRTBGRjkwNzk4MUUwNkY2MDM4OTA3OTc4NzQwMjAxCis6MTA0MDgwMDBGMDkwNzk4NEUwOTA3OTc5RjBFRkI0MDEwNkUwNTRGRTg1Cis6MTA0MDkwMDBGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OUUwOTA3OUE3Cis6MTA0MEEwMDA4NEYwQTJBRkU0MzNGNTEyQzJBRjEyMEJBMkU1MTI2MEE2Cis6MTA0MEIwMDAwMkQyQUY5MDc5N0VFMEZGOTA3OTgwRTA2RjYwMzg5MDE3Cis6MTA0MEMwMDA3OTc4NzQwMUYwOTA3OTdDRTA5MDc5NzlGMEVGQjQwMTFGCis6MTA0MEQwMDAwNkUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwOTA3OTkxCis6MTA0MEUwMDA3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjA1Cis6MTA0MEYwMDBBMkU1MTI2MDAyRDJBRjkwNzk3RkUwOTA3OTgxRjA5MEQyCis6MDg0MTAwMDA3OTdFRTA5MDc5ODBGMDIyNDUKKzoxMDQxMDgwMDkwNzkyREUwNjQwMTcwMzU5MDc5NzBFMEZGRDM5NDJEOUIKKzoxMDQxMTgwMDQwMkI5MDc5Njk3NDAxRjA5MDc5NjhFMDA0RjBFMEQzNUQKKzoxMDQxMjgwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzkyRDc0M0UKKzoxMDQxMzgwMDAzRjA4MDA2OTA3OTJENzQwMkYwMTIxMDAwOTA3OTJEMEEKKzoxMDQxNDgwMEUwQjQwMjJDOTA3OTcwRTBGRkMzOTQyRjUwMjJFRkQzOTMKKzoxMDQxNTgwMDk0MkE0MDFDOTA3OTY5NzQwMUYwOTA3OTY4RTAwNEYwMjEKKzoxMDQxNjgwMEUwRDM5NDBGNDAwQUU0RjA5MDc5MkQwNEYwMTIxMDAwODcKKzoxMDQxNzgwMDkwNzkyREUwQjQwMjI2OTA3OTcwRTBEMzk0MzE0MDFERjcKKzoxMDQxODgwMDkwNzk2OTc0MDFGMDkwNzk2OEUwMDRGMEUwRDM5NDBGQjUKKzoxMDQxOTgwMDQwMEJFNEYwOTA3OTJENzQwM0YwMTIxMDAwOTA3OTJEMDMKKzoxMDQxQTgwMEUwNjQwMzcwM0Y5MDc5NzBFMEZGQzM5NDVGNTAzNTkwRUUKKzoxMDQxQjgwMDc5Njk3NDAxRjA5MDc5NjhFMDA0RjBFMEQzOTQwRjQwRDUKKzoxMDQxQzgwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQzkKKzoxMDQxRDgwMDc5MkQ3NDAxRjBFRkQzOTQyRjQwMDY5MDc5MkQ3NDAyNTUKKzoxMDQxRTgwMEYwMTIxMDAwOTA3OTY5RTA3MDA1OTA3OTY4RjAyMkU0ODcKKzowNTQxRjgwMDkwNzk2OUYwMjIzRQorOjEwNDFGRDAwN0IwMTdBNzg3OTRDOTA3ODA2RUJGMEEzRUFGMEEzRTk4RAorOjEwNDIwRDAwRjBFNDEyMEM4QTkwNzgwNkUwRkJBM0UwRkFBM0UwRjk0MworOjEwNDIxRDAwOTAwMDAxNzQwMTEyMEM5QzkwNzgwN0U0NzVGMDAzMTI2NAorOjEwNDIyRDAwMENGNDkwNzgwNkUwRkJBM0UwRkFBM0UwRjlFNDEyMEM5RAorOjEwNDIzRDAwOEE5MDc4MDZFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwMAorOjEwNDI0RDAwMDIxMjBDOUM5MDc4MDdFNDc1RjAwMzEyMENGNDkwNzgzMAorOjEwNDI1RDAwMDZFMEZCQTNFMEZBQTNFMEY5RTQxMjBDOEE5MDc4MDZERAorOjEwNDI2RDAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwMTc0MDMxMjBDOUNBQgorOjEwNDI3RDAwOTA3ODA3RTQ3NUYwMDMxMjBDRjQ5MDc4MDZFMEZCQTMzOAorOjEwNDI4RDAwRTBGQUEzRTBGOUU0MTIwQzhBOTA3ODA2RTBGQkEzRTBEMworOjBDNDI5RDAwRkFBM0UwRjk5MDAwMDE3NDA0MTIwQzlDREMKKzowMTQyQTkwMDIyRjIKKzoxMDQyQUEwMEU0RkZGRTdCMDE5MDc4MEMwNEYwQTM3NDc4RjBBMzc0MDkKKzoxMDQyQkEwMDJCRjA5MDc4MENFMEZCQTNFMEZBQTNFMEY5OTAwMDAyNUYKKzoxMDQyQ0EwMDEyMEM1REZEOTA3OTlBRTA2RDYwMTNFRkMzOTQwNTUwNkUKKzoxMDQyREEwMDBEMEY5MDc4MERFNDc1RjAwMzEyMENGNDgwRDQ4RDMzMzEKKzoxMDQyRUEwMDkwNzgwQ0UwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjBDMkQKKzoxMDQyRkEwMDVERkQ5MDc5OUJFMEZDNkQ2MDEzRUVDMzk0MEI1MDBENEQKKzoxMDQzMEEwMDBFOTA3ODBERTQ3NUYwMDMxMjBDRjQ4MEQzOEMzNEVGMjAKKzoxMDQzMUEwMDY0MDU2MDAzQkUwQjA4OTA3RkI0RTA0NDAxRjAyMjkwNkMKKzoxMDQzMkEwMDc4MENFMEZCQTNFMEZBQTNFMEY5MTIwQzQ0RkYyNEYwQjYKKzoxMDQzM0EwMDYwMDgyNDBFNzAwRTEyNDk0RDIyOTA3OTIwRTUzNEYwNUYKKzowQjQzNEEwMDEyMUIyQTIyOTA3RkI0RTA0NDAxRjAxNworOjAxNDM1NTAwMjI0NQorOjBDNDM1NjAwNzg3RkU0RjZEOEZENzU4MTNGMDI0MzlEOUUKKzoxMDQzNjIwMDAyNDhBOUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyODAKKzoxMDQzNzIwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNUMKKzoxMDQzODIwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGMkIKKzoxMDQzOTIwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDQ2NjFFNDdFMTQKKzoxMDQzQTIwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMjAKKzoxMDQzQjIwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRTcKKzoxMDQzQzIwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMTIKKzoxMDQzRDIwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFQ0EKKzoxMDQzRTIwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwNTUKKzoxMDQzRjIwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGMTAKKzoxMDQ0MDIwMEMwRTBDMkNBQzJDRjkwNzk3QUUwQjQwMTFGMTI0QkFFQUIKKzoxMDQ0MTIwMDEyNDc1ODUzQThBMDkwN0ZBRUU0RjAxMjA3QUExMjRCOUQKKzoxMDQ0MjIwMEI3OTA3RkFFNzQxRkYwNDNBODA1ODAwMzUzQThBMDUzMzIKKzoxMDQ0MzIwMEE4RkE3NUU4MDExMjA5MTU3NUU4MEQ0M0E4MDVEMEUwNDAKKzoxMDQ0NDIwMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDBFMEZBMEYKKzoxMDQ0NTIwMEQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjBEMEUwNTQKKzowMTQ0NjIwMDMyMjcKKzoxMDQ0NjMwMDkwN0ZFQ0UwRjUwOTE0NjAxRDE0NjAyQTE0NjAzNzE0ODIKKzoxMDQ0NzMwMDYwNDQyNDA0NzA1MDkwNzk2MkUwOTA3RjAwRjA5MDdGNTQKKzoxMDQ0ODMwMEI1NzQwMUYwODA0NzkwNzk2M0UwOTA3RjAwRjA5MDdGRUUKKzoxMDQ0OTMwMEI1NzQwMUYwODAzNzkwNzk2NEUwOTA3RjAwRjA5MDdGRUQKKzoxMDQ0QTMwMEI1NzQwMUYwODAyNzkwNzk2NkUwOTA3RjAwRjA5MDdGRUIKKzoxMDQ0QjMwMEI1NzQwMUYwODAxNzkwNzk2N0UwOTA3RjAwRjA5MDdGRUEKKzowRjQ0QzMwMEI1NzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwRDMyMjdDCis6MDQ0NEQyMDA4RDM2OEIzNzYxCis6MTA0NEQ2MDAxMjNGQTJFQTQ5NjA1NzEyMEM0NDdFMDAyOUZGRUUzQUM5Cis6MTA0NEU2MDBDOUVGQzk3NTM4RkZGNTM5ODkzQUFCMzhBQTM5QTkzQUZGCis6MTA0NEY2MDA5MDAwMDExMjBDNURGRjY0MDQ2MDA1RUY2NDA1NzAyRUU4Cis6MTA0NTA2MDBFRkI0MDQxNTkwMDAwMjEyMEM1RDY1MzY3MDBCOTAwMDM2Cis6MTA0NTE2MDAwMzEyMEM1RDY1Mzc3MDAxMjIxMjBDNDQ3RTAwMjlGRkUwCis6MTA0NTI2MDBFRTNBQzlFRkM5NzUzOEZGRjUzOTg5M0E4MEJDN0IwMDg4Cis6MDQ0NTM2MDA3QTAwNzkwMDhFCis6MDE0NTNBMDAyMjVFCis6MTA0NTNCMDBFNEZGN0IwMTkwNzgxQzA0RjBBMzc0NzhGMEEzNzQ0QzE3Cis6MTA0NTRCMDBGMDkwNzgxQ0UwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMkQ0Cis6MTA0NTVCMDAwQzVERkU5MDdGRUNFMDZFNjAxM0VGQzM5NDA0NTAwRDg2Cis6MTA0NTZCMDA5MDc4MURFNDc1RjAwMzEyMENGNDBGODBENEJGMDQwOThFCis6MTA0NTdCMDA5MDdGQjRFMDQ0MDFGMDgwMTQ5MDc5MjFFMEZGOTA3OEIzCis6MTA0NThCMDAxQ0UwRkJBM0UwRkFBM0UwRjlFRjEyMEM4QTkwN0ZDNUM1Cis6MDM0NTlCMDA3NDAxRjBCOAorOjAxNDU5RTAwMjJGQQorOjBFNDU5RjAwQzBFMEMwODNDMDgyQzBEMEVFQzBFMEVGQzBFMDNDCis6MTA0NUFEMDA5MDc5ODVFMDY0MDE2MDA1QTNFMEI0MDEyRDkwNzk4N0QxCis6MTA0NUJEMDA3NDAxRjBFNEZGOTA3RkM1RTBGRUVGQzM5RTUwMUI3NEM1Cis6MTA0NUNEMDBDMDJGRjU4MkU0MzQ3RUY1ODNFMEZFNzQyMTJGRjU4MjUxCis6MTA0NUREMDBFNDM0NzlGNTgzRUVGMDBGODBEQjUzOTFFRjkwN0ZBQUYxCis6MDQ0NUVEMDBFMDQ0MDFGMEI1Cis6MEY0NUYxMDBEMEUwRkZEMEUwRkVEMEQwRDA4MkQwODNEMEUwMzIzNworOjEwNDYwMDAwRTRGRjdCMDE5MDc4MTkwNEYwQTM3NDc4RjBBMzc0NEM1NAorOjEwNDYxMDAwRjA5MDc4MTlFMEZCQTNFMEZBQTNFMEY5OTAwMDAyMTIxMQorOjEwNDYyMDAwMEM1REZFOTA3RkVDRTA2RTYwMTNFRkMzOTQwNDUwMERDMAorOjEwNDYzMDAwOTA3ODFBRTQ3NUYwMDMxMjBDRjQwRjgwRDRCRjA0MDhDQworOjEwNDY0MDAwOTA3RkI0RTA0NDAxRjAyMjkwNzgxOUUwRkJBM0UwRkFGNworOjEwNDY1MDAwQTNFMEY5MTIwQzQ0OTA3RjAwRjA5MDdGQjU3NDAxRjA1NAorOjAxNDY2MDAwMjIzNworOjEwNDY2MTAwMDExODAyMDExOTBBMDExQzAwQzEyOEMxMjkwMTFGMDFGOQorOjBGNDY3MTAwNDQ3OTlGMDAwMDAwMDA0MTc5QTMwMDQxNzlBNDAwMjMKKzowNDQ2ODAwMDQxNzk4OTAwRjMKKzoxMDQ2ODQwMDAxMjIwMTQxNzkzMUZGNDE3OTM0MDA0RDc5MzUzRjNGQjEKKzoxMDQ2OTQwMDAwMDgwMDAxMDAwMDAwMDAwMDAwMTU0RDc5NDIzRjNGNzIKKzoxMDQ2QTQwMDA2MDgwNDA3MDAwMDAwMDAwMDAwMTU0RDc5NEYwQTBBQUYKKzowQjQ2QjQwMDA5MDAwMTA5MDIwMzA0MDUwNjA3MDhDNQorOjAxNDZCRjAwMDBGQQorOjEwNDZDMDAwMTIwQUNEOTA3RkE1RTBGNTIxRTUyMTU0MDFGNTIxNjQ4MgorOjEwNDZEMDAwMDE2MDI4RTUyMjY0MDE3MDIyOTA3RkE1RTBGNTIxNTQ1NQorOjEwNDZFMDAwMDJGNTIxNzAwMzc1MjIwMTkwN0ZBNUUwRjUyMTU0MDRBNQorOjBDNDZGMDAwRkZGNTIxQkYwNEQzNzUyMjAxODBDRTIyMEIKKzowNDQ2RkMwMDUzRDhGNzMyNjYKKzoxMDQ3MDAwMDAyNDlGQTAwMDIzQzU0MDAwMjE3RTQwMDAyNEExMjAwNzcKKzoxMDQ3MTAwMDAyMzdBMjAwMDI0N0ZGMDAwMjRBNDEwMDAyNDU5RjAwMDMKKzoxMDQ3MjAwMDAyNDk4RTAwMDI0OUFCMDAwMjRBNTgwMDAyNEE2RjAwNUIKKzoxMDQ3MzAwMDAyNEE4NjAwMDI0QTlEMDAwMjRBQjQwMDAyNEFDQjAwQTcKKzoxMDQ3NDAwMDAyNEFFMjAwMDI0QUY5MDAwMjRCMTAwMDAyNEIyNzAwMjUKKzowODQ3NTAwMDAyNEIzRTAwMDI0QjU1MDAzNAorOjEwNDc1ODAwRTUxODcwMTQ5MDc5OENFMDA0RjA5MDc5OEJFMEMzOTQ5QworOjEwNDc2ODAwMDA0MDE1RTAxNEYwODAxMDkwNzk4QkUwMDRGMEEzRTA4RAorOjEwNDc3ODAwQzM5NDAwNDAwM0UwMTRGMDkwNzk4QkUwRDM5NDE0NDA4NAorOjEwNDc4ODAwMDRFNEY1MThGMDkwNzk4Q0UwRDM5NDE0NDAwNTc1MTg3QQorOjA0NDc5ODAwMDFFNEYwMjIyNgorOjEwNDc5QzAwOTA3RkQ3RTBGNTMzOTA3RkVDRTBGNTA5MTQ2MDExMTRBRAorOjEwNDdBQzAwNjAxQjI0MDI3MDI0OTA3RkVBRTA5MDc5NjJGMDgwMjFGMworOjEwNDdCQzAwOTA3RkVBRTA5MDc5NjNGMDEyMTAwMDgwMTQ5MDdGRUEwOQorOjEwNDdDQzAwRTA5MDc5NjRGMDEyMjgwMTgwMDc5MDdGQjRFMDQ0MDFGNgorOjAyNDdEQzAwRjBEMzE4Cis6MDE0N0RFMDAyMkI4Cis6MTA0N0RGMDA5MDc5Nzg3NDA0RjA5MDc5MzNFMDkwNzk3OUYwQTJBRjAyCis6MTA0N0VGMDBFNDMzRjUxMkMyQUYxMjBCQTJFNTEyNjAwMkQyQUYyMjcwCis6MDE0N0ZGMDAzMjg3Cis6MDI0ODAwMDA4RjM2RjEKKzoxMDQ4MDIwMEU0RjUzNzc1MzhGRjc1MzkwNzc1M0EwMUFCMzhBQTM5QkYKKzoxMDQ4MTIwMEE5M0E5MDAwMDExMjBDNURCNDAzMUZBRjM3MDUzN0VGQzAKKzoxMDQ4MjIwMDY1MzY3MDAxMjIxMjBDNDQ3RTAwMjlGRkVFM0FDOUVGNzAKKzoxMDQ4MzIwMEM5NzUzOEZGRjUzOTg5M0E4MEQyN0IwMDdBMDA3OTAwNTAKKzowMTQ4NDIwMDIyNTMKKzoxMDQ4NDMwMDMwMjYyRkMyMjY5MDc5MkRFMEZGQjQwMTA5RTRGNTBDNDAKKzoxMDQ4NTMwMDc1MERGODc1MEUwQUVGQjQwMjA5RTRGNTBDNzUwREYwNDkKKzoxMDQ4NjMwMDc1MEUwQkVGQjQwMzA5RTRGNTBDNzUwREY4NzUwRTE3MEYKKzowMzQ4NzMwMEQyMjIyMjJDCis6MTA0ODc2MDAzMDI1MkZDMjI1OTA3OTJERTBGRkI0MDEwOTc1MENDMEIzCis6MTA0ODg2MDA3NTBEMTQ3NTBFMEJFRkI0MDIwOUU0RjUwQzc1MEQxMEQ5Cis6MTA0ODk2MDA3NTBFMENFRkI0MDMwOUU0RjUwQzc1MEQxODc1MEUxOEJBCis6MDM0OEE2MDBEMjIyMjJGOQorOjEwNDhBOTAwRTRGNTMyMTIwRjUwMjAyRTEwRTUzMkMzOTQwMjUwMDk1QworOjEwNDhCOTAwMDUzMkQyMzAxMjQ5MDU4MEVEMzAyRTA1MTIxNDU3QzI0NworOjBGNDhDOTAwMkUzMDJEMDYxMjA3OUExMjQ4RDkxMjQwMDA4MEVBQUQKKzowMTQ4RDgwMDIyQkQKKzoxMDQ4RDkwMDkwN0ZENkUwRjUxRDU0ODBGNTFENjQ4MDcwMURDMkFGMzAKKzoxMDQ4RTkwMEUwNDQ4MEYwRTA0NDAxRjA3RjBDN0UwMDEyNEI2QzkwQjQKKzowQzQ4RjkwMDdGRDZFMDU0RkVGMDUzODdGRUQyQUYyMkMxCis6MTA0OTA1MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAzMDA0RTA0NEZBCis6MTA0OTE1MDAwMkYwN0ZEQzdFMDUxMjRCNkM5MDdGRDZFMDU0RjdGMEY5Cis6MDU0OTI1MDBFMDQ0MDRGMDIyNTMKKzoxMDQ5MkEwMDkwN0ZFQkUwMTQ3MDE0OTA3RkU5RTAyNDdGNzAwNDEyMEEKKzoxMDQ5M0EwMDQ2MDAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MjQKKzowMzQ5NEEwMDAxRjAyMjU3Cis6MTA0OTREMDA5MDdGRUJFMDE0NzAxMzkwN0ZFOUUwMTQ3MDA0MTI0NTMyCis6MTA0OTVEMDAzQjIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMTBCCis6MDI0OTZEMDBGMDIyMzYKKzoxMDQ5NkYwMEU0RkY3NEU4MkZGNTgyRTQzNDdGRjU4M0UwRkU3NDk2NUMKKzowRTQ5N0YwMDJGRjU4MkU0MzQ3OUY1ODNFRUYwMEZCRjA4RTRFMworOjAxNDk4RDAwMjIwNworOjEwNDk4RTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjA1MworOjBENDk5RTAwOTA3RkI3NzQwM0YwRDA4MkQwODNEMEUwMzI1OAorOjEwNDlBQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAzNQorOjBENDlCQjAwOTA3RkM3NzQwM0YwRDA4MkQwODNEMEUwMzIyQgorOjEwNDlDODAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTJCOQorOjBBNDlEODAwNEI2QzkwN0ZENkUwNTRGRUYwMjJGNQorOjEwNDlFMjAwRTRGNTFBNzUxQjAxOTA3OTkxMDRGMEEzRjBFNEEzRjBBOQorOjA4NDlGMjAwQTM3NDBBRjBFNEEzRjAyMjEzCis6MTA0OUZBMDBDMEUwQzA4M0MwODJEMjJFNTM5MUVGOTA3RkFCNzQwMTg2Cis6MDg0QTBBMDBGMEQwODJEMDgzRDBFMDMyMkQKKzoxMDRBMTIwMEMwRTBDMDgzQzA4MkQyMkQ1MzkxRUY5MDdGQUI3NDA4NjcKKzowODRBMjIwMEYwRDA4MkQwODNEMEUwMzIxNQorOjEwNEEyQTAwOTA3RkVBRTBGNTA4RTQ5MDc5NjJGMEEzRjBBM0YwOTBCMQorOjA3NEEzQTAwNzk2NkYwQTNGMEQzMjIxRQorOjEwNEE0MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjBBMAorOjA3NEE1MTAwRDA4MkQwODNEMEUwMzJENworOjEwNEE1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjA4NgorOjA3NEE2ODAwRDA4MkQwODNEMEUwMzJDMAorOjEwNEE2RjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjA2RQorOjA3NEE3RjAwRDA4MkQwODNEMEUwMzJBOQorOjEwNEE4NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjA1NAorOjA3NEE5NjAwRDA4MkQwODNEMEUwMzI5MgorOjEwNEE5RDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjAzQworOjA3NEFBRDAwRDA4MkQwODNEMEUwMzI3QgorOjEwNEFCNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjAxRQorOjA3NEFDNDAwRDA4MkQwODNEMEUwMzI2NAorOjEwNEFDQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjAwNgorOjA3NEFEQjAwRDA4MkQwODNEMEUwMzI0RAorOjEwNEFFMjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjBFMAorOjA3NEFGMjAwRDA4MkQwODNEMEUwMzIzNgorOjEwNEFGOTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjBDOAorOjA3NEIwOTAwRDA4MkQwODNEMEUwMzIxRQorOjEwNEIxMDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjA5MQorOjA3NEIyMDAwRDA4MkQwODNEMEUwMzIwNworOjEwNEIyNzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjA3OQorOjA3NEIzNzAwRDA4MkQwODNEMEUwMzJGMAorOjEwNEIzRTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjAyMworOjA3NEI0RTAwRDA4MkQwODNEMEUwMzJEOQorOjEwNEI1NTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjAwQgorOjA3NEI2NTAwRDA4MkQwODNEMEUwMzJDMgorOjEwNEI2QzAwOEUzMzhGMzRFNTM0MTUzNEFFMzM3MDAyMTUzMzRFNjAwQQorOjA3NEI3QzAwMDUxMjA3ODk4MEVFMjJGQgorOjBGNEI4MzAwOTA3RkVBRTBCNEZGMDQxMjMwMDAyMjEyMzYwRTIyQjcKKzowRTRCOTIwMEMwRTBDMjhCRDIyNDMwMjMwMkMyMjNEMEUwMzIxNgorOjBFNEJBMDAwOTA3RjAwRTUwOEYwOTA3RkI1NzQwMUYwRDMyMkZECis6MDk0QkFFMDAzMDI0MDVDMjI0NzUxODAxMjIwRgorOjA5NEJCNzAwMzAyMzA1QzIyM0U0RjUxODIyQTUKKzowNzRCQzAwMDUzQzBGRTUzQzBGRDMyOUIKKzowNjRCQzcwMDUzOTE3RkQyMjUzMjVDCis6MDU0QkNEMDBDMjg5RDIyMzMyNzEKKzowMzRCRDIwMEMyOEQzMjVGCis6MDM0QkQ1MDBDMjhGMzI1QQorOjAyNEJEODAwRDMyMkU2Cis6MDI0QkRBMDBEMzIyRTQKKzowMjRCREMwMEQzMjJFMgorOjAyNEJERTAwRDMyMkUwCis6MDI0QkUwMDBEMzIyREUKKzowMjRCRTIwMEQzMjJEQworOjAyNEJFNDAwQzMyMkVBCis6MDE0QkU2MDAyMkFDCis6MDAwMDAwMDFGRgorLyoKKyAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKKyAqCisgKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKKyAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAorICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKKyAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KKyAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKKyAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKKyAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKKyAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCisgKi8KKy8qCitWRVJTSU9OPTEuMC4yLjkxNgorREFURT0xMi4wMi4yMDAyCisqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pMjYvbG9hZGVyLkhFWCBiL2Zpcm13YXJlL2VtaTI2L2xvYWRlci5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjNDM5ZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTI2L2xvYWRlci5IRVgKQEAgLTAsMCArMSwxMTYgQEAKKzowMzAwMDAwMDAyMDMxQ0RDCis6MDMwMDQzMDAwMjA0MDBCNAorOjEwMDEwMDAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMUJFOTBGRQorOjEwMDExMDAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTBFOAorOjEwMDEyMDAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU1RQorOjEwMDEzMDAwMTY0NTE1NzAwMzAyMDFCRUU0OTA3RkM1RjA5MDdGQjRCMAorOjEwMDE0MDAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAyNzdBRjBDN0U1QQorOjEwMDE1MDAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUwMgorOjEwMDE2MDAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU0MworOjEwMDE3MDAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjU3OQorOjEwMDE4MDAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA1NgorOjEwMDE5MDAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MENENworOjEwMDFBMDAwMTIwMjhGQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjUzMgorOjBGMDFCMDAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzMUYKKzowMTAxQkYwMDIyMUQKKzoxMDAxQzAwMEMyMjBEMkU4NDNEODIwOTA3RkFCNzRGRkYwOTA3RkE5ODMKKzoxMDAxRDAwMEYwOTA3RkFBRjA1MzkxRUY5MDdGOTVFMDQ0QzBGMDkwQUIKKzoxMDAxRTAwMDdGOThFMDQ0QzBGMDkwN0Y5RUUwNDRDMEYwRTQ5MDdGQjAKKzoxMDAxRjAwMDk0RjA5MDdGOURFMDQ0MEZGMDkwN0Y5N0UwNTRGMEYwRjIKKzoxMDAyMDAwMDkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGQkMKKzoxMDAyMTAwMDkwN0Y5N0UwNTRGMEYwMjAyMDQyNzUxNDAwNzUxMzAwOTEKKzoxMDAyMjAwMDc1MTIwMDc1MTEwMDdGNDg3RTkyN0QwMDdDMDBBQjE0MzIKKzoxMDAyMzAwMEFBMTNBOTEyQTgxMUMzMTIwNDlBNTBEQjIwMjBEODdBNUQKKzoxMDAyNDAwMDAwNzkwMDc4MDBFNTE0MjQwMUY1MTRFQTM1MTNGNTEzNUMKKzoxMDAyNTAwMEU5MzUxMkY1MTJFODM1MTFGNTExODBDQTMwMjBGRDEyOEEKKzoxMDAyNjAwMDAxMDA1MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0NzcKKzowNjAyNzAwMDAyRjBDMjIwODBFNjRFCis6MDEwMjc2MDAyMjY1Cis6MTAwMjc3MDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDAwCis6MDgwMjg3MDBGOEUyMDhGMEEzREZGQTIyRkYKKzoxMDAyOEYwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwNTcKKzoxMDAyOUYwMDM3NzQwMUYwOTA3RjkzRTA1NEZDRjA5MDdGOTZFMDU0MTgKKzoxMDAyQUYwMEZDRjA5MDdGOUNFMDQ0MDNGMDkwN0Y5NEUwNTQ3RkYwNEIKKzoxMDAyQkYwMDkwN0Y5N0UwNDQ4MEYwOTA3RjlERTA0NDgwRjA5MDdGQTYKKzoxMDAyQ0YwMDk3RTA1NDdGRjA0NDgwRjBFNTBDRkY5MDdFQzBFMEY1OUUKKzoxMDAyREYwMDI4RTRBMjQ3MzNGMjY5RjJFNEEyNDYzM0YyNjlGMkU0NkEKKzoxMDAyRUYwMEEyNDUzM0YyNjlGMkU0QTI0NDMzRjI2OUYyRTRBMjQzODUKKzoxMDAyRkYwMDMzRjI2OUYyRTRBMjQyMzNGMjY5RjJFNEEyNDEzM0YyM0IKKzowRDAzMEYwMDY5RjJFNEEyNDAzM0YyNjlGMkEzREZDMjIyREEKKzowQzAzMUMwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDM2M0E4Cis6MTAwMzI4MDAwMjAxQzBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjJBCis6MTAwMzM4MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0Q2Cis6MTAwMzQ4MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkE1Cis6MTAwMzU4MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDg0RTQ3RUFECis6MTAwMzY4MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzlBCis6MTAwMzc4MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzYxCis6MTAwMzg4MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQThDCis6MTAwMzk4MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTQ0Cis6MTAwM0E4MDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3Rjk3Cis6MEIwM0I4MDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyQTAKKzoxMDAzQzMwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMTEKKzowODAzRDMwMEYwRDA4MkQwODNEMEUwMzJBQgorOjEwMDNEQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDAyQQorOjA2MDNFQjAwODJEMDgzRDBFMDMyNTUKKzowMTAzRjEwMDMyRDkKKzowMTAzRjIwMDMyRDgKKzowMTAzRjMwMDMyRDcKKzowMTAzRjQwMDMyRDYKKzowMTAzRjUwMDMyRDUKKzowMTAzRjYwMDMyRDQKKzowMTAzRjcwMDMyRDMKKzowMTAzRjgwMDMyRDIKKzowMTAzRjkwMDMyRDEKKzowMTAzRkEwMDMyRDAKKzowMTAzRkIwMDMyQ0YKKzowMTAzRkMwMDMyQ0UKKzowMTAzRkQwMDMyQ0QKKzowMTAzRkUwMDMyQ0MKKzowMTAzRkYwMDMyQ0IKKzoxMDA0MDAwMDAyMDNDMzAwMDIwM0RCMDAwMjAzQTgwMDAyMDQ2RTAwMjMKKzoxMDA0MTAwMDAyMDQ1ODAwMDIwM0YxMDAwMjAzRjIwMDAyMDNGMzAwOTkKKzoxMDA0MjAwMDAyMDNGNDAwMDIwM0Y1MDAwMjAzRjYwMDAyMDNGNzAwRTIKKzoxMDA0MzAwMDAyMDNGODAwMDIwM0Y5MDAwMjAzRkEwMDAyMDNGQjAwQzIKKzoxMDA0NDAwMDAyMDNGQzAwMDIwM0ZEMDAwMjAzRkUwMDAyMDNGRjAwQTIKKzowODA0NTAwMDAyMDRBQjAwMDIwNEFDMDA0MQorOjEwMDQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDA5RQorOjA2MDQ2ODAwODJEMDgzRDBFMDMyRDcKKzoxMDA0NkUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwOTAKKzowNjA0N0UwMDgyRDA4M0QwRTAzMkMxCis6MTAwNDg0MDAwMjBBMDAwRjAxMEMxMTA0MEQwMDAwMDAwMDQxMDAwMERECis6MDEwNDk0MDAwMDY3Cis6MDQwNDk1MDAwMjE3MDAwMDRBCis6MDEwNDk5MDAwMDYyCis6MTAwNDlBMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMEI4Cis6MDEwNEFBMDAyMjJGCis6MDEwNEFCMDAzMjFFCis6MDEwNEFDMDAzMjFECis6MTAxMTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjAzCis6MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCis6MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCis6MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Cis6MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Cis6MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCis6MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Cis6MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCis6MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Cis6MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Cis6MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCis6MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCis6MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCis6MDIxMUQwMDAwMDAwMUQKKzowMDAwMDAwMUZGCisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pNjIvYml0c3RyZWFtLkhFWCBiL2Zpcm13YXJlL2VtaTYyL2JpdHN0cmVhbS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M2ZWNjMwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTYyL2JpdHN0cmVhbS5IRVgKQEAgLTAsMCArMSw0MzcyIEBACis6MTA4MDEwMDBGRkZGRkZGRkFBOTk1NTY2MzAwMDgwMDEwMDAwMDAwN0FFCis6MTA4MDIwMDAzMDAxNjAwMTAwMDAwMDBCMzAwMTIwMDEwMDgwM0YyRDc1Cis6MTA4MDMwMDAzMDAwQzAwMTAwMDAwMDAwMzAwMDgwMDEwMDAwMDAwOTk1Cis6MTA4MDQwMDAzMDAwMjAwMTAwMDAwMDAwMzAwMDgwMDEwMDAwMDAwMTJECis6MTA4MDUwMDAzMDAwNDAwMDUwMDAzRTA0MDgxMjEwMDAwMDAwMDAwMEY0Cis6MTA4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA4MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNEJDCis6MTA4MDgwMDA4MDAwMDAwMDAwMDAwMDAwMDAxMjEwMDAwMDAwMDAwMDRFCis6MTA4MDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTA4MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA4NDBDCis6MTA4MEIwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDNFCis6MTA4MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA4MEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDk4Cis6MTA4MEUwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMENFCis6MTA4MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTA4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTA4MTEwMDA4MDAwMDAwMDAwMDAwMDAwMDAxMjAwMDAwMDAwMDAwMENECis6MTA4MTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTA4MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDNCCis6MTA4MTQwMDA4MDAwMDAwMDAwMDAwMDAwMDgxMzAwMDAwMDAwMDAwMDk0Cis6MTA4MTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTA4MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTA4MTcwMDA5MDAwMDAwMDAwMDAwMDAwMDAxMjAwMDAwMDAwMDAwMDVECis6MTA4MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTA4MTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDVCCis6MTA4MUEwMDA5MDAwMDAwMDAwMDAwMDAwRjcxMDAxMTQwMDI1MDAwNUY5Cis6MTA4MUIwMDA0MDAxNTAwMDk0MDAxNTAwMDc0MDAxRDAwMDk0MDAyNUI0Cis6MTA4MUMwMDA4MDAxNjAwMkQ4MDBGNjAwMkY4MDAyRTAwNEQ4Mzc0NDE2Cis6MTA4MUQwMDA5MDAwMDAwMDAwMDAwMDAwQzAwNUYyMDBDQzkwMzkyMEEzCis6MTA4MUUwMDAwRDk4MDNEMjAwRTc4MDM3MDQwRUYxODM3RTAwREY5MDA0Cis6MTA4MUYwMDAzMUU0OEY3OTAzN0MyMERGMjIzM0MwMENGMDIyMzAwMDgxCis6MTA4MjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMDYyMDA4MDI0MjIyMDI2Cis6MTA4MjEwMDAwODk4MTJFMjAwOEI4MTIwOTQwODc0MDIyRTAwOEEwMUQzCis6MTA4MjIwMDAyMkM4MDg5MjAyM0Q4MDhCNjAyMjgwMDhCMDAyMjAwNEEwCis6MTA4MjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM4MDBBMDAwMjAwMEY5Cis6MTA4MjQwMDAwQjEwMDJDMDAwQTEwMDI0MDk0QTMyMDI0ODAwQjEwMDBDCis6MTA4MjUwMDA2MkMwMDlBMDQ2Q0MyNDkzNDkyQTgwNDgzMDIyNjIwMTlBCis6MTA4MjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MTJBODAwMjIwMDQ1Cis6MTA4MjcwMDAwODkwMDJFMDAwODk4MDIyNDQwOEIwMTJBODAwQTk0MEJBCis6MTA4MjgwMDAyMkMwMDg5MDgyQUMwMDlCMDQyQUM0MDhCMDAyNzAwNDhCCis6MTA4MjkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNDg0MDBFOTgwQjI2NDY3Cis6MTA4MkEwMDA0REEwMDNFQTIwRTlDMDM2NDAwRUIwMDM0NDAwRkI5MDI1Cis6MTA4MkIwMDBCMjg4MERCQzAzRUMwODVCMDAzODYwMkNCMDYzNDAwNDRFCis6MTA4MkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MjZERDkwMzc0MDlGCis6MTA4MkQwMDA0RkUwMTNGMjgwRkQwMDNEQTAwRDcwMDM3NTAwNUUwMEJECis6MTA4MkUwMDAzRkE0MERGOTAzNUMxMEVCMDAzNzIwMEYzMDAzQjgwMEZBCis6MTA4MkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBFOTgwMzI0MDQ3Cis6MTA4MzAwMDAwQ0ExODNFODAwRTkwMDMyNDIwRUIwMDNBQzQ4RTkwMDVBCis6MTA4MzEwMDAzQTgwMEVBNDAzRUMwMEVCMDBCMjAzMEVCMDBCMTAwNDg1Cis6MTA4MzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJFODA4OUQxMjA0MEY4Cis6MTA4MzMwMDAwOEEwMDJDMDAwODE4MDIyNTgwOEY1MDIyRjQwOEIwMDVGCis6MTA4MzQwMDAyMEMwMDgzMDQzN0MwMDg3MDAyMjQwMDhGMDAyMzIwMDQxCis6MTA4MzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQyMDE5QTQ0MjhBMjBECis6MTA4MzYwMDAwODE4MDJDMDgwQTE4MEEwMDAwODMwMDI4RTAwQUIwMDc3Cis6MTA4MzcwMDAyQzQwMEEzMDAyMEMwMEEzMDAyMDQ0MEEzMDAyMzgwMENFCis6MTA4MzgwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMTMyMDA5NjgyMkJBMjI1Cis6MTA4MzkwMDA4ODVBMDJGMjAwMDU4MDI5QTAwODc4NDJCRTAwOEU4NDI3Cis6MTA4M0EwMDAyRjYxMEFEODAyNEUxMEE3ODAyMDI4MDg3ODAyMTgwMEYyCis6MTA4M0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBGMjI0Mzg4MDU3Cis6MTA4M0MwMDAyQzFBMDNDNDAwRTA1OEEwODAyRTMwMDM4ODQxRTMwMjM5Cis6MTA4M0QwMDAzQzQwMDYyMDAzOEMwMEUzMDAxMDAwMEUzMTQzMTIwMkUzCis6MTA4M0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDk4MDBFRTAxMzc4NEVFCis6MTA4M0YwMDA5RkQ5MDNGMDQ4RkQxMDM3QzAwN0IwMDM1QzAwRjYxMEFBCis6MTA4NDAwMDAzM0MwMERFMTAzRUQyMERGMTAzRjQ4MEZGMDIzRDAwNjBECis6MTA4NDEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDJDQjgwMzBDMDJFCis6MTA4NDIwMDAwQ0EwMDNFMjAyQzkwMDNBNDAwREI2MDM2NDAwRUIwMDYxCis6MTA4NDMwMDAzRUMwMEZCMDAzRUQwMEZCMDEzRUUwMENCMDAyRUEwMENECis6MTA4NDQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDA4NzAwMjFDMDY3Cis6MTA4NDUwMDAyODYwMDJEMDAwODUwMDJEODA0OEYwODIxQzAwQjcwMDAzCis6MTA4NDYwMDAyRDAwMEI1MDAyREMwMEI3QTAyRjgwMjg3QTAyRDIwNDI2Cis6MTA4NDcwMDA2MDAwMDAwMDAwMDAwMDAwQzEwMEJFMDA4NzgwMjFFMDE1Cis6MTA4NDgwMDAyODY4MDJENzAwODQ4MDJERTA0OTc5MDY1MzA5QjU4MDE5Cis6MTA4NDkwMDAyREUyMEI3ODAyREU4MEI3OTAyREIwMDg3OTAyRjAwMDUzCis6MTA4NEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMTA4MzAxMjhDODAwCis6MTA4NEIwMDAwODIwMDJDMjA2ODEwMDJDQzg4ODMwNjIwRTIxQjNBMEI5Cis6MTA4NEMwMDAyQ0MxMEJCNjAyQ0MwMEIzMDAyQ0UwMDgzMDAyRDIwNDYxCis6MTA4NEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBDQTQwQjA4MDhECis6MTA4NEUwMDAwQzJDMDJGODAwQzYyMDNGOTAwREEwMDM3QjAxRUVFMEFCCis6MTA4NEYwMDAzRkI0MEZFQzAzRTgwMEZBMDAzRkEwMENBMDAzRkEwNDFECis6MTA4NTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUzMDBGODA5MjYwMEI5Cis6MTA4NTEwMDAwRkMxODNFMDEwRjg0MDNDMDAwRjgwMDNFMDAxRjgwMDM5Cis6MTA4NTIwMDAzRTAwMEY4MTAzRTAwNEY4MDAzRTEwMEY4MDAzRDIwMEVDCis6MTA4NTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDJDOTAwM0U0MEM2Cis6MTA4NTQwMDA0RjkwNjMyNjg0MzkwMkIyNDAwQzkxMDMyNDAwRjkwMDU1Cis6MTA4NTUwMDAzRTQwMEY5MDAzMjQwMEYxMDAzQTQ0MEY5MDAzQzIwNDAwCis6MTA4NTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDQ1MDA4OTQwMkU0MERCCis6MTA4NTcwMDAwODkyMEEyNDAwQjkzMTIyNjA4ODk0OEEyNDIwQjkwMDI0Cis6MTA4NTgwMDAyRTQwMEI5MDAyMjQwMEI5MDAyMjY4MEI5MDAyRTAwMEZDCis6MTA4NTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0QTA4RDg0MkY0MDZBCis6MTA4NUEwMDAwQkQxMDIyNDAwQjkwMDIyNEEwODEwMDIyQzQwQjkwMDY1Cis6MTA4NUIwMDAyRTQwMEI5MDAyMjQwMEI5MDAyQTQwMEI5MDAyQzYwMDA2Cis6MTA4NUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0MDA4NTgwMkQ0MEQ5Cis6MTA4NUQwMDAwODUwMDIwNDBDQjkwMEEwNTAwODE0MjIwNDAwQjEwMDk1Cis6MTA4NUUwMDAyQzQwMEIxMDAyMDQwMEIxMjgyMDRBMEIxMzAyQzIwMUQ4Cis6MTA4NUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBDMDUwM0U4MDg4Cis6MTA4NjAwMDAwRkMwNDMyMDAwRjgwMDMwMDAyQzgwMjMyMDAwRjg1MUQ4Cis6MTA4NjEwMDAzRTE0OEY4NTBCMjE0MEY4NzAzQTA4MEY4NDgzRUUwM0Q3Cis6MTA4NjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREM0MDBGOTA0M0U0MDA2Cis6MTA4NjMwMDAwRjkwMjNENDAwRkQwMDNGNTAwRjk0MDNGNDA0RkQwMDdECis6MTA4NjQwMDAzRjQxOEZEMDQzRTUwQ0Y5MDIzRjRBMEY5MjAzRTYwMjA3Cis6MTA4NjUwMDA3MDAwMDAwMDAwMDAwMDAwODgwNUQ0MDFGRDAwM0Q0MENFCis6MTA4NjYwMDAwQ0QwMTNGNDAwRDUwMDMzNkExQ0RDODMzNDAwRDEwNDMxCis6MTA4NjcwMDAzRTUwMEM5MTAzRTZDMEREQjAzMzZBMkM5QzgzRTYwMENCCis6MTA4NjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDlGODgwMkUwMEEzCis6MTA4NjkwMDA4ODgwMDBFODAwQkEwMDIyQjAwODhFMDIyODAwODhBODZFCis6MTA4NkEwMDAyNjI4MDg4QTIyRTIwMDg4RTQyMjMwMDg4QzAyQ0UwNEMwCis6MTA4NkIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTI4MkU0MDcyCis6MTA4NkMwMDAwODEwMDJDNDAwOTkwMDIwNDI0ODEwMDI2NDAxOTE4MDAxCis6MTA4NkQwMDAyQzQ4MDgxMDAyQzRDMDgxNDAyMDRBMDgxMjAyQzIwMTdFCis6MTA4NkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0OTRBOTAyMkU0MDlDCis6MTA4NkYwMDAwQTkwMDI2NDAwQjkwMDgyNjAwODkwMDI2NjAwODkxMDQ2Cis6MTA4NzAwMDAyNDYyMDg5MDAyRTQwMDg5MDIyMjQwMTg5MDAyQzYwNDA0Cis6MTA4NzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU2MDBCOTA0M0U0MDIzCis6MTA4NzIwMDAwQzkwMTNFNDAwRDFDMDEyNTAyODkwMDM0NDAwRDkwMEVCCis6MTA4NzMwMDAzRTQwMjg5MjAzRTQwMkQ5MDAzMjQyOEM5MDEyRTgwNEIxCis6MTA4NzQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE2MjBGOTAwM0U0MTUyCis6MTA4NzUwMDAyRDkwMDNFNDAwRjkyMDNFNDA0RjkwMDFBNDAwRjkwMDYxCis6MTA4NzYwMDAzNjQwOEY5MjA3RTQwMEYxMDBCRTQwMEY5MDAzQ0EwMDJDCis6MTA4NzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODAwM0UyMDlCCis6MTA4NzgwMDAwQzgwMDNFMDQwRjgwMDM2MTIyQzAwMDNFMEMwRjgwMDMzCis6MTA4NzkwMDAzMjEwMEQ4NDAzQTAwMEY4MDIzRTA4MEY4MDAwQ0EwNEM2Cis6MTA4N0EwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTNBOTA4RTAwMkRBMDU3Cis6MTA4N0IwMDA4MEU4MDJGQTAwQkU0MDIzODAwOEU4MDJGQTAwOEEwMDNFCis6MTA4N0MwMDAzNjgwMDhBMDAyRTgwMEJBMDAyRjgwMEJBMDAzOEEwMEMwCis6MTA4N0QwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQ2MDI4MzAwMkM4MEI1Cis6MTA4N0UwMDAwODIyNDJDNjgwQjE2MDJFRjQwODM4MjJDRTAwQTMwMEQxCis6MTA4N0YwMDAyMEMwMDgzMDAyQUMwMEIxMDAyRTQwMEIzMDAyQ0EwMDhECis6MTA4ODAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDI4NTAxMkRDMkUyCis6MTA4ODEwMDBBODQ0MDJENDAwQkQwMTI5NDAxODY4RDJEQzAwOEY4MDMyCis6MTA4ODIwMDAyNUNDMjg3MzQyREM4MEI1MzAyREMwMUI3MjAyRTgwMEQ1Cis6MTA4ODMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDRDNjgyM0RFMEMxCis6MTA4ODQwMDAwQzQ4MTJENjEwRjU4MDNDQTAwQzcwMDNERTAwRTc5MEI3Cis6MTA4ODUwMDAyM0VBMDQ3QTAzOUUwMEY1ODAzREUwMEY3QTAzRUEwMkUyCis6MTA4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDgwREFDMDA5QzAwM0VDMEFECis6MTA4ODcwMDAwRjgwMDNFNDEwRjkwMDM2MDEwRkEwMDNDMDAwRUIwMEU1Cis6MTA4ODgwMDAzRUQ4NEVCMDgzRUMwMEY5MDAzRUMwMEZCNDQzODIwNkUwCis6MTA4ODkwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNURFMDBDRjg0MzFFMDcxCis6MTA4OEEwMDAwRUM4NDNENjAwQ0Q4MDMzRTBDREQ5MDMzQTAwRkY4ODBGCis6MTA4OEIwMDAzM0UwMEZGOTEzRkUyNEZEODAzRjIwMENGNjgzMTAwMEY3Cis6MTA4OEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NTAwMjFDNDc5Cis6MTA4OEQwMDAyODQwODJEMDAwRDUwMDIzODA0OEM5MDIxQzAwQjcwMDgwCis6MTA4OEUwMDAyMUMwMEI3MTAyREU4MEI1MTAyREMwMjhGMDAyMkEwNEQxCis6MTA4OEYwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDlDMDA5NjAwMjFDMEY1Cis6MTA4OTAwMDAwQTQxMDJGNTQwOEQwMDIxNDAwOTUyMDI5ODIwQjcwMDJCCis6MTA4OTEwMDAyMUMwMEI3MDA2REM4MEI1MDAyREMwMDg3MDAyMDQwMDc5Cis6MTA4OTIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENDMTA5ODAwMDBDMDdGCis6MTA4OTMwMDA4ODA0ODJDMDAwOTEwNDIwMDMwOTAwMDI4QTAwQjMwQTVGCis6MTA4OTQwMDAyMEM0OEIzNDAyQ0MwMEI5MDAyQ0MwMDAzMDAyMTgwNEMzCis6MTA4OTUwMDAzMDAwMDAwMDAwMDAwMDAwRjgxNUFDMDBEQjAwQjBDMEUzCis6MTA4OTYwMDAwRTlDMDJDNTAwQzExMEIyQzAwREIwMEJBNzA4RkYwMERECis6MTA4OTcwMDBCM0MwMEZGQTAzRkMwMEZEMDAzRUQ0MENGMDBCMkUwNDM0Cis6MTA4OTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDRFRDAwM0U0MEFDCis6MTA4OTkwMDAwRjg0MDNFNTQwRjk0MDNFNjBDRUI0NDM2NDAwRkI4MEExCis6MTA4OUEwMDAzRUMyMEZCMDEzRUMwMEY5MDIzRUMwNEZCMDAzRTEwMDJECis6MTA4OUIwMDAzMDAwMDAwMDAwMDAwMDAwOTAxMEZGMDBDRTAwMzNDMDI3Cis6MTA4OUMwMDAwRUMwMDc3NDA0RUMwMDExODAwQ0NBMDNGRTYwRkYwMEE3Cis6MTA4OUQwMDAzRkMwMEZGMDgzM0MwMEREMDBCMzUwMkNGMDAzMjAwNEI3Cis6MTA4OUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDRDMDQ4QjBCMjI3MDVFCis6MTA4OUYwMDAwODA4MDM2NzIwOEE4OEEyMDAyODg0MDJFNzAwQkIwMEQ5Cis6MTA4QTAwMDAzRUMwMEJCMDAyMkMwMEI5MDAyMjYxMDhCMDAzNjA0MEU4Cis6MTA4QTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjIwMjJFMkU2Cis6MTA4QTIwMDAwQThDMDIyNjAwQTk4MDJBQzAwOEI0NDJFRDAwQkIwMENGCis6MTA4QTMwMDAyRUMwMEIzMDAyMkMwMEI5MDAyMDgwMDgzMDAyNjAwMEVDCis6MTA4QTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBFMDE4MTAwQTBDMEVBCis6MTA4QTUwMDAwODgxMDI0NDAwODEwMDI4ODEwODMyMDJDQzAwQjMwMDYyCis6MTA4QTYwMDAyOEMwMEIzMDAyMEM4MEIxMDAyMEMwMDgzMDEyNDIwMTM3Cis6MTA4QTcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBDMjAxMzJDMDQ4Cis6MTA4QTgwMDAyRTgwMTYyQzA4RTkwMDNBNDAwQzgwMDNFQzAwRjcwMDE5Cis6MTA4QTkwMDAyRkMwMEZGMDBCMkMwMEQ5MDAzMDQwMENGMDAzNjAwMzA2Cis6MTA4QUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwREY4MDhGRjAwM0ZDMENCCis6MTA4QUIwMDAwRkMyMTdGQzAwRjcwMDM3MDAwRjg0MDNGQzAwRkYwMDEzCis6MTA4QUMwMDAzRkMwMEZGMDAzRUQwMEZEMDAzRjQwMEZGMDAzRTgwNjRDCis6MTA4QUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBDRjMwMTc0ODA3Cis6MTA4QUUwMDAwQzU5MDNCOTAwREYyODM1MjQwRDgyQTM3QzgwRkYwMEQ4Cis6MTA4QUYwMDAzRkM4MEZGMjAzRTRBMEVGODAzRkUxOENEODQzMzAwMDgxCis6MTA4QjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVENDg4OTM0QTM3MDYwCis6MTA4QjEwMDAyOEIwMjM2MDAwOEJDMDIyNDAwOEI0ODIyRjQwQkZEMTEwCis6MTA4QjIwMDA2RkY0OEVCRDAyRTcwMEJCODAzQUUwMDg5ODBBMjgwNDgzCis6MTA4QjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0QjA5MTAwQTg1MDdCCis6MTA4QjQwMDAwOEIyMDJDODg0OTMwMDI0NDkwQjAyMDI0QzAwQjMwNDBCCis6MTA4QjUwMDAyQ0MwMEIzMDQyODQwMEIzMDAyRTAwMEFCMDEyMjIwMTU4Cis6MTA4QjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUFDMDI5OTE4MkE0NEY3Cis6MTA4QjcwMDAwOEI4ODJBMjAxQkIwMDI4NjAwQUEwMTI2QzAwQkIwMEVBCis6MTA4QjgwMDA2RUMwMEFCMDAyRTQwMEJCMDAyQTAwMkFCMDAyMzgwNDFBCis6MTA4QjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUU0MDhEQUMwM0E2MDA0Cis6MTA4QkEwMDAwQzE4MEFFQjA0REIwMDM2RTAwNzg1ODM2QzAwRkIwMDQxCis6MTA4QkIwMDAyRUMwMEZCMDQzRTQwMEVCMDAzRTg4MEUxODAzMTAwNEYzCis6MTA4QkMwMDA3MDAwMDAwMDAwMDAwMDAwRTA0MTlDMTBFOTAwMzc2MEU4Cis6MTA4QkQwMDA4N0YwMTc3MDAwQ0YwMTM3QzA0Qzk4MDNCQzAwRkIwMDMyCis6MTA4QkUwMDAzRkMyMEZGMDAzRTQwMEZGNDAzRkU0MEREOTAzRjAwMDYzCis6MTA4QkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBGNDAwMzA0MEJECis6MTA4QzAwMDAwRkI0MDM5OTAwRkIwMDNFQzAwRDA0MjMyQzA4RkI4ODIxCis6MTA4QzEwMDAzMkMwMEZCMDAzRTYwMERCMTAzRTAyMEZCMDgzRDAwNDc5Cis6MTA4QzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCOTUwQTI0ODM4Cis6MTA4QzMwMDA4QkIwMDMyMDAwRDc4MDJFRDgwMDgwMDIzQzAwQkY4MDdDCis6MTA4QzQwMDAyM0U4OEJGMDAyRjQ0MDhCNDAwQzQyMDNCNjAyRjIwMEEyCis6MTA4QzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMjQ0MDBDOEU1Cis6MTA4QzYwMDAwQjMwMTI4QzAwQTM4MDI0QzgwQjAwMEFDQzAwQjM0NDQ0Cis6MTA4QzcwMDAwNEMwMUIzNjAyQzUwMTgzMEMyQ0EwMEIzMDAyRjgwMDg3Cis6MTA4QzgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDhCNzkwMjE2NDgxCis6MTA4QzkwMDAwQkY4MDI0QTA0OTc4MTJGRTQwQTc4MDI5RTAwQjc4MEZECis6MTA4Q0EwMDAyMUUwOEI3ODgyRDY4Njg3ODQyREEwMEI3ODAyQzAwMEM1Cis6MTA4Q0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA0MDBGMjAwMzBDMDNFCis6MTA4Q0MwMDAwRjMwMDM4QzAwRTMwQTNDQzAwRjE4MDM4QzAwRjMwMjQyCis6MTA4Q0QwMDAzMEMwMUYzMDAxQzY4MEMzMDAzQ0MwMEYxMjAzREEwMjRGCis6MTA4Q0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAwREJDMDBGRjAwM0Y0MUZDCis6MTA4Q0YwMDAwRkYwMDNCODA4RkYwODNGQzAwREYwMDMzQzIwRkYwODQ5Cis6MTA4RDAwMDAzQkQyMEZGMDAzRjQ0MEVGMDAzRkM0MEZEMDAzRDAwNjc2Cis6MTA4RDEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBGRTAwMzJDMjcwCis6MTA4RDIwMDAwQzMwMEIyNjAwRkI4MDM2QzAwREEwMDNFQzAwRkJFMEVFCis6MTA4RDMwMDAzMkQwMEZCODQzNjQ0NERCMDQzRTgwMEZCMDAzRTIwMDNFCis6MTA4RDQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzAwQTFDMEE2Cis6MTA4RDUwMDA4ODcwMDMxMDAwQjcyMDIxQzAwODcwMDJEQzgwQjMzMDk3Cis6MTA4RDYwMDAzMUM4MEI3NDAyMTQwMDg3NDAyREMwNEI3MDAyRDIwMDMyCis6MTA4RDcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDk2MjBCNjgwMjBFMEU3Cis6MTA4RDgwMDAyOEY4MDI5NDEwQjc4MTI3RTIwOTc4MDJERTAwQjdBMDI0Cis6MTA4RDkwMDBBOUU4MEIzODAyNzYwMDg3ODAyREEwMEI1ODAyRjAwMDVFCis6MTA4REEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENFMTBCMzAwMjBDNEQyCis6MTA4REIwMDAwODIwMDI4MDEwQjMwMDIyQzgwOEIwMDJDQzExQjMwMjEwCis6MTA4REMwMDAyOEMwMEIzMDAyMDQwMDkzODAyQ0QyMEIxMDAyRDIwNDc2Cis6MTA4REQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGRTQwMzJBMEFFCis6MTA4REUwMDAwQ0U0MDM5ODgwRkEwMDM3QTAwREUwODNFODAwRkUwMDUxCis6MTA4REYwMDAzQTgwMEJBMDAzNjgwMEQ4QTAzRjkwMEZBMDAzRkEwNEFDCis6MTA4RTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDhGODA4M0UwMDk0Cis6MTA4RTEwMDAwRjgwMDMyMDAwRjg0MDNFMDAwRjgwMDNFMDAwRjgwNEJDCis6MTA4RTIwMDAzMDEwMEY4MDAzRTAwMkU4MDAzRTAwMEY4MDAzRDIwMDA0Cis6MTA4RTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGMTAwMzI0MEEzCis6MTA4RTQwMDAwRTkwODNBNDAwQzk4MDNFNDAwRTkwMDNBNDAwRjkwMDU4Cis6MTA4RTUwMDAzRTQwMEM5MDAzRTQwMEM4MDAzRTQwOEY5MDAzMDIwNEEzCis6MTA4RTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQwQTA2MkVGCis6MTA4RTcwMDAwODEwMDIyNDEwODkwMDJFNDAwODkwMDIyNDAwQjkwMDM2Cis6MTA4RTgwMDAyRTUyMDg5NDAyQzQwMDg5NDAyRTQwMEIxMDAzNjAxMDNCCis6MTA4RTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTE4MjI0NDRBCis6MTA4RUEwMDAwQTkwMDJBQzAwODkxMDJFQzAwQTkwMDJBNDAwQjk4MDdBCis6MTA4RUIwMDAyRTYwMDg5ODAyRTYwMjg5MDgyRTQwMEI5MDAyMDYwMEY4Cis6MTA4RUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODBCMTIwQTA0ODE5Cis6MTA4RUQwMDAwODkwMDIyNDA4ODEyMzJDNTAwODEwMDIwNDgwQjEyMDNECis6MTA4RUUwMDAyQzQ4MjgxMjAyRTQ4MDgxMjAyQzQwMEI5ODAyNDIwNTc1Cis6MTA4RUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwMzIwMDkyCis6MTA4RjAwMDAwRTg1MDNBMUUwQ0EwMDNFMDAwRTg1MDNBMDAwRjgwMDE0Cis6MTA4RjEwMDAyRTAwOUNBMDAzRTAwMEM4MjgzRTAwMEY4MDAzMkUwMTE1Cis6MTA4RjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGNTEwM0Y0NDgwCis6MTA4RjMwMDAwRkQwMDNGNDAwRjExMDNENDA4RkQ0MDNFNDUwRjkxMDNBCis6MTA4RjQwMDAzRTQ1MEY5MTAzRDQ0MEZDMDAzRkMwOEZEMDIzRTYwNDgwCis6MTA4RjUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjBDREE4MzM0MDk2Cis6MTA4RjYwMDA4REQwMDMyNjgwQ0QwMDNENTAwQzlBMDM2NDAwRjlBMEZCCis6MTA4RjcwMDA3QTZBMEY5QTYzRTY4MEM5ODAzRTQwMEY5MDAzMDYwMDJDCis6MTA4RjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDA4OEUwMzYwMEFBCis6MTA4RjkwMDAwODgwMEEyMTQyQzgwMDJFMjkwQ0E0NDIyMDAwQjg0MEIzCis6MTA4RkEwMDAyRTAwMEI4MTAyRTEwMDg4MDIzQTAxMEJDMDAyMEUwNDgwCis6MTA4RkIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDI4MTA4MjQ0MEMxCis6MTA4RkMwMDAwOTEwMDIwNDAwOTEwMDJDNDA0QjE0MDI0NDAwQjUxMDFCCis6MTA4RkQwMDAyOTQwMEI1MDAyRjUwMEI1MDAyRDQwMEJEMDAyMDIwMUQ0Cis6MTA4RkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE2MDE4OTAwMjY0MDUyCis6MTA4RkYwMDAwODk0MDIyNDAxODkwMDJFNDAxQTkwMDI2QzAwQkYwMkRFCis6MTA5MDAwMDAyRjQwMEJEMDAyRjQwMkJEODAyQjQwOEJEODNBMDYwNENGCis6MTA5MDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTA1MzY0MTEyCis6MTA5MDIwMDAwRDFDMDMyNDAwRDkwMDNFNDIyRjk0MDM2NDAwRjkwMDc0Cis6MTA5MDMwMDAzQTQwMEY5MDAzQzQwMEY5MDAzRTcwMEYxMDAzMjgwNDVCCis6MTA5MDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0MDhGOTI0M0U0MDYwCis6MTA5MDUwMDAwRjkxMDNFNDAwRjkwMDNFNDEwRDEwMDNBNDAwRjkwMDU0Cis6MTA5MDYwMDAzRTQwMEY5MDAzRTQwMEM5MDAzRTY0MEY5MDAzQ0EwMDI1Cis6MTA5MDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDhDODgwMzIwMjM0Cis6MTA5MDgwMDAwRjgwMDMwMDAwQzgwODNBMTBDRTg0MDNFMDAwRkMwMDAzCis6MTA5MDkwMDAzRjAwOEZDMDAzRjA4MEZDMDAzRjE4MEZDMDQzQ0EwNDlDCis6MTA5MEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTAwQTE4MDlDCis6MTA5MEIwMDAwQkUwMDIyODAwREVDMjIzOTAwMEEwMDJFODAwQkEwMDA0Cis6MTA5MEMwMDAyRTgwMEJBMDAyRTgwMEZBMDAyRTgwMEJBMDAyQ0EwMDNFCis6MTA5MEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5OTgxNjBDMDlECis6MTA5MEUwMDAwQjEwMDIwQzAwOTAxMDJBRkMwQjMwMDJDQzAwQjMwMEQ1Cis6MTA5MEYwMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyQ0EwMEQ1Cis6MTA5MTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDODI5NTQwMjFDMDFBCis6MTA5MTEwMDAwQjUwMDIxQzgwOTA4MDIzMDEwOTcyMTJEQzAwQjYwMDAzCis6MTA5MTIwMDAyRDAwMEI0MDAyRDAwMEI0MDkyRDAwNEI0MDgyRTgwMDE2Cis6MTA5MTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFODBERDgwQjFFMDkzCis6MTA5MTQwMDAwRkRBMDMwRjgwRDQ4MDM5RTAwQjdBMDNERTAwRjU4MDVDCis6MTA5MTUwMDAzRDIwMEY0ODAzRDYxMEY2ODEzREUwOEY2ODAzRUEwMkY4Cis6MTA5MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBFRDAwM0UwMDAzCis6MTA5MTcwMDAwRjkxMEJFQzEwRjgwMDNFMDAwRUIwMDNFQzAwRjgwMDZECis6MTA5MTgwMDAzRUMwNEZCMDAzRTgwMEU5MDEzRTAwMEY5MDAzQzIwNjY1Cis6MTA5MTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMjBCRjgxMzNBNDM1Cis6MTA5MUEwMDA4QzE5MDMzRTAwQ0Q4MDNGRTAwRkY4ODMzRTAwRUY4MDM2Cis6MTA5MUIwMDAzRkUwMEZGOTEzRkExMEZEODAzRkE0MEZEODAzQzAwMDYxCis6MTA5MUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRjIwMzFDMjA4Cis6MTA5MUQwMDAwODVBMDIzQzAyODcwMDJEOTQwQjcwMEExQzQwODYxMDJFCis6MTA5MUUwMDAyRDAwMEI0MDAyRDQwMEY2MDAyRDQwNEI2MDAyRUEwNDMzCis6MTA5MUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAxMjM4MDE4Cis6MTA5MjAwMDAyODUwMDIxQzAwODQwMDJEQzAwQjMwMDIxQzAwQjUwMDQ5Cis6MTA5MjEwMDAyRDAwMEI0MDA2RDA0MEI0MDgyRDgwMEI0ODAyQzAwMDQyCis6MTA5MjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCMzA4QTAyMEEzCis6MTA5MjMwMDAwODExOEEwRTAwODAwMDJDOTAwQjM3MDIwQzAwOTAwMDYxCis6MTA5MjQwMDAyQ0MwMEIzMDQyQ0MwNEEzODAyQzUwMEIzMDAyQzgwNDNECis6MTA5MjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGOTgwMzI2MDVBCis6MTA5MjYwMDAwQ0Q0MDMzQzgwODgwMDNFRDAwRkY4MDMyODAwRkEwMDlECis6MTA5MjcwMDAzRUMwMEZCMDA3RUMwMUJCODAzRTU0MEZCMDA2RUEwNEJECis6MTA5MjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVFMDhGOTgwM0FDMDk1Cis6MTA5MjkwMDAwRjkwMDNFQzAwRjg0MDNFNTgwRkIwNDNFOTAwRUI0NDU4Cis6MTA5MkEwMDAzRTAwMEY4MDAzRTAwREY4MDAzRTgwMEY4MDAzRTAwMEQ5Cis6MTA5MkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDRjAwMzM0MDRGCis6MTA5MkMwMDAwQ0QwMDMzQzMwQ0MwMDNCQzAyREYwMDNEODAyQ0MwMEM2Cis6MTA5MkQwMDAzRDAwMENDMDAzRjQwMEVFMDIzNzQwMENFMDAzQzA0NDM0Cis6MTA5MkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMTg4Mzg0MjAwMDFFCis6MTA5MkYwMDA0QTEwMDIwQzAwQTg0ODJFNjAwOEIwMDJFOTAwODk0MDFDCis6MTA5MzAwMDAyRUMwMDhCMDAyRTgxMEIxMDEyMDgwMEE5MDAzQTA0MEVFCis6MTA5MzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjgyMjIwODU1Cis6MTA5MzIwMDAwODkwMDIyQzE0ODgwNDJDMDgwOEIwMTJFODAwOEEwMDY3Cis6MTA5MzMwMDAyRUMwMEFCMDAyRTgwMUI5MDAyNjA0MDg5MDAyRTAwMDNECis6MTA5MzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzgwQTJDMDYwCis6MTA5MzUwMDAwQTkyMDIyQzAwQTIwMDJDMDAwODM0MDJDODAwODMwMEVDCis6MTA5MzYwMDAyQzAwMjgwMDAyQzQwMUJBMDAyMkMwMDIyMDA2QzIwMTVCCis6MTA5MzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQTAwQjIwMEY4Cis6MTA5MzgwMDAwQzkyMEIyQzA0QzgwNDNBMDAwQ0I0MDNFODAwQzgwMDhCCis6MTA5MzkwMDAyRTAwMEM4MDMzRTE0MEU4MDAzNjAwMEM4MDAzQzAwMzRGCis6MTA5M0EwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0QwMDc4Cis6MTA5M0IwMDAwRkQxMEJGQzAxRkMwMDNGMDAwRkYwMDNEODAwRkQwMEIzCis6MTA5M0MwMDAzRkMwMEZGMDAzRkM4MEZGMDAzRkMwMEZGMDA3QTgwNjZFCis6MTA5M0QwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUYzMDBDRjgwMzU2MDcxCis6MTA5M0UwMDA0RTY4NDM1QzAwRTc4MDM5QzAwQ0MxMDM3RTAwQ0YzNDc3Cis6MTA5M0YwMDAzNUUxNERGMjAzN0MwMERGMzgzRkM4MEZGODAzRjAwMDgxCis6MTA5NDAwMDA3MDAwMDAwMDAwMDAwMDAwQzAxOEM4MDBEQjg0MjI2MDZCCis6MTA5NDEwMDAwOEFDMEEyQzAwOEI4MDIyMzAwODkxMjIyQzkwMjc2MTA2Cis6MTA5NDIwMDAyMkNBODhGQzIyQkYwMDhCNjIyRkQwMDlCODAzQjAwNDg3Cis6MTA5NDMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUUyODBBOTAyMjQ0MEJFCis6MTA5NDQwMDA4MjM0NDIwNDAwQTkwMDI4QzU0ODMyMDI0QzIwODMzMEVGCis6MTA5NDUwMDAyMEMwMDgzMTAyMEQwMEIzMjAyQ0M0MEIzMDAyRjIwMUYxCis6MTA5NDYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUFBMDJCOTA0MjI2MERDCis6MTA5NDcwMDAyOEIyMDIyNjAwODk4ODAyQzAwODMxMTJFQzAwOEIwMDU1Cis6MTA5NDgwMDAyQUQwMDhCMDAyQUMwMDJCMDAyRUMwMEJCMDAyQjAwNEYyCis6MTA5NDkwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNUUyMDBFMzAwMzYyMDhDCis6MTA5NEEwMDAwRUE0NjM2RTAwRTFDMDFBQzEwQzgwMDM2ODcwQ0IwMDhCCis6MTA5NEIwMDAzNjgwMERCMDAzNEMwMEZCMDQzRUMxMEZCMDAzRDAwNDU2Cis6MTA5NEMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDRERjAwM0YwMDcxCis6MTA5NEQwMDAwRkU4MDNGQzAwRkQwMDNGMDAyQjk4MDMzQTAwNzcwMEUzCis6MTA5NEUwMDAyN0U0MEZGMDAzRkMwMERGMDAzRUMwMERGMDQzRjgwMDVFCis6MTA5NEYwMDA2MDAwMDAwMDAwMDAwMDAwNTAwMEE0NjhDQjIwM0E5MEZCCis6MTA5NTAwMDAwRjI0QTNBQzAwRTk1MDNBQzAwRUI0ODMyQzA4RUIwMDQyCis6MTA5NTEwMDAzQTkwMEVCMDhCRUM4MEZCMDAzRUMwMEVCMDAzOTAwNDdFCis6MTA5NTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTBBMDA4QkEwMjA4MDdECis6MTA5NTMwMDAwREE4MDIyQzA0ODk0MDI4RTgwOEIyMDIyQzAwQUYwMEQ0Cis6MTA5NTQwMDAwMjgwMDg3QzAzM0Q4MDNGMDAyRkMwMDhCMDAyMzYwMDM3Cis6MTA5NTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ5MDAwMzQwMjhDMDcyCis6MTA5NTYwMDAyQjI4NEEyODAwQTEwMDY4RDIwQTIwNDJBNDAxQTMwMEE3Cis6MTA5NTcwMDAwMjQwMEEzNDAyMEQwMDMzMDAyQ0MwMEEzMDAwQjgwMDRCCis6MTA5NTgwMDA1MDAwMDAwMDAwMDAwMDAwQjgwMTFBMDA4NzkwMjFFNDlDCis6MTA5NTkwMDAyQkM4MTIzQTAwODVDMDJCMjEyODY4MDJCNjAwQTc4NDg4Cis6MTA5NUEwMDAyMzYwMDgzODgwMUUwMEI3ODAyREUwMDg3ODAyMkUwMDY2Cis6MTA5NUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBDMTAwMzg1NEM2Cis6MTA5NUMwMDAwRjI2ODM4MDAwRTAzNDI4QzgwRTJDMEI4QzAwRTMwMEFCCis6MTA5NUQwMDA3ODQ1MEUzMDAzOEU4MEYzMDAzQ0M4MEUzMDAzOTIwMkIzCis6MTA5NUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI4MDBGNTAyM0Y0NEVDCis6MTA5NUYwMDAwRDkwMDNGODAwQkQxNDFGQzAwRkUxMjM1QzQ0OUY0MjhGCis6MTA5NjAwMDAzRkMwMEZGNDgyN0Q0MEZGMTAzRkMwNEY3MDA3RDAwNjZGCis6MTA5NjEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDJDQjAwMzhDMDkwCis6MTA5NjIwMDAzQ0EwMDNFQzAwRTkwMDNFQzAwQ0IwMDMyMDA0RkIyMTg5Cis6MTA5NjMwMDAzRTgwNEZCNDAzQ0YwMENCMDAzRUNDNEZCMDQzRUEwMDk2Cis6MTA5NjQwMDA3MDAwMDAwMDAwMDAwMDAwQzg5MTk4MDA4NzAwMjFDMDUxCis6MTA5NjUwMDAwODQwMDJEQzA0QjUwMDJEMDAyRDcwMDIxQzFDQjcwMjZFCis6MTA5NjYwMDAyREMwMEI3MjAyREMwMDg3NDAyRENBOEI3MDAyRjIwNDAxCis6MTA5NjcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEJBMDA4Nzg4MkJFMDM2Cis6MTA5NjgwMDAxODc4MjJENjExQTQ4MjJGRTAwODc4MDIxMjAwQjc5NDJECis6MTA5NjkwMDA2RDYwNEI3QTAyREU0MEI3QTAyREUwMEI3ODA2RTAwMDRCCis6MTA5NkEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEM5MTI4MzgyMjhENDYyCis6MTA5NkIwMDA5ODAwMDZFRjA1QjE5MDJDQzEwOUI0MDIwQzA0QjMwMTY3Cis6MTA5NkMwMDA2Q0YwMEIzMDAyQ0MwMEJCMDAyRUMwMEIzMDAyRDIwNDc5Cis6MTA5NkQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4NDBDQTgwM0JBMDQwCis6MTA5NkUwMDA0Q0U1MDJGODgwRUUwMDNEODAyQ0UwMEYzODgwRkEwMDU3Cis6MTA5NkYwMDAzRkE5MEZBMDAzRTgwMEJBMDIzRTgwOEJBMDAzRkEwNDQyCis6MTA5NzAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTBGODAwMjYwMkExCis6MTA5NzEwMDAwRjg0MDNFMDI0RjgwMDNFMDA0RjgwQTNFMDMwRjgwMEZGCis6MTA5NzIwMDAzNjAyMEY4MDIzRTAwNDA4MDAzRTAwMEY4MDAzRDIwMEMxCis6MTA5NzMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBEOTAwQjY0MTJECis6MTA5NzQwMDA0RTk5MEJBNDAwNjkxMDNFNDAwQzkwMDNBNDEwQzkwMDcwCis6MTA5NzUwMDAzRTQwMEQ5MjAzRTYwMEY5MDAzQTQwMEU5MDAzQzIwNDI5Cis6MTA5NzYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4MTAwMjA0MkZFCis6MTA5NzcwMDAwODE0OUEyNDAwODkwMDZFNTAwMDkwMDIyNDEwRDkwMjI3Cis6MTA5NzgwMDA2RTQwMEI5NDAzQTcwMEI5MDAyMjQwMDg5MDAzRTAwMDRDCis6MTA5NzkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTA2MDA5OTAwQTY0MTE2Cis6MTA5N0EwMDAwQTkwMDYyQzAwQTkwOTZFNTAwODkxMDI4NDA0ODkwMEQxCis6MTA5N0IwMDAwRTQwMEI5NDAyRTU0OUI5MDAwQTQwMEE5MDAyQzYwMDI3Cis6MTA5N0MwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA2MDA4MTAwMjI0MDY0Cis6MTA5N0QwMDAwODEyMjIwNDgxQTEwMDJDNDAwODE2MDIwNDAwOTEyMEU2Cis6MTA5N0UwMDAyQzQwMEIxMjQyODQ4OUIxMjAyMDQ4MDgxMDAyQzIwMThCCis6MTA5N0YwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODAwMzYwMEY1Cis6MTA5ODAwMDAwQTgwMDNBMTQwRTgwMDJFMDAwQzAwMjNBMTQwQzg1MEFDCis6MTA5ODEwMDAyRTE0MEQ4MDAzRTAwMEY4NTAzQTAwMEU4MDAzRUUwMzkyCis6MTA5ODIwMDA1MDAwMDAwMDAwMDAwMDAwODgxREQ0MDBGNTAwQkY0MDdCCis6MTA5ODMwMDAwRkQxMDNGNDQ0REQwMjNENTAyQkQxMjNGNDAwRjkxMDg1Cis6MTA5ODQwMDAzRjQwMEQ5MTAzQTQ0OEY5MTIzRTRFMUY5MDAzQTYwMjFCCis6MTA5ODUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUY0MDBDNTA0M0I0MDMzCis6MTA5ODYwMDAwRkQ4MDNBNzgwRkQwMEIzNjgwREQ4NDNBNTEwQzlBMDg5Cis6MTA5ODcwMDAzMjUxNEY1QTQzMzYwMEM5QTA3QTY4MEJEMDAzQzYwMTUzCis6MTA5ODgwMDA3MDAwMDAwMDAwMDAwMDAwNzgxOENBODg4ODAyMDIwMEZBCis6MTA5ODkwMDA4RDg0MjIyMzQyRjgwMDIyMDQyODhBQTJBQTk0ODhFOTBGCis6MTA5OEEwMDAyMEE4MEE4MDBBMjE0MDgwRTIyRTI4MEI4MDAyQ0UwNEU0Cis6MTA5OEIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0MjBBMTA0QThDMDNBCis6MTA5OEMwMDAwQjFDMkEyNDAwMzkwNDIwNDAyQTFFMDJFNDgwQjExMDE3Cis6MTA5OEQwMDAyQTQ4MDkxNDQ2MDQwMDgxMzgyQzVCMEIxMDAyRDIwMDgwCis6MTA5OEUwMDAzMDAwMDAwMDAwMDAwMDAwMTgwNUE0MTJBOTI0MjI0MDQ2Cis6MTA5OEYwMDAyOTkwMDIyNDAwMzkwMDAyNTgwODE4MTBFNjAxQjkwMDI2Cis6MTA5OTAwMDBBQTQ0MDg5MDAyMjQwMDg5MDAwRTQxMEI5MDAyQzYwNDZDCis6MTA5OTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU0MDBFMTAxMkE2NEVFCis6MTA5OTIwMDAyRjk0MTMyNDAyNzE2MDEyNjA0RDkwMDBDNTAyRjkwMDVCCis6MTA5OTMwMDAzQTQwMEY5MDIzMjQwMkM5MDIzQTQwMEY5MDAyRTgwNEYzCis6MTA5OTQwMDA1MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDBEOTAwM0U2MDQzCis6MTA5OTUwMDBBRjkwODM2NDg4RjkyMDNFNjIwMzkwODNBNDAwQzkwMDFECis6MTA5OTYwMDAzNjYwMEYxMDAzQzQwMEY5MDA3RTQwMEY5MDAzREEwMDQ4Cis6MTA5OTcwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEExMDBDODgyMzIwMDQyCis6MTA5OTgwMDA2RjAwMDNBMDAwRDg0MDMwMDAwRTgwMDM2MDA0RjgwMThGCis6MTA5OTkwMDAzRTEwNEY4MDhCMjIwMEY4MDAzMjAxMEU4MDAzQ0EwNDczCis6MTA5OUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwMTM4MDAwRTAwQTk5MEVGCis6MTA5OUIwMDAyRkU2MjA4ODAwOUU4MDIzODAwQUU4MDMyODAwQkEwMDUyCis6MTA5OUMwMDAxODgwMERFQzAyMzg4MEJBMDBBMjgwMDhBMDAzOEEwMDNCCis6MTA5OUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDI4MzgwMjBDOEMxCis6MTA5OUUwMDAwQjIwMDIwQzAxOTIxMDY4QzAzQTNDMDJDQzEwM0IwMkUyCis6MTA5OUYwMDAwQ0MwMjgzQzAyNEUwMEIzMDAyOEMwMjgzMDAyQ0EwMDI4Cis6MTA5QTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDA4NzQyMkJDMDlECis6MTA5QTEwMDAyOTcwMjI5QzAwQjYwMDJCQzIwQTYwODYxQzAwQjcyMTY4Cis6MTA5QTIwMDAyOUMwMDA3NDAyNUMwMDM3OTEwMUUwMDg3NDAyQTgwMEFDCis6MTA5QTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBDNzgwMjFFMEQwCis6MTA5QTQwMDAyRjc4MDI5RTAwOTY4MDM5RTAyRUY4MDNERTMwRjdEMEEyCis6MTA5QTUwMDAyREYyMDA3ODAzNTIwMEY3QTIzQkUwMEU3ODA3RUEwMkVECis6MTA5QTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREI0MDBGQjAwMENDMDU2Cis6MTA5QTcwMDAwRjMwMDNFQzEwRDMwMEI0QzAyRjgwMDM2QzQ4RkIwMDAwCis6MTA5QTgwMDAzRUM4NEQ5MDAzQTQwMEZCMjAxRUMwMEZCMDAzQzIwNkM5Cis6MTA5QTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDQzgwMkIyQ0MwCis6MTA5QUEwMDAyRkY4MDM3RTAwNkU4MDNCQTEwREQ4NDMzRTAwRkY5MDRGCis6MTA5QUIwMDAzM0UwMEZFOTMzRkUwMENGQzAzRkUyMEZEODAzQzAwMDEwCis6MTA5QUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMUI0NDA4NzAwMjEwNENECis6MTA5QUQwMDAwODc4MDIxQzAwODYwMDIxQzAyODkwMDJEQzAwQjcxMDI0Cis6MTA5QUUwMDAyMUMwMEY3MzAyQ0MwMDg3MDAyREMwMEI1MDAyRUEwMDhBCis6MTA5QUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlEMDBBNDAwMjk0ODU0Cis6MTA5QjAwMDA2QUYwODI0QzAwQUUwMEExQzQyOTc0MDI1QzQwQTMxMDJDCis6MTA5QjEwMDA2MUMyMEI2MDA2QzgwMDg3MDAyREMwMEI1MDAyQzAwNDU0Cis6MTA5QjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEU2MDFBMzAyMjA0MEY1Cis6MTA5QjMwMDAyODNDMDIwQzAwODM0MjIwQzgwODEwMDJDRDAwQjMwMDZDCis6MTA5QjQwMDAyOEYwMEIzMDAyQ0MwMTgzMDQyQ0MwODMxMDAyQzgwNDFGCis6MTA5QjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFBODBFQjAwMzhDMDBCCis6MTA5QjYwMDAwQTkwMDM3QzIyQTI0MDMyNDgwREIwMEIzRTAwRkYwMDU5Cis6MTA5QjcwMDAzM0Y0MEY5MDAzRUMwMDhGMDIzRkMwMEY5MDAzRUEwNDEwCis6MTA5QjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEUwMDBEOTAyM0VDMDNDCis6MTA5QjkwMDAwRUI2MDNFQzAwRkEyMDNFQzA0RjI0MjNBQzYwRkIwMDVECis6MTA5QkEwMDBBNkMwMEU5MDAzRTQwMEZCMDAzQ0MxMEY5MDAzRTAwMDUwCis6MTA5QkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY4MDJDRjAwMzNFMDg4Cis6MTA5QkMwMDAyQ0YwMTNCQzAwMkUxMEIxNjQyRUYwMDIzQzAwRkYwMkZBCis6MTA5QkQwMDAzRkMxNERFQzYzRkUwMEI3MDAzQkMwMENEODAzQzA0NDRFCis6MTA5QkUwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMjg4MTgxMjJFMDI5Cis6MTA5QkYwMDAwQTM4MDIzQzA0QkFDOTMyRTAyMDg0MDIyQzAwQkIwMEJGCis6MTA5QzAwMDAyRUMwMEI5QzAyRTc4MUJCMDQyMkMwMEE5OTAyRTAwMDJGCis6MTA5QzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI4NDA4ODgwMjI4ODk1Cis6MTA5QzIwMDAyOEJDNDJBQzAwQkEwMDJBODAwODg0MDJBQzAwQkIwMDA5Cis6MTA5QzMwMDAyRUMwMEJCMDgyRTg5MEFCMDA2MkMwMDhCMDEyRTAwMDBBCis6MTA5QzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4OTAwMkE4MDk1Cis6MTA5QzUwMDAyOEIyMDIwQzAwQkEwMDIwQzAwODAwMDI4QzAwQjMwMDM5Cis6MTA5QzYwMDAyQ0MwMEIzMDIwNEMxNEIzMDAyMEMwMDgzMDAyQzIwMUJECis6MTA5QzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY4MDBDODAwQjJDMDM1Cis6MTA5QzgwMDAyQ0IyMDNBQzAwRkEwMDNBQzA0RUE1MDNCQzAwRkYwMEEyCis6MTA5QzkwMDAzRkMwMDlBMDAzRTkwNEVGMDBCQUMwMENCMDAxQzAwMTQ1Cis6MTA5Q0EwMDAxMDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGNTAwMzVDMDA1Cis6MTA5Q0IwMDBBRjM0MDNGQzAwRjQwMDM5QzAwRkMyMDM3QzAwRkYwMTg1Cis6MTA5Q0MwMDAzRkMwMEZGMDAzRkNBMEZGMDAzRkMwMEZGMDAzRTgwNTBBCis6MTA5Q0QwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBGRjI5M0QyMERFCis6MTA5Q0UwMDA4RUMxMDMzMjQ4REM4MDIzMjUwRUYyMDMzQ0MwREY4NEEyCis6MTA5Q0YwMDAzM0M5MEZGMjAzRkMwMENGODAzMzQwMENGMjAzMzAwMDc1Cis6MTA5RDAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDQzBCQjYwMkUwODU2Cis6MTA5RDEwMDAwODgxMDIyMDA0ODgyMDIwNDgwOEYxODIyREMwODMwMDk5Cis6MTA5RDIwMDAyMkQ0MDlGNTAyRkMwODhCMDEyMjQwMjhCNDAyMjAwNDQ5Cis6MTA5RDMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMjBCMzA5MkM4MjEwCis6MTA5RDQwMDAwODEwMTZBMDEwOTAwODI4NDgwQTMyMDIwQzAwQkIwMDI4Cis6MTA5RDUwMDAyQ0MwMEIzMDAyQ0MwMjkzMDEyMDAwOEEzMTIyRTIwMTk4Cis6MTA5RDYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDRCQjAwMkM4MDk3Cis6MTA5RDcwMDAwODg2MDJBMDIwQTAwMDJBNjAwQUIwMTAyQzAwQUIwQ0JDCis6MTA5RDgwMDA2RUMwMDlCMDAyQ0MwMDlCMDAyMjYwMEFCMDAyRjAwNDUxCis6MTA5RDkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUVDMDBCQjAwM0UzNDM1Cis6MTA5REEwMDAwOEEwMEI4MzAwRDkwMjNBRTAyRUIwMEIyQzAwRjg4MEZCCis6MTA5REIwMDAzRUMwNEZCMDAzRUMwMENBNDBCMjcyMEVCMDBCQzAwNEZDCis6MTA5REMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMTBGQjAwM0YwMDNDCis6MTA5REQwMDAwREY4MTM3MDQ4REQ0MDM3QzI4REYwMDNEQzAwRERDODlDCis6MTA5REUwMDAxM0MwMEZGMDAzRkMwMEVFNDA3RjQwMEQ3MDAzMzgwMEZECis6MTA5REYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAxMzJDMDE5Cis6MTA5RTAwMDAwNDEwMDMyMDQwRTgxMDNBQzAwREIwMDNBQzA4Rjg0MDNECis6MTA5RTEwMDBCMkMwMkNCMDMzQTQ4MkRBNDBCQTQwMEZCMDAzRDAwNEYxCis6MTA5RTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDhCRjgwMjJDOEQ4Cis6MTA5RTMwMDAwOEI3MDAyMzQ0ODhEMDIyRDAwODcwODJGQzAwQjJFMDJBCis6MTA5RTQwMDAwM0Y0MDhGNTAyMzcwNDhCRDEyMjYwNEJGRDAyRjIwMEM3Cis6MTA5RTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMzEwQTQ0MEVBCis6MTA5RTYwMDAwODAwMDI0ODAwQTA0MjJBRDAwMTMwMDI4QzAwQjM4MEQyCis6MTA5RTcwMDAyQ0MwMDkzMTAyQ0MwMDg5MDAyMkU4MDMzODAyRjgwMDI2Cis6MTA5RTgwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMTFFMDBCNzgwMjc2NDQxCis6MTA5RTkwMDA2ODRBMDI1MjAwOEM4MDIxRTAwODc4MDJERTAwQjc4MDE4Cis6MTA5RUEwMDAyREUyMTkzOTAyNUUzMDg1OTgyMUU0MEI3OTAyRDgwMDQxCis6MTA5RUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMzIwMzQwMEJGCis6MTA5RUMwMDAwQ0I4MDM0ODgwRTIyMjM4QzAwRDMwMDM4QzAwRjMwMDQ4Cis6MTA5RUQwMDAzRUMwMEQzMTAzRUMwMENCMDAzODA2MEYzMDgzRDIwMkI4Cis6MTA5RUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGRjAwM0IwMTFFCis6MTA5RUYwMDAwRkQwMDM5MDAwRjYwMDNGQzAwRkY0MDFGQzAwRkYwMUZCCis6MTA5RjAwMDAzM0MyMEVGNTEzQkMwMEVEMDAzRkM0MEZGMDAzRDAwNkMyCis6MTA5RjEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDBGQjAwM0NDMDUxCis6MTA5RjIwMDAwRUEwMDE2NDAxRDgwMDMyRTAyQ0I1MDMyQzAwRjIwMDMxCis6MTA5RjMwMDA3QUMwMERCNDAzMkQ4MEM5MDIzMkMwMENCMDAzMkEwMEQwCis6MTA5RjQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDODBCNzAwMkRDMDg4Cis6MTA5RjUwMDAwRDYwMDJEMDAxODQwMDIxQzAwODMwMDIxRDAwQjcwMDRFCis6MTA5RjYwMDAyMUM4MEJGNDAzMUVDMDg2MDAyMUMwMDg3QzAzNTIwNEU0Cis6MTA5RjcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFQzBCNzkwMkRFMDBGCis6MTA5RjgwMDAwODc4MDZENjAxQjQ4MjIxRTAwODc4MEExRTAwQjVDMDIwCis6MTA5RjkwMDAyOUU4MDk3ODAyMzZDMTk3ODAyOEIwMEE3QTAyMzAwMDkxCis6MTA5RkEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCQjAwMkNFMEEyCis6MTA5RkIwMDAwOTM1ODJDMEMxQTA1MTIwRTQwODMwMDI4QzAwQkJDNDI2Cis6MTA5RkMwMDAyMEMwMEIzMDAyMDYwMDkzMThBQUIwMkEzMDBBNTIwNEFGCis6MTA5RkQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGQTAxM0RBQ0M4Cis6MTA5RkUwMDA0Q0VDMTM3ODEwRjY4MEIzOTAwQ0EwMDMyODAwRkUwMDEwCis6MTA5RkYwMDAzQTgxMERBMDBGMkE4MERFMDQzQkEwMEVBMDAzM0EwNDk0Cis6MTBBMDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODAwM0UwMDkyCis6MTBBMDEwMDAwRDgwMDJFMTAwRDg0ODNFMTIwRjgwMTM2MDAwRjg2MDA2Cis6MTBBMDIwMDAzRTAwMDc4MDAzQTAwMkU4MDQyNjA4MDU4MDAzOTIwMDkyCis6MTBBMDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTA0M0E0MDdECis6MTBBMDQwMDAwQzEyMDMyNDgyQzkwMDM2NDQwRjEwMDMyNDAwRjkwMEM3Cis6MTBBMDUwMDAzNjQwMDQ5MDAzMDQwMEM5MDAxMjQwMEM5MDAzMDIwNDJGCis6MTBBMDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTgxMjI0MDNDCis6MTBBMDcwMDAwODkwMUEyNDAwODkwMDIyNjgwQjk5MDIyNDAwQjkwMDc0Cis6MTBBMDgwMDAyMjQwNjg5MDBBMjQwMDg5MDBBMjQwMDg5MDBBMjAwMDFCCis6MTBBMDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTEwMjJFMEE0Cis6MTBBMEEwMDAwODk0MDAwNDA0OEIwODI2QzAwQjkwMDIyNDA0QjkwQzA5Cis6MTBBMEIwMDAyNDQwMEExMDAyMjQwMDIzMDIyQTQwQTgxMDAyMDYwMEFECis6MTBBMEMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTBCMTIwMjI0MDdECis6MTBBMEQwMDAwODEyMDIwQzEwODEwMkEwNTAwQjEyMDIwNDgwQjEwNTdDCis6MTBBMEUwMDAwMDQ4MEExMDAyMDRBMEExMDAyODRBMDgxMjAwMDIwMTM4Cis6MTBBMEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwQkExNEU0Cis6MTBBMTAwMDAwQzg1MDMwMTQyQzg1MDM0MDAwRjg1MDMyMTQwRjgwMDNDCis6MTBBMTEwMDAzNjAwMEU4MDEzMjA4MEUwMDAxQTA4MEMwMDAzMkUwMzg2Cis6MTBBMTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDRGOTEwM0Y0MDdBCis6MTBBMTMwMDAyRkQxMTNGNDA0RjUwMDNGNDAwRjkxMEJFNDQwRkYyOEFBCis6MTBBMTQwMDBCRTRFMEQ5NjgzRDRBMkREMjgzNzRBMEY5MzgzRTYwNkQwCis6MTBBMTUwMDA3MDAwMDAwMDAwMDAwMDAwOTgwNUU0MTBDRDAwM0Y0MEIyCis6MTBBMTYwMDAwRkQwMDMzNTAyNUQwMTMxNDQwRkQwMDMyNDAwRjkwMDA0Cis6MTBBMTcwMDAzMjYwMEM5ODgzRTY0MEQ5MDAzNjZBMEM5RTgzMjYwMTMzCis6MTBBMTgwMDA2MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDA4ODAwMkUwMDkxCis6MTBBMTkwMDAwQjgwNDIwMjgwOEEwMDIyMjA4ODgwMDMyMDA4Qjg4MjM3Cis6MTBBMUEwMDAyMjIxMDg4ODgyRTI0Mjg4QTgyMjIwMDhDRTAyMEUwNERBCis6MTBBMUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDI4MTAwNjg0MDczCis6MTBBMUMwMDAwQjEwMDI4NDAxQjkwMDIwNDA0OTEwMEEwNDAwQjUwOEIwCis6MTBBMUQwMDAyMTQ2MDg1MDAyRDQwMDhEMjAyNTRBMEI1MDAyNDIwMTJFCis6MTBBMUUwMDAzMDAwMDAwMDAwMDAwMDAwMTgxMUE0MDA4OTA0NkU1NDIzCis6MTBBMUYwMDAwQjEwMTJBNDAxQTkwMEEyNDAxODkwMTYyNDAwQjkwMDY3Cis6MTBBMjAwMDAyMzQwMThEMDAyRjQwMDhENDAyMTRBMEJEMDAyNDYwNEFFCis6MTBBMjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTAwM0E1MEYyCis6MTBBMjIwMDA4Rjk2MEI4NDAyRjEwMTMwNDg4RDkwMDMyNDEwRjkwMEMxCis6MTBBMjMwMDBCMjQwMkM5MDAzRTY0MEQxQzAzNjUwMkY5MDBCNjgwNEZBCis6MTBBMjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0U2MDNBCis6MTBBMjUwMDAwRjk5QzM2NDAwRDkyODNFNDAwRDkwMDNBNDAwRjk0MDMzCis6MTBBMjYwMDAzRTQwMEY5MDAzRTQyMEY5NDAzRTQwMEM5MDAzOEEwMEVBCis6MTBBMjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODAxMzYwMDc3Cis6MTBBMjgwMDA4RjgwMDNFMDAyRjgwNDMyMDAwRDgwNDMyMDAyQ0MwMEVFCis6MTBBMjkwMDAzRjAwMEZDMDEzOTAwMkRDNDAzRjEwNENDMDIzMEEwNDYzCis6MTBBMkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCQTAwMjI4MERECis6MTBBMkIwMDAwQkU4MjBGODAwNEVDMDIzQTAwOEEwMDM2ODAwOEEwMDI1Cis6MTBBMkMwMDAyRTgwMUZBMDAyMkEwNjhBMDAyRUEwMDI2MDAzMEEwMDI4Cis6MTBBMkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDBCMzAwMjBDMDEyCis6MTBBMkUwMDAwQjNEMDJDMDAzMjMwMDIwRTAwMUIwMDY0QzAwOEIwMEIwCis6MTBBMkYwMDAyRUMwNEIzMDAyOEUwODgzODAyQ0M0MDAzNDhFNEEwMDVFCis6MTBBMzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDODBCNTgwNjFDMDZBCis6MTBBMzEwMDAwQjQwMDJENDAwODQwODIzQzIwODUwMDI1RUMwODQwMUFFCis6MTBBMzIwMDAyRDAwOEEwODAyMTAyNDg0MDg2RDAwMEEwMzEyMjgwMEY4Cis6MTBBMzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGNTgyMjE2MDE3Cis6MTBBMzQwMDAwRjc4MDNENjA0QUU4MDMxRTAwRDU4MjM3RTAwQzY4MDFFCis6MTBBMzUwMDAyREUwMEI3ODAzOEUwMEQ3ODIzREYwMEM3QTAzNkEwMjYxCis6MTBBMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGMTAwQkFEODk5Cis6MTBBMzcwMDAwRjgwMDNFNDEyRjgwMEJFODAwRTEwMDNFQzAwRjkwMDE5Cis6MTBBMzgwMDAzRTAwNUY4MDAzRTAwOEY4MDQzQzAwMEY4MDAzQzIwNjMzCis6MTBBMzkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMjBGRjgwM0ZGMDRDCis6MTBBM0EwMDAwRkY4MDNEMjAwRUY4NEIzNjEwQ0I5MDNGRTAwRkY4MDA1Cis6MTBBM0IwMDAzM0UwMENGODEzMjIxMUNEOTAzRjYwMENFODAzMTAwMDNECis6MTBBM0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBGNTAwMkRDMEU2Cis6MTBBM0QwMDAwQjAwMDJENDA0ODQyMDIzNDAwODVBMDJEQzAwQjQwMDlECis6MTBBM0UwMDAyMTAwMjhDMjAyMUUwNDg2MDQyRDg4MDhEMDAyMkEwNEY3Cis6MTBBM0YwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDlDMDBCNTAwMkQ0MDJGCis6MTBBNDAwMDAwQjcwMDJGNDIwQTcwNDIxQzAwQTUwMDJEQzAwQkUwMDM5Cis6MTBBNDEwMDAyMUMwMDg3MDEyMDAwMDg1MDAyRDQwODg2ODBBMDQwMEUxCis6MTBBNDIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENDMDBBMTAwMkVDMDNECis6MTBBNDMwMDAxQjA4MDZDNDIwODAwMDIwOTgxQTEwMDJDQzAwQjEwODI2Cis6MTBBNDQwMDAyMDAwMDgwMDAyMEMwMTgyQzAyQ0FDMjg5MDIyMTgwNEM1Cis6MTBBNDUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBCMzAwM0U0MDIyCis6MTBBNDYwMDAwRkJBMDNFNTAyRTkwNDMyOTBBRUIwMDNGQzEwRkI0MEUyCis6MTBBNDcwMDBCMjAwMEM4MDBCMkMwMjgyMTgzRkEwMENEMDAzMkUwNERCCis6MTBBNDgwMDA2MDAwMDAwMDAwMDAwMDAwOTAwMEVDMDRGQjAxM0U0MDcyCis6MTBBNDkwMDAwRkI2NDNFNDAwRjgwMDNFODAwMTkwMDNFQzAwRjg4MTIxCis6MTBBNEEwMDAzRUQwMERCNDUzRTAwMEY5NDAzRTQwMEZBMDAzRTAwMDYxCis6MTBBNEIwMDAzMDAwMDAwMDAwMDAwMDAwODAxMERDMDJDRDgwMzM2MDFFCis6MTBBNEMwMDAyQ0RBMDNGQzAwRUMwMDMzNDAwRkYyMDM3QzA0RkUwMEE2Cis6MTBBNEQwMDAzMjAwMENDODAzM0MwMENFMDAzMTgwMENEMTAzMjQwNEIwCis6MTBBNEUwMDAzMDAwMDAwMDAwMDAwMDAwOTEwNDZDMDAwOTAwMkE2NEE0Cis6MTBBNEYwMDAwODhFMDJDMjEwQTAxMDNFMTAwQjk4MDJFQzAwQjkwMEFBCis6MTBBNTAwMDAwMkQ4MDhCRTIyMjAwMDg5MDAyMjUwMDhBMDAyMjA0MDY0Cis6MTBBNTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDAwQjIwMjI0MEVECis6MTBBNTIwMDAwOEEwMDJFNTQyQUIwNDIyMTgwQkIwMDI2QzAwQjMwMDk1Cis6MTBBNTMwMDAyMDA0MDgwMTAyMDAwNEE4NDAyMjEwMDg4MDAyMjAwMDI0Cis6MTBBNTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDg4MzAwMjg0MEMwCis6MTBBNTUwMDAwODA0MDJDNDAyQTgwMDJDMDAwQjEyMDJDQzAwQjAwMEI4Cis6MTBBNTYwMDAyMEMwNDAzMDAyMEMwMDhCMDBBOEMwMDgzMDAyMDIxMTRECis6MTBBNTcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBDOTAwMzM0MEE2Cis6MTBBNTgwMDAwQ0IwMDNFQzAyRUIwMDMyNDAwRkIwMDM2QzAwRkEwMDk5Cis6MTBBNTkwMDAzMjAwMEM4MDAzMjA4MEM4MDAzMDAwMEM4MDAzMjAwM0IwCis6MTBBNUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGRDAwM0Y0MDJBCis6MTBBNUIwMDAwRkMyMTNGMDAwRjQwMDNGMDA0RkQ0MDNGQzAwRjUwMDdECis6MTBBNUMwMDAzRkMwOEZGMDAzRkM0MEZGMDAzN0MwMkZGMDAzRTgwNkM4Cis6MTBBNUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwMDBDQzAwMzMwMDU3Cis6MTBBNUUwMDAwRUQwMEIzMzAwQ0MwMDMzRTAwRkMwODM3QzAwQ0YyMEIzCis6MTBBNUYwMDA3QjA5OENGODAzRkU1MENGMzgzRkUxMERDMjAzRjAwMDE5Cis6MTBBNjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUyMDA5ODA4MjA4MDI4Cis6MTBBNjEwMDAwODk4MDIyMDAwODhEMDIyRTAwRUI0MjI3RDE5OUY2OTlDCis6MTBBNjIwMDAyRTkwMDgzMDkyMjg4MURCNjQyRUUxODgxNkEyRTAwNDg3Cis6MTBBNjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM4MDA5MDI0MjAwMUMwCis6MTBBNjQwMDAwODEwMTYwMDgyODMwMTI4QzEwQjAyODIwQ0UwQTMxMEJGCis6MTBBNjUwMDAyODBFMUI5MjAyODQ4NDkzMjAyRUMwMDgzMTAyRTIwMTRFCis6MTBBNjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MTA5ODAwMjI4MEIzCis6MTBBNjcwMDAwODkwMDIwMDYwOEExMDJBQzAwQTIwMDI2QzE4QkIwMEYxCis6MTBBNjgwMDA2RTYwMkI5MDAyNDYyMDhCMDAyRUMyMDhCMTgyRjAwNDJGCis6MTBBNjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUU0MDJDQjAwQjI0MDY2Cis6MTBBNkEwMDAyQzkyMDMyNzAwODgwMEJBQzAwRjg4MDMyQzAwRUIwNDBCCis6MTBBNkIwMDAzQUEwQ0YyQ0EzRUQwMDlCMDAzQ0YwMkQ4QzMzRDAwNEFFCis6MTBBNkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDRFRjAwM0ZDMDkzCis6MTBBNkQwMDAwRDUxMDNGMDAwRjE4MTM3QzAwRUY0MDM5QzEwQ0YwMDQwCis6MTBBNkUwMDAzRDgwMENFQzA3QjgwOEZGMDIxRkM0MEZDODAzRjgwMDM4Cis6MTBBNkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDlFMDBDMzAwMzg0MEQxCis6MTBBNzAwMDAwQzkyMDNBNDgwRkIyMDNBQzAwRDk0MDMyQzQwRkIwMDY0Cis6MTBBNzEwMDAzRTAxMEY4MDAzRTUwMEVCMDAzQUMwMEQ4NDBCMTAwNEVFCis6MTBBNzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDg4QjAyMjJDMDk5Cis6MTBBNzMwMDAwODkyMDMyMTAwOEI0ODIyQzAwQkI3MDIzRDQwM0YwMTI1Cis6MTBBNzQwMDAyMjc0MEI5MDAyMjgwNEJGMDBCMkMwMEI4NTAyMzIwMEI1Cis6MTBBNzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQwMDE4MDAwMjgwMEVCCis6MTBBNzYwMDAwODJDMTI4ODQwQjA0MDA4QzAwQjE4MDIwRTAwQjMwMDNECis6MTBBNzcwMDAyODIwMTEzMDAyMEMwMEIzMDAyNDAwMDkwMDA2MzgwMDI0Cis6MTBBNzgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTEyMDA4NDgwMjFBMDgxCis6MTBBNzkwMDAyODY4MTIzQTAwODQ4MDI1RTA4QjU4MDIxRTQwQjc4MjU4Cis6MTBBN0EwMDAyMUE2MEI3ODAyMUEwMEI3ODAyMTIwMEI1ODAyMDgwMDVFCis6MTBBN0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBDODIxMzgwOUQ3Cis6MTBBN0MwMDAwQzI4MDM4MDAxRjEwMDM4QzAwRDg1MDIwQzAwRkIwMDRECis6MTBBN0QwMDAzODg1MEYxMDAzOEMwMEVCMTAzQ0M4MEQzMDAzMTIwMkJCCis6MTBBN0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDk4MDBGQzAxM0Y4MEI4Cis6MTBBN0YwMDAwRjY4MDNEMDQwRkMwMDNCQzAwREMwMDNGQzIwRkYwMEVECis6MTBBODAwMDAzQkM1MEZGMDBCQjQ0MEZGMTgzRjAwMEZGMTAzRDAwNjFCCis6MTBBODEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBFQjAwQjA0MTZCCis6MTBBODIwMDAwQ0EwMDNFMDA0Q0EwNEIwRTAwRUIwMDNFQzgwQ0IyMDFGCis6MTBBODMwMDAzMjgxMENBMDAzRUUwMERCMDAzRTAwMEVCMDAzMkEwMEM0Cis6MTBBODQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDQ4NzAwMjFDMDNGCis6MTBBODUwMDA0ODYwMDJGMDAwODcwMDIxQzAwODcwMDJGQ0EwODMyODM1Cis6MTBBODYwMDBBMzgwMDg2MDAyREMwMDg3MjAyREMwMEI3MDAyMTIwNDU4Cis6MTBBODcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlDMDJBMzgwMjE2MDc2Cis6MTBBODgwMDAwODY4MDJEMjAwODc4MDIxRTAyOTc4MDJERTgwODc5MDY0Cis6MTBBODkwMDAyMUEwMTk0ODAyRkUwMDk3ODAyREUwMEEzODgyMzAwMDdFCis6MTBBOEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDE4MzgwMjBDMDdDCis6MTBBOEIwMDAwODIwNDJDMDMwODM3MEEwQzA4OTM0MDJDQzAyODMwMERCCis6MTBBOEMwMDA2MEMwMjkwMDAyQ0UwMDgzMDAyQ0M4MEJCQzAyMTIwNDE5Cis6MTBBOEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE5MDBFQUUyMzI5MDE0Cis6MTBBOEUwMDAyQ0UwMDNGQjAyQ0VDMDMyODAwRkU0MDNFODAwOEEwMEI0Cis6MTBBOEYwMDAzMzg4MEQ2NEMzRkEwMERBMDAzRDkwMEVFMDBCM0EwNDkxCis6MTBBOTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMwMjRGODA4M0UxMjZCCis6MTBBOTEwMDAwRkMwMDNFMDQ4RjAwMDNFMDAwRTgwOTNDMDAwRjgwMDM2Cis6MTBBOTIwMDA3RTAxMEU4MEMyRTA0MEY4MDA3RTAwOEY4NDAzRDIwMERBCis6MTBBOTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU1MDBDMTAxMzI0OEFFCis6MTBBOTQwMDAwQzk4MDNFNjQwQzkwMDMyNDAwRjkwMDM2NjAwQzkwMDJFCis6MTBBOTUwMDAxODYxMEM5MDAzNjQyMEY5MDUzRTQwMEM5MDgzMDIwNEJBCis6MTBBOTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY2MjA4OTAwMjA1MkIyCis6MTBBOTcwMDAyODEwQzIyNjAyQTkwMDIyNDAwQjkwMEEyNzAwQTkwMDM1Cis6MTBBOTgwMDAyMjcwMDg5MDAyMjQwOEI5MDAyRTQwMEE5MDBBMjAwMDg0Cis6MTBBOTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDI4RDAwMjM0MDc0Cis6MTBBOUEwMDAwOEQxMDI4NDIwODkwMDIyNjAwQjExRjIyNEIwODEwMEJBCis6MTBBOUIwMDAyQTQ2MDg5MDQyNjQwOEI5MDAyRTQwMDg5MjAyMDYwMDE4Cis6MTBBOUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0ODA4NTIwMjM0ODk3Cis6MTBBOUQwMDAwODUyMDI4NDA4ODEwMDIwNDAwQjEyMDIwNDgwQTEyMDRBCis6MTBBOUUwMDAyODQ5Mjg5MDAyMDQwMDMxMjAyRTQwMDgzMjAyMDIwMTNBCis6MTBBOUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBDODUwQjIxNDU0Cis6MTBBQTAwMDAwQ0MwMDNBMTQwQzgwMEIyMDAwNzg1MDMyMTQwQzg1MDE0Cis6MTBBQTEwMDAzQTE1MEM4NTAzNjE0MEY4NTEzRTAwMkM4NTAzMkUwMzQ2Cis6MTBBQTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREM0NDhGOTEwM0U0NDhBCis6MTBBQTMwMDA0RjkxMDM3NDAwRjU0NDNFNDAwRkQxMDNFNDQwRjkxMEY4Cis6MTBBQTQwMDAzNzQ0MEZEMDAzRDQwMEY5MTAzRkMwMEZEMTAzRTYwNkZFCis6MTBBQTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUY2QTBERDhDMzM3OEFGCis6MTBBQTYwMDAwRURBMDMzNTAwQ0RBMDMzNDAwREY4MEIzNjgxRTk4MEI2Cis6MTBBQTcwMDAzMzcwMEM5MTAzRTQ0MEY5QzAzRUMwMEZEQzAzQzYwMDA0Cis6MTBBQTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDRCODQwMjAzQ0Q1Cis6MTBBQTkwMDAwQzg1MDIwMjg0OEE0MDIyMDAwODhGODIyMzAwQjhFOEQ1Cis6MTBBQUEwMDAyMjIwMDg4ODAyRTIwMEI4RDAyRTAwMEI4QzAyQ0UwNENGCis6MTBBQUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA5MTAwNjA0ODVDCis6MTBBQUMwMDA0QjEwMDIwNDhBODE0MDYwNDA0OTEwMDI4REEwQTE0MUQwCis6MTBBQUQwMDAyMDUwMDkxMjIyQzQ4MEIxMjAyQzQwNEIzRTAyQzIwMUZBCis6MTBBQUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDhCOTA0QTA0MDgwCis6MTBBQUYwMDA0OEIwMDIyNDAwODkwMDgyNDAwODkwQTZBNDAwQjkwNDRFCis6MTBBQjAwMDAyMjU0Mjk5NTAyRTU0MEI5MDA2RTQwMEI5MjAyQzYwNDFBCis6MTBBQjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU0MDA5MTAwMzI0MDQ5Cis6MTBBQjIwMDAwRjkwMDkyNDAwODk5MDMyNDAwRDk0MDNBNDAwRTkwMjlCCis6MTBBQjMwMDA3MjYwMEQ5NDAzRTQwMUY5MDEzRTYwMEY5MDAzRTgwNDk0Cis6MTBBQjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0NDBGOTAwM0U0MDExCis6MTBBQjUwMDA0RjkwMDNFNzEwRjk4MDNFNDAwRjEwMTM2NDAwRjEwMDlFCis6MTBBQjYwMDBCRTQwMEU5MDAzRTYwOEY5MDEzRTY0MEY5MDAzQ0EwMDUwCis6MTBBQjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEEwMDBGODAwMzIwODdCCis6MTBBQjgwMDAwQzAxMEIyMDQwQzg0MDMyMDAwRTg0ODMyMDAwRjgwNEUyCis6MTBBQjkwMDAzRTA0MEY4MDAzMjEwMEU4MDAzRTEwMEY4ODAzQ0EwNDIyCis6MTBBQkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDAzRTA0MjM4MDNCCis6MTBBQkIwMDAwOEVDMTIzOTQ0QTYwMDI4ODEwOEUwMDAzODA4QkEwMEUxCis6MTBBQkMwMDAzRjgwMEJBMDAyQTgwMDhBMDIyRTgwMEJFMDAyQ0EwMDgwCis6MTBBQkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQ4MDAzMTAwMjREMDlCCis6MTBBQkUwMDAwODNFMTJBRTA4ODFBMDJDQzAwQTM4MDA0QzAwQjMwMDA5Cis6MTBBQkYwMDA2RUMwMEEzMDAyMEMwMEEzMDA2Q0MwMEIzMDAyQ0EwMDA5Cis6MTBBQzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE4MDBCNTEwMjVDMDkxCis6MTBBQzEwMDAyODYwMTI5MDEwQTUwODJEQzIwODY0MjI1ODE4QjcwMEE5Cis6MTBBQzIwMDAyRDgwMEI3OTAyQkVDMDg3MDE2REMwMEI2MDAyRTgwMDY5Cis6MTBBQzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGNTg0MzUyMDM4Cis6MTBBQzQwMDA4QzE4MDI5MjEwQzU4MDNENjAwRUM4MEI1QTA4NzdGMzJECis6MTBBQzUwMDAzREEwMEZGODAzMUVCMEU3ODUzREUwMEY3ODAzRUEwMjQwCis6MTBBQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGMTA0QkEwMTYzCis6MTBBQzcwMDAwRkEwNDM2MDA5RTEwMDM4NDAwRUEwMDNBODE0RkIyMDk4Cis6MTBBQzgwMDAzQTgwMEZCNDFCNEM4MEZCMjkzRUMwMEZCMDIzQzIwNjk0Cis6MTBBQzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBDRDgwM0JFMEVECis6MTBBQ0EwMDA0RUY4MDNGMjAyRDQ4MTNCRTA4RTk4MDczRTQ0RUY5MUM4Cis6MTBBQ0IwMDAzRkUwNEZGQzA3RUVEMENGOTgzM0U0MEZGODAzQzAwMDFECis6MTBBQ0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgwMTk4MDA4NTEwMkRDNDRECis6MTBBQ0QwMDAwRDExMDJGMDAwODUyMDMxQzQwQjdCMDAzODQwRDcxMEU1Cis6MTBBQ0UwMDAyRDgwMEI3MDYyRkVFMTg3MTQzOUMwMEI2MDAyRUEwNDBDCis6MTBBQ0YwMDA2MDAwMDAwMDAwMDAwMDAwMDAxMEJDNDBBNTAwMjk0MERBCis6MTBBRDAwMDAwQjUwODJEQzQwODQwNDJEQzAwQjEwMDY1ODQ0QTcxMDYxCis6MTBBRDEwMDAyRDgwMEI3MTAyREMwMDg3MDQyMUMyMEI1MDAyQzAxMDkxCis6MTBBRDIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMEFBMTAxMkM0MEVCCis6MTBBRDMwMDA4OTE4MDJDMTAwQTEwODIwQzAwQjM0MDY0MDAwOTMwNTA5Cis6MTBBRDQwMDAyQzE0MEIzQzg2Q0UxMDgzMDEyOEYxMEIxNDAyQzgwNDhFCis6MTBBRDUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUEwMDBFRDAwM0FDMDdGCis6MTBBRDYwMDAwN0JDNjNFRDAwODE0MDNFQzAwRTg4MDM2NDAwRUYwMDI1Cis6MTBBRDcwMDA3RTUwMEZGMDAyRkQ0MkNGMDA3MkMwMUZCNDAzRUEwNDAwCis6MTBBRDgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU4MDA5OTAwM0VFMDQ0Cis6MTBBRDkwMDA0RkI0ODNFRDkwMDk0MDNFQzAwRkExODNBODAxRUIwMUExCis6MTBBREEwMDAzRTAwMEZCMTEzRUMwQ0ZCMDAzQUMwNUYyMDIzRTAwMDIzCis6MTBBREIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY4MDBGRDA0M0ZCMDZBCis6MTBBREMwMDAwRDYwMDMzRTAwQ0QwMDMzRjAwRkYyMDFGMDAwRkYwM0YxCis6MTBBREQwMDAzRjAzMEZGMDAxRkMwMEZCMDIzM0MyMEZGMEUzMDA0NDFECis6MTBBREUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZBMDBCOTAyMkVBMEJCCis6MTBBREYwMDA0QUFDMDIwRTgwRjlDMDM2RTEwQkEwMDIyQTA4QkIwMDYzCis6MTBBRTAwMDAyRTIwMEVCMDAyRUMwMEVCMDAyMkMwOEJCMDAyMjA0MERFCis6MTBBRTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTIzMDBBOTAwMjhDMEVECis6MTBBRTIwMDAwOUIyMjI2QzQwODk4OTJBQzAwQjE0MDYyNjAwQUIwMkE1Cis6MTBBRTMwMDA2RUUwMDlCMDA2NkMwMEIzMDIyMkMwMEJCMDAyMjAwMDI1Cis6MTBBRTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA4MDBCMTAwMkNDMDExCis6MTBBRTUwMDAwQTMwMDIyQzAwQkIwMDY0QzAwQjMyMEEwODAwMzMwMDI5Cis6MTBBRTYwMDA2QzgwMDIzMDQ2Q0MxOEEzMDAyMEMwMEIyODAyMDIxMUNGCis6MTBBRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTY4MDBFOTAwMzhDMTgzCis6MTBBRTgwMDAwREIxMEIyQzAwODkwMDNBQzAwQjkwMDM2MDAwRkYwMjRCCis6MTBBRTkwMDAzRTgwMEZGMDAzRkM4MEZGMDAzMkMwOEY4MDBCMDAwMzY4Cis6MTBBRUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxMUQ4MDBGRDA0M0ZDMEM5Cis6MTBBRUIwMDAyRkYyMDNGQzExRUYwMDNGQzAwRkY0NDM3MDAwRkYwMEJFCis6MTBBRUMwMDAzRjAwNDZGMDAzRkQwMEVGMDAzRkMwMEZDMDAzRTgwNjVGCis6MTBBRUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFMDBGRjgwM0RFMEEzCis6MTBBRUUwMDAwQ0Y5MTNERTAwN0Y4MEIzRTAwRkZDMDNCRTQwQ0Y4MDdGCis6MTBBRUYwMDAzM0YwMEZGODAzN0MwNENDODAzM0EwMENGMDBCMzAwMTRFCis6MTBBRjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUwMjA4ODAwMkUyMDZCCis6MTBBRjEwMDAwODgyMTJFMDgwQTg4MTIyMDIwQjgwMDIyMDgwQTg4MDkzCis6MTBBRjIwMDAyMjA4MEI4MDAyMkMwMjg4MDRBQTIwMDhCMDAyMjAwNDA4Cis6MTBBRjMwMDAyMDAwMDAwMDAwMDAwMDAwODgwNUVDMDBBMzA4MkM4MDIxCis6MTBBRjQwMDAwODMyMDJDNDIwQTMwMDI4NDAwQjkyMDI4NDAwQTkwMTA5Cis6MTBBRjUwMDAyOEM4MUIxMjgyQ0M0MEE4MDAyNEUwMEEzMDQyMjIwMUZCCis6MTBBRjYwMDAzMDAwMDAwMDAwMDAwMDAwQzAxMUE4ODBBODAyMkU0MEEwCis6MTBBRjcwMDA2ODgwMTBDODAwQjg0MDJBOTAwQkEwMDAyODAwQUEwOERBCis6MTBBRjgwMDAyQTAyMDMyMDAyOEMwMEE4ODgyRTIwMEFCMDAyMzAwNDc2Cis6MTBBRjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUU4MDRGQTAwM0M0MDlBCis6MTBBRkEwMDAwQ0EwMDNFODAwRUIwMDNBQzAwRjIwNTNBODAwRTM0MEQ4Cis6MTBBRkIwMDAyQTQwMEZBMDAzNkMwMEE4ODAzNDIwMUVCMDAzMTAwNEE4Cis6MTBBRkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDA5RDkxM0Y4MDhGCis6MTBBRkQwMDAwRkRBMjNGNDAwQ0MyMDM3MDAwN0QwMTM3NDAwQkMwMDM0Cis6MTBBRkUwMDBCNzgwMEJEMDQzN0MwMERDMDQzQjAwNkRGMDAzRjgwMDFECis6MTBBRkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE4MDBGQTgwM0EwMDQ1Cis6MTBCMDAwMDAyQ0EwMEIyMDAyQ0I2MjNFNTAwRTg4MDMyMDAwRDkxMEVBCis6MTBCMDEwMDAzRTcwOEM4MDMzRUM4MEQ4NDAzQTAyMERCMDAzMTAwNEFGCis6MTBCMDIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTBDMDAzOTgwMjJDMDkwCis6MTBCMDMwMDAwQzlEODIyQzEwRDA0MDJFQTAwOEI4MDM0RTAyOEE0MEVFCis6MTBCMDQwMDAwRUEwMERCMDAzM0QwMEQwOTAzNjEwMEJGMDAyQjIwMDAwCis6MTBCMDUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMTAwNjBDMEFFCis6MTBCMDYwMDA4QTE4MDI4QzA4ODA0MDBDQTAwMjMwMDJDRTAwODI0ODcwCis6MTBCMDcwMDAyQzgwMkIzMDA2OEMwMDgxMDIyMDkwMDlCMDAyMzgwMDExCis6MTBCMDgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTEyMDBCNjkwQTMzMDI0Cis6MTBCMDkwMDAwOEU4MjJCMjE0ODc4MDJENjAwODQ5MTIxMjYxOTU5MDQ5Cis6MTBCMEEwMDAyRDYxMEE0ODE2MUU4MDk1ODAyNTIwMEI3ODAyODgwMEE1Cis6MTBCMEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMTAwMjg4QzRGCis6MTBCMEMwMDA4RTEwMDM4NDgwODAwMDJDMDIwQTlBMDJFNDAwRDAwMEQzCis6MTBCMEQwMDAzRTgwMEI5MTAzOEU4MEMyMDgzODgwMERCMDAzMTIwMkFGCis6MTBCMEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREIwMDBGNjAwM0Y0NERBCis6MTBCMEYwMDAwRjIxMTM3ODAwRkYwMDNEQzAwRkUwMDM3ODAwRUYwNDNDCis6MTBCMTAwMDAzRjQwOERFODAzREMwNEY2MDAzRjAwMEZGMDgzRDAwNkRCCis6MTBCMTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDBFODgwMzI0MDYwCis6MTBCMTIwMDAwRjg4MEIyODAwNzgwMjNFODAwRTI4MDMyODAwQ0E4MDcyCis6MTBCMTMwMDAzMjAwMEZBMDAzRUMwMEM5ODAzMjgwMEZCMDAzMkEwMDU4Cis6MTBCMTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMThDMDA4RjAwQTE4MEZBCis6MTBCMTUwMDAwQjcwNDIxNDAwQjcwMDJENDEwQjUwNDIxNDAwQTUwMEEzCis6MTBCMTYwMDBBMUMwMEI1MDAyRkM4MEE1MDAyMTAwMEJGMjAyMTIwNENBCis6MTBCMTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMEJBMDBBNDgwMjkzMDc4Cis6MTBCMTgwMDA0QjQ4MDY1MjA4QjQ4MDJEMjAwQjQ4NDIzMjAwODQ4MDgwCis6MTBCMTkwMDAyMTIwMEI0ODEyREU0MDg2ODEyOUEwMEI3ODBBMzAwMDVFCis6MTBCMUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzA1MjBFMENGCis6MTBCMUIwMDAwQjM0MDI2QzEwQjMwMDJDQzAwQjM2NEEwRDBEQTMwMEVCCis6MTBCMUMwMDAyMEMwMEIzNDgyQ0MwMkEyMDAyODAwMEIzMDAyMTIwNEYzCis6MTBCMUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE5MjBFQTQwMzBBMDdGCis6MTBCMUUwMDAwN0EwNDM2OTQwRkEwMDNDODAwRkEwMDMwODQwQ0EwMDUyCis6MTBCMUYwMDAzMEEwMEZBNDAzRTgwMENFMDAzQjk4MEZBMDAzM0EwNDUwCis6MTBCMjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEQyMDBGQzA4M0YwMDgxCis6MTBCMjEwMDAwQkMyMDNCMDAwRkMwMDNGMDAwRkMwMDNGMDAwRkMwMEI1Cis6MTBCMjIwMDAzRjA0MEZDMDAzRTAwMEY4MDBCNjAyMEY4MDAzRDIwMDE1Cis6MTBCMjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBEOTAwM0U2ODYzCis6MTBCMjQwMDA0QzkxMDFFNDA4QzkwMDNFNDAyQzkyMDNFNDAyQzlBMERECis6MTBCMjUwMDAzRTcwMEU5MDAzQzY0MkM5MDAzRTQwMEYxMDAzMDIwNDI4Cis6MTBCMjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTg2MEU2MDQ5Cis6MTBCMjcwMDAwODk4MDJFNDA4ODkxMDJFNjAwODkwMDJFNDAwODkwQzA2Cis6MTBCMjgwMDAyRTYwMDg5MDAyRTY4ODg5MDAyRTQwMEI5MDAyQTAwMEY0Cis6MTBCMjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5RDEwMkY0MDQxCis6MTBCMkEwMDAyOEQwMDZGNDAyQUQwMDJGNjAwOEQwMDJGNDAwOEQwMDEzCis6MTBCMkIwMDAyRjQwMEFEMDAyRTQwMDg5MDAyRTYwMEI5MDAyMDYwMEE1Cis6MTBCMkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDM0MDA4NTAwMkQ0MDBDCis6MTBCMkQwMDAwODU4MDJENDAwQTUwMjJENDAwODUwMDBENDAwODUwMDczCis6MTBCMkUwMDAyRDQwMDg1NDAyQzQ4MDgxMDAyQzYwMEIxNDAyODIwMTlFCis6MTBCMkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODUyM0UwMDgwCis6MTBCMzAwMDAwQzA1MDNFMTQwRTgwNDNFMTQwQzg1MDNFMTQwQzgwMDRECis6MTBCMzEwMDAzRTE0MEVDMDAzRTAwMEMwMDIzRTAwNEY4MDIzMkUwMzA3Cis6MTBCMzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0MDBGOTAxM0U0MEFDCis6MTBCMzMwMDA0RjkwMTNFNDAwRDkwMDFFNDAwRjkwMDNDNDEwRjEwMDk5Cis6MTBCMzQwMDAxRTQwMEY5MDAzRTRFMEZEMjgzRjQwMEY5NDAzRTYwNjAzCis6MTBCMzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUE0MDBGRDAwM0Y0MDQwCis6MTBCMzYwMDA0RDUwMDJFNDAwOTUwNDMzNDAyOEQwMDNGNDAwRkQwMDYyCis6MTBCMzcwMDAzMzQwMEY5MTAzMzQwMENENDAzMzQwMEY5ODgxMDYwMEQ1Cis6MTBCMzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMTBCODAwMkUwMDJGCis6MTBCMzkwMDAwQjgwMDJFMDEwQjgwMDIyMDAwODgwMDJFMDAwQjgwMDM0Cis6MTBCM0EwMDAyMjAwMEI4ODAzQzI4MDg4ODAyMjAwMEI4QzAyMEUwNENFCis6MTBCM0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNEM0MDBCMTAwMkNDMEYwCis6MTBCM0MwMDAwQjEwMDJDNDAwQkIwMDIyNDAwODEwMDJDNDAxQjkwMEU3Cis6MTBCM0QwMDAyMDQwMUI5MDAyMDQyMjg5MDAyMDYwMEIxMjgyMDIwMThGCis6MTBCM0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0NDRCOTAwMkVDMDMxCis6MTBCM0YwMDA0QjkwMDJFNDEwQjkwMjAyNDAwODkxNDJFNDAwQjk4MDg3Cis6MTBCNDAwMDAyMjQwMEI5MjAyQzQwMDk5NDAyMjQwNEI5MDEyMDYwNDQ1Cis6MTBCNDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU2MDBCOTAxM0U1OEUxCis6MTBCNDIwMDAwRDkwMDNFNjAwRDEwMDMyNjAwQzk4MDJFNjQwRjkwMDZFCis6MTBCNDMwMDBCMjQwMEYxODAzMjQwMEM5ODAzMjUwMEY5MDIzMjgwNDEzCis6MTBCNDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0U0MjQ2Cis6MTBCNDUwMDAwQjkwMDNFNzA4RjkwMEJFNDgwRjkwMDNFNDAwRjkwMEUxCis6MTBCNDYwMDAzRTQwMEY5ODAzQTQwMEU5QTBCRTQwMEYxMDBCNEEwMDE1Cis6MTBCNDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAxM0UwMDdECis6MTBCNDgwMDAwRjgwOEIyMDAwRjgyMDNFMDEwRjgxMDNFMDAwRjgwOEI4Cis6MTBCNDkwMDAzQTAwMEM4MDAzRTAwMEQ4NDAzMjAwMEY4MDEzMEEwNDA5Cis6MTBCNEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4QTgwMkY5MTVECis6MTBCNEIwMDAwQkVFMDIyODAxQkUwMDIwODAwQkEwMDJFQTgwQjY0OEY1Cis6MTBCNEMwMDAyMjgwMERBMDAyRkEwMjg2NDFBM0E2MEJBMDAzMEEwMDY3Cis6MTBCNEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzgwMkNDMEI0Cis6MTBCNEUwMDAwQjMwMDIwQzEwQjMwMDI4QzAwQjM4MDJDQzAwQjMwMEE0Cis6MTBCNEYwMDAyOEMwMDkzMDAyQzYwMTgzNjAyMDcwMEIzMDBBNEEwMDYwCis6MTBCNTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTJFODg4NTA4MkQ4MDVBCis6MTBCNTEwMDA0QkY4MDYxQzgwQjcwMDIxQzAwQjUwMDJENDAwQjYwMEM3Cis6MTBCNTIwMDAyOTYwMDk3MDAyRDBBMDhEMDAyMTQwMEIzMjAyMjgwMDUyCis6MTBCNTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBENTgwM0RFMDhCCis6MTBCNTQwMDA4Rjc4MDMxRTg0Qjc4MjNENjAwRjU5MDNERTAwRjc4MEI5Cis6MTBCNTUwMDAyOTYwMTU3ODAzREUwMEM3ODAzMTYwMEY3QzAzNkEwMjIyCis6MTBCNTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDNDBFOTAwM0U4MDIzCis6MTBCNTcwMDAwRkEwMDNFRDMwRkIwMDM2QzEwRjk2MDNFNDAwQjMwMENCCis6MTBCNTgwMDAzNDQwMEZCNzgzRUM0MDIxMDAzRTQwMEZCMDAzQzIwNkE5Cis6MTBCNTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjgxMzNFMEI1Cis6MTBCNUEwMDAwRkY5MDNERTIwQ0Y4MTNGRTAwNzc4MDMzRTAwRkY4MEU0Cis6MTBCNUIwMDAzRkUwMDRGODEzRkUwMkRFODAzMzYwMEZGODAzMDAwMDYyCis6MTBCNUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCNzAwMjFDNDFBCis6MTBCNUQwMDAwQjVBMDJEQzQ4ODY1MDJEQzAwQjMxMDI5NDYwQjQxODFGCis6MTBCNUUwMDAyRDQwNDg3MDAyRTgwMEE1MTAyMTQwMEI3MTAyMkEwNDhBCis6MTBCNUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCRDAwMjE0MjJGCis6MTBCNjAwMDAwQjcwMDJGQzAyODUwMDI1NDAwQjUwMDI5QzAwQjcwMDI1Cis6MTBCNjEwMDAyRjQwMjg3MTAyREMwMEE2MDAyMUMwMEI3MDAyMDAwMDQwCis6MTBCNjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNDZEODBCMTIwQTA1MDE4Cis6MTBCNjMwMDAwQkIyMDZDRTAwQTAzNDJFRjAwQjE4MDI4NTIwQjM0QUMwCis6MTBCNjQwMDAyQzU0ODgzODAyQ0MxMEExMDAyMEIwMEIzMDAyMDgwNDIyCis6MTBCNjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJFODBGMzA4MTA1NDYwCis6MTBCNjYwMDAwQjg4MTNGRjAwQzA4MDNFNjQwRkI0ODMwNzAwRjlDMDRECis6MTBCNjcwMDAzRUYwMENGQzEzRjQwMEVBMDAzMjcwMEZGMDBCMkEwNEM5Cis6MTBCNjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGOTAwM0UxMEE3Cis6MTBCNjkwMDAwNzkxMDNFQ0MwNTgwMDNFNDQwRjkyMDNFNDAwRjkwMDA4Cis6MTBCNkEwMDAzRUMwOEZCMzAzRTAwMEJCMDBCRTQ0MEZCMDAzRTAwMDE4Cis6MTBCNkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDJDRDA0MzNFMDY3Cis6MTBCNkMwMDAwQ0MwMDMzQzA4RkUwMDMzNjAyQ0QwMDJCNDgwQ0YwMEQ1Cis6MTBCNkQwMDAzRjUyMDdGMDEzRkMwMENFMTAzMzQyMENCMDAzQzA0NEJECis6MTBCNkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDA4OTAwMkFCMEQ2Cis6MTBCNkYwMDAwODg4MDIyQzAwQkEwMDM2NDQwODkwMDAyNjAwREJDMEZGCis6MTBCNzAwMDAyRTQwMEJCMDAyRUMwMDgzQzAyODQwMEFCMDAyRTA0MDlCCis6MTBCNzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAwMjIwOEIzCis6MTBCNzIwMDAxQUEyMDIyQzEwQjkyMDIyNDAwODMwMDIyQzA0QUE1NDdDCis6MTBCNzMwMDAyRUMwMEJCMDEyQ0MwMDhCMDgyMjQwMDhCMDAyRTAwMEYzCis6MTBCNzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzA0MkEwMEYwCis6MTBCNzUwMDAwQTA4ODIwQzAwQjgwMDY0NDAwODMwMDJBNDAwQjAwMDVGCis6MTBCNzYwMDAyQ0MwOEIzMDEwQzgwMjhCMDAyQTQwMEEzMDAyQzIwMTY0Cis6MTBCNzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDOTAwMzIwMDU1Cis6MTBCNzgwMDAxQTgyMDMzQzAwRjkwMDMyNDAwQ0QxMDNBQzAwRUIwMEZDCis6MTBCNzkwMDAzRTQwMEZGMDAzRUQwMEMzMDAzMkMwOENCMDAzQzAwMzg1Cis6MTBCN0EwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGNTAwM0YwMDYwCis6MTBCN0IwMDAwRDgwNEJGQzAwN0MwMDNGNDAwRkQyMEI3NDAwREYwMDdCCis6MTBCN0MwMDAxRDQwOEZGMDAzRkNBMEZGMDAzRjgwMEZGMDAzRTgwNjUwCis6MTBCN0QwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBERjg0M0JFMEJBCis6MTBCN0UwMDAwRkY4MEIzRTAwRUM4MDMzRTEwQzMwMDMzQzgwQ0Y0ODc3Cis6MTBCN0YwMDAzN0MwMEU0MDAzRTBDMEM3OTFCMzA0MENGMDAzMzAwMDIzCis6MTBCODAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVGMDQ4QjgwMjI0MUQ3Cis6MTBCODEwMDAwQkIwODIyRTAwODg4MEEyRTAwQUEyOTJBRDgwODc0MkZGCis6MTBCODIwMDAyM0Q4OEFBRDAyRTBDMDhCMDAyMDRDNDhBNDAyMjAwNDNCCis6MTBCODMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDNThCQjAwMjg4MEM0Cis6MTBCODQwMDAwQkIyNDIyNDAwQTgwMDJBQzAwQTEwMDIwNDYwQTMyMDAwCis6MTBCODUwMDAyNEQyMDgwMDQyOEM4MzlCMDEyMDQ5MDgzM0MyMjIwMTc0Cis6MTBCODYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDBBQjg4MjJBMEYyCis6MTBCODcwMDAwQkI4MDIyNjBDQTgwMDJBQzAwQTkyMDJBNDAwQUIwNjRDCis6MTBCODgwMDAyMkMwMEFCMDAyRTgwMDlCMDAwMjQwMDhBMDQyMzAwNDM3Cis6MTBCODkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBEMzgwM0FFMDlBCis6MTBCOEEwMDAwRjE4MDEwNjAwRTgzMDM4NjYwRUI4MDMyQTQwRUIwMDk2Cis6MTBCOEIwMDAzNkMxMEU5NjAzRTI4MERBMDgzMjgwMkNCQjAzMTAwNEY2Cis6MTBCOEMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDBERjAwM0ZDMEFECis6MTBCOEQwMDAwRkQwMDNGNDAwREM4MDM3NjAwRkU4MDNGQTAwREYwMUNCCis6MTBCOEUwMDAzRkMwMEZDMDQzRTY0Q0VGQTAzRjQ0MEZBMDAzRjgwMDU5Cis6MTBCOEYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDNDBEQjAwMzY4MDFCCis6MTBCOTAwMDAwQzk4MDMyNjAwRjgwMDNFQzAwRTE4MDM4NDAyRTMwMUUxCis6MTBCOTEwMDAzOEMxMEVCNDAzQUM4MENBMTgzQUQwMkMzMDAzMTAwNERFCis6MTBCOTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNGNDBCOTg4MkU4MEJDCis6MTBCOTMwMDAwOEJDMDJBMzAwQjAwMDBFQzAwOEIwMDYyMDAwOEYwNEFGCis6MTBCOTQwMDAyM0MxMDhCOTEyMkYwMDgzODAzNjQwMDhBRDAyMzIwMEFGCis6MTBCOTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMjAwMkNDMEQ4Cis6MTBCOTYwMDAwOTMyMDI4NDAwMzMwMDJDQjIwQTM2MTI4QzA4OTMwNTg3Cis6MTBCOTcwMDAyMEMwMEIxODAyRUQwMDkxODA2QTAwMDgxMDAyMzgwMDA4Cis6MTBCOTgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCNzgwMkRFMEU0Cis6MTBCOTkwMDAwOTc4MDI5NzQwQjQ4MDJGQTAwOEU4MDIwRTQwOTc4MkYxCis6MTBCOUEwMDAyMUUwOTg2ODgyMUExODlEOTAyREExMTg1ODAyMDgwMDZECis6MTBCOUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDQzBGMzAwM0VDMDNBCis6MTBCOUMwMDAwREIwNDM4NDQwRjAwMDNDODIwRTM4MTI4QzQ0RjMzMEJBCis6MTBCOUQwMDBCQUMxMUUxMDQ3OEUyMkQxMTAzODE4MEMzMDgzMTIwMkMzCis6MTBCOUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDNDBGRjAwM0ZDMDAwCis6MTBCOUYwMDAwRUUwMDNGNDQwRkMwMDNEQzQwRkQwMDFGNDQxRUYxODA5Cis6MTBCQTAwMDAzRkM0MUZGMDAzRjg0OEVGMTQzMzgwMEZDMTAzRDAwNjgyCis6MTBCQTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZDNDBGQjAwM0VDMEU0Cis6MTBCQTIwMDAwRjk4MDMyNDAwQ0IwMDNFNDAwRkIwMDNBODAwREIyODkyCis6MTBCQTMwMDAzRUM0MUY5MDIzRUMwMENBMDAzMkUwMEM5MDAzRUEwMEUxCis6MTBCQTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDODBCNzAwMkRDMDZECis6MTBCQTUwMDA0QjUwNTIxNDAwRDQwMTJEODAwQjYwMDJEODAwQTcyMDU3Cis6MTBCQTYwMDAyREM1MEI0MDE2REMwMDg0MDAyM0MwMDg0MDAyRDIwNDIwCis6MTBCQTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFODBCNzgwMkRFMDQ0Cis6MTBCQTgwMDAwQjc4MEE5NjAwOTQ4MDJENjAxQjc4MDZEMjAwQTc4MDYwCis6MTBCQTkwMDAyREUwMEI3ODIyREUwMDg3ODIyMUUwMDg1ODAyRjAwMEJBCis6MTBCQUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCM0U0MkNDMENCCis6MTBCQUIwMDAxQjIxMDI4MTAwOTAwMDJDQzgwQjM5MDJDRTAwQTMwMDhDCis6MTBCQUMwMDAyQ0MwMEIzMDAyQ0QwMDhCMjAyMEYwMDhCMjAyRDIwNDMzCis6MTBCQUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGRUEwM0Y4MjMyCis6MTBCQUUwMDAwRkU4MDM5ODMwRDYwMDNGQTAwRkUwMDNCQUMwRkEwMDc5Cis6MTBCQUYwMDAzRTgwMEZFQzMzRjgwMkNFMDBCM0I4MkNFQzgzRkEwNDhFCis6MTBCQjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMThGODQwM0UwMDFGCis6MTBCQjEwMDAwRjgwMDI2MDg0RjgwNTJFMDQ4RjgwNDFFMDAwNzgwMkQ3Cis6MTBCQjIwMDAzRTAwMEY4MTgzRTAyMEY4MDBCRTAyMEY4MDAzRDIwMEE4Cis6MTBCQjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU2MThGOTIwM0U0MDI4Cis6MTBCQjQwMDAwRjlDMDNFNDQwQzkwMDMyNjEwQzkwMTNDNDA4QzkwMTgyCis6MTBCQjUwMDAzRTQxMEYxODAzMjQwMEM5QTAzMjQwMEY5ODQzMDIwNDRECis6MTBCQjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY1MDBCMUMwMjI0MEU5Cis6MTBCQjcwMDAwQjlDMDJFNzEwODkwMDI4NDQwODk0MjJFNDEwODkwMEY1Cis6MTBCQjgwMDAyRTQwMEI5RjIyMjY2MDg5ODAyMjQwMEI5MTBBMjAwMEM0Cis6MTBCQjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0ODBCOTAwMkVDMDJECis6MTBCQkEwMDA0QkI0MDJFNDIwODkyMDIyNDAwODk0MDJFQzAwODkwMDcyCis6MTBCQkIwMDAyRTQxMEI5MDAyMDQwMDg5NDAyMjQwMEI5MDAyMDYwMEE3Cis6MTBCQkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTA0MjA0MDEwCis6MTBCQkQwMDA4QjEwMDJFNDA1ODEwMDI4NDAyODEyMTJDNDgyODEyMEMzCis6MTBCQkUwMDAyQzQ4MEIxMjBBMDQ4MjgxMDAyMDQ4MEIxMjAyMDIwMTI5Cis6MTBCQkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDY4QTBGQTAyM0UxNDJBCis6MTBCQzAwMDAwRjg1MDNFMDAwQzgwMDMyMDAwQzg1MDNDMTQwQzg1MzEzCis6MTBCQzEwMDAzRTE0MEY4MDAzMDE0OEMwNTBCMjE0MEY4NTAzMkUwMzU5Cis6MTBCQzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0MDBGRDAwQkY0MDJGCis6MTBCQzMwMDAwRjUwMTNENDAyRkQwMDJGQzAwRkQxMDNGNDQwRjkxMEIwCis6MTBCQzQwMDAzRTQ0MEZEMTAzRjQ0MEZGMDBCRjQ0MEZEMTAzRTYwNjhBCis6MTBCQzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2QTBGRDAxM0U0NDUxCis6MTBCQzYwMDAwRkQxMDNENDAwQzUwMDMzNDEwRkRCMDMyNzIwRDlFMEY3Cis6MTBCQzcwMDBCMjcwMEREQTgzRjY0MENGMTAzMjc4MkREQTAzMDYwMDY5Cis6MTBCQzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDBCODAwMkUyODBECis6MTBCQzkwMDAwQjg4NDJFMDEwRDgwMDIyMDAwQjhDMEEyMzAwODhDMEQ5Cis6MTBCQ0EwMDAyMjI4MDg4NDAyQzI4MDgwQTAyMjMwNDhBQTgyMEUwNDgyCis6MTBCQ0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDY2Cis6MTBCQ0MwMDA4QjEyMDJDNDAwOTkwMjI4NDA4QjE2MDI4NDgxOTEzMEE1Cis6MTBCQ0QwMDAyMDU4MDkxMDAyQzUwMDgxMDA2NDREMDgzNDAyMDIwMTk5Cis6MTBCQ0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUFDMENCOTA0MkU0OENDCis6MTBCQ0YwMDAwQjk0MDZFNDAwOTk0MEFBNDAwQjkyMjJBNDAwODkwMDBDCis6MTBCRDAwMDA2MDQwMDg5NDAyRTQwMDg5ODBBNjUwMDg5MjAyMDYwNDZDCis6MTBCRDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTk4M0U0ODEzCis6MTBCRDIwMDAwRjk4MDNFNTIwRDkwMDNBNjQwRjk0ODNBNEMwRDkwMjg4Cis6MTBCRDMwMDA3MjQwNEQ5MDQyRTQ4MkM5NDAzNjQwMEM5MDBCMjgwNDdBCis6MTBCRDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUFDMjhGOTg4M0U0MDg3Cis6MTBCRDUwMDAwRjk5MTNFNzAwRjlDMDM2NjAwRjkwMDM2NjAwRjEwMEY5Cis6MTBCRDYwMDA3RTQwMEY5OTA3RTQ2MEY5MDAzODQwMEY5ODAzQ0EwMDNECis6MTBCRDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODEwMzIwMDUxCis6MTBCRDgwMDAwRjgyMEIyMTAwRTgwMDM2MDQwQzg2MDNFMTAwRDgwMDg2Cis6MTBCRDkwMDAzMjAwMEY4MDAzNjEwMEM4MDAzMjAwMEYwMDAzMEEwNDY0Cis6MTBCREEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MjBCRTAwMjI4MDlFCis6MTBCREIwMDAyOEVDMDIxOTA0ODIwMDAzODAwREU0ODJFODAwOEEwMTY1Cis6MTBCREMwMDBBQTgwOEJFRDgyM0I4MDhFOTAzNjgwMEJFMDAzNEEwMDg4Cis6MTBCREQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQyMDBCMzgwMjBDMEExCis6MTBCREUwMDA2QjM0MTY0MEMwODMxMDI0NzI4OEIwMDJFQzAwODMwMENDCis6MTBCREYwMDAyNEMwMEIwNDAyNkYwOTlCMDAyNEMwMEIzMDAyMEEwMDEwCis6MTBCRTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDBCNzgwMjNFNEVGCis6MTBCRTEwMDAyODc4ODI3NDE0OEYwMDYxRTAwOTUwMTJEQzA0ODcyMkI0Cis6MTBCRTIwMDAyNUM4MUI3ODAyMTQwMDk0NDBBNUMwMEI2MDIyNjgwMDRFCis6MTBCRTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODEyMjBCNzgwQjFFMDE4Cis6MTBCRTQwMDA4RkY4MDMxMjAyRTc4MDM1RTAwQzY4MDZDRkMyQ0ZCMDRFCis6MTBCRTUwMDAyNUY0MEY1ODAzNUEwMkQ1ODA3NUZBNEZGODAzMkEwMkM5Cis6MTBCRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREE1OTBGMzAwM0RDMDg4Cis6MTBCRTcwMDA0RkIwMTNBODA0RkIwMDNDQzAwRjgwNDNFQzgwRUI2MDg0Cis6MTBCRTgwMDAzQUM5MEYzMDAzRUMwMEU5MDAzRUM4MEZBMDAzQzIwNjE4Cis6MTBCRTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUY2MDBFRTgwM0ZFMEJBCis6MTBCRUEwMDAwRDg5MDNEMjQwRTU4MTM5RTAzQ0Y5MDdGRTAwQ0Y4OEQ3Cis6MTBCRUIwMDAzRkUwMEZFODAzRjIwOENFODAzM0UwMENGODAzMDAwMDA3Cis6MTBCRUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTk0NDRDNjAwMkZDMEJDCis6MTBCRUQwMDAwODU4MDJEMEM0ODUyNDIxOTAwODU0MTJEQzgyMDcwMDNGCis6MTBCRUUwMDAyREMwMEI3MDA2RDQwMDhFNDgyMUMwMEE2MDAyMkEwNEJGCis6MTBCRUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBBNzQwMkRDMDcyCis6MTBCRjAwMDAwODQyMDJEMDAwQUQwMDI5QzAwODcwMjJEQzI4ODcwMDVBCis6MTBCRjEwMDAyREMwMEI0MDAyOTgwMDk3MDBBMEM0MDg3MDAyMDAwMERBCis6MTBCRjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDg5MzAwMkNFMDRBCis6MTBCRjMwMDAwODNDMjJDMTAwODEwMDIwODA4ODE1MDJDRTMwODMwMDk5Cis6MTBCRjQwMDAyQ0MwMEIzQzAyQ0MwNDkzQzAyMEY0NEEwQzgyMDgwNEExCis6MTBCRjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUEwMDBFM0MwMUZFMEIyCis6MTBCRjYwMDA2QzEwODNFMDA0RUIwMDNBNTI0Q0I0MDNGRTAyQ0YwMEE1Cis6MTBCRjcwMDAzRkMwMEY4NDQzRTEwMkQ4QzIzM0MwMEM4NDBCMkEwNEIzCis6MTBCRjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU5MDBFQjEwM0VDNEVCCis6MTBCRjkwMDAwRTk0MDNFNDAwRkIxODNFQzIwRkI2MDNFQzAwRkIwMTU1Cis6MTBCRkEwMDAzRUMwMEYzNTAzQzQyOEVBNDIzRUMwMEY4MTAzRTAwMEMzCis6MTBCRkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDNDBGRjAwMzNDMDEyCis6MTBCRkMwMDAwQ0MwQTMzMDI4Q0RBMDMzQzAwQ0U4MDMwQzAwRUYwNTUzCis6MTBCRkQwMDAzREMwMENDQTgzM0MwMENEMDgzRkMyMENBMDAzQzA0NDQ2Cis6MTBCRkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY3MDBCQjgwMjBDMDFBCis6MTBCRkYwMDAwOEFBMDIwODAwQTEwMTM0RDEwOEE0MTIyQzAwOEIwMDY5Cis6MTBDMDAwMDA2RUMwODhCMjAyMkMwODg5ODAyRUMwMEFBODAzQTA0MDA2Cis6MTBDMDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCQTgwQTJDMEMzCis6MTBDMDIwMDAwOEE4MEFBMDAwOEIwMEEyQzA0ODExMDJBQzA0OEIwMDMzCis6MTBDMDMwMDAyRUMwMDA4MDEyMkEwODhCMTQyQ0MwMDg4ODAyRTAwMDUxCis6MTBDMDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMjAwMjJDMDA0Cis6MTBDMDUwMDAwOEIyMTI4MDAwQUIwMTI0QzAwODAwMDIwQzA0ODMwMDY3Cis6MTBDMDYwMDAyQ0MwMDgzMDAyMDcwMDgyMDAyNEMwMDgwODAyODIwMUE4Cis6MTBDMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBGQjAwMzJDMDVBCis6MTBDMDgwMDAwQ0EyMDNBMDAwQzkwMDMyQzAyNDk0MDMzQzAyQ0YwMERDCis6MTBDMDkwMDAyRkMwMDQ4MDBCMDkwMkNCMDEzRkMwMkNBMDAzQzAwM0JBCis6MTBDMEEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOURDMDBGRDAyM0ZDMEFECis6MTBDMEIwMDA0RkU0MTM3MDAwRkQwMDNGQzAwRkMyODNGQzAwRkYwMDdGCis6MTBDMEMwMDAzRkMwMEZGMDAzRkMwMEZGMDAzRkMwMEZDMDAzQTgwNkY1Cis6MTBDMEQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMjBFRjMwM0YwNEFECis6MTBDMEUwMDA2Qzg4MDMzQTQyRTQ5MTNGMEQwRDQ4MDMzQ0MwRkYwMkM3Cis6MTBDMEYwMDAzMzQ0MENGNDAzRkM4MkRGMzAzMzYwMERGMTAzMzAwMDc1Cis6MTBDMTAwMDA3MDAwMDAwMDAwMDAwMDAwQTAxMEVEMDA4QjcwMkUxOEUxCis6MTBDMTEwMDA4ODIyNEEyQzgyRUEyNjJFMEMwQkI4NDIzRDgwQkY5MDIyCis6MTBDMTIwMDAyQTU0MjhCNDAyQ0QwMERCNDAyQTRBNDgzMDAyQTAwNDM5Cis6MTBDMTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDQjBBMzAwNkMxMEE3Cis6MTBDMTQwMDAwOTAwODIyMDgyQTAyMDJDODg0QjgwMDAwQzQwQjMwMTgzCis6MTBDMTUwMDAyMDQ4MEIzNjAyOENFMDgzNjQyNDQwMjgzMjAyMjIwMUZFCis6MTBDMTYwMDA3MDAwMDAwMDAwMDAwMDAwRTAxMUFDMDA4QjAwMkUwMDA5Cis6MTBDMTcwMDAwOTgwODBBNjAwQkExMTJFODgwQkIwMDAyQzAwQkIwMkVCCis6MTBDMTgwMDAwMjQwMDlCMDAyRUMwMDhCMDAyQ0M4MDhCODgyQjAwNDUxCis6MTBDMTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBFQjAwM0U5MjQzCis6MTBDMUEwMDAwRDgwMDMwQTIwRTkwMDNFNTA0NTgwMDEyQzA0RjMwMDc1Cis6MTBDMUIwMDA5MDYwMDlCMDAzRUMwMDhCMDIyNjUwOERCQzAzMTAwNDg0Cis6MTBDMUMwMDA3MDAwMDAwMDAwMDAwMDAwQzAwMUJDMDBGRjAyM0Y4MEMyCis6MTBDMUQwMDAwRUY5MDI3QzIyQUYwMDNGNjAwM0MwMEJGQzEwRkYwMDkxCis6MTBDMUUwMDAzRjRBNEVGMDAzRkMwMEY3MDAyQjYwMEY3MDAzRjgwMDhECis6MTBDMUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAwQjAwMDM4Cis6MTBDMjAwMDAwRjgyMEJBOTAwQzkwMDMyRDIwRkEwODNBQzAwQ0IxMDYzCis6MTBDMjEwMDAzRTQwMENCMDAzRUMwMERCMDAzMjUwMkM5NTAzMTAwNEMwCis6MTBDMjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDRCRjAyMjI4MDdFCis6MTBDMjMwMDAwQjk4MDAyOTAwQ0I0MDIyQzAwQjI0MDIzQzA4OEY1MEYxCis6MTBDMjQwMDAyRTUwMERGMDAyRkQ0MjhGNTgyMkUwNDhCNTAyMzIwMDE4Cis6MTBDMjUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTZDMDBCMzAwMjQ0MDM2Cis6MTBDMjYwMDA0Qjk0MDA0OTAwOTA4MDA0MzAwOTAwMEU0QzAwODM4MEZDCis6MTBDMjcwMDAyQ0MwMDkzMDIyNkU0MjgzODAyMDQ4MDgzODAyMzgwMEUyCis6MTBDMjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCNzgwNjUyMDYzCis6MTBDMjkwMDAwQjc4ODI3QTA4OENDMDI1QTM0Qjc4MDI1RTA0ODc4NEQxCis6MTBDMkEwMDAyRDYxODk3ODAyREUwNDg3ODBFOTYyMDg3ODAyMDgwMDNGCis6MTBDMkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGQjAwMzQ0ODZCCis6MTBDMkMwMDAwRjNCMDM0ODAwOTM0ODM0NTAwRDAwMDM2QzAwQzMxMDJCCis6MTBDMkQwMDAxQ0MyMDUzMDAzQ0M0MENCMDAzMjQwMEMyMDAzMTIwMkJDCis6MTBDMkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMjBGRjAxMDM0MEQyCis6MTBDMkYwMDAwRkYwMjMxQzAwRkYwMDNCODAwRkIwMjMzQzAyRkY1MEQ3Cis6MTBDMzAwMDAzREM0MEZGMTAzRUMwMEVGMDBCN0MwMEZFMTAzRDAwNjBFCis6MTBDMzEwMDA2MDAwMDAwMDAwMDAwMDAwODgwNUVDMDBGQjAyM0VFMDI5Cis6MTBDMzIwMDAwQzgwMDM0ODAyQzg4MTMyMDAwRjkwNDJFQ0EwRkIxMDQxCis6MTBDMzMwMDAzRUUwMENCMTAzRUM0MEZCMTAzMjQwMUZGMDAzMkEwMDNBCis6MTBDMzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzI0MkQ4MDAwCis6MTBDMzUwMDAwODcwNDJEODEwOEMwMjIxNDAwQjUwMDJERDAwRTcyMDBCCis6MTBDMzYwMDAyRjQwMDg3MDAyREMwNUI3MDAyMUMwMEJGMDAyMTIwNDU4Cis6MTBDMzcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzkwMkY0MDQ5Cis6MTBDMzgwMDAwQTY4MDI3QTAwOTc4MDIxRTAwQjc4MDJERTAwQjc4MDBECis6MTBDMzkwMDAyREUwMDg3ODA2REUwMEI3QTAyMTYwMEI3ODQyMzAwMDVGCis6MTBDM0EwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzAwMkNDMEE2Cis6MTBDM0IwMDAwQTM0MDJDODAwODM0QTIwRjgwQjMxMDJDQzAwQTMwMEUzCis6MTBDM0MwMDAyQ0MwMDgzMDAyQ0MwMEIzMDAyMEIyMEIyMDQyMTIwNDczCis6MTBDM0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBCQTAwM0Y4ODA3Cis6MTBDM0UwMDAyRUUwNDM1OTg4REUwMDMzQjAwRjZDMDNFODAwRkEwMEZBCis6MTBDM0YwMDAzRTgwMkNBMDAzRTgwNEZBMDAyM0I4MEZFMDhCM0EwNDM3Cis6MTBDNDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDRGODAxM0UwMDY5Cis6MTBDNDEwMDAwOTgyMjFFMDAwRjg0MEJFMTQwRjg0ODFFMDAwRTgwMEFBCis6MTBDNDIwMDAzRTAwMUY4MDAzRTAwMEY4MDBCRTAwMEY4ODAzRDIwMDJBCis6MTBDNDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBFMTAwMzI0MDdECis6MTBDNDQwMDAwQzkwNDNFNDIwRDkwMDNDNDQwODkwMDMyNDAwRjkwMUY3Cis6MTBDNDUwMDAzRTQ4MEYxMDQzMjUwMEM5MDBCMjQwMEM5MDAzMDIwNDZGCis6MTBDNDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTAwQTA0MDFCCis6MTBDNDcwMDAwODk4MDJFNjA4QTk2MDJFNDkwODk0MDIyNDAwQjkwMDMxCis6MTBDNDgwMDAyRTcwMEI5MDAyMjYwMjg5MDBBMDQwMEE5MDBBMjAwMDFDCis6MTBDNDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTAwMjI0MDMwCis6MTBDNEEwMDAwODk4MDRFNjAwOTk4MDJFNDAwQUIxMDIyNDAwQjkwMEUxCis6MTBDNEIwMDAwRTQwMEI5MDBBMDQwMDgxMDEyMkMwMDgxMDAyMDYwMDAxCis6MTBDNEMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODBCMTIwMjI0ODYxCis6MTBDNEQwMDAwODE4MDZDNDAwQTEwMDJDNDgyQTMwMDIwNDgwQjEyMkFBCis6MTBDNEUwMDAyQzQ4MEIxMjAyMDU4MDgxNjAyMjUwMEExNDAyMDIwMUJFCis6MTBDNEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwMzIxNDQ4Cis6MTBDNTAwMDAwQzg1MDNFMTQwRDg1MDNFMTQwRTgwMEIyMTQwRkEwMDA4Cis6MTBDNTEwMDAzRTk0MEY4NTAzMjAwMEMwMDAzMjAwMEM4MDAzMkUwM0UwCis6MTBDNTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDFGOTEwM0Q0NTU2Cis6MTBDNTMwMDAwRkQwMDNGNDAwRkYwMDNGNDUwREQwMDNFNDQwRjkxMDk1Cis6MTBDNTQwMDAzRjQ0MEY5MTAzRTQ0MkY5MTAzRjQwMEZENDAzRTYwNjQ1Cis6MTBDNTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU0MDBGOTAwM0U0MEYzCis6MTBDNTYwMDAwQ0QwMDNGNDA4OEQwMjNGNDAwRkQwMDNFNDAwQ0QwMDRGCis6MTBDNTcwMDAzMzQwMEM5MDAzMjQwMEY5MDAzMjQwNEM5ODIzMDYwMDBECis6MTBDNTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBFODAwMkUwMEZECis6MTBDNTkwMDA0ODgwMDJFODAwRDAwMDJFODAwQjgwMTJFMDAyODgwMDY0Cis6MTBDNUEwMDBBMjAwMEE4MDEyMjIwMEI4ODEyMjI4MDhDRjAyMEUwNEJECis6MTBDNUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDVECis6MTBDNUMwMDAyODEwMDJDNDAwODEwMDJDNDAwQjEwMDJDNDAwOTEwMDBFCis6MTBDNUQwMDAyNjQwMDkxMDAyNTRBMEI1MkNBNTQyMDg1MDgyMDIwMTQxCis6MTBDNUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDBBOTAwMkU1MEUzCis6MTBDNUYwMDA1ODkwMDJFNDgwOUIwMDJFNDU4QjkyMDJFNDAwOTkwMDQzCis6MTBDNjAwMDAyNjQ0MEI5MDAyNjQwOEI1MDAyNTRBMDg1MTAyMDYwNDJFCis6MTBDNjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTAwM0U1NDk2Cis6MTBDNjIwMDAwQzkwNDNDNDAwQzk5MDNFNzAwRjk4MDNFNDAwRDkwMEY5Cis6MTBDNjMwMDAzNDYwNEQ5MDBBNjQwMEY5MDAzNjQwMkM5RTAzMjgwNEIzCis6MTBDNjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0M0MDM4Cis6MTBDNjUwMDAwRjlDMDNFNjMwRjkwMDNFNjIwRjkwMDNFNDAwRTkwMDBFCis6MTBDNjYwMDAzQTQwNEU5MDAzQTQwMDc5MEMzQTQwMEY5MDFCQ0EwMDQ4Cis6MTBDNjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODAwM0UwMDRDCis6MTBDNjgwMDAwQzgxMTNFMTA4Qzg0ODMyMDAzQzgwMDNDMDAwRjAxMDYwCis6MTBDNjkwMDAzRTA2MEM4MDAzRjAwOENDMDAzMzA0MENDMDAzMEEwNEVGCis6MTBDNkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCQTAwMkU4MEFECis6MTBDNkIwMDAwOEVDNDJGQTIwOEUwMDIzQTAwOEU4NDJFODAwQkU4MDgxCis6MTBDNkMwMDAyRjgwMDhBMDAyRTgwMERBMDAyMjgwNDhFMDAyMEEwMDc5Cis6MTBDNkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzAwMkNDMDAyCis6MTBDNkUwMDAwOTM0ODJDOTAwODM4MDIwRjAwODMwODJDQzAwQjM4MEY2Cis6MTBDNkYwMDAyQ0YwMDhCMDAyQzEyMDgwMDBBMDMyMDgwMDAyMEEwMDFECis6MTBDNzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDQzBCNzAxMkZDOEFECis6MTBDNzEwMDA4OTUwMDJEODAyODdDNDIxRTI0ODcwODJEQzAwQjcwMDQ5Cis6MTBDNzIwMDAyQzQwMDg3MjAyQ0UwMDk3MDgyM0MwMDg3MDAyMjgwMDJGCis6MTBDNzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGN0UxM0RFOEVFCis6MTBDNzQwMDAyRDY4MDNGMjAwQzc4MEIwRTAwODY4MDNERjgwRjY4MDQwCis6MTBDNzUwMDAzREUwOEM3RTAzREEwMENDODAzMTIwMENDODBCMkEwMjJECis6MTBDNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDhGQjAwM0NDMEY5Cis6MTBDNzcwMDAwRTgwMDNFMDA4RjkwMDNFNDAwRkIwMDJFQzAwRkEwMDIyCis6MTBDNzgwMDAzRTQwMkZCMDAzRTQwMEZCMDAzQ0MwMkZCMDAzQzIwNkM0Cis6MTBDNzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjkyN0ZFQTNDCis6MTBDN0EwMDAwQ0Y4MDNGRTAwQ0NBMDNGMjAwREY5MDMzRTAwQ0Y4MDIzCis6MTBDN0IwMDAzMzYwMEZGODAzRjYwMEVGODQzM0UwMkNDODAzMDAwMDY5Cis6MTBDN0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCNzAwMkZDOEY2Cis6MTBDN0QwMDAwODU0MDJEODAwRDYwNDJEMDEwODY5MDIxQzAwODUwMDA3Cis6MTBDN0UwMDAyMTQzMEI3MDAzOUFDMDhDMDBBMzAyMDhGMTAyMkEwNEIzCis6MTBDN0YwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAxMkRDQzhDCis6MTBDODAwMDAwODcwMDJENDAwOTQyODJEQzIwOEMyMDI1QzAwODYwMDgxCis6MTBDODEwMDAyMTgwMEI3MTAyREMwMEE3MTAyMUMwMDg0ODAyNDAwMEYzCis6MTBDODIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDhCMzAwMkNGMDExCis6MTBDODMwMDAwODA1MDJDMDIwOTA4MDJFMDAwODAwODI0QzAyODAwMDczCis6MTBDODQwMDBBMDYxMEIzMDAyQTAwMDgwMDBBMDMwODhCMTBBNDgwNDJCCis6MTBDODUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGRjAwMkRDODNCCis6MTBDODYwMDAwQzNEMDNFNDAwREIwMjNFRjAyQzkwNEI3QzAwQzEwMDQ5Cis6MTBDODcwMDAzMjIwNEZGMDEzRTAwMEU4MDEzMjAwOENBQzAzNkEwNDcwCis6MTBDODgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjA0M0VDMkRECis6MTBDODkwMDA0RkIwMDNFMDA0RkE0MDNFQzI0RTk4MjNBQzEwRjgwMEJCCis6MTBDOEEwMDAzRTUwMDdCMDEzQUMwMEZCMDAzRUMyMEY5MjAzQTAwMDQ1Cis6MTBDOEIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDRjAwM0ZDMDhECis6MTBDOEMwMDAwQ0M4MjMzNjgyQ0Y4MDNGODAwQ0UwMDNFQzAwRjkyMEI3Cis6MTBDOEQwMDAzM0MwMEVGMDAzRjgxMERDMDAzMzAwNENFODIxMDA0NEI0Cis6MTBDOEUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDBBQjAwMkVDMDhFCis6MTBDOEYwMDA0QThENDIyMTAwOEI0MjJFRDIwOEIwMDNFQzAwQjg4ODRBCis6MTBDOTAwMDAzNDYyMERCMDAyRTQwMDhCMDAyMkMwMDg5MDBBMjA0MDdGCis6MTBDOTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAwMkVDMERECis6MTBDOTIwMDAwOEEwMDIwRDAwODkxMDJFMDgyODkyMDJFQzA0QkIwMDFBCis6MTBDOTMwMDAyMkEwMDhCMDAyNjQwMkIzMDIyMEMwMDhBMjAyQTAwMDM0Cis6MTBDOTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBBMzAwMkVDMEZFCis6MTBDOTUwMDAwQTkwMjIwQzEwODAwMDJDMDAxODAyODJDQzAwQjAwMDNCCis6MTBDOTYwMDAyNjQwMDkzMDAyQzgyMDgwMDAyMDAwMDgxMDA2ODIwMUZECis6MTBDOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQjAwMkVDMDg1Cis6MTBDOTgwMDAwQ0ExMDIyNDAwODgwMDNDMDAwQzgwMDNFQzAwRkIwMDlBCis6MTBDOTkwMDAzMjgwMEVCMDAzQ0M4MERCMDAzMkMwMENBMDAzODAwM0Q5Cis6MTBDOUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0ZDMDgwCis6MTBDOUIwMDA0RkMyMTNENDEwRkMwMDNGMDAwRjAwMDNCQzAwRkMwMDZBCis6MTBDOUMwMDAzRjQwMEZGMDIzRTAxMkZDMDFCRjAwMEZEMDAzNjgwMkNDCis6MTBDOUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBDNzgwMzNDMEVDCis6MTBDOUUwMDA4QkI0MDNCMEMwQ0YyRTFGMEM0RkMzMDMzMDgwRkYwMUE4Cis6MTBDOUYwMDAzRjA4MEZGMDAwN0MwMEZGMjEzM0U0MENFMDAzMzAwMDFGCis6MTBDQTAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVFMDA4QjgyMjNGMDE4Cis6MTBDQTEwMDAwQkI1MTIwRDg4ODhDMDBFOTgwQjg2MDIyMTAwQkJDMDkyCis6MTBDQTIwMDAyRUU0NEJGNzgzMkY0NEJGOTAyMkM4NDhBNjgyMjAwNEVGCis6MTBDQTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDk4QTAwMjA1MDZBCis6MTBDQTQwMDA0QkIyMEE4MENDODMwMTBDOEMwQjIzMEEwNDYwQjMxNDE0Cis6MTBDQTUwMDAyNDQwNEIzMDAyQ0MxMEIzMDAyMEM4RTkxMTA2NjIwMTFCCis6MTBDQTYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDE4QTgwQTI0NEU0Cis6MTBDQTcwMDAwQkIwMDJBMTA0ODg0MDJFQTAwQjIwMDIyODIwQkI0MDRFCis6MTBDQTgwMDAyRTQwMEJCMDAyMkMwOEJCMDAyMkMwMDlCMDAyNzAwNDdCCis6MTBDQTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBDMzgzMzJFMDlECis6MTBDQUEwMDA4RjAwMDNBMDAyQ0JDNDNFMjgwNzhCMDMyMTAwRjlDMEVFCis6MTBDQUIwMDAzRTEwMEZCMDAzRUMwMDdCMDAzMkMwMERBMDAzNTAwNDA5Cis6MTBDQUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDJGRjAwM0ZFMDU5Cis6MTBDQUQwMDAwRkY0NDM1RTgwRkM5NDNGMDAwRkMwMkJGMjUwRkQyMTA5Cis6MTBDQUUwMDA3RTg0OEZGMDAzNkMwQ0ZGMDAzRkMwMEU2MjAzQjgwMDIxCis6MTBDQUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBFQjAwMzI0MDdECis6MTBDQjAwMDAyQzgwMDM2OTAwQ0IzMEIyMDA0RkIzNDNFNTAwQ0I0MDJCCis6MTBDQjEwMDA3MjE4MkNCMDAzRUMyOEMzMjEzQUMxMEY5NDAzMTAwNEZGCis6MTBDQjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDA4QjIwMjI1MEJGCis6MTBDQjMwMDAwOEIwMDIyODAwODhDMDJBMDA4QkI0MDJFODAwREIwMDlECis6MTBDQjQwMDA2MjMwMDhGMDAyRkMwMDhGODAyMkMwMEI5NTQ3MzIwMDUzCis6MTBDQjUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMTAwMjBDMkQxCis6MTBDQjYwMDA0ODMwMDI0OTgwODM0MjYwMTIwQjMwMDJDODAwODIwMkMyCis6MTBDQjcwMDAyQzMwMDlCMDAyQ0YwMTgzNTAyQUMwMEIyMDAyQjgwMDJDCis6MTBDQjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDA5RDgwQTBFMDc5Cis6MTBDQjkwMDAwODc5MjI1RTYwODc5MDI5QTAwQjc4MDJDNjAwOTI4MUY2Cis6MTBDQkEwMDAwNUUwMDk3ODAyREU0MDg3ODAyMUUwMEIyOTAyMDgwMEI5Cis6MTBDQkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNDBGMjAwMzBDMEI3Cis6MTBDQkMwMDAwODNBMDM0NDA0QzMxNDMwQzAwRjIyMDNDQzgwQzIwMENGCis6MTBDQkQwMDBBNEQyMEQzMDEzQ0MyMEMzMDAzOEM0NEYwNDQzMTIwMjNBCis6MTBDQkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDlDMDBFRTAwM0ZFMDNGCis6MTBDQkYwMDAwRjcwMDNCNDAyRjQxMDNGQzA4RkEwMDNGQzAwN0UwMDRFCis6MTBDQzAwMDAzQkMwMEVGMDgzRUMwMEY3MDAzRkMwMEZDMDAzRDAwNjFFCis6MTBDQzEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZDMDBGOTAwM0VDMDE0Cis6MTBDQzIwMDAwRkEwMDNBQTEyQ0IwMTMyODAwRkIwMTMyODE0Rjk4MDkxCis6MTBDQzMwMDAzQTQwMDNCNDAzRUM0MkNCMTgzRUMwMEZCMDAzMkEwMEM1Cis6MTBDQzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlEMDBCNTAwMkRDNEQ4Cis6MTBDQzUwMDAwQjcwNEI3QzAwODQwMDIxODAwQjcwMDI5NDEwQjIwMDlBCis6MTBDQzYwMDAyOUMwMEI3MjgyREMwMDg3MjAyREMxMEU3MDAyMTIwNEQ1Cis6MTBDQzcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMkRFMEIyCis6MTBDQzgwMDAwQjY4MDI5RTAwODM4MDIxRTA1QjM4MDIxRTAwQjRDMDY2Cis6MTBDQzkwMDAyNUUwMDk3ODMyQ0UwMDk3ODAyREUwMEI1QzRFMzAwMDA1Cis6MTBDQ0EwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzQ0MkNDMDU5Cis6MTBDQ0IwMDAwQjNDMDJDQzQwOTMwODIwRTAwQjMwMDI4QzEwQjNDMDM4Cis6MTBDQ0MwMDAyOEQ4MUIzMDAyQ0MwODkzMDE2Q0MwMEFCODgyMTIwNDI5Cis6MTBDQ0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGNjEwM0U4MEJCCis6MTBDQ0UwMDA0QkVEODNCODAwQ0VFNEIzQTMwRkUwMDMzODAwRkUwMEExCis6MTBDQ0YwMDAzQjgwMERBMDAyRTgwMERBMDAzRTgwMEZFODAyM0EwNDEzCis6MTBDRDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTBGODQwM0UwMDE1Cis6MTBDRDEwMDAwRjgwMTM2MDAwRTAwMDNFMDA0MzA4MDNFMDAwRjgwOEM1Cis6MTBDRDIwMDAzQTAwMEY4MDAzRTAwMEU4NDAzRTAwMEU4MDIzRDIwMDZFCis6MTBDRDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEM0MDBEOUMwQkU0MDUwCis6MTBDRDQwMDAwRjkwMDNFNjAwRjkwMDMyNDAwMTlBMDMyNDAwRjkwMDM1Cis6MTBDRDUwMDAzRTQwMEY5MDAzQzQ0MDA5MTAwRTQwMEY5QTAzMDIwNDk2Cis6MTBDRDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDQ4OTA0QTI2MDE4Cis6MTBDRDcwMDA4QjlEODBBNjAwQjk4MDIyNDA0ODk4MDIyNDAwQjkwMDBCCis6MTBDRDgwMDAyRTQwOEI5MDAyRTQ5NDg5NjAyRTQwMEI5NDBCMjAwMDdGCis6MTBDRDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5OTA4QUU0OEFCCis6MTBDREEwMDA0QjEwMDJFNTgxQjkxMDIwNDQxQjk0MDIyNDEwQjkwMEY1Cis6MTBDREIwMDA2RTYwMEI5MDAyRTQwMDg5MDAyRTQwMEI5NDAyMDYwMDg2Cis6MTBDREMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODA4OTAwQTA2ODAyCis6MTBDREQwMDAwQjEyMDI4NDg5QjEyMDIwNDgxQTEyMTIwNDgwQjEyMjU5Cis6MTBDREUwMDAwQzQ4MEIxMjAyQzQ4MUExMjAyQzQwMEIxMjAyMDIwMTNDCis6MTBDREYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBEODAwQkUwMDc4Cis6MTBDRTAwMDAwRjA1MEJFMTQwRjgwMDMyMTQwRjg1MDMyMTQwRjgwMEI0Cis6MTBDRTEwMDAyRTgwMEY4NTEzRTAwMkM4MDAzRTE0MEYwNTAxMkUwMzdCCis6MTBDRTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDBGRDAwQkY0NEQ5Cis6MTBDRTMwMDAwRkQxMDNGNDQwN0QxMEJGNDQ0NUYxMkJGNDQwRkQxMEE5Cis6MTBDRTQwMDAzRjQ0MEY5MTAzRTQ0MEQ5MTAzRTQwMEZEMTAzQTYwNkEyCis6MTBDRTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MDBGRDAwMUY2MkQxCis6MTBDRTYwMDAwRkQ4ODIzNjAwQkRBMDNCNjgwQ0RDODMyNkM4RDlBMDUxCis6MTBDRTcwMDAzMzYwMEQ5OTgzNTYyMEQ1QTgyRTQ0MENEODgzODYwNEEwCis6MTBDRTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxNDhCODAwMkUwMERCCis6MTBDRTkwMDAwQjBBODIyMjIwQjg1MDIyQkEwODhBMjIyMjgwODgwMEY3Cis6MTBDRUEwMDAyMjAxMDgwQzAyMjAwMDg4MDAyRTI4ODg4ODAyQ0UwNDY3Cis6MTBDRUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDU0Cis6MTBDRUMwMDAxQjEwMEE4NDQwQjEwMDI4NTgwQTMyMDIwNTAwOTk0MDFDCis6MTBDRUQwMDAyMDY1MDkxMDQyQzQwMDkxMDAyQzQwMEEzMDgyQzIwMTMyCis6MTBDRUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCOTAwMkU0MERFCis6MTBDRUYwMDAxQjkwMDJBNTgwQjkxMDIyNDgwODEwNDIwNDEwMDkwMEI2Cis6MTBDRjAwMDAyMjQwMDg5MDAyRTQwMDlCMDAyQzQwMEE5NDIyQzYwNEIwCis6MTBDRjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTIwM0U0MDgxCis6MTBDRjIwMDAwRjkwMTNBNzEwRjk2MEJBNTAyRTlDMEEyNTg0RDFGMEY3Cis6MTBDRjMwMDBCMjYwMEQ5MDAzRTQwMEQ5MDAzRTQwMEU5MDAzQTgwMEJCCis6MTBDRjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MENGOTkwM0U2QTY3Cis6MTBDRjUwMDA4RjkwMjM2NjAwRjEwODNDNDAwRjlDNDNFNDQwRjk4MDI5Cis6MTBDRjYwMDAzQTQ0MEY5MDAzMjQwNEU5MDIzRTQwMkQ5MTEzQ0EwMDc1Cis6MTBDRjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBFODIwM0UwMTMyCis6MTBDRjgwMDAwQzAwMDNBMTIwRTg1MDMyMTAyQzhDMDMyMTAwRTgwMDkzCis6MTBDRjkwMDAzMjAyMEYwMDEzMjA4OEM4MDgzMjAwMEY4QzAzQ0EwMDI5Cis6MTBDRkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MjA4RUUzMkY5MEJDCis6MTBDRkIwMDAwQUUwMDYzQjAwRUUwNDIzOTAwOEUwMDIyODA4OEEwMkZCCis6MTBDRkMwMDA3NTkwOEJBMDQxNTg5MDhFODAyQTgxMEJFMDAzOEExMEM3Cis6MTBDRkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRFMDBBMzAwNkM2MDI3Cis6MTBDRkUwMDAwODM4MUE4RTQwQTA4MDIwQ0MwOTMwMDIwQzA1QTMwNDFBCis6MTBDRkYwMDAyOEM0MEIzMDAyMEQwMTgzQzAyMEMwMEIzMDAyQ0EwMEQwCis6MTBEMDAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDg4NzAwMkQ2MkYzCis6MTBEMDEwMDAwQjcwOTIxQzA4QTAwMDYxQzAwOTYwMDYxQzgwQTcwMDZDCis6MTBEMDIwMDAyMUMwMEI3MjAyNTgwMTg3ODgyOUMwMEI2MDEyQTgwMDJBCis6MTBEMDMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBFNjgwM0Q2MERGCis6MTBEMDQwMDAwQzc4NDI5NjAwRTQ4MEEzNjAwRDc4MDMzRjAwRTM4MEYzCis6MTBEMDUwMDAyMUUwMEY3QjAzMTYwOEM3ODAzMUUyNEY3ODQzRUEwMkQ0Cis6MTBEMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxRDhDMDFGODAwM0M0MDlBCis6MTBEMDcwMDAwRUIwMDJFQzAwRjgwMTNFNDA0RTMwMzNFRDIwREIwMUYzCis6MTBEMDgwMDBCRUMwMEZCNDAzRUMwMEZCMDAzRUQ4MEZBMDAzQzIwNkU1Cis6MTBEMDkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDNzg0MjM2MDVGCis6MTBEMEEwMDAwQzc4MEJCRTAwRkQ4MDNGRTAwRkVCMDMzRTAwQ0Y4MDBECis6MTBEMEIwMDAzQjI1MENGODgzN0U0MENEODAzM0UyMEJGOTAzMDAwMDYyCis6MTBEMEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDI4NzAwMTU0OEI1Cis6MTBEMEQwMDAwODcwMDIxNDIwQjYwMDM1OUE0OUM4MDM5Qzg0QTcwMDQyCis6MTBEMEUwMDAzOUQwMEE3MDAyMUEwOEE0MDAyMUMwMDk2MTQyMkEwNDNBCis6MTBEMEYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NzAwMjE0MDRDCis6MTBEMTAwMDAwODcxMDI5NDAwQjUwMDJENDAwQkYxMjI1QzAyMDcwODYzCis6MTBEMTEwMDAyQzUwMDg3MDAyNTAwMDg3MDAyREM0MEI1MDQyMDAwMEI0Cis6MTBEMTIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDA4MzAyMjQ0MEY2Cis6MTBEMTMwMDAxODNEMEEwMTAwQjA1ODI0MjAwOTMwMDI4RjQwODNFMEQ2Cis6MTBEMTQwMDAyQ0MxMEEzMDQyMDgwMEIzMDE2Q0MwMDkwODE2MDgwNDVCCis6MTBEMTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNThDMDA4QjAwMzI0MDU5Cis6MTBEMTYwMDAwQzI1MDNBODQ4Rjg4MTNFODAwRjgwNjM3QzAwQ0I4MEFCCis6MTBEMTcwMDAzQUMwMENGMDAzNkMwMENBMDJCRkMwMEY5ODhCMkEwNDlGCis6MTBEMTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGOTAwM0U1MDRDCis6MTBEMTkwMDAyRkE0MEJDODAwRjA0MDNFRDAwRkEwMzNFQzIwRkIwNEJFCis6MTBEMUEwMDA3QUUwMEZCMDAzRUQwOEU5MDMzMkMwMEQ5MDAzRTAwMDEwCis6MTBEMUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEVDNDBFRTAwM0VDMDE2Cis6MTBEMUMwMDAwQ0RBMDM3MDA0Q0MwMkIxQTAwRUYwMjNFQzAwRkYwMEQ3Cis6MTBEMUQwMDAzNzIwQ0RCMDczRUM4OEZCODAzRkMwMEYzMDAzMDA0NDk0Cis6MTBEMUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZFMDA4ODgwMkNFMTA3Cis6MTBEMUYwMDAwODk0MEFBOTAyODg0MDIyRDAwOEI5NDJFQzA0QkIwMDc2Cis6MTBEMjAwMDAyQ0Q0MERCMDAyRUQyMEJCRDAyRUMwMEJCMDAyQTA0MDNDCis6MTBEMjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI0MDBBQjgwMkVGMDBDCis6MTBEMjIwMDAyOUEwODI2RDAwODgwODIyMDQwODkwNDJFQzAwQkIwMDBGCis6MTBEMjMwMDAyQTgxMDhCMDAyRTQwOUJBMDQyRUMxNEI5ODgyMjAwMDZBCis6MTBEMjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MzAwMkNDMDFGCis6MTBEMjUwMDAwQTIxMDI4NDEwODIwMEUwMDAxODBBMTJDQzAwQjMwMEY4Cis6MTBEMjYwMDAwQ0MwMDkzMDAyQ0M5MEIwMDAyQ0MwMEIxMDAyODIwMTFGCis6MTBEMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY0MDBFQjAwM0UwMDE0Cis6MTBEMjgwMDAyQ0I0MDM2NDA4ODgwMEIyMDAwQ0IyNDNGQzAwRkIwMDFECis6MTBEMjkwMDA1NjAwMENGMDAxRTQwMEZCMDAzRkMwMEY4MDBCMDAwM0MwCis6MTBEMkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDBGRjAwM0Y0MEZGCis6MTBEMkIwMDAyREYwNjFGMDAwRjQwMDI3MDEwREIxMTFGQzAwRkYwMjE4Cis6MTBEMkMwMDAwN0MwMEZGMDAzRUM0MEZGMDAzRkMwMEZDMDAzNjgwNjJCCis6MTBEMkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY2MDBFRjkwM0Q0QzFCCis6MTBEMkUwMDAyQ0MwMTNGNDA4RkQyMDM3NEM4RTgyODM3NDg0RENDMjdBCis6MTBEMkYwMDAzRkQ4MERGMjAzRUNDMEZGODEzRjAwMENGODAzRjAwMEIzCis6MTBEMzAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEU2MDA4QjI0MkU1Q0ZFCis6MTBEMzEwMDAwODhEMDJGRjQ4Qjk5MDJGNTQwQjg0ODIzRTQwQTA4MEI0Cis6MTBEMzIwMDAyRUM0MEFGQzQyRUQ4MEI5ODAyRTYwMEE5ODEyRTAwNEY3Cis6MTBEMzMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUU0MDFBMzAwMjg0ODM4Cis6MTBEMzQwMDAwQTAwNDJDNDAwQjEwMDJDNDkwQjBBNDIwNEEyOTEyMUY4Cis6MTBEMzUwMDAyQ0M5MDgzMTAyOENDMUEzMDAyQzQwMDgxODAyQTIwMTdDCis6MTBEMzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUEwMjA4QjgyMkU0NDM5Cis6MTBEMzcwMDA1ODgwMDJFNDAwQkIxMDJFNDAwQkExMTIwQzAxODkxMDUyCis6MTBEMzgwMDAyRUMwMEFCMDAyRUMwMUI4ODAyRUUyMEFBMTAyRjAwNDFECis6MTBEMzkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVCNDBFQjQwM0U2MEU0Cis6MTBEM0EwMDAwRTg3MzNFNDAwQjlBMTM2QzAwRUE4MEIyNjAwREFDMDAwCis6MTBEM0IwMDAzRUMwOERCMDAzRUMwMEZCODUzRUUxMDhCODAzOTAwNTRDCis6MTBEM0MwMDAyMDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRjAyMkY2MDE0Cis6MTBEM0QwMDAwM0U4ODNGQzEwRkQ4MDFGNDAxRkQwMTNCRTQwRUUwNDA1Cis6MTBEM0UwMDAzRkMwMEZGMDQzRkMwOEZEMDAzQ0MwMEZEMDExRjgwMDE3Cis6MTBEM0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBEQjAwQjI0MDBDCis6MTBENDAwMDAwRTk0MDMyNDAwRDkwMEJBQzAwQzIwMDNFNDkwRkIwMDYyCis6MTBENDEwMDAzQUMwMENCMDAzRUMwMUZBMDAzRUQwMkM5ODAzOTAwNDAzCis6MTBENDIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTAzMDA4QjAwMjI0ODE3Cis6MTBENDMwMDAwODg0MjIyQzAwQjkwMDIyQzAwOEEwMDJFRDAwOEJBMEI1Cis6MTBENDQwMDAyMUMwMDhGMDAyRkMwMEI5ODAyRUMwMDhBMDAyMzIwMDAyCis6MTBENDUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ1MjA5MzAwMjJGODk1Cis6MTBENDYwMDAwQjMwMEE4NDQwQjIwMDIwNDAwODEwMDJDNDAwODA4MEMzCis6MTBENDcwMDAyOEMwMjgzOTAyNEMwMEIxMDAyQ0MwMDgzMDAyQjgwMDg2Cis6MTBENDgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTM2MDA5RjgwMjE2MDU1Cis6MTBENDkwMDAwOTM4MDI5RTAwQjJDMDIwNjA0ODQ4MTJENkM2ODZEMDI1Cis6MTBENEEwMDAyMUUwMDg3ODAwREU4MEI3ODIyREUwMDhGODAyMDgwMDRECis6MTBENEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMjBEMzEwMzBDOEQ1Cis6MTBENEMwMDAwRjMwMDM4NDAwRjEwMDMwNDAyNDE5MDNFNEMwRTA0MDMxCis6MTBENEQwMDAzQUMwMEMzMjAzQ0U4MEIxMjgzQ0MwMEMzMDEzOTIwMjBCCis6MTBENEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDlDMDBFNjAwN0ZDMDFFCis6MTBENEYwMDAwRUYwMjM3NDQwRkYxMDNGNDA0RkQwMDNGQ0QyQ0UwNDA3Cis6MTBENTAwMDAzRkMwMEZGNDAzRkMwMEZFMDAzRkMwMEY3MTAzRDAxMkI4Cis6MTBENTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVFMDBDQjAwMTZDMDZGCis6MTBENTIwMDAwRDgwMDMyNzIwQ0IwMDNFQzIwQUIwNTNFNDI4QzE4MUZFCis6MTBENTMwMDAzMkMxMEVCOTAzMkMwMEYxODAzNUUwMENCODAzMkEwNDg3Cis6MTBENTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDI4NzEwMkQ0MDcwCis6MTBENTUwMDAwODcwMDM1QzAwQTcwMDJENDAyODcwMDJENDA0ODcwNEUzCis6MTBENTYwMDBBMUQwMEI3MjAyMUQwMEY3MDAyMUMwMEQ1MDAyMTIwNDYxCis6MTBENTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NTgwMjVFMEUzCis6MTBENTgwMDAwOTc4MDIzNzAzODc4MDJGRTAwODc4MTJDNjEwOEQ4MDUzCis6MTBENTkwMDAyNUU4MEIzODAyMUU4MEJDODQyNUUwMDg1ODAyNzAwMDg0Cis6MTBENUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENEODA4Mzg4MkNDMEJCCis6MTBENUIwMDAwODNDMDI0RTAxQTNEMjJFQzQwOEIxMDJDQzAwODM4MEU1Cis6MTBENUMwMDAyNEMxMEIzMDAyMEMwMEIzNDBBMEQyMDkzMDEyNTIwMDJCCis6MTBENUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBMDBDQUMwMzY4MDI0Cis6MTBENUUwMDAwRDY3MTMyODAwQ0UwMDNFQTAwQ0VEMDNFODAwQ0VFMDRFCis6MTBENUYwMDAzNjgwMUVBMDBCMjgwNEZFMDBCN0IyMENFMDBCN0EwMEE4Cis6MTBENjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwNDBGODEwMkUxMDBDCis6MTBENjEwMDAwRjgwMDNFMDAxRDgwQTNFMDAwRjgwMDNDMDAyRjgwODIzCis6MTBENjIwMDAzQTAwMEY4MDAzRTAxMEU4MjBCRTAwMEY4MDEzOTIwMDQ0Cis6MTBENjMwMDAyMDAwMDAwMDAwMDAwMDAwMDgxMEU1MDBGQjAwM0U0MDU0Cis6MTBENjQwMDAwQzkxMDMyNjAwNjE4MDMyNDAwQzkwMDMyNDAwQzkwMDM1Cis6MTBENjUwMDAxRTQwMEM5QzAzRTQwMUY5MDAzRTQwMEY5MDAzQzIwMDAxCis6MTBENjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY3MDBCOTAwMkM0MDdBCis6MTBENjcwMDAwMDlDMDJBNjAwNzkwMDIyNDAyODkwMDIyNDAwODkwMDI0Cis6MTBENjgwMDAyQzQ0MDg5ODAyRTQwMEI5ODAyRTQwMEI5MDAyRTAwMTdGCis6MTBENjkwMDAwMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBCQjAwMjY1MDFDCis6MTBENkEwMDAyODkwODIyNDg0OTkyMDIyNDA0OTkwMDIyNDAwODkwMEY1Cis6MTBENkIwMDAyRTQwMDg5MDAyRTQwMEI5NjAyRTQwMEI5MDAyQzYwNDkwCis6MTBENkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA2MDBCMTAwMkU0OEUxCis6MTBENkQwMDAwODEyMDI4NDgwQjEyMEEwNDgwOTEyMEEwNDgwODEwMDQ3Cis6MTBENkUwMDAyQzQ4MjgxMjQyQzQ4ODMxMDAyQzQwMEIxODAyQzIwMTc5Cis6MTBENkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBGODUwMzYxNDczCis6MTBENzAwMDAwQzgwMDMyMDAwRTgwMDMyMTQwQzg1MDMyMTQwQzg1MDJGCis6MTBENzEwMDAzRTE0MEM4MDAzRTE0MDM4MDAzRTAwOEY4MDAzRUUwMzhFCis6MTBENzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREQ0MDBGQjA0M0Q0NEEwCis6MTBENzMwMDAwRjUxMjNENDQ4RUQxMDNENDQ0RUQxMjNGNDQyRkQwMDU3Cis6MTBENzQwMDAzRTQ0OEY5MTAzRTQ1OEZEMDAzRjUwMEY1MDAzRTYwNjFFCis6MTBENzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY0MDBGOTAwM0Q0MEQyCis6MTBENzYwMDAwQ0QwMDNGNDAwREQwMjNFNDAwQzkwMDNFNDQwQzkxMEVECis6MTBENzcwMDAzNzQwMDdEMDA3MjQwMEU1MDAyRjZBMEY3MDAzMDYwMDJBCis6MTBENzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBCODAwM0EwMDBGCis6MTBENzkwMDA4MDgwMDJFMDAwODgwMDJFMDAwQTgwNTNBMjgwMkNBMDI2Cis6MTBEN0EwMDAyMjAwMEI4MDBBMjAwMEI4MDAyRTEwMDk4MDAzMEUwNDBFCis6MTBEN0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwNkM0MDBCCis6MTBEN0MwMDAyQTEwMDI4NDAxODE4MDJFNDAwOTEwMDJGNDAwOEQwNDg5Cis6MTBEN0QwMDAyMDQwMEIxMDAyODQwMEIxMDAyQzQwMEI5ODAyNDIwMTQzCis6MTBEN0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MjBCOTAwMkE0MEI5Cis6MTBEN0YwMDA4OEI0MDJFNjAxQTkyMDJFNDgwQTkwMDBBNDQwQUQ0MDVBCis6MTBEODAwMDAyMjQwMEI5MDEyQTQwNEI5MDEyRTQxMEI5MDAyMDYwNDkxCis6MTBEODEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOUMwM0U2MEI4Cis6MTBEODIwMDAwQzk0MTNBNjAyRDk0MjFDNjAwQzlFMDFDNjA0QzEwMEQwCis6MTBEODMwMDBCMjQwMUY5MDAyQTQwMEU5MDgzRTY4NEY5ODBCNjgwNEFDCis6MTBEODQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE2NDBGOTIwMzg3MDk4Cis6MTBEODUwMDAwRjkxMDNFNDAwRDk4MDNFNDAwRjlDMTNBNDAwRjkwMDBGCis6MTBEODYwMDAzRTQwMEYxMDAzNjQxMEY5MEEzRTUwMEQ5QTAzQ0EwMDlGCis6MTBEODcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExMDBEODA0M0UwMDU1Cis6MTBEODgwMDAwQzgxMTNDMDAyRDgyMDNFMDAyRDg0MDNFMDAwQ0MwODk4Cis6MTBEODkwMDAzQTAwMEY4MDQzRTAwMEY4NDEzMjAwMDc4MThCMEEwNDEwCis6MTBEOEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTNBNjA4QTAwMkZBODMwCis6MTBEOEIwMDAwQUUwMjJFODAyN0U0ODJFODAwOEEwNDJFODA0OEUwMDlBCis6MTBEOEMwMDAyM0E4MEJBODgyRTgwMEVFMDBBMjgwNEI2MDAyMEEwMEE5Cis6MTBEOEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzAwNkNDMEQwCis6MTBEOEUwMDAwODMwMDJDQzAwMTM4MTJDQzAwODMwMDJDRTQwODI0MEE4Cis6MTBEOEYwMDAyOEUwMEIzODAyQ0MwMEIzMTAyNEMwOEIzODAyMEEwMDk5Cis6MTBEOTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDA4NzIwMkZDMDcyCis6MTBEOTEwMDAwQTcwMDJEQzBBQjYwMDJDQzg4ODcyMDZEODAwODYwMDlECis6MTBEOTIwMDAyMUMwMEI3MDAyREM4NEFGODBBNUMwMEJEMDAyMjgwMEEwCis6MTBEOTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBENzgwM0RBMEE1Cis6MTBEOTQwMDAxQzc4MTNENjAyRDc4MDNERUMwODdFMjNGRTAwQ0U4MEUzCis6MTBEOTUwMDAzOTYwMEY3ODAzREYwMEY2ODA3NUUwMEY3ODAzMkEwMjQ0Cis6MTBEOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxRDhDMDBGQjEwM0U4MDNECis6MTBEOTcwMDAxRkEwMjFDQzAwRkEwMDNFQzAwRUIwMDNFODAyRkEwMDVFCis6MTBEOTgwMDAzRTQwMEZCMDEzRUMwMEVBMDEzQUMwMEY5MDAzQzIwNjBDCis6MTBEOTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZDMDBGRjgwM0Y2MDA4Cis6MTBEOUEwMDAwODk5MDc3RTAwREQ4MDNGRTIwQ0Y4MDNGNjAyREY4MDc1Cis6MTBEOUIwMDBCM0UwMENGODAzM0U0MUNDODAzM0U0MEZGODAzQzAwMDIxCis6MTBEOUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDNDBCNzAwMkRDMEFFCis6MTBEOUQwMDAwRDVBMjJEQzgwNzUwMDJEQzAwODcxMDJGMDIwODcwMEVFCis6MTBEOUUwMDAyMUMwMEE3MDAyMUMwMEQ0MjgyMUMwMEI3MjAyRUEwNDc0Cis6MTBEOUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDNDBCNzAwMkQwMDA3Cis6MTBEQTAwMDAwODcyMjJGNDAwODcwMDJEQzIwODcwMDJENDAwODc4MEJCCis6MTBEQTEwMDAyNTQwMDkzMDAyNUMwMUFEMDAyOUQwNEI3MDAyQzAwMEU2Cis6MTBEQTIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCQkM4MkNBMDg3Cis6MTBEQTMwMDAwOTIwMDJDRTAwQTMwMDJDRTBBODNENDJDMjAwOEI4MDRBCis6MTBEQTQwMDAyNDQwMEIzMDBBNkMwOEEzNDBBOEUwMEIzNDAyQzgwNDQxCis6MTBEQTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFEMDBGRjQ4M0MyODgxCis6MTBEQTYwMDAwQ0E5MjM2QzgwOEIwMDNGQzAwQ0ZDMDNFQzAwRDg4MDE5Cis6MTBEQTcwMDAzNDQwMEQzMDAzN0MwMkEzNDAzODY4MEYyNDAzRUEwNENECis6MTBEQTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVEODhGQjAwM0U1MEI4Cis6MTBEQTkwMDAwRkExMDNFQzA0M0FDMDNFQzAwRkIwODNFODAyRjgxMEI3Cis6MTBEQUEwMDAzQTQxMEU5MDAzQUMwMDlCMDhCNjQwMEY4MTAzRTAwMEEyCis6MTBEQUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwQjMyMDU3Cis6MTBEQUMwMDAwQzUwMTMxQzA5Q0Q4MzMzQzA4MzcwMDAzQzAwREMxMDY0Cis6MTBEQUQwMDAzMjYwMEVGMTQzMkMwMENFMDQzQjcwMENGMDgzMDA0NDA2Cis6MTBEQUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY3ODBCQjAxNjIyMTVCCis6MTBEQUYwMDA4QTg5MjAyQzAwODBFMDIyQzAwQkIwMDNEODEwOEMwNDRGCis6MTBEQjAwMDAyMjQwMDU5MDAyQUMwMEQ4ODAzNjQwMEE5MDAyMjA0MEE2Cis6MTBEQjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI2MDBCQjAwMjIwNjY3Cis6MTBEQjIwMDAwODgwMDIyRTAwODgyMDIyQzAwOUIwMDJBNDAwOTkwMEJCCis6MTBEQjMwMDA2MkM0MDhCMDA2MkMwMDg4ODAyMjQxMDhBMDAyMjAwMEEwCis6MTBEQjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMzAwMjA0MDZBCis6MTBEQjUwMDAwQTAwODIwQzAwODAwMDIwQzAwQjMwMjJBMDAwODEwMDRGCis6MTBEQjYwMDBBMEMwMDkzMDAyOEMwMDkwMDAyNDQwMEEyODAyMDIwMTYzCis6MTBEQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYwMDBGQjAyMjAwMDFCCis6MTBEQjgwMDAyQzkyMDMyQzAyODgwMDMxQzAwQkI1MDJBNDAwRDEwNEYyCis6MTBEQjkwMDAzMjQwMEU5MDAzMkM0MEM5MDAzQTQwOENBMDAzMDAwMzkxCis6MTBEQkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDBGRjAwMkYwMDQ2Cis6MTBEQkIwMDAwRkMwMDNEQzAwRkMwMDNGQzEwRkYwNDNGMDAwRkQwMDhDCis6MTBEQkMwMDAzRjQwNEZEMDAzRkMwMEY1MDAzRjQwMEZFMDAzRTgwNjY0Cis6MTBEQkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUQ4ODBDQzAwQjcwNDMxCis6MTBEQkUwMDA0RUUxMDMzQzIwREYxMDMxODAwNkYwMDM3RjAwRkZDMEQwCis6MTBEQkYwMDAzQkMwMEVGMjAzNUUwMEVGMTAzM0QwMkNGMjAzMzAwMDc2Cis6MTBEQzAwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMEU5MDA4OEM2MjA1QzIxCis6MTBEQzEwMDAwOEE0NTc2NTAwOEY1MjJBRjAwOUZDMDIwNDAwQkIwMERCCis6MTBEQzIwMDAyREQ5MDk3NDgzNjQyODgzNDQyMjg0ODgwNjgyMzAwNEIxCis6MTBEQzMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUM5MDA4MDEwMjAwODY2Cis6MTBEQzQwMDAwODMxMTIwNEIyQTMwMDIwODQxQjM0MDIwQzgwQjMyMERDCis6MTBEQzUwMDAyQ0M3MDkzNjAyOEM4MDkzNDBBQ0M4MDgzMTI4MzIwMUE5Cis6MTBEQzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE5MDA4ODAwQTI1MDRDCis6MTBEQzcwMDAwODM1MDIyNDAwOEIwNDJFQzEwOUIwMDIyNDk0QkIwMDk1Cis6MTBEQzgwMDAyRUMwMEJCMDAyQ0M2MDhCMDAyRTgwMDg4MDAwMzAwNEM4Cis6MTBEQzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU3MDJDQjE4QjI4MDExCis6MTBEQ0EwMDAyQ0FDMEEyRTA4RUIwMDMyMTI0RUIwMDMyQjgwRkIwMDg2Cis6MTBEQ0IwMDAzQUMwMEFCMDAzQUIwOEVCMDQyRTQ4MENCODgzMDAwNDRBCis6MTBEQ0MwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2ODBGRjgwMzlDQTRCCis6MTBEQ0QwMDAwREU4MDNENjQwRTcwNDNCNjY0RTcwMDNCODAwRkYwMTMxCis6MTBEQ0UwMDAzRkMwNkNGMDAzNzAwNkU3MDAzMTA0MEZDMTQzRjgwMDM5Cis6MTBEQ0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDg1MDBDQjQwMzI5MDIyCis6MTBERDAwMDAyRkIwMEI2NDgwRkIwOEJBMTAwREIwQTcyRDAwRkIwNEU4Cis6MTBERDEwMDAzRUMwOEVCMDAzNkQwMERCMDEzMjQwOEMzMzAzOTAwNEIzCis6MTBERDIwMDAyMDAwMDAwMDAwMDAwMDAwQzAwNTI0MDA4M0UwQTJEMDE1Cis6MTBERDMwMDA0MEIwMDIyNTA0QkY4MEEwNTAwOEY4MDIyMDAwOEIwMkVBCis6MTBERDQwMDAyRkQwMDhGMDAyMjQwMDhGODAzNjAxMDg4NDQyMzYwMDZDCis6MTBERDUwMDA0MDAwMDAwMDAwMDAwMDAwRTgwNTQ0MDA4MzQ4MjBDNEEzCis6MTBERDYwMDAwOTAwMDI0NjAwQjMwMUE4OTAxOTMwMTI4QzAwQTMwNEU4Cis6MTBERDcwMDAyRUUyMEFCMDAyMEMwMDgzNDkyOEMwMDkzQzAyMzgwMDk4Cis6MTBERDgwMDA1MDAwMDAwMDAwMDAwMDAwRjAwMTM2MDQ4MzgwMjFFMTEzCis6MTBERDkwMDAwODM4MTIxRTI4QjM5ODIxQTAxOTM4ODI5NjAwODc4MzZDCis6MTBEREEwMDAyREUyMDg3ODIyMzY4Qzg3ODAyREUwMDk3OTAyM0UwMDJBCis6MTBEREIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA0MDBDMzMwMzBDOEU0Cis6MTBEREMwMDA0RDAwMEI0QzgwRjMxMjM4QzAwRDNBMDI4QzgwRjMwMEVBCis6MTBEREQwMDAzQ0MwMEUzMDBCMEUwMEMzMEMzQUMwMEQzMDAzMTIwMkQzCis6MTBEREUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0MDZGRjEwM0ZDMDBFCis6MTBEREYwMDAwRkIwMTNCQzAwRkYxMDdGQzAwRUYxQTM3QzAwRkYxMjE4Cis6MTBERTAwMDAzRkMyMEZGNTIzQkM0MUVGMTgzNzgwQUVDMDAzNTAwNjY4Cis6MTBERTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBEQjAwM0VEQTFFCis6MTBERTIwMDAwQzgwMDM2NjEwOEIwMDMyODA4Q0I2MDM0QTAwNEI4MDU2Cis6MTBERTMwMDAzMkM4MENCNDAzMEExMERCMDAzRUMxMENCMDQzMkEwMDA4Cis6MTBERTQwMDA3MDAwMDAwMDAwMDAwMDAwQzgxMUI0MDA4NzA0MkNDMDVFCis6MTBERTUwMDAwRDcwMDMxQzA4ODc0ODIwODEwRDcyODI1QzAwRDcwMDdBCis6MTBERTYwMDAyMUNDMjhGMDAyMUMxMDg3MjAyQzAwMDg0MDBBMzIwNDI0Cis6MTBERTcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDk2MDBCNzgxMkRFMEU3Cis6MTBERTgwMDAwODQ4MDIwRTA0ODc4MDIxRTAwODc4MDIzRTAxODc4MDVFCis6MTBERTkwMDAyMUUwMTg3OTAyM0EwMTk3QTAyRDYwMDgzODAyMjAwMDhECis6MTBERUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEM2MDBBM0M2MkNDMERCCis6MTBERUIwMDAwOTMwMDIwQzAxODMwMDIwRTAwOTMwMDI0RTAwOTMwMDdCCis6MTBERUMwMDAyMEMwNDkzMDIyMEY2NDgzMDI2Q0Q0MjgzMDAyMTIwNDJGCis6MTBERUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxMUFCODBGQUUwM0M4ODUwCis6MTBERUUwMDAwQ0UwMDIyODAyQ0EwMEIzQTkwQ0EwMDMzQjEwQ0EwMDMwCis6MTBERUYwMDBBMjgwMENBMDBCMzgwMERBMDAzRkIwMENFNjAzM0EwNDE1Cis6MTBERjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMwMjA5ODA4M0UwMEFCCis6MTBERjEwMDAwRjgwMEJFMTAwRjgwMTNDMTA0RjAwMDNBMDQwRjgwMDE3Cis6MTBERjIwMDAzRTEwMEU4MDAzRTAwMEY4MDAzQzAyMkYwNDkzRDIwMDY0Cis6MTBERjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBDMUMxMzI0MEMxCis6MTBERjQwMDAwQzk4MDMyNjQwRjkwMDMyNDAwQzk4MDMyNDI0RjkwMDcxCis6MTBERjUwMDAzQzYwMEMxMDAzQTQwMEY5ODIzMjQwMEM5MDAzMDIwNEQwCis6MTBERjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTAwMjI1MDlFCis6MTBERjcwMDAwRDk4MDIyNTgwQjkwMDIyNTIwRDlDMDIyNDAwQjkwMEEwCis6MTBERjgwMDAyRTYwMDg5MDQyMjQwMEI5NDAzNjQwMDg5MDBBMjAwMEQ0Cis6MTBERjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA4RDAwMjM0MDQwCis6MTBERkEwMDAwODEyMDIyNDAwQTExMEEyNjAwODkyOEEyNDAwQjkwMTdDCis6MTBERkIwMDAyRTQ2MDg5MDAyQTQwMEIxNTAyMjQwMjg5MDgyMDYwMDBDCis6MTBERkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODQ4NTIwQTFEODVGCis6MTBERkQwMDAwOTEwMDIwNDgwQjMyMDIwNDAyOTEyMDYwNDAwQjEwMTc4Cis6MTBERkUwMDAyQzQ4MjgxMjAyMDQwMEIxMjAyNDQ4MDgxMjAyMDIwMTIxCis6MTBERkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDI4QTAwQjMwMDdDCis6MTBFMDAwMDAwQzA1MDMyMTQwRTA1MEIyMDAyQzgwMDIyMTQwRjA1MDZBCis6MTBFMDEwMDAzQzE0MEM4NTEzQTE1MEY4NTAzMjE0MEM4NTIzMkUwM0E4Cis6MTBFMDIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGOTEwM0U0NDJDCis6MTBFMDMwMDAwRkQ0MEJGNDQ0RjkxMDNGNTA0RjExMDNGNDAwRjkwMEQyCis6MTBFMDQwMDAzRTQ0MEY5MTUzRjQxNEY5MTAzRjQ0MEZEMTAzRTYwMkZDCis6MTBFMDUwMDA3MDAwMDAwMDAwMDAwMDAwOTgwNUU2QTBERDg4QjM2NkFGCis6MTBFMDYwMDAwQ0RDODMzNjg4QkRBMDM3NkEwQ0RBMEIyNTAyQzk0MDY4Cis6MTBFMDcwMDAzRjc4NEY5OEIzRTUwNENEQTA3Mjc4MENEODhCMjYxNDY2Cis6MTBFMDgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzMDA4ODQyMjIzMUQ4Cis6MTBFMDkwMDAwODBBMDIyMkEwQjhGOTIyMTAwRDg0MTI2QTgwODg4MDMyCis6MTBFMEEwMDAyRTIwMEIwODAyRTI4MEE4QThBMjM4NDhBODAyMEUwMDgxCis6MTBFMEIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0QTI4MTAwMjA0ODk0Cis6MTBFMEMwMDAwODEyNDI0NTAwQjEwMDI0NDAwOTE0MDIyNDAwODEyMEI2Cis6MTBFMEQwMDAyQzU4MEIxMDgyQzQwNDkxNDA2NDZDMDgzMDgyMTIwNUU1Cis6MTBFMEUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDA4OTAwMjI0MTAzCis6MTBFMEYwMDAwODkwOEE2NDgwQjkwMDIyNTAwOTkwMDY2NDA4OTkwMDRCCis6MTBFMTAwMDAyRTQwMEI5MDA2QzQwMUI5MDIyNjYxODg5MDAyMDYwNEQ1Cis6MTBFMTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTAwMjI0MERCCis6MTBFMTIwMDAyQzk0MjM2NDAwQjkwMDM2NDAwOTkwMTMwNTAwQzkwMEZGCis6MTBFMTMwMDAzRTQwNEY5MDEzRTVDMEQ5MDAyNjQwMkM5NDAzMjgwMEEwCis6MTBFMTQwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDJFOTA4M0M0MEUzCis6MTBFMTUwMDAwRjkwMEJBNDAwRjEwMDNFNDEwRjkwNDNBNDg4RTkwNDA2Cis6MTBFMTYwMDAzRTQwMEY5MDAzRTYwMEUxMDAzQTQwOUY5MjYzREEwMEUwCis6MTBFMTcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMDgwMTBFMDAxMzIwMDY0Cis6MTBFMTgwMDA4RjgwMDMyMDAwRDgwODMwMDE4QzAwMDNFMTAyQzgwNDBFCis6MTBFMTkwMDAzRTAwMEM4MDBCMjEwMEM4MDA3ODAwMEY4NjAzMEEwMEE3Cis6MTBFMUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTQwMkI4MjdGCis6MTBFMUIwMDAwQkEwMDIzQTAwOEU4MDIzODIwOEUyMDIyODEwOEEwMDE3Cis6MTBFMUMwMDAyRjk4MjhBMDEyMjgwMDhFMjAyRTgwNEJFNDAyMEEwMEVGCis6MTBFMUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDJBMjQwMjA4MDAyCis6MTBFMUUwMDAwQkIwMDI0RTQwOTNDMEEwMjAwODM2MDI4QzAwOTMwMDcyCis6MTBFMUYwMDAyQ0UyMDgzMDA2NEMxMjkzMDgyOEMwMEJCMDAyMEEwMDJCCis6MTBFMjAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDg4MjQwMjk0MENFCis6MTBFMjEwMDAwQjcwMDI1RTA4ODQwODIzNDAwODcwMDYxQzgwODcwMDhCCis6MTBFMjIwMDAyRDIwMDg3OTEyNUMwMDk0MDAyREMwMEIzMDQyMjgwMDhDCis6MTBFMjMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMDBFNDgwMzFBMTdBCis6MTBFMjQwMDAwRjU4MTM3NjAwRDA4MDMxQzAwQzM4MDNCRTgwRDc4MUMwCis6MTBFMjUwMDAzRjIwOEM3OTAzN0YwMUQ2ODAzOUU4NEY2ODAzMkEwMDdDCis6MTBFMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREJFMDBGQTAwM0UwMDkzCis6MTBFMjcwMDA4Rjk2MEJBNDAwRUEwMDNDQzAwRjkwMDNBQzIwRkI0MDNCCis6MTBFMjgwMDAyRTAwMEZCMjAzQURBMEVBMDAzRUMwMEZBMDFCQzIwNEQ3Cis6MTBFMjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDhERTgxMzNBNDlECis6MTBFMkEwMDAwRUZDMTMzRTAwRkM4MDEzMjAwQzY4MDMzRTIwRkZDOEM4Cis6MTBFMkIwMDAzRjYwMURGODAzN0UwMEM3ODAzM0UyMENEODAzMTAwMEQ2Cis6MTBFMkMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NjQxMzFDNENECis6MTBFMkQwMDAwODc5NDI5QzAwQkMxMDIxNDA4NTM1MDM1QzAwQjcwMEUyCis6MTBFMkUwMDAyREMwMDg3MjAyMkMwMEE3MDEzN0MwMDg1MTQyMkEwMDM1Cis6MTBFMkYwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDhDNDA4MjAwMjQ4MUJCCis6MTBFMzAwMDAwOEQ4MDIxNDIwQjUwMDIwNDAwOTYwMDIxQzQwQjcwMDY0Cis6MTBFMzEwMDAyQzQwMEIzMDIyREMwMDk3MDAyMUM0MDg0MDAyNDQwMDRFCis6MTBFMzIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNEVDMDA5MjA2MjA5MDI1Cis6MTBFMzMwMDAzODE1MDI4NjAwQjgwMDYwNTAwOTMwMDI0RTAxQkIwMDVCCis6MTBFMzQwMDAyRTQwMEIzMDAyQ0UyMEIzMDAyNEYwNDgwMjBBNTgwNEJECis6MTBFMzUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBDQTAwQTY5NDEwCis6MTBFMzYwMDAyQzkwMDMyRTAwRkIwNUIyODUwRDkwMDMzRjkwRkYwMDFCCis6MTBFMzcwMDA3RTgwMUZGMDQzRkMyMTlBMDAzM0M4M0NCMjAzNkEwNDNDCis6MTBFMzgwMDA2MDAwMDAwMDAwMDAwMDAwOTAwMEVDMDJFQTQwM0Q4MEM4Cis6MTBFMzkwMDAwRjEwOTNFRDAwRkI0MDNFOTA4RjMwMDNFQzgwRkIwMEFDCis6MTBFM0EwMDAzRTkxMUNCMDAzMkMxMEU4MDAzRUM4MUY5MDAzQTUxMDNFCis6MTBFM0IwMDAzMDAwMDAwMDAwMDAwMDAwODAxMEZDMDJFNDAwNzNBMEE4Cis6MTBFM0MwMDAwQ0ZDMDM3QzAyRkYxMDEzQzQxQ0MwMDMzQzAwRkYwMEM0Cis6MTBFM0QwMDAzN0UwMERGMDAzRkMwMEVEODAzMUMwMEMzMjYzMjAwNDA3Cis6MTBFM0UwMDAzMDAwMDAwMDAwMDAwMDAwODQwMDZDMDA4QUMwMjJCMUYwCis6MTBFM0YwMDA4QUI4NDM0QTEwREIyMDIwRjAwQTk0MDM2QzAwQkIwNzY0Cis6MTBFNDAwMDAyMkI4MDhCMDAyRUMxMUU4QzBCMkMwMkE5MjFBMjAwMDZCCis6MTBFNDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTJDMDBBQTgwMjI5ODVCCis6MTBFNDIwMDAwODkwMDIyRjAzQkIwMTJBODMwOEIyNEUyQzA0QUIwMkQyCis6MTBFNDMwMDAyMkM0MjhCMDIyRUMwOUIzNTA2MkMwMDhCMDAyMjAwMDA4Cis6MTBFNDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDE4MzAwNjA4MDEwCis6MTBFNDUwMDAwODEyMEE0NDAwOTMwMDJBODA0QTMwMDIwQzAwQjMwMERDCis6MTBFNDYwMDA2MEMwMDgzMDAyQ0MwMEIzMDI2MEMwMDgwMDQ2MDIwMTYwCis6MTBFNDcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBFODAyMjI4MDE3Cis6MTBFNDgwMDAyQ0YyNDMyQzAwRkIwMEJBQzAwOEE1MDIzQzAwRUYwMEIwCis6MTBFNDkwMDAzNkMwNERGMDEzRkQ1MUZCMDAzMkMwMENCMDAzMjAwMTFCCis6MTBFNEEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDA3RTA0M0Y4MDIyCis6MTBFNEIwMDAwRjMxNDNGMDAyRkYwMDM3QzAwRkYwMDNGQzA4RkYwMEVDCis6MTBFNEMwMDAzRkMwMEZGMDAzRkMwMEVGMDAzQkMwMEZDMDAzRTgxNjk1Cis6MTBFNEQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYyNDBGQzgwM0YyNEY2Cis6MTBFNEUwMDAwREQ4NTNENjA0REYzMjNGQ0M0Q0MwNDNGQzAwREY2MDc0Cis6MTBFNEYwMDAzN0MwMEZDNDAzN0NEMERGMjAzM0Q4MERGODQzRjAwMEMxCis6MTBFNTAwMDA3MDAwMDAwMDAwMDAwMDAwODAxOEU4ODBCMDAxMkUwOEI0Cis6MTBFNTEwMDA4ODkwMDJFQzIwOEI3MDJGQ0MwOEIzODJGREUwQkY0MEM2Cis6MTBFNTIwMDAyMkQ4MEI5MzAyRkRDMEFGMTAyOEYwMDhCQzEyRjAwNEYzCis6MTBFNTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0MDBCMDAwMkUwMTdCCis6MTBFNTQwMDAwQTEyODJFQzgwQjMwMDJDQzgwQTAwMzI4QzAwQTMzMDdGCis6MTBFNTUwMDAyMEQyMDkwMDAyOEM4MDgzMDAyOEQ4MEIzNDEyRjIwMUVCCis6MTBFNTYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUFDMDFCODAyMkUwMEUxCis6MTBFNTcwMDAwQTkwMTJFQzEwOEIwMDJFQzAwQUIwMDBFQzAwQjMwMDIxCis6MTBFNTgwMDAyMkMxMEI5MjAyQ0MwMUFCMDAyQUMwMDJCMDAyRjAwNEZGCis6MTBFNTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUwMDBGQTBDM0VDMEUyCis6MTBFNUEwMDAwRkEwMTNFRTIwREIwMDNFQzAyRTg4NTNFQzAwRkIwMEQyCis6MTBFNUIwMDBCMkMwOEZBQzgzQUMwOERCMDAxQUMwNEZCMDAzQzAwNEZDCis6MTBFNUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRTAwM0ZDMDQ1Cis6MTBFNUQwMDAyREUwMDNGRTgwN0YwMDNGQzAwREQyMDNGQzAwQkYwMTkxCis6MTBFNUUwMDAzRUMwMERDODAzRkMwQ0ZGMDAzRkMwMDlGMDIzRjgwMDNCCis6MTBFNUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBGQTQwMzJDMTlBCis6MTBFNjAwMDAwRkEwMDMyOTA4REIwMDNFQzAwRTg1MDNFQzIwQ0IwMEUxCis6MTBFNjEwMDAzQUMwMEVBNDAzRUMwMEZCMDAzQUMyMEVCMDAzMTAwNDkzCis6MTBFNjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQTYwMjBDMEQ3Cis6MTBFNjMwMDAwQkEwMDIwODAwQUYwMDJGRDAwQkI1MDJGRTAyOEYwMDI2Cis6MTBFNjQwMDAyRkMwMEQ4MDBBM0MwMEI3MDAyM0MyMDVGMDIyMzYwMDFGCis6MTBFNjUwMDA0MDAwMDAwMDAwMDAwMDAwQzAwNDQwMDBCMTg4MjAwMDFECis6MTBFNjYwMDAwQjEwMDIwQzAwODMwMDJFQzgwQjA4MDY0RDQwODMwMERGCis6MTBFNjcwMDAyMEMwMDgzMDA2MEMwODkzMjAwQUUwNEEzMDAyMzgwMDE3Cis6MTBFNjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAxMDVBMDBCNTkwMjEyMDJBCis6MTBFNjkwMDAwQjU4NDIzRTAwQTc4MDJERTAwQjY5MDJERTQwODc5MkI2Cis6MTBFNkEwMDAyREUwMDkxODAyOUUwMUI3ODAyOUUwMDM3MDAyM0UwMEE4Cis6MTBFNkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODQ0MDBGMTAxMzAwMDY0Cis6MTBFNkMwMDA1RjE4MDMwQzEwODMwMDNDQzQwRTA0MDNFQzAwODMwMEFECis6MTBFNkQwMDAzMEM0MEMzMTAzOEMwMEYzMDAzOEM4MEUzMTAzMTIwMjMxCis6MTBFNkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxNUJDMDBGRDA0QkYwNDU1Cis6MTBFNkYwMDA0RjU4MDNGODA4RUYwODNGQzAwRkYwMDFGQzAwRkY0QzMzCis6MTBFNzAwMDAzRkMxMEZEMDAzM0MwMEY3MDAzN0MyMEQ3MjAzRDAwNkEzCis6MTBFNzEwMDA2MDAwMDAwMDAwMDAwMDAwMDgwNUUyMDBEQjAwMzJDMERECis6MTBFNzIwMDA0REE4MDMyQzA4RkIwMDdFQzg4RkIwMEI2RjQ1RUJDMkQxCis6MTBFNzMwMDAzNkMwMDdBMDAzRUYyMENCNTBCMkMwMEM3OTAzMkEwMEVCCis6MTBFNzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxOTk4MDA4RjAwMjFDMEYwCis6MTBFNzUwMDAwQjYwMDM1QzAwMzcwMDJERDIwQjMwMDIwQ0E4ODcyNDFECis6MTBFNzYwMDAyMUQwMDk3MDAyREQ4ODg3MkEyM0U4MDg3MDAyMzIwNDZDCis6MTBFNzcwMDA2MDAwMDAwMDAwMDAwMDAwMjAwMEI2MDA5NzgwMjFFMDRCCis6MTBFNzgwMDAwQjY4MDIxRTAwQjc4MDJERTg4QjQ4ODIxRTgwQTM4NDkwCis6MTBFNzkwMDAyNUU4MEI2ODAyQ0UwMjg3ODAyMUUwMDg3QTAyMjAwMDdCCis6MTBFN0EwMDAyMDAwMDAwMDAwMDAwMDAwNjgwNENDMDg4MzgyMjBFMDA0Cis6MTBFN0IwMDA4QjJBMDI0ODQwQjMwMDJDQzAwQjMwODIwQzAwODMwMDJGCis6MTBFN0MwMDAwMEMxMDkzMTAyQ0MwMDgzMDAyMEMwMDgzMDBBMTIwNEM1Cis6MTBFN0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUU4MDBEQUEwMzJBOEQwCis6MTBFN0UwMDA4REE4MDMzQjAwRkEwMDNFODAwRkU0MDM2ODAwRUEwMkI0Cis6MTBFN0YwMDAzNjgwMEZFNDAzRTgwMENBMDAzMjgwMkNBMDAzM0EwNEZDCis6MTBFODAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMUEwMTBGODAwQkUyMEQ5Cis6MTBFODEwMDA4RkMxMDNFMDI0RjgwMDNFMTAwRjg0MDNFMDAwRjgwMUVDCis6MTBFODIwMDAzRTAwMEY4MDAzRTAwMEY4MDFCRTEwMEY4MDAzRDIwMDBECis6MTBFODMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEE0MDBGOTQwMzI0MDQxCis6MTBFODQwMDBDRjkwMDNFNDAwQzkwMDBFNTAwRjFBMDMyNjAwRjkwMDEwCis6MTBFODUwMDAzRTQwMEY5MDgxRTQwMEY5ODAzMjQwMEM5MDAzQzIwNEU2Cis6MTBFODYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDRCMTA0MjI0MDc1Cis6MTBFODcwMDAwQjkwMDJFNDAwQTkwMDJFNTMwQjkyMEEyNjQ4QjkwNDFCCis6MTBFODgwMDAyRTQwMEI5MDAyRTQwMEI5ODAwMjUwMDg5MDAyRTAwMDk0Cis6MTBFODkwMDAxMDAwMDAwMDAwMDAwMDAwMzgwNTI0MDBCRDAwMjM0MEU3Cis6MTBFOEEwMDAwQkQwMTJDNDAwODkwMjJFNDAwQjkwMjIyNDAwQjkwMDI0Cis6MTBFOEIwMDAyRTQwMEI5MDAyRTQwMEIxMjAyMDQwNjg5MDIyQzYwMDU4Cis6MTBFOEMwMDA0MDAwMDAwMDAwMDAwMDAwMjgxNDE0MDBCRjEyQTE0MDA2Cis6MTBFOEQwMDAwQjUwMDJDNDAwQTEyMDJDNDgwQjEyMDIwNDEwQjExMUVECis6MTBFOEUwMDAyQzQ4MEIxMzIyQzQwMEIxNDAyMDVBMDgxMDAyQzIwMTY4Cis6MTBFOEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODQwMzIxNDM0Cis6MTBFOTAwMDAwRjQ1MDNFMTQwQzg1MDNFMTU4Rjg1MDMyMUU4Rjg2OEE0Cis6MTBFOTEwMDAzRTE0MEY4NDAzRTFFMEYwMjgzMkE4Q0M4MDIzRUUwM0ZDCis6MTBFOTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxNUM0MTBGOTIwM0U0MDdGCis6MTBFOTMwMDAwRjkwMDNGNDAwRjkxMDNFNDQwRkQxMDNFNDAwRjkyMEQ2Cis6MTBFOTQwMDAzRTQ0MEZEMzAzRTQwMEY5MDBCRTQwMEY5NDAzRTYwNkYzCis6MTBFOTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUU0MDBGRDEwMzM0MEI2Cis6MTBFOTYwMDAwQ0QwMDMyNDAwRDkwMDNGNDA0Q0QwMDNGNjAwRkQ5MEFBCis6MTBFOTcwMDAzQTQwMEM5MDAzRTZBMEZEQTgzNzY4MENEODgzMjYwMDI3Cis6MTBFOTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDhDOEEwMjIwMDVECis6MTBFOTkwMDAwODgwMDIyMDAwODgwMDJFMDAwQzgwMTJFMDAwQjg4MDYxCis6MTBFOUEwMDAyMjAwMEQwQTAyRTM4MEIwQzAyMDM0MDg4NDAzNEUwNDI0Cis6MTBFOUIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwMDg0MDlBMTAwMjA0MTUwCis6MTBFOUMwMDAwODkwMDIyNDAwOTEwMDJDNDAwODEwMDJDNTAwQjE2MDlDCis6MTBFOUQwMDAyMDQwMDgxMEEyQzQyMEIxMjgyNDRBMDgxMDAyNTIwMTg1Cis6MTBFOUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNEE0MDE4MTAwQTI0MDgzCis6MTBFOUYwMDBBODkwMDAyNTQwODkwMTJDNDAwODk0MDJFNDAwQjkwMDQ5Cis6MTBFQTAwMDAyQTQwMDk5MDAyRTQwMUI5MDQyMjQxNDg5MDAyNDYwNEQ4Cis6MTBFQTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE1MjBFOTAwMzI0MEMyCis6MTBFQTIwMDA0QzEwMEIyNjAwRDkwMDNFNDAyQzk4MDNFNDAwRjkwMDVFCis6MTBFQTMwMDBCMjQwMEM5MDAzRTQwMEY5MDAzNjQwMkM5MDAzNjgwNEM3Cis6MTBFQTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgwMUE0MDBFOTAwM0U0MDAyCis6MTBFQTUwMDAwRjkwMDNFNjAwRjkwMDNFNDAwRTlBMDNFNDAwRjkwMDJGCis6MTBFQTYwMDAzNjQwMEY5MDAzRTQwMEY5MDAzQzQwMEY5MDAzREEwMEI5Cis6MTBFQTcwMDA2MDAwMDAwMDAwMDAwMDAwMDgxMEExMDBGODAwMzIwMDUzCis6MTBFQTgwMDAwRjgwMTNBMDAwQzgwMDMyMDQ4QzgwMDNBMEMwRjgwMERGCis6MTBFQTkwMDAzQTAwMEY4MDAzMjAwMEMwMDkzMjAwNEM4MDAxMEEwNEI0Cis6MTBFQUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCRTAwMjA4MDkzCis6MTBFQUIwMDAwQkUwMDI4ODAwQUEwMDAzQTAwQUU2MDJGQTAwOEEwMDFFCis6MTBFQUMwMDAzMjgwMEJBMDAyMjgwMDhFODBBMzgwMjgyMDAyOEEwMEJBCis6MTBFQUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDBCMzQ4MjA0MDAyCis6MTBFQUUwMDAwQjEwMDIwQzAwODMwMDIwQzAwODM0ODI4RTA0OTkwMEIxCis6MTBFQUYwMDAwQUMwMUIzMDAyMEMwMjkwNTAyMDYwMDgzMDAyMEEwMDRECis6MTBFQjAwMDA1MDAwMDAwMDAwMDAwMDAwODAxMTFDODBCRDBBMjE0ODU4Cis6MTBFQjEwMDAwQjUyMDI5QzQwQTNBMDIwODAwQTYwMDJDRTAwODUyMEY4Cis6MTBFQjIwMDAyMUM0MEI3QTA2MUU4MDk1MjAyMTkwMDg3MDAyMjgwMENGCis6MTBFQjMwMDA0MDAwMDAwMDAwMDAwMDAwODgwODFFODBGNzgwQjE3OUM2Cis6MTBFQjQwMDAwRkRCMDIzRTIwQzdBMEIxNjBDQzc4MTM5NjAwRjFGMDM1Cis6MTBFQjUwMDAzOUUyMEY3QjEzMEYwMEQ0QTAzMTYwMkM3MDAzMkEwMjFFCis6MTBFQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNUFDMDBGNzAwM0U0MDY3Cis6MTBFQjcwMDAwRjkwMDNFRDgwRkIxMDNFNDAwQkIwMjNFQzAwRjkyMDFBCis6MTBFQjgwMDAzQUQ4MEZCMDBCRUQ4MUVEMTAzRTgwMEYzMDAzQzIwNjc2Cis6MTBFQjkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNEJFMjBFRTgwMzM2MDMyCis6MTBFQkEwMDAwQ0Q4ODMxRTAwNkY4MDMzRTAwRkI4MTEzMjA0RjU4MDVCCis6MTBFQkIwMDAzM0UwMEZGODgzMkY0MEZFODBCM0UwMENGODAzMTAwMDIxCis6MTBFQkMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxODlDMDBCQzAwQTE0NEQ4Cis6MTBFQkQwMDAwODEwMDM1QzAwOEYwMDIxODAwQkVBMjIxQzgwQjUwMTI1Cis6MTBFQkUwMDAyMUMwMEJGMDAyMUU4MEJFMDAyMzgwMkE3MDAyMkEwNDdFCis6MTBFQkYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMjBBNzAwMjM0MEVGCis6MTBFQzAwMDAwQjUwMEEzQzAwQTcwMDI1QzAwQTQzMDIxMDAwQjUwMEMzCis6MTBFQzEwMDAyMUMwMEI3MDgyMUM4MEI0MDAyMUMwMDg3MDAyMDQwMDY3Cis6MTBFQzIwMDAyMDAwMDAwMDAwMDAwMDAwMjAwNDhFMDRCMzAwMjI0MEY5Cis6MTBFQzMwMDAwOTE0MDI0QzAwODMwMDIwQzAwQjI0ODIwNDAwQjEwMEEwCis6MTBFQzQwMDAyMEMwOEIzQTAyMkMwMUIwMDAyMDgwMEEzMDAyMUEwNDQ2Cis6MTBFQzUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNTlFMDBFQjA0MzM0MEM3Cis6MTBFQzYwMDAyRERDMDMxRDYwRUYwMDMyMDBDRjlBMDMyODAwRkQwMDY5Cis6MTBFQzcwMDAzM0MxOEJGQzBCM0MwMEZDMDAzMjgwMEM5MDAzMkEwNDU3Cis6MTBFQzgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEFDMTBGODAwM0U0MDcyCis6MTBFQzkwMDAwRTk4MjNBQzA0RkIwMDNDMDAwRjg0MjBFRDAwRjkwMDJCCis6MTBFQ0EwMDAzRUMwNEZCMDAzRUMwMEZEMDAzRTgwMEY5MDAzRTQwMDM3Cis6MTBFQ0IwMDAzMDAwMDAwMDAwMDAwMDAwMjExMEZDMDBDRjgwMzM0MDM1Cis6MTBFQ0MwMDAwQ0QwODNGQzAwRUYwMDNGNDAwQ0YxNDEzMDEwQ0QwMDMwCis6MTBFQ0QwMDAzRkMwMDA3MDEzM0MwMEU0MDBCMUQwMEMxMDAzMjAwNENFCis6MTBFQ0UwMDAzMDAwMDAwMDAwMDAwMDAwQTEwNDJDMDA4QUU0MkE0MDRCCis6MTBFQ0YwMDAyODkwMDJFQzAwOEIwMDNFMDIwQTgwMDIyQzgyODkwNERDCis6MTBFRDAwMDAyRUMxMEFCMDBBMkMwMDg5MDIyMkYyMkE5ODAyMjAwMEExCis6MTBFRDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDI4MDE0MkE0MDMyCis6MTBFRDIwMDAwODkwMDJFQzA4QUIwNDJFODQwODEwODI4MDEwODkwMzNFCis6MTBFRDMwMDAyQ0MwNEFCMDIyMkMwMEFBMDAyMjgwMDg5MTAyMjAwMDk4Cis6MTBFRDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgxNDJDMDA4MDAwMjg0MDUzCis6MTBFRDUwMDAwODExMDJFQzAwODMwMDJDODEwQTAwNUE4ODAwMDEwMDhGCis6MTBFRDYwMDAyQ0MwMEEzMDAyMEMwMDgyMDAyMDgwMEExMDAyMDIwMTJFCis6MTBFRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDOTAwM0E0MEQ3Cis6MTBFRDgwMDAwQ0Q0MDNGQzAwRUIwMDNFNDAwQzkyMDNBMDAwNEQwMEFECis6MTBFRDkwMDAzRkMwMEVGMDMzM0M4MEU4MDAzMkMwMEM5MDAzMjAwM0VCCis6MTBFREEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxMUZDMDBGQzAwM0Q0MEVECis6MTBFREIwMDAwRjUwMDNGQzAyM0YwNDNCMDE0RkM0MTM3MDAwRkQwMEUxCis6MTBFREMwMDAzRkMwMUZGMDAxRkM0MEZDMDAzRkMwMEZEMDEzRTgwNjFECis6MTBFREQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY4RTBGRjgwM0RDMEFBCis6MTBFREUwMDAwREYzODJGMDgwRkY0MDMxQ0IwQ0YzMDNGRDA0RUZDMTQzCis6MTBFREYwMDAzM0UwMEY3OTAzRkUwMENGNDIzM0YwNENGODAzMzAwMENDCis6MTBFRTAwMDA3MDAwMDAwMDAwMDAwMDAwRTAxMEU5MDhCOTgxMkZGMDU4Cis6MTBFRTEwMDAwOEY0NTJFOTIwQkY0MDIzRjAwQUYzMDJGRDA4OEIwMEZBCis6MTBFRTIwMDAzNkUwMEI4MDIyRTg4MDhGNDAyMkMwMDhCMDgyMzAwNDk4Cis6MTBFRTMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUNDMDBCMTgwMkNDNUU3Cis6MTBFRTQwMDAwOTMyNDJDOEMwQjMzMTIwQzEwODMyMDJDQ0Q0QkIyMDQxCis6MTBFRTUwMDA2OEMwMEIzMDAyQ0MyMDkzNjAyMDg4MDgzMjAyMzIwMTU3Cis6MTBFRTYwMDA3MDAwMDAwMDAwMDAwMDAwRTAxNUEwMDBCQjgwMkVDMDc0Cis6MTBFRTcwMDAwOEIwMDJFQTAwQkIwMDYyQzEwQUIwMDJDQzAwQUIwMERECis6MTBFRTgwMDAyRUMwMEJBMDAwRTgwMDgzMDAyMkMxMDgzMDAyMzAwNDJECis6MTBFRTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU4OTBGQjgwM0VDMDBDCis6MTBFRUEwMDAwREIwMDNFMjEwRkIwMDMyQzA0Q0IwMTNFQzAwRTk1NDhCCis6MTBFRUIwMDAzQUMwMEZCMDAzRTYwMENCMDBCMjQwMENCMDAzMDQwNDJDCis6MTBFRUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRjAwM0ZDMDNCCis6MTBFRUQwMDA4RkYwMDNGMDAwRjcwMkJGQzEwRkYwMjNGQzAwREYwNjQ0Cis6MTBFRUUwMDAzN0MwOEZDOTA3RkE5MkZGMDQzRjUwMkZGMDAzRjgwMDk0Cis6MTBFRUYwMDA2MDAwMDAwMDAwMDAwMDAwNTAxMEFDMDBDOTAwM0VDMkRECis6MTBFRjAwMDAwRUIwMjNFNDAwRUIwMDNBQzgwRUIwMDNFQzAwRjkwMEE5Cis6MTBFRjEwMDAzRUMwMEZCNDAzQTQwMEZCMDAzRTgwMEZCMDgzRDAwNEJBCis6MTBFRjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTI4MDA4Qjc0MkRDMEUwCis6MTBFRjMwMDAwOEYwMDJFNDAwOEYwMDIxRjAwOEYwMDJGQzEwRDMwMDdBCis6MTBFRjQwMDAyRUMwMEI5MDEyMkMwMEVGMDAyRUMwMEJCNjAyRjYwMDY0Cis6MTBFRjUwMDA0MDAwMDAwMDAwMDAwMDAwRTgwNTQ4MDBBMzAwMkNDNEE5Cis6MTBFRjYwMDAwQTMwMDJDMDAwQTMwMDY4RjAwQTMwMTJDQzA0QTIwMEVDCis6MTBFRjcwMDAyQ0MwMEIzMDAyRUMwMEIzMDEyRUMwMEIzNDAyRjgwMEExCis6MTBFRjgwMDA1MDAwMDAwMDAwMDAwMDAwQjAwMTBDMDA4NzgwMkRFODU4Cis6MTBFRjkwMDAwODc4NDJEQTAwODc4MDI1RTAwODc5MDJDRTAwOTY4MDYyCis6MTBFRkEwMDAyREUwMEJEOTAyREUwMEE3ODAyREUwMEI3ODAyRkMwMERCCis6MTBFRkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNDBFMzEwM0NDMDg2Cis6MTBFRkMwMDAwQTM4MDNFODAwRUIwMDM4QzIwQTMwMDNDQzAwRTM0MDAzCis6MTBFRkQwMDAzQ0MwMEYzNDAzQ0QwMEYzMjAzQzg4MEYzMDAzRDIwMjM1Cis6MTBFRkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0ODBGRjA0M0ZDODg2Cis6MTBFRkYwMDAwRkYwODNGODQwRkYxODNCQzAwRkY0ODNGQzAwRUUwMkQzCis6MTBGMDAwMDAzRkMwMEZGMDAzM0MwMEVGMDgzRjgwMEZGMDEzRDAwNjI1Cis6MTBGMDEwMDA2MDAwMDAwMDAwMDAwMDAwODgwNUU4MDBDQjAwM0VGMjIwCis6MTBGMDIwMDA0REIyMTNFODA0Q0IwMTMyRjg0REIyMTM2RDIwRjgwMDU1Cis6MTBGMDMwMDAzRUMwMEYzMDAzMjQwMEZCMDAzRTQwOEZCODAzMkEwMDdGCis6MTBGMDQwMDA3MDAwMDAwMDAwMDAwMDAwQzgxMThDMDA4NjAwMkNDMDc5Cis6MTBGMDUwMDAwODczMDJEODEyODczMDIwQ0IwOEYyMDIxRDA1QjUwMEQ0Cis6MTBGMDYwMDAyREMwMEI2MDAzNTAxMEI3MDkyREMwMEJGMDAyMzIwNDA1Cis6MTBGMDcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDlFMDA4NzgwMkRFNEZBCis6MTBGMDgwMDAwOTdBMDJDRTAxODc4MDIxRUMwOTc4MDI1RTgwQjdDMDQwCis6MTBGMDkwMDAyREUwMEJGODAyMUUwMEI3QTAyRDYwMEI3ODAyMjAwMEI3Cis6MTBGMEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVFMDA4MjgwMkNDMDA4Cis6MTBGMEIwMDAwODMwMDJFQzAwODMwMEEwQzAwODMwMDIwQzAwQjM4MENFCis6MTBGMEMwMDAyQ0MxMEIzMDAyNEUwMEIzMDAyQ0YxMEIzMDBBMTIwNDlECis6MTBGMEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBODBDNjAwM0U4MDQ1Cis6MTBGMEUwMDAwREEwMDNGODQwQ0EwMDMyODAwREEwMTM2ODAwRkUwMjk0Cis6MTBGMEYwMDA3RTgwMEZFRDgzMzkxMEZBMDAzRjhDMEZBMDAzM0EwNDk1Cis6MTBGMTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTJGODkwM0UwMDlGCis6MTBGMTEwMDAwRjgwMDNFMDAwRjgwNTNFMDAwRTAwMDNFMDAwRjg4MEQ5Cis6MTBGMTIwMDAzRTAwMEY4MDAzRTA2MEY4MDA3RTAwMEY4MDAzRDIwMEY1Cis6MTBGMTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBDOTgwMzI2NEM0Cis6MTBGMTQwMDAwRjkwNDNFNDA2QzEwNDNBNDAwRjkwMDNFNDAwRTkwMDQ1Cis6MTBGMTUwMDAzMjQwMEY5MDAzMjQwMEMxMDEzMjQwMEM5MDAzQzIwNERFCis6MTBGMTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OUMwMjI0MERDCis6MTBGMTcwMDAwQjkwMDIyNDAwODkwMDIyNTAxQjkwMjIyNDAwODEwMDYxCis6MTBGMTgwMDAyMjQwMEI5MDIyMjQwOEM5MDAyMDQwMDg5NDAyRTAwMDhECis6MTBGMTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5OTIwMjI0MDAzCis6MTBGMUEwMDAwQjEwMDJBNDAwODkwMDJBNTgwQjkwMDI4NDAwQTkwMEM5Cis6MTBGMUIwMDAyMjQwMEIxMDBBMDQwMDk5MDIyMkMxMDg5MDgyQzYwMDY2Cis6MTBGMUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA5MTAyQTBDOEY0Cis6MTBGMUQwMDAwQjEyMDIwNDgwODEyMjIwNDg5QjEyMDIwNDkwODkwMUI0Cis6MTBGMUUwMDAyMDQwMEIxMDAyMDQwMjgxMjIyMjQwMDgxMDAyQzIwMUJBCis6MTBGMUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDJEQTAxMzIwMTk5Cis6MTBGMjAwMDAwRjg1MDNBMTQwQzA1MDNBMDE4Qjg1MjNBMTQ0RTg1MEVCCis6MTBGMjEwMDBCMjAwMEY4NTAzMjE0OEQ4NTEzMjE0MkM4NTAzRUUwMzI4Cis6MTBGMjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY1MDBFRDAyM0U0NDczCis6MTBGMjMwMDAwRjkxMDNGNDQwRjkxMDNFNDQwRjkxMDNFNDQwRkQwMEE4Cis6MTBGMjQwMDAzRTQwMEZEMDAzRjQwMEU5MTBCRjQwMEY5MDAzNjYwNjY0Cis6MTBGMjUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjFDNTAwMzM2OEJBCis6MTBGMjYwMDAwRjlBMDM2Rjg4QzlDMDMzNjgwQzlFMDMyNzgwRDk0MDZBCis6MTBGMjcwMDAzRTQwMEY5MDAzQzUxMEQ5RTgzNjUwMENEMDAzRTYwMDhECis6MTBGMjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDg4ODAwODIwMEQzCis6MTBGMjkwMDAwQjhFODJFQkM4ODhFMDIyMDAyODg4NDJBMjgwOEE4MEY4Cis6MTBGMkEwMDAyMjAwMEJBQTAyRTIwMDg4QzAyMkE5MDg4QTAzOEUwNDY5Cis6MTBGMkIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0MDA4MTAwMjBEMDlDCis6MTBGMkMwMDAwQjExMzI4NDg0ODE2MDYwNTAwODE2MDYwNTAwOTEyMDdECis6MTBGMkQwMDAyMDQwMEIxMDgyRTQwOTkxMjAyNDQwMDgxMEMyRDIwMTgyCis6MTBGMkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDQ4OTA0MjI0MEVBCis6MTBGMkYwMDAwQjkwMDJDNDAwQTkwMDIyNDEwMDkwMDJBNDAwODEwMEVBCis6MTBGMzAwMDAyMjQwMEI5MjIyRTU4MDk5MDEyMjYxMDg5MDAyODYwNDM2Cis6MTBGMzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE1ODI4MTkwMzI0MDJGCis6MTBGMzIwMDAwRjkwMTM2NzAyQzkwMDMyNDAwQzkwMjMyNDA0RDlDMDA3Cis6MTBGMzMwMDBCMjQwMEY5QzAzRTYwMEQ5MDAzNjUwMEM5MDAzRTgwNDVECis6MTBGMzQwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMEE2ODBGOTAwM0U0MDQ4Cis6MTBGMzUwMDAwRjkwMDNFNzAwRDkwMEJDNDIwRjkwNTNFNDA0RjkxMDZBCis6MTBGMzYwMDAzRTQwMEY5ODAzRTYwNEUxMDAzRTQwMkY5MDAzREEwMDkwCis6MTBGMzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMDgxMTA0ODEwMzIwOEQyCis6MTBGMzgwMDAwQzgwMEYyMTAyQzgwMDNBMDQwRjgwMDc2MDAwRjg0MDhCCis6MTBGMzkwMDBCMjAwMEY4NDBCMjAwMEQ4MDAzNjEwMEM4MDAzQ0EwNDgyCis6MTBGM0EwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNDI4MDQ4RTgwMjM4MDM0Cis6MTBGM0IwMDAwOEEwNDIyODAwOEEwMDIzQTA0QkEwMDJFODAwQkEwMDVGCis6MTBGM0MwMDA3NjgwMEJBMDAyMDgwMDhBMDAzMjgwMDhFMDAzQ0EwMEExCis6MTBGM0QwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA4MjAwMjBEMDAyCis6MTBGM0UwMDAwODMwMDIwQzAwOUIwMDI4QzAxQUIwMDI2QzAwQjMwMjY3Cis6MTBGM0YwMDAyMEMwMEIzMDAyMEMwMEEzMDAyMkMwMjgzNDgyQ0EwMEI3Cis6MTBGNDAwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFDMDA4NzAwMjBFMEU4Cis6MTBGNDEwMDAwODc4MDIwQzAwOTcyMDI1QzAwQjcxMDJEQzgxQjcyMDEwCis6MTBGNDIwMDAyMUMwMEI3QTQyM0M4MDg3MjAyMUMwMDg3MDAyRTgwMDhFCis6MTBGNDMwMDA0MDAwMDAwMDAwMDAwMDAwMjgwODBFODJDNzgwQjFFMEY0Cis6MTBGNDQwMDAyQ0ZBMDYxRTA4RDNCMTM5NjA0RTc4MTI1RUEwRkZGMDg4Cis6MTBGNDUwMDAyMUUwMEZGODAzMUYwOEUzQTAzM0UwMEM2ODAzRUEwMjgxCis6MTBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDNDBGQjAwM0VDMDkyCis6MTBGNDcwMDAwRkIyMDNFREE4RUIxMDNBODAwRkIwQzNFQzQwRkIwMEQ1Cis6MTBGNDgwMDAzRUMwMEZCMDgzRUM4MEVCNzBCRUM0MEZCMDAzODIwNkE5Cis6MTBGNDkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDBDRTgwQjM2MDY4Cis6MTBGNEEwMDAwRkZDODM3RTIwRUZCMDNCRTAwRkI4MDMzRTAwQ0Y4MTFFCis6MTBGNEIwMDAzRkUwOEZGODgzRUY0MEZGQzIzM0UxMENGODAzRDAwMDQ4Cis6MTBGNEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDODI4NzE4MjE4MEI1Cis6MTBGNEQwMDAwQjMwMDIxQzYwRDcxMDIxRDAwQjdCMDIzQzAwRDcwMDAwCis6MTBGNEUwMDAyREMwMEI3MDAyREUwMEJGMDBBM0M0MDg3MDAzQUEwNDg1Cis6MTBGNEYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMEJDMTE4NzAwMjFDMDc3Cis6MTBGNTAwMDAwQjMwMDIxQzAwOTMyMDY5QzAwQjcwMDIxQzAwODcwMEE2Cis6MTBGNTEwMDAyREMwMEI3MTAyREMyMEI3MTAyMUMwMDg2MDAyODQwMEVFCis6MTBGNTIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENEMDA4MzQwMjBDMEQ3Cis6MTBGNTMwMDA0QjMwMDIwQzAxODMwMDIwQzAwQjMwMDIwQzAwOTM4MDgyCis6MTBGNTQwMDAyQ0MwMEIzMDAyQ0MwMUIzMDAyMEMwMDgzMDIyOTgwNDNDCis6MTBGNTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJGMjBDQUMwMzI4MEEzCis6MTBGNTYwMDAwRkYwMDMzRTAwOUYwMDNBODAwRkYwMEIzQzAwQ0Y5ODU1Cis6MTBGNTcwMDAzRUMwMEZGNjAzRkYwMEZGMDAzMUUwMkNCMDAzQUUwNEU1Cis6MTBGNTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMENDODBGQjAwM0U1MEM2Cis6MTBGNTkwMDAwRkIwMDNBQzAyRkIwMDdFNTAwRkIwMDNFQzAwRkIwMDg5Cis6MTBGNUEwMDAzRUMwMEZCMjAzRUMyMEYzMDAzRUM2MEY5MDAzQTAwMDU0Cis6MTBGNUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDJDRjk4NzNDODZBCis6MTBGNUMwMDAwRjcwMDMzQzAwRkYwMDMzMjgwRkIwMDIxQzAwNEYwMEY3Cis6MTBGNUQwMDAzRkMwMEZGMDAzRkMwMEZGMDEzM0MwMENFNDAzRTQwNDYwCis6MTBGNUUwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMDA4MzgwQTJGODVFCis6MTBGNUYwMDAwQkIwNDIyQzAwQkIwMDMyMTAwRkIwMDM2QzA0QUIwMDA4Cis6MTBGNjAwMDAyRUMwMEJCMDEyRUMwNEVCMDAyMkMwNEE5NDgyRTAwMDQyCis6MTBGNjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTZDMDA4QTAwMjIwMDNECis6MTBGNjIwMDAwQkIwMDIyQzAwQjMwMEEyQzAwQjMwMDJBQzAwQUIwNDQ0Cis6MTBGNjMwMDAyRUMwMEJCMDQyRUMwMEJCMDAyMkMwMDhCMDIyRTAwMDlDCis6MTBGNjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwMDBDMDA4QjAxMjAwMEJBCis6MTBGNjUwMDAwQjMwMDYwQzAwQjMwMDIwQzAwQTMyMEFDQzAwQTMwMDE1Cis6MTBGNjYwMDAyQ0MwMEIzMDAyQ0MwMEEzMDAyMkMwNEEwMDEyQzIwMTAxCis6MTBGNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODZDMDA4QjA0MjJDMEE1Cis6MTBGNjgwMDAwRkYxMDMxQzAwRkYwNDMyQzAwQkYyMDNCQzAwRUYwMEJCCis6MTBGNjkwMDAzRUMwMDdGMDAzRkM4MEZGMDBCMkMwMENBMDAzRTAwM0YzCis6MTBGNkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOURDMDBGNTAwM0ZDMDgxCis6MTBGNkIwMDAwRkYwMDNGQzAxRkYwMjNCQzAwRkYxMDM3QzAwRkYwMEQxCis6MTBGNkMwMDAzRkMwMEZGMDEzRkM0MEVGMDAzRkMwMEZDMDAzRTgwNjNGCis6MTBGNkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUYyNDBDQzgwMzcyMDEwCis6MTBGNkUwMDAwQ0Q4MDNCMDQ0RkMwODNGMEUwRkMxMDNGQzAwQ0M5NEJGCis6MTBGNkYwMDAzRjBBMkVDNDAzN0Q4MENGMTAzRkMwMEZDMDgzMzAwMDZGCis6MTBGNzAwMDA3MDAwMDAwMDAwMDAwMDAwODAwOEUwOTA4ODAyMjI4MTY0Cis6MTBGNzEwMDAwODkyMTNBNDQwM0I2MDIyMTgwQjgxMDJGQ0Q0ODEwMEE0Cis6MTBGNzIwMDAzQUIwMEE5NDAyM0Q0MEFGNjMyRkRGMEI5ODAwMjAwNEVCCis6MTBGNzMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUUwMDA4ODAwMjA0MDQ0Cis6MTBGNzQwMDA4ODMwODJDMDAwQjAwODI4ODAwQTEwMDJDQzIwODAwMUQ2Cis6MTBGNzUwMDAyQzQwMUIwNjAyOEM5MDkzNjA2OEMwNEEwMDQyMjIwMTM0Cis6MTBGNzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUEwMDI4ODAwMjJDMDU4Cis6MTBGNzcwMDAwOEIwMDJFNDIwQkI4ODI2OTgwQjgwNDJDQzE4OEEwMDhGCis6MTBGNzgwMDAyRUMyMUI5ODAyQUMwMEFCMDAyRUMwMEI5ODgyMzAwNDM2Cis6MTBGNzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxMUUzQzBDQjAyMzIwMDU2Cis6MTBGN0EwMDAyQzgwMDNBRTA4QjkwMDNFNzAwRkI5MDNFQzAyNDg0ODQ0Cis6MTBGN0IwMDAzQ0MwMEY4QzkzRUMwMERCMDAxQUMwMEVBQzAzMTAwNEFECis6MTBGN0MwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUIyMDBGRjAwQkI4MEZDCis6MTBGN0QwMDAwRkMwNDNCNjQwQkQwMDNCNjAwRkU4MDNGQzAwRkY5NDQwCis6MTBGN0UwMDAzQkU0MEU2MDBGNkMwOEVGMDEzRkMwMEY2MDAzRjgwMEIwCis6MTBGN0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEExMDBGQjAwM0U2MDFGCis6MTBGODAwMDAwRkEwMDNFRDAwRjk0MDNBMDAwRjkwMDNFQzAyQzkwNDg5Cis6MTBGODEwMDAzMkQwMEY5MDAzMkMwOERCMDBCNkMwMERCNDAzRDAwNDI3Cis6MTBGODIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTAwMDBCMzg5MkVFMEExCis6MTBGODMwMDAwQkE0MDNBNDAxQjkwMDJFMDEwQjkwNDJGQzEwODk1MEM3Cis6MTBGODQwMDBBMkMwOERCNDAyM0M0NDhGMDAyM0MwMDhCMDAyRjIwMDc1Cis6MTBGODUwMDA0MDAwMDAwMDAwMDAwMDAwQzAwNDBDMDBCMDgwMkUwMDNBCis6MTBGODYwMDAwQjEyMDJDODAwQkEwMDJDQzAwQjIwMDJDQzAwQTIwMDcwCis6MTBGODcwMDAyMDAwMkIyRDlBMkU0MjgzMDAyOEMwMDgyMDAyRjgwMDc5Cis6MTBGODgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMDFFMDRCNDgwMkRBMEU1Cis6MTBGODkwMDAwQjU4MDI5MjAwQjY4MDJERTAwQjY4MDJERTQwQTY4MDc1Cis6MTBGOEEwMDAyMTI0Mjk0ODAyMUU4MDg3ODA2OUUwMDg2MTAyQzgwMDdGCis6MTBGOEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgxODBDMDBGMDMwM0M0Q0Y0Cis6MTBGOEMwMDAwRjMyMDNDODgwQjIwMDM4ODAwRjFCMDNFQzAwRTAzMDE5Cis6MTBGOEQwMDAzMDA0MEZCMTAzMEU4NUNCMDAzQUMwMEMzMTAzRDIwMkM1Cis6MTBGOEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxQ0JDMDBGQzExM0ZDNEYwCis6MTBGOEYwMDAwRkI4MTNCMDA0RkUwMjNGODAwRkMwMDNGRDAwREYxMkZCCis6MTBGOTAwMDAxRDA0MEZEMDQzQkMwMUVGMTAzM0M0MEVGMzAzRDAwNjI3Cis6MTBGOTEwMDA2MDAwMDAwMDAwMDAwMDAwMDgwNUVFMDBDQjAwM0UwMDgzCis6MTBGOTIwMDAwRjgwMDMyODAwRjgwMDNFNDAzREIwMDNFRjA4QzkwMEY3Cis6MTBGOTMwMDAzQTAwMENBMDAzRUM5OEZCMjAzMkQyMENBODAzMkEwMjU4Cis6MTBGOTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDA4NzAxMkQ4MDFECis6MTBGOTUwMDAwQjQwNDIxQzA0MzcwMEExNDAwODYwMDJDQzgwODcwMEE1Cis6MTBGOTYwMDAyRDgwMkU3MDAyRENBOUI3MjgyMUQwMDg3MDAyMTIwMDY5Cis6MTBGOTcwMDA2MDAwMDAwMDAwMDAwMDAwMjAwMEJFMDI4NzgwMkQ2MEIzCis6MTBGOTgwMDA0QkU4MDI1QTAxQjQ4ODI4RTA4ODc4QzJERTUyODZDMDZCCis6MTBGOTkwMDAyOTYwMDg2ODAyREU0MEIzOTJFMUU4MjgyODAyNzAwMDdFCis6MTBGOUEwMDAyMDAwMDAwMDAwMDAwMDAwNjgxNENDMDA4QjgwMkVDMEY2Cis6MTBGOUIwMDAwQjIwMDI0RDgwOUIyMDIwRTAwODM4MDJDQzAwODM4MDgxCis6MTBGOUMwMDAyQ0MwMEFCMDAyQ0MwOEIzMDAyMEMwMDgzMTAyNTIwNDk3Cis6MTBGOUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgwNUE4MDBDQUUwM0U4MEZBCis6MTBGOUUwMDAxRkE0MEI3OTAwRkUwMDNGODIxREUwMDNFODAwQ0U0MDFCCis6MTBGOUYwMDAzQjg4MkNFNDAzRTgwMUZBMDAzMjgwMENFODAzN0EwNDI3Cis6MTBGQTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgxMUEwMDBGODA5M0UwMDVFCis6MTBGQTEwMDA4RkMwODNBMDE4RjgwMDNDMjAwRjg4MDNFMDAwRjgwODhFCis6MTBGQTIwMDAzRTIwMEU4MDgzRTEwMUYwMDAzQzAwMEY4MDBCOTIwMDJECis6MTBGQTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEE0MDBGOTQyMzI0MDJECis6MTBGQTQwMDA0Qzk4MDMwNDAwQzkwMDNBNDAwRjkwMjMyNDAwQjk4MTY4Cis6MTBGQTUwMDAzQzQwMEM5MjAzMjQwMEY5MDUzMjQwNkM5MEMzQzIwNDcwCis6MTBGQTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDI0MTRCOTAwQTI1NEZCCis6MTBGQTcwMDAwODlCMUEyNDAyODkwMDIyNDAyODkwMDJBNDAwQjk5MDExCis6MTBGQTgwMDAyRTQwMjg5QzgyMjUwNEI5MDAyMjQwMDg5ODEyRTAwMEVDCis6MTBGQTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBBRDAwMjM0MDA1Cis6MTBGQUEwMDAwODUwMDI2NDAwODkwMDJBNDAwODEwMDI2NDAwQjkwMDZFCis6MTBGQUIwMDA2RTQwMDg5MDAyMjUwMEE5MDAyMjQwMDg5MTA2QzYwMDY5Cis6MTBGQUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0MDBCNTEwQTE0NDJDCis6MTBGQUQwMDAyODUwMDI0NDgwODEzMDIwNDgwODEyMDI4NDQwQjE4MEJFCis6MTBGQUUwMDA2Q0M4MDgxMjAyMDQ4MEIxMzQyMDQ4MDgxMjAyQzIwMTE2Cis6MTBGQUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBFODQwMzI5MEI2Cis6MTBGQjAwMDAwQ0M1MDM2MTQwQzA0MDNBMTQwRjg1MDMyMUIwRjg1MDgyCis6MTBGQjEwMDAzRTAwMEM4NTAzMjE0MEY4NDBCMDE0MEM4MDAzRUUwMTM4Cis6MTBGQjIwMDA1MDAwMDAwMDAwMDAwMDAwQjgxREM0MDRGOTIyMEU0ODc3Cis6MTBGQjMwMDAwRjEwMTNCNDQwRkQzMDNGNDQ0RkQxMDBFNDg0RkYwMTY3Cis6MTBGQjQwMDAzRDQ0MEZEMTBCRTQ0MEY5MzAzRTQ0MEZEMTAzRTYwNEFECis6MTBGQjUwMDA3MDAwMDAwMDAwMDAwMDAwMzgwNUU0MDBERDQwM0Y1MDY4Cis6MTBGQjYwMDAwQ0QwMDMyQzAwQzkwMDM2NDAwRjkwMTMyNzA0RjUwMTc4Cis6MTBGQjcwMDAzNzQwMENGMDAzRjYyMEY5QTgzMjY4MENEMDAzQzYwMDE5Cis6MTBGQjgwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMEUwMDA4OEEwMkUyODhGCis6MTBGQjkwMDAyODgwMDIyMDAwODhBMDIyMDAwQjgwMEE2MjgwQjgwMDIyCis6MTBGQkEwMDAyMjAwMDg4MDAyRTEwMEI4RTAyMjNBMDhBMDAyQ0UwNDU4Cis6MTBGQkIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwMDg0MDI4MTAwMkU0MDU4Cis6MTBGQkMwMDAwODEwMEE0NDAyODEwODI0NDAwQTEwMDI0NTgwQjkwMDQ2Cis6MTBGQkQwMDAyNDQwMjkxMDAyQzQwMEIxMDgyNDQ0MDgxMDAyQzIwMUM0Cis6MTBGQkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNEE0MDQ4OTAxMkU1MEM5Cis6MTBGQkYwMDA0OEIyMDI2NDAwOTEwMDIyNDYwQjkwMDI2NDAwQjkwMUYxCis6MTBGQzAwMDAyNkMwMDlCMDEyRTQwMEIxMDAyNjQwMDg5MDAyQzYwNEU0Cis6MTBGQzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNEU0MDBDOTAwM0M0MEI3Cis6MTBGQzIwMDAwQzkwMDM2NDAwQzkwMjM2NTAwRTkzMDMyNDAwRjk5MDJGCis6MTBGQzMwMDAzNjQ4MEQ5NDgzRTQwOEY5MDBCNjQwMEM5NDAzRTgwNEI4Cis6MTBGQzQwMDA3MDAwMDAwMDAwMDAwMDAwNjgxMEE0MDBFOTAwM0U0MEMxCis6MTBGQzUwMDAwRjkwMTNBNDAwRTkwMjJFNjEwNTkwMDNBNDAwRjkwMDlGCis6MTBGQzYwMDAzQTQwMEU5MDQzRTQxMEY5MDAzODQwMkY5MDAzQ0EwMDQ4Cis6MTBGQzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAxMzIwNDNECis6MTBGQzgwMDAwRjgwNDNDMDAxQzgwMEIyMDEwQzgwMDMyMDAwQzg0MEFGCis6MTBGQzkwMDAzMDAwOEM4NDgzRTAwMEM4MDAzMjAwNkM4NDAzQ0EwNDA2Cis6MTBGQ0EwMDAyMDAwMDAwMDAwMDAwMDAwMDgwNDI4MDBCQTAwMjM4MEEzCis6MTBGQ0IwMDAwQkVBMDJFODAwQUEwMDIyODAwOEEwMDIyODAwODYyMEExCis6MTBGQ0MwMDAzN0EwOERFNDAyRjgwMERBMDAyMjgwMDhBMDAyQ0EwMDAyCis6MTBGQ0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNTZDMDBCMzAwMjBDMEQ4Cis6MTBGQ0UwMDAwQkI4MDI0QzA0ODMwMDIwQzAwOEIwMDIwQzAyODMwMDUxCis6MTBGQ0YwMDAyMDQwMjgzNDAyQ0U5MDgzMDBBMEMwMDgzMDAyQ0EwMDAxCis6MTBGRDAwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFDQzBCNTg4MjE0MDA4Cis6MTBGRDEwMDAwQjcwMDJEQzgwQTMyMDIxRTA0ODMyNDIwRTkwOEUwMTVECis6MTBGRDIwMDA2NTUwMDk3MDAyREUyMDkzMjEyMUMwMDg3MDAyRTgwMEFFCis6MTBGRDMwMDA0MDAwMDAwMDAwMDAwMDAwMjgxODFFMDBGRjgwQjFBMDU1Cis6MTBGRDQwMDAwRjQ4MDI3RTAwODdBMDMzRTAyODdBMEIxRjAwQzQ4MDkyCis6MTBGRDUwMDAzMTYwOEM1ODAzRkUwMEM3QzgzM0U4MEM1ODAzRUEwMjMwCis6MTBGRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGRjAwM0UwMDg1Cis6MTBGRDcwMDAwRjkwMjNFQ0EwRkI0MDNFQzA4RkI1MDNFRDgwRjgwMDUwCis6MTBGRDgwMDAzQzQwMEZCMDAzRTgwMEZCMDIzRUQwMEY5MDAzQzIwNkQ4Cis6MTBGRDkwMDA2MDAwMDAwMDAwMDAwMDAwNjAwNEJFMDBGRjgwM0ZFMDQzCis6MTBGREEwMDAwRkQ5MDNGRTIwQ0ZDODMzRUE4RkZDMDMzRjAwRkQ4MDRDCis6MTBGREIwMDAzRjYwMEVFODAzRjIwMENGODAyRkZFMEM3ODAzMDAwMEI2Cis6MTBGREMwMDA3MDAwMDAwMDAwMDAwMDAwQTgwMDlDMDBCNTAyMkRDMERCCis6MTBGREQwMDAwQjU4NDJEQzgwQ0YwMDIxQzEwQjMwMTIxQzQwQjQwMjEyCis6MTBGREUwMDAyRDQ2MDg3MTEyQzgwMEU3MDAyREM0MDg3MDAzNkEwNDhDCis6MTBGREYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAwMkQwMjIxCis6MTBGRTAwMDAwQjQ2MDJEQzA4OTcwMDIxQzkwQTMwMjIxQzAwQjQwMDBFCis6MTBGRTEwMDAyRDQwMEE1MDgyQzQwMEI3MDAyQ0M4Mjg1MDAyNDAxMDYwCis6MTBGRTIwMDAyMDAwMDAwMDAwMDAwMDAwNDAxNDhDMThCMzAwMkUyMEI5Cis6MTBGRTMwMDAwQjE4MDJDRjRBODNDMjIwQzEwQjM0MjIwQzA0Qjg1OERECis6MTBGRTQwMDAyQzQwMEIyODAyQzgwMEEzMDAyQ0MwMDgxNDAyNDgwNDUwCis6MTBGRTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgwNUJDMDBGQjAwM0U4MDUwCis6MTBGRTYwMDAwRkEwMDJGQzAwREZBMEIzQzAwRUYwMEIzQzAwRkJDMEYzCis6MTBGRTcwMDAzQ0EwMEVCRDAzRUMwMEZGMDAzRkMwMEMzMDAzNkEwNDQxCis6MTBGRTgwMDA2MDAwMDAwMDAwMDAwMDAwQTAxMEVDMDBGOTAwM0UwMTNFCis6MTBGRTkwMDA4RkIxNDNFQzAwRjMwMDNFQzA0RkIwMTNFQzAwRkIwMDA5Cis6MTBGRUEwMDAzRTgwMEM4NDAzRTEwMDczMDAzRUMxMEZCMjQzRTAwMENBCis6MTBGRUIwMDAzMDAwMDAwMDAwMDAwMDAwMDE1MEZDMTBGRjgwMzdDMDNGCis6MTBGRUMwMDAwQ0UwMDNGQzIwRkYwODMzQzAwRkYwODNCQzAwRkYwMEYwCis6MTBGRUQwMDAzM0MwMkU0MDAzMUMwMUNGMDAxMUMwNENEMDAzMDA0NDlFCis6MTBGRUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDRCMzAyMjI3MkE0Cis6MTBGRUYwMDAwOEExMTZFQzAwQkIwNDIyQzAwQkIwNDJFQzAwQkExOUZBCis6MTBGRjAwMDBCNkQwMDg5QzRBMjY4MERCMDAyMkMwMDg5MDAzNjA0MERGCis6MTBGRjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCOTEwNjIyMEQ1Cis6MTBGRjIwMDA0OEEwMDJFQzAwQkIwMDIyQzAwQkIwMDJFQzEwQkIwMEVBCis6MTBGRjMwMDA2NjA4MEFBODEyMjYxMDlCMDAyQUMwMjhCMDI2MjAwMEI2Cis6MTBGRjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwMDBDMDBCOTAwMjAwMDg0Cis6MTBGRjUwMDAwODMyMDJDQzA0QjMwMDIwQzA0QjMwMDJDQzAwQjMwMDA2Cis6MTBGRjYwMDAyMDAwMDgwMDAyMDEwMDkzMDAyOEMwMDgzMDA2NDIxMTVBCis6MTBGRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQzZDMDBGOTAwQjI0MDBFCis6MTBGRjgwMDAwQzgyMDJEQzAxRkYwMEIyQzAwQkYxMDNCQzAwRjkwMERGCis6MTBGRjkwMDAyNjQwMkU4MDAzMjEwNENGMDBCQkMwMEM5MDAzMDAwMzM5Cis6MTBGRkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRDAwM0Y0MENDCis6MTBGRkIwMDAwRjgxMDNGQzAwRkYwMDNGQzAwRkYwMjNGQzAwRkMwMDlBCis6MTBGRkMwMDAyRDQwMkZDMDAzRjA4OEZGMDAzN0MwOEZEMDAzRTgwMjE4Cis6MTBGRkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFNDBGRjgwMzNDMjNBCis6MTBGRkUwMDAwQ0Y4MDM3Q0EwRkY5MDNGQzQyQ0I0MDNCQzgwQ0Y0MDJFCis6MTBGRkYwMDAzN0UwMEZGMTkzNkU0NEJGMzAzRjIwMkNGODYzRjAwNERDCis6MTA4MDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDMDBFQjIwMjNGMDU2Cis6MTA4MDIwMDAwOEI4NTIzRDAwQjMwMDJFREMwOEY0NDIxQzQyOEI0MERECis6MTA4MDMwMDAyMkM4MEJGNjAzNkM4OEJCMzAyRTAwMDhCMjAyRTAwNEE1Cis6MTA4MDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDBCQjA4MjBDMDA0Cis6MTA4MDUwMDAwODMwMDI0Q0EwQjMyMDI2ODA4ODM2MDJDQ0EwOTM2MDYyCis6MTA4MDYwMDBBNEMyMEEzMjQyNEM5MEIzMjAyQzBCODgzMDgyRTIwMTI5Cis6MTA4MDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDhCQjIyQTJDMEM4Cis6MTA4MDgwMDAwOEIwMDIyQzAwQkIwMDJFOTAwOEIwMDJFQzAwOUIwMDUwCis6MTA4MDkwMDAyMkMwMEJCMDAyNkMwMEJCMDIyRTIwMDhCMDAyRjAwMDIwCis6MTA4MEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBCMTgzMzJDMDA5Cis6MTA4MEIwMDAwQzFBMDM2QzEwRkIwMDM0QzAwQ0IwMDNFQzA4REEwMDlGCis6MTA4MEMwMDAzNkMwMEVCMDBCNkMwMEZCMDAzRTI4MENCMDAyRDAwMDk2Cis6MTA4MEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBFRDgwM0ZDMDI3Cis6MTA4MEUwMDAwRkQ0MDNFQzAwRkYwMDNGQzgwRkIwMDMzQzAwRUU0MDhDCis6MTA4MEYwMDAzRkMwMEY3MDAzRkMwMEZGMDAzRjgwMEZGMDAzRjgwMDRCCis6MTA4MTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjIwQjBDMDg4Cis6MTA4MTEwMDAwRkI0MDNBQzAyQ0IwMDMyOTAwRUIwMDM2QzAwRUIwMDQ2Cis6MTA4MTIwMDAzQUMwMENCMDAyRUMwMEZCMDAzRTkxMEZCMDAzOTAwMDhGCis6MTA4MTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQjgwMjNEN0YxCis6MTA4MTQwMDAwQjkwMDIzQzE0OEIwMDZBMDgyOEYwMDBCQzAwODMwMEVFCis6MTA4MTUwMDBCRUMwODhGMDEzMkMwMEVGMDAyRTgwMEJCMDA3QjIwMEQ5Cis6MTA4MTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMzQwMjBEMEJCCis6MTA4MTcwMDAwQjI4MDI4QzAwODMwMTIwQzAxQUI4MDA2QzEwQTEwMEVCCis6MTA4MTgwMDA2OEMwMkEzMDAyOEMwMEIzMDIyRTAwNEIzMDAyRjgwNDgzCis6MTA4MTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCN0EwMjFFMEY4Cis6MTA4MUEwMDAwQkVDQzIxRTA0ODc4MDI5RTQwODc5ODI5RTQwQUY5MEMwCis6MTA4MUIwMDAyOUUwMEEzODAwMUUwMEE3OTAyRDI0MEI3ODAyODgwMEMxCis6MTA4MUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNTBGQjA5MzBDMENGCis6MTA4MUQwMDAwRjIwMDI4QzQwQzMwMDIwQzAwQTM4MDM0QzQ0RTEwMDQ5Cis6MTA4MUUwMDBBQUMwMEUzMTQzOEUwMEYzMDAzQzAwMEYzMDAzRDIwMkQwCis6MTA4MUYwMDAwMDAwMDAwMDAwMDAwMDAwNDA0REJDMDBGRjIwM0ZEMDA4Cis6MTA4MjAwMDA0RjcwMDNGQzAwRkYwMDNEQzAwRkYzNDNGQzQwRDcwMDVDCis6MTA4MjEwMDBCRkMwMERGNEMzRkM0MEZGMDAzRjQwMEZGMDAzRDAwNjg5Cis6MTA4MjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDBGQjAwMzJEMDU4Cis6MTA4MjMwMDAwRDkwMDFFREMwRkIwMDNFQzAxRkJBMDNBQ0MwQzgwMEVBCis6MTA4MjQwMDAzMkUwOERCNDQzRUMwMEZCMDAzNkEwMENCMDAzNkEwMEIyCis6MTA4MjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzAwMjFDODE5Cis6MTA4MjYwMDAwODYwMDJEQzIwQjcwMDJEQzAwRjc0QTIxQzI4RDYwMEM1Cis6MTA4MjcwMDAzNUMwMDg3MjAyNUMwOEI3NDRBMTgwNDg3MDAyMTIwMDQxCis6MTA4MjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMjBFNEY1Cis6MTA4MjkwMDAwOTc4MjZERTAwQjc4MDJERTIwQTcwMTI4Qzg4ODE4MDcyCis6MTA4MkEwMDAyMUUwMDk3ODAyREUwMEIzQTAyNUEwMjg3ODAyNzAwNDNFCis6MTA4MkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDFCQjgwMjBDMDVBCis6MTA4MkMwMDAwODMwNDJFQzAwQjMwMDJDQzAwQTMwMjIwQzAwOTMwMEFFCis6MTA4MkQwMDAyNEMxMDgzMDAyQ0MwMEIzMDAyMEUwMDhCMDAyMTIwNDMwCis6MTA4MkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGQTA4QjI4MDg1Cis6MTA4MkYwMDAwREUyMDNFODAwRkEwMDNGODAwQUEwMDNBODAwQ0U1MDc4Cis6MTA4MzAwMDAzMjgwMDVBMDAzRTgwMEZBMDAzN0E4MENBMDAzN0EwNDI1Cis6MTA4MzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMDYwMDhGODAwM0MwMDE5Cis6MTA4MzIwMDAwRjg4MDFFMDAwRjgwNDNDMDA0RjAwMTNDMDAwRjgwMDgzCis6MTA4MzMwMDAzRTAwMEY4MDAzNjAwMEY4MDIzRTAxMEY4MDAzRDIwMDcwCis6MTA4MzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTkwMTI0MDI2Cis6MTA4MzUwMDAwQzkwMDNBNDAwQzkwMDNFNzAwRTk0MzMyNDA4QzkwMDk5Cis6MTA4MzYwMDAyQTQwMEI5MDAzRTQwMEY5MDAzQTQwMEY5MDAzMDIwNDA2Cis6MTA4MzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQyMjI2MDY4Cis6MTA4MzgwMDAwODEwMDIyNDAwODkwMzJFNDAwODkwMDJBNDAxODEwNEYxCis6MTA4MzkwMDAzRTQwMEI5MDAyRTQwMEI5MDIyMjQwMEU5MDAyMjAwMDAxCis6MTA4M0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTQwMkE0QTBGCis6MTA4M0IwMDAwODkxMDJBNDAwODkwMDJFNDAxQTkwMEEyNDA0ODkwMDIyCis6MTA4M0MwMDAyQTQwMEI5MDAyRTQwMEIxMDAyQTQwMEI5MDAyMDYwMDA0Cis6MTA4M0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTAxQTg0OEFCCis6MTA4M0UwMDA4ODkwMDIwNDgwODE0MDJDNTAxODE0MEE4NDEwODk0MDFGCis6MTA4M0YwMDAyQzQwMEIxMDAyQzQwMDMxMjAyMDQwMEExMDBBMDIwMTU4Cis6MTA4NDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGMDUwM0EwMDhDCis6MTA4NDEwMDAyQ0EwMDJBMTQyQzgwMDNFMDBERTAwMjMyMTQyODgwMEI5Cis6MTA4NDIwMDAzODE0MEY4NTAzRTE0MEY4NTAzODE0MEYwNTAzMkUwMTZFCis6MTA4NDMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0MDhGRDAwMzY0NEQ0Cis6MTA4NDQwMDAwRkQwMDM2NDQwRjkwMDNENTAwRjk0MDNFNTAwN0Q0MEQ4Cis6MTA4NDUwMDAzRTQwMEY5NDAzRTQwMEY5MTAzRjQwMEU5MDAzRTYwNDAxCis6MTA4NDYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU0MDBGRDQwMzM2OEMzCis6MTA4NDcwMDAwQ0QwMDNFNzgxRjkwMDMzNzgwREQ4MTMyNkEwQ0RBMEU2Cis6MTA4NDgwMDAzMjQwMEQ5QjAzMjQwMEY5QTAzQzQ0MkM5MDA3ODYwMDQ5Cis6MTA4NDkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBCOEEwQTIxMDNBCis6MTA4NEEwMDAxODgwMDM4Mjg0Qjg4MDM2MkMyRTBGMDJBM0EwRDhFMDU3Cis6MTA4NEIwMDAzNjIyOEIwODAzNDJBMEY4RTAyRTI4MDg4ODAyQ0UwNDVBCis6MTA4NEMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwQTA1MDBBCis6MTA4NEQwMDAyODMwMDJDNTgwQjEwODIwNDAwOTEwQTI0NDA4ODE0ODE0Cis6MTA4NEUwMDAyMDQwMEIxNDAyMDQ4MEIxMzgyQzQ4MDgxMjgyODIwMTBCCis6MTA4NEYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCMTAwMjI0MDJDCis6MTA4NTAwMDAwODkyMDJFNDAwQjkwMjI2NTg0QTkwMDJFNDA4OTk0MDExCis6MTA4NTEwMDAyNjQwMEI5MDAyNjQwOEI5MDEyQzQ4MDg5MDEyQzYwNDRBCis6MTA4NTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTgwMzI0MDY3Cis6MTA4NTMwMDAwODk4ODNFNDA0QjkwMTMwNDAwRDkwMEI2NDAyQzkwMDJGCis6MTA4NTQwMDAzMjQwMEY5MDAzMjQwMEY5MDAxRTU4MEM5MDAzQTgwNDM5Cis6MTA4NTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTIwM0M0MDQ5Cis6MTA4NTYwMDAwRjk4MDNBNDAwQjkwMDNFNDI4RTEwNEI4NDA0RjkwMDFBCis6MTA4NTcwMDAzRTQwOEY5MDAzRTQwMEU5MDAzRTQwMEY5MDAzQ0EwMEE0Cis6MTA4NTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAwMzIwOEExCis6MTA4NTkwMDAwRjg0ODNBMDA0QzgwNDNFMDA4MzgwMDEyMDAwQzAwMDMzCis6MTA4NUEwMDAzMjAwMEYwMDAzQTAwMEM4MDAzMjEwNEU4MDEzQ0EwNDJFCis6MTA4NUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTkwQTM4MDA1Cis6MTA4NUMwMDAwQkU0MDIyODAwQ0EwMDJGODA0QUEwMTNBODAwQUEwMENBCis6MTA4NUQwMDAzNjgxMEJBMDAyMjgwMDhBMDAyMjgwMDhBMDAzOEEwMEFFCis6MTA4NUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5M0MwMjBEMDhGCis6MTA4NUYwMDAwQjM0MDI4QzAwOEIwMDJDRjA4QjE4MDI0QzAwODMwMDkzCis6MTA4NjAwMDA2MEMwMEIzMDAyOEMwMjgzMDAyOEMxMEEzMDAyQ0EwMDBECis6MTA4NjEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDBCNDBCNjlDMDYzCis6MTA4NjIwMDAwOTU4MDYxRTgwOTcxMDJGQzI0ODcwODI5QzgwQTcwOEE4Cis6MTA4NjMwMDAyNUNDMEI3MDAyMUU4MTg3QTJBQkM0MDg3MzAyRTgwMDMwCis6MTA4NjQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMTBEQzg0MjFFMDhCCis6MTA4NjUwMDAwRjc4NDI5RjAyQzc4ODNERTAyRjcxMDM0RTAwQ0Y4MDA0Cis6MTA4NjYwMDAyMUUyMEY3ODgzOUU0OUNGRDAzOUU4MEU3ODAzRUEwMkUxCis6MTA4NjcwMDAwMDAwMDAwMDAwMDAwMDAwMDg0REFDNDBDQTAwMzYwMEI5Cis6MTA4NjgwMDA4RjMwMjNFQ0E4RUI0MDNDQzAwRjk2NDNFRDgwRkIwMEZECis6MTA4NjkwMDAzRUQ4OEZCMTQzRUQ4MEZCMjAzNkNBMEZCMEEzODIwNkNGCis6MTA4NkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFODBGQzgwMzFFMDVBCis6MTA4NkIwMDAwNUFBMTBGRTQ0RkY5MDNGRTFDRkY5MTczRjIwRDc4MDc1Cis6MTA4NkMwMDA4QkU0MEZGODAzM0UzMEZGODAzN0UwMEZGODAwNDAwMEU2Cis6MTA4NkQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRDEwMjFDMDI3Cis6MTA4NkUwMDAwODRBMDJEQ0MwQjcwMDJEQzIwQ0QzMDIxQzgwODcwMEYwCis6MTA4NkYwMDAyOUMwNEI3MjAyMUMwMEI3MDEyMUMwMEJGMDEyMkEwNEUyCis6MTA4NzAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDOTAzNDAwMjE4MDA4Cis6MTA4NzEwMDAwOTcwMDA1QzBDQjcwMDJEQzQwODUwMUEwQzAwOTcwMEJCCis6MTA4NzIwMDAyMUMwNEIzMDAyMUMwMEI3MDAyNUMwMEI3MDAyNDAwMDc2Cis6MTA4NzMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCMDAwNjAwMDA5Cis6MTA4NzQwMDAwODNFMDJDQzAwQjMwMjBDRTAyQkIwMDIwQzAwOTMwMEY4Cis6MTA4NzUwMDAyOEMwMEJCMDAyMkMxMEIzMDAyMEQ2MDMzMDAyMDgwNDRFCis6MTA4NzYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGQjAwQjIwMEIzCis6MTA4NzcwMDAwNUJFMDM3QzAwRkYwMDNFMjAwQ0IwMDMzQzAwRDk4MDA2Cis6MTA4NzgwMDAzM0MwOEJGMDAzM0MwMEZGMDAzN0UwMEZGMDAzNkEwNEI2Cis6MTA4NzkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjA0M0UwMEQwCis6MTA4N0EwMDAwRkE0MjNDQzAwRkIwMDNFODEwODkwMDNFQzAwRTkxNEU5Cis6MTA4N0IwMDAzRUMwMEZCMDAzRUMxMEZCMDAzRUMwMEZCMDAzRTAwMDYyCis6MTA4N0MwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwMzc4MEI2Cis6MTA4N0QwMDAwRkZBMDNGQzAwQ0YwMDNGOTAwNkRDMjMzQzAwRkQxMEE1Cis6MTA4N0UwMDAzM0MwMEZGMDBCM0MwMDQzMDAzM0MwMEZGMDAzQzA0NDE0Cis6MTA4N0YwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDZDMDlCQjE5MjIzMjJCCis6MTA4ODAwMDAwQkJFMDM2QzAwOEIwMDJDOTAwREI4MDJBQzAwQjEwMEM1Cis6MTA4ODEwMDBGMkMwMEJCMDEyQUMwMDhCMDAyMkMwMEJCMDAzQTA0MDIyCis6MTA4ODIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMTBCMzAwMjYyMDdFCis6MTA4ODMwMDAwQjkwMTJFQzAxOEIwMDJBQzIwQTkwMDIyQzAwQkIwMEE0Cis6MTA4ODQwMDBBMkMwMEJCMDAyMkMwMEFCMDAyQUMwMEJCMDAyRTAwMEFCCis6MTA4ODUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDFCMzAwMjAwMEVDCis6MTA4ODYwMDAwQjAwMDI4QzAwODMwMDJFQzAwQjM0MDI4QzAwQkIwMDc2Cis6MTA4ODcwMDAyMEMwMEIzMDAyMEQwMEEzMDBBMEMwMEIzMDAyODIwMTBCCis6MTA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBCQjA0MzY4MEZBCis6MTA4ODkwMDAwRkIyMDJGQzAyQ0YwMjM4QzAwRUYwMDMzQzAwRkIwMDE2Cis6MTA4OEEwMDAyM0MwMEZGMDAzM0QwMkVGMDAzM0MwMEZGMDQzQzAwM0JECis6MTA4OEIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0YwMDcxCis6MTA4OEMwMDAwRkY0MjM3QzAwRkYwMDNGQzAwREQwMDNGQzAwRkYwMDJECis6MTA4OEQwMDAzQkMwMEZGMDAzRkM4OERGMDAzRkMwMEZGMDAzQTgwNjg5Cis6MTA4OEUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwNTBDRTEyMzNEMDMwCis6MTA4OEYwMDA0Qzg2ODMzMDgwNUY2ODMzQzQwRkYzODMzQ0MwQ0MzODMwCis6MTA4OTAwMDBCMzA4MENDNjAzRjFBMEZGMDAzMzI0MENDMjAzRjAwMDJGCis6MTA4OTEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDODBEMjIwMjNEOEZFCis6MTA4OTIwMDAwRDk2MDI4ODYwQUY0MDIzREMwQkY2MDIzQ0MyODg2MEUzCis6MTA4OTMwMDAyMjUyMDg5MTIyRTEwMEI3MjRBMjQ4OEE4NDgyNjAwNDZFCis6MTA4OTQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0MDA4MTAwRTBDNDgxCis6MTA4OTUwMDAwQTAwMDIwNDgwQTMyMEE4QzAxQjMwMEEwQzAwQTAwMDVCCis6MTA4OTYwMDAyODBDMDkwMjAyQzQ4MEIzMUMyMjA4MTkwMzAyRTIxMTc4Cis6MTA4OTcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE0MDA5OTgwNjJDMEQzCis6MTA4OTgwMDAwQkEwMzJBNDUxQUIwMDJBQzA4QkIwMDAwQzAwQTlDMEQwCis6MTA4OTkwMDAyQTIxMDhCODIyRTIwMEJCMDAyMjg0MUJBODQyNzAwNEVFCis6MTA4OUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUyMDBDQkM5MzJDMEFBCis6MTA4OUIwMDAwRThCMTMyMjEwREIwMTMyQzAwRkIwMEIyQzAwNjg4MTJDCis6MTA4OUMwMDAzQTIyMkM4ODIzRTMwMEZCMDAzMDMwOEQ5QzgzRDAwNEI2Cis6MTA4OUQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJBNDBGNzA0M0VDMjUxCis6MTA4OUUwMDAwREQ4MjNEODAwN0IwMDM3QzAwRjcwMzNGQzEwRDIwMEE1Cis6MTA4OUYwMDAzNUMwOEZDMDAzRjQwMEY3MDIzRkUwMEU4MDAzRjgwMDlCCis6MTA4QTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDgxMjBDODA4MzBDMDU1Cis6MTA4QTEwMDAwQzAwODMyNDQwQzM4OTNBQzAwRUIwMEIyQzA4Qzk0ODBGCis6MTA4QTIwMDA3MjU0MEY5MTAzRUQwMkVCOEEzQTYyOEM4MDBCMTAwNEIyCis6MTA4QTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJCMDQ4ODQwQTNDMkVECis6MTA4QTQwMDAwMkFFMTIyNzQyOEY0NDIzQzIwQkY0MDIzRDAwMEE0MEJCCis6MTA4QTUwMDAyMkUwMEJCNTAyRUMyMDhGNDRBMjQwOERCRDIzMzIwMEYyCis6MTA4QTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ5NDA4MzgxMjRDMTZGCis6MTA4QTcwMDAwODI4MDIwMTAwOTMwMEEwRTgwQTMwODI4RjYwQjM5MEJBCis6MTA4QTgwMDA2MEI4MEIyODEyNEEwMDkzMDAyMDkwMDkyMDAyNzgwMDU5Cis6MTA4QTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDI4N0E4MjVFMDExCis6MTA4QUEwMDAwQTdCMDIxQTA0ODc4MDIxRTQwQjc4ODI4RTAyOTY5MTU5Cis6MTA4QUIwMDAyMTIxMEI2OTQwREI0MDk3OTIyM0EwODk1ODgyMDgwMDRFCis6MTA4QUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODI1ODJDMzAwMzRDMEI4Cis6MTA4QUQwMDAwQzlCNDMwOEQwRDMyMDM4QzAwRUIwMDM4QzAwQjMwMEU5Cis6MTA4QUUwMDAyMDgwMDcxMDAzRTAwMEQzMTAzODE4MEQzMDAzNTIwMjI1Cis6MTA4QUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0MDA3RjIwMUJEMERCCis6MTA4QjAwMDAwRkYxMDNGODQwRUYwMDNGQzAwRkI0MDM3QzIwQ0YwNDA3Cis6MTA4QjEwMDBCRjQwMEZGMDAzRTQxMEVGMTgzREMwMEZFMDAzRDAwNjk0Cis6MTA4QjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDBFMzAwQjJDNEY3Cis6MTA4QjMwMDAwQ0EwMDMyNDAwREI2ODMyQzgwQ0I0MDNFQzgwQzg4MEFFCis6MTA4QjQwMDBCNkUwMENBMDAzMkUwMENCRTBCMjYwMENCODBCMkEwMEZDCis6MTA4QjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDI4NzAwQTFDOEJFCis6MTA4QjYwMDAwODcwMDIxQzA4OTcwMjIxRDQwODc0MDJEQ0MwMDcwMEI4Cis6MTA4QjcwMDAyMUMwODg3MDAyMTgwMDgzMDgyMUMwMDg1MDAyMTIwNDI2Cis6MTA4QjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMjBBRDgwMjlFMEQxCis6MTA4QjkwMDAwODU4MDIxRTAwOTdCMDIxRTgwODc4MDJERTEwMTU4MDAwCis6MTA4QkEwMDAyMUExMDg0ODAyNUUwMDg3QTQ2NUEwMDg3ODAyMzAwMDcxCis6MTA4QkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENGMTA4MTcwQThDMDAxCis6MTA4QkMwMDAzODMwMEEwRDAwOTMwMEEwQzEyODMwMDJDQzAyODM4OEZGCis6MTA4QkQwMDAyMEUwMzgzNDBBNEQ3MjgzMDAyNEU4MjgzNDgyMTIwNERECis6MTA4QkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBNDBFRUMwQkE4MDc2Cis6MTA4QkYwMDAwQ0UwMDMzOTEwREEwMDMyODAwQ0EwMDNFODAwREVDODc0Cis6MTA4QzAwMDAzM0EwMENFMDAzN0IwMENBMDAzN0IxMENFNDIzM0EwNDI0Cis6MTA4QzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMxMDBGODAwMzYwMEJECis6MTA4QzIwMDAwRjgwMDNDMDIwMzgwMDNFMDAwRjAwMDNFMDAwRjgwMjcwCis6MTA4QzMwMDAzQTI0MEY4MDgzQTAwMUY4MDQzQTA0MEQ4MDEzRDIwMDc3Cis6MTA4QzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0NDRDMTAwMzI0MDgxCis6MTA4QzUwMDAwQzkwMzIyNDBDQzEwNjM4NDAwRDkwMDkwNDAwRDkwMDU0Cis6MTA4QzYwMDAzRTQwMEYxODAzMjQwMEY5MDEzRTQwMEY5MDAzQzIwNDU4Cis6MTA4QzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDY4OTAwMkE1MEQzCis6MTA4QzgwMDAwODk0MEEyNDAwODk0MjIyNTAwQTkwMTIyNTAwODkwMDgzCis6MTA4QzkwMDAyRTUwMEI5QzBBMjUxMEI5MDAyRTUwMEI5MDAyRTAwMEJDCis6MTA4Q0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MjA4OTAwMjA0MjY4Cis6MTA4Q0IwMDAwODEwQzJBQzEwODkwODJBNDIwOTkwMDIyNDIwOTkwMEE5Cis6MTA4Q0MwMDAyRTQyMEFCMTgyMkMyMEI5MDA2RTQyMEI5MDAyQzYwMERGCis6MTA4Q0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MzAwMjg0ODUxCis6MTA4Q0UwMDAwODEyNjI4QzgwODEwMDIwNDAwMjEwMDI4NDgwODEyMDYyCis6MTA4Q0YwMDAyQzQ5MEIxMjA2MDQ4NEIzMDI2QzQwMEIxMjAyQzIwMTExCis6MTA4RDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDQxRTBDODc4MzAxNEY5Cis6MTA4RDEwMDA0QzA1MTNBMTQyQzA3ODM4MUUwRDg3ODMwMTQwRDA1MDA2Cis6MTA4RDIwMDAzQzE0MEUwNTAzMDE0MEY4NzgzQzE0MEYwNTAzRUUwM0Q0Cis6MTA4RDMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREZDMDBGRjAwMEU0NEUxCis6MTA4RDQwMDAyRkYxMDM3NDQwRjkwMDNFNDAwRDkwMDM2NDQwRkQxMDg0Cis6MTA4RDUwMDAzRjQ0MEZEMTAxRjQ0MEY5MDEzRkMwMEZEMTAzRTYwNkIzCis6MTA4RDYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjJFOTg4QjI0MDBCCis6MTA4RDcwMDAwRjkwMDMyNDE2Qzk4QzM2N0I4RjlDODNBNzkwQzkwMDYzCis6MTA4RDgwMDAzRTUwMDQ5NDEzMjQ1MEM5RTAzRTUwMEY5MDAzMDYwMDU3Cis6MTA4RDkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUyODA4OEEwMjIyODQ3Cis6MTA4REEwMDAwQjhBMDIyQTgwODhBNDIyMzAwODhFMEEyMjAyODhBMDE4Cis6MTA4REIwMDAyRTI4ODhBQTEyMjI5MDg4RjQyRTIwMEJDODAyMEUwNEI2Cis6MTA4REMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUQ0MjBBNTA4MjE0MjYyCis6MTA4REQwMDAwQjUwODIxNDMxODUwODI1NDAwQTUwMjI5NDQwODUwOEEyCis6MTA4REUwMDA2RDQwMDg1MDAyNTQwMjk1MDAyRDQ4MEI1MDgyNDIwMUZDCis6MTA4REYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNTg0MDA4RDEwMjM0MDUyCis6MTA4RTAwMDAwQkQwMDAzNDAxOEQwMDIzNDE1OEQwMDIzNDAwOEQwODZFCis6MTA4RTEwMDAyRjUwMDhEMjAyNzQ4MDlEMDAyRjQ4MEJEQzAyNDYwNEJDCis6MTA4RTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU3NDBFOUMwMzI0MEVCCis6MTA4RTMwMDAwRjkwMDkyNjAwQzkwNDM2NDAxRjkwMjNBNDA4Qzk0MDlBCis6MTA4RTQwMDAzRTQwMEM5NDBCNjQyMEQ5MDIzRTQxMEY5NDAzNjgwNDA5Cis6MTA4RTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTgwM0U0MERFCis6MTA4RTYwMDAwRjE0MDNDNTA4RjkwMDNFNDAxRjkwMjNFNDAwRjkwMEU5Cis6MTA4RTcwMDAzQzQwQUY5ODAzODYwMEU5MDAzRTQwMEYxMDBCOEEwMDhCCis6MTA4RTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEIwMDBEQzQwQjMwMENCCis6MTA4RTkwMDAwRkMwMDMzMTAyQzQwNEIxMDAzQzQwMDMxMDAwRkM0MDg5Cis6MTA4RUEwMDAzMzAwMENDNDAzQjEwMENDMDBCMzAwMENDNDAzQ0EwNEVCCis6MTA4RUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4QTgwMjJBMDcxCis6MTA4RUMwMDAwQkEwMDIyQTAwOEE4NDIyQTEwOEEwMDIyODA4QkEwMTY1Cis6MTA4RUQwMDAyMjgwMDhBMDJCMjgwMDhBODAyQTgwMDhFMDAyQ0EwMDhECis6MTA4RUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDI5QjgxMjBFMEFCCis6MTA4RUYwMDA4QjM4MDZDRTAwOTM4MDIwQzAwODM4MDIwQzAwQjM4MDY3Cis6MTA4RjAwMDA2Q0UwMEFCMDAyNEMwMDkzMDAyMEUwMDgzMDAyQ0EwMDc2Cis6MTA4RjEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTEwMDQ4MDA4MjEwMkExCis6MTA4RjIwMDA0QjQ0MDZEMDIwOTAwODIxMDI4MDQ0MDIxMDAwQjRDMEI3Cis6MTA4RjMwMDAyRDEwNDg0MDAyMDAwMDk0ODkyOTMwMDg0MDAyRTgwMEMyCis6MTA4RjQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODMyMDBENjgwMzFBMEQ4Cis6MTA4RjUwMDAwRkU4MEJDQTAwRDY4MDIzQTAwNEY4MEIxQTAwRkY4MDhDCis6MTA4RjYwMDBCRkEwMkVDODEzREEwMjVFODA3M0EwMkM3ODAzRUEwMjM5Cis6MTA4RjcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGOTAwM0U0MEE5Cis6MTA4RjgwMDAwRjkwMDMyNDAwRTkwMDNFNDAwRTgwMDNFNDAwRjgwMDQ3Cis6MTA4RjkwMDAzMjQwMEZCMDAzRTQwMUU5MDQzNjQwMEY4MDAzQzIwNkZCCis6MTA4RkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDRDgwMzM2MDdFCis6MTA4RkIwMDAwQ0Q4NDMzNjAwQ0Q4MDMzNjAwQ0Q5MjNCRTAwNEQ4MEUxCis6MTA4RkMwMDAzMzYwMDhGODBCM0UwMEZEODQzRjYwMEZGOTAzQzAwMERBCis6MTA4RkQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTkwMDRERTAwMjM4MDUzCis6MTA4RkUwMDAwODYwMDJCODIwOEUwNDIzODAwODY4MDIxMDAwOEUyMERBCis6MTA4RkYwMDAyMzgyMDg0MDAyMTIwMEY2MDAyRDgwMEI0MUEwRUEwNEYzCis6MTA5MDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDkwMDA4NDAwMjEwMENCCis6MTA5MDEwMDAwODQxMDI1MDQwOTQwMDIxMDAwQTUyMDJEODAwODUwMjAzCis6MTA5MDIwMDAyNTA0MDg0MDIyMTgwOEI0MDAyRDEwMEI3ODQwQzAwMDE5Cis6MTA5MDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEVFMjI5MzAwMjBDMDU5Cis6MTA5MDQwMDAwODM4MDJFQzAwOTMwMDIwQzEyQTIwMDI2NDAyODIxMDNBCis6MTA5MDUwMDAyNEYwMEEzQzQyMjQyOEIzMDAyQ0UwMEI4ODgyQzgwNDg4Cis6MTA5MDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFEMDBDQjAwQjJDMDI5Cis6MTA5MDcwMDBBQ0JFMDM2RTAyREIwMEIyQzAxRUEwMDNFNDAwQ0ExMTQ2Cis6MTA5MDgwMDBCNkQwQUNCQzAzMjQwMEZCMDAzRUMwQ0Y4NDAzRUEwNDhFCis6MTA5MDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEUwNDBGODAwM0MwMDlDCis6MTA5MEEwMDAyRjgyMDNBMDAwRTgwMDNFMDAxRDkwMTNBODAwRjkwMEU1Cis6MTA5MEIwMDAzQTAwODE4MzQzRTgwMEU4MDMzRTA0MEZCMDAzRTAwMDc4Cis6MTA5MEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEUwMDBENjAwMzc4MEYyCis6MTA5MEQwMDAwQ0EwMDNGODAwQ0UwMDMzODAwREEwMTMyMDA4Q0UwMEIyCis6MTA5MEUwMDAzMzgyMEM0MDczMzAxOENFMDAxRjgwNEZDMTQzMDA0NEMwCis6MTA5MEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDdDMDA4RDAwMjM0MDRGCis6MTA5MTAwMDAwQUQwMDJGNDAwOEQwMDIzNDAwOEQ0ODAzRTQyOEQ0MEY2Cis6MTA5MTEwMDAyMzQwMDhGMDAyM0U0MDhEMDAwRjQwMEJGNDAyMjA0MDM3Cis6MTA5MTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA5OTAwQTY0MEZGCis6MTA5MTMwMDAwODkwMDZFNDAwOTEwMDIwNDA4ODAwMDIyNDA4ODA0MDQ2Cis6MTA5MTQwMDAyMDQwMEFCMDAyMjQwMDg5MDAwRTQwMEI4NDAyMjAwMDU3Cis6MTA5MTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4MjAwMjA4MEExCis6MTA5MTYwMDAwQTIxMDZDODAxODIwMDIwODAwODMyODIwODA4ODMwMDk0Cis6MTA5MTcwMDA2MDgwMEEwMDEyMDg4MDgyMDAyQzgwMEIzMDBBMDIwMUY1Cis6MTA5MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYwMDBEODAwMzYwMDY0Cis6MTA5MTkwMDAwQzg0MjNFMDAwQzgwMDMyMDAwRDgyMEIyMDAyQzgwMEJFCis6MTA5MUEwMDAzMjAwMEUwMDAzMjAwMkM4MDAzRTAwMEY4MDAzMDAwM0JGCis6MTA5MUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBCRjAwM0ZDMEU4Cis6MTA5MUMwMDAwRkYwMDNGQzAwRkYwMEJGQzA4RkIwMDNGQzA4RkYwMkRDCis6MTA5MUQwMDAzRkMwMERGMDAzRUQwMEZGMDIzRkMwMEZGMDAzRTgwNkIzCis6MTA5MUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwMUYwOENGRjAwM0Q2MDM2Cis6MTA5MUYwMDAyQ0IyODM3QzkwREYzODMxRTAwRkY4MDMzQzAwRkYyMDc1Cis6MTA5MjAwMDAzRkM0MEVGNDAzN0MwMEY0ODAzMzAwMERGODAzRjAwMDNCCis6MTA5MjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUxMjBCQjYyMkU0MkMwCis6MTA5MjIwMDAyOEY0NDIzRTQwOEY0NDIyRTAwQkIwODM3RjQ0QkZDMTBDCis6MTA5MjMwMDAyRERDMkFGNjAyM0Y0NUI4ODAyMjYxODhCODAyRTAwNDlFCis6MTA5MjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM1ODBCMjE4MkVDODVDCis6MTA5MjUwMDAyOTMwMzIwQzA4QjMyMDIwQzA0QjkyMDIwQzAwQjM0MERFCis6MTA5MjYwMDAyQ0MwODkzNDEyNEMwMEIwMDAyNEMxNDkzMDAyRTIwMTA0Cis6MTA5MjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUE0MDBCQTBDMkVFMDM1Cis6MTA5MjgwMDBBOUIwMDYyQzAwOEIwMEEyQzAwQjkwMDA2QzAwQkIwMEE0Cis6MTA5MjkwMDAyRUMwMEIzMDAyNkMwMEJBODAyNkYwMDhCMDAyRjAwNDM5Cis6MTA5MkEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUVFMDBGQkM0M0U3OEFBCis6MTA5MkIwMDAyREIwMDM2QzA4RkIwMDMyQzA4QjI0ODMyQzAwRkIwMDE0Cis6MTA5MkMwMDAzRUMwOEZCMDBCNkMwOEIyRTAxNjYwOERCMDIzRDAwNEE2Cis6MTA5MkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJFOThGRjQwM0ZDMEE5Cis6MTA5MkUwMDAwRTcwMDNEQzAwRkYwMDNGQzAwRkUwMDNGQzAwRkYwMDM2Cis6MTA5MkYwMDAzRkMwMEVGMDAzQUMwMEZFMDBCOUMwMEZGMDAzRjgwMDUxCis6MTA5MzAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFEMDBGQTQwM0VEMEI4Cis6MTA5MzEwMDAwRUIyMDNFQzAwQzMwMDNFQzAwQ0EwMDMyQzAxRkIwMDA2Cis6MTA5MzIwMDAzQ0MwMEVCODAzRUMwMERBMDAzQUQwNEZCMDIzRDAwNEIyCis6MTA5MzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQTAwMkNDMDZFCis6MTA5MzQwMDAwOEY0MDdCQzE0REYwMDNFQzAxQUEwNTJCQzAwQkYwNEUyCis6MTA5MzUwMDAzRkMwOEFGMDAzQkMwMEZBMDAyMkM4MEZCMDAzRjIwMDNECis6MTA5MzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ4MDFCMTAwNkNDMkIwCis6MTA5MzcwMDAwQTMwNDJDQzAwODMwNTJDQzAwODMwMDI4QzAxQjMwNEIzCis6MTA5MzgwMDAyQ0MwMEEzMDIyOEMwMDgwODAyOEMwMEIzMDIyRjgwMENDCis6MTA5MzkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDhCNzgwNkZFMEIwCis6MTA5M0EwMDAxODc4MDI4RTQwQjc4MDJERTAwQTc4MDI5RTAwQjc4MEMwCis6MTA5M0IwMDAyOUUxMEE3ODAyOUUwMUJDODAyOUU0MEI3ODAyQzgwMEVBCis6MTA5M0MwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA5NDBGMTIwM0NDNEIzCis6MTA5M0QwMDAwRTM5MDJDQzAwQzMwMDJDQzQwODkyMDM4Qzg4QjMxMDUxCis6MTA5M0UwMDAyQ0M0MEVCMDA3OEMwMEMyMDgzOEMwMEYzMDQzRDIwMjI0Cis6MTA5M0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMTBGQzAwN0ZDMDA5Cis6MTA5NDAwMDAwRkYwODNGQzIxREYwODNCQzA4RjkwMDFGQzIxRkYwQzkzCis6MTA5NDEwMDAzRkMyMEZGMTAzRUMwMEVGMDA3N0MwMUVGMDAzOTAwNjhGCis6MTA5NDIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDFGOTAwMzJDMDVCCis6MTA5NDMwMDAwRkIyMDNFRTkwREJFMTNBQzA0RDM4MTMyRDMwRkIwMDQ0Cis6MTA5NDQwMDAzRUUwNEZCQTQzMkM0MEZBMDAzRkMwOENCMDAzRUEwMDI0Cis6MTA5NDUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCMTAwMjFDMDE1Cis6MTA5NDYwMDAwQjcxMDJDQzIwQTcyODIxQzAwQjcwMTM1QzA4QjcxMDI5Cis6MTA5NDcwMDAyREM0NEIzNDgzMUNDMUI3MDIyREMwMUE3MDAyRDIwNDE0Cis6MTA5NDgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMjBCNEM0MjVBMkMzCis6MTA5NDkwMDAwQjc4MDZERTAwODM4MDI5RTAxQkY4MDI1RTgwQTdBMDFGCis6MTA5NEEwMDAyREM4MEE3MjAyMUUwMEE2ODAyOEUwMDg3ODAyRjAwMDhCCis6MTA5NEIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVEMDBCMzQwMjRDMzY5Cis6MTA5NEMwMDAwQjMwNDJDQzAwQTMwMDIwQzAxQjM0MDI0QzAwQjMwMDgwCis6MTA5NEQwMDAyQ0MwNEIzMDAyMEMwMEIzODgyQ0Q0MEEzMDAyRDIwNENBCis6MTA5NEUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4MDBGRTQwQjdBMDAyCis6MTA5NEYwMDAwRkEwMDNFODAwREEwMDNBODAwRkUyMDM2ODAwRkEwMEU4Cis6MTA5NTAwMDAzRTgwMEZBMDBCMjgwMEVFRTAzRkIwMDRBMDAzRkEwNDU5Cis6MTA5NTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDRGMDA4M0ExMDdECis6MTA5NTIwMDAwRjg0MDNFMDEwRjgwMDNFMDA0RjgwODNFMDAwRjgwMDU1Cis6MTA5NTMwMDAzQzAwMEY4MDAzODAwMEY4NDAzRTA5MEY4MDAzRDIwMEZBCis6MTA5NTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MjBFOTAwMzI0NDcwCis6MTA5NTUwMDAwQzkwMDMyNDAwRjkwMDNFNDAwRjkwMTNFNDAwQjkwMDgyCis6MTA5NTYwMDAxRTQwMEMxMDAzMjQwMEM5QTAzQzY0MEM5MDAzODIwNDJDCis6MTA5NTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTAwMjI2OEMwCis6MTA5NTgwMDAwODEzMDIyNDA4RjkwMDJFNDgxQjkwMDJFNDAwQjkwMEQ5Cis6MTA5NTkwMDAzRTQwMEM5MDAyMjQwOEY5NDAyRTYwMEE5MDA2RTAwMDNDCis6MTA5NUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBBOTAwMjA0MDY1Cis6MTA5NUIwMDAwODkwMDIyNDAwQjkwMTJFNDAwQjkwMDJFNDAwQjkwMDhCCis6MTA5NUMwMDAyRTQwMDg5MjIyMjQwMDg5MDAyRTQwMDg5MDAyQzYwMEY2Cis6MTA5NUQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODA4MTIxRTA1MEU5Cis6MTA5NUUwMDAyODE2MEEwNDgwQTE0MDJDNDA0QjE0MjJDNDAwQjEwMDZDCis6MTA5NUYwMDAyQzUwMDkxNDAyMDQwNEIxMDAyQzQwMEExMDAyQzIwMUNDCis6MTA5NjAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBFODUwMzIwMDhBCis6MTA5NjEwMDA4QzgwMDIyMDAwQjgwMDNFMDAwQjgwMzNFMDEwRjgwMDgwCis6MTA5NjIwMDAzRTAwMEM4MDAzMjAwOENBMDAzRTAwMEM4MDAzQUUwM0ZECis6MTA5NjMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREZDNDBGRDEwMkY0MTZDCis6MTA5NjQwMDA0RjkxMDNFNDQwRjk0MDNFNDA0RkQwNjNFNTAwRjk0MEJDCis6MTA5NjUwMDAzQTUwMkU5NDAzNjUwMEVEMDAzRjUwMEY5MDAzRTYwNjRDCis6MTA5NjYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUU2MDBGOUUwMzM1MDFCCis6MTA5NjcwMDAwQ0RBMDNBNjAwRDk4MDNGNDAwRjkxMDNBNjAwRjk4OEI5Cis6MTA5NjgwMDAzRTY4MENERTAzNjYwMEVEMDAzQjY5MEM5MDAzQzYwMEVCCis6MTA5NjkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDhCOEUwMjAyMDUxCis6MTA5NkEwMDAxODhFMjZFMTAwODBBMDJFMDA0Qjg4NDJFMTUwQjg0MDgxCis6MTA5NkIwMDAyRTJBMEQwQTAyMjAwOEI4MDAyRTE0MEQ4MDAyQ0UwNEI2Cis6MTA5NkMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1MDBCMTYwMjA0MDI3Cis6MTA5NkQwMDAwODMxQTJDNTAwOTE0ODJDNDAxQjEyMDI4NDAwQjEwMDQxCis6MTA5NkUwMDAyQzUwMDkxNjAyMDUwMEEzMDQyODQwMDgxMDAyQzIwMUVDCis6MTA5NkYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUE0MDBCOTA4MjA3MEU4Cis6MTA5NzAwMDAyODkwMDJFNDAwODkwMDJFNDAwQjkwMDJFNDA4QjkwMzdGCis6MTA5NzEwMDAyQzQwMjk5MDAyNjQwMEI5MDAyRTYyMDk5MDAyQzYwNDEwCis6MTA5NzIwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU1MDBGOUQwQjI3MDY0Cis6MTA5NzMwMDAwODkwMDNFNDAwRDkwNDNFNDAwRjkwMDNBNDEwRjkwMkZFCis6MTA5NzQwMDAzRTQwMEQ5MDJCNjQwMEU5OEQzQTYwMEM5MDAzRTgwNEQ0Cis6MTA5NzUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTgwM0U0MkQzCis6MTA5NzYwMDAwRjkwMDNFNDAwRjkwMDNFNDAwRjlBMDNFNDAwRjkwMDczCis6MTA5NzcwMDAzRTQwMkYxMDAzQTQwMEY5MjIzQzQwNEY5MDAzQ0EwMDQyCis6MTA5NzgwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEEwMDBGMDQwMzIwMDRGCis6MTA5NzkwMDAwQzgwMDNDMDAwRjgwMDMyMjAxRjgwMDNFMDAwQzgwMEU2Cis6MTA5N0EwMDAzMjAwMEM4MDAyMjAwMEM4QzAzRTAwMEM4MDAzQ0EwNEI2Cis6MTA5N0IwMDAyMDAwMDAwMDAwMDAwMDAwMjgxNTI4MTBCQTAwMjNBMDk3Cis6MTA5N0MwMDAwQUU0MDJFODAwQkEwMDJCQTEwQkEwMDJFODAwQUEwMEZDCis6MTA5N0QwMDAyQTgxMEFBMDAzRTgwOERFMDAyRTgwMEFBMDAyQ0EwMDNGCis6MTA5N0UwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzA0QTBCMUI4Cis6MTA5N0YwMDAwODM2MjJDQzAwQjMwMDIwRTQwQjMwMDJDQzAwODMwMEZBCis6MTA5ODAwMDAyMEMwMDgxODAyMEMwMDkxMDEyQ0MwMDgzMDA2Q0EwMEM0Cis6MTA5ODEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDQzhCMzIxMjFDMkJDCis6MTA5ODIwMDAyQTcwMDJEQzAwQjdBMDI5QzAwQjcyMDJDRTAwQTc4MTBCCis6MTA5ODMwMDAyOUMwNEE3NDAyRkUwMDk3MDEyQ0MwMEE3MDEyRTgwMDg5Cis6MTA5ODQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFODBGN0MwMzFFMEMyCis6MTA5ODUwMDAwQzQ4MDNERTExRjc4MDIxRTAwQjdBMDNERTAwQzM4MEExCis6MTA5ODYwMDAzM0Q4NkM3ODAzM0UwMEQ2ODAzREUwMEM3ODAzRUEwMkUyCis6MTA5ODcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwREFDMDhGQjgwM0VDMEE2Cis6MTA5ODgwMDAwRkQwMDNFQzA0RkIzQzNFQzAwRkI2MDc2QzAxRkIwMDlECis6MTA5ODkwMDAzRUQwMEY5NDA3RUMwMUVBMDAzRUMwMEZCMDAzQzIwNkIxCis6MTA5OEEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMUZFMDBDRkE0M0I2MDRCCis6MTA5OEIwMDAwOEQ5MDM3RTAwQ0Y4MDNGMjU0RkZDODdCRTAwQ0Y4MEI0Cis6MTA5OEMwMDA3RkZDMENGQzAzN0MwMEY2OTAzM0UwMEZGODAzQzAwMDMzCis6MTA5OEQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDg4RjI4MjE0MEEzCis6MTA5OEUwMDAwOEQwMDIxQzQwQTcyMDMxMDQxQjc4MDJEQzgwRDcwMDdFCis6MTA5OEYwMDAyRkM0MUFEMDAyMUU0OEI2MDA2MUMwMEI3MDA2RUEwNERECis6MTA5OTAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDhDMDA4NzMwNjk0NDA3Cis6MTA5OTEwMDAwODUwMjIwQzAwODcwMTJENDQ4QjcwMDY4QzEwODcwMEE0Cis6MTA5OTIwMDAyOUM5MDg1MDAyMUM0NEE2MDA2MUMwMEI3MDAyQzAwMDg3Cis6MTA5OTMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENEMDA4Mzg4NjA0MDVCCis6MTA5OTQwMDAwMDEwMDI0QzAwMkIwMDJDNDExQjMwMDJDQzAwOTMwMDc1Cis6MTA5OTUwMDAyQ0MwMEEzMDQyMEMwMEIyNDAyMEYxMEIzMDAyQzgwNDg3Cis6MTA5OTYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJENDFDRkMwQkFGMEQzCis6MTA5OTcwMDAyODkwMUI2QzA4Q0YwMDJDQzAwRkYwMDNBQzAwOEIwMEFDCis6MTA5OTgwMDAzRkMwNkNCMDRCMkMwMUZCNDAyMkM4MEZCMDAzRUEwNDZGCis6MTA5OTkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDRGQjA0M0ZENEU1Cis6MTA5OUEwMDAwRjEwMDNBQzAwRkIwMDMyQzA1RkIwMDNFQzAwRkIwNEZGCis6MTA5OUIwMDAzRUMwNEYxMDEzRUMwMEZCODgzRUMwNEZCMDAzRTAwMEU4Cis6MTA5OUMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDNzAwMzM2MjFFCis6MTA5OUQwMDAwQ0MwMEIzQzAwRUYwMDMzRTAxQ0YwMTMzQzA4RjcwMDE4Cis6MTA5OUUwMDAzMUMwMEVEODAzQkMwMEZFMDAzREM2MENGMDAzQzA0NERECis6MTA5OUYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDBDQjAzMjI0NzBGCis6MTA5QTAwMDAwODk4NDIyQzAwOUIwMDJBQzAwQUIwMDIyQzAwQkIwNDFDCis6MTA5QTEwMDAyQUMwMEFCMDAyQUMwOEZBMDAyRTYwMDhCMDAyRTA0MDhBCis6MTA5QTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA5QjAwMjA0MDdBCis6MTA5QTMwMDAwODk4MDIyQzAwQkIwMDIyODgwODMwMDIyQzAwQkIwMEQyCis6MTA5QTQwMDAyMkMwOEE5MjAyQUMwMEFBODAyRUMwMDhCMDA2RTAwMEI0Cis6MTA5QTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzAwQTA0MDRCCis6MTA5QTYwMDAwODEwMDIwQzAwQjMwMDI4ODAwQTMyMTIwQzAwQjMwNDY0Cis6MTA5QTcwMDAyOEMwMEEzMDIyOEMyMEIyMDAyQ0MwMDgzMDAyQzIwMTVCCis6MTA5QTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDJDQjAwMzA0MDIwCis6MTA5QTkwMDAxQzk0MDMyQzAwRUYwMDMyQzA4OEYwOEIyQzAwRkIwMERDCis6MTA5QUEwMDAzM0MwQUVGMDAzQUM4MEVBMDEzRUMwMkNCMDAzQzAwMzZCCis6MTA5QUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwMkY0MDJGCis6MTA5QUMwMDAwN0QyODNGQzAwREYwNDNGQzAwRkIwMDNGQzAwRkYwMDlGCis6MTA5QUQwMDAzRkMwMEZEMDBCRUMwMEVFMDAzRjQwMEZGMDAzRTgwNjU0Cis6MTA5QUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY1MDBDRjA4M0Y0OEVFCis6MTA5QUYwMDAwRkMzOTM3MEQwREMzMDNGRDgwQ0IyMDMzQ0MwRkY0MEEyCis6MTA5QjAwMDAzM0M0MkNGMTAzNjI1MEZDMzQzMzAwMEY1QzAzRjAwMENCCis6MTA5QjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEM0ODA4QjAwMkY1QUVECis6MTA5QjIwMDAwQkE2MTIyMUMwODk3MDJGREMwOEYyQzIzREQwQkY0MEM1Cis6MTA5QjMwMDAzN0RDODhGNTBBMjA4MEU4MTAyQTE2MEI5MDAyRTAwNDMyCis6MTA5QjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUMwMDA4MzA4MkM0NDlECis6MTA5QjUwMDAwQjAyMDIwQzAwODAwMDJDQzgwODMzNDI4QzkwQjMzMEZBCis6MTA5QjYwMDAyOEM4NEEzMjEyODAwQ0IwQTAyODI4MEIxMjAyRTIwMTQ5Cis6MTA5QjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUEyMDA4QjAwMkU0OEZECis6MTA5QjgwMDAwQkEwMjIyMDIwODg4MDJFQzAyOEIwMEFBQzAwQkIwMDg5Cis6MTA5QjkwMDAyRUMwMEFCMDAyQTAwMEFCODIyQUEwMEJCMjAyRjAwNEQxCis6MTA5QkEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUU3MDBDQjAwM0VDMDUwCis6MTA5QkIwMDBDRjlDMEIyMTAwRDg4ODNFQzAwQ0IwMDNBQzAwRkIwMDRBCis6MTA5QkMwMDAzQUMwMEVCMDQzRTg0MEY4ODAzQTYwMEY5ODAzRDAwNEUyCis6MTA5QkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDBGRjAwMEZFMDkyCis6MTA5QkUwMDAwN0ExMDNFODAyRkIwMDNGQzAwRjcwMjM3QzAwRkYwMkM3Cis6MTA5QkYwMDAzNUMwNERCMDAzNzQyMEZDMDEzRjAwMEZGODAzRjgwMDlFCis6MTA5QzAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE1MDBDQjAwQkE0MDNBCis6MTA5QzEwMDAwQzE0MEIyRjIyQzk0MDMyQzA4RUIwMDNBQzAwRkIwMEU1Cis6MTA5QzIwMDAzRUMwMEVCMDAzRTQwMEM5MDAzMjAwMkM5MDAzMTAwNEMzCis6MTA5QzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTI0MDA4RjAwMjI0MDI2Cis6MTA5QzQwMDAyQ0E1NDIyOTAwOEIwNEEzQzEwREYwMEEzQzAwQkYwMEUzCis6MTA5QzUwMDAzRkMwMDhGMDAxNjkwMERBMDUyMkQwMDg5NDAzNzIwMEMxCis6MTA5QzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTYwNDA4MzAxMjBDMENCCis6MTA5QzcwMDAwOTAwMDIyMDAwODI2MDIyQzAwODMwNDI0QzEwQkIwMjYyCis6MTA5QzgwMDAyQ0MwMDhCMDEyMDUwMDlCMDAyMDgyMDkzMjAyMzgwMDY3Cis6MTA5QzkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2OTA4NzgwMjBFMEE2Cis6MTA5Q0EwMDAwODU4MDIxNjE0ODQ4MTIxRTAyOTM5MDI1RTAwQjc4MDI5Cis6MTA5Q0IwMDAyOEUwMDg3ODAyN0E4MDk2ODEyMUUwMDlGODAyNDgwMEJECis6MTA5Q0MwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDk4QjEwMzg0NERDCis6MTA5Q0QwMDA0RDI1MTIwQzAwQzIxMDIyQzgwQTM4MDNDQzAwRjMxMDI0Cis6MTA5Q0UwMDAyQ0MwMEMzMDAzOEFDMEQ5MTAzMjQwMkQxMDAzMTIwMjUwCis6MTA5Q0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDODBGRjAwM0Y0MDRECis6MTA5RDAwMDAwRkYwMDNGNDQwRUQwMDNGQzAwRUYzMDNCQzA0RkYwMDZFCis6MTA5RDEwMDAzRkMyMEZGMDBCRDQwMEZGMTBCRjgwMEVGMDAzRDAwNjNGCis6MTA5RDIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZBMDBDQjAyM0VDMDYxCis6MTA5RDMwMDAwRjkwMDNBMDAwQ0IwMDNBQ0EwQ0IzMTNBRjI0Q0I0ODVBCis6MTA5RDQwMDAxRUM4MEZCNjAzMkMwMEZBMDAzRUMwMEY5MDAzRUEwMEI1Cis6MTA5RDUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDg4NzIwMkRDNEZFCis6MTA5RDYwMDAwQjUwMTJEQzA0ODcwMDJDQzAwODcwQTIxRDAwQTc0MDE1Cis6MTA5RDcwMDAyNUNCOEI3NDgyMUMwMEI3MDAyREMxMEI3MDAyRDIwNDVFCis6MTA5RDgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMDE4NzkwMkRFMEY0Cis6MTA5RDkwMDAwQjc4MDJDRTAwODY4MDJERTQyOTdBMDI5RTgwODdBMDZGCis6MTA5REEwMDA2REU4MEI3ODAyMUUwMEI1ODAyRDYwMEI3ODAyRjAwMDg0Cis6MTA5REIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENEMDA4MzAyMkNFMEM5Cis6MTA5REMwMDAwQjMwMDJDQzAwODNFMDJDQzAwODMwMDIwQzAwQTMwMDUyCis6MTA5REQwMDAyNEMwMEJCMDAyMEUyMEIzMDgyQ0MwMEIzMDAyRDIwNEZBCis6MTA5REUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4ODJDQTAwM0VBODVDCis6MTA5REYwMDAwRkUwMDNGODAyOEU4MDNFODAwREEwNUJBODAwQ0EwMDMxCis6MTA5RTAwMDAzRTgwMEZBMDAzM0I4MEZFNDIyRjgwMEZBODAzRkEwNDgwCis6MTA5RTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMjBGODAwM0UwMDY0Cis6MTA5RTIwMDAwRjA2MDNDMDAwRjgxMTNFMDAwRjAwMDNFMDAwRjgwMDI5Cis6MTA5RTMwMDAzNjAwMEY4MDBCRTAwMEY4MDQzRTIwMEY4MTAzRDIwMEIzCis6MTA5RTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTAwM0U0MDZGCis6MTA5RTUwMDAwQzlBMDMyNDQwQzlDMDNFNDA0QzkwMDMyNDAwRjkwMEYyCis6MTA5RTYwMDAzNjQwMDc5MDAzMjQwMEM5MDQzMjYwMEY5MDAzQzIwNEY3Cis6MTA5RTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTAyMkU0MEExCis6MTA5RTgwMDAwQTkyMDIyNTAyODlFMDJFNDA5ODkwMDIyNDAwQjkwMDJGCis6MTA5RTkwMDAyMjQwMDk5MDAyMDQwMEQ5MDAyMjQ0MEI5QzAyRTAwMEY5Cis6MTA5RUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTJDMDBCOTAwMkM0MDM0Cis6MTA5RUIwMDAwODkwMDIyNDI4ODkwMDJDNDA2ODkwNDIyNDBDQjEwNEE4Cis6MTA5RUMwMDAyNjQwMEI5MDBBMkM4MDgxMDAyMjQwQ0I5MjgyQzYwMDUzCis6MTA5RUQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTIwMkM0OEVECis6MTA5RUUwMDAwQTEyMDIwNDgwODEyMTJDNEMwODExMDIwNDA4QjExMENFCis6MTA5RUYwMDAyMDRDMDkxMjAyMjQwMTkxMjBBMDQ4MEIxMDAyQzIwMTNCCis6MTA5RjAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDQxRTBGODUwM0UxNEQxCis6MTA5RjEwMDAwQzg1MDMyMTQwQzg1MDNFMTAwODA2ODMwMUYwRjg2ODA0Cis6MTA5RjIwMDAzNjEwMEYwNTAzMjk0MEM4NTAzMjk0MEY4NTAzRUUwMzA1Cis6MTA5RjMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0MDBGOTEwM0Y0NDlDCis6MTA5RjQwMDAwRkQxMEJGNDQwRkQxMjJFNEMwMzkyMEJFNDAwRjkyMENDCis6MTA5RjUwMDAzRTRDMEY5MTAzRkMwMEZEMTAzRjQ0MEZEMDAzRTYwNjdBCis6MTA5RjYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MjBDOTAxM0U0MDA2Cis6MTA5RjcwMDAwRkQwMDMzQzAwQkQwMDMyNjMwQzlFNDMyNzAwRTlDMEI0Cis6MTA5RjgwMDAzRTY4MEM5ODAzMzQwMEY5MTAzRjQwMEZEMDAzQzYwMDIwCis6MTA5RjkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEMyMjBEODAwMkUwMDIxCis6MTA5RkEwMDAwQjgwNTIyODA0QjgwMDIyMzgwODg4MDM2MjAwODhGMDI5Cis6MTA5RkIwMDAyRTNBNDg4RjBBMjAwMEIwODAyRTAwMEI4MDAyQ0UwNDdCCis6MTA5RkMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0ODA4MTAwMkM0MDIzCis6MTA5RkQwMDAwQjEwMDIwNDAwQjEwMDIwNDI0ODE0NDIwNTgwQTEyMDY5Cis6MTA5RkUwMDAyQzQ0MDgxMDgyMDQwMEIxMjAyQzQwMEIxMDAyQzIwMTQ2Cis6MTA5RkYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE1MDE5OTAwMkU0MDE3Cis6MTBBMDAwMDAwQjkwMDIyNDQwQkIwMTIyNDEwODkwMTIyNDAwQTkwMEI5Cis6MTBBMDEwMDAyQzQwMDgxMDQwMjQwOEI5NDA2RTUwMEI5MjAyQzYwNDMwCis6MTBBMDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU3MTRDOTA1M0U0MUQzCis6MTBBMDMwMDAwRjkwMEIyNDA0RjkwOEIyNDAyQzkwMEEyNDAwRTkwMDg4Cis6MTBBMDQwMDAzRTQwMkM5MDAzMjcwMEY5ODAzRTYwMEY5MDAzRTgwNDA3Cis6MTBBMDUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0ODhGOTAwM0U0OERDCis6MTBBMDYwMDAwRjk5MDNFNjAwRjkwMjNDNDBBRjEwMDNFNDEyRDkwNDUzCis6MTBBMDcwMDAzRTQwMEY5MDAzRTUwMEY5QzAzRTY0MEY5MDgzQ0EwMDk0Cis6MTBBMDgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExMDBDODAwM0UwMDkxCis6MTBBMDkwMDAwRjgwMDMyMTAwQzg0MEIyMDAwQzgwMDMyMDEwQzgwMENDCis6MTBBMEEwMDAzMjAwMEM4MDAzRTA4MEY4MDQzMjAwMkM4MDBCMEEwNDlDCis6MTBBMEIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBDQTAwMkU4MEIzCis6MTBBMEMwMDAwQkU4MEEzODEwOEVDMDIyODAwREEwMDIyODAwMEEwNDc2Cis6MTBBMEQwMDAwMjgwMjhBMDAyRkIwMEJBMDAzN0IwNDhFQTAyMEEwMDVBCis6MTBBMEUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzAxMkNDMDM3Cis6MTBBMEYwMDA4QkIwNDIwQzkwOUIyMDIwQzA0ODMwNDIyQzAwODMwMDQzCis6MTBBMTAwMDAyMEMwMDgzMDAyQ0Q0MEIzMDAyNEM4MDgzODAyMEEwMDNECis6MTBBMTEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDA4NzAwMkRDMEM2Cis6MTBBMTIwMDAwQjI0MDYxNjAwOTMwODIxQzgwOTMxMDIwQzgwODdBMDcxCis6MTBBMTMwMDAyMUMwMTg3MjAyREMwMEI3QjQyNEUzMDg3ODAyMjgwMEJBCis6MTBBMTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDI5N0EwM0RGMDlCCis6MTBBMTUwMDAwRjQ4MDMzRTAwRDY4MDMwRTAyQzdBMDIxRTgyQzNGMDA2Cis6MTBBMTYwMDAzM0VDMEM3QzAzRDYwMEY3ODAzNUUwMENEODAzMkEwMkQwCis6MTBBMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxOUE1QTBGQjAwM0VDQTc2Cis6MTBBMTgwMDAwRjgwMDNFQzAyRUEwMDNFQzYwRkI0MEJFRDQwRkIwMDZCCis6MTBBMTkwMDBCRUMwMEZCNjQzRTAwMEZCMDIzRTgwMEY5MDAzQzIwNjM0Cis6MTBBMUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDJDRjg4M0ZFMEQ0Cis6MTBBMUIwMDAwQ0I5MDNGRTAwREQ4MTMzRTA4Q0ZDMDMzRjA0Q0Y4MDRCCis6MTBBMUMwMDAzM0UyNEZGQzAzM0UwMENGQzAzMzY0MENGODAzQzAwMDAxCis6MTBBMUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTk0NDA4NzAwMkZDMTBCCis6MTBBMUUwMDAwRDY5QTJEMDQwQkMwMDIzQzAwOEYwMDI5QzAwODcwMDhCCis6MTBBMUYwMDAyMUMwMEI3MDBBM0MwNDg3MTAyMTRDMDg2MDAyRUEwNDVECis6MTBBMjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlFMDA4NzAwMkRDMERDCis6MTBBMjEwMDAwOTYyMDJEODAwOTcwMDIxQzQwODcwMDIwQzQwOTcwMDIwCis6MTBBMjIwMDAyMUM0MEIzMDAyNTgwMEE3MDgyMTgwMDg2MDgyQzAwMEJBCis6MTBBMjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEU0MjU4MzAwMkNDMDUyCis6MTBBMjQwMDAwOTIyMDJDQzIwQjIwMDIwQzAyOEIwMDI4QzAwOTMwMDZBCis6MTBBMjUwMDAyMEMwMEIzMDQyNkMyMDgzMDgyMEUyMDhCODAyQzgwNEZBCis6MTBBMjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUE0MDBDRjAwM0ZDMDhGCis6MTBBMjcwMDAwRDlDMDNFODAwREI4MDMzQzAwQ0YwMEIzQzA2REYwMEQ0Cis6MTBBMjgwMDBCM0MwMEJGMDA3NjgwMEVGNDAzMkE4MENBODAzRUEwNDQzCis6MTBBMjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjAwMkVDMDA5Cis6MTBBMkEwMDAwRjk0MDNDNTQwRkEzMDNFQzAwRkIwMDM2QzAwRUIwMEMyCis6MTBBMkIwMDAzRUMwMEYzMDEzQUQ0MEZCMDIzRUQwMEZCNDAzRTAwMEIwCis6MTBBMkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEU0MDBDNzAwMzFDMUIwCis6MTBBMkQwMDA4Q0QwMDMzNDAwQ0QwMDNEQzAwQ0YwMDE3QzAwREIwMUNDCis6MTBBMkUwMDAzREMwNENGMDBCMzAwMkMzMDAzMjAwMEZEMDAzMDA0NERECis6MTBBMkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZFNDA4QjAwMkFDMDg2Cis6MTBBMzAwMDAyODg0NDIyMjgwODg4MDNBQzAwREIwMDJBQzA4OEIwMEJECis6MTBBMzEwMDAyRUMwMDhCMDAyMjMyMDhCMDAyMjMwOEI4QzAyMjA0MEZDCis6MTBBMzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI0MDA4QjAwMjJDMDA3Cis6MTBBMzMwMDAwODM4ODYyQTAwODk4MDJBQzAwOEIwMDJDQzAwOUIwMDE5Cis6MTBBMzQwMDAyRUMwMDhCMDQyMjYwMDhCMDAyMjcxMEI4QzAyMjAwMDI4Cis6MTBBMzUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzAwMjhDMDNBCis6MTBBMzYwMDAwODMyNDIwMDAwODEwMDI4QzAwOTMwNTI4QzA4ODMwMDY2Cis6MTBBMzcwMDAyQ0MwMTgzMDA2MDAwMDgzMDBBMDAwMEIwMDAyMDIwMTcwCis6MTBBMzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDc0MDI4QjAwMzNDMENDCis6MTBBMzkwMDAwQzkyMEIyMDAyQzgwMDNCQzAwQ0Y1MDNGQzAwREYwMTRGCis6MTBBM0EwMDAzRkMxMDRGMDMzMjE0MENGMDAzMjAwMEY4MDBCMDAwMzg3Cis6MTBBM0IwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGRjAwM0ZDMDlBCis6MTBBM0MwMDAwRkM0MDNGMDAwOUMwMDNCQzAwRkYwMDNGQzAwRkYwMDMzCis6MTBBM0QwMDAyRkMwMEZGMDAzRjA4MEZGMDAzRjAwMEZDMDAzRTgwNjFFCis6MTBBM0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzBGRkEwMzEyNDk0Cis6MTBBM0YwMDAwRUYwNjMxMDA0RUY2NDNGQzA0Q0YzMDMxQzgwREYwOEQxCis6MTBBNDAwMDAzN0MwMEZGMDAzRjBBMEZDMDAzMTA4MkNEMjAzRjAwMDlECis6MTBBNDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUxMDBCQkMxMjI0ODc1Cis6MTBBNDIwMDAwOEZEMDIyRTAwOTcwMDJGQzI0ODcxMjM3RTQwQkYwMDE2Cis6MTBBNDMwMDAyMUM1NEJGNTAyRUYwMEJCNDAzNkUwMDhBODAyRTAwNDVFCis6MTBBNDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM1ODRCMzExQTJDOUQ3Cis6MTBBNDUwMDAwQTMwMDIwMDAxQjMzMDI4QzQwODMyNDIwQzAwQTMwOEJECis6MTBBNDYwMDBBMENBMEEzMjgyODAxMEIwNDEyNDExMDgzMTAyRTIwMUYwCis6MTBBNDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE1MDBCQjAwMjJFMTM0Cis6MTBBNDgwMDAyOEIwMDIyQzgwOUIwMDJFQzAwOEIwMDI2QzAwQjMwMEU0Cis6MTBBNDkwMDAyMkMwMEJCMDAwRUMyMEJCMDAyNkMwMDg4MDAyRjAwNEY0Cis6MTBBNEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUzNDBGNzA0MzJDMEU3Cis6MTBBNEIwMDA0RUIwMjMyRTIwRUIwMDFFQzAwQ0IwMDEyQzAwRkIwMDgwCis6MTBBNEMwMDAzNkMwMUZCMDAzRTE0MEZCMDAzNjk4MEM5MDAzRDAwNDY3Cis6MTBBNEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2MDRGRjAyM0ZDMDcxCis6MTBBNEUwMDAwRkYwMDNGRTAwRUYwMjNEQzAwRkYwMjNGQzAwRkYwMDYxCis6MTBBNEYwMDAzRkMwNEZGMDAzRkMwMEY0MDAzQjQwMEZBMDEzRjgwMEY2Cis6MTBBNTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFBMjBFQjEwMzZDMEUwCis6MTBBNTEwMDAwREIwMDdFQzIwREIwMDMyQzAwQ0IwMDI2QzIwRUIwMDY5Cis6MTBBNTIwMDAzRUMxMERCMDAzRTAyMERCQTAzMjkwNENCMDBCMTAwNDE0Cis6MTBBNTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJEMDA4RjgwMjBDMTExCis6MTBBNTQwMDAwODcwMTJDRjAwOEYwMEEzQzAwREYwMDIzQzAwOEYwMEY2Cis6MTBBNTUwMDAzN0MwODhGMDAyRUMwMDg4MDAyMDQwMDg4MDAyMzIwMEZBCis6MTBBNTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBBMzgwMjQ4MUIyCis6MTBBNTcwMDAwOTMwMDZDQzQwOTMwMDI4QzEwOEIwMDJDRjQwQTMwMEE4Cis6MTBBNTgwMDAyQ0MwMDkzMDAyQ0QwMDkwNDA2MDQwMjgxMDAyMzgwMEY1Cis6MTBBNTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTBFMDA4NzgwMjNFMDMyCis6MTBBNUEwMDA0ODc5MDJERTQxOTc4MDI5RTAxOTc4MDY5RTAwODc4MDZECis6MTBBNUIwMDAyNUUwMDg3ODAyRDIwMzgzODAyMUEwMDg2ODAyMDgwMDAxCis6MTBBNUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBBMzAwMzRDMDU4Cis6MTBBNUQwMDAwRDMwNDJDQzAxRDMxMDNBQzUwQzM5MDNDQzAwRTMwNDUyCis6MTBBNUUwMDAzQ0M0MEQzMDAzQ0UwMEQwMDAzMDQwMEMzMDAzMTIwMkNBCis6MTBBNUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGNzAwM0ZDMDRDCis6MTBBNjAwMDAxRkYwNTNGQzAwRUYwODM3RDEwRkYwODM3QzAwRjc0MEI4Cis6MTBBNjEwMDAzRkMxMEZGMTAzRDAwMEZGMDBCRjg0MEZDODAzRDAwNjc1Cis6MTBBNjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUUwMDBGQjAwM0VFMDI0Cis6MTBBNjMwMDAyQ0JFODNFQzAwRUI0MDNFQzAwRkI0MDNFRDIwRkIxMEJBCis6MTBBNjQwMDBCNkQyMEZCNDgzRUMwMERCODAzNkMxMEM5MDIxMkEwMDE3Cis6MTBBNjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDBCNzAwMkZDMEY3Cis6MTBBNjYwMDAwODM2MDIwQzA4ODczMDJERDk4QjcyODZERDAwQjMyMEE2Cis6MTBBNjcwMDAyMUM4MEI3NDAyRDAwMjg0MDBBMDAwMjgyMDAyMTIwNDFBCis6MTBBNjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMDBCNzgwMkRFMENDCis6MTBBNjkwMDAwODdBMDI5RDAwQTdBMDJERTAwQjc4MDI5RTgwQTc4MDdCCis6MTBBNkEwMDAyMUU0MDg3QTI2OUUxODgzMDQyMUUwMDg3ODBBNzAwMEM1Cis6MTBBNkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzAwMkNFMDkzCis6MTBBNkMwMDA1ODMwMTIwRTgyODMwMDJDQzAwQjMwMDJDQzAxQjMwMDM0Cis6MTBBNkQwMDAyMEMxMEIzMDAyQzAwODg4RDIyMDIwMDgwMDAyNTIwNDlBCis6MTBBNkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4NjBGQTAwM0Y4MjZBCis6MTBBNkYwMDAwQ0EwMDNGQTAwQUEwMDFFODA4RkEwMDNFODAwRjIwMDVECis6MTBBNzAwMDAzMjgwMUZBMDAzRTgwMERBMDAzNjg4QUNFMDAzN0EwNDQ4Cis6MTBBNzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUxMDBGODAwM0UyMDVBCis6MTBBNzIwMDA0RjgwMDNFMTAwRjAwMDNDMDAwQjgwMDNFMDAwRjgwMkUyCis6MTBBNzMwMDAzQTAwMEY4MDQzRjEwMEZDMEEzRDAwMEZDMDAzOTIwMDc1Cis6MTBBNzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU2MDBDOTkwM0U0MDA0Cis6MTBBNzUwMDAwRjkyMDNFNDAwRDkwMDMyNDAwNDkwMDdFNzAwRjkxMDlCCis6MTBBNzYwMDAzMDQwMEM5MDQzRTQwOUQ5ODAyMjQwMkMxMDBCMDIwNEE1Cis6MTBBNzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0NjA4OUMwMkU0MEFBCis6MTBBNzgwMDAwQjk4MjZDNTgwODkwMDIyNDAyODkwMTJFNzEwQjkwMDU2Cis6MTBBNzkwMDAzNjQwMjg5MDEyQzU4M0M5ODBCNjQwMDg5MDAyMjAwMDM4Cis6MTBBN0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTA0MDA4OTQwMkU0MTQwCis6MTBBN0IwMDA0QjkwMDJFNDAwOTkwMEEyNDAwQTkwMDJFNTAwQjkwMDIzCis6MTBBN0MwMDBFMjQxMDg5MDQyRTQwMDlENTBBQjRBMDhEMDI2MDYwMEMyCis6MTBBN0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODI4MTIwMkM1MDhBCis6MTBBN0UwMDAwQjEwMDJFNDAwODE0MDIwNTA0QTE0MzJDNDAwQjE0MEYyCis6MTBBN0YwMDAyNDUxMTgxNDEyRDQwMDg1NDAyRDQwMDg1MDA2MDIwMTNGCis6MTBBODAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBDODAwM0UwMERDCis6MTBBODEwMDAwRjgwMDJFMDAwRDgwMDMyMDAwQTgwMDJFMDEwRjgwMDQ5Cis6MTBBODIwMDAzMjAwMDQ4MDAzRTAwMEQ4MDAzQTAwMENDMDAzMkUwMzdECis6MTBBODMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGOTEwM0Y0MTU2Cis6MTBBODQwMDAwRjk0MDNGNTAwRjk0MDNFNTAwRDk0MDNFNTEwRjk0MEQ0Cis6MTBBODUwMDAzRTUwNEY5NDAzQzUwMEU5NDEzNjUwMEY5NDAzRTYwNjdECis6MTBBODYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MDBGREE4M0E0MDQ2Cis6MTBBODcwMDAwQ0Q4MjMzNjAwRTlBMDNFNzgwRjlFMDNCNjgwQ0RFMkM3Cis6MTBBODgwMDAzMjY4MEM5QjAzMzY4MjREQTAzNzY4OEM5ODAzMDYwMDEzCis6MTBBODkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEVCQTBCODQwMjAyMDNECis6MTBBOEEwMDAwODg1MDIyMTUxODhDMDJFMjkwQjhFMDJFMTAwRDhFMEQ0Cis6MTBBOEIwMDAyMjMyMEQ4RDIzNjE0ODk4RDRBMjEwMjg4NDAyMEUwNDAwCis6MTBBOEMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1MDBCMzAwMkE0QTVGCis6MTBBOEQwMDAyODEwNEVBNDA4QTE2ODI4NDQwQjE0MDJDNTAwODE0MDJBCis6MTBBOEUwMDBBMDUwMDgxMDAyMDQwMjkxMkEyMDQ0MjgxNDRBMDIwMUIwCis6MTBBOEYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUFDODBCOTAwMjI0MDc0Cis6MTBBOTAwMDA0ODkwMDZBNDAwQTkwMDJFNDAwQjkwMjJFNDAwOTkwMDc0Cis6MTBBOTEwMDAyMjQwMDkxMDAyNjQwMjk5MDAyMjQwMDg5MDAyMDYwNEI1Cis6MTBBOTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTAwMzg1OEE1Cis6MTBBOTMwMDAwQzkwNTM4NDE0QTkwNDNFNDAwRjkwMDNFNDAwQzkwMDE2Cis6MTBBOTQwMDAzMjQwMEM5MDAzMjQwNEQ5MDBCNjQwNEM5MDBCMjgwNEVDCis6MTBBOTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAyM0U0OTM4Cis6MTBBOTYwMDAwRjEwNDM2NDAwRDkwMDNFNDAwRjkwMDNDNDAwRjEwMjcxCis6MTBBOTcwMDAzRTQwMEY5MDAzQzQwMkU5MDQzQzQwMEYxQzAzQ0EwMDkwCis6MTBBOTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExODBDODIwM0UwMEU4Cis6MTBBOTkwMDA4QzgwMEIyMDAwRTgwMjNFMDAwRjgwMDNBMDgyQzgwMERDCis6MTBBOUEwMDA2QzAwMEY4MDAzMjAxMEM4MDAzMjAyMEM4MDAzMEEwNEUwCis6MTBBOUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDA4NjAwMkU4MERFCis6MTBBOUMwMDA2OEE4ODAzQTAwOEEwMDJFODAwQkEwMDJGODAwOEEwMDU2Cis6MTBBOUQwMDAyRTgwMEJBMDBBM0EwMDhFMTAyMzgwMDhBMDAzMEEwMEU0Cis6MTBBOUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTREMDA4MzAwMkNDMDNFCis6MTBBOUYwMDAwODM4MDAwQzYwMjMwMDJDQzAwQjMwMDJDQzQwODMwMEQwCis6MTBBQTAwMDAyQ0MwMEIzMDAyMEMwMjhBODBBMEUwMjgzMDBBNEEwMEQ5Cis6MTBBQTEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE2MjA4NzAyMkRDMTk4Cis6MTBBQTIwMDA0ODcwMTI3QzAwQTcyMDJEQzkwQjcyMDBEQzAwODcwODNCCis6MTBBQTMwMDAyREM0MUIzMjAyMUQwMTg3NDIyMUMyMDg3MDAyMjgwMDZBCis6MTBBQTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMDJDNzgwM0RFQzY2Cis6MTBBQTUwMDAwQzU4MDMxRTAwRTc4MDNERUMwRjdGMDM5NjAwQzc4MDczCis6MTBBQTYwMDAyREUyMDc3OTAzMEEwNkMzODAzMDIwOEMzODAzNkEwMjdFCis6MTBBQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGQjAwM0VDMDBDCis6MTBBQTgwMDAwRjEwNDM4QzAwREIzODNFRDgwRkIwMDNDQzA0RkI0NERFCis6MTBBQTkwMDAzRUMwOEZCNjEzRUMwMkZGMDIzRTAwMEZCMDAzQzIwNkE5Cis6MTBBQUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBGRjgwMzFFM0I0Cis6MTBBQUIwMDAwRUY4MjNGRTAyREY4MEI3RTIwRUY4MDM3RTAwNkREMEIxCis6MTBBQUMwMDAzM0UwMENGODlCNzZDMERGODRCM0UwMDRGODAzQzAwMEU5Cis6MTBBQUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTkwNDBCNzAyMjFDNERGCis6MTBBQUUwMDAwODdCNDJEQzAwODcwMDIxQzQwQjMwMDAxMDgwOEQwMDAxCis6MTBBQUYwMDAyM0MwMERGMjAyMDQ0MjhGMDAyOUM4Mjg3MDAyRUEwNDI0Cis6MTBBQjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDk0MDBCNjAwMjNDMEI4Cis6MTBBQjEwMDAwQTcyMDI4QzAwODcwMDIxQzAwQTMwMDIwNDAxQTcwMkQ5Cis6MTBBQjIwMDAyMUMwMDg3MDQyMDA4QTg3MDAyMUMwMjg3MDAyQzAwMDNFCis6MTBBQjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM1MDBCMDAwQTBEMERDCis6MTBBQjQwMDAwOEIwMDJDOTQyOEIwMDIwQzAwQjMwMjIwNDAwODMwMEYxCis6MTBBQjUwMDBBMEMwNDkzMDAyNDU0MDkzQzBBOEQ0MDAzNTAyQzgwNEMzCis6MTBBQjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBCQjAwMzFDMEEwCis6MTBBQjcwMDAwRUIwMjNDRDAwREYwMDM3QzAwRUYwMDE2ODAwRTMwMDA3Cis6MTBBQjgwMDAzM0MwMUNGMDAzNDUwMERBQzg5MkQ0MkNCNDAzRUEwNEE1Cis6MTBBQjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU1MjBGQjAwM0VDMEQ3Cis6MTBBQkEwMDAwRkIwMDNFQzAwRkIwMDNFQzA0RkIwMDNBRDAwRkIwMDU0Cis6MTBBQkIwMDA3RUMwMUYzMDAzQTQ4MEU5MjAzQ0MwMEYzMjAzRTAwMEI4Cis6MTBBQkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDNzAwMzNDMkFDCis6MTBBQkQwMDAyQ0YwMDMzRTIwREIwMDEzQzAwQzcwMDMzQzgwRUYwNDFDCis6MTBBQkUwMDA3M0MxMEZGMDIyMzAwMEM2MDBCMkMwMENGMDAzMDA0NDY1Cis6MTBBQkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDY5MDA4QjQ0QTJDMTA5Cis6MTBBQzAwMDA4OEIwMDM2QzAwOEIwMDIyQzAyOEIwMEEyRDAwQkIwMDY2Cis6MTBBQzEwMDA2MkMwMEJCMDAyMjYwMjhCODAyMkMwMDhCMDAzMjA0MDI1Cis6MTBBQzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI4MDE4QTA4MjJDMEYyCis6MTBBQzMwMDAwOEIyMDI2QzQwOUIwMDI4QzA0OEIwMTYyOTA0QjkwMTM0Cis6MTBBQzQwMDAyMkMwNDlCMDA2QUUwOThCODAyMkUwNDhCMDAyMjAwMDQ1Cis6MTBBQzUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDI4MjAwMjJDMDQyCis6MTBBQzYwMDA4OEIwMDI0NDAwODMwMDI4QzAwODMwMDIwODAwQjEwMDA4Cis6MTBBQzcwMDAyMEMwMEIzMDAyOEMwMDgzODAyMEUwMDgzMDBBMDIwMUUzCis6MTBBQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY0MDBDQTAwMzNDMDk2Cis6MTBBQzkwMDAwQ0IyMDMyQzAwREYwMDNCQzA0Q0Y1MTMyQzA0RUYwMDdBCis6MTBBQ0EwMDBBM0MwMERGMDAzQTg0MENCMDBCMjAwMkNCMDAzMDAwM0ZBCis6MTBBQ0IwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREYwMDBGNDAwM0ZDMEE0Cis6MTBBQ0MwMDAwRkIxMDNGMDAwRkYwMDM3QzAwRkYwMDNGQzAwRkYwMERFCis6MTBBQ0QwMDAzRkMwMDdGMDBCN0MwOEZGMDEzRjAwMEZGMDAzQTgwNjAwCis6MTBBQ0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzVFRDMzM0JDQzUzCis6MTBBQ0YwMDAwQ0YwMDMzMDQwRkYyNTNGQ0MwQ0YzODMzQ0QwREY0ODAxCis6MTBBRDAwMDAzNzMwNENGMzAzRkQ4MENGMjgzM0Q4MENGMTAzMzAwMEVCCis6MTBBRDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDRDBCQjMxMjBDQzlGCis6MTBBRDIwMDA4OEYzNDIyMDUwQkY5MDJGQzQwQUY2MDI3REMwOEY0MEE2Cis6MTBBRDMwMDAyNjQwOEZGNjAyRkQwMEZGMDgzOUM4MDhGNjAyQTAwNDdECis6MTBBRDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0ODBBMTIwMjhDOTUwCis6MTBBRDUwMDAwODMwOUEwMDA5QjMwMDJDQzAyMDMwMDI0QzkwODMyMEE4Cis6MTBBRDYwMDAwMjA4MEIzMzEyQ0Q4MDkzMjAyNEQ4MDgzNDIyMjIwMTBDCis6MTBBRDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUFFMDBCQjEwMjJDMDM3Cis6MTBBRDgwMDAwOEIwMDIyNjAxM0IwMTZFQzAwOEIwMDI0QzA4OEIwMERGCis6MTBBRDkwMDBBMjg5MEJCMDAyRUMwMEFCMDA2QUMxMjhCMDAyQjAwNDdCCis6MTBBREEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNTZFMDBFOEMxM0FDMERECis6MTBBREIwMDAyQ0IwNDMyNjAwRkIwNjNFQzEwQ0IwMEIyQzAyQ0IwMDhFCis6MTBBREMwMDAzNDIyOUZCMDQzRUMwMDlCMDIzNkMxOENCMDAzMTAwNEM4Cis6MTBBREQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBGQzgwM0REMERECis6MTBBREUwMDAyRkYwMDNGQzAwRkIwMDNEQzAwNzMwMDNCQzAwRUYwNDY0Cis6MTBBREYwMDAzRkUwNUVCMDAxRkMwMEZGMDAxQkMwMEZGMDAzRjgwMDU1Cis6MTBBRTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBDQjAxM0VDOTEzCis6MTBBRTEwMDAwQ0IwMTcyMDg0RUIwMEIyQzEwREIwMDM2QzAwQzMwMDZFCis6MTBBRTIwMDAzMjUwMEZCMDAzMEM0MEMzMDA3RUMwMEMzMDAzMTAwNDNFCis6MTBBRTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDA4QTU4MkVFMDA5Cis6MTBBRTQwMDA0OEYwMDIyRDAwRUYwMTIzQzAwOEYwMjIzQzA0OEY2MDdGCis6MTBBRTUwMDAzNjU0MEJGMDBBM0Q0MDhGMDAyRkMwMDhGMDAzNzIwMEZCCis6MTBBRTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQwMDA4OTgwMkMxMDM4Cis6MTBBRTcwMDAwOEIwMDI0OTAwQTNBMDI0QzAwOTMwMDI0QzAwODNDOUQ1Cis6MTBBRTgwMDAyMDkwNDIzMDEyNEQwMDgzMDA2QUMwMDkzMDAyMzgwMDIxCis6MTBBRTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDA4NTgwNkQ2MjU3Cis6MTBBRUEwMDAwODdFMDI1NjQwMjc4MDI1RTAxOTc4MDYwRTAwODM4MDMwCis6MTBBRUIwMDA2MUEwMEI3ODAyNEUwMDg3ODI2REUwMDk3OTAyNDgwMDlDCis6MTBBRUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODJDMDJDMzYxM0M4OERDCis6MTBBRUQwMDAyQ0JBMTI0OTEwRTMyQzM2QzAwRDMwNTM0QzQ0QzMwMDM5Cis6MTBBRUUwMDAyMDAxMEYzMTAzNEMwMEMzMDEzQ0MwMkRCMTAzMTIwMkZECis6MTBBRUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGRjAwM0YwMEZCCis6MTBBRjAwMDA0RkYxMDlCMDAwRkYwMDNCQzAwRUY0MDFGRDI0RkY0MEVCCis6MTBBRjEwMDBCRkMwMDdGMDAzQkMwMDZGMTAzRkM0MUVGMTgzRDAwNjEyCis6MTBBRjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUM0MDBFODA0MzIwMDMyCis6MTBBRjMwMDAwQ0I2MDNFODAyQ0IwMDM2Q0EwRkI1MDNBRDAwRkIyMDA4Cis6MTBBRjQwMDAzRTQwMEZCMzAzRUM4MEZCQTgzMkM2OENCNjAzMkEwMDQ4Cis6MTBBRjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDJFNjAwMjAwMDhDCis6MTBBRjYwMDAwODczMDJEQzAwODc3MDJERDAwQkYwMDIxQzg0QjcyMDIwCis6MTBBRjcwMDAyREMwMEI3MDgyREQyNEI3NDAzNEM5Mjg3MjgyOTIwNDQwCis6MTBBRjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMEJFMDJBQzgwQTEyMEY0Cis6MTBBRjkwMDAwODc5MDBDRTA0ODc4MDY1RTAwQjdBMDI5RTAwQjc5MEE2Cis6MTBBRkEwMDA2REEwMEI3ODAyREUwMEI3ODAyMUUwMDg3ODAyMzAwMDQ3Cis6MTBBRkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVEODJBQkUwMjBFNDE3Cis6MTBBRkMwMDAwODMwMDJFRTA0ODMwMDJDQzExQjMwMDIwQzA4QjMwMEQxCis6MTBBRkQwMDA2NEY2MEJCMDAyQ0MwNEIzMDAyNkMwMDgzMDAyOTIwNDIxCis6MTBBRkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJCODBFRTQ5MzFBMEYxCis6MTBBRkYwMDAyQ0EwMDNGQTAwQ0EwMjM2ODAwRkEwMDNBODAwRkEwMkIwCis6MTBCMDAwMDAzRjkwMEZBMDYzRTgwMEZBMDAzMjgwMENBMDIzM0EwNEJFCis6MTBCMDEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMEFFODAwM0UwODcwCis6MTBCMDIwMDAwRjgwMDNFMzUwRjAwMDNFMDAwRjgwMTNFMDAwRjgwMEIzCis6MTBCMDMwMDAzRTAwMEY4MDAzRTAwMUY4MDE3RTAwMEY4MDAzRDIwMDg0Cis6MTBCMDQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0NDBDOUExMzI0MEI4Cis6MTBCMDUwMDAyMDExMDFBNjQwQzk4NDM2NDAwRDkwMDM0NDAwNDEwMEYwCis6MTBCMDYwMDAzMjQwMEY5MDBCMjQwMEY5MDAzRTQwNEMxMDAzMDIwNEM0Cis6MTBCMDcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTgyQTI0MENCCis6MTBCMDgwMDAwODlDMDIyNTAwODlDODIyNDAwODkwNDIyNDAwODkyMDlCCis6MTBCMDkwMDAyMjYwMEI5MDAyMjQxMEI5MDAyRTQwMDg5MDAzNjAwMDNCCis6MTBCMEEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA4OTA0MjJDQUQ2Cis6MTBCMEIwMDAwQTkwMEEyNTAyODkyMDIwNDAyODEwMDI2NDAxQTkwMDc0Cis6MTBCMEMwMDAyMjRCMEI5MDAyMjQwMUI5MDAyRTQxMjg5MDAyMDYwMDY5Cis6MTBCMEQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTA4MUEwMjA0ODA3Cis6MTBCMEUwMDAwQTMyMDIwNDgwODEwMDIwNDQwODExMDIwNEQwQTEyMDA5Cis6MTBCMEYwMDAyMDQwMEIxMTAyMDYwMEIxMzEyQzQ4MDgxNDAyNDIwMTE1Cis6MTBCMTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDJDODU0MzIxNDc1Cis6MTBCMTEwMDAwRTg1MDMyMTQ0QzgyOEIyMUE0Qzg2OTM2MTE0RTg1MDY2Cis6MTBCMTIwMDAyMjE0MEY4NjgzMjE0MEYwNDAxRTE0MEMwMDAzMkUwM0NFCis6MTBCMTMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxRDc0NDRGNTEwM0Y0NENBCis6MTBCMTQwMDAwRDkxMDM3NDQwRjkwMDNFNDgwQjkyMDNFNEMyRDkxMEZDCis6MTBCMTUwMDBCRjQwMEY5MjAzRTUwNEY5MzAzRTQ0MEY5NDQzRTYwNkU2Cis6MTBCMTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MjJDREExMzM2MTM4Cis6MTBCMTcwMDAwQ0Q4RDMzNDEwQ0RBODNFNjA4RTlDOTNBNzA4Q0Q4MDA4Cis6MTBCMTgwMDAzMzQwMEU5QUQzMzZBMEM5ODAzMjYwMEM5OTAzMDYwMDcyCis6MTBCMTkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzODg4QUEwMjAyODFBCis6MTBCMUEwMDAwODgwMjIyMDEyODg0MDJDMjgwODhBMDIyMjAwODgwMDY5Cis6MTBCMUIwMDAyMjAwMEI4QzAzMjEwMDg4RDBBMjNFMjg4RDAyMEUwNEIxCis6MTBCMUMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUNFMjBBMTQ4MjA1MkY5Cis6MTBCMUQwMDAyOTEwMDIyNDAzODEwMDJDNTIwQTEwMTI4NTEwOTE0MDdDCis6MTBCMUUwMDBBNDQwMEExMjgyNDQwMDkxMjgyNDQwMjgxMjAyMDIwMTNECis6MTBCMUYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDBBOTE0MjI0MEVGCis6MTBCMjAwMDAwOTkwMDJBNDAxODkwNDJDNDAwODkwMDIyNDAwOTkwMEFFCis6MTBCMjEwMDAyMjQ0NEIxMDQyMjQxNDk5MDAyNjQwMDgxMDAyMDYwNEQwCis6MTBCMjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0NDBFOTQwQjI3ODkyCis6MTBCMjMwMDAwRDkwMEIyNDIyQzkwMzNFNDEwRTkwMDNBNDAyRDkwMEI1Cis6MTBCMjQwMDAxNjU4MDY5MDBCNjQwMkQ5MDAzNjQwMEM5MDBCMjgwNDY3Cis6MTBCMjUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0MDBEOTgwM0U0QUYwCis6MTBCMjYwMDAwRTkwMDM2NDIwRjkwODNFNDEwRjkwMDNFNDAwRTEwOENBCis6MTBCMjcwMDAzRTQwMEY5MDAzQzQwMEUxMDAzODQwMEY5MDAzQ0EwMDI1Cis6MTBCMjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDlGMDQwQjAxMDhECis6MTBCMjkwMDA0QzAwMEIyMDAwRjgwMDNBMDAxQzAwMDNFMDAwQzgwMDNFCis6MTBCMkEwMDAzNjAwMEM4MDAzMjAwMEM4MDAzMjAwMEY4MDAzMEEwNDFGCis6MTBCMkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDAzRTg4MjNBMjhFCis6MTBCMkMwMDA0OEUwMDAxOTgwQkU4ODJFODAwREEwNDJFODAwOEUwMDY0Cis6MTBCMkQwMDAyMzkwMDhBMDBBM0EwMERBMDAzNjgwMEJBMDBBMEEwMDgwCis6MTBCMkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzgwMjBFMDcyCis6MTBCMkYwMDAyODMwQzIwRjEwQjM0MDI4QzAwQjMwMDJFQzExODM0MDNECis6MTBCMzAwMDAyOEQyMEEzMDAyMENDMDgzMDAyMEMwMEIzMDAyMEEwMDkxCis6MTBCMzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDBCNjAwMjFDMDg5Cis6MTBCMzIwMDAwODIwQzIxQzEwQjUwMDJEQzgwQTcyMDJEQzQwODUwODM2Cis6MTBCMzMwMDAyOUEyMUE3MjIyMEMwMDkzMzAwNUM0MEIzMjIyMjgwMDc1Cis6MTBCMzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODE2MDBCMjgwMzEyMDc0Cis6MTBCMzUwMDAwQzU4MDMxRTAwRjc4MDM5RjgwQjdDMjJDRTQwQ0Y4MEJBCis6MTBCMzYwMDA5QjYwMkUzQjAzMUEwMEM3QTgxMUUwMEY3ODAzMkEwMjQ2Cis6MTBCMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREE0MDBGQTAwM0VDMDBDCis6MTBCMzgwMDAwRjkwMjNFODAwRkIwMDNFRDAyREI2MDNFRDAyRjkwMDNDCis6MTBCMzkwMDAzMjQwMERCMDA3RUMwMEZCNjAzRUM4MEZCNTAzQzIwNjlCCis6MTBCM0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjgwMzNBMEU4Cis6MTBCM0IwMDAwQ0Y4MEIzMjQwQ0U4MTM3RjAwQ0JDMDNGRTAwRkY4NDRBCis6MTBCM0MwMDAzM0UwMkNGODgzRTYwMkNGODUzM0YwMENGQzAzMDAxNDQ1Cis6MTBCM0QwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRTAwMzVDNkVGCis6MTBCM0UwMDAyODMwMDIzMDQwODcwMDIzQzAwODdBMDJEQzAwQkUwMDBCCis6MTBCM0YwMDAyM0MwMDg3MDEyRkUwMDg3MDAyMUMwMDhGMDAyMkEwNDUyCis6MTBCNDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDk1MjBCNjAwMjA4MEQxCis6MTBCNDEwMDAwODMxMDI1QzAxODcwMDI1QzAwODcyMDJEQzAwQjYwMDFBCis6MTBCNDIwMDAyMUQwMDk3MDAyRDQwODkzMDAyMEMwMDg3MDAyMDAwMEU3Cis6MTBCNDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM0MDBCMEUwMjQ2MEUwCis6MTBCNDQwMDAwODIwMDY0ODAxODAwMDIwQzAwODMwMDJDQzA0QjMwMDY4Cis6MTBCNDUwMDAyMDg0MEIzMDAyRTgwMDlCMDAyMEMwMDgzMDAyMDgwNDYyCis6MTBCNDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBCOUUwMzI4MEY4Cis6MTBCNDcwMDA2Q0IwMjM2RjAwQzMwMDM3QzEzQ0YwMDNGQzAwRkEwMDNFCis6MTBCNDgwMDBCMEMwMDlGMDAzRUMxMERGMDA3M0MwMENGMDBCMkEwMDExCis6MTBCNDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMTBGODAwM0U0MjU4Cis6MTBCNEEwMDAwRjI0MDNBODYwRjgwMDNDQzEwRkIwMDNFQzAwRjk0MDgyCis6MTBCNEIwMDAzRTgwMDRCMDIzRTEwMEVCMDAzRUMwMEZCMDAzRTAwMDhCCis6MTBCNEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY0MDBFRTAwM0QzMEVDCis6MTBCNEQwMDAwQ0MwMDMxNDAwQ0NBMEIzQzA0QzcwMDM1QzEwREYwMEEwCis6MTBCNEUwMDAzRjAwMENGMDAzRjgwMENGMDAyM0MwMENGMDAzMDA0MDM1Cis6MTBCNEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY0MDBCQTgxMkU1ODcyCis6MTBCNTAwMDAwODg4MDIyNzgwODkyMDIyQzAyOEIwMDIyQzAwODg4MzY2Cis6MTBCNTEwMDAyRTIwMDVCMDYyRTMwMDhCMDAyQUMwMDhCMDAzNjA0MDEzCis6MTBCNTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI2MDBCOTgxMkU0MEI4Cis6MTBCNTMwMDAwODhDMDYyNjAwODgwMDIyQzAwOEIwMTY2QzAwOTg4ODg3Cis6MTBCNTQwMDAyRTIwMDhCMDA0RTMwMTBCMDAyOEMwMDgzMDAyMjAwMEMwCis6MTBCNTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMDAwMkNDMEZGCis6MTBCNTYwMDAyODAwMEUwMDEwODAwMDIwQzAwODMyMDIwQzAwODAwNDY5Cis6MTBCNTcwMDAyRTIwMDkzMDAyQzQxMjgzMDAyOEMwMDgzMDAyNDIwMTg0Cis6MTBCNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBGQTAwM0UwMDBBCis6MTBCNTkwMDAyQzkxMDMyMDAwOEEwMDMzQzAwQ0YwMDM3QzAwRDgwMEZCCis6MTBCNUEwMDAyRTQwMENGMDAzRTA4MENGMDAzQkMwMENGMDAzMDAwMzAyCis6MTBCNUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGQzAxM0Y0MDA2Cis6MTBCNUMwMDAwRkMwMTNGMDAwRjQwMDNGQzEwRkY0MjNGQzA4RkMwMDhGCis6MTBCNUQwMDAzRjAwMEZGMDAzRjA0MEZGMDAzRkMwMEZGMDAzRTgwNjBDCis6MTBCNUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMjBDRDEwMzlDODJDCis6MTBCNUYwMDAwREMxMDMzQzgwRUY5MDIzRDgwRkY4MDBGRTAwQ0Y4MEYwCis6MTBCNjAwMDAxRkQwMEZGOTAzRkYwMEU3QzAzM0M0MEZGMDAzQjAwMEYxCis6MTBCNjEwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMEZFMDI4OTQwMjNGMDBFCis6MTBCNjIwMDAwODg1MTAzQzAwOEIwMEEzREM0QkIyODJFQzIwOEIwMDIxCis6MTBCNjMwMDAyNkMwNEJCMDAyRUMxMEI5MDQyQUM5MEJCNTgwRjAwNDQ3Cis6MTBCNjQwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUNDMDA4MTY0MjhDNDYwCis6MTBCNjUwMDAwOUIyMEEwQ0YwQTMyMDIwQzgwQjMyMDJFQzAyODMwOEM2Cis6MTBCNjYwMDAyQ0M4MDkzMjAyQ0M4MEFCQTAyMEM4MEIzMjAwQjIwMTNBCis6MTBCNjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMTA4OTAwMjJDMDVFCis6MTBCNjgwMDAwOEIyMTIyQzAyMEIwMDIyQzAwQkI4MDJFQzAwOEIwMDk3Cis6MTBCNjkwMDAyNkMwNEJCMDQ2RUMwMEI5MDAwQUMwMEJCMDAyRjAwNDYzCis6MTBCNkEwMDA2MDAwMDAwMDAwMDAwMDAwRDAxNUVDMTBDOUUwM0FDMEI2Cis6MTBCNkIwMDAwRDI4MDMyQzAwRUIxMDMyQzAwRjgyMDNDNDAwQ0IwMDE2Cis6MTBCNkMwMDAzRUMxMEZCMDA2RUMwOEU5MDBCMkMwMEZCMDEzOTAwNDAxCis6MTBCNkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDBGNUEwM0ZDMEU5Cis6MTBCNkUwMDAwRkU4MDNGQzA4RkYwMDNGQzA4RkMwMDNGQzAwRkYwMDExCis6MTBCNkYwMDAzN0MwMEZGMDAzRkMwMEZGMDQzRUMwMEZGMDAzRjgwMDVBCis6MTBCNzAwMDA2MDAwMDAwMDAwMDAwMDAwNTAxMEFDMDBGOTQwMzRDMEEwCis6MTBCNzEwMDAwREI0MDMyQzAwREI0MDNFQzAyQzgwMDM2NDA4RkIxMEZBCis6MTBCNzIwMDAzRUM2OEZCMDAzRUMwMEY5ODAzMkMwMENCMDBCMTQwNDlECis6MTBCNzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNFMjBFOUM4MzdENDAyCis6MTBCNzQwMDA0OEFBMjIxQzAwOEIwMDZGRTAwODg1ODJFRDQwQkI4NDc0Cis6MTBCNzUwMDAyRkMwNEJCODAzQUQ0MEIzMDAyM0Q0MDhGNzAyMzIwMDJBCis6MTBCNzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwMTRDMDBCMTY0QTRDMEYzCis6MTBCNzcwMDAwOTIwMEEwQzA0QjgwMDZDQzAwODM4MDJDODQwQjM4MDI1Cis6MTBCNzgwMDAyQ0QxMEIzMDAyQ0MwNEIzMDAyOEMwMDgzMDAyM0EwMEEwCis6MTBCNzkwMDA1MDAwMDAwMDAwMDAwMDAwQjAwMTFFMDBBNTgwMjVFMDYwCis6MTBCN0EwMDA4ODNBMTIxRTAwQTY5MDJERTIwODc5MDJEQTAwQjc4MkNDCis6MTBCN0IwMDAyREUwMDM3ODgyOUUwMEJDQzEyOUUwMDg3ODAyMkMxMDlECis6MTBCN0MwMDA0MDAwMDAwMDAwMDAwMDAwNDkwODBDMDBGMzAwMzRDMEY1Cis6MTBCN0QwMDAwRDNFMDMwQzAwRjA0MDJFQzAwQzMwNDNDODAwRjMwMEI3Cis6MTBCN0UwMDAzQ0MwMDczMDAzQ0M4MEYyMDAzOEMwMEMzMDAzMTIwMjlBCis6MTBCN0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxOUJEMjBGNzAwM0ZDMjFCCis6MTBCODAwMDAwRkYxMEJEQzIwREUwNDNGRDIwN0YwMTNGODQwRkYwMEZECis6MTBCODEwMDAzRkMwMDdGMDAzRkMwMEZEMDAzN0MwMEY3MDAzRDAwNkU3Cis6MTBCODIwMDA2MDAwMDAwMDAwMDAwMDAwQUEwNUNGMDBEQzAwM0VDQTU2Cis6MTBCODMwMDAwRkEwMDBBQzkyQzkwMDMyQzAwRkIwMTFBNDA4RkIwMEU5Cis6MTBCODQwMDAyRUMwNEZCMDIzRUMwMEY5MDAzRUM0MEZCMDAzRUEwMDU1Cis6MTBCODUwMDA3MDAwMDAwMDAwMDAwMDAwQzg5MTlDMDA4NDAwMDFDMDNFCis6MTBCODYwMDA0QjcwMjIxQ0MwODcwMDIxQzA0QjcwMDIxQzAwQjcwMTI2Cis6MTBCODcwMDAyNUQ4MEI3MDIyREMwMEI2MDAyREMwMEI3MjIyRjIwNDFBCis6MTBCODgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDlFODA5NzgwQTlFMDFBCis6MTBCODkwMDAwQkY4MDJDRTA4ODU4MDI5RTgwQkZDMDIxNzAwQjc4MDYwCis6MTBCOEEwMDAyREUwOEI3ODAyREUwMEI0QzAyREU4MEI3OTAyRTAwMEI5Cis6MTBCOEIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzA4QTBDMDU1Cis6MTBCOEMwMDA4QjNDMDI0QzAwODMwMEEwQzAxQjNDMEEwRjI5QjMwMDM0Cis6MTBCOEQwMDAyNEMwMEIzMDAyQ0MwMEIzODAyQ0MwMEIzMDAyRDIwNDQ5Cis6MTBCOEUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBERTAwM0E4MEVCCis6MTBCOEYwMDAwRkVBMDJFODAwQ0UwMDNBODAwRkUwMDMzODAwRkEwMEI5Cis6MTBCOTAwMDAzRTgwMEZBMDAzRTgwMEZFMDAzRTgwMEJBMDAzRkEwNDc3Cis6MTBCOTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODA0QkEwMUU4Cis6MTBCOTIwMDAwRjgyMEI4MDA0Rjg4MDNFMDAwRjg2MDM2MDAwRjgwMDUxCis6MTBCOTMwMDAzNjAwMEY4MDIzRTEwMEY4MDAzRTAwMEY4MDAzRDIwMEE0Cis6MTBCOTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDFGOTAwMzI0MDVGCis6MTBCOTUwMDAwRjkwMDNFNDAwNDkwMDMyNDAwQjkwMDMyNDAwNDkwMDlCCis6MTBCOTYwMDAzQzQwMEQ5MDAzRTQwOEM5MDAzRTYwMEM5MDAzMDIwNEMzCis6MTBCOTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQwQTI2NEIwCis6MTBCOTgwMDAwQjE4MDIyNTAwRDE1MDM2NTA0RTkwMEEyNDAyODk0MEVGCis6MTBCOTkwMDAzQTUxMDg5NDAyRTUyMjg5NDQyRTYwMjg5MDBBMjAwMDNBCis6MTBCOUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBCMTA4MjI0MDJGCis6MTBCOUIwMDA0QjkyODJBNTAwQTkwODIyNTAwQTEwMDIwQzAwQTk0MDRGCis6MTBCOUMwMDA2RTUwMEI5NDAyQzQwNDg5NDQ2QzQ4ODgxMDAyNDYwMEVGCis6MTBCOUQwMDA0MDAwMDAwMDAwMDAwMDAwMDAwNDA0MDBCMTQwRTA0MDBFCis6MTBCOUUwMDAxQjE0MEEwNDAwQjkwMDI0NDAxQTEwMjIwNDAwQTEwMDBDCis6MTBCOUYwMDAyODQwMEExMDEyQzQwMDgxMDI2QzQwMDgxMjAyNDIwMTYxCis6MTBCQTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDhCMDAwMzIwMDI3Cis6MTBCQTEwMDA0RjgwMDJBMTUwRTA1MDMyMTQwRUE1MjMyMTQwRTg1MDdGCis6MTBCQTIwMDAzRTE0MEY4NTAzRTE0MEM4NTAxRTE0MEM4NTQzNkUwMzdECis6MTBCQTMwMDA1MDAwMDAwMDAwMDAwMDAwRDgxOUU1MDBGRDQwM0U1MDE1Cis6MTBCQTQwMDAwRjc0MDNBNTAwNUQwMDNFNTAwQTUwMTNGNDAwRDkwMEE2Cis6MTBCQTUwMDAzQTUwMEQ5MDEzRTQwMEZGMDAzRTUwMEY5MTAzQTYwNkVDCis6MTBCQTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2OTBCREU4MjM2QjkwCis6MTBCQTcwMDAwQkRBMEIzNjgwQzkwMDMyNjg0NjkwNDNFNDAwNDkwMDc3Cis6MTBCQTgwMDAzMjY4MEM5MDAzMjQ0MEY5MDAzMjYwMEM5QzAzQzYwMTFDCis6MTBCQTkwMDA2MDAwMDAwMDAwMDAwMDAwNzgxMEUxMDBCOEUwQTIxMTkyCis6MTBCQUEwMDAwQjhFMEEyMzIyODg4MDJBMzEyODg4MDI2MjAwODg4MDJGCis6MTBCQUIwMDBBMjMwMjg4ODhBMjIwMEI4QThBMjM5MDhDQTAyQ0UwNDc3Cis6MTBCQUMwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM1MDgyMTAwMDA0MENCCis6MTBCQUQwMDAwMzE0ODI4NTgwQUQwODIxNTI5ODUwODIzNDIzODUwODUyCis6MTBCQUUwMDAyMTUyMDg1MDA2NTQwMEI1MjAyMTVBMDk1NDAyRDIwMUFGCis6MTBCQUYwMDAzMDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCOTYxMjI0MENECis6MTBCQjAwMDAwQjkwMDYwNDAwQUQwMDY5NDAwOEQwMDI3NDAwODUwMDY3Cis6MTBCQjEwMDAwMTQwMDA3MDA2NzQwNEI1MDAyMzQwMDlEMDAyQzYwNDM5Cis6MTBCQjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE0MDBFOTAwMzI0MDAyCis6MTBCQjMwMDA0Rjk1MEJBNDAwRTkwMDMyNDA4QzkwMDMyNDAwQzkwMDBCCis6MTBCQjQwMDAzMjQwMEM5MDAzNjQwOEY5MDAzMjQwM0Q5MDAzRTgwNDUxCis6MTBCQjUwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDhGOTAwM0U0MEU5Cis6MTBCQjYwMDA0RjkwOEJFNDA0RDkwMTNFNDAwRDkwMDM2NDAwRDkwMTRECis6MTBCQjcwMDAzRTQwMEY5MDAzQTQwMEY5MDAzQzQwMEU5MDAzREEwMDExCis6MTBCQjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODQwMzYyMEVGCis6MTBCQjkwMDAxNzg0MDMyMDIxQzgwMDdFMDIyQzgwNDMyMDAwRTgwMjg1Cis6MTBCQkEwMDAzRTAxMEY4MDAzRTAwMEM4NDAxRTAwMEY4MDAzQ0EwNDVFCis6MTBCQkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTJBODhCNjAyMjNBMDBCCis6MTBCQkMwMDAwQkVDNDIyQjAwRDI4MDZFQjEwOEEwMjIwODAwRUEwNEUwCis6MTBCQkQwMDAzQTgwOUZBMDAzQTgwMDhBMDQyRTgwMEJBODAyQ0EwMDA2Cis6MTBCQkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMjAwQTRFMTY1Cis6MTBCQkYwMDA4QkI0MzI0NzQ1ODM5MDJDRjQ0QjM4MTIwRTQ0QTMwMThBCis6MTBCQzAwMDAyQ0MwNEIzMDAyQ0UwMDkzMDA2Q0MwMEIzODAyQ0EwMDJGCis6MTBCQzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDBCNzQ0MjFDMjM5Cis6MTBCQzIwMDAwQjU0MDI1NDA1ODcwMDJDNDA5QjZDMDIxODEwQTcwNDhCCis6MTBCQzMwMDAyOUMwMEE3MDAyOUIwMDk3MDQwRDgwMEI2MDgyRTgwMDA3Cis6MTBCQzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGMzgwMzVFMDVFCis6MTBCQzUwMDAwQjM4MDI1MjEwODQ4MDJEQTAwRkY4MEIxRTAwRTY4MEQ2Cis6MTBCQzYwMDAxREEwMEI2ODAzRkUwMkQ2ODAzREUwMEY3ODAzRUEwMkI4Cis6MTBCQzcwMDAwMDAwMDAwMDAwMDAwMDAwMEExREFDMDBGQjAwM0VDMUY3Cis6MTBCQzgwMDA4QjkwMEI4MDBBQjgwMTJFMDAwQ0IwMDNFODAwRkEwMDdDCis6MTBCQzkwMDAzRUMwMEZBMDQzRUMwMEVCMDAzRTgwMEZBNjIzQzIwMjgzCis6MTBCQ0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRTgwMzMyMDYwCis6MTBCQ0IwMDA0RUM5MTJGNjUwRUY5MDNGRTAwQzE5MDBCNjQyQ0YyMTZBCis6MTBCQ0MwMDAzRkUwMEVGOTAyRTZDMEZGODAzRkUwNENEQzAzNDAwMDlECis6MTBCQ0QwMDA3MDAwMDAwMDAwMDAwMDAwQUExMTk0MDBCNzAwODE0MDJECis6MTBCQ0UwMDAwODAzMDIxNEM0ODcwMTJEQzgwODZBMTIzODQwODcwMjZECis6MTBCQ0YwMDAyREMwMDg3MTEyRDI4MEI3MDAyRDgwMDg2MDAyMkEwNDdFCis6MTBCRDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzEwMjE4MENGCis6MTBCRDEwMDAwOEY0MTI5NDA0QTYwMDJDQzAxOEQyMDIxNDQ4ODYxMDBECis6MTBCRDIwMDAyRDgwMEE2MTMyRDQwMEI2MTgyREM0MDg1ODAyMDAxMEM0Cis6MTBCRDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM0MDBCMzAwMjBDMDU4Cis6MTBCRDQwMDA0MEIwMjIwNDAwODI4MTBDQzAwODMwMEEwQTAwOEEwMDM4Cis6MTBCRDUwMDAyRUMwMDhBMDAyQzQwMEJCMDAyRTgwMDgyMDAyMDgwNEU4Cis6MTBCRDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBGQjAwQTBDMERGCis6MTBCRDcwMDAyNDk0MjNBQzEwRUJBMDBFQzAwQ0IwMDIyRTIwQzkwMEZFCis6MTBCRDgwMDAyRTQwMEU5MDAzRUMwMEY5ODAzRTQwNkNBMDBCMkEwNDdDCis6MTBCRDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMENDMDBGQjAwM0VDMEZFCis6MTBCREEwMDA4OTkwMDMyQzAwRkIwMjNFNDA0RkEwMDM2RDAxRkI0MTM0Cis6MTBCREIwMDAzRUMwOEZCNDAzRTgwMEZCMjAzRTUwMEZBNDAzRTAwMDE4Cis6MTBCREMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBDMzIwQjJDMEUxCis6MTBCREQwMDAwREQwMDMzODAwQ0QwMDNGODAwREYwMDNGQzAwRkQwMkM0Cis6MTBCREUwMDAzNjAwMENEMDAzM0YwOEZDMDQxMkMwMENBMDAzQzA0NDcyCis6MTBCREYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMDI4QkM4MjJDMEVDCis6MTBCRTAwMDAwODk4MEEyQTQwODkyMDJFMDE4RUIwMTJFQzgwQkJGMERGCis6MTBCRTEwMDAyMkU1MDhCRDAyMkUwMEJCOTAyMkVEMDhBMjAyRTAwMDQwCis6MTBCRTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAxMjIwMEEzCis6MTBCRTMwMDA0OUE4MUUwNDAwOEIwMTJFQzA0OTkwMDJFNDAwQjkwMEZECis6MTBCRTQwMDAyMjQwMEE5MDAyMkMwMEI5MDAyQTQwMDg4MDAyRTAwMDNCCis6MTBCRTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MTAwMjA0MEIxCis6MTBCRTYwMDAwODIwMDIwNDAwODMwMDJDQzAwQTIwNDJDQzAwQjMwMDRBCis6MTBCRTcwMDAyMEMwMDIzMDAyMDg4NEIzMDQwODQwMDgyMDAyQzIxMTI2Cis6MTBCRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDA4QjAwQjI4MDdDCis6MTBCRTkwMDAwREIxMDMyNDAyQ0IwMTNFQzA0RDkwNDNFNDAwRjkwMEY0Cis6MTBCRUEwMDBCMjAwMkU5MDBCMkM4MEY4MDBCQUMwMkM4MDAzQzAwMzg3Cis6MTBCRUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDA3RDAwM0ZDMDA1Cis6MTBCRUMwMDAwRjcyMDNENDAwRkYwMDNGQzAwRUYxNDdGQzAwRkYwMERCCis6MTBCRUQwMDAzQkMwMERGMDEzRkM1MEZGMDAzN0MwMEZFMDAzRTgwNjM1Cis6MTBCRUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzRDQzMzM0YwNDI3Cis6MTBCRUYwMDAyQ0Y2MDMzODYwQ0M5MEIzMjAwRkYxMjNGMDYwRkYwMUUzCis6MTBCRjAwMDAyM0M4MENGMjhBM0M4MURGMzAzRjY0MENEODAzMzAwNDM0Cis6MTBCRjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUwQzI4QTMwMkUxODdGCis6MTBCRjIwMDAwOEY1MzBBNTk0NTgyMjIyMjE0QkYzMDJFMTAwOUY3MEJFCis6MTBCRjMwMDAyQkU0MEFGNDEyMUQ0MEFGNzIyQzQ5MkYzMDgyQTAwNjY4Cis6MTBCRjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0ODA4MEEwMkM5ODBDCis6MTBCRjUwMDAwODMyMjIwODAwODIwMDI4MDAwMzMyMDJDMDg0QjMwQzk5Cis6MTBCRjYwMDAyMEMwNTgzMjkyOEMzMEEzMjAyRUMwNDgxMjQyNjIwMTY5Cis6MTBCRjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MDA4QjAwMkUyMEZCCis6MTBCRjgwMDAwOEIwMEEyMDAxOTgwMDJBMjIwQkIwMDJFNjAwOUIwMEFDCis6MTBCRjkwMDAyMkMwMEFCMDEyQUMwNEFCMDAyRUMwMDNCMDAyRjAwMDA1Cis6MTBCRkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU1MDBDODAwM0VCMDgxCis6MTBCRkIwMDAwQ0IwMDMyOTAwQzgwMDNBMjA0RkIwMDNFMjIwRkIwMTc3Cis6MTBCRkMwMDBCMEMwMENCMDAzMkMwMEZCMDIzQzQxMEM5MDQzNDgwNDcxCis6MTBCRkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUEyODBGRTQwM0UwMDcyCis6MTBCRkUwMDAwRkYwNjNFQzAwQkZDNDE3NDIwRkYwMDNFQzAwRkYwMDNBCis6MTBCRkYwMDAxRkMxMEZCMDAzNUMwMEZCMDAzRjQwNEZGMDAwQjgwMEQyCis6MTBDMDAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE1MDJDODAwM0U5MDQzCis6MTBDMDEwMDAyQ0IwMEIwMTA2Q0IwMTNFNTA1RkIwMTMyMTEwQ0IwMEJBCis6MTBDMDIwMDA3RUMwMENCMDBCMkMwMENCMDAzMkMwMEM5MDAzMTAwNDZGCis6MTBDMDMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTI4MDE4QkQwMkMzNDJGCis6MTBDMDQwMDA0OEZGMDIzMDAwQUEwNDJFNjkwRkYwMDM2ODEwREYwMEQ5Cis6MTBDMDUwMDAyRkQ0MERGMDAyM0UwMDVGMDRCNkMwMDhCMDAzNzIwMDlBCis6MTBDMDYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTY5OTA4MTgwMkMwMDg1Cis6MTBDMDcwMDA0OEI4MDIwODA5OTkwMDRDQjAwQjMwMDIwQzAwOEIwMDQ0Cis6MTBDMDgwMDAyQ0MwMDlCMDQwMEM0MDgzMDAwMDQwMEE5MDAyMzAwMEYwCis6MTBDMDkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDA4NDg4MkRFNEZDCis6MTBDMEEwMDA0ODM5MDIxNjAwQjQ4MDJERTAwQTdCMDY1RTAwOTc4MEI2Cis6MTBDMEIwMDAyREUyMDk3ODAyMUU5MDk3ODAyNTY0OEE3ODAyNDgwMDU0Cis6MTBDMEMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBEMDA4MTEwMkM5NjgwCis6MTBDMEQwMDAwODMxMjMwQzAwOTAyMDNDQzQxQkI4MDIwODQwQzMwMDY4Cis6MTBDMEUwMDAyQ0M0MEQzMDAzMEU0MEMzMTAzMEMwNEUxMDA3MUExMjdFCis6MTBDMEYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDA3RDA1M0ZDNUExCis6MTBDMTAwMDAwRkIxMEJGNDAwRUYwMDFGNDUwRkYwNDNGQzAxRkY0MDlGCis6MTBDMTEwMDAzREM0MUZGMDA2RkMxMEZGMDAzQkMxMkRGMTAzRDAwNjBCCis6MTBDMTIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDRDQjA0M0VBMDY1Cis6MTBDMTMwMDA0NEI2MDMyODA0Q0I4MDMyODAwRkIzOTM2MDA4RkIyMDAxCis6MTBDMTQwMDAzRUQyMUZCMzAzMkQ4MEZCNjE3RTQwOEM5ODAzMkEwMEYyCis6MTBDMTUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTg0MEM4NjA1MkRDMDBFCis6MTBDMTYwMDAwOEY0ODI4QzkwODUwMEExQzAwQkYwMDI1QzAwMzcwMEJGCis6MTBDMTcwMDAyREQwMEI3MTAyMUNDOEI3NDgyRDQwMEE3MDAyMTIwNDYyCis6MTBDMTgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NzgwMkRBMTFDCis6MTBDMTkwMDA2MDc4NEExNkQwQTc4MDI5RTAwQjc4NTI5NjAxQjc5MEI0Cis6MTBDMUEwMDAyREU4MEI3QTIyNUU0MEI3QTAyRkUxNDg1MDIyMzAwMEU0Cis6MTBDMUIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMTA4Mzg0MkNDMDM0Cis6MTBDMUMwMDAwODMwMDJBNDEwODNDQjI4RTAwQjMwMkE0RjQwOTMwMEE0Cis6MTBDMUQwMDAyQ0MwMEIzMDAyNEMxMEIzMDIyQ0MwQUEzMDAyMTIwNDQ3Cis6MTBDMUUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4MDBDRUEwM0Y4MDNECis6MTBDMUYwMDA0Q0EwMkIzQTAwQ0U0MDNCQjgwRkEwMDNCOTAwQkEwMEM4Cis6MTBDMjAwMDAzRTgwMEZBMDAzNjgwMEZBMDA3RTgwMUNBMDBCM0EwNDU5Cis6MTBDMjEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDJGODAwM0UwNDVBCis6MTBDMjIwMDA4RjAwMDNFMDRBRjgxMDI2MTgwRjgwMDNBMDgwRjgwMjYwCis6MTBDMjMwMDAzRTAwOEYwMDBCQTAwMEY4MDIzRTAwMEY4MDEzRDIwMERBCis6MTBDMjQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MjBDOTAwMzI0MDY3Cis6MTBDMjUwMDA0RDk5MDMyNDAwQzkwMjNFNjgwRjkwMDIyNDAwRTkwMEIyCis6MTBDMjYwMDAzMDQwOEM5MDAzMDQ0MEM5MDAzRTQwMEM5MDAzMDIwNDBGCis6MTBDMjcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MjA4OTA2MjI1MDg1Cis6MTBDMjgwMDA4QjlDQzIyNDAwRDkwMTJFNDAwQjkwNDIyNDA4QjkwMTk2Cis6MTBDMjkwMDAyMjQ2MEQ5MDBBMjYwMjg5MDAyQzQwMEExMDAyMjAwMDM2Cis6MTBDMkEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTA2MDA5MTQwNDI3MERDCis6MTBDMkIwMDAwQjkwMTIyQzAyOEIwMDJFNDAwQjEwMjJFNDEwQjEwMEM4Cis6MTBDMkMwMDBBMjQwNDg5MDEyMjQwODk5MDIyRTQwMDg5MDAyMDYwMENECis6MTBDMkQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTI5MTIwRTA0OEEzCis6MTBDMkUwMDAwQjEyMDIwNDAyOTExMDJDQzAwQjEwMDY4NEMwQjExMDc2Cis6MTBDMkYwMDAyMDQ4ODkxMTAyMDU4MDkxNDAyRTQ0MkE5NDAyMDIwMUFGCis6MTBDMzAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODUwMzAxNDVCCis6MTBDMzEwMDAwRjg1MEIyMUUwODA0MDNFMDAwRjg3OEJFMTBDRjg2QzBECis6MTBDMzIwMDAzMjAwODQwNjgzMjAwNEQ4MjgzRTEwMEMwMDAzMkUwMzFDCis6MTBDMzMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBBRDEwM0Y0NTgzCis6MTBDMzQwMDAwRjkxMDNGQzE4N0QyMDFGNDEwRjkwMDM3NEMwRjkyMTQ5Cis6MTBDMzUwMDAzRTQ0MEY5MjAxRTQ0MEU5MDAzRDQ4NEZEMDAzRTYwNjE5Cis6MTBDMzYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY3ODBGREUwMzM3MDQ5Cis6MTBDMzcwMDAwQ0RBMDMyNjIwQzk0MDMxNDAwRTlBMDMyNDAwRjk4MENDCis6MTBDMzgwMDAzQjYwMEY5QzgzMzZBMEY5QTFCMDQwMEY5MTAzQzYwMDFCCis6MTBDMzkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUyOTBCOEEwMjIyOEQxCis6MTBDM0EwMDAyODg4MEEyMjAyODhBMDIyMDAwODg4MDJDMjgwQjg4ODUxCis6MTBDM0IwMDAyMjA0MEI4RTAzMjI4MEI4RDAyQTIwMEI4ODAyQ0UwNEUwCis6MTBDM0MwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1ODBCMTYxMDA1ODgxCis6MTBDM0QwMDA0ODE2OEEwNEEwODkwMTIyNDAxQTE0ODgwNDIwQjE0MDFBCis6MTBDM0UwMDAyODQwMEIxMDBBMDQyMEIxMkMyMDRBMEIxMjAyQzIwMTczCis6MTBDM0YwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE1OTBCQjQwMjA0MDEwCis6MTBDNDAwMDAwODkwMDIyNDQwODk0MjYyNTgwODEwMDJFNTAwQjkwM0VFCis6MTBDNDEwMDAyMkMwMEI5MDAyQTQxNDMxMDAyQTQ0MEI5MDAyQzYwNERGCis6MTBDNDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxMEE1MDBGOTAxMzI0MEVCCis6MTBDNDMwMDA4QzkwMDMyNzAwQzE5NDMwNDAwRTkwMDMyNDAwRjkwMDMzCis6MTBDNDQwMDAzQTQwMEY5MDAzMjQwMEY5MDAzMjYwMDc5MDI3RTgwNTc2Cis6MTBDNDUwMDAyMDAwMDAwMDAwMDAwMDAwMjgwMEE0MThGOTAwQkU0NERECis6MTBDNDYwMDAwRjkwMDNDNDAwRjkwMEJFNjE4RjkwMDNBNDAwRjEwMDk3Cis6MTBDNDcwMDAxRTQwMEYxMDAzMjQwOEY5MDA3RTQwMEY5MDAzQ0EwMEVECis6MTBDNDgwMDAyMDAwMDAwMDAwMDAwMDAwMjgxMEExODFGODAwMzIwNDA0Cis6MTBDNDkwMDAwQzAwRDMyMTAwRDgwNDNBMTQ5QzgwMDMyMTAxQzgwMDY5Cis6MTBDNEEwMDAzNjAwMEM4MDEzMjAxMEM4MDAzMjAwMkM4MDAzQ0EwNDEwCis6MTBDNEIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNDNBMDBCRTg0MjM4NTBDCis6MTBDNEMwMDAwOEVDODM2ODA0OEEwMDJGOTA0REEwMDIyODAxREEwMDRFCis6MTBDNEQwMDAyM0IwMEFBMDAyMkEwOERBMDEyMjgwMEZBMDAyQ0EwMEIzCis6MTBDNEUwMDAwMDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCQkYwMjBDMDQ4Cis6MTBDNEYwMDAwODNDMEEwQzAwOTMwMTI4Qzg4OTMwMDY0QzAwODMwMkNFCis6MTBDNTAwMDAyQ0Y2MDgzMDAyMDQwMEEzMDAyMEMwMEEzMDAyQ0EwMDQyCis6MTBDNTEwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFEMTFCMzAwQTBDMDY5Cis6MTBDNTIwMDAwODUwMDI1QzEwODcwMTZEODE0OTMyNTIxRUMzODcwMDlBCis6MTBDNTMwMDAyOEUwMEEzMjI2MUYwMDM3MDAyM0UwMEI3MjAyQzgwMEYxCis6MTBDNTQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwODEyMDBCNzgyMzEyMERGCis6MTBDNTUwMDAwODA4MzcwRjA4RDdFMDM5NjAxOTdBMEI1RTBDODNCMkYwCis6MTBDNTYwMDA3REUwMEM3QTBCM0UwMkFGQTBCMUUwMEU3QTAzQ0EwMjY2Cis6MTBDNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREEwMTBGQjAwM0VDMEVECis6MTBDNTgwMDA2RkIwNDNFQzExRkIwMDNFNDAwRkI1MDNFQzIwRkI1MEI1Cis6MTBDNTkwMDAzNjAwMEZCNTQzRTVBMURCNzgzRUMwMEZCNDAzQzIwNkY5Cis6MTBDNUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDBGRkEwM0ZBMDZBCis6MTBDNUIwMDAwREM5MTMzRTAwQ0ZEMDNERTgwMkZGMTMzRTAwQ0Y4MkVECis6MTBDNUMwMDAzRjYwMENGQzIzM0UxMEVGODAzM0YyMENGQzgzMTAwMDI0Cis6MTBDNUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDNDBCNTAxMkREMEEzCis6MTBDNUUwMDAwODU4MDIxQzQwNTcxMDJENUEyODMxMDJCQzAxOTcxMEUwCis6MTBDNUYwMDAyRDAwMEE3MDAyODQwNENGMDAyOUMwMEFGMDAyMkEwNDI4Cis6MTBDNjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDkwMDBCNzJBMkQ4MkFBCis6MTBDNjEwMDAwODQyMjIzQzAwODcxMTBEQ0M4ODMyMDIxRDAwOTcwMDkxCis6MTBDNjIwMDAyQ0M0MDgzMDAyMTQwMEE3MDAyM0MwMDk3MDgyMDAwMDQ3Cis6MTBDNjMwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNEMwMjBCMDIwMkM1MDNBCis6MTBDNjQwMDAwODEwMDIyREMwOTNFMjJDMjEwODMwMDIwRTA4OTMwMDNFCis6MTBDNjUwMDAyQzQwMEEzMDAyOEMwMDkzMDAyQUMwMEIzMDAyMTgwNEQwCis6MTBDNjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBGOEMwM0U4MEJCCis6MTBDNjcwMDAyQ0EwMEIzRjAwQzc2MDNFRDAwQ0YwMEIzQzAwQ0YwMDVECis6MTBDNjgwMDAzRTgwMENGMDBCMkMwMEVGMDAzM0MxMERGMDBCMkEwNEEwCis6MTBDNjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDNDBGMzQwM0U1MENECis6MTBDNkEwMDA4RUI0MDNFQzEwRkIwMDNFMDkwRkIwMTNFQzQyRUIwMDFDCis6MTBDNkIwMDAzQzAwOEZCMDEzQzQxMUUzMDAzRUMwMEVCMDAzRTAwMDk1Cis6MTBDNkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGQzgwMzEyMjVFCis6MTBDNkQwMDAwQ0E4MDMzQzAwQ0YwMDMzQTAwRUYwMDNEQzAwQ0YwMDE5Cis6MTBDNkUwMDAxRkYwMENGMDAzRjQwMENGMDIzM0MwMENGMDAyMDA1NDMyCis6MTBDNkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZGMDBCQkMwMjI3MDA5Cis6MTBDNzAwMDAwQUI5NDIyQzEwOEIwMDc2MTE4M0IwMDJFQzEwQUIwMEZBCis6MTBDNzEwMDAyRUIwMEFCMDAzRUMwNDhCMDBBMkMwMjhCMDAyMjA0MDY3Cis6MTBDNzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTY1NDBCODIwMjI0NDkxCis6MTBDNzMwMDA1ODM0MEEyQzAwOEIwMDIyODQ0QkIwMDJFQzAwOEIwMDkyCis6MTBDNzQwMDA2RUMwMDhCMDQyRTYwNDhCMDAwMkMwMDgzMDAyQTAwMUFGCis6MTBDNzUwMDA0MDAwMDAwMDAwMDAwMDAwMEMwMDAwMDBCMTAwMjBDMEZDCis6MTBDNzYwMDAwQTMwMEEwQzAwOEIwMzI0ODAwQjMwMDJDQzAwQTMwMDlCCis6MTBDNzcwMDA2QzAwMEEzMDAyOEQwMDgzMDAyMEMwMTgzMDAyODIwMDU1Cis6MTBDNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODY0MDBGODAwMzAwMDE1Cis6MTBDNzkwMDA0Q0EwMEIyQzAyQ0YwMDIyNDAwRUY1MDNGQzAwQ0YwMTcxCis6MTBDN0EwMDAzRTAwMENGMDEyREQwMkNGMDIzM0MwNENGMDBCODAwM0QwCis6MTBDN0IwMDAxMDAwMDAwMDAwMDAwMDAwQTQxOUYwMDBGQzAwM0Y0MDQxCis6MTBDN0MwMDAwRkIxMDNEQzAwQkYwMTNGMDAwRkYyMjNGQzEwRkYwMDlDCis6MTBDN0QwMDAzRjAwMEZGMDAxRjQ4NEZGMDAzREMwNEZGMDEzNjgwNkU2Cis6MTBDN0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFNDBERjgwMzNDODdDCis6MTBDN0YwMDAwQ0Y4MDMzQzBBOUZDMDNGRjAwOEI4MDIzRTAwRkY4MERGCis6MTBDODAwMDAzRkQ4MENGOTYxMkU0MDZGOTAzRkU0OEZGMTgzMzAwMEU4Cis6MTBDODEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDMDQ4QjgwMjNGMDBBCis6MTBDODIwMDAwOEI4MDIzRDQwQUIwMDBFMDg0ODIyODI2QzIwQkIwMEQ1Cis6MTBDODMwMDAyRkQwNDhCMDAyMkMwMEJCMDAyRUMxMEJCMDAyMzAwNDM4Cis6MTBDODQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDI4MzAxQTBDNTc0Cis6MTBDODUwMDAwOEIwNEE0Q0EwODAyNDI4QzgwOTMyMDI0QzAwQjMwODEyCis6MTBDODYwMDAyRUQxMjlCMjNBMEM4NEEzMjEyQ0M4NEJCMjBBMzIwMTMyCis6MTBDODcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDg4QjAwMjJDMDUyCis6MTBDODgwMDAwOEIwMDI0QzAwODgyMTI0MjEwOUIwNDY2QzAwQkIwNjg4Cis6MTBDODkwMDAyRUMwMDlCMDAyMkMxMEJCMDAyRUMwMEJCMDAyMzAwNDE5Cis6MTBDOEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBDQjAwMzJDMDJBCis6MTBDOEIwMDAwQ0I5MDI2QzAwQ0JDODNBQzAyRDkwMEIyQzA4RkIwMEMxCis6MTBDOEMwMDAzRUMwMEQzMDQyMkMwMEVCMDAzRUMwMEZCMDEzMDAwNDAwCis6MTBDOEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBFRjAwM0RDMDVGCis6MTBDOEUwMDAwRkYwMDNCQzA2RUY4MjNGNDA0RUM5ODNCQzAwRkYwMDNGCis6MTBDOEYwMDA3RkMwMUNGMDEzN0MwMEZGMDQzRkMwMEZGMDAzRjgwMDYyCis6MTBDOTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAyM0VDMEQwCis6MTBDOTEwMDAwRUIwMDNBQzIwRDg0MDNFQzA4QzkwMEIyQzAwRkIwMDI2Cis6MTBDOTIwMDAzRUM5MERCMDMzRUMwOEZCMDIzRUMwMEZCMDBCNTQwNEZGCis6MTBDOTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCMzAwMkZDMDNDCis6MTBDOTQwMDAwQjMwMTJGQzAwODhBMDJFNDAyODk0MDIyQzEwQkIwNDRGCis6MTBDOTUwMDAyREMwMjhCMDAyRUMwMEJCMDAyRUMwMEI3MjA2MzIwMEM2Cis6MTBDOTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTZDMDBCMzAwMkNFMDc3Cis6MTBDOTcwMDAwQTEwMDJDRDAwOTMwMDJDQzAwOEIwMDI0QzAwQjMwMDk2Cis6MTBDOTgwMDAyOEMwMDgzMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyM0EwMEEzCis6MTBDOTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFNDBCNzgwMkRFMjgyCis6MTBDOUEwMDAwQjU4MDJERTAyOTc4MTJGQTAwODY4MDI1RTAwQjc4MTUzCis6MTBDOUIwMDAyRkUwMDg3OTAyREUwMEI3ODEyREUwMEI3ODAyM0MwMDAxCis6MTBDOUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMzAwM0NDMERDCis6MTBDOUQwMDAwRTMyMDNDQzgwRDMwMDNDQzQwQzM5MDM0QzA4RjMxQTRDCis6MTBDOUUwMDAzQ0M2MEQzMDAzQ0UyMEYzMDgzQ0MwMEYzMDAzNTIwMjhBCis6MTBDOUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREFDMDBGQjAwMkVDMDQ1Cis6MTBDQTAwMDAwQkIwMDNDQzIwRUIwMDNDODAwRkIwNDFBQzAwRkIwMDJFCis6MTBDQTEwMDAzQ0MyMEZCMDAzRUM0MEZCMDAzRUMwMEYzMDAzRDAwNjE5Cis6MTBDQTIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVFMDJDMzgwMzBDRUM4Cis6MTBDQTMwMDAwRDk4MDNBQ0EwQzM4MEIyQzAwRkIwMDNFQzAwRkIwMEE0Cis6MTBDQTQwMDAzRUQyNEZCMDA5MkUwODRCMDEzRUMwMjRCMDAzRUEwMDhECis6MTBDQTUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDA4NzAxMjFDMDA4Cis6MTBDQTYwMDA0ODUwMTI0QzAwODcwMDM1QzA0QjYwMDJEQzA0QjcwMTBGCis6MTBDQTcwMDAyREMwMEI3MDAyMUMwMDg3MDAyREMxMEM3MjAyRjIwNDQ1Cis6MTBDQTgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NzgwMjNFMERFCis6MTBDQTkwMDAwOEY4MDJERTgwOEY4MTIxRTA0Qjc4MTJERTA0Mzc4MEI3Cis6MTBDQUEwMDAyREU4MEJGODAyM0UxODg3ODAyRkUwMDk3OTAyRTAwMDlDCis6MTBDQUIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzAwQTBDMDRCCis6MTBDQUMwMDAyODMwNDI0QzAwODMwMDI0QzAwQjM4MDZDQzA0QjMwMDRECis6MTBDQUQwMDAyQ0MwMEIzMDAyMEMwMjgzMDAyQ0MwMDgzMDAyRDIwNEEwCis6MTBDQUUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBDQTAwMzE4MEY2Cis6MTBDQUYwMDAwOEUwMDI5ODAyQ0UwMDMzODQwQkVBMDNFODAwQkEwMDkzCis6MTBDQjAwMDAzRjgxMEZBMDAzMjgwMENBMDAzRTgwMERFMDAzRkEwNDE1Cis6MTBDQjEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODAwM0UwMDU3Cis6MTBDQjIwMDAwRTg0MjNBMDAwRjgwMDNBMTAwRjgwMDNFMDAwRjgwMDA0Cis6MTBDQjMwMDAzRTEwMEY4MDEzRTAwMEY4MDAzRTAwMEQ4MDAzRDIwMDhECis6MTBDQjQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDFGOTAwM0U0MDQxCis6MTBDQjUwMDAwQzlBMTNFNDAwQzkwMDNFNDAwQzk4MjNFNDgwRjkwMENECis6MTBDQjYwMDAzRTQwMkM5ODAzNjQwMEY5MDAzRTQwMEM5MDAzQzIwNDQwCis6MTBDQjcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDRCOTAwMkU0MDcyCis6MTBDQjgwMDA2ODlDMjJFNDAyODkwMTdDNTA4RDk4MjJFNDgwQjkyMEJGCis6MTBDQjkwMDAyRTUwNDgxMDBCMjUwMEI5NDQyQzQwMjg5MDAwRTAwMDhFCis6MTBDQkEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTAwMkU1MEZECis6MTBDQkIwMDAwODkwMDJFNDA0ODkwMDJFNTAwQTkyMDJFNDAwQjkwMEIxCis6MTBDQkMwMDAyQzQwMDg5MTAyMjQwMEI5MDAyRTQwMDg5MDAyQzYwMEIzCis6MTBDQkQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA1MDBCMTAxMkM0MEU2Cis6MTBDQkUwMDA0ODMwMDJFNDAwODEwMDJBNDA0QjEwMDJDNDAwQjEwMDJBCis6MTBDQkYwMDAwQ0MwMDg5MDAyMEMwMEIzMDAyRTQwNDgxMjAyQzIwMTgzCis6MTBDQzAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBCODAxM0UwMDA4Cis6MTBDQzEwMDAxQzgwMDdFMTUwQzg1MDJFMTQxRTg1MDNFMTQxRjg1MEQ2Cis6MTBDQzIwMDAzRTE0MEM4NTEzMjE0OEY4NTAzRTE0MEM4NTQzRUUwMzQ2Cis6MTBDQzMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxOUM0MDBGOTAwM0U1MUE3Cis6MTBDQzQwMDAwRjUwMDNFNTAwRkQwMDNGNDAxREQwMDNGNDEwRjkwMDM0Cis6MTBDQzUwMDAzRTUwMEY1MDAwOTQwMEY5MDAzRDQwMEY5MTAzRTYwNjRFCis6MTBDQzYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMUU0NTBDRDAwMzE2MEE5Cis6MTBDQzcwMDAwNEQwMDMzNjgwQzE0MjJFNTAxRjk0MDNFNTAwRTkwMjIwCis6MTBDQzgwMDAyRTcyMEE5MDIyMDUwOEU5NDAzRTUwNDA5QzAzMjYwMDdGCis6MTBDQzkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEMyODI4ODAwMjIxNUQ5Cis6MTBDQ0EwMDAwODgwMDIyMzU4ODhBMDJFMjgwQkFBNDJFMjgyODg4MDlFCis6MTBDQ0IwMDAyRTM4Mjg4ODAyMjI4MEI4QTAzQTI4MDhDRDAyMEUwNDE3Cis6MTBDQ0MwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA4MTAwQTY0MEZDCis6MTBDQ0QwMDAyODEwMEEyNDI2OTUwMDBENDAwQjUwMDI3NDAwODUwODg4Cis6MTBDQ0UwMDAyRjQwNzlEMkFBMTQwMEE1MDEyRjQwMzg1MDAyMTIwMTFBCis6MTBDQ0YwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDQ4OTAwMjY0MDAwCis6MTBDRDAwMDAwODkxMDIyNDEwOUQwODJGNDAwQkQwMDJGNDAwOEQwMkUwCis6MTBDRDEwMDAyRjQwMDlEMDAwMzQwMEJEMDAwQjQwMTg3MDAyMDYwNEZCCis6MTBDRDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUM0MDBDOTA1MzY0MUU1Cis6MTBDRDMwMDA0QzkwNjMyNDAwRDkwMDNFNDAwQjkwMDM0NDA4QzkwMDg2Cis6MTBDRDQwMDAzRTQwMTUxMDAzMjQwMEU5MDAzQzQwMEM5MDAzMjgwNEU5Cis6MTBDRDUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDRGOTAwM0E0MDFGCis6MTBDRDYwMDA0Rjk4MDNFNDAwRTk5OTNFNDA0RjkwMDNFNDIwRjkwQTBDCis6MTBDRDcwMDAzRTQwMEU5MDQzNjQyNEY5MDgzQTQyMEY5MDhCREEwMDRCCis6MTBDRDgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODAwMTIwMDkxCis6MTBDRDkwMDAwQzgwNDNFMDAwQzg0MDMyMDAwRjg0NTNFMDEwRjgwMERDCis6MTBDREEwMDAzRTAwMEQ4MDIzMjAwMEQ4MDAzRTAwMEY4MDAzMEEwNEJGCis6MTBDREIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDI4MjAwQTE4ODQxCis6MTBDREMwMDAwODYwMjJDODAwOEE0MDM2QTEwQkEwMDJFOTEwQkE0NENDCis6MTBDREQwMDAyQzgwMENBNDEyMjkwMjhBNDQyRTk4MEJBNDAyMEEwMDZCCis6MTBDREUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMTA4MzAwMjBFMEY3Cis6MTBDREYwMDAxODMwOTJDNDA4OTM0MDIwRTAwQjMwMDJDRDAwQjM0MEJECis6MTBDRTAwMDAyQ0MwMEIzQTQyQ0QwMDgzNDAyQ0QwMEIzODAyNEEwMDk0Cis6MTBDRTEwMDA1MDAwMDAwMDAwMDAwMDAwQTA0MTFDMDA4NzAwMjFDMDVECis6MTBDRTIwMDAyODcwMDJEMTAwOUQ4MDI1QzI0QjYwMDJEQzA4QjcwMjQ5Cis6MTBDRTMwMDAyQ0MwMEE3NDAyRkUwMDg3MDAyREMwMEIzNDAyNjgwMDZCCis6MTBDRTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBDNzg0MzFFMDc4Cis6MTBDRTUwMDAwQzY4MDNENjAwOTc4MDMxQTAwRjU4MTNERTA4Rjc4MkM0Cis6MTBDRTYwMDAzREEwMEZGODBCREUwMEM3ODAzREUwMEY3ODhCNkEwMjEzCis6MTBDRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFEODBGMzAwM0VDMTZFCis6MTBDRTgwMDAwRkEwMjNDMDAyRTkwMDNFODEwRjgwMDNFQzAwRkIwMEVECis6MTBDRTkwMDAzRUMwMERCMDEzMkMwMEVCMDAzRUMwMEZCMDAzODIwMjY5Cis6MTBDRUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZGMzJDNzgwMzM2MDEyCis6MTBDRUIwMDAwRjc4MDMzRUM4NEU4MDIzNjQwQ0Y4MDMzQTAwQ0U4MEZFCis6MTBDRUMwMDAxM0VDMDZEODAzM0EwMERFODAzM0E0MENDODAzRDAwMDZDCis6MTBDRUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NzEwMDFDMDM1Cis6MTBDRUUwMDAwQjcwMDIxODUwODQwMDJCNDQwODYwMTI5ODAwODYxM0JGCis6MTBDRUYwMDAyMUM0ODg1MDAyMTg4MDg2MDAyMTgwMDg2MTAyRUEwNDVCCis6MTBDRjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NzAwMjE0MDNECis6MTBDRjEwMDAwQkYxMDI1QzgwMDYwMDIxMDA4OEQwMDI1QzAwODcwMEQzCis6MTBDRjIwMDAyMDg5OEFGMTAyMUMwODg3MTAyMTgxODg0ODAyQzYwMEU2Cis6MTBDRjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMTA4MzA0QTBDMUQ5Cis6MTBDRjQwMDAwQjMwMEE0ODBDODgwNjYwMzgwODA0NDJFQzAxOEIwNDU4Cis6MTBDRjUwMDAyMkMxMDgzMDBBMkMwMDhCMDAyMjgwMDAyMDAyRDgwNDU1Cis6MTBDRjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBDMzAwMjI4MEIzCis6MTBDRjcwMDA4RjkwMDM2NDBBQ0IwMkIyRjIyMDM1MTI2NDBBQzkwMDEyCis6MTBDRjgwMDBCMjQwMEVBMDAzMjQwQUM5MDBBMjQwMkNBMDAzRUUwNDY0Cis6MTBDRjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjAwM0M4MDBFCis6MTBDRkEwMDAwRjkwMDNBNTAwREI0MDNFRDA0REI0MTNBNDA4RkIwMTU1Cis6MTBDRkIwMDAzRUMwMUNBMDAzNkMwMEZCMDQzRTUwNEZBNDAzRTAwMEU1Cis6MTBDRkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwMzNDMDMyCis6MTBDRkQwMDAwQ0U4NDMyNjAwREY4MEIzRTAwRkY4MDM3QzAwQ0QwMEFGCis6MTBDRkUwMDAzMzA0MENFMDIzMzQ0MENEMDAyMzQwMENFMDAzRTAwNDg0Cis6MTBDRkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMTBCQjAwQTJEMkQxCis6MTBEMDAwMDAwODI4MDIwNDYwOEIxOTIyQzYwRUIxOEEyRTQwOEI5MDJDCis6MTBEMDEwMDAyMkMxMDhBNDgyMkMwMDhCOTAyMjY0NDhBNDAyRTAwMDY0Cis6MTBEMDIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCQjAwMjIwMDYyCis6MTBEMDMwMDAwODkxMkUyNDAwOUIwMDIyQzA4QkIwMTIyMDA0ODgwMDhGCis6MTBEMDQwMDAyMjQwMDgxMDIyMjAwMDg4MDEyQUQwMDg4MDQyRTAwMEY3Cis6MTBEMDUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMzA0MjA4MDIxCis6MTBEMDYwMDAwODEwMDYwNDEwODMwMDIwQzA4QkIwMTIwMDAwODIwMDVDCis6MTBEMDcwMDAyMEMwMjgxMDQyMDkwNjgyMDAyOEMwMDgyMDAyQzIwMUYwCis6MTBEMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDdDMDBCQjAwMzI0MEVBCis6MTBEMDkwMDAyQ0IwMDMyNDAwRDMwMDMyQzA1RkI1MDMwQzAyQzEwMEUyCis6MTBEMEEwMDBCMjAwMENCMDBCMDUwMEMxMDBCOEMwMkM4MDEzRTAwMzI3Cis6MTBEMEIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxRERDMDBGRjAwMUZDMEE5Cis6MTBEMEMwMDA4N0YwMDFGNDAwRkYwMDNGQzAwRTcwNDNGQzEwN0YwMEFBCis6MTBEMEQwMDAzRkMwMEY3MDAzRkMwMEZGMDAzN0MwMEZFMDAzRTgwNkZECis6MTBEMEUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYxODRGRTYxMzFEODJFCis6MTBEMEYwMDAwQ0IyQzNGQ0UwQ0M4MDdCQzAwRUYxMDM3Q0UwQ0M4MzlGCis6MTBEMTAwMDAzRjIwMEZGMENCMzI0NERDODQzRjI1NENGMjQzMzAwMDBCCis6MTBEMTEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEU0NDhCMDEwMjJEQzI1Cis6MTBEMTIwMDAwOEI2MDJGRDkyODg4NTIzRjQ0MEYxMDJFRDAwODgyREI3Cis6MTBEMTMwMDAwRTYwMEJCQzEyMkMxMEE4ODIyRTAwMEFGQzIyQTAwNDQ4Cis6MTBEMTQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUMwODBCMzIyMjhDMDI1Cis6MTBEMTUwMDAwODMwODJDQzAxODgwMDJDQzA0QTMyMDJDQzAwMDEwMTg4Cis6MTBEMTYwMDAyODAwNEJCMDAyQTAwMDgwMDAyQzA5MDgzNDAyNjIwMUE0Cis6MTBEMTcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDRCMjEwMkFDMTBECis6MTBEMTgwMDAwOEIwMDJFQzEwODk4MDIyQzAwOEIwMDJFQzA4ODgwMEM4Cis6MTBEMTkwMDAyRTQwODNCMDAyQTA0MEI5ODAyQzIxMEFCMDAyRjAwNEQ2Cis6MTBEMUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBGQTAwQkFDMDZBCis6MTBEMUIwMDAyQ0IwNDNFQzAwQzA4MDNFQzA4RUIwMDM0QzBDQzgxMEI1Cis6MTBEMUMwMDAzRTgwOEZCMDAzODIxMEQ4ODIzRTI4MENCMDBCNTAwNEYyCis6MTBEMUQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2ODBGRDAyMzdDMUQxCis6MTBEMUUwMDAwRkIwMDNGQzAwRkQwMDNFQzAwRkIwNTNGQzAyRkYwMTc2Cis6MTBEMUYwMDAyRkE0OEJGMDgzN0MwMEFEMDIyRjQwMDM3MDAzQjgwMDk2Cis6MTBEMjAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjA0MzJDMEQxCis6MTBEMjEwMDA0Q0IwMjMyQzAwRjg0MDNFQzIwQ0IwMDMyQzAwRkI0MTY0Cis6MTBEMjIwMDAzMkMyMEZCMDQzMkQwMEM4NTAzRTQwMENCMDBCMTAwNDZBCis6MTBEMjMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJGOTBCOTUwMDNDMDc2Cis6MTBEMjQwMDAxOEYwMUEzQzAwQjkzMjJERTAzOEYwNjAzQzA0RjkwMEM3Cis6MTBEMjUwMDAzRUYwMEI3QzgwMkMwMEQ5QzAyRTQwMERGMDAyMzIwMDM1Cis6MTBEMjYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRCMjRCMjEwMDJDMUE1Cis6MTBEMjcwMDAyODMwMDI2QzA0QjJDMTJDQzAwODMwMDAwQzAwQjIwMDhGCis6MTBEMjgwMDAyODI0MDMzQzBBMDAwMDgyQzgyQ0EwMDgzMDAyMzgwMDgxCis6MTBEMjkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDBCNDgwMjFFNENFCis6MTBEMkEwMDA0ODdCMDI1RTAwQjY4MDZERTI0ODc5MjIxRTQwQUM4NDY1Cis6MTBEMkIwMDAyREUwMEJGQTAwNTI0MDk2ODAyREU4MTkzODAyMDgwMDQ0Cis6MTBEMkMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4NDBGMzEwQjBDNDBGCis6MTBEMkQwMDAwODNBMDI0QzkwRjMxMDNDQ0MwODMxMDMwQzQ5QjA0MEEyCis6MTBEMkUwMDAzMDA1MEYzMDA3MjE0MDQzMDEzRUMyMUMzMDQzMTIwMjdCCis6MTBEMkYwMDAwMDAwMDAwMDAwMDAwMDAwNDAwREJDMTBGQzEwM0ZDNTA1Cis6MTBEMzAwMDAwRkYxMDFCQzA0RkYwNDNGQzQwRkIxNEJGQzY0RjcwMEY0Cis6MTBEMzEwMDAzN0MwMEY3MjUzQUM0NEZGMDEzRkM5MEZGNDAzRDAwNjZFCis6MTBEMzIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDhGQTAwM0VFMEU0Cis6MTBEMzMwMDAwQ0IwMDMyQzAwQ0IwMjNFQ0EwRkIyMDcyRTAwREIwMjVBCis6MTBEMzQwMDAzMjA4MEYzMTAzMkMwMENCMDQzRTgwMEMzNTAzMkEwMDM5Cis6MTBEMzUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDBCNTAwMkRDOEM2Cis6MTBEMzYwMDAwODcwMEExQzIyODcwMDJEQzkwQkYyODI5QzgwQTYwMDNGCis6MTBEMzcwMDAwOThCMEI3MDBBMUMwMjg1MDAyRDQwMDg3MDAyOTIwNDc0Cis6MTBEMzgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMkNFQzkwCis6MTBEMzkwMDAwODdCMDI1RTQwODU4OTJERUM4QjdCMDI0RTg0OEY4MDVBCis6MTBEM0EwMDAyNTY0MEJGQTAyMTIwODk3ODA2RkUxMDg3QTAyMzAwMEI4Cis6MTBEM0IwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMjBCMzY0MkNDMDAyCis6MTBEM0MwMDAwODMwMDYwQzEwODM4QTZDQzA1QjMwNDJDQzAwQUIxMDc2Cis6MTBEM0QwMDAyQ0YyMEIzMDAyMEQwMDkzMDQyQ0Q1MDgzMDBBOTIwNDc1Cis6MTBEM0UwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJCMDBGRUMwM0U4MEQ5Cis6MTBEM0YwMDAyQ0EwMDM2ODAwQzY0MDNGODAwRkEwMDI2ODAwQ0U0NDA2Cis6MTBENDAwMDAzNjkwNEY2MDAzMUI3MERFRDgzRkEwMEMyMDAzM0EwNDE3Cis6MTBENDEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwNDBGODEwM0UwMEZFCis6MTBENDIwMDAwRjgwMDNBMDEwRjg0MjNFMTAxRjgwMDNBMDAwRTgwQ0ZDCis6MTBENDMwMDAzQTA0MUY4MDAzRTAwMEU4NDU3RTAyMkY4MDAzRDIwMEZCCis6MTBENDQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMDY0MDBFOTgwMzI0MDU1Cis6MTBENDUwMDAwRjkwMEIwNDA4RDk4MDM2NDAwRjEwMTMyNDA4RjkwMEYwCis6MTBENDYwMDA3MjcwMEY5MTEzMjQxMEM5MTAzRTY5MEM5MDAzMDIwNENFCis6MTBENDcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDhCOTgwMjI0MEYxCis6MTBENDgwMDAwQjEwMDIyNDAwODlDNDIyNTIwQjkwNDIyNDAwQjkwMEUwCis6MTBENDkwMDAyMkUwMEI5MDEyMjQwNEQ5NEEyRTYwMDg5MDAzNjAwMDA5Cis6MTBENEEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCMTE4MjI0MDAwCis6MTBENEIwMDAwQjkwMDIyNDAwOEIyMDI2NDkwQjkwMDI2NDAwQjkwMEQ3Cis6MTBENEMwMDBBMjQwMEI5MDhBMjQwMDhCMDAyQzQwQTg5MDAyMDYwMEZBCis6MTBENEQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODRCMTIwQTA0OEJGCis6MTBENEUwMDAwQjExMDYwNDAwODMwMDAwNDA0QjExMDIwNDQ5QjExMEU3Cis6MTBENEYwMDAyODQwMEIxMDAyMjQ0MTkxMDAyQzUwMDgxMDAyNDIwMUQ4Cis6MTBENTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDY5NDBFODUwMzIxNDJGCis6MTBENTEwMDAwRjg2OTMyMUUyQzgwMDM2MEEwQjg2OEI2MUE4Rjg0MDdCCis6MTBENTIwMDAyMjgwMEY4MkEzMjEwOEM4MDIzRTAwMEM4MDQzMkUwM0Y0Cis6MTBENTMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDhGRDEyM0U0NDE5Cis6MTBENTQwMDAwRjEyMDNDNDAwN0QwMTFFNDAwQjkyMDNFNDgwRjUyMEZFCis6MTBENTUwMDAzNjQwMEY5MDAzRDQ5MDdEMDAzRDQwMEY5NDAzRTYwNkMzCis6MTBENTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMUY2QzFERDg4MzI3MjcyCis6MTBENTcwMDAwQzk4MDMyNjIyREQwMDNGNjIyQzk5ODM0NkEwQzk0MDA3Cis6MTBENTgwMDBCMjQwMEZEODAzMjQwMEZEMDAzMzUxMkNEODgzMDYwMDhECis6MTBENTkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzQzI4OEMwMjIzMDk0Cis6MTBENUEwMDAwODhDNDIyMjExOEEwMTJFMDAwODg4NTIyMzAwODBBMzkxCis6MTBENUIwMDAyQTAwNEI4MDQyMjJBMEI4MDAyMjI4MDg4NDAyOEUwNDUwCis6MTBENUMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA4MTJEMjA0ODQ0Cis6MTBENUQwMDA2ODE0ODAwNDIwODEwMDJFNDAwQjEyMTIwNDI0ODEyMDQ0Cis6MTBENUUwMDAyMDQwMEI5NDMyMDQ5MEI5MDAyMDQwNDgxMDRBMDIwMUI4Cis6MTBENUYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDA4OTIwMjI0MERGCis6MTBENjAwMDAwODkwMTIyNDAwODkwMDJFNDAwODkwMDIyNDA4ODk0MEM2Cis6MTBENjEwMDAyMjUwMEJCMDAyMjQyMEI5MDlBMjQ0MDg5MDAyODYwNENCCis6MTBENjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBEOTA4QjI0MDJFCis6MTBENjMwMDA0QzEwMjMwNDA0RDlDMTNFNDA4RjkwMEIwNDA4QzE0MDE0Cis6MTBENjQwMDAxMjQwMEY5MDQzMjQwNEYxNDEzMDc4MEM5MDAzMjgwNEQ5Cis6MTBENjUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg2NjRGOTgwM0U0MDUwCis6MTBENjYwMDAwRjkwMEJFNDAwRjk5ODNFNDAyRjEwMDNBNDAyRjkxMDJDCis6MTBENjcwMDAzRTQwMEY5MDBCRTY0MEY5OTAzRTYwMEY5MDAzQ0EwMEM5Cis6MTBENjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODQxMzIwMDI3Cis6MTBENjkwMDAwQzgwMDcyMDEwQzgxMDNFMEMwRTgwMDNFMDA0QzgwMDY4Cis6MTBENkEwMDBCQTAwMEY4MTQzMjAwMEY4NzAzRTAwMEYwMDBCMEEwNEZGCis6MTBENkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM5MDI4RTIwQTM4MDExCis6MTBENkMwMDAyOEUwMEEzODEwQUUwNDNEQTE4RUUwMDJGODAwOEUwMDdBCis6MTBENkQwMDA3NjgwMEI2MDAzNzgwMEJFNDAyRjgyMEJBMDAzQ0EwMDQ3Cis6MTBENkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTREMDA4Qjg4MjJDMDhCCis6MTBENkYwMDAxODMwMDIwQzAwODM0NDJDRDAxQjMwMTJDQzA2ODMwMDVGCis6MTBENzAwMDAyMEMxMEIzMDgyMEMwMUIzMDAyQzQwMEIzMDAyMEEwMDA4Cis6MTBENzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDA4NTAwMjBDQzhCCis6MTBENzIwMDAwODcwMDYxQzg0QTcwMTI5QzAwQjcyMjJEQzgwODczNDk0Cis6MTBENzMwMDA2MTgwMEIxMDAyNUMwMEI3MDAyREMwMEI3MDAyRTgwMDg2Cis6MTBENzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODBFMDA4QzgwMzFFMEJFCis6MTBENzUwMDAwQ0ZFMDIzRjAwQzU4MDJERTAwRTc4MDNERkEwQzdBMEJECis6MTBENzYwMDAyMTYwMEY3ODAzMUU4MEY3ODAzREUwMEY3ODAzMkEwMkM2Cis6MTBENzcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGOTAwM0VDMEUxCis6MTBENzgwMDAwRkIwMDNFQzAwRkEwMDNFQzAwNkIwMDNFQzgwRkIyOEFCCis6MTBENzkwMDAzNkQ4NEZBMDAzRUMxMEZBMDAzRTUwMEYzMDAzQzIwNkZCCis6MTBEN0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBDQzgwQjNFMDNCCis6MTBEN0IwMDAwRkY4MDMzRTAwQ0Y5MDNGNjA0RkY4QzMzRTAwRUY4MDZDCis6MTBEN0MwMDAzM0YwMEM3QTAzM0U3MEM1OTAzM0YxMEM3ODAzMDAwMEZGCis6MTBEN0QwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMUI4MDA4NzAwMjFDMDAwCis6MTBEN0UwMDAwQjcwNEExQzAwODcxMDJEQzA0QjcxMEEzQzQ0OEYxMkVECis6MTBEN0YwMDAyMTg2MEQ3MjAyMUUwMDg3MDAyMzQwMDg3MDBBMkEwNDQ5Cis6MTBEODAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NDAwMjVDMEIzCis6MTBEODEwMDAwQjcxMEEwQzAwQTcxMjJEODQwQjcwMEExQzAwQjcwOEFDCis6MTBEODIwMDAyMzQwMDlGMzFBNUM4Njk3MDgyNTQwMDg3MDAyMDAwMDFGCis6MTBEODMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMjA4MTIwMjZDMDIxCis6MTBEODQwMDAwQjMwMDIyQzAwODI0MjJDODAwQjMwMjIwQzA4OUI4MDczCis6MTBEODUwMDAyMEUwMDkyMDAyNEQwODkyMDAyNEU1MDgzMDBBMDgwNDVGCis6MTBEODYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFFODJDQUUwQjdDMDdBCis6MTBEODcwMDAwRkYwMTMzQzBBQzlDODNFNDAwRkYwMDMzQzA0RkY4NDdDCis6MTBEODgwMDAzMkMwMEQ5MDEzN0MwMEQ5MDBGNkMwMkMxMDAzMkEwNDdFCis6MTBEODkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU0MDBGMzAwM0FDMUQ2Cis6MTBEOEEwMDA0RkIwMDNFQzAwRjkwODNDMDAwRjMwMTNFQzAwRUIwNDIwCis6MTBEOEIwMDBCRTE4MEY5MDIzQUM2MEU5MDIzQTQwNEY5MDAzRTAwMDlECis6MTBEOEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBDQTAwMzNDMDVFCis6MTBEOEQwMDAwQ0YwMDNGQzAwQ0QwMjdGNDAwQ0YwNDIzQzAwQ0YwODZFCis6MTBEOEUwMDAzNzEwMEZEMDAzRkMxMENEMDgzRjY2MkNEOTAzMDA0NDNECis6MTBEOEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDYzODA4QkUwMjJDMDQzCis6MTBEOTAwMDAwOEIwMjJFQzAwRDg4MDZFMjA2OEIwMUEyQzAxRkIwMDExCis6MTBEOTEwMDAyMjE4MEI4ODQzNEMwMDg4QTAyQ0MwMUQ5MDAyMjA0MDg4Cis6MTBEOTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTA4ODA4QjIwMjJDMDUxCis6MTBEOTMwMDAwOEIwMjJFQzAwODg4ODJFNjI0OEIwMUFDQzAwOEIwMDE4Cis6MTBEOTQwMDAyNkMwNEE4ODAyRUMwMDA4ODQyRTQwMDk5MDAyMjAwMDdDCis6MTBEOTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4MzAwNjBDMEQ4Cis6MTBEOTYwMDAwODMwMDJDQzAwOTAwNjZDMDAwODMwMDI4QzAwQTMwNDQyCis6MTBEOTcwMDAyMDAwOEIwMDA2NEMyMTgwMDA2Q0MwNDkxMDBBMDIwMTc3Cis6MTBEOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQTAwQjJDMUUxCis6MTBEOTkwMDA4OEI0MDNFQzEwQzgwMDJFMDAwQ0IwMEJCQzA4OEYwMDNDCis6MTBEOUEwMDAzNjAwMDY4MDAzRUM4MEM4MDIzRkMxMEM5MDAzMDAwM0UwCis6MTBEOUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREYwMDBGRjAwM0ZDMDZDCis6MTBEOUMwMDAwRjcyODNGQzE4RkMwMzNGMDA4RjcwMDM3QzAwRkYwMDg0Cis6MTBEOUQwMDAzRDAwMEZDMDIzOEMwNkZDMDAzRjQwMEVEMDAzRTgwNjNDCis6MTBEOUUwMDA3MDAwMDAwMDAwMDAwMDAwMDBDNTQxMDM3MDQwREMxMDIyCis6MTBEOUYwMDAzNzA0MERDMTAzNzA0MERDMTAzNzA0MERDMTAxNzA0MEM1Cis6MTBEQTAwMDA5QzEwMTcxNDA1QzEwMzcwNDBEQzEwMTcwNDBEQzAzMUMxCis6MTBEQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ0MDU3MTAxNUM0MEVBCis6MTBEQTIwMDA1NzEwMTVDNDA1MjEwMTVDNDA1NzEwMTVDNDAxNzEwMTQwCis6MTBEQTMwMDA1QzQwMTcxMDA1QzQwNTcxMDU1QzQxNTcxMDE1QzAxMUY1Cis6MTBEQTQwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDAyMDEyMDgwNDgyMEZCCis6MTBEQTUwMDAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MERDCis6MTBEQTYwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODAyMEU3Cis6MTBEQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDA2MDAwNTgwMDZFCis6MTBEQTgwMDAxNjAwMDU4MDAxNjAwMDU4MDAxNjAwMDU4MDA1NjAwMDQyCis6MTBEQTkwMDA1ODAwMTYxODAxODAwMTYwMDA1ODAwNTYwMDA1ODAyMENCCis6MTBEQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ4MDUyMjAxMUM4MEE1Cis6MTBEQUIwMDA0NzIwMTFDODA0NzIwMTVDODA1NzIwMTFDODA0NzI0MUNDCis6MTBEQUMwMDA1QzgwNTcyMDExQzgwNDcyMDExQzgwNDcyMDE1QzAzMUFBCis6MTBEQUQwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQwMDA2MDAwMTgwMDc5Cis6MTBEQUUwMDAwNjAwMDE4MDAwNjAwMDE4MDAwNjAwMDE4MDAwNjAwMDUwCis6MTBEQUYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAzMTU3Cis6MTBEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ4MDQyMjAxMDg4MDU5Cis6MTBEQjEwMDA0MjIwMTA4ODA0MjIwMTA4ODA0MjIwMTA4MDA0MjMwMTQyCis6MTBEQjIwMDAwODgwNDIyMDEwODgwNDIyMDEwODAwNDIyMDEwODAyMTMxCis6MTBEQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTRBMDU0MjgxNTBBMDFFCis6MTBEQjQwMDA0NDJDMTEwQjA0NDI4MTEwRTA1NDI4MTEwMjAwNDI4MTQwCis6MTBEQjUwMDAxMEEwNDQzODExMEIwNTQyODExMDIxMTQyODE1MDAzMTAyCis6MTBEQjYwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDBDMDE1NzAwNTRDMDZECis6MTBEQjcwMDAxNTMwMDQ0QzAxMTMwMDU0QzAxNTcwMDU0QzAxNTMwMEJFCis6MTBEQjgwMDA1NEMwMTUzMDg1NEMwMTEzMDA1NEMwMTUzMDA1NDAyMTk4Cis6MTBEQjkwMDA0MDAwMDAwMDAwMDAwMDAwMDA4MDAwMDA0MDAwMTAwMDc1Cis6MTBEQkEwMDAwNDAwMDA0MDAwMTAwMDEwNjIwNDAwMDEwODA0NDEwMDVECis6MTBEQkIwMDAxMDAwNDQxODExMDAwMDEwMDAxMDgwMDQwMDAxMDEyMDIyCis6MTBEQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTYwMDIwODAwODIwMDI0Cis6MTBEQkQwMDAyMDgwMDg2MDAyMTgwMDgyMDAyMDgwMDgyMDAwMDgyMEIxCis6MTBEQkUwMDA4MjAwMDA4MDgwMjAwMjE4MDA4MjAwMjA4MDA4MDEzMTFECis6MTBEQkYwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQwMDU2NDAxNTgwMDBFCis6MTBEQzAwMDA1NjAwMTU4MDA1NjAwMTU4MDA1NjQwMTU4MDA1NjAwMURBCis6MTBEQzEwMDA1ODAwNTYwMDE1ODAwNTYwMDE1ODAwNzYwMDE1ODAzMUM3Cis6MTBEQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQwMDM2MDAwRDgwMEI0Cis6MTBEQzMwMDAzNjAwMEQ4MDAzNjAwMDk4MDAzNjAwMUQ4ODA1NjAwMEU2Cis6MTBEQzQwMDBEODAwMTYwMDBEODAwMzYwMDBEODgwNDYwMDBEODAzMTlBCis6MTBEQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDQzMDgxMEMyMERDCis6MTBEQzYwMDA0MzA4MTBDMjA0MzA4MTBDMjI0MTA4MThDMjA0MzA4OUQ0Cis6MTBEQzcwMDAwQzIwMDMwODEwQzIwNDMwODEwQzIwNDMwODEwQzAxMDhGCis6MTBEQzgwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAzMDAwMEMwMDg4Cis6MTBEQzkwMDAwMzAwMDBDMDAwMzAwMDBDMDAwMzAwMDBDMDAwMzAwMDkyCis6MTBEQ0EwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMUE1Cis6MTBEQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAyMDEzMDgwNEMyMEM1Cis6MTBEQ0MwMDAxMzA4MDRDMjAxMzA4MDRDMjAxMzA4MDRDMzAxMzA4MEMzCis6MTBEQ0QwMDA0QzIwMTMwODA0QzIwMTMwODA0QzMwMTMwODA0QzAyMUNBCis6MTBEQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDU2MDgxNTgyMENGCis6MTBEQ0YwMDA1NjA4MTE4MjA1NjA4MTU4MjA1NjA4MTE4MzAwNjA4MTAyCis6MTBERDAwMDA1ODIwNDYwODExODIwNDYwODExODMwNTYwODE1ODAzMDZBCis6MTBERDEwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQyMDAyMDgwMDgyMEU0Cis6MTBERDIwMDAwMjA4MDA4MjAwMjA4MDA4MjAwMjA4MDA4MjAwMzA4MDYzCis6MTBERDMwMDAwODIwMDIwMDAwODIwMDIwODAwODIwMDMwODAwODAzMUIzCis6MTBERDQwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDQ2MDgxMTgyMEFGCis6MTBERDUwMDA0NjQ4MTE5MjA0NjA4MTE5MjA0NjI4MTE4MjAwMzQ4MUJFCis6MTBERDYwMDAxODIwNDY0ODExOTIwNDYwODExODIwNDMwODExODAxMTQwCis6MTBERDcwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTYwMDQ1ODAxNTYwMENCCis6MTBERDgwMDA1NTgwMTU2MDA0NTgwMTE2MDA1NTgwMDE2MDA0MTgwMTgzCis6MTBERDkwMDA1NjAwNDU4MDExNjAwNDU4MDExNjAwNDE4MDExNDAzMTQxCis6MTBEREEwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDA2MDE0MTgwNTA2MDJCCis6MTBEREIwMDAxNDE4MDUwNjAxNDE4MDUwNjAwNDE4MDUwNjAwNDE4MEQyCis6MTBEREMwMDAxMDYwMTQxODA1MDYwMTQxODA1MDYwMTQxODA1MDAyMEU5Cis6MTBEREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEwMDgwNDAyMDYwCis6MTBEREUwMDAxMDQ4MDQxMjAxMDA4MDQxMjAxMDA4MDQwMjAxMDQ4MDQwCis6MTBEREYwMDA0MDIwNTA0ODA0MTIwMTAwODQ0MDIwMTAwODA0MDAyMEY0Cis6MTBERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ2MDM1MTgwRDQ2MEZGCis6MTBERTEwMDAzMDE4MEQ0NjAzNTE4MEQ1NjAzNTE4MEQ0NjAzMDU4MDM2Cis6MTBERTIwMDBENDYwMTUxODBENDYwMzExODBENDYwMzUxODBENDAzMUFCCis6MTBERTMwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQ2MDU3MTgwNUM2MEQ1Cis6MTBERTQwMDA5NzE4MTVDNjA1NzE4MTVDMjA1NzE4MTVDNjAzNzA4MTk3Cis6MTBERTUwMDA1QzYwNTcxODExQzYwNTMxODE1QzYwNzcxODE1QzAzMUI4Cis6MTBERTYwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQ2MDM3MTgwREM2MEY3Cis6MTBERTcwMDAzNzE4MERDNjAzNzE4MERENjAzNzE4MDVDNjAxNzU4MTNFCis6MTBERTgwMDBEQzYwMzcxODBEQzYwMzcxODQ1QzYwMTcxODE5QzAxMTY3Cis6MTBERTkwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQ2MDU3MTgxNUM2MDQ0Cis6MTBERUEwMDA1NzE4MTQ4NjA1NzE4MTVDNjA1NzE4MDVDNjA0MzE4MUM2Cis6MTBERUIwMDA1QzYwNTcxODE1QzYwNTcxODA1QzYwNDMxODE1QzAxMTY5Cis6MTBERUMwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEyMDgwNDgyMEY3Cis6MTBERUQwMDAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxNzA4MDA4Cis6MTBERUUwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTcwODA0ODAwMDdFCis6MTBERUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDE2MTgwNTg2MDgyCis6MTBERjAwMDAxNjE4NDE4NjAxNjE4MDE4NjAwNjNDMDU4NjA0NjE4MDEwCis6MTBERjEwMDAxODYwMTYxODAxODYwMDYxODA1ODYwNTYxODE1ODAxMDI4Cis6MTBERjIwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQwMDU3MDAxNUMwMDlBCis6MTBERjMwMDA1NzAwMTVDMDA0NzAwMTVDMDA1NzAwMTBDMDA0NzAwMDQ5Cis6MTBERjQwMDAxQzAwNDcwMDExQzAwNDcwMDE1QzAwNDcwMDAxQzAxMUIzCis6MTBERjUwMDA1MDAwMDAwMDAwMDAwMDAwMDA0NTQyMDA2MDgwMTgyMEQyCis6MTBERjYwMDAwNjA4MDE4MjAwNjA4MDE4MjAwNjA4MDA4MjAwNjA4MDk4Cis6MTBERjcwMDAxODIwMDYwODAxODIwMDYwODAxODIwMDYwODAxODAxMTIwCis6MTBERjgwMDA0MDAwMDAwMDAwMDAwMDAwMDAwNTQyMDQyMDgxMDgyMDNECis6MTBERjkwMDA0MjA4MTA4MjA0MjA4MTA4MjA0MjA4MTE4MjA0MjA4MDU3Cis6MTBERkEwMDAwODIwNDIwODEwODIwNDIwODEwODIwNDIwODAwODAxMUM1Cis6MTBERkIwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQyMDU0MDgxNTAyMEE0Cis6MTBERkMwMDA1NDA4MTUwMjA1NDA4MTEwMjA1NDBDMTU0MjAwNDA4MTcwCis6MTBERkQwMDA1MDIwNDQwODExMDIwNTQwODExMDIwMTQwODA1MDAxMTRBCis6MTBERkUwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMTAzMDE1MEMwNTQzMDQ4Cis6MTBERkYwMDAxNTA4MDU0MjAxNTBDMDU0MzAxNTBDMDU0MzAxNTBDMEFFCis6MTBFMDAwMDA1NDMwMTUwQzA1NDIwMTUwQzA1NDMwMTUwQzA1NDAxMDE5Cis6MTBFMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MjAwMTA4MDI2Cis6MTBFMDIwMDAwNDIwMDE4ODAwNjIwMDEwODAwNDAwMTEwODAwNDIwMEYyCis6MTBFMDMwMDAxMDgwMDQyMDAxMDgwMDQyMDExMDgwMDQyMDAxMDAwMDJCCis6MTBFMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQyMDIwMDgwODAyMDI3Cis6MTBFMDUwMDAyMDA4MDgwMjAyMjA4MDgwMjAyMDI4MDAwMjAyMDA4MDgwCis6MTBFMDYwMDA4MDIwMjAwQTA4MDIwMjAwODAwMDIwMjAwODA4MDAxMUY5Cis6MTBFMDcwMDA1MDAwMDAwMDAwMDAwMDAwMDA0NTQwMDU2MDAxNTgwMDBECis6MTBFMDgwMDA1NjAwMDU4MDA1NjAwMTU4MDg1NjAwMTU4MDA3NjAwMjlCCis6MTBFMDkwMDA1ODAwNTY0MDE1ODAwNTYwMDMxODAwNzYwMDE1ODAxMTYxCis6MTBFMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQwMDM2MDAwRDgwMDMwCis6MTBFMEIwMDAzNjAwMEQ4MDAxNjAwMEQ4MEEzNjAwMEQ4MDA1NzAwOTE5Cis6MTBFMEMwMDBEODAxMzYwMDBEODAwMzYwMDBEODAwNTcwMDBEODAwMDk1Cis6MTBFMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzMDAxMEMwMEZGCis6MTBFMEUwMDA0MzAwMTBDMDAwMzAwMTBDMDA0MzIwMTBDMDA0NjAwMTQ4Cis6MTBFMEYwMDAwQzAwNDM0MDUwQzEwNDMwMDEwQzAwNDYwMDEwQzAwMDI5Cis6MTBFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwMEMwMEQzCis6MTBFMTEwMDAwMTAwMDBDMDAwMzAwMDBDMDAwMzAwMDBEMDAwMjAwMDBGCis6MTBFMTIwMDAwQzAwMDM0MDAwQzAwMDMwMDAwRDAwMDIwMDAwQzAwMEUxCis6MTBFMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MDEzMTQwNEM1MENDCis6MTBFMTQwMDAxMzEwMDRDNDAxMzE0MDRDNTAxMzE0MDRDNTExMzE0MTYzCis6MTBFMTUwMDA0QzUwMTMxNDA0QzUwMTMxNDA0QzUwMTMxNDA0QzAwMDNBCis6MTBFMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMDU2OEMxNUEzMEQ0Cis6MTBFMTcwMDA1NjhDMTFBMzA0NjhDMTFBMzA1NjhDMTFBMzA1NjhDMENGCis6MTBFMTgwMDA1QTMwNDY4QzExQTMwNDY4QzE1QTMwMTY4QzE1ODAwMDkxCis6MTBFMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDgwMDU3Cis6MTBFMUEwMDAwMjAwMDA4MDAwMjAwMDA4MDAwMjIwMDA5MDAwMjAwMEYzCis6MTBFMUIwMDAwODAwMDI0MDAwODAwMDIwMDAwOTAwMDIwMDAwODAwMEVBCis6MTBFMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDQ2MjAxMTg4NDA0Cis6MTBFMUQwMDA0NjIxMTE4ODQ0NjIxMTE4ODQ0NjAxMTE4ODQ0NjIxMDU2Cis6MTBFMUUwMDAxODg0NDYyMTExODg0NDYyMTExODg0MDYyMTExODAwMDg4Cis6MTBFMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU1MDExNTQwNDIxCis6MTBFMjAwMDA1NTAxMTE0MDQ1NTAxMTE0MDA0NTAxMTE0MDQ0NTAwMDgyCis6MTBFMjEwMDAxNDA0NDUwMDE1NDA0NDUwMTExNDA0NTUwMTExNDAwMEU4Cis6MTBFMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MjE0MjA4NTA4MkE5Cis6MTBFMjMwMDAxNDIwODUwODIxNDIwODUwODIwNDIwODUwODIxNDIwOEM0Cis6MTBFMjQwMDA1MDgyMTQyMDA1MDgyMTQyMDg1MDgyMTQyMDg1MDAwMEM1Cis6MTBFMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMDEwMjgwNDBBMDUxCis6MTBFMjYwMDAxMDI4MDQwQTAxMDI4MDQwQTAxMDI4NDAwQTAxMDI4MDAwCis6MTBFMjcwMDA0MEEwMTAyODQ0MEEwMTAyODA0MEEwMTAyODA0MDAwMDk5Cis6MTBFMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMDM1MzAwRDRDMDk4Cis6MTBFMjkwMDAzNTMwMEQ0QzAxNTMwMEQ0QzAzNTEwMEM0QzAzNTMwMEU1Cis6MTBFMkEwMDBENEMwMzUzMDBENEMwMzUzMDBENEMwMzUzMDBENDAwMDgwCis6MTBFMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDU3MjAxNUM4MDAyCis6MTBFMkMwMDAxNzIwMDVDODA2NzIwMTVDODA1NzIwMTVDODAyNzIwMTJDCis6MTBFMkQwMDA1QzgwNTcyMDE1QzgwNTcyMDE1QzgwMzcyMDExQzAwMDkyCis6MTBFMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMTg0MEM2MTIzMUFBCis6MTBFMkYwMDA4NDhDMjEyMzA4NDhDNjEyMzA4NDBDNjEyMzEwNDhDMjQ0Cis6MTBFMzAwMDAxMjMxODQ4QzAxMjMwODQ4QzYxMjMxMDQ4QzYxMDAwMDRDCis6MTBFMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkY0RkZGRDNGRjlGCis6MTBFMzIwMDBGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRjIzCis6MTBFMzMwMDBEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEMDAwMENECis6MTBFMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTBFMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTBFMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTBFMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDREIwRkI2QzJDRDQyCis6MTBFMzgwMDBCMEIzNkMyQ0RCMEIzNkMyREZCMEIzNkMyQ0RCMEI3RTc2Cis6MTBFMzkwMDBDMkNEQjBCN0ZEMkNEQjBCMzZDMkNEQjBCMzZDMDAwMEU0Cis6MTBFM0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzM0M0RkNGMTMzMzlBCis6MTBFM0IwMDBDNENDRjEzMzNDNENDRjEzM0ZDNENDRjEzMzNDNENGRkM1Cis6MTBFM0MwMDAxMzMzQzRDRkZEMzMzQzRDQ0YxMzMzQzRDQ0YxMDAwMDI2Cis6MTBFM0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCN0U0RURGOTNCNzBECis6MTBFM0UwMDBFNEVDNzkzQjFFNEVERjkzQkZFNDhERjkzQjc4NEVGRkEyCis6MTBFM0YwMDA5M0I3RTRFREZEM0IxRTRFREY5M0I3ODRFREY5MDAwMENCCis6MTBFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDI3MDQwOUMxMEFECis6MTBFNDEwMDAyNzFDMDlDMTAxMzA0MDFDMTA2NzA0MDlDMTAyNzA0MTZBCis6MTBFNDIwMDA5QzExMDcxNDAxQzEwMjcwNDA5QzUwMDcxQzAxQzAwMEUwCis6MTBFNDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDU3MTAxNUM0MEM1Cis6MTBFNDQwMDA1NzEwNTVDNDAxMzEwMDVDNDA1NzEwMTVDNDA1NzEwMUM3Cis6MTBFNDUwMDBEQzQwMTcxODFEQzQwNTcxMDU1QzQwNTcxMDFEQzAwMDM1Cis6MTBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEyMDgwNDgyMEExCis6MTBFNDcwMDAxMjAwMDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MEJBCis6MTBFNDgwMDA0ODIwMTIwODA0ODIwMTIwODA0ODYwMTIwODA0ODAwMDlECis6MTBFNDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwMTgwMDA0Cis6MTBFNEEwMDAwNjAwNDE4MDAwNjAwMDE4MDA0NjAwMDE4MDAwNjAwMDA2Cis6MTBFNEIwMDAxMDAwMDYxMDAxODAwMDYwMDAxODIwNDYxMDAxODAwMDQ2Cis6MTBFNEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQ3MjAxMUM4MDMxCis6MTBFNEQwMDA0NzIwMTFDODA0NzIwMTFDODAwNzIwMTFDODA0NzMwMDcyCis6MTBFNEUwMDAxQzgwNDcyMDExQ0MwNDcyMDExQzgwNDcyMDExQzAwMDAxCis6MTBFNEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwMTgwMEE0Cis6MTBFNTAwMDAwNjAwMDE4NDAwNjAwMDE4MDAwNjAwMDE4MDAwNjA0MEUxCis6MTBFNTEwMDAxODAwMDYwNDAxODEwMDYwMDAxODAwMDYxNDAxODAwMDQ0Cis6MTBFNTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQyMjAxMDg4MDM0Cis6MTBFNTMwMDA0MjcwMTA4QzA0MjIwMTA4QzAwMjIwMTA4ODA0MjIwMEJFCis6MTBFNTQwMDAwODgwNDI1MDEwMDgwNDIyMDEwOTAwNDI0MDEwODAwMDU3Cis6MTBFNTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFMDQ0QTgxMTJBMDBDCis6MTBFNTYwMDA0NEE4MTEyQTA0NEE4MTEyQTAwNEE4MTEyQTA0NEI4MDRECis6MTBFNTcwMDAxMkEwNDQ4ODAxMkUwNDRBODExMjIwMDQ5ODAxMDAwMDUwCis6MTBFNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDBFMDA1MzAwMTRDMDhFCis6MTBFNTkwMDAwNTMwMDE0QzAwNTMwMDE0RTAwNTMwMDE0QzAwNTMwMERECis6MTBFNUEwMDAwNEMwMDUzMDAwNEMwMDAzMDAxNEMwMDUzMDAwNDAxMENBCis6MTBFNUIwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDA0MDA0MDAwMTAwMDNGCis6MTBFNUMwMDAwNDU4MDEwNDAwNDAwMDEwMDAwNDAwMDEwMDAwNDEwMDU0Cis6MTBFNUQwMDAwNDAwNDQ1ODEwNDQwMDAwMDAxMTgwMDQ1MDEwNDAzMEUyCis6MTBFNUUwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDQwMDIwMDAwODAwMEExCis6MTBFNUYwMDAyMDAwMDgwMDQwMDAwMDAwMDAyMDAwMDgwMDAyMDAwMDg5Cis6MTBFNjAwMDA4NDAwMDAwMDA4NDAwMjAwMDA4MDAwMjAwMDA4NDAzMDI0Cis6MTBFNjEwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDQwMDA2MDAxMTgwMDc5Cis6MTBFNjIwMDA0NjAwMDE4MDA2NjAwMTk4MDA0NjAwMTE4MDA0NjAwMUU4Cis6MTBFNjMwMDAxODAwNDYwMDExODAwNDIwMDExODAwNjYwMDExODAzMDg3Cis6MTBFNjQwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMTQwMDA2MDAwOTgwMDgxCis6MTBFNjUwMDAyNjAwMDk4MDAyNjAwMTk4MDAwNjAwMEM4MDAyNjAwMDFDCis6MTBFNjYwMDAxODAwMDYwMDAxODAwMjYwMDA5ODgwMDYwMDAxODIwMDA4Cis6MTBFNjcwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQyMDAzMDgxMEMyMEY2Cis6MTBFNjgwMDA0MzA4MTBDMjI0MzA4MThDMjAwMzA4MTBDMjA0MjA4MDZCCis6MTBFNjkwMDAwQzIwMDMwODE4QzIwNDMwODEwQzIwNDMwODE4QzAxMTU0Cis6MTBFNkEwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAzMDAwMEMwMDlFCis6MTBFNkIwMDAwMzAwMDBDMDQwMzAwMDBDMDAwMzAwMDA4MDAwMzAwMDY4Cis6MTBFNkMwMDAwQzAwMDMyMDAwQzAwMDMwMDAwQzAwMDMyMDAwQzAwMDNDCis6MTBFNkQwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTAyMTAzMDgwMEMyMDBCCis6MTBFNkUwMDAwMzA4MDBDMjAwMzA4MDBDMjAwMzA4MDBDMjAxMjA4MDEzCis6MTBFNkYwMDAwQzIwMDMyQzAwQzIwMDMwODAwQzMwNDMyQzAwQzAwMEUyCis6MTBFNzAwMDA0MDAwMDAwMDAwMDAwMDAwNDA0NTQyMDQ2MDgxMTgyMEU1Cis6MTBFNzEwMDA0NjA4MTE4MjA0NjA4MDE4MjA0NjA4MTE4MjA0NjA4MTM2Cis6MTBFNzIwMDAxODIwNDYwQzExQzIwNDYwODExODMwNDYwQzExQzAxMTJCCis6MTBFNzMwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTQyMDAyMDgwMDgyMDNFCis6MTBFNzQwMDAwMjI4MDA4MjAwMjA4MDA4MjAwMjA4MDA4MjAwMjA4MDI5Cis6MTBFNzUwMDAwODIwMDIwODAxODIwMDIwODAwODIwMDMwODAxODAwMEIwCis6MTBFNzYwMDAwMDAwMDAwMDAwMDAwMDAwNTAwMTQyMDQ2MDgxMTgyMEY5Cis6MTBFNzcwMDA0NjI4MTE4MjA0NjA4MDE4MjA0NjA4MTE4MjA0NjA4MUI2Cis6MTBFNzgwMDAxODIwNDYwODEwODIwNDYwODExODIwNDMwODEwODAwMDc5Cis6MTBFNzkwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQwMDQ1MDAxMTQwMDRCCis6MTBFN0EwMDA0NTAwMTE0MDI1MDAwMDE0MDA0NTAwMTE0MDA0NTAwMUFGCis6MTBFN0IwMDAxNDAwNDUwMDAwNDAwNDUwMDE0MDAwMDEwMDAwNDIxMUQ3Cis6MTBFN0MwMDA1MDAwMDAwMDAwMDAwMDAwNDgwMDA2MDA0MTgwMTA2MDdBCis6MTBFN0QwMDAwNDE4MDEwNjAwNDE4MDEwNjAwNDE4MDEwNjAwNDE4MDAxCis6MTBFN0UwMDAxMDYwMDQxODAxMDYwMDQxODAxMDYwMDQxODAxMDAwMDQ4Cis6MTBFN0YwMDAwMDAwMDAwMDAwMDAwMDAwNDgwMDAyMDUwMDgwNDAyMUU5Cis6MTBFODAwMDAxMDA4MDQwMDAxMDA4MDQwMjAxMDA4MDQwMjAxMDA4MDZDCis6MTBFODEwMDA0MDIwNTAwODE0MDIxMTAwODQ0MDIwMTAwODE0MDAwMDA5Cis6MTBFODIwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQ2MDE1MTgwRDQ2MDE3Cis6MTBFODMwMDAzNTE4MEQ0NjAzNTE4MEQ0NjAxNTE4MEQ0NjAzNTE4MERDCis6MTBFODQwMDA1NDYwMTUxODBENDYwMzUxODBENDYwMzUxODBENDAxMUUxCis6MTBFODUwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMTQ2MDQ3MTgxMUM2MEFGCis6MTBFODYwMDA0NTE4MTFENjA0NzE4MTFDNjA2NzE4MTFDNjA0NzE4MUE2Cis6MTBFODcwMDA5QzYwNDcxODExQzYwNDcxODExQzYwNjcxODExQzAwMEE0Cis6MTBFODgwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNTQ2MDI3MTgwOUM2MDBFCis6MTBFODkwMDAyNzE4MDlDNjAwNzE4MDlDNjA2NzE4MDlDNjAyNzE4MDNDCis6MTBFOEEwMDA5QzYxMjcxODAxQzYwMjcxODA5QzYwMDcxODAxQzAwMDk2Cis6MTBFOEIwMDAwMDAwMDAwMDAwMDAwMDAwNTA0NTQ2MDU3MTgxNUM2MENBCis6MTBFOEMwMDA1NzE4NTVENjAxNzE4MTVDNjA1NzE4MTVDNjA1NzE4MUJFCis6MTBFOEQwMDA1QzYwNTcxODE4QzYwNTcxODE1QzYwNDMxODE4ODIxMTc2Cis6MTBFOEUwMDA1MDAwMDAwMDAwMDAwMDAwNDAwNDUyMDEyMDgwNDgyMDM5Cis6MTBFOEYwMDAxMjQ4MDQ5MDAxMjA4MDQ5MjAxMjA4MDQ4MjAxMjQ4MERCCis6MTBFOTAwMDA0ODIwMTI0ODAwOTIwMTIwODA0ODIwMTc0ODA0ODAwMUM2Cis6MTBFOTEwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDA2MDA2MTgwMTg2MDU4Cis6MTBFOTIwMDAwNjNDMDE4NjAwNjE4MDE4NjA0NjE4MDE4NjAwNjE4MEZGCis6MTBFOTMwMDAxODYwMDYxODAxODYwMDYxODAxODYwNDYxODAxODAwMTgxCis6MTBFOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MTYwMDQ3ODAxMUUwMDhCCis6MTBFOTUwMDA0NzgwMTFFMDI0NzgwMTFFMDAwNzgwMTFFMDA0NzgwMTRGCis6MTBFOTYwMDAxRTAwNDc4MDExRTAwNDM4MDExRTAwNDc4MDExQzAxMUNECis6MTBFOTcwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTEyMDA2MDgwMTgyMERDCis6MTBFOTgwMDAwNjQ4MDE5MjAwNjA4MDE5MjAwNjA4MDE4MjAwNjQ4MDE4Cis6MTBFOTkwMDAxODIwMDY0ODAxOTMwMDIwODAxODIwMDY0ODAxODAwMEI2Cis6MTBFOUEwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQyMDQyMDgxMDgyMDE3Cis6MTBFOUIwMDA0MjA4MTA4MjA0MjA4MTA4MjAwMjA4MTA4MjA0MjA4MTZECis6MTBFOUMwMDAwODIwNDIwODEwOEEwNDYwODEwODIwNDIwODEwODAwMDU0Cis6MTBFOUQwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQyMDQ0MDgxMTAyMDdCCis6MTBFOUUwMDA0NDA4MTEwMjA0NDA4MTEwMjAwNDA4MTEwMjA0NDA4MUVGCis6MTBFOUYwMDAxMDIxNDQwODAxMDIwNDUwODExMDIwMDQwODAxMDAxMTc0Cis6MTBFQTAwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDAzMDA1MEMwMTQzMDFGCis6MTBFQTEwMDAwNTBDMDE0MzAwNTBDMDE0MzAwNTBDMDE0MzAwNTA4MDI4Cis6MTBFQTIwMDAxNDMwMDUwODAxNEEwMDUwQzAxNDMwMDUwODAxNDAwMEE4Cis6MTBFQTMwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDA4MDA0MjAwMTA4MEJDCis6MTBFQTQwMDAwNDIwMDEwODAwNDIwMDEwODAwNDIwMDEwODAwNDIwMDU4Cis6MTBFQTUwMDAxMDgwMDQyMDExMDAwMDQyMDAxMDgwMDQyMDExMDAxMERBCis6MTBFQTYwMDA0MDAwMDAwMDAwMDAwMDAwNDA0NTQyMDIwMDgwODAyMDdECis6MTBFQTcwMDAyMDA4MDgwMjAwMDA4MDgwMjAyMDA4MDgwMjAyMDA4MDkwCis6MTBFQTgwMDA4MDIwMjAwODA4MDIwMjAwODA4MDIwMjAwODA4MDAxMTUxCis6MTBFQTkwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTQwMDA2MDAxMTgwMDJDCis6MTBFQUEwMDA0NjAwMTE4MDA2NjAwMTE4MDA0NjAwMTE4MDA0NjAwMUQ0Cis6MTBFQUIwMDAxODAwNDYwMDExODAwNDYwMDExODAwNjYwMDExODAxMEUzCis6MTBFQUMwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQwMDI2NDAwOTgwMEM3Cis6MTBFQUQwMDAyNjAwMDk5MDA2NjAwMTk4MDAyNjQwMDk4MDAyNjAwMDI3Cis6MTBFQUUwMDA5ODAwMjYwMDAwOTAwMjYwMDA5ODAwMDcwMDAxODAwMDU2Cis6MTBFQUYwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTYwMDQzODA1MEUwMEUyCis6MTBFQjAwMDA0MzgwMTBFMDQ0MzgwMTBFMDA0MzgwMTBFMDA0MzgwMUQ3Cis6MTBFQjEwMDAwRTAwNDM4MDE4QTAwNDM4MDEwRTAwNDY4MDE4ODAxMUIyCis6MTBFQjIwMDA1MDAwMDAwMDAwMDAwMDAwNTAwMDAxMDAzMDQwMEMxMEI4Cis6MTBFQjMwMDAwMzA0MDBDNTAwMzA0MDBDMTAwMzE0MDBDMTAwMzA0MDM1Cis6MTBFQjQwMDAwQzEwMDMwNDAwODc0MDMwNDAwQzEwMDIwNDAwODAwMEM5Cis6MTBFQjUwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNDA1MDAzNTQwMEM1MDlCCis6MTBFQjYwMDAwMzE0MDBENTA0MzE0MTBDNTAwMzVDMDBDNTAwMzEwMDkyCis6MTBFQjcwMDAwQzUwMDMxMDAwOTQwMDMxNDAwQzUwNDMxMDAwQzIwMEIwCis6MTBFQjgwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQzMDUyMEMxMTgzMDhGCis6MTBFQjkwMDA0NjBDMTE5NzAwNjBDMDE4MzA0NjFDMTE4MzA0NjBDMUY4Cis6MTBFQkEwMDAxODMwNTIwQzExODcwNDYwQzExODMwNDYwQzExODAxMUM2Cis6MTBFQkIwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTAwMDAyMTQwMDgwMDVCCis6MTBFQkMwMDAwMjAwMDA4MDAwMjAwMDA4MDAwMjAwMDA4MDAwMjAwMEY5Cis6MTBFQkQwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDAxCis6MTBFQkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQ4NDQyMjAxMTg4NDk5Cis6MTBFQkYwMDA0NjIxMTE5ODAwNjIxMDE4ODQ0NDIwMTE4ODQ0NjIxMTQzCis6MTBFQzAwMDAxODg0NDIyMTExODA0NDYyMTExODg0NDYyMTExODAwMDI5Cis6MTBFQzEwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQwMDQ1MDExMTQwNEIyCis6MTBFQzIwMDA0NTAwMTE0MTAwNTAxMDE0MDA0NTAxMTE0MDQ0NTAxMTlECis6MTBFQzMwMDAxNDA0NDUwMTAxNDA0NDUwMTExNDA0MDUwMTAxNDAxMTIwCis6MTBFQzQwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDA4MjA0MjA4MTA4MjMwCis6MTBFQzUwMDAwNDIwMDEwODIwNDIwODEwODIwNDIwODEwODIwNDIwODc0Cis6MTBFQzYwMDAxMDgyMDQyMjgxMDgyMDUyMDgxMDhBMDQyMjgxMDAwMEE4Cis6MTBFQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDBBMDEwMjg0NDBBMTFFCis6MTBFQzgwMDAxMDI4MDAwQTAxMDI4MDQwQTAxMDI4MDQwQTAxMDI4MDE2Cis6MTBFQzkwMDA0MEEwMTAyQzE0MEEwMDAyODA0MEIwMTAyQzE0MDAwMDc4Cis6MTBFQ0EwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTREMDM1MzQwRDREMDU4Cis6MTBFQ0IwMDAzNTMwMEM0RDAzNTM0MEQ0RDAzNTM0MEQ0RDAzNTM0MDAzCis6MTBFQ0MwMDBENEQwMzUzNDBENEQwMjEzNDBENEQwMzUzNDBENDAxMTFECis6MTBFQ0QwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTA4MDQ3MjAxMUM4MDg4Cis6MTBFQ0UwMDA0NzIwMTVDODA0NzIwMTFDODA0NzIwMTFDODA0NzIxMTA2Cis6MTBFQ0YwMDAxQzgwNDcyNjExQzg0NDcyMDExQzkwNjcyNjExQzAwMDcxCis6MTBFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMDg0MEM2MTIzMThGCis6MTBFRDEwMDA4NDhDMDEwMzA4NDhDNjEyMzA4NDBDNjEyMzE4NDhDMjUxCis6MTBFRDIwMDAxMjMxODQ4QzAxMDMwODQ4QzYxMjMxMDQ4QzAxMDAwMEEyCis6MTBFRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkY0RkZGRDNGRjc1Cis6MTBFRDQwMDBGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkY5Cis6MTBFRDUwMDBEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEMDAwMEEzCis6MTBFRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTBFRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTBFRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTBFRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJERkIwRkI2QzJDREY3Cis6MTBFREEwMDBCMEI3RkQzRkZCMEIzNkMyREZCMEZCNkMyQ0RCMEI3RTNDCis6MTBFREIwMDBDMkNEQjBCN0ZEM0ZGQjBCMzZDMkNERjRCN0ZEMDAwMEFFCis6MTBFREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzRkM0RkNGMTMzM0IwCis6MTBFREQwMDBDNENGRkQzRkZDNENDRjEzM0ZDNEZDRjEzMzNDNENGRjkwCis6MTBFREUwMDAxMzMzQzRDRkZEM0ZGQzRDQ0YxMzMzRjRDRkZEMDAwMEYxCis6MTBFREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCN0U0RURGOTNCN0UzCis6MTBFRTAwMDBFNEVERjkzRkZFNEVERjkzQjdFNEVERjkzQjdFNEVDN0VDCis6MTBFRTEwMDA5M0I3RTRFQzYxMjMxRTRFREY5M0I3ODRFQzYxMDAwMEVFCis6MTBFRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzUyNEExNEEyNEVBCis6MTBFRTMwMDA2MzAxMTQwMjQ0MDA4MTBCMjg3MTAyMTA4MjQwMzgxMUQyCis6MTBFRTQwMDA0MTA0NTAwODE4ODI4NzM4MzFDMzJDNTIwQTEwMDAwMDQwCis6MTBFRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDUxMjgxNDQ4MDBFCis6MTBFRTYwMDA3MTIxMUMwQTA3MUE4MTAyQTA1MjIwMTQ0ODA3MTI4MTNFCis6MTBFRTcwMDBDNjgwNjAyMDA4ODg0NzAyMDE0QTgwNzAyMDEwMDAwMDg4Cis6MTBFRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQzUyQzAxNEEwMDQ0Cis6MTBFRTkwMDA1MjA5MUM4MDA3MjQyMTA4MDg3MTAyMTA4MDQ1MjBBMTE2Cis6MTBFRUEwMDA0OTI4NTIwMTE0QzA0NTAwOTFDNDAwNzIwMjEwMDAwMEFDCis6MTBFRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDcyMDAxQzEwMDY3Cis6MTBFRUMwMDA3MTA5MTA4MDA3MDAwMTAxMDA3MDA4MTg4MDA3MDAwMTE3Cis6MTBFRUQwMDA4OTIwNTIwMTBDODA0NjMwODE0NTA0NjAwMDEwMDAwMEZBCis6MTBFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzIwMjIwMDA4OEFFCis6MTBFRUYwMDAyMDIyMDAwOEMyMjI4MDQwODgwMjIyMDAwODgyMEFBMDQ0Cis6MTBFRjAwMDAwQ0E4MDIyMjAwMDg4MDBBMDA4MDhDMDIyMjAwMDAwMDY3Cis6MTBFRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAyNDMwMDAwNDAyMDQ0Cis6MTBFRjIwMDAzMDA4MDQ0MDQxMzAxMEM4MDAwMDAwMDAwMjAzMDAxMDA3Cis6MTBFRjMwMDBDMDAwMTEwODAwQzI0MzEwODBDMDIwMDEwODAwMDIwMDc4Cis6MTBFRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4QzMwQTIwQzE4Qzc3Cis6MTBFRjUwMDAxMjIyMDQ4ODAxMzYyMEMzMDgxMjI4MDQwODAxMDQwMDg0Cis6MTBFRjYwMDA0QUE4MjIwMTA0Qzg0MTI2MzBDMDg4MDIyMTAwMDIwMEJDCis6MTBFRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDAwQTEwQzE4MDI2Cis6MTBFRjgwMDAzMjIxMEM4ODQzMDI4MDQ0ODAxMjI5MDQwODQyMEE5MEVFCis6MTBFRjkwMDA4QTgwMDAyMDA0NDgwMzBBMTA4MjgwMDAyMDAwMDIwMEJBCis6MTBFRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBODcwMkExODBBQzAxCis6MTBFRkIwMDA0MzI5MTQ4QTg0MDJBMTAwQUM0MTIwMTAwODA2MjYzMTlFCis6MTBFRkMwMDA4MEE0NjAyMDE0NEE0NDMyODE4MUFDNjAyQTE4MDIwMDc3Cis6MTBFRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDcyMjAxQzU4MEIyCis6MTBFRkUwMDA3MzIxMUNDODA3MkEwMTBDODA3MjIwMTA0ODQ3MjYxMTgzCis6MTBFRkYwMDBDNTgwNzMyMDFDODgwNzJBMTE0OTgwNzAyMDE0MDIwMEU0Cis6MTBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwNDUxMDMxQzkwQzlECis6MTBGMDEwMDA3MzAyMUNDMDQ3MDQwMTBBMEM1MTBBMTA4MjQ3MjAzMUI4Cis6MTBGMDIwMDBDODAwNzIwMjFDNDAwNTMwMTFDNDAwNzIwMTE4MDIwMEIxCis6MTBGMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDgxMDEwMDYyNDAxNDUwNDM0Cis6MTBGMDQwMDA1MTgxMTg5MDQ3MTQwMTA0MDQ3MTg4MTAxMjA1MzQwMThECis6MTBGMDUwMDA0NDA0NTE0MDE4RDAwNzM4MDFDNDA0NTIwMTE0QzIwNEJBCis6MTBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcwMDIxODkwQzYzCis6MTBGMDcwMDA2MDAxMUNEMDQ1MjQwMUMxMEM0MjAxMDAwMEM1MjAzMUIzCis6MTBGMDgwMDA0MTA4NDAwMDE4ODA0NTAwMjE0MTBDNzA0MjFDQzIwMDFDCis6MTBGMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDExQzgwQzQyMEVECis6MTBGMEEwMDAzMTA4MTA0MjQyMDg4MEM2MjAzMTA5MDAyMDAzMUM5MDFDCis6MTBGMEIwMDBDNDIwMDE0OTBDNDI0MzEwODA0NDIwMzEwODEwMDAwMDU0Cis6MTBGMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwODMyMDMwNDgwQ0U5Cis6MTBGMEQwMDAzMjQwMTA5MDgxMjQyMEM4MDQzMjQwMTAyMEMzMjA4MDg4Cis6MTBGMEUwMDBDODAwMDI0QTBDQTAwMTI0MTBDODA4MzI0MTEwMDAwMEQ4Cis6MTBGMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDkwMDMwMDAwQzkwNEEwCis6MTBGMTAwMDAzMDQwMDA5MDAwMjAwMDgwMDAxMDQwMTAwMDQwMjAxMDhGCis6MTBGMTEwMDBDMjAwMDA4MDA4MjA0MzA4MTA4MTAwMzI0MDBDQzAwNDY3Cis6MTBGMTIwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDMwMDA0MDAwMDAwMDRGCis6MTBGMTMwMDAxMDAwMDBGMDEwMjAwMDAwMDAxMDAwMDBGMDEwODA0MENGCis6MTBGMTQwMDAwMDAwMDA0MDAwRjAxMDkwODAwMDAwMDAwMDAwQzAwMEFGCis6MTBGMTUwMDAwMDAwMDAwMDAwMDAwMDAwM0MzQzEwODA5MDQwMDAwMEQ3Cis6MTBGMTYwMDAwMDgwMTA5MEEwOTAwMDAwMDAwMDAwMTA5MDgwODAwMEFGCis6MTBGMTcwMDAwMDAwMDAwMDEwOTA4MDkwMDAwMDAwMDA0MDEwOEYwRkYxCis6MTBGMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0QzZCQTA2QzAxQ0Y5Cis6MTBGMTkwMDA0OTI4NjExNDJCMUMwRTQwM0ZEOUJGRDlBQUJDMUE1RjY1Cis6MTBGMUEwMDAwMDEwQTY1MDNCNjFCMzI1QkM0MDE5QkZGRkU5ODAwMEE5Cis6MTBGMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwOTIxNDk0ODAwQzc5Cis6MTBGMUMwMDAwNzNGMkI5NDg2MTQ4NDgwMjgwMDAwNDkxNDA0ODYxMjdCCis6MTBGMUQwMDA4MDAwNDEyNzM0RDA5MDg0OTIwMDJEOEEyMTFFODAwMDI3Cis6MTBGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBMjc1Cis6MTBGMUYwMDBCMTAxMDEwMDAwMDAwMDA4ODRCMTc4MjgwMDAwMDAwMDdGCis6MTBGMjAwMDAwOEIxMzIxNDE0MDAwMDAwMDAwOEE4MjM1NDIxNDAwMDYzCis6MTBGMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEYyCis6MTBGMjIwMDAwMDAwMDAyRkZGRkVGN0MwMDAwMDAwMDAyRkQ3RkVFRjA4Cis6MTBGMjMwMDBDMDAwMDAwMDAwM0ZGRjdGRkZDMDAwMDAwMDAwMDAwMDkyCis6MTBGMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEMyCis6MTBGMjUwMDAwMDAwMDAwRkVGNzdGRkMwMDAwMDAwMDAzRUZGRkVFRjUwCis6MTBGMjYwMDA0MDAwMDAwMDAwM0ZGRkJGRkY0MDAwMDAwMDAwMDAwMDIyCis6MTBGMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDkyCis6MTBGMjgwMDAwMDAwMDAzRkZGREZGRkMwMDAwMDAwMDAzRkZGRkZGRjY2Cis6MTBGMjkwMDBDMDAwMDAwMDAwM0Y3RjJGRkZDMDAwMDAwMDAwMDAwMDAyCis6MTBGMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDYyCis6MTBGMkIwMDAwMDAwMDAxRkZGRkZFRkMwMDAwMDAwMDAxRkVGRUZFRjk2Cis6MTBGMkMwMDBDMDAwMDAwMDAwMkZGRkZGRkZDMDAwMDAwMDAwMDAwMDkyCis6MTBGMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDMyCis6MTBGMkUwMDAwMDAwMDAzRkZGRUZGRkMwMDAwMDAwMDAyRkFGREZGRjc2Cis6MTBGMkYwMDBDMDAwMDAwMDAwM0ZFRkZGRjdDMDAwMDAwMDAwMDAwMDZBCis6MTBGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDAxCis6MTBGMzEwMDAwMDAwMDAzRkRGREZGRkMwMDAwMDAwMDAzRkZGRkZGRkY1Cis6MTBGMzIwMDBDMDAwMDAwMDAwMUZGRkRGRkZDMDAwMDAwMDAwMDAwMDYxCis6MTBGMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQzQyNEExMDAyQzE2Cis6MTBGMzQwMDA1MjBCMThDMjg2MkNBMTgwMzg2MjBBMDg0MEM0MkNBMTM2Cis6MTBGMzUwMDAwODI4NDIwQjE0MDA4NTE0QTEwODI4NDMwQTEwMDAwMDU1Cis6MTBGMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQxMjAxMDM4MEZCCis6MTBGMzcwMDA2MTIwMTAwODA3MTI0MTQyODA3MDIwMUMwODA0MUEwMTA1Cis6MTBGMzgwMDA4NDgxNDAyMDE4MDg0NjM2ODEwNTgwNjMyMDEwMDAwMUUyCis6MTBGMzkwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwODQyNDIxMDAwQzE4Cis6MTBGM0EwMDA1MjAyMTQwMDg3MjgyMTgxMDg3MjA2MUM4Mjg0MjAyMUMxCis6MTBGM0IwMDA0ODE4NDIwMzU0ODA0NTMwMjU0QTE4NTMwMjEwMDAwMTcyCis6MTBGM0MwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQyMjAxMDE4MDZECis6MTBGM0QwMDA0MjIwMThDODQ0MjIwMTgwODQ0MjIwMUM4ODA0MjIwMTUzCis6MTBGM0UwMDAwMDgwNDAyMDEwODg0NDM2MDE0MDgwNDEwMDEwMDAwMDE5Cis6MTBGM0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAwODIwMDAwQzE5Cis6MTBGNDAwMDAyMjAzMDQ0MDgxMDAyMDg0MDgwMzAwMDA4MEMyMDAyMDAxCis6MTBGNDEwMDBDNDA4MDAwMzA4ODg4MjE2QTA0MDg4MzIyMjgwMDAwMEI5Cis6MTBGNDIwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAyMDEwMDgwMDQyMDJECis6MTBGNDMwMDAxMDA4MENDMjEyMTA4NEM4MjIxMjA4MDQwMjAzMDA4OEFCCis6MTBGNDQwMDAwMDIxMDAwQzBDNDA0MTMwMDA4NDIwMTAwODAwMDIwMDE0Cis6MTBGNDUwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4ODIwNjIwMDg4QzYwCis6MTBGNDYwMDAzMjIyMEM4ODgxMjYyMDREODgyMzIyODA4ODgzMDYyMDIyCis6MTBGNDcwMDAwODg4MDAyMzA0OEE4MTM2MjA0Qjg4MzIyMjAwMDAwMDRECis6MTBGNDgwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDIwMjAwMDk4MERGCis6MTBGNDkwMDAzMjIwMDQ4ODYwMjIwMDg5ODQwMDIwMDg5ODAwMDIwMDNECis6MTBGNEEwMDAwMDgwMDAyMDAwMDgwMjNBODA0ODgwMzAyMDAwMDIwMERFCis6MTBGNEIwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDBBQzQxQUExODBBODkzCis6MTBGNEMwMDA0MTJBMTBDQUM3MUFBMTA0QUQ3MTJBMTg0QUQ0MDZCMTNDCis6MTBGNEQwMDAwMEE4NzEyQTEwMDg4NDI2MjkwNkFDNTIyQTEwMDIwMEJFCis6MTBGNEUwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDQyQTAxNDE4MDFDCis6MTBGNEYwMDA0MjIwMUMwMDA0MEEwMTA5ODQ1MTIwMUM4ODQ0MDIwMTk2Cis6MTBGNTAwMDAwODgwNDAyMDEwNEE0NzAyMDE0ODgwNjMyMDEwMDIwMDEyCis6MTBGNTEwMDA4MDAwMDAwMDAwMDAwMDAwMDgwMDAwQzQxMDIxODEwQ0UxCis6MTBGNTIwMDA0MTAyMEMwMEMwMjA2MTBEMEU3MjAyMUM0MEM0MDgzMTYzCis6MTBGNTMwMDAwNDE4NDIwMjEwODA4NzIwQjFDNDBDNTMwMjEwMDAwMDRFCis6MTBGNTQwMDAwMDAwMDAwMDAwMDAwMDAwMDgxMDIwMDcyNDAxQ0MwMDhCCis6MTBGNTUwMDA3MjQwMTQwMDA0MjQwMTA4MDA3MzQxMTBDMDA3MzAxMUU4Cis6MTBGNTYwMDBDQzAwNzEwMTEwMDIwNDIwODE0NjEwNDI0MDEwMDIwNEI4Cis6MTBGNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwQzUxMDIxMDAwODg1Cis6MTBGNTgwMDA2MjAyMUM5MEM1MjQyMTAwMEM3MDgyMUMxMEM0MjAzMTIyCis6MTBGNTkwMDA4ODAyNDAwNjFDMDA4NTAwQTEwMDBDNDA0MjAwMDIwMEM5Cis6MTBGNUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMDUxNDgwMDEyMDdGCis6MTBGNUIwMDAzMDA4MEM0MjA2MDA4MDAxMjQ1MTA4MEMwMjQxMDA4MEYyCis6MTBGNUMwMDA0QzIwMDAwODBDMzA0MjA0MDAwNDIwMDAwODAwMDAwMDE5Cis6MTBGNUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwQzYyNDIwMDAwQzA1Cis6MTBGNUUwMDAzMkMyMDQ4MEM3MzAyMDAwMEM1M0MyMDQxMEMyMjg3MEZECis6MTBGNUYwMDAwQzA5MDIwMjRDODA4MTA0MzAwOTBDMDI0MjEwMDAwMDA4Cis6MTBGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDgwMDEzODAwMDIwMDJGCis6MTBGNjEwMDAxMjQwMEMyMDA3MzQwNDAyMDA2MzAxMDgxMDAwMjQxMDdCCis6MTBGNjIwMDAwNDAwMDIwMTA0ODIwMTA4ODAwOTEwMDI0MDEwMDAwNDU1Cis6MTBGNjMwMDAzMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAxMDgwMDAwMEJBCis6MTBGNjQwMDAyMDgwMDBGMDIwMTA4MDAwMDAyMDgwMDBEMDgwMDAwMDhBCis6MTBGNjUwMDA0MDAwMDAwMDAwMzAxMDAwODAwMDAwMDAwMDAwQ0M0MDlFCis6MTBGNjYwMDAwMDAwMDAwMDAwMDAwMDAwM0MzQzEwODA4MDAwMDAwMDEyCis6MTBGNjcwMDAwMDAwMTA5MDgwODAwMDAwMDAwMDAwMTA5MDgwMDA5MDNBCis6MTBGNjgwMDA4MDAwMTAwMDAwMTBBMDgwMDAwMDAwMjAwMDEwOEMwOEY2Cis6MTBGNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0MUFCRTE3ODAwMEM3Cis6MTBGNkEwMDAzRTQwMjY2RkJBRTMyNDgwMDAxNjU5QkQ4MjgxODJEODdECis6MTBGNkIwMDA4MDAwMDAxOTk5ODY4MDY0ODBDMDNGRDk5OTgwMDAwMTNDCis6MTBGNkMwMDBGMDAwMDAwMDAwMDAwMDAwMDAwMDA2MTYwMjk0MDAxNjgyCis6MTBGNkQwMDBDMDE2OTQ4MjkwMTYxMDgwMjExODI4MjgwMjBBMDIwODY5Cis6MTBGNkUwMDA4MDAwMDAwMDAwMDI4MjgwMTQwMDAxMTQxMUEwNDAwMDdDCis6MTBGNkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4NDdFCis6MTBGNzAwMDAwMjg0QTg4MDAwMDAwMDA4OTEyMjg0NDFBMjA4MjQwMUZDCis6MTBGNzEwMDAzMDAwMDAwMDAwMDAwMDAwMDAwODg0MDE0NDAxMDAwMEU3Cis6MTBGNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMERECis6MTBGNzMwMDAwMDAwMDAzRUY3RkZGN0MwMDAwMDAwMDAyRkU3QjdGRjEyCis6MTBGNzQwMDBDMDAwMDAwMDAwMkZGRTdGRjdDMDAwMDAwMDAwMDAwMDk2Cis6MTBGNzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEFECis6MTBGNzYwMDAwMDAwMDAzNkJGRkVERkMwMDAwMDAwMDAwRkY3REZGRjIzCis6MTBGNzcwMDBDMDAwMDAwMDAwM0RCN0I3RUZDMDAwMDAwMDAwMDAwMDZGCis6MTBGNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDdECis6MTBGNzkwMDAwMDAwMDAxRkRGREZGRkMwMDAwMDAwMDAwRkRGREZGRjAxCis6MTBGN0EwMDBDMDAwMDAwMDAwM0ZFRkZGRkZDMDAwMDAwMDAwMDAwMEFECis6MTBGN0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDRECis6MTBGN0MwMDAwMDAwMDAzRkJGN0ZGRkMwMDAwMDAwMDAzRkZGN0ZGNzQ5Cis6MTBGN0QwMDBDMDAwMDAwMDAwM0ZERkZGRkZDMDAwMDAwMDAwMDAwMDhECis6MTBGN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDFECis6MTBGN0YwMDAwMDAwMDAzRjdFRkZGRjQwMDAwMDAwMDAzRkZFRkZGRkQzCis6MTBGODAwMDBDMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwMDAwMDNDCis6MTBGODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEVDCis6MTBGODIwMDAwMDAwMDAzN0ZGNkZGRkMwMDAwMDAwMDAzRkZGRkZGRjM4Cis6MTBGODMwMDBDMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwMDAwMDBDCis6MTBGODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTBGODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTBGODcwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDIwMDEwMjAwMDAwMDM1Cis6MTBGODgwMDAzMDAwNDMwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTBGODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTBGOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTBGOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTBGOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTBGOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTBGOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTBGOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMDAwMDAwMDAzMEU4Cis6MTBGOTAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTBGOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTBGOTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTBGOTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTBGOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTBGOTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAwMEM3Cis6MTBGOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTBGOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTBGOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTBGOTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTBGOUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTBGOUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDMwQzAzMDQ3Cis6MTBGOUMwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTBGOUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTBGOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTBGOUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTBGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTBGQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMDAwMDAwMDAwRkM4Cis6MTBGQTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTBGQTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTBGQTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTBGQTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTBGQTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTBGQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMDAwMDAwMDAzRjQ4Cis6MTBGQTgwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTBGQTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTBGQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTBGQUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTBGQUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTBGQUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMzBDMDMwQzAwRjI4Cis6MTBGQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTBGQUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTBGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTBGQjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTBGQjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTBGQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzZCMDBDMDAwQ0YyQzhDCis6MTBGQjQwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTBGQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTBGQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTBGQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTBGQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTBGQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwMDQ3Cis6MTBGQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTBGQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTBGQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTBGQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTBGQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTBGQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMEYwMDBGMDAzMEM3Cis6MTBGQzAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTBGQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTBGQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTBGQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTBGQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTBGQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDNGQzAwMEE2Cis6MTBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTBGQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTBGQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTBGQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTBGQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTBGQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwM0ZDMDNGQzAzMDI2Cis6MTBGQ0MwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTBGQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTBGQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTBGQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTBGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTBGRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDBGMDAwRkE3Cis6MTBGRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTBGRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTBGRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTBGRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTBGRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTBGRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMEYwMDBGMDAzRjI3Cis6MTBGRDgwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTBGRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTBGREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTBGREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTBGREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTBGREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwM0ZDMDNGQzAwRjA3Cis6MTBGREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTBGREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTBGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTBGRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTBGRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTBGRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDYzMzVEODBDMDAwRkRBQzQzCis6MTBGRTQwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTBGRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTBGRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTBGRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTBGRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTBGRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTBGRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTBGRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTBGRUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTBGRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTBGRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTBGRUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMDAwMDAwMDAzMEUyCis6MTBGRjAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTBGRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTBGRjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MTBGRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTBGRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTBGRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAwMEMxCis6MTBGRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTBGRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTBGRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTBGRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTBGRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTBGRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDMwQzAzMDQxCis6MTBGRkMwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTBGRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTBGRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTBGRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTA4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTA4MDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMDAwMDAwMDAwRjMyCis6MTA4MDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTA4MDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTA4MDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA4MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTA4MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMDAwMDAwMDAzRkIyCis6MTA4MDkwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA4MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTA4MEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTA4MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA4MEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTA4MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMzBDMDMwQzAwRjkyCis6MTA4MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTA4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTA4MTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTA4MTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTA4MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTA4MTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzc0QzBDMDAwRjBFQzRDCis6MTA4MTUwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTA4MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTA4MTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTA4MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTA4MTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTA4MUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwMEIxCis6MTA4MUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTA4MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTA4MUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTA4MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTA4MUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTA4MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMEYwMDBGMDAzMDMwCis6MTA4MjEwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTA4MjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTA4MjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTA4MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTA4MjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTA4MjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDNGQzAwMDEwCis6MTA4MjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTA4MjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTA4MjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTA4MkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTA4MkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTA4MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOTg2MTA4MDMwODIzRDkwCis6MTA4MkQwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTA4MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTA4MkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTA4MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTA4MzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTA4MzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDBGMDAwRjExCis6MTA4MzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTA4MzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTA4MzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTA4MzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTA4MzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTA4MzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMEYwMDBGMDAzRjkxCis6MTA4MzkwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTA4M0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTA4M0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTA4M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTA4M0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTA4M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwM0ZDMDNGQzAwRjcxCis6MTA4M0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTA4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTA4NDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTA4NDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTA4NDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTA4NDQwMDAwMDAwMDAwMDAwMDAwMDAwMzc2NTI1RTQ4MDAwQjA4OENGCis6MTA4NDUwMDBBQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTA4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTA4NDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTA4NDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MTA4NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERDCis6MTA4NEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENDCis6MTA4NEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTA4NEMwMDAwMDAwMDAwMDMwMDAyMDAxMDIwMjAwMDAzMDAwNDMwMEU0Cis6MTA4NEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTA4NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTA4NEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTA4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZCCis6MTA4NTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVCCis6MTA4NTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRCCis6MTA4NTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCCis6MTA4NTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJCCis6MTA4NTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFCCis6MTA4NTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCCis6MTA4NTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZCCis6MTA4NTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVCCis6MTA4NTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERCCis6MTA4NUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENCCis6MTA4NUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJCCis6MTA4NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFCCis6MTA4NUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlCCis6MTA4NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhCCis6MTA4NUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdCCis6MTA4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTA4NjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTA4NjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTA4NjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTA4NjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJBCis6MTA4NjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFBCis6MTA4NjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBCis6MTA4NjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZBCis6MTA4NjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVBCis6MTA4NjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERBCis6MTA4NkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENBCis6MTA4NkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJBCis6MTA4NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFBCis6MTA4NkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlBCis6MTA4NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBCis6MTA4NkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdBCis6MTA4NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY5Cis6MTA4NzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5Cis6MTA4NzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5Cis6MTA4NzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM5Cis6MTA4NzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI5Cis6MTA4NzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE5Cis6MTA4NzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5Cis6MTA4NzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTA4NzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU5Cis6MTA4NzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ5Cis6MTA4N0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM5Cis6MTA4N0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI5Cis6MTA4N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE5Cis6MTA4N0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk5Cis6MTA4N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg5Cis6MTA4N0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc5Cis6MTA4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTA4ODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTA4ODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTA4ODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTA4ODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTA4ODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTA4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4Cis6MTA4ODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY4Cis6MTA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU4Cis6MTA4ODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ4Cis6MTA4OEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM4Cis6MTA4OEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTA4OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTA4OEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTA4OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4Cis6MTA4OEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc4Cis6MTA4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTA4OTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTA4OTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ3Cis6MTA4OTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTA4OTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTA4OTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTA4OTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTA4OTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY3Cis6MTA4OTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTA4OTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTA4OUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTA4OUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTA4OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE3Cis6MTA4OUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTA4OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTA4OUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTA4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTA4QTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTA4QTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTA4QTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTA4QTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6MTA4QTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTA4QTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTA4QTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTA4QTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6MTA4QTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTA4QUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTA4QUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTA4QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTA4QUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTA4QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2Cis6MTA4QUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc2Cis6MTA4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTA4QjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTA4QjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTA4QjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTA4QjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTA4QjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTA4QjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTA4QjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTA4QjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTA4QjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTA4QkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1Cis6MTA4QkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI1Cis6MTA4QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTA4QkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTA4QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTA4QkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTA4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTA4QzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTA4QzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTA4QzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTA4QzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTA4QzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTA4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTA4QzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTA4QzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTA4QzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTA4Q0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTA4Q0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTA4Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTA4Q0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTA4Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTA4Q0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTA4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTA4RDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTA4RDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTA4RDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTA4RDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTA4RDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTA4RDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTA4RDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTA4RDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTA4RDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTA4REEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTA4REIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTA4REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTA4REQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTA4REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTA4REYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTA4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTA4RTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTA4RTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTA4RTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTA4RTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTA4RTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTA4RTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyCis6MTA4RTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTA4RTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTA4RTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTA4RUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTA4RUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTA4RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTA4RUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTA4RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTA4RUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTA4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTA4RjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTA4RjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTA4RjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTA4RjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTA4RjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTA4RjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTA4RjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTA4RjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTA4RjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MTA4RkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTA4RkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTA4RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MTA4RkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTA4RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTA4RkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTA5MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTA5MDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTA5MDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTA5MDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA5MDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA5MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTA5MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTA5MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTA5MDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTA5MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTA5MEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA5MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTA5MEQwMDAzMDAwMDAwMTAwMDA0NDcyMzAwMDgwMDEwMDAwMDAwM0Y1Cis6MTA5MEUwMDAzMDAwNDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTA5MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTA5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTA5MTEwMDAwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDUzMDAwQTAwMUM4Cis6MTA5MTIwMDAwMDAwMDAwMDMwMDAwMDAxMDAwMEUxNUEwMDAwMDAwMEQzCis6MEM5MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjAwMDAwMDAxRkYKKy8vIFZFUlNJT049IDEuMC4wLjE5MQorLy8gREFURT0gMjAwMm9jdDI4CmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWk2Mi9sb2FkZXIuSEVYIGIvZmlybXdhcmUvZW1pNjIvbG9hZGVyLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWRiMmRjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pNjIvbG9hZGVyLkhFWApAQCAtMCwwICsxLDEwNyBAQAorOjAzMDAwMDAwMDIwMjg3NzIKKzowMzAwNDMwMDAyMDQwMEI0Cis6MTAwMTAwMDBFNEZGRkVDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDFBCis6MTAwMTEwMDA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1NzRDMEUzCis6MTAwMTIwMDBGMDkwN0Y5RUYwOTA3Rjk4RjBFNDkwN0Y5NEYwOTA3RjI1Cis6MTAwMTMwMDA5RDc0RkZGMDkwN0Y5Nzc0QTBGMDkwN0Y5M0UwNTRGQzQzCis6MTAwMTQwMDBGMDkwN0Y5Qzc0MDNGMEU0OTA3Rjk2RjA5MDdGQUZFMDk2Cis6MTAwMTUwMDA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUYwRkJGMDAwMTNDCis6MTAwMTYwMDAwRUJFMDdGOEJGMDhGNTIwMjA0Mjc1MTQwMDc1MTMwMDc1Cis6MTAwMTcwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNEUzCis6MTAwMTgwMDBBQTEzQTkxMkE4MTFDMzEyMDNFRDUwREIyMDIwRDg3QUJDCis6MTAwMTkwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzBECis6MTAwMUEwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjNCCis6MTAwMUIwMDAwMUM3NTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDYxCis6MDYwMUMwMDAwMkYwQzIyMDgwRTZGRgorOjAxMDFDNjAwMjIxNgorOjEwMDFDNzAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMjg1OTA2RgorOjEwMDFENzAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTAyMQorOjEwMDFFNzAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU5NworOjEwMDFGNzAwMTY0NTE1NzAwMzAyMDI4NUU0OTA3RkM1RjA5MDdGQjQyMQorOjEwMDIwNzAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAzMTNBRjBDN0VGNQorOjEwMDIxNzAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUzQQorOjEwMDIyNzAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU3QgorOjEwMDIzNzAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjVCMQorOjEwMDI0NzAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA4RQorOjEwMDI1NzAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MEMwRgorOjEwMDI2NzAwMTIwMzJCQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjVDRAorOjBGMDI3NzAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzNTcKKzowMTAyODYwMDIyNTUKKzowQzAyODcwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDJDRUQ0Cis6MTAwMjkzMDAwMjAxMDBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjgwCis6MTAwMkEzMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzZDCis6MTAwMkIzMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjNCCis6MTAwMkMzMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDZFRTQ3RTU5Cis6MTAwMkQzMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzMwCis6MTAwMkUzMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0Y3Cis6MTAwMkYzMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTIyCis6MTAwMzAzMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQ5Cis6MTAwMzEzMDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDYzCis6MDgwMzIzMDBGOEUyMDhGMEEzREZGQTIyNjIKKzoxMDAzMkIwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwQkEKKzoxMDAzM0IwMDBENzQwMUYwOTA3Rjk3RTA1NDdGRjA0NDgwRjBFNTBDNTIKKzoxMDAzNEIwMEZGOTA3RUMwRTBGNTI4RTRBMjQ3MzNGMjY5RjJFNEEyMDUKKzoxMDAzNUIwMDQ2MzNGMjY5RjJFNEEyNDUzM0YyNjlGMkU0QTI0NDMzODQKKzoxMDAzNkIwMEYyNjlGMkU0QTI0MzMzRjI2OUYyRTRBMjQyMzNGMjY5OTYKKzoxMDAzN0IwMEYyRTRBMjQxMzNGMjY5RjJFNEEyNDAzM0YyNjlGMkEzNTAKKzowMzAzOEIwMERGQzIyMkFDCis6MTAwMzhFMDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RkIxCis6MEIwMzlFMDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyQkEKKzoxMDAzQTkwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMkIKKzowODAzQjkwMEYwRDA4MkQwODNEMEUwMzJDNQorOjEwMDNDMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDA0NAorOjA2MDNEMTAwODJEMDgzRDBFMDMyNkYKKzoxMDAzRDcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwMjAKKzowNjAzRTcwMDgyRDA4M0QwRTAzMjU5Cis6MTAwM0VEMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDY2Cis6MDEwM0ZEMDAyMkRECis6MDEwM0ZFMDAzMkNDCis6MDEwM0ZGMDAzMkNCCis6MTAwNDAwMDAwMjAzQTkwMDAyMDNDMTAwMDIwMzhFMDAwMjA0NTgwMDg3Cis6MTAwNDEwMDAwMjAzRDcwMDAyMDNGRTAwMDIwM0ZGMDAwMjA0ODQwMDZGCis6MTAwNDIwMDAwMjA0ODUwMDAyMDQ4NjAwMDIwNDg3MDAwMjA0ODgwMDlBCis6MTAwNDMwMDAwMjA0ODkwMDAyMDQ4QTAwMDIwNDhCMDAwMjA0OEMwMDdBCis6MTAwNDQwMDAwMjA0OEQwMDAyMDQ4RTAwMDIwNDhGMDAwMjA0OTAwMDVBCis6MDgwNDUwMDAwMjA0OTEwMDAyMDQ5MjAwNzUKKzoxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwQTYKKzowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Cis6MTAwNDZFMDAwMjBBMDAwRjAxMEMxMTA0MEQwMDAwMDAwMDQxMDAwMEYzCis6MDEwNDdFMDAwMDdECis6MDQwNDdGMDAwMjE3MDAwMDYwCis6MDEwNDgzMDAwMDc4Cis6MDEwNDg0MDAzMjQ1Cis6MDEwNDg1MDAzMjQ0Cis6MDEwNDg2MDAzMjQzCis6MDEwNDg3MDAzMjQyCis6MDEwNDg4MDAzMjQxCis6MDEwNDg5MDAzMjQwCis6MDEwNDhBMDAzMjNGCis6MDEwNDhCMDAzMjNFCis6MDEwNDhDMDAzMjNECis6MDEwNDhEMDAzMjNDCis6MDEwNDhFMDAzMjNCCis6MDEwNDhGMDAzMjNBCis6MDEwNDkwMDAzMjM5Cis6MDEwNDkxMDAzMjM4Cis6MDEwNDkyMDAzMjM3Cis6MTAxMTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjAzCis6MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCis6MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCis6MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Cis6MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Cis6MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCis6MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Cis6MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCis6MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Cis6MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Cis6MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCis6MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCis6MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCis6MDIxMUQwMDAwMDAwMUQKKzowMDAwMDAwMUZGCisvKgorU291cmNlOiBFTUlMT0FELkhFWAorVkVSU0lPTj0xLjAuMi4wMDIKK0RBVEU9MTAuMDEuMjAwMgorRU1JMjZfNjIKKyovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWk2Mi9taWRpLkhFWCBiL2Zpcm13YXJlL2VtaTYyL21pZGkuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYTBkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWk2Mi9taWRpLkhFWApAQCAtMCwwICsxLDEyNjYgQEAKKzowMzAwMDAwMDAyNDZCOUZDCis6MDMwMDAzMDAwMjBGRkRFQworOjAzMDAwQjAwMDI0RTBGOTMKKzowMzAwMTMwMDAyMTdGREQ0Cis6MDMwMDFCMDAwMjRFMTI4MAorOjAzMDAyMzAwMDI0REVGOUMKKzowMzAwMkIwMDAyNDgwMDg4Cis6MDMwMDMzMDAwMjRERTY5NQorOjAzMDAzQjAwMDI0REY2N0QKKzowMzAwNDMwMDAyNDkwMDZGCis6MDMwMDRCMDAwMjRFMDM1RgorOjAzMDA1MzAwMDI0OEZBNjYKKzowMzAwNUIwMDAyNERGRDU2Cis6MDMwMDYzMDAwMjRFMDc0MworOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgorOjEwMDUxMDAwMDAwMTA5MDIwODAyMDUwMTAwODAzMjA5MDQwMDAwMDAwMAorOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQorOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQorOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQorOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAorOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAorOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAorOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAorOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAorOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAorOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQorOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgorOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQorOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAorOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAorOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQorOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgorOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQorOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgorOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQorOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMworOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAorOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgorOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQorOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQorOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAorOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQyNAorOjEwMDZDMDAwMDMwMDAwMDEwMTAwMDAwOTI0MDEwMDAxMDkwMDAxMDRFOAorOjEwMDZEMDAwMDkwNDA0MDAwMjAxMDMwMDAwMDcyNDAxMDAwMTI0MDBCMgorOjEwMDZFMDAwMDYyNDAyMDEwNzAwMDkyNDAzMDIwODAxMDcwMTAwMDY4RAorOjEwMDZGMDAwMjQwMjAyMDkwMDA5MjQwMzAxMEEwMTA5MDEwMDA5MDU3NQorOjEwMDcwMDAwMDEwMjA0MDAwMDAwMDAwNTI1MDEwMTA3MDkwNTgxMDIxRQorOjEwMDcxMDAwMDQwMDAwMDAwMDA1MjUwMTAxMEEwNDAzMDkwNDE4MDM3MAorOjEwMDcyMDAwNDUwMDZEMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ3MDAxQworOjEwMDczMDAwNkQwMDYyMDA0ODAwMjIwMzQ1MDA2RDAwNjEwMDY3MDAwMworOjEwMDc0MDAwNjkwMDYzMDAyMDAwNDUwMDREMDA0OTAwMjAwMDM2MDA4QworOjEwMDc1MDAwN0MwMDMyMDAyMDAwNkQwMDJBMDM0MzAwNkYwMDZFMDAxMQorOjEwMDc2MDAwNjYwMDY5MDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDAyRQorOjEwMDc3MDAwNkYwMDZFMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2QworOjEwMDc4MDAwNjcwMDIyMDM0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA3NQorOjEwMDc5MDAwNjEwMDYzMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RQorOjA2MDdBMDAwNkUwMDY3MDAwMDAwN0UKKzoxMDA3QTYwMEU0OTA3NjY2RjAxMjQ0QUQyMDI2MTM5MDc2NjZFMEMzOTgKKzoxMDA3QjYwMDk0MDI1MDBBRTAwNEYwRDI0MjEyNEI3RjgwRUEzMDI2QkYKKzoxMDA3QzYwMDA1MTIyODAxQzIyNjMwMjUyQjkwNzY5NkUwNTRGQ0YwQkYKKzoxMDA3RDYwMDkwODAwM0YwMTIxNDk2OTA3Njk2RTA0NDAzRjA5MDgwOTEKKzoxMDA3RTYwMDAzRjBFNDkwNzY2N0YwOTA3NjY3RTAwNEYwRTBCNDRCQUYKKzowQTA3RjYwMEY2MTI0N0ZBMTI0MTFCODBDNTIyREIKKzoxMDA4MDAwMEU0OTA3NjMxRjA5MDc2MzFFMEZGNzVGMDAzQTQyNDBGODgKKzoxMDA4MTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENEEKKzoxMDA4MjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MzFFMDA0RjA4MEQ1NTEKKzoxMDA4MzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQjEKKzoxMDA4NDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MzNGMDI0MjkKKzoxMDA4NTAwMEYwNjAwQTI0MEU2MDAyODE4NzEyNEJDNzIyOTA3RkVENjAKKzoxMDA4NjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzc3NDAxNDUKKzoxMDA4NzAwMEYwOTA3NjM5NzQwM0YwOTA3NjIxRjBFNDkwNzYyMEYwRDEKKzoxMDA4ODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjIwRTBGRjc1RjAwQUE0RjQKKzoxMDA4OTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENUEKKzoxMDA4QTAwMEVFNkQ2MDEyOTA3NjIxRTBGRUVGQzM5RTUwMDg5MDc2QzgKKzoxMDA4QjAwMDIwRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTUKKzoxMDA4QzAwMDE4NzQwNkYwOTA3NjM3NzQwNEYwOTA3NjM5NzQwQUYwNTQKKzoxMDA4RDAwMDkwNzYyMUYwOTA3NjIwNzQwM0YwOTA3RkVBRTBGNDYwNDcKKzoxMDA4RTAwMDJGOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjQKKzoxMDA4RjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2ODQKKzoxMDA5MDAwMDIxRTBGRUVGQzM5RTUwMDg5MDc2MjBFMDA0RjA4MEQxRjUKKzoxMDA5MTAwMDkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RUQKKzoxMDA5MjAwMEY1ODNFMDkwNzIyOUYwRTQ5MDc2M0JGMDkwNzYyMUUwMzgKKzoxMDA5MzAwMEZFRUY2RTcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRjAKKzoxMDA5NDAwMEUwMTQ2MDEzMTQ3MDAyMjFFMjI0MDI2MDAyODE3RjkwOUYKKzoxMDA5NTAwMDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAxNDcwN0M5MDdGNDYKKzoxMDA5NjAwMEVBRTBGNDcwNDg5MDc2MzdFMDkwNzYyMEYwOTA3NjM5OUYKKzoxMDA5NzAwMEUwRkU5MDc2MjBFMEZEQzM5RTUwMkI5MDc2M0JFMEZFOUIKKzoxMDA5ODAwMDA0RjA3NEMwMkVGNTgyRTQzNDdFRjU4M0UwRkVFRDc1NEMKKzoxMDA5OTAwMEYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0VFRjA5MDc2OEEKKzoxMDA5QTAwMDIwRTAwNEYwODBDNzkwNzYzRjc0MDFGMDIyOTA3RUMwNzIKKzoxMDA5QjAwMEUwRkVFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzMEMKKzoxMDA5QzAwMEVFRjBFMEI0MDEwODkwNzYzRTc0MDFGMDgwMDVFNDkwMEEKKzoxMDA5RDAwMDc2M0VGMDkwNzYzRjc0MDFGMDIyOTA3RkI0RTA0NDAxQkYKKzoxMDA5RTAwMEYwMjI5MDdGRTlFMDI0RkU3MDAyNDFBMzE0NzAwMjYxQkUKKzoxMDA5RjAwMDNGMTQ3MDAyNjFEQjI0MDM2MDAyODE3NzkwN0ZFQUUwOUMKKzoxMDBBMDAwMEY0NzA2QjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGQzYKKzoxMDBBMTAwMDkwNzYyMEUwRkVDMzlGNTA0RTkwNzYzQkUwRkYwNEYwQkUKKzoxMDBBMjAwMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTIKKzoxMDBBMzAwMEE0MjRBQ0Y1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkUwQzYKKzoxMDBBNDAwMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFRkUKKzoxMDBBNTAwMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwQzcKKzoxMDBBNjAwMDc2MjBFMDA0RjA4MEE0OTA3NjQwNzQwMUYwMjI5MDdFMUQKKzoxMDBBNzAwMEMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUNGNTgyNzkKKzoxMDBBODAwMEU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBNzcKKzoxMDBBOTAwMEE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwNzY0MTc0Q0IKKzoxMDBBQTAwMDAxRjAyMjkwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2NkQKKzoxMDBBQjAwMDIwRjA5MDc2MzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyNjAKKzoxMDBBQzAwMDgxOEU5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0MTEKKzoxMDBBRDAwMDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRUY1ODJFNDM0REYKKzoxMDBBRTAwMDc1RjU4M0VGRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1Q0UKKzoxMDBBRjAwMDgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRkY1QkUKKzoxMDBCMDAwMDgyRTQzNDc1RjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyNjMKKzoxMDBCMTAwMDkwN0VDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFFM0YKKzoxMDBCMjAwMEY1ODJFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1NTkKKzoxMDBCMzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwMzcKKzoxMDBCNDAwMDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2NTkKKzoxMDBCNTAwMDM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2QzAKKzoxMDBCNjAwMDNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwQUYKKzoxMDBCNzAwMEZGRUU3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0VGMzYKKzoxMDBCODAwMEYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjEKKzoxMDBCOTAwMEY1ODNFMEZGRUU3NUYwMEFBNDI0QjFGNTgyRTQzNDc1MjQKKzoxMDBCQTAwMEY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwMjQKKzoxMDBCQjAwMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRCMEY1ODJFNDM0QkMKKzoxMDBCQzAwMDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0ODYKKzoxMDBCRDAwMEIxRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRUFFMEY0MUEKKzoxMDBCRTAwMDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRjkwNEUKKzoxMDBCRjAwMDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NjNCRTBGRjA0QUEKKzoxMDBDMDAwMEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwREEKKzoxMDBDMTAwMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCQjQKKzoxMDBDMjAwMEUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGMkEKKzoxMDBDMzAwMEVFNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1ODNFRkYwODEKKzoxMDBDNDAwMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMEZGOTA3NjIwQjUKKzoxMDBDNTAwMEUwRkU3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGNjIKKzoxMDBDNjAwMEYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNEIzRjU4MkU0QjMKKzoxMDBDNzAwMDM0NzVGNTgzRUZGMDIyOTA3RkI0RTA0NDAxRjAyMjkwQzgKKzowRjBDODAwMDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjAxCis6MTAwQzhGMDA0MTc2NjgwMTQxNzY2QTAyNDE3NjZCMEFDMTIwQzEyMTIzCis6MDIwQzlGMDBDMTJGNjMKKzowNDBDQTEwMDQxNzYyMzAwNzUKKzoxMDBDQTUwMDQxNzIwMTAxNDU3MjA1MDAwMkM5MDAwMDQ1NzIwQTAwNDIKKzoxMDBDQjUwMDAxMDIwMzA0NEQ3MjBGRDEwMEQxMDAwMDAwMDAwMDAwQjUKKzoxMDBDQzUwMDI4MjgwOTAwNEQ3MjFDMDEwMDAxMDIwMzA0MDUwNjA3Q0UKKzoxMDBDRDUwMDA4MDkwQTBCNDE3MjJFMjI0MTcyMkYyMzQxNzIzMDIwREUKKzoxMDBDRTUwMDQxNzIzMTIxNjJEMjcyM0EwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDBDRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDBEMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDBEMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDBEMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDBEMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDBENDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDBENTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDBENjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDBENzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxNjgKKzoxMDBEODUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNEUKKzoxMDBEOTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxM0UKKzoxMDBEQTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMkUKKzoxMDBEQjUwMDAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMTYKKzoxMDBEQzUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRkUKKzoxMDBERDUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRUUKKzoxMDBERTUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyREUKKzoxMDBERjUwMDAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQzMKKzoxMDBFMDUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQUQKKzoxMDBFMTUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOUQKKzoxMDBFMjUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOEQKKzoxMDBFMzUwMDAzMDMwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NkYKKzoxMDBFNDUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NUQKKzoxMDBFNTUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NEQKKzoxMDBFNjUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0M0QKKzoxMDBFNzUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MUQKKzoxMDBFODUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MEQKKzoxMDBFOTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1RkQKKzoxMDBFQTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNjA2RUIKKzoxMDBFQjUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2Q0QKKzoxMDBFQzUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QkQKKzoxMDBFRDUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QUQKKzoxMDBFRTUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNzA3MDcwODA4OTYKKzoxMDBFRjUwMDA4MDkwOTA5MEEwQTBBMEIwQjBCMEMwQzBDMEQwRDBENDAKKzoxMDBGMDUwMDBFMEUwRTBGMEYwRjEwMTAxMDExMTExMTEyMTIxMjEzRDkKKzoxMDBGMTUwMDEzMTMxNDE0MTQxNTE1MTUxNjE2MTYxNzE3MTcxODE4NzQKKzoxMDBGMjUwMDE4MTkxOTE5MTkxQTFBMUExQTFCMUIxQjFCMUMxQzFDMTgKKzoxMDBGMzUwMDFDMUQxRDFEMUQxRTFFMUUxRTFGMUYxRjFGMjAyMDIwQzgKKzoxMDBGNDUwMDIxMjEyMTIyMjIyMjIzMjMyNDI0MjUyNTI2MjYyNzI3NjEKKzoxMDBGNTUwMDI4MjgyOTI5MkEyQTJCMkIyQzJDMkQyRDJFMkUyRjJGRDQKKzoxMDBGNjUwMDMwMzAzMTMxMzIzMjMzMzMzNDM0MzUzNTM2MzYzNzM3NDQKKzoxMDBGNzUwMDM4MzgzOTM5M0EzQTNCM0MzRDNFM0Y0MDQxNDI0MzQ0OUIKKzoxMDBGODUwMDQ1NDY0NzQ4NDk0OTRBNEI0QjRDNEQ0RTRGNTA1MTUyQTcKKzoxMDBGOTUwMDUzNTQ1NTU1NTY1NjU3NTc1ODVBNUI1RDVFNUY2MTYyQjcKKzoxMDBGQTUwMDYzNjQ2NTY2Njc2ODY5NkE2QjZDNkQ2RjcxNzI3Mzc0OEIKKzoxMDBGQjUwMDc1NzY3Nzc4Nzk3QTdCN0M3RTgwMDEzNzAxMDEzODAwRjgKKzowMTBGQzUwMDAwMkIKKzoxMDBGQzYwMEU0RkY3NDQ2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDIwNjAKKzoxMDBGRDYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ0RTJGRjU4MkU0MkIKKzoxMDBGRTYwMDM0NzZGNTgzRTBGRTc0MzAyRkY1ODJFNDM0ODBGNTgzQTEKKzowNjBGRjYwMEVFRjAwRkJGMDhDQzc1Cis6MDEwRkZDMDAyMkQyCis6MDMwRkZEMDBDMjg5MzI3NAorOjEwMTAwMDAwRTQ5MDc2MkNGMDkwNzYyQ0UwRkY3NUYwMDNBNDI0MEY4QQorOjEwMTAxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0MgorOjEwMTAyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYyQ0UwMDRGMDgwRDU0RQorOjEwMTAzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNBOQorOjEwMTA0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYyRUYwMjQyNgorOjEwMTA1MDAwRjA2MDBBMjQwRjYwMDI4MTdEMTI0QkE0MjI5MDdGRUQ4NAorOjEwMTA2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzODc0MDEzQworOjEwMTA3MDAwRjA5MDc2M0E3NDAzRjA5MDc2MUNGMEU0OTA3NjFCRjBEMgorOjEwMTA4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MUJFMEZGNzVGMDBBQTRGMQorOjEwMTA5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1MgorOjEwMTBBMDAwRUU2RDYwMTI5MDc2MUNFMEZFRUZDMzlFNTAwODkwNzZDNQorOjEwMTBCMDAwMUJFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFMgorOjEwMTBDMDAwMTg3NDA2RjA5MDc2Mzg3NDA0RjA5MDc2M0E3NDBBRjA0QQorOjEwMTBEMDAwOTA3NjFDRjA5MDc2MUI3NDAzRjA5MDdGRUFFMEY0NjA0OQorOjEwMTBFMDAwMkY5MDc2MUJFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2MQorOjEwMTBGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY3QworOjEwMTEwMDAwMUNFMEZFRUZDMzlFNTAwODkwNzYxQkUwMDRGMDgwRDFGNworOjEwMTExMDAwRTQ5MDc2MUVGMDkwNzYxQ0UwRkY5MDc2MUJFMEZFNkY2OAorOjEwMTEyMDAwNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJFMDE0NjBGRgorOjEwMTEzMDAwMTMxNDcwMDIyMUJGMjQwMjYwMDI4MTc1OTA3RkI0RTAxNQorOjEwMTE0MDAwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDZCOTA3RkVBRTAxOQorOjEwMTE1MDAwRjQ3MDRBOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MworOjEwMTE2MDAwOTA3NjFCRTBGREMzOUY1MDJCRUQ3NUYwMEFBNDI0QUJENQorOjEwMTE3MDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRDA0RjAxRgorOjEwMTE4MDAwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTA1OAorOjEwMTE5MDAwMDRGMDgwQzc5MDc2MUVFMDkwN0ZCNUYwMjJFRTc1RjBFNworOjEwMTFBMDAwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA2NworOjEwMTFCMDAwOTA3RkI1NzQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA1QQorOjEwMTFDMDAwN0ZFOUUwMjQ3RTcwMDI0MTdFMTQ3MDAyNjEyMzE0NzA3NgorOjEwMTFEMDAwMDI2MUM4MjQwMzYwMDI4MTZEOTA3RkVBRTBGNDcwNkRDMworOjEwMTFFMDAwOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUI5MAorOjEwMTFGMDAwRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QUNGNTgyRTRGMQorOjEwMTIwMDAwMzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkQ0OQorOjEwMTIxMDAwRjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QUQ5NworOjEwMTIyMDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA2RAorOjEwMTIzMDAwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTBBNgorOjEwMTI0MDAwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUI4QgorOjEwMTI1MDAwRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTA3MAorOjEwMTI2MDAwOTA3RjAwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVBOAorOjEwMTI3MDAwRjU4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCQgorOjEwMTI4MDAwRUFFMEY0NzA2RDkwNzYzOEUwOTA3NjFCRjA5MDc2M0E1NAorOjEwMTI5MDAwRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEZGNzVGMDBBQTQ3QgorOjEwMTJBMDAwMjRBRUY1ODJFNDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQxMQorOjEwMTJCMDAwMDRGMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVEMQorOjEwMTJDMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRTBGRjkwNzY0QworOjEwMTJEMDAwMUVFMEZFMDRGMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUYwNworOjEwMTJFMDAwRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjUyRAorOjEwMTJGMDAwRjAyMjkwNzYxQkUwRkY3NUYwMEFBNDI0QUVGNTgyRTQ5QworOjEwMTMwMDAwMzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUYwMEFBNDI0QUYwOAorOjEwMTMxMDAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMUYwOTA3RkI1NzQzOQorOjEwMTMyMDAwMDJGMDIyOTA3RkVBRTBGNDcwNkQ5MDc2MzhFMDkwNzZEQgorOjEwMTMzMDAwMUJGMDkwNzYzQUUwRkY5MDc2MUJFMEMzOUY1MDRGRTBBMQorOjEwMTM0MDAwRkY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0UwRkU1RAorOjEwMTM1MDAwOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTgyRTQzNDdGRjVGNAorOjEwMTM2MDAwODNFRUYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1RjU0QworOjEwMTM3MDAwODNFMEZGOTA3NjFFRTBGRTA0RjA3NDAwMkVGNTgyRTQxOAorOjEwMTM4MDAwMzQ3RkY1ODNFRkYwOTA3NjFCRTAwNEYwODBBNDkwNzYzNAorOjEwMTM5MDAwMUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEZGNzVGMDBBQTQ2NgorOjEwMTNBMDAwMjRCMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVBQQorOjEwMTNCMDAwRjAwQUE0MjRCMUY1ODJFNDM0NzVGNTgzRTA5MDdGMDE0RQorOjEwMTNDMDAwRjA5MDdGQjU3NDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTBBNworOjEwMTNEMDAwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCRTA0RQorOjEwMTNFMDAwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzRBNQorOjEwMTNGMDAwNzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJERjU5NworOjEwMTQwMDAwODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEIzRjU5RgorOjEwMTQxMDAwODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNzRGQworOjEwMTQyMDAwMDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDQyNAorOjEwMTQzMDAwRjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCRTBCRAorOjEwMTQ0MDAwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0UwOTBDOAorOjEwMTQ1MDAwN0YwMEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU0QgorOjEwMTQ2MDAwODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQjQwQQorOjEwMTQ3MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjQ3OAorOjA1MTQ4MDAwRTA0NDAxRjAyMjMwCis6MTAxNDg1MDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTdBCis6MDExNDk1MDAyMjM0Cis6MTAxNDk2MDA5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkUwCis6MTAxNEE2MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMERDCis6MTAxNEI2MDA4Q0UwQzBFMEMwODJDMDgzMDU4NkMwODRDMDg1N0QwMDA0Cis6MTAxNEM2MDA5MDdGRTM3NDdCRjBBMzc0ODBGMDdDMTE5MDdGOTlFMEE5Cis6MTAxNEQ2MDA1NDQwREMwMzAyMTRGM0I0MDAxMzkwN0ZFMjc0NDBGMDJFCis6MTAxNEU2MDA5MDdGRTVGMDkwN0ZFMjc0MDBGMDAyMTREMjkwNzY5MDNGCis6MTAxNEY2MDBFMEI0MDExMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMENCCis6MTAxNTA2MDA5MDdGNkMwMjE1NTdCNDAyMTI5MDc2OEZFMDJERkQ5MEY1Cis6MTAxNTE2MDA3RkUyNzQ4MEYwOTA3RjZDMDIxNTk2QjQwMzEyOTA3Njg5Cis6MTAxNTI2MDA4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTVFMUQ0Cis6MTAxNTM2MDBCNDA0MTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjA5MEQ3Cis6MTAxNTQ2MDA3RjZDMDIxNjEwOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNjFBCis6MTAxNTU2MDA0MEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERjI3REI5Cis6MTAxNTY2MDAwMjA1ODY5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNEZECis6MTAxNTc2MDAwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMDJECis6MTAxNTg2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERENDAyMTY0MEZDCis6MTAxNTk2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDQ1Cis6MTAxNUE2MDBGMEYwRERFQzdEMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjFFCis6MTAxNUI2MDA5QkUwNTQwNEI0MDAwNTA1ODYwMjE2NDA5MDdGRTI3NDUxCis6MTAxNUM2MDA4MEYwMDU4NkYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERBCis6MDYxNUQ2MDBGMEYwRjBGMEYwRjA2RgorOjEwMTVEQzAwRERDRTAyMTY0MEYwRjBGMEYwRERGQTdEMDIwNTg2OTBDQgorOjEwMTVFQzAwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1ODYwNAorOjEwMTVGQzAwMDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwREQ4QQorOjEwMTYwQzAwREMwMjE2NDBGMEYwRjBGMEYwRjBEREY4N0QwMjA1ODYxQgorOjEwMTYxQzAwOTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDVDOQorOjEwMTYyQzAwODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBCMAorOjEwMTYzQzAwRjBGMEREREE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODY3RQorOjEwMTY0QzAwRDA4M0QwODJEMEUwRkNEMEUwRkREMEUwRkVEMEUwRkYzMworOjA1MTY1QzAwRDBFMEQwRDAyMjE3Cis6MTAxNjYxMDBDMEQwQzBFMEMwODJDMDgzOTA3NjdDRTA5MDdGNkZGMEY0Cis6MTAxNjcxMDA5MDc2N0RFMDkwN0Y2RkYwOTA3NjdFRTA5MDdGNkZGMEM2Cis6MDkxNjgxMDBEMDgzRDA4MkQwRTBEMEQwMjI0OQorOjEwMTY4QTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODM3RQorOjEwMTY5QTAwMDU4NkMwODRDMDg1OTA3Njg3RTBGRkJGMDAwMzAyMTdFNQorOjEwMTZBQTAwMDE5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0YxMgorOjEwMTZCQTAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0ZBNgorOjEwMTZDQTAwRjA5MDdGRTI3NDgwRjA5MDc2OEVFMEI0MDEwNTA1ODY5MgorOjEwMTZEQTAwMDIxNkY2QjQwMjA1MDU4NjAyMTZFQjA1ODYwMjE2RkIwQgorOjEwMTZFQTAwRTBFMEUwRTBFMEUwREZGODAyMTZGQkUwRTBFMEUwREY2NworOjEwMTZGQTAwRkE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODZEMDgzRDAzQQorOjBDMTcwQTAwODJEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODIKKzoxMDE3MTYwMEMwODJDMDgzQzBFMEU4QzBFMDc4RDFFODE0Rjg3MEZCNkUKKzowQTE3MjYwMEQwRTBGOEQwRTBEMDgzRDA4MjIyOUEKKzoxMDE3MzAwMEMwODJDMDgzQzBFMEU4QzBFMDc4NzhFODE0Rjg3MEZCQUQKKzowQTE3NDAwMEQwRTBGOEQwRTBEMDgzRDA4MjIyODAKKzowNzE3NEEwMDkwN0ZDNTc0MDJGMDIyM0MKKzoxMDE3NTEwMDkwN0VDMEUwOTA3NjQ1RjA5MDdFQzFFMDkwNzY0NEYwQjYKKzoxMDE3NjEwMDkwN0VDMkUwOTA3NjQzRjBCNDAwMDMwMjE3Nzg5MDc2NDEKKzoxMDE3NzEwMDE5NzQwM0YwMDIxNzhFOTA3NjQ0RTBCNEJCMDk5MDc2OTkKKzoxMDE3ODEwMDE5NzQwMkYwMDIxNzhFOTA3NjE5NzQwMUYwOTA3NjQyNjYKKzowMzE3OTEwMEU0RjAyMjVGCis6MDQxNzk0MDA4RDI5OEIyQUU2Cis6MTAxNzk4MDAxMjRBNTVFQTQ5NjA1NzEyMzY5MjdFMDAyOUZGRUUzQUZFCis6MTAxN0E4MDBDOUVGQzk3NTJCRkZGNTJDODkyREFCMkJBQTJDQTkyREI4Cis6MTAxN0I4MDA5MDAwMDExMjM2QUJGRjY0MDQ2MDA1RUY2NDA1NzAyRURCCis6MTAxN0M4MDBFRkI0MDQxNTkwMDAwMjEyMzZBQjY1Mjk3MDBCOTAwMDM3Cis6MTAxN0Q4MDAwMzEyMzZBQjY1MkE3MDAxMjIxMjM2OTI3RTAwMjlGRjY5Cis6MTAxN0U4MDBFRTNBQzlFRkM5NzUyQkZGRjUyQzg5MkQ4MEJDN0IwMDFCCis6MDQxN0Y4MDA3QTAwNzkwMEZBCis6MDExN0ZDMDAyMkNBCis6MDMxN0ZEMDBDMjhCMzI2QQorOjEwMTgwMDAwOTA3NjkwRTAxNDYwMzcxNDcwMDIwMUQ4MTQ3MDAyMjFCMQorOjEwMTgxMDAwNzIxNDcwMDI0MTNCMjQwNDYwMDI2MTAzOTA3RkZDNzRFNworOjEwMTgyMDAwQ0NGMDkwN0ZGRjc0RkNGMDkwNzY5NUUwNDQwMUYwNTQ4QQorOjEwMTgzMDAwMDVGMDkwODAwMUYwRTQ5MDc2MUFGMEMyMkUyMjkwNzZBNgorOjEwMTg0MDAwOTVFMDQ0MDFGMDQ0MDJGMDMwM0UwNkUwNDQwNEYwODBBQworOjEwMTg1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3QQorOjEwMTg2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTIyOTAyNworOjEwMTg3MDAwN0ZGQzc0NzRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkI3MworOjEwMTg4MDAwRjA5MDc2OTdFMDU0RkRGMEU0OTA3NjgxRjA5MDc2ODBDOQorOjEwMTg5MDAwRjBFRkI0MDIyMjkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkMzQworOjEwMThBMDAwRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJGMEU0OTBGOQorOjEwMThCMDAwNzY4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkU4NAorOjEwMThDMDAwRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDU0RkIyMworOjEwMThEMDAwRjA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTRGRUYwNDRGMworOjEwMThFMDAwMDJGMDMwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTQyNAorOjEwMThGMDAwRkJGMDkwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFCNAorOjEwMTkwMDAwRjA5MDc2MTlFMEZGQjQwMTIyOTA3RkZDNzQzMEYwOTBFMworOjEwMTkxMDAwN0ZGRjc0RkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGNAorOjEwMTkyMDAwRkRGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjIyOTBBMgorOjEwMTkzMDAwN0ZGQzc0MUNGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkYwNgorOjEwMTk0MDAwRjA5MDc2OTdFMDQ0MDJGMEU0OTA3NjgxRjA5MDc2ODAxMworOjEwMTk1MDAwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTczQworOjEwMTk2MDAwRTA0NDAxRjA5MDc2OTdFMDU0RkJGMDkwODAwMkYwRDJEMgorOjEwMTk3MDAwMkUyMjkwNzY5NUUwNDQwMUYwNDQwMkYwNDQwOEYwMzBDNQorOjEwMTk4MDAwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTAyQQorOjEwMTk5MDAwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFGMDkwNzY5OAorOjEwMTlBMDAwMTlFMEZGQjQwMTI1OTA3RkZDNzRDQ0YwOTA3RkZGNzRBOAorOjEwMTlCMDAwRkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGREYwNTQwNQorOjEwMTlDMDAwRkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjI1OTAwMQorOjEwMTlEMDAwN0ZGQzc0QzhGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkZCQQorOjEwMTlFMDAwRjA5MDc2OTdFMDQ0MDJGMDU0RkJGMEU0OTA3NjgxRjBCQQorOjEwMTlGMDAwOTA3NjgwRjBFRkI0MDMyNTkwN0ZGQzc0OThGMDkwN0Y5MAorOjEwMUEwMDAwRkY3NEZDRjA5MDc2OEY3NDVGRjA5MDc2OTdFMDU0RkQ1MQorOjEwMUExMDAwRjA0NDA0RjBFNDkwNzY4MUYwOTA3NjgwRjAzMDNGMDk1NQorOjEwMUEyMDAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjBCRQorOjEwMUEzMDAwOTA3Njk3RTA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTQzNgorOjEwMUE0MDAwRkVGMDQ0MDJGMDQ0MDhGMDMwM0UwNkUwNDQwNEYwODAyQQorOjEwMUE1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3OAorOjEwMUE2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTI1OTAyMgorOjEwMUE3MDAwN0ZGQzc0QjRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkIzMQorOjEwMUE4MDAwRjA5MDc2OTdFMDU0RkRGMDU0RkJGMEU0OTA3NjgxRjAwRQorOjEwMUE5MDAwOTA3NjgwRjBFRkI0MDIyNTkwN0ZGQzc0QjBGMDkwN0ZEOAorOjEwMUFBMDAwRkY3NEZDRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJFQworOjEwMUFCMDAwRjA1NEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDM4MAorOjEwMUFDMDAwMjU5MDdGRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc2OEYxNworOjEwMUFEMDAwNzQ1RkYwOTA3Njk3RTA1NEZERjA0NDA0RjBFNDkwNzY2MworOjEwMUFFMDAwODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFRjBEOAorOjEwMUFGMDAwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDIxRQorOjA0MUIwMDAwRjBEMjJFMjJDRgorOjEwMUIwNDAwMzAyQzM4QzIyQzkwNzYxOUUwRkZCNDAxMEU5MDc2N0MwQworOjEwMUIxNDAwNzRDMEYwQTM3NDE0RjBBMzc0MEJGMEVGQjQwMjBERTREQQorOjEwMUIyNDAwOTA3NjdDRjBBMzc0MTBGMEEzNzQwQ0YwRUZCNDAzMEI2NAorOjBDMUIzNDAwRTQ5MDc2N0NGMEEzNzQxOEYwQTNGMDIyN0IKKzoxMDFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDFCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDFCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDFCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDFCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDFCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDFCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDFCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDFCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDFCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDFCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDFCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDFDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDFDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDFDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDFDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDFDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzowRTFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMUYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjAyMUYzRTAwMDAwMEExCis6MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MEUyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIzN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIzOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIzOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIzQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIzQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIzQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIzREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIzRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIzRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDI0MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDI0MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDI0MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDI0M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDI0NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDI0NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDI0NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDI0N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDI0OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDI0OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDI0QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDI0QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDI0Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDI0REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDI0RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI0RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI1MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI1MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI1MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI1M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI1NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI1NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI1NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI1N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI1OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI1OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI1QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI1QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI1Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI1REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI1RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI1RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDI2MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI2MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI2MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI2M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI2NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI2NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI2NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI2N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI2OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI2OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI2QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI2QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI2Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI2REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzowRTI2RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjZGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjcwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjcxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjcyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjczQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjc0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjc3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjc4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjc5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjdBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjdCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjdDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjdEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjdFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjA1MjdGQzAwMDAwMDAwMDAyMkI2Cis6MTAyODAxMDBDMjIwQzIyMUMyMkE5MDdGRThFMDEyMzdGOTI4MzAwMEE1Cis6MTAyODExMDAyODhDMDEyOEEyMDIyQTFGMjEyQTZBMjIyOTNEODAyOTA3Cis6MTAyODIxMDA3RDgxMjlEMTgyMkE4NEExMkFCQUEyMDAwMDJBQkY5MERGCis6MTAyODMxMDA3RkU5RTAxNDYwMTEyNEZFNjAyODI0RkU2MDNCMjRGQzQzCis6MTAyODQxMDA3MDQwMTIzRkU1NDFDQjEyNEUxRDQwMDI0MUNCOTA3RkJCCis6MTAyODUxMDBFQUUwQjQwMTA0QzIyMjQxQ0I5MDdGQjRFMDQ0MDFGMDJDCis6MTAyODYxMDA0MUNCMTI0RTFGOTA3RkVBRTBCNDAxMDREMjIyNDFDQjRBCis6MTAyODcxMDA5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDlCCis6MTAyODgxMDA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTAyNDVCCis6MTAyODkxMDBGNTcwMDUxMjQ4NjM0MUNCOTA3RkI0RTA0NDAxRjA0MUVCCis6MTAyOEExMDBDQjkwN0ZFOUUwMjRGRDYwNTQyNDAyNjAwMjIxMzQxMkMwCis6MTAyOEIxMDA0RTFENDAwMjQxQ0I5MDdGRUFFMDcwMzg5MDdGRUNFMDAyCis6MTAyOEMxMDBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEQzCis6MTAyOEQxMDBGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRkVGCis6MTAyOEUxMDAxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NEQ4Cis6MTAyOEYxMDAyMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjEyNEUxRjU4Cis6MTAyOTAxMDA0MDAyNDFDQjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NEVDCis6MTAyOTExMDA4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MjUzCis6MTAyOTIxMDBFNDM0N0ZGNTgzNzQwMUYwNDFDQjkwN0ZCNEUwNDQwMTNFCis6MTAyOTMxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMERFCis6MTAyOTQxMDA2MDEyMjRGODYwMDkyNDAyNzAyOTEyNDNFNzQxQ0IxMjc2Cis6MTAyOTUxMDA0RENBNDFDQjEyNEUxQkEyMjJFNDMzRkYyNUUwRkZBMjU4Cis6MTAyOTYxMDAyM0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMjJECis6MTAyOTcxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDlFCis6MTAyOTgxMDA2MDMzMjRGNjYwMkEyNDA0NzAzRDkwN0ZFQkUwMjRERTVFCis6MTAyOTkxMDA2MDBDMDQ3MDEyOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjUxCis6MTAyOUExMDBCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjZECis6MTAyOUIxMDAxMjQ3NDU0MUNCMTI0RTFCRTQ5MDdGMDBGMEEzRjA5MEVCCis6MTAyOUMxMDA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjdDCis6MTAyOUQxMDA5MDdGRTlFMDI0RjQ2MDM0MjQwQzcwMzkxMjRFMUI5MDhFCis6MTAyOUUxMDA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNTFGCis6MTAyOUYxMDBFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMDU4Cis6MTAyQTAxMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDg1Cis6MTAyQTExMDA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjgxCis6MTAyQTIxMDBFOUUwMjRGNjYwMTIxNDYwMUEyNDAyNzAxREQyMjA5MDhECis6MTAyQTMxMDA3RkI0RTA0NDAxRjA4MDEyRDIyMDkwN0ZCNEUwNDQwMUUxCis6MTAyQTQxMDBGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwMjAxODkwN0ZFRUUxCis6MTAyQTUxMDBFMDcwMDRBM0UwNjAwQkQyMjlEMjI3MTIxNzRBRDIyQUQwCis6MTAyQTYxMDA4MDAzMTIwODAwQzIyMDgwNjE5MDdGRUVFMDcwMDRBMzExCis6MTAyQTcxMDBFMDYwMEJEMjI5RDIyODEyMTc0QUQyMkE4MDRDMTIzODkwCis6MTAyQTgxMDA3NDgwNDc5MDdGRTlFMDI0RkU2MDEyMTQ2MDFBMjQwMkVBCis6MTAyQTkxMDA3MDFERDIyMTkwN0ZCNEUwNDQwMUYwODAxMkQyMjE5MEM4Cis6MTAyQUExMDA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDVFCis6MTAyQUIxMDAyMTAzMTIxMDAwQzIyMTgwMTExMjJBRDY4MDBDMTI0RTVECis6MTAyQUMxMDAyMTUwMDc5MDdGQjRFMDQ0MDFGMDIwMkEwNzkwN0ZCNEExCis6MDUyQUQxMDBFMDQ0MDJGMDIyQzgKKzoxMDJBRDYwMEU0OTA3NjI3RjA5MDc2MjdFMEZGNzVGMDBGQTQyNDQyNjUKKzoxMDJBRTYwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENTMKKzoxMDJBRjYwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjdFMDA0RjA4MEQ1NjgKKzoxMDJCMDYwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGQjEKKzoxMDJCMTYwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MjhGMDI0MDgKKzoxMDJCMjYwMDlGNzAwMkExNzQyNDIxNjAwMkExQTE5MDdGRTlFMDI0OTQKKzoxMDJCMzYwMDdFNzAwMjYxRkMxNDcwMDI4MUI1MjQwMjYwMDJBMTZDRjEKKzoxMDJCNDYwMEVGNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQjkKKzoxMDJCNTYwMEEzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzkwMDc4MTYKKzoxMDJCNjYwMDAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTM3NEFDQUIKKzoxMDJCNzYwMEYwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwNEIKKzoxMDJCODYwMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZENEQKKzoxMDJCOTYwMEEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBDMzEyMzYKKzoxMDJCQTYwMDM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBFNEEzN0UKKzoxMDJCQjYwMEYwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0QUIKKzoxMDJCQzYwMDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFNjMKKzoxMDJCRDYwMEEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdBQjYwRjgKKzoxMDJCRTYwMDAyQTFBODkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0YKKzoxMDJCRjYwMDdGQjU3NDAzRjAyMjkwNzYyN0UwNzVGMDBGQTQyNDQ3ODIKKzoxMDJDMDYwMEY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzQzIKKzoxMDJDMTYwMEUwRkY3QjQ0N0FBQzc5MDA3ODAwQzMxMjM3QUI3MDEzQkYKKzoxMDJDMjYwMDkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1RjkKKzoxMDJDMzYwMDc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0M0MKKzoxMDJDNDYwMDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCODMKKzoxMDJDNTYwMDgwN0FCQjc5MDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwN0YKKzoxMDJDNjYwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwM0YwMTYKKzoxMDJDNzYwMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1QzUKKzoxMDJDODYwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCMDA3QTc3RjAKKzoxMDJDOTYwMDc5MDE3ODAwQzMxMjM3QUI2MDAyQTFBODkwN0YwMEYwREIKKzoxMDJDQTYwMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwQkIKKzoxMDJDQjYwMDc2MjdFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzOEUKKzoxMDJDQzYwMEUwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5NDEKKzoxMDJDRDYwMDAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzRTIKKzoxMDJDRTYwMDc0QUNGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwMUYKKzoxMDJDRjYwMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzNEMKKzoxMDJEMDYwMEUwRkRBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQkMKKzoxMDJEMTYwMEMzMTIzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwQkUKKzoxMDJEMjYwMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGN0EKKzoxMDJEMzYwMEE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRkYKKzoxMDJENDYwMEUwRkVBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QjMKKzoxMDJENTYwMEFCNzA0RjkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwRUUKKzoxMDJENjYwMDdGQjU3NDAzRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGOTcKKzoxMDJENzYwMEU5RTAyNDdGNzAxRTkwNzYyN0UwNzVGMDBGQTQyNDRGQkIKKzoxMDJEODYwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwN0ZCNTc0QUEKKzoxMDJEOTYwMDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0RjYKKzowMzJEQTYwMDAxRjAyMjE3Cis6MTAyREE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkyCis6MTAyREI5MDAzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDBGRjU4MkRGCis6MTAyREM5MDBFNDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MTBGNTZDCis6MTAyREQ5MDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRkEwCis6MTAyREU5MDA3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEFDCis6MTAyREY5MDBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwNUE3Cis6MTAyRTA5MDBGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNDNBCis6MTAyRTE5MDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTk3Cis6MTAyRTI5MDA4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRjdFCis6MTAyRTM5MDBGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDg4Cis6MTAyRTQ5MDAxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMDA5Cis6MTAyRTU5MDBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDVDCis6MTAyRTY5MDAwMUYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4M0JFCis6MTAyRTc5MDA3NDAzRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNUJBCis6MTAyRTg5MDA4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNEMzCis6MTAyRTk5MDAwRUY1ODJFNDM0NzVGNTgzNzQxMEYwRUY3NUYwMDNBNDMwCis6MTAyRUE5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA2RjBFRjc1RjAwM0E5Cis6MTAyRUI5MDBBNDI0MTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMEM1Cis6MTAyRUM5MDAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNUVGCis6MTAyRUQ5MDA4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUNFCis6MTAyRUU5MDBGNTgzNzQwNEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDNCCis6MTAyRUY5MDA3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0IxCis6MTAyRjA5MDBBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMEFDCis6MTAyRjE5MDAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwOEYwRUY3NTgyCis6MTAyRjI5MDBGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjA5MDU5Cis6MTAyRjM5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkwCis6MTAyRjQ5MDAzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MjRDCis6MTAyRjU5MDBFNDM0NzVGNTgzNzQwQUYwRUY3NUYwMDNBNDI0MTBGNUQxCis6MTAyRjY5MDA4MkU0MzQ3NUY1ODM3NDA0RjA5MDc2MzZFMDA0RjBFMDc5Cis6MTAyRjc5MDBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMjE5Cis6MTAyRjg5MDBGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDJBCis6MTAyRjk5MDAwOUYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzg0Cis6MTAyRkE5MDA3NDA0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDkxCis6MTAyRkI5MDAwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDFECis6MTAyRkM5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA3RjBFRjc1RjAwMzg3Cis6MEUyRkQ5MDBBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyMEMKKzoxMDJGRTcwMEMwRTBDMDgzQzA4MkQyMjY1MzkxRUY5MDdGQUI3NDAxQkIKKzowODJGRjcwMEYwRDA4MkQwODNEMEUwMzI1QgorOjAxMkZGRjAwMzI5RgorOjEwMzAwMDAwOTA3RkI2RTAyMEUxMDJDMjNERDIzNjIwMzYwMjQxNkUwQQorOjEwMzAxMDAwMzAzRDAyNDE2RTkwODAwN0UwNjAwNEQyMzY4MDAyQzJFQgorOjEwMzAyMDAwMzYyMDM2MDI0MTJFRDIzNUU0RjUxQTkwODAwNEUwRjVDMAorOjEwMzAzMDAwMTk3NDA4MjUwRUY4QTYxOTg1MTkxOEU1MTgyMEU3MDQ1MworOjEwMzA0MDAwRDIzODgwMDJDMjM4MzAzODAyMjFENEU0RjUxNkU1MTlBRQorOjEwMzA1MDAwQjRGMDBDRDIzOTc1MDgwNDc1MDlGMDA1MEU4MDAyMDUyQworOjEwMzA2MDAwMTZFNTE5NjRGNzcwM0RDMjM5RTUwRTI0RkU2MDE3MTRBOQorOjEwMzA3MDAwNjAyMjI0MDM3MDI5NzUwODA1NzUwOUY3RTRGNTBBRjUzRgorOjEwMzA4MDAwMEI3NTBFMDQ4MDIwNzUwODA2NzUwQUY3RTRGNTBCNzVCQworOjEwMzA5MDAwMEUwNDgwMTI3NTA4MDc3NTBCRjc3NTBFMDQ4MDA3MTI3MQorOjEwMzBBMDAwNEREQTgwMDIwNTE2RTUxOTU0Rjg2NEY4NzAzQkMyMzUxNAorOjEwMzBCMDAwRTUxOTI0MDc2MDBDMjRGQzYwMDgyNDA1MjRGODUwMDY1OAorOjEwMzBDMDAwODAwOEQyM0E4MDA2QzIzQTgwMDJEMjNBNzUxQTAxMjBBQworOjEwMzBEMDAwM0ExOTkwN0U4MDc0MEZGMEEzRTUxOUYwRTRBM0YwQTNGMQorOjEwMzBFMDAwRjA5MDdGQjc3NDA0RjA4MDAyMDUxNjIwMzk2REU1MTk2MQorOjEwMzBGMDAwNjRGNzYwNjdFNTFBNzA2M0U1MTg1NEYwNjRGMDcwNTk3RQorOjEwMzEwMDAwODUxODE5RjUwRUU1MTkyNDBGNjAxQjI0RkU2MDE3MjQ5RAorOjEwMzExMDAwRkQ2MDIyMTQ2MDFGMjQwNTcwMkY3NTA4MDMwNTBFODVCRAorOjEwMzEyMDAwMTgwOUQyMzc4MDI4NzUwODAyMDUwRTg1MTgwOTc1MTQwQworOjEwMzEzMDAwMDFEMjM3ODAxOTc1MDgwNTA1MEU4NTE4MDlFNEY1MEFDRQorOjEwMzE0MDAwRjUwQjc1MEUwM0QyMzc4MDA1MTI0RERBQzIzNTMwMzVENgorOjEwMzE1MDAwMEE4NTA4MTM4NTE4MTI4MDAyMDUxNjg1MTgxOUU1MTZDOAorOjEwMzE2MDAwNjQwNDcwNjJGNTBFRTUxOTU0RjBGNTE5RjUxNTg1MTgyQgorOjEwMzE3MDAwMTlFNTE1MjQ3MDYwMTgyNEYwNjAxNDI0RjA2MDEwMjQwMAorOjEwMzE4MDAwRjA2MDFFMjRGMDYwMUEyNEYwNjAwNDI0NjA3MDI3RTVDQgorOjEwMzE5MDAwMTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDlEMjM3ODBBNgorOjEwMzFBMDAwMUFFNTE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5NzVBQgorOjEwMzFCMDAwMTQwMUQyMzc4MDA1MTI0RERBQzIzNTMwMzUwQTg1MTkyRgorOjEwMzFDMDAwMTM4NTE4MTI4MDAyMDUxNkU1MTZEMzk0MDU0MDU3MTI5MAorOjEwMzFEMDAwNEREQTgwNTIzMDM5MTdFNTBFNzAwQTg1MDgwOTc1MDhGNgorOjEwMzFFMDAwMDQwNTBFODA0MTc0MDgyNTBFRjhBNjE5ODAzODIwMzc5MgorOjEwMzFGMDAwMkFFNTBFQjQwMTBGODUwODBBODUwOTBCODUxMzA4ODU5OQorOjEwMzIwMDAwMTIwOTc1MEUwNEU1MTRCNDAxMUM4NTA4MEFFNEY1MEJENworOjEwMzIxMDAwODUxMzA4ODUxMjA5NzUwRTA0ODAwQkU1MTRCNDAxMDZBOAorOjEwMzIyMDAwRTRGNTBCNzUwRTA0RTRGNTFBMzAzNTAyMDUwRUU1MEVEMworOjEwMzIzMDAwRDM5NDAzNTAwMjAxMEJDMjM3RTRGNTBFRjUxMEMyMzZFOQorOjEwMzI0MDAwRDIzREY1MTQ3NDA4MjUxMEY4RTZGRjc0ODAyNTEwRjVCQQorOjEwMzI1MDAwODJFNDM0N0VGNTgzRUZGMDc0MDgyNTEwRjhFNEY2MDU3NworOjBGMzI2MDAwMTBFNTEwQjQwNERFOTA3RkI3NzQwNEYwMDEwQjIyNjgKKzoxMDMyNkYwMDkwNzYxOEUwRkY2NDA1NzA0MjkwNzVBQkUwQjQwMTE5RDkKKzoxMDMyN0YwMDkwNzIzNzc0MDFGMEU0OTA4MDIwRjA5MDgwMzFGMDkwREMKKzoxMDMyOEYwMDgwMjhGMDkwODAzOUYwODAyMkU0OTA3MjM3RjA5MDc1QUEKKzoxMDMyOUYwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNzEKKzoxMDMyQUYwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNTIKKzoxMDMyQkYwMDgxOTk5MDcyMzk3NDA0RjA5MDcyMzlFMEZGMjRGRTkwNzYKKzoxMDMyQ0YwMDcyMDRGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1QkYKKzoxMDMyREYwMDgzRTA2NDAxNzA1NDkwNzIzNjA0RjA5MDcyMDRFMEZGNDIKKzoxMDMyRUYwMDI0RkQ2MDI4MjRGRTYwMjQyNDAzMjRGQjUwMDQ2MDFDNkEKKzoxMDMyRkYwMDgxOEM3NDIwMkZGNTgyRTQzNDgwRjU4M0U0RjA3NDI4RjgKKzoxMDMzMEYwMDJGRjU4MkU0MzQ4MEY1ODNFNEYwODE4QzkwNzIwNEUwMzEKKzoxMDMzMUYwMEZGMjQzMEY1ODJFNDM0ODBGNTgzRTRGMDc0MzgyRkY1MjAKKzoxMDMzMkYwMDgyRTQzNDgwRjU4M0U0RjA4MThDRTQ5MDcyMzZGMDkwN0YKKzoxMDMzM0YwMDcyMzlFMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzOTMKKzoxMDMzNEYwMEUwRkY3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMjgKKzoxMDMzNUYwMDAyNzQzQkYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwQUEKKzoxMDMzNkYwMDA0OTA3MjAyRjBFRjRFNzAwMjgxMzVFRjY0ODA0RTcwNjAKKzoxMDMzN0YwMDAyODEzNUVGRjhFNDkwNzUwREYwRTg5MDc1MENGMDkwNDAKKzoxMDMzOEYwMDcyMzRFMDc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNDkKKzoxMDMzOUYwMEUwRkY5MDcyMDJGMDkwNzUwREUwMkZGMDkwNzUwQ0UwNDkKKzoxMDMzQUYwMDM0MDBGMEUwRkVBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5NDQKKzoxMDMzQkYwMEY4RDMxMjM3OTU0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2MDQKKzoxMDMzQ0YwMEYwOTA3NTBERTAyNDJBRjA5MDc1MENFMDM0NUFGMEUwN0YKKzoxMDMzREYwMEZFQTNFMDc4MDVDRUEyRTcxM0NFMTNEOEY4RkY5MDc1QzEKKzoxMDMzRUYwMDBDRUVGMEEzRUZGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0NkQKKzoxMDMzRkYwMEQyRUU2NDgwOTQ4MjQwMEE5MDcyMkM3NDAyRjBBMzc0MEYKKzoxMDM0MEYwMEQyRjBDMzkwNzIyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzNTcKKzoxMDM0MUYwMEYwOTA3MjJDRTBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1QzAKKzoxMDM0MkYwMDgzRTA5MDcyMDJGMDkwNzIwNEUwRkYyNEZENjAyRDI0N0YKKzoxMDM0M0YwMEZFNjAyOTI0MDMyNEZCNTAwNDYwMjE4MDQwOTA3MjAyMTcKKzoxMDM0NEYwMEUwRkU3NDIwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDI4Q0IKKzoxMDM0NUYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwODAyMTkwNzIwMkUwNDQKKzoxMDM0NkYwMEZGOTA3MjA0RTBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGQTAKKzoxMDM0N0YwMEYwNzQzODJFRjU4MkU0MzQ4MEY1ODNFRkYwOTA3MjM5RDIKKzowQjM0OEYwMEUwMDRGMEUwNjQwQTYwMDI0MUM3MjI4NAorOjEwMzQ5QTAwOTA3NjE4RTBGRkI0MDUyMzkwNzIzN0UwNzAxRDkwNzU5RQorOjEwMzRBQTAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA2NAorOjEwMzRCQTAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI0NQorOjEwMzRDQTAwQzE5MTkwNzIzNkUwNjAwMkMxOTE5MDc2NDBFMDcwMzEwRAorOjEwMzREQTAwOTA3MjAzNzQwM0YwOTA3MjAzRTBGRjc1RjAwQUE0MjQ1QgorOjEwMzRFQTAwQUFGNTgyRTQzNDc1RjU4M0UwRkU5MDcyMjlFMEZERUVEOAorOjEwMzRGQTAwNkQ2MDBFRUZDMzk0MEE1MDA4OTA3MjAzRTAwNEYwODBFNgorOjEwMzUwQTAwRDU5MDcyMzk3NDA0RjA5MDc2NDBFMDcwMDg5MDcyMDM5NgorOjEwMzUxQTAwRTA5MDcyMzlGMDkwNzIzOUUwRkQyNEZFOTA3MjJBRjA0MAorOjEwMzUyQTAwRUQ3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0UwRkY2NQorOjEwMzUzQTAwN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjAyNzRBNAorOjEwMzU0QTAwODBGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MDA0OTA1QQorOjEwMzU1QTAwNzIwMkYwRUY0RTcwMDJDMTFCRUY2NDgwNEU3MDAyQzExRQorOjEwMzU2QTAwMUJFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjBFRDc1RjAyRQorOjEwMzU3QTAwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwRkY5MDcyMDI2NAorOjEwMzU4QTAwRjA5MDc1MERFMDJGRjA5MDc1MENFMDM0MDBGMEUwRkUzRAorOjEwMzU5QTAwQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOUY4RDMxMjM3OTVCMAorOjEwMzVBQTAwNDAwQTkwNzUwQzc0QTVGMEEzNzRENkYwOTA3NTBERTBERQorOjEwMzVCQTAwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMEZFQTNFMDc4MDU3NgorOjEwMzVDQTAwQ0VBMkU3MTNDRTEzRDhGOEZGOTA3NTBDRUVGMEEzRUY1NgorOjEwMzVEQTAwRjA5MDcyMkNFRUYwQTNFRkYwRDM5NEQyRUU2NDgwOTRDNAorOjEwMzVFQTAwODI0MDBBOTA3MjJDNzQwMkYwQTM3NEQyRjBDMzkwNzJEMworOjEwMzVGQTAwMkNFMDY0ODA5NDgwNTAwNEU0RjBBM0YwOTA3MjJDRTBGNAorOjEwMzYwQTAwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNTgzRTA5MDcyMDI2QQorOjEwMzYxQTAwRjA5MDcyMkFFMEZGMjRGRDYwMkQyNEZFNjAyOTI0MDMyNQorOjEwMzYyQTAwMjRGQjUwMDQ2MDIxODA0MDkwNzIwMkUwRkU3NDIwMkYzNworOjEwMzYzQTAwRjU4MkU0MzQ4MEY1ODNFRUYwNzQyODJGRjU4MkU0MzRDMQorOjEwMzY0QTAwODBGNTgzRUVGMDgwMjE5MDcyMDJFMEZGOTA3MjJBRTAwQQorOjEwMzY1QTAwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkYwNzQzODJFRjVEOQorOjEwMzY2QTAwODJFNDM0ODBGNTgzRUZGMDkwNzY0MEUwNzAwNjkwNzI0MQorOjEwMzY3QTAwMzk3NDBBRjA5MDcyMzlFMDA0RjBFMEMzOTQwQTUwMDJGNworOjA4MzY4QTAwQTExMUU0OTA3NjQwRjAyMjRBCis6MTAzNjkyMDBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMjM2Cis6MDkzNkEyMDBFMzIyODk4MjhBODNFNDkzMjI2OQorOjEwMzZBQjAwQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTBENAorOjEwMzZCQjAwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjIxRQorOjBEMzZDQjAwRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjIzOAorOjEwMzZEODAwQzJENUVDMzBFNzA5QjJENUU0QzM5REZERTQ5Q0ZDRUUwRAorOjEwMzZFODAwMzBFNzE1QjJENUU0QzM5RkZGRTQ5RUZFMTIzODFGQzMyRQorOjEwMzZGODAwRTQ5REZERTQ5Q0ZDODAwMzEyMzgxRjMwRDUwN0MzRTQyOQorOjA2MzcwODAwOUZGRkU0OUVGRTIyN0IKKzoxMDM3MEUwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwRjkKKzoxMDM3MUUwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFRDYKKzoxMDM3MkUwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzMUMKKzowODM3M0UwMEU5OTNGNUYwQTNFOTkzMjJFMQorOjEwMzc0NjAwRTg4RkYwQTRDQzhCRjBBNDJDRkNFOThFRjBBNDJDRkMyMgorOjEwMzc1NjAwOEFGMEVEQTQyQ0ZDRUE4RUYwQTRDREE4RjA4QkYwQTRBMAorOjEwMzc2NjAwMkRDQzM4MjVGMEZERTk4RkYwQTQyQ0NEMzVGMEZDRUJGRgorOjEwMzc3NjAwOEVGMEE0RkVBOUYwRUI4RkYwQTRDRkM1RjAyRUNEMzlDNAorOjBGMzc4NjAwRkVFNDNDRkNFQUE0MkRDRTM1RjBGREU0M0NGQzIyMzEKKzoxMDM3OTUwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEVDNjQ4MEM4QUIKKzowNjM3QTUwMDY0ODA5ODQ1RjAyMjRCCis6MTAzN0FCMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDc0Cis6MDEzN0JCMDAyMkVCCis6MEMzN0JDMDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjI4MAorOjEwMzdDODAwQTg4Mjg1ODNGMEQwODNEMDgyMTIzN0RGMTIzN0RGMTJDOAorOjEwMzdEODAwMzdERjEyMzdERkU0NzNFNDkzQTNDNTgzQzVGMEM1ODNFRAorOjEwMzdFODAwQzhDNTgyQzhGMEEzQzU4M0M1RjBDNTgzQzhDNTgyQzg0QgorOjAxMzdGODAwMjJBRQorOjEwMzdGOTAwRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM1RgorOjEwMzgwOTAwOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjA3MgorOjA2MzgxOTAwRUZBM0EzQTM4MERGNzIKKzoxMDM4MUYwMEJDMDAwQkJFMDAyOUVGOERGMDg0RkZBREYwMjJFNENDOEQKKzoxMDM4MkYwMEY4NzVGMDA4RUYyRkZGRUUzM0ZFRUMzM0ZDRUU5REVDNTYKKzoxMDM4M0YwMDk4NDAwNUZDRUU5REZFMEZENUYwRTlFNENFRkQyMkVEOUMKKzoxMDM4NEYwMEY4RjVGMEVFODQyMEQyMUNGRUFERjA3NUYwMDhFRjJGRTYKKzoxMDM4NUYwMEZGRUQzM0ZENDAwNzk4NTAwNkQ1RjBGMjIyQzM5OEZERDcKKzowNTM4NkYwMDBGRDVGMEVBMjI3NAorOjEwMzg3NDAwRTQ5MDc2MjlGMDkwNzYyOUUwRkY3NUYwMEZBNDI0NDJCNQorOjEwMzg4NDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRBNworOjEwMzg5NDAwNjAwRUVGQzM5NDA2NTAwODkwNzYyOUUwMDRGMDgwRDVCQQorOjEwMzhBNDAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEYwNgorOjEwMzhCNDAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyQUYwMjQ1QgorOjEwMzhDNDAwQkY3MDAyNDE0MTI0RTA3MDAyNDExMjI0MjE2MDAyNDE5MAorOjEwMzhENDAwM0E5MDdGRTlFMDI0RkU2MDdEMTQ3MDAyMjFCMjI0MDI1NAorOjEwMzhFNDAwNjAwMjQxMEExMjE3NTE5MDc2NDJFMEZDQTNFMEZEQTM2NgorOjEwMzhGNDAwRTBGRUEzRTBGRjkwNzYyOUUwNzVGMDBGQTQyNDQzRjVFMQorOjEwMzkwNDAwODJFNDM0NzVGNTgzMTIzN0JDOTA3NjE5RTBGRkI0MDE3NAorOjEwMzkxNDAwMTI5MDc2N0M3NDY3RjA5MDc2N0Q3NDA2RjA5MDc2N0VEMworOjEwMzkyNDAwNzQwQkYwRUZCNDAyMEZFNDkwNzY3Q0YwOTA3NjdERjBBNworOjEwMzkzNDAwOTA3NjdFNzQwQ0YwRUZCNDAzMEZFNDkwNzY3Q0YwOTBGNAorOjEwMzk0NDAwNzY3REYwOTA3NjdFNzQxOEYwOTA3NjFBNzQwMUYwMTJGOQorOjEwMzk1NDAwM0U5RjEyMTgwMDIyOTA3RUMyRTBGRkU0RkNGREZFRkJCNQorOjEwMzk2NDAwRkE3OTAxRjgxMjM3NDZDOEVDQzhDOUVEQzlDQUVFQ0FEQgorOjEwMzk3NDAwQ0JFRkNCOTA3RUMxRTBGRUU0RkNGRDJCRkJFQTNFRkFFQworOjEwMzk4NDAwRUQzOUY5RUMzOEY4OTA3RUMwRTBGRkU0RkVFQjJGRkY1MAorOjEwMzk5NDAwRUUzQUZFRUQzOUZERUMzOEZDOTA3NjI5RTA3NUYwMEYzNworOjEwMzlBNDAwQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QkMyMjkwN0U1MworOjEwMzlCNDAwQzJFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIzNzQ2QzhDOQorOjEwMzlDNDAwRUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwN0VDMUUwRkUwQworOjEwMzlENDAwRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwN0U3NQorOjEwMzlFNDAwQzBFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMzhDQworOjEwMzlGNDAwRkM5MDc2MjlFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzUyRAorOjEwM0EwNDAwRjU4MzEyMzdCQzIyOTA3RkI0RTA0NDAxRjAyMjkwN0YwQQorOjEwM0ExNDAwRTlFMDE0NzAxOTkwN0VDMEUwRkY5MDc2MjlFMDc1RjAxQgorOjEwM0EyNDAwMEZBNDI0NEZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFMAorOjBFM0EzNDAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjlGCis6MTAzQTQyMDBFNDkwNzYzNUYwOTA3NjM1RTBGRkMzOTQwMzQwMDI0MTZFCis6MTAzQTUyMDBGRkVGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1ODNFRjJBCis6MTAzQTYyMDBGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFNDMzCis6MTAzQTcyMDBGMEVGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM3NDkyCis6MTAzQTgyMDBGMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzA1Cis6MTAzQTkyMDA3NEZGRjBFRjc1RjAwQUE0MjRBRUY1ODJFNDM0NzVGNUY0Cis6MTAzQUEyMDA4M0U0RjBFRjc1RjAwQUE0MjRBRkY1ODJFNDM0NzVGNUVGCis6MTAzQUIyMDA4Mzc0ODBGMEVGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUMzCis6MTAzQUMyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUNECis6MTAzQUQyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUJDCis6MTAzQUUyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUFCCis6MTAzQUYyMDBGNTgzNzQwMUYwOTA3NjM1RTAwNEYwNDE0NzkwNzYzQzBFCis6MTAzQjAyMDA3NDBBRjBFNEEzRjA5MDc2MzU3NDAzRjA5MDc2M0NFMDBBCis6MTAzQjEyMDBGRjkwNzYzNUUwRkVDMzlGNDAwMjYxRDI5MDc2M0RFMDkxCis6MTAzQjIyMDBGRjA0RjBFRTc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNUQ4Cis6MTAzQjMyMDA4M0VGRjBFRTc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTU4Cis6MTAzQjQyMDA4M0U0RjBFRTc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTUyCis6MTAzQjUyMDA4Mzc0NUVGMEVFNzVGMDBBQTQyNEFERjU4MkU0MzQ3NTQ4Cis6MTAzQjYyMDBGNTgzNzRCQUYwRUU3NUYwMEFBNDI0QUVGNTgyRTQzNDVCCis6MTAzQjcyMDA3NUY1ODM3NDA1RjBFRTc1RjAwQUE0MjRBRkY1ODJFNEJFCis6MTAzQjgyMDAzNDc1RjU4Mzc0ODBGMEVFNzVGMDBBQTQyNEIwRjU4MkUyCis6MTAzQjkyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIxRjU4MkZECis6MTAzQkEyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIyRjU4MkVDCis6MTAzQkIyMDBFNDM0NzVGNTgzNzQxNUYwRUU3NUYwMEFBNDI0QjNGNUI4Cis6MTAzQkMyMDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM1RTAwNEYwNjEwRTFBCis6MDEzQkQyMDAyMkQwCis6MTAzQkQzMDBFNDkwNzYzNkYwRTBGQjc1RjAwRkE0MjQ0MUY1ODJFNDFGCis6MTAzQkUzMDAzNDc1RjU4Mzc0NDBGMEVCNzVGMDBGQTQyNDQyRjU4MjJECis6MTAzQkYzMDBFNDM0NzVGNTgzNzQwQUYwRUI3NUYwMEZBNDI0NDNGNUYwCis6MTAzQzAzMDA4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMEQ5Cis6MTAzQzEzMDAwRkE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMEY2Cis6MTAzQzIzMDBBQzQ0RUI3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0IzCis6MTAzQzMzMDAxMjM3QzgwMDAxNzcwMDkwNzYzNkUwMDRGMEUwRkI3NTk4Cis6MTAzQzQzMDBGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQwRjBFQjVFCis6MTAzQzUzMDA3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0OENGMDc3Cis6MTAzQzYzMDBFQjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzMTIzNzIyCis6MTAzQzczMDBDODAwMDBBQzQ0RUI3NUYwMEZBNDI0NDdGNTgyRTQzNDhDCis6MTAzQzgzMDA3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMDBGQTQyNDFDCis6MTAzQzkzMDA0QkY1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMTc3MDA5MDQxCis6MTAzQ0EzMDA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNERBCis6MTAzQ0IzMDAzNDc1RjU4Mzc0NDBGMEVGNzVGMDBGQTQyNDQyRjU4MjU4Cis6MTAzQ0MzMDBFNDM0NzVGNTgzNzQ4RkYwOTA3NjM2RTAwNEYwRTBGRjBBCis6MTAzQ0QzMDA3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDFGMDQzCis6MTAzQ0UzMDBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4NEYwCis6MTAzQ0YzMDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTcwCis6MTAzRDAzMDA4MkU0MzQ3NUY1ODM3NDYxRjBFRjc1RjAwRkE0MjQ0MkY3Cis6MTAzRDEzMDBGNTgyRTQzNDc1RjU4Mzc0ODFGMDkwNzYzNkUwMDRGMDJGCis6MTAzRDIzMDBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQ0Cis6MTAzRDMzMDA2MUYwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4MzQ2Cis6MDQzRDQzMDA3NDAxRjAyMkY1Cis6MTAzRDQ3MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEY2Cis6MTAzRDU3MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkIxCis6MTAzRDY3MDBDMEUwOTA3RkEyRTA5MDc2N0ZGMDkwN0Y3NEUwOTA3NjNECis6MTAzRDc3MDA4N0YwOTA3Rjc1RTA5MDc2ODhGMDkwN0Y5OEUwNDQwMjE2Cis6MTAzRDg3MDBGMDkwNzY5NkUwRkYyMEUxMEM0NDAyRjA5MDgwMDNGMDdCCis6MTAzRDk3MDBEMjMyMTI0QjI4OTA3NjdGRTAyMEUyNTA5MDc2ODdFMDZGCis6MTAzREE3MDBGRUEzRTA3QzAwMjQwMEY1MzRFQzNFRjUzMzkwNzY5OEQyCis6MTAzREI3MDBFMEZEQUUzM0FGMzQxMjM2RDg5MDc2ODdFRkYwRDIyRkNFCis6MTAzREM3MDAzMDMxMjkyMDNGMjZDMjMxOTA3Rjk0RTA1NENGRjA5MEM0Cis6MTAzREQ3MDA3RjlBRTAzMEU0MDREMjJEQzIyQzkwN0Y5QUUwMjBFNTUwCis6MTAzREU3MDAwNEMyMkREMjJDOTA3Rjk0RTA0NDMwRjAxMjQ4QkQxMkNCCis6MTAzREY3MDAxQjA0MzAyRjEyMTI0MjFGQzIyRjc1RTgwMTEyMTY4QUI4Cis6MTAzRTA3MDA3NUU4MEREMjJCODAwNTc1RTgwMUMyMkIyMDJCMzQ5MDY1Cis6MTAzRTE3MDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjAwCis6MTAzRTI3MDBGMEEzNzQwQkYwRUZCNDAyMEI5MDc2N0NFNEYwQTNGMEYwCis6MTAzRTM3MDBBMzc0MENGMEVGQjQwMzBCOTA3NjdDRTRGMEEzRjBBMzJCCis6MTAzRTQ3MDA3NDE4RjA3NUNBRDM3NUNCRkVEMkNBMzAzNDA0QzIzNEE1Cis6MTAzRTU3MDA4MDAyRDIzNDMwMzQwRDkwNzY4OUUwQzM5NDAzNDAwNDU1Cis6MTAzRTY3MDBFMDI0RkRGMDUzOTFFRjkwN0ZBQjc0MDJGMEYwOTA3RjY4Cis6MTAzRTc3MDA5OEUwNTRGREYwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEM4Cis6MTAzRTg3MDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDE5Cis6MDgzRTk3MDA4MkQwODNEMEYwRDBFMDMyQUMKKzoxMDNFOUYwMDkwNzY5MkUwMTQ2MDFEMTQ3MDAyRTE1NDI0MDI2MDAyQzcKKzoxMDNFQUYwMEUxRTQ5MDc2OTQ3NDAxRjA5MDgwMDBGMEU0OTA3NjhFQzcKKzoxMDNFQkYwMEYwRDIzMTIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RkYyMkIKKzoxMDNFQ0YwMEYwOTA3RkYzNzQzMEYwOTA3RkZGNzRGQ0YwOTA3Njk3NTIKKzoxMDNFREYwMEUwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkYwREUKKzoxMDNFRUYwMDkwN0ZGMzc0MzRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwM0UKKzoxMDNFRkYwMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDkwMUIKKzoxMDNGMEYwMDdGRjM3NDY0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDQ0MzkKKzoxMDNGMUYwMDA0RjA5MDc2OTRFMDQ0MDFGMDkwODAwMEYwMzAzRjA5NzcKKzoxMDNGMkYwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwOEEKKzoxMDNGM0YwMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA0RjA5MDc2RTcKKzoxMDNGNEYwMDhFNzQwMUYwMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGOEMKKzoxMDNGNUYwMEYyRjA5MDdGRjM3NDQ0RjA5MDdGRkY3NEZDRjA5MDc2NTIKKzoxMDNGNkYwMDk3RTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyQTYKKzoxMDNGN0YwMEYwOTA3RkYzNzQ0Q0YwOTA3RkZGNzRGQ0YwOTA3Njk3ODUKKzoxMDNGOEYwMEUwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwM0EKKzoxMDNGOUYwMDkwN0ZGMzc0OTRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwMkQKKzoxMDNGQUYwMDQ0MDRGMDkwNzY5NEUwNTRGRUYwOTA4MDAwRjAzMDNGOUYKKzoxMDNGQkYwMDA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRTEKKzoxMDNGQ0YwMEYwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDZGMDkwREIKKzowNjNGREYwMDc2OEU3NDAyRjAyMjUwCis6MTAzRkU1MDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5Mjc4Cis6MEIzRkY1MDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyQ0QKKzoxMDQwMDAwMEU1MTFEMzk0MDA1MDAyMjEwNjkwNzY4OUUwQzM5NDA4MEMKKzoxMDQwMTAwMDQwMDIyMTA2NzQ0MDI1MEZGNTgyRTQzNDdFRjU4M0UwRUEKKzoxMDQwMjAwMEY1MTdFNTBENjAwRTkwODAwNUU1MTdGMDkwNzY4OUUwQjQKKzoxMDQwMzAwMDA0RjAwMURBRTUxNzEyMzdGOTQwQzEwMjQwNjcwNTQwODQKKzoxMDQwNDAwMDdBMDY0MDk4MDc0MEMxMEM0MEMxMEQ0MEM3MEY0MENCRDUKKzoxMDQwNTAwMEY2NDBDQkY4NDBDQkZBNDBDQkZCNDBDQkZDNDBDQkZFNEMKKzoxMDQwNjAwMDQwQ0JGRjAwMDA0MERBOTA3RTQxRTA5MDgwMDVGMDkwNjgKKzoxMDQwNzAwMDc2ODlFMDA0RjA3NTExMDE4MDYwOTA3RTQxRTA5MDgwQzcKKzoxMDQwODAwMDA1RjA5MDdFNDJFMDkwODAwNUYwOTA3Njg5RTAwNEYwQTMKKzoxMDQwOTAwMEUwMDRGMDc1MTEwMTgwNDI5MDdFNDFFMDkwODAwNUYwQ0YKKzoxMDQwQTAwMDkwN0U0MkUwOTA4MDA1RjA5MDdFNDNFMDkwODAwNUYwQTUKKzoxMDQwQjAwMDkwNzY4OUUwMDRGMEUwMDRGMEUwMDRGMDc1MTEwMTgwRUUKKzoxMDQwQzAwMDE5RDIzQkQyM0M4MDEzRDIzQjgwMEY5MDgwMDVFNTE3N0MKKzoxMDQwRDAwMEYwOTA3Njg5RTAwNEYwNzUxMTAxMjAzQjA0MDUwRDgwMTUKKzoxMDQwRTAwMDFGMzAzQzFDOTA3RTQxRTA5MDgwMDVGMDkwN0U0MkUwQzUKKzoxMDQwRjAwMDkwODAwNUYwOTA3Njg5RTAwNEYwRTAwNEYwNzUxMTAxRkQKKzoxMDQxMDAwMDA1MEYxNTExMDEwMEU1MTE3MDEwQzIzM0Y1MERGNTBGMDMKKzowQjQxMTAwMDkwN0ZDNzc0MDRGMEMyM0JDMjNDMjI0OQorOjEwNDExQjAwOTA3NjhERTA2NDAxNzAyNzMwMjcwOEMyMjcxMjA4MDBDMworOjEwNDEyQjAwMTIxNzRBMzAyODA4QzIyODEyMzg3NDEyMTc0QTMwMkEzQworOjEwNDEzQjAwMEVFNDkwNzY4REYwQzIyQTkwN0ZCNEUwNDQwMkYwOTBBQQorOjEwNDE0QjAwNzYzRkUwQjQwMTA1RTRGMDEyMzI2RjkwNzY0MUUwQjRCMworOjEwNDE1QjAwMDEwNUU0RjAxMjM0OUE5MDc2NDBFMEI0MDEwMzEyMzQ3NgorOjEwNDE2QjAwOUExMjMwMDAzMDMzMDMxMjQwMDA5MDdGOUJFMDIwRTQyMgorOjEwNDE3QjAwMDJDMjNGOTA3RjlCRTAzMEU0MDJEMjNGOTA3RjlCRTBGNgorOjEwNDE4QjAwMjBFNTAyQzIzRTkwN0Y5QkUwMzBFNTAyRDIzRUEyNDE4OQorOjEwNDE5QjAwMzAzRjAxQjM1MDFGQTIzRjkyNDEzMDNGMDk5MDc2OTdCOQorOjEwNDFBQjAwRTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTcwQworOjEwNDFCQjAwRTA5MDgwMDJGMDMwM0YzNDkwNzYxOUUwRkZCNDAxMEVBRQorOjEwNDFDQjAwOTA3NjdDNzQ2N0YwQTM3NDA2RjBBMzc0MEJGMEVGQjRENQorOjEwNDFEQjAwMDIwQkU0OTA3NjdDRjBBM0YwQTM3NDBDRjBFRkI0MDMyNQorOjEwNDFFQjAwMEJFNDkwNzY3Q0YwQTNGMEEzNzQxOEYwQTI0MDMwM0U2MQorOjEwNDFGQjAwMDFCMzUwMUZBMjNFOTI0MDMwM0UwOTkwNzY5NUUwNDRBOQorOjEwNDIwQjAwMDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwNzY5NUUwOTA2MworOjA0NDIxQjAwODAwMUYwMjIwQworOjEwNDIxRjAwOTA3NjE5RTA2NDAxNzAzNTkwNzY4N0UwRkZEMzk0MkQ4NgorOjEwNDIyRjAwNDAyQjkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDMxMQorOjEwNDIzRjAwOTQwRjQwMTlFNEYwRUZEMzk0MzE0MDA4OTA3NjE5NzQzRAorOjEwNDI0RjAwMDNGMDgwMDY5MDc2MTk3NDAyRjAxMjNFOUY5MDc2MTk1MworOjEwNDI1RjAwRTBCNDAyMkM5MDc2ODdFMEZGQzM5NDJGNTAyMkVGRDM2NworOjEwNDI2RjAwOTQyQTQwMUM5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBENQorOjEwNDI3RjAwRTBEMzk0MEY0MDBBRTRGMDkwNzYxOTA0RjAxMjNFOUZCOQorOjEwNDI4RjAwOTA3NjE5RTBCNDAyMjY5MDc2ODdFMEQzOTQzMTQwMURFMgorOjEwNDI5RjAwOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY2OQorOjEwNDJBRjAwNDAwQkU0RjA5MDc2MTk3NDAzRjAxMjNFOUY5MDc2MTk0QworOjEwNDJCRjAwRTA2NDAzNzAzRjkwNzY4N0UwRkZDMzk0NUY1MDM1OTBDMgorOjEwNDJDRjAwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNDA4OQorOjEwNDJERjAwMjNFNEYwRUZDMzk0MkY1MDBDRUZEMzk0MkE0MDA2OTBCMQorOjEwNDJFRjAwNzYxOTc0MDFGMEVGRDM5NDJGNDAwNjkwNzYxOTc0MDI2QgorOjEwNDJGRjAwRjAxMjNFOUY5MDc2ODZFMDcwMDU5MDc2ODVGMDIyRTQ2RQorOjA1NDMwRjAwOTA3Njg2RjAyMjBCCis6MTA0MzE0MDBFNDkwNzY5NkYwOTA4MDAzRjA5MDdGRTA3NDkwRjA5MEIzCis6MTA0MzI0MDA3RkUxNzQwNEYwRTQ5MDdGRERGMDkwN0ZBMUYwNTM4RTgwCis6MTA0MzM0MDBGODc1ODgwNTc1QjgyMDc1RjgwMTQzOEUzMEY1Qzg3NTkxCis6MTA0MzQ0MDBDQTdGNzVDQkY4NDNBODIwMTI0NTY1QzIyQ0MyMkRDMjgyCis6MTA0MzU0MDAyQkMyMkY5MDdGRkM3NERERjA5MDdGRkY3NEZGRjA5MEYwCis6MTA0MzY0MDA3Rjk3RTA0NDAxRjA5MDc2MTk3NDAxRjBFNDkwNzY4NTJCCis6MTA0Mzc0MDBGMEEzRjA5MDc2ODFGMDkwNzY4MEYwMTI0OUFFMTIwRjlGCis6MTA0Mzg0MDBDNjEyNEFGMTkwN0Y5N0UwNDQwOEYwRTA1NEI5RjBEMkE1Cis6MTA0Mzk0MDAzMDIwMzAxODEyNEFBNjEyMzAwMDEyNDAwMDEyNDIxRjc4Cis6MTA0M0E0MDAxMjQ4QkQxMjFCMDQxMjE2NjExMjQyMUYxMjRBQTZDMjAxCis6MTA0M0I0MDAyRkMyMzFDMjMyQzIzNEMyMzNDMjI5QzIyN0MyMjhFNDU2Cis6MTA0M0M0MDBGNTExOTA3Njg5RjA5MDc2M0ZGMDkwNzY0MUYwOTA3NkYyCis6MTA0M0Q0MDA0MEYwOTA3NjhBRjBBM0YwQTMwNEYwRTRBM0YwOTA3NjgyCis6MDM0M0U0MDA5OUYwMjIyQgorOjEwNDNFNzAwMTI0RTE5NDAwMjgxQUM5MDdGRUJFMDI0RkU2MDFFMTQ1MAorOjEwNDNGNzAwNjA0NjE0NjA2RTE0NzAwMjgxOUQyNDA0NjAwMjgxQTVEQQorOjEwNDQwNzAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUFGNgorOjEwNDQxNzAwRTBGRjEyNEE1NThCMjA4QTIxODkyMkVBNDk2MDExQ0U5MgorOjEwNDQyNzAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBMAorOjEwNDQzNzAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ3Qjc5MworOjEwNDQ0NzAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0YzRAorOjEwNDQ1NzAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQzRQorOjEwNDQ2NzAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzMQorOjEwNDQ3NzAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U0RAorOjEwNDQ4NzAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZFOQorOjEwNDQ5NzAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyMQorOjA1NDRBNzAwQjRFMDQ0MDFGMDQ3Cis6MDE0NEFDMDAyMkVECis6MTA0NEFEMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMDk4Cis6MTA0NEJEMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDZCCis6MTA0NENEMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUMyCis6MTA0NEREMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOUY0Cis6MTA0NEVEMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjI0Cis6MTA0NEZEMDAyNjEyNEIyODEyMkRBOTEyM0JEMzEyNDYxOTEyM0E0MkZECis6MTA0NTBEMDA5MDc2Njg3NDAxRjA3MDBGMTI0QzI5MTI0RTE1MTI0RUYwCis6MTA0NTFEMDAxNzEyMUI0MDEyMTQ5NjEyNDMxNDkwN0ZBRkUwNDQwMTAyCis6MTA0NTJEMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjcxCis6MTA0NTNEMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjVECis6MTA0NTREMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODM5Cis6MDg0NTVEMDAyMDUzQThBMDQzQTg4MDIyMEUKKzoxMDQ1NjUwMDkwNzY5QTc0MDJGMEU0OTA3NjkxRjBBM0YwOTA3NjkwQUMKKzoxMDQ1NzUwMEYwOTA3NjkzRjA5MDc2OTY3NDAzRjA5MDgwMDNGMEU0RDMKKzoxMDQ1ODUwMDkwNzY5N0YwOTA4MDAyRjA5MDc2OTQwNEYwOTA4MDAwRjkKKzoxMDQ1OTUwMEYwRTQ5MDc2OEVGMDkwNzYxQUYwOTA3Njk1MDRGMEMyNUQKKzoxMDQ1QTUwMDJFOTA3RjlCRTBGRjU0MTBGRjcwMDJDMjNGOTA3RjlCQ0YKKzoxMDQ1QjUwMEUwRkY1NDEwRkVGRkJFMTAwMkQyM0Y5MDdGOUJFMEZGNEMKKzoxMDQ1QzUwMDU0MjBGRjcwMDJDMjNFOTA3RjlCRTBGRjU0MjBGRUZGMDcKKzoxMDQ1RDUwMEJFMjAwMkQyM0UzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMkYKKzoxMDQ1RTUwMDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwOEUKKzoxMDQ1RjUwMDMwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwOEEKKzoxMDQ2MDUwMDU0RkJGMDkwNzY5NUUwOTA4MDAxRjBBMjNFOTI0MEEyOTYKKzowMzQ2MTUwMDNGOTI0MTkwCis6MDE0NjE4MDAyMjdGCis6MTA0NjE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU1Cis6MTA0NjI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNERGCis6MTA0NjM5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTg3Cis6MTA0NjQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NUMwCis6MTA0NjU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEYxCis6MTA0NjY5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNDI1Cis6MTA0Njc5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDhGCis6MTA0Njg5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NTM1Cis6MTA0Njk5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTcwCis6MTA0NkE5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBECis6MEM0NkI5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ3MDBEOAorOjEwNDZDNTAwMDIwN0E2RTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjI1RQorOjEwNDZENTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNGNgorOjEwNDZFNTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZDNQorOjEwNDZGNTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEM4RkU0N0VCQQorOjEwNDcwNTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNCOQorOjEwNDcxNTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM4MAorOjEwNDcyNTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FBQgorOjEwNDczNTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkU2MworOjEwNDc0NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRFRAorOjEwNDc1NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA5NworOjEwNDc2NTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDBERAorOjEwNDc3NTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBERgorOjEwNDc4NTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBFQgorOjEwNDc5NTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDBEQworOjEwNDdBNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA4QworOjAyNDdCNTAwRDMyMjBECis6MDI0N0I3MDA4RjJFNDMKKzoxMDQ3QjkwMEU0RjUyRjc1MzBGRjc1MzEwNzc1MzIxQUFCMzBBQTMxMjAKKzoxMDQ3QzkwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQUEKKzoxMDQ3RDkwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNEEKKzoxMDQ3RTkwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjIKKzowMTQ3RjkwMDIyOUQKKzowNjQ3RkEwMDEyNEIyOEMyMzEyMjFGCis6MTA0ODAwMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDMyCis6MTA0ODEwMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkVECis6MTA0ODIwMDBDMEUwQzJDQUMyQ0Y5MDdGOThFMDQ0MDFGMDMwMkUwM0FFCis6MTA0ODMwMDAxMjE0QTY5MDdGOThFMDU0RkVGMDUzQThGQTEyMTY2MTY1Cis6MTA0ODQwMDBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMDM3Cis6MTA0ODUwMDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODJEMDgzRDBGMDI4Cis6MDM0ODYwMDBEMEUwMzI3MworOjEwNDg2MzAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDE3MTQ2MDIxMTRERAorOjEwNDg3MzAwNjAyQjE0NjAzMjI0MDQ3MDM4OTA3RkVBRTA5MDc2OTFDNAorOjEwNDg4MzAwRjA4MDM1OTA3RkVBRTA5MDc2OTJGMDEyM0U5RjgwMjg4OAorOjEwNDg5MzAwOTA3RkVBRTA5MDc2OTBGMDEyMTgwMDgwMUI5MDdGRUFGOAorOjEwNDhBMzAwRTA5MDc2ODRGMDgwMTE5MDdGRUFFMDkwNzY5M0YwODAzOAorOjBBNDhCMzAwMDc5MDdGQjRFMDQ0MDFGMEQzMjIyNworOjEwNDhCRDAwMzAyRDM5QzIyRDkwNzYxOUUwRkZCNDAxMERFNDkwNzZCQworOjEwNDhDRDAwN0NGMEEzNzRGOEYwQTM3NDBBRjBFRkI0MDIwREU0OTAzOQorOjEwNDhERDAwNzY3Q0YwQTM3NEYwRjBBMzc0MEJGMEVGQjQwMzBERTQ0OQorOjBENDhFRDAwOTA3NjdDRjBBMzc0RjhGMEEzNzQxN0YwMjIwRAorOjA2NDhGQTAwNTM5MUJGRDIyRDMyRTQKKzoxMDQ5MDAwMDAyMkZFNzAwMDIzRDQ3MDAwMjREQjQwMDAyNEM0MzAwNzUKKzoxMDQ5MTAwMDAyNEJFOTAwMDIyRkZGMDAwMjRDNUIwMDAyNEMwQTAwMzAKKzoxMDQ5MjAwMDAyNEM3MjAwMDI0QjVBMDAwMjRDODkwMDAyNENBMDAwNUIKKzoxMDQ5MzAwMDAyNENCNzAwMDI0Q0NFMDAwMjRDRTUwMDAyNENGQzAwRDkKKzoxMDQ5NDAwMDAyNEQxMzAwMDI0RDJBMDAwMjRENDEwMDAyNEQ1ODAwNTUKKzowODQ5NTAwMDAyNEQ2RjAwMDI0RDg2MDBDQworOjEwNDk1ODAwRTQ5MDc2MjZGMDkwNzYyNkUwRkY3NUYwMDNBNDI0MzRFMAorOjEwNDk2ODAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRCMgorOjEwNDk3ODAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNkUwMDRGMDgwRDVDQQorOjEwNDk4ODAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDMxRgorOjEwNDk5ODAwQTQyNDMyRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTAyQQorOjA2NDlBODAwN0ZCNTc0MDFGMDIyNEUKKzoxMDQ5QUUwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjYKKzoxMDQ5QkUwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwQUYKKzoxMDQ5Q0UwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzMkMKKzoxMDQ5REUwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwQ0YKKzoxMDQ5RUUwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwQUEKKzowNTQ5RkUwMEEzRjBBM0YwMjI2QworOjEwNEEwMzAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQzNgorOjEwNEExMzAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQwNgorOjEwNEEyMzAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDUxRgorOjEwNEEzMzAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTAxQworOjEwNEE0MzAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUVBQQorOjAyNEE1MzAwRjAyMjRGCis6MTA0QTU1MDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOTY3Cis6MTA0QTY1MDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDE2Cis6MTA0QTc1MDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2MjQzCis6MTA0QTg1MDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFREY0Cis6MTA0QTk1MDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMDRECis6MDE0QUE1MDAyMkVFCis6MTA0QUE2MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEUwCis6MTA0QUI2MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNDQwNEYwNDQwODg0Cis6MTA0QUM2MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkU1Cis6MTA0QUQ2MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDhDCis6MEI0QUU2MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOTgKKzoxMDRBRjEwMEU0RkY3NDU2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDI4RTIKKzoxMDRCMDEwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ1RTJGRjU4MkU0QjQKKzoxMDRCMTEwMDM0NzZGNTgzRTBGRTc0MzgyRkY1ODJFNDM0ODBGNTgzMzIKKzowNjRCMjEwMEVFRjAwRkJGMDhDQzBFCis6MDE0QjI3MDAyMjZCCis6MTA0QjI4MDBFNDkwNzIzNkYwQTNGMDkwN0Y5N0UwNTRGQkYwRTQ5MEE1Cis6MTA0QjM4MDA3MjMzRjA5MDcyMzJGMDkwNzIwMTA0RjBFNDkwNzIzM0E0Cis6MTA0QjQ4MDBGMDkwNzIzMkYwOTA3MjAxMDRGMDkwN0Y5N0UwNDQwNDg0Cis6MDI0QjU4MDBGMDIyNDkKKzoxMDRCNUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwODQKKzoxMDRCNkEwMDkwN0ZDN0UwRjUxMTc1MEYwMDc1MEQwMEQyMzNEMDgyMjIKKzowNTRCN0EwMEQwODNEMEUwMzIwMQorOjEwNEI3RjAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwNDIwNEUwNDQ2QworOjEwNEI4RjAwMDJGMDdGREM3RTA1MTI0RDlEOTA3RkQ2RTA1NEY3RjA0QQorOjA1NEI5RjAwRTA0NDA0RjAyMkQ3Cis6MTA0QkE0MDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjhFCis6MTA0QkI0MDA0OTU4MjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDRECis6MDM0QkM0MDAwMUYwMjJEQgorOjEwNEJDNzAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNEFCMQorOjEwNEJENzAwMDMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFDNworOjAyNEJFNzAwRjAyMkJBCis6MTA0QkU5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjA5MDA2Cis6MTA0QkY5MDA3Njk2RTA1NEZERjA5MDgwMDNGMEQwODJEMDgzRDBFMDI3Cis6MDE0QzA5MDAzMjc4Cis6MTA0QzBBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMEQ0Cis6MEY0QzFBMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzIyMQorOjEwNEMyOTAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTI1NQorOjBBNEMzOTAwNEQ5RDkwN0ZENkUwNTRGRUYwMjI1RQorOjEwNEM0MzAwQzBFMEMwODNDMDgyRDIyNTUzOTFFRjkwN0ZBQjc0MDgzQworOjA4NEM1MzAwRjBEMDgyRDA4M0QwRTAzMkUyCis6MTA0QzVCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDFGMDg0Cis6MDc0QzZCMDBEMDgyRDA4M0QwRTAzMkJCCis6MTA0QzcyMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDJGMDZDCis6MDc0QzgyMDBEMDgyRDA4M0QwRTAzMkE0Cis6MTA0Qzg5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDRGMDUzCis6MDc0Qzk5MDBEMDgyRDA4M0QwRTAzMjhECis6MTA0Q0EwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDRGMDNCCis6MDc0Q0IwMDBEMDgyRDA4M0QwRTAzMjc2Cis6MTA0Q0I3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDhGMDIxCis6MDc0Q0M3MDBEMDgyRDA4M0QwRTAzMjVGCis6MTA0Q0NFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDhGMDA5Cis6MDc0Q0RFMDBEMDgyRDA4M0QwRTAzMjQ4Cis6MTA0Q0U1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MTBGMEVCCis6MDc0Q0Y1MDBEMDgyRDA4M0QwRTAzMjMxCis6MTA0Q0ZDMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MTBGMEQzCis6MDc0RDBDMDBEMDgyRDA4M0QwRTAzMjE5Cis6MTA0RDEzMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MjBGMEFDCis6MDc0RDIzMDBEMDgyRDA4M0QwRTAzMjAyCis6MTA0RDJBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MjBGMDk0Cis6MDc0RDNBMDBEMDgyRDA4M0QwRTAzMkVCCis6MTA0RDQxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0NDBGMDVFCis6MDc0RDUxMDBEMDgyRDA4M0QwRTAzMkQ0Cis6MTA0RDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0NDBGMDQ2Cis6MDc0RDY4MDBEMDgyRDA4M0QwRTAzMkJECis6MTA0RDZGMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0ODBGMEYwCis6MDc0RDdGMDBEMDgyRDA4M0QwRTAzMkE2Cis6MTA0RDg2MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0ODBGMEQ4Cis6MDc0RDk2MDBEMDgyRDA4M0QwRTAzMjhGCis6MTA0RDlEMDA4RTM1OEYzNkU1MzYxNTM2QUUzNTcwMDIxNTM1NEU2MENCCis6MDc0REFEMDAwNTEyMTQ4NTgwRUUyMkJGCis6MTA0REI0MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA0RjBEMDA1Cis6MDY0REM0MDA4MkQwODNEMEUwMzIzMgorOjEwNERDQTAwOTA3NjgyRTA5MDdGMDBGMDkwN0ZCNTc0MDFGMEQzMjI1NAorOjBDNEREQTAwQzIzN0U0RjUwRUY1MTBDMjM2RjUxNDIyQzUKKzowOTRERTYwMEMyMjU1M0Q4RUY0M0Q4MjAzMjU2Cis6MDc0REVGMDA1Mzk4RkU1Mzk4RkQzMkJBCis6MDc0REY2MDA1M0MwRkU1M0MwRkQzMjYzCis6MDY0REZEMDA1MzkxN0ZEMjJDMzIxRAorOjA0NEUwMzAwNTM5MURGMzJCNgorOjA0NEUwNzAwNTNEOEY3MzI1MworOjA0NEUwQjAwMTIxNzMwMjIyOAorOjAzNEUwRjAwQzI4RDMyMUYKKzowMzRFMTIwMEMyOEYzMjFBCis6MDI0RTE1MDBEMzIyQTYKKzowMjRFMTcwMEQzMjJBNAorOjAyNEUxOTAwRDMyMkEyCis6MDI0RTFCMDBEMzIyQTAKKzowMjRFMUQwMEQzMjI5RQorOjAyNEUxRjAwRDMyMjlDCis6MDI0RTIxMDBDMzIyQUEKKzowMDAwMDAwMUZGCisvKgorU291cmNlOiBFTUk2Mk1GVy5IRVgKK1ZFUlNJT049MS4wNC4wNjIKK0RBVEU9MTYuMTAuMjAwMgorKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTYyL3NwZGlmLkhFWCBiL2Zpcm13YXJlL2VtaTYyL3NwZGlmLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjJkNTBjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pNjIvc3BkaWYuSEVYCkBAIC0wLDAgKzEsMTI1NyBAQAorOjAzMDAwMDAwMDI0NUY5QkQKKzowMzAwMDMwMDAyMEZGREVDCis6MDMwMDBCMDAwMjREOUIwOAorOjAzMDAxMzAwMDIxN0ZERDQKKzowMzAwMUIwMDAyNEQ5RUY1Cis6MDMwMDIzMDAwMjRENzUxNgorOjAzMDAyQjAwMDI0NkY3OTMKKzowMzAwMzMwMDAyNEQ2QzBGCis6MDMwMDNCMDAwMjREN0NGNworOjAzMDA0MzAwMDI0OTAwNkYKKzowMzAwNEIwMDAyNEQ4RkQ0Cis6MDMwMDUzMDAwMjREODNEOAorOjAzMDA1QjAwMDI0RDg5Q0EKKzowMzAwNjMwMDAyNEQ5M0I4Cis6MTAwNTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODExMDEwMDAxMDEwMkZGCis6MTAwNTEwMDAwMDAxMDkwMkFDMDEwMzAxMDA4MDMyMDkwNDAwMDAwMDVGCis6MTAwNTIwMDAwMTAxMDAwMDBBMjQwMTAwMDE1NjAwMDIwMTAyMEMyNDBFCis6MTAwNTMwMDAwMjAxMDEwMTAwMDIwMDAwMDAwMDBEMjQwNjA1MDEwMjc1Cis6MTAwNTQwMDAwMzAwMDAwMDAwMDAwMDA5MjQwMzAyMDQwMzAwMDUwMDZBCis6MTAwNTUwMDAwQzI0MDIwMzA1MDIwMDA2MDAwMDAwMDAxNTI0MDYwNjE0Cis6MTAwNTYwMDAwMzAyMDAwMDAzMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDc0Cis6MTAwNTcwMDAwMDA5MjQwMzA0MDEwMTAwMDYwMDA5MDQwMTAwMDAwMTMwCis6MTAwNTgwMDAwMjAwMDAwOTA0MDEwMTAyMDEwMjAwMDAwNzI0MDEwMTI4Cis6MTAwNTkwMDAwMDAxMDAxMTI0MDIwMTAyMDIxMDAzNDRBQzAwODBCQkUwCis6MTAwNUEwMDAwMDAwNzcwMTA5MDUwQTA1ODQwMTAxMDA4RjA3MjUwMTc0Cis6MTAwNUIwMDAwMTAwMDAwMDA5MDU4RjAxMDMwMDAxMDUwMDA5MDQwMTg1Cis6MTAwNUMwMDAwMjAyMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDExMjQwMkJGCis6MTAwNUQwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTQ5Cis6MTAwNUUwMDAwQTA1NDYwMjAxMDA4RjA3MjUwMTAxMDAwMDAwMDkwNUU4Cis6MTAwNUYwMDA4RjAxMDMwMDAxMDUwMDA5MDQwMjAwMDAwMTAyMDAwMDUwCis6MTAwNjAwMDAwOTA0MDIwMTAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMEE1Cis6MTAwNjEwMDAwRTI0MDIwMTA2MDIxMDAyNDRBQzAwODBCQjAwMDkwNTUyCis6MTAwNjIwMDA4QzA1NEMwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNEFFCis6MTAwNjMwMDAwMjAyMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMEUyNDRGCis6MTAwNjQwMDAwMjAxMDYwMzE4MDI0NEFDMDA4MEJCMDAwOTA1OEMwNUJBCis6MTAwNjUwMDA3MjAzMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDIwM0UzCis6MTAwNjYwMDAwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDIwMTFECis6MTAwNjcwMDAwMjAyMTAwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU4QzI2Cis6MTAwNjgwMDAwNTg0MDEwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMkExCis6MTAwNjkwMDAwNDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMkVBCis6MTAwNkEwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTc4Cis6MTAwNkIwMDA4QzA1NDYwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDQwMzJBCis6MTAwNkMwMDAwOTA0MTgwMzQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMEJDCis6MTAwNkQwMDAyMDAwNDcwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMEM1Cis6MTAwNkUwMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDdCCis6MTAwNkYwMDAyMDAwMzYwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMEY5Cis6MTAwNzAwMDA2RjAwNkUwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDhFCis6MTAwNzEwMDA3NDAwNjkwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMEM2Cis6MTAwNzIwMDA2OTAwNkUwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMEQ2Cis6MTAwNzMwMDA3MjAwNjYwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMEQxCis6MEEwNzQwMDA3MjAwNjkwMDZFMDA2NzAwMDAwMEZGCis6MTAwNzRBMDA5MDc2OUE3NDAyRjBFNDkwNzY5MUYwQTNGMDkwNzY5MDA1Cis6MTAwNzVBMDBGMDkwNzY5M0YwOTA3Njk2NzQwM0YwOTA4MDAzRjBFNDJDCis6MTAwNzZBMDA5MDc2OTdGMDkwODAwMkYwOTA3Njk0MDRGMDkwODAwMDUyCis6MTAwNzdBMDBGMEU0OTA3NjhFRjA5MDc2MUFGMDkwNzY5NTA0RjBDMkI2Cis6MTAwNzhBMDAyRTkwN0Y5QkUwRkY1NDEwRkY3MDAyQzIzRjkwN0Y5QjI4Cis6MTAwNzlBMDBFMEZGNTQxMEZFRkZCRTEwMDJEMjNGOTA3RjlCRTBGRkE1Cis6MTAwN0FBMDA1NDIwRkY3MDAyQzIzRTkwN0Y5QkUwRkY1NDIwRkVGRjYwCis6MTAwN0JBMDBCRTIwMDJEMjNFMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDg4Cis6MTAwN0NBMDAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMEU3Cis6MTAwN0RBMDAzMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMEUzCis6MTAwN0VBMDA1NEZCRjA5MDc2OTVFMDkwODAwMUYwQTIzRTkyNDBBMkYwCis6MDMwN0ZBMDAzRjkyNDFFQQorOjAxMDdGRDAwMjJEOQorOjAyMDdGRTAwRDMyMjA0Cis6MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Cis6MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCis6MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCis6MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCis6MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Cis6MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCM0UyMjkwN0ZFREU5Cis6MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Cis6MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCis6MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Cis6MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCis6MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Cis6MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Cis6MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Cis6MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Cis6MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Cis6MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Cis6MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Cis6MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECis6MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Cis6MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCis6MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCis6MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Cis6MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCis6MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCis6MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCis6MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCis6MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCis6MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCis6MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCis6MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCis6MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCis6MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCis6MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Cis6MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCis6MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCis6MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Cis6MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCis6MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Cis6MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECis6MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Cis6MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Cis6MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCis6MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECis6MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCis6MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCis6MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCis6MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCis6MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCis6MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCis6MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCis6MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Cis6MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Cis6MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Cis6MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCis6MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCis6MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Cis6MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCis6MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Cis6MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Cis6MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCis6MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Cis6MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCis6MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCis6MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCis6MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCis6MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Cis6MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCis6MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCis6MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Cis6MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCis6MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCis6MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Cis6MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQorOjEwMEM4RjAwNDE3NjY4MDE0MTc2NkEwMjQxNzY2QjBBQzEyMEMxMjEyMworOjAyMEM5RjAwQzEyRjYzCis6MDQwQ0ExMDA0MTc2MjMwMDc1Cis6MTAwQ0E1MDA0MTcyMDEwMTQ1NzIwNTAwMDJDOTAwMDA0NTcyMEEwMDQyCis6MTAwQ0I1MDAwMTAyMDMwNDRENzIwRkQxMDBEMTAwMDAwMDAwMDAwMEI1Cis6MTAwQ0M1MDAyODI4MDkwMDRENzIxQzAxMDAwMTAyMDMwNDA1MDYwN0NFCis6MTAwQ0Q1MDAwODA5MEEwQjQxNzIyRTIyNDE3MjJGMjM0MTcyMzAyMERFCis6MTAwQ0U1MDA0MTcyMzEyMTYyRDI3MjNBMDAwMDAwMDAwMDAwMDAwMDFBCis6MTAwQ0Y1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAwRDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAwRDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAwRDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAwRDM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAwRDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAwRDU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAwRDY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAwRDc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMTAxMDEwMTY4Cis6MTAwRDg1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTRFCis6MTAwRDk1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTNFCis6MTAwREE1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTJFCis6MTAwREI1MDAwMTAxMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjE2Cis6MTAwREM1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkZFCis6MTAwREQ1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkVFCis6MTAwREU1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkRFCis6MTAwREY1MDAwMjAyMDIwMjAyMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0MzCis6MTAwRTA1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0FECis6MTAwRTE1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzlECis6MTAwRTI1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzhECis6MTAwRTM1MDAwMzAzMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDZGCis6MTAwRTQ1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDVECis6MTAwRTU1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDRECis6MTAwRTY1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDNECis6MTAwRTc1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTFECis6MTAwRTg1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTBECis6MTAwRTk1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNUZECis6MTAwRUE1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDYwNkVCCis6MTAwRUI1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkNECis6MTAwRUM1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkJECis6MTAwRUQ1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkFECis6MTAwRUU1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDcwNzA3MDgwODk2Cis6MTAwRUY1MDAwODA5MDkwOTBBMEEwQTBCMEIwQjBDMEMwQzBEMEQwRDQwCis6MTAwRjA1MDAwRTBFMEUwRjBGMEYxMDEwMTAxMTExMTExMjEyMTIxM0Q5Cis6MTAwRjE1MDAxMzEzMTQxNDE0MTUxNTE1MTYxNjE2MTcxNzE3MTgxODc0Cis6MTAwRjI1MDAxODE5MTkxOTE5MUExQTFBMUExQjFCMUIxQjFDMUMxQzE4Cis6MTAwRjM1MDAxQzFEMUQxRDFEMUUxRTFFMUUxRjFGMUYxRjIwMjAyMEM4Cis6MTAwRjQ1MDAyMTIxMjEyMjIyMjIyMzIzMjQyNDI1MjUyNjI2MjcyNzYxCis6MTAwRjU1MDAyODI4MjkyOTJBMkEyQjJCMkMyQzJEMkQyRTJFMkYyRkQ0Cis6MTAwRjY1MDAzMDMwMzEzMTMyMzIzMzMzMzQzNDM1MzUzNjM2MzczNzQ0Cis6MTAwRjc1MDAzODM4MzkzOTNBM0EzQjNDM0QzRTNGNDA0MTQyNDM0NDlCCis6MTAwRjg1MDA0NTQ2NDc0ODQ5NDk0QTRCNEI0QzRENEU0RjUwNTE1MkE3Cis6MTAwRjk1MDA1MzU0NTU1NTU2NTY1NzU3NTg1QTVCNUQ1RTVGNjE2MkI3Cis6MTAwRkE1MDA2MzY0NjU2NjY3Njg2OTZBNkI2QzZENkY3MTcyNzM3NDhCCis6MTAwRkI1MDA3NTc2Nzc3ODc5N0E3QjdDN0U4MDAxMzcwMTAxMzgwMEY4Cis6MDEwRkM1MDAwMDJCCis6MTAwRkM2MDBFNEZGNzQ0NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyMDYwCis6MTAwRkQ2MDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NEUyRkY1ODJFNDJCCis6MTAwRkU2MDAzNDc2RjU4M0UwRkU3NDMwMkZGNTgyRTQzNDgwRjU4M0ExCis6MDYwRkY2MDBFRUYwMEZCRjA4Q0M3NQorOjAxMEZGQzAwMjJEMgorOjAzMEZGRDAwQzI4OTMyNzQKKzoxMDEwMDAwMEU0OTA3NjJDRjA5MDc2MkNFMEZGNzVGMDAzQTQyNDBGOEEKKzoxMDEwMTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENDIKKzoxMDEwMjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MkNFMDA0RjA4MEQ1NEUKKzoxMDEwMzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQTkKKzoxMDEwNDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MkVGMDI0MjYKKzoxMDEwNTAwMEYwNjAwQTI0MEY2MDAyODE3RDEyNEIxQjIyOTA3RkVEMEQKKzoxMDEwNjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzg3NDAxM0MKKzoxMDEwNzAwMEYwOTA3NjNBNzQwM0YwOTA3NjFDRjBFNDkwNzYxQkYwRDIKKzoxMDEwODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjFCRTBGRjc1RjAwQUE0RjEKKzoxMDEwOTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENTIKKzoxMDEwQTAwMEVFNkQ2MDEyOTA3NjFDRTBGRUVGQzM5RTUwMDg5MDc2QzUKKzoxMDEwQjAwMDFCRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTIKKzoxMDEwQzAwMDE4NzQwNkYwOTA3NjM4NzQwNEYwOTA3NjNBNzQwQUYwNEEKKzoxMDEwRDAwMDkwNzYxQ0YwOTA3NjFCNzQwM0YwOTA3RkVBRTBGNDYwNDkKKzoxMDEwRTAwMDJGOTA3NjFCRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjEKKzoxMDEwRjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2N0MKKzoxMDExMDAwMDFDRTBGRUVGQzM5RTUwMDg5MDc2MUJFMDA0RjA4MEQxRjcKKzoxMDExMTAwMEU0OTA3NjFFRjA5MDc2MUNFMEZGOTA3NjFCRTBGRTZGNjgKKzoxMDExMjAwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRTAxNDYwRkYKKzoxMDExMzAwMDEzMTQ3MDAyMjFCRjI0MDI2MDAyODE3NTkwN0ZCNEUwMTUKKzoxMDExNDAwMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzA2QjkwN0ZFQUUwMTkKKzoxMDExNTAwMEY0NzA0QTkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTMKKzoxMDExNjAwMDkwNzYxQkUwRkRDMzlGNTAyQkVENzVGMDBBQTQyNEFCRDUKKzoxMDExNzAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkQwNEYwMUYKKzoxMDExODAwMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwNTgKKzoxMDExOTAwMDA0RjA4MEM3OTA3NjFFRTA5MDdGQjVGMDIyRUU3NUYwRTcKKzoxMDExQTAwMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwNjcKKzoxMDExQjAwMDkwN0ZCNTc0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwNUEKKzoxMDExQzAwMDdGRTlFMDI0N0U3MDAyNDE3RTE0NzAwMjYxMjMxNDcwNzYKKzoxMDExRDAwMDAyNjFDODI0MDM2MDAyODE2RDkwN0ZFQUUwRjQ3MDZEQzMKKzoxMDExRTAwMDkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCOTAKKzoxMDExRjAwMEUwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEFDRjU4MkU0RjEKKzoxMDEyMDAwMDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJENDkKKzoxMDEyMTAwMEY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEFEOTcKKzoxMDEyMjAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNkQKKzoxMDEyMzAwMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwQTYKKzoxMDEyNDAwMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCOEIKKzoxMDEyNTAwMEUwRkY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwNzAKKzoxMDEyNjAwMDkwN0YwMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1QTgKKzoxMDEyNzAwMEY1ODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQkIKKzoxMDEyODAwMEVBRTBGNDcwNkQ5MDc2MzhFMDkwNzYxQkYwOTA3NjNBNTQKKzoxMDEyOTAwMEUwRkY5MDc2MUJFMEMzOUY1MDRGRTBGRjc1RjAwQUE0N0IKKzoxMDEyQTAwMDI0QUVGNTgyRTQzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMTEKKzoxMDEyQjAwMDA0RjA3NDAwMkRGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RDEKKzoxMDEyQzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0UwRkY5MDc2NEMKKzoxMDEyRDAwMDFFRTBGRTA0RjA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGMDcKKzoxMDEyRTAwMEYwOTA3NjFCRTAwNEYwODBBNDkwNzYxRUUwOTA3RkI1MkQKKzoxMDEyRjAwMEYwMjI5MDc2MUJFMEZGNzVGMDBBQTQyNEFFRjU4MkU0OUMKKzoxMDEzMDAwMDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVGMDBBQTQyNEFGMDgKKzoxMDEzMTAwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MzkKKzoxMDEzMjAwMDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2REIKKzoxMDEzMzAwMDFCRjA5MDc2M0FFMEZGOTA3NjFCRTBDMzlGNTA0RkUwQTEKKzoxMDEzNDAwMEZGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFMEZFNUQKKzoxMDEzNTAwMDkwNzYxRUUwRkQwNEYwNzQwMDJERjU4MkU0MzQ3RkY1RjQKKzoxMDEzNjAwMDgzRUVGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1NEMKKzoxMDEzNzAwMDgzRTBGRjkwNzYxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MTgKKzoxMDEzODAwMDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MzQKKzoxMDEzOTAwMDFFRTA5MDdGQjVGMDIyOTA3NjFCRTBGRjc1RjAwQUE0NjYKKzoxMDEzQTAwMDI0QjBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjBFRjc1QUEKKzoxMDEzQjAwMEYwMEFBNDI0QjFGNTgyRTQzNDc1RjU4M0UwOTA3RjAxNEUKKzoxMDEzQzAwMEYwOTA3RkI1NzQwMkYwMjI5MDdGRUFFMEY0NzA2RDkwQTcKKzoxMDEzRDAwMDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQkUwNEUKKzoxMDEzRTAwMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0QTUKKzoxMDEzRjAwMDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyREY1OTcKKzoxMDE0MDAwMDgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRCM0Y1OUYKKzoxMDE0MTAwMDgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDc0RkMKKzoxMDE0MjAwMDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDA0MjQKKzoxMDE0MzAwMEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQkUwQkQKKzoxMDE0NDAwMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFMDkwQzgKKzoxMDE0NTAwMDdGMDBGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1NEIKKzoxMDE0NjAwMDgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkI0MEEKKzoxMDE0NzAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0NzgKKzowNTE0ODAwMEUwNDQwMUYwMjIzMAorOjEwMTQ4NTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk3QQorOjAxMTQ5NTAwMjIzNAorOjEwMTQ5NjAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFMAorOjEwMTRBNjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBEQworOjEwMTRCNjAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NTdEMDAwNAorOjEwMTRDNjAwOTA3RkUzNzQ3QkYwQTM3NDgwRjA3QzExOTA3Rjk5RTBBOQorOjEwMTRENjAwNTQ0MERDMDMwMjE0RjNCNDAwMTM5MDdGRTI3NDQwRjAyRQorOjEwMTRFNjAwOTA3RkU1RjA5MDdGRTI3NDAwRjAwMjE0RDI5MDc2OTAzRgorOjEwMTRGNjAwRTBCNDAxMTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjBDQgorOjEwMTUwNjAwOTA3RjZDMDIxNTU3QjQwMjEyOTA3NjhGRTAyREZEOTBGNQorOjEwMTUxNjAwN0ZFMjc0ODBGMDkwN0Y2QzAyMTU5NkI0MDMxMjkwNzY4OQorOjEwMTUyNjAwOEZFMDJERkQ5MDdGRTI3NDgwRjA5MDdGNkMwMjE1RTFENAorOjEwMTUzNjAwQjQwNDEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwOTBENworOjEwMTU0NjAwN0Y2QzAyMTYxMDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTYxQQorOjEwMTU1NjAwNDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREYyN0RCOQorOjEwMTU2NjAwMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjRGRAorOjEwMTU3NjAwMDAwNTA1ODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjAyRAorOjEwMTU4NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERDQwMjE2NDBGQworOjEwMTU5NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0NQorOjEwMTVBNjAwRjBGMERERUM3RDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0YxRQorOjEwMTVCNjAwOUJFMDU0MDRCNDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ1MQorOjEwMTVDNjAwODBGMDA1ODZGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEQQorOjA2MTVENjAwRjBGMEYwRjBGMEYwNkYKKzoxMDE1REMwMEREQ0UwMjE2NDBGMEYwRjBGMERERkE3RDAyMDU4NjkwQ0IKKzoxMDE1RUMwMDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNTg2MDQKKzoxMDE1RkMwMDAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEREOEEKKzoxMDE2MEMwMERDMDIxNjQwRjBGMEYwRjBGMEYwRERGODdEMDIwNTg2MUIKKzoxMDE2MUMwMDkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1QzkKKzoxMDE2MkMwMDg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwQjAKKzoxMDE2M0MwMEYwRjBERERBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2N0UKKzoxMDE2NEMwMEQwODNEMDgyRDBFMEZDRDBFMEZERDBFMEZFRDBFMEZGMzMKKzowNTE2NUMwMEQwRTBEMEQwMjIxNworOjEwMTY2MTAwQzBEMEMwRTBDMDgyQzA4MzkwNzY3Q0UwOTA3RjZGRjBGNAorOjEwMTY3MTAwOTA3NjdERTA5MDdGNkZGMDkwNzY3RUUwOTA3RjZGRjBDNgorOjA5MTY4MTAwRDA4M0QwODJEMEUwRDBEMDIyNDkKKzoxMDE2OEEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzN0UKKzoxMDE2OUEwMDA1ODZDMDg0QzA4NTkwNzY4N0UwRkZCRjAwMDMwMjE3RTUKKzoxMDE2QUEwMDAxOTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGMTIKKzoxMDE2QkEwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGQTYKKzoxMDE2Q0EwMEYwOTA3RkUyNzQ4MEYwOTA3NjhFRTBCNDAxMDUwNTg2OTIKKzoxMDE2REEwMDAyMTZGNkI0MDIwNTA1ODYwMjE2RUIwNTg2MDIxNkZCMEIKKzoxMDE2RUEwMEUwRTBFMEUwRTBFMERGRjgwMjE2RkJFMEUwRTBFMERGNjcKKzoxMDE2RkEwMEZBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDA4M0QwM0EKKzowQzE3MEEwMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjgyCis6MTAxNzE2MDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQjZFCis6MEExNzI2MDBEMEUwRjhEMEUwRDA4M0QwODIyMjlBCis6MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECis6MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCis6MDcxNzRBMDA5MDdGQzU3NDAyRjAyMjNDCis6MTAxNzUxMDA5MDdFQzBFMDkwNzY0NUYwOTA3RUMxRTA5MDc2NDRGMEI2Cis6MTAxNzYxMDA5MDdFQzJFMDkwNzY0M0YwQjQwMDAzMDIxNzc4OTA3NjQxCis6MTAxNzcxMDAxOTc0MDNGMDAyMTc4RTkwNzY0NEUwQjRCQjA5OTA3Njk5Cis6MTAxNzgxMDAxOTc0MDJGMDAyMTc4RTkwNzYxOTc0MDFGMDkwNzY0MjY2Cis6MDMxNzkxMDBFNEYwMjI1RgorOjA0MTc5NDAwOEQyOThCMkFFNgorOjEwMTc5ODAwMTI0OUZGRUE0OTYwNTcxMjM2OTI3RTAwMjlGRkVFM0E1NQorOjEwMTdBODAwQzlFRkM5NzUyQkZGRjUyQzg5MkRBQjJCQUEyQ0E5MkRCOAorOjEwMTdCODAwOTAwMDAxMTIzNkFCRkY2NDA0NjAwNUVGNjQwNTcwMkVEQgorOjEwMTdDODAwRUZCNDA0MTU5MDAwMDIxMjM2QUI2NTI5NzAwQjkwMDAzNworOjEwMTdEODAwMDMxMjM2QUI2NTJBNzAwMTIyMTIzNjkyN0UwMDI5RkY2OQorOjEwMTdFODAwRUUzQUM5RUZDOTc1MkJGRkY1MkM4OTJEODBCQzdCMDAxQgorOjA0MTdGODAwN0EwMDc5MDBGQQorOjAxMTdGQzAwMjJDQQorOjAzMTdGRDAwQzI4QjMyNkEKKzoxMDE4MDAwMDkwNzY5MEUwMTQ2MDM3MTQ3MDAyMDFEODE0NzAwMjIxQjEKKzoxMDE4MTAwMDcyMTQ3MDAyNDEzQjI0MDQ2MDAyNjEwMzkwN0ZGQzc0RTcKKzoxMDE4MjAwMENDRjA5MDdGRkY3NEZDRjA5MDc2OTVFMDQ0MDFGMDU0OEEKKzoxMDE4MzAwMDA1RjA5MDgwMDFGMEU0OTA3NjFBRjBDMjJFMjI5MDc2QTYKKzoxMDE4NDAwMDk1RTA0NDAxRjA0NDAyRjAzMDNFMDZFMDQ0MDRGMDgwQUMKKzoxMDE4NTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwN0EKKzoxMDE4NjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyMjkwMjcKKzoxMDE4NzAwMDdGRkM3NDc0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCNzMKKzoxMDE4ODAwMEYwOTA3Njk3RTA1NEZERjBFNDkwNzY4MUYwOTA3NjgwQzkKKzoxMDE4OTAwMEYwRUZCNDAyMjI5MDdGRkM3NDY4RjA5MDdGRkY3NEZDM0MKKzoxMDE4QTAwMEYwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRjBFNDkwRjkKKzoxMDE4QjAwMDc2ODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFODQKKzoxMDE4QzAwMEYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA1NEZCMjMKKzoxMDE4RDAwMEYwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0RkVGMDQ0RjMKKzoxMDE4RTAwMDAyRjAzMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0MjQKKzoxMDE4RjAwMEZCRjA5MDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxQjQKKzoxMDE5MDAwMEYwOTA3NjE5RTBGRkI0MDEyMjkwN0ZGQzc0MzBGMDkwRTMKKzoxMDE5MTAwMDdGRkY3NEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RjQKKzoxMDE5MjAwMEZERjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyMjkwQTIKKzoxMDE5MzAwMDdGRkM3NDFDRjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGMDYKKzoxMDE5NDAwMEYwOTA3Njk3RTA0NDAyRjBFNDkwNzY4MUYwOTA3NjgwMTMKKzoxMDE5NTAwMEYwMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3M0MKKzoxMDE5NjAwMEUwNDQwMUYwOTA3Njk3RTA1NEZCRjA5MDgwMDJGMEQyRDIKKzoxMDE5NzAwMDJFMjI5MDc2OTVFMDQ0MDFGMDQ0MDJGMDQ0MDhGMDMwQzUKKzoxMDE5ODAwMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwMkEKKzoxMDE5OTAwMDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxRjA5MDc2OTgKKzoxMDE5QTAwMDE5RTBGRkI0MDEyNTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0QTgKKzoxMDE5QjAwMEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RkRGMDU0MDUKKzoxMDE5QzAwMEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyNTkwMDEKKzoxMDE5RDAwMDdGRkM3NEM4RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGQkEKKzoxMDE5RTAwMEYwOTA3Njk3RTA0NDAyRjA1NEZCRjBFNDkwNzY4MUYwQkEKKzoxMDE5RjAwMDkwNzY4MEYwRUZCNDAzMjU5MDdGRkM3NDk4RjA5MDdGOTAKKzoxMDFBMDAwMEZGNzRGQ0YwOTA3NjhGNzQ1RkYwOTA3Njk3RTA1NEZENTEKKzoxMDFBMTAwMEYwNDQwNEYwRTQ5MDc2ODFGMDkwNzY4MEYwMzAzRjA5NTUKKzoxMDFBMjAwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwQkUKKzoxMDFBMzAwMDkwNzY5N0UwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0MzYKKzoxMDFBNDAwMEZFRjA0NDAyRjA0NDA4RjAzMDNFMDZFMDQ0MDRGMDgwMkEKKzoxMDFBNTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwNzgKKzoxMDFBNjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyNTkwMjIKKzoxMDFBNzAwMDdGRkM3NEI0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCMzEKKzoxMDFBODAwMEYwOTA3Njk3RTA1NEZERjA1NEZCRjBFNDkwNzY4MUYwMEUKKzoxMDFBOTAwMDkwNzY4MEYwRUZCNDAyMjU5MDdGRkM3NEIwRjA5MDdGRDgKKzoxMDFBQTAwMEZGNzRGQ0YwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRUMKKzoxMDFBQjAwMEYwNTRGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAzODAKKzoxMDFBQzAwMDI1OTA3RkZDNzQ2OEYwOTA3RkZGNzRGQ0YwOTA3NjhGMTcKKzoxMDFBRDAwMDc0NUZGMDkwNzY5N0UwNTRGREYwNDQwNEYwRTQ5MDc2NjMKKzoxMDFBRTAwMDgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwRDgKKzoxMDFBRjAwMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyMUUKKzowNDFCMDAwMEYwRDIyRTIyQ0YKKzoxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKKzoxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKKzoxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKKzowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCis6MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzowMjFGM0UwMDAwMDBBMQorOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzowNTI3RkMwMDAwMDAwMDAwMjJCNgorOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQorOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNworOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgorOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MworOjEwMjg0MTAwNzA0MDEyNEJBMDQxQ0IxMjREQTc0MDAyNDFDQjkwN0Y2QgorOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQworOjEwMjg2MTAwNDFDQjEyNERBOTkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0JDMQorOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgorOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgorOjEwMjg5MTAwRjU3MDA1MTI0ODAwNDFDQjkwN0ZCNEUwNDQwMUYwNDE0RQorOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAorOjEwMjhCMTAwNERBNzQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTA3OQorOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMworOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgorOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAorOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjREQTlDRgorOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQworOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MworOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQorOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQorOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzREI0MUNCMTI4MgorOjEwMjk1MTAwNEQ1QzQxQ0IxMjREQTVBMjIyRTQzM0ZGMjVFMEZGQTIzRAorOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAorOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQorOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQorOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQorOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAorOjEwMjlCMTAwMTI0Njg1NDFDQjEyNERBNUU0OTA3RjAwRjBBM0YwOTAyMworOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QworOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0REE1OTAwNQorOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgorOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAorOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQorOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQorOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAorOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQorOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQorOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAorOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQorOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAorOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQorOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAorOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQorOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEQ1RQorOjEwMkFDMTAwQUI1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjQxNworOjA1MkFEMTAwRTA0NDAyRjAyMkM4Cis6MTAyQUQ2MDBFNDkwNzYyN0YwOTA3NjI3RTBGRjc1RjAwRkE0MjQ0MjY1Cis6MTAyQUU2MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDUzCis6MTAyQUY2MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI3RTAwNEYwODBENTY4Cis6MTAyQjA2MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRkIxCis6MTAyQjE2MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjI4RjAyNDA4Cis6MTAyQjI2MDA5RjcwMDJBMTc0MjQyMTYwMDJBMUExOTA3RkU5RTAyNDk0Cis6MTAyQjM2MDA3RTcwMDI2MUZDMTQ3MDAyODFCNTI0MDI2MDAyQTE2Q0YxCis6MTAyQjQ2MDBFRjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0I5Cis6MTAyQjU2MDBBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5MDA3ODE2Cis6MTAyQjY2MDAwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0FCCis6MTAyQjc2MDBGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDRCCis6MTAyQjg2MDAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGRDRECis6MTAyQjk2MDBBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQzMxMjM2Cis6MTAyQkE2MDAzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwRTRBMzdFCis6MTAyQkI2MDBGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNEFCCis6MTAyQkM2MDA0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRTYzCis6MTAyQkQ2MDBBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QUI2MEY4Cis6MTAyQkU2MDAwMkExQTg5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGCis6MTAyQkY2MDA3RkI1NzQwM0YwMjI5MDc2MjdFMDc1RjAwRkE0MjQ0NzgyCis6MTAyQzA2MDBGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0MyCis6MTAyQzE2MDBFMEZGN0I0NDdBQUM3OTAwNzgwMEMzMTIzN0FCNzAxM0JGCis6MTAyQzI2MDA5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTNGMDkwN0ZCNUY5Cis6MTAyQzM2MDA3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDNDCis6MTAyQzQ2MDAzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjgzCis6MTAyQzU2MDA4MDdBQkI3OTAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDdGCis6MTAyQzY2MDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDNGMDE2Cis6MTAyQzc2MDA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDM0NzVGNUM1Cis6MTAyQzg2MDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjAwN0E3N0YwCis6MTAyQzk2MDA3OTAxNzgwMEMzMTIzN0FCNjAwMkExQTg5MDdGMDBGMERCCis6MTAyQ0E2MDBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MEJCCis6MTAyQ0I2MDA3NjI3RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4MzhFCis6MTAyQ0M2MDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTQxCis6MTAyQ0Q2MDAwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBM0UyCis6MTAyQ0U2MDA3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDFGCis6MTAyQ0Y2MDA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBMzRDCis6MTAyRDA2MDBFMEZEQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEJDCis6MTAyRDE2MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEJFCis6MTAyRDI2MDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRjdBCis6MTAyRDM2MDBBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0ZGCis6MTAyRDQ2MDBFMEZFQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0IzCis6MTAyRDU2MDBBQjcwNEY5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MEVFCis6MTAyRDY2MDA3RkI1NzQwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3Rjk3Cis6MTAyRDc2MDBFOUUwMjQ3RjcwMUU5MDc2MjdFMDc1RjAwRkE0MjQ0RkJCCis6MTAyRDg2MDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDdGQjU3NEFBCis6MTAyRDk2MDAwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NEY2Cis6MDMyREE2MDAwMUYwMjIxNworOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgorOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgorOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QworOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAorOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQworOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNworOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQorOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NworOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQorOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAorOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQorOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QworOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQorOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQorOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMworOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAorOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQorOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQorOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgorOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQorOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgorOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQorOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQworOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgorOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQorOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAorOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QworOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQorOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQorOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQorOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQorOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAorOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQorOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAorOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NworOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCis6MTAyRkU3MDBDMEUwQzA4M0MwODJEMjI2NTM5MUVGOTA3RkFCNzQwMUJCCis6MDgyRkY3MDBGMEQwODJEMDgzRDBFMDMyNUIKKzowMTJGRkYwMDMyOUYKKzoxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKKzoxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKKzoxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKKzoxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKKzoxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKKzoxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKKzoxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKKzoxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKKzoxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKKzoxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKKzoxMDMwQTAwMDQ4RjM4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MDAKKzoxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKKzoxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKKzoxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKKzoxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKKzoxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKKzoxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKKzoxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKKzoxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKKzoxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKKzoxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNDhGM0MyMzUzMDM1QzIKKzoxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKKzoxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKKzoxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKKzoxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKKzoxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKKzoxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKKzoxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNDhGM0MyMzUzMDM1MEE4NTE5MUIKKzoxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKKzoxMDMxRDAwMDQ4RjM4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RTIKKzoxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKKzoxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKKzoxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKKzoxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKKzoxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKKzoxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKKzoxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKKzoxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKKzowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Cis6MTAzMjZGMDA5MDc2MThFMEZGNjQwNTcwNDI5MDc1QUJFMEI0MDExOUQ5Cis6MTAzMjdGMDA5MDcyMzc3NDAxRjBFNDkwODAyMEYwOTA4MDMxRjA5MERDCis6MTAzMjhGMDA4MDI4RjA5MDgwMzlGMDgwMjJFNDkwNzIzN0YwOTA3NUFBCis6MTAzMjlGMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDcxCis6MTAzMkFGMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjUyCis6MTAzMkJGMDA4MTk5OTA3MjM5NzQwNEYwOTA3MjM5RTBGRjI0RkU5MDc2Cis6MTAzMkNGMDA3MjA0RjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNUJGCis6MTAzMkRGMDA4M0UwNjQwMTcwNTQ5MDcyMzYwNEYwOTA3MjA0RTBGRjQyCis6MTAzMkVGMDAyNEZENjAyODI0RkU2MDI0MjQwMzI0RkI1MDA0NjAxQzZBCis6MTAzMkZGMDA4MThDNzQyMDJGRjU4MkU0MzQ4MEY1ODNFNEYwNzQyOEY4Cis6MTAzMzBGMDAyRkY1ODJFNDM0ODBGNTgzRTRGMDgxOEM5MDcyMDRFMDMxCis6MTAzMzFGMDBGRjI0MzBGNTgyRTQzNDgwRjU4M0U0RjA3NDM4MkZGNTIwCis6MTAzMzJGMDA4MkU0MzQ4MEY1ODNFNEYwODE4Q0U0OTA3MjM2RjA5MDdGCis6MTAzMzNGMDA3MjM5RTA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzkzCis6MTAzMzRGMDBFMEZGN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjI4Cis6MTAzMzVGMDAwMjc0M0JGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MEFBCis6MTAzMzZGMDAwNDkwNzIwMkYwRUY0RTcwMDI4MTM1RUY2NDgwNEU3MDYwCis6MTAzMzdGMDAwMjgxMzVFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjA5MDQwCis6MTAzMzhGMDA3MjM0RTA3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4MzQ5Cis6MTAzMzlGMDBFMEZGOTA3MjAyRjA5MDc1MERFMDJGRjA5MDc1MENFMDQ5Cis6MTAzM0FGMDAzNDAwRjBFMEZFQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOTQ0Cis6MTAzM0JGMDBGOEQzMTIzNzk1NDAwQTkwNzUwQzc0QTVGMEEzNzRENjA0Cis6MTAzM0NGMDBGMDkwNzUwREUwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMDdGCis6MTAzM0RGMDBGRUEzRTA3ODA1Q0VBMkU3MTNDRTEzRDhGOEZGOTA3NUMxCis6MTAzM0VGMDAwQ0VFRjBBM0VGRjA5MDcyMkNFRUYwQTNFRkYwRDM5NDZECis6MTAzM0ZGMDBEMkVFNjQ4MDk0ODI0MDBBOTA3MjJDNzQwMkYwQTM3NDBGCis6MTAzNDBGMDBEMkYwQzM5MDcyMkNFMDY0ODA5NDgwNTAwNEU0RjBBMzU3Cis6MTAzNDFGMDBGMDkwNzIyQ0UwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNUMwCis6MTAzNDJGMDA4M0UwOTA3MjAyRjA5MDcyMDRFMEZGMjRGRDYwMkQyNDdGCis6MTAzNDNGMDBGRTYwMjkyNDAzMjRGQjUwMDQ2MDIxODA0MDkwNzIwMjE3Cis6MTAzNDRGMDBFMEZFNzQyMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQyOENCCis6MTAzNDVGMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDgwMjE5MDcyMDJFMDQ0Cis6MTAzNDZGMDBGRjkwNzIwNEUwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkEwCis6MTAzNDdGMDBGMDc0MzgyRUY1ODJFNDM0ODBGNTgzRUZGMDkwNzIzOUQyCis6MEIzNDhGMDBFMDA0RjBFMDY0MEE2MDAyNDFDNzIyODQKKzoxMDM0OUEwMDkwNzYxOEUwRkZCNDA1MjM5MDcyMzdFMDcwMUQ5MDc1OUUKKzoxMDM0QUEwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNjQKKzoxMDM0QkEwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNDUKKzoxMDM0Q0EwMEMxOTE5MDcyMzZFMDYwMDJDMTkxOTA3NjQwRTA3MDMxMEQKKzoxMDM0REEwMDkwNzIwMzc0MDNGMDkwNzIwM0UwRkY3NUYwMEFBNDI0NUIKKzoxMDM0RUEwMEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3MjI5RTBGREVFRDgKKzoxMDM0RkEwMDZENjAwRUVGQzM5NDBBNTAwODkwNzIwM0UwMDRGMDgwRTYKKzoxMDM1MEEwMEQ1OTA3MjM5NzQwNEYwOTA3NjQwRTA3MDA4OTA3MjAzOTYKKzoxMDM1MUEwMEUwOTA3MjM5RjA5MDcyMzlFMEZEMjRGRTkwNzIyQUYwNDAKKzoxMDM1MkEwMEVENzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFMEZGNjUKKzoxMDM1M0EwMDdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIwMjc0QTQKKzoxMDM1NEEwMDgwRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzAwNDkwNUEKKzoxMDM1NUEwMDcyMDJGMEVGNEU3MDAyQzExQkVGNjQ4MDRFNzAwMkMxMUUKKzoxMDM1NkEwMDFCRUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwRUQ3NUYwMkUKKzoxMDM1N0EwMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMEZGOTA3MjAyNjQKKzoxMDM1OEEwMEYwOTA3NTBERTAyRkYwOTA3NTBDRTAzNDAwRjBFMEZFM0QKKzoxMDM1OUEwMEEzRTBGRkU0RkNGRDdCRDY3QUE1RjlGOEQzMTIzNzk1QjAKKzoxMDM1QUEwMDQwMEE5MDc1MEM3NEE1RjBBMzc0RDZGMDkwNzUwREUwREUKKzoxMDM1QkEwMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTBGRUEzRTA3ODA1NzYKKzoxMDM1Q0EwMENFQTJFNzEzQ0UxM0Q4RjhGRjkwNzUwQ0VFRjBBM0VGNTYKKzoxMDM1REEwMEYwOTA3MjJDRUVGMEEzRUZGMEQzOTREMkVFNjQ4MDk0QzQKKzoxMDM1RUEwMDgyNDAwQTkwNzIyQzc0MDJGMEEzNzREMkYwQzM5MDcyRDMKKzoxMDM1RkEwMDJDRTA2NDgwOTQ4MDUwMDRFNEYwQTNGMDkwNzIyQ0UwRjQKKzoxMDM2MEEwMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjU4M0UwOTA3MjAyNkEKKzoxMDM2MUEwMEYwOTA3MjJBRTBGRjI0RkQ2MDJEMjRGRTYwMjkyNDAzMjUKKzoxMDM2MkEwMDI0RkI1MDA0NjAyMTgwNDA5MDcyMDJFMEZFNzQyMDJGMzcKKzoxMDM2M0EwMEY1ODJFNDM0ODBGNTgzRUVGMDc0MjgyRkY1ODJFNDM0QzEKKzoxMDM2NEEwMDgwRjU4M0VFRjA4MDIxOTA3MjAyRTBGRjkwNzIyQUUwMEEKKzoxMDM2NUEwMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZGMDc0MzgyRUY1RDkKKzoxMDM2NkEwMDgyRTQzNDgwRjU4M0VGRjA5MDc2NDBFMDcwMDY5MDcyNDEKKzoxMDM2N0EwMDM5NzQwQUYwOTA3MjM5RTAwNEYwRTBDMzk0MEE1MDAyRjcKKzowODM2OEEwMEExMTFFNDkwNzY0MEYwMjI0QQorOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgorOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKKzoxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKKzoxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKKzowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKKzoxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKKzoxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKKzoxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKKzowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCis6MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Cis6MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Cis6MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCis6MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKKzoxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKKzoxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKKzoxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKKzoxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKKzowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCis6MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCis6MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgorOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAorOjAxMzdCQjAwMjJFQgorOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKKzoxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKKzoxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKKzoxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKKzowMTM3RjgwMDIyQUUKKzoxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKKzoxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKKzowNjM4MTkwMEVGQTNBM0EzODBERjcyCis6MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECis6MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Cis6MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCis6MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Cis6MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Cis6MDUzODZGMDAwRkQ1RjBFQTIyNzQKKzoxMDM4NzQwMEU0OTA3NjI5RjA5MDc2MjlFMEZGNzVGMDBGQTQyNDQyQjUKKzoxMDM4ODQwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQTcKKzoxMDM4OTQwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjlFMDA0RjA4MEQ1QkEKKzoxMDM4QTQwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGMDYKKzoxMDM4QjQwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MkFGMDI0NUIKKzoxMDM4QzQwMEJGNzAwMjQxNDEyNEUwNzAwMjQxMTIyNDIxNjAwMjQxOTAKKzoxMDM4RDQwMDNBOTA3RkU5RTAyNEZFNjA3RDE0NzAwMjIxQjIyNDAyNTQKKzoxMDM4RTQwMDYwMDI0MTBBMTIxNzUxOTA3NjQyRTBGQ0EzRTBGREEzNjYKKzoxMDM4RjQwMEUwRkVBM0UwRkY5MDc2MjlFMDc1RjAwRkE0MjQ0M0Y1RTEKKzoxMDM5MDQwMDgyRTQzNDc1RjU4MzEyMzdCQzkwNzYxOUUwRkZCNDAxNzQKKzoxMDM5MTQwMDEyOTA3NjdDNzQ2N0YwOTA3NjdENzQwNkYwOTA3NjdFRDMKKzoxMDM5MjQwMDc0MEJGMEVGQjQwMjBGRTQ5MDc2N0NGMDkwNzY3REYwQTcKKzoxMDM5MzQwMDkwNzY3RTc0MENGMEVGQjQwMzBGRTQ5MDc2N0NGMDkwRjQKKzoxMDM5NDQwMDc2N0RGMDkwNzY3RTc0MThGMDkwNzYxQTc0MDFGMDEyRjkKKzoxMDM5NTQwMDNFOEYxMjE4MDAyMjkwN0VDMkUwRkZFNEZDRkRGRUZCQzUKKzoxMDM5NjQwMEZBNzkwMUY4MTIzNzQ2QzhFQ0M4QzlFREM5Q0FFRUNBREIKKzoxMDM5NzQwMENCRUZDQjkwN0VDMUUwRkVFNEZDRkQyQkZCRUEzRUZBRUMKKzoxMDM5ODQwMEVEMzlGOUVDMzhGODkwN0VDMEUwRkZFNEZFRUIyRkZGNTAKKzoxMDM5OTQwMEVFM0FGRUVEMzlGREVDMzhGQzkwNzYyOUUwNzVGMDBGMzcKKzoxMDM5QTQwMEE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0JDMjI5MDdFNTMKKzoxMDM5QjQwMEMyRTBGRkU0RkNGREZFRkJGQTc5MDFGODEyMzc0NkM4QzkKKzoxMDM5QzQwMEVDQzhDOUVEQzlDQUVFQ0FDQkVGQ0I5MDdFQzFFMEZFMEMKKzoxMDM5RDQwMEU0RkNGRDJCRkJFQTNFRkFFRDM5RjlFQzM4Rjg5MDdFNzUKKzoxMDM5RTQwMEMwRTBGRkU0RkVFQjJGRkZFRTNBRkVFRDM5RkRFQzM4Q0MKKzoxMDM5RjQwMEZDOTA3NjI5RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1MkQKKzoxMDNBMDQwMEY1ODMxMjM3QkMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMEEKKzoxMDNBMTQwMEU5RTAxNDcwMTk5MDdFQzBFMEZGOTA3NjI5RTA3NUYwMUIKKzoxMDNBMjQwMDBGQTQyNDRGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRTAKKzowRTNBMzQwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5RgorOjEwM0E0MjAwRTQ5MDc2MzVGMDkwNzYzNUUwRkZDMzk0MDM0MDAyNDE2RQorOjEwM0E1MjAwRkZFRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNTgzRUYyQQorOjEwM0E2MjAwRjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTQzMworOjEwM0E3MjAwRjBFRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNzQ5MgorOjEwM0E4MjAwRjBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODMwNQorOjEwM0E5MjAwNzRGRkYwRUY3NUYwMEFBNDI0QUVGNTgyRTQzNDc1RjVGNAorOjEwM0FBMjAwODNFNEYwRUY3NUYwMEFBNDI0QUZGNTgyRTQzNDc1RjVFRgorOjEwM0FCMjAwODM3NDgwRjBFRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVDMworOjEwM0FDMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVDRAorOjEwM0FEMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVCQworOjEwM0FFMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVBQgorOjEwM0FGMjAwRjU4Mzc0MDFGMDkwNzYzNUUwMDRGMDQxNDc5MDc2M0MwRQorOjEwM0IwMjAwNzQwQUYwRTRBM0YwOTA3NjM1NzQwM0YwOTA3NjNDRTAwQQorOjEwM0IxMjAwRkY5MDc2MzVFMEZFQzM5RjQwMDI2MUQyOTA3NjNERTA5MQorOjEwM0IyMjAwRkYwNEYwRUU3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjVEOAorOjEwM0IzMjAwODNFRkYwRUU3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU1OAorOjEwM0I0MjAwODNFNEYwRUU3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU1MgorOjEwM0I1MjAwODM3NDVFRjBFRTc1RjAwQUE0MjRBREY1ODJFNDM0NzU0OAorOjEwM0I2MjAwRjU4Mzc0QkFGMEVFNzVGMDBBQTQyNEFFRjU4MkU0MzQ1QgorOjEwM0I3MjAwNzVGNTgzNzQwNUYwRUU3NUYwMEFBNDI0QUZGNTgyRTRCRQorOjEwM0I4MjAwMzQ3NUY1ODM3NDgwRjBFRTc1RjAwQUE0MjRCMEY1ODJFMgorOjEwM0I5MjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMUY1ODJGRAorOjEwM0JBMjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMkY1ODJFQworOjEwM0JCMjAwRTQzNDc1RjU4Mzc0MTVGMEVFNzVGMDBBQTQyNEIzRjVCOAorOjEwM0JDMjAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNUUwMDRGMDYxMEUxQQorOjAxM0JEMjAwMjJEMAorOjEwM0JEMzAwRTQ5MDc2MzZGMEUwRkI3NUYwMEZBNDI0NDFGNTgyRTQxRgorOjEwM0JFMzAwMzQ3NUY1ODM3NDQwRjBFQjc1RjAwRkE0MjQ0MkY1ODIyRAorOjEwM0JGMzAwRTQzNDc1RjU4Mzc0MEFGMEVCNzVGMDBGQTQyNDQzRjVGMAorOjEwM0MwMzAwODJFNDM0NzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjBEOQorOjEwM0MxMzAwMEZBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDBGNgorOjEwM0MyMzAwQUM0NEVCNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNCMworOjEwM0MzMzAwMTIzN0M4MDAwMTc3MDA5MDc2MzZFMDA0RjBFMEZCNzU5OAorOjEwM0M0MzAwRjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MEYwRUI1RQorOjEwM0M1MzAwNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDhDRjA3NworOjEwM0M2MzAwRUI3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4MzEyMzcyMgorOjEwM0M3MzAwQzgwMDAwQUM0NEVCNzVGMDBGQTQyNDQ3RjU4MkU0MzQ4QworOjEwM0M4MzAwNzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjAwRkE0MjQxQworOjEwM0M5MzAwNEJGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDE3NzAwOTA0MQorOjEwM0NBMzAwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTREQQorOjEwM0NCMzAwMzQ3NUY1ODM3NDQwRjBFRjc1RjAwRkE0MjQ0MkY1ODI1OAorOjEwM0NDMzAwRTQzNDc1RjU4Mzc0OEZGMDkwNzYzNkUwMDRGMEUwRkYwQQorOjEwM0NEMzAwNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQxRjA0MworOjEwM0NFMzAwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0ODRGMAorOjEwM0NGMzAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU3MAorOjEwM0QwMzAwODJFNDM0NzVGNTgzNzQ2MUYwRUY3NUYwMEZBNDI0NDJGNworOjEwM0QxMzAwRjU4MkU0MzQ3NUY1ODM3NDgxRjA5MDc2MzZFMDA0RjAyRgorOjEwM0QyMzAwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0NAorOjEwM0QzMzAwNjFGMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM0NgorOjA0M0Q0MzAwNzQwMUYwMjJGNQorOjEwM0Q0NzAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTBGNgorOjEwM0Q1NzAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZCMQorOjEwM0Q2NzAwQzBFMDkwN0ZBMkUwOTA3NjdGRjA5MDdGNzRFMDkwNzYzRAorOjEwM0Q3NzAwODdGMDkwN0Y3NUUwOTA3Njg4RjA5MDdGOThFMDQ0MDIxNgorOjEwM0Q4NzAwRjA5MDc2OTZFMEZGMjBFMTBDNDQwMkYwOTA4MDAzRjA3QgorOjEwM0Q5NzAwRDIzMjEyNEFDNDkwNzY3RkUwMjBFMjUwOTA3Njg3RTBENAorOjEwM0RBNzAwRkVBM0UwN0MwMDI0MDBGNTM0RUMzRUY1MzM5MDc2OThEMgorOjEwM0RCNzAwRTBGREFFMzNBRjM0MTIzNkQ4OTA3Njg3RUZGMEQyMkZDRQorOjEwM0RDNzAwMzAzMTI5MjAzRjI2QzIzMTkwN0Y5NEUwNTRDRkYwOTBDNAorOjEwM0RENzAwN0Y5QUUwMzBFNDA0RDIyREMyMkM5MDdGOUFFMDIwRTU1MAorOjEwM0RFNzAwMDRDMjJERDIyQzkwN0Y5NEUwNDQzMEYwMTI0QTUwMTIzNgorOjEwM0RGNzAwMUIwNDMwMkYxMjEyNDIxNkMyMkY3NUU4MDExMjE2OEFDMQorOjEwM0UwNzAwNzVFODBERDIyQjgwMDU3NUU4MDFDMjJCMjAyQjM0OTA2NQorOjEwM0UxNzAwNzYxOUUwRkZCNDAxMEU5MDc2N0M3NDY3RjBBMzc0MDYwMAorOjEwM0UyNzAwRjBBMzc0MEJGMEVGQjQwMjBCOTA3NjdDRTRGMEEzRjBGMAorOjEwM0UzNzAwQTM3NDBDRjBFRkI0MDMwQjkwNzY3Q0U0RjBBM0YwQTMyQgorOjEwM0U0NzAwNzQxOEYwNzVDQUQzNzVDQkZFRDJDQTMwMzQwNEMyMzRBNQorOjEwM0U1NzAwODAwMkQyMzQ1MzkxRUY5MDdGQUI3NDAyRjBGMDkwN0ZFMQorOjEwM0U2NzAwOThFMDU0RkRGMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBEOAorOjEwM0U3NzAwRkNEMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDAyOQorOjA4M0U4NzAwODJEMDgzRDBGMEQwRTAzMkJDCis6MTAzRThGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNDQyNDAyNjAwMkU3Cis6MTAzRTlGMDBFMUQ0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUU3Cis6MTAzRUFGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjNCCis6MTAzRUJGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzYyCis6MTAzRUNGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMEVFCis6MTAzRURGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDRFCis6MTAzRUVGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDJCCis6MTAzRUZGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDRBCis6MTAzRjBGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTg3Cis6MTAzRjFGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDlBCis6MTAzRjJGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkY3Cis6MTAzRjNGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjlDCis6MTAzRjRGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjYyCis6MTAzRjVGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkI2Cis6MTAzRjZGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzk1Cis6MTAzRjdGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDRBCis6MTAzRjhGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNECis6MTAzRjlGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRkFGCis6MTAzRkFGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYxCis6MTAzRkJGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MEVCCis6MDYzRkNGMDA3NjhFNzQwMkYwMjI2MAorOjEwM0ZENTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAxNQorOjEwM0ZFNTAwOTA3RkM3RTBGNTExNzUwRjAwNzUwRDAwRDIzM0QwODJCMworOjA1M0ZGNTAwRDA4M0QwRTAzMjkyCis6MDYzRkZBMDAxMjRBQzRDMjMxMjI4QworOjEwNDAwMDAwRTUxMUQzOTQwMDUwMDIyMTA2OTA3Njg5RTBDMzk0MDgwQworOjEwNDAxMDAwNDAwMjIxMDY3NDQwMjUwRkY1ODJFNDM0N0VGNTgzRTBFQQorOjEwNDAyMDAwRjUxN0U1MEQ2MDBFOTA4MDA1RTUxN0YwOTA3Njg5RTBCNAorOjEwNDAzMDAwMDRGMDAxREFFNTE3MTIzN0Y5NDBDMTAyNDA2NzA1NDA4NAorOjEwNDA0MDAwN0EwNjQwOTgwNzQwQzEwQzQwQzEwRDQwQzcwRjQwQ0JENQorOjEwNDA1MDAwRjY0MENCRjg0MENCRkE0MENCRkI0MENCRkM0MENCRkU0QworOjEwNDA2MDAwNDBDQkZGMDAwMDQwREE5MDdFNDFFMDkwODAwNUYwOTA2OAorOjEwNDA3MDAwNzY4OUUwMDRGMDc1MTEwMTgwNjA5MDdFNDFFMDkwODBDNworOjEwNDA4MDAwMDVGMDkwN0U0MkUwOTA4MDA1RjA5MDc2ODlFMDA0RjBBMworOjEwNDA5MDAwRTAwNEYwNzUxMTAxODA0MjkwN0U0MUUwOTA4MDA1RjBDRgorOjEwNDBBMDAwOTA3RTQyRTA5MDgwMDVGMDkwN0U0M0UwOTA4MDA1RjBBNQorOjEwNDBCMDAwOTA3Njg5RTAwNEYwRTAwNEYwRTAwNEYwNzUxMTAxODBFRQorOjEwNDBDMDAwMTlEMjNCRDIzQzgwMTNEMjNCODAwRjkwODAwNUU1MTc3QworOjEwNDBEMDAwRjA5MDc2ODlFMDA0RjA3NTExMDEyMDNCMDQwNTBEODAxNQorOjEwNDBFMDAwMUYzMDNDMUM5MDdFNDFFMDkwODAwNUYwOTA3RTQyRTBDNQorOjEwNDBGMDAwOTA4MDA1RjA5MDc2ODlFMDA0RjBFMDA0RjA3NTExMDFGRAorOjEwNDEwMDAwMDUwRjE1MTEwMTAwRTUxMTcwMTBDMjMzRjUwREY1MEYwMworOjBCNDExMDAwOTA3RkM3NzQwNEYwQzIzQkMyM0MyMjQ5Cis6MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCis6MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCis6MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCis6MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCis6MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Cis6MTA0MTZCMDA5QTkwN0Y5QkUwMjBFNDAyQzIzRjkwN0Y5QkUwMzBFNDdCCis6MTA0MTdCMDAwMkQyM0Y5MDdGOUJFMDIwRTUwMkMyM0U5MDdGOUJFMDA2Cis6MTA0MThCMDAzMEU1MDJEMjNFQTI0MTMwM0YwMUIzNTAxRkEyM0Y5MjE1Cis6MTA0MTlCMDA0MTMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5Nzc4Cis6MTA0MUFCMDBFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjAzMDNGMzQ5MDNECis6MTA0MUJCMDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjU5Cis6MTA0MUNCMDBGMEEzNzQwQkYwRUZCNDAyMEJFNDkwNzY3Q0YwQTNGMDQ5Cis6MTA0MURCMDBBMzc0MENGMEVGQjQwMzBCRTQ5MDc2N0NGMEEzRjBBMzg0Cis6MTA0MUVCMDA3NDE4RjBBMjQwMzAzRTAxQjM1MDFGQTIzRTkyNDAzMEYzCis6MTA0MUZCMDAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDY0Cis6MEI0MjBCMDBGQkYwOTA3Njk1RTA5MDgwMDFGMDIyMUYKKzoxMDQyMTYwMDkwNzYxOUUwNjQwMTcwMzU5MDc2ODdFMEZGRDM5NDJEOEYKKzoxMDQyMjYwMDQwMkI5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzMUEKKzoxMDQyMzYwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzYxOTc0NDYKKzoxMDQyNDYwMDAzRjA4MDA2OTA3NjE5NzQwMkYwMTIzRThGOTA3NjE5NkMKKzoxMDQyNTYwMEUwQjQwMjJDOTA3Njg3RTBGRkMzOTQyRjUwMjJFRkQzNzAKKzoxMDQyNjYwMDk0MkE0MDFDOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwREUKKzoxMDQyNzYwMEUwRDM5NDBGNDAwQUU0RjA5MDc2MTkwNEYwMTIzRThGRDIKKzoxMDQyODYwMDkwNzYxOUUwQjQwMjI2OTA3Njg3RTBEMzk0MzE0MDFERUIKKzoxMDQyOTYwMDkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNzIKKzoxMDQyQTYwMDQwMEJFNEYwOTA3NjE5NzQwM0YwMTIzRThGOTA3NjE5NjUKKzoxMDQyQjYwMEUwNjQwMzcwM0Y5MDc2ODdFMEZGQzM5NDVGNTAzNTkwQ0IKKzoxMDQyQzYwMDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjQwOTIKKzoxMDQyRDYwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQkEKKzoxMDQyRTYwMDc2MTk3NDAxRjBFRkQzOTQyRjQwMDY5MDc2MTk3NDAyNzQKKzoxMDQyRjYwMEYwMTIzRThGOTA3Njg2RTA3MDA1OTA3Njg1RjAyMkU0ODcKKzowNTQzMDYwMDkwNzY4NkYwMjIxNAorOjEwNDMwQjAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCQworOjEwNDMxQjAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4OQorOjEwNDMyQjAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5QQorOjEwNDMzQjAwQ0E3Rjc1Q0JGODQzQTgyMDEyMDc0QUMyMkNDMjJEQzJFNAorOjEwNDM0QjAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGOQorOjEwNDM1QjAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUzNAorOjEwNDM2QjAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDk1ODEyMEZGRQorOjEwNDM3QjAwQzYxMjRBOEQ5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDIxMgorOjEwNDM4QjAwMzAyMDMwMTgxMjQ3QjQxMjMwMDAxMjQwMDAxMjQyMTY3RgorOjEwNDM5QjAwMTI0QTUwMTIxQjA0MTIxNjYxMTI0MjE2QzIyRkMyMzE1RQorOjEwNDNBQjAwQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTRGNTExOTBFQgorOjEwNDNCQjAwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzY0MEYwOTBEMQorOjEwNDNDQjAwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY5OUYwMjJBMAorOjEwNDNEQjAwMTI0REEzNDAwMjgxQTA5MDdGRUJFMDI0RkU2MDFFMTRERgorOjEwNDNFQjAwNjA0NjE0NjA2RTE0NzAwMjgxOTEyNDA0NjAwMjgxOTlGRQorOjEwNDNGQjAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUEwMworOjEwNDQwQjAwRTBGRjEyNDlGRjhCMjA4QTIxODkyMkVBNDk2MDExQ0VGNQorOjEwNDQxQjAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBQworOjEwNDQyQjAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4QjBBNQorOjEwNDQzQjAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0Y0OQorOjEwNDQ0QjAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQ0QQorOjEwNDQ1QjAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzRAorOjEwNDQ2QjAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U1OQorOjEwNDQ3QjAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZGNQorOjEwNDQ4QjAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyRAorOjA1NDQ5QjAwQjRFMDQ0MDFGMDUzCis6MDE0NEEwMDAyMkY5Cis6MTA0NEExMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMEE0Cis6MTA0NEIxMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDc3Cis6MTA0NEMxMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUNFCis6MTA0NEQxMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOTAwCis6MTA0NEUxMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjMwCis6MTA0NEYxMDAyNjEyNEFDNDEyMkRBOTEyM0JEMzEyNDU1OTEyM0E0MjJGCis6MTA0NTAxMDA5MDc2Njg3NDAxRjA3MDBGMTI0QkJCMTIwN0ZFMTI0RENBCis6MTA0NTExMDBBMTEyMUI0MDEyMTQ5NjEyNDMwQjkwN0ZBRkUwNDQwMThECis6MTA0NTIxMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjdECis6MTA0NTMxMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjY5Cis6MTA0NTQxMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODQ1Cis6MDg0NTUxMDAyMDUzQThBMDQzQTg4MDIyMUEKKzoxMDQ1NTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0QTYKKzoxMDQ1NjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0QTAKKzoxMDQ1NzkwMDM0NzVGNTgzNzQwMUYwOTA3NjM2RTAwNEYwRTBGRjc1NDgKKzoxMDQ1ODkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1ODEKKzoxMDQ1OTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDJGMDkwQjIKKzoxMDQ1QTkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0RTYKKzoxMDQ1QjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0NTAKKzoxMDQ1QzkwMDM0NzVGNTgzNzQwM0YwOTA3NjM2RTAwNEYwRTBGRjc1RjYKKzoxMDQ1RDkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1MzEKKzoxMDQ1RTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyQ0UKKzowQzQ1RjkwMDc4N0ZFNEY2RDhGRDc1ODEzODAyNDY0MDVBCis6MTA0NjA1MDAwMjQ3NUFFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjJBCis6MTA0NjE1MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0I2Cis6MTA0NjI1MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjg1Cis6MTA0NjM1MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQzhGRTQ3RTdBCis6MTA0NjQ1MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzdBCis6MTA0NjU1MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzQxCis6MTA0NjY1MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTZDCis6MTA0Njc1MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTI0Cis6MTA0Njg1MDA5MDdGRUNFMDkwNzY4M0YwRTAxNDYwMUQxNDYwMkExNEFFCis6MTA0Njk1MDA2MDM3MTQ2MDQ0MjQwNDcwNTA5MDc2OTFFMDkwN0YwMDU4Cis6MTA0NkE1MDBGMDkwN0ZCNTc0MDFGMDgwNDc5MDc2OTJFMDkwN0YwMDlFCis6MTA0NkI1MDBGMDkwN0ZCNTc0MDFGMDgwMzc5MDc2OTBFMDkwN0YwMEEwCis6MTA0NkM1MDBGMDkwN0ZCNTc0MDFGMDgwMjc5MDc2ODRFMDkwN0YwMEFDCis6MTA0NkQ1MDBGMDkwN0ZCNTc0MDFGMDgwMTc5MDc2OTNFMDkwN0YwMDlECis6MTA0NkU1MDBGMDkwN0ZCNTc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDRECis6MDI0NkY1MDBEMzIyQ0UKKzoxMDQ2RjcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwM0QKKzoxMDQ3MDcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGRjcKKzoxMDQ3MTcwMEMwRTBDMkNBQzJDRjkwN0Y5OEUwNDQwMUYwMzAyRTAzQjgKKzoxMDQ3MjcwMDEyMTRBNjkwN0Y5OEUwNTRGRUYwNTNBOEZBMTIxNjYxNkYKKzoxMDQ3MzcwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwNDEKKzoxMDQ3NDcwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMzIKKzowMzQ3NTcwMEQwRTAzMjdECis6MTA0NzVBMDBFNDkwNzY2NkYwMTI0NEExMjAyNjEzOTA3NjY2RTBDM0IwCis6MTA0NzZBMDA5NDAyNTAwQUUwMDRGMEQyNDIxMjRBRjY4MEVBMzAyNjU1Cis6MTA0NzdBMDAwNTEyMjgwMUMyMjYzMDI1MkI5MDc2OTZFMDU0RkNGMENCCis6MTA0NzhBMDA5MDgwMDNGMDEyMTQ5NjkwNzY5NkUwNDQwM0YwOTA4MDlECis6MTA0NzlBMDAwM0YwRTQ5MDc2NjdGMDkwNzY2N0UwMDRGMEUwQjQ0QkJCCis6MEE0N0FBMDBGNjEyM0ZGQTEyNDExQjgwQzUyMkVGCis6MTA0N0I0MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEQ1Cis6MTA0N0M0MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNTRGQkYwNTRGNzczCis6MTA0N0Q0MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkRBCis6MTA0N0U0MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDgxCis6MEI0N0Y0MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOEQKKzoxMDQ4MDAwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxNzE0NjAyMTE0NDAKKzoxMDQ4MTAwMDYwMkIxNDYwMzIyNDA0NzAzODkwN0ZFQUUwOTA3NjkxMjcKKzoxMDQ4MjAwMEYwODAzNTkwN0ZFQUUwOTA3NjkyRjAxMjNFOEY4MDI4RkIKKzoxMDQ4MzAwMDkwN0ZFQUUwOTA3NjkwRjAxMjE4MDA4MDFCOTA3RkVBNUIKKzoxMDQ4NDAwMEUwOTA3Njg0RjA4MDExOTA3RkVBRTA5MDc2OTNGMDgwOUIKKzowQTQ4NTAwMDA3OTA3RkI0RTA0NDAxRjBEMzIyOEEKKzoxMDQ4NUEwMEU0OTA3NjI2RjA5MDc2MjZFMEZGNzVGMDAzQTQyNDM0REYKKzoxMDQ4NkEwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQjEKKzoxMDQ4N0EwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjZFMDA0RjA4MEQ1QzkKKzoxMDQ4OEEwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzMUUKKzoxMDQ4OUEwMEE0MjQzMkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwMjkKKzowNjQ4QUEwMDdGQjU3NDAxRjAyMjRECis6MDI0OEIwMDA4RjJFNDkKKzoxMDQ4QjIwMEU0RjUyRjc1MzBGRjc1MzEwNjc1MzJCRUFCMzBBQTMxODMKKzoxMDQ4QzIwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQjAKKzoxMDQ4RDIwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNTAKKzoxMDQ4RTIwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjgKKzowMTQ4RjIwMDIyQTMKKzowQzQ4RjMwMEMyMzdFNEY1MEVGNTEwQzIzNkY1MTQyMkIxCis6MTA0OTAwMDAwMjJGRTcwMDAyM0Q0NzAwMDI0RDQ2MDAwMjRCRDUwMDUyCis6MTA0OTEwMDAwMjRCNjAwMDAyMkZGRjAwMDI0QkVEMDAwMjRCODEwMEIyCis6MTA0OTIwMDAwMjRDMDQwMDAyM0ZENTAwMDI0QzFCMDAwMjRDMzIwMDM2Cis6MTA0OTMwMDAwMjRDNDkwMDAyNEM2MDAwMDI0Qzc3MDAwMjRDOEUwMDkxCis6MTA0OTQwMDAwMjRDQTUwMDAyNENCQzAwMDI0Q0QzMDAwMjRDRUEwMDExCis6MDg0OTUwMDAwMjREMDEwMDAyNEQxODAwQTgKKzoxMDQ5NTgwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzNEMKKzoxMDQ5NjgwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwMDUKKzoxMDQ5NzgwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzODIKKzoxMDQ5ODgwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwMjUKKzoxMDQ5OTgwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwMDAKKzowNTQ5QTgwMEEzRjBBM0YwMjJDMgorOjEwNDlBRDAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQ4RAorOjEwNDlCRDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1RAorOjEwNDlDRDAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDU3NgorOjEwNDlERDAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTA3MworOjEwNDlFRDAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUUwMQorOjAyNDlGRDAwRjAyMkE2Cis6MTA0OUZGMDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOUJFCis6MTA0QTBGMDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDZDCis6MTA0QTFGMDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2Mjk5Cis6MTA0QTJGMDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFRDRBCis6MTA0QTNGMDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMEEzCis6MDE0QTRGMDAyMjQ0Cis6MTA0QTUwMDAzMDJEMzlDMjJEOTA3NjE5RTBGRkI0MDEwREU0OTA3NjI3Cis6MTA0QTYwMDA3Q0YwQTM3NEY4RjBBMzc0MEFGMEVGQjQwMjBERTQ5MEE0Cis6MTA0QTcwMDA3NjdDRjBBMzc0RjBGMEEzNzQwQkYwRUZCNDAzMERFNEI0Cis6MEQ0QTgwMDA5MDc2N0NGMEEzNzRGOEYwQTM3NDE3RjAyMjc4Cis6MTA0QThEMDBFNEZGNzQ1NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyODQ2Cis6MTA0QTlEMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NUUyRkY1ODJFNDE5Cis6MTA0QUFEMDAzNDc2RjU4M0UwRkU3NDM4MkZGNTgyRTQzNDgwRjU4Mzk3Cis6MDY0QUJEMDBFRUYwMEZCRjA4Q0M3MworOjAxNEFDMzAwMjJEMAorOjEwNEFDNDAwRTQ5MDcyMzZGMEEzRjA5MDdGOTdFMDU0RkJGMEU0OTAwQQorOjEwNEFENDAwNzIzM0YwOTA3MjMyRjA5MDcyMDEwNEYwRTQ5MDcyMzMwOQorOjEwNEFFNDAwRjA5MDcyMzJGMDkwNzIwMTA0RjA5MDdGOTdFMDQ0MDRFOQorOjAyNEFGNDAwRjAyMkFFCis6MTA0QUY2MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzA0MjA0RTA0NEY2Cis6MTA0QjA2MDAwMkYwN0ZEQzdFMDUxMjREMkY5MDdGRDZFMDU0RjdGMDQxCis6MDU0QjE2MDBFMDQ0MDRGMDIyNjAKKzoxMDRCMUIwMDkwN0ZFQkUwMTQ3MDE0OTA3RkU5RTAyNDdGNzAwNDEyMTcKKzoxMDRCMkIwMDQ4NUEyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0RDUKKzowMzRCM0IwMDAxRjAyMjY0Cis6MTA0QjNFMDA5MDdGRUJFMDE0NzAxMzkwN0ZFOUUwMTQ3MDA0MTI0OTNCCis6MTA0QjRFMDBBRDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUE2Cis6MDI0QjVFMDBGMDIyNDMKKzoxMDRCNjAwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMDkwOEYKKzoxMDRCNzAwMDc2OTZFMDU0RkRGMDkwODAwM0YwRDA4MkQwODNEMEUwQjAKKzowMTRCODAwMDMyMDIKKzoxMDRCODEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMUYwNUUKKzowRjRCOTEwMEMyMjk5MDc2OEQ3NDAxRjBEMDgyRDA4M0QwRTAzMkFCCis6MTA0QkEwMDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5MkIxCis6MEI0QkIwMDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyMDYKKzoxMDRCQkIwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyQzQKKzowQTRCQ0IwMDREMkY5MDdGRDZFMDU0RkVGMDIyM0IKKzoxMDRCRDUwMEMwRTBDMDgzQzA4MkQyMjU1MzkxRUY5MDdGQUI3NDA4QUIKKzowODRCRTUwMEYwRDA4MkQwODNEMEUwMzI1MQorOjEwNEJFRDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjBGMworOjA3NEJGRDAwRDA4MkQwODNEMEUwMzIyQQorOjEwNEMwNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjBEQQorOjA3NEMxNDAwRDA4MkQwODNEMEUwMzIxMgorOjEwNEMxQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjBDMQorOjA3NEMyQjAwRDA4MkQwODNEMEUwMzJGQgorOjEwNEMzMjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjBBOQorOjA3NEM0MjAwRDA4MkQwODNEMEUwMzJFNAorOjEwNEM0OTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjA4RgorOjA3NEM1OTAwRDA4MkQwODNEMEUwMzJDRAorOjEwNEM2MDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjA3NworOjA3NEM3MDAwRDA4MkQwODNEMEUwMzJCNgorOjEwNEM3NzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjA1OQorOjA3NEM4NzAwRDA4MkQwODNEMEUwMzI5RgorOjEwNEM4RTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjA0MQorOjA3NEM5RTAwRDA4MkQwODNEMEUwMzI4OAorOjEwNENBNTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjAxQgorOjA3NENCNTAwRDA4MkQwODNEMEUwMzI3MQorOjEwNENCQzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjAwMworOjA3NENDQzAwRDA4MkQwODNEMEUwMzI1QQorOjEwNENEMzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjBDRAorOjA3NENFMzAwRDA4MkQwODNEMEUwMzI0MworOjEwNENFQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjBCNQorOjA3NENGQTAwRDA4MkQwODNEMEUwMzIyQworOjEwNEQwMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjA1RQorOjA3NEQxMTAwRDA4MkQwODNEMEUwMzIxNAorOjEwNEQxODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjA0NgorOjA3NEQyODAwRDA4MkQwODNEMEUwMzJGRAorOjEwNEQyRjAwOEUzNThGMzZFNTM2MTUzNkFFMzU3MDAyMTUzNTRFNjAzOQorOjA3NEQzRjAwMDUxMjE0ODU4MEVFMjIyRAorOjEwNEQ0NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDA3MworOjA2NEQ1NjAwODJEMDgzRDBFMDMyQTAKKzoxMDRENUMwMDkwNzY4MkUwOTA3RjAwRjA5MDdGQjU3NDAxRjBEMzIyQzIKKzowOTRENkMwMEMyMjU1M0Q4RUY0M0Q4MjAzMkQwCis6MDc0RDc1MDA1Mzk4RkU1Mzk4RkQzMjM0Cis6MDc0RDdDMDA1M0MwRkU1M0MwRkQzMkRECis6MDY0RDgzMDA1MzkxQkZEMjJEMzI1NgorOjA2NEQ4OTAwNTM5MTdGRDIyQzMyOTEKKzowNDREOEYwMDUzOTFERjMyMkIKKzowNDREOTMwMDUzRDhGNzMyQzgKKzowNDREOTcwMDEyMTczMDIyOUQKKzowMzREOUIwMEMyOEQzMjk0Cis6MDM0RDlFMDBDMjhGMzI4RgorOjAyNERBMTAwRDMyMjFCCis6MDI0REEzMDBEMzIyMTkKKzowMjREQTUwMEQzMjIxNworOjAyNERBNzAwRDMyMjE1Cis6MDI0REE5MDBEMzIyMTMKKzowMjREQUIwMEMzMjIyMQorOjAwMDAwMDAxRkYKKy8qCitTb3VyY2U6IEVNSTYyU0ZXLkhFWAorVkVSU0lPTj0xLjA0LjA2MgorREFURT0xNi4xMC4yMDAyCisqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3LmloZXggYi9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9rZXJuZWwuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzNjNGMzCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3LmloZXgKQEAgLTAsMCArMSwxMjAgQEAKKzoxMDAwMDAwMDgwNzkzMDAwODA3OUI0MDM4MDc5QjQwMzgwNzlGQjAwNzMKKzoxMDAwMTAwMDgwNzlERDAwODA3OUI0MDM4MDc5MzIwMzgwNzk4NzAyQUEKKzoxMDAwMjAwMDgwNzlCNDAzODA3OUI0MDM4MDc5QjQwMzgwNzlCNDAzMTAKKzoxMDAwMzAwMDgwNzkxQTAzODA3OUI0MDM4MDc5MkYwMjgwNzlCNDAzMjAKKzoxMDAwNDAwMDgwNzlCNDAzODA3OUI0MDM4MDc5QjQwMzgwNzlCNDAzRjAKKzoxMDAwNTAwMDgwNzk2MzAwODA3OTZCMDA4MDc5QjQwMzgwNzlCNDAzODAKKzoxMDAwNjAwMDgwQkY3QzJDMDY4ODA0ODg0MEJFMjBCQzA5QUUwMDEwRUUKKzoxMDAwNzAwMDBBQUUwMTAwMzg2OTA4RUI1MzAwNUE2OTA4RUJENjAwNTQKKzoxMDAwODAwMDA5MDA4ODhCODA2OTg4RTMzNjAwMzBCRTIwQkMwOTY5OEUKKzoxMDAwOTAwMDAxQjgwOTkwNDFCRTQxQkUyODY5ODhFQjc4MDA0MUJFOTUKKzoxMDAwQTAwMDQwQkU4MDc5MzgwMDQxQkU0MUJFM0E5MDM4NjkwOEUzQ0QKKzoxMDAwQjAwMDU2MDAzQTkwNDFCRTQwQkUwMEVGM0E5MDM5NjkwOEUzREQKKzoxMDAwQzAwMDVFMDAzQTkwMDBFRjBCNjkwQzY2OENFRjBBNjkwQzY2RDMKKzoxMDAwRDAwMDBCNjIwOTY2MDBFRjEwNjkwRjY2MDRFRjg4RTM3NTAwOTQKKzoxMDAwRTAwMDBFNjkwRjY2MTA2MjBENjYwMEVGMEU2OTBENjYwMEVGNzcKKzoxMDAwRjAwMDcwQUUwMTAwMjBCQzI3QUUwMTAwMzk2OTA4RUI1RDAwM0QKKzoxMDAxMDAwMDI2NjkwMUI4MjY5MDI2MDA4ODhCODA2OTg4RTNDQjAwOTkKKzoxMDAxMTAwMDI4OTAyODBEMTE0MjAwRTE3QTAwMTE0NzAwRTFBMDAwNkIKKzoxMDAxMjAwMDgwN0E2MzAwMTFCODBBNjYwOTYyMDRFMzdBMDAwQjBDNTYKKzoxMDAxMzAwMDA1NDAwQTEwMDFCQTEyOTAxMjBDMDI0MDgwNzlBRjAwRkIKKzoxMDAxNDAwMDgwN0E2QjAwMDJCRTBFNjIwRDY2MTBCQTQ0RTM3QTAwM0MKKzoxMDAxNTAwMDEwMEMwNTQwMEUxMDAxQkExMjkwMTIwQzAyNDAwMzEwNTAKKzoxMDAxNjAwMDAyQkExMjkwMTIwQzAwNDAwMzEwODhFM0JBMDAwNDEwODcKKzoxMDAxNzAwMDgwNzlCQzAwMDQxMDAxQkExMjkwMTIwQzAxNDAwNTBDRTkKKzoxMDAxODAwMDAzNDAwNjBDMDQ0MDExMTBCMEJGRkYwMTEyOTAxMjBDODYKKzoxMDAxOTAwMDA2NDAyMEJDMDBFRjI2QUUyODEwNzA2OUQwQkYwMTAwRDkKKzoxMDAxQTAwMDcwOTA4OEUzN0EwMDI4QUUwMDAwMDBFRjcwQUUwMDAzODQKKzoxMDAxQjAwMDcwMEMwQ0IwNUFBRTAwMDAwMEVGODA3QThBMDM3RjY5QTEKKzoxMDAxQzAwMDAxQjg3RjkwNTYwMDg4OEJBMDBDMDhCMDcxQUYwMEIwQ0EKKzoxMDAxRDAwMDcxNEUwMEUyRjMwMDU2QUU1NzEwNTYwMEEwMEMwOEIwNjYKKzoxMDAxRTAwMDU2ODA4MDc5QTEwMzEwMDhBMEJGNTkxMDA0RTNBMTAzMzEKKzoxMDAxRjAwMDU2ODA4MDc5QTEwMzgwN0E4QTAzMDFCRjQzQkU1OUJFMkQKKzoxMDAyMDAwMDdDOTAzNzY5ODhFMzBEMDEwMUJBMDhFMzBDMDE3MUFFRjcKKzoxMDAyMTAwMDA0MDA3MTBDMDA1MDM2NjkzNzkwMEFCRjlFMTA4QThCMUIKKzoxMDAyMjAwMDgwQUYxNDgwODA0QzBBQkY2MDA1MDBGNTBBQkYyMDA1MkUKKzoxMDAyMzAwMDAwQjkxN0JCQTA5MDE3Njk4OEUzNDgwMTE3MEQwMEUxQ0EKKzoxMDAyNDAwMDI3MDEwQ0JGNzgwNTBEQkY3QzA1ODA3OTJCMDEwQ0JGMDEKKzoxMDAyNTAwMDM4MDUwREJGM0MwNTAwNjkwOEUzMzUwMThDOEI1OUJFOUMKKzoxMDAyNjAwMDA3QkJBMDkwMjBCQzgwNzk1NzAxMEMwMzhCOEIwM0I5OEUKKzoxMDAyNzAwMDA5ODhDNkJFM0UwMUFDNjlBQjkwQUQ2OUFCOTAxMzA4NkUKKzoxMDAyODAwMDBBNjY0NEUzNDQwMTA5MDMwQzgzMjBCQzgwNzk1NzAxQ0EKKzoxMDAyOTAwMDU1Njk4OEUzNTcwMTM4N0MwQkJGNzgwNTAwRjUwQkJGMjMKKzoxMDAyQTAwMDM4MDUwN0I5MDk4OEM2QkU1NjAxQUIxMEFBOTA3NDY5MTMKKzoxMDAyQjAwMDg4RTM2MzAxNzJBRTQwMDUwMEY1NzJBRTAwMDU2MUFFRTEKKzoxMDAyQzAwMDNCMTA4MDdBRjYwMjc4Njk4OEUzODIwMThDOEIwQ0JGNDAKKzoxMDAyRDAwMDYwMDUwMEU1NDA3QzE0MDgyMEJBMTI4ODNENzM4MDdBREUKKzoxMDAyRTAwMDgwMDMzRTczODA3QTgwMDM4QzhCMENCRjZDMDUwMEU1MjUKKzoxMDAyRjAwMDQwN0MxNDA4MkNCQTEyODgzRjczODA3QTgwMDM0MDczQzQKKzoxMDAzMDAwMDgwN0E4MDAzNzU2OTg4RTM4RTAxNzJBRTQ4MDUwMEY1MzYKKzoxMDAzMTAwMDcyQUUwODA1NjFBRTQxMTA4MDdBRjYwMjc5Njk4OEUzMTEKKzoxMDAzMjAwMEFEMDE4QzhCMENCRjYwMDUwMEU1NDA3QzE0MDgxOEJBNDkKKzoxMDAzMzAwMDEyODg0MzczODA3QTgwMDM0NDczODA3QTgwMDM4QzhCQTUKKzoxMDAzNDAwMDBDQkY2QzA1MDBFNTQwN0MxNDA4MjRCQTEyODg0NTczODQKKzoxMDAzNTAwMDgwN0E4MDAzNDY3MzgwN0E4MDAzNzY2OTg4RTNCOTAxRTYKKzoxMDAzNjAwMDcyQUU1ODA1MDBGNTcyQUUxODA1NjFBRTQ3MTA4MDdBN0UKKzoxMDAzNzAwMEY2MDI3QTY5ODhFM0Q4MDE4QzhCMENCRjYwMDUwMEU1MzIKKzoxMDAzODAwMDQwN0MxNDA4MDhCQTEyODg0OTczODA3QTgwMDM0QTczNDMKKzoxMDAzOTAwMDgwN0E4MDAzOEM4QjBDQkY2QzA1MDBFNTQwN0MxNDA4RDAKKzoxMDAzQTAwMDE0QkExMjg4NEI3MzgwN0E4MDAzNEM3MzgwN0E4MDAzNkUKKzoxMDAzQjAwMDIxQkMxQ0FFOTAxMDhBOEIwQUJGNjAwNTAwRTU0MDdDMTIKKzoxMDAzQzAwMDEyMDgwNEI4MTM4ODhEOEIwREJGNkMwNTAwRTU0MDdDQzYKKzoxMDAzRDAwMDE1MDgwNEI4MTE4ODgwN0E0QTAzOEE4QjBBQkY2MDA1MjEKKzoxMDAzRTAwMDAwRTU0MDdDMUY3MzAzQjkwOTg4QzZCRUY5MDE4QTU0MzEKKzoxMDAzRjAwMDAzQkVBMDk4MjA3MzAzQjkwOTg4QzZCRTAxMDI4QTU0QkYKKzoxMDA0MDAwMDAzQkVBMDk4MjAxRjFGMkYyNjk4MjBCQzM1Njk4OEUzQzMKKzoxMDA0MTAwMEExMDMzMzY5MDFCODMzOTBBMEJGRUUwMjA4RTNBMTAzNDIKKzoxMDA0MjAwMDMzOTAwMEJGNTE2OTg4RTMxRjAyMzQ3MzgwQkU2MDU3NjgKKzoxMDA0MzAwMDAzQkU3RTlGNTlCRTM0OTA3RTY5NTEwRDEzOTAyMEJDM0YKKzoxMDA0NDAwMDVDNjk4OEUzQTEwMzVFNzM4MEJFNjA1NzAzQkU3RTlGMzQKKzoxMDA0NTAwMDU5QkU1RTkwN0U2OTVDMEQxMzkwODA3OUExMDM4MDdBMEQKKzoxMDA0NjAwMDhBMDMwMUJGNDNCRTc3Njk4OEUzNEUwMjYxQUU0RDEwMzcKKzoxMDA0NzAwMDYxMDA4ODhCODA2OTg4RTM0RTAyNzE5MDcxMEQwQjAwREEKKzoxMDA0ODAwMEEwQUYxMDgwQTBBRjEwODAxMDA4MEE2NjA4RTM0OTAyRjAKKzoxMDA0OTAwMDA5MDAxMDA4MEM2Njg4RTM0RTAyMEI4MDIwQkM3QjY5QzMKKzoxMDA0QTAwMDg4RTNBMTAzMEFCRjlFMTA4QThCODBBRjE0ODA4MDRDMjIKKzoxMDA0QjAwMDAwRTE2NjAyN0M2OTkwQkY2MDA1NzI5MDcyMDM3QzY5RkUKKzoxMDA0QzAwMDkwQkY2NDA1NzM5MDczMDQ4MDc5NzAwMjdDNjk5MEJGNUIKKzoxMDA0RDAwMDIwMDU3MjkwNzIwMzdDNjk5MEJGMjQwNTczOTA3MzA0QTkKKzoxMDA0RTAwMDdDNjkwMUI4N0M5MDBBQkZGRDEwOEE4QjgwQUYxMDgwQjgKKzoxMDA0RjAwMDRGNzM4QTU0MDNCRTgwOTgyMUJDMjY3MzhCNTQwM0JFNkQKKzoxMDA1MDAwMDhCNjE4Qzk4MDNCRTgwNjE4MDk4ODA3OUExMDM4MDdBOEEKKzoxMDA1MTAwMDhBMDMyODBEMTE0NzAwRTFCRTAyMTJBRjA2NDAxMjY5OUUKKzoxMDA1MjAwMEIwQkYwMDBDODhFM0I2MDJBMEJGMDAwODg4RTNCMjAyQTcKKzoxMDA1MzAwMDEyNjlCMEJGMDAwQ0EwQkYwMDA0ODhFM0EzMDIwOTY5RTAKKzoxMDA1NDAwMDBCOTA4MDc5QTUwMjBCQUYwNTQwMDE2OTA1OTAwMjY5MDcKKzoxMDA1NTAwMDA2OTAxMTQzMDBFMUVEMDIxMTY5QzBCRjAwMjAxMTkwMjcKKzoxMDA1NjAwMDgwNzlFRDAyMDk2OTBCOTA4MDc5QjgwMjBCQUYwNTQwRTQKKzoxMDA1NzAwMDA1QUYwMzQwMDZBRjA0NDA4MDc5RUQwMjEyQUYwNjQwOUMKKzoxMDA1ODAwMDEyNjlCMEJGMDAwQzg4RTNFNzAyQTBCRjAwMDg4OEUzNEYKKzoxMDA1OTAwMEUzMDIxMjY5QjBCRjAwMENBMEJGMDAwNDg4RTNENDAyREMKKzoxMDA1QTAwMDBENjkxMDkwODA3OUQ2MDIxMEFGMDU0MDAxNjkwNTkwNjEKKzoxMDA1QjAwMDAyNjkwNjkwMTE0MzAwRTFFRDAyMTE2OUMwQkYwMDIwRkQKKzoxMDA1QzAwMDExOTA4MDc5RUQwMjBENjkxMDkwODA3OUU5MDIxMEFGRTkKKzoxMDA1RDAwMDA1NDAwNUFGMDM0MDA2QUYwNDQwMjBCQzcwNjk3MTkwMzAKKzoxMDA1RTAwMDgwN0E3ODAwNzE2OTcwOTA4MDc5QTEwMzIwQkM2MTAzRTIKKzoxMDA1RjAwMDhCOEI4MDY5ODhFRjcyMDI3MjAzMDQ3ODcxOTA3MTBEQTEKKzoxMDA2MDAwMDhBOEIwQjAwMDNCOTA5ODhDNkJFMDkwM0E4NjlBQjkwQTEKKzoxMDA2MTAwMEE4NjlBQTkwMTAwODBBNjY0NEUzMEYwMzA5MDAxMDA4QUQKKzoxMDA2MjAwMDBDNjY4OEUzMTQwMzBCODAyMEJDNjE2OTAxQjg2MTkwRkIKKzoxMDA2MzAwMDgwNzlGNzAyODA3QThBMDMzNTVEMDEwMDM0NjkwMUI4NTgKKzoxMDA2NDAwMDM0OTAwQUJGOUUxMDhBOEI4MEFGMTQ4MDgwNDg3MkFFQUYKKzoxMDA2NTAwMDUwMDUwMEY1NzJBRTEwMDU2MUFFNTExMDgwN0FGNjAyQjkKKzoxMDA2NjAwMDgwNzlBMTAzODA3QThBMDMzNTVEMDIwMDVFNjkwMUI4NTIKKzoxMDA2NzAwMDVFOTAwQUJGOUUxMDhBOEI4MEFGMTQ4MDgwNDc3MkFFNTYKKzoxMDA2ODAwMDU4MDUwMEY1NzJBRTE4MDU2MUFFNUMxMDgwN0FGNjAyNkUKKzoxMDA2OTAwMDgwNzlBMTAzMUMwMDg4OEI4MDY5ODhFRjFEOTAxRDBENTcKKzoxMDA2QTAwMDBGMTAxMDY2OENFMzU4MDMwRTY5MTA2NjBGNjIwRDY2MUEKKzoxMDA2QjAwMDBGQkEwMUUzN0EwMzEwMDQ4QThCMDNCOTA5ODhDNkJFMTYKKzoxMDA2QzAwMDZDMDM4QzZBQUE2MUFCOTg4QzZBQUI2MUFEOTg4QzZBM0EKKzoxMDA2RDAwMEFENjFBOTk4OEM2QUE5NjFBQTk4MDQ3QzhCOEIwNDdDNzMKKzoxMDA2RTAwMDhEOEIwNDdDODk4QjA0N0MxNDA4MEU2NjA4RTM3OTAzRTcKKzoxMDA2RjAwMDBEMDQxMDg0MjFCQzFDNjkwMUI4MUM5MDgwNzk0QTAzNDgKKzoxMDA3MDAwMDAzQjkwOTg4OEE4QkM2QkU4ODAzQUM1NDAzQkU4QzYxQ0EKKzoxMDA3MTAwMEFBOTgwMEVGMjBCQzQ2QkUwOTA4NkI5MDBBMDg2QzkwQUUKKzoxMDA3MjAwMDBCMDg2RDkwMUEwODYyOTAxQjA4NjM5MDFFMDg2NDkwNzUKKzoxMDA3MzAwMDU5QkUxRTg4NjU4MDY2ODE2NzgyNjg4MzY5ODQ2QTg1ODAKKzoxMDA3NDAwMDAwRUYyMEJDNkI2OTA5ODg2QzY5MEE4ODZENjkwQjg4QTkKKzoxMDA3NTAwMDYyNjkxQTg4NjM2OTFCODg2NDY5MUU4ODY1MDA2NjAxN0UKKzowQTA3NjAwMDY3MDI2ODAzNjkwNDZBMDUzQUJFRTcKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3LmloZXggYi9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJjMDAzMQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2Vzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZncuaWhleApAQCAtMCwwICsxLDUxIEBACis6MTAwMDAwMDA4MEJGMUUxMDZFOTA2RTAwODg4QjgwNjk4OEVGNkY5MEE1Cis6MTAwMDEwMDA2RjBEMDA2OTA4RUIxMjA0MjBCQzZFNjkwMUI4NkU5MDg4Cis6MTAwMDIwMDA4MDc5MDMwNDBFQjkwNzg4NDNCRTAxQkY0N0JFNDFCRUI1Cis6MTAwMDMwMDA4MDdBMkEwMDQwQkUyOTMwQ0NFRjQxQkU4MDdBMjgwMDY5Cis6MTAwMDQwMDA0MEJFMjgzMENDRUYwNzY5MDhFMzJBMDQwOTY5MkM5MEU4Cis6MTAwMDUwMDA4MDc5MkMwNDBENjkyQzkwMDkxMDFBODgwQTEwMDFCQUI1Cis6MTAwMDYwMDAxQjg4MEQxMDFDODgwRTEwMDFCQTFEODg4MEJGRUQwMDgyCis6MTAwMDcwMDAxRTg4MEMwNTI0MDEwNEI5Mjc5MDE4NjkwOEUzQjMwNDBECis6MTAwMDgwMDAyRDkwMTM2OUEwQkY5ODc1MDRGNzJEQUVGRjAwOEQ4QkRFCis6MTAwMDkwMDAxOTY5MDhFMzYzMDQxQTY5MDhFMzU2MDQwN0I5MDk4ODczCis6MTAwMEEwMDBDNkJFNTMwNEE5MTBBRDkwODA3OTdDMDQwM0I5MDk4OEI5Cis6MTAwMEIwMDBDNkJFNjAwNDg5MTgyMjZDQUQ5MEE5MTAyMzZFMjI2QzE0Cis6MTAwMEMwMDBBRDkwODA3OTdDMDQxQTEwMDhFMzZGMDQwM0I5MDk4OEE1Cis6MTAwMEQwMDBDNkJFNkMwNEE5MTBBMDkwQUQ5MDgwNzk3QzA0MDFCOUQzCis6MTAwMEUwMDAwOTg4QzZCRTdCMDQ4OTE4MjI2Q0EwOTBBRDkwQTkxMDI3Cis6MTAwMEYwMDAyMzZFMjI2Q0EwOTBBRDkwMkQ2OTA4RTM5QzA0MjQwMTJFCis6MTAwMTAwMDAwM0I3MDJCOTE4ODg4OThCMkMwMjhBMTAwNDdDQTA5MDRFCis6MTAwMTEwMDAyQjY5MUY4ODgwN0U1QjA1MkE2OTA5ODg4OThCQTA5OUQ1Cis6MTAwMTIwMDA4QTEwQTA5MDJCNjkxRjg4ODA3RTVCMDUyQTY5MDk4ODQ4Cis6MTAwMTMwMDA4OThCQUY5OTk5N0I4NDA0MjQwMTBGMDYxQjEwMTMyMDJGCis6MTAwMTQwMDAxQjkwQTBCRkZGN0Y0NEUzQUMwNDFCOTA4OThCODA3QTk3Cis6MTAwMTUwMDAxQTA1Mjc2OTAxQkEyNzkwODA3QTIzMDUyNzY5MDhFM0UxCis6MTAwMTYwMDA5RTA0ODA3OTBGMDUyNDA2MjYxMDEzMjAyNjkwQTBCRjM4Cis6MTAwMTcwMDBGRjdGMDRFM0MwMDQ4RDhCODA3QTFBMDU4MDc5QjQwNDc0Cis6MTAwMTgwMDAyNjkwMTMxMDI2MzAxQjkwOEQ4QjgwN0ExQTA1ODA3QTZBCis6MTAwMTkwMDAyMzA1MjcxMDAxQkEyNzkwMDhFM0I0MDQyNDAxMEYwNkIxCis6MTAwMUEwMDA4OThCMUE2OTA4RTNFQTA0MTk2OTg4RTNFMDA0MDNCOTUyCis6MTAwMUIwMDAwOTg4QzZCRUREMDRBMDFGQUUyRkE5OTg4MDc5MEYwNTVGCis6MTAwMUMwMDAwMUI5MTg4ODA3QjkwOTg4QzZCRUU3MDRFRTEwQTk5MERFCis6MTAwMUQwMDA4MDc5MEYwNTE5NjkwOEUzRkUwNDAzQjkwOTg4NDZCRTUyCis6MTAwMUUwMDBDNkJFRkEwNEEwMTcxRUJFQUUxRkJGQkYwMEZGMTNCRURGCis6MTAwMUYwMDBERkJGODA4MEE5OTk0N0JFODA3OTBGMDUwMUI5MDk4OEMyCis6MTAwMjAwMDBDNkJFMEUwNUEwMTZBMDI2QjdCRjAwRkYxRUJFQTAxRUNDCis6MTAwMjEwMDBBRTJFQkZCRjAwRkYxM0JFREZCRjgwODBBOTk5MEM4NTQzCis6MTAwMjIwMDAwRjg2MDc2OTg4RTMxNjA1MDcwRDEwODU1OUJFMUU4OERECis6MTAwMjMwMDA0QUJFMDBFRjFFMTAxQzkwMUYxMDFEOTBBMDEwMUU5MEIzCis6MTAwMjQwMDBBMDEwMUY5MDAwRUYxRTEwMUMzMDIwOTAxQjczMjA1NDM0Cis6MTAwMjUwMDAwM0JFMjU5ODI1MTAxQzIwMjU5MDI1NzMxNDU0MDNCRTM5Cis6MTAwMjYwMDA4RThCODA5ODJGNjk4OEUzMzkwNTU5QkUwN0JCODA2MTYyCis6MTAwMjcwMDA4MDk4QTA4QjFGMTAxRDMwMjE5MDFCNzMyMTU0MDNCRTRBCis6MTAwMjgwMDAyRTk4MkUxMDFEMjAyRTkwMkU3MzE1NTQwM0JFODA5ODhDCis6MTAwMjkwMDAyRjY5ODhFMzRGMDU1OUJFMDdCQjgwNjE4MDk4QTA4QjBBCis6MTAwMkEwMDAxODY5MDhFRjI1NzMxNjU0MDNCRUEwOTgyRTczMTc1NENGCis6MTAwMkIwMDAwM0JFQTA5ODAwRUZBMDhCQzZCRTZCMDU1OUJFMDRCQjYxCis6MTAwMkMwMDA5MEFBMDRCRTFFQkVFMDk5RTA4QkEwNjlEMDkwQTA2OTAwCis6MTAwMkQwMDBEMDkwMUYwODA1QjgxRjg4OTA4QkEwNjlEMDkwQTA2OUE2Cis6MTAwMkUwMDA5MDkwRDA4QkQ4OEIxRkJFMDBFRjAwMDAwMDAwMDAwMDY0Cis6MTAwMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MDIwMzEwMDAwMDAwRUIKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9paGV4MmZ3LmMgYi9maXJtd2FyZS9paGV4MmZ3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYwYjE5MQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2loZXgyZncuYwpAQCAtMCwwICsxLDI2OCBAQAorLyoKKyAqIFBhcnNlci9sb2FkZXIgZm9yIElIRVggZm9ybWF0dGVkIGRhdGEuCisgKgorICogQ29weXJpZ2h0IMKpIDIwMDggRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgorICogQ29weXJpZ2h0IMKpIDIwMDUgSmFuIEhhcmtlcyA8amFoYXJrZXNAY3MuY211LmVkdT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjZGVmaW5lIF9HTlVfU09VUkNFCisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisKKworc3RydWN0IGloZXhfYmlucmVjIHsKKwlzdHJ1Y3QgaWhleF9iaW5yZWMgKm5leHQ7IC8qIG5vdCBwYXJ0IG9mIHRoZSByZWFsIGRhdGEgc3RydWN0dXJlICovCisgICAgICAgIHVpbnQzMl90IGFkZHI7CisgICAgICAgIHVpbnQxNl90IGxlbjsKKyAgICAgICAgdWludDhfdCBkYXRhW107Cit9OworCisvKioKKyAqIG55YmJsZS9oZXggYXJlIGxpdHRsZSBoZWxwZXJzIHRvIHBhcnNlIGhleGFkZWNpbWFsIG51bWJlcnMgdG8gYSBieXRlIHZhbHVlCisgKiovCitzdGF0aWMgdWludDhfdCBueWJibGUoY29uc3QgdWludDhfdCBuKQoreworICAgICAgIGlmICAgICAgKG4gPj0gJzAnICYmIG4gPD0gJzknKSByZXR1cm4gbiAtICcwJzsKKyAgICAgICBlbHNlIGlmIChuID49ICdBJyAmJiBuIDw9ICdGJykgcmV0dXJuIG4gLSAoJ0EnIC0gMTApOworICAgICAgIGVsc2UgaWYgKG4gPj0gJ2EnICYmIG4gPD0gJ2YnKSByZXR1cm4gbiAtICgnYScgLSAxMCk7CisgICAgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50OF90IGhleChjb25zdCB1aW50OF90ICpkYXRhLCB1aW50OF90ICpjcmMpCit7CisgICAgICAgdWludDhfdCB2YWwgPSAobnliYmxlKGRhdGFbMF0pIDw8IDQpIHwgbnliYmxlKGRhdGFbMV0pOworICAgICAgICpjcmMgKz0gdmFsOworICAgICAgIHJldHVybiB2YWw7Cit9CisKK3N0YXRpYyBpbnQgcHJvY2Vzc19paGV4KHVpbnQ4X3QgKmRhdGEsIHNzaXplX3Qgc2l6ZSk7CitzdGF0aWMgdm9pZCBmaWxlX3JlY29yZChzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlY29yZCk7CitzdGF0aWMgaW50IG91dHB1dF9yZWNvcmRzKGludCBvdXRmZCk7CisKK3N0YXRpYyBpbnQgc29ydF9yZWNvcmRzID0gMDsKK3N0YXRpYyBpbnQgd2lkZV9yZWNvcmRzID0gMDsKKworaW50IHVzYWdlKHZvaWQpCit7CisJZnByaW50ZihzdGRlcnIsICJpaGV4MmZ3OiBDb252ZXJ0IGloZXggZmlsZXMgaW50byBiaW5hcnkgIgorCQkicmVwcmVzZW50YXRpb24gZm9yIHVzZSBieSBMaW51eCBrZXJuZWxcbiIpOworCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6IGloZXgyZncgWzxvcHRpb25zPl0gPHNyYy5IRVg+IDxkc3QuZnc+XG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgICAgICAtdzogd2lkZSByZWNvcmRzICgxNi1iaXQgbGVuZ3RoKVxuIik7CisJZnByaW50ZihzdGRlcnIsICIgICAgICAgLXM6IHNvcnQgcmVjb3JkcyBieSBhZGRyZXNzXG4iKTsKKwlyZXR1cm4gMTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCBpbmZkLCBvdXRmZDsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKwl1aW50OF90ICpkYXRhOworCWludCBvcHQ7CisKKwl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAid3MiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAndyc6CisJCQl3aWRlX3JlY29yZHMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJc29ydF9yZWNvcmRzID0gMTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIHVzYWdlKCk7CisJCX0KKwl9CisKKwlpZiAob3B0aW5kICsgMiAhPSBhcmdjKQorCQlyZXR1cm4gdXNhZ2UoKTsKKworCWlmICghc3RyY21wKGFyZ3Zbb3B0aW5kXSwgIi0iKSkKKwkgICAgaW5mZCA9IDA7CisJZWxzZQorCQlpbmZkID0gb3Blbihhcmd2W29wdGluZF0sIE9fUkRPTkxZKTsKKwlpZiAoaW5mZCA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBvcGVuIHNvdXJjZSBmaWxlOiAlcyIsCisJCQlzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gdXNhZ2UoKTsKKwl9CisJaWYgKGZzdGF0KGluZmQsICZzdCkpIHsKKwkJcGVycm9yKCJzdGF0Iik7CisJCXJldHVybiAxOworCX0KKwlkYXRhID0gbW1hcChOVUxMLCBzdC5zdF9zaXplLCBQUk9UX1JFQUQsIE1BUF9TSEFSRUQsIGluZmQsIDApOworCWlmIChkYXRhID09IE1BUF9GQUlMRUQpIHsKKwkJcGVycm9yKCJtbWFwIik7CisJCXJldHVybiAxOworCX0KKworCWlmICghc3RyY21wKGFyZ3Zbb3B0aW5kKzFdLCAiLSIpKQorCSAgICBvdXRmZCA9IDE7CisJZWxzZQorCQlvdXRmZCA9IG9wZW4oYXJndltvcHRpbmQrMV0sIE9fVFJVTkN8T19DUkVBVHxPX1dST05MWSwgMDY0NCk7CisJaWYgKG91dGZkID09IC0xKSB7CisJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG9wZW4gZGVzdGluYXRpb24gZmlsZTogJXMiLAorCQkJc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIHVzYWdlKCk7CisJfQorCWlmIChwcm9jZXNzX2loZXgoZGF0YSwgc3Quc3Rfc2l6ZSkpCisJCXJldHVybiAxOworCisJb3V0cHV0X3JlY29yZHMob3V0ZmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfaWhleCh1aW50OF90ICpkYXRhLCBzc2l6ZV90IHNpemUpCit7CisJc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQ7CisJdWludDMyX3Qgb2Zmc2V0ID0gMDsKKwl1aW50OF90IHR5cGUsIGNyYyA9IDAsIGNyY2J5dGUgPSAwOworCWludCBpLCBqOworCWludCBsaW5lID0gMTsKKwlpbnQgbGVuOworCisJaSA9IDA7CituZXh0X3JlY29yZDoKKwkvKiBzZWFyY2ggZm9yIHRoZSBzdGFydCBvZiByZWNvcmQgY2hhcmFjdGVyICovCisJd2hpbGUgKGkgPCBzaXplKSB7CisJCWlmIChkYXRhW2ldID09ICdcbicpIGxpbmUrKzsKKwkJaWYgKGRhdGFbaSsrXSA9PSAnOicpIGJyZWFrOworCX0KKworCS8qIE1pbmltdW0gcmVjb3JkIGxlbmd0aCB3b3VsZCBiZSBhYm91dCAxMCBjaGFyYWN0ZXJzICovCisJaWYgKGkgKyAxMCA+IHNpemUpIHsKKwkJZnByaW50ZihzdGRlcnIsICJDYW4ndCBmaW5kIHZhbGlkIHJlY29yZCBhdCBsaW5lICVkXG4iLCBsaW5lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbGVuID0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCWlmICh3aWRlX3JlY29yZHMpIHsKKwkJbGVuIDw8PSA4OworCQlsZW4gKz0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCX0KKwlyZWNvcmQgPSBtYWxsb2MoKHNpemVvZiAoKnJlY29yZCkgKyBsZW4gKyAzKSAmIH4zKTsKKwlpZiAoIXJlY29yZCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnkgZm9yIHJlY29yZHNcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0KHJlY29yZCwgMCwgKHNpemVvZigqcmVjb3JkKSArIGxlbiArIDMpICYgfjMpOworCXJlY29yZC0+bGVuID0gbGVuOworCisJLyogbm93IGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGRhdGEgdG8gcmVhZCBldmVyeXRoaW5nICovCisJaWYgKGkgKyA4ICsgKHJlY29yZC0+bGVuICogMikgPiBzaXplKSB7CisJCWZwcmludGYoc3RkZXJyLCAiTm90IGVub3VnaCBkYXRhIHRvIHJlYWQgY29tcGxldGUgcmVjb3JkIGF0IGxpbmUgJWRcbiIsCisJCQlsaW5lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVjb3JkLT5hZGRyICA9IGhleChkYXRhICsgaSwgJmNyYykgPDwgODsgaSArPSAyOworCXJlY29yZC0+YWRkciB8PSBoZXgoZGF0YSArIGksICZjcmMpOyBpICs9IDI7CisJdHlwZSA9IGhleChkYXRhICsgaSwgJmNyYyk7IGkgKz0gMjsKKworCWZvciAoaiA9IDA7IGogPCByZWNvcmQtPmxlbjsgaisrLCBpICs9IDIpCisJCXJlY29yZC0+ZGF0YVtqXSA9IGhleChkYXRhICsgaSwgJmNyYyk7CisKKwkvKiBjaGVjayBDUkMgKi8KKwljcmNieXRlID0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCWlmIChjcmMgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkNSQyBmYWlsdXJlIGF0IGxpbmUgJWQ6IGdvdCAweCVYLCBleHBlY3RlZCAweCVYXG4iLAorCQkJbGluZSwgY3JjYnl0ZSwgKHVuc2lnbmVkIGNoYXIpKGNyY2J5dGUtY3JjKSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIERvbmUgcmVhZGluZyB0aGUgcmVjb3JkICovCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSAwOgorCQkvKiBvbGQgc3R5bGUgRU9GIHJlY29yZD8gKi8KKwkJaWYgKCFyZWNvcmQtPmxlbikKKwkJCWJyZWFrOworCisJCXJlY29yZC0+YWRkciArPSBvZmZzZXQ7CisJCWZpbGVfcmVjb3JkKHJlY29yZCk7CisJCWdvdG8gbmV4dF9yZWNvcmQ7CisKKwljYXNlIDE6IC8qIEVuZC1PZi1GaWxlIFJlY29yZCAqLworCQlpZiAocmVjb3JkLT5hZGRyIHx8IHJlY29yZC0+bGVuKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBFT0YgcmVjb3JkICh0eXBlIDAxKSBmb3JtYXQgYXQgbGluZSAlZCIsCisJCQkJbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKworCWNhc2UgMjogLyogRXh0ZW5kZWQgU2VnbWVudCBBZGRyZXNzIFJlY29yZCAoSEVYODYpICovCisJY2FzZSA0OiAvKiBFeHRlbmRlZCBMaW5lYXIgQWRkcmVzcyBSZWNvcmQgKEhFWDM4NikgKi8KKwkJaWYgKHJlY29yZC0+YWRkciB8fCByZWNvcmQtPmxlbiAhPSAyKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBIRVg4Ni9IRVgzODYgcmVjb3JkICh0eXBlICUwMlgpIGF0IGxpbmUgJWRcbiIsCisJCQkJdHlwZSwgbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIFdlIHNob3VsZG4ndCByZWFsbHkgYmUgdXNpbmcgdGhlIG9mZnNldCBmb3IgSEVYODYgYmVjYXVzZQorCQkgKiB0aGUgd3JhcGFyb3VuZCBjYXNlIGlzIHNwZWNpZmllZCBxdWl0ZSBkaWZmZXJlbnRseS4gKi8KKwkJb2Zmc2V0ID0gcmVjb3JkLT5kYXRhWzBdIDw8IDggfCByZWNvcmQtPmRhdGFbMV07CisJCW9mZnNldCA8PD0gKHR5cGUgPT0gMiA/IDQgOiAxNik7CisJCWdvdG8gbmV4dF9yZWNvcmQ7CisKKwljYXNlIDM6IC8qIFN0YXJ0IFNlZ21lbnQgQWRkcmVzcyBSZWNvcmQgKi8KKwljYXNlIDU6IC8qIFN0YXJ0IExpbmVhciBBZGRyZXNzIFJlY29yZCAqLworCQlpZiAocmVjb3JkLT5hZGRyIHx8IHJlY29yZC0+bGVuICE9IDQpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiQmFkIFN0YXJ0IEFkZHJlc3MgcmVjb3JkICh0eXBlICUwMlgpIGF0IGxpbmUgJWRcbiIsCisJCQkJdHlwZSwgbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIFRoZXNlIHJlY29yZHMgY29udGFpbiB0aGUgQ1MvSVAgb3IgRUlQIHdoZXJlIGV4ZWN1dGlvbgorCQkgKiBzdGFydHMuIERvbid0IHJlYWxseSBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGVtLiAqLworCQlnb3RvIG5leHRfcmVjb3JkOworCisJZGVmYXVsdDoKKwkJZnByaW50ZihzdGRlcnIsICJVbmtub3duIHJlY29yZCAodHlwZSAlMDJYKVxuIiwgdHlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmRzOworCitzdGF0aWMgdm9pZCBmaWxlX3JlY29yZChzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlY29yZCkKK3sKKwlzdHJ1Y3QgaWhleF9iaW5yZWMgKipwID0gJnJlY29yZHM7CisKKwl3aGlsZSAoKCpwKSAmJiAoIXNvcnRfcmVjb3JkcyB8fCAoKnApLT5hZGRyIDwgcmVjb3JkLT5hZGRyKSkKKwkJcCA9ICYoKCpwKS0+bmV4dCk7CisKKwlyZWNvcmQtPm5leHQgPSAqcDsKKwkqcCA9IHJlY29yZDsKK30KKworc3RhdGljIGludCBvdXRwdXRfcmVjb3JkcyhpbnQgb3V0ZmQpCit7CisJdW5zaWduZWQgY2hhciB6ZXJvZXNbNV0gPSB7MCwgMCwgMCwgMCwgMH07CisJc3RydWN0IGloZXhfYmlucmVjICpwID0gcmVjb3JkczsKKworCXdoaWxlIChwKSB7CisJCXVpbnQxNl90IHdyaXRlbGVuID0gKHAtPmxlbiArIDkpICYgfjM7CisKKwkJcC0+YWRkciA9IGh0b25sKHAtPmFkZHIpOworCQlwLT5sZW4gPSBodG9ubChwLT5sZW4pOworCQl3cml0ZShvdXRmZCwgJnAtPmFkZHIsIHdyaXRlbGVuKTsKKwkJcCA9IHAtPm5leHQ7CisJfQorCS8qIEVPRiByZWNvcmQgaXMgemVybyBsZW5ndGgsIHNpbmNlIHdlIGRvbid0IGJvdGhlciB0byByZXByZXNlbnQKKwkgICB0aGUgdHlwZSBmaWVsZCBpbiB0aGUgYmluYXJ5IHZlcnNpb24gKi8KKwl3cml0ZShvdXRmZCwgemVyb2VzLCA1KTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2ludGVsbGlwb3J0Mi5iaW4uaWhleCBiL2Zpcm13YXJlL2ludGVsbGlwb3J0Mi5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWNmZThjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvaW50ZWxsaXBvcnQyLmJpbi5paGV4CkBAIC0wLDAgKzEsMjE0NyBAQAorOjEwMDAwMDAwM0M0MjM3MTgwMjAxMDMwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMDAxMDAwNTc2NTY0MjA0NDY1NjMyMDMwMzEyMDMxMzIzQTMyMzRGMAorOjEwMDAyMDAwM0EzMzMwMjAzMTM5MzkzOTAwMDAwMDAwMDAwMDAwMDAzNworOjEwMDAzMDAwRTk2QzBGNDI2NTQ3Njk0RTZFNDk2RTQ3MjA2RjQ2MjA1NgorOjEwMDA0MDAwNjM0RjY0NDVDQzEzNUExNUU4MTY3NjE4MDQxQTkyMUJCMAorOjEwMDA1MDAwMjAxREFFMUUzQzIwQ0EyMTU4MjNFNjI0NzQyNjAyMjgwNworOjEwMDA2MDAwOTAyOTFFMkJBQzJDM0EyRUM4MkY1NjMxRTQzMjcyMzQxNAorOjEwMDA3MDAwMDAzNjhFMzcxQzM5QUEzQTM4M0NDNjNENTQzRkUyNDAyMAorOjEwMDA4MDAwNzA0MkZFNDM4QzQ1MUE0N0E4NDgzNjRBQzQ0QjUyNEQyRAorOjEwMDA5MDAwRTA0RTZFNTBGQzUxOEE1MzE4NTVBNjU2MzQ1OEMyNTkzQQorOjEwMDBBMDAwNTA1QkRFNUM2QzVFRkE1Rjg4NjExNjYzQTQ2NDMyNjY0NgorOjEwMDBCMDAwQzA2NzRFNjlEQzZBNkE2Q0Y4NkQ4NjZGMTQ3MUEyNzI1MworOjEwMDBDMDAwMzA3NEJFNzU0Qzc3NkM3NzhDNzdBQzc3MzNEQjhBREMxOQorOjEwMDBEMDAwNTMzM0RCMjUwNzAwNzUwQThBMUUwODAxODNFMzBDRUIwNgorOjEwMDBFMDAwMjA5MDNDMDE3NTBBOEExRTA4MDE4MEUzQzBFQjEyOTA0MworOjEwMDBGMDAwOEExRTBEMDEzQzAyNzUwNjgwRTMwQ0VCMDQ5MDgwRTM0MAorOjEwMDEwMDAwQzA1MzUwOEIxRUJBMTM4RURCRTg2QTY1NTU4QkVDNTNENworOjEwMDExMDAwMUUyQkMwOEVEODhCNUUwNEMxRTMwNDAzNUUwNkQxRTNDMAorOjEwMDEyMDAwMkU4QjlGNDQwMDhENDcyQTFFNUExRjVCNURDMzU1OEI0MworOjEwMDEzMDAwRUM1MzFFMkJDMDhFRDg4QjVFMDRDMUUzMDQwMzVFMDYxNQorOjEwMDE0MDAwRDFFMzJFOEI5RjQ0MDA4RDQ3MzQxRTVBMUY1QjVEQzM0NQorOjEwMDE1MDAwRkI1NThCRUM1MzUxNTI1NjU3MUUwNjFFMDczM0MwOEU2QgorOjEwMDE2MDAwRDg4QjVFMDQyNjhBNDc1OTI1MDMwMDhCRjBEMUU2MkVGMgorOjEwMDE3MDAwOEJCNEM0MDBDMUUwMDQyNjAyNDcxQUQxRTA4QkU4MkVGQworOjEwMDE4MDAwOEJBRTQ0MDA4OTJDMjY4QTQ3MUM4ODQ0MEYyNjhBNDc1OAorOjEwMDE5MDAwMUQ4ODQ0MTAyNjhBNDcxRTg4NDQxMTI2OEE0NzFGODhENgorOjEwMDFBMDAwNDQxMjI2OEE0NzIwODg0NDEzMjY4QTQ3MjM4ODQ0MTQwOQorOjEwMDFCMDAwMjY4QTQ3MjQ4ODQ0MTUyNjhBNDc1QTg4NDQwRTMzQzAyNQorOjEwMDFDMDAwODk0NDA2ODk0NDA4ODg0NDBCODg0NDBBQjAyMUI0NjRGMQorOjEwMDFEMDAwODk0NDA0ODk0NDAyQjA1NTg4NDQwRDg4NDQwQ0U4NkE3NworOjEwMDFFMDAwMDA3MjVCRThDOTAwRThDMTEwODk0NDA4ODA3QzBGMDFGNworOjEwMDFGMDAwNzQyOUU4MkIwMkU4N0YwMjgwN0MwRjAzNzQxREU4QTlCNAorOjEwMDIwMDAwMTA4QkY4MkI0NDA4M0RBMDBGNzIxMDg5N0MwODMzQzA3NgorOjEwMDIxMDAwODc0NDA2ODVDMDc1MDRDNjQ0MEFGRjhBNDQwQTg0QzAyMAorOjEwMDIyMDAwNzUwQkI4MDgwMEU4NkE0QUU4QTkwMTczQkZFODRGMDFGNgorOjEwMDIzMDAwODE2NjQ4N0ZGRjgzNjY3QUJGQjAwMkU4MDQwRThBNDQ3NQorOjEwMDI0MDAwMEE5ODA3MUY1RjVFNUE1OTVCNURDMzgxNEU0ODgwMDA2NAorOjEwMDI1MDAwQjA0MEU4M0Q0QUU4ODk0MDczMkFFODREMTA4QkQ4QjA5OQorOjEwMDI2MDAwMDVFODJFNEFGNjQ2MjcwMjc1MUFFODNEMTAyQkMzM0RENQorOjEwMDI3MDAwNTgxQjcyRUI4MTY2NDg3RkZGQjAwMkU4QzQwREM2NDQ4QworOjEwMDI4MDAwMEEwMUY5QzM4MzRFN0E0MEY4QzNGQkIwMDFFODAyNEE4MQorOjEwMDI5MDAwRkFFODk5MUVFNDBBODRDMDc1RjBCMDRFRTYwQUZCQjA5NQorOjEwMDJBMDAwMDFFOEVFNDlGQUU4ODUxRUU0MEE4NEMwNzVGMEMzRkE1NQorOjEwMDJCMDAwRTg3QTFFRTRFQzg4NDQxNkU0RTQ4ODQ0MTdFNEY4ODhGRAorOjEwMDJDMDAwNDQxOEU0RjA4ODQ0MTlFNDEwODg0NDFBRTQxMjg4NDQ3RAorOjEwMDJEMDAwMUJFNDE0ODg0NDFDRTQzNDg4NDQxREU0MzY4ODQ0MUUxRQorOjEwMDJFMDAwRTREODI0MDE4QUUwRTREQTI0MDIwQUM0ODg0NDFGOEE5QworOjEwMDJGMDAwNDQxMEU4Q0QxRjhBNDQxMUU4MzUyMThBNDQxMkU4ODk2OAorOjEwMDMwMDAwMjE4QTQ0MTNFODQzMjFDNjg2QTEwMDAwRTQxNDI0MTA4NgorOjEwMDMxMDAwRTYxNEU0MTIyNDNERTYxMjhBNDQxNTNDMDE3MjFFNzc2RAorOjEwMDMyMDAwMTZCMDExRTYzNEIwMTNFNjM2RTQxNDBDMTBFNjE0RTQwQgorOjEwMDMzMDAwMTIwQzQwRTYxMkVCMDZFNDEyMEMwMkU2MTI4QTQ0MEY5RAorOjEwMDM0MDAwM0MwMTc0MDYzQzAyNzQwQUVCMEVFNDEyMEMwOEU2MTIzRgorOjEwMDM1MDAwRUIwNkU0MTIwQzEwRTYxMkU4MkZGRjhBNDQxNDNDMDI2QworOjEwMDM2MDAwNzUwOEIwNTU4ODQ0MEM4ODQ0MERCMDIxQjQ2NDg5NDRBNAorOjEwMDM3MDAwMDQ4OTQ0MDJFNDBDMEMxMEU2MENFOEVEMzlGQkMzRThGOAorOjEwMDM4MDAwNUYzRjczMDhGQkIwMEFFODA4NDlFQkYzRkFFODlEMURFQworOjEwMDM5MDAwOEE2NDE2OEE0NDE3ODk4Njk0MDBFNkU0OEFDNEU2RUNFNworOjEwMDNBMDAwOEE2NDE4OEE0NDE5ODk4Njk2MDBFNkYwOEFDNEU2RjhCOQorOjEwMDNCMDAwOEE0NDFBRTYxMDhBNDQxQkU2MTI4QTQ0MUNFNjE0OEExMAorOjEwMDNDMDAwNDQxREU2MzQ4QTQ0MUVFNjM2OEE0NDFGRTZEOEU2REEzRgorOjEwMDNEMDAwRTlCN0ZFOTBGQThBNDQwRUU2RkVFNDAyQTgwMTc1MDUyQworOjEwMDNFMDAwMzNDMEZCRjhDMzMzQzBFNDAwRkJGOUMzOEE2NDE0ODA1NAorOjEwMDNGMDAwRkMwMjc0MkJGRUMwRkVDNzgwRkY0RTcyMUM3NDA5ODA4NQorOjEwMDQwMDAwRkY1MDczMDhCMDBBRUIxN0IwMERFQjEzMDJEQzMyRkY5QworOjEwMDQxMDAwODBGQjdGN0MwMkIzMjE4QUMzM0M3RjdDMDJCMDIxQzM3NgorOjEwMDQyMDAwRkE4MDdDMEIwNDc2MDJGQkMzOEI0NjI0M0QwODAwNzJFNQorOjEwMDQzMDAwRjY4RTQ2MDI4QjdFMjI4QTQ0MEM4QjVDMDJBQUU4QUJDNQorOjEwMDQ0MDAwRkZBQUU4QTdGRkFBRThBM0ZGQUFFODlGRkY4ODQ0MEMzOQorOjEwMDQ1MDAwODk1QzAyODA0NDBCMDQ4OTdFMjI4MzZFMjQwNDgzNDZENworOjEwMDQ2MDAwMUEwNDgwN0UyNjAyNzQwNjgwNjYyNkZERkJDMzYwQjBGNworOjEwMDQ3MDAwRkRFODAyM0Y2MUZCQzNGQTgwN0MwRjAzNzUwOUM2NDRBNworOjEwMDQ4MDAwMEIwMEU4RTUzOEZCQzNDNDdFMTQ4QjRFM0E4NUM5NzU3MgorOjEwMDQ5MDAwMzUyNjhCMEQ0NzQ3RTNFQTNCN0UwNDc2MjJCODAyMDBGRgorOjEwMDRBMDAwMzk0NjJFNzcwN0M3NDYyRTAwMDBFQjEzOEI1RTJDODk0QQorOjEwMDRCMDAwNUUwNDI2QzcwNzAwMDA0MzQzODk1RTJDMjk0NjJFODUyQgorOjEwMDRDMDAwQzk3OENFODk0RTNBOEE0NDBEOEI1QzA0MjY4QTI1NDcyQQorOjEwMDREMDAwM0FDNDc1MTZGRTRDMEJGRjQ0MDZFODBGRkZFMkVEODhBOAorOjEwMDRFMDAwNDQwRDg5NUMwNDg5NEUzQUVCQTdDNjQ0MEFGRUU4NzlCQworOjEwMDRGMDAwMzhGQkMzOTBFOEIzMEQ4QUU4OEEwRUNCMTNCMzA3OEFBMgorOjEwMDUwMDAwQzFFRUVCMDBFQzNBQzE3NTA5MDJDREZFQ0I3NUYwRUIwNAorOjEwMDUxMDAwMEM5MDg4MEVDQjEzOEFFOEJCRkZGRkY5QzM4ODBFQ0I4MworOjEwMDUyMDAwMTNGOEMzOTBCQjNGM0Y4QThFOUUwMEJBRkUwMEVDOEE1MAorOjEwMDUzMDAwRTgzMkMxMjJDMzc1MDJGOEMzRjlDMzkwRThFNUZGNzMzRQorOjEwMDU0MDAwMDFDM0JBRDAwMEJCMDMwMzhBOEU5RjAwRUM4QUU4MzI1NQorOjEwMDU1MDAwQzEyMkMzNzUwMkY4QzNGOUMzOTAzM0MwOEVEODhFQzBEMAorOjEwMDU2MDAwODAzRUM4MTMwMDc1MDdCMDBBRTgyNjQ3RUJGMkZCMzM1QworOjEwMDU3MDAwREI4QTFFQzkxMzQzNDM4M0ZCN0U3NjA3MzNEQkIwMDI1RAorOjEwMDU4MDAwRTgwRjQ3MkU4QkFGNDQwMDgzN0UwODAwNzRFNzg4MUU3NworOjEwMDU5MDAwQzkxM0IwMDJFOEZCNDZGQUY3NDYzODQwMDA3NDE0RTg4NQorOjEwMDVBMDAwOTYxQkU4N0ZGRjcyMUMzM0QyOEE5NjlGMDA4M0MyMEU4RgorOjEwMDVCMDAwRUIwQzkwRTg3NzFCRTg4M0ZGNzIwOEJBNDgwMEU4MzMzOQorOjEwMDVDMDAwRkY3M0FCMjNDQjg5OEU5QTAwODk5NjlDMDBGRTg2QjU3QgorOjEwMDVEMDAwMDBDNjA2QzgxMzAwQjAwQUU4NjcwQUZCRUI4OTEwMThDQQorOjEwMDVFMDAwMDgyODMzQzBBMDA1MDE4QUM4MjQ0MDc1MjRDNzA2N0NBQQorOjEwMDVGMDAwMTI4RTQ1QzcwNjQyMTIwMTAwQzYwNjU0MTIwMkIwMDgwOAorOjEwMDYwMDAwRjZDMTAxNzQwMkIwMDRBMzQ2MTJBMjRDMTJBMjk0MTJDNQorOjEwMDYxMDAwQzNDNzA2N0MxMkI2NDVBMDBGMDE4NEMwNzUwRTZBMDBFMAorOjEwMDYyMDAwMUZDNjA2OTMxMjFFOUMwRUU4QjEwQzkwQzcwNjQ0MTIxQQorOjEwMDYzMDAwMDEwMEEzNDIxMjhCRDhDMUUzMDQ4ODFFOTQxMkJFRTJDQgorOjEwMDY0MDAwMDUyQkYwOEJDODMzREI4QkZCMkVBQzg4ODU0ODEyOEFEOAorOjEwMDY1MDAwRDgwQzA1RTZGRThBRTBFQjAwRTRGRTMyQzRBODNGNzQ0NQorOjEwMDY2MDAwMDNFOTlFMDBFNDAwODg4NTUwMTI4QUUwMjQzMEJBMTAyNQorOjEwMDY3MDAwRkYzQzMwNzQxMjgwRkMwNDc0MEFCQTA0MDNGNjA2MDhDNgorOjEwMDY4MDAwMDFGRTc0MDNCQTA4MEY4ODk1NEMxMjAyRkEzMkMwRjZDNAorOjEwMDY5MDAwQzQwODc0MDJCMDAxODg4NTU4MTI4QUM0M0MzNTc0NUI2MgorOjEwMDZBMDAwM0MzNjc0NTczQzM0NzQ1MzNDMDQ3NDRGM0MxNDc0NEJDNAorOjEwMDZCMDAwM0MxNTc0NDdBODQwNzQyNUM2ODU1NDEyMDREMUU3QjQ4QworOjEwMDZDMDAwMDM4QUMzODk4NTVDMTI4QUMzOEFFMzgwQ0MwMTg5ODU0OQorOjEwMDZEMDAwNjQxMkQxRUY0N0UyMDNFQjFBOTBFOTZDRkZDNjg1NTQzMAorOjEwMDZFMDAwMTIwMkQxRTc4QUU2OEFDMzBDMDQ4OTg1NUMxMkQxRUYzNQorOjEwMDZGMDAwNDdFMkU3MzNDMDhBQzdBMzQ2MTJDM0M2ODU1NDEyMDYzMQorOjEwMDcwMDAwRUJCQkM2ODU1NDEyMDAzM0MwODg4NTUwMTI4ODg1NENENworOjEwMDcxMDAwMTI4ODg1NTgxMkVCQTZDNzQ2MjYwMjEyOEI0NjFFODkwMAorOjEwMDcyMDAwNDYwMDg5NDYyMjhCNDYyMDg5NDYyNEM3NDYxQTAwMDA4NworOjEwMDczMDAwQzNDNzQ2M0M4MDAwQzc0NjM4MDEwMDFFNTY4Qjc2MzA0MgorOjEwMDc0MDAwODk3NjA0ODk3NjE0OEU1RTA2MzNDMDg5MDQ0NjQ2ODkwQworOjEwMDc1MDAwNzYyQzg5NDYzQThCNDYzMjQ4NDg4OTQ2MkU1RTFGQzMxRQorOjEwMDc2MDAwMzNDMDg5NDY0ODg5NDY0QUM3NDY0NkFFMDE4OTQ2NEU0NworOjEwMDc3MDAwOEI0NjQ0ODk0NjUwOEI0NjQyODk0NjQwODk0NjA4QzM4OQorOjEwMDc4MDAwMzNDMDg5NDY3Njg5NDY3OEM3NDY3QTEwMDA1NjFFOEI1NAorOjEwMDc5MDAwNzY3MDg5NzYxMDg5NzYwQzhFNUUxMkM3MDQwMDAwOEIwNQorOjEwMDdBMDAwNDY3Mjg5NDY3NDFGNUVDMzg5NTYxODg5NTYwMjg5NTY1NworOjEwMDdCMDAwMDY4OTU2MEE4OTU2MEU4OTU2MTI4OTU2MTY4QkQ4NEJDOQorOjEwMDdDMDAwNEJDMUUzMDJCRjAyMDA4OTdFMUUwM0ZCODk3RTMwMDMxQQorOjEwMDdEMDAwRkI4OTdFNDIwM0ZCODk3RTcwODNFQjA4ODk1RTIwODk1QQorOjEwMDdFMDAwNUUzMjg5NUU0NDg5NUU3MjUwRTgyQkZGRTg3MUZGRTg1MworOjEwMDdGMDAwM0ZGRkU4OEJGRjU4QzNCODMwNzVDMUU4MDQwRTVCMDNCOAorOjEwMDgwMDAwQzNBM0JBMTM4MzNFNDIxMjAwNzQwNzgwM0U5NDEyMDBDMQorOjEwMDgxMDAwNzUwRTZBMDAxRkM2MDY5MzEyMUU5QzBFRThCRDBBOTA1NAorOjEwMDgyMDAwQjgzMDdBQzFFODA0NDBBM0MwMTMyQjA2MTIwMUY3RDhGMAorOjEwMDgzMDAwMzNEMjhCQ0E4QTBFOTQxMkY3RjEzRDgwMDA3NzBFNkE4QworOjEwMDg0MDAwMDAxRkM2MDY5MzEyMjU5QzBFRTg5MDBBOTA0ODNERkZCMworOjEwMDg1MDAwMDc3MjAzQjhGRjA3QTNDMjEzMzNDOThBMEU5NDEyMzM3OQorOjEwMDg2MDAwRjZCODAwMDkyRThCQUM0NDAwODk0NjRDNDA0NjQ2RTI1RgorOjEwMDg3MDAwRjM4QTBFOTQxMjMzRjY4QjE2QzAxM0ExQzIxMzJFOEI3QgorOjEwMDg4MDAwQUM0NDAwRTgyMkZGMDNEMDQ2NDZFMkYyQzMzM0MwMkU1OAorOjEwMDg5MDAwOEJBRDQ0MDA4OTQ2MDg0NzQ3RTJGNEMzNTEzM0MwMEE5MAorOjEwMDhBMDAwQzIyRThCQUQ0NDAwODk4NjlFMDA4MTRFMzgwMDIwNDdDMQorOjEwMDhCMDAwNDdGRUM0ODBGQzA0NzIwNDMyRTRGRUMwRTJFMzU5ODNDNAorOjEwMDhDMDAwRTkxMDc0MDVGN0Q5RThDNEZGQzM1MTMzQzAwQUMyMkUzQQorOjEwMDhEMDAwOEJBRDQ0MDA4OTg2OUUwMDgzNEUzODQwNDc0NzgwQzRENAorOjEwMDhFMDAwMTA3OTA0MzJFNEZFQzBFMkU2NTk4M0U5MTA3NDA1Rjc5QQorOjEwMDhGMDAwRDlFODk5RkZDM0U4RDJGRkMzOEQwODlDMDhDQTA4RjU2MAorOjEwMDkwMDAwMDg4QjBFNDIxMjMzRjY1MTU2MzNEQjhCQ0I4QTk0NDg1OAorOjEwMDkxMDAwMTI4QThDNEMxMjhBOUM1NDEyOEJGRUMxRTcwNTg1REIyRgorOjEwMDkyMDAwNzUwMkIxMTAyRUZGOTdGOTA4NUU1OTQ2RTJEOUMzMDE0RQorOjEwMDkzMDAwQ0MwM0QwMDBFODAyRDAwMEU4MDFEMDAwRTgwMEQwMDBFRAorOjEwMDk0MDAwRTgwNEQwQThEQTAwREMwMERFMDFEODAzQ0MwM0NDMDMzNQorOjEwMDk1MDAwQ0MwNEQwQThEQTIwREMwMERFMDNDQzAzQ0MwM0NDMDAyRQorOjEwMDk2MDAwRDgwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDMwMworOjEwMDk3MDAwQ0MwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDNGRgorOjEwMDk4MDAwQ0MwNEQwMDBEQTIwREMwM0RFMDFEODAzQ0MwM0NDMDM5NgorOjEwMDk5MDAwQ0MwM0NDMDBEODAwQ0MwMEQwMDAwMDU2NTIxRTBFMUY1NQorOjEwMDlBMDAwQkUyRjA5MzNEMkZDQUQ4NUMwNzQwRDhBRDRFRUFEODU1RgorOjEwMDlCMDAwQzA3NDA1OEFENEVFRUJFRTFGNUE1RUMzRTQ4MDg0QzA5NworOjEwMDlDMDAwNzQxNjc4MTRCMDI3RTZGQ0IwMTFFNjM0RTRGQzNDMjczQQorOjEwMDlEMDAwNzUwNkU0MTE3NTAyRjhDM0Y5QzM4M0MyMDZCMEJGRUUxMQorOjEwMDlFMDAwODNFQTAyQjAxMEVFODg4NkFGMDBCMDExODNDMjA0RUUzNQorOjEwMDlGMDAwODNDMjAyRUVCMDEzODNDMjAyRUU4M0MyMDJFRTJFQTFDNgorOjEwMEEwMDAwNEMyRDg5ODY5NDAwODNFQTBFRUU4M0MyMDI4QUM0RUVERQorOjEwMEExMDAwODNDMjA0QjAwM0VFODg4NkE4MDA4M0VBMDQzMkMwRUVFNQorOjEwMEEyMDAwODNDMjAyQjA4OUVFODg4NkE2MDAwQzA2RUVCMDQwQjQwMAorOjEwMEEzMDAwMzg4OTQ2MUNDNzQ2MzYzODAwODNDMjA0MzJDMEVFODg2NworOjEwMEE0MDAwODZBNzAwQzM4M0MyMDZCMEJGRUU4M0VBMDJFQzNBODZGMworOjEwMEE1MDAwQUYwMDc1MjQ4M0MyMDRFQzNDMTE3NTFDODNDMjA2RUMwNAorOjEwMEE2MDAwM0MxMzc1MTQ4M0VBMDg4QTg2QTgwMEVFODNFQTAyRUMzOAorOjEwMEE3MDAwMjRDMDNDQzA3NTAyRjhDM0Y5QzMzM0M5OEJEMThCRjFENAorOjEwMEE4MDAwOEEwRTk0MTJDMUU5MDIyRThCQUM0NDAwRjc0NjM4MDA1RQorOjEwMEE5MDAwMjA3NDBFOEE4NjlFMDBFNkZFMzJDMEU2ODA0MkU4RkFBNgorOjEwMEFBMDAwRkU4M0M2MDhFMkUxODVEMjc0MDNFODA1MDhDMzMzQzlCMgorOjEwMEFCMDAwOEJGMThBMEU5NDEyMkU4QkFDNDQwMEY3NDYzODQwMDAxRQorOjEwMEFDMDAwNzQwNkU4NzMxNkU4MTJGRjQ2NDZFMkVBQzMzM0M5OEJBMAorOjEwMEFEMDAwRjE4QTBFOTQxMkMxRTkwMjJFOEJBQzQ0MDBGNzQ2MzgxRAorOjEwMEFFMDAwMDAyMDc0MTZFODQ2MTZFOEQyRkU3MzBFNkEwMDFGQzY5MAorOjEwMEFGMDAwMDY5MzEyMUM5QzBFRThFMzA3OTA4M0M2MDhFMkQ5QzM1NAorOjEwMEIwMDAwMzNDOThCRjE4QTBFOTQxMjJFOEJBQzQ0MDBGNzQ2MzgxMQorOjEwMEIxMDAwNDAwMDc0MTZFODIxMTZFODJBRkY3MzBFNkEwMDFGQzYwQgorOjEwMEIyMDAwMDY5MzEyMUM5QzBFRThCMzA3OTA0NjQ2RTJEQUMzMEMwQgorOjEwMEIzMDAwMDAwMDEwMDAxMzEyMDAwMDE0MDAyODNDMDAxQjNFMDBBRgorOjEwMEI0MDAwMDAyQTAwMDAyQzAwMDA0MjAwMTREODAwMDBEQTAwMDA0NworOjEwMEI1MDAwMzQwMDExMzYwMDEzMzgwMDExM0EwMDEzMDAwMDU2NTBDQgorOjEwMEI2MDAwNTJCRTJGMEIyRUFEODVDMDc0MDY5MjJFQUNFRUVCRjQ2OAorOjEwMEI3MDAwNUE1ODVFQzM1MzJFQTE2MDIyRTZFNEU2RjA4QUM0RTYyQQorOjEwMEI4MDAwRUNFNkY4RThEOEZGQjA0QkU2MTBCMDUwRTYxMkIwMzgwQgorOjEwMEI5MDAwRTYxNEU4QUUxNUIwNDZFNjBBRThBNzE1QjAxQUU2MEE2QworOjEwMEJBMDAwRThBMDE1QjAyMkU2MEFFODk5MTVFOEZEMDY4QkQ4RTQxRQorOjEwMEJCMDAwMTZBODA0NzUxOEU4RjIwNjJCQzMzRDMyMDA3MkYwNkFERAorOjEwMEJDMDAwMDAxRkM2MDY5MzEyMjM5QzBFRTgxMDA3OTBFOERBMDY3MQorOjEwMEJEMDAwMkJDMzNEMjQwMDc3MUJCMDMxRTZGQzU2NTE1NUI5MTBBQworOjEwMEJFMDAwMDAyRThCQUM0NDAwODE0RTM4ODAwMDQ2NDZFMkYyNUQxOAorOjEwMEJGMDAwNTk1RUU4NjlGRkU4NEIxNUIwNDZFNjBBRTg0NDE1NUIyNAorOjEwMEMwMDAwQzMzM0Y2OEIwRTQyMTIyRThCQUM0NDAwRjc0NjM4MDBFRAorOjEwMEMxMDAwMjA3NDA2RTgxNzE1RTg1QkZGODNDNjIwRTJFOUMzOEI2MgorOjEwMEMyMDAwQzIwNTA0MDA4OTQ2MjgyRUExNEMyRDg5ODY4RTAwODk5NAorOjEwMEMzMDAwODY5MDAwODk4NjkyMDBDNjg2QTMwMDBBQzY4NkMzMDBGNQorOjEwMEM0MDAwMDM1MjgzQzIwNDhBODZBNjAwMEMwNkVFNUE4M0MyMDJBRgorOjEwMEM1MDAwQjAwNUVFODg4NkE1MDBDM0U4MDNGRkU4RTUxNEIwNDJCRQorOjEwMEM2MDAwRTYwQUY3NDYzODgwMDA3NDA2MkVBMTlDMjJFQjA0MkU3QgorOjEwMEM3MDAwQTE2QzIyQzc0NjFDMEMwMDg5ODY5NDAwODk4Njk2MDBDOAorOjEwMEM4MDAwODk4NjhFMDA4OTg2OTAwMDg5ODY5MjAwRTZGMEU2RTRFNworOjEwMEM5MDAwOEFDNEU2RjhFNkVDQzY4NkMzMDAwM0U4QTUxNEIwMUFEOQorOjEwMENBMDAwRTYwQUIwMTA4ODg2QTUwMEU2MENDMzMzQzk4QkYxOEEyQQorOjEwMENCMDAwMEU5NDEyMkU4QkFDNDQwMEY3NDYzODQwMDA3NDA2RThDMAorOjEwMENDMDAwNzYxNEU4NUFGRjQ2NDZFMkVBQzMzM0M5OEJGMThBMEUyRQorOjEwMENEMDAwOTQxMjJFOEJBQzQ0MDBGNzQ2MzgwMDIwNzQwNkU4NEM4MgorOjEwMENFMDAwMTRFODc0RkY0NjQ2RTJFQUMzOTA4MzNFNDQxMjAwNzU1RQorOjEwMENGMDAwMTRCMDAxQkEwNjAxRUUyQUMwRUVCMDAyRUVCMDA0RUU2NgorOjEwMEQwMDAwQjgwMDAyRUIwRkJBMDYwMUIwNDBFRUI4MDEwMDhBMEUzRgorOjEwMEQxMDAwMEUwMUQzRTBBMzg4MTJDM0ExODgxMkEzODQxMjJEMjA1MAorOjEwMEQyMDAwMDBBMzhBMTIyRDIwMDBBMzgyMTJDNzA2ODYxMjIwMDA3QgorOjEwMEQzMDAwQzcwNjgwMTIzMjAwQzM4MzNFNDQxMjAwNzQ3NjhCMEVDNQorOjEwMEQ0MDAwNDIxMjMzRjY4QUE0NTQxMjg0RTQ3NDVGOEE4NDQ4MTJFRgorOjEwMEQ1MDAwMEMwNEU2RkVGNkM0MDQ3NDI1QjAxQkJBMDAwMEVFRUJFQQorOjEwMEQ2MDAwMDAyQUMwQkEwMjAwRUVFQjAwQjAwM0VFRUIwMDMyQzA4NgorOjEwMEQ3MDAwQkEwMjAwRUVFQjAwQkEwMDAwQjAwMEVFRUIyREIwMUY5RgorOjEwMEQ4MDAwQkEwMDAwRUVFQjAwMkFDMEJBMDIwMEVFRUIwMEIwMDM5RQorOjEwMEQ5MDAwRUVFQjAwRDFFNjhBODQ1RDEyRDFFRUY2RDBCQTAyMDAwNQorOjEwMERBMDAwRUVFQjAwQkEwMDAwQjAwQUVFRUIwMEU0MDRFQjAwRTQ2NgorOjEwMERCMDAwMDQ0NkUyOTBDMzkwQjgxNDAwQkEzRUZGRUZCODA2MDBCNAorOjEwMERDMDAwQkEzMkZGRUZCODBGMDBCQTM0RkZFRkJBMzZGRkVGODM0NQorOjEwMEREMDAwM0U0NDEyMDA3NTE2QjgxMTAwQkEzOEZGRUZCODEyMDA4MQorOjEwMERFMDAwQkEzQUZGRUZCODFCMDBCQTNDRkZFRkMzQjgxMTAwQkEyNAorOjEwMERGMDAwMzhGRkVGQjgxMjAwQkEzQUZGRUZCODFCMDBCQTNDRkY1OQorOjEwMEUwMDAwRUZDM0I4RkMwMEJBMjhGRkVGRkI4MzNFNDQxMjAwNzQyNgorOjEwMEUxMDAwMDdCOENDMDBCQTI4RkZFRkMzMDBGRkZGMjAyNDI4RkY0QgorOjEwMEUyMDAwMkNGRkZGMzAzNDM4RkZGRjNDOTAzQzBGNzcwRUJCMTk4RQorOjEwMEUzMDAwMEUyRUQ3M0NGRjc0MDU4QUQ4RjhDMzkwMkFEQkY5QzM3RAorOjEwMEU0MDAwODMzRTQ0MTIwMDc0MjdBMDA2MDE4MDI2MDYwMTMwODBFQworOjEwMEU1MDAwM0UwNjAxMzA3NTE4QjkwMjAwQkZDNDEzQkEwNjAxRUM5MgorOjEwMEU2MDAwQTgyMDc1RjhCQTA0MDFFREFCRTJGMUVCMTY5MEI5MDRENQorOjEwMEU3MDAwMDBCRkM0MTNCQTA2MDFFQ0E4MjA3NUY4QkEwNDAxRUM0RgorOjEwMEU4MDAwQUFFMkYxRkE5MEJFQzQxM0FEODBFNDNGODBGQzAyNzQ4NAorOjEwMEU5MDAwMEU2QTAwMUZDNjA2OTMxMjBBOUMwRUU4M0UwNDkwQUQyRgorOjEwMEVBMDAwM0MwRjc1RUQ4QUM0RTg4MUZGNzJFNjg4MUUxQTAxQzYwMAorOjEwMEVCMDAwMDY4RTEyMDBCMDAwMEEwNjFBMDFCQTAwMDFFRUM2MDYzQworOjEwMEVDMDAwOEYxMjQwODMzRTQ0MTIwMDc1MDZCODBDMDBFQjA0OTA2QworOjEwMEVEMDAwQjg0QzAwQkEyOEZGRUZDMzgzM0U0NDEyMDA3NTAxQzMyQgorOjEwMEVFMDAwQTE1MDEyMEIwNjUyMTIwQUM0QTgwODc0RjJBMDBGMDFGNgorOjEwMEVGMDAwMkFFNDUwRkYzNkJBMTMxRkU4NTA1NjgzQzQwMjZBMDAzMgorOjEwMEYwMDAwMUYzM0MwQTNCQzEzQTAwRjAxQTNCRTEzOEIxRUJDMTNDMQorOjEwMEYxMDAwOEE4NzUwMTJGNjg3NTAxMjA4NzQwRDI0MDc4QUUwQkVBMworOjEwMEYyMDAwQ0MwMEEwQkMxM0U4OTQzREZGMDZCQzEzRkYwRUJFMTMxQgorOjEwMEYzMDAwNzVEQUMzOTAxRTMzQzA4RUQ4QjAwMUU4NTQzRDFGQzM4QworOjEwMEY0MDAwMzNDOThCRjE4QTBFOTQxMjJFOEJBQzQ0MDBDNzQ2NjJEMworOjEwMEY1MDAwMzg0NEM3NDY3Q0ZDM0JDNzQ2N0VFMjNCQzc4NjgwMDBFMAorOjEwMEY2MDAwRUMzQ0U4QUIxNkM2ODZDMDAwMTE4MzdFMDgwMDc0MDcwRgorOjEwMEY3MDAwNTE1NkU4MzMzMzVFNTk0NjQ2RTJDREMzMzNDOThCRjE0RgorOjEwMEY4MDAwOEJGOThBMEU5NDEyQzFFOTAyRTMxMzJFOEJBQzQ0MDA1NAorOjEwMEY5MDAwOEE4NjlFMDA4ODg1NkMxMjgzQzYwODQ3RTJFREMzRkFGNAorOjEwMEZBMDAwRkNCMEMwQkEwMDAxRUUzM0MwOEVEODhFQzA4RUQwQkY2OAorOjEwMEZCMDAwMTYwMUI5Q0M3NzJCQ0ZEMUU5RjNBQkJDNDAxMkU4RDlGRAorOjEwMEZDMDAwMDJFODcwM0NCRUNDMEZFOEYyM0NGNDkwMzNDMDhFRDhGRgorOjEwMEZEMDAwOEVDMDhFRDBGNjA2MEEwMTgwNzQwQkJFMzU1NUU4REI1NAorOjEwMEZFMDAwM0NCMDAxRThBQzNDRThCMzAwRThGNkY1RTgwOEY4RTgwNgorOjEwMEZGMDAwMEZGOUU4ODVGQUU4QjZGQUU4RUZGQ0U4QzIxMEU4MDM3MgorOjEwMTAwMDAwM0NFOEIyRkRFODMwRkRFODU0MDJDNjA2OEYxMkMwRThBNQorOjEwMTAxMDAwQkJGQUU4RUJGQUU4RTlGQkU4QUZGQ0U4OERGQ0U4MUY3NworOjEwMTAyMDAwRkZFODU4RkZFOERCRkRFODE2RkUzM0MwQkU1QTA1RThDRQorOjEwMTAzMDAwOEEzQ0U4QTNGRUU4RTBGQ0ZCQkVBNDQ0RTg3RDNDRTk3MgorOjEwMTA0MDAwQ0EyRDU2OTg4QkYwOEI0MjUyODVDMDc1MjdDNzQyNTJFNQorOjEwMTA1MDAwMDEwMDUzMzY4QjlDMkMwMUY2QzMwMTc1MEMzNjg5Njg1MAorOjEwMTA2MDAwNTIzNjg5QUMyQzAxNUI1RUMzMzY4OUFDMkMwMTM2ODlDMworOjEwMTA3MDAwQUMxQzAxNUI1RUMzNTY5ODhCRjAzM0VEMzY4Qjg0MUM0MQorOjEwMTA4MDAwMDFBODAxNzUxNThCRTgzM0MwODc0MjUyMzY4OTg0MUM0QworOjEwMTA5MDAwMDFBODAxNzQwNTM2ODk4NDJDMDE1RUMzNTY1MTMzRjZDQworOjEwMTBBMDAwQjgwMTAwQjkwODAwODk4NDFDMDE4OTg0MkMwMTQ2NDZENgorOjEwMTBCMDAwRTJGNDU5NUVDMzkwQkIwMTAwOEJFOEZGNEU2RTc0MEFFOAorOjEwMTBDMDAwOEJERDhCNDY1OEE4MDE3NEYwQzM4QjQ2NDhBOTA4MDBGNQorOjEwMTBEMDAwNzQ0NUY3NDYzODQwMDA3NDI3RTg1QzEwODBDMjA2OEFFMQorOjEwMTBFMDAwODZBODAwMjRCRjg4ODZBODAwRUU2MEIwRkVFODg2MzI5RAorOjEwMTBGMDAwNjFCMDAyRTg0Q0ZGOEI0NjQ4MjRGNzg5NDY0OEVCMTc1RAorOjEwMTEwMDAwRTgyQTEwODE0RTI2MDA0MDhBODZBNTAwMEMwMjg4ODZCNworOjEwMTExMDAwQTUwMEU2MEM4QjQ2NDhBOTA0MDA3NDE0QjAwMkU4MjEyRgorOjEwMTEyMDAwRkY4QjQ2NDgyNEZCODk0NjQ4NjBCMERGRTg0NzMyNjFDMAorOjEwMTEzMDAwMzNDMDg3NDY1OEY2QzMwMTc1MEIzNjg5NDc1OEE4MDE1NgorOjEwMTE0MDAwNzUwREU5NzRGRkEzMjIwMUE4MDE3NTAzRTk2QUZGODlGRgorOjEwMTE1MDAwMUUzMjAxQzNCQjAxMDA4QkU4Rjc0NjM4NDAwMDc0MTUwRQorOjEwMTE2MDAwRThENTBGODBDMjBBRUNBODQwNzUwQThCREQ4QjQ2NTY4NQorOjEwMTE3MDAwQTgwMTc0RTNDMzhCNDYyNjgwRTRGRTgwQ0MwMjg5NDYzNgorOjEwMTE4MDAwMjZCMDAyRThCQ0ZFMzNDMDg3NDY1NkY2QzMwMTc1MEE5NgorOjEwMTE5MDAwMzY4OTQ3NTZBODAxNzUwQkVCQkRBMzIwMDFBODAxNzU0MAorOjEwMTFBMDAwMDJFQkI0ODkxRTMwMDFDMzYwMUUwNjJCQzA4RUQ4QTA4RQorOjEwMTFCMDAwOTAxMjg0QzA3NTQ5QTEyMjAxQTgwMTc1MDNFOEY2RkVDQQorOjEwMTFDMDAwQTEyMDAxQTgwMTc1MDNFODhBRkZBMUFDMTM0ODc4MDVBNgorOjEwMTFEMDAwNzQ0NUEzQUMxM0ExQUUxMzQ4NzgwNTc0NTFBM0FFMTNBNAorOjEwMTFFMDAwQTFCMDEzNDg3ODA1NzQ2M0EzQjAxM0ExN0UxMjQwNzhCMAorOjEwMTFGMDAwMDNBMzdFMTJCODAwODBCQTIyRkZFRjA3MUY2MUNGQTBDMQorOjEwMTIwMDAwOTExMjQwM0MwMjcyMEIzM0MwQTI5MTEyRkYxNjdDMTI2NQorOjEwMTIxMDAwRUJBNEEyOTExMkVCOUZBMDhFMTIzMjA2OEYxMkEyOEUyNworOjEwMTIyMDAwMTIwQTA2MUEwMUJBMDAwMUVFQjgyQzAxRUJBNDgzM0VBMworOjEwMTIzMDAwODQxMjEwNzIxMUJBMjhGRkVEMEM4MUVGRTg1MzM3QkEwRgorOjEwMTI0MDAwMjhGRkVEMjQ3RUVGQjgwNDAwRUI5MkM2MDY4RDEyMDE1NAorOjEwMTI1MDAwRTgzRjM3QzYwNjhEMTIwMEExQjIxM0VCOEI5MDhBMUVCMQorOjEwMTI2MDAwMEIwMTJBRkY2QkMzMTlCQTYyRkZFRkI4MEEwMEJBNjAxQworOjEwMTI3MDAwRkZFRkI4MDFFMEJBNjZGRkVGQjhGRkZGQkE1MkZGRUYyOQorOjEwMTI4MDAwQjgwOUMwQkE1NkZGRUZDNzA2QUMxMzJDMDFDNzA2QUVBQgorOjEwMTI5MDAwMTMwNDAwQzYwNjkxMTIwMEMzOTA4QTFFMEIwMTJBRkY5OAorOjEwMTJBMDAwNkJDMzA1RDFFOEEzMTgwMUMzOTA1MkJBNTBGRkVENUFBMQorOjEwMTJCMDAwQzM5MDUzNTE4QjFFMTgwMUI5MzIwNTkwRTJGRTRCNzU1NQorOjEwMTJDMDAwRjc1OTVCQzNCMDgwQkEwMDAxMEEwNjFBMDFFRUMzOTA1OQorOjEwMTJEMDAwQjA0MEVCRjJCMEMwRUJFRUIwMDBFQkVBRkE2MDA2MUVGNQorOjEwMTJFMDAwMTYyQkRCOEVEQjJFQTFCQTRDMkVBMzkyNENBMDkzMTJCMAorOjEwMTJGMDAwOTg4QkU4ODkyNjJEN0E4MDNFQ0ExMzAwNzQwM0U5NkIyNworOjEwMTMwMDAwNDJFOEMwRkZFOEFCRkZFOEE4RkZCMDIwQzYwNjkwMTI5NQorOjEwMTMxMDAwMDBGRjE2N0MxMjhCRkQ4M0ZGMEE3MjExRThCOUZGRTgwQgorOjEwMTMyMDAwOTBGRkU4QUJGRkU4OEFGRjgzRUYwQUVCRUEwQkZGNzQ1QworOjEwMTMzMDAwMEZFOEE0RkZFODdCRkZFODlBRkZFODc1RkY0Rjc1RjExRgorOjEwMTM0MDAwRTg5NUZGRTg2Q0ZGRUJCOThBODZBNTAwMjRGREVFODhERQorOjEwMTM1MDAwODZBNTAwQzM4QTg2QTYwMDBDMDJFRUMzOEI3NjM4RjdGQQorOjEwMTM2MDAwQzYwMTAwNzRFRjhCNEUzNjhCNDYyRTNCQzE3MzAyOEI0OQorOjEwMTM3MDAwQzgyQkMxODk0NjJFMDE0RTM0QzQ3RTA0MjYwMTBEOEIzNAorOjEwMTM4MDAwN0UyQzgzRUEwNEYzNkM4RUMxODk3RTJDM0I0NjNDNzIzMgorOjEwMTM5MDAwMTJGN0M2MjAwMDc1MEI4M0NFMjA4OTc2MzhCMDAwRTg5RQorOjEwMTNBMDAwQTBGQ0MzRjdDNjA0MDA3NDFCOEJEODgzQ0UxMDg5NzZDQgorOjEwMTNCMDAwMzg4QTg2QTcwMDI0RkU4ODg2QTcwMDgzQzIwOEVFODNBOQorOjEwMTNDMDAwRUEwODhCQzMzRDQwMDA3MjAxQzM4MTRFMzgwMDA0ODM5QworOjEwMTNEMDAwQzIwMjhBODZBNTAwMjRGQTg4ODZBNTAwRUVDMzhBODYwMgorOjEwMTNFMDAwQTYwMDBDMDJFRUMzRjc0NjM4MDEwMDc0RjE4QjRFMkVCNgorOjEwMTNGMDAwMzJEQjhBQkVBMzAwODNDMjA2QzQ3NjA0OEI3RTJDODNCNAorOjEwMTQwMDAwRjkwODcyMkNFQ0E4MDE3NDE2OEFFMDgzRUEwQUVDODNDRQorOjEwMTQxMDAwQzIwQTg0RTc3NTUxQUFGRUMzNDk4M0Y5MDg3M0U1MzIwRAorOjEwMTQyMDAwRkYyNjAxMUMwMTVFMzQ4OTc2MDQ4OTRFMkU4OTdFMkNBQworOjEwMTQzMDAwM0I0RTNDNzIxMUY2NDYzODIwNzQwMUMzODM0RTM4MjA2RgorOjEwMTQ0MDAwQjAwMEU4RkRGQkMzRjY0NjM4MDQ3NDE1ODM0RTM4MTAyRgorOjEwMTQ1MDAwOEE4NkE3MDAyNEZFODg4NkE3MDA4M0VBMDJFRTgzQzI1QworOjEwMTQ2MDAwMDIzRDQwMDA3MjVEQzMzMkZGMjYwMzFDODVEQjc0MDkxOAorOjEwMTQ3MDAwMjY4OTFDOEJGNzQ3NDc0OTQ5ODBFNDFFODBDQ0MwMjY0QgorOjEwMTQ4MDAwODkwNEY2QzQxMDc0Mjc4Qjc2MzhGN0M2MDAxMDc0MEJFNQorOjEwMTQ5MDAwNTBGRTg2QjIwMEIwMEFFOEE4RkI1OEY3QzYwMDAxNzRGNworOjEwMTRBMDAwMERFODgyMjY4Qjc2Mzg4QjRFMkU4QjdFMDRBQjhCRjcyNQorOjEwMTRCMDAwMzNDMEFCMzJEQjhBQkVBMzAwNDk0OTgzRjkwODcyMTdGNworOjEwMTRDMDAwRTk0MUZGODE0RTM4MDAwNDgzQzJGODhBODZBNTAwMjREMgorOjEwMTREMDAwRkE4ODg2QTUwMEVFQzNFOTQ1RkY4M0MyMDhFQzg4ODYzQQorOjEwMTRFMDAwQUEwMEMwRTgwNDhBRTA4QUM4ODY4NkE5MDAzMkUwOEI5OAorOjEwMTRGMDAwNUUzRTg0RTM3NDRGOEFDMThCNEUyNkY2QzUwNDc0MEM5RAorOjEwMTUwMDAwQTgwODc0MDU4MEUxQkZFQjAzODBDOTQwRjZDNTA4NzRFNAorOjEwMTUxMDAwMENBODAyNzQwNTgwRTE3RkVCMDM4MEM5ODA4ODRFMjYwOQorOjEwMTUyMDAwOEJGMDhBODZBNTAwODRDOTc0MDhBODAyNzQxNTI0RkQ2RQorOjEwMTUzMDAwRUIwNkE4MDI3NTBEMEMwMjg4ODZBNTAwODNFQTBBRUU2OAorOjEwMTU0MDAwODNDMjBBOEJDNjg0RTc3NTAxQzNDNjg2QkEwMDAxQjBBMAorOjEwMTU1MDAwMEVFOEVFRkFGNzQ2MzgwMDAyNzRFRTgzN0UyRTA2NzIyRAorOjEwMTU2MDAwRTg4QUE2QUEwMEM0NUUwNDhCN0UyQ0IwRkZBQUIwMDI1MworOjEwMTU3MDAwQUIyNjgzMDcwMzgzNkUyRTAzODk3RTJDRjY0NjM4MjAyNAorOjEwMTU4MDAwNzQwMUMzODM0RTM4MjBCMDAwRThCNkZBQzM5MDgzRUFGMgorOjEwMTU5MDAwMDhFOUI0RkQ4M0MyMDY4QjVFMjZGNkMzQzA3NUVGOEJFNworOjEwMTVBMDAwNEUxQ0VDODg4NkE0MDA4M0VBMEFBODIwNzUwMjhBQ0QyNgorOjEwMTVCMDAwMzJFRDhCNDYxQTNCQzg3MzE4MDE0RTJBMkJDMTg5NDY1RgorOjEwMTVDMDAwMUFDNTc2MDBGMzZFOEVEOTg5NzYwMDNEMjAwMDcyMzAwMAorOjEwMTVEMDAwQzM4NUMwNzQzMThCQzgwMTQ2MkFDNTc2MDBGMzZFOEU3MAorOjEwMTVFMDAwRDk4MENCMDI4OTVFMjZFODMyRjFGNkM3MDE3NTE2ODNGMQorOjEwMTVGMDAwQzIwMkU4NTNGREY2QzcxMDc1MEJCMDAyRTg0M0ZBQzMwOAorOjEwMTYwMDAwRjZDNzAxNzRGMEMzODBDQjAyODk1RTI2RjZDNzAxNzQ2OQorOjEwMTYxMDAwREU4M0MyMDJFODMxRkRGNjg2QTQwMDQwNzQwQjgwRTc0OQorOjEwMTYyMDAwRkU4MENGMDI4OTVFMjZFQkNDQjAwNEU4MTRGQUMzQzA3QQorOjEwMTYzMDAwQzJDOENBQzRDNkNDQ0VEMEQyRDhEQUQ0RDZEQ0RFOTBFQQorOjEwMTY0MDAwRTkwRTAxRTRDNDhBRTBFNEM0OEJEMDgzRjkwODcyRjBBNworOjEwMTY1MDAwMjY4MzNGMDA3NDA0OEJERjQ5NDk4QkZCOEFERTgzRTNEQQorOjEwMTY2MDAwMEYyRThBQTcyRjE2QUJGNkM0MTA3NDI0RjdDNjAwMTBFRAorOjEwMTY3MDAwNzQwQjUwRkU4NkIyMDBCMDBBRThDNkY5NThGN0M2MDBFRgorOjEwMTY4MDAwMDE3NDBERThBMDI0OEI3NjM4OEI0RTJFOEI3RTA0QUIzNAorOjEwMTY5MDAwODk3RTA0MzNDMEFCNDk0OTg5NEUyRTg5N0UyQzhCQzE4QgorOjEwMTZBMDAwRUI0RTkwRUI5RTkwRTRENjg0QzA3OTYzRTZEMDhBQzg3NgorOjEwMTZCMDAwMjUwMzAwMDNEOEQxRTMyRThCQUY0NDAwODg4RUFFMDAwMworOjEwMTZDMDAwOEI0RTJFQzQ1RTA0OEI3RTJDOEI3NjM4RTQ4NjI0MDdFQQorOjEwMTZEMDAwM0MwMzc1Q0ZFNDFDOTEzQkMxNzMwMjhCQzgyQkMxODlCRAorOjEwMTZFMDAwNDYyRTAxNEUzNDI2MDEwRkJBQzQwMEYzNkM4OTdFMkNCRAorOjEwMTZGMDAwM0I0NjNDNzIxQ0Y3QzYyMDAwNzUwQjgzQ0UyMDg5NzZEMgorOjEwMTcwMDAwMzhCMDAwRTgzQ0Y5OEE4NkFFMDAyNDNGRTZENkMzRjkzQgorOjEwMTcxMDAwQzNGN0M2MEEwMDc0MzVGN0M2MTAwMDc1MkY4M0NFMTBDNAorOjEwMTcyMDAwODk3NjM4RjdDNjAyMDA3NDBFNTBFNEQ4MjRGRUU2RDg1NQorOjEwMTczMDAwNThGN0M2MDgwMDc0MTU1MDUxQjlFODAzRTQwQTg0QzA4QworOjEwMTc0MDAwRTBGQTg0QzA3NTA0QjAyNEU2MEE1OTU4M0Q0MDAwNzM5RAorOjEwMTc1MDAwQjU4QTg2QTUwMDI0RUY4ODg2QTUwMEU2MEM4MUNFMTAwOAorOjEwMTc2MDAwMDQ4OTc2MzhFQkEwMDAwODA0MEMwMTA5MDUwRDAyMEE3MworOjEwMTc3MDAwMDYwRTAzMEIwNzBGMDA0MDgwQzAyMDYwQTBFMDEwNTA1MQorOjEwMTc4MDAwOTBEMDMwNzBCMEYwRTREMkU2RDA4QUM4MjUwMzAwMDNEMAorOjEwMTc5MDAwRDhEMUUzMkU4QkFGNDQwMDg4OEVBRTAwRTREOEMwRThFOQorOjEwMTdBMDAwMDQ4QkQ4MkU4QTg3NjYxNzhBRTA4QUM4ODY4NkE5MDBBNQorOjEwMTdCMDAwMzJFMEU0OTg4QjVFM0U4NEUzNzQ1NDhBQzE4QjRFMjZGQgorOjEwMTdDMDAwRjZDNTA0NzQwQ0E4MDg3NDA1ODBFMUJGRUIwMzgwQzk1QQorOjEwMTdEMDAwNDBGNkM1MDg3NDBDQTgwMjc0MDU4MEUxN0ZFQjAzODAxNQorOjEwMTdFMDAwQzk4MDg4NEUyNjhCRjA4QTg2QTUwMEY2QzFGRDc0MDg1NAorOjEwMTdGMDAwQTgwNjc0MTkyNEY5RUIwRkE4MDY3NTExRjZDNTAxNzUzMgorOjEwMTgwMDAwMDQwQzA0RUIwMjBDMDI4ODg2QTUwMEU2MEM4QkM2ODQ0RgorOjEwMTgxMDAwRTc3NTA5OEE4NkFFMDAyNDNGRTZEMkMzQzY4NkJBMDBDMQorOjEwMTgyMDAwMDFCMDBFRTgxQ0Y4Rjc0NjM4MDAwMjc0RTY4MzdFMkVGRAorOjEwMTgzMDAwMDY3MkUwOEE4NkE5MDA4QUUwODY4NkFBMDA4QUM4MzJGMworOjEwMTg0MDAwQzQ4MEM5MEIyMkMxQzBFNDA0MEFFMEM0NUUwNDhCN0VEQworOjEwMTg1MDAwMkNCMEZGQUFCMDAyQUIyNjgzMDcwMzgzNkUyRTAzODk0OAorOjEwMTg2MDAwN0UyQ0Y2NDYzODIwNzVBQjgzNEUzODIwQjAwMEU4RDE4OAorOjEwMTg3MDAwRjdFQkEwOTBFNDEyMjRERkU2MTI4MUUzRkU5Rjg5NUU3RAorOjEwMTg4MDAwMjY4MzY2NDhGN0VCNzM5MEY2QzcyMDc1RTdFNDEyMENFMQorOjEwMTg5MDAwMjBFNjEyMzJDMEU2QzZCMDgzRTZDNjgwQ0YyMDg5NUU1RAorOjEwMThBMDAwMjY4QTg2QTUwMDBDMDI4ODg2QTUwMEU2MENFQjc0OTBCQgorOjEwMThCMDAwRjZDNzQwNzVEM0U0MTIwQzIwRTYxMjMyQzBFNkM2QjA3QgorOjEwMThDMDAwODFFNkM2ODBFN0RGODBDQjAxODk1RTI2QjAwNkU4NzEzRAorOjEwMThEMDAwRjc5MDhBODZBNTAwMjRGOUU2MEM4ODg2QTUwMEVCNDNEQworOjEwMThFMDAwRTRENEU2RDA4QkY4MjUwMzAwMDNEOEQxRTMyRThCQUZFOAorOjEwMThGMDAwNDQwMDhCNUUyNkY2Qzc2MDc1QjZGNkMzQzA3NUQzQkFEMgorOjEwMTkwMDAwQzYwMDhCNEUxQzhCNDYxQTNCQzg3MzFFMDE0RTJBMkJGOQorOjEwMTkxMDAwQzE4OTQ2MUFDNTc2MDBGMzZFOEVEOTg5NzYwMDNEMjBCRQorOjEwMTkyMDAwMDA3MjNEOEJDNzI0M0ZFNkQ0QzM4NUMwNzQzOThCQzg5MQorOjEwMTkzMDAwMDE0NjJBQzU3NjAwRjM2RThFRDk4M0NCMDI4OTVFMjZENgorOjEwMTk0MDAwRThEOUVERjZDNzAxNzUzOThBODZBNTAwMjRGOUU2MENCOQorOjEwMTk1MDAwODg4NkE1MDBGNkM3MTA3NUNBQjAwMkU4RTRGNkVCQzNBNgorOjEwMTk2MDAwRjZDNzAxNzRFRkVCQkNGNkM3MDE3NERDOEE4NkE1MDBFQworOjEwMTk3MDAwQTgwMjc0MTE4MUUzRkZGRTgxQ0IwMDAyODk1RTI2RUI5MQorOjEwMTk4MDAwQzc4QTg2QTUwMDI0RkIwQzAyRTYwQzg4ODZBNTAwRUIxRQorOjEwMTk5MDAwOTI5MEZERjdERjdGRkVGQkVGQkYwMDA0MDAwNDA1MDQxQgorOjEwMTlBMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDRGNgorOjEwMTlCMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMjA0MDAwNDA1MDRFNQorOjEwMTlDMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDRENgorOjEwMTlEMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDRCOQorOjEwMTlFMDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDRBOQorOjEwMTlGMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQ5OQorOjEwMUEwMDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ4OAorOjEwMUExMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMzA0MDAwNDA1MDQ4MworOjEwMUEyMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ3NQorOjEwMUEzMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMjA0MDAwNDA1MDQ2NAorOjEwMUE0MDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ1NQorOjEwMUE1MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQzOAorOjEwMUE2MDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQyOAorOjEwMUE3MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQxOAorOjEwMUE4MDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQwOAorOjEwMUE5MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQzM0RCOEFEODhBODc5NgorOjEwMUFBMDAwNkMxMkU2RkVDMUUzMDJFNENFQTgwNDc1MDlBODAyNzQzNAorOjEwMUFCMDAwMDNFOTJDRkVGOUMzNTA1M0U4Q0JGQzVCNThBODAyNzQzMQorOjEwMUFDMDAwMDNFOTFDRkVGOEMzMzNEQjhBRDg4QTg3NkMxMkU2RkU3MgorOjEwMUFEMDAwQzFFMzAyRTlEMEZCOUExQUM2MUEwMDAwMDIwMDA0MDAxMgorOjEwMUFFMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBEOAorOjEwMUFGMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDBDNgorOjEwMUIwMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBCNworOjEwMUIxMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQzAwMDIwMDA0MDBBMworOjEwMUIyMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA5NworOjEwMUIzMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDA4NQorOjEwMUI0MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA3NworOjEwMUI1MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwRTAwMDIwMDA0MDA2MQorOjEwMUI2MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA1NworOjEwMUI3MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDA0NQorOjEwMUI4MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDAzNworOjEwMUI5MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQzAwMDIwMDA0MDAyMworOjEwMUJBMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDAxNworOjEwMUJCMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDAwNQorOjEwMUJDMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBGNworOjEwMUJEMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDBDMzkwREExNDk0MTUwQgorOjEwMUJFMDAwNUMxM0U2MTNEQTFCREExQkU2MTNEQTFCOEI5NDY0MTIyMAorOjEwMUJGMDAwQzFFNjA0QTgwMTc0MzU1MDMzQzA4QUMyRTZGRUU0QTBGMQorOjEwMUMwMDAwODVDMDc0Mjc4QkQ4MkU4QTlGREExQTUyNTYyRThCQTgzRAorOjEwMUMxMDAwNDQwMDhCNTYyOEVDQTgwMTc1MEQ4ODg2QUQwMDI0MEU3MworOjEwMUMyMDAwOEFEODJFRkY5N0RDMUI1RTVBRUJDRDU4QTgwMjc0MzY3QgorOjEwMUMzMDAwODNDNjEwMzNDMDhBQzZFNkZFRTRBMDg1QzA3NDI3OEIzNQorOjEwMUM0MDAwRDgyRThBOUZEQTFBNTI1NjJFOEJBODQ0MDA4QjU2MjgxQgorOjEwMUM1MDAwRUNBODAxNzUwRDg4ODZBRDAwMjQwRThBRDgyRUZGOTc1QQorOjEwMUM2MDAwREMxQjVFNUFFQkNEQzM5MDMyRTQ4QkQ4OEJEMDJFOEEyRQorOjEwMUM3MDAwOUY5QTE5MkUyMjk3OTIxOTU2NTI4QUMzMjQwMzAzQzY5QgorOjEwMUM4MDAwODBFMzA0RDBFQjJFRkY5N0Q2MUE1ODVFQTk1NTAwNzU1NQorOjEwMUM5MDAwRDlDMzYwMUUwNjJCQzA4RUQ4QTE1QzEyRTZGRUU0MDBGQworOjEwMUNBMDAwMjJDNDc0MDgzM0Y2RThCRkZGRUJFRTkwRTQwNDA3RTRDNworOjEwMUNCMDAwMDQxRkI4MDA4MEJBMjJGRkVGNjFDRjkwNjAxRTA2MkI5MAorOjEwMUNDMDAwQzA4RUQ4QTE1RTEyRTZGRUU0MDAyMkM0NzQwOEJFMDRGMQorOjEwMUNEMDAwMDBFODk0RkZFQkVERTQwNDA3RTQwNDFGQjgwMDgwQkFDOQorOjEwMUNFMDAwMjJGRkVGNjFDRjkwNjAxRTA2MkJDMDhFRDhBMTVDMTI0MAorOjEwMUNGMDAwRTZGRUU0MDAyMkM0NzQxODMzRjZFODZCRkZBMTYwMTIxQworOjEwMUQwMDAwRTZGRUU0MDAyMkM0NzRFNUJFMDgwMEU4NUFGRkVCRERGRAorOjEwMUQxMDAwQTE2MDEyRTZGRUU0MDAyMkM0NzVFREU0MDQwN0U0MDRDOQorOjEwMUQyMDAwQTE1QzEyRTZGRUU0MDQxRkU0MDRCODAwODBCQTIyRkZCRQorOjEwMUQzMDAwRUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNUUxMkU2RkUyQQorOjEwMUQ0MDAwRTQwMDIyQzQ3NDE5QkUwNDAwRTgxQ0ZGQTE2MjEyRTY3QworOjEwMUQ1MDAwRkVFNDAwMjJDNDc0RTRCRTBDMDBFODBCRkZFQkRDQTEzRgorOjEwMUQ2MDAwNjIxMkU2RkVFNDAwMjJDNDc1RURFNDA0MDdFNDA0QTE3NworOjEwMUQ3MDAwNUUxMkU2RkVFNDA0MUZFNDA0QjgwMDgwQkEyMkZGRUYxRQorOjEwMUQ4MDAwNjFDRjYwMUUwNjJCQzA4RUQ4QTE1QzEyRTZGRUU0ODBGNworOjEwMUQ5MDAwODRDNDc0MDgzM0Y2RTg1M0ZFRUJFRTkwQjgwMDgwQkFDMgorOjEwMURBMDAwMjJGRkVGMDcxRjYxQ0Y5MDYwMUUwNjJCQzA4RUQ4QTFDNworOjEwMURCMDAwNUUxMkU2RkVFNDgwODRDNDc0MDhCRTAyMDBFODJDRkVENQorOjEwMURDMDAwRUJFREI4MDA4MEJBMjJGRkVGMDcxRjYxQ0Y5MDYwMUVENQorOjEwMUREMDAwMDYyQkMwOEVEOEExNjAxMkU2RkVFNDgwODRDNDc0MDg4RAorOjEwMURFMDAwQkUwNDAwRTgwNkZFRUJFREI4MDA4MEJBMjJGRkVGMDc2NAorOjEwMURGMDAwMUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNjIxMkU2RkUzNgorOjEwMUUwMDAwRTQ4MDg0QzQ3NDA4QkUwNjAwRThFMEZERUJFREI4MDA5MQorOjEwMUUxMDAwODBCQTIyRkZFRjA3MUY2MUNGOTA2MDFFMDYyQkMwOEU5NQorOjEwMUUyMDAwRDhBMTVDMTJFNkZFRTQwMDIyQzQ3NDE4MzNGNkU4Mzc0OQorOjEwMUUzMDAwRkVBMTYwMTJFNkZFRTQ4MDg0QzQ3NEU1QkUwNDAwRThGRQorOjEwMUU0MDAwQUFGREVCRERBMTYwMTJFNkZFRTQ4MDg0QzQ3NUVEQTE3RAorOjEwMUU1MDAwNUMxMkU2RkVFNDA0MDdFNDA0MUZCODAwODBCQTIyRkYyNworOjEwMUU2MDAwRUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNUUxMkU2RkVGOQorOjEwMUU3MDAwRTQwMDIyQzQ3NDE5QkUwNDAwRThFQ0ZEQTE2MjEyRTY3RAorOjEwMUU4MDAwRkVFNDgwODRDNDc0RTRCRTA2MDBFODVGRkRFQkRDQTFFMAorOjEwMUU5MDAwNjIxMkU2RkVFNDgwODRDNDc1RURBMTVFMTJFNkZFRTQwMworOjEwMUVBMDAwMDQwN0U0MDQxRkI4MDA4MEJBMjJGRkVGNjFDRjYwMUU3MAorOjEwMUVCMDAwMDYyQkMwOEVEOEExNUMxMkU2RkVFNDgwODRDNDc0MThBMAorOjEwMUVDMDAwMzNGNkU4MjdGREExNjAxMkU2RkVFNDAwMjJDNDc0RTVDMworOjEwMUVEMDAwQkUwODAwRTg5MkZERUJEREExNjAxMkU2RkVFNDAwMjIwMAorOjEwMUVFMDAwQzQ3NUVERTQwNDA3RTQwNDFGQjgwMDgwQkEyMkZGRUZENAorOjEwMUVGMDAwNjFDRjYwMUUwNjJCQzA4RUQ4QTE1RTEyRTZGRUU0ODA4NAorOjEwMUYwMDAwODRDNDc0MTlCRTAyMDBFOEUyRkNBMTYyMTJFNkZFRTQ5OQorOjEwMUYxMDAwMDAyMkM0NzRFNEJFMEMwMEU4NERGREVCRENBMTYyMTJBQgorOjEwMUYyMDAwRTZGRUU0MDAyMkM0NzVFREU0MDQwN0U0MDQxRkI4MDBGMworOjEwMUYzMDAwODBCQTIyRkZFRjYxQ0Y5MDYwMUUwNjJCQzA4RUQ4QTEyMQorOjEwMUY0MDAwNUMxMkU2RkVFNDgwODRDNDc0MTgzM0Y2RTg5REZDQTFCQworOjEwMUY1MDAwNjAxMkU2RkVFNDgwODRDNDc0RTVCRTA0MDBFODhDRkNGNAorOjEwMUY2MDAwRUJEREExNjAxMkU2RkVFNDgwODRDNDc1RUQwNzFGQjhDNgorOjEwMUY3MDAwMDA4MEJBMjJGRkVGNjFDRjYwMUUwNjJCQzA4RUQ4QTE3MQorOjEwMUY4MDAwNUUxMkU2RkVFNDgwODRDNDc0MTlCRTAyMDBFODVDRkNDNAorOjEwMUY5MDAwQTE2MjEyRTZGRUU0ODA4NEM0NzRFNEJFMDYwMEU4NEI0RAorOjEwMUZBMDAwRkNFQkRDQTE2MjEyRTZGRUU0ODA4NEM0NzVFRDA3MUY0MQorOjEwMUZCMDAwQjgwMDgwQkEyMkZGRUY2MUNGOTA2MDFFMDYyQkMwOEU2MgorOjEwMUZDMDAwRDg5MDJBQzBFNkZFRTRDRUE4MDE3NDE0MzNEQkU4RDUyRAorOjEwMUZEMDAwRjZFQkVGOTBCODAwODBCQTIyRkZFRjA3MUY2MUNGOTBCOQorOjEwMUZFMDAwRjYwNjA1MDEwMTc1RURCMDAxRTZGRUU0Q0VBODAxNzQyOAorOjEwMUZGMDAwRTNCQjA0MDBFOEFGRjZFQkM5OTA2MDFFMDYyQkMwOEU3MQorOjEwMjAwMDAwRDg5MEZCOTBGQTJBQzBFNkZFRTRDRUE4MDI3NDEzMzNGRgorOjEwMjAxMDAwREJFOENDRjhFQkVDQjgwMDgwQkEyMkZGRUYwNzFGNjFEOQorOjEwMjAyMDAwQ0Y5MEE4MDQ3NEYwMzNEQkU4NUJGN0VCRDU5MDYwMUUyQgorOjEwMjAzMDAwMDYyQkMwOEVEODkwRkI5MEZBQjAwMUU2RkVFNENFQTg0NQorOjEwMjA0MDAwMDI3NDE1QkIwNDAwRTg5N0Y4RUJFQjkwQjgwMDgwQkE3NworOjEwMjA1MDAwMjJGRkVGMDcxRjYxQ0Y5MEE4MDQ3NEYwQkIwNDAwRThEMworOjEwMjA2MDAwMjRGN0VCRDI2QTAwMUZDNjA2OTMxMjA5OUMwRUU4NkI5OAorOjEwMjA3MDAwRjI5MDZBMDAxRkM2MDY5MzEyMjk5QzBFRTg1REYyOTA0QQorOjEwMjA4MDAwNzIyMDcyMjA3MjIwQ0UxRDkyMUNFNjFDMUExRTcyMjAzNQorOjEwMjA5MDAwODIxREFFMUUzODFGNzIyMDgyMUQ3MjIwNzIyMDM4MUZEMgorOjEwMjBBMDAwNzIyMDcyMjA3MjIwRjQxREJDMUMzNDFENjQxRTcyMjAyQworOjEwMjBCMDAwQTgxREYyMUU3ODFGNzIyMEE4MUQ3MjIwNzIyMDc4MUZBMgorOjEwMjBDMDAwRkNCOTQwMDA4Q0NCQjg2NDIwMkJGRkFCOTNBQjkzRTIwMAorOjEwMjBEMDAwRkFDNzA2NEMwMEE4MTE4MzNFNDQxMjAwNzUyMEM3MDZCQgorOjEwMjBFMDAwM0MwMDA4NEJDNzA2MzAwMEJBMUZDNzA2MzQwMEZBMUY3MQorOjEwMjBGMDAwRjYwNjA1MDEwMTc1MDZDNzA2MzgwMDJFMjBDM0M3MDY3RgorOjEwMjEwMDAwM0MwMDU2NEIzM0RCOEExRTU0MTJDMUUzMDIwMjFFNTZCQQorOjEwMjExMDAwMTIyRThCODc4MDIwQTMzMDAwOEExRTU1MTJDMUUzMDI0NQorOjEwMjEyMDAwMDIxRTU3MTIyRThCODdBMDIwQTMzNDAwQzM4Qjg2OUVERAorOjEwMjEzMDAwMDBFNkZFODZDNEU2RDBDMzhCODY5RTAwRTZGRTMzRDI2MAorOjEwMjE0MDAwOEFENEMzNTFCOTEwMjdFNDBBOTA5MDg0QzA3NDA1RTI4MAorOjEwMjE1MDAwRjY1OUY5QzM1OUY4QzM4NEMwNzgxRTUxOEFFODhBQzg3MQorOjEwMjE2MDAwQjgwMTAwRDNFMDA5ODY5ODAwM0FBRUEwMDA1OTc1MTA3NgorOjEwMjE3MDAwRThBOUU1ODM0RTI2MDJGOUMzOTg4OTg2OTgwMEVCRjAxQQorOjEwMjE4MDAwRjhDMzg0QzA3ODEyNTE4QUUwOEFDOEI4MDEwMEQzRTA0RAorOjEwMjE5MDAwNTlGN0QwMjE4Njk4MDBDM0M3ODY5ODAwMDAwMEMzODNGMgorOjEwMjFBMDAwQzIwNDhBODZBNjAwMEMwNEVFODNFQTA0QzNFODkzRkYwNworOjEwMjFCMDAwNzIwNEIwODJFNjBBQzM4QjQ2MjZBOEZENzQxMThBODY5MworOjEwMjFDMDAwQTUwMEE4MDY3NDA4MjRGOTg4ODZBNTAwRTYwQ0MzRjZDNQorOjEwMjFEMDAwQzQwMTc0MEE4QTg2QTUwMDI0RkIwQzAyRUIwQ0E4MDIzOQorOjEwMjFFMDAwNzUwRjhBODZBNTAwMjRGRDBDMDQzQTg2QTUwMDc1RDhEMworOjEwMjFGMDAwQzM4QTg2QTUwMEVCQ0ZFNEQ4MzNEQjhBRDhDMEVCMDREMgorOjEwMjIwMDAwMkU4QTlGNjYxNzg4OUVBOTAwOEI1RTI2ODBFMzNGRjY4NAorOjEwMjIxMDAwQzcwNDc0MDdBODEwNzUwMzgwQ0I0MEY2QzcwODc0MDc3RAorOjEwMjIyMDAwQTg4MDc1MDM4MENCNDA4ODVFMjY4QTg2QTUwMEY2QzMwOQorOjEwMjIzMDAwRkQ3NDBEQTgwNjc0MDgyNEY5ODg4NkE1MDBFNjBDQzM3MQorOjEwMjI0MDAwRjZDNzAxNzQwNDBDMDJFQkYwRjZDMzAyNzVFOTBDMDQ0NgorOjEwMjI1MDAwRUJFN0M0MDRDNDA0ODUwNDU5MDQ0ODA0NDEwNEMzMDNERgorOjEwMjI2MDAwODIwMzQxMDM4MjAyNTcwMjQxMDI4MjAxNDEwMTgyMDAzRQorOjEwMjI3MDAwNDEwMDRFMDJBRDAxNTcwMTJEMDAyQjAwMjcwMDIxMDAyNworOjEwMjI4MDAwMTYwMEY0MDRGNDA0QTMwNDZGMDQ1QjA0NTEwNEY0MDM4MworOjEwMjI5MDAwQTMwMzUxMDNBMzAyNkQwMjUxMDJBMzAxNTEwMUEzMDA0NAorOjEwMjJBMDAwNTEwMDYyMDJEOTAxNkQwMTM4MDAzNjAwMzEwMDI5MDA2OQorOjEwMjJCMDAwMUIwMDUxNTdCRjAyMDBFQjBGOTA1MTU2QkYwMTAwRUJCRQorOjEwMjJDMDAwMDc5MDUxNTZCRjAzMDA5MDNDMTk3NjAyQjAxNzk4OEJDNworOjEwMjJEMDAwRjA4QTgyQzQwMDJBRTQ4QkYwODNGRTE4NzM0NkQxRTZBQworOjEwMjJFMDAwMkU4QjhDNTIyMkY3NDYzODgwMDA3NDA1MkU4QjhDODIwMAorOjEwMjJGMDAwMjJGN0M3MDIwMDc0MTIzQjhFOTQwMDc0MEM4OThFOTRFRQorOjEwMjMwMDAwMDA4QUM1RTZFQzhBQzFFNkU0RjdDNzAxMDA3NDEyM0IxNworOjEwMjMxMDAwOEU5NjAwNzQwQzg5OEU5NjAwOEFDNUU2Rjg4QUMxRTYwRQorOjEwMjMyMDAwRjA1RTU5QzM3NzA2OEI4RThFMDBFQkM1OEI4RTkwMDBDNgorOjEwMjMzMDAwRUJCRkQ1MDNGNjAwM0UwMDEwMDAwNDAwQ0EwNDMzMDFEMQorOjEwMjM0MDAwNEQwMDE0MDAwNTAwMDEwMzA1MDcwOTAwMDEwMjAzMDQwNAorOjEwMjM1MDAwODA4NDFFMDBBMDI1MjYwMDAwMDA2MDhCRjAzM0ZGMkUzNQorOjEwMjM2MDAwQTE1MDIzMkU4QjE2NTIyM0JCMzIyM0Y3NDYzODgwMDAxMAorOjEwMjM3MDAwNzQwQzJFQTE1NDIzMkU4QjE2NTYyM0JCM0MyM0I5MDU3NworOjEwMjM4MDAwMDAyRTNCMzE3MzBBNDc0N0UyRjdCOEZGRkZFQjFEOTA4MQorOjEwMjM5MDAwRDFFRjJFOEE4RDQ2MjMyQUVERDFFQUQxRDhFMkZBRjc4MQorOjEwMjNBMDAwRjYwNTAyMDBDMUU4MDIyRThBQTU0QjIzMkVBMzU4MjM2RQorOjEwMjNCMDAwNjEyRUExNTgyM0MzMDgwMDIwMDA4MDAwMDAwMjYwMDk5QworOjEwMjNDMDAwMDgwMDIwMDA4MDAwMDAwMjAwMDgwMDAwMDEwMDAyMDA1OAorOjEwMjNEMDAwMDMwMDA0MDA1MjU2NTc4NUMwNzQwNTNEMDEwOTc2MDM3OQorOjEwMjNFMDAwQjgwMTA5QkY1QjAxRjc0NjM4ODAwMDc0MDNCRkIyMDEzMgorOjEwMjNGMDAwMzNGNjJFM0I4NEI2MjM3NjA0NDY0NkVCRjVGN0U3MkVGQworOjEwMjQwMDAwOEJCQ0MwMjMwM0M3ODNEMjAwRDFFN0Y3RjcyRThBQTQ4MQorOjEwMjQxMDAwQ0EyMzVGNUU1QUMzRTQzRTgwQkVDMzAwMDM3NTBDRjc1NworOjEwMjQyMDAwNDY3QTIwMDA3NDA1MEM4MEU2M0VDMzI0N0ZFNjNFQzM1NgorOjEwMjQzMDAwMjQwMzg4ODZDMzAwOEFFMEU0MTAyNEZDMEFDNEU2MTA2MgorOjEwMjQ0MDAwODA4RUExMDA0MkU4Q0VGRkMzOTA1NjhCRjA4M0U2MDc1MgorOjEwMjQ1MDAwRDFFNjJFRkZBNDU4MjQ5MDY4MjQ2QzI0NzAyNDc0MjRBMAorOjEwMjQ2MDAwNzgyNDg3MjQ4NzI0ODcyNEI0MDBFQjBFQjRDMEVCMEFCOQorOjEwMjQ3MDAwQjQ0MEVCMDZCNDIwRUIwMkI0QTBFNDEwMjQxRjBBQzQ1RAorOjEwMjQ4MDAwRTYxMDgwOEVBMTAwNDI1RUMzOTAzQzAyNzcxMjhBRTA4MworOjEwMjQ5MDAwRTQxMDI0RjNDMEU0MDIwQUM0RTYxMDgwOEVBMTAwNDJENgorOjEwMjRBMDAwQzM5MDhCNUUzODg0QzA3NDFGM0MwMjc0MjA4M0NCMDhCOQorOjEwMjRCMDAwOEI0NjJFM0I0NjNDNzcwQ0U4ODhGQzcyMDdCMDI0RTYzRQorOjEwMjRDMDAwMEE4M0NCMTA4OTVFMzhDMzgzRTNGN0VCRjdGN0MzMTBCOQorOjEwMjREMDAwMDA3NEY1RTg2REZDNzJFQzhBODZDMDAwRTYzOEIwMjMyMworOjEwMjRFMDAwRTYwQUVCRTA4QjVFMzg4QjQ2MkUzQjQ2M0NFNEQ4NzcyMQorOjEwMjRGMDAwMEIyNEZFODBDQjEyRTZEODg5NUUzOEMzMEMwMTgwQ0I1QQorOjEwMjUwMDAwMDJFQkYzNTAzM0RCQzFFODA0MjUwRjBGOEFEODJFOEE4MworOjEwMjUxMDAwODc2NjE3OEFEQzJFOEFBNzY2MTcwOTQ2M0U1OEMzNTA3RAorOjEwMjUyMDAwMzNEQkMxRTgwNDI1MEYwRjhBRDgyRThBODc2NjE3OEEwNQorOjEwMjUzMDAwREMyRThBQTc2NjE3RjdEMDIxNDYzRTU4QzM4QjQ2M0U0RAorOjEwMjU0MDAwMzNEQjhBRDgwQURDMkU4QTg3NzYxN0U2MkM4QUUwRTQwOQorOjEwMjU1MDAwMkEyNDBGMEFDNEU2MkE4QTg2QTUwMDg0RTQ3NTBEQThGOQorOjEwMjU2MDAwODA3NDExMjQ3Rjg4ODZBNTAwRTYwQ0MzQTg4MDc1MDRCQQorOjEwMjU3MDAwMEM4MEVCRjFDMzFFNjAzM0M5MzNEMjMzRjY4RUQ5OEQ5NAorOjEwMjU4MDAwQkVGRDAwNTc4QjA1ODRDMDc0MTY4QkQxNDI4QkZFNEY2NQorOjEwMjU5MDAwNzgwOTM4QTNFNDAwNzQwODRGNzlGNzg4QTJFNDAwNDY2QworOjEwMjVBMDAwNUY4M0M3MDk0MTgzRjkxMDcyRDk4OUI2ODYwMDg5OTY3RAorOjEwMjVCMDAwODQwMDYxMUZDMzUzQzc0NjY2MDAwMDhCNDY2NEE5NDA3MAorOjEwMjVDMDAwMDA3NDBEQjMwMEE5ODAwMDc0MDJCMzdGODg5RUMxMDAxRgorOjEwMjVEMDAwMzJEQkE5MDIwMDc0MDM4MENCNDBBOTAwNDA3NDAzODA2MQorOjEwMjVFMDAwQ0IwMkE5MDA4MDc0MDM4MENCMDFBOTMwMUU3NDAzODA0NAorOjEwMjVGMDAwQ0JCQ0E5MDAyMDc0MDM4MENCMDhBOTA0MDE3NDAzODAxQworOjEwMjYwMDAwQ0IxMEE5MDgwMDc0MDM4MENCMjA4ODlFQzIwMDVCQzM1NgorOjEwMjYxMDAwMDY1MTU3NTAxNjA3OERCRUM0MDBCOTFGMDAzM0MwQUExQgorOjEwMjYyMDAwNDBFMkZDOEI4NjkyMDA4OTg2OEUwMDg5ODY5MDAwNTg1NQorOjEwMjYzMDAwNUY1OTA3QzNFNEQ4QzBFODA0NTMyNTBGMDA4QkQ4MkU5OAorOjEwMjY0MDAwOEE4NzY2MTc4ODg2QTkwMDVBQzMwODg2QUMwMEM2ODZBMgorOjEwMjY1MDAwQkEwMDAxQjAwRUU4RUFFOUMzQUQzNkEzQjQxM0FEMzY1MworOjEwMjY2MDAwQTNCNjEzQUQzNkEzQjgxMzgzRTkwNjM2RjcwNkI2MTMzRgorOjEwMjY3MDAwMEYwMEMzOEE0NjI2Rjc0NjQ4ODAwMDc0MDIwQzEwODg3MworOjEwMjY4MDAwODZCRDAwMzJDMDgzN0UxQTAwNzUwRThCNUU0MDQzODA4QgorOjEwMjY5MDAwRTNGRTNCNUUwODc1MDIwQzAxODM3RTNBMDA3NTBEMUU1OQorOjEwMjZBMDAwQzU1RTE0OEIxRjFGODVEQjc1MDIwQzAyRjc0NjM4MTBDMAorOjEwMjZCMDAwMDA3NDAyMEMwNDhCNUU3QUY3QzMwMjAwNzQwMjBDMDhFQgorOjEwMjZDMDAwRjdDMzA0MDA3NDAyMEMxMEY3QzMwODAwNzQwMjBDMjA1NgorOjEwMjZEMDAwRjdDMzQwMDA3NDAyMEM0MDg4ODZCRjAwQzM5MDZBMDBCNAorOjEwMjZFMDAwMUZDNjA2OTMxMjBEOUMwRUU4RjFFQjkwQjAwMkU2REFERAorOjEwMjZGMDAwRjhDMzMzQzBFNkRBRjhDM0IwMDFFNkQ4RjhDMzMzQzA5NAorOjEwMjcwMDAwRTZEOEY4QzNCMEZGRTg0RUZBRThBMUZBRjhDM0FDNDkzRQorOjEwMjcxMDAwRThBRkZCRjhDMzkwQUM0OUU4MTVGREY4QzM5MEFDNDlBRAorOjEwMjcyMDAwRTg2N0ZERjhDMzkwQUM0OUU4MUZGREY4QzM5MEFDNDlEOQorOjEwMjczMDAwRTYzNEY4QzNBQzQ5RTYzNkY4QzNBQzQ5M0MwMjc3MUYyRgorOjEwMjc0MDAwODRDMDc1MURFNDE0MjRFRkU2MTRFNDEyMjQzRkU2MTI1RAorOjEwMjc1MDAwRTQxNkE4MDQ3NDA5RThFQUY5NzIwNEIwMThFNjBBRjg2NQorOjEwMjc2MDAwQzM4QUUwRTQxNDBDMTBFNjE0RTQxMjBDQzBGNkM0MDFCMQorOjEwMjc3MDAwNzQwMjI0N0ZFNjEyRjhDM0FDNDlFODI1RkRGOEMzOTA0MworOjEwMjc4MDAwQjgwMDQwRTg3REZERThCNEZERThBOEZFQjAwMUU4Qjk3NgorOjEwMjc5MDAwRkVGOEMzOTBCODAwNDBFODg1RkRFOEEwRkRGOEMzOTBCRQorOjEwMjdBMDAwQjgwMDEwRTg1REZERTg5NEZERTg4OEZFQjAwOEU4OTlGRgorOjEwMjdCMDAwRkVGOEMzOTBCODAwMTBFODY1RkRFODgwRkRGOEMzOTAwRQorOjEwMjdDMDAwQjgwMDgwRTgzREZERTg3NEZERTg2OEZFQjAwMkU4NzlGNQorOjEwMjdEMDAwRkVGOEMzOTBCODAwODBFODQ1RkRFODYwRkRGOEMzOTBCRQorOjEwMjdFMDAwQjgwMDIwRTgxREZERTg1NEZERTg0OEZFQjAwNEU4NTlCMworOjEwMjdGMDAwRkVGOEMzOTBCODAwMjBFODI1RkRFODQwRkRGOEMzOTAzRQorOjEwMjgwMDAwQUM0OUU4NDgxNEU0M0MyNEU3MEFDNEU2M0NGOEMzOTAyOQorOjEwMjgxMDAwQjhGQzNCODk0NjdDRTQzQzBDMThFNjNDRjhDM0U0MTI2NworOjEwMjgyMDAwMEMwMkU2MTJGOEMzRTQxMjI0RkRFQkY2RThCNUZDRjg1RQorOjEwMjgzMDAwQzM5MDgzNjYzOEZERjhDM0FDNDlBODAxNzQwNjgzNEU4MworOjEwMjg0MDAwN0EyMEVCMDQ4MzY2N0FERkU4Q0JGQkY4QzM5MDhBODZCNAorOjEwMjg1MDAwQTUwMDBDMDIyNEZCODg4NkE1MDBFNjBDODE0RTI2MDEwQgorOjEwMjg2MDAwMjBBQzQ5MzJFNDg5NDY2RTgzNEU0ODA4NDk0NkY5QzM5NAorOjEwMjg3MDAwOEE4NkE1MDAwQzAyMjRGQjg4ODZBNTAwRTYwQzgxNEUwMgorOjEwMjg4MDAwMjYwMTIwQUNCNDBBRjZFNEVCRDhFOEZBMTNFNDNDMjRDMQorOjEwMjg5MDAwRjgwQUM0RTYzQ0Y4QzM5MEFENDk0OTg5NDY2NEE5MDFFOQorOjEwMjhBMDAwMDA3NDFCOEJEODgzRTNGQTc1MUFBOTA0MDA3NDBGRTQzMworOjEwMjhCMDAwM0UwQzAyRTYzRUI4Mzg0NDg5NDY2MkY4QzM5MEU0M0VENgorOjEwMjhDMDAwMjRGQ0VCRUZFNDNFMjRGQ0U2M0VFOEU4RkNCOEFBNDAzQQorOjEwMjhEMDAwRUJFNkU4NkVGODcyMDVCMDE4RTYwQUY4QzM5MEFDNDk2QQorOjEwMjhFMDAwRThDRkY5RjhDMzkwQUM0OUU4Q0ZGOUY4QzM5MEU4NjhBRAorOjEwMjhGMDAwRkQ3NTA2MzJDMEU2REFGOEMzQjAwMkU2REEzNkEwQjRGNworOjEwMjkwMDAwMTMyNDEwMzQxMEU4MTYwMTM2QTFCNDEzQTkwMTAwNzQ4MQorOjEwMjkxMDAwMDVFOEZDRkVFQjBFQTkwMjAwNzQwNDMyQzBFQjAyQjAyNQorOjEwMjkyMDAwMDFFOERFRkUzNkExQjQxM0U4QjUxM0U0M0MyNEY4MEE0RQorOjEwMjkzMDAwQzRFNjNDMzZBMUI0MTNDMUU4MDUyNTAxMDBFOEZBRkU1RgorOjEwMjk0MDAwMzZBMEI1MTMyNDEwRTg1OUZCMzJDMDM2OEEyNkI1MTNEOQorOjEwMjk1MDAwRjZDNDA0NzQwOUZFQzBGNkM0MDg3NDAyRkVDMEU4REJDNQorOjEwMjk2MDAwRkQzNkExQjYxMzI1MEYwMEU4NTdGOTM2QTFCNjEzQzFGRAorOjEwMjk3MDAwRTgwNDI1MDMwMEU4QjhGQTM2QTFCNjEzQzFFODA1MjUzNgorOjEwMjk4MDAwMDIwMEU4MDVGQjM2QTFCNjEzRjZDNDAxNzUwNDMyQzA5NworOjEwMjk5MDAwRUIwOTgwRTQwMkQwRUNCMDAyMkFDNEU4QUNGQTM2RjZDNworOjEwMjlBMDAwMDZCNzEzNDA3NDA1RTg4M0ZFRUIwM0U4ODRGRTM2RjZCMQorOjEwMjlCMDAwMDZCNzEzMjA3NDA1RTg2NUZFRUIwM0U4NjhGRUY4QzM2QworOjEwMjlDMDAwRTQxMjBDMDFFNjEyRjhDM0U0MTIyNEZFRUJGNkU0MTQ2MAorOjEwMjlEMDAwMjRGMDBDMDVFNjE0RTQyQTI0RjAwQzA2RTYyQUY4QzNEOQorOjEwMjlFMDAwRTQyQTI0RjBFNjJBRTQxNDI0RjAwQzA3RTYxNEY4QzNFMQorOjEwMjlGMDAwQUQ0OTQ5RTg2NEY5ODk4NjhFMDBGOEMzQUQ0OTQ5RThENAorOjEwMkEwMDAwNThGOTg5ODY5MDAwRjhDMzgzNEUyNjA0RThBOEY3RjhBMQorOjEwMkExMDAwQzM5MDgzNjYyNkZCRTg5RUY3RjhDMzkwQUM0OTg0QzA1OAorOjEwMkEyMDAwNzUwREU0MTAyNEVGRTYxMDgwOEVBMTAwNDJGOEMzRTQ5NworOjEwMkEzMDAwMTAwQzEwRUJGMTkwQUM0OTNDMDI3NjAyMzJDMEMwRTBDMQorOjEwMkE0MDAwMDRBODIwNzQwMjBDMDgyNDE4OEFFMEU0MTIyNEU3MEE3RgorOjEwMkE1MDAwQzRFNjEyODA4RUExMDA0NEY4QzNBQzQ5ODg4NkMwMDA0OQorOjEwMkE2MDAwRjhDM0FDNDlFNjNBRjhDM0FDNDk4NEMwNzQwOEU0MTIzMAorOjEwMkE3MDAwMEMwNEU2MTJGOEMzRTQxMjI0RkJFQkY2QUM0OUU4RDZFQQorOjEwMkE4MDAwRjY3MzAzRTgyN0Y3RjhDM0U0MTJBODAyNzQwNDI0RkRFMAorOjEwMkE5MDAwRTYxMkI4RjAwMEU4ODdGQTgxNjYyNkZGRjNFODU3RjdGOAorOjEwMkFBMDAwRTg5QUZBRjhDMzkwQjg4MDAwRTg1N0ZBODA0RTI3MDhGMQorOjEwMkFCMDAwRTg0NEY3RTg4N0ZBRjhDM0I4ODAwMEU4NjFGQTgxNjY2RAorOjEwMkFDMDAwMjZGRkY3RTgzMUY3RTg3NEZBRjhDMzkwQjgxMDAwRTg4OQorOjEwMkFEMDAwMzFGQTgwNEUyNzA0RTgxRUY3RTg2MUZBRjhDM0I4MTAwRgorOjEwMkFFMDAwMDBFODNCRkE4MTY2MjZGRkZCRTgwQkY3RTg0RUZBRjhCMAorOjEwMkFGMDAwQzM5MDMzQzBBQzQ5M0MwMTczMDRCMDAxRUIwNjNDMENGRAorOjEwMkIwMDAwNzYwMkIwMEM4OTQ2MUNGOEMzOTA4MTRFMjYwMDIwOEFCQworOjEwMkIxMDAwODZBNTAwMEMwMjI0RkI4ODg2QTUwMEU2MEM4MzRFMjZDMQorOjEwMkIyMDAwMDFGOEMzOTA4MTRFMjYwMDQwOEE4NkE1MDAwQzAyODhEOQorOjEwMkIzMDAwODZBNTAwRTYwQ0Y4QzM5MEFDNDk1MEU4MDVGNjU4NzIzQgorOjEwMkI0MDAwMDhFNjM4QjAyM0U2MEFGOEMzRjlDMzkwQUM1MEFERTgwNAorOjEwMkI1MDAwODJGODVBRjZDMjAxNzQxMjM5ODY5NjAwNzQwQzg5ODY3RQorOjEwMkI2MDAwOTYwMEU2RjA4NkUwRTZGODg2RTBGNkMyMDI3NDEwMzlEOAorOjEwMkI3MDAwODY5NDAwNzQwQTg5ODY5NDAwRTZFNDg2RTBFNkVDODM5NQorOjEwMkI4MDAwRTkwM0MzOTBFNDE2ODg4NkJDMDBFOEU2RkEzM0RCRTQ4OAorOjEwMkI5MDAwMENBODA2NzQwMzgwQ0IwMUE4MTA3NDAzODBDQjAyQTg5NAorOjEwMkJBMDAwODA3NDAzODBDQjA0RTQxMjhBRTAyNDE4MEFEOEU0REFBMworOjEwMkJCMDAwRjZDNDAyNzQwN0E4NDA3NTAzODBDQjIwQTgwMjc1MDlFQgorOjEwMkJDMDAwRTQyQUE4MEY3NDAzODBDQjQwRjc0NjM4MDIwMDc0MDk0QQorOjEwMkJEMDAwRTREOEE4MDE3NTAzODBDQjgwODg5RUJFMDBGRTg2QjQzMQorOjEwMkJFMDAwMDBCMDBBRTg1Q0U0RjhDM0FDNDkzQzAyNzQ0MTc3MUZDQQorOjEwMkJGMDAwNTBFODRGRjU1ODcyMEM4NEMwNzQwQUIwMTJFNjBBODA4RgorOjEwMkMwMDAwNEUzODAxRjhDM0IwMTFFNjBBODA2NjM4RkVGOEMzOEI2RgorOjEwMkMxMDAwNDYzODI1RkZGNzg5NDYzOEE5MDAwNDc1RTY4QTg2QTU1NworOjEwMkMyMDAwMDBBODEwNzVERTBDMTA4ODg2QTUwMEU2MENGOEMzODE5QworOjEwMkMzMDAwNEUzODAwMDg4QTg2QTUwMEE4MTA3NEM3MjRFRkVCRTc3OQorOjEwMkM0MDAwQUQ0OTQ5M0MwMTcyMTEzQzBDNzcwRDUwOEFFMEU0MTQwNworOjEwMkM1MDAwMjVGMDBGMEFDNEU2MTQ1ODhBQzQ4NEMwNzQwMkU2NDIwMAorOjEwMkM2MDAwRjhDM0U4Q0ZGOUZFODZCOTAwQjAwRUU4RDRFM0Y4QzNBNAorOjEwMkM3MDAwM0E4NkFGMDA3NDFGODg4NkFGMDA4QUUwODBDMjA2QjAzMworOjEwMkM4MDAwQkZFRTgwRUEwMjhBQzRFRThBODZBODAwODBDMjAyRUUwNQorOjEwMkM5MDAwODBFQTA2OEFDNEMzOEI0NjNFODVDMDhBODZBNTAwNzQzNgorOjEwMkNBMDAwMTJBODA4NzUwRDBDMDg4ODg2QTUwMDgwQzIwMkVFODA2NworOjEwMkNCMDAwRUEwMkMzQTgwODc0RkIyNEY3RUJFQzhCNDYyNjg0QzAxOQorOjEwMkNDMDAwNzQxNjhBODZBNTAwQTgwMjc0MEQyNEZEODg4NkE1MDBDNgorOjEwMkNEMDAwODNDMjAyRUU4M0VBMDJDMzhBODZBNTAwQTgwMjc1RjdDMgorOjEwMkNFMDAwMEMwMkVCRTg1MjgzQzIwQ0VDQzBFODA0ODg4NkE5MDAxMQorOjEwMkNGMDAwOEI1RTI2ODBFMzNGRjZDNzA0NzQwN0E4MDg3NTAzODAzRgorOjEwMkQwMDAwQ0I0MEY2QzcwODc0MDdBODAyNzUwMzgwQ0I4MDg4NUVBNQorOjEwMkQxMDAwMjY4QTg2QTUwMDg0REI3NDEwQTgwMjc0MEEyNEZEODgyNAorOjEwMkQyMDAwODZBNTAwODNFQTBBRUU1QUMzQTgwMjc1RkEwQzAyRUJFNAorOjEwMkQzMDAwRUU5MEZGRkYwMDQ4MDAzMEJBMjBDNDFBMDAxODAwMTJCRAorOjEwMkQ0MDAwMDAwQzAwMDYwMDAzMDAwMjgwMDFDMDAwNjAwMDMwMDA5QgorOjEwMkQ1MDAwMTgwMENEMDEwMDAxODAwMDEwMDAxMDAwMEUwMDBDMDBEMgorOjEwMkQ2MDAwMDgwMDAwMDAwMDAwMDYwMDA0MDAwMzAwMDIwMDAxMDA0QgorOjEwMkQ3MDAwNTI1MTU2M0MxRTc3NDc5ODhCRjA4QTgyQzQwMDMyRTQ0OQorOjEwMkQ4MDAwODNGRTE4NzQzRDgzRkUxOTc0M0U4M0ZFMUU3NzJGRDE5NworOjEwMkQ5MDAwRTYyRThCOEMzMjJEM0I4RTk0MDA3NDIyODk4RTk0MDAwQgorOjEwMkRBMDAwODNDMjA2OEE4NkE4MDA4QUUwMEM4MEVFODNFQTA2OEEzRgorOjEwMkRCMDAwQzFFRTgzQzIwMjhBQzVFRTgzQzIwNDhBQzRFRTVFNTlBNAorOjEwMkRDMDAwNUFDMzhCOEU4RTAwRUJDRThCOEU5MDAwRUJDODUyNTE4NworOjEwMkREMDAwM0QwNTAwNzcwM0I4MDUwMDhCQzhCQTAyMDBCODAwRDBFMworOjEwMkRFMDAwRjdGMTA1MDEwMEQxRTg1OTVBQzM4QjQ2N0FBODIwNzQzRgorOjEwMkRGMDAwMEI4MEJFQzMwMDAzNzUwNDBDMDFFQjAyMjRGRTg5NDY2MAorOjEwMkUwMDAwN0FDMzI0MDM4ODg2QzMwMDhBQTZBODAwOEFEQzgwRTRFQgorOjEwMkUxMDAwRkMwQUM0M0FDMzc0MEI4ODg2QTgwMDgzQzIwNkVFODNGQQorOjEwMkUyMDAwRUEwNkU4QzVGRkMzMDAwODE4MzgyODkwM0MwNDc3MjM1OQorOjEwMkUzMDAwMzJFNDhCRDgyRThBODcyNjJFOEFBNkE4MDA4QURDODBDOAorOjEwMkU0MDAwRTRDNzBBQzQzQUMzNzQwQjg4ODZBODAwODNDMjA2RUU5RQorOjEwMkU1MDAwODNFQTA2QzM4NEMwNzQwMkIwMDQ4QUE2QTgwMDhBREM5MAorOjEwMkU2MDAwODBFNEZCMEFDNDNBQzM3NDBCODg4NkE4MDA4M0MyMDZCOAorOjEwMkU3MDAwRUU4M0VBMDZDMzkwOEI1RTM4ODRDMDc0MzQzQzAyNzRERgorOjEwMkU4MDAwM0I4QTg2QUYwMDBDMDRFOEU2RkQ4QjQ2MkUzQjQ2M0NCMQorOjEwMkU5MDAwNzcxQkY3QzMwMDA0NzUxNTgxQ0IwMDA0ODNDMjAyOEEzNworOjEwMkVBMDAwODZBNTAwMjRGQTg4ODZBNTAwRUU4M0VBMDI4OTVFMzhBQQorOjEwMkVCMDAwQzM4QTg2QUYwMDI0RkJFOEI2RkRFQkYxRjdDMzEwMDAzMAorOjEwMkVDMDAwNzRFRkVCRUQ4M0MyMENFQzgzRUEwQ0MwRTgwNDg4ODY1NworOjEwMkVEMDAwQTkwMEMzOTA4QTg2QTcwMDBDMDE4ODg2QTcwMDhCREExOAorOjEwMkVFMDAwODBDMjA4RUU4QkQzRjhDMzhBODZBNzAwMjRGRUVCRUFFMworOjEwMkVGMDAwOEE4NkE3MDAwQzAyRUJFMjhBODZBNzAwMjRGREVCREFBMworOjEwMkYwMDAwQjBGRkU4NTJGMkU4OTdGMkY4QzNBQzQ5RTg2MUZFRjg4NgorOjEwMkYxMDAwQzM5MEFDNDlFOEVCRkVGOEMzOTBBQzQ5RTgzNUZGRjg0NAorOjEwMkYyMDAwQzM5MEFDNDlFODA1RkZGOEMzOTA1MjgzQzIwNkIwQkYxNgorOjEwMkYzMDAwRUU1MjgzQzIwMkFDNDlFRTVBOEE4NkE4MDBFRTVBRjhENQorOjEwMkY0MDAwQzM5MDUyODNDMjA2QjBCRkVFNTI4M0MyMDZFQkU2OTAzNgorOjEwMkY1MDAwQUM0OTNDMDI3NzBEODRDMDc1MEI4QTg2QUYwMDI0RkQxNgorOjEwMkY2MDAwRTgwREZERjhDMzUwOEE4NkFGMDAwQzAyRTgwMUZENUI1NgorOjEwMkY3MDAwODNDMjA4OEE4NkE3MDBGNkMzMDE3NDBDMjRERjg4ODYwMgorOjEwMkY4MDAwQTcwMEVFODNFQTA4RjhDMzBDMjBFQkYyQUM0OUU4RTVCMQorOjEwMkY5MDAwRkVGOEMzOTBCODAwNDBFODY5RjVFOEY5RkNFODI0RkZDMgorOjEwMkZBMDAwQjAwMUU4QTVGNkY4QzM5MEI4MDA0MEU4NzFGNUU4RTU4RgorOjEwMkZCMDAwRkNGOEMzOTBCODAwMTBFODQ5RjVFOEQ5RkNFODA0RkYzNAorOjEwMkZDMDAwQjAwOEU4ODVGNkY4QzM5MEI4MDAxMEU4NTFGNUU4QzVGOAorOjEwMkZEMDAwRkNGOEMzOTBCODAwODBFODI5RjVFOEI5RkNFOEU0RkUwNQorOjEwMkZFMDAwQjAwMkU4NjVGNkY4QzM5MEI4MDA4MEU4MzFGNUU4QTVDRQorOjEwMkZGMDAwRkNGOEMzOTBCODAwMjBFODA5RjVFODk5RkNFOEM0RkVBNQorOjEwMzAwMDAwQjAwNEU4NDVGNkY4QzM5MEI4MDAyMEU4MTFGNUU4ODU2QgorOjEwMzAxMDAwRkNGOEMzOTBBQzQ5RTgzNDBDRjhDMzkwQjhGQzNCODk4OQorOjEwMzAyMDAwNDY3Q0Y4QzM4QTg2QUYwMDBDODBFODQzRkNGOEMzOTA2NgorOjEwMzAzMDAwOEE4NkFGMDAyNDdGRUJGMjhBODZBRjAwMEM0MEU4MkYyRgorOjEwMzA0MDAwRkNGOEMzOTA4QTg2QUYwMDI0QkZFQkYyQUM0OUE4MDExQworOjEwMzA1MDAwNzQwNzgzNEU3QTIwRUIwNTkwODM2NjdBREZFODhBRkQ1OQorOjEwMzA2MDAwRjhDMzgzQzIwNjhBODZBODAwMEM0MDg4ODZBODAwRUVCMgorOjEwMzA3MDAwODNFQTA2QUM0OTMyRTQ4OTQ2NkU4MzRFMjYwMTgzNEVDQworOjEwMzA4MDAwNDgwOEIwMDZFOEJCREY0OTQ2RjlDMzkwODNDMjA2OEEwOAorOjEwMzA5MDAwODZBODAwMEM0MDg4ODZBODAwRUU4M0VBMDZBQ0I0MEEzNQorOjEwMzBBMDAwRjZFNEVCRDBFOEUwMEJGOEMzOTBBRDQ5NDk4OTQ2NjRGQgorOjEwMzBCMDAwQTkwMTAwNzQxOThCRDg4M0UzRkE3NTBBQTkwNDAwNzQ3NgorOjEwMzBDMDAwMERCOEUyM0ZFQjBCRThFQ0Y0QjhBQTQwRUIwM0I4MzhEQworOjEwMzBEMDAwNDQ4OTQ2NjJGOEMzOEE4NkFGMDBBODAyNzQwQTI0RkRCOAorOjEwMzBFMDAwRTg4REZCMEMwMkU4ODhGQkY4QzNBQzQ5RTg4MUZDRjhFQQorOjEwMzBGMDAwQzM5MEFDNDlFODc5RkNGOEMzOTBFODVDRjU3NTA1RTg0NQorOjEwMzEwMDAwRTZGREY4QzNFOENERkQzNkEwQjQxMzI0MTAzNDEwRTg3MgorOjEwMzExMDAwMjYwMTM2QTFCNDEzQTkwMTAwNzQwNUU4RkVGRUVCMEVFQQorOjEwMzEyMDAwQTkwMjAwNzQwNDMyQzBFQjAyQjAwMUU4RThGRTM2QTE0NworOjEwMzEzMDAwQjQxM0U4QUIwQjM2QTFCNDEzQzFFODA1MjUwMTAwRThEMAorOjEwMzE0MDAwMENGRjM2QTBCNTEzMjQxMEU4MkJGRDMyQzAzNjhBMjZCQQorOjEwMzE1MDAwQjUxM0Y2QzQwNDc0MDlGRUMwRjZDNDA4NzQwMkZFQzBCOAorOjEwMzE2MDAwRThFRkZEMzZBMUI2MTMyNTBGMDBFODAzRkMzNkExQjY0MworOjEwMzE3MDAwMTNDMUU4MDQyNTAzMDBFODg4RkMzNkExQjYxM0MxRThCMgorOjEwMzE4MDAwMDUyNTAyMDBFOENERkMzNkExQjYxM0Y2QzQwMTc1MDQ4RQorOjEwMzE5MDAwMzJDMEVCMDk4MEU0MDJEMEVDQjAwMjJBQzRFODhDRkMxNworOjEwMzFBMDAwMzZGNjA2QjcxMzQwNzQwNUU4OERGRUVCMDNFODk0RkU4RgorOjEwMzFCMDAwMzZGNjA2QjcxMzIwNzQwNUU4NjlGRUVCMDNFODcwRkVFNworOjEwMzFDMDAwRjhDM0Y4QzM4QjQ2MzhBOTA0MDA3NTIzMEQwNDAwODlBMQorOjEwMzFEMDAwNDYzODgzQzIwODhCNDYyRTNCNDYzQzczMTQ4MzRFMzhEOAorOjEwMzFFMDAwMTA4QTg2QTcwMDI0RkU4ODg2QTcwMEVFODNFQTA4RjhFNgorOjEwMzFGMDAwQzM4QTg2QTcwMDBDMDFFQkVFOTA4QjQ2MzhBOTA0MDAyOQorOjEwMzIwMDAwNzQwNjI1RkJGRjg5NDYzOEY4QzNBRDQ5NDlFOEJFRkI4MworOjEwMzIxMDAwODk4NjhFMDBGOEMzQUQ0OTQ5RThCMkZCODk4NjkwMDBFMworOjEwMzIyMDAwRjhDMzgzNEUyNjA0RTg5MkZBRjhDMzkwODM2NjI2RkIxRgorOjEwMzIzMDAwRTg4OEZBRjhDMzkwQUM0OTg0QzA3NTA3ODA4RUEzMDA3MworOjEwMzI0MDAwMDRGOEMzODBBNkEzMDBGQkY4QzNBQzQ5ODNDMjA4M0NDMgorOjEwMzI1MDAwMDI3NjAyMzJDMDNDMDE3NDEyNzcwQjhBODZBNzAwMjRFMgorOjEwMzI2MDAwRUY4ODg2QTcwMEVFODNFQTA4RjhDMzhBODZBNzAwMENEOQorOjEwMzI3MDAwMTBFQkVFOTA1MjgzQzIwNkIwQkZFRTUyODNDMjA0QUM5NAorOjEwMzI4MDAwNDlFRTVBOEE4NkE4MDBFRTVBRjhDMzkwNTI4M0MyMDZDNQorOjEwMzI5MDAwQjBCRkVFNTI4M0MyMDhFQkU2OTBBQzQ5RjhDM0FDNDkyQworOjEwMzJBMDAwRThCNEVFNzMwM0U4RjdFRUY4QzM4QTg2QUYwMDI0N0YzNAorOjEwMzJCMDAwRThCREY5QjhGMDAwRTg2NkYyODE2NjI2RkZGM0U4MjM3RQorOjEwMzJDMDAwRkFFOEQyRjlGOEMzQjg4MDAwRTgzN0YyODA0RTI3MDg1MAorOjEwMzJEMDAwRTgxMUZBRThDMEY5RjhDM0I4ODAwMEU4NDFGMjgxNjY2NQorOjEwMzJFMDAwMjZGRkY3RThGRUY5RThBREY5RjhDMzkwQjgxMDAwRTg1QQorOjEwMzJGMDAwMTFGMjgwNEUyNzA0RThFQkY5RTg5QUY5RjhDM0I4MTAwOAorOjEwMzMwMDAwMDBFOEZGRjE4MTY2MjZGRkZCRThEOEY5RjhDM0FDNDk3NQorOjEwMzMxMDAwRjhDMzgzQzIwNjhBODZBODAwMEM0MDg4ODZBODAwRUVGRgorOjEwMzMyMDAwODNFQTA2RjhDMzkwODNDMjA2OEE4NkE4MDAyNEJGRUIwRQorOjEwMzMzMDAwRUE5MEFDNDk4QUUwODBDMjBBRUM4MEVBMEFBODIwNzRDQworOjEwMzM0MDAwMDU4QUM0RUVGOEMzMDY1MTU3OEI0RTI0RTMzNDQ5ODlFRAorOjEwMzM1MDAwNEUyNEZGNDYxQThFNDYwMjhCN0UyMjhBQzRBQTg5N0U5QworOjEwMzM2MDAwMjI4QjQ2MjYyNEZEODk0NjI2NzUyOThBODZBNTAwQTgzMworOjEwMzM3MDAwMDI3NTIxODBDMjAyMEMwMjg4ODZBNTAwRUU4MEVBMDI1NgorOjEwMzM4MDAwRUIxMkM0N0UwMDNCN0UxRTc2MEE0RjI2ODgyNTg5N0U3RQorOjEwMzM5MDAwMDBGRjQ2MUE1RjU5MDdGOEMzOTBBQ0FEODNFOTAzODU3NworOjEwMzNBMDAwQzA3NDA1M0QwMDIwNzIwNUI4RkZGRkVCMDNDMUUwMDNDOAorOjEwMzNCMDAwM0I4Njk0MDA3NDI2ODk4Njk0MDA4QkQ4NTI4M0MyMDY3QgorOjEwMzNDMDAwOEE4NkE4MDA4QUUwMEM4MEVFODNFQTA2OEFDM0VFODMzMAorOjEwMzNEMDAwQzIwMjhBQzdFRTgzQzIwNDhBQzRFRTVBRjhDM0IwODgxOAorOjEwMzNFMDAwODg4NkJDMDBFODhDRjIzM0RCOEE4NkE1MDBBODAyNzRDQworOjEwMzNGMDAwMDM4MENCMDFBODA1NzQwMzgwQ0IwMkE4MDg3NDAzODA2NgorOjEwMzQwMDAwQ0IwNEY2ODZBNzAwMTA3NDAzODBDQjEwOEE4NkE5MDAyRgorOjEwMzQxMDAwRjZDMzA0NzUwQTgzQzIwQ0VDODNFQTBDQzBFODA0OEE4NAorOjEwMzQyMDAwRTA4QTg2QUYwMEE4ODA3NDA4RjZDNDAxNzUwMzgwQ0JEQgorOjEwMzQzMDAwMjBGNjg2QTcwMDAyNzUwQUY3NDYzODA0MDA3NDAzODA1OAorOjEwMzQ0MDAwQ0I0MDg4OUVCRTAwRkU4NkI0MDBCMDBBRThGM0RCRjhFRAorOjEwMzQ1MDAwQzNGRTg2QjQwMEIwMEFFOEU4REJGOEMzQUM0OTNDMDIxRQorOjEwMzQ2MDAwNzQzNzc3MTA4NEMwNzQwNjgwNEUzODAxRjhDMzgwNjZDNAorOjEwMzQ3MDAwMzhGRUY4QzM4QjQ2MzgyNUZGRjc4OTQ2MzhBOTAwMDQ4MworOjEwMzQ4MDAwNzVFQThBODZBNTAwQTgwMTc1RTIwQzA1ODNDMjAyODg0OAorOjEwMzQ5MDAwODZBNTAwRUU4M0VBMDJGOEMzODE0RTM4MDAwODhBODZDQQorOjEwMzRBMDAwQTUwMEE4MDE3NEM2MjRGQUVCRTJBRDQ5NDlGOEMzOTAxRgorOjEwMzRCMDAwRTgxMUZBRkU4NkI5MDBCMDBFRTg4NkRCRjhDM0IwRkY2QgorOjEwMzRDMDAwRThCRkVDRjhDMzkwODM2NjdBRkJCMDAwRTg3M0RCRjhFMgorOjEwMzREMDAwQzM5MEFDNDlFODUzRDk3MjExMzY4ODFFMUEwMTM2QTA0MAorOjEwMzRFMDAwOEUxMjBBQzM1MkJBMDAwMUVFNUFGOEMzQUM0OTMyRTQ1NAorOjEwMzRGMDAwMzZBMzg2MTIwNTA2MDAzNjhCMUU4ODEyMkJEODM2ODkxNQorOjEwMzUwMDAwMUU4QTEyRjhDMzkwQUQ4QkQ4QUQ4M0U5MDQwM0MzMkI5OAorOjEwMzUxMDAwNDY3Njg5NDY3OEY3NDY3QTAyMDA3NDBBODM2NjdBRkQxMQorOjEwMzUyMDAwQjgwMDAwRTgxQ0RCRjhDMzA2MTYwN0FDNDkyNTBGMDBGRAorOjEwMzUzMDAwNkJDMDA5OERCRUZEMDAwM0Y4QUM0OTI1MEYwMEFBODVCQworOjEwMzU0MDAwQzA3NDA4MkJDODUxOEJDOEYzQTQ1OUU4MjdGMEU4NDQ4RAorOjEwMzU1MDAwMDMwN0Y4QzMzM0MwQUM0OTM2QTNCMjEzMzZBM0IwMTM4NAorOjEwMzU2MDAwRjhDMzgzNjY3QUVGRTgyQzAzRjhDMzkwODM0RTdBMTA5MQorOjEwMzU3MDAwRUJGNEU4OUJGMEY4QzM5MEFEM0MxOTc3MEUzQzE5Nzc1QgorOjEwMzU4MDAwMEE4QkY4ODFFN0ZGMDA4OEE2QzQwMEY4QzM5MDgzNEUzOQorOjEwMzU5MDAwMjYyMEFDNDkzMkU0RDFFMDhCRDhDMUUzMDIwM0MzODlEMQorOjEwMzVBMDAwNDY2RTgzNEU0ODA0QjAwNkU4OTdEQTQ5NDZGOUMzOTA2MAorOjEwMzVCMDAwRkU4NkIzMDBCMDBBRTg4OURBRjhDMzkwMzNDMEFDNDk5QworOjEwMzVDMDAwNkJDMDBBODk4NjhBMDBGOEMzOTBBQzQ5MzJFNDNEMEE5MAorOjEwMzVEMDAwMDA3NzA1QjgwQTAwRUIwODNENUEwMDcyMDNCODVBMDA5QworOjEwMzVFMDAwNTFGN0Q4MDU2NDAwOEJDODhCNDY0NEY3RTFCOTY0MDBGNQorOjEwMzVGMDAwRjdGMTg5NDY0NjU5RjhDM0FDNDlFODg1RUJGOEMzOTAyMgorOjEwMzYwMDAwQUM0OTg0QzA3NTA3ODE2NjM4RkZGREY4QzM4MTRFMzgyOAorOjEwMzYxMDAwMDAwMkY3NDYzODQwMDA3NTA4OEE4NkE5MDA4ODg2QUEwNQorOjEwMzYyMDAwMDBGOEMzOTA1MTU2RTg3RjBDNUU1OUY4QzM5MEZFODZBRgorOjEwMzYzMDAwQjYwMEIwMEFFODBCREFGOEMzOTBGRTg2QjcwMEIwMEEwRAorOjEwMzY0MDAwRThGRkQ5RjhDMzkwRkU4NkI4MDBCMDBBRThGM0Q5RjhDRAorOjEwMzY1MDAwQzM5MDAwOTA1MTU1QUMyRUEyNTIzNjMzQzlBRDhCRjlCMAorOjEwMzY2MDAwQzFFNzA1QTkwMTAwNzQyMzJFOEJBRDQ0MDA4MzdFMDhCOQorOjEwMzY3MDAwMDA3NDE4MkU4MDNFNTIzNjAxNzQwOTYwQjAwNEU4QkIxNQorOjEwMzY4MDAwMEM2MUVCMDc2MEIwRkJFOEVDMEM2MTQ3NDdEMUU4NzVEMworOjEwMzY5MDAwRDI0MTgzRjkwNDcyQzY1RDU5ODNFOTA1Rjc0NjM4NDA4MworOjEwMzZBMDAwMDA3NDA1RTg4N0VBRjhDM0U4OERFQUY4QzM5MDM2QzZFNworOjEwMzZCMDAwMDZDODEzMDFGOEMzMzNDMEFDNDkzNkEzODAxMkFDNDkyNQorOjEwMzZDMDAwMzYyQjA2ODgxMkY3RDgzNkEzODIxMkY4QzM5MERFMjY2RQorOjEwMzZEMDAwREUyNkVDMjZGMjI2RjgyNkZFMjYwNDI3MEUyNzE2MjdERAorOjEwMzZFMDAwMUUyNzI2MjcyRTI3MzQyN0JFMzRDNjM0RDIzNDNBMjc0NQorOjEwMzZGMDAwNzgyNzgwMjc5NDI3QTAyN0I0MjdDMDI3RDQyN0UwMjczRQorOjEwMzcwMDAwRjQyNzAwMjgxMDI4RUMzNERFMjYxRTI4MjYyODJDMjgzMgorOjEwMzcxMDAwMzIyODM4Mjg0RTI4OEEyODA2MzUyODM1OTgyOEJFMjg4OQorOjEwMzcyMDAwRDIyOERFMjhFNjI4NTQzNTYyMzU2QzM1RUUyOEMwMjlDQgorOjEwMzczMDAwQzgyOUNFMjlFMDI5NzIzNTc4MzVGMDI5RkMyOThFMzU0MworOjEwMzc0MDAwMDgyQTEyMkExQzJBQjAzNTM2MkFCQzM1NUEyQTYyMkE3RgorOjEwMzc1MDAwNjgyQUNBMzU3QzJBRjgzNTg4MkFBNjJBQjgyQUNDMkFBQgorOjEwMzc2MDAwREUyQUYyMkEwMDM2MEEyQjI0MkIyNDM2MzgyQjRDMkI0NworOjEwMzc3MDAwODQyQjJFMzYzQTM2NDYzNjU0MzZFODJCQUUzNjQwMkM1RAorOjEwMzc4MDAwNjIyQ0I2MzY3MDI4REUyNkRFMjZENDJFRTgyRUYwMkVFOQorOjEwMzc5MDAwRjgyRTAwMkYwQTJGMTIyRjFBMkYyMjJGMkEyRjQyMkZGNgorOjEwMzdBMDAwQkUzNEM2MzREMjM0NTAyRjhDMkY5NDJGQTgyRkI0MkY3MAorOjEwMzdCMDAwQzgyRkQ0MkZFODJGRjQyRjA4MzAxNDMwMUMzMEVDMzRFRAorOjEwMzdDMDAwREUyNjI0MzAzMDMwMzgzMDQ0MzA0QzMwNjIzMEE0MzA4MworOjEwMzdEMDAwMDYzNTI4MzVBQTMwQ0UzMEQ2MzBFQTMwRjIzMDU0MzVBRQorOjEwMzdFMDAwNjIzNTZDMzVGQTMwQzIzMUMyMzFDNDMxRkEzMTcyMzVDQQorOjEwMzdGMDAwNzgzNTBBMzIxNjMyOEUzNTIyMzIyQzMyMzYzMkIwMzVENgorOjEwMzgwMDAwNEEzMkJDMzU3NDMyOEMzMjlBMzJDQTM1OUUzMkY4MzUxRgorOjEwMzgxMDAwQUEzMkM2MzJEODMyRUMzMkZFMzIwRTMzMDAzNjEyMzNDMAorOjEwMzgyMDAwMjYzMzI0MzYzMjMzOUEzM0RFMzMyRTM2M0EzNjQ2MzY1MgorOjEwMzgzMDAwNTQzNjVDMzRBRTM2QUEzNEIwMzRCNjM2OEMzMEUzMjgxNQorOjEwMzg0MDAwRjc0NjM4NDAwMDc1MzJFOEUzRTgzM0MwQUM0OTNENUJFOQorOjEwMzg1MDAwMDA3NzE5OEJEOEQxRTMyRUZGOTdDRTM2NzIwQjg1QzkyRQorOjEwMzg2MDAwNzVFODhCNDY0OEU4MUEwQ0MzNEU0MUMzNkEwMDFGQzY3MAorOjEwMzg3MDAwMDY5MzEyMEM5QzBFRTg2M0RBRThCQ0U4MzNDMEFDNDk0RQorOjEwMzg4MDAwM0Q1QjAwNzdFNzhCRDhEMUUzMkVGRjk3ODYzNzcyRDk1RgorOjEwMzg5MDAwODVDOTc1RThDM0Y3NDY3QTEwMDA3NTBGODNCRTg0MDBBQQorOjEwMzhBMDAwMDA3NDA4Qjg0ODNBODk4NjgwMDBDMzgxQkU4MDAwRUM2NQorOjEwMzhCMDAwM0M3NEY3ODNCRTg4MDAwMDc1MDVCOEVDM0NFQkU3Rjc3NQorOjEwMzhDMDAwNDY3QTA4MDA3NTQwMUU2MDhCOEU4ODAwM0I0RTc0NzdFOAorOjEwMzhEMDAwMzMzQjRFNzg3NzJFQzQ3RTEwOEJERjI2MDMzRDQ3NDc1RgorOjEwMzhFMDAwMzNDMDhFRDg4REI2RjQwMDhCQzFGNzQ2N0EwMTAwNzVDRgorOjEwMzhGMDAwMURGM0E0MjYwMTA3Mjk0Njc4MDE0Njc2Mjk0Njc0QjBBRgorOjEwMzkwMDAwMENFODNFRDc2MTFGQzc4Njg4MDAwMDAwRUJBQ0UzRTNGQworOjEwMzkxMDAwNTA5MEFDMjQ3RkFBRTJGQTU4RUJEODkwOEI4RTg4MDBBNgorOjEwMzkyMDAwRTM0NjhCOUU4QTAwODVEQjc0M0VCQTUwRkZFRDJCODYwMgorOjEwMzkzMDAwODIwMDNCQzM3MjM3OERCNkY0MDBDNDdFMTA4QkRGMjY0NQorOjEwMzk0MDAwMDMzRDQ3NDc4QkMxMTYxRkY3NDY3QTAxMDA3NTI0RjNFNAorOjEwMzk1MDAwQTQyNjAxMDcyOTQ2NzgwMTQ2NzYyOTQ2NzRDNzg2ODgzOQorOjEwMzk2MDAwMDAwMDAwQjAwQ0U4REFENjgzNjY3QUY3QzNCMDAwRTg0RQorOjEwMzk3MDAwRDBENkMzRTNEQzUwQUMyNDdGQUFFMkZBNThFQkQyOTA1NQorOjEwMzk4MDAwMUU2MDMzQzA4RUQ4OERCNkZEMDA4Qjg2ODgwMDhCOTY2NgorOjEwMzk5MDAwODQwMDNBMDQ3NTEwOEJERTQ2OEJDODhEQkVGNDAwRjNBQworOjEwMzlBMDAwQTY3NDY2OEJGMzkwODNDNjA5NEE3NUU2OERCNkZEMDA1MgorOjEwMzlCMDAwOEI5Njg0MDAzQTA0NzMxMDhCREU0NjhCQzg4REJFRjQ2MAorOjEwMzlDMDAwMDBGM0E2NzQ3NjhCRjM5MDgzQzYwOTRBNzVFNjhEQjYyQworOjEwMzlEMDAwRjQwMEFDRjc0NjdBMDEwMDc0MDIyNDdGMUVDNTVFMTAyNQorOjEwMzlFMDAwOEIzNzg4NDAwMjQ2ODkzN0ZGNEU3OEZGNDY3NkZGNEU3OAorOjEwMzlGMDAwNzQxRjhCOEU4ODAwNDk4OThFODgwMEUzNDM4REI2RjQ0RQorOjEwM0EwMDAwMDA4QkZFNDZGM0E0RTk3REZGQzU3NjEwOEIxQzg1REI5OQorOjEwM0ExMDAwNzQwODAzRjM4M0M2MDM4M0U2RkU4Qjg2ODQwMDJCQzJGRgorOjEwM0EyMDAwQjQ4MDg5MDQ0NjQ2QzcwNDAwMDA4OTc2MTA4MzRFN0EyNAorOjEwM0EzMDAwMDRDNzg2ODgwMDAwMDA2MTFGRjlDMzMzQzA2MTFGQzMzQgorOjEwM0E0MDAwQjA4MDg0QzA2MTFGQzM5MDhCNEU3ODJCOEU4ODAwNzYyNworOjEwM0E1MDAwMjc4OUI2OEMwMDhCNUU3NDNCQ0I3MjAyOEJDQjNCQzg0NAorOjEwM0E2MDAwNzIwMjhCQzg4QkMxRTM0NDMzRDI4RUMyOEJEMTgzQkUyQQorOjEwM0E3MDAwODgwMDAwNzQwNkU5OEUwMDMzQzBDMzhCNUUxMDAzMUZGQworOjEwM0E4MDAwNDM0MzUyRjc0NjdBMDEwMDc1MkFBQzhEQkVFNDAwOEJBMQorOjEwM0E5MDAwOEU4NjAwRjJBRTc0MzQ4ODA3NDM0QTc1RUQ1ODhCNUUwQgorOjEwM0FBMDAwMTAwMTA3Mjk0Njc4MDE0Njc2Mjk0Njc0OEJDNjJCODY3NQorOjEwM0FCMDAwOEMwMEMzOTBBQzhEQkVFNDAwOEI4RTg2MDBGMkFFNzQ5OQorOjEwM0FDMDAwMEEyNDdGODgwNzQzNEE3NUVCRUJEMjg4ODZGNDAwQzc0NworOjEwM0FEMDAwODY4ODAwMDEwMDU4MkJDMjc0MEU4QjVFMTAwMTA3MjlFNgorOjEwM0FFMDAwNDY3ODAxNDY3NjI5NDY3NDQwRTg5NEZFNzJCRTRBNzVDRgorOjEwM0FGMDAwMTU4M0JFOEEwMDAwNzRCNEJBNTBGRkVEODk4NjgyMDAzNworOjEwM0IwMDAwODM0RTdBMDhFQkE2OERCRUY0MDAwM0JFODgwMEE0RkZBNgorOjEwM0IxMDAwODY4ODAwRTg2QUZFNzI5NDc5MDY0QTc0OEZFOTVCRkYzMgorOjEwM0IyMDAwNEE3NENFRUJFMTkwNTBFODExQ0M4QjQ2NzQzOTQ2NzI2MgorOjEwM0IzMDAwNzQyNzFFNTY1MTMzQzlDNTc2MENBRDc0MTA3ODA5MDMyRAorOjEwM0I0MDAwQzgwNTAxMDAyNEZFMDNGMDNCNzYxMDc2RUQyOTRFNzY4MQorOjEwM0I1MDAwMDE0RTc4RTgzN0NDNTk1RTFGNThDMzkwQzQ3RTEwMjZCQQorOjEwM0I2MDAwOEIxRDgzQzMwMzI2ODkxRDRCMDNGQkFCOTFBQUI4MDNBRQorOjEwM0I3MDAwMDAyOTQ2NzgwMTQ2NzYyOTQ2NzRDMzkwQzQ3RTEwMjZGMworOjEwM0I4MDAwOEIxRDQzMjY4OTFENDMwM0ZCQUFGRjRFNzhGRjQ2NzYxMworOjEwM0I5MDAwRkY0RTc0QzNFOEU1RkZDMzgwODE4NDg1ODI4Mzg2ODdGNgorOjEwM0JBMDAwNTA1MzhBREM4M0UzMEVEMUVCMkU4QTg3OTgzQjA4ODYzQworOjEwM0JCMDAwQjAwMEZFODZCMTAwQjAwQUU4ODdENDVCNThDMzUwOEFEMworOjEwM0JDMDAwQzhCOEZGMDBFODk1RkY1OEMzOTA4QTg2QkIwMEU4QUJGMQorOjEwM0JEMDAwRkZDM0U4Q0JGRkU4RjJGRkMzOTBFOEMzRkZFOEI0RkYwMAorOjEwM0JFMDAwQzM5MDMzQzBFODk1RkZDM0I4RkYwMDMzQzlFODZDRkY0QQorOjEwM0JGMDAwQzM5MEI4RkYwMUIxMTBFODYyRkZDMzkwQzNGQzNCRTI4MQorOjEwM0MwMDAwM0JGMjNCRjIzQkZDM0JFMjNCRTgzQkU4M0JGQzNCRTI2QworOjEwM0MxMDAwM0JFODNCRTgzQkZDM0JFMjNCRTIzQkUyM0IwMDEwMDA4NQorOjEwM0MyMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDEwMDA1NAorOjEwM0MzMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDA4MDA0QworOjEwM0M0MDAwMDAwMDA4MDAwMDAwMDgwMDAwMDAwODAwMDA1MTUzOEIyRAorOjEwM0M1MDAwNEUzODgxRTFGRkVFQTgwNDc0MDQ4MUM5MDAwMThBRTBCNgorOjEwM0M2MDAwODBFNDAzMjQxOEQwRTQwQUM0MzNEQjhBRDgyRThCODc3RgorOjEwM0M3MDAwRkQzQjg5NDY3QzJFMEI4RjFEM0M4OTRFMzhEMUVCMkVBNworOjEwM0M4MDAwOEFBNzNEM0M1QjU5QzNBQzQ5M0MwMTcyMUQ3NDIwM0M4MgorOjEwM0M5MDAwMDM3MjIzNzQyODNDMDg3MjJCNzQzMDNDMjA3MjM3NzRGMgorOjEwM0NBMDAwM0FCQkRBM0IzMkU0ODk1RTdFQzNCQkEwM0JFQkY1QkI5QgorOjEwM0NCMDAwOTQzQkI0MDFFQkYwQkJGQzNCQjQwMkVCRTlCQkUyM0I1MQorOjEwM0NDMDAwQjQwM0VCRTJCQkJFM0JCNDA0RUJEQkJCQ0EzQkFDNDk4OQorOjEwM0NEMDAwODg4NkJCMDBFQkNFQkJEMjNCRUJGM0JCRkMzQkVCQzQxQgorOjEwM0NFMDAwQTkwNDAwNzVEMUE5MDgwMDc1REFFQkQxOEI1RTc0OEIzRAorOjEwM0NGMDAwNEU3ODNCQ0I3MjAyOEJDQjNCQzg3MjAyOEJDODhCQzExOAorOjEwM0QwMDAwRTMyQ0M0N0UxMDhCREYyNjAzM0Q0NzQ3Rjc0NjdBMDEzQworOjEwM0QxMDAwMDA3NTFDRjdDNzAxMDA3NDAyNDlBNEQxRTlGM0E1NzMyQgorOjEwM0QyMDAwMDFBNDI2MDEwNzI5NDY3ODAxNDY3NjI5NDY3NEMzNTAyNgorOjEwM0QzMDAwNTNCQjdGN0ZGN0M3MDEwMDc0MDU0OUFDMjJDM0FBRDFFQQorOjEwM0Q0MDAwRTlFMzFEOUNBRDIzQzNBQjQ5NzQxNEFEMjNDM0FCNDk1OAorOjEwM0Q1MDAwNzQwREFEMjNDM0FCNDk3NDA2QUQyM0MzQUJFMkU1OUQzRgorOjEwM0Q2MDAwNzMwNEFDMjJDM0FCNUI1OEVCQjhFOENFQzk4QjVFMzhBQQorOjEwM0Q3MDAwRjdDMzEwMDQ3NTAxQzNGN0MzNDAwMDc0MDVFOEI4RTM0NgorOjEwM0Q4MDAwRUIwM0U4QThFMzgxNjYzOEVGRkJGNkMzMTA3NDNDRjY1QQorOjEwM0Q5MDAwQzMwMjc0MDZFNEQ4MEMwMUU2RDhGNkMzMDQ3NDExODM5OAorOjEwM0RBMDAwQzIwODhBODZBNzAwMEMwMUVFODg4NkE3MDA4M0VBMDg2RAorOjEwM0RCMDAwRjZDMzA4NzQwRkU4OEJFMzcyMEE4QTg2QzAwMEU2MzhGRgorOjEwM0RDMDAwQjAyM0U2MEFGN0MzMDAwNDc1MDFDM0Y3QzMwMDA4NzUwMgorOjEwM0REMDAwRjk4QTg2QTUwMEY2QzM0MDc1MERBODEwNzVFQzBDMTA4NQorOjEwM0RFMDAwODg4NkE1MDBFNjBDQzNBODAxNzVERjgzQzIwMjBDMDUxNgorOjEwM0RGMDAwRUU4ODg2QTUwMEMzQjAwMEU4NDdEMkVCMEZCMDAyRTgxQQorOjEwM0UwMDAwOTAwRUVCMDg4MzY2MzhERjgzNEU3QTAyMzNDMDhFRDg3QgorOjEwM0UxMDAwRkFBMDkyMTI0MEEyOTIxMjNDMDU3MjFFQzYwNjkyMTI5RAorOjEwM0UyMDAwMDBGQkIwMDFFODZCMEVGQUExMjYwMTIzMDYyQTAxQThDNworOjEwM0UzMDAwMDE3NTA3RThFMjA3RTg2MTA5OTBCMDAwRTgzN0QyRkJCNgorOjEwM0U0MDAwODVFRDc0QjlGQUY3NDY3QTQ2MDA3NUMwOEI0Njc4M0QyMQorOjEwM0U1MDAwMEEwMDcyQjA4QjRFNzQ4M0Y5NTA3MjlBODM2NjM4REYxMQorOjEwM0U2MDAwQzU3NjE0OEI0NjNBODVDMDc1NThBRDg1QzA3NTBGRTg4OAorOjEwM0U3MDAwRjhGRUY3NDY3QTA4MDA3NDkzRThBMEZBRUI4RTNCNzZEQQorOjEwM0U4MDAwMDQ3NjIxQjkwMjAwMzk0RTJFNzcwNUM3NDYyRTAwMDA3MAorOjEwM0U5MDAwNTY4Qjc2MkM4OTc2MDRDNzA0MDAwMDQ2NDY4OTc2MkMxQQorOjEwM0VBMDAwMjk0RTJFNUU4NUMwNzkxN0Y2QzQxMDc0MDVGRjU2N0MyNgorOjEwM0VCMDAwRUIwM0ZGNTY3RTg5NzYxNEIwMENFODg1RDFFQjg2ODkzQQorOjEwM0VDMDAwNDYzQUZGOTY4MDAwMjk0NjNBODk3NjE0QjAwQ0U4NzE4QworOjEwM0VEMDAwRDFFOTcxRkYwMDAwMDAwMDAwMDAwMDAwMDgwNDEwMDI5QQorOjEwM0VFMDAwMDEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwM0VGMDAwMDAwMDAwMDA4MDgwODA4MDgwODA4MDgwODA4MDgwODBDMgorOjEwM0YwMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBCMQorOjEwM0YxMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBBMQorOjEwM0YyMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA5MQorOjEwM0YzMDAwODA4MDgwODA4MEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMQorOjEwM0Y0MDAwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwODBCMQorOjEwM0Y1MDAwODA4MDgwMDA4MDgwODA4MDgwODA4MDgwODA4MDgwODBFMQorOjEwM0Y2MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA1MQorOjEwM0Y3MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA0MQorOjEwM0Y4MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAzMQorOjEwM0Y5MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAyMQorOjEwM0ZBMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAxMQorOjEwM0ZCMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAwMQorOjEwM0ZDMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBGMQorOjEwM0ZEMDAwODA4MDgwODA0RTQxNzg0MUQwNDFGNDQxMDY0MjE4NDJCMQorOjEwM0ZFMDAwQzM5MDhFNDYwMjhCN0UyMjg5N0U2QzgwNjYyN0ZEOEI3NQorOjEwM0ZGMDAwNTYyNDgzRkEwNDcyRTk4M0VBMDI4QkQ5M0JDQTc2MDIxQgorOjEwNDAwMDAwOEJDQUIwMEE1NzUxOEJGRUYyQUU4QkMxNTk1Rjc1MUUzOQorOjEwNDAxMDAwNTA0MDJCQzg3NDA2MkJEMTJCRDlGM0E0NTk0QjRBNEFENAorOjEwNDAyMDAwQjAwREFBQTQzQkNBNzYwMjhCQ0FFMzEzRUJENDJCRDlGQQorOjEwNDAzMDAwRjdDNjAxMDA3NDAyQTQ0OUQxRTlGM0E1NzMwMUE0ODk2QworOjEwNDA0MDAwN0UyMjJCN0U2QzI5N0UyNDAxN0UxQThCQ0I4MDdFMjZERAorOjEwNDA1MDAwMDI3NDA1ODA2NjI2RkRDMzYwQjBGREU4MTgwMzYxQzNFNQorOjEwNDA2MDAwQzM5MEU4N0MwMjcyRjk5MDgzNEUyNjIwOEI0NjZBODlDMQorOjEwNDA3MDAwNDY2RThCNDY0ODBEMDQwMDI1QkZGRjg5NDY0OEIwMDZCMgorOjEwNDA4MDAwRThCRkNGQzM4OTdFMjIyQjdFNkMwMTdFMUEyOTdFMjQ1NQorOjEwNDA5MDAwODA3RTI2MDI3NDA1ODM2NjI2RkRDMzYwQjBGREU4RDVFOAorOjEwNDBBMDAwMDI2MUMzOTA4QUJFQzIwMEVCMjRGNzQ2NDg0MDAwNzUwNworOjEwNDBCMDAwQjE4RTQ2MDI4QjdFMjI4OTdFNkM4QjU2MjQ4M0VBMEE1RgorOjEwNDBDMDAwNzg5RTAzRDc4MDY2MjdGRDMzQzA4QUJFQzIwMEUzQjQ2MgorOjEwNDBEMDAwM0JGQTc3QjBBQzQ5OTMyRThBODdENDNFOTMyMkRGNzVBMgorOjEwNDBFMDAwMTdBQUUzQTAzQkZBNzc5Q0FDNDk5MzJFOEE4N0Q0M0U2QgorOjEwNDBGMDAwOTMyMkRGNzUwM0FBRUJENkY2QzM3Rjc1MDVGRjQ2NjZFQworOjEwNDEwMDAwRUJERkY2QzM0MDc1MEM4QkQ4ODNFQjA4RDFFMzJFRkZCMQorOjEwNDExMDAwQTdENDNGRkY0NjY2MkMyMEVCQzc4NUMwNzQyQzg5NDY4OAorOjEwNDEyMDAwNkE4MzRFNDg0MDg5N0UyMjJCN0U2QzAxN0UxQTI5N0U0RQorOjEwNDEzMDAwMjQ4MDdFMjYwMjc0MDg4MzY2MjZGREU4QTMwMUMzNjBGRQorOjEwNDE0MDAwQjBGREU4MzEwMjYxRTg5ODAxQzNFOTU3RkY5MDhCNUU0QQorOjEwNDE1MDAwNjY0Qjc4MDM4OTVFNjZBQThCNUU2NEY3QzMwMDIwNzVBMAorOjEwNDE2MDAwMDNFOTQwRkZGN0MzNDAwMDc0MDg4QTg2QzEwMEFBRTk0QQorOjEwNDE3MDAwMzJGRkI4MzIwMEVCQTM5MDhCNUU2Njg5NUU2ODgzQzMyMgorOjEwNDE4MDAwMDg4MEUzRjg4OTVFNjY4QjVFNjQ4MUUzMDAxODgxRkIzQQorOjEwNDE5MDAwMDAxODc0MkRBQTg1REI3NDI1Rjc0NjY0NDAwMDc1MTg1NQorOjEwNDFBMDAwODFGQjAwMTA3NDBDOEI0NjY2MkI0NjY4QzFFMDA0RTk2NQorOjEwNDFCMDAwNjhGRkI4NjQwMEU5NjJGRjhBODZDMTAwQUFBQUU5RTM0MQorOjEwNDFDMDAwRkU1MThCNEU2NjJCNEU2OEIwMjBGM0FBNTlFOUQ0RkVGRgorOjEwNDFEMDAwOEI1RTY2ODk1RTY4OEI1RTY0RjdDMzI0MDA3NDEwQzdDQgorOjEwNDFFMDAwNDY2NjAwMDBGN0MzMDQwMDc0MDVCMDBEQUFCMDBBQUEyMQorOjEwNDFGMDAwRUI0ODkwOTBBQUY3NDY2NDAwNDA3NDA2QjhEMDA3RTlFRgorOjEwNDIwMDAwMThGRkU5OUZGRTkwQUFGNzQ2NjQwMDgwNzQwNkI4RDBCNAorOjEwNDIxMDAwMDdFOTA2RkZFOThERkU5MDhCNUU2Njg5NUU2ODg1REJBNworOjEwNDIyMDAwNzUwQzhCNUU2NEY3QzMxMDAwNzQwNkU5NzZGRThCNUUzNgorOjEwNDIzMDAwNjRGN0MzMDgwMDc0MjdCMDBBQUFGN0MzMjAwMDc1MUZFQgorOjEwNDI0MDAwRjdDMzAwMDE3NTAzRTk1QkZFRjdDMzQwMDA3NTA2QjhDQworOjEwNDI1MDAwNjQwMEU5QzVGRThBODZDMTAwQUFBQUU5NDZGRUFBQzc4QgorOjEwNDI2MDAwNDY2NjAwMDBGN0MzMDAwNjc0RjFGN0MzNDAwMDc0MTlGNgorOjEwNDI3MDAwOEE4NkMxMDA4MUUzMDAwNjgxRkIwMDA0NzIwNjc2MDI5MworOjEwNDI4MDAwQUFBQUFBQUFBQUFBRTkxQkZFODFFMzAwMDY4MUZCMDA0QQorOjEwNDI5MDAwMDQ3MjBFNzYwNkI4OTYwMEU5N0ZGRUI4NjQwMEU5NzlFQworOjEwNDJBMDAwRkU4QjQ2NjhFOTczRkU5MDM2OEIwRURBMTI4M0Y5MzI4NAorOjEwNDJCMDAwNzMxRDFFMDYzM0MwOEVEODhFQzA4RDc2NENCRkRDMTJBNworOjEwNDJDMDAwMDNGOUE1QTVBNTgzQzEwNjg5MEVEQTEyMDcxRkMzQjA5RAorOjEwNDJEMDAwMDhFODZFQ0RDMzkwODM2NjQ4RkVFODkzQzRFOEM4RkY0MworOjEwNDJFMDAwQzNGNjQ2MjcwMjc1MEY5Q0ZBODM3RTFBMDA3NDA5ODA3NAorOjEwNDJGMDAwNEUyNzAxOURGOUMzRjhDMzUwNTJGNzQ2Mzg0MDAwNzQ2OQorOjEwNDMwMDAwMURFODM0REU4M0MyMEFFQ0E4NDA3NTI3ODNFQTA4OEFEOAorOjEwNDMxMDAwODZBNTAwMEMwMjg4ODZBNTAwRUU1QTU4RUJEMUU4MEM2MQorOjEwNDMyMDAwREU4QTg2QTUwMDI0RkIwQzAyODg4NkE1MDBFNjBDNUFDRQorOjEwNDMzMDAwNThFQkJDODA0RTI3MDI1QTU4OURGOEMzMDg0NjI2OUM2RAorOjEwNDM0MDAwRkE4QThFQTUwMEY3NDYzODQwMDA3NTE0RjZDMTA2NzQ0NworOjEwNDM1MDAwMjNFOEQ5REQ4QUMxMjRGOTg4ODZBNTAwRTYwQzlEQzMyRgorOjEwNDM2MDAwRjZDMTAyNzQwRkU4RDBERDgzQzIwMjhBQzEyNEZEODg0MQorOjEwNDM3MDAwODZBNTAwRUU5REMzOEI1RTI2MjJDMzg4NDYyNjc0MDE2NworOjEwNDM4MDAwQzM4MDY2MjdGRDlDRkE4QThFQTUwMEY3NDYzODQwMDA1OAorOjEwNDM5MDAwNzUxNkY2QzEwNDc1MEZFODkzREQ4QUMxMjRGRDBDMDQ3RgorOjEwNDNBMDAwODg4NkE1MDBFNjBDOURDM0Y2QzEwMjc1RjlFODg4REQ5NAorOjEwNDNCMDAwODNDMjBBRUNBODIwNzUwRTgzRUEwODhBQzEwQzAyODgyMQorOjEwNDNDMDAwODZBNTAwRUU5REMzODNFQTBBMzNDOThBNEUxQzhCNDYzQworOjEwNDNEMDAwMUEzQkM4NzMxQjAxNEUyQTJCQzE4OTQ2MUExRUM1NzY4QgorOjEwNDNFMDAwMDBGMzZFMUY4OTc2MDA4M0MyMDI4QTg2QTUwMEVCQ0Q5QQorOjEwNDNGMDAwODVDMDc0MTIwMTQ2MkE4QkM4MUVDNTc2MDBGMzZFMUY1NQorOjEwNDQwMDAwODk3NjAwODk0RTFBRjZDNzAxNzUyMzgwQ0IwMjg5NUUzMgorOjEwNDQxMDAwMjZFODA4QzM4M0MyMDI4QTg2QTUwMDI0RkRFRTg4ODZBQQorOjEwNDQyMDAwQTUwMEY2QzcxMDc1MDVCMDAyRTgxNkNDOURDMzgzQzI3RgorOjEwNDQzMDAwMDI4QTg2QTUwMEVCODY5MDhCRDE4QjQ2MjQzQkM4NzZGQQorOjEwNDQ0MDAwMDI4QkM4MkJEMTJCQzE4QkQ5RTMyMjgwNjYyN0ZEOEUyRQorOjEwNDQ1MDAwNDYwMjhCN0UyMkY3QzYwMTAwNzQwMkE0NDlEMUU5RjMxQgorOjEwNDQ2MDAwQTU3MzAxQTQ4OTdFMjI4OTQ2MjQwMTVFMUE4QkNBODAyNQorOjEwNDQ3MDAwN0UyNjAyNzQwNTgwNjYyNkZEQzM2MEIwRkRFOEY2RkU2OAorOjEwNDQ4MDAwNjFDMzUwRTQwQTg0QzA3NTBBODY4NkExMDA4NEMwNzRBMgorOjEwNDQ5MDAwMEFFNjBBNTgwQzIwODk0NjQ4RjlDMzU4MjRERjg5NDZBMQorOjEwNDRBMDAwNDhGOEMzOTBGQkIwMDJFOEU4MDdGQUU4MkUwMUZCQjAzOQorOjEwNDRCMDAwMDFFOERFMDdGQUIwMDJFOEJDQ0JGQjg1RUQ3NEU1RkE1MworOjEwNDRDMDAwOEU1RTBBRkI5MEZBOEI0NjQ4OEI3NjQwQTg4Qzc1REU5MAorOjEwNDREMDAwQTgyMDc0MUE1MEU4NTVEQzU4RThBNkZGNzMxMEIwMDIwMworOjEwNDRFMDAwRTg1RkNCRUJDOTkwMjVGRjAwOEJDOEVCMzY5MEE4MDFBNQorOjEwNDRGMDAwNzUyMjQ2ODNFNkZFM0I3NjA4NzQ3OUFEOEFGQ0IzRjBGQworOjEwNDUwMDAwMjJGQjNBRkI3NEUwM0FCRUEwMDA3NDJFRThEMkZENzNBMQorOjEwNDUxMDAwNzdFQjlCOTA4QUUwMjRGQzg4NDY0ODhCNEU0QUY2QzQ5MQorOjEwNDUyMDAwMDI3NDFERThCQkZENzI4NkU4MTNGMzg5NzY0MEUzOTNCRAorOjEwNDUzMDAwODM0RTQ4MDM4OTRFNEFFOTc0RkYyNUZGMEY4QkM4OTBDQworOjEwNDU0MDAwOEI4Njk4MDA4NUMwNzQxQTUxOEE4RUEwMDBDMEU5MDQzOQorOjEwNDU1MDAwQkEwMTAwRDNFMjU5MjNDMjc0MDgwM0YxODk3NjQwRTkxNQorOjEwNDU2MDAwNjFGRkZGNTY2MkUzRjU4MzRFNDgwMTg5NEU0QTg5NzYyMgorOjEwNDU3MDAwNDBFOTNBRkY4MTRFMjYwMDEwOEI0NjUwM0I0NjQ2Nzc3NQorOjEwNDU4MDAwMDNFODUyRkRFOTI3RkY5MDg4QkVBMDAwRUJBQzBBMDZDNQorOjEwNDU5MDAwOTAxMjhBRTBCQTA2MDFCMDA0RUVFQzg0QzA3NTEyQjA0NQorOjEwNDVBMDAwMDRFRThBQzRFRTMyRTRBODgwNzQwNkM3MDY4NDEyMDBDMgorOjEwNDVCMDAwMDA4ODI2OTAxMkMzMEEwNjkwMTI4QUUwQkEwNjAxRUMxRgorOjEwNDVDMDAwQTgwMTc1RURCQTA4MDE4QUM0RUUzMkU0QTg4MDc0RTE0RQorOjEwNDVEMDAwQzcwNjg0MTIwMDAwODgyNjkwMTJDMzkwMzZGNzA2MjQ3RQorOjEwNDVFMDAwMDEwMTAwNzUzMDM2OEIwRURBMTI4MEY5MzY3MzI2MzNFRQorOjEwNDVGMDAwQzA4RUMwOEVEOEJGREMxMjAzRjlCMDA4RTg3N0NBODUzOAorOjEwNDYwMDAwRUQ3NDBFOEQ3NjRDQTVBNUE1ODBDMTA2ODBGOTM2NzI5NQorOjEwNDYxMDAwRTk4OTBFREExMkMzQzM5MEY3MDYyNjAxMDEwMDc1RjY4OAorOjEwNDYyMDAwOEIwRTIwMTM4NUM5NzVFRTMzQzA4RUMwOEVEOEJGMjQ4MworOjEwNDYzMDAwMTNCOTM2MDBCMDBBRTgzRENBODVFRDc1MDZFOTEyMDFFNgorOjEwNDY0MDAwRTkwQTAxMzNEQjhBNDY0QzhBQTZCMzAwRkVDQzc4MEUxOQorOjEwNDY1MDAwODhBNkIzMDAwQURDQjQwQUFCODNFOTAyNzZFMjhBQTYzNAorOjEwNDY2MDAwQjIwMEZFQ0M3ODBFODhBNkIyMDAwQURDQjQwOEFCODM5OAorOjEwNDY3MDAwRTkwMjc2Q0M4QUE2QjEwMEZFQ0M3ODE4OEFCRUIwMDBEQQorOjEwNDY4MDAwNzUwNDg4QTZCMDAwODhBNkIxMDAwQURDOEFFN0FCODM2RgorOjEwNDY5MDAwRTkwMjc2QUM4QUE2QjQwMEZFQ0M3ODFGODhBNkI0MDBFNgorOjEwNDZBMDAwMEFEQ0I0MEJBQjhBODZCQzAwOEFBNkJEMDBBQjhCODY0NQorOjEwNDZCMDAwQkUwMEFCODNFOTA2NzY4ODhBNDY0QzhBQTZCNjAwRkUyMQorOjEwNDZDMDAwQ0M3ODE5ODhBNkI2MDAwQURDQjQwQ0FCRThEQkNCQUIxRgorOjEwNDZEMDAwOEI0NjJBQUI4M0U5MDY3Njc0OEE0NjRDOEFBNkI3MDBENQorOjEwNDZFMDAwRkVDQzc4MTk4OEE2QjcwMDBBRENCNDBEQUJFOEJBQ0JDQgorOjEwNDZGMDAwQUI4QjQ2MzRBQjgzRTkwNjc2NTM4QTQ2NEM4QUE2QjgyMAorOjEwNDcwMDAwMDBGRUNDNzgxOTg4QTZCODAwMEFEQ0I0MEVBQkExNTAyNAorOjEwNDcxMDAwMTJBQkExNTIxMkFCODNFOTA2NzYzMjhBNDY0QzhBQTZDNgorOjEwNDcyMDAwQjUwMEZFQ0M3ODE4ODhBNkI1MDAwQURDQjQwRkFCOEJCOAorOjEwNDczMDAwODY5QTAwQUI4Qjg2OUMwMEFCODNFOTA2NzYwRjg0REIwMAorOjEwNDc0MDAwNzUwM0U5RUZGRUIwMEFFOEY4QzhFOUU3RkVCMDBBRTg0OQorOjEwNDc1MDAwRjBDOEY3RDk4M0MxMzY4QkMxMEQ4MDAwODZDNEEzMjI2RgorOjEwNDc2MDAwMTM0MTQxODkwRTIwMTNDM0ExODQxMjJCQzE3MjExQTNERQorOjEwNDc3MDAwODQxMkJFMjIxM0QxRTlGMzZGOTA4OTBFMjAxM0Y4QzM3RgorOjEwNDc4MDAwRjlDM0MzODFFRjZBMTM3NEY5OEJDNzBEODAwMDg2QzQyNworOjEwNDc5MDAwQTM2ODEzNDc0Nzg5M0U2NjEzQzNGNzA2MkEwMTAxMDA0MQorOjEwNDdBMDAwNzVFMDhCMEU2NjEzRTMwNzgwRjkyMDc3RDU0OTQ5MzMwRQorOjEwNDdCMDAwQzA4RUMwOEVEOEJGNkExMzhCRjcwM0Y5ODNDNjM0M0IxMworOjEwNDdDMDAwRkU3N0MwQjAwRUU4QUVDODg1RUQ3NEI3OEE0NjRDOEE1NQorOjEwNDdEMDAwQjZCOTAwRkVDRTc4MTU4OEI2QjkwMDhBQTZBOTAwODBDMQorOjEwNDdFMDAwQ0NDMEFCODRGNjc0MDVCMDBFRTg1NkM4OEFCNkJBMDBFMQorOjEwNDdGMDAwRkVDRTc4Q0I4QTlFQTkwMDhBQkVBQjAwOEE1NjNGOEEzRAorOjEwNDgwMDAwRjMzMkY3MEFCNkFDMDBDNjg2QUMwMDAwMjJGMjc0NEI1NQorOjEwNDgxMDAwRjZDNjA4NzQwRkI0MDJGNkMzMDg3NTAyQjQwM0FCODA4MQorOjEwNDgyMDAwRTZGNzc0MzdGNkM2MDE3NDBGQjQwMEY2QzMwMTc1MDJEQgorOjEwNDgzMDAwQjQwMUFCODBFNkZFNzQyM0Y2QzYwMjc0MEZCNDA0RjYyRQorOjEwNDg0MDAwQzMwMjc1MDJCNDA1QUI4MEU2RkQ3NDBGRjZDNjA0NzRBRQorOjEwNDg1MDAwMEFCNDA2RjZDMzA0NzUwMkI0MDdBQkM2ODZCQTAwMDBGNAorOjEwNDg2MDAwODg5RUFCMDBFOTU4RkY5MEExODQxMjJCQzE3MjExQTM1RQorOjEwNDg3MDAwODQxMkJFNjgxM0QxRTlGMzZGOTA4OTBFNjYxM0Y4QzNGMgorOjEwNDg4MDAwRjlDM0ExODQxMjQxNDEyQkMxNzIyM0EzODQxMjhCQzFBRAorOjEwNDg5MDAwNDg0ODMyRTQwQzgwODZDNEVGOTA5MDkwOTA5MEJFREM0MworOjEwNDhBMDAwMTI0OTQ5RDFFOUYzNkY5MDg5MEVEQTEyRjhDM0Y5QzNCRQorOjEwNDhCMDAwOEFDODhBNDY0Q0I0MDE4M0VCMDZFRjkwOTA5MDkwOTBBMgorOjEwNDhDMDAwQjgwMTAwRUY5MDkwOTA5MDkwOEFDMUVGOTA5MDkwOTBGNgorOjEwNDhEMDAwOTBFOTk3MDBFOUFDMDAzM0MwOEVEODg5MUU4NDEyQzNEQQorOjEwNDhFMDAwMzY4QjFFODQxMkZCOTBGQUIwMENFODg5Qzc4NUVENzRGNAorOjEwNDhGMDAwRTZDNTc2MEM4M0ZCMTQ3MkRCRkI5MEZBQUQ4NUMwNzhCRAorOjEwNDkwMDAwQUY3NEUyOEJGRTAzRjgzNjhCMEU4NjEyM0JDMTc3MDI0MgorOjEwNDkxMDAwOEJDODgzRUIwNDNCRDk3NzAyOEJDQjMzQzA4QTQ2NENFMAorOjEwNDkyMDAwRUY5MDkwOTA5MDkwOEJDMUVGOTA5MDkwOTA5MDQxODBGQworOjEwNDkzMDAwRTFGRTJCRDk1MUQxRTlGMzZGOTA1OThCQzc0MDI0RkU4QQorOjEwNDk0MDAwM0JDNjc0MjcyQkZFNEU0RTUzOEI1RTEwM0JGMzcyMTMwNworOjEwNDk1MDAwMDMxRjgzQzMwMzgwRTNGRUM3MDcwMDAwODM2RTc0MDI1NgorOjEwNDk2MDAwODk1RTEwNUI4OTNDODk3NjBDRUI4OTg5NzYwQzM5NzZGNworOjEwNDk3MDAwMTA3NzgxNzIwODgzM0MwMDc0MDNFOTc3RkZFODBEQkU2RAorOjEwNDk4MDAwRTk2MkZGMzY4OTFFODQxMkIwMENFOEI1QzYzM0MwOEVDQQorOjEwNDk5MDAwRDhDM0ExODQxMjNEMTAwMDcyNzdCQTA0MDEzQjA2ODg4NworOjEwNDlBMDAwMTI3NTA2QzcwNjdFMTIwMDAwOEIwRURBMTJFMzBCRThDMgorOjEwNDlCMDAwRDBGRTcyNTdDNzA2N0UxMkZGN0Y4QjBFMjAxM0UzMEJDQgorOjEwNDlDMDAwRThBNUZENzI0NkM3MDY3RTEyRkY3RjhCMEU2NjEzRTNENQorOjEwNDlEMDAwMEJFODk0RkU3MjM1QzcwNjdFMTJGRjdGQTEyODAxQTk1RAorOjEwNDlFMDAwMDEwMDc1MDNFOEY5RkU4MDNFOEQxMjAwNzUxREExODQ1QgorOjEwNDlGMDAwMTIzRDIwMDA3NjE1M0IwNjgyMTI3NjA5QTE3RTEyM0JGRAorOjEwNEEwMDAwMDY4MDEyNzIwQzgwMEU5MDEyODBDM0IwODBGRjE2N0M1QworOjEwNEExMDAwMTJDMzgwMEU5MDEyNDBDMzZBMDAxRkM2MDY5MzEyMTc3RAorOjEwNEEyMDAwOUMwRUU4QjdDODZBMDAxRkM2MDY5MzEyMjA5QzBFRThDOQorOjEwNEEzMDAwQUFDODZBMDAxRkM2MDY5MzEyMTY5QzBFRTg5REM4OTA2RAorOjEwNEE0MDAwQkEwNjAxRUNBODIwNzVDQUZCOTBGQUJBMDQwMUVEOTBGMQorOjEwNEE1MDAwOTA5MDkwOTAzQTA2OTQxMjc3QkUzM0RCOEFEOEQxRTNENworOjEwNEE2MDAwMkU4QkFGNDQwMEM0N0UwODg1RkY3NEI5RjZDNEMwNzVCMAorOjEwNEE3MDAwNTUzMkMwQzFFMDAyODBFNEYwOEJGMEVEOTA5MDkwOTA1MAorOjEwNEE4MDAwOTA4NUMwNzRCQjhCQzg0MTgwRTFGRTBCQzY4QjVFNTAyNQorOjEwNEE5MDAwNEI0QjJCRDk3ODlDQUI4QkMxNDA0MDAxNDY0RUQxRTlBMgorOjEwNEFBMDAwRjM2RDkwODk1RTUwODk3RTA4OEI0NjI2ODBFNEVGODlGRAorOjEwNEFCMDAwNDYyNkY2QzQwMTc1MENGNzQ2NDgwQzAwNzUwNUIwMDI5MQorOjEwNEFDMDAwRTg3RkM1RTk3QUZGODZDNDhCQzg4M0UxM0Y0MTgwRTE3NgorOjEwNEFEMDAwRkVFMzBBM0M4MDcyMDkyNDNGQjRGMEVCQjBFOTYwRkZDQQorOjEwNEFFMDAwMjUzRjAwMzNGRjhFQzdCRjk2MTI4QkY3RDFFOUYzNkREOAorOjEwNEFGMDAwOTA4QkM4RTg0OEVERTk0N0ZGOTA2QTAwMUZDNjA2OTMwRgorOjEwNEIwMDAwMTIxQjlDMEVFOEQ1Qzc5MDYwMUUwNjMzQzA4RUQ4OEU0RgorOjEwNEIxMDAwQzBCQTA2MDFFQ0E4MDQ3NEUxQjAwNkVFRUNBMjhDMTI1NworOjEwNEIyMDAwQTg0MDc0MTFBMTg4MTJBMzg0MTJDNjA2OEQxMjAwRTg1MQorOjEwNEIzMDAwNjBGRUEwOEMxMkE4ODA3NDAzRTgwNEZGQjgwMDgwQkE1RAorOjEwNEI0MDAwMjJGRkVGMDcxRjYxQ0Y5MDZBMDAxRkM2MDY5MzEyMUI1QQorOjEwNEI1MDAwOUMwRUU4ODdDNzkwNjAxRTA2MzNDMDhFRDg4RUMwQkEwMAorOjEwNEI2MDAwMDYwMUVDQTgwNDc0RTFCQTA4MDFFQ0EyOEMxMkE4NDA3QQorOjEwNEI3MDAwNzQxMUExODgxMkEzODQxMkM2MDY4RDEyMDBFODEyRkVEOQorOjEwNEI4MDAwQTA4QzEyQTg4MDc0MDNFOEI2RkVCODAwODBCQTIyRkY5OQorOjEwNEI5MDAwRUYwNzFGNjFDRjkwRUU4NkUwRUU4NkUwRUM4NkUwRUM1QQorOjEwNEJBMDAwODZFMDgwRTFGRUYzNkM5MDgwRTFGRUYzNkU5MDA1MDBGQworOjEwNEJCMDAwNzU0N0E4NEIwNTAwNzU0OEE4NEIwNTAwQTM0OEE4NEJBRQorOjEwNEJDMDAwMDUwMDM1NDlBODRCMDYwMDk4NDg5NjRCMDYwMEJBNDhBMAorOjEwNEJEMDAwOTY0QjA2MDBDMzQ4OTY0QjA2MDBDQjQ4OTY0QjA2MDAwMgorOjEwNEJFMDAwMjA0OTk2NEIwNjAwMjg0OTk2NEIwNjAwNEU0QTlDNEI5RQorOjEwNEJGMDAwMDYwMDdCNEE5QzRCMDUwMDlFNEFBMjRCMDUwMEVDNEFFRQorOjEwNEMwMDAwQTI0QjAwMDAxRTA2ODMzRTQ0MTIwMDc0MDlBMDA2MDE1OAorOjEwNEMxMDAwMjQzMDNDMzA3NDFBOENDODhFRDg4RUMwQkJBRTRCOEJGRgorOjEwNEMyMDAwMEZFMzBEOEI3RjAyOEI3NzA0RjNBNDgzQzMwNkVCRUZCNgorOjEwNEMzMDAwMDcxRkMzOTAzM0MwQTMzRTAxQjkwQzAxQkU0MDAxOEJENgorOjEwNEM0MDAwRkU4MUM2QjQwRjg5MDQ4QkM2MkJGMTNCQzc3N0Y2QTM1MAorOjEwNEM1MDAwM0MwMUMzOTAxRTA2NjAzNjhCMkUzRTAxOEI1RTAwM0JFRQorOjEwNEM2MDAwRUI3NDJCOEI3NjAyODkxQzg5NzcwMjM2QTEzQzAxODk3MworOjEwNEM3MDAwNDYwMDM2ODkyRTNDMDE4QkVCRkY0RTA2NzQwODhCNkU4NgorOjEwNEM4MDAwMDBGRjRFMDY3NUY4MzY4OTJFM0UwMThCNjYwNDYxMDdEQgorOjEwNEM5MDAwMUZDMzFFMDY2MDM2OEIyRTNFMDE5ODg5NDYwNjg5NjYyNAorOjEwNENBMDAwMDQzQjZFMDA3NDEwOEI2RTAwRkY0RTA2NzVGODM2ODk1QgorOjEwNENCMDAwMkUzRTAxOEI2NjA0NjEwNzFGQzNDMzkwMUUwNjYwOUNENQorOjEwNENDMDAwRkEzM0VEOEVERDhCMkUzQzAxODVFRDc0M0Q4QjRFMDA2RAorOjEwNENEMDAwODkwRTNDMDE4QkNDOERBNjBBMDE1NjFFMDY2MDg5NjZBMgorOjEwNENFMDAwMDRDNzQ2MDgwRjFBQzc0NjA2MDEwMDhCMUUzRTAxODUwMQorOjEwNENGMDAwREI3NDFEOEJDNTg3MDc4OTQ2MDA4OTVFMDI4QkQ4ODlDNgorOjEwNEQwMDAwNkYwMjhCRTE5RDYxMDcxRkY4QzM5RDYxMDcxRkY5QzMwNworOjEwNEQxMDAwODkyRTNFMDE4OTZFMDA4OTZFMDI4N0UxOUQ4QkUxRUI1MQorOjEwNEQyMDAwRTQwMDBEMEE1NDY1NzI2RDY5NkU2MTZDNzMyMDczNzVEMQorOjEwNEQzMDAwNzA3MDZGNzI3NDY1NjQzQTBEMEEzMTI5MjA0MTRFNTNDOAorOjEwNEQ0MDAwNDkyMDYzNkY2RDcwNjE3NDY5NjI2QzY1MEQwQTMyMjk2OAorOjEwNEQ1MDAwMjA1Nzc5NzM2NTIwMzMzMDBEMEE1MDZDNjU2MTczNjU5NworOjEwNEQ2MDAwMjA3MzY1NkM2NTYzNzQzQTIwMDAwRDBBNjM2RjY0NjU5NworOjEwNEQ3MDAwMjA3MzY1Njc2RDY1NkU3NDNEMDAwRDBBNEQ2RjZFNjkzOQorOjEwNEQ4MDAwNzQ2RjcyMjA3NjMyMkUzNTBBMEQwQTNFMDAwRDBBNTBERAorOjEwNEQ5MDAwNjE3MjY0NkY2RTNGMDAwRDBBNEU2RjIwNjE2NDY0NzIzMQorOjEwNERBMDAwNjU3MzczMjA3MzcwNjU2MzY5NjY2OTY1NjQwMDBEMEFENQorOjEwNERCMDAwM0EwMDBEMEEwMDRDNkY2MzNEMDAwRDBBNDY0MTU0NDExNAorOjEwNERDMDAwNEMyMDQ1NTI1MjRGNTIzRDAwMEQwQTRENkY2RTY5NzQ5MgorOjEwNEREMDAwNkY3MjIwNjM2RjZENkQ2MTZFNjQ3MzNBMkQwRDBBMjBFMgorOjEwNERFMDAwMjAyMDQ0MkM2NDVCNUI3ODc4Nzg3ODNBNUQ3ODc4NzgxQQorOjEwNERGMDAwNzg1RDIwMkQyMDY0NzU2RDcwMjA2RDY1NkQ2RjcyNzkwMgorOjEwNEUwMDAwMEQwQTIwMjAyMDRDMkM2QzVCNUI3ODc4Nzg3ODNBNUQxQQorOjEwNEUxMDAwNzg3ODc4Nzg1RDIwMkQyMDY0NzU2RDcwMjA3MzY5NkVDOAorOjEwNEUyMDAwNjc2QzY1MjA2QzY5NkU2NTBEMEEyMDIwMjA0NTJDNjUzNQorOjEwNEUzMDAwNUI1Qjc4Nzg3ODc4M0E1RDc4Nzg3ODc4NUQyMDJEMjA5QgorOjEwNEU0MDAwNjU2NDY5NzQyMDZENjU2RDZGNzI3OTBEMEEyMDIwMjA4QworOjEwNEU1MDAwNDYyQzY2NUI1Qjc4Nzg3ODc4MjA1RDc4Nzg3ODc4NUQyQQorOjEwNEU2MDAwMjAyRDIwNjY2OTZDNkMyMDZENjU2RDZGNzI3OTIwNzBFNQorOjEwNEU3MDAwNjE3MjYxNjc3MjYxNzA2ODczMEQwQTIwMjAyMDQ5NUI1RQorOjEwNEU4MDAwNzg3ODc4Nzg1RDIwMjAyMDIwMjAyMDIwMjAyMDIwMkQ3OAorOjEwNEU5MDAwMjA3NzZGNzI2NDIwNjk2RTcwNzU3NDIwNjY3MjZGNkQxMgorOjEwNEVBMDAwMjA3MDZGNzI3NDBEMEEyMDIwMjA2OTVCNzg3ODc4NzgwMgorOjEwNEVCMDAwNUQyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA2Mjc5NzRCOQorOjEwNEVDMDAwNjUyMDY5NkU3MDc1NzQyMDY2NzI2RjZEMjA3MDZGNzJFOAorOjEwNEVEMDAwNzQwRDBBMjAyMDIwNEY3ODc4Nzg3ODIwNzg3ODIwMjA2OAorOjEwNEVFMDAwMjAyMDIwMjAyMDIwMjAyRDIwNkY3NTc0NzA3NTc0MjBDNAorOjEwNEVGMDAwNzc2RjcyNjQyMDc0NkYyMDcwNkY3Mjc0MEQwQTIwMjBCNworOjEwNEYwMDAwMjA2Rjc4Nzg3ODc4MjA3ODc4MjAyMDIwMjAyMDIwMjA0MgorOjEwNEYxMDAwMjAyMDJEMjA2Rjc1NzQ3MDc1NzQyMDYyNzk3NDY1MjA1RgorOjEwNEYyMDAwNzQ2RjIwNzA2RjcyNzQwRDBBMjAyMDIwNDc1QjVCNzhDRAorOjEwNEYzMDAwNzg3ODc4M0E1RDc4Nzg3ODc4NUQyMDIwMjAyRDIwNjcyMQorOjEwNEY0MDAwNkY3NDZGMjA2MTY0NjQ3MjY1NzM3MzBEMEEyMDIwMjA5MgorOjEwNEY1MDAwNTc1QjVCNzg3ODc4NzgzQTVENzg3ODc4Nzg1RDIwMjA1MAorOjEwNEY2MDAwMjAyRDIwNzc2MTc0NjM2ODIwNjEyMDc3NkY3MjY0MEQ1MworOjEwNEY3MDAwMEEyMDIwMjA0MzIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyNAorOjEwNEY4MDAwMjAyMDIwMjAyMDJEMjA2OTZFNzQ2NTcyNzI3NTcwNzQ0NworOjEwNEY5MDAwNzMyMDZGNjY2NjBEMEEyMDIwMjA1MzIwMjAyMDIwMjBEOQorOjEwNEZBMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA2OTZFNzQwOQorOjEwNEZCMDAwNjU3MjcyNzU3MDc0NzMyMDZGNkUwRDBBMjAyMDIwNzNGNQorOjEwNEZDMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjBFMQorOjEwNEZEMDAwMkQyMDczNjk2RTY3NkM2NTIwNzM3NDY1NzAwRDBBMjBFRgorOjEwNEZFMDAwMjAyMDQyNzg3ODc4NzgyMDIwMjAyMDIwMjAyMDIwMjAzRgorOjEwNEZGMDAwMjAyMDIwMkQyMDYyNzI2NTYxNkI3MDZGNjk2RTc0MjBCNQorOjEwNTAwMDAwNzM2NTc0MEQwQTIwMjAyMDYyMjAyMDIwMjAyMDIwMjA5QgorOjEwNTAxMDAwMjAyMDIwMjAyMDIwMjAyMDIwMkQyMDYyNzI2NTYxNkIxRQorOjEwNTAyMDAwNzA2RjY5NkU3NDIwNjM2QzY1NjE3MjBEMEEyMDIwMjBCOAorOjEwNTAzMDAwNTIyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAzRQorOjEwNTA0MDAwMjAyRDIwNzI2NTczNzQ2MTcyNzQyMDYyNzI2NTYxNkJDOQorOjEwNTA1MDAwNzA2RjY5NkU3NDBEMEEyMDIwMjA3MjIwMjAyMDIwMjA5RAorOjEwNTA2MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA3MjY1Njc1NQorOjEwNTA3MDAwNjk3Mzc0NjU3MjczMjA2MTc0MjA2MjcyNkI3MDc0MEQ1MQorOjEwNTA4MDAwMEEyMDIwMjA1ODJDNzgyMDZFMjAyMDIwMjAyMDIwMjA0QworOjEwNTA5MDAwMjAyMDIwMjAyMDJEMjA2NTc4NjE2RDY5NkU2NTIwNjNCOQorOjEwNTBBMDAwNjg2MTZFNkU2NTZDMjA2RTBEMEEyMDIwMjA0ODJDM0ZEMgorOjEwNTBCMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjBFMworOjEwNTBDMDAwNzQ2ODY5NzMyMDZENjU3MzczNjE2NzY1MDAxQjVCMzI3QgorOjEwNTBEMDAwNEExQjVCMzEzQjMxNDg0MTRFNTM0OTIwNTQ2NTcyNkQ0OAorOjEwNTBFMDAwNjk2RTYxNkMwRDBBMEEwMDFCNUI0QjAwMUI1QjRBMDA3QQorOjEwNTBGMDAwMUI1QjMyNEExQjVCMzEzQjMxNDgwMDFCNUI0NDIwMUI2RQorOjEwNTEwMDAwNUI0NDAwMUI1QjMxM0IzNzMyNDgwMDFCNUIwMDNCMDBCQworOjEwNTExMDAwNDgwMDFCNUI3MzAwMUI1Qjc1MDAxQjdBMkIwQjdGMUIwRQorOjEwNTEyMDAwN0EyRTBDN0YxQjdBMkQwODdGMUI3QTJDMEE3RjFCN0EyNAorOjEwNTEzMDAwMjIwODdGMUE1Nzc5NzM2NTIwMzMzMDIwNTQ2NTcyNkRDOQorOjEwNTE0MDAwNjk2RTYxNkMwRDBBMDAxQjU0MDAxQjU5MDAxQTAwMUU4OQorOjEwNTE1MDAwMDAwODIwMDgwMDAwMUIzRDAwMDAwMDFCNDYwMDBEMDA1OQorOjEwNTE2MDAwM0Y0NDY0NDU2NTQ2NjY0NzY3NDg2ODQ5Njk0RjZGNDNGMQorOjEwNTE3MDAwNjM1MzczNDI2MjUyNzI1Nzc3NTg3ODRDNkMzQzYwRDREOAorOjEwNTE4MDAwNTdENDU3NTA1ODUwNThENjU5RDY1OUI0NTlCNDU5M0M5OQorOjEwNTE5MDAwNjAzQzYwNkM1NzQ4NTcyNjU3MDY1NzkwNTc5MDU3OTg3MQorOjEwNTFBMDAwNTc0ODVGMEM1RjU4NUYzMzVGNDA1RkEwNTdBMDU3RkVDMgorOjEwNTFCMDAwNTlGRTU5REM1N0RDNTc4ODYxOTg2MUMwNjFDQzYxRDhEMQorOjEwNTFDMDAwNjFGNjYxMDI2MjIyNjJGODU2NEE2MjU4NjI2MDU5MjBCMgorOjEwNTFEMDAwMjA2NjZDNjE2NzczM0QwMDIwMjA2MTc4M0QwMDIwMjBDRgorOjEwNTFFMDAwNjI3ODNEMDAyMDIwNjM3ODNEMDAyMDIwNjQ3ODNEMDBGNworOjEwNTFGMDAwMjAyMDYzNzMzRDAwMjAyMDY0NzMzRDAwMjAyMDY1NzNGMAorOjEwNTIwMDAwM0QwMDIwMjA3MzczM0QwMDIwMjA2NDY5M0QwMDIwMjA3NAorOjEwNTIxMDAwNzM2OTNEMDAyMDIwNjI3MDNEMDAyMDIwNzM3MDNEMDBDNgorOjEwNTIyMDAwMjAyMDY5NzAzRDAwMjA2MzY4NjE2RTY1NkMzRDAwMjA0MAorOjEwNTIzMDAwMjAyMDIwNzM2NTY3M0QwMDIwNzQ2OTVGNzM3NDcyM0RBMAorOjEwNTI0MDAwMDAyMDc0Njk1Rjc0NkY3MzNEMDAyMDc0Njk1RjZENjE0NQorOjEwNTI1MDAwNzgzRDAwMjA3NDY5NUY2MjYxNzMzRDAwMjA3NDY5NUY2RQorOjEwNTI2MDAwNzM2OTdBM0QwMDIwNzQ2OTVGNzM3NDY2M0QwMDIwNzQzMQorOjEwNTI3MDAwNjk1RjcyNkY2RjNEMDAyMDc0Njk1RjY2NkM2NzNEMDAwNworOjEwNTI4MDAwMjA3NDY5NUY3NDZGNzQzRDAwMjA3MjY5NUY3MDYzNkU5MworOjEwNTI5MDAwM0QwMDIwNzI2OTVGNzM3NDcyM0QwMDIwNzI2OTVGNzMxNAorOjEwNTJBMDAwNzQ2NjNEMDAyMDcyNjk1RjcyNkY2RjNEMDAyMDcyNjkwNQorOjEwNTJCMDAwNUY2MjYxNzMzRDAwMjA3MjY5NUY3MzY5N0EzRDAwMjAwRgorOjEwNTJDMDAwNzI2OTVGNzQ2Rjc0M0QwMDIwNzI2OTVGNkQ2OTZFM0QzNQorOjEwNTJEMDAwMDAyMDcyNjk1RjY2NkM2NzNEMDAyMDcyNjk1Rjc0NkZDMQorOjEwNTJFMDAwNzMzRDAwMjA3MjY5NUY3NDY4NzIzRDAwMjA3NDY4NUZDRQorOjEwNTJGMDAwNzM3NDY2M0QwMDIwNzQ2ODVGNzM3NDcyM0QwMDIwNzQ5RgorOjEwNTMwMDAwNjg1RjYyNjE3MzNEMDAyMDc0Njg1RjczNjk3QTNEMDA3NQorOjEwNTMxMDAwMjA3NDY4NUY3NDcyNjczRDAwMjA3NDY4NUY2NjZDNjcxNAorOjEwNTMyMDAwM0QwMDIwNzQ2ODVGNjM2RTc0M0QwMDIwNzI2ODVGNzM5NworOjEwNTMzMDAwNzQ3MjNEMDAyMDcyNjg1RjczNzQ2NjNEMDAyMDcyNjg2RAorOjEwNTM0MDAwNUY2MjYxNzMzRDAwMjA3MjY4NUY3MzY5N0EzRDAwMjA3RgorOjEwNTM1MDAwNzI2ODVGNzM3MDYxM0QwMDIwNzI2ODVGNjE3MzZGM0RCQQorOjEwNTM2MDAwMDAyMDcyNjg1RjcyNkY2RjNEMDAyMDcyNjg1RjY2NkMyQworOjEwNTM3MDAwNjczRDAwMjA2RDVGNjM2MTcyNjUzRDAwMjA3MDc0NUY2MgorOjEwNTM4MDAwNjY2QzZGM0QwMDIwNjE3MzVGNjY2QzZGM0QwMDIwNzIzQworOjEwNTM5MDAwNkQ1RjY2NkM2RjNEMDAyMDIwMjA3MTVGNjk2RTNEMDA3RgorOjEwNTNBMDAwMjAyMDcxNUY2Rjc1NzQzRDAwMjA3MTVGNjQ3MjYxNkVDMworOjEwNTNCMDAwM0QwMDIwMjA3MTVGNzQ2OTZEM0QwMDIwMjAyMDcxNUZFOQorOjEwNTNDMDAwNjY2MzNEMDAyMDcxNUY3Mzc0NjE3NDNEMDAyMDcxNUZGRQorOjEwNTNEMDAwNjQ2MTc0NjEzRDAwMjA3MTVGNkQ2RjY0NkQzRDAwMjBGQworOjEwNTNFMDAwNjg2MTZFNjQ1RjZGM0QwMDIwNjg2MTZFNjQ1RjYyM0Q1RQorOjEwNTNGMDAwMDAyMDY4NjE2RTY0NUY2NTNEMDAyMDY4NjE2RTY0NUZENworOjEwNTQwMDAwNjkzRDAwMjAyMDZGNzA2RjczNzQzRDAwMjAyMDc0NjkyNworOjEwNTQxMDAwNkQ2NTZGM0QwMDIwNjM3NTczNzQ2RDMxM0QwMDIwNjNEMQorOjEwNTQyMDAwNzU3Mzc0NkQzMjNEMDAyMDYzNzU3Mzc0NkQ2NDNEMDA1NworOjEwNTQzMDAwMjA3NDc4NzI2MTc0NjUzRDAwMjA3Mjc4NzI2MTc0NjVDMQorOjEwNTQ0MDAwM0QwMDIwMjA2MzVGNkQ2MTcwM0QwMDIwNjM1RjYxNjRGQgorOjEwNTQ1MDAwNjQ3MjNEMDAyMDYzNUY2MTY5NzM3MjNEMDAyMDYzNUY4OQorOjEwNTQ2MDAwNzg3NDYxNjczRDAwMjA2MzVGNjQ2NTY2NzIzRDAwMjA2QgorOjEwNTQ3MDAwNjM1RjY2NkM3MzY4M0QwMDIwNzQ3ODZENjE3ODczM0Q3RQorOjEwNTQ4MDAwMDAyMDcyNjk1RjY1NkQ3MzNEMDAyMDIwNjM1RjZDNzM1RgorOjEwNTQ5MDAwNzIzRDAwMjAyMDYzNUY2OTY1NzIzRDAwMjAyMDYzNUZEQworOjEwNTRBMDAwNjY2MzcyM0QwMDIwMjA2MzVGNkQ2MzcyM0QwMDIwMjBDMworOjEwNTRCMDAwNjM1RjZDNjM3MjNEMDAyMDIwNjM1RjY0NzM3MzNEMDAyMworOjEwNTRDMDAwMjA2MzVGNjQ3MzczNjkzRDAwMjA2MzVGNjQ3MzczNzI2QworOjEwNTREMDAwM0QwMDIwMjA2MzVGNjk3MzcyM0QwMDIwMjA2MzVGNjM5RAorOjEwNTRFMDAwNjE3MjNEMDAyMDIwNjM1RjY1NjY3MjNEMDAyMDYzNUY0RQorOjEwNTRGMDAwNjU3MjczNzQzRDAwMjA2MzVGNjU2MzZFNzQzRDAwMjBDOAorOjEwNTUwMDAwNjM1RjYyNzI2QjYzM0QwMDIwNjM1RjYyNkY2QjYzM0QzQworOjEwNTUxMDAwMDAyMDYzNUY3MjY1NzA2QzNEMDAyMDYzNUY2MzYzNzM5RQorOjEwNTUyMDAwNzIzRDAwMjA2MzVGNzM3NDc0MzEzRDAwMjA2MzVGNzNDQworOjEwNTUzMDAwNzQ3NDMyM0QwMDJCQzA4RUQ4OEVDMEU4QzIwMEU4RTVGRQorOjEwNTU0MDAwMDBGQUJGODQwMEM3MDVEQzU2OEM0RDAyQkYwQzAwQzdCMworOjEwNTU1MDAwMDU2RTVFOEM0RDAyQkYwNDAwQzcwNUJBNUU4QzREMDIxRAorOjEwNTU2MDAwRThGMTAwOTBFODQ5MDFFODE2MDBGNDkwRThFNTAwQkU5MworOjEwNTU3MDAwQkE0REU4MDkwQ0EwOTMxMkU4NUQwQ0U4QzIwOUVCRTQwRgorOjEwNTU4MDAwRThENTBDRThDNDBDMEFDMDc0RjY4QjFFRjg3OTNDMEQwMworOjEwNTU5MDAwNzQyRTNDMDg3NDE3M0M3Rjc0MTM4M0ZCMjA3RkUxODhEMgorOjEwNTVBMDAwODdENjc5NDM4OTFFRjg3OUU4NzcwQ0VCRDMwQkRCNzQ0NworOjEwNTVCMDAwQ0Y0Qjg5MUVGODc5OEIzNjE2N0FFOEMxMEJFQkMxOTA3OAorOjEwNTVDMDAwRTgwMjAwRUJCQkM2ODdENjc5MDAwQkRCNzQxRUEwRDZDMQorOjEwNTVEMDAwNzlCRjYwNTFCOTFEMDA4QkQ5MDYwRTA3RjJBRTA3NzU3MQorOjEwNTVFMDAwMTc0MTJCRDlEMUUzMkVGRjk3N0Q1MTkwMzNDMEEzRjhGQgorOjEwNTVGMDAwNzlCRTg5NERFODg3MEJDM0JFOEQ0REU4ODAwQkVCRUM3RgorOjEwNTYwMDAwQkEwMDAyQjA5M0VFQjA1NUVFQkExMDAyQjA5M0VFQjAwRAorOjEwNTYxMDAwQUFFRUJBMDAwMkVDM0M1NTc1MDhCQTEwMDJFQzNDQUE5RQorOjEwNTYyMDAwNzQwM0U4MkZGNkMzQkEwNDAyQjAxQUVFQjAyMEVFQjA0RAorOjEwNTYzMDAwMzBFRUIwNDBFRUIwODBFRUJBMDAwMkIwMTNFRUIwMDcyQworOjEwNTY0MDAwRUVCQTA4MDJCMDgwRUVCQTAyMDJCMEJCRUVCQTA0MDJCMworOjEwNTY1MDAwQjAwNUVFQzNDNjA2Q0ExMzAxQzcwNkY4NzkwMDAwQzYzNgorOjEwNTY2MDAwMDZGNjc5MDFDNzA2RDA3OTAwMDBDNzA2RDI3OTAwMDA5NgorOjEwNTY3MDAwQzcwNkQ0NzkwMDAwQzcwNkZBNzkwMDAwQzcwNkZDNzk4RQorOjEwNTY4MDAwMDAwMEM3MDZGRTc5MDAwMEM3MDYwMDdBMDAwMEM3MDZDMgorOjEwNTY5MDAwMDI3QUNFNTk4QzBFMDQ3QUM3MDYwNjdBMDAwMEM3MDYzNQorOjEwNTZBMDAwMjc3QTAwMDBDNjA2Mjk3QTAwQzYwNjJBN0EwMEMzOTAyNworOjEwNTZCMDAwQkUyMjRERThDODBBRTgzRjAwMkMzMTNDMDE3N0Y3RThFQworOjEwNTZDMDAwODEwOThCMzYwQzdBRThCNTBBQkU2QTRERThBRjBBMEUzRQorOjEwNTZEMDAwNThFOEY4MEFCRTdBNERFOEE0MEFDMzkwNjBEMUUzODM4MworOjEwNTZFMDAwRkIxODczMTExRUJBMDAwMDhFREEyRUZGOTdCNzUxOEI4QworOjEwNTZGMDAwRUM4OTQ2MTAxRjYxQ0Y5MEU4NEYwQjBBQzA3NTA1RTg5MgorOjEwNTcwMDAwNTYwQkVCRjRDMzkwODMzRUY4NzkwMTc0MTZCRUQ3NzkzQgorOjEwNTcxMDAwRTgzMTBBOEJEMEFDM0MyQzc0MDQzQzIwNzUwNUU4MjM5RQorOjEwNTcyMDAwMEFFRUMzRTlEMkZFODMzRUY4NzkwMTc0RjZCRUQ3Nzk1QQorOjEwNTczMDAwRTgxMTBBOEJEMEFDM0MyQzc0MDgzQzIwNzQwNEU5QjcwNworOjEwNTc0MDAwRkU5MEU4RkYwOUVGQzM5MDhCMTYwNjdBODMzRUY4Nzk0NgorOjEwNTc1MDAwMDE3NDBCQkVENzc5RThFQjA5OEJEMEEzMDY3QUIwMjA5MQorOjEwNTc2MDAwRTg1NzBCOEIxNjA2N0FFQ0U4NkYwQkMzOEIxNjA2N0E5QworOjEwNTc3MDAwODMzRUY4NzkwMTc0MEJCRUQ3NzlFOEM3MDk4QkQwQTNCMworOjEwNTc4MDAwMDY3QUIwMjBFODMzMEI4QjE2MDY3QUVERTg2NzBCQzM3OAorOjEwNTc5MDAwRkFDNjA2RjY3OTAwQzM5MEM2MDZGNjc5MDFGQkMzOTBGNworOjEwNTdBMDAwMDZFODU4MDlCMDIwRTgxMTBCMjY4QjA1RTg0NzBCQjAzNgorOjEwNTdCMDAwMDhFODA2MEJFODAzMEJFODAwMEJFOEZEMEFCODAxMDA1NworOjEwNTdDMDAwRThDRkY0QkEwMjAyRUMyNDAxNzUwMkVCRENCQTA2MDI1RgorOjEwNTdEMDAwRUMwN0MzOTBDNzA2MDg3QTEwMDBFQjA2QzcwNjA4N0FFNAorOjEwNTdFMDAwMDEwMDA2OEUwNkZDNzk4QjNFRkE3OUU4MEUwOUU4MEI3QgorOjEwNTdGMDAwMDA4OTNFRkE3OThDMDZGQzc5MDdDMzkwQkVCMjRERTg2OQorOjEwNTgwMDAwN0MwOThCMTYwODdBNTJFODJBMDlFODBGMEFFODBDMEE4NAorOjEwNTgxMDAwMzNEQkI5MTAwMDkwMjY4QTAxRThCQzA5RThGRDA5NDM5MgorOjEwNTgyMDAwRTJGNEU4RjcwOUU4RjQwOTMzREJCOTEwMDA5MDI2OEFCRQorOjEwNTgzMDAwMDEzQzIwNzIwNTNDN0U3NjAzOTBCMDJFRThFMzA5NDNEQworOjEwNTg0MDAwRTJFQ0JFQjI0REU4MzYwOTgzQzcxMDVBNEE3NUI3QzNCOQorOjEwNTg1MDAwMDY4RTA2MDA3QThCM0VGRTc5RThBMDA4ODkzRUZFNzkyNgorOjEwNTg2MDAwOEMwNjAwN0E1NzhCMzYwRTdBRTgxMjA5QzcwNjA4N0EzQQorOjEwNTg3MDAwMTAwMEJBMDAwMkU4RTgwMEU4ODFGRjVGQkEwMDAwRTgyMworOjEwNTg4MDAwREUwMEJFQjU0REU4RjYwODhDQzBFODNGMDlCMDNBRTg0NgorOjEwNTg5MDAwOTAwOThCQzdFODM1MDlFODdFMDhFOEMzMDA5MEU4QjdBRgorOjEwNThBMDAwMDlFOEE2MDkwQUMwNzRGNjNDMEI3NTA2ODNFRjEwRUJGNQorOjEwNThCMDAwMTk5MDNDMEE3NTA2ODNDNzEwRUIwRjkwM0MwQzc1MDREOQorOjEwNThDMDAwNDdFQjA3OTAzQzA4NzUyNDRGOTA4QjM2RkU3OThCQzdDOQorOjEwNThEMDAwMkJDNjNEMDAwMTcyQTUzRDEwMDE3MjA0ODNFRTIwOTA5RAorOjEwNThFMDAwODNDNjEwODkzNkZFNzk1NzhCRkVFQjgwM0MyRTc1MDhGNworOjEwNThGMDAwQkEwMTEzRTg2QTAwMDdDM0M2MDYwQTdBMDIzMkM5OTBFMQorOjEwNTkwMDAwM0MzMDcyNEMzQzM5NzYwQzI0NUYzQzQxNzI0MjNDNDY0MAorOjEwNTkxMDAwNzczRTJDMDcyQzMwNTBFOENDMDg1ODAyQzhGRTBFMEFGRgorOjEwNTkyMDAwN0E3NDBGQzBFMTA0RTgyRjA5RTgxRTA5MEFDMDc0RjY3MgorOjEwNTkzMDAwRUJDRTI2ODgwREU4RTAwNzhBRDBFODIzMDA4QUMxM0MzOAorOjEwNTk0MDAwMjA3MjA1M0M3RTc2MDM5MEIwMkVFOEQ1MDhFOTcwRkYwMgorOjEwNTk1MDAwRThDNTA3RTgwQTAwMjY4QTA1RTg3QzA4RTkxREZGOTBFQgorOjEwNTk2MDAwRjYwNjI2N0EwMjc1MDI4NkYyNTI4QjM2MUE3QUU4MEQwRQorOjEwNTk3MDAwMDg1QTUyOEFDNjAyMDYyNDdBRjYwNjI2N0EwMTc1MDY2NQorOjEwNTk4MDAwRTg5RjA4RUIwRDkwMzJFNEU4MEQwODhCMzYxQzdBRThBRQorOjEwNTk5MDAwRUMwNzVBOEFDMjAyMDYyNTdBRjYwNjI2N0EwMTc1MDZBRgorOjEwNTlBMDAwRTg3RjA4RUIwNjkwMzJFNEU4RUQwNzhCMzYxRTdBRThENAorOjEwNTlCMDAwQ0MwN0MzOTAwNjhFMDYwNDdBOEIzRTAyN0FFODNDMDczOQorOjEwNTlDMDAwODkzRTAyN0E4QzA2MDQ3QTA3RkYxRTAyN0FDM0JFOTdDQworOjEwNTlEMDAwNERFOEFBMDdDQjkwMDY1N0JFRDc3OUU4NjYwNzhCRDg2MworOjEwNTlFMDAwRTg2MTA3OEJDODJCQ0I3ODExOEVDM0JGMDAwMEI4RkZDRQorOjEwNTlGMDAwRkY1MUI5MDgwMEYzQUI1OUUyRjc1RjA3QzM5MDA2QkU0OQorOjEwNUEwMDAwRDc3OUU4M0YwNzhCRDhEMUUzMkU4QjlGNDQwMEJFMjY4MQorOjEwNUExMDAwNTJFOEYxMDg4QkMzRThERDA4QjgwMTAwRTg3M0YyRTg0QQorOjEwNUEyMDAwRTAwOEJFMkY1MkU4REQwODhCNDcxOEU4QzgwOEJFNzdBQgorOjEwNUEzMDAwNTJFOEQxMDg4QjQ3MjZFOEJDMDhCRTUzNTJFOEM1MDg5NworOjEwNUE0MDAwOEI0NzFFRThCMDA4QkU1QzUyRThCOTA4OEI0NzIwRThENworOjEwNUE1MDAwQTQwOEJFNkU1MkU4QUQwODhCNDcyNEU4OTgwOEJFODBDMworOjEwNUE2MDAwNTJFOEExMDg4QjQ3MkFFODhDMDhFODk1MDhCRTM4NTIwRQorOjEwNUE3MDAwRTg5MjA4OEIwN0U4N0UwOEJFNDE1MkU4ODcwODhCNDcwQQorOjEwNUE4MDAwMUFFODcyMDhCRTRBNTJFODdCMDg4QjQ3MUNFODY2MDg5MQorOjEwNUE5MDAwQkU2NTUyRTg2RjA4OEI0NzIyRTg1QTA4RTg2MzA4QkVFMworOjEwNUFBMDAwRDE1MkU4NjAwODhCNDczOEU4NEIwOEJFQUQ1MkU4NTQ0NQorOjEwNUFCMDAwMDg4QjQ3MzBFODNGMDhCRUI2NTJFODQ4MDg4QjQ3MzJBQgorOjEwNUFDMDAwRTgzMzA4QkVBNDUyRTgzQzA4OEI0NzJFRTgyNzA4QkVGRQorOjEwNUFEMDAwQkY1MkU4MzAwODhCNDczNEU4MUIwOEU4MjQwOEJFODkyOQorOjEwNUFFMDAwNTJFODIxMDg4QjQ3MDRFODBDMDhCRTkyNTJFODE1MDhEQQorOjEwNUFGMDAwOEI0NzE0RTgwMDA4QkU5QjUyRTgwOTA4OEI0NzJDRTg0NgorOjEwNUIwMDAwRjQwN0JFQzg1MkU4RkQwNzhCNDczNkU4RTgwN0JFREE1RgorOjEwNUIxMDAwNTJFOEYxMDc4QjQ3M0FFOERDMDdCRUUzNTJFOEU1MDdCNQorOjEwNUIyMDAwOEI0NzNDRThEMDA3RThEOTA3QkUxOTUzRThENjA3OEI2NgorOjEwNUIzMDAwNDc0OEU4QzEwN0JFRkU1MkU4Q0EwNzhCNDc0MkU4QjVBRQorOjEwNUI0MDAwMDdCRTA3NTNFOEJFMDc4QjQ3NDRFOEE5MDdCRTdDNTM0RQorOjEwNUI1MDAwRThCMjA3OEI0NzRDRTg5RDA3QkU4NTUzRThBNjA3OEI0NAorOjEwNUI2MDAwNDc0RUU4OTEwN0JFOEU1M0U4OUEwNzhCNDc1MEU4ODU2OQorOjEwNUI3MDAwMDdFODhFMDdCRTIyNTNFODhCMDc4QjQ3NEFFODc2MDc3MworOjEwNUI4MDAwQkVFQzUyRTg3RjA3OEI0NzA4RTg2QTA3QkVGNTUyRTg4QgorOjEwNUI5MDAwNzMwNzhCNDc0MEU4NUUwN0JFMTA1M0U4NjcwNzhCNDdFMworOjEwNUJBMDAwNDZFODUyMDdFODVCMDdCRTZBNTNFODU4MDc4QjQ3N0ExNgorOjEwNUJCMDAwRTg0MzA3QkUzRDUzRTg0QzA3OEI0NzcwRTgzNzA3QkUwNAorOjEwNUJDMDAwNDY1M0U4NDAwNzhCNDc3MkU4MkIwN0JFNEY1M0U4MzQzMworOjEwNUJEMDAwMDc4QjQ3NzRFODFGMDdFODI4MDdCRTJCNTNFODI1MDcwMworOjEwNUJFMDAwOEI0NzBDRTgxMDA3QkUzNDUzRTgxOTA3OEI0NzEwRThDMQorOjEwNUJGMDAwMDQwN0JFNTg1M0U4MEQwNzhCNDc3NkU4RjgwNkJFNjFFOAorOjEwNUMwMDAwNTNFODAxMDc4QjQ3NzhFOEVDMDZCRTczNTNFOEY1MDZDNgorOjEwNUMxMDAwOEI0NzNFRThFMDA2RThFOTA2QkU5NzUzRThFNjA2OEJDOAorOjEwNUMyMDAwNDc1MkU4RDEwNkJFQTA1M0U4REEwNjhCNDc1NEU4QzVEMAorOjEwNUMzMDAwMDZCRUE5NTNFOENFMDY4QjQ3NTZFOEI5MDZCRUIyNTM1NgorOjEwNUM0MDAwRThDMjA2OEI0NzU4RThBRDA2QkVCQjUzRThCNjA2OEJFNAorOjEwNUM1MDAwNDc1QUU4QTEwNkJFQzQ1M0U4QUEwNjhCNDc1Q0U4OTVGQworOjEwNUM2MDAwMDZFODlFMDZCRUNENTNFODlCMDY4QjQ3NUVFODg2MDY5NworOjEwNUM3MDAwQkVENjUzRTg4RjA2OEI0NzYwRTg3QTA2QkVERjUzRTg0RQorOjEwNUM4MDAwODMwNjhCNDc2MkU4NkUwNkJFRTg1M0U4NzcwNjhCNDdDQgorOjEwNUM5MDAwN0NFODYyMDZCRUYxNTNFODZCMDY4QjQ3N0VFODU2MDY0OQorOjEwNUNBMDAwQkVGQTUzRTg1RjA2OEI4NzgwMDBFODQ5MDZFODUyMDY5MworOjEwNUNCMDAwQkU0MjU0RTg0RjA2OEI4NzlFMDBFODM5MDZCRTAzNTQ2NworOjEwNUNDMDAwRTg0MjA2OEI0NzY0RTgyRDA2QkUwQzU0RTgzNjA2OEI4NgorOjEwNUNEMDAwNDc2RUU4MjEwNkJFMTU1NEU4MkEwNjhCODc4RTAwRTgzOQorOjEwNUNFMDAwMTQwNkJFMUU1NEU4MUQwNjhCODc5MDAwRTgwNzA2QkUwQQorOjEwNUNGMDAwMjc1NEU4MTAwNjhCODc5MjAwRThGQTA1RTgwMzA2QkVGMQorOjEwNUQwMDAwMzA1NEU4MDAwNjhCODc5NDAwRThFQTA1QkUzOTU0RTg3MQorOjEwNUQxMDAwRjMwNThCODc5NjAwRThERDA1QkU2RjU0RThFNjA1OEIzQQorOjEwNUQyMDAwODc5ODAwRThEMDA1QkU1RDU0RThEOTA1OEE4N0EwMDBCMQorOjEwNUQzMDAwRThBNzA1QkU1NDU0RThDQzA1OEE0NzI4RTg5QjA1QkU3MQorOjEwNUQ0MDAwNjY1NEU4QzAwNThBODdBMTAwRTg4RTA1RThCMzA1QkU2MQorOjEwNUQ1MDAwNzg1NEU4QjAwNThBODdBMjAwRTg3RTA1QkU4MTU0RTg0MQorOjEwNUQ2MDAwQTMwNThBODdBMzAwRTg3MTA1QkU4QTU0RTg5NjA1OEFEMAorOjEwNUQ3MDAwODdBNDAwRTg2NDA1QkU5MzU0RTg4OTA1OEE4N0E1MDBENgorOjEwNUQ4MDAwRTg1NzA1QkU5QzU0RTg3QzA1OEE4N0E2MDBFODRBMDVDQQorOjEwNUQ5MDAwQkVBNTU0RTg2RjA1OEE4N0E3MDBFODNEMDVCRUFFNTQ0RQorOjEwNURBMDAwRTg2MjA1OEE4N0E4MDBFODMwMDVFODU1MDVCRUI3NTRDMworOjEwNURCMDAwRTg1MjA1OEE4N0E5MDBFODIwMDVCRUMwNTRFODQ1MDVEOQorOjEwNURDMDAwOEE4N0FBMDBFODEzMDVCRUM5NTRFODM4MDU4QTg3QUI1QworOjEwNUREMDAwMDBFODA2MDVCRUQyNTRFODJCMDU4QTg3QUQwMEU4RjkzNQorOjEwNURFMDAwMDRCRURCNTRFODFFMDU4QTg3QUUwMEU4RUMwNEJFRTQ3RQorOjEwNURGMDAwNTRFODExMDU4QTg3QUYwMEU4REYwNEJFRUQ1NEU4MDREQgorOjEwNUUwMDAwMDU4QTg3QjAwMEU4RDIwNEU4RjcwNEJFRjY1NEU4RjQ0NworOjEwNUUxMDAwMDQ4QTg3QjEwMEU4QzIwNEJFRkY1NEU4RTcwNDhBODcxOQorOjEwNUUyMDAwQjIwMEU4QjUwNEJFMDg1NUU4REEwNDhBODdCMzAwRTg5MgorOjEwNUUzMDAwQTgwNEJFMTE1NUU4Q0QwNDhBODdCQjAwRTg5QjA0RTg5RQorOjEwNUU0MDAwQzAwNEJFMUE1NUU4QkQwNDhBODdCQzAwRTg4QjA0QkVCNgorOjEwNUU1MDAwMjM1NUU4QjAwNDhBODdCRTAwRTg3RTA0QkUyQzU1RThDRQorOjEwNUU2MDAwQTMwNDhBODdCRjAwRTg3MTA0RTg5NjA0MDdDMzYwMDZBQworOjEwNUU3MDAwMUUxNjhCRUNGRjRFMTZGNzQ2MUEwMDAyNzQwMUZCQjg5MworOjEwNUU4MDAwMDAwMDhFRDg4RUMwODkyRTJEN0FFOENCMDA4MTY2MUE0QworOjEwNUU5MDAwRkZGRUM2MDYyQTdBMDBFOEQ4MDBCODAwNUZBMzJCN0E3NgorOjEwNUVBMDAwRTg1RDAwODAzRTJBN0EwMDc0MEE4MTRFMUEwMDAxQzYxRAorOjEwNUVCMDAwMDYyQTdBMDAxNzFGMDc2MUNGOTA2MDA2MUUxNjhCRUMyQQorOjEwNUVDMDAwRjc0NjFBMDAwMjc0MDFGQkI4MDAwMDhFRDg4RUMwODkxNAorOjEwNUVEMDAwMkUyRDdBODE2NjFBRkZGRUM2MDYyQTdBMDBFODkyMDAwNQorOjEwNUVFMDAwQjgwMDVGQTMyQjdBRTgxNzAwODAzRTJBN0EwMDc0MEE3NAorOjEwNUVGMDAwODE0RTFBMDAwMUM2MDYyQTdBMDAxNzFGMDc2MUNGOTA0QgorOjEwNUYwMDAwQjhGMDAwRTg4Q0VERkYyNjJCN0FDMzkwMDY1MzU2ODAzQworOjEwNUYxMDAwM0UyOTdBMDA3NDAzRTgzRjAwQkVENzc5RTgyNTAyOEI1QQorOjEwNUYyMDAwRDhBMzI3N0EyRThBMDdBMjI5N0FCMENDMkU4ODA3NUVCQQorOjEwNUYzMDAwNUIwN0MzQzYwNjJBN0EwMEI4MEE1RkEzMkI3QUMzOTAxMAorOjEwNUY0MDAwOEIyRTJEN0FFODJCMDBDM0M2MDYyQTdBMDFFODA4MDBCQQorOjEwNUY1MDAwQjgwQTVGQTMyQjdBQzM5MDU3ODAzRTI5N0EwMDc0MEY0QQorOjEwNUY2MDAwOEIzRTI3N0FBMDI5N0EyRTg4MDVDNjA2Mjk3QTAwNUZGQgorOjEwNUY3MDAwQzM5MEJFQjI0REU4MDYwMkJFRDg1MUU4MDAwMkZGNzZEQgorOjEwNUY4MDAwMTQ1OEU4NDcwMkJFREU1MUU4RjMwMUZGNzYwRTU4RThFOAorOjEwNUY5MDAwM0EwMkJFRTQ1MUU4RTYwMUZGNzYxMjU4RTgyRDAyQkU0RgorOjEwNUZBMDAwRUE1MUU4RDkwMUZGNzYxMDU4RTgyMDAyQkUxNDUyRTgwMQorOjEwNUZCMDAwQ0MwMUZGNzYwQTU4RTgxMzAyQkUxQTUyRThCRjAxRkY2RgorOjEwNUZDMDAwNzYwQzU4RTgwNjAyQkVDRjUxRThCMjAxRkY3NjFBNThBNworOjEwNUZEMDAwRThGOTAxQkVCMjRERThBNTAxQkVGMDUxRTg5RjAxRkYwRQorOjEwNUZFMDAwNzYxODU4RThFNjAxQkVGNjUxRTg5MjAxRkY3NjAyNThBRAorOjEwNUZGMDAwRThEOTAxQkVGQzUxRTg4NTAxRkY3NjA0NThFOENDMDFFMAorOjEwNjAwMDAwQkUwMjUyRTg3ODAxRkY3NjAwNThFOEJGMDFCRTA4NTI5MAorOjEwNjAxMDAwRTg2QjAxRkY3NjA2NThFOEIyMDFCRTBFNTJFODVFMDE1OQorOjEwNjAyMDAwRkY3NjA4NThFOEE1MDFCRTIwNTJFODUxMDFGRjc2MTYxOAorOjEwNjAzMDAwNThFODk4MDFCRTg5NERFODQ0MDFDMzkwQkVDOTRERThCNworOjEwNjA0MDAwM0MwMUMzM0MwMDc0MDUzQzAxNzQ1OUMzQzcwNjBDN0E3QgorOjEwNjA1MDAwQ0Q1MEM3MDYwRTdBRjA1MEM3MDYxMDdBRTg1MEM3MDYzMgorOjEwNjA2MDAwMTI3QUVDNTBDNzA2MTQ3QUY0NTBDNzA2MTY3QUZCNTAyMQorOjEwNjA3MDAwQzcwNjE4N0EwMzUxQzcwNjFBN0EwQjUxQzcwNjFDN0E0RAorOjEwNjA4MDAwMEU1MUM3MDYxRTdBMTA1MUM3MDYyMDdBMTI1MUM3MDY1NAorOjEwNjA5MDAwMjI3QTE2NTFDNjA2MjQ3QTAxQzYwNjI1N0EwMUM2MDY1QQorOjEwNjBBMDAwMjY3QTAzQzNDNzA2MEM3QTFBNTFDNzA2MEU3QTRENTFEOQorOjEwNjBCMDAwQzcwNjEwN0E0NzUxQzcwNjEyN0E0QTUxQzcwNjE0N0FBMgorOjEwNjBDMDAwNEY1MUM3MDYxNjdBNTE1MUM3MDYxODdBNTU1MUM3MDY1RgorOjEwNjBEMDAwMUE3QTU2NTFDNzA2MUM3QTU5NTFDNzA2MUU3QTVBNTE2OAorOjEwNjBFMDAwQzcwNjIwN0E1QjUxQzcwNjIyN0E1RTUxQzYwNjI0N0ExQgorOjEwNjBGMDAwMjBDNjA2MjU3QTIwQzYwNjI2N0EwMkMzQTFGODc5NDg2QQorOjEwNjEwMDAwNzQxNEJFRDc3OUU4M0MwMDhCRjhBQzNDM0E3NTA3OEUyNgorOjEwNjExMDAwQzdFODMwMDA4QkY4QzM5MDhCQzcyQjA2RkU3OThBRjA1NgorOjEwNjEyMDAwMjQwRjhBRDAwMkQwMDJEMDgwQzIwQkMwRUUwNDgwQzZGOQorOjEwNjEzMDAwMDMwNDNEQzM4Q0MwRTg5MzAwQjAzQUU4RTQwMDhCQzc4OQorOjEwNjE0MDAwRTg4OTAwQzM1MTMzQzk5MEFDM0MyMDc0RkI5MDBBQzA2RAorOjEwNjE1MDAwNzQyNjJDMzA3MjIyM0MwOTc2MTQzQzExNzIxQTJDMDdEQQorOjEwNjE2MDAwM0MwRjc2MEEzQzJBNzIxMDJDMjAzQzBGNzcwQTk4QzEwQgorOjEwNjE3MDAwRTEwNDAzQzhBQ0VCRDc5MDRFOEJDMTU5QzM5MDA2OEM5OQorOjEwNjE4MDAwQzg4RUMwRTgwMjAwMDdDMzI2OEEwNDQ2MEFDMDc0MDYwNworOjEwNjE5MDAwRTg4RjAwRUJGMzkwQzM5MDBCQzA3NDdBNTEzM0QyQjlGRgorOjEwNjFBMDAwRTgwM0Y3RjE4QkNBRTgwMzAwOEJDMTU5QkE2NDAwRjYyMworOjEwNjFCMDAwRjJFODBDMDA4QUM0OThCMjBBRjZGMkU4MDIwMDhBQzQzNworOjEwNjFDMDAwNTAwQUYwNzQwNTA0MzBFODU4MDA1OEMzODZDNEU4MDc0NAorOjEwNjFEMDAwMDA4NkM0RTgwMjAwQzM5MEMxQzgwNEU4MDgwMEMxQzAzQQorOjEwNjFFMDAwMDRFODAyMDBDMzkwNTM1MDI0MEZCQkNBNjIyRUQ3RThDNAorOjEwNjFGMDAwMzAwMDU4NUJDMzkwODZDNEU4MDcwMDg2QzRFODAyMDBGQworOjEwNjIwMDAwQzM5MDUwQjkwODAwOEFFMDMyQzBEMUMwMDQzMEU4MTExMAorOjEwNjIxMDAwMDBFMkY1NThDMzkwQjAzMEU4MDcwMEMzQjAyMEU4MDFCMQorOjEwNjIyMDAwMDBDMzU2OEIzNkQwNzk4ODg0RDA3NzQ2ODFFNkZGMDE0QgorOjEwNjIzMDAwRkYwNkQ0Nzk4OTM2RDA3OTgxM0VENDc5RkUwMTc1MDg3QworOjEwNjI0MDAwNTZFODE0MDA1RUVCRjE5MDVFQzNCQTAyMDJFQzI0MDE0MgorOjEwNjI1MDAwNzQwNEJBMDYwMkVDQzM5MDgwM0VGNjc5MDA3NDA5NjBCQgorOjEwNjI2MDAwQjgwMTAwRTgyQ0VBNjE5MEJBMDIwMkVDQTgwNDc0Mjg5NAorOjEwNjI3MDAwOEIzNkQyNzk4MzNFRDQ3OTAwNzQxRDhBODREMDc3NDZEOAorOjEwNjI4MDAwODFFNkZGMDE4OTM2RDI3OUZGMEVENDc5QkEwNjAyRUU5MworOjEwNjI5MDAwQkEwMjAyRUNBODA0NzVEQ0ExRDQ3OUMzNTJCQTA2MDI5MgorOjEwNjJBMDAwRUU1QUMzOTA1MjUwQkEwMjAyRUNBODA0NzQwODU4NUEyRAorOjEwNjJCMDAwRThFOUZGRjlDMzkwNTg1QUY4QzM1MjUwQkEwMjAyRUMwOQorOjEwNjJDMDAwQTgwNDc0RkI1ODVBRThEM0ZGQzMzMDMxMzIzMzM0MzU1NQorOjEwNjJEMDAwMzYzNzM4Mzk0MTQyNDM0NDQ1NDY1MzUwOEFFMDgwRTREQQorOjEwNjJFMDAwMEZCQkNBNjJDMEU4MDQyRUQ3RThDRUZGOEFDNDJFRDdGRgorOjEwNjJGMDAwRThDN0ZGNTg1QkMzODZFMEU4REZGRjg2RTBFOERBRkYyNworOjEwNjMwMDAwQzM5MEJFQjI0RDUwMkVBQzNDMDA3NDA1RThBQkZGRUIyMQorOjEwNjMxMDAwRjU1OEMzOTBDODA4MDAwMDU2NTc4Qjc2MDRCRjA0MDA5OAorOjEwNjMyMDAwQzc0NkZDMDAwMEM3NDZGQTAwMDBDNzQ2RjgwMDAwODNENQorOjEwNjMzMDAwN0UwNjAwNzUwRTU2RThCNjBFNTkwQkMwNzUwNThCQzc2NAorOjEwNjM0MDAwRTk1QjAxOEI0NkZDODk0NkZFMEJGRjc1MDVCODAxMDAzMQorOjEwNjM1MDAwRUIwMjMzQzA1MDU2RThBNDBENTk1OUI0MDA4OTQ2RkNFRAorOjEwNjM2MDAwOEI1RUZDODNGQjA4NzYwM0U5MkIwMUQxRTMyRUZGQTdBQworOjEwNjM3MDAwQjI2NEI4MDMwMEU5MjYwMTgzN0VGQTAwNzQxNEM3NDZBQworOjEwNjM4MDAwRkEwMDAwOEE0NDU4OTg1MDhBNDQ1OTk4NTBFOEMyMEYzRAorOjEwNjM5MDAwNTk1OTgzN0VGODAwNzQwQUM3NDZGODAwMDA1NkU4OUJGNgorOjEwNjNBMDAwMDg1OTgzN0UwNjAwNzUwNThCQzdFOUYxMDA4M0ZGMDQ1OQorOjEwNjNCMDAwNzUwM0U5RTYwMDhCQzdFOUU0MDA4MzdFRkUwMDc1MDMwMAorOjEwNjNDMDAwQkYwMjAwRTlENTAwODM3RUZFMDA3NTAzQkYwMTAwRTkyRQorOjEwNjNEMDAwQzkwMDhCNUVGRTgzRkIwNzc2MDNFOTg2MDBEMUUzMkVCRQorOjEwNjNFMDAwRkZBN0EyNjQzM0ZGRTk3RjAwQkYwNDAwODA3QzU4MEY0MQorOjEwNjNGMDAwNzQyMjgzN0VGODAwNzUxQ0ZFNDQ1ODZBMDg1NkU4N0VCNQorOjEwNjQwMDAwMEM1OTU5OEE0NDU4MDQ4MDUwNTZFODcyMEM1OTU5Qzc5RgorOjEwNjQxMDAwNDZGQTAxMDA4MzdFRjgwMDc0MEFDNzQ2RjgwMDAwNTY2OQorOjEwNjQyMDAwRTgxOTA4NTlFQjQyQkYwNDAwODA3QzU4MDA3NDIyODNBRAorOjEwNjQzMDAwN0VGODAwNzUxQ0ZFNEM1ODZBMDg1NkU4NDEwQzU5NTkwNAorOjEwNjQ0MDAwOEE0NDU4MDQ4MDUwNTZFODM1MEM1OTU5Qzc0NkZBMDExOQorOjEwNjQ1MDAwMDA4MzdFRjgwMDc0MEFDNzQ2RjgwMDAwNTZFOERDMDc5RgorOjEwNjQ2MDAwNTlFQjA1QkYwNDAwRUIwMEVCMzFCRjA0MDBFQjJDQzc3OAorOjEwNjQ3MDAwNDZGODAxMDA2QTA4NTZFODA1MEM1OTU5ODA3QzU4MDkwRAorOjEwNjQ4MDAwN0QwNEIwMEZFQjAyQjAwMDA0ODA1MDU2RThGMDBCNTlDOQorOjEwNjQ5MDAwNTlCRjA0MDBFQjA1QkYwNDAwRUIwMEU5QTVGRTVGNUVGOQorOjEwNjRBMDAwQzlDM0U0NjM2MzY0NjM2NDYzNjQ2MzY0RTk2MzI2NjQyNworOjEwNjRCMDAwNTE2NDc4NjNCQTYzQzY2Mzk2NjREMjYzNkE2NDZBNjQzQgorOjEwNjRDMDAwNkY2NDcyNjNDODA4MDAwMDU2NTc4Qjc2MDQ4QjdFMDg5MQorOjEwNjREMDAwNkEwMTU2RThBOTBCNTk1OThBNDYwNkMwRTAwNjA0ODBBRAorOjEwNjRFMDAwNTA1NkU4OUEwQjU5NTlDNzQ2RkUwMDAwODk3RUY4RUJEMgorOjEwNjRGMDAwMDNGRjQ2RkU4QjVFRjhGRjQ2Rjg4MDNGMDA3NUYyODM4RgorOjEwNjUwMDAwN0VGRTEwN0QyNUI4MTAwMDJCNDZGRUQxRjg4OTQ2RkM5MgorOjEwNjUxMDAwQzc0NkZBMDAwMEVCMEI2QTIwNTZFODYyMEI1OTU5RkY5OAorOjEwNjUyMDAwNDZGQThCNDZGQTNCNDZGQzdDRURFQjBDOEJERjQ3OEE0OAorOjEwNjUzMDAwMDc1MDU2RTg0OTBCNTk1OTgwM0QwMDc1RUY2QTAyNTZERAorOjEwNjU0MDAwRTgzQzBCNTk1OUVCMDA1RjVFQzlDM0M4MDQwMDAwNTYxNAorOjEwNjU1MDAwNTc4QjdFMDRDNzQ2RkUwMDAwQkUxNDAwRTkwOTAxOEI3QworOjEwNjU2MDAwNUVGRTgzQzMwNDJCREY4QTg3QUMwQjg4NDQ1QUM2NDQ4MworOjEwNjU3MDAwNTgwODhBNDZGRTg4NDQ1OUM3NDQwNjAwMDBDNjQ0MTk5NAorOjEwNjU4MDAwMDBDNjQ0MUEwMEM2NDQxQjAwQzY0NDFEMERDNjQ0MUU2NgorOjEwNjU5MDAwMDNDNjQ0MUYwMEM2NDQyMDAwQzY0NDIxMDBDNjQ0NUIxNQorOjEwNjVBMDAwMDBDNjQ0NUQwMEM2NDQ1RTAwQzY0NDVGMDBDNjQ0NjA0OQorOjEwNjVCMDAwMDBDNzQ2RkMwMDAwRUIwRDhCNUVGQ0QxRTNDNzQwMzAwQQorOjEwNjVDMDAwMDAwMEZGNDZGQzgzN0VGQzEwN0NFREM3NDZGQzAwMDAwQgorOjEwNjVEMDAwRUIwQThCNUVGQ0M2NDA1MDAwRkY0NkZDODM3RUZDMDQ0OQorOjEwNjVFMDAwN0NGMEM3NDQ1NDAwMDBDNzQ0NTYwMDAwOEE0NDVBOThCRgorOjEwNjVGMDAwQkFGODAwMjNEMEI4MDUwMDBCQzI4OTQ2RkM5Q0ZBOEE4MQorOjEwNjYwMDAwNDZGQ0JBRkUwMEVFQkEwMDAwRUM5RDI0MDg4ODQ2RkM2OQorOjEwNjYxMDAwODM3RUZDMDA3NTAyRUI0QUZGNzZGRUU4N0EwQzU5NjgyRgorOjEwNjYyMDAwMzUwMjU2RTgzMjBBNTk1OTBCQzA3NTM0NjgzODAyNTY5QgorOjEwNjYzMDAwRTgyNTBBNTk1OTBCQzA3NTI3Njg0MjAyNTZFODE4MEExRQorOjEwNjY0MDAwNTk1OTBCQzA3NTFBNjg0QzAyNTZFODBCMEE1OTU5MEI3OAorOjEwNjY1MDAwQzA3NTBENjg1NjAyNTZFOEZFMDk1OTU5MEJDMDc0MDIwMAorOjEwNjY2MDAwRUIwMEZGNDZGRTgzQzY2MjM5N0VGRTdEMDNFOUVGRkU0NgorOjEwNjY3MDAwRUIwMDVGNUVDOUMzQzgwODAwMDA1NjU3OEI0NjA0QkFEQQorOjEwNjY4MDAwNjIwMEY3RUEwNTE0MDA4QkYwODM3RTA2MDA3NDA1QjhGQgorOjEwNjY5MDAwMTAwMEVCMDNCODA4MDA4OTQ0MDQ4QTQ2MDg4ODQ0NUM2QgorOjEwNjZBMDAwNTZFODU5MDQ1OThCRjg4QkM3ODk0NDU2ODk0NDU0OEE1MworOjEwNjZCMDAwNDQ1RDg4NDQyRjBCRkY3NTFENjhDMjBGNkEwMTU2RThDMAorOjEwNjZDMDAwMDJGRTgzQzQwNkVCMDA2QTAxNTZFODQ3RkM1OTU5MEJFOQorOjEwNjZEMDAwQzA3NUY0QkYwMTAwODk3RUZBQjkwNTAwQkJFOTZBMkVENgorOjEwNjZFMDAwOEIwNzNCNDZGQTc0MDc0MzQzRTJGNEU5QTQwMzJFRkYwOQorOjEwNjZGMDAwNjcwQUM3NDQwNjAyMDBDNzQ0MDhGNDA4OEI1RTA0RDE0OQorOjEwNjcwMDAwRTM4Qjg3RkMwODg5NDQwQTMzQzA4QkY4ODk0NDU0RTkzOQorOjEwNjcxMDAwODAwMzU2RThCQjA1NTlCRjAxMDA4QTQ0NUQ4ODQ0NjA4OAorOjEwNjcyMDAwRTk2RjAzODM3QzA0MDg3NTMwODA3QzVDMDE3NTE1OEFGMQorOjEwNjczMDAwNDQ1REI0MDBEMUUwOEJEOEZGQjdFNDA4NTZFOEY3MDgxMQorOjEwNjc0MDAwNTk1OUVCMTM4QTQ0NURCNDAwRDFFMDhCRDhGRkI3QzQyQworOjEwNjc1MDAwMDg1NkU4RTIwODU5NTlFQjJFODA3QzVDMDE3NTE1OEFEMQorOjEwNjc2MDAwNDQ1REI0MDBEMUUwOEJEOEZGQjdENDA4NTZFOEM3MDgyMQorOjEwNjc3MDAwNTk1OUVCMTM4QTQ0NURCNDAwRDFFMDhCRDhGRkI3QjQwQworOjEwNjc4MDAwMDg1NkU4QjIwODU5NTk2QTAxNTZFODg3RkI1OTU5OEJFRgorOjEwNjc5MDAwRDg4M0ZCMDM3NzJBRDFFMzJFRkZBN0UxNkFCRjAxMDA2QworOjEwNjdBMDAwOEE0NDVEODg0NDVFRUIxODhBNDQ1RDA0RkYyNDA3ODhCMAorOjEwNjdCMDAwNDQ1REVCMEM4QTQ0NURGRUMwMjQwNzg4NDQ1REVCMDAxOQorOjEwNjdDMDAwRTlDRjAyOEE0NDVEQjQwMEQxRTA4QkQ4RkZCN0ZEMDI2NworOjEwNjdEMDAwNTZFODYzMDg1OTU5NjgxRDAzNTZFODVBMDg1OTU5NkExQQorOjEwNjdFMDAwMDE1NkU4MkZGQjU5NTk4QkQ4ODNGQjAzNzczNkQxRTM0OQorOjEwNjdGMDAwMkVGRkE3RDk2QUJGMDEwMDhBNDQ1RDg4NDQ1RkVCMjQ1RAorOjEwNjgwMDAwOEE0NDVEMDRGRjhBNTQwNDgwQzJGRjIyQzI4ODQ0NUQyQQorOjEwNjgxMDAwRUIxMjhBNDQ1REZFQzA4QTU0MDQ4MEMyRkYyMkMyODgwMworOjEwNjgyMDAwNDQ1REVCMDBFOTZCMDI4QjVDMDY4M0MzRkVEMUUzOEIxNgorOjEwNjgzMDAwNDAwODg5MDQ4QjFDRkY3NzA2NkEwMDU2RTg4NUZDODNCNAorOjEwNjg0MDAwQzQwNjhCNUMwNjRCRDFFMzhCNDAwODg5NDQwMjhCNUMwOQorOjEwNjg1MDAwMDJGRjc3MDY2QTAxNTZFODZBRkM4M0M0MDY2QTAxNTY5RAorOjEwNjg2MDAwRThCMUZBNTk1OThCRDg4M0ZCMDM3NjAzRTkxRjAyRDFBQgorOjEwNjg3MDAwRTMyRUZGQTdEMTZBOEI1QzAyOEI0NzA0ODk0NDAyOEIwRAorOjEwNjg4MDAwNUMwMjgwM0Y0NDc1MEQ4QjVDMDI4QTQ3MDFCNDAwM0I3QgorOjEwNjg5MDAwNDQwNDdERTI4QjQ2MDREMUUwOEIxQzAzRDg4QjQ0MDI3OAorOjEwNjhBMDAwODk0NzA4OEI1QzA2NEJEMUUzOEI0NDAyODk0MDA4RTk5OQorOjEwNjhCMDAwREUwMThCNUMwMjhCNDcwMjg5NDQwMjhCNUMwMjgwM0ZDNQorOjEwNjhDMDAwNDQ3NTBEOEI1QzAyOEE0NzAxQjQwMDNCNDQwNDdERTJCMQorOjEwNjhEMDAwOEI0NjA0RDFFMDhCMUMwM0Q4OEI0NDAyODk0NzA4OEI3QworOjEwNjhFMDAwNUMwNjRCRDFFMzhCNDQwMjg5NDAwOEU5QTIwMUJGMDE1OQorOjEwNjhGMDAwMDBFOTlDMDE4QjVDMDI4QTA3QjQwMDg5NDZGOEI5MEM1OAorOjEwNjkwMDAwMDBCQkExNkEyRThCMDczQjQ2Rjg3NDA3NDM0M0UyRjRCMQorOjEwNjkxMDAwRTk3NzAxMkVGRjY3MTg4QjQ2MDREMUUwOEI1QzAyMDNGOAorOjEwNjkyMDAwRDg4QjQ3MDg4QjVDMDZGRjQ0MDZEMUUzODk0MDA4OEI2RgorOjEwNjkzMDAwMUM4MDdGMDEwMDc0MTI4QjVDMDI4QTQ3MDE4QjFDOEFDOQorOjEwNjk0MDAwNTcwMUI2MDA4QkRBODg0MDE4RTk0MDAxRkY0QzA2RTk5MAorOjEwNjk1MDAwM0EwMThCNUMwMjhBNDcwMThCMUM4QTU3MDFCNjAwOEI3NworOjEwNjk2MDAwREE4ODQwMThFOTI1MDE4QjVDMDI4QTQ3MDE4QjFDOEE3MgorOjEwNjk3MDAwNTcwMUI2MDA4QkRBODg0MDE4RkY0QzA2RTkwRDAxOEJGMQorOjEwNjk4MDAwNUMwMjhBNDcwMThCMUM4QTU3MDFCNjAwOEJEQTMwNDBDMworOjEwNjk5MDAwMThFOUY4MDBCOEYwMTA4QkY4ODk0NDU0OEE0NDVGODhFRAorOjEwNjlBMDAwNDQ1REU5RTcwMDhBNDQxQzk4M0QwMjAwNzQwNzNEMDNGQQorOjEwNjlCMDAwMDA3NDAyRUIwN0M3NDZGRTAwMDBFQjJCOEE0NDFDOThDQworOjEwNjlDMDAwRDFFMDhCRDhGRkI3NjkwMjU2RTg2QjA2NTk1OTZBMDFDNgorOjEwNjlEMDAwNTZFODQwRjk1OTU5ODk0NkZFODM3RUZFMDA3NDA2ODNDNQorOjEwNjlFMDAwN0VGRTAzNzVFOUVCMDA4MzdFRkUwMzc0NjI4QTQ0MUMxRAorOjEwNjlGMDAwOThEMUUwOEJEOEZGQjc2RDAyNTZFODNBMDY1OTU5NTY0MAorOjEwNkEwMDAwRTg0RDk3NTk4OTQ2RkM4QjVFRkM4M0VCRkU4M0ZCMDNDNAorOjEwNkExMDAwNzczM0QxRTMyRUZGQTc5OTZBNjhBQzAyNTZFODE3MDZEMAorOjEwNkEyMDAwNTk1OUVCMjM2ODhGMDI1NkU4MEMwNjU5NTlFQjE4Njg0MAorOjEwNkEzMDAwNzUwMjU2RTgwMTA2NTk1OUVCMEQ2OEM2MDI1NkU4RjY4QworOjEwNkE0MDAwMDU1OTU5RUIwMkVCMDA2QTAxNTZFOEM3Rjg1OTU5QkZERQorOjEwNkE1MDAwMDEwMEVCMzg2OEREMDI1NkU4REMwNTU5NTk2QTAxNTYzOQorOjEwNkE2MDAwRThCMUY4NTk1OUJGMDEwMEVCMjJCOEQwMzA4QkY4ODk1MgorOjEwNkE3MDAwNDQ1NDhBNDQ2MDg4NDQ1REVCMTJCOEUwMjA4QkY4ODk2NgorOjEwNkE4MDAwNDQ1NDhBNDQ1RTg4NDQ1REVCMDJFQjAwRUIwMkVCMDA2OQorOjEwNkE5MDAwRUIwMEU5NDFGQzVGNUVDOUMzMTk2QTI0NkEyRjZBM0FCOAorOjEwNkFBMDAwNkEwMDAwMDEwMDAyMDAwNDAwNDEwMDQyMDA0MzAwNDQ2QgorOjEwNkFCMDAwMDA4MDAwODEwMDgyMDBGRjAwMTc2OTU0NkE3QTZBQTU4RAorOjEwNkFDMDAwNjk1MjY5OTQ2OTZBNkE2NzY5NTI2OTdGNjk2NzY5NEM0MgorOjEwNkFEMDAwNjlGNDY4NzY2OEIyNjhFRTY4RjU2NzAwNjgxMjY4RjU3MAorOjEwNkFFMDAwNjc5RDY3QTg2N0I0Njc5RDY3MDAwMDAxMDBGMDEwRTAyQworOjEwNkFGMDAwMjBEMDMwMjc2OEYyNjZDMzY3MjM2NzEyNjdDODA0MDA5NgorOjEwNkIwMDAwMDA1NjU3OEI3NjA0OEE0NDU5OTg4OTQ2RkM2QTA5OEI0QgorOjEwNkIxMDAwNDZGQzA1ODQwMTUwRTg5MzA4NTk1OThCRjg4QkM3MjUyQQorOjEwNkIyMDAwMDBGMDNEMDAxMDc1NTU4QkM3MjVGMDAwM0RGMDAwNzU1NQorOjEwNkIzMDAwNEI4QkM3MjUwMDBGQzFGODA4ODk0NkZFOEI0NDA0M0JFOAorOjEwNkI0MDAwNDZGRTdEMDUzM0MwRTlFRjAwOEJDNzI1MEYwMEJBMEY2NQorOjEwNkI1MDAwMDAyQkQwM0I1NkZFNzQwNTMzQzBFOURCMDBDNzQ0MDI2RQorOjEwNkI2MDAwMDQwOThBNDZGRTg4NDQ1Rjg4NDQ1RDhCNUVGQ0QxRTM1RAorOjEwNkI3MDAwQzc4N0ZDMDgwNDA5QjhGMDEwRTlCQzAwOEJDNzI1MDBFMgorOjEwNkI4MDAwRjAzRDAwMjA3NTUyOEJDNzI1RjAwMDNERTAwMDc1NDhCMAorOjEwNkI5MDAwOEJDNzI1MDAwRkMxRjgwODg5NDZGRTgzN0VGRTA4N0U1QworOjEwNkJBMDAwMDUzM0MwRTk5MjAwOEJDNzI1MEYwMEJBMEYwMDJCRDAyOAorOjEwNkJCMDAwM0I1NkZFNzQwNTMzQzBFQjdGOTBDNzQ0MDIwQzA5OEEzNAorOjEwNkJDMDAwNDZGRTg4NDQ1RTg4NDQ1RDhCNUVGQ0QxRTNDNzg3RkM0QgorOjEwNkJEMDAwMDgwQzA5QjhFMDIwRUI2MDhCQzcyNTAwRjAzRDAwMzBDMQorOjEwNkJFMDAwNzU1MjhCQzcyNUYwMDAzREQwMDA3NTQ4OEJDNzI1MDAzNgorOjEwNkJGMDAwMEZDMUY4MDg4OTQ2RkU4QjQ0MDQzQjQ2RkU3RDA0MzNGMgorOjEwNkMwMDAwQzBFQjM1OEJDNzI1MEYwMEJBMEYwMDJCRDAzQjU2RkVDQgorOjEwNkMxMDAwNzQwNDMzQzBFQjIyQzc0NDAyMTQwOThBNDZGRTg4NDQzOAorOjEwNkMyMDAwNjA4ODQ0NUQ4QjVFRkNEMUUzQzc4N0ZDMDgxNDA5QjgxQgorOjEwNkMzMDAwRDAzMEVCMDQzM0MwRUIwMDVGNUVDOUMzQzgwNjAwMDA3MAorOjEwNkM0MDAwNTY4Qjc2MDQ2QTA4NTZFODM1MDQ1OTU5OEE0NDU4MDQyNAorOjEwNkM1MDAwODA1MDU2RTgyOTA0NTk1OThCNDQ1NDNCNDQ1Njc1MEFEMAorOjEwNkM2MDAwOEE0NDVEM0E0NDJGNzUwMkVCNjQ4QjQ0NTQ4OTQ0NTY0MAorOjEwNkM3MDAwOEI1QzAyOEE0NzAxODg0NDJGOEE0NDVEQjQwMEMxRTBERQorOjEwNkM4MDAwMDg4QjU0NTQwQkQwOEE0NDVEQjQwMEJCMEYwMDJCRDg0MgorOjEwNkM5MDAwMEJEMzg5NTZGRTZBMTA4QTQ0NTk5ODA1MDQwMDk5MDU1OQorOjEwNkNBMDAwNDAwMTgzRDIwMDUyNTBFODU0MDg4M0M0MDY4OTU2RkM0MAorOjEwNkNCMDAwODk0NkZBOEI0NkZFMDk0NkZBODM0RUZDMDA2QTE5RkZBNAorOjEwNkNDMDAwNzZGQ0ZGNzZGQUU4NzMwNzgzQzQwNkU4RkUwNzVFQzkyMAorOjEwNkNEMDAwQzNDODFDMDAwMDU2NTc4QjVFMDQ4QTQ3NTk5ODhCRjAzNgorOjEwNkNFMDAwOEI1RTA0OEE0NzVEQjQwMDg5NDZFNjgzN0VFNjAwN0RCQworOjEwNkNGMDAwMEE4QjVFMDQ4QjQ3MDQ0ODg5NDZFNjhCNUUwNDhCNDcwQgorOjEwNkQwMDAwMDQzQjQ2RTY3RjA1Qzc0NkU2MDAwMDhCNUUwNDhBNDZFNAorOjEwNkQxMDAwRTY4ODQ3NUQ4QkRFRDFFMzhCOUY1OTAyQzY0NzAyMjA5MAorOjEwNkQyMDAwOEJERUQxRTM4QjlGNTkwMkM2NDcwMzMwOEJERUQxRTM2NAorOjEwNkQzMDAwOEI5RjYxMDJDNjQ3MDIyMDhCREVEMUUzOEI5RjYxMDJFRAorOjEwNkQ0MDAwQzY0NzAzMzA4QjQ2RTY4OTQ2RkE4MzdFRkEwMDc0MThGQworOjEwNkQ1MDAwOEI0NkZBQkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDEwOAorOjEwNkQ2MDAwRTM4QjlGNTkwMjg4NTcwM0JCMEEwMDhCNDZGQTMzRDI0NAorOjEwNkQ3MDAwRjdGMzg5NDZGQTgzN0VGQTAwNzQxODhCNDZGQUJCMEE0OQorOjEwNkQ4MDAwMDAzM0QyRjdGMzgwQzIzMDhCREVEMUUzOEI5RjU5MDIwMAorOjEwNkQ5MDAwODg1NzAyOEI0NkU2ODk0NkZBODM3RUZBMDA3NDE4OEI4MAorOjEwNkRBMDAwNDZGQUJCMEEwMDMzRDJGN0YzODBDMjMwOEJERUQxRTM2MAorOjEwNkRCMDAwOEI5RjYxMDI4ODU3MDNCQjBBMDA4QjQ2RkEzM0QyRjdEOAorOjEwNkRDMDAwRjM4OTQ2RkE4MzdFRkEwMDc0MTg4QjQ2RkFCQjBBMDBGMAorOjEwNkREMDAwMzNEMkY3RjM4MEMyMzA4QkRFRDFFMzhCOUY2MTAyODgyMAorOjEwNkRFMDAwNTcwMjhCNUVFNkQxRTNGRkI3MTIwMjZBMDBGRjc2MDQxQQorOjEwNkRGMDAwRThEMUY2ODNDNDA2NjhEMzBGNkEwMUZGNzYwNEU4QzNCRQorOjEwNkUwMDAwRjY4M0M0MDZGRjc2RTY1NkU4MDE5MzU5NTk4OTU2RjI4RgorOjEwNkUxMDAwODk0NkYwRkY3NkU2NTZFODE0OTM1OTU5ODk1NkVFODk2QgorOjEwNkUyMDAwNDZFQzlDRkFDNDVFRjAyNjhCMDc4OTQ2RUFDNDVFRUMwOQorOjEwNkUzMDAwMjY4QjA3ODk0NkU4QkE1MEZGRUQ4OTQ2RkU5REM3NDY3NgorOjEwNkU0MDAwRTQwMTAwRThFRUEwQkE1MEZGRUQ4OTQ2RkM4QjQ2RkM1OQorOjEwNkU1MDAwMkI0NkZFM0RFODAzNzMwM0U5ODAwMTlDRkFCQTUwRkYxQworOjEwNkU2MDAwRUQ4OTQ2RkM4QjQ2RkMyQjQ2RkU4OTQ2RjhDNDVFRjA1NQorOjEwNkU3MDAwMjY4QjA3MkI0NkVBODk0NkY2QzQ1RUYwMjY4QjA3ODlFNworOjEwNkU4MDAwNDZFQUM0NUVFQzI2OEIwNzJCNDZFODg5NDZGNEM0NUVDRQorOjEwNkU5MDAwRUMyNjhCMDc4OTQ2RThCQTUwRkZFRDg5NDZGRTlEODFCNgorOjEwNkVBMDAwN0VGOEU4MDM3NjFDRkY3NkY4RkY3NkY2RTg3NjAxNTk1RgorOjEwNkVCMDAwNTk4OTQ2RjZGRjc2RjhGRjc2RjRFODY4MDE1OTU5ODk1MgorOjEwNkVDMDAwNDZGNEJGMEUwMEVCMTc4QkRFRDFFMzhCOUY1OTAyQzY1MQorOjEwNkVEMDAwMDEyMDhCREVEMUUzOEI5RjYxMDJDNjAxMjA0NzgzRkYzNworOjEwNkVFMDAwMTE3NkU0OEJERUQxRTM4QjlGNTkwMkM2NDcwRDMwOEJDMAorOjEwNkVGMDAwREVEMUUzOEI5RjYxMDJDNjQ3MEQzMDgzN0VGNjA5NzdCMgorOjEwNkYwMDAwMDVCODBEMDBFQjI2ODM3RUY2NjM3NzA1QjgwRTAwRUIxRgorOjEwNkYxMDAwMUI4MTdFRjZFNzAzNzcwNUI4MEYwMEVCMEY4MTdFRjY0NQorOjEwNkYyMDAwMEYyNzc3MDVCODEwMDBFQjAzQjgxMTAwOEJGOEVCMjU5RAorOjEwNkYzMDAwOEI0NkY2QkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDEyQQorOjEwNkY0MDAwRTM4QjlGNTkwMjg4MTE0RkJCMEEwMDhCNDZGNjMzRDI2MAorOjEwNkY1MDAwRjdGMzg5NDZGNjgzN0VGNjAwNzVENTgzN0VGNDA5NzdDQworOjEwNkY2MDAwMDVCODBEMDBFQjI2ODM3RUY0NjM3NzA1QjgwRTAwRUJDMQorOjEwNkY3MDAwMUI4MTdFRjRFNzAzNzcwNUI4MEYwMEVCMEY4MTdFRjRFOQorOjEwNkY4MDAwMEYyNzc3MDVCODEwMDBFQjAzQjgxMTAwOEJGOEVCMjUzRAorOjEwNkY5MDAwOEI0NkY0QkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDFDQworOjEwNkZBMDAwRTM4QjlGNjEwMjg4MTE0RkJCMEEwMDhCNDZGNDMzRDJGQQorOjEwNkZCMDAwRjdGMzg5NDZGNDgzN0VGNDAwNzVENThCREVEMUUzRkZDOQorOjEwNkZDMDAwQjc1OTAyRkY3NjA0RTg2RTAwNTk1OThCREVEMUUzRkYxMgorOjEwNkZEMDAwQjc2MTAyRkY3NjA0RTg1RTAwNTk1OTZBMDBGRjc2MDQ0MworOjEwNkZFMDAwRTgzMUYzNTk1OThCRDg4M0ZCMDQ3NzFGRDFFMzJFRkY4NworOjEwNkZGMDAwQTcxQjcwRUIyMkM3NDZFNDAwMDBGRjRFRTZFQjBDQzc3MAorOjEwNzAwMDAwNDZFNDAwMDBGRjQ2RTZFQjAyRUIwMDgzN0VFNDAwNzRGQQorOjEwNzAxMDAwMDNFOTJBRkVFOUQ0RkM1RjVFQzlDM0YzNkZGNTZGRkY5NQorOjEwNzAyMDAwNkZGMzZGMDk3MDU1OEJFQzhCNDYwNEI5RTgwM0Y3RTFGOQorOjEwNzAzMDAwOEI0RTA2RjdGMTVEQzM1NThCRUM1NjhCNzYwNkVCMEU0NworOjEwNzA0MDAwOEJERTQ2OEEwNzUwRkY3NjA0RTgzMzAwNTk1OTgwM0NBRQorOjEwNzA1MDAwMDA3NUVERUIwMDVFNURDMzU1OEJFQzU2OEI3NjA2RUI1MQorOjEwNzA2MDAwMTQ4QkRFNDY4QTA3NTBGRjc2MDRFODQ1MDA1OTU5MEIxOQorOjEwNzA3MDAwQzA3NDAyRUIwNzgwM0MwMDc1RTdFQjAwNUU1REMzQzg5RgorOjEwNzA4MDAwMDIwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDZGRTlDRkE4MAorOjEwNzA5MDAwOEE0NkZFQkFGRTAwRUVCQTAyMDBFQ0E4MDI3NDA2OUQxMworOjEwNzBBMDAwRTg5MTlFRUJFOUJBMDAwMDhBNDYwNkVFOURFQjAwNUU5MQorOjEwNzBCMDAwQzlDM0M4MDQwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDY4RQorOjEwNzBDMDAwRkVFOEU2QTE4OTQ2RkNFOEUwQTEyQjQ2RkMzREI4MEJCMgorOjEwNzBEMDAwNzYwNUI4MDEwMEVCMjM5Q0ZBOEE0NkZFQkFGRTAwRUU2NAorOjEwNzBFMDAwQkEwMjAwRUNBODAyNzQwNjlERTg0ODlFRUJEOUJBMDBFQgorOjEwNzBGMDAwMDA4QTQ2MDZFRTlEMzNDMEVCMDA1RUM5QzNDODA0MDA5QgorOjEwNzEwMDAwMDA1NjU3OEI3NjA0ODM3RTA2MDA3NDA3NTZFODAzMDEwOQorOjEwNzExMDAwNTlFQjA1NTZFOEEyMDA1OTg4NDZGRjgwN0VGRjA4NzdBNAorOjEwNzEyMDAwMDY4QTQ2RkZFOTg0MDA4MDdFRkYwRjc2MDNFQjc5OTBBNAorOjEwNzEzMDAwOEE0NkZGQjQwMDJEMEEwMDhCRDg4M0ZCMDQ3NzY3RDEwMQorOjEwNzE0MDAwRTMyRUZGQTdBRjcxQjAwMEVCNjE1NkU4NkIwMDU5QjRCNgorOjEwNzE1MDAwMDAyNTBGMDA4OTQ2RkM1NkU4NUUwMDU5QjQwMDhCRjgwNAorOjEwNzE2MDAwNTZFODU1MDA1OUI0MDBDMUUwMDg4QkQ3MDNEMDhCRkExQworOjEwNzE3MDAwOEI1RUZDRDFFMzg5NzgzMEVCMkU1NkU4M0IwMDU5ODhEMgorOjEwNzE4MDAwNDQ1QkVCMjQ1NkU4MzEwMDU5ODg0NDUwNTZFODI5MDAwNgorOjEwNzE5MDAwNTk4ODQ0NTE1NkU4MjEwMDU5ODg0NDUyNTZFODE5MDA0QworOjEwNzFBMDAwNTk4ODQ0NTNFQjAyRUIwMEU5NUJGRjVGNUVDOUMzNDZCRAorOjEwNzFCMDAwNzFBNjcxNEE3MTdBNzE4NDcxQzgwNDAwMDA1NjhCNzY4OQorOjEwNzFDMDAwMDQ4QTQ0NUE5ODg5NDZGRTlDRkE4QTQ2RkVCQUZFMDAxMgorOjEwNzFEMDAwRUVCQTAyMDBFQ0E4MDE3NTA2OURFODU3OURFQkU5QkFFRQorOjEwNzFFMDAwMDAwMEVDODg0NkZEOUQ4QTQ2RkRFQjAwNUVDOUMzQzhFMQorOjEwNzFGMDAwMDIwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDZGRTlDRkEwRgorOjEwNzIwMDAwOEE0NkZFQkFGRTAwRUVCQTAyMDBFQzMyRTQyNDAxOUQ4QQorOjEwNzIxMDAwNUVDOUMzQzgwNjAwMDA1NjhCNzYwNDhBNDQ1QTk4ODkxMgorOjEwNzIyMDAwNDZGRUU4ODVBMDg5NDZGQUU4N0ZBMDJCNDZGQTNEQjhERAorOjEwNzIzMDAwMEI3NjA0QjAwOEVCMjQ5Q0ZBOEE0NkZFQkFGRTAwRUVGOAorOjEwNzI0MDAwQkEwMjAwRUNBODAxNzUwNjlERThFODlDRUJEQUJBMDBFQQorOjEwNzI1MDAwMDBFQzg4NDZGRDlEOEE0NkZERUIwMDVFQzlDMzU1OEI1OAorOjEwNzI2MDAwRUM1NjhCNTYwNDhBNDYwNkVFMzNGNkVCMDM1MDU4NDYyRQorOjEwNzI3MDAwODNGRTE0N0NGODVFNURDM0M4MDIwMDAwNTY4QjU2MDQ4MgorOjEwNzI4MDAwRUM4ODQ2RkYzM0Y2RUIwMzUwNTg0NjgzRkUxNDdDRjgzNworOjEwNzI5MDAwOEE0NkZGRUIwMDVFQzlDM0M4MDIwMDAwNTY1NzhCNzZEMgorOjEwNzJBMDAwMDQ4MzNFQjAwQjAwNzUxRkJBODgwMUIwMDBFRUJBODZBOQorOjEwNzJCMDAwMDFCMDAwRUU2QTA5NkEwMDY4MzAwMUU4N0QwMTgzQzQwQworOjEwNzJDMDAwMDZDNzA2QjAwQjAxMDA2QTA5OEJDNjA1ODAwMTUwRThBRAorOjEwNzJEMDAwREEwMDU5NTk4QkY4OEJDN0MxRTgwQzI1MEYwMDg5NDY5NQorOjEwNzJFMDAwRkU4QkM3QzFFODA4MjUwRjAwOEI1NkZFODNGMjBDM0JDRQorOjEwNzJGMDAwQzI3NTIxOEJDN0MxRTgwNDI1MEYwMDhCNTZGRTgzRjJBRgorOjEwNzMwMDAwMDYzQkMyNzUwRjhCQzcyNTBGMDA4QjU2RkU4M0YyMDkxMworOjEwNzMxMDAwM0JDMjc0MEQ2QTA3NTZFODM4MDA1OTU5Qzc0NkZFMDc0NAorOjEwNzMyMDAwMDA4QTQ2RkUwNDgwQTIzMzAyOEJDNkJBNjIwMEY3RUFFNgorOjEwNzMzMDAwOEE1NkZFOEJEODg4OTc2QzAwNjgzMjAyOEJDNkJBNjI3OAorOjEwNzM0MDAwMDBGN0VBMDUxNDAwNTBFODBFRkQ1OTU5RUIwMDVGNUVBNgorOjEwNzM1MDAwQzlDM0M4MDIwMDAwNTY4Qjc2MDY4M0U2MEY4QkM2QzFGMAorOjEwNzM2MDAwRTAwQzhCRDY4M0YyMENDMUUyMDgwQkMyOEJENjgzRjIwMQorOjEwNzM3MDAwMDZDMUUyMDQwQkMyOEJENjgzRjIwOTBCQzI4OTQ2RkUxQQorOjEwNzM4MDAwNkExOTZBMTA4QjQ2MDQ5OTA1NDAwMTgzRDIwMDUyNTA1NQorOjEwNzM5MDAwRTg2QjAxODNDNDA2MEI0NkZFODNDQTAwNTI1MEU4OUE4QworOjEwNzNBMDAwMDA4M0M0MDZFODI1MDFFQjAwNUVDOUMzNTU4QkVDNTY4QgorOjEwNzNCMDAwNTczM0ZGNkEwMTY4ODYwMUU4QTNGRTU5NTlCMTEwMkFDNAorOjEwNzNDMDAwNEUwNkQzNjYwNDMzRjZFQjJFODE3RTA0MDA4MDcyMDRGMQorOjEwNzNEMDAwQjAwMUVCMDJCMDAwNTA2ODg4MDFFODgxRkU1OTU5NkE5QgorOjEwNzNFMDAwMDM2ODg2MDFFODc3RkU1OTU5NkEwMTY4ODYwMUU4NkRFRAorOjEwNzNGMDAwRkU1OTU5RDE2NjA0NDYzQjc2MDY3Q0NEMzNGNkVCMjQyNAorOjEwNzQwMDAwRDFFNzZBMDM2ODg2MDFFODU0RkU1OTU5NkEwMTY4ODYyMworOjEwNzQxMDAwMDFFODRBRkU1OTU5Njg4ODAxRTg1Q0ZFNTk5ODI1MDEzRgorOjEwNzQyMDAwMDAwQkY4NDY4M0ZFMTA3Q0Q3NkEwMDY4ODYwMUU4MkRDMQorOjEwNzQzMDAwRkU1OTU5OEJDN0VCMDA1RjVFNURDMzU1OEJFQzU2NTcwOQorOjEwNzQ0MDAwOEI3RTA4NkEwMTY4ODYwMUU4MTNGRTU5NTlCODIwMDA0RQorOjEwNzQ1MDAwMkJDNzUwRkY3NjA2RkY3NjA0RThBMjAwODNDNDA2ODk5NgorOjEwNzQ2MDAwNTYwNjg5NDYwNDMzRjZFQjQ3ODE3RTA2MDA4MDcyMEM4RgorOjEwNzQ3MDAwNzUwNjgzN0UwNDAwNzIwNEIwMDFFQjAyQjAwMDUwNjgxMAorOjEwNzQ4MDAwODgwMUU4RDlGRDU5NTk2QTAzNjg4NjAxRThDRkZENTk5QQorOjEwNzQ5MDAwNTk2QTAxNjg4NjAxRThDNUZENTk1OTZBMDFGRjc2MDZGNworOjEwNzRBMDAwRkY3NjA0RTg1ODAwODNDNDA2ODk1NjA2ODk0NjA0NDZEOAorOjEwNzRCMDAwM0JGNzdDQjU2QTAwNjg4NjAxRThBMkZENTk1OTZBMDA2RAorOjEwNzRDMDAwNjg4NjAxRTg5OEZENTk1OTVGNUU1REMzNTU4QkVDNTY5RgorOjEwNzREMDAwNkEwMTY4ODYwMUU4ODZGRDU5NTkzM0Y2RUIwMDY4ODgzMQorOjEwNzRFMDAwMDFFODk0RkQ1OUE4MDE3NTA4OEJDNjQ2M0Q2NDAwN0NFRgorOjEwNzRGMDAwRUQ2QTAwNjg4NjAxRTg2NUZENTk1OTVFNURDM0M4MDQwMAorOjEwNzUwMDAwMDAwMDhCNDYwNDhCNTYwNjhCNEUwOEUzMDZEMUUwRDE3MworOjEwNzUxMDAwRDJFMkZBODk0NkZDODk1NkZFOEI1NkZFOEI0NkZDRUI3RQorOjEwNzUyMDAwMDBDOUMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwNzUzMDAwNTA3MjY1NzY2OTZGNzU3MzIwNEQ2NTZFNzUwMDQyNjU5MgorOjEwNzU0MDAwNjc2OTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwNzU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwNzU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwNzU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwNzU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwNzU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwNzVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwNzVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwNzVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwNzVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwNzVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwNzVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwNzYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwNzYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwNzYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwNzY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwNzY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwNzY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwNzY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwNzY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwNzY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwNzZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwNzZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwNzZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTA2RjcyNzQxNQorOjEwNzZEMDAwMjAzMDAwNTA2RjcyNzQyMDMxMDA1MDZGNzI3NDIwMzI2RAorOjEwNzZFMDAwMDA1MDZGNzI3NDIwMzMwMDUwNkY3Mjc0MjAzNDAwNTA1OQorOjEwNzZGMDAwNkY3Mjc0MjAzNTAwNTA2RjcyNzQyMDM2MDA1MDZGNzJCNAorOjEwNzcwMDAwNzQyMDM3MDA1MDZGNzI3NDIwMzgwMDUwNkY3Mjc0MjBFQworOjEwNzcxMDAwMzkwMDUwNkY3Mjc0MjAzMTMwMDA1MDZGNzI3NDIwMzExNAorOjEwNzcyMDAwMzEwMDUwNkY3Mjc0MjAzMTMyMDA1MDZGNzI3NDIwMzEwQQorOjEwNzczMDAwMzMwMDUwNkY3Mjc0MjAzMTM0MDA1MDZGNzI3NDIwMzFGNgorOjEwNzc0MDAwMzUwMDlDMDFBMzAxQUEwMUIxMDFCODAxQkYwMUM2MDEyNgorOjEwNzc1MDAwQ0QwMUQ0MDFEQjAxRTIwMUVBMDFGMjAxRkEwMTAyMDJFQQorOjEwNzc2MDAwMEEwMjA4MDAwMDA3ODEwMDAzODA4MDgwOUY5MTk1OTFBNAorOjEwNzc3MDAwOUYwMDAzODE4NDhFOTU4NDg0ODQ4NDAwMDM4Mjg0ODRBMgorOjEwNzc4MDAwODQ4NDk1OEU4NDAwMDQ4ODAwQjIwQkM2MEJEQTBCRUU1RAorOjEwNzc5MDAwMEIwMjBDMTYwQzJBMEMzRTBDNTIwQzc3MEM5QzBDQkVFNworOjEwNzdBMDAwMENFMDBDMDIwRDAxODAyMDU0NjU3Mzc0MjA1MDYxNzM0RAorOjEwNzdCMDAwNzM2NTY0MjAxRjIwNTA3MjY1NzM3MzIwODAwMjAwMDE3RQorOjEwNzdDMDAwODAyMDRENjk3MzczNjk2RTY3MjA1Mjc4MjA0NDYxNzQxQworOjEwNzdEMDAwNjExRjIwNTA3MjY1NzM3MzIwODAwMjAwMDE4MDIwNDI3NworOjEwNzdFMDAwNjE2NDIwNTI3ODIwNDQ2MTc0NjEyMDFGMjA1MDcyNjVDQQorOjEwNzdGMDAwNzM3MzIwODAwMjAwMDE4MDIwNTg2RDc0NzIyMDQyNzVERQorOjEwNzgwMDAwNzM3OTFGMjA1MDcyNjU3MzczMjA4MDAyMDAwMTgwMjBGRAorOjEwNzgxMDAwNkU2Rjc0MjA2Mzc1NzI3MjY1NkU3NDZDNzkxRjIwMjBCMAorOjEwNzgyMDAwNjk2RDcwNkM2NTZENjU2RTc0NjU2NDAyMDAyNDBEMkY2MgorOjEwNzgzMDAwMEQzQTBENDUwRDUwMEQ1QjBENjYwRDcxMEQ3QzBEODdEQworOjEwNzg0MDAwMEQ5MjBEOUQwREE4MERCMzBEQkUwREM5MEQ1MzgwMkNDRAorOjEwNzg1MDAwMzI1NDQ0MjA1Mzg2MkMzMzQ0NTQ1MjIwNTM4MjJDMzNDOAorOjEwNzg2MDAwNTI1NDUzMjAxRjUzODEyQzMyNTI0NDIwNTM4NTJDMzJDMgorOjEwNzg3MDAwNDM0NDIwNTM4MzJDMzM0MzU0NTMyMDUzODQyQzMzNDRBOAorOjEwNzg4MDAwNTM1MjIwNTM4NzJDMzI1MjQ5MjcwMjAwMDE4MDIwMjA3NgorOjEwNzg5MDAwNDQ0MzQ0MjAyRDIwNzA2OTZFMjAzMjMwMUYyNzUzODVDOQorOjEwNzhBMDAwMkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk1NgorOjEwNzhCMDAwOEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA0NDUzNTJBQQorOjEwNzhDMDAwMjAyRDIwNzA2OTZFMjAzMTMxMUYyNzUzODQyRTMxODE4NQorOjEwNzhEMDAwODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM2NQorOjEwNzhFMDAwOEQ4RThGMjcwMjAwMDE4MDIwMjA0MzU0NTMyMDJEMjBBRAorOjEwNzhGMDAwNzA2OTZFMjAzNDFGMjc1MzgzMkUzMTgxODI2MzkwODBGQworOjEwNzkwMDAwODE4MjgzODQ4NTg2ODc4ODg5OEE4QjhDOEQ4RThGMjc1OAorOjEwNzkxMDAwMDIwMDAxODAyMDIwNTI0OTIwMkQyMDcwNjk2RTIwMzIwMworOjEwNzkyMDAwMzIxRjI3NTM4NzJFMzE4MTgyNjM5MDgwODE4MjgzODQyNgorOjEwNzkzMDAwODU4Njg3ODg4OThBOEI4QzhEOEU4RjI3MDIwMDAxODBBRgorOjEwNzk0MDAwMjAyMDQ0NTQ1MjIwMkQyMDcwNjk2RTIwMzYyRjM4MUY3RAorOjEwNzk1MDAwMjc1Mzg2MkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODYzRAorOjEwNzk2MDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA0QQorOjEwNzk3MDAwNTI1NDUzMjAyRDIwNzA2OTZFMjAzNTFGMjc1MzgyMkVCQworOjEwNzk4MDAwMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEExOQorOjEwNzk5MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNTI3ODQ0MjAwRQorOjEwNzlBMDAwMkQyMDcwNjk2RTIwMzIxRjI3NTM4MTJFMzA1MzREODE1OAorOjEwNzlCMDAwODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM4NAorOjEwNzlDMDAwOEQ4RThGMjcwMjAwMDE4MDIwMjA1NDc4NDQyMDJEMjBBNgorOjEwNzlEMDAwNzA2OTZFMjAzMzFGMjc1MzgwMkUzMDUzNEQ4MTgyNjM5MAorOjEwNzlFMDAwOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBOEI4QzhEOEUxRQorOjEwNzlGMDAwOEYyNzAyMDAwMTgwMjAyMDQ0NDM0NDIwMkQyMDcwNjlGRAorOjEwN0EwMDAwNkUyMDM1MUYyNzUzODUyRTMxODE4MjYzOTA4MDgxODJCRAorOjEwN0ExMDAwODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFOEYyNzAyMDA0OAorOjEwN0EyMDAwMDE4MDIwMjA0NDUzNTIyMDJEMjA3MDY5NkUyMDM1MUY4NAorOjEwN0EzMDAwMjc1Mzg0MkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODY1RQorOjEwN0E0MDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA2OQorOjEwN0E1MDAwNDM1NDUzMjAyRDIwNzA2OTZFMjAzMTFGMjc1MzgzMkVFRAorOjEwN0E2MDAwMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEEzOAorOjEwN0E3MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNTI0OTIwMkQ3MworOjEwN0E4MDAwMjAyODZFMkU2MzJFMjkxRjI3NTM4NzJFMzE4MTgyNjM3MworOjEwN0E5MDAwOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBOEI4QzhEOEU2RAorOjEwN0FBMDAwOEYyNzAyMDAwMTgwMjAyMDQ0NTQ1MjIwMkQyMDcwNjkyRAorOjEwN0FCMDAwNkUyMDMyMUYyNzUzODYyRTMxODE4MjYzOTA4MDgxODIwRgorOjEwN0FDMDAwODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFOEYyNzAyMDA5OAorOjEwN0FEMDAwMDE4MDIwMjA1MjU0NTMyMDJEMjA3MDY5NkUyMDM3MUZDMgorOjEwN0FFMDAwMjc1MzgyMkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODZCMAorOjEwN0FGMDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjBCOQorOjEwN0IwMDAwNTI3ODQ0MjAyRDIwNzA2OTZFMjAzNjFGMjc1MzgxMkUxNQorOjEwN0IxMDAwMzA1MzREODE4MjYzOTA4MDgxODI4Mzg0ODU4Njg3ODhGQgorOjEwN0IyMDAwODk4QThCOEM4RDhFOEYyNzAyMDAwMTgwMjAyMDU0NzhDQgorOjEwN0IzMDAwNDQyMDJEMjA3MDY5NkUyMDMzMUYyNzUzODAyRTMwNTMzMAorOjEwN0I0MDAwNEQ4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEEzQgorOjEwN0I1MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNDQ0MzQ0MjA4RgorOjEwN0I2MDAwMkQyMDcwNjk2RTIwMzUxRjIwMjAyMDIwMjc1Mzg1MkU2MAorOjEwN0I3MDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDBBMQorOjEwN0I4MDAwMDE4MDIwMjA0NDUzNTIyMDJEMjA3MDY5NkUyMDM1MUYyMworOjEwN0I5MDAwMjAyMDIwMjAyNzUzODQyRTMxODE4MjYzODg4MDgxODI5NworOjEwN0JBMDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNDM1NDUzMjA0OAorOjEwN0JCMDAwMkQyMDcwNjk2RTIwMzExRjIwMjAyMDIwMjc1MzgzMkUxNgorOjEwN0JDMDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDA1MQorOjEwN0JEMDAwMDE4MDIwMjA1MjQ5MjAyRDIwMjg2RTJFNjMyRTI5MUYzRgorOjEwN0JFMDAwMjAyMDIwMjAyNzUzODcyRTMxODE4MjYzODg4MDgxODI0NAorOjEwN0JGMDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNDQ1NDUyMjBGOAorOjEwN0MwMDAwMkQyMDcwNjk2RTIwMzIxRjIwMjAyMDIwMjc1Mzg2MkVDMQorOjEwN0MxMDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDAwMAorOjEwN0MyMDAwMDE4MDIwMjA1MjU0NTMyMDJEMjA3MDY5NkUyMDM3MUY3MAorOjEwN0MzMDAwMjAyMDIwMjAyNzUzODIyRTMxODE4MjYzODg4MDgxODJGOAorOjEwN0M0MDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNTI3ODQ0MjA4MworOjEwN0M1MDAwMkQyMDcwNjk2RTIwMzYxRjIwMjAyMDIwMjc1MzgxMkU3MgorOjEwN0M2MDAwMzA1MzREODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcxMworOjEwN0M3MDAwMDIwMDAxODAyMDIwNTQ3ODQ0MjAyRDIwNzA2OTZFMjA1RAorOjEwN0M4MDAwMzMxRjIwMjAyMDIwMjc1MzgwMkUzMDUzNEQ4MTgyNjNDNAorOjEwN0M5MDAwODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwMDE4MDIwMjA1NgorOjEwN0NBMDAwNDQ0MzQ0MjAyRDIwNzA2OTZFMjAzMjMwMUYyMDIwMjA1NAorOjEwN0NCMDAwMjAyNzUzODUyRTMxODE4MjYzODg4MDgxODI4Mzg0ODU0OQorOjEwN0NDMDAwODY4NzI3MDIwMDAxODAyMDIwNDQ1MzUyMjAyRDIwNzBGNworOjEwN0NEMDAwNjk2RTIwMzEzMTFGMjAyMDIwMjAyNzUzODQyRTMxODFDRQorOjEwN0NFMDAwODI2Mzg4ODA4MTgyODM4NDg1ODY4NzI3MDIwMDAxODA2MQorOjEwN0NGMDAwMjAyMDQzNTQ1MzIwMkQyMDcwNjk2RTIwMzQxRjIwMjBGMworOjEwN0QwMDAwMjAyMDI3NTM4MzJFMzE4MTgyNjM4ODgwODE4MjgzODQ1RgorOjEwN0QxMDAwODU4Njg3MjcwMjAwMDE4MDIwMjA1MjQ5MjAyRDIwNzA2RgorOjEwN0QyMDAwNjk2RTIwMzIzMjFGMjAyMDIwMjAyNzUzODcyRTMxODE3OAorOjEwN0QzMDAwODI2Mzg4ODA4MTgyODM4NDg1ODY4NzI3MDIwMDAxODAxMAorOjEwN0Q0MDAwMjAyMDQ0NTQ1MjIwMkQyMDcwNjk2RTIwMzYyRjM4MUY3OQorOjEwN0Q1MDAwMjAyMDIwMjAyNzUzODYyRTMxODE4MjYzODg4MDgxODJEMworOjEwN0Q2MDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNTI1NDUzMjA3NworOjEwN0Q3MDAwMkQyMDcwNjk2RTIwMzUxRjIwMjAyMDIwMjc1MzgyMkU1MQorOjEwN0Q4MDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDA4RgorOjEwN0Q5MDAwMDE4MDIwMjA1Mjc4NDQyMDJEMjA3MDY5NkUyMDMyMUZFRgorOjEwN0RBMDAwMjAyMDIwMjAyNzUzODEyRTMwNTM0RDgxODI2Mzg4ODBFQworOjEwN0RCMDAwODE4MjgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDU0Nzg3MQorOjEwN0RDMDAwNDQyMDJEMjA3MDY5NkUyMDMzMUYyMDIwMjAyMDI3NTM0RgorOjEwN0REMDAwODAyRTMwNTM0RDgxODI2Mzg4ODA4MTgyODM4NDg1ODZBMgorOjEwN0RFMDAwODcyNzAyMDA2ODA0OTYwNEI2MDMzQzA0MEUwNDg5MDM0NgorOjEwN0RGMDAwNUMwM0UyMDM2MDA4OEEwOEJFMDczODA4MEUwODk1MDc4RQorOjEwN0UwMDAwNkMwN0U2MDcxQzA1NzQwNUZBMDVDNDA0RjAwNENDMDVFQworOjEwN0UxMDAwQTAwNTQ4MDU3ODA2QzgwNjQyMDcyODA2NTAwNjE4MDczOAorOjEwN0UyMDAwRjAwNkEwMDYwMDAwRjQwOEY0MDhENDBEMDQwOTA0MDlDMworOjEwN0UzMDAwMDQwOTA0MDk0MjAwMEMwOTFDMDlFNTBEMDIwMDE0MDk5QgorOjEwN0U0MDAwMDQwOUY0MEQ0MzAwMUMwOTBDMDkwNTBFMDAwNDA0MDk4MworOjEwN0U1MDAwMTQwOTEyMEUyQzA5MkMwOTJDMDkyQzA5MDAwMDNDMDlDQworOjEwN0U2MDAwNkMwOTFFMEU3NDA5NzQwOTc0MDk3NDA5MDAwMTRDMDkyNworOjEwN0U3MDAwMkMwOTJEMEU3NDA5NzQwOTc0MDk3NDA5MDAwMjVDMDkzNworOjEwN0U4MDAwM0MwOTNEMEU3NDA5NzQwOTc0MDk3NDA5MDAwMzZDMDlGNgorOjEwN0U5MDAwNEMwOTREMEU3NDA5NzQwOTc0MDk3NDA5RkYwMDJDMDkwQQorOjEwN0VBMDAwNUMwOTAwMDAwMDA1ODQwOUVDMDk1RTBFRjQwOUY0MDk4MAorOjEwN0VCMDAwRjQwOUY0MDkwMDA2OTQwOTc0MDk2ODBFQUMwQUFDMEFDNgorOjEwN0VDMDAwQUMwQUFDMEEwMDA3QTQwOTg0MDk3MjBFQkMwQUJDMEFGOQorOjEwN0VEMDAwQkMwQUJDMEEwMDA4QjQwOTk0MDk3QzBFRDQwQUQ0MEE2RQorOjEwN0VFMDAwRDQwQUQ0MEEwMDBCQzQwOUE0MDk4MzBFRkMwQUZDMEFCNAorOjEwN0VGMDAwRkMwQUZDMEEwMDBDRDQwOUI0MDk5MDBFMTQwQjE0MEJGNAorOjEwN0YwMDAwMTQwQjE0MEIwMDAyRTQwOUM0MDlBMDBFMkMwQjJDMEI1QgorOjEwN0YxMDAwMkMwQjJDMEIwNDAwRUMwOUQ0MDkwRTAwRkYwMDc0MDk5MworOjEwN0YyMDAwRTQwOTAwMDA4MjAxRkMwOUE0MEFBQzBFODIwMjA0MEFFMgorOjEwN0YzMDAwRjQwOUFGMEU4MjAzMEMwQUZDMDlCMjBFODIwNDE0MEE4MworOjEwN0Y0MDAwMDQwQUI2MEU4MjA1MUMwQTBDMEFCQzBFODIwNjI0MEExQworOjEwN0Y1MDAwMTQwQUMwMEU4MjA3MkMwQTFDMEFDNDBFODIwODM0MEFCNgorOjEwN0Y2MDAwMjQwQUM4MEU4MjA5M0MwQTJDMEFDQzBFODIwQTQ0MEE1MgorOjEwN0Y3MDAwMzQwQUQxMEU4MjEwNEMwQTNDMEFENjBFODIwQjU0MEFFNworOjEwN0Y4MDAwNDQwQURCMEU4MjExNUMwQTRDMEFFMDBFODIwQzY0MEE4MQorOjEwN0Y5MDAwNTQwQUU1MEU4MjEyNkMwQTVDMEFFQTBFODIwRDc0MEExQgorOjEwN0ZBMDAwNjQwQUVGMEU4MjBFN0MwQTZDMEFGNDBFODIwRjg0MEFCOQorOjEwN0ZCMDAwNzQwQUZCMEU4MjEzOEMwQTdDMEEwMjBGODIxNDk0MEE0NAorOjEwN0ZDMDAwODQwQTA5MEY4MjE1OUMwQThDMEExMDBGODIxNkE0MEFEMworOjEwN0ZEMDAwOTQwQTE3MEY4MjE3RjQwOTlDMEExRTBGODIwMkI0MEEzMgorOjEwN0ZFMDAwQjQwQTI2MEY4MjAzQUMwQUFDMEEyRDBGODIwMEM0MEEyMQorOjEwN0ZGMDAwQ0MwQTM0MEY4MjAxQ0MwQUJDMEEzRjBGODIwMkJDMEFCMQorOjEwODAwMDAwQzQwQTREMEY4MjAwREMwQUY0MEE1OTBGODIwMUU0MEEwNworOjEwODAxMDAwRDQwQTYzMEY4MjAyRUMwQURDMEE2RTBGODIwM0Y0MEFCMAorOjEwODAyMDAwRTQwQTdBMEY4MjA0RDQwQUVDMEE4NzBGODIwMDA0MEI1OAorOjEwODAzMDAwMEMwQjkzMEY4MjAxMEMwQkZDMEE5QjBGODIwMkZDMEFCMworOjEwODA0MDAwMDQwQkE3MEY4MjAwMUMwQjI0MEJCMDBGODIwMTI0MEIyMgorOjEwODA1MDAwMTQwQkI1MEY4MjAyMTQwQjFDMEJCRTBGNDQwMDM0MEIyMworOjEwODA2MDAwQTQwQjlDMDE0NDAxM0MwQjJDMEJBMzAxNDQwMjQ0MEJDOAorOjEwODA3MDAwMzQwQkFBMDE0NDAzNEMwQjNDMEJCMTAxNDQwNDU0MEJEOAorOjEwODA4MDAwNDQwQkI4MDE0NDA1NUMwQjRDMEJCRjAxNDQwNjY0MEI2OAorOjEwODA5MDAwNTQwQkM2MDE0NDA3NkMwQjVDMEJDRDAxNDQwODc0MEJGOAorOjEwODBBMDAwNjQwQkQ0MDE0NDA5N0MwQjZDMEJEQjAxNDQwQTg0MEI4OAorOjEwODBCMDAwNzQwQkUyMDE0NDBCOEMwQjdDMEJFQTAxNDQwQzk0MEIxNworOjEwODBDMDAwODQwQkYyMDE0NDBEOUMwQjhDMEJGQTAxNDQwRUE0MEJBMworOjEwODBEMDAwOTQwQjAyMDI0NDBGMkMwQjlDMEIwQTAyMTcxRjBGMkY0QworOjEwODBFMDAwMDAwMDAxODA3ODc4M0EyMDc0NzgyMDYzNzA3MzIwMkEyOQorOjEwODBGMDAwMkEyQTJBMkEwMjAwMDE4MDc4NzgzQTIwNzQ3ODIwNjM5QworOjEwODEwMDAwNzA3MzIwMkEyQTJBMkEyQTAyMDAwMTgwNzg3ODNBMjBDRAorOjEwODExMDAwNzQ3ODIwNjM3MDczMjAyQTJBMkEyQTJBMDIwMDAxODA5OAorOjEwODEyMDAwNzg3ODNBMjA3NDc4MjA2MzcwNzMyMDJBMkEyQTJBMkFDMQorOjEwODEzMDAwMDIwMDAxQzA3ODc4M0EyMDcyNjMyMDYzNzA3MzIwMkFBRAorOjEwODE0MDAwMkEyQTJBMkEwMjAwMDFDMDc4NzgzQTIwNzI2MzIwNjMyMgorOjEwODE1MDAwNzA3MzIwMkEyQTJBMkEyQTAyMDAwMUMwNzg3ODNBMjAzRAorOjEwODE2MDAwNzI2MzIwNjM3MDczMjAyQTJBMkEyQTJBMDIwMDAxQzAxRgorOjEwODE3MDAwNzg3ODNBMjA3MjYzMjA2MzcwNzMyMDJBMkEyQTJBMkE4OAorOjEwODE4MDAwMDIwMDAxODA0OTZFNzM3NDYxNkM2QzIwNEM2RjZGNzBEQgorOjEwODE5MDAwNjI2MTYzNkIxRjUwNzI2NTczNzMyMDgwMjA3NDZGMjA1RgorOjEwODFBMDAwNzM3NDYxNzI3NDAyMDAwMTgwMjA0MzYxNjI2QzY1MjAwNworOjEwODFCMDAwNzQ2RjIwNTI2NTZENkY3NDY1MUY1MDcyNjU3MzczMjAwNAorOjEwODFDMDAwODAyMDc0NkYyMDczNzQ2MTcyNzQwMjAwMDE4MDIwNENFRgorOjEwODFEMDAwNkY2MzYxNkMyMDRDNkY2RjcwNjI2MTYzNkIyMDFGMjA1NgorOjEwODFFMDAwMjA1Mjc1NkU2RTY5NkU2NzIwMkUyRTJFMDIwMDAxODA2MQorOjEwODFGMDAwNTI2NTZENkY3NDY1MjA0QzZGNkY3MDYyNjE2MzZCMjBBOAorOjEwODIwMDAwMUYyMDIwNTI3NTZFNkU2OTZFNjcyMDJFMkUyRTAyMDA4MgorOjEwODIxMDAwMDE4MDIwNDk2RTc0NzI2RTZDMjA0QzZGNkY3MDYyNjFDOQorOjEwODIyMDAwNjM2QjFGMjAyMDUyNzU2RTZFNjk2RTY3MjAyRTJFMkU5NgorOjEwODIzMDAwMDIwMDAxODA1NDcyNjE2RTczNkQ2OTc0MjA1MDYxNzQyNAorOjEwODI0MDAwNzQ2NTcyNkUxRjIwMjA1Mjc1NkU2RTY5NkU2NzIwMkVFNworOjEwODI1MDAwMkUyRTAyMDAwMTgwMjAyMDMwM0EyMDI3NDM4MDAwMDE4QQorOjEwODI2MDAwODAyMDIwMzEzQTIwMjc0MzgxMDAwMTgwMjAyMDMyM0FBQgorOjEwODI3MDAwMjAyNzQzODIwMDAxODAyMDIwMzMzQTIwMjc0MzgzMDBCNworOjEwODI4MDAwMDE4MDIwMjAzNDNBMjAyNzQzODQwMDAxODAyMDIwMzVCQgorOjEwODI5MDAwM0EyMDI3NDM4NTAwMDE4MDIwMjAzNjNBMjAyNzQzODY1NAorOjEwODJBMDAwMDAwMTgwMjAyMDM3M0EyMDI3NDM4NzAwMDE4MDIwMjBDQQorOjEwODJCMDAwMzgzQTIwMjc0Mzg4MDAwMTgwMjAyMDM5M0EyMDI3NDM3QworOjEwODJDMDAwODkwMDAxODAyMDMxMzAzQTIwMjc0MzhBMDAwMTgwMjAzNAorOjEwODJEMDAwMzEzMTNBMjAyNzQzOEIwMDAxODAyMDMxMzIzQTIwMjc2OAorOjEwODJFMDAwNDM4QzAwMDE4MDIwMzEzMzNBMjAyNzQzOEQwMDAxODBFOAorOjEwODJGMDAwMjAzMTM0M0EyMDI3NDM4RTAwMDE4MDIwMzEzNTNBMjA0NgorOjEwODMwMDAwMjc0MzhGMDAyQTJBMjA0RDYxNjk2RTIwMjA0RDY1NkUxQgorOjEwODMxMDAwNzUyMDJBMkEwMDRENkY2RTY5NzQ2RjcyMjA2MTIwNTA5QgorOjEwODMyMDAwNkY3Mjc0MDA0RDZGNkU2OTc0NkY3MjIwNjEyMDUzNjlCMworOjEwODMzMDAwNjc2RTYxNkMwMDQ1NzM3NDY5NkQ2MTc0NjUyMDQzNTBBQworOjEwODM0MDAwNTMwMDQ0Njk2MTY3NkU2RjczNzQ2OTYzNzMwMDRDNkZBNworOjEwODM1MDAwNjM2MTZDMjA0QzZGNkY3MDYyNjE2MzZCMDA1MjY1NkQ3RQorOjEwODM2MDAwNkY3NDY1MjA0QzZGNkY3MDYyNjE2MzZCMDA0OTZFNzQ0RgorOjEwODM3MDAwNzI2RTZDMjA0QzZGNkY3MDYyNjE2MzZCMDA1NDcyNjEzRgorOjEwODM4MDAwNkU3MzZENjk3NDIwNTA2MTc0NzQ2NTcyNkUwMDQyNjEyMQorOjEwODM5MDAwNzU2NDIwNTI2MTc0NjUwMDQ0NjE3NDYxMjA0MjY5NzQ5RgorOjEwODNBMDAwNzMwMDUzNzQ2RjcwMjA0MjY5NzQ3MzAwNTA2MTcyNjk3NgorOjEwODNCMDAwNzQ3OTAwNDQ2MTc0NjEyMDUwNjE3NDc0NjU3MjZFMDA1OAorOjEwODNDMDAwNTQ3ODIwNDY2QzZGNzcyMDQzNkY2RTc0NzI2RjZDMDAyOAorOjEwODNEMDAwNTA2RjcyNzQyMDRFNzU2RDYyNjU3MjAwMzUzMDAwMzdEMworOjEwODNFMDAwMzUwMDMxMzEzMDAwMzEzMzM0MkUzNTAwMzEzNTMwMDAzNQorOjEwODNGMDAwMzIzMDMwMDAzMzMwMzAwMDM2MzAzMDAwMzEzMjMwMzBGRgorOjEwODQwMDAwMDAzMTM4MzAzMDAwMzIzMDMwMzAwMDMyMzQzMDMwMDAxQgorOjEwODQxMDAwMzMzNjMwMzAwMDM0MzgzMDMwMDAzNzMyMzAzMDAwMzlDNQorOjEwODQyMDAwMzYzMDMwMDAzMTM5MkMzMjMwMzAwMDMzMzgyQzM0MzA5MworOjEwODQzMDAwMzAwMDM1MzYyQzMwMzAzMDAwMzUzNzJDMzYzMDMwMDBCNworOjEwODQ0MDAwMzYzNDJDMzAzMDMwMDAzNzM2MkMzODMwMzAwMDMxMzE3MworOjEwODQ1MDAwMzUyQzMyMzAzMDAwMzcyMDYyNjk3NDczMDAzODIwNjI2NgorOjEwODQ2MDAwNjk3NDczMDAzMTIwNzM3NDZGNzAyMDYyNjk3NDAwMzExNQorOjEwODQ3MDAwMkUzNTIwNzM3NDZGNzAyMDYyNjk3NDczMDAzMjIwNzMxQworOjEwODQ4MDAwNzQ2RjcwMjA2MjY5NzQ3MzAwNkU2RjIwNzA2MTcyNjkxRQorOjEwODQ5MDAwNzQ3OTAwNkY2NDY0MjA3MDYxNzI2OTc0NzkwMDY1NzYyNAorOjEwODRBMDAwNjU2RTIwNzA2MTcyNjk3NDc5MDA3MzcwNjE2MzY1MjAxNAorOjEwODRCMDAwNzA2MTcyNjk3NDc5MDA2RDYxNzI2QjIwNzA2MTcyNjlBQworOjEwODRDMDAwNzQ3OTAwNDM2RjZDNzU2RDZFNzMwMDQyNjE3MjYyNjUwMgorOjEwODREMDAwNzIyMDUwNkY2QzY1MDA1NTU1NTU1NTU1MkUyRTJFMDA0NworOjEwODRFMDAwNEU2RjZFNjUwMDU4NkY2RTJGNTg2RjY2NjYwMDQzNTQ2RQorOjEwODRGMDAwNTMwMDUwNzI2NTczNzMyMDgwMjA2NjZGNzIyMDZENjUyMworOjEwODUwMDAwNkU3NTAwMjg2MzZGNzU2RTc0Njk2RTY3MkUyRTJFMjk0NgorOjEwODUxMDAwMDAwMDY1NEU2NDIwNEY2NjIwNDM2RjQ0NjUwMDAwMDBGNAorOjEwODUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwODUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwODU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwODU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwODU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwODU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwODU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwODVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwODVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwODVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwODVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwODVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjAwMDAwMDAxRkYKKy8qICBJbnRlbGxpcG9ydCBJSSBsb2Fkd2FyZSAqLworLyogLTMxMjMyIGJ5dGVzIHJlYWQgZnJvbSBmZi5sb2QgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZS5iaW4uaWhleCBiL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZS5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTJkNDBmCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL25ld19jb2RlLmJpbi5paGV4CkBAIC0wLDAgKzEsMjA2IEBACis6MTAwMDAwMDBCNkMzQUFCQkNDREQ5RkNGREUwNkU3NTcwMDAwQzQwNjBGCis6MTAwMDEwMDA5N0MxRTc2N0ZGMUYyOEMwRTc4NzAwMDQyNEMwRTc2NzkwCis6MTAwMDIwMDBGRkY5MjJDMDk3Q0ZENzA5MDBDMEU3MDlBMkMwQkUwNkRBCis6MTAwMDMwMDA5RkFGMzYwMEU3MDUwMEMwQTdDRkJDMDY5N0NGRTc1N0I0Cis6MTAwMDQwMDAwMDAwQjgwNkE3QTFCODA2OTdDRkU3NTcwMDAwMTQwODJDCis6MTAwMDUwMDAwQUMwRTc1NzAwMDBBNEMwQTdDMDdBMDY5RkFGOTIwNzY2Cis6MTAwMDYwMDBFNzA3MDAwMDE0MDhFNzU3RkZGRkJBMDY5RkEwMzgwMDEzCis6MTAwMDcwMDBFNzU5QkEwNkJFMDY5RkEwMzgwMEM4MDlDQTA2MDg2MjNBCis6MTAwMDgwMDA5RkExMzYwOEMwMDk3NjA2MDA2MEE3QzA3QTA2OUZBRjE4Cis6MTAwMDkwMDBDQzAyRTc1NzAwMDBCODA2QTdDMTdBMDY5RkFGMDQwMDVDCis6MTAwMEEwMDBFNzU3MDAwMDhFMDYwQUMxRTcwOTIwQzAxMDA4RTdEMDE0Cis6MTAwMEIwMDAxMDA4RTc2NzQwMDAxMDA4OUZBRjkyMENDMDA5RDAwNkY3Cis6MTAwMEMwMDAwMDYwMDVDNEMwNTlCRTA2MDJDMDlGQUZFQzAwOUZBRkUwCis6MTAwMEQwMDAzNDAyRTc1NzAwMDBBNjA2OUZBMDdBMDJBN0NGN0EwNjRGCis6MTAwMEUwMDA0ODAyRTcwOUJFMDZEMDA2QzgzNzA0MDA5RkFGMDgwM0UwCis6MTAwMEYwMDA5N0NGRTc1NzAwMDBDRTA2OTdDMEQ3MDkwMEMwQzFERkYxCis6MTAwMTAwMDBDODA5QzYwNjA4NjIxNEMwMjcwNEM2MDYxMDk0RjAwNzgyCis6MTAwMTEwMDAxMDA4MDIwMEMxMDcwMTAwNzAwMDA0MDBGMDA3MzAwMTYwCis6MTAwMTIwMDAwNjAwNTBBRkU3MDdGRkZGRDAwNkU3MDcwMDAwQ0UwNjQ2Cis6MTAwMTMwMDBFNzA1MDBDMDk3Q0ZENzA5MDBDMEMxREY0ODAyRDAwOTRBCis6MTAwMTQwMDBDNjA2MjcwMkM2MDZFNzA1MDBDMDk3Q0Y0ODAyQzgzNzkzCis6MTAwMTUwMDAwNDAwMDAwQzBDMDAwMDYwMjFDMEMwMzczRTAwMjNDOTIxCis6MTAwMTYwMDBDMDU3QjQwNTFCQzhDMDE3M0YwMEMwNjdDMEZGMzAwMEIwCis6MTAwMTcwMDAwODAwRjAwNzAwMDAwNDAwMDAwMkMwMTc0QzAwMzAwMDI3Cis6MTAwMTgwMDAwNjAwRjAwN0EwMDEwQTAwNDgwMkMxMDcwMjAwRDcwOUQzCis6MTAwMTkwMDAwMEMwQzFERjUxQUZFNzA1MDBDMDk3Q0Y5RkFGMDgwMzk0Cis6MTAwMUEwMDA5RkFGN0EwMjk3Q0Y5RkFGN0EwMkM5MzcwNDAwQzFERkIxCis6MTAwMUIwMDBDODA5QTIwNjUwMDI2NzAyQTIwNkQxMDcwMDAwMjdEODhDCis6MTAwMUMwMDBBQTA2QzBERjlGQUZDNDAxOTdDRkU3NTcwMDAwRDIwNjUxCis6MTAwMUQwMDA5N0MxRTc1NzAxMDBBODA2OTdDMEM4MDlBMDA2MDg2MkEyCis6MTAwMUUwMDA5N0MwMDAwMkMwMTcwRTAwMjcwMDM0MDEyNzBDMEMwMDM2Cis6MTAwMUYwMDAzNjAxRTcwNzUwQzMxMkMwRTcwN0NDMEIwMjAwRTcwNzQwCis6MTAwMjAwMDAwMTAwQTgwNkU3MDcwNTAwOTBDMDk3Q0ZDODA5QTQwNjFCCis6MTAwMjEwMDAwODYyMDJDMDEwNjQwN0MxRTcwNzAwMDA5RTA2RTcwN0Y2Cis6MTAwMjIwMDA3MjA0MjQwMDk3Q0YyNzA0QTQwNkM4MTcwRTAwMjcwMkUzCis6MTAwMjMwMDA5RTA2RTcwNzgwMDQyNDAwOTdDRkQ3MDkwMEMwQzFERkRFCis6MTAwMjQwMDBFNzU3MDAwMDkwMDYxM0MxOUZBRjA2MDJFNzU3MDAwMDcyCis6MTAwMjUwMDA5RTA2MTNDMEU3MDk5RTA2MzAwMUU3MDdGMjA1MzIwMTRBCis6MTAwMjYwMDBFNzA3MTAwMDk2QzBFNzA5OUUwNjkwMDYwNENGRTc1N0ZGCis6MTAwMjcwMDAwMDAwOUUwNjAyQzE5RkFGMDYwMkU3MDUwMEMwOTdDRkFGCis6MTAwMjgwMDBENzA5MDBDMEMxREYwODkyRTc1NzAyMDBBQTA2MDJDM0RGCis6MTAwMjkwMDBDODA5QTQwNjI3MDJBNjA2MDg2MjAzQzFFNzA1MDBDMDM0Cis6MTAwMkEwMDA5N0NGMjcwNEE0MDZFNzA1MDBDMEYwMDc0MDAwMDgwMDI4Cis6MTAwMkIwMDBGMDA3MDAwMDA0MDAwMDAyQzAxNzBDMDAzMDAwMDYwMDI4Cis6MTAwMkMwMDBGMDA3NDYwMTBBMDBDODE3MDQwMEMxMDcwMjAwNTFBRjM5Cis6MTAwMkQwMDA5N0NGRTc1NzAwMDA5NjA2OTdDMEMxREZDODA5OTYwNjdBCis6MTAwMkUwMDAyNzA0OTYwNjI3NTI5ODA2MDNDMUU3MDc5NjA2OTgwNjQ0Cis6MTAwMkYwMDBDMERGMTcwMkM4MTcwRTAwOUZBRkJBMDNDODA1MDA2MDIxCis6MTAwMzAwMDAwM0MwOUZBRjI0MDM5N0NGOUZBRjA4MDM5N0NGNTcwMjM3Cis6MTAwMzEwMDBDOTA3QTQwNkQ3MDkwMEMwQzFERjA4NjIxQkMwNTAwNDhBCis6MTAwMzIwMDAxMTAyRTcwNTAwQzBDOTA1OTdDRjk3MDJDQTA5RDYwNjkyCis6MTAwMzMwMDBGMjE3MDEwMDA0MDBGMjI3MDAwMDA2MDBDQTE3MkMwMDgzCis6MTAwMzQwMDBGODc3MDEwMDBFMDAwNkMwQ0FEOUY4NTdGRjAwMEUwMDZBCis6MTAwMzUwMDAwMUMxQ0FEOTIyMUMwQzAwRTIyNzAwMDBFMjE3MDEwMEVCCis6MTAwMzYwMDBFMjI3MDAwMENBMDUwMDBDMEMwMEMwMTc0MTAwQzA2NzVFCis6MTAwMzcwMDBDMEZGMzAwMDA4MDAwMDAyQzAxNzBDMDAzMDAwMDYwMDZCCis6MTAwMzgwMDBGMDA3REEwMDBBMDBGMDA3MDAwMDA0MDAwMDBDMDgwMDgzCis6MTAwMzkwMDA0MEQxMDEwMEMwMTlDRTA2QzA1OUMyMDYwNEM5NDlBRkY4Cis6MTAwM0EwMDA5RkFGRUMwMDRBQUY2NzEwQ0UwNkM4MTcwNDAwQzEwNzI0Cis6MTAwM0IwMDAwMTAwRDcwOTAwQzBDMURGNTBBRkU3MDUwMEMwOTdDRkVCCis6MTAwM0MwMDBDMDA3MDEwMEMxMDlBQzA2QzE3NzAxMDA5N0MxRDg3NzA5Cis6MTAwM0QwMDAwMTAwMTJDMEM5MDc2QTA2OUZBRjA4MDQwNEMxQzE3N0IzCis6MTAwM0UwMDAwODAwMTNDMDk3Q0ZDMTc3MDIwMDk3QzFDMTc3MTAwMEYyCis6MTAwM0YwMDAwQ0MwOUZBRjJDMDQ5N0NGQzE3NzA0MDAwNkMwQzkwNzdCCis6MTAwNDAwMDA3MDA2OUZBRjA4MDQ5N0MwMDBDRjAwOTA5N0NGNTA1NDVDCis6MTAwNDEwMDA5N0MxNzA1QzAyMDAwMjAwOTdDMTcwNUMwNDAwMDQwMDg4Cis6MTAwNDIwMDA5N0NGODAwMUMwMDA2MDAwMzAwMDE4MDAwQzAwMDYwMDZCCis6MTAwNDMwMDAwMDAwQ0IwOUIyMDZDQzA5QjQwNjBCNTMxMUMwQzkwMkE3Cis6MTAwNDQwMDBDQTA3MUMwNDlGQUYwODA0OTdDMDBBQzg4MjA4MEFDRkQ1Cis6MTAwNDUwMDA4MjA4OUZBRjA4MDQ5N0MwMDVDMjg5MzA4MjYwNzhDMUM2Cis6MTAwNDYwMDAwMDkwOTdDRjg5MTAwOTUzNzlDMjg5MzA4MjA4N0FDRkRBCis6MTAwNDcwMDBDMERGOTdDRkMwREY5N0NGRTcwOTk2QzA5MjA2RTcwOUE0Cis6MTAwNDgwMDA5OEMwOTQwNjBGQ0ZFNzA5OTZDMDkyMDZFNzA5OThDMDc2Cis6MTAwNDkwMDA5NDA2RTcwOTlFMDYzMDAxRTcwN0YyMDUzMjAxRTcwN0Y3Cis6MTAwNEEwMDAxMDAwOTZDMEQ3MDkwMEMwMTcwMkM4MDk5MDA2QzgzN0M3Cis6MTAwNEIwMDAwRTAwRTc3NzJBMDA5MjA2MzBDMDk3MDJDQTA5RDYwNkQ2Cis6MTAwNEMwMDBFNzc3MjAwMDkyMDYwRUMwRjIxNzAxMDAxMDAwRjIyNzE1Cis6MTAwNEQwMDAwMDAwMTIwMEU3NzcwQTAwOTIwNkNBMDUxRUMwOTcwMkM0Cis6MTAwNEUwMDBDQTA5RDYwNkYyMTcwMTAwMEMwMEYyMjcwMDAwMEUwMDIwCis6MTAwNEYwMDBFNzc3MDIwMDkyMDYwN0MwRjIxNzAxMDA0NDAwRjIyN0Q2Cis6MTAwNTAwMDAwMDAwNDYwMDA2Q0ZGMjE3MDEwMDYwMDBGMjI3MDAwMDRECis6MTAwNTEwMDA2MjAwQ0EwNTlGQUYwODAzMEZDRjU3MDIwOTAyRjEwOTE1Cis6MTAwNTIwMDA5NDA2MEMwMEYxREEwQzAwQzgwOTk4MDY1MDAyNjcwMjI0Cis6MTAwNTMwMDA5ODA2RDEwNzAwMDBDOTA1RTcwOTlFMDY5MDA2RTc1NzBGCis6MTAwNTQwMDAwMDAwOTAwNjAyQzA5RkFGMDYwMkM4MDVFNzA1MDBDMDg0Cis6MTAwNTUwMDBDMERGOTdDRkQ3MDkwMEMwMTcwMDE3MDI5NzAyQzAwOTY0Cis6MTAwNTYwMDA5MkMwRTcwNzA0MDA5MEMwQ0EwOUQ2MDZFNzA3MDAwMDVBCis6MTAwNTcwMDBBODA2RTcwNzZBMDQwMjAwQzA3NzAyMDAwOEMwRjIxNzY1Cis6MTAwNTgwMDAwMTAwNTAwMEYyMjcwMDAwNTIwMDlGQ0YyNDA2QzA3N0UwCis6MTAwNTkwMDAxMDAwMDZDMEYyMTcwMTAwNTgwMEYyMjcwMDAwNUEwMEIwCis6MTAwNUEwMDBDMDc3ODAwMDA2QzBGMjE3MDEwMDcwMDBGMjI3MDAwMDNCCis6MTAwNUIwMDA3MjAwQzA3NzA4MDAxREMxRjIxNzAxMDAwODAwRjIyNzgxCis6MTAwNUMwMDAwMDAwMEEwMEMwNzcwMDAyMDZDMEYyMTcwMTAwNjQwMEI0Cis6MTAwNUQwMDBGMjI3MDAwMDY2MDBDMDc3NDAwMDA2QzBGMjE3MDEwMDU1Cis6MTAwNUUwMDA1QzAwRjIyNzAwMDA1RTAwQzA3NzAxMDAwMUMwMUJDRjU1Cis6MTAwNUYwMDAxQUNGRjIxNzAxMDAwMDAwRjIyNzAwMDAwMjAwQzgwOTFDCis6MTAwNjAwMDAzNDAxQ0ExNzE0MDBEODc3MDEwMDA1QzBDQUQ5RDg1N0Q5Cis6MTAwNjEwMDBGRjAwMDFDMENBRDlFMjE5OTRDMEUyMjcwMDAwRTIxNzI2Cis6MTAwNjIwMDAwMTAwRTIyNzAwMDA5RkFGNDAwNjlGQUZDNDAxRTc1N0RCCis6MTAwNjMwMDAwMDAwRDIwNjlGQTEwRTBBQ0EwNUM4MDVDMDA1RTcwNTNECis6MTAwNjQwMDAwMEMwQzBERjk3Q0ZDODA5QTAwNjA4NjI5N0MwMjcwNDgyCis6MTAwNjUwMDBBMDA2Mjc1MkEyMDYwM0MxRTcwN0EwMDZBMjA2OUZBRjg1Cis6MTAwNjYwMDAwODAzRTc1NzAwMDBBQTA2MDJDMDI3REFBQTA2OTdDRkI4Cis6MTAwNjcwMDBGRkZGRkZGRkZGRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAwNjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTAwNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTAwNkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTAwNkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTAwNkMwMDAwMDAwMDAwMDAwMDAwMDAwM0YwMDAwMDAwMDAwMDAwMEVCCis6MTAwNkQwMDAwMDAwMDAwMDAwMDBGRkZGMDEwMDAwMDAwMDAwMDAwMDFCCis6MTAwNkUwMDBGRkZGRkIxM0U3NTcwMDgwQjIwMDA2QzJFNzA3RUUwQkRGCis6MTAwNkYwMDAxMjAwRTcwNzM0MENCMjAwRTcwN0M2MDdGMjAyQzgwOTg4Cis6MTAwNzAwMDBCNDAwRjgwNzAyMDAwRDAwRDcwOTBFQzBFNzA3MDAwMDhCCis6MTAwNzEwMDAwRUMwQzgwOURFMDBDODE3MDkwMEM5MDdEQTA2QzAwN0ZECis6MTAwNzIwMDAwNDAwNjgwQTAwREE3REMxRTcwOUMwMDA3QzA2RTcwOTE5Cis6MTAwNzMwMDBCRTAwNzgwNkU3MDkxMDAwQkMwNkM4MDdENjA3OUZBRkMxCis6MTAwNzQwMDBBRTA3OUZBRjAwMEFDODA5REUwMDAwMEUwRjAwNDE5MEZGCis6MTAwNzUwMDA5RkRFMDYwMDQ0QUYyNzAwQjIwNjI3MDBCNDA2MjcwMDNDCis6MTAwNzYwMDBCNjA2QzAwNzc0MDA0NEFGMjcwMEQ2MDYwODAwMDA5MDA0Cis6MTAwNzcwMDBDMTA3M0EwMDIwMDAwMURBN0RDMTlGQUZCQTA5QzAwNzY2Cis6MTAwNzgwMDA0NDAwNDhBRjI3MDA3QTA2OUZBRjk2MEFFNzA3MDEwMEFBCis6MTAwNzkwMDBDMDA2RTcwNTBFQzA5N0NGNDlBRkU3ODc0MzAwMEVDMEZDCis6MTAwN0EwMDBFNzA3RkZGRkJFMDY5RkFGQUUwQUMwMDcwMTAwNjBBRkJDCis6MTAwN0IwMDA0QUFGOTdDRjAwMDgwOTA4MTEwODAwREE3Q0MxOTdDRjJCCis6MTAwN0MwMDA2NzA0Q0MwMkMwREY1MTk0QjFBRjA2MDBDMURGQzkwOTk0Cis6MTAwN0QwMDBDQzAyNDk2Mjc1QzFDMERGQTdDRkQ2MDIwRTAwMjQwMDRCCis6MTAwN0UwMDA4MDA0MjIwMDRFMDVEMDAwMEUwQUFBMDAzMDA4QkUwMDg4Cis6MTAwN0YwMDA0QTBBMTAwMDIwMDAwNDAwNkUwNDAyMDA2QTA0MDYwMDg5Cis6MTAwODAwMDAwMDAwMjRDMDA0MDQyOEMwRkVGQjFFQzAwMDA0MjJDMDU3Cis6MTAwODEwMDBGRkY0QzAwMDkwMDkwMDAwMDAwMEZGRkY1NjA4NjAwOEM4Cis6MTAwODIwMDBEMDA4REEwODAwMDkwNDA5MDgwOTMyMDk0MjA5NTAwOTA4Cis6MTAwODMwMDA1MjA5NUEwOTVBMDkyNzAyQ0EwNjk3Q0ZFNzA3MDAwMDRBCis6MTAwODQwMDBDQTA2MEEwRTAxMDBDQTU3MEUwMDlGQzM1QTA5Q0EzN0NBCis6MTAwODUwMDAwMDAwOUZDMjVBMDkwQUQyQjJDRjE2MDhDODA5REUwMEFBCis6MTAwODYwMDAwNzA2OUZDRjZDMDkxNzAyQzgwOURFMDAwMDBFMEYwMEIzCis6MTAwODcwMDA0MTkwOUZERTA2MDBDODA1MzA1MDA2MDA5RkM4NUEwOTA3Cis6MTAwODgwMDAyNzBDMDIwMEIwMDZDMDA5QjIwNjI3MDBCNDA2RTcwNzJECis6MTAwODkwMDAwMDAwQUUwNjI3MDA4MDA2MDAxQzA2MDAyNzAwQjYwNkYyCis6MTAwOEEwMDA0MTkwNjc1MEIwMDYwREMwNjcwMDdFMDYyNzBDMDYwMDE5Cis6MTAwOEIwMDA4MjA2RTcwN0JDMDg4NDA2QzgwNzdFMDY0MTkwNTFBRjUwCis6MTAwOEMwMDA5N0NGOUZBRjQ4MENFNzA5QjYwNkI0MDZFNzA5QjAwNjE0Cis6MTAwOEQwMDBBRTA2NTlBRjk3Q0YyNzBDMDIwMEFDMDY1OUFGOTdDRkExCis6MTAwOEUwMDAwOTBDMDIwMDA5REE0OUQyQzkxOUQ2MDZDODA3N0UwNkUyCis6MTAwOEYwMDBFMDA3MDAwMDYwMDJFMDA3MDQwMEQwMDdDQzA4NDhEQkY2Cis6MTAwOTAwMDA0MTkwNTBBRjk3Q0Y1OUFGOTdDRjU5QUY5N0NGRjA1NzhFCis6MTAwOTEwMDAwNjAwMDYwMDI1QzFFNzA3NzAwNjgwMDY0MTkwNjcwMEMzCis6MTAwOTIwMDA3RTA2MjcwQzA2MDA4MjA2RTcwNzhDMDk4NDA2QzgwN0E2Cis6MTAwOTMwMDA3RTA2NDE5MDUxQUY5N0NGMDcwQzA2MDBDNzU3MDYwMEJGCis6MTAwOTQwMDAwRkMxQzgwNzcwMDYxNUNGMDAwQzAyMDAwMERBNDBEMUI1Cis6MTAwOTUwMDAyNzAwQzIwNjFFQ0YxRENGMjcwQzAyMDBDQzA2MTlDRkUwCis6MTAwOTYwMDAyNzAyMjAwMUU3MDcwODAwMjIwMUU3MDcxMzAwQjBDMEIzCis6MTAwOTcwMDA5N0NGNDE5MDY3MDA3RTA2RTcwMTgyMDYyNzAyODAwNjM2Cis6MTAwOTgwMDBFNzA3OEMwOTg0MDZDODA3N0UwNkMxMDcwMDgwNTBBRkMwCis6MTAwOTkwMDA5N0NGNTlBRjk3Q0YwMDYwMDVDMEU3MDcwMDAwQzQwNkE2Cis6MTAwOUEwMDBBN0NGN0MwNjlGQUYwMDBBRTcwNzAxMDBDNDA2NDlBRjQ2Cis6MTAwOUIwMDBENzA5MDBDMDA3QUZFNzA1MDBDMDRBQUZBN0NGN0MwNjQ0Cis6MTAwOUMwMDBDMDA3RkU3RjQ0QUY0MDAwQzAzNzAwMDE0MTkwQzAzN0YwCis6MTAwOUQwMDAwODAwREZERTUwMDZDMDU3MTAwMDAyQzJDMDA3MTAwMDNBCis6MTAwOUUwMDAyNzAwOUEwNjQxOTA5RkRFNDAwNjQ0QUYyNzAwOUMwNkYwCis6MTAwOUYwMDBDMDA5OUEwNjQxOTAwMEQyMDBEODlGREUwODAwNDRBRjlCCis6MTAwQTAwMDAyNzAwQzgwNjk3Q0ZFNzg3MDA4NDI4QzBFNzY3RkZGQjY5Cis6MTAwQTEwMDAyNEMwOTdDRkU3ODcwMTAwRDIwNkU3NTcwMDAwQTgwNjU5Cis6MTAwQTIwMDA5N0MxOUZBRjAwMEFFNzg3MDAwNjIyQzBFNzA3MDAwMEQyCis6MTAwQTMwMDA5MEMwRTc2N0ZFRkYzRUMwRTcwNzI2MDAwQUMwRTc4N0QxCis6MTAwQTQwMDAwMTAwM0VDMEU3MDdGRkZGQkUwNjlGQUYxMDBCOTdDRjI4Cis6MTAwQTUwMDAxNzAwQTdBRjc4MDZDMDA1MjcwMDc2MDZFNzg3MDEwMEQ0Cis6MTAwQTYwMDBEMjA2OUZBRjAwMEFFNzA3MEMwMDQwQzA5RkFGMTAwQkYzCis6MTAwQTcwMDAwMDkwMjcwMEE2MDYyNzAwQUEwNkU3MDlCMjA2QjQwNkRBCis6MTAwQTgwMDAyNzAwQUUwNjI3MDBBQzA2OUZBRkFFMEFDMDA3MDAwMEU1Cis6MTAwQTkwMDAyNzAwQjIwMjI3MDBCNDAyMjcwMDhFMDZDMDA3MDYwMDE2Cis6MTAwQUEwMDBDODA5REUwMEM4MTcwMzAwQzkwNzcwMDYyOTBBMDBEQTYyCis6MTAwQUIwMDA3REMxOTdDRkQ3MDkwMEMwQzFERjAwOTAyNzAwOTYwNkZGCis6MTAwQUMwMDBFNzA3OTYwNjk4MDYyNzAwQTAwNkU3MDdBMDA2QTIwNkY1Cis6MTAwQUQwMDAyNzAwQTYwNjI3MDA5MDA2MjcwMDlFMDZDODA5OUMwNjQ4Cis6MTAwQUUwMDBDMTA5OUEwNkM5MDdBNDA2MTEwMjA5MDJDODE3NDAwNkRGCis6MTAwQUYwMDAwMURBN0FDMTUxOTRDODA5QzgwNkM5MDdDNjA2QzEwOUY2Cis6MTAwQjAwMDA5QTA2MTEwMjA5MDJDODE3MDgwMDAxREE3QUMxNTE5NDQ1Cis6MTAwQjEwMDBFNzA1MDBDMDk3Q0ZFNzU3MDAwMDc2MDY5N0MwOUZBRjY0Cis6MTAwQjIwMDAwNDAwRTcwOUJFMDZCQTA2RTc1N0ZGRkZCQTA2MDRDMThDCis6MTAwQjMwMDBFNzA3MTAwQkI4MDY5N0NGRTcxNzMyMDBCQTA2RTc2NzRBCis6MTAwQjQwMDBGRjA3QkEwNkU3MDc0NjBCQjgwNjk3Q0ZFNzU3MDAwMDNFCis6MTAwQjUwMDBDMDA2MjNDMEU3MDcwNDAwOTBDMEU3MDcwMDgwODBDMEZDCis6MTAwQjYwMDBFNzA3MDAwMDgwQzBFNzA3MDA4MDgwQzBDMDA3MDAwMEUyCis6MTAwQjcwMDBDMDA3MDAwMEMwMDcwMDAwRTcwNzAwMDA4MEMwRTcwN0NCCis6MTAwQjgwMDAwMDgwODBDMEU3MDcwMDgwNDBDMEMwMDcwMDAwRTcwNzgyCis6MTAwQjkwMDAwMDAwNDBDMEU3MDcwMDAwODBDMEU3MDcwNDAwOTBDMEU1Cis6MTAwQkEwMDBFNzA3MDAwMjQwQzBFNzA3MEMwMjQwQzBFNzA3MDAwMDZCCis6MTAwQkIwMDBDMDA2RTcwNzAwMDBCODA2RTcwNzAwMDBEMjA2RDcwOTFECis6MTAwQkMwMDAwMEMwQzFERjlGQUYzNDAyRTcwNTAwQzA5RkFGQzQwMTgyCis6MTAwQkQwMDA5N0NGRDcwOTAwQzAxNzAwMTcwMjk3MDJFNzU3MDAwMDA4Cis6MTAwQkUwMDBBODA2MDZDMEMwMDk5MkMwQzA3NzA5MDI5RkMxNUMwNTczCis6MTAwQkYwMDA5RkNGMzIwNkQ3MDkwRUMwRTcwNzAwMDAwRUMwOUZBRjk3Cis6MTAwQzAwMDAwMjBDRTcwNTBFQzA5N0NGRDcwOTAwQzAxNzAyQzgwOTJDCis6MTAwQzEwMDBCMEMwRTc2N0ZFN0ZCMEMwQzg3NzAwMjA5RkMxNjRFQjFCCis6MTAwQzIwMDBFNzU3MDAwMEM4MDI5RkMxODBFQkM4OTlDQTAyQzg2Nzk1Cis6MTAwQzMwMDAwNDAwOUZDMTk2RUI5RkNGNENFQkU3MDcwMDAwQTZDMEQ2Cis6MTAwQzQwMDBFNzA5QjBDMEM4MDJFNzA3MDMwMEIwQzA5N0NGQzAwOUVBCis6MTAwQzUwMDBCMDA2QzAzNzAxMDA5N0M5QzkwOUIyMDYwMjAwNDE5MDI5Cis6MTAwQzYwMDA0ODAyQzkxNzA2MDA5RkFGMDgwNDlGQTI3MjBDMDJEQTVGCis6MTAwQzcwMDA3N0MxNDE2MDcxQzE5N0NGMTcwMjU3MDI0MzA0MjEwNDI1Cis6MTAwQzgwMDBFMDAwNDMwNDIxMDRFMDAwNDMwNDIxMDRFMDAwQzEwNzI0Cis6MTAwQzkwMDAwMTAwQzkwNUM4MDU5N0NGRTcwNzAxMDA4RTA2QzgwNzAwCis6MTAwQ0EwMDA4NjA2RTcwNzAwMDA4NjA2RTcwNzEwMDg4ODA2RTcwN0JDCis6MTAwQ0IwMDAwNDAwOEEwNkU3MDdCQzBDOEMwNkMxMDcwMzgwNTBBRjBFCis6MEMwQ0MwMDA5N0NGRTcwNzAwMDA4RTA2OTdDRjAwMDBEQQorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZV9maXguYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGVfZml4LmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMzVkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGVfZml4LmJpbi5paGV4CkBAIC0wLDAgKzEsNDAgQEAKKzoxMDAwMDAwMEI2QzNBQUJCQ0NERDAyMDAwODAwMjgwMDJDMDAzNDAwRDcKKzoxMDAwMTAwMDNDMDA0MDAwNDgwMDU0MDA1ODAwNUUwMDY0MDA2ODAwNDYKKzoxMDAwMjAwMDZFMDA2QzAwNzIwMDc2MDA3QzAwODAwMDg2MDA4QTAwMDIKKzoxMDAwMzAwMDkwMDA5NDAwOTgwMDlFMDBBNjAwQUEwMEIwMDBCNDAwQjIKKzoxMDAwNDAwMEI4MDBDMDAwQzYwMENBMDBEMDAwRDQwMEQ4MDBFMDAwNEMKKzoxMDAwNTAwMERFMDBFODAwRjAwMEZDMDAwNDAxMEEwMTE4MDEyMjAxQTIKKzoxMDAwNjAwMDI4MDEzQTAxM0UwMTdFMDE5ODAxOUMwMUEyMDFBQzAxRTgKKzoxMDAwNzAwMEIyMDFCQTAxQzAwMUM4MDFEMDAxRDYwMUY0MDFGQzAxRUUKKzoxMDAwODAwMDA4MDIxNjAyMUEwMjIyMDIyQTAyMkUwMjNFMDI0NDAyMkMKKzoxMDAwOTAwMDRBMDI1MDAyNjQwMjYyMDI2QzAyNzIwMjg2MDI4QzAyMDAKKzoxMDAwQTAwMDkwMDI5RTAyQkMwMkQwMDJEODAyREMwMkUwMDJFODAyMEEKKzoxMDAwQjAwMEU2MDJGNDAyRkUwMjA0MDMwQzAzMjgwMzdDMDM5MDAzMEYKKzoxMDAwQzAwMDk0MDM5QzAzQTIwM0MwMDNEMDAzRDQwM0VFMDNGQTAzRkEKKzoxMDAwRDAwMEZFMDMyRTA0MzIwNDNDMDQ0MDA0NEUwNDc2MDQ3QzA0RTcKKzoxMDAwRTAwMDg0MDQ4QTA0OEUwNEE2MDRCMDA0QjgwNEJFMDREMjA0QjYKKzoxMDAwRjAwMERDMDRFRTA0MTAwNTFBMDUyNDA1MkEwNTM2MDUzNDA1MkUKKzoxMDAxMDAwMDNDMDU0MjA1NjQwNTZBMDU2RTA1ODYwNTIyMDYyNjA2M0QKKzoxMDAxMTAwMDJDMDYzMDA2NDIwNjRBMDY0RTA2NTYwNjU0MDY1QTA2NzUKKzoxMDAxMjAwMDYwMDY2NjA2RTgwNkVFMDZGNDA2MTYwNzI2MDcyQzA3QTQKKzoxMDAxMzAwMDMyMDczNjA3M0EwNzNFMDc1MjA3NTYwNzVBMDc2NDA3NDEKKzoxMDAxNDAwMDc2MDc3QTA3ODAwNzg0MDc4QTA3OUUwN0EyMDdEQTA3REYKKzoxMDAxNTAwMERFMDdFMjA3RTYwN0VBMDdFRTA3RjIwN0Y2MDcwRTA4RjIKKzoxMDAxNjAwMDE2MDgxODA4MUEwODFDMDgxRTA4MjAwODIyMDgyNDA4NjcKKzoxMDAxNzAwMDI2MDgyODA4MkEwODJDMDgyRTA4MzIwODNBMDg0NjA4QkIKKzoxMDAxODAwMDRFMDg1NDA4NUUwODc4MDg3RTA4ODIwODg2MDg4QzA4QTUKKzoxMDAxOTAwMDkwMDg5ODA4OUUwOEE0MDhBQTA4QjAwOEFFMDhCNDA4RjkKKzoxMDAxQTAwMEJFMDhDNDA4QzIwOENBMDhDODA4RDQwOEU0MDhFODA4OTkKKzoxMDAxQjAwMEY2MDgxNDA5MTIwOTFBMDkyMDA5MjYwOTI0MDkyQTA5MkUKKzoxMDAxQzAwMDNFMDk0QzA5NTYwOTcwMDk3NDA5NzgwOTdFMDk3QzA5QjEKKzoxMDAxRDAwMDgyMDk5ODA5OUMwOUEwMDlBNjA5QjgwOURDMDlFODA5NUYKKzoxMDAxRTAwMEVDMDlGQzA5MTIwQTE4MEExRTBBNDIwQTQ2MEE0RTBBQkIKKzoxMDAxRjAwMDU0MEE1QTBBNUUwQTY4MEE2RTBBNzIwQTc4MEE3NjBBNkQKKzoxMDAyMDAwMDdDMEE4MDBBODQwQTk0MEFBNDBBQjgwQUJFMEFCQzBBQjQKKzoxMDAyMTAwMEMyMEFDODBBQzYwQUNDMEFEMDBBRDQwQUQ4MEFEQzBBMUEKKzoxMDAyMjAwMEUwMEFGMjBBRjYwQUZBMEExNDBCMUEwQjIwMEIxRTBCNEMKKzoxMDAyMzAwMDI2MEIyRTBCMkMwQjM2MEIzQzBCNDIwQjQwMEI0QTBCQTgKKzoxMDAyNDAwMEFBMEJCMDBCQjYwQkMwMEJDODBCREEwQkU4MEJFQzBCMTAKKzoxMDAyNTAwMEZBMEI0QTBDNTQwQzYyMEM2NjBDOTYwQzlBMENBMDBDMEYKKzowRTAyNjAwMEE2MENBNDBDQUMwQ0IyMENCMDBDQzAwQzAwMDAzMAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC90cmlnZ2VyX2NvZGUuYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzZTE2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlLmJpbi5paGV4CkBAIC0wLDAgKzEsMTMgQEAKKzoxMDAwMDAwMEI2QzNBQUJCQ0NEREM4MDdBMDAwRjAwNzVFMDAwNjAwOUYKKzoxMDAwMTAwMEYwMDcwQTAwMDgwMEYwMDkwMDAwMDIwMEU3MDczNjAwQjgKKzoxMDAwMjAwMDAwMDBGMDA3MDAwMDA0MDBFNzA3NTBDMzEwQzBGMDA5MEIKKzoxMDAwMzAwMDBFQzAwMDAwRTc4NzAxMDAwRUMwOTdDRkQ3MDkwMEMwQUYKKzoxMDAwNDAwMDE3MDJDODA3QTAwMEU3MTc1MEMzMTBDMDMwRDgwNDAwM0IKKzoxMDAwNTAwMDMwNUMwODAwMDQwMEIwQzAwNjAwQzgwNUU3MDUwMEMwMTkKKzoxMDAwNjAwMEMwREY5N0NGNDlBRkMwMDcwMDAwNjBBRjRBQUYwMDBDQjgKKzoxMDAwNzAwMDBDMDA0MEQyMDAxQzBDMDA0MEQyMzAwMDA4MDBGMDA3RjkKKzoxMDAwODAwMDAwMDAwNDAwRjAwNzg2MDAwNjAwNjdDRjI3MEMwMjAwN0UKKzoxMDAwOTAwMDAwMDAyNzBDMDAwMDBFQzA0OUFGNjRBRkMwMDcwMDAwOEQKKzoxMDAwQTAwMDRCQUY0QUFGNUFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzowNjAwQjAwMDk0MDAwNTAwMDAwMEIxCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlX2ZpeC5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzEyZjczCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluLmloZXgKQEAgLTAsMCArMSwzIEBACis6MTAwMDAwMDBCNkMzQUFCQkNDREQwMjAwMDYwMDE4MDAzRTAwODAwMDhCCis6MDYwMDEwMDA5ODAwQUEwMDAwMDBBOAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vbXByLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vbXByLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTNiYTEwCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi9tcHIuSEVYCkBAIC0wLDAgKzEsMTA0IEBACis6MDMwMDMzMDAwMjAwMUFBRQorOjA0MDAxQTAwNTNEOEVGMzI5NgorOjEwMDAwMzAwOEU1NjhGNTdFNTU3MTU1N0FFNTY3MDAyMTU1NjRFNjBFQworOjA3MDAxMzAwMDUxMjBGQTI4MEVFMjI4RQorOjAzMDAyMzAwMDIwMDQ2OTIKKzoxMDAwNDYwMEMwRTBDMDgzQzA4MkMwODY3NTg2MDBDMEQwNzVEMDA4NjcKKzoxMDAwNTYwMDMwOTkwRTMwMEIwN0EyMEU5MjlCODUzNjk5QzI5OUQyMjMKKzoxMDAwNjYwMDEyMjAxMjAzMDIwMkY5QzIxMjMwMDMxOTdFN0U3RjQwNkIKKzoxMDAwNzYwMDc1MUE3RTc1MUI0MDc1MTcwMDdFN0Q3RkMwNzUxODdEQ0QKKzoxMDAwODYwMDc1MTlDMDgwMTc3RTdEN0ZDMDc1MUE3RDc1MUJDMDc1N0EKKzoxMDAwOTYwMDE3MDE3RTdFN0Y0MDc1MTg3RTc1MTk0MDIwMEIwMzAyN0UKKzoxMDAwQTYwMDAxODRFNTNBQzM5NTUzNTAzQzIwMEMzNDIwMDkzMTkwMjUKKzoxMDAwQjYwMDdGOUJFMDU1Mzg3MDI5MzAxMDEyQUYzQTA1M0FFNTFCQTAKKzoxMDAwQzYwMDJGRjU4MkU0MzUxQUY1ODNFMDEzOTIwRUFGM0EwNTNBMUUKKzoxMDAwRDYwMEU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTM2MDIwMkY3QzMKKzoxMDAwRTYwMEMyMEIwMjAyRjczMDAzMTE5MDdGQzdFNEYwQTNFMDU0N0QKKzoxMDAwRjYwMDAyRjUxREEzRTBGNTFDODAxMTkwN0ZDOUU0RjA5MDdGMDYKKzowMzAwNDMwMDAyMEYwMEE5Cis6MDMwMDAwMDAwMjAwMjZENQorOjBDMDAyNjAwNzg3RkU0RjZEOEZENzU4MTVBMDIwQTMzOTkKKzo0MDAxMDYwMEM2RTA1NDAyRjUxREEzRTBGNTFDRTUxNzI0RkY5MjAzMzAwRDBEQzIwRDkwN0ZCQjc0MDFGMEMyMEIwMjAyRjdFNTFENjAwNUMyMEIwMjAyRjc4NTFDNTM4NTE5ODI4NTE4ODNFMDEzOTIwRDc1MTJGRjIwMEMzQTIwMDkzNzkwODIKKzo0MDAxNDYwMDdGOUJFMDU1Mzg3MDJGMzAxMDFDODUxOTgyODUxODgzQTNFMDEzOTIwRTg1MTk4Mjg1MTg4M0EzQTNFMEY1MzY3NTNBMDMwMjAyRjc3NTNBMDI4NTE5ODI4NTE4ODNBM0UwRjUzNjAyMDJGNzc1M0EwMUMyMEIwMjAyRjczMDAzRkUKKzo0MDAxODYwMDBFOTA3RkM2RTA1NDAyRjUxREEzRTBGNTFDODAwQzkwN0ZDOEUwNTQwMkY1MURBM0UwRjUxQ0U1M0FDMzk1NTM1MDAzMDIwMjY4RTUxRDYwMDdDMjE0QzIwNTAyMDJGNzg1MUM1Mzg1MUI4Mjg1MUE4M0UwMTM5MjBENzUxMkZGNjEKKzo0MDAxQzYwMDMwMEMwMzAyMDI2MDMwMDkwMzAyMDI2MDkwN0Y5QkUwNTUzODYwMDMwMjAyNjAzMDEwMUI4NTFCODI4NTFBODNBM0UwMTM5MjlCODUxQjgyODUxQTgzQTNBM0UwRjU5OTc1M0EwMzgwMEQ4NTFCODI4NTFBODNBM0UwRjU5OTc1NzUKKzo0MDAyMDYwMDNBMDJFNTNBQzM5NTUzNDAyNjMwMDMwNzkwN0ZDN0U0RjA4MDA1OTA3RkM5RTRGMEU1MTcyNEZGOTIwMzIwMEQwMzAyMDJGN0MyMEQ5MDdGQkI3NDAxRjAwMjAyRjczMDEwMTJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzOTQKKzo0MDAyNDYwMEUwMTM5MjBFQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4M0UwRjUzNkQyMEIwMjAyRjc3NTNBMDFDMjE0MDIwMkY3MzAwQzAzMDIwMkY1MzAwOTAzMDIwMkY1OTA3RjlCRTA1NTM4NzA3OTMwMTAxMkFGM0EwNTNBRTUxQjJGRjIKKzo0MDAyODYwMEY1ODJFNDM1MUFGNTgzRTAxMzkyOUJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTk5RTUzQUMzOTU1MzQwMjIzMDAzMDc5MDdGQzdFNEYwODAwNTkwN0ZDOUU0RjBFNTE3MjRGRjkyMDMzMDBEMzZDMjBEOTA3RkJCMEUKKzo0MDAyQzYwMDc0MDFGMDgwMkMzMDEwMTJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTAxMzkyMEVBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTM2RDIwQjgwMDJDMjE0RDIwMTIwOTgwMzAyMDQzNUMyOTgyMDAyMDMwMjAzODMKKzo0MDAzMDYwMEEyMjAxNTI3QUYzOTA1Mzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMTA0REFGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTU1RTU1NUI1NDcwNEQyMDk4MDJFRTU1NUI1NDYwNEMyMDk4MDI1MUMKKzo0MDAzNDYwMEFGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTU1RjAzMDEwMTFBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwRkU1MzlDMzk1NDM1MDAzMDIwNDMzOTA3RkI4RTAzMEUxMTZFNTM5QzM5NDQwNTAwMzAyRjUKKzo0MDAzODYwMDA0MzMxNTM5MTUzOTA1MkI0MzM0MDEwMjA0MzM5MDdGQjdFNTM5RjA3NTM5MDBDMjAyMDIwNDMzMjAxNTI3QUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMTA0REFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1OTQKKzo0MDAzQzYwMDgzRTU5OEYwODAzQTg1OTk1NUU1NTVCNTQ3MDREMjA5ODAyRUU1NTVCNTQ2MDRDMjA5ODAyNUFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTU1RjAzMDEwMTFBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRUEKKzo0MDA0MDYwMEQyMEZFNTM5QzM5NTQzNDAyNDkwN0ZCNkUwMzBFMTEyRTUzOUMzOTQ0MDQwMTYxNTM5MTUzOTA1MkI0MzM0MDE4MDBCOTA3RkI5RTUzOUYwNzUzOTAwRDIwMkQyMDEzMDAxMDVDMjAxMDIwMDU2RDBEMEQwODZEMDgyRDA4M0QwMkYKKzo0MDA0NDYwMEUwMzI5MDdGQkNFMDIwRTE1NEU1MzQ2MDUwRTUzMTcwNENFNTM0MzBFMTBCRTRGNTJGNzUzNDAxNzUzMTAyODAwRUEyMDhFNDMzRjUyRkMyMDhFNEY1MzQ3NTMxMTBFNEY1NTY3RTAwN0IwMDc0MjQyNTU2RjlFRTM0MDBGQTEyRDgKKzo0MDA0ODYwMDBDNzlGRjc0MDAyNTU2RjU4MkU0MzQ3REY1ODNFRkYwMDU1NkU1NTZCNDBDREI5MDdGQkQ3NDBDRjA5MDdGQ0FFMDMwRTEwMzAyMDVEMUU0RjU1Njc0NDAyNTU2RjU4MkU0MzQ3REY1ODNFMEZGRTU1NjdDMDA3QjAwMjQzQkY5MDMKKzo0MDA0QzYwMEVDMzQwMEZBRUYxMjBDOTIwNTU2RTU1NkI0MThEQkU1M0I2MDExNzVDOTIwNzVDODM2ODUzQ0NBODUzRENCRTQ5MDdGOUZGMEU1M0UxMzkyMTA5MjlGODUzRjM4RTU0MDEzOTIxNUU1NDE2MDA5OTA3Rjk4RTA1NEZCRjA4MDA3NDQKKzo0MDA1MDYwMDkwN0Y5OEUwNDQwNEYwRTU0MjYwMDk5MDdGOThFMDU0N0ZGMDgwMDc5MDdGOThFMDQ0ODBGMEU1NDg2MDBCQzIwQ0MyMDk5MDdGOTVFMDQ0MDJGMEU1NDk2MDBDRDIwOTQzMzQwMTkwN0Y5NUUwNDQwMkYwRTU0QTYwMERDMkFGQkIKKzo0MDA1NDYwMEMyMEJEMjAwRTRGNTUzRjUzQUQyQUZFNTRCNjAwNTMwMTUwMkQyMDlFNTRDNjAxNTkwN0Y5NUUwNTRGREYwOTA3RjlFRTA0NDAyRjA5MDdGOThFMDU0RkRGMEU1NEQ2MDBBRDI5Q0MyOTg3NTJDMDE3NTMxMUVFNTRFNjAwN0MyMjcKKzo0MDA1ODYwMDlDRTRGNTM5RjUyQ0U1NEY2MDAzRTRGNTM5RTU1MDYwMDJEMjA3RTU1MTYwMEFFNTRENzAwMkY1MzFFNTUxNDIzNEU1NTI2MDFGOTA3RkQ3NzQxMUYwNzQzMUYwNzQxMkYwNzQzMkYwNzQxM0YwNzQzM0YwNzQxNEYwNzQzNEYwNjcKKzo0MDA1QzYwMEQyMDNEMjAyRDIwOEU0OTA3RkNCRjBBMjBDRTQzM0ZGNjUyOTYwMDU4RjI5NDMzNDAxQTIwOUU0MzNGRjY1MkE2MDA1OEYyQTQzMzQwMTkwN0Y5QkUwRkY1NDA4NjQwOEY1NTc2NTI1NjAwNjg1NTcyNTQzMzQwMUVGNTQxMDY0M0EKKzo0MDA2MDYwMDEwRjU1NzY1MjY2MDA2ODU1NzI2NDMzNDAxRUY1NDQwNjQ0MEY1NTc2NTI3NjAwNjg1NTcyNzQzMzQwMUVGNTQyMDY0MjBGNTU3NjUyODYwMDY4NTU3Mjg0MzM0MDE5MDdGOUFFMDU0NDA2NDQwRjU1NzY1MkU2MDA2ODU1NzJFNUIKKzo0MDA2NDYwMDQzMzQwMTMwMDczNUMyQUYzMDAyMTg5MDdGQjhFMDIwRTEyN0U1Mzk2MDA5OTA3RkI3RjBFNEY1MzlDMjAyQzIwNzgwMTY5MDdGQjZFMDIwRTEwRkU1Mzk2MDA5OTA3RkI5RjBFNEY1MzlEMjAyQzIwN0QyQUYyMDA1M0QzMDAzREIKKzo0MDA2ODYwMDFFOTA3RkM2RTAyMEUxMzM5MDdFNDBFMDEzOTIwRDc1M0EwMTkwN0ZDN0UwRjU1M0QyMDU3NTEyRkY4MDFDOTA3RkM4RTAyMEUxMTU5MDdEQzBFMDEzOTIwRDc1M0EwMTkwN0ZDOUUwRjU1M0QyMDU3NTEyRkYyMDE0MzMyMDAwRTYKKzo0MDA2QzYwMDA2RTUzQTY1NTM3MDJBMzAwNTFBMzAwMzA5RTQ5MDdGQzdGMEMyMDM4MDA3RTQ5MDdGQzlGMEQyMDNDMjA1RTRGNTUzRjUzQTMwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwMzAxNDAzMDIwN0JGMjAwNTAzMDIwN0JGMzAwQzAzMTQKKzo0MDA3MDYwMDAyMDdCRjMwMDkwMzAyMDdCRjkwN0Y5QkUwNTUzODYwMDMwMjA3QkYzMDAzMEM3RTdFN0Y0MDc1NTg3RTc1NTk0MDgwMEE3RTdEN0ZDMDc1NTg3RDc1NTlDMDMwMTAxMkFGM0EwNTNBRTU1OTJGRjU4MkU0MzU1OEY1ODNFMDEzN0MKKzo0MDA3NDYwMDkyMUFBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTBGNTU3RTUzQUMzOTU1MzUwMkEzMDEwMTJBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTAxMzkyMEVBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTBGNTM2ODgKKzo0MDA3ODYwMEQyMEI4MDE1QzIwQjMwMDMwOUU0OTA3RkM3RjBDMjAzODAwN0U0OTA3RkM5RjBEMjAzMzAxMDA0QTIxQTkyOUJEMjE0QzJBRjg1NTc5OTIwMEIwRDMwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwRDJBRjIyOTA3RkU5RTAxMjBDNzAKKzo0MDA3QzYwMEE0MDkxQzAwMDk4OTAxMDlFNjAzMDdFMzA2MDkwRDA4MDkwMTA5MDhFOTBBMDhGODBCMDAwMDBBMjQ5MDdGRUJFMDI0RkU2MDFDMTQ3MDAzMDIwODc5MjQwMjYwMDMwMjBBMjQ3NDBEOTA3RkQ0RjA3NDg3OTA3RkQ1RjAwMjBBRTYKKzo0MDA4MDYwMDJCOTA3RkVBRTBCNDAxMDQ3RjAyODAwMjdGMDM3NTgyRDg3NTgzMERFRkYwNzU4MkQxNzU4MzBERjA3NTgyQ0E3NTgzMERGMDc1ODJDMzc1ODMwREYwOTA3RkVBRTAwNDc1ODI5RTc1ODMwREYwOTA3RkVGRTBGRTkwN0ZFRUUwN0IKKzo0MDA4NDYwMDdDMDAyNDAwRjU1QUVDM0VGNTU5NzUxNTBENzUxNjk5NzU4MjlCNzU4MzBERTA3NTEzMDBGNTE0RDNFNTE0OTU1QUU1MTM5NTU5NDAwNjg1NTkxMzg1NUExNDEyMEJCQTAyMEEyQjkwN0ZFQUUwNzAwQjc1NTZGRjc1NTcwRDc1MDMKKzo0MDA4ODYwMDU4REM4MDJEOTA3RkVBRTBCNDAxMEI3NTU2RkY3NTU3MEQ3NTU4RTA4MDFCOTA3RkVBRTBCNDAyMEI3NTU2RkY3NTU3MEQ3NTU4RjA4MDA5NzU1NkZGNzU1NzBFNzU1ODFFOTA3RkVFRTA3NTU5MDBGNTVBQUU1N0FGNTg4RTE1MTIKKzo0MDA4QzYwMDhGMTY4RjgyOEU4M0UwRkVBM0UwOEUxM0Y1MTREMzk1NUFFNTEzOTU1OTQwMDY4NTU5MTM4NTVBMTQxMjBCQkEwMjBBMkI5MDdGMDBFNTExRjA5MDdGQjU3NDAxRjAwMjBBMkI5MDdGRUFFMEY1MTEwMjBBMkIxMjBDMjQ5MDdGODQKKzo0MDA5MDYwMEVBRTBGNTEwMDIwQTJCOTA3RjAwRTUxMEYwOTA3RkI1NzQwMUYwMDIwQTJCOTA3RkU4RTAyNDdGNjAyNzE0NjAzNDI0MDI2MDAzMDIwQTI0QTIxNkU0MzNGRjI1RTBGRkEyMThFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0NTUKKzo0MDA5NDYwMDAyRjAwMjBBMkJFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEEyQjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMEIKKzo0MDA5ODYwMDAyMEEyQjkwN0ZFOEUwMjRGRTYwMTcyNDAyNjAwMzAyMEEyQjkwN0ZFQUUwNjQwMTYwMDMwMjBBMjRDMjE2MDIwQTJCOTA3RkVBRTA3MDc2OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0OEQKKzo0MDA5QzYwMDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNDU5MDdGRThFMDI0RkU2MDEwMjQwMjcwMzk5MDdGRUFFMDY0MDE3MDJBRDIxNjgwMkQ5MDdGRUFFMDcwMjA5MDdGNzcKKzo0MDBBMDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkMyMTBFNEY1MTBGNTM0QzIwOUMyMENDMjBCQzIxNEMyMERDMjE1QTUKKzo0MDBBNDYwMEMyMTFDMjA3QzIxMkMyMEZDMjA4RjUzNUY1MzlGNTUzRjUzQUY1MzNGNTMwRjUyRkY1MkVGNTJERjUyQ0Y1MkJGNTJBRjUyOUY1MjhGNTI3RjUyNkY1MjVGNTI0QzIwNUMyMTdDMjE5QzIxNkMyMThDMjA0RDIxM0MyMDZDMjAxNzgKKzo0MDBBODYwMDkwN0Y5MkUwNTRGREYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBGRjA5MDdGQUM3NDBFRjBEMkFGRDJCQ0QyNDcKKzo0MDBBQzYwMDFBMTIwRjdEQzIxNzMwMDQwMzEyMDQ0ODMwMDQyQTMwMDYyN0MyMDZFNTEyNjAxNjE1MTI5MDdGRDhFMDMwRTYwNDdGMDA4MDAyN0YyMDkwN0Y5NkVGRjA4MDA2OTA3Rjk2NzQyMEYwMTIwQjE0ODBDRDMwMTcwN0MyMTcxMjA3NDEKKzo0MDBCMDYwMEMwODBDMzMwMTlDMEMyMTkxMjBFREM4MEI5MjJFNTMxNjAwMjE1MzFFNTM5NjA1NTY1MzU3MDRCRTUzM0Y0NjAwMjA1MzNFNTMzQzM5NTQ0NDA0M0MyQUYzMDAyMUI5MDdGQjhFMDIwRTEyRDkwN0ZCN0U1MzlGMEMyMDJFNEY1QUEKKzo0MDBCNDYwMDM5RjUzM0Y1MzU3NTEyRkY4MDE5OTA3RkI2RTAyMEUxMTI5MDdGQjlFNTM5RjBEMjAyRTRGNTM5RjUzM0Y1MzU3NTEyRkZEMkFGODAwNjg1MzkzNUU0RjUzM0U1MkM2MDMwMjAwRjA3OTA3RjlCRTAzMEUwMEZFNTJENjAwNkU0OTcKKzo0MDBCODYwMEY1MkQ0MzM0MDFFNEY1MzA4MDE0RTUzMEQzOTU0NTUwMERFNTMwQjU0NTA2NzUyRDAxNDMzNDAxMDUzMEMyMEYyMjkwN0ZEOUUwMzBFMjA0N0YwMDgwMDI3RjIwOTA3Rjk2RUZGMDIyRTUxNDQ1MTM2MDU3QUUxM0FGMTREM0VGMEYKKzo0MDBCQzYwMDk0NDBFRTk0MDA0MDA0N0UwMDdGNDBDM0U1MTQ5RkY1MTRFNTEzOUVGNTEzRTRGREVEQzM5RkU0OUU1MDFGODUxNjgyODUxNTgzRTBGQzc0MDAyREY1ODJFNDM0N0ZGNTgzRUNGMDBEMDUxNkU1MTY3MDAyMDUxNTgwREE5MDdGQzQKKzo0MDBDMDYwMEE5NzQwMUYwOTA3RkFDRTA0NDAxRjA5MDdGQjVFRkYwMjI5MDdGQUNFMDU0RkVGMEU0OTA3RkI1RjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjA5MDdGOTY3NDIwRjA5MDdGOTQ3NDAxRjA5MDdGOUQ3NEZGRjA5MDdGOTc3NDg2REYKKzo0MDBDNDYwMEYwOTA3Rjk1NzQwM0YwOTA3RjlFNzQ4NEYwOTA3Rjk4RjBFNDkwN0ZDN0YwOTA3RkM5RjA5MDdGQ0JGMDc1OTg0MDQzQTgxMDkwN0ZERTc0MUZGMDkwN0ZERjc0MEZGMEQyMDQyMkJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQzMKKzo0MDBDODYwMEJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzNjcKKzo0MDBDQzYwMEEzQTM4MERGRTQ5MDdGOTVGMDkwN0Y5NEYwOTA3RjkzRjA5MDdGOURFMDQ0MDJGMDkwN0Y5N0UwNDQ0MkYwOTA3RjlDNzQxMEYwRTQ5MDdGOTZGMDkwN0Y5RDc0QkVGMDMwMTYwNDdGODA4MDAyN0YwMDkwN0Y5N0VGRjBFNDkwNDUKKzo0MDBEMDYwMDdGOTVGMDkwN0Y5RUYwOTA3Rjk4RjAyMkMwRTBDMEYwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMEQwNzVEMDA4NTM5MUVGOTA3RkE5NzQwMUYwMTIwQkJBRDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBGMEQwRTAzMkMwNkEKKzo0MDBENDYwMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzo0MDBEODYwMDAwMTIwMTEwMDFGRkZGRkY0MENEMDYxQzAxMDEwMDAxMDIwMDAyMDkwMjQzMDAwMTAxMDA4MDMyMDkwNDAwMDAwN0ZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTgxMDI0MDAwMDIKKzo0MDBEQzYwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDQwMzA5MDQxMDAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJFMDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MDAwQTMKKzo0MDBFMDYwMDUzMDA0ODAwMzEwMDMxMDAzMjAwMkQwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIyMDM1NTAwNTMwMDQxMDAyRDAwMzUwMDMzMDAyMDAwMzIwMDMwMDAzMDAwMzIwMDYxMDA3MDAwNzIwMDMyMDAzNjAwMDAwMEMwRTBDMDgzREIKKzo0MDBFNDYwMEMwODJDMDg1QzA4NEMwODY3NTg2MDA1MzkxRUY5MDdGQUI3NDAyRjBEMjA2RDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE3NTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwMUYKKzo0MDBFODYwMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxOTUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwODQKKzo0MDBFQzYwMDUzOTFFRjkwN0ZBOTc0MDJGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyMTIwQ0NBMTIwRkIzOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMEQ3RTAwMTIwMDAzOTA3RkQ2RTA1NEZFRjAxMjBDMjQyMjAwMDIwRTY5MDAwMjBFQTMKKzo0MDBGMDYwMDQyMDAwMjBENDUwMDAyMEU5MDAwMDIwRjEwMDAwMjBGMTQwMDAyMEQxMjAwMDIwRjFDMDAwMjBFQjcwMDAyMEYyNDAwMDIwRjMzMDAwMjBGMkMwMDAyMEY1OEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwQTkKKzo0MDBGNDYwMDdGQTk3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwN0ZBOTc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3RkQ2RTA1NEZCRjBFMDQ0QzEKKzozRDBGODYwMDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIwMDAzOTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyMkMKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKworc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNTNbXSA9CisJIjA0LzI2LzIwMDIgIDAyOjQ3cCAgICAgICAgICAgICAgMTEsNTcwIFVTQTUzIjsKKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOHguSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOHguSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZmY3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE4eC5IRVgKQEAgLTAsMCArMSwxNDEgQEAKKzowMzAwMzMwMDAyMTJGN0JGCis6MTAwMDAzMDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMEJGCis6MTAwMDEzMDA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDMxCis6MEYwMDIzMDA3Rjk1RjA5MDdGOUU3NDA3RjBFNDkwN0Y5OEYwMjIxNQorOjEwMDA0NjAwMzAwOTE4MTIxMzFCRUZDMzk1M0M0MDAzMDIwMEQ4OTBFOQorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMDlDMjAwODA3NzMwMDMzQjkwN0ZGNgorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMTMxQkVGQzM5NDQwNTA2NDkwN0VFRQorOjEwMDA3NjAwNDBFMDEzOTIwOTkwN0ZDN0UwMTRGNTE5MjAwMDExNjA0MworOjEwMDA4NjAwMEZGNTA4N0U3RTdGNDE3NTBDN0U3NTBENDExMjBDQkEwOAorOjEwMDA5NjAwQzIwM0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzI0OAorOjEwMDBBNjAwMTIxMzFCRUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMDlCMAorOjEwMDBCNjAwOTA3RkM5RTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0RDOAorOjEwMDBDNjAwN0ZDMTc1MEM3RDc1MERDMTEyMENCQUQyMDNFNDkwN0YwOQorOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTYwMTIxMUQ2OEZCRAorOjEwMDBFNjAwMTkxMjEzMjc4RjM2RTUxOUMzOTUzQTUwMEYxMjEyRUJFMgorOjEwMDBGNjAwRUYzMEUwMDhFNTM2MjBFNzAzMzAwQjVFQzIwQkU1MTk2QQorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMTMwMEE1Cis6MDMwMDAwMDAwMjBFMDBFRAorOjQwMDEwNjAwNjA1OEI0ODAwMzQzMzYwMkU1MzYzMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0U3RjgwNzUwQzdFNzUwRDgwQUYzNjEyMEY0QkU1MTkyNUUwOTA3RkI3RjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDhENAorOjQwMDE0NjAwOTA3RTgwRTUzNkYwN0U3RTdGODE3NTBDN0U3NTBEODExMjBDREZFNTE5MDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwNTAzMDIwM0MxQzIwNUU0RjUxODc0NDAyNTE4RjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxODdDMDA3QjAxN0FGMQorOjQwMDE4NjAwN0U3OTAwMjQwMEY5RUMzNDdFRkFFRjEyMEVEMjA1MThFNTE4QjQyMEQ3OTA3RTAwRTA2MDY4OTA3RTAzRTA2MDI0N0YwMUU0RkQxMjExQjE3RjAzN0RDRDEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMEU0OTBFMAorOjQwMDFDNjAwN0UxM0YwODAzMDkwN0UwMUUwRkYxMjEwMzU5MDdFMDJFMEZGMTIxMDVCN0YwMTkwN0UxMUUwRkQxMjExQjE3RjAzN0QwNzEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0Y5ODc0MTJGMEU1NDA0NDA2OTAzRQorOjQwMDIwNjAwQzAwMEYwOTA3RTAzRTA3MDA2OTA3RTEzRTA3MDA4RTQ5MDdFMTNGMDc1MjVGRjkwN0UwNUUwNjAxMkEzRTA1NDNGRjU0NDkwN0Y5ODc0MTNGMDkwQzAwMEU1NDRGMDkwN0UwN0UwNjAyQkEzRTA2MDA1NDM0MjgwODAwMzUzNDJEQQorOjQwMDI0NjAwN0Y1MzQyRkM5MDdFMDlFMDYwMTE0MzQyMDJBM0UwRkYxMjEwQTc5MDdFMEJFMEZGMTIxMENEQUY0MjEyMTA4MTkwN0UwM0UwNjAwODUzNDI3RkFGNDIxMjEwODE5MDdFMENFMDYwMThBM0UwNjAwNTQzNDYwMjgwMDM1MzQ2RkRCNAorOjQwMDI4NjAwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzQ2MDE4MDAzNTM0NkZFOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTEyRTBGNTNBQTNFMDEzOTIwREEzRTBGNTNDQTNFMDYwMDU0MzQ2MTA4QgorOjQwMDJDNjAwODAwMzUzNDZFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxNkUwNjAzMjUzNDRCRjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjEyREZFRjU0RkU5MEMwMDBGMDUzM0VGREU0RkZBRDNFMTIwRgorOjQwMDMwNjAwMTFCMUU0RjUyQUY1MjlEMjA3OTA3RTE3RTA2MDBGNDMzRTAyRTRGRkFEM0UxMjExQjE3NTI5MDFEMjA3OTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTU0MDQ0MDQ5MEMwMDBGMEQyMDA5MDdFMTlFMDYwMTE0MzQ0NDA5MDdGOThGMgorOjQwMDM0NjAwNzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzM0VGRUU0RkZBRDNFMTIxMUIxNzUyQjAxRDIwNzkwN0UxQkUwNjAwRjQzM0UwMUU0RkZBRDNFMTIxMUIxRTRGNTJCRDIwNzkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTI4NAorOjQwMDM4NjAwRjBFNTQwNDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIwQjkwN0UxRUUwNjAwODc1MkMwMUU0RjUzOEQyMDc5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjAzRTQ5MDdGQ0ZGMDMwMUE1MkU1Mzg5MgorOjQwMDNDNjAwNjAwMjE1MzgyMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyRDIxMzEyMTJERkVGNTQwMUY1MTk2NTJBNjAwNTg1MTkyQUQyMDcxMjEzMzNFRjU0ODBGNTE5NjUyNjYwMDU4NTE5MjZEMjA3MzAwRDExMTI3RgorOjQwMDQwNjAwMTMzM0VGNTQxMEY1MTk2NTI1NjAwNTg1MTkyNUQyMDcyMDFCMDMwMjA3RUMzMDBBMTgxMjEzNkZFRkMzOTUzRDQwMDMwMjA0QUU5MDdGQzE3NDAxRjBDMjBBQzIwMDgwNzczMDA0M0I5MDdGQ0FFMDIwRTE2RDEyMTM2RkVGQzM1QQorOjQwMDQ0NjAwOTQ0MDUwNjQ5MDdENDBFMDEzOTIwQTkwN0ZDQkUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEN0Y0MTc1MEM3RDc1MEQ0MTEyMEQwNEMyMDRFNDkwN0ZDQkYwODAzOTkwN0ZDQ0UwMjBFMTMyMTIxMzZGRUZDMzk0NDA1MDI5OTBCQworOjQwMDQ4NjAwN0NDMEUwMTM5MjBBOTA3RkNERTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0M3RkMxNzUwQzdDNzUwREMxMTIwRDA0RDIwNEU0OTA3RkNERjA5MDdGQkFFMDMwRTEwMzAyMDUzNjEyMTIyMDhGMTkxMjEzN0I4RjM3RTUxOUMzOTUyQgorOjQwMDRDNjAwM0I1MDBGMTIxMzU3RUYzMEUwMDhFNTM3MjBFNzAzMzAwQzVFQzIwQ0U1MTk2MDU4QjQ4MDAzNDMzNzAyRTUzNzMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RDdGODA3NTBDN0Q3NTBEODBBRjM3MTIwRjg0RTUwMworOjQwMDUwNjAwMTkyNUUwOTA3RkJCRjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDg5MDdEODBFNTM3RjA3RTdEN0Y4MTc1MEM3RDc1MEQ4MTEyMEQyOUU1MTkwNDkwN0ZCQkYwOTA3RkQwRTAzMEUxMDYyMDA2MDMwMjA3OTdDMjA2RTRGOAorOjQwMDU0NjAwRjUxODc0QzAyNTE4RjU4MkU0MzQ3QkY1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5MjAyNDIwRjlFQzM0N0VGQUVGMTIwRUQyMDUxOEU1MThCNDIwRDc5MDdFMjBFMDYwNjg5MDdFMjNFMDYwMjQ3RjAxRTRGRDEyMTFGQjdGMDMyOQorOjQwMDU4NjAwN0RDRDEyMTFGQjQzNDc4MDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEU0OTA3RTMzRjA4MDMwOTA3RTIxRTBGRjEyMTExOTkwN0UyMkUwRkYxMjExM0Y3RjAxOTA3RTMxRTBGRDEyMTFGQjdGMDM3RDA3MTIxMUZCNDM0NzgwOTA0OAorOjQwMDVDNjAwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0Y5ODc0MEFGMEU1NDE0NDA2OTBDMDAwRjA5MDdFMjNFMDcwMDY5MDdFMzNFMDcwMDhFNDkwN0UzM0YwNzUyRUZGOTA3RTI1RTA2MDEyQTNFMDU0M0ZGNTQ1OTA3Rjk4NzQwQkYwOTBFQgorOjQwMDYwNjAwQzAwMEU1NDVGMDkwN0UyN0UwNjAyQkEzRTA2MDA1NDM0MzgwODAwMzUzNDM3RjUzNDNGQzkwN0UyOUUwNjAxMTQzNDMwMkEzRTBGRjEyMTE2NTkwN0UyQkUwRkYxMjExOEJBRjQzMTIxMEYzOTA3RTIzRTA2MDA4NTM0MzdGQUZGRQorOjQwMDY0NjAwNDMxMjEwRjM5MDdFMkNFMDYwMThBM0UwNjAwNTQzNDcwMjgwMDM1MzQ3RkQ5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMkVFMDYwMThBM0UwNjAwNTQzNDcwMTgwMDM1MzQ3RkU5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBENAorOjQwMDY4NjAwOTA3RTMyRTBGNTNCQTNFMDEzOTIwRUEzRTBGNTNEQTNFMDYwMDU0MzQ3MTA4MDAzNTM0N0VGOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTM2RTA2MDMyNTM0NUJGOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y3OQorOjQwMDZDNjAwOTg3NDA5RjAxMjEzNEJFRjU0RkU5MEMwMDBGMDUzM0ZGREU0RkZBRDNGMTIxMUZCRTRGNTMzRjUzMkQyMDg5MDdFMzdFMDYwMEY0MzNGMDJFNEZGQUQzRjEyMTFGQjc1MzIwMUQyMDg5MDdFMzhFMDYwMTA5MDdGOTg3NDBBRjA0MworOjQwMDcwNjAwRTU0MTQ0MDQ5MEMwMDBGMEQyMDA5MDdFMzlFMDYwMTE0MzQ1NDA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3RTNBRTA2MDBGNTMzRkZFRTRGRkFEM0YxMjExRkI3NTM0MDFEMjA4OTA3RTNCRTA2MDBGNDMzRjAxRTRFOQorOjQwMDc0NjAwRkZBRDNGMTIxMUZCRTRGNTM0RDIwODkwN0UzQ0UwNjAwRTkwN0Y5ODc0MEFGMEU1NDE0NDAyOTBDMDAwRjA5MDdFM0RFMDYwMDJEMjBDOTA3RTNFRTA2MDA4NzUzNTAxRTRGNTM5RDIwODkwN0UzRkUwNjAxMTkwN0ZENzc0MTM4OQorOjQwMDc4NjAwRjA3NDMzRjA3NDE2RjA3NDM2RjBEMjA0RTQ5MDdGRDFGMDMwMUE1MkU1Mzk2MDAyMTUzOTMwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJDMjEzMTIxMzRCRUY1NDAxRjUxOTY1MzM2MDA1ODUxOTMzRDI3OQorOjQwMDdDNjAwMDgxMjEzODdFRjU0ODBGNTE5NjUyRjYwMDU4NTE5MkZEMjA4MzAwRTExMTIxMzg3RUY1NDEwRjUxOTY1MkU2MDA1ODUxOTJFRDIwODMwMUEyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTE1OTA3QjQyRTBGNTE2OTAzNQorOjQwMDgwNjAwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDkyMEU1MEE3MDQwMzAwNzM5RTUzODcwMzVDMjA3RjUxODdFMDA3QjAwNzQyNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVCRAorOjQwMDg0NjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzgxMEU0RjUyQzc1MEEwMTIyRTUwQTY0MDE3MDQwMzAwODM5RTUzOTcwMzVDMjA4RjUxODdFMDA3QjAwNzQyRDI1MThGOUVFMzQwMEZBMTI5NworOjQwMDg4NjAwMEU4Q0ZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzkxMEU0RjUzNTc1MEEwMjIyRTUwQTY0MDI3MDM2MzAxNDJGQzIxNEY1MTg3RTAwN0IwMDc0MEUyNTE4RjlFRTM0MDA4MworOjQwMDhDNjAwRkExMjBFOENGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA1REI5MDdGQzM3NDA1RjA3NTBBMDMyMkU1MTU2MDMwMTUxNUU0RjUxODdFMDA3QjAwNzQxNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVGMgorOjQwMDkwNjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUwQTIyOTA3RkU5RTAxMjBFRTQwQTA4MDAwQTdDMDEwQUU4MDMwOTQ0MDYwOUZCMDgwOUY1MDkwOUREMEEwOUVDMEIwMDAwMEIzNzkwN0YzRAorOjQwMDk0NjAwRUJFMDI0RkU2MDE5MTQ2MDYxMjQwMjYwMDMwMjA5RDM3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjdCNzU4MzE5RjA3NTgyNzQ3NTgzMTlCMgorOjQwMDk4NjAwRjA3NTgyNjY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwQjNFOTA3RkVBRTBGRjEyMEYwQUVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjA4NQorOjQwMDlDNjAwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0YwMEU1MDlGMDkwN0ZCNTc0MDFGMDAyMEIzRTkwN0ZFQUUwRjUwOTAyMEIzRTEyMEI0NjAyMEIzRTkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIwNQorOjQwMEEwNjAwMEIzRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTBFNDMzRkYyNUUwRkZBMjE2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0VFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0YwNAorOjQwMEE0NjAwRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkU4RTAyNEZFNjAxRDI0MDIwRgorOjQwMEE4NjAwNjAwMzAyMEIzRTkwN0ZFQUUwQjQwMTA1QzIxMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZCNgorOjQwMEFDNjAwRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTA4MDNGOTA3RkI0RTA0NDAxRjA0OQorOjQwMEIwNjAwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJENAorOjQwMEI0NjAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDE4RjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUyNDc1MTgwMTdCMDA3NDI0MjUxOEY5RTQzNDAwRkE4QgorOjQwMEI4NjAwRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0EwMUU0RjUzOEY1MTNGNTM2QzIwN0MyMEJDMjA1QzIwMEMyMDlDMjEzOTA3Rjk4NzQxM0YwNzU0NDAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExQjE3RjEwOEY0MjEyMTA4MTkwN0YwMgorOjQwMEJDNjAwOTg3NDEyRjA3RjAxOEY0MEVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQxNEYwNzU0NjgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMUIxRTRGRjdFQTNBRDA2OEQzRTEyMTFCMTkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTE4RQorOjQwMEMwNjAwQjE3RjAxMTIxMjZBN0YwMzdEMDcxMjExQjEyMDFCMDMwMjBDQjc3NTJEMDE3NTE4MDE3QjAwNzQyRDI1MThGOUU0MzQwMEZBRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0IwMUU0RjUzOUY1MTNGNTM3QzIwOEMyMENDMjA2QzJDRAorOjQwMEM0NjAwMDBDMjBBQzIxMzkwN0Y5ODc0MEJGMDc1NDUwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUZCN0YxMDhGNDMxMjEwRjM5MDdGOTg3NDBBRjA3RjAxOEY0MUVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQwQ0YwNzU0NzgwOTBDMDAwNzQ0RQorOjQwMEM4NjAwODBGMDBGRTRGRDEyMTFGQkU0RkY3RUEzQUQwNjhEM0YxMjExRkI5MDdGOTg3NDA5RjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExRkI3RjAxMTIxMjhCN0YwMzdEMDcxMjExRkJEMjEyMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJBNQorOjQwMENDNjAwRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0YyMAorOjQwMEQwNjAwOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU1QworOjQwMEQ0NjAwODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkQyMTk5MDdGOTJFMDQ0MDJGMDkwN0ZBRUUwRkZEMzkyMTBFNDMzRkVFRjRFRjA4OQorOjQwMEQ4NjAwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGRDIxQTEyMTI0NUMyMTFFNEY1MEJGNTEzQzIxN0MyMTJENAorOjQwMERDNjAwOTA3RkExMDRGMDkwN0ZEOEUwNjUxNzYwMTAzMDEyMDVEMjFBMTIwMDQ2OTA3RkQ4RTBGNTE3ODAwODMwMTIwNUMyMUExMjAwNDYzMDExMDdDMjExMTIwOTIxODBENjMwMThEM0MyMTgxMjEzOTM4MENDMjI3ODdGRTRGNkQ4RkRDNworOjQwMEUwNjAwNzU4MTQ3MDIwRTQ3MDIwRDZGRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDBGNQorOjQwMEU0NjAwODA5MDEyQUNFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0ExRQorOjQwMEU4NjAwREZFOURFRTc4MEJFQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTVCOAorOjQwMEVDNjAwODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNDMQorOjQwMEYwNjAwQTNBMzgwREY4RjE4RTRGNTE5NzUxQUZGNzUxQjE5NzUxQzg2QUIxQUFBMUJBOTFDOTAwMDAxMTIwRUE1QjQwMzFEQUYxOTA1MTlFRkI1MTgwMTIyMTIwRThDN0UwMDI5RkZFRTNBQTkwNzc1MUFGRkY1MUI4OTFDODBENDdCMDBBNQorOjQwMEY0NjAwN0EwMDc5MDAyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjAwMzYwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxMzI3OEYxQUVGNDIzNjgwQ0EyMjhGMUFGQworOjQwMEY4NjAwMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIxMzNGMDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTM3QjhGMUFFRjQyMzc4MENBMjJDMEUwQzA4M0MwODJDMDg1QzA4OAorOjQwMEZDNjAwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDBDNgorOjQwMTAwNjAwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTA4QQorOjQwMTA0NjAwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTM0OQorOjQwMTA4NjAwRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDREOQorOjQwMTBDNjAwNTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQUYwOTAyQQorOjQwMTEwNjAwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA4RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBBRgorOjQwMTE0NjAwQzAwMDc0QkZGMDkwN0Y5ODc0MDlGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBDRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0ZFQworOjQwMTE4NjAwOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEVGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTA3NQorOjQwMTFDNjAwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjEzMEY4RjFBMTIxMzBGOEYxQkU1MUE2NTFCNjAxMjEyMTMwRjhGMUFFNTFBNjUxQjYwMDcxMjEzMEY4RjFCODBFOEFGMUEyMjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTA5OAorOjQwMTIwNjAwQzAwMEYwOTA3Rjk4NzQwRkYwOTBDMDAwRUZGMDkwN0Y5ODc0MERGMDkwQzAwMEVERjAyMjEyMTM2MzhGMUExMjEzNjM4RjFCRTUxQTY1MUI2MDEyMTIxMzYzOEYxQUU1MUE2NTFCNjAwNzEyMTM2MzhGMUI4MEU4QUYxQTIyOTBDOAorOjQwMTI0NjAwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxMkM4OTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyQUUwN0U0RkZFNTNFNTQ3RkZEMTIxMUIxOTA3Rjk4NzQxMUYwOTBDMDAwRUVGMEU0RTUzRTQ0ODBFOAorOjQwMTI4NjAwRkQxMjExQjEyMkFFMDdFNEZGRTUzRjU0N0ZGRDEyMTFGQjkwN0Y5ODc0MDlGMDkwQzAwMEVFRjBFNEU1M0Y0NDgwRkQxMjExRkIyMjA1MEUwMjAwMDAwMDAwMDMxNDAzMDAwMEMxMTFDMTE4QzE5NUMxMTBDMTE2MDEwQTAwQzE5QworOjQwMTJDNjAwMUIwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDUxMjBENEU4MEVFMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMDAwMDAwMDAwMjBGRTcwMDAyMTMwQQorOjQwMTMwNjAwMDQwMDAyMEZCRDAwMDIxMDBFOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOEYwOTA1MAorOjQwMTM0NjAwQzAwMEUwRkYyMjkwN0Y5ODc0MDlGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MENGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MERGMDkwQzAwMEUwRkZDNQorOjQwMTM4NjAwMjI5MDdGOTg3NDBFRjA5MEMwMDBFMEZGMjIxMjAwMDMxMjBENUYxMjBCNDYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxMjAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3NAorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjE0MUEwNjAwNzIwMDEwMDMzMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMDAwMEY3Cis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTE5LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTkuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZDE0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5LkhFWApAQCAtMCwwICsxLDEwMSBAQAorOjBBMDAyNjAwMTIwREJGMTIwRjQ3MTIwRDZCMjJERQorOjAzMDAzMzAwMDIwMDFBQUUKKzowNDAwMUEwMDUzRDhFRjMyOTYKKzoxMDAwMDMwMDhFMTM4RjE0RTUxNDE1MTRBRTEzNzAwMjE1MTM0RTYwN0UKKzowNzAwMTMwMDA1MTIwRjM2ODBFRTIyRkEKKzowMzAwMjMwMDAyMDA0NjkyCis6MTAwMDQ2MDBDMEUwQzA4M0MwODJDMDg2NzU4NjAwQzBEMDc1RDAwODY3Cis6MTAwMDU2MDAzMDk5MEUzMDA4MDdBMjBCOTI5Qjg1MzU5OUMyOTlEMjJBCis6MTAwMDY2MDAwRjIwMEYwMzAyMDQzMUMyMEYyMDAyMDMwMjAyNTYyMEEyCis6MTAwMDc2MDAwODAzMDIwMTI3RTUzN0MzOTU1MDUwM0UyMDA5MzYyMDc0Cis6MTAwMDg2MDAwNjMzOTA3RjlCRTAzMEUzMDMyMDBFMjkzMDBEMTJBRjNDCis6MTAwMDk2MDAzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MkZBCis6MTAwMEE2MDAwQkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEQ1Cis6MTAwMEI2MDBGNTM1MDIwNDJGQzIwODAyMDQyRjkwN0ZDN0U0RjBDMjcwCis6MTAwMEM2MDAwMjMwMEEwQ0MyMEE5MDdGQkIwNEYwQzIwODAyMDQyRjU5Cis6MTAwMEQ2MDA5MDdGQzhFMDMwRTEwNUMyMDgwMjA0MkY5MDdGQzlFMDk2Cis6MTAwMEU2MDBGNTUwOTA3REMwRTAxMzkyMEEyMDA5MkQyMDA2MkE5MDMzCis6MTAwMEY2MDA3RjlCRTAzMEUzMDMyMDBFMjAzMDBEMTE5MDdEQzFFMEEwCis6MDMwMDQzMDAwMjBGMDBBOQorOjAzMDAwMDAwMDIwQzYxOEUKKzo0MDAxMDYwMDEzOTIwQkEzRTBGNTM1NzUzNzAzMDIwNDJGNzUzNzAyOTA3REMxRTBGNTM1MDIwNDJGNzUzNzAxQzIwODAyMDQyRkU1MzdDMzk1NTA1MDAzMDIwMUNGOTA3RkM2RTAzMEUxMDdDMjEwQzIwMzAyMDQyRjkwN0ZDN0UwRjU1MDkwMDQKKzo0MDAxNDYwMDdFNDBFMDEzOTIwQTMwMDkwMzAyMDFDNzIwMDY3MjIwMDA2RjkwN0Y5QkUwMzBFMzAzMjAwRTY1MzAwRDEwOTA3RTQxRTAxMzkyOUJBM0UwRjU5OTc1MzcwMzgwMDk5MDdFNDFFMEY1OTk3NTM3MDJFNTM3QzM5NTUwNDAxNzkwQjEKKzo0MDAxODYwMDdGQzdFNEYwQzIwMjIwMEEwMzAyMDQyRkMyMEE5MDdGQkIwNEYwMDIwNDJGMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNUQyMDgwMjA0NUQKKzo0MDAxQzYwMDJGNzUzNzAxQzIxMDAyMDQyRjMwMDkwMzAyMDI1MTIwMDY3OTkwN0Y5QkUwMzBFMzAzMjAwRTZGMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjlCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwNDYKKzo0MDAyMDYwMEY1OTlFNTM3QzM5NTUwNDAxNzkwN0ZDN0U0RjBDMjAyMjAwQTAzMDIwNDJGQzIwQTkwN0ZCQjA0RjAwMjA0MkYzMDBEMTJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMEJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0ODMKKzo0MDAyNDYwMDdFRjU4M0UwRjUzNUQyMDgwMjA0MkZDMjEwMDIwNDJGMjAwODAzMDIwMzA4RTUzN0MzOTU1MDUwM0UyMDA5MzYyMDA2MzM5MDdGOUJFMDMwRTMwMzIwMEUyOTMwMEQxMkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzREUKKzo0MDAyODYwMDkyMEJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM1MDIwNDJGQzIwODAyMDQyRjkwN0ZDOUU0RjBEMjAyMzAwQTBDQzIwQTkwN0ZCQjA0RjBDMjA4MDIwNDJGOTA3RkM2RTAzMEUxMDVDMjA4MDIwNDJGOTA3RkM3NjUKKzo0MDAyQzYwMEUwRjU1MDkwN0U0MEUwMTM5MjBBMjAwOTJEMjAwNjJBOTA3RjlCRTAzMEUzMDMyMDBFMjAzMDBEMTE5MDdFNDFFMDEzOTIwQkEzRTBGNTM1NzUzNzAzMDIwNDJGNzUzNzAyOTA3RTQxRTBGNTM1MDIwNDJGNzUzNzAxQzIwODAyRUYKKzo0MDAzMDYwMDA0MkZFNTM3QzM5NTUwNTAwMzAyMDNCMDkwN0ZDOEUwMzBFMTA3QzIxMEMyMDMwMjA0MkY5MDdGQzlFMEY1NTA5MDdEQzBFMDEzOTIwQTMwMDkwMzAyMDNBODIwMDY3MjIwMDA2RjkwN0Y5QkUwMzBFMzAzMjAwRTY1MzAwRDEwMzQKKzo0MDAzNDYwMDkwN0RDMUUwMTM5MjlCQTNFMEY1OTk3NTM3MDM4MDA5OTA3REMxRTBGNTk5NzUzNzAyRTUzN0MzOTU1MDQwMTc5MDdGQzlFNEYwRDIwMjIwMEEwMzAyMDQyRkMyMEE5MDdGQkIwNEYwMDIwNDJGMzAwRDEyQUYzNzA1Mzc3NEMwRjUKKzo0MDAzODYwMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwQkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzVEMjA4MDIwNDJGNzUzNzAxQzIxMDAyMDQyRjMwMDkwMzAyMDQyRDIwMDY3NDkwN0Y5QkUwMzBFMzAzMjAwRTZBMzAwRDEyOEUKKzo0MDAzQzYwMEFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTI5QkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1OTlFNTM3QzM5NTUwNDAxMzkwN0ZDOUU0RjBEMjAyMzAwQTM1QzIwQTkwN0ZCQjA0RjA4MDJDMzAwRDEyQ0MKKzo0MDA0MDYwMEFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwQkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzVEMjA4ODAwMkMyMTBEMjEyMjA5ODAzMDIwNTZEQzI5ODIwMDEwMzAyMDREQTIwMTEyN0FGMzYwNTM2RjMKKzo0MDA0NDYwMDc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAwRDREQUYzNjA1MzY3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NDA0RDIwNjgwMkVFNTEwQjU0MzA0QzIwNjgwMjVBRjM2MDUzNjc0ODAyRkY1QUIKKzo0MDA0ODYwMDgyRTQzNDdFRjU4M0U1MTBGMDMwMEQxMUFGMzYwNTM2NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBDRTUzNkMzOTU0MDUwMDMwMjA1NkI5MDdGQjhFMDMwRTExNkU1MzZDMzk0NDA1MDAzMDIwNTZCMTUzNjE1MzYwNTJCREQKKzo0MDA0QzYwMDQzMzMwMTAyMDU2QjkwN0ZCN0U1MzZGMDc1MzYwMEMyMDEwMjA1NkIyMDExMjdBRjM2MDUzNjc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAwRDREQUYzNjA1MzY3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MzcKKzo0MDA1MDYwMDEwRTUxMEI1NDQwNEQyMDY4MDJFRTUxMEI1NDMwNEMyMDY4MDI1QUYzNjA1MzY3NDAwMkZGNTgyRTQzNDdFRjU4M0U1MTBGMDMwMEQxMUFGMzYwNTM2NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBDRTUzNkMzOTU0MDQwQ0UKKzo0MDA1NDYwMDI0OTA3RkI2RTAzMEUxMTJFNTM2QzM5NDQwNDAxNjE1MzYxNTM2MDUyQjQzMzMwMTgwMEI5MDdGQjlFNTM2RjA3NTM2MDBEMjAxRDIxMjMwMTIwNUMyMTIwMjAwNTZEMEQwRDA4NkQwODJEMDgzRDBFMDMyOTA3RkNBRTAzMEUxQ0EKKzo0MDA1ODYwMDAzMDIwNkFCRTRGNTEzNzQ0MDI1MTNGNTgyRTQzNDdERjU4M0UwRkZFNTEzN0MwMDdCMDAyNDM4RjlFQzM0MDBGQUVGMTIwRDMzMDUxM0U1MTNCNDE4REJFNTM4NjAwQzc1QzkyMDc1QzgzNDg1MzlDQTg1M0FDQkU1M0IxMzkyQkYKKzo0MDA1QzYwMDBEOTI5RkU1M0MxMzkyMEVFNTNEMTM5MjExRTUzRTYwMDk5MDdGOThFMDU0RkJGMDgwMDc5MDdGOThFMDQ0MDRGMEU1M0Y2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTQ1NjAwQkMyMDlDMjA2OTA3Rjk1MEUKKzo0MDA2MDYwMEUwNDQwMkYwRTU0NjYwMENEMjA2NDMzMzAxOTA3Rjk1RTA0NDAyRjBFNTQ3NjAwREMyQUZDMjA4RDIwMEU0RjU1MEY1MzdEMkFGRTU0ODYwMDUzMDExMDJEMjA2RTU0OTYwMTU5MDdGOTVFMDU0RkRGMDkwN0Y5RUUwNDQwMkYwQUEKKzo0MDA2NDYwMDkwN0Y5OEUwNTRGREYwRTU0QTYwMEFEMjlDQzI5ODc1MkMwMTc1MzExRUU1NEI2MDA3QzI5Q0U0RjUzNkY1MkNFNTRDNjAwM0U0RjUzNkU1NEQ2MDAyRDIwNEU1NEU2MDBBRTU0QTcwMDJGNTMxRTU0RTQyMzNFNTRGNjAxRjkwNjQKKzo0MDA2ODYwMDdGRDc3NDExRjA3NDMxRjA3NDEyRjA3NDMyRjA3NDEzRjA3NDMzRjA3NDE0RjA3NDM0RjBEMjAyRDIwMUQyMDVFNDkwN0ZDQkYwQTIwOUU0MzNGRjY1Mjk2MDA1OEYyOTQzMzMwMUEyMDZFNDMzRkY2NTJBNjAwNThGMkE0MzMzQkEKKzo0MDA2QzYwMDAxOTA3RjlCRTA1NDA4QjUyNTBBRTA1NDA4NjQwOEY1MjU0MzMzMDE5MDdGOUJFMDU0MTBCNTI2MEFFMDU0MTA2NDEwRjUyNjQzMzMwMTkwN0Y5QkUwNTQ0MEI1MjcwQUUwNTQ0MDY0NDBGNTI3NDMzMzAxOTA3RjlCRTA1NDIwMjYKKzo0MDA3MDYwMEI1MjgwQUUwNTQyMDY0MjBGNTI4NDMzMzAxMzAwNDM1QzJBRjMwMDExODkwN0ZCOEUwMjBFMTI3RTUzNjYwMDk5MDdGQjdGMEU0RjUzNkMyMDFDMjA0ODAxNjkwN0ZCNkUwMjBFMTBGRTUzNjYwMDk5MDdGQjlGMEU0RjUzNkQyMzQKKzo0MDA3NDYwMDAxQzIwNEQyQUYyMDAzMzczMDAyMUI5MDdGQzZFMDIwRTEyRDkwN0U0MEUwMTM5MjBBNzUzNzAxOTA3RkM3RTBGNTUwRDIwMzgwMTk5MDdGQzhFMDIwRTExMjkwN0RDMEUwMTM5MjBBNzUzNzAxOTA3RkM5RTBGNTUwRDIwMzIwRTkKKzo0MDA3ODYwMDEwMzMyMDAwMDZFNTM3NjU1MDcwMkEzMDAzMUEzMDAyMDlFNDkwN0ZDN0YwQzIwMjgwMDdFNDkwN0ZDOUYwRDIwMkMyMDNFNEY1NTBGNTM3MzAwQTBBQzIwQUMyMDA5MDdGQkI3NDAxRjAzMDEwMDMwMjA4QzUyMDAzMDMwMjA4MDUKKzo0MDA3QzYwMEM1MzAwRTBBOTA3RjlCRTAzMEUzMDMwMjA4QzUzMDA2MDMwMjA4QzUzMDA5MDMwMjA4QzUzMDAyNjIzMDBEMTJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMTlBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzQ0YKKzo0MDA4MDYwMEUwRjUxNEU1MzdDMzk1NTA1MDJBMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNUQyMDg4MDZCQzIwOEU0OTA3RkM3RjBDMjAyODA2MDMwODEKKzo0MDA4NDYwMDBEMTJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMTlBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTE0RTUzN0MzOTU1MDUwMkEzMDBEMTJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyOUYKKzo0MDA4ODYwMDBCQUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUzNUQyMDg4MDA5QzIwOEU0OTA3RkM5RjBEMjAyMzAwRDA0QTIxOTkyOUJEMjEwQzJBRjg1MTQ5OTIwMDgwRDMwMEEwQUMyMEFDMjAwOTA3RkJCNzQwMUYwRDJBRjkwNzIKKzo0MDA4QzYwMDdGQkNFMDIwRTE1MUU1MzM2MDRERTUzMTcwNDlFNTMzMzBFMTA4RTRGNTJGNzUzMzAxODAwQkEyMDVFNDMzRjUyRkMyMDVFNEY1MzNFNEY1MTM3RTAwN0IwMDc0MjQyNTEzRjlFRTM0MDBGQTEyMENFREZGNzQwMDI1MTNGNTgyRDgKKzo0MDA5MDYwMEU0MzQ3REY1ODNFRkYwMDUxM0U1MTNCNDBDREI5MDdGQkQ3NDBDRjA3NTMxMTAyMjkwN0ZFOUUwMTIwRDQ1MEEwMzAwMEE3NzAxMEFFMzAzMDk0MTA2MDlGNDA4MDlFODA5MDlEMDBBMDlERjBCMDAwMDBCMzI5MDdGRUJFMDI0RUIKKzo0MDA5NDYwMEZFNjAxNjE0NjA1NzI0MDI3MDc2NzQwRjkwN0ZENEYwNzQ2NDkwN0ZENUYwMDIwQjM5OTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MkI1NzU4MzBGRUZGMDc1ODJBRTc1ODMwRkYwNzU4MkE3NzU4MzBGRjA3NTgyQTA3NTgzQkEKKzo0MDA5ODYwMDBGRjA5MDdGRUFFMDA0NzU4MjdCNzU4MzBGRjA3NDBGOTA3RkQ0RjA3NDc2OTA3RkQ1RjAwMjBCMzk5MDdGRUFFMEZGMTIwRTQ4RUE0OTYwMERFQTkwN0ZENEYwRTk5MDdGRDVGMDAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5RDQKKzo0MDA5QzYwMDkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RjAwRTUxOUYwOTA3RkI1NzQwMUYwMDIwQjM5OTA3RkVBRTBGNTE5MDIwQjM5OTA3RkVBRTBGNTE4MTIwRDZCMDIwQjM5OTA3RjAwRTUxOEYwOTA3RkI1NzQwMUYwMDIwQjM5OTA3RkU4MjIKKzo0MDBBMDYwMEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTNFNDMzRkYyNUUwRkZBMjE3RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMzlFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzOTkwN0ZFQ0UwRjQ1NDgwQjYKKzo0MDBBNDYwMEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RkU4RTAyNEZFNjAxRDI0MDI2MDAzMDIwQjM5MDQKKzo0MDBBODYwMDkwN0ZFQUUwQjQwMTA1QzIxMzAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGQ0MKKzo0MDBBQzYwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTM4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTA3RkVBMzYKKzo0MDBCMDYwMEUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjIyMDE1MDMwMjBCM0UKKzo0MDBCNDYwMEQzRTUzMTYwMDIxNTMxRTUzNjYwNEY2NTM0NzA0NUU1MzJGNDYwMDIwNTMyRTUzMkMzOTU0MTQwM0RDMkFGMzAwMTE4OTA3RkI4RTAyMEUxMjc5MDdGQjdFNTM2RjBDMjAxRTRGNTM2RjUzMkY1MzQ4MDE2OTA3RkI2RTAyMEUxM0QKKzo0MDBCODYwMDBGOTA3RkI5RTUzNkYwRDIwMUU0RjUzNkY1MzJGNTM0RDJBRjgwMDY4NTM2MzRFNEY1MzJFNTJDNjAyRjIwMEMwNzkwN0Y5QkUwMzBFMDBGRTUyRDYwMDZFNEY1MkQ0MzMzMDFFNEY1MzA4MDE0RTUzMEQzOTU0MjUwMERFNTMwREIKKzo0MDBCQzYwMEI1NDIwNjc1MkQwMTQzMzMwMTA1MzBDMjBDMjI3NTEyMDFDMjE0QzIxOEMyMTNDMjE3QzIxNUMyMTJEMjE2RTRGNTE4OTA3RjkyRTA1NEZERjA5MDdGQUVFMEZGRDM5MjEzRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0REIKKzo0MDBDMDYwMDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyQkNEMjE5MTIwRURBQzIxNDMwMTUwMzEyMDU4MDkwN0ZEOEUwNjUxMTYwMDhFMEY1Q0EKKzo0MDBDNDYwMDExMTIwQjQxODBFQTMwMTQwN0MyMTQxMjA5MUU4MEUwMzAxOEREQzIxODEyMDAyNjgwRDYyMjc4N0ZFNEY2RDhGRDc1ODE1MDAyMENBODAyMEJENEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4M0IKKzo0MDBDODYwMDU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwRTA0RTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwOEUKKzo0MDBDQzYwMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyNDIKKzo0MDBEMDYwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwRTEKKzo0MDBENDYwMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMDkwN0Y5Njc0MTBGMDkwN0Y5NDc0MDFGMDkwN0Y5RDA0RTIKKzo0MDBEODYwMEYwOTA3Rjk3NzQyMEYwOTA3Rjk1NzQwM0YwOTA3RjlFNzQ4NEYwRTQ5MDdGOThGMDkwN0ZDN0YwOTA3RkM5RjA5MDdGQ0JGMDc1OTg0MDQzQTgxMDkwN0ZERTc0MUZGMDkwN0ZERjc0MEZGMEQyMTUyMkU0OTA3Rjk1RjA5MDdGRjcKKzo0MDBEQzYwMDk0RjA5MDdGOTNGMDkwN0Y5REUwNDQwMkYwOTA3Rjk3RTA0NDAyRjA5MDdGOURFMDU0RkRGMDkwN0Y5Qzc0MjBGMEU0OTA3Rjk2RjA5MDdGOURFMDQ0RkRGMEU0OTA3Rjk3RjA5MDdGOUU3NEZGRjBFNDkwN0Y5OEYwMjIwQzI0RDAKKzo0MDBFMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzAwMDAxMzMwMTAxMzIwMDAxMzcwMDAxNTAwMDAxMzYwMDAxMzQwMEMxMDVDMTBDQzEwM0MxMEZDMTA0QzEwRUMxMTFDMTBBQzExMEMxMDhDMTA5QzEwNkMxMDBDMTBEQzE4MUMxMDkKKzo0MDBFNDYwMDgyMDA4RjEzRTRGNTE0NzUxNUZGNzUxNjBGNzUxN0I5QUIxNUFBMTZBOTE3OTAwMDAxMTIwRDA2QjQwMzFEQUYxNDA1MTRFRkI1MTMwMTIyMTIwQ0VEN0UwMDI5RkZFRTNBQTkwNzc1MTVGRkY1MTY4OTE3ODBENDdCMDA3QTAwNkQKKzo0MDBFODYwMDc5MDAyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTQ1MzkxQzcKKzo0MDBFQzYwMEVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxOTA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwMzkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjAwMDIwRUIzMDAwMjBGQzAKKzo0MDBGMDYwMDA0MDAwMjBFODkwMDAyMEYwRkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5QjkKKzo0MDBGNDYwMDIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMDAwNDBDRDA2MDcwMTAxMDAwMTAyMDAwMjA5MDI0MzAwMDEwMTAwODAzMjA5MDQwMDAwMDdGRjAwOEEKKzo0MDBGODYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA0MDMwOTA0MTAwMzRCMDA2NTAwNzkwMDczMzIKKzoxNzBGQzYwMDAwNzAwMDYxMDA2RTAwMEUwMzUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDAwMDA2NAorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOXFpLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxaS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUzYmZjZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxaS5IRVgKQEAgLTAsMCArMSwxMDEgQEAKKzowMzAwMzMwMDAyMDAxQUFFCis6MDQwMDFBMDA1M0Q4RUYzMjk2Cis6MTAwMDAzMDA4RTExOEYxMkU1MTIxNTEyQUUxMTcwMDIxNTExNEU2MDhBCis6MDcwMDEzMDAwNTEyMEY4NDgwRUUyMkFDCis6MDMwMDIzMDAwMjAwNDY5MgorOjEwMDA0NjAwQzBFMEMwODNDMDgyQzA4Njc1ODYwMEMwRDA3NUQwMDg2NworOjEwMDA1NjAwMzA5OTBFMzAwQjA3QTIwRTkyOUI4NTM2OTlDMjk5RDIyMworOjEwMDA2NjAwMTIyMDEyMDMwMjA0MUVDMjEyMjAwMzAzMDIwMjRFMjBCMworOjEwMDA3NjAwMEIwMzAyMDEyNkU1M0FDMzk1NTM1MDNDMjAwQzM0MjA2RAorOjEwMDA4NjAwMDkzMTkwN0Y5QkUwNTUzODcwMjkzMDEwMTJBRjNBMDU0MAorOjEwMDA5NjAwM0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUY3NgorOjEwMDBBNjAwM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MzY1RQorOjEwMDBCNjAwMDIwNDFDQzIwQjAyMDQxQzkwN0ZDN0U0RjBDMjAzMzA4QQorOjEwMDBDNjAwMEQwQ0MyMEQ5MDdGQkIwNEYwQzIwQjAyMDQxQzkwN0Y4NgorOjEwMDBENjAwQzhFMDMwRTEwNUMyMEIwMjA0MUM5MDdGQzlFMEY1NTM2RAorOjEwMDBFNjAwOTA3REMwRTAxMzkyMEQ3NTE2RkYyMDBDMkIyMDA5Mjg3OQorOjEwMDBGNjAwOTA3RjlCRTA1NTM4NzAyMDMwMTAxMTkwN0RDMUUwMTM0MQorOjAzMDA0MzAwMDIwRTAwQUEKKzowMzAwMDAwMDAyMDAyNkQ1Cis6MEMwMDI2MDA3ODdGRTRGNkQ4RkQ3NTgxNTQwMjBCMjhBOQorOjQwMDEwNjAwOTIwRUEzRTBGNTM2NzUzQTAzMDIwNDFDNzUzQTAyOTA3REMxRTBGNTM2MDIwNDFDNzUzQTAxQzIwQjAyMDQxQ0U1M0FDMzk1NTM1MDAzMDIwMUM5OTA3RkM2RTAzMEUxMDdDMjE0QzIwNTAyMDQxQzkwN0ZDN0UwRjU1MzkwN0VDQgorOjQwMDE0NjAwNDBFMDEzOTIwRDc1MTZGRjIwMEM3MDIwMDk2RDkwN0Y5QkUwNTUzODcwNjUzMDEwMTA5MDdFNDFFMDEzOTI5QkEzRTBGNTk5NzUzQTAzODAwOTkwN0U0MUUwRjU5OTc1M0EwMkU1M0FDMzk1NTM0MDE3OTA3RkM3RTRGMEMyMDNGNgorOjQwMDE4NjAwMjAwRDAzMDIwNDFDQzIwRDkwN0ZCQjA0RjAwMjA0MUMzMDEwMTJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMEVBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTM2RDIwQjAyMDQxQzc1M0EwMUMyMTRBMworOjQwMDFDNjAwMDIwNDFDMzAwQzAzMDIwMjQ5MjAwOTc3OTA3RjlCRTA1NTM4NzA2RjMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTI5QkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1OTlFNTNBQzM5NTUzNDBBQgorOjQwMDIwNjAwMTc5MDdGQzdFNEYwQzIwMzIwMEQwMzAyMDQxQ0MyMEQ5MDdGQkIwNEYwMDIwNDFDMzAxMDEyQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNkQyMEI0NAorOjQwMDI0NjAwMDIwNDFDQzIxNDAyMDQxQzIwMEIwMzAyMDJGRkU1M0FDMzk1NTM1MDNDMjAwQzM0MjAwOTMxOTA3RjlCRTA1NTM4NzAyOTMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0EwNTNBNzRDMDJGRjVGOQorOjQwMDI4NjAwODJFNDM0N0RGNTgzRTBGNTM2MDIwNDFDQzIwQjAyMDQxQzkwN0ZDOUU0RjBEMjAzMzAwRDBDQzIwRDkwN0ZCQjA0RjBDMjBCMDIwNDFDOTA3RkM2RTAzMEUxMDVDMjBCMDIwNDFDOTA3RkM3RTBGNTUzOTA3RTQwRTAxMzkyMERBRgorOjQwMDJDNjAwNzUxNkZGMjAwQzJCMjAwOTI4OTA3RjlCRTA1NTM4NzAyMDMwMTAxMTkwN0U0MUUwMTM5MjBFQTNFMEY1MzY3NTNBMDMwMjA0MUM3NTNBMDI5MDdFNDFFMEY1MzYwMjA0MUM3NTNBMDFDMjBCMDIwNDFDRTUzQUMzOTU1MzUwMDM4MQorOjQwMDMwNjAwMDIwM0EyOTA3RkM4RTAzMEUxMDdDMjE0QzIwNTAyMDQxQzkwN0ZDOUUwRjU1MzkwN0RDMEUwMTM5MjBENzUxNkZGMjAwQzcwMjAwOTZEOTA3RjlCRTA1NTM4NzA2NTMwMTAxMDkwN0RDMUUwMTM5MjlCQTNFMEY1OTk3NTNBMDM3QQorOjQwMDM0NjAwODAwOTkwN0RDMUUwRjU5OTc1M0EwMkU1M0FDMzk1NTM0MDE3OTA3RkM5RTRGMEQyMDMyMDBEMDMwMjA0MUNDMjBEOTA3RkJCMDRGMDAyMDQxQzMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0E4MQorOjQwMDM4NjAwMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM2RDIwQjAyMDQxQzc1M0EwMUMyMTQwMjA0MUMyMDBDNzUyMDA5NzI5MDdGOUJFMDU1Mzg3MDZBMzAxMDEyQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjlCQUYwMgorOjQwMDNDNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1OTlFNTNBQzM5NTUzNDAxMzkwN0ZDOUU0RjBEMjAzMzAwRDM1QzIwRDkwN0ZCQjA0RjA4MDJDMzAxMDEyQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjBFQUYzRAorOjQwMDQwNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzZEMjBCODAwMkMyMTREMjAxMjA5ODAzMDIwNTVBQzI5ODIwMDIwMzAyMDRDNzIwMTYyN0FGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDEwNERBRjM5MDVDOAorOjQwMDQ0NjAwMzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NzA0RDIwOTgwMkVFNTEwQjU0NjA0QzIwOTgwMjVBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTUxMEYwMzAxMDExQUYzOTA1Mzk3NDgwMkYxMQorOjQwMDQ4NjAwRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBGRTUzOUMzOTU0MzUwMDMwMjA1NTg5MDdGQjhFMDMwRTExNkU1MzlDMzk0NDA1MDAzMDIwNTU4MTUzOTE1MzkwNTJCNDMzNDAxMDIwNTU4OTA3RkI3RTUzOUYwNzUzOTAwQzIwMjAyMDVEMworOjQwMDRDNjAwNTgyMDE2MjdBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAxMDREQUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NzA0RDIwOTgwMkVFNTEwQjU0NjA0QzIwOTgwMjU3MworOjQwMDUwNjAwQUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1MTBGMDMwMTAxMUFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBGRTUzOUMzOTU0MzQwMjQ5MDdGQjZFMDMwRTExMkU1MzlDMzk0NDA0MDE2MTUzOTE1MzkwOQorOjQwMDU0NjAwMDUyQjQzMzQwMTgwMEI5MDdGQjlFNTM5RjA3NTM5MDBEMjAyRDIwMTMwMDEwNUMyMDEwMjAwNTZEMEQwRDA4NkQwODJEMDgzRDBFMDMyOTA3RkJDRTAyMEUxNTFFNTM0NjA0REU1MzE3MDQ5RTUzNDMwRTEwOEU0RjUyRjc1MzRENAorOjQwMDU4NjAwMDE4MDBCQTIwOEU0MzNGNTJGQzIwOEU0RjUzNEU0RjUxMTdFMDA3QjAwNzQyNDI1MTFGOUVFMzQwMEZBMTIwRDA2RkY3NDAwMjUxMUY1ODJFNDM0N0RGNTgzRUZGMDA1MTFFNTExQjQwQ0RCOTA3RkJENzQwQ0YwNzUzMTEwOTBDRAorOjQwMDVDNjAwN0ZDQUUwMzBFMTAzMDIwNkYzRTRGNTExNzQ0MDI1MTFGNTgyRTQzNDdERjU4M0UwRkZFNTExN0MwMDdCMDAyNDNCRjlFQzM0MDBGQUVGMTIwRDFGMDUxMUU1MTFCNDE4REJFNTNCNjAxMTc1QzkyMDc1QzgzNjg1M0NDQTg1M0Q5OAorOjQwMDYwNjAwQ0JFNDkwN0Y5RkYwRTUzRTEzOTIxMDkyOUY4NTNGMzhFNTQwMTM5MjE2RTU0MTYwMDk5MDdGOThFMDU0RkJGMDgwMDc5MDdGOThFMDQ0MDRGMEU1NDI2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTQ4NjBCRQorOjQwMDY0NjAwMEJDMjBDQzIwOTkwN0Y5NUUwNDQwMkYwRTU0OTYwMENEMjA5NDMzNDAxOTA3Rjk1RTA0NDAyRjBFNTRBNjAwREMyQUZDMjBCRDIwMEU0RjU1M0Y1M0FEMkFGRTU0QjYwMDUzMDE2MDJEMjA5RTU0QzYwMTU5MDdGOTVFMDU0RkRCNAorOjQwMDY4NjAwRjA5MDdGOUVFMDQ0MDJGMDkwN0Y5OEUwNTRGREYwRTU0RDYwMEFEMjlDQzI5ODc1MkMwMTc1MzExRUU1NEU2MDA3QzI5Q0U0RjUzOUY1MkNFNTRGNjAwM0U0RjUzOUU1NTA2MDAyRDIwN0U1NTE2MDBBRTU0RDcwMDJGNTMxRTU1QworOjQwMDZDNjAwNTE0MjM0RTU1MjYwMUY5MDdGRDc3NDExRjA3NDMxRjA3NDEyRjA3NDMyRjA3NDEzRjA3NDMzRjA3NDE0RjA3NDM0RjBEMjAzRDIwMkQyMDhFNDkwN0ZDQkYwQTIwQ0U0MzNGRjY1Mjk2MDA1OEYyOTQzMzQwMUEyMDlFNDMzRkY4NAorOjQwMDcwNjAwNjUyQTYwMDU4RjJBNDMzNDAxOTA3RjlCRTBGRjU0MDg2NDA4RkU2NTI1NjAwNThFMjU0MzM0MDFFRjU0MTA2NDEwRkU2NTI2NjAwNThFMjY0MzM0MDFFRjU0NDA2NDQwRkU2NTI3NjAwNThFMjc0MzM0MDFFRjU0MjA2NDIwRkUxQworOjQwMDc0NjAwNjUyODYwMDU4RTI4NDMzNDAxOTA3RjlBRTA1NDQwNjQ0MEZFNjUyRTYwMDU4RTJFNDMzNDAxMzAwNzM1QzJBRjMwMDIxODkwN0ZCOEUwMjBFMTI3RTUzOTYwMDk5MDdGQjdGMEU0RjUzOUMyMDJDMjA3ODAxNjkwN0ZCNkUwMjAzQgorOjQwMDc4NjAwRTEwRkU1Mzk2MDA5OTA3RkI5RjBFNEY1MzlEMjAyQzIwN0QyQUYyMDA1M0QzMDAzMUU5MDdGQzZFMDIwRTEzMzkwN0U0MEUwMTM5MjBENzUzQTAxOTA3RkM3RTBGNTUzRDIwNTc1MTZGRjgwMUM5MDdGQzhFMDIwRTExNTkwN0REMworOjQwMDdDNjAwQzBFMDEzOTIwRDc1M0EwMTkwN0ZDOUUwRjU1M0QyMDU3NTE2RkYyMDE0MzMyMDAwMDZFNTNBNjU1MzcwMkEzMDA1MUEzMDAzMDlFNDkwN0ZDN0YwQzIwMzgwMDdFNDkwN0ZDOUYwRDIwM0MyMDVFNEY1NTNGNTNBMzAwRDBBQzI2NQorOjQwMDgwNjAwMERDMjAwOTA3RkJCNzQwMUYwMzAxNDAzMDIwOTE0MjAwNTAzMDIwOTE0MzAwQzAzMDIwOTE0MzAwOTAzMDIwOTE0OTA3RjlCRTA1NTM4NjAwMzAyMDkxNDMwMDM2MTMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODMzRgorOjQwMDg0NjAwRTAxMzkyMUJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGRUU1M0FDMzk1NTM1MDJBMzAxMDEyQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjU0NgorOjQwMDg4NjAwMzZEMjBCODA2QUMyMEJFNDkwN0ZDN0YwQzIwMzgwNUYzMDEwMTJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMUJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGRUU1M0FDMzk1NTM1MDJBMzAxMDEyQUZFNworOjQwMDhDNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzZEMjBCODAwOUMyMEJFNDkwN0ZDOUYwRDIwMzMwMTAwNEEyMUI5MjlCRDIxNEMyQUY4RTk5MjAwQjBEMzAxRAorOjQwMDkwNjAwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwRDJBRjIyOTA3RkU5RTAxMjBEMzEwQTExMDAwQTdFMDEwQURCMDMwOTM4MDYwQTAyMDgwOUY2MDkwOURFMEEwOUVEMEIwMDAwMEIxOTkwN0ZFQkUwMjRGRTYwMTkxNDYwNUEyNDAyNjA0MQorOjQwMDk0NjAwMDMwMjBCMTk3NDBEOTA3RkQ0RjA3NDg3OTA3RkQ1RjAwMjBCMjA5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyRDg3NTgzMERFRkYwNzU4MkQxNzU4MzBERjA3NTgyQ0E3NTgzMERGMDc1ODJDMzc1ODMwREYwOTA3RkVBRTA3OAorOjQwMDk4NjAwMDQ3NTgyOUU3NTgzMERGMDc0MEQ5MDdGRDRGMDc0OTk5MDdGRDVGMDAyMEIyMDkwN0ZFQUUwNzAwQjc1MTFGRjc1MTIwRDc1MTNEQzgwMUI5MDdGRUFFMEI0MDEwQjc1MTFGRjc1MTIwRDc1MTNFMDgwMDk3NTExRkY3NTEyMEQxOQorOjQwMDlDNjAwNzUxM0YwQUExMkE5MTNBRTAyRUU5MDdGRDRGMEFGMDFFRjkwN0ZENUYwMDIwQjIwOTA3RjAwRTUxNUYwOTA3RkI1NzQwMUYwMDIwQjIwOTA3RkVBRTBGNTE1MDIwQjIwMTIwQ0IxOTA3RkVBRTBGNTE0MDIwQjIwOTA3RjAwRTVCRgorOjQwMEEwNjAwMTRGMDkwN0ZCNTc0MDFGMDAyMEIyMDkwN0ZFOEUwMjQ3RjYwMjcxNDYwMzQyNDAyNjAwMzAyMEIxOUEyMTdFNDMzRkYyNUUwRkZBMjE5RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMjBFNDkwN0YwMEYwQTNCNworOjQwMEE0NjAwRjA5MDdGQjU3NDAyRjAwMjBCMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIyMDkwN0ZFOEUwMjRGRTYwMTcyNgorOjQwMEE4NjAwMjQwMjYwMDMwMjBCMjA5MDdGRUFFMDY0MDE2MDAzMDIwQjE5QzIxNzAyMEIyMDkwN0ZFQUUwNzA3NjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBENgorOjQwMEFDNjAwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDQ1OTA3RkU4RTAyNEZFNjAxMDI0MDI3MDM5OTA3RkVBRTA2NDAxNzAyQUQyMTc4MDJEOTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NgorOjQwMEIwNjAwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJDMjEwRTRGNTE0RjUzNEMyMDlDMjBDQzIwQkMyMTRDMjBEQzIxNkMyMTFDMjA3QzIxMkMyMEZDMjA4RjUzOAorOjQwMEI0NjAwMzVGNTM5RjU1M0Y1M0FGNTMzRjUzMEY1MkZGNTJFRjUyREY1MkNGNTJCRjUyQUY1MjlGNTI4RjUyN0Y1MjZGNTI1RjUyNEMyMDVDMjE4QzIxQUMyMTdDMjE5QzIxNUMyMDREMjEzQzIwNkMyMDE5MDdGOTJFMDU0RkRGMEQyRTgyMAorOjQwMEI4NjAwNDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MEZGMDkwN0ZBQzc0MEVGMEQyQUZEMkJDRDIxQjEyMEY1RkMyMTgzMDA0MDMxNgorOjQwMEJDNjAwMTIwNTZEMzAwNDJBMzAwNjI3QzIwNkU1MTY2MDE2MTUxNjkwN0ZEOEUwMzBFNjA0N0YwMDgwMDI3RjIwOTA3Rjk2RUZGMDgwMDY5MDdGOTY3NDIwRjAxMjBDMEI4MENEMzAxODA3QzIxODEyMDkxNTgwQzMzMDFBQzBDMjFBMTI4RQorOjQwMEMwNjAwMEZCQjgwQjkyMkU1MzE2MDAyMTUzMUU1Mzk2MDU1NjUzNTcwNEJFNTMzRjQ2MDAyMDUzM0U1MzNDMzk1NDQ0MDQzQzJBRjMwMDIxQjkwN0ZCOEUwMjBFMTJEOTA3RkI3RTUzOUYwQzIwMkU0RjUzOUY1MzNGNTM1NzUxNkZGODAyRAorOjQwMEM0NjAwMTk5MDdGQjZFMDIwRTExMjkwN0ZCOUU1MzlGMEQyMDJFNEY1MzlGNTMzRjUzNTc1MTZGRkQyQUY4MDA2ODUzOTM1RTRGNTMzRTUyQzYwMzAyMDBGMDc5MDdGOUJFMDMwRTAwRkU1MkQ2MDA2RTRGNTJENDMzNDAxRTRGNTMwODAwMAorOjQwMEM4NjAwMTRFNTMwRDM5NTQ1NTAwREU1MzBCNTQ1MDY3NTJEMDE0MzM0MDEwNTMwQzIwRjIyOTA3RkQ5RTAzMEUyMDQ3RjAwODAwMjdGMjA5MDdGOTZFRkYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2NzQyMEYwOTA3Rjk0NzQ4QQorOjQwMENDNjAwMDFGMDkwN0Y5RDc0QkZGMDkwN0Y5Nzc0ODZGMDkwN0Y5NTc0MDNGMDkwN0Y5RTc0ODRGMDkwN0Y5OEYwRTQ5MDdGQzdGMDkwN0ZDOUYwOTA3RkNCRjA3NTk4NDA0M0E4MTA5MDdGREU3NDFGRjA5MDdGREY3NDBGRjBEMjA0MjIxQQorOjQwMEQwNjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNFQgorOjQwMEQ0NjAwRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjAwMDAwMDAwMDA3QgorOjQwMEQ4NjAwMDAxMjAxMTAwMUZGMDAwMDQwQ0QwNjBDMDEwMTAwMDEwMjAwMDIwOTAyNDMwMDAxMDEwMDgwMzIwOTA0MDAwMDA3RkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1ODEwMjQwMDAxMAorOjQwMERDNjAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNDAzMDkwNDEwMDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMEUwMzUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDAwMDAwMjBFQTIwMDAyMEU0MQorOjQwMEUwNjAwN0IwMDAyMEQ1NzAwMDIwRUM5MDAwMjBFMTAwMDAyMEUxNDAwMDIwRTE4MDAwMjBFMUMwMDAyMEVGMDAwMDIwRTI0MDAwMjBGMTUwMDAyMEUyQzAwMDIwRjNBRTQ5MDdGOTVGMDkwN0Y5NEYwOTA3RjkzRjA5MDdGOURFMDQ0MDIwQQorOjQwMEU0NjAwRjA5MDdGOTdFMDQ0MDJGMDkwN0Y5Qzc0MTBGMEU0OTA3Rjk2RjA5MDdGOUQ3NEZFRjAzMDE3MDQ3RjgwODAwMjdGMDA5MDdGOTdFRkYwRTQ5MDdGOTVGMDkwN0Y5RUYwOTA3Rjk4RjAyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzAwRQorOjQwMEU4NjAwODY3NTg2MDA1MzkxRUY5MDdGQUI3NDAyRjBEMjA2RDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNFQgorOjQwMEVDNjAwRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxQTUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwNTM5MUVGOTA3RkE5NzRDMgorOjQwMEYwNjAwMDJGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwNTM5MUVGOTA3RkE5NzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODZENworOjQwMEY0NjAwNzU4NjAwNTM5MUVGOTA3RkE5NzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQjA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwMzkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjc0MDBCOQorOjQwMEY4NjAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjI5MDdGRDZFMDQ0MDFGMDdGMEQ3RTAwMTIwMDAzOTA3RkQ2RTA1NEZFRjAyMjEyMEUzMzEyMEY5NTkwN0ZENkUwMzBGQQorOjA5MEZDNjAwRTcwMzEyMEZBNTEyMENCMTIyODEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxdy5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cXcuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhODkxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cXcuSEVYCkBAIC0wLDAgKzEsMTQyIEBACis6MDMwMDMzMDAwMjAwMkQ5QgorOjA0MDAyRDAwNTNEOEVGMzI4MworOjEwMDA0NjAwMzAxMDE5MTIwRTBGRUZDMzk1MTQ0MDAzMDIwMERGOTAxMworOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMTBDMjBCMDIwMERGMzAwRDNFOTA2QworOjEwMDA2NjAwN0ZDNkUwMjBFMTczMTIwRTBGRUZDMzk0NDA1MDZBOTBGMgorOjEwMDA3NjAwN0U0MEUwMTM5MjEwOTA3RkM3RTAxNEY1MzYyMDBCMTFGNgorOjEwMDA4NjAwNjAwRkY1MjQ3RTdFN0Y0MTc1Mjk3RTc1MkE0MTEyMDkwRgorOjEwMDA5NjAwMTBDMjBERTQ5MDdGQzdGMDc1MjZGRjgwM0M5MDdGQzhBNAorOjEwMDBBNjAwRTAyMEUxMzUxMjBFMEZFRkMzOTQ0MDUwMkM5MDdEQzAzNgorOjEwMDBCNjAwRTAxMzkyMTA5MDdGQzlFMDE0RjUzNjIwMEIxMTYwMEYwMworOjEwMDBDNjAwRjUyNDdFN0Q3RkMxNzUyOTdENzUyQUMxMTIwOTEwRDI1RQorOjEwMDBENjAwMERFNDkwN0ZDOUYwNzUyNkZGOTA3RkI2RTAzMEUxMDMwRQorOjEwMDBFNjAwMDIwMTY4MTIwQ0ZGOEYzNjEyMEUxQjhGMTFFNTM2QzMwNAorOjEwMDBGNjAwOTUxMzUwMEYxMjBEREVFRjMwRTAwOEU1MTEyMEU3MDNFRgorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMEUwMEFBCis6MTAwMDAzMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDZFCis6MTAwMDEzMDA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMEFCCis6MEEwMDIzMDA4NEQwODVEMDgyRDA4M0QwRTAzMjczCis6MDMwMDAwMDAwMjA5QzUyRAorOjQwMDEwNjAwMzAxMzVGQzIxM0U1MzY2MDU5QjQ4MDAzNDMxMTAyRTUxMTMwRTcyNEU1MzZEMzk0MjA0MDAzNzUzNjIwODUzNjI0N0U3RTdGODA3NTI5N0U3NTJBODAxMjBCOUFFNTM2MjVFMDkwN0ZCN0YwODAyQUU1MzZEMzk0M0Y0MDAzNzUzQgorOjQwMDE0NjAwMzYzRjg1MzYyNDkwN0U4MEU1MTFGMDdFN0U3RjgxNzUyOTdFNzUyQTgxMTIwOTM1RTUzNjA0OTA3RkI3RjA3NTI2RkY5MDdGQ0VFMDMwRTEwNjIwMEUwMzAyMDNDNEU0RjUzNTc0NDAyNTM1RjU4MkU0MzQ3Q0Y1ODNFMEZGRTU4OQorOjQwMDE4NjAwMzU3QzAwN0IwMTdBN0U3OTAwMjQwMEY5RUMzNDdFRkFFRjEyMEE5NzA1MzVFNTM1QjQyMEQ3OTA3RTAwRTA2MDZFN0YwMTkwN0UxMUUwRkQxMjBDREE5MDdFMDFFMEZGMTIwQzFDOTA3RTAyRTBGRjEyMEM0MkQyMTFEMjEyNzU2MgorOjQwMDFDNjAwMzYwNDkwN0UwM0UwNjAwNUMyMTI0MzM2QzA5MDdFMDRFMEI0MDEwN0MyMTI0MzM2MEI4MDEwOTA3RTA0RTA2MDA3QzIxMTQzMzYwOTgwMDM0MzM2MDI3RjAzQUQzNjEyMENEQTQzMUE4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1MUE3MgorOjQwMDIwNjAwRjA5MDdGOTg3NDEyRjBFNTE3NDQwNjkwQzAwMEYwOTA3RTA1RTA2MDEyQTNFMDU0M0ZGNTE5OTA3Rjk4NzQxM0YwOTBDMDAwRTUxOUYwOTA3RTA3RTA2MDQyOTA3RTEzRTA2MDA1NDMxNjA0ODAwMzUzMTZGQkU0RkZBRDE2MTI0NworOjQwMDI0NjAwMENEQTkwN0UwOEUwNjAwNTQzMTg4MDgwMDM1MzE4N0Y1MzE4RkM5MDdFMDlFMDYwMTE0MzE4MDJBM0UwRkYxMjBDOEU5MDdFMEJFMEZGMTIwQ0I0QUYxODEyMEM2ODkwN0UwRUUwNjAxOEEzRTA2MDA1NDMxQTAxODAwMzUzMUFENAorOjQwMDI4NjAwRkU5MDdGOTg3NDE0RjA5MEMwMDBFNTFBRjA5MDdFMENFMDYwMThBM0UwNjAwNTQzMUEwMjgwMDM1MzFBRkQ5MDdGOTg3NDE0RjA5MEMwMDBFNTFBRjA5MDdFMTJFMEY1MTNBM0UwMTM5MjE0QTNFMEY1MTRBM0UwNjAwNTQzMUFDMworOjQwMDJDNjAwMTA4MDAzNTMxQUVGOTA3Rjk4NzQxNEYwOTBDMDAwRTUxQUYwOTA3RTE2RTA2MDMyNTMxOUJGOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTFGMDEyMEREMkVGNTRGRTkwQzAwMEYwNTMxNkZERTRGRkFEMTYyMQorOjQwMDMwNjAwMTIwQ0RBRTRGNTBFRjUwREQyMEY5MDdFMTdFMDYwMEY0MzE2MDJFNEZGQUQxNjEyMENEQTc1MEQwMUQyMEY5MDdFMThFMDYwMTA5MDdGOTg3NDEyRjBFNTE3NDQwNDkwQzAwMEYwRDIwQjkwN0UxOUUwNjAxMTQzMTk0MDkwN0YwRAorOjQwMDM0NjAwOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwOTA3RTFBRTA2MDBGNTMxNkZFRTRGRkFEMTYxMjBDREE3NTBGMDFEMjBGOTA3RTFCRTA2MDBGNDMxNjAxRTRGRkFEMTYxMjBDREFFNEY1MEZEMjBGOTA3RTFDRTA2MDBFOTA3Rjk4NzRBOQorOjQwMDM4NjAwMTJGMEU1MTc0NDAyOTBDMDAwRjA5MDdFMURFMDYwMDJEMjEzOTA3RTFFRTA2MDA4NzUxMDAxRTRGNTEyRDIwRjkwN0UxRkUwNjAxMTkwN0ZENzc0MTFGMDc0MzFGMDc0MTVGMDc0MzVGMEQyMERDMjBFRTQ5MDdGQ0ZGMDMwMTY3NAorOjQwMDNDNjAwNzFFNTEyNjAwMjE1MTJFNTMwRDM5NDAwNDAwNDE1MzA4MDYwNzUzMDBBMTIwREQyRUY1NDAxRjUzNjY1MEU2MDA3ODUzNjBFRDIwRjgwMTExMjBFMjdFRjU0MTBGNTM2NjUwOTYwMDU4NTM2MDlEMjBGMTIwRTI3RUY1NDgwRjVDMQorOjQwMDQwNjAwMzY2NTBBNjAwNTg1MzYwQUQyMEYxMjBFMjdFRjU0MjBGNTM2NjUwQjYwMDg4NTM2MEIzMDExMDJEMjBGMTIwRTI3RUY1NDQwRjUzNjY1MEM2MDA4ODUzNjBDMzAxMjAyRDIwRjMwMTYyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTAzNQorOjQwMDQ0NjAwNjAwOUUwRjUzMjkwN0I0MkUwRjUzMzkwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDUyOUU1Mjc3MDQwMzAwRjM5RTUxMjcwMzVDMjBGRjUzNTdFMDA3QjAwNzQwODI1MzVEQgorOjQwMDQ4NjAwRjlFRTM0MDBGQTEyMEE1MUZGNzQ4MDI1MzVGNTgyRTQzNDdCRjU4M0VGRjAwNTM1RTUzNUI0MDlEQjkwN0ZDMzc0MDlGMDc1MTIxMEU0RjUxMDc1MjcwMjIyRTUyNzY0MDI3MDM2MzAwNTJGQzIwNUY1MzU3RTAwN0IwMDc0MkI5NgorOjQwMDRDNjAwMjUzNUY5RUUzNDAwRkExMjBBNTFGRjc0ODAyNTM1RjU4MkU0MzQ3QkY1ODNFRkYwMDUzNUU1MzVCNDA1REI5MDdGQzM3NDA1RjA3NTI3MDMyMkU1MzI2MDMzNzUzMTAzMTUzMkU0RjUzNTdFMDA3QjAwNzQzMTI1MzVGOUVFMzRDRAorOjQwMDUwNjAwMDBGQTEyMEE1MUZGNzQ4MDI1MzVGNTgyRTQzNDdCRjU4M0VGRjAwNTM1RTUzNUI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUyNzIyOTA3RkU5RTAxMjBBQTkwNjA4MDAwNjdDMDEwNkU5MDMwNTREMDYwNUY5MDgwNUVEMDkwNUQ1MEEwMgorOjQwMDU0NjAwMDVFNDBCMDAwMDA3Mzk5MDdGRUJFMDI0RkU2MDE2MTQ2MDUwMjQwMjcwNkY3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjA3NDA5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4Mjc0NzU4MzE5RjA2RQorOjQwMDU4NjAwNzU4MjU4NzU4MzE5RjA5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA3NDE5OTA3RkQ0RjA3NDEyOTA3RkQ1RjAwMjA3NDA5MDdGRUFFMEZGMTIwQjFDRUE0OTYwMERFQTkwN0ZENEYwRTk5MDdGRDVGMDAyMDc0MDkwN0ZCNEUwNDQ5QgorOjQwMDVDNjAwMDFGMDAyMDc0MDkwN0ZCNEUwNDQwMUYwMDIwNzQwOTA3RjAwRTUyNUYwOTA3RkI1NzQwMUYwMDIwNzQwOTA3RkVBRTBGNTI1MDIwNzQwMTIwNzQ4OTA3RkVBRTBGNTIzMDIwNzQwOTA3RjAwRTUyM0YwOTA3RkI1NzQwMUYwMDIxNgorOjQwMDYwNjAwMDc0MDkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMDFFNDMzRkYyNUUwRkZBMjA3RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3NDBFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDc0MDkwN0YyQworOjQwMDY0NjAwRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDc0MDkwN0ZCNEUwNDQwMUYwMDIwNzQwOTA3RkU4RTAyNEZFNjAxRTI0MDIxNgorOjQwMDY4NjAwNjAwMzAyMDc0MDkwN0ZFQUUwQjQwMTA2MTIwREY5MDIwNzQwOTA3RkI0RTA0NDAxRjAwMjA3NDA5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTBGOAorOjQwMDZDNjAwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA2MDkwN0ZCNEUwNDQwMUYwODA1NzkwN0ZFOEUwMjRGRTYwMTkyNDAyNzA0QjkwN0ZFQUUwQjQwMTA1MTIwREY2ODAzRjkwN0ZCNEUwNDQ4NworOjQwMDcwNjAwMDFGMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGOQorOjQwMDc0NjAwRjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjA5MDdGOTY3NDIwRjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDEwRjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUwODdGMDE3QjAwNzQwODJGRjlFNDM0MDAyMworOjQwMDc4NjAwRkFFNDEyMEE5NzBGQkYwOUVFNzUxMzAxRTRGNTEyRjUzMEY1MTFDMjBGQzIxM0MyMEVDMjBCQzIxMEMyMDQ5MDdGOTg3NDEzRjA3NTE5MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMENEQTdGMTA4RjE4MTIwQzY4OTA3Rjk4NzRDMgorOjQwMDdDNjAwMTJGMDdGMDE4RjE3RUY0NDA2OTBDMDAwRjAwRkU0RkQxMjBDREFFNEZGN0VBM0FEMDY4RDE2MTIwQ0RBOTA3Rjk4NzQxMUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIwQ0RBN0YwMTEyMEQ2QTdGMDM3RDA3MTIwQ0RBRTRGRkU1MTY3QgorOjQwMDgwNjAwNTQ3RkZEMTIwQ0RBMTIwRTBGOEYxNUU0RkZFNTE2NDQ4MEZEMTIwQ0RBRTUxNTMwRTcwNEMyMDg4MDAyRDIwODkwN0Y5ODc0MTRGMDc1MUE4MDkwQzAwMDc0ODBGMEQyMDMyMkQyMTU5MDdGOTJFMDQ0MDJGMDEyMERGOUQyRTg3QworOjQwMDg0NjAwNDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUU3NDBERjBEMkFGRDIxNjEyMEQyNEMyMDJFNEY1MjhGNTMwQzIwOUY1MjNDMjAzOTBGNworOjQwMDg4NjAwN0ZBMTA0RjA5MDdGRDhFMDY1MzQ2MDQ4MzAwMzA1RDIxNjEyMDA0NkU1MEY2MDIyRTUyNjYwMTYxNTI2OTA3RkQ4RTAzMEU2MDQ3RjIwODAwMjdGMzA5MDdGOTZFRkYwODAxQTkwN0Y5Njc0MzBGMDgwMTI5MDdGRDlFMDMwRTJGOAorOjQwMDhDNjAwMDQ3RjMwODAwMjdGMjA5MDdGOTZFRkYwOTA3RkQ4RTBGNTM0ODAyMDMwMDMwN0MyMTYxMjAwNDY4MDE2RTUwRjcwMTI5MDdGRDlFMDMwRTIwNDdGMzA4MDAyN0YyMDkwN0Y5NkVGRjAzMDAyMDdDMjAyMTIwNTJBODA4NjMwMEFFNAorOjQwMDkwNjAwODNDMjBBMTIwQjVEMDIwODhBMjI5MDdGOTg3NDEwRjBBRjI0RTUyQUY1ODJFNTI5RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MTBGMEFGMjRFNTJBRjU4MkU1MjlGNTgzQzJBMworOjQwMDk0NjAwQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0Y5ODc0MDhGMEFGMjRFNTJBRjU4MkU1MjlGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQwOEYwQUZDRAorOjQwMDk4NjAwMjRFNTJBRjU4MkU1MjlGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyNzg0QgorOjQwMDlDNjAwN0ZFNEY2RDhGRDc1ODEzOTAyMEEwQzAyMDgzOEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIxMQorOjQwMEEwNjAwMDQwODEwMjA0MDgwOTAwRDhCRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJCMAorOjQwMEE0NjAwQzhDQUM1ODNDQURGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjVCQgorOjQwMEE4NjAwODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI4RgorOjQwMEFDNjAwOTM2ODYwRUZBM0EzQTM4MERGRTQ5MDdGOTNGMDkwN0Y5Qzc0MjBGMDMwMDEwM0ZGODAwMjdGMDA5MDdGOTZFRkYwRTQ5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjAzMDA4MTE5MDdGOTVGMDkwN0Y5RTc0RkZGMDkwN0YwNQorOjQwMEIwNjAwOTg3NDIwRjAyMkU0OTA3Rjk1RjA5MDdGOUU3NERGRjBFNDkwN0Y5OEYwMjI4RjM1RTRGNTM2NzUzN0ZGNzUzODE5NzUzOTg2QUIzN0FBMzhBOTM5OTAwMDAxMTIwQTZBQjQwMzFEQUYzNjA1MzZFRkI1MzUwMTIyMTIwQTUxN0U1QworOjQwMEI0NjAwMDAyOUZGRUUzQUE5MDc3NTM3RkZGNTM4ODkzOTgwRDQ3QjAwN0EwMDc5MDAyMjkwN0ZEOEUwRjUzNTEyMEFDRjIwMDgwNzkwN0Y5MkUwNTRGREYwOTA3RkQ2RTA0NDgwRjAxMjA5QjU5MDdGRDZFMDMwRTcwRTMwMDEwNTEyMEQ5QworOjQwMEI4NjAwQkM4MDA2MTIwRDQ5RUY2MEUxOTA3RjkyRTA0NDAyRjAxMjA3NDgyMjA1MkFFNTJBQUUyOTcwMDIwNTI5MTRGNTgyOEU4M0U1MTFGMDEyMDAzNjA1MkFFNTJBQUMyOTcwMDIwNTI5MTRGNTgyOEM4M0VGRjAxNTI0RTUyNDYwMDdDNworOjQwMEJDNjAwMTIwRTFCOEYxMTgwQ0QyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMDI1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMEE5RgorOjQwMEMwNjAwNTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzRFOAorOjQwMEM0NjAwMTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTFGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU3QworOjQwMEM4NjAwMTk1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTRGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjBGRQorOjQwMENDNjAwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjA5MDdGOTg3NDE3RjA5MEMwMDBFRkYwOTA3Rjk4NzQxNUYwOTBDMDAwRURGMDIyMTIwREVBOEYzNzEyMEQ5MQorOjQwMEQwNjAwRUE4RjM4RTUzNzY1Mzg2MDEyMTIwREVBOEYzN0U1Mzc2NTM4NjAwNzEyMERFQThGMzg4MEU4QUYzNzIyOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMTYwNEUwNDQwMkYwN0ZGNDdFMDExMjBEQTU5MDdGRDZFMDU0RjdGMEUwNDQ0OAorOjQwMEQ0NjAwMDRGMDIyOTA3RkQ4RTBGNTM2MTIwNzQ4MTIwRTI3RUYzMEU2MEI5MDdGRDhFMDY1MzY2MEYxN0YwMTIyMTIwQUNGN0YwMDIyQUUwN0U0RkZFNTE2NTQ3RkZEMTIwQ0RBOTA3Rjk4NzQxMUYwOTBDMDAwRUVGMEU0RTUxNjQ0ODA4NAorOjQwMEQ4NjAwRkQxMjBDREEyMjA1MkIwMjAwMDAwMDAwMDMzMTAzMDAwMEMxODZDMTAyQzEwQUMxMDFDMTA3MDEyNzAwMDA4RTM2OEYzN0U1MzcxNTM3QUUzNjcwMDIxNTM2NEU2MDA1MTIwOUE0ODBFRTIyOTA3RkQ2RTA0NDAxRjA3RjBEN0U4RAorOjQwMERDNjAwMDAxMjBEQTU5MDdGRDZFMDU0RkVGMDIyOTA3Rjk4NzQxMUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxMkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyRDIwMTIyQzIwMTIyMDAwMDAwMDAwMjBCQ0UwMDAyMEVGMQorOjQwMEUwNjAwMDQwMDAyMDAwMzAwMDIwQkY1OTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjQwMEU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjQwMEU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQworOjQwMEVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjQwMEYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjQwMEY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjQwMEY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjQwMEZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjQwMTAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjQwMTA0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjQwMTA4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjQwMTBDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjQwMTEwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjQwMTE0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjQwMTE4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjQwMTFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjQwMTIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjQwMTI0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjQwMTI4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjQwMTJDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjQwMTMwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjQwMTM0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjQwMTM4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxOTAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA2RAorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjA0MUEwNjAwNzIwMDAwMDA2QQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOXcuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXcuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzYjg0MzEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5dy5IRVgKQEAgLTAsMCArMSwxNDEgQEAKKzowMzAwMzMwMDAyMEQ1QzVGCis6MTAwMDAzMDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMEJGCis6MTAwMDEzMDA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDMxCis6MEYwMDIzMDA3Rjk1RjA5MDdGOUU3NDE3RjBFNDkwN0Y5OEYwMjIwNQorOjEwMDA0NjAwMzAwRjE4MTIwRDM4RUZDMzk1MTQ0MDAzMDIwMEQ4OTBGNAorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMEZDMjBBODA3NzMwMEMzQjkwN0ZERAorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMEQzOEVGQzM5NDQwNTA2NDkwN0VENworOjEwMDA3NjAwNDBFMDEzOTIwRjkwN0ZDN0UwMTRGNTFDMjAwQTExNjAzMAorOjEwMDA4NjAwMEZGNTIzN0U3RTdGNDE3NTI3N0U3NTI4NDExMjA4MDE3NAorOjEwMDA5NjAwQzIwQ0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzIzRgorOjEwMDBBNjAwMTIwRDM4RUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMEY5MworOjEwMDBCNjAwOTA3RkM5RTAxNEY1MUMyMDBBMTE2MDBGRjUyMzdFN0RBMAorOjEwMDBDNjAwN0ZDMTc1Mjc3RDc1MjhDMTEyMDgwMUQyMENFNDkwN0Y4NworOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTVFMTIwQzQxOEY1OQorOjEwMDBFNjAwMUMxMjBENDQ4RjExRTUxQ0MzOTUxMzUwMEYxMjBEMjBFMQorOjEwMDBGNjAwRUYzMEUwMDhFNTExMjBFNzAzMzAxMjVDQzIxMkU1MUM4MAorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMEUwMEFBCis6MDMwMDAwMDAwMjA4QjYzRAorOjQwMDEwNjAwNjA1NkI0ODAwMzQzMTEwMkU1MTEzMEU3MjRFNTFDRDM5NDIwNDAwMzc1MUMyMDg1MUMyMzdFN0U3RjgwNzUyNzdFNzUyODgwMTIwQTg2RTUxQzI1MUM5MDdGQjdGMDgwMjdFNTFDRDM5NDNGNDAwMzc1MUMzRjg1MUMyMzkwN0UwNgorOjQwMDE0NjAwODBFNTExRjA3RTdFN0Y4MTc1Mjc3RTc1Mjg4MTEyMDgyNkU1MUMwNDkwN0ZCN0YwOTA3RkNFRTAzMEUxMDYyMDBEMDMwMjAzQkFFNEY1MUI3NDQwMjUxQkY1ODJFNDM0N0NGNTgzRTBGRkU1MUI3QzAwN0IwMTdBN0U3OTAwMjQ0QQorOjQwMDE4NjAwMDBGOUVDMzQ3RUZBRUYxMjBBMEQwNTFCRTUxQkI0MjBENzkwN0UwMEUwNjA2RTdGMDE5MDdFMTFFMEZEMTIwQzFDOTA3RTAxRTBGRjEyMEI1RTkwN0UwMkUwRkYxMjBCODREMjEwRDIxMTc1MUMwNDkwN0UwM0UwNjAwNUMyMTFENworOjQwMDFDNjAwNDMxQ0MwOTA3RTA0RTBCNDAxMDdDMjExNDMxQzBCODAxMDkwN0UwNEUwNjAwN0MyMTA0MzFDMDk4MDAzNDMxQzAyN0YwM0FEMUMxMjBDMUM0MzE5ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTE5RjA5MDdGOTg3NDEyRjBFNTE2NDRDRQorOjQwMDIwNjAwMDY5MEMwMDBGMDkwN0UwNUUwNjAxMkEzRTA1NDNGRjUxODkwN0Y5ODc0MTNGMDkwQzAwMEU1MThGMDkwN0UwN0UwNjA0MjkwN0UxM0UwNjAwNTQzMTUwNDgwMDM1MzE1RkJFNEZGQUQxNTEyMEMxQzkwN0UwOEUwNjAwNTQzMTdCQworOjQwMDI0NjAwODA4MDAzNTMxNzdGNTMxN0ZDOTA3RTA5RTA2MDExNDMxNzAyQTNFMEZGMTIwQkQwOTA3RTBCRTBGRjEyMEJGNkFGMTcxMjBCQUE5MDdFMEVFMDYwMThBM0UwNjAwNTQzMTkwMTgwMDM1MzE5RkU5MDdGOTg3NDE0RjA5MEMwMDA0NgorOjQwMDI4NjAwRTUxOUYwOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzE5MDI4MDAzNTMxOUZEOTA3Rjk4NzQxNEYwOTBDMDAwRTUxOUYwOTA3RTEyRTBGNTEzQTNFMDEzOTIxM0EzRTBGNTE0QTNFMDYwMDU0MzE5MTA4MDAzNTMxOUVGOTA3Rjk4NzQyRAorOjQwMDJDNjAwMTRGMDkwQzAwMEU1MTlGMDkwN0UxNkUwNjAzMjUzMThCRjkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjBEMTRFRjU0RkU5MEMwMDBGMDUzMTVGREU0RkZBRDE1MTIwQzFDRTRGNTBFRjUwREQyMEVFQgorOjQwMDMwNjAwOTA3RTE3RTA2MDBGNDMxNTAyRTRGRkFEMTUxMjBDMUM3NTBEMDFEMjBFOTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTUxNjQ0MDQ5MEMwMDBGMEQyMEE5MDdFMTlFMDYwMTE0MzE4NDA5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzA2NAorOjQwMDM0NjAwMDBGMDkwN0UxQUUwNjAwRjUzMTVGRUU0RkZBRDE1MTIwQzFDNzUwRjAxRDIwRTkwN0UxQkUwNjAwRjQzMTUwMUU0RkZBRDE1MTIwQzFDRTRGNTBGRDIwRTkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTJGMEU1MTY0NDAyOTBDMDAwRjBEOAorOjQwMDM4NjAwOTA3RTFERTA2MDAyRDIxMjkwN0UxRUUwNjAwODc1MTAwMUU0RjUxMkQyMEU5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjBDQzIwREU0OTA3RkNGRjAzMDE1NzFFNTEyNjAwMjE1MTJFNTJFRDMyNgorOjQwMDNDNjAwOTQwMDQwMDQxNTJFODA2MDc1MkUwQTEyMEQxNEVGNTQwMUY1MUM2NTBFNjAwNzg1MUMwRUQyMEU4MDExMTIwRDUwRUY1NDEwRjUxQzY1MDk2MDA1ODUxQzA5RDIwRTEyMEQ1MEVGNTQ4MEY1MUM2NTBBNjAwNTg1MUMwQUQyMEVGQgorOjQwMDQwNjAwMTIwRDUwRUY1NDIwRjUxQzY1MEI2MDA4ODUxQzBCMzAxMDAyRDIwRTEyMEQ1MEVGNTQ0MEY1MUM2NTBDNjAwODg1MUMwQzMwMTEwMkQyMEUzMDE1MkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUzMDkwN0I0MkUwRjU3MgorOjQwMDQ0NjAwMzE5MDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA1MUZFNTI1NzA0MDMwMEUzOUU1MTI3MDM1QzIwRUY1MUI3RTAwN0IwMDc0MDgyNTFCRjlFRTM0MDBGQTEyMDlDN0ZGNzQ0NworOjQwMDQ4NjAwODAyNTFCRjU4MkU0MzQ3QkY1ODNFRkYwMDUxQkU1MUJCNDA5REI5MDdGQzM3NDA5RjA3NTEyMTBFNEY1MTA3NTI1MDIyMkU1MjU2NDAyNzAzNjMwMDUyRkMyMDVGNTFCN0UwMDdCMDA3NDI5MjUxQkY5RUUzNDAwRkExMjA5QzdDMgorOjQwMDRDNjAwRkY3NDgwMjUxQkY1ODJFNDM0N0JGNTgzRUZGMDA1MUJFNTFCQjQwNURCOTA3RkMzNzQwNUYwNzUyNTAzMjJFNTMwNjAzMzc1MkYwMzE1MzBFNEY1MUI3RTAwN0IwMDc0MkYyNTFCRjlFRTM0MDBGQTEyMDlDN0ZGNzQ4MDI1MUIyNgorOjQwMDUwNjAwRjU4MkU0MzQ3QkY1ODNFRkYwMDUxQkU1MUJCNDAzREI5MDdGQzM3NDAzRjBFNEY1MjUyMjkwN0ZFOUUwMTIwQTFGMDVGNjAwMDY2QTAxMDZENzAzMDU0MzA2MDVFOTA4MDVFMzA5MDVDQjBBMDVEQTBCMDAwMDA3Mjc5MDdGRUJDOQorOjQwMDU0NjAwRTAyNEZFNjAxNjE0NjA1MDI0MDI3MDZGNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwNzJFOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3NDc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUE2NQorOjQwMDU4NjAwRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwNzJFOTA3RkVBRTBGRjEyMEE0NUVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjAwMjA3MkU5MDdGQjRFMDQ0MDFGMDAyMDcyRTkwN0ZCNEUwNDREMQorOjQwMDVDNjAwMDFGMDAyMDcyRTkwN0YwMEU1MjRGMDkwN0ZCNTc0MDFGMDAyMDcyRTkwN0ZFQUUwRjUyNDAyMDcyRTEyMDczNjAyMDcyRTkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIwNzJFOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIyMQorOjQwMDYwNjAwMDFFNDMzRkYyNUUwRkZBMjA3RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3MkVFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDcyRTkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRDRAorOjQwMDY0NjAwRjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDcyRTkwN0ZCNEUwNDQwMUYwMDIwNzJFOTA3RkU4RTAyNEZFNjAxRTI0MDI2MDAzMDIwNzJFOTA3RkVBRTBCNDAxMDYxMjBENjMwMjA3MkU1MworOjQwMDY4NjAwOTA3RkI0RTA0NDAxRjAwMjA3MkU5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0Y2OQorOjQwMDZDNjAwRDdGMEUwNDQyMEYwODA2MDkwN0ZCNEUwNDQwMUYwODA1NzkwN0ZFOEUwMjRGRTYwMTkyNDAyNzA0QjkwN0ZFQUUwQjQwMTA1MTIwRDYwODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZBRAorOjQwMDcwNjAwQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA2QgorOjQwMDc0NjAwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxOEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MDg3RjAxN0IwMDc0MDgyRkY5RTQzNDAwRkFFNDEyMEEwRDBGQkYwOUVFNzUxMzAxRTRGNTEyRjUyRUY1MTFBMgorOjQwMDc4NjAwQzIwRUMyMTJDMjBEQzIwQUMyMEZDMjA0OTA3Rjk4NzQxM0YwNzUxODAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjBDMUM3RjEwOEYxNzEyMEJBQTkwN0Y5ODc0MTJGMDdGMDE4RjE2RUY0NDA2OTBDMDAwRjAwRkU0RkQxMjBDMUM3MQorOjQwMDdDNjAwRTRGRjdFQTNBRDA2OEQxNTEyMEMxQzkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMEMxQzdGMDExMjBDQUM3RjAzN0QwNzEyMEMxQzkwN0Y5ODc0MTRGMDc1MTk4MDkwQzAwMDc0ODBGMEQyMDMyMjkwN0Y5ODc0MTA1OQorOjQwMDgwNjAwRjBBRjIzRTUyOEY1ODJFNTI3RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MTBGMEFGMjNFNTI4RjU4MkU1MjdGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU4NkRGRjc2RgorOjQwMDg0NjAwMDU4NkQyQUYyMjkwN0Y5ODc0MDhGMEFGMjNFNTI4RjU4MkU1MjdGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQwOEYwQUYyM0U1MjhGNTgyRTUyN0Y1ODNDMkFGMDU4NjkwQzA0NQorOjQwMDg4NjAwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyNzg3RkU0RjZEOEZENzU4MTMxMDIwOEZEMDIwOTQyRTQzQgorOjQwMDhDNjAwOTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDBDQ0RFNDdFMDE5MzYwQkMzNgorOjQwMDkwNjAwQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFRDIxNDkwN0Y4MworOjQwMDk0NjAwOTJFMDQ0MDJGMDEyMEQ2M0QyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRTc0MERGMEQyQUZEMjE1MTIwQzY2QzIwMkU0RjU1NworOjQwMDk4NjAwMjZGNTJFQzIwOEMyMDM5MDdGQTEwNEYwOTA3RkQ4RTA2NTFBNjAxMDMwMDMwNUQyMTUxMjAwNDY5MDdGRDhFMEY1MUE4MDA4MzAwMzA1QzIxNTEyMDA0NjMwMDIwN0MyMDIxMjA1MjA4MEQ2MzAwOUQzQzIwOTEyMEFCQTgwQ0M0MAorOjQwMDlDNjAwMjJCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTUxRgorOjQwMEEwNjAwODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGOEY1OAorOjQwMEE0NjAwMUJFNEY1MUM3NTFERkY3NTFFMTk3NTFGODZBQjFEQUExRUE5MUY5MDAwMDExMjA5RTBCNDAzMURBRjFDMDUxQ0VGQjUxQjAxMjIxMjA5Qzc3RTAwMjlGRkVFM0FBOTA3NzUxREZGRjUxRTg5MUY4MEQ0N0IwMDdBMDA3OTAwMjJGMworOjQwMEE4NjAwMDUyOEU1MjhBRTI3NzAwMjA1MjcxNEY1ODI4RTgzRTUxMUYwMTIwMDM2MDUyOEU1MjhBQzI3NzAwMjA1MjcxNEY1ODI4QzgzRUZGMDE1MjNFNTIzNjAwNzEyMEQ0NDhGMTE4MENEMjI5MDdGRDhFMEY1MUIxMjAwMDM5MDdGRDZBQgorOjQwMEFDNjAwRTA0NDgwRjAxMjA4QTY5MDdGRDZFMDMwRTcwRTMwMDEwNTEyMENGRTgwMDYxMjBDOEJFRjYwRTExMjA3MzYyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDBERgorOjQwMEIwNjAwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjAyNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDAyNQorOjQwMEI0NjAwRDIwOTUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjAyMjkwN0ZEQgorOjQwMEI4NjAwOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTMwNworOjQwMEJDNjAwRjBFNTE4NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzRGMgorOjQwMEMwNjAwMTZGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMEQyQzhGMUQ0NAorOjQwMEM0NjAwMTIwRDJDOEYxRUU1MUQ2NTFFNjAxMjEyMEQyQzhGMURFNTFENjUxRTYwMDcxMjBEMkM4RjFFODBFOEFGMUQyMjkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDE1MDRFMDQ0MDJGMDdGRjQ3RTAxMTIwQ0U3OTA3RkQ2RTA1NEY3RjBEOAorOjQwMEM4NjAwRTA0NDA0RjAyMjkwN0ZEOEUwRjUxQzEyMDczNjEyMEQ1MEVGMzBFNjBCOTA3RkQ4RTA2NTFDNjBGMTdGMDEyMjEyMDAwMzdGMDAyMkFFMDdFNEZGRTUxNTU0N0ZGRDEyMEMxQzkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1MTU5OQorOjQwMENDNjAwNDQ4MEZEMTIwQzFDMjIwNTI5MDIwMDAwMDAwMDAzMkYwMzAwMDBDMTg2QzEwMkMxMDlDMTAxQzEwNzAxMjUwMDAwOEUxQzhGMURFNTFEMTUxREFFMUM3MDAyMTUxQzRFNjAwNTEyMDg5NTgwRUUyMjkwN0ZENkUwNDQwMUYwN0Y4NgorOjQwMEQwNjAwMEQ3RTAwMTIwQ0U3OTA3RkQ2RTA1NEZFRjAyMjkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0YyQgorOjQwMEQ0NjAwOTg3NDE1RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE2RjA5MEMwMDBFMEZGMjI1M0Q4RUYzMkQyMDEyMkMyMDEyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjQwMEQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjQwMERDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjBCMTAwMDAyMEVDMAorOjQwMEUwNjAwMDQwMDAyMEFFNjAwMDIwQjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjQwMEU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjQwMEU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQworOjQwMEVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjQwMEYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjQwMEY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjQwMEY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjQwMEZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjQwMTAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjQwMTA0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjQwMTA4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjQwMTBDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjQwMTEwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjQwMTE0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjQwMTE4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjQwMTFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjQwMTIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjQwMTI0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjQwMTI4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjQwMTJDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjQwMTMwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjQwMTM0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjQwMTM4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYwODAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3RQorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjA0MUEwNjAwNzIwMDAwMDA2QQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2EyOC5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDBjOTc4Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOC5IRVgKQEAgLTAsMCArMSwxNDggQEAKKzowQTAwMjYwMDEyMTdEQjEyMThCNTEyMTRDMzIyRTIKKzowMzAwMzMwMDAyMDAxREFCCis6MDQwMDFEMDA1M0Q4RUYzMjkzCis6MTAwMDA2MDA4RTEyOEYxM0U1MTMxNTEzQUUxMjcwMDIxNTEyNEU2MDgxCis6MDcwMDE2MDAwNTEyMThBNDgwRUUyMjgwCis6MDMwMDAzMDAwMjAwNDZCMgorOjEwMDA0NjAwQzBFMEMwODNDMDgyQzA4Njc1ODYwMEMwRDA3NUQwMDg2NworOjEwMDA1NjAwMzA5OTBFMzAxMTA3QTIxNzkyOUI4NTQ2OTlDMjk5RDIwNAorOjEwMDA2NjAwMUYzMEMxMEUzMDEyMDdBMjE4OTJDMzg1NDdDMUMyQzEwNAorOjEwMDA3NjAwRDIyMDIwMUYwMzAyMDQ0MkMyMUYyMDAzMDMwMjAyNjc4QworOjEwMDA4NjAwMjAxMTAzMDIwMTM4RTU0QUMzOTU3QzUwM0UyMDEzMzYwMQorOjEwMDA5NjAwMjAwQjMzOTA3RjlCRTAyMEUzMDMyMDFDMjkzMDFCMTJBQQorOjEwMDBBNjAwQUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UwMTNBOQorOjEwMDBCNjAwOTIxN0FFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMworOjEwMDBDNjAwRTBGNTQ2MDIwNDQwQzIxMTAyMDQ0MDkwN0ZDN0U0RjAwNgorOjEwMDBENjAwQzIwMzMwMTUwQ0MyMTU5MDdGQkYwNEYwQzIxMTAyMDQ5MgorOjEwMDBFNjAwNDA5MDdGQzhFMDMwRTEwNUMyMTEwMjA0NDA5MDdGQzkwQworOjEwMDBGNjAwRTBGNTdDOTA3REMwRTAxMzkyMTUyMDEzMkQyMDBCMkE4RAorOjAzMDA0MzAwMDIxQjAwOUQKKzowMzAwMjMwMDAyMDA0NjkyCis6MDMwMDNCMDAwMjAwNDY3QQorOjAzMDAwMDAwMDIxNjNEQTgKKzo0MDAxMDYwMDkwN0Y5QkUwMjBFMzAzMjAxQzIwMzAxQjExOTA3REMxRTAxMzkyMTdBM0UwRjU0Njc1NEEwMzAyMDQ0MDc1NEEwMjkwN0RDMUUwRjU0NjAyMDQ0MDc1NEEwMUMyMTEwMjA0NDBFNTRBQzM5NTdDNTAwMzAyMDFFMDkwN0ZDNkUwOEEKKzo0MDAxNDYwMDMwRTEwN0MyMjFDMjA1MDIwNDQwOTA3RkM3RTBGNTdDOTA3RTQwRTAxMzkyMTUzMDEzMDMwMjAxRDgyMDBCNzIyMDAwNkY5MDdGOUJFMDIwRTMwMzIwMUM2NTMwMUIxMDkwN0U0MUUwMTM5MjlCQTNFMEY1OTk3NTRBMDM4MDA5QkUKKzo0MDAxODYwMDkwN0U0MUUwRjU5OTc1NEEwMkU1NEFDMzk1N0M0MDE3OTA3RkM3RTRGMEMyMDMyMDE1MDMwMjA0NDBDMjE1OTA3RkJGMDRGMDAyMDQ0MDMwMUIxMkFFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMDEzOTIxN0FFNEEwNTRBQTcKKzo0MDAxQzYwMDc0NDAyRUY1ODJFNDM0N0VGNTgzRTBGNTQ2RDIxMTAyMDQ0MDc1NEEwMUMyMjEwMjA0NDAzMDEzMDMwMjAyNjIyMDBCNzk5MDdGOUJFMDIwRTMwMzIwMUM2RjMwMUIxMkFFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMDEzREMKKzo0MDAyMDYwMDkyOUJBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTBGNTk5RTU0QUMzOTU3QzQwMTc5MDdGQzdFNEYwQzIwMzIwMTUwMzAyMDQ0MEMyMTU5MDdGQkYwNEYwMDIwNDQwMzAxQjEyQUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFQjYKKzo0MDAyNDYwMEY1ODNFMDEzOTIxN0FFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMEY1NDZEMjExMDIwNDQwQzIyMTAyMDQ0MDIwMTEwMzAyMDMxOUU1NEFDMzk1N0M1MDNFMjAxMzM2MjAwQjMzOTA3RjlCRTAyMEUzMDMyMDFDMjkzMDFCNUYKKzo0MDAyODYwMDEyQUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjE3QUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwRjU0NjAyMDQ0MEMyMTEwMjA0NDA5MDdGQzlFNEYwRDIwMzMwMTUwQ0MyMTU5MDdGQkYwNEYwQzIxMTAyNzYKKzo0MDAyQzYwMDA0NDA5MDdGQzZFMDMwRTEwNUMyMTEwMjA0NDA5MDdGQzdFMEY1N0M5MDdFNDBFMDEzOTIxNTIwMTMyRDIwMEIyQTkwN0Y5QkUwMjBFMzAzMjAxQzIwMzAxQjExOTA3RTQxRTAxMzkyMTdBM0UwRjU0Njc1NEEwMzAyMDQ0MDc1OUUKKzo0MDAzMDYwMDRBMDI5MDdFNDFFMEY1NDYwMjA0NDA3NTRBMDFDMjExMDIwNDQwRTU0QUMzOTU3QzUwMDMwMjAzQzE5MDdGQzhFMDMwRTEwN0MyMjFDMjA1MDIwNDQwOTA3RkM5RTBGNTdDOTA3REMwRTAxMzkyMTUzMDEzMDMwMjAzQjkyMDBCNDgKKzo0MDAzNDYwMDcyMjAwMDZGOTA3RjlCRTAyMEUzMDMyMDFDNjUzMDFCMTA5MDdEQzFFMDEzOTI5QkEzRTBGNTk5NzU0QTAzODAwOTkwN0RDMUUwRjU5OTc1NEEwMkU1NEFDMzk1N0M0MDE3OTA3RkM5RTRGMEQyMDMyMDE1MDMwMjA0NDBDMjE1NzMKKzo0MDAzODYwMDkwN0ZCRjA0RjAwMjA0NDAzMDFCMTJBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyMTdBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ2RDIxMTAyMDQ0MDc1NEEwMUMyMjEwMjA0NDAzMDEzMDMwMjA0NjMKKzo0MDAzQzYwMDNFMjAwQjc0OTA3RjlCRTAyMEUzMDMyMDFDNkEzMDFCMTJBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyOUJBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTBGNTk5RTU0QUMzOTU3QzQwMTM5MDdGQzlFNEYwOUQKKzo0MDA0MDYwMEQyMDMzMDE1MzVDMjE1OTA3RkJGMDRGMDgwMkMzMDFCMTJBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyMTdBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ2RDIxMTgwMDJDMjIxRDIyNTIwMjAwMzAyMzAKKzo0MDA0NDYwMDA4MENDMjIwMjAwNDAzMDIwNjMxMjAxMjAzMDIwNTAyRTU0QkMzOTU3RDUwM0UyMDE0MzYyMDBEMzM5MDdGOUFFMDIwRTUwMzIwMUUyOTMwMUQxMkFFNEIwNTRCNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMDEzOTIxOEFFNEIwNTRCOTkKKzo0MDA0ODYwMDc0NDAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ3MDIwODBBQzIxMjAyMDgwQTkwN0ZDQkU0RjBDMjA0MzAxNjBDQzIxNjkwN0ZDMTA0RjBDMjEyMDIwODBBOTA3RkNDRTAzMEUxMDVDMjEyMDIwODBBOTA3RkNERTBGNTdEOTA3Q0MwQkIKKzo0MDA0QzYwMEUwMTM5MjE2MjAxNDJEMjAwRDJBOTA3RjlBRTAyMEU1MDMyMDFFMjAzMDFEMTE5MDdDQzFFMDEzOTIxOEEzRTBGNTQ3NzU0QjAzMDIwODBBNzU0QjAyOTA3Q0MxRTBGNTQ3MDIwODBBNzU0QjAxQzIxMjAyMDgwQUU1NEJDMzk1NjYKKzo0MDA1MDYwMDdENTAwMzAyMDVBQTkwN0ZDQUUwMzBFMTA3QzIyMkMyMDYwMjA4MEE5MDdGQ0JFMEY1N0Q5MDdENDBFMDEzOTIxNjMwMTQwMzAyMDVBMjIwMEQ3MjIwMDA2RjkwN0Y5QUUwMjBFNTAzMjAxRTY1MzAxRDEwOTA3RDQxRTAxMzkyMEQKKzo0MDA1NDYwMEMzQTNFMEY1QzE3NTRCMDM4MDA5OTA3RDQxRTBGNUMxNzU0QjAyRTU0QkMzOTU3RDQwMTc5MDdGQ0JFNEYwQzIwNDIwMTYwMzAyMDgwQUMyMTY5MDdGQzEwNEYwMDIwODBBMzAxRDEyQUU0QjA1NEI3NDQwMkVGNTgyRTQzNDdEMjQKKzo0MDA1ODYwMEY1ODNFMDEzOTIxOEFFNEIwNTRCNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMEY1NDdEMjEyMDIwODBBNzU0QjAxQzIyMjAyMDgwQTMwMTQwMzAyMDYyQzIwMEQ3OTkwN0Y5QUUwMjBFNTAzMjAxRTZGMzAxRDEyQUU0QjA1NEI3NDQwRTkKKzo0MDA1QzYwMDJFRjU4MkU0MzQ3REY1ODNFMDEzOTJDM0FFNEIwNTRCNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMEY1QzFFNTRCQzM5NTdENDAxNzkwN0ZDQkU0RjBDMjA0MjAxNjAzMDIwODBBQzIxNjkwN0ZDMTA0RjAwMjA4MEEzMDFEMTJBRTRCOTEKKzo0MDA2MDYwMDA1NEI3NDQwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjE4QUU0QjA1NEI3NDQwMkVGNTgyRTQzNDdERjU4M0UwRjU0N0QyMTIwMjA4MEFDMjIyMDIwODBBMjAxMjAzMDIwNkUzRTU0QkMzOTU3RDUwM0UyMDE0MzYyMDBEMzM5MDdGMUEKKzo0MDA2NDYwMDlBRTAyMEU1MDMyMDFFMjkzMDFEMTJBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTAxMzkyMThBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTBGNTQ3MDIwODBBQzIxMjAyMDgwQTkwN0ZDREU0RjBEMjA0MzAxNjBDNDMKKzo0MDA2ODYwMEMyMTY5MDdGQzEwNEYwQzIxMjAyMDgwQTkwN0ZDQUUwMzBFMTA1QzIxMjAyMDgwQTkwN0ZDQkUwRjU3RDkwN0Q0MEUwMTM5MjE2MjAxNDJEMjAwRDJBOTA3RjlBRTAyMEU1MDMyMDFFMjAzMDFEMTE5MDdENDFFMDEzOTIxOEEzNTIKKzo0MDA2QzYwMEUwRjU0Nzc1NEIwMzAyMDgwQTc1NEIwMjkwN0Q0MUUwRjU0NzAyMDgwQTc1NEIwMUMyMTIwMjA4MEFFNTRCQzM5NTdENTAwMzAyMDc4QjkwN0ZDQ0UwMzBFMTA3QzIyMkMyMDYwMjA4MEE5MDdGQ0RFMEY1N0Q5MDdDQzBFMDEzQUMKKzo0MDA3MDYwMDkyMTYzMDE0MDMwMjA3ODMyMDBENzIyMDAwNkY5MDdGOUFFMDIwRTUwMzIwMUU2NTMwMUQxMDkwN0NDMUUwMTM5MkMzQTNFMEY1QzE3NTRCMDM4MDA5OTA3Q0MxRTBGNUMxNzU0QjAyRTU0QkMzOTU3RDQwMTc5MDdGQ0RFNEYwQUUKKzo0MDA3NDYwMEQyMDQyMDE2MDMwMjA4MEFDMjE2OTA3RkMxMDRGMDAyMDgwQTMwMUQxMkFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMDEzOTIxOEFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMEY1NDdEMjEyMDIwODBBNzU0QjAxNzMKKzo0MDA3ODYwMEMyMjIwMjA4MEEzMDE0MDMwMjA4MDgyMDBENzQ5MDdGOUFFMDIwRTUwMzIwMUU2QTMwMUQxMkFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMDEzOTJDM0FFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMEY1QzFFNTRCM0YKKzo0MDA3QzYwMEMzOTU3RDQwMTM5MDdGQ0RFNEYwRDIwNDMwMTYzNUMyMTY5MDdGQzEwNEYwODAyQzMwMUQxMkFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMDEzOTIxOEFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMEY1NDdEMjEyMkEKKzo0MDA4MDYwMDgwMDJDMjIyRDIyNTIwOTgwMzAyMDkzRUMyOTgyMDAxMDMwMjA4QjAyMDIzMjdBRTQ4MDU0ODc0ODAyRUY1ODJFNDM0N0VGNTgzRTU5OUYwMzAxQjQ5QUU0ODA1NDg3NDgwMkVGNTgyRTQzNDdFRjU4M0U1OThGMDgwMzZBRjk5NkUKKzo0MDA4NDYwMEVGQjU1ODA0RDIwQjgwMkNFRkI1NTcwNEMyMEI4MDI0QUU0ODA1NDg3NDgwMkVGNTgyRTQzNDdFRjU4M0VGRjAzMDFCMTFBRTQ4MDU0ODc0ODAyRUY1ODJFNDM0N0VGNTgzRTU5OEYwRDIxOUU1NDhDMzk1NTQ1MDAzMDIwOTNDOUYKKzo0MDA4ODYwMDkwN0ZCOEUwMzBFMTE1RTU0OEMzOTQ0MDUwMDMwMjA5M0MxNTQ4MTU0ODA1MkREMjBDMDIwOTNDOTA3RkI3RTU0OEYwNzU0ODAwQzIwMTAyMDkzQzIwMjMyN0FFNDgwNTQ4NzQwMDJFRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDFCQkYKKzo0MDA4QzYwMDQ5QUU0ODA1NDg3NDAwMkVGNTgyRTQzNDdFRjU4M0U1OThGMDgwMzZBRjk5RUZCNTU4MDREMjBCODAyQ0VGQjU1NzA0QzIwQjgwMjRBRTQ4MDU0ODc0MDAyRUY1ODJFNDM0N0VGNTgzRUZGMDMwMUIxMUFFNDgwNTQ4NzQwMDJFNTEKKzo0MDA5MDYwMEY1ODJFNDM0N0VGNTgzRTU5OEYwRDIxOUU1NDhDMzk1NTQ0MDIzOTA3RkI2RTAzMEUxMTFFNTQ4QzM5NDQwNDAxNTE1NDgxNTQ4MDUyREQyMEM4MDBCOTA3RkI5RTU0OEYwNzU0ODAwRDIwMUQyMjUyMEMwMDMwMjBBNzBDMkMwMTYKKzo0MDA5NDYwMDIwMDIwMzAyMDlFMjIwMjQyN0FFNDkwNTQ5NzQ4MDJFRjU4MkU0MzQ3REY1ODNFNUMxRjAzMDFENDlBRTQ5MDU0OTc0ODAyRUY1ODJFNDM0N0RGNTgzRTVDMEYwODAzNkFGQzFFRkI1NzAwNEQyMEQ4MDJDRUZCNTZGMDRDMjBEQUUKKzo0MDA5ODYwMDgwMjRBRTQ5MDU0OTc0ODAyRUY1ODJFNDM0N0RGNTgzRUZGMDMwMUQxMUFFNDkwNTQ5NzQ4MDJFRjU4MkU0MzQ3REY1ODNFNUMwRjBEMjFBRTU0OUMzOTU2QzUwMDMwMjBBNkU5MDdGQkNFMDMwRTExNUU1NDlDMzk0NDA1MDAzNTEKKzo0MDA5QzYwMDAyMEE2RTE1NDkxNTQ5MDUzOUQyMEUwMjBBNkU5MDdGQkJFNTQ5RjA3NTQ5MDBDMjAyMDIwQTZFMjAyNDI3QUU0OTA1NDk3NDAwMkVGNTgyRTQzNDdERjU4M0U1QzFGMDMwMUQ0OUFFNDkwNTQ5NzQwMDJFRjU4MkU0MzQ3REY1NTUKKzo0MDBBMDYwMDgzRTVDMEYwODAzNkFGQzFFRkI1NzAwNEQyMEQ4MDJDRUZCNTZGMDRDMjBEODAyNEFFNDkwNTQ5NzQwMDJFRjU4MkU0MzQ3REY1ODNFRkYwMzAxRDExQUU0OTA1NDk3NDAwMkVGNTgyRTQzNDdERjU4M0U1QzBGMEQyMUFFNTQ5ODMKKzo0MDBBNDYwMEMzOTU2QzQwMjM5MDdGQkFFMDMwRTExMUU1NDlDMzk0NDA0MDE1MTU0OTE1NDkwNTM5RDIwRTgwMEI5MDdGQkRFNTQ5RjA3NTQ5MDBEMjAyRDIyNTMwMjUwNUMyMjUwMjAwNTZEMEQwRDA4NkQwODJEMDgzRDBFMDMyOTA3RkNFOTkKKzo0MDBBODYwMEUwMzBFMTAzMDIwQkE1RTRGNTEyNzQ0MDI1MTJGNTgyRTQzNDdDRjU4M0UwRkZFNTEyN0MwMDdCMDAyNDRDRjlFQzM0MDBGQUVGMTIxNUNEMDUxMkU1MTJCNDE4REJFNTRDNjAwQzc1QzkyMDc1QzgzNjg1NERDQTg1NEVDQkU1QkMKKzo0MDBBQzYwMDRGMTM5MjFCOTI5RkU1NTAxMzkyMUNFNTUxMTM5MjIzRTU1MjYwMDk5MDdGOThFMDU0RkJGMDgwMDc5MDdGOThFMDQ0MDRGMEU1NTM2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTU5NjAwQkMyMTNDMjBCMTgKKzo0MDBCMDYwMDkwN0Y5NUUwNDQwMkYwRTU1QTYwMEJEMjBCRDIwQzkwN0Y5NUUwNDQwMkYwRTU1QjYwMERDMkFGQzIxMUQyMDBFNEY1N0NGNTRBRDJBRkU1NUM2MDA1MzAyMzAyRDIwQkU1NUQ2MDE1OTA3Rjk1RTA1NEZERjA5MDdGOUVFMDQ0RDkKKzo0MDBCNDYwMDAyRjA5MDdGOThFMDU0RkRGMEU1NUU2MDBBRDI5Q0MyOTg3NTJFMDE3NTQwMjhFNTVGNjAwN0MyOUNFNEY1NDhGNTJFRTU2MDYwMDNFNEY1NDhFNTYxNjAwMkQyMDdFNTYyNjAwOEU1NUU3MDAyRjU0MEQyMENFNTYzNjAxOTkwNjAKKzo0MDBCODYwMDdGRDc3NDExRjA3NDMxRjA3NDEyRjA3NDMyRjA3NDE1RjA3NDM1RjBEMjAzRDIwMUQyMDlFNDkwN0ZDRkYwQTIxM0U0MzNGRjY1MkI2MDA0OEYyQkQyMENBMjBCRTQzM0ZGNjUyQzYwMDQ4RjJDRDIwQzkwN0Y5QkUwNTQwODY1ODkKKzo0MDBCQzYwMDI3NjAwN0UwNTQwOEY1MjdEMjBDOTA3RjlCRTA1NDQwQjUyOTA5RTA1NDQwNjQ0MEY1MjlEMjBDMzAwNzM1QzJBRjMwMDExODkwN0ZCOEUwMjBFMTI3RTU0ODYwMDk5MDdGQjdGMEU0RjU0OEMyMDFDMjA3ODAxNjkwN0ZCNkUwRTkKKzo0MDBDMDYwMDIwRTEwRkU1NDg2MDA5OTA3RkI5RjBFNEY1NDhEMjAxQzIwN0QyQUYyMDA1MzczMDAzMUI5MDdGQzZFMDIwRTEyRDkwN0U0MEUwMTM5MjE1NzU0QTAxOTA3RkM3RTBGNTdDRDIwNTgwMTk5MDdGQzhFMDIwRTExMjkwN0RDMEUwQ0YKKzo0MDBDNDYwMDEzOTIxNTc1NEEwMTkwN0ZDOUUwRjU3Q0QyMDUyMDIxMzMyMDAwMDZFNTRBNjU3QzcwMkEzMDA1MUEzMDAzMDlFNDkwN0ZDN0YwQzIwMzgwMDdFNDkwN0ZDOUYwRDIwM0MyMDVFNEY1N0NGNTRBMzAxNTBBQzIxNUMyMDA5MDdGNUMKKzo0MDBDODYwMEJGNzQwMUYwMzAyMTAzMDIwRDk0MjAwNTAzMDIwRDk0MzAxQzBBOTA3RjlCRTAyMEUzMDMwMjBEOTQzMDBCMDMwMjBEOTQzMDEzMDMwMjBEOTQzMDAzNjIzMDFCMTJBRjRBMDU0QTc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyQ0UKKzo0MDBDQzYwMDJEQUY0QTA1NEE3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUxM0U1NEFDMzk1N0M1MDJBMzAxQjEyQUY0QTA1NEE3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjE3QUY0QTA1NEE3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjU0NkQyNjYKKzo0MDBEMDYwMDExODA2QkMyMTFFNDkwN0ZDN0YwQzIwMzgwNjAzMDFCMTJBRjRBMDU0QTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMkRBRjRBMDU0QTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTEzRTU0QUMzOTU3QzUwMkEzMDFCMTJBRjRBNjcKKzo0MDBENDYwMDA1NEE3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjE3QUY0QTA1NEE3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjU0NkQyMTE4MDA5QzIxMUU0OTA3RkM5RjBEMjAzMzAxQjA0QTIyRDkyOUJEMjIxQzJBRjg1MTM5OTIwMTEwRDMwNDMKKzo0MDBEODYwMDE1MEFDMjE1QzIwMDkwN0ZCRjc0MDFGMEQyQUY5MDdGRDBFMDMwRTEwMzAyMEVCNUU0RjUxMjc0QzAyNTEyRjU4MkU0MzQ3QkY1ODNFMEZGRTUxMjdDMDA3QjAwMjQ2NEY5RUMzNDAwRkFFRjEyMTVDRDA1MTJFNTEyQjQxOERCNTEKKzo0MDBEQzYwMEU1NjQ2MDBCNzU4OTYwNzU4ODQwRDJERjg1NjU4REU1NjcxMzkyMUQ5MkM3RTU2ODEzOTIxRUU1NjkxMzkyMjRFNTZBNjAwOTkwN0Y5N0UwNTRFRkYwODAwNzkwN0Y5N0UwNDQxMEYwRTU2QjYwMDk5MDdGOTdFMDU0N0ZGMDgwQTQKKzo0MDBFMDYwMDA3OTA3Rjk3RTA0NDgwRjBFNTcxNjAwQkMyMTRDMjBEOTA3Rjk0RTA0NDA4RjBFNTcyNjAwQkQyMEREMjBFOTA3Rjk0RTA0NDA4RjBFNTczNjAwREMyQUZDMjEyRDIwMEU0RjU3REY1NEJEMkFGRTU3NDYwMDUzMDI0MDJEMjBEMjAKKzo0MDBFNDYwMEU1NzU2MDE1OTA3Rjk0RTA1NEY3RjA5MDdGOURFMDQ0MDhGMDkwN0Y5N0UwNTRGN0YwRTU3NjYwMEFEMkM0QzJDMDc1M0EwMTc1NDEyOEU1Nzc2MDA3QzJDNEU0RjU0OUY1M0FFNTc4NjAwM0U0RjU0OUU1Nzk2MDAyRDIwOEU1RjAKKzo0MDBFODYwMDdBNjAwOEU1NzY3MDAyRjU0MUQyMEVFNTdCNjAxOTkwN0ZENzc0MTNGMDc0MzNGMDc0MTRGMDc0MzRGMDc0MTZGMDc0MzZGMEQyMDREMjAyRDIwQUU0OTA3RkQxRjBBMjE0RTQzM0ZGNjUzNzYwMDQ4RjM3RDIwRUEyMERFNDMzMDQKKzo0MDBFQzYwMEZGNjUzODYwMDQ4RjM4RDIwRTkwN0Y5QUUwNTQyMDY1MzM2MDA3RTA1NDIwRjUzM0QyMEU5MDdGOUFFMDU0NDBCNTM1MDlFMDU0NDA2NDQwRjUzNUQyMEUzMDA4MzVDMkFGMzAwMjE4OTA3RkJDRTAyMEUxMjdFNTQ5NjAwOTkwOTkKKzo0MDBGMDYwMDdGQkJGMEU0RjU0OUMyMDJDMjA4ODAxNjkwN0ZCQUUwMjBFMTBGRTU0OTYwMDk5MDdGQkRGMEU0RjU0OUQyMDJDMjA4RDJBRjIwMDYzNzMwMDQxQjkwN0ZDQUUwMjBFMTJEOTA3RDQwRTAxMzkyMTY3NTRCMDE5MDdGQ0JFMEY1MDMKKzo0MDBGNDYwMDdERDIwNjgwMTk5MDdGQ0NFMDIwRTExMjkwN0NDMEUwMTM5MjE2NzU0QjAxOTA3RkNERTBGNTdERDIwNjIwMjIzMzIwMDAwNkU1NEI2NTdENzAyQTMwMDYxQTMwMDQwOUU0OTA3RkNCRjBDMjA0ODAwN0U0OTA3RkNERjBEMjA0MkMKKzo0MDBGODYwMEMyMDZFNEY1N0RGNTRCMzAxNjBBQzIxNkMyMDA5MDdGQzE3NDAxRjAzMDIyMDMwMjEwQTQyMDA2MDMwMjEwQTQzMDFFMEE5MDdGOUFFMDIwRTUwMzAyMTBBNDMwMEQwMzAyMTBBNDMwMTQwMzAyMTBBNDMwMDQ2MjMwMUQxMkFGOEUKKzo0MDBGQzYwMDRCMDU0Qjc0NDAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMkRBRjRCMDU0Qjc0NDAyRkY1ODJFNDM0N0RGNTgzRTBGNTEzRTU0QkMzOTU3RDUwMkEzMDFEMTJBRjRCMDU0Qjc0NDAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMThBRjRCNzgKKzo0MDEwMDYwMDA1NEI3NDQwMkZGNTgyRTQzNDdERjU4M0UwRjU0N0QyMTI4MDZCQzIxMkU0OTA3RkNCRjBDMjA0ODA2MDMwMUQxMkFGNEIwNTRCNzRDMDJGRjU4MkU0MzQ3Q0Y1ODNFMDEzOTIyREFGNEIwNTRCNzRDMDJGRjU4MkU0MzQ3Q0Y1RjIKKzo0MDEwNDYwMDgzRTBGNTEzRTU0QkMzOTU3RDUwMkEzMDFEMTJBRjRCMDU0Qjc0QzAyRkY1ODJFNDM0N0NGNTgzRTAxMzkyMThBRjRCMDU0Qjc0QzAyRkY1ODJFNDM0N0NGNTgzRTBGNTQ3RDIxMjgwMDlDMjEyRTQ5MDdGQ0RGMEQyMDQzMDFERjQKKzo0MDEwODYwMDA0QTIyRDkyQzNEMjIyQzJBRjg1MTNDMTIwMTIwRDMwMTYwQUMyMTZDMjAwOTA3RkMxNzQwMUYwRDJBRjkwN0ZDMkUwMzBFMTAzMDIxMTdBRTUxQTcwNDYzMDBDM0ZFNTQwNzAzQkEyMDkzM0Y1MzFDMjA5QzIwQ0U0RjUxMjdFMEQKKzo0MDEwQzYwMDAwN0IwMDc0MjYyNTEyRjlFRTM0MDBGQTEyMTU4N0ZGNzQ4MDI1MTJGNTgyRTQzNDdCRjU4M0VGRjAwNTEyRTUxMkI0MENEQjkwN0ZDMzc0MENGMDc1NDAxMDIyNzUxQTAxMjJFNTFBNjQwMTcwNDUzMDBFM0VFNTQxNzAzQUEyQzUKKzo0MDExMDYwMDBBMzNGNTNEQzIwQUMyMEVFNEY1MTI3RTAwN0IwMDc0MzIyNTEyRjlFRTM0MDBGQTEyMTU4N0ZGNzQ4MDI1MTJGNTgyRTQzNDdCRjU4M0VGRjAwNTEyRTUxMkI0MENEQjkwN0ZDMzc0MENGMDc1NDExMDc1MUEwMjIyRTUxQzYwQ0EKKzo0MDExNDYwMDMwMTUxQ0U0RjUxMjdFMDA3QjAwNzQxQjI1MTJGOUVFMzQwMEZBMTIxNTg3RkY3NDgwMjUxMkY1ODJFNDM0N0JGNTgzRUZGMDA1MTJFNTEyQjQwM0RCOTA3RkMzNzQwM0YwRTRGNTFBMjI5MDdGRTlFMDEyMTYxNzEyNDAwMDEyQTcKKzo0MDExODYwMEI0MDExMzIwMDMxMTlFMDYxMjMzMDgxMjJEMDkxMjIwMEExMzc2MEIwMDAwMTM2RjkwN0ZFQkUwMjRGRTYwMTYxNDYwNDAyNDAyNzA2OTc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMTM3NjkwN0ZFQUUwRkYxMjE3NEI4QjEyNjEKKzo0MDExQzYwMDhBMTM4OTE0RUE0OTYwMTFBRTAyRUU5MDdGRDRGMEFGMDFFRjkwN0ZENUYwMDIxMzc2OTA3RkI0RTA0NDAxRjAwMjEzNzY5MDdGRUFFMEZGMTIxNzlBOEIxMjhBMTM4OTE0RUE0OTYwMTFBRTAyRUU5MDdGRDRGMEFGMDFFRjkwODMKKzo0MDEyMDYwMDdGRDVGMDAyMTM3NjkwN0ZCNEUwNDQwMUYwMDIxMzc2OTA3RkI0RTA0NDAxRjAwMjEzNzY5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMTM3NjEyMTRDMzAyMTM3NjkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIxMzc2OTA3RkU4RTAyNDdGQkYKKzo0MDEyNDYwMDYwMjQxNDYwMzEyNDAyNzA1QkEyMjZFNDMzRkYyNUUwRkZBMjJCRTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjEzNzZFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMTM3NjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MjkKKzo0MDEyODYwMDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMTM3NjkwN0ZCNEUwNDQwMUYwMDIxMzc2OTA3RkU4RTAyNEZFNjAxRDI0MDI2MDAzMDIxMzc2OTA3RkVBMEIKKzo0MDEyQzYwMEUwQjQwMTA1QzIyNjAyMTM3NjkwN0ZCNEUwNDQwMUYwMDIxMzc2OTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzQTcKKzo0MDEzMDYwMDU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMjY4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTA3RkVBRTA3MDIwQTMKKzo0MDEzNDYwMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjIyMDI4MDMwMjE0QzJFNTQwNjMKKzo0MDEzODYwMDYwMDIxNTQwRTU0ODYwNEY2NTQ0NzA0NUU1NDJGNDYwMDIwNTQyRTU0MkMzOTU1NTQwM0RDMkFGMzAwMTE4OTA3RkI4RTAyMEUxMjc5MDdGQjdFNTQ4RjBDMjAxRTRGNTQ4RjU0MkY1NDQ4MDE2OTA3RkI2RTAyMEUxMEY5MDdGMDcKKzo0MDEzQzYwMEI5RTU0OEYwRDIwMUU0RjU0OEY1NDJGNTQ0RDJBRjgwMDY4NTQ4NDRFNEY1NDJFNTJFNjAyRDIwMTkwNzkwN0Y5QkUwMzBFMDBFRTUyRjYwMDVFNEY1MkZEMjBDRTRGNTNFODAxM0U1M0VEMzk1NTY1MDBDRTUzRUI1NTYwNTc1MDQKKzo0MDE0MDYwMDJGMDFEMjBDMDUzRUMyMTlFNTQxNjAwMjE1NDFFNTQ5NjA0RjY1NDU3MDQ1RTU0M0Y0NjAwMjA1NDNFNTQzQzM5NTZENDAzREMyQUYzMDAyMTg5MDdGQkNFMDIwRTEyNzkwN0ZCQkU1NDlGMEMyMDJFNEY1NDlGNTQzRjU0NTgwRTIKKzo0MDE0NDYwMDE2OTA3RkJBRTAyMEUxMEY5MDdGQkRFNTQ5RjBEMjAyRTRGNTQ5RjU0M0Y1NDVEMkFGODAwNjg1NDk0NUU0RjU0M0U1M0E2MDJEMjAxQTA3OTA3RjlBRTAzMEUyMEVFNTNCNjAwNUU0RjUzQkQyMEVFNEY1M0Y4MDEzRTUzRkQzNUUKKzo0MDE0ODYwMDk1NkU1MDBDRTUzRkI1NkUwNTc1M0IwMUQyMEUwNTNGQzIxQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTFDOTA3QjQyRTBGNTFEOTA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDIyRTQ5MDdGQzUKKzo0MDE0QzYwMDkzRjA5MDdGOUM3NDMwRjA5MDdGOTZFMDQ0MTBGMDkwN0Y5NDc0MERGMDkwN0Y5RDc0OUFGMDkwN0Y5N0UwNTRGREYwOTA3Rjk1NzQyM0YwOTA3RjlFNzQ4NEYwRTQ5MDdGQzdGMDkwN0ZDOUYwOTA3RkNGRjA3NTk4NDA0M0E4OUUKKzo0MDE1MDYwMDEwQzIxQkMyMDVDMjIxQzIwQkMyMTNGNTdDRjU0QUMyMTFDMjE1RjU0MkMyMTlGNTQ0RjU0OEMyMjNDMjFDRjUyREY1MkZDMjA3QzIwMEMyMUZGNTNFQzIwOUQyMENGNTI2OTA3RkNCRjA5MDdGQ0RGMDkwN0ZEMUYwNzVDMDQwNDMKKzo0MDE1NDYwMDQzQTg0MEMyMURDMjA2QzIyMkMyMERDMjE0RjU3REY1NEJDMjEyQzIxNkY1NDNDMjFBRjU0NUY1NDlDMjI0QzIxRUY1MzlGNTNCQzIwOEMyMDBDMjIwRjUzRkMyMEFEMjBFNzUzMjAxOTA3RkRGNzRGRkYwOTA3RkRFRjBEMjI4REUKKzo0MDE1ODYwMDIyQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1NTMKKzo0MDE1QzYwMDgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRTBBRTkyNTgyRjhFMkY1MTEKKzo0MDE2MDYwMEYwMDhFMjIyRTU4MzJBRjU4M0U5OTNGNUYwQTNFOTkzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGNzg3RkU0RjZEOEZENzU4MTdEMEUKKzo0MDE2NDYwMDAyMTY4NDAyMTZDOUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDE4MUEKKzo0MDE2ODYwMEM1RTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFMzkKKzo0MDE2QzYwMEU3ODBCRTc1MTEwMTkwN0Y5MkUwNTRGREYwOTA3RkFFRTBGRkQzOTIyNkU0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0QzUKKzo0MDE3MDYwMDAxRjA5MDdGQUVFMDQ0MERGMEQyQUZEMkJDRDJCRUQyMkQxMjE4N0ZDMjI3QzIyNUMyMjgzMDI4MDMxMjBBODM5MDdGRDhFMDY1MTA2MDA4RTBGNTEwMTIxMzdFODBFQTMwMjcwN0MyMjcxMjExN0I4MEUwMzAyQ0REQzIyQzEyQzUKKzo0MDE3NDYwMDAwMjY4MEQ2MjJFNEZFNzUxN0ZGNzUxODE5NzUxOTEyQUIxN0FBMThBOTE5OTAwMDAxMTIxNUEwNjQwMjcwMkRBRDA2MEVFREI1MDcwMTIyOTAwMDAyMTIxNURGODVGMDE1RjUxNjYyMTVFNTE1NjIxNkU1MTY2MjE1MjlGREU1NTEKKzo0MDE3ODYwMDE1M0FBOTA1NzUxN0ZGRjUxODg5MTk4MEMzN0IwMDdBMDA3OTAwMjI4RjE1RTRGNTE2NzUxN0ZGNzUxODE5NzUxOTg2QUIxN0FBMThBOTE5OTAwMDAxMTIxNUEwQjQwMzFEQUYxNjA1MTZFRkI1MTUwMTIyMTIxNTg3N0UwMDI5QkUKKzo0MDE3QzYwMEZGRUUzQUE5MDc3NTE3RkZGNTE4ODkxOTgwRDQ3QjAwN0EwMDc5MDAyMkU0OTA3RjkzRjA5MDdGOUNGMDkwN0Y5NEYwOTA3RjlENzQwMkYwOTA3Rjk3RjBFNDkwN0Y5NUYwOTA3RjlFNzRGRkYwRTQ5MDdGOThGMDkwN0Y5REYwMDMKKzo0MDE4MDYwMDIyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIyNzUzOTFFRjkwMjQKKzo0MDE4NDYwMDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMkM1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0ZENkUwNTRGQkYwREQKKzo0MDE4ODYwMEUwNDQwOEYwMzAyRDA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwNjkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkMxMjUKKzo0MDE4QzYwMEFBMDExQTAwMDMxQjAzMDAwMEMxMjdDMTJDQzEyNkMxMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwMzEKKzo0MDE5MDYwMDAwNDBDRDA2MEYwMTAwMDAwMTAyMDAwMTA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNzgKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzo0MDFBMDYwMDcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzo0MDFBNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzo0MDFBODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzo0MDFBQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxODMxMDAwMjFCNzgKKzowOTFCMDYwMDA0MDAwMjE4MDcwMDAyMTg1ODNGCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eC5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eC5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYwZjdmYQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4LkhFWApAQCAtMCwwICsxLDE0MSBAQAorOjAzMDAzMzAwMDIxMkY3QkYKKzoxMDAwMDMwMEU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwQkYKKzoxMDAwMTMwMDkwN0Y5NEYwOTA3RjlENzRGRkYwRTQ5MDdGOTdGMDkwMzEKKzowRjAwMjMwMDdGOTVGMDkwN0Y5RTc0MDdGMEU0OTA3Rjk4RjAyMjE1Cis6MTAwMDQ2MDAzMDA5MTgxMjEzMUJFRkMzOTUzQzQwMDMwMjAwRDg5MEU5Cis6MTAwMDU2MDA3RkJGNzQwMUYwQzIwOUMyMDA4MDc3MzAwMzNCOTA3RkY2Cis6MTAwMDY2MDBDNkUwMjBFMTZEMTIxMzFCRUZDMzk0NDA1MDY0OTA3RUVFCis6MTAwMDc2MDA0MEUwMTM5MjA5OTA3RkM3RTAxNEY1MTkyMDAwMTE2MDQzCis6MTAwMDg2MDAwRkY1MDg3RTdFN0Y0MTc1MEM3RTc1MEQ0MTEyMENCQTA4Cis6MTAwMDk2MDBDMjAzRTQ5MDdGQzdGMDgwMzk5MDdGQzhFMDIwRTEzMjQ4Cis6MTAwMEE2MDAxMjEzMUJFRkMzOTQ0MDUwMjk5MDdEQzBFMDEzOTIwOUIwCis6MTAwMEI2MDA5MDdGQzlFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3REM4Cis6MTAwMEM2MDA3RkMxNzUwQzdENzUwREMxMTIwQ0JBRDIwM0U0OTA3RjA5Cis6MTAwMEQ2MDBDOUYwOTA3RkI2RTAzMEUxMDMwMjAxNjAxMjExRDY4RkJECis6MTAwMEU2MDAxOTEyMTMyNzhGMzZFNTE5QzM5NTNBNTAwRjEyMTJFQkUyCis6MTAwMEY2MDBFRjMwRTAwOEU1MzYyMEU3MDMzMDBCNUVDMjBCRTUxOTZBCis6MEMwMDM2MDA5MDdGOTg3NDEwRjA5MEMwMDBFMEZGMjI1MgorOjAzMDA0MzAwMDIxMzAwQTUKKzowMzAwMDAwMDAyMEUwMEVECis6NDAwMTA2MDA2MDU4QjQ4MDAzNDMzNjAyRTUzNjMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RTdGODA3NTBDN0U3NTBEODBBRjM2MTIwRjRCRTUxOTI1RTA5MDdGQjdGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwOEQ0Cis6NDAwMTQ2MDA5MDdFODBFNTM2RjA3RTdFN0Y4MTc1MEM3RTc1MEQ4MTEyMENERkU1MTkwNDkwN0ZCN0YwOTA3RkNFRTAzMEUxMDYyMDA1MDMwMjAzQzFDMjA1RTRGNTE4NzQ0MDI1MThGNTgyRTQzNDdDRjU4M0UwRkZFNTE4N0MwMDdCMDE3QUYxCis6NDAwMTg2MDA3RTc5MDAyNDAwRjlFQzM0N0VGQUVGMTIwRUQyMDUxOEU1MThCNDIwRDc5MDdFMDBFMDYwNjg5MDdFMDNFMDYwMjQ3RjAxRTRGRDEyMTFCMTdGMDM3RENEMTIxMUIxNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwRTQ5MEUwCis6NDAwMUM2MDA3RTEzRjA4MDMwOTA3RTAxRTBGRjEyMTAzNTkwN0UwMkUwRkYxMjEwNUI3RjAxOTA3RTExRTBGRDEyMTFCMTdGMDM3RDA3MTIxMUIxNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3Rjk4NzQxMkYwRTU0MDQ0MDY5MDNFCis6NDAwMjA2MDBDMDAwRjA5MDdFMDNFMDcwMDY5MDdFMTNFMDcwMDhFNDkwN0UxM0YwNzUyNUZGOTA3RTA1RTA2MDEyQTNFMDU0M0ZGNTQ0OTA3Rjk4NzQxM0YwOTBDMDAwRTU0NEYwOTA3RTA3RTA2MDJCQTNFMDYwMDU0MzQyODA4MDAzNTM0MkRBCis6NDAwMjQ2MDA3RjUzNDJGQzkwN0UwOUUwNjAxMTQzNDIwMkEzRTBGRjEyMTBBNzkwN0UwQkUwRkYxMjEwQ0RBRjQyMTIxMDgxOTA3RTAzRTA2MDA4NTM0MjdGQUY0MjEyMTA4MTkwN0UwQ0UwNjAxOEEzRTA2MDA1NDM0NjAyODAwMzUzNDZGREI0Cis6NDAwMjg2MDA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMEVFMDYwMThBM0UwNjAwNTQzNDYwMTgwMDM1MzQ2RkU5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTJFMEY1M0FBM0UwMTM5MjBEQTNFMEY1M0NBM0UwNjAwNTQzNDYxMDhCCis6NDAwMkM2MDA4MDAzNTM0NkVGOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTE2RTA2MDMyNTM0NEJGOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTFGMDEyMTJERkVGNTRGRTkwQzAwMEYwNTMzRUZERTRGRkFEM0UxMjBGCis6NDAwMzA2MDAxMUIxRTRGNTJBRjUyOUQyMDc5MDdFMTdFMDYwMEY0MzNFMDJFNEZGQUQzRTEyMTFCMTc1MjkwMUQyMDc5MDdFMThFMDYwMTA5MDdGOTg3NDEyRjBFNTQwNDQwNDkwQzAwMEYwRDIwMDkwN0UxOUUwNjAxMTQzNDQ0MDkwN0Y5OEYyCis6NDAwMzQ2MDA3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3RTFBRTA2MDBGNTMzRUZFRTRGRkFEM0UxMjExQjE3NTJCMDFEMjA3OTA3RTFCRTA2MDBGNDMzRTAxRTRGRkFEM0UxMjExQjFFNEY1MkJEMjA3OTA3RTFDRTA2MDBFOTA3Rjk4NzQxMjg0Cis6NDAwMzg2MDBGMEU1NDA0NDAyOTBDMDAwRjA5MDdFMURFMDYwMDJEMjBCOTA3RTFFRTA2MDA4NzUyQzAxRTRGNTM4RDIwNzkwN0UxRkUwNjAxMTkwN0ZENzc0MTFGMDc0MzFGMDc0MTVGMDc0MzVGMEQyMDNFNDkwN0ZDRkYwMzAxQTUyRTUzODkyCis6NDAwM0M2MDA2MDAyMTUzODIwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJEMjEzMTIxMkRGRUY1NDAxRjUxOTY1MkE2MDA1ODUxOTJBRDIwNzEyMTMzM0VGNTQ4MEY1MTk2NTI2NjAwNTg1MTkyNkQyMDczMDBEMTExMjdGCis6NDAwNDA2MDAxMzMzRUY1NDEwRjUxOTY1MjU2MDA1ODUxOTI1RDIwNzIwMUIwMzAyMDdFQzMwMEExODEyMTM2RkVGQzM5NTNENDAwMzAyMDRBRTkwN0ZDMTc0MDFGMEMyMEFDMjAwODA3NzMwMDQzQjkwN0ZDQUUwMjBFMTZEMTIxMzZGRUZDMzVBCis6NDAwNDQ2MDA5NDQwNTA2NDkwN0Q0MEUwMTM5MjBBOTA3RkNCRTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0Q3RjQxNzUwQzdENzUwRDQxMTIwRDA0QzIwNEU0OTA3RkNCRjA4MDM5OTA3RkNDRTAyMEUxMzIxMjEzNkZFRkMzOTQ0MDUwMjk5MEJDCis6NDAwNDg2MDA3Q0MwRTAxMzkyMEE5MDdGQ0RFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3QzdGQzE3NTBDN0M3NTBEQzExMjBEMDREMjA0RTQ5MDdGQ0RGMDkwN0ZCQUUwMzBFMTAzMDIwNTM2MTIxMjIwOEYxOTEyMTM3QjhGMzdFNTE5QzM5NTJCCis6NDAwNEM2MDAzQjUwMEYxMjEzNTdFRjMwRTAwOEU1MzcyMEU3MDMzMDBDNUVDMjBDRTUxOTYwNThCNDgwMDM0MzM3MDJFNTM3MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdEN0Y4MDc1MEM3RDc1MEQ4MEFGMzcxMjBGODRFNTAzCis6NDAwNTA2MDAxOTI1RTA5MDdGQkJGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwODkwN0Q4MEU1MzdGMDdFN0Q3RjgxNzUwQzdENzUwRDgxMTIwRDI5RTUxOTA0OTA3RkJCRjA5MDdGRDBFMDMwRTEwNjIwMDYwMzAyMDc5N0MyMDZFNEY4Cis6NDAwNTQ2MDBGNTE4NzRDMDI1MThGNTgyRTQzNDdCRjU4M0UwRkZFNTE4N0MwMDdCMDE3QTdFNzkyMDI0MjBGOUVDMzQ3RUZBRUYxMjBFRDIwNTE4RTUxOEI0MjBENzkwN0UyMEUwNjA2ODkwN0UyM0UwNjAyNDdGMDFFNEZEMTIxMUZCN0YwMzI5Cis6NDAwNTg2MDA3RENEMTIxMUZCNDM0NzgwOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwRTQ5MDdFMzNGMDgwMzA5MDdFMjFFMEZGMTIxMTE5OTA3RTIyRTBGRjEyMTEzRjdGMDE5MDdFMzFFMEZEMTIxMUZCN0YwMzdEMDcxMjExRkI0MzQ3ODA5MDQ4Cis6NDAwNUM2MDA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3Rjk4NzQwQUYwRTU0MTQ0MDY5MEMwMDBGMDkwN0UyM0UwNzAwNjkwN0UzM0UwNzAwOEU0OTA3RTMzRjA3NTJFRkY5MDdFMjVFMDYwMTJBM0UwNTQzRkY1NDU5MDdGOTg3NDBCRjA5MEVCCis6NDAwNjA2MDBDMDAwRTU0NUYwOTA3RTI3RTA2MDJCQTNFMDYwMDU0MzQzODA4MDAzNTM0MzdGNTM0M0ZDOTA3RTI5RTA2MDExNDM0MzAyQTNFMEZGMTIxMTY1OTA3RTJCRTBGRjEyMTE4QkFGNDMxMjEwRjM5MDdFMjNFMDYwMDg1MzQzN0ZBRkZFCis6NDAwNjQ2MDA0MzEyMTBGMzkwN0UyQ0UwNjAxOEEzRTA2MDA1NDM0NzAyODAwMzUzNDdGRDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UyRUUwNjAxOEEzRTA2MDA1NDM0NzAxODAwMzUzNDdGRTkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEQ0Cis6NDAwNjg2MDA5MDdFMzJFMEY1M0JBM0UwMTM5MjBFQTNFMEY1M0RBM0UwNjAwNTQzNDcxMDgwMDM1MzQ3RUY5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMzZFMDYwMzI1MzQ1QkY5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3Rjc5Cis6NDAwNkM2MDA5ODc0MDlGMDEyMTM0QkVGNTRGRTkwQzAwMEYwNTMzRkZERTRGRkFEM0YxMjExRkJFNEY1MzNGNTMyRDIwODkwN0UzN0UwNjAwRjQzM0YwMkU0RkZBRDNGMTIxMUZCNzUzMjAxRDIwODkwN0UzOEUwNjAxMDkwN0Y5ODc0MEFGMDQzCis6NDAwNzA2MDBFNTQxNDQwNDkwQzAwMEYwRDIwMDkwN0UzOUUwNjAxMTQzNDU0MDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdFM0FFMDYwMEY1MzNGRkVFNEZGQUQzRjEyMTFGQjc1MzQwMUQyMDg5MDdFM0JFMDYwMEY0MzNGMDFFNEU5Cis6NDAwNzQ2MDBGRkFEM0YxMjExRkJFNEY1MzREMjA4OTA3RTNDRTA2MDBFOTA3Rjk4NzQwQUYwRTU0MTQ0MDI5MEMwMDBGMDkwN0UzREUwNjAwMkQyMEM5MDdFM0VFMDYwMDg3NTM1MDFFNEY1MzlEMjA4OTA3RTNGRTA2MDExOTA3RkQ3NzQxMzg5Cis6NDAwNzg2MDBGMDc0MzNGMDc0MTZGMDc0MzZGMEQyMDRFNDkwN0ZEMUYwMzAxQTUyRTUzOTYwMDIxNTM5MzAxMzQ5RTUxM0QzOTQwMDQwMDQxNTEzODAzRTc1MTMwQTMwMUIwMkMyMTMxMjEzNEJFRjU0MDFGNTE5NjUzMzYwMDU4NTE5MzNEMjc5Cis6NDAwN0M2MDAwODEyMTM4N0VGNTQ4MEY1MTk2NTJGNjAwNTg1MTkyRkQyMDgzMDBFMTExMjEzODdFRjU0MTBGNTE5NjUyRTYwMDU4NTE5MkVEMjA4MzAxQTJBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MTU5MDdCNDJFMEY1MTY5MDM1Cis6NDAwODA2MDA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDkwN0ZDMkUwMzBFMTAzMDIwOTIwRTUwQTcwNDAzMDA3MzlFNTM4NzAzNUMyMDdGNTE4N0UwMDdCMDA3NDI0MjUxOEY5RUUzNDAwRkExMjBFOENGRjc0ODAyNUJECis6NDAwODQ2MDAxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzODEwRTRGNTJDNzUwQTAxMjJFNTBBNjQwMTcwNDAzMDA4MzlFNTM5NzAzNUMyMDhGNTE4N0UwMDdCMDA3NDJEMjUxOEY5RUUzNDAwRkExMjk3Cis6NDAwODg2MDAwRThDRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzOTEwRTRGNTM1NzUwQTAyMjJFNTBBNjQwMjcwMzYzMDE0MkZDMjE0RjUxODdFMDA3QjAwNzQwRTI1MThGOUVFMzQwMDgzCis6NDAwOEM2MDBGQTEyMEU4Q0ZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDVEQjkwN0ZDMzc0MDVGMDc1MEEwMzIyRTUxNTYwMzAxNTE1RTRGNTE4N0UwMDdCMDA3NDE0MjUxOEY5RUUzNDAwRkExMjBFOENGRjc0ODAyNUYyCis6NDAwOTA2MDAxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwM0RCOTA3RkMzNzQwM0YwRTRGNTBBMjI5MDdGRTlFMDEyMEVFNDBBMDgwMDBBN0MwMTBBRTgwMzA5NDQwNjA5RkIwODA5RjUwOTA5REQwQTA5RUMwQjAwMDAwQjM3OTA3RjNECis6NDAwOTQ2MDBFQkUwMjRGRTYwMTkxNDYwNjEyNDAyNjAwMzAyMDlEMzc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMEIzRTkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyN0I3NTgzMTlGMDc1ODI3NDc1ODMxOUIyCis6NDAwOTg2MDBGMDc1ODI2Njc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA3NDE5OTA3RkQ0RjA3NDEyOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMEZGMTIwRjBBRUE0OTYwMERFQTkwN0ZENEYwRTk5MDdGRDVGMDg1Cis6NDAwOUM2MDAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RjAwRTUwOUYwOTA3RkI1NzQwMUYwMDIwQjNFOTA3RkVBRTBGNTA5MDIwQjNFMTIwQjQ2MDIwQjNFOTA3RjAwNzQwMUYwOTA3RkI1RjAwMjA1Cis6NDAwQTA2MDAwQjNFOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIxMEU0MzNGRjI1RTBGRkEyMTZFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRUU0OTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwQjNFOTA3RjA0Cis6NDAwQTQ2MDBFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGRThFMDI0RkU2MDFEMjQwMjBGCis6NDAwQTg2MDA2MDAzMDIwQjNFOTA3RkVBRTBCNDAxMDVDMjEwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkI2Cis6NDAwQUM2MDBFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQwMTA0RDIxMDgwM0Y5MDdGQjRFMDQ0MDFGMDQ5Cis6NDAwQjA2MDA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkQ0Cis6NDAwQjQ2MDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMDkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MThGMEU0RjU4RTkwN0ZERjc0RkZGMDkwN0ZERUYwRTRGNTI0NzUxODAxN0IwMDc0MjQyNTE4RjlFNDM0MDBGQThCCis6NDAwQjg2MDBFNDEyMEVEMjA1MThFNTE4QjQwOUVBNzUzQTAxRTRGNTM4RjUxM0Y1MzZDMjA3QzIwQkMyMDVDMjAwQzIwOUMyMTM5MDdGOTg3NDEzRjA3NTQ0MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTFCMTdGMTA4RjQyMTIxMDgxOTA3RjAyCis6NDAwQkM2MDA5ODc0MTJGMDdGMDE4RjQwRUY0NDA2OTBDMDAwRjA5MDdGOTg3NDE0RjA3NTQ2ODA5MEMwMDA3NDgwRjAwRkU0RkQxMjExQjFFNEZGN0VBM0FEMDY4RDNFMTIxMUIxOTA3Rjk4NzQxMUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMThFCis6NDAwQzA2MDBCMTdGMDExMjEyNkE3RjAzN0QwNzEyMTFCMTIwMUIwMzAyMENCNzc1MkQwMTc1MTgwMTdCMDA3NDJEMjUxOEY5RTQzNDAwRkFFNDEyMEVEMjA1MThFNTE4QjQwOUVBNzUzQjAxRTRGNTM5RjUxM0Y1MzdDMjA4QzIwQ0MyMDZDMkNECis6NDAwQzQ2MDAwMEMyMEFDMjEzOTA3Rjk4NzQwQkYwNzU0NTAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExRkI3RjEwOEY0MzEyMTBGMzkwN0Y5ODc0MEFGMDdGMDE4RjQxRUY0NDA2OTBDMDAwRjA5MDdGOTg3NDBDRjA3NTQ3ODA5MEMwMDA3NDRFCis6NDAwQzg2MDA4MEYwMEZFNEZEMTIxMUZCRTRGRjdFQTNBRDA2OEQzRjEyMTFGQjkwN0Y5ODc0MDlGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTFGQjdGMDExMjEyOEI3RjAzN0QwNzEyMTFGQkQyMTIyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkE1Cis6NDAwQ0M2MDBFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyOTA3RjIwCis6NDAwRDA2MDA5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTVDCis6NDAwRDQ2MDA4NkRGRjcwNTg2RDJBRjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRDIxOTkwN0Y5MkUwNDQwMkYwOTA3RkFFRTBGRkQzOTIxMEU0MzNGRUVGNEVGMDg5Cis6NDAwRDg2MDBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUZEMjFBMTIxMjQ1QzIxMUU0RjUwQkY1MTNDMjE3QzIxMkQ0Cis6NDAwREM2MDA5MDdGQTEwNEYwOTA3RkQ4RTA2NTE3NjAxMDMwMTIwNUQyMUExMjAwNDY5MDdGRDhFMEY1MTc4MDA4MzAxMjA1QzIxQTEyMDA0NjMwMTEwN0MyMTExMjA5MjE4MEQ2MzAxOEQzQzIxODEyMTM5MzgwQ0MyMjc4N0ZFNEY2RDhGREM3Cis6NDAwRTA2MDA3NTgxNDcwMjBFNDcwMjBENkZFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MEY1Cis6NDAwRTQ2MDA4MDkwMTJBQ0U0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQTFFCis6NDAwRTg2MDBERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNUI4Cis6NDAwRUM2MDA4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0MxCis6NDAwRjA2MDBBM0EzODBERjhGMThFNEY1MTk3NTFBRkY3NTFCMTk3NTFDODZBQjFBQUExQkE5MUM5MDAwMDExMjBFQTVCNDAzMURBRjE5MDUxOUVGQjUxODAxMjIxMjBFOEM3RTAwMjlGRkVFM0FBOTA3NzUxQUZGRjUxQjg5MUM4MEQ0N0IwMEE1Cis6NDAwRjQ2MDA3QTAwNzkwMDIyOEYxQTA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMDAzNjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwMEExMjEzMjc4RjFBRUY0MjM2ODBDQTIyOEYxQUZDCis6NDAwRjg2MDAwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjEzM0YwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxMzdCOEYxQUVGNDIzNzgwQ0EyMkMwRTBDMDgzQzA4MkMwODVDMDg4Cis6NDAwRkM2MDA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjExNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMEM2Cis6NDAxMDA2MDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxODUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMDhBCis6NDAxMDQ2MDBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxMzQ5Cis6NDAxMDg2MDBGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTJGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NEQ5Cis6NDAxMEM2MDA1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTZGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBBRjA5MDJBCis6NDAxMTA2MDBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MDhGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEFGCis6NDAxMTQ2MDBDMDAwNzRCRkYwOTA3Rjk4NzQwOUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MENGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RkVDCis6NDAxMTg2MDA5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwRUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDE3RjA5MDc1Cis6NDAxMUM2MDBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMTMwRjhGMUExMjEzMEY4RjFCRTUxQTY1MUI2MDEyMTIxMzBGOEYxQUU1MUE2NTFCNjAwNzEyMTMwRjhGMUI4MEU4QUYxQTIyOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MDk4Cis6NDAxMjA2MDBDMDAwRjA5MDdGOTg3NDBGRjA5MEMwMDBFRkYwOTA3Rjk4NzQwREYwOTBDMDAwRURGMDIyMTIxMzYzOEYxQTEyMTM2MzhGMUJFNTFBNjUxQjYwMTIxMjEzNjM4RjFBRTUxQTY1MUI2MDA3MTIxMzYzOEYxQjgwRThBRjFBMjI5MEM4Cis6NDAxMjQ2MDA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMUEwNEUwNDQwMkYwN0ZGNDdFMDExMjEyQzg5MDdGRDZFMDU0RjdGMEUwNDQwNEYwMjJBRTA3RTRGRkU1M0U1NDdGRkQxMjExQjE5MDdGOTg3NDExRjA5MEMwMDBFRUYwRTRFNTNFNDQ4MEU4Cis6NDAxMjg2MDBGRDEyMTFCMTIyQUUwN0U0RkZFNTNGNTQ3RkZEMTIxMUZCOTA3Rjk4NzQwOUYwOTBDMDAwRUVGMEU0RTUzRjQ0ODBGRDEyMTFGQjIyMDUwRTAyMDAwMDAwMDAwMzE0MDMwMDAwQzExMUMxMThDMTk1QzExMEMxMTYwMTBBMDBDMTlDCis6NDAxMkM2MDA5QjAwOEUxODhGMTlFNTE5MTUxOUFFMTg3MDAyMTUxODRFNjAwNTEyMEQ0RTgwRUUyMjkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjUzRDhFRjMyMDAwMDAwMDAwMDAyMEZFNzAwMDIxMzhBCis6NDAxMzA2MDAwNDAwMDIwRkJEMDAwMjEwMEU5MDdGOTg3NDEzRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE0RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE1RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE2RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDA4RjA5MDUwCis6NDAxMzQ2MDBDMDAwRTBGRjIyOTA3Rjk4NzQwOUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQ0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwREYwOTBDMDAwRTBGRkM1Cis6NDAxMzg2MDAyMjkwN0Y5ODc0MEVGMDkwQzAwMEUwRkYyMjEyMDAwMzEyMEQ1RjEyMEI0NjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6NDAxM0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6NDAxNDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6NDAxNDQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6NDAxNDg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6NDAxNEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6NDAxNTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6NDAxNTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6NDAxNTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6NDAxNUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6NDAxNjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6NDAxNjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6NDAxNjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6NDAxNkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6NDAxNzA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6NDAxNzQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6NDAxNzg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6NDAxN0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6NDAxODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6NDAxODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6NDAxODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6NDAxOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMEJGCis6NDAxOTA2MDAwMDQwQ0QwNjEwMDEwMDAwMDEwMjAwMDIwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDc2Cis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAwMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUY0Cis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAzNjAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTMwMDQyMDAyMDAwNTMwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDQxMDA2NDAwNjEwMDcwMDA3NDAwNjUwMEY5Cis6MDQxQTA2MDA3MjAwMDAwMDZBCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGEuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhhLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTQ5MzJlCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhhLkhFWApAQCAtMCwwICsxLDE0MSBAQAorOjAzMDAzMzAwMDIxMkY5QkQKKzoxMDAwMDMwMEU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwQkYKKzoxMDAwMTMwMDkwN0Y5NEYwOTA3RjlENzRGRkYwRTQ5MDdGOTdGMDkwMzEKKzowRjAwMjMwMDdGOTVGMDkwN0Y5RTc0MDdGMEU0OTA3Rjk4RjAyMjE1Cis6MTAwMDQ2MDAzMDA5MTgxMjEzMjdFRkMzOTUzQzQwMDMwMjAwRDg5MERECis6MTAwMDU2MDA3RkJGNzQwMUYwQzIwOUMyMDA4MDc3MzAwMzNCOTA3RkY2Cis6MTAwMDY2MDBDNkUwMjBFMTZEMTIxMzI3RUZDMzk0NDA1MDY0OTA3RUUyCis6MTAwMDc2MDA0MEUwMTM5MjA5OTA3RkM3RTAxNEY1MTkyMDAwMTE2MDQzCis6MTAwMDg2MDAwRkY1MDg3RTdFN0Y0MTc1MEM3RTc1MEQ0MTEyMENDOEZBCis6MTAwMDk2MDBDMjAzRTQ5MDdGQzdGMDgwMzk5MDdGQzhFMDIwRTEzMjQ4Cis6MTAwMEE2MDAxMjEzMjdFRkMzOTQ0MDUwMjk5MDdEQzBFMDEzOTIwOUE0Cis6MTAwMEI2MDA5MDdGQzlFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3REM4Cis6MTAwMEM2MDA3RkMxNzUwQzdENzUwREMxMTIwQ0M4RDIwM0U0OTA3RkZCCis6MTAwMEQ2MDBDOUYwOTA3RkI2RTAzMEUxMDMwMjAxNjAxMjExRTQ4RkFGCis6MTAwMEU2MDAxOTEyMTMzMzhGMzZFNTE5QzM5NTNBNTAwRjEyMTMwRkIxCis6MTAwMEY2MDBFRjMwRTAwOEU1MzYyMEU3MDMzMDBCNUVDMjBCRTUxOTZBCis6MEMwMDM2MDA5MDdGOTg3NDEwRjA5MEMwMDBFMEZGMjI1MgorOjAzMDA0MzAwMDIxMzAwQTUKKzowMzAwMDAwMDAyMEUwRURGCis6NDAwMTA2MDA2MDU4QjQ4MDAzNDMzNjAyRTUzNjMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RTdGODA3NTBDN0U3NTBEODBBRjM2MTIwRjU5RTUxOTI1RTA5MDdGQjdGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwOEM2Cis6NDAwMTQ2MDA5MDdFODBFNTM2RjA3RTdFN0Y4MTc1MEM3RTc1MEQ4MTEyMENFREU1MTkwNDkwN0ZCN0YwOTA3RkNFRTAzMEUxMDYyMDA1MDMwMjAzQzFDMjA1RTRGNTE4NzQ0MDI1MThGNTgyRTQzNDdDRjU4M0UwRkZFNTE4N0MwMDdCMDE3QUUzCis6NDAwMTg2MDA3RTc5MDAyNDAwRjlFQzM0N0VGQUVGMTIwRUUwMDUxOEU1MThCNDIwRDc5MDdFMDBFMDYwNjg5MDdFMDNFMDYwMjQ3RjAxRTRGRDEyMTFCRjdGMDM3RENEMTIxMUJGNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwRTQ5MEI2Cis6NDAwMUM2MDA3RTEzRjA4MDMwOTA3RTAxRTBGRjEyMTA0MzkwN0UwMkUwRkYxMjEwNjk3RjAxOTA3RTExRTBGRDEyMTFCRjdGMDM3RDA3MTIxMUJGNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3Rjk4NzQxMkYwRTU0MDQ0MDY5MDA2Cis6NDAwMjA2MDBDMDAwRjA5MDdFMDNFMDcwMDY5MDdFMTNFMDcwMDhFNDkwN0UxM0YwNzUyNUZGOTA3RTA1RTA2MDEyQTNFMDU0M0ZGNTQ0OTA3Rjk4NzQxM0YwOTBDMDAwRTU0NEYwOTA3RTA3RTA2MDJCQTNFMDYwMDU0MzQyODA4MDAzNTM0MkRBCis6NDAwMjQ2MDA3RjUzNDJGQzkwN0UwOUUwNjAxMTQzNDIwMkEzRTBGRjEyMTBCNTkwN0UwQkUwRkYxMjEwREJBRjQyMTIxMDhGOTA3RTAzRTA2MDA4NTM0MjdGQUY0MjEyMTA4RjkwN0UwQ0UwNjAxOEEzRTA2MDA1NDM0NjAyODAwMzUzNDZGRDdDCis6NDAwMjg2MDA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMEVFMDYwMThBM0UwNjAwNTQzNDYwMTgwMDM1MzQ2RkU5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTJFMEY1M0FBM0UwMTM5MjBEQTNFMEY1M0NBM0UwNjAwNTQzNDYxMDhCCis6NDAwMkM2MDA4MDAzNTM0NkVGOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTE2RTA2MDMyNTM0NEJGOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTFGMDEyMTJFREVGNTRGRTkwQzAwMEYwNTMzRUZERTRGRkFEM0UxMjAxCis6NDAwMzA2MDAxMUJGRTRGNTJBRjUyOUQyMDc5MDdFMTdFMDYwMEY0MzNFMDJFNEZGQUQzRTEyMTFCRjc1MjkwMUQyMDc5MDdFMThFMDYwMTA5MDdGOTg3NDEyRjBFNTQwNDQwNDkwQzAwMEYwRDIwMDkwN0UxOUUwNjAxMTQzNDQ0MDkwN0Y5OEQ2Cis6NDAwMzQ2MDA3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3RTFBRTA2MDBGNTMzRUZFRTRGRkFEM0UxMjExQkY3NTJCMDFEMjA3OTA3RTFCRTA2MDBGNDMzRTAxRTRGRkFEM0UxMjExQkZFNEY1MkJEMjA3OTA3RTFDRTA2MDBFOTA3Rjk4NzQxMjY4Cis6NDAwMzg2MDBGMEU1NDA0NDAyOTBDMDAwRjA5MDdFMURFMDYwMDJEMjBCOTA3RTFFRTA2MDA4NzUyQzAxRTRGNTM4RDIwNzkwN0UxRkUwNjAxMTkwN0ZENzc0MTFGMDc0MzFGMDc0MTVGMDc0MzVGMEQyMDNFNDkwN0ZDRkYwMzAxQTUyRTUzODkyCis6NDAwM0M2MDA2MDAyMTUzODIwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJEMjEzMTIxMkVERUY1NDAxRjUxOTY1MkE2MDA1ODUxOTJBRDIwNzEyMTMzRkVGNTQ4MEY1MTk2NTI2NjAwNTg1MTkyNkQyMDczMDBEMTExMjY1Cis6NDAwNDA2MDAxMzNGRUY1NDEwRjUxOTY1MjU2MDA1ODUxOTI1RDIwNzIwMUIwMzAyMDdFQzMwMEExODEyMTM3QkVGQzM5NTNENDAwMzAyMDRBRTkwN0ZDMTc0MDFGMEMyMEFDMjAwODA3NzMwMDQzQjkwN0ZDQUUwMjBFMTZEMTIxMzdCRUZDMzM2Cis6NDAwNDQ2MDA5NDQwNTA2NDkwN0Q0MEUwMTM5MjBBOTA3RkNCRTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0Q3RjQxNzUwQzdENzUwRDQxMTIwRDEyQzIwNEU0OTA3RkNCRjA4MDM5OTA3RkNDRTAyMEUxMzIxMjEzN0JFRkMzOTQ0MDUwMjk5MEEyCis6NDAwNDg2MDA3Q0MwRTAxMzkyMEE5MDdGQ0RFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3QzdGQzE3NTBDN0M3NTBEQzExMjBEMTJEMjA0RTQ5MDdGQ0RGMDkwN0ZCQUUwMzBFMTAzMDIwNTM2MTIxMjJFOEYxOTEyMTM4NzhGMzdFNTE5QzM5NTAzCis6NDAwNEM2MDAzQjUwMEYxMjEzNjNFRjMwRTAwOEU1MzcyMEU3MDMzMDBDNUVDMjBDRTUxOTYwNThCNDgwMDM0MzM3MDJFNTM3MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdEN0Y4MDc1MEM3RDc1MEQ4MEFGMzcxMjBGOTJFNUU5Cis6NDAwNTA2MDAxOTI1RTA5MDdGQkJGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwODkwN0Q4MEU1MzdGMDdFN0Q3RjgxNzUwQzdENzUwRDgxMTIwRDM3RTUxOTA0OTA3RkJCRjA5MDdGRDBFMDMwRTEwNjIwMDYwMzAyMDc5N0MyMDZFNEVBCis6NDAwNTQ2MDBGNTE4NzRDMDI1MThGNTgyRTQzNDdCRjU4M0UwRkZFNTE4N0MwMDdCMDE3QTdFNzkyMDI0MjBGOUVDMzQ3RUZBRUYxMjBFRTAwNTE4RTUxOEI0MjBENzkwN0UyMEUwNjA2ODkwN0UyM0UwNjAyNDdGMDFFNEZEMTIxMjA5N0YwMzBDCis6NDAwNTg2MDA3RENEMTIxMjA5NDM0NzgwOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwRTQ5MDdFMzNGMDgwMzA5MDdFMjFFMEZGMTIxMTI3OTA3RTIyRTBGRjEyMTE0RDdGMDE5MDdFMzFFMEZEMTIxMjA5N0YwMzdEMDcxMjEyMDk0MzQ3ODA5MEZGCis6NDAwNUM2MDA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3Rjk4NzQwQUYwRTU0MTQ0MDY5MEMwMDBGMDkwN0UyM0UwNzAwNjkwN0UzM0UwNzAwOEU0OTA3RTMzRjA3NTJFRkY5MDdFMjVFMDYwMTJBM0UwNTQzRkY1NDU5MDdGOTg3NDBCRjA5MEVCCis6NDAwNjA2MDBDMDAwRTU0NUYwOTA3RTI3RTA2MDJCQTNFMDYwMDU0MzQzODA4MDAzNTM0MzdGNTM0M0ZDOTA3RTI5RTA2MDExNDM0MzAyQTNFMEZGMTIxMTczOTA3RTJCRTBGRjEyMTE5OUFGNDMxMjExMDE5MDdFMjNFMDYwMDg1MzQzN0ZBRkQzCis6NDAwNjQ2MDA0MzEyMTEwMTkwN0UyQ0UwNjAxOEEzRTA2MDA1NDM0NzAyODAwMzUzNDdGRDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UyRUUwNjAxOEEzRTA2MDA1NDM0NzAxODAwMzUzNDdGRTkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEM1Cis6NDAwNjg2MDA5MDdFMzJFMEY1M0JBM0UwMTM5MjBFQTNFMEY1M0RBM0UwNjAwNTQzNDcxMDgwMDM1MzQ3RUY5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMzZFMDYwMzI1MzQ1QkY5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3Rjc5Cis6NDAwNkM2MDA5ODc0MDlGMDEyMTM1N0VGNTRGRTkwQzAwMEYwNTMzRkZERTRGRkFEM0YxMjEyMDlFNEY1MzNGNTMyRDIwODkwN0UzN0UwNjAwRjQzM0YwMkU0RkZBRDNGMTIxMjA5NzUzMjAxRDIwODkwN0UzOEUwNjAxMDkwN0Y5ODc0MEFGMDE5Cis6NDAwNzA2MDBFNTQxNDQwNDkwQzAwMEYwRDIwMDkwN0UzOUUwNjAxMTQzNDU0MDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdFM0FFMDYwMEY1MzNGRkVFNEZGQUQzRjEyMTIwOTc1MzQwMUQyMDg5MDdFM0JFMDYwMEY0MzNGMDFFNERBCis6NDAwNzQ2MDBGRkFEM0YxMjEyMDlFNEY1MzREMjA4OTA3RTNDRTA2MDBFOTA3Rjk4NzQwQUYwRTU0MTQ0MDI5MEMwMDBGMDkwN0UzREUwNjAwMkQyMEM5MDdFM0VFMDYwMDg3NTM1MDFFNEY1MzlEMjA4OTA3RTNGRTA2MDExOTA3RkQ3NzQxMzdBCis6NDAwNzg2MDBGMDc0MzNGMDc0MTZGMDc0MzZGMEQyMDRFNDkwN0ZEMUYwMzAxQTUyRTUzOTYwMDIxNTM5MzAxMzQ5RTUxM0QzOTQwMDQwMDQxNTEzODAzRTc1MTMwQTMwMUIwMkMyMTMxMjEzNTdFRjU0MDFGNTE5NjUzMzYwMDU4NTE5MzNEMjZECis6NDAwN0M2MDAwODEyMTM5M0VGNTQ4MEY1MTk2NTJGNjAwNTg1MTkyRkQyMDgzMDBFMTExMjEzOTNFRjU0MTBGNTE5NjUyRTYwMDU4NTE5MkVEMjA4MzAxQTJBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MTU5MDdCNDJFMEY1MTY5MDFECis6NDAwODA2MDA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDkwN0ZDMkUwMzBFMTAzMDIwOTIwRTUwQTcwNDAzMDA3MzlFNTM4NzAzNUMyMDdGNTE4N0UwMDdCMDA3NDI0MjUxOEY5RUUzNDAwRkExMjBFOUFGRjc0ODAyNUFGCis6NDAwODQ2MDAxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzODEwRTRGNTJDNzUwQTAxMjJFNTBBNjQwMTcwNDAzMDA4MzlFNTM5NzAzNUMyMDhGNTE4N0UwMDdCMDA3NDJEMjUxOEY5RUUzNDAwRkExMjk3Cis6NDAwODg2MDAwRTlBRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzOTEwRTRGNTM1NzUwQTAyMjJFNTBBNjQwMjcwMzYzMDE0MkZDMjE0RjUxODdFMDA3QjAwNzQwRTI1MThGOUVFMzQwMDc1Cis6NDAwOEM2MDBGQTEyMEU5QUZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDVEQjkwN0ZDMzc0MDVGMDc1MEEwMzIyRTUxNTYwMzAxNTE1RTRGNTE4N0UwMDdCMDA3NDE0MjUxOEY5RUUzNDAwRkExMjBFOUFGRjc0ODAyNUQ2Cis6NDAwOTA2MDAxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwM0RCOTA3RkMzNzQwM0YwRTRGNTBBMjI5MDdGRTlFMDEyMEVGMjBBMDgwMDBBN0MwMTBBRTgwMzA5NDQwNjA5RkIwODA5RjUwOTA5REQwQTA5RUMwQjAwMDAwQjM3OTA3RjJGCis6NDAwOTQ2MDBFQkUwMjRGRTYwMTkxNDYwNjEyNDAyNjAwMzAyMDlEMzc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMEIzRTkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyN0I3NTgzMTlGMDc1ODI3NDc1ODMxOUIyCis6NDAwOTg2MDBGMDc1ODI2Njc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA3NDE5OTA3RkQ0RjA3NDEyOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMEZGMTIwRjE4RUE0OTYwMERFQTkwN0ZENEYwRTk5MDdGRDVGMDc3Cis6NDAwOUM2MDAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RjAwRTUwOUYwOTA3RkI1NzQwMUYwMDIwQjNFOTA3RkVBRTBGNTA5MDIwQjNFMTIwQjQ2MDIwQjNFOTA3RjAwNzQwMUYwOTA3RkI1RjAwMjA1Cis6NDAwQTA2MDAwQjNFOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIxMEU0MzNGRjI1RTBGRkEyMTZFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRUU0OTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwQjNFOTA3RjA0Cis6NDAwQTQ2MDBFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGRThFMDI0RkU2MDFEMjQwMjBGCis6NDAwQTg2MDA2MDAzMDIwQjNFOTA3RkVBRTBCNDAxMDVDMjEwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkI2Cis6NDAwQUM2MDBFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQwMTA0RDIxMDgwM0Y5MDdGQjRFMDQ0MDFGMDQ5Cis6NDAwQjA2MDA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkQ0Cis6NDAwQjQ2MDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMDkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MThGMEU0RjU4RTkwN0ZERjc0RkZGMDkwN0ZERUYwRTRGNTI0NzUxODAxN0IwMDc0MjQyNTE4RjlFNDM0MDBGQThCCis6NDAwQjg2MDBFNDEyMEVFMDA1MThFNTE4QjQwOUVBNzUzQTAxRTRGNTM4RjUxM0Y1MzZDMjA3QzIwQkMyMDVDMjAwQzIwOUMyMTM5MDdGOTg3NDEzRjA3NTQ0MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTFCRjdGMTA4RjQyMTIxMDhGOTA3RkQ4Cis6NDAwQkM2MDA5ODc0MTJGMDdGMDE4RjQwRUY0NDA2OTBDMDAwRjA5MDdGOTg3NDE0RjA3NTQ2ODA5MEMwMDA3NDgwRjAwRkU0RkQxMjExQkZFNEZGN0VBM0FEMDY4RDNFMTIxMUJGOTA3Rjk4NzQxMUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMTcyCis6NDAwQzA2MDBCRjdGMDExMjEyNzg3RjAzN0QwNzEyMTFCRjdGMTM3RDAxMTIxMUJGMjAxQjAzMDIwQ0M1NzUyRDAxNzUxODAxN0IwMDc0MkQyNTE4RjlFNDM0MDBGQUU0MTIwRUUwMDUxOEU1MThCNDA5RUE3NTNCMDFFNEY1MzlGNTEzRjUzN0I3Cis6NDAwQzQ2MDBDMjA4QzIwQ0MyMDZDMjAwQzIwQUMyMTM5MDdGOTg3NDBCRjA3NTQ1MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTIwOTdGMTA4RjQzMTIxMTAxOTA3Rjk4NzQwQUYwN0YwMThGNDFFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MENGMDBFCis6NDAwQzg2MDA3NTQ3ODA5MEMwMDA3NDgwRjAwRkU0RkQxMjEyMDlFNEZGN0VBM0FEMDY4RDNGMTIxMjA5OTA3Rjk4NzQwOUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMjA5N0YwMTEyMTI5OTdGMDM3RDA3MTIxMjA5N0YxMzdEMDExMjEyMDlEMjhECis6NDAwQ0M2MDAxMjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTY4Cis6NDAwRDA2MDA4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTc3Cis6NDAwRDQ2MDA4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkQyMTk5MDdGOTJFMDQ0MDJGMDBBCis6NDAwRDg2MDA5MDdGQUVFMEZGRDM5MjEwRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGRDIxQTU2Cis6NDAwREM2MDAxMjEyNTNDMjExRTRGNTBCRjUxM0MyMTdDMjEyOTA3RkExMDRGMDkwN0ZEOEUwNjUxNzYwMTAzMDEyMDVEMjFBMTIwMDQ2OTA3RkQ4RTBGNTE3ODAwODMwMTIwNUMyMUExMjAwNDYzMDExMDdDMjExMTIwOTIxODBENjMwMThEMzhBCis6NDAwRTA2MDBDMjE4MTIxMzlGODBDQzIyNzg3RkU0RjZEOEZENzU4MTQ3MDIwRTU1MDIwRDdERTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDMxCis6NDAwRTQ2MDAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDEyQkFFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDODI4Cis6NDAwRTg2MDBDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTQ4Cis6NDAwRUM2MDA4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMURFCis6NDAwRjA2MDA5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREY4RjE4RTRGNTE5NzUxQUZGNzUxQjE5NzUxQzg2QUIxQUFBMUJBOTFDOTAwMDAxMTIwRUIzQjQwMzFEQUYxOTA1MTlFRkI1MTgwMTIyMTIwRTlBN0UwMDI5RkZFRUI2Cis6NDAwRjQ2MDAzQUE5MDc3NTFBRkZGNTFCODkxQzgwRDQ3QjAwN0EwMDc5MDAyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjAwMzYwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDdCCis6NDAwRjg2MDAwQTEyMTMzMzhGMUFFRjQyMzY4MENBMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIxMzRCMDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTM4NzhGMUFFRkY4Cis6NDAwRkM2MDA0MjM3ODBDQTIyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxMTIzCis6NDAxMDA2MDA1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODMzCis6NDAxMDQ2MDA3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEMwCis6NDAxMDg2MDBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEIzCis6NDAxMEM2MDBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkNDCis6NDAxMTA2MDBGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEFGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA4RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTgyCis6NDAxMTQ2MDA1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MDlGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBDRjA5MEMzCis6NDAxMTg2MDBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEVGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNUNDCis6NDAxMUM2MDA0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjEzMUI4RjFBMTIxMzFCOEYxQkU1MUE2NTFCNjAxMjEyMTMxQjhGMUFFNTFBNjUxQjYwMDcxMjEzMUI4RjFCODBFOEVECis6NDAxMjA2MDBBRjFBMjI5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3Rjk4NzQwRkYwOTBDMDAwRUZGMDkwN0Y5ODc0MERGMDkwQzAwMEVERjAyMjEyMTM2RjhGMUExMjEzNkY4RjFCRTUxQTY1MUI2MDEyMTIxMzZGOEYxQUU1MUE2NUFECis6NDAxMjQ2MDAxQjYwMDcxMjEzNkY4RjFCODBFOEFGMUEyMjkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxMkQ2OTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyQUUwN0U0RkZFNTNFNTQ3RkZEMTIxMUJGOTA3RjJGCis6NDAxMjg2MDA5ODc0MTFGMDkwQzAwMEVFRjBFNEU1M0U0NDgwRkQxMjExQkYyMkFFMDdFNEZGRTUzRjU0N0ZGRDEyMTIwOTkwN0Y5ODc0MDlGMDkwQzAwMEVFRjBFNEU1M0Y0NDgwRkQxMjEyMDkyMjA1MEUwMjAwMDAwMDAwMDMxNDAzMDAwMERGCis6NDAxMkM2MDBDMTExQzExOEMxOTVDMTEwQzExNjAxMEEwMEMxOUIwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDUxMjBENUM4MEVFMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMDAwMDAyMEZGNTAwMDIxMzY3Cis6NDAxMzA2MDAwNDAwMDIwRkNCMDAwMjEwMUM5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEzRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE0RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE1RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE2RjA5MDJBCis6NDAxMzQ2MDBDMDAwRTBGRjIyOTA3Rjk4NzQwOEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQ0YwOTBDMDAwRTBGRkNBCis6NDAxMzg2MDAyMjkwN0Y5ODc0MERGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEVGMDkwQzAwMEUwRkYyMjEyMDAwMzEyMEQ2RDEyMEI0NjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6NDAxM0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6NDAxNDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6NDAxNDQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6NDAxNDg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6NDAxNEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6NDAxNTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6NDAxNTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6NDAxNTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6NDAxNUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6NDAxNjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6NDAxNjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6NDAxNjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6NDAxNkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6NDAxNzA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6NDAxNzQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6NDAxNzg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6NDAxN0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6NDAxODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6NDAxODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6NDAxODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6NDAxOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMEJGCis6NDAxOTA2MDAwMDQwQ0QwNjE1MDEwMDAwMDEwMjAwMDIwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDcxCis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUYzCis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAzNjAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTMwMDQyMDAyMDAwNTMwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDQxMDA2NDAwNjEwMDcwMDA3NDAwNjUwMEY5Cis6MDQxQTA2MDA3MjAwMDAwMDZBCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGIuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhiLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2NiNzA4Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhiLkhFWApAQCAtMCwwICsxLDE0MiBAQAorOjAzMDAzMzAwMDIwMDJEOUIKKzowNDAwMkQwMDUzRDhFRjMyODMKKzoxMDAwNDYwMDMwMDkxODEyMTMzM0VGQzM5NTNDNDAwMzAyMDBEODkwRDEKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjA5QzIwMDgwNzczMDAzM0I5MDdGRjYKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjEzMzNFRkMzOTQ0MDUwNjQ5MDdFRDYKKzoxMDAwNzYwMDQwRTAxMzkyMDk5MDdGQzdFMDE0RjUxOTIwMDAxMTYwNDMKKzoxMDAwODYwMDBGRjUwODdFN0U3RjQxNzUwQzdFNzUwRDQxMTIwQ0NDRjYKKzoxMDAwOTYwMEMyMDNFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyNDgKKzoxMDAwQTYwMDEyMTMzM0VGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjA5OTgKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEQzgKKzoxMDAwQzYwMDdGQzE3NTBDN0Q3NTBEQzExMjBDQ0NEMjAzRTQ5MDdGRjcKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE2MDEyMTFGNThGOUUKKzoxMDAwRTYwMDE5MTIxMzNGOEYzNkU1MTlDMzk1M0E1MDBGMTIxMzFCOTkKKzoxMDAwRjYwMEVGMzBFMDA4RTUzNjIwRTcwMzMwMEI1RUMyMEJFNTE5NkEKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjEzMDBBNQorOjEwMDAwMzAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA2RQorOjEwMDAxMzAwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDBBQgorOjBBMDAyMzAwODREMDg1RDA4MkQwODNEMEUwMzI3MworOjAzMDAwMDAwMDIwRTEyREIKKzo0MDAxMDYwMDYwNThCNDgwMDM0MzM2MDJFNTM2MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdFN0Y4MDc1MEM3RTc1MEQ4MEFGMzYxMjBGNURFNTE5MjVFMDkwN0ZCN0YwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4QzIKKzo0MDAxNDYwMDkwN0U4MEU1MzZGMDdFN0U3RjgxNzUwQzdFNzUwRDgxMTIwQ0YxRTUxOTA0OTA3RkI3RjA5MDdGQ0VFMDMwRTEwNjIwMDUwMzAyMDNDMUU0RjUxODc0NDAyNTE4RjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5QUYKKzo0MDAxODYwMDAwMjQwMEY5RUMzNDdFRkFFRjEyMEVFNDA1MThFNTE4QjQyMEQ3OTA3RTAwRTA2MDY4OTA3RTAzRTA2MDI0N0YwMUU0RkQxMjExRDA3RjAzN0RDRDEyMTFEMDQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMEU0OTA3RTEzRjYKKzo0MDAxQzYwMEYwODAzMDkwN0UwMUUwRkYxMjEwNTQ5MDdFMDJFMEZGMTIxMDdBN0YwMTkwN0UxMUUwRkQxMjExRDA3RjAzN0QwNzEyMTFEMDQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0Y5ODc0MTJGMEU1NDA0NDA2OTBDMDAwOTMKKzo0MDAyMDYwMEYwOTA3RTAzRTA3MDA2OTA3RTEzRTA3MDA4RTQ5MDdFMTNGMDc1MjVGRjkwN0UwNUUwNjAxMkEzRTA1NDNGRjU0NDkwN0Y5ODc0MTNGMDkwQzAwMEU1NDRGMDkwN0UwN0UwNjAyQkEzRTA2MDA1NDM0MjgwODAwMzUzNDI3RjUzQzgKKzo0MDAyNDYwMDQyRkM5MDdFMDlFMDYwMTE0MzQyMDJBM0UwRkYxMjEwQzY5MDdFMEJFMEZGMTIxMEVDQUY0MjEyMTBBMDkwN0UwM0UwNjAwODUzNDI3RkFGNDIxMjEwQTA5MDdFMENFMDYwMThBM0UwNjAwNTQzNDYwMjgwMDM1MzQ2RkQ5MDdGRkIKKzo0MDAyODYwMDk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzQ2MDE4MDAzNTM0NkZFOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTEyRTBGNTNBQTNFMDEzOTIwREEzRTBGNTNDQTNFMDYwMDU0MzQ2MTA4MDAzMTcKKzo0MDAyQzYwMDUzNDZFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxNkUwNjAzMjUzNDRCRjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjEzMEZFRjU0RkU5MEMwMDBGMDUzM0VGREU0RkZBRDNFMTIxMUQwODAKKzo0MDAzMDYwMEU0RjUyQUY1MjlEMjA3OTA3RTE3RTA2MDBGNDMzRTAyRTRGRkFEM0UxMjExRDA3NTI5MDFEMjA3OTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTU0MDQ0MDQ5MEMwMDBGMEQyMDA5MDdFMTlFMDYwMTE0MzQ0NDA5MDdGOTg3NDEzMEUKKzo0MDAzNDYwMEYwRTU0NDU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzM0VGRUU0RkZBRDNFMTIxMUQwNzUyQjAxRDIwNzkwN0UxQkUwNjAwRjQzM0UwMUU0RkZBRDNFMTIxMUQwRTRGNTJCRDIwNzkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTJGMEU1RjgKKzo0MDAzODYwMDQwNDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIwQjkwN0UxRUUwNjAwODc1MkMwMUU0RjUzOEQyMDc5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjAzQzIwNUU0OTA3RkNGRjAzMDFBNTRFNTM4OUUKKzo0MDAzQzYwMDYwMDIxNTM4MjAxMzRCRTUxM0QzOTQwMDQwMDQxNTEzODA0MDc1MTMwQTMwMUIwMkQyMTMxMjEzMEZFRjU0MDFGNTE5NjUyQTYwMDU4NTE5MkFEMjA3MTIxMzRCRUY1NDgwNjQ4MEY1MTk2NTI2NjAwNTg1MTkyNkQyMDczMDBENzEKKzo0MDA0MDYwMDExMTIxMzRCRUY1NDEwRjUxOTY1MjU2MDA1ODUxOTI1RDIwNzIwMUIwMzAyMDdGMDMwMEExODEyMTM4N0VGQzM5NTNENDAwMzAyMDRCMDkwN0ZDMTc0MDFGMEMyMEFDMjAwODA3NzMwMDQzQjkwN0ZDQUUwMjBFMTZEMTIxMzg3OUIKKzo0MDA0NDYwMEVGQzM5NDQwNTA2NDkwN0Q0MEUwMTM5MjBBOTA3RkNCRTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0Q3RjQxNzUwQzdENzUwRDQxMTIwRDE2QzIwNEU0OTA3RkNCRjA4MDM5OTA3RkNDRTAyMEUxMzIxMjEzODdFRkMzOTQ0MDUwOTkKKzo0MDA0ODYwMDI5OTA3Q0MwRTAxMzkyMEE5MDdGQ0RFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3QzdGQzE3NTBDN0M3NTBEQzExMjBEMTZEMjA0RTQ5MDdGQ0RGMDkwN0ZCQUUwMzBFMTAzMDIwNTM4MTIxMjNGOEYxOTEyMTM5MzhGMzdFNTE5N0YKKzo0MDA0QzYwMEMzOTUzQjUwMEYxMjEzNkZFRjMwRTAwOEU1MzcyMEU3MDMzMDBDNUVDMjBDRTUxOTYwNThCNDgwMDM0MzM3MDJFNTM3MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdEN0Y4MDc1MEM3RDc1MEQ4MEFGMzcxMjBGRkMKKzo0MDA1MDYwMDk2RTUxOTI1RTA5MDdGQkJGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwODkwN0Q4MEU1MzdGMDdFN0Q3RjgxNzUwQzdENzUwRDgxMTIwRDNCRTUxOTA0OTA3RkJCRjA5MDdGRDBFMDMwRTEwNjIwMDYwMzAyMDc5OUU0MzEKKzo0MDA1NDYwMEY1MTg3NEMwMjUxOEY1ODJFNDM0N0JGNTgzRTBGRkU1MTg3QzAwN0IwMTdBN0U3OTIwMjQyMEY5RUMzNDdFRkFFRjEyMEVFNDA1MThFNTE4QjQyMEQ3OTA3RTIwRTA2MDY4OTA3RTIzRTA2MDI0N0YwMUU0RkQxMjEyMUE3RjAzRjcKKzo0MDA1ODYwMDdEQ0QxMjEyMUE0MzQ3ODA5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBFNDkwN0UzM0YwODAzMDkwN0UyMUUwRkYxMjExMzg5MDdFMjJFMEZGMTIxMTVFN0YwMTkwN0UzMUUwRkQxMjEyMUE3RjAzN0QwNzEyMTIxQTQzNDc4MDkwQUEKKzo0MDA1QzYwMDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdGOTg3NDBBRjBFNTQxNDQwNjkwQzAwMEYwOTA3RTIzRTA3MDA2OTA3RTMzRTA3MDA4RTQ5MDdFMzNGMDc1MkVGRjkwN0UyNUUwNjAxMkEzRTA1NDNGRjU0NTkwN0Y5ODc0MEJGMDkwRUIKKzo0MDA2MDYwMEMwMDBFNTQ1RjA5MDdFMjdFMDYwMkJBM0UwNjAwNTQzNDM4MDgwMDM1MzQzN0Y1MzQzRkM5MDdFMjlFMDYwMTE0MzQzMDJBM0UwRkYxMjExODQ5MDdFMkJFMEZGMTIxMUFBQUY0MzEyMTExMjkwN0UyM0UwNjAwODUzNDM3RkFGQTAKKzo0MDA2NDYwMDQzMTIxMTEyOTA3RTJDRTA2MDE4QTNFMDYwMDU0MzQ3MDI4MDAzNTM0N0ZEOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTJFRTA2MDE4QTNFMDYwMDU0MzQ3MDE4MDAzNTM0N0ZFOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwQjQKKzo0MDA2ODYwMDkwN0UzMkUwRjUzQkEzRTAxMzkyMEVBM0UwRjUzREEzRTA2MDA1NDM0NzEwODAwMzUzNDdFRjkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UzNkUwNjAzMjUzNDVCRjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGNzkKKzo0MDA2QzYwMDk4NzQwOUYwMTIxMzYzRUY1NEZFOTBDMDAwRjA1MzNGRkRFNEZGQUQzRjEyMTIxQUU0RjUzM0Y1MzJEMjA4OTA3RTM3RTA2MDBGNDMzRjAyRTRGRkFEM0YxMjEyMUE3NTMyMDFEMjA4OTA3RTM4RTA2MDEwOTA3Rjk4NzQwQUYwRUIKKzo0MDA3MDYwMEU1NDE0NDA0OTBDMDAwRjBEMjAwOTA3RTM5RTA2MDExNDM0NTQwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0UzQUUwNjAwRjUzM0ZGRUU0RkZBRDNGMTIxMjFBNzUzNDAxRDIwODkwN0UzQkUwNjAwRjQzM0YwMUU0QzkKKzo0MDA3NDYwMEZGQUQzRjEyMTIxQUU0RjUzNEQyMDg5MDdFM0NFMDYwMEU5MDdGOTg3NDBBRjBFNTQxNDQwMjkwQzAwMEYwOTA3RTNERTA2MDAyRDIwQzkwN0UzRUUwNjAwODc1MzUwMUU0RjUzOUQyMDg5MDdFM0ZFMDYwMTE5MDdGRDc3NDEzNjkKKzo0MDA3ODYwMEYwNzQzM0YwNzQxNkYwNzQzNkYwRDIwNEMyMDZFNDkwN0ZEMUYwMzAxQTU0RTUzOTYwMDIxNTM5MzAxMzRCRTUxM0QzOTQwMDQwMDQxNTEzODA0MDc1MTMwQTMwMUIwMkMyMTMxMjEzNjNFRjU0MDFGNTE5NjUzMzYwMDU4NTE5OTgKKzo0MDA3QzYwMDMzRDIwODEyMTM5RkVGNTQ4MDY0ODBGNTE5NjUyRjYwMDU4NTE5MkZEMjA4MzAwRTExMTIxMzlGRUY1NDEwRjUxOTY1MkU2MDA1ODUxOTJFRDIwODMwMUEyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTE1OTA3QjQyOTcKKzo0MDA4MDYwMEUwRjUxNjkwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDkyNEU1MEE3MDQwMzAwNzM5RTUzODcwMzVDMjA3RjUxODdFMDA3QjAwNzQyNDI1MThGOUVFMzQwMEZBMTIwRTlFNDQKKzo0MDA4NDYwMEZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzgxMEU0RjUyQzc1MEEwMTIyRTUwQTY0MDE3MDQwMzAwODM5RTUzOTcwMzVDMjA4RjUxODdFMDA3QjAwNzQyRDI1MThGOUVFQkYKKzo0MDA4ODYwMDM0MDBGQTEyMEU5RUZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzkxMEU0RjUzNTc1MEEwMjIyRTUwQTY0MDI3MDM2MzAxNDJGQzIxNEY1MTg3RTAwN0IwMDc0MEUyNTE4NEMKKzo0MDA4QzYwMEY5RUUzNDAwRkExMjBFOUVGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA1REI5MDdGQzM3NDA1RjA3NTBBMDMyMkU1MTU2MDMwMTUxNUU0RjUxODdFMDA3QjAwNzQxNDI1MThGOUVFMzQwMEZBMTIwRTlFQ0IKKzo0MDA5MDYwMEZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUwQTIyOTA3RkU5RTAxMjBFRjYwQTBDMDAwQTgwMDEwQUVDMDMwOTQ4MDYwOUZGMDgwOUY5MDkwOUUxMEEwOUYwMEIwMDAwNDQKKzo0MDA5NDYwMDBCM0I5MDdGRUJFMDI0RkU2MDE5MTQ2MDYxMjQwMjYwMDMwMjA5RDc3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjBCNDI5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjdCNzU4MzE5RjA3NTgyREEKKzo0MDA5ODYwMDc0NzU4MzE5RjA3NTgyNjY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwQjQyOTA3RkVBRTBGRjEyMEYxQ0VBNDk2MDBERUE5MDdGRDRGMEU5QkUKKzo0MDA5QzYwMDkwN0ZENUYwMDIwQjQyOTA3RkI0RTA0NDAxRjAwMjBCNDI5MDdGQjRFMDQ0MDFGMDAyMEI0MjkwN0YwMEU1MDlGMDkwN0ZCNTc0MDFGMDAyMEI0MjkwN0ZFQUUwRjUwOTAyMEI0MjEyMEI0QTAyMEI0MjkwN0YwMDc0MDFGMDkwM0IKKzo0MDBBMDYwMDdGQjVGMDAyMEI0MjkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTBFNDMzRkYyNUUwRkZBMjE2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCNDJFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMkUKKzo0MDBBNDYwMDBCNDI5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEI0MjkwN0ZCNEUwNDQwMUYwMDIwQjQyOTA3RkU4RTAyNEZFNEUKKzo0MDBBODYwMDYwMUQyNDAyNjAwMzAyMEI0MjkwN0ZFQUUwQjQwMTA1QzIxMDAyMEI0MjkwN0ZCNEUwNDQwMUYwMDIwQjQyOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRUEKKzo0MDBBQzYwMEU0RjA5MDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTA4MDNGOTA3RkI0N0IKKzo0MDBCMDYwMEUwNDQwMUYwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwMTcKKzo0MDBCNDYwMDQ0MDJGMDIyRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDE4RjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUyNDc1MTgwMTdCMDA3NDI0MjUxOEY5NDUKKzo0MDBCODYwMEU0MzQwMEZBRTQxMjBFRTQwNTE4RTUxOEI0MDlFQTc1M0EwMUU0RjUzOEY1MTNGNTM2QzIwN0MyMEJDMjA1QzIwMEMyMDlDMjEzOTA3Rjk4NzQxM0YwNzU0NDAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExRDA3RjEwOEY0MjEyNUYKKzo0MDBCQzYwMDEwQTA5MDdGOTg3NDEyRjA3RjAxOEY0MEVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQxNEYwNzU0NjgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMUQwRTRGRjdFQTNBRDA2OEQzRTEyMTFEMDkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1QjAKKzo0MDBDMDYwMDdEN0YxMjExRDA3RjAxMTIxMjg5N0YwMzdEMDcxMjExRDA3RjEzN0QwOTEyMTFEMDIwMUIwMzAyMENDOTc1MkQwMTc1MTgwMTdCMDA3NDJEMjUxOEY5RTQzNDAwRkFFNDEyMEVFNDA1MThFNTE4QjQwOUVBNzUzQjAxRTRGNTM5NzgKKzo0MDBDNDYwMEY1MTNGNTM3QzIwOEMyMENDMjA2QzIwMEMyMEFDMjEzOTA3Rjk4NzQwQkYwNzU0NTAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjEyMUE3RjEwOEY0MzEyMTExMjkwN0Y5ODc0MEFGMDdGMDE4RjQxRUY0NDA2OTBDMDAwRjA5MDdGQzAKKzo0MDBDODYwMDk4NzQwQ0YwNzU0NzgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMjFBRTRGRjdFQTNBRDA2OEQzRjEyMTIxQTkwN0Y5ODc0MDlGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTIxQTdGMDExMjEyQUE3RjAzN0QwNzEyMTIxQTdGMTM3RDA5MjcKKzo0MDBDQzYwMDEyMTIxQUQyMTIyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwRkQKKzo0MDBEMDYwMEMwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyOTA3Rjk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1M0EKKzo0MDBENDYwMDgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJEMjE5OTA3RjkyQjgKKzo0MDBEODYwMEUwNDQwMkYwOTA3RkFFRTBGRkQzOTIxMEU0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwQUQKKzo0MDBEQzYwMEQyQUZEMjFBMTIxMjY0QzIxMUU0RjUwQkY1MTNDMjE3QzIxMjkwN0ZBMTA0RjA5MDdGRDhFMDY1MTc2MDEwMzAxMjA1RDIxQTEyMDA0NjkwN0ZEOEUwRjUxNzgwMDgzMDEyMDVDMjFBMTIwMDQ2MzAxMTA3QzIxMTEyMDkyNTgwRjkKKzo0MDBFMDYwMEQ2MzAxOEQzQzIxODEyMTNBQjgwQ0MyMjc4N0ZFNEY2RDhGRDc1ODE0NzAyMEU1OTAyMEQ4MUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwRkEKKzo0MDBFNDYwMDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAxMkNCRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzMjAKKzo0MDBFODYwMEM4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyRDUKKzo0MDBFQzYwMDUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzN0EKKzo0MDBGMDYwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGOEYxOEU0RjUxOTc1MUFGRjc1MUIxOTc1MUM4NkFCMUFBQTFCQTkxQzkwMDAwMTEyMEVCN0I0MDMxREFGMTkwNTE5RUZCNTE4MDEyMjEyMEU5RTdFQzQKKzo0MDBGNDYwMDAwMjlGRkVFM0FBOTA3NzUxQUZGRjUxQjg5MUM4MEQ0N0IwMDdBMDA3OTAwMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIwMDM2MDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1QkEKKzo0MDBGODYwMDA4RTUwODYwMEExMjEzM0Y4RjFBRUY0MjM2ODBDQTIyOEYxQTA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMTM1NzA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwMEExMjEzQUEKKzo0MDBGQzYwMDkzOEYxQUVGNDIzNzgwQ0EyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwOTA3Rjk1RjA5MDdGOUU3NDI3RjA5MDdGOTg3NDIwRjA5MDdGOUU3NDA3RjBFNDkwN0Y5NEYwOTA3RjlENzRGRkYwRTQ5MDdGOTdGMDIyN0MKKzo0MDEwMDYwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTE1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4N0UKKzo0MDEwNDYwMEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwMEMKKzo0MDEwODYwMDkwN0Y5ODc0MTFGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyMEEKKzo0MDEwQzYwMDkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTRGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjA5MEMwMDBFRkYwOTA3Rjk4MDcKKzo0MDExMDYwMDc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEFGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGRkEKKzo0MDExNDYwMDk4NzQwOEYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MDlGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGNzEKKzo0MDExODYwMDk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQ0YwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEVGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRkQKKzo0MDExQzYwMEYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjEzMjc4RjFBMTIxMzI3OEYxQkU1MUE2NTFCNjAxMjEyOTIKKzo0MDEyMDYwMDEzMjc4RjFBRTUxQTY1MUI2MDA3MTIxMzI3OEYxQjgwRThBRjFBMjI5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3Rjk4NzQwRkYwOTBDMDAwRUZGMDkwN0Y5ODc0MERGMDkwQzAwMEVERjAyMjEyMTM3QjhGMUExMjEzMjUKKzo0MDEyNDYwMDdCOEYxQkU1MUE2NTFCNjAxMjEyMTM3QjhGMUFFNTFBNjUxQjYwMDcxMjEzN0I4RjFCODBFOEFGMUEyMjkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxMkU3OTA3RkQ2RTA1NEY3RjBFMDQ0RTEKKzo0MDEyODYwMDA0RjAyMkFFMDdFNEZGRTUzRTU0N0ZGRDEyMTFEMDkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1M0U0NDgwRkQxMjExRDAyMkFFMDdFNEZGRTUzRjU0N0ZGRDEyMTIxQTkwN0Y5ODc0MDlGMDkwQzAwMEVFRjBFNEU1M0Y0NDgwOTUKKzo0MDEyQzYwMEZEMTIxMjFBMjIwNTBFMDIwMDAwMDAwMDAzMTQwMzAwMDBDMTExQzExOEMxOTVDMTEwQzExNjAxMEEwMEMxOUIwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDUxMjBENjA4MEVFMjIwMDAwMDIxMDA2MDAwMjEzN0UKKzo0MDEzMDYwMDA0MDAwMjAwMDMwMDAyMTAyRDkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwRjUKKzo0MDEzNDYwMEMwMDBFMEZGMjI5MDdGOTg3NDE2RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDA4RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDA5RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBBRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBCRjA5MEMwMDBFMEZGQzAKKzo0MDEzODYwMDIyOTA3Rjk4NzQwQ0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwREYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwRUYwOTBDMDAwRTBGRjIyMTIwRkNGMTIwRDcxMTIwQjRBMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTAwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNzYKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDAwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjQKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTViM2QxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2E0OXcuSEVYCkBAIC0wLDAgKzEsMTQ1IEBACis6MDMwMDMzMDAwMjE4RkJCNQorOjBDMDAzNjAwOTA3ODQxNzQwMUYwOTBDMDAwRTBGRjIyQkYKKzoxMDAwNDYwMEU0RkY3NDQwMkZGNTgyRTQzNDdCRjU4M0UwRkVFNTE1OEEKKzoxMDAwNTYwMDI0MDRGREU0MzUxNEZBQTkwNTdCMDFFRjdDMDAyOUY5OTcKKzoxMDAwNjYwMEVDM0FGQUVFMTIxMUYxMEZCRjIyRDdFNTE1MjQwNUY1ODkKKzoxMDAwNzYwMDgyRTQzNTE0RjU4M0UwNzAwMzAyMDEzNEU1MTUyNDA5QTIKKzoxMDAwODYwMEY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MEFGNTgyNTEKKzoxMDAwOTYwMEU0MzUxNEY1ODNFMDYwMTg3RjAxRTRGRDEyMTY0N0U1QTgKKzoxMDAwQTYwMDE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NENGRjA4MDQxMTAKKzoxMDAwQjYwMEU1MTUyNDA2RjU4MkU0MzUxNEY1ODNFMEZGMTIxNjc2N0QKKzoxMDAwQzYwMEU1MTUyNDA3RjU4MkU0MzUxNEY1ODNFMEZGMTIwMDAzRjUKKzoxMDAwRDYwMDdGMDFFNTE1MjQwOEY1ODJFNDM1MTRGNTgzRTBGRDEyNjkKKzoxMDAwRTYwMDE2NDdFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDMwRUUKKzoxMDAwRjYwMEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQ4MEYwMDMKKzoxMDAwMDMwMDkwNzg0MTc0MDNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0MEQKKzoxMDAwMTMwMDAxRjA5MEMwMDBFRkYwOTA3ODQxNzQwM0YwRTUxNTI0RUYKKzoxMDAwMjMwMDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyNjUKKzowMzAwNDMwMDAyMUIwMDlECis6MDMwMDAwMDAwMjEwOTU1NgorOjQwMDEwNjAwOTA3ODQxNzQwNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjA5MDc4NDE3NDAyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTA0NDA2OTBDMDAwRjBFNTE1MjQwQkY1ODJFNDM1MTRGNTgzRTA2MDMyRTUxNTI0MEMwQgorOjQwMDE0NjAwRjU4MkU0MzUxNEY1ODNFMDU0M0ZGRkU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFRkYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQwREY1ODJFNDM1MTRGNTgzRTA3MDAzMDIwMjRGRTU4OAorOjQwMDE4NjAwMTUyNDE3RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDA0RjA4MDBGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGQkYwRTRGRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMEZEMTIxNjQ3RTU1RQorOjQwMDFDNjAwMTUyNDBFRjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA0NDgwRjA4MDBGRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNTQ3RkYwRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNTRGQ0YwRTUxNTI0MEZFQgorOjQwMDIwNjAwRjU4MkU0MzUxNEY1ODNFMDYwMkZFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA0NDAyRjBFNTE1MjQxMEY1ODJFNDM1MTRGNTgzRTBGRjEyMTVFN0U1MTUyNDExRjU4MkU0MzUxNEY1ODNFMEZGMTIxNjE3RTUxNTI0MzNGNTgyRTQ1RQorOjQwMDI0NjAwMzUxNEY1ODNFMEZGMTIxNUI3RTUxNTI0MTRGNTgyRTQzNTE0RjU4M0UwNjA0NEU1MTUyNDE1RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDAxRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU4MQorOjQwMDI4NjAwODNFMDU0RkVGMDkwNzg0MTc0MDRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MTJGNTgyRTQzNTE0RjU4M0UwNjA0NEU1MTUyNDEzRjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRFNgorOjQwMDJDNjAwRjU4M0UwNDQwMkYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDU0RkRGMDkwNzg0MTc0MDRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MTZGNTgyRTQzNTE0RjU4M0UwRkZFNTE1MjQzNUY1ODIwQQorOjQwMDMwNjAwRTQzNTE0RjU4M0VGRjBFNTE1MjQxN0Y1ODJFNDM1MTRGNTgzRTAzMEUwMTFFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDQwRjA4MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRCRkYwRTUxNTI0MThGNTgyRTQzNTE0RjU3NgorOjQwMDM0NjAwODNFMEZGRTUxNTI0M0JGNTgyRTQzNTE0RjU4M0VGRjBFNTE1MjQxOUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQxMEYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDU0RUZGMDkwNzg2OQorOjQwMDM4NjAwNDE3NDA0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDFBRjU4MkU0MzUxNEY1ODNFMDYwNkJFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NEJGRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGRgorOjQwMDNDNjAwRjU4M0UwNTQ3RjkwQzAwMEYwOTA3ODQxNzQwMUYwMTIwMDM2RUY1NEZFOTBDMDAwRjBFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZERkZGMEZERTRGRjEyMTY0N0U1MTUyNDJDRjU4MkU0MzUxNEY1ODNFNEYwRTUxNTI0MkJCNworOjQwMDQwNjAwRjU4MkU0MzUxNEY1ODNFNEYwRTUxNjQyMTNFNTE1MjQxQkY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyOEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDJGRkYwRkRFNEZGMTIxNjQ3RTU0NworOjQwMDQ0NjAwMTUyNDJCRjU4MkU0MzUxNEY1ODM3NDAxRjBFNTE2NDIxM0U1MTUyNDFDRjU4MkU0MzUxNEY1ODNFMEZGNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMkE5MDc4NDE3NDAyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTBDNgorOjQwMDQ4NjAwNDQwNDkwQzAwMEYwRUY2MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwNEYwRTUxNTI0MURGNTgyRTQzNTE0RjU4M0UwNjAyN0U1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDQ0NDBGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU1MAorOjQwMDRDNjAwODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjBFNTE1MjQxRUY1ODJFNDM1MTRGNTgzRTA2MDI4RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGRUZGRjBGREU0RkYxMjE2NDdFNTE1MjQyREY1ODJFNDM1MTRGNTgzNzQwMUYwRTU4RgorOjQwMDUwNjAwMTY0MjEzRTUxNTI0MUZGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMjdFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDAxRkZGMEZERTRGRjEyMTY0N0U1MTUyNDJERjU4MkU0MzUxNEY1ODM5NworOjQwMDU0NjAwRTRGMEU1MTY0MjEzRTUxNTI0MjBGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMTg5MDc4NDE3NDAyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTA0NDAyOTBDMDAwRjBFNTE1MjQyMUY1ODJBNworOjQwMDU4NjAwRTQzNTE0RjU4M0UwNjAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDJGMEU1MTUyNDIyRjU4MkU0MzUxNEY1ODNFMDYwMUZFNTE1MjQyRUY1ODJFNDM1MTRGNTgzNzQwMUYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0U0RjBGMAorOjQwMDVDNjAwRTUxNjQyMTNFNTE1MjQyM0Y1ODJFNDM1MTRGNTgzRTA2MDAzMTIxODg1RTUxNTI0MjRGNTgyRTQzNTE0RjU4M0UwNjAxQkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDhGMDkwN0Y5OEUwRkZFNTE2RjRGRUVGNUVGMEU1MTU2QworOjQwMDYwNjAwMjQyNUY1ODJFNDM1MTRGNTgzRTA2MDE2RTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRGN0YwOTA3Rjk4RTA0NTE2RjAyMjkwN0ZFOUUwMTIxMjAzMDc4MzAwMDdGNzAxMDg2MzAzMDY0QzA2MDc3NDA4MDc2ODA5MDc1MDBBMDdDRQorOjQwMDY0NjAwNUYwQjAwMDAwOEIyOTA3RkVCRTAyNEZFNjAxQzE0NzAwMzAyMDZGRTI0MDI2MDAzMDIwNzQ2NzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwOEI5OTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwOTA3RkVBRTAzMEUwMDQ3RjAzODAyRAorOjQwMDY4NjAwMDI3RjAyNzU4MjgyNzU4MzE5RUZGMDc1ODI2RDc1ODMxOUYwNzU4MjY2NzU4MzE5RjA3NTgyNUY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAzMEUxMDQ3RjY0ODAwMjdGMzI3NTgyMUE3NTgzMTlFRkYwOTA3RkVGRTBGQgorOjQwMDZDNjAwRkU5MDdGRUVFMDdDMDAyNDAwRjUxOUVDM0VGNTE4NzUzMzE5NzUzNDEyNzU4MjE0NzU4MzE5RTA3NTI3MDBGNTI4RDNFNTI4OTUxOUU1Mjc5NTE4NDAwNjg1MTgyNzg1MTkyODEyMTMxMjAyMDhCOTkwN0ZFQUUwRkYxMjE0MkJDOQorOjQwMDcwNjAwRUE0OTYwMzI5MDdGRUVFMDc1MTgwMEY1MTlBRTAyQUYwMThFMzM4RjM0OEY4MjhFODNFMEZFQTNFMDhFMjdGNTI4RDM5NTE5RTUyNzk1MTg0MDA2ODUxODI3ODUxOTI4MTIxMzEyMDIwOEI5OTA3RkI0RTA0NDAxRjAwMjA4Qjk5RQorOjQwMDc0NjAwOTA3RkI0RTA0NDAxRjAwMjA4Qjk5MDdGMDBFNTI1RjA5MDdGQjU3NDAxRjAwMjA4Qjk5MDdGRUFFMEY1MjUwMjA4Qjk5MDdGRUFFMEY1MjIxMjBBQjgwMjA4Qjk5MDdGMDBFNTIyRjA5MDdGQjU3NDAxRjAwMjA4Qjk5MDdGRThCRAorOjQwMDc4NjAwRTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIwMEU0MzNGRjI1RTBGRkEyMDZFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDhCOUU0OTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwOEI5OTA3RkVDRTBGNDU0ODA2MworOjQwMDdDNjAwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwOEI5OTA3RkI0RTA0NDAxRjAwMjA4Qjk5MDdGRThFMDI0RkU2MDFEMjQwMjYwMDMwMjA4QjkxMAorOjQwMDgwNjAwOTA3RkVBRTBCNDAxMDVDMjAwMDIwOEI5OTA3RkI0RTA0NDAxRjAwMjA4Qjk5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkY2NworOjQwMDg0NjAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQwMTA0RDIwMDgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MDdGRUFDQgorOjQwMDg4NjAwRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkU1MTE1NDBGNzAzRAorOjQwMDhDNjAwMDMwMjA5QjIxMjE2QTVFRjIwRTE3NTEyMTcwM0VGMTRGNTE5MTIxOENDRUYyNTE5RkZFNDMzRkVDM0VGOTQ4MEVFNjQ4MDk0ODA1MDU5ODUxNTgyODUxNDgzRTBGRUEzRTBGRkY1ODI4RTgzRTAzMEUwMTFFNTE1MjQzMUY1ODI1MAorOjQwMDkwNjAwRTQzNTE0RjU4M0UwNDQ4MEYwODAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0N0ZGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDIwRTIxMkU1MTk2MDBFRjUyM0VGMjQwMUY1MkRFNDNFRjUyQzEyMTRBREU0RkYxMjE0RTNDMAorOjQwMDk0NjAwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNzVEMTIxOENDRTUxNTI0M0JGNTgyRTQzNTE0RjU4M0UwRkVFRkMzOUU1MDQ4RTUxNTI0MkZGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0N0I5OQorOjQwMDk4NjAwRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTRGMEU1MTY0MjEzOTA3RkMyRTAzMEUxMTBFNTE1MjQyNkY1ODJFNDM1MTRGNTgzRTBGNTI0ODAwMzEyMTJBMTEyMTZENEVGMzBFMTAzMDIwQUI3MTIxN0QyOEYxOTEyMThEOEU1MTVENQorOjQwMDlDNjAwMjQzOEY1ODJFNDM1MTRGNTgzRUZGMEU1MTUyNDM1RjU4MkU0MzUxNEY1ODNFMEZGRTUxOUMzOUY1MDI4MTIxOEI0RUYzMEUwMjFFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTAyMEU3MTJFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTBDMAorOjQwMEEwNjAwMjBFMTAzMDIwQUI3RTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRGREYwRTUxOTcwMDMwMjBBQjdCNDgwMEZFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTA0NDAyRjBFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTBGRjMwRTcyOUU1MTlDRgorOjQwMEE0NjAwRDM5NDIwNDAwMzc1MTkyMDg1MTkyMzg1MTU4Mjg1MTQ4M0EzQTNFMEZDQTNFMDhDMkNGNTJEMTIxM0RERTUxOTI1RTBGRjEyMTUxOTIyRTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MjNFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTA1MworOjQwMEE4NjAwRkY4NTE1ODI4NTE0ODNBM0EzRTBGQ0EzRTBGNTgyOEM4M0VGRjA4NTE1ODI4NTE0ODNBM0EzRTBGRUEzRTAyNDAxRjUyREU0M0VGNTJDMTIxNDZDRTUxOTA0RkYxMjE1MTkyMkU0OTA3RjkzRjA5MDdGOUM3NEYwRjA5MDdGOTY3NworOjQwMEFDNjAwRjBFNDkwN0Y5NEYwOTA3ODRBMDRGMEY1OEU5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDFGRjA5MDc4NDM3NEZGRjBFNDkwNzg0MUYwOTA3RkRGNzQ5RkYwOTA3RkRFRjA5MDdGOTJFMDQ0MDJGMDdFN0I3RkMwNzU4MQorOjQwMEIwNjAwMTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMTEyMEYxMjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxRTUxNTI0MjZGNTgyRTQzNTE0RjU4M0U0RjA3RTdFN0Y0MDg1MTU4Mjg1MTQ4Mzc0N0VGMEEzNzRGNQorOjQwMEI0NjAwNDBGMDdFN0U3RjgwODUxNTgyODUxNDgzQTNBMzc0N0VGMEEzNzQ4MEYwN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDIxMjBGMTI3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMkU1MTUzNgorOjQwMEI4NjAwMjQyNkY1ODJFNDM1MTRGNTgzNzQwMUYwN0U3RDdGQzA4NTE1ODI4NTE0ODM3NDdERjBBMzc0QzBGMDdFN0U3RjAwODUxNTgyODUxNDgzQTNBMzc0N0VGMEEzNzQwMEYwN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjAxOAorOjQwMEJDNjAwNzUxNjA0MTIwRjEyN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjA3NTE2MDRFNTE1MjQyNkY1ODJFNDM1MTRGNTgzNzQwMkYwN0U3RDdGNDA4NTE1ODI4NTE0ODM3NDdERjBBMzc0NDBGMDdFN0Q3RjgwODUxNTgyODVEMworOjQwMEMwNjAwMTQ4M0EzQTM3NDdERjBBMzc0ODBGMDdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk2NzQ3RkYwNzUxNjA4MTIwRjEyN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTY3NDdGRjA3NTE2MDhFNTE1MjQyNkY1ODJFNDM1MTRGNTgzNzQxQworOjQwMEM0NjAwMDNGMDdFN0M3RkMwODUxNTgyODUxNDgzNzQ3Q0YwQTM3NEMwRjA3RTdEN0YwMDg1MTU4Mjg1MTQ4M0EzQTM3NDdERjBBMzc0MDBGMEMyMEFDMjA5RDIwMjIyRTUxMDA0NTQwM0Y1MTAxNDYwMUYxNDYwMzExNDYwNDMyNDAzNzAxQgorOjQwMEM4NjAwNTI3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMTgwM0Q3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMjgwMjg3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDc1MTYwNDgwMTM3RQorOjQwMENDNjAwN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTY3NDdGRjA3NTE2MDhFNTMyNTUxNjcwMDMwMjBFMTFFNTE2RjRGRjUyMzJFNTI2NTQ3RkZFNzAwRkU1MkE1NTE2NjAyNDkwN0Y5OEUwNDUxNkYwODAxQkJFMjAxOEU1MTUyNDMxRjU0MworOjQwMEQwNjAwODJFNDM1MTRGNTgzRTAzMEUzMDlFNEY1MkE5MDdGOThFMDVGRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTA2MDAzRTAxNEYwRTUxNTI0MzRGNTgyRTQzNTE0RjU4M0UwNjAwM0UwMTRGMEUwNjAwMzAyMEUxMTc0MEFGMDEyMDA5RAorOjQwMEQ0NjAwMzZFRjU0MDFGRkY1MTlFNTE1MjQyQ0Y1ODJFNDM1MTRGNTgzRTA2RjYwMDdFNTE5RjBFNTE2NDIxMzEyMThFNDhGMTlFNTE1MjQyN0Y1ODJFNDM1MTRGNTgzRTBGRkU1MTk1NDEwRkU2RjYwMDZFRUYwRTUxNjQyMTNFNTE1MjQxNQorOjQwMEQ4NjAwMjhGNTgyRTQzNTE0RjU4M0UwRkZFNTE5NTQ4MEZFNkY2MDA2RUVGMEU1MTY0MjEzRTUxNTI0MjlGNTgyRTQzNTE0RjU4M0UwRkZFNTE5NTQyMEZFNkY2MDE1RUVGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTQwNEU1MTY2NQorOjQwMERDNjAwNDIxM0U1MTI1NTE2RkZGNTE5RTUxNTI0MkFGNTgyRTQzNTE0RjU4M0UwNkY2MDE2RTUxOUYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNTA0RTUxNjQyMTNFNTE3NTUxNkZGRjUxOUU1MTUyNDMwRjU4MkU0MzUxNEY1ODM4MAorOjQwMEUwNjAwRTA2RjYwMDdFNTE5RjBFNTE2NDIxMzIyMzAwOTAzMDIwRjExRTUyNDE0NjAyQTE0NjA0MTE0NjA1ODE0NjA2RjI0MDQ2MDAzMDIwRUNGN0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDExMjEyQTE3NTI0MDE1QQorOjQwMEU0NjAwMjI3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMjEyMTJBMTc1MjQwMjIyN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjA3NTE2MDQxMjEyQTE3NTI0MDMyMjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA1MQorOjQwMEU4NjAwN0Y5Njc0N0ZGMDc1MTYwODEyMTJBMTc1MjQwNDIyMzAwNDMzQzIwNDUzMTNERkU0RjUxOTdFMDA3QjAwNzQyRTI1MTlGOUVFMzQwMEZBMTIxMUFCRkY3NDgwMjUxOUY1ODJFNDM0N0JGNTgzRUZGMDA1MTlFNTE5QjQwM0RCOTAyRAorOjQwMEVDNjAwN0ZDMzc0MDNGMDc1MjQwNTIyRTUzNjYwM0JENTM2MEE1MzEzRUYzMDBBMDREMjA5QzIwQUU0RjUxOTdFMDA3QjAwNzQzNTI1MTlGOUVFMzQwMEZBMTIxMUFCRkY3NDgwMjUxOUY1ODJFNDM0N0JGNTgzRUZGMDA1MTlFNTE5QjQ2NworOjQwMEYwNjAwMDNEQjkwN0ZDMzc0MDNGMEU0RjUyNDIyRTRGNTFBN0UwMDdCMDFFNTE1MjUxQUY5RUUzNTE0RkFFNDEyMTFGMTA1MUFFNTFBQjQzQ0U4RTUxNTI0MzVGNTgyRTQzNTE0RjU4Mzc0MDFGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU2OQorOjQwMEY0NjAwODJFNDM1MTRGNTgzNzQwM0YwOTBDMDAwRjA3RjBDRTRGRDEyMTY0NzdGMTBFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRUZGMDEyMTVCNzkwNzg0MTc0MDJGMDdGMDFFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRUZGMDQ0MDY5MEMwMDBGMQorOjQwMEY4NjAwRjA5MDc4NDE3NDA0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzNzQ4MEYwOTBDMDAwRjAwRkU0RkQxMjE2NDdFNEZGN0VBM0U1MTUyNDMyRjU4MkU0MzUxNEY1ODNFRUYwRkQxMjE2NDc5MDc4NDE3NDAxRjA5MEMwMDBFNEYwN0Y4OQorOjQwMEZDNjAwMDU3RDdGMTIxNjQ3N0YwMTEyMTU0RjdGMDM3RDA3MTIxNjQ3MjI1MzEzM0Y5MDdCRjFFMDMwRTMxNjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxMTIwOEMxOTA3QzMxRTAzMEUzMTY3RTdDN0YwMDc1MTQxNworOjQwMTAwNjAwN0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDIxMjA4QzE5MDdDNzFFMDMwRTMxNjdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwNzUxNjA0MTIwOEMxOTA3Q0IxRTAzMEUzMTY3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0YzNworOjQwMTA0NjAwOTY3NDdGRjA3NTE2MDgxMjA4QzEwNTExRTUxMTU0MEZGNTE4NzAxRjkwNzg0MUUwNTRGN0YwOTA3Rjk5RTBGNTE3OTA3ODQxRTA0NDA4RjA5MDdGOTlFMEY0RjUxMjEyMTEyMTIyRTUxOEI0MDEwNDEyMEM3MzIyOTA3RkMyRTAxOAorOjQwMTA4NjAwMjBFMTA4RTUxMzYwMDQxMjBFMTIyMjEyMEM3MzIyNzg3RkU0RjZEOEZENzU4MTM3MDIxMERDMDIxMjI5RTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjA3RQorOjQwMTBDNjAwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDE4NTBFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhBMgorOjQwMTEwNjAwRTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFOTA3RkQyRTAzMEUxMDMwMjExQUFDMjA5OTA3QjQwRTAxNDYwMjYxNDYwM0IxNDYwNTAyNDgzNjA2NDI0ODA3MDYzN0U3QjdGQzAxQworOjQwMTE0NjAwNzUxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxMTIwMDQ2ODA0QjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyMTIwMDQ2ODAzMzdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwNzUxNjA0MTJGQgorOjQwMTE4NjAwMDA0NjgwMUI3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5Njc0N0ZGMDc1MTYwODEyMDA0NjgwMDMxMjE3NUNFNDkwN0ZEM0YwMjJCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDE4OQorOjQwMTFDNjAwMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4NgorOjQwMTIwNjAwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjkwN0ZBRUUwRkZEMzkyMDBFNDMzRkVFRjRFRjBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA4RQorOjQwMTI0NjAwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRjc0MDFGMDkwN0ZBRTc0MERGMEQyQUZEMjBCMTIxODE0QzIwMUU0RjUyQkY1MzFDMjA3QzIwMjc1MjlGMDkwN0ZEOEUwNjUyNjYwMDY3NTMyMEZFMEY1MjZDOQorOjQwMTI4NjAwMzAwMjAzMTIwRkQ5MzAwMTA3QzIwMTEyMDYyOTgwRTIzMDA4REZDMjA4MTIxODM1ODBEODIyRTUxMzU1MTY2MDZBRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0UwNzA1Q0U1MTZGNDUyMTNFNTE1MjQyNkZGRTQzNTE0RkVFNEZEMEZBMgorOjQwMTJDNjAwRUZBQTA2NzAwMTBFMTRGNTgyOEE4M0UwRkM3NDgwMkRGNTgyRTQzNDdCRjU4M0VDRjAwREJEMEJFMjkwN0ZDMzc0MEJGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODM3NDEwRjBFNTE1MjQyRUY1ODJFNDM1MTRGNTgzRTRGMEU1MTVDMQorOjQwMTMwNjAwMjQyRkY1ODJFNDM1MTRGNTgzRTRGMDIyRTUyODQ1Mjc2MDU3QUUyN0FGMjhEM0VGOTQ0MEVFOTQwMDQwMDQ3RTAwN0Y0MEMzRTUyODlGRjUyOEU1Mjc5RUY1MjdFNEZERURDMzlGRTQ5RTUwMUY4NTM0ODI4NTMzODNFMEZDNzQ5NAorOjQwMTM0NjAwMDAyREY1ODJFNDM0N0ZGNTgzRUNGMDBEMDUzNEU1MzQ3MDAyMDUzMzgwREE5MDdGQTk3NDAxRjA5MDdGQUNFMDQ0MDFGMDkwN0ZCNUVGRjAyMjkwN0ZBQ0UwNTRGRUYwRTQ5MDdGQjVGMDIyRTQ5MDdGOTNGMDkwN0Y5Qzc0RjBBNworOjQwMTM4NjAwRjA5MDdGOTZGMEU0OTA3ODRBRjA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjAzMDAwMDdFNTI5NTRGMEZGODAwMjdGMDBFRjQ0MDg5MDc4NDFGMEU0OTA3Rjk4RjA5MDdGOTVGMDkwN0Y5RTc0RkZGMEU0OTA3Rjk4RjBDOQorOjQwMTNDNjAwOTA3RjkzRjA5MDdGOUM3NEYwRjBFNDkwN0Y5NkYwOTA3RjkyRTA1NEZERjAyMjhGMUEwNTJERTUyREFFMkM3MDAyMDUyQzE0RjU4MjhFODNFNTFBRjAxMjE4RjAwNTJERTUyREFDMkM3MDAyMDUyQzE0RjU4MjhDODNFRkYwMTU5RAorOjQwMTQwNjAwMjNFNTIzNjAxRkU1MTUyNDM4RjU4MkU0MzUxNEY1ODNDMDgzQzA4MkUwRkUxMjE4RDg4RjFBRUU0RkQwODJEMDgzRjA4MEI1MjI4RjFBRTRGNTFCNzUxQ0ZGNzUxRDE5NzUxRTg2QUIxQ0FBMURBOTFFOTAwMDAxMTIxMUM0QjRFMQorOjQwMTQ0NjAwMDMxREFGMUIwNTFCRUZCNTFBMDEyMjEyMTFBQjdFMDAyOUZGRUUzQUE5MDc3NTFDRkZGNTFEODkxRTgwRDQ3QjAwN0EwMDc5MDAyMkU0OTA3ODQxRjA5MDc4NEY3NEMwRjBFNDkwNzg1MEYwRTUyQzkwNzg1MUYwQUUyQ0U1MkRGOAorOjQwMTQ4NjAwOTA3ODUyRjA5MDc4NTRFNTIzRjA5MDc4NTc3NDA0RjA5MDdGRTJFMDQ0MTBGMEUwNTRGN0YwRTQ5MDc4NTVGMDkwNzg1NUUwNjBGQTIyRTQ5MDc4NDFGMEU1MkM5MDc4NEZGMEFFMkNFNTJEOTA3ODUwRjA5MDc4NTE3NEMwRjA4MQorOjQwMTRDNjAwRTQ5MDc4NTJGMDkwNzg1NEU1MjNGMDkwNzg1Nzc0MDRGMEU0OTA3ODU1RjA5MDc4NTVFMDYwRkEyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRjE0NjAxMzE0NjAxNzgwMDA5MDdGQzdFRkYwODAxMzkwN0ZDOUVGRjA4MQorOjQwMTUwNjAwODAwQzkwN0ZDQkVGRjA4MDA1OTA3RkNERUZGMEU1MTY0MjJBMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEYxNDYwMTMxNDYwMTc4MDAwOTA3RkI3RUZGMDgwMTM5MDdGQjlFRkYwODAwQzkwN0ZCQkVGRjA4MDA1OTAzQgorOjQwMTU0NjAwN0ZCREVGRjBFNTE2NDIyQTIyQUUwN0U0RkZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NDdGRkQxMjE2NDc5MDc4NDE3NDAxRjA5MEMwMDBFRUYwRTRFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDgwRkQxMjE2NDcyMkMwRTBBMAorOjQwMTU4NjAwQzBGMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzBEMDc1RDAwODUzOTFFRjkwN0ZBOTc0MDFGMDEyMTMxMkQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRjBEMEUwMzI5MDc4NDE3NDAzRjA5MEMwMDA3NEJGRjA5MDc4NDFEMAorOjQwMTVDNjAwNzQwMkYwOTBDMDAwRUZGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyOTA3ODQxNzQwM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzQwNEYwOTBDMDAwRUZGMDkwNzg0MTc0MDNGMEU1MTU2RAorOjQwMTYwNjAwMjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjkwNzg0MTc0MDNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0MDZGMDkwQzAwMEVGRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjBGRgorOjQwMTY0NjAwMjI5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjA5MDc4NDE3NDA3RjA5MEMwMDBFRkYwOTA3ODQxNzQwNUYwOTBDMDAwRURGMDIyOTA3ODQxNzQwM0YwOTBDMDAwNzRCRkYwRTQ5MDc4NDFGQQorOjQwMTY4NjAwRjA5MEMwMDBFRkYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkM2RTBGRjIyOTA3RkM4RTAxNQorOjQwMTZDNjAwRkYyMjkwN0ZDQUUwRkYyMjkwN0ZDQ0UwRkYyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQjZFMEZGMjI5MDdGQjhFMEZGMjI5MDdGQkFFMEZGMjI5MDdGQkNFMEZGMjJFNTE1MjQ5RQorOjQwMTcwNjAwMDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZDN0UwRkYyMjkwN0ZDOUUwRkYyMjkwN0ZDQkUwRkYyMjkwN0ZDREUwRkYyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA5NgorOjQwMTc0NjAwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdCNDFFMEY1MzY0MzEzMTBBM0UwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMDkwN0I0M0UwRjUzN0EzRTA1NEYwRjUyOUUwNjAwMkQyMEEyMkMwRTAyNAorOjQwMTc4NjAwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjAxNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjA4NTM5MUVGOTA3RkFCNzQwOEYwRDBGNworOjQwMTdDNjAwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyMTIxOEMwQUUwNzEyMThDMEFEMDdFRTZENjAxMDEyMThDMEFFMDdFRTZENjAwNzEyMThDMEFEMDc4MEVDQUYwNjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENQorOjQwMTgwNjAwRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjkwN0ZENkUwNDQwNEYwRTA0NDA4RjAzMDBCMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxODZCOTA3RkQ2RTA1NEY3RjAyMjEyMTM3QzEyMTgwNDkwN0ZENkUwMzBFNzBBN0YwNTdFMDA3RAorOjQwMTg0NjAwMTIxODZCMTIxODlFMTIwQUI4MjIwMzM1ODAwMDAwMDMyRTgxMDAwMEMxODVDMTgxQzEwOEMxMDBDMTA2MDEyMjAwMDEyNDAwMDA4RTE4OEYxOUU1MTkxNTE5QUUxODcwMDIxNTE4NEU2MDA4MTIxN0YzMTIxN0YzODBFQjIyRTU0NQorOjQwMTg4NjAwMTUyNDA0RjU4MkU0MzUxNEY1ODNFMDA0RkY0NDEwOTA3RkQ3RjBFRjQ0MzBGMDIyOTA3RkQ2RTA0NDAxRjA3RjBEN0UwMDEyMTg2QjkwN0ZENkUwNTRGRUYwMjI5MDc4NDE3NDAyRjA5MEMwMDBFMEZGMjI5MDc4NDE3NDAzRjBENQorOjQwMThDNjAwOTBDMDAwRTBGRjIyOTA3ODQxNzQwNEYwOTBDMDAwRTBGRjIyOTA3ODQxNzQwNUYwOTBDMDAwRTBGRjIyOTA3ODQxNzQwNkYwOTBDMDAwRTBGRjIyRTQ5MDc4NDFGMDkwQzAwMEUwRkYyMjUzRDhFRjMyMDAxMjAxMTAwMUZGMDBBQgorOjQwMTkwNjAwMDA0MENEMDYwQTAxMDAwMDAxMDIwMDA0MDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3QQorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzU1MDA1MzAwNDIwMDIwMDAzNDAwMkQwMDcwMDA2RjAwNzIwMDc0MDAyMDAwNTMwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDQxMDA2NDAwNjEwMDcwMDA3NDAwNjUwMDcyMDAzQworOjQwMUEwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjQwMUE0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjQwMUE4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjQwMUFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjE3ODQwMDAyMUIyNgorOjE1MUIwNjAwMDQwMDAyMTczMjAwMDIxN0FCMDAwMjFCMTAwMDAyMUIxNDAwMDIxNTg0QkUKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3bGMuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2E0OXdsYy5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQwNmViMQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3bGMuSEVYCkBAIC0wLDAgKzEsMTUzIEBACis6MDE3RjkyMDAwMUVECis6MDMwMDMzMDAwMjE4RkJCNQorOjBEMDAzNjAwRTUxMTA0OTA3ODQxRjA5MEMwMDBFMEZGMjIzOQorOjEwMDA0NjAwRTRGRjc0NDAyRkY1ODJFNDM0N0JGNTgzRTBGRUU1MTU4QQorOjEwMDA1NjAwMjQwNEZERTQzNTE0RkFBOTA1N0IwMUVGN0MwMDI5Rjk5NworOjEwMDA2NjAwRUMzQUZBRUUxMjExRUMwRkJGMjJEN0U1MTUyNDA1RjU4RQorOjEwMDA3NjAwODJFNDM1MTRGNTgzRTA3MDAzMDIwMTM0RTUxNTI0MDlBMgorOjEwMDA4NjAwRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQwQUY1ODI1MQorOjEwMDA5NjAwRTQzNTE0RjU4M0UwNjAxODdGMDFFNEZEMTIxNjZCRTU4NAorOjEwMDBBNjAwMTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0Q0ZGMDgwNDExMAorOjEwMDBCNjAwRTUxNTI0MDZGNTgyRTQzNTE0RjU4M0UwRkYxMjAwMDMwNgorOjEwMDBDNjAwRTUxNTI0MDdGNTgyRTQzNTE0RjU4M0UwRkYxMjE1QUIzOAorOjEwMDBENjAwN0YwMUU1MTUyNDA4RjU4MkU0MzUxNEY1ODNFMEZEMTI2OQorOjEwMDBFNjAwMTY2QkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MzBDQQorOjEwMDBGNjAwRjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDgwRjAwMworOjEwMDAwMzAwOTA3ODQxNzRGM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzQxRAorOjEwMDAxMzAwRjBGMDkwQzAwMEVGRjA5MDc4NDE3NEYzRjBFNTE1MjQxMAorOjEwMDAyMzAwMzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI2NQorOjAzMDA0MzAwMDIxQjAwOUQKKzowMzAwMDAwMDAyMTA5MDVCCis6NDAwMTA2MDA5MDc4NDE3NEY0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMDkwNzg0MTc0RjJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMDQ0MDY5MEMwMDBGMEU1MTUyNDBCRjU4MkU0MzUxNEY1ODNFMDYwMzJFNTE1MjQwQzJCCis6NDAwMTQ2MDBGNTgyRTQzNTE0RjU4M0UwNTQzRkZGRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0VGRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDBERjU4MkU0MzUxNEY1ODNFMDcwMDMwMjAyNEZFNTk4Cis6NDAwMTg2MDAxNTI0MTdGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDRGMDgwMEZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZCRjBFNEZGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwRkQxMjE2NkJFNTNBCis6NDAwMUM2MDAxNTI0MEVGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDQ0ODBGMDgwMEZFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA1NDdGRjBFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA1NEZDRjBFNTE1MjQwRkVCCis6NDAwMjA2MDBGNTgyRTQzNTE0RjU4M0UwNjAyRkU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDQ0MDJGMEU1MTUyNDEwRjU4MkU0MzUxNEY1ODNFMEZGMTIxNjBCRTUxNTI0MTFGNTgyRTQzNTE0RjU4M0UwRkYxMjE2M0JFNTE1MjQzM0Y1ODJFNDE1Cis6NDAwMjQ2MDAzNTE0RjU4M0UwRkYxMjE1REJFNTE1MjQxNEY1ODJFNDM1MTRGNTgzRTA2MDQ0RTUxNTI0MTVGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0MDFGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTVECis6NDAwMjg2MDA4M0UwNTRGRUYwOTA3ODQxNzRGNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxMkY1ODJFNDM1MTRGNTgzRTA2MDQ0RTUxNTI0MTNGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEY2Cis6NDAwMkM2MDBGNTgzRTA0NDAyRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNTRGREYwOTA3ODQxNzRGNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxNkY1ODJFNDM1MTRGNTgzRTBGRkU1MTUyNDM1RjU4MjFBCis6NDAwMzA2MDBFNDM1MTRGNTgzRUZGMEU1MTUyNDE3RjU4MkU0MzUxNEY1ODNFMDMwRTAxMUU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0NDBGMDgwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEJGRjBFNTE1MjQxOEY1ODJFNDM1MTRGNTc2Cis6NDAwMzQ2MDA4M0UwRkZFNTE1MjQzQkY1ODJFNDM1MTRGNTgzRUZGMEU1MTUyNDE5RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDEwRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNTRFRkYwOTA3ODY5Cis6NDAwMzg2MDA0MTc0RjRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MUFGNTgyRTQzNTE0RjU4M0UwNjA2QkU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0QkZGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNDFGCis6NDAwM0M2MDBGNTgzRTA1NDdGOTBDMDAwRjA5MDc4NDE3NEYxRjAxMjAwMzZFRjU0RkU5MEMwMDBGMEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkRGRkYwRkRFNEZGMTIxNjZCRTUxNTI0MkNGNTgyRTQzNTE0RjU4M0U0RjBFNTE1MjQyQkEzCis6NDAwNDA2MDBGNTgyRTQzNTE0RjU4M0U0RjBFNTE2NDIxM0U1MTUyNDFCRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDI4RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwMkZGRjBGREU0RkYxMjE2NkJFNTIzCis6NDAwNDQ2MDAxNTI0MkJGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1MTY0MjEzRTUxNTI0MUNGNTgyRTQzNTE0RjU4M0UwRkY3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyQTkwNzg0MTc0RjJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMEQ2Cis6NDAwNDg2MDA0NDA0OTBDMDAwRjBFRjYwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDA0RjBFNTE1MjQxREY1ODJFNDM1MTRGNTgzRTA2MDI3RTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNDQ0MEYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTYwCis6NDAwNEM2MDA4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMEU1MTUyNDFFRjU4MkU0MzUxNEY1ODNFMDYwMjhFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZFRkZGMEZERTRGRjEyMTY2QkU1MTUyNDJERjU4MkU0MzUxNEY1ODM3NDAxRjBFNTZCCis6NDAwNTA2MDAxNjQyMTNFNTE1MjQxRkY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyN0U1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDFGRkYwRkRFNEZGMTIxNjZCRTUxNTI0MkRGNTgyRTQzNTE0RjU4MzczCis6NDAwNTQ2MDBFNEYwRTUxNjQyMTNFNTE1MjQyMEY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAxODkwNzg0MTc0RjJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMDQ0MDI5MEMwMDBGMEU1MTUyNDIxRjU4MkI3Cis6NDAwNTg2MDBFNDM1MTRGNTgzRTA2MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwMkYwRTUxNTI0MjJGNTgyRTQzNTE0RjU4M0UwNjAxRkU1MTUyNDJFRjU4MkU0MzUxNEY1ODM3NDAxRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTRGMEYwCis6NDAwNUM2MDBFNTE2NDIxM0U1MTUyNDIzRjU4MkU0MzUxNEY1ODNFMDYwMDMxMjE4N0FFNTE1MjQyNEY1ODJFNDM1MTRGNTgzRTA2MDIzRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwOEYwRTUxNkM0NTRGMEZGNDIxMTkwN0Y5NkUwNEZGMDAwCis6NDAwNjA2MDA5MDc4NDFFMDRGRjBFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDI0RTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRGN0YwRTUxNkM0NTRGMEY0RkY1MjExOTA3Rjk2RTA1RkYwOTA3ODQxRTA1RkYwMjI5MDdGRTlFMDEyMTFGRTQzCis6NDAwNjQ2MDAwNzk5MDAwODBEMDEwODc5MDMwNjYyMDYwNzhBMDgwNzdFMDkwNzY2MEEwNzc1MEIwMDAwMDhDODkwN0ZFQkUwMjRGRTYwMUMxNDcwMDMwMjA3MTQyNDAyNjAwMzAyMDc1Qzc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMDhDRjRDCis6NDAwNjg2MDA5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA5MDdGRUFFMDMwRTAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyNkQ3NTgzMTlGMDc1ODI2Njc1ODMxOUYwNzU4MjVGNzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQTBBCis6NDAwNkM2MDBFMDMwRTEwNDdGNjQ4MDAyN0YzMjc1ODIxQTc1ODMxOUVGRjA5MDdGRUZFMEZFOTA3RkVFRTA3QzAwMjQwMEY1MThFQzNFRjUxNzc1MzMxOTc1MzQxMjc1ODIxNDc1ODMxOUUwNzUyNzAwRjUyOEQzRTUyODk1MThFNTI3OTUxN0Q2Cis6NDAwNzA2MDA0MDA2ODUxNzI3ODUxODI4MTIxMzBEMDIwOENGOTA3RkVBRTBGRjEyMTQ1RkVBNDk2MDMyOTA3RkVFRTA3NTE3MDBGNTE4QUUwMkFGMDE4RTMzOEYzNDhGODI4RTgzRTBGRUEzRTA4RTI3RjUyOEQzOTUxOEU1Mjc5NTE3NDAwNjhCCis6NDAwNzQ2MDA4NTE3Mjc4NTE4MjgxMjEzMEQwMjA4Q0Y5MDdGQjRFMDQ0MDFGMDAyMDhDRjkwN0ZCNEUwNDQwMUYwMDIwOENGOTA3RjAwRTUyNUYwOTA3RkI1NzQwMUYwMDIwOENGOTA3RkVBRTBGNTI1MDIwOENGOTA3RkVBRTBGNTIyMTIwQTlCCis6NDAwNzg2MDBDRTAyMDhDRjkwN0YwMEU1MjJGMDkwN0ZCNTc0MDFGMDAyMDhDRjkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMDBFNDMzRkYyNUUwRkZBMjA2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA4Q0ZFNEM5Cis6NDAwN0M2MDA5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA4Q0Y5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDhDRjkwN0ZCNDVDCis6NDAwODA2MDBFMDQ0MDFGMDAyMDhDRjkwN0ZFOEUwMjRGRTYwMUQyNDAyNjAwMzAyMDhDRjkwN0ZFQUUwQjQwMTA1QzIwMDAyMDhDRjkwN0ZCNEUwNDQwMUYwMDIwOENGOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDkwCis6NDAwODQ2MDAwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MENBCis6NDAwODg2MDA3RkVBRTBCNDAxMDREMjAwODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDQ2Cis6NDAwOEM2MDA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRTUxMjU0MEY3MDAzMDIwOUM4MTIxNjlBRUYyMEUxNzUxMjE2RjhFRjE0RjUxODEyMThDNUVGMjUxOEZGRTQzM0ZFQzNFRjk0ODBFRTY0ODA5NDgwNTA1OTg1MTU4MjAxCis6NDAwOTA2MDA4NTE0ODNFMEZFQTNFMEZGRjU4MjhFODNFMDMwRTAxMUU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0ODBGMDgwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NDdGRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAyMEUyMTJFNUNDCis6NDAwOTQ2MDAxODYwMEVGNTIzRUYyNDAxRjUyREU0M0VGNTJDMTIxNEEwRTRGRjEyMTREN0U1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTc1RDEyMThDNUU1MTUyNDNCRjU4MkU0MzUxNEY1ODNFMEZFRUZDMzlFNTA0OEU1MTUyNDJGRjU4MjA3Cis6NDAwOTg2MDBFNDM1MTRGNTgzNzQwMUYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTQ3QkYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0U0RjBFNTE2NDIxMzkwN0ZDMkUwMzBFMTEwRTUxNTI0MjZGNTgyRTQzNTE0RjU4M0UwRjUyNDgwMDMxMkM1Cis6NDAwOUM2MDAxMjlDMTIxNkM5RUYzMEUxMDMwMjBBQ0QxMjE3Qzc4RjE4MTIxOEQzRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0VGRjBFNTE1MjQzNUY1ODJFNDM1MTRGNTgzRTBGRkU1MThDMzlGNTAyODEyMThBOUVGMzBFMDIxRTUxNTI0MzhGNTJFCis6NDAwQTA2MDA4MkU0MzUxNEY1ODNFMDIwRTcxMkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDIwRTEwMzAyMEFDREU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0RkRGMEU1MTg3MDAzMDIwQUNEQjQ4MDBGRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0RFCis6NDAwQTQ2MDBFMDQ0MDJGMEU1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMEZGMzBFNzI5RTUxOEQzOTQyMDQwMDM3NTE4MjA4NTE4MjM4NTE1ODI4NTE0ODNBM0EzRTBGQ0EzRTA4QzJDRjUyRDEyMTNDRkU1MTgyNUUwRkYxMjE1MEQyMkU1MThEM0MzCis6NDAwQTg2MDA5NDNGNDAwMzc1MTgzRjg1MTgyM0U1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMEZGODUxNTgyODUxNDgzQTNBM0UwRkNBM0UwRjU4MjhDODNFRkYwODUxNTgyODUxNDgzQTNBM0UwRkVBM0UwMjQwMUY1MkRFNDNFRjUyQzEyMTQxRDRGCis6NDAwQUM2MDBFNTE4MDRGRjEyMTUwRDIyRTQ5MDdGOTNGMDkwN0Y5Qzc0RkZGMEU0OTA3Rjk2RjA5MDdGOTRGMDkwNzg0QTA0RjBGNThFOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQyRkYwOTA3ODQzNzRGN0YwRTQ5MDc4NDFGMDJDCis6NDAwQjA2MDA5MDdGREY3NDlGRjA5MDdGREVGMDkwN0Y5MkUwNDQwMkYwN0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTg3NDJFRjA3NTE2MDExMjBGMjg3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5ODc0MkVGMDc1MTYwMUU1MTUyNDI2RjU4MjkwCis6NDAwQjQ2MDBFNDM1MTRGNTgzRTRGMDdFN0U3RjQwODUxNTgyODUxNDgzNzQ3RUYwQTM3NDQwRjA3RTdFN0Y4MDg1MTU4Mjg1MTQ4M0EzQTM3NDdFRjBBMzc0ODBGMDdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzUxNjAyMTIwRjBBCis6NDAwQjg2MDAyODdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzUxNjAyRTUxNTI0MjZGNTgyRTQzNTE0RjU4Mzc0MDFGMDdFN0Q3RkMwODUxNTgyODUxNDgzNzQ3REYwQTM3NEMwRjA3RTdFN0YwMDg1MTU4Mjg1MTQ4M0EzQTM3NEVFCis6NDAwQkM2MDA3RUYwQTM3NDAwRjA3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkJGMDc1MTYwNDEyMEYyODdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQkYwNzUxNjA0RTUxNTI0MjZGNTgyRTQzNTE0RjU4Mzc0MDJGMDdFN0Q3RjU3Cis6NDAwQzA2MDA0MDg1MTU4Mjg1MTQ4Mzc0N0RGMEEzNzQ0MEYwN0U3RDdGODA4NTE1ODI4NTE0ODNBM0EzNzQ3REYwQTM3NDgwRjA3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5ODc0MjdGMDc1MTYwODEyMEYyODdFN0M3RjgwNzUxNDdDNzUxNTkwCis6NDAwQzQ2MDA4MDkwN0Y5ODc0MjdGMDc1MTYwOEU1MTUyNDI2RjU4MkU0MzUxNEY1ODM3NDAzRjA3RTdDN0ZDMDg1MTU4Mjg1MTQ4Mzc0N0NGMEEzNzRDMEYwN0U3RDdGMDA4NTE1ODI4NTE0ODNBM0EzNzQ3REYwQTM3NDAwRjBDMjBBQzIwOUQzCis6NDAwQzg2MDBFNEY1MTFEMjAyMjJFNTEwMDQ1NDAzRjUxMDE0NjAxRjE0NjAzMTE0NjA0MzI0MDM3MDUyN0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTg3NDJFRjA3NTE2MDE4MDNEN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTY0Cis6NDAwQ0M2MDAxNjAyODAyODdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQkYwNzUxNjA0ODAxMzdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk4NzQyN0YwNzUxNjA4RTUzMjU1MTY3MDAzMDIwRTI3RTUxNkY0NTIzMkU1MjY1NDdGRkY3MDk1Cis6NDAwRDA2MDAxN0U1MkE1NTE2NjAzNDkwN0Y5NkUwRkVFNTE2QzQ1NEYwRjRGREVFNURGMDgwMjNCRjIwMjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEUzMTFFNEY1MkE5MDdGOTZFMEZGRTUxNkM0NTRGMEZFRUY0RUYwRTUxNTI0M0FGNUMzCis6NDAwRDQ2MDA4MkU0MzUxNEY1ODNFMDYwMDNFMDE0RjBFNTE1MjQzNEY1ODJFNDM1MTRGNTgzRTA2MDAzRTAxNEYwRTA2MDAzMDIwRTI3NzQwQUYwMTIwMDM2RUY1NDAxRkZGNTE4RTUxNTI0MkNGNTgyRTQzNTE0RjU4M0UwNkY2MDA3RTUxOEYxCis6NDAwRDg2MDBGMEU1MTY0MjEzMTIxOEUxOEYxOEU1MTUyNDI3RjU4MkU0MzUxNEY1ODNFMEZGRTUxODU0MTBGRTZGNjAwNkVFRjBFNTE2NDIxM0U1MTUyNDI4RjU4MkU0MzUxNEY1ODNFMEZGRTUxODU0ODBGRTZGNjAwNkVFRjBFNTE2NDIxMzg2Cis6NDAwREM2MDBFNTE1MjQyOUY1ODJFNDM1MTRGNTgzRTBGRkU1MTg1NDIwRkU2RjYwMTVFRUYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNDA0RTUxNjQyMTNFNTE1MjQyQUY1ODJFNDM1MTRGNTgzRTBGRkU1MTg1NDQwRkU2RjYwMTVFRTIzCis6NDAwRTA2MDBGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTUwNEU1MTY0MjEzRTUxNTI0MzBGNTgyRTQzNTE0RjU4M0U0RjAyMjMwMDkwMzAyMEYyN0U1MjQxNDYwMkExNDYwNDExNDYwNTgxNDYwNkYyNDA0NjAwMzAyMEVFNTdFN0I3RjMxCis6NDAwRTQ2MDBDMDc1MTQ3Qjc1MTVDMDkwN0Y5ODc0MkVGMDc1MTYwMTEyMTI5Qzc1MjQwMTIyN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTE2MDIxMjEyOUM3NTI0MDIyMjdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQjA1Cis6NDAwRTg2MDBGMDc1MTYwNDEyMTI5Qzc1MjQwMzIyN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTg3NDI3RjA3NTE2MDgxMjEyOUM3NTI0MDQyMjMwMDQzM0MyMDQ1MzEzREZFNEY1MTg3RTAwN0IwMDc0MkUyNTE4RjlFRTM0MDBGQTEyMTFBNkNBCis6NDAwRUM2MDBGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjA3NTI0MDUyMkU1MzY2MDNCRDUzNjBBNTMxM0VGMzAwQTA0RDIwOUMyMEFFNEY1MTg3RTAwN0IwMDc0MzUyNTE4RjlFRTM0MDBGQUNDCis6NDAwRjA2MDAxMjExQTZGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjBFNEY1MjQyMkU0RjUxOTdFMDA3QjAxRTUxNTI1MTlGOUVFMzUxNEZBRTQxMjExRUMwNTE5RTUxOUI0M0NFOEU1MTUyNEZBCis6NDAwRjQ2MDAzNUY1ODJFNDM1MTRGNTgzNzQwMUYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4Mzc0MDNGMDkwQzAwMEYwN0YwQ0U0RkQxMjE2NkI3RjEwRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0VGRjAxMjE1REI5MDc4NDE3NDY0Cis6NDAwRjg2MDBGMkYwN0YwMUU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFRkYwNDQwNjkwQzAwMEYwOTA3ODQxNzRGNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4Mzc0ODBGMDkwQzAwMEYwMEZFNEZEMTIxNjZCRTRGRjdFQTNFNTE1MjQzMkY1ODJFNDg2Cis6NDAwRkM2MDAzNTE0RjU4M0VFRjBGRDEyMTY2QjkwNzg0MTc0RjFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTY2QjdGMDExMjE1NDM3RjAzN0QwNzEyMTY2QjIyNTMxMzNGOTA3QkYxRTAzMEUzMTY3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5ODZCCis6NDAxMDA2MDA3NDJFRjA3NTE2MDExMjA4RDc5MDdDMzFFMDMwRTMxNjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzUxNjAyMTIwOEQ3OTA3QzcxRTAzMEUzMTY3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkJGMDc1MTYwNEM0Cis6NDAxMDQ2MDAxMjA4RDc5MDdDQjFFMDMwRTMxNjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk4NzQyN0YwNzUxNjA4MTIwOEQ3MDUxMkU1MTI1NDBGRjUxNzcwMDQxMjExMUMyMkU1MTdCNDAxMDQxMjBDOEMyMjkwN0ZDMkUwMjBFMTA4RTUxMzcwCis6NDAxMDg2MDA2MDA0MTIwRTI4MjIxMjBDOEMyMjc4N0ZFNEY2RDhGRDc1ODEzNzAyMTBENzAyMTIyNEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNEQ3Cis6NDAxMEM2MDA1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAxODQ1RTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTg5Cis6NDAxMTA2MDA4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTkwN0ZEMkUwMzBFMTAzMDIxMUE1QzIwOTkwN0I0MEUwMTQ2MDI2MTQ2MDNCMTQ2MDUwMjQ4MzYwNjQyNDgwNzA2MzdFN0I3RkMwNzUxNDdCNzUxNTNBCis6NDAxMTQ2MDBDMDkwN0Y5ODc0MkVGMDc1MTYwMTEyMDA0NjgwNEI3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1MTYwMjEyMDA0NjgwMzM3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkJGMDc1MTYwNDEyMDA0NjgwMUI3RTJCCis6NDAxMTg2MDA3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTg3NDI3RjA3NTE2MDgxMjAwNDY4MDAzMTIxNzUxRTQ5MDdGRDNGMDIyQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNUI4Cis6NDAxMUM2MDA4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MEI2Cis6NDAxMjA2MDAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREY5MDdGQUVFMEZGRDM5MjAwRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkMyCis6NDAxMjQ2MDBGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUY3NDAxRjA5MDdGQUU3NDBERjBEMkFGRDIwQjEyMTgwOUMyMDFFNEY1MkJGNTMxQzIwN0MyMDI3NTI5MEY5MDdGRDhFMDY1MjY2MDA2NzUzMjBGRTBGNTI2MzAwMjAzMTIwRjhDCis6NDAxMjg2MDBFRjMwMDEwN0MyMDExMjA2M0Y4MEUyMzAwOERGQzIwODEyMTgyQTgwRDgyMkU1MTM1NTE2NjA2QUU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFMDcwNUNFNTE2RjQ1MjEzRTUxNTI0MjZGRkU0MzUxNEZFRTRGRDBGRUZBQTA2NzAwMUM3Cis6NDAxMkM2MDAwRTE0RjU4MjhBODNFMEZDNzQ4MDJERjU4MkU0MzQ3QkY1ODNFQ0YwMERCRDBCRTI5MDdGQzM3NDBCRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzNzQxMEYwRTUxNTI0MkVGNTgyRTQzNTE0RjU4M0U0RjBFNTE1MjQyRkY1ODJFNDIzCis6NDAxMzA2MDAzNTE0RjU4M0U0RjAyMkU1Mjg0NTI3NjA1N0FFMjdBRjI4RDNFRjk0NDBFRTk0MDA0MDA0N0UwMDdGNDBDM0U1Mjg5RkY1MjhFNTI3OUVGNTI3RTRGREVEQzM5RkU0OUU1MDFGODUzNDgyODUzMzgzRTBGQzc0MDAyREY1ODJFNEJBCis6NDAxMzQ2MDAzNDdGRjU4M0VDRjAwRDA1MzRFNTM0NzAwMjA1MzM4MERBOTA3RkE5NzQwMUYwOTA3RkFDRTA0NDAxRjA5MDdGQjVFRkYwMjI5MDdGQUNFMDU0RkVGMEU0OTA3RkI1RjAyMjkwN0Y5ODc0MEZGMEU0OTA3ODRBRjA5MDdGOTRGMEUxCis6NDAxMzg2MDA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTA3ODQxRjA5MDdGOTNGMDkwN0Y5Qzc0RkZGMDMwMDAwN0U1Mjk1NDBGRkY4MDAyN0YwMDkwN0Y5NkVGRjA5MDdGOTg3NDFGRjBFNDkwN0Y5NUYwOTA3RjlFNzQzRkYwOTA3Rjk4NzRERkFECis6NDAxM0M2MDBGMDkwN0Y5MkUwNTRGREYwMjI4RjE5MDUyREU1MkRBRTJDNzAwMjA1MkMxNEY1ODI4RTgzRTUxOUYwMTIxOEVGMDUyREU1MkRBQzJDNzAwMjA1MkMxNEY1ODI4QzgzRUZGMDE1MjNFNTIzNjAxRkU1MTUyNDM4RjU4MkU0MzUxNDE2Cis6NDAxNDA2MDBGNTgzQzA4M0MwODJFMEZFMTIxOEQzOEYxOUVFNEZEMDgyRDA4M0YwODBCNTIyOTA3ODQxRTUxMUYwOTA3ODRGNzRDMEYwRTQ5MDc4NTBGMEU1MkM5MDc4NTFGMEFFMkNFNTJEOTA3ODUyRjA5MDc4NTRFNTIzRjA5MDc4NTc3NDcwCis6NDAxNDQ2MDAwNEYwOTA3RkUyRTA0NDEwRjBFMDU0RjdGMEU0OTA3ODU1RjA5MDc4NTVFMDYwRkEyMjhGMTlFNEY1MUE3NTFCRkY3NTFDMTk3NTFEODZBQjFCQUExQ0E5MUQ5MDAwMDExMjExQkZCNDAzMURBRjFBMDUxQUVGQjUxOTAxMjIxMkY5Cis6NDAxNDg2MDAxMUE2N0UwMDI5RkZFRTNBQTkwNzc1MUJGRkY1MUM4OTFEODBENDdCMDA3QTAwNzkwMDIyOTA3ODQxRTUxMUYwRTUyQzkwNzg0RkYwQUUyQ0U1MkQ5MDc4NTBGMDkwNzg1MTc0QzBGMEU0OTA3ODUyRjA5MDc4NTRFNTIzRjA5MDdECis6NDAxNEM2MDA3ODU3NzQwNEYwRTQ5MDc4NTVGMDkwNzg1NUUwNjBGQTIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBGMTQ2MDEzMTQ2MDE3ODAwMDkwN0ZDN0VGRjA4MDEzOTA3RkM5RUZGMDgwMEM5MDdGQ0JFRkYwODAwNTkwN0ZDREVECis6NDAxNTA2MDBFRkYwRTUxNjQyMkEyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRjE0NjAxMzE0NjAxNzgwMDA5MDdGQjdFRkYwODAxMzkwN0ZCOUVGRjA4MDBDOTA3RkJCRUZGMDgwMDU5MDdGQkRFRkYwRTUxNjQyMkEyMkFFMDdFNEE0Cis6NDAxNTQ2MDBGRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0N0ZGRDEyMTY2QjkwNzg0MTc0RjFGMDkwQzAwMEVFRjBFNEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0ODBGRDEyMTY2QjIyQzBFMEMwRjBDMDgzQzA4MkMwODVDMDg0QzA4NkExCis6NDAxNTg2MDA3NTg2MDBDMEQwNzVEMDA4NTM5MUVGOTA3RkE5NzQwMUYwMTIxMzBERDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBGMEQwRTAzMjkwNzg0MTc0RjNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0RjFGMDkwQzAwMEVGRjA5MDc4NDE3NEE4Cis6NDAxNUM2MDBGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI5MDc4NDE3NEYzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NEYyRjA5MEMwMDBFRkYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RkQ3Cis6NDAxNjA2MDA5MEMwMDBGMDIyOTA3ODQxNzRGM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzRGNEYwOTBDMDAwRUZGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyOTA3ODQxNzRGM0YwOTBDMDAwNzRCRjE2Cis6NDAxNjQ2MDBGMDkwNzg0MTc0RjZGMDkwQzAwMEVGRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDkwNzg0MTJGCis6NDAxNjg2MDA3NEY3RjA5MEMwMDBFRkYwOTA3ODQxNzRGNUYwOTBDMDAwRURGMDIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZDNkUwRkYyMjkwN0ZDOEUwRkYyMjkwN0ZDQUUwRkYyMjkwN0ZDQzE5Cis6NDAxNkM2MDBFMEZGMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkI2RTBGRjIyOTA3RkI4RTBGRjIyOTA3RkJBRTBGRjIyOTA3RkJDRTBGRjIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDAwCis6NDAxNzA2MDAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQzdFMEZGMjI5MDdGQzlFMEZGMjI5MDdGQ0JFMEZGMjI5MDdGQ0RFMEZGMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkJGCis6NDAxNzQ2MDBEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3QjQxRTBGNTM2NDMxMzEwQTNFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjA5MDdCNDNFMEY1MzdBM0UwNTRGMEY1MjlFMDYwMDJEMjBBMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NUE2Cis6NDAxNzg2MDA4NjAwRDIwMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIwODUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDNDCis6NDAxN0M2MDAzMjEyMThCN0FFMDcxMjE4QjdBRDA3RUU2RDYwMTAxMjE4QjdBRTA3RUU2RDYwMDcxMjE4QjdBRDA3ODBFQ0FGMDYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDQ4Cis6NDAxODA2MDAwMDAwMjI5MDdGRDZFMDQ0MDRGMEUwNDQwOEYwMzAwQjA0RTA0NDAyRjA3RkY0N0UwMTEyMTg2MDkwN0ZENkUwNTRGN0YwMjIxMjEzNzcxMjE3Rjk5MDdGRDZFMDMwRTcwQTdGMDU3RTAwMTIxODYwMTIxODkzMTIwQUNFMjIwMzc4Cis6NDAxODQ2MDAzNTgwMDAwMDAzMkU4MTAwMDBDMTg1QzE4MUMxMDhDMTAwQzEwNjAxMjIwMDAxMjQwMDAwOEUxNzhGMThFNTE4MTUxOEFFMTc3MDAyMTUxNzRFNjAwODEyMTdFODEyMTdFODgwRUIyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDdFCis6NDAxODg2MDAwNEZGNDQxMDkwN0ZEN0YwRUY0NDMwRjAyMjkwN0ZENkUwNDQwMUYwN0YwRDdFMDAxMjE4NjA5MDdGRDZFMDU0RkVGMDIyRTUxMTI0MDI5MDc4NDFGMDkwQzAwMEUwRkYyMkU1MTEyNDAzOTA3ODQxRjA5MEMwMDBFMEZGMjJFNTk3Cis6NDAxOEM2MDAxMTI0MDQ5MDc4NDFGMDkwQzAwMEUwRkYyMkU1MTEyNDA1OTA3ODQxRjA5MEMwMDBFMEZGMjJFNTExMjQwNjkwNzg0MUYwOTBDMDAwRTBGRjIyOTA3ODQxRTUxMUYwOTBDMDAwRTBGRjIyNTNEOEVGMzIwMDEyMDExMDAxRkZGRkRFCis6NDAxOTA2MDBGRjQwQ0QwNjJBMDEwMDAwMDEwMjAwMDQwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDVCCis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUYzCis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyNDAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTMwMDQxMDAyRDAwMzQwMDM5MDA1NzAwNEMwMDQzMDAyMjAzNTUwMDUzMDA0MTAwMkQwMDM2MDAzNTAwMjAwMEI1Cis6NDAxQTA2MDAzMjAwMzAwMDMwMDAzMzAwNkEwMDYxMDA2RTAwMzMwMDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6NDAxQTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6NDAxQTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6NDAxQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMTc3OTAwMDIxQjMxCis6MTUxQjA2MDAwNDAwMDIxNzI3MDAwMjE3QTAwMDAyMUIxMDAwMDIxQjE0MDAwMjE1NzhFMAorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDMKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgorCitzdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU0OVtdID0KKyAgICAgICAgIjAyLzE0LzIwMDIgIDAyOjM3cCAgICAgICAgICAgICAgMTksMzQ3IFVTQTQ5IjsKKworc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNjVbXSA9CisgICAgICAgICIwMS8zMS8yMDAzICAwOTozNGEgICAgICAgICAgICAgIDE5LDMzMSBVU0E2NSI7CisKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW5fcGRhL2tleXNwYW5fcGRhLkhFWCBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL2tleXNwYW5fcGRhLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmNmMDJiCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuSEVYCkBAIC0wLDAgKzEsODMgQEAKKzowMzAwMDAwMDAyMDIwMEY5Cis6MDQwMDIzMDAwMjA1NUYwMDczCis6MDQwMDQzMDAwMjAxMDAwMEI2Cis6MDUwMDMwMDAwMDAwMDAwMDAwQ0IKKzoxMDAxMDAwMDAyMDI5NjAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwNEYKKzoxMDAxMTAwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwRDcKKzoxMDAxMjAwMDAyMDAwMDAwMDIwMDAwMDAwMjA0NjEwMDAyMDQ4OTAwRDUKKzoxMDAyMDAwMDc1ODE1RUU0RjUzMkY1MzNGNTMwRjUzMUY1MzRDMjAwMzEKKzoxMDAyMTAwMEMyMDFBOTAwNzRGRTkwMTAwMEYwQTNEOUZDNzRGRDkwRjcKKzoxMDAyMjAwMDExMDBGMEEzRDlGQzc0MDI5MDdGOURGMDc0MDA5MDdGQzAKKzoxMDAyMzAwMDk3RjA3NDg2OTA3RjlFRjA5MDdGOTU3NDAzRjA5MDdGODYKKzoxMDAyNDAwMEFGRTBEMkUwRjA3NDAxOTA3RkFCRjA5MDdGQUVGMDkwMjEKKzoxMDAyNTAwMDdGQUM3NDA0RjA5MDdGQUQ3NDA0RjA5MDdGQzlGMDc0QUIKKzoxMDAyNjAwMDg0OTA3Rjk4RjA3NDAwRjU5ODc1QzgzMDdCMDU5MTIwRDQKKzoxMDAyNzAwMEQyQ0E3NTk4NTBEMkU4RDJBRkQyQUM3NDAwRjU4NjkwNEQKKzoxMDAyODAwMDdGRDY3NDAyRjA3OTJFN0EwMDdCMDBEQkZFREFGQUQ5OTEKKzoxMDAyOTAwMEY2NzQwNkYwODBGRUMwODZDMDgyQzA4M0MwODRDMDg1MkMKKzoxMDAyQTAwMEMwRTBFNTkxQzJFNEY1OTE5MDdGQUI3NDAxRjA5MDdGREUKKzoxMDAyQjAwMEU4RTBGOUEzRTBGQUEzRTBGQkEzRTBGQ0U5NTQ2MEI0QjIKKzoxMDAyQzAwMDAwMDMwMjAzMzlCNDQwNkVCQTAwMEIxMjA0MjA0MDAzNEQKKzoxMDAyRDAwMDAyMDQwMjAyMDQwQUJBMDEwMzAyMDQwQUJBMDIwMzAyNzcKKzoxMDAyRTAwMDA0MEFCQTAzMDMwMjA0NDRCQTA0MUVCQjAwMEE5MDdGNDYKKzoxMDAyRjAwMDk1RTA0NDAyRjAwMjA0MDI5MDdGOThFMDU0RkRGMDkwRjMKKzoxMDAzMDAwMDdGOTVFMDU0RkRGMDAyMDQwMkJBMDUwMzAyMDQwQUJBMjQKKzoxMDAzMTAwMDA2MTlCQjAwMDhFNTMzRDM5NTMyMDIwM0RFQkIwMTA4QTIKKzoxMDAzMjAwMEU1MzJDMzk1MzMwMjAzREUwMjA0MEFCQTA3MDU4QjM0QjMKKzoxMDAzMzAwMDAyMDQwMjAyMDQwQTAyMDQwQUJBMDAyMEI5ODAxMDkwRTIKKzoxMDAzNDAwMDdGMDBFNEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDQwMkI5REMKKzoxMDAzNTAwMDgyMDI4MEVCQjk4MTAyODBFNjAyMDQwQUJBMDEwRkJCNzcKKzoxMDAzNjAwMDAwMDMwMjA0MEFCQjAxMDMwMjA0MDIwMjA0MEFCQTAzRTYKKzoxMDAzNzAwMDBGQkIwMDAzMDIwNDBBQkIwMTAzMDIwNDAyMDIwNDBBQzkKKzoxMDAzODAwMEJBMDY1NkJDMDEwRjkwN0ZENDc0MDZGMDkwN0ZENTc0RTYKKzoxMDAzOTAwMDEyRjAwMjA0MDJCQzAyMTJCQjAwNkY5MDdGRDQ3NDA2RkMKKzoxMDAzQTAwMEYwOTA3RkQ1NzQyNEYwMDIwNDAyQkMwMzI5NzQwNEMzQzYKKzoxMDAzQjAwMDlCNDA1NzYwNTVFQjJCOTAwNjQ0MjU4MkY1ODI3NDAwRDQKKzoxMDAzQzAwMDM1ODNGNTgzRTBGOUEzRTBGQTkwN0ZENEU5RjA5MDdGREMKKzoxMDAzRDAwMEQ1RUFGMDAyMDQwMjAyMDQwQUJBMDgwRjc0MDE5MDdGMDEKKzoxMDAzRTAwMDAwRjA3NDAxOTA3RkI1RjAwMjA0MDJCQTA5MDMwMjA0MjAKKzoxMDAzRjAwMDAyQkEwQTA1NzQwMDAyMDNERUJBMEIwMzAyMDQwMjAyMDkKKzoxMDA0MDAwMDA0MEE5MDdGQjQ3NDAyRjA4MDA5OTA3RkI0RTA0NDAxNDQKKzoxMDA0MTAwMEYwODAwMEQwRTBEMDg1RDA4NEQwODNEMDgyRDA4NjMyRTYKKzoxMDA0MjAwMEVCMjBFNzFFQzM5NDBBNTAxOUVCMjMyNEZFRjU4Mjc0RDcKKzoxMDA0MzAwMDA1MzQwMEY1ODNFMEY1Q0JGNUNEQTNFMEY1Q0FGNUNDQTYKKzoxMDA0NDAwMEMzMjJEMzIyQjk0MTExRUI2NEZGNTQ4NEZCOTA3Rjk4RkYKKzoxMDA0NTAwMEUwNTQ3QjRCRjAwMjA0MDI5MDdGOUJFMDY0RkYwMjAzQjgKKzoxMDA0NjAwMERFQzA4NkMwODJDMDgzQzA4NEMwODVDMEUwRTU5MUMyODIKKzoxMDA0NzAwMEU0RjU5MTkwN0ZBOTc0MDRGMDEyMDVBMEQwRTBEMDg1MzYKKzoxMDA0ODAwMEQwODREMDgzRDA4MkQwODYzMkMwODZDMDgyQzA4M0MwNjAKKzoxMDA0OTAwMDg0QzA4NUMwRTBFNTkxQzJFNEY1OTE5MDdGQUE3NDA0MjAKKzoxMDA0QTAwMEYwOTA3RkM5RTBGOUU0RjU4NjkwN0RDMDc1ODUxMDg1RjAKKzoxMDA0QjAwMDMyODRFMDA1ODYwNTg0RjBFNTg0QjUzMzAyODAwOTA1QzEKKzoxMDA0QzAwMDMyMDU4NkEzRDlFQzgwMDA5MDdGQzlGMEIxMzFEMEUwMkQKKzoxMDA0RDAwMEQwODVEMDg0RDA4M0QwODJEMDg2MzJFNEY1ODY5MDdGRDgKKzoxMDA0RTAwMEJDRTAyMEUxNEI5MDdEMDBFNTMyRjBBM0U1MzNGMEEzQzIKKzoxMDA0RjAwMEU1MzBGMEEzRTUzMUYwQTNFNDMwMDAwMTA0RjBBMzA1RkEKKzoxMDA1MDAwMDg2OTAxMDAwNzkxMEUwQTMwNTg2RjBBMzA1ODZEOUY2NDEKKzoxMDA1MTAwMDA1ODY3NEZDRjBBMzA1ODY5MDExMDA3OTEwRTBBMzA1MTAKKzoxMDA1MjAwMDg2RjBBMzA1ODZEOUY2RTRGNTg2OTA3RkJENzQyNkYwQTMKKzoxMDA1MzAwMDIyMjAwMDEzRTUzMkI1MzMwMTIyMDUzMzc1ODMxMDg1N0YKKzoxMDA1NDAwMDMzODJFMEY1OTlEMjAwNzQwMEI1MzQwMTIyRTUzM0QzNEIKKzoxMDA1NTAwMDk1MzJDMzk1MzQ0MEY1NzUzNDAwRDIwMTAyMDVBMEMwMzAKKzoxMDA1NjAwMDg2QzA4MkMwODNDMDg0QzA4NUMwRTAzMDk5MDdDMjk5MkMKKzoxMDA1NzAwMEMyMDAxMjA1MzQzMDk4MDUxMjA1OEFDMjk4RDBFMEQwMjYKKzoxMDA1ODAwMDg1RDA4NEQwODNEMDgyRDA4NjMyNzU4MzExODUzMDgyMjUKKzoxMDA1OTAwMDA1ODJFNTk5RjBFNTgyQjUzMTAxMjIwNTMwQjFBMDIyNEUKKzoxMDA1QTAwMDkwN0ZCOEUwMjBFMTM4MjAwMTM2RTUzMEI1MzEwMTIyRjYKKzoxMDA1QjAwMEU0RjU4Njc1ODMxMTA1ODY5MDdFMDBGMEEzMDU4Njc5QTMKKzoxMDA1QzAwMDAxRTUzMEI1MzEwMjgwMTAwNTMxODUzMTgyRTAwNTg2QzQKKzoxMDA1RDAwMEYwQTMwNTg2MDlCOTQwRTk5MDdGQjlFOTYwMDFGMDIyRUUKKzoxMDA1RTAwMEMyMDFFNEY1ODY5MDdFMDA3NDAxRjBBMzc0MDJGMDkwREQKKzoxMDA1RjAwMDdGQjlGMDIyQzI5OUY1OTkzMDk5RkRDMjk5MjJFNTVFNDIKKzoxMDA2MDAwMEY2M0NGRDhGRkVDOEZGNjRGRkIyRkZEOUZGRURGRkYzOUMKKzoxMDA2MTAwMEZGRkExMjAxMDAwMUZGRkZGRjQwQ0QwNjA0MDE4OUFCODQKKzoxMDA2MjAwMDAxMDIwMzAxMDkwMjIwMDAwMTAxMDA4MDMyMDkwNDAwRDcKKzoxMDA2MzAwMDAwMDJGRkZGRkYwMDA3MDU4MjAzNDAwMDAxMDcwNTAyREIKKzoxMDA2NDAwMDAyNDAwMDAwMDY0QzA2NTAwNjcyMDZBMDA0MDMwMDAwOUIKKzoxMDA2NTAwMDIyMDM0MTAwNDMwMDREMDA0NTAwMjAwMDc1MDA3MzAwNTcKKzoxMDA2NjAwMDYyMDAyMDAwNzcwMDY5MDA2NDAwNjcwMDY1MDA3NDAwODQKKzoxMDA2NzAwMDczMDAyRTAzNDEwMDQzMDA0RDAwNDUwMDIwMDA1NTAwNEIKKzoxMDA2ODAwMDUzMDA0MjAwMjAwMDczMDA2NTAwNzIwMDY5MDA2MTAwQTEKKzoxMDA2OTAwMDZDMDAyMDAwNzcwMDY5MDA2NDAwNjcwMDY1MDA3NDAwNEEKKzowNjA2QTAwMDA2MDMzNDAwMzcwMEUwCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLlMgYi9maXJtd2FyZS9rZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5TCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuUwpyZW5hbWUgdG8gZmlybXdhcmUva2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuUwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbl9wZGEveGlyY29tX3Bncy5IRVggYi9maXJtd2FyZS9rZXlzcGFuX3BkYS94aXJjb21fcGdzLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWIwMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEveGlyY29tX3Bncy5IRVgKQEAgLTAsMCArMSw4NyBAQAorOjAzMDAwMDAwMDIwMjAwRjkKKzowNDAwMjMwMDAyMDU5QjAwMzcKKzowNTAwMzAwMDAwMDAwMDAwMDBDQgorOjA0MDA0MzAwMDIwMTAwMDBCNgorOjEwMDEwMDAwMDIwMkJBMDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDAyQgorOjEwMDExMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDBENworOjEwMDEyMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDQ4NTAwMDIwNEI5MDA4MQorOjEwMDIwMDAwNzU4MTVFRTRGNTMyRjUzM0Y1MzBGNTMxRjUzNEMyMDAzMQorOjEwMDIxMDAwQzIwMUE5MDA3NEZFOTAxMDAwRjBBM0Q5RkM3NEZEOTBGNworOjEwMDIyMDAwMTEwMEYwQTNEOUZDOTA3Rjk0NzRCRkYwOTA3Rjk1NzQ3NworOjEwMDIzMDAwRUZGMDc0MTA5MDdGOUVGMDc0MDA5MDdGOThGMDc0NDBGRgorOjEwMDI0MDAwOTA3RjlERjA3NDAwOTA3Rjk3RjA3NDgyOTA3RjlFRjA3NQorOjEwMDI1MDAwOTA3Rjk1NzQwM0YwOTA3RkFGRTBEMkUwRjA3NDAxOTA0RQorOjEwMDI2MDAwN0ZBQkYwOTA3RkFFRjA5MDdGQUM3NDA0RjA5MDdGQURFOAorOjEwMDI3MDAwNzQwNEYwOTA3RkM5RjA3NDA3OTA3RkFGRjA3NDIwOTAwMQorOjEwMDI4MDAwN0Y5Q0YwNzQ4MDkwN0Y5OEYwNzQ1M0Y1OTg3NUM4MzAxNworOjEwMDI5MDAwN0IwNTkxNDREMkNBNzU5ODUwRDJFOEQyQUZEMkFDNzRFMworOjEwMDJBMDAwMDBGNTg2OTA3RkQ2NzQwMkYwNzkyRTdBMDA3QjAwREIxMQorOjEwMDJCMDAwRkVEQUZBRDlGNjc0MDZGMDgwRkVDMDg2QzA4MkMwODNFQQorOjEwMDJDMDAwQzA4NEMwODVDMEUwRTU5MUMyRTRGNTkxOTA3RkFCNzQzNQorOjEwMDJEMDAwMDFGMDkwN0ZFOEUwRjlBM0UwRkFBM0UwRkJBM0UwRkNFMworOjEwMDJFMDAwRTk1NDYwQjQwMDAzMDIwMzVEQjQ0MDZFQkEwMDBCMTIxRgorOjEwMDJGMDAwMDQ0NDQwMDMwMjA0MjYwMjA0MkVCQTAxMDMwMjA0MkUyMQorOjEwMDMwMDAwQkEwMjAzMDIwNDJFQkEwMzAzMDIwNDY4QkEwNDFFQkIzNQorOjEwMDMxMDAwMDAwQTkwN0Y5NUUwNDQwMkYwMDIwNDI2OTA3Rjk4RTA2NgorOjEwMDMyMDAwNTRGREYwOTA3Rjk1RTA1NEZERjAwMjA0MjZCQTA1MDNEOQorOjEwMDMzMDAwMDIwNDJFQkEwNjE5QkIwMDA4RTUzM0QzOTUzMjAyMDQzNQorOjEwMDM0MDAwMDJCQjAxMDhFNTMyQzM5NTMzMDIwNDAyMDIwNDJFQkE0RgorOjEwMDM1MDAwMDcwNThCMzQwMjA0MjYwMjA0MkUwMjA0MkVCQTAwMjA2NAorOjEwMDM2MDAwQjk4MDEwOTA3RjAwRTRGMEEzRjA5MDdGQjU3NDAyRjBBNAorOjEwMDM3MDAwMDIwNDI2Qjk4MjAyODBFQkI5ODEwMjgwRTYwMjA0MkVEMworOjEwMDM4MDAwQkEwMTBGQkIwMDAzMDIwNDJFQkIwMTAzMDIwNDI2MDJDNAorOjEwMDM5MDAwMDQyRUJBMDMwRkJCMDAwMzAyMDQyRUJCMDEwMzAyMDRBOAorOjEwMDNBMDAwMjYwMjA0MkVCQTA2NTZCQzAxMEY5MDdGRDQ3NDA2RjBDNAorOjEwMDNCMDAwOTA3RkQ1NzQ1QUYwMDIwNDI2QkMwMjEyQkIwMDZGOTBFNQorOjEwMDNDMDAwN0ZENDc0MDZGMDkwN0ZENTc0NkNGMDAyMDQyNkJDMDNEMQorOjEwMDNEMDAwMjk3NDA0QzM5QjQwNTc2MDU1RUIyQjkwMDY4QzI1ODJGMworOjEwMDNFMDAwRjU4Mjc0MDAzNTgzRjU4M0UwRjlBM0UwRkE5MDdGRDRCOQorOjEwMDNGMDAwRTlGMDkwN0ZENUVBRjAwMjA0MjYwMjA0MkVCQTA4MEYzNQorOjEwMDQwMDAwNzQwMTkwN0YwMEYwNzQwMTkwN0ZCNUYwMDIwNDI2QkE2OQorOjEwMDQxMDAwMDkwMzAyMDQyNkJBMEEwNTc0MDAwMjA0MDJCQTBCMDM5NworOjEwMDQyMDAwMDIwNDI2MDIwNDJFOTA3RkI0NzQwMkYwODAwOTkwN0ZBQgorOjEwMDQzMDAwQjRFMDQ0MDFGMDgwMDBEMEUwRDA4NUQwODREMDgzRDBGNworOjEwMDQ0MDAwODJEMDg2MzJFQjIwRTcxRUMzOTQwQTUwMTlFQjIzMjQ5NgorOjEwMDQ1MDAwNDZGNTgyNzQwNjM0MDBGNTgzRTBGNUNCRjVDREEzRTBENAorOjEwMDQ2MDAwRjVDQUY1Q0NDMzIyRDMyMkI5NDExMUVCNjRGRjU0ODAwNQorOjEwMDQ3MDAwRkI5MDdGOThFMDU0N0Y0QkYwMDIwNDI2OTA3RjlCRTAzNgorOjEwMDQ4MDAwNjRGRjAyMDQwMkMwODZDMDgyQzA4M0MwODRDMDg1QzBFRAorOjEwMDQ5MDAwRTBFNTkxQzJFNEY1OTE5MDdGQTk3NDA0RjA3NDIwOTA5NgorOjEwMDRBMDAwN0Y5Q0YwMTIwNURDNzQyMDkwN0Y5Q0YwRDBFMEQwODUxQQorOjEwMDRCMDAwRDA4NEQwODNEMDgyRDA4NjMyQzA4NkMwODJDMDgzQzAzMAorOjEwMDRDMDAwODRDMDg1QzBFMDc0MTA5MDdGOUNGMEU1OTFDMkU0RjU5MworOjEwMDREMDAwOTE5MDdGQUE3NDA0RjA5MDdGQzlFMEY5RTRGNTg2OTBDQQorOjEwMDRFMDAwN0RDMDc1ODUxMDg1MzI4NEUwMDU4NjA1ODRGMEU1ODQzRAorOjEwMDRGMDAwQjUzMzAyODAwOTA1MzIwNTg2QTNEOUVDODAwMDkwN0ZEMAorOjEwMDUwMDAwQzlGMEIxNkQ3NDIwOTA3RjlDRjBEMEUwRDA4NUQwODQ4QworOjEwMDUxMDAwRDA4M0QwODJEMDg2MzJFNEY1ODY5MDdGQkNFMDIwRTFBMworOjEwMDUyMDAwNEI5MDdEMDBFNTMyRjBBM0U1MzNGMEEzRTUzMEYwQTM3NgorOjEwMDUzMDAwRTUzMUYwQTNFNDMwMDAwMTA0RjBBMzA1ODY5MDEwMDAzQgorOjEwMDU0MDAwNzkxMEUwQTMwNTg2RjBBMzA1ODZEOUY2MDU4Njc0RkMyQworOjEwMDU1MDAwRjBBMzA1ODY5MDExMDA3OTEwRTBBMzA1ODZGMEEzMDVBRAorOjEwMDU2MDAwODZEOUY2RTRGNTg2OTA3RkJENzQyNkYwMjIyMDAwMTMyQworOjEwMDU3MDAwRTUzMkI1MzMwMTIyMDUzMzc1ODMxMDg1MzM4MkUwRjUwQQorOjEwMDU4MDAwOTlEMjAwNzQwMEI1MzQwMTIyRTUzM0QzOTUzMkMzOTU3NgorOjEwMDU5MDAwMzQ0MEY1NzUzNDAwRDIwMTAyMDVEQ0MwODZDMDgyQzA0QgorOjEwMDVBMDAwODNDMDg0QzA4NUMwRTAzMDk5MDdDMjk5QzIwMDEyMDU5QgorOjEwMDVCMDAwNzAzMDk4MDUxMjA1QzZDMjk4RDBFMEQwODVEMDg0RDA5RQorOjEwMDVDMDAwODNEMDgyRDA4NjMyNzU4MzExODUzMDgyMDU4MkU1OTk4OQorOjEwMDVEMDAwRjBFNTgyQjUzMTAxMjIwNTMwQjFEQzIyNzQxMDkwN0Y0NAorOjEwMDVFMDAwOUNGMDkwN0ZCOEUwMjBFMTNFMjAwMTNDRTUzMEI1MzE0MQorOjEwMDVGMDAwMDEyMkU0RjU4Njc1ODMxMTA1ODY5MDdFMDBGMEEzMDUzRgorOjEwMDYwMDAwODY3OTAxRTUzMEI1MzEwMjgwMTAwNTMxODUzMTgyRTAwRgorOjEwMDYxMDAwMDU4NkYwQTMwNTg2MDlCOTQwRTk3NDEwOTA3RjlDRjAyNworOjEwMDYyMDAwOTA3RkI5RTk2MDAxRjAyMkMyMDFFNEY1ODY5MDdFMDA3NgorOjEwMDYzMDAwNzQwMUYwQTM3NDAyRjA5MDdGQjlGMDIyQzI5OUY1OTk4OQorOjEwMDY0MDAwMzA5OUZEQzI5OTIyRTU1RUY2M0NGRDhGRkVDOEZGNjQzRAorOjEwMDY1MDAwRkZCMkZGRDlGRkVERkZGM0ZGRkExMjAxMDAwMUZGRkYyOAorOjEwMDY2MDAwRkY0MENEMDYwNDAxODlBQjAxMDIwMzAxMDkwMjIwMDAwRAorOjEwMDY3MDAwMDEwMTAwODAzMjA5MDQwMDAwMDJGRkZGRkYwMDA3MDVBRQorOjEwMDY4MDAwODIwMzQwMDAwMTA3MDUwMjAyNDAwMDAwMDY5NDA2OTgxQworOjEwMDY5MDAwMDZCQTA2RTgwNDAzMDAwMDIyMDM0MTAwNDMwMDREMDBBRgorOjEwMDZBMDAwNDUwMDIwMDA3NTAwNzMwMDYyMDAyMDAwNzcwMDY5MDA5QgorOjEwMDZCMDAwNjQwMDY3MDA2NTAwNzQwMDczMDAyRTAzNDEwMDQzMDA2RQorOjEwMDZDMDAwNEQwMDQ1MDAyMDAwNTUwMDUzMDA0MjAwMjAwMDczMDBGQgorOjEwMDZEMDAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNzcwMDY5MDAwRAorOjBFMDZFMDAwNjQwMDY3MDA2NTAwNzQwMDA2MDMzNDAwMzcwMEY0Cis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3MuUyBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL3hpcmNvbV9wZ3MuUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3MuUwpyZW5hbWUgdG8gZmlybXdhcmUva2V5c3Bhbl9wZGEveGlyY29tX3Bncy5TCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rb3JnL2sxMjEyLmRzcC5paGV4IGIvZmlybXdhcmUva29yZy9rMTIxMi5kc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTUxOTk3Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva29yZy9rMTIxMi5kc3AuaWhleApAQCAtMCwwICsxLDk4NyBAQAorOjEwMDAwMDAwMDFGRjE4RkZGNUZGQ0ZGRjAwRkYwMEZGRkZGRjAwRkYxQworOjEwMDAxMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZFQQorOjEwMDAyMDAwMjZGRjE4RkZGRkZGMEZGRjAwRkYwMEZGRkZGRjAwRkY4RAorOjEwMDAzMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZDQQorOjEwMDA0MDAwMDBGRjBBRkZGRkZGMUZGRjAwRkYwMEZGRkZGRjAwRkY5MQorOjEwMDA1MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZBQQorOjEwMDA2MDAwMDBGRjBBRkZGRkZGMUZGRjAwRkYwMEZGRkZGRjAwRkY3MQorOjEwMDA3MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY4QQorOjEwMDA4MDAwMDBGRjBBRkZGRkZGMUZGRjAwRkYwMEZGRkZGRjAwRkY1MQorOjEwMDA5MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY2QQorOjEwMDBBMDAwMzhGRjE4RkZGRkZGREZGRjAwRkYwMEZGRkZGRjAwRkYyQgorOjEwMDBCMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY0QQorOjEwMDBDMDAwMDBGRjBBRkZGRkZGMUZGRjAwRkYwMEZGRkZGRjAwRkYxMQorOjEwMDBEMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYyQQorOjEwMDBFMDAwMDNGRjNDRkZGRkZGRkNGRjY3RkY0MEZGRkZGRkMwRkY3OAorOjEwMDBGMDAwRkZGRjkzRkZGRkZGRTBGRjAwRkYwQ0ZGRkZGRjBDRkY4MAorOjEwMDEwMDAwMENGRjBDRkZGRkZGMDBGRjMwRkYwQ0ZGRkZGRjAwRkZBNQorOjEwMDExMDAwMEZGRjQwRkZGRkZGRjRGRjQ3RkY4MEZGRkZGRjBBRkZENQorOjEwMDEyMDAwODJGRjIzRkZGRkZGMEZGRjhERkY5M0ZGRkZGRjdBRkY4QgorOjEwMDEzMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkY3MgorOjEwMDE0MDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkY5QgorOjEwMDE1MDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkYzRAorOjEwMDE2MDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjFDRkY1OQorOjEwMDE3MDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjFDRkY0OQorOjEwMDE4MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkY1MQorOjEwMDE5MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkY0MQorOjEwMDFBMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYzMQorOjEwMDFCMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYyMQorOjEwMDFDMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYxMQorOjEwMDFEMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYwMQorOjEwMDFFMDAwNzJGRjFDRkZGRkZGNUZGRjAyRkY0MEZGRkZGRjQwRkZBQQorOjEwMDFGMDAwMTFGRjkwRkZGRkZGMjBGRjAwRkY0OEZGRkZGRjAwRkYwMAorOjEwMDIwMDAwOEJGRjkzRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjAwRkY3QQorOjEwMDIxMDAwODZGRjkzRkZGRkZGNzBGRjhCRkY5M0ZGRkZGRjMwRkYxMQorOjEwMDIyMDAwOERGRjkzRkZGRkZGNDBGRjAyRkY5MUZGRkZGRjgwRkY2NQorOjEwMDIzMDAwMDJGRjkxRkZGRkZGOTBGRjhERkY5M0ZGRkZGRkMwRkZDNQorOjEwMDI0MDAwNDZGRjkwRkZGRkZGMjBGRjhERkY5M0ZGRkZGRkQwRkZEMgorOjEwMDI1MDAwMDBGRjQ4RkZGRkZGMDBGRjhCRkY5M0ZGRkZGRjQwRkYwMgorOjEwMDI2MDAwRkZGRjQ3RkZGRkZGRjBGRjhERkY5M0ZGRkZGRkUwRkY2MgorOjEwMDI3MDAwMDBGRjM0RkZGRkZGMTdGRjAwRkYzOEZGRkZGRjE3RkZFRQorOjEwMDI4MDAwODBGRjM3RkZGRkZGMDJGRjg0RkYzQkZGRkZGRjAyRkZGRQorOjEwMDI5MDAwMDJGRjM0RkZGRkZGNEFGRjAyRkYzOEZGRkZGRjRBRkY2NAorOjEwMDJBMDAwMDFGRjM0RkZGRkZGMkJGRjAxRkYzOEZGRkZGRjJCRkY5NAorOjEwMDJCMDAwODBGRjQzRkZGRkZGMDBGRjgyRkY5M0ZGRkZGRjUwRkYyMAorOjEwMDJDMDAwODFGRjQzRkZGRkZGMjBGRjgyRkY5M0ZGRkZGRjYwRkZERgorOjEwMDJEMDAwODRGRjQzRkZGRkZGMDBGRjgyRkY5M0ZGRkZGRjcwRkZEQworOjEwMDJFMDAwODVGRjQzRkZGRkZGMjBGRjgzRkY5M0ZGRkZGRkMwRkY1QQorOjEwMDJGMDAwODJGRjM3RkZGRkZGODFGRjAwRkYzNEZGRkZGRjg5RkYxMQorOjEwMDMwMDAwODhGRjQzRkZGRkZGMDBGRjAwRkY2OEZGRkZGRjA3RkZCRAorOjEwMDMxMDAwODJGRjgzRkZGRkZGNjBGRjAwRkY2OEZGRkZGRjA3RkYxMworOjEwMDMyMDAwOENGRjQzRkZGRkZGMDBGRjAwRkY2OEZGRkZGRjA3RkY5OQorOjEwMDMzMDAwODNGRjgzRkZGRkZGQzBGRjAwRkY2OEZGRkZGRjA3RkY5MgorOjEwMDM0MDAwOEFGRjQzRkZGRkZGMDBGRjAwRkY2OEZGRkZGRjA3RkY3QgorOjEwMDM1MDAwODJGRjgzRkZGRkZGNTBGRjAwRkY2OEZGRkZGRjA3RkZFMworOjEwMDM2MDAwOEVGRjQzRkZGRkZGMDBGRjAwRkY2OEZGRkZGRjA3RkY1NworOjEwMDM3MDAwODJGRjgzRkZGRkZGNzBGRjAwRkY2OEZGRkZGRjA3RkZBMworOjEwMDM4MDAwODNGRjM3RkZGRkZGMDFGRjAwRkYzNEZGRkZGRjg5RkZGRgorOjEwMDM5MDAwMDBGRjM0RkZGRkZGMjZGRjMwRkYwQ0ZGRkZGRjAwRkZEMQorOjEwMDNBMDAwMDBGRjQwRkZGRkZGMjZGRjIwRkY0MEZGRkZGRjA0RkY4RAorOjEwMDNCMDAwODBGRjQxRkZGRkZGMDJGRkUwRkYyMEZGRkZGRjBGRkY3NQorOjEwMDNDMDAwMDBGRjY4RkZGRkZGQjZGRjYzRkYyMkZGRkZGRjBGRkY4NQorOjEwMDNEMDAwNjJGRjZBRkZGRkZGQTZGRjYyRkY2QUZGRkZGRkE2RkY0MworOjEwMDNFMDAwMDBGRjY4RkZGRkZGQTZGRjAwRkYwOUZGRkZGRjA3RkZGOQorOjEwMDNGMDAwNDBGRjQxRkZGRkZGMDJGRkUwRkYyMEZGRkZGRjBGRkY3NQorOjEwMDQwMDAwMDBGRjY4RkZGRkZGQjZGRjYzRkYyMkZGRkZGRjBGRkY0NAorOjEwMDQxMDAwNjJGRjZBRkZGRkZGQTZGRjYyRkY2QUZGRkZGRkE2RkYwMgorOjEwMDQyMDAwMDBGRjY4RkZGRkZGQTZGRjA1RkY0MUZGRkZGRjAyRkY4MAorOjEwMDQzMDAwRTBGRjIwRkZGRkZGMEZGRjhCRkY5M0ZGRkZGRkJCRkZERQorOjEwMDQ0MDAwMDJGRjQxRkZGRkZGODJGRkUwRkYyMEZGRkZGRjBGRkZFMgorOjEwMDQ1MDAwOEJGRjkzRkZGRkZGQ0JGRjA1RkY0MUZGRkZGRkUyRkY5NQorOjEwMDQ2MDAwRTBGRjIwRkZGRkZGMEZGRjhCRkY5M0ZGRkZGRkRCRkY4RQorOjEwMDQ3MDAwMjBGRjBDRkZGRkZGMDBGRjMwRkYwQ0ZGRkZGRjAwRkYxRQorOjEwMDQ4MDAwMDBGRjQwRkZGRkZGMjZGRjAwRkY0MUZGRkZGRjAyRkZDRAorOjEwMDQ5MDAwRTBGRjIwRkZGRkZGMEZGRjgzRkY5M0ZGRkZGRjgyRkZCRgorOjEwMDRBMDAwODNGRjkzRkZGRkZGOUJGRjAzRkY0MUZGRkZGRjAyRkY1RgorOjEwMDRCMDAwRTBGRjIwRkZGRkZGMEZGRjgzRkY5M0ZGRkZGRkEyRkY3RgorOjEwMDRDMDAwODNGRjkzRkZGRkZGQkJGRjIwRkYwQ0ZGRkZGRjAwRkYzOQorOjEwMDREMDAwMDBGRjQwRkZGRkZGMDBGRjQ0RkY5MEZGRkZGRjYwRkZCMgorOjEwMDRFMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYxNgorOjEwMDRGMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYwNgorOjEwMDUwMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZGNQorOjEwMDUxMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZFNQorOjEwMDUyMDAwMjFGRjQwRkZGRkZGNjBGRjQwRkY5MEZGRkZGRjIwRkYyNAorOjEwMDUzMDAwMDJGRjM1RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY1MgorOjEwMDU0MDAwMDBGRjNDRkZGRkZGODVGRjBBRkYxNEZGRkZGRkFFRkYyOAorOjEwMDU1MDAwMDBGRkEwRkZGRkZGMDNGRjAwRkYzNUZGRkZGRjAwRkZDRAorOjEwMDU2MDAwMDBGRjM0RkZGRkZGMDhGRjAyRkYzQ0ZGRkZGRjA1RkYxNgorOjEwMDU3MDAwMEFGRjE0RkZGRkZGRkVGRjAwRkZBMEZGRkZGRjAzRkZDNgorOjEwMDU4MDAwMDNGRjM1RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkYwMQorOjEwMDU5MDAwMDJGRjNDRkZGRkZGMDVGRjBCRkYxNEZGRkZGRjRFRkZCNQorOjEwMDVBMDAwMDBGRkEwRkZGRkZGMDNGRjAwRkYzNUZGRkZGRjAxRkY3QworOjEwMDVCMDAwNzhGRjFDRkZGRkZGNUZGRjAzRkYzNUZGRkZGRjAxRkYxOQorOjEwMDVDMDAwNzhGRjFDRkZGRkZGNUZGRjVCRkY0MEZGRkZGRkYwRkZCNworOjEwMDVEMDAwRkZGRjkzRkZGRkZGMzBGRjgwRkY0MkZGRkZGRjcwRkYzMQorOjEwMDVFMDAwRkZGRjkzRkZGRkZGNjBGRkRGRkY0MEZGRkZGRkYwRkYxNAorOjEwMDVGMDAwRkVGRjkzRkZGRkZGRjBGRjgwRkY0MkZGRkZGRjcwRkY1MgorOjEwMDYwMDAwRkZGRjkzRkZGRkZGMjBGRkMxRkY0MUZGRkZGRjgwRkZDMAorOjEwMDYxMDAwRkZGRjkzRkZGRkZGRjBGRjAzRkYzQ0ZGRkZGRkZDRkYyNworOjEwMDYyMDAwMDBGRjNDRkZGRkZGMDRGRjAyRkYzQ0ZGRkZGRjIzRkYzMworOjEwMDYzMDAwMDBGRjQ4RkZGRkZGMDBGRjhCRkY5M0ZGRkZGRjIwRkYzRQorOjEwMDY0MDAwNTlGRjE4RkZGRkZGREZGRjAwRkY0OEZGRkZGRjAwRkYxQworOjEwMDY1MDAwOEJGRjkzRkZGRkZGMjBGRjE4RkYyM0ZGRkZGRjBGRkYxQworOjEwMDY2MDAwMENGRjE0RkZGRkZGRTRGRjhCRkY4M0ZGRkZGRjI0RkY1RQorOjEwMDY3MDAwMDBGRjIyRkZGRkZGMEZGRjBERkYxOEZGRkZGRjBGRkYxRgorOjEwMDY4MDAwOEJGRjgzRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjE0RkZGMgorOjEwMDY5MDAwRTBGRjIyRkZGRkZGMEZGRjEwRkYxOEZGRkZGRkQwRkY1QgorOjEwMDZBMDAwOEJGRjgzRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjI0RkZDMgorOjEwMDZCMDAwRTBGRjIyRkZGRkZGMEZGRjEwRkYxOEZGRkZGRjMwRkZEQgorOjEwMDZDMDAwOEJGRjgzRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjQ0RkY4MgorOjEwMDZEMDAwRTBGRjIyRkZGRkZGMEZGRjIyRkYxOEZGRkZGRjkwRkY0OQorOjEwMDZFMDAwOEJGRjgzRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjg0RkYyMgorOjEwMDZGMDAwRTBGRjIyRkZGRkZGMEZGRjIyRkYxOEZGRkZGRjkwRkYyOQorOjEwMDcwMDAwMENGRjE4RkZGRkZGNkZGRjAwRkY0MEZGRkZGRjAwRkYyMAorOjEwMDcxMDAwODZGRjkzRkZGRkZGNzBGRjc2RkYxQ0ZGRkZGRjlGRkYyOQorOjEwMDcyMDAwODZGRjgzRkZGRkZGNTBGRjg2RkY4M0ZGRkZGRjY0RkYwRAorOjEwMDczMDAwNjBGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRjgxRkYyNQorOjEwMDc0MDAwMDBGRjM1RkZGRkZGMDBGRjYwRkYxQ0ZGRkZGRjdGRkY4MworOjEwMDc1MDAwNjFGRjFDRkZGRkZGQUZGRjc3RkYxQ0ZGRkZGRkFGRkYzNQorOjEwMDc2MDAwNjNGRjFDRkZGRkZGNEZGRjA1RkYzNUZGRkZGRjAwRkY4QgorOjEwMDc3MDAwOTJGRjNCRkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY3QQorOjEwMDc4MDAwMDBGRjM4RkZGRkZGMDhGRjAwRkYzQ0ZGRkZGRjY1RkY5MgorOjEwMDc5MDAwMEZGRjE0RkZGRkZGNkVGRjAwRkY2MEZGRkZGRjAzRkY2RgorOjEwMDdBMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY3OEZGRkZGRjEzRkY1NQorOjEwMDdCMDAwMDBGRjc4RkZGRkZGMDNGRjA1RkYzNUZGRkZGRkUwRkZBRQorOjEwMDdDMDAwN0ZGRjM4RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY0MAorOjEwMDdEMDAwMDBGRjM4RkZGRkZGMDhGRjAwRkYzQ0ZGRkZGRjY1RkY0MgorOjEwMDdFMDAwMTBGRjE0RkZGRkZGMEVGRjAwRkY2MEZGRkZGRjAzRkY3RQorOjEwMDdGMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY1OEZGRkZGRjEzRkYyNQorOjEwMDgwMDAwMDBGRjU4RkZGRkZGMDNGRjc5RkYxQ0ZGRkZGRkZGRkYwMworOjEwMDgxMDAwMDBGRjBBRkZGRkZGMEZGRjBFRkYxQ0ZGRkZGRjFGRkY4MAorOjEwMDgyMDAwOERGRjgzRkZGRkZGRTBGRjc4RkYyMkZGRkZGRjBGRkYzOQorOjEwMDgzMDAwMTVGRjFDRkZGRkZGODVGRjc1RkYxQ0ZGRkZGRjhGRkZFQworOjEwMDg0MDAwMDBGRjQwRkZGRkZGNDBGRjhCRkY5M0ZGRkZGRjgwRkY5NAorOjEwMDg1MDAwMDJGRjQwRkZGRkZGNjBGRjExRkY5MEZGRkZGRjIwRkYzRgorOjEwMDg2MDAwMTZGRjE4RkZGRkZGMUZGRjBFRkYxQ0ZGRkZGRjFGRkZGQworOjEwMDg3MDAwNzVGRjFDRkZGRkZGOEZGRjgwRkYzNUZGRkZGRjAwRkZBRAorOjEwMDg4MDAwMDBGRjM0RkZGRkZGMDhGRjAwRkY0MEZGRkZGRjAwRkZGNgorOjEwMDg5MDAwNDBGRjNDRkZGRkZGMDVGRjExRkYxNEZGRkZGRjRFRkY2RQorOjEwMDhBMDAwMDBGRjY4RkZGRkZGMDNGRjg3RkY4M0ZGRkZGRkYwRkZFRAorOjEwMDhCMDAwODZGRjkzRkZGRkZGODBGRjkwRkYzN0ZGRkZGRjAwRkZFMgorOjEwMDhDMDAwMDJGRjM0RkZGRkZGMDhGRjAwRkY2MEZGRkZGRjAzRkY5MQorOjEwMDhEMDAwODlGRjkzRkZGRkZGMjBGRjAwRkY2MEZGRkZGRjAzRkY4MworOjEwMDhFMDAwODlGRjkzRkZGRkZGMzBGRjAwRkY2MEZGRkZGRjAzRkY2MworOjEwMDhGMDAwODlGRjkzRkZGRkZGNDBGRjAwRkY2MEZGRkZGRjAzRkY0MworOjEwMDkwMDAwODlGRjkzRkZGRkZGNTBGRjg2RkY5N0ZGRkZGRjkwRkZEOAorOjEwMDkxMDAwMDNGRjM1RkZGRkZGMDBGRjYwRkYxQ0ZGRkZGRjdGRkZBRQorOjEwMDkyMDAwNjNGRjFDRkZGRkZGN0ZGRjAwRkY0MEZGRkZGRjAwRkY5MworOjEwMDkzMDAwOERGRjkzRkZGRkZGNjBGRjgyRkY5M0ZGRkZGRjQwRkZFQworOjEwMDk0MDAwODZGRjkzRkZGRkZGQTBGRjgzRkYzN0ZGRkZGRjgwRkZCRQorOjEwMDk1MDAwNzVGRjFDRkZGRkZGMUZGRjgzRkY0M0ZGRkZGRjAwRkYyQgorOjEwMDk2MDAwODdGRjkzRkZGRkZGRTBGRjZBRkYxQ0ZGRkZGRjBGRkYwMgorOjEwMDk3MDAwNDBGRjQxRkZGRkZGMDBGRjhCRkY5M0ZGRkZGRjkwRkY1MgorOjEwMDk4MDAwODBGRjQxRkZGRkZGMDBGRjhCRkY5M0ZGRkZGRkEwRkZGMgorOjEwMDk5MDAwOEJGRjg3RkZGRkZGOTBGRjdFRkYzOEZGRkZGRjAwRkYwOQorOjEwMDlBMDAwNDBGRjM0RkZGRkZGMDhGRjAwRkYzOEZGRkZGRjA4RkY5NQorOjEwMDlCMDAwMDBGRjNDRkZGRkZGNTVGRjEzRkYxNEZGRkZGRkJFRkZDQgorOjEwMDlDMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkY1QgorOjEwMDlEMDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkY1QgorOjEwMDlFMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkYzQgorOjEwMDlGMDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkYzQgorOjEwMEEwMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkYxQQorOjEwMEExMDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkYxQQorOjEwMEEyMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjAzRkYwQQorOjEwMEEzMDAwOEJGRjk3RkZGRkZGOTBGRjA1RkY0MUZGRkZGRjAwRkZDOAorOjEwMEE0MDAwOTJGRjQzRkZGRkZGMDFGRjg2RkY5M0ZGRkZGRkYwRkZEMQorOjEwMEE1MDAwODZGRjkzRkZGRkZGRTFGRjhERkY4M0ZGRkZGRkUwRkZCNgorOjEwMEE2MDAwNzhGRjIyRkZGRkZGMEZGRjE1RkYxQ0ZGRkZGRjg1RkYzMQorOjEwMEE3MDAwNzVGRjFDRkZGRkZGOEZGRjhERkY4M0ZGRkZGRjQwRkYxMAorOjEwMEE4MDAwNzhGRjIyRkZGRkZGMEZGRjUzRkYxOEZGRkZGRkI0RkZBOAorOjEwMEE5MDAwNzJGRjFDRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjAwRkY4MworOjEwMEFBMDAwOEJGRjkzRkZGRkZGMzBGRjAyRkY0MEZGRkZGRjYwRkY2MAorOjEwMEFCMDAwMTFGRjkwRkZGRkZGMjBGRjE2RkYxOEZGRkZGRjRGRkYwMgorOjEwMEFDMDAwMzhGRjQyRkZGRkZGNTBGRjQ4RkY5MEZGRkZGRkEwRkZFRQorOjEwMEFEMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYyMAorOjEwMEFFMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYxMAorOjEwMEFGMDAwMzBGRjQwRkZGRkZGMDBGRjQ3RkY5MEZGRkZGRjUwRkY2OQorOjEwMEIwMDAwMDBGRjBBRkZGRkZGMEZGRjFFRkYxQ0ZGRkZGRjBGRkY4RAorOjEwMEIxMDAwMjBGRjFDRkZGRkZGQ0ZGRjE2RkYxOEZGRkZGRjFGRkY4NworOjEwMEIyMDAwMDBGRjQwRkZGRkZGMDBGRjQ2RkY5MEZGRkZGRjcwRkY0OQorOjEwMEIzMDAwMThGRjFDRkZGRkZGRUZGRjZBRkYxQ0ZGRkZGRkJGRkY1NworOjEwMEI0MDAwNUNGRjFDRkZGRkZGN0ZGRjE4RkYxQ0ZGRkZGRkVGRkY5NQorOjEwMEI1MDAwNjdGRjFDRkZGRkZGM0ZGRjVDRkYxQ0ZGRkZGRjdGRkZFNgorOjEwMEI2MDAwMDhGRjQwRkZGRkZGMDBGRjQ2RkY5MEZGRkZGRjcwRkYwMQorOjEwMEI3MDAwMThGRjFDRkZGRkZGRUZGRjY5RkYxQ0ZGRkZGRjBGRkZDOAorOjEwMEI4MDAwNURGRjFDRkZGRkZGMkZGRjE4RkYxQ0ZGRkZGRkVGRkZBNAorOjEwMEI5MDAwNzlGRjFDRkZGRkZGMUZGRjVDRkYxQ0ZGRkZGRjdGRkZCNAorOjEwMEJBMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkYzNQorOjEwMEJCMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkYyNQorOjEwMEJDMDAwMThGRjFDRkZGRkZGRUZGRjVERkYxQ0ZGRkZGRjJGRkY2NAorOjEwMEJEMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkYwNQorOjEwMEJFMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkZGNQorOjEwMEJGMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkZFNQorOjEwMEMwMDAwMThGRjFDRkZGRkZGRUZGRjVERkYxQ0ZGRkZGRjJGRkYyMworOjEwMEMxMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkZDNAorOjEwMEMyMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkZCNAorOjEwMEMzMDAwMThGRjFDRkZGRkZGRUZGRjVDRkYxQ0ZGRkZGRjdGRkZBNAorOjEwMEM0MDAwMThGRjFDRkZGRkZGRUZGRjVERkYxQ0ZGRkZGRjJGRkZFMworOjEwMEM1MDAwMThGRjFDRkZGRkZGRUZGRjY2RkYxQ0ZGRkZGRjFGRkZEQQorOjEwMEM2MDAwNUNGRjFDRkZGRkZGN0ZGRjE2RkYxOEZGRkZGRjRGRkYxQQorOjEwMEM3MDAwOEJGRjg3RkZGRkZGNjFGRjAwRkYzNEZGRkZGRjg5RkY0RQorOjEwMEM4MDAwMDBGRjM0RkZGRkZGMjZGRjAwRkY2MEZGRkZGRjA2RkZBRQorOjEwMEM5MDAwODNGRjkzRkZGRkZGRDBGRjAwRkY2MEZGRkZGRjA2RkYxMgorOjEwMENBMDAwODNGRjkzRkZGRkZGRTBGRjM4RkYyMkZGRkZGRjBGRkZFRgorOjEwMENCMDAwMTlGRjE0RkZGRkZGODVGRjhCRkY4M0ZGRkZGRjUwRkYyRQorOjEwMENDMDAwNzhGRjIyRkZGRkZGMEZGRjAwRkY2MEZGRkZGRjA3RkYxRQorOjEwMENEMDAwMDRGRjBERkZGRkZGMzBGRjAwRkY2MEZGRkZGRjA3RkY3NgorOjEwMENFMDAwODNGRjkzRkZGRkZGRjBGRjAwRkY2MEZGRkZGRjA3RkZBMQorOjEwMENGMDAwMDhGRjBERkZGRkZGMzBGRjAwRkY2MEZGRkZGRjA3RkY1MgorOjEwMEQwMDAwODZGRjkzRkZGRkZGNDBGRjAwRkY0MEZGRkZGRjAxRkY1MworOjEwMEQxMDAwOEJGRjkzRkZGRkZGNTFGRjAwRkYzNEZGRkZGRjQ2RkZGNAorOjEwMEQyMDAwMDBGRjA5RkZGRkZGMDZGRjhCRkY5N0ZGRkZGRjYxRkYzQgorOjEwMEQzMDAwODNGRjhCRkZGRkZGRDBGRjgzRkY4QkZGRkZGRkUxRkZGMAorOjEwMEQ0MDAwODdGRjM3RkZGRkZGMDFGRjZFRkYxQ0ZGRkZGRkJGRkZBNQorOjEwMEQ1MDAwODdGRjM3RkZGRkZGMDBGRjkyRkYzN0ZGRkZGRjAxRkYxNQorOjEwMEQ2MDAwN0ZGRjM4RkZGRkZGMDBGRjdFRkYzOEZGRkZGRjAxRkYxRgorOjEwMEQ3MDAwMjNGRjFDRkZGRkZGRkZGRjdFRkYzOEZGRkZGRjAwRkY4OQorOjEwMEQ4MDAwODNGRjg3RkZGRkZGRjFGRjg2RkY4QkZGRkZGRjQxRkYyMAorOjEwMEQ5MDAwNkNGRjFDRkZGRkZGMkZGRjg3RkYzN0ZGRkZGRjAwRkZFOAorOjEwMERBMDAwOEJGRjhCRkZGRkZGQTBGRjAwRkYzNEZGRkZGRjA4RkY1QgorOjEwMERCMDAwNDBGRjM4RkZGRkZGMDhGRjAwRkYzQ0ZGRkZGRjU1RkYyQworOjEwMERDMDAwMUJGRjE0RkZGRkZGQ0VGRjAwRkY2MEZGRkZGRjAzRkZDRAorOjEwMEREMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY3OEZGRkZGRjEzRkYxRgorOjEwMERFMDAwMDBGRjc4RkZGRkZGMDNGRjAwRkY2MEZGRkZGRjAzRkYyRgorOjEwMERGMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY3OEZGRkZGRjEzRkZGRgorOjEwMEUwMDAwMDBGRjc4RkZGRkZGMDNGRjAwRkY2MEZGRkZGRjAzRkYwRQorOjEwMEUxMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY3OEZGRkZGRjEzRkZERQorOjEwMEUyMDAwMDBGRjc4RkZGRkZGMDNGRjhCRkY4M0ZGRkZGRkUxRkY2MgorOjEwMEUzMDAwOEJGRjgzRkZGRkZGRjBGRjAwRkY3OEZGRkZGRjEzRkYzMworOjEwMEU0MDAwMDBGRjc4RkZGRkZGMDNGRjhCRkY5QkZGRkZGRkEwRkY2QgorOjEwMEU1MDAwOEJGRjg3RkZGRkZGOTBGRjdFRkYzOEZGRkZGRjAwRkY0NAorOjEwMEU2MDAwNDBGRjM0RkZGRkZGMDhGRjAwRkYzOEZGRkZGRjA4RkZEMAorOjEwMEU3MDAwMDBGRjNDRkZGRkZGNTVGRjFERkYxNEZGRkZGRjNFRkY3QworOjEwMEU4MDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkY5NgorOjEwMEU5MDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkY5NgorOjEwMEVBMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkY3NgorOjEwMEVCMDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkY3NgorOjEwMEVDMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkY1NgorOjEwMEVEMDAwMDBGRjU4RkZGRkZGMTNGRjAwRkY1OEZGRkZGRjAzRkY1NgorOjEwMEVFMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjAzRkY0NgorOjEwMEVGMDAwOEJGRjk3RkZGRkZGOTBGRjAwRkYwQUZGRkZGRjBGRkYzMQorOjEwMEYwMDAwOEJGRjg3RkZGRkZGNjFGRjAwRkYzNEZGRkZGRjg5RkZCQgorOjEwMEYxMDAwMDBGRjM0RkZGRkZGMjZGRjAwRkY2MEZGRkZGRjA2RkYxQgorOjEwMEYyMDAwODNGRjkzRkZGRkZGRDBGRjAwRkY2MEZGRkZGRjA2RkY3RgorOjEwMEYzMDAwODNGRjkzRkZGRkZGRTBGRjhCRkY4M0ZGRkZGRjUxRkY2NgorOjEwMEY0MDAwNzlGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRkI0RkZDMQorOjEwMEY1MDAwMzhGRjIyRkZGRkZGMEZGRjFFRkYxNEZGRkZGRkQ1RkYyQgorOjEwMEY2MDAwOEJGRjgzRkZGRkZGNTBGRjc4RkYyMkZGRkZGRjBGRkY4NAorOjEwMEY3MDAwMDBGRjYwRkZGRkZGMDdGRjA0RkYwREZGRkZGRjMwRkZEMworOjEwMEY4MDAwMDBGRjYwRkZGRkZGMDdGRjgzRkY5M0ZGRkZGRkYwRkZGRQorOjEwMEY5MDAwMDBGRjYwRkZGRkZGMDdGRjA4RkYwREZGRkZGRjMwRkZBRgorOjEwMEZBMDAwMDBGRjYwRkZGRkZGMDdGRjg2RkY5M0ZGRkZGRjQwRkY4QgorOjEwMEZCMDAwMDBGRjQwRkZGRkZGMDFGRjhCRkY5M0ZGRkZGRjUxRkY4QgorOjEwMEZDMDAwMDBGRjM0RkZGRkZGNDZGRjAwRkYwOUZGRkZGRjA2RkZBMgorOjEwMEZEMDAwOEJGRjk3RkZGRkZGNjFGRjgzRkY4QkZGRkZGRkQwRkZCQQorOjEwMEZFMDAwODNGRjhCRkZGRkZGRTFGRjg3RkYzN0ZGRkZGRjAxRkY1RAorOjEwMEZGMDAwNkVGRjFDRkZGRkZGQkZGRjg3RkYzN0ZGRkZGRjAwRkZGNAorOjEwMTAwMDAwOTJGRjM3RkZGRkZGMDFGRjdGRkYzOEZGRkZGRjAwRkY2OQorOjEwMTAxMDAwMjNGRjFDRkZGRkZGRkZGRjdFRkYzOEZGRkZGRjAwRkZFNgorOjEwMTAyMDAwODNGRjg3RkZGRkZGRjFGRjg2RkY4QkZGRkZGRjQxRkY3RAorOjEwMTAzMDAwNkNGRjFDRkZGRkZGMkZGRjAwRkYwQUZGRkZGRjBGRkZFQQorOjEwMTA0MDAwOERGRjhGRkZGRkZGQzVGRjIwRkYxNEZGRkZGRkFFRkZFNworOjEwMTA1MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkY4MQorOjEwMTA2MDAwOEJGRjgzRkZGRkZGODRGRjAwRkYyM0ZGRkZGRjBGRkZDNgorOjEwMTA3MDAwOEJGRjkzRkZGRkZGOEFGRjY0RkYxQ0ZGRkZGRkUwRkY3MgorOjEwMTA4MDAwN0VGRjM4RkZGRkZGMDBGRjAwRkYzOEZGRkZGRjA4RkY3NAorOjEwMTA5MDAwMDBGRjNDRkZGRkZGRTVGRjIxRkYxNEZGRkZGRjVFRkZBNgorOjEwMTBBMDAwMDBGRjQwRkZGRkZGMDBGRjAwRkY1OEZGRkZGRjAzRkZBRgorOjEwMTBCMDAwMDBGRjBBRkZGRkZGMEZGRjA4RkY0MEZGRkZGRjEwRkZDOQorOjEwMTBDMDAwNDdGRjkwRkZGRkZGMjBGRjAwRkYwNEZGRkZGRjFDRkYxMworOjEwMTBEMDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjFDRkZEQQorOjEwMTBFMDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjEwRkZENgorOjEwMTBGMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkZEMgorOjEwMTEwMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkZDMQorOjEwMTExMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkZCMQorOjEwMTEyMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkZBMQorOjEwMTEzMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkY5MQorOjEwMTE0MDAwMDBGRjA0RkZGRkZGMTBGRjAyRkY0MEZGRkZGRjQwRkYxMworOjEwMTE1MDAwMTFGRjkwRkZGRkZGMjBGRjc4RkY0MkZGRkZGRjUwRkZDRQorOjEwMTE2MDAwNDhGRjkwRkZGRkZGQTBGRjAwRkYwMEZGRkZGRjAwRkYxMQorOjEwMTE3MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY3OQorOjEwMTE4MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY2OQorOjEwMTE5MDAwQjBGRjQwRkZGRkZGMDBGRjQ3RkY5MEZGRkZGRjUwRkY0MgorOjEwMTFBMDAwMDBGRjQwRkZGRkZGMDBGRjhERkY5M0ZGRkZGRjQwRkZBOQorOjEwMTFCMDAwOERGRjkzRkZGRkZGNTBGRjAwRkY0MEZGRkZGRjAxRkY4OAorOjEwMTFDMDAwOEJGRjkzRkZGRkZGNTFGRjAwRkY0MEZGRkZGRjAwRkY3QQorOjEwMTFEMDAwNDZGRjkwRkZGRkZGNzBGRjhERkY4M0ZGRkZGRkQwRkZGMworOjEwMTFFMDAwNzhGRjIyRkZGRkZGMEZGRjBDRkYxOEZGRkZGRjkwRkZBQworOjEwMTFGMDAwMENGRjE4RkZGRkZGNkZGRjIwRkYwQ0ZGRkZGRjAwRkYzQQorOjEwMTIwMDAwMDBGRjM0RkZGRkZGMDlGRjAwRkYzNEZGRkZGRjA4RkY2RgorOjEwMTIxMDAwMDBGRjM4RkZGRkZGMDhGRjAwRkYzOEZGRkZGRjA5RkY1NworOjEwMTIyMDAwMDBGRjM4RkZGRkZGMDZGRjAwRkYzNEZGRkZGRjI2RkYzMAorOjEwMTIzMDAwOThGRkNDRkZGRkZGMzdGRjAwRkYzQ0ZGRkZGRkE1RkYzQworOjEwMTI0MDAwMjRGRjE0RkZGRkZGRkVGRjAwRkY2MEZGRkZGRjczRkY5RgorOjEwMTI1MDAwMDhGRjBERkZGRkZGMTRGRjk4RkYyMEZGRkZGRjBGRkZBOAorOjEwMTI2MDAwMDBGRjUwRkZGRkZGQzZGRjY5RkZDQ0ZGRkZGRjM3RkYwNgorOjEwMTI3MDAwMDBGRjA1RkZGRkZGMDBGRjAwRkY1OEZGRkZGRkM2RkY1NQorOjEwMTI4MDAwOThGRjIwRkZGRkZGMEZGRjAwRkY2MEZGRkZGRjcyRkZDRgorOjEwMTI5MDAwMDhGRjBERkZGRkZGMTRGRjAwRkY1MEZGRkZGRkM2RkYxOQorOjEwMTJBMDAwNjlGRkNDRkZGRkZGMzdGRjAwRkYwNUZGRkZGRjAwRkZENworOjEwMTJCMDAwMDBGRjU4RkZGRkZGQzZGRjk4RkYyMEZGRkZGRjBGRkY1MworOjEwMTJDMDAwMDBGRjYwRkZGRkZGNzNGRjA4RkYwREZGRkZGRjE0RkYyQworOjEwMTJEMDAwMDBGRjUwRkZGRkZGQzZGRjY5RkYyMEZGRkZGRjBGRkY2QQorOjEwMTJFMDAwMDBGRjA1RkZGRkZGMDBGRjAwRkY1OEZGRkZGRkM2RkZFNQorOjEwMTJGMDAwMzBGRjBDRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkZBMworOjEwMTMwMDAwMDBGRjBDRkZGRkZGMzBGRjQ3RkY4MEZGRkZGRjU4RkY4QworOjEwMTMxMDAwMTBGRjBGRkZGRkZGMDFGRjY2RkYyM0ZGRkZGRjBGRkYxRgorOjEwMTMyMDAwMjZGRjE4RkZGRkZGOTRGRjAwRkY0OEZGRkZGRjAwRkZBRAorOjEwMTMzMDAwOEJGRjkzRkZGRkZGNDBGRjgwRkY0MEZGRkZGRjAwRkY5OQorOjEwMTM0MDAwNDlGRjkwRkZGRkZGNDBGRjE2RkYwRkZGRkZGRjAyRkY2NworOjEwMTM1MDAwNjZGRjIzRkZGRkZGMEZGRjM4RkYxOEZGRkZGRkI0RkZGQgorOjEwMTM2MDAwMEZGRjQwRkZGRkZGRjRGRjQ3RkY4MEZGRkZGRjBBRkY3MworOjEwMTM3MDAwODJGRjIzRkZGRkZGMEZGRjhERkY5M0ZGRkZGRjdBRkYyOQorOjEwMTM4MDAwN0FGRjI2RkZGRkZGMEZGRjEwRkYyN0ZGRkZGRjBGRkY3MgorOjEwMTM5MDAwMzhGRjE4RkZGRkZGQjRGRjI3RkYxOEZGRkZGRkQyRkY0MgorOjEwMTNBMDAwMDBGRjQ4RkZGRkZGMDBGRjhCRkY5M0ZGRkZGRjMwRkZCMQorOjEwMTNCMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkZFMAorOjEwMTNDMDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkYwOQorOjEwMTNEMDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkZBQgorOjEwMTNFMDAwMDBGRjBBRkZGRkZGMUZGRjEwRkYyN0ZGRkZGRjBGRkY5OAorOjEwMTNGMDAwMjlGRjE4RkZGRkZGOTJGRjQ2RkY4MEZGRkZGRjAwRkY1RQorOjEwMTQwMDAwOEJGRjkzRkZGRkZGMjBGRjhERkY4M0ZGRkZGRjcwRkYyOAorOjEwMTQxMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZCMworOjEwMTQyMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZCNAorOjEwMTQzMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwNEZGRkZGRjFDRkY2QQorOjEwMTQ0MDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjFDRkY2NgorOjEwMTQ1MDAwMDBGRjA0RkZGRkZGMUNGRjAwRkYwNEZGRkZGRjEwRkY2MgorOjEwMTQ2MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkY1RQorOjEwMTQ3MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkY0RQorOjEwMTQ4MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYzRQorOjEwMTQ5MDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYyRQorOjEwMTRBMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjEwRkYxRQorOjEwMTRCMDAwMDBGRjA0RkZGRkZGMTBGRjAwRkYwNEZGRkZGRjAzRkYxQgorOjEwMTRDMDAwMERGRjE4RkZGRkZGMEZGRjEwRkYyN0ZGRkZGRjBGRkZBQworOjEwMTREMDAwMzFGRjE4RkZGRkZGMTJGRjMwRkYwQ0ZGRkZGRjAwRkY3RgorOjEwMTRFMDAwMDhGRjBDRkZGRkZGMDBGRkZGRkY0RkZGRkZGRjg5RkYxQgorOjEwMTRGMDAwOTBGRjM3RkZGRkZGMDBGRjAyRkYzNEZGRkZGRjA4RkZGMQorOjEwMTUwMDAwMDBGRjM0RkZGRkZGMzRGRjAwRkYzNEZGRkZGRjU1RkZGNAorOjEwMTUxMDAwNDZGRjgwRkZGRkZGMDhGRjAwRkYwRUZGRkZGRjBGRkZFQQorOjEwMTUyMDAwMDBGRjBERkZGRkZGNEVGRkE3RkYyM0ZGRkZGRjBGRkY5MQorOjEwMTUzMDAwMDBGRjY4RkZGRkZGQTNGRjAwRkYwREZGRkZGRjRBRkY1MworOjEwMTU0MDAwNDZGRjgwRkZGRkZGMThGRjAwRkYwRUZGRkZGRjBGRkZBQQorOjEwMTU1MDAwMDBGRjBERkZGRkZGNUVGRkFGRkYyM0ZGRkZGRjBGRkY0OQorOjEwMTU2MDAwMDBGRjY4RkZGRkZGQTBGRjAwRkYwREZGRkZGRjVBRkYxNgorOjEwMTU3MDAwNDZGRjgwRkZGRkZGNDhGRjEwRkYwRkZGRkZGRkZFRkY0QQorOjEwMTU4MDAwODdGRjkzRkZGRkZGRkVGRjAwRkYwREZGRkZGRjJFRkYxMgorOjEwMTU5MDAwMDJGRjQwRkZGRkZGMDZGRkUwRkYyMEZGRkZGRjBGRkZGRQorOjEwMTVBMDAwMDBGRjQwRkZGRkZGMDFGRjYzRkYyMkZGRkZGRjBGRkY3MAorOjEwMTVCMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkY4OAorOjEwMTVDMDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkZCNgorOjEwMTVEMDAwMDBGRjBERkZGRkZGNUFGRjYzRkYyMkZGRkZGRjBGRkYxQQorOjEwMTVFMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkY1OAorOjEwMTVGMDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkY4NgorOjEwMTYwMDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkZGOQorOjEwMTYxMDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkYxNworOjEwMTYyMDAwMDBGRjY4RkZGRkZGQTBGRjYzRkYyMkZGRkZGRjBGRkYyOAorOjEwMTYzMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkYwNworOjEwMTY0MDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkYzNQorOjEwMTY1MDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkZBOQorOjEwMTY2MDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkZDNworOjEwMTY3MDAwMDBGRjY4RkZGRkZGQTBGRjYzRkYyMkZGRkZGRjBGRkZEOAorOjEwMTY4MDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkZCNworOjEwMTY5MDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkZFNQorOjEwMTZBMDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkY1OQorOjEwMTZCMDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkY3NworOjEwMTZDMDAwMDBGRjY4RkZGRkZGQTFGRjQ2RkY4MEZGRkZGRjI4RkYyRAorOjEwMTZEMDAwMDBGRjBFRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRFRkY5QworOjEwMTZFMDAwQTdGRjIzRkZGRkZGMEZGRjAwRkY2OEZGRkZGRkEzRkYyMAorOjEwMTZGMDAwMDBGRjBERkZGRkZGNEFGRjQ2RkY4MEZGRkZGRjM4RkY5RgorOjEwMTcwMDAwMDBGRjBFRkZGRkZGMEZGRjAwRkYwREZGRkZGRjVFRkY1QgorOjEwMTcxMDAwQUZGRjIzRkZGRkZGMEZGRjAwRkY2OEZGRkZGRkEwRkZFQQorOjEwMTcyMDAwMDBGRjBERkZGRkZGNUFGRjYzRkYyMkZGRkZGRjBGRkZDOAorOjEwMTczMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkYwNgorOjEwMTc0MDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkYzNAorOjEwMTc1MDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkZBOAorOjEwMTc2MDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkZDNgorOjEwMTc3MDAwMDBGRjY4RkZGRkZGQTBGRjYzRkYyMkZGRkZGRjBGRkZENworOjEwMTc4MDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkZCNgorOjEwMTc5MDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkZFNAorOjEwMTdBMDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkY1OAorOjEwMTdCMDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkY3NgorOjEwMTdDMDAwMDBGRjY4RkZGRkZGQTBGRjYzRkYyMkZGRkZGRjBGRkY4NworOjEwMTdEMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkY2NgorOjEwMTdFMDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEwRkY5NAorOjEwMTdGMDAwNjNGRjIyRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRBRkYwOAorOjEwMTgwMDAwNDlGRjZBRkZGRkZGQTNGRjAwRkYwREZGRkZGRjVBRkYyNQorOjEwMTgxMDAwMDBGRjY4RkZGRkZGQTBGRjYzRkYyMkZGRkZGRjBGRkYzNgorOjEwMTgyMDAwMDBGRjBERkZGRkZGNEFGRjQ5RkY2QUZGRkZGRkEzRkYxNQorOjEwMTgzMDAwMDBGRjBERkZGRkZGNUFGRjAwRkY2OEZGRkZGRkEzRkY0MAorOjEwMTg0MDAwRkZGRjRGRkZGRkZGRjBGRjg2RkY5M0ZGRkZGRjUwRkZGQgorOjEwMTg1MDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkYzQgorOjEwMTg2MDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkY2NAorOjEwMTg3MDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkYwNgorOjEwMTg4MDAwMDBGRjBBRkZGRkZGMUZGRjEwRkYyN0ZGRkZGRjBGRkZGMworOjEwMTg5MDAwMzJGRjE4RkZGRkZGNDJGRjhCRkY4M0ZGRkZGRkU0RkZENAorOjEwMThBMDAwOEJGRjgzRkZGRkZGRjVGRjQ2RkY5MEZGRkZGRjQ0RkYyNQorOjEwMThCMDAwMDhGRjIyRkZGRkZGMEZGRkZGRkY0RkZGRkZGRjg5RkYyMgorOjEwMThDMDAwMDBGRjBERkZGRkZGOEFGRjAwRkYwRUZGRkZGRjBGRkY2RQorOjEwMThEMDAwMDBGRjBERkZGRkZGNEVGRkE3RkYyM0ZGRkZGRjBGRkZERQorOjEwMThFMDAwNDZGRjkwRkZGRkZGNUFGRjhERkY4M0ZGRkZGRjcwRkY1MgorOjEwMThGMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZDRgorOjEwMTkwMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZDRgorOjEwMTkxMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY3QworOjEwMTkyMDAwMTBGRjI3RkZGRkZGMEZGRjM1RkYxOEZGRkZGRkQyRkY1QworOjEwMTkzMDAwMDBGRjRDRkZGRkZGMDBGRjAwRkY5M0ZGRkZGRjAwRkZEMgorOjEwMTk0MDAwMEJGRjQwRkZGRkZGODBGRjExRkY5MEZGRkZGRkYwRkY0NQorOjEwMTk1MDAwMDBGRjQwRkZGRkZGMTBGRjExRkY5MEZGRkZGRkUwRkZDMAorOjEwMTk2MDAwNDZGRjgwRkZGRkZGMEFGRjdBRkYyNkZGRkZGRjBGRkYwMgorOjEwMTk3MDAwMzVGRjFDRkZGRkZGMjRGRjEwRkYyN0ZGRkZGRjBGRkZCNgorOjEwMTk4MDAwMzNGRjE4RkZGRkZGQzVGRjAwRkY0MEZGRkZGRkMwRkY1MQorOjEwMTk5MDAwMTFGRjkwRkZGRkZGNjBGRjhERkY5M0ZGRkZGRkQwRkY2MAorOjEwMTlBMDAwMDBGRjQ4RkZGRkZGMDBGRjhERkY4M0ZGRkZGRjcwRkY3OQorOjEwMTlCMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkYwRQorOjEwMTlDMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkYwRgorOjEwMTlEMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkZCQworOjEwMTlFMDAwMTBGRjI3RkZGRkZGMEZGRjM0RkYxOEZGRkZGRjg1RkZFQQorOjEwMTlGMDAwMDBGRjQwRkZGRkZGNDBGRjExRkY5MEZGRkZGRjYwRkY3MAorOjEwMUEwMDAwOERGRjkzRkZGRkZGRDBGRjhERkY4M0ZGRkZGRjcwRkY3MAorOjEwMUExMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZBRAorOjEwMUEyMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZBRQorOjEwMUEzMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY1QgorOjEwMUE0MDAwMDBGRjQwRkZGRkZGMDBGRjExRkY5MEZGRkZGRjYwRkY1RgorOjEwMUE1MDAwOERGRjkzRkZGRkZGRDBGRjhERkY4M0ZGRkZGRjcwRkYyMAorOjEwMUE2MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkY1RAorOjEwMUE3MDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkY1RQorOjEwMUE4MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkYwQgorOjEwMUE5MDAwMDBGRjQ4RkZGRkZGMDBGRjhERkY5M0ZGRkZGRjgwRkY2OAorOjEwMUFBMDAwMDBGRjQ4RkZGRkZGMDBGRjAwRkY5M0ZGRkZGRjAwRkY2NQorOjEwMUFCMDAwMERGRjQwRkZGRkZGRjBGRjExRkY5MEZGRkZGRkYwRkY2MgorOjEwMUFDMDAwMDBGRjQwRkZGRkZGMTBGRjExRkY5MEZGRkZGRkUwRkY0RgorOjEwMUFEMDAwRkZGRjQwRkZGRkZGRjBGRjkwRkYyN0ZGRkZGRjBGRkYxQgorOjEwMUFFMDAwMDBGRjBBRkZGRkZGMEZGRjEwRkYyN0ZGRkZGRjBGRkZBMQorOjEwMUFGMDAwMzdGRjE4RkZGRkZGNDJGRjQ2RkY4MEZGRkZGRjAwRkY5OQorOjEwMUIwMDAwODlGRjkzRkZGRkZGQTBGRjQ2RkY4MEZGRkZGRjEwRkY0RAorOjEwMUIxMDAwODlGRjkzRkZGRkZGQjBGRjQ2RkY4MEZGRkZGRjIwRkYxRAorOjEwMUIyMDAwODlGRjkzRkZGRkZGQzBGRjQ2RkY4MEZGRkZGRjMwRkZFRAorOjEwMUIzMDAwODlGRjkzRkZGRkZGRDBGRjQ2RkY4MEZGRkZGRjQwRkZCRAorOjEwMUI0MDAwODlGRjkzRkZGRkZGRTBGRjQ2RkY4MEZGRkZGRjUwRkY4RAorOjEwMUI1MDAwODlGRjkzRkZGRkZGRjBGRjAwRkY0MEZGRkZGRjEwRkYzMworOjEwMUI2MDAwODZGRjkzRkZGRkZGNjBGRjhERkY4M0ZGRkZGRjcwRkY4NgorOjEwMUI3MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkY0QworOjEwMUI4MDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkY0RAorOjEwMUI5MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkZGQQorOjEwMUJBMDAwMTBGRjI3RkZGRkZGMEZGRjM5RkYxOEZGRkZGRjIyRkY4NgorOjEwMUJCMDAwNDZGRjgwRkZGRkZGMDBGRjhERkY5M0ZGRkZGRjIwRkYyOQorOjEwMUJDMDAwNDZGRjgwRkZGRkZGMTBGRjhERkY5M0ZGRkZGRjMwRkZGOQorOjEwMUJEMDAwNDZGRjgwRkZGRkZGMjBGRjc4RkYyMkZGRkZGRjBGRkY4MAorOjEwMUJFMDAwMzhGRjFDRkZGRkZGODRGRjAwRkY0MEZGRkZGRjAwRkZFNworOjEwMUJGMDAwNDZGRjkwRkZGRkZGMjBGRjAwRkY0OEZGRkZGRjAwRkZCMQorOjEwMUMwMDAwOERGRjkzRkZGRkZGNDBGRjhERkY4M0ZGRkZGRjcwRkZGRQorOjEwMUMxMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZBQgorOjEwMUMyMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZBQworOjEwMUMzMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY1OQorOjEwMUM0MDAwMDBGRjQ4RkZGRkZGMDBGRjhERkY5M0ZGRkZGRjUwRkZFNgorOjEwMUM1MDAwMDBGRjBBRkZGRkZGMEZGRjAwRkYwQ0ZGRkZGRjIwRkY0OQorOjEwMUM2MDAwMDBGRjBBRkZGRkZGMUZGRjAwRkYwQ0ZGRkZGRjMwRkYxOQorOjEwMUM3MDAwMDBGRjQ4RkZGRkZGMDBGRjhCRkY5M0ZGRkZGRjUwRkZCOAorOjEwMUM4MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkYwOQorOjEwMUM5MDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkY0RkY4QgorOjEwMUNBMDAwRTBGRjIyRkZGRkZGMEZGRjQxRkYxOEZGRkZGRjMwRkZBNAorOjEwMUNCMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkU0RkY3QgorOjEwMUNDMDAwRTBGRjIyRkZGRkZGMEZGRjQyRkYxOEZGRkZGRjQwRkY3MworOjEwMUNEMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkQ0RkY2QgorOjEwMUNFMDAwRTBGRjIyRkZGRkZGMEZGRjQ3RkYxOEZGRkZGRkEwRkZFRQorOjEwMUNGMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkM0RkY1QgorOjEwMUQwMDAwRTBGRjIyRkZGRkZGMEZGRjQ2RkYxOEZGRkZGRkQwRkY5RQorOjEwMUQxMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkI0RkY0QQorOjEwMUQyMDAwRTBGRjIyRkZGRkZGMEZGRjQ4RkYxOEZGRkZGRkUwRkY2QworOjEwMUQzMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRkE0RkYzQQorOjEwMUQ0MDAwRTBGRjIyRkZGRkZGMEZGRjRBRkYxOEZGRkZGRjYwRkZDQQorOjEwMUQ1MDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRjk0RkYyQQorOjEwMUQ2MDAwRTBGRjIyRkZGRkZGMEZGRjRDRkYxOEZGRkZGRjAwRkYwOAorOjEwMUQ3MDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRjg0RkYxQQorOjEwMUQ4MDAwRTBGRjIyRkZGRkZGMEZGRjRERkYxOEZGRkZGRkUwRkYwNworOjEwMUQ5MDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRjc0RkYwQQorOjEwMURBMDAwRTBGRjIyRkZGRkZGMEZGRjRGRkYxOEZGRkZGRjIwRkZBNQorOjEwMURCMDAwOERGRjgzRkZGRkZGNzBGRjBGRkY0MEZGRkZGRjY0RkZGQQorOjEwMURDMDAwRTBGRjIyRkZGRkZGMEZGRjRGRkYxOEZGRkZGRkYwRkZCNQorOjEwMUREMDAwOERGRjgzRkZGRkZGNzBGRjBFRkY0MEZGRkZGRkY0RkY0QgorOjEwMURFMDAwRTBGRjIyRkZGRkZGMEZGRjQ0RkYxOEZGRkZGRjQwRkY1MAorOjEwMURGMDAwOERGRjgzRkZGRkZGNzBGRjBFRkY0MEZGRkZGRkU0RkYzQgorOjEwMUUwMDAwRTBGRjIyRkZGRkZGMEZGRjQ1RkYxOEZGRkZGRjUwRkYxRQorOjEwMUUxMDAwOERGRjgzRkZGRkZGNzBGRjBBRkY0MEZGRkZGRjA0RkZGRQorOjEwMUUyMDAwRTBGRjIyRkZGRkZGMEZGRjNERkYxOEZGRkZGRkQwRkY4NgorOjEwMUUzMDAwOERGRjgzRkZGRkZGNzBGRjBBRkY0MEZGRkZGRjE0RkZDRQorOjEwMUU0MDAwRTBGRjIyRkZGRkZGMEZGRjNGRkYxOEZGRkZGRjEwRkYyNAorOjEwMUU1MDAwOERGRjgzRkZGRkZGNzBGRjBBRkY0MEZGRkZGRjI0RkY5RQorOjEwMUU2MDAwRTBGRjIyRkZGRkZGMEZGRjNGRkYxOEZGRkZGRjgwRkY5NAorOjEwMUU3MDAwOERGRjgzRkZGRkZGNzBGRjBBRkY0MEZGRkZGRjM0RkY2RQorOjEwMUU4MDAwRTBGRjIyRkZGRkZGMEZGRjNGRkYxOEZGRkZGRkYwRkYwNAorOjEwMUU5MDAwOERGRjgzRkZGRkZGNzBGRjBBRkY0MEZGRkZGRjQ0RkYzRQorOjEwMUVBMDAwRTBGRjIyRkZGRkZGMEZGRjQwRkYxOEZGRkZGRjYwRkY3MworOjEwMUVCMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkZENQorOjEwMUVDMDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkZGRQorOjEwMUVEMDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkZBMAorOjEwMUVFMDAwMDBGRjBBRkZGRkZGMUZGRjhERkY4M0ZGRkZGRjcwRkY1MworOjEwMUVGMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZDOQorOjEwMUYwMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZDOQorOjEwMUYxMDAwMDBGRjBDRkZGRkZGMDhGRjAwRkY0MEZGRkZGRjAwRkY3NworOjEwMUYyMDAwRkZGRjkzRkZGRkZGRjBGRjAwRkY0MEZGRkZGRjAwRkZGOQorOjEwMUYzMDAwNDRGRjkwRkZGRkZGNjBGRjAwRkYwMEZGRkZGRjAwRkY3NworOjEwMUY0MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY5QgorOjEwMUY1MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY4QgorOjEwMUY2MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY3QgorOjEwMUY3MDAwMDBGRjAwRkZGRkZGMDBGRjIxRkY0MEZGRkZGRjgwRkY4QQorOjEwMUY4MDAwRkZGRjkzRkZGRkZGRjBGRjhERkY4M0ZGRkZGRjcwRkY1OQorOjEwMUY5MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkYyOAorOjEwMUZBMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkYyOQorOjEwMUZCMDAwMjVGRjQwRkZGRkZGODBGRkZGRkY5M0ZGRkZGRkYwRkZDNAorOjEwMUZDMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkZDNAorOjEwMUZEMDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkZFRAorOjEwMUZFMDAwNDZGRjkwRkZGRkZGNkFGRkU5RkY0MUZGRkZGRjgwRkYxMQorOjEwMUZGMDAwRkZGRjkzRkZGRkZGRjBGRjhERkY4M0ZGRkZGRjcwRkZFOQorOjEwMjAwMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZCNworOjEwMjAxMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZCOAorOjEwMjAyMDAwRURGRjQxRkZGRkZGODBGRkZGRkY5M0ZGRkZGRkYwRkY4QQorOjEwMjAzMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkY1MworOjEwMjA0MDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkY3QworOjEwMjA1MDAwNDZGRjkwRkZGRkZGNkFGRjAwRkY0MEZGRkZGRjAwRkYwQQorOjEwMjA2MDAwNDRGRjkwRkZGRkZGNjBGRjAwRkYwMEZGRkZGRjAwRkY0NgorOjEwMjA3MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY2QQorOjEwMjA4MDAwMDBGRjAwRkZGRkZGMDBGRkYxRkY0MUZGRkZGRjgwRkZBOAorOjEwMjA5MDAwRkZGRjkzRkZGRkZGRjBGRjQ2RkY4NEZGRkZGRjAwRkZGRQorOjEwMjBBMDAwMDBGRjM0RkZGRkZGMDhGRjAwRkY2MEZGRkZGRjAzRkY5QgorOjEwMjBCMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYyQQorOjEwMjBDMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYxQQorOjEwMjBEMDAwNDZGRjkwRkZGRkZGNjBGRkY3RkY0RkZGRkZGRkY0RkY5QQorOjEwMjBFMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkYzMAorOjEwMjBGMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZDNworOjEwMjEwMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZDNworOjEwMjExMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY3NAorOjEwMjEyMDAwNDZGRjg0RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkZCMworOjEwMjEzMDAwMDBGRjM0RkZGRkZGMDZGRjAwRkYwMEZGRkZGRjAwRkY2RgorOjEwMjE0MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY5OQorOjEwMjE1MDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY4MEZGRkZGRjEwRkZCMworOjEwMjE2MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY3OQorOjEwMjE3MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY2OQorOjEwMjE4MDAwMDBGRjY4RkZGRkZGMDJGRjAwRkYwMEZGRkZGRjAwRkZFRgorOjEwMjE5MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY0OQorOjEwMjFBMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkY2MEZGRkZGRjIyRkZCNworOjEwMjFCMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYyOQorOjEwMjFDMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYxOQorOjEwMjFEMDAwNDZGRjkwRkZGRkZGNjJGRkY3RkY0RkZGRkZGRkY0RkY5NworOjEwMjFFMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkYyRgorOjEwMjFGMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZDNgorOjEwMjIwMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZDNgorOjEwMjIxMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY3MworOjEwMjIyMDAwNDZGRjg4RkZGRkZGMDBGRjAwRkYzOEZGRkZGRjA4RkZBQQorOjEwMjIzMDAwMDBGRjUwRkZGRkZGMDNGRjAwRkYwMEZGRkZGRjAwRkY1NQorOjEwMjI0MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY5OAorOjEwMjI1MDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY5MEZGRkZGRjYwRkY1MgorOjEwMjI2MDAwRjdGRjRGRkZGRkZGRjRGRjQ2RkY5MEZGRkZGRjc0RkZGNAorOjEwMjI3MDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkYxMQorOjEwMjI4MDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkYzQQorOjEwMjI5MDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkZEQworOjEwMjJBMDAwMDBGRjBBRkZGRkZGMUZGRjQ2RkY4OEZGRkZGRjAwRkY0MQorOjEwMjJCMDAwMDBGRjM4RkZGRkZGMDhGRjAwRkYzOEZGRkZGRjA0RkZBQworOjEwMjJDMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYxOAorOjEwMjJEMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYwOAorOjEwMjJFMDAwNDZGRjgwRkZGRkZGMTBGRjAwRkY1OEZGRkZGRjAzRkZDNworOjEwMjJGMDAwMDBGRjUwRkZGRkZGMjNGRjAwRkYwMEZGRkZGRjAwRkY3NQorOjEwMjMwMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZENworOjEwMjMxMDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY5MEZGRkZGRjYyRkY4RgorOjEwMjMyMDAwRjdGRjRGRkZGRkZGRjRGRjQ2RkY5MEZGRkZGRjc0RkYzMworOjEwMjMzMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkY1MAorOjEwMjM0MDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkY3OQorOjEwMjM1MDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkYxQgorOjEwMjM2MDAwMDBGRjBBRkZGRkZGMUZGRjQ2RkY4MEZGRkZGRjAwRkY4OAorOjEwMjM3MDAwRkZGRjkzRkZGRkZGRTBGRkZGRkY4M0ZGRkZGRkUyRkY5MQorOjEwMjM4MDAwNDZGRjkwRkZGRkZGNjJGRkY3RkY0RkZGRkZGRkY0RkZFNQorOjEwMjM5MDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkY3RAorOjEwMjNBMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkYxNAorOjEwMjNCMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkYxNQorOjEwMjNDMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkZDMgorOjEwMjNEMDAwMDNGRjBERkZGRkZGMEZGRjAwRkYwMEZGRkZGRjAwRkZFOAorOjEwMjNFMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZGNworOjEwMjNGMDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY5MEZGRkZGRjYwRkZCMQorOjEwMjQwMDAwMENGRjBERkZGRkZGRjBGRjAwRkYwMEZGRkZGRjAwRkZDRAorOjEwMjQxMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZDNgorOjEwMjQyMDAwMDBGRjAwRkZGRkZGMDBGRkY3RkY0RkZGRkZGRkY0RkY3QworOjEwMjQzMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkZEQworOjEwMjQ0MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkY3MworOjEwMjQ1MDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkY3NAorOjEwMjQ2MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkYyMQorOjEwMjQ3MDAwNDZGRjgwRkZGRkZGMDJGRjAwRkYwMEZGRkZGRjAwRkY5RQorOjEwMjQ4MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY1NgorOjEwMjQ5MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY0NgorOjEwMjRBMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYzNgorOjEwMjRCMDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY4MEZGRkZGRjEzRkY0RAorOjEwMjRDMDAwMDBGRjQwRkZGRkZGMDBGRjExRkY5MEZGRkZGRjYwRkZENQorOjEwMjREMDAwOERGRjkzRkZGRkZGRDBGRjExRkY5MEZGRkZGRkYyRkY4MworOjEwMjRFMDAwMTFGRjkwRkZGRkZGRTNGRkY3RkY0RkZGRkZGRkY0RkYzOAorOjEwMjRGMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkYxQworOjEwMjUwMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZCMgorOjEwMjUxMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZCMworOjEwMjUyMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY2MAorOjEwMjUzMDAwNDZGRjg0RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY5RgorOjEwMjU0MDAwMDBGRjM0RkZGRkZGMDZGRjAwRkYwMEZGRkZGRjAwRkY1QgorOjEwMjU1MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY4NQorOjEwMjU2MDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY4MEZGRkZGRjEwRkY5RgorOjEwMjU3MDAwRkZGRjkzRkZGRkZGRTBGRjAwRkY2MEZGRkZGRjIyRkY3MQorOjEwMjU4MDAwNjdGRjQwRkZGRkZGNDBGRkZGRkY5M0ZGRkZGRkUwRkZGQworOjEwMjU5MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY0NQorOjEwMjVBMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkYzNQorOjEwMjVCMDAwNDZGRjkwRkZGRkZGNjJGRkY3RkY0RkZGRkZGRkY0RkZCMworOjEwMjVDMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkY0QgorOjEwMjVEMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZFMgorOjEwMjVFMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZFMworOjEwMjVGMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY5MAorOjEwMjYwMDAwNDZGRjg0RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkZDRQorOjEwMjYxMDAwMDBGRjM0RkZGRkZGMDZGRjAwRkYwMEZGRkZGRjAwRkY4QQorOjEwMjYyMDAwMDBGRjAwRkZGRkZGMDBGRjQ2RkY4MEZGRkZGRjEwRkZERQorOjEwMjYzMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZBNAorOjEwMjY0MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY5NAorOjEwMjY1MDAwNDZGRjgwRkZGRkZGMjNGRkZGRkY5M0ZGRkZGRkUwRkYyOQorOjEwMjY2MDAwMDBGRjY4RkZGRkZGMzJGRjAwRkY2MEZGRkZGRjcyRkYwOAorOjEwMjY3MDAwNjdGRjQwRkZGRkZGNDBGRkZGRkY5M0ZGRkZGRkUwRkYwQgorOjEwMjY4MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY1NAorOjEwMjY5MDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkY0NAorOjEwMjZBMDAwNDZGRjkwRkZGRkZGNjdGRkY3RkY0RkZGRkZGRkY0RkZCRAorOjEwMjZCMDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkY1QQorOjEwMjZDMDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkZGMQorOjEwMjZEMDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkZGMgorOjEwMjZFMDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkY5RgorOjEwMjZGMDAwNDZGRjgwRkZGRkZGMDVGRjAzRkYwREZGRkZGRjBGRkZGQQorOjEwMjcwMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZEMworOjEwMjcxMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZDMworOjEwMjcyMDAwMENGRjBERkZGRkZGRjVGRjAwRkYwMEZGRkZGRjAwRkZBNQorOjEwMjczMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZBMworOjEwMjc0MDAwMDBGRjAwRkZGRkZGMDBGRkY3RkY0RkZGRkZGRkY0RkY1OQorOjEwMjc1MDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkZCOQorOjEwMjc2MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkY1MAorOjEwMjc3MDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkY1MQorOjEwMjc4MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkZGRQorOjEwMjc5MDAwNDZGRjgwRkZGRkZGMDBGRjhERkY5M0ZGRkZGRkMwRkY5RAorOjEwMjdBMDAwOERGRjgzRkZGRkZGQzdGRjQ2RkY5MEZGRkZGRjY3RkYxRgorOjEwMjdCMDAwRjdGRjRGRkZGRkZGRjRGRjQ2RkY5MEZGRkZGRjc0RkY5RgorOjEwMjdDMDAwOERGRjgzRkZGRkZGNzBGRjQ3RkY5MEZGRkZGRjAwRkZCQworOjEwMjdEMDAwMDBGRjQ4RkZGRkZGMDRGRkEwRkYyM0ZGRkZGRjBGRkZFNQorOjEwMjdFMDAwNDZGRjkwRkZGRkZGNkFGRjAwRkYwQ0ZGRkZGRjIwRkY4NworOjEwMjdGMDAwMDBGRjBBRkZGRkZGMUZGRjQ2RkY4MEZGRkZGRjAwRkZGNAorOjEwMjgwMDAwOERGRjkzRkZGRkZGRTBGRjhERkY4M0ZGRkZGRkU3RkZEQgorOjEwMjgxMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZDMgorOjEwMjgyMDAwMDBGRjAwRkZGRkZGMDBGRjAwRkYwMEZGRkZGRjAwRkZCMgorOjEwMjgzMDAwNDZGRjkwRkZGRkZGNjdGRkY3RkY0RkZGRkZGRkY0RkYyQgorOjEwMjg0MDAwNDZGRjkwRkZGRkZGNzRGRjhERkY4M0ZGRkZGRjcwRkZDOAorOjEwMjg1MDAwNDdGRjkwRkZGRkZGMDBGRjAwRkY0OEZGRkZGRjA0RkY1RgorOjEwMjg2MDAwQTBGRjIzRkZGRkZGMEZGRjQ2RkY5MEZGRkZGRjZBRkY2MAorOjEwMjg3MDAwMDBGRjBDRkZGRkZGMjBGRjAwRkYwQUZGRkZGRjFGRkYwRAorOjEwMjg4MDAwOERGRjgzRkZGRkZGRDBGRjAwRkY0MEZGRkZGRjI0RkYwRQorOjEwMjg5MDAwQTBGRjIzRkZGRkZGMEZGRjExRkY5MEZGRkZGRjZBRkY2NQorOjEwMjhBMDAwMDBGRjQwRkZGRkZGMTRGRjE4RkYyM0ZGRkZGRjBGRkY5NAorOjEwMjhCMDAwNTFGRjE0RkZGRkZGODFGRjkwRkY4MEZGRkZGRjYwRkZDQworOjEwMjhDMDAwODBGRjIzRkZGRkZGMEZGRjhERkY4M0ZGRkZGRkQwRkY4MAorOjEwMjhEMDAwMDBGRjQwRkZGRkZGMTRGRkEwRkYyM0ZGRkZGRjBGRkZEQworOjEwMjhFMDAwMTFGRjkwRkZGRkZGNkFGRjMwRkYwQ0ZGRkZGRjAwRkZBQgorOjEwMjhGMDAwMDBGRjQwRkZGRkZGMTZGRjEwRkY0MEZGRkZGRjA3RkYzNQorOjEwMjkwMDAwOTBGRjM0RkZGRkZGNzFGRjAwRkYzNEZGRkZGRjA5RkY1RgorOjEwMjkxMDAwMEZGRjQwRkZGRkZGRjVGRjAwRkY2MEZGRkZGRjA3RkYxNgorOjEwMjkyMDAwODhGRjYzRkZGRkZGMjdGRkU4RkY2MEZGRkZGRjA3RkY1MAorOjEwMjkzMDAwNjJGRjYxRkZGRkZGMjdGRjg4RkYyQkZGRkZGRjhCRkY3OQorOjEwMjk0MDAwRThGRjYwRkZGRkZGMDdGRjYyRkY2MUZGRkZGRjE3RkY2OAorOjEwMjk1MDAwODhGRjJGRkZGRkZGRkJGRjg5RkYyM0ZGRkZGRjBGRkYxNAorOjEwMjk2MDAwOThGRjIwRkZGRkZGMEZGRkVBRkYyMEZGRkZGRjBGRkY5MQorOjEwMjk3MDAwMDBGRjBERkZGRkZGQUJGRjAwRkYwREZGRkZGRkI4RkZFNAorOjEwMjk4MDAwMDBGRjBERkZGRkZGQ0ZGRjYyRkYyMUZGRkZGRjBGRkZFMworOjEwMjk5MDAwMTBGRjIyRkZGRkZGMEZGRjYyRkYyMUZGRkZGRjBGRkY2RQorOjEwMjlBMDAwMDBGRjQwRkZGRkZGMjRGRjkwRkY4MEZGRkZGRjYwRkY1RAorOjEwMjlCMDAwODBGRjIzRkZGRkZGMEZGRjUxRkYxOEZGRkZGRjAwRkYwNgorOjEwMjlDMDAwOEJGRjkzRkZGRkZGRUJGRjhCRkY5M0ZGRkZGRkZDRkZFRQorOjEwMjlEMDAwMDBGRjBBRkZGRkZGMEZGRjUxRkYxQ0ZGRkZGRjBGRkY2QworOjEwMjlFMDAwOERGRjkzRkZGRkZGQUNGRjgyRkYzQ0ZGRkZGRjQ1RkYyMgorOjEwMjlGMDAwNTRGRjE0RkZGRkZGMkVGRkZGRkYzRkZGRkZGRkY1RkYxOAorOjEwMkEwMDAwNTRGRjE0RkZGRkZGMUVGRjAwRkYwMEZGRkZGRjAwRkY0QQorOjEwMkExMDAwMDBGRjAwRkZGRkZGMDBGRjUxRkYxQ0ZGRkZGRjBGRkY0NAorOjEwMkEyMDAwMDBGRjBERkZGRkZGMENGRjhERkY4M0ZGRkZGRkE0RkZFMworOjEwMkEzMDAwRTBGRjIyRkZGRkZGMEZGRjUzRkYxOEZGRkZGRkIzRkY3MQorOjEwMkE0MDAwOERGRjgzRkZGRkZGRDBGRjAwRkY0MEZGRkZGRjI0RkY0QworOjEwMkE1MDAwQTBGRjIzRkZGRkZGMEZGRjAwRkYwREZGRkZGRkJBRkZFNworOjEwMkE2MDAwOEJGRjgzRkZGRkZGRjVGRjExRkY5MEZGRkZGRjZCRkY2MQorOjEwMkE3MDAwMDBGRjQwRkZGRkZGMTRGRjE4RkYyM0ZGRkZGRjBGRkZDMgorOjEwMkE4MDAwNTVGRjE0RkZGRkZGMjFGRjkwRkY4MEZGRkZGRjYwRkY1NgorOjEwMkE5MDAwODBGRjIzRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjIwRkYyRQorOjEwMkFBMDAwMDBGRjQwRkZGRkZGMDFGRjhCRkY4M0ZGRkZGRkU0RkZGRAorOjEwMkFCMDAwOEJGRjgzRkZGRkZGRjVGRjA4RkYwQ0ZGRkZGRjAwRkYwOQorOjEwMkFDMDAwNjBGRjIyRkZGRkZGMEZGRjQ5RkYyQUZGRkZGRkVBRkYyMgorOjEwMkFEMDAwMDBGRjBERkZGRkZGNEVGRjhCRkY5M0ZGRkZGRkVFRkY5OQorOjEwMkFFMDAwMDBGRjBERkZGRkZGNUFGRjhCRkY5M0ZGRkZGRkZBRkY3MQorOjEwMkFGMDAwOERGRjgzRkZGRkZGMjBGRjhERkY4M0ZGRkZGRjMxRkY2RgorOjEwMkIwMDAwRTBGRjIyRkZGRkZGMEZGRkM5RkYyQUZGRkZGRkVBRkZFMQorOjEwMkIxMDAwNTRGRjE4RkZGRkZGRDVGRjAwRkYwREZGRkZGRjRFRkYyMworOjEwMkIyMDAwMDBGRjBERkZGRkZGNUFGRjgyRkY0RkZGRkZGRkYwRkY4NworOjEwMkIzMDAwRkZGRjRGRkZGRkZGRjFGRkUwRkYyMkZGRkZGRjBGRkY0RgorOjEwMkI0MDAwQzlGRjJBRkZGRkZGRUFGRjU2RkYxOEZGRkZGRkI0RkY5MAorOjEwMkI1MDAwNTRGRjE4RkZGRkZGREZGRjAwRkY0MEZGRkZGRjIwRkZENAorOjEwMkI2MDAwNDdGRjkwRkZGRkZGMjBGRjBDRkYwQ0ZGRkZGRjAwRkY2MAorOjEwMkI3MDAwMDJGRjQwRkZGRkZGNjBGRjExRkY5MEZGRkZGRjIwRkZGQworOjEwMkI4MDAwMTZGRjE4RkZGRkZGNEZGRjhERkY4M0ZGRkZGRkQwRkZGMgorOjEwMkI5MDAwMDBGRjQwRkZGRkZGMjRGRkEwRkYyM0ZGRkZGRjBGRkYwOQorOjEwMkJBMDAwMTFGRjkwRkZGRkZGNkFGRjAwRkY0MEZGRkZGRjE0RkZEMAorOjEwMkJCMDAwMThGRjIzRkZGRkZGMEZGRjU3RkYxNEZGRkZGRjkxRkZEOQorOjEwMkJDMDAwOTBGRjgwRkZGRkZGNjBGRjgwRkYyM0ZGRkZGRjBGRkZFRAorOjEwMkJEMDAwOERGRjgzRkZGRkZGRDBGRjAwRkY0MEZGRkZGRjE0RkZDQgorOjEwMkJFMDAwQTBGRjIzRkZGRkZGMEZGRjExRkY5MEZGRkZGRjZBRkYxMgorOjEwMkJGMDAwMzBGRjBDRkZGRkZGMDBGRjAwRkY0MEZGRkZGRjE2RkY0RAorOjEwMkMwMDAwMTBGRjQwRkZGRkZGMDdGRjkwRkYzNEZGRkZGRjcxRkY0MgorOjEwMkMxMDAwMDBGRjM0RkZGRkZGMDlGRjBGRkY0MEZGRkZGRkY1RkYzRAorOjEwMkMyMDAwMDBGRjYwRkZGRkZGMDdGRjg4RkY2M0ZGRkZGRjI3RkYzNQorOjEwMkMzMDAwRThGRjYwRkZGRkZGMDdGRjYyRkY2MUZGRkZGRjI3RkY2NQorOjEwMkM0MDAwODhGRjJCRkZGRkZGOEJGRkU4RkY2MEZGRkZGRjA3RkYwMQorOjEwMkM1MDAwNjJGRjYxRkZGRkZGMTdGRjg4RkYyRkZGRkZGRkZCRkZGMgorOjEwMkM2MDAwODlGRjIzRkZGRkZGMEZGRjk4RkYyMEZGRkZGRjBGRkZFQworOjEwMkM3MDAwRUFGRjIwRkZGRkZGMEZGRjAwRkYwREZGRkZGRkFCRkY4RAorOjEwMkM4MDAwMDBGRjBERkZGRkZGQjhGRjAwRkYwREZGRkZGRkNGRkZBRAorOjEwMkM5MDAwNjJGRjIxRkZGRkZGMEZGRjEwRkYyMkZGRkZGRjBGRkY2QgorOjEwMkNBMDAwNjJGRjIxRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjI0RkYzOAorOjEwMkNCMDAwOTBGRjgwRkZGRkZGNjBGRjgwRkYyM0ZGRkZGRjBGRkZGQworOjEwMkNDMDAwNTdGRjE4RkZGRkZGMTBGRjhCRkY5M0ZGRkZGRkVCRkY4NgorOjEwMkNEMDAwOEJGRjkzRkZGRkZGRkNGRjVDRkYxQ0ZGRkZGRjNGRkYyRAorOjEwMkNFMDAwMDBGRjBBRkZGRkZGMEZGRjU3RkYxQ0ZGRkZGRjFGRkY0MworOjEwMkNGMDAwOERGRjkzRkZGRkZGQUNGRjgyRkYzQ0ZGRkZGRjQ1RkYwRgorOjEwMkQwMDAwNUFGRjE0RkZGRkZGNEVGRkZGRkYzRkZGRkZGRkY1RkZERQorOjEwMkQxMDAwNUFGRjE0RkZGRkZGM0VGRjAwRkYwMEZGRkZGRjAwRkYxMQorOjEwMkQyMDAwMDBGRjAwRkZGRkZGMDBGRjU3RkYxQ0ZGRkZGRjFGRkYxQgorOjEwMkQzMDAwMDBGRjBERkZGRkZGMENGRjhERkY4M0ZGRkZGRkE0RkZEMAorOjEwMkQ0MDAwRTBGRjIyRkZGRkZGMEZGRjU5RkYxOEZGRkZGRkQzRkYzOAorOjEwMkQ1MDAwNUNGRjFDRkZGRkZGM0ZGRjhERkY4M0ZGRkZGRkQwRkZFNgorOjEwMkQ2MDAwMDBGRjQwRkZGRkZGMjRGRkEwRkYyM0ZGRkZGRjBGRkYzNworOjEwMkQ3MDAwMDBGRjBERkZGRkZGQkFGRjhCRkY4M0ZGRkZGRkY1RkY5MworOjEwMkQ4MDAwNUNGRjFDRkZGRkZGM0ZGRjExRkY5MEZGRkZGRjZCRkY4QQorOjEwMkQ5MDAwMDBGRjQwRkZGRkZGMTRGRjE4RkYyM0ZGRkZGRjBGRkY5RgorOjEwMkRBMDAwNUJGRjE0RkZGRkZGNjFGRjkwRkY4MEZGRkZGRjYwRkZFRAorOjEwMkRCMDAwODBGRjIzRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjIwRkYwQgorOjEwMkRDMDAwMDBGRjQwRkZGRkZGMDFGRjhCRkY4M0ZGRkZGRkU0RkZEQQorOjEwMkREMDAwOEJGRjgzRkZGRkZGRjVGRjA4RkYwQ0ZGRkZGRjAwRkZFNgorOjEwMkRFMDAwNjBGRjIyRkZGRkZGMEZGRjQ5RkYyQUZGRkZGRkVBRkZGRgorOjEwMkRGMDAwMDBGRjBERkZGRkZGNEVGRjhCRkY5M0ZGRkZGRkVFRkY3NgorOjEwMkUwMDAwOEJGRjkzRkZGRkZGRkFGRjVFRkYxQ0ZGRkZGRjBGRkYyQgorOjEwMkUxMDAwNUJGRjE4RkZGRkZGMEZGRjhCRkY4M0ZGRkZGRjIwRkYwQworOjEwMkUyMDAwNzhGRjIyRkZGRkZGMEZGRjBERkYxOEZGRkZGRjA1RkZEOQorOjEwMkUzMDAwMDBGRjBBRkZGRkZGMEZGRjA4RkYwQ0ZGRkZGRjAwRkY2RgorOjEwMkU0MDAwMDBGRjQwRkZGRkZGMTRGRjAwRkY0MEZGRkZGRjA1RkZGMworOjEwMkU1MDAwOEJGRjgzRkZGRkZGRTBGRjhCRkY4M0ZGRkZGRkYxRkY4RgorOjEwMkU2MDAwNjBGRjIyRkZGRkZGMEZGRjQ5RkYyQUZGRkZGRkVBRkY3RQorOjEwMkU3MDAwOEJGRjkzRkZGRkZGRkFGRjhCRkY5M0ZGRkZGRkVFRkYzOAorOjEwMkU4MDAwMENGRjBDRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkYxQgorOjEwMkU5MDAwMDhGRjBDRkZGRkZGMDBGRjAwRkY0MEZGRkZGRjE0RkZENAorOjEwMkVBMDAwMDBGRjQwRkZGRkZGMDVGRjhCRkY4M0ZGRkZGRkUwRkZGOQorOjEwMkVCMDAwOEJGRjgzRkZGRkZGRjFGRjYwRkYyMkZGRkZGRjBGRkY4QworOjEwMkVDMDAwNDlGRjJBRkZGRkZGRUFGRjhCRkY5M0ZGRkZGRkZBRkY5NworOjEwMkVEMDAwOEJGRjkzRkZGRkZGRUVGRjBDRkYwQ0ZGRkZGRjAwRkZEOAorOjEwMkVFMDAwOERGRjgzRkZGRkZGNDBGRjc4RkYyMkZGRkZGRjBGRkZGMworOjEwMkVGMDAwNUVGRjFDRkZGRkZGMDRGRjAwRkYwQUZGRkZGRjBGRkY0NQorOjEwMkYwMDAwMDhGRjBDRkZGRkZGMDBGRjhERkY4M0ZGRkZGRjUwRkY1NworOjEwMkYxMDAwNzhGRjIyRkZGRkZGMEZGRjVGRkYxQ0ZGRkZGRjU0RkY0MworOjEwMkYyMDAwMEZGRjQwRkZGRkZGRjVGRjkwRkY4MEZGRkZGRkE4RkZBRgorOjEwMkYzMDAwMTBGRjBGRkZGRkZGMDhGRjkwRkY4MEZGRkZGRjkwRkZENAorOjEwMkY0MDAwODhGRjI3RkZGRkZGMEZGRkI2RkYyN0ZGRkZGRjBGRkZFMQorOjEwMkY1MDAwOEJGRjgzRkZGRkZGRkFGRkYyRkYyMkZGRkZGRjBGRkY1MAorOjEwMkY2MDAwMDBGRjBERkZGRkZGMEFGRjAwRkY0MEZGRkZGRjE0RkYwMAorOjEwMkY3MDAwRTJGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRkUyRkZEQQorOjEwMkY4MDAwMzhGRjIzRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjI0RkY3RAorOjEwMkY5MDAwRTJGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRkUyRkZCQQorOjEwMkZBMDAwMDBGRjBBRkZGRkZGMEZGRjBGRkY0MEZGRkZGRkY1RkZDRQorOjEwMkZCMDAwOTBGRjgwRkZGRkZGODBGRjhCRkY4M0ZGRkZGRkUyRkY5QgorOjEwMkZDMDAwODhGRjI3RkZGRkZGMEZGRjk4RkYyMEZGRkZGRjBGRkY4NgorOjEwMkZEMDAwMTBGRjQwRkZGRkZGMDdGRkU4RkYyMEZGRkZGRjBGRkY4RAorOjEwMkZFMDAwMDBGRjBERkZGRkZGQUNGRkYyRkYyMkZGRkZGRjBGRkYwRgorOjEwMkZGMDAwMDBGRjBERkZGRkZGMEFGRjAxRkY0MEZGRkZGRjA0RkY3RgorOjEwMzAwMDAwRTJGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRkUyRkY0OQorOjEwMzAxMDAwMzhGRjIzRkZGRkZGMEZGRjAyRkY0MEZGRkZGRjA0RkYwQQorOjEwMzAyMDAwRTJGRjIyRkZGRkZGMEZGRjc0RkYxOEZGRkZGRkUyRkYyOQorOjEwMzAzMDAwMDBGRjBBRkZGRkZGMEZGRjAwRkYzNEZGRkZGRjA4RkY0NQorOjEwMzA0MDAwMDBGRjM0RkZGRkZGRDRGRjAwRkYzNEZGRkZGRjg1RkZDOQorOjEwMzA1MDAwRkZGRjRGRkZGRkZGODlGRjAwRkYwOUZGRkZGRjAxRkY5OQorOjEwMzA2MDAwODlGRjgzRkZGRkZGQjhGRjAwRkYwRUZGRkZGRjBGRkY4OQorOjEwMzA3MDAwMDBGRjBERkZGRkZGNEVGRkE3RkYyM0ZGRkZGRjBGRkYyNgorOjEwMzA4MDAwMDBGRjY4RkZGRkZGQTNGRjg5RkY4M0ZGRkZGRkE4RkY4QgorOjEwMzA5MDAwMDBGRjBFRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRFRkZDMgorOjEwMzBBMDAwQTdGRjIzRkZGRkZGMEZGRjAwRkY2OEZGRkZGRkEzRkY0NgorOjEwMzBCMDAwMDBGRjA5RkZGRkZGMDNGRjhCRkY4M0ZGRkZGRkIwRkY1MAorOjEwMzBDMDAwMDBGRjY4RkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkY4OQorOjEwMzBEMDAwMDJGRjM1RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY4NworOjEwMzBFMDAwMDBGRjM0RkZGRkZGMjZGRjg5RkY4M0ZGRkZGRkQ4RkZBQworOjEwMzBGMDAwMDBGRjBFRkZGRkZGMEZGRjAwRkYwREZGRkZGRjRFRkY2MgorOjEwMzEwMDAwQTdGRjIzRkZGRkZGMEZGRjAwRkY2OEZGRkZGRkEzRkZFNQorOjEwMzExMDAwODlGRjgzRkZGRkZGQzhGRjAwRkYwRUZGRkZGRjBGRkZDOAorOjEwMzEyMDAwMDBGRjBERkZGRkZGNEVGRkE3RkYyM0ZGRkZGRjBGRkY3NQorOjEwMzEzMDAwMDBGRjY4RkZGRkZGQTNGRjAwRkYwOUZGRkZGRjAzRkY4MgorOjEwMzE0MDAwOEJGRjgzRkZGRkZGRDBGRjAwRkY2OEZGRkZGRjAyRkY0MQorOjEwMzE1MDAwMDFGRjQwRkZGRkZGODBGRjAwRkY2OEZGRkZGRjAyRkY0RQorOjEwMzE2MDAwMDBGRjQwRkZGRkZGMjBGRjAwRkY2OEZGRkZGRjAzRkY5RQorOjEwMzE3MDAwMDBGRjBBRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjEwRkZGMAorOjEwMzE4MDAwOEJGRjkzRkZGRkZGNDBGRjMwRkY0MEZGRkZGRjAwRkY3QgorOjEwMzE5MDAwNDlGRjkwRkZGRkZGNDBGRjAwRkYwQUZGRkZGRjBGRkYwNworOjEwMzFBMDAwMDBGRjQwRkZGRkZGNjBGRjAwRkY5MUZGRkZGRkYwRkYwOAorOjEwMzFCMDAwMDBGRjBBRkZGRkZGMEZGRjAxRkY0MkZGRkZGRjgwRkYzRAorOjEwMzFDMDAwMDBGRjkxRkZGRkZGNzBGRjA3RkY0MkZGRkZGRjgwRkYzRgorOjEwMzFEMDAwMDNGRjkxRkZGRkZGNzBGRjAyRkY0MkZGRkZGRjAwRkZCMQorOjEwMzFFMDAwMDBGRjkxRkZGRkZGRjBGRjA4RkY0MkZGRkZGRjAwRkYxRQorOjEwMzFGMDAwMDNGRjkxRkZGRkZGRjBGRjAwRkY0MEZGRkZGRjIwRkZGNQorOjEwMzIwMDAwMDFGRjkxRkZGRkZGNzBGRjAwRkY0MEZGRkZGRjIwRkY2NgorOjEwMzIxMDAwMDRGRjkxRkZGRkZGNzBGRjAwRkYwQUZGRkZGRjBGRkY5QQorOjEwMzIyMDAwMDRGRjQyRkZGRkZGMDBGRjQ5RkY5MEZGRkZGRjIwRkY2OQorOjEwMzIzMDAwNjJGRjFDRkZGRkZGRkZGRjAwRkYwQUZGRkZGRjBGRkYwMgorOjEwMzI0MDAwMDBGRjQwRkZGRkZGMjBGRjAwRkY5MUZGRkZGRkYwRkZBNworOjEwMzI1MDAwMDFGRjQyRkZGRkZGMDBGRjQ5RkY5MEZGRkZGRjIwRkYzQworOjEwMzI2MDAwNjJGRjFDRkZGRkZGRkZGRjAwRkYwQUZGRkZGRjBGRkZEMgorOjEwMzI3MDAwMDBGRjQwRkZGRkZGNDBGRjhCRkY5M0ZGRkZGRjgwRkYzQQorOjEwMzI4MDAwMDVGRjM1RkZGRkZGMDBGRjkyRkYzQkZGRkZGRjAwRkY0MQorOjEwMzI5MDAwMDBGRjM0RkZGRkZGMDhGRjAwRkYzOEZGRkZGRjA4RkZCQworOjEwMzJBMDAwMDBGRjNDRkZGRkZGNjVGRjY1RkYxNEZGRkZGRjlFRkY3MAorOjEwMzJCMDAwMDBGRjYwRkZGRkZGMDNGRjAwRkY2MEZGRkZGRjEzRkY0MgorOjEwMzJDMDAwMDBGRjc4RkZGRkZGMTNGRjAwRkY3OEZGRkZGRjAzRkYwMgorOjEwMzJEMDAwMDFGRjQyRkZGRkZGMDBGRjQ5RkY5MEZGRkZGRjIwRkZCQworOjEwMzJFMDAwNjJGRjFDRkZGRkZGRkZGRjA1RkY4MUZGRkZGRkMwRkYyNQorOjEwMzJGMDAwNzhGRjIyRkZGRkZGMEZGRjIxRkYxOEZGRkZGRjcxRkY4NQorOjEwMzMwMDAwMDBGRjBBRkZGRkZGMEZGRjQ5RkY4MEZGRkZGRjQ4RkY5RAorOjEwMzMxMDAwMTBGRjBGRkZGRkZGMDNGRjY2RkYyM0ZGRkZGRjBGRkZGRAorOjEwMzMyMDAwNzRGRjE4RkZGRkZGNTRGRjg2RkY4M0ZGRkZGRkMwRkZGRQorOjEwMzMzMDAwNDlGRjkwRkZGRkZGMjBGRjYyRkYxQ0ZGRkZGRkZGRkYyMQorOjEwMzM0MDAwODZGRjgzRkZGRkZGODBGRjAxRkY0MEZGRkZGRjA0RkZCOQorOjEwMzM1MDAwRTBGRjIyRkZGRkZGMEZGRjg2RkY5M0ZGRkZGRjhBRkZDMworOjEwMzM2MDAwNjdGRjFDRkZGRkZGMDBGRjg2RkY4N0ZGRkZGRkQwRkYwNworOjEwMzM3MDAwNzVGRjFDRkZGRkZGMUZGRjAwRkYwQUZGRkZGRjBGRkY4RQorOjEwMzM4MDAwMDBGRjQ4RkZGRkZGMDBGRjgyRkY5M0ZGRkZGRjQwRkZBQQorOjEwMzM5MDAwMDBGRjBBRkZGRkZGMEZGRjA4RkYwQ0ZGRkZGRjAwRkYwQQorOjEwMzNBMDAwODZGRjhCRkZGRkZGQjBGRjAwRkYzOEZGRkZGRjA4RkYyNgorOjEwMzNCMDAwMDBGRjM4RkZGRkZGRjRGRkZGRkY0RkZGRkZGRjg5RkYxNAorOjEwMzNDMDAwOERGRjgzRkZGRkZGNjBGRjg5RkY4M0ZGRkZGRjQ0RkY0NworOjEwMzNEMDAwMDBGRjQwRkZGRkZGMDFGRjg5RkY4M0ZGRkZGRjU1RkY1NQorOjEwMzNFMDAwNjBGRjI2RkZGRkZGMEZGRjQ5RkYyMkZGRkZGRjBGRkZEOAorOjEwMzNGMDAwMDBGRjc4RkZGRkZGQTNGRjEwRkYyMkZGRkZGRjBGRkY3QgorOjEwMzQwMDAwMDBGRjc4RkZGRkZGQTBGRjhERkY4M0ZGRkZGRjYwRkYzRQorOjEwMzQxMDAwODlGRjgzRkZGRkZGMjRGRjAwRkY0MEZGRkZGRjAxRkY0NQorOjEwMzQyMDAwODlGRjgzRkZGRkZGMzVGRjYwRkYyNkZGRkZGRjBGRkZEMAorOjEwMzQzMDAwNDlGRjIyRkZGRkZGMEZGRjAwRkY3OEZGRkZGRkEzRkYwMQorOjEwMzQ0MDAwMTBGRjIyRkZGRkZGMEZGRjAwRkY3OEZGRkZGRkEzRkYyQQorOjEwMzQ1MDAwOERGRjgzRkZGRkZGNjBGRjIwRkY0MEZGRkZGRjA0RkZBMgorOjEwMzQ2MDAwNjBGRjIyRkZGRkZGMEZGRjhERkY5M0ZGRkZGRjZBRkY0QgorOjEwMzQ3MDAwMENGRjBDRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkYyNQorOjEwMzQ4MDAwMDhGRjBDRkZGRkZGMDBGRjg2RkY4N0ZGRkZGRkIwRkY3NQorOjEwMzQ5MDAwMDBGRjM0RkZGRkZGMDhGRjAxRkYzNEZGRkZGRjA0RkZDMQorOjEwMzRBMDAwMDBGRjM0RkZGRkZGMzVGRkZGRkY0RkZGRkZGRjg5RkZFNgorOjEwMzRCMDAwMDBGRjA5RkZGRkZGMDFGRjg3RkY4QkZGRkZGRkUwRkYxQQorOjEwMzRDMDAwMDBGRjM4RkZGRkZGODhGRjAwRkY3MEZGRkZGRjAzRkZEMworOjEwMzREMDAwMDBGRjY4RkZGRkZGMDBGRjAwRkY3MEZGRkZGRjAzRkYxQgorOjEwMzRFMDAwMDBGRjY4RkZGRkZGMDNGRjg3RkY5QkZGRkZGRkUwRkY3OQorOjEwMzRGMDAwMENGRjBDRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkZBNQorOjEwMzUwMDAwMDFGRjNDRkZGRkZGMDVGRjZBRkYxNEZGRkZGRjlFRkY2NworOjEwMzUxMDAwNjdGRjFDRkZGRkZGM0ZGRjY5RkYxQ0ZGRkZGRjBGRkY1RgorOjEwMzUyMDAwNjZGRjFDRkZGRkZGMUZGRjM4RkYyMkZGRkZGRjBGRkY5QgorOjEwMzUzMDAwNkFGRjE0RkZGRkZGODVGRjhCRkY4M0ZGRkZGRjQwRkY0NAorOjEwMzU0MDAwNzhGRjIyRkZGRkZGMEZGRjAwRkYwMEZGRkZGRjAwRkZEQworOjEwMzU1MDAwMDBGRjBBRkZGRkZGMEZGRjgyRkY4M0ZGRkZGRjQwRkYxNworOjEwMzU2MDAwNzhGRjIyRkZGRkZGMEZGRjZBRkYxQ0ZGRkZGRkY0RkY0MgorOjEwMzU3MDAwMDBGRjBBRkZGRkZGMEZGRjAwRkY0MEZGRkZGRjEwRkZFQworOjEwMzU4MDAwNDdGRjkwRkZGRkZGMjBGRjg3RkY4M0ZGRkZGRkYwRkY1NAorOjEwMzU5MDAwODZGRjkzRkZGRkZGODBGRjAwRkY0MEZGRkZGRjAwRkY1QworOjEwMzVBMDAwOERGRjkzRkZGRkZGNjBGRjgyRkY5M0ZGRkZGRjQwRkY1MAorOjEwMzVCMDAwODZGRjg3RkZGRkZGOTBGRjAyRkYzNEZGRkZGRjA4RkYzQQorOjEwMzVDMDAwMDBGRjYwRkZGRkZGMDNGRjg5RkY5M0ZGRkZGRjIwRkY2NgorOjEwMzVEMDAwMDBGRjYwRkZGRkZGMDNGRjg5RkY5M0ZGRkZGRjMwRkY0NgorOjEwMzVFMDAwMDBGRjYwRkZGRkZGMDNGRjg5RkY5M0ZGRkZGRjQwRkYyNgorOjEwMzVGMDAwMDBGRjYwRkZGRkZGMDNGRjg5RkY5M0ZGRkZGRjUwRkYwNgorOjEwMzYwMDAwODZGRjk3RkZGRkZGOTBGRjAwRkYwQUZGRkZGRjBGRkZGRQorOjEwMzYxMDAwMDBGRjM0RkZGRkZGNjRGRjAwRkYzNEZGRkZGRjM1RkZCMworOjEwMzYyMDAwMDFGRjM0RkZGRkZGOTZGRjAwRkYzOEZGRkZGRjM0RkY2RAorOjEwMzYzMDAwMDBGRjM4RkZGRkZGNjVGRjAxRkYzOEZGRkZGRjk2RkYyOAorOjEwMzY0MDAwMDBGRjM4RkZGRkZGMDhGRjAyRkYzNEZGRkZGRjQ5RkZDNQorOjEwMzY1MDAwMDJGRjM4RkZGRkZGNDlGRjEwRkY0MEZGRkZGRjA2RkY5QgorOjEwMzY2MDAwMTBGRjQwRkZGRkZGMDJGRjMwRkYwQ0ZGRkZGRjAwRkZENgorOjEwMzY3MDAwMDBGRjNDRkZGRkZGMjVGRjZERkYxNEZGRkZGRkJFRkZCNAorOjEwMzY4MDAwOThGRjUwRkZGRkZGNzNGRjg4RkY1MEZGRkZGRjczRkY5RQorOjEwMzY5MDAwODNGRjY4RkZGRkZGQzVGRjg4RkY2OEZGRkZGRkM0RkZEMAorOjEwMzZBMDAwODNGRjY4RkZGRkZGQzVGRjAwRkY2OEZGRkZGRkM2RkY0NgorOjEwMzZCMDAwOThGRjUwRkZGRkZGNzNGRjg4RkY1MEZGRkZGRjczRkY2RQorOjEwMzZDMDAwODNGRjc4RkZGRkZGQzRGRjg4RkY3OEZGRkZGRkM1RkY4MAorOjEwMzZEMDAwODNGRjc4RkZGRkZGQzRGRjAwRkY3OEZGRkZGRkM2RkZGNworOjEwMzZFMDAwOThGRjUwRkZGRkZGNzNGRjg4RkY1MEZGRkZGRjczRkYzRQorOjEwMzZGMDAwODNGRjY4RkZGRkZGQzVGRjg4RkY2OEZGRkZGRkM0RkY3MAorOjEwMzcwMDAwODNGRjY4RkZGRkZGQzVGRjAwRkY2OEZGRkZGRkM2RkZFNQorOjEwMzcxMDAwMDBGRjNDRkZGRkZGMjVGRjZFRkYxNEZGRkZGRjhFRkY0MgorOjEwMzcyMDAwOThGRjUwRkZGRkZGNzNGRjg4RkY1MEZGRkZGRjczRkZGRAorOjEwMzczMDAwODNGRjc4RkZGRkZGQzRGRjg4RkY3OEZGRkZGRkM0RkYxMAorOjEwMzc0MDAwMDBGRjc4RkZGRkZGQzRGRjIwRkYwQ0ZGRkZGRjAwRkYxQgorOjEwMzc1MDAwMDBGRjBBRkZGRkZGMEZGRjAwRkYzNEZGRkZGRkU5RkYzRAorOjEwMzc2MDAwMDFGRjM4RkZGRkZGMjhGRjAxRkYzOEZGRkZGRjI5RkZBMAorOjEwMzc3MDAwMDBGRjM4RkZGRkZGNjZGRjAwRkYzOEZGRkZGRjM0RkY0OQorOjEwMzc4MDAwMDBGRjM4RkZGRkZGNzVGRjEwRkY0MEZGRkZGRjA2RkY0MAorOjEwMzc5MDAwMDBGRjQxRkZGRkZGMDdGRjMwRkYwQ0ZGRkZGRjAwRkZBRgorOjEwMzdBMDAwOThGRjcwRkZGRkZGMjBGRjAwRkYzQ0ZGRkZGRjI1RkY5QQorOjEwMzdCMDAwNzBGRjE0RkZGRkZGMkVGRjgwRkY3MEZGRkZGRjQyRkYyRgorOjEwMzdDMDAwNjNGRjcyRkZGRkZGMjBGRjgwRkY2OEZGRkZGRkE3RkY3RgorOjEwMzdEMDAwMDBGRjcwRkZGRkZGNDFGRjYzRkY3MkZGRkZGRjI0RkY0OQorOjEwMzdFMDAwODBGRjY4RkZGRkZGQTdGRjAwRkY3MEZGRkZGRjQ2RkY5RQorOjEwMzdGMDAwNjNGRjcyRkZGRkZGMjRGRjgwRkY2OEZGRkZGRkE3RkY0QgorOjEwMzgwMDAwMDBGRjcwRkZGRkZGNDVGRjYzRkY3MkZGRkZGRjIwRkYxOAorOjEwMzgxMDAwMDBGRjY4RkZGRkZGQTdGRjgwRkY3MEZGRkZGRjQyRkY3MQorOjEwMzgyMDAwNjNGRjcyRkZGRkZGMjBGRjgwRkY3MEZGRkZGRjQxRkY3QworOjEwMzgzMDAwNjNGRjZBRkZGRkZGQTdGRjAwRkY3MEZGRkZGRjI0RkY4QQorOjEwMzg0MDAwODBGRjY4RkZGRkZGQTdGRjAwRkY3MEZGRkZGRjQ0RkYzRgorOjEwMzg1MDAwNjNGRjcyRkZGRkZGMjRGRjgwRkY2OEZGRkZGRkE3RkZFQQorOjEwMzg2MDAwRjBGRjQwRkZGRkZGMDVGRjAwRkY0RkZGRkZGRjA0RkZEQQorOjEwMzg3MDAwMDBGRjBERkZGRkZGMEJGRjgwRkYyN0ZGRkZGRjBGRkY4NAorOjEwMzg4MDAwODhGRjIzRkZGRkZGMEZGRkVBRkYyMEZGRkZGRjBGRkY2RgorOjEwMzg5MDAwNzRGRjIyRkZGRkZGMEZGRjAwRkY2OEZGRkZGRkE3RkY3RQorOjEwMzhBMDAwMDBGRjcwRkZGRkZGMjRGRjgwRkY3MEZGRkZGRjQ0RkY1QQorOjEwMzhCMDAwNjNGRjcyRkZGRkZGMjRGRjgwRkY2OEZGRkZGRkE3RkY4QQorOjEwMzhDMDAwMDBGRjRGRkZGRkZGMDRGRjAwRkYwREZGRkZGRjBCRkY5NworOjEwMzhEMDAwODBGRjI3RkZGRkZGMEZGRjg4RkYyM0ZGRkZGRjBGRkY4MgorOjEwMzhFMDAwRUFGRjIwRkZGRkZGMEZGRjc0RkYyMkZGRkZGRjBGRkYyNAorOjEwMzhGMDAwMDBGRjY4RkZGRkZGQTdGRjAwRkYwQUZGRkZGRjBGRkZBQQorOjEwMzkwMDAwMzhGRjIyRkZGRkZGMEZGRjcyRkYxNEZGRkZGRjM1RkY5RAorOjEwMzkxMDAwOEJGRjgzRkZGRkZGMzBGRjc4RkYyMkZGRkZGRjBGRkZDQQorOjEwMzkyMDAwMDBGRjBBRkZGRkZGMEZGRjBFRkY0MEZGRkZGRjAwRkYzQQorOjEwMzkzMDAwMTBGRjkwRkZGRkZGMTBGRjA4RkY0MEZGRkZGRjAwRkY5OQorOjEwMzk0MDAwMTBGRjkwRkZGRkZGOTBGRjAyRkY0MEZGRkZGRjQwRkZDRgorOjEwMzk1MDAwMTFGRjkwRkZGRkZGMjBGRjAwRkY0MEZGRkZGRjAwRkY3MAorOjEwMzk2MDAwMTBGRjkwRkZGRkZGQjBGRkIwRkY0MEZGRkZGRjAwRkYyMQorOjEwMzk3MDAwNDdGRjkwRkZGRkZGNTBGRjMwRkY0MEZGRkZGRjAwRkZCQQorOjEwMzk4MDAwNDdGRjkwRkZGRkZGNDBGRjc4RkY0MkZGRkZGRjUwRkYyMAorOjEwMzk5MDAwNDhGRjkwRkZGRkZGQTBGRjQwRkY0MEZGRkZGRjAwRkYzOQorOjEwMzlBMDAwNDlGRjkwRkZGRkZGNzBGRjE4RkY0MEZGRkZGRjAwRkY4MAorOjEwMzlCMDAwNDdGRjkwRkZGRkZGNzBGRjE4RkY0MEZGRkZGRjEwRkY2MgorOjEwMzlDMDAwNDdGRjkwRkZGRkZGNzBGRjE4RkY0MEZGRkZGRjAwRkY2MgorOjEwMzlEMDAwNDdGRjkwRkZGRkZGNzBGRjAwRkY0MEZGRkZGRjAwRkY2QQorOjEwMzlFMDAwMTFGRjkwRkZGRkZGNjBGRjhERkY5M0ZGRkZGRkQwRkZGMAorOjEwMzlGMDAwMEJGRjQwRkZGRkZGODBGRjExRkY5MEZGRkZGRkYwRkY3NQorOjEwM0EwMDAwMDBGRjQwRkZGRkZGMTBGRjExRkY5MEZGRkZGRkUwRkZFRgorOjEwM0ExMDAwMDBGRjQ4RkZGRkZGMDBGRjAwRkY5M0ZGRkZGRjAwRkZENQorOjEwM0EyMDAwMDBGRjBBRkZGRkZGMEZGRjA4RkY0MEZGRkZGRjAwRkYzRgorOjEwM0EzMDAwNDdGRjkwRkZGRkZGMjBGRjIyRkYxOEZGRkZGRjlGRkZDMAorOjEwM0E0MDAwMDBGRjQ4RkZGRkZGMTBGRjg2RkY5M0ZGRkZGRjcwRkY5RgorOjEwM0E1MDAwMjJGRjE4RkZGRkZGOUZGRjAwRkY0OEZGRkZGRjAwRkY0RgorOjEwM0E2MDAwODZGRjkzRkZGRkZGNzBGRjIyRkYxOEZGRkZGRjlGRkZGRQorOjEwM0E3MDAwMDBGRjQ4RkZGRkZGMjBGRjg2RkY5M0ZGRkZGRjcwRkY1RgorOjEwM0E4MDAwMjJGRjE4RkZGRkZGOUZGRjAwRkYzNEZGRkZGRjQ4RkZFQgorOjEwM0E5MDAwMDBGRjYwRkZGRkZGMDNGRjg2RkY5M0ZGRkZGRkIwRkYwNAorOjEwM0FBMDAwMDBGRjYwRkZGRkZGMDNGRjg2RkY5M0ZGRkZGRkMwRkZFNAorOjEwM0FCMDAwODZGRjk3RkZGRkZGRDBGRjAwRkYwQUZGRkZGRjBGRkYwQQorOjEwM0FDMDAwODBGRjM3RkZGRkZGMDJGRjg0RkYzQkZGRkZGRjAyRkY4NgorOjEwM0FEMDAwMDBGRjYwRkZGRkZGMEJGRjBDRkYwREZGRkZGRjkwRkZEQworOjEwM0FFMDAwMDBGRjcwRkZGRkZGMEJGRjBDRkYwREZGRkZGRkIwRkY5QworOjEwM0FGMDAwODhGRjM3RkZGRkZGMDNGRjhDRkYzQkZGRkZGRjAzRkY0NAorOjEwM0IwMDAwMDBGRjQwRkZGRkZGMDFGRjhCRkY5M0ZGRkZGRjUxRkYwRgorOjEwM0IxMDAwODJGRjQzRkZGRkZGODBGRjhCRkY5M0ZGRkZGRjYwRkZFQworOjEwM0IyMDAwMDBGRjM0RkZGRkZGODlGRjAwRkY0MEZGRkZGRjAwRkZBMgorOjEwM0IzMDAwMENGRjBERkZGRkZGODBGRjBDRkYwREZGRkZGRkEwRkYzRAorOjEwM0I0MDAwMDBGRjBBRkZGRkZGMEZGRjgwRkYzN0ZGRkZGRjAwRkZBRgorOjEwM0I1MDAwMDBGRjM0RkZGRkZGMDhGRjAyRkYzQ0ZGRkZGRjQ1RkZCMAorOjEwM0I2MDAwNzZGRjE0RkZGRkZGREVGRjAwRkZBMEZGRkZGRjAzRkY1NAorOjEwM0I3MDAwODRGRjM3RkZGRkZGMDBGRjAwRkYzNEZGRkZGRjA4RkY1OAorOjEwM0I4MDAwMDJGRjNDRkZGRkZGNDVGRjc3RkYxNEZGRkZGRjJFRkYwMworOjEwM0I5MDAwMDBGRkEwRkZGRkZGMDNGRjdFRkYzOEZGRkZGRjAwRkZENgorOjEwM0JBMDAwMDBGRjM4RkZGRkZGMDhGRjAwRkYzQ0ZGRkZGRkU1RkZCRQorOjEwM0JCMDAwNzdGRjE0RkZGRkZGOEVGRjAwRkY0MEZGRkZGRjAwRkZCNgorOjEwM0JDMDAwMDBGRjU4RkZGRkZGMDNGRjAwRkYwQUZGRkZGRjBGRkY4QgorOjEwM0JEMDAwNjRGRjFDRkZGRkZGNEZGRjM4RkYyMkZGRkZGRjBGRkZCNworOjEwM0JFMDAwNzdGRjE0RkZGRkZGRTVGRjhCRkY4M0ZGRkZGRjQwRkYyMQorOjEwM0JGMDAwNzhGRjIyRkZGRkZGMEZGRjY0RkYxQ0ZGRkZGRjhGRkYxNworOjEwM0MwMDAwMzhGRjIyRkZGRkZGMEZGRjc4RkYxNEZGRkZGRjM1RkY5NAorOjEwM0MxMDAwOEJGRjgzRkZGRkZGNDBGRjc4RkYyMkZGRkZGRjBGRkZCNworOjEwM0MyMDAwMDBGRjBBRkZGRkZGMEZGRjAwRkYzNEZGRkZGRjA5RkY0OAorOjEwM0MzMDAwMDBGRjM0RkZGRkZGODVGRjAwRkYzNEZGRkZGRjU2RkY0QgorOjEwM0M0MDAwMDBGRjA5RkZGRkZGMDZGRjIwRkY0MEZGRkZGRjAwRkYwRgorOjEwM0M1MDAwMDFGRjQwRkZGRkZGQzFGRjAwRkY0MEZGRkZGRjQ0RkZFOAorOjEwM0M2MDAwMDBGRjY4RkZGRkZGMDVGRjAwRkY2OEZGRkZGRjE1RkY3NAorOjEwM0M3MDAwMDBGRjY4RkZGRkZGMDVGRjAwRkY2OEZGRkZGRjQ1RkYzNAorOjEwM0M4MDAwMDBGRjBBRkZGRkZGMEZGRjg2RkY4N0ZGRkZGRkYwRkYyOAorOjEwM0M5MDAwODZGRjhCRkZGRkZGRTBGRjAwRkYzNEZGRkZGRkM4RkY0MQorOjEwM0NBMDAwMDBGRjM4RkZGRkZGQzhGRjAwRkY2MEZGRkZGRjAzRkZCQgorOjEwM0NCMDAwMDBGRjYwRkZGRkZGMTNGRjAwRkY3OEZGRkZGRjEzRkYxMAorOjEwM0NDMDAwMDBGRjc4RkZGRkZGMDNGRjg2RkY5N0ZGRkZGRkYwRkY3NgorOjEwM0NEMDAwODZGRjlCRkZGRkZGRTBGRjA1RkY4MUZGRkZGRkMwRkZBNworOjEwM0NFMDAwNzhGRjIyRkZGRkZGMEZGRjIxRkYxOEZGRkZGRjcxRkY4QgorOjEwM0NGMDAwMDBGRjBBRkZGRkZGMEZGRjdGRkYzOEZGRkZGRjAxRkZGRAorOjEwM0QwMDAwMDBGRjM4RkZGRkZGMDlGRjAwRkYzOEZGRkZGRjA2RkYzRQorOjEwM0QxMDAwN0VGRjQwRkZGRkZGMDBGRjAwRkY0MEZGRkZGRkIxRkZGRQorOjEwM0QyMDAwMDhGRjBDRkZGRkZGMDBGRjAwRkYzQ0ZGRkZGRkM1RkY4OAorOjEwM0QzMDAwN0FGRjE0RkZGRkZGQkVGRjAwRkY1MEZGRkZGRjQ2RkZBQgorOjEwM0Q0MDAwRTFGRjIyRkZGRkZGMEZGRjdBRkYxQ0ZGRkZGRkUwRkZGNQorOjEwM0Q1MDAwNjBGRjIyRkZGRkZGMEZGRjAwRkY1OEZGRkZGRkE3RkZERAorOjEwM0Q2MDAwMENGRjBDRkZGRkZGMDBGRjAwRkYwQUZGRkZGRjBGRkYyQworOjEwM0Q3MDAwMDBGRjQwRkZGRkZGQzRGRjAwRkYwQUZGRkZGRjBGRkYzMAorOjEwM0Q4MDAwRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkY0MworOjA0M0Q5MDAwRkZGRkZGRkYzMworOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3NiMTYvYWxhd19tYWluLmNzcC5paGV4IGIvZmlybXdhcmUvc2IxNi9hbGF3X21haW4uY3NwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ1MDI3MAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3NiMTYvYWxhd19tYWluLmNzcC5paGV4CkBAIC0wLDAgKzEsODcgQEAKKzoxMDAwMDAwMDAwMTAwMDQ0MDgwMDAwNDQwMEIxMDA0NDAwNjEwMDQ0QjYKKzoxMDAwMTAwMDA4NTAwMDQ0MERGMjYxQTg0NDA0MDQxOTAwMDA0MDQ1NTIKKzoxMDAwMjAwMDQwNDkzOUFDNTU1NTcxOEI1MDA1NjM4MDAwMDAwNjM5NDUKKzoxMDAwMzAwMEZGMkUyMTQ5RkYwRkQ0NDkyMDAxMDkwRTIwMDA3MThCQUEKKzoxMDAwNDAwMEE4MDFBODgwODgwMUE4ODBBODAwMDA4MEQyMDA3MThCMzgKKzoxMDAwNTAwMDg4MDBBODgwQTgwNEIzODAyMDA3QjM4MDg4MDNCMTgwRkIKKzoxMDAwNjAwMEMwMDAwOTVDQzIwMTAwODJBMTAwNzE4QkNEMDAwNDE5OUYKKzoxMDAwNzAwMDIxMjA3MThCQ0YwMDA0MTkwMDAwQjE4MEMyMDAwNDE5NDcKKzoxMDAwODAwMDAwNDAwMDE0MDg0MDA0MjQwMDAwMzQ0OTBDNDAwMDQ0OUYKKzoxMDAwOTAwMDQ0MDQwNDM5MDAwMDQwNDUzMjAwMDk1QzAwMDAwQzM5N0EKKzoxMDAwQTAwMDAwMDA0MDQ1NDA0MDA5RUZGRjIwMDlDRjAwMDQ2M0ExNTQKKzoxMDAwQjAwMDUwMDMzMzgwMDAwNEEzODAwMEZGQzI4QjAwRDAwNDU0OUYKKzoxMDAwQzAwMDA0RTAwMEM0MjAwMzgwQzAzMDAwMDA4ODAwMDA3QTBBRTkKKzoxMDAwRDAwMEQwMDEwMDgyMDA2MDAwNDRDMDAwMDA5OTAwNjAwMDQ0MkMKKzoxMDAwRTAwMDAwRkZDMjhCMjAwMDAwODAwMDBENDI4QjA4MzIwMEM0NEMKKzoxMDAwRjAwMDAwMEU0MjhCMDBBMjAwQzQwMDFFNDI4QjBDQjIwMEM0NTIKKzoxMDAxMDAwMDAwOEU0MjhCMDA2MjAwQzQwMDlFNDI4QjA4NTIwMEM0RTUKKzoxMDAxMTAwMDAwQkU0MjhCMDg1MjAwQzQwMDA0NDI4QjA0NzIwMEM0MkIKKzoxMDAxMjAwMDAwMjQ0MjhCMDBEMjAwQzQwMDU1NDI4QjAwNjAwMEM0MDIKKzoxMDAxMzAwMDAwMDA0MDQ1MjAwMTc5ODAwMDMwNDI4QjA4ODIwMEM0RDUKKzoxMDAxNDAwMDAwMDA0MDQ1MDAwMDcxOEI0MDAxMDA4MDAwNjAwMDQ0QzkKKzoxMDAxNTAwMEZGMDBFMkFCMDBCMjAwQzQwRkYyQThBODIwMDBCMTg4RjMKKzoxMDAxNjAwMDAwMDA0MTAyNERGMjAwMzlDMDAxMDA4MjAwNjAwMDQ0RUQKKzoxMDAxNzAwMDBERjJBM0E4NERGMjAwMzkwMDYwMDA0NEZGMDBFMkFCOEQKKzoxMDAxODAwMDIwMDAwMDg4MDAwMDYxMDI0REYyMDQxOTAwNjAwMDQ0NjQKKzoxMDAxOTAwMEZGMDBFMkFCQTAwMDAwODgwMDAwNjExMDRERjIwNDE5REUKKzoxMDAxQTAwMDAwNjAwMDQ0RkYyMEUyQUI2MDAwMDA4ODAwMDA3MUMwRTYKKzoxMDAxQjAwMDRERjIwNDE5MDA2MDAwNDQwMDAwNzk4MDAwRTIwMDg0RTAKKzoxMDAxQzAwMDAzMDMwNDQ5MDRDMjAwNTQwMDYwMDQ2NDAwNjAwMDQ0NTYKKzoxMDAxRDAwMDAwMDA2MzgwMDAwMDA2MTkwMzAwMDQ0OTAwNjAwMDQ0MjkKKzoxMDAxRTAwMDIwMDE2MzgwMDAwMDA2MTkwMDIwRTI4QjBDRjIwMDg0REQKKzoxMDAxRjAwMEJFMDA1MThCQzAyMDAwMzkwODAxMDA0NEVDMDA1MThCMzcKKzoxMDAyMDAwMEMwMjAwMDM5MDAwMkUyOEIwNDIxMDA4NDNGMDA1MThCQTIKKzoxMDAyMTAwMEMyMjAwMDM5MDAxMTAwNDQzRDAwNTE4QkMyMjAwMDM5M0EKKzoxMDAyMjAwMEU1MDA3MThCQ0QwMDAwMzkwMDAwQjE4MEM5MjAwNDE5QjAKKzoxMDAyMzAwMENCMjAwNDE5QzEyMDA0MTlDMzIwMDQxOTEwMDA3MThCQUMKKzoxMDAyNDAwMEM3MjAwNDE5REUwMDUxOEJDRjAwMDAzOTAwMDFCMTgwQjYKKzoxMDAyNTAwMEM0MjAwNDE5QzYyMDA0MTlDODIwMDQxOUNBMjAwNDE5OEUKKzoxMDAyNjAwMDIwMDA3MThCQ0MyMDA0MTkwMzAwMDQ0OTAwNjAwMDQ0NzUKKzoxMDAyNzAwMDA5MDQ2MUE4QzEwMDA0MTkwQjA0NjFBOENBMDAwNDE5OEIKKzoxMDAyODAwMDA0NjAwMEQ0MEQwMDYxMEE5MDQwMDk4RjAwMDEwMDQ1MTAKKzoxMDAyOTAwMDBGMDA2MTBBMDA0MDA5OEYwMDAxMDA0NTgyMDAwOTJFMEQKKzoxMDAyQTAwMDgwNDAwOUNGMDIwMDYxMjI0MzI1NjEyMjQwMzMwMDgwNTMKKzoxMDAyQjAwMDA4NDgwMDQ0MjBCMTQ5NUM5MjAwMDk0RTAyMDMwOTJFMEYKKzoxMDAyQzAwMDAwMDBBMzAyQzAwMDcxQzAyMDAwRUI4MDAwMDRDMjhCQkMKKzoxMDAyRDAwMDIwMDQ2MTgwMDAwNDdBMDJDMDAwMDA4MjBDQzMwODQ5MzcKKzoxMDAyRTAwMEIwMDFGMzgwMDAwMDEwMzkyMDAwMEM4OTBDODgwODQ5MDcKKzoxMDAyRjAwMDAzMDBBODE4MDAwMDEwMzlCREZGNjI4QjIwMDEwMDgwQTgKKzoxMDAzMDAwMDAwMDA2M0NCMDAwMDdBMDI0MDAwMDE1QjIwMDAwMDgwMDcKKzoxMDAzMTAwMDAwMDA0QUNCMjAwMDEzODAyMDAwN0E4MEUwMjEwMEMwM0EKKzoxMDAzMjAwMDA4MDAwODQ5MTA0MTA5OEVBRUFFNjI4QjAwMDQ2MTIyQkMKKzoxMDAzMzAwMDAwMDMwMDQ1MjIwMTMzODAyMDAxQTMwMjAwMDA3QTgwREYKKzoxMDAzNDAwMEMwMDAwMDgyMDcyMDQwMEEwOEEzMDA4NDQwMjEwMDgwRUEKKzoxMDAzNTAwMDQwMDU5MzEwQzcyMDAwMzkwMDAwNDA0NTA3MjA0MDBBOUYKKzoxMDAzNjAwMDBDOTMwMDg0MDgwMDAwODIwQzI0NjE1MDQwMDEwMDgwM0UKKzoxMDAzNzAwMEM3MjAwMDM5MDAwMDQwNDUwMDA0NjM4MDAwMDAwNjM5QjIKKzoxMDAzODAwMDQyMDEwOTBFMDIyMDYxMEEwMDAxMDA0NTBDMjA2MDBBQUEKKzoxMDAzOTAwMDAwQzMwMDg0MDAwNEIxODAwMDAwMDYzOTBDNjEwNEQ0NUQKKzoxMDAzQTAwMDAwMjQ3MUMwMjAzMzMzQzBFMDAxQTM4MjIyMDM3QTAyMEIKKzoxMDAzQjAwMEMzMDFBMzgyMjAwMTMzODAwMDAwN0E4MEMyMDFCMzUwQzAKKzoxMDAzQzAwMENDMjAwMDM5MDAwMDcxODAwMDA4MDA0NDBDMjA2MDBBMzUKKzoxMDAzRDAwMDAwRjMwMDg0MDAwNEIxODAwMDAwMDYzOTBDNjEwNEQ0RUQKKzoxMDAzRTAwMDAwMDA3MUMwMDAwMDkzMTBDQzIwMDAzOTAwMDgwMDQ0QzgKKzoxMDAzRjAwMENDMjAwMDM5MDAyMDAwQzAwMDMwNzFDMDAwMDgwMDQ0NEIKKzoxMDA0MDAwMDIwMDEwMDgwQUVBRTYyOEIyMDAxMzM4MDAwMDA4MzgwMkIKKzoxMDA0MTAwMDIwMDA3QTgwMjBBMTQ5NUM4MjAwMDk2RTgwNEEwOThFMDIKKzoxMDA0MjAwMEUwMDFCMzgyMjAwNEEzODAwMDAwN0FDQjI4MDRFQTEwMDQKKzoxMDA0MzAwMDBDMDQ3QTEwNzAwMEMwOEIwMDAwMTAzOTkwMDMwMDgwMEIKKzoxMDA0NDAwMDQwMDAyMTVCOTAwMDYxODAwQzhBMDg0OTAwMDAxQzE5NjMKKzoxMDA0NTAwMDQwMDAwODVCMDgwMDA4NDkyMDAyMDA4MDAzMDBBODE4M0IKKzoxMDA0NjAwMDAwMDAxNDE5NDAwMDIxQ0IwMDAwNDEwMjAwMDBFQjgwODUKKzoxMDA0NzAwMEYyMDEwMDgyNDAyMTMzMDIwODIwNjEwQUM0MDAwNDE5RkQKKzoxMDA0ODAwMEM3MDAwMDk5MDIwMDYxMEEwQzBBMDQxNDAxMDA2MTBBMDUKKzoxMDA0OTAwMDAzMDA0ODBBMDA1ODA0NTRDMzAwMDQxOTBDNTgwMDQ0Q0YKKzoxMDA0QTAwMDA4MDBDODBBMEM1ODA0NTRDODAwMDQxOTBBMDA2MTBBNUMKKzoxMDA0QjAwMDA5MDA0ODBBMDBDODA0NTRDOTAwMDQxOTBDQzgwMDQ0QzMKKzoxMDA0QzAwMDBCMDBDODBBMENDODA0NTRDQjAwMDQxOTA0MDA2MTBBQ0MKKzoxMDA0RDAwMDA2MDA0ODBBMDBEODA0NTRDNjAwMDQxOTBDRDgwMDQ0ODkKKzoxMDA0RTAwMDA1MDBDODBBMENEODA0NTRDNTAwMDQxOTA3MDA2MTBBQTUKKzoxMDA0RjAwMDBDMDA0ODBBMDAwQTA0NTRDQzAwMDQxOTBDMEEwMDQ0RjkKKzoxMDA1MDAwMDBFMDBDODBBMEMwQTA0NTRDRTAwMDQxOTAwMDA0MDQ1MkQKKzowODA1MTAwMDIwMTA3MThCMDg0MjA2MDA2NworOjAwMDAwMDAxRkYKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwLmloZXggYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhNTBhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcC5paGV4CkBAIC0wLDAgKzEsMTIxIEBACis6MTAwMDAwMDAwMDEwMDA0NDA4MDAwMDQ0MDA3MDAwNDQwOEQwMDA0NDgwCis6MTAwMDEwMDAwMEYwMDA0NDBERjI2MUE4NDQwNDA0MTkwMDAwNDA0NUJBCis6MTAwMDIwMDAwMDA0NjM4MDAwMDAwNjM5RkYyRTIxNDlGRjBDRDQ0OUVCCis6MTAwMDMwMDA0MDQ5MzlBQzU1NTU3MThCNTAwMUIxODAwMDAwNzE4QjJFCis6MTAwMDQwMDBDMjMwMDQxOUMwQTAwNDE5QzJBMDA0MTk4OTAwNzE4QjIwCis6MTAwMDUwMDBDODMwMDQxOTcxMDA3MThCQ0QwMDA0MTlDRjAwMDQxOTQ4Cis6MTAwMDYwMDA4MDAwNzE4QkNCMjAwNDE5MjAwMDcxOEJDNDIwMDQxOUVGCis6MTAwMDcwMDA0NzAwNTE4QkMwMjAwMDM5MDAwMDYzODBDMUEwMDQxOUUzCis6MTAwMDgwMDA5MzAwMDE0RkNEMzAwMDA5Q0YzMDAwMDkwQzQwMDAxNDFGCis6MTAwMDkwMDAwMDYwMDAxNDAwMDQ2MUE4MDIwNDYxQTgwQzYwMDQyNDNDCis6MTAwMEEwMDAwMDAwMzQ0OTA4NTAwMDQ0NDQwNDA0MzkwMDAwNDA0NTJECis6MTAwMEIwMDAwODMwNjEwQTA1QjBFODE4MENDMDA0NTRDODMwMDQxOUFGCis6MTAwMEMwMDAwOTA0MDBBODBCMDQwMEE4MDAwMDQwNDUwOTA0NjFBODI5Cis6MTAwMEQwMDBDMTAwMDQxOTBCMDQ2MUE4Q0EwMDA0MTkwRDAwNjEwQUNCCis6MTAwMEUwMDAwMDAxMDA0NTBGMDA2MTBBMDA0MDA5OEYwMDAxMDA0NTMyCis6MTAwMEYwMDA0MDQwMDlFRkZGMjAwOUNGMDAwNDYzQTE1MDAzMzM4MDgzCis6MTAwMTAwMDAwMDA0QTM4MDAwRkZDMjhCMEMxMjA0NTQwODEyMDBDNDI4Cis6MTAwMTEwMDAyMDAzODBDMDMwMDAwMDg4MDAwMDdBMEFEMDAxMDA4MkVECis6MTAwMTIwMDAwNDUwMDA0NEMwMDAwMDk5MDQ1MDAwNDQwMEZGQzI4QkZBCis6MTAwMTMwMDAyMDAwMDA4MDAwMEQ0MjhCMDQ0MjAwQzQwMDBFNDI4QjYwCis6MTAwMTQwMDAwODUyMDBDNDAwMUU0MjhCMDBFMjAwQzQwMDhFNDI4QkE1Cis6MTAwMTUwMDAwOEQyMDBDNDAwOUU0MjhCMDRGMjAwQzQwMEJFNDI4QjUxCis6MTAwMTYwMDAwNEYyMDBDNDAwMDQ0MjhCMDQxMTAwQzQwMDI0NDI4QjNBCis6MTAwMTcwMDAwQzYxMDBDNDAwNTU0MjhCMDQ1MDAwQzQwMDNGNDI4QjA4Cis6MTAwMTgwMDAwQzAxMDBDNDAwMDA0MDQ1MjAwMTc5ODAwMDMwNDI4QjAyCis6MTAwMTkwMDAwNDYyMDBDNDAwMDA0MDQ1MDAwMDcxOEI0MDAxMDA4MEYzCis6MTAwMUEwMDAwNDUwMDA0NEZGMDBFMkFCMDhDMjAwQzQwRkYyQThBODRDCis6MTAwMUIwMDAyMDAwQjE4ODAwMDA0MTAyNERGMjAwMzlDMDAxMDA4MkU4Cis6MTAwMUMwMDAwNDUwMDA0NDBERjJBM0E4NERGMjAwMzkwNDUwMDA0NDNECis6MTAwMUQwMDBGRjAwRTJBQjIwMDAwMDg4MDAwMDYxMDI0REYyMDQxOTJDCis6MTAwMUUwMDAwNDUwMDA0NEZGMDBFMkFCQTAwMDAwODgwMDAwNjExMDUyCis6MTAwMUYwMDA0REYyMDQxOTA0NTAwMDQ0RkYyMEUyQUI2MDAwMDA4ODc3Cis6MTAwMjAwMDAwMDAwNzFDMDRERjIwNDE5MDQ1MDAwNDQwMDAwN0EwQTQ1Cis6MTAwMjEwMDAyMDAxRjA4MDAxQTA0MTBBMDAxMTAwQzQyMDAxRjA4MEZCCis6MTAwMjIwMDBDMTMwMDQxOTA0NTAwMDQ0MDAwMDc5ODAwQzQxMDA4NDVFCis6MTAwMjMwMDA4OTAwNzE4QkM4MzAwNDE5OTcwMDcxOEJDRDAwMDAzOThCCis6MTAwMjQwMDAwMDAxQjE4MDgwMDAwNDE5ODIwMDA0MTlDMTIwMDQxOTQyCis6MTAwMjUwMDBDMzIwMDQxOUMyMzAwNDE5Q0QxMDA0MTlDRjEwMDQxOTk5Cis6MTAwMjYwMDBCMDAwNzE4Qjg0MDAwNDE5ODYwMDA0MTk4MDAwNzE4QjIyCis6MTAwMjcwMDBDQjIwMDQxOTkzMDAwMTRGQ0QzMDAwMDlDRjMwMDAwOTg1Cis6MTAwMjgwMDAwMzAyMDQ0OTA4NDEwMDE0MDQ1MDAwNDQwMDAwNjM4MDQ0Cis6MTAwMjkwMDAwMDAwMDYxOTAzMDAwNDQ5MDQ1MDAwNDQyMDAxNjM4MDUzCis6MTAwMkEwMDAwMDAwMDYxOTAwMjBFMjhCMDBDMTAwODQ0NzAwNTE4QjNBCis6MTAwMkIwMDBDMDIwMDAzOTAwMDA2MzgwQzFBMDA0MTkwMEUxMDA0NDlGCis6MTAwMkMwMDBCRDAwNTE4QkMwMjAwMDM5MDAwMEIxODBDMUEwMDQxOUNECis6MTAwMkQwMDAwMzAwMDQ0OTA0NTAwMDQ0MDAyMDYxMEEwMDAxMDA0NTY1Cis6MTAwMkUwMDAwMjMwNjEwQTBDODMwMEM0MEM3ODA4NDQwNDVBMDg0NEE0Cis6MTAwMkYwMDBCMjAwMDk0RjEwNDIwOThFMDVCMEUwMTgwNDIzMDA4NEIzCis6MTAwMzAwMDAwQzAxMDAxMTA4MDU2MTEwMDA0OTA4NDQwMDQ4MDg0NDI4Cis6MTAwMzEwMDBCMjAwMDk0RjgwMDA3MThCQzAwMDAwODIwQzAxMzMxMEM1Cis6MTAwMzIwMDAyODAxQTMxMDAwMDE3QTgwOEMwMTAwODAwMjMwNjEwQTRDCis6MTAwMzMwMDAyMDAwMDQxOTBDODMwMEM0MDVCMEM4MTgwODQzMDBDNDg5Cis6MTAwMzQwMDAwMTMwQzgwQTBDMzgwMEM0MDg4ODAwNDQwQzc4MDg0NEZFCis6MTAwMzUwMDAwNDVBMDg0NDAwMDBBMzE4ODAwMDA0MTkwQjA0NjFBODgzCis6MTAwMzYwMDBDMzIwMDAzOUMzMzAwNDE5MEYxMDYxMEFDQTMwMDQxOUMwCis6MTAwMzcwMDAwOTA0NDFBOEUxMjAwMDM5RDEwMDA5NEYwMDA0NjEwMkJECis6MTAwMzgwMDAwODYzMDA0NDAzMzA0MTBBMjAwMDAwMzlBMzAwMDk0RkVDCis6MTAwMzkwMDAwMDA0NjEwMjAwNDgwODQ0MDg4ODAwNDQwMjMwNjEwQUYxCis6MTAwM0EwMDAwMDA4MDBDNDBDNzgwODQ0MDQ1QTA4NDRCMjAwMDkwRjNECis6MTAwM0IwMDAxMDQwMDk4RTAwMDA2ODVCMjAwNEIxODAwMjAwNjE1QjgwCis6MTAwM0MwMDA4ODAzN0E4MEFDMDEwMDgwMDVCMEUwMTgwMEQzMDA4NDc3Cis6MTAwM0QwMDAwMDQ5MDg0NDAwNDgwODQ0QjIwMDA5MEY4MDAwNzE4QkFFCis6MTAwM0UwMDBDMDAwMDA4MjAyMzA2MTBBMDAwODAwQzQwNUIwQzgxOENECis6MTAwM0YwMDAwQzE4MDBDNDAxMzBDODBBMEMzODAwQzQwODg4MDA0NDM2Cis6MTAwNDAwMDAwQzc4MDg0NDAwMDA2MTE4MjAwNUIxODAwMDAwNjhDQjFBCis6MTAwNDEwMDA4MDAwMDQxOTBEMTA2MTBBQzMzMDA0MTkwQjA0NDFBOEFGCis6MTAwNDIwMDAwOTA0NDFBOEUxMjAwMDM5MDgzODAwNDQwMzMwNDEwQTlBCis6MTAwNDMwMDAyMDA0QjE4MDAwNDgwODQ0MDg4ODAwNDQwMDAwQjE4MENFCis6MTAwNDQwMDBDMjMwMDQxOTBDQjgwMEQ0MEYzMDYxMEEwRDMwQzgwQTRDCis6MTAwNDUwMDAwQ0I4MDBDNDkzMDAwMTRGRTcwMDAxNkYwRjMwNjEwQTMwCis6MTAwNDYwMDAyMDAwMDA4ODAyMDA2MTAyNDEwNDA0MTkwMjA0NjEwMkI0Cis6MTAwNDcwMDA0MzA0MDQzOUNGMzAwMDA5MjAwMDA5NDkwMDU5MDA0NEUxCis6MTAwNDgwMDA5MzAwMDE0RkU3MDAwMTZGMEQzMDYxMEEyMDAwNjE4ODgxCis6MTAwNDkwMDBDMjAwMDA4MkMyMDMwMDgyQ0QzMDAwMDkyMDAwMDk0OTU5Cis6MTAwNEEwMDAwRjMwNjEwQTBEMzBDODBBMEM1ODAwODQwMjMwNjEwQTBFCis6MTAwNEIwMDAwNUIwQTgxOEMyMzAwNDE5MDAwMDAwNDY5MDQwMDk4RjBBCis6MTAwNEMwMDAxMjA0MDk2RTAzMDAwOTBFMDAwMTcxODIyMDAxMDA4MEYwCis6MTAwNEQwMDAwMDAwNjFDQjgwMDRCMTgwMDAwMUUwNjAwQ0Q4MDQxNEZFCis6MTAwNEUwMDAwMDAxRUI4MDQwMDA1MjFCODAwMDc5ODBDMDAxNzFDMjg2Cis6MTAwNEYwMDAyMDAwQzA4MDA4MEEwNDU0QzAwNEE4ODI4MDAwNzIxQjM3Cis6MTAwNTAwMDA4MDAwMDA4MDAwMDFGMDgwMjAwMEMwODAwQzJBMDQ1NDhDCis6MTAwNTEwMDBDMDA0QTg4MjEwMDA3MjFCODAwMDAwODAwMDAxRjA4MERGCis6MTAwNTIwMDAyMDAwQzA4MDA4M0EwNDU0QzAwNEE4ODIyMDAwNzIxQjM2Cis6MTAwNTMwMDA4MDAwMDA4MEMwMDNGMDgyMjAwMEEwODAwMDAxMDAxMTM0Cis6MTAwNTQwMDA0MDAwQzI4QjAwQUEwMEM0MDAwMEU5ODAwNUIwQTgxOEQyCis6MTAwNTUwMDAwMDAxQTgyMkQwMDEwMDgyRjAwMEUyMUIwNjIwQTgwQUI4Cis6MTAwNTYwMDAyRDEwNjEwQUQxMDAwOTJFMDAwMUE4MDIwRTEwQzgwQTQwCis6MTAwNTcwMDAwQ0JBMDQxNDBFMTA2MTBBMDQ0QTAwNDQwQzEwQzgwQTk0Cis6MTAwNTgwMDAwNDRBMDQ1NDBDMTA2MTBBRDAwMTAwODIwMDEwQTgxODFCCis6MTAwNTkwMDBBMDAwMDA4ODAwMDE3MTgyMDMwMDA5MEU5QTAxMDA2MDJBCis6MTAwNUEwMDAzMjAwMDkyRTAwMDAwMDQ2MDAwMTcxODIyMDAxMDA4MDA3Cis6MTAwNUIwMDAwMDAwNjFDQjgwMjRCMUMwMDAzMUUwNjAwQ0NBMDQxNDlCCis6MTAwNUMwMDAwMDAxRUI4MDQwMDA1MjFCODAwMDc5ODBDMDAxNzFDMkE1Cis6MTAwNUQwMDAyMDAwQzA4MDA4REEwNDU0QzAwNEE4ODI4MDAwNzIxQjg2Cis6MTAwNUUwMDA4MDAwMDA4MDAwMDFGMDgwMjAwMEMwODAwQ0ZBMDQ1NERDCis6MTAwNUYwMDBDMDA0QTg4MjEwMDA3MjFCODAwMDAwODAwMDAxRjA4MEZGCis6MTAwNjAwMDAyMDAwQzA4MDA4MjkwNDU0QzAwNEE4ODIyMDAwNzIxQjY2Cis6MTAwNjEwMDA4MDAwMDA4MEMwMDNGMDgyMjAwMEEwODAwMDAxMDAxMTUzCis6MTAwNjIwMDA0MDAwQzI4QjAwMzkwMEM0MDAwMEU5ODAwNUIwQTgxODYyCis6MTAwNjMwMDAwMDAxQTgyMkQwMDEwMDgyQjAwMEUyMUIwNjIwQTgwQTE3Cis6MTAwNjQwMDAyRjEwNjEwQUYxMDAwOTJFMDAwMUE4MDIwRTEwQzgwQTNECis6MTAwNjUwMDAwQ0E5MDQxNDBFMTA2MTBBMDQ5OTAwNDQwQzEwQzgwQTc1Cis6MTAwNjYwMDAwNDk5MDQ1NDBDMTA2MTBBRDAwMTAwODIwMDEwQTgxOEVCCis6MTAwNjcwMDBBMDAwMDA4ODAwMDE3MTgyOUYwMTAwNjAwMDAwMDA0NjE4Cis6MTAwNjgwMDAwMDAwMzM4MDAwMDA4MzgwMjAwMDdBODAyMDA3MzM4MEMwCis6MTAwNjkwMDAwMDAwODM4MDIwMDQ3QTgwMjAwMTAwODAwMDAwMDA0NjUyCis6MTAwNkEwMDAwMjAwNjEwQTA0MUIwNDE0MDEwMDYxMEEwMzAwNDgwQUU1Cis6MTAwNkIwMDAwQzc5MDQ1NEMzMDAwNDE5MDRDOTAwNDQwODAwQzgwQTkyCis6MTAwNkMwMDAwNEM5MDQ1NEM4MDAwNDE5MEEwMDYxMEEwOTAwNDgwQTUwCis6MTAwNkQwMDAwQ0U5MDQ1NEM5MDAwNDE5MDREOTAwNDQwQjAwQzgwQUU5Cis6MTAwNkUwMDAwNEQ5MDQ1NENCMDAwNDE5MDQwMDYxMEEwNjAwNDgwQTI2Cis6MTAwNkYwMDAwQ0Y5MDQ1NEM2MDAwNDE5MDQwQjAwNDQwNTAwQzgwQTkwCis6MTAwNzAwMDAwNDBCMDQ1NEM1MDAwNDE5MDcwMDYxMEEwQzAwNDgwQUQwCis6MTAwNzEwMDAwQzJCMDQ1NENDMDAwNDE5MDQxQjAwNDQwRTAwQzgwQTFFCis6MTAwNzIwMDAwNDFCMDQ1NENFMDAwNDE5MDAwMDQwNDU5MjIwNzE4QjM0Cis6MDQwNzMwMDBBNkM1MTEwMDQ5Cis6MDAwMDAwMDFGRgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21faW5pdC5jc3AuaWhleCBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2luaXQuY3NwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg5OWE5ZQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2luaXQuY3NwLmloZXgKQEAgLTAsMCArMSw3MCBAQAorOjEwMDAwMDAwMDAxMDAwNDQwMDAwNDA0NTAwMDA0MDQ1MDAwMDQwNDUwRAorOjEwMDAxMDAwMDAwMDQwNDVBQUFBNzE4QjQ0MDQwNDE5MDAwMDQwNDUyMQorOjEwMDAyMDAwRkY2RTIxNDlGRjBGRDQ0OTQwNDkzOUFDNTU1NTcxOEJCQQorOjEwMDAzMDAwNTAwNUIxODA2MjAwMTkwRTIxMDA3MThCODgwMDAwODA4QworOjEwMDA0MDAwQjAwMDcxOEI4ODAwMDA4MDQwMDA3MThCODgwMDAwODBCOAorOjEwMDA1MDAwNjAwMDcxOEI4ODAwMDA4MDUwMDA3MThCODgwMDAwODBFOAorOjEwMDA2MDAwNzAwMDcxOEI4ODAwMDA4MEMwMDA3MThCODgwMDAwODA1OAorOjEwMDA3MDAwRTAwMDcxOEI4ODAwMDA4MEQwMDA3MThCODgwMDAwODBDOAorOjEwMDA4MDAwMDIwMDcxOEI4ODAwMDA4MDIyMDA3MThCODgwMDAwODA0NAorOjEwMDA5MDAwMzIwMDcxOEI4ODAwMDA4MEEyMDA3MThCODgwMDAwODA4NAorOjEwMDBBMDAwQjIwMDcxOEI4ODAwMDA4MDYyMDA3MThCODgwMDAwODAzNAorOjEwMDBCMDAwQzIwMDcxOEI4ODAwMDA4MEYyMDA3MThCODgwMDAwODA4NAorOjEwMDBDMDAwMTEwMDcxOEI4ODAwMDA4MEExMDA3MThCODgwMDAwODA3NgorOjEwMDBEMDAwNjEwMDcxOEI4ODAwMDA4MEUxMDA3MThCODgwMDAwODBENgorOjEwMDBFMDAwMTMwMDcxOEI4ODAwMDA4MEIzMDA3MThCODgwMDAwODA0MgorOjEwMDBGMDAwQzMwMDcxOEI4ODAwMDA4MDE4MDA3MThCODgwMDAwODAxRAorOjEwMDEwMDAwNjgwMDcxOEI4ODAwMDA4MDBBMDA3MThCODgwMDAwODA3NQorOjEwMDExMDAwNEEwMDcxOEI4ODAwMDA4MDI5MDA3MThCODgwMDAwODA2NAorOjEwMDEyMDAwNzkwMDcxOEI4ODAwMDA4MDlCMDA3MThCODgwMDAwODBCMworOjEwMDEzMDAwMTQwMDcxOEI4ODAwMDA4MEY0MDA3MThCODgwMDAwODBBRgorOjEwMDE0MDAwRTYwMDcxOEI4ODAwMDA4MEU1MDA3MThCODgwMDAwODBEQworOjEwMDE1MDAwRDcwMDcxOEI4ODAwMDA4MDJFMDA3MThCODgwMDAwODA5MgorOjEwMDE2MDAwOUQwMDcxOEI4ODAwMDA4MEVGMDA3MThCODgwMDAwODBGQgorOjEwMDE3MDAwQjIyMDcxOEI4ODAwMDA4MDMzMjA3MThCODgwMDAwODA1MgorOjEwMDE4MDAwMkEyMDcxOEI4ODAwMDA4MDNCMjA3MThCODgwMDAwODBDMgorOjEwMDE5MDAwNDYyMDcxOEI4ODAwMDA4MDJDMjA3MThCODgwMDAwODBBNQorOjEwMDFBMDAwREQyMDcxOEI4ODAwMDA4MDAxMTA3MThCODgwMDAwODAzOQorOjEwMDFCMDAwOUExMDcxOEI4ODAwMDA4MDE2MTA3MThCODgwMDAwODA2NworOjEwMDFDMDAwOEUxMDcxOEI4ODAwMDA4MEMyMzA3MThCODgwMDAwODA5NworOjEwMDFEMDAwQzkzMDcxOEI4ODAwMDA4MDNDMzA3MThCODgwMDAwODBCMgorOjEwMDFFMDAwODE4MDcxOEI4ODAwMDA4MEQ0ODA3MThCODgwMDAwODBCMgorOjEwMDFGMDAwMTBBMDcxOEI4ODAwMDA4MDM0QTA3MThCODgwMDAwODA3MworOjEwMDIwMDAwMDI5MDcxOEI4ODAwMDA4MDc1OTA3MThCODgwMDAwODA0RgorOjEwMDIxMDAwOUFCMDcxOEI4ODAwMDA4MDEyNDA3MThCODgwMDAwODAzQQorOjEwMDIyMDAwMEQ0MDcxOEI4ODAwMDA4MDNDNjA3MThCODgwMDAwODBERAorOjEwMDIzMDAwRTc1MDcxOEI4ODAwMDA4MDBFNzA3MThCODgwMDAwODAwMQorOjEwMDI0MDAwRkZDMDcxOEI4ODAwMDA4MEM4RDA3MThCODgwMDAwODA0RgorOjEwMDI1MDAwNTdGMDcxOEI4ODAwMDA4MEM4MjI3MThCODgwMDAwODA2NQorOjEwMDI2MDAwQjAzMjcxOEI4ODAwMDA4MEREODI3MThCODgwMDAwODA0NQorOjEwMDI3MDAwOTBCMjcxOEI4ODAwMDA4MDhBNjI3MThCODgwMDAwODA0OAorOjEwMDI4MDAwQ0U3MjcxOEI4ODAwMDA4MEE1RDI3MThCODgwMDAwODBBRgorOjEwMDI5MDAwOTcyMTcxOEI4ODAwMDA4MEEyQTE3MThCODgwMDAwODA1QgorOjEwMDJBMDAwNUM0MTcxOEI4ODAwMDA4MEZFQzE3MThCODgwMDAwODBFQQorOjEwMDJCMDAwN0EyMzcxOEI4ODAwMDA4MDc4OTM3MThCODgwMDAwODA4RQorOjEwMDJDMDAwNjc3MzcxOEI4ODAwMDA4MDE3Mjg3MThCODgwMDAwODAwRAorOjEwMDJEMDAwODg0ODcxOEI4ODAwMDA4MERCRjg3MThCODgwMDAwODA3MworOjEwMDJFMDAwMkJCQTcxOEI4ODAwMDA4MEYxMDk3MThCODgwMDAwODAyNworOjEwMDJGMDAwREM2OTcxOEI4ODAwMDA4MDE5OEI3MThCODgwMDAwODAwRAorOjEwMDMwMDAwRkZGQjcxOEI4ODAwMDA4MDIwMDA3MThCODgwMDAwODBDQgorOjEwMDMxMDAwNTIwMDcxOEJDMjAwMDA4MkZGRkY3MThCQzIwMDAwODIwRAorOjEwMDMyMDAwQzIwMDAwODJDMjAwMDA4MkMyMDAwMDgyMTAwMDcxOEJGNQorOjEwMDMzMDAwQzIwMDAwODI4MDAwNzE4QkMyMDAwMDgyOTAwMDcxOEIyRAorOjEwMDM0MDAwQzIwMDAwODI0MDAwNzE4QkMyMDAwMDgyRkZGRjcxOEJFRgorOjEwMDM1MDAwQzIwMDAwODJDMjAwMDA4MkMyMDAwMDgyQzIwMDAwODI4RAorOjEwMDM2MDAwMTAwMDcxOEJDMjAwMDA4MjgwMDA3MThCQzIwMDAwODI3RAorOjEwMDM3MDAwOTAwMDcxOEJDMjAwMDA4MjQwMDA3MThCQzIwMDAwODIyRAorOjEwMDM4MDAwRkZGQjcxOEJDMjAwMDA4MjAwMDQ3MThCQzIwMDAwODJFRgorOjEwMDM5MDAwNEEwMDcxOEJDMjAwMDA4MjAwMDA3MThCQzIwMDAwODI5MworOjEwMDNBMDAwMDAwMDcxOEJDMjAwMDA4MkMyMDAwMDgyQzIzMDA0MTlCQQorOjEwMDNCMDAwMTAwMDA5NEZDMjAxMDA4MkMyMDEwMDgyQzIwMTAwODIwNgorOjEwMDNDMDAwQzIwMTAwODJDMjAxMDA4MkMyMDEwMDgyQzIwMTAwODIxOQorOjEwMDNEMDAwQzIwMTAwODJDMjAxMDA4MkMyMDEwMDgyQzIwMTAwODIwOQorOjEwMDNFMDAwQzIwMTAwODJDMjAxMDA4MjAwMTA3MThCQzEzMDA0MTk2OQorOjEwMDNGMDAwOTMwMDAxNEZDRDMwMDAwOUNGMzAwMDA5MDAwMDM0NDk4RgorOjA4MDQwMDAwMDAwODAwNDRDODU0MTEwMDdCCis6MDAwMDAwMDFGRgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fcGxheWJhY2suY3NwLmloZXggYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDlmMThjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fcGxheWJhY2suY3NwLmloZXgKQEAgLTAsMCArMSwxMjIgQEAKKzoxMDAwMDAwMDAwMTAwMDQ0MDgwMDAwNDQwQzUwMDA0NDAwNzAwMDQ0RkMKKzoxMDAwMTAwMDA0NzAwMDQ0MERGMjYxQTg0NDA0MDQxOTAwMDA0MDQ1MzYKKzoxMDAwMjAwMDAwMDQ2MzgwMDAwMDA2MzlGRjJFMjE0OUZGMERENDQ5RUEKKzoxMDAwMzAwMDQwNDkzOUFDNTU1NTcxOEI1MDAxQjE4MDAwMDFCMTgwRjgKKzoxMDAwNDAwMEM5MjAwNDE5NTEwMDcxOEJDRDAwMDQxOUU0MjA3MThCNzMKKzoxMDAwNTAwMENGMDAwNDE5ODAwMDcxOEJDQjIwMDQxOTEwMDA3MThCMjQKKzoxMDAwNjAwMEM0MjAwNDE5NjUwMDUxOEJDMjIwMDAzOTAwMDBCMTgwMDIKKzoxMDAwNzAwMEMyMzAwNDE5MDAwMDYzODBDMUEwMDQxOTkzMDAwMTRGMkQKKzoxMDAwODAwMENEMzAwMDA5Q0YzMDAwMDkwNDQwMDAxNDBDNDAwMDE0QUEKKzoxMDAwOTAwMDAwMDQ2MUE4MDIwNDYxQTgwNDYwMDQyNDAwMDAzNDQ5M0IKKzoxMDAwQTAwMDAwNTAwMDQ0NDQwNDA0MzkwMDAwNDA0NTAwMDA0MDQ1MkQKKzoxMDAwQjAwMDBGMDA2MTBBMDAwMTAwNDU0MDQwMDlFRkZGMjAwOUNGMTEKKzoxMDAwQzAwMDAwMDQ2M0ExNTAwMzMzODAwMDA0QTM4MDAwRkZDMjhCQUYKKzoxMDAwRDAwMDA4RjAwNDU0MENEMDAwQzQyMDAzODBDMDMwMDAwMDg4MTUKKzoxMDAwRTAwMDAwMDA3QTBBRDAwMTAwODIwODUwMDA0NEMwMDAwMDk5NDQKKzoxMDAwRjAwMDA4NTAwMDQ0MDBGRkMyOEIyMDAwMDA4MDAwMEQ0MjhCOUUKKzoxMDAxMDAwMDAwQTIwMEM0MDAwRTQyOEIwQzkyMDBDNDAwMUU0MjhCNjEKKzoxMDAxMTAwMDA0NjIwMEM0MDA4RTQyOEIwQzUyMDBDNDAwOUU0MjhCQ0QKKzoxMDAxMjAwMDAwQzIwMEM0MDBCRTQyOEIwMEMyMDBDNDAwMDQ0MjhCNjcKKzoxMDAxMzAwMDAwRjIwMEM0MDAyNDQyOEIwMDkxMDBDNDAwNTU0MjhCQTEKKzoxMDAxNDAwMDA4NTAwMEM0MDAzRjQyOEIwOEUyMDBDNDAwMDA0MDQ1NTQKKzoxMDAxNTAwMDIwMDE3OTgwMDAzMDQyOEIwMDkyMDBDNDAwMDA0MDQ1QUQKKzoxMDAxNjAwMDAwMDA3MThCNDAwMTAwODAwODUwMDA0NEZGMDBFMkFCQUEKKzoxMDAxNzAwMDBDNDIwMEM0MEZGMkE4QTgyMDAwQjE4ODAwMDA0MTAyODAKKzoxMDAxODAwMDRERjIwMDM5QzAwMTAwODIwODUwMDA0NDBERjJBM0E4Q0UKKzoxMDAxOTAwMDRERjIwMDM5MDg1MDAwNDRGRjAwRTJBQjIwMDAwMDg4MTcKKzoxMDAxQTAwMDAwMDA2MTAyNERGMjA0MTkwODUwMDA0NEZGMDBFMkFCNjgKKzoxMDAxQjAwMEEwMDAwMDg4MDAwMDYxMTA0REYyMDQxOTA4NTAwMDQ0QUUKKzoxMDAxQzAwMEZGMjBFMkFCNjAwMDAwODgwMDAwNzFDMDRERjIwNDE5MEUKKzoxMDAxRDAwMDA4NTAwMDQ0MDAwMDdBMEEyMDAxRjA4MDAxQTA0MTBBODIKKzoxMDAxRTAwMDA0RDIwMEM0MjAwMUYwODBDMTMwMDQxOTA4NTAwMDQ0M0EKKzoxMDAxRjAwMDAwMDA3OTgwMDBBMTAwODRCNTAwNTE4QkNGMDAwMDM5NDgKKzoxMDAyMDAwMDAwMDFCMTgwODgwMDA0MTk4QTAwMDQxOUM4MjAwNDE5NkIKKzoxMDAyMTAwMENBMjAwNDE5QzIzMDA0MTlDRDEwMDQxOUNGMTAwNDE5RDIKKzoxMDAyMjAwMEIwMDA3MThCOEMwMDA0MTk4RTAwMDQxOTEwMDA3MThCQzIKKzoxMDAyMzAwMEM0MjAwNDE5OTMwMDAxNEZDRDMwMDAwOUNGMzAwMDA5Q0MKKzoxMDAyNDAwMDAzMDMwNDQ5MDQ4MTAwNTQwODUwMDQ2NDA4NTAwMDQ0MjYKKzoxMDAyNTAwMDAwMDA2MzgwMDAwMDA2MTkwMzAwMDQ0OTA4NTAwMDQ0QjAKKzoxMDAyNjAwMDIwMDE2MzgwMDAwMDA2MTkwMDAyRTI4QjA4NDEwMDg0MkYKKzoxMDAyNzAwMDY1MDA1MThCQzIyMDAwMzkwMDAwNjM4MEMxQTAwNDE5QzEKKzoxMDAyODAwMDA4NjEwMDQ0MkQwMDUxOEJDMjIwMDAzOTAwMDBCMTgwNkMKKzoxMDAyOTAwMEMxQTAwNDE5MDMwMDA0NDkwODUwMDA0NDAyMjA2MTBBNjcKKzoxMDAyQTAwMDAwMDEwMDQ1MDIzMDYxMEEwNDAzMDBDNDA1QjBDODE4MEIKKzoxMDAyQjAwMDA0NzEwMEM0MDAxMzAwNDQwMDc5MDg0NDAwMDQ3OTgwRUMKKzoxMDAyQzAwMDAwNDkwMEM0Q0EyMDA0MTk0QTA0MDQxOUZGMDBFMjhCNDMKKzoxMDAyRDAwMDBDRjkwODQ0Q0YxMDA0MTkwQzJCMDg0NDhFMDAwNDE5QTMKKzoxMDAyRTAwMDAzMzA2MTBBQzgyMDAwMzk0ODA0MDAzOTBBMzA2MTBBMjUKKzoxMDAyRjAwMDBDRjkwODQ0Q0QxMDA0MTkwQzJCMDg0NDhDMDAwNDE5ODcKKzoxMDAzMDAwMDBDRDkwODQ0MEM1QTAwNDQwMDc5MDg0NDAwMDQ3OTgwNTAKKzoxMDAzMTAwMDAwNDkwMEM0QzMzMDA0MTlDQTMwMDA5OTBDRDkwODQ0RkMKKzoxMDAzMjAwMDQyMEEwOTBFMDAwMTMzMTE4QzAxQTM4MDAwMDE3QTEwRUEKKzoxMDAzMzAwMDgwMDVCMTgwMDVCMEUwMTgwMDkzMDA4NDAwNzkwODQ0N0UKKzoxMDAzNDAwMDAwMDQ3OTgwMDA0OTAwQzQwQzFCMDg0NDg4MDAwNDE5OEIKKzoxMDAzNTAwMDhBMDAwMDk5MENEOTA4NDQ0MjBBMDkwRTgwMDA3MThCNkEKKzoxMDAzNjAwMEMwMDRCMTgyMTAwMEUwMEIwMDQzMDA4NDAyMzA2MTBBMzcKKzoxMDAzNzAwMDAxMzBDODBBMDA0MzAwODQwMDAwQjE4MEMyMzAwNDE5NzMKKzoxMDAzODAwMDBDQTgwMDQ0MDIzMDYxMEEwMEQzMDBDNDA1QjBDODE4QUMKKzoxMDAzOTAwMDA0NjMwMEM0MDhGMzAwNDQwMDc5MDg0NDAwMDQ3OTgwMzEKKzoxMDAzQTAwMDAwNDkwMEM0MjAwMDA0MTlGRjAwRTI4QjBDRjkwODQ0NDYKKzoxMDAzQjAwMENEMTAwNDE5Q0YxMDA0MTkwQzJCMDg0NDhDMDAwNDE5MUIKKzoxMDAzQzAwMDhFMDAwNDE5MDMzMDYxMEFDODIwMDAzOUNBMjAwMDM5QTAKKzoxMDAzRDAwMDQ4MDQwMDM5NEEwNDAwMzkwQ0Q5MDg0NDBDNUEwMDQ0MzYKKzoxMDAzRTAwMDAwNzkwODQ0MDAwNDc5ODAwMDQ5MDBDNEMzMzAwNDE5MkUKKzoxMDAzRjAwMDBDRDkwODQ0NDIwQTA5MEUwNUIwRTAxODAwMTgwMDg0MjAKKzoxMDA0MDAwMDAwNzkwODQ0MDAwNDc5ODAwMDQ5MDBDNDBDMUIwODQ0QUEKKzoxMDA0MTAwMDgwMDEwMDgwMENEOTA4NDQ0MjBBMDkwRTgwMDA3MThCQ0IKKzoxMDA0MjAwMEMwMDRCMTgyMTAwMEUwMEIwMDg4MDA4NDAyMzA2MTBBMzEKKzoxMDA0MzAwMDAxMzBDODBBMDA4ODAwODQwMDAwQjE4MEMyMzAwNDE5NkQKKzoxMDA0NDAwMDAwMDEwMDExMDAwRkUyOEIwMDAwNDFDQjhDMDAwMDgwMDYKKzoxMDA0NTAwMDAwMDA0OENCMjAwMDdBODA4MDAxMDA4MDgyMEMwOTZFNjkKKzoxMDA0NjAwMDAzMDgwOTBFODA0MDA5Q0YwMDAxNzFDMjAwMDhDMjFCQjkKKzoxMDA0NzAwMDA0QjgwMEM0MjAwNUE4ODAyMDAxRjA4MDAwMDFDMjFCNDAKKzoxMDA0ODAwMDA0NDgwMEM0MjAwNUE4ODAyMDAxRjA4MDAwMDJDMjFCOUYKKzoxMDA0OTAwMDA0NjgwMEM0MjAwNUE4ODAyMDAxRjA4MDIwMDNBODgwMDMKKzoxMDA0QTAwMDAwMDEwMDExMDAwNEMyOEIwODc4MDBDNDAwMDBFOTgwM0MKKzoxMDA0QjAwMDA1QjBBODE4MDAwMDRBQ0IyMDAwQTgyMkQwMDEwMDgyNzUKKzoxMDA0QzAwMDQwMDEwMDgwQzQwMDA0MTlCMDAwRTI4QjA2MjBBODBBOTUKKzoxMDA0RDAwMDJEMTA2MTBBRDEwODA5MkUwMDAxQTgwMjBDRjkwODQ0NjgKKzoxMDA0RTAwMENEMTAwNDE5MEMyQjA4NDQwMzA4MDkwRTlBMjVCMTYwOUQKKzoxMDA0RjAwMEEyMEUwOTZFMDMwMDA5MEYwMDAxNzE4MjIwMDEwMDgwMjUKKzoxMDA1MDAwMDAwMDA2MUNCODAwMTAwODAwMzAwMDkwRjAwMDE3MUMyNkYKKzoxMDA1MTAwMDAwMDhDMjFCMEMyQTAwQzQyMDA1QTg4MDIwMDFGMDgwMUUKKzoxMDA1MjAwMDAwMDFDMjFCMEMxQTAwQzQyMDA1QTg4MDIwMDFGMDgwMjUKKzoxMDA1MzAwMDAwMDJDMjFCMEMzQTAwQzQyMDA1QTg4MDIwMDFGMDgwRjQKKzoxMDA1NDAwMDIwMDNBODgwMDAwMTAwMTEwMDA0QzI4QjA0QUEwMEM0OEIKKzoxMDA1NTAwMDAwMDBFOTgwMDVCMEE4MTgwMDAwNEFDQjIwMDBBODIyQkUKKzoxMDA1NjAwMEQwMDEwMDgyNDAwMTAwODBDNzAwMDQxOUIwMDBFMjhCNzYKKzoxMDA1NzAwMDA2MjBBODBBMkYxMDYxMEFGMTA4MDkyRTAwMDFBODAyMUUKKzoxMDA1ODAwMDBDRjkwODQ0Q0YxMDA0MTkwQzJCMDg0NDlGMzVCMTYwQjYKKzoxMDA1OTAwMDAzMDgwOTBFMDAwMTcxODIyMDAxMDA4MDAwMDA2MUNCNzgKKzoxMDA1QTAwMDgwMDEwMDgwRTQyMDcxOEIwMDAxMDA0NTkwNDAwOThGOUMKKzoxMDA1QjAwMDAwMDU2MzgwMDAwMDA2MzkwODE5MDRENDkzMDAwMTRGMzgKKzoxMDA1QzAwMEU3MDAwMTZGMEQzMDYxMEEyMDA0NjFBOEMyMDAwMDgyQkIKKzoxMDA1RDAwMDAyMDQ2MUE4QzIwMDAwODJDRDMwMDAwOTAyMDAwMDAyQkUKKzoxMDA1RTAwMDAyMDAwMDAyQzA4MDAwMDkyMDAwMDk0OTBGMzA2MTBBQTIKKzoxMDA1RjAwMDBEMzBDODBBMDAyOTAwQzQwMDgwQzgwQTAwMjkwMEM0QzAKKzoxMDA2MDAwMDAwMDRCMTgwMDAwMDA2MzlDOTIwMDQzOTAwMzkwMDQ0RDMKKzoxMDA2MTAwMDAwMDQ2MzgwMDAwMDA2MzkwMDA0QjE4MEM5MjAwNDM5NTkKKzoxMDA2MjAwMDAwMzkwMDQ0MDkyMDIzMEEwMDAwMDYxOUM5MjAwNDE5RDIKKzoxMDA2MzAwMDAwMDA0MDQ1MDIwMDYxMEEwQ0I5MDQxNDA0MDA2MTBBN0MKKzoxMDA2NDAwMDA2MDA0ODBBMDBBOTA0NTRDNjAwMDQxOTBDQTkwMDQ0NzUKKzoxMDA2NTAwMDA1MDBDODBBMENBOTA0NTRDNTAwMDQxOTA3MDA2MTBBNjIKKzoxMDA2NjAwMDBDMDA0ODBBMDBCOTA0NTRDQzAwMDQxOTBDQjkwMDQ0MjkKKzoxMDA2NzAwMDBFMDBDODBBMENCOTA0NTRDRTAwMDQxOTBDNUEwMDQ0RTgKKzoxMDA2ODAwMDgyMEQwOTJFODA0MDA5Q0YwMERGNzE4QjgwMDEwMDgwMzAKKzoxMDA2OTAwMDAyQzEwMDIyMDNDMTAwMjIwMDAxNjU4MEQyMDU2NTgyRUIKKzoxMDA2QTAwMDQwMjEwMDgwRDMwMzAwODI0MDMzMDA4MDBDNUEwMDQ0NzQKKzoxMDA2QjAwMDBGMzA2MTBBMEQzMEM4MEEwOEQ5MDBDNDkzMDAwMTRGRjkKKzoxMDA2QzAwMEU3MDAwMTZGMEYzMDYxMEEyMDAwMDA4ODAyMDA2MTAyMUMKKzoxMDA2RDAwMDAyMDAwMDAzQ0YzMDAwMDkyMDAwMDk0OTAwMDQ2MzgwQjQKKzoxMDA2RTAwMDA0RDkwMDQ0MDAwNEIxODAwMDAwMDA0NjAyMzA2MTBBRDEKKzoxMDA2RjAwMDA1QjBBODE4QzIzMDA0MTkwMDAwMDA0NjBFMTBDODBBNDAKKzoxMDA3MDAwMDBDMEIwNDE0MEUxMDYxMEEwNDJCMDA0NDBDMTBDODBBRDAKKzoxMDA3MTAwMDA0MkIwNDU0MEMxMDYxMEEwMDAwMDA0NjAwMTBBODE4QjUKKzoxMDA3MjAwMEEwMDAwMDg4MDAwMTcxODIwMDAwMDA0NjAwMDQzMzgwQjAKKzoxMDA3MzAwMDAwMDA4MzgwMjAwNDdBODAyMDAxMzM4MDAwMDA4MzgwQzEKKzoxMDA3NDAwMDIwMDA3QTgwMjAwMzAwODAwMDAwMDA0NjE2Q0UxMTAwQjEKKzowMDAwMDAwMUZGCisvKgorICogIENvcHlyaWdodCAoYykgMTk5NCBDcmVhdGl2ZSBUZWNobm9sb2d5IEx0ZC4KKyAqICBNaWNyb2NvZGUgZmlsZXMgZm9yIFNCMTYgQWR2YW5jZWQgU2lnbmFsIFByb2Nlc3NvcgorICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9zYjE2L211bGF3X21haW4uY3NwLmloZXggYi9maXJtd2FyZS9zYjE2L211bGF3X21haW4uY3NwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY0YjU2NQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3NiMTYvbXVsYXdfbWFpbi5jc3AuaWhleApAQCAtMCwwICsxLDg0IEBACis6MTAwMDAwMDAwMDEwMDA0NDA4MDAwMDQ0MDBCMTAwNDQwMDYxMDA0NEI2Cis6MTAwMDEwMDAwODUwMDA0NDBERjI2MUE4NDQwNDA0MTkwMDAwNDA0NTUyCis6MTAwMDIwMDA0MDQ5MzlBQzU1NTU3MThCNTAwNTYzODAwMDAwMDYzOTQ1Cis6MTAwMDMwMDBGRjJFMjE0OUZGMEZENDQ5MjAwMTA5MEUyMDAwNzE4QkFBCis6MTAwMDQwMDBBODAxQTg4MDg4MDFBODgwQTgwMDAwODBEMjAwNzE4QjM4Cis6MTAwMDUwMDA4ODAwQTg4MEE4MDRCMzgwMjAwN0IzODA4ODAzQjE4MEZCCis6MTAwMDYwMDBDMDAwMDk1Q0MyMDEwMDgyQTEwMDcxOEJDRDAwMDQxOTlGCis6MTAwMDcwMDBBMjIwNzE4QkNGMDAwNDE5MDAwMEIxODBDMjAwMDQxOUM2Cis6MTAwMDgwMDAwMDQwMDAxNDA4NDAwNDI0MDAwMDM0NDkwQzQwMDA0NDlGCis6MTAwMDkwMDA0NDA0MDQzOTAwMDA0MDQ1MzIwMDA5NUMwMDAwMEMzOTdBCis6MTAwMEEwMDAwMDAwNDA0NTQwNDAwOUVGRkYyMDA5Q0YwMDA0NjNBMTU0Cis6MTAwMEIwMDA1MDAzMzM4MDAwMDRBMzgwMDBGRkMyOEIwMEQwMDQ1NDlGCis6MTAwMEMwMDAwNEUwMDBDNDIwMDM4MEMwMzAwMDAwODgwMDAwN0EwQUU5Cis6MTAwMEQwMDBEMDAxMDA4MjAwNjAwMDQ0QzAwMDAwOTkwMDYwMDA0NDJDCis6MTAwMEUwMDAwMEZGQzI4QjIwMDAwMDgwMDAwRDQyOEIwODMyMDBDNDRDCis6MTAwMEYwMDAwMDBFNDI4QjAwQTIwMEM0MDAxRTQyOEIwQ0IyMDBDNDUyCis6MTAwMTAwMDAwMDhFNDI4QjAwNjIwMEM0MDA5RTQyOEIwODUyMDBDNEU1Cis6MTAwMTEwMDAwMEJFNDI4QjA4NTIwMEM0MDAwNDQyOEIwNDcyMDBDNDJCCis6MTAwMTIwMDAwMDI0NDI4QjAwRDIwMEM0MDA1NTQyOEIwMDYwMDBDNDAyCis6MTAwMTMwMDAwMDAwNDA0NTIwMDE3OTgwMDAzMDQyOEIwODgyMDBDNEQ1Cis6MTAwMTQwMDAwMDAwNDA0NTAwMDA3MThCNDAwMTAwODAwMDYwMDA0NEM5Cis6MTAwMTUwMDBGRjAwRTJBQjAwQjIwMEM0MEZGMkE4QTgyMDAwQjE4OEYzCis6MTAwMTYwMDAwMDAwNDEwMjRERjIwMDM5QzAwMTAwODIwMDYwMDA0NEVECis6MTAwMTcwMDAwREYyQTNBODRERjIwMDM5MDA2MDAwNDRGRjAwRTJBQjhECis6MTAwMTgwMDAyMDAwMDA4ODAwMDA2MTAyNERGMjA0MTkwMDYwMDA0NDY0Cis6MTAwMTkwMDBGRjAwRTJBQkEwMDAwMDg4MDAwMDYxMTA0REYyMDQxOURFCis6MTAwMUEwMDAwMDYwMDA0NEZGMjBFMkFCNjAwMDAwODgwMDAwNzFDMEU2Cis6MTAwMUIwMDA0REYyMDQxOTAwNjAwMDQ0MDAwMDc5ODAwMEUyMDA4NEUwCis6MTAwMUMwMDAwMzAzMDQ0OTA4QzIwMDU0MDA2MDA0NjQwMDYwMDA0NDUyCis6MTAwMUQwMDAwMDAwNjM4MDAwMDAwNjE5MDMwMDA0NDkwMDYwMDA0NDI5Cis6MTAwMUUwMDAyMDAxNjM4MDAwMDAwNjE5MDAyMEUyOEIwQ0YyMDA4NERECis6MTAwMUYwMDAzRTAwNTE4QkMwMjAwMDM5MDgwMTAwNDQ2QzAwNTE4QjM3Cis6MTAwMjAwMDBDMDIwMDAzOTAwMDJFMjhCMDQyMTAwODRGRDAwNTE4QkU0Cis6MTAwMjEwMDBDMjIwMDAzOTAwMTEwMDQ0RkUwMDUxOEJDMjIwMDAzOTc5Cis6MTAwMjIwMDBFNTAwNzE4QkNEMDAwMDM5MDAwMEIxODBDOTIwMDQxOUIwCis6MTAwMjMwMDBDQjIwMDQxOUMxMjAwNDE5QzMyMDA0MTkxMDAwNzE4QkFDCis6MTAwMjQwMDBDNzIwMDQxOTVFMDA3MThCQ0YwMDAwMzkwMDAwQjE4MDE3Cis6MTAwMjUwMDBDNDIwMDQxOUM2MjAwNDE5QzgyMDA0MTlDQTIwMDQxOThFCis6MTAwMjYwMDAyMDAwNzE4QkNDMjAwNDE5MDMwMDA0NDkwMDYwMDA0NDc1Cis6MTAwMjcwMDAwOTA0NjFBOEMxMDAwNDE5MEIwNDYxQThDQTAwMDQxOThCCis6MTAwMjgwMDAwNDYwMDBENDBEMDA2MTBBOTA0MDA5OEYwMDAxMDA0NTEwCis6MTAwMjkwMDAwRjAwNjEwQTAwNDAwOThGMDAwMTAwNDU4MjAwMDkyRTBECis6MTAwMkEwMDA4MDQwMDlDRjAyMDA2MTIyNDMyNTYxMjI0MDMzMDA4MDUzCis6MTAwMkIwMDAwOEE4MDA0NDIwMzE0OTVDOTIwMDA5NEUwMjAzMDkyRTJGCis6MTAwMkMwMDAwMDAwQTMwMkMwMDA3MUMwMjAwMEVCODAwMDA0QzI4QkJDCis6MTAwMkQwMDAyMDA0NjE4MDAwMDQ3QTAyQ0IwMEE4NThCMDA1RjM4MEE2Cis6MTAwMkUwMDAyMDA0QTgxMDAwMDAxMDM5QjAwMEUwOEIyMDAxMDA4MDJECis6MTAwMkYwMDAwMDAwNjNDQjAwMDA3QTAyNDAwMDAxNUIyMDAwMDA4MDE4Cis6MTAwMzAwMDAwMDAwNEFDQjIwMDAxMzgwMjAwMDdBODBFMDIxMDBDMDRBCis6MTAwMzEwMDAwODAwMDg0OTEwNDEwOThFRkZGRjYyOEIwMDA0NjEyMjJBCis6MTAwMzIwMDAwMDAzMDA0NTIyMDEzMzgwMjAwMUEzMDIwMDAwN0E4MEVGCis6MTAwMzMwMDBDMDAwMDA4MjA3MjA0MDBBMDg4MzAwODQ0MDIxMDA4MDFBCis6MTAwMzQwMDA0MDA1OTMxMEM3MjAwMDM5MDAwMDQwNDUwNzIwNDAwQUFGCis6MTAwMzUwMDAwQ0EzMDA4NDA4MDAwMDgyMEMyNDYxNTA0MDAxMDA4MDNFCis6MTAwMzYwMDBDNzIwMDAzOTAwMDA0MDQ1MDAwNDYzODAwMDAwMDYzOUMyCis6MTAwMzcwMDA0MjAxMDkwRTAyMjA2MTBBMDAwMTAwNDUwQzIwNjAwQUJBCis6MTAwMzgwMDAwMDczMDA4NDAwMDRCMTgwMDAwMDA2MzkwQzYxMDRENEJECis6MTAwMzkwMDAwMDI0NzFDMDIwMzMzM0MwRTAwMUEzODIyMjAzN0EwMjFCCis6MTAwM0EwMDBDMzAxQTM4MjIwMDEzMzgwMDAwMDdBODBDMjAxQjM1MEQwCis6MTAwM0IwMDBDQzIwMDAzOTAwMDA3MTgwMDBGMzAwNDQwQzIwNjAwQTVBCis6MTAwM0MwMDAwMEQzMDA4NDAwMDRCMTgwMDAwMDA2MzkwQzYxMDRENDFECis6MTAwM0QwMDAwMDAwQjMxMENDMjAwMDM5MDAwMDcxQzAwMEYzMDA0NENECis6MTAwM0UwMDBDQzIwMDAzOTAwMjA3MUMwMDAzMDcxQzAwMEYzMDA0NEZGCis6MTAwM0YwMDAyMDAxMDA4MEZGRkY2MjhCMjAwMTMzODAwMDAwODM4MDlBCis6MTAwNDAwMDAyMDAwN0E4MDIwRTEwOTVDODIwMDA5MkY4MDRBMDk4RTUxCis6MTAwNDEwMDBFMDAxQjM4MjIwMDRBMzgwMDAwMDdBQ0IwMzAwQTgxODc3Cis6MTAwNDIwMDAwMDAwMTAzOTA4MDRFQTEwMDgwNDdBMTAyMDAwMDA4MDQ3Cis6MTAwNDMwMDA0MDAwMjFDQjBDMDBFODEwMDAwMDQxMDIwQzAwRUIxMDQyCis6MTAwNDQwMDBGMjAxMDA4MjQwMjEzMzAyMDgyMDYxMEFDNDAwMDQxOTJECis6MTAwNDUwMDBDNzAwMDA5OTAyMDA2MTBBMENFODA0MTQwMTAwNjEwQTU3Cis6MTAwNDYwMDAwMzAwNDgwQTAwQjgwNDU0QzMwMDA0MTkwQ0I4MDA0NDNGCis6MTAwNDcwMDAwODAwQzgwQTBDQjgwNDU0QzgwMDA0MTkwQTAwNjEwQTJDCis6MTAwNDgwMDAwOTAwNDgwQTAwNjgwNDU0QzkwMDA0MTkwQzY4MDA0NEIzCis6MTAwNDkwMDAwQjAwQzgwQTBDNjgwNDU0Q0IwMDA0MTkwNDAwNjEwQTVDCis6MTAwNEEwMDAwNjAwNDgwQTAwNzgwNDU0QzYwMDA0MTkwQzc4MDA0NDc5Cis6MTAwNEIwMDAwNTAwQzgwQTBDNzgwNDU0QzUwMDA0MTkwNzAwNjEwQTM1Cis6MTAwNEMwMDAwQzAwNDgwQTAwRTgwNDU0Q0MwMDA0MTkwQ0U4MDA0NDZECis6MTAwNEQwMDAwRTAwQzgwQTBDRTgwNDU0Q0UwMDA0MTkwMDAwNDA0NTgwCis6MDgwNEUwMDAyMDEwNzE4QjA5M0YwNzAwOTkKKzowMDAwMDAwMUZGCisvKgorICogIENvcHlyaWdodCAoYykgMTk5NCBDcmVhdGl2ZSBUZWNobm9sb2d5IEx0ZC4KKyAqICBNaWNyb2NvZGUgZmlsZXMgZm9yIFNCMTYgQWR2YW5jZWQgU2lnbmFsIFByb2Nlc3NvcgorICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS90aV8zNDEwLmZ3LmloZXggYi9maXJtd2FyZS90aV8zNDEwLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIyYzA0MgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3RpXzM0MTAuZncuaWhleApAQCAtMCwwICsxLDg2MiBAQAorOjEwMDAwMDAwQzIzNTAwMDIwMDFFMDIxQURCRkZGRkZGRkZGRjAyMzJCMworOjEwMDAxMDAwQ0JGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAyMzNFRAorOjEwMDAyMDAwNzY3NTgxQ0U5MEZERTg4NTgzQTAxMjM0RUFFQzRENjBCMAorOjEwMDAzMDAwNkE3OEFCODAwMzc2MDAxOEI4OUNGQTc4N0Y4MDAzNzZFNAorOjEwMDA0MDAwMDAxOEI4NjVGQTc4MjA4MDAzNzYwMDE4QjgyMEZBOTA3NgorOjEwMDA1MDAwRkREREFFODNBRjgyOTBGQkY4MTIwMEExNjAwNUU0RjBGNQorOjEwMDA2MDAwQTM4MEY2OTBGREU4QTg4MjkwRkRFOEE5ODJFOEMzOTlGNAorOjEwMDA3MDAwNTAwNTc2MDAwODgwRjY5MDAwRkYxMjAwQUE5MDAxMDM1OAorOjEwMDA4MDAwMTIwMEFBOTAwMTA3MTIwMEFBOTAwMTBCMTIwMEM4OTA1QQorOjEwMDA5MDAwMDExMTEyMDBDODkwMDExNzEyMDBDODc1RDAwMDEyMzM2OAorOjEwMDBBMDAwQzgwMjAxMURFRjY1ODI3MDAzRUU2NTgzMjJFNDkzRjhCOAorOjEwMDBCMDAwNzQwMTkzRjk3NDAyOTNGRTc0MDM5M0Y1ODI4RTgzRThCRQorOjEwMDBDMDAwNjk3MDAxMjJFNDkzRjZBMzA4ODBGNEU0OTNGQzc0MDFDMAorOjEwMDBEMDAwOTNGRDc0MDI5M0ZFNzQwMzkzRkY3NDA0OTNGODc0MDUwNAorOjEwMDBFMDAwOTNGNTgyODg4MzEyMDBBMTcwMDEyMkU0OTNBM0E4ODM3MAorOjEwMDBGMDAwQTk4MjhDODM4RDgyRjBBM0FDODNBRDgyODg4Mzg5ODJCMAorOjEwMDEwMDAwODBFMzIxMjEwNDkyODA4MDA0OTJBQ0FFMDQ5MkZERTg0OQorOjEwMDExMDAwMDQ5NDA0OTRGQkYzMDQ5OTA0OTRGQkYzMDRGOTA0RjlBNAorOjEwMDEyMDAwODBGRUQwRjAzMEYwMDkyMEYzMDNGNjgwMTBGNzgwMEQ0OAorOjEwMDEzMDAwMzBGMTA5MjBGMzAzRjI4MDA0RjM4MDAxRjAyMEY0MDQ4RAorOjEwMDE0MDAwRkNEMEUwQ0MyMkNDQzBFMDEyMDE1QTAyMDE0QkJDMDAzMgorOjEwMDE1MDAwMDVEMEYwQUNGMDIyQzMxM0RDRkMwMjAxMjFCRjAwMDk4MgorOjEwMDE2MDAwRUQyNTgyNzVGMDAxRjhFNjIyQkYwMTBGRUQyNTgyRjUzRAorOjEwMDE3MDAwODJFRTM1ODNGNTgzNzVGMDA0RTAyMkVEMjU4Mjc1RjA3QgorOjEwMDE4MDAwMDJGOEUyMjJEMDgzRDA4MkY1RjBDM0U0OTNBM0M1RjA1NQorOjEwMDE5MDAwOTVGMEMwRTBDM0QwRjBFNDkzQTM5NUYwNDAxMkEzQTM4MAorOjEwMDFBMDAwQzNFNUYwMzM1MDAyMDU4MzI1ODJGNTgyNTAwMjA1ODNCMgorOjEwMDFCMDAwNzQwMTkzQzBFMEU0OTNDMEUwMjJEMDgzRDA4MkY1RjBENAorOjEwMDFDMDAwRTQ5MzcwMDk3NDAxOTM3MDA0QTNBMzgwMEM3NDAyOTNFOAorOjEwMDFEMDAwNjVGMDYwMDVBM0EzQTM4MEU3NzQwMTkzQzBFMEU0OTNGNgorOjEwMDFFMDAwQzBFMDIyMTIwMjVCMDIwMUYyMTIwMkFGMDIwMUYyMTIxRgorOjEwMDFGMDAwMDJEMzAyMDFGMjMwRTAwNzIwRTMwMkU2MjJFNzIyMzBEOAorOjEwMDIwMDAwRTEwNzIwRTMwMkUyMjJFMzIyMzBFMjAyRTAyMkU0OTM2QgorOjEwMDIxMDAwMjIxMjAyRDMwMjAyMUExMjAyQUYwMjAyMUFBQkYwMTIyOQorOjEwMDIyMDAwMDIyNENCQzVGMENCMjIzMEUwMTAyMEUzMDZFNkY1RjA0NworOjEwMDIzMDAwMDhFNjIyRTdGNUYwMDlFNzE5MjIzMEUxMTAyMEUzMDY4RAorOjEwMDI0MDAwRTJGNUYwMDhFMjIyRTNGNUYwMDlFMzE5MjIzMEUyMDZENAorOjEwMDI1MDAwRTBGNUYwQTNFMDIyRTQ5M0Y1RjA3NDAxOTMyMkJCMDBGMworOjEwMDI2MDAwMDM3NDA5MjJCQjAxMDc4OTgyOEE4Mzc0MDQyMkJCMDJCQQorOjEwMDI3MDAwMDc4OTgyOEE4Mzc0MTAyMjc0MEEyMjAyMDI3QkJCMDBERgorOjEwMDI4MDAwMDdFOTI1ODJGODc0MDEyMkJCMDEwREU5MjU4MkY1ODI3OAorOjEwMDI5MDAwRUEzNTgzRjU4Mzc0MDQyMkJCMDIwREU5MjU4MkY1ODJEOQorOjEwMDJBMDAwRUEzNTgzRjU4Mzc0MTAyMkU5MjU4MkY4NzQwMjIyMDI2QworOjEwMDJCMDAwMDJBRkJGMDAwNUVERjg3NDAxMjJCRjAxMDc4RDgyOEVFOQorOjEwMDJDMDAwODM3NDA0MjJCRjAyMDc4RDgyOEU4Mzc0MTAyMkVERjg5RQorOjEwMDJEMDAwNzQwMjIyMDIwMkQzQkYwMDA3RUQyNTgyRjg3NDAxMjJDNgorOjEwMDJFMDAwQkYwMTBERUQyNTgyRjU4MkVFMzU4M0Y1ODM3NDA0MjI3RQorOjEwMDJGMDAwQkYwMjBERUQyNTgyRjU4MkVFMzU4M0Y1ODM3NDEwMjI2MQorOjEwMDMwMDAwRUQyNTgyRjg3NDAyMjIwMjAzMDdDMEUwMTIwMjVCMDJBQworOjEwMDMxMDAwMDMxRkMwRTAxMjAyQUYwMjAzMUZDMEUwMTIwMkQzMDJBQgorOjEwMDMyMDAwMDMxRjMwRTAwQjIwRTMwNEQwRTBGNjIyRDBFMEY3MjJGOAorOjEwMDMzMDAwMzBFMTBCMjBFMzA0RDBFMEYyMjJEMEUwRjMyMkQwRTA2MQorOjEwMDM0MDAwRjAyMkM5Q0RDOUNBQ0VDQUNCQ0ZDQjEyMDM1MkVERjkyOAorOjEwMDM1MDAwRUVGQUVGRkIyMkJCMDAyRkJGMDAwQUZBRURGOEU3RjYzQQorOjEwMDM2MDAwMDgwOURBRkEyMkJGMDExMjhEODI4RTgzRjgwMjAzNkYyOAorOjEwMDM3MDAwMDlBM0U3RjBEOEZBMjIwMjAzN0FGQUVERjhFN0YyMDhDNworOjEwMDM4MDAwMDlEQUZBMjIwMjAzODRCQjAxNERCRjAwMTQ4OTgyOEE3NAorOjEwMDM5MDAwODNGOUVERjgwMjAzOTYwOEEzRTBGNkQ5RkEyMjAyMDNFNgorOjEwMDNBMDAwQTdCRjAxMjI4RDgyOEU4M0ZCMDhDOUM1ODJDOUNBQzUzOQorOjEwMDNCMDAwODNDQUUwQTNDOUM1ODJDOUNBQzU4M0NBRjBBM0RCRUE2MAorOjEwMDNDMDAwRDhFODIyMDIwM0NBOEQ4MjhFODNGOUVERjhFMEYyMDhBNAorOjEwMDNEMDAwQTNEOUZBMjIwMjAzRDRCQjAyNERCRjAwMTI4OTgyOEEzQworOjEwMDNFMDAwODNGOUVERjgwMjAzRTYwOEEzRTQ5M0Y2RDlGOTIyQkZGNgorOjEwMDNGMDAwMDEyMzhEODI4RTgzRkIwOEM5QzU4MkM5Q0FDNTgzQ0EwMQorOjEwMDQwMDAwRTQ5M0EzQzlDNTgyQzlDQUM1ODNDQUYwQTNEQkU5RDhFRQorOjEwMDQxMDAwRTcyMjAyMDQxOTg5ODI4QTgzRjlFREY4RTQ5M0YyMDg0RAorOjEwMDQyMDAwQTNEOUY5MjIwMjA0MkFCRjAwMERGQUVERjhFM0Y2MDg3OQorOjEwMDQzMDAwMDlEQUZBMjIwMjA0MzRCRjAxMTI4RDgyOEU4M0Y4MDI5NworOjEwMDQ0MDAwMDQ0MTA5QTNFM0YwRDhGQTIyMDIwNDRDRkFFREY4RTNFMAorOjEwMDQ1MDAwRjIwODA5REFGQTIyMDIwNDU2RTZGQjA4RTZGQTA4RTY5MAorOjEwMDQ2MDAwRjkwNEY2MTg3MDAxMDYyMkU2RkYwOEU2RkUwOEU2RkQyQworOjEwMDQ3MDAwMjJFRkYwQTNFRUYwQTNFREYwMjJFQkYwQTNFQUYwQTM1RAorOjEwMDQ4MDAwRTlGMDIyRTBGRkEzRTBGRUEzRTBGRDIyRTBGQkEzRTAxMQorOjEwMDQ5MDAwRkFBM0UwRjkyMjAwMDAwMDAwMDAwMDAwMDRGOTAwNjE2NgorOjEwMDRBMDAwMDU2ODAwMjYwNThGMDAzMzBBMDAwMDYxMEE2QzAwNjZBQgorOjEwMDRCMDAwMTUxRDAwNjEwQ0YwMDA2MTA5QTAwMDYxMDlENzAwNjEwMQorOjEwMDRDMDAwMERCNzAwNjEwQkU4MDA2MTBBMTMwMDYxMEE0ODAwNjE4MgorOjEwMDREMDAwMTcxNTAwMzMxNzI4MDAzNDFERjYwMDQzMUVBMTAwNDRGMQorOjEwMDRFMDAwMjAwRTAwNDQxRkZDMDA0NzFFQzgwMDQ3MUY2RDAwNEQzMgorOjEwMDRGMDAwMUZCRTAwNEYxRUVBMDA1ODMyNTYwMDYxN0NDQzdERkZDMworOjEwMDUwMDAwMTIxQ0E3MjI5MEZGRkNFMDIwRTcyREMyQUZBRTU5QUYyRQorOjEwMDUxMDAwNTg3NTVBMjBFNTVBMTRDNTVBNjAxOUU0RkU3RjA1RUU1NQorOjEwMDUyMDAwNEZDRTI0RkZDRUNGMzRGRkNGNjAwN0U0OTBGRjkyRjA5MAorOjEwMDUzMDAwODBFRDgwRTA4RTU5OEY1ODIyMTIwNTAxN0QwNzdDQjcyRgorOjEwMDU0MDAwMTIzMjcyN0QwRjdDNkUxMjMyOEM3ODlEN0EwNkU0RjY0MAorOjEwMDU1MDAwMDhEQUZDN0EwNjEyMDVDNDdDMDMxMjBFNEMxMjIxNEFGQQorOjEwMDU2MDAwRTRGRUZGN0MwRjEyMzFGQkQyQTgyMjEyMzBFNkU0OTBBOQorOjEwMDU3MDAwRkMzOEYwOTBGRkYwRTAzMEU0MDg3NDAxOTBGQzM5RjBCMgorOjEwMDU4MDAwODAwNUU0OTBGQzM5RjA3RDBBN0MwMDEyMjUyNjEyMzFBQQorOjEwMDU5MDAwNjkyMjEyMzBFNjkwRkMzOUUwMTQ3MDBFOTBGRkYwRTAxMgorOjEwMDVBMDAwNDQxMEYwN0MwMDEyMjVCRjgwMTk5MEZDMzlFMDcwMEVEOQorOjEwMDVCMDAwOTBGRkYwRTA1NEVGRjA3QzAwMTIyNUJGODAwNTdDMTcxRgorOjEwMDVDMDAwMTIyNUJGMTIzMTY5MjI5MEZGRjBFMDU0QUJGMDkwRkY4QQorOjEwMDVEMDAwRjBFMDQ0MjBGMDIyOEMzNzhEMzY3ODgyRURGNjA4RUM3RQorOjEwMDVFMDAwRjZFREZFRUNGRDdGMDE5MDAwMDUxMjAxRUM3ODgwRjYzRgorOjEwMDVGMDAwNzg4MkU2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDQ0QworOjEwMDYwMDAwMTIwMUVDNTQwRkZDN0Q4MDEyMTc0Njc4ODBFNjcwMERDNQorOjEwMDYxMDAwQUQzQUFFMzlBRjM4RTQxMjAzMEY3QzA4MjI5MEZGRjBGOAorOjEwMDYyMDAwRTA1NEZFRjA5MEZGRjBFMDU0RkRGMDgwMUU3ODgyRTY4QQorOjEwMDYzMDAwRkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDgxMjAyMEVDNQorOjEwMDY0MDAwMjVFMDQ0MDE5MEZGRjNGMDAyMDZEMDc4ODJFNkZEMDgzMQorOjEwMDY1MDAwRTZGQ0VERkVFQ0ZEN0YwMTkwMDAwNjEyMDIwRTU0RkU1QQorOjEwMDY2MDAwOTBGRkYzRjA4MDJCNzg4MkU2RkQwOEU2RkNFREZFRUNDRgorOjEwMDY3MDAwRkQ3RjAxOTAwMDA4MTIwMjBFRkFFQjkwRkZGMUYwMTJEQworOjEwMDY4MDAwMDhCRjQwMERBRDNBQUUzOUFGMzhFNDEyMDMwRjdDMTgwNQorOjEwMDY5MDAwMjI3ODgyRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDA4RAorOjEwMDZBMDAwMDgxMjAyMEU5MEZGRjFGMDEyMDhCRjQwMERBRDNBQUVGNQorOjEwMDZCMDAwMzlBRjM4RTQxMjAzMEY3QzE4MjI3ODgyRTZGRDA4RTY5MQorOjEwMDZDMDAwRkNFREZFRUNGRDdGMDE5MDAwMDYxMjAyMEU0NDAxOTA0RAorOjEwMDZEMDAwRkZGM0YwNzg4M0U2MjQwM0Y2MThFNjM0MDBGNjc4ODAxQQorOjEwMDZFMDAwRTYyNEZFNTAwOTkwRkZGMEUwNTRGREYwODAwNzkwRkZGMworOjEwMDZGMDAwRjBFMDQ0MDJGMEU0OTBGRkYxRjA3ODgxNzYwMDc4ODAzOQorOjEwMDcwMDAwRTYyNEZGRkNFNDM0RkZGRDc4ODFFNjdGMDBGRUVDRDNCNQorOjEwMDcxMDAwOUVFRjY0ODBDRDY0ODA5RDQwMkYxMjA4QTQ0MDBGNzgyNgorOjEwMDcyMDAwODFFNkFEM0FBRTM5QUYzODEyMDMwRjdDMTgyMjkwRkY0NAorOjEwMDczMDAwRjJFMEZDNzg4Mjg2ODMwODg2ODJFQ0YwNzg4MTA2QTM1QQorOjEwMDc0MDAwNzg4MkE2ODMwOEE2ODI4MEI1MTIwOEE0NDAwRjc4ODExQgorOjEwMDc1MDAwRTZBRDNBQUUzOUFGMzgxMjAzMEY3QzE4MjI5MEZGRjJBMworOjEwMDc2MDAwRTBGQzc4ODI4NjgzMDg4NjgyRUNGMDc4ODBFNkFEM0FGOQorOjEwMDc3MDAwQUUzOUFGMzgxMjAzMEY3QzAwMjI4QzM3OEQzNjc4ODI2OQorOjEwMDc4MDAwRURGNjA4RUNGNkVERkVFQ0ZEN0YwMTkwMDAwNTEyMDFBMAorOjEwMDc5MDAwRUM3ODgxRjY3ODgyRTZGRDA4RTZGQ0VERkVFQ0ZEN0Y2NAorOjEwMDdBMDAwMDE5MDAwMDQxMjAxRUM1NDBGRkM3RDgxMTIxNzQ2Nzg3MQorOjEwMDdCMDAwODFFNjcwMDM3QzA4MjI5MEZGRjBFMDU0RkVGMDkwRkY4OQorOjEwMDdDMDAwRjBFMDU0RkRGMDgwMUI3ODgyRTZGRDA4RTZGQ0VERkVDQgorOjEwMDdEMDAwRUNGRDdGMDE5MDAwMDgxMjAyMEUyNUUwOTBGRkYzRjA3RgorOjEwMDdFMDAwODA1Qjc4ODJFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTA4MworOjEwMDdGMDAwMDAwNjEyMDIwRTU0RkU5MEZGRjNGMDgwMjE3ODgyRTY4QworOjEwMDgwMDAwRkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDgxMjAyMEVGMworOjEwMDgxMDAwRkFFQjkwRkZGMUYwMTIwOEJGNDAwMzdDMTgyMjc4ODJCNworOjEwMDgyMDAwRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwODEyMDJGQgorOjEwMDgzMDAwMEU5MEZGRjFGMDEyMDhCRjQwMDM3QzE4MjI3ODgzRTY4NworOjEwMDg0MDAwMjQwQUY2MThFNjM0MDBGNjc4ODA3NjAwNzg4MUU2MjRFQgorOjEwMDg1MDAwRkZGQ0U0MzRGRkZENzg4MEU2N0YwMEZFRUNEMzlFRUZFMgorOjEwMDg2MDAwNjQ4MENENjQ4MDlENDAyMTc4ODI4NjgzMDg4NjgyRTAwMgorOjEwMDg3MDAwOTBGRkYxRjAxMjA4QkY0MDAzN0MxODIyNzg4MDA2NzhDMAorOjEwMDg4MDAwODMwNkU2MTg3MDAxMDY4MEMzOTBGRkYwRTA0NDAxRjA5MworOjEwMDg5MDAwNzg4Mjg2ODMwODg2ODJFMDkwRkZGMUYwMTIwOEJGNDBEQworOjEwMDhBMDAwMDM3QzE4MjI3QzAwMjI5MEZGRjBFMDIwRTcxMjkwRkZFQQorOjEwMDhCMDAwRjBFMDMwRTUwOTkwRkZGMEUwNDQyMEYwQzMyMjgwRTc0QgorOjEwMDhDMDAwRDMyMjkwRkZGMEUwMjBFMzEyOTBGRkYwRTAzMEU1MDk0MgorOjEwMDhEMDAwOTBGRkYwRTA0NDIwRjBDMzIyODBFN0QzMjI4QzQyOERDOQorOjEwMDhFMDAwNDE3QzAwRUQ1NEYwRkRFQzcwMDNFRDY0MzA3MDA1NzU1MworOjEwMDhGMDAwM0UwMzgwMDM3NTNFMDRBQzNFMTIwRjY5NzU4MzAwODU4QworOjEwMDkwMDAwODM0MEU1NDE1NDBGRjUzRkU1NDA3MDA0RTUzRjY0MDM0MworOjEwMDkxMDAwNzAzNUU1M0UyNEZENzVGMDBBQTQyNDAyRjU4MkU0MzQyNgorOjEwMDkyMDAwRkNGNTgzRTAzMEU2MDUxMjEwNEI4MDE5RTUzRTI0OUQ2RQorOjEwMDkzMDAwRjhDNjU0RkJGNjc4QTlFNjI0MDVGNTgyMThFNjM0MDBEQgorOjEwMDk0MDAwRjU4Mzc0MEZGMDgwNTlFNTQwNzAwNEU1M0Y2NDA0NzA0RQorOjEwMDk1MDAwNDhFNTNFMjRGRDc1RjAwQUE0MjQwMkY1ODJFNDM0RkM0NworOjEwMDk2MDAwRjU4M0UwMzBFNTA3QUM0MkFENDExMjFDM0NFNTQyMzA3NgorOjEwMDk3MDAwRTIxNTc4QURFNjMwRTAwRjc4QURFNjMwRTEwOUU0RkY0RQorOjEwMDk4MDAwMDRGRTdDMDQxMjMxRkI3OEE5RTYyNDA2RjU4MjE4RTYwMQorOjEwMDk5MDAwMzQwMEY1ODM3NDBGRjA4MDA3RTRGQzdERUUxMjFDM0NGQworOjEwMDlBMDAwQzIwMzIyMTIzMEU2MTIwRjY5NzhBOUU2MjQwNkY1ODIwNgorOjEwMDlCMDAwMThFNjM0MDBGNTgzRTA5MEZDMzhGMDc4QTlFNjI0MDVDOQorOjEwMDlDMDAwRjU4MjE4RTYzNDAwRjU4M0UwOTBGQzM5RjBDMjAzN0QyRgorOjEwMDlEMDAwMDI3QzAwMTIyNTI2MTIzMTY5MjIxMjMwRTY3ODk1RUM0RAorOjEwMDlFMDAwRjZFQzI0OURGOEU2MzBFMTA3N0MxMzEyMjVCRjgwMEY1QQorOjEwMDlGMDAwOTBGQzM5RTBGRDc4OTVFNkZDMTIxM0M4MTIyNUJGMTI3MQorOjEwMEEwMDAwMzE2OTIyMTIzMEU2Nzg5NUVDRjY3RDAwMTIwRjA5MTI1QQorOjEwMEExMDAwMjVCRjEyMzE2OTIyMTIzMEU2Nzg5NUVDRjZFQzI0OUQ2MAorOjEwMEEyMDAwRjhFNjMwRTIwNzdDMTMxMjI1QkY4MDFCNzg5NUU2MjQ5OAorOjEwMEEzMDAwOURGOEU2MjBFMTA3N0MxMjEyMjVCRjgwMEE3ODk1RTYzMgorOjEwMEE0MDAwRkMxMjEzRUMxMjI1QkYxMjMxNjkyMjEyMzBFNjc4OTVBMAorOjEwMEE1MDAwRUNGNkVDMjQ5REY4RTYyMEUyMDc3QzExMTIyNUJGODAxRAorOjEwMEE2MDAwMEE3ODk1RTZGQzEyMTRFRDEyMjVCRjEyMzE2OTIyMTJBNAorOjEwMEE3MDAwMzBFNjc4OTVFQ0Y2MTIwRjY5NzhBOUU2MjQwOUY1ODIzQworOjEwMEE4MDAwMThFNjM0MDBGNTgzRTA5MEZDM0ZGMDc4QTlFNjI0MEFFQworOjEwMEE5MDAwRjU4MjE4RTYzNDAwRjU4M0UwOTBGQzQwRjA3OEE5RTY5MgorOjEwMEFBMDAwMjQwM0Y1ODIxOEU2MzQwMEY1ODNFMEZDNzhBOUU2MjRGNworOjEwMEFCMDAwMDRGNTgyMThFNjM0MDBGNTgzRTBGNTYyNzhBOUU2MjRBRgorOjEwMEFDMDAwMDJGNTgyMThFNjM0MDBGNTgzRTBGNTYzOEM2MUU0RUMwRQorOjEwMEFEMDAwMzMzMzU0MDE3ODk1RjY2MDA4RTU2MjMwRTEwMzc4OTU4OAorOjEwMEFFMDAwMDY3ODk1RTY5MEZDNDFGMDc4QTdFNjI0MDJGNTgyMTg5NgorOjEwMEFGMDAwRTYzNDAwRjU4M0UwRkRBM0UwNTQwQ0ZDRUQ1NEU2OENGNQorOjEwMEIwMDAwNjVGNTY0RTU2MTMwRTUwMzQzNjUwMUU1NjIyMEU1MEVDNgorOjEwMEIxMDAwRTU2MTU0N0Y3MDA4RTU2MTIwRTcwMzQzNjUwMkU1NjEwNAorOjEwMEIyMDAwMzBFMzAzNDM2NTEwRTU2MTMwRTIwMzQzNjUyMEU1NjE4RQorOjEwMEIzMDAwNTQwMzYwMDM0MzY1NDBFNTYxMzBFMTAzNDM2NTgwRTVBQworOjEwMEI0MDAwNjEzMEU0MDM0MzY0MDFFNTYxMzBFNjAzNDM2NDA4RTU5MgorOjEwMEI1MDAwNjIyMEU0MEVFNTYxNTQ3RjcwMDhFNTYxMjBFNzAzNDNGRAorOjEwMEI2MDAwNjQxMDUzNjVGQjUzNjQ3OUFENjRFNTY1OTBGQzNBQ0Q0MAorOjEwMEI3MDAwRjBBM0NERjBFNTYzMzBFMzBERTU2MzU0MzBDNDU0MEZDQQorOjEwMEI4MDAwOTBGQzNERjA4MDA1RTQ5MEZDM0RGMEU1NjM1NDAzOTA1QgorOjEwMEI5MDAwRkMzQ0YwRTU2MzU0MDRDMzEzOTBGQzNFRjA5MEZDM0MzNQorOjEwMEJBMDAwRTA3MDBFN0QzNTdFRkM3RjAxNzQwMTkwMDAwOTEyMDExQQorOjEwMEJCMDAwNDI3OEE5RTYyNDA4RjU4MjE4RTYzNDAwRjU4M0UwN0M0MworOjEwMEJDMDAwMDBGRDc4QTlFNjI0MDdGNTgyMThFNjM0MDBGNTgzRTBGNQorOjEwMEJEMDAwN0YwMDRDRkVFRjREOTBGQzM4RjBBM0NFRjBDRUMyMDM2OAorOjEwMEJFMDAwN0QwQTdDMDAxMjI1MjYxMjMxNjkyMjEyMzBFNjc4OTVBMgorOjEwMEJGMDAwRUNGNjc4OUE3NjAxMDg3NkZDMDg3NjM4Nzg5Nzc2MENDOQorOjEwMEMwMDAwNzg5QTEyMDQ2NTEyMDIxNDc4OThDQkY2Q0IwOEY2N0YxNgorOjEwMEMxMDAwMDBFRjI0RUE0MDFGRTRFRjI1RTA5MDM1MkNGRDkzQ0Q1MgorOjEwMEMyMDAwMDQ5Mzc4OTk2NjcwMDNFRDE4NjY3MDA2Nzg5Nzc2MDBERAorOjEwMEMzMDAwODAwMzBGODBEQzc4OTZFRkY2Nzg5QTEyMDQ2NTkwMDBCNgorOjEwMEM0MDAwMDIxMjAyMEU3ODk4Q0JGNkNCMDhGNjU0MDRDQjU0ODZFOQorOjEwMEM1MDAwNEI2MDA0Nzg5Nzc2MEI3ODk5RTYzMEUzMTM3ODlBMTIxNAorOjEwMEM2MDAwMDQ2NTkwMDAwNTEyMDFFQzI0RkI1MDA0Nzg5Nzc2MEQ4MgorOjEwMEM3MDAwNzg5OUU2NTRDMDdEMDA2NEMwNEQ3MDA0Nzg5Nzc2MEI3NworOjEwMEM4MDAwNzg5QTEyMDQ2NTkwMDAwNDEyMDFFQzI0RkM1MDA0Nzg1OAorOjEwMEM5MDAwOTc3NjBGNzg5QTEyMDQ2NTkwMDAwNjEyMDFFQzI0RkRGNQorOjEwMENBMDAwNTAwNDc4OTc3NjBFNzg5QTEyMDQ2NTkwMDAwOTEyMDEyNAorOjEwMENCMDAwRUMyNEZENTAwNDc4OTc3NjBBNzg5N0U2NzAyQTc4OTVBOAorOjEwMENDMDAwRTZGQzEyMEY2OTc4OUExMjA0NjU3OEE3RTZGOTc4QTYwRgorOjEwMENEMDAwRTZGQTdCMDE3NDBBNzgwMDEyMDMzRkMyMDM3ODk1RTZCNgorOjEwMENFMDAwRkMxMjExMDc3ODk3RUNGNjc4OTdFNkZDMTIyNUJGMTJGNAorOjEwMENGMDAwMzE2OTIyMTIzMEU2Nzg5NUVDRjYxMjBGNjk3ODk1RTZBNAorOjEwMEQwMDAwMjRGRDc1RjAwQUE0MjQxNEY1ODJFNDM0RkNGNTgzQUNDOAorOjEwMEQxMDAwODJBRDgzNzhBNjg2ODMwODg2ODJFQ0Y5RURGQTdCMEE5OQorOjEwMEQyMDAwNzgwMTEyMDNBN0MyMDM3ODk1RTZGQzEyMTEwNzEyMzE2RAorOjEwMEQzMDAwNjkyMjhEMkI4QzJBRUQ2MDQwNzUyNzAxNzUyOTQ4NzUzNQorOjEwMEQ0MDAwMjhGRkU1MkEyNEZERkNFNDM0RkZGREVDN0MwMzI1RTBDQworOjEwMEQ1MDAwQ0QzM0NERENGOUZDRTUyOTJDRjUyOUU1MjgzREY1MjgzNgorOjEwMEQ2MDAwQUQyOUFFMjhBRjI3NzQ4MDkwMDAwNjEyMDMxNzc0ODA1NworOjEwMEQ3MDAwOTAwMDAyMTIwMzE3MTIwRkI3RTUyQjE0NjAzQjc1Mjc4MgorOjEwMEQ4MDAwMDE3NTI5MDg3NTI4RkZFNTJBMjRGREZDRTQzNEZGRkRFMAorOjEwMEQ5MDAwRUM3QzAzMjVFMENEMzNDRERDRjlGQ0U1MjkyQ0Y1MjlFRAorOjEwMERBMDAwRTUyODNERjUyOEFEMjlBRTI4QUYyN0U0OTAwMDA2MTJDRQorOjEwMERCMDAwMDMxN0U0OTAwMDAyMTIwMzE3MjIxMjMwRTY3ODk1RUMzNAorOjEwMERDMDAwRjZFQzI0OURGOEU2MzBFMjA5Nzg5NUU2RkMxMjE0RUQ4NQorOjEwMEREMDAwRDIwMDc4OTVFNkZDMTIwRjY5Nzg5Njc2MDA5MEZDMzk3RgorOjEwMERFMDAwRTAzMEU3MDQ3ODk2NzYwMTc4OTZFNkZENzg5NUU2RkNBMworOjEwMERGMDAwMTIwRDJGQzIwMzMwMDAwNzc4OTVFNkZDMTIxM0VDN0MyRAorOjEwMEUwMDAwMDAxMjI1QkYxMjMxNjkyMjc4QTlFNjI0MDRGNTgyMTg2MAorOjEwMEUxMDAwRTYzNDAwRjU4M0UwNDQwMUYwNzhBOUU2MjQwNEY1ODI4NQorOjEwMEUyMDAwMThFNjM0MDBGNTgzRTAzMEUwMDI4MEVENzhBOUU2MjQ4RQorOjEwMEUzMDAwMEJGNTgyMThFNjM0MDBGNTgzRTA1NEY4RjA3OEE5RTY2MworOjEwMEU0MDAwMjQwMkY1ODIxOEU2MzQwMEY1ODNFMDQ0ODBGMDIyQzJFMworOjEwMEU1MDAwMDM4QzU4MTIwRjY5NzhBNjg2ODMwODg2ODI3OTVEN0E5QQorOjEwMEU2MDAwMzU3QjBBNzgwMTEyMDNGNTEyMEUwNUFDNTg3RDAyMTI4QgorOjEwMEU3MDAwMEQyRkMyMDNBQzU4MTIxMTA3MjI4RDUzOEU1MjhGNTE4MQorOjEwMEU4MDAwOEM1MDEyMEY2OTc1NEYwMDc4QTlFNjI0MDVGNTgyMTg3OQorOjEwMEU5MDAwRTYzNDAwRjU4M0UwMjBFNDFGRTU0RjI0RjY0MDE5MDUxMQorOjEwMEVBMDAwNEZDMjAzN0MxODEyMzJBOTkwRkY5M0UwNDQwMUYwQjJDNAorOjEwMEVCMDAwQjNBQzUwMTIwRjY5ODBEMDc4QTlFNjI0MDVGNTgyMThFQQorOjEwMEVDMDAwRTYzNDAwRjU4M0UwMjBFNDA1QzIwMzdDMDIyMjc4QTkyMQorOjEwMEVEMDAwRTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwNTQwRjYwMTYyOQorOjEwMEVFMDAwNzhBOUU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDU0MEY2RQorOjEwMEVGMDAwRjBDMjAzN0MwMTIyNzhBODg2ODMwODg2ODJFMEFENTM4NQorOjEwMEYwMDAwQUU1MkFGNTExMjAzMEZDMjAzN0MwMDIyOEQzMThDMzBFMAorOjEwMEYxMDAwMTIxNEVERTUzMTYwMEZFNTMwQjQwMzBBN0MwMTEyMjRCMAorOjEwMEYyMDAwRUU3QzgxMTIyNEVFQUMzMDEyMEY2OUU1MzE2MDFBNzg0NAorOjEwMEYzMDAwQUE4NjgzMDg4NjgyRTA1NEU3RjBBM0EzQTNBM0UwNTQyMworOjEwMEY0MDAwRTdGMEFDMzA3RDAyMTIwRDJGNzhBNjg2ODMwODg2ODJFQQorOjEwMEY1MDAwNzk2NzdBMzU3QjBBNzgwMTEyMDNGNUMyMDNFNTMwMjRGQworOjEwMEY2MDAwOURGOEM2NTRGREY2QUMzMDEyMTEwNzIyOEMyNjMwMDNEMgorOjEwMEY3MDAwMDUxMjMyNDg4MEY4N0MwQTEyMzE1QkQyMDNFNTI2MjQ0MAorOjEwMEY4MDAwRkQ3OEEzRjY3MDA3NzhBQTc2RkYwODc2RTA3OEEzRTZFNgorOjEwMEY5MDAwNzVGMDEwQTRBREYwRkMyNEEwNzhBOUY2RUQzNEZGMTg4QworOjEwMEZBMDAwRjY3OEEzRTY3NUYwMEFBNDI0MDBGQ0U0MzRGQ0ZENzg4RQorOjEwMEZCMDAwQTZFREY2MDhFQ0Y2MTIzMUY0MjI3OEE5RTYyNDAyRjU0MworOjEwMEZDMDAwODIxOEU2MzQwMEY1ODNFMDMwRTcyMjc4QTlFNjI0MDJBRgorOjEwMEZEMDAwRjU4MjE4RTYzNDAwRjU4M0UwNTQ3RkYwNzhBOUU2MjQyMgorOjEwMEZFMDAwMDJGNTgyMThFNjM0MDBGNTgzRTA0NDgwRjAyMjc4QUEwNgorOjEwMEZGMDAwODY4MzA4ODY4MkUwNTQ3RkYwQUQ4M0U1ODIyNDA0RkM3QQorOjEwMTAwMDAwRTQzRDhDODJGNTgzRTA1NDdGRjA3OEE5RTYyNDBCRjU2QgorOjEwMTAxMDAwODIxOEU2MzQwMEY1ODNFMDU0RjhGMDc4QUJFNjI0MDE1QQorOjEwMTAyMDAwRjU4MjE4RTYzNDAwRjU4M0UwNDQwM0YwNzhBQkU2MjQ1QgorOjEwMTAzMDAwMDVGNTgyMThFNjM0MDBGNTgzRTA0NDAzRjA3OEE5RTY2QworOjEwMTA0MDAwMjQwNUY1ODIxOEU2MzQwMEY1ODM3NDBGRjAyMjc4QUE5RgorOjEwMTA1MDAwODY4MzA4ODY4MkUwNTQzRkYwQUQ4M0U1ODIyNDA0RkM1OQorOjEwMTA2MDAwRTQzRDhDODJGNTgzRTA1NDNGRjA3OEEzRTYyNEE0RjhCNQorOjEwMTA3MDAwRTZGQzc4QUJFNjI0MDFGNTgyMThFNjM0MDBGNTgzRUM1MworOjEwMTA4MDAwRjA3OEEzRTYyNEE0RjhFNkZDNzhBQkU2MjQwNUY1ODIyNAorOjEwMTA5MDAwMThFNjM0MDBGNTgzRUNGMDc4QTlFNjI0MEJGNTgyMTgwNQorOjEwMTBBMDAwRTYzNDAwRjU4M0UwNTRGQjQ0MDJGNTI2NzhBN0U2MjRGNQorOjEwMTBCMDAwMDJGNTgyMThFNjM0MDBGNTgzRTAzMEU1MDM0MzI2MDFBQgorOjEwMTBDMDAwNzhBOUU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDMwRTBERgorOjEwMTBEMDAwMDMxMjBGQjdFNTI2RkM3OEE5RTYyNDBCRjU4MjE4RTY4MworOjEwMTBFMDAwMzQwMEY1ODNFQ0YwNzhBOUU2MjQwNUY1ODIxOEU2MzQ5RgorOjEwMTBGMDAwMDBGNTgzNzQwRkYwNzhBQTg2ODMwODg2ODJFMDQ0ODAyNgorOjEwMTEwMDAwRjBBM0EzQTNBM0UwNDQ4MEYwMjI4QzJBMTIwRjY5NzhGNQorOjEwMTExMDAwQTdFNjI0MDhGNTgyMThFNjM0MDBGNTgzRTBGQzc4QTlGOAorOjEwMTEyMDAwRTYyNDBBRjU4MjE4RTYzNDAwRjU4M0VDRjA3OEE3RTZBOQorOjEwMTEzMDAwMjQwN0Y1ODIxOEU2MzQwMEY1ODNFMEZDNzhBOUU2MjQ1QworOjEwMTE0MDAwMDlGNTgyMThFNjM0MDBGNTgzRUNGMDc4QTY4NjgzMDg2QQorOjEwMTE1MDAwODY4MkUwRkRBM0UwRkNFREZFNzhBOUU2MjQwOEY1ODI5NgorOjEwMTE2MDAwMThFNjM0MDBGNTgzRUVGMEVDRkU3OEE5RTYyNDA3RjVFNgorOjEwMTE3MDAwODIxOEU2MzQwMEY1ODNFRUYwOEMyOThEMjhDM0VDOTRCOAorOjEwMTE4MDAwMDVFRDk0MEM0MDA1NzUyNzdDODAzM0QzRTUyOTk0MDE0NworOjEwMTE5MDAwRTUyODk0MDM0MDA1NzUyNzNDODAyM0QzRTUyOTk0ODFGNQorOjEwMTFBMDAwRTUyODk0MDE0MDA1NzUyNzE4ODAxM0QzRTUyOTk0NjAzQworOjEwMTFCMDAwRTUyODk0MDA0MDA1NzUyNzBDODAwMzc1MjcwOEFGMjdBNAorOjEwMTFDMDAwRTRFRjU0N0M0NDgzRkY4RjI3RTUyN0ZDNzhBQkU2MjRDQgorOjEwMTFEMDAwMDFGNTgyMThFNjM0MDBGNTgzRUNGMEU1MjdGQzc4QUJFNgorOjEwMTFFMDAwRTYyNDA1RjU4MjE4RTYzNDAwRjU4M0VDRjBFNTI3RkNFQgorOjEwMTFGMDAwNzhBM0U2MjRBNEY4RUNGNjc4QTlFNjI0MDJGNTgyMTg5MAorOjEwMTIwMDAwRTYzNDAwRjU4M0UwRjUyNzc4QTdFNjI0MDJGNTgyMTg5NgorOjEwMTIxMDAwRTYzNDAwRjU4M0EzRTAzMEUzMTc1MzI3Qzc3OEE3RTY0OQorOjEwMTIyMDAwMjQwNUY1ODIxOEU2MzQwMEY1ODNFMDkwMzU1ODkzNDJBMgorOjEwMTIzMDAwMjc1MzI3RkI3OEE3RTYyNDA2RjU4MjE4RTYzNDAwRjU0NQorOjEwMTI0MDAwODNFMDYwMDM0MzI3MDQ1MzI3RkM3OEE3RTYyNDA0RjVEMgorOjEwMTI1MDAwODIxOEU2MzQwMEY1ODNFMDQyMjc0MzI3ODBFNTI3RkMyNworOjEwMTI2MDAwNzhBOUU2MjQwMkY1ODIxOEU2MzQwMEY1ODNFQ0YwNzhEQworOjEwMTI3MDAwQTlFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTBGNTI3NzgyMgorOjEwMTI4MDAwQTdFNjI0MDJGNTgyMThFNjM0MDBGNTgzQTNFMDMwRTFGNgorOjEwMTI5MDAwMDU1MzI3REY4MDAzNDMyNzIwNzhBN0U2MjQwMkY1ODI0MQorOjEwMTJBMDAwMThFNjM0MDBGNTgzRTAzMEU0MDU1MzI3RUY4MDAzNDM2QworOjEwMTJCMDAwMjcxMDc4QTdFNjI0MDlGNTgyMThFNjM0MDBGNTgzRTBDNAorOjEwMTJDMDAwQjQwMjAzNDMyNzAyRTUyN0ZDNzhBOUU2MjQwNEY1ODI0QgorOjEwMTJEMDAwMThFNjM0MDBGNTgzRUNGMDc4QTlFNjI0MDNGNTgyMThDQgorOjEwMTJFMDAwRTYzNDAwRjU4M0UwRjUyNzc4QTdFNjI0MDlGNTgyMThBRgorOjEwMTJGMDAwRTYzNDAwRjU4M0UwNzAwNTUzMjc3RjgwMDM0MzI3ODBBMQorOjEwMTMwMDAwNzhBN0U2MjQwMkY1ODIxOEU2MzQwMEY1ODNBM0UwMzBERQorOjEwMTMxMDAwRTAwNTQzMjcyMDgwMDM1MzI3REY3OEE3RTYyNDAyRjU2MgorOjEwMTMyMDAwODIxOEU2MzQwMEY1ODNFMDMwRTMwNTQzMjc0MDgwMDM2QworOjEwMTMzMDAwNTMyN0JGNzhBN0U2MjQwMkY1ODIxOEU2MzQwMEY1ODMyOAorOjEwMTM0MDAwRTAzMEUwMDU0MzI3MTA4MDAzNTMyN0VGNzhBN0U2MjQxOQorOjEwMTM1MDAwMDJGNTgyMThFNjM0MDBGNTgzQTNFMDMwRTQwNTQzMjc2NAorOjEwMTM2MDAwMDg4MDAzNTMyN0Y3NzhBN0U2MjQwMkY1ODIxOEU2MzRBRAorOjEwMTM3MDAwMDBGNTgzQTNFMDMwRTUwNTQzMjcwNDgwMDM1MzI3RkJGMgorOjEwMTM4MDAwNzhBN0U2MjQwMkY1ODIxOEU2MzQwMEY1ODNBM0UwMzA1RQorOjEwMTM5MDAwRTYwNTQzMjcwMTgwMDM1MzI3RkU3OEE3RTYyNDAyRjVEQworOjEwMTNBMDAwODIxOEU2MzQwMEY1ODNBM0UwMzBFNzA1NDMyNzAyODA4NgorOjEwMTNCMDAwMDM1MzI3RkRFNTI3RkM3OEE5RTYyNDAzRjU4MjE4RTYwOAorOjEwMTNDMDAwMzQwMEY1ODNFQ0YwQzIwMzdDMDAyMjhEMjc4QzI2RURERgorOjEwMTNEMDAwNTQwMzE0NjAwMzdDMTAyMkU1Mjc1NDdDMjRGQzQwMDM1MgorOjEwMTNFMDAwN0MwQjIyRTUyNjI0OURGOEM2NDQwMkY2N0MwMDIyOEM2NAorOjEwMTNGMDAwMzAxMjBGNjlFNTMwMjQ5REY4RTYyMEUyNEZBQzMwN0RENQorOjEwMTQwMDAwMDIxMjBEMkZFNTMwMjRGRTQ0MjhGQzc4QUE4NjgzMDhCQQorOjEwMTQxMDAwODY4MkVDRjBBRjgzRTU4MjI0MDRGRUU0M0ZGRkVDOEU4RAorOjEwMTQyMDAwODI4RjgzRjA3QzAzOEMyQ0U1MkNGQzc4QUJFNjI0MDFDNgorOjEwMTQzMDAwRjU4MjE4RTYzNDAwRjU4M0VDRjBFNTJDRkM3OEFCRTY5OQorOjEwMTQ0MDAwMjQwNUY1ODIxOEU2MzQwMEY1ODNFQ0YwNzUyRDAxNzU1RQorOjEwMTQ1MDAwMkY0ODc1MkVGRkU1MzAyNEZERkNFNDM0RkZGREVDN0NDNQorOjEwMTQ2MDAwMDMyNUUwQ0QzM0NERENGOUZDRTUyRjJDRjUyRkU1MkU1RgorOjEwMTQ3MDAwM0RGNTJFNzhBQkU2MjQwNEY1ODIxOEU2MzQwMEY1ODNCQQorOjEwMTQ4MDAwRTA1NEU3RjUyQ0FEMkZBRTJFQUYyREU0OTAwMDAyMTIwNAorOjEwMTQ5MDAwMDMxN0U0OTAwMDA2MTIwMzE3MTIwMUU2MzBFNTAzNDMzOAorOjEwMTRBMDAwMkMxMEU1MkNGQzc4QUJFNjI0MDRGNTgyMThFNjM0MDAxOQorOjEwMTRCMDAwRjU4M0VDRjAxMjEwNEI3OEE5RTYyNDA2RjU4MjE4RTZDNQorOjEwMTRDMDAwMzQwMEY1ODNFMEMyMDNGQ0U1MzAyNDlERjhDNjQ0MDRGMworOjEwMTREMDAwRjY4QzJDRTUzMDU0MEZDNDU0RjA3RTAwRkZFRUVGNDQ0MAorOjEwMTRFMDAwMDQ3RDAwRkZFQzRFRkNFRDRGRkQxMjFDQTc3QzAwMjI5QQorOjEwMTRGMDAwOEMyRjEyMEY2OTEyMEZFQjc4QUE4NjgzMDg4NjgyRTA4MAorOjEwMTUwMDAwNTQwOEYwQTNBM0EzQTNFMDU0MDhGMEFDMkY3RDAyMTI2QgorOjEwMTUxMDAwMEQyRkMyMDNFNTJGMjQ5REY4QzY1NEZCRjY3QzAwMjI1NAorOjEwMTUyMDAwMTIzMEU2Nzg5NkVDRjZFQzI0OURGOEU2MzBFMTBBN0Q4MAorOjEwMTUzMDAwMDA3QzEzMTIyNTI2MTIzMTY5Nzg5NkU2MjQ5REY4QzZBMAorOjEwMTU0MDAwNDQwMUY2Nzg5NkU2RkMxMjBGNjk3ODk2RTYyNEZENzU1QworOjEwMTU1MDAwRjAwQUE0MjQxNEY1ODJFNDM0RkNGNTgzNzhBNkU2RkFCNAorOjEwMTU2MDAwMDhFNkY5N0IwQTc4MDExMjAzQTc3OEE2ODY4MzA4ODYyNQorOjEwMTU3MDAwODI3OTY3N0EzNTdCMEE3ODAxMTIwM0Y1MTIwRkI3QzJCOAorOjEwMTU4MDAwMDM3ODk2RTZGQzEyMTEwNzc4OTVFQ0Y2RUM2MDBBN0Q3QworOjEwMTU5MDAwMDA3QzA4MTIyNTI2MTIzMTY5Nzg5NkU2RkMxMjBGNjk0NAorOjEwMTVBMDAwNzhBOUU2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMDQ0MTBCNworOjEwMTVCMDAwNTRERkZDNzhBOUU2MjQwNEY1ODIxOEU2MzQwMEY1ODNBQworOjEwMTVDMDAwRUNGMDc4OTVFQ0Y2QzIwMzdDQzgxMjMyQTk3ODk2RTY2NgorOjEwMTVEMDAwRkMxMjBGNjk3OEE5RTYyNDA0RjU4MjE4RTYzNDAwRjVCOAorOjEwMTVFMDAwODNFMDU0RUZGMEMyMDM3Q0M4MTIzMkE5Nzg5NkU2RkM3RgorOjEwMTVGMDAwMTIwRjY5NzhBOUU2MjQwNEY1ODIxOEU2MzQwMEY1ODMxMQorOjEwMTYwMDAwRTA0NDEwRjBDMjAzN0NDODEyMzJBOTc4OTZFNkZDMTJCRQorOjEwMTYxMDAwMEY2OTc4QTlFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTAyMgorOjEwMTYyMDAwNDQyMEYwQzIwMzdDRjAxMjMyQTk3ODk2RTZGQzEyMEYzNworOjEwMTYzMDAwNjk3OEE5RTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwMzBFMAorOjEwMTY0MDAwRTQxNUMyMDM3ODk2RTY0NDEwN0YwMEZFN0MwNzEyMzE1MQorOjEwMTY1MDAwRkIxMjMxNjkwMjE3MTQ3OEE5RTYyNDA0RjU4MjE4RTYxMgorOjEwMTY2MDAwMzQwMEY1ODNFMDU0Q0ZGMEMyMDM3Q0M4MTIzMkE5Nzg2RAorOjEwMTY3MDAwOTZFNkZDMTIwRjY5NzhBOUU2MjQwNEY1ODIxOEU2MzQ5MAorOjEwMTY4MDAwMDBGNTgzRTA0NDMwRjBDMjAzN0NGMDEyMzJBOTc4OTY3MgorOjEwMTY5MDAwRTZGQzEyMEY2OTc4QTlFNjI0MDVGNTgyMThFNjM0MDAwNQorOjEwMTZBMDAwRjU4M0UwMzBFNDE0QzIwMzc4OTZFNjQ0MTA3RjAwRkUzMAorOjEwMTZCMDAwN0MwNzEyMzFGQjEyMzE2OTgwNUQ3OEE5RTYyNDA0RjVCQworOjEwMTZDMDAwODIxOEU2MzQwMEY1ODNFMDU0RUZGMDc4QTlFNjI0MDRBQworOjEwMTZEMDAwRjU4MjE4RTYzNDAwRjU4M0UwNTRERkYwNzg5NkU2MjRDRQorOjEwMTZFMDAwRkQ3NUYwMEFBNDI0MTRGNTgyRTQzNEZDRjU4M0FDODI4MQorOjEwMTZGMDAwQUQ4Mzc4QTY4NjgzMDg4NjgyRUNGOUVERkE3QjBBNzhCQQorOjEwMTcwMDAwMDExMjAzQTdDMjAzNzg5NkU2RkMxMjExMDc3RDAwN0M0NAorOjEwMTcxMDAwMEIxMjI1MjYxMjMxNjkyMjEyMzBFNkU0OTBGQzM5RjBEMgorOjEwMTcyMDAwN0QwMjdDMDAxMjI1MjYxMjMxNjkyMjEyMzBFNjdDMDBFRgorOjEwMTczMDAwMTIyNUJGMTIzMTY5MjI3NDNDOTBGQkUwRjA3NDNFOTA5OAorOjEwMTc0MDAwRkJFMEYwRTQ5MEZDMjhGMDIyOEQzNThDMzRFQ0I0MDEwMQorOjEwMTc1MDAwMDI4MDAzRDM0MDAyODAyOEI0MDIwMjgwMDNEMzQwMDhGMQorOjEwMTc2MDAwQTgzNUM2MjVFMEY2ODAxOEI0MDQwMjgwMDNEMzQwMEFFOQorOjEwMTc3MDAwQTgzNUM2MjVFMDI1RTBGNjgwMDZBODM1NzYwMDgwMDA2RAorOjEwMTc4MDAwMjI4QzNDOEQzQkVERkVFQ0ZEN0YwMTc1NjYwNjc1Njc5NgorOjEwMTc5MDAwMDA5MEZDMjkxMjA0NkUxMjAxRTZCNDgwMDI4MDA2RDM4OAorOjEwMTdBMDAwNTAwMzAyMTg0NzkwRkMyOTEyMDQ4MDkwMDAwMzEyMDE5NAorOjEwMTdCMDAwRUM1NEYwQjQzMDAyODAwM0QzNDA1RjkwRkMyOTEyMDQ1MworOjEwMTdDMDAwODA5MDAwMDgxMjAyMEVGQUZERUJGRTdGMDE5MEZDMkNDNworOjEwMTdEMDAwMTIwNDZFRUVDRDkwMzU3MUZDRTQ5M0ZGNzQwMTkzRkUxQworOjEwMTdFMDAwRjlFRkZBN0IwMUVBRkZFOUZFRUNDMzlFRUQ5RjQwMjU4RAorOjEwMTdGMDAwOTAzNTczRTQ5M0ZENzQwMTkzRkNFREZFRUNGRDdGMDFFNQorOjEwMTgwMDAwRUVDREZDOTBGQzJFRTBEMzlDOTBGQzJERTA5RDUwMDU4RAorOjEwMTgxMDAwNzU2NjgwODAzMzEyMTk2NTgwMkVCNDYwMDI4MDAzRDMxMAorOjEwMTgyMDAwNDAwQkFDM0NBRDNCMTIwNzc3OEM2NjgwMUJCNDEwMDNCOQorOjEwMTgzMDAwQjM0MDEwQzNCNDIwMDNCMzQwMDlDM0I0NDAwMjgwMDNEMworOjEwMTg0MDAwRDM0MDAwNzU2NjgxODAwMDgwNzVCNDgxMDI4MDAzRDMyNworOjEwMTg1MDAwNDA2QjkwRkMyOTEyMDQ4MDkwMDAwMzEyMDFFQzU0RjBCQworOjEwMTg2MDAwQjQzMDAyODAwM0QzNDAxRDkwRkMyOTEyMDQ4MDkwMDAwNAorOjEwMTg3MDAwMDgxMjAyMEVGQUZERUJGRTdGMDE5MEZDMkYxMjA0NkU5RgorOjEwMTg4MDAwMTIxOENGODAzNkI0NjAwMjgwMDNEMzQwMTM3NTNBNjdENAorOjEwMTg5MDAwRTRGNTM5RjUzOEFDM0NBRDNCMTIwNUQzOEM2NjgwMUJDMgorOjEwMThBMDAwQjQxMDAzQjM0MDEwQzNCNDIwMDNCMzQwMDlDM0I0NDAyMQorOjEwMThCMDAwMDI4MDAzRDM0MDAwNzU2NjgxODAwMDgwMDI4MDAwRTVDRAorOjEwMThDMDAwNjZGQzkwRkMyOTEyMDQ4MEVDOTAwMDAyMTIwMzE3QUMxNQorOjEwMThEMDAwNjcyMjkwRkMyOTEyMDQ4MDkwMDAwNDEyMDFFQzYwMDQzRAorOjEwMThFMDAwNzQwMTgwMDFFNEEyRTA5MjAxOTBGQzI5MTIwNDgwRUREMQorOjEwMThGMDAwMjQwM0ZENTAwMTBFOTBGQzJDMTIwNDZFOTBGQzI5MTI2MgorOjEwMTkwMDAwMDQ4MDkwMDAwNTEyMDFFQ0Y1Njc5MDAwMDQxMjAxRUNEMAorOjEwMTkxMDAwNTQwRkZDN0Q2NzEyMTc0NkU1Njc3MDA0NzU2NjA4MjI1MAorOjEwMTkyMDAwNzU2NjAwNzg4NDc2MDA3ODg0RTZDMzk1Njc1MDM4OTBCMQorOjEwMTkzMDAwRkMyRjEyMDQ4MDEyMDFFNkZDOTBGQzJDMTIwNDgwRUNCNworOjEwMTk0MDAwMTIwMzBGMzAwMTBFOTBGQzMxRTAwNEYwOTBGQzMwNzA3NworOjEwMTk1MDAwMDNFMDA0RjA3ODg0MDY5MEZDMkVFMDA0RjA5MEZDMkQ2NworOjEwMTk2MDAwNzAwM0UwMDRGMDgwQzAyMjkwRkMyQUUwRkRBM0UwRkNCQworOjEwMTk3MDAwRURGRUVDRkQ3RjAxRUQyNDBBRkQ1MDAxMEU5MEZDMzJERQorOjEwMTk4MDAwMTIwNDZFOTBGQzI5MTIwNDgwOTAwMDA0MTIwMUVDNTRBMQorOjEwMTk5MDAwMEZCNDAxMDI4MDAzRDM0MDE3OTBGQzMyMTIwNDgwMEQ3MworOjEwMTlBMDAwRUQ3MDAxMEU5MEZDMkYxMjA0NkU3ODg4NzYwMTgwNEU0NworOjEwMTlCMDAwQjQwMjAyODAwM0QzNDAxOTkwRkMzMjEyMDQ4MEVEMjQ1QgorOjEwMTlDMDAwMDJGRDUwMDEwRTkwRkMyRjEyMDQ2RTc4ODg3NjAyODA4MgorOjEwMTlEMDAwMkRCNDA0MDI4MDAzRDM0MDE5OTBGQzMyMTIwNDgwRUQzMAorOjEwMTlFMDAwMjQwNEZENTAwMTBFOTBGQzJGMTIwNDZFNzg4ODc2MDRCQQorOjEwMTlGMDAwODAwQ0I0MDAwMjgwMDNEMzQwMDA3NTY2MDgyMjkwRkM3RQorOjEwMUEwMDAwMjkxMjA0ODA5MDAwMDUxMjAxRUNGNTY3Nzg4NTc2MDBCNAorOjEwMUExMDAwNzg4NUU2QzM5NTY3NDAwMzAyMUFDRDc4ODY3NjAwNzgwQworOjEwMUEyMDAwODZFNkMzNzg4ODk2NTA3NjkwRkMyQzEyMDQ4MDEyMDFDQQorOjEwMUEzMDAwRTZGQzkwRkMzMjEyMDQ4OTEyMDFFMEY0NUNGQzEyMDExNQorOjEwMUE0MDAwRTBGODkwRkMyRjEyMDQ4MEU4QzBFMDEyMDFFNkM4RDA1NAorOjEwMUE1MDAwRTBDODU4NENGQzkwRkMyQzEyMDQ4MEVDMTIwMzBGNzg2OAorOjEwMUE2MDAwODdFQ0Y2OTBGQzMxRTAwNEYwOTBGQzMwNzAwM0UwMDQ2OQorOjEwMUE3MDAwRjAwOUU5NzAwMTBBOTBGQzMyMTIwNDc3OTBGQzI5MTJGNworOjEwMUE4MDAwMDQ4MDkwMDAwNDEyMDFFQzMwRTQwRTkwRkMyRUUwMDQ3RgorOjEwMUE5MDAwRjA5MEZDMkQ3MDAzRTAwNEYwNzg4NjA2ODA4MTc4ODg1MQorOjEwMUFBMDAwRTZGREU0RkVGRkVFQ0RGQzkwRkMzMUUwMkNGMDkwRkM3NgorOjEwMUFCMDAwMzBFMDNERjA3ODg4RTZGREU0RkVGRkVFQ0RGQzkwRkNFMgorOjEwMUFDMDAwMzRFMDJDRjA5MEZDMzNFMDNERjA3ODg1MDYwMjFBMERFRQorOjEwMUFEMDAwNzU2NjAwMjJFNTNEMDUzRDA0NzAwMkIyQjAyMkMwRTAwQgorOjEwMUFFMDAwQzBGMEMwODJDMDgzQzBEMEU4QzBFMEU5QzBFMEVBQzA3NgorOjEwMUFGMDAwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkMwRTA0NQorOjEwMUIwMDAwOTBGRjkyRTAxMjAxQjcxQjI5MzAxQjI5MzIxQjM4Mzg5NQorOjEwMUIxMDAwMUI0QTNBMUI1QzNFMUI3NDQ0MUI2ODQ2MUI4MDUwMUJDRgorOjEwMUIyMDAwQzI1MjFCQTE1NDFCRTM1NjAwMDAxQzA0OTBGRjkyRTAxQworOjEwMUIzMDAwN0YwMEZFN0MwMTEyMzFGQjAyMUMxNEU0RkYwNEZFN0NEQQorOjEwMUI0MDAwMDMxMjMxRkI3NDIwOTBGRkZFRjAwMjFDMTRFNEZGMDQyQQorOjEwMUI1MDAwRkU3QzAyMTIzMUZCNzQ0MDkwRkZGRUYwMDIxQzE0RTQ4NAorOjEwMUI2MDAwRkYwNEZFN0MwNDEyMzFGQjAyMUMxNEU0RkYwNEZFN0MyMworOjEwMUI3MDAwMDUxMjMxRkIwMjFDMTRFNEZGMDRGRTdDMDYxMjMxRkI0QgorOjEwMUI4MDAwMDIxQzE0OTBGRkE1RTA3RDAwOTBGQkY4Q0RGMEEzQ0RFMgorOjEwMUI5MDAwRjA5MEZCRjlFMEZDRjU4MzkwRkJGOEUwNDQzM0ZEMTI5NAorOjEwMUJBMDAwMUNBNzgwNzM5MEZGQjVFMDdEMDA5MEZCRkFDREYwQTNGOQorOjEwMUJCMDAwQ0RGMDkwRkJGQkUwRkNGNTgzOTBGQkZBRTA0NDQzRkRBNQorOjEwMUJDMDAwMTIxQ0E3ODA1MjkwRkZBNkUwN0QwMDkwRkJGQ0NERjA5OAorOjEwMUJEMDAwQTNDREYwOTBGQkZERTBGQ0Y1ODM5MEZCRkNFMDQ0MzRFQQorOjEwMUJFMDAwRkQxMjFDQTc4MDMxOTBGRkI2RTA3RDAwOTBGQkZFQ0Q3QQorOjEwMUJGMDAwRjBBM0NERjA5MEZCRkZFMEZDRjU4MzkwRkJGRUUwNDQwQQorOjEwMUMwMDAwNDRGRDEyMUNBNzgwMTA5MEZGOTJFMDdEMDBGQ0VENDQ4MworOjEwMUMxMDAwQUFGRDEyMUNBNzgwMDBFNDkwRkY5MkYwRDBFMEZGRDA1NAorOjEwMUMyMDAwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwRTBGQUQwRTA3OAorOjEwMUMzMDAwRjlEMEUwRjhEMEQwRDA4M0QwODJEMEYwRDBFMDMyMDUxNworOjEwMUM0MDAwODEwNTgxMDU4MTA1ODFBODgxMTgxODE4RURGNjA4RUMzOQorOjEwMUM1MDAwRjY5MEZGNUFFMDIwRTcwMjgwRjc5MEZGNTlFMDdEMDAwMAorOjEwMUM2MDAwQTg4MTE4Q0RGNkNEMDhGNjdEMDNBODgxRTYxOEZDRTYxQworOjEwMUM3MDAwQ0MyNUUwQ0MzM0NDRERGOUNDRjZDQzA4RjZBODgxMTgyNQorOjEwMUM4MDAwRTY0NEY4RjZBODgxMTgxODE4RTZGRDA4RTZGQ0E4ODFENQorOjEwMUM5MDAwMTg4NjgzMDg4NjgyRURGMEEzRUNGMDc0MDI5MEZGNUE1OAorOjEwMUNBMDAwRjAxNTgxMTU4MTE1ODExNTgxMjJFNTgxMjQwNUY1ODFDNQorOjEwMUNCMDAwRTRBODgxMThGNkE4ODExODE4MTgxOEVERjYwOEVDRjZCMworOjEwMUNDMDAwOTBGQkY1RTAyNEY4NTAwMzAyMURDOEU0QTg4MTE4MTgyMQorOjEwMUNEMDAwRjZBODgxMThFNkZFQTg4MTE4MTgxODE4RTZGRDA4RTY4RgorOjEwMUNFMDAwRkM3RjAwRUYyNEY4NDA0REU0RUYyNUUwMjQ3REY1ODJGMQorOjEwMUNGMDAwRTQzNEZDRjU4M0UwRkJBM0UwNkM3MDAzRkFFQjZENzA1OQorOjEwMUQwMDAwMDk3NDAxQTg4MTE4MThGNjgwMkJFNEVGMjVFMDI0N0RFMgorOjEwMUQxMDAwRjU4MkU0MzRGQ0Y1ODM3QTAwRTA1NEYwQ0NGOENDQ0RDNQorOjEwMUQyMDAwRjlDREZCNzgwMEU5NTRGMEY5RUE2ODcwMDJFQjY5NzBDQworOjEwMUQzMDAwMDEwRTBGODBBRUE4ODExOEVFRjZBODgxMTgxODE4MThBOQorOjEwMUQ0MDAwRURGNjA4RUNGNkE4ODFFRkY2QTg4MTE4MThFNjcwNzk5MAorOjEwMUQ1MDAwQTg4MTE4RTYyNEY3NDA3MUE4ODExODE4MTgxOEU2NTRDRAorOjEwMUQ2MDAwMEZBODgxRjY2NDA0NjAxN0E4ODFFNjY0MDM2MDEwQThEOAorOjEwMUQ3MDAwODExODE4MTgxOEU2RkQwOEU2RkMxMjFDM0M4MDRBN0MwNQorOjEwMUQ4MDAwMEExMjMxNUJBODgxMTgxODE4MThFNkZEMDhFNkZDOTBDNQorOjEwMUQ5MDAwRkJGNEUwMjVFMDI0N0RGNTgyRTQzNEZDRjU4M0VERjBFRQorOjEwMURBMDAwQTNFQ0YwOTBGQkY0RTBGRkU0RUYwNDU0MDdGRjkwRkI5QQorOjEwMURCMDAwRjRGMDkwRkJGNUUwMDRGMDEyMzFGNDkwRkJGNkUwNzBFMworOjEwMURDMDAwMDhFNEZFRkY3QzBGMTIzMUZCODAyNzkwRkJGN0UwMDQ1NAorOjEwMUREMDAwRjA1NDNGNzAxRDkwRkJGN0UwNDRGRTdEMDBGQzkwRkI0QgorOjEwMURFMDAwRjRFMDI1RTAyNDdERjU4MkU0MzRGQ0Y1ODNFREYwQTNGNgorOjEwMURGMDAwRUNGMEU1ODEyNEZCRjU4MTIyNzg4Qjc2MDA3ODhDNzZGNworOjEwMUUwMDAwMDA3NDAxOTBGQkY2RjAxMjMwRTY5MEZCRjVFMDYwNTdBRAorOjEwMUUxMDAwN0MwQTEyMzE1QjkwRkJGM0UwMjVFMDI0N0RGNTgyRTQzRgorOjEwMUUyMDAwMzRGQ0Y1ODNFMEZEQTNFMEZDOTBGQkYzRTAyNUUwMjQyNworOjEwMUUzMDAwN0RGNTgyRTQzNEZDRjU4M0U0RjBBM0YwOTBGQkYzRTA1RAorOjEwMUU0MDAwRkZFNEVGMDQ1NDA3RkY5MEZCRjNGMDkwRkJGNUUwMTQ4MAorOjEwMUU1MDAwRjA3ODg5RURGNjA4RUNGNjEyMzFGNDc4ODlFNkZEMDhBMQorOjEwMUU2MDAwRTZGQzEyMDhEQTgwQTMxMjMyNDg5MEZGOTNFMDQ0MDFBNgorOjEwMUU3MDAwRjBCMkIzNzg4QjA2QjYwMDExNzg4Qjc2MDA3ODhDRTZEQQorOjEwMUU4MDAwRjQwNDA0QTJFMDkyQjQ3ODhDRjYwMjFFMDdFNDkwRkJGRQorOjEwMUU5MDAwRjZGMDkwRkJGNUUwN0QwMEZDRUQ0NENGRkQxMjFDM0MxQworOjEwMUVBMDAwMTIzMTY5MjIxMjMwRTZFNTcwNjQ0OTQ1NkY2MDE1OTA4MQorOjEwMUVCMDAwRkY4M0UwNTQwRjdEMDBEMzk1NzBFRDk1NkY1MDA1MTJCMAorOjEwMUVDMDAwMkYyRjgwMDMxMjJGRkYxMjMxNjkyMjEyMzBFNkU1NzBBNgorOjEwMUVEMDAwNjQ0OTQ1NkY2MDA1MTIzMDM5ODAwRTkwRkY4MEUwNDQwMAorOjEwMUVFMDAwMDhGMDkwRkY4M0UwNTQ3RkYwMTIzMTY5MjIxMjMwRTY0RgorOjEwMUVGMDAwOEM1NEVDNTRGMEI0MTAxNTc1NkEzNTc1NjlGQzc1NjgyRQorOjEwMUYwMDAwMDFFNTZBMjQwM0Y1NkFFNTY5MzQwMEY1NjlFNEY1NTdFQgorOjEwMUYxMDAwRjU1NkU1NTZDMzk0MDE1MDI3RTU1NDU0MEZGQ0FENkFCRAorOjEwMUYyMDAwQUU2OUFGNjgxMjBFNzc4QzU1RUM2MDAyODAxMjA1NkFCQworOjEwMUYzMDAwRTU2QTcwMDIwNTY5MDU1N0U1NTc3MDAyMDU1NjgwRDJCQgorOjEwMUY0MDAwRTU1NDU0MEYyNDlERjhDNjU0RkVGNkU1NTQ1NDBGN0YxMworOjEwMUY1MDAwMDBGRTdDMTIxMjMxRkJFNTU1MTQ3MDA5N0QwMDdDMDlFRQorOjEwMUY2MDAwMTIyNTI2ODAwN0FENTc3QzAwMTIyNTI2MTIzMTY5MjJFMgorOjEwMUY3MDAwMTIzMEU2OTBGRkZDRTA0NDAyRjA5MEZGMDBFMDMwRTcxMgorOjEwMUY4MDAwMTM5MEZGODNFMDQ0ODBGMDQzNkQ4MDkwRkZGQ0UwNDRCOQorOjEwMUY5MDAwMDFGMDgwMTE5MEZGODJFMDQ0MDhGMDUzNkQ3RjkwRkZDNAorOjEwMUZBMDAwRkNFMDU0RkVGMDkwRkY4MUUwNDQ4MEYwMTIyNUQ5OTBDRgorOjEwMUZCMDAwRkZGRUUwNDQwNUYwOTBGRkZDRTA1NEZERjAxMjMxNjlCMworOjEwMUZDMDAwMjIxMjMwRTY3QzAxMTIzMkE5NzhBREU2NDQwMkY2NzRBMgorOjEwMUZEMDAwRkVGQzA0RkQxMjFDQTc5MEZGNUFFMDMwRTcwMjgwRjdEOAorOjEwMUZFMDAwRTRGNTRFNzU0RDEwQUM0RUFENERFNTRFMTU0RTcwMDJGQworOjEwMUZGMDAwMTU0REVDNEQ2MDAyODBFRTQzODcwMTEyMzE2OTIyMTJDQgorOjEwMjAwMDAwMzBFNjdDMDIxMjMxNzU3OEFERTY1NEZERjYxMjMxNjk4NgorOjEwMjAxMDAwMjIxMjMwRTY3OEFERTYzMEUwMkM3OEFERTYzMEUxMjZFRAorOjEwMjAyMDAwNzhBREU2RkNGNTgzMThFNjQ0RjBGRDEyMUMzQzkwRkYwOQorOjEwMjAzMDAwRkNFMDQ0MjBGMDdDMDIxMjMyQTk3OEFERTY1NEZERjZCMworOjEwMjA0MDAwNzQxQTkwRkZGRUYwNzhBREU2RkNGNTgzMThFNjQ0RjFEMworOjEwMjA1MDAwRkQxMjFDM0MxMjMxNjkyMjc1NkQwMDkwRkZGRkUwNjA5QgorOjEwMjA2MDAwMDM0MzZEMDE3NTZFMDBFNEY1NkNGNTZCRTRGNTZGNzU3NworOjEwMjA3MDAwNzA0OTc0ODQ5MEZGODJGMDc0ODQ5MEZGODBGMDc0ODBDMworOjEwMjA4MDAwOTBGRjU4RjA3NDgwOTBGRjVBRjBBRDQ2QUY0NTdFMDA0NworOjEwMjA5MDAwRUUyNEZFNTAwMzAyMjEyNEU0RUU3NUYwMDdBNDI0N0YxMQorOjEwMjBBMDAwRjU4MkU0MzRGOEY1ODNFMEZGRTRFRjU0ODBGREU0RUZEQgorOjEwMjBCMDAwNTQwRjE0RkZFRDYwMzhFNEVGNzVGMDA4QTQyNDQ4RjVFMAorOjEwMjBDMDAwODJFNDM0RkZGNTgzNzQ5MEYwRTRFRjc1RjAwOEE0MjQwMworOjEwMjBEMDAwNEFGNTgyRTQzNEZGRjU4Mzc0ODBGMEU0RUY3NUYwMDg4QworOjEwMjBFMDAwQTQyNDRFRjU4MkU0MzRGRkY1ODM3NDgwRjA4MDM0RTQ1OAorOjEwMjBGMDAwRUY3NUYwMDhBNDI0MDhGNTgyRTQzNEZGRjU4Mzc0OTBBQQorOjEwMjEwMDAwRjBFNEVGNzVGMDA4QTQyNDBBRjU4MkU0MzRGRkY1ODNDNworOjEwMjExMDAwRTRGMEU0RUY3NUYwMDhBNDI0MEVGNTgyRTQzNEZGRjU1MgorOjEwMjEyMDAwODNFNEYwMEUwMjIwOEQ4RDQ2OEU0NDhGNDU3NDdGOTA5RgorOjEwMjEzMDAwRkZGREYwNzQ5MDkwRkZGQ0YwMjI4QzU4RUMyNEY2NTBEOAorOjEwMjE0MDAwMDZFNTU4MjQzN0ZDMjJFNTU4MjQzMEZDMjIxMjI1MjNDQQorOjEwMjE1MDAwRUM3MDAzMDIyMjVFNzU1QzAzQUU1QjdGMDBFNTVDMTVFQworOjEwMjE2MDAwNUM2NDgwMjQ3RjUwMzVFRjI0MDBGNTgyRTQzNEZCRjU3NQorOjEwMjE3MDAwODNFMEZFMjRGRTUwMUVFRjdEMDBGQ0U0RkI3NDc0QzM3QworOjEwMjE4MDAwOUNGQUVCOURGQkVFN0QwMEZDRUFDMzlDRUQ2NDgwQ0JFQQorOjEwMjE5MDAwNjQ4MDlCNTAwMjgwMDVFRjJFRkY4MEMxOEU1QjhGNUFCQQorOjEwMjFBMDAwRTU1QzY0ODAyNDdGNTAwMzAyMjI1RUU1NUEyNDhFNTA1MQorOjEwMjFCMDAwMDMwMjIyNUU4NTVBNUQ3NTVCMDBBRTVBQUY1QjkwMzVCNworOjEwMjFDMDAwOUNFNDkzRjU1Q0U1NUMxNTVDNjQ4MDI0N0Y1MDE4RUUxQworOjEwMjFEMDAwMjQwMEY1ODJFNDM0RkJGNTgzRTBGQ0VGOTAzNTlDOTMxQQorOjEwMjFFMDAwNkM3MDA0MEUwRjgwREU4RTVBOEY1QkU1NUM2NDgwMjQ3OQorOjEwMjFGMDAwN0Y0MDZFNzU1RTAxNzU2MEU4NzU1RkZGRTU1RDI0MDJFNgorOjEwMjIwMDAwRjU1QTc1NUMwN0U1NUMzMzQwNTdBRDYwQUU1RkFGNUU3NQorOjEwMjIxMDAwRTU1Q0Y1ODIzMzk1RTBGNTgzMTIwMUVDQzQ1NDBGRkNDNAorOjEwMjIyMDAwMTIyMTM3RTU1QTI0MDBGNTgyRTQzNEZCRjU4M0VDRjAwMworOjEwMjIzMDAwMDU1QTA1NUFBRDYwQUU1RkFGNUVFNTVDRjU4MjMzOTUzOQorOjEwMjI0MDAwRTBGNTgzMTIwMUVDNTQwRkZDMTIyMTM3RTU1QTI0MDAwQgorOjEwMjI1MDAwRjU4MkU0MzRGQkY1ODNFQ0YwMDU1QTA1NUExNTVDODBGMQorOjEwMjI2MDAwQTQ3NDAyOTBGODUxRjA5MEY4NkI3OTc1N0EzNTdCMjc1OQorOjEwMjI3MDAwNzgwMTEyMDNGNTc1NkEzNTc1NjlGQzc1NjgwMUU0OTA5QgorOjEwMjI4MDAwRkY4M0YwNzQ4MDkwRkY4MUYwNzU1OTAyRTU1OTc1RjA3NQorOjEwMjI5MDAwMDdBNDI0N0ZGNTgyRTQzNEY4RjU4M0UwNzg4RkY2RkMxOAorOjEwMjJBMDAwNTQwRjE0RkM3ODhGRUNGNkU1NTk3NUYwMDdBNDI0ODFERgorOjEwMjJCMDAwRjU4MkU0MzRGOEY1ODNFMDc4OTI3NkZEMDg3NkU4RkM2MAorOjEwMjJDMDAwNzg4RkU2NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODM5RQorOjEwMjJEMDAwRTRGMDc4OEZFNjc1RjAwOEE0MjQ0RkY1ODJFNDM0RkYyQgorOjEwMjJFMDAwRjU4M0VDRjA3ODkyRTZGRjA4RTY3RTAzQ0ZDMzEzQ0ZDOAorOjEwMjJGMDAwMTNERUY5RkU3ODhGRTY3NUYwMDhBNDI0NDlGNTgyRTQzMAorOjEwMjMwMDAwMzRGRkY1ODNFRUYwNzg4RkU2NzVGMDA4QTQyNDRBRjVFMworOjEwMjMxMDAwODJFNDM0RkZGNTgzNzQ4MEYwNzg5MEVDRjY3RDAwNzhFOQorOjEwMjMyMDAwOTNFNjJDRjYxOEU2M0RGNjc4OTJFNkZEMDhFNjdDMDM4NworOjEwMjMzMDAwQ0RDMzEzQ0QxM0RDRjlGQzc4OEZFNjc1RjAwOEE0MjQyNworOjEwMjM0MDAwNERGNTgyRTQzNEZGRjU4M0VDRjA3ODhGRTY3NUYwMDgwNAorOjEwMjM1MDAwQTQyNDRFRjU4MkU0MzRGRkY1ODNFNEYwNzg5MkU2RkRBMAorOjEwMjM2MDAwMDhFNkZDNzg4RkU2RkY3RTAwRUUyNEZFNTAwMzAyMjQ5MAorOjEwMjM3MDAwRERFNEVFNzVGMDA3QTQyNDdGRjU4MkU0MzRGOEY1ODNGQworOjEwMjM4MDAwRTBGRkU0RUY1NDgwRkFFNEVGNTQwRjE0RkZFNEVFNzUzRAorOjEwMjM5MDAwRjAwN0E0MjQ4MUY1ODJFNDM0RjhGNTgzRTA3ODkwRjYyMAorOjEwMjNBMDAwRTRFRTEzMTM1NDgwMjRGMEY4RTQzNEZERjlFOEZDRTk3QQorOjEwMjNCMDAwRkQ4QTVBRUE3MDAzMDIyNDRBRTRFRjc1RjAwOEE0MjQ2NworOjEwMjNDMDAwNDhGNTgyRTQzNEZGRjU4M0U0RjA3ODkwRTZGQUU0RUYzMAorOjEwMjNEMDAwNzVGMDA4QTQyNDRGRjU4MkU0MzRGRkY1ODNFQUYwRURBQworOjEwMjNFMDAwRkJFQzdBMDNDQkMzMTNDQjEzREFGOUZBRTRFRjc1RjAwNQorOjEwMjNGMDAwMDhBNDI0NDlGNTgyRTQzNEZGRjU4M0VBRjA3ODkwRTZGNgorOjEwMjQwMDAwN0IwMEZBRUMyQUZDRUQzQkZERkJFQzdBMDNDQkMzMTMxQgorOjEwMjQxMDAwQ0IxM0RBRjlGQUU0RUY3NUYwMDhBNDI0NERGNTgyRTQ2MQorOjEwMjQyMDAwMzRGRkY1ODNFQUYwRTRFRjc1RjAwOEE0MjQ0QUY1ODI1RQorOjEwMjQzMDAwRTQzNEZGRjU4Mzc0ODBGMEU0RUY3NUYwMDhBNDI0NEVEMworOjEwMjQ0MDAwRjU4MkU0MzRGRkY1ODM3NDgwRjAwMjI0RDlFNEVGNzU1QgorOjEwMjQ1MDAwRjAwOEE0MjQwOEY1ODJFNDM0RkZGNTgzRTRGMDc4OTBEMgorOjEwMjQ2MDAwRTZGQUU0RUY3NUYwMDhBNDI0MEZGNTgyRTQzNEZGRjVGMgorOjEwMjQ3MDAwODNFQUYwRURGQkVDN0EwM0NCQzMxM0NCMTNEQUY5RkE2MgorOjEwMjQ4MDAwRTRFRjc1RjAwOEE0MjQwOUY1ODJFNDM0RkZGNTgzRUE0QgorOjEwMjQ5MDAwRjA3ODkwRTY3QjAwRkFFQzJBRkNFRDNCRkRGQkVDN0E1MQorOjEwMjRBMDAwMDNDQkMzMTNDQjEzREFGOUZBRTRFRjc1RjAwOEE0MjRENQorOjEwMjRCMDAwMERGNTgyRTQzNEZGRjU4M0VBRjBFNEVGNzVGMDA4QTQ0QgorOjEwMjRDMDAwMjQwQUY1ODJFNDM0RkZGNTgzRTRGMEU0RUY3NUYwMDhDNAorOjEwMjREMDAwQTQyNDBFRjU4MkU0MzRGRkY1ODNFNEYwMEUwMjIzNjZCMworOjEwMjRFMDAwOEU1OTc4OTJFREY2MDhFQ0Y2Nzg4RkVGRjYxMjIwNTVCQgorOjEwMjRGMDAwMjI4QzI2RUMzMEU3MThFNTI2NTQwRjE0NzVGMDA4QTQ1QQorOjEwMjUwMDAwMjQ0OEY1ODJFNDM0RkZGNTgzRTA1NERGRjA4MDE2RTVEQgorOjEwMjUxMDAwMjY1NDBGMTQ3NUYwMDhBNDI0MDhGNTgyRTQzNEZGRjU1RQorOjEwMjUyMDAwODNFMDU0REZGMDIyN0MwMDIyRUM5MEZDMzdGMDhDMjQxNgorOjEwMjUzMDAwRUQyNDAzRjUyNTdEMDBEMzk1NzJFRDk1NzE0MDAzODU1QgorOjEwMjU0MDAwNzIyNUU1MjUyNEI3NTAwOTc1MjUwMzc0MDI5MEZDMzdFMAorOjEwMjU1MDAwRjBBQzI1MTIzMDI0MjJFNEY1NkNGNTZCMTIyNTVEMjJENworOjEwMjU2MDAwOTBGQzM1RTA2NTczNjAwRTc0MDQ5MEZDMzdGMEU0RjU4MAorOjEwMjU3MDAwNkI3NTZDMDM4MDQ2N0Q3M0U0RkVGRjc5MzU3QUZDN0JENgorOjEwMjU4MDAwMDE3NDA1NzgwMDEyMDMzRkU1NkMyNDAzRjU2Q0U1NkJEQworOjEwMjU5MDAwMzQwMEY1NkJFNTZDRDM5NTcyRTU2Qjk1NzE0MDA2ODU1QgorOjEwMjVBMDAwNzI2Qzg1NzE2QkQzRTU2Qzk0NDhFNTZCOTQwMDQwMENCQworOjEwMjVCMDAwNzQwMjkwRkMzN0YwRTRGNTZCNzU2QzAzQUM2QzEyMzA3MAorOjEwMjVDMDAwMjQyMkVDOTBGQzM3RjBFNEY1NkNGNTZCOEMzMkVDNjA3NworOjEwMjVEMDAwMDUxMjMwMTU4MDA1N0MwMDEyMzAyNDIyOTBGRjkzRTAxNAorOjEwMjVFMDAwNDQwMUYwQjJCMzkwRkYwNEUwRjU0QTkwRkYwNkUwRkQyRAorOjEwMjVGMDAwQTNFMEVEN0QwMEZDN0QwMEZDOTBGRjA2RTBGRkEzRTA4MgorOjEwMjYwMDAwN0UwMEZGRTRGRUVDNEVGQ0VENEZGREMzRUM5NDQ4RUQ4NAorOjEwMjYxMDAwOTQwMDUwMjI5MEZGMDZFMEZEQTNFMEVEN0QwMEZDN0REQworOjEwMjYyMDAwMDBGQzkwRkYwNkUwRkZBM0UwN0UwMEZGRTRGRUVDNEUxRQorOjEwMjYzMDAwRkNFRDRGRkQ4MDA0RTRGRDdDNDg4QzcyOEQ3MTkwRkZCMQorOjEwMjY0MDAwMDJFMEZEQTNFMEVEN0QwMEZDN0QwMEZDOTBGRjAyRTBEOAorOjEwMjY1MDAwRkZBM0UwN0UwMEZGRTRGRUVDNEVGNTRDRUQ0RkY1NEJBMgorOjEwMjY2MDAwNzU2QTM1NzU2OUZDNzU2ODAxN0QzNTdFRkM3RjAxNzk3OQorOjEwMjY3MDAwNzNFNEZBRkI3NDA1NzgwMDEyMDMzRjc1NDkwMEU1NDlERAorOjEwMjY4MDAwMjRGRTQwMTlBRDZBQUU2OUFGNjhFNDEyMDMwRjA1NDkzNAorOjEwMjY5MDAwMERFRDcwMDEwRThENkE4RTY5OEY2ODgwRTE3NTZBMzU2NworOjEwMjZBMDAwNzU2OUZDNzU2ODAxOTBGRjAwRTA1NDYwQjQwMDAyODAxOQorOjEwMjZCMDAwMDZEMzUwMDMwMjJDNkRFNTRBNTQwRkY1NDlFNTRBNTQwMAorOjEwMjZDMDAwODBBMkUwOTIwMjkwRkYwMUUwMTIwMTgxMDAwQjJDNjhEMQorOjEwMjZEMDAwMjZFNTI4MDMyQzY4MjkwRjJDNjgyOUYyMkEyNjJCOEQ0MQorOjEwMjZFMDAwMkI5MDJCRDAyQzExMkMzRkU1NkQzMEU3MEVFNTRDNDU5RgorOjEwMjZGMDAwNEI3MDA4RTU3MjY0MDI0NTcxNjAwMzAyMkM2QTkwRkYxQQorOjEwMjcwMDAwMDBFMDU0MUZCNDAwMDI4MDAzRDM0MDI5RTU0QTYwMDM2RgorOjEwMjcxMDAwMDIyODAwQUQ2QUFFNjlBRjY4NzQwMTEyMDMwRjc4QUQ4QworOjEwMjcyMDAwRTYzMEUwMEJBRDZBQUU2OUFGNjg3NDAyMTIwMzBGN0M0RAorOjEwMjczMDAwMDIxMjMwMjQyMkI0MDEwMjgwMDNEMzQwMUJFNTZEMjAzNQorOjEwMjc0MDAwRTEwN0U1NEE2MDAzMDIyODAwRTU0QTI0RkU1MDAzMDIzRgorOjEwMjc1MDAwMjgwMDdDMDIxMjMwMjQyMkI0MDIwMjgwMDZEMzUwMDNFNworOjEwMjc2MDAwMDIyN0ZFRTU2RDIwRTEwREU1NEE2MDA5RTU0QTY0ODAzNworOjEwMjc3MDAwNjAwMzAyMjgwMEFDNEExMjMwQUI0MDAzMDIyODAwRTU5NworOjEwMjc4MDAwNDk3MDI1MzAwMjExOTBGRjgwRTA1NDA4QUQ2QUFFNjlBRgorOjEwMjc5MDAwQUY2ODEyMDMwRjgwMEY5MEZGODJFMDU0MDhBRDZBQUU1RAorOjEwMjdBMDAwNjlBRjY4MTIwMzBGODAzRDE1NDkzMDAyMURFNTQ5NzU3OAorOjEwMjdCMDAwRjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzRTA1NDA4QUQyMgorOjEwMjdDMDAwNkFBRTY5QUY2ODEyMDMwRjgwMUJFNTQ5NzVGMDA4QTQ3MworOjEwMjdEMDAwMjQwOEY1ODJFNDM0RkZGNTgzRTA1NDA4QUQ2QUFFNjk1RAorOjEwMjdFMDAwQUY2ODEyMDMwRkFENkFBRTY5QUY2ODEyMDFFNjYwMEIwNQorOjEwMjdGMDAwQUQ2QUFFNjlBRjY4NzQwMTEyMDMwRjdDMDIxMjMwMjQxNworOjEwMjgwMDAwMjI4MDAwMDIyQzZBRTU2RDIwRTcwNkU1NzI0NTcxNjBDMgorOjEwMjgxMDAwMDMwMjJDNkE5MEZGMDBFMDU0MUZCNDAwMDI4MDAzRDMyRgorOjEwMjgyMDAwNDAxQUU1NEMxNDQ1NEI3MDA0RTU0QTYwMDMwMjI5MEMzQworOjEwMjgzMDAwNzhBREU2NTRGRUY2N0MwMDEyMzAyNDIyQjQwMTAyODAwQQorOjEwMjg0MDAwMDNEMzQwMkFFNTZEMjBFMTA4RTU2RDIwRTAwMzAyMjk2RAorOjEwMjg1MDAwMENFNTZEMzBFMDA0RTU0QTcwMEJFNTZEMzBFMTA5RTUwQgorOjEwMjg2MDAwNEEyNEZFNTAwMzAyMjkwQzdDMDAxMjMwMjQyMkI0MDJCOAorOjEwMjg3MDAwMDI4MDA2RDM1MDAzMDIyOTBBRTU0QzQ1NEI2MDAzMDI0RgorOjEwMjg4MDAwMjkwQ0FDNEExMjMwQUI0MDAzMDIyOTBDRTU2RDIwRTE2MworOjEwMjg5MDAwMDdFNTZEMjBFMDAyODA3N0U1NkQzMEUwMDZFNTQ5NjBGMAorOjEwMjhBMDAwMDI4MDZDRTU0OTcwMEY5MEZGODJFMDU0RjdGMDkwRkZEMgorOjEwMjhCMDAwODBFMDU0RjdGMDIyRTU0OUI0MDEwMjgwMDNEMzQwMDlENworOjEwMjhDMDAwN0QwMTdDMDMxMjBGMDk4MDExQjQwMjAyODAwM0QzNDAwMgorOjEwMjhEMDAwMDk3RDAxN0MwNDEyMEYwOTgwMDAxNTQ5MzAwMjE1RTVCRAorOjEwMjhFMDAwNDk3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0UwNTRFOAorOjEwMjhGMDAwRjdGMDgwMTNFNTQ5NzVGMDA4QTQyNDA4RjU4MkU0MzQ2NAorOjEwMjkwMDAwRkZGNTgzRTA1NEY3RjA3QzAwMTIzMDI0MjI4MDAwMDJBRgorOjEwMjkxMDAwMkM2QUU1NkQyMEU3MDZFNTcyNDU3MTYwMDMwMjJDNkFCQQorOjEwMjkyMDAwOTBGRjAwRTA1NDFGQjQwMDAyODAwM0QzNDAxQUU1NEMyRQorOjEwMjkzMDAwMTQ0NTRCNzAwNEU1NEE2MDAzMDIyOUVGNzhBREU2NDQ4NAorOjEwMjk0MDAwMDFGNjdDMDAxMjMwMjQyMkI0MDEwMjgwMDNEMzQwMjkxNgorOjEwMjk1MDAwRTU2RDIwRTEwOEU1NkQyMEUwMDMwMjI5RUZFNTZEMzAyQgorOjEwMjk2MDAwRTAwNEU1NDk3MDBCRTU2RDMwRTEwOEU1NDkyNEZFNTBDRgorOjEwMjk3MDAwMDI4MDdGN0MwMDEyMzAyNDIyQjQwMjAyODAwM0QzNDAwNAorOjEwMjk4MDAwNkZFNTRDNDU0QjYwMDI4MDY5QUM0QTEyMzBBQjQwMDJBNworOjEwMjk5MDAwODA2MEU1NkQyMEUxMDdFNTZEMjBFMDAyODA1NEU1NDlBNworOjEwMjlBMDAwNzAxNDMwMDIwOTkwRkY4MEUwNDQwOEYwODAwNzkwRkYyNworOjEwMjlCMDAwODJFMDQ0MDhGMDIyRTU2RDMwRTEzMzE1NDkzMDAyMTUxQworOjEwMjlDMDAwRTU0OTc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzRTA3NgorOjEwMjlEMDAwNDQwOEYwODAxM0U1NDk3NUYwMDhBNDI0MDhGNTgyRTQ2MgorOjEwMjlFMDAwMzRGRkY1ODNFMDQ0MDhGMDdDMDAxMjMwMjQyMjgwMDI5QQorOjEwMjlGMDAwODAwMDAyMkM2QUU1NkQyMEU3MTJFNTcyNDU3MTcwMENDQgorOjEwMkEwMDAwRTU0QTcwMDg5MEZGMDBFMDU0MUY2MDAzMDIyQzZBRTU1RAorOjEwMkExMDAwNEM5MEZGRkZGMDkwRkZGRkUwNjAwNTQzNkQwMTgwMDNFNQorOjEwMkEyMDAwNTM2REZFN0MwMDEyMzAyNDIyRTU2RDMwRTcwRUU1NzIxNgorOjEwMkEzMDAwNDU3MTYwMDg5MEZGMDBFMDU0MUY2MDAzMDIyQzZBQURFRQorOjEwMkE0MDAwNEJFNTRDRUQ3RDAwRkM3RDAwRkNCRDAwMDI4MDAzMDJFNworOjEwMkE1MDAwMkI4OEI0MDEwMjgwMDNEMzQwMzJFNTRBNzAwNUU1NEM2RgorOjEwMkE2MDAwRkM2MDAzMDIyQjhBNzU2QTQwNzU2OUY4NzU2ODAxRDNBQQorOjEwMkE3MDAwRTU3Mjk0MTJFNTcxOTQwMDQwMDZFNEZEN0MxMjgwMDQzNgorOjEwMkE4MDAwQUM3MkFENzE4QzcwOEQ2RjEyMzAzOTIyQjQwMjAyODAzRAorOjEwMkE5MDAwMDNEMzQwNTlFNTRBNjAwMzAyMkI4QUU1NENGQzcwMjdCQQorOjEwMkFBMDAwNzU2QTUyNzU2OUY4NzU2ODAxRDNFNTcyOTQxOUU1NzExNAorOjEwMkFCMDAwOTQwMDQwMDZFNEZEN0MxOTgwMDRBQzcyQUQ3MThDNzAwQQorOjEwMkFDMDAwOEQ2RjEyMzAzOTgwMjU3NTZBNkI3NTY5Rjg3NTY4MDFFQworOjEwMkFEMDAwRDNFNTcyOTQyN0U1NzE5NDAwNDAwNkU0RkQ3QzI3ODBERAorOjEwMkFFMDAwMDRBQzcyQUQ3MThDNzA4RDZGMTIzMDM5MjJCNDAzMDI1OAorOjEwMkFGMDAwODAwNkQzNTAwMzAyMkI4OEU1NENGNTQ5NzAwRjkwRkZGOAorOjEwMkIwMDAwMDRFMEZEQTNFMDRENjAwMzAyMkI4QTgwMTg5MEZCMDJENQorOjEwMkIxMDAwRTBGREEzRTBGQzkwRkYwNUUwNkM3MDA3OTBGRjA0RTA4RgorOjEwMkIyMDAwNkQ2MDAyODA2OEU0RjU3MEY1NkY3RjAwRTU0OTE0QzVCQgorOjEwMkIzMDAwNDk2MDBGRUYyNDAwRjU4MkU0MzRGQkY1ODNFMDJGRkZCQQorOjEwMkI0MDAwODBFQThGNEFFNTRBMjQwMEY1ODJFNDM0RkJGNTgzRTAwRAorOjEwMkI1MDAwN0QwMEQzOTU3MkVEOTU3MTQwMDZBQzcyQUQ3MTgwMEYxQQorOjEwMkI2MDAwRTU0QTI0MDBGNTgyRTQzNEZCRjU4M0UwN0QwMEZDOEMyQgorOjEwMkI3MDAwNzA4RDZGRTU0QTI0MDBGQ0U0MzRGQkZERkVFQ0ZEN0YyNAorOjEwMkI4MDAwMDE4RDZBOEU2OThGNjgxMjMwMzkyMjgwMDAwMjJDNkFBQQorOjEwMkI5MDAwMDIyQzZBRTU2RDMwRTcxOUU1NzIxNDQ1NzE3MDEyRTU5MworOjEwMkJBMDAwNEE3MDBFRTU0QzQ1NEI3MDA4OTBGRjAwRTA1NDFGNjBFMgorOjEwMkJCMDAwMDMwMjJDNkFFNTZEMjBFMDA4RTU2RDIwRTEwMzAyMkM5QworOjEwMkJDMDAwNkE3NTZBNkVFNEY1NjlGNTY4RTRGNTZGMDRGNTcwMTJFQworOjEwMkJEMDAwMzAzOTIyRTU2RDIwRTcxMkU1NzI0NTcxNzAwQ0U1NEE0NworOjEwMkJFMDAwNzAwODkwRkYwMEUwNTQxRjYwMDMwMjJDNkFFNTZEMjAxRQorOjEwMkJGMDAwRTAwN0U1NkQyMEUxMDI4MDc0ODU0QzZFRTU2RTcwMDg5QgorOjEwMkMwMDAwNDM2RDAxNTM2REZEODAwNjUzNkRGRTQzNkQwMjdDMDBFNAorOjEwMkMxMDAwMTIzMDI0MjJFNTZEMzBFNzFBRTU3MjE0NDU3MTcwMTMwNQorOjEwMkMyMDAwRTU0QTcwMEZFNTRDNDU0QjcwMDk5MEZGMDBFMDU0MUZEQQorOjEwMkMzMDAwMTQ2MDAyODAzOEU1NkQyMEUxMDI4MDMxN0MwMTEyMzBBMQorOjEwMkM0MDAwMjQyMkU1NkQyMEU3MTVFNTcyNDU3MTcwMEZFNTRDNDVDRQorOjEwMkM1MDAwNEI3MDA5OTBGRjAwRTA1NDFGMTQ2MDAyODAwRkU1NkQ3NworOjEwMkM2MDAwMjBFMTAyODAwODdDMDAxMjMwMjQyMjgwMDAwMjJGMkJGOQorOjEwMkM3MDAwQjQ0MDAyODAwNkQzNTAwMzAyMkYyMTkwRkYwMUUwOTA2MAorOjEwMkM4MDAwRkMzNUYwRTU0QTkwRkMzNkYwRTQ5MEZDMzdGMEU1NkE1QworOjEwMkM5MDAwMjQwM0Y1NkFFNTY5MzQwMEY1NjlBRDRCRTU0Qzg1NkFCNgorOjEwMkNBMDAwODI4NTY5ODNDREYwQTNDREYwOTBGRjAxRTAxMjAxQjdEQQorOjEwMkNCMDAwMkNEODAxMkNGRTAyMkQyODAzMkQ1MjA0MkRBMDA1MkQwOQorOjEwMkNDMDAwREQwNjJFMDMwNzJFMjkwODJFNTUwOTJFN0IwQjJFQTE3QgorOjEwMkNEMDAwMEMyRUIwODAyRUIwODEwMDAwMkYwRUU1NkQyMEU3MDY4RgorOjEwMkNFMDAwN0MwNTEyMjVCRjIyN0QyNDdFMzU3RjAyNzkzODdBRkM0RgorOjEwMkNGMDAwN0IwMTc0MDg3ODAwMTIwMzNGN0QwODdDMDAxMjI1MjZCMgorOjEwMkQwMDAwMjJFNTZEMjBFNzA2N0MwNTEyMjVCRjIyRTU0QUI0MDNDMworOjEwMkQxMDAwMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzEwMTIwNQorOjEwMkQyMDAwMzFGQjIyN0QwMDdDMDcxMjI1MjYyMkU1NkQyMEU3MDY3NworOjEwMkQzMDAwN0MwNTEyMjVCRjIyRTU0QUI0MDMwMDQwMTBCNDA1MDAwQgorOjEwMkQ0MDAwNTAwQkU1NEE3RjAwRkU3QzExMTIzMUZCMjI3RDAwN0M5NgorOjEwMkQ1MDAwMDcxMjI1MjYyMkU1NkQyMEU3MDY3QzA1MTIyNUJGMjJGNQorOjEwMkQ2MDAwRTU0QUI0MDUwMjgwMDNEMzQwMEFFNEZGMDRGRTdDMEE2RQorOjEwMkQ3MDAwMTIzMUZCMjJCNDAxMDI4MDAzRDM0MDBBRTRGRjA0RkVCNworOjEwMkQ4MDAwN0MwODEyMzFGQjIyQjQwMzAwNDAxMEI0MDUwMDUwMEI0NAorOjEwMkQ5MDAwRTU0QTdGMDBGRTdDMTMxMjMxRkIyMjdEMDA3QzA3MTI4NgorOjEwMkRBMDAwMjUyNjIyRTU2RDIwRTczNEQzRTU3Mjk0NDhFNTcxOTQzOQorOjEwMkRCMDAwMDA1MDA2RTU3MjQ1NzE3MDA2N0MwMjEyMjVCRjIyRTVCRgorOjEwMkRDMDAwNEFCNDAxMDNCMzQwMEJDM0I0MDMwMDQwMDlCNDA2MDA4NgorOjEwMkREMDAwNTAwNDEyMzBEMTIyN0MwNzEyMjVCRjIyMTIyNTVEMjIxOQorOjEwMkRFMDAwRTU2RDIwRTcxREU1NEFCNDAzMDA0MDEwQjQwNTAwNTAyRQorOjEwMkRGMDAwMEJFNTRBN0YwMEZFN0MxNjEyMzFGQjIyN0MwNzEyMjU3MAorOjEwMkUwMDAwQkYyMjEyMjU1RDIyRTU2RDIwRTcxREU1NEFCNDAzMDBDRgorOjEwMkUxMDAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxOTEyMzFDQQorOjEwMkUyMDAwRkIyMjdDMDcxMjI1QkYyMjEyMjU1RDIyRTU2RDIwRTdEQgorOjEwMkUzMDAwMjM3NDgxOTBGRjkzRjBFNTRBQjQwMzAwNDAxMEI0MDU3OQorOjEwMkU0MDAwMDA1MDBCRTU0QTdGMDBGRTdDMTcxMjMxRkIyMjdDMDcwNQorOjEwMkU1MDAwMTIyNUJGMjIxMjI1NUQyMkU1NkQyMEU3MURFNTRBQjQ0QgorOjEwMkU2MDAwMDMwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMThCQgorOjEwMkU3MDAwMTIzMUZCMjI3QzA3MTIyNUJGMjIxMjI1NUQyMkU1NkQ0RgorOjEwMkU4MDAwMjBFNzFERTU0QUI0MDMwMDQwMTBCNDA1MDA1MDBCRTVFRgorOjEwMkU5MDAwNEE3RjAwRkU3QzE1MTIzMUZCMjI3QzA3MTIyNUJGMjJERgorOjEwMkVBMDAwMTIyNTVEMjJFNTZEMjBFNzA2N0MwNzEyMjVCRjIyMTI2MAorOjEwMkVCMDAwMjU1RDIyRTU2RDMwRTcyMDkwRkYwMEUwNTQxRjcwMTA4MworOjEwMkVDMDAwOTBGRjAxRTBCNDgwMDUxMjI1NTQ4MDAzMTIyNTVEMjI5NQorOjEwMkVEMDAwN0QwMDdDMDUxMjI1MjYyMjkwRkYwMEUwNTQxRjYwMDYyRAorOjEwMkVFMDAwN0MwNTEyMjVCRjIyRDNFNTcyOTQ0OEU1NzE5NDAwNTAwOQorOjEwMkVGMDAwMEJDM0U1NzI5NDA3RTU3MTk0MDA1MDA2N0MwMzEyMjUxQworOjEwMkYwMDAwQkYyMkU1NEFCNDA1MDQxMjMwRDEyMjdDMDcxMjI1QkY0NgorOjEwMkYxMDAwMjJFNTZEMzBFNzA4N0QwMDdDMDUxMjI1MjYyMjdDMDUyMAorOjEwMkYyMDAwMTIyNUJGMjJCNDIwMDI4MDAzRDM0MDAwODAwMDEyMkY1QworOjEwMkYzMDAwRkYyMjc1NDMwMDkwRkY4M0UwNTQwRkQzOTU0MzQwMjQ1NAorOjEwMkY0MDAwRTU0MzI0RjBGNTgyRTQzNEZFRjU4M0UwQUQ2QUFFNjkzMgorOjEwMkY1MDAwQUY2ODEyMDMwRjA1NDMwREVENzAwMTBFOEQ2QThFNjk4NworOjEwMkY2MDAwOEY2ODgwRDFFNTQzN0QwMEZDQzNFNTcwOUNGNTcwRTU3QQorOjEwMkY3MDAwNkY5REY1NkZFNTcwNDU2RjYwMDZFNDkwRkY4M0YwMjI2QQorOjEwMkY4MDAwOTBGRjgyRTA0NDA4RjBFNEY1NkY3NTcwNDk5MEZDMzVERAorOjEwMkY5MDAwRTBCNDA1MDI4MDAzRDM0MDQwOTBGQzM2RTBGNTQzQjQzMgorOjEwMkZBMDAwMDUwMjgwMDNEMzQwMEFFNEZGMDRGRTdDMEIxMjMxRkJEMAorOjEwMkZCMDAwMjJCNDAxMDI4MDAzRDM0MDBBRTRGRjA0RkU3QzA5MTIxQworOjEwMkZDMDAwMzFGQjIyQjQwMzAwNDAxMEI0MDUwMDUwMEJFNTQzN0ZGMQorOjEwMkZEMDAwMDBGRTdDMTQxMjMxRkIyMjIyQjQ4MDAwNDAyM0I0ODIxNAorOjEwMkZFMDAwMDA1MDFFN0MzNTdERkMxMjE3N0U3RDAwOEM2QzhENkIzNQorOjEwMkZGMDAwOTBGQzM3RTA2MDA1MTIyRkZGODAwNTdDMDAxMjMwMjQyMgorOjEwMzAwMDAwMjIyMjkwRkY4M0UwNTQ3RkYwOTBGRjgyRTA0NDA4RjA5QQorOjEwMzAxMDAwOTBGRjgwRTA0NDA4RjAyMjkwRkY4MkUwNDQwOEYwOTBBNgorOjEwMzAyMDAwRkY4MEUwNDQwOEYwMjI4QzIzN0QwMDhDNzA4RDZGNzU0QQorOjEwMzAzMDAwNkEzNTc1NjlGQzc1NjgwMTEyMzAzOTIyOTBGRjgzRTBBQQorOjEwMzA0MDAwNTQ3RkYwRTU3MDY0NDk0NTZGNzAwMTIyQzNFNTcwOTRDOAorOjEwMzA1MDAwMDhFNTZGOTQwMDQwMTU3NTIxMDhFNTIxN0QwMEZDQzM0QgorOjEwMzA2MDAwRTU3MDlDRjU3MEU1NkY5REY1NkY4MDA5ODU3MDIxRTQzMgorOjEwMzA3MDAwRjU2Rjc1NzA0OTc1MjIwMEU1MjJDMzk1MjE1MDI2QUQ4NAorOjEwMzA4MDAwNkFBRTY5QUY2ODEyMDFFNkZDRTUyMjI0RjhGNTgyRTQzNQorOjEwMzA5MDAwMzRGRUY1ODNFQ0YwMDUyMjBERUQ3MDAxMEU4RDZBOEU4NQorOjEwMzBBMDAwNjk4RjY4ODBEM0U1MjE1NDdGOTBGRjgxRjAyMjhDNDg5RQorOjEwMzBCMDAwN0YwMEVGMjRGRDQwMTlFNEVGNzVGMDA3QTQyNDdGRjVBRAorOjEwMzBDMDAwODJFNDM0RjhGNTgzRTA2NTQ4NzAwMkQzMjIwRjgwRTI5MQorOjEwMzBEMDAwOEY0N0MzMjI4NTcyNzA4NTcxNkY5MEZGODJFMDU0RjcyRAorOjEwMzBFMDAwRjA5MEZGODNFMDU0N0ZGMDIyQzAwMEMwMDFDMDAyQzAxNgorOjEwMzBGMDAwMDZDMDA3RTU3ODI0MDhGODg2MDY1MzA2N0Y3Q0ZGMTI5MQorOjEwMzEwMDAwMzE1QjdDMDA3RDAwRTU3QjYwNDZGRjkwRkQ5NUUwNTRERgorOjEwMzExMDAwN0Y2RTcwMEZDMDgzQzA4MkEzRTBGREEzRTBGQ0EzMTUwNworOjEwMzEyMDAwN0I4MDA3QTNBM0EzREZFNjgwMjZERjA2RDA4MkQwODNCRgorOjEwMzEzMDAwODAxRUUwRjhBM0UwRjlBM0UwRkFEMDgyRDA4M0U4RjBBMworOjEwMzE0MDAwQTNFOUYwQTNFQUYwQTNDMDgzQzA4MkEzQTNBMzgwREExQgorOjEwMzE1MDAwMTIzMUY0RDAwN0QwMDZEMDAyRDAwMUQwMDAyMjg1QThDOQorOjEwMzE2MDAwN0E3NUE4ODhFQzcwMDI3QzNGOEM3OTIyRTU3ODI0MDg3NworOjEwMzE3MDAwRjg3NjAwMTIzMjQ4ODBGQkMwMDBDMDAxQzAwMkMwMDZEMQorOjEwMzE4MDAwQzAwN0FFMDQ3Q0ZGMTIzMTVCRTU3QjYwNDJGRjkwRkQxRgorOjEwMzE5MDAwOTVFMDU0N0Y2RTcwMEJDMDgzQzA4MkEzQTNBMzE1N0IwMAorOjEwMzFBMDAwODAwN0EzQTNBM0RGRUE4MDI2REYwNkQwODJEMDgzODAzNgorOjEwMzFCMDAwRDhFMEY4QTNFMEY5QTNFMEZBRDA4MkQwODNFOEYwQTM0NgorOjEwMzFDMDAwRTlGMEEzRUFGMEEzQzA4M0MwODJBM0EzQTM4MERBNzhDNgorOjEwMzFEMDAwMDgwODc5MTgwOTdDMDFFNjU0N0Y2RTcwMDY3NjAwNzczRQorOjEwMzFFMDAwMDA4MDA2MDgwOTBDQkMwOEVFMTIzMUY0RDAwN0QwMDZBNgorOjEwMzFGMDAwRDAwMkQwMDFEMDAwMjI3NTc5MDA4NTdBQTgyMkMwRjBEMworOjEwMzIwMDAwQzA4MkMwODNDM0U1N0IyNEU4NTAwNTEyMzI0ODgwRjRCNQorOjEwMzIxMDAwRUM2MDMxOTAzNTIzRTQ5M0MzOUM0MDI4QzAwNDdDRkZDQworOjEwMzIyMDAwMTIzMTVCRDAwNDQzMDQ4MEU1N0I3NUYwMDNBNDI0OTU0MAorOjEwMzIzMDAwRjU4MkU0MzRGREY1ODNFQ0YwRUZBM0YwRUVBM0YwMDVBNgorOjEwMzI0MDAwN0IxMjMxRjREMDgzRDA4MkQwRjAyMkMwMDQ3QzIwRDIxMworOjEwMzI1MDAwOENEMjhERDUwNEZERDAwNDIyNzVBODAwNzU4ODAwNzUyOAorOjEwMzI2MDAwQjgwMDc1RjAwMDc1RDAwMEU0Rjg5MDAwMDBGNjA4QjhEQQorOjEwMzI3MDAwMDBGQjAyMDAwMEMzRUQ5NDAyNTAwNDdEMDM3Q0U4RUNFNworOjEwMzI4MDAwRjRGQ0VERjRGRDBDQkMwMDAxMEQ4QzdGOEQ3RTIyQzM5RgorOjEwMzI5MDAwRUM5NEJDRUQ5NDAyNTAwNDdEMDc3Q0QwRUNGNEZDRUQ4MgorOjEwMzJBMDAwRjRGRDBDQkMwMDAxMEQ4QzdEOEQ3QzIyRUM3MDAxMjJBNAorOjEwMzJCMDAwQzAwMEU1NzgyNDE4RjhBNjA0RTU3ODI0MDhGOEM2NTQ3OAorOjEwMzJDMDAwN0ZGNkU2MzBFNzAzRDAwMDIyMTIzMjQ4ODBGNEMyOEM0OQorOjEwMzJEMDAwODU3QzhDODU3RDhBRDI4Q0MwRTBDMEQwQzBGMEMwODI1NQorOjEwMzJFMDAwQzA4M0MwMDBDMDAxQzAwMkMwMDNDMDA0QzAwNUMwMDY0NgorOjEwMzJGMDAwQzAwNzEyMUFEMUU1NzgyNDA4RjhFNjYwMjRFNTc4MjQ5RQorOjEwMzMwMDAwMTBGOEE2ODFFNTc4NzVGMDIxQTQyNDhERjU4MkU0MzRDNworOjEwMzMxMDAwRkNGNTgzNzhBRUU1ODEwNEMzOThGOUU2RjAwOEEzRDlGQgorOjEwMzMyMDAwRkE3NDA4MjU3OEY4MDU3ODA4RTY1NDgwNzAwQ0U1Nzg3QQorOjEwMzMzMDAwQjQwN0YzNzgwODc1NzgwMDgwRUZFNTc4MjQxMEY4ODZGNAorOjEwMzM0MDAwODFFNTc4NzVGMDIxQTQyNDhERjU4MkU0MzRGQ0Y1ODNDMQorOjEwMzM1MDAwNzhBRUU1ODEwNEMzOThGOUUwRjYwOEEzRDlGQUQwMDc1RQorOjEwMzM2MDAwRDAwNkQwMDVEMDA0RDAwM0QwMDJEMDAxRDAwMEQwODM0NQorOjEwMzM3MDAwRDA4MkQwRjBEMEQwRDBFMDMyQzBFMEMwRDBDMDAwQzAwOQorOjEwMzM4MDAwMDFDMDAyQzI4RTg1N0U4RDg1N0Y4QkQyOEU3ODE5NzlBMQorOjEwMzM5MDAwMDk3QTA3RTc3MDA0QTYwMDgwMEJFNjYwMDgxNkU2NzA1RAorOjEwMzNBMDAwMDRFNzQ0ODBGNzA4MDlEQUVBRTU3OTYwMTMxNEY1Nzk0RgorOjEwMzNCMDAwNzAwRUU1NzgyNDA4Rjg3NjAwMTIzMUY0RDI4Q0QyOERBNAorOjEwMzNDMDAwRDAwMkQwMDFEMDAwRDBEMEQwRTAzMjc1ODFBRDc0MkFDNworOjEwMzNEMDAwOTBGRjkzRjA3NTdGMzA3NTdFRjg3NTdENjA3NTdDRjA5OQorOjEwMzNFMDAwMTIwNTM2MTIzNDdDMTIxNzM0OTBGRjkzRTA0NDAxRjAzQQorOjEwMzNGMDAwQjJCMzEyMzRBNjEyMzI1NjgwREEyMkMwMDA3QzAxRUMzRAorOjEwMzQwMDAwMjQwOEY4RTY2MDA5MENCQzA4RjUxMjMyNDg4MEVFRDBCQQorOjEwMzQxMDAwMDAyMkMwRjBDMDgyQzA4M0MwMDBDMDA2QzAwN0VEMjRGNworOjEwMzQyMDAwMTBGODc2QkNFRDc1RjAyMUE0MjQ4REY1ODJFNDM0RkMwRgorOjEwMzQzMDAwRjU4M0MwODJDMDgzQTNBM0U0NzgwREYwQTNEOEZDRUM4RAorOjEwMzQ0MDAwNTQ3Rjc1RjAwMkE0MjRFRkY1ODJFNUYwMzQzNEY1ODM1RgorOjEwMzQ1MDAwRTQ5M0ZFNzQwMTkzRjU4MjhFODNFNDkzRkU3NDAxOTNFQQorOjEwMzQ2MDAwRkZEMDgzRDA4MkVGRjBBM0VFRjBFRDI0MDhGOEVDNDQxNworOjEwMzQ3MDAwODBGNkQwMDdEMDA2RDAwMEQwODNEMDgyRDBGMDIyNzU1RAorOjEwMzQ4MDAwNzgwMDc1N0IwMDdBMDg3OTE4NzgwODc2MDA3NzAwMDg0QworOjEwMzQ5MDAwMDlEQUY4RTQ3ODA4NzQ4MDQ0N0ZGNjc0MDE0NDEwRjU4MgorOjEwMzRBMDAwODk3NUI4MDhEMkFCRDJBOTIyNzU4MUFERDI4RUQyOENFMworOjEwMzRCMDAwRDJBRkU1N0I2MDMyRkY5MEZEOTVFMDU0ODA2MDI0NzhDOAorOjEwMzRDMDAwMDg3OTA4RTA1NDdGRkE3QjAwRTY1NDdGQjUwMjAyN0I1RQorOjEwMzREMDAwRkYwOEQ5RjVFQjcwMENFQUYwMTIzM0Y4QUQwNEFDMDIzQQorOjEwMzRFMDAwMTIzNDBGQTNBM0EzREZEMjEyMzI0ODgwQzU3QzAxN0QyMgorOjEwMzRGMDAwMDAyMjA0RjUwNEU5MDRFRDA0RTEwNEREMDREOTA0RTU0NworOjEwMzUwMDAwMDRGMTA0OUQwNEExMDRDRDA0RDEwNDk5MDQ5OTA0OTkwMworOjEwMzUxMDAwMDRENTA0QjUwNEFEMDRCMTA0QTkwNEMxMDRCRDA0QjlDMworOjEwMzUyMDAwMDRDNTA0QzkwNEE1MTkwMTAzMDAyMjAwNDgwMjAwNDg4QgorOjEwMzUzMDAwMEUzMDE0MjBDODFBRDAxODBBMEMwNTA2MDIwMzAxMDIyNgorOjEwMzU0MDAwMDAwMUNFMDE4MTAxMDAwMEMwMDA4MDAwNjAwMDMwMDA1OQorOjEwMzU1MDAwMTgwMDEwMDAwODAwMDQwMDAyMDAwMTAwMDgxODM4MjhCNAorOjEwMzU2MDAwMEMwNTEwMEEwMjAwMDAwMDAwMDAwMzAxMTAwQTAyMDAwRQorOjEwMzU3MDAwMDAwMDAwMDBGQkUwRkJGMjA5MDIyNzAwMDEwMjAwQTBBRQorOjEwMzU4MDAwMzIwOTA0MDAwMDAzRkYwMDAwMDAwNzA1ODEwMjQwMDAyQgorOjEwMzU5MDAwMDAwNzA1MDEwMjQwMDAwMDA3MDU4MzAzMDIwMDAxMjIyNQorOjEwMzVBMDAwMDM1NDAwNTUwMDUzMDA0MjAwMzMwMDM0MDAzMTAwMzAxMgorOjEwMzVCMDAwMDAyMDAwMjAwMDIwMDAyMDAwMjAwMDIwMDAyMDAwMjAwQgorOjA1MzVDMDAwMDAwMDAwMDAwMDA2Cis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGlfNTA1Mi5mdy5paGV4IGIvZmlybXdhcmUvdGlfNTA1Mi5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MjllMDcKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS90aV81MDUyLmZ3LmloZXgKQEAgLTAsMCArMSw4NjIgQEAKKzoxMDAwMDAwMEMxMzUwMDAyMDAxRTAyMUIzMkZGRkZGRkZGRkYwMjMyNUMKKzoxMDAwMTAwMDZBRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMjMzNEUKKzoxMDAwMjAwMDE1NzU4MUM4OTBGRUYwODU4M0EwMTIzNDdERUM0RDYwN0IKKzoxMDAwMzAwMDZBNzhBNTgwMDM3NjAwMThCODk2RkE3ODc5ODAwMzc2RjYKKzoxMDAwNDAwMDAwMThCODVGRkE3ODIwODAwMzc2MDAxOEI4MjBGQTkwN0MKKzoxMDAwNTAwMEZFRTVBRTgzQUY4MjkwRkQwMDEyMDBBMTYwMDVFNEYwRTIKKzoxMDAwNjAwMEEzODBGNjkwRkVGMEE4ODI5MEZFRjBBOTgyRThDMzk5RTIKKzoxMDAwNzAwMDUwMDU3NjAwMDg4MEY2OTAwMEZGMTIwMEFBOTAwMTAzNTgKKzoxMDAwODAwMDEyMDBBQTkwMDEwNzEyMDBBQTkwMDEwQjEyMDBDODkwNUEKKzoxMDAwOTAwMDAxMTExMjAwQzg5MDAxMTcxMjAwQzg3NUQwMDAxMjMzNjgKKzoxMDAwQTAwMDY3MDIwMTFERUY2NTgyNzAwM0VFNjU4MzIyRTQ5M0Y4MTkKKzoxMDAwQjAwMDc0MDE5M0Y5NzQwMjkzRkU3NDAzOTNGNTgyOEU4M0U4QkUKKzoxMDAwQzAwMDY5NzAwMTIyRTQ5M0Y2QTMwODgwRjRFNDkzRkM3NDAxQzAKKzoxMDAwRDAwMDkzRkQ3NDAyOTNGRTc0MDM5M0ZGNzQwNDkzRjg3NDA1MDQKKzoxMDAwRTAwMDkzRjU4Mjg4ODMxMjAwQTE3MDAxMjJFNDkzQTNBODgzNzAKKzoxMDAwRjAwMEE5ODI4QzgzOEQ4MkYwQTNBQzgzQUQ4Mjg4ODM4OTgyQjAKKzoxMDAxMDAwMDgwRTMyMTIxMDQ5MjdBN0EwNDkyQTZBODA0OTJGRUYwNTgKKzoxMDAxMTAwMDA0OTQwNDk0RkJGQjA0OTkwNDk0RkJGQjA0RjkwNEY5OTQKKzoxMDAxMjAwMDgwRkVEMEYwMzBGMDA5MjBGMzAzRjY4MDEwRjc4MDBENDgKKzoxMDAxMzAwMDMwRjEwOTIwRjMwM0YyODAwNEYzODAwMUYwMjBGNDA0OEQKKzoxMDAxNDAwMEZDRDBFMENDMjJDQ0MwRTAxMjAxNUEwMjAxNEJCQzAwMzIKKzoxMDAxNTAwMDA1RDBGMEFDRjAyMkMzMTNEQ0ZDMDIwMTIxQkYwMDA5ODIKKzoxMDAxNjAwMEVEMjU4Mjc1RjAwMUY4RTYyMkJGMDEwRkVEMjU4MkY1M0QKKzoxMDAxNzAwMDgyRUUzNTgzRjU4Mzc1RjAwNEUwMjJFRDI1ODI3NUYwN0IKKzoxMDAxODAwMDAyRjhFMjIyRDA4M0QwODJGNUYwQzNFNDkzQTNDNUYwNTUKKzoxMDAxOTAwMDk1RjBDMEUwQzNEMEYwRTQ5M0EzOTVGMDQwMTJBM0EzODAKKzoxMDAxQTAwMEMzRTVGMDMzNTAwMjA1ODMyNTgyRjU4MjUwMDIwNTgzQjIKKzoxMDAxQjAwMDc0MDE5M0MwRTBFNDkzQzBFMDIyRDA4M0QwODJGNUYwRDQKKzoxMDAxQzAwMEU0OTM3MDA5NzQwMTkzNzAwNEEzQTM4MDBDNzQwMjkzRTgKKzoxMDAxRDAwMDY1RjA2MDA1QTNBM0EzODBFNzc0MDE5M0MwRTBFNDkzRjYKKzoxMDAxRTAwMEMwRTAyMjEyMDI1QjAyMDFGMjEyMDJBRjAyMDFGMjEyMUYKKzoxMDAxRjAwMDAyRDMwMjAxRjIzMEUwMDcyMEUzMDJFNjIyRTcyMjMwRDgKKzoxMDAyMDAwMEUxMDcyMEUzMDJFMjIyRTMyMjMwRTIwMkUwMjJFNDkzNkIKKzoxMDAyMTAwMDIyMTIwMkQzMDIwMjFBMTIwMkFGMDIwMjFBQUJGMDEyMjkKKzoxMDAyMjAwMDAyMjRDQkM1RjBDQjIyMzBFMDEwMjBFMzA2RTZGNUYwNDcKKzoxMDAyMzAwMDA4RTYyMkU3RjVGMDA5RTcxOTIyMzBFMTEwMjBFMzA2OEQKKzoxMDAyNDAwMEUyRjVGMDA4RTIyMkUzRjVGMDA5RTMxOTIyMzBFMjA2RDQKKzoxMDAyNTAwMEUwRjVGMEEzRTAyMkU0OTNGNUYwNzQwMTkzMjJCQjAwRjMKKzoxMDAyNjAwMDAzNzQwOTIyQkIwMTA3ODk4MjhBODM3NDA0MjJCQjAyQkEKKzoxMDAyNzAwMDA3ODk4MjhBODM3NDEwMjI3NDBBMjIwMjAyN0JCQjAwREYKKzoxMDAyODAwMDA3RTkyNTgyRjg3NDAxMjJCQjAxMERFOTI1ODJGNTgyNzgKKzoxMDAyOTAwMEVBMzU4M0Y1ODM3NDA0MjJCQjAyMERFOTI1ODJGNTgyRDkKKzoxMDAyQTAwMEVBMzU4M0Y1ODM3NDEwMjJFOTI1ODJGODc0MDIyMjAyNkMKKzoxMDAyQjAwMDAyQUZCRjAwMDVFREY4NzQwMTIyQkYwMTA3OEQ4MjhFRTkKKzoxMDAyQzAwMDgzNzQwNDIyQkYwMjA3OEQ4MjhFODM3NDEwMjJFREY4OUUKKzoxMDAyRDAwMDc0MDIyMjAyMDJEM0JGMDAwN0VEMjU4MkY4NzQwMTIyQzYKKzoxMDAyRTAwMEJGMDEwREVEMjU4MkY1ODJFRTM1ODNGNTgzNzQwNDIyN0UKKzoxMDAyRjAwMEJGMDIwREVEMjU4MkY1ODJFRTM1ODNGNTgzNzQxMDIyNjEKKzoxMDAzMDAwMEVEMjU4MkY4NzQwMjIyMDIwMzA3QzBFMDEyMDI1QjAyQUMKKzoxMDAzMTAwMDAzMUZDMEUwMTIwMkFGMDIwMzFGQzBFMDEyMDJEMzAyQUIKKzoxMDAzMjAwMDAzMUYzMEUwMEIyMEUzMDREMEUwRjYyMkQwRTBGNzIyRjgKKzoxMDAzMzAwMDMwRTEwQjIwRTMwNEQwRTBGMjIyRDBFMEYzMjJEMEUwNjEKKzoxMDAzNDAwMEYwMjJDOUNEQzlDQUNFQ0FDQkNGQ0IxMjAzNTJFREY5MjgKKzoxMDAzNTAwMEVFRkFFRkZCMjJCQjAwMkZCRjAwMEFGQUVERjhFN0Y2M0EKKzoxMDAzNjAwMDA4MDlEQUZBMjJCRjAxMTI4RDgyOEU4M0Y4MDIwMzZGMjgKKzoxMDAzNzAwMDA5QTNFN0YwRDhGQTIyMDIwMzdBRkFFREY4RTdGMjA4QzcKKzoxMDAzODAwMDA5REFGQTIyMDIwMzg0QkIwMTREQkYwMDE0ODk4MjhBNzQKKzoxMDAzOTAwMDgzRjlFREY4MDIwMzk2MDhBM0UwRjZEOUZBMjIwMjAzRTYKKzoxMDAzQTAwMEE3QkYwMTIyOEQ4MjhFODNGQjA4QzlDNTgyQzlDQUM1MzkKKzoxMDAzQjAwMDgzQ0FFMEEzQzlDNTgyQzlDQUM1ODNDQUYwQTNEQkVBNjAKKzoxMDAzQzAwMEQ4RTgyMjAyMDNDQThEODI4RTgzRjlFREY4RTBGMjA4QTQKKzoxMDAzRDAwMEEzRDlGQTIyMDIwM0Q0QkIwMjREQkYwMDEyODk4MjhBM0MKKzoxMDAzRTAwMDgzRjlFREY4MDIwM0U2MDhBM0U0OTNGNkQ5RjkyMkJGRjYKKzoxMDAzRjAwMDAxMjM4RDgyOEU4M0ZCMDhDOUM1ODJDOUNBQzU4M0NBMDEKKzoxMDA0MDAwMEU0OTNBM0M5QzU4MkM5Q0FDNTgzQ0FGMEEzREJFOUQ4RUUKKzoxMDA0MTAwMEU3MjIwMjA0MTk4OTgyOEE4M0Y5RURGOEU0OTNGMjA4NEQKKzoxMDA0MjAwMEEzRDlGOTIyMDIwNDJBQkYwMDBERkFFREY4RTNGNjA4NzkKKzoxMDA0MzAwMDA5REFGQTIyMDIwNDM0QkYwMTEyOEQ4MjhFODNGODAyOTcKKzoxMDA0NDAwMDA0NDEwOUEzRTNGMEQ4RkEyMjAyMDQ0Q0ZBRURGOEUzRTAKKzoxMDA0NTAwMEYyMDgwOURBRkEyMjAyMDQ1NkU2RkIwOEU2RkEwOEU2OTAKKzoxMDA0NjAwMEY5MDRGNjE4NzAwMTA2MjJFNkZGMDhFNkZFMDhFNkZEMkMKKzoxMDA0NzAwMDIyRUZGMEEzRUVGMEEzRURGMDIyRUJGMEEzRUFGMEEzNUQKKzoxMDA0ODAwMEU5RjAyMkUwRkZBM0UwRkVBM0UwRkQyMkUwRkJBM0UwMTEKKzoxMDA0OTAwMEZBQTNFMEY5MjIwMDAwMDAwMDAwMDAwMDA0RjkwMDVCNkMKKzoxMDA0QTAwMDA1NzMwMDI2MDU5QTAwMzMwQTBCMDA1QjBBNzcwMDYwOEIKKzoxMDA0QjAwMDE1NTIwMDVCMENGQjAwNUIwOUFCMDA1QjA5RTIwMDVCQzMKKzoxMDA0QzAwMDBEQzIwMDVCMEJGMzAwNUIwQTFFMDA1QjBBNTMwMDVCNkUKKzoxMDA0RDAwMDE3NEEwMDMzMTc2MDAwMzQxRTREMDA0MzFFRjAwMDQ0REQKKzoxMDA0RTAwMDIwNUQwMDQ0MjA0QjAwNDcxRjE3MDA0NzFGQkMwMDRERjQKKzoxMDA0RjAwMDIwMEQwMDRGMUYzOTAwNTgzMUY1MDA1QjdDQ0M3REZGOEIKKzoxMDA1MDAwMDEyMUNGRTIyNzQ5MDkwRkY5MUYwOTBGRkZDRTAyMEU3MTcKKzoxMDA1MTAwMDJEQzJBRkFFNTlBRjU4NzU1QTIwRTU1QTE0QzU1QTYwNkUKKzoxMDA1MjAwMDE5RTRGRTdGMDVFRTRGQ0UyNEZGQ0VDRjM0RkZDRjYwMUYKKzoxMDA1MzAwMDA3RTQ5MEZGOTJGMDgwRUQ4MEUwOEU1OThGNTgyMjEyRjAKKzoxMDA1NDAwMDA1MDE3RDA3N0NCNzEyMzIxMTdEMEY3QzZFMTIzMjJCQjQKKzoxMDA1NTAwMDc4OTc3QTA2RTRGNjA4REFGQzdBMDYxMjA1Q0Y3QzAzNkYKKzoxMDA1NjAwMDEyMEU1NzdDMDQxMjBFNTcxMjIxOEJFNEZFRkY3QzBGRjMKKzoxMDA1NzAwMDEyMzE5QUQyQTgyMjEyMzA4NUU0OTBGRDQwRjA5MEZGMEIKKzoxMDA1ODAwMEYwRTAzMEU0MDg3NDAxOTBGRDQxRjA4MDA1RTQ5MEZENTYKKzoxMDA1OTAwMDQxRjA3RDBBN0MwMDEyMjRCMTEyMzEwODIyMTIzMDg1MEMKKzoxMDA1QTAwMDkwRkQ0MUUwMTQ3MDBFOTBGRkYwRTA0NDEwRjA3QzAwRUMKKzoxMDA1QjAwMDEyMjU0QTgwMTk5MEZENDFFMDcwMEU5MEZGRjBFMDU0NDIKKzoxMDA1QzAwMEVGRjA3QzAwMTIyNTRBODAwNTdDMTcxMjI1NEExMjMxNzMKKzoxMDA1RDAwMDA4MjI5MEZGRjBFMDU0QUJGMDkwRkZGMEUwNDQyMEYwRjAKKzoxMDA1RTAwMDIyOEMzNzhEMzY3ODdDRURGNjA4RUNGNkVERkVFQ0ZEQ0UKKzoxMDA1RjAwMDdGMDE5MDAwMDUxMjAxRUM3ODdBRjY3ODdDRTZGRDA4MjAKKzoxMDA2MDAwMEU2RkNFREZFRUNGRDdGMDE5MDAwMDQxMjAxRUM1NDBGQkUKKzoxMDA2MTAwMEZDN0Q3QTEyMTc5RDc4N0FFNjcwMERBRDNBQUUzOUFGNEYKKzoxMDA2MjAwMDM4RTQxMjAzMEY3QzA4MjI5MEZGRjBFMDU0RkVGMDkwQjMKKzoxMDA2MzAwMEZGRjBFMDU0RkRGMDgwMUU3ODdDRTZGRDA4RTZGQ0VENUUKKzoxMDA2NDAwMEZFRUNGRDdGMDE5MDAwMDgxMjAyMEUyNUUwNDQwMTkwQUYKKzoxMDA2NTAwMEZGRjNGMDAyMDZEQjc4N0NFNkZEMDhFNkZDRURGRUVDM0QKKzoxMDA2NjAwMEZEN0YwMTkwMDAwNjEyMDIwRTU0RkU5MEZGRjNGMDgwMTEKKzoxMDA2NzAwMDJCNzg3Q0U2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwQUEKKzoxMDA2ODAwMDA4MTIwMjBFRkFFQjkwRkZGMUYwMTIwOENBNDAwREFEMEQKKzoxMDA2OTAwMDNBQUUzOUFGMzhFNDEyMDMwRjdDMTgyMjc4N0NFNkZEQkQKKzoxMDA2QTAwMDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwODEyMDIwRTkwQzIKKzoxMDA2QjAwMEZGRjFGMDEyMDhDQTQwMERBRDNBQUUzOUFGMzhFNDEyN0UKKzoxMDA2QzAwMDAzMEY3QzE4MjI3ODdDRTZGRDA4RTZGQ0VERkVFQ0ZEQ0QKKzoxMDA2RDAwMDdGMDE5MDAwMDYxMjAyMEU0NDAxOTBGRkYzRjA3ODdEMzYKKzoxMDA2RTAwMEU2MjQwM0Y2MThFNjM0MDBGNjc4N0FFNjI0RkU1MDA5OEMKKzoxMDA2RjAwMDkwRkZGMEUwNTRGREYwODAwNzkwRkZGMEUwNDQwMkYwM0UKKzoxMDA3MDAwMEU0OTBGRkYxRjA3ODdCNzYwMDc4N0FFNjI0RkZGQ0U0NTEKKzoxMDA3MTAwMDM0RkZGRDc4N0JFNjdGMDBGRUVDRDM5RUVGNjQ4MENENTYKKzoxMDA3MjAwMDY0ODA5RDQwMkYxMjA4QUY0MDBGNzg3QkU2QUQzQUFFNTMKKzoxMDA3MzAwMDM5QUYzODEyMDMwRjdDMTgyMjkwRkZGMkUwRkM3ODdDNkUKKzoxMDA3NDAwMDg2ODMwODg2ODJFQ0YwNzg3QjA2QTM3ODdDQTY4MzA4RjMKKzoxMDA3NTAwMEE2ODI4MEI1MTIwOEFGNDAwRjc4N0JFNkFEM0FBRTM5N0QKKzoxMDA3NjAwMEFGMzgxMjAzMEY3QzE4MjI5MEZGRjJFMEZDNzg3Qzg2RjEKKzoxMDA3NzAwMDgzMDg4NjgyRUNGMDc4N0FFNkFEM0FBRTM5QUYzODEyNkIKKzoxMDA3ODAwMDAzMEY3QzAwMjI4QzM3OEQzNjc4N0NFREY2MDhFQ0Y2NzIKKzoxMDA3OTAwMEVERkVFQ0ZEN0YwMTkwMDAwNTEyMDFFQzc4N0JGNjc4MTAKKzoxMDA3QTAwMDdDRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwNDEyMDYKKzoxMDA3QjAwMDAxRUM1NDBGRkM3RDdCMTIxNzlENzg3QkU2NzAwMzdDNjcKKzoxMDA3QzAwMDA4MjI5MEZGRjBFMDU0RkVGMDkwRkZGMEUwNTRGREYwQkUKKzoxMDA3RDAwMDgwMUI3ODdDRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwRDkKKzoxMDA3RTAwMDAwMDgxMjAyMEUyNUUwOTBGRkYzRjA4MDVCNzg3Q0U2QjMKKzoxMDA3RjAwMEZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA2MTIwMjBFMDYKKzoxMDA4MDAwMDU0RkU5MEZGRjNGMDgwMjE3ODdDRTZGRDA4RTZGQ0VERDUKKzoxMDA4MTAwMEZFRUNGRDdGMDE5MDAwMDgxMjAyMEVGQUVCOTBGRkYxNTIKKzoxMDA4MjAwMEYwMTIwOENBNDAwMzdDMTgyMjc4N0NFNkZEMDhFNkZDM0EKKzoxMDA4MzAwMEVERkVFQ0ZEN0YwMTkwMDAwODEyMDIwRTkwRkZGMUYwM0EKKzoxMDA4NDAwMDEyMDhDQTQwMDM3QzE4MjI3ODdERTYyNDBBRjYxOEU2Q0UKKzoxMDA4NTAwMDM0MDBGNjc4N0E3NjAwNzg3QkU2MjRGRkZDRTQzNEZGRjcKKzoxMDA4NjAwMEZENzg3QUU2N0YwMEZFRUNEMzlFRUY2NDgwQ0Q2NDgwNTUKKzoxMDA4NzAwMDlENDAyMTc4N0M4NjgzMDg4NjgyRTA5MEZGRjFGMDEyMEIKKzoxMDA4ODAwMDA4Q0E0MDAzN0MxODIyNzg3QTA2Nzg3RDA2RTYxODcwM0MKKzoxMDA4OTAwMDAxMDY4MEMzOTBGRkYwRTA0NDAxRjA3ODdDODY4MzA4NzUKKzoxMDA4QTAwMDg2ODJFMDkwRkZGMUYwMTIwOENBNDAwMzdDMTgyMjdDOTcKKzoxMDA4QjAwMDAwMjI5MEZGRjBFMDIwRTcxMjkwRkZGMEUwMzBFNTA5MjEKKzoxMDA4QzAwMDkwRkZGMEUwNDQyMEYwQzMyMjgwRTdEMzIyOTBGRkYwQjUKKzoxMDA4RDAwMEUwMjBFMzEyOTBGRkYwRTAzMEU1MDk5MEZGRjBFMDQ0MDMKKzoxMDA4RTAwMDIwRjBDMzIyODBFN0QzMjI4QzQyOEQ0MTdDMDBFRDU0NUUKKzoxMDA4RjAwMEYwRkRFQzcwMDNFRDY0MzA3MDA1NzUzRTAzODAwMzc1MDgKKzoxMDA5MDAwMDNFMDRBQzNFMTIwRjdDNzU4MzAwODU4MzQwRTU0MTU0NjQKKzoxMDA5MTAwMDBGRjUzRkU1NDA3MDA0RTUzRjY0MDM3MDM1RTUzRTI0ODQKKzoxMDA5MjAwMEZENzVGMDBBQTQyNDBBRjU4MkU0MzRGREY1ODNFMDMwNzUKKzoxMDA5MzAwMEU2MDUxMjEwNjc4MDE5RTUzRTI0OTdGOEM2NTRGQkY2QzkKKzoxMDA5NDAwMDc4QTNFNjI0MDVGNTgyMThFNjM0MDBGNTgzNzQwRkYwRTkKKzoxMDA5NTAwMDgwNTlFNTQwNzAwNEU1M0Y2NDA0NzA0OEU1M0UyNEZEOUQKKzoxMDA5NjAwMDc1RjAwQUE0MjQwQUY1ODJFNDM0RkRGNTgzRTAzMEU1NEQKKzoxMDA5NzAwMDA3QUM0MkFENDExMjFDOTNFNTQyMzBFMjE1NzhBN0U2ODAKKzoxMDA5ODAwMDMwRTAwRjc4QTdFNjMwRTEwOUU0RkYwNEZFN0MwNDEyQjIKKzoxMDA5OTAwMDMxOUE3OEEzRTYyNDA2RjU4MjE4RTYzNDAwRjU4Mzc0Q0MKKzoxMDA5QTAwMDBGRjA4MDA3RTRGQzdERUUxMjFDOTNDMjAzMjIxMjMwOEMKKzoxMDA5QjAwMDg1MTIwRjdDNzhBM0U2MjQwNkY1ODIxOEU2MzQwMEY1NEMKKzoxMDA5QzAwMDgzRTA5MEZENDBGMDc4QTNFNjI0MDVGNTgyMThFNjM0MzQKKzoxMDA5RDAwMDAwRjU4M0UwOTBGRDQxRjBDMjAzN0QwMjdDMDAxMjI0MEIKKzoxMDA5RTAwMEIxMTIzMTA4MjIxMjMwODU3ODhGRUNGNkVDMjQ5N0Y4OUEKKzoxMDA5RjAwMEU2MzBFMTA3N0MxMzEyMjU0QTgwMEY5MEZENDFFMEZEQUYKKzoxMDBBMDAwMDc4OEZFNkZDMTIxM0ZEMTIyNTRBMTIzMTA4MjIxMjMwQUIKKzoxMDBBMTAwMDg1Nzg4RkVDRjY3RDAwMTIwRjBCMTIyNTRBMTIzMTA4RjMKKzoxMDBBMjAwMDIyMTIzMDg1Nzg4RkVDRjZFQzI0OTdGOEU2MzBFMjA3NTYKKzoxMDBBMzAwMDdDMTMxMjI1NEE4MDFCNzg4RkU2MjQ5N0Y4RTYyMEUxODQKKzoxMDBBNDAwMDA3N0MxMjEyMjU0QTgwMEE3ODhGRTZGQzEyMTQyMTEyQzQKKzoxMDBBNTAwMDI1NEExMjMxMDgyMjEyMzA4NTc4OEZFQ0Y2RUMyNDk3NjMKKzoxMDBBNjAwMEY4RTYyMEUyMDc3QzExMTIyNTRBODAwQTc4OEZFNkZDMUUKKzoxMDBBNzAwMDEyMTUyMjEyMjU0QTEyMzEwODIyMTIzMDg1Nzg4RkVDODUKKzoxMDBBODAwMEY2MTIwRjdDNzhBM0U2MjQwOUY1ODIxOEU2MzQwMEY1MDcKKzoxMDBBOTAwMDgzRTA5MEZENDdGMDc4QTNFNjI0MEFGNTgyMThFNjM0NTcKKzoxMDBBQTAwMDAwRjU4M0UwOTBGRDQ4RjA3OEEzRTYyNDAzRjU4MjE4NzIKKzoxMDBBQjAwMEU2MzQwMEY1ODNFMEZDNzhBM0U2MjQwNEY1ODIxOEU2MkEKKzoxMDBBQzAwMDM0MDBGNTgzRTBGNTVDNzhBM0U2MjQwMkY1ODIxOEU2QUQKKzoxMDBBRDAwMDM0MDBGNTgzRTBGNTVEOEM1QkU0RUMzMzMzNTQwMTc4NEUKKzoxMDBBRTAwMDhGRjY2MDA4RTU1QzMwRTEwMzc4OEYwNjc4OEZFNjkwM0EKKzoxMDBBRjAwMEZENDlGMDc4QTFFNjI0MDJGNTgyMThFNjM0MDBGNTgzN0EKKzoxMDBCMDAwMEUwRkRBM0UwNTQwQ0ZDRUQ1NEU2OEM1RkY1NUVFNTVCODQKKzoxMDBCMTAwMDMwRTUwMzQzNUYwMUU1NUMyMEU1MEVFNTVCNTQ3RjcwNDMKKzoxMDBCMjAwMDA4RTU1QjIwRTcwMzQzNUYwMkU1NUIzMEUzMDM0MzVGRDcKKzoxMDBCMzAwMDEwRTU1QjMwRTIwMzQzNUYyMEU1NUI1NDAzNjAwMzQzNTEKKzoxMDBCNDAwMDVGNDBFNTVCMzBFMTAzNDM1RjgwRTU1QjMwRTQwMzQzRjYKKzoxMDBCNTAwMDVFMDFFNTVCMzBFNjAzNDM1RTA4RTU1QzIwRTQwRUU1RkMKKzoxMDBCNjAwMDVCNTQ3RjcwMDhFNTVCMjBFNzAzNDM1RTEwNTM1RkZCMzcKKzoxMDBCNzAwMDUzNUVGOUFENUVFNTVGOTBGRDQyQ0RGMEEzQ0RGMEU1QUIKKzoxMDBCODAwMDVEMzBFMzBERTU1RDU0MzBDNDU0MEY5MEZENDVGMDgwQjkKKzoxMDBCOTAwMDA1RTQ5MEZENDVGMEU1NUQ1NDAzOTBGRDQ0RjBFNTVEMEUKKzoxMDBCQTAwMDU0MDRDMzEzOTBGRDQ2RjA5MEZENDRFMDcwMEU3RDNENkIKKzoxMDBCQjAwMDdFRkQ3RjAxNzQwMTkwMDAwOTEyMDE0Mjc4QTNFNjI0QjIKKzoxMDBCQzAwMDA4RjU4MjE4RTYzNDAwRjU4M0UwN0MwMEZENzhBM0U2QTIKKzoxMDBCRDAwMDI0MDdGNTgyMThFNjM0MDBGNTgzRTA3RjAwNENGRUVGMzEKKzoxMDBCRTAwMDREOTBGRDQwRjBBM0NFRjBDRUMyMDM3RDBBN0MwMDEyRjIKKzoxMDBCRjAwMDI0QjExMjMxMDgyMjEyMzA4NTc4OEZFQ0Y2Nzg5NDc2ODEKKzoxMDBDMDAwMDAxMDg3NkZEMDg3NjQwNzg5MTc2MEM3ODk0MTIwNDY1OTgKKzoxMDBDMTAwMDEyMDIxNDc4OTJDQkY2Q0IwOEY2N0YwMEVGMjRFQjQwNUIKKzoxMDBDMjAwMDFGRTRFRjI1RTA5MDM0QkZGRDkzQ0QwNDkzNzg5MzY2RTUKKzoxMDBDMzAwMDcwMDNFRDE4NjY3MDA2Nzg5MTc2MDA4MDAzMEY4MERDRjMKKzoxMDBDNDAwMDc4OTBFRkY2Nzg5NDEyMDQ2NTkwMDAwMjEyMDIwRTc4MDQKKzoxMDBDNTAwMDkyQ0JGNkNCMDhGNjU0MDRDQjU0MDY0QjYwMDQ3ODkxNDMKKzoxMDBDNjAwMDc2MEI3ODkzRTYzMEUzMTM3ODk0MTIwNDY1OTAwMDA1RDAKKzoxMDBDNzAwMDEyMDFFQzI0RkI1MDA0Nzg5MTc2MEQ3ODkzRTY1NEMwNzEKKzoxMDBDODAwMDdEMDA2NEMwNEQ3MDA0Nzg5MTc2MEI3ODk0MTIwNDY1RjEKKzoxMDBDOTAwMDkwMDAwNDEyMDFFQzI0RkM1MDA0Nzg5MTc2MEY3ODk0QjMKKzoxMDBDQTAwMDEyMDQ2NTkwMDAwNjEyMDFFQzI0RkQ1MDA0Nzg5MTc2NDAKKzoxMDBDQjAwMDBFNzg5NDEyMDQ2NTkwMDAwOTEyMDFFQzI0RkQ1MDA0OTIKKzoxMDBDQzAwMDc4OTE3NjBBNzg5MUU2NzAyQTc4OEZFNkZDMTIwRjdDOEMKKzoxMDBDRDAwMDc4OTQxMjA0NjU3OEExRTZGOTc4QTBFNkZBN0IwMTc0QUQKKzoxMDBDRTAwMDBBNzgwMDEyMDMzRkMyMDM3ODhGRTZGQzEyMTEyMzc4QzIKKzoxMDBDRjAwMDkxRUNGNjc4OTFFNkZDMTIyNTRBMTIzMTA4MjIxMjMwNjYKKzoxMDBEMDAwMDg1Nzg4RkVDRjYxMjBGN0M3ODhGRTYyNEZENzVGMDBBNUIKKzoxMDBEMTAwMEE0MjQxQ0Y1ODJFNDM0RkRGNTgzQUM4MkFEODM3OEEwNzUKKzoxMDBEMjAwMDg2ODMwODg2ODJFQ0Y5RURGQTdCMEE3ODAxMTIwM0E3MjQKKzoxMDBEMzAwMEMyMDM3ODhGRTZGQzEyMTEyMzEyMzEwODIyOEQyQjhDMEUKKzoxMDBENDAwMDJBRUQ2MDQwNzUyNzAxNzUyOTQ4NzUyOEZGRTUyQTI0OUEKKzoxMDBENTAwMEZERkNFNDM0RkZGREVDN0MwMzI1RTBDRDMzQ0REQ0Y5NzQKKzoxMDBENjAwMEZDRTUyOTJDRjUyOUU1MjgzREY1MjhBRDI5QUUyOEFGNkQKKzoxMDBENzAwMDI3NzQ4MDkwMDAwNjEyMDMxNzc0ODA5MDAwMDIxMjAzRkIKKzoxMDBEODAwMDE3MTIwRkQzRTUyQjE0NjAzQjc1MjcwMTc1MjkwODc1RTEKKzoxMDBEOTAwMDI4RkZFNTJBMjRGREZDRTQzNEZGRkRFQzdDMDMyNUUwN0MKKzoxMDBEQTAwMENEMzNDRERDRjlGQ0U1MjkyQ0Y1MjlFNTI4M0RGNTI4RTYKKzoxMDBEQjAwMEFEMjlBRTI4QUYyN0U0OTAwMDA2MTIwMzE3RTQ5MDAwOTcKKzoxMDBEQzAwMDAyMTIwMzE3MjIxMjMwODU3ODhGRUNGNkVDMjQ5N0Y4ODQKKzoxMDBERDAwMEU2MzBFMjA5Nzg4RkU2RkMxMjE1MjJEMjAwNzg4RkU2MjEKKzoxMDBERTAwMEZDMTIwRjdDNzg5MDc2MDA5MEZENDFFMDMwRTcwNDc4QUIKKzoxMDBERjAwMDkwNzYwMTc4OTBFNkZENzg4RkU2RkMxMjBEM0FDMjAzRkEKKzoxMDBFMDAwMDMwMDAwNzc4OEZFNkZDMTIxNDIxN0MwMDEyMjU0QTEyNkMKKzoxMDBFMTAwMDMxMDgyMjc4QTNFNjI0MDRGNTgyMThFNjM0MDBGNTgzMkQKKzoxMDBFMjAwMEUwNDQwMUYwNzhBM0U2MjQwNEY1ODIxOEU2MzQwMEY1RTYKKzoxMDBFMzAwMDgzRTAzMEUwMDI4MEVENzhBM0U2MjQwQkY1ODIxOEU2MkIKKzoxMDBFNDAwMDM0MDBGNTgzRTA1NEY4RjA3OEEzRTYyNDAyRjU4MjE4MjQKKzoxMDBFNTAwMEU2MzQwMEY1ODNFMDQ0ODBGMDIyQzIwMzhDNTgxMjBGODAKKzoxMDBFNjAwMDdDNzhBMDg2ODMwODg2ODI3OUVFN0EzNDdCMEE3ODAxQzIKKzoxMDBFNzAwMDEyMDNGNTEyMEUxMEFDNTg3RDAyMTIwRDNBQzIwM0FDRUIKKzoxMDBFODAwMDU4MTIxMTIzMjI4RDUzOEU1MjhGNTE4QzUwMTIwRjdDODkKKzoxMDBFOTAwMDc1NEYwMDc4QTNFNjI0MDVGNTgyMThFNjM0MDBGNTgzNDMKKzoxMDBFQTAwMEUwMjBFNDE2RTU0RjI0RjY0MDEwMDU0RkMyMDM3QzE4RkQKKzoxMDBFQjAwMDEyMzI0OEFDNTAxMjBGN0M4MEQ5NzhBM0U2MjQwNUY1OTUKKzoxMDBFQzAwMDgyMThFNjM0MDBGNTgzRTAyMEU0MDVDMjAzN0MwMjIyQTgKKzoxMDBFRDAwMDc4QTNFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTA1NDBGODQKKzoxMDBFRTAwMDYwMTY3OEEzRTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwNjEKKzoxMDBFRjAwMDU0MEZGMEMyMDM3QzAxMjI3OEEyODY4MzA4ODY4MkUwMjgKKzoxMDBGMDAwMEFENTNBRTUyQUY1MTEyMDMwRkMyMDM3QzAwMjI4RDMxOUMKKzoxMDBGMTAwMDhDMzAxMjE1MjJFNTMxNjAyMEU1MzBCNDAzMEM3QzAxRTEKKzoxMDBGMjAwMDEyMjQ3QzdDODExMjI0N0M4MDBGRTUzMEI0MDQwQTdDN0UKKzoxMDBGMzAwMDAyMTIyNDdDN0M4MjEyMjQ3Q0FDMzAxMjBGN0NFNTMxQkUKKzoxMDBGNDAwMDYwMUE3OEE0ODY4MzA4ODY4MkUwNTRFN0YwQTNBM0EzRkUKKzoxMDBGNTAwMEEzRTA1NEU3RjBBQzMwN0QwMjEyMEQzQTc4QTA4NjgzMEUKKzoxMDBGNjAwMDA4ODY4Mjc5Rjg3QTM0N0IwQTc4MDExMjAzRjVDMjAzODUKKzoxMDBGNzAwMEU1MzAyNDk3RjhDNjU0RkRGNkFDMzAxMjExMjMyMjhDQ0MKKzoxMDBGODAwMDI2MzAwMzA1MTIzMUU3ODBGODdDMEExMjMwRkFEMjAzQ0EKKzoxMDBGOTAwMEU1MjYyNEZENzg5REY2NzAwOTc4QTQ3NkZGMDg3NkUwQjIKKzoxMDBGQTAwMDgwMDc3OEE0NzZGRjA4NzZFMjc4OURFNjc1RjAxMEE0QjUKKzoxMDBGQjAwMEFERjBGQzI0QTA3OEEzRjZFRDM0RkYxOEY2Nzg5REU2OUEKKzoxMDBGQzAwMDc1RjAwQUE0MjQwOEZDRTQzNEZERkQ3OEEwRURGNjA4RDEKKzoxMDBGRDAwMEVDRjYxMjMxOTMyMjc4QTNFNjI0MDJGNTgyMThFNjM0NjcKKzoxMDBGRTAwMDAwRjU4M0UwMzBFNzIyNzhBM0U2MjQwMkY1ODIxOEU2RDQKKzoxMDBGRjAwMDM0MDBGNTgzRTA1NDdGRjA3OEEzRTYyNDAyRjU4MjE4RUMKKzoxMDEwMDAwMEU2MzQwMEY1ODNFMDQ0ODBGMDIyNzhBNDg2ODMwODg2RTUKKzoxMDEwMTAwMDgyRTA1NDdGRjBBRDgzRTU4MjI0MDRGQ0U0M0Q4QzgyQzEKKzoxMDEwMjAwMEY1ODNFMDU0N0ZGMDc4QTNFNjI0MEJGNTgyMThFNjM0Q0MKKzoxMDEwMzAwMDAwRjU4M0UwNTRGOEYwNzhBNUU2MjQwMUY1ODIxOEU2N0YKKzoxMDEwNDAwMDM0MDBGNTgzRTA0NDAzRjA3OEE1RTYyNDA1RjU4MjE4MjIKKzoxMDEwNTAwMEU2MzQwMEY1ODNFMDQ0MDNGMDc4QTNFNjI0MDVGNTgyNDYKKzoxMDEwNjAwMDE4RTYzNDAwRjU4Mzc0MEZGMDIyNzhBNDg2ODMwODg2OEUKKzoxMDEwNzAwMDgyRTA1NDNGRjBBRDgzRTU4MjI0MDRGQ0U0M0Q4QzgyQTEKKzoxMDEwODAwMEY1ODNFMDU0M0ZGMDc4OURFNjI0OUVGOEU2RkM3OEE1RDEKKzoxMDEwOTAwMEU2MjQwMUY1ODIxOEU2MzQwMEY1ODNFQ0YwNzg5REU2NEQKKzoxMDEwQTAwMDI0OUVGOEU2RkM3OEE1RTYyNDA1RjU4MjE4RTYzNDAwQ0YKKzoxMDEwQjAwMEY1ODNFQ0YwNzhBM0U2MjQwQkY1ODIxOEU2MzQwMEY1MEUKKzoxMDEwQzAwMDgzRTA1NEZCNDQwMkY1MjY3OEExRTYyNDAyRjU4MjE4NTkKKzoxMDEwRDAwMEU2MzQwMEY1ODNFMDMwRTUwMzQzMjYwMTc4QTNFNjI0RjcKKzoxMDEwRTAwMDA1RjU4MjE4RTYzNDAwRjU4M0UwMzBFMDAzMTIwRkQzRjMKKzoxMDEwRjAwMEU1MjZGQzc4QTNFNjI0MEJGNTgyMThFNjM0MDBGNTgzOTgKKzoxMDExMDAwMEVDRjA3OEEzRTYyNDA1RjU4MjE4RTYzNDAwRjU4Mzc0NDQKKzoxMDExMTAwMDBGRjA3OEE0ODY4MzA4ODY4MkUwNDQ4MEYwQTNBM0EzMUUKKzoxMDExMjAwMEEzRTA0NDgwRjAyMjhDMkExMjBGN0M3OEExRTYyNDA4RTgKKzoxMDExMzAwMEY1ODIxOEU2MzQwMEY1ODNFMEZDNzhBM0U2MjQwQUY1OEUKKzoxMDExNDAwMDgyMThFNjM0MDBGNTgzRUNGMDc4QTFFNjI0MDdGNTgyRjYKKzoxMDExNTAwMDE4RTYzNDAwRjU4M0UwRkM3OEEzRTYyNDA5RjU4MjE4NEMKKzoxMDExNjAwMEU2MzQwMEY1ODNFQ0YwNzhBMDg2ODMwODg2ODJFMEZEMDMKKzoxMDExNzAwMEEzRTBGQ0VERkU3OEEzRTYyNDA4RjU4MjE4RTYzNDAwMkYKKzoxMDExODAwMEY1ODNFRUYwRUNGRTc4QTNFNjI0MDdGNTgyMThFNjM0NEEKKzoxMDExOTAwMDAwRjU4M0VFRjA4QzI5OEQyOEMzRUM5NDAyRUQ5NDA2QzMKKzoxMDExQTAwMDQwMDU3NTI3N0M4MDMzRDNFNTI5OTQ4MUU1Mjg5NDAxOTcKKzoxMDExQjAwMDQwMDU3NTI3M0M4MDIzRDNFNTI5OTRDMEU1Mjg5NDAwOTkKKzoxMDExQzAwMDQwMDU3NTI3MTg4MDEzRDNFNTI5OTQzMEU1Mjg5NDAwNEQKKzoxMDExRDAwMDQwMDU3NTI3MEM4MDAzNzUyNzA4QUYyN0U0RUY1NDdDODIKKzoxMDExRTAwMDQ0ODNGRjhGMjdFNTI3RkM3OEE1RTYyNDAxRjU4MjE4QzQKKzoxMDExRjAwMEU2MzQwMEY1ODNFQ0YwRTUyN0ZDNzhBNUU2MjQwNUY1NTgKKzoxMDEyMDAwMDgyMThFNjM0MDBGNTgzRUNGMEU1MjdGQzc4OURFNjI0QUYKKzoxMDEyMTAwMDlFRjhFQ0Y2NzhBM0U2MjQwMkY1ODIxOEU2MzQwMEY1OTEKKzoxMDEyMjAwMDgzRTBGNTI3NzhBMUU2MjQwMkY1ODIxOEU2MzQwMEY1N0MKKzoxMDEyMzAwMDgzQTNFMDMwRTMxNzUzMjdDNzc4QTFFNjI0MDVGNTgyOUUKKzoxMDEyNDAwMDE4RTYzNDAwRjU4M0UwOTAzNEU5OTM0MjI3NzhBMUU2NkMKKzoxMDEyNTAwMDI0MDJGNTgyMThFNjM0MDBGNTgzRTAzMEU3MDU0MzI3RTEKKzoxMDEyNjAwMDQwODAwMzUzMjdCRjUzMjdGQjc4QTFFNjI0MDZGNTgyNkQKKzoxMDEyNzAwMDE4RTYzNDAwRjU4M0UwNjAwMzQzMjcwNDUzMjdGQzc4MjUKKzoxMDEyODAwMEExRTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwNDIyNzQzMDIKKzoxMDEyOTAwMDI3ODBFNTI3RkM3OEEzRTYyNDAyRjU4MjE4RTYzNDAwQ0YKKzoxMDEyQTAwMEY1ODNFQ0YwNzhBM0U2MjQwNEY1ODIxOEU2MzQwMEY1MjMKKzoxMDEyQjAwMDgzRTBGNTI3NzhBMUU2MjQwMkY1ODIxOEU2MzQwMEY1RUMKKzoxMDEyQzAwMDgzQTNFMDMwRTEwNTUzMjdERjgwMDM0MzI3MjA3OEExODMKKzoxMDEyRDAwMEU2MjQwMkY1ODIxOEU2MzQwMEY1ODNFMDMwRTQwNTUzOTUKKzoxMDEyRTAwMDI3RUY4MDAzNDMyNzEwNzhBMUU2MjQwOUY1ODIxOEU2NEEKKzoxMDEyRjAwMDM0MDBGNTgzRTBCNDAyMDM0MzI3MDJFNTI3RkM3OEEzMUEKKzoxMDEzMDAwMEU2MjQwNEY1ODIxOEU2MzQwMEY1ODNFQ0YwNzhBM0U2RDEKKzoxMDEzMTAwMDI0MDNGNTgyMThFNjM0MDBGNTgzRTBGNTI3NzhBMUU2OEEKKzoxMDEzMjAwMDI0MDlGNTgyMThFNjM0MDBGNTgzRTA3MDA1NTMyNzdGMjEKKzoxMDEzMzAwMDgwMDM0MzI3ODA3OEExRTYyNDAyRjU4MjE4RTYzNDAwNzIKKzoxMDEzNDAwMEY1ODNBM0UwMzBFMDA1NDMyNzIwODAwMzUzMjdERjc4QUYKKzoxMDEzNTAwMEExRTYyNDAyRjU4MjE4RTYzNDAwRjU4M0UwMzBFMzA1QzcKKzoxMDEzNjAwMDQzMjc0MDgwMDM1MzI3QkY3OEExRTYyNDAyRjU4MjE4NjMKKzoxMDEzNzAwMEU2MzQwMEY1ODNFMDMwRTAwNTQzMjcxMDgwMDM1MzI3NkYKKzoxMDEzODAwMEVGNzhBMUU2MjQwMkY1ODIxOEU2MzQwMEY1ODNBM0UwQTUKKzoxMDEzOTAwMDMwRTQwNTQzMjcwODgwMDM1MzI3Rjc3OEExRTYyNDAyQTkKKzoxMDEzQTAwMEY1ODIxOEU2MzQwMEY1ODNBM0UwMzBFNTA1NDMyNzA0MTEKKzoxMDEzQjAwMDgwMDM1MzI3RkI3OEExRTYyNDAyRjU4MjE4RTYzNDAwNjcKKzoxMDEzQzAwMEY1ODNBM0UwMzBFNjA1NDMyNzAxODAwMzUzMjdGRTc4MjkKKzoxMDEzRDAwMEExRTYyNDAyRjU4MjE4RTYzNDAwRjU4M0EzRTAzMEU3QTUKKzoxMDEzRTAwMDA1NDMyNzAyODAwMzUzMjdGREU1MjdGQzc4QTNFNjI0NjUKKzoxMDEzRjAwMDAzRjU4MjE4RTYzNDAwRjU4M0VDRjBDMjAzN0MwMDIyOEEKKzoxMDE0MDAwMDhEMjc4QzI2RUQ1NDAzMTQ2MDAzN0MxMDIyRTUyNzU0QUQKKzoxMDE0MTAwMDdDMjRGQzQwMDM3QzBCMjJFNTI2MjQ5N0Y4QzY0NDAyN0EKKzoxMDE0MjAwMEY2N0MwMDIyOEMzMDEyMEY3Q0U1MzAyNDk3RjhFNjIwMDEKKzoxMDE0MzAwMEUyNEZBQzMwN0QwMjEyMEQzQUU1MzAyNEZFNDQyOEZDMjgKKzoxMDE0NDAwMDc4QTQ4NjgzMDg4NjgyRUNGMEFGODNFNTgyMjQwNEZFQ0MKKzoxMDE0NTAwMEU0M0ZGRkVDOEU4MjhGODNGMDdDMDM4QzJDRTUyQ0ZDMjgKKzoxMDE0NjAwMDc4QTVFNjI0MDFGNTgyMThFNjM0MDBGNTgzRUNGMEU1NzIKKzoxMDE0NzAwMDJDRkM3OEE1RTYyNDA1RjU4MjE4RTYzNDAwRjU4M0VDMEIKKzoxMDE0ODAwMEYwNzUyRDAxNzUyRjQ4NzUyRUZGRTUzMDI0RkRGQ0U0MjUKKzoxMDE0OTAwMDM0RkZGREVDN0MwMzI1RTBDRDMzQ0REQ0Y5RkNFNTJGRkEKKzoxMDE0QTAwMDJDRjUyRkU1MkUzREY1MkU3OEE1RTYyNDA0RjU4MjE4QkYKKzoxMDE0QjAwMEU2MzQwMEY1ODNFMDU0RTdGNTJDQUQyRkFFMkVBRjJEQ0EKKzoxMDE0QzAwMEU0OTAwMDAyMTIwMzE3RTQ5MDAwMDYxMjAzMTcxMjAxQzEKKzoxMDE0RDAwMEU2MzBFNTAzNDMyQzEwRTUyQ0ZDNzhBNUU2MjQwNEY1NjIKKzoxMDE0RTAwMDgyMThFNjM0MDBGNTgzRUNGMDEyMTA2Nzc4QTNFNjI0NDYKKzoxMDE0RjAwMDA2RjU4MjE4RTYzNDAwRjU4M0UwQzIwM0ZDRTUzMDI0RUIKKzoxMDE1MDAwMDk3RjhDNjQ0MDRGNjhDMkNFNTMwNTQwRkM0NTRGMDdFOTIKKzoxMDE1MTAwMDAwRkZFRUVGNDQwNDdEMDBGRkVDNEVGQ0VENEZGRDEyQUEKKzoxMDE1MjAwMDFDRkU3QzAwMjI4QzJGMTIwRjdDMTIxMDA3NzhBNDg2RTAKKzoxMDE1MzAwMDgzMDg4NjgyRTA1NDA4RjBBM0EzQTNBM0UwNTQwOEYwMzQKKzoxMDE1NDAwMEFDMkY3RDAyMTIwRDNBQzIwM0U1MkYyNDk3RjhDNjU0NDIKKzoxMDE1NTAwMEZCRjY3QzAwMjIxMjMwODU3ODkwRUNGNkVDMjQ5N0Y4QUMKKzoxMDE1NjAwMEU2MzBFMTBBN0QwMDdDMTMxMjI0QjExMjMxMDg3ODkwMzQKKzoxMDE1NzAwMEU2MjQ5N0Y4QzY0NDAxRjY3ODkwRTZGQzEyMEY3Qzc4RDIKKzoxMDE1ODAwMDkwRTYyNEZENzVGMDBBQTQyNDFDRjU4MkU0MzRGREY1RjAKKzoxMDE1OTAwMDgzNzhBMEU2RkEwOEU2Rjk3QjBBNzgwMTEyMDNBNzc4QjcKKzoxMDE1QTAwMEEwODY4MzA4ODY4Mjc5Rjg3QTM0N0IwQTc4MDExMjAzNTAKKzoxMDE1QjAwMEY1MTIwRkQzQzIwMzc4OTBFNkZDMTIxMTIzNzg4RkVDNUEKKzoxMDE1QzAwMEY2RUM2MDBBN0QwMDdDMDgxMjI0QjExMjMxMDg3ODkwOTQKKzoxMDE1RDAwMEU2RkMxMjBGN0M3OEEzRTYyNDA0RjU4MjE4RTYzNDAwQkEKKzoxMDE1RTAwMEY1ODNFMDQ0MTA1NERGRkM3OEEzRTYyNDA0RjU4MjE4NjgKKzoxMDE1RjAwMEU2MzQwMEY1ODNFQ0YwNzg4RkVDRjZDMjAzN0NDODEyNzkKKzoxMDE2MDAwMDMyNDg3ODkwRTZGQzEyMEY3Qzc4QTNFNjI0MDRGNTgyMzkKKzoxMDE2MTAwMDE4RTYzNDAwRjU4M0UwNTRFRkYwQzIwMzdDQzgxMjMyQzAKKzoxMDE2MjAwMDQ4Nzg5MEU2RkMxMjBGN0M3OEEzRTYyNDA0RjU4MjE4MzMKKzoxMDE2MzAwMEU2MzQwMEY1ODNFMDQ0MTBGMEMyMDM3Q0M4MTIzMjQ4NUYKKzoxMDE2NDAwMDc4OTBFNkZDMTIwRjdDNzhBM0U2MjQwNEY1ODIxOEU2NzUKKzoxMDE2NTAwMDM0MDBGNTgzRTA0NDIwRjBDMjAzN0NGMDEyMzI0ODc4NzUKKzoxMDE2NjAwMDkwRTZGQzEyMEY3Qzc4QTNFNjI0MDVGNTgyMThFNjM0OTgKKzoxMDE2NzAwMDAwRjU4M0UwMzBFNDE1QzIwMzc4OTBFNjQ0MTA3RjAwNjMKKzoxMDE2ODAwMEZFN0MwNzEyMzE5QTEyMzEwODAyMTc0OTc4QTNFNjI0MkEKKzoxMDE2OTAwMDA0RjU4MjE4RTYzNDAwRjU4M0UwNTRDRkYwQzIwMzdDRjEKKzoxMDE2QTAwMEM4MTIzMjQ4Nzg5MEU2RkMxMjBGN0M3OEEzRTYyNDA0MzYKKzoxMDE2QjAwMEY1ODIxOEU2MzQwMEY1ODNFMDQ0MzBGMEMyMDM3Q0YwOTQKKzoxMDE2QzAwMDEyMzI0ODc4OTBFNkZDMTIwRjdDNzhBM0U2MjQwNUY1RTgKKzoxMDE2RDAwMDgyMThFNjM0MDBGNTgzRTAzMEU0MTRDMjAzNzg5MEU2MjMKKzoxMDE2RTAwMDQ0MTA3RjAwRkU3QzA3MTIzMTlBMTIzMTA4ODA1RDc4MjkKKzoxMDE2RjAwMEEzRTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwNTRFRkYwMDUKKzoxMDE3MDAwMDc4QTNFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTA1NERGN0MKKzoxMDE3MTAwMEYwNzg5MEU2MjRGRDc1RjAwQUE0MjQxQ0Y1ODJFNDM0RTgKKzoxMDE3MjAwMEZERjU4M0FDODJBRDgzNzhBMDg2ODMwODg2ODJFQ0Y5RDAKKzoxMDE3MzAwMEVERkE3QjBBNzgwMTEyMDNBN0MyMDM3ODkwRTZGQzEyNDcKKzoxMDE3NDAwMDExMjM3RDAwN0MwQjEyMjRCMTEyMzEwODIyMTIzMDg1NDYKKzoxMDE3NTAwMDkwRkY5MUUwOTBGRDQxRjA3RDAyN0MwMDEyMjRCMTEyRDcKKzoxMDE3NjAwMDMxMDgyMjEyMzA4NTkwRkQ0MEUwRjRGQzkwRkY5MUUwQkEKKzoxMDE3NzAwMDVDRjUzMzkwRkQ0MUUwRkM5MEZENDBFMDVDNDIzM0U1RDgKKzoxMDE3ODAwMDMzOTBGRjkxRjA3QzAwMTIyNTRBMTIzMTA4MjI3NDNDRkMKKzoxMDE3OTAwMDkwRkJFOEYwNzQzRTkwRkJFOEYwRTQ5MEZEMzBGMDIyMUUKKzoxMDE3QTAwMDhEMzU4QzM0RUNCNDAxMDI4MDAzRDM0MDAyODAyOEI0MjAKKzoxMDE3QjAwMDAyMDI4MDAzRDM0MDA4QTgzNUM2MjVFMEY2ODAxOEI0OUQKKzoxMDE3QzAwMDA0MDI4MDAzRDM0MDBBQTgzNUM2MjVFMDI1RTBGNjgwNTAKKzoxMDE3RDAwMDA2QTgzNTc2MDA4MDAwMjI4QzNDOEQzQkVERkVFQ0ZEQUEKKzoxMDE3RTAwMDdGMDE3NTYwMDY3NTYxMDA5MEZEMzExMjA0NkUxMjAxNzMKKzoxMDE3RjAwMEU2QjQ4MDAyODAwNkQzNTAwMzAyMTg5RTkwRkQzMTEyOTkKKzoxMDE4MDAwMDA0ODA5MDAwMDMxMjAxRUM1NEYwQjQzMDAyODAwM0QzNDIKKzoxMDE4MTAwMDQwNUY5MEZEMzExMjA0ODA5MDAwMDgxMjAyMEVGQUZEMjQKKzoxMDE4MjAwMEVCRkU3RjAxOTBGRDM0MTIwNDZFRUVDRDkwMzUwMkZDOEMKKzoxMDE4MzAwMEU0OTNGRjc0MDE5M0ZFRjlFRkZBN0IwMUVBRkZFOUZFRkUKKzoxMDE4NDAwMEVDQzM5RUVEOUY0MDI1OTAzNTA0RTQ5M0ZENzQwMTkzMTUKKzoxMDE4NTAwMEZDRURGRUVDRkQ3RjAxRUVDREZDOTBGRDM2RTBEMzlDNkYKKzoxMDE4NjAwMDkwRkQzNUUwOUQ1MDA1NzU2MDgwODAzMzEyMTlCQzgwNzUKKzoxMDE4NzAwMDJFQjQ2MDAyODAwM0QzNDAwQkFDM0NBRDNCMTIwNzgyMTgKKzoxMDE4ODAwMDhDNjA4MDFCQjQxMDAzQjM0MDEwQzNCNDIwMDNCMzQwN0EKKzoxMDE4OTAwMDA5QzNCNDQwMDI4MDAzRDM0MDAwNzU2MDgxODAwMDgwOUEKKzoxMDE4QTAwMDc1QjQ4MTAyODAwM0QzNDA2QjkwRkQzMTEyMDQ4MDkwQTcKKzoxMDE4QjAwMDAwMDMxMjAxRUM1NEYwQjQzMDAyODAwM0QzNDAxRDkwQjkKKzoxMDE4QzAwMEZEMzExMjA0ODA5MDAwMDgxMjAyMEVGQUZERUJGRTdGM0IKKzoxMDE4RDAwMDAxOTBGRDM3MTIwNDZFMTIxOTI2ODAzNkI0NjAwMjgwMjIKKzoxMDE4RTAwMDAzRDM0MDEzNzUzQTYxRTRGNTM5RjUzOEFDM0NBRDNCQjAKKzoxMDE4RjAwMDEyMDVERThDNjA4MDFCQjQxMDAzQjM0MDEwQzNCNDIwMEIKKzoxMDE5MDAwMDAzQjM0MDA5QzNCNDQwMDI4MDAzRDM0MDAwNzU2MDgxMzMKKzoxMDE5MTAwMDgwMDA4MDAyODAwMEU1NjBGQzkwRkQzMTEyMDQ4MEVDQzQKKzoxMDE5MjAwMDkwMDAwMjEyMDMxN0FDNjEyMjkwRkQzMTEyMDQ4MDkwRTYKKzoxMDE5MzAwMDAwMDQxMjAxRUM2MDA0NzQwMTgwMDFFNEEyRTA5MjAxNTEKKzoxMDE5NDAwMDkwRkQzMTEyMDQ4MEVEMjQwM0ZENTAwMTBFOTBGRDM0MTIKKzoxMDE5NTAwMDEyMDQ2RTkwRkQzMTEyMDQ4MDkwMDAwNTEyMDFFQ0Y1MjYKKzoxMDE5NjAwMDYxOTAwMDA0MTIwMUVDNTQwRkZDN0Q2MTEyMTc5REU1OUIKKzoxMDE5NzAwMDYxNzAwNDc1NjAwODIyNzU2MDAwNzg3RTc2MDA3ODdFNUMKKzoxMDE5ODAwMEU2QzM5NTYxNTAzODkwRkQzNzEyMDQ4MDEyMDFFNkZDRTEKKzoxMDE5OTAwMDkwRkQzNDEyMDQ4MEVDMTIwMzBGMzAwMTBFOTBGRDM5REIKKzoxMDE5QTAwMEUwMDRGMDkwRkQzODcwMDNFMDA0RjA3ODdFMDY5MEZEQ0UKKzoxMDE5QjAwMDM2RTAwNEYwOTBGRDM1NzAwM0UwMDRGMDgwQzAyMjkwMjIKKzoxMDE5QzAwMEZEMzJFMEZEQTNFMEZDRURGRUVDRkQ3RjAxRUQyNDBBMUQKKzoxMDE5RDAwMEZENTAwMTBFOTBGRDNBMTIwNDZFOTBGRDMxMTIwNDgwMEMKKzoxMDE5RTAwMDkwMDAwNDEyMDFFQzU0MEZCNDAxMDI4MDAzRDM0MDE3OUQKKzoxMDE5RjAwMDkwRkQzQTEyMDQ4MDBERUQ3MDAxMEU5MEZEMzcxMjA0MzcKKzoxMDFBMDAwMDZFNzg4Mjc2MDE4MDRFQjQwMjAyODAwM0QzNDAxOTkwMzIKKzoxMDFBMTAwMEZEM0ExMjA0ODBFRDI0MDJGRDUwMDEwRTkwRkQzNzEyQjQKKzoxMDFBMjAwMDA0NkU3ODgyNzYwMjgwMkRCNDA0MDI4MDAzRDM0MDE5QkMKKzoxMDFBMzAwMDkwRkQzQTEyMDQ4MEVEMjQwNEZENTAwMTBFOTBGRDM3MTQKKzoxMDFBNDAwMDEyMDQ2RTc4ODI3NjA0ODAwQ0I0MDAwMjgwMDNEMzQwQzYKKzoxMDFBNTAwMDAwNzU2MDA4MjI5MEZEMzExMjA0ODA5MDAwMDUxMjAxOEIKKzoxMDFBNjAwMEVDRjU2MTc4N0Y3NjAwNzg3RkU2QzM5NTYxNDAwMzAyRUMKKzoxMDFBNzAwMDFCMjQ3ODgwNzYwMDc4ODBFNkMzNzg4Mjk2NTA3NjkwMzIKKzoxMDFBODAwMEZEMzQxMjA0ODAxMjAxRTZGQzkwRkQzQTEyMDQ4OTEyMjIKKzoxMDFBOTAwMDAxRTBGNDVDRkMxMjAxRTBGODkwRkQzNzEyMDQ4MEU4RUMKKzoxMDFBQTAwMEMwRTAxMjAxRTZDOEQwRTBDODU4NENGQzkwRkQzNDEyRUEKKzoxMDFBQjAwMDA0ODBFQzEyMDMwRjc4ODFFQ0Y2OTBGRDM5RTAwNEYwMUQKKzoxMDFBQzAwMDkwRkQzODcwMDNFMDA0RjAwOUU5NzAwMTBBOTBGRDNBRDYKKzoxMDFBRDAwMDEyMDQ3NzkwRkQzMTEyMDQ4MDkwMDAwNDEyMDFFQzMwNjIKKzoxMDFBRTAwMEU0MEU5MEZEMzZFMDA0RjA5MEZEMzU3MDAzRTAwNEYwNjQKKzoxMDFBRjAwMDc4ODAwNjgwODE3ODgyRTZGREU0RkVGRkVFQ0RGQzkwRTIKKzoxMDFCMDAwMEZEMzlFMDJDRjA5MEZEMzhFMDNERjA3ODgyRTZGREU0MTAKKzoxMDFCMTAwMEZFRkZFRUNERkM5MEZEM0NFMDJDRjA5MEZEM0JFMDNENjcKKzoxMDFCMjAwMEYwNzg3RjA2MDIxQTY0NzU2MDAwMjJFNTNEMDUzRDA0RTkKKzoxMDFCMzAwMDcwMDJCMkIwMjJDMEUwQzBGMEMwODJDMDgzQzBEMEU4NjIKKzoxMDFCNDAwMEMwRTBFOUMwRTBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwMUUKKzoxMDFCNTAwMEUwRUVDMEUwRUZDMEUwOTBGRjkyRTAxMjAxQjcxQjgwMjIKKzoxMDFCNjAwMDMwMUI4MDMyMUI4RjM4MUJBMTNBMUJCMzNFMUJDQjQ0NkEKKzoxMDFCNzAwMDFCQkY0NjFCRDc1MDFDMTk1MjFCRjg1NDFDM0E1NjAwNjkKKzoxMDFCODAwMDAwMUM1QjkwRkY5MkUwN0YwMEZFN0MwMTEyMzE5QTAyMDQKKzoxMDFCOTAwMDFDNkJFNEZGMDRGRTdDMDMxMjMxOUE3NDIwOTBGRkZFNUMKKzoxMDFCQTAwMEYwMDIxQzZCRTRGRjA0RkU3QzAyMTIzMTlBNzQ0MDkwMzgKKzoxMDFCQjAwMEZGRkVGMDAyMUM2QkU0RkYwNEZFN0MwNDEyMzE5QTAyNkIKKzoxMDFCQzAwMDFDNkJFNEZGMDRGRTdDMDUxMjMxOUEwMjFDNkJFNEZGREYKKzoxMDFCRDAwMDA0RkU3QzA2MTIzMTlBMDIxQzZCOTBGRkE1RTA3RDAwOEEKKzoxMDFCRTAwMDkwRkQwMENERjBBM0NERjA5MEZEMDFFMEZDRjU4MzkwRDkKKzoxMDFCRjAwMEZEMDBFMDQ0MzNGRDEyMUNGRTgwNzM5MEZGQjVFMDdERDQKKzoxMDFDMDAwMDAwOTBGRDAyQ0RGMEEzQ0RGMDkwRkQwM0UwRkNGNTgzNDQKKzoxMDFDMTAwMDkwRkQwMkUwNDQ0M0ZEMTIxQ0ZFODA1MjkwRkZBNkUwQkUKKzoxMDFDMjAwMDdEMDA5MEZEMDRDREYwQTNDREYwOTBGRDA1RTBGQ0Y1MjYKKzoxMDFDMzAwMDgzOTBGRDA0RTA0NDM0RkQxMjFDRkU4MDMxOTBGRkI2MTkKKzoxMDFDNDAwMEUwN0QwMDkwRkQwNkNERjBBM0NERjA5MEZEMDdFMEZDMTcKKzoxMDFDNTAwMEY1ODM5MEZEMDZFMDQ0NDRGRDEyMUNGRTgwMTA5MEZGQzkKKzoxMDFDNjAwMDkyRTA3RDAwRkNFRDQ0QUFGRDEyMUNGRTgwMDBFNDkwOTEKKzoxMDFDNzAwMEZGOTJGMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwNUQKKzoxMDFDODAwMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4M0QwQkIKKzoxMDFDOTAwMDgyRDBGMEQwRTAzMjA1ODEwNTgxMDU4MTA1ODFBODgxREYKKzoxMDFDQTAwMDE4MTgxOEVERjYwOEVDRjY5MEZGNkFFMDIwRTcwMjgwQkQKKzoxMDFDQjAwMEY3OTBGRjY5RTA3RDAwQTg4MTE4Q0RGNkNEMDhGNjdEOEMKKzoxMDFDQzAwMDAzQTg4MUU2MThGQ0U2Q0MyNUUwQ0MzM0NDRERGOUNDQ0EKKzoxMDFDRDAwMEY2Q0MwOEY2QTg4MTE4RTY0NEY4RjZBODgxMTgxODE4N0EKKzoxMDFDRTAwMEU2RkQwOEU2RkNBODgxMTg4NjgzMDg4NjgyRURGMEEzNEQKKzoxMDFDRjAwMEVDRjA3NDAyOTBGRjZBRjAxNTgxMTU4MTE1ODExNTgxNTEKKzoxMDFEMDAwMDIyRTU4MTI0MDVGNTgxRTRBODgxMThGNkE4ODExODE4MzgKKzoxMDFEMTAwMDE4MThFREY2MDhFQ0Y2OTBGQkZERTAyNEY4NTAwMzAyRUQKKzoxMDFEMjAwMDFFMUZFNEE4ODExODE4RjZBODgxMThFNkZFQTg4MTE4REQKKzoxMDFEMzAwMDE4MTgxOEU2RkQwOEU2RkM3RjAwRUYyNEY4NDA0REU0OTMKKzoxMDFENDAwMEVGMjVFMDI0ODVGNTgyRTQzNEZERjU4M0UwRkJBM0UwOTQKKzoxMDFENTAwMDZDNzAwM0ZBRUI2RDcwMDk3NDAxQTg4MTE4MThGNjgwOTUKKzoxMDFENjAwMDJCRTRFRjI1RTAyNDg1RjU4MkU0MzRGREY1ODM3QTAwNDkKKzoxMDFENzAwMEUwNTRGMENDRjhDQ0NERjlDREZCNzgwMEU5NTRGMEY5ODMKKzoxMDFEODAwMEVBNjg3MDAyRUI2OTcwMDEwRTBGODBBRUE4ODExOEVFNTAKKzoxMDFEOTAwMEY2QTg4MTE4MTgxODE4RURGNjA4RUNGNkE4ODFFRkY2RTkKKzoxMDFEQTAwMEE4ODExODE4RTY3MDc5QTg4MTE4RTYyNEY3NDA3MUE4NzAKKzoxMDFEQjAwMDgxMTgxODE4MThFNjU0MEZBODgxRjY2NDA0NjAxN0E4NTMKKzoxMDFEQzAwMDgxRTY2NDAzNjAxMEE4ODExODE4MTgxOEU2RkQwOEU2N0IKKzoxMDFERDAwMEZDMTIxQzkzODA0QTdDMEExMjMwRkFBODgxMTgxODE4NDkKKzoxMDFERTAwMDE4RTZGRDA4RTZGQzkwRkJGQ0UwMjVFMDI0ODVGNTgyODIKKzoxMDFERjAwMEU0MzRGREY1ODNFREYwQTNFQ0YwOTBGQkZDRTBGRkU0QjAKKzoxMDFFMDAwMEVGMDQ1NDA3RkY5MEZCRkNGMDkwRkJGREUwMDRGMDEyQTAKKzoxMDFFMTAwMDMxOTM5MEZCRkVFMDcwMDhFNEZFRkY3QzBGMTIzMTlBRDQKKzoxMDFFMjAwMDgwMjc5MEZCRkZFMDA0RjA1NDNGNzAxRDkwRkJGRkUwMjMKKzoxMDFFMzAwMDQ0RkU3RDAwRkM5MEZCRkNFMDI1RTAyNDg1RjU4MkU0NzcKKzoxMDFFNDAwMDM0RkRGNTgzRURGMEEzRUNGMEU1ODEyNEZCRjU4MTIyNzAKKzoxMDFFNTAwMDc4ODU3NjAwNzg4Njc2MDA3NDAxOTBGQkZFRjAxMjMwNkIKKzoxMDFFNjAwMDg1OTBGQkZERTA2MDU5N0MwQTEyMzBGQTkwRkJGQkUwQTQKKzoxMDFFNzAwMDI1RTAyNDg1RjU4MkU0MzRGREY1ODNFMEZEQTNFMEZDNTQKKzoxMDFFODAwMDkwRkJGQkUwMjVFMDI0ODVGNTgyRTQzNEZERjU4M0U0NTYKKzoxMDFFOTAwMEYwQTNGMDkwRkJGQkUwRkZFNEVGMDQ1NDA3RkY5MEZCOUUKKzoxMDFFQTAwMEZCRjA5MEZCRkRFMDE0RjA3ODgzRURGNjA4RUNGNjEyMDEKKzoxMDFFQjAwMDMxOTNCMkIzNzg4M0U2RkQwOEU2RkMxMjA4RTU4MEExMTEKKzoxMDFFQzAwMDEyMzFFNzc4ODUwNkI2MDAxMTc4ODU3NjAwNzg4NkU2QzcKKzoxMDFFRDAwMEY0MDQwNEEyRTA5MkI0Nzg4NkY2ODA4NUU0OTBGQkZFRDgKKzoxMDFFRTAwMEYwOTBGQkZERTA3RDAwRkNFRDQ0Q0ZGRDEyMUM5MzEyNTEKKzoxMDFFRjAwMDMxMDgyMjEyMzA4NUU1NkE2NDQ5NDU2OTYwMTU5MEZGMTIKKzoxMDFGMDAwMDgzRTA1NDBGN0QwMEQzOTU2QUVEOTU2OTUwMDUxMjJFM0MKKzoxMDFGMTAwMENFODAwMzEyMkY5RTEyMzEwODIyMTIzMDg1RTU2QTY0QUEKKzoxMDFGMjAwMDQ5NDU2OTYwMDUxMjJGRDg4MDBFOTBGRjgwRTA0NDA4NzMKKzoxMDFGMzAwMEYwOTBGRjgzRTA1NDdGRjAxMjMxMDgyMjEyMzA4NThDM0MKKzoxMDFGNDAwMDU0RUM1NEYwQjQxMDE1NzU2NDNENzU2M0ZENzU2MjAxNzEKKzoxMDFGNTAwMEU1NjQyNDAzRjU2NEU1NjMzNDAwRjU2M0U0RjU1N0Y1QkYKKzoxMDFGNjAwMDU2RTU1NkMzOTQwMTUwMjdFNTU0NTQwRkZDQUQ2NEFFQkEKKzoxMDFGNzAwMDYzQUY2MjEyMEU4MjhDNTVFQzYwMDI4MDEyMDU2NEU1M0MKKzoxMDFGODAwMDY0NzAwMjA1NjMwNTU3RTU1NzcwMDIwNTU2ODBEMkU1NzcKKzoxMDFGOTAwMDU0NTQwRjI0OTdGOEM2NTRGRUY2RTU1NDU0MEY3RjAwQUUKKzoxMDFGQTAwMEZFN0MxMjEyMzE5QUU1NTUxNDcwMDk3RDAwN0MwOTEyRUQKKzoxMDFGQjAwMDI0QjE4MDA3QUQ1NzdDMDAxMjI0QjExMjMxMDgyMjEyREYKKzoxMDFGQzAwMDMwODU5MEZGRkNFMDQ0MDJGMDkwRkYwMEUwMzBFNzEzMjIKKzoxMDFGRDAwMDkwRkY4M0UwNDQ4MEYwNDM2NzgwOTBGRkZDRTA0NDAxODEKKzoxMDFGRTAwMEYwODAxMTkwRkY4MkUwNDQwOEYwNTM2NzdGOTBGRkZDN0YKKzoxMDFGRjAwMEUwNTRGRUYwOTBGRjgxRTA0NDgwRjAxMjI1NjQ5MEZGRjEKKzoxMDIwMDAwMEZFRTA0NDA1RjA5MEZGRkNFMDU0RkRGMDEyMzEwODIyQTAKKzoxMDIwMTAwMDEyMzA4NTdDMDExMjMyNDg3OEE3RTY0NDAyRjY3NEZFM0QKKzoxMDIwMjAwMEZDMDRGRDEyMUNGRTkwRkY2QUUwMzBFNzAyODBGN0U0M0EKKzoxMDIwMzAwMEY1NEU3NTREMTBBQzRFQUQ0REU1NEUxNTRFNzAwMjE1N0EKKzoxMDIwNDAwMDRERUM0RDYwMDI4MEVFNDM4NzAxMTIzMTA4MjIxMjMwQzAKKzoxMDIwNTAwMDg1N0MwMjEyMzExNDc4QTdFNjU0RkRGNjEyMzEwODIyNkQKKzoxMDIwNjAwMDEyMzA4NTc4QTdFNjMwRTAyQzc4QTdFNjMwRTEyNjc4QjQKKzoxMDIwNzAwMEE3RTZGQ0Y1ODMxOEU2NDRGMEZEMTIxQzkzOTBGRkZDRTQKKzoxMDIwODAwMEUwNDQyMEYwN0MwMjEyMzI0ODc4QTdFNjU0RkRGNjc0NTIKKzoxMDIwOTAwMDFBOTBGRkZFRjA3OEE3RTZGQ0Y1ODMxOEU2NDRGMUZEMDAKKzoxMDIwQTAwMDEyMUM5MzEyMzEwODIyNzU2NzAwNzU2ODAwRTRGNTY2MEEKKzoxMDIwQjAwMEY1NjVFNEY1Njk3NTZBNDk3NDg0OTBGRjgyRjA3NDg0NkIKKzoxMDIwQzAwMDkwRkY4MEYwNzQ4MDkwRkY2OEYwNzQ4MDkwRkY2QUYwNTkKKzoxMDIwRDAwMEFENDZBRjQ1N0UwMEVFMjRGQzUwMDMwMjIxNkFFNEVFREIKKzoxMDIwRTAwMDc1RjAwN0E0MjQzRkY1ODJFNDM0RkNGNTgzRTBGRkU0QjcKKzoxMDIwRjAwMEVGNTQ4MEZERTRFRjU0MEYxNEZGRUQ2MDM4RTRFRjc1MEEKKzoxMDIxMDAwMEYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4Mzc0OTBGMEU0RTkKKzoxMDIxMTAwMEVGNzVGMDA4QTQyNDRBRjU4MkU0MzRGRkY1ODM3NDgwNTcKKzoxMDIxMjAwMEYwRTRFRjc1RjAwOEE0MjQ0RUY1ODJFNDM0RkZGNTgzNjMKKzoxMDIxMzAwMDc0ODBGMDgwMzRFNEVGNzVGMDA4QTQyNDA4RjU4MkU0OUMKKzoxMDIxNDAwMDM0RkZGNTgzNzQ5MEYwRTRFRjc1RjAwOEE0MjQwQUY1RTkKKzoxMDIxNTAwMDgyRTQzNEZGRjU4M0U0RjBFNEVGNzVGMDA4QTQyNDBFODQKKzoxMDIxNjAwMEY1ODJFNDM0RkZGNTgzRTRGMDBFMDIyMEQzOEQ0NjhFMzEKKzoxMDIxNzAwMDQ0OEY0NTc0N0Y5MEZGRkRGMDc0OTA5MEZGRkNGMDkwQzkKKzoxMDIxODAwMEZDMTlFMDMwRTYwNzkwRkZGQ0UwNDQwNEYwMjI5MEZDRUMKKzoxMDIxOTAwMDBERTAxNDcwMDQ5MEZDMENFMDcwMzk5MEZDMDA3OTA2OUUKKzoxMDIxQTAwMDdBMzU3QjEyNzgwMTEyMDNGNTdGMDBFRjMzNDAxNUVGOEIKKzoxMDIxQjAwMDkwMzU0RDkzRkNFRjI0ODBGNTgyRTQzNEZDRjU4M0VDRkMKKzoxMDIxQzAwMEYwMEY4MEU3OEY1OTkwRkMyQjc5MTg3QTM1N0IzNTc4QTIKKzoxMDIxRDAwMDAxMTIwM0Y1RTQ5MEZGRkZGMDc0NTE5MEZGRkFGMDc0RTAKKzoxMDIxRTAwMDA0OTBGRkZCRjA3NDUzOTBGRkY4RjA3NDUxOTBGRkY5RTYKKzoxMDIxRjAwMEYwNzQ1NTkwRkZGN0YwNzQ5MzkwRkZGNkYwNzQzMjkwRkUKKzoxMDIyMDAwMEZGRjVGMDc1NjQzRDc1NjNGRDc1NjIwMUU0OTBGRjgzMzEKKzoxMDIyMTAwMEYwNzQ4MDkwRkY4MUYwNzU1ODA0RTU1ODc1RjAwN0E0QkMKKzoxMDIyMjAwMDI0M0ZGNTgyRTQzNEZDRjU4M0UwNzg4OUY2RkM1NDBGMTIKKzoxMDIyMzAwMDE0RkM3ODg5RUNGNkU1NTg3NUYwMDdBNDI0NDFGNTgyODIKKzoxMDIyNDAwMEU0MzRGQ0Y1ODNFMDc4OEM3NkY4MDg3NjAwRkM3ODg5MzUKKzoxMDIyNTAwMEU2NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNFNEYwNDEKKzoxMDIyNjAwMDc4ODlFNjc1RjAwOEE0MjQ0RkY1ODJFNDM0RkZGNTgzRkQKKzoxMDIyNzAwMEVDRjA3ODhDRTZGRjA4RTY3RTAzQ0ZDMzEzQ0YxM0RFQzUKKzoxMDIyODAwMEY5RkU3ODg5RTY3NUYwMDhBNDI0NDlGNTgyRTQzNEZGNjQKKzoxMDIyOTAwMEY1ODNFRUYwNzg4OUU2NzVGMDA4QTQyNDRBRjU4MkU0MjcKKzoxMDIyQTAwMDM0RkZGNTgzNzQ4MEYwNzg4QUVDRjY3RDAwNzg4REU2NTMKKzoxMDIyQjAwMDJDRjYxOEU2M0RGNjc4OENFNkZEMDhFNjdDMDNDREMzRTcKKzoxMDIyQzAwMDEzQ0QxM0RDRjlGQzc4ODlFNjc1RjAwOEE0MjQ0REY1RUMKKzoxMDIyRDAwMDgyRTQzNEZGRjU4M0VDRjA3ODg5RTY3NUYwMDhBNDI0RjUKKzoxMDIyRTAwMDRFRjU4MkU0MzRGRkY1ODNFNEYwNzg4Q0U2RkQwOEU2RjEKKzoxMDIyRjAwMEZDNzg4OUU2RkY3RTAwRUUyNEZDNTAwMzAyMjQ2QkU0QTgKKzoxMDIzMDAwMEVFNzVGMDA3QTQyNDNGRjU4MkU0MzRGQ0Y1ODNFMEZGOEEKKzoxMDIzMTAwMEU0RUY1NDgwRkFFNEVGNTQwRjE0RkZFNEVFNzVGMDA3OTUKKzoxMDIzMjAwMEE0MjQ0MUY1ODJFNDM0RkNGNTgzRTA3ODhBRjZFRTc1NjYKKzoxMDIzMzAwMEYwODBBNDI0MDhGOEU1RjAzNEY4RjlFOEZDRTlGRDhBMTcKKzoxMDIzNDAwMDU5RUE3MDAzMDIyM0Q4RTRFRjc1RjAwOEE0MjQ0OEY1OTUKKzoxMDIzNTAwMDgyRTQzNEZGRjU4M0U0RjA3ODhBRTZGQUU0RUY3NUYwN0UKKzoxMDIzNjAwMDA4QTQyNDRGRjU4MkU0MzRGRkY1ODNFQUYwRURGQkVDOUEKKzoxMDIzNzAwMDdBMDNDQkMzMTNDQjEzREFGOUZBRTRFRjc1RjAwOEE0QjAKKzoxMDIzODAwMDI0NDlGNTgyRTQzNEZGRjU4M0VBRjA3ODhBRTY3QjAwOUQKKzoxMDIzOTAwMEZBRUMyQUZDRUQzQkZERkJFQzdBMDNDQkMzMTNDQjEzMjkKKzoxMDIzQTAwMERBRjlGQUU0RUY3NUYwMDhBNDI0NERGNTgyRTQzNEZGN0QKKzoxMDIzQjAwMEY1ODNFQUYwRTRFRjc1RjAwOEE0MjQ0QUY1ODJFNDM0RUEKKzoxMDIzQzAwMEZGRjU4Mzc0ODBGMEU0RUY3NUYwMDhBNDI0NEVGNTgyRTUKKzoxMDIzRDAwMEU0MzRGRkY1ODM3NDgwRjAwMjI0NjdFNEVGNzVGMDA4QkQKKzoxMDIzRTAwMEE0MjQwOEY1ODJFNDM0RkZGNTgzRTRGMDc4OEFFNkZBNjEKKzoxMDIzRjAwMEU0RUY3NUYwMDhBNDI0MEZGNTgyRTQzNEZGRjU4M0VBRDYKKzoxMDI0MDAwMEYwRURGQkVDN0EwM0NCQzMxM0NCMTNEQUY5RkFFNEVGNkMKKzoxMDI0MTAwMDc1RjAwOEE0MjQwOUY1ODJFNDM0RkZGNTgzRUFGMDc4MjYKKzoxMDI0MjAwMDhBRTY3QjAwRkFFQzJBRkNFRDNCRkRGQkVDN0EwM0NCNjEKKzoxMDI0MzAwMEMzMTNDQjEzREFGOUZBRTRFRjc1RjAwOEE0MjQwREY1MTEKKzoxMDI0NDAwMDgyRTQzNEZGRjU4M0VBRjBFNEVGNzVGMDA4QTQyNDBBOEYKKzoxMDI0NTAwMEY1ODJFNDM0RkZGNTgzRTRGMEU0RUY3NUYwMDhBNDI0OUEKKzoxMDI0NjAwMDBFRjU4MkU0MzRGRkY1ODNFNEYwMEUwMjIyRjQ4RTU4NzgKKzoxMDI0NzAwMDc4OENFREY2MDhFQ0Y2Nzg4OUVGRjYxMjIwQTQyMjhDMjEKKzoxMDI0ODAwMDI2RUMzMEU3MThFNTI2NTQwRjE0NzVGMDA4QTQyNDQ4MEMKKzoxMDI0OTAwMEY1ODJFNDM0RkZGNTgzRTA1NERGRjA4MDE2RTUyNjU0M0UKKzoxMDI0QTAwMDBGMTQ3NUYwMDhBNDI0MDhGNTgyRTQzNEZGRjU4M0UwRTYKKzoxMDI0QjAwMDU0REZGMDIyRUM5MEZEM0ZGMDhDMjRFRDI0MDNGNTI1NTEKKzoxMDI0QzAwMDdEMDBEMzk1NkNFRDk1NkI0MDAzODU2QzI1RTUyNTI0NDcKKzoxMDI0RDAwMEI3NTAwOTc1MjUwMzc0MDI5MEZEM0ZGMEFDMjUxMjJGMEIKKzoxMDI0RTAwMEMzMjJFNEY1NjZGNTY1MTIyNEU4MjI5MEZEM0RFMDY1MUYKKzoxMDI0RjAwMDZENjAwRTc0MDQ5MEZEM0ZGMEU0RjU2NTc1NjYwMzgwMzEKKzoxMDI1MDAwMDQ2N0Q2REU0RkVGRjc5M0Q3QUZEN0IwMTc0MDU3ODAwMjAKKzoxMDI1MTAwMDEyMDMzRkU1NjYyNDAzRjU2NkU1NjUzNDAwRjU2NUU1REQKKzoxMDI1MjAwMDY2RDM5NTZDRTU2NTk1NkI0MDA2ODU2QzY2ODU2QjY1MzUKKzoxMDI1MzAwMEQzRTU2Njk0NDhFNTY1OTQwMDQwMEM3NDAyOTBGRDNGMzUKKzoxMDI1NDAwMEYwRTRGNTY1NzU2NjAzQUM2NjEyMkZDMzIyRUM5MEZEQ0UKKzoxMDI1NTAwMDNGRjBFNEY1NjZGNTY1OEMzMkVDNjAwNTEyMkZCNDgwMkYKKzoxMDI1NjAwMDA1N0MwMDEyMkZDMzIyOTBGRjA0RTBGNTRBOTBGRjA2N0QKKzoxMDI1NzAwMEUwRkRBM0UwRUQ3RDAwRkM3RDAwRkM5MEZGMDZFMEZGQTgKKzoxMDI1ODAwMEEzRTA3RTAwRkZFNEZFRUM0RUZDRUQ0RkZEQzNFQzk0QjcKKzoxMDI1OTAwMDQ4RUQ5NDAwNTAyMjkwRkYwNkUwRkRBM0UwRUQ3RDAwQTEKKzoxMDI1QTAwMEZDN0QwMEZDOTBGRjA2RTBGRkEzRTA3RTAwRkZFNEZFNjAKKzoxMDI1QjAwMEVDNEVGQ0VENEZGRDgwMDRFNEZEN0M0ODhDNkM4RDZCOTMKKzoxMDI1QzAwMDkwRkYwMkUwRkRBM0UwRUQ3RDAwRkM3RDAwRkM5MEZGQUMKKzoxMDI1RDAwMDAyRTBGRkEzRTA3RTAwRkZFNEZFRUM0RUY1NENFRDRGODEKKzoxMDI1RTAwMEY1NEI3NTY0M0Q3NTYzRkQ3NTYyMDE3RDNEN0VGRDdGMzQKKzoxMDI1RjAwMDAxNzk2REU0RkFGQjc0MDU3ODAwMTIwMzNGNzU0OTAwMTgKKzoxMDI2MDAwMEU1NDkyNEZFNDAxOUFENjRBRTYzQUY2MkU0MTIwMzBGRTYKKzoxMDI2MTAwMDA1NDkwREVENzAwMTBFOEQ2NDhFNjM4RjYyODBFMTc1NEEKKzoxMDI2MjAwMDY0M0Q3NTYzRkQ3NTYyMDE5MEZGMDBFMDU0NjBCNDAwODUKKzoxMDI2MzAwMDAyODAwNkQzNTAwMzAyMkMxMkU1NEE1NDBGRjU0OUU1RjcKKzoxMDI2NDAwMDRBNTQ4MEEyRTA5MjAyOTBGRjAxRTAxMjAxODEwMDBCNDcKKzoxMDI2NTAwMDJDMEQyNjY3Mjc4NTJDMEQyODkxMkMwRDI5NzQyOUE4NkYKKzoxMDI2NjAwMDJCMEYyQjEyMkI1MjJCQjYyQkU0RTU2NzMwRTcwRUU1MzAKKzoxMDI2NzAwMDRDNDU0QjcwMDhFNTZDNjQwMjQ1NkI2MDAzMDIyQzBGRkYKKzoxMDI2ODAwMDkwRkYwMEUwNTQxRkI0MDAwMjgwMDNEMzQwMjlFNTRBQzQKKzoxMDI2OTAwMDYwMDMwMjI3ODJBRDY0QUU2M0FGNjI3NDAxMTIwMzBGNjAKKzoxMDI2QTAwMDc4QTdFNjMwRTAwQkFENjRBRTYzQUY2Mjc0MDIxMjAzNEMKKzoxMDI2QjAwMDBGN0MwMjEyMkZDMzIyQjQwMTAyODAwM0QzNDAxQkU1MUEKKzoxMDI2QzAwMDY3MjBFMTA3RTU0QTYwMDMwMjI3ODJFNTRBMjRGRTUwQkQKKzoxMDI2RDAwMDAzMDIyNzgyN0MwMjEyMkZDMzIyQjQwMjAyODAwNkQzOTcKKzoxMDI2RTAwMDUwMDMwMjI3ODBFNTY3MjBFMTBERTU0QTYwMDlFNTRBQ0QKKzoxMDI2RjAwMDY0ODA2MDAzMDIyNzgyQUM0QTEyMzA0QTQwMDMwMjI3RkEKKzoxMDI3MDAwMDgyRTU0OTcwMjUzMDAyMTE5MEZGODBFMDU0MDhBRDY0RTUKKzoxMDI3MTAwMEFFNjNBRjYyMTIwMzBGODAwRjkwRkY4MkUwNTQwOEFERUEKKzoxMDI3MjAwMDY0QUU2M0FGNjIxMjAzMEY4MDNEMTU0OTMwMDIxREU1QjAKKzoxMDI3MzAwMDQ5NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNFMDU0OTkKKzoxMDI3NDAwMDA4QUQ2NEFFNjNBRjYyMTIwMzBGODAxQkU1NDk3NUYwRkMKKzoxMDI3NTAwMDA4QTQyNDA4RjU4MkU0MzRGRkY1ODNFMDU0MDhBRDY0NEUKKzoxMDI3NjAwMEFFNjNBRjYyMTIwMzBGQUQ2NEFFNjNBRjYyMTIwMUU2RjcKKzoxMDI3NzAwMDYwMEJBRDY0QUU2M0FGNjI3NDAxMTIwMzBGN0MwMjEyOTIKKzoxMDI3ODAwMDJGQzMyMjgwMDAwMjJDMEZFNTY3MjBFNzA2RTU2QzQ1ODkKKzoxMDI3OTAwMDZCNjAwMzAyMkMwRjkwRkYwMEUwNTQxRkI0MDAwMjgwMTYKKzoxMDI3QTAwMDAzRDM0MDFBRTU0QzE0NDU0QjcwMDRFNTRBNjAwMzAyMUMKKzoxMDI3QjAwMDI4OEU3OEE3RTY1NEZFRjY3QzAwMTIyRkMzMjJCNDAxQkYKKzoxMDI3QzAwMDAyODAwM0QzNDAyQUU1NjcyMEUxMDhFNTY3MjBFMDAzQTMKKzoxMDI3RDAwMDAyMjg4RUU1NjczMEUwMDRFNTRBNzAwQkU1NjczMEUxREEKKzoxMDI3RTAwMDA5RTU0QTI0RkU1MDAzMDIyODhFN0MwMDEyMkZDMzIyRTIKKzoxMDI3RjAwMEI0MDIwMjgwMDZEMzUwMDMwMjI4OENFNTRDNDU0QjYwOUUKKzoxMDI4MDAwMDAzMDIyODhFQUM0QTEyMzA0QTQwMDMwMjI4OEVFNTY3NDQKKzoxMDI4MTAwMDIwRTEwN0U1NjcyMEUwMDI4MDc3RTU2NzMwRTAwNkU1MjQKKzoxMDI4MjAwMDQ5NjAwMjgwNkNFNTQ5NzAwRjkwRkY4MkUwNTRGN0YwMzgKKzoxMDI4MzAwMDkwRkY4MEUwNTRGN0YwMjJFNTQ5QjQwMTAyODAwM0QzMTEKKzoxMDI4NDAwMDQwMDk3RDAxN0MwMzEyMEYwQjgwMTFCNDAyMDI4MDAzNEEKKzoxMDI4NTAwMEQzNDAwOTdEMDE3QzA0MTIwRjBCODAwMDE1NDkzMDAyMjIKKzoxMDI4NjAwMDE1RTU0OTc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzQTIKKzoxMDI4NzAwMEUwNTRGN0YwODAxM0U1NDk3NUYwMDhBNDI0MDhGNTgyQzgKKzoxMDI4ODAwMEU0MzRGRkY1ODNFMDU0RjdGMDdDMDAxMjJGQzMyMjgwN0MKKzoxMDI4OTAwMDAwMDIyQzBGRTU2NzIwRTcwNkU1NkM0NTZCNjAwMzAyM0MKKzoxMDI4QTAwMDJDMEY5MEZGMDBFMDU0MUZCNDAwMDI4MDAzRDM0MDFBQTUKKzoxMDI4QjAwMEU1NEMxNDQ1NEI3MDA0RTU0QTYwMDMwMjI5NzE3OEE3ODIKKzoxMDI4QzAwMEU2NDQwMUY2N0MwMDEyMkZDMzIyQjQwMTAyODAwM0QzMzgKKzoxMDI4RDAwMDQwMjlFNTY3MjBFMTA4RTU2NzIwRTAwMzAyMjk3MUU1NkEKKzoxMDI4RTAwMDY3MzBFMDA0RTU0OTcwMEJFNTY3MzBFMTA4RTU0OTI0MEQKKzoxMDI4RjAwMEZFNTAwMjgwN0Y3QzAwMTIyRkMzMjJCNDAyMDI4MDAzQUMKKzoxMDI5MDAwMEQzNDA2RkU1NEM0NTRCNjAwMjgwNjlBQzRBMTIzMDRBQjcKKzoxMDI5MTAwMDQwMDI4MDYwRTU2NzIwRTEwN0U1NjcyMEUwMDI4MDU0MUYKKzoxMDI5MjAwMEU1NDk3MDE0MzAwMjA5OTBGRjgwRTA0NDA4RjA4MDA3MDgKKzoxMDI5MzAwMDkwRkY4MkUwNDQwOEYwMjJFNTY3MzBFMTMzMTU0OTMwMkEKKzoxMDI5NDAwMDAyMTVFNTQ5NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1NDIKKzoxMDI5NTAwMDgzRTA0NDA4RjA4MDEzRTU0OTc1RjAwOEE0MjQwOEY1RTUKKzoxMDI5NjAwMDgyRTQzNEZGRjU4M0UwNDQwOEYwN0MwMDEyMkZDMzIyOTgKKzoxMDI5NzAwMDgwMDI4MDAwMDIyQzBGRTU2NzIwRTcxMkU1NkM0NTZCQjIKKzoxMDI5ODAwMDcwMENFNTRBNzAwODkwRkYwMEUwNTQxRjYwMDMwMjJDQjEKKzoxMDI5OTAwMDBGRTU0QzkwRkZGRkYwOTBGRkZGRTA2MDA1NDM2NzAxRkIKKzoxMDI5QTAwMDgwMDM1MzY3RkU3QzAwMTIyRkMzMjJFNTY3MzBFNzBFRDkKKzoxMDI5QjAwMEU1NkM0NTZCNjAwODkwRkYwMEUwNTQxRjYwMDMwMjJDM0IKKzoxMDI5QzAwMDBGQUQ0QkU1NENFRDdEMDBGQzdEMDBGQ0JEMDAwMjgwQjEKKzoxMDI5RDAwMDAzMDIyQjBBQjQwMTAyODAwM0QzNDAzMkU1NEE3MDA1OUEKKzoxMDI5RTAwMEU1NENGQzYwMDMwMjJCMEM3NTY0MDA3NTYzRkM3NTYyOUEKKzoxMDI5RjAwMDAxRDNFNTZDOTQxMkU1NkI5NDAwNDAwNkU0RkQ3QzEyNzMKKzoxMDJBMDAwMDgwMDRBQzZDQUQ2QjhDNkE4RDY5MTIyRkQ4MjJCNDAyMzUKKzoxMDJBMTAwMDAyODAwM0QzNDA1OUU1NEE2MDAzMDIyQjBDRTU0Q0ZDQ0QKKzoxMDJBMjAwMDcwMjc3NTY0MTI3NTYzRkM3NTYyMDFEM0U1NkM5NDE5QTcKKzoxMDJBMzAwMEU1NkI5NDAwNDAwNkU0RkQ3QzE5ODAwNEFDNkNBRDZCNDIKKzoxMDJBNDAwMDhDNkE4RDY5MTIyRkQ4ODAyNTc1NjQyQjc1NjNGQzc1OEYKKzoxMDJBNTAwMDYyMDFEM0U1NkM5NDM1RTU2Qjk0MDA0MDA2RTRGRDdDOUYKKzoxMDJBNjAwMDM1ODAwNEFDNkNBRDZCOEM2QThENjkxMjJGRDgyMkI0QTIKKzoxMDJBNzAwMDAzMDI4MDA2RDM1MDAzMDIyQjBBRTU0Q0Y1NDk3MDBGODAKKzoxMDJBODAwMDkwRkYwNEUwRkRBM0UwNEQ2MDAzMDIyQjBDODAxODkwNDIKKzoxMDJBOTAwMEZDODJFMEZEQTNFMEZDOTBGRjA1RTA2QzcwMDc5MEZGNzYKKzoxMDJBQTAwMDA0RTA2RDYwMDI4MDY4RTRGNTZBRjU2OTdGMDBFNTQ5M0QKKzoxMDJBQjAwMDE0QzU0OTYwMEZFRjI0ODBGNTgyRTQzNEZDRjU4M0UwMEYKKzoxMDJBQzAwMDJGRkY4MEVBOEY0QUU1NEEyNDgwRjU4MkU0MzRGQ0Y1NDIKKzoxMDJBRDAwMDgzRTA3RDAwRDM5NTZDRUQ5NTZCNDAwNkFDNkNBRDZCREYKKzoxMDJBRTAwMDgwMEZFNTRBMjQ4MEY1ODJFNDM0RkNGNTgzRTA3RDAwMjQKKzoxMDJBRjAwMEZDOEM2QThENjlFNTRBMjQ4MEZDRTQzNEZDRkRGRUVDMjQKKzoxMDJCMDAwMEZEN0YwMThENjQ4RTYzOEY2MjEyMkZEODIyODAwMDAyQjgKKzoxMDJCMTAwMDJDMEYwMjJDMEZFNTY3MzBFNzE5RTU2QzE0NDU2QjcwM0MKKzoxMDJCMjAwMDEyRTU0QTcwMEVFNTRDNDU0QjcwMDg5MEZGMDBFMDU0RUEKKzoxMDJCMzAwMDFGNjAwMzAyMkMwRkU1NjcyMEUwMDhFNTY3MjBFMTAzMzIKKzoxMDJCNDAwMDAyMkMwRjc1NjQ2OEU0RjU2M0Y1NjJFNEY1NjkwNEY1MzkKKzoxMDJCNTAwMDZBMTIyRkQ4MjJFNTY3MjBFNzI3RTU2QzQ1NkI3MDIxQzQKKzoxMDJCNjAwMEU1NEE3MDFERTU0QzY0MDI0NTRCNjAwREU1NEMxNDQ1OEIKKzoxMDJCNzAwMDRCNjAwNkU1NEM0NTRCNzAwODkwRkYwMEUwNTQxRjYwMjkKKzoxMDJCODAwMDAzMDIyQzBGRTU2NzIwRTAwOEU1NjcyMEUxMDMwMjJDMzMKKzoxMDJCOTAwMDBGODU0QzY4RTU2ODcwMDg0MzY3MDE1MzY3RkQ4MDEzMzMKKzoxMDJCQTAwMEU1Njg2NDAyNjAwN0U1NjgxNDYwMDI4MDY1NTM2N0ZFQUIKKzoxMDJCQjAwMDQzNjcwMjdDMDAxMjJGQzMyMkU1NjczMEU3MUFFNTZDRjkKKzoxMDJCQzAwMDE0NDU2QjcwMTNFNTRBNzAwRkU1NEM0NTRCNzAwOTkwNDYKKzoxMDJCRDAwMEZGMDBFMDU0MUYxNDYwMDI4MDM4RTU2NzIwRTEwMjgwQTYKKzoxMDJCRTAwMDMxN0MwMTEyMkZDMzIyRTU2NzIwRTcxNUU1NkM0NTZCQTgKKzoxMDJCRjAwMDcwMEZFNTRDNDU0QjcwMDk5MEZGMDBFMDU0MUYxNDYwQzYKKzoxMDJDMDAwMDAyODAwRkU1NjcyMEUxMDI4MDA4N0MwMDEyMkZDMzIyQkEKKzoxMDJDMTAwMDgwMDAwMjJFQ0FCNDQwMDI4MDA2RDM1MDAzMDIyRUMwQTgKKzoxMDJDMjAwMDkwRkYwMUUwOTBGRDNERjBFNTRBOTBGRDNFRjBFNDkwMUMKKzoxMDJDMzAwMEZEM0ZGMEU1NjQyNDAzRjU2NEU1NjMzNDAwRjU2M0FEMUUKKzoxMDJDNDAwMDRCRTU0Qzg1NjQ4Mjg1NjM4M0NERjBBM0NERjA5MEZGODYKKzoxMDJDNTAwMDAxRTAxMjAxQjcyQzdEMDEyQ0EzMDIyQ0NEMDMyQ0Y3MkYKKzoxMDJDNjAwMDA0MkQ0NTA1MkQ4MjA2MkRBODA3MkRDRTA4MkRGNDA5MkIKKzoxMDJDNzAwMDJFMUEwQjJFNDAwQzJFNEY4MDJFNEY4MTAwMDAyRUFEQjEKKzoxMDJDODAwMEU1NjcyMEU3MDY3QzA1MTIyNTRBMjI3REI3N0UzNDdGNjIKKzoxMDJDOTAwMDAyNzk0MDdBRkQ3QjAxNzQwODc4MDAxMjAzM0Y3RDA4QjkKKzoxMDJDQTAwMDdDMDAxMjI0QjEyMkU1NjcyMEU3MDY3QzA1MTIyNTRBNDQKKzoxMDJDQjAwMDIyRTU0QUI0MDMwMDQwMTBCNDA1MDA1MDBCRTU0QTdGRkEKKzoxMDJDQzAwMDAwRkU3QzEwMTIzMTlBMjI3RDAwN0MwNzEyMjRCMTIyNzIKKzoxMDJDRDAwMEU1NjcyMEU3MDY3QzA1MTIyNTRBMjJFNTRBQjQwMzAwOTEKKzoxMDJDRTAwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTExMjMxMDQKKzoxMDJDRjAwMDlBMjI3RDAwN0MwNzEyMjRCMTIyRTU2NzIwRTcwNjdDM0EKKzoxMDJEMDAwMDA1MTIyNTRBMjJFNTRBQjQwNTAyODAwM0QzNDAwQUU0QUQKKzoxMDJEMTAwMEZGMDRGRTdDMEExMjMxOUEyMkI0MDEwMjgwMDNEMzQwRTAKKzoxMDJEMjAwMDBBRTRGRjA0RkU3QzA4MTIzMTlBMjJCNDAzMDA0MDEwMkEKKzoxMDJEMzAwMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxMzEyMzE5QTIyNDUKKzoxMDJENDAwMDdEMDA3QzA3MTIyNEIxMjJFNTY3MjBFNzM0RDNFNTZDQ0YKKzoxMDJENTAwMDk0NDhFNTZCOTQwMDUwMDZFNTZDNDU2QjcwMDY3QzAyNjgKKzoxMDJENjAwMDEyMjU0QTIyRTU0QUI0MDEwM0IzNDAwQkMzQjQwMzAwNjEKKzoxMDJENzAwMDQwMDlCNDA2MDA1MDA0MTIzMDcwMjI3QzA3MTIyNTRBMjQKKzoxMDJEODAwMDIyMTIyNEU4MjJFNTY3MjBFNzFERTU0QUI0MDMwMDQwNEIKKzoxMDJEOTAwMDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzE2MTIzMTlBRjQKKzoxMDJEQTAwMDIyN0MwNzEyMjU0QTIyMTIyNEU4MjJFNTY3MjBFNzFEMkIKKzoxMDJEQjAwMEU1NEFCNDAzMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwMUIKKzoxMDJEQzAwMEZFN0MxOTEyMzE5QTIyN0MwNzEyMjU0QTIyMTIyNEU4MkQKKzoxMDJERDAwMDIyRTU2NzIwRTcxREU1NEFCNDAzMDA0MDEwQjQwNTAwNzIKKzoxMDJERTAwMDUwMEJFNTRBN0YwMEZFN0MxNzEyMzE5QTIyN0MwNzEyQjUKKzoxMDJERjAwMDI1NEEyMjEyMjRFODIyRTU2NzIwRTcxREU1NEFCNDAzQUMKKzoxMDJFMDAwMDAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxODEyMEMKKzoxMDJFMTAwMDMxOUEyMjdDMDcxMjI1NEEyMjEyMjRFODIyRTU2NzIwRjMKKzoxMDJFMjAwMEU3MURFNTRBQjQwMzAwNDAxMEI0MDUwMDUwMEJFNTRBMjUKKzoxMDJFMzAwMDdGMDBGRTdDMTUxMjMxOUEyMjdDMDcxMjI1NEEyMjEyNEQKKzoxMDJFNDAwMDI0RTgyMkU1NjcyMEU3MDY3QzA3MTIyNTRBMjIxMjI0OUYKKzoxMDJFNTAwMEU4MjJFNTY3MzBFNzIwOTBGRjAwRTA1NDFGNzAxMDkwRjMKKzoxMDJFNjAwMEZGMDFFMEI0ODAwNTEyMjRERjgwMDMxMjI0RTgyMjdERjQKKzoxMDJFNzAwMDAwN0MwNTEyMjRCMTIyOTBGRjAwRTA1NDFGNjAwNjdDMDQKKzoxMDJFODAwMDA1MTIyNTRBMjJEM0U1NkM5NDQ4RTU2Qjk0MDA1MDBCNUIKKzoxMDJFOTAwMEMzRTU2Qzk0MDdFNTZCOTQwMDUwMDY3QzAzMTIyNTRBNDkKKzoxMDJFQTAwMDIyRTU0QUI0MDUwNDEyMzA3MDIyN0MwNzEyMjU0QTIyMUEKKzoxMDJFQjAwMEU1NjczMEU3MDg3RDAwN0MwNTEyMjRCMTIyN0MwNTEyMEQKKzoxMDJFQzAwMDI1NEEyMkI0MjAwMjgwMDNEMzQwMDA4MDAwMTIyRjlFQTYKKzoxMDJFRDAwMDIyNzU0MzAwOTBGRjgzRTA1NDBGRDM5NTQzNDAyNEU1Q0YKKzoxMDJFRTAwMDQzMjRGMEY1ODJFNDM0RkVGNTgzRTBBRDY0QUU2M0FGRDUKKzoxMDJFRjAwMDYyMTIwMzBGMDU0MzBERUQ3MDAxMEU4RDY0OEU2MzhGMUEKKzoxMDJGMDAwMDYyODBEMUU1NDM3RDAwRkNDM0U1NkE5Q0Y1NkFFNTY5MTIKKzoxMDJGMTAwMDlERjU2OUU1NkE0NTY5NjAwNkU0OTBGRjgzRjAyMjkwQkIKKzoxMDJGMjAwMEZGODJFMDQ0MDhGMEU0RjU2OTc1NkE0OTkwRkQzREUwRjAKKzoxMDJGMzAwMEI0MDUwMjgwMDNEMzQwNDA5MEZEM0VFMEY1NDNCNDA1NjQKKzoxMDJGNDAwMDAyODAwM0QzNDAwQUU0RkYwNEZFN0MwQjEyMzE5QTIyNzQKKzoxMDJGNTAwMEI0MDEwMjgwMDNEMzQwMEFFNEZGMDRGRTdDMDkxMjMxNkQKKzoxMDJGNjAwMDlBMjJCNDAzMDA0MDEwQjQwNTAwNTAwQkU1NDM3RjAwRTMKKzoxMDJGNzAwMEZFN0MxNDEyMzE5QTIyMjJCNDgwMDA0MDIzQjQ4MjAwRDUKKzoxMDJGODAwMDUwMUU3QzNEN0RGRDEyMTdENTdEMDA4QzY2OEQ2NTkwQjEKKzoxMDJGOTAwMEZEM0ZFMDYwMDUxMjJGOUU4MDA1N0MwMDEyMkZDMzIyQUEKKzoxMDJGQTAwMDIyOTBGRjgzRTA1NDdGRjA5MEZGODJFMDQ0MDhGMDkwOEQKKzoxMDJGQjAwMEZGODBFMDQ0MDhGMDIyOTBGRjgyRTA0NDA4RjA5MEZGOTgKKzoxMDJGQzAwMDgwRTA0NDA4RjAyMjhDMjM3RDAwOEM2QThENjk3NTY0NTIKKzoxMDJGRDAwMDNENzU2M0ZENzU2MjAxMTIyRkQ4MjI5MEZGODNFMDU0ODYKKzoxMDJGRTAwMDdGRjBFNTZBNjQ0OTQ1Njk3MDAxMjJDM0U1NkE5NDA4ODcKKzoxMDJGRjAwMEU1Njk5NDAwNDAxNTc1MjEwOEU1MjE3RDAwRkNDM0U1RDUKKzoxMDMwMDAwMDZBOUNGNTZBRTU2OTlERjU2OTgwMDk4NTZBMjFFNEY1QTAKKzoxMDMwMTAwMDY5NzU2QTQ5NzUyMjAwRTUyMkMzOTUyMTUwMjZBRDY0ODEKKzoxMDMwMjAwMEFFNjNBRjYyMTIwMUU2RkNFNTIyMjRGOEY1ODJFNDM0RDcKKzoxMDMwMzAwMEZFRjU4M0VDRjAwNTIyMERFRDcwMDEwRThENjQ4RTYzQkMKKzoxMDMwNDAwMDhGNjI4MEQzRTUyMTU0N0Y5MEZGODFGMDIyOEM0ODdGRUUKKzoxMDMwNTAwMDAwRUYyNEZCNDAxOUU0RUY3NUYwMDdBNDI0M0ZGNTgyNEMKKzoxMDMwNjAwMEU0MzRGQ0Y1ODNFMDY1NDg3MDAyRDMyMjBGODBFMjhGRTAKKzoxMDMwNzAwMDQ3QzMyMjg1NkM2QTg1NkI2OTkwRkY4MkUwNTRGN0YwNDQKKzoxMDMwODAwMDkwRkY4M0UwNTQ3RkYwMjJDMDAwQzAwMUMwMDJDMDA2NjAKKzoxMDMwOTAwMEMwMDdFNTcyMjQwOEY4ODYwNjUzMDY3RjdDRkYxMjMwQ0QKKzoxMDMwQTAwMEZBN0MwMDdEMDBFNTc1NjA0NkZGOTBGRTlERTA1NDdGNTAKKzoxMDMwQjAwMDZFNzAwRkMwODNDMDgyQTNFMEZEQTNFMEZDQTMxNTc1NzIKKzoxMDMwQzAwMDgwMDdBM0EzQTNERkU2ODAyNkRGMDZEMDgyRDA4MzgwMUIKKzoxMDMwRDAwMDFFRTBGOEEzRTBGOUEzRTBGQUQwODJEMDgzRThGMEEzRTEKKzoxMDMwRTAwMEU5RjBBM0VBRjBBM0MwODNDMDgyQTNBM0EzODBEQTEyMEQKKzoxMDMwRjAwMDMxOTNEMDA3RDAwNkQwMDJEMDAxRDAwMDIyODVBODc0MjkKKzoxMDMxMDAwMDc1QTg4OEVDNzAwMjdDM0Y4QzczMjJFNTcyMjQwOEY4NjUKKzoxMDMxMTAwMDc2MDAxMjMxRTc4MEZCQzAwMEMwMDFDMDAyQzAwNkMwQ0IKKzoxMDMxMjAwMDA3QUUwNDdDRkYxMjMwRkFFNTc1NjA0MkZGOTBGRTlEMDkKKzoxMDMxMzAwMEUwNTQ3RjZFNzAwQkMwODNDMDgyQTNBM0EzMTU3NTgwN0IKKzoxMDMxNDAwMDA3QTNBM0EzREZFQTgwMjZERjA2RDA4MkQwODM4MEQ4M0UKKzoxMDMxNTAwMEUwRjhBM0UwRjlBM0UwRkFEMDgyRDA4M0U4RjBBM0U5OTUKKzoxMDMxNjAwMEYwQTNFQUYwQTNDMDgzQzA4MkEzQTNBMzgwREE3ODA4MDcKKzoxMDMxNzAwMDA4NzkxODA5N0MwMUU2NTQ3RjZFNzAwNjc2MDA3NzAwQTYKKzoxMDMxODAwMDgwMDYwODA5MENCQzA4RUUxMjMxOTNEMDA3RDAwNkQwOTcKKzoxMDMxOTAwMDAyRDAwMUQwMDAyMjc1NzMwMDg1NzRBODIyQzBGMEMwNEYKKzoxMDMxQTAwMDgyQzA4M0MzRTU3NTI0RTg1MDA1MTIzMUU3ODBGNEVDNTIKKzoxMDMxQjAwMDYwMzE5MDM0QjZFNDkzQzM5QzQwMjhDMDA0N0NGRjEyNzUKKzoxMDMxQzAwMDMwRkFEMDA0NDMwNDgwRTU3NTc1RjAwM0E0MjQ5REY1MUUKKzoxMDMxRDAwMDgyRTQzNEZFRjU4M0VDRjBFRkEzRjBFRUEzRjAwNTc1ODYKKzoxMDMxRTAwMDEyMzE5M0QwODNEMDgyRDBGMDIyQzAwNDdDMjBEMjhDQzQKKzoxMDMxRjAwMEQyOERENTA0RkREMDA0MjI3NUE4MDA3NTg4MDA3NUI4NUQKKzoxMDMyMDAwMDAwNzVGMDAwNzVEMDAwRTRGODkwMDAwMEY2MDhCODAwRjIKKzoxMDMyMTAwMEZCMDIwMDAwQzNFRDk0MDI1MDA0N0QwMzdDRThFQ0Y0NTMKKzoxMDMyMjAwMEZDRURGNEZEMENCQzAwMDEwRDhDNzk4RDc4MjJDM0VDMTMKKzoxMDMyMzAwMDk0QkNFRDk0MDI1MDA0N0QwNzdDRDBFQ0Y0RkNFREY0REEKKzoxMDMyNDAwMEZEMENCQzAwMDEwRDhDNzc4RDc2MjJFQzcwMDEyMkMwNDQKKzoxMDMyNTAwMDAwRTU3MjI0MThGOEE2MDRFNTcyMjQwOEY4QzY1NDdGMjUKKzoxMDMyNjAwMEY2RTYzMEU3MDNEMDAwMjIxMjMxRTc4MEY0QzI4Qzg1MDUKKzoxMDMyNzAwMDc2OEM4NTc3OEFEMjhDQzBFMEMwRDBDMEYwQzA4MkMwODYKKzoxMDMyODAwMDgzQzAwMEMwMDFDMDAyQzAwM0MwMDRDMDA1QzAwNkMwQTYKKzoxMDMyOTAwMDA3MTIxQjI4RTU3MjI0MDhGOEU2NjAyNEU1NzIyNDEwNjIKKzoxMDMyQTAwMEY4QTY4MUU1NzI3NUYwMjFBNDI0OTVGNTgyRTQzNEZEMzkKKzoxMDMyQjAwMEY1ODM3OEE4RTU4MTA0QzM5OEY5RTZGMDA4QTNEOUZBNjQKKzoxMDMyQzAwMDc0MDgyNTcyRjgwNTcyMDhFNjU0ODA3MDBDRTU3MkI0MzMKKzoxMDMyRDAwMDA3RjM3ODA4NzU3MjAwODBFRkU1NzIyNDEwRjg4NjgxOTQKKzoxMDMyRTAwMEU1NzI3NUYwMjFBNDI0OTVGNTgyRTQzNEZERjU4Mzc4MjgKKzoxMDMyRjAwMEE4RTU4MTA0QzM5OEY5RTBGNjA4QTNEOUZBRDAwN0QwNkQKKzoxMDMzMDAwMDA2RDAwNUQwMDREMDAzRDAwMkQwMDFEMDAwRDA4M0QwQTUKKzoxMDMzMTAwMDgyRDBGMEQwRDBEMEUwMzJDMEUwQzBEMEMwMDBDMDAxMzgKKzoxMDMzMjAwMEMwMDJDMjhFODU3ODhEODU3OThCRDI4RTc4MTk3OTA5MDUKKzoxMDMzMzAwMDdBMDdFNzcwMDRBNjAwODAwQkU2NjAwODE2RTY3MDA0QzIKKzoxMDMzNDAwMEU3NDQ4MEY3MDgwOURBRUFFNTczNjAxMzE0RjU3MzcwNEYKKzoxMDMzNTAwMDBFRTU3MjI0MDhGODc2MDAxMjMxOTNEMjhDRDI4REQwMEIKKzoxMDMzNjAwMDAyRDAwMUQwMDBEMEQwRDBFMDMyNzU4MUE3NzU5MDAwOTYKKzoxMDMzNzAwMDc1NzkzMDc1NzhGODc1Nzc2MDc1NzZGMDEyMDUzQzEyQkUKKzoxMDMzODAwMDM0MEYxMjE3OEIxMjM0MzkxMjMxRjU4MEUzMjJDMDAwNEEKKzoxMDMzOTAwMDdDMDFFQzI0MDhGOEU2NjAwOTBDQkMwOEY1MTIzMUU3NjIKKzoxMDMzQTAwMDgwRUVEMDAwMjJDMEYwQzA4MkMwODNDMDAwQzAwNkMwNDIKKzoxMDMzQjAwMDA3RUQyNDEwRjg3NkI2RUQ3NUYwMjFBNDI0OTVGNTgyN0EKKzoxMDMzQzAwMEU0MzRGREY1ODNDMDgyQzA4M0EzQTNFNDc4MERGMEEzQTkKKzoxMDMzRDAwMEQ4RkNFQzU0N0Y3NUYwMDJBNDI0ODJGNTgyRTVGMDM0MjkKKzoxMDMzRTAwMDM0RjU4M0U0OTNGRTc0MDE5M0Y1ODI4RTgzRTQ5M0ZFQjcKKzoxMDMzRjAwMDc0MDE5M0ZGRDA4M0QwODJFRkYwQTNFRUYwRUQyNDA4QTgKKzoxMDM0MDAwMEY4RUM0NDgwRjZEMDA3RDAwNkQwMDBEMDgzRDA4MkQwMkMKKzoxMDM0MTAwMEYwMjI3NTcyMDA3NTc1MDA3QTA4NzkxODc4MDg3NjAwQzAKKzoxMDM0MjAwMDc3MDAwODA5REFGOEU0NzgwODc0ODA0NDdGRjY3NDAxQkMKKzoxMDM0MzAwMDQ0MTBGNTg5NzVCODA4RDJBQkQyQTkyMjc1ODFBN0QyRkMKKzoxMDM0NDAwMDhFRDI4Q0QyQUZFNTc1NjAzMkZGOTBGRTlERTA1NDgwNDUKKzoxMDM0NTAwMDYwMjQ3ODA4NzkwOEUwNTQ3RkZBN0IwMEU2NTQ3RkI1NTEKKzoxMDM0NjAwMDAyMDI3QkZGMDhEOUY1RUI3MDBDRUFGMDEyMzM4QkFENEEKKzoxMDM0NzAwMDA0QUMwMjEyMzNBMkEzQTNBM0RGRDIxMjMxRTc4MEM1QUEKKzoxMDM0ODAwMDdDMDE3RDAwMjIwNEY1MDRFOTA0RUQwNEUxMDRERDA0N0YKKzoxMDM0OTAwMEQ5MDRFNTA0RjEwNDlEMDRBMTA0Q0QwNEQxMDQ5OTA0RTgKKzoxMDM0QTAwMDk5MDQ5OTA0RDUwNEI1MDRBRDA0QjEwNEE5MDRDMTA0NzgKKzoxMDM0QjAwMEJEMDRCOTA0QzUwNEM5MDRBNTE5MDEwMzAwMjIwMDQ4Q0MKKzoxMDM0QzAwMDAyMDAyNDBGMTgwQTEwNjQwRDY4MEMwNTA2MDIwMzAxOUYKKzoxMDM0RDAwMDAxODEwMTAwMDBFNzAwQzAwMDgwMDA2MDAwNDAwMDMwNzIKKzoxMDM0RTAwMDAwMTgwMDBDMDAwODAwMDQwMDAyMDAwMTAwMDgxODM4NTEKKzoxMDM0RjAwMDI4MDYwMjEwMEEwMjAwMDAwMDAwMDAwMTgxMTAwQTAyRTIKKzoxMDM1MDAwMDAwMDAwMDAwMDBGQkU4RkJGQTEyMDExMDAxRkYwMDAwQzAKKzoxMDM1MTAwMDA4NTEwNDVGNTAxNjAxMDEwMjAwMDIwOTAyMzUwMDAxNDIKKzoxMDM1MjAwMDAyMDBFMDAwMDkwNDAwMDAwNUZGMDAwMDAwMDcwNTgxMUIKKzoxMDM1MzAwMDAyNDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1ODIwMjQwMkEKKzoxMDM1NDAwMDAwMDAwNzA1MDIwMjQwMDAwMDA3MDU4NTAzMDIwMDAxOTQKKzoxMDM1NTAwMDA0MDMwOTA0MjQwMzU0MDA2NTAwNzgwMDYxMDA3MzAwMkIKKzoxMDM1NjAwMDIwMDA0OTAwNkUwMDczMDA3NDAwNzIwMDc1MDA2RDAwNDkKKzoxMDM1NzAwMDY1MDA2RTAwNzQwMDczMDAyQTAzNTQwMDU1MDA1MzAwNjgKKzoxMDM1ODAwMDQyMDAzNTAwMzAwMDM1MDAzMjAwMjAwMDUzMDA2NTAwNTUKKzoxMDM1OTAwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNTAwMDZGMDA3MjAwMzIKKzoxMDM1QTAwMDc0MDAyMjAzNTQwMDU1MDA1MzAwNDIwMDM1MDAzMDAwREYKKzoxMDM1QjAwMDM1MDAzMjAwMjAwMDIwMDAyMDAwMjAwMDIwMDAyMDAwRTQKKzowNDM1QzAwMDIwMDAyMDAwQzcKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS90cl9zbWN0ci5iaW4uaWhleCBiL2Zpcm13YXJlL3RyX3NtY3RyLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTc0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS90cl9zbWN0ci5iaW4uaWhleApAQCAtMCwwICsxLDQ3NyBAQAorOjEwMDAwMDAwQkMxRDEyM0I2M0I0RTkwMDAwMUYwMDAxMDEwMDAyMDVBMgorOjEwMDAxMDAwMDEwMDA2MDMwMTAwMDQwOTAxMDAwQTA3MDEwMDA4MEJBMgorOjEwMDAyMDAwMDEwMDBDMDAwMDAwMDAwRjAxMDAxMDBEMDEwMDBFMTM3NAorOjEwMDAzMDAwMDEwMDE0MTEwMTAwMTIwMDAwMDUwMDE1MDEwMDE2MTkzRAorOjEwMDA0MDAwMDEwMDFBMTcwMTAwMTgwMDAwMEUwMDAwMDAwMTAwMDA1NgorOjEwMDA1MDAwMDAwNDAwMUIwMTAwMUMwMDAwMDcwMDAwMDAwRjAwMDA0RQorOjEwMDA2MDAwMDAwQjAwMUQwMTAwMUUwMDAwMDgwMDAwMDAwMjAwMDAzRgorOjEwMDA3MDAwMDAwQzAwMDAwMDA2MDAwMDAwMEQwMDAwMDAwMzAwMDA1RQorOjEwMDA4MDAwMDAwQTAwMDAwMDA5MDAwNDc4QzZCQzAxOTQwNDkzODBCMworOjEwMDA5MDAwQzg0MDYyRTlEQTFDMkMxNTU1NTU1NTU1NTU1NTU1NTgyQgorOjEwMDBBMDAwMEJFOUU1RDU5NUMxOUQ3N0NFQkJBMDZFMUMwNUY2NzcxMworOjEwMDBCMDAwQzYwMkZBOTY3MEU4MURDMDE3MEUwMkZBNTg3REMwNUY5RQorOjEwMDBDMDAwNzJDRUVDQTRDMzg0OTA3QTMwQ0Q4RDc5MTlFNzZDMjQ3QworOjEwMDBEMDAwMjc5QzA4MzkwNzM4QTg0QTRDRUE0RDk4OUIyNDRDQzAwNQorOjEwMDBFMDAwMjZEM0U3NTQ1QTRERjI0QzBDMTMyMzQ5OTAzMjZFQTQ5OAorOjEwMDBGMDAwREY5MzcxMTM3NzI2RTEyNkY4MjYwQzRDMTIyNjA4MDlBNworOjEwMDEwMDAwODI4MjYwQTkzMDc5MzZCMEIyQThBNzcyNjQ4RjlCMzMxRgorOjEwMDExMDAwMzNGOUI4MzlENTExNzNBQTc1MjY1RDI2NTE5MzJBNDk0QQorOjEwMDEyMDAwOTRDOTk1ODlCQzREQzg5QjgwOUJBMDk5MDY0Qzg2MjY5NgorOjEwMDEzMDAwNTg5QkE0OUI5OTM3NjI2QzY3OUIzMzMwQkYzNjY2NjFDRQorOjEwMDE0MDAwQkYzNkVDQzVCRDY2ODI1QTUwMzFENTlEOTgxODI5M0MwMgorOjEwMDE1MDAwOTg4NjRDMTcyNjNFMkNCODY5M0I0OTJFQjQwODQzMUFBMgorOjEwMDE2MDAwQTRGOUIzNTFGMTEwRjM0M0NEMDg2RjYzNzlCMzMzMEVBMworOjEwMDE3MDAwMTM5ODQ5OTgwNERBN0NFMDUyNzkzMTBDOTgyRTREQUNGMgorOjEwMDE4MDAwMkM4NDE0RUU0Q0ZFNjc1RUU0OUE3NTI5RDdBOTM1M0FBMworOjEwMDE5MDAwOTQ1QkQ1OUI1OEI0QUY3NTY2QUYxNEE5RUY0MDk1MjUxNQorOjEwMDFBMDAwMDhCOUFENDJGQ0Q4RDk4QzMzMEUxMzk4NjYxRTQ1QUMwNQorOjEwMDFCMDAwQjAwQzQyRDNDQ0E2MTI2MkRFQjRCMTgwNDk3REEyREU3RgorOjEwMDFDMDAwQjQxOEMwMjQ4NEU2NTRGNTgzNDYwMTY4MUE2MzBDQzY0QgorOjEwMDFEMDAwMTI2NEZBNEMzNTFDMkMwRUFBQUFBQUFBQUFBQUFBQUE4OAorOjEwMDFFMDAwQUFBQUFBQUFBQUFERDcwMjcwRTA0Q0YzQTFDMUQ1QzBCMQorOjEwMDFGMDAwM0NCOTY5Mzk2MDRFNTg3NzAyNjc5MzNDOTlFNENGMzgyRgorOjEwMDIwMDAwMUM5NzJFNDAxQjkwMzE0NkEzNUUwRTg4MzQ2QTM1RTA2MQorOjEwMDIxMDAwRThBQTM1MUFBOUY1MTU0NkEzRUE3RDRBQTM1MUFBOUY3MworOjEwMDIyMDAwNzA1NEE2NTcyRUI0Q0RDOEEzMENDMURBQzZFMUNCN0E2MAorOjEwMDIzMDAwRDQxQzY4RkZDRjU1QThDMDJEODUxMTE3NDQyQTMwMEI1OAorOjEwMDI0MDAwNEE4OEMyNERCNTIwRDUyNjAxNjk1MTY5NTIxOTUyNjBCQworOjEwMDI1MDAwMTY5NTE2ODI5NjU0OTgwNUE1NDVGM0RENkFGOTI4MTg3NworOjEwMDI2MDAwRUYwMDMwMzA1MTRFNDQ1RDEyRDE0M0U2MTI2RjlFQkExQQorOjEwMDI3MDAwQ0NERjI1MDMxREUwMDYwNjBBMzBDQ0E5RUIyRDAwODY1NQorOjEwMDI4MDAwQTYxMjY1NEY1NkQ2NjU0OTVGM0RFODM3Qzk0MEM3NzgyNQorOjEwMDI5MDAwMDE4MTgyOEMzMzE4NDk4MEFFNDBDNTE4MDU5QzZEMThDOQorOjEwMDJBMDAwNjYwRUYzQTBDNjEyNjJERUY1MDRCNEFDNkJDNjE5OTFGQgorOjEwMDJCMDAwNzMwNTQ4MkU3Mjk0ODA3M0ExQzg0NzM2NjY2NDJGMzY0MgorOjEwMDJDMDAwNjY2NDA3OTkwMjkxOEU3MkQxMEY5RDA2MzE3M0EwQzNBNworOjEwMDJEMDAwNTE2QTFBMjBCRjNBMEMyQzczODc0MzVFNjAwMjIzRkNEQworOjEwMDJFMDAwRTBENjM1RUY5RUY1RUY5MjgxOEVGMDAzMDMwNTE4NjY5OAorOjEwMDJGMDAwNDVDQzBCNDgyRTcwMEE0MDM5RDBFNDIzOUIzMzMyMTc4QgorOjEwMDMwMDAwOUIzMzMyMDNDQzg1NDhDNzM4MTRBNUNFMjk3RUQyODBEMgorOjEwMDMxMDAwQTFBOEI0NDg4ODJGQ0U4MzBCMUNFMUQwRDc5ODA0ODhCRAorOjEwMDMyMDAwODdDRTk2MzE3M0E1OEZGMzgzNThEN0JFN0I4MkFGOTI2OQorOjEwMDMzMDAwODE4RUYwMDMwMzA1MTg2NjQ1Q0MxNTIwQjlDODI5MDA0NQorOjEwMDM0MDAwRTc0MzkwOEU2Q0NDQzg1RTZDQ0NDODBGMzIwNTIzMUM4MgorOjEwMDM1MDAwRTQ1MEQ0NUExNzg4MkZDRTgzMTBGOUQwMjMxNzNBMDRDQgorOjEwMDM2MDAwMzVFNjAwMjIxNjM5QzNBM0ZDRTBENjM1RTBCRkY0MTgwOQorOjEwMDM3MDAwRjIyRDRENDM1MTZFNUEyMjFGMzBENDE3RTc0MTkxNzMyRAorOjEwMDM4MDAwMDU0ODJFNzc2OTAwRTc0MzkwOEU2Q0NDQzg1RTZDQ0MzNAorOjEwMDM5MDAwQzgwRjMyMDUyMzFDRUY0QzRFMDYwNEM5OUUwQkZGNDFDQgorOjEwMDNBMDAwOEYyMkQ0RDQzNTE2RTVBMjIxRjM1QTgyRkNFODMyMkVFRQorOjEwMDNCMDAwNjBBOTA1Q0UxMzQ4MDczQTFDODQ3MzY2NjY0MkYzNjY0QgorOjEwMDNDMDAwNjY0MDc5OTAyOTE4RTcwQTk4OUMwQTlFQjUxMjVDN0NEMQorOjEwMDNEMDAwQzMzMThCOTgyQTdDRDNFRDM4RTlEMzRFNzRFRDQ5OUUxNgorOjEwMDNFMDAwMEJGRjQxOEYyMkQ0RDQzNTE2RTVBMjJERUI0NTMzOEY3OAorOjEwMDNGMDAwRkNGN0EwNUYyNTAzMURFNDBFMDYwQTMwQ0MwQ0YzRUJERQorOjEwMDQwMDAwNDBERTYxQTg3MDkyMEEwMEUxMjQxRTAwRTEyNDFFMDA3MworOjEwMDQxMDAwRTEyNDFFMDBFMTI0MUUwMEUxMjQxRTAxMEY5ODJBMEI5NgorOjEwMDQyMDAwRjNBMEM4QjlBMkE0MTczQTY5MDBFNzQzOTA4RTc1NDhCMworOjEwMDQzMDAwNUU3MDY5MDFFNjAwNTIzMUNDMTgxNEE1Q0MwOTgyOTQ5MworOjEwMDQ0MDAwNzMwQ0EwOTFGNTI1Q0MwNzA2ODQ4NDlGMzBBMkE0N0Q2RgorOjEwMDQ1MDAwNTA3NUE2NjUwMTRBOEVCNENDQzQzNTU0NzU2NkE0OTcxMAorOjEwMDQ2MDAwN0E4OTUwNTMxMzgwMTlFMzQ5NUM2RENFQTk0MDM1MDY1MworOjEwMDQ3MDAwNzhEMjU3MDZGMUIzMkE4RDk3MjM2MjkyNUQ2OTk5MUM1MQorOjEwMDQ4MDAwNkEzNkU2Q0Q0NjEyNkY5RUUxQUJFNEEzMENDMERFQUM0QgorOjEwMDQ5MDAwRDQwRDI4MUJEMDEyQTUwMEY4NEJBRDMzMjgwNkEwREVFMgorOjEwMDRBMDAwMTQ5NzNBODk1REMwMERFMzA2OTA5MjVENjk5ODY2QjkyQworOjEwMDRCMDAwMTk5NUU0QThDRjlEMzMxODQ5QkU3Qjg2QUY5MjhDMzM0MworOjEwMDRDMDAwMjQxNDBDRjQ4MzI0MjFDMjcwQkZGNDE4RjIyRDRENDM4MAorOjEwMDREMDAwNTE2RTVBMjIxRjMyQTgyRkNFODMyMkU2MDVBNDE3M0E2NgorOjEwMDRFMDAwNjkwMEU3NDM5MDhFNzU0ODVFNzA2OTAxRTY0MkE0NjMzNworOjEwMDRGMDAwOTgwMjI5NEI5QTI5NzhFOTQwNTMxMzgxODEzMjY3ODIwNworOjEwMDUwMDAwRkZEMDYzQzhCNTM1MEQ0NUFFNTAwODdDRTBEMDVGOUQ4NworOjEwMDUxMDAwMDY0NUNDMDFBNDE3M0E2OTAwRTc0MzkwOEU3NTQ4NUUwMgorOjEwMDUyMDAwNzA2OTAxRTY1OUE0NjM5ODFDNTI5NzNCMzA1MjhFN0Q0NgorOjEwMDUzMDAwMkEwOTFGNTFFQkE0QTQwQUI5OTQ4N0FFQzUzMTM4MDIyOQorOjEwMDU0MDAwRkZEMDYzQzhCNTM1MEQ0NUFFNTAwODdDRUEyMEJGM0FGMAorOjEwMDU1MDAwMEM4QjlBMTY5MDVDRTlBNDAzOUQwRTQyMzlENTIxNzk0MworOjEwMDU2MDAwOTU0ODBGMzAwQTkxOEU2MEVCMjk3MzAwMDk1NDA0Q0EzNAorOjEwMDU3MDAwODI2NTUyNjVFNENBMjI2NTcyNjUwOTMyRTA5OTcyNEM1RgorOjEwMDU4MDAwQzRFMDBCRkY0MThGMjJENEQ0MzUxNkI5NDAyMUYzOEE0MQorOjEwMDU5MDAwODJGQ0U4MzIyRTYwQTkwNUNFOUE0MDM5RDBFNDIzOUQzMgorOjEwMDVBMDAwNTIxNzk5NTQ2MTk5MDFFNjQwQTQ2Mzk4MDRCMTg0OTg2NAorOjEwMDVCMDAwMThFRjJEMDMwNTMxMzgwMkZGRDA2M0M4QjUzNTBENDU1RQorOjEwMDVDMDAwQjk2ODg4N0NFMDUwNUY5RDA2NDVDQzgxNDgyRTcxMzQyNworOjEwMDVEMDAwOEY0ODAxNDgxNTIxMDUyMUU5MEE1MjAzQ0U1QTQ2MzlCMAorOjEwMDVFMDAwQ0Y0NzhFNjBBQjFBRjM1MzQzRUIzNTI0QjgxQjMwMDc2QgorOjEwMDVGMDAwMDk4QTc0MkY3RTQxNzQxRTFEMEQ4NzQ2NDlENTk1RDFGOQorOjEwMDYwMDAwRDVENUJCQTk0RTgyOUQwNTNBMEE3NDE0RTgyOUQwNDI3QgorOjEwMDYxMDAwNzQ1QkNFNTBDNDA3NDVCQ0UyMEM0MDc0NUJDRTgzMDRDRgorOjEwMDYyMDAwRjk5NTREMTM2MzVFNkYzMTNCQTA4QkEyQzUzOThENzg3MAorOjEwMDYzMDAwM0EyMkEwMDA2QkMxRDE1NDYwMTZEOTkxQTJFNzQzOEMzNQorOjEwMDY0MDAwMjREQzFDRTA1MTE3Mzk2QjNCQ0M0QjQyMkU2QjUwQkY2NgorOjEwMDY1MDAwMzYzNjY1NEY3QTE4NTUyNTc4OTgyM0U3NTAzRUYzODE1MgorOjEwMDY2MDAwNEMwMjZEM0U3MTUzQUY3OEE5RDRBNjI5QjFCQ0Q5OTk3QgorOjEwMDY3MDAwQjI4RTYyOEYyMjJFNzUxNkIwQjJBQjIzMjgxNjU0NTI1QQorOjEwMDY4MDAwMzFCQ0Q5OTlCMjhFNjYxOTAyMkU3NTE2NTAyQ0E5QzhBNAorOjEwMDY5MDAwQzZGNTIwRDNFNDdGNEY5QzBBRDYxNjdGOTBFRTRDRUIzNAorOjEwMDZBMDAwQ0ZFMjg4QkEyRjQyODZBRUJERTVBNzUyOUY5MzYzNzkwOQorOjEwMDZCMDAwRUIzMzA4Rjk5NDUyNDdDRDk5MjU2RjNBMEMxM0U2NTU2MAorOjEwMDZDMDAwMzQ0QzVBNERCNTIzOTVBNTQ4MTE1QTBBNDM5NUFDMkM4NAorOjEwMDZEMDAwQkEyNDA1NDlCMUJDQ0FBNzcyNkM2QkM1QkRFODMxNjlDMworOjEwMDZFMDAwNTI1RDA2MTI2NTNFQjE1MDRDN0Q0RkFDMEEzMDBCMzY2MAorOjEwMDZGMDAwNjQxMTczOEE4MzhFNzUxMjlGN0JEMjk5NThFRTgyMkU3NQorOjEwMDcwMDAwNzdBMEUzOUQ1RDRGQkMyQTUzMjk1M0RFOTMyNEJBQjNFRgorOjEwMDcxMDAwMzZBQTRBQzY3OUQ0QjlERTYyNUExMTczNTA1MEJGMzcyRgorOjEwMDcyMDAwMzY2RjEzMjNCQTBDMjRDRUJERTJBNzUyQjI4RTZCNjA5MworOjEwMDczMDAwNjIyRTc1MTMzMEFDQTA1OUNBNjQ2Mzc5QjMzMzY1MUM1QgorOjEwMDc0MDAwQ0MzMjA0NUNFQTJDQTA1OURGMjMxQkQ0ODM1MjQ3REQ1MgorOjEwMDc1MDAwNzk5NkQ0OUVCMzUyNEJBMjVBMUE4RDVEN0I4MkE3NTJEMgorOjEwMDc2MDAwQjI4RTY2MTkwMjJFNzUxNjUwMkM4QzMyMUQ3QjhFQTcwOAorOjEwMDc3MDAwNTJCMUJDRDk5OTk4MDREQTdDRTJBQ0ZFNjYxOTAyMkUxQgorOjEwMDc4MDAwNjU1MEJGMzM2NjY0RkU3NDE4ODY0QzE3MjZENjE2NTIyMQorOjEwMDc5MDAwMzkxOERFN0FDQ0MyM0U2NTE0OTFGMzY2NDkwODZFODMzRgorOjEwMDdBMDAwMDkzM0FGMzFFRDBEOUQwNjEyNjIyQTMxOEQ2REU3NDE5RgorOjEwMDdCMDAwODI3Q0NBQTY4OTg3MDkyRTI5QjFBRjEwMzlENjY0OTdFMQorOjEwMDdDMDAwMzAxRDQyNzU5MzQ0MDI4QzI0RDI3QUIzNTBGNjg5MDVDOQorOjEwMDdEMDAwNDM1RTYxOThDMDJDOTIyNTNDOEIyNDg5NDkwNTQ5RTdFQQorOjEwMDdFMDAwMENCOTg0OThCN0FEMzM0NEFFNUE1MTg2NjA5RjM4QTk4RQorOjEwMDdGMDAwQTI2QzZCQzQ4RUY0NUU0OTQ2MTI2MkRFQjRDRDIxNUNGRAorOjEwMDgwMDAwQjRBMzBDQzEzRTcyMjlBMjZDNkJDNjEyNjI0N0YwRTgxOQorOjEwMDgxMDAwQzMzMjA0MzU0MDkyQTQ4Mjg4MTA5MjdDQ0JENDJGQTQ5QQorOjEwMDgyMDAwMDIxMTg0OThCN0FEMzM0NEFFNUE1MTg2NjA5RjM4QTlGRgorOjEwMDgzMDAwQTI2QzZCQzQ4RUY0NUU0OTQ0MDg0OTNFNjVFQTE3RDI0NworOjEwMDg0MDAwMDEwOEMyNEM1QkQ2OTlBNDJCOTY5NDYxOTgyN0NFNDU5QgorOjEwMDg1MDAwMzQ0RDhENzg4MTA5MjdDQ0JEMTIyODZDNThBRkI2RjM4MgorOjEwMDg2MDAwQTBDMTNFNjU1MzQ0RDhENzkyOEU3RDRCQzJGQTYxMjYxMworOjEwMDg3MDAwMDYzQUIzNkIwMzA1NDlFNzBDQjk2RjVBNjY5NTVDQjQ0OQorOjEwMDg4MDAwQTMwQ0MxM0U3MDI5QTI2RUE0REY5MzcxMTM3NzI2RTFGOQorOjEwMDg5MDAwMjZGODI2QzZCQzk0NzNGOTJGMEJFOTg0OTgxOEVBQ0M4NQorOjEwMDhBMDAwRUMwQzE1Mjc5QzMyRkYzRDU2QUY5MjhCN0FEMzM1RDU5MQorOjEwMDhCMDAwQ0I0QTMwQ0MxM0U3MDI5QTI2QzZCQzk0NzM0MTk3OTE3OQorOjEwMDhDMDAwRjQ4M0NFMDQyMDYyOEIwNTE2NDk4QzI0QzBDNzU2OTA1MQorOjEwMDhEMDAwQzBDMTUyNzlDMzJFNUJENUE2NzJEMjk0RkFBRDU4Qzg2NgorOjEwMDhFMDAwRkE5RjU0QjMzMjRCQjk1NEE2NTE4NjZCNzlEMDYwOUZBRQorOjEwMDhGMDAwMzIwNTM0NEQ4RDdBNEQxRTdBQjM1MTAwQTkzRDU5QTg2OQorOjEwMDkwMDAwN0I0NDgyQTFBRjRBOEQ1MkE5NTI0MTQ5NEYzQTJFNDBCMQorOjEwMDkxMDAwQTQ5OTUwQkU5MDA4NTI3OUMzMkU2MTI2MkRFQjRDRDA3RAorOjEwMDkyMDAwMTVDQjRBMzBDQzEzRTcwMjlBMjZDNkJDNDhGRTFEMjVEQgorOjEwMDkzMDAwNDZBOTU0QTkyMEE0QTc5RDE3MjA1MjRDQTg1RjQ4MDQ5QgorOjEwMDk0MDAwMjMwOTMxNkY1QTY2ODBBRTVBNTE4NjYwOUYzODE0RDFBMAorOjEwMDk1MDAwMzYzNUU0QTc5RDE3MjA1MjRDQTI0NTBEOEIxNUY0OTExNgorOjEwMDk2MDAwREU4QkM5MjhDMjRDNUJENjk5QTk1Q0I0QTMwQ0Q2RjMyNAorOjEwMDk3MDAwQTBDMTNFNjQwQTY4OUIxQUYxNkQ0Q0FBOTJFMDM2OTRCRAorOjEwMDk4MDAwNzA5QjI5NzgxM0FFQjNBQTg1RDQ0Mzc1MDkzQUM5RUI5NQorOjEwMDk5MDAwMzUyNEI4MUIzMjhFMTM0ODdFNEVGRDQwRkQ0MEZENDA4RAorOjEwMDlBMDAwRkQ0MEZENDBGQzEzRjQyMUY5MTc0NThBMzAwQjMzNUZGRAorOjEwMDlCMDAwODNBMjJBMzAwQjMzNUY4M0EyQThDMDJEQjMyMDcwOTI4QworOjEwMDlDMDAwMTM5QURFNzQxODI3Q0NBQTY4OUIxQUY3MDc0NTUxODA0MgorOjEwMDlEMDAwNUI2NjQ3MDczOEE4MjNFNzUxMTEzRkUwRTg4NTQ2MDFFOQorOjEwMDlFMDAwNkQ5OTA2MTI2NTRGN0EyMDI0QkFCMzMyMTUyNTdCQUQ3NgorOjEwMDlGMDAwMzM3OEFFMEU3M0QwNDdDRUE3MzBDQzQ0RkY4M0EyQTg4NQorOjEwMEEwMDAwQzAyQ0Q5OTFDMUQxMTUxODA1OUIzMjA4QkEyQzUxODA0MAorOjEwMEExMDAwNTlCMzIwNzA5MkUyOTg4OUZEQkNFRTE4OTBGQzhCQTIyRAorOjEwMEEyMDAwQzUyQjBENzgzQTIyQTU2MUFGMDc0NTUxODA1QjY2NDQxRQorOjEwMEEzMDAwOUVCMzUyNEI4M0FEQzcwOUJFMUY5Rjc0NjU1RDBBMTdGNQorOjEwMEE0MDAwN0NBQkEwQzI0QzM4NDkxMjJFMzg0OTA3QTMwQ0MxM0VEQQorOjEwMEE1MDAwNjU1MzQ0RDhEN0FERTcwMDMyNEI5QjMzMzQ0QTAzMDA4QgorOjEwMEE2MDAwOUQyNUNFODMyNEI4MTk5OThDMDIxMjRCQTE5OUQ4QzAyOAorOjEwMEE3MDAwMjc0OTczQ0ZGOTNDRjQ3Q0U3OTgwNEU5MkU3RjM5RTNFQQorOjEwMEE4MDAwNEY0NjUzQzA2MDEzQTRCOUU1M0MwM0RFOEY5Q0YzMDBDRQorOjEwMEE5MDAwOUM2RkNGM0U4NUY5QTMzNjAyMUU2MDM4OTIzRTYzMUFFMgorOjEwMEFBMDAwMTA5RkNGMTgxMDkyQkNEMEE0MENEQ0MwMEY5Qzk3MzRDMAorOjEwMEFCMDAwNjJCNkU3RjNGM0E1Q0YxODQyMzQxQ0MyQ0FGQThFNjhCNworOjEwMEFDMDAwNTIwNkFGM0NBMzBEQkY5RTUwRTFEMTczQ0FFMDNBRkM4MQorOjEwMEFEMDAwQzEwOTFBMUU2QTVDNUI4RTYzNEU3NzczQ0M2MTY3REQ1OQorOjEwMEFFMDAwRTY2QzQ4RDFGMzFCMjQ2OTUxMDhENDQyMUJGNDY3RDE0QQorOjEwMEFGMDAwODA0RTJGRDA4Q0Q4MzAwOUMyMUU4MDFDNDYwMTNBNDc0OAorOjEwMEIwMDAwRDAzMUExMDYwMTNBN0Y0NjMwMjExODA0RTk1RTg0MjlEQworOjEwMEIxMDAwMDBDMDI3Q0REMDAwN0M5ODA0RjkyRTg0NjI4QzAyN0QyMQorOjEwMEIyMDAwQkEzRTdFNEMwMjdEMkU4QzYxMDgzMDA5RjQxRDAxNjVCMQorOjEwMEIzMDAwNzMwMDlGNTFEMDg1MjAxODA0RkFCRDE5NDYxOEMwMjdBQworOjEwMEI0MDAwREZEMTk0Mzg0QzAyN0QxNzQ2NTcwMTMwMDlGNUZBMDE4MAorOjEwMEI1MDAwMDkwNjAxM0U4N0ExNEI4OEMwMjdEQzc0MEQzOUQzMDBGQworOjEwMEI2MDAwOUY3M0QwMzBCMzk4MDRGQkJEMDZDNDgzMDA5RjQ3RDA2OQorOjEwMEI3MDAwMzY0OENDMDI3MUJGM0Y5QTE3RTYzRjA4MjFFNjkyQTQ5RgorOjEwMEI4MDAwOEY5QTEwMzFBN0YzMTBCMTg0QUYzQUFDRENGNzczRjI0RgorOjEwMEI5MDAwNUNDNjJBREI5RTdFN0U5NzMxMDg2M0QwNzM3QjQzQThCOAorOjEwMEJBMDAwRTYzRDM0RUFGM0UzMTVCRjlGMTg1RjQ1Q0ZFODlGNUY0QQorOjEwMEJCMDAwOUE1QjAzRDBGM0QzQ0UzNzFDRDAwRkJCOUU2ODc4M0IzMworOjEwMEJDMDAwQkNDQTMxRThGOUEyMDIxMkEyNzM1MTA4NkZEMUYzNDZGMAorOjEwMEJEMDAwMDEzOEJGNDBGQzIzMDA5QzIxRTg0OTUxODA0RTkxRjQyQworOjEwMEJFMDAwMjEwMzE5ODA0RTlGRDAyMTYzMDYwMTNBNTY4QzAyNzQ2RQorOjEwMEJGMDAwRkU3NTQ5NUU2M0QzNEE1NDQyMzUxM0E3RDE4MDRFOTVBMgorOjEwMEMwMDAwRTgxRTlBNEMwMjdDREQxQkI5RTYwMTNFNEJBMDYyQTNCNAorOjEwMEMxMDAwMDA5RjZFOENGQ0YzMDA5RjRCQTA0MjE4Q0MwMjdEMDcxNgorOjEwMEMyMDAwNDNEQTEzMDA5RjUxRDAzRDM0OTgwNEZBQkQxQzYyOEMwNgorOjEwMEMzMDAwMDI3REZEMUM2MTczMDA5RjQ1RDFGNDRFNjAxM0VCRjRGRgorOjEwMEM0MDAwMjVCMDMzMDA5RjQzRDFBNzlDMTgwNEZCOEU4NDAzRTk5MQorOjEwMEM1MDAwODA0RkI5RTg0M0MxMzAwOUY3N0EwQTMxOTgwNEZBM0U2NworOjEwMEM2MDAwODQ0MDQxODA0RTgyRTc0MTg3MDkyMzA0MjMwMDlEMDU4QgorOjEwMEM3MDAwQ0U5NjFDMjQ4QzEwOEMwMjc0MTczQTA0Mzg0OTE4MjEyMworOjEwMEM4MDAwMTgwNEU4MkU3NDUwRTEyNDYwODQ2MDEzQTBCOUQ0MTFENAorOjEwMEM5MDAwQzI0OEMxMDhDMDI3NDE3M0E4MjM4NDkxODIxMTgwNEVBNQorOjEwMENBMDAwODJFNzUyOEUxMjQ2MDg0NjAxM0EwQjlENDAxQzI0OEM2NgorOjEwMENCMDAwMTA4QzAyNzQxNzNBMDkwRTEyNDYwODQ2MDEzQTBCOTgzNgorOjEwMENDMDAwNkExQzI0QjBFMTE4MDRFODJFNkI1MEUxMjU4NzA4QzBBNworOjEwMENEMDAwMjc0MTczMDU0Mzg0OTYxQzIzMDA5RDA1Q0NBQTFDMjQ0MAorOjEwMENFMDAwQjBFMTE4MDRFODJFNzA2ODcwOTJDMzg0NjAxM0U1NDQ4NAorOjEwMENGMDAwRjk0MDlEMDVDRTVBMUMyNEIwRTExODA0RjlEMTNFNzA4QworOjEwMEQwMDAwMjdDRjEzRTU0NDJDQTA0MkNCODlGMjIxM0EwQjlDMEE1MQorOjEwMEQxMDAwMUMyNEIwRTExODA0RjlEMTBCMzgxMEIzQzQyMTM5MzZDMgorOjEwMEQyMDAwNUM0MkM4ODQyQjc5RDA2MUMyNzQxNTI0QkFEMzMxRTVGMgorOjEwMEQzMDAwNTkwODI5MDhFMDY2NjM0Mjk1MTI4MTAwMjkwQkMxNTFDOAorOjEwMEQ0MDAwMjRCODE5OTk5MDIyOTBCNDE4QTA5MTQxMDE0MTQxNDFEMQorOjEwMEQ1MDAwNTI4M0NBNDAyODY4MjkwOEJBMTYxMDlDOTkwQjU2OTRFOQorOjEwMEQ2MDAwOTA1MjE1NzRDMDI3MUEyQUQyOTAyNUQzMDA5RDI4QUIyMworOjEwMEQ3MDAwNEE0MjE3NEMwMjcwRDQ4NDJFOTgwNEUxMkE0MjE3NEM0MAorOjEwMEQ4MDAwMDI3MDgyOTA0QkE2MDEzODUxNDg0MkU5ODA0RTE1QTQ2QQorOjEwMEQ5MDAwMjE3NEMwMjcwRkE0MTJFOTgwNEU4MkFDODBBQ0EwQUNCNQorOjEwMERBMDAwQTk1OUU1NjQ0NTY1Q0FDODRBQ0UwQUNFNEFDRTk1OTE4RQorOjEwMERCMDAwOTU5NDk1OTMyOTI1QzBDQ0NDODhBNDk3NTYzNjY0NzIxNworOjEwMERDMDAwOTA1NDhBOUM0NTA4QjlCNzY2MTI5MzA5QzlCMjc0OEVDQgorOjEwMEREMDAwQkE2MDEzRTUzNDhFQkE2MDEzRTQ3NDhFQkE2MDEzRTUxQQorOjEwMERFMDAwNjkxRDc0QzAyN0NBMjkxRDc0QzAyN0NFRDIyNUQzMDAxRgorOjEwMERGMDAwOUYzOEE0NEJBNjAxM0U1RTkxMkU5ODA0RjkxNTIyNUQwMgorOjEwMEUwMDAwMzAwOUYzRTkxMkU5ODA0RjkwNTIyNUQzMDA5REM1NDg3RgorOjEwMEUxMDAwMjVEMzAwOUM0NUNFQ0QwOUM5QjIxQTQ0QkE2MDEzRTc2OAorOjEwMEUyMDAwMzQ4OTc0QzAyNzFDMjdCNzlDODBDMkQ3NzY1OTlCOTNGRQorOjEwMEUzMDAwMEM2NEMzMUQxQkY0NDU0QkM3QzYzQTM3RTg4MTRCQzc0QQorOjEwMEU0MDAwQzYzQTM3RTg5MTRCQzdDNjMyNjE4RUIzQkNDMzRBMjI1QgorOjEwMEU1MDAwRTZCNTI0OTc3MUM5ODdCNDMxQUU3M0EyQ0YzOUQyNUQ5QworOjEwMEU2MDAwMDQ0NDQyQzBENkRFNzEwNjE2QkJEQkNFODMwQzY0QzNERAorOjEwMEU3MDAwMUQzMTEzMDRGOTk1NEQxMzMyOTM2MzVFNjYxNENDMjkyQQorOjEwMEU4MDAwMkE1MzMwQTY2MTRDQzI5OTg1M0E3MkNDQzI5OTg1MDYyNAorOjEwMEU5MDAwMUJCMzBBNjYxNDE0MjQ5OTg1MzMwQTA4QjE4NjYxNEM4MQorOjEwMEVBMDAwQzI4NDIxNjg3MzNCMzBBNjYxNDE0RUE1OTg1MzMwQUM5MworOjEwMEVCMDAwNTk3NjYxNENDMkIwOERENjYxNENDMkIwMkNGNjYxNENGMworOjEwMEVDMDAwQzJCMThDQTU5ODUzMzBBQzBGMjRDQzI5OTg1NjBGMjg2QQorOjEwMEVEMDAwNjYxNTkyMUExOTg1MzMwQUNBODUwQ0MyOTk4NTY1QzNBRAorOjEwMEVFMDAwRDk4NTMzMEFDRTcwODY2MTRDQzJCMzk3NzEwQzk5M0I5OQorOjEwMEVGMDAwQ0M4MzU4MEJFQTc3OUQwNjRBQkUwNDc0NjBFMEQxNEU1RAorOjEwMEYwMDAwMzg0QzNFRUUzRUVFM0VFRTNFRUUzMEJCQ0FFMTFGNzc4MQorOjEwMEYxMDAwMUY3NzFGNzcxRjc3Mjc3MDhGQkI4MDBFMTFGNzcxRjczMAorOjEwMEYyMDAwN0M2RjNDQjMzNjAyRkI4REU2NTU3MDdGMkQyNDY5NTVFRQorOjEwMEYzMDAwNEY1OEE5MjMxRjU0Rjc4QTk1MjUyQjc1MENDQ0FDNTYxNgorOjEwMEY0MDAwNTFDQzUxRTQ0NUNFQTIxMjM5QzBBMEFGNTY2QTQ5N0ZCOAorOjEwMEY1MDAwMDI4QzA5RjgwQkVCQUY1Njc2Njc1MkIyOEU2OUE3MTE3NworOjEwMEY2MDAwNzNBOEIxQkNDQUEwQTkzNjUwMkM5OEU3MEFGNTY2QTRBQworOjEwMEY3MDAwOTdFMjVBMzAyN0JBRjc4MzRFQTUzMzBBNjYxNThERTZGNQorOjEwMEY4MDAwNTUzOUQyQTdBQzU0NjAxNjcwMUI3MjhFNjI4RjIyMkUxOAorOjEwMEY5MDAwNzUxNjAyRkI4REU2MEE5NTNENjJBMzAwQjcwMUI1NTNCNQorOjEwMEZBMDAwREUyQTU0OTRBREQ0MzMzMkIxNTk0NzMxNDc5MTE3M0FDMAorOjEwMEZCMDAwODg0OEU3MDJCMDE3REM2NzlENEI4REU3NTJBQTdCRDRDNworOjEwMEZDMDAwQUE5MkJERDY5OUJDNTYwMkZCOENGMzY2NjZDNkYzNjY0MAorOjEwMEZEMDAwNjY2Mjk5MkFGODE4Njg3MEIwOEEwRDU1NTU1NTU1NTJCMQorOjEwMEZFMDAwMzJFMTQwNUMzODBCRUE5Qjg3MDE3REMwNUY3MDE3REMwMworOjEwMEZGMDAwMDVGNURDOUIwMTdENjE0RDgwQkVBNzc5ODJBMjFGNTA2MworOjEwMTAwMDAwMTUyQThGOEIxQ0U1QTUxMzg0NThFNzAyOTE1NDA1MDIxRAorOjEwMTAxMDAwNEJCRDIyMUE5NDdGOUMxQUMwNUY0MjFBMjFEMTgwNTk3RAorOjEwMTAyMDAwQzA2RDFDMkMwQTgzNTU1NTU1NTU1NTU1NTU1NTU1NTU2QworOjEwMTAzMDAwNTU1NDFDQjg1QzZFMTc5QzJGMzg1RTcwRTdCODVFNzAxNAorOjEwMTA0MDAwQkNFMTc5QzJGMzg1RTcwQkNFMTc5QzI5OUMyOTlDMjkyQQorOjEwMTA1MDAwOUMyMzBGNTgxNEVFMzU3NzI2MjE5MzA1QzlCMDE3RDI3QgorOjEwMTA2MDAwMUQxODhBMjE5MzA1QzlCMDE3RDE4N0FDMEE3NDBGQUUzOQorOjEwMTA3MDAwRjU1QTgyQTNFNDNBMzExNEJCRDc1OTk5NzRBMjE5MzBCNgorOjEwMTA4MDAwNUM5QjAxN0QxODdBQzBBNzQwRjg0M0Q0NjM4OTI1RDBDMgorOjEwMTA5MDAwMTBENjFDNkExMEY1NTU4OTI1RDE1MTY2MUY1MUY1OTE1RQorOjEwMTBBMDAwNDkyRTg5MTU5ODZBQTNFMDhBOTQ2NTY0MEUxMzE3Mzg0RgorOjEwMTBCMDAwQTg4NjRDMTcyNkMwNUY0NjFFQjAyODYzMUYwODdBOEM4RQorOjEwMTBDMDAwNzEyNEJBMDIxQUQwMEQ0MjFFQUFCMTI0QkEyQTJEMzFCNworOjEwMTBEMDAwRjUxRjU4NzQ5MkU4ODc1QTYzNTJERUY0NTE2OTRBM0UwQworOjEwMTBFMDAwMDk2OTQ2NTBGMEUxMzE3MzA1NDVCRDU5OEQ4QjRBN0M0NQorOjEwMTBGMDAwRDNFRDM4RTlEMzRFNzRFRDQ0MzI2MEI5MzYwMkZBNUI3MQorOjEwMTEwMDAwREU4QTJEMjlEMEUxMjFGNUEzOTIyMUYyMTkzMDVDOUJEMgorOjEwMTExMDAwMDE3RDIxRjVBMEM2MDE2NzAxQjQ0NUNFQTUxMjM5RDRFMQorOjEwMTEyMDAwMUMwNUY0NDBBMUMyQzM1MDZBQUFBQUFBQUFBQUFBQUFFNAorOjEwMTEzMDAwQUFBQUFBQUFBQUFBODFBRjg2OUYxOTFCRTc4MUYzNjU2QQorOjEwMTE0MDAwRjI4MEJFNzAxN0RGREYzODBCRUIwREMzODBCRUE3MEYzOAorOjEwMTE1MDAwOTU0RjVBOTRDMDJDRDhCMUE3Q0U1QTExNzNBODNBQzI1MQorOjEwMTE2MDAwQ0NCNjMwMTdEQzZGMzVBOTgwNERBN0NFMkExODc5QzVDQgorOjEwMTE3MDAwNDlERTYxQTgyMkU3NTAzM0Y5OTg2NDA4Qjk5NTQyRkMyQQorOjEwMTE4MDAwQ0NEOTk1M0Q2MkEyNDhENDQ4RTcwMjg4QjlDMUEwRTMxMgorOjEwMTE5MDAwOUQ0RTYyRTZDQ0M2NkJDRTgzMTBDOTgyRTREQUMyQzgyQgorOjEwMTFBMDAwMUVDM0I5MzYwMkZBQTlFQjRFMzAzMEZBMERGMEE5RUJBNgorOjEwMTFCMDAwNDBCOTBGQUE3QUQyQzJDOEZBQTdBRDQxMEE0N0Q1M0RCNQorOjEwMTFDMDAwNjhBQ0YxRjU0RjVBOTc1NDdENEZBOEFBNTUxRjExNzM3QgorOjEwMTFEMDAwNUFCMDE3REU1RDU5QTkyNUQwNTUyQTQ2QkNCODIyQUVCMworOjEwMTFFMDAwNDUyOTNFMTRGQUUxOTk5NENBNEFCRTNERDY5OTkyNURDQQorOjEwMTFGMDAwMTUxN0M4RDdEQzE1MTc4QTQwMUYwQTlFQUNDOTY1NDk2OAorOjEwMTIwMDAwNUMxRDEwNjg0QTNFNUJERTgzMTY5NTgwQkU5MTc0NTg2MworOjEwMTIxMDAwQTQwMDdDMzhFNzU2MzAxN0RGNzVBNjY0OTc0NTIwOURGQgorOjEwMTIyMDAwMDM1RjcwNTQ1RTI5MURGMEE5RUFDQzg2NTQ5NUMxRDFBNAorOjEwMTIzMDAwMDY4MzBGQUE3QkQwNjU0OTQ1QkRFOTYyRDI5MURGMDRFMAorOjEwMTI0MDAwNUQxNjI5MUM3RDRGQUMxQTQ3MUFBOUY1Njc2NjUzMjgwRAorOjEwMTI1MDAwQjdCRDJDNUE1MjNCRTNERDU5QTkyNUQxQThBQzA4NkI4OAorOjEwMTI2MDAwRUUwOEFCQzUyMDJGODU0RjU2NjY3NTQ5NUMxQzE4MURDRQorOjEwMTI3MDAwODFDMjY0MDVGMDgwQkUzNTVDRDAxN0MyNTVGMDk1N0MwNAorOjEwMTI4MDAwMjU1RjA4MEJFMTAxN0M3QkFCMzUyNEJBMTA1NTkzMUExRQorOjEwMTI5MDAwRkI4MjJBRjE0OEQ3QzJBN0FCMzFCMkE0QUM2MzlENEEwNgorOjEwMTJBMDAwOEQ3QzdCQUIzNTI0QkExMDU0MzA4RDdEQzExNTc4QUM2NAorOjEwMTJCMDAwNkY1QTk0NjAxQUUzNzlENEFBNEY4NTRGNTY2NkQ1NDk4MAorOjEwMTJDMDAwNThDNzNBOTU0OUYwNDVEMTYyOTQ4NkJDMUQxM0QyOTAxNworOjEwMTJEMDAwRkZDRjdBODNGMjUwMzFERTAwNjA2MEExMTczNUE4NUYzRQorOjEwMTJFMDAwOUIxQjM3MDc0NDFBMzAwQjM4MERCQzFDRTBEMDQ3Q0U4RgorOjEwMTJGMDAwQTBBQTdBQTE5ODZBOTI5NTNENjgzMTgwNUI4MERBQTlBQworOjEwMTMwMDAwRUY0MTk1MjUxNkY3QTU4QjRBQzY3OUIzMzM2MDJGQUEwRQorOjEwMTMxMDAwOUVCMTUxODA1OTlFQ0FBN0FDMEEzMDBCNjdCMkFERDVCOQorOjEwMTMyMDAwREE5MjVEMTdBMzAwQjMyRDk1NkUwOEE5NThBMTE3M0E1QworOjEwMTMzMDAwOEIwMTdENTRGNzhFOTUyNTA4MUNFMDU2MDJGQkMxRDEyOAorOjEwMTM0MDAwMTUxODA1OTI2QjNDMUQxMjI4QzAyQ0E1NkMxMTcwMTc0NgorOjEwMTM1MDAwQjIzODREODBCRUUwMkZCNEVDNEFFREIzOUUwMkZCODA2NAorOjEwMTM2MDAwQkVFMDJGQjEzOTkzM0U2REU3MTA2MDlGMzJBOUEyNkNBOQorOjEwMTM3MDAwMDVGNDQwRTYwQTk1M0Q2QTIzMDBCMzgwREFBN0Q2MkEzMQorOjEwMTM4MDAwMDMwRDcwMTdEMjJFNzYyOTRGQkM1NEE2NTE2RjdBNTg5MAorOjEwMTM5MDAwQjRBQzA1RjQ4QkEyRjQwRTM1MEQ0OTJFQjRDQzE4QTVDRgorOjEwMTNBMDAwQzhGODRBOTcyM0UxMDUyRTQ3QzI4QTVDOEY4NTY5NzI4NworOjEwMTNCMDAwM0UxRjRBQzM1NTFGNTY0MzMyOENBMzVFNjBBODQ1Q0VEQworOjEwMTNDMDAwMEQ2MDJGQTM4NDlERDhGMDE3RDIyRTBFMUIyMzg0RDgzNgorOjEwMTNEMDAwMEJFQjg5RjM4MEJFRTAyRkJCMzk4NURGMjIwM0U3MDFFOQorOjEwMTNFMDAwN0RDMDVGNzAxN0QxMTczODE0NUJENkEyNzQwRDRCN0E4RAorOjEwMTNGMDAwQjMzMTk2OTQ2QkNDMzUyM0Q3NDk0ODE1NzMyOTBGNURDQgorOjEwMTQwMDAwOEFDMDVGNEQ3OTg0MzU4MEJFODgxQ0MzNTI5RjU5Njg1RAorOjEwMTQxMDAwQzAyQ0UwMzZBQTdCQ0Q0QTkyQkVGMzgxNEE3RDVCNTk0RgorOjEwMTQyMDAwOTRDQTFDMjRFRUM3ODBCRTg4MUNDMzUyOUY1OTY4QzA1MgorOjEwMTQzMDAwMkNFMDM2QUE3QkNENEE5MkJFRjM4MTQzODQ5QzdCMzg1NAorOjEwMTQ0MDAwMEJFQkFGNzBENEVBNTMwMDlCNEY5QzU0MzBGMzhBOTQ1QgorOjEwMTQ1MDAwRkFCNkIzMjk5NDIyRTYxQTg1RjlCMDU5OTNGOUQyQzRBMQorOjEwMTQ2MDAwMzI2MEI5MzZCMEIzOTBEOTc3MjYxQzI3MjJFODk2QjRGQgorOjEwMTQ3MDAwMjNFQTlFQjUxMTgwNTk2NTg2MjA3Mzk2OEQ3OUFENTgwMworOjEwMTQ4MDAwMEJFOTE3NDQ4QTRBMDdENzdBODJBMTkwRkFFRjAxNTRGMAorOjEwMTQ5MDAwQkE1MEQ0NTkxRTJDRTlGMzhBOTk4NTZCMEIyMzE1OTcwMgorOjEwMTRBMDAwNzI2MTE3MzBENDJDNzM4NzQ4QUEwMjgxMjVERTkxMEQxMgorOjEwMTRCMDAwNEFDMDVGN0VEMjgwQTUzRUIyRDBDODZCODBCRTg4MUM3OQorOjEwMTRDMDAwRUEwOTE3NDQxQTM3MUE5MTc0NThBMzcxQUYwNzQ0NTRBNAorOjEwMTREMDAwNkUzNUUwRThBQTY0MEY5MEZBRDA2MzAwQjM4MERBMkM4RQorOjEwMTRFMDAwNzM4NzQ4QUEwMjgxMjVERTkxMEQ0QUMwNUY0OEJBMjc1QQorOjEwMTRGMDAwQTMwMEI3MDFCNzRGOUNCNDZCQ0MzNTE2RjU2NjYzMkRDRQorOjEwMTUwMDAwMjkxRUJBNEE0MEFCOTk0ODdBRUM1MDhCOUMwODIyRkNDMQorOjEwMTUxMDAwRjlCMjU1M0Q2MkE5MjM1MTIzOUMwQTNDNzMwRDQ0NUNFQQorOjEwMTUyMDAwRTE1MDcxQ0VBMTFGRTcxNTZCMEIyNUVEMEI5MzYwMkZEQQorOjEwMTUzMDAwQUE5RUFDMzY2NTQ5NUY3QTIwNTAwODdGRUYzOTE0NDk3RQorOjEwMTU0MDAwMDExMTgxMDQ2MDQwQ0M1OUMwQUQyM0VCNDFCMDgxRjI2MAorOjEwMTU1MDAwM0E0MUFBNTA0M0U0RDQ4NjU0QTA4N0MxNTJDQTkzMDFBOQorOjEwMTU2MDAwMzI1NDlEMjQwMjAwMDA1MkFGMTY0NkE3OTE2NzA4QjQ3QQorOjEwMTU3MDAwMDQ1MUYxNjUxOUI0NkUyREMwQUQ0OTAwOTI1NzFCNzQyQQorOjEwMTU4MDAwNDU1RjIzNTFCNzQ0MEExMDA2QTM2RThCNkIwODFGMTlFMQorOjEwMTU5MDAwRDFFNjgwODI4MDU0MDQyQTQ1OTFBOUU0NTlDMjJEMDFFNAorOjEwMTVBMDAwMTQwNDUwRDNGQzU1ODQ2MUQ5ODA1MTJGRTIxRjQ2NUY0QgorOjEwMTVCMDAwNDBFMDIwMTU0QUJDNTkxQTlFNDU5QzIyRDAxMTQ4Q0JDOAorOjEwMTVDMDAwRTgxNDA4MDE1NDE1RTJDOEQ0RjIyQ0UxMTY4MDhBNDZDQQorOjEwMTVEMDAwNUY1MjdDRDlBOEY4ODhEMDVBM0NEMjVDNUI4MERBQTdFRAorOjEwMTVFMDAwRDY1QTA4ODZBNDVEMTdBMEMzNTIyRTg4QTgyMjFGNTM3RQorOjEwMTVGMDAwRUFEQUNDQTY1MEUxMjc3NjNDMDVGNTRGQUI2QjMyOTk4MQorOjEwMTYwMDAwNDM4NDlDN0IzODBCRTkyN0FDRDQ5MkUwMEVEQTM4NEQ0QQorOjEwMTYxMDAwODBCRUU2N0Q1MEJBNTFBRTY2RUZCQ0RDN0I4NzFFMDIxMQorOjEwMTYyMDAwRkE5M0U2Q0Q0N0M0NDNDRDBGMzQ5REEzMDBCMDU1MDFENgorOjEwMTYzMDAwQUUwMzg0MDRDRTAxRDBFMTcwMDI4MDBFODlFOTIyMUYzRQorOjEwMTY0MDAwRTBFODk2QjAxMUY0QzJDRTAzNkE0NDJEQzA2RDQ4MDU5RgorOjEwMTY1MDAwQjgwREEzMDBCNzc2RDVERUIxNTBEQzdENzdCQzU0QkFBNworOjEwMTY2MDAwNTI3RjU4MTQzNDBGOUFGMzgxNTgwQkVBRUY1ODE0NjBFNAorOjEwMTY3MDAwMTZBNTZDMkVGNzgxNEJBNTZGN0Q1REVFQjUyRTk1ODA3RQorOjEwMTY4MDAwQkVGMDczQkQwNDdDRUFGRUVCNENERTI5NTNERDZBNTRFOAorOjEwMTY5MDAwOTRBOUVBMEE4QzAyRDY0QzNDMDVGNDAwRUFDRDU2QUY3OAorOjEwMTZBMDAwQzA0N0QyOUM4RDI5Q0FFMDJGQUVCRDc1OTk5RDRBRjlERAorOjEwMTZCMDAwRUY1MTdDOTQwQzc3ODAxODE4MjkyQUY4RTBFOEFBMzBCQQorOjEwMTZDMDAwMEIyQTk4N0MxRDExNTE4MDU5NTRDMzUxRjUxQjMzMjRBQQorOjEwMTZEMDAwQkI4MkE1MTk1QzFEMTAyOEMwMkM5QUM3QzFEMTIyOENEMQorOjEwMTZFMDAwMDJDOTk0NjQ1QzBDRDY4RTEzNjAyRkI4MEJFQTMwRTMwOQorOjEwMTZGMDAwQzA1RjQ4REM3ODBCRTgwMEUzQzA1RjZDMzhENTJFMzU1RQorOjEwMTcwMDAwNEY1QThBNjFBQTlGNTYxQjMyOTk0NjQyQzgwMTBDNDUxRQorOjEwMTcxMDAwQ0VBNTE3RTZDNkNFQTlFQjE1MTY0NkEyNDczODE0NDM0OAorOjEwMTcyMDAwMjYyMkU3M0Q2MDJGQUE5RUI1MTJFMDdGMDE3REUzRTcwOAorOjEwMTczMDAwMDI5M0Y5OTU0NDVDRTVBMEUzOUQ0QTdGOUM1NEE5RUI5NAorOjEwMTc0MDAwNTEwNTQ2QjlGQ0MwMUIyMjJFNjQ1NDJGQ0Q0NkNDQTdCMAorOjEwMTc1MDAwRDU4NkNDQTY1MDU1QzY0NUNFNUEwRTM5RDRBN0Y5QzU2NAorOjEwMTc2MDAwNEE5RUI1MTE4MDU5QzA2RENGRTYwMEQ5MTE3MzIyQTFGMAorOjEwMTc3MDAwN0U2QTM2NjUzRUFDMzY2NTMyQjAxN0REM0U3MkQyNzk5MAorOjEwMTc4MDAwMzEwQzk4MkU0QzIwNzMyQThGRjM4QUFERTc0MTgyN0M2RQorOjEwMTc5MDAwQ0FBNjg5QjU4NTlGQjBGMDE3RDUxRjU0NTQyNTFBQTgzRAorOjEwMTdBMDAwRkYyQTk0NjUxMUQ3NDk0NEQ1Q0NBMDU1RDhBRTBFODhGMAorOjEwMTdCMDAwMTQ2MDE2NEQ2MzIyRTA3Mjg2Mzg0RDgwQkVFMDJGQjg2QgorOjEwMTdDMDAwMEJFRTAyRkI4MTM4RjAxN0Q3RDcxRTAyRkFGQUUzQzBGRQorOjEwMTdEMDAwNUY0Qzg1OTAwMjE4Qzg1QjgwREEzMDBCNzAxQjRDMjI3RQorOjEwMTdFMDAwRDM0QzMzMDM4QzJFNEM0MzI2RDBGNTYzNjZEMDk1QTc5QgorOjEwMTdGMDAwQ0U0NTMzMEFENjE2NDIzODZFRTRDRUJENTkyQ0QyQUI1NAorOjEwMTgwMDAwQkE5NDlERTYxQUIwMTdENTRGNUE4QjA5MUE4OEI5QzVGNAorOjEwMTgxMDAwNDI0NzMwRDQzMjE2NzI4ODY1QkQ1OTk5MjVBNTYwMkY4QworOjEwMTgyMDAwQjg2MEYzMDhCNzRBMUE4RkFCMEQ5OTQ2NTFBRjM4QTg4NAorOjEwMTgzMDAwOEU5MDY1MTM1MjE4QTA1NEIxNDIyRTYxQTg0OEU3MkQyRQorOjEwMTg0MDAwMTZGN0E4MDVBNTYwMkZBNDc1RDI1MTM1NzMyODE1NzYxMworOjEwMTg1MDAwMkI4M0EyMDUxODA1OTM1OEM4QjgwNjI4NjM4NEQ4MEJCMworOjEwMTg2MDAwRUUwMkZCODBCRUUwMkZBMDQzQTcwMTdENENFM0MwNUZFQQorOjEwMTg3MDAwNzAxN0RDMDVGNDY0MkRDMDZEMTgwNUI4MERBNUJENkFBMAorOjEwMTg4MDAwMjM4NkFBOUVCNTExQTQ2QUEzRUE4QThEMjNFMTE3Mzg5QworOjEwMTg5MDAwMzQ2OTcxOTg0NUE2OTg2QTNFQUMzNjY1MTk0NkJDRTIzMworOjEwMThBMDAwQTIzQTQxOTQ0RDQ4NjI4MTUyQzUxNkY3QTg4QjRBNTQxQQorOjEwMThCMDAwRjVBODhDMDJEQzA2RDEwMzlDQjRBOUVFMEE5NTI1MkE3MgorOjEwMThDMDAwN0FBRDQ2MDE2NzAxQjVEN0FDMEEzMDBCNkM0OTM1RTZGNQorOjEwMThEMDAwQjU2N0YzMDA2Qzg4Qjk5MTUwQkYzMTFCMzJBN0I4Njg2NworOjEwMThFMDAwOTUyNTdCQUQzMzc4QTdDRDNFRDM4RTlEMzRFNzRFRDQ3RQorOjEwMThGMDAwMjJFNzA2ODQ4RTYwQThGRjM4QUI4MzlDMkEwOEY5RDRCRgorOjEwMTkwMDAwMjA2M0JDMUEwNjBBQzA1RjQ2NDJEQzA2RDE4MDVCODBCOQorOjEwMTkxMDAwREEyMkU2MUE4NDhFNzJEMTZGNUE4MDg3MUFBQTdBRDQ5NAorOjEwMTkyMDAwNDhDOEQ1NDdENTE1MjMyM0UxMTczODM0OENCQTRCN0JFQgorOjEwMTkzMDAwRDQwMkQyOEMyMkRDMDZENTFGNTYxQjMyOENBMzVFNzFEQQorOjEwMTk0MDAwNTExRDIwQ0EyNkE0MzE0MEE5NjJCMDE3REY5RUY0QjcwQQorOjEwMTk1MDAwQzk0MEM3NzgwMTgxODJCODM4Mzk0OTFDMjZDMDVGNzBGOAorOjEwMTk2MDAwMTdENEFCRTEyQUY4NEFCRTEyQUY4Rjk3NEZDQkE3MDEyRAorOjEwMTk3MDAwN0REQTgwQUE5MTY0N0Y0QTgxRDUyMkM4RkU4MjgwMjVDMworOjEwMTk4MDAwNDhCMjNFQkJEQzM1MkU5NDA3RTg4QTlDMDNFMjRCQTVBNworOjEwMTk5MDAwNzdBQkIzMzJFOTRCQkQ1OTg2ODQ5NzdBMDRCQTUzRTFFOQorOjEwMTlBMDAwMzJFRjUwRDRFNjM1NTNFQjAyOUNDN0Q3N0FCMzMwRDIyRQorOjEwMTlCMDAwNURFQTAyRTk0NDVEMTYyOEMwMkNFMDM2OTE3NDQ1NTk3MQorOjEwMTlDMDAwMThENTRGQUMwQUM0MzUzMDhCMzg2OTJCQkQ1OTk4Njk4RQorOjEwMTlEMDAwMkVGNTEyRTk1ODY3NEFFRjUwRDU4RTNFMUNBNEIwQ0VDMgorOjEwMTlFMDAwOTMyMTZFMUE0ODFGQTIyQUMzMEQ1NzdBQjMwRDA5MkVGMAorOjEwMTlGMDAwRjQ0MzVEMjg4QjgzMjA5MjM4NEQ4MEJFRTAyRkFDMTdENgorOjEwMUEwMDAwNDlCM0E1ODJFOTNFRTkzNjc0RTAyRkE2Q0U5QzA1RjRFMQorOjEwMUExMDAwQzIyQzhDNTI1NzdBRDQ4RDQ4RkFFRjUwRDVBRTM1NTMzQworOjEwMUEyMDAwRUIwMjg2MjFBQUVGNTY2NjFBNEJCRDQ0QkE1MEM0RTlCMAorOjEwMUEzMDAwNTNFQjAyODY4MUY1REVBMUE4NjIxRjVERkVBMjVEMjkzRgorOjEwMUE0MDAwNzdBODZBNjE4RDQwRkQxMTUzMEM2QUE3RDYwNTMwQzc4RgorOjEwMUE1MDAwRDc3RkE5NTc0QTVERUI0ODFCMEM3QzhCOUQ4QTUzRUZCRgorOjEwMUE2MDAwNjY5NENBNTRGNUEwQzYwMTZFMDM2QTlGNTY3NjY1MzIyNQorOjEwMUE3MDAwOEI3QkQyQzVBNTYwMkZBQTdENjVBMzAwQjcwMUI0QzgzMgorOjEwMUE4MDAwNUEwNzhGRUQwMUQ1Mjc5MTY3MDFCNDhCOUM1NDFDNzNDNQorOjEwMUE5MDAwQTg4NDVDQzE1MEJGMzY1NjYwQUI4QzhCOUM1NDFDNzNDMQorOjEwMUFBMDAwQTg4NDVDQzE1MEJGMzY1NjZDMDVGNTUzRDZBMjMwMEJFNgorOjEwMUFCMDAwMjk1QjE5RkNGNjk0NDVDRjE1MEJGMzNDQjMyQTdBQzU4NAorOjEwMUFDMDAwNDYwMTY0OEEzMTIzOUMwQTVERUEzNDMzMkU5NUM3Q0VFMQorOjEwMUFEMDAwMkE0RkU2NTAyMEI5MzEwQzlCRUYzOTE0NDVDRTQ1MDcwQgorOjEwMUFFMDAwMUNFQTQ2ODdBQjFCMzY4NEE3NUVBQzk2Njc1MkIwMTdEQworOjEwMUFGMDAwRENGRTdCNEEyMkU3OEE4NUY5OUU1OTk3N0E4RDBDQ0JDQQorOjEwMUIwMDAwQTUyN0YzQTA0NDMyNjBCOTM3REU3MjI4OEI5QzhBMEU3OQorOjEwMUIxMDAwMzlENDhDMDVGN0U3QjgyQUY5MjgxOEVGMDAzMDMwNTc4OAorOjEwMUIyMDAwMDc0NDBBNTA4RkYwNzM5MTQxMUYzQTkwNDVDMEJCMTg4QgorOjEwMUIzMDAwRTEzNjAyRkJGQjlFMDJGQUVFRTdGNUNGMDE3RDEwNUM3OQorOjEwMUI0MDAwRjAxN0QxMDVDRjAxN0Q1M0VCMkQxODA1QjgwREE2NDIzNgorOjEwMUI1MDAwREMwNkQzMTczNUE4OEI5QzBBMEUzOUQ0MENGRTdCNEFDMQorOjEwMUI2MDAwMjJFNjU1MEJGMzMxQjM2MDJGQkM3Q0UyQTRGRTY1NTEzNQorOjEwMUI3MDAwMTczODE0MUM3M0E4MTlGQ0Y2OTQ0NUNDQUExN0U2NjMxMQorOjEwMUI4MDAwNjYwQUI4Q0M4NUExNThGNkEyMzU0ODQ4N0Y0QTg5OTU5RgorOjEwMUI5MDAwMjEyMUZEMDUwMjU0OUU0NTkxMEUzQzA1RjUwNzQwNTU1NworOjEwMUJBMDAwNDg1MjNFODZBMDc1NDg1MjNFQjUwMDRBOUMwMDZCQzcxRAorOjEwMUJCMDAwQ0U0NTI3RjMyQTg0MzczNURFQTBBQjIzMUFBRUY1ODM1MgorOjEwMUJDMDAwNTkxOEQ3NDNERTJBRDA5NEVCREUwNTNBOTU5RkNDQzM1MworOjEwMUJEMDAwMjA0NUNDQUExN0U2NjZDQzQzMjY0RkU3NDEyMjJFNzA1QgorOjEwMUJFMDAwNjgzOEU3NTNFMDJGQUJCQzEyRDJFOTU4MEJFQUE3QUQzNworOjEwMUJGMDAwNDVBMTFGQzA1Rjc4MzlDOEEwOEY5RDQ4MUMyNEVFQzczRgorOjEwMUMwMDAwODBCRUJBRjU2RDY2NDk3NzBENEVBNTMwMDlCNEY5QzVBOQorOjEwMUMxMDAwNDMwRjM4QTkzRjlEMDJGQkNFNDUxMTczOTE0MUM3M0E0RQorOjEwMUMyMDAwOTE5RkNGNjk0NDVDRjE1MEJGMzNDQjMyQTdBQzU0OTA0NQorOjEwMUMzMDAwOEQ0NDhFNzAyOTc3QThEMENDQkE1NkIwQjI5RDhDODZEMAorOjEwMUM0MDAwNEMxNzI2NzcyNjFDMjcxQzI0OUUyMzYxQkU4RTEyNEYxQworOjEwMUM1MDAwMTE4NzFDRUE1QzA1RjVEN0I4NkE3NTI5NzdBQjBEOTkzMQorOjEwMUM2MDAwNzRBNTRGNzJBMEFBNEFDNkYzNjY2NkM2Mzk4MkFGNzVEQworOjEwMUM3MDAwQTY2RjE0NkJDRTA1NzA3Mzk2ODIzRTc1MjhFMTNBQTc2NQorOjEwMUM4MDAwQUQ0NDYwMTY1MkI2MUQ3QUI2QjMyNEJCODZBNzUyOThFRgorOjEwMUM5MDAwMDREQTdDRTJBMTg3OUM1NUY3OUNCNUFDMkM5NTMzQjk0RQorOjEwMUNBMDAwMzEwNUQ5NTNENkEyMzAwQjI5NUIwMjJFNjE1QTE3RTZCMworOjEwMUNCMDAwOUNCMzJBN0FDNTQwMjFBODkxQ0UwNTI3RjNBNTg4NjQ1NAorOjEwMUNDMDAwQzE3MjY1NEY1ODE0MEM4RDdFRjM4MTQ0NUNFRjQxQzc5RgorOjEwMUNEMDAwM0FCRTAyRkFBOUVBQ0VDQ0E5Mjk1M0Q2QTI0NjQ3REREQworOjEwMUNFMDAwN0FDMEEzMDA4NkUyOUIyOTc4OEI4MTA5OTg3MDlCMjk5MgorOjEwMUNGMDAwNzk1REQ5NzJFRDk0QkNCOTc2MTMzQjJBNURCMjk3OTVBNAorOjEwMUQwMDAwMkVEOTRCQ0E3RDVCNTk5NENBMUMyNEVFQzc5NEJDQzAyMworOjEwMUQxMDAwMjZEM0U3MTUwQzNDRTJBQ0ZFN0I0QTIyRTc4QTg1RjkyNAorOjEwMUQyMDAwOUU1OTk3N0E4RDBDQ0JBNTI3RjNBMDQxNzI2MjE5Mzc4MworOjEwMUQzMDAwREU3MDI4OEI5QzhBMEUzOUQ0OEQwRjU2MzY2RDA5NEU3NQorOjEwMUQ0MDAwQkQ1OTJDQ0VBNTZCMEIyMkQ5OURDOUIyOTdCRUYzODE4QworOjEwMUQ1MDAwNEE3RDY1QTMwMDkzOEY2NzI5NzhDMjREQzFEMTA2ODI2MQorOjEwMUQ2MDAwMzFBRjA3MzgzNDExRjNBODJBOUVBODY2MUFBNEE1NEZFQworOjEwMUQ3MDAwNUEwQzExOEZBQTdCRDA2NTQ5NDVCREU5NjJEMkIxOUU0QworOjEwMUQ4MDAwNkNDQ0M2MTk4NzA5QzM4RTc1NDExRjNBQTUxM0Q1NTU2QQorOjEwMUQ5MDAwNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTVGMworOjEwMURBMDAwNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTVFMworOjBFMURCMDAwNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTVBQ0M5MEM4Cis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbi5paGV4IGIvZmlybXdhcmUvdHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YjIyNDcKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS90dHVzYi1idWRnZXQvZHNwYm9vdGNvZGUuYmluLmloZXgKQEAgLTAsMCArMSw4MjAgQEAKKzoxMDAwMDAwMDA4QUEwMDE4MDAwMzA4MDAwMDEwMDAwMDAxODAxODVGMTMKKzoxMDAwMTAwMDAwMDAwMTgwNzcxODJBRUI2QkY4MDAxODAzRkY2OEY4REUKKzoxMDAwMjAwMDAwMThGRkZFRjdCOEY3QkVGNkI5RjRBMEY2QjdGNkI1QkMKKzoxMDAwMzAwMEY2QjZGMDIwMTlERkYxMDAwMDAxRjg0RDAxQUJGNkI4N0IKKzoxMDAwNDAwMEYwMjAxOURGRjA3MzAxQTU3RUY4MDAxMkYwMDAwMDAxMjYKKzoxMDAwNTAwMDQ3RjgwMDExN0U5MjAwRjgwMDExRjAwMDAwMDE3RUY4RDAKKzoxMDAwNjAwMDAwMTFGMDAwMDAwMTZDODkwMTlBRjdCOEVFRkNGMDIwNTUKKzoxMDAwNzAwMEZGRkZGMTAwMDAwMUY4NEQwMUJGRjI3MzAxQjk0RTAyMUMKKzoxMDAwODAwMEY0OTVGNUUzNTYwMjdFMDAxMTAwRkE0QzAxQjc2QjAzQkMKKzoxMDAwOTAwMDAwMDFGNkI4RUUwNEYwNzQwREE3RjA3NDAxQzU0QTExMjIKKzoxMDAwQTAwMDRBMTY3MjExMkFFNjEwRjgwMDExRkE0NTAxREJGNDk1QTAKKzoxMDAwQjAwMEVFRkY0ODExRjAwMDJBQzY4ODE2RjQ5NUY0OTUxMEVFNkMKKzoxMDAwQzAwMEZGRkZGNEUzNkNFOUZGRkYwMUQ1MTBGODJBRTdGODQ1REMKKzoxMDAwRDAwMDAxRTIxMEY4MkFFN0Y0RTNGMDc0MDFGRkVFMDE4QTE2NUEKKzoxMDAwRTAwMDhBMTFGQzAwRjdCOEU5MjA0QTExMDlGODJBRTZGODRFMEYKKzoxMDAwRjAwMDAxRjNGMjczMDFGREY0OTVFODAxNzIxMTJBRTY0OTExNEEKKzoxMDAxMDAwMDgwRTEyQUM2RjMwMDAwMDFFODAwODFGODJBRTY4QTExOUUKKzoxMDAxMTAwMEZDMDBGNDk1RjA3MzAyMDAxMEY4MkEwRkZDMDA0QTExNUQKKzoxMDAxMjAwMEYwNzQwMjAyODBGODJBMTA3MzA4MDAwOTQwRjgyQTE1QkEKKzoxMDAxMzAwMDgyRjgwMDExRjQ5NTc3MTAwM0U4RjVBOUY4MzAwMjIxNTAKKzoxMDAxNDAwMDcxRjgyQTEwMkExNTU2RjgyQTBDRjBFMzRFRjgyQTE2RjAKKzoxMDAxNTAwMEU4MDA0RUY4MkEwQzhBMTFGQzAwNEEwNjRBMDc0QTFEOUMKKzoxMDAxNjAwMDY4RjgwMDA3N0QzRjY5RjgwMDA3NDAwMDY4RjgwMDFENDcKKzoxMDAxNzAwMEZGRkM2QkY4MkEwRjAwMDE4QTFEOEEwNzhBMDZGNEVCNDAKKzoxMDAxODAwMEVFRkQ3NkY4MkEwRjAwMDA3NjAwMDAwMEZCODAxOTRDODcKKzoxMDAxOTAwMEY0OTVFODAwODBGODJBMTFGOTgwMTkwNzgwRjgyQTBFRjIKKzoxMDAxQTAwMEY5ODAxNjY2NzYwMDJBMTIxMEY4MkExMUY5ODAxOEUzRjEKKzoxMDAxQjAwMDEwRjgyQTBFRjk4MDE2NjYxMEY4MkEwRUY5ODAxNjg3QjQKKzoxMDAxQzAwMEVFMDNGQzAwNEExMUY2QjhGNDk1RjAyMDgwMDAxMUY4MTcKKzoxMDAxRDAwMDJBNUFGODREMDI5MzExRjgyQTlGRjg0QzAyN0M3NzEyQTQKKzoxMDAxRTAwMDJBMzk0OTEyMDFGODJBOUY4OTExRjQ5NUY0OTU3MTgxRjEKKzoxMDAxRjAwMDAwMTE2Q0UxRkZBQjAyOTM2QkY4MkE5RjAwMDFFOTA1NDcKKzoxMDAyMDAwMDAxRTIwMDAzODFGODJBQTBGMDczMDI5NTcyMTEyQTlGN0YKKzoxMDAyMTAwMEY0OTUxMEUxMkEzOTZCRjgyQTlGMDAwMTExRjgyQTlGMDIKKzoxMDAyMjAwMDA5RjgyQUEwRjg0QzAyOTM3NkY4MkE1QTAwMDA3NkY4Q0EKKzoxMDAyMzAwMDJBOUYwMDAwNzZGODJBQTAwMDAwODgxMUY0OTU0ODExNDIKKzoxMDAyNDAwMDhBMTFGQzAwNEExMUVFRkUxMEY4MkE1QUY4NDQwMkIyNTQKKzoxMDAyNTAwMDc2RjgyQTVBMDAwMUYwNzQwMjU4ODgxMUY0OTU3NzEwNDQKKzoxMDAyNjAwMDgwMDBGNEE5RjgzMDAyQjI0ODExRjAzMDAwRkY4MDAwOUQKKzoxMDAyNzAwMDEwRjgyQTVCRjk4MDE4RDZFRTAyOEExMUZDMDBGNDk1N0EKKzoxMDAyODAwMDRBMDg0QTA5NEEwQTRBMEI0QTBDNEEwRDRBMTA0QTExQkUKKzoxMDAyOTAwMDRBMTI0QTEzNEExNDRBMTU0QTE2NEExNzRBMTc0QTE5NjMKKzoxMDAyQTAwMDRBMEU0QTA2NEEwNzRBMUE0QTFENEExQjRBMUM2OEY4NUYKKzoxMDAyQjAwMDAwMDc3RDNGNjlGODAwMDc0MDAwNjhGODAwMURGRkZDNUIKKzoxMDAyQzAwMDQ4MTg2OEY4MDAxOEZGRkVGNDk1RjQ5NTRBMDhFRUZEMEEKKzoxMDAyRDAwMEYwNzQwMjU4ODgxMUY0OTU3NzEwODAwMEY0QTlGODMwNzIKKzoxMDAyRTAwMDAyRUY0ODExRjAzMDAwRkY4MDAwMTBGODJBNUJGOTgwMUYKKzoxMDAyRjAwMDE4RDZFRTAzOEExOEY0OTU4QTFDOEExQjhBMUQ4QTFBNUUKKzoxMDAzMDAwMDhBMDc4QTA2OEEwRThBMTk4QTE3OEExNzhBMTY4QTE1MTAKKzoxMDAzMTAwMDhBMTQ4QTEzOEExMjhBMTE4QTEwOEEwRDhBMEM4QTBCMEYKKzoxMDAzMjAwMDhBMEE4QTA5OEEwOEY0RUI0QTExNzcxMTJBMzk3NjgxRjgKKzoxMDAzMzAwMDAwNTU3NzEyMkExODEwRTIwMDAxODBFMTAwMDExMEUyNTYKKzoxMDAzNDAwMDAwMDI4MEUxMDAwMjc2RTEwMDAzMDAwMDc2RTEwMDA0OTMKKzoxMDAzNTAwMDAwQUFGMDc0MDI5ODhBMTFGQzAwNEExMTg4MTFGNDk1RTEKKzoxMDAzNjAwMEY0OTUxMDgxNkZGODJBOUUwQzg4RThGRjE4RTEwMDAxQ0YKKzoxMDAzNzAwMDFBRjgyQTlFRjAzMDFGRkY4MEY4MkE5RThBMTFGQzAwOEUKKzoxMDAzODAwMDRBMTE3NzExMkEzOTc2ODEwMDU1NzcxMjJBMTgxMUUyMUQKKzoxMDAzOTAwMDAwMDE4MUUxMDAwMTExRTIwMDAyODFFMTAwMDI3NkUxNDkKKzoxMDAzQTAwMDAwMDMwMDAyNDgwODZGRTEwMDA0MEM5OEYwMzAwMEZGRTEKKzoxMDAzQjAwMDgwRTEwMDA1NzZFMTAwMDYwMEFBRjA3NDAyOTg4QTExMzcKKzoxMDAzQzAwMEZDMDA0QTExNzcxMTJBMzk3NjgxMDA1NTc3MTIyQTE4RDQKKzoxMDAzRDAwMDEwRTIwMDAxODBFMTAwMDExMEUyMDAwMjgwRTEwMDAyNzEKKzoxMDAzRTAwMDc2RTEwMDAzMDAwNDQ4MTFGMDAwMDAwNDg4MTJGNDk1M0YKKzoxMDAzRjAwMDc3MTMyQTc2RTkwMEU1OThGMzAwMDAwMUY2Qjg0ODBCNzgKKzoxMDA0MDAwMDA4RjgyQTNDRjg0MzAzNzE3NjgyMDBBQUYwNzQwMjk4MzcKKzoxMDA0MTAwMDhBMTFGQzAwNEExMUVFRjA4ODExRjQ5NUY0OTU3MTgxNkYKKzoxMDA0MjAwMDAwMTQ3MUUxMDAwMTAwMTU0OTExRjMwMDAwMDI4OTExNjcKKzoxMDA0MzAwMEU3ODI2REVBMDAwNEU3ODM2REVCMDAwQTc3MUEwMDA1OTYKKzoxMDA0NDAwMEYwNzIwM0FBMTE4MUYyRTg4MDgyRTlGRjE5RTEwMDAxNEMKKzoxMDA0NTAwMEYxQTA4MTkyMTFFMTAwMENGMkU4ODA4M0U5RkYxOUUxM0IKKzoxMDA0NjAwMDAwMERGMUEwODE5MzZERTkwMDAyNDgxODQ5MTg3MDAwNTEKKzoxMDA0NzAwMDAwMTVGMDAwMDAwNEYzMDAwMDBBODAwMTgxMDJGMjc0MEMKKzoxMDA0ODAwMDBFNTRGNDk1NDgxNEVFMTA4QTExRkMwMDRBMTFGMDc0RDEKKzoxMDA0OTAwMDBDNUU4MEY4MkE1Qzc3MTIyQTM5NzY4MjAwNTU3NzExMzMKKzoxMDA0QTAwMDJBMTgxMEUxMDAwMTgwRTIwMDAxMTBFMTAwMDI4MEUyNjAKKzoxMDA0QjAwMDAwMDI3NkUyMDAwMzAwMUNGNkI4NTZGODJBMTZGMEYwQTcKKzoxMDA0QzAwMEYwRjg4MEUyMDAwNzU2RjgyQTE2RjFGMEU4RkZGMjgwMTMKKzoxMDA0RDAwMDgwRTIwMDA2NTZGODJBMTZGMUY4RThGRkYyODA4MEUyODIKKzoxMDA0RTAwMDAwMDU1N0Y4MkExNkU4RkZGMjgwODBFMjAwMDQ1NkY4NkIKKzoxMDA0RjAwMDI3NkNGMEYwRjBGODgwRTIwMDBCNTZGODI3NkNGMUYwNzIKKzoxMDA1MDAwMEU4RkZGMjgwODBFMjAwMEE1NkY4Mjc2Q0YxRjhFOEZGNzUKKzoxMDA1MTAwMEYyODA4MEUyMDAwOUU4RkY1N0Y4Mjc2Q0YyODA4MEUyNjEKKzoxMDA1MjAwMDAwMDg1NkY4Mjc2QUYwRjBGMEY4ODBFMjAwMEY1NkY4NUQKKzoxMDA1MzAwMDI3NkFGMUYwRThGRkYyODA4MEUyMDAwRTU2RjgyNzZBQTEKKzoxMDA1NDAwMEYxRjhFOEZGRjI4MDgwRTIwMDBENTdGODI3NkFFOEZGMzMKKzoxMDA1NTAwMEYyODA4MEUyMDAwQzc2RTIwMDEzMDAwMDc2RTIwMDEyRTYKKzoxMDA1NjAwMDAwMDA2RkY4MkE1QzBDNTg4MEUyMDAxMUU4RkYxOEY4RDAKKzoxMDA1NzAwMDJBNUM4MEUyMDAxMDc2RTIwMDE3MDAwMDc2RTIwMDE2QTYKKzoxMDA1ODAwMDAwMDA2RkY4MkE5RTBDNTg4MEUyMDAxNUU4RkYxOEY4NkEKKzoxMDA1OTAwMDJBOUU4MEUyMDAxNDc2RTIwMDFCMDAwMDc2RTIwMDFBMzgKKzoxMDA1QTAwMDAwMDA3NkUyMDAxOTAwMDA3MEUyMDAxODI3NkU3NkUyODMKKzoxMDA1QjAwMDAwMUYwMDAwNzZFMjAwMUUwMDAwNzZFMjAwMUQwMDAwMzEKKzoxMDA1QzAwMDc2RTIwMDFDMDAwMDc2RTIwMDIwMDBBQUYwNzQwMjk4OTcKKzoxMDA1RDAwMDhBMTFGQzAwNEExMUVFRkUxMEY4MkEzOEY4NDUwNEVEQTUKKzoxMDA1RTAwMDc3MTIyQTE4MTBFMjAwMDI4ODExRjQ5NTc3MTAwMDA4OUIKKzoxMDA1RjAwMDZERTlGRkRGRjZBOUY4MjAwNDc1RjA3MzA0N0RGMDEwQjMKKzoxMDA2MDAwMDAwMjFGMDAwMUE4MzQ4MDg3RUY4MDAwOEY0RTJGMDc0MzQKKzoxMDA2MTAwMDAzMEFGMDczMDRFQTQ4MTJGMjc0MDMyM0YwMDAwMDA0QTIKKzoxMDA2MjAwMEYyNzQwMzM2RjQ5NUU4MDBGMDczMDRFQTc3MTEyQTE4OUYKKzoxMDA2MzAwMEU4RkY2RkUxMDAwNDBENDgxOEUxMDAwNUYyNzQwOTY5NTQKKzoxMDA2NDAwMEY0OTVGMkEwRjA3NDAzMzZGMDczMDRFQTc3MTEyQTE4RDcKKzoxMDA2NTAwMEU4RkY2RkUxMDAwNDBENDgxOEUxMDAwNUYyNzQwOTQxNUMKKzoxMDA2NjAwMEY0OTVGMkEwRjA3NDAzMzZGMDczMDRFQUYwNzQwMzU3QzMKKzoxMDA2NzAwMEYwNzMwNEVBMTBGODJBMUNGMDc0MTJBNEYyNzQwMzM2MjIKKzoxMDA2ODAwMEY0OTVFODAwRjA3MzA0RUE0ODEyRjI3NDAzODBGMDAwNzUKKzoxMDA2OTAwMDAwMDRGMjc0MDMzNkY0OTVFODAwRjA3MzA0RUExMEY4RUQKKzoxMDA2QTAwMDJBMUNGMDc0MTJDNUYyNzQwMzM2RjQ5NUU4MDBGMDczNTYKKzoxMDA2QjAwMDA0RUE3NzExMkExOEU4RkY2RkUxMDAwNjBENDgxOEUxRjcKKzoxMDA2QzAwMDAwMDc3MUUxMDAwNTAwMTJGMkEwNzAwMDAwMTI4MDAxMjUKKzoxMDA2RDAwMDEwRTEwMDA0RjA3NDBFN0FGMjc0MDMzNkY0OTVFODAwMjkKKzoxMDA2RTAwMEYwNzMwNEVBRjA3NDAzQkM3NkY4MkEzODAwMDBFRTAyRDYKKzoxMDA2RjAwMDhBMTFGQzAwNEExMTc3MTEyQTM5NzY4MTAwNTU3NzEyNDgKKzoxMDA3MDAwMDJBMTgxMEUyMDAwMTgwRTEwMDAxMTBFMjAwMDI4MEUxRkQKKzoxMDA3MTAwMDAwMDI3NkUxMDAwMzAwMDk0ODExRjAwMDAwMDQ4ODEyOEQKKzoxMDA3MjAwMEY0OTU3NzEzMkE4NkU5MDBFNTk4RjMwMDAwMDFGNkI4RkUKKzoxMDA3MzAwMDQ4MEIwOEY4MkEzQ0Y4NDMwNTBBNzY4MjAwQUFGMDc0QjAKKzoxMDA3NDAwMDAyOTg4QTExRkMwMDRBMTE3NzExMkEzOTc2ODEwMDU1RTYKKzoxMDA3NTAwMDc3MTMyQTE4MTBFMzAwMDE4MEUxMDAwMTEwRTMwMDAyODIKKzoxMDA3NjAwMDgwRTEwMDAyMTNFMzAwMDM4MUUxMDAwMzQ4MTE3NzExRTcKKzoxMDA3NzAwMDAwMDBGODREMDU0NEYwMDAwMDA0ODgxMjQ4MTNGMDAwMTIKKzoxMDA3ODAwMDAwMDQ4ODEzRjQ5NUY0OTVFNTk4NkQ5MUY2Qjg0ODExMzYKKzoxMDA3OTAwMDA4RjgyQTNDRjg0MzA1M0FGMDIwMkEzOTQ5MTFGNTAwQjcKKzoxMDA3QTAwMDg5MTFGNDk1RjQ5NTc2RTEwMDA0MDBBQUYwNzQwMjk4OUEKKzoxMDA3QjAwMDhBMTFGQzAwNEExMTc3MTEyQTM5NzY4MTAwNTU3NzEyODcKKzoxMDA3QzAwMDJBMTgxMEUyMDAwMTgwRTEwMDAxMTBFMjAwMDI4MEUxM0QKKzoxMDA3RDAwMDAwMDI3NkUxMDAwMzAwMEM0ODExRjAwMDAwMDQ4ODEyQ0EKKzoxMDA3RTAwMEY0OTU3NzEzMkE3QUU5MDBFNTk4RjMwMDAwMDFGNkI4NEEKKzoxMDA3RjAwMDQ4MEIwOEY4MkEzQ0Y4NDMwNTZBNzY4MjAwQUFGMDc0OTAKKzoxMDA4MDAwMDAyOTg4QTExRkMwMDRBMTE3NzExMkEzOTc2ODEwMDU1MjUKKzoxMDA4MTAwMDc3MTIyQTE4MTBFMjAwMDE4MEUxMDAwMTEwRTIwMDAyQzQKKzoxMDA4MjAwMDgwRTEwMDAyNzZFMTAwMDMwMDE5NDgxMUYwMDAwMDA0QTUKKzoxMDA4MzAwMDg4MTJGNDk1NzcxMzJBNURFOTAwRTU5OEYzMDAwMDAxMkEKKzoxMDA4NDAwMEY2Qjg0ODBCMDhGODJBM0NGODQzMDU5Mzc2ODIwMEFBQ0MKKzoxMDA4NTAwMEYwNzQwMjk4OEExMUZDMDA0QTExODgxMTEwRjgyQTM4QTUKKzoxMDA4NjAwMEY4NDQwNUUzMTBGODJBQTFGODQ0MDVCQTZDRTFGRjU2RjQKKzoxMDA4NzAwMDA1RTM3MjEyMkFBMUY0OTU3MEUyMkExODAwMTE2QkY4QjAKKzoxMDA4ODAwMDJBQTEwMDAxRjA3MzA1RTM3MjEyMkFBMUY0OTU3MEUyMjcKKzoxMDA4OTAwMDJBMTgwMDExMTBGODJBQTFGMDAwMDAwMTg4MTJGNDk1MUUKKzoxMDA4QTAwMEY0OTU2RUUyRkZGQzA1RDE3MzEyMkFBMTQ4MTFGMDAwMDUKKzoxMDA4QjAwMDAwMDU4MEY4MkFBMjEwRjgyQUExMDhGODJBQTJGODQ0MTQKKzoxMDA4QzAwMDA1RTM2Q0UxRkZBQjA1REQ3NkY4MkEzODAwMDE3NkY4MjgKKzoxMDA4RDAwMDJBQTEwMDAwNzZGODJBQTIwMDAwOEExMUZDMDBGNDk1RjMKKzoxMDA4RTAwMDRBMDg0QTA5NEEwQTRBMEI0QTBDNEEwRDRBMTA0QTExNTgKKzoxMDA4RjAwMDRBMTI0QTEzNEExNDRBMTU0QTE2NEExNzRBMTc0QTE5RkQKKzoxMDA5MDAwMDRBMEU0QTA2NEEwNzRBMUE0QTFENEExQjRBMUM2OEY4RjgKKzoxMDA5MTAwMDAwMDc3RDNGNjlGODAwMDc0MDAwNjhGODAwMURGRkZDRjQKKzoxMDA5MjAwMDQ4MTg2OEY4MDAxOEZGRkVGNDk1RjQ5NTRBMDhFRUZGQTEKKzoxMDA5MzAwMDEwRjgyQTVCRjk4MDE4MDRGMDc0MDVBMkVFMDE4QTE4RjkKKzoxMDA5NDAwMEY0OTU4QTFDOEExQjhBMUQ4QTFBOEEwNzhBMDY4QTBFQ0YKKzoxMDA5NTAwMDhBMTk4QTE3OEExNzhBMTY4QTE1OEExNDhBMTM4QTEyOUMKKzoxMDA5NjAwMDhBMTE4QTEwOEEwRDhBMEM4QTBCOEEwQThBMDk4QTA4RDcKKzoxMDA5NzAwMEY0RUJFRUZENzZGODJBMzgwMDAwNzZGODJBNUEwMDAwRUIKKzoxMDA5ODAwMEU4MDE0RTAwRkI4MDE3RDZGNDk1RTgwMTgwRjgyQTVCNTkKKzoxMDA5OTAwMDc2MDAyQThGRjk4MDE2QUExMEY4MkE1QkY5ODAxNzVDNzYKKzoxMDA5QTAwMDEwRjgyQTVCRjk4MDE3NkZGQjgwMTY2NkY0OTVFODFBMzkKKzoxMDA5QjAwMEZCODAxNjg3RjQ5NUU4MUFGQjgwMTY2NkY0OTVFODFCMTEKKzoxMDA5QzAwMEZCODAxNjg3RjQ5NUU4MUJFRTAzRkMwMDRBMTFGNDk1QjIKKzoxMDA5RDAwMDEzMDI4ODExRTgwMEY4NEQwNjZBRjMxMDAwMDE4OTFBMjUKKzoxMDA5RTAwMEY0OTVGMDcyMDY2OTFDOTE4QTExRkMwMDRBMTE4ODExNzUKKzoxMDA5RjAwMDEyMDMxMTAyRjg0NTA2NzlGMDEwMDAwMTg4MUFGNDk1RTcKKzoxMDBBMDAwMEYwNzIwNjc4ODE5MThBMTFGQzAwNEExMUY0OTU3MTAyMDYKKzoxMDBBMTAwMDAwMTExMTAzNjFGODAwMTEwMDAxRjgzMDA2OTFGNkI4RDkKKzoxMDBBMjAwMDZGRjgwMDExMEMxRjg4MTFGM0U4RThGRjE4ODFGMUEwOUUKKzoxMDBBMzAwMDgxODFGMDczMDY5REY2Qjg2RkY4MDAxMTBDMUY4ODExQzQKKzoxMDBBNDAwMEYzMzAwMEZGRjAyMEZGMDAxODgxRjFBMDgxODE4QTExQUUKKzoxMDBBNTAwMEZDMDA0QTExRjQ5NTExMDI2MUY4MDAwQjAwMDFGODIwMjYKKzoxMDBBNjAwMDA2QjE0OTBCRjYxRjg4MTFGNDk1RjQ5NTEwODFGMjczQzUKKzoxMDBBNzAwMDA2QjhGMDMwMDBGRjQ5MEJGNjFGODgxMUY0OTVGNDk1ODUKKzoxMDBBODAwMDEyODFGNDc4OEExMUZDMDA0QTExRjQ5NTcxMDIwMDEyNjcKKzoxMDBBOTAwMDEzMDM4ODExRTgwMEY4NEQwNkNDRjMxMDAwMDE4OTFBMDEKKzoxMDBBQTAwMEY0OTVGMDcyMDZDQjExOTJGMkMwODE5MThBMTFGQzAwOEMKKzoxMDBBQjAwMDg4MTIxMjAyNzEwMTAwMTNGODQ1MDZEQkYwMTAwMDAxRTQKKzoxMDBBQzAwMDg4MUFGNDk1RjA3MjA2REFFNTk4RkMwMDRBMTFFRUZFRjkKKzoxMDBBRDAwMDg4MTExMTA0MTAwNjcxMDUwMDEyNjFGODAwMTIwMDAxNUUKKzoxMDBBRTAwMEY4MjAwNkVBRjAwMDAwMDFGNkI4RjAwMDAwMDE2RkY4MDcKKzoxMDBBRjAwMDAwMTIwRjFGNDgwODgxMDBGNDdGODAwMUYyNzQwNkJBQ0IKKzoxMDBCMDAwMEY0OTU0ODExRUUwMjhBMTFGQzAwNEExMUVFRkU4ODEyOUIKKzoxMDBCMTAwMDExMDQxMDA2NzEwNTAwMTM2MUY4MDAxMzAwMDFGODIwOUMKKzoxMDBCMjAwMDA3MDlGMDAwMDAwMUYwMDAwMDAxODgxMUY2Qjg2RkY4MjUKKzoxMDBCMzAwMDAwMTMwRjFGODEwMDQ4MTFGNDdGODAwMUYyNzQwNkNFNkMKKzoxMDBCNDAwMEY0OTU0ODEyNDgxMUYwMzBGRkZFRUUwMjhBMTFGQzAwQzUKKzoxMDBCNTAwMDRBMTE0QTE2NEExN0VFRkNGNDk1ODAwMjcxMDgwMDE2RjUKKzoxMDBCNjAwMDEwMDk3MTBCMDAxNzgwMDM3MTBBMDAxMTQ4MTdGODQ1MkUKKzoxMDBCNzAwMDA3M0Y3MDAwMDAxMTEwMDNGMDc0MDY5RjgwMDE3MDAwQTEKKzoxMDBCODAwMDAwMTYxMDAyRjA3NDA2N0I2RDkxNkQ5NjZDRUZGRkZGRkUKKzoxMDBCOTAwMDA3MkZFRTA0OEExNzhBMTY4QTExRkMwMDRBMTFFRUZFMEUKKzoxMDBCQTAwMDEwRjgyQUU4MDhGODJBRTlGODQ1MDc2NDc2MDAwMDAxRjkKKzoxMDBCQjAwMDYyRjgyQUU5MDA1RUYyNzQxMjBCRjAwMDMwNDA3MjExMDQKKzoxMDBCQzAwMDJBRTk3NzEwMDAwRkY1QTlGODIwMDc2MTZCRjgyQUU5RTgKKzoxMDBCRDAwMDAwMDFGMDczMDc2NDc2RjgyQUU5MDAwMEVFMDI4QTExM0EKKzoxMDBCRTAwMEZDMDA0QTExODgxMUU4MDA3NUY4MDAwODAwMDhFODAwQzgKKzoxMDBCRjAwMDc1RjgwMDA4MDAwOUY2QjhGNDk1RjAyMEZDM0Y3NUY4ODgKKzoxMDBDMDAwMDAwMDgwMDBERjAyMDBDMzA3NUY4MDAwODAwMEM3NkY4OTQKKzoxMDBDMTAwMDJBRTgwMDAwNzZGODJBRTkwMDAwNkM4MTA3OTI3NkY4NEQKKzoxMDBDMjAwMDJBRUEwMDAwRkI4MDE2NzZGNDk1RTgxMEU4MDA3NUY4RDMKKzoxMDBDMzAwMDAwMDgwMDAwRjA3MzA3QTg3NkY4MkFFQTAwMDFGQjgwOUMKKzoxMDBDNDAwMDE2NjZGNDk1RTgxMEZCODAxNjg3RjQ5NUU4MTBFODAwMjYKKzoxMDBDNTAwMDc1RjgwMDA4MDAwMEY2QjhGNDk1RjAyMEZGRkY3NUY4NkQKKzoxMDBDNjAwMDAwMDgwMDAwOEExMUZDMDBGNDk1NEEwODRBMDk0QTBBNjMKKzoxMDBDNzAwMDRBMDY0QTA3NEExRDY4RjgwMDA3N0QzRjY5RjgwMDA3RTEKKzoxMDBDODAwMDQwMDA2OEY4MDAxREZGRkMxMEY4MkFFQUY4NDUwN0UxNkIKKzoxMDBDOTAwMDEwRjgyQUU4RjAwMDAwMDFGMDMwMDAwRjgwRjgyQUU4OTAKKzoxMDBDQTAwMDEwRjgyQUU4Rjg0NDA3RDZGNkI4RjQ5NUYwMjBGQzNGOEYKKzoxMDBDQjAwMDc1RjgwMDA4MDAwREYwMjAwQzMwNzVGODAwMDgwMDBDRTUKKzoxMDBDQzAwMEU4MDA3NUY4MDAwODAwMDBGNkI4RjQ5NUYwMjBGRkZGODIKKzoxMDBDRDAwMDc1RjgwMDA4MDAwMDhBMUQ4QTA3OEEwNjhBMEE4QTA5QjAKKzoxMDBDRTAwMDhBMDhGNEVCRUVGRkYyNzQwNzY3RjQ5NUU4MDFFRTAxNzEKKzoxMDBDRjAwMEZDMDA0QTA3NEExRDY4RjgwMDA3N0QzRjY5RjgwMDA3QjUKKzoxMDBEMDAwMDQwMDA2OEY4MDAxREZGRkM4QTFEOEEwN0Y0RUI0QTExQjkKKzoxMDBEMTAwMDc3MTEwMDI4NzY4MTI0MDBFODAwNzVGODAwMDgwMDAxQUEKKzoxMDBEMjAwMEYyNzQwNzY3RjQ5NUU4MDA3NzExMDAxRDY4ODEwMDdGNzEKKzoxMDBEMzAwMEY2QjhGNDk1RjAyMEZGODA3NzExMDAxREYwMzAwMTAwMjcKKzoxMDBENDAwMDFBODE4MDgxRjA3NDBBMzNGMDc0MTFBQ0Y5ODAxMzI1OTQKKzoxMDBENTAwMEY5ODAxNjUzRjk4MDE3ODJGMDc0MDYyRkY5ODAxNEIyQzcKKzoxMDBENjAwMEY5ODAxOTEwRjA3NDBERTNGMDc0MDdFOEYwNzQwMjM2OUUKKzoxMDBENzAwMDhBMTFGQzAwNEExMTYwRjgyNzdCRkZGRkY4MzAwODM5MjAKKzoxMDBEODAwMDcxRjgyNzdCMjc3OTYwRjgyNzc5RkZGRkY4MzAwOEIyRTAKKzoxMDBEOTAwMDEwRjgyOTg2MDhGODI3NzlGMDMwN0ZGRjg4MTFGNDk1M0MKKzoxMDBEQTAwMDc3MTA0MDAwRjZBOUY4MzAwODU4MTBGODI3NzkwOEY4QUQKKzoxMDBEQjAwMDI3N0FGMDMwN0ZGRjg4MTFGNDk1NzcxMDQwMDBGNkE5NkMKKzoxMDBEQzAwMEY4MjAwODYzNzZGODI3NzlGRkZGNzZGODI3N0JGRkZGODYKKzoxMDBERDAwMEY3QjhGMjczMDhEOUYwMjBGRkZGRjZCODU2RjgyNzc0NzkKKzoxMDBERTAwMEYwRjk4ODExNTZGODI3NzJGMEY5ODgxMkY0OTVGNDk1MDUKKzoxMDBERjAwMEU3MjBGNEE5RjgzMDA4OEZGMTIwMjc3QzQ4MTFGNjAwOEQKKzoxMDBFMDAwMDg4MTNGNDk1RjQ5NTEwODMwOEY4Mjc3OUYwMzA3RkZGNjQKKzoxMDBFMTAwMDg4MTNGNDk1NzcxMDQwMDBGNUFCRjgzMDA4OEY2RDkxOEEKKzoxMDBFMjAwMDQ4MTFGMDMwMDFGRjg4MTFGNDk1RTcyMEY3QTlGODMwNTgKKzoxMDBFMzAwMDA4NzQ2RDg5NDgxMUYwMzAwMUZGRjBFN0Y0OTU0ODA4MTcKKzoxMDBFNDAwMDRFRjgyNzc0NDgwOEYxRjk4OTExRjQ5NUY0OTU3MUUxODkKKzoxMDBFNTAwMDI3N0MyNzdBNjBGODI3N0JGRkZGRjgzMDA4QUI0ODA4MkIKKzoxMDBFNjAwMDRFRjgyNzcyNzZGODI3N0JGRkZGNzZGODI3NzlGRkZGODkKKzoxMDBFNzAwMEYyNzMwOEQ5RjQ5NUU4MDA0NEY4Mjc3MzQwRjgyNzc1MTEKKzoxMDBFODAwMDgyRjgwMDExRjQ5NTc3MTA4MDAwRjZBOUY4MjAwOEQ4QjAKKzoxMDBFOTAwMEY2QjgxMEY4Mjc3M0YwMDA4MDAwNDgwODRFRjgyNzc0NjEKKzoxMDBFQTAwMDQ4MDhGMEY5ODgxMUY0OTVGNDk1NzFFMTI3N0MyNzdBQzgKKzoxMDBFQjAwMEY3Qjg1N0Y4Mjc3NEYwNjJGRkZGRjA0MEZGODBGMjgwMjgKKzoxMDBFQzAwMDRFRjgyNzc0RTgwMDhBMTFGQzAwNEExMTRBMTZFRUZCMUUKKzoxMDBFRDAwMDExRjgyNzcxMDlGODI3NzM4OTExODgxMEY0OTVGNDk1OTIKKzoxMDBFRTAwMEY2QTlGODIwMDhFREYyNzMwOTBFRjQ5NUU4MDBGNjIwNTMKKzoxMDBFRjAwMDc2MDAwMDQxRjA3NDEyRUU4ODE2RjQ5NUY3Qjg2RDk2RkUKKzoxMDBGMDAwMDEwRjgwMDE2Rjg0NzA5MEFFNzYxNzYwMDAwMDA3NjAxM0MKKzoxMDBGMTAwMDAwODA3NjAyMDBGRjc2MDMwMDAwRjI3NDBDQjlGNDk1QUQKKzoxMDBGMjAwMEU4MDA2Q0U5RkZGRjA4RkI3MzE2MDAwRUYwNjYwMDQxNTUKKzoxMDBGMzAwMEVFMDU4QTE2OEExMUZDMDA0QTExRjQ5NTcxMDIwMDEzMUQKKzoxMDBGNDAwMEY2Qjg3NzExN0ZGRjU3RjgyNzcyNDgxMUYyODBGMDAwNEEKKzoxMDBGNTAwMDgwMDA4ODExRjY0MEYwRTBGMUYxRTgwMUYyODA4MEY4QkQKKzoxMDBGNjAwMDI3Nzg3NzEyODAwMDU3RjgyNzcyNDgxMkYyODA4ODEyOEIKKzoxMDBGNzAwMEY0OTVGNDk1NkM4MjA5MzhFODAwNzVGODAwMDgwMDAxRDIKKzoxMDBGODAwMEYwNzMwOTNERjAyMDgwMDE3NUY4MDAwODAwMDE3MDgxQzAKKzoxMDBGOTAwMDAwMTM4QTExRkMwMDRBMTFGMDMwN0ZGRjExRjgyOTg2RjYKKzoxMDBGQTAwMEY1MjBGMzMwN0ZGRjg5MTFGNDk1NzcxMDQwMDBGNkE5MDIKKzoxMDBGQjAwMEY4MjAwOTU0RjI3MzA5NjdGNDk1RTgwMjZGRjgyNzdBNkMKKzoxMDBGQzAwMDBEMjBGMzMwN0ZGRjg5MTFGNDk1NzcxMDQwMDBGNkE5Q0EKKzoxMDBGRDAwMEY4MjAwOTY0RjI3MzA5NjdGNDk1RTgwMTgwRjgyNzdCMkIKKzoxMDBGRTAwMEU4MDA4QTExRkMwMDRBMTExMUY4Mjk4NkY1MjBGMzMwMzcKKzoxMDBGRjAwMDdGRkY4OTExRjQ5NTc3MTA0MDAwRjZBOUY4MjAwOTdBNEYKKzoxMDEwMDAwMEYyNzMwOThERjQ5NUU4MDI2RkY4Mjc3QTBEMjBGMzMwMUEKKzoxMDEwMTAwMDdGRkY4OTExRjQ5NTc3MTA0MDAwRjZBOUY4MjAwOThBMUUKKzoxMDEwMjAwMEYyNzMwOThERjQ5NUU4MDE4MEY4Mjc3OUU4MDA4QTExQjgKKzoxMDEwMzAwMEZDMDA0QTExRjQ5NTcxMDIwMDEyODgxMUY2Qjg1N0Y4QjUKKzoxMDEwNDAwMDI3NzJGMDIwN0ZGRkYyODBGMDAwODAwMDgwODE1N0Y4NDcKKzoxMDEwNTAwMDI3NzJFODAxRjNGMUYyODA4MEY4Mjc3ODc3MTE4MDAwOTkKKzoxMDEwNjAwMDQ4MTE1N0Y4Mjc3MkYyODA4ODExRjQ5NUY0OTU2QzgxMzUKKzoxMDEwNzAwMDA5QjVFODAwNzVGODAwMDgwMDAxRjA3MzA5QkFGMDIwMUUKKzoxMDEwODAwMDgwMDE3NUY4MDAwODAwMDE0NUY4Mjc3MTQzRjgyNzczQkYKKzoxMDEwOTAwMDgzRjgwMDExRjQ5NUU3MjBGNkE5RjgzMDA5QzlGMjczMzYKKzoxMDEwQTAwMDA5RTQ3NzEyMDAwMDU3RjgyNzcyRjAyMDdGRkZGMjgwRTIKKzoxMDEwQjAwMDQ5MTJGNTAwRjMwMDgwMDA2MUY4MDAwQjgwMDBGODMwNjEKKzoxMDEwQzAwMDA5RENGMTIwODAwMEY1MjA4OTEyRjQ5NTQ4MTI2RkY4QjAKKzoxMDEwRDAwMDI3NzMwRDAwRjQ5NTQ5MEI0RkY4Mjc3MjhBMTFGRTAwMTMKKzoxMDEwRTAwMDQ4MTJGNDk1NEExMTRBMTY0QTE3RUVGQ0Y0OTU3MTA4MTUKKzoxMDEwRjAwMDAwMTY4ODE3RjA3NDA4MzA0ODE4NzAwMDAwMTZGMjc0NTMKKzoxMDExMDAwMDA5OEZGMDAwMDAwMjg4MTFGNDk1RjQ5NTZDODEwQTBBQTkKKzoxMDExMTAwMEYyNzQwOERCRjQ5NTQ4MTY0ODE4NzAwMDAwMTZGMjc0NTMKKzoxMDExMjAwMDA5OEZGMDAwMDAwMjg4MTExMDAyNzAwMTAwMTE4MDAwODgKKzoxMDExMzAwMEYyNzQwNkNFRjQ5NTQ4MTc0OTExNDgxN0Y2MDA4ODE3M0YKKzoxMDExNDAwMEU3NjBGNUE5RjgyMDBBMkQ0ODE2RjYyMDg4MTE0ODE4RkUKKzoxMDExNTAwMDcwMDAwMDExRjI3NDA5OEZGMDAwMDAwMjg4MTE3MDAxMTQKKzoxMDExNjAwMDAwMTExMDAyODAwMEYyNzQwNkNFRjQ5NTQ4MTdFRTA0QzgKKzoxMDExNzAwMDQ4MTY4QTE3OEExNjhBMTFGQzAwRUVGREU4MDA0RUY4MjAKKzoxMDExODAwMDI3NzBFODAwNEVGODI3NzJFODAwNEVGODI3NzRFODAwNTAKKzoxMDExOTAwMDRFRjgyNzc2NzZGODI3NzlGRkZGNzZGODI3N0EwMDAwNTEKKzoxMDExQTAwMDc2RjgyNzdCRkZGRjc2RjgyNzc4MDAwMEU4MDA3NUY4Q0YKKzoxMDExQjAwMDAwMDgwMDAxNzYwMDAwMDA3NjAxMDIwMEYyNzQxMkRDRTMKKzoxMDExQzAwMEYwMjAyNzdDRUUwM0ZDMDA0QTExRUVGQ0Y0OTU0RTAwNjMKKzoxMDExRDAwMDc3MTI3RkZGRjZCODQ5MTJGMTgwRjMwMDgwMDA4OTEyODAKKzoxMDExRTAwMEYwRTBGMUYxNEYwMkU5MDFGNDk1NDgwQkY1NDA1NjAyQTkKKzoxMDExRjAwMEYxODA4MUY4Mjc3ODc3MTE4MDAwNTYwMDQ5MTFGMTgwM0QKKzoxMDEyMDAwMDg5MTFGNDk1RjQ5NTZDODEwQTgxRTgwMDc1RjgwMDA4NUQKKzoxMDEyMTAwMDAwMDFGMDczMEE4NkYwMjA4MDAxNzVGODAwMDgwMDAxRDMKKzoxMDEyMjAwMDEwODJFRTA0OEExMUZDMDA0QTExRUVGRUY0OTU0RTAwODUKKzoxMDEyMzAwMDc3MTE3RkZGRjZCODQ5MTFGMTgwRjMwMDgwMDA4OTExMjIKKzoxMDEyNDAwMEYwRTBGMUYxRTgwMUYyODA4MEY4Mjc3ODU2MDBGMTIwMTMKKzoxMDEyNTAwMDgwMDBGMTgwRjQ5NTQ5MEJGODREMEFBQkYwMjA4MDAxMzUKKzoxMDEyNjAwMDc1RjgwMDA4MDAwMUYwNzMwQUFGRTgwMDc1RjgwMDA4OEYKKzoxMDEyNzAwMDAwMDFFRTAyNDgxMThBMTFGQzAwNEExMTg4MTIxMzAyODMKKzoxMDEyODAwMDc3MTEwMDAwRjg0RDBBQ0JGMzEwMDAwMTg5MUFGNDk1OEMKKzoxMDEyOTAwMEYwNzIwQUNBNDgxMTFDRjgyOTdFODgxMTExRjgyOTdFQkIKKzoxMDEyQTAwMEYyMDAwMDAxODBGODI5N0U4MTkyNDgxMThBMTFGQzAwMjkKKzoxMDEyQjAwMDRBMTFGNDk1NzEwMjAwMTE4ODEyRjZCOEYwMjA3RkZGRjAKKzoxMDEyQzAwMDU3RjgyNzcwRjI4MEYwMDA4MDAwODA4MjU3RjgyNzcwNkUKKzoxMDEyRDAwMEU4MDFGM0YxRjI4MDgwRjgyNzc4NzcxMjgwMDA0ODEyNTUKKzoxMDEyRTAwMDU3RjgyNzcwRjI4MDg4MTJGNDk1RjQ5NTZDODIwQUY0MEUKKzoxMDEyRjAwMEU4MDA3NUY4MDAwODAwMDFGMDczMEFGOUYwMjA4MDAxOTkKKzoxMDEzMDAwMDc1RjgwMDA4MDAwMTQ1RjgyNzc1RTcxMDQzRjgyNzcxQzQKKzoxMDEzMTAwMDgzRjgwMDEyNkRFODAwMDQ2RDhBRjZBQUY4MzAwQjBBMTMKKzoxMDEzMjAwMEYyNzMwQjI1NzcxMTAwMDA1N0Y4Mjc3MEYwMjA3RkZGMkMKKzoxMDEzMzAwMEYyODA0OTExRjUwMEYzMDA4MDAwNjFGODAwMEI4MDAwOTUKKzoxMDEzNDAwMEY4MzAwQjFERjEyMDgwMDBGNTIwODkxMUY0OTU0ODExMkIKKzoxMDEzNTAwMDZGRjgyNzcxMEQwMEY0OTU0OTBCNEZGODI3NzA0ODExNkQKKzoxMDEzNjAwMDhBMTFGQzAwNEExMTRBMTY0QTE3RUVGMDg4MTcxMDE3MjYKKzoxMDEzNzAwMDgwMDUxMDE2ODAwNjEwMTU4MDA3NzExNDAwMTExMDA1RTUKKzoxMDEzODAwMEYwMzAwMDAxODgxMDEwMDZGMDMwMDAwMTgwMDg0OTExOEIKKzoxMDEzOTAwMDEwMDVGNjAxODAwOTEwMDY2MUY4MDAwODAwMDFGODIwMjgKKzoxMDEzQTAwMDBCNEIxMDA5RjAwMDAwMDE4MDA5NzEwODAwMTJGNEFBMkIKKzoxMDEzQjAwMEY4MzAwQjU0MTAwOUYwMDAwMDAxODAwOTEyMDk0OTExOUUKKzoxMDEzQzAwMEY0N0Y4MDA5RjYyMDgwMEE1NkY4Mjc3MDRFMEMxMDA5MjkKKzoxMDEzRDAwMDgwMDA0ODE4RjI3NDBBQ0VGMDAwMDAwNDg4MTZGNDk1RDQKKzoxMDEzRTAwMEY0OTU2Qzg2MEI2REYyNzMwQzU5RjQ5NUU4MDBGNkI4MjEKKzoxMDEzRjAwMEY0OTU1NjBDRjBGOTg4MTJGNDk1RjQ5NTcwRTIyNzdDNzgKKzoxMDE0MDAwMDI5ODZFODAwODAwRTQ4MTFGODQ1MEJDQzc3MTAwMDAxQzIKKzoxMDE0MTAwMEY0QTlGODMwMEI4OTZDRTFGRkZEMEI4QjEwRTcwMDAyOUIKKzoxMDE0MjAwMDgwMEVGMDczMEI4QjEwODc4MDBFRTcxMEY1QUVGODIwNUUKKzoxMDE0MzAwMDBCQjI3MDAwMDAxNzcwMDEwMDE2MTAwNEYwNzQwNkNFOTUKKzoxMDE0NDAwMDQ4MTc0OTE2RjYwMDg4MTc0ODExRjYyMDg4MTExMDA5MjgKKzoxMDE0NTAwMEY2MjA4MDAwNDgxOEYyNzQwQUNFRjAwMDAwMDQ4ODE2QzYKKzoxMDE0NjAwMDEwMDQ3MDAwMDAxNzcwMDEwMDExRjA3NDA2Q0U0ODExQ0UKKzoxMDE0NzAwMDAwMDQ4MDA0RjA3MzBCQkM3MDAwMDAxNzcwMDEwMDExQjEKKzoxMDE0ODAwMDEwMDRGMDc0MDZDRTQ4MTEwMDA0ODAwNDQ5MTE0ODE2NzcKKzoxMDE0OTAwMEY2MjA4ODE2RjQ5NUY0OTU2Qzg2MEJDQzEwMEE4MDAwMjMKKzoxMDE0QTAwMDQ4MThGMjc0MEFDRUYwMDAwMDA0ODgxNjEyMEFGODQ1QjMKKzoxMDE0QjAwMDBDMzM3MTBBMDAxMEY0QUVGODMwMEMxQzQ4MTZGMEUxNDEKKzoxMDE0QzAwMDg4MTExMjA4Rjg0NTBCREI2RDg5MTIwN0Y4NDUwQkU5MDYKKzoxMDE0RDAwMDEwMDc4MDAwNzAwMjAwMTExMDA2ODAwMTEwMDRGMDc0RTMKKzoxMDE0RTAwMDA2RENGMDczMEJFRjQ4MTE2RjAwMEM5RjEwMDRGMDc0RDIKKzoxMDE0RjAwMDBBQjMxMTBFRjFDMDgxMEUxMDA2NDkxMUY2MDA4MDA2RTQKKzoxMDE1MDAwMDEwMDVGNjIwODgxMUYwMDAwMDAxNDgwODZGMDAwQzlGQkMKKzoxMDE1MTAwMDQ4MThGMjc0MEFDRUYwMDAwMDA0MTIwN0Y4NDUwQzExQzYKKzoxMDE1MjAwMDEwMDc4MDAwNzAwMjAwMTExMDA2ODAwMTEwMDRGMDc0OTIKKzoxMDE1MzAwMDA2RENGMDczMEMxNzQ4MTE2RjAwMEM5RjEwMDRGMDc0NTgKKzoxMDE1NDAwMDBBQjMxMTBFRjFDMDgxMEVGMDczMEMzMzEyMDdGODQ1ODcKKzoxMDE1NTAwMDBDMkExMDA3ODAwMDEwMDY4MDAxMTAwNTgwMDIxMDA0N0MKKzoxMDE1NjAwMEYwNzQwNkRDRjA3MzBDMzAxMjA1NkYwMDBDOUYxMDA0NTEKKzoxMDE1NzAwMEYwNzQwQUIzMTEwRUYxQzA4MTBFNzYwMDAwMDE0ODE4MTQKKzoxMDE1ODAwMEYyNzQwQUNFRjAwMDAwMDQ3MTA0MDAxMTcwODEyOTg2MDMKKzoxMDE1OTAwMDEwMEUxQ0Y4Mjk4NjgwMEU3NjAwMDAwMTQ4MThGMjc0OUYKKzoxMDE1QTAwMDBBQ0VGMDAwMDAwNDEwMEU3MTA0MDAxMTgwODExMEY4QzIKKzoxMDE1QjAwMDI5ODZGMDAwMDAwMUYwMzA3RkZGODBGODI5ODYxMDA5QUQKKzoxMDE1QzAwMEYwMDAwMDAyODAwOUVFMTA4QTE3OEExNjhBMTFGQzAwQ0EKKzoxMDE1RDAwMDEwRjgyNzc1MDhGODI3NzFGMDEwMDAwMTQ4MDhGQzAwODIKKzoxMDE1RTAwMDRBMTE0QTE2RUVGRkY0OTU3MTA0MDAxNkYwMDAwMDAxNEUKKzoxMDE1RjAwMDQ4MDg0RUY4Mjk3QzZERUVGRkZENDgxNkY4NDUwQzk5MTkKKzoxMDE2MDAwMDU2RjgyOTdDRjA3NDBBNUE4ODExMTBGODI5N0RGMDAwRTgKKzoxMDE2MTAwMDAwMDE0ODA4NEVGODI5N0MxMEY4Mjk4MkYwMDAwMDAxRUEKKzoxMDE2MjAwMDg4MTBGNDk1RjQ5NUY0QTlGQTMwMEM5NjgwRjgyOTgyODQKKzoxMDE2MzAwMDU2RjgyOTgwRjAwMDAwMDE0RUY4Mjk4MDczMTEyOTgyQTQKKzoxMDE2NDAwMDZDRUVGRkZGMEM3NkVFMDE4QTE2OEExMUZDMDA0QTExM0YKKzoxMDE2NTAwMDc2RjgyOTg0MDAwMDc2RjgyOTg1MDAwMUU4MDA0RUY4MjQKKzoxMDE2NjAwMDJBMEM3NkY4Mjk4NjAwMDA3NkY4Mjk4NzAwMDA3NzExODEKKzoxMDE2NzAwMDI5ODg3NjgxQUFBQTc2RTEwMDAxQUFBQTc2RTEwMDAyNjkKKzoxMDE2ODAwMDAwMDA4QTExRkMwMDRBMTFFRUZDRjQ5NTcxMDYwMDE0NkEKKzoxMDE2OTAwMDcxMDcwMDEzNzEwODAwMTI3MTA5MDAxNTc3MTAwMEZGMUYKKzoxMDE2QTAwMEY0QUFGODMwMEQ0NDQ5MTM1M0Y4MkEwQzRGRjgyQTBDQzkKKzoxMDE2QjAwMDczMTIwMDBFRjE2NjAwMEQ4OTExRjQ5NTc3MTAwMDAxODgKKzoxMDE2QzAwMDcxRTEyNDAwMDAxMUY0QTlGODMwMEQxNzc3MTAwMDAyMjEKKzoxMDE2RDAwMEY0QTlGODMwMENFQzc3MTEyOThBNzY4MTAwMDBFODAwMzMKKzoxMDE2RTAwMDc3MTQwMDAwNzcxMzAwMDBGMDczMEQ0ODZDODMwQ0ZBMzgKKzoxMDE2RjAwMDc3MTEyOThBNDgxMkYwRThGMDQwODAwMDgwODFFODAwRTQKKzoxMDE3MDAwMDc3MTQwMDAwRjA3MzBENDg0OTEzRjM0MDgwMDA4MUY4MEUKKzoxMDE3MTAwMDI5OEE2MUY4MDAxNTAwMDFGODIwMEQwNzY5RjgyOThBNjcKKzoxMDE3MjAwMDQwMDA2MUY4MDAxNDAwMDFGODIwMEQwRjY5RjgyOThBQzMKKzoxMDE3MzAwMDIwMDA3NzExMjk4QTQ5MTJGM0U4MUI4MTgxODFGMDczMTcKKzoxMDE3NDAwMDBENDgxMUY4Mjk4NEY4NEMwRDM3NzcxMTI5ODg3NjgxRDYKKzoxMDE3NTAwMEFBQUExMUY4Mjk4NUYzMTAwMDAxRjM0MEFBMDA4MUUxM0IKKzoxMDE3NjAwMDAwMDE3NjAwMDAwMjgwMDE3MDAyMDAxNDcwMDMwMDEzNzMKKzoxMDE3NzAwMEYyNzQwQjI4RjQ5NTQ4MTE3MUY4Mjk4NTI5ODRGMDczQzcKKzoxMDE3ODAwMDBENzM3NjAwMDAwMDgwMDE3NjAyMDAwMDcwMDMwMDEzRTQKKzoxMDE3OTAwMEYyNzQwQjI4RjQ5NUU4MDBGMDczMEQ3Mzc3MTEyOThBMjEKKzoxMDE3QTAwMDcwODEwMDEzMTFGODI5ODRGODRDMEQ2ODc3MTEyOTg4OEQKKzoxMDE3QjAwMDc2ODFBQUFBMTFGODI5ODVGMzEwMDAwMUYzNDBBQTAwNDYKKzoxMDE3QzAwMDgxRTEwMDAxNzYwMDAwMDM4MDAxNzAwMjAwMTQ3MDAzQzMKKzoxMDE3RDAwMDAwMTNGMjc0MEIyOEY0OTU0ODExNzFGODI5ODUyOTg0QjcKKzoxMDE3RTAwMEYwNzMwRDczNzYwMDAwMDE4MDAxNzAwMjAwMTQ3MDAzMjUKKzoxMDE3RjAwMDAwMTNGMjc0MEIyOEY0OTU0ODExNkJGODI5ODRGRkZGNEQKKzoxMDE4MDAwMEVFMDQ4QTExRkMwMDRBMTFGNTQwRjQ5NTQ4MEJGNDc4NzcKKzoxMDE4MTAwMDg4MTFGNDk1RjQ5NTZDRTFGRkI5MEQ4OEYyNzMwREE1NkMKKzoxMDE4MjAwMEY0OTVFODYwRjIwMDAwMDY2MUY4MDAxMTAwMjBGODMwM0QKKzoxMDE4MzAwMDBEOTg2MUY4MDAwQjAwMDFGODIwMERBM0YyMDAwMDA3REQKKzoxMDE4NDAwMEYwNzMwREEzNjFGODAwMEIwMDAxRjgyMDBEQTFGMjczRjUKKzoxMDE4NTAwMDBEQTNGMDAwMDAwMUYwMDAwMDAyNDgwOEY0N0Y4QTExOTcKKzoxMDE4NjAwMEZDMDBFRUZGRjA3NDA3RkRGMDc0MDc0NEYwNzQwREI0NTMKKzoxMDE4NzAwMEYwNzQwMjA1RjA3NDA0NjBGMDczMERBQUVFRkQxMEY4MjgKKzoxMDE4ODAwMDJBQTNGODQ0MERDQjEwRjgyQUE0Rjg0NTBERDc3NjAwMEEKKzoxMDE4OTAwMDAyMDBGMjc0MDlFOEYwMjAyMjAwNzZGODJBQTQwMDAwODEKKzoxMDE4QTAwMDc2RjgyQUE3MDAwMEYwNzMwREQ3NzYwMDAyMDBGMjc0RDQKKzoxMDE4QjAwMDA5RThGMDIwMjAwMDc2RjgyQUEzMDAwMDc2RjgyQUE3OEQKKzoxMDE4QzAwMDAwMDFGMDc0MEM1RUYwRTBGMDEwM0E5OEY4NDcwREUxN0EKKzoxMDE4RDAwMDc2RjgyNzZFMDAwMEVFMDNGQzAwNEExMUVFRkU3NzExNDkKKzoxMDE4RTAwMDIwMDA3NjAwQUFBQTc2MDEwMjAwRjI3NDA2NkNGNDk1MzQKKzoxMDE4RjAwMDQ4MTE3NjAwNTU1NTc2MDEwMjAwNDgxMUYyNzQwNjZDQzUKKzoxMDE5MDAwMEYwMDAwMjAwNzZGODJBQTMwMDAwNzZGODJBQTQwMDAwNkUKKzoxMDE5MTAwMEU4MDA0RTAwRkI4MDE1M0VGNDk1RTgwNDgwRjgyQUE1MDcKKzoxMDE5MjAwMDc2MDAyQUE4Rjk4MDE0ODc3NjAwMkFBREZCODAxMzYyMUUKKzoxMDE5MzAwMEY0OTVFODAyMTBGODJBQTVGOTgwMTQ2M0ZCODAxNjY2NzYKKzoxMDE5NDAwMEY0OTVFODFDRkI4MDE2ODdGNDk1RTgxQ0U4MDE0RTAwMkUKKzoxMDE5NTAwMEZCODAxN0Q2RjQ5NUU4MDA4MEY4MkFBNjc2MDAyQUI3MEYKKzoxMDE5NjAwMEY5ODAxNkFBMTBGODJBQTZGOTgwMTc1QzEwRjgyQUE2QTIKKzoxMDE5NzAwMEY5ODAxNzZGRUUwMjhBMTFGQzAwRjQ5NTRBMDg0QTA5QjMKKzoxMDE5ODAwMDRBMEE0QTA3NEExRDY4RjgwMDA3N0QzRjY5RjgwMDA3QzAKKzoxMDE5OTAwMDQwMDA2OEY4MDAxREZGRkMxMEY4MkFBN0Y4NDQwRTRCMjEKKzoxMDE5QTAwMDc2RjgyQUEzMDAwMUYwNzMwRTRFNzZGODJBQTQwMDAxRkYKKzoxMDE5QjAwMDhBMUQ4QTA3OEEwQThBMDk4QTA4RjRFQjRBMTE0QTE2OUMKKzoxMDE5QzAwMDRBMTdFRUZFODgwRTcxMDgwMDE2NzEwNjAwMTcxMTA3RkYKKzoxMDE5RDAwMEYwNjYwMDBERjAwMDI1QTA4ODExNzYwMTAwMDY4MTAwNTgKKzoxMDE5RTAwMEYyNzQwNkNFRjAwMDAwMDE3NjAxMDAwNjcwMDAwMDE2QzkKKzoxMDE5RjAwMDQ4MTFGMjc0MDZDRUYwMDAwMDA3NzA4MTAwMTdFRTAyNjUKKzoxMDFBMDAwMDhBMTc4QTE2OEExMUZDMDA0QTExODgwRTcxMDIwMDEyODgKKzoxMDFBMTAwMDExMDNGMDY2MDAwREYwMDAyNDAwODgxMUY0OTU3MDgxMjgKKzoxMDFBMjAwMDAwMTI2RUUyRkZGRTBFOERGNDk1RTgwMEU4MDE4MEUxMDEKKzoxMDFBMzAwMDAwMDI3NkUxMDAwMzAwRkY3NkUxMDAwNDAwMDA3NkUxOTkKKzoxMDFBNDAwMDAwMEIwMDAwNzZFMTAwMEMwMDAwODFFMTAwMDE4QTExMkEKKzoxMDFBNTAwMEZDMDA0QTExRUVGQzg4MEVGNDk1RjE2NjAwMERGMzAwQ0YKKzoxMDFBNjAwMDI0MDA4OTExRjQ5NUY0OTU3NkUxMDAwQzAwMDA3NkUxRUMKKzoxMDFBNzAwMDAwMEIwMDAwNzZFMTAwMDIwMDAxNzYwMDAwMDA3NjAxMTQKKzoxMDFBODAwMDAwMDA4MDAyNzYwMzAwMDBGMjc0MENCOUY0OTVFODAwQkYKKzoxMDFBOTAwMEVFMDQ4QTExRkMwMDRBMTE4ODE5RjQ5NTczMTkwMDBFOUUKKzoxMDFBQTAwMEYxNjYwMDBERjIwMDI0MDA3NzE1MjVBMDc3MTQwMDAwRTAKKzoxMDFBQjAwMDc3MUEwMDFGRjA3MjBGMTRGNkI4NDkxOTA5ODVGODRDMEYKKzoxMDFBQzAwMDBGMTNGMTAwMDAwNTg5MTE0OTE1RjMwMDAwMDE4OTEzNzYKKzoxMDFBRDAwMDQ5MTVGMzAwMDAwNzg5MTIxMTkzMUQ5MTE5OTI4OTEwN0QKKzoxMDFBRTAwMEY0OTVGNDk1NkM4MDBGMTMxMTkzMUQ5MTE5OTI4OTEwNDAKKzoxMDFBRjAwMEY0OTVGNDk1NkM4MDBGMTMxMTkzMUQ5MTE5OTI4OTEwMzAKKzoxMDFCMDAwMEY0OTVGNDk1NkM4MDBGMTMxMTkzMUQ5MTE5OTI4OTEwMUYKKzoxMDFCMTAwMEY0OTVGNDk1NkM4MDBGMTMxMTkzMUQ5MTE5OTI4OTEwMEYKKzoxMDFCMjAwMEY0OTVGNDk1NkM4MDBGMTMxMTkzMUQ5MTE5OTI4OTExRkUKKzoxMDFCMzAwMEY0OTVGNDk1NkM4MTBGMTM2RDk0NkRFRDAwMEQ0ODE0QzAKKzoxMDFCNDAwMDhBMTFGQzAwNEExMTRBMTY0QTE3RUVGODg4MTcxMDBENDAKKzoxMDFCNTAwMDgwMDQxMDBDODAwNTcxMEUwMDE2NzMxNzAwMEVGMDY2REQKKzoxMDFCNjAwMDAwMERGMDAwMjQwMDg4MTExMEY4Mjc2M0Y4NDUwRjMyQUIKKzoxMDFCNzAwMEYyNzQwRTlGRjQ5NTQ4MTcxMEY4Mjc2MEY4NDQwRjNENTMKKzoxMDFCODAwMDYwRTEwMDAyMDAwMUY4MjAwRjZERjA3MzExMzMxMDA0QzIKKzoxMDFCOTAwMDgwMDAxMDA1RjA3NDA2OUYxMTA0RjMwMDAwMDE4MTA0MTkKKzoxMDFCQTAwMDZEOEU3NzEwMDAwMTcxRTEwMDAyMDAxMkY0QUFGODMwODYKKzoxMDFCQjAwMDBGNjI3NzEwMDAwMkY0QUFGODMwMEY2RDQ1RTEwMDBCQjgKKzoxMDFCQzAwMDg4MTA0M0UxMDAwQzgzRjgwMDEyRjQ5NUY0OTVGNEFBMTAKKzoxMDFCRDAwMEY4MzAwRjZERjA3MzBGOTZGNTAwODEwNDQ5MTZGNTIwNkIKKzoxMDFCRTAwMDg5MTY3NkUxMDAwQzAwMDA3NkUxMDAwNDAwMDA0ODE2M0EKKzoxMDFCRjAwMEY4NDUxMTMzRjdCODcxRTEwMDAyMDAxMjEwRjgwMDEyMzUKKzoxMDFDMDAwMEYwMTAwMDAzRjg0NjBGOEMxMEY4MDAxMkYwMTAwMDAzREIKKzoxMDFDMTAwMEY4NDUxMDE2NzcxMDAwMDFGNEFBRjgzMDBGOUM3NzEwRTEKKzoxMDFDMjAwMDAwMDJGNEFBRjgzMDBGQThGMDczMEY5Njc3MTAwMDA0QTIKKzoxMDFDMzAwMEY0QUFGODMwMTBCNzc3MTAwMDA1RjRBQUY4MzAxMEJDRjkKKzoxMDFDNDAwMEYyNzQwRTlGRjQ5NTQ4MTdGMDczMTEzMTc2RTEwMDBDOTEKKzoxMDFDNTAwMDAwMDA3NkUxMDAwQjAwMDA3NkUxMDAwNDAwMDA3NkUxNzAKKzoxMDFDNjAwMDAwMDIwMDAyMTFFMTAwMENFODAzRjYyMDg5MTJGNDk1NEQKKzoxMDFDNzAwMDc3MTAwMDAzRjVBQUY4MzAwRkI2NkJGODI3NkYwMDAxNTQKKzoxMDFDODAwMDg4MTBGNDk1RjQ5NUY1QUVGODIwMEZCRDQ4MTY4MDA2M0YKKzoxMDFDOTAwMDg4MTNGNDk1NzcxMDAwMDNGNkFCRjgyMDBGQzg2QkY4QTMKKzoxMDFDQTAwMDI3NkYwMDAxMTIwNkY4NDUxMDAwMTBFMTAwMDQ4MDAwQzMKKzoxMDFDQjAwMDEwMDU4MDAxMTAwNDgwMDIxMDA2ODAwMzQ4MTFGMjc0QTAKKzoxMDFDQzAwMDA3MUVGMDAwMDAwNTEwMDYwMEUxMDAwNDgwRTEwMDA0OUEKKzoxMDFDRDAwMDEwMDYwMEUxMDAwQzgwRTEwMDBDODgxMjExMDYxMDA0Q0YKKzoxMDFDRTAwMEY2MDA4MDA0NDgxNkY2MjA4ODE2ODkxM0Y0OTU3NzEwQkMKKzoxMDFDRjAwMDAwMDNGNkFCRjgyMDBGRjU2QkY4Mjc2RjAwMDE3NzEwQTMKKzoxMDFEMDAwMDAwMEM3MUUxMDAwNDAwMTNGNkFCRjgyMDEwMDA2QkY4MzIKKzoxMDFEMTAwMDI3NkYwMDAxNkNFMkZGRkQxMTMxRjZCODZGRTEwMDA1OUQKKzoxMDFEMjAwMDBDNDg2RkUxMDAwNjBDMThGMDMwMEZGRkYwMDAwMDAzQzQKKzoxMDFEMzAwMDgwRTEwMDBCNzZFMTAwMDIwMDAzNDgxNkY4NDUxMTMzRkMKKzoxMDFENDAwMDcxRTEwMDBDMDAxMjEwRTEwMDBCNDkxMkY2MjA4ODEzMUIKKzoxMDFENTAwMEU4MENGNjIwODgxMEY0OTVGNDk1RjVBQkY4MjAxMDI3RTAKKzoxMDFENjAwMDQ4MTM4MDA2ODgxMEY0OTVGNDk1RjVBRUY4MjAxMDMwRUQKKzoxMDFENzAwMDcwMDYwMDE2MTIwNkY4NDUxMDVGMTBFMTAwMDQ4MDAwOUUKKzoxMDFEODAwMDEwMDU4MDAxMTAwNDgwMDIxMDA2ODAwMzQ4MTFGMjc0Q0YKKzoxMDFEOTAwMDA3MUVGMDAwMDAwNTEwMDYwMEUxMDAwNDgwRTEwMDA0QzkKKzoxMDFEQTAwMDEwMDYwMEUxMDAwQzgwRTEwMDBDODgxMjExMDYxMDA0RkUKKzoxMDFEQjAwMEY2MDA4MDA0NDgxNkY2MjA4ODE2RjQ5NTc3MTAwMDBDN0IKKzoxMDFEQzAwMDcxRTEwMDA0MDAxM0Y2QUJGODIwMTA1RjZCRjgyNzZGODkKKzoxMDFERDAwMDAwMDE3NzEwMDAwQ0Y2QUFGODIwMTA2QkYyNzQwRTlGMjkKKzoxMDFERTAwMEY0OTU0ODE3NzFFMTAwMEMwMDEyNzcxMDAwMENGNEFBNkEKKzoxMDFERjAwMEY4MzAxMDdDNzcxMDAwMEM3MUUxMDAwQjAwMTNGNkFCOEIKKzoxMDFFMDAwMEY4MzAxMEI0RTczMEY3QUFGODMwMTBCNEYyNzQwRUMxMEQKKzoxMDFFMTAwMEY0OTU0ODE3ODgxMkY0OTVGNDk1NkM4MjEwOEQ3NkUxNEMKKzoxMDFFMjAwMDAwMDQwMDAwNzZFMTAwMDIwMDA1RjA3MzEwQjQ3NkUxRDIKKzoxMDFFMzAwMDAwMDIwMDA0NzcxMDAwMEM3MUUxMDAwQjAwMTJGNUFBRkIKKzoxMDFFNDAwMEY4MjAxMDlBRjA3MzEwOUM3NzEyMDAwQzc2MDAwMDAwQjYKKzoxMDFFNTAwMDcwMDEwMDEyNzAwMjAwMTc3NjAzMDAwMTQ4MTFGMjc0M0QKKzoxMDFFNjAwMDBDQjlGMDAwMDAwNTc2RTEwMDA0MDAwMDc3MTAwMDBDQ0EKKzoxMDFFNzAwMDcxRTEwMDBCMDAxMkY2QUFGODIwMTExQzQ4MTZGODQ1NzMKKzoxMDFFODAwMDExMzM2MEUxMDAwMjAwMDVGODIwMTBERjEwRTEwMDBCQzMKKzoxMDFFOTAwMDA4RTEwMDBDMTFFMTAwMDRGODREMTBDNzZCRjgyNzZGNDIKKzoxMDFFQTAwMDAwMDE4ODEwRjQ5NUY0OTVGNUFFRjgyMDEwQ0Y0ODE2OEYKKzoxMDFFQjAwMEY0OTU0ODA4Rjg0NTExMTY2RkUxMDAwQzBEMDA4MUUxMUEKKzoxMDFFQzAwMDAwMEMxMTA0RjUwMDgxMDQ0OTE2RjUyMDg5MTZGMDczMDEKKzoxMDFFRDAwMDExMEUxMEUxMDAwQjcxRTEwMDBDMDAxMjg4MTBGNDk1NTYKKzoxMDFFRTAwMEY0OTVGNkFBRjgzMDExMTY0OTEyRjYyMDg4MTBGNDk1RTgKKzoxMDFFRjAwMEY0OTVGNUFFRjgyMDEwRjM0ODE2ODAwNjQ4MDhGODQ1MkEKKzoxMDFGMDAwMDExMTYxMDA0NzAwMjAwMTc4MDAwNzYwMzAwMDAxMDA2RkUKKzoxMDFGMTAwMDgwMDExMDA1RjA3NDBDQjkxMDA2MDBFMTAwMEM4MEUxOUUKKzoxMDFGMjAwMDAwMEMxMTA2MTAwNEY2MDA4MDA0NDgxNkY2MjA4ODE2RUUKKzoxMDFGMzAwMDEwRTEwMDBDMDhFMTAwMEJGODQ1MTExQ0YwNzMxMTMxQTEKKzoxMDFGNDAwMEYyNzQwRTlGRjQ5NTQ4MTdGMDczMTEzMzc2RTEwMDBDOEMKKzoxMDFGNTAwMDAwMDA3NkUxMDAwQjAwMDA3NkUxMDAwMjAwMDExMDA0QjEKKzoxMDFGNjAwMDgwMDAxMDA1RjA3NDA2OUY4ODEyRjQ5NTc3MTAwMEZGMkEKKzoxMDFGNzAwMEY0QUFGODMwMTEzMzZDODYwRjcwRUUwODhBMTc4QTE2QUYKKzoxMDFGODAwMDhBMTFGQzAwNEExMUVFRkNGNDk1NzEwNjAwMTI4ODExQ0EKKzoxMDFGOTAwMDczMTIwMDBFRjE2NjAwMERGMzAwMjQwMDg5MTQxMzgxMDIKKzoxMDFGQTAwMEY3N0FGMzMwMDAwMTgxRjgyNzYwMTNFMTAwMDFGNzdDMzQKKzoxMDFGQjAwMEYzMzAwMDAzODFGODI3NjFFOTBGMTlFMTAwMDE4MUY4OEUKKzoxMDFGQzAwMDI3NjI3MUU0MDAwMzAwMTNGNkI4NDkxM0YzMDAwMDAxMUYKKzoxMDFGRDAwMEYzMzAwMDBGNDkwQjA5RjgyNzYyRjg0RDExNzU3NzEwOUYKKzoxMDFGRTAwMDAwRkZGNEFCRjgzMDExNzU1N0Y4Mjc2Q0YzMDAwMDAxQ0YKKzoxMDFGRjAwMDRGRjgyNzZDNzZGODI3NjMwMDAxRjA3MzExNzg3NkY4QjQKKzoxMDIwMDAwMDI3NjMwMDAwNzBFNDAwMDMyNzYyNzZGODI3NjQwMDAwNkQKKzoxMDIwMTAwMDExRjgyNzYxNjFGODAwMEIwMDAyRjgyMDExOERFOTAxMjkKKzoxMDIwMjAwMDZGRTEwMDAyMEYxODgxRjgyNzY0MTFGODI3NjE2MUY4NDkKKzoxMDIwMzAwMDAwMEIwMDAxRjgyMDExQTkxMEY4Mjc2NEYxMDAwMDA0M0EKKzoxMDIwNDAwMDg5MTNFOUI4RjUyMDgxRjgyNzY1NjA4NDAwMDJGODIwM0IKKzoxMDIwNTAwMDExQTk3MDAwMDAxMTcwMDEwMDEzNzAwMjI3NjVGMjc0NUQKKzoxMDIwNjAwMDBGMThGNDk1NDgxMkVFMDQ4QTExRkMwMDRBMTE0QTE2MjIKKzoxMDIwNzAwMDRBMTdFRUZDRTgwMDRFRjgyNzY2RTgwMDRFRjgyNzY4OUQKKzoxMDIwODAwMEU4MDA0RUY4Mjc2Q0U4MDA0RUY4Mjc2QTc3MTIyNzQwRTAKKzoxMDIwOTAwMDc3MTEyNDAwNzcxQTAwMUZGMDcyMTFEQjcwOTIwMDExODMKKzoxMDIwQTAwMDc2RTEwMDAxRkZGRjc2ODEwMDAwNzZFMTAwMDIwMDAwOEEKKzoxMDIwQjAwMDc2RTEwMDAzMDBGRjc2RTEwMDBDMDAwMDc2RTEwMDBCMDIKKzoxMDIwQzAwMDAwMDA3NkUxMDAwNDAwMDA2REU5MDAwREYwMjAyNUEwN0QKKzoxMDIwRDAwMEYxMDAwMDA3ODkxMUYxMDAwMDAxODEwMjg4MTZGNDk1RDIKKzoxMDIwRTAwMDc3MTcwMDIwNzY4NjAwRkY3NjAwMDAwMDc2MDEwMDA2NTQKKzoxMDIwRjAwMDEwMDJGMDc0MDY2Qzc2MDAwMDAwNzYwMTAwMDZGMjc0OUYKKzoxMDIxMDAwMDA2NkNGNDk1NDgxMTEwMDJGMDAwMDAwRDgwMDI2REU5OTQKKzoxMDIxMTAwMDAwMEQ2REVFMDAwRDZDRUZGRkZGMTFFOEYwNzQwQzlERUIKKzoxMDIxMjAwMEVFMDQ4QTE3OEExNjhBMTFGQzAwNEExMTRBMTY0QTE3QzkKKzoxMDIxMzAwMEVFRkE4ODExMTAwQTQ5MTFGODREMTI5RjQ4MDhGODQ1MjcKKzoxMDIxNDAwMDEyOUY4MDA0MTI4MUY1Nzg4OTEyRjQ5NUY0OTU2Q0UyNUYKKzoxMDIxNTAwMEZGQjkxMjhBNjFGODAwMDgwMDgwRjgzMDEyOEExM0UxOTIKKzoxMDIxNjAwMDAwMDFGMEU4Rjc3OEYxQTBGMjMwMUZGRjg4MTdGNDk1MkUKKzoxMDIxNzAwMDc3MTIyNDAwNzcxNjAwMDA3NzEzMDAyMEY2Qjg0ODE3NkUKKzoxMDIxODAwMDA4RTIwMDAxRjg0NTEyNDI2REVBMDAwRDZEOTY2Q0VCMTUKKzoxMDIxOTAwMEZGRkYxMjM0RjA3MzEyOTA1NkY4Mjc2QUYwMDAwMDAxMjYKKzoxMDIxQTAwMDRFRjgyNzZBNjA4MjAwMDFGODMwMTI1NDcwMDAwMDE2NjEKKzoxMDIxQjAwMEYyNzQxMTM4RjQ5NTQ4MTFGMDczMTI5MDcwMDAwMDE2MDMKKzoxMDIxQzAwMEYyNzQxMTM4RjQ5NTQ4MTE3MjEwMkE5RUY0OTVGNEFGMDgKKzoxMDIxRDAwMEY4MzAxMjZFNzYwMDAwMDA3NjAxMDBCQzcwMDIwMDE2MjYKKzoxMDIxRTAwMDc2MDMwMDAwRjI3NDBDQjlGNDk1NDgxMUYwNzMxMjkwNjQKKzoxMDIxRjAwMDEwRjgyNzZFRjg0NDEyOTA3NjAwMDAwMDc2MDEwMEJDQkIKKzoxMDIyMDAwMDcwMDIwMDE2NzYwMzAwMDBGMjc0MENCOUY0OTU0ODExQzAKKzoxMDIyMTAwMEYwNzQwQzVFRjBFMEYwMTAxMzg4Rjg0MjEyOTA3NkY4M0IKKzoxMDIyMjAwMDI3NkUwMDAxRjA3MzEyOTA1NkY4Mjc2NkYwMDAwMDAxNDcKKzoxMDIyMzAwMDRFRjgyNzY2NkRFOTAwNUU1NkY4Mjc2OEYwMDAwMDAxNDkKKzoxMDIyNDAwMDRFRjgyNzY4NzEwNDAwMTI2RUVBRkZGRjEyMTg3MDA0M0UKKzoxMDIyNTAwMDAwMTJFRTA2OEExNzhBMTY4QTExRkMwMDRBMTFFRUZFNTkKKzoxMDIyNjAwMDg4MEVGNDk1RjA2NjAwMERGMDAwMjVBMDg4MTFGNDk1MTUKKzoxMDIyNzAwMEY0OTU3NjgxMDBGRjc2MDAwMDAwNzYwMTAwMDZGMjc0ODYKKzoxMDIyODAwMDA2NkNGMDAwMDAwMTc2MDAwMDAwNzYwMTAwMDY0ODExOUYKKzoxMDIyOTAwMEYyNzQwNjZDRjAwMDAwMDdFRTAyOEExMUZDMDA0QTExOEQKKzoxMDIyQTAwMDg4MEVGNDk1RjA2NjAwMERGMDAwMjQwMDg4MTFGNDk1NzYKKzoxMDIyQjAwMEY0OTU3NkUxMDAwMUZGRkY3NjgxMDAwMDc2RTEwMDAyRUYKKzoxMDIyQzAwMDAwMDA3NkUxMDAwMzAwRkY4QTExRkMwMDRBMTFGNDk1M0EKKzoxMDIyRDAwMDEzMDM4ODExRkE0RDEyRUM3MTAyMDAxMkYzMTAwMDAxODEKKzoxMDIyRTAwMDg5MUFGNDk1RjA3MjEyRUI3MDkxMDAxMjhBMTFGQzAwQjkKKzoxMDIyRjAwMEY0OTU0QTBCNEEwQzRBMERGN0I4RUVGRTEwRjgwMDA4QTgKKzoxMDIzMDAwMDExMDZGMUMwODMwMEY0ODUxMTA2Rjc4NTgxMDZGNkI4NDEKKzoxMDIzMTAwMEVDMEYxRTA2NjEwMDgwMDBGODIwMTMwNUY0ODRFRTAyMjUKKzoxMDIzMjAwMDhBMEQ4QTBDOEEwQkZDMDBGNDk1NEEwQjRBMEM0QTBENjQKKzoxMDIzMzAwMEVFRkVGN0I4ODAwMDEwRjgwMDA4RjQ4NTExMDZGNzg1NjYKKzoxMDIzNDAwMDgxMDZGNkI4RUMwRjFFMDZGMEYwNjEwMDgwMDBGODIwNjAKKzoxMDIzNTAwMDEzMjBGNDg0RUUwMjhBMEQ4QTBDOEEwQkZDMDA0QTExQzkKKzoxMDIzNjAwMDc3MTEwMDdCNzY4MTJFRUM3NzExMDA3QkVFRkY3MTgxNzcKKzoxMDIzNzAwMDAwMTFFRTAxNzZFMTAwMDEwMDAwNzZFMTAwMDQwMDAwQUEKKzoxMDIzODAwMDc2RTEwMDA2MDAwMDc2RTEwMDYyMDAwMDc2RTEwMDc2NkEKKzoxMDIzOTAwMDAwMDA3NkUxMDA5MjAwMDA3NkUxMDA5NDAwMDA3NkUxMTIKKzoxMDIzQTAwMDAwQjAwMDAwNzZFMTAwQjMwMDAwNzZFMTAwQkUwMDAwNUUKKzoxMDIzQjAwMDc2RTEwMEJGMDAwMDc2RTEwMEMxMDAwMDc2RTEwMEMzRDUKKzoxMDIzQzAwMDAwMDA3NkUxMDBDNTAwMDA3NkUxMDBDNzAwMDA3NjgxREMKKzoxMDIzRDAwMDAwMDA4QTExRjQ5NUY0RTQ0QTExNEExNjRBMTdFRUZGRjgKKzoxMDIzRTAwMEY0OTU3MTA2MDAxNkZCODAxNkEyODgxN0Y0OTVGN0I4Q0QKKzoxMDIzRjAwMDEwRjgwMDE3RjAxMDAwMDJGQTQ2MTM4ODc3MTEwMDAwNTkKKzoxMDI0MDAwMDEwRjgwMDE3RjAxMDAwMDJGODQ1MTNGOTEwRjgwMDE3NDMKKzoxMDI0MTAwMEY4NDUxNDM5MTBGODAwMTdGMDEwMDAwMUY4NDUxNDFGQTIKKzoxMDI0MjAwMEYwNzMxNDUyMTBGODAwMTdGMDEwMDAwM0Y4NDUxM0QzOUUKKzoxMDI0MzAwMDEwRjgwMDE3RjAxMDAwMDZGODQ0MTQ1Mjc3MTIwMDdCRDEKKzoxMDI0NDAwMDcxODIwMDE0NjFFNDAwMDcwMDQwRjgzMDE0NTI0OTE0MEUKKzoxMDI0NTAwMDQ4MTdGNjAwODgxMkY0OTU3NzEzMDA1NTc3MTEwMDU3NDYKKzoxMDI0NjAwMDZERUEwMDNCRTUwMTEwRTYwMDA2ODA4MTQ4MTQwMEY4QTMKKzoxMDI0NzAwMDAwMTc4ODEyRjQ5NTc3MTEwMDU1MTBFMjAwNDA4MDgxMTIKKzoxMDI0ODAwMDc3MTEwMDU3MTBFNjAwMDc4MDgxNzcxMTAwNTUxMEUyQTAKKzoxMDI0OTAwMDAwNDU4MDgxMTBFNjAwMDg3NzExMDA1NzgwODE3NzExOTAKKzoxMDI0QTAwMDAwNTUxMEUyMDA0QTgwODE3NzExMDA1NzEwRTYwMDA5QkMKKzoxMDI0QjAwMDgwODFGMjczMTQ1Mjc3MTEwM0MwNzcxMjAwN0IxMDgyNkYKKzoxMDI0QzAwMEYwMDAwMDA3ODgxM0Y0OTVGNDk1OTYxQkY4MzAxNDUyMjkKKzoxMDI0RDAwMDEwRTMwMDM1NzcxMjAwNTU4MDgyNzcxMjAwNTcxMEU2MUUKKzoxMDI0RTAwMDAwMDQ4MDgyNzcxMjAwNTUxMEUzMDAzNzgwODI3NzEyNTMKKzoxMDI0RjAwMDAwNTcxMEU2MDAwNTgwODI0ODExRjA0MDAwMTBGMjczOEEKKzoxMDI1MDAwMDE0NTBGMDQwMDAyMDc3MTIwMDdCMTA4MkYwMDAwMDA3OEEKKzoxMDI1MTAwMDg4MTJGNDk1RjQ5NTk2MERGODMwMTQ1MjEwRTIwMDM0QjgKKzoxMDI1MjAwMDc3MTMwMDU1ODA4Mzc3MTMwMDU3MTBFNjAwMDI4MDgzRUQKKzoxMDI1MzAwMDEwRTIwMDM2NzcxMjAwNTU4MDgyNzcxMjAwNTcxMEU2QkQKKzoxMDI1NDAwMDAwMDM4MDgyNDgxMUYwNDAwMDA0RjI3MzE0NTBGMDQwMDAKKzoxMDI1NTAwMDAwMDg3NzEyMDA3QjEwODJGMDAwMDAwNzg4MTJGNDk1QzMKKzoxMDI1NjAwMEY0OTU5NjBFRjgzMDE0NTIxMEUyMDAzMzc3MTIwMDU1QUQKKzoxMDI1NzAwMDgwODI3NzEyMDA1NzEwRTYwMDAxODA4MjQ4MTFGMjczQzIKKzoxMDI1ODAwMDE0NTBGMDQwMDAwMjc3MTIwMDdCMTA4MkYwMDAwMDA3MjgKKzoxMDI1OTAwMDg4MTJGNDk1RjQ5NTk2MEZGODMwMTQ1MjEwRTIwMDMyMzgKKzoxMDI1QTAwMDc3MTIwMDU1NzcxMzAwNTc4MDgyNDgxMUU3NjJGMDQwOTgKKzoxMDI1QjAwMDAwMDFFNTAxODgxMUY0OTU3NzEyMDA3QjQ4MTE3MTgyQzIKKzoxMDI1QzAwMDAwMTIxQUUyMDAwNzgwRTIwMDA3Rjk4MDE2OUFFRTAxNzUKKzoxMDI1RDAwMDhBMTc0ODExOEExNjhBMTFGNEU0NEExMTg4MTE3NzBFNzUKKzoxMDI1RTAwMDAwMDU3NzEyMDA1NUU4MDRGNkI4MjhFMTAwMDJFRUZGNzYKKzoxMDI1RjAwMDgwODI3NzEyMDA1N0YwMjA4MDAwRUUwMTFBODI3NzEyNTUKKzoxMDI2MDAwMDAwNTc4MDgyRTgwMTMyRTEwMDAyRjU4Mjc3MTEwMDU0MjAKKzoxMDI2MTAwMEY2OTMxODgxNzcxMTAwNTRGMkEwODA4MThBMTFGNDk1MDUKKzoxMDI2MjAwMEY0RTQ0QTExNEExNkY0OTU3MTA0MDAxMUZCODAxNkEyRDUKKzoxMDI2MzAwMDg4MTZGNDk1NzcxMjAwNTUxMEU2MDAwMzgwODI3NzEyMTEKKzoxMDI2NDAwMDAwNTYxMEUxMDAwMjc3MTMwMDU2ODA4Mjc3MTIwMDU2ODAKKzoxMDI2NTAwMDEwRTEwMDAzODA4MjEwRTEwMDA0NzcxMjAwNTY4MDgyQUUKKzoxMDI2NjAwMDc3MTIwMDU2MTBFMTAwMDE4MDgyRTcxMkU1MDFGOTgwM0YKKzoxMDI2NzAwMDE2OUE4QTE2OEExMUY0RTQ0QTExNEExNjRBMTdFRUY5OTQKKzoxMDI2ODAwMDc3MTEwMDdCNzYwMDAwMTY3NjAxMDAxNzc2MDIwMDFBOUIKKzoxMDI2OTAwMDc2MDMwMDFCNzYwNDAwMUM3NjA1MDAxRDcxODEwMDE3NkYKKzoxMDI2QTAwMDcxRTcwMDA2MDAxMTEwODFGODQ0MTRERkY5ODAxNjUzMTkKKzoxMDI2QjAwMEY2QjhGQjgwMTU4NUYwMjBGRkZGRjZCOEZCODAxNjA4MDIKKzoxMDI2QzAwMEYwMjBGRkZGNzcxMTAwN0I3MTgxMDAxNzc2RTcwMDA2OEQKKzoxMDI2RDAwMDAwMDE0ODE3NzcxNjAwMDA3NzEwMDAwNDc3MTUwMDAzRjMKKzoxMDI2RTAwMDc3MTQwMDAyNzcxMzAwMDFGMDAwMDAzOTc2RTcwMDA4NDQKKzoxMDI2RjAwMDAwMUY3NkU3MDAwNzAwMDA4ODBFNzcxQTAwMDU0ODE3Q0MKKzoxMDI3MDAwMEYwMDAwMDA5ODgxMjQ4MTg4ODE5RTgwMEYwNzIxNTJDQUEKKzoxMDI3MTAwMDczMTkwMDExNzY4MjAwMDAxMTkxNzMxMTAwMTk3MEUyOTMKKzoxMDI3MjAwMDAwMDMwMDE2NzBFMjAwMDQwMDEzNzBFMjAwMDUwMDE0QkMKKzoxMDI3MzAwMDgxRTIwMDAxNzBFMjAwMDYwMDE1NzBFMjAwMDcwMDEwNUYKKzoxMDI3NDAwMDgwRTIwMDAyNzMwRTAwMTFGMTAwMDAxRTZERUUwMDA1MjQKKzoxMDI3NTAwMDZERUIwMDA1NkRFQzAwMDU2REVEMDAwNTZERTgwMDA1MDUKKzoxMDI3NjAwMEYwMDAwMDAxODE5MTZERUEwMDA4NzMxMTAwMEVFRTA3ODAKKzoxMDI3NzAwMDc2RTcwMDQxMDAyNDc2RTcwMDQ2MDAyNTc2RTcwMDRCMjcKKzoxMDI3ODAwMDAwMjY3NkU3MDA1MDAwMjc4QTE3OEExNjhBMTFGNEU0OUIKKzoxMDI3OTAwMDRBMTE0QTE2RUVGRTg4MTE1NjA2NEUwMEY5ODAxNkEyMUUKKzoxMDI3QTAwMEY3QjgxMEY4MDAxMUYwMTBGRkZGRkE0NTE1NjA3NzE2MjIKKzoxMDI3QjAwMEZGRkY3NzEyMDA3QjQ5MTExMDgyRjYwM0YwMDAwMDA5MzkKKzoxMDI3QzAwMDg4MTFGNDk1RjQ5NTEwODFGODQ0MTU3MUYyNzMxNTcxMjAKKzoxMDI3RDAwMEY0OTVFNzE2NzcxMTAwN0IxMDgxRjAwMDAwMDk4ODExNEQKKzoxMDI3RTAwMEY0OTU3NzEyMDAwNjEwODFGODQ1MTU1QzZFRUFGRkZGM0MKKzoxMDI3RjAwMDE1Njk2REU5MDAwODc2ODYwMDAxRTkwMTU2MDBGMTgwNEYKKzoxMDI4MDAwMDEwRjgwMDBCRjg0NTE1N0VGQjgwMTU4NUY0OTU0ODE2RTkKKzoxMDI4MTAwMEY5ODAxNjlBRUUwMjQ4MTY4QTE2OEExMUY0RTQ0QTExRDMKKzoxMDI4MjAwMEVFRkZGQjgwMTZBMjg4MTFGNDk1NzcxMEZGRkZGNEE5NDQKKzoxMDI4MzAwMEY4MzAxNUM0MTBFMTAwMDM3NzEyMDA1NTgwODI3NzEyM0EKKzoxMDI4NDAwMDAwNTY3NjgyMDAwMDc3MTIwMDU2NzY4MjAwMDA3NzEyREEKKzoxMDI4NTAwMDAwNTY3NjgyMDAwMDc3MTIwMDU2NzY4MjAwMDA3NzEyQ0EKKzoxMDI4NjAwMDAwNTY3NjgyMDAwMDEwRTEwMDAyRjAwMDAwMDgzMkY4MDUKKzoxMDI4NzAwMDAwMDg3NzEyMDA1NEU4MDFGNDgyRjQ5MzE4ODI3NzEyNkEKKzoxMDI4ODAwMDAwNTRGMDQwMDAwMDgwODIxMEUxMDAwMUY5ODAxNjc2Q0IKKzoxMDI4OTAwMDEwRTEwMDAxRjk4MDE2NjZGMDczMTYwMzc3MTEwMDdCRDIKKzoxMDI4QTAwMDcxODEwMDExNzFFMTAwMDcwMDEyNzY4MjAwMDAxMEUxRDEKKzoxMDI4QjAwMDAwMDlGOTgwMTU4NTc3MTEwMDdCNzE4MTAwMTExMEUxMDUKKzoxMDI4QzAwMDAwMDlGQjgwMTU4NUYwMDAwMDA4NzcxMTAwN0I3MTgxRkQKKzoxMDI4RDAwMDAwMTExMEUxMDAwOUZCODAxNTg1RjAwMDAwMTA3NzExNTAKKzoxMDI4RTAwMDAwN0I3MTgxMDAxMTEwRTEwMDA5RkI4MDE1ODVGMDAwNkIKKzoxMDI4RjAwMDAwMTg3NzExMDA3QjcxODEwMDExMTBFMTAwMDlGQjgwNDUKKzoxMDI5MDAwMDE1ODVGMDAwMDAyMDc3MTEwMDdCNzE4MTAwMTExMEUxMjYKKzoxMDI5MTAwMDAwMDlGQjgwMTU4NUYwMDAwMDI4Rjk4MDE2OUFFRTAxNjkKKzoxMDI5MjAwMDhBMTFGNEU0NEExMUVFRkZGQjgwMTZBMjg4MTFGNDk1OTcKKzoxMDI5MzAwMDc3MTBGRkZGRjRBOUY4MzAxNjQxNzcxMTAwNTU3NjgxMjIKKzoxMDI5NDAwMDAwMUU3NzExMDA1Njc2ODEwMDAwNzcxMTAwNTY3NjgxQkYKKzoxMDI5NTAwMDAwMDA3NzExMDA1Njc2ODEwMDAwNzcxMTAwNTY3NjgxQ0QKKzoxMDI5NjAwMDAwMDA3NzExMDA1Njc2ODEwMDAwNzcxMTAwNTY3NjgxQkQKKzoxMDI5NzAwMDAwMDA3NzExMDA1Njc2ODEwMDAwNzcxMTAwNTY3NjgxQUQKKzoxMDI5ODAwMDAwMDA3NzExMDA1Njc2ODEwMDAwNzcxMTAwNTZGMjczMkYKKzoxMDI5OTAwMDE2NEU3NjgxMDAwMDc3MTEwMDdCNzE4MTAwMTE3MUUxODQKKzoxMDI5QTAwMDAwMDcwMDEyNzY4MjAwMDAxMEUxMDAzOUY5ODAxNjA4NTUKKzoxMDI5QjAwMEY5ODAxNjlBRUUwMThBMTFGNEU0NEExMTc3MTEwMDdCMkUKKzoxMDI5QzAwMDEwODFGMDAwMDAwNDg4MTFGNDk1RjQ5NTEwODFGQTQ0MDgKKzoxMDI5RDAwMDE2NjNGNDk1RUVGRjc2ODEwMDAxRUUwMThBMTFGNEU0QUUKKzoxMDI5RTAwMEYwMTAwMDEwNEExMTMyRjgwMDA4RUVGRjc3MTEwMDAxRDQKKzoxMDI5RjAwMEU4MDFFRTAxRjQ4MjFBODE4MDgxOEExMUY0OTVGNEU0RjEKKzoxMDJBMDAwMEYwMTAwMDEwNEExMTMyRjgwMDA4RUVGRkU4MDE3NzExQ0IKKzoxMDJBMTAwMDAwMDBGNDgyRUUwMUY0OTMxODgxODA4MThBMTFGNDk1MEMKKzoxMDJBMjAwMEY0RTQ0QTExRjAxMDAwMTA3NzExMDAwMDMyRjgwMDA4QTkKKzoxMDJBMzAwMEVFRkYxMTgxRTgwMUVFMDE3NzExMDAwMEY0ODJGMkEwQUYKKzoxMDJBNDAwMDgwODE4QTExRjQ5NUY0RTRGMjczMTY5RUY2QkJGNDk1MzYKKzoxMDJBNTAwMEY0OTVGNDk1RjQ5NUY0RTRGMjczMTZBNkY3QkJGNDk1QTcKKzoxMDJBNjAwMEY0OTVGNDk1RjQ5NUY0RTQ0QTExNEExNkY0OTU3MTA0M0EKKzoxMDJBNzAwMDAwMTZGQjgwMTZBMjg4MTFGNDk1NzFFMTAwMDUwMDEyODIKKzoxMDJBODAwMDc2ODIwMDBFMTBFNjAwMEU3MUUxMDAwNjAwMTI4MDgyRDAKKzoxMDJBOTAwMDcxRTEwMDA1MDAxMjc2ODIwMDBENzFFMTAwMDYwMDEyNUUKKzoxMDJBQTAwMDEwRTYwMDBEODA4MjcxRTEwMDA1MDAxMjc2ODIwMDBDQjQKKzoxMDJBQjAwMDEwRTYwMDBDNzFFMTAwMDYwMDEyODA4MjcxRTEwMDA1NTEKKzoxMDJBQzAwMDAwMTI3NjgyMDAwQjEwRTYwMDBCNzFFMTAwMDYwMDEyODYKKzoxMDJBRDAwMDgwODI3MUUxMDAwNTAwMTI3NjgyMDAwQTcxRTEwMDA2MzEKKzoxMDJBRTAwMDAwMTIxMEU2MDAwQTgwODI3MUUxMDAwNTAwMTI3NjgyNzEKKzoxMDJBRjAwMDAwMDkxMEU2MDAwOTcxRTEwMDA2MDAxMjgwODI3MUUxMTAKKzoxMDJCMDAwMDAwMDUwMDEyNzY4MjAwMDg3MUUxMDAwNjAwMTIxMEU2NEUKKzoxMDJCMTAwMDAwMDg4MDgyNzFFMTAwMDUwMDEyNzY4MjAwMDcxMEU2NEQKKzoxMDJCMjAwMDAwMDc3MUUxMDAwNjAwMTI4MDgyNzFFMTAwMDUwMDEyQzkKKzoxMDJCMzAwMDc2ODIwMDA2NzFFMTAwMDYwMDEyMTBFNjAwMDY4MDgyMkYKKzoxMDJCNDAwMDcxRTEwMDA1MDAxMjc2ODIwMDA1NzFFMTAwMDYwMDEyQjUKKzoxMDJCNTAwMDEwRTYwMDA1ODA4MjcxRTEwMDA1MDAxMjc2ODIwMDA0MTMKKzoxMDJCNjAwMDcxRTEwMDA2MDAxMjEwRTYwMDA0ODA4MjcxRTEwMDA1QTgKKzoxMDJCNzAwMDAwMTI3NjgyMDAwMzcxRTEwMDA2MDAxMjEwRTYwMDAzRTUKKzoxMDJCODAwMDgwODI3MUUxMDAwNTAwMTI3NjgyMDAwMjEwRTYwMDAyRTgKKzoxMDJCOTAwMDcxRTEwMDA2MDAxMjgwODI3MUUxMDAwNTAwMTI3NjgyNjgKKzoxMDJCQTAwMDAwMDExMEU2MDAwMTcxRTEwMDA2MDAxMjgwODI3MUUxNkYKKzoxMDJCQjAwMDAwMDUwMDEyNzY4MjAwMDA3MUUxMDAwNjAwMTNFNzYyNTIKKzoxMDJCQzAwMEU1MDFGOTgwMTY5QThBMTY4QTExRjRFNDRBMTE4ODExRUYKKzoxMDJCRDAwMEY0OTVGNDk1NzFFMTAwMDUwMDEyRUVGRjc2ODIwMDAwOTUKKzoxMDJCRTAwMEVFMDE3MUUxMDAwNjAwMTE2OTgxMDAwMThBMTFGNDk1N0UKKzoxMDJCRjAwMEY0RTQ0QTExODgxMUY0OTVGNDk1NzFFMTAwMDUwMDEyOEUKKzoxMDJDMDAwMEVFRkY3NjgyMDAwMUVFMDE3MUUxMDAwNjAwMTE2OTgxOUMKKzoxMDJDMTAwMDAwMDE4QTExRjQ5NUY0RTQ0QTExNzcxMTAwN0IxMDgxQzgKKzoxMDJDMjAwMEYwMDAwMDk0ODgxMUY0OTVGNDk1MTA4MUZBNDQxNzlDRjMKKzoxMDJDMzAwMEY0OTVFRUZGRjk4MDE2NTM3NzExMDA3QjEwODFGMDAwQjgKKzoxMDJDNDAwMDAwOTQ4ODExRjQ5NUY0OTU3NjgxMDAwMUVFMDE3NkUxMDcKKzoxMDJDNTAwMDAwMDEwMDAwNzZFMTAwMDIwMDIxNzZFMTAwMDMwMDIwN0YKKzoxMDJDNjAwMDc2RTEwMDA0MDAyMzc2RTEwMDA1MDAyMjc2RTEwMDA2MEIKKzoxMDJDNzAwMDAwMzg3NkUxMDAwNzAwMzk3NkUxMDAwODAwMTU3NkUxQkEKKzoxMDJDODAwMDAwMDkwMDE0NzZFMTAwMEEwMDAwNzZFMTAwMEIwMDQxMjMKKzoxMDJDOTAwMDc2RTEwMDBDMDA0MDc2RTEwMDBEMDA0Mzc2RTEwMDBFODUKKzoxMDJDQTAwMDAwNDI3NkUxMDAwRjAwNDg3NkUxMDAxMDAwNDk3NkUxMkQKKzoxMDJDQjAwMDAwMTEwMDFCNzZFMTAwMTIwMDFBOEExMUY0OTVGNEU0NjkKKzoxMDJDQzAwMDRBMTFFRUZEODgxMTU2MDY0RTAwRjk4MDE2QTI3NzEyQzEKKzoxMDJDRDAwMDAwN0I3NzBFMDAwOTEwODIyOEY4MDAxMUYwMDAwMDk1QTMKKzoxMDJDRTAwMDg4MTFGNDk1RjQ5NTEwODFGODQ1MTdGMEYyNzMxN0ZERUIKKzoxMDJDRjAwMDc3MTFGRkZGNzY4MTAwMDFFOTAxNTYwMEYxODAxMEY4OUQKKzoxMDJEMDAwMDAwMEJGODQ1MTdGREZCODAxODEwRjQ5NTQ4MTFGOTgwNjkKKzoxMDJEMTAwMDE2OUFFRTAzNDgxMThBMTFGNDk1RjRFNDRBMTE4ODExQzkKKzoxMDJEMjAwMEY0OTVFRUZGNzFFMTAwMDEwMDExRUUwMTEwODE4QTExQUUKKzoxMDJEMzAwMEY0OTVGNEU0NEExMUVFRkZGQjgwMTZBMjg4MTFGNDk1OTUKKzoxMDJENDAwMDc3MTBGRkZGRjRBOUY4MzAxOEMzNzFFMTAwMDUwMDEyRjUKKzoxMDJENTAwMDc2ODIwMDAwNzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxQzcKKzoxMDJENjAwMDAwMDUwMDEyNzY4MjAwMDE3MUUxMDAwNjAwMTI3NjgyRjEKKzoxMDJENzAwMDAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwMjcxRTEwMDA2OTgKKzoxMDJEODAwMDAwMTI3NjgyMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDAzRDUKKzoxMDJEOTAwMDcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMTAwMDUwMDEyNjgKKzoxMDJEQTAwMDc2ODIwMDA0NzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxNzMKKzoxMDJEQjAwMDAwMDUwMDEyNzY4MjAwMDU3MUUxMDAwNjAwMTI3NjgyOUQKKzoxMDJEQzAwMDAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwNjcxRTEwMDA2NDQKKzoxMDJERDAwMDAwMTI3NjgyMDAwMTcxRTEwMDA1MDAxMjc2ODIwMDA3ODAKKzoxMDJERTAwMDcxRTEwMDA2MDAxMjc2ODIyMDAwNzFFMTAwMDUwMDEyRjgKKzoxMDJERjAwMDc2ODIwMDA4NzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxMUYKKzoxMDJFMDAwMDAwMDUwMDEyNzY4MjAwMDk3MUUxMDAwNjAwMTI3NjgyNDgKKzoxMDJFMTAwMDAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwQTcxRTEwMDA2RUYKKzoxMDJFMjAwMDAwMTI3NjgyMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDBCMkMKKzoxMDJFMzAwMDcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMTAwMDUwMDEyQzcKKzoxMDJFNDAwMDc2ODIwMDBDNzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxQ0EKKzoxMDJFNTAwMDAwMDUwMDEyNzY4MjAwMEQ3MUUxMDAwNjAwMTI3NjgyRjQKKzoxMDJFNjAwMDAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwRTcxRTEwMDA2OUIKKzoxMDJFNzAwMDAwMTI3NjgyMDAwMDEwRTEwMDA3Rjk4MDE2NzYxMEUxNUEKKzoxMDJFODAwMDAwMDhGOTgwMTY3NjEwRTEwMDA3Rjk4MDE2NjYxMEUxNTcKKzoxMDJFOTAwMDAwMDhGOTgwMTY2NkYwNzMxOEQxNzcxMTAwN0IxMDgxNTUKKzoxMDJFQTAwMEZCODAxODEwRjAwMDAwOTU3NzExMDA3QjEwODFGQjgwRUIKKzoxMDJFQjAwMDE4MTBGMDAwMDA5RUY5ODAxNjlBRUUwMThBMTFGNEU0RDEKKzoxMDJFQzAwMDRBMTE4ODExRUVGRkY0OTUxMDA0NzFFMTAwMDMwMDExMUUKKzoxMDJFRDAwMEVFMDE4MDgxOEExMUY0OTVGNEU0NEExMTRBMTZGNDk1QzIKKzoxMDJFRTAwMDcxMDQwMDE2RkI4MDE2QTI4ODExRjQ5NTcxRTEwMDAyQUUKKzoxMDJFRjAwMDAwMTI3NjgyMDAxMDEwRTYwMDAxNzFFMTAwMDMwMDEyNUEKKzoxMDJGMDAwMDgwODI3MUUxMDAwNDAwMTIxMEU2MDAwMjgwODJFNzYyMTQKKzoxMDJGMTAwMDcxRTEwMDAyMDAxM0U1MDFGOTgwMTY5QThBMTY4QTExMDAKKzoxMDJGMjAwMEY0RTQ0QTExODgxMUVFRkZFRTAxMTBFMTAwMDE4QTExNkMKKzoxMDJGMzAwMEY0OTVGNEU0NEExMTc3MTEwMDdCMTA4MUYwMDAwMEIzOUUKKzoxMDJGNDAwMDg4MTFGNDk1RjQ5NTEwODFGQTQ0MTkyQUY0OTVFRUZGNEUKKzoxMDJGNTAwMEY5ODAxNjUzNzcxMTAwN0IxMDgxRjAwMDAwQjM4ODExQkYKKzoxMDJGNjAwMEY0OTVGNDk1NzY4MTAwMDFFRTAxNzZFMTAwMDEwMDAwMTAKKzoxMDJGNzAwMDc2RTEwMDAyMDAxMzc2RTEwMDAzMDAyNjc2RTEwMDA0MEEKKzoxMDJGODAwMDAwMjU3NkUxMDAwNTAwMjQ3NkUxMDAwNjAwMDA3NkUxRTgKKzoxMDJGOTAwMDAwMDcwMDE3NzZFMTAwMDgwMDMyNzZFMTAwMDkwMDMxRjEKKzoxMDJGQTAwMDc2RTEwMDBBMDAzMDhBMTFGNDk1RjRFNDRBMTE0QTE2RDkKKzoxMDJGQjAwMDRBMTdFRUZGRjQ5NTcxMDYwMDE3RkI4MDE2QTI4ODExRTAKKzoxMDJGQzAwMEY0OTVGN0I4MTBGODAwMTFGMDEwRkZGRkZBNDUxOTczRTcKKzoxMDJGRDAwMDc3MTZGRkZGNzcxMjAwN0I3NzBFMDAwNTEwODIyOEY4MjYKKzoxMDJGRTAwMDAwMTFGMDAwMDBCNDg4MTFGNDk1RjQ5NTEwODFGODQ0QjQKKzoxMDJGRjAwMDE5ODRGMjczMTk4NEY0OTVFNzE2NzcxMTAwN0IxMDgxMTgKKzoxMDMwMDAwMEYwMDAwMEI0ODgxMUY0OTU3NzEyMDAwMjEwODFGODQ1QTEKKzoxMDMwMTAwMDE5NkY2RUVBRkZGRjE5N0M2REU5MDAwNTYxRjgwMDE3NzIKKzoxMDMwMjAwMDAwMDFGQTIwMTk4Rjc2ODYwMDAxRkI4MDE5OTdGNDk1MkMKKzoxMDMwMzAwMDQ4MTZGOTgwMTY5QUVFMDE4QTE3NDgxNjhBMTY4QTExRTAKKzoxMDMwNDAwMEY0RTQ0QTExRUVGRkZCODAxNkEyODgxMUY0OTU3NzEwODQKKzoxMDMwNTAwMEZGRkZGNEE5RjgzMDE5Q0M3MUUxMDAwMjAwMTI2OTgyNzcKKzoxMDMwNjAwMDAwMTA3MUUxMDAwMjAwMTI2ODgyRjdGRjcxRTEwMDAyQjYKKzoxMDMwNzAwMDAwMTI2ODgyRkJGRjcxRTEwMDAyMDAxMjY4ODJGRkYwMUIKKzoxMDMwODAwMDcxRTEwMDAzMDAxMjc2ODJGRkZGNzFFMTAwMDQwMDEyN0IKKzoxMDMwOTAwMDc2ODJGRkZGNzFFMTAwMDIwMDEyNjk4MjAwMjA3MUUxNzcKKzoxMDMwQTAwMDAwMDIwMDExRjI3MzE5REE2ODgxRkZFRjc3MTEwMDdCREIKKzoxMDMwQjAwMDEwODFGQjgwMTk5N0YwMDAwMEI0NzcxMTAwN0IxMDgxMUMKKzoxMDMwQzAwMEZCODAxOTk3RjAwMDAwQjlGOTgwMTY5QUVFMDE4QTExNzkKKzoxMDMwRDAwMEY0RTQwMEE0MDAwMDE5REYwMDAxMkFFNjAwMDAwMDAxNkEKKzoxMDMwRTAwMDJBRTcwMDAwMDAwMzJBMTIwQzAxQzM0RjAwMDAwMDAxNzAKKzoxMDMwRjAwMDJBMTUwMDAwMDAwMjJBMTYwMDAwMDAwMDAwMTkyQTVEQUYKKzoxMDMxMDAwMDAwNDMwMDZGMDA3MDAwNzkwMDcyMDA2OTAwNjcwMDY4N0EKKzoxMDMxMTAwMDAwNzQwMDIwMDA1NDAwNjUwMDYzMDA2ODAwNkUwMDZGQkEKKzoxMDMxMjAwMDAwNTQwMDcyMDA2NTAwNkUwMDY0MDAyMDAwNDEwMDQ3RkEKKzoxMDMxMzAwMDAwMDAwMDA0MkE3NjAwMzAwMDJFMDAzMDAwMDAwMDBDNTEKKzoxMDMxNDAwMDJBN0EwMDQ2MDA2NTAwNjIwMDIwMDAzMjAwMzcwMDIwMjUKKzoxMDMxNTAwMDAwMzIwMDMwMDAzMDAwMzEwMDAwMDAwOTJBODYwMDMxQzIKKzoxMDMxNjAwMDAwMzQwMDNBMDAzMzAwMzUwMDNBMDAzMzAwMzMwMDAwRTkKKzoxMDMxNzAwMDAwMEYyQThGMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAxODUKKzoxMDMxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDMxOTAwMDAwMDAwMDAxMkE5RTAwMDAwMDAxMkE5RjAwMDAwMDAxOUIKKzoxMDMxQTAwMDJBQTAwMDAwMDAwMTJBQTEwMDAwMDAwMTJBQTIwMDAwQkMKKzoxMDMxQjAwMDAwMDEyOTdFMDAwMDAwMDIyOTgwMDAwMDAwMDAwMDAxQkIKKzoxMDMxQzAwMDI5ODJGRkZGMDAwMTJBQTcwMDAwMDAwNTJBQTg3MTQxRkIKKzoxMDMxRDAwMDIwMDAyMDAwMDAyMzA0MDAwMDBBMkFBRDAwMDAwMDAwQTcKKzoxMDMxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDMxRjAwMDAwMEYyQUI3MDAwMDAwMDAwMDAwMDA0MDAwQTA4MjQwM0QKKzoxMDMyMDAwMDAwMDgzMDdGMDA4MDAxODAwMDAwMDAwMDAwMDAwMDAwMDYKKzoxMDMyMTAwMDAwMDAwMDAxMjc2RTAwMDAwMDAxMjc2RjAwMDAwMDAwODEKKzoxMDMyMjAwMDAwMDkwMDAwMUE4MzA0RTgwNENGMDRDNTA0QkEwNEIwRkUKKzoxMDMyMzAwMDA0QUMwNDlDMDQ4QzA0ODEwMDc4MDAwMDAxMDBGMjczNEIKKzoxMDMyNDAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczQTQKKzoxMDMyNTAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczOTQKKzoxMDMyNjAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczODQKKzoxMDMyNzAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczNzQKKzoxMDMyODAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczNjQKKzoxMDMyOTAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczNTQKKzoxMDMyQTAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczNDQKKzoxMDMyQjAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczMzQKKzoxMDMyQzAwMDA3QUFGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczNjkKKzoxMDMyRDAwMDA3RUZGNDk1RjQ5NUYyNzMwMjIzRjQ5NUY0OTVGMjczRTUKKzoxMDMyRTAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczMDQKKzoxMDMyRjAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczRjQKKzoxMDMzMDAwMDA3RUZGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTVGMjczRTMKKzoxMDMzMTAwMDA1RTVGNDk1RjQ5NUYyNzMwMkI1RjQ5NUY0OTVGMjczMUUKKzoxMDMzMjAwMDBFMzNGNDk1RjQ5NUYyNzMwN0VGRjQ5NUY0OTUwMDAwREQKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS92aWNhbS9maXJtd2FyZS5IMTYgYi9maXJtd2FyZS92aWNhbS9maXJtd2FyZS5IMTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FjMGNiYQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3ZpY2FtL2Zpcm13YXJlLkgxNgpAQCAtMCwwICsxLDcgQEAKKzowMDI2MDAwMDAwQjZDMzFGMDAwMjY0RTc2N0ZERkYwRUMwRTcwOURFMDA4RTAwQzAwOTQwMDNDMDE3NDQwMzRCQUZDMDA3MDAwMDRCQUY5N0NGMDAwMDFECis6MDAwQTAwMDAwMEI2QzMwMzAwMDM2NDE4MDAwMDAwRkIKKzowMDA4MDAwMDAwQjZDMzAxMDAwNjY0MDAwMDE0Cis6MDY5NjAwMDAwMEI2QzM4RjA2MDI2NEU3MDcwMDAwMDhDMEU3MDcwMDAwM0VDMEU3MDc1NDAxQUEwMEU3MDdDODA1QjYwMEU3MDc0MjAxRDIwMEU3MDc3QzAwMTYwMEU3MDc1NjAwMTgwMEU3MDcwNjAwOTJDMEU3MDcwMDAwMUVDMEU3MDdGRkZGMjJDMEU3MDcwNDAwMjRDMEU3MDdFQzI3MjhDMEU3MDcxNjAxOEUwMEU3ODcwMTAwMEVDMDk3Q0ZENzA5MDBDMEU3NzcwMTAwOTJDMDA5QzFFNzA5RkUwNTI0MDFFNzA5MDQwNjI2MDFFNzA3MDcwMDkyQzBFNzA1MDBDMEMwREY5N0NGMTcwMDU3MDAxNzAyRDcwOTAwQzBFNzc3MDEwMDkyQzAwQUMxRTc1N0ZGRkZGQTA1MERDMEU3NTcwMDAwRkEwNTBGQzA5RkFGQzYwMEU3MDUwMEMwQzgwNUMxMDVDMDA1QzBERjk3Q0YyN0RBRkEwNUVGMDcwMTAwMEIwNjczQ0Y5RkFGNzgwMTlGQUYxQTAzNkVDRkU3MDlGQzA1MjQwMUU3MDkwMjA2MjYwMUU3MDcwNzAwOTJDMEU3MDlGQzA1RkUwNUU3MDkwMjA2MDQwNkU3MDkwMDA2RkMwNUU3MDlGRTA1MDAwNjI3REFGQTA1RTc1NzAxMDBGQTA1MDJDQTA0QzA5N0NGOUZBRjY2MDU5N0NGRTcwNzQwMDAwMjA2QzgwOUZDMDU5RkFGREEwMjk3Q0ZDRjE3MDIwMEVGNTc4MTAwMDkwNjlGQTBCNjAxRUY1NzgwMDAwOTA2OUZBMDQwMDJFRjU3MDEwMDBCMDY5RkEwNDYwM0U3MDcwMTAwMEFDMDQ2QUY0N0FGOUZBRjQwMDJFNzA3MkUwMDBBQzBFRjg3ODAwMDA5MDY5N0NGMDAwRTAxMDBDMDU3NTEwMDlGQzA5RTAyQzA1NzUwMDAyMEMwQzA1NzU1MDAxMkMwQzA1NzU2MDA5RkMwNzIwMjlGQ0ZENjAyQzEwQjA4MDYwMUQwNkY5MDA4MDZDMDA3MDgwMEMxMEIwODA2OUZBRjI4MDU5N0NGMkYwRTAyMDAwODA2QzAwNzA4MDBDMTBCMDgwNjlGQUYyODA1OUZDRkQ2MDIyRjBFMDIwMDA5MDZFRjg3ODAwMDA5MDY5RkNGRDYwMkVGNjc3RkZGMDkwNkU3NjdGRkZEMjJDMEU3NjdFRkZGMjRDMEU3ODcxMDAwMjhDMDlGQUZCODA1RTc4N0UwMjEyNEMwOUZBRkE4MDVFNzg3MDgwMDI0QzBFNzY3REZGRjI0QzBDODA3MEEwMEMwMDcwMDAwQzEwNzAxMDA5RkFGMjgwNTlGQUZCODA1QzAwNzlFMDA5RkFGNDQwNUU3NjdGRkZFMjRDMEMwMDkyMEMwRTc4NzAwMDEyNEMwQzA3NzAwMDIwRkMxRTc2N0Y3RkYyNEMwRTc2N0Y3RkYyNEMwRTc4NzA4MDAyNEMwMDhEQTVFQzFFRjA3ODAwMDA5MDY5N0NGRUYwNzAxMDAwQTA2OTdDRkVGMDcwMDAwMEIwNkVGMDcwMDAwMEEwNkVGNjc3RkZGMDkwNkVGMDcwMDAwMEQwNkU3NjdFRkZGMjhDMEU3NjcxN0Q4MjRDMEU3MDcwMDAwMUVDMEU3MDdGRkZGMjJDMDk3Q0ZDODA3MEUwNjlGQUZEQTAyRTcwNzAwMDBGMjA1RTcwNzEwMDBGNjA1RTcwNzBFMDZGNDA1RTcwN0Q2MDJGODA1QzgwN0YyMDVDMTA3MDA4MDUwQUY5N0NGMkYwQzAyMDAwNzA2MkYwQzA0MDAwNjA2RTcwNzAwMDBGMjA1RTcwNzEwMDBGNjA1RTcwN0UyMDVGNDA1RTcwN0NFMDJGODA1QzgwN0YyMDVDMTA3MDA4MDUxQUY5N0NGOUZBRjY2MDQ5RkFGMUEwMzU5QUY5N0NGQzAwNzBFMDBDMTBCMEMwNjQxRDE5RkFGMjgwNUMwMDczQzAwOUZBRjQ0MDU2ODAwQzAwNzNCMDA5RkFGNDQwNTZGMDAwQzA2NjgwMEUwMDcwNDAxRTgwQjBBMDZFODA3MDAwMEUwMDcwMDAyRTAwN0VDMDFFMDA3RkNGRjk3Q0ZFNzA3RkZGRkZBMDVFRjA3MDAwMDBCMDZFNzA3MEUwNjI0MDFFNzA3MEUwNkZFMDVFNzA3NDAwMDI2MDFFNzA3NDAwMDA0MDZFNzA3MDcwMDkyQzA5N0NGRUYwNzAyMDAwQjA2OUZBRjc4MDFFRjc3ODAwMDA3MDY5RkMwMTQwNEVGNzcwMTAwMDcwNjM3QzBFRjc3MDEwMDBEMDYwRkMxRUYwNzAxMDAwRDA2QzAwNzAyMDBDMTA3MzAwMDlGQUYyODA1QzAwNzAxMDBDMTA3MDIwMDlGQUYyODA1QzgwN0ZGNEY5RkFGQTgwNUMwMDczODAwOUZBRjQ0MDVDMTc3MDMwMDAyQzEwOERBNzVDMUMxNzcwMTAwMEFDMUMwMDcwMTAwQzEwNzAyMDA5RkFGMjgwNUVGMDcwMTAwMDYwNjJDQ0ZDMDA3MDEwMEMxMDcwNDAwOUZBRjI4MDVFRjA3MDAwMDA2MDYyMkNGRUYwNzAwMDAwRDA2RUY1NzAxMDAwNjA2MUJDMEMwMDcwMTAwQzEwNzAxMDA5RkFGMjgwNUMwMDcwMjAwQzEwNzMwMDA5RkFGMjgwNUM4MDdGRjRGOUZBRkE4MDVDMDA3MzgwMDlGQUY0NDA1QzE2NzAzMDBDMTU3MDMwMDAyQzAwOERBNzNDMUMwMDcwMjAwQzEwNzEyMDBFRjU3MDAwMDA2MDYwMkMwQzEwNzIzMDA5RkFGMjgwNUMwMDcxNDAwQzEwQkVBMDU5RkFGMjgwNUMwMDczRTAwOUZBRjBBMDVFNzA5RTQwNUZBMDUyN0Q4RkEwNUU3MDcwRTA2RkMwNUU3MDc0RTA2MDAwNkU3MDc0MDAwMDIwNjlGQUY2NjA1OUZBRkM2MDA5N0NGQzEwQkUyMDU0MUQwMDFEMkMxMTcyMzAwOUZBRkRDMDRDMDA3MDQwMEMxMEJFMzA1OUZBRjI4MDVDMDA3MDYwMEMxMDlFNjA1OUZBRjI4MDVDMDA3MDcwMEMxMDlFNjA1QzFEMTlGQUYyODA1QzAwNzBCMDBDMTA5RTgwNTlGQUYyODA1QzAwNzBDMDBDMTA5RTgwNUMxRDE5RkFGMjgwNUMwMDcwRDAwQzEwNzA5MDA5RkFGMjgwNUMwMDcwMzAwQzEwNzMyMDA5RkFGMjgwNUMwMDcwRjAwQzEwNzAwMDA5RkFGMjgwNTk3Q0ZFNzY3RkZEOTI0QzBDODA3MEEwMDQwMDBDMDY3MDAwMjI3ODAyNEMwRTc4NzAwMDQyNEMwRTc2N0ZGRjkyNEMwMDFEMjA4REE3MkMxRTc4NzAwMjAyNEMwOTdDRjI3MDAxRUMwRTc4N0ZGMDAyMkMwRTc2NzdGRkYyNEMwRTc4NzgwMDAyNEMwRTc4NzgwMDAyNEMwOTdDRjlGQUYwQTA1NjcwMDFFQzBFNzY3QkZGRjI0QzBFNzg3NDAwMDI0QzBFNzg3NDAwMDI0QzA5N0NGOUZBRjBBMDVFNzY3MDBGRjIyQzBFNzY3RkZGRTI0QzBFNzY3RkZGRTI0QzBDMTA5MjBDMEU3ODcwMDAxMjRDMDk3Q0ZDMDA3NDAwMEM4MDlGQzA1RTc2NzAwRkYyMkMwRTc2N0ZGRkUyNEMwRTc2N0JGRkYyNEMwRTc2N0JGRkYyNEMwMDBEQUU4MDkyMEMwRTc4NzQwMDAyNEMwRTc4NzQwMDAyNEMwMDBEQUU4MDkyMEMwNkRDMUU3ODcwMDAxMjRDMDk3Q0ZFNzA3MzIwMDEyQzBFNzc3MDA4MDEyQzA3Q0MwOTdDRkU3MDcyMDRFMTJDMEU3NzcwMDgwMTJDMDdDQzA5N0NGMDkwMjE5MDAwMTAxMDA4MDk2MDkwNDAwMDAwMTAwMDAwMDAwMDcwNTgxMDI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MDEzNjAwMDAwMEI2QzMyRjAxMDM2NDBFMDAxNDAwMUEwMDIwMDAyNjAwNEEwMDY0MDA2QTAwOTIwMDlBMDBBMDAwQjIwMEI4MDBCRTAwQzIwMEM4MDBDRTAwREMwMERBMDBFMjAwRTAwMEU4MDBFNjAwRUUwMEVDMDBGMjAwRjgwMDAyMDEwQTAxMEUwMTEyMDExRTAxMjIwMTI4MDEyQzAxMzIwMTM2MDE0NDAxNTAwMTVFMDE3MjAxNzYwMTdBMDE4MDAxODgwMThDMDE5NDAxOUMwMUEwMDFBNDAxQUEwMUIwMDFCNDAxQkEwMUQwMDFEQTAxRjYwMUZBMDEwMjAyMzQwMjNDMDI0NDAyNEEwMjUwMDI1NjAyNzQwMjc4MDI3RTAyODQwMjhBMDI4ODAyOTAwMjhFMDI5NDAyQTIwMkE4MDJBRTAyQjQwMkJBMDJCODAyQzAwMkJFMDJDNDAyRDAwMkQ0MDJFMDAyRTYwMkVFMDJGODAyRkMwMjA2MDMxRTAzMjQwMzI4MDMzMDAzMkUwMzNDMDM0QTAzNEUwMzU0MDM1ODAzNUUwMzY2MDM2RTAzN0EwMzg2MDM4RTAzOTYwM0IyMDNCODAzQzYwM0NDMDNENDAzREEwM0U4MDNGNDAzRkMwMzA0MDQyMDA0MkEwNDMyMDQzNjA0M0UwNDQ0MDQ0MjA0NDgwNDRFMDQ0QzA0NTQwNDUyMDQ1QTA0NUUwNDYyMDQ2ODA0NzQwNDdDMDQ4MDA0ODgwNDhDMDQ5NDA0OUEwNEEyMDRBNjA0QUUwNEI0MDRDMDA0Q0MwNEQ4MDQyQTA1NDYwNTZDMDUwMDAwNUUKKzowMDA4MDAwMDAwQjZDMzAxMDAwNjY0MDAwMDE0Cis6MDAwMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS93aGl0ZWhlYXQuSEVYIGIvZmlybXdhcmUvd2hpdGVoZWF0LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGFlNjAyCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvd2hpdGVoZWF0LkhFWApAQCAtMCwwICsxLDEwOTcgQEAKKzowMzAwMDAwMDAyOTdFMzgxCis6MDMwMDAzMDAwMjEzMTJEMworOjAzMDAwQjAwMDIwQkI1MzAKKzowMzAwMzMwMDAyMDgxQ0E0Cis6MDMwMDQzMDAwMjBBMDBBRQorOjAzMDA1QjAwMDI4MzNCRTIKKzoxMDAzNzAwMDkwN0ZFOUUwNzAwMzAyMDQ3MzE0NzAwMzAyMDRFNzI0MjEKKzoxMDAzODAwMEZFNzAwMzAyMDU0RjI0RkI3MDAzMDIwNDY0MTQ3MDAzMjMKKzoxMDAzOTAwMDAyMDQ1MjE0NzAwMzAyMDQzQTE0NzAwMzAyMDQ0OTI0NDQKKzoxMDAzQTAwMDA1NjAwMzAyMDU5RTkwN0ZFQkUwMjRGRTYwMTYxNDYwNUEKKzoxMDAzQjAwMDM2MjQwMjcwN0I3NDEyOTA3RkQ0RjA3NDAwOTA3RkQ1NDUKKzoxMDAzQzAwMEYwMDIwNUE1OTA3RkVBRTBGRjEyMEE5OUVBNDk2MDBENjQKKzoxMDAzRDAwMEVBOTA3RkQ0RjBFOTkwN0ZENUYwMDIwNUE1OTA3RkI0MzQKKzoxMDAzRTAwMEUwNDQwMUYwMDIwNUE1OTA3RkVBRTBGRjEyMEE1OEVBMTYKKzoxMDAzRjAwMDQ5NjAzMzEyQTIzQkY1NEU5MDdGRUVFMEZGRTU0RUQzMEQKKzoxMDA0MDAwMDlGNDAwM0UwRjU0RUU1NEVEMzk0NDA0MDAzNzU0RTQwQzcKKzoxMDA0MTAwMEFFMDJBRjAxN0M3RjdEMDBBQjRFMTI5MTM3OTA3RkI1NkQKKzoxMDA0MjAwMEU1NEVGMDAyMDVBNTkwN0ZCNEUwNDQwMUYwMDIwNUE1NzkKKzoxMDA0MzAwMDkwN0ZCNEUwNDQwMUYwMDIwNUE1OTA3RjAwRTUyMUYwMzMKKzoxMDA0NDAwMDkwN0ZCNTc0MDFGMDAyMDVBNTkwN0ZFQUUwRjUyMTAyRTYKKzoxMDA0NTAwMDA1QTU5MDdGRUFFMEY1MzVEMjAyNDM4ODEwRDJFQkQyQjEKKzoxMDA0NjAwMEE4MDIwNUE1OTA3RjAwRTUzNUYwOTA3RkI1NzQwMUYwRjYKKzoxMDA0NzAwMDAyMDVBNTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyMDcKKzoxMDA0ODAwMDcwNUJBMjAwRTQzM0ZGMjVFMEZGQTIwNUU0MzM0RjkwNDgKKzoxMDA0OTAwMDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDVBNUU0QkMKKzoxMDA0QTAwMDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDVBNTkwNTQKKzoxMDA0QjAwMDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1NzUKKzoxMDA0QzAwMEUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NDAxOTA3RjAwQUEKKzoxMDA0RDAwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNUE1OTA3RkI0MUMKKzoxMDA0RTAwMEUwNDQwMUYwMDIwNUE1OTA3RkU4RTAyNEZFNjAxRDI0QjEKKzoxMDA0RjAwMDAyNjAwMzAyMDVBNTkwN0ZFQUUwQjQwMTA1QzIwMDAyOTQKKzoxMDA1MDAwMDA1QTU5MDdGQjRFMDQ0MDFGMDAyMDVBNTkwN0ZFQUUwRTQKKzoxMDA1MTAwMDcwMzQ5MDdGRUNFMEZGNTQwN0ZFRjU0RUVGMzBFNzAzQjgKKzoxMDA1MjAwMDQzNEUxMDkwN0ZEN0U1NEVGMEU1NEU0NDIwRjBFRkY0QjcKKzoxMDA1MzAwMDU0ODBGREM0NTQwRjJFMjVFMDI0QjRGNTgyRTQzNDdGQUEKKzoxMDA1NDAwMEY1ODNFNEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwNDIKKzoxMDA1NTAwMDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0NEQKKzoxMDA1NjAwMDAxMDREMjAwODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwRDcKKzoxMDA1NzAwMDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRDkKKzoxMDA1ODAwMEZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzOUYKKzoxMDA1OTAwMDc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGRjgKKzowQzA1QTAwMEI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMEFECis6MDEwNUFDMDAyMjJDCis6MTAwNUFEMDA3NTRBRkY3NTQ5RkY3NTQ4MEY3NTQ3MDBEMjAzQzIwNjlFCis6MTAwNUJEMDBDMjAyQzIwMEMyMDVDMjAxOTAwMzAwNzQxOUYwRTQ5MDlBCis6MTAwNUNEMDAwMUJDRjBDMjA0OTAwMUMwRjBBM0YwQzJBRkMyQTgxMkVBCis6MTAwNUREMDAwQzIyRTQ5MDAyQUZGMDkwMDFCREYwOTAwMTAwRjBBMzY5Cis6MTAwNUVEMDBGMEEzRjBBM0YwQTNGMEEzNzQxMEYwQTM3NDAxRjBBMzkzCis6MTAwNUZEMDA3NDA4RjA3RTAxN0YwMDEyMTlDMTc1NEMxMjc1NEQwQUY5Cis6MTAwNjBEMDA5MDAxMEJFMEZGMDU0REU1NERBQzRDNzAwMjA1NEMxNDBGCis6MTAwNjFEMDBGNTgyOEM4M0VGRjA5MDAxMENFMDQ0ODBGRjA1NERFNUYxCis6MTAwNjJEMDA0REFDNEM3MDAyMDU0QzE0RjU4MjhDODNFRkYwOTAwMUFCCis6MTAwNjNEMDAwREUwRkYwNTRERTU0REFDNEM3MDAyMDU0QzE0RjU4MkY3Cis6MTAwNjREMDA4QzgzRUZGMDkwMDEwRUUwRkYwNTRERTU0REFDNEM3MDQ1Cis6MTAwNjVEMDAwMjA1NEMxNEY1ODI4QzgzRUZGMDkwMTIwQUU0OTNGRjlGCis6MTAwNjZEMDA3NDAxOTM5MDAxMUNDRkYwQTNFRkYwOTAwMTFDRTBGRkZCCis6MTAwNjdEMDBBM0UwRkVFRjZFRkY5MDAxMUNGMEEzRTA2RkZGRjA5MDgyCis6MTAwNjhEMDAwMTFDRTA2RkYwRTBGRUEzRTBGRkU0RkNGRDc1NTIxMEVECis6MTAwNjlEMDA3NTUzMDI3NTU0MTI3NTU1QUMxMjk0MjY3NTRDMTI3NTFFCis6MTAwNkFEMDA0REIyOTAwMTBERTBGRjA1NERFNTREQUM0QzcwMDIwNUNFCis6MTAwNkJEMDA0QzE0RjU4MjhDODNFRkYwOTAwMTBFRTBGRjA1NERFNUIzCis6MTAwNkNEMDA0REFDNEM3MDAyMDU0QzE0RjU4MjhDODNFRkYwOTA3RjhECis6MTAwNkREMDA5MkUwRkZDNDU0MEYyNDQxRkYwNTRERTU0REFDNEM3MDI1Cis6MTAwNkVEMDAwMjA1NEMxNEY1ODI4QzgzRUZGMDA1NERFNTREQUU0Q0IzCis6MTAwNkZEMDA3MDAyMDU0QzE0RjU4MjhFODNFNEYwNzU4MjEwNzU4M0JCCis6MTAwNzBEMDAwMUUwRkNBM0UwRkRBM0UwRkVBM0UwRkY5MDAxMTgxMkMxCis6MTAwNzFEMDBBM0VFN0UwMTdGMTgxMjg2QkU5MDAxMThFMEZDQTNFMEM3Cis6MTAwNzJEMDBGREEzRTBGRUEzRTBGRjc1NTIwQTc1NTMwNjc1NTQxMjQyCis6MTAwNzNEMDA3NTU1QjgxMjk0MjZEMkU4NDNEODIwOTA3RkFCNzRGRjNDCis6MTAwNzREMDBGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDI1Cis6MTAwNzVEMDAxRkYwRDJBRjIwMDEyRTIwMDEyQkEyMDM5MjA3MTIwOTA4Cis6MTAwNzZEMDBDNTc1NDY1MDc1NDU2RDc1NDQzMzc1NDMwMDIwMDFFNERDCis6MTAwNzdEMDA3RkZGN0VGRjdERkY3Q0ZGNzg0MzEyQTNEN0VDNEQ0RUFDCis6MTAwNzhEMDA0RjYwRDE4MEU4MzAwMTA1MTIwMzcwQzIwMTMwMDYwQUI2Cis6MTAwNzlEMDAxMjA5RkI1MDAzMTIwQUU4QzIwNjEyOTY1RTkwMDFCREMzCis6MTAwN0FEMDBFMDYwMEMxMjkyMDFFNDkwMDFCREYwOTA3RkQzRjA5MEM3Cis6MTAwN0JEMDAwMkFGRTBCNDBGMDMxMjk5QjkxMkEwOTVFNEZGNzQwMUQyCis6MTAwN0NEMDBBODA3MDg4MDAyQzMzM0Q4RkNGRTkwMDFCQ0UwNUU2MDMwCis6MTAwN0REMDAxNDc0MjgyRkY4RTZEMzk0MEE0MDA0N0UwMTgwMDI3RTFCCis6MTAwN0VEMDAwMDhFNEI4MDAzNzU0QjAxNzQ2ODJGRjU4MkU0MzQyMDI1Cis6MTAwN0ZEMDBGNTgzRTU0QkYwMEZCRjA0QzVFNTJDRDM5NDBBNDAwNEY3Cis6MEUwODBEMDA3RjAxODAwMjdGMDA5MDIwNkNFRkYwMDIwNzkyQzYKKzowMTA4MUIwMDIyQkEKKzowNDA4MUMwMDUzRDhFRjMyOEMKKzoxMDA4MjAwMEU1MzNDMzk0MDE0MDBFOTA3RjkzRTA0NDMwRjA5MDdGMTUKKzoxMDA4MzAwMDk1RTA0NEMwRjA3RkY0N0UwMTEyMDlBRTkwN0Y5NkUwMEYKKzoxMDA4NDAwMDU0RkVGMDdGMEE3RTAwMTIwOUFFOTA3Rjk2RTA0NDA4QzUKKzoxMDA4NTAwMEYwN0YwNTdFMDAxMjA5QUU5MDdGOTZFMDU0RkJGMDdGOUEKKzoxMDA4NjAwMDA1N0UwMDEyMDlBRUU1MzNDMzk0MDE1MDBFN0YwMjdENzAKKzoxMDA4NzAwMEZGMTI4MkVBN0YwNTdFMDAxMjA5QUU5MDdGOTZFMDQ0NjcKKzoxMDA4ODAwMDAyRjBFMDU0N0ZGMDdGMDU3RTAwMTIwOUFFOTA3Rjk2NjMKKzoxMDA4OTAwMEUwNDQ0MEYwN0YwNTdFMDAxMjA5QUU5MDdGOTZFMDU0NjAKKzoxMDA4QTAwMEJGRjA3RjMyN0UwMDEyMDlBRTkwN0Y5NkUwNDQ0MEYwQTgKKzowODA4QjAwMDdGMzI3RTAwMTIwOUFFMjIyNgorOjEwMDhCODAwOTA3Rjk2RTA1NEZERjBFMDQ0ODBGMDdGMEE3RTAwMTJCRAorOjEwMDhDODAwMDlBRUU1MzNDMzk0MDE1MDBFN0YwMkU0RkQxMjgyRUFCQgorOjEwMDhEODAwN0YwNTdFMDAxMjA5QUU5MDdGOTZFMDU0QkZGMDdGMDUzOQorOjEwMDhFODAwN0UwMDEyMDlBRTkwN0Y5NkUwNDQwNEYwN0YwNTdFMDBGQQorOjEwMDhGODAwMTIwOUFFOTA3Rjk2RTA1NEY3RjA3RjA1N0UwMDEyMDk0QQorOjEwMDkwODAwQUU5MDdGOTZFMDQ0MDFGMDdGMDU3RTAwMTIwOUFFRTVDNworOjEwMDkxODAwMzNDMzk0MDE0MDBFOTA3RjkzRTA1NENGRjA5MDdGOTVCRAorOjA4MDkyODAwRTA1NDNGRjAxMjBCMDAyMjI1Cis6MTAwOTMwMDA5MDBBRjRFNDkzNzA3NjkwN0Y5Mzc0MzBGMDkwN0Y5NEYzCis6MTAwOTQwMDA3NDNDRjA5MDdGOTU3NEM2RjA3RjBBN0UwMDEyMDlBRTY5Cis6MTAwOTUwMDBFNDkwN0Y5Q0YwOTA3Rjk2NzQwOEYwOTA3RjlDNzRDRjE5Cis6MTAwOTYwMDBGMDdGMEE3RTAwMTIwOUFFOTAyMDcwRTBGRkM0NTQwRkExCis6MTAwOTcwMDBGNTMzQzM5NDAxNTAwNzkwN0Y5NkUwNDQ4MEYwRTQ5MEYzCis6MTAwOTgwMDA3Rjk3RjA5MDdGOUQ3NDAyRjBFNTMzQzM5NDAxNDAwQjk0Cis6MTAwOTkwMDBFNDkwN0Y5OEYwOTA3RjlFNzRDMEYwOTA3RkUyNzQxMjk0Cis6MEUwOUEwMDBGMDEyMDgyMDc1ODJGNDc1ODMwQTc0RkZGMDIyQUQKKzoxMDA5QUUwMDhFNUQ4RjVFRTU1RTE1NUVBRTVENzAwMjE1NUQ0RTYwMEUKKzowNzA5QkUwMDA1MTIwOUVBODBFRTIyOTgKKzoxMDA5QzUwMDkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDA3MDRFMDQ0QTMKKzoxMDA5RDUwMDAyRjA3RkQwN0UwNzEyMDlBRTkwN0ZENkUwNTRGN0YwODMKKzowNTA5RTUwMEUwNDQwNEYwMjJEMworOjEwMDlFQTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMAorOjAxMDlGQTAwMjJEQQorOjA1MDlGQjAwMTIwOEI4RDMyMjMwCis6MTAwQTAwMDAwMjBDNEUwMDAyMEM4MTAwMDIwQzY2MDAwMjBDQzAwMEI5Cis6MTAwQTEwMDAwMjBDQUEwMDAyMEFFRDAwMDIwQUVFMDAwMjBBRUYwMDMwCis6MTAwQTIwMDAwMjBDREIwMDAyMERDQjAwMDIwRDE3MDAwMjBFMkIwMEEyCis6MTAwQTMwMDAwMjBENTMwMDAyMEU4QjAwMDIwRDhGMDAwMjBFRUIwMDIwCis6MTAwQTQwMDAwMjBBRjAwMDAyMEFGMjAwMDIwQUYxMDAwMjBBRjMwMEIwCis6MDgwQTUwMDAwMjBGNEIwMDAyMEY2MTAwRDAKKzowMjBBNTgwMDhGNEZCRQorOjEwMEE1QTAwRTRGNTUwNzU1MUZGNzU1MjEyNzU1MzZBQUI1MUFBNTI5QgorOjEwMEE2QTAwQTk1MzkwMDAwMTEyQTI1NEI0MDMxREFGNTAwNTUwRUZEMAorOjEwMEE3QTAwQjU0RjAxMjIxMkEyM0I3RTAwMjlGRkVFM0FBOTA3NzU2MworOjBFMEE4QTAwNTFGRkY1NTI4OTUzODBENDdCMDA3QTAwNzkwMDI5Cis6MDEwQTk4MDAyMjNCCis6MTAwQTk5MDBFNEZFNzU1MUZGNzU1MjEyNzU1MzEyQUI1MUFBNTJBOTUyCis6MTAwQUE5MDA1MzkwMDAwMTEyQTI1NDY0MDI3MDJEQUQwNjBFRURCNUVCCis6MTAwQUI5MDAwNzAxMjI5MDAwMDIxMkEyQUQ4NUYwNEZGNTUwNjI0RjU2Cis6MTAwQUM5MDBFNTRGNjI1MEU1NTA2MjRGMjlGREU1NEYzQUE5MDU3NTlBCis6MEUwQUQ5MDA1MUZGRjU1Mjg5NTM4MEMzN0IwMDdBMDA3OTAwRUIKKzowMTBBRTcwMDIyRUMKKzowNTBBRTgwMDEyMDgyMEQzMjJEQQorOjAxMEFFRDAwMzJENgorOjAxMEFFRTAwMzJENQorOjAxMEFFRjAwMzJENAorOjAxMEFGMDAwMzJEMworOjAxMEFGMTAwMzJEMgorOjAxMEFGMjAwMzJEMQorOjAxMEFGMzAwMzJEMAorOjAzMEFGNDAwMDAwNDA3RjQKKzowOTBCMDAwMDkwN0ZENkUwNDQ4MEYwODA3NDdGCis6MTAwQjdEMDA0Mzg3MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjdCCis6MTAwQjhEMDA1MzhFRjdFNTg5NTRGMTQ0MDFGNTg5NzU4Q0IxRDJBOURECis6MTAwQjlEMDA3NTk4NDA3NUNCRkY3NUNBRjM3NUM4MzRFNEZGN0YwNUIyCis6MDcwQkFEMDA3ODI4RTRGNjA4REZGQ0U0Cis6MDEwQkI0MDAyMjFFCis6MTAwQkI1MDBDMEUwQzA4M0MwODJDMEQwNzVEMDAwQzAwMEMwMDZDMEYwCis6MDEwQkM1MDAwNzI4Cis6MTAwQkM2MDAzMDA0MTY3NThDRjg3NThBMzA3RjJGQUUwNzFGRUU2MERECis6MTAwQkQ2MDAzQzkwMjAwMDc0NTVGMDgwRjI3NThDQjE3RjI4RUZEM0RECis6MTAwQkU2MDA5NDJDNTAwOUE4MDdFNjYwMDExNjBGODBGMTkwMDMwMEM3Cis6MTAwQkY2MDBFMDYwMDIxNEYwOTAwMUMwRTA3MDAyQTNFMDYwMEU5MDg1Cis6MEQwQzA2MDAwMUMxRTAyNEZGRjA5MDAxQzBFMDM0RkZGMEQ4Cis6MEYwQzEzMDBEMDA3RDAwNkQwMDBEMEQwRDA4MkQwODNEMEUwMzIyRQorOjEwMEMyMjAwRDIwMDc1OEUxMDEyMDkzMEU1MzNDMzk0MDE0MDA4OTA0QQorOjEwMEMzMjAwN0Y5Mjc0MDJGMDgwMDVFNDkwN0Y5MkYwMTI4MDAwMTI5RAorOjBDMEM0MjAwMEY3RDEyOTRGNzEyMUIwQzEyMEI4RDIyNzgKKzoxMDBDNEUwMEMwRTBDMDgzQzA4MkQyMDE1MzkxRUY5MDdGQUI3NDAxOUMKKzowODBDNUUwMEYwRDA4MkQwODNEMEUwMzIxNworOjEwMEM2NjAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0ZEMAorOjBCMEM3NjAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkQ5Cis6MTAwQzgxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjA5MEJCCis6MTAwQzkxMDA3RkQ4RTA3MDBEOTA3RkQ5RTA3MDA3RTUyQzcwMDM3NTY3Cis6MDkwQ0ExMDAyQzE0RDA4MkQwODNEMEUwMzI4MworOjEwMENBQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDA0NAorOjA2MENCQTAwODJEMDgzRDBFMDMyN0QKKzoxMDBDQzAwMEMwRTBDMDgzQzA4MjMwMDIwMkQyMDY1MzkxRUY5MDdGMTEKKzowQjBDRDAwMEFCNzQwOEYwRDA4MkQwODNEMEUwMzI3QgorOjEwMENEQjAwQzBFMEMwODNDMDgyQzBEMDc1RDAxMDUzOTFFRjkwN0YxRAorOjEwMENFQjAwQTk3NDAyRjBFNTM0MzBFMDEzRTUzMjMwRTAwNzkwMjBEMAorOjEwMENGQjAwMDRFMDQ0MDFGMDkwMjAwMUUwNDQwMUYwRTUyQzcwMDM4NgorOjBDMEQwQjAwNzUyQzE0RDBEMEQwODJEMDgzRDBFMDMyMDAKKzoxMDBEMTcwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMTA1MzkxRUY5MDdGRTAKKzoxMDBEMjcwMEE5NzQwNEYwRTUzNDMwRTExM0U1MzIzMEUxMDc5MDIwOEYKKzoxMDBEMzcwMDBDRTA0NDAxRjA5MDIwMDlFMDQ0MDFGMEU1MkM3MDAzMzkKKzowQzBENDcwMDc1MkMxNEQwRDBEMDgyRDA4M0QwRTAzMkM0Cis6MTAwRDUzMDBDMEUwQzA4M0MwODJDMEQwNzVEMDEwNTM5MUVGOTA3RkE0Cis6MTAwRDYzMDBBOTc0MDhGMEU1MzQzMEUyMTNFNTMyMzBFMjA3OTAyMDRECis6MTAwRDczMDAxNEUwNDQwMUYwOTAyMDExRTA0NDAxRjBFNTJDNzAwM0VECis6MEMwRDgzMDA3NTJDMTREMEQwRDA4MkQwODNEMEUwMzI4OAorOjEwMEQ4RjAwQzBFMEMwODNDMDgyQzBEMDc1RDAxMDUzOTFFRjkwN0Y2OAorOjEwMEQ5RjAwQTk3NDEwRjBFNTM0MzBFMzEzRTUzMjMwRTMwNzkwMjAwNworOjEwMERBRjAwMUNFMDQ0MDFGMDkwMjAxOUUwNDQwMUYwRTUyQzcwMDNBMQorOjBDMERCRjAwNzUyQzE0RDBEMEQwODJEMDgzRDBFMDMyNEMKKzoxMDBEQ0IwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwNjkKKzoxMDBEREIwMEQwNzVEMDEwNTM5MUVGOTA3RkFBNzQwMkYwRTUzNDIwQjgKKzoxMDBERUIwMEUwMDY5MDdGQzdGMDgwMjJFNTMxMzBFMDBBOTA3RkM3QTQKKzoxMDBERkIwMEUwOTAwMkY4RjA4MDEzRTUyMjMwRTAwNzkwMjAwNEUwNDkKKzoxMDBFMEIwMDQ0MDJGMDkwMjAwMUUwNDQwMkYwRTUyQzcwMDM3NTJDQjUKKzoxMDBFMUIwMDE0RDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOEQKKzoxMDBFMkIwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwMDgKKzoxMDBFM0IwMEQwNzVEMDEwNTM5MUVGOTA3RkFBNzQwNEYwRTUzNDIwNTUKKzoxMDBFNEIwMEUxMDY5MDdGQzlGMDgwMjJFNTMxMzBFMTBBOTA3RkM5M0QKKzoxMDBFNUIwMEUwOTAwMkY5RjA4MDEzRTUyMjMwRTEwNzkwMjAwQ0UwREUKKzoxMDBFNkIwMDQ0MDJGMDkwMjAwOUUwNDQwMkYwRTUyQzcwMDM3NTJDNEQKKzoxMDBFN0IwMDE0RDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyMkQKKzoxMDBFOEIwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwQTgKKzoxMDBFOUIwMEQwNzVEMDEwNTM5MUVGOTA3RkFBNzQwOEYwRTUzNDIwRjEKKzoxMDBFQUIwMEUyMDY5MDdGQ0JGMDgwMjJFNTMxMzBFMjBBOTA3RkNCRDcKKzoxMDBFQkIwMEUwOTAwMkZBRjA4MDEzRTUyMjMwRTIwNzkwMjAxNEUwNzQKKzoxMDBFQ0IwMDQ0MDJGMDkwMjAxMUUwNDQwMkYwRTUyQzcwMDM3NTJDRTUKKzoxMDBFREIwMDE0RDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQ0QKKzoxMDBFRUIwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwNDgKKzoxMDBFRkIwMEQwNzVEMDEwNTM5MUVGOTA3RkFBNzQxMEYwRTUzNDIwODkKKzoxMDBGMEIwMEUzMDY5MDdGQ0RGMDgwMjJFNTMxMzBFMzBBOTA3RkNENzAKKzoxMDBGMUIwMEUwOTAwMkZCRjA4MDEzRTUyMjMwRTMwNzkwMjAxQ0UwMDkKKzoxMDBGMkIwMDQ0MDJGMDkwMjAxOUUwNDQwMkYwRTUyQzcwMDM3NTJDN0MKKzoxMDBGM0IwMDE0RDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyNkMKKzoxMDBGNEIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOTc0ODBGMEQwMzIKKzowNjBGNUIwMDgyRDA4M0QwRTAzMkQ5Cis6MTAwRjYxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUE3NDgwRjA5MDVCCis6MEMwRjcxMDAwMUJENzRGRkYwRDA4MkQwODNEMEUwMzJDQworOjEwMEY3RDAwOTAwMTIwMTJBM0ZBMDAwMDI1ODA5MDAxMjQ3NDA4RjAzRQorOjEwMEY4RDAwQTM3NDAxRjBBMzc0NkVGMEEzRjBBMzc0MTNGMEEzNzQxMworOjEwMEY5RDAwMTFGMEU0QTNGMEEzRjA5MDAxMUVGMDkwMDExRUUwRkYwQworOjEwMEZBRDAwMDRBM0YwRUY3NUYwMERBNDI0MDFGOTc0MDMzNUYwQTgzNgorOjEwMEZCRDAwMDFGQzdEMDE3QjAxN0EwMTc5MUY3RTAwN0YwRDEyQTI1QworOjEwMEZDRDAwMTI3RTAxN0YxRjEyODdBNjkwMDExRUUwMDRGMEUwQzM4MAorOjEwMEZERDAwOTQwNDQwQzdFNEY1Mjc5MDAxMUVGMDkwMDExRUUwRkYzOAorOjEwMEZFRDAwQzM5NDA0NTAxQTc0RjgyRkY1ODJFNDM0MDJGNTgzRTRBNworOjEwMEZGRDAwRjA3NDIzMkZGOEU0RjY5MDAxMUVFMDA0RjA4MERDRTQ5OQorOjEwMTAwRDAwRjUzNEU1QzA2MDJGOTAwMTFFNzQwMUYwOTAwMTFFRTBEMworOjEwMTAxRDAwRkZEMzk0MDQ1MDFGRUYxNEZGNzQwMUE4MDcwODgwMDIzQQorOjEwMTAyRDAwQzMzM0Q4RkM0MjM0N0UwMTdGMUUxMjg0NDE5MDAxMUVEMQorOjEwMTAzRDAwRTAwNEYwODBEN0U0RjUzRUY1MjJGNTMxRjUzMjkwMDE2QworOjEwMTA0RDAwMUVGMDkwMDExRUUwRkY3NUYwMDhBNDI0MDZGNTgyRTQ2MQorOjEwMTA1RDAwMzQyMEY1ODNFMDU0RjBGRTc0QzUyRkY1ODJFNDM0MDE5RAorOjEwMTA2RDAwRjU4M0VFRjA3NDNBMkZGOEE2MDY3NDM2MkZGOEU0RjZGMQorOjEwMTA3RDAwNzQyRDJGRjhFNEY2NzRGQzJGRjU4MkU0MzQwMkY1ODMxOQorOjEwMTA4RDAwRTRGMDkwMDExRUUwMDRGMEUwQjQwNEI2OTAyMDYwRTBCRQorOjA0MTA5RDAwNTQwRkY1NEVBOQorOjEwMTBBMTAwNzAwMzAyMTEyNkU0OTAwMTFFRjA5MDAxMUVFMEZGQzNCRgorOjEwMTBCMTAwOTQwNDUwRTQ3NDAxQTgwNzA4ODAwMkMzMzNEOEZDNTU5NgorOjEwMTBDMTAwNEU2MDVBOTAwMTFFRTBGRTc1RjAwOEE0MjQwMkY1ODJEQworOjEwMTBEMTAwRTQzNDIwRjU4M0UwRkZFRTc1RjAwOEE0MjQwNUY1ODJFMQorOjEwMTBFMTAwRTQzNDIwRjU4M0UwRUU3NUYwMDhBNDI0MDZGNTgyRTRFQgorOjEwMTBGMTAwMzQyMEY1ODNFMEZGQUYwNkVFNzVGMDBEQTQyNDAyRjU3MAorOjEwMTEwMTAwODJFNDM0MDNGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTA2OQorOjEwMTExMTAwRjU2NjhFNjU4RDY0OEM2MzdEMDYxMjgzREY5MDAxMUVGQQorOjA2MTEyMTAwRTAwNEYwODA4NTIyQ0QKKzowMjExMjcwMEFDMDcxMworOjEwMTEyOTAwOTA3RkE1RTA0NDgwRjBFQzI1RTA0NDQxOTA3RkE2RjA1MworOjEwMTEzOTAwN0IzQ0FGMDMxQkVGNzAxNjkwN0ZBNUUwNDQ0MEYwOTAxNQorOjEwMTE0OTAwN0ZBNkUwRkQ3RDMyQUYwNTFERUY2MEQ0ODBGODkwN0Y2QQorOjEwMTE1OTAwQTVFMEZEMzBFMERDMjBFMTA5RTA0NDQwRjA3RUZGN0ZCRQorOjEwMTE2OTAwRjkyMkVEMzBFMjBDOTA3RkE1RTA0NDQwRjA3RUZGN0Y0QworOjEwMTE3OTAwRkEyMjkwN0ZBNUUwNDQyMEYwOTA3RkE2RTBGRDdCMUUzNworOjEwMTE4OTAwQUYwMzFCRUY3MDE2OTA3RkE1RTA0NDQwRjA5MDdGQTY1NworOjEwMTE5OTAwRTBGRDdEMzJBRjA1MURFRjYwODY4MEY4OTA3RkE1RTAwOAorOjEwMTFBOTAwRkQyMEUwREM3QjNDQUYwMzFCRUY3MDE5OTA3RkE1RTBDRAorOjEwMTFCOTAwNDQ0MEYwOTA3RkE2RTBGRDdEMzJBRjA1MURFRjcwMDMzRQorOjEwMTFDOTAwMDIxMTI5ODBGNTkwN0ZBNUUwRkQzMEUwRDkzMEUyMDlEMAorOjEwMTFEOTAwRTA0NDQwRjA3RUZGN0ZGQTIyQzJBRjkwN0ZBNUUwNDQ1MQorOjBDMTFFOTAwNDBGMDkwN0ZBNkUwRkREMkFGRkY3RTAwM0EKKzowMTExRjUwMDIyRDcKKzoxMDEyMDAwMDEyMDEwMDAxRkZGRkZGNDAxMDA3MDE4MDQyMDAwMTAyQjAKKzoxMDEyMTAwMDAzMDEwOTAyNTgwMDAxMDEwNDgwM0MwOTA0MDAwMDBBOEUKKzoxMDEyMjAwMEZGRkZGRjA1MDcwNTgxMDI0MDAwMDAwNzA1MDEwMjQwOUUKKzoxMDEyMzAwMDAwMDAwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDAwMDAwOEUKKzoxMDEyNDAwMDA3MDU4MzAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1NzAKKzoxMDEyNTAwMDg0MDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDU4NzAyRTEKKzoxMDEyNjAwMDQwMDAwMDA3MDUwNzAyNDAwMDAwMDQwMzA5MDQyNDAzQUUKKzoxMDEyNzAwMDQzMDA2RjAwNkUwMDZFMDA2NTAwNjMwMDc0MDAyMDAwODQKKzoxMDEyODAwMDU0MDA2NTAwNjMwMDY4MDAyMDAwNDkwMDZFMDA2MzAwQTAKKzoxMDEyOTAwMDJFMDAxODAzNTcwMDY4MDA2OTAwNzQwMDY1MDA0ODAwQkMKKzoxMDEyQTAwMDQ1MDA0MTAwNTQwMDJEMDAzNDAwMUEwMzU4MDA1ODAwMzYKKzoxMDEyQjAwMDJEMDA1ODAwNTgwMDJEMDA1ODAwNTgwMDU4MDA1ODAwQzQKKzoxMDEyQzAwMDU4MDA1ODAwMkEwMzQzMDA2RjAwNkUwMDY2MDA2OTAwNTIKKzoxMDEyRDAwMDY3MDA3NTAwNzIwMDYxMDA3NDAwNjkwMDZGMDA2RTAwQTUKKzoxMDEyRTAwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMjAzNDIKKzoxMDEyRjAwMDQ5MDA2RTAwNzQwMDY1MDA3MjAwNjYwMDYxMDA2MzAwQzIKKzoxMDEzMDAwMDY1MDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwRTEKKzowMjEzMTAwMDAwMDBEQgorOjEwMTMxMjAwQzBFMEMwRjBDMDgzQzA4MkMwODVDMDg0QzA4NkMwRDA5NworOjEwMTMyMjAwNzU4NjAwNzVEMDE4OTAyMDYwRTA1NDBGRjVGMDcwMTFBQQorOjEwMTMzMjAwRDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBGMEQwRTBGNworOjEwMTM0MjAwMzI3NTg2MDAxMEYwMEIxMEYxMTIxMEYyMTkxMEYzMjAxMgorOjEwMTM1MjAwODBENEU1Mjg3MDAzNzUyODE0MDIxMzdDRTUyOTcwMDNGNAorOjEwMTM2MjAwNzUyOTE0MDIxNTBERTUyQTcwMDM3NTJBMTQwMjE2OUVCQQorOjEwMTM3MjAwRTUyQjcwMDM3NTJCMTQwMjE4MkY5MDIwMDJFMDU0M0ZDNgorOjEwMTM4MjAwMjBFMjNBMjBFMTBCMjBFNDBCMjBFNTE0NjAwOTAyMTM2RAorOjEwMTM5MjAwNDMwMjE0NjUwMjEzNDM0MzgyMDRFMEY1M0EwMjEzNDMwNQorOjEwMTNBMjAwNDM4MjA0RTA0MzJEMDEwMjEzNDM1MzgyRjg0MzgyMDUzMgorOjEwMTNCMjAwRTA0MjM2NTM4MkZCRTA1NEZCRjAwMjEzNDMzMEUxMDI3OQorOjEwMTNDMjAwODBFOEY1ODVFNTMyMzBFMDBBNTM4MkY4NDM4MjA0RTA5MgorOjEwMTNEMjAwNTRGRUYwRTU4NTIwRTM1NjkwMjA1MDc0MDBGMDkwMjBGMgorOjEwMTNFMjAwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMDkwN0ZFMzA1ODY3QworOjEwMTNGMjAwOTA3RTgwMDU4NkU1ODVGMEEzRTU4NEYwMDU4NjkwN0ZFMgorOjEwMTQwMjAwRTVFNTNGRkQwMzAzMDNGRUYwRjBGMEYwRjBGMEYwRjA0RAorOjEwMTQxMjAwREVGNjkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwOTAyNgorOjEwMTQyMjAwN0ZCN0VERjA5MDIwMDFFMDU0RkVGMDAyMTM0MzdGNDBCRAorOjEwMTQzMjAwOTA3RTgwMDU4NjkwMjAwMEU1ODRGRTI0MDVGRDhEODQ0MworOjEwMTQ0MjAwRTA4RTg0MzBFMDA5RTAwNTg2RjBBMzA1ODZERkVGMDUzMworOjEwMTQ1MjAwODZDMzc0NDA5RjkwN0ZCN0YwMDU4NkEzRTA1NEZFRjBFOAorOjEwMTQ2MjAwMDIxMzQzNTMyREZBRTUyMzYwMDg3NTIzMDBEMkU3RkVFOQorOjEwMTQ3MjAwODAwQTkwN0ZDN0UwRkU3MDAzMDIxNEZGOTAyMDUwNzQzMAorOjEwMTQ4MjAwMDBGMDkwMjA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwOTAyOAorOjEwMTQ5MjAwN0ZFMzA1ODY5MDdFNDAwNTg2RTU4NUYwQTNFNTg0RjAyRQorOjEwMTRBMjAwMDU4NjkwN0ZFNUVFMzBFNzA4MDU4NkUwMjQzOEYwMDVGMgorOjEwMTRCMjAwODZFRTU0N0ZGRTU0MDdGQkVFNTQ3ODYwMzAwMzAzMDMzQworOjEwMTRDMjAwMzBFMzA0NzQwNzdCMDhGREZDRTBFMEUwRTBFMEUwRTBFQworOjEwMTREMjAwRTBEREY2RUJGRTYwMTlFQzY0MDc3MDExOEIyMzkwN0Y2MAorOjEwMTRFMjAwRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDgwMUJFMERFRkQ3MworOjEwMTRGMjAwOTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjA5MDIwMDFGOQorOjEwMTUwMjAwRTA1NEZERjA5MDdGQzdGMDAyMTM0MzkwMjAwQUUwNTRBQworOjEwMTUxMjAwM0YyMEUyM0EyMEUxMEIyMEU0MEIyMEU1MTQ2MDA5MDJBRgorOjEwMTUyMjAwMTM0MzAyMTVGNjAyMTM0MzQzODIwNEUwRjUzQjAyMTMxMAorOjEwMTUzMjAwNDM0MzgyMDRFMDQzMkUwMTAyMTM0MzUzODJGODQzODI2MQorOjEwMTU0MjAwMDVFMDQyMzc1MzgyRkJFMDU0RkJGMDAyMTM0MzMwRTFFMworOjEwMTU1MjAwMDI4MEU4RjU4NUU1MzIzMEUxMEE1MzgyRjg0MzgyMDRERAorOjEwMTU2MjAwRTA1NEZFRjBFNTg1MjBFMzU2OTAyMDUwNzQwMUYwOTA5RgorOjEwMTU3MjAwMjA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwOTA3RkUzMDU1MAorOjEwMTU4MjAwODY5MDdFMDAwNTg2RTU4NUYwQTNFNTg0RjAwNTg2OTBDOQorOjEwMTU5MjAwN0ZFNUU1NDBGRDAzMDMwM0ZFRjBGMEYwRjBGMEYwRjAyQworOjEwMTVBMjAwRjBERUY2OTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjAzNQorOjEwMTVCMjAwOTA3RkI5RURGMDkwMjAwOUUwNTRGRUYwMDIxMzQzN0ZEMgorOjEwMTVDMjAwNDA5MDdFMDAwNTg2OTAyMDA4RTU4NEZFMjQwNUZEOEQ2RQorOjEwMTVEMjAwODRFMDhFODQzMEUwMDlFMDA1ODZGMEEzMDU4NkRGRUYyMworOjEwMTVFMjAwMDU4NkMzNzQ0MDlGOTA3RkI5RjAwNTg2QTNFMDU0RkU0MAorOjEwMTVGMjAwRjAwMjEzNDM1MzJFRkFFNTI0NjAwODc1MjQwMEQyRTc2MworOjEwMTYwMjAwRkU4MDBBOTA3RkM5RTBGRTcwMDMwMjE2OTA5MDIwNTA3RgorOjEwMTYxMjAwNzQwMUYwOTAyMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjBCMQorOjEwMTYyMjAwOTA3RkUzMDU4NjkwN0RDMDA1ODZFNTg1RjBBM0U1ODQ3RAorOjEwMTYzMjAwRjAwNTg2OTA3RkU1RUUzMEU3MDgwNTg2RTAyNDM4RjA3NQorOjEwMTY0MjAwMDU4NkVFNTQ3RkZFNTQwN0ZCRUU1NDc4NjAzMDAzMDNBOAorOjEwMTY1MjAwMDMzMEUzMDQ3NDA3N0IwOEZERkNFMEUwRTBFMEUwRTAzNworOjEwMTY2MjAwRTBFMERERjZFQkZFNjAxOUVDNjQwNzcwMTE4QjI0OTA2QworOjEwMTY3MjAwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwODAxQkUwREU1RgorOjBFMTY4MjAwRkQ5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDFECis6MTAxNjkwMDA5MDIwMDlFMDU0RkRGMDkwN0ZDOUYwMDIxMzQzOTAyMEEwCis6MTAxNkEwMDAxMkUwNTQzRjIwRTIzQTIwRTEwQjIwRTQwQjIwRTUxNDQ1Cis6MTAxNkIwMDA2MDA5MDIxMzQzMDIxNzg3MDIxMzQzNDM4MjA0RTBGNUQzCis6MTAxNkMwMDAzQzAyMTM0MzQzODIwNEUwNDMyRjAxMDIxMzQzNTM4MjNECis6MTAxNkQwMDBGODQzODIwNUUwNDIzODUzODJGQkUwNTRGQkYwMDIxM0VBCis6MTAxNkUwMDA0MzMwRTEwMjgwRThGNTg1RTUzMjMwRTIwQTUzODJGOEMyCis6MTAxNkYwMDA0MzgyMDRFMDU0RkVGMEU1ODUyMEUzNTY5MDIwNTA3NEM4Cis6MTAxNzAwMDAwMkYwOTAyMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjA5MEE1Cis6MTAxNzEwMDA3RkUzMDU4NjkwN0Q4MDA1ODZFNTg1RjBBM0U1ODRGMDZFCis6MTAxNzIwMDAwNTg2OTA3RkU1RTU0MUZEMDMwMzAzRkVGMEYwRjBGMDUwCis6MTAxNzMwMDBGMEYwRjBGMERFRjY5MDdGRTJFMDU0QkZGMDkwMjA1ODM5Cis6MTAxNzQwMDA3NDAwRjA5MDdGQkJFREYwOTAyMDExRTA1NEZFRjAwMkE5Cis6MTAxNzUwMDAxMzQzN0Y0MDkwN0Q4MDA1ODY5MDIwMTBFNTg0RkUyNDExCis6MTAxNzYwMDAwNUZEOEQ4NEUwOEU4NDMwRTAwOUUwMDU4NkYwQTMwNTU4Cis6MTAxNzcwMDA4NkRGRUYwNTg2QzM3NDQwOUY5MDdGQkJGMDA1ODZBMzhDCis6MTAxNzgwMDBFMDU0RkVGMDAyMTM0MzUzMkZGQUU1MjU2MDA4NzUyNTU3Cis6MTAxNzkwMDAwMEQyRTdGRTgwMEE5MDdGQ0JFMEZFNzAwMzAyMTgyMUEyCis6MTAxN0EwMDA5MDIwNTA3NDAyRjA5MDIwNTg3NDAxRjA5MDdGRTJFMDk1Cis6MTAxN0IwMDA0NDQwRjA5MDdGRTMwNTg2OTA3RDQwMDU4NkU1ODVGMDA2Cis6MTAxN0MwMDBBM0U1ODRGMDA1ODY5MDdGRTVFRTMwRTcwODA1ODZFMDI2Cis6MTAxN0QwMDAyNDM4RjAwNTg2RUU1NDdGRkU1NDA3RkJFRTU0Nzg2MDAzCis6MTAxN0UwMDAzMDAzMDMwMzMwRTMwNDc0MDc3QjA4RkRGQ0UwRTBFMDEyCis6MTAxN0YwMDBFMEUwRTBFMEUwRERGNkVCRkU2MDE5RUM2NDA3NzAxMTdDCis6MTAxODAwMDA4QjI1OTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjA4MDY4Cis6MTAxODEwMDAxQkUwREVGRDkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEEyCis6MTAxODIwMDBGMDkwMjAxMUUwNTRGREYwOTA3RkNCRjAwMjEzNDM5MDM0Cis6MTAxODMwMDAyMDFBRTA1NDNGMjBFMjNBMjBFMTBCMjBFNDBCMjBFNTlGCis6MTAxODQwMDAxNDYwMDkwMjEzNDMwMjE5MTgwMjEzNDM0MzgyMDRFMDhGCis6MTAxODUwMDBGNTNEMDIxMzQzNDM4MjA0RTA0MzMwMDEwMjEzNDM1MzM2Cis6MTAxODYwMDA4MkY4NDM4MjA1RTA0MjM5NTM4MkZCRTA1NEZCRjAwMkU4Cis6MTAxODcwMDAxMzQzMzBFMTAyODBFOEY1ODVFNTMyMzBFMzBBNTM4MjE0Cis6MTAxODgwMDBGODQzODIwNEUwNTRGRUYwRTU4NTIwRTM1NjkwMjA1MEIyCis6MTAxODkwMDA3NDAzRjA5MDIwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMDJGCis6MTAxOEEwMDA5MDdGRTMwNTg2OTA3RDAwMDU4NkU1ODVGMEEzRTU4NEJECis6MTAxOEIwMDBGMDA1ODY5MDdGRTVFNTQyRkQwMzAzMDNGRUYwRjBGMEJFCis6MTAxOEMwMDBGMEYwRjBGMEYwREVGNjkwN0ZFMkUwNTRCRkYwOTAyMDEwCis6MTAxOEQwMDA1ODc0MDBGMDkwN0ZCREVERjA5MDIwMTlFMDU0RkVGMEI4Cis6MTAxOEUwMDAwMjEzNDM3RjQwOTA3RDAwMDU4NjkwMjAxOEU1ODRGRTFBCis6MTAxOEYwMDAyNDA1RkQ4RDg0RTA4RTg0MzBFMDA5RTAwNTg2RjBBM0E4Cis6MTAxOTAwMDAwNTg2REZFRjA1ODZDMzc0NDA5RjkwN0ZCREYwMDU4Njk2Cis6MTAxOTEwMDBBM0UwNTRGRUYwMDIxMzQzNTMzMEZBRTUyNjYwMDg3NTQ1Cis6MTAxOTIwMDAyNjAwRDJFN0ZFODAwQTkwN0ZDREUwRkU3MDAzMDIxOTA4Cis6MTAxOTMwMDBCMjkwMjA1MDc0MDNGMDkwMjA1ODc0MDFGMDkwN0ZFMjMwCis6MTAxOTQwMDBFMDQ0NDBGMDkwN0ZFMzA1ODY5MDdDQzAwNTg2RTU4NTA1Cis6MTAxOTUwMDBGMEEzRTU4NEYwMDU4NjkwN0ZFNUVFMzBFNzA4MDU4Njg0Cis6MTAxOTYwMDBFMDI0MzhGMDA1ODZFRTU0N0ZGRTU0MDdGQkVFNTQ3OEYxCis6MTAxOTcwMDA2MDMwMDMwMzAzMzBFMzA0NzQwNzdCMDhGREZDRTBFMDAwCis6MTAxOTgwMDBFMEUwRTBFMEUwRTBEREY2RUJGRTYwMTlFQzY0MDc3MDFCCis6MTAxOTkwMDAxMThCMjY5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDQ1Cis6MTAxOUEwMDA4MDFCRTBERUZEOTA3RkUyRTA1NEJGRjA5MDIwNTg3NDkxCis6MTAxOUIwMDAwMEYwOTAyMDE5RTA1NEZERjA5MDdGQ0RGMDAyMTM0MzI5Cis6MDExOUMwMDAzMkY0Cis6MDQxOUMxMDBBRDA3QUMwNkJDCis6MTAxOUM1MDA3OTA2RUQyNDA0RjU4MkU0M0NGNTgzRTBGQUEzRTBGQjE3Cis6MTAxOUQ1MDA0QTcwMDMwMjFCMDlFOUI0MDcwMDQwMDMwMjFBREI5MEIxCis6MTAxOUU1MDAxOUVCRjgyODI4NzMwMjFBQjkwMjFBNzEwMjFBNUEwMjU5Cis6MTAxOUY1MDAxQTQwMDIxQTJGMDIxQTFBMDIxQTAwOTA3RkE1RTA0NDEzCis6MTAxQTA1MDA4MEYwOEQ4MjhDODNBM0UwRkYyNUUwNDRBMDkwN0ZBNjIzCis6MTAxQTE1MDBGMDE5MDIxQURCMTk4RDgyOEM4M0UwQzM5NDIwNDAwQUU5Cis6MTAxQTI1MDBBM0EzRTA5MDdGQTZGMDAyMUFEQjhEODI4QzgzQTNBMzhCCis6MTAxQTM1MDBFMEEzRTA5MDdGQTZGMDE5MDIxQURCOTA3RkE1RTA0NEIxCis6MTAxQTQ1MDA4MEYwOEQ4MjhDODNBM0UwRkYyNUUwNDRBMTkwN0ZBNkUyCis6MTAxQTU1MDBGMDE5MDIxQURCRUI2NDAxNEE3MDA4OTA3RkE1RTA0NDk3Cis6MTAxQTY1MDAyMEYwMTk5MDdGQTZFMEY1NTkxOTgwNkFFRDI0MDRGNTU4Cis6MTAxQTc1MDA4MkU0M0NGNTgzRTBGRUEzRTA2NDAyNEU3MDA4OTA3RkFCCis6MTAxQTg1MDBBNUUwNDQyMEYwMTk5MDdGQTZFMEZGRUQyNDA2RjU4MjNECis6MTAxQTk1MDBFNDNDRjU4M0U0NzVGMDAxMTJBMjk3ODVGMDgyRjU4M0E1Cis6MTAxQUE1MDBFRkYwRUQyNDA0RjU4MkU0M0NGNTgzNzRGRkY1RjAxMkM0Cis6MTAxQUI1MDBBMjgxODAyMjkwN0ZBNUUwNDQ0MEYwOTA3RkE2RTBGRkMwCis6MTAxQUM1MDBFRDI0MDZGNTgyRTQzQ0Y1ODNFMEZBQTNFMEY1ODI4QThECis6MTAxQUQ1MDA4M0VGRjA3RjA4MjI5MDdGQTVFMEY1NTkzMEUwRjczMERECis6MTAxQUU1MDBFMjA3RTA0NDQwRjA3RjA2MjJFOUQzOTQwMjUwMDMwMjY2Cis6MTAxQUY1MDAxOUM3RTU1OTMwRTEwMzAyMTlDNzkwN0ZBNUUwNDQ0MEI1Cis6MDYxQjA1MDBGMDdGMDcyMjdGMDhCQgorOjAxMUIwQjAwMjJCNworOjEwMUIwQzAwRTUzM0MzOTQwMTUwMUM3RjA1N0UwMDEyMDlBRTdGMDJBMQorOjEwMUIxQzAwN0RGRjEyODJFQTdGMDU3RTAwMTIwOUFFN0YwMzdERkZGNgorOjA0MUIyQzAwMTI4MkVBMjIxNQorOjEwODAwMDAwN0JGRjdBMTI3OTFCOTAwMDA0MTJBMjU0RkQ4QjUwNzVFRAorOjEwODAxMDAwNTExMjc1NTIyNEU0OTA3RkUxRjA5MDdGRTBGMEY1NEUyQworOjEwODAyMDAwRjU0RjkwMDJBRUYwOTA3RkRGRjA5MDdGREVGMDkwN0YxMgorOjEwODAzMDAwQTk3NEZGRjA5MDdGQUFGMEU0RkNFQzI1RTAyNEI0RjVFRAorOjEwODA0MDAwODJFNDM0N0ZGNTgzRTRGMDBDQkMxMEVFRTQ5MDdGREQzNQorOjEwODA1MDAwRjBBRjA1MURFRjcwMDMwMjgxQzZBQjUwQUE1MUE5NTJDMworOjEwODA2MDAwOTAwMDAxMTJBMjU0NjQwNTYwMDMwMjgxQjU5MDAwMDNFMAorOjEwODA3MDAwMTJBMjU0NjQwMTYwMDMwMjgxM0M5MDAwMDIxMkEyNTRENworOjEwODA4MDAwRkY1NDdGRkNEMzk0MDc1MDAzMDI4MTE2RUNDMzk0MTA3NQorOjEwODA5MDAwNDAwMzAyODExNkVGMzBFNzQyRTU0RkFFNEU3ODAyQ0U0NAorOjEwODBBMDAwQzMxM0NFMTNEOEY5RkY3NEYwMkNGNTgyRTQzNDdGRjVCNgorOjEwODBCMDAwODNFRkYwOTA3RkUwRTBGRkVDMjRGOEZFNzQwMUE4MDY2NworOjEwODBDMDAwMDg4MDAyQzMzM0Q4RkM0RjkwN0ZFMEYwOTAwMkFFRTAwRQorOjEwODBEMDAwMDRGMDkwN0ZEREUwNDQ4MEYwODAzRUU1NEZBRTRFNzhDNgorOjEwODBFMDAwMDJDRUMzMTNDRTEzRDhGOUZGNzRFODJDRjU4MkU0MzQyMgorOjEwODBGMDAwN0ZGNTgzRUZGMDkwN0ZFMUUwRkZFQzI0RjhGRTc0MDE2MAorOjEwODEwMDAwQTgwNjA4ODAwMkMzMzNEOEZDNEY5MDdGRTFGMDkwMDJBQworOjEwODExMDAwQUVFMDA0RjA4MDAzN0ZGRjIyOTAwMDA0MTJBMjU0MjVGOQorOjEwODEyMDAwNEZGNTRGRTQzNTRFRjU0RTkwMDAwNTEyQTI1NEZFRTQ5MworOjEwODEzMDAwMjU0RkY1NEZFRTM1NEVGNTRFMDI4MUI4QUI1MEFBNTFBMgorOjEwODE0MDAwQTk1MjkwMDAwMzEyQTI1NEZGNjQwMjYwMDVFRjY0MDM3OQorOjEwODE1MDAwNzA2MDkwMDAwMjEyQTI1NEZGNTQ3RkZDRDM5NDA3NTAyOQorOjEwODE2MDAwNEVFRjMwRTcxRTkwN0ZERUUwRkY3NDAxQTgwNDA4ODAyOAorOjEwODE3MDAwMDJDMzMzRDhGQ0ZFNEY5MDdGREVGMDkwN0ZBQ0UwNEUyMAorOjEwODE4MDAwRjA4MDM1OTA3RkRGRTBGRjc0MDFBODA0MDg4MDAyQzMwRgorOjEwODE5MDAwMzNEOEZDRkU0RjkwN0ZERkYwOTA3RkFERTA0RUYwRUNFNworOjEwODFBMDAwMjVFMDI0QzVGNTgyRTQzNDdGRjU4M0VDRjA4MDA5N0Y3NworOjEwODFCMDAwRkYyMjdGRkYyMjdGRkYyMjc0MDcyNTUyRjU1MkU0MzUwQworOjEwODFDMDAwNTFGNTUxMDI4MDUxMjAwMzBEOTAwMkFFRTA2MDA3OTBGRQorOjA4ODFEMDAwN0ZBRUUwNDQwMkYwN0YwMEU1Cis6MDE4MUQ4MDAyMjg0Cis6MDQ4MUQ5MDA4RTU5OEY1QUQyCis6MTA4MUREMDA3NTVCMDNFNTVBMjQwNEY1ODJFNDM1NTlGNTgzRTBGRTE5Cis6MTA4MUVEMDBBM0UwNEU3MDAzMDI4MkU3RTU1QjYwNEUxNDYwMzgxNDI1Cis6MTA4MUZEMDA2MDIwMTQ2MDAzMDI4MjhCOTA3RkE1RTA0NDgwRjA4NTlGCis6MTA4MjBEMDA1QTgyODU1OTgzQTNFMEZGMjVFMDQ0QTA5MDdGQTZGMDE0Cis6MTA4MjFEMDA4MDZDODU1QTgyODU1OTgzRTBDMzk0MjA0MDA5QTNBM0JECis6MTA4MjJEMDBFMDkwN0ZBNkYwODA1NzE1NUI4NTVBODI4NTU5ODNBMzEwCis6MTA4MjNEMDBBM0UwQTNFMDkwN0ZBNkYwODA0NEU1NUEyNDA2RjU4MkUyCis6MTA4MjREMDBFNDM1NTlGNTgzRTQ3NUYwMDExMkEyOTc4NUYwODJGNUI2Cis6MTA4MjVEMDA4M0UwOTA3RkE2RjA5MDdGQTVFMDQ0NDBGMEU1NUEyNDlFCis6MTA4MjZEMDAwNEY1ODJFNDM1NTlGNTgzNzRGRkY1RjAxMkEyODE4NThBCis6MTA4MjdEMDA1QTgyODU1OTgzQTNBM0U0NzVGMDAxMTJBMjgxOTA3RkUwCis6MTA4MjhEMDBBNUUwRjU1QzMwRTBGNzMwRTIwN0UwNDQ0MEYwN0YwNjEyCis6MTA4MjlEMDAyMkU1NUMyMEUxMEE5MDdGQTVFMDQ0NDBGMDdGMDcyMkIzCis6MTA4MkFEMDBFNTVCNzAzMTdGMDE3RTAwMTIwOUFFOTA3RkE1RTA0NDQxCis6MTA4MkJEMDA4MEYwODU1QTgyODU1OTgzQTNFMEZGMjVFMDQ0QTA5MDg0Cis6MTA4MkNEMDA3RkE2RjA5MDdGQTVFMEY1NUMzMEUwRjczMEUxRDU3NTQ1Cis6MEM4MkREMDA1QjAzMDI4MUUwMTU1QjAyODFFMDdGMDg3QQorOjAxODJFOTAwMjI3MgorOjAyODJFQTAwQUUwN0RECis6MTA4MkVDMDA3QzAyRUMxNDYwMTUxNDcwMUU5MDdGQTVFMDQ0ODBGMEE1Cis6MTA4MkZDMDBFRTI1RTA0NDQwOTA3RkE2RjA4MDBDOTA3RkE2RURGMDM4Cis6MTA4MzBDMDA5MDdGQTVFMDQ0NDBGMDkwN0ZBNUUwRkIzMEUwRjhCQzA2Cis6MTA4MzFDMDAwMjBBMjBFMTA3RTA0NDQwRjA3RjA3MjJFQjMwRTIwQTNBCis6MEU4MzJDMDA5MDdGQTVFMDQ0NDBGMDdGMDYyMkRDQjY3RjA4N0IKKzowMTgzM0EwMDIyMjAKKzoxMDgzM0IwMEMwRTBDMDgzQzA4MkMyQTk5MDAzMDA3NDE5RjBEMkE5MTcKKzowRjgzNEIwMDUzOTE3RjkwMDFDNEU0RjBEMDgyRDA4M0QwRTAzMjEwCis6MTA4MzVBMDBFRjc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBQjgyRkFGNTI0Cis6MTA4MzZBMDA4M0EzRTRGMDhCODI4QTgzQTNBM0EzRTBGNTYxNzRCRjlECis6MTA4MzdBMDBGMDhCODI4QTgzQTNBM0UwNDQxMEYwOEI4MjhBODNBM0MyCis6MTA4MzhBMDBBM0EzRTRGMDhCODI4QTgzQTNGMEY5RUQ2MDFENzQwMTQ0Cis6MTA4MzlBMDA3RTAwQTgwNzA4ODAwNUMzMzNDRTMzQ0VEOEY5RkZFNEEwCis6MTA4M0FBMDBFRjU1MzE2MDA0NzkwOTgwMDI3OTBEOEI4MjhBODNBM0EzCis6MTA4M0JBMDBBM0EzNzRCRkYwOEI4MjhBODNBM0EzRTA1NEVGRjA4QjRDCis6MTA4M0NBMDA4MjhBODNBM0EzQTNFNTYxRjBBRTAyQUYwMzhGODI4RUY0Cis6MDQ4M0RBMDA4M0EzRTlGMEEwCis6MDE4M0RFMDAyMjdDCis6MDQ4M0RGMDA4RjYxOEQ2MkJCCis6MTA4M0UzMDBFNEY1Njc3NDNGMkZGODc2MDg3RjgwN0UyNTdEMDA3QzU3Cis6MTA4M0YzMDAwMEFCNjZBQTY1QTk2NEE4NjNEMzEyQTNCMzQwMjY3RjIyCis6MTA4NDAzMDAwMDdFOTY3RDAwN0MwMEE4NjNEMzEyQTNCMzUwMEM3NTQ1Cis6MTA4NDEzMDA2NzQwNzQzRjI1NjFGODc2MTA4MDBBNzU2NzgwNzQzRjYyCis6MTA4NDIzMDAyNTYxRjg3NjM4RTU2NzQ1NjI0NDAxRkZFNTYxNzVGMDNCCis6MEQ4NDMzMDAwOEE0MjQwMkY1ODJFNDM0MjBGNTgzRUZGMDY0Cis6MDE4NDQwMDAyMjE5Cis6MTA4NDQxMDA4RjgyOEU4M0UwMTRGNTU3QzM5NDA0NDAwMzdGRkYyMjhCCis6MTA4NDUxMDBFNTU3NzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFGODJGNUQ1Cis6MTA4NDYxMDA1ODhGNTlFNTU3MjVFMDI0QzZGNTgyRTQzNDdGRjU4MzFBCis6MTA4NDcxMDBFMDIwRTEwRkU1NTcyNUUwMjRDN0Y1ODJFNDM0N0ZGNURDCis6MTA4NDgxMDA4M0U0RjA3NDIzMjU1N0Y4RTRGNkU1NTkyNDA0RjU4MkQyCis6MTA4NDkxMDBFNDM1NThGNTgzRTA0NDAzRjBFNTU3NzVGMDBEQTQyNDY1Cis6MTA4NEExMDAwMkY1ODJFNDM0MDNGNTgzRTBGQ0EzRTBGREEzRTBGRUUyCis6MTA4NEIxMDBBM0UwRjU2NjhFNjU4RDY0OEM2MzdEMDZBRjU3MTI4M0VDCis6MTA4NEMxMDBERkFGNTc3RDAxMTI4MzVBODU1OTgyODU1ODgzQTNBMzUzCis6MTA4NEQxMDBFMDIwRTA0M0UwRkZFNTU5MjQwNUY1ODJFNDM1NThGNTU1Cis6MTA4NEUxMDA4M0UwRTU1OTI0MDZGNTgyRTQzNTU4RjU4M0UwRkZFNTlDCis6MTA4NEYxMDA1Nzc1RjAwREE0MjQwMkY1ODJFNDM0MDNGNTgzRTBGQzAyCis6MTA4NTAxMDBBM0UwRkRBM0UwRkVBM0UwRjU2NjhFNjU4RDY0OEM2M0I4Cis6MTA4NTExMDA3RDA2QUY1NzEyODNERjc0RjgyNTU3RjU4MkU0MzQwMkU0Cis6MTA4NTIxMDBGNTgzRTRGMEU1NTcyNUUwRkZDMzc0MEM5Rjc1RjA0MDM3Cis6MTA4NTMxMDBBNDI0NDBGNTgyRTVGMDM0N0JBRjgyRkVFNTU3MjVFMEM3Cis6MTA4NTQxMDAyNEVGRjU4MkU0MzQwMkY1ODNFRUYwQTNFRkYwQUY1N0E4Cis6MEY4NTUxMDA3NDAxQTgwNzA4ODAwMkMzMzNEOEZDNDIzNDdGMDBBRQorOjAxODU2MDAwMjJGOAorOjEwODU2MTAwOEY4MjhFODNFMDE0RjU1N0MzOTQwNDQwMDM3RkZGMjI2QQorOjEwODU3MTAwQUY1N0U0RkQxMjgzNUE3NEY4MjU1N0Y1ODJFNDM0MDJBQgorOjEwODU4MTAwRjU4M0U0RjBFNTU3NzVGMDA4QTQyNDAwRjU4MkU0MzQ5RQorOjEwODU5MTAwMjBBRjgyRjU1OThGNUFGNTgzRTU4MjI0MDRGNTgyRTRGMAorOjEwODVBMTAwMzU4M0Y1ODNFMDU0RkNGMEU1NTc3NUYwMERBNDI0MENGOAorOjEwODVCMTAwRjU4MkU0MzQwM0Y1ODNFNEYwRTU1Nzc1RjAwREE0MjQ2NgorOjEwODVDMTAwMDJGNTgyRTQzNDAzRjU4M0UwRkNBM0UwRkRBM0UwRkVDMQorOjEwODVEMTAwQTNFMEY1NjY4RTY1OEQ2NDhDNjM3RDA2QUY1NzEyODNDQgorOjEwODVFMTAwREZFNTVBMjQwNUY1ODJFNDM1NTlGNTgzRTAzMEUwMDlFOQorOjEwODVGMTAwODU1QTgyODU1OTgzRTBGNTU4QUY1Nzc0MDFBODA3MDg1OQorOjEwODYwMTAwODAwMkMzMzNEOEZDRjQ1MjM0RTU1NzI1RTAyNEM2RjU4MworOjEwODYxMTAwODJFNDM0N0ZGNTgzRTAyMEUxMEZFNTU3MjVFMDI0QzdBQworOjBCODYyMTAwRjU4MkU0MzQ3RkY1ODNFNEYwN0YwMDc1Cis6MDE4NjJDMDAyMjJCCis6MDQ4NjJEMDA4RTU3OEY1ODdECis6MTA4NjMxMDA4RjgyOEU4M0UwMTRGNTU5QzM5NDA0NDAwMzdGRkYyMjk3Cis6MTA4NjQxMDBFNTU5NzVGMDA4QTQyNDAxRjU4MkU0MzQyMEY1ODNFMEFFCis6MTA4NjUxMDA1NDAzNzA2Njg1NTg4Mjg1NTc4M0EzRTAzMEUwMjhFNThFCis6MTA4NjYxMDA1OTc1RjAwREE0MjQwMkY1ODJFNDM0MDNGNTgzRTBGQzhFCis6MTA4NjcxMDBBM0UwRkRBM0UwRkVBM0UwRjU2NjhFNjU4RDY0OEM2MzQ3Cis6MTA4NjgxMDA3RDAyQUY1OTEyODNERjg1NTg4Mjg1NTc4M0EzRTAzMDdECis6MTA4NjkxMDBFMTI4RTU1OTc1RjAwREE0MjQwMkY1ODJFNDM0MDNGNUNGCis6MTA4NkExMDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRjU2NjhFNjU4RDBCCis6MEM4NkIxMDA2NDhDNjM3RDA0QUY1OTEyODNERjdGMDBFRQorOjAxODZCRDAwMjI5QQorOjEwODZCRTAwOEY4MjhFODNDMDgzQzA4MkUwRkRBM0EzQTNFMEZDRUQ3NgorOjEwODZDRTAwNkNEMDgyRDA4M0YwOEY4MjhFODNBM0EzQTNDMDgzQzA4RAorOjEwODZERTAwODJFMEZEOEY4MjhFODNFMEZDRUQ2Q0QwODJEMDgzRjA0MQorOjEwODZFRTAwOEY4MjhFODNDMDgzQzA4MkEzQTNBM0UwRkRFQzZERDBFNgorOjEwODZGRTAwODJEMDgzRjA4RjgyOEU4M0EzQzA4M0MwODJFMEZEOEZGMQorOjEwODcwRTAwODI4RTgzQTNBM0UwRkNFRDZDRDA4MkQwODNGMDhGODJBNworOjEwODcxRTAwOEU4M0EzQTNDMDgzQzA4MkUwRkQ4RjgyOEU4M0EzRTBFRAorOjEwODcyRTAwRkNFRDZDRDA4MkQwODNGMDhGODI4RTgzQTNDMDgzQzA4OQorOjEwODczRTAwODJFMEZEOEY4MjhFODNBM0EzRTBGRkVENkZEMDgyRDAwNworOjAzODc0RTAwODNGMDIyOTMKKzowNDg3NTEwMEFEMDdBQzA2QkUKKzoxMDg3NTUwMDc5MEQ4RDgyOEM4M0UwMTRGRUMzOTQwNDQwMDM3RkZGNjIKKzoxMDg3NjUwMDIyOEM1NzhENThFRTc1RjAwREE0MjQwMUY1ODJFNDM0NjIKKzoxMDg3NzUwMDAzQUY4MkZFQUQwMTE5RUQ2MDI0MEZFRkFDMDY3MDAxNjkKKzoxMDg3ODUwMDBFMTRGNTgyOEM4M0UwRkQwNTU4RTU1OEFBNTc3MDAyNTIKKzoxMDg3OTUwMDA1NTcxNEY1ODI4QTgzRTA2RDYwRDk3RjAxMjI3RjAwMzkKKzowMTg3QTUwMDIyQjEKKzowNDg3QTYwMDhFNTc4RjU4MDMKKzoxMDg3QUEwMDhGODI4RTgzRTAxNEY1NUVDMzk0MDQ0MDAzN0ZGRjIyMTgKKzoxMDg3QkEwMEU1NUU3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUY4MkY1NjIKKzoxMDg3Q0EwMDVGOEY2MDg1NTg4Mjg1NTc4M0EzRTBGQ0EzRTBGREEzRjEKKzoxMDg3REEwMEUwRkVBM0UwRkY3QjA4N0EwMDc5MDA3ODAwRDMxMkEzQjkKKzoxMDg3RUEwMEIzNDAxMDg1NTg4Mjg1NTc4M0EzMTJBM0ZBMDAwMDAwNkMKKzoxMDg3RkEwMDA4ODAyRTg1NTg4Mjg1NTc4M0EzRTBGQ0EzRTBGREEzNTkKKzoxMDg4MEEwMEUwRkVBM0UwRkY3QjAwN0EwODc5MDc3ODAwQzMxMkEzOTEKKzoxMDg4MUEwMEIzNTAwRTg1NTg4Mjg1NTc4M0EzMTJBM0ZBMDAwNzA4MUUKKzoxMDg4MkEwMDAwODU1ODgyODU1NzgzQTNFMEY4QTNFMEY5QTNFMEZBMEMKKzoxMDg4M0EwMEEzRTBGQjdGMDA3RTUwN0Q0NjdDMDAxMkEzMjE4RjVDNjMKKzoxMDg4NEEwMDhFNUI4RDVBOEM1OTdCMEE3QTAwNzkwMDc4MDAxMkEzQzQKKzoxMDg4NUEwMDIxQUYwMzhGNURBRjVDQUU1QkFENUFBQzU5N0IwQTdBMzAKKzoxMDg4NkEwMDAwNzkwMDc4MDAxMkEzMjE4RjVDOEU1QjhENUE4QzU5OTcKKzoxMDg4N0EwMEU1NURDMzk0MDU0MDE1RTU1QzI0MDFGNTVDRTQzNTVCRDAKKzoxMDg4OEEwMEY1NUJFNDM1NUFGNTVBRTQzNTU5RjU1OTg1NjA4Mjg1MjAKKzoxMDg4OUEwMDVGODNBM0U0RjA4NTYwODI4NTVGODNBM0EzQTNFMDQ0OUEKKzoxMDg4QUEwMDgwRjA4NTYwODI4NTVGODNFNTVDRjBBRjVDQUU1QkFEOEUKKzoxMDg4QkEwMDVBQUM1OTc4MDgxMkEzQzQ4NTYwODI4NTVGODNBM0VGRjYKKzoxMDg4Q0EwMEYwODU2MDgyODU1RjgzQTNBM0EzRTA1NDdGRjBFNEY1N0IKKzoxMDg4REEwMDVERTU1ODI0MEJGNTgyRTQzNTU3RjU4M0UwRkYzMEUwNzcKKzoxMDg4RUEwMDIzNTQwMUYwRTU2MDI0MDRGNTgyRTQzNTVGRjU4M0UwNjIKKzoxMDg4RkEwMDU0RkRGMEFGNUU3NDAxQTgwNzA4ODAwMkMzMzNEOEZDQTgKKzoxMDg5MEEwMDQyMjI4MDM2NzQwMTdFMDBBODVFMDg4MDA1QzMzM0NFRjkKKzoxMDg5MUEwMDMzQ0VEOEY5RkZFNEVGNTUyMjYwMUZFNTYwMjQwNEY1NTEKKzoxMDg5MkEwMDgyRTQzNTVGRjU4M0UwNDQwMkYwQUY1RTc0MDFBODA3ODQKKzoxMDg5M0EwMDA4ODAwMkMzMzNEOEZDRjQ1MjIyRTU1ODI0MDhGNTgyOTEKKzoxMDg5NEEwMEU0MzU1N0Y1ODNFMEZGQjQ2MjA1NDM1RDBBODAxQUVGMDgKKzoxMDg5NUEwMEI0NzIwNTQzNUQwODgwMTFFRkI0NzQwNTQzNUQwMjgwNkIKKzoxMDg5NkEwMDA4RUY2NDZFNjAwMzdGRkYyMkU1NTgyNDBCRjU4MkU0NkEKKzoxMDg5N0EwMDM1NTdGNTgzRTBGRjMwRTMwMzQzNUQ4MEVGMzBFNzEyQkMKKzoxMDg5OEEwMDQzNUQ0MEU1NjAyNDA0RjU4MkU0MzU1RkY1ODNFMDQ0MDUKKzoxMDg5OUEwMDAyRjBFNTU4MjQwQkY1ODJFNDM1NTdGNTgzRTAzMEUxMUYKKzoxMDg5QUEwMDIwQUY1RTc0MDFBODA3MDg4MDAyQzMzM0Q4RkM0MjMyQTQKKzoxMDg5QkEwMEU1NjAyNDA0RjU4MkU0MzU1RkY1ODNFMDQ0MDFGMDgwNDQKKzoxMDg5Q0EwMDEwQUY1RTc0MDFBODA3MDg4MDAyQzMzM0Q4RkNGNDUyQzIKKzoxMDg5REEwMDMyRTU1ODI0MEJGNTgyRTQzNTU3RjU4M0UwRkYzMEU0OUQKKzoxMDg5RUEwMDExQUU1RTc0MDFBODA2MDg4MDAyQzMzM0Q4RkM0MjMxNzYKKzoxMDg5RkEwMDgwMTBBRTVFNzQwMUE4MDYwODgwMDJDMzMzRDhGQ0Y0NjYKKzoxMDhBMEEwMDUyMzFFRjIwRTEwMzMwRTQwM0U0RjU1RDg1NjA4Mjg1QUQKKzoxMDhBMUEwMDVGODNBM0EzQTM3NEJGRjA4NTYwODI4NTVGODNBM0EzNEEKKzoxMDhBMkEwMEU0RjBFNTVERjBFNTU4MjQwQUY1ODJFNDM1NTdGNTgzNkMKKzoxMDhBM0EwMEUwRkZFNTYwMjQwNEY1ODJFNDM1NUZGNTgzRUZGMEU1QjUKKzoxMDhBNEEwMDU4MjQwQUY1ODJFNDM1NTdGNTgzRTBGRkU1NjAyNDA1RUEKKzoxMDhBNUEwMEY1ODJFNDM1NUZGNTgzRUZGMEU1NTgyNDA5RjU4MkU0MDEKKzoxMDhBNkEwMDM1NTdGNTgzRTBGRkU1NjAyNDA2RjU4MkU0MzU1RkY1QzYKKzoxMDhBN0EwMDgzRUZGMEU1NTgyNDA5RjU4MkU0MzU1N0Y1ODNFMEZGRTIKKzoxMDhBOEEwMEU1NjAyNDA3RjU4MkU0MzU1RkY1ODNFRkYwODU2MDgyQkYKKzoxMDhBOUEwMDg1NUY4M0EzQTNBM0U0RjA4NTYwODI4NTVGODNBM0EzOTQKKzoxMDhBQUEwMEYwODU1ODgyODU1NzgzQTNFMEZDQTNFMEZEQTNFMEZFOEUKKzoxMDhBQkEwMEEzRTBGNTY2OEU2NThENjQ4QzYzN0QwNkFGNUUxMjgzRDYKKzoxMDhBQ0EwMERGNzU1RDA4RTU1ODI0MENGNTgyRTQzNTU3RjU4M0UwMzcKKzoxMDhBREEwMDYwMDM0MzVEMTBFNTYwMjQwNEY1ODJFNDM1NUZGNTgzQTUKKzoxMDhBRUEwMEUwNTQwMzQ1NURGMEU1NTgyNDA1RjU4MkU0MzU1N0Y1NzEKKzoxMDhBRkEwMDgzRTBGRUMzOTQwNTQwMDZFRUQzOTQwODQwMDM3RkZGNEIKKzoxMDhCMEEwMDIyRTU1ODI0MDZGNTgyRTQzNTU3RjU4M0UwRkRDMzk0M0YKKzoxMDhCMUEwMDAxNDAwNkVERDM5NDAyNDAwMzdGRkYyMkVEMTRGRjI1QTYKKzoxMDhCMkEwMEUwMjVFMEZGRUUyNEZCNEZGNTVERTU1ODI0MDdGNTgyQ0EKKzoxMDhCM0EwMEU0MzU1N0Y1ODNFMDI0RDA2MDE4MTQ2MDFBMjRDMzYwMjIKKzoxMDhCNEEwMDFFMTQ2MDA5MjQwQTcwMTQ0MzVEMTg4MDEyNDM1RDA4REMKKzoxMDhCNUEwMDgwMEQ0MzVEMzg4MDA4NDM1RDI4ODAwMzdGRkYyMjg1QUUKKzoxMDhCNkEwMDYwODI4NTVGODNBM0EzQTNFNTVERjA3NDAxN0UwMEE4RkMKKzoxMDhCN0EwMDVFMDg4MDA1QzMzM0NFMzNDRUQ4RjlGRkU0RUY1NTM0MEYKKzoxMDhCOEEwMDYwMDdBRjVFN0QwMTEyODM1QUFBNTdBOTU4N0IwMUMwQkMKKzoxMDhCOUEwMDAzQzAwMUU1NUU3NUYwMERBNDI0MDFGOTc0MDMzNUYwRjQKKzoxMDhCQUEwMEE4MDFGQ0FEMDNEMDAxRDAwMzdFMDA3RjBEMTJBMjEyRjIKKzowMjhCQkEwMDdGMDAzQQorOjAxOEJCQzAwMjI5NgorOjEwOEJCRDAwOEY4MjhFODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyRUU2OAorOjEwOEJDRDAwNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFEODJGQzkwMDFGOAorOjEwOEJERDAwMkM3NDA4RjBFRTA0QTNGMEU0QTNGMDhEODI4QzgzRTVGMQorOjEwOEJFRDAwODIyNDA2RjU4MkU0MzU4M0Y1ODNFMDkwMDEyRkYwOEQyNAorOjEwOEJGRDAwODI4QzgzRTU4MjI0MDVGNTgyRTQzNTgzRjU4M0UwNTQ4OAorOjEwOEMwRDAwMUU5MDAxMzBGMDc0MkQyRUY4RTZBM0YwQUYwNjc0MDExRQorOjEwOEMxRDAwQTgwNzA4ODAwMkMzMzNEOEZDRjU1N0U1MzNDMzk0MDE4OAorOjEwOEMyRDAwNDAwRDkwMjA3OEUwNTQwRjc1NTgwMEY1NTk4MDA5N0Y1QworOjEwOEMzRDAwMDIxMjExMjc4RTU4OEY1OUMzRTU1ODY0ODA5NDgwNDBENQorOjEwOEM0RDAwREFFNTU3NTU1OTkwMDEzMkYwN0UwMTdGMkM3RDA3MTJFMAorOjA0OEM1RDAwOTE2QTdGMDA5OQorOjAxOEM2MTAwMjJGMAorOjEwOEM2MjAwOEY4MjhFODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyRUVDMgorOjEwOEM3MjAwNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFGODJGRTkwMDE0RQorOjEwOEM4MjAwMzM3NDBBRjA4RjgyOEU4M0U1ODIyNDA0RjU4MkU0MzUwMAorOjEwOEM5MjAwODNGNTgzRTA5MDAxMzRGMDdFMDE3RjMzN0QwMjEyOTFFRgorOjAzOENBMjAwNkE3RjAwRTYKKzowMThDQTUwMDIyQUMKKzowNDhDQTYwMDhFNTc4RjU4RkUKKzoxMDhDQUEwMDhGODI4RTgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkVFN0EKKzoxMDhDQkEwMDc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRDgyRkM4NTU4QkUKKzoxMDhDQ0EwMDgyODU1NzgzQTNFMDYwMEZFRDI0MDRGNTgyRTQzQ0Y1MjYKKzoxMDhDREEwMDgzRTA0NDAyRjA4MDQzRUU3NUYwMERBNDI0MENGNTgyODMKKzoxMDhDRUEwMEU0MzQwM0Y1ODNFMDMwRTAyMEVFMjVFMDI0QzZGNTgyODMKKzoxMDhDRkEwMEU0MzQ3RkY1ODNFMDMwRTFGMDdGNjBFRDI0MDVGNTgyMEUKKzoxMDhEMEEwMEU0M0NGNTgzRTA1RkI1MDdGMkFFMDRBRjA1RUYyNDA0NTcKKzowQzhEMUEwMEY1ODJFNDNFRjU4M0UwNTRGREYwN0YwMDlDCis6MDE4RDI2MDAyMjJBCis6MDQ4RDI3MDBBRDA3QUMwNkUyCis6MTA4RDJCMDA4RDgyOEM4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJFRUZDCis6MTA4RDNCMDA3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUY4MkZFOEQ4MjA2Cis6MTA4RDRCMDA4QzgzQTNFMDYwMEZFRjI0MDRGNTgyRTQzRUY1ODNFMDBGCis6MTA4RDVCMDA0NDAxRjA4MDBERUYyNDA0RjU4MkU0M0VGNTgzRTA1NEVBCis6MDQ4RDZCMDBGRUYwN0YwMDk3Cis6MDE4RDZGMDAyMkUxCis6MDQ4RDcwMDBBRDA3QUMwNjk5Cis6MTA4RDc0MDA4RDgyOEM4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJFRUIzCis6MTA4RDg0MDA3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUY4MkZFOEQ4MkJECis6MTA4RDk0MDA4QzgzQTNFMDYwMEQ4RjgyOEU4M0EzQTNBM0UwNDQ0MDYxCis6MTA4REE0MDBGMDgwMEI4RjgyOEU4M0EzQTNBM0UwNTRCRkYwN0YwMEQ3Cis6MDE4REI0MDAyMjlDCis6MTA4REI1MDA4RjgyOEU4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJBRkFECis6MTA4REM1MDAwNjc0MDFBODA3MDg4MDAyQzMzM0Q4RkM0MjNFN0YwMDIxCis6MDE4REQ1MDAyMjdCCis6MDQ4REQ2MDA4RTU3OEY1OENECis6MTA4RERBMDA4RjgyOEU4M0EzRTBGNTVDOEY4MjhFODNFMEY1NTlEMzcwCis6MTA4REVBMDA5NDA0NDAwMzdGRkYyMkU1NTkyNEZFNjAxNjE0NjAxRjk1Cis6MTA4REZBMDAxNDYwMjgyNDAzNzAyRTdFN0U3RjgwNzU1QTdFNzU1QkYwCis6MTA4RTBBMDA4MDgwMjI3RTdFN0YwMDc1NUE3RTc1NUIwMDgwMTY3RThBCis6MTA4RTFBMDA3RDdGODA3NTVBN0Q3NTVCODA4MDBBN0U3RDdGMDA3NUI3Cis6MTA4RTJBMDA1QTdENzU1QjAwRTU1QzcwMUI4NTVCODI4NTVBODM3NDhECis6MTA4RTNBMDBGRkYwRTU1OTI1RTAyNEI1RjU4MkU0MzQ3RkY1ODM3NDIzCis6MTA4RTRBMDAwMUYwODA0OEU1NTgyNDAyRkZFNDM1NTdGRUU1NUM2MEVFCis6MTA4RTVBMDAyMzBGRUZBQzA2NzAwMTBFMTRGNTgyOEM4M0UwRkQwNTNBCis6MTA4RTZBMDA1QkU1NUJBQTVBNzAwMjA1NUExNEY1ODI4QTgzRURGMDEzCis6MTA4RTdBMDAxNTVDODBEOTg1NTg4Mjg1NTc4M0EzRTBGRkU1NTkyNTdCCis6MEU4RThBMDBFMDI0QjVGNTgyRTQzNDdGRjU4M0VGRjA3RjAwM0QKKzowMThFOTgwMDIyQjcKKzoxMDhFOTkwMEVGMjQwNUY1NThFNDNFRjU1NzkwMDEzNTc0MDdGMDkwMzUKKzoxMDhFQTkwMDAxN0E3NDAxRjBBMzc0MzZGMDg1NTg4Mjg1NTc4M0EzM0IKKzoxMDhFQjkwMEEzQTNFMEZFQTNFMDhFNTlGNTVBODU1ODgyODU1NzgzMEUKKzoxMDhFQzkwMEUwMjQ5RTYwNjEyNEY5NjAwRTI0RjE3MDAzMDI4RjdBMTgKKzoxMDhFRDkwMDI0MTQ2MDAzMDI4RkM4ODU1ODgyODU1NzgzQTNFMEZFNTYKKzoxMDhFRTkwMEEzRTBGRkMzRTQ5RkY1NUM3NDAxOUVGNTVCRDNFNTVDRTkKKzoxMDhFRjkwMDk0M0ZFNTVCOTQwMDQwMDY3NTVCMDA3NTVDM0ZEM0U1RTQKKzoxMDhGMDkwMDVBOTU1Q0U1NTk5NTVCNTAwMzAyOEZDQkFFNUJBRjVDMUMKKzoxMDhGMTkwMDg1NTg4Mjg1NTc4M0EzQTNBM0VFRjBGRUEzRUZGMDhFQjUKKzoxMDhGMjkwMDU5RjU1QTAyOEZDQjg1NTg4Mjg1NTc4M0EzRTBGRUEzNTIKKzoxMDhGMzkwMEUwRkZDMzc0MzA5RkY1NUNFNDlFRjU1QkQzRTU1Qzk0NzgKKzoxMDhGNDkwMDEwRTU1Qjk0MDA0MDA2NzU1QjAwNzU1QzEwRDNFNTVBMkIKKzoxMDhGNTkwMDk1NUNFNTU5OTU1QjQwNkFBRTVCQUY1Qzg1NTg4Mjg1NDcKKzoxMDhGNjkwMDU3ODNBM0EzQTNFRUYwRkVBM0VGRjA4RTU5RjU1QTgwMjEKKzoxMDhGNzkwMDUxODU1ODgyODU1NzgzQTNFMEZFQTNFMEZGQzNFNDlGOTAKKzoxMDhGODkwMEY1NUNFNDlFRjU1QjQ1NUM2MDBCRDNFNTVDOTQzRkU1REQKKzoxMDhGOTkwMDVCOTQwMDQwMDY3NTVCMDA3NTVDM0ZEM0U1NUE5NTVDQjAKKzoxMDhGQTkwMEU1NTk5NTVCNDAxQ0FFNUJBRjVDODU1ODgyODU1NzgzNUMKKzoxMDhGQjkwMEEzQTNBM0VFRjBGRUEzRUZGMDhFNTlGNTVBODAwMzdGMjkKKzoxMDhGQzkwMDAxMjI4NTU4ODI4NTU3ODNFMDI0OUU3MDAzMDI5MDhCODUKKzoxMDhGRDkwMDI0Rjk2MDU4MjRGMTcwMDMwMjkwREIyNDE0NjAwMzAyMjEKKzoxMDhGRTkwMDkxMUY4NTU4ODI4NTU3ODNBM0UwRkVBM0UwRkZEMzk0QTAKKzoxMDhGRjkwMEZGRUU5NDAwNDAwMzAyOTExRjkwMDE3NUVGRjBFNTVBQ0UKKzoxMDkwMDkwMDE1NUFBRTU5NzAwMjE1NTk0RTcwMDMwMjkxMUY5MDAxRkQKKzoxMDkwMTkwMDc1RTBGRjA0RjBBODA3RTZGRjkwMDE3QUU0NzVGMDAxMTYKKzoxMDkwMjkwMDEyQTI5Nzg1RjA4MkY1ODNFRkYwODBEMjg1NTg4Mjg1NjgKKzoxMDkwMzkwMDU3ODNBM0UwRkVBM0UwRkZDMzk0ODBFRTk0MDA1MDAzOUUKKzoxMDkwNDkwMDAyOTExRkQzRUY5NEZGRUU5NDAwNDAwMzAyOTExRjkwMDkKKzoxMDkwNTkwMDAxNzZFRkYwRTU1QTE1NUFBRTU5NzAwMjE1NTk0RTcwNUUKKzoxMDkwNjkwMDAzMDI5MTFGOTAwMTc2RTBGRjA0RjBBODA3RTZGRjkwNDQKKzoxMDkwNzkwMDAxN0FFNDc1RjAwMTEyQTI5Nzg1RjA4MkY1ODNFRkYwODkKKzoxMDkwODkwMDgwRDI4NTU4ODI4NTU3ODNBM0UwRkVBM0UwRkZDMzk0NkQKKzoxMDkwOTkwMDIwRUU5NDAwNTAwMzAyOTExRkQzRUY5NDJGRUU5NDAwMTkKKzoxMDkwQTkwMDUwNzQ5MDAxNzdFRkYwRTU1QTE1NUFBRTU5NzAwMjE1RDAKKzoxMDkwQjkwMDU5NEU2MDYyOTAwMTc3RTBGRjA0RjBBODA3RTZGRjkwM0YKKzoxMDkwQzkwMDAxN0FFNDc1RjAwMTEyQTI5Nzg1RjA4MkY1ODNFRkYwMzkKKzoxMDkwRDkwMDgwRDU4NTU4ODI4NTU3ODNBM0UwRkZBM0UwOTAwMTc4NjYKKzoxMDkwRTkwMENGRjBBM0VGRjBFNTVBMTU1QUFFNTk3MDAyMTU1OTRFNTMKKzoxMDkwRjkwMDYwMjQ5MDAxNzhFNDc1RjAwMTEyQTI5Nzg1RjA4MkY1NTkKKzoxMDkxMDkwMDgzRTBGRjkwMDE3QUU0NzVGMDAxMTJBMjk3ODVGMDgyNUQKKzoxMDkxMTkwMEY1ODNFRkYwODBDRjdFMDE3RjM1ODU1ODgyODU1NzgzQUYKKzowRDkxMjkwMEEzQTNBM0UwQTNFMDA0RkQxMjkxNkE3RjAwNjAKKzowMTkxMzYwMDIyMTYKKzoxMDkxMzcwMDhFNjI4RjYzOEM2NDhENjVBRjAzMUJFRjYwMjQwNTYzQkMKKzoxMDkxNDcwMEU1NjNBRTYyNzAwMjA1NjIxNEY1ODI4RTgzRTBGRjA1NjcKKzoxMDkxNTcwMDY1RTU2NUFDNjQ3MDAyMDU2NDE0RjU4MjhDODNFRkYwRjUKKzowMzkxNjcwMDgwRDYyMjhECis6MDY5MTZBMDA4RDVEQUIwN0FBMDZCMworOjEwOTE3MDAwNzU2MTQwNzU2MDBENzU1RjAzNzU1RTAwOTA3RkMyRTA5QworOjEwOTE4MDAwMjBFMUY5QUY2MUFFNjBBRDVGQUM1RUVDNEQ0RTRGNzA2QgorOjEwOTE5MDAwMDg5MDdGQzI3NDAyRjA4MEQ3OTA3RkMyRTAyMEUxMTY3MQorOjEwOTFBMDAwQUYwM0FFMDI3QzdCN0Q4MEFCNUQxMjkxMzc5MDdGQzNCNQorOjA4OTFCMDAwRTU1REYwN0YwMTIyN0YwMDY0Cis6MDE5MUI4MDAyMjk0Cis6MTA5MUI5MDA5MDAxODQ3NDBCRjBBM0U1MzNGMDkwMEFGNUU0OTM5MEUxCis6MTA5MUM5MDAwMTg2RjA5MDBBRjZFNDkzOTAwMTg3RjBFNDkwMDE3QzFGCis6MTA5MUQ5MDBGMEEzRjBBM0YwQTNGMEEzRjBBMzc0MTBGMEEzNzQwMTFCCis6MTA5MUU5MDBGMEEzNzQ4OEYwN0UwMTdGN0MxMjE5QzE3RTAxN0Y4NDBGCis6MDc5MUY5MDA3RDE0MTI5MTZBN0YwMDUyCis6MDE5MjAwMDAyMjRCCis6MTA5MjAxMDA3RTdCN0Y0MDc1NEU3Qjc1NEY0MDkwN0ZEM0UwRkY4NTFECis6MTA5MjExMDA0RTUxODU0RjUyRTU1MjI0MDFGNTU2RTQzNTUxRjU1NTJECis6MTA5MjIxMDBFNEY1NTA4NTUyODI4NTUxODNFMEZFMTRCNDBDMDA1MDYwCis6MTA5MjMxMDA1QjkwOTIzOUY4MjgyODczMDI5MjVEMDI5MjVEMDI5MjQ2Cis6MTA5MjQxMDA2NzAyOTI3MTAyOTI3MTAyOTI3MTAyOTI4NTAyOTI1RDlECis6MTA5MjUxMDAwMjkyN0IwMjkyNUQwMjkyOEQwMjkyNURFRjY0MDI2MDQ2Cis6MTA5MjYxMDAyQjc1NTBGRjgwMjZFRjY0MEU2MDIxNzU1MEZGODAxQzI2Cis6MTA5MjcxMDBFRjY0MDM2MDE3NzU1MEZGODAxMkVGNjQwMzYwMEQ3NTkyCis6MTA5MjgxMDA1MEZGODAwOEVGNjQwNjYwMDM3NTUwRkZFNTUwNjAxNURDCis6MTA5MjkxMDA5MDAxOTg3NDExRjBBM0VFRjA3RTAxN0Y5ODdEMDIxMjg3Cis6MTA5MkExMDA5MTZBQUY1MDIyRTRGNTUwODU1MjgyODU1MTgzRTAxNEQyCis6MTA5MkIxMDBCNDBGMDA0MDAzMDI5M0NGOTA5MkMwRjgyODI4NzMwMkE0Cis6MTA5MkMxMDA5MkVEMDI5MkY5MDI5MzA1MDI5MzUzMDI5MzVFMDI5Mzg3Cis6MTA5MkQxMDA2OTAyOTM3NDAyOTM3RjAyOTM4QTAyOTM5NTAyOTNBMDg5Cis6MTA5MkUxMDAwMjkzQTcwMjkzQ0YwMjkzQjIwMjkzQkRBRjU2QUU1NTNDCis6MTA5MkYxMDAxMjg0NDE4RjUwMDI5M0QyQUY1NkFFNTUxMjg1NjE4RkMxCis6MTA5MzAxMDA1MDAyOTNEMjg1NTU1Mzg1NTY1NEU1NTQyNDAxRkZFNDA4Cis6MTA5MzExMDAzNTUzRkUxMjg2QkVBRjU0QUU1MzEyODc1MThGNTBFRkI0Cis6MTA5MzIxMDA2NDAxNjAwMzAyOTNEMkFGNTRBRTUzMTI4N0E2OEY1MEVCCis6MTA5MzMxMDBFNTUwNzAwMzAyOTNEMjg1NTQ4Mjg1NTM4M0UwNzVGMDIyCis6MTA5MzQxMDAwREE0MjRGNEY1ODJFNDM0MDJBRjgyRkUxMjg3QTYwMjUyCis6MTA5MzUxMDA5M0QyQUY1NkFFNTUxMjhDQTY4RjUwODA3NEFGNTZBRUQ1Cis6MTA5MzYxMDA1NTEyOEQyNzhGNTA4MDY5QUY1NkFFNTUxMjhENzA4RjczCis6MTA5MzcxMDA1MDgwNUVBRjRGQUU0RTEyOEU5OThGNTA4MDUzQUY1NkQ0Cis6MTA5MzgxMDBBRTU1MTI4QkJEOEY1MDgwNDhBRjU2QUU1NTEyODYyRDBCCis6MTA5MzkxMDA4RjUwODAzREFGNTZBRTU1MTI4QzYyOEY1MDgwMzIxMjg1Cis6MTA5M0ExMDA5MUI5OEY1MDgwMkJBRjU2QUU1NTEyOERCNThGNTA4MDJECis6MTA5M0IxMDAyMEFGNTZBRTU1MTI4REQ2OEY1MDgwMTVBRjRGQUU0RUExCis6MTA5M0MxMDA3QzAyN0RBRjdCNDAxMjkxMzdFNEY1NTA4MDAzNzU1MEVDCis6MTA5M0QxMDBGRkU1NTA2MDFEOTAwMTk4NzQxMUYwODU1MjgyODU1MTBFCis6MTA5M0UxMDA4M0UwOTAwMTk5RjA3RTAxN0Y5ODdEMDIxMjkxNkFBRjJFCis6MTA5M0YxMDA1MDIyODU1MjgyODU1MTgzRTBGRjE0MjRGQTUwMDQyNEJGCis6MTA5NDAxMDBGRTcwMUY5MDAxOTg3NDEwRjBBM0VGRjA4NTU2ODI4NUNECis6MTA5NDExMDA1NTgzRTA5MDAxOUFGMDdFMDE3Rjk4N0QwMzEyOTE2QTU1Cis6MDQ5NDIxMDA4RjUwQUY1MDY5Cis6MDE5NDI1MDAyMjI0Cis6MDg5NDI2MDA4RjUxOEU1MDhENEY4QzRFQ0EKKzoxMDk0MkUwMDc1NTgwMTc1NTk5Q0U0RjU1N0FGNTMxNTUzRUY3MDAzRkEKKzoxMDk0M0UwMDAyOTRDNEFGNTJFNEZDRkRGRUY4RjlGQUFCMDdBRjUxNEIKKzoxMDk0NEUwMEFFNTBBRDRGQUM0RTEyQTMyMUFGMDM4RjU2QUY1MUFFRkYKKzoxMDk0NUUwMDUwQUQ0RkFDNEVDMDA0QzAwNUMwMDZDMDA3QUY1MkU0QkQKKzoxMDk0NkUwMEZDRkRGRUY4RjlGQUFCMDdEMDA3RDAwNkQwMDVEMDA0MDQKKzoxMDk0N0UwMDEyQTMyMThGNTE4RTUwOEQ0RjhDNEVFNTU2MjQzMEY1MTAKKzoxMDk0OEUwMDU2RDM5NDM5NDAwNjc0MDcyNTU2RjU1NjA1NTlFNTU5QjUKKzoxMDk0OUUwMEFFNTg3MDAyMDU1ODE0RjU4MjhFODNFNEYwMDU1OUU1MzYKKzoxMDk0QUUwMDU5QUU1ODcwMDIwNTU4MTRGNTgyOEU4M0U1NTZGMDA1QjQKKzoxMDk0QkUwMDU3MDU1NzAyOTQzN0U1NTkxNTU5NzAwMjE1NThBRjU3OEQKKzoxMDk0Q0UwMDE1NTdFRjYwMjNFNTU5MTU1OUFFNTg3MDAyMTU1OEY1MkEKKzoxMDk0REUwMDgyOEU4M0UwRkYwNTU1RTU1NUFDNTQ3MDAyMDU1NDE0OTkKKzowODk0RUUwMEY1ODI4QzgzRUZGMDgwRDZCQgorOjAxOTRGNjAwMjI1MworOjEwOTRGNzAwRTQ5MDAxQzlGMDdFMDE3RkNBOTAwMUJFRUVGMEEzRUZCMAorOjBBOTUwNzAwRjA5MDAxQzJFRUYwQTNFRkYwMjI5NQorOjEwOTUxMTAwQUEwN0E5MDU5MDAxQzlFMEMzOTQ0MDUwNjFBQzAyNzQ0NworOjEwOTUyMTAwMDE3RTAwQTgwNDA4ODAwNUMzMzNDRTMzQ0VEOEY5RkZFRAorOjEwOTUzMTAwRTRFRjU1MzQ2MDQ1RUEwNEZGOTAwMUMyRTBGQ0EzRTA4QQorOjEwOTU0MTAwRkRGNTgyOEM4M0VGRjBBM0U5RjA4RDgyOEM4M0EzQTNEOAorOjEwOTU1MTAwRUJGMDkwMDFDMkU0NzVGMDAzMTJBMjgxRkNEM0U1RjBCNworOjEwOTU2MTAwOTQ4N0VDOTQwMjQwMEE5MDAxQzI3NDAxRjBBMzc0Q0E3QQorOjEwOTU3MTAwRjBDMkFGOTAwMUM5RTAwNEYwRDJBRjdGMDEyMjdGMDBCOQorOjAxOTU4MTAwMjJDNworOjEwOTU4MjAwOTAwMUM5RTBEMzk0MDA0MDU1OTAwMUJFRTBGQ0EzRTBGNQorOjEwOTU5MjAwQUEwNEY5N0IwMUMwMDNDMDAyQzAwMUFBMDZBOTA3QTg1OAorOjEwOTVBMjAwMDFBQzAyQUQwM0QwMDFEMDAyRDAwMzdFMDA3RjAzMTJEMgorOjEwOTVCMjAwQTIxMjkwMDFCRUU0NzVGMDAzMTJBMjgxRkNEM0U1RjA4MQorOjEwOTVDMjAwOTQ4N0VDOTQwMjQwMEE5MDAxQkU3NDAxRjBBMzc0Q0ExRAorOjEwOTVEMjAwRjBDMkFGOTAwMUM5RTAxNEYwRDJBRjdGMDEyMjdGMDA0OAorOjAxOTVFMjAwMjI2NgorOjEwOTVFMzAwOTA3RkMyRTAyMEUxNzM3RTdCN0Y4MDc1NTM3Qjc1NTQ0RgorOjEwOTVGMzAwODBFNTU0MjQwMUZGRTQzNTUzQTkwNzdCMDE4QjU1RjUxRQorOjEwOTYwMzAwNTY4OTU3RkUxMjk1ODJFRjYwNTBBQjU1QUE1NkE5NTc1QgorOjEwOTYxMzAwMTJBMjNCMTRGRjkwMDAwMTEyQTI1NEI0MDIxNkMyQUY2RgorOjEwOTYyMzAwRUY3NUYwMDhBNDI0MDFGNTgyRTQzNDIwRjU4M0UwNDRDNworOjEwOTYzMzAwMDRGMEQyQUY3NDAxN0UwMEE4MDcwODgwMDVDMzMzQ0VCRgorOjEwOTY0MzAwMzNDRUQ4RjlGRkU0RUY1NTM0NjAwRjg1NTQ4Mjg1NTM0OAorOjBBOTY1MzAwODM3NDBERjA5MDdGQzM3NDA0RjBERgorOjAxOTY1RDAwMjJFQQorOjEwOTY1RTAwMTI5NUUzRTRGNTRFNzQzQTI1NEVGOEU2NTRGMEY1NEZDNAorOjEwOTY2RTAwNzRDNTI1NEVGNTgyRTQzNDAxRjU4M0UwNjU0RkZGQzRFMQorOjEwOTY3RTAwNTQwRkY1NTA2MDIyNzRDNTI1NEVGNTgyRTQzNDAxRjU4MQorOjEwOTY4RTAwODNFNTRGRjBBRjRFN0QwMUU1NEY0NTUwRkIxMjk1MTEyRQorOjEwOTY5RTAwRUY3MDA1MTI5NUUzODBFQzA1NEVFNTRFQzM5NDA0NDA0MQorOjEwOTZBRTAwQjUxMjk1RTNFNTNFNjA0OEU0RjU0RUFGNEU3NDAxQTg2MQorOjEwOTZCRTAwMDcwODgwMDJDMzMzRDhGQ0Y1NEY1NTNFNjAyOUU1NEVBRQorOjEwOTZDRTAwNzVGMDA4QTQyNDA1RjU4MkU0MzQyMEY1ODNFMDMwRTYzNQorOjEwOTZERTAwMTZBRjRFN0QwNDdCODAxMjk1MTFFRjcwMDUxMjk1RTM0NworOjEwOTZFRTAwODBFRkU1NEZGNDUyM0UwNTRFRTU0RUMzOTQwNDQwQkI2OQorOjEwOTZGRTAwOTAwMzAwRTA2MDAzMDI5N0RGNzQxOUYwRTUzM0MzOTQyMgorOjEwOTcwRTAwMDE0MDBEOTAyMDc4RTA1NDBGNzU1MTAwRjU1MjgwMDlGQworOjEwOTcxRTAwN0YwMjEyMTEyNzhFNTE4RjUyQzNFNTUxNjQ4MDk0ODBCRgorOjEwOTcyRTAwNDBEQTkwMDFCQ0UwNjU1MkYwNjAzN0U0RjU0RUFGNEU4MgorOjEwOTczRTAwNzQwMUE4MDcwODgwMDJDMzMzRDhGQ0Y1NEY5MDAxQkMxMgorOjEwOTc0RTAwRTA1NTRGNjAxNEFGNEU3RDA4RTU0RjU1NTJGQjEyOTUxNAorOjEwOTc1RTAwMTFFRjcwMDUxMjk1RTM4MEVDMDU0RUU1NEVDMzk0MDRBRgorOjEwOTc2RTAwNDBDQzkwMDFCQ0U1NTJGMEU0RjU0RUMyQUY3NDM2MjUwNAorOjEwOTc3RTAwNEVGOEU2RjU0RkU0RjZEMkFGNTM0RjFFRTU0RjYwMTFBQgorOjEwOTc4RTAwQUY0RTdEMDJBQjRGMTI5NTExRUY3MDA1MTI5NUUzODAyRgorOjEwOTc5RTAwRUY3NDJEMjU0RUY4RTZGNTRGNzRGQzI1NEVGNTgyRTQ1OAorOjEwOTdBRTAwMzQwMkY1ODNFMDY1NEY2MDExQUY0RTdEMDRBQjRGMTI2RQorOjEwOTdCRTAwOTUxMUVGNzAwNTEyOTVFMzgwRUY3NEZDMjU0RUY1ODIzRQorOjEwOTdDRTAwRTQzNDAyRjU4M0U1NEZGMDA1NEVFNTRFQzM5NDA0NDBCNAorOjA0OTdERTAwOUExMjk1RTM2MworOjAxOTdFMjAwMjI2NAorOjBDOTdFMzAwNzg3RkU0RjZEOEZENzU4MTY3MDI5ODJBQjMKKzoxMDk3RUYwMDAyMDVBREU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyREUKKzoxMDk3RkYwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzN0IKKzoxMDk4MEYwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGNDkKKzoxMDk4MUYwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDk4NkZFNDdFRDIKKzoxMDk4MkYwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzM0UKKzoxMDk4M0YwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzMDUKKzoxMDk4NEYwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMzAKKzoxMDk4NUYwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFRTgKKzoxMDk4NkYwMDYwMjQwMjhBMDEwMjA0MDgxMDIwNDA4MDgxODI4NDg4Q0IKKzoxMDk4N0YwMDkwQTBDMEMxQzJDNEM4RDBFMEUxRTJFNEU4RjBGMUYyQzgKKzowODk4OEYwMEY0RjhGOUZBRkNGREZFRkZGQworOjAxOTg5NzAwMDBEMAorOjA4OTg5ODAwOEI1OThBNUE4OTVCOEQ1QzMzCis6MTA5OEEwMDBFNEY1NURGNTVFQUY1QzE1NUNFRjYwMzZBQjU5MDU1QkNBCis6MTA5OEIwMDBFNTVCQUE1QTcwMDIwNTVBMTRGOTEyQTIzQkZGRTU1RDU2Cis6MTA5OEMwMDBFNTVFNkYyNUUwRkZFNDMzRkU3NDk1MkZGNTgyRUUzNEZDCis6MTA5OEQwMDA5RUY1ODNFNTVERkZFNDkzRjU1RDc0MDE5MzZGRjU1RTlFCis6MDY5OEUwMDA4MEMzQUU1REFGNUUyNworOjAxOThFNjAwMjI1RgorOjBCOThFNzAwQzBFMEMwODNDMDgyQzBEMDc1RDAxODY0Cis6MTA5OEYyMDA5MDIwNjBFMDU0MEZGRTMwRTAwNTkwMjAwMkUwRkZFRTgxCis6MTA5OTAyMDAzMEUxMDU5MDIwMEFFMEZGRUUzMEUyMDU5MDIwMTJFMEZGCis6MTA5OTEyMDBGRkVFMzBFMzA1OTAyMDFBRTBGRjkwMDFDNEUwQjUxRThGCis6MEE5OTIyMDAwNEU0RjA4MDA1OTAwMUM0RUVGMEFCCis6MDk5OTJDMDBEMEQwRDA4MkQwODNEMEUwMzIwQgorOjAyOTkzNTAwQTkwMzg0Cis6MTA5OTM3MDBFRjc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBQjgyRkFFNTQxCis6MTA5OTQ3MDA1QzQ1NURGNTVFRTk2MDE0OEE4M0U1ODIyNDA0RjU4MjRGCis6MTA5OTU3MDBFNDM1ODNGNTgzRTA0REYwRTRGRTgwMTNFQjI0MDRGNTUyCis6MTA5OTY3MDA4MkU0M0FGNTgzRTBGRkVERjRGQ0VGNUNGMEFFNUVFQkVBCis6MTA5OTc3MDAyNDA2RjU4MkU0M0FGNTgzRTA1NTVFRkNCNTA2MDNBRkFECis6MTA5OTg3MDAwNTIyRTU1QzVDRkVFNTVENUNGREU5NjAxNkVFNzAwNEIyCis6MTA5OTk3MDA3RjAxODAwMjdGMDBBRTA3RUQ3MDA0N0YwMTgwMDI3RkE4Cis6MTA5OUE3MDAwMEFEMDdFRTYwMDNBRjVDMjJFRDYwMDNBRjVEMjI3RjgxCis6MDE5OUI3MDAwMEFGCis6MDE5OUI4MDAyMjhDCis6MTA5OUI5MDA3NTU1MDI3NTU2QjA5MDAzMzU3NDBGRjA4NTU2ODI4NTNBCis6MTA5OUM5MDA1NTgzQTNFMEZGOTAwMzM3RjA4NTU2ODI4NTU1ODNFMEUwCis6MTA5OUQ5MDA5MDAzMzZGMDkwMDMzODc0RkZGMDc1NTcwMzc1NTgzOUMyCis6MTA5OUU5MDBFRjE0QjQwQjAwNDAwMzAyOUU1RDkwOTlGQUY4MjgyODAxCis6MTA5OUY5MDA3MzAyOUExQjAyOUFCQTAyOUJCRjAyOUJERTAyOUJERThDCis6MTA5QTA5MDAwMjlDOTQwMjlDQ0YwMjlDRjQwMjlEQjIwMjlERTIwMjQ4Cis6MTA5QTE5MDA5RTBFRTRGNTRFRTU0RTc1RjAwOEE0MjQwMEY1ODJFNEE3Cis6MTA5QTI5MDAzNDIwQUY4MkY1NTM4RjU0RTRGRkU0RkVFRjYwMTA3NEU1Cis6MTA5QTM5MDA4QTJFRjU4MkU0MzQwMkY1ODNFMEY0RjU0RjgwMEQ3NDQzCis6MTA5QTQ5MDA4QTJFRjU4MkU0MzQwMkY1ODNFMEY1NEZFNTU0MjQwN0M0Cis6MTA5QTU5MDBGNTgyRTQzNTUzRjU4M0U1NEZGMEUwRjU1MDY1NEY2MDQ1Cis6MTA5QTY5MDAzOEU0OTAwMzM4RjBFNTRFMDRGRDA1NThFNTU4QUE1NzQ3Cis6MTA5QTc5MDA3MDAyMDU1NzE0RjU4MjhBODNFREYwMDU1OEU1NThBQzU0Cis6MTA5QTg5MDA1NzcwMDIwNTU3MTRGNTgyOEM4M0U1NEZGMDg1NTg4MjhCCis6MTA5QTk5MDA4NTU3ODNFNTUwRjAwMjlFNjMwRUJFMjQ4RjBGRUY2NDU1Cis6MTA5QUE5MDAwMjcwODcwNTRFRTU0RTY0MDQ2MDAzMDI5QTFFMDI5RTA5Cis6MTA5QUI5MDA2M0U0RjU0RUFGNEVFNEZEMTI4MzVBMDU0RUU1NEVEM0VECis6MTA5QUM5MDA5NDAzNDBGMDkwMDAwNDc0OThGMEEzNzRFN0YwRTRGNTZGCis6MTA5QUQ5MDA1MDdFMjA3RjAwNzU1MzIwNzU1NDAwRjU0RUFGNEU3NEFCCis6MTA5QUU5MDAwMUE4MDcwODgwMDJDMzMzRDhGQ0Y1NEY5MDAxQzRGMEUwCis6MTA5QUY5MDA5MDAxQzBFNEYwQTM3NDBBRjA4NTU0ODI4NTUzODNBM0NFCis6MTA5QjA5MDA3NDAyRjA5MDAxQzRFMEI1NEYzNDkwMDFDMEUwNzAwMkQ2Cis6MTA5QjE5MDBBM0UwNzBFRjkwMDMzOEYwRTU0RTA0RkYwNTU4RTU1OENGCis6MTA5QjI5MDBBQzU3NzAwMjA1NTcxNEY1ODI4QzgzRUZGMDg1NTg4MjgzCis6MTA5QjM5MDA4NTU3ODM3NEZGRjBFNDkwMDFDNEYwNzU1MEZGOTAwMURDCis6MTA5QjQ5MDBDNEUwRkY2MDM3RTQ5MDAzMzhGMEU1NEUwNEZFMDU1OEExCis6MTA5QjU5MDBFNTU4QUM1NzcwMDIwNTU3MTRGNTgyOEM4M0VFRjAwNTcxCis6MTA5QjY5MDA1OEU1NThBQzU3NzAwMjA1NTcxNEY1ODI4QzgzRUZGMDBECis6MTA5Qjc5MDA4NTU4ODI4NTU3ODNFNTRGRjA3NTUwRkZFNTUwNzAxNjdCCis6MTA5Qjg5MDA3NDA4MjU1NEY1NTRFNDM1NTNGNTUzMDU0RUU1NEU2NEYwCis6MTA5Qjk5MDAwNDYwMDMwMjlBRTZFNEY1NEVBRjRFN0QwMTEyODM1QTQyCis6MTA5QkE5MDAwNTRFRTU0RUQzOTQwMzQwRjA5MDAwMDQ3NDEzRjBBM0RFCis6MTA5QkI5MDA3NDEyRjAwMjlFNjM4NTU2ODI4NTU1ODNFMDE0RkY3NDAyCis6MTA5QkM5MDAwMUE4MDcwODgwMDJDMzMzRDhGQzkwMDJGN0YwOTAwMTdFCis6MTA5QkQ5MDBDNEYwMDI5RTYzOTAwMUMwNzQwM0YwQTM3NEU4RjBFNDNBCis6MTA5QkU5MDBGNTUwOTAwMkY3RTBGRjkwMDFDNEUwQjUwNzE5OTAwMTI0Cis6MTA5QkY5MDBDMEUwNzAwMkEzRTA3MEVBOTAwMzM4RjA4NTU4ODI4NUNFCis6MTA5QzA5MDA1NzgzNzRGRkYwRjU1MEU1NTA2MDAzMDI5RTYzOTAwMTlECis6MTA5QzE5MDBDMEYwQTM3NDk2RjA5MDAxQzBFMDcwMDJBM0UwNzBGNjYyCis6MTA5QzI5MDBFNTMzQzM5NDAxNDAwRDkwMjA3OEUwNTQwRjc1NTEwMDNECis6MTA5QzM5MDBGNTUyODAwOTdGMDIxMjExMjc4RTUxOEY1MkMzRTU1MUM3Cis6MTA5QzQ5MDA2NDgwOTQ4MDQwREFFNTUyNTQwRkY1NTA5MDAyRjdFMEIxCis6MTA5QzU5MDA1NTUwNzAwNDdGMDE4MDAyN0YwMDhGNEY4NTU2ODI4NUExCis6MTA5QzY5MDA1NTgzQTNFMEI0MDUwQ0U1NEY3MDA0N0YwMTgwMDI3RkEyCis6MTA5Qzc5MDAwMDhGNEZFNTRGNzAwMzAyOUU2M0U0OTAwMzM4RjA4NTJGCis6MTA5Qzg5MDA1ODgyODU1NzgzRTU1MEYwMDI5RTYzRTRGRkZEMTI4M0Y1Cis6MTA5Qzk5MDA1QTdFMjA3RjAwNzU1MzIwNzU1NDAwODU1NDgyODU1MzYwCis6MTA5Q0E5MDA4M0EzQTNBM0UwNDQ4MEYwODU1NDgyODU1MzgzNzQwMTgwCis6MTA5Q0I5MDBGMEEzRTRGMDg1NTQ4Mjg1NTM4M0EzQTNBM0UwNTQ3RkUyCis6MTA5Q0M5MDBGMEQyMDQwMjlFNjNDMjA0N0UyMDdGMDA3NTUzMjA3NTgyCis6MTA5Q0Q5MDA1NDAwRTU1NDI0MDVGNTgyRTQzNTUzRjU4M0UwMzBFNjc0Cis6MTA5Q0U5MDBGMUU0RkY3RDAxMTI4MzVBMDI5RTYzRTRGNTUwRjU0RUJCCis6MTA5Q0Y5MDBBRjRFRTRGRDEyODM1QUU1NEU3NUYwMDhBNDI0MDBGNTMxCis6MTA5RDA5MDA4MkU0MzQyMEFGODJGNTUzOEY1NEY1ODNFNTgyMjQwNDJECis6MTA5RDE5MDBGNTgyRTQzNTgzRjU4M0UwNTRGQ0YwQUY0RTdEMDE3Qjk5Cis6MTA5RDI5MDAwMTc1NUM4MDc1NUQ0MDEyOTkzNThGNTBFNTUwNzAxMTUxCis6MTA5RDM5MDBBRjRFN0QwMjdCMDE3NTVDMTA3NTVEMjAxMjk5MzU4RkUwCis6MTA5RDQ5MDA1MEU1NTA3MDEwQUY0RTdEMDFGQjc1NUM4MDc1NUQ0MDJDCis6MTA5RDU5MDAxMjk5MzU4RjUwRTU1MDcwMTBBRjRFN0QwMkZCNzU1QzNFCis6MTA5RDY5MDAxMDc1NUQyMDEyOTkzNThGNTBBRjRFN0QwMTEyODM1QUJGCis6MTA5RDc5MDBFNTUwNjAyNkU0OTAwMzM4RjBFNTRFMDRGRjA1NThFNTA4Cis6MTA5RDg5MDA1OEFDNTc3MDAyMDU1NzE0RjU4MjhDODNFRkYwODU1ODRCCis6MTA5RDk5MDA4Mjg1NTc4M0U1NTBGMDAyOUU2MzA1NEVFNTRFRDM5NEM0Cis6MTA5REE5MDAwMzUwMDMwMjlDRjkwMjlFNjNFNDkwMDM1OUYwQTNGMDY3Cis6MTA5REI5MDBBM0YwQTNGMEEzRjBBMzc0MTBGMEEzNzQ5RUYwQTM3NDBFCis6MTA5REM5MDA4NUYwN0UwMzdGNTkxMjgxRDlFRjY0MDg3MDAzMDI5RUUyCis6MTA5REQ5MDA2M0U0OTAwMzM4RjAwMjlFNjNFNDkwMDM1OUYwQTNGMDIyCis6MTA5REU5MDBBM0YwQTNGMEEzRjBBMzc0MTBGMEEzRTU1N0YwQTNFNTQzCis6MTA5REY5MDA1OEYwN0UwMzdGNTkxMjE5QzFFRjY0MDg2MDVDRTQ5MDQyCis6MTA5RTA5MDAwMzM4RjA4MDU1RTU1NjI0MDJGRkU0MzU1NUZBQTkwN0QxCis6MTA5RTE5MDA3QjAxN0QxMDEyOTg5OEVGNEU3MDMyOTAwMzU5RjBBMzkwCis6MTA5RTI5MDBGMEEzRjBBM0YwQTNGMEEzNzQxMEYwRTU1NjI0MDI5MDc4Cis6MTA5RTM5MDAwMzYwRjBFNDM1NTU5MDAzNUZGMDdFMDM3RjU5MTI4MThBCis6MTA5RTQ5MDBEOUVGNjQwODYwMTRFNDkwMDMzOEYwODAwREU0OTAwM0JFCis6MTA5RTU5MDAzOEYwODAwNjkwMDMzODc0MDFGMDkwMDFDMEU0RjBBMzUzCis6MTA5RTY5MDA3NDBBRjA5MDAxQzBFMDcwMDJBM0UwNzBGNjdFMDM3RkVGCis6MEI5RTc5MDAzNTdEMjQxMjkxNkFFNDkwMDJBRkYwRTYKKzowMTlFODQwMDIyQkIKKzoxMDlFODUwMEZGRkVGQ0Y4RjBFMEMwODAwMDAxMDMwNzBGMUYzRjdGRDUKKzoxMDlFOTUwMDAwMDBDMEMxQzE4MTAxNDBDMzAxMDNDMDAyODBDMjQxQUQKKzoxMDlFQTUwMEM2MDEwNkMwMDc4MEM3NDEwNTAwQzVDMUM0ODEwNDQwN0QKKzoxMDlFQjUwMENDMDEwQ0MwMEQ4MENENDEwRjAwQ0ZDMUNFODEwRTQwMkQKKzoxMDlFQzUwMDBBMDBDQUMxQ0I4MTBCNDBDOTAxMDlDMDA4ODBDODQxM0QKKzoxMDlFRDUwMEQ4MDExOEMwMTk4MEQ5NDExQjAwREJDMURBODExQTQwQUQKKzoxMDlFRTUwMDFFMDBERUMxREY4MTFGNDBERDAxMURDMDFDODBEQzQxN0QKKzoxMDlFRjUwMDE0MDBENEMxRDU4MTE1NDBENzAxMTdDMDE2ODBENjQxQUQKKzoxMDlGMDUwMEQyMDExMkMwMTM4MEQzNDExMTAwRDFDMUQwODExMDQwQkMKKzoxMDlGMTUwMEYwMDEzMEMwMzE4MEYxNDEzMzAwRjNDMUYyODEzMjQwQUMKKzoxMDlGMjUwMDM2MDBGNkMxRjc4MTM3NDBGNTAxMzVDMDM0ODBGNDQxN0MKKzoxMDlGMzUwMDNDMDBGQ0MxRkQ4MTNENDBGRjAxM0ZDMDNFODBGRTQxMkMKKzoxMDlGNDUwMEZBMDEzQUMwM0I4MEZCNDEzOTAwRjlDMUY4ODEzODQwM0MKKzoxMDlGNTUwMDI4MDBFOEMxRTk4MTI5NDBFQjAxMkJDMDJBODBFQTQxQUMKKzoxMDlGNjUwMEVFMDEyRUMwMkY4MEVGNDEyRDAwRURDMUVDODEyQzQwN0MKKzoxMDlGNzUwMEU0MDEyNEMwMjU4MEU1NDEyNzAwRTdDMUU2ODEyNjQwQUMKKzoxMDlGODUwMDIyMDBFMkMxRTM4MTIzNDBFMTAxMjFDMDIwODBFMDQxQkMKKzoxMDlGOTUwMEEwMDE2MEMwNjE4MEExNDE2MzAwQTNDMUEyODE2MjQwQUMKKzoxMDlGQTUwMDY2MDBBNkMxQTc4MTY3NDBBNTAxNjVDMDY0ODBBNDQxN0MKKzoxMDlGQjUwMDZDMDBBQ0MxQUQ4MTZENDBBRjAxNkZDMDZFODBBRTQxMkMKKzoxMDlGQzUwMEFBMDE2QUMwNkI4MEFCNDE2OTAwQTlDMUE4ODE2ODQwM0MKKzoxMDlGRDUwMDc4MDBCOEMxQjk4MTc5NDBCQjAxN0JDMDdBODBCQTQxQUMKKzoxMDlGRTUwMEJFMDE3RUMwN0Y4MEJGNDE3RDAwQkRDMUJDODE3QzQwN0MKKzoxMDlGRjUwMEI0MDE3NEMwNzU4MEI1NDE3NzAwQjdDMUI2ODE3NjQwQUMKKzoxMEEwMDUwMDcyMDBCMkMxQjM4MTczNDBCMTAxNzFDMDcwODBCMDQxQkIKKzoxMEEwMTUwMDUwMDA5MEMxOTE4MTUxNDA5MzAxNTNDMDUyODA5MjQxQUIKKzoxMEEwMjUwMDk2MDE1NkMwNTc4MDk3NDE1NTAwOTVDMTk0ODE1NDQwN0IKKzoxMEEwMzUwMDlDMDE1Q0MwNUQ4MDlENDE1RjAwOUZDMTlFODE1RTQwMkIKKzoxMEEwNDUwMDVBMDA5QUMxOUI4MTVCNDA5OTAxNTlDMDU4ODA5ODQxM0IKKzoxMEEwNTUwMDg4MDE0OEMwNDk4MDg5NDE0QjAwOEJDMThBODE0QTQwQUIKKzoxMEEwNjUwMDRFMDA4RUMxOEY4MTRGNDA4RDAxNERDMDRDODA4QzQxN0IKKzoxMEEwNzUwMDQ0MDA4NEMxODU4MTQ1NDA4NzAxNDdDMDQ2ODA4NjQxQUIKKzoxMEEwODUwMDgyMDE0MkMwNDM4MDgzNDE0MTAwODFDMTgwODE0MDQwQkIKKzoxMEEwOTUwMEU0RkY3NEY4MkZGNTgyRTQzNDAyRjU4M0UwNzAwMzAyREYKKzoxMEEwQTUwMEExMzg3NDNBMkZGOEU2MjBFNTAzMDJBMTM4RUY3NUYwRTAKKzoxMEEwQjUwMDA4QTQyNDAwRjU4MkU0MzQyMEFEODJGQ0Y1ODNFNTgyMTIKKzoxMEEwQzUwMDI0MDVGNTgyRTQzNTgzRjU4M0UwNTQ2MDY0NjA3MDYzQUMKKzoxMEEwRDUwMEVGMjVFMDI0RUZGNTgyRTQzNDAyRjU4M0U0NzVGMDAxMjEKKzoxMEEwRTUwMDEyQTI5Nzg1RjA4MkY1ODNFMDhEODI4QzgzRjA3NEY4NTcKKzoxMEEwRjUwMDJGRjU4MkU0MzQwMkY1ODNFMDE0RjA3MDM2RUYyNUUwQTUKKzoxMEExMDUwMDI0QzdGNTgyRTQzNDdGRjU4M0U0RjBFRjI1RTBGRUMzNTAKKzoxMEExMTUwMDc0MEM5RTc1RjA0MEE0MjQ0MEY1ODJFNUYwMzQ3QkFEQzcKKzoxMEExMjUwMDgyRkNFRjI1RTAyNEVGRjU4MkU0MzQwMkY1ODNFQ0YwQzAKKzowQ0ExMzUwMEEzRURGMDBGRUY2NDA0NjAwMzAyQTA5NzlDCis6MDFBMTQxMDAyMkZCCis6MTBBMTQyMDBFNzA5RjYwOERGRkE4MDQ2RTcwOUYyMDhERkZBODAzRUZGCis6MTBBMTUyMDA4ODgyOEM4M0U3MDlGMEEzREZGQTgwMzJFMzA5RjYwOEVDCis6MTBBMTYyMDBERkZBODA3OEUzMDlGMjA4REZGQTgwNzA4ODgyOEM4MzU0Cis6MTBBMTcyMDBFMzA5RjBBM0RGRkE4MDY0ODk4MjhBODNFMEEzRjYwODA4Cis6MTBBMTgyMDBERkZBODA1ODg5ODI4QTgzRTBBM0YyMDhERkZBODA0Q0UyCis6MTBBMTkyMDA4MEQyODBGQTgwQzY4MEQ0ODA2OTgwRjI4MDMzODAxMEI5Cis6MTBBMUEyMDA4MEE2ODBFQTgwOUE4MEE4ODBEQTgwRTI4MENBODAzMzIyCis6MTBBMUIyMDA4OTgyOEE4M0VDRkFFNDkzQTNDOEM1ODJDOENDQzU4MzlBCis6MTBBMUMyMDBDQ0YwQTNDOEM1ODJDOENDQzU4M0NDREZFOURFRTc4MDZBCis6MTBBMUQyMDAwRDg5ODI4QTgzRTQ5M0EzRjYwOERGRjlFQ0ZBQTlGMEU5Cis6MTBBMUUyMDBFREZCMjI4OTgyOEE4M0VDRkFFMEEzQzhDNTgyQzhDQzNGCis6MTBBMUYyMDBDNTgzQ0NGMEEzQzhDNTgyQzhDQ0M1ODNDQ0RGRUFERTU4Cis6MTBBMjAyMDBFODgwREI4OTgyOEE4M0U0OTNBM0YyMDhERkY5ODBDQ0I5Cis6MTBBMjEyMDA4OEYwRUQyNDAyQjQwNDAwNTBDMkY1ODJFQjI0MDJCNEFCCis6MTBBMjIyMDAwNDAwNTBCODIzMjM0NTgyRjU4MkVGNEU2MEFFRUY2MDAyCis6MDlBMjMyMDAwMTBFRTU4MjIzOTBBMTkyNzM1NAorOjEwQTIzQjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIyMQorOjA5QTI0QjAwRTMyMjg5ODI4QTgzRTQ5MzIyNTQKKzoxMEEyNTQwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwQkYKKzoxMEEyNjQwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMDkKKzowREEyNzQwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMjMKKzoxMEEyODEwMEM1RjBGOEEzRTAyOEYwQzVGMEY4RTU4MjE1ODI3MDAyNjgKKzowNkEyOTEwMDE1ODNFMDM4RjAyMjA1Cis6MTBBMjk3MDBBM0Y4RTBDNUYwMjVGMEYwRTU4MjE1ODI3MDAyMTU4MzdBCis6MDZBMkE3MDBFMEM4MzhGMEU4MjJENworOjEwQTJBRDAwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBFRgorOjEwQTJCRDAwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkVDQworOjEwQTJDRDAwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODMxMgorOjA4QTJERDAwRTk5M0Y1RjBBM0U5OTMyMkQ3Cis6MTBBMkU1MDA3NUYwMDg3NTgyMDBFRjJGRkZFRTMzRkVDRDMzQ0RDQzMwCis6MTBBMkY1MDAzM0NDQzU4MjMzQzU4MjlCRUQ5QUVDOTlFNTgyOTg0MEIzCis6MTBBMzA1MDAwQ0Y1ODJFRTlCRkVFRDlBRkRFQzk5RkMwRkQ1RjBENjhGCis6MTBBMzE1MDBFNENFRkJFNENERkFFNENDRjlBODgyMjJCODAwQzFCOUI5Cis6MTBBMzI1MDAwMDU5QkEwMDJERUM4QkYwODRDRkNFQ0RGQ0U1RjBDQkY3Cis6MTBBMzM1MDBGOTc4MThFRjJGRkZFRTMzRkVFRDMzRkRFQzMzRkNFQjMwCis6MTBBMzQ1MDAzM0ZCMTBENzAzOTk0MDA0RUI5OUZCMEZEOEU1RTRGOUVCCis6MTBBMzU1MDBGQTIyNzgxOEVGMkZGRkVFMzNGRUVEMzNGREVDMzNGQ0Q4Cis6MTBBMzY1MDBDOTMzQzkxMEQ3MDU5QkU5OUE0MDA3RUM5QkZDRTk5QUNDCis6MTBBMzc1MDBGOTBGRDhFMEU0QzlGQUU0Q0NGQjIyNzVGMDEwRUYyRjExCis6MTBBMzg1MDBGRkVFMzNGRUVEMzNGRENDMzNDQ0M4MzNDODEwRDcwNzExCis6MTBBMzk1MDA5QkVDOUFFODk5NDAwQUVEOUJGREVDOUFGQ0U4OTlGODRDCis6MEVBM0E1MDAwRkQ1RjBEQUU0Q0RGQkU0Q0NGQUU0QzhGOTIyREYKKzoxMEEzQjMwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwMDAKKzowMUEzQzMwMDIyNzcKKzoxMEEzQzQwMEU4NjAwRkVDQzMxM0ZDRUQxM0ZERUUxM0ZFRUYxM0ZGNzcKKzowM0EzRDQwMEQ4RjEyMjlCCis6MTBBM0Q3MDAwODA4MDhFNkNGMkZGNjE4RTZDRTNFRjYxOEU2Q0QzRDdDCis6MDdBM0U3MDBGNjE4RTZDQzNDRjYyMjVCCis6MENBM0VFMDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjJFMgorOjEwQTNGQTAwQTg4Mjg1ODNGMEQwODNEMDgyMTJBNDExMTJBNDExMTJFQworOjEwQTQwQTAwQTQxMTEyQTQxMUU0NzNFNDkzQTNDNTgzQzVGMEM1ODMxMAorOjEwQTQxQTAwQzhDNTgyQzhGMEEzQzU4M0M1RjBDNTgzQzhDNTgyQzhBQworOjAxQTQyQTAwMjIwRgorOjAwMDAwMDAxRkYKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgICAgd2hpdGVoZWF0LmggIC0tICBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgRmlybXdhcmUuCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jIChodHRwOi8vd3d3LmNvbm5lY3R0ZWNoLmNvbS8pCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkCisgKglGaXJtd2FyZSA0LjA2CisgKgorICogKDA0LzA5LzIwMDApIGdraAorICoJVXBkYXRlZCB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbGF0ZXN0IHByb3ZpZGVkIGJ5IENvbm5lY3RUZWNoLgorICoKKyAqICgwMS8xNi8yMDAwKSBna2gKKyAqCUZpeGVkIG15IGludGVsIGhleCBwcm9jZXNzaW5nIHRvb2wsIHNvIG5vdyB0aGUgZmlybXdhcmUgYWN0dWFsbHkKKyAqCW1hdGNoZXMgdGhlIG9yaWdpbmFsIGZpbGUgKHRoaXMgd2FzIGNhdXNpbmcgYSBmZXcgcHJvYmxlbXMuLi4pCisgKgorICogKDAxLzE1LzIwMDApIGdraAorICoJQWRkZWQgZGVidWcgbG9hZGVyIGZpcm13YXJlIGlmIERFQlVHIGlzICNkZWZpbmVkOgorICoJCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZworICoJCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKKyAqCQlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCisgKgkJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycworICoKKyAqIHZlcnNpb24gMS4wICgwMS8wOS8yMDAwKSBna2gKKyAqCU9yaWdpbmFsIGZpcm13YXJlIGZyb20gQ29ubmVjdFRlY2ggbWFzc2FnZWQgYSBsaXR0bGUgdG8gYmUgcHJvZ3JhbQorICoJcmVhZGFibGUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIHdoaXRlaGVhdF9EQVRFICIyMDAwMDEwNiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXIuSEVYIGIvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlci5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY2NjNmNgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXIuSEVYCkBAIC0wLDAgKzEsMzE0IEBACis6MDMwMDAwMDAwMjA5OEQ2NQorOjAzMDAzMzAwMDIwOEZCQzUKKzowMzAwNDMwMDAyMEIwMEFECis6MDMwMDRCMDAwMjA1QUEwMQorOjEwMDEwMDAwOTA3RkE1RTA1NDEwRkZDNDU0MEY0NDUwRjUwRjEzRTQ0MgorOjEwMDExMDAwMzNGNTExOTA3RkU5RTAyNDVFQjQwNzAwNDAwMzAyMDM0OQorOjEwMDEyMDAwNzg5MDAxMjhGODI4Mjg3MzAyMDFCQzAyMDFCQzAyMDE2MgorOjEwMDEzMDAwOTEwMjAxM0QwMjAxNTMwMjAxNkYwMjAxOUE5MDdGMDA3QQorOjEwMDE0MDAwRTUxMUYwOTA3RkI1NzQwMUYwOTA3RkI0RTA0NDAyRjBDNworOjEwMDE1MDAwMDIwMzc4OTA3RjkyRTBGRkM0NTQwRjkwN0YwMEYwOTBFQworOjEwMDE2MDAwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQwMkYwMDIwMzc4MTI4RQorOjEwMDE3MDAwMEE4OTUwMDdFNDkwN0YwMEYwODAwNjkwN0YwMDc0MEY5QQorOjEwMDE4MDAwRjA5MDdGQjU3NDAxRjA5MDdGQjRFMDQ0MDJGMDAyMDM3OAorOjEwMDE5MDAwNzg5MDdGRUFFMEY1MEYwMjAzNzg5MDdGMDA3NDA3RjAxMworOjEwMDFBMDAwOTA3RkI1NzQwMUYwOTA3RkI0RTA0NDAyRjA3RkU4N0U2OAorOjEwMDFCMDAwMDMxMjBEOTREMjA2MTIwQ0NDMDIwMzc4OTA3RkVBRTA3MQorOjEwMDFDMDAwNzUyODAwRjUyOUEzRTBGRUU0RUU0MjI4OTA3RkVFRTBEQQorOjEwMDFEMDAwNzUyQTAwRjUyQkEzRTBGRUU0RUU0MjJBOTA3RkU4RTBDQQorOjEwMDFFMDAwNjRDMDYwMDMwMjAyQzlFNTJCNDUyQTcwMDMwMjAzNzg0QworOjEwMDFGMDAwQzNFNTJCOTQ0MEU1MkE5NDAwNTAwODg1MkEyQzg1MkJEMgorOjEwMDIwMDAwMkQ4MDA2NzUyQzAwNzUyRDQwOTA3RkU5RTA2NEEzNzA2OQorOjEwMDIxMDAwMzRGNTMwRjUzMUMzRTUzMTk1MkRFNTMwOTUyQzUwNUM0MgorOjEwMDIyMDAwRTUyOTI1MzFGNTgyRTUzMDM1MjhGNTgzRTBGRjc0MDBCNgorOjEwMDIzMDAwMjUzMUY1ODJFNDM0N0ZGNTgzRUZGMDA1MzFFNTMxNzA0NworOjEwMDI0MDAwMDIwNTMwODBEMEU0RjUzMEY1MzFDM0U1MzE5NTJERTU3OAorOjEwMDI1MDAwMzA5NTJDNTAxODc0MDAyNTMxRjU4MkU0MzQ3RkY1ODNGNQorOjEwMDI2MDAwNzRDREYwMDUzMUU1MzE3MDAyMDUzMDgwRERBRjI5QUU4NworOjEwMDI3MDAwMjhBRDJEN0E3Rjc5MDA3QjAwMTIwQkY0OTA3RkI1RTVENQorOjEwMDI4MDAwMkRGMEU1MkQyNTI5RjUyOUU1MkMzNTI4RjUyOEMzRTVBMAorOjEwMDI5MDAwMkI5NTJERjUyQkU1MkE5NTJDRjUyQTkwN0Y5MkUwRkZFMgorOjEwMDJBMDAwQzQ1NDBGNzUyRTAwRjUyRkQzOTQwMEU1MkU5NDAwNTAwMgorOjEwMDJCMDAwMEM5MDdGQjRFMDIwRTEwMzAyMDFFNzgwRjQ5MDdGQjQ2QQorOjEwMDJDMDAwRTAyMEUyMDMwMjAxRTc4MEY0OTA3RkU4RTA2NDQwNjAxMAorOjEwMDJEMDAwMDMwMjAzNzhFNTJCNDUyQTcwMDMwMjAzNzhFNDkwN0YzQworOjEwMDJFMDAwQzVGMDkwN0Y5MkUwRkZDNDU0MEY3NTJFMDBGNTJGRDMxOAorOjEwMDJGMDAwOTQwMEU1MkU5NDAwNTAwOTkwN0ZDNEUwMzBFMTA5ODAxRAorOjEwMDMwMDAwRjc5MDdGQjRFMDIwRTNGOTkwN0ZDNUUwNzUyQzAwRjUwRAorOjEwMDMxMDAwMkQ5MDdGRTlFMDY0QTM3MDM0RjUzMEY1MzFDM0U1MzEwOQorOjEwMDMyMDAwOTUyREU1MzA5NTJDNTAzNDc0QzAyNTMxRjU4MkU0MzQ5OAorOjAxMDMzMDAwN0U0RQorOjEwMDMzMTAwRjU4M0UwRkZFNTI5MjUzMUY1ODJFNTMwMzUyOEY1ODNBMAorOjEwMDM0MTAwRUZGMDA1MzFFNTMxNzAwMjA1MzA4MEQwQUYyOUFFMjhEQworOjEwMDM1MTAwQUQyRDdBN0U3OUMwN0JDMDEyMEMzRkU1MkQyNTI5RjVBNAorOjEwMDM2MTAwMjlFNTJDMzUyOEY1MjhDM0U1MkI5NTJERjUyQkU1MkExNAorOjA5MDM3MTAwOTUyQ0Y1MkEwMjAyRDRDMzIyRTYKKzoxMDAzN0EwMDkwN0ZFOUUwNzAwMzAyMDQ1MjE0NzAwMzAyMDRDRTI0NTEKKzoxMDAzOEEwMEZFNzAwMzAyMDU0MjI0RkI3MDAzMDIwNDRDMTQ3MDAzM0UKKzoxMDAzOUEwMDAyMDQ0NjE0NzAwMzAyMDQzQTE0NzAwMzAyMDQ0MDI0NEYKKzoxMDAzQUEwMDA1NjAwMzAyMDU5NjEyMEU0NDQwMDMwMjA1QTI5MDdGREYKKzoxMDAzQkEwMEVCRTAyNEZFNjAxNjE0NjA0MDI0MDI3MDY5NzQxMTkwMDgKKzoxMDAzQ0EwMDdGRDRGMDc0MDA5MDdGRDVGMDAyMDVBMjkwN0ZFQUUwMTYKKzoxMDAzREEwMEZGMTIwQjU4OEIyNThBMjY4OTI3RUE0OTYwMTFBRTAyM0IKKzoxMDAzRUEwMEVFOTA3RkQ0RjBBRjAxRUY5MDdGRDVGMDAyMDVBMjkwOTYKKzoxMDAzRkEwMDdGQjRFMDQ0MDFGMDAyMDVBMjkwN0ZFQUUwRkYxMjA4MTAKKzoxMDA0MEEwMEJBOEIyNThBMjY4OTI3RUE0OTYwMTFBRTAyRUU5MDdGQzcKKzoxMDA0MUEwMEQ0RjBBRjAxRUY5MDdGRDVGMDAyMDVBMjkwN0ZCNEUwNEYKKzoxMDA0MkEwMDQ0MDFGMDAyMDVBMjkwN0ZCNEUwNDQwMUYwMDIwNUEyNjMKKzoxMDA0M0EwMDEyMEUxRjAyMDVBMjEyMEUyRDAyMDVBMjEyMEFGNzAyQkYKKzoxMDA0NEEwMDA1QTIxMjBFMTEwMjA1QTIxMjBFNDY0MDAzMDIwNUEyQ0YKKzoxMDA0NUEwMDkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyNUMKKzoxMDA0NkEwMDAwRTQzM0ZGMjVFMEZGQTIwMkU0MzM0RjkwN0YwMEYwNUYKKzoxMDA0N0EwMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDVBMkU0OTA3RjAwMzUKKzoxMDA0OEEwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDVBMjkwN0ZFQ0UwMzEKKzoxMDA0OUEwMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0MUUKKzoxMDA0QUEwMEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzMDUKKzoxMDA0QkEwMEYwOTA3RkI1NzQwMkYwMDIwNUEyOTA3RkI0RTA0NDAxODcKKzoxMDA0Q0EwMEYwMDIwNUEyMTIwRTQ4NDAwMzAyMDVBMjkwN0ZFOEUwNUUKKzoxMDA0REEwMDI0RkU2MDFEMjQwMjYwMDMwMjA1QTI5MDdGRUFFMEI0QjQKKzoxMDA0RUEwMDAxMDVDMjAwMDIwNUEyOTA3RkI0RTA0NDAxRjAwMjA1QjIKKzoxMDA0RkEwMEEyOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NjkKKzoxMDA1MEEwMDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGMkEKKzoxMDA1MUEwMEY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTM1NDFGMkIKKzoxMDA1MkEwMEZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA2OTkwRDUKKzoxMDA1M0EwMDdGQjRFMDQ0MDFGMDgwNjAxMjBFNEE1MDVCOTA3RkU4N0QKKzoxMDA1NEEwMEUwMjRGRTYwMTgyNDAyNzA0RjkwN0ZFQUUwQjQwMTA0QjAKKzoxMDA1NUEwMEQyMDA4MDQ0OTA3RkI0RTA0NDAxRjA4MDNCOTA3RkVBNkYKKzoxMDA1NkEwMEUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNjkKKzoxMDA1N0EwMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxMEYKKzoxMDA1OEEwMEYwODAxNTkwN0ZCNEUwNDQwMUYwODAwQzEyMDEwMDUwMTUKKzoxMDA1OUEwMDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyNzcKKzoxMDA1QUEwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwOTIKKzoxMDA1QkEwMEQwQzAwMEMwMDFDMDAyQzAwM0MwMDZDMDA3OTA3RkE1MUEKKzoxMDA1Q0EwMEUwMzBFMjA2NzUwRDA2MDIwNjc2OTA3RkE1RTAyMEUxOEUKKzoxMDA1REEwMDBDRTUwRDY0MDI2MDA2NzUwRDA3MDIwNjc2QUYwREVGOTUKKzoxMDA1RUEwMDI0RkU2MDQ4MTQ2MDJDMjRGRTYwNzcyNDA0NjAwMzAyMTEKKzoxMDA1RkEwMDA2NzZBQjA5QUEwQUE5MEJBRjBDMDUwQzhGODI3NTgzODQKKzoxMDA2MEEwMDAwMTIwODIyOTA3RkE2RjBFNTBDNjUwODcwNUU3NTBENTEKKzoxMDA2MUEwMDA1ODA1OTkwN0ZBNkUwQUIwOUFBMEFBOTBCQUUwQzhFRjkKKzoxMDA2MkEwMDgyNzU4MzAwMTIwODRGNzUwRDAyODA0MEU1MDgyNEZFOEEKKzoxMDA2M0EwMEI1MEMwNzkwN0ZBNUUwNDQyMEYwRTUwODE0QjUwQzBBMzQKKzoxMDA2NEEwMDkwN0ZBNUUwNDQ0MEYwRTRGNTBEOTA3RkE2RTBBQjA5NjkKKzoxMDA2NUEwMEFBMEFBOTBCQUUwQzhFODI3NTgzMDAxMjA4NEYwNTBDRUMKKzoxMDA2NkEwMDgwMEE5MDdGQTVFMDQ0NDBGMEU0RjUwRDUzOTFERkQwNzUKKzoxMDA2N0EwMDA3RDAwNkQwMDNEMDAyRDAwMUQwMDBEMEQwRDA4NkQwODcKKzowQTA2OEEwMDg0RDA4NUQwODJEMDgzRDBFMDMyMDYKKzoxMDA2OTQwMDhDMzM4RDM0OTA3Rjk1RTA0NEMwRjBFNEY1MzVGNTM2MjUKKzoxMDA2QTQwMEMzRTUzNjk1MzRFNTM1OTUzMzUwNjlFRjI1MzZGNTgyNDMKKzoxMDA2QjQwMEU1MzUzRUY1ODM3NEZGRjBGNDYwMDJDMzIyRUYyNTM2N0UKKzoxMDA2QzQwMEY1ODJFNTM1M0VGNTgzRTRGMDYwMDJDMzIyRUYyNTM2N0EKKzoxMDA2RDQwMEY1ODJFNTM1M0VGNTgzNzRBQUYwNjRBQTYwMDJDMzIyNkMKKzoxMDA2RTQwMEVGMjUzNkY1ODJFNTM1M0VGNTgzNzQ1NUYwNjQ1NTYwQTMKKzoxMDA2RjQwMDAyQzMyMkFEMzZFNTM2MkZGNTgyRTUzNTNFRjU4M0VEQUUKKzoxMDA3MDQwMEYwRkNBQzA1RUQ2QzYwMDJDMzIyMDUzNkU1MzY3MDAyRTAKKzoxMDA3MTQwMDA1MzU4MDhDRTRGNTM1RjUzNkMzRTUzNjk1MzRFNTM1OTUKKzoxMDA3MjQwMDk1MzM1MDI3RUYyNTM2RjU4MkU1MzUzRUY1ODNFMDY1QjAKKzoxMDA3MzQwMDM2NjAwMkMzMjJFRjI1MzZGNTgyRTUzNTNFRjU4M0U0QzMKKzowRDA3NDQwMEYwMDUzNkU1MzY3MDAyMDUzNTgwQ0VEMzIyNzMKKzoxMDA3NTEwMEMyMDREMjA1QzIwM0MyMDBDMjAyQzIwMTEyMEUzREQyQkUKKzoxMDA3NjEwMEU4NDNEODIwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGOTEKKzoxMDA3NzEwMEFBRjA1MzkxRUY5MDdGOTVFMDQ0QzBGMDkwN0Y5Mzc0N0QKKzoxMDA3ODEwMDMwRjAxMjBBMTk5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwQTMKKzoxMDA3OTEwMDQ0MERGMEQyQUYxMjBFMzUyMDAxNDI3NTI0MDA3NTIzQUQKKzoxMDA3QTEwMDAwNzUyMjAwNzUyMTAwN0Y0ODdFOTI3RDAwN0MwMEFCQTAKKzoxMDA3QjEwMDI0QUEyM0E5MjJBODIxQzMxMjA4QTk1MERCMjAwMUQ4MDkKKzoxMDA3QzEwMDdBMDA3OTAwNzgwMEU1MjQyNDAxRjUyNEVBMzUyM0Y1M0YKKzoxMDA3RDEwMDIzRTkzNTIyRjUyMkU4MzUyMUY1MjE4MENBMzAwMTA1Q0EKKzoxMDA3RTEwMDEyMDM3QUMyMDEzMDA0MUExMjBFNDA1MDEzMTIwOTAwOEEKKzoxMDA3RjEwMDMwMDAwNzkwN0ZENkUwMzBFN0YzMTIwRDRBMTIwRTQyMjcKKzowODA4MDEwMEMyMDMxMjA4RkY4MEQ2MjI5OQorOjEwMDgwOTAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFRAorOjA5MDgxOTAwRTMyMjg5ODI4QTgzRTQ5MzIyMjAKKzoxMDA4MjIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwOEIKKzoxMDA4MzIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRDUKKzowRDA4NDIwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyRUYKKzoxMDA4NEYwMEY4QkIwMTBERTU4MjI5RjU4MkU1ODMzQUY1ODNFOEYwREYKKzoxMDA4NUYwMDIyNTAwNkU5MjU4MkM4RjYyMkJCRkUwNUU5MjU4MkM4OEIKKzowMjA4NkYwMEYyMjI3MworOjEwMDg3MTAwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBDNQorOjEwMDg4MTAwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkVBMgorOjEwMDg5MTAwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODNFOAorOjA4MDhBMTAwRTk5M0Y1RjBBM0U5OTMyMkFECis6MTAwOEE5MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMEE1Cis6MDEwOEI5MDAyMjFDCis6MDIwOEJBMDA4RjI4ODUKKzoxMDA4QkMwMEU0RjUyOTc1MkFGRjc1MkIxMTc1MkMzMkFCMkFBQTJCNUUKKzoxMDA4Q0MwMEE5MkM5MDAwMDExMjA4MjJCNDAzMURBRjI5MDUyOUVGQjEKKzoxMDA4REMwMEI1MjgwMTIyMTIwODA5N0UwMDI5RkZFRTNBQTkwNzc1RjYKKzowRTA4RUMwMDJBRkZGNTJCODkyQzgwRDQ3QjAwN0EwMDc5MDAzRQorOjAxMDhGQTAwMjJEQgorOjA0MDhGQjAwNTNEOEVGMzJBRAorOjAxMDhGRjAwMjJENgorOjA5MDkwMDAwOTA3RkQ2RTA0NDgwRjA4MDc0ODEKKzoxMDA5N0QwMDQzODcwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyN0QKKzowQzA5OEQwMDc4N0ZFNEY2RDhGRDc1ODEzOTAyMDlENEFBCis6MTAwOTk5MDAwMjA3NTFFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjFDCis6MTAwOUE5MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzVGCis6MTAwOUI5MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjJFCis6MTAwOUM5MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwREVDRTQ3RUM1Cis6MTAwOUQ5MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzIzCis6MTAwOUU5MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0VBCis6MTAwOUY5MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTE1Cis6MTAwQTA5MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUNDCis6MTAwQTE5MDBFNDkwN0Y5Q0YwN0YwQUZFMTIwRDk0OTA3Rjk2NzQ4OTcyCis6MTAwQTI5MDBGMDkwN0Y5Qzc0Q0ZGMDdGRjQ3RTAxMTIwRDk0OTA3RjNCCis6MTAwQTM5MDA5NkUwNTRGRUYwN0YwQTdFMDAxMjBEOTQ3RjA1N0UwMDM5Cis6MTAwQTQ5MDAxMjBEOTQ5MDdGOTZFMDQ0MDJGMEUwNTQ3RkYwN0YwNTA4Cis6MTAwQTU5MDA3RTAwMTIwRDk0OTA3Rjk2RTA0NDQwRjA3RjA1N0UwMDYxCis6MTAwQTY5MDAxMjBEOTQ5MDdGOTZFMDU0QkZGMDdGMzI3RTAwMTIwREY0Cis6MTAwQTc5MDA5NDkwN0Y5NkUwNDQ0MEYwN0YzMjdFMDAxMjBEOTQyMkRDCis6MTAwQTg5MDA3NTMyMDFFNTMyNjAxQjdGMDExMjBERDc3RjAwN0UwRUEyCis6MTAwQTk5MDA3RDAwN0MwMTEyMDY5NEU0MzNGNTMyNzAwNTdGMEYxMjU0Cis6MTAwQUE5MDAwREQ3RTUzMjYwMUI3RjAyMTIwREQ3N0YwMDdFODA3RDU2Cis6MTAwQUI5MDAwMDdDODAxMjA2OTRFNDMzRjUzMjcwMDU3RjBGMTIwRDI1Cis6MTAwQUM5MDBEN0U1MzI2MDFCN0YwMzEyMERENzdGMDA3RTIwN0Q0MDYyCis6MTAwQUQ5MDA3QzVCMTIwNjk0RTQzM0Y1MzI3MDA1N0YwRjEyMERENzUzCis6MEUwQUU5MDBFNTMyNjAwNUU0RkYxMjBERDdFNTMyMjRGRjIyNEUKKzowODBBRjcwMDkwN0ZFQUUwRjUxMEQzMjIyNAorOjAxMEFGRjAwMzJDNAorOjEwMEIwMDAwMDIwRDY0MDAwMjBEQUIwMDAyMEQyRjAwMDIwRDdDMDBFRgorOjEwMEIxMDAwMDIwREMxMDAwMjBBRkYwMDAyMEU0QzAwMDIwRTREMDA0MQorOjEwMEIyMDAwMDIwRTRFMDAwMjBFNEYwMDAyMEU1MDAwMDIwRTUxMDA0NworOjEwMEIzMDAwMDIwRTUyMDAwMjBFNTMwMDAyMEU1NDAwMDIwRTU1MDAyNworOjEwMEI0MDAwMDIwRTU2MDAwMjBFNTcwMDAyMEU1ODAwMDIwRTU5MDAwNworOjA4MEI1MDAwMDIwRTVBMDAwMjBFNUIwMEM4Cis6MTAwQjU4MDBFNEZFNzUyQUZGNzUyQjExNzUyQzEyQUIyQUFBMkJBOTU2Cis6MTAwQjY4MDAyQzkwMDAwMTEyMDgyMjY0MDI3MDJEQUQwNjBFRURCNTFFCis6MTAwQjc4MDAwNzAxMjI5MDAwMDIxMjA4NzE4NUYwMjhGNTI5NjIyOEUxCis6MTAwQjg4MDBFNTI4NjIyOUU1Mjk2MjI4MjlGREU1MjgzQUE5MDU3NTlECis6MEUwQjk4MDAyQUZGRjUyQjg5MkM4MEMzN0IwMDdBMDA3OTAwQTAKKzowMTBCQTYwMDIyMkMKKzoxMDBCQTcwMEFCMDdBQTA2QUMwNUU0RkRFNTExNjAxMUVBRkZBRTA1NDcKKzoxMDBCQjcwMDBERUUyNDEwRjU4MkU0MzQwRkY1ODNFRkYwRUJBRTA1NkMKKzoxMDBCQzcwMDBENzQxMDJFRjU4MkU0MzQwRkY1ODNFQkYwQUYwNTBEQUQKKzoxMDBCRDcwMDc0MTAyRkY1ODJFNDM0MEZGNTgzRUNGMEFGMEY3QTBGMjIKKzowRDBCRTcwMDdCMTAxMjBEMTA3RjBBN0UwMDEyMEQ5NDIyNkIKKzoxMDBCRjQwMDhFMzI4RjMzOEQzNDhBMzU4QjM2RTRGREY1MzdFNTExMkIKKzoxMDBDMDQwMDYwMTJFNTMyRkZBRTA1MERFRTI0MTNGNTgyRTQzNDBGRDUKKzoxMDBDMTQwMEY1ODNFRkYwRTUzM0FFMDUwRDc0MTMyRUY1ODJFNDM0NUQKKzoxMDBDMjQwMDBGRjU4M0U1MzNGMEFGMEY3QTBGN0IxMzEyMEQxMEFGN0UKKzowQjBDMzQwMDBGQUQzNEFCMzZBQTM1MTIwQ0YxMjJENAorOjEwMEMzRjAwOEUzMjhGMzM4RDM0OEEzNThCMzZFNEY1MzdFNTM3QzNGMworOjEwMEM0RjAwOTUzNDUwMjAwNTMzRTUzM0FFMzI3MDAyMDUzMjE0RkY3MAorOjEwMEM1RjAwRTUzNjI1MzdGNTgyRTQzNTM1RjU4M0UwRkQxMjBCQTczMAorOjA1MEM2RjAwMDUzNzgwRDkyMkM5Cis6MTAwQzc0MDBBOTA3RTUwRDcwMjU5MDdGQTVFMDQ0ODBGMEU5MjVFMDAzCis6MTAwQzg0MDA0NDAxOTA3RkE2RjA4RDA4QUYwM0E5MDc3NTA5MDE4QTc2Cis6MEQwQzk0MDAwQTg5MEJFNEY1MEM3NTBEMDNEMzIyQzMyMjcxCis6MTAwQ0ExMDBBOTA3RTUwRDcwMjM5MDdGQTVFMDQ0ODBGMEU5MjVFMEQ4Cis6MTAwQ0IxMDA5MDdGQTZGMDhEMDhBRjAzQTkwNzc1MDkwMThBMEE4OUZCCis6MEIwQ0MxMDAwQkU0RjUwQzc1MEQwMUQzMjJDMzIyREIKKzoxMDBDQ0MwMDkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDA2MDRFMDQ0OUEKKzoxMDBDREMwMDAyRjA3RkQwN0UwNzEyMEQ5NDkwN0ZENkUwNTRGN0YwOEYKKzowNTBDRUMwMEUwNDQwNEYwMjJDOQorOjEwMENGMTAwMTIwQzc0RTUwRDI0RkE2MDEwMTQ2MDA3MjQwNzcwRjNEOAorOjBGMEQwMTAwN0YwODIyRTRGNTBEN0YwNzIyRTRGNTBEN0YwNjIyMUYKKzoxMDBEMTAwMDEyMENBMUU1MEQyNEZBNjAxMDE0NjAwNzI0MDc3MEYzOEIKKzowRjBEMjAwMDdGMDgyMkU0RjUwRDdGMDcyMkU0RjUwRDdGMDYyMjAwCis6MTAwRDJGMDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RjA2Cis6MEIwRDNGMDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyMEYKKzoxMDBENEEwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyNzMKKzowQTBENUEwMDBEOTQ5MDdGRDZFMDU0RkVGMDIyQzUKKzoxMDBENjQwMEMwRTBDMDgzQzA4MkQyMDE1MzkxRUY5MDdGQUI3NDAxODUKKzowODBENzQwMEYwRDA4MkQwODNEMEUwMzIwMAorOjEwMEQ3QzAwQzBFMEMwODNDMDgyRDIwMzUzOTFFRjkwN0ZBQjc0MDg2NAorOjA4MEQ4QzAwRjBEMDgyRDA4M0QwRTAzMkU4Cis6MTAwRDk0MDA4RTM4OEYzOUU1MzkxNTM5QUUzODcwMDIxNTM4NEU2MDAyCis6MDcwREE0MDAwNTEyMEUwMDgwRUUyMjkzCis6MTAwREFCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjBEMDUwCis6MDYwREJCMDA4MkQwODNEMEUwMzI3QgorOjEwMERDMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDAyQworOjA2MEREMTAwODJEMDgzRDBFMDMyNjUKKzoxMDBERDcwMEFFMDc3RjIxN0QwMTc0MDAyRUY1ODJFNDM0MEZBQjgyQ0MKKzowNTBERTcwMEZBMTIwRDEwMjJCQworOjEwMERFQzAwNTAwRjAwQzBGOUE0QjA5OTkyODJGODgwOTg4ODgzQzZGRAorOjAzMERGQzAwQTE4NjhFM0YKKzowMTBERkYwMDAwRjMKKzoxMDBFMDAwMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MDUKKzowMTBFMTAwMDIyQkYKKzowRTBFMTEwMDkwN0YwMEU1MTBGMDkwN0ZCNTc0MDFGMEQzMjJDMQorOjBFMEUxRjAwOTA3RjAwRTUwRUYwOTA3RkI1NzQwMUYwRDMyMkI1Cis6MDgwRTJEMDA5MDdGRUFFMEY1MEVEMzIyRUMKKzowODBFMzUwMEU0RjUwREQyRTlEMkFGMjI3MQorOjAzMEUzRDAwRDIwMDIyQkUKKzowMjBFNDAwMEQzMjJCQgorOjAyMEU0MjAwRDMyMkI5Cis6MDIwRTQ0MDBEMzIyQjcKKzowMjBFNDYwMEQzMjJCNQorOjAyMEU0ODAwRDMyMkIzCis6MDIwRTRBMDBEMzIyQjEKKzowMTBFNEMwMDMyNzMKKzowMTBFNEQwMDMyNzIKKzowMTBFNEUwMDMyNzEKKzowMTBFNEYwMDMyNzAKKzowMTBFNTAwMDMyNkYKKzowMTBFNTEwMDMyNkUKKzowMTBFNTIwMDMyNkQKKzowMTBFNTMwMDMyNkMKKzowMTBFNTQwMDMyNkIKKzowMTBFNTUwMDMyNkEKKzowMTBFNTYwMDMyNjkKKzowMTBFNTcwMDMyNjgKKzowMTBFNTgwMDMyNjcKKzowMTBFNTkwMDMyNjYKKzowMTBFNUEwMDMyNjUKKzowMTBFNUIwMDMyNjQKKzoxMDExMDAwMDEyMDEwMDAxMDAwMDAwNDA0NzA1MTAyNzAxMDAwMTAyMDQKKzoxMDExMTAwMDAwMDEwOTAyMjAwMDAxMDEwM0EwMDAwOTA0MDAwMDAyRUYKKzoxMDExMjAwMEZGMDAwMDA0MDcwNTgyMDI0MDAwMDAwNzA1MDIwMjQwOUMKKzoxMDExMzAwMDAwMDAwNDAzMDkwNDI2MDM0MTAwNkUwMDYzMDA2ODAwRjgKKzoxMDExNDAwMDZGMDA3MjAwMjAwMDQzMDA2ODAwNjkwMDcwMDA3MzAwQTcKKzoxMDExNTAwMDJDMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDI4MDM0NjAwOEEKKzoxMDExNjAwMDY5MDA3MjAwNkQwMDc3MDA2MTAwNzIwMDY1MDAyMDAwNjgKKzoxMDExNzAwMDQ2MDA3MjAwNjEwMDZEMDA2NTAwNTcwMDZGMDA3MjAwNEMKKzoxMDExODAwMDZCMDA3MzAwMkEwMzQzMDA2RjAwNkUwMDY2MDA2OTAwNjUKKzoxMDExOTAwMDY3MDA3NTAwNzIwMDYxMDA3NDAwNjkwMDZGMDA2RTAwRTYKKzoxMDExQTAwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMjAzODMKKzoxMDExQjAwMDQ5MDA2RTAwNzQwMDY1MDA3MjAwNjYwMDYxMDA2MzAwMDMKKzoxMDExQzAwMDY1MDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjMKKzowMjExRDAwMDAwMDAxRAorOjAwMDAwMDAxRkYKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgICAgd2hpdGVoZWF0LmggIC0tICBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgRmlybXdhcmUuCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jIChodHRwOi8vd3d3LmNvbm5lY3R0ZWNoLmNvbS8pCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkCisgKglGaXJtd2FyZSA0LjA2CisgKgorICogKDA0LzA5LzIwMDApIGdraAorICoJVXBkYXRlZCB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbGF0ZXN0IHByb3ZpZGVkIGJ5IENvbm5lY3RUZWNoLgorICoKKyAqICgwMS8xNi8yMDAwKSBna2gKKyAqCUZpeGVkIG15IGludGVsIGhleCBwcm9jZXNzaW5nIHRvb2wsIHNvIG5vdyB0aGUgZmlybXdhcmUgYWN0dWFsbHkKKyAqCW1hdGNoZXMgdGhlIG9yaWdpbmFsIGZpbGUgKHRoaXMgd2FzIGNhdXNpbmcgYSBmZXcgcHJvYmxlbXMuLi4pCisgKgorICogKDAxLzE1LzIwMDApIGdraAorICoJQWRkZWQgZGVidWcgbG9hZGVyIGZpcm13YXJlIGlmIERFQlVHIGlzICNkZWZpbmVkOgorICoJCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZworICoJCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKKyAqCQlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCisgKgkJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycworICoKKyAqIHZlcnNpb24gMS4wICgwMS8wOS8yMDAwKSBna2gKKyAqCU9yaWdpbmFsIGZpcm13YXJlIGZyb20gQ29ubmVjdFRlY2ggbWFzc2FnZWQgYSBsaXR0bGUgdG8gYmUgcHJvZ3JhbQorICoJcmVhZGFibGUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIHdoaXRlaGVhdF9EQVRFICIyMDAwMDEwNiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXJfZGVidWcuSEVYIGIvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlcl9kZWJ1Zy5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYzM2Q1OAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXJfZGVidWcuSEVYCkBAIC0wLDAgKzEsNDAzIEBACis6MTAwMDAwMDAwMDAwMDAwMDAzMDIwOThEMDAwMDAwMzMwMzAyMEU3MDlGCis6MTAwMDEwMDAwMDAwMDA0MzAzMDIwQjAwMDAwMDAwNEIwMzAyMDVCMzg1Cis6MTAwMDIwMDAwMDAwMDEwMDEwOTA3RkE1RTA1NDEwRkZDNDU0MEY0NDVECis6MTAwMDMwMDA1MEY1MEYxM0U0MDAwMTEwMDAwMDAxMTAxMDMzRjUxMTBBCis6MTAwMDQwMDA5MDdGRTlFMDI0NUVCNDA3MDA0MDAzMDIwMzAwMDEyMDMyCis6MTAwMDUwMDAwMDAwMDEyMDEwN0M5MDAxMjhGODI4Mjg3MzAyMDFCQ0MwCis6MTAwMDYwMDAwMjAxQkMwMjAxMDAwMTMwMDAwMDAxMzAxMDkxMDIwMUM4Cis6MTAwMDcwMDAzRDAyMDE1MzAyMDE2RjAyMDE5QTkwN0YwMDAwMDE0MDhFCis6MTAwMDgwMDAwMDAwMDE0MDEwRTUxMUYwOTA3RkI1NzQwMUYwOTA3RjAxCis6MTAwMDkwMDBCNEUwNDQwMkYwMDAwMTUwMDAwMDAxNTAxMDAyMDM3QzYzCis6MTAwMEEwMDA5MDdGOTJFMEZGQzQ1NDBGOTA3RjAwRjA5MDAwMDE2MEI5Cis6MTAwMEIwMDAwMDAwMDE2MDEwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQwMjRECis6MTAwMEMwMDBGMDAyMDM3QzEyMDAwMTcwMDAwMDAxNzAxMDBBODk1MEQ4Cis6MTAwMEQwMDAwN0U0OTA3RjAwRjA4MDA2OTA3RjAwNzQwRjAwMDE4MDlECis6MTAwMEUwMDAwMDAwMDE4MDEwRjA5MDdGQjU3NDAxRjA5MDdGQjRFMEMzCis6MTAwMEYwMDA0NDAyRjAwMjAzMDAwMTkwMDAwMDAxOTAxMDdDOTA3RjA4Cis6MTAwMTAwMDBFQUUwRjUwRjAyMDM3QzkwN0YwMDc0MDdGMDAwMDFBMDg1Cis6MTAwMTEwMDAwMDAwMDFBMDEwOTA3RkI1NzQwMUYwOTA3RkI0RTA0NDFFCis6MTAwMTIwMDAwMkYwN0ZFODdFMDAwMUIwMDAwMDAxQjAxMDAzMTIwRDY0Cis6MTAwMTMwMDBENUQyMDYxMjBEMEQwMjAzN0M5MDdGRUFFMDAwMDFDMENCCis6MTAwMTQwMDAwMDAwMDFDMDEwNzUyOTAwRjUyQUEzRTBGRUU0RUU0MjhDCis6MTAwMTUwMDAyOTkwN0ZFRUUwMDAwMUQwMDAwMDAxRDAxMDc1MkIwMDQ3Cis6MTAwMTYwMDBGNTJDQTNFMEZFRTRFRTQyMkI5MDdGRThFMDAwMDFFMEY2Cis6MTAwMTcwMDAwMDAwMDFFMDEwNjRDMDYwMDMwMjAyQzlFNTJDNDUyQkI5Cis6MTAwMTgwMDA3MDAzMDIwMzdDMDAwMUYwMDAwMDAxRjAxMEMzRTUyQ0I1Cis6MTAwMTkwMDA5NDQwRTUyQjk0MDA1MDA4ODUyQjJEODUyQzAwMDIwMEZGCis6MTAwMUEwMDAwMDAwMDIwMDEwMkU4MDA2NzUyRDAwNzUyRTQwOTA3RkY1Cis6MTAwMUIwMDBFOUUwNjRBMzcwMDAwMjEwMDAwMDAyMTAxMDM0RjUzMTcxCis6MTAwMUMwMDBGNTMyQzNFNTMyOTUyRUU1MzE5NTJENTA1QzAwMDIyMEM1Cis6MTAwMUQwMDAwMDAwMDIyMDEwRTUyQTI1MzJGNTgyRTUzMTM1MjlGNUE3Cis6MTAwMUUwMDA4M0UwRkY3NDAwMDAwMjMwMDAwMDAyMzAxMDI1MzJGNTc5Cis6MTAwMUYwMDA4MkU0MzQ3RkY1ODNFRkYwMDUzMkU1MzI3MDAwMDI0MDhGCis6MTAwMjAwMDAwMDAwMDI0MDEwMDIwNTMxODBEMEU0RjUzMUY1MzJDMzIwCis6MTAwMjEwMDBFNTMyOTUyRUU1MDAwMjUwMDAwMDAyNTAxMDMxOTUyRDc4Cis6MTAwMjIwMDA1MDE4NzQwMDI1MzJGNTgyRTQzNDdGRjU4MzAwMDI2MEIzCis6MTAwMjMwMDAwMDAwMDI2MDEwNzRDREYwMDUzMkU1MzI3MDAyMDUzMTI1Cis6MTAwMjQwMDA4MEREQUYyQUFFMDAwMjcwMDAwMDAyNzAxMDI5QUQyRUQyCis6MTAwMjUwMDA3QTdGNzkwMDdCMDAxMjBCRjQ5MDdGQjVFNTAwMDI4MDc1Cis6MTAwMjYwMDAwMDAwMDI4MDEwMkVGMEU1MkUyNTJBRjUyQUU1MkQzNTE2Cis6MTAwMjcwMDAyOUY1MjlDM0U1MDAwMjkwMDAwMDAyOTAxMDJDOTUyRTZDCis6MTAwMjgwMDBGNTJDRTUyQjk1MkRGNTJCOTA3RjkyRTBGRjAwMDJBMDM5Cis6MTAwMjkwMDAwMDAwMDJBMDEwQzQ1NDBGNzUyRjAwRjUzMEQzOTQwMDU1Cis6MTAwMkEwMDBFNTJGOTQwMDUwMDAwMkIwMDAwMDAyQjAxMDBDOTA3RkM3Cis6MTAwMkIwMDBCNEUwMjBFMTAzMDIwMUU3ODBGNDkwN0ZCNDAwMDJDMEMzCis6MTAwMkMwMDAwMDAwMDJDMDEwRTAyMEUyMDMwMjAxRTc4MEY0OTA3RjBBCis6MTAwMkQwMDBFOEUwNjQ0MDYwMDAwMkQwMDAwMDAyRDAxMDAzMDIwMzk2Cis6MTAwMkUwMDA3Q0U1MkM0NTJCNzAwMzAyMDM3Q0U0OTA3RjAwMDJFMDQ4Cis6MTAwMkYwMDAwMDAwMDJFMDEwQzVGMDkwN0Y5MkUwRkZDNDU0MEY3NTNCCis6MTAwMzAwMDAyRjAwRjUzMEQzMDAwMkYwMDAwMDAyRjAxMDk0MDBFNTU5Cis6MTAwMzEwMDAyRjk0MDA1MDA5OTA3RkM0RTAzMEUxMDk4MDAwMDMwMDcxCis6MTAwMzIwMDAwMDAwMDMwMDEwRjc5MDdGQjRFMDIwRTNGOTkwN0ZDNTUwCis6MTAwMzMwMDBFMDc1MkQwMEY1MDAwMzEwMDAwMDAzMTAxMDJFOTA3RkQzCis6MTAwMzQwMDBFOUUwNjRBMzcwMzg5MDIwNkJGMEY1MzFGNTAwMDMyMEVDCis6MTAwMzUwMDAwMDAwMDMyMDEwMzJDM0U1MzI5NTJFRTUzMTk1MkQ1MDczCis6MTAwMzYwMDAzNDc0QzAyNTMyMDAwMzMwMDAwMDAzMzAxMEY1ODJFNEZECis6MTAwMzcwMDAzNDdFRjU4M0UwRkZFNTJBMjUzMkY1ODJFNTAwMDM0MDZGCis6MTAwMzgwMDAwMDAwMDM0MDEwMzEzNTI5RjU4M0VGRjAwNTMyRTUzMkU2Cis6MTAwMzkwMDA3MDAyMDUzMTgwMDAwMzUwMDAwMDAzNTAxMEQwQUYyQUQ2Cis6MTAwM0EwMDBBRTI5QUQyRTdBN0U3OUMwN0JDMDEyMEM4MDAwMDM2MDJFCis6MTAwM0IwMDAwMDAwMDM2MDEwRTUyRTI1MkFGNTJBRTUyRDM1MjlGNUU0Cis6MTAwM0MwMDAyOUMzRTUyQzk1MDAwMzcwMDAwMDAzNzAwRDJFRjUyQzU5Cis6MTAwM0QwMDBFNTJCOTUyREY1MkIwMjAyRDRDMzAwMDAwMDAwMDM3RDEwCis6MTAwM0UwMDAwMTIyMDAwMDAwMDAwMzdFMTA5MDdGRTlFMDcwMDMwMjBDCis6MTAwM0YwMDAwNDU2MTQ3MDAzMDIwNEQyMjQwMDAzOEUwMDAwMDM4RUZFCis6MTAwNDAwMDAxMEZFNzAwMzAyMDU0NjI0RkI3MDAzMDIwNDUwMTQ3MEIyCis6MTAwNDEwMDAwMzAwMDM5RTAwMDAwMzlFMTAwMjA0NEExNDcwMDMwMkFFCis6MTAwNDIwMDAwNDNFMTQ3MDAzMDIwNDQ0MjQwMDAzQUUwMDAwMDNBRTMzCis6MTAwNDMwMDAxMDA1NjAwMzAyMDU5QTEyMEU3QjQwMDMwMjA1QUI5MDgzCis6MTAwNDQwMDA3RjAwMDNCRTAwMDAwM0JFMTBFQkUwMjRGRTYwMTYxNDI0Cis6MTAwNDUwMDA2MDQwMjQwMjcwNjk3NDExOTAwMDAzQ0UwMDAwMDNDRTQ2Cis6MTAwNDYwMDAxMDdGRDRGMDc0MDA5MDdGRDVGMDAyMDVBQjkwN0ZFQTQ2Cis6MTAwNDcwMDBFMDAwMDNERTAwMDAwM0RFMTBGRjEyMEI1ODhCMjY4QTFCCis6MTAwNDgwMDAyNzg5MjhFQTQ5NjAxMUFFMDIwMDAzRUUwMDAwMDNFRTVFCis6MTAwNDkwMDAxMEVFOTA3RkQ0RjBBRjAxRUY5MDdGRDVGMDAyMDVBQjY2Cis6MTAwNEEwMDA5MDAwMDNGRTAwMDAwM0ZFMTA3RkI0RTA0NDAxRjAwMjYwCis6MTAwNEIwMDAwNUFCOTA3RkVBRTBGRjEyMEMwMDA0MEUwMDAwMDQwRTcyCis6MTAwNEMwMDAxMDNGOEIyNjhBMjc4OTI4RUE0OTYwMTFBRTAyRUU5MEY4Cis6MTAwNEQwMDA3RjAwMDQxRTAwMDAwNDFFMTBENEYwQUYwMUVGOTA3RkQ3Cis6MTAwNEUwMDBENUYwMDIwNUFCOTA3RkI0RTAwMDA0MkUwMDAwMDQyRThFCis6MTAwNEYwMDAxMDQ0MDFGMDAyMDVBQjkwN0ZCNEUwNDQwMUYwMDIwNTI2Cis6MTAwNTAwMDBBQjAwMDQzRTAwMDAwNDNFMTAxMjBFNTIwMjA1QUIxMjc2Cis6MTAwNTEwMDAwRTYwMDIwNUFCMTIwQUY3MDIwMDA0NEUwMDAwMDQ0RTAyCis6MTAwNTIwMDAxMDA1QUIxMjA4RjEwMjA1QUIxMjBFN0Q0MDAzMDIwNTY3Cis6MTAwNTMwMDBBQjAwMDQ1RTAwMDAwNDVFMTA5MDdGRThFMDI0N0Y2MDYyCis6MTAwNTQwMDAyNDE0NjAzMTI0MDI3MDVCQTIwMDA0NkUwMDAwMDQ2RTZCCis6MTAwNTUwMDAxMDAwRTQzM0ZGMjVFMEZGQTIwMkU0MzM0RjkwN0YwMDU4Cis6MTAwNTYwMDBGMDAwMDQ3RTAwMDAwNDdFMTBFNEEzRjA5MDdGQjU3NEQ4Cis6MTAwNTcwMDAwMkYwMDIwNUFCRTQ5MDdGMDAwMDA0OEUwMDAwMDQ4RUMwCis6MTAwNTgwMDAxMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDVBQjkwN0ZFQzAxCis6MTAwNTkwMDBFMDAwMDQ5RTAwMDAwNDlFMTBGNDU0ODBGRkM0NTQwRjM5Cis6MTAwNUEwMDBGRkUwNTQwNzJGMjVFMDI0QjQwMDA0QUUwMDAwMDRBRUExCis6MTAwNUIwMDAxMEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNDkxCis6MTAwNUMwMDBBMzAwMDRCRTAwMDAwNEJFMTBGMDkwN0ZCNTc0MDJGMERBCis6MTAwNUQwMDAwMjA1QUI5MDdGQjRFMDQ0MDEwMDA0Q0UwMDAwMDRDRURECis6MTAwNUUwMDAxMEYwMDIwNUFCMTIwRTdGNDAwMzAyMDVBQjkwN0ZFOENFCis6MTAwNUYwMDBFMDAwMDRERTAwMDAwNERFMTAyNEZFNjAxRDI0MDI2MDIyCis6MTAwNjAwMDAwMzAyMDVBQjkwN0ZFQUUwQjQwMDA0RUUwMDAwMDRFRUM0Cis6MTAwNjEwMDAxMDAxMDVDMjAwMDIwNUFCOTA3RkI0RTA0NDAxRjAwMjc2Cis6MTAwNjIwMDAwNTAwMDRGRTAwMDAwNEZFMTBBQjkwN0ZFQUUwNzAzODg1Cis6MTAwNjMwMDA5MDdGRUNFMEY0NTQ4MEZGQzQwMDA1MEUwMDAwMDUwRTJFCis6MTAwNjQwMDAxMDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDYyCis6MTAwNjUwMDA3RjAwMDUxRTAwMDAwNTFFMTBGNTgzRTRGMDkwN0ZFQzdFCis6MTAwNjYwMDBFMDU0ODBGRjEzMTMxMzU0MUYwMDA1MkUwMDAwMDUyRUM1Cis6MTAwNjcwMDAxMEZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA2RTA5Cis6MTAwNjgwMDA5MDAwMDUzRTAwMDAwNTNFMTA3RkI0RTA0NDAxRjA4MDdDCis6MTAwNjkwMDA2NTEyMEU4MTUwNjA5MDdGRTgwMDA1NEUwMDAwMDU0RTA3Cis6MTAwNkEwMDAxMEUwMjRGRTYwMTgyNDAyNzA1NDkwN0ZFQUUwQjQwMTQ4Cis6MTAwNkIwMDAwNDAwMDU1RTAwMDAwNTVFMTBEMjAwODA0OTkwN0ZCNDAyCis6MTAwNkMwMDBFMDQ0MDFGMDgwNDA5MDdGRUEwMDA1NkUwMDAwMDU2RTc2Cis6MTAwNkQwMDAxMEUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkQyCis6MTAwNkUwMDBFMDAwMDU3RTAwMDAwNTdFMTA1NDA3MkYyNUUwMjRCNEFECis6MTAwNkYwMDBGNTgyRTQzNDdGRjU4Mzc0MDEwMDA1OEUwMDAwMDU4RUQ5Cis6MTAwNzAwMDAxMEYwODAxQTkwN0ZCNEUwNDQwMUYwODAxMUU0OTAyMDUyCis6MTAwNzEwMDA2QTAwMDU5RTAwMDAwNTlFMTBGMDEyMDEwMDUwMDc5MDJGCis6MTAwNzIwMDA3RkI0RTA0NDAxRjA5MDdGQjQwMDA1QUUwMDAwMDVBRTU4Cis6MTAwNzMwMDAwNEUwNDQwMkYwMDAwMDAwMDAwMDA1QjIwMTIyMDAwMEM1Cis6MTAwNzQwMDAwMDAwMDVCMzEwQzBFMEMwODNDMDgyQzA4NUMwODRDMDczCis6MTAwNzUwMDA4Njc1ODYwMEMwMDAwNUMzMDAwMDA1QzMxMEQwQzAwMDI4Cis6MTAwNzYwMDBDMDAxQzAwMkMwMDNDMDA2QzAwNzkwN0ZBNTAwMDVEMzJBCis6MTAwNzcwMDAwMDAwMDVEMzEwRTAzMEUyMDY3NTBEMDYwMjA2N0Y5MEZBCis6MTAwNzgwMDA3RkE1RTAyMEUxMDAwNUUzMDAwMDA1RTMxMDBDRTUwRDg2Cis6MTAwNzkwMDA2NDAyNjAwNjc1MEQwNzAyMDY3RkFGMERFRjAwMDVGM0RBCis6MTAwN0EwMDAwMDAwMDVGMzEwMjRGRTYwNDgxNDYwMkMyNEZFNjA3N0RFCis6MTAwN0IwMDAyNDA0NjAwMzAyMDAwNjAzMDAwMDA2MDMxMDA2N0ZBQjVBCis6MTAwN0MwMDAwOUFBMEFBOTBCQUYwQzA1MEM4RjgyNzU4MzAwMDYxM0NBCis6MTAwN0QwMDAwMDAwMDYxMzEwMDAxMjA3ODU5MDdGQTZGMEU1MEM2NTU3Cis6MTAwN0UwMDAwODcwNUU3NTBEMDAwNjIzMDAwMDA2MjMxMDA1ODA1OTcxCis6MTAwN0YwMDA5MDdGQTZFMEFCMDlBQTBBQTkwQkFFMEM4RTAwMDYzM0M3Cis6MTAwODAwMDAwMDAwMDYzMzEwODI3NTgzMDAxMjA3QjI3NTBEMDI4MDU2Cis6MTAwODEwMDA0MEU1MDgyNEZFMDAwNjQzMDAwMDA2NDMxMEI1MEMwNzFGCis6MTAwODIwMDA5MDdGQTVFMDQ0MjBGMEU1MDgxNEI1MEMwQTAwMDY1M0JCCis6MTAwODMwMDAwMDAwMDY1MzEwOTA3RkE1RTA0NDQwRjBFNEY1MEQ5MEQxCis6MTAwODQwMDA3RkE2RTBBQjA5MDAwNjYzMDAwMDA2NjMxMEFBMEFBOUIwCis6MTAwODUwMDAwQkFFMEM4RTgyNzU4MzAwMTIwN0IyMDUwQzAwMDY3Mzc2Cis6MTAwODYwMDAwMDAwMDY3MzEwODAwQTkwN0ZBNUUwNDQ0MEYwRTRGNTk0Cis6MTAwODcwMDAwRDUzOTFERkQwMDAwNjgzMDAwMDA2ODMxMDA3RDAwNkQ5Cis6MTAwODgwMDBEMDAzRDAwMkQwMDFEMDAwRDBEMEQwODZEMDAwMDY5M0MzCis6MTAwODkwMDAwMDAwMDY5MzBBODREMDg1RDA4MkQwODNEMEUwMzIwMDU1Cis6MTAwOEEwMDAwMDAwMDY5RDEwQzIwNEQyMDVFNEY1MjVDMjAzQzIwMDczCis6MTAwOEIwMDBDMjAyQzIwMTEyMDAwNkFEMDAwMDA2QUQxMDBFNzREMkQ1Cis6MTAwOEMwMDBFODQzRDgyMDkwN0ZBQjc0RkZGMDkwN0ZBOTAwMDZCRDZECis6MTAwOEQwMDAwMDAwMDZCRDEwRjA5MDdGQUFGMDUzOTFFRjkwN0Y5NTM1Cis6MTAwOEUwMDBFMDQ0QzBGMDkwMDAwNkNEMDAwMDA2Q0QxMDdGOTM3NDY4Cis6MTAwOEYwMDAzMEYwMTIwQTE5NzUyNDQ4NzUyMzkyNzUyMjAwMDZERDFFCis6MTAwOTAwMDAwMDAwMDZERDEwMDA3NTIxMDBFNEZGRkU3RTA1OTAyMDRBCis6MTAwOTEwMDA2ODc0MDFGMEEzMDAwNkVEMDAwMDA2RUQxMERFRkM3RTE5Cis6MTAwOTIwMDAwMDdGMDU5MDdGQUZFMDQ0MDFGMDkwN0ZBRTAwMDZGREIwCis6MTAwOTMwMDAwMDAwMDZGRDEwRTA0NDBERjBEMkFGMTIwRTY4MzAwMTQ5Cis6MTAwOTQwMDAwQUU0OTAyMDY5MDAwNzBEMDAwMDA3MEQxMEYwMTIwMzYzCis6MTAwOTUwMDA3RUMyMDEzMDA0MUExMjBFNzc1MDEzMTIwOTAwMDcxRENGCis6MTAwOTYwMDAwMDAwMDcxRDEwMDAzMDAwMDc5MDdGRDZFMDMwRTdGMzRECis6MTAwOTcwMDAxMjBEOEIxMjBFMDAwNzJEMDAwMDA3MkQxMDc5QzIwM0Y3Cis6MTAwOTgwMDA3RkZGN0VGRjdERkY3Q0ZGNzgyMTEyMDgxRDAwMDczRDYxCis6MTAwOTkwMDAwMDAwMDczRDEwN0IwMDdBMDA3OTAwNzgwMEMzMTIwODQwCis6MTAwOUEwMDAwQzcwMUI3NTI0MDAwNzREMDAwMDA3NEQxMDQ4NzUyMzdGCis6MTAwOUIwMDA5MkY1MjJGNTIxNjMyNUZGOTAyMDY4RTUyNTAwMDc1RDZCCis6MTAwOUMwMDAwMDAwMDc1RDBFRjBBMzc0MDFGMEEzRjBBM0YwMTIwODdECis6MTAwOUQwMDBGRjgwOUIwMDAwMDAwNzZCMDEyMjAwMDAwMDAwMDc2Q0Y1Cis6MTAwOUUwMDAxMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTA3Cis6MTAwOUYwMDAwMjAwMDc3QzAwMDAwNzdDMDlFMzIyODk4MjhBODNFNEU1Cis6MTAwQTAwMDA5MzIyMDAwMDAwMDAwNzg1MTBCQjAxMENFNTgyMjlGNTQ4Cis6MTAwQTEwMDA4MkU1ODMzQUY1ODNFMDIyNTAwMDA3OTUwMDAwMDc5NUIwCis6MTAwQTIwMDAxMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMkY3Cis6MTAwQTMwMDAyMjAwMDdBNTAwMDAwN0E1MERFNTgyMjlGNTgyRTU4M0MwCis6MTAwQTQwMDAzQUY1ODNFNDkzMjIwMDAwMDAwMDA3QjIxMEY4QkIwMURFCis6MTAwQTUwMDAwREU1ODIyOUY1ODJFNTgzM0FGNTgzRThGMDAwMDdDMkM3Cis6MTAwQTYwMDAwMDAwMDdDMjEwMjI1MDA2RTkyNTgyQzhGNjIyQkJGRTBDCis6MTAwQTcwMDAwNUU5MjU4MkM4MDAwN0QyMDAwMDA3RDIwMkYyMjIwMDUxCis6MTAwQTgwMDAwMDAwMDdENDEwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQTA2Cis6MTAwQTkwMDBGNTgzRTBGNUYwMDAwN0U0MDAwMDA3RTQxMEEzRTAyMjhFCis6MTAwQUEwMDA1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRTAwMDdGNDJCCis6MTAwQUIwMDAwMDAwMDdGNDEwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkM2Cis6MTAwQUMwMDBFNTgzMkFGNTgzMDAwODA0MDAwMDA4MDQwOEU5OTNGNThCCis6MTAwQUQwMDBGMEEzRTk5MzIyMDAwMDAwMDAwMDA4MEMxMEVCOUZGNTQyCis6MTAwQUUwMDBGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDAwMDgxQ0M3Cis6MTAwQUYwMDAwMDAwMDgxQzAxMjIwMDAwMDAwMDA4MUQxMDA4MDgwODYyCis6MTAwQjAwMDBFNjJGRkZGNjE4RTYzRUZFRjYxOEU2M0RGRDAwMDgyRDNFCis6MTAwQjEwMDAwMDAwMDgyRDA3RjYxOEU2M0NGQ0Y2MjIwMDAwMDgzNDE5Cis6MTAwQjIwMDAwNDhDMzQ4RDM1MDAwMDAwMDAwMDA4MzgxMDkwN0Y5NTRCCis6MTAwQjMwMDBFMDQ0QzBGMEU0RjUzNkY1MzdDM0U1Mzc5NTAwMDg0OEUyCis6MTAwQjQwMDAwMDAwMDg0ODEwMzVFNTM2OTUzNDUwNjlFRjI1MzdGNTMzCis6MTAwQjUwMDA4MkU1MzYzRUY1MDAwODU4MDAwMDA4NTgxMDgzNzRGRkZGCis6MTAwQjYwMDBGMEY0NjAwMkMzMjJFRjI1MzdGNTgyRTUzNjAwMDg2ODBECis6MTAwQjcwMDAwMDAwMDg2ODEwM0VGNTgzRTRGMDYwMDJDMzIyRUYyNTEwCis6MTAwQjgwMDAzN0Y1ODJFNTM2MDAwODc4MDAwMDA4NzgxMDNFRjU4M0Q2Cis6MTAwQjkwMDA3NEFBRjA2NEFBNjAwMkMzMjJFRjI1MzdGNTAwMDg4ODIyCis6MTAwQkEwMDAwMDAwMDg4ODEwODJFNTM2M0VGNTgzNzQ1NUYwNjQ1NUUwCis6MTAwQkIwMDA2MDAyQzMyMkFEMDAwODk4MDAwMDA4OTgxMDM3RTUzNzlFCis6MTAwQkMwMDAyRkY1ODJFNTM2M0VGNTgzRURGMEZDQUMwNTAwMDhBODc0Cis6MTAwQkQwMDAwMDAwMDhBODEwRUQ2QzYwMDJDMzIyMDUzN0U1Mzc3MEVECis6MTAwQkUwMDAwMjA1MzY4MDhDMDAwOEI4MDAwMDA4QjgxMEU0RjUzNjFECis6MTAwQkYwMDBGNTM3QzNFNTM3OTUzNUU1MzY5NTM0NTAyNzAwMDhDOEY1Cis6MTAwQzAwMDAwMDAwMDhDODEwRUYyNTM3RjU4MkU1MzYzRUY1ODNFMDkxCis6MTAwQzEwMDA2NTM3NjAwMkMzMDAwOEQ4MDAwMDA4RDgxMDIyRUYyNTBECis6MTAwQzIwMDAzN0Y1ODJFNTM2M0VGNTgzRTRGMDA1MzdFNTAwMDhFODYwCis6MTAwQzMwMDAwMDAwMDhFODA4Mzc3MDAyMDUzNjgwQ0VEMzAwMDAwMEI3Cis6MTAwQzQwMDAwMDAwMDhGMDAxMjIwMDAwMDAwMDA4RjEwRTkwN0YwMDczCis6MTAwQzUwMDBFNTEwRjA5MDdGQjU3NDAxRjBEMzIyMDAwMDAwMDhGRjhBCis6MTAwQzYwMDAwMTIyMDAwMDAwMDAwOTAwMDk5MDdGRDZFMDQ0ODBGMEQ2Cis6MTAwQzcwMDA4MDc0MDAwMDAwMDAwOTdEMTA0Mzg3MDEwMDAwMDAwMDFGCis6MTAwQzgwMDAwMDAwMDAwMDAwMDAwMDAwMjIwMDA5OEQwMDAwMDk4RDE2Cis6MTAwQzkwMDAwQzc4N0ZFNEY2RDhGRDc1ODEzQTAyMDlENDAwMDAwMDkzCis6MTAwQ0EwMDAwMDAwMDk5OTEwMDIwNjlERTQ5M0EzRjhFNDkzQTM0MDgxCis6MTAwQ0IwMDAwM0Y2ODAwMUYyMDAwOUE5MDAwMDA5QTkxMDA4REZGNDc5Cis6MTAwQ0MwMDA4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzAwMDlCOTVFCis6MTAwQ0QwMDAwMDAwMDlCOTEwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NkRFCis6MTAwQ0UwMDA4MDAxNDZGNkRGMDAwOUM5MDAwMDA5QzkxMEU0ODAwQjQ1Cis6MTAwQ0YwMDAwMTAyMDQwODEwMjA0MDgwOTAwRTJERTQ3RTAwMDlEOUU2Cis6MTAwRDAwMDAwMDAwMDlEOTEwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOUVFCis6MTAwRDEwMDA1NDFGRkVFNDkzMDAwOUU5MDAwMDA5RTkxMEEzNjAwMUYzCis6MTAwRDIwMDAwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzAwMDlGOUIxCis6MTAwRDMwMDAwMDAwMDlGOTEwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MjZDCis6MTAwRDQwMDBDOENBQzU4M0NBMDAwQTA5MDAwMDBBMDkxMEYwQTNDODZFCis6MTAwRDUwMDBDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTAwMEExOUJBCis6MTAwRDYwMDAwMDAwMEExOTEwRTQ5MDdGOUNGMDdGMEFGRTEyMERENTU2Cis6MTAwRDcwMDA5MDdGOTY3NDg5MDAwQTI5MDAwMDBBMjkxMEYwOTA3RjVDCis6MTAwRDgwMDA5Qzc0Q0ZGMDdGRjQ3RTAxMTIwREQ1OTA3RjAwMEEzOTVDCis6MTAwRDkwMDAwMDAwMEEzOTEwOTZFMDU0RkVGMDdGMEE3RTAwMTIwRDIyCis6MTAwREEwMDBENTdGMDU3RTAwMDAwQTQ5MDAwMDBBNDkxMDEyMERENUMyCis6MTAwREIwMDA5MDdGOTZFMDQ0MDJGMEUwNTQ3RkYwN0YwNTAwMEE1OUVFCis6MTAwREMwMDAwMDAwMEE1OTEwN0UwMDEyMERENTkwN0Y5NkUwNDQ0MDM1Cis6MTAwREQwMDBGMDdGMDU3RTAwMDAwQTY5MDAwMDBBNjkxMDEyMERENTM3Cis6MTAwREUwMDA5MDdGOTZFMDU0QkZGMDdGMzI3RTAwMTIwRDAwMEE3OUFBCis6MTAwREYwMDAwMDAwMEE3OTEwRDU5MDdGOTZFMDQ0NDBGMDdGMzI3RTYzCis6MTAwRTAwMDAwMDEyMERENTIyMDAwQTg5MDAwMDBBODkxMDc1MzMwMUVECis6MTAwRTEwMDBFNTMzNjAxQjdGMDExMjBFMTg3RjAwN0UwRTAwMEE5OUQ5Cis6MTAwRTIwMDAwMDAwMEE5OTEwN0QwMDdDMDExMjA4MzRFNDMzRjUzMzg4Cis6MTAwRTMwMDA3MDA1N0YwRjEyMDAwQUE5MDAwMDBBQTkxMDBFMThFNTFDCis6MTAwRTQwMDAzMzYwMUI3RjAyMTIwRTE4N0YwMDdFODA3RDAwMEFCOTdFCis6MTAwRTUwMDAwMDAwMEFCOTEwMDA3QzgwMTIwODM0RTQzM0Y1MzM3MEM2Cis6MTAwRTYwMDAwNTdGMEYxMjBFMDAwQUM5MDAwMDBBQzkxMDE4RTUzM0U5Cis6MTAwRTcwMDA2MDFCN0YwMzEyMEUxODdGMDA3RTIwN0Q0MDAwMEFEOTgwCis6MTAwRTgwMDAwMDAwMEFEOTEwN0M1QjEyMDgzNEU0MzNGNTMzNzAwNTk2Cis6MTAwRTkwMDA3RjBGMTIwRTE4MDAwQUU5MDAwMDBBRTkwREU1MzM2MDIxCis6MTAwRUEwMDAwNUU0RkYxMjBFMThFNTMzMjRGRjAwMDAwMDAwMEFGNkU3Cis6MTAwRUIwMDAwMTIyMDAwMDAwMDAwQUY3MDg5MDdGRUFFMEY1MTBEMzU1Cis6MTAwRUMwMDAyMjAwMDAwMDAwMDAwQUZGMDEzMjAwMDAwMDAwMEIwMEI5Cis6MTAwRUQwMDAxMDAyMERBNTAwMDIwREVDMDAwMjBENzAwMDAyMERCRDA4Cis6MTAwRUUwMDAwMDAwMEIxMDAwMDAwQjEwMTAwMjBFMDIwMDAyMEFGRjlGCis6MTAwRUYwMDAwMDAyMEU4MzAwMDIwRTg0MDAwMDBCMjAwMDAwMEIyMDc1Cis6MTAwRjAwMDAxMDAyMEU4NTAwMDIwRTg2MDAwMjBFODcwMDAyMEU4ODc3Cis6MTAwRjEwMDAwMDAwMEIzMDAwMDAwQjMwMTAwMjBFODkwMDAyMEU4QTE4Cis6MTAwRjIwMDAwMDAyMEU4QjAwMDIwRThDMDAwMDBCNDAwMDAwMEI0MEY0Cis6MTAwRjMwMDAxMDAyMEU4RDAwMDIwRThFMDAwMjBFOEYwMDAyMEU5MDI3Cis6MTAwRjQwMDAwMDAwMEI1MDAwMDAwQjUwMDgwMjBFOTEwMDAyMEU5MkEwCis6MTAwRjUwMDAwMDAwMDAwMDAwMDAwQjU4MTBFNEZFNzUyQkZGNzUyQ0ZDCis6MTAwRjYwMDAxMTc1MkQxMkFCMkJBQTJDQTkwMDBCNjgwMDAwMEI2ODgxCis6MTAwRjcwMDAxMDJEOTAwMDAxMTIwNzg1NjQwMjcwMkRBRDA2MEVFRDU0Cis6MTAwRjgwMDBCNTAwMEI3ODAwMDAwQjc4MTAwNzAxMjI5MDAwMDIxMkM4Cis6MTAwRjkwMDAwN0Q0ODVGMDI5RjUyQTYyMjkwMDBCODgwMDAwMEI4ODA4Cis6MTAwRkEwMDAxMEU1Mjk2MjJBRTUyQTYyMjkyOUZERTUyOTNBQTkwNUUxCis6MTAwRkIwMDA3NTAwMEI5ODAwMDAwQjk4MEUyQkZGRjUyQzg5MkQ4MEU3Cis6MTAwRkMwMDBDMzdCMDA3QTAwNzkwMDAwMDAwMDBCQTYwMTIyMDAwMDFDCis6MTAwRkQwMDAwMDAwMEJBNzA2QUIwN0FBMDZBQzA1MDAwMDAwMEJBRDhFCis6MTAwRkUwMDAxMEU0RkRFNTExNjAxMUVBRkZBRTA1MERFRTI0MTBGNUU5Cis6MTAwRkYwMDA4MjAwMEJCRDAwMDAwQkJEMTBFNDM0MEZGNTgzRUZGMDUxCis6MTAxMDAwMDBFQkFFMDUwRDc0MTAyRUY1ODIwMDBCQ0QwMDAwMEJDRDVDCis6MTAxMDEwMDAxMEU0MzQwRkY1ODNFQkYwQUYwNTBENzQxMDJGRjU4MjVCCis6MTAxMDIwMDBFNDAwMEJERDAwMDAwQkREMTAzNDBGRjU4M0VDRjBBRkI2Cis6MTAxMDMwMDAwRjdBMEY3QjEwMTIwRDUxN0YwMDBCRUQwMDAwMEJFREFFCis6MTAxMDQwMDAwNjBBN0UwMDEyMERENTAwMDAwMDBCRjMwMTIyMDAwMEZECis6MTAxMDUwMDAwMDAwMEJGNDBBOEUzMzhGMzQ4RDM1OEEzNjhCMzcwMEJGCis6MTAxMDYwMDAwMDAwMEJGRTEwRTRGREY1MzhFNTExNjAxMkU1MzNGRkRBCis6MTAxMDcwMDBBRTA1MERFRTI0MDAwQzBFMDAwMDBDMEUxMDEzRjU4MkQwCis6MTAxMDgwMDBFNDM0MEZGNTgzRUZGMEU1MzRBRTA1MEQ3NDAwMEMxRTZCCis6MTAxMDkwMDAwMDAwMEMxRTEwMTMyRUY1ODJFNDM0MEZGNTgzRTUzNEE2Cis6MTAxMEEwMDBGMEFGMEY3QTBGMDAwQzJFMDAwMDBDMkUxMDdCMTMxMkU1Cis6MTAxMEIwMDAwRDUxQUYwRkFEMzVBQjM3QUEzNjEyMEQzMjAwMEMzRUQ1Cis6MTAxMEMwMDAwMDAwMEMzRTAxMjIwMDAwMDAwMDBDM0YwMjhGMjkwMEFFCis6MTAxMEQwMDAwMDAwMEM0MTEwRTRGNTJBNzUyQkZGNzUyQzExNzUyREJECis6MTAxMEUwMDAzMkFCMkJBQTJDMDAwQzUxMDAwMDBDNTExMEE5MkQ5MEYyCis6MTAxMEYwMDAwMDAxMTIwNzg1QjQwMzFEQUYyQTA1MkFFRjAwMEM2MTE5Cis6MTAxMTAwMDAwMDAwMEM2MTEwQjUyOTAxMjIxMjA3NkM3RTAwMjlGRjM2Cis6MTAxMTEwMDBFRTNBQTkwNzc1MDAwQzcxMDAwMDBDNzEwRTJCRkZGNTVCCis6MTAxMTIwMDAyQzg5MkQ4MEQ0N0IwMDdBMDA3OTAwMDAwMDAwMEM3RjkwCis6MTAxMTMwMDAwMTIyMDAwMDAwMDAwQzgwMEE4RTMzOEYzNDhEMzU4QTI2Cis6MTAxMTQwMDAzNjhCMzcwMDAwMDAwQzhBMTBFNEY1MzhFNTM4QzM5NTdCCis6MTAxMTUwMDAzNTUwMjAwNTM0RTUzNEFFMzMwMDBDOUEwMDAwMEM5QTZCCis6MTAxMTYwMDAxMDcwMDIwNTMzMTRGRkU1MzcyNTM4RjU4MkU0MzUzNjczCis6MTAxMTcwMDBGNTAwMENBQTAwMDAwQ0FBMEE4M0UwRkQxMjBCQTcwNURCCis6MTAxMTgwMDAzODgwRDkwMDAwMDAwQ0I0MDEyMjAwMDAwMDAwMENCNTJBCis6MTAxMTkwMDAxMEE5MDdFNTBENzAyNTkwN0ZBNUUwNDQ4MEYwRTkyNUIyCis6MTAxMUEwMDBFMDAwMENDNTAwMDAwQ0M1MTA0NDAxOTA3RkE2RjA4RDM2Cis6MTAxMUIwMDAwOEFGMDNBOTA3NzUwOTAxOEEwMDBDRDUwMDAwMENENUZBCis6MTAxMUMwMDAwRDBBODkwQkU0RjUwQzc1MEQwM0QzMjJDMzIyMDAwMDMwCis6MTAxMUQwMDAwMDAwMENFMjEwQTkwN0U1MEQ3MDIzOTA3RkE1RTA0NDA0Cis6MTAxMUUwMDA4MEYwRTkyNUUwMDAwQ0YyMDAwMDBDRjIxMDkwN0ZBNkUwCis6MTAxMUYwMDBGMDhEMDhBRjAzQTkwNzc1MDkwMThBMEE4OTAwMEQwMjVECis6MTAxMjAwMDAwMDAwMEQwMjBCMEJFNEY1MEM3NTBEMDFEMzIyQzMyMjc3Cis6MTAxMjEwMDAwMDAwMEQwRDEwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDg0Cis6MTAxMjIwMDAzMDA2MDRFMDQ0MDAwRDFEMDAwMDBEMUQxMDAyRjA3RjhCCis6MTAxMjMwMDBEMDdFMDcxMjBERDU5MDdGRDZFMDU0RjdGMDAwMEQyRDJCCis6MTAxMjQwMDAwMDAwMEQyRDA1RTA0NDA0RjAyMjAwMDAwMDAwMEQzMkU2Cis6MTAxMjUwMDAxMDEyMENCNUU1MEQyNEZBNjAxMDE0NjAwNzI0MDc3MDE1Cis6MTAxMjYwMDBGMzAwMEQ0MjAwMDAwRDQyMEY3RjA4MjJFNEY1MEQ3RkQwCis6MTAxMjcwMDAwNzIyRTRGNTBEN0YwNjIyMDAwMDBENTExMDEyMENFMjRBCis6MTAxMjgwMDBFNTBEMjRGQTYwMTAxNDYwMDcyNDA3NzBGMzAwMEQ2MTY3Cis6MTAxMjkwMDAwMDAwMEQ2MTBGN0YwODIyRTRGNTBEN0YwNzIyRTRGNUMxCis6MTAxMkEwMDAwRDdGMDYyMjAwMDAwRDcwMTBDMEUwQzA4M0MwODI5MDQ4Cis6MTAxMkIwMDA3RkM0RTRGMDUzOTFFRjkwN0YwMDBEODAwMDAwMEQ4MDFCCis6MTAxMkMwMDAwQkFCNzQwNEYwRDA4MkQwODNEMEUwMzIwMDAwMEQ4QkUxCis6MTAxMkQwMDAxMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMEVBCis6MTAxMkUwMDAxMjAwMEQ5QjAwMDAwRDlCMEEwREQ1OTA3RkQ2RTA1NDk3Cis6MTAxMkYwMDBGRUYwMjIwMDAwMDAwREE1MTBDMEUwQzA4M0MwODJEMjI1Cis6MTAxMzAwMDAwMTUzOTFFRjkwN0ZBQjc0MDEwMDBEQjUwMDAwMERCNTU2Cis6MTAxMzEwMDAwOEYwRDA4MkQwODNEMEUwMzIwMDAwMDAwMDAwMERCRDg0Cis6MTAxMzIwMDAxMEMwRTBDMDgzQzA4MkQyMDM1MzkxRUY5MDdGQUI3NEIyCis6MTAxMzMwMDAwODAwMERDRDAwMDAwRENEMDhGMEQwODJEMDgzRDBFMEE0Cis6MTAxMzQwMDAzMjAwMDAwMDAwMDAwREQ1MTA4RTM5OEYzQUU1M0ExNUI1Cis6MTAxMzUwMDAzQUFFMzk3MDAyMTUzOTRFNjAwMDBERTUwMDAwMERFNTFBCis6MTAxMzYwMDAwNzA1MTIwRTQxODBFRTIyMDAwMDBERUMxMEMwRTBDMDE3Cis6MTAxMzcwMDA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjBEMDAwMERGQ0RDCis6MTAxMzgwMDAwMDAwMERGQzA2ODJEMDgzRDBFMDMyMDAwMDAwMEUwMjg3Cis6MTAxMzkwMDAxMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMDE3Cis6MTAxM0EwMDBEMDAwMEUxMjAwMDAwRTEyMDY4MkQwODNEMEUwMzIwMDcwCis6MTAxM0IwMDAwMDAwMEUxODEwQUUwNzdGMjE3RDAxNzQwMDJFRjU4MjBCCis6MTAxM0MwMDBFNDM0MEZBQjgyMDAwRTI4MDAwMDBFMjgwNUZBMTIwRDNGCis6MTAxM0QwMDA1MTIyMDAwMDAwMDAwRTJEMTA1MDBGMDBDMEY5QTRCMEUzCis6MTAxM0UwMDA5OTkyODJGODgwOTg4ODgzQzYwMDBFM0QwMDAwMEUzREQ5Cis6MTAxM0YwMDAwM0ExODY4RTAwMDAwRTQwMDEwMDAwMDAwMDAwMEU0MTk3Cis6MTAxNDAwMDAxMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEU4Cis6MTAxNDEwMDBGOTAwMEU1MTAwMDAwRTUxMDEyMjAwMDAwMDAwMEU1MjkyCis6MTAxNDIwMDAwRTkwN0YwMEU1MEVGMDkwN0ZCNTc0MDFGMEQzMjIwMDlFCis6MTAxNDMwMDAwMDAwMEU2MDA4OTA3RkVBRTBGNTBFRDMyMjAwMDAwMDY1Cis6MTAxNDQwMDAwMDAwMEU2ODA4RTRGNTBERDJFOUQyQUYyMjAwMDAwMERBCis6MTAxNDUwMDAwMDAwMEU3MDA0NTNEOEVGMzIwMDAwMDAwMDAwMEU3NDNDCis6MTAxNDYwMDAwM0QyMDAyMjAwMDAwRTc3MDJEMzIyMDAwMDAwMEU3OTgyCis6MTAxNDcwMDAwMkQzMjIwMDAwMDAwRTdCMDJEMzIyMDAwMDAwMEU3RDZBCis6MTAxNDgwMDAwMkQzMjIwMDAwMDAwRTdGMDJEMzIyMDAwMDAwMEU4MTUyCis6MTAxNDkwMDAwMkQzMjIwMDAwMDAwRTgzMDEzMjAwMDAwMDAwMEU4NEZGCis6MTAxNEEwMDAwMTMyMDAwMDAwMDAwRTg1MDEzMjAwMDAwMDAwMEU4NkFGCis6MTAxNEIwMDAwMTMyMDAwMDAwMDAwRTg3MDEzMjAwMDAwMDAwMEU4ODlCCis6MTAxNEMwMDAwMTMyMDAwMDAwMDAwRTg5MDEzMjAwMDAwMDAwMEU4QTg3Cis6MTAxNEQwMDAwMTMyMDAwMDAwMDAwRThCMDEzMjAwMDAwMDAwMEU4QzczCis6MTAxNEUwMDAwMTMyMDAwMDAwMDAwRThEMDEzMjAwMDAwMDAwMEU4RTVGCis6MTAxNEYwMDAwMTMyMDAwMDAwMDAwRThGMDEzMjAwMDAwMDAwMEU5MDRCCis6MTAxNTAwMDAwMTMyMDAwMDAwMDAwRTkxMDEzMjAwMDAwMDAwMEU5MjM2Cis6MTAxNTEwMDAwMTMyMDAwMDAwMDAxMTAwMTAxMjAxMDAwMTAwMDAwMDYzCis6MTAxNTIwMDA0MDQ3MDUxMDI3MDEwMDAxMDIwMDExMTAwMDAwMTExMEIyCis6MTAxNTMwMDAxMDAwMDEwOTAyMjAwMDAxMDEwM0EwMDAwOTA0MDAwMEJECis6MTAxNTQwMDAwMjAwMTEyMDAwMDAxMTIwMTBGRjAwMDAwNDA3MDU4Mjk2Cis6MTAxNTUwMDAwMjQwMDAwMDA3MDUwMjAyNDAwMDExMzAwMDAwMTEzMDc3Cis6MTAxNTYwMDAxMDAwMDAwNDAzMDkwNDI2MDM0MTAwNkUwMDYzMDA2OEI0Cis6MTAxNTcwMDAwMDAwMTE0MDAwMDAxMTQwMTA2RjAwNzIwMDIwMDA0Mzc1Cis6MTAxNTgwMDAwMDY4MDA2OTAwNzAwMDczMDAwMDExNTAwMDAwMTE1MEU1Cis6MTAxNTkwMDAxMDJDMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDI4MDM0NjM2Cis6MTAxNUEwMDAwMDAwMTE2MDAwMDAxMTYwMTA2OTAwNzIwMDZEMDA3NzhBCis6MTAxNUIwMDAwMDYxMDA3MjAwNjUwMDIwMDAwMDExNzAwMDAwMTE3MEQxCis6MTAxNUMwMDAxMDQ2MDA3MjAwNjEwMDZEMDA2NTAwNTcwMDZGMDA3MkU4Cis6MTAxNUQwMDAwMDAwMTE4MDAwMDAxMTgwMTA2QjAwNzMwMDJBMDM0MzhCCis6MTAxNUUwMDAwMDZGMDA2RTAwNjYwMDY5MDAwMDExOTAwMDAwMTE5MDBECis6MTAxNUYwMDAxMDY3MDA3NTAwNzIwMDYxMDA3NDAwNjkwMDZGMDA2RTcyCis6MTAxNjAwMDAwMDAwMTFBMDAwMDAxMUEwMTAyMDAwNTMwMDc0MDA3MjBGCis6MTAxNjEwMDAwMDY5MDA2RTAwNjcwMDIyMDMwMDExQjAwMDAwMTFCMEU1Cis6MTAxNjIwMDAxMDQ5MDA2RTAwNzQwMDY1MDA3MjAwNjYwMDYxMDA2MzdFCis6MTAxNjMwMDAwMDAwMTFDMDAwMDAxMUMwMTA2NTAwMjAwMDUzMDA3NEFDCis6MTAxNjQwMDAwMDcyMDA2OTAwNkUwMDY3MDAwMDExRDAwMDAwMTFEMDI4Cis6MDkxNjUwMDAwMjAwMDAwMDAwMDAwMDAwMDA4RgorOjAwMDAwMDAxRkYKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgICAgd2hpdGVoZWF0LmggIC0tICBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgRmlybXdhcmUuCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jIChodHRwOi8vd3d3LmNvbm5lY3R0ZWNoLmNvbS8pCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkCisgKglGaXJtd2FyZSA0LjA2CisgKgorICogKDA0LzA5LzIwMDApIGdraAorICoJVXBkYXRlZCB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbGF0ZXN0IHByb3ZpZGVkIGJ5IENvbm5lY3RUZWNoLgorICoKKyAqICgwMS8xNi8yMDAwKSBna2gKKyAqCUZpeGVkIG15IGludGVsIGhleCBwcm9jZXNzaW5nIHRvb2wsIHNvIG5vdyB0aGUgZmlybXdhcmUgYWN0dWFsbHkKKyAqCW1hdGNoZXMgdGhlIG9yaWdpbmFsIGZpbGUgKHRoaXMgd2FzIGNhdXNpbmcgYSBmZXcgcHJvYmxlbXMuLi4pCisgKgorICogKDAxLzE1LzIwMDApIGdraAorICoJQWRkZWQgZGVidWcgbG9hZGVyIGZpcm13YXJlIGlmIERFQlVHIGlzICNkZWZpbmVkOgorICoJCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZworICoJCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKKyAqCQlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCisgKgkJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycworICoKKyAqIHZlcnNpb24gMS4wICgwMS8wOS8yMDAwKSBna2gKKyAqCU9yaWdpbmFsIGZpcm13YXJlIGZyb20gQ29ubmVjdFRlY2ggbWFzc2FnZWQgYSBsaXR0bGUgdG8gYmUgcHJvZ3JhbQorICoJcmVhZGFibGUuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIHdoaXRlaGVhdF9EQVRFICIyMDAwMDEwNiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3lhbWFoYS9kczFfY3RybC5mdy5paGV4IGIvZmlybXdhcmUveWFtYWhhL2RzMV9jdHJsLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE5YjFkNwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3lhbWFoYS9kczFfY3RybC5mdy5paGV4CkBAIC0wLDAgKzEsNzY5IEBACis6MTAwMDAwMDAwNzAwMDAwMDA3MDAyNDAwMDcwMDBDMDAwNzAwMUMwMDg4Cis6MTAwMDEwMDAwNzAwMDYwMDAyMDA3MDAwMjAwMDAwMDA0MDAwMDMwMEZFCis6MTAwMDIwMDAwNDcxMDAwMDg2NDIwMDAwNDAwMDAzMDAwRDBGMDAwMDM0Cis6MTAwMDMwMDAxMDA4MDAwMDNBMDQyMDAwODIwMjAwMDAwRDAyMDAwMEI3Cis6MTAwMDQwMDAxMDA4MDAwMDNBMDQyMDAwODIxMjAwMDA4MjBFMjAwMEY2Cis6MTAwMDUwMDA4MjFBMDAwMDBEMkQwMzAwMTAwODAwMDAzQTA0MTAwMDYxCis6MTAwMDYwMDA4REQzMDIwMDEwMDgwMDAwM0EwNDE4MDAwRDAxMDAwMEIyCis6MTAwMDcwMDAxNTAwMDIwMEZEMDAwMDAwMjAwMDAwMDA2MDg4MDMwMDYxCis6MTAwMDgwMDA2MDkwMDMwMDYwODAwMzAwNDA4MDAzMDA0MDgwMDMwMDE0Cis6MTAwMDkwMDA0MDgwMDMwMDQwODAwMTAwN0QwQTAwMDA0MDgwMDMwMDkyCis6MTAwMEEwMDA0MDgwMDMwMDQwODAwMTAwMDIwNDIwMDA4MjA4MDAwMDFDCis6MTAwMEIwMDAxQTAwMDgwMDA0MDkwMDAwODY1OTAxMDAwNzAwMDAwMDJBCis6MTAwMEMwMDAwNzAwMjYwMDA3MDAwMDAwMDcwMDAwMDAwNjhBMDEwMDY0Cis6MTAwMEQwMDAwNzAwMDAwMDhEMEMwMzAwMTAwODAwMDAzQTA0MTgwMDBGCis6MTAwMEUwMDAwNzAwMjYwMDdEMDgwMDAwNDI4MDAxMDAwQTE2MDAwMDdCCis6MTAwMEYwMDAwNkEyMDQwMDA3MDAwMDAwOEQyMTAwMDAxMDA4MDAwMDg3Cis6MTAwMTAwMDAzQTA0MDgwMDA2QzIyMTAwMDcwMDAwMDBGRDA3MDAwMEI1Cis6MTAwMTEwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjkzMDIwMEUyCis6MTAwMTIwMDA5NTAxMDAwMDA0MEQwOTAwMDcwMDAwMDAyMDA4MDAwMEYwCis6MTAwMTMwMDBGNTAwMDAwMDdEMEIwMDAwNjBGMDAxMDBGRDAwMDAwMEY0Cis6MTAwMTQwMDAwNjIyMDMwMDQwODAwMTAwN0QwQTAwMDA0MjgwMDMwMDc3Cis6MTAwMTUwMDA0QTgwMTMwMDBBMDAxODAwMjAxODAwMDA2MDkwMDUwMDczCis6MTAwMTYwMDA2MDg4MDUwMDQwODAwMTAwRkQwMDAwMDA0MjgwMDEwMDIxCis6MTAwMTcwMDAwQTAwNzAwMDE1MDEwMDAwNDQxMTA3MDA4NjIzMDMwMEU3Cis6MTAwMTgwMDAwMDAwMDMwMDIwNzAwMDAwMDY0QTAzMDA0MDgwMDEwMEM4Cis6MTAwMTkwMDA4RDM0MDAwMDEwMDgwMDAwM0EwNDA4MDAwNkVBMjEwMDJGCis6MTAwMUEwMDAwNzAwMDAwMDhERDMwMjAwMTAwODAwMDAzQTA0MTgwMDc4Cis6MTAwMUIwMDAwNjgyMDEwMDA3MDAwMDAwMDcwMDI0MDA4RDBGMDAwMEU4Cis6MTAwMUMwMDAxMDA4MDAwMDNBMTYwMDAwMDIyNDAwMDAwMjVDMDAwMDQzCis6MTAwMUQwMDBGRDI4MDAwMDIwMDAwMDAwNDA4MDAxMDAwRDAwMDgwMDA0Cis6MTAwMUUwMDAxNTA4MDAwMDg0MDk1MTAwMDcwMDAwMDA0RDAwMDAwMEMwCis6MTAwMUYwMDA1RDBFMDAwMDAyMEUwMDAwOEQ0MTAwMDAxMDA4MDAwMDlFCis6MTAwMjAwMDAzQTA0MDgwMDA2OEEyQzAwMDcwMDAwMDA4RDAwMDAwMDU4Cis6MTAwMjEwMDAyNDA5MDAwMDAyMEYwMDAwOEQ0NTAwMDAxMDA4MDAwMEI2Cis6MTAwMjIwMDAzQTA0MDgwMDA2OEEyQzAwMDcwMDAwMDA3RDM4MDAwMDEwCis6MTAwMjMwMDA0MjgwMDEwMDBBMDAwODAwMTUxMDAwMDA4NDA5MDEwMDM2Cis6MTAwMjQwMDA4NjgzMDEwMDA3MDAwMDAwMDZBQTAxMDAwNzAwMDAwMEU1Cis6MTAwMjUwMDBGRDA4MDAwMDQyODAwMTAwMEEwMDE4MDAwNDE5MDAwMDk3Cis6MTAwMjYwMDA4NjgwMjEwMDA3MDAyODAwMTAxODAwMDAzQTA0MjgwMEFBCis6MTAwMjcwMDAwMjBDMjgwMDBEMDAwMDAwMTAwODAwMDAzQTE0MjgwMEFECis6MTAwMjgwMDA4RDgwMDgwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDcxCis6MTAwMjkwMDAwNzAwMjAwMDBEMDIwMDAwMDQ5OTE4MDAwNzAwMDAwMDZDCis6MTAwMkEwMDAyRDQwMDAwMEJEMDAwMDAwRkQwMjAwMDA0MjgwMDEwMDYyCis6MTAwMkIwMDAwQTAwMDgwMDA0MDkwMDAwODY1QTA1MDAwNzAwMDAwMDMzCis6MTAwMkMwMDAwMDAxMDAwMDIwMEEwMDAwN0QwNDAwMDA0MDgwMDEwMEMxCis6MTAwMkQwMDA0MjgwMDEwMDBBMDAyMDAwMTUzMDAwMDA0NDIxMDEwMDg2Cis6MTAwMkUwMDA4NjQ5MDMwMDA3MDAwMDAwMDQyMTAwMDA4NjQ5MDMwMDNFCis6MTAwMkYwMDAwNzAwMDAwMDhEMEYwMDAwMTAwODAwMDAzQTBDMjgwMEQ1Cis6MTAwMzAwMDA0NDM5MDIwMDg2QzkwNjAwMDcwMDAwMDAxMDE4MDAwMEVBCis6MTAwMzEwMDAzQTA0MjgwMDBEODEwODAwMjAwODAwMDBGRDAyMDAwMEJBCis6MTAwMzIwMDA0MDgwMDEwMDA3MDAyMDAwMTAyODAwMDAzQTAwNzgwMEZCCis6MTAwMzMwMDA4RDY4MDAwMDEwMDgwMDAwM0EwNDA4MDAwNjhBMjgwMEIyCis6MTAwMzQwMDAwNzAwMDAwMDBENDAwMDAwMTUxMDAwMDAwNDk5MTgwMDdGCis6MTAwMzUwMDAwNDI5MjkwMDA0MzkzOTAwMDcwMDAwMDAwNjAyMDYwMEJDCis6MTAwMzYwMDAwNzAwMDAwMEY1MDQwMDAwN0QwMDAwMDAyMDAwMDAwMEYwCis6MTAwMzcwMDA4RDAwMDAwMDYwMDgwMTAwNDA4MDAxMDA3RDA0MDAwMDQ1Cis6MTAwMzgwMDA0MjgwMDMwMDRBODAyMTAwMEEwMDE4MDA0NDE5MDIwMDNDCis6MTAwMzkwMDA4NjU4MjEwMDA3MDAwMDAwNzU0MDAwMDAwNEYxNzEwMDNDCis6MTAwM0EwMDAwNzAwMDAwMDQyMDAwMTAwMEEwMDI4MDAwNDI5MDAwMEE0Cis6MTAwM0IwMDA4NjIwMjEwMDA3MDAwMDAwMEQzQzAwMDAwNEE5MzAwMDQ5Cis6MTAwM0MwMDAwNzAwMDAwMDdEMDcwMDAwNDI4MDAxMDAwQTAwMDgwMENECis6MTAwM0QwMDAwNDA5MDAwMDg2REEwNzAwN0QwNTAwMDAyMDI4MDAwMERGCis6MTAwM0UwMDA2MEIwMDMwMDA2RjIwNzAwNDA4MDAxMDAyMDMwMDAwMEVBCis6MTAwM0YwMDA2MEE4MDMwMDQwODAwMTAwRkQwMjAwMDA0MjgwMDEwMDZGCis6MTAwNDAwMDAwQTAwMDgwMDA0MDkwMDAwODZGQTA3MDAwNzAwMDAwMDNGCis6MTAwNDEwMDA3RDA1MDAwMDQyODAwMTAwMEEwNDI4MDA4RDBFMDAwMEM2Cis6MTAwNDIwMDAxMDA4MDAwMDNBMEMyODAwMEQwMDAwMDAxMDA4MDAwMDIxCis6MTAwNDMwMDAzQTE0MjgwMDBEMDAwOTAwMjAwODAwMDBGRDAyMDAwMDA5Cis6MTAwNDQwMDA0MDgwMDEwMDA3MDAyMDAwRkQzRDAwMDAyMDAwMDAwMDZBCis6MTAwNDUwMDA0MDgwMDEwMDdEMTAwMDAwOEQ4RDAwMDAxMDA4MDAwMDFDCis6MTAwNDYwMDAzQTA0MDgwMDA2OEEyODAwMDcwMDAwMDAxNTA4MDAwMDZBCis6MTAwNDcwMDAxQTAwMDgwMDg0MDkwMTAwODY1MTA5MDA3RDEzMDAwMDVDCis6MTAwNDgwMDAwMDA1MjAwMDIwMEYyODAwNjA4RjMzMDA2MDhGM0IwMEE0Cis6MTAwNDkwMDA2MDhGNDMwMDYwOEY0QjAwNjA4RjUzMDA2MDhGNUIwMDY0Cis6MTAwNEEwMDA2MDhBMDMwMDQwODAwMTAwQkQ3RjAwMDBDNDNEMzgwMDI5Cis6MTAwNEIwMDAwNzAwMDAwMDdEMUEwMDAwNzUxMzAwMDA0MjgwMDEwMDUzCis6MTAwNEMwMDA0QTAwMDkwMDBBMDAxMDAwMDQ4RDBCMDAwNDk1MTMwMDc3Cis6MTAwNEQwMDAwNzAwMDAwMDIwMDgwMDAwNjA5MDAxMDAwNDExMDAwMEU3Cis6MTAwNEUwMDA4NjIwMjEwMDQwMDAwMTAwRkQxNzAwMDA0MjgwMDEwMDJECis6MTAwNEYwMDAwQTAwMDgwMDA0MDkwMDAwODYyMjIxMDAwNzAwMDAwMDBECis6MTAwNTAwMDA3RDE5MDAwMDQyODAwMzAwNEE4MDA5MDAwQTAwMTAwMEEzCis6MTAwNTEwMDAyNDA5MDAwMDY0MTYwMDAwRkQxMTAwMDA0MjgwMDMwMDYxCis6MTAwNTIwMDA0QTgwMkIwMDRBODAxOTAwOEQwMDAwMDA0NDg5MjEwMDc4Cis6MTAwNTMwMDAwNzAwMDAwMDQ0MjIwMDAwODZFMTBBMDAwNzAwMDAwMEQ2Cis6MTAwNTQwMDA2NDFBMDAwMDI0MkEwMDAwN0QxOTAwMDAwMjAxMDgwMDNFCis6MTAwNTUwMDAyMjAxMTAwMDIwMDgwMDAwNjA5MDAzMDA0MDgwMDEwMDhDCis6MTAwNTYwMDBGRDNEMDAwMDhEMDAwMDAwMjAwODAwMDA0MDgwMDEwMERCCis6MTAwNTcwMDA3NTEzMDAwMDdEMUEwMDAwNDIwMDAxMDA0QTgwMDkwMDQ2Cis6MTAwNTgwMDAwQTAwMTAwMDFEMDIwMDAwRTQ4OTAxMDBFNDkyMjkwMDI1Cis6MTAwNTkwMDA0NDkxMzAwMDA3MDAwMDAwMEQwNjAwMDAxNTBBMDAwMDFECis6MTAwNUEwMDAxRDBDMDAwMDI1MTAwMDAwRTRBOTAwMDBFNDJCMDEwMDUwCis6MTAwNUIwMDA2NDA0MDAwMEU0QjMwMTAwRTQzMjAyMDA2NDA0MDAwMEJCCis6MTAwNUMwMDA2NDA0MDAwMDY0MDQwMDAwNjQwNDAwMDAwRDA0MDAwMEUyCis6MTAwNUQwMDBDNEIxMDgwMDA3MDAwMDAwMjAwODAwMDBGNTBCMDAwMDZGCis6MTAwNUUwMDA0MDAwMDMwMDdEMTkwMDAwNDI4MDAzMDA0QTgwMDkwMDlBCis6MTAwNUYwMDAyNDBBMDAwMDBBMDAwODAwNjQwRTA4MDAwNzAwMDAwMDNBCis6MTAwNjAwMDAyMjAxMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDEwMERCCis6MTAwNjEwMDBBQzY0MDAwMDdEMDIwMDAwMjAwMDAwMDA0MDgwMDEwMDZBCis6MTAwNjIwMDA3RDEwMDAwMDQyODAwMTAwRkQxMTAwMDA0QTgwM0IwMDY3Cis6MTAwNjMwMDA0QTgwMDkwMDBBMDAyMDAwOTUwMDAwMDA0NDExMUEwMEI5Cis6MTAwNjQwMDA0NEExMDAwMDg2MjAwRDAwMEQwNDAwMDA4NEI5MDAwMEM0Cis6MTAwNjUwMDA4NjIxMEQwMEZEMTgwMDAwNDI4MDAxMDBGRDEwMDAwMDAxCis6MTAwNjYwMDA0QTgwMDkwMDBBMDAyODAwOTUwMDAwMDAyNDA5MDEwMEMyCis6MTAwNjcwMDA2NDJBMDAwMDg2MTEwRDAwMDcwMDAwMDAwNDI5MDAwMDE0Cis6MTAwNjgwMDA4NjIyMEQwMDA3MDAwMDAwMDYyQTBEMDAwMjAwMDgwMDY3Cis6MTAwNjkwMDA4RDAwMDAwMDdEMzgwMDAwMjAwODAwMDA0MDgwMDEwMDJGCis6MTAwNkEwMDA3RDEyMDAwMDQyODAwMTAwMEEwMDEwMDAwNDM5MDAwMEExCis6MTAwNkIwMDA4NkQxMEQwMDBEMDgwMDAwQjVGRjdGMDA4NEI5MDAwMDUxCis6MTAwNkMwMDA4NkExMEQwMDI1MDAwMDAwMDY3QTBFMDAyRDAwMDAwMDE2Cis6MTAwNkQwMDAxNTAwMDAwMDJEMDgwMDAwOERDNzAyMDAyMDA4MDAwMDUyCis6MTAwNkUwMDAwNkMyMEUwMDBEMDAwMDAwMzU4MDdGMDA4NEI5MDAwMEI2Cis6MTAwNkYwMDA4NjcxMEUwMDI1MDA0MDAwOEQwMDAwMDA0NDA5MTEwMEE1Cis6MTAwNzAwMDAwNzAwMDAwMDhEMDEwMDAwMDQ5NTEwMDAwNzAwMDAwMEE0Cis6MTAwNzEwMDA2NDkxMDAwMDI0MDQwMDAwMjQwNDAwMDAyNDA0MDAwMDZDCis6MTAwNzIwMDAwMjAxMTAwMDAyMDAyODAwOERDNjAyMDAyMDA4MDAwMDBGCis6MTAwNzMwMDAwNkMyMEUwMDhEMDEwMDAwMkQwNDAwMDA4RDAwMDAwMDk3Cis6MTAwNzQwMDAwNDk1MTAwMDA3MDAwMDAwMEQwMjAwMDA4NDkxMTAwMEM1Cis6MTAwNzUwMDAwNzAwMDAwMDBEQzcwMjAwMjAwODAwMDA4RDAwMDAwMDA3Cis6MTAwNzYwMDBGRDM4MDAwMDQwODAwMTAwRkQzQjAwMDAyMDEwMDAwMDJCCis6MTAwNzcwMDA2MEE4MDMwMDE1MDgwMDAwODQzMTMxMDA4NDIxMjEwMEE1Cis6MTAwNzgwMDAwNzAwMDAwMDYwQjAwMzAwNjBBMDAzMDA0MDgwMDEwMDhCCis6MTAwNzkwMDBGRDIyMDAwMDk1MDAwMDAwMjQwOTAxMDAyNDA0MDAwMDRGCis6MTAwN0EwMDAyNDA0MDAwMDY0MTIwMDAwMDIwMTEwMDAyMDA4MDAwMDcwCis6MTAwN0IwMDA2MDkwMDMwMDQwODAwMTAwMjQxOTAwMDA4REZCMDAwMEMwCis6MTAwN0MwMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMEMxCis6MTAwN0QwMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDAyNDA0MDAwMEY4Cis6MTAwN0UwMDAyNDA0MDAwMDdEMTEwMDAwNDI4MDAxMDAwQTAwMDgwMDdFCis6MTAwN0YwMDAyNDBBMDAwMDAyMDUyODAwMDIwQzI4MDAwRDgwMDkwMEQwCis6MTAwODAwMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDAwNzAwMjAwMEQ5Cis6MTAwODEwMDBGRDIyMDAwMDQyODAwMTAwMEEwMDA4MDA5NTAwMDAwMDRGCis6MTAwODIwMDBDNDBEMjgwMDI0MTkwMTAwN0QxOTAwMDA0MjgwMDEwMDM4Cis6MTAwODMwMDBGRDExMDAwMDRBODAwOTAwMEEwMDEwMDBCNTAwMDAwMDA4Cis6MTAwODQwMDA0NDMxMTEwMDA0OEQwQTAwMDcwMDAwMDA0NDBBMDgwMDJBCis6MTAwODUwMDAwNDk1MTIwMDA3MDAwMDAwRkQyMzAwMDAyMDEwMDAwMDk2Cis6MTAwODYwMDA0MDgwMDMwMDQ0MTIxMDAwMDcwMDAwMDAyMDA4MDAwMDMwCis6MTAwODcwMDA2MDkwMDMwMDQwODAwMTAwRkQwMjAwMDA0MjgwMDEwMDAyCis6MTAwODgwMDAwQTAwMDgwMDA0MDkwMDAwODZGQTEwMDAwNzAwMDAwMEIyCis6MTAwODkwMDBGRDNCMDAwMDAwMDEwMDAwMTAwQTAwMDA3QTgwMEIwMDAwCis6MTAwOEEwMDA0QTgwMTMwMDg0MDkwOTAwMDcwMDAwMDA5NTAwMDAwMDM5Cis6MTAwOEIwMDAwNDNEMDEwMDg2ODAxMTAwMEEwMDEwMDAwMjAwMTAwMEIzCis6MTAwOEMwMDA4NDA5MDkwMDA3MDAwMDAwNDI4MDAzMDA0QTgwMTEwMEVCCis6MTAwOEQwMDAwNDBEMDkwMDA3MDAwMDAwMEEwMDEwMDA4NDBEMDkwMDQzCis6MTAwOEUwMDAwNzAwMDAwMDdEMjUwMDAwMjAwODAwMDA0MDgwMDEwMDc2Cis6MTAwOEYwMDAwRDAxMDAwMDEwMDgwMDAwM0ExNDI4MDA3RDEyMDAwMENECis6MTAwOTAwMDA0MjgwMDEwMDBBMDAyMDAwN0QxOTAwMDA0MjgwMDEwMEExCis6MTAwOTEwMDA3RDExMDAwMDRBODAzMTAwMEEwMDEwMDAyNDMxMDAwMERGCis6MTAwOTIwMDAwRDI4MDEwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMEVFCis6MTAwOTMwMDA0MjgwMDMwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMEY5Cis6MTAwOTQwMDAwMjAxMzAwMDI0MzEwMDAwMjQwNDAwMDAyNDA0MDAwMENGCis6MTAwOTUwMDAyNDEyMDAwMDAyMDUyODAwNEMxQTAwMDA4NjAxMTMwMDMyCis6MTAwOTYwMDAwMjAwNzAwMDJEMDAwMDAwMDAwMDAzMDA3RDM4MDAwMDMwCis6MTAwOTcwMDA0MjgwMDEwMDBBMDAxMDAwMDYyQTEzMDAyNDIxMDAwMDEyCis6MTAwOTgwMDBBRDAwMDAwMDAyMDAxMDAwMEQwMTAwMDAyNDA5MDAwMDZECis6MTAwOTkwMDAyNDZCMDAwMDhEMzYwMTAwN0QzOTAwMDAyMDA4MDAwMDI2Cis6MTAwOUEwMDA0MDgwMDUwMDQyODAwMzAwNEE4NDA5MDAwNjA2MDAwMERBCis6MTAwOUIwMDAwQTA0MDgwMDY0MzIwMDAwOEQwMDAwMDAyNDBBMDAwMEQwCis6MTAwOUMwMDAyMDEwMDAwMDdEMjIwMDAwNDA4MDAxMDAwRDNDMDEwMDRECis6MTAwOUQwMDAxMDA4MDAwMDNBMDQwODAwMDZEMjI5MDAwNzAwMDAwMEIxCis6MTAwOUUwMDAyMDI4MDAwMDdEMjAwMDAwNDA4MDAxMDA3RDExMDAwMEQzCis6MTAwOUYwMDA0MjgwMDMwMDRBODAxMzAwMEE4MDMzMDA3RDM4MDAwMEUzCis6MTAwQTAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjNBMTYwMDJFCis6MTAwQTEwMDAwNzAwMDAwMDhEMDAwMDAwNjQwOTAzMDA4RDQ3MDEwMEZECis6MTAwQTIwMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMDVFCis6MTAwQTMwMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDAwMjAxMzgwMDgyCis6MTAwQTQwMDAyNDA0MDAwMDI0MDQwMDAwMjQxMjAwMDBGRDAyMDAwMDIxCis6MTAwQTUwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NkEyMTQwMDc4Cis6MTAwQTYwMDAwNzAwMDAwMDAyMDUyODAwNEMxQTAwMDA4NjM5MTYwMDE1Cis6MTAwQTcwMDAwNzAwMDAwMDY0MjEwMzAwMkM2MzAwMDBGRDNEMDAwMDFFCis6MTAwQTgwMDA0MjgwMDEwMDBBMDAwODAwOTUwMDAwMDAwNDA5MDkwMEU2Cis6MTAwQTkwMDAwNzAwMDAwMDIwMDgwMDAwNEMxQTAwMDA4NjYxMTUwMEM1Cis6MTAwQUEwMDA0MDgwMDEwMDAwMDAwMzAwMDY3QTE1MDAyNDIxMDAwMEE4Cis6MTAwQUIwMDAwRDAxMDAwMDI0MDkwMDAwMjQ2QjAwMDA4RDVCMDEwMDgzCis6MTAwQUMwMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMEJFCis6MTAwQUQwMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDA2NDNBMDAwMDdGCis6MTAwQUUwMDA5NTAwMDAwMDI0MTIwMDAwRkQwMjAwMDA0MjgwMDEwMDc5Cis6MTAwQUYwMDAwQTAwMDgwMDA0MDkwMDAwODZEQTE1MDAwNzAwMDAwMDVCCis6MTAwQjAwMDA4RDYyMDEwMDEwMDgwMDAwM0EwNDA4MDAwNkQyMjkwMDk2Cis6MTAwQjEwMDAwNzAwMDAwMDA2RDIxNDAwMDcwMDAwMDAyMDcwMDAwMDRCCis6MTAwQjIwMDAwQTAxMDgwMDJBMDExMDAwRkQyMDAwMDA2MDg4MDMwMDZGCis6MTAwQjMwMDA2MDkwMDMwMDQwODAwMTAwN0QyMjAwMDA0MjgwMDEwMDlGCis6MTAwQjQwMDBGRDNEMDAwMDBBMDAwODAwNEE4NDMxMDAwNDA5MDAwMDRECis6MTAwQjUwMDA4NkQ4MTYwMDhCMDAxODAwOEQwMDAwMDAwNDk5MTgwMDNDCis6MTAwQjYwMDAyQzMxMDAwMDA2QUExNzAwMDcwMDAwMDA0QzMyMDAwMERDCis6MTAwQjcwMDA4NjMzMTcwMDA3MDAwMDAwMDQxOTAwMDA4NjMwMTcwMEI0Cis6MTAwQjgwMDAwNzAwMDAwMDk1MDAwMDAwNDQ5MTE5MDAyQzIyMDAwMDhECis6MTAwQjkwMDAyNDMxMDAwMDZDNjMwMDAwM0QwRTAwMDA3NTEzMDAwMDVFCis6MTAwQkEwMDBGRDBCMDAwMDQyMDAwMTAwNEE4MDA5MDAwQTAwMTAwMDBECis6MTAwQkIwMDBFQzhBMDMwMEVDOTMwMzAwNEMyMjAwMDA4NkE5MTcwMDg2Cis6MTAwQkMwMDAwNzAwMDAwMDhEMDAwMDAwMDQ5OTE4MDA2QzIyMDAwMDRFCis6MTAwQkQwMDAyQzMyMDAwMDBBMDUzMDAwQUIxRDMwMDA4MzIwMDAwMERECis6MTAwQkUwMDBGRDE4MDAwMDQyODAwMTAwMEEwMDA4MDAyNDg5MDEwMDZECis6MTAwQkYwMDAwMjA1MzAwMDgzMTAwMDAwNzUxODAwMDA0MjAwMDEwMDVCCis6MTAwQzAwMDAwQTAwMTAwMDhEMDAwMDAwMjQwOTAxMDA3NTEzMDAwMDg3Cis6MTAwQzEwMDA0MjA1MzMwMENCMEMzMzAwQ0IyQzMzMDBDQjM0MzMwMEY0Cis6MTAwQzIwMDBDQjNDMzMwMENCNDQzMzAwQ0I0QzMzMDBDQjU0MzMwMEFDCis6MTAwQzMwMDA4QjVDMzAwMDgzNjAwMDAwRjUwMjAwMDA0MjAwMDEwMDgwCis6MTAwQzQwMDAwQTAwMDgwMDA0MDkwMDAwODY3QTE4MDAwNzAwMDAwMDY2Cis6MTAwQzUwMDAyRDFFMDAwMEZEMDUwMDAwNDI4MDAxMDAwQTAwMDgwMDcyCis6MTAwQzYwMDAyNDg5MDIwMDAyMDUyODAwMEQwNjAwMDAxMDA4MDAwMDdCCis6MTAwQzcwMDAzQTBDMjgwMDhEMDAwMDAwMTAwODAwMDAzQTE0MjgwMEVCCis6MTAwQzgwMDA4RDgwMEEwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMEVECis6MTAwQzkwMDAwNzAwMjIwMDc1MTIwMDAwNDIwMDAzMDA0QTAwMjEwMEY0Cis6MTAwQ0EwMDA4RDAwMDAwMDQ0MDkxQTAwMDcwMDAwMDAwRDk4MDEwMEEzCis6MTAwQ0IwMDAxMDA4MDAwMDNBMDQwODAwMDYyMjJCMDAwNzAwMDAwMDdDCis6MTAwQ0MwMDBGNTAxMDAwMDQyMDAwMzAwNEEwMDBEMDAwQTAwMTAwMDc4Cis6MTAwQ0QwMDA0NDkxMDgwMDA3MDAwMDAwMjAwODAwMDA0MDAwMDEwMEM3Cis6MTAwQ0UwMDBGNTI1MDAwMDQ0MzEwQTAwMDcwMDAwMDAyMDA4MDAwMDNDCis6MTAwQ0YwMDA2MDI4MDMwMDQwMDAwMzAwN0QyMTAwMDA0MjgwMDMwMEMzCis6MTAwRDAwMDA0QTgwMEIwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDU5Cis6MTAwRDEwMDA0MDAwMDMwMDhEMDAwMDAwMjQwMTAwMDAyQzAxMDAwMEIxCis6MTAwRDIwMDA2NDBFMDAwMDY0MUEwMDAwNkM2MzAwMDAwQTAxMDgwMEYxCis6MTAwRDMwMDAyQTAxMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMDlBCis6MTAwRDQwMDBGRDIwMDAwMDQyODAwMTAwMEEwMDA4MDA3RDIyMDAwMDEyCis6MTAwRDUwMDA0MjgwMDEwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDFCCis6MTAwRDYwMDA0MDAwMDMwMDdEMTkwMDAwNDI4MDAxMDAwQTAwMDgwMEQ1Cis6MTAwRDcwMDBGRDIyMDAwMDQyODAwMzAwMEEwMDEwMDAyMDA4MDAwMDRECis6MTAwRDgwMDA2MDEwMDMwMDQwMDAwMzAwMDQwRDA5MDAwNzAwMDAwMDhDCis6MTAwRDkwMDAyMDA4MDAwMDQwMDAwMzAwNDI4MDAzMDA0QTgwMEIwMDRFCis6MTAwREEwMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMDRCCis6MTAwREIwMDA0MjgwMDMwMDRBODAxMzAwNEE4MDE5MDAwNDBEMTEwMDhDCis6MTAwREMwMDAwNDhEMTkwMDA3MDAwMDAwMEEwMDA4MDAyMDEwMDAwMDMwCis6MTAwREQwMDA2MDE4MDMwMDYwMDgwMzAwNDAwMDAzMDA4RDAwMDAwMDVECis6MTAwREUwMDA0NDA5MEIwMDA3MDAwMDAwMjAwODAwMDA0MDAwMDEwMDNCCis6MTAwREYwMDBGNTA1MDAwMDQyMDAwMzAwMEEwMDA4MDAyMDA4MDAwMDdBCis6MTAwRTAwMDA0MDAwMDEwMEY1MDAwMDAwNDIwMDAxMDAwQTAwMDgwMDU3Cis6MTAwRTEwMDAwNDA5MDAwMDg2NjAxQzAwNzUxRTAwMDA0MjAwMDMwMEVCCis6MTAwRTIwMDA0QTA0MDEwMDBBMEMwMDAwMDY3MjFDMDAwNzAwMDAwMEMyCis6MTAwRTMwMDAwMjA0MDAwMDAyMEMwMDAwN0QxNzAwMDBGNTFBMDAwMEZCCis6MTAwRTQwMDA0MjgwMDEwMDRBMTQwMzAwNEExQzAzMDA0QTI0MDMwMEE0Cis6MTAwRTUwMDA0QTJDMDMwMDRBMzQwMzAwNEEzQzAzMDA0QTQ0MDMwMDdFCis6MTAwRTYwMDAwQTRDMDAwMDNEMDQwMDAwRjUxMzAwMDBGRDFBMDAwMENDCis6MTAwRTcwMDA0MjAwMDMwMDRBMDAwQjAwNEE4MDFCMDA0QTgwMTMwMDE2Cis6MTAwRTgwMDAwQTAwMjAwMDQ0OTEwODAwNDRBMTE5MDBFNDg5MDMwMEVECis6MTAwRTkwMDBFQzk5MDMwMDAyNTUwMDAwMEE1RDAwMDA0MjAwMDMwMEM3Cis6MTAwRUEwMDA0QTAwMEIwMDRBODAxQjAwNEE4MDEzMDAwQTAwMjAwMDAxCis6MTAwRUIwMDA0NDkxMDgwMDQ0QTExOTAwRTQ4OTAzMDBFQzk5MDMwMDVGCis6MTAwRUMwMDAwMjY1MDAwMDBBNkQwMDAwNDIwMDAzMDA0QTAwMEIwMEFBCis6MTAwRUQwMDA0QTAwMTkwMDRBODAyQjAwNEE4MDEzMDA0QTgwMjEwMEYyCis6MTAwRUUwMDAwQTAwMzAwMDQ0OTEwODAwNDRBMTE5MDA0NEIxMkEwMENFCis6MTAwRUYwMDBFNDg5MDMwMEVDOTkwMzAwMDI3NTAwMDAwQTdEMDAwMEZDCis6MTAwRjAwMDBFNEE5MDMwMDAyMDcwMDAwN0QxMDAwMDAxNTA0MDAwMEEyCis6MTAwRjEwMDA0MjgwMDEwMDBBMDAwODAwRTQwOTAxMDAwMjBGMDAwMEZECis6MTAwRjIwMDBGNTJBMDAwMEZEMTkwMDAwNDIwMDAxMDA0QTgwMDkwMDc2Cis6MTAwRjMwMDAwQTAwMTAwMDM0MDkwMDAwNzQxNjAwMDBGNTI5MDAwMEIyCis6MTAwRjQwMDA0MjAwMDEwMDBBMDAxMDAwN0M5MTAwMDA3NTIwMDAwMEEyCis6MTAwRjUwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDA4NkQyMUUwMEI5Cis6MTAwRjYwMDBGNTI2MDAwMEY1MjcwMDAwNDIwMDAzMDA0QTAwMDkwMEIyCis6MTAwRjcwMDAwQTAwMTAwMDNDMEEwMDAwN0MxNjAwMDA3NTFBMDAwMEYwCis6MTAwRjgwMDBGRDBCMDAwMDQyMDAwMTAwNEE4MDUxMDAwQTAwNDgwMEE5Cis6MTAwRjkwMDAwNzAwMTYwMDc1MTAwMDAwNDIwMDAxMDAwQTJDMjgwMDBFCis6MTAwRkEwMDAxMjFEMjgwMDEyMjUyODAwMzIxRjAwMDAwNzAwMUUwMDE1Cis6MTAwRkIwMDAwNzAwMEUwMDc1MTkwMDAwNDIwMDAxMDBGNTJEMDAwMDI5Cis6MTAwRkMwMDA0QTAwMEQwMDBBMDAxMDAwNDQ5MTAwMDA4NkIyMUYwMDg0Cis6MTAwRkQwMDA0MjAwMDEwMDBBMzQyODAwNUQwRTAwMDA4RDAwMDAwMDcwCis6MTAwRkUwMDA3NTAzMDAwMDIwMDgwMDAwNDAwMDAxMDBGNEQyMDUwMDU1Cis6MTAwRkYwMDAwNEQxNTQwMDVDNzMwMDAwODY1MzIwMDAwNzAwMDAwMEY5Cis6MTAxMDAwMDAwNzAwMEMwMDA3MDAwODAwMDcwMDBBMDAwRDA0MDIwMDlBCis6MTAxMDEwMDAxMDA4MDAwMDNBMDQwODAwMDYyMjMzMDAwNzAwMDAwMDEwCis6MTAxMDIwMDAwNjVBMjAwMDA3MDAwMDAwMDcwMDA4MDA3NTIyMDAwMDkzCis6MTAxMDMwMDA0MjAwMDEwMDBBMDAyMDAwMDQyMTAwMDA4NjIwMjEwMDU3Cis6MTAxMDQwMDAyRDFFMDAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA5Cis6MTAxMDUwMDAwNDA5MDAwMDg2OTIyMDAwMDcwMDAwMDAxMDIwMDAwMDE0Cis6MTAxMDYwMDAzQTA0MzAwMDdEMDUwMDAwQzM4MDAxMDAwQTAwMDgwMDNBCis6MTAxMDcwMDAyNDg5MDIwMDAyMDUyODAwMDIwQzI4MDAwRDgxMEEwMEM0Cis6MTAxMDgwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAwNzAwMjIwMEQ3Cis6MTAxMDkwMDBGRDA0MDAwMDQyODAwMTAwMEEwMDcwMDAwMDAwMDMwMDBGCis6MTAxMEEwMDAyMDcwMDAwMDA2RkEwNjAwNDA4MDAxMDAwRDE4MDIwMEMyCis6MTAxMEIwMDAxMDA4MDAwMDNBMDQwODAwMDYyMjJCMDAwNzAwMDAwMDc4Cis6MTAxMEMwMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDNGCis6MTAxMEQwMDA4NjhBMjEwMDA3MDAwMDAwMDZGMjAxMDAwNzAwMDAwMEQ4Cis6MTAxMEUwMDA3NTA4MDAwMEZEMDkwMDAwMEQwMTAwMDAwNjBBMjIwMDNECis6MTAxMEYwMDA5NTAyMDAwMDc1MEIwMDAwN0QwOTAwMDAwRDAwMDAwMDQ2Cis6MTAxMTAwMDAxNTA1MDAwMDQyMDAwMTAwMEEwMDE4MDAwNDE5MDAwMDQzCis6MTAxMTEwMDA4Njc4MjgwMEY1MDYwMDAwMjAxMDAwMDA0MDAwMDEwMDNECis6MTAxMTIwMDBGNTA0MDAwMDIwMDgwMDAwNDAwMDAxMDA3NTA3MDAwMEUxCis6MTAxMTMwMDA0MjAwMDEwMDRBODAwOTAwMEEwMDEwMDAyNDExMDAwMDRBCis6MTAxMTQwMDAwNDA5MDAwMDg2QkEyMjAwMTUwODAwMDAwMjAxMDgwMDA4Cis6MTAxMTUwMDAwNDEyMTAwMDA2REEyMjAwNzUwNTAwMDAwNDEyMDgwMENGCis6MTAxMTYwMDAwNzAwMDAwMDAyMDExMDAwNzUwNTAwMDAyNTA0MDAwMEMyCis6MTAxMTcwMDAyNDExMDIwMDAyMDExMDAwMjAwODAwMDA2MDEwMDMwMDhBCis6MTAxMTgwMDA0MDAwMDEwMDI0MTkwMDAwODY3ODI4MDA4RDAwMDAwMDJFCis6MTAxMTkwMDA2NDA0MDAwMDA0OUQwMDAwODY4ODI3MDAwMjAxMTgwMEY2Cis6MTAxMUEwMDA3NTA1MDAwMDQyMDAwMTAwMEEwNDI4MDA4RDAxMDAwMEJFCis6MTAxMUIwMDAyNDA5MDAwMDAyMEQyODAwMEQwMDAwMDAyNDA5MDAwMDkxCis6MTAxMUMwMDAwMjE1MjgwMDBEMDAxMDAwMjAwODAwMDBGNTAyMDAwMEE0Cis6MTAxMUQwMDA0MDAwMDEwMDA3MDAyMDAwNzUxMTAwMDBGRDAyMDAwMDIyCis6MTAxMUUwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NkMyMjMwMEIyCis6MTAxMUYwMDAwNzAwMDAwMDAwMDEwMDAwMjAwQjA4MDA2MDBCMTMwMDM2Cis6MTAxMjAwMDA2MDBCMUIwMDYwMEEwMzAwNDAwMDAxMDA0MjAwMDUwMDYzCis6MTAxMjEwMDA0QTAwM0QwMDRBMDAzNTAwNEEwMDJEMDAwQTAwMjAwMDI3Cis6MTAxMjIwMDBGNTA2MDAwMDQyMDAwMTAwMEExNDI4MDBGNTA0MDAwMDQxCis6MTAxMjMwMDA0MjAwMDEwMDBBMDAwODAwMTUwMzAwMDAwNDBEMDEwMDJGCis6MTAxMjQwMDA4NkNBMjQwMDE1NDAwMDAwOTUwMDAwMDAwNDBEMDEwMDJFCis6MTAxMjUwMDA4NkI4MjQwMDIyMDAxMDAwMkEwMDEwMDAwNkUyMjQwMEI0Cis6MTAxMjYwMDAwNzAwMDAwMDA0MzEzMzAwMDRBOTJBMDAwNzAwMDAwMDMxCis6MTAxMjcwMDAyNDIxMDMwMDAyMDUyODAwMjQxMTAwMDAyNDA0MDAwMDlBCis6MTAxMjgwMDAyNDA0MDAwMDI0MzIwMDAwMkMyOTAwMDA2QzYzMDAwMEJDCis6MTAxMjkwMDA4NkYzMjUwMDA3MDAwMDAwNjRCMTAyMDA2NDA0MDAwMDJBCis6MTAxMkEwMDA2NDA0MDAwMDhEMDAwMDAwNjQwQTAwMDAwMjBEMjgwMEE0Cis6MTAxMkIwMDA4RDAwMTAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDMxCis6MTAxMkMwMDAwNzAwMjIwMDhEMDAwMDAwMDRCOTM4MDAwNzAwMDAwMDZDCis6MTAxMkQwMDA2QzI5MDMwMDBBMDEzMDAwRjUwMjAwMDA0MjAwMDEwMDAxCis6MTAxMkUwMDAwQTAwMDgwMDA0MDkwMDAwODZCQTI1MDAwNzAwMDAwMDczCis6MTAxMkYwMDAyQzMxMDIwMDBBMDUyODAwOEQwMDAwMDA2QzA5MDEwMDU1Cis6MTAxMzAwMDAwQTBEMjgwMDBEMDExMDAwMjAwODAwMDBGNTAyMDAwMDYxCis6MTAxMzEwMDA0MDAwMDEwMDA3MDAyMjAwMjQxMTAwMDAyNDA0MDAwMDA2Cis6MTAxMzIwMDAyNDA0MDAwMDI0MzIwMDAwMDIwMTMwMDA0NDI5MDMwMDlDCis6MTAxMzMwMDA4NjdBMjYwMDA3MDAwMDAwMDIwMDMwMDBGNTA0MDAwMDU1Cis6MTAxMzQwMDA0MjAwMDEwMDBBMDAwODAwMTUwMzAwMDAwNDBEMDEwMDFFCis6MTAxMzUwMDA4NkMwMjYwMDI0MzEwMDAwNjQwNDAwMDAwMjAxMzAwMDMxCis6MTAxMzYwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMDI0Cis6MTAxMzcwMDA4NkNBMjYwMDA3MDAwMDAwMjQzMTAwMDAwMjA1MzAwMDY0Cis6MTAxMzgwMDAyNDM5MDAwMDgzMDUzMDAwODMwODAwMDBGNTA1MDAwMEMzCis6MTAxMzkwMDA0MjAwMDEwMDBBMDQyODAwOEQwMDAwMDAyNDgxMDAwMEEyCis6MTAxM0EwMDAwMjBEMjgwMDhEMDAwMDAwMjQ4MTAwMDAwMjE1MjgwMDk1Cis6MTAxM0IwMDA4RDAxMTAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDJGCis6MTAxM0MwMDAwNzAwMjIwMDI1MTAwMDAwNzUwNTAwMDA0MjAwMDMwMDAwCis6MTAxM0QwMDA0QTAwMDkwMDBBMDAxMDAwMDQwOTBBMDAwNDExMTIwMDYyCis6MTAxM0UwMDAwNzAwMDAwMDIwMTAwMDAwNjAwODA1MDA0MDAwMDUwMDE0Cis6MTAxM0YwMDBGRDA2MDAwMDQyODAwMTAwNEEwMDA5MDAwQTAwMTAwMEJBCis6MTAxNDAwMDBBNTAwMDAwMDA0MDkwQTAwMDQxMTEyMDAwNzAwMDAwMEYyCis6MTAxNDEwMDAyMDA4MDAwMDYwOTAwMTAwNDAwMDAxMDBGNTAyMDAwMDdCCis6MTAxNDIwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjQyMjgwMDZBCis6MTAxNDMwMDAwNzAwMDAwMDA2MEEyMzAwMDcwMDAwMDAwNjA2MDAwMDVGCis6MTAxNDQwMDAwNzAwMDAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDQ5Cis6MTAxNDUwMDAwNDA5MDAwMDg2OTIyODAwMDcwMDAwMDAwMDAxMDAwMDM3Cis6MTAxNDYwMDAyMDBCMDgwMDYwOEIxMzAwNjA4QjFCMDA2MDhCMjMwMDM3Cis6MTAxNDcwMDA2MDhCMkIwMDYwOEIzMzAwNjA4QjNCMDA2MDhCNDMwMEU0Cis6MTAxNDgwMDA2MDhCNEIwMDYwOEI1MzAwNjA4QjVCMDA2MDhCNjMwMDU0Cis6MTAxNDkwMDA2MDhCNkIwMDYwOEI3MzAwNjA4QjdCMDA2MDhGMDMwMDQwCis6MTAxNEEwMDA2MDhGMEIwMDYwOEYxMzAwNjA4RjFCMDA2MDhGMjMwMDI0Cis6MTAxNEIwMDA2MDhGMkIwMDYwOEYzMzAwNjA4RjNCMDA2MDhGNDMwMDk0Cis6MTAxNEMwMDA2MDhGNEIwMDYwOEY1MzAwNjA4RjVCMDA2MDhGNjMwMDA0Cis6MTAxNEQwMDA2MDhGNkIwMDYwOEY3MzAwNjA4RjdCMDA2MDhBMDMwMEY5Cis6MTAxNEUwMDAwNjA2MDAwMDQwODAwMTAwOEQwMDAwMDA2NDBBMDAwMDM0Cis6MTAxNEYwMDAwMjBEMjgwMDI0MEEwMDAwN0QwMjAwMDA0MjgwMDEwMDQ1Cis6MTAxNTAwMDAwQTAwMTAwMDI0MTIwMDAwRkQwMzAwMDA0MjgwMDEwMEM4Cis6MTAxNTEwMDAwQTAwMDgwMDA0MDkwMDAwODY4MjJBMDAwNzAwMDAwMDczCis6MTAxNTIwMDA4RDAxMDAwMDI0MEEwMDAwNjQwNDAwMDA2NDA0MDAwMDJGCis6MTAxNTMwMDAwMjAxMDgwMDI0MDkwMDAwMjQwNDAwMDAyNDA0MDAwMDIzCis6MTAxNTQwMDAwMjAxMTAwMDBEMDAwMjAwNDQ5MTAwMDA4NkQ5MkEwMDFCCis6MTAxNTUwMDAwNzAwMDAwMEZEMDEwMDAwNDI4MDAxMDAwQTAwMDgwMEIxCis6MTAxNTYwMDA0NDBBMDAwMDg2QkIyQTAwNDI4MDAxMDAwRDAwMEEwMEU4Cis6MTAxNTcwMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDAwNzAwMjAwMDVDCis6MTAxNTgwMDA3RDAyMDAwMDIwMTAwMDAwMDYwNjAwMDA0MDgwMDEwMERGCis6MTAxNTkwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMEYyCis6MTAxNUEwMDA4NjJBMkIwMDA3MDAwMDAwN0QwMzAwMDA0MjgwMDEwMDE2Cis6MTAxNUIwMDAwQTAwMDgwMDA0MDkwMDAwODY1QTJCMDAwNzAwMDAwMEZBCis6MTAxNUMwMDA3NTAwMDAwMDdEMkUwMDAwNDIwMDAxMDA0QTgwMEIwMEUzCis6MTAxNUQwMDAyMDAwMDAwMDA0MDkwMDAwODYwNjAwMDA0MDAwMDEwMDExCis6MTAxNUUwMDA0QTg0MzEwMDhCMDQzMDAwODMwODAwMDA4RDAwMDAwMDI1Cis6MTAxNUYwMDAxMDA4MDAwMDNBMTQyODAwOEQwMDAwMDAxMDA4MDAwMEI4Cis6MTAxNjAwMDAzQTBDMjgwMDc1MDYwMDAwNDIwMDAxMDAwQTAwMDgwMDlDCis6MTAxNjEwMDAxNTM4MDAwMDI0MDkwMTAwMDIwNTI4MDAwRDAwMEIwMDA4Cis6MTAxNjIwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAwNjA2MDAwMDRFCis6MTAxNjMwMDAwNzAwMjIwMDY0MDQwMDAwNjQwNDAwMDAwNjA2MDAwMEE1Cis6MTAxNjQwMDAwNzAwMDAwMDM0MDEwMDAwOEQ3RjAwMDAzQzA5MDAwMDBECis6MTAxNjUwMDAxMjFEMjgwMDEyMjUyODAwMzIxRjAwMDAwNzAwMEUwMDZFCis6MTAxNjYwMDAwRDAxMDAwMDdEMDMwMDAwMjAwODAwMDA0MDgwMDEwMDAzCis6MTAxNjcwMDBGNEQyMDUwMDA3MDAwMDAwMDcwMDA4MDA3RDAzMDAwMDA5Cis6MTAxNjgwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjAyMkQwMEMzCis6MTAxNjkwMDAwNzAwMDAwMDA2MDYwMDAwMDcwMDAwMDAwNzAwMDAwMDI5Cis6MTAxNkEwMDAxMjAwMDAwMDA3MDAxMDAwMDcwMDMyMDAwNzAwNjAwMDcxCis6MTAxNkIwMDA4MDAwMTAwMDFBMDA0ODAwMDQ0OTAwMDA4NjYxMkQwMEQ3Cis6MTAxNkMwMDAwNzAwMDAwMDEwMTIwMDAwM0EwMDU4MDA0NTAxMDAwMDE5Cis6MTAxNkQwMDAwNDVENUMwMDA3MDAwMDAwODAwMDAwMDAxQTAwNDgwMDY0Cis6MTAxNkUwMDAwNDQ5MDAwMDg2QjEyRDAwMDcwMDAwMDAxMDEyMDAwMDIwCis6MTAxNkYwMDAzQTAwNTAwMDA0NTkwMDAwODYwODJFMDA0NTAwMDAwMDAyCis6MTAxNzAwMDBDNTAwMDAwMEY1RkY3RjAwN0RGRjdGMDAyNEQ1MDcwMEE2Cis6MTAxNzEwMDAyNDQyMDAwMDAyMDE1MDAwMDIwNTIwMDA4MjAwMDAwMDY3Cis6MTAxNzIwMDAxQTAwNDAwMDA0NDEwMDAwODYzOTJFMDAwNzAwMDAwMDI2Cis6MTAxNzMwMDA2NTM4MDAwMDFBMDA0MDAwMjA0MDAwMDA0RDEwMDAwMEY1Cis6MTAxNzQwMDA4NEMxMDQwMDg2MUIzMDAwNDAwMDAwMDAwNzAwMDQwMDM0Cis6MTAxNzUwMDA2NTAxMDAwMDQ1MDEwMDAwMjA0MDAwMDA0MDAwMDAwMDNECis6MTAxNzYwMDA2NTA3MDAwMDgwMDAwODAwMUEwMDQwMDAwNDQxMDAwMEU2Cis6MTAxNzcwMDA4NkM5MkUwMDA3MDAwMDAwMTAxMjAwMDAzQTAwNDAwMDQ5Cis6MTAxNzgwMDAwNDQxMDAwMDg2MjIyRjAwNEQwMDAwMDBDRDAwMDAwMDIzCis6MTAxNzkwMDAxMDQ4MDAwMDNBMDQyMDAwODIwODAwMDAxQTAwNDAwMEFGCis6MTAxN0EwMDAwNDQxMDAwMDg2MzEyRjAwMDcwMDAwMDAyMDQ4MDAwMDlGCis6MTAxN0IwMDAwNDU5MDAwMDg2MDgzMDAwNDAwMDAwMDBFNTA3MDAwMEUyCis6MTAxN0MwMDA4MDA0MjAwMEEwMTYyODAwRTAxNjMyMDBFMDE2M0EwMDNGCis6MTAxN0QwMDBFMDE2NDIwMDYwMTIwMjAwNDAwMDAwMDAzMjAwMDAwMEVCCis6MTAxN0UwMDA3NTAwNDAwMDdEMDAwMDAwNzRENTA3MDAxMjA1MjAwMDQwCis6MTAxN0YwMDA4MjAwMDAwMDFBMDA0MDAwMDQ0MTAwMDA4NkUxMkYwMDMyCis6MTAxODAwMDAwNzAwMDAwMDA2NzIwMzAwMDcwMDY0MDAwNzAwMDYwMERFCis6MTAxODEwMDBFNTAwMDAwMDIwMDAwMDAwNDAwMDAwMDA2NTBBMDAwMDE0Cis6MTAxODIwMDAyMDAwMDAwMDQwMDAwMjAwNDAwMDAyMDA0MDAwMDAwMEQ0Cis6MTAxODMwMDA2NTAxMDAwMDQyMDAwMDAwMEEwMDcwMDAwNDcxMDAwMDExCis6MTAxODQwMDA4NkEyMzAwMDA3MDAwMDAwMDY4MjAxMDAwNzAwNjQwMDQ1Cis6MTAxODUwMDAwMDAwMDUwMDIwNzAwMDAwNDAwMDAwMDAwNjcyMDMwMDM4Cis6MTAxODYwMDAwNzAwNjQwMDA3MDAwMDAwNkQzMDAwMDA2MDg4MDIwMDdGCis6MTAxODcwMDA2MDkwMDIwMDBBMDAwODAwNjA4ODAyMDA0MDgwMDAwMEJBCis6MTAxODgwMDAxMjAwMTAwMDBEMTAwMDAwODQ5MTAwMDA4NjQxMzEwMDBDCis6MTAxODkwMDAwRDBFMDAwMDg0OTEwMDAwODY1MTMyMDAwNzAwMDAwMDA4Cis6MTAxOEEwMDAwNzAwMzAwMDIwMTAwMDAwNkQzQjAwMDA0MDgwMDAwMDY5Cis6MTAxOEIwMDA4MDAwMDAwMDFBMDAwODAwMDQwOTAwMDA4NjYxMzEwMDYxCis6MTAxOEMwMDAwNzAwMDAwMDIwMTIwMDAwRUQwRDAwMDA0MDgwMDAwMDI1Cis6MTAxOEQwMDA0MjgwMDAwMDBBMDAxMDAwMEQwMDQwMDA0NDk1MTAwMEY2Cis6MTAxOEUwMDAwNzAwMDAwMDIwMTAwMDAwRUQwRDAwMDA0MDgwMDAwMDA3Cis6MTAxOEYwMDA0MjgwMDAwMDBBMDQyMDAwODIwMDAwMDAxQTAwMDgwMDU0Cis6MTAxOTAwMDAwNDA5MDAwMDg2RjEzMTAwMDcwMDAwMDA2RDNCMDAwMDczCis6MTAxOTEwMDA0MjgwMDAwMDBBMDAwODAwMTUwRTAwMDA4NDA5MDEwMDQyCis6MTAxOTIwMDA4NjlCMzIwMDA3MDA2MDAwMUEwMDA4MDAxNTBDMDAwMEJBCis6MTAxOTMwMDA4NDA5MDEwMDg2ODMzMjAwMjAwMDAwMDAwNzAwMUEwMDlECis6MTAxOTQwMDBFRDAyMDAwMDQwODAwMDAwMDcwMDYyMDA2RDMwMDAwMEUyCis6MTAxOTUwMDA0MjgwMDIwMDRBODAwQTAwMjAwODAwMDA0QTgwMEEwMEYzCis6MTAxOTYwMDAwNjA2MDAwMDRBODAxMDAwMDcwMDAwMDAxMjI1MjgwMDJCCis6MTAxOTcwMDAzMjFGMDAwMEY0RDIwNTAwMDREMTU0MDA1QzczMDAwMDUzCis6MTAxOTgwMDA4NjA3MDAwMDA3MDAwMDAwMDcwMDBDMDAwNzAwMEEwMDlGCis6MTAxOTkwMDAwNzAwMUMwMDY1MzQwMDAwNDAwMDAyMDAyMDQ4MDAwMEUxCis6MTAxOUEwMDA2MDUwMDIwMDBBMDA0MDAwNjA0MDAyMDA0MDAwMDAwMDU5Cis6MTAxOUIwMDA0NDQ5NDUwMDA3MDAwMDAwMjA0MDAwMDBFNTNBMDAwMENGCis6MTAxOUMwMDA0MDAwMDAwMEU1MjgwMDAwNDIwMDAwMDAwQTAwNDgwMDM2Cis6MTAxOUQwMDAwNDQ5MDAwMDg2NjgzODAwNjUyQzAwMDA0MjAwMDAwMEMxCis6MTAxOUUwMDAwQTAwNDAwMEQ1MDAwMDAwMDQ0MTQ1MDAwNzAwMDAwMDQ3Cis6MTAxOUYwMDA1NTA2MDAwMDA0NDUwNTAwODZGMjM0MDBENTAxMDAwMEJDCis6MTAxQTAwMDAwNDQ1MDUwMDg2RjAzNDAwNjUyQjAwMDA0MjAwMDAwMDBDCis6MTAxQTEwMDBFNTNBMDAwMDRBMDA1MDAwMEEwMDQwMDBENEMzNDUwMEU3Cis6MTAxQTIwMDAwNzAwMDAwMDA0NDU0NTAwMDcwMDAwMDBDRDAwMDAwMDRECis6MTAxQTMwMDA0NDQ5NDQwMDA3MDAwMDAwMDQ0NTQ1MDAwNzAwMDAwMDM5Cis6MTAxQTQwMDA0RDAxMDAwMDQ0NDk1NTAwMDcwMDAwMDA0NDUxMDQwMEM2Cis6MTAxQTUwMDA4NkU5MzQwMDY1MkMwMDAwNDIwMDAwMDAwQTAwNDgwMEJFCis6MTAxQTYwMDAwNEQxNEMwMDA3MDAwMDAwNDRDMTA0MDA4NkYzMzQwMDk4Cis6MTAxQTcwMDAwNzAwMDAwMDA3MDAxNjAwRTUyQzAwMDA0MjAwMDQwMEVCCis6MTAxQTgwMDAwQTAwNDAwMDIwNDAwMDAwNDAwMDAwMDA2NTI5MDAwMERFCis6MTAxQTkwMDA0MjAwMDAwMDBBMDA0MDAwMDQ0MTAwMDA4NjYwMzUwMDVBCis6MTAxQUEwMDAwNzAwMDAwMDAyMjQwMDAwMDZBMjM2MDAwMjVDMDAwMENECis6MTAxQUIwMDBFNTI1MDAwMDQyMDAwMDAwMEEwMDQwMDA3NDQyMDAwMERBCis6MTAxQUMwMDBFNTJBMDAwMDQyMDAwMDAwMEEwMDQwMDA3NDQyMDAwMEM1Cis6MTAxQUQwMDAxMjAxNTAwMEU1MjkwMDAwNDIwMDAwMDAwQTAwNDAwMDA5Cis6MTAxQUUwMDAzNDQyMDAwMDA0NDE0NTAwMDcwMDAwMDAyMDQwMDAwMDhGCis6MTAxQUYwMDA0MDAwMDAwMEU1M0UwMDAwMjAwMDAwMDA0MDAwMDAwMDIzCis6MTAxQjAwMDBFNTJEMDAwMDUyMDE0MDAwMEEwMDUwMDA0NDUxMDQwMDNECis6MTAxQjEwMDA4NjRBMzYwMEM1MDAwMDAwRTUzRTAwMDAyMDQwMDAwMDc3Cis6MTAxQjIwMDA0MDAwMDAwMEU1MkIwMDAwNDIwMDAwMDAwQTAwNDAwMEQ5Cis6MTAxQjMwMDA1NDQyNDAwMDA3MDAwMDAwRTUyQTAwMDAyMDQwMDAwMDU5Cis6MTAxQjQwMDA0MDAwMDAwMDMyMDE1MDAwMzQwMTA0MDA3NDU2MDAwMENGCis6MTAxQjUwMDBFNTI5MDAwMDQyMDAwMjAwMEEwMDQyMDA0MjAwMDAwMEE1Cis6MTAxQjYwMDAwQTAwNTAwMDdDNDEwNTAwRTUyODAwMDA0MjAwMDAwMDBBCis6MTAxQjcwMDAwQTAwNDgwMEM1MDAwMDAwNDRDMTRDMDA4NjEwMzcwMDMwCis6MTAxQjgwMDBFNTI2MDAwMEU1MjcwMDAwNDIwMDAyMDA0QTAwNDAwMDcwCis6MTAxQjkwMDAwQTAwNTAwMDNDNDIwMDAwN0M1NjAwMDBFNTI4MDAwMDhFCis6MTAxQkEwMDAyMDQ4MDAwMDQwMDAwMDAwMTIxRDI4MDAxMjI1MjgwMEQ3Cis6MTAxQkIwMDA3MjFGMDAwMDY1MjkwMDAwNDIwMDAwMDAwQTAwNDAwMDdBCis6MTAxQkMwMDAwNDQxMDAwMDg2QUEzNzAwMDcwMDBFMDAwNzAwMTYwMDM3Cis6MTAxQkQwMDAwNzAwMUUwMEU1M0UwMDAwNDIwMDAwMDAwQTAwNDAwMDMxCis6MTAxQkUwMDAwNDQxMDAwMDg2RTgzNzAwNjUyRDAwMDA0MjAwMDAwMDM3Cis6MTAxQkYwMDAwQTM0MjgwMDY1MzQwMDAwNDIwMDAyMDA0QTAwNDIwMDE2Cis6MTAxQzAwMDAyMDQwMDAwMDRBMDA0QTAwNEEwMDUwMDBGNEQyMDUwMDdCCis6MTAxQzEwMDAwNEQxNTQwMDVDNzMwMDAwODY1MTM4MDAwNzAwMDAwMEI2Cis6MTAxQzIwMDAwNjA2MDAwMDA3MDAwODAwMDcwMDBDMDAwNzAwMDgwMDc3Cis6MTAxQzMwMDAwNzAwMEEwMEU1MDEwMDAwNDUwMDAyMDAyMDQwMDAwMDA2Cis6MTAxQzQwMDA2MDAwMDAwMDY1MDMwMDAwNDAwMDAwMDA2NTJFMDAwMEY5Cis6MTAxQzUwMDAyMDFBMDAwMDYwMUEwQTAwNDAwMDAwMDA2NTM0MDAwMEVECis6MTAxQzYwMDA0MjAwMDIwMDRBMDA0MjAwMjA0MDAwMDA0QTAwNEEwMEIwCis6MTAxQzcwMDAwNjA2MDAwMDRBMDA1MDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTAxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTAxRUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTAxRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyCis6MTAxRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTAxRUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTAxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MTAxRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTAxRjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTAxRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyMzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyMzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyM0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyM0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyM0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyM0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyM0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyM0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENDCis6MTAyNDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MTAyNEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERDCis6MTAyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENCCis6MTAyNTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJCCis6MTAyNTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFCCis6MTAyNTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlCCis6MTAyNTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhCCis6MTAyNTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdCCis6MTAyNTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZCCis6MTAyNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVCCis6MTAyNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRCCis6MTAyNTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCCis6MTAyNUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJCCis6MTAyNUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFCCis6MTAyNUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCCis6MTAyNUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZCCis6MTAyNUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVCCis6MTAyNUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERCCis6MTAyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENBCis6MTAyNjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJBCis6MTAyNjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFBCis6MTAyNjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlBCis6MTAyNjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBCis6MTAyNjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdBCis6MTAyNjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTAyNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTAyNjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTAyNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTAyNkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJBCis6MTAyNkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFBCis6MTAyNkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBCis6MTAyNkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZBCis6MTAyNkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVBCis6MTAyNkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERBCis6MTAyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM5Cis6MTAyNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI5Cis6MTAyNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE5Cis6MTAyNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk5Cis6MTAyNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg5Cis6MTAyNzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc5Cis6MTAyNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY5Cis6MTAyNzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5Cis6MTAyNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5Cis6MTAyNzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM5Cis6MTAyN0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI5Cis6MTAyN0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE5Cis6MTAyN0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5Cis6MTAyN0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTAyN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU5Cis6MTAyN0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ5Cis6MTAyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM4Cis6MTAyODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTAyODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTAyODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTAyODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4Cis6MTAyODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc4Cis6MTAyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTAyODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTAyODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTAyODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTAyOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTAyOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTAyOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4Cis6MTAyOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY4Cis6MTAyOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU4Cis6MTAyOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ4Cis6MTAyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTAyOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTAyOTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE3Cis6MTAyOTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTAyOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTAyOTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTAyOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTAyOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTAyOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ3Cis6MTAyOTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTAyOUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTAyOUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTAyOUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTAyOUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY3Cis6MTAyOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTAyOUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTAyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTAyQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTAyQTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTAyQTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTAyQTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2Cis6MTAyQTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc2Cis6MTAyQTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTAyQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTAyQTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTAyQTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTAyQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6MTAyQUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTAyQUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTAyQUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTAyQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6MTAyQUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTAyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1Cis6MTAyQjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI1Cis6MTAyQjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTAyQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAyQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAyQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAyQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAyQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAyQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAyQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAyQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAyQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAyQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAyQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAyQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAyQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTAyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAyQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAyQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAyQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAyQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAyQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAyQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAyQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAyQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAyQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAyQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAyQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAyQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAyQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAyQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAyRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAyRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAyRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAyRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAyRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAyRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAyRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAyRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAyRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAyREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAyREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAyREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAyREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAyREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAyREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAyRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAyRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAyRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAyRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAyRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAyRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAyRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAyRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAyRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTAyRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTAyRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTAyRUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyCis6MTAyRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTAyRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTAyRUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTAyRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTAyRjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MTAyRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAyRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAyRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAyRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAyRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAyRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAyRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAyRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAyRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAyRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAyRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAyRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUveWFtYWhhL2RzMV9kc3AuZncuaWhleCBiL2Zpcm13YXJlL3lhbWFoYS9kczFfZHNwLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiMGJhNAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3lhbWFoYS9kczFfZHNwLmZ3LmloZXgKQEAgLTAsMCArMSw5IEBACis6MTAwMDAwMDA4MTAwMDAwMEE0MDEwMDAwMEEwMDAwMDAyRjAwMDAwMDkxCis6MTAwMDEwMDA1MzAyMDgwMDE3MDM4MDAxN0I0MDAwMDAzRjg0MDAwMDZBCis6MTAwMDIwMDAzQzQ4MDEwMDNDOTQwMTAwM0NEODA1MDAzQzFDMDAwMDA5Cis6MTAwMDMwMDA3QkMwMDAwMDNGMEMwNTAwM0M1MDIxMDEwMDAwMDAwMDg3Cis6MTAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAwMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAwMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUveWFtYWhhL2RzMWVfY3RybC5mdy5paGV4IGIvZmlybXdhcmUveWFtYWhhL2RzMWVfY3RybC5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5N2Y0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS95YW1haGEvZHMxZV9jdHJsLmZ3LmloZXgKQEAgLTAsMCArMSw3NjkgQEAKKzoxMDAwMDAwMDA3MDAwMDAwMDcwMDI0MDAwNzAwMEMwMDA3MDAxQzAwODgKKzoxMDAwMTAwMDA3MDAwNjAwMDIwMDcwMDAyMDAwMDAwMDQwMDAwMzAwRkUKKzoxMDAwMjAwMDA0NzEwMDAwODY0MjAwMDA0MDAwMDMwMDBEMEYwMDAwMzQKKzoxMDAwMzAwMDEwMDgwMDAwM0EwNDIwMDA4MjAyMDAwMDBEMDIwMDAwQjcKKzoxMDAwNDAwMDEwMDgwMDAwM0EwNDIwMDA4MjEyMDAwMDgyMEUyMDAwRjYKKzoxMDAwNTAwMDBEODAwMDAwMTAwODAwMDAzQTA0MjAwMDgyMUEwMDAwMDEKKzoxMDAwNjAwMDBENDYwMzAwMTAwODAwMDAzQTA0MTAwMDBERUMwMjAwRDkKKzoxMDAwNzAwMDEwMDgwMDAwM0EwNDE4MDAwRDAxMDAwMDE1MDAwMjAwRUQKKzoxMDAwODAwMEZEMDAwMDAwMjAwMDAwMDA2MDg4MDMwMDYwOTAwMzAwNzUKKzoxMDAwOTAwMDYwODAwMzAwNDA4MDAzMDA0MDgwMDMwMDQwODAwMzAwMzQKKzoxMDAwQTAwMDQwODAwMTAwN0QwQTAwMDA0MDgwMDMwMDQwODAwMzAwODIKKzoxMDAwQjAwMDQwODAwMTAwMDIwNDIwMDA4MjA4MDAwMDFBMDAwODAwQUQKKzoxMDAwQzAwMDA0MDkwMDAwODY3MTAxMDAwNzAwMDAwMDA3MDAyNjAwRjcKKzoxMDAwRDAwMDA3MDA0MDAwMDcwMDAwMDA4RDI1MDMwMDEwMDgwMDAwMDUKKzoxMDAwRTAwMDNBMDQxODAwMDcwMDI2MDAwMjQ0MjgwMDdEMDgwMDAwOUEKKzoxMDAwRjAwMDQyODAwMTAwMEExNjAwMDAwNkEyMDUwMDA3MDAwMDAwNjkKKzoxMDAxMDAwMDA3MDA0NDAwMEQyMzAwMDAxMDA4MDAwMDNBMDQwODAwMTYKKzoxMDAxMTAwMDA2RkEyMjAwMDcwMDAwMDBGRDA3MDAwMDQyODAwMTAwRUYKKzoxMDAxMjAwMDBBMDAwODAwMDQwOTAwMDA4NkFCMDIwMDk1MDEwMDAwRTcKKzoxMDAxMzAwMDA0MEQwOTAwMDcwMDAwMDAyMDA4MDAwMEY1MDAwMDAwODEKKzoxMDAxNDAwMDdEMEIwMDAwNjBGMDAxMDBGRDAwMDAwMDA2M0EwMzAwOTYKKzoxMDAxNTAwMDQwODAwMTAwN0QwQTAwMDA0MjgwMDMwMDRBODAxMzAwQjUKKzoxMDAxNjAwMDBBMDAxODAwMjAxODAwMDA2MDkwMDUwMDYwODgwNTAwNTMKKzoxMDAxNzAwMDQwODAwMTAwRkQwMDAwMDA0MjgwMDEwMDBBMDA3MDAwODQKKzoxMDAxODAwMDE1MDEwMDAwNDQxMTA3MDA4NjNCMDMwMDAwMDAwMzAwMzYKKzoxMDAxOTAwMDIwNzAwMDAwMDY2MjAzMDA0MDgwMDEwMDBEMzYwMDAwNjAKKzoxMDAxQTAwMDEwMDgwMDAwM0EwNDA4MDAwNjIyMjMwMDA3MDAwMDAwOUYKKzoxMDAxQjAwMDBERUMwMjAwMTAwODAwMDAzQTA0MTgwMDA2OUEwMTAwMzUKKzoxMDAxQzAwMDA3MDAwMDAwMDcwMDI0MDA4RDBGMDAwMDEwMDgwMDAwNDkKKzoxMDAxRDAwMDNBMTYwMDAwMDIyNDAwMDAwMjVDMDAwMEZEMjgwMDAwMjYKKzoxMDAxRTAwMDIwMDAwMDAwNDA4MDAxMDAwRDAwMDgwMDE1MDgwMDAwRkMKKzoxMDAxRjAwMDg0MDk1MTAwMDcwMDAwMDA0RDAwMDAwMDVEMEUwMDAwNjIKKzoxMDAyMDAwMDAyMEUwMDAwMEQ0MzAwMDAxMDA4MDAwMDNBMDQwODAwMzAKKzoxMDAyMTAwMDA2MTIyRTAwMDcwMDAwMDA4RDAwMDAwMDI0MDkwMDAwRDcKKzoxMDAyMjAwMDAyMEYwMDAwMEQ0NzAwMDAxMDA4MDAwMDNBMDQwODAwMEIKKzoxMDAyMzAwMDA2MTIyRTAwMDcwMDAwMDA4MDA0NDgwMDEwMTIwMDAwODMKKzoxMDAyNDAwMDNBMDQyODAwOEQ3NzAwMDAxMDA4MDAwMDNBMEMyODAwQkUKKzoxMDAyNTAwMDhEMDYwMDAwMTAwODAwMDAzQTE0MjgwMDAyNDQyODAwMEYKKzoxMDAyNjAwMDhEMjUwMzAwMTAwODAwMDAzQTA0MTgwMDhERkYwNzAwRDgKKzoxMDAyNzAwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDA3MDAyNjAwNjkKKzoxMDAyODAwMDA3MDAyMDAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwNzMKKzoxMDAyOTAwMDA0MDkwMDAwODYxMjA1MDAwNzAwMDAwMDA3MDAyNDAwODIKKzoxMDAyQTAwMDBERUMwMjAwMTAwODAwMDAzQTA0MTgwMDdEMzgwMDAwMzAKKzoxMDAyQjAwMDQyODAwMTAwMEEwMDA4MDAxNTEwMDAwMDg0MDkwMTAwQjYKKzoxMDAyQzAwMDg2OUIwMTAwMDcwMDAwMDAwNkIyMDEwMDA3MDAwMDAwNDUKKzoxMDAyRDAwMEZEMDgwMDAwNDI4MDAxMDAwQTAwMTgwMDA0MTkwMDAwMTcKKzoxMDAyRTAwMDg2QjgyMjAwMDcwMDI4MDAxMDE4MDAwMDNBMDQyODAwRjEKKzoxMDAyRjAwMDAyMEMyODAwMEQwMDAwMDAxMDA4MDAwMDNBMTQyODAwMkQKKzoxMDAzMDAwMDhEODAwODAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwRjAKKzoxMDAzMTAwMDA3MDAyMDAwMEQwMjAwMDAwNDk5MTgwMDA3MDAwMDAwRUIKKzoxMDAzMjAwMDJENDAwMDAwQkQwMDAwMDBGRDAyMDAwMDQyODAwMTAwRTEKKzoxMDAzMzAwMDBBMDAwODAwMDQwOTAwMDA4NjVBMDYwMDA3MDAwMDAwQjEKKzoxMDAzNDAwMDAwMDEwMDAwMjAwQTAwMDA3RDA0MDAwMDQwODAwMTAwNDAKKzoxMDAzNTAwMDQyODAwMTAwMEEwMDIwMDAxNTMwMDAwMDQ0MjEwMTAwMDUKKzoxMDAzNjAwMDg2NjEwMzAwMDcwMDAwMDAwNDIxMDAwMDg2NjEwMzAwOEQKKzoxMDAzNzAwMDA3MDAwMDAwOEQwRjAwMDAxMDA4MDAwMDNBMEMyODAwNTQKKzoxMDAzODAwMDQ0MzkwMjAwODZDOTA3MDAwNzAwMDAwMDEwMTgwMDAwNjkKKzoxMDAzOTAwMDNBMDQyODAwMEQ4MTA4MDAyMDA4MDAwMEZEMDIwMDAwM0EKKzoxMDAzQTAwMDQwODAwMTAwMDcwMDIwMDAxMDI4MDAwMDNBMDA3ODAwN0IKKzoxMDAzQjAwMDhENzgwMDAwMTAwODAwMDAzQTA0MDgwMDA2MTIyQTAwOTgKKzoxMDAzQzAwMDA3MDAwMDAwMEQ0MDAwMDAxNTEwMDAwMDA0OTkxODAwRkYKKzoxMDAzRDAwMDA0MjkyOTAwMDQzOTM5MDAwNzAwMDAwMDA2MDIwNzAwM0IKKzoxMDAzRTAwMDA3MDAwMDAwRjUwNDAwMDA3RDAwMDAwMDIwMDAwMDAwNzAKKzoxMDAzRjAwMDhEMDAwMDAwNjAwODAxMDA0MDgwMDEwMDdEMDQwMDAwQzUKKzoxMDA0MDAwMDQyODAwMzAwNEE4MDIxMDAwQTAwMTgwMDQ0MTkwMjAwQkIKKzoxMDA0MTAwMDg2OTAyMjAwMDcwMDAwMDA3NTQwMDAwMDA0RjE3MTAwODIKKzoxMDA0MjAwMDA3MDAwMDAwNDIwMDAxMDAwQTAwMjgwMDA0MjkwMDAwMjMKKzoxMDA0MzAwMDg2NTgyMjAwMDcwMDAwMDAwRDNDMDAwMDA0QTkzMDAwOEYKKzoxMDA0NDAwMDA3MDAwMDAwN0QwNzAwMDA0MjgwMDEwMDBBMDAwODAwNEMKKzoxMDA0NTAwMDA0MDkwMDAwODZEQTA4MDA3RDA1MDAwMDIwMjgwMDAwNUQKKzoxMDA0NjAwMDYwQjAwMzAwMDZGMjA4MDA0MDgwMDEwMDIwMzAwMDAwNjgKKzoxMDA0NzAwMDYwQTgwMzAwNDA4MDAxMDBGRDAyMDAwMDQyODAwMTAwRUUKKzoxMDA0ODAwMDBBMDAwODAwMDQwOTAwMDA4NkZBMDgwMDA3MDAwMDAwQkUKKzoxMDA0OTAwMDdEMDUwMDAwNDI4MDAxMDAwQTA0MjgwMDhEMEUwMDAwNDYKKzoxMDA0QTAwMDEwMDgwMDAwM0EwQzI4MDAwRDAwMDAwMDEwMDgwMDAwQTEKKzoxMDA0QjAwMDNBMTQyODAwMEQwMDA5MDAyMDA4MDAwMEZEMDIwMDAwODkKKzoxMDA0QzAwMDQwODAwMTAwMDcwMDIwMDBGRDNEMDAwMDIwMDAwMDAwRUEKKzoxMDA0RDAwMDQwODAwMTAwN0QxMDAwMDA4RDlEMDAwMDEwMDgwMDAwOEMKKzoxMDA0RTAwMDNBMDQwODAwMDYxMjJBMDAwNzAwMDAwMDE1MDgwMDAwNjAKKzoxMDA0RjAwMDFBMDAwODAwODQwOTAxMDA4NjUxMEEwMDdEMTMwMDAwREIKKzoxMDA1MDAwMDAwMDUyMDAwMjAwRjI4MDA2MDhGMzMwMDYwOEYzQjAwMjMKKzoxMDA1MTAwMDYwOEY0MzAwNjA4RjRCMDA2MDhGNTMwMDYwOEY1QjAwRTMKKzoxMDA1MjAwMDYwOEEwMzAwNDA4MDAxMDA3RDEwMDAwMDQyODAwMTAwQ0QKKzoxMDA1MzAwMDBBMDAwODAwMTUwMjAwMDA4NDA5MDEwMDg2ODEzQTAwQzMKKzoxMDA1NDAwMDA3MDAwMDAwQkQ3RjAwMDBDNDNEMzgwMDA3MDAwMDAwMjgKKzoxMDA1NTAwMDdEMUEwMDAwNzUxMzAwMDA0MjgwMDEwMDRBMDAwOTAwNjYKKzoxMDA1NjAwMDBBMDAxMDAwMDQ4RDBCMDAwNDk1MTMwMDA3MDAwMDAwMjIKKzoxMDA1NzAwMDIwMDgwMDAwNjA5MDAxMDAwNDExMDAwMDg2NTgyMjAwNEQKKzoxMDA1ODAwMDQwMDAwMTAwRkQxNzAwMDA0MjgwMDEwMDBBMDAwODAwNDEKKzoxMDA1OTAwMDA0MDkwMDAwODY1QTIyMDAwNzAwMDAwMDdEMTkwMDAwQUYKKzoxMDA1QTAwMDQyODAwMzAwNEE4MDA5MDAwQTAwMTAwMDI0MDkwMDAwNkMKKzoxMDA1QjAwMDY0MTYwMDAwRkQxMTAwMDA0MjgwMDMwMDRBODAyQjAwRjkKKzoxMDA1QzAwMDRBODAxOTAwOEQwMDAwMDA0NDg5MjEwMDA3MDAwMDAwQzYKKzoxMDA1RDAwMDQ0MjIwMDAwODYxOTBDMDAwNzAwMDAwMDY0MUEwMDAwODUKKzoxMDA1RTAwMDI0MkEwMDAwN0QxOTAwMDAwMjAxMDgwMDIyMDExMDAwRTkKKzoxMDA1RjAwMDIwMDgwMDAwNjA5MDAzMDA0MDgwMDEwMEZEM0QwMDAwRTUKKzoxMDA2MDAwMDhEMDAwMDAwMjAwODAwMDA0MDgwMDEwMDc1MTMwMDAwRUMKKzoxMDA2MTAwMDdEMUEwMDAwNDIwMDAxMDA0QTgwMDkwMDBBMDAxMDAwMTMKKzoxMDA2MjAwMDFEMDIwMDAwRTQ4OTAxMDBFNDkyMjkwMDQ0OTEzMDAwOTkKKzoxMDA2MzAwMDA3MDAwMDAwMEQwNjAwMDAxNTBBMDAwMDFEMEMwMDAwNTgKKzoxMDA2NDAwMDI1MTAwMDAwRTRBOTAwMDBFNDJCMDEwMDY0MDQwMDAwNzAKKzoxMDA2NTAwMEU0QjMwMTAwRTQzMjAyMDA2NDA0MDAwMDY0MDQwMDAwMUEKKzoxMDA2NjAwMDY0MDQwMDAwNjQwNDAwMDAwRDA0MDAwMEM0QjEwODAwMkMKKzoxMDA2NzAwMDA3MDAwMDAwMjAwODAwMDBGNTBCMDAwMDQwMDAwMzAwMDgKKzoxMDA2ODAwMDdEMTkwMDAwNDI4MDAzMDA0QTgwMDkwMDI0MEEwMDAwMEUKKzoxMDA2OTAwMDBBMDAwODAwNjQwRTA4MDAwNzAwMDAwMDIyMDExMDAwOTQKKzoxMDA2QTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDEwMEFDNjQwMDAwNUUKKzoxMDA2QjAwMDdEMDIwMDAwMjAwMDAwMDA0MDgwMDEwMDdEMTAwMDAwNEQKKzoxMDA2QzAwMDQyODAwMTAwRkQxMTAwMDA0QTgwM0IwMDRBODAwOTAwODEKKzoxMDA2RDAwMDBBMDAyMDAwOTUwMDAwMDA0NDExMUEwMDQ0QTEwMDAwMDcKKzoxMDA2RTAwMDg2NTgwRTAwMEQwNDAwMDA4NEI5MDAwMDg2NTkwRTAwRTMKKzoxMDA2RjAwMEZEMTgwMDAwNDI4MDAxMDBGRDEwMDAwMDRBODAwOTAwNDIKKzoxMDA3MDAwMDBBMDAyODAwOTUwMDAwMDAyNDA5MDEwMDY0MkEwMDAwNjYKKzoxMDA3MTAwMDg2NDkwRTAwMDcwMDAwMDAwNDI5MDAwMDg2NUEwRTAwREEKKzoxMDA3MjAwMDA3MDAwMDAwMDY2MjBFMDAwMjAwMDgwMDhEMDAwMDAwQjUKKzoxMDA3MzAwMDdEMzgwMDAwMjAwODAwMDA0MDgwMDEwMDdEMTIwMDAwOEMKKzoxMDA3NDAwMDQyODAwMTAwMEEwMDEwMDAwNDM5MDAwMDg2MDkwRjAwRjEKKzoxMDA3NTAwMDBEMDgwMDAwQjVGRjdGMDA4NEI5MDAwMDg2RDkwRTAwQTcKKzoxMDA3NjAwMDI1MDAwMDAwMDZCMjBGMDAyRDAwMDAwMDE1MDAwMDAwNUIKKzoxMDA3NzAwMDJEMDgwMDAwMERFMDAyMDAyMDA4MDAwMDA2RkEwRjAwMUUKKzoxMDA3ODAwMDBEMDAwMDAwMzU4MDdGMDA4NEI5MDAwMDg2QTkwRjAwQUQKKzoxMDA3OTAwMDI1MDA0MDAwOEQwMDAwMDA0NDA5MTEwMDA3MDAwMDAwMDIKKzoxMDA3QTAwMDhEMDEwMDAwMDQ5NTEwMDAwNzAwMDAwMDY0OTEwMDAwMTYKKzoxMDA3QjAwMDI0MDQwMDAwMjQwNDAwMDAyNDA0MDAwMDAyMDExMDAwQUUKKzoxMDA3QzAwMDAyMDAyODAwMERERjAyMDAyMDA4MDAwMDA2RkEwRjAwREEKKzoxMDA3RDAwMDhEMDEwMDAwMkQwNDAwMDA4RDAwMDAwMDA0OTUxMDAwMjQKKzoxMDA3RTAwMDA3MDAwMDAwMEQwMjAwMDA4NDkxMTAwMDA3MDAwMDAwQzcKKzoxMDA3RjAwMDhEREYwMjAwMjAwODAwMDA4RDAwMDAwMEZEMzgwMDAwQTEKKzoxMDA4MDAwMDQwODAwMTAwRkQzQjAwMDAyMDEwMDAwMDYwQTgwMzAwQjQKKzoxMDA4MTAwMDE1MDgwMDAwODQzMTMxMDA4NDIxMjEwMDA3MDAwMDAwMDgKKzoxMDA4MjAwMDYwQjAwMzAwNjBBMDAzMDA0MDgwMDEwMEZEMjIwMDAwRDIKKzoxMDA4MzAwMDk1MDAwMDAwMjQwOTAxMDAyNDA0MDAwMDI0MDQwMDAwQTUKKzoxMDA4NDAwMDY0MTIwMDAwMDIwMTEwMDAyMDA4MDAwMDYwOTAwMzAwMDQKKzoxMDA4NTAwMDQwODAwMTAwMjQxOTAwMDAwRDBGMDEwMDdEMzkwMDAwQzcKKzoxMDA4NjAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMDRBODQwOTAwRkYKKzoxMDA4NzAwMDA2MDYwMDAwMEEwNDA4MDAyNDA0MDAwMDI0MDQwMDAwMDYKKzoxMDA4ODAwMDdEMTEwMDAwNDI4MDAxMDAwQTAwMDgwMDI0MEEwMDAwRDcKKzoxMDA4OTAwMDAyMDUyODAwMDIwQzI4MDAwRDgwMDkwMDIwMDgwMDAwMzUKKzoxMDA4QTAwMEZEMDIwMDAwNDA4MDAxMDAwNzAwMjAwMEZEMjIwMDAwNDIKKzoxMDA4QjAwMDQyODAwMTAwMEEwMDA4MDA5NTAwMDAwMEM0MEQyODAwRDUKKzoxMDA4QzAwMDI0MTkwMTAwN0QxOTAwMDA0MjgwMDEwMEZEMTEwMDAwODMKKzoxMDA4RDAwMDRBODAwOTAwMEEwMDEwMDBCNTAwMDAwMDQ0MzExMTAwRjAKKzoxMDA4RTAwMDA0OEQwQTAwMDcwMDAwMDA0NDBBMDgwMDA0OTUxMjAwNjUKKzoxMDA4RjAwMDA3MDAwMDAwRkQyMzAwMDAyMDEwMDAwMDQwODAwMzAwREUKKzoxMDA5MDAwMDQ0MTIxMDAwMDcwMDAwMDAyMDA4MDAwMDYwOTAwMzAwNUYKKzoxMDA5MTAwMDQwODAwMTAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwNDIKKzoxMDA5MjAwMDA0MDkwMDAwODYzMjEyMDAwNzAwMDAwMEZEM0IwMDAwQjEKKzoxMDA5MzAwMDAwMDEwMDAwMTAwQTAwMDA3QTgwMEIwMDRBODAxMzAwQkEKKzoxMDA5NDAwMDg0MDkwOTAwMDcwMDAwMDA5NTAwMDAwMDA0M0QwMTAwMzMKKzoxMDA5NTAwMDg2QjgxMjAwMEEwMDEwMDAwMjAwMTAwMDg0MDkwOTAwODUKKzoxMDA5NjAwMDA3MDAwMDAwNDI4MDAzMDA0QTgwMTEwMDA0MEQwOTAwQzYKKzoxMDA5NzAwMDA3MDAwMDAwMEEwMDEwMDA4NDBEMDkwMDA3MDAwMDAwQjUKKzoxMDA5ODAwMDdEMjUwMDAwMjAwODAwMDA0MDgwMDEwMDBEMDEwMDAwQ0UKKzoxMDA5OTAwMDEwMDgwMDAwM0ExNDI4MDA3RDEyMDAwMDQyODAwMTAwNzcKKzoxMDA5QTAwMDBBMDAyMDAwN0QxOTAwMDA0MjgwMDEwMDdEMTEwMDAwMzYKKzoxMDA5QjAwMDRBODAzMTAwMEEwMDEwMDAyNDMxMDAwMDhEM0IwMTAwMDQKKzoxMDA5QzAwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwQkYKKzoxMDA5RDAwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMDAyMDEzMDAwRUIKKzoxMDA5RTAwMDI0MzEwMDAwMjQwNDAwMDAyNDA0MDAwMDI0MTIwMDAwMkMKKzoxMDA5RjAwMDAyMDUyODAwNEMxQTAwMDA4NjM5MTQwMDAyMDA3MDAwMUQKKzoxMDBBMDAwMDJEMDAwMDAwMDAwMDAzMDA3RDM4MDAwMDQyODAwMTAwM0UKKzoxMDBBMTAwMDBBMDAxMDAwMDY2MjE0MDAyNDIxMDAwMEFEMDAwMDAwNEUKKzoxMDBBMjAwMDAyMDAxMDAwMEQwMTAwMDAyNDA5MDAwMDI0NkIwMDAwRUEKKzoxMDBBMzAwMDBENEEwMTAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwQkIKKzoxMDBBNDAwMDQyODAwMzAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwRTgKKzoxMDBBNTAwMDY0MzIwMDAwOEQwMDAwMDAyNDBBMDAwMDIwMTAwMDAwMTUKKzoxMDBBNjAwMDdEMjIwMDAwNDA4MDAxMDA4RDRGMDEwMDEwMDgwMDAwMzEKKzoxMDBBNzAwMDNBMDQwODAwMDY1QTJCMDAwNzAwMDAwMDIwMjgwMDAwNTYKKzoxMDBBODAwMDdEMjAwMDAwNDA4MDAxMDA3RDExMDAwMDQyODAwMzAwQjUKKzoxMDBBOTAwMDRBODAxMzAwMEE4MDMzMDA3RDM4MDAwMDQyODAwMTAwNDQKKzoxMDBBQTAwMDBBMDAwODAwMDQwOTAwMDA4NjcyMTcwMDA3MDAwMDAwMTEKKzoxMDBBQjAwMDhEMDAwMDAwNjQwOTAzMDAwRDVCMDEwMDdEMzkwMDAwMUEKKzoxMDBBQzAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMDRBODQwOTAwOUQKKzoxMDBBRDAwMDA2MDYwMDAwMEEwNDA4MDAwMjAxMzgwMDI0MDQwMDAwOTEKKzoxMDBBRTAwMDI0MDQwMDAwMjQxMjAwMDBGRDAyMDAwMDQyODAwMTAwRTYKKzoxMDBBRjAwMDBBMDAwODAwMDQwOTAwMDA4NkRBMTUwMDA3MDAwMDAwNUIKKzoxMDBCMDAwMDAyMDUyODAwNEMxQTAwMDA4NjcxMTcwMDA3MDAwMDAwM0IKKzoxMDBCMTAwMDY0MjEwMzAwMkM2MzAwMDBGRDNEMDAwMDQyODAwMTAwQzEKKzoxMDBCMjAwMDBBMDAwODAwOTUwMDAwMDAwNDA5MDkwMDA3MDAwMDAwMDEKKzoxMDBCMzAwMDIwMDgwMDAwNEMxQTAwMDA4Njk5MTYwMDQwODAwMTAwMzEKKzoxMDBCNDAwMDAwMDAwMzAwMDZCMjE2MDAyNDIxMDAwMDBEMDEwMDAwODEKKzoxMDBCNTAwMDI0MDkwMDAwMjQ2QjAwMDAwRDZGMDEwMDdEMzkwMDAwQTYKKzoxMDBCNjAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMDRBODQwOTAwRkMKKzoxMDBCNzAwMDA2MDYwMDAwMEEwNDA4MDA2NDNBMDAwMDk1MDAwMDAwMjAKKzoxMDBCODAwMDI0MTIwMDAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwNUIKKzoxMDBCOTAwMDA0MDkwMDAwODYxMjE3MDAwNzAwMDAwMDBENzYwMTAwMEUKKzoxMDBCQTAwMDEwMDgwMDAwM0EwNDA4MDAwNjVBMkIwMDA3MDAwMDAwNTUKKzoxMDBCQjAwMDA2MEExNjAwMDcwMDAwMDAyMDcwMDAwMDBBMDEwODAwNjUKKzoxMDBCQzAwMDJBMDExMDAwRkQyMDAwMDA2MDg4MDMwMDYwOTAwMzAwRUYKKzoxMDBCRDAwMDQwODAwMTAwN0QyMjAwMDA0MjgwMDEwMEZEM0QwMDAwQjgKKzoxMDBCRTAwMDBBMDAwODAwNEE4NDMxMDAwNDA5MDAwMDg2MTAxODAwMzkKKzoxMDBCRjAwMDhCMDAxODAwOEQwMDAwMDAwNDk5MTgwMDJDMzEwMDAwQjMKKzoxMDBDMDAwMDA2RTIxODAwMDcwMDAwMDA0QzMyMDAwMDg2NkIxODAwNTYKKzoxMDBDMTAwMDA3MDAwMDAwMDQxOTAwMDA4NjY4MTgwMDA3MDAwMDAwQTMKKzoxMDBDMjAwMDk1MDAwMDAwNDQ5MTE5MDAyQzIyMDAwMDI0MzEwMDAwOUUKKzoxMDBDMzAwMDZDNjMwMDAwM0QwRTAwMDA3NTEzMDAwMEZEMEIwMDAwMEEKKzoxMDBDNDAwMDQyMDAwMTAwNEE4MDA5MDAwQTAwMTAwMEVDOEEwMzAwRkIKKzoxMDBDNTAwMEVDOTMwMzAwNEMyMjAwMDA4NkUxMTgwMDA3MDAwMDAwMUUKKzoxMDBDNjAwMDhEMDAwMDAwMDQ5OTE4MDA2QzIyMDAwMDJDMzIwMDAwNTYKKzoxMDBDNzAwMDBBMDUzMDAwQUIxRDMwMDA4MzIwMDAwMEZEMTgwMDAwODUKKzoxMDBDODAwMDQyODAwMTAwMEEwMDA4MDAyNDg5MDEwMDAyMDUzMDAwQUEKKzoxMDBDOTAwMDgzMTAwMDAwNzUxODAwMDA0MjAwMDEwMDBBMDAxMDAwRDcKKzoxMDBDQTAwMDhEMDAwMDAwMjQwOTAxMDA3NTEzMDAwMDQyMDUzMzAwODcKKzoxMDBDQjAwMENCMEMzMzAwQ0IyQzMzMDBDQjM0MzMwMENCM0MzMzAwOTQKKzoxMDBDQzAwMENCNDQzMzAwQ0I0QzMzMDBDQjU0MzMwMDhCNUMzMDAwMkYKKzoxMDBDRDAwMDgzNjAwMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwRTUKKzoxMDBDRTAwMDA0MDkwMDAwODZCMjE5MDAwNzAwMDAwMDJEMUUwMDAwNTQKKzoxMDBDRjAwMEZEMDUwMDAwNDI4MDAxMDAwQTAwMDgwMDI0ODkwMjAwNkUKKzoxMDBEMDAwMDAyMDUyODAwMEQwNjAwMDAxMDA4MDAwMDNBMEMyODAwMUIKKzoxMDBEMTAwMDhEMDAwMDAwMTAwODAwMDAzQTE0MjgwMDhEODAwQTAwQTEKKzoxMDBEMjAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDA3MDAyMjAwM0EKKzoxMDBEMzAwMDc1MTIwMDAwNDIwMDAzMDA0QTAwMjEwMDhEMDAwMDAwRUYKKzoxMDBENDAwMDQ0MDkxQTAwMDcwMDAwMDA4REFCMDEwMDEwMDgwMDAwRTQKKzoxMDBENTAwMDNBMDQwODAwMDZBQTJDMDAwNzAwMDAwMEY1MDEwMDAwNzQKKzoxMDBENjAwMDQyMDAwMzAwNEEwMDBEMDAwQTAwMTAwMDQ0OTEwODAwRjAKKzoxMDBENzAwMDA3MDAwMDAwMjAwODAwMDA0MDAwMDEwMEY1MjUwMDAwRTkKKzoxMDBEODAwMDQ0MzEwQTAwMDcwMDAwMDAyMDA4MDAwMDYwMjgwMzAwMkEKKzoxMDBEOTAwMDQwMDAwMzAwN0QyMTAwMDA0MjgwMDMwMDRBODAwQjAwRDgKKzoxMDBEQTAwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwNEIKKzoxMDBEQjAwMDhEMDAwMDAwMjQwMTAwMDAyQzAxMDAwMDY0MEUwMDAwRTIKKzoxMDBEQzAwMDY0MUEwMDAwNkM2MzAwMDAwQTAxMDgwMDJBMDExMDAwODgKKzoxMDBERDAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMEZEMjAwMDAwMTgKKzoxMDBERTAwMDQyODAwMTAwMEEwMDA4MDA3RDIyMDAwMDQyODAwMTAwQ0MKKzoxMDBERjAwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwRkIKKzoxMDBFMDAwMDdEMTkwMDAwNDI4MDAxMDAwQTAwMDgwMEZEMjIwMDAwNTgKKzoxMDBFMTAwMDQyODAwMzAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwNTgKKzoxMDBFMjAwMDQwMDAwMzAwMDQwRDA5MDAwNzAwMDAwMDIwMDgwMDAwMzYKKzoxMDBFMzAwMDQwMDAwMzAwNDI4MDAzMDA0QTgwMEIwMDBBMDAxMDAwQkIKKzoxMDBFNDAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMDQyODAwMzAwRkYKKzoxMDBFNTAwMDRBODAxMzAwNEE4MDE5MDAwNDBEMTEwMDA0OEQxOTAwMDYKKzoxMDBFNjAwMDA3MDAwMDAwMEEwMDA4MDAyMDEwMDAwMDYwMTgwMzAwQkUKKzoxMDBFNzAwMDYwMDgwMzAwNDAwMDAzMDA4RDAwMDAwMDQ0MDkwQjAwREYKKzoxMDBFODAwMDA3MDAwMDAwMjAwODAwMDA0MDAwMDEwMEY1MDUwMDAwRjgKKzoxMDBFOTAwMDQyMDAwMzAwMEEwMDA4MDAyMDA4MDAwMDQwMDAwMTAwOTIKKzoxMDBFQTAwMEY1MDAwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwRUIKKzoxMDBFQjAwMDg2OTgxRDAwNzUxRTAwMDA0MjAwMDMwMDRBMDQwMTAwRDAKKzoxMDBFQzAwMDBBMEMwMDAwMDZBQTFEMDAwNzAwMDAwMDAyMDQwMDAwMzIKKzoxMDBFRDAwMDAyMEMwMDAwN0QxNzAwMDBGNTFBMDAwMDQyODAwMTAwOUUKKzoxMDBFRTAwMDRBMTQwMzAwNEExQzAzMDA0QTI0MDMwMDRBMkMwMzAwNEUKKzoxMDBFRjAwMDRBMzQwMzAwNEEzQzAzMDA0QTQ0MDMwMDBBNEMwMDAwMDEKKzoxMDBGMDAwMDNEMDQwMDAwRjUxMzAwMDBGRDFBMDAwMDQyMDAwMzAwM0MKKzoxMDBGMTAwMDRBMDAwQjAwNEE4MDFCMDA0QTgwMTMwMDBBMDAyMDAwOTAKKzoxMDBGMjAwMDQ0OTEwODAwNDRBMTE5MDBFNDg5MDMwMEVDOTkwMzAwRUUKKzoxMDBGMzAwMDAyNTUwMDAwMEE1RDAwMDA0MjAwMDMwMDRBMDAwQjAwNTkKKzoxMDBGNDAwMDRBODAxQjAwNEE4MDEzMDAwQTAwMjAwMDQ0OTEwODAwRDgKKzoxMDBGNTAwMDQ0QTExOTAwRTQ4OTAzMDBFQzk5MDMwMDAyNjUwMDAwMzQKKzoxMDBGNjAwMDBBNkQwMDAwNDIwMDAzMDA0QTAwMEIwMDRBMDAxOTAwMEQKKzoxMDBGNzAwMDRBODAyQjAwNEE4MDEzMDA0QTgwMjEwMDBBMDAzMDAwN0EKKzoxMDBGODAwMDQ0OTEwODAwNDRBMTE5MDA0NEIxMkEwMEU0ODkwMzAwRjcKKzoxMDBGOTAwMEVDOTkwMzAwMDI3NTAwMDAwQTdEMDAwMEU0QTkwMzAwM0IKKzoxMDBGQTAwMDAyMDcwMDAwN0QxMDAwMDAxNTA0MDAwMDQyODAwMTAwQ0YKKzoxMDBGQjAwMDBBMDAwODAwRTQwOTAxMDAwMjBGMDAwMEY1MkEwMDAwMDEKKzoxMDBGQzAwMEZEMTkwMDAwNDIwMDAxMDA0QTgwMDkwMDBBMDAxMDAwREIKKzoxMDBGRDAwMDM0MDkwMDAwNzQxNjAwMDBGNTI5MDAwMDQyMDAwMTAwRTkKKzoxMDBGRTAwMDBBMDAxMDAwN0M5MTAwMDA3NTIwMDAwMDQyMDAwMTAwMDIKKzoxMDBGRjAwMDBBMDAwODAwMDQwOTAwMDA4NjBBMjAwMEY1MjYwMDAwMDcKKzoxMDEwMDAwMEY1MjcwMDAwNDIwMDAzMDA0QTAwMDkwMDBBMDAxMDAwMTIKKzoxMDEwMTAwMDNDMEEwMDAwN0MxNjAwMDA3NTFBMDAwMEZEMEIwMDAwNjEKKzoxMDEwMjAwMDQyMDAwMTAwNEE4MDUxMDAwQTAwNDgwMDA3MDAxNjAwRjMKKzoxMDEwMzAwMDc1MTAwMDAwNDIwMDAxMDAwQTJDMjgwMDEyMUQyODAwMzMKKzoxMDEwNDAwMDEyMjUyODAwMzIxRjAwMDAwNzAwMUUwMDA3MDAwRTAwQjYKKzoxMDEwNTAwMDc1MTkwMDAwNDIwMDAxMDBGNTJEMDAwMDRBMDAwRDAwNDYKKzoxMDEwNjAwMDBBMDAxMDAwNDQ5MTAwMDA4NkVBMjAwMDQyMDAwMTAwQkUKKzoxMDEwNzAwMDBBMzQyODAwNUQwRTAwMDA4RDAwMDAwMDc1MDMwMDAwOUEKKzoxMDEwODAwMDIwMDgwMDAwNDAwMDAxMDBGNEQyMDUwMDA0RDE1NDAwMDMKKzoxMDEwOTAwMDVDNzMwMDAwODY4QjIxMDAwNzAwMDAwMDA3MDAwQzAwMzUKKzoxMDEwQTAwMDA3MDAwODAwMDcwMDBBMDA4RDE3MDIwMDEwMDgwMDAwNjIKKzoxMDEwQjAwMDNBMDQwODAwMDZCMjM0MDAwNzAwMDAwMDA2OTIyMTAwM0UKKzoxMDEwQzAwMDA3MDAwMDAwMDcwMDA4MDA3NTIyMDAwMDQyMDAwMTAwMzAKKzoxMDEwRDAwMDBBMDAyMDAwMDQyMTAwMDA4NjU4MjIwMDJEMUUwMDAwNzYKKzoxMDEwRTAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwQTcKKzoxMDEwRjAwMDg2Q0EyMTAwMDcwMDAwMDAxMDIwMDAwMDNBMDQzMDAwREEKKzoxMDExMDAwMDdEMDUwMDAwQzM4MDAxMDAwQTAwMDgwMDI0ODkwMjAwNTgKKzoxMDExMTAwMDAyMDUyODAwMDIwQzI4MDAwRDgxMEEwMDIwMDgwMDAwQUEKKzoxMDExMjAwMEY1MDIwMDAwNDAwMDAxMDAwNzAwMjIwMEZEMDQwMDAwNUQKKzoxMDExMzAwMDQyODAwMTAwMEEwMDcwMDAwMDAwMDMwMDIwNzAwMDAwREYKKzoxMDExNDAwMDA2RkEwNzAwNDA4MDAxMDA4RDJCMDIwMDEwMDgwMDAwMDUKKzoxMDExNTAwMDNBMDQwODAwMDZBQTJDMDAwNzAwMDAwMEZEMDIwMDAwNjcKKzoxMDExNjAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2QzIyMjAwMzMKKzoxMDExNzAwMDA3MDAwMDAwMDYwMjAyMDAwNzAwMDAwMDc1MDgwMDAwREEKKzoxMDExODAwMEZEMDkwMDAwMEQwMTAwMDAwNjQyMjMwMDk1MDIwMDAwNDkKKzoxMDExOTAwMDc1MEIwMDAwN0QwOTAwMDAwRDAwMDAwMDE1MDUwMDAwMjIKKzoxMDExQTAwMDQyMDAwMTAwMEEwMDE4MDAwNDE5MDAwMDg2MDAyQTAwMEQKKzoxMDExQjAwMEY1MDYwMDAwMjAxMDAwMDA0MDAwMDEwMEY1MDQwMDAwQ0EKKzoxMDExQzAwMDIwMDgwMDAwNDAwMDAxMDA3NTA3MDAwMDQyMDAwMTAwRjcKKzoxMDExRDAwMDRBODAwOTAwMEEwMDEwMDAyNDExMDAwMDA0MDkwMDAwRTAKKzoxMDExRTAwMDg2RjIyMzAwMTUwODAwMDAwMjAxMDgwMDA0MTIxMDAwMTYKKzoxMDExRjAwMDA2MTIyNDAwNzUwNTAwMDAwNDEyMDgwMDA3MDAwMDAwMTQKKzoxMDEyMDAwMDAyMDExMDAwNzUwNTAwMDAyNTA0MDAwMDI0MTEwMjAwRjEKKzoxMDEyMTAwMDAyMDExMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMTAwREYKKzoxMDEyMjAwMDI0MTkwMDAwODYwMDJBMDA4RDAwMDAwMDY0MDQwMDAwREMKKzoxMDEyMzAwMDA0OUQwMDAwODYxMDI5MDAwMjAxMTgwMDc1MDUwMDAwQjkKKzoxMDEyNDAwMDQyMDAwMTAwMEEwNDI4MDA4RDAxMDAwMDI0MDkwMDAwNkEKKzoxMDEyNTAwMDAyMEQyODAwMEQwMDAwMDAyNDA5MDAwMDAyMTUyODAwREUKKzoxMDEyNjAwMDBEMDAxMDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMDEKKzoxMDEyNzAwMDA3MDAyMDAwNzUxMTAwMDBGRDAyMDAwMDQyODAwMTAwRkYKKzoxMDEyODAwMDBBMDAwODAwMDQwOTAwMDA4NkZBMjQwMDA3MDAwMDAwOTQKKzoxMDEyOTAwMDAwMDEwMDAwMjAwQjA4MDA2MDBCMTMwMDYwMEIxQjAwMTYKKzoxMDEyQTAwMDYwMEEwMzAwNDAwMDAxMDA0MjAwMDUwMDRBMDAzRDAwQzIKKzoxMDEyQjAwMDRBMDAzNTAwNEEwMDJEMDAwQTAwMjAwMEY1MDYwMDAwMTMKKzoxMDEyQzAwMDQyMDAwMTAwMEExNDI4MDBGNTA0MDAwMDQyMDAwMTAwNTkKKzoxMDEyRDAwMDBBMDAwODAwMTUwMzAwMDAwNDBEMDEwMDg2MDIyNjAwMjQKKzoxMDEyRTAwMDE1NDAwMDAwOTUwMDAwMDAwNDBEMDEwMDg2RjAyNTAwNjcKKzoxMDEyRjAwMDIyMDAxMDAwMkEwMDEwMDAwNjFBMjYwMDA3MDAwMDAwMzUKKzoxMDEzMDAwMDA0MzEzMzAwMDRBOTJBMDAwNzAwMDAwMDI0MjEwMzAwNEYKKzoxMDEzMTAwMDAyMDUyODAwMDI0NDI4MDAyNDExMDAwMDAyMDE0MDAwQjgKKzoxMDEzMjAwMDI0MDQwMDAwMjQwNDAwMDAyNDMyMDAwMDJDMjkwMDAwQzIKKzoxMDEzMzAwMDZDNjMwMDAwODY3MzI3MDAwNzAwMDAwMDY0QjEwMjAwQTAKKzoxMDEzNDAwMDY0MDQwMDAwNjQwNDAwMDA4RDAwMDAwMDY0MEEwMDAwRDIKKzoxMDEzNTAwMDAyMEQyODAwOEQwMDEwMDAyMDA4MDAwMEY1MDIwMDAwOUEKKzoxMDEzNjAwMDQwMDAwMTAwMDcwMDIyMDA4RDAwMDAwMDA0QjkzODAwOTEKKzoxMDEzNzAwMDA3MDAwMDAwNkMyOTAzMDAwQTAxMzAwMEY1MDIwMDAwOUMKKzoxMDEzODAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2MDIyNzAwNEMKKzoxMDEzOTAwMDA3MDAwMDAwMkMyMTAwMDAwQTA1MjgwMDZDMzEwMDAwMjUKKzoxMDEzQTAwMDZDMDQwMDAwNkMwNDAwMDAwQTQ1MjgwMDI0MTEwMDAwQjEKKzoxMDEzQjAwMDY0NkIwMDAwMDIwMTEwMDA4RDAwMDAwMDZDMDkwMTAwNDgKKzoxMDEzQzAwMDBBMEQyODAwMEQwMTEwMDAyMDA4MDAwMEY1MDIwMDAwQTEKKzoxMDEzRDAwMDQwMDAwMTAwMDcwMDIyMDAyNDQxMDAwMDI0MDQwMDAwMTYKKzoxMDEzRTAwMDI0MDQwMDAwMjQzMjAwMDAwMjAxMzAwMDQ0MjkwMzAwREMKKzoxMDEzRjAwMDg2RkEyNzAwMDcwMDAwMDAwMjAwMzAwMEY1MDQwMDAwMTQKKzoxMDE0MDAwMDQyMDAwMTAwMEEwMDA4MDAxNTAzMDAwMDA0MEQwMTAwNUQKKzoxMDE0MTAwMDg2NDAyODAwMjQzMTAwMDA2NDA0MDAwMDAyMDEzMDAwRUUKKzoxMDE0MjAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwNjMKKzoxMDE0MzAwMDg2NEEyODAwMDcwMDAwMDAwMjQ0MjgwMDI0MzEwMDAwRUEKKzoxMDE0NDAwMDAyMDUzMDAwMjQzOTAwMDA4MzA1MzAwMDgzMDgwMDAwQzUKKzoxMDE0NTAwMEY1MDUwMDAwNDIwMDAxMDAwQTA0MjgwMDhEMDAwMDAwOEMKKzoxMDE0NjAwMDI0ODEwMDAwMDIwRDI4MDA4RDAwMDAwMDI0ODEwMDAwNkUKKzoxMDE0NzAwMDAyMTUyODAwOEQwMTEwMDAyMDA4MDAwMEY1MDIwMDAwNzAKKzoxMDE0ODAwMDQwMDAwMTAwMDcwMDIyMDAyNTEwMDAwMDc1MDUwMDAwNDMKKzoxMDE0OTAwMDQyMDAwMzAwNEEwMDA5MDAwQTAwMTAwMDA0MDkwQTAwODMKKzoxMDE0QTAwMDA0MTExMjAwMDcwMDAwMDAyMDEwMDAwMDYwMDgwNTAwNzEKKzoxMDE0QjAwMDQwMDAwNTAwRkQwNjAwMDA0MjgwMDEwMDRBMDAwOTAwQ0UKKzoxMDE0QzAwMDBBMDAxMDAwQTUwMDAwMDAwNDA5MEEwMDA0MTExMjAwMUYKKzoxMDE0RDAwMDA3MDAwMDAwMjAwODAwMDA2MDkwMDEwMDQwMDAwMTAwQUIKKzoxMDE0RTAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwQTMKKzoxMDE0RjAwMDg2Q0EyOTAwMDcwMDAwMDAwNjQyMjQwMDA3MDAwMDAwRjkKKzoxMDE1MDAwMDA2MDYwMDAwMDcwMDAwMDBGNTAyMDAwMDQyMDAwMTAwOEUKKzoxMDE1MTAwMDBBMDAwODAwMDQwOTAwMDA4NjFBMkEwMDA3MDAwMDAwREIKKzoxMDE1MjAwMDAwMDEwMDAwMjAwQjA4MDA2MDhCMTMwMDYwOEIxQjAwODMKKzoxMDE1MzAwMDYwOEIyMzAwNjA4QjJCMDA2MDhCMzMwMDYwOEIzQjAwNDMKKzoxMDE1NDAwMDYwOEI0MzAwNjA4QjRCMDA2MDhCNTMwMDYwOEI1QjAwQjMKKzoxMDE1NTAwMDYwOEI2MzAwNjA4QjZCMDA2MDhCNzMwMDYwOEI3QjAwMjMKKzoxMDE1NjAwMDYwOEYwMzAwNjA4RjBCMDA2MDhGMTMwMDYwOEYxQjAwODMKKzoxMDE1NzAwMDYwOEYyMzAwNjA4RjJCMDA2MDhGMzMwMDYwOEYzQjAwRjMKKzoxMDE1ODAwMDYwOEY0MzAwNjA4RjRCMDA2MDhGNTMwMDYwOEY1QjAwNjMKKzoxMDE1OTAwMDYwOEY2MzAwNjA4RjZCMDA2MDhGNzMwMDYwOEY3QjAwRDMKKzoxMDE1QTAwMDYwOEEwMzAwMDYwNjAwMDA0MDgwMDEwMDhEMDAwMDAwRjQKKzoxMDE1QjAwMDY0MEEwMDAwMDIwRDI4MDAyNDBBMDAwMDdEMDIwMDAwRDkKKzoxMDE1QzAwMDQyODAwMTAwMEEwMDEwMDAyNDEyMDAwMEZEMDMwMDAwMDgKKzoxMDE1RDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2MEEyQzAwNkQKKzoxMDE1RTAwMDA3MDAwMDAwOEQwMTAwMDAyNDBBMDAwMDY0MDQwMDAwRDAKKzoxMDE1RjAwMDY0MDQwMDAwMDIwMTA4MDAyNDA5MDAwMDI0MDQwMDAwMjMKKzoxMDE2MDAwMDI0MDQwMDAwMDIwMTEwMDAwRDAwMDIwMDQ0OTEwMDAwQkIKKzoxMDE2MTAwMDg2NjEyQzAwMDcwMDAwMDBGRDAxMDAwMDQyODAwMTAwRUYKKzoxMDE2MjAwMDBBMDAwODAwNDQwQTAwMDA4NjQzMkMwMDQyODAwMTAwQTIKKzoxMDE2MzAwMDBEMDAwQTAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwQUIKKzoxMDE2NDAwMDA3MDAyMDAwN0QwMjAwMDAyMDEwMDAwMDA2MDYwMDAwQjgKKzoxMDE2NTAwMDQwODAwMTAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwN0QKKzoxMDE2NjAwMDA0MDkwMDAwODZCMjJDMDAwNzAwMDAwMDdEMDMwMDAwODIKKzoxMDE2NzAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2RTIyQzAwRjQKKzoxMDE2ODAwMDA3MDAwMDAwNzUwMDAwMDA3RDJFMDAwMDQyMDAwMTAwRjAKKzoxMDE2OTAwMDRBODAwQjAwMjAwMDAwMDAwNDA5MDAwMDg2MDYwMDAwQkMKKzoxMDE2QTAwMDQwMDAwMTAwNEE4NDMxMDA4QjA0MzAwMDgzMDgwMDAwQjAKKzoxMDE2QjAwMDhEMDAwMDAwMTAwODAwMDAzQTE0MjgwMDhEMDAwMDAwODIKKzoxMDE2QzAwMDEwMDgwMDAwM0EwQzI4MDA3NTA2MDAwMDQyMDAwMTAwRDYKKzoxMDE2RDAwMDBBMDAwODAwMTUzODAwMDAyNDA5MDEwMDAyMDUyODAwNEUKKzoxMDE2RTAwMDBEMDAwQjAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwODIKKzoxMDE2RjAwMDA2MDYwMDAwMDcwMDIyMDA2NDA0MDAwMDY0MDQwMDAwRTUKKzoxMDE3MDAwMDA2MDYwMDAwMDcwMDAwMDAzNDAxMDAwMDhEN0YwMDAwODUKKzoxMDE3MTAwMDNDMDkwMDAwMTIxRDI4MDAxMjI1MjgwMDMyMUYwMDAwN0QKKzoxMDE3MjAwMDA3MDAwRTAwMEQwMTAwMDA3RDAzMDAwMDIwMDgwMDAwRUUKKzoxMDE3MzAwMDQwODAwMTAwRjREMjA1MDAwNzAwMDAwMDA3MDAwODAwMDcKKzoxMDE3NDAwMDdEMDMwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwMzcKKzoxMDE3NTAwMDg2OEEyRTAwMDcwMDAwMDAwNjA2MDAwMDA3MDAwMDAwMzEKKzoxMDE3NjAwMDA3MDAwMDAwMTIwMDAwMDAwNzAwMTAwMDA3MDAzMjAwMTAKKzoxMDE3NzAwMDA3MDA2MDAwMDcwMDQ2MDA4MDAwMTAwMDFBMDA0ODAwQzMKKzoxMDE3ODAwMDA0NDkwMDAwODZGMTJFMDAwNzAwMDAwMDEwMTIwMDAwM0UKKzoxMDE3OTAwMDNBMDA1ODAwNDUwMTAwMDAwNDVENUMwMDA3MDAwMDAwQUQKKzoxMDE3QTAwMDgwMDAwMDAwMUEwMDQ4MDAwNDQ5MDAwMDg2NDEyRjAwMTQKKzoxMDE3QjAwMDA3MDAwMDAwMTAxMjAwMDAzQTAwNTAwMDA0NTkwMDAwMTkKKzoxMDE3QzAwMDg2OTgyRjAwNDUwMDAwMDBDNTAwMDAwMEY1RkY3RjAwNEYKKzoxMDE3RDAwMDdERkY3RjAwMjRENTA3MDAyNDQyMDAwMDAyMDE1MDAwNTUKKzoxMDE3RTAwMDAyMDUyMDAwODIwMDAwMDAxQTAwNDAwMDA0NDEwMDAwQjEKKzoxMDE3RjAwMDg2QzkyRjAwMDcwMDAwMDA2NTM4MDAwMDFBMDA0MDAwNkQKKzoxMDE4MDAwMDIwNDAwMDAwNEQxMDAwMDA4NEMxMDQwMDg2QUIzMTAwNzAKKzoxMDE4MTAwMDQwMDAwMDAwMDcwMDA0MDA2NTAxMDAwMDQ1MDEwMDAwRDEKKzoxMDE4MjAwMDIwNDAwMDAwNDAwMDAwMDA2NTA3MDAwMDgwMDAwODAwMjQKKzoxMDE4MzAwMDFBMDA0MDAwMDQ0MTAwMDA4NjU5MzAwMDA3MDAwMDAwRjMKKzoxMDE4NDAwMDEwMTIwMDAwM0EwMDQwMDAwNDQxMDAwMDg2QjIzMDAwNEYKKzoxMDE4NTAwMDREMDAwMDAwQ0QwMDAwMDAxMDQ4MDAwMDNBMDQyMDAwQjgKKzoxMDE4NjAwMDgyMDgwMDAwMUEwMDQwMDAwNDQxMDAwMDg2QzEzMDAwRDgKKzoxMDE4NzAwMDA3MDAwMDAwMjA0ODAwMDAwNDU5MDAwMDg2OTgzMTAwNEQKKzoxMDE4ODAwMDQwMDAwMDAwRTUwNzAwMDA4MDA0MjAwMEEwMTYyODAwQUEKKzoxMDE4OTAwMEUwMTYzMjAwRTAxNjNBMDBFMDE2NDIwMDYwMTIwMjAwNDQKKzoxMDE4QTAwMDQwMDAwMDAwMzIwMDAwMDA3NTAwNDAwMDdEMDAwMDAwOTQKKzoxMDE4QjAwMDc0RDUwNzAwMTIwNTIwMDA4MjAwMDAwMDFBMDA0MDAwQzUKKzoxMDE4QzAwMDA0NDEwMDAwODY3MTMxMDAwNzAwMDAwMDA2OEEwMzAwMTEKKzoxMDE4RDAwMDA3MDA2NDAwRTUwMDAwMDAyMDAwMDAwMDQwMDAwMDAwNTgKKzoxMDE4RTAwMDY1MEEwMDAwMjAwMDAwMDA0MDAwMDIwMDQwMDAwMjAwRTUKKzoxMDE4RjAwMDQwMDAwMDAwNjUwMTAwMDA0MjAwMDAwMDBBMDA3MDAwODYKKzoxMDE5MDAwMDA0NzEwMDAwODYzMjMyMDAwNzAwMDAwMDA3MDAwNjAwNjQKKzoxMDE5MTAwMDA2OUEwMTAwMDcwMDY0MDAwMDAwMDUwMDIwNzAwMDAwMjYKKzoxMDE5MjAwMDQwMDAwMDAwMDY4QTAzMDAwNzAwNjQwMDA3MDAwMDAwNzIKKzoxMDE5MzAwMDZEMzAwMDAwNjA4ODAyMDA2MDkwMDIwMDBBMDAwODAwMUMKKzoxMDE5NDAwMDYwODgwMjAwNDA4MDAwMDAxMjAwMTAwMDBEMTAwMDAwQUUKKzoxMDE5NTAwMDg0OTEwMDAwODZEMTMyMDAwRDBFMDAwMDg0OTEwMDAwQjkKKzoxMDE5NjAwMDg2RTEzMzAwMDcwMDAwMDAwNzAwMzAwMDIwMTAwMDAwNkYKKzoxMDE5NzAwMDZEM0IwMDAwNDA4MDAwMDA4MDAwMDAwMDFBMDAwODAwNUQKKzoxMDE5ODAwMDA0MDkwMDAwODZGMTMyMDAwNzAwMDAwMDIwMTIwMDAwNjgKKzoxMDE5OTAwMEVEMEQwMDAwNDA4MDAwMDA0MjgwMDAwMDBBMDAxMDAwQjEKKzoxMDE5QTAwMDBEMDA0MDAwNDQ5NTEwMDAwNzAwMDAwMDIwMTAwMDAwQ0EKKzoxMDE5QjAwMEVEMEQwMDAwNDA4MDAwMDA0MjgwMDAwMDBBMDQyMDAwN0QKKzoxMDE5QzAwMDgyMDAwMDAwMUEwMDA4MDAwNDA5MDAwMDg2ODEzMzAwMkMKKzoxMDE5RDAwMDA3MDAwMDAwNkQzQjAwMDA0MjgwMDAwMDBBMDAwODAwODQKKzoxMDE5RTAwMDE1MEUwMDAwODQwOTAxMDA4NjJCMzQwMDA3MDA2MDAwRkEKKzoxMDE5RjAwMDFBMDAwODAwMTUwQzAwMDA4NDA5MDEwMDg2MTMzNDAwNDkKKzoxMDFBMDAwMDIwMDAwMDAwMDcwMDFBMDBFRDAyMDAwMDQwODAwMDAwRTYKKzoxMDFBMTAwMDA3MDA2MjAwNkQzMDAwMDA0MjgwMDIwMDRBODAwQTAwMjgKKzoxMDFBMjAwMDIwMDgwMDAwNEE4MDBBMDAwNjA2MDAwMDRBODAxMDAwRDQKKzoxMDFBMzAwMDA3MDAwMDAwMTIyNTI4MDAzMjFGMDAwMEY0RDIwNTAwMjQKKzoxMDFBNDAwMDA0RDE1NDAwNUM3MzAwMDA4NjA3MDAwMDA3MDAwMDAwMEEKKzoxMDFBNTAwMDA3MDAwQzAwMDcwMDBBMDAwNzAwMUMwMDY1MzQwMDAwQTYKKzoxMDFBNjAwMDQwMDAwMjAwMjA0ODAwMDA2MDUwMDIwMDBBMDA0MDAwRDAKKzoxMDFBNzAwMDYwNDAwMjAwNDAwMDAwMDA0NDQ5NDUwMDA3MDAwMDAwQUIKKzoxMDFBODAwMDIwNDAwMDAwRTUzQTAwMDA0MDAwMDAwMEU1MjgwMDAwOEEKKzoxMDFBOTAwMDQyMDAwMDAwMEEwMDQ4MDAwNDQ5MDAwMDg2RjgzOTAwQUUKKzoxMDFBQTAwMDY1MkMwMDAwNDIwMDAwMDAwQTAwNDAwMEQ1MDAwMDAwNDQKKzoxMDFBQjAwMDA0NDE0NTAwMDcwMDAwMDA1NTA2MDAwMDA0NDUwNTAwRUMKKzoxMDFBQzAwMDg2ODIzNjAwRDUwMTAwMDAwNDQ1MDUwMDg2ODAzNjAwNzgKKzoxMDFBRDAwMDY1MkIwMDAwNDIwMDAwMDBFNTNBMDAwMDRBMDA1MDAwN0IKKzoxMDFBRTAwMDBBMDA0MDAwRDRDMzQ1MDAwNzAwMDAwMDA0NDU0NTAwM0IKKzoxMDFBRjAwMDA3MDAwMDAwQ0QwMDAwMDA0NDQ5NDQwMDA3MDAwMDAwM0EKKzoxMDFCMDAwMDA0NDU0NTAwMDcwMDAwMDA0RDAxMDAwMDQ0NDk1NTAwMTAKKzoxMDFCMTAwMDA3MDAwMDAwNDQ1MTA0MDA4Njc5MzYwMDY1MkMwMDAwNUYKKzoxMDFCMjAwMDQyMDAwMDAwMEEwMDQ4MDAwNEQxNEMwMDA3MDAwMDAwRjkKKzoxMDFCMzAwMDQ0QzEwNDAwODY4MzM2MDAwNzAwMDAwMDA3MDAxNjAwMzkKKzoxMDFCNDAwMEU1MkMwMDAwNDIwMDA0MDAwQTAwNDAwMDIwNDAwMDAwOTQKKzoxMDFCNTAwMDQwMDAwMDAwNjUyOTAwMDA0MjAwMDAwMDBBMDA0MDAwMkIKKzoxMDFCNjAwMDA0NDEwMDAwODZGMDM2MDAwNzAwMDAwMDAyMjQwMDAwNTcKKzoxMDFCNzAwMDA2MzIzODAwMDI1QzAwMDBFNTI1MDAwMDQyMDAwMDAwNEIKKzoxMDFCODAwMDBBMDA0MDAwNzQ0MjAwMDBFNTJBMDAwMDQyMDAwMDAwMDQKKzoxMDFCOTAwMDBBMDA0MDAwNzQ0MjAwMDAxMjAxNTAwMEU1MjkwMDAwRDQKKzoxMDFCQTAwMDQyMDAwMDAwMEEwMDQwMDAzNDQyMDAwMDA0NDE0NTAwQTkKKzoxMDFCQjAwMDA3MDAwMDAwMjA0MDAwMDA0MDAwMDAwMEU1M0UwMDAwNUIKKzoxMDFCQzAwMDIwMDAwMDAwNDAwMDAwMDBFNTJEMDAwMDUyMDE0MDAwMTAKKzoxMDFCRDAwMDBBMDA1MDAwNDQ1MTA0MDA4NkRBMzcwMEM1MDAwMDAwQjYKKzoxMDFCRTAwMEU1M0UwMDAwMjA0MDAwMDA0MDAwMDAwMEU1MkIwMDAwMjIKKzoxMDFCRjAwMDQyMDAwMDAwMEEwMDQwMDA1NDQyNDAwMDA3MDAwMDAwN0MKKzoxMDFDMDAwMEU1MkEwMDAwMjA0MDAwMDA0MDAwMDAwMDMyMDE1MDAwQTIKKzoxMDFDMTAwMDM0MDEwNDAwNzQ1NjAwMDBFNTI5MDAwMDQyMDAwMjAwNkYKKzoxMDFDMjAwMDBBMDA0MjAwNDIwMDAwMDAwQTAwNTAwMDdDNDEwNTAwMEEKKzoxMDFDMzAwMEU1MjgwMDAwNDIwMDAwMDAwQTAwNDgwMEM1MDAwMDAwM0UKKzoxMDFDNDAwMDQ0QzE0QzAwODZBMDM4MDBFNTI2MDAwMEU1MjcwMDAwQ0UKKzoxMDFDNTAwMDQyMDAwMjAwNEEwMDQwMDAwQTAwNTAwMDNDNDIwMDAwREUKKzoxMDFDNjAwMDdDNTYwMDAwRTUyODAwMDAyMDQ4MDAwMDQwMDAwMDAwRUQKKzoxMDFDNzAwMDEyMUQyODAwMTIyNTI4MDA3MjFGMDAwMDY1MjkwMDAwOEYKKzoxMDFDODAwMDQyMDAwMDAwMEEwMDQwMDAwNDQxMDAwMDg2M0EzOTAwOEEKKzoxMDFDOTAwMDA3MDAwRTAwMDcwMDE2MDAwNzAwMUUwMEU1M0UwMDAwQ0EKKzoxMDFDQTAwMDQyMDAwMDAwMEEwMDQwMDAwNDQxMDAwMDg2NzgzOTAwMkMKKzoxMDFDQjAwMDY1MkQwMDAwNDIwMDAwMDAwQTM0MjgwMDY1MzQwMDAwNTEKKzoxMDFDQzAwMDQyMDAwMjAwNEEwMDQyMDAyMDQwMDAwMDRBMDA0QTAwNTAKKzoxMDFDRDAwMDRBMDA1MDAwRjREMjA1MDAwNEQxNTQwMDVDNzMwMDAwQTcKKzoxMDFDRTAwMDg2RTEzOTAwMDcwMDAwMDAwNjA2MDAwMDA3MDAwODAwMzIKKzoxMDFDRjAwMDA3MDAwQzAwMDcwMDA4MDAwNzAwMEEwMEU1MDEwMDAwQ0IKKzoxMDFEMDAwMDQ1MDAwMjAwMjA0MDAwMDA2MDAwMDAwMDY1MDMwMDAwNjQKKzoxMDFEMTAwMDQwMDAwMDAwNjUyRTAwMDAyMDFBMDAwMDYwMUEwQTAwMzIKKzoxMDFEMjAwMDQwMDAwMDAwNjUzNDAwMDA0MjAwMDIwMDRBMDA0MjAwMEEKKzoxMDFEMzAwMDIwNDAwMDAwNEEwMDRBMDAwNjA2MDAwMDRBMDA1MDAwMDkKKzoxMDFENDAwMEZEMTcwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwOUQKKzoxMDFENTAwMDg2NUEyMjAwMDcwMDAwMDA3RDEwMDAwMDQyODAwMTAwMkEKKzoxMDFENjAwMEZEMTEwMDAwNEE4MDMzMDA0QTgwMTkwMDBBMDAyMDAwNUIKKzoxMDFENzAwMDk1MDAwMDAwNDQxMTJBMDA0NEExMDEwMDg2OTAzQjAwMTgKKzoxMDFEODAwMDBEMDQwMDAwODRCMTAwMDA4NjkxM0IwMEZEMTgwMDAwQTYKKzoxMDFEOTAwMDQyODAwMTAwRkQxMDAwMDA0QTgwMDkwMDBBMDAzODAwNUUKKzoxMDFEQTAwMDk1MDAwMDAwMjQwOTAxMDA2NDNBMDAwMDg2ODEzQjAwOTAKKzoxMDFEQjAwMDA3MDAwMDAwMDQzOTAwMDA4NjkyM0IwMDA3MDAwMDAwODUKKzoxMDFEQzAwMDA2OUEzQjAwMEQwMDAwMDA4RDAwMDAwMDIwMDgwMDAwNzYKKzoxMDFERDAwMDdEMzgwMDAwNDA4MDAxMDAwMjAwNzAwMDdEMTEwMDAwOEQKKzoxMDFERTAwMDQyODAwMTAwN0QxOTAwMDA0QTgwMjkwMDBBMDAzMDAwNkQKKzoxMDFERjAwMDAyMDAzODAwMjQzMTAwMDAyNDA0MDAwMDI0MDQwMDAwMDQKKzoxMDFFMDAwMDI0MkEwMDAwMDIwNTI4MDA4RDA2MDAwMDEwMDgwMDAwQUEKKzoxMDFFMTAwMDNBMTQyODAwMEQ3NTAwMDAyNEIxMDAwMDY0MjIwMDAwNkYKKzoxMDFFMjAwMDg2MDMzRDAwMDI0NDI4MDAxMDA4MDAwMDNBMEMyODAwRjgKKzoxMDFFMzAwMDBEODAwQjAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwMjIKKzoxMDFFNDAwMDA3MDAyMDAwOEQ3NTAwMDAyNEIxMDAwMDAyMDExMDAwODEKKzoxMDFFNTAwMDQ0MjEwMTAwODY0OTNFMDAxMDE4MDAwMDNBMDAxMDAwOUQKKzoxMDFFNjAwMDdEMzgwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwREIKKzoxMDFFNzAwMDg2NDgzRTAwMDAwMDAzMDAwNjRBM0UwMEJEMDAwMDAwMDgKKzoxMDFFODAwMDhEMDAwMDAwNjQzMTAyMDA2NDBBMDAwMDAyMEQyODAwODkKKzoxMDFFOTAwMDhEODAwQjAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwNDIKKzoxMDFFQTAwMDA3MDAyMDAwN0QzODAwMDA0MjgwMDEwMDBBMDAwODAwODEKKzoxMDFFQjAwMDA0MDkwMDAwODYzMjNFMDAwMDAwMDMwMEZEMDIwMDAwMUQKKzoxMDFFQzAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2ODIzRDAwRUIKKzoxMDFFRDAwMDA3MDAwMDAwMTAyODAwMDAzQTA0MjgwMDBENzUwMDAwREIKKzoxMDFFRTAwMDI0MDkwMzAwNjQyMjAwMDAwMjBEMjgwMDZDMzEwMjAwNjYKKzoxMDFFRjAwMDBBNDUyODAwMEQ4MTBCMDAyMDA4MDAwMEZEMDIwMDAwQUIKKzoxMDFGMDAwMDQwODAwMTAwMDcwMDIwMDA4RDAwMDAwMDI0MEEwMDAwMkUKKzoxMDFGMTAwMDA2NEEzRTAwMDIwMTEwMDAxMDE4MDAwMDNBMDAxMDAwQUUKKzoxMDFGMjAwMEJEMDAwMDAwMTAzODAwMDAzQTA0MzAwMDdEMTgwMDAwQTkKKzoxMDFGMzAwMDQyODAwMTAwRkQxODAwMDA0QTgwMDkwMDBBMDAyMDAwQ0MKKzoxMDFGNDAwMEFEMDAwMDAwMjQ4OTAyMDAyQzIxMDcwMDEwMTAwMDAwQzEKKzoxMDFGNTAwMDgzMDUzMDAwOEIwRDMwMDBCQjE0MzAwMDgzMUMzMDAwMzMKKzoxMDFGNjAwMDgzMjAwMDAwN0QxMzAwMDA0MjgwMDMwMDRBODQzMzAwNzgKKzoxMDFGNzAwMENCQUMzMzAwQ0JCNDMzMDBDQkJDMzMwMENCQzQzMzAwODkKKzoxMDFGODAwMENCQ0MzMzAwQ0JENDMzMDA4QjVDMzAwMDgzNjAwMDAwQkIKKzoxMDFGOTAwMDBEMUUwMDAwRkQwNTAwMDA0MjgwMDEwMDBBMDAyMDAwMjcKKzoxMDFGQTAwMDI0MDkwMjAwOEQwNjAwMDA2Q0E5MDAwMDlEMDAwMDAwQkQKKzoxMDFGQjAwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwNDAKKzoxMDFGQzAwMDg2NkEzRjAwMDcwMDAwMDAwMjA1MjgwMDBBMEQyODAwNkQKKzoxMDFGRDAwMDAyNDQyODAwMTAxODAwMDAzQTE0MjgwMDhEMDAwQzAwNUMKKzoxMDFGRTAwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDA3MDAyMjAwRTAKKzoxMDFGRjAwMDA0MzkwMDAwODY1ODIyMDAwRDFFMDAwMDdEMDUwMDAwRjcKKzoxMDIwMDAwMDQyODAwMTAwMEEwMDIwMDAyNDA5MDIwMEE1MDAwMDAwMEYKKzoxMDIwMTAwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwREYKKzoxMDIwMjAwMDg2MkE0MDAwMDcwMDAwMDAwMjA1MjgwMDAyMEMyODAwNTQKKzoxMDIwMzAwMDEwMjAwMDAwM0ExNDI4MDAwRDAxMEMwMDIwMDgwMDAwQjgKKzoxMDIwNDAwMEZEMDIwMDAwNDA4MDAxMDAwNjVBMjIwMDA3MDAyMjAwMjUKKzoxMDIwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDIwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDIwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDIwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDIwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKKzoxMDIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDIwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDIwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzoxMDIwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKKzoxMDIwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKKzoxMDIxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKKzoxMDIxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKKzoxMDIxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKKzoxMDIxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKKzoxMDIxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKKzoxMDIxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDIyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDIyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDIyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDIyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDIyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDIyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDIyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDIyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDIyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDIyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDIyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDIyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDIyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDIyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDIzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDIzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDIzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDIzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDIzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDIzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDIzOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDIzQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDIzQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDIzQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDIzRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDIzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDIzRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0MKKzoxMDI0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI0MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI0MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI0NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI0NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI0ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI0QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI0QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI0RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzoxMDI0RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREMKKzoxMDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0IKKzoxMDI1MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkIKKzoxMDI1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzoxMDI1MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUIKKzoxMDI1NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEIKKzoxMDI1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0IKKzoxMDI1NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzoxMDI1NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUIKKzoxMDI1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEIKKzoxMDI1OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0IKKzoxMDI1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzoxMDI1QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUIKKzoxMDI1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIKKzoxMDI1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkIKKzoxMDI1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzoxMDI1RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREIKKzoxMDI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0EKKzoxMDI2MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkEKKzoxMDI2MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzoxMDI2MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUEKKzoxMDI2NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEEKKzoxMDI2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0EKKzoxMDI2NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzoxMDI2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUEKKzoxMDI2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEEKKzoxMDI2OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0EKKzoxMDI2QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzoxMDI2QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDI2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEKKzoxMDI2RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkEKKzoxMDI2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzoxMDI2RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREEKKzoxMDI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzkKKzoxMDI3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjkKKzoxMDI3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzoxMDI3MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTkKKzoxMDI3NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODkKKzoxMDI3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzkKKzoxMDI3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzoxMDI3NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTkKKzoxMDI3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkKKzoxMDI3OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzkKKzoxMDI3QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzoxMDI3QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTkKKzoxMDI3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkKKzoxMDI3RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjkKKzoxMDI3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzoxMDI3RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDkKKzoxMDI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzgKKzoxMDI4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgKKzoxMDI4MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzoxMDI4MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTgKKzoxMDI4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODgKKzoxMDI4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzgKKzoxMDI4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzoxMDI4NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTgKKzoxMDI4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDgKKzoxMDI4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzgKKzoxMDI4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzoxMDI4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgKKzoxMDI4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgKKzoxMDI4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjgKKzoxMDI4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzoxMDI4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDgKKzoxMDI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzcKKzoxMDI5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjcKKzoxMDI5MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzoxMDI5MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTcKKzoxMDI5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcKKzoxMDI5NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzcKKzoxMDI5NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzoxMDI5NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcKKzoxMDI5ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDcKKzoxMDI5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzcKKzoxMDI5QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzoxMDI5QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTcKKzoxMDI5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcKKzoxMDI5RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjcKKzoxMDI5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzoxMDI5RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDcKKzoxMDJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzYKKzoxMDJBMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjYKKzoxMDJBMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzoxMDJBMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTYKKzoxMDJBNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODYKKzoxMDJBNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzYKKzoxMDJBNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzoxMDJBNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTYKKzoxMDJBODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDYKKzoxMDJBOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzYKKzoxMDJBQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzoxMDJBQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYKKzoxMDJBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYKKzoxMDJBRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjYKKzoxMDJBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzoxMDJBRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYKKzoxMDJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzUKKzoxMDJCMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjUKKzoxMDJCMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzoxMDJCMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDJCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDJCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDJCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDJCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDJCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDJCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDJCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDJCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDJCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDJCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDJCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDJCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDUKKzoxMDJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDJDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDJDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDJDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDJDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDJDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDJDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDJDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDJDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDJDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDJDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDJDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDJDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDJDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDJDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDJDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDJEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDJEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDJEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDJENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDJENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDJENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDJENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDJEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDJEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDJEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDJEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDJEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDJERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDJERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDJERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDJFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDJFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDJFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDJFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDJFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDJFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDJFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDJFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDJFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzoxMDJFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzoxMDJFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIKKzoxMDJFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIKKzoxMDJFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjIKKzoxMDJFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTIKKzoxMDJFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzoxMDJGMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMDJGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTEKKzoxMDJGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMDJGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMDJGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMDJGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMDJGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMDJGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKKzoxMDJGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDJGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMDJGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMDJGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDJGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKKzoxMDJGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMDJGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDEKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9mcy85cC92OWZzX3Zmcy5oIGIvZnMvOXAvdjlmc192ZnMuaAppbmRleCBmZDAxZDkwLi41Nzk5N2ZhIDEwMDY0NAotLS0gYS9mcy85cC92OWZzX3Zmcy5oCisrKyBiL2ZzLzlwL3Y5ZnNfdmZzLmgKQEAgLTUxLDQgKzUxLDQgQEAKIGludCB2OWZzX2ZpbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CiB2b2lkIHY5ZnNfaW5vZGUyc3RhdChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcDlfc3RhdCAqc3RhdCk7CiB2b2lkIHY5ZnNfZGVudHJ5X3JlbGVhc2Uoc3RydWN0IGRlbnRyeSAqKTsKLWludCB2OWZzX3VmbGFnczJvbW9kZShpbnQgdWZsYWdzKTsKK2ludCB2OWZzX3VmbGFnczJvbW9kZShpbnQgdWZsYWdzLCBpbnQgZXh0ZW5kZWQpOwpkaWZmIC0tZ2l0IGEvZnMvOXAvdmZzX2ZpbGUuYyBiL2ZzLzlwL3Zmc19maWxlLmMKaW5kZXggMGQ1NWFmZi4uNTI5NDRkMiAxMDA2NDQKLS0tIGEvZnMvOXAvdmZzX2ZpbGUuYworKysgYi9mcy85cC92ZnNfZmlsZS5jCkBAIC01OSw3ICs1OSw3IEBACiAKIAlQOV9EUFJJTlRLKFA5X0RFQlVHX1ZGUywgImlub2RlOiAlcCBmaWxlOiAlcCBcbiIsIGlub2RlLCBmaWxlKTsKIAl2OXNlcyA9IHY5ZnNfaW5vZGUydjlzZXMoaW5vZGUpOwotCW9tb2RlID0gdjlmc191ZmxhZ3Myb21vZGUoZmlsZS0+Zl9mbGFncyk7CisJb21vZGUgPSB2OWZzX3VmbGFnczJvbW9kZShmaWxlLT5mX2ZsYWdzLCB2OWZzX2V4dGVuZGVkKHY5c2VzKSk7CiAJZmlkID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCWlmICghZmlkKSB7CiAJCWZpZCA9IHY5ZnNfZmlkX2Nsb25lKGZpbGUtPmZfcGF0aC5kZW50cnkpOwpAQCAtNzUsNiArNzUsOCBAQAogCQkJaW5vZGUtPmlfc2l6ZSA9IDA7CiAJCQlpbm9kZS0+aV9ibG9ja3MgPSAwOwogCQl9CisJCWlmICgoZmlsZS0+Zl9mbGFncyAmIE9fQVBQRU5EKSAmJiAoIXY5ZnNfZXh0ZW5kZWQodjlzZXMpKSkKKwkJCWdlbmVyaWNfZmlsZV9sbHNlZWsoZmlsZSwgMCwgU0VFS19FTkQpOwogCX0KIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGZpZDsKZGlmZiAtLWdpdCBhL2ZzLzlwL3Zmc19pbm9kZS5jIGIvZnMvOXAvdmZzX2lub2RlLmMKaW5kZXggNDBmYTgwNy4uYzk1Mjk1YyAxMDA2NDQKLS0tIGEvZnMvOXAvdmZzX2lub2RlLmMKKysrIGIvZnMvOXAvdmZzX2lub2RlLmMKQEAgLTEzMiwxMCArMTMyLDEwIEBACiAvKioKICAqIHY5ZnNfdWZsYWdzMm9tb2RlLSBjb252ZXJ0IHBvc2l4IG9wZW4gZmxhZ3MgdG8gcGxhbiA5IG1vZGUgYml0cwogICogQHVmbGFnczogZmxhZ3MgdG8gY29udmVydAotICoKKyAqIEBleHRlbmRlZDogaWYgLnUgZXh0ZW5zaW9ucyBhcmUgYWN0aXZlCiAgKi8KIAotaW50IHY5ZnNfdWZsYWdzMm9tb2RlKGludCB1ZmxhZ3MpCitpbnQgdjlmc191ZmxhZ3Myb21vZGUoaW50IHVmbGFncywgaW50IGV4dGVuZGVkKQogewogCWludCByZXQ7CiAKQEAgLTE1NSwxNCArMTU1LDE2IEBACiAJCWJyZWFrOwogCX0KIAotCWlmICh1ZmxhZ3MgJiBPX0VYQ0wpCi0JCXJldCB8PSBQOV9PRVhDTDsKLQogCWlmICh1ZmxhZ3MgJiBPX1RSVU5DKQogCQlyZXQgfD0gUDlfT1RSVU5DOwogCi0JaWYgKHVmbGFncyAmIE9fQVBQRU5EKQotCQlyZXQgfD0gUDlfT0FQUEVORDsKKwlpZiAoZXh0ZW5kZWQpIHsKKwkJaWYgKHVmbGFncyAmIE9fRVhDTCkKKwkJCXJldCB8PSBQOV9PRVhDTDsKKworCQlpZiAodWZsYWdzICYgT19BUFBFTkQpCisJCQlyZXQgfD0gUDlfT0FQUEVORDsKKwl9CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTA2LDcgKzUwOCw3IEBACiAJCWZsYWdzID0gT19SRFdSOwogCiAJZmlkID0gdjlmc19jcmVhdGUodjlzZXMsIGRpciwgZGVudHJ5LCBOVUxMLCBwZXJtLAotCQkJCQkJdjlmc191ZmxhZ3Myb21vZGUoZmxhZ3MpKTsKKwkJCQl2OWZzX3VmbGFnczJvbW9kZShmbGFncywgdjlmc19leHRlbmRlZCh2OXNlcykpKTsKIAlpZiAoSVNfRVJSKGZpZCkpIHsKIAkJZXJyID0gUFRSX0VSUihmaWQpOwogCQlmaWQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZnMvS2NvbmZpZyBiL2ZzL0tjb25maWcKaW5kZXggY2YxMmM0MC4uMzEzYjJlMCAxMDA2NDQKLS0tIGEvZnMvS2NvbmZpZworKysgYi9mcy9LY29uZmlnCkBAIC04MzAsNyArODMwLDcgQEAKIAkgIGZyb20gdGhlIHByb2plY3Qgd2ViIHNpdGUuCiAKIAkgIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL250ZnMudHh0PgotCSAgYW5kIDxodHRwOi8vbGludXgtbnRmcy5zb3VyY2Vmb3JnZS5uZXQvPi4KKwkgIGFuZCA8aHR0cDovL3d3dy5saW51eC1udGZzLm9yZy8+LgogCiAJICBUbyBjb21waWxlIHRoaXMgZmlsZSBzeXN0ZW0gc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgbnRmcy4KQEAgLTkzMCw3ICs5MzAsNyBAQAogCiBjb25maWcgUFJPQ19WTUNPUkUKICAgICAgICAgYm9vbCAiL3Byb2Mvdm1jb3JlIHN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiCi0gICAgICAgIGRlcGVuZHMgb24gUFJPQ19GUyAmJiBFWFBFUklNRU5UQUwgJiYgQ1JBU0hfRFVNUAorICAgICAgICBkZXBlbmRzIG9uIFBST0NfRlMgJiYgQ1JBU0hfRFVNUAogCWRlZmF1bHQgeQogICAgICAgICBoZWxwCiAgICAgICAgIEV4cG9ydHMgdGhlIGR1bXAgaW1hZ2Ugb2YgY3Jhc2hlZCBrZXJuZWwgaW4gRUxGIGZvcm1hdC4KZGlmZiAtLWdpdCBhL2ZzL01ha2VmaWxlIGIvZnMvTWFrZWZpbGUKaW5kZXggMWU3YTExYi4uMjc3YjA3OSAxMDA2NDQKLS0tIGEvZnMvTWFrZWZpbGUKKysrIGIvZnMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAKIG9iai15ICs9CW5vLWJsb2NrLm8KIGVuZGlmCiAKK29iai0kKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkgKz0gYmlvLWludGVncml0eS5vCiBvYmotJChDT05GSUdfSU5PVElGWSkJCSs9IGlub3RpZnkubwogb2JqLSQoQ09ORklHX0lOT1RJRllfVVNFUikJKz0gaW5vdGlmeV91c2VyLm8KIG9iai0kKENPTkZJR19FUE9MTCkJCSs9IGV2ZW50cG9sbC5vCmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmMKaW5kZXggMGZhOTViMS4uZDQ4ZmY1ZiAxMDA2NDQKLS0tIGEvZnMvYmluZm10X2VsZi5jCisrKyBiL2ZzL2JpbmZtdF9lbGYuYwpAQCAtMTYsNyArMTYsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9hLm91dC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgpAQCAtNTQ4LDcgKzU0Nyw2IEBACiAJc3RydWN0IHsKIAkJc3RydWN0IGVsZmhkciBlbGZfZXg7CiAJCXN0cnVjdCBlbGZoZHIgaW50ZXJwX2VsZl9leDsKLSAgCQlzdHJ1Y3QgZXhlYyBpbnRlcnBfZXg7CiAJfSAqbG9jOwogCiAJbG9jID0ga21hbGxvYyhzaXplb2YoKmxvYyksIEdGUF9LRVJORUwpOwpAQCAtNjgwLDcgKzY3OCw2IEBACiAJCQl9CiAKIAkJCS8qIEdldCB0aGUgZXhlYyBoZWFkZXJzICovCi0JCQlsb2MtPmludGVycF9leCA9ICooKHN0cnVjdCBleGVjICopYnBybS0+YnVmKTsKIAkJCWxvYy0+aW50ZXJwX2VsZl9leCA9ICooKHN0cnVjdCBlbGZoZHIgKilicHJtLT5idWYpOwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2ZzL2Jpby1pbnRlZ3JpdHkuYyBiL2ZzL2Jpby1pbnRlZ3JpdHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2UyZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvZnMvYmlvLWludGVncml0eS5jCkBAIC0wLDAgKzEsNzE5IEBACisvKgorICogYmlvLWludGVncml0eS5jIC0gYmlvIGRhdGEgaW50ZWdyaXR5IGV4dGVuc2lvbnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggT3JhY2xlIENvcnBvcmF0aW9uCisgKiBXcml0dGVuIGJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyAqIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LAorICogVVNBLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWVtcG9vbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Jpby5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmJpb19pbnRlZ3JpdHlfc2xhYiBfX3JlYWRfbW9zdGx5Oworc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpraW50ZWdyaXR5ZF93cTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jX2Jpb3NldCAtIEFsbG9jYXRlIGludGVncml0eSBwYXlsb2FkIGFuZCBhdHRhY2ggaXQgdG8gYmlvCisgKiBAYmlvOgliaW8gdG8gYXR0YWNoIGludGVncml0eSBtZXRhZGF0YSB0bworICogQGdmcF9tYXNrOglNZW1vcnkgYWxsb2NhdGlvbiBtYXNrCisgKiBAbnJfdmVjczoJTnVtYmVyIG9mIGludGVncml0eSBtZXRhZGF0YSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cworICogQGJzOgkJYmlvX3NldCB0byBhbGxvY2F0ZSBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoc3RydWN0IGJpbyAqYmlvLAorCQkJCQkJCSBnZnBfdCBnZnBfbWFzaywKKwkJCQkJCQkgdW5zaWduZWQgaW50IG5yX3ZlY3MsCisJCQkJCQkJIHN0cnVjdCBiaW9fc2V0ICpicykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisJc3RydWN0IGJpb192ZWMgKml2OworCXVuc2lnbmVkIGxvbmcgaWR4OworCisJQlVHX09OKGJpbyA9PSBOVUxMKTsKKworCWJpcCA9IG1lbXBvb2xfYWxsb2MoYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCwgZ2ZwX21hc2spOworCWlmICh1bmxpa2VseShiaXAgPT0gTlVMTCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogY291bGQgbm90IGFsbG9jIGJpcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwltZW1zZXQoYmlwLCAwLCBzaXplb2YoKmJpcCkpOworCisJaXYgPSBidmVjX2FsbG9jX2JzKGdmcF9tYXNrLCBucl92ZWNzLCAmaWR4LCBicyk7CisJaWYgKHVubGlrZWx5KGl2ID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGNvdWxkIG5vdCBhbGxvYyBiaXBfdmVjXG4iLCBfX2Z1bmNfXyk7CisJCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwliaXAtPmJpcF9wb29sID0gaWR4OworCWJpcC0+YmlwX3ZlYyA9IGl2OworCWJpcC0+YmlwX2JpbyA9IGJpbzsKKwliaW8tPmJpX2ludGVncml0eSA9IGJpcDsKKworCXJldHVybiBiaXA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jIC0gQWxsb2NhdGUgaW50ZWdyaXR5IHBheWxvYWQgYW5kIGF0dGFjaCBpdCB0byBiaW8KKyAqIEBiaW86CWJpbyB0byBhdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhIHRvCisgKiBAZ2ZwX21hc2s6CU1lbW9yeSBhbGxvY2F0aW9uIG1hc2sKKyAqIEBucl92ZWNzOglOdW1iZXIgb2YgaW50ZWdyaXR5IG1ldGFkYXRhIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnRzCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvYyhzdHJ1Y3QgYmlvICpiaW8sCisJCQkJCQkgIGdmcF90IGdmcF9tYXNrLAorCQkJCQkJICB1bnNpZ25lZCBpbnQgbnJfdmVjcykKK3sKKwlyZXR1cm4gYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoYmlvLCBnZnBfbWFzaywgbnJfdmVjcywgZnNfYmlvX3NldCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2MpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZnJlZSAtIEZyZWUgYmlvIGludGVncml0eSBwYXlsb2FkCisgKiBAYmlvOgliaW8gY29udGFpbmluZyBiaXAgdG8gYmUgZnJlZWQKKyAqIEBiczoJCWJpb19zZXQgdGhpcyBiaW8gd2FzIGFsbG9jYXRlZCBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFVzZWQgdG8gZnJlZSB0aGUgaW50ZWdyaXR5IHBvcnRpb24gb2YgYSBiaW8uIFVzdWFsbHkKKyAqIGNhbGxlZCBmcm9tIGJpb19mcmVlKCkuCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9mcmVlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb19zZXQgKmJzKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKworCS8qIEEgY2xvbmVkIGJpbyBkb2Vzbid0IG93biB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhICovCisJaWYgKCFiaW9fZmxhZ2dlZChiaW8sIEJJT19DTE9ORUQpICYmIGJpcC0+YmlwX2J1ZiAhPSBOVUxMKQorCQlrZnJlZShiaXAtPmJpcF9idWYpOworCisJbWVtcG9vbF9mcmVlKGJpcC0+YmlwX3ZlYywgYnMtPmJ2ZWNfcG9vbHNbYmlwLT5iaXBfcG9vbF0pOworCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCisJYmlvLT5iaV9pbnRlZ3JpdHkgPSBOVUxMOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X2ZyZWUpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UgLSBBdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhCisgKiBAYmlvOgliaW8gdG8gdXBkYXRlCisgKiBAcGFnZToJcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YQorICogQGxlbjoJbnVtYmVyIG9mIGJ5dGVzIG9mIGludGVncml0eSBtZXRhZGF0YSBpbiBwYWdlCisgKiBAb2Zmc2V0OglzdGFydCBvZmZzZXQgd2l0aGluIHBhZ2UKKyAqCisgKiBEZXNjcmlwdGlvbjogQXR0YWNoIGEgcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YSB0byBiaW8uCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkgICB1bnNpZ25lZCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBiaW9fdmVjICppdjsKKworCWlmIChiaXAtPmJpcF92Y250ID49IGJ2ZWNfbnJfdmVjcyhiaXAtPmJpcF9wb29sKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBiaXBfdmVjIGZ1bGxcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaXYgPSBiaXBfdmVjX2lkeChiaXAsIGJpcC0+YmlwX3ZjbnQpOworCUJVR19PTihpdiA9PSBOVUxMKTsKKwlCVUdfT04oaXYtPmJ2X3BhZ2UgIT0gTlVMTCk7CisKKwlpdi0+YnZfcGFnZSA9IHBhZ2U7CisJaXYtPmJ2X2xlbiA9IGxlbjsKKwlpdi0+YnZfb2Zmc2V0ID0gb2Zmc2V0OworCWJpcC0+YmlwX3ZjbnQrKzsKKworCXJldHVybiBsZW47Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZW5hYmxlZCAtIENoZWNrIHdoZXRoZXIgaW50ZWdyaXR5IGNhbiBiZSBwYXNzZWQKKyAqIEBiaW86CWJpbyB0byBjaGVjaworICoKKyAqIERlc2NyaXB0aW9uOiBEZXRlcm1pbmVzIHdoZXRoZXIgYmlvX2ludGVncml0eV9wcmVwKCkgY2FuIGJlIGNhbGxlZAorICogb24gdGhpcyBiaW8gb3Igbm90LgliaW8gZGF0YSBkaXJlY3Rpb24gYW5kIHRhcmdldCBkZXZpY2UgbXVzdCBiZQorICogc2V0IHByaW9yIHRvIGNhbGxpbmcuICBUaGUgZnVuY3Rpb25zIGhvbm9ycyB0aGUgd3JpdGVfZ2VuZXJhdGUgYW5kCisgKiByZWFkX3ZlcmlmeSBmbGFncyBpbiBzeXNmcy4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmlvICpiaW8pCit7CisJLyogQWxyZWFkeSBwcm90ZWN0ZWQ/ICovCisJaWYgKGJpb19pbnRlZ3JpdHkoYmlvKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChiaW8tPmJpX2JkZXYsIGJpb19kYXRhX2RpcihiaW8pKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9lbmFibGVkKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2h3X3NlY3RvcnMgLSBDb252ZXJ0IDUxMmIgc2VjdG9ycyB0byBoYXJkd2FyZSBkaXR0bworICogQGJpOgkJYmxrX2ludGVncml0eSBwcm9maWxlIGZvciBkZXZpY2UKKyAqIEBzZWN0b3JzOglOdW1iZXIgb2YgNTEyIHNlY3RvcnMgdG8gY29udmVydAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGUgYmxvY2sgbGF5ZXIgY2FsY3VsYXRlcyBldmVyeXRoaW5nIGluIDUxMiBieXRlCisgKiBzZWN0b3JzIGJ1dCBpbnRlZ3JpdHkgbWV0YWRhdGEgaXMgZG9uZSBpbiB0ZXJtcyBvZiB0aGUgaGFyZHdhcmUKKyAqIHNlY3RvciBzaXplIG9mIHRoZSBzdG9yYWdlIGRldmljZS4gIENvbnZlcnQgdGhlIGJsb2NrIGxheWVyIHNlY3RvcnMKKyAqIHRvIHBoeXNpY2FsIHNlY3RvcnMuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJCQkgICAgdW5zaWduZWQgaW50IHNlY3RvcnMpCit7CisJLyogQXQgdGhpcyBwb2ludCB0aGVyZSBhcmUgb25seSA1MTJiIG9yIDQwOTZiIERJRi9FUFAgZGV2aWNlcyAqLworCWlmIChiaS0+c2VjdG9yX3NpemUgPT0gNDA5NikKKwkJcmV0dXJuIHNlY3RvcnMgPj49IDM7CisKKwlyZXR1cm4gc2VjdG9yczsKK30KKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplIC0gUmV0cmlldmUgaW50ZWdyaXR5IHRhZyBzcGFjZQorICogQGJpbzoJYmlvIHRvIGluc3BlY3QKKyAqCisgKiBEZXNjcmlwdGlvbjogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFnIGJ5dGVzIHRoYXQgY2FuIGJlCisgKiBhdHRhY2hlZCB0byB0aGlzIGJpby4gRmlsZXN5c3RlbXMgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBob3cKKyAqIG11Y2ggbWV0YWRhdGEgdG8gYXR0YWNoIHRvIGFuIEkvTy4KKyAqLwordW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCisJQlVHX09OKGJpby0+Ymlfc2l6ZSA9PSAwKTsKKworCXJldHVybiBiaS0+dGFnX3NpemUgKiAoYmlvLT5iaV9zaXplIC8gYmktPnNlY3Rvcl9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV90YWdfc2l6ZSk7CisKK2ludCBiaW9faW50ZWdyaXR5X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4sIGludCBzZXQpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlCVUdfT04oYmlwLT5iaXBfYnVmID09IE5VTEwpOworCisJaWYgKGJpLT50YWdfc2l6ZSA9PSAwKQorCQlyZXR1cm4gLTE7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLAorCQkJCQlESVZfUk9VTkRfVVAobGVuLCBiaS0+dGFnX3NpemUpKTsKKworCWlmIChucl9zZWN0b3JzICogYmktPnR1cGxlX3NpemUgPiBiaXAtPmJpcF9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IHRhZyB0b28gYmlnIGZvciBiaW86ICV1ID4gJXVcbiIsCisJCSAgICAgICBfX2Z1bmNfXywgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplLCBiaXAtPmJpcF9zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzZXQpCisJCWJpLT5zZXRfdGFnX2ZuKGJpcC0+YmlwX2J1ZiwgdGFnX2J1ZiwgbnJfc2VjdG9ycyk7CisJZWxzZQorCQliaS0+Z2V0X3RhZ19mbihiaXAtPmJpcF9idWYsIHRhZ19idWYsIG5yX3NlY3RvcnMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9zZXRfdGFnIC0gQXR0YWNoIGEgdGFnIGJ1ZmZlciB0byBhIGJpbworICogQGJpbzoJYmlvIHRvIGF0dGFjaCBidWZmZXIgdG8KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgaW5jbHVkZWQgYnVmZmVyCisgKgorICogRGVzY3JpcHRpb246IFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRhZyBhIGJpbyBieSBsZXZlcmFnaW5nIHRoZSBleHRyYQorICogc3BhY2UgcHJvdmlkZWQgYnkgZGV2aWNlcyBmb3JtYXR0ZWQgd2l0aCBpbnRlZ3JpdHkgcHJvdGVjdGlvbi4gIFRoZQorICogc2l6ZSBvZiB0aGUgaW50ZWdyaXR5IGJ1ZmZlciBtdXN0IGJlIDw9IHRvIHRoZSBzaXplIHJlcG9ydGVkIGJ5CisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplKCkuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3NldF90YWcoc3RydWN0IGJpbyAqYmlvLCB2b2lkICp0YWdfYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCUJVR19PTihiaW9fZGF0YV9kaXIoYmlvKSAhPSBXUklURSk7CisKKwlyZXR1cm4gYmlvX2ludGVncml0eV90YWcoYmlvLCB0YWdfYnVmLCBsZW4sIDEpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3NldF90YWcpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyAtIFJldHJpZXZlIGEgdGFnIGJ1ZmZlciBmcm9tIGEgYmlvCisgKiBAYmlvOgliaW8gdG8gcmV0cmlldmUgYnVmZmVyIGZyb20KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGZvciB0aGUgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgdGFyZ2V0IGJ1ZmZlcgorICoKKyAqIERlc2NyaXB0aW9uOiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgdGFnIGJ1ZmZlciBmcm9tIGEKKyAqIGNvbXBsZXRlZCBJL08uIFRoZSBzaXplIG9mIHRoZSBpbnRlZ3JpdHkgYnVmZmVyIG11c3QgYmUgPD0gdG8gdGhlCisgKiBzaXplIHJlcG9ydGVkIGJ5IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoKS4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4pCit7CisJQlVHX09OKGJpb19kYXRhX2RpcihiaW8pICE9IFJFQUQpOworCisJcmV0dXJuIGJpb19pbnRlZ3JpdHlfdGFnKGJpbywgdGFnX2J1ZiwgbGVuLCAwKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9nZXRfdGFnKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2dlbmVyYXRlIC0gR2VuZXJhdGUgaW50ZWdyaXR5IG1ldGFkYXRhIGZvciBhIGJpbworICogQGJpbzoJYmlvIHRvIGdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBmb3IKKyAqCisgKiBEZXNjcmlwdGlvbjogR2VuZXJhdGVzIGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8gYnkgY2FsbGluZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGdlbmVyYXRpb24gY2FsbGJhY2sgZnVuY3Rpb24uICBUaGUgYmlvIG11c3QgaGF2ZSBhCisgKiBiaXAgYXR0YWNoZWQgd2l0aCBlbm91Z2ggcm9vbSB0byBhY2NvbW1vZGF0ZSB0aGUgZ2VuZXJhdGVkCisgKiBpbnRlZ3JpdHkgbWV0YWRhdGEuCisgKi8KK3N0YXRpYyB2b2lkIGJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnIGJpeDsKKwlzdHJ1Y3QgYmlvX3ZlYyAqYnY7CisJc2VjdG9yX3Qgc2VjdG9yID0gYmlvLT5iaV9zZWN0b3I7CisJdW5zaWduZWQgaW50IGksIHNlY3RvcnMsIHRvdGFsOworCXZvaWQgKnByb3RfYnVmID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9idWY7CisKKwl0b3RhbCA9IDA7CisJYml4LmRpc2tfbmFtZSA9IGJpby0+YmlfYmRldi0+YmRfZGlzay0+ZGlza19uYW1lOworCWJpeC5zZWN0b3Jfc2l6ZSA9IGJpLT5zZWN0b3Jfc2l6ZTsKKworCWJpb19mb3JfZWFjaF9zZWdtZW50KGJ2LCBiaW8sIGkpIHsKKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhidi0+YnZfcGFnZSwgS01fVVNFUjApOworCQliaXguZGF0YV9idWYgPSBrYWRkciArIGJ2LT5idl9vZmZzZXQ7CisJCWJpeC5kYXRhX3NpemUgPSBidi0+YnZfbGVuOworCQliaXgucHJvdF9idWYgPSBwcm90X2J1ZjsKKwkJYml4LnNlY3RvciA9IHNlY3RvcjsKKworCQliaS0+Z2VuZXJhdGVfZm4oJmJpeCk7CisKKwkJc2VjdG9ycyA9IGJ2LT5idl9sZW4gLyBiaS0+c2VjdG9yX3NpemU7CisJCXNlY3RvciArPSBzZWN0b3JzOworCQlwcm90X2J1ZiArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCXRvdGFsICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwkJQlVHX09OKHRvdGFsID4gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zaXplKTsKKworCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfcHJlcCAtIFByZXBhcmUgYmlvIGZvciBpbnRlZ3JpdHkgSS9PCisgKiBAYmlvOgliaW8gdG8gcHJlcGFyZQorICoKKyAqIERlc2NyaXB0aW9uOiBBbGxvY2F0ZXMgYSBidWZmZXIgZm9yIGludGVncml0eSBtZXRhZGF0YSwgbWFwcyB0aGUKKyAqIHBhZ2VzIGFuZCBhdHRhY2hlcyB0aGVtIHRvIGEgYmlvLiAgVGhlIGJpbyBtdXN0IGhhdmUgZGF0YQorICogZGlyZWN0aW9uLCB0YXJnZXQgZGV2aWNlIGFuZCBzdGFydCBzZWN0b3Igc2V0IHByaW90IHRvIGNhbGxpbmcuICBJbgorICogdGhlIFdSSVRFIGNhc2UsIGludGVncml0eSBtZXRhZGF0YSB3aWxsIGJlIGdlbmVyYXRlZCB1c2luZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGludGVncml0eSBmdW5jdGlvbi4gIEluIHRoZSBSRUFEIGNhc2UsIHRoZSBidWZmZXIKKyAqIHdpbGwgYmUgcHJlcGFyZWQgZm9yIERNQSBhbmQgYSBzdWl0YWJsZSBlbmRfaW8gaGFuZGxlciBzZXQgdXAuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3ByZXAoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcDsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IHJlcXVlc3RfcXVldWUgKnE7CisJdm9pZCAqYnVmOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKKwl1bnNpZ25lZCBpbnQgbGVuLCBucl9wYWdlczsKKwl1bnNpZ25lZCBpbnQgYnl0ZXMsIG9mZnNldCwgaTsKKwl1bnNpZ25lZCBpbnQgc2VjdG9yczsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJcSA9IGJkZXZfZ2V0X3F1ZXVlKGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaW9faW50ZWdyaXR5KGJpbykpOworCisJc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgYmlvX3NlY3RvcnMoYmlvKSk7CisKKwkvKiBBbGxvY2F0ZSBrZXJuZWwgYnVmZmVyIGZvciBwcm90ZWN0aW9uIGRhdGEgKi8KKwlsZW4gPSBzZWN0b3JzICogYmxrX2ludGVncml0eV90dXBsZV9zaXplKGJpKTsKKwlidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX05PSU8gfCBfX0dGUF9OT0ZBSUwgfCBxLT5ib3VuY2VfZ2ZwKTsKKwlpZiAodW5saWtlbHkoYnVmID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiY291bGQgbm90IGFsbG9jYXRlIGludGVncml0eSBidWZmZXJcbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwllbmQgPSAoKCh1bnNpZ25lZCBsb25nKSBidWYpICsgbGVuICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwlzdGFydCA9ICgodW5zaWduZWQgbG9uZykgYnVmKSA+PiBQQUdFX1NISUZUOworCW5yX3BhZ2VzID0gZW5kIC0gc3RhcnQ7CisKKwkvKiBBbGxvY2F0ZSBiaW8gaW50ZWdyaXR5IHBheWxvYWQgYW5kIGludGVncml0eSB2ZWN0b3JzICovCisJYmlwID0gYmlvX2ludGVncml0eV9hbGxvYyhiaW8sIEdGUF9OT0lPLCBucl9wYWdlcyk7CisJaWYgKHVubGlrZWx5KGJpcCA9PSBOVUxMKSkgeworCQlwcmludGsoS0VSTl9FUlIgImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGludGVncml0eSBiaW9zZXRcbiIpOworCQlrZnJlZShidWYpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwliaXAtPmJpcF9idWYgPSBidWY7CisJYmlwLT5iaXBfc2l6ZSA9IGxlbjsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaW8tPmJpX3NlY3RvcjsKKworCS8qIE1hcCBpdCAqLworCW9mZnNldCA9IG9mZnNldF9pbl9wYWdlKGJ1Zik7CisJZm9yIChpID0gMCA7IGkgPCBucl9wYWdlcyA7IGkrKykgeworCQlpbnQgcmV0OworCQlieXRlcyA9IFBBR0VfU0laRSAtIG9mZnNldDsKKworCQlpZiAobGVuIDw9IDApCisJCQlicmVhazsKKworCQlpZiAoYnl0ZXMgPiBsZW4pCisJCQlieXRlcyA9IGxlbjsKKworCQlyZXQgPSBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKGJpbywgdmlydF90b19wYWdlKGJ1ZiksCisJCQkJCSAgICAgYnl0ZXMsIG9mZnNldCk7CisKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHJldCA8IGJ5dGVzKQorCQkJYnJlYWs7CisKKwkJYnVmICs9IGJ5dGVzOworCQlsZW4gLT0gYnl0ZXM7CisJCW9mZnNldCA9IDA7CisJfQorCisJLyogSW5zdGFsbCBjdXN0b20gSS9PIGNvbXBsZXRpb24gaGFuZGxlciBpZiByZWFkIHZlcmlmeSBpcyBlbmFibGVkICovCisJaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFJFQUQpIHsKKwkJYmlwLT5iaXBfZW5kX2lvID0gYmlvLT5iaV9lbmRfaW87CisJCWJpby0+YmlfZW5kX2lvID0gYmlvX2ludGVncml0eV9lbmRpbzsKKwl9CisKKwkvKiBBdXRvLWdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBpZiB0aGlzIGlzIGEgd3JpdGUgKi8KKwlpZiAoYmlvX2RhdGFfZGlyKGJpbykgPT0gV1JJVEUpCisJCWJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoYmlvKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3ByZXApOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfdmVyaWZ5IC0gVmVyaWZ5IGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8KKyAqIEBiaW86CWJpbyB0byB2ZXJpZnkKKyAqCisgKiBEZXNjcmlwdGlvbjogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoZSBpbnRlZ3JpdHkgb2YgYQorICogYmlvLgkgVGhlIGRhdGEgaW4gdGhlIGJpbyBpb192ZWMgaXMgY29tcGFyZWQgdG8gdGhlIGludGVncml0eQorICogbWV0YWRhdGEgcmV0dXJuZWQgYnkgdGhlIEhCQS4KKyAqLworc3RhdGljIGludCBiaW9faW50ZWdyaXR5X3ZlcmlmeShzdHJ1Y3QgYmlvICpiaW8pCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJc3RydWN0IGJsa19pbnRlZ3JpdHlfZXhjaGcgYml4OworCXN0cnVjdCBiaW9fdmVjICpidjsKKwlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX2ludGVncml0eS0+YmlwX3NlY3RvcjsKKwl1bnNpZ25lZCBpbnQgaSwgc2VjdG9ycywgdG90YWwsIHJldDsKKwl2b2lkICpwcm90X2J1ZiA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfYnVmOworCisJcmV0ID0gdG90YWwgPSAwOworCWJpeC5kaXNrX25hbWUgPSBiaW8tPmJpX2JkZXYtPmJkX2Rpc2stPmRpc2tfbmFtZTsKKwliaXguc2VjdG9yX3NpemUgPSBiaS0+c2VjdG9yX3NpemU7CisKKwliaW9fZm9yX2VhY2hfc2VnbWVudChidiwgYmlvLCBpKSB7CisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMoYnYtPmJ2X3BhZ2UsIEtNX1VTRVIwKTsKKwkJYml4LmRhdGFfYnVmID0ga2FkZHIgKyBidi0+YnZfb2Zmc2V0OworCQliaXguZGF0YV9zaXplID0gYnYtPmJ2X2xlbjsKKwkJYml4LnByb3RfYnVmID0gcHJvdF9idWY7CisJCWJpeC5zZWN0b3IgPSBzZWN0b3I7CisKKwkJcmV0ID0gYmktPnZlcmlmeV9mbigmYml4KTsKKworCQlpZiAocmV0KSB7CisJCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJCQlicmVhazsKKwkJfQorCisJCXNlY3RvcnMgPSBidi0+YnZfbGVuIC8gYmktPnNlY3Rvcl9zaXplOworCQlzZWN0b3IgKz0gc2VjdG9yczsKKwkJcHJvdF9idWYgKz0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCQl0b3RhbCArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCUJVR19PTih0b3RhbCA+IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2l6ZSk7CisKKwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV92ZXJpZnlfZm4gLSBJbnRlZ3JpdHkgSS9PIGNvbXBsZXRpb24gd29ya2VyCisgKiBAd29yazoJV29yayBzdHJ1Y3Qgc3RvcmVkIGluIGJpbyB0byBiZSB2ZXJpZmllZAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGlzIHdvcmtxdWV1ZSBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gY29tcGxldGUgYSBSRUFECisgKiByZXF1ZXN0LiAgVGhlIGZ1bmN0aW9uIHZlcmlmaWVzIHRoZSB0cmFuc2ZlcnJlZCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIGFuZCB0aGVuIGNhbGxzIHRoZSBvcmlnaW5hbCBiaW8gZW5kX2lvIGZ1bmN0aW9uLgorICovCitzdGF0aWMgdm9pZCBiaW9faW50ZWdyaXR5X3ZlcmlmeV9mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQsIGJpcF93b3JrKTsKKwlzdHJ1Y3QgYmlvICpiaW8gPSBiaXAtPmJpcF9iaW87CisJaW50IGVycm9yID0gYmlwLT5iaXBfZXJyb3I7CisKKwlpZiAoYmlvX2ludGVncml0eV92ZXJpZnkoYmlvKSkgeworCQljbGVhcl9iaXQoQklPX1VQVE9EQVRFLCAmYmlvLT5iaV9mbGFncyk7CisJCWVycm9yID0gLUVJTzsKKwl9CisKKwkvKiBSZXN0b3JlIG9yaWdpbmFsIGJpbyBjb21wbGV0aW9uIGhhbmRsZXIgKi8KKwliaW8tPmJpX2VuZF9pbyA9IGJpcC0+YmlwX2VuZF9pbzsKKworCWlmIChiaW8tPmJpX2VuZF9pbykKKwkJYmlvLT5iaV9lbmRfaW8oYmlvLCBlcnJvcik7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9lbmRpbyAtIEludGVncml0eSBJL08gY29tcGxldGlvbiBmdW5jdGlvbgorICogQGJpbzoJUHJvdGVjdGVkIGJpbworICogQGVycm9yOglQb2ludGVyIHRvIGVycm5vCisgKgorICogRGVzY3JpcHRpb246IENvbXBsZXRpb24gZm9yIGludGVncml0eSBJL08KKyAqCisgKiBOb3JtYWxseSBJL08gY29tcGxldGlvbiBpcyBkb25lIGluIGludGVycnVwdCBjb250ZXh0LiAgSG93ZXZlciwKKyAqIHZlcmlmeWluZyBJL08gaW50ZWdyaXR5IGlzIGEgdGltZS1jb25zdW1pbmcgdGFzayB3aGljaCBtdXN0IGJlIHJ1bgorICogaW4gcHJvY2VzcyBjb250ZXh0LglUaGlzIGZ1bmN0aW9uIHBvc3Rwb25lcyBjb21wbGV0aW9uCisgKiBhY2NvcmRpbmdseS4KKyAqLwordm9pZCBiaW9faW50ZWdyaXR5X2VuZGlvKHN0cnVjdCBiaW8gKmJpbywgaW50IGVycm9yKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcC0+YmlwX2JpbyAhPSBiaW8pOworCisJYmlwLT5iaXBfZXJyb3IgPSBlcnJvcjsKKwlJTklUX1dPUksoJmJpcC0+YmlwX3dvcmssIGJpb19pbnRlZ3JpdHlfdmVyaWZ5X2ZuKTsKKwlxdWV1ZV93b3JrKGtpbnRlZ3JpdHlkX3dxLCAmYmlwLT5iaXBfd29yayk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfZW5kaW8pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya19oZWFkIC0gQWR2YW5jZSBiaXBfdmVjIHNraXAgYnl0ZXMKKyAqIEBiaXA6CUludGVncml0eSB2ZWN0b3IgdG8gYWR2YW5jZQorICogQHNraXA6CU51bWJlciBvZiBieXRlcyB0byBhZHZhbmNlIGl0CisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX2hlYWQoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgc2tpcCkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXY7CisJdW5zaWduZWQgaW50IGk7CisKKwliaXBfZm9yX2VhY2hfdmVjKGl2LCBiaXAsIGkpIHsKKwkJaWYgKHNraXAgPT0gMCkgeworCQkJYmlwLT5iaXBfaWR4ID0gaTsKKwkJCXJldHVybjsKKwkJfSBlbHNlIGlmIChza2lwID49IGl2LT5idl9sZW4pIHsKKwkJCXNraXAgLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogc2tpcCA8IGl2LT5idl9sZW4pICovCisJCQlpdi0+YnZfb2Zmc2V0ICs9IHNraXA7CisJCQlpdi0+YnZfbGVuIC09IHNraXA7CisJCQliaXAtPmJpcF9pZHggPSBpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya190YWlsIC0gVHJ1bmNhdGUgYmlwX3ZlYyB0byBiZSBsZW4gYnl0ZXMgbG9uZworICogQGJpcDoJSW50ZWdyaXR5IHZlY3RvciB0byB0cnVuY2F0ZQorICogQGxlbjoJTmV3IGxlbmd0aCBvZiBpbnRlZ3JpdHkgdmVjdG9yCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX3RhaWwoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBiaW9fdmVjICppdjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWJpcF9mb3JfZWFjaF92ZWMoaXYsIGJpcCwgaSkgeworCQlpZiAobGVuID09IDApIHsKKwkJCWJpcC0+YmlwX3ZjbnQgPSBpOworCQkJcmV0dXJuOworCQl9IGVsc2UgaWYgKGxlbiA+PSBpdi0+YnZfbGVuKSB7CisJCQlsZW4gLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogbGVuIDwgaXYtPmJ2X2xlbikgKi8KKwkJCWl2LT5idl9sZW4gPSBsZW47CisJCQlsZW4gPSAwOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWR2YW5jZSAtIEFkdmFuY2UgaW50ZWdyaXR5IHZlY3RvcgorICogQGJpbzoJYmlvIHdob3NlIGludGVncml0eSB2ZWN0b3IgdG8gdXBkYXRlCisgKiBAYnl0ZXNfZG9uZToJbnVtYmVyIG9mIGRhdGEgYnl0ZXMgdGhhdCBoYXZlIGJlZW4gY29tcGxldGVkCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBob3cgbWFueSBpbnRlZ3JpdHkgYnl0ZXMgdGhlCisgKiBudW1iZXIgb2YgY29tcGxldGVkIGRhdGEgYnl0ZXMgY29ycmVzcG9uZCB0byBhbmQgYWR2YW5jZXMgdGhlCisgKiBpbnRlZ3JpdHkgdmVjdG9yIGFjY29yZGluZ2x5LgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBieXRlc19kb25lKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXVuc2lnbmVkIGludCBucl9zZWN0b3JzOworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKwlCVUdfT04oYmkgPT0gTlVMTCk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBieXRlc19kb25lID4+IDkpOworCWJpb19pbnRlZ3JpdHlfbWFya19oZWFkKGJpcCwgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9hZHZhbmNlKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RyaW0gLSBUcmltIGludGVncml0eSB2ZWN0b3IKKyAqIEBiaW86CWJpbyB3aG9zZSBpbnRlZ3JpdHkgdmVjdG9yIHRvIHVwZGF0ZQorICogQG9mZnNldDoJb2Zmc2V0IHRvIGZpcnN0IGRhdGEgc2VjdG9yCisgKiBAc2VjdG9yczoJbnVtYmVyIG9mIGRhdGEgc2VjdG9ycworICoKKyAqIERlc2NyaXB0aW9uOiBVc2VkIHRvIHRyaW0gdGhlIGludGVncml0eSB2ZWN0b3IgaW4gYSBjbG9uZWQgYmlvLgorICogVGhlIGl2ZWMgd2lsbCBiZSBhZHZhbmNlZCBjb3JyZXNwb25kaW5nIHRvICdvZmZzZXQnIGRhdGEgc2VjdG9ycworICogYW5kIHRoZSBsZW5ndGggd2lsbCBiZSB0cnVuY2F0ZWQgY29ycmVzcG9uZGluZyB0byAnbGVuJyBkYXRhCisgKiBzZWN0b3JzLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfdHJpbShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCQl1bnNpZ25lZCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXAgPSBiaW8tPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmlvLT5iaV9iZGV2KTsKKwl1bnNpZ25lZCBpbnQgbnJfc2VjdG9yczsKKworCUJVR19PTihiaXAgPT0gTlVMTCk7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTighYmlvX2ZsYWdnZWQoYmlvLCBCSU9fQ0xPTkVEKSk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBzZWN0b3JzKTsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaXAtPmJpcF9zZWN0b3IgKyBvZmZzZXQ7CisJYmlvX2ludGVncml0eV9tYXJrX2hlYWQoYmlwLCBvZmZzZXQgKiBiaS0+dHVwbGVfc2l6ZSk7CisJYmlvX2ludGVncml0eV9tYXJrX3RhaWwoYmlwLCBzZWN0b3JzICogYmktPnR1cGxlX3NpemUpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3RyaW0pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfc3BsaXQgLSBTcGxpdCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CVByb3RlY3RlZCBiaW8KKyAqIEBicDoJCVJlc3VsdGluZyBiaW9fcGFpcgorICogQHNlY3RvcnM6CU9mZnNldAorICoKKyAqIERlc2NyaXB0aW9uOiBTcGxpdHMgYW4gaW50ZWdyaXR5IHBhZ2UgaW50byBhIGJpb19wYWlyLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfc3BsaXQoc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3BhaXIgKmJwLCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pID09IDApCisJCXJldHVybjsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaXAtPmJpcF92Y250ICE9IDEpOworCisJbnJfc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgc2VjdG9ycyk7CisKKwlicC0+YmlvMS5iaV9pbnRlZ3JpdHkgPSAmYnAtPmJpcDE7CisJYnAtPmJpbzIuYmlfaW50ZWdyaXR5ID0gJmJwLT5iaXAyOworCisJYnAtPml2MSA9IGJpcC0+YmlwX3ZlY1swXTsKKwlicC0+aXYyID0gYmlwLT5iaXBfdmVjWzBdOworCisJYnAtPmJpcDEuYmlwX3ZlYyA9ICZicC0+aXYxOworCWJwLT5iaXAyLmJpcF92ZWMgPSAmYnAtPml2MjsKKworCWJwLT5pdjEuYnZfbGVuID0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCWJwLT5pdjIuYnZfb2Zmc2V0ICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwlicC0+aXYyLmJ2X2xlbiAtPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisKKwlicC0+YmlwMS5iaXBfc2VjdG9yID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zZWN0b3I7CisJYnAtPmJpcDIuYmlwX3NlY3RvciA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2VjdG9yICsgbnJfc2VjdG9yczsKKworCWJwLT5iaXAxLmJpcF92Y250ID0gYnAtPmJpcDIuYmlwX3ZjbnQgPSAxOworCWJwLT5iaXAxLmJpcF9pZHggPSBicC0+YmlwMi5iaXBfaWR4ID0gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9zcGxpdCk7CisKKy8qKgorICogYmlvX2ludGVncml0eV9jbG9uZSAtIENhbGxiYWNrIGZvciBjbG9uaW5nIGJpb3Mgd2l0aCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CU5ldyBiaW8KKyAqIEBiaW9fc3JjOglPcmlnaW5hbCBiaW8KKyAqIEBiczoJCWJpb19zZXQgdG8gYWxsb2NhdGUgYmlwIGZyb20KKyAqCisgKiBEZXNjcmlwdGlvbjoJQ2FsbGVkIHRvIGFsbG9jYXRlIGEgYmlwIHdoZW4gY2xvbmluZyBhIGJpbworICovCitpbnQgYmlvX2ludGVncml0eV9jbG9uZShzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW8gKmJpb19zcmMsCisJCQlzdHJ1Y3QgYmlvX3NldCAqYnMpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwX3NyYyA9IGJpb19zcmMtPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisKKwlCVUdfT04oYmlwX3NyYyA9PSBOVUxMKTsKKworCWJpcCA9IGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KGJpbywgR0ZQX05PSU8sIGJpcF9zcmMtPmJpcF92Y250LCBicyk7CisKKwlpZiAoYmlwID09IE5VTEwpCisJCXJldHVybiAtRUlPOworCisJbWVtY3B5KGJpcC0+YmlwX3ZlYywgYmlwX3NyYy0+YmlwX3ZlYywKKwkgICAgICAgYmlwX3NyYy0+YmlwX3ZjbnQgKiBzaXplb2Yoc3RydWN0IGJpb192ZWMpKTsKKworCWJpcC0+YmlwX3NlY3RvciA9IGJpcF9zcmMtPmJpcF9zZWN0b3I7CisJYmlwLT5iaXBfdmNudCA9IGJpcF9zcmMtPmJpcF92Y250OworCWJpcC0+YmlwX2lkeCA9IGJpcF9zcmMtPmJpcF9pZHg7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9jbG9uZSk7CisKK2ludCBiaW9zZXRfaW50ZWdyaXR5X2NyZWF0ZShzdHJ1Y3QgYmlvX3NldCAqYnMsIGludCBwb29sX3NpemUpCit7CisJYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCA9IG1lbXBvb2xfY3JlYXRlX3NsYWJfcG9vbChwb29sX3NpemUsCisJCQkJCQkJICBiaW9faW50ZWdyaXR5X3NsYWIpOworCWlmICghYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfY3JlYXRlKTsKKwordm9pZCBiaW9zZXRfaW50ZWdyaXR5X2ZyZWUoc3RydWN0IGJpb19zZXQgKmJzKQoreworCWlmIChicy0+YmlvX2ludGVncml0eV9wb29sKQorCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfZnJlZSk7CisKK3ZvaWQgX19pbml0IGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKHZvaWQpCit7CisJYmlvX2ludGVncml0eV9zbGFiID0gS01FTV9DQUNIRShiaW9faW50ZWdyaXR5X3BheWxvYWQsCisJCQkJCVNMQUJfSFdDQUNIRV9BTElHTnxTTEFCX1BBTklDKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9pbml0X3NsYWIpOworCitzdGF0aWMgaW50IF9faW5pdCBpbnRlZ3JpdHlfaW5pdCh2b2lkKQoreworCWtpbnRlZ3JpdHlkX3dxID0gY3JlYXRlX3dvcmtxdWV1ZSgia2ludGVncml0eWQiKTsKKworCWlmICgha2ludGVncml0eWRfd3EpCisJCXBhbmljKCJGYWlsZWQgdG8gY3JlYXRlIGtpbnRlZ3JpdHlkXG4iKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKGludGVncml0eV9pbml0KTsKZGlmZiAtLWdpdCBhL2ZzL2Jpby5jIGIvZnMvYmlvLmMKaW5kZXggNzg1NjI1Ny4uODgzMjJiMCAxMDA2NDQKLS0tIGEvZnMvYmlvLmMKKysrIGIvZnMvYmlvLmMKQEAgLTI4LDI1ICsyOCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa3RyYWNlX2FwaS5oPgogI2luY2x1ZGUgPHNjc2kvc2cuaD4JCS8qIGZvciBzdHJ1Y3Qgc2dfaW92ZWMgKi8KIAotI2RlZmluZSBCSU9fUE9PTF9TSVpFIDIKLQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpiaW9fc2xhYiBfX3JlYWRfbW9zdGx5OwogCi0jZGVmaW5lIEJJT1ZFQ19OUl9QT09MUyA2Ci0KLS8qCi0gKiBhIHNtYWxsIG51bWJlciBvZiBlbnRyaWVzIGlzIGZpbmUsIG5vdCBnb2luZyB0byBiZSBwZXJmb3JtYW5jZSBjcml0aWNhbC4KLSAqIGJhc2ljYWxseSB3ZSBqdXN0IG5lZWQgdG8gc3Vydml2ZQotICovCi0jZGVmaW5lIEJJT19TUExJVF9FTlRSSUVTIDIKIG1lbXBvb2xfdCAqYmlvX3NwbGl0X3Bvb2wgX19yZWFkX21vc3RseTsKIAotc3RydWN0IGJpb3ZlY19zbGFiIHsKLQlpbnQgbnJfdmVjczsKLQljaGFyICpuYW1lOyAKLQlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYjsKLX07Ci0KIC8qCiAgKiBpZiB5b3UgY2hhbmdlIHRoaXMgbGlzdCwgYWxzbyBjaGFuZ2UgYnZlY19hbGxvYyBvciB0aGluZ3Mgd2lsbAogICogYnJlYWsgYmFkbHkhIGNhbm5vdCBiZSBiaWdnZXIgdGhhbiB3aGF0IHlvdSBjYW4gZml0IGludG8gYW4KQEAgLTYwLDIzICs0NSwxNyBAQAogI3VuZGVmIEJWCiAKIC8qCi0gKiBiaW9fc2V0IGlzIHVzZWQgdG8gYWxsb3cgb3RoZXIgcG9ydGlvbnMgb2YgdGhlIElPIHN5c3RlbSB0bwotICogYWxsb2NhdGUgdGhlaXIgb3duIHByaXZhdGUgbWVtb3J5IHBvb2xzIGZvciBiaW8gYW5kIGlvdmVjIHN0cnVjdHVyZXMuCi0gKiBUaGVzZSBtZW1vcnkgcG9vbHMgaW4gdHVybiBhbGwgYWxsb2NhdGUgZnJvbSB0aGUgYmlvX3NsYWIKLSAqIGFuZCB0aGUgYnZlY19zbGFic1tdLgotICovCi1zdHJ1Y3QgYmlvX3NldCB7Ci0JbWVtcG9vbF90ICpiaW9fcG9vbDsKLQltZW1wb29sX3QgKmJ2ZWNfcG9vbHNbQklPVkVDX05SX1BPT0xTXTsKLX07Ci0KLS8qCiAgKiBmc19iaW9fc2V0IGlzIHRoZSBiaW9fc2V0IGNvbnRhaW5pbmcgYmlvIGFuZCBpb3ZlYyBtZW1vcnkgcG9vbHMgdXNlZCBieQogICogSU8gY29kZSB0aGF0IGRvZXMgbm90IG5lZWQgcHJpdmF0ZSBtZW1vcnkgcG9vbHMuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgYmlvX3NldCAqZnNfYmlvX3NldDsKK3N0cnVjdCBiaW9fc2V0ICpmc19iaW9fc2V0OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBiaW9fdmVjICpidmVjX2FsbG9jX2JzKGdmcF90IGdmcF9tYXNrLCBpbnQgbnIsIHVuc2lnbmVkIGxvbmcgKmlkeCwgc3RydWN0IGJpb19zZXQgKmJzKQordW5zaWduZWQgaW50IGJ2ZWNfbnJfdmVjcyh1bnNpZ25lZCBzaG9ydCBpZHgpCit7CisJcmV0dXJuIGJ2ZWNfc2xhYnNbaWR4XS5ucl92ZWNzOworfQorCitzdHJ1Y3QgYmlvX3ZlYyAqYnZlY19hbGxvY19icyhnZnBfdCBnZnBfbWFzaywgaW50IG5yLCB1bnNpZ25lZCBsb25nICppZHgsIHN0cnVjdCBiaW9fc2V0ICpicykKIHsKIAlzdHJ1Y3QgYmlvX3ZlYyAqYnZsOwogCkBAIC0xMTcsNiArOTYsOSBAQAogCQltZW1wb29sX2ZyZWUoYmlvLT5iaV9pb192ZWMsIGJpb19zZXQtPmJ2ZWNfcG9vbHNbcG9vbF9pZHhdKTsKIAl9CiAKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKQorCQliaW9faW50ZWdyaXR5X2ZyZWUoYmlvLCBiaW9fc2V0KTsKKwogCW1lbXBvb2xfZnJlZShiaW8sIGJpb19zZXQtPmJpb19wb29sKTsKIH0KIApAQCAtMjc1LDkgKzI1NywxOSBAQAogewogCXN0cnVjdCBiaW8gKmIgPSBiaW9fYWxsb2NfYmlvc2V0KGdmcF9tYXNrLCBiaW8tPmJpX21heF92ZWNzLCBmc19iaW9fc2V0KTsKIAotCWlmIChiKSB7Ci0JCWItPmJpX2Rlc3RydWN0b3IgPSBiaW9fZnNfZGVzdHJ1Y3RvcjsKLQkJX19iaW9fY2xvbmUoYiwgYmlvKTsKKwlpZiAoIWIpCisJCXJldHVybiBOVUxMOworCisJYi0+YmlfZGVzdHJ1Y3RvciA9IGJpb19mc19kZXN0cnVjdG9yOworCV9fYmlvX2Nsb25lKGIsIGJpbyk7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKSB7CisJCWludCByZXQ7CisKKwkJcmV0ID0gYmlvX2ludGVncml0eV9jbG9uZShiLCBiaW8sIGZzX2Jpb19zZXQpOworCisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIE5VTEw7CiAJfQogCiAJcmV0dXJuIGI7CkBAIC0zMzMsMTAgKzMyNSwxOSBAQAogCQlpZiAocGFnZSA9PSBwcmV2LT5idl9wYWdlICYmCiAJCSAgICBvZmZzZXQgPT0gcHJldi0+YnZfb2Zmc2V0ICsgcHJldi0+YnZfbGVuKSB7CiAJCQlwcmV2LT5idl9sZW4gKz0gbGVuOwotCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4gJiYKLQkJCSAgICBxLT5tZXJnZV9idmVjX2ZuKHEsIGJpbywgcHJldikgPCBsZW4pIHsKLQkJCQlwcmV2LT5idl9sZW4gLT0gbGVuOwotCQkJCXJldHVybiAwOworCisJCQlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgYnZtID0geworCQkJCQkuYmlfYmRldiA9IGJpby0+YmlfYmRldiwKKwkJCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJCQkuYmlfc2l6ZSA9IGJpby0+Ymlfc2l6ZSwKKwkJCQkJLmJpX3J3ID0gYmlvLT5iaV9ydywKKwkJCQl9OworCisJCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4ocSwgJmJ2bSwgcHJldikgPCBsZW4pIHsKKwkJCQkJcHJldi0+YnZfbGVuIC09IGxlbjsKKwkJCQkJcmV0dXJuIDA7CisJCQkJfQogCQkJfQogCiAJCQlnb3RvIGRvbmU7CkBAIC0zNzcsMTEgKzM3OCwxOCBAQAogCSAqIHF1ZXVlIHRvIGdldCBmdXJ0aGVyIGNvbnRyb2wKIAkgKi8KIAlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQlzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhIGJ2bSA9IHsKKwkJCS5iaV9iZGV2ID0gYmlvLT5iaV9iZGV2LAorCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJLmJpX3NpemUgPSBiaW8tPmJpX3NpemUsCisJCQkuYmlfcncgPSBiaW8tPmJpX3J3LAorCQl9OworCiAJCS8qCiAJCSAqIG1lcmdlX2J2ZWNfZm4oKSByZXR1cm5zIG51bWJlciBvZiBieXRlcyBpdCBjYW4gYWNjZXB0CiAJCSAqIGF0IHRoaXMgb2Zmc2V0CiAJCSAqLwotCQlpZiAocS0+bWVyZ2VfYnZlY19mbihxLCBiaW8sIGJ2ZWMpIDwgbGVuKSB7CisJCWlmIChxLT5tZXJnZV9idmVjX2ZuKHEsICZidm0sIGJ2ZWMpIDwgbGVuKSB7CiAJCQlidmVjLT5idl9wYWdlID0gTlVMTDsKIAkJCWJ2ZWMtPmJ2X2xlbiA9IDA7CiAJCQlidmVjLT5idl9vZmZzZXQgPSAwOwpAQCAtMTI0OSw2ICsxMjU3LDkgQEAKIAlicC0+YmlvMS5iaV9wcml2YXRlID0gYmk7CiAJYnAtPmJpbzIuYmlfcHJpdmF0ZSA9IHBvb2w7CiAKKwlpZiAoYmlvX2ludGVncml0eShiaSkpCisJCWJpb19pbnRlZ3JpdHlfc3BsaXQoYmksIGJwLCBmaXJzdF9zZWN0b3JzKTsKKwogCXJldHVybiBicDsKIH0KIApAQCAtMTI5MCw2ICsxMzAxLDcgQEAKIAlpZiAoYnMtPmJpb19wb29sKQogCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19wb29sKTsKIAorCWJpb3NldF9pbnRlZ3JpdHlfZnJlZShicyk7CiAJYmlvdmVjX2ZyZWVfcG9vbHMoYnMpOwogCiAJa2ZyZWUoYnMpOwpAQCAtMTMwNiw2ICsxMzE4LDkgQEAKIAlpZiAoIWJzLT5iaW9fcG9vbCkKIAkJZ290byBiYWQ7CiAKKwlpZiAoYmlvc2V0X2ludGVncml0eV9jcmVhdGUoYnMsIGJpb19wb29sX3NpemUpKQorCQlnb3RvIGJhZDsKKwogCWlmICghYmlvdmVjX2NyZWF0ZV9wb29scyhicywgYnZlY19wb29sX3NpemUpKQogCQlyZXR1cm4gYnM7CiAKQEAgLTEzMzIsNiArMTM0Nyw3IEBACiB7CiAJYmlvX3NsYWIgPSBLTUVNX0NBQ0hFKGJpbywgU0xBQl9IV0NBQ0hFX0FMSUdOfFNMQUJfUEFOSUMpOwogCisJYmlvX2ludGVncml0eV9pbml0X3NsYWIoKTsKIAliaW92ZWNfaW5pdF9zbGFicygpOwogCiAJZnNfYmlvX3NldCA9IGJpb3NldF9jcmVhdGUoQklPX1BPT0xfU0laRSwgMik7CmRpZmYgLS1naXQgYS9mcy9ibG9ja19kZXYuYyBiL2ZzL2Jsb2NrX2Rldi5jCmluZGV4IDQ3MGMxMGMuLjEwZDhhMGEgMTAwNjQ0Ci0tLSBhL2ZzL2Jsb2NrX2Rldi5jCisrKyBiL2ZzL2Jsb2NrX2Rldi5jCkBAIC05MzEsOCArOTMxLDE2IEBACiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7CiAJaW50IHJldDsKIAlpbnQgcGFydDsKKwlpbnQgcGVybSA9IDA7CiAKLQlyZXQgPSBkZXZjZ3JvdXBfaW5vZGVfcGVybWlzc2lvbihiZGV2LT5iZF9pbm9kZSwgZmlsZS0+Zl9tb2RlKTsKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkKKwkJcGVybSB8PSBNQVlfUkVBRDsKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCisJCXBlcm0gfD0gTUFZX1dSSVRFOworCS8qCisJICogaG9va3M6IC9uLywgc2VlICJsYXllcmluZyB2aW9sYXRpb25zIi4KKwkgKi8KKwlyZXQgPSBkZXZjZ3JvdXBfaW5vZGVfcGVybWlzc2lvbihiZGV2LT5iZF9pbm9kZSwgcGVybSk7CiAJaWYgKHJldCAhPSAwKQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9mcy9idWZmZXIuYyBiL2ZzL2J1ZmZlci5jCmluZGV4IGEwNzNmM2YuLjVmYTE1MTIgMTAwNjQ0Ci0tLSBhL2ZzL2J1ZmZlci5jCisrKyBiL2ZzL2J1ZmZlci5jCkBAIC04MjEsNyArODIxLDcgQEAKIAkJCQkgKiBjb250ZW50cyAtIGl0IGlzIGEgbm9vcCBpZiBJL08gaXMgc3RpbGwgaW4KIAkJCQkgKiBmbGlnaHQgb24gcG90ZW50aWFsbHkgb2xkZXIgY29udGVudHMuCiAJCQkJICovCi0JCQkJbGxfcndfYmxvY2soU1dSSVRFLCAxLCAmYmgpOworCQkJCWxsX3J3X2Jsb2NrKFNXUklURV9TWU5DLCAxLCAmYmgpOwogCQkJCWJyZWxzZShiaCk7CiAJCQkJc3Bpbl9sb2NrKGxvY2spOwogCQkJfQpAQCAtMTY5MSwxMSArMTY5MSwxMyBAQAogCQkJICovCiAJCQljbGVhcl9idWZmZXJfZGlydHkoYmgpOwogCQkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7Ci0JCX0gZWxzZSBpZiAoIWJ1ZmZlcl9tYXBwZWQoYmgpICYmIGJ1ZmZlcl9kaXJ0eShiaCkpIHsKKwkJfSBlbHNlIGlmICgoIWJ1ZmZlcl9tYXBwZWQoYmgpIHx8IGJ1ZmZlcl9kZWxheShiaCkpICYmCisJCQkgICBidWZmZXJfZGlydHkoYmgpKSB7CiAJCQlXQVJOX09OKGJoLT5iX3NpemUgIT0gYmxvY2tzaXplKTsKIAkJCWVyciA9IGdldF9ibG9jayhpbm9kZSwgYmxvY2ssIGJoLCAxKTsKIAkJCWlmIChlcnIpCiAJCQkJZ290byByZWNvdmVyOworCQkJY2xlYXJfYnVmZmVyX2RlbGF5KGJoKTsKIAkJCWlmIChidWZmZXJfbmV3KGJoKSkgewogCQkJCS8qIGJsb2NrZGV2IG1hcHBpbmdzIG5ldmVyIGNvbWUgaGVyZSAqLwogCQkJCWNsZWFyX2J1ZmZlcl9uZXcoYmgpOwpAQCAtMTc3NCw3ICsxNzc2LDggQEAKIAliaCA9IGhlYWQ7CiAJLyogUmVjb3Zlcnk6IGxvY2sgYW5kIHN1Ym1pdCB0aGUgbWFwcGVkIGJ1ZmZlcnMgKi8KIAlkbyB7Ci0JCWlmIChidWZmZXJfbWFwcGVkKGJoKSAmJiBidWZmZXJfZGlydHkoYmgpKSB7CisJCWlmIChidWZmZXJfbWFwcGVkKGJoKSAmJiBidWZmZXJfZGlydHkoYmgpICYmCisJCSAgICAhYnVmZmVyX2RlbGF5KGJoKSkgewogCQkJbG9ja19idWZmZXIoYmgpOwogCQkJbWFya19idWZmZXJfYXN5bmNfd3JpdGUoYmgpOwogCQl9IGVsc2UgewpAQCAtMjA2MSw2ICsyMDY0LDcgQEAKIAkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaW50IGlfc2l6ZV9jaGFuZ2VkID0gMDsKIAogCWNvcGllZCA9IGJsb2NrX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBwYWdlLCBmc2RhdGEpOwogCkBAIC0yMDczLDEyICsyMDc3LDIxIEBACiAJICovCiAJaWYgKHBvcytjb3BpZWQgPiBpbm9kZS0+aV9zaXplKSB7CiAJCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zK2NvcGllZCk7Ci0JCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOworCQlpX3NpemVfY2hhbmdlZCA9IDE7CiAJfQogCiAJdW5sb2NrX3BhZ2UocGFnZSk7CiAJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCisJLyoKKwkgKiBEb24ndCBtYXJrIHRoZSBpbm9kZSBkaXJ0eSB1bmRlciBwYWdlIGxvY2suIEZpcnN0LCBpdCB1bm5lY2Vzc2FyaWx5CisJICogbWFrZXMgdGhlIGhvbGRpbmcgdGltZSBvZiBwYWdlIGxvY2sgbG9uZ2VyLiBTZWNvbmQsIGl0IGZvcmNlcyBsb2NrCisJICogb3JkZXJpbmcgb2YgcGFnZSBsb2NrIGFuZCB0cmFuc2FjdGlvbiBzdGFydCBmb3Igam91cm5hbGluZworCSAqIGZpbGVzeXN0ZW1zLgorCSAqLworCWlmIChpX3NpemVfY2hhbmdlZCkKKwkJbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7CisKIAlyZXR1cm4gY29waWVkOwogfQogRVhQT1JUX1NZTUJPTChnZW5lcmljX3dyaXRlX2VuZCk7CkBAIC0yOTQwLDE2ICsyOTUzLDE5IEBACiAJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IGJoc1tpXTsKIAotCQlpZiAocncgPT0gU1dSSVRFKQorCQlpZiAocncgPT0gU1dSSVRFIHx8IHJ3ID09IFNXUklURV9TWU5DKQogCQkJbG9ja19idWZmZXIoYmgpOwogCQllbHNlIGlmICh0ZXN0X3NldF9idWZmZXJfbG9ja2VkKGJoKSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChydyA9PSBXUklURSB8fCBydyA9PSBTV1JJVEUpIHsKKwkJaWYgKHJ3ID09IFdSSVRFIHx8IHJ3ID09IFNXUklURSB8fCBydyA9PSBTV1JJVEVfU1lOQykgewogCQkJaWYgKHRlc3RfY2xlYXJfYnVmZmVyX2RpcnR5KGJoKSkgewogCQkJCWJoLT5iX2VuZF9pbyA9IGVuZF9idWZmZXJfd3JpdGVfc3luYzsKIAkJCQlnZXRfYmgoYmgpOwotCQkJCXN1Ym1pdF9iaChXUklURSwgYmgpOworCQkJCWlmIChydyA9PSBTV1JJVEVfU1lOQykKKwkJCQkJc3VibWl0X2JoKFdSSVRFX1NZTkMsIGJoKTsKKwkJCQllbHNlCisJCQkJCXN1Ym1pdF9iaChXUklURSwgYmgpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQl9IGVsc2UgewpAQCAtMjk3OCw3ICsyOTk0LDcgQEAKIAlpZiAodGVzdF9jbGVhcl9idWZmZXJfZGlydHkoYmgpKSB7CiAJCWdldF9iaChiaCk7CiAJCWJoLT5iX2VuZF9pbyA9IGVuZF9idWZmZXJfd3JpdGVfc3luYzsKLQkJcmV0ID0gc3VibWl0X2JoKFdSSVRFLCBiaCk7CisJCXJldCA9IHN1Ym1pdF9iaChXUklURV9TWU5DLCBiaCk7CiAJCXdhaXRfb25fYnVmZmVyKGJoKTsKIAkJaWYgKGJ1ZmZlcl9lb3Bub3RzdXBwKGJoKSkgewogCQkJY2xlYXJfYnVmZmVyX2VvcG5vdHN1cHAoYmgpOwpkaWZmIC0tZ2l0IGEvZnMvY2hhcl9kZXYuYyBiL2ZzL2NoYXJfZGV2LmMKaW5kZXggNjhlNTEwYi4uM2NiN2NkYSAxMDA2NDQKLS0tIGEvZnMvY2hhcl9kZXYuYworKysgYi9mcy9jaGFyX2Rldi5jCkBAIC0zNzMsNiArMzczLDggQEAKIAkJCXJldHVybiAtRU5YSU87CiAJCW5ldyA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgY2Rldiwga29iaik7CiAJCXNwaW5fbG9jaygmY2Rldl9sb2NrKTsKKwkJLyogQ2hlY2sgaV9jZGV2IGFnYWluIGluIGNhc2Ugc29tZWJvZHkgYmVhdCB1cyB0byBpdCB3aGlsZQorCQkgICB3ZSBkcm9wcGVkIHRoZSBsb2NrLiAqLwogCQlwID0gaW5vZGUtPmlfY2RldjsKIAkJaWYgKCFwKSB7CiAJCQlpbm9kZS0+aV9jZGV2ID0gcCA9IG5ldzsKQEAgLTM5MiwxMSArMzk0LDggQEAKIAkJY2Rldl9wdXQocCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQotCWlmIChmaWxwLT5mX29wLT5vcGVuKSB7Ci0JCWxvY2tfa2VybmVsKCk7CisJaWYgKGZpbHAtPmZfb3AtPm9wZW4pCiAJCXJldCA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsZmlscCk7Ci0JCXVubG9ja19rZXJuZWwoKTsKLQl9CiAJaWYgKHJldCkKIAkJY2Rldl9wdXQocCk7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvQ0hBTkdFUyBiL2ZzL2NpZnMvQ0hBTkdFUwppbmRleCAyOGUzZDVjLi4xZjM0NjUyIDEwMDY0NAotLS0gYS9mcy9jaWZzL0NIQU5HRVMKKysrIGIvZnMvY2lmcy9DSEFOR0VTCkBAIC0yLDYgKzIsMTEgQEAKIC0tLS0tLS0tLS0tLQogREZTIHN1cHBvcnQgYWRkZWQgKE1pY3Jvc29mdCBEaXN0cmlidXRlZCBGaWxlIFN5c3RlbSBjbGllbnQgc3VwcG9ydCBuZWVkZWQKIGZvciByZWZlcnJhbHMgd2hpY2ggZW5hYmxlIGEgaGllcmFyY2hpY2FsIG5hbWUgc3BhY2UgYW1vbmcgc2VydmVycykuCitEaXNhYmxlIHRlbXBvcmFyeSBjYWNoaW5nIG9mIG1vZGUgYml0cyB0byBzZXJ2ZXJzIHdoaWNoIGRvIG5vdCBzdXBwb3J0CitzdG9yaW5nIG9mIG1vZGUgKGUuZy4gV2luZG93cyBzZXJ2ZXJzLCB3aGVuIGNsaWVudCBtb3VudHMgd2l0aG91dCBjaWZzYWNsCittb3VudCBvcHRpb24pIGFuZCBhZGQgbmV3ICJkeW5wZXJtIiBtb3VudCBvcHRpb24gdG8gZW5hYmxlIHRlbXBvcmFyeSBjYWNoaW5nCitvZiBtb2RlIChlbmFibGUgb2xkIGJlaGF2aW9yKS4gIEZpeCBoYW5nIG9uIG1vdW50IGNhdXNlZCB3aGVuIHNlcnZlciBjcmFzaGVzCit0Y3Agc2Vzc2lvbiBkdXJpbmcgbmVnb3RpYXRlIHByb3RvY29sLgogCiBWZXJzaW9uIDEuNTIKIC0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzYWNsLmMgYi9mcy9jaWZzL2NpZnNhY2wuYwppbmRleCAzNDkwMmNmLi4wZTlmYzJiIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNhY2wuYworKysgYi9mcy9jaWZzL2NpZnNhY2wuYwpAQCAtMzQsMTEgKzM0LDExIEBACiBzdGF0aWMgc3RydWN0IGNpZnNfd2tzaWQgd2tzaWRhcnJbTlVNX1dLX1NJRFNdID0gewogCXt7MSwgMCwgezAsIDAsIDAsIDAsIDAsIDB9LCB7MCwgMCwgMCwgMCwgMH0gfSwgIm51bGwgdXNlciJ9LAogCXt7MSwgMSwgezAsIDAsIDAsIDAsIDAsIDF9LCB7MCwgMCwgMCwgMCwgMH0gfSwgIm5vYm9keSJ9LAotCXt7MSwgMSwgezAsIDAsIDAsIDAsIDAsIDV9LCB7Y3B1X3RvX2xlMzIoMTEpLCAwLCAwLCAwLCAwfSB9LCAibmV0LXVzZXJzIn0sCi0Je3sxLCAxLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtjcHVfdG9fbGUzMigxOCksIDAsIDAsIDAsIDB9IH0sICJzeXMifSwKLQl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge2NwdV90b19sZTMyKDMyKSwgY3B1X3RvX2xlMzIoNTQ0KSwgMCwgMCwgMH0gfSwgInJvb3QifSwKLQl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge2NwdV90b19sZTMyKDMyKSwgY3B1X3RvX2xlMzIoNTQ1KSwgMCwgMCwgMH0gfSwgInVzZXJzIn0sCi0Je3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtjcHVfdG9fbGUzMigzMiksIGNwdV90b19sZTMyKDU0NiksIDAsIDAsIDB9IH0sICJndWVzdCJ9IH0KKwl7ezEsIDEsIHswLCAwLCAwLCAwLCAwLCA1fSwge19fY29uc3RhbnRfY3B1X3RvX2xlMzIoMTEpLCAwLCAwLCAwLCAwfSB9LCAibmV0LXVzZXJzIn0sCisJe3sxLCAxLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtfX2NvbnN0YW50X2NwdV90b19sZTMyKDE4KSwgMCwgMCwgMCwgMH0gfSwgInN5cyJ9LAorCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7X19jb25zdGFudF9jcHVfdG9fbGUzMigzMiksIF9fY29uc3RhbnRfY3B1X3RvX2xlMzIoNTQ0KSwgMCwgMCwgMH0gfSwgInJvb3QifSwKKwl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge19fY29uc3RhbnRfY3B1X3RvX2xlMzIoMzIpLCBfX2NvbnN0YW50X2NwdV90b19sZTMyKDU0NSksIDAsIDAsIDB9IH0sICJ1c2VycyJ9LAorCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7X19jb25zdGFudF9jcHVfdG9fbGUzMigzMiksIF9fY29uc3RhbnRfY3B1X3RvX2xlMzIoNTQ2KSwgMCwgMCwgMH0gfSwgImd1ZXN0In0gfQogOwogCiAKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2ZzLmMgYi9mcy9jaWZzL2NpZnNmcy5jCmluZGV4IDVkZjkzZmQuLjIyODU3YzYgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2ZzLmMKKysrIGIvZnMvY2lmcy9jaWZzZnMuYwpAQCAtOTcsOSArOTcsNiBAQAogewogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYjsKLSNpZmRlZiBDT05GSUdfQ0lGU19ERlNfVVBDQUxMCi0JaW50IGxlbjsKLSNlbmRpZgogCWludCByYyA9IDA7CiAKIAkvKiBCQiBzaG91bGQgd2UgbWFrZSB0aGlzIGNvbnRpbmdlbnQgb24gbW91bnQgcGFybT8gKi8KQEAgLTExNywxNSArMTE0LDE3IEBACiAJICogY29tcGxleCBvcGVyYXRpb24gKG1vdW50KSwgYW5kIGluIGNhc2Ugb2YgZmFpbAogCSAqIGp1c3QgZXhpdCBpbnN0ZWFkIG9mIGRvaW5nIG1vdW50IGFuZCBhdHRlbXB0aW5nCiAJICogdW5kbyBpdCBpZiB0aGlzIGNvcHkgZmFpbHM/Ki8KLQlsZW4gPSBzdHJsZW4oZGF0YSk7Ci0JY2lmc19zYi0+bW91bnRkYXRhID0ga3phbGxvYyhsZW4gKyAxLCBHRlBfS0VSTkVMKTsKLQlpZiAoY2lmc19zYi0+bW91bnRkYXRhID09IE5VTEwpIHsKLQkJa2ZyZWUoc2ItPnNfZnNfaW5mbyk7Ci0JCXNiLT5zX2ZzX2luZm8gPSBOVUxMOwotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoZGF0YSkgeworCQlpbnQgbGVuID0gc3RybGVuKGRhdGEpOworCQljaWZzX3NiLT5tb3VudGRhdGEgPSBremFsbG9jKGxlbiArIDEsIEdGUF9LRVJORUwpOworCQlpZiAoY2lmc19zYi0+bW91bnRkYXRhID09IE5VTEwpIHsKKwkJCWtmcmVlKHNiLT5zX2ZzX2luZm8pOworCQkJc2ItPnNfZnNfaW5mbyA9IE5VTEw7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCQlzdHJuY3B5KGNpZnNfc2ItPm1vdW50ZGF0YSwgZGF0YSwgbGVuICsgMSk7CisJCWNpZnNfc2ItPm1vdW50ZGF0YVtsZW5dID0gJ1wwJzsKIAl9Ci0Jc3RybmNweShjaWZzX3NiLT5tb3VudGRhdGEsIGRhdGEsIGxlbiArIDEpOwotCWNpZnNfc2ItPm1vdW50ZGF0YVtsZW5dID0gJ1wwJzsKICNlbmRpZgogCiAJcmMgPSBjaWZzX21vdW50KHNiLCBjaWZzX3NiLCBkYXRhLCBkZXZuYW1lKTsKQEAgLTYxMyw3ICs2MTIsNyBAQAogCQlpZiAocmV0dmFsIDwgMCkKIAkJCXJldHVybiAobG9mZl90KXJldHZhbDsKIAl9Ci0JcmV0dXJuIHJlbW90ZV9sbHNlZWsoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCXJldHVybiBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKIH0KIAogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgY2lmc19mc190eXBlID0gewpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzZ2xvYi5oIGIvZnMvY2lmcy9jaWZzZ2xvYi5oCmluZGV4IDA4OTE0MDUuLjljZmNmMzIgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2dsb2IuaAorKysgYi9mcy9jaWZzL2NpZnNnbG9iLmgKQEAgLTMzMyw3ICszMzMsNiBAQAogCWJvb2wgbWVzc2FnZU1vZGU6MTsJLyogZm9yIHBpcGVzOiBtZXNzYWdlIHZzIGJ5dGUgbW9kZSAqLwogCWF0b21pY190IHdydFBlbmRpbmc7ICAgLyogaGFuZGxlIGluIHVzZSAtIGRlZmVyIGNsb3NlICovCiAJc3RydWN0IHNlbWFwaG9yZSBmaF9zZW07IC8qIHByZXZlbnRzIHJlb3BlbiByYWNlIGFmdGVyIGRlYWQgc2VzKi8KLQljaGFyICpzZWFyY2hfcmVzdW1lX25hbWU7IC8qIEJCIHJlbW92ZW1lIEJCICovCiAJc3RydWN0IGNpZnNfc2VhcmNoX2luZm8gc3JjaF9pbmY7CiB9OwogCkBAIC02MjYsNyArNjI1LDcgQEAKIEdMT0JBTF9FWFRFUk4gYXRvbWljX3QgdGNwU2VzUmVjb25uZWN0Q291bnQ7CiBHTE9CQUxfRVhURVJOIGF0b21pY190IHRjb25JbmZvUmVjb25uZWN0Q291bnQ7CiAKLS8qIFZhcmlvdXMgRGVidWcgY291bnRlcnMgdG8gcmVtb3ZlIHNvbWVkYXkgKEJCKSAqLworLyogVmFyaW91cyBEZWJ1ZyBjb3VudGVycyAqLwogR0xPQkFMX0VYVEVSTiBhdG9taWNfdCBidWZBbGxvY0NvdW50OyAgICAvKiBjdXJyZW50IG51bWJlciBhbGxvY2F0ZWQgICovCiAjaWZkZWYgQ09ORklHX0NJRlNfU1RBVFMyCiBHTE9CQUxfRVhURVJOIGF0b21pY190IHRvdEJ1ZkFsbG9jQ291bnQ7IC8qIHRvdGFsIGFsbG9jYXRlZCBvdmVyIGFsbCB0aW1lICovCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNwZHUuaCBiL2ZzL2NpZnMvY2lmc3BkdS5oCmluZGV4IDY1ZDU4YjQuLjBmMzI3YzIgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc3BkdS5oCisrKyBiL2ZzL2NpZnMvY2lmc3BkdS5oCkBAIC03OSw2ICs3OSwxOSBAQAogI2RlZmluZSBUUkFOUzJfR0VUX0RGU19SRUZFUlJBTCAgICAgICAweDEwCiAjZGVmaW5lIFRSQU5TMl9SRVBPUlRfREZTX0lOQ09TSVNURU5DWSAweDExCiAKKy8qIFNNQiBUcmFuc2FjdCAoTmFtZWQgUGlwZSkgc3ViY29tbWFuZCBjb2RlcyAqLworI2RlZmluZSBUUkFOU19TRVRfTk1QSVBFX1NUQVRFICAgICAgMHgwMDAxCisjZGVmaW5lIFRSQU5TX1JBV19SRUFEX05NUElQRSAgICAgICAweDAwMTEKKyNkZWZpbmUgVFJBTlNfUVVFUllfTk1QSVBFX1NUQVRFICAgIDB4MDAyMQorI2RlZmluZSBUUkFOU19RVUVSWV9OTVBJUEVfSU5GTyAgICAgMHgwMDIyCisjZGVmaW5lIFRSQU5TX1BFRUtfTk1QSVBFICAgICAgICAgICAweDAwMjMKKyNkZWZpbmUgVFJBTlNfVFJBTlNBQ1RfTk1QSVBFICAgICAgIDB4MDAyNgorI2RlZmluZSBUUkFOU19SQVdfV1JJVEVfTk1QSVBFICAgICAgMHgwMDMxCisjZGVmaW5lIFRSQU5TX1JFQURfTk1QSVBFICAgICAgICAgICAweDAwMzYKKyNkZWZpbmUgVFJBTlNfV1JJVEVfTk1QSVBFICAgICAgICAgIDB4MDAzNworI2RlZmluZSBUUkFOU19XQUlUX05NUElQRSAgICAgICAgICAgMHgwMDUzCisjZGVmaW5lIFRSQU5TX0NBTExfTk1QSVBFICAgICAgICAgICAweDAwNTQKKwogLyogTlQgVHJhbnNhY3Qgc3ViY29tbWFuZCBjb2RlcyAqLwogI2RlZmluZSBOVF9UUkFOU0FDVF9DUkVBVEUgICAgICAgICAgICAweDAxCiAjZGVmaW5lIE5UX1RSQU5TQUNUX0lPQ1RMICAgICAgICAgICAgIDB4MDIKQEAgLTMyOCwxMiArMzQxLDEzIEBACiAjZGVmaW5lIENSRUFURV9DT01QTEVURV9JRl9PUExLIDB4MDAwMDAxMDAJLyogc2hvdWxkIGJlIHplcm8gKi8KICNkZWZpbmUgQ1JFQVRFX05PX0VBX0tOT1dMRURHRSAgMHgwMDAwMDIwMAogI2RlZmluZSBDUkVBVEVfRUlHSFRfRE9UX1RIUkVFICAweDAwMDAwNDAwCS8qIGRvYyBzYXlzIHRoaXMgaXMgb2Jzb2xldGUKLQkJCQkJCSBvcGVuIGZvciByZWNvdmVyeSBmbGFnIC0gc2hvdWxkCi0JCQkJCQkgYmUgemVybyAqLworCQkJCQkJICJvcGVuIGZvciByZWNvdmVyeSIgZmxhZyAtIHNob3VsZAorCQkJCQkJIGJlIHplcm8gaW4gYW55IGNhc2UgKi8KKyNkZWZpbmUgQ1JFQVRFX09QRU5fRk9SX1JFQ09WRVJZIDB4MDAwMDA0MDAKICNkZWZpbmUgQ1JFQVRFX1JBTkRPTV9BQ0NFU1MJMHgwMDAwMDgwMAogI2RlZmluZSBDUkVBVEVfREVMRVRFX09OX0NMT1NFCTB4MDAwMDEwMDAKICNkZWZpbmUgQ1JFQVRFX09QRU5fQllfSUQgICAgICAgMHgwMDAwMjAwMAotI2RlZmluZSBDUkVBVEVfT1BFTl9CQUNLVVBfSU5UTiAweDAwMDA0MDAwCisjZGVmaW5lIENSRUFURV9PUEVOX0JBQ0tVUF9JTlRFTlQgMHgwMDAwNDAwMAogI2RlZmluZSBDUkVBVEVfTk9fQ09NUFJFU1NJT04gICAweDAwMDA4MDAwCiAjZGVmaW5lIENSRUFURV9SRVNFUlZFX09QRklMVEVSIDB4MDAxMDAwMDAJLyogc2hvdWxkIGJlIHplcm8gKi8KICNkZWZpbmUgT1BFTl9SRVBBUlNFX1BPSU5UCTB4MDAyMDAwMDAKQEAgLTcyMiw3ICs3MzYsNiBAQAogI2RlZmluZSBTTUJfQ1NDX0NBQ0hFX0FVVE9fUkVJTlQgICAweDAwMDQKICNkZWZpbmUgU01CX0NTQ19DQUNIRV9WRE8gICAgICAgICAgMHgwMDA4CiAjZGVmaW5lIFNNQl9DU0NfTk9fQ0FDSElORyAgICAgICAgIDB4MDAwQwotCiAjZGVmaW5lIFNNQl9VTklRVUVfRklMRV9OQU1FICAgIDB4MDAxMAogI2RlZmluZSBTTUJfRVhURU5ERURfU0lHTkFUVVJFUyAweDAwMjAKIApAQCAtODA2LDcgKzgxOSw3IEBACiAjZGVmaW5lIElDT1VOVF9NQVNLCQkweDAwRkYKICNkZWZpbmUgUElQRV9SRUFEX01PREUJCTB4MDEwMAogI2RlZmluZSBOQU1FRF9QSVBFX1RZUEUJCTB4MDQwMAotI2RlZmluZSBQSVBFX0VORF9QT0lOVAkJMHgwODAwCisjZGVmaW5lIFBJUEVfRU5EX1BPSU5UCQkweDQwMDAKICNkZWZpbmUgQkxPQ0tJTkdfTkFNRURfUElQRQkweDgwMDAKIAogdHlwZWRlZiBzdHJ1Y3Qgc21iX2NvbV9vcGVuX3JlcSB7CS8qIGFsc28gaGFuZGxlcyBjcmVhdGUgKi8KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc3NtYi5jIGIvZnMvY2lmcy9jaWZzc21iLmMKaW5kZXggZmI2NTViNC4uNDUxMWI3MCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzc21iLmMKKysrIGIvZnMvY2lmcy9jaWZzc21iLmMKQEAgLTE3MjgsNyArMTcyOCw3IEBACiB7CiAJaW50IHJjID0gMDsKIAlMT0NLX1JFUSAqcFNNQiA9IE5VTEw7Ci0JTE9DS19SU1AgKnBTTUJyID0gTlVMTDsKKy8qCUxPQ0tfUlNQICpwU01CciA9IE5VTEw7ICovIC8qIE5vIHJlc3BvbnNlIGRhdGEgb3RoZXIgdGhhbiByYyB0byBwYXJzZSAqLwogCWludCBieXRlc19yZXR1cm5lZDsKIAlpbnQgdGltZW91dCA9IDA7CiAJX191MTYgY291bnQ7CkBAIC0xNzM5LDggKzE3MzksNiBAQAogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCi0JcFNNQnIgPSAoTE9DS19SU1AgKilwU01COyAvKiBCQiByZW1vdmVtZSBCQiAqLwotCiAJaWYgKGxvY2tUeXBlID09IExPQ0tJTkdfQU5EWF9PUExPQ0tfUkVMRUFTRSkgewogCQl0aW1lb3V0ID0gQ0lGU19BU1lOQ19PUDsgLyogbm8gcmVzcG9uc2UgZXhwZWN0ZWQgKi8KIAkJcFNNQi0+VGltZW91dCA9IDA7CkBAIC0xNzc0LDcgKzE3NzIsNyBAQAogCiAJaWYgKHdhaXRGbGFnKSB7CiAJCXJjID0gU2VuZFJlY2VpdmVCbG9ja2luZ0xvY2soeGlkLCB0Y29uLCAoc3RydWN0IHNtYl9oZHIgKikgcFNNQiwKLQkJCShzdHJ1Y3Qgc21iX2hkciAqKSBwU01CciwgJmJ5dGVzX3JldHVybmVkKTsKKwkJCShzdHJ1Y3Qgc21iX2hkciAqKSBwU01CLCAmYnl0ZXNfcmV0dXJuZWQpOwogCQljaWZzX3NtYWxsX2J1Zl9yZWxlYXNlKHBTTUIpOwogCX0gZWxzZSB7CiAJCXJjID0gU2VuZFJlY2VpdmVOb1JzcCh4aWQsIHRjb24tPnNlcywgKHN0cnVjdCBzbWJfaGRyICopcFNNQiwKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY29ubmVjdC5jIGIvZnMvY2lmcy9jb25uZWN0LmMKaW5kZXggMDIzNDM0Zi4uZThmYTQ2YyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jb25uZWN0LmMKKysrIGIvZnMvY2lmcy9jb25uZWN0LmMKQEAgLTY1Myw2ICs2NTMsNyBAQAogCXNwaW5fbG9jaygmR2xvYmFsTWlkX0xvY2spOwogCXNlcnZlci0+dGNwU3RhdHVzID0gQ2lmc0V4aXRpbmc7CiAJc3Bpbl91bmxvY2soJkdsb2JhbE1pZF9Mb2NrKTsKKwl3YWtlX3VwX2FsbCgmc2VydmVyLT5yZXNwb25zZV9xKTsKIAogCS8qIGRvbid0IGV4aXQgdW50aWwga3RocmVhZF9zdG9wIGlzIGNhbGxlZCAqLwogCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKQEAgLTIxMjAsNiArMjEyMSwxMCBAQAogCQkJY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgfD0gQ0lGU19NT1VOVF9ESVJFQ1RfSU87CiAJCX0KIAorCQlpZiAoKHZvbHVtZV9pbmZvLmNpZnNfYWNsKSAmJiAodm9sdW1lX2luZm8uZHlucGVybSkpCisJCQljRVJST1IoMSwgKCJtb3VudCBvcHRpb24gZHlucGVybSBpZ25vcmVkIGlmIGNpZnNhY2wgIgorCQkJCSAgICJtb3VudCBvcHRpb24gc3VwcG9ydGVkIikpOworCiAJCXRjb24gPQogCQkgICAgZmluZF91bmMoc2luX3NlcnZlci5zaW5fYWRkci5zX2FkZHIsIHZvbHVtZV9pbmZvLlVOQywKIAkJCSAgICAgdm9sdW1lX2luZm8udXNlcm5hbWUpOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9kaXIuYyBiL2ZzL2NpZnMvZGlyLmMKaW5kZXggZjBiNWI1Zi4uZmI2OWMxZiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9kaXIuYworKysgYi9mcy9jaWZzL2Rpci5jCkBAIC0yNjAsNyArMjYwLDkgQEAKIAkJCQkJCSBidWYsIGlub2RlLT5pX3NiLCB4aWQsCiAJCQkJCQkgJmZpbGVIYW5kbGUpOwogCQkJaWYgKG5ld2lub2RlKSB7Ci0JCQkJbmV3aW5vZGUtPmlfbW9kZSA9IG1vZGU7CisJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKKwkJCQkgICAgQ0lGU19NT1VOVF9EWU5QRVJNKQorCQkJCQluZXdpbm9kZS0+aV9tb2RlID0gbW9kZTsKIAkJCQlpZiAoKG9wbG9jayAmIENJRlNfQ1JFQVRFX0FDVElPTikgJiYKIAkJCQkgICAgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkgICAgIENJRlNfTU9VTlRfU0VUX1VJRCkpIHsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvZmlsZS5jIGIvZnMvY2lmcy9maWxlLmMKaW5kZXggODYzNmNlYy4uMGFhYzgyNCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9maWxlLmMKKysrIGIvZnMvY2lmcy9maWxlLmMKQEAgLTU0Niw3ICs1NDYsNiBAQAogCQkJbXNsZWVwKHRpbWVvdXQpOwogCQkJdGltZW91dCAqPSA4OwogCQl9Ci0JCWtmcmVlKHBTTUJGaWxlLT5zZWFyY2hfcmVzdW1lX25hbWUpOwogCQlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOwogCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCX0gZWxzZQpAQCAtNjA1LDEyICs2MDQsNiBAQAogCQkJZWxzZQogCQkJCWNpZnNfYnVmX3JlbGVhc2UocHRtcCk7CiAJCX0KLQkJcHRtcCA9IHBDRmlsZVN0cnVjdC0+c2VhcmNoX3Jlc3VtZV9uYW1lOwotCQlpZiAocHRtcCkgewotCQkJY0ZZSSgxLCAoImNsb3NlZGlyIGZyZWUgcmVzdW1lIG5hbWUiKSk7Ci0JCQlwQ0ZpbGVTdHJ1Y3QtPnNlYXJjaF9yZXN1bWVfbmFtZSA9IE5VTEw7Ci0JCQlrZnJlZShwdG1wKTsKLQkJfQogCQlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOwogCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvaW5vZGUuYyBiL2ZzL2NpZnMvaW5vZGUuYwppbmRleCAxMjlkYmZlLi4yZTkwNGJkIDEwMDY0NAotLS0gYS9mcy9jaWZzL2lub2RlLmMKKysrIGIvZnMvY2lmcy9pbm9kZS5jCkBAIC0yMTksMTUgKzIxOSwxNSBAQAogCXJjID0gQ0lGU1NNQlVuaXhRUGF0aEluZm8oeGlkLCBwVGNvbiwgZnVsbF9wYXRoLCAmZmluZF9kYXRhLAogCQkJCSAgY2lmc19zYi0+bG9jYWxfbmxzLCBjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmCiAJCQkJCUNJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsKLQlpZiAocmMpIHsKLQkJaWYgKHJjID09IC1FUkVNT1RFICYmICFpc19kZnNfcmVmZXJyYWwpIHsKLQkJCWlzX2Rmc19yZWZlcnJhbCA9IHRydWU7Ci0JCQljRllJKERCRzIsICgiREZTIHJlZiIpKTsKLQkJCS8qIGZvciBERlMsIHNlcnZlciBkb2VzIG5vdCBnaXZlIHVzIHJlYWwgaW5vZGUgZGF0YSAqLwotCQkJZmlsbF9mYWtlX2ZpbmRkYXRhdW5peCgmZmluZF9kYXRhLCBzYik7Ci0JCQlyYyA9IDA7Ci0JCX0KLQl9CisJaWYgKHJjID09IC1FUkVNT1RFICYmICFpc19kZnNfcmVmZXJyYWwpIHsKKwkJaXNfZGZzX3JlZmVycmFsID0gdHJ1ZTsKKwkJY0ZZSShEQkcyLCAoIkRGUyByZWYiKSk7CisJCS8qIGZvciBERlMsIHNlcnZlciBkb2VzIG5vdCBnaXZlIHVzIHJlYWwgaW5vZGUgZGF0YSAqLworCQlmaWxsX2Zha2VfZmluZGRhdGF1bml4KCZmaW5kX2RhdGEsIHNiKTsKKwkJcmMgPSAwOworCX0gZWxzZSBpZiAocmMpCisJCWdvdG8gY2dpaXVfZXhpdDsKKwogCW51bV9vZl9ieXRlcyA9IGxlNjRfdG9fY3B1KGZpbmRfZGF0YS5OdW1PZkJ5dGVzKTsKIAllbmRfb2ZfZmlsZSA9IGxlNjRfdG9fY3B1KGZpbmRfZGF0YS5FbmRPZkZpbGUpOwogCkBAIC0yMzYsNyArMjM2LDcgQEAKIAkJKnBpbm9kZSA9IG5ld19pbm9kZShzYik7CiAJCWlmICgqcGlub2RlID09IE5VTEwpIHsKIAkJCXJjID0gLUVOT01FTTsKLQkJZ290byBjZ2lpdV9leGl0OworCQkJZ290byBjZ2lpdV9leGl0OwogCQl9CiAJCS8qIElzIGFuIGlfaW5vIG9mIHplcm8gbGVnYWw/ICovCiAJCS8qIG5vdGUgaW5vIGluY3JlbWVudGVkIHRvIHVuaXF1ZSBudW0gaW4gbmV3X2lub2RlICovCkBAIC00MTgsNiArNDE4LDcgQEAKIAljaGFyICpidWYgPSBOVUxMOwogCWJvb2wgYWRqdXN0VFogPSBmYWxzZTsKIAlib29sIGlzX2Rmc19yZWZlcnJhbCA9IGZhbHNlOworCXVtb2RlX3QgZGVmYXVsdF9tb2RlOwogCiAJcFRjb24gPSBjaWZzX3NiLT50Y29uOwogCWNGWUkoMSwgKCJHZXR0aW5nIGluZm8gb24gJXMiLCBmdWxsX3BhdGgpKTsKQEAgLTUzMCw0NyArNTMxLDQyIEBACiAJCWlub2RlLT5pX210aW1lLnR2X3NlYyArPSBwVGNvbi0+c2VzLT5zZXJ2ZXItPnRpbWVBZGo7CiAJfQogCi0JLyogc2V0IGRlZmF1bHQgbW9kZS4gd2lsbCBvdmVycmlkZSBmb3IgZGlycyBiZWxvdyAqLwotCWlmIChhdG9taWNfcmVhZCgmY2lmc0luZm8tPmluVXNlKSA9PSAwKQotCQkvKiBuZXcgaW5vZGUsIGNhbiBzYWZlbHkgc2V0IHRoZXNlIGZpZWxkcyAqLwotCQlpbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2ZpbGVfbW9kZTsKLQllbHNlIC8qIHNpbmNlIHdlIHNldCB0aGUgaW5vZGUgdHlwZSBiZWxvdyB3ZSBuZWVkIHRvIG1hc2sgb2ZmCi0JICAgICB0byBhdm9pZCBzdHJhbmdlIHJlc3VsdHMgaWYgdHlwZSBjaGFuZ2VzIGFuZCBib3RoCi0JICAgICBnZXQgb3JyZWQgaW4gKi8KLQkJaW5vZGUtPmlfbW9kZSAmPSB+U19JRk1UOwotLyoJaWYgKGF0dHIgJiBBVFRSX1JFUEFSU0UpICAqLwotCS8qIFdlIG5vIGxvbmdlciBoYW5kbGUgdGhlc2UgYXMgc3ltbGlua3MgYmVjYXVzZSB3ZSBjb3VsZCBub3QKLQkgICBmb2xsb3cgdGhlbSBkdWUgdG8gdGhlIGFic29sdXRlIHBhdGggd2l0aCBkcml2ZSBsZXR0ZXIgKi8KLQlpZiAoYXR0ciAmIEFUVFJfRElSRUNUT1JZKSB7Ci0JLyogb3ZlcnJpZGUgZGVmYXVsdCBwZXJtcyBzaW5jZSB3ZSBkbyBub3QgZG8gYnl0ZSByYW5nZSBsb2NraW5nCi0JICAgb24gZGlycyAqLwotCQlpbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2Rpcl9tb2RlOwotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7Ci0JfSBlbHNlIGlmICgoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSAmJgotCQkgICAoY2lmc0luZm8tPmNpZnNBdHRycyAmIEFUVFJfU1lTVEVNKSAmJgotCQkgICAvKiBObyBuZWVkIHRvIGxlNjQgY29udmVydCBzaXplIG9mIHplcm8gKi8KLQkJICAgKHBmaW5kRGF0YS0+RW5kT2ZGaWxlID09IDApKSB7Ci0JCWlub2RlLT5pX21vZGUgPSBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlOwotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZJRk87Ci0vKiBCQiBGaW5pc2ggZm9yIFNGVSBzdHlsZSBzeW1saW5rcyBhbmQgZGV2aWNlcyAqLwotCX0gZWxzZSBpZiAoKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9VTlhfRU1VTCkgJiYKLQkJICAgKGNpZnNJbmZvLT5jaWZzQXR0cnMgJiBBVFRSX1NZU1RFTSkpIHsKLQkJaWYgKGRlY29kZV9zZnVfaW5vZGUoaW5vZGUsIGxlNjRfdG9fY3B1KHBmaW5kRGF0YS0+RW5kT2ZGaWxlKSwKLQkJCQkgICAgIGZ1bGxfcGF0aCwgY2lmc19zYiwgeGlkKSkKLQkJCWNGWUkoMSwgKCJVbnJlY29nbml6ZWQgc2Z1IGlub2RlIHR5cGUiKSk7CisJLyogZ2V0IGRlZmF1bHQgaW5vZGUgbW9kZSAqLworCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpCisJCWRlZmF1bHRfbW9kZSA9IGNpZnNfc2ItPm1udF9kaXJfbW9kZTsKKwllbHNlCisJCWRlZmF1bHRfbW9kZSA9IGNpZnNfc2ItPm1udF9maWxlX21vZGU7CiAKLQkJY0ZZSSgxLCAoInNmdSBtb2RlIDAlbyIsIGlub2RlLT5pX21vZGUpKTsKKwkvKiBzZXQgcGVybWlzc2lvbiBiaXRzICovCisJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDAgfHwKKwkgICAgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9EWU5QRVJNKSA9PSAwKQorCQlpbm9kZS0+aV9tb2RlID0gZGVmYXVsdF9tb2RlOworCWVsc2UgeworCQkvKiBqdXN0IHJlZW5hYmxlIHdyaXRlIGJpdHMgaWYgIUFUVFJfUkVBRE9OTFkgKi8KKwkJaWYgKChpbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCAmJgorCQkgICAgKGF0dHIgJiBBVFRSX1JFQURPTkxZKSA9PSAwKQorCQkJaW5vZGUtPmlfbW9kZSB8PSAoU19JV1VHTyAmIGRlZmF1bHRfbW9kZSk7CisJCQlpbm9kZS0+aV9tb2RlICY9IH5TX0lGTVQ7CisJfQorCS8qIGNsZWFyIHdyaXRlIGJpdHMgaWYgQVRUUl9SRUFET05MWSBpcyBzZXQgKi8KKwlpZiAoYXR0ciAmIEFUVFJfUkVBRE9OTFkpCisJCWlub2RlLT5pX21vZGUgJj0gflNfSVdVR087CisKKwkvKiBzZXQgaW5vZGUgdHlwZSAqLworCWlmICgoYXR0ciAmIEFUVFJfU1lTVEVNKSAmJgorCSAgICAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSkgeworCQkvKiBubyBuZWVkIHRvIGZpeCBlbmRpYW5uZXNzIG9uIDAgKi8KKwkJaWYgKHBmaW5kRGF0YS0+RW5kT2ZGaWxlID09IDApCisJCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZJRk87CisJCWVsc2UgaWYgKGRlY29kZV9zZnVfaW5vZGUoaW5vZGUsCisJCQkJbGU2NF90b19jcHUocGZpbmREYXRhLT5FbmRPZkZpbGUpLAorCQkJCWZ1bGxfcGF0aCwgY2lmc19zYiwgeGlkKSkKKwkJCWNGWUkoMSwgKCJ1bmtub3duIFNGVSBmaWxlIHR5cGVcbiIpKTsKIAl9IGVsc2UgewotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZSRUc7Ci0JCS8qIHRyZWF0IGRvcyBhdHRyaWJ1dGUgb2YgcmVhZC1vbmx5IGFzIHJlYWQtb25seSBtb2RlIGVnIDU1NSAqLwotCQlpZiAoY2lmc0luZm8tPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpCi0JCQlpbm9kZS0+aV9tb2RlICY9IH4oU19JV1VHTyk7Ci0JCWVsc2UgaWYgKChpbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCkKLQkJCS8qIHRoZSBBVFRSX1JFQURPTkxZIGZsYWcgbWF5IGhhdmUgYmVlbgkqLwotCQkJLyogY2hhbmdlZCBvbiBzZXJ2ZXIgLS0gc2V0IGFueSB3IGJpdHMJKi8KLQkJCS8qIGFsbG93ZWQgYnkgbW50X2ZpbGVfbW9kZQkJKi8KLQkJCWlub2RlLT5pX21vZGUgfD0gKFNfSVdVR08gJiBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlKTsKLQkvKiBCQiBhZGQgY29kZSB0byB2YWxpZGF0ZSBpZiBkZXZpY2Ugb3Igd2VpcmQgc2hhcmUgb3IgZGV2aWNlIHR5cGU/ICovCisJCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpCisJCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCWVsc2UKKwkJCWlub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKIAl9CiAKIAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwpAQCAtMTAxOSw4ICsxMDE1LDExIEBACiAJCQkJCQlDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAJCQl9CiAJCQlpZiAoZGlyZW50cnktPmRfaW5vZGUpIHsKLQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlID0gbW9kZTsKLQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKKwkJCQkgICAgIENJRlNfTU9VTlRfRFlOUEVSTSkKKwkJCQkJZGlyZW50cnktPmRfaW5vZGUtPmlfbW9kZSA9CisJCQkJCQkobW9kZSB8IFNfSUZESVIpOworCiAJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkgICAgIENJRlNfTU9VTlRfU0VUX1VJRCkgewogCQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV91aWQgPQpAQCAtMTU0NywxMyArMTU0NiwyNiBAQAogCQl9IGVsc2UKIAkJCWdvdG8gY2lmc19zZXRhdHRyX2V4aXQ7CiAJfQotCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX1VJRCkgewotCQljRllJKDEsICgiVUlEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfdWlkKSk7Ci0JCXVpZCA9IGF0dHJzLT5pYV91aWQ7Ci0JfQotCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgewotCQljRllJKDEsICgiR0lEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfZ2lkKSk7Ci0JCWdpZCA9IGF0dHJzLT5pYV9naWQ7CisKKwkvKgorCSAqIFdpdGhvdXQgdW5peCBleHRlbnNpb25zIHdlIGNhbid0IHNlbmQgb3duZXJzaGlwIGNoYW5nZXMgdG8gdGhlCisJICogc2VydmVyLCBzbyBzaWxlbnRseSBpZ25vcmUgdGhlbS4gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93CisJICogbG9jYWwgRE9TL1dpbmRvd3MgZmlsZXN5c3RlbXMgYmVoYXZlIChWRkFULCBOVEZTLCBldGMpLiBXaXRoCisJICogQ0lGU0FDTCBzdXBwb3J0ICsgcHJvcGVyIFdpbmRvd3MgdG8gVW5peCBpZG1hcHBpbmcsIHdlIG1heSBiZQorCSAqIGFibGUgdG8gc3VwcG9ydCB0aGlzIGluIHRoZSBmdXR1cmUuCisJICovCisJaWYgKCFwVGNvbi0+dW5peF9leHQgJiYKKwkgICAgIShjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfU0VUX1VJRCkpIHsKKwkJYXR0cnMtPmlhX3ZhbGlkICY9IH4oQVRUUl9VSUQgfCBBVFRSX0dJRCk7CisJfSBlbHNlIHsKKwkJaWYgKGF0dHJzLT5pYV92YWxpZCAmIEFUVFJfVUlEKSB7CisJCQljRllJKDEsICgiVUlEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfdWlkKSk7CisJCQl1aWQgPSBhdHRycy0+aWFfdWlkOworCQl9CisJCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgeworCQkJY0ZZSSgxLCAoIkdJRCBjaGFuZ2VkIHRvICVkIiwgYXR0cnMtPmlhX2dpZCkpOworCQkJZ2lkID0gYXR0cnMtPmlhX2dpZDsKKwkJfQogCX0KIAogCXRpbWVfYnVmLkF0dHJpYnV0ZXMgPSAwOwpAQCAtMTU2Myw3ICsxNTc1LDcgQEAKIAkJYXR0cnMtPmlhX3ZhbGlkICY9IH5BVFRSX01PREU7CiAKIAlpZiAoYXR0cnMtPmlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7Ci0JCWNGWUkoMSwgKCJNb2RlIGNoYW5nZWQgdG8gMHgleCIsIGF0dHJzLT5pYV9tb2RlKSk7CisJCWNGWUkoMSwgKCJNb2RlIGNoYW5nZWQgdG8gMCVvIiwgYXR0cnMtPmlhX21vZGUpKTsKIAkJbW9kZSA9IGF0dHJzLT5pYV9tb2RlOwogCX0KIApAQCAtMTU3OCwxOCArMTU5MCwxOCBAQAogI2lmZGVmIENPTkZJR19DSUZTX0VYUEVSSU1FTlRBTAogCQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0NJRlNfQUNMKQogCQkJcmMgPSBtb2RlX3RvX2FjbChpbm9kZSwgZnVsbF9wYXRoLCBtb2RlKTsKLQkJZWxzZSBpZiAoKG1vZGUgJiBTX0lXVUdPKSA9PSAwKSB7Ci0jZWxzZQotCQlpZiAoKG1vZGUgJiBTX0lXVUdPKSA9PSAwKSB7CisJCWVsc2UKICNlbmRpZgotCQkJLyogbm90IHdyaXRlYWJsZSAqLwotCQkJaWYgKChjaWZzSW5vZGUtPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpID09IDApIHsKLQkJCQlzZXRfZG9zYXR0ciA9IHRydWU7Ci0JCQkJdGltZV9idWYuQXR0cmlidXRlcyA9Ci0JCQkJCWNwdV90b19sZTMyKGNpZnNJbm9kZS0+Y2lmc0F0dHJzIHwKLQkJCQkJCSAgICBBVFRSX1JFQURPTkxZKTsKLQkJCX0KLQkJfSBlbHNlIGlmIChjaWZzSW5vZGUtPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpIHsKKwkJaWYgKCgobW9kZSAmIFNfSVdVR08pID09IDApICYmCisJCSAgICAoY2lmc0lub2RlLT5jaWZzQXR0cnMgJiBBVFRSX1JFQURPTkxZKSA9PSAwKSB7CisJCQlzZXRfZG9zYXR0ciA9IHRydWU7CisJCQl0aW1lX2J1Zi5BdHRyaWJ1dGVzID0gY3B1X3RvX2xlMzIoY2lmc0lub2RlLT5jaWZzQXR0cnMgfAorCQkJCQkJCSAgQVRUUl9SRUFET05MWSk7CisJCQkvKiBmaXggdXAgbW9kZSBpZiB3ZSdyZSBub3QgdXNpbmcgZHlucGVybSAqLworCQkJaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRFlOUEVSTSkgPT0gMCkKKwkJCQlhdHRycy0+aWFfbW9kZSA9IGlub2RlLT5pX21vZGUgJiB+U19JV1VHTzsKKwkJfSBlbHNlIGlmICgobW9kZSAmIFNfSVdVR08pICYmCisJCQkgICAoY2lmc0lub2RlLT5jaWZzQXR0cnMgJiBBVFRSX1JFQURPTkxZKSkgewogCQkJLyogSWYgZmlsZSBpcyByZWFkb25seSBvbiBzZXJ2ZXIsIHdlIHdvdWxkCiAJCQlub3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdCAtIHNvIGlmIGFueSB3cml0ZQogCQkJYml0IGlzIGVuYWJsZWQgZm9yIHVzZXIgb3IgZ3JvdXAgb3Igb3RoZXIgd2UKQEAgLTE2MDAsNiArMTYxMiwyMCBAQAogCQkJLyogV2luZG93cyBpZ25vcmVzIHNldCB0byB6ZXJvICovCiAJCQlpZiAodGltZV9idWYuQXR0cmlidXRlcyA9PSAwKQogCQkJCXRpbWVfYnVmLkF0dHJpYnV0ZXMgfD0gY3B1X3RvX2xlMzIoQVRUUl9OT1JNQUwpOworCisJCQkvKiByZXNldCBsb2NhbCBpbm9kZSBwZXJtaXNzaW9ucyB0byBub3JtYWwgKi8KKwkJCWlmICghKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9EWU5QRVJNKSkgeworCQkJCWF0dHJzLT5pYV9tb2RlICY9IH4oU19JQUxMVUdPKTsKKwkJCQlpZiAoU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJCQkJYXR0cnMtPmlhX21vZGUgfD0KKwkJCQkJCWNpZnNfc2ItPm1udF9kaXJfbW9kZTsKKwkJCQllbHNlCisJCQkJCWF0dHJzLT5pYV9tb2RlIHw9CisJCQkJCQljaWZzX3NiLT5tbnRfZmlsZV9tb2RlOworCQkJfQorCQl9IGVsc2UgaWYgKCEoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0RZTlBFUk0pKSB7CisJCQkvKiBpZ25vcmUgbW9kZSBjaGFuZ2UgLSBBVFRSX1JFQURPTkxZIGhhc24ndCBjaGFuZ2VkICovCisJCQlhdHRycy0+aWFfdmFsaWQgJj0gfkFUVFJfTU9ERTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9taXNjLmMgYi9mcy9jaWZzL21pc2MuYwppbmRleCAxZDY5YjgwLi40YjE3ZjhmIDEwMDY0NAotLS0gYS9mcy9jaWZzL21pc2MuYworKysgYi9mcy9jaWZzL21pc2MuYwpAQCAtNTE5LDggKzUxOSw3IEBACiAJCQlwbm90aWZ5ID0gKHN0cnVjdCBmaWxlX25vdGlmeV9pbmZvcm1hdGlvbiAqKQogCQkJCSgoY2hhciAqKSZwU01Cci0+aGRyLlByb3RvY29sICsgZGF0YV9vZmZzZXQpOwogCQkJY0ZZSSgxLCAoImRub3RpZnkgb24gJXMgQWN0aW9uOiAweCV4IiwKLQkJCQkgcG5vdGlmeS0+RmlsZU5hbWUsCi0JCQkJcG5vdGlmeS0+QWN0aW9uKSk7ICAvKiBCQiByZW1vdmVtZSBCQiAqLworCQkJCSBwbm90aWZ5LT5GaWxlTmFtZSwgcG5vdGlmeS0+QWN0aW9uKSk7CiAJCQkvKiAgIGNpZnNfZHVtcF9tZW0oIlJjdmQgbm90aWZ5IERhdGE6ICIsYnVmLAogCQkJCXNpemVvZihzdHJ1Y3Qgc21iX2hkcikrNjApOyAqLwogCQkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9mcy9jaWZzL3JlYWRkaXIuYyBiL2ZzL2NpZnMvcmVhZGRpci5jCmluZGV4IDcxM2MyNTEuLjgzZjMwNjkgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvcmVhZGRpci5jCisrKyBiL2ZzL2NpZnMvcmVhZGRpci5jCkBAIC0xMzIsNiArMTMyLDcgQEAKIAlfX3UzMiBhdHRyOwogCV9fdTY0IGFsbG9jYXRpb25fc2l6ZTsKIAlfX3U2NCBlbmRfb2ZfZmlsZTsKKwl1bW9kZV90IGRlZmF1bHRfbW9kZTsKIAogCS8qIHNhdmUgbXRpbWUgYW5kIHNpemUgKi8KIAlsb2NhbF9tdGltZSA9IHRtcF9pbm9kZS0+aV9tdGltZTsKQEAgLTE4Nyw0OCArMTg4LDU0IEBACiAJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApIHsKIAkJdG1wX2lub2RlLT5pX3VpZCA9IGNpZnNfc2ItPm1udF91aWQ7CiAJCXRtcF9pbm9kZS0+aV9naWQgPSBjaWZzX3NiLT5tbnRfZ2lkOwotCQkvKiBzZXQgZGVmYXVsdCBtb2RlLiB3aWxsIG92ZXJyaWRlIGZvciBkaXJzIGJlbG93ICovCi0JCXRtcF9pbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2ZpbGVfbW9kZTsKLQl9IGVsc2UgewotCQkvKiBtYXNrIG9mZiB0aGUgdHlwZSBiaXRzIHNpbmNlIGl0IGdldHMgc2V0Ci0JCWJlbG93IGFuZCB3ZSBkbyBub3Qgd2FudCB0byBnZXQgdHdvIHR5cGUKLQkJYml0cyBzZXQgKi8KKwl9CisKKwlpZiAoYXR0ciAmIEFUVFJfRElSRUNUT1JZKQorCQlkZWZhdWx0X21vZGUgPSBjaWZzX3NiLT5tbnRfZGlyX21vZGU7CisJZWxzZQorCQlkZWZhdWx0X21vZGUgPSBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlOworCisJLyogc2V0IGluaXRpYWwgcGVybWlzc2lvbnMgKi8KKwlpZiAoKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApIHx8CisJICAgIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRFlOUEVSTSkgPT0gMCkKKwkJdG1wX2lub2RlLT5pX21vZGUgPSBkZWZhdWx0X21vZGU7CisJZWxzZSB7CisJCS8qIGp1c3QgcmVlbmFibGUgd3JpdGUgYml0cyBpZiAhQVRUUl9SRUFET05MWSAqLworCQlpZiAoKHRtcF9pbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCAmJgorCQkgICAgKGF0dHIgJiBBVFRSX1JFQURPTkxZKSA9PSAwKQorCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gKFNfSVdVR08gJiBkZWZhdWx0X21vZGUpOworCiAJCXRtcF9pbm9kZS0+aV9tb2RlICY9IH5TX0lGTVQ7CiAJfQogCi0JaWYgKGF0dHIgJiBBVFRSX0RJUkVDVE9SWSkgewotCQkqcG9iamVjdF90eXBlID0gRFRfRElSOwotCQkvKiBvdmVycmlkZSBkZWZhdWx0IHBlcm1zIHNpbmNlIHdlIGRvIG5vdCBsb2NrIGRpcnMgKi8KLQkJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApCi0JCQl0bXBfaW5vZGUtPmlfbW9kZSA9IGNpZnNfc2ItPm1udF9kaXJfbW9kZTsKLQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRkRJUjsKLQl9IGVsc2UgaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfVU5YX0VNVUwpICYmCi0JCSAgIChhdHRyICYgQVRUUl9TWVNURU0pKSB7CisJLyogY2xlYXIgd3JpdGUgYml0cyBpZiBBVFRSX1JFQURPTkxZIGlzIHNldCAqLworCWlmIChhdHRyICYgQVRUUl9SRUFET05MWSkKKwkJdG1wX2lub2RlLT5pX21vZGUgJj0gflNfSVdVR087CisKKwkvKiBzZXQgaW5vZGUgdHlwZSAqLworCWlmICgoYXR0ciAmIEFUVFJfU1lTVEVNKSAmJgorCSAgICAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSkgewogCQlpZiAoZW5kX29mX2ZpbGUgPT0gMCkgIHsKLQkJCSpwb2JqZWN0X3R5cGUgPSBEVF9GSUZPOwogCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRklGTzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9GSUZPOwogCQl9IGVsc2UgewotCQkJLyogcmF0aGVyIHRoYW4gZ2V0IHRoZSB0eXBlIGhlcmUsIHdlIG1hcmsgdGhlCi0JCQlpbm9kZSBhcyBuZWVkaW5nIHJldmFsaWRhdGUgYW5kIGdldCB0aGUgcmVhbCB0eXBlCi0JCQkoYmxrIHZzIGNociB2cy4gc3ltbGluaykgbGF0ZXIgaWUgaW4gbG9va3VwICovCi0JCQkqcG9iamVjdF90eXBlID0gRFRfUkVHOworCQkJLyoKKwkJCSAqIHRyeWluZyB0byBnZXQgdGhlIHR5cGUgY2FuIGJlIHNsb3csIHNvIGp1c3QgY2FsbAorCQkJICogdGhpcyBhIHJlZ3VsYXIgZmlsZSBmb3Igbm93LCBhbmQgbWFyayBmb3IgcmV2YWwKKwkJCSAqLwogCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9SRUc7CiAJCQljaWZzSW5mby0+dGltZSA9IDA7CiAJCX0KLS8qIHdlIG5vIGxvbmdlciBtYXJrIHRoZXNlIGJlY2F1c2Ugd2UgY291bGQgbm90IGZvbGxvdyB0aGVtICovCi0vKiAgICAgICAgfSBlbHNlIGlmIChhdHRyICYgQVRUUl9SRVBBUlNFKSB7Ci0JCSpwb2JqZWN0X3R5cGUgPSBEVF9MTks7Ci0JCXRtcF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZMTks7ICovCiAJfSBlbHNlIHsKLQkJKnBvYmplY3RfdHlwZSA9IERUX1JFRzsKLQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKLQkJaWYgKGF0dHIgJiBBVFRSX1JFQURPTkxZKQotCQkJdG1wX2lub2RlLT5pX21vZGUgJj0gfihTX0lXVUdPKTsKLQkJZWxzZSBpZiAoKHRtcF9pbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCkKLQkJCS8qIHRoZSBBVFRSX1JFQURPTkxZIGZsYWcgbWF5IGhhdmUgYmVlbiBjaGFuZ2VkIG9uICAgKi8KLQkJCS8qIHNlcnZlciAtLSBzZXQgYW55IHcgYml0cyBhbGxvd2VkIGJ5IG1udF9maWxlX21vZGUgKi8KLQkJCXRtcF9pbm9kZS0+aV9tb2RlIHw9IChTX0lXVUdPICYgY2lmc19zYi0+bW50X2ZpbGVfbW9kZSk7Ci0JfSAvKiBjb3VsZCBhZGQgY29kZSBoZXJlIC0gdG8gdmFsaWRhdGUgaWYgZGV2aWNlIG9yIHdlaXJkIHNoYXJlIHR5cGU/ICovCisJCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpIHsKKwkJCXRtcF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCQkqcG9iamVjdF90eXBlID0gRFRfRElSOworCQl9IGVsc2UgeworCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9SRUc7CisJCX0KKwl9CiAKIAkvKiBjYW4gbm90IGZpbGwgaW4gbmxpbmsgaGVyZSBhcyBpbiBxcGF0aGluZm8gdmVyc2lvbiBhbmQgVW54IHNlYXJjaCAqLwogCWlmIChhdG9taWNfcmVhZCgmY2lmc0luZm8tPmluVXNlKSA9PSAwKQpAQCAtNjc1LDggKzY4Miw2IEBACiAJCQljaWZzRmlsZS0+aW52YWxpZEhhbmRsZSA9IHRydWU7CiAJCQlDSUZTRmluZENsb3NlKHhpZCwgcFRjb24sIGNpZnNGaWxlLT5uZXRmaWQpOwogCQl9Ci0JCWtmcmVlKGNpZnNGaWxlLT5zZWFyY2hfcmVzdW1lX25hbWUpOwotCQljaWZzRmlsZS0+c2VhcmNoX3Jlc3VtZV9uYW1lID0gTlVMTDsKIAkJaWYgKGNpZnNGaWxlLT5zcmNoX2luZi5udHdya19idWZfc3RhcnQpIHsKIAkJCWNGWUkoMSwgKCJmcmVlaW5nIFNNQiBmZiBjYWNoZSBidWYgb24gc2VhcmNoIHJld2luZCIpKTsKIAkJCWlmIChjaWZzRmlsZS0+c3JjaF9pbmYuc21hbGxCdWYpCkBAIC0xMDQzLDkgKzEwNDgsNyBAQAogCQl9IC8qIGVsc2UgewogCQkJY2lmc0ZpbGUtPmludmFsaWRIYW5kbGUgPSB0cnVlOwogCQkJQ0lGU0ZpbmRDbG9zZSh4aWQsIHBUY29uLCBjaWZzRmlsZS0+bmV0ZmlkKTsKLQkJfQotCQlrZnJlZShjaWZzRmlsZS0+c2VhcmNoX3Jlc3VtZV9uYW1lKTsKLQkJY2lmc0ZpbGUtPnNlYXJjaF9yZXN1bWVfbmFtZSA9IE5VTEw7ICovCisJCX0gKi8KIAogCQlyYyA9IGZpbmRfY2lmc19lbnRyeSh4aWQsIHBUY29uLCBmaWxlLAogCQkJCSZjdXJyZW50X2VudHJ5LCAmbnVtX3RvX2ZpbGwpOwpkaWZmIC0tZ2l0IGEvZnMvZGNhY2hlLmMgYi9mcy9kY2FjaGUuYwppbmRleCAzZWU1ODhkNS4uNjA2OGMyNSAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZnNub3RpZnkuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC0xMDYsOSArMTA3LDEwIEBACiAvKgogICogUmVsZWFzZSB0aGUgZGVudHJ5J3MgaW5vZGUsIHVzaW5nIHRoZSBmaWxlc3lzdGVtCiAgKiBkX2lwdXQoKSBvcGVyYXRpb24gaWYgZGVmaW5lZC4KLSAqIENhbGxlZCB3aXRoIGRjYWNoZV9sb2NrIGFuZCBwZXIgZGVudHJ5IGxvY2sgaGVsZCwgZHJvcHMgYm90aC4KICAqLwogc3RhdGljIHZvaWQgZGVudHJ5X2lwdXQoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKKwlfX3JlbGVhc2VzKGRlbnRyeS0+ZF9sb2NrKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlpZiAoaW5vZGUpIHsKQEAgLTEzMiwxMiArMTM0LDEzIEBACiAgKiBkX2tpbGwgLSBraWxsIGRlbnRyeSBhbmQgcmV0dXJuIHBhcmVudAogICogQGRlbnRyeTogZGVudHJ5IHRvIGtpbGwKICAqCi0gKiBDYWxsZWQgd2l0aCBkY2FjaGVfbG9jayBhbmQgZF9sb2NrLCByZWxlYXNlcyBib3RoLiAgVGhlIGRlbnRyeSBtdXN0Ci0gKiBhbHJlYWR5IGJlIHVuaGFzaGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIExSVS4KKyAqIFRoZSBkZW50cnkgbXVzdCBhbHJlYWR5IGJlIHVuaGFzaGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIExSVS4KICAqCiAgKiBJZiB0aGlzIGlzIHRoZSByb290IG9mIHRoZSBkZW50cnkgdHJlZSwgcmV0dXJuIE5VTEwuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkX2tpbGwoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorCV9fcmVsZWFzZXMoZGVudHJ5LT5kX2xvY2spCisJX19yZWxlYXNlcyhkY2FjaGVfbG9jaykKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQ7CiAKQEAgLTM4MywxMSArMzg2LDExIEBACiAgKiBUcnkgdG8gcHJ1bmUgYW5jZXN0b3JzIGFzIHdlbGwuICBUaGlzIGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50CiAgKiBxdWFkcmF0aWMgYmVoYXZpb3Igb2Ygc2hyaW5rX2RjYWNoZV9wYXJlbnQoKSwgYnV0IGlzIGFsc28gZXhwZWN0ZWQKICAqIHRvIGJlIGJlbmVmaWNpYWwgaW4gcmVkdWNpbmcgZGVudHJ5IGNhY2hlIGZyYWdtZW50YXRpb24uCi0gKgotICogQ2FsbGVkIHdpdGggZGNhY2hlX2xvY2ssIGRyb3BzIGl0IGFuZCB0aGVuIHJlZ2FpbnMuCi0gKiBDYWxsZWQgd2l0aCBkZW50cnktPmRfbG9jayBoZWxkLCBkcm9wcyBpdC4KICAqLwogc3RhdGljIHZvaWQgcHJ1bmVfb25lX2RlbnRyeShzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5KQorCV9fcmVsZWFzZXMoZGVudHJ5LT5kX2xvY2spCisJX19yZWxlYXNlcyhkY2FjaGVfbG9jaykKKwlfX2FjcXVpcmVzKGRjYWNoZV9sb2NrKQogewogCV9fZF9kcm9wKGRlbnRyeSk7CiAJZGVudHJ5ID0gZF9raWxsKGRlbnRyeSk7CkBAIC0xNjA0LDEwICsxNjA3LDkgQEAKICAqCiAgKiBOb3RlOiBJZiBldmVyIHRoZSBsb2NraW5nIGluIGxvY2tfcmVuYW1lKCkgY2hhbmdlcywgdGhlbiBwbGVhc2UKICAqIHJlbWVtYmVyIHRvIHVwZGF0ZSB0aGlzIHRvby4uLgotICoKLSAqIE9uIHJldHVybiwgZGNhY2hlX2xvY2sgd2lsbCBoYXZlIGJlZW4gdW5sb2NrZWQuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpfX2RfdW5hbGlhcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBkZW50cnkgKmFsaWFzKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCiB7CiAJc3RydWN0IG11dGV4ICptMSA9IE5VTEwsICptMiA9IE5VTEw7CiAJc3RydWN0IGRlbnRyeSAqcmV0OwpAQCAtMTc0MywxMSArMTc0NSw5IEBACiBzaG91bGRudF9iZV9oYXNoZWQ6CiAJc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsKIAlCVUcoKTsKLQlnb3RvIHNob3VsZG50X2JlX2hhc2hlZDsKIH0KIAotc3RhdGljIGludCBwcmVwZW5kKGNoYXIgKipidWZmZXIsIGludCAqYnVmbGVuLCBjb25zdCBjaGFyICpzdHIsCi0JCQkgIGludCBuYW1lbGVuKQorc3RhdGljIGludCBwcmVwZW5kKGNoYXIgKipidWZmZXIsIGludCAqYnVmbGVuLCBjb25zdCBjaGFyICpzdHIsIGludCBuYW1lbGVuKQogewogCSpidWZsZW4gLT0gbmFtZWxlbjsKIAlpZiAoKmJ1ZmxlbiA8IDApCkBAIC0xNzU3LDggKzE3NTcsMTMgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwcmVwZW5kX25hbWUoY2hhciAqKmJ1ZmZlciwgaW50ICpidWZsZW4sIHN0cnVjdCBxc3RyICpuYW1lKQoreworCXJldHVybiBwcmVwZW5kKGJ1ZmZlciwgYnVmbGVuLCBuYW1lLT5uYW1lLCBuYW1lLT5sZW4pOworfQorCiAvKioKLSAqIGRfcGF0aCAtIHJldHVybiB0aGUgcGF0aCBvZiBhIGRlbnRyeQorICogX19kX3BhdGggLSByZXR1cm4gdGhlIHBhdGggb2YgYSBkZW50cnkKICAqIEBwYXRoOiB0aGUgZGVudHJ5L3Zmc21vdW50IHRvIHJlcG9ydAogICogQHJvb3Q6IHJvb3QgdmZzbW50L2RlbnRyeSAobWF5IGJlIG1vZGlmaWVkIGJ5IHRoaXMgZnVuY3Rpb24pCiAgKiBAYnVmZmVyOiBidWZmZXIgdG8gcmV0dXJuIHZhbHVlIGluCkBAIC0xNzc5LDkgKzE3ODQsMTAgQEAKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBwYXRoLT5kZW50cnk7CiAJc3RydWN0IHZmc21vdW50ICp2ZnNtbnQgPSBwYXRoLT5tbnQ7Ci0JY2hhciAqIGVuZCA9IGJ1ZmZlcitidWZsZW47Ci0JY2hhciAqIHJldHZhbDsKKwljaGFyICplbmQgPSBidWZmZXIgKyBidWZsZW47CisJY2hhciAqcmV0dmFsOwogCisJc3Bpbl9sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAlwcmVwZW5kKCZlbmQsICZidWZsZW4sICJcMCIsIDEpOwogCWlmICghSVNfUk9PVChkZW50cnkpICYmIGRfdW5oYXNoZWQoZGVudHJ5KSAmJgogCQkocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCAiIChkZWxldGVkKSIsIDEwKSAhPSAwKSkKQEAgLTE4MDAsMzggKzE4MDYsMzcgQEAKIAkJCWJyZWFrOwogCQlpZiAoZGVudHJ5ID09IHZmc21udC0+bW50X3Jvb3QgfHwgSVNfUk9PVChkZW50cnkpKSB7CiAJCQkvKiBHbG9iYWwgcm9vdD8gKi8KLQkJCXNwaW5fbG9jaygmdmZzbW91bnRfbG9jayk7CiAJCQlpZiAodmZzbW50LT5tbnRfcGFyZW50ID09IHZmc21udCkgewotCQkJCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAkJCQlnb3RvIGdsb2JhbF9yb290OwogCQkJfQogCQkJZGVudHJ5ID0gdmZzbW50LT5tbnRfbW91bnRwb2ludDsKIAkJCXZmc21udCA9IHZmc21udC0+bW50X3BhcmVudDsKLQkJCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXBhcmVudCA9IGRlbnRyeS0+ZF9wYXJlbnQ7CiAJCXByZWZldGNoKHBhcmVudCk7Ci0JCWlmICgocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCBkZW50cnktPmRfbmFtZS5uYW1lLAotCQkJCWRlbnRyeS0+ZF9uYW1lLmxlbikgIT0gMCkgfHwKKwkJaWYgKChwcmVwZW5kX25hbWUoJmVuZCwgJmJ1ZmxlbiwgJmRlbnRyeS0+ZF9uYW1lKSAhPSAwKSB8fAogCQkgICAgKHByZXBlbmQoJmVuZCwgJmJ1ZmxlbiwgIi8iLCAxKSAhPSAwKSkKIAkJCWdvdG8gRWxvbmc7CiAJCXJldHZhbCA9IGVuZDsKIAkJZGVudHJ5ID0gcGFyZW50OwogCX0KIAorb3V0OgorCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAlyZXR1cm4gcmV0dmFsOwogCiBnbG9iYWxfcm9vdDoKIAlyZXR2YWwgKz0gMTsJLyogaGl0IHRoZSBzbGFzaCAqLwotCWlmIChwcmVwZW5kKCZyZXR2YWwsICZidWZsZW4sIGRlbnRyeS0+ZF9uYW1lLm5hbWUsCi0JCSAgICBkZW50cnktPmRfbmFtZS5sZW4pICE9IDApCisJaWYgKHByZXBlbmRfbmFtZSgmcmV0dmFsLCAmYnVmbGVuLCAmZGVudHJ5LT5kX25hbWUpICE9IDApCiAJCWdvdG8gRWxvbmc7CiAJcm9vdC0+bW50ID0gdmZzbW50OwogCXJvb3QtPmRlbnRyeSA9IGRlbnRyeTsKLQlyZXR1cm4gcmV0dmFsOworCWdvdG8gb3V0OworCiBFbG9uZzoKLQlyZXR1cm4gRVJSX1BUUigtRU5BTUVUT09MT05HKTsKKwlyZXR2YWwgPSBFUlJfUFRSKC1FTkFNRVRPT0xPTkcpOworCWdvdG8gb3V0OwogfQogCiAvKioKQEAgLTE4NDUsOSArMTg1MCw5IEBACiAgKgogICogUmV0dXJucyB0aGUgYnVmZmVyIG9yIGFuIGVycm9yIGNvZGUgaWYgdGhlIHBhdGggd2FzIHRvbyBsb25nLgogICoKLSAqICJidWZsZW4iIHNob3VsZCBiZSBwb3NpdGl2ZS4gQ2FsbGVyIGhvbGRzIHRoZSBkY2FjaGVfbG9jay4KKyAqICJidWZsZW4iIHNob3VsZCBiZSBwb3NpdGl2ZS4KICAqLwotY2hhciAqZF9wYXRoKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICpidWYsIGludCBidWZsZW4pCitjaGFyICpkX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKmJ1ZiwgaW50IGJ1ZmxlbikKIHsKIAljaGFyICpyZXM7CiAJc3RydWN0IHBhdGggcm9vdDsKQEAgLTE5MTUsMTYgKzE5MjAsMTEgQEAKIAlyZXR2YWwgPSBlbmQtMTsKIAkqcmV0dmFsID0gJy8nOwogCi0JZm9yICg7OykgewotCQlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQ7Ci0JCWlmIChJU19ST09UKGRlbnRyeSkpCi0JCQlicmVhazsKKwl3aGlsZSAoIUlTX1JPT1QoZGVudHJ5KSkgeworCQlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBkZW50cnktPmRfcGFyZW50OwogCi0JCXBhcmVudCA9IGRlbnRyeS0+ZF9wYXJlbnQ7CiAJCXByZWZldGNoKHBhcmVudCk7Ci0KLQkJaWYgKChwcmVwZW5kKCZlbmQsICZidWZsZW4sIGRlbnRyeS0+ZF9uYW1lLm5hbWUsCi0JCQkJZGVudHJ5LT5kX25hbWUubGVuKSAhPSAwKSB8fAorCQlpZiAoKHByZXBlbmRfbmFtZSgmZW5kLCAmYnVmbGVuLCAmZGVudHJ5LT5kX25hbWUpICE9IDApIHx8CiAJCSAgICAocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCAiLyIsIDEpICE9IDApKQogCQkJZ290byBFbG9uZzsKIApAQCAtMTk3NSw3ICsxOTc1LDcgQEAKIAllcnJvciA9IC1FTk9FTlQ7CiAJLyogSGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBoYXMgYmVlbiB1bmxpbmtlZD8gKi8KIAlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsKLQlpZiAocHdkLmRlbnRyeS0+ZF9wYXJlbnQgPT0gcHdkLmRlbnRyeSB8fCAhZF91bmhhc2hlZChwd2QuZGVudHJ5KSkgeworCWlmIChJU19ST09UKHB3ZC5kZW50cnkpIHx8ICFkX3VuaGFzaGVkKHB3ZC5kZW50cnkpKSB7CiAJCXVuc2lnbmVkIGxvbmcgbGVuOwogCQlzdHJ1Y3QgcGF0aCB0bXAgPSByb290OwogCQljaGFyICogY3dkOwpkaWZmIC0tZ2l0IGEvZnMvZGxtL3VzZXIuYyBiL2ZzL2RsbS91c2VyLmMKaW5kZXggZWJiY2YzOC4uZjk3NmYzMCAxMDA2NDQKLS0tIGEvZnMvZGxtL3VzZXIuYworKysgYi9mcy9kbG0vdXNlci5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kbG0uaD4KICNpbmNsdWRlIDxsaW51eC9kbG1fZGV2aWNlLmg+CiAKQEAgLTYxOCwxMyArNjE5LDE3IEBACiAJc3RydWN0IGRsbV91c2VyX3Byb2MgKnByb2M7CiAJc3RydWN0IGRsbV9scyAqbHM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxzID0gZGxtX2ZpbmRfbG9ja3NwYWNlX2RldmljZShpbWlub3IoaW5vZGUpKTsKLQlpZiAoIWxzKQorCWlmICghbHMpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0VOVDsKKwl9CiAKIAlwcm9jID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRsbV91c2VyX3Byb2MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXByb2MpIHsKIAkJZGxtX3B1dF9sb2Nrc3BhY2UobHMpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIApAQCAtNjM2LDYgKzY0MSw3IEBACiAJc3Bpbl9sb2NrX2luaXQoJnByb2MtPmxvY2tzX3NwaW4pOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByb2MtPndhaXQpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHByb2M7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NzAsNiArODc2LDcgQEAKIAogc3RhdGljIGludCBjdGxfZGV2aWNlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0ZnMvZmlsZS5jIGIvZnMvZWNyeXB0ZnMvZmlsZS5jCmluZGV4IDIyNThiOGYuLjI0NzQ5YmYgMTAwNjQ0Ci0tLSBhL2ZzL2VjcnlwdGZzL2ZpbGUuYworKysgYi9mcy9lY3J5cHRmcy9maWxlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzX3N0YWNrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJlY3J5cHRmc19rZXJuZWwuaCIKIAogLyoqCkBAIC0yNzcsOSArMjc4LDExIEBACiAJaW50IHJjID0gMDsKIAlzdHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZSA9IE5VTEw7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxvd2VyX2ZpbGUgPSBlY3J5cHRmc19maWxlX3RvX2xvd2VyKGZpbGUpOwogCWlmIChsb3dlcl9maWxlLT5mX29wICYmIGxvd2VyX2ZpbGUtPmZfb3AtPmZhc3luYykKIAkJcmMgPSBsb3dlcl9maWxlLT5mX29wLT5mYXN5bmMoZmQsIGxvd2VyX2ZpbGUsIGZsYWcpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2VjcnlwdGZzL21pc2NkZXYuYyBiL2ZzL2VjcnlwdGZzL21pc2NkZXYuYwppbmRleCA1MGM5OTRhLi4wOWE0NTIyIDEwMDY0NAotLS0gYS9mcy9lY3J5cHRmcy9taXNjZGV2LmMKKysrIGIvZnMvZWNyeXB0ZnMvbWlzY2Rldi5jCkBAIC01NzUsMTMgKzU3NSwxMSBAQAogCWludCByYzsKIAogCWF0b21pY19zZXQoJmVjcnlwdGZzX251bV9taXNjZGV2X29wZW5zLCAwKTsKLQltdXRleF9sb2NrKCZlY3J5cHRmc19kYWVtb25faGFzaF9tdXgpOwogCXJjID0gbWlzY19yZWdpc3RlcigmZWNyeXB0ZnNfbWlzY2Rldik7CiAJaWYgKHJjKQogCQlwcmludGsoS0VSTl9FUlIgIiVzOiBGYWlsZWQgdG8gcmVnaXN0ZXIgbWlzY2VsbGFuZW91cyBkZXZpY2UgIgogCQkgICAgICAgImZvciBjb21tdW5pY2F0aW9ucyB3aXRoIHVzZXJzcGFjZSBkYWVtb25zOyByYyA9IFslZF1cbiIsCiAJCSAgICAgICBfX2Z1bmNfXywgcmMpOwotCW11dGV4X3VubG9jaygmZWNyeXB0ZnNfZGFlbW9uX2hhc2hfbXV4KTsKIAlyZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuYwppbmRleCA5NDQ4ZjFiLi5mZDkyMzQzIDEwMDY0NAotLS0gYS9mcy9leGVjLmMKKysrIGIvZnMvZXhlYy5jCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZkdGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9tbWFuLmg+Ci0jaW5jbHVkZSA8bGludXgvYS5vdXQuaD4KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgpAQCAtNjEsNiArNjAsMTEgQEAKICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CiAjZW5kaWYKIAorI2lmZGVmIF9fYWxwaGFfXworLyogZm9yIC9zYmluL2xvYWRlciBoYW5kbGluZyBpbiBzZWFyY2hfYmluYXJ5X2hhbmRsZXIoKSAqLworI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+CisjZW5kaWYKKwogaW50IGNvcmVfdXNlc19waWQ7CiBjaGFyIGNvcmVfcGF0dGVybltDT1JFTkFNRV9NQVhfU0laRV0gPSAiY29yZSI7CiBpbnQgc3VpZF9kdW1wYWJsZSA9IDA7CkBAIC02MDYsNyArNjEwLDcgQEAKIAlicHJtLT5leGVjIC09IHN0YWNrX3NoaWZ0OwogCiAJZG93bl93cml0ZSgmbW0tPm1tYXBfc2VtKTsKLQl2bV9mbGFncyA9IHZtYS0+dm1fZmxhZ3M7CisJdm1fZmxhZ3MgPSBWTV9TVEFDS19GTEFHUzsKIAogCS8qCiAJICogQWRqdXN0IHN0YWNrIGV4ZWN1dGUgcGVybWlzc2lvbnM7IGV4cGxpY2l0bHkgZW5hYmxlIGZvcgpAQCAtMTE1NSw3ICsxMTU5LDcgQEAKIHsKIAlpbnQgdHJ5LHJldHZhbDsKIAlzdHJ1Y3QgbGludXhfYmluZm10ICpmbXQ7Ci0jaWYgZGVmaW5lZChfX2FscGhhX18pICYmIGRlZmluZWQoQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVCkKKyNpZmRlZiBfX2FscGhhX18KIAkvKiBoYW5kbGUgL3NiaW4vbG9hZGVyLi4gKi8KIAl7CiAJICAgIHN0cnVjdCBleGVjICogZWggPSAoc3RydWN0IGV4ZWMgKikgYnBybS0+YnVmOwpkaWZmIC0tZ2l0IGEvZnMvZXh0My9zdXBlci5jIGIvZnMvZXh0My9zdXBlci5jCmluZGV4IGZlMzExOWEuLjI4NDU0MjUgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDMvc3VwZXIuYworKysgYi9mcy9leHQzL3N1cGVyLmMKQEAgLTI4NzUsOCArMjg3NSwxMCBAQAogCQlibGsrKzsKIAl9CiBvdXQ6Ci0JaWYgKGxlbiA9PSB0b3dyaXRlKQorCWlmIChsZW4gPT0gdG93cml0ZSkgeworCQltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4KTsKIAkJcmV0dXJuIGVycjsKKwl9CiAJaWYgKGlub2RlLT5pX3NpemUgPCBvZmYrbGVuLXRvd3JpdGUpIHsKIAkJaV9zaXplX3dyaXRlKGlub2RlLCBvZmYrbGVuLXRvd3JpdGUpOwogCQlFWFQzX0koaW5vZGUpLT5pX2Rpc2tzaXplID0gaW5vZGUtPmlfc2l6ZTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvYmFsbG9jLmMgYi9mcy9leHQ0L2JhbGxvYy5jCmluZGV4IDMwNDk0YzUuLjQ5NWFiMjEgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvYmFsbG9jLmMKKysrIGIvZnMvZXh0NC9iYWxsb2MuYwpAQCAtNDMsNiArNDMsNDYgQEAKIAogfQogCitzdGF0aWMgaW50IGV4dDRfYmxvY2tfaW5fZ3JvdXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgZXh0NF9mc2Jsa190IGJsb2NrLAorCQkJZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQoreworCWV4dDRfZ3JvdXBfdCBhY3R1YWxfZ3JvdXA7CisJZXh0NF9nZXRfZ3JvdXBfbm9fYW5kX29mZnNldChzYiwgYmxvY2ssICZhY3R1YWxfZ3JvdXAsIE5VTEwpOworCWlmIChhY3R1YWxfZ3JvdXAgPT0gYmxvY2tfZ3JvdXApCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGV4dDRfZ3JvdXBfdXNlZF9tZXRhX2Jsb2NrcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorCQkJCWV4dDRfZ3JvdXBfdCBibG9ja19ncm91cCkKK3sKKwlleHQ0X2ZzYmxrX3QgdG1wOworCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0Ioc2IpOworCS8qIGJsb2NrIGJpdG1hcCwgaW5vZGUgYml0bWFwLCBhbmQgaW5vZGUgdGFibGUgYmxvY2tzICovCisJaW50IHVzZWRfYmxvY2tzID0gc2JpLT5zX2l0Yl9wZXJfZ3JvdXAgKyAyOworCisJaWYgKEVYVDRfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9GTEVYX0JHKSkgeworCQlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHA7CisJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisKKwkJZ2RwID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgYmxvY2tfZ3JvdXAsICZiaCk7CisJCWlmICghZXh0NF9ibG9ja19pbl9ncm91cChzYiwgZXh0NF9ibG9ja19iaXRtYXAoc2IsIGdkcCksCisJCQkJCWJsb2NrX2dyb3VwKSkKKwkJCXVzZWRfYmxvY2tzLS07CisKKwkJaWYgKCFleHQ0X2Jsb2NrX2luX2dyb3VwKHNiLCBleHQ0X2lub2RlX2JpdG1hcChzYiwgZ2RwKSwKKwkJCQkJYmxvY2tfZ3JvdXApKQorCQkJdXNlZF9ibG9ja3MtLTsKKworCQl0bXAgPSBleHQ0X2lub2RlX3RhYmxlKHNiLCBnZHApOworCQlmb3IgKDsgdG1wIDwgZXh0NF9pbm9kZV90YWJsZShzYiwgZ2RwKSArCisJCQkJc2JpLT5zX2l0Yl9wZXJfZ3JvdXA7IHRtcCsrKSB7CisJCQlpZiAoIWV4dDRfYmxvY2tfaW5fZ3JvdXAoc2IsIHRtcCwgYmxvY2tfZ3JvdXApKQorCQkJCXVzZWRfYmxvY2tzIC09IDE7CisJCX0KKwl9CisJcmV0dXJuIHVzZWRfYmxvY2tzOworfQogLyogSW5pdGlhbGl6ZXMgYW4gdW5pbml0aWFsaXplZCBibG9jayBiaXRtYXAgaWYgZ2l2ZW4sIGFuZCByZXR1cm5zIHRoZQogICogbnVtYmVyIG9mIGJsb2NrcyBmcmVlIGluIHRoZSBncm91cC4gKi8KIHVuc2lnbmVkIGV4dDRfaW5pdF9ibG9ja19iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwKQEAgLTgxLDEyICsxMjEsNyBAQAogCQkJCWxlMTZfdG9fY3B1KHNiaS0+c19lcy0+c19yZXNlcnZlZF9nZHRfYmxvY2tzKTsKIAkJfQogCX0gZWxzZSB7IC8qIEZvciBNRVRBX0JHX0JMT0NLX0dST1VQUyAqLwotCQlpbnQgZ3JvdXBfcmVsID0gKGJsb2NrX2dyb3VwIC0KLQkJCQkgbGUzMl90b19jcHUoc2JpLT5zX2VzLT5zX2ZpcnN0X21ldGFfYmcpKSAlCi0JCQkJRVhUNF9ERVNDX1BFUl9CTE9DSyhzYik7Ci0JCWlmIChncm91cF9yZWwgPT0gMCB8fCBncm91cF9yZWwgPT0gMSB8fAotCQkgICAgKGdyb3VwX3JlbCA9PSBFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKSAtIDEpKQotCQkJYml0X21heCArPSAxOworCQliaXRfbWF4ICs9IGV4dDRfYmdfbnVtX2dkYihzYiwgYmxvY2tfZ3JvdXApOwogCX0KIAogCWlmIChibG9ja19ncm91cCA9PSBzYmktPnNfZ3JvdXBzX2NvdW50IC0gMSkgewpAQCAtMTA1LDIwICsxNDAsMzQgQEAKIAlmcmVlX2Jsb2NrcyA9IGdyb3VwX2Jsb2NrcyAtIGJpdF9tYXg7CiAKIAlpZiAoYmgpIHsKLQkJZXh0NF9mc2Jsa190IHN0YXJ0OworCQlleHQ0X2ZzYmxrX3Qgc3RhcnQsIHRtcDsKKwkJaW50IGZsZXhfYmcgPSAwOwogCiAJCWZvciAoYml0ID0gMDsgYml0IDwgYml0X21heDsgYml0KyspCiAJCQlleHQ0X3NldF9iaXQoYml0LCBiaC0+Yl9kYXRhKTsKIAogCQlzdGFydCA9IGV4dDRfZ3JvdXBfZmlyc3RfYmxvY2tfbm8oc2IsIGJsb2NrX2dyb3VwKTsKIAotCQkvKiBTZXQgYml0cyBmb3IgYmxvY2sgYW5kIGlub2RlIGJpdG1hcHMsIGFuZCBpbm9kZSB0YWJsZSAqLwotCQlleHQ0X3NldF9iaXQoZXh0NF9ibG9ja19iaXRtYXAoc2IsIGdkcCkgLSBzdGFydCwgYmgtPmJfZGF0YSk7Ci0JCWV4dDRfc2V0X2JpdChleHQ0X2lub2RlX2JpdG1hcChzYiwgZ2RwKSAtIHN0YXJ0LCBiaC0+Yl9kYXRhKTsKLQkJZm9yIChiaXQgPSAoZXh0NF9pbm9kZV90YWJsZShzYiwgZ2RwKSAtIHN0YXJ0KSwKLQkJICAgICBiaXRfbWF4ID0gYml0ICsgc2JpLT5zX2l0Yl9wZXJfZ3JvdXA7IGJpdCA8IGJpdF9tYXg7IGJpdCsrKQotCQkJZXh0NF9zZXRfYml0KGJpdCwgYmgtPmJfZGF0YSk7CisJCWlmIChFWFQ0X0hBU19JTkNPTVBBVF9GRUFUVVJFKHNiLAorCQkJCQkgICAgICBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRkxFWF9CRykpCisJCQlmbGV4X2JnID0gMTsKIAorCQkvKiBTZXQgYml0cyBmb3IgYmxvY2sgYW5kIGlub2RlIGJpdG1hcHMsIGFuZCBpbm9kZSB0YWJsZSAqLworCQl0bXAgPSBleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKTsKKwkJaWYgKCFmbGV4X2JnIHx8IGV4dDRfYmxvY2tfaW5fZ3JvdXAoc2IsIHRtcCwgYmxvY2tfZ3JvdXApKQorCQkJZXh0NF9zZXRfYml0KHRtcCAtIHN0YXJ0LCBiaC0+Yl9kYXRhKTsKKworCQl0bXAgPSBleHQ0X2lub2RlX2JpdG1hcChzYiwgZ2RwKTsKKwkJaWYgKCFmbGV4X2JnIHx8IGV4dDRfYmxvY2tfaW5fZ3JvdXAoc2IsIHRtcCwgYmxvY2tfZ3JvdXApKQorCQkJZXh0NF9zZXRfYml0KHRtcCAtIHN0YXJ0LCBiaC0+Yl9kYXRhKTsKKworCQl0bXAgPSBleHQ0X2lub2RlX3RhYmxlKHNiLCBnZHApOworCQlmb3IgKDsgdG1wIDwgZXh0NF9pbm9kZV90YWJsZShzYiwgZ2RwKSArCisJCQkJc2JpLT5zX2l0Yl9wZXJfZ3JvdXA7IHRtcCsrKSB7CisJCQlpZiAoIWZsZXhfYmcgfHwKKwkJCQlleHQ0X2Jsb2NrX2luX2dyb3VwKHNiLCB0bXAsIGJsb2NrX2dyb3VwKSkKKwkJCQlleHQ0X3NldF9iaXQodG1wIC0gc3RhcnQsIGJoLT5iX2RhdGEpOworCQl9CiAJCS8qCiAJCSAqIEFsc28gaWYgdGhlIG51bWJlciBvZiBibG9ja3Mgd2l0aGluIHRoZSBncm91cCBpcwogCQkgKiBsZXNzIHRoYW4gdGhlIGJsb2Nrc2l6ZSAqIDggKCB3aGljaCBpcyB0aGUgc2l6ZQpAQCAtMTI2LDggKzE3NSw3IEBACiAJCSAqLwogCQltYXJrX2JpdG1hcF9lbmQoZ3JvdXBfYmxvY2tzLCBzYi0+c19ibG9ja3NpemUgKiA4LCBiaC0+Yl9kYXRhKTsKIAl9Ci0KLQlyZXR1cm4gZnJlZV9ibG9ja3MgLSBzYmktPnNfaXRiX3Blcl9ncm91cCAtIDI7CisJcmV0dXJuIGZyZWVfYmxvY2tzIC0gZXh0NF9ncm91cF91c2VkX21ldGFfYmxvY2tzKHNiLCBibG9ja19ncm91cCk7CiB9CiAKIApAQCAtMjQyLDcgKzI5MCw3IEBACiAJcmV0dXJuIDA7CiB9CiAvKioKLSAqIHJlYWRfYmxvY2tfYml0bWFwKCkKKyAqIGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoKQogICogQHNiOgkJCXN1cGVyIGJsb2NrCiAgKiBAYmxvY2tfZ3JvdXA6CWdpdmVuIGJsb2NrIGdyb3VwCiAgKgpAQCAtMjUyLDcgKzMwMCw3IEBACiAgKiBSZXR1cm4gYnVmZmVyX2hlYWQgb24gc3VjY2VzcyBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZS4KICAqLwogc3RydWN0IGJ1ZmZlcl9oZWFkICoKLXJlYWRfYmxvY2tfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBibG9ja19ncm91cCkKK2V4dDRfcmVhZF9ibG9ja19iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQogewogCXN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKiBkZXNjOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqIGJoID0gTlVMTDsKQEAgLTM1Niw4ICs0MDQsNyBAQAogCQlwcmV2ID0gcnN2OwogCX0KIAlwcmludGsoIldpbmRvdyBtYXAgY29tcGxldGUuXG4iKTsKLQlpZiAoYmFkKQotCQlCVUcoKTsKKwlCVUdfT04oYmFkKTsKIH0KICNkZWZpbmUgcnN2X3dpbmRvd19kdW1wKHJvb3QsIHZlcmJvc2UpIFwKIAlfX3Jzdl93aW5kb3dfZHVtcCgocm9vdCksICh2ZXJib3NlKSwgX19mdW5jX18pCkBAIC02NDEsNyArNjg4LDcgQEAKIAkJY291bnQgLT0gb3ZlcmZsb3c7CiAJfQogCWJyZWxzZShiaXRtYXBfYmgpOwotCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBibG9ja19ncm91cCk7CisJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgYmxvY2tfZ3JvdXApOwogCWlmICghYml0bWFwX2JoKQogCQlnb3RvIGVycm9yX3JldHVybjsKIAlkZXNjID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyAoc2IsIGJsb2NrX2dyb3VwLCAmZ2RfYmgpOwpAQCAtNzU3LDYgKzgwNCwxMyBAQAogCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgYmxvY2tfZ3JvdXApKTsKIAlwZXJjcHVfY291bnRlcl9hZGQoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIGNvdW50KTsKIAorCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlleHQ0X2dyb3VwX3QgZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIGJsb2NrX2dyb3VwKTsKKwkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9ibG9ja3MgKz0gY291bnQ7CisJCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCX0KKwogCS8qIFdlIGRpcnRpZWQgdGhlIGJpdG1hcCBibG9jayAqLwogCUJVRkZFUl9UUkFDRShiaXRtYXBfYmgsICJkaXJ0aWVkIGJpdG1hcCBibG9jayIpOwogCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJpdG1hcF9iaCk7CkBAIC0xNTQ1LDIzICsxNTk5LDM1IEBACiAKIC8qKgogICogZXh0NF9oYXNfZnJlZV9ibG9ja3MoKQotICogQHNiaToJCWluLWNvcmUgc3VwZXIgYmxvY2sgc3RydWN0dXJlLgorICogQHNiaToJaW4tY29yZSBzdXBlciBibG9jayBzdHJ1Y3R1cmUuCisgKiBAbmJsb2NrczoJbnVtYmVyIG9mIG5lZWVkIGJsb2NrcwogICoKLSAqIENoZWNrIGlmIGZpbGVzeXN0ZW0gaGFzIGF0IGxlYXN0IDEgZnJlZSBibG9jayBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24uCisgKiBDaGVjayBpZiBmaWxlc3lzdGVtIGhhcyBmcmVlIGJsb2NrcyBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24uCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBibG9ja3MgYXZhaWJsZSBmb3IgYWxsb2NhdGlvbiBmb3IgdGhpcyByZXF1ZXN0CisgKiBPbiBzdWNjZXNzLCByZXR1cm4gbmJsb2NrcwogICovCi1zdGF0aWMgaW50IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSkKK2V4dDRfZnNibGtfdCBleHQ0X2hhc19mcmVlX2Jsb2NrcyhzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCisJCQkJCQlleHQ0X2ZzYmxrX3QgbmJsb2NrcykKIHsKLQlleHQ0X2ZzYmxrX3QgZnJlZV9ibG9ja3MsIHJvb3RfYmxvY2tzOworCWV4dDRfZnNibGtfdCBmcmVlX2Jsb2NrczsKKwlleHQ0X2ZzYmxrX3Qgcm9vdF9ibG9ja3MgPSAwOwogCiAJZnJlZV9ibG9ja3MgPSBwZXJjcHVfY291bnRlcl9yZWFkX3Bvc2l0aXZlKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyKTsKLQlyb290X2Jsb2NrcyA9IGV4dDRfcl9ibG9ja3NfY291bnQoc2JpLT5zX2VzKTsKLQlpZiAoZnJlZV9ibG9ja3MgPCByb290X2Jsb2NrcyArIDEgJiYgIWNhcGFibGUoQ0FQX1NZU19SRVNPVVJDRSkgJiYKKworCWlmICghY2FwYWJsZShDQVBfU1lTX1JFU09VUkNFKSAmJgogCQlzYmktPnNfcmVzdWlkICE9IGN1cnJlbnQtPmZzdWlkICYmCi0JCShzYmktPnNfcmVzZ2lkID09IDAgfHwgIWluX2dyb3VwX3AgKHNiaS0+c19yZXNnaWQpKSkgewotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIDE7Ci19CisJCShzYmktPnNfcmVzZ2lkID09IDAgfHwgIWluX2dyb3VwX3Aoc2JpLT5zX3Jlc2dpZCkpKQorCQlyb290X2Jsb2NrcyA9IGV4dDRfcl9ibG9ja3NfY291bnQoc2JpLT5zX2VzKTsKKyNpZmRlZiBDT05GSUdfU01QCisJaWYgKGZyZWVfYmxvY2tzIC0gcm9vdF9ibG9ja3MgPCBGQkNfQkFUQ0gpCisJCWZyZWVfYmxvY2tzID0KKwkJCXBlcmNwdV9jb3VudGVyX3N1bV9hbmRfc2V0KCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyKTsKKyNlbmRpZgorCWlmIChmcmVlX2Jsb2NrcyAtIHJvb3RfYmxvY2tzIDwgbmJsb2NrcykKKwkJcmV0dXJuIGZyZWVfYmxvY2tzIC0gcm9vdF9ibG9ja3M7CisJcmV0dXJuIG5ibG9ja3M7CisgfQorCiAKIC8qKgogICogZXh0NF9zaG91bGRfcmV0cnlfYWxsb2MoKQpAQCAtMTU3Nyw3ICsxNjQzLDcgQEAKICAqLwogaW50IGV4dDRfc2hvdWxkX3JldHJ5X2FsbG9jKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqcmV0cmllcykKIHsKLQlpZiAoIWV4dDRfaGFzX2ZyZWVfYmxvY2tzKEVYVDRfU0Ioc2IpKSB8fCAoKnJldHJpZXMpKysgPiAzKQorCWlmICghZXh0NF9oYXNfZnJlZV9ibG9ja3MoRVhUNF9TQihzYiksIDEpIHx8ICgqcmV0cmllcykrKyA+IDMpCiAJCXJldHVybiAwOwogCiAJamJkX2RlYnVnKDEsICIlczogcmV0cnlpbmcgb3BlcmF0aW9uIGFmdGVyIEVOT1NQQ1xuIiwgc2ItPnNfaWQpOwpAQCAtMTU4NiwyMCArMTY1MiwyNCBAQAogfQogCiAvKioKLSAqIGV4dDRfbmV3X2Jsb2Nrc19vbGQoKSAtLSBjb3JlIGJsb2NrKHMpIGFsbG9jYXRpb24gZnVuY3Rpb24KKyAqIGV4dDRfb2xkX25ld19ibG9ja3MoKSAtLSBjb3JlIGJsb2NrIGJpdG1hcCBiYXNlZCBibG9jayBhbGxvY2F0aW9uIGZ1bmN0aW9uCisgKgogICogQGhhbmRsZToJCWhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCiAgKiBAaW5vZGU6CQlmaWxlIGlub2RlCiAgKiBAZ29hbDoJCWdpdmVuIHRhcmdldCBibG9jayhmaWxlc3lzdGVtIHdpZGUpCiAgKiBAY291bnQ6CQl0YXJnZXQgbnVtYmVyIG9mIGJsb2NrcyB0byBhbGxvY2F0ZQogICogQGVycnA6CQllcnJvciBjb2RlCiAgKgotICogZXh0NF9uZXdfYmxvY2tzIHVzZXMgYSBnb2FsIGJsb2NrIHRvIGFzc2lzdCBhbGxvY2F0aW9uLiAgSXQgdHJpZXMgdG8KLSAqIGFsbG9jYXRlIGJsb2NrKHMpIGZyb20gdGhlIGJsb2NrIGdyb3VwIGNvbnRhaW5zIHRoZSBnb2FsIGJsb2NrIGZpcnN0LiBJZiB0aGF0Ci0gKiBmYWlscywgaXQgd2lsbCB0cnkgdG8gYWxsb2NhdGUgYmxvY2socykgZnJvbSBvdGhlciBibG9jayBncm91cHMgd2l0aG91dAotICogYW55IHNwZWNpZmljIGdvYWwgYmxvY2suCisgKiBleHQ0X29sZF9uZXdfYmxvY2tzIHVzZXMgYSBnb2FsIGJsb2NrIHRvIGFzc2lzdCBhbGxvY2F0aW9uIGFuZCBsb29rIHVwCisgKiB0aGUgYmxvY2sgYml0bWFwIGRpcmVjdGx5IHRvIGRvIGJsb2NrIGFsbG9jYXRpb24uICBJdCB0cmllcyB0bworICogYWxsb2NhdGUgYmxvY2socykgZnJvbSB0aGUgYmxvY2sgZ3JvdXAgY29udGFpbnMgdGhlIGdvYWwgYmxvY2sgZmlyc3QuIElmCisgKiB0aGF0IGZhaWxzLCBpdCB3aWxsIHRyeSB0byBhbGxvY2F0ZSBibG9jayhzKSBmcm9tIG90aGVyIGJsb2NrIGdyb3VwcworICogd2l0aG91dCBhbnkgc3BlY2lmaWMgZ29hbCBibG9jay4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIC1vIG5vbWJhbGxvYyBtb3VudCBvcHRpb24gaXMgZW5hYmxlZAogICoKICAqLwotZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2Nrc19vbGQoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKK2V4dDRfZnNibGtfdCBleHQ0X29sZF9uZXdfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQlleHQ0X2ZzYmxrX3QgZ29hbCwgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKIHsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJpdG1hcF9iaCA9IE5VTEw7CkBAIC0xNjIzLDEzICsxNjkzLDI2IEBACiAJZXh0NF9ncm91cF90IG5ncm91cHM7CiAJdW5zaWduZWQgbG9uZyBudW0gPSAqY291bnQ7CiAKLQkqZXJycCA9IC1FTk9TUEM7CiAJc2IgPSBpbm9kZS0+aV9zYjsKIAlpZiAoIXNiKSB7CisJCSplcnJwID0gLUVOT0RFVjsKIAkJcHJpbnRrKCJleHQ0X25ld19ibG9jazogbm9uZXhpc3RlbnQgZGV2aWNlIik7CiAJCXJldHVybiAwOwogCX0KIAorCXNiaSA9IEVYVDRfU0Ioc2IpOworCWlmICghRVhUNF9JKGlub2RlKS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnKSB7CisJCS8qCisJCSAqIFdpdGggZGVsYWxsb2Mgd2UgYWxyZWFkeSByZXNlcnZlZCB0aGUgYmxvY2tzCisJCSAqLworCQkqY291bnQgPSBleHQ0X2hhc19mcmVlX2Jsb2NrcyhzYmksICpjb3VudCk7CisJfQorCWlmICgqY291bnQgPT0gMCkgeworCQkqZXJycCA9IC1FTk9TUEM7CisJCXJldHVybiAwOwkvKnJldHVybiB3aXRoIEVOT1NQQyBlcnJvciAqLworCX0KKwludW0gPSAqY291bnQ7CisKIAkvKgogCSAqIENoZWNrIHF1b3RhIGZvciBhbGxvY2F0aW9uIG9mIHRoaXMgYmxvY2suCiAJICovCkBAIC0xNjUzLDExICsxNzM2LDYgQEAKIAlpZiAoYmxvY2tfaSAmJiAoKHdpbmRvd3N6ID0gYmxvY2tfaS0+cnN2X3dpbmRvd19ub2RlLnJzdl9nb2FsX3NpemUpID4gMCkpCiAJCW15X3JzdiA9ICZibG9ja19pLT5yc3Zfd2luZG93X25vZGU7CiAKLQlpZiAoIWV4dDRfaGFzX2ZyZWVfYmxvY2tzKHNiaSkpIHsKLQkJKmVycnAgPSAtRU5PU1BDOwotCQlnb3RvIG91dDsKLQl9Ci0KIAkvKgogCSAqIEZpcnN0LCB0ZXN0IHdoZXRoZXIgdGhlIGdvYWwgYmxvY2sgaXMgZnJlZS4KIAkgKi8KQEAgLTE2ODEsNyArMTc1OSw3IEBACiAJCW15X3JzdiA9IE5VTEw7CiAKIAlpZiAoZnJlZV9ibG9ja3MgPiAwKSB7Ci0JCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cF9ubyk7CisJCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwX25vKTsKIAkJaWYgKCFiaXRtYXBfYmgpCiAJCQlnb3RvIGlvX2Vycm9yOwogCQlncnBfYWxsb2NfYmxrID0gZXh0NF90cnlfdG9fYWxsb2NhdGVfd2l0aF9yc3Yoc2IsIGhhbmRsZSwKQEAgLTE3MTcsNyArMTc5NSw3IEBACiAJCQljb250aW51ZTsKIAogCQlicmVsc2UoYml0bWFwX2JoKTsKLQkJYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwX25vKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXBfbm8pOwogCQlpZiAoIWJpdG1hcF9iaCkKIAkJCWdvdG8gaW9fZXJyb3I7CiAJCS8qCkBAIC0xODI5LDcgKzE5MDcsMTUgQEAKIAlsZTE2X2FkZF9jcHUoJmdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQsIC1udW0pOwogCWdkcC0+YmdfY2hlY2tzdW0gPSBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzYmksIGdyb3VwX25vLCBnZHApOwogCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZ3JvdXBfbm8pKTsKLQlwZXJjcHVfY291bnRlcl9zdWIoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIG51bSk7CisJaWYgKCFFWFQ0X0koaW5vZGUpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcpCisJCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgbnVtKTsKKworCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlleHQ0X2dyb3VwX3QgZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIGdyb3VwX25vKTsKKwkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9ibG9ja3MgLT0gbnVtOworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CiAKIAlCVUZGRVJfVFJBQ0UoZ2RwX2JoLCAiam91cm5hbF9kaXJ0eV9tZXRhZGF0YSBmb3IgZ3JvdXAgZGVzY3JpcHRvciIpOwogCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGdkcF9iaCk7CkBAIC0xODYyLDQ2ICsxOTQ4LDEwNCBAQAogCXJldHVybiAwOwogfQogCi1leHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJZXh0NF9mc2Jsa190IGdvYWwsIGludCAqZXJycCkKKyNkZWZpbmUgRVhUNF9NRVRBX0JMT0NLIDB4MQorCitzdGF0aWMgZXh0NF9mc2Jsa190IGRvX2Jsa19hbGxvYyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCWV4dDRfbGJsa190IGlibG9jaywgZXh0NF9mc2Jsa190IGdvYWwsCisJCQkJdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCwgaW50IGZsYWdzKQogewogCXN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCBhcjsKIAlleHQ0X2ZzYmxrX3QgcmV0OwogCiAJaWYgKCF0ZXN0X29wdChpbm9kZS0+aV9zYiwgTUJBTExPQykpIHsKLQkJdW5zaWduZWQgbG9uZyBjb3VudCA9IDE7Ci0JCXJldCA9IGV4dDRfbmV3X2Jsb2Nrc19vbGQoaGFuZGxlLCBpbm9kZSwgZ29hbCwgJmNvdW50LCBlcnJwKTsKLQkJcmV0dXJuIHJldDsKKwkJcmV0dXJuIGV4dDRfb2xkX25ld19ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZ29hbCwgY291bnQsIGVycnApOwogCX0KIAogCW1lbXNldCgmYXIsIDAsIHNpemVvZihhcikpOwotCWFyLmlub2RlID0gaW5vZGU7Ci0JYXIuZ29hbCA9IGdvYWw7Ci0JYXIubGVuID0gMTsKLQlyZXQgPSBleHQ0X21iX25ld19ibG9ja3MoaGFuZGxlLCAmYXIsIGVycnApOwotCXJldHVybiByZXQ7Ci19CisJLyogRmlsbCB3aXRoIG5laWdoYm91ciBhbGxvY2F0ZWQgYmxvY2tzICovCiAKLWV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApCi17Ci0Jc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOwotCWV4dDRfZnNibGtfdCByZXQ7Ci0KLQlpZiAoIXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBNQkFMTE9DKSkgewotCQlyZXQgPSBleHQ0X25ld19ibG9ja3Nfb2xkKGhhbmRsZSwgaW5vZGUsIGdvYWwsIGNvdW50LCBlcnJwKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQltZW1zZXQoJmFyLCAwLCBzaXplb2YoYXIpKTsKIAlhci5pbm9kZSA9IGlub2RlOwogCWFyLmdvYWwgPSBnb2FsOwogCWFyLmxlbiA9ICpjb3VudDsKKwlhci5sb2dpY2FsID0gaWJsb2NrOworCisJaWYgKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkgJiYgIShmbGFncyAmIEVYVDRfTUVUQV9CTE9DSykpCisJCS8qIGVuYWJsZSBpbi1jb3JlIHByZWFsbG9jYXRpb24gZm9yIGRhdGEgYmxvY2sgYWxsb2NhdGlvbiAqLworCQlhci5mbGFncyA9IEVYVDRfTUJfSElOVF9EQVRBOworCWVsc2UKKwkJLyogZGlzYWJsZSBpbi1jb3JlIHByZWFsbG9jYXRpb24gZm9yIG5vbi1yZWd1bGFyIGZpbGVzICovCisJCWFyLmZsYWdzID0gMDsKKwogCXJldCA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsICZhciwgZXJycCk7CiAJKmNvdW50ID0gYXIubGVuOwogCXJldHVybiByZXQ7CiB9CiAKKy8qCisgKiBleHQ0X25ld19tZXRhX2Jsb2NrcygpIC0tIGFsbG9jYXRlIGJsb2NrIGZvciBtZXRhIGRhdGEgKGluZGV4aW5nKSBibG9ja3MKKyAqCisgKiBAaGFuZGxlOiAgICAgICAgICAgICBoYW5kbGUgdG8gdGhpcyB0cmFuc2FjdGlvbgorICogQGlub2RlOiAgICAgICAgICAgICAgZmlsZSBpbm9kZQorICogQGdvYWw6ICAgICAgICAgICAgICAgZ2l2ZW4gdGFyZ2V0IGJsb2NrKGZpbGVzeXN0ZW0gd2lkZSkKKyAqIEBjb3VudDoJCXRvdGFsIG51bWJlciBvZiBibG9ja3MgbmVlZAorICogQGVycnA6ICAgICAgICAgICAgICAgZXJyb3IgY29kZQorICoKKyAqIFJldHVybiAxc3QgYWxsb2NhdGVkIGJsb2NrIG51bWJlcm9uIHN1Y2Nlc3MsICpjb3VudCBzdG9yZXMgdG90YWwgYWNjb3VudAorICogZXJyb3Igc3RvcmVzIGluIGVycnAgcG9pbnRlcgorICovCitleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfbWV0YV9ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKKwkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApCit7CisJZXh0NF9mc2Jsa190IHJldDsKKwlyZXQgPSBkb19ibGtfYWxsb2MoaGFuZGxlLCBpbm9kZSwgMCwgZ29hbCwKKwkJCQljb3VudCwgZXJycCwgRVhUNF9NRVRBX0JMT0NLKTsKKwkvKgorCSAqIEFjY291bnQgZm9yIHRoZSBhbGxvY2F0ZWQgbWV0YSBibG9ja3MKKwkgKi8KKwlpZiAoISgqZXJycCkpIHsKKwkJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCQlFWFQ0X0koaW5vZGUpLT5pX2FsbG9jYXRlZF9tZXRhX2Jsb2NrcyArPSAqY291bnQ7CisJCXNwaW5fdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCX0KKwlyZXR1cm4gcmV0OworfQorCisvKgorICogZXh0NF9uZXdfbWV0YV9ibG9jaygpIC0tIGFsbG9jYXRlIGJsb2NrIGZvciBtZXRhIGRhdGEgKGluZGV4aW5nKSBibG9ja3MKKyAqCisgKiBAaGFuZGxlOiAgICAgICAgICAgICBoYW5kbGUgdG8gdGhpcyB0cmFuc2FjdGlvbgorICogQGlub2RlOiAgICAgICAgICAgICAgZmlsZSBpbm9kZQorICogQGdvYWw6ICAgICAgICAgICAgICAgZ2l2ZW4gdGFyZ2V0IGJsb2NrKGZpbGVzeXN0ZW0gd2lkZSkKKyAqIEBlcnJwOiAgICAgICAgICAgICAgIGVycm9yIGNvZGUKKyAqCisgKiBSZXR1cm4gYWxsb2NhdGVkIGJsb2NrIG51bWJlciBvbiBzdWNjZXNzCisgKi8KK2V4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCWV4dDRfZnNibGtfdCBnb2FsLCBpbnQgKmVycnApCit7CisJdW5zaWduZWQgbG9uZyBjb3VudCA9IDE7CisJcmV0dXJuIGV4dDRfbmV3X21ldGFfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGdvYWwsICZjb3VudCwgZXJycCk7Cit9CisKKy8qCisgKiBleHQ0X25ld19ibG9ja3MoKSAtLSBhbGxvY2F0ZSBkYXRhIGJsb2NrcworICoKKyAqIEBoYW5kbGU6ICAgICAgICAgICAgIGhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCisgKiBAaW5vZGU6ICAgICAgICAgICAgICBmaWxlIGlub2RlCisgKiBAZ29hbDogICAgICAgICAgICAgICBnaXZlbiB0YXJnZXQgYmxvY2soZmlsZXN5c3RlbSB3aWRlKQorICogQGNvdW50OgkJdG90YWwgbnVtYmVyIG9mIGJsb2NrcyBuZWVkCisgKiBAZXJycDogICAgICAgICAgICAgICBlcnJvciBjb2RlCisgKgorICogUmV0dXJuIDFzdCBhbGxvY2F0ZWQgYmxvY2sgbnVtYmVyb24gc3VjY2VzcywgKmNvdW50IHN0b3JlcyB0b3RhbCBhY2NvdW50CisgKiBlcnJvciBzdG9yZXMgaW4gZXJycCBwb2ludGVyCisgKi8KKworZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCWV4dDRfbGJsa190IGlibG9jaywgZXh0NF9mc2Jsa190IGdvYWwsCisJCQkJdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKK3sKKwlyZXR1cm4gZG9fYmxrX2FsbG9jKGhhbmRsZSwgaW5vZGUsIGlibG9jaywgZ29hbCwgY291bnQsIGVycnAsIDApOworfQogCiAvKioKICAqIGV4dDRfY291bnRfZnJlZV9ibG9ja3MoKSAtLSBjb3VudCBmaWxlc3lzdGVtIGZyZWUgYmxvY2tzCkBAIC0xOTMzLDcgKzIwNzcsNyBAQAogCQkJY29udGludWU7CiAJCWRlc2NfY291bnQgKz0gbGUxNl90b19jcHUoZ2RwLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCk7CiAJCWJyZWxzZShiaXRtYXBfYmgpOwotCQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgaSk7CisJCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGkpOwogCQlpZiAoYml0bWFwX2JoID09IE5VTEwpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9kaXIuYyBiL2ZzL2V4dDQvZGlyLmMKaW5kZXggMmJmMDMzMS4uZDNkMjNkNyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9kaXIuYworKysgYi9mcy9leHQ0L2Rpci5jCkBAIC0xMjksNyArMTI5LDggQEAKIAkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5VTEw7CiAKIAkJbWFwX2JoLmJfc3RhdGUgPSAwOwotCQllcnIgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChOVUxMLCBpbm9kZSwgYmxrLCAxLCAmbWFwX2JoLCAwLCAwKTsKKwkJZXJyID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoTlVMTCwgaW5vZGUsIGJsaywgMSwgJm1hcF9iaCwKKwkJCQkJCTAsIDAsIDApOwogCQlpZiAoZXJyID4gMCkgewogCQkJcGdvZmZfdCBpbmRleCA9IG1hcF9iaC5iX2Jsb2NrbnIgPj4KIAkJCQkJKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKQEAgLTI3Miw3ICsyNzMsNyBAQAogCiAJd2hpbGUgKG4pIHsKIAkJLyogRG8gdGhlIG5vZGUncyBjaGlsZHJlbiBmaXJzdCAqLwotCQlpZiAoKG4pLT5yYl9sZWZ0KSB7CisJCWlmIChuLT5yYl9sZWZ0KSB7CiAJCQluID0gbi0+cmJfbGVmdDsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0zMDEsMjQgKzMwMiwxOCBAQAogCQkJcGFyZW50LT5yYl9yaWdodCA9IE5VTEw7CiAJCW4gPSBwYXJlbnQ7CiAJfQotCXJvb3QtPnJiX25vZGUgPSBOVUxMOwogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqY3JlYXRlX2Rpcl9pbmZvKGxvZmZfdCBwb3MpCitzdGF0aWMgc3RydWN0IGRpcl9wcml2YXRlX2luZm8gKmV4dDRfaHRyZWVfY3JlYXRlX2Rpcl9pbmZvKGxvZmZfdCBwb3MpCiB7CiAJc3RydWN0IGRpcl9wcml2YXRlX2luZm8gKnA7CiAKLQlwID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGRpcl9wcml2YXRlX2luZm8pLCBHRlBfS0VSTkVMKTsKKwlwID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRpcl9wcml2YXRlX2luZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXApCiAJCXJldHVybiBOVUxMOwotCXAtPnJvb3QucmJfbm9kZSA9IE5VTEw7Ci0JcC0+Y3Vycl9ub2RlID0gTlVMTDsKLQlwLT5leHRyYV9mbmFtZSA9IE5VTEw7Ci0JcC0+bGFzdF9wb3MgPSAwOwogCXAtPmN1cnJfaGFzaCA9IHBvczJtYWpfaGFzaChwb3MpOwogCXAtPmN1cnJfbWlub3JfaGFzaCA9IHBvczJtaW5faGFzaChwb3MpOwotCXAtPm5leHRfaGFzaCA9IDA7CiAJcmV0dXJuIHA7CiB9CiAKQEAgLTQzMyw3ICs0MjgsNyBAQAogCWludAlyZXQ7CiAKIAlpZiAoIWluZm8pIHsKLQkJaW5mbyA9IGNyZWF0ZV9kaXJfaW5mbyhmaWxwLT5mX3Bvcyk7CisJCWluZm8gPSBleHQ0X2h0cmVlX2NyZWF0ZV9kaXJfaW5mbyhmaWxwLT5mX3Bvcyk7CiAJCWlmICghaW5mbykKIAkJCXJldHVybiAtRU5PTUVNOwogCQlmaWxwLT5wcml2YXRlX2RhdGEgPSBpbmZvOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaAppbmRleCA4MTU4MDgzLi4zMDNlNDFjIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDQuaAorKysgYi9mcy9leHQ0L2V4dDQuaApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgImV4dDRfaS5oIgogCiAvKgotICogVGhlIHNlY29uZCBleHRlbmRlZCBmaWxlc3lzdGVtIGNvbnN0YW50cy9zdHJ1Y3R1cmVzCisgKiBUaGUgZm91cnRoIGV4dGVuZGVkIGZpbGVzeXN0ZW0gY29uc3RhbnRzL3N0cnVjdHVyZXMKICAqLwogCiAvKgpAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBleHQ0X2RlYnVnKGYsIGEuLi4pCQkJCQkJXAogCWRvIHsJCQkJCQkJCVwKIAkJcHJpbnRrIChLRVJOX0RFQlVHICJFWFQ0LWZzIERFQlVHICglcywgJWQpOiAlczoiLAlcCi0JCQlfX0ZJTEVfXywgX19MSU5FX18sIF9fRlVOQ1RJT05fXyk7CQlcCisJCQlfX0ZJTEVfXywgX19MSU5FX18sIF9fZnVuY19fKTsJCQlcCiAJCXByaW50ayAoS0VSTl9ERUJVRyBmLCAjIyBhKTsJCQkJXAogCX0gd2hpbGUgKDApCiAjZWxzZQpAQCAtNzQsNiArNzQsOSBAQAogI2RlZmluZSBFWFQ0X01CX0hJTlRfR09BTF9PTkxZCQkyNTYKIC8qIGdvYWwgaXMgbWVhbmluZ2Z1bCAqLwogI2RlZmluZSBFWFQ0X01CX0hJTlRfVFJZX0dPQUwJCTUxMgorLyogYmxvY2tzIGFscmVhZHkgcHJlLXJlc2VydmVkIGJ5IGRlbGF5ZWQgYWxsb2NhdGlvbiAqLworI2RlZmluZSBFWFQ0X01CX0RFTEFMTE9DX1JFU0VSVkVEICAgICAgMTAyNAorCiAKIHN0cnVjdCBleHQ0X2FsbG9jYXRpb25fcmVxdWVzdCB7CiAJLyogdGFyZ2V0IGlub2RlIGZvciBibG9jayB3ZSdyZSBhbGxvY2F0aW5nICovCkBAIC0xNzAsNiArMTczLDE1IEBACiAJX191MzIJYmdfcmVzZXJ2ZWQyWzNdOwogfTsKIAorLyoKKyAqIFN0cnVjdHVyZSBvZiBhIGZsZXggYmxvY2sgZ3JvdXAgaW5mbworICovCisKK3N0cnVjdCBmbGV4X2dyb3VwcyB7CisJX191MzIgZnJlZV9pbm9kZXM7CisJX191MzIgZnJlZV9ibG9ja3M7Cit9OworCiAjZGVmaW5lIEVYVDRfQkdfSU5PREVfVU5JTklUCTB4MDAwMSAvKiBJbm9kZSB0YWJsZS9iaXRtYXAgbm90IGluIHVzZSAqLwogI2RlZmluZSBFWFQ0X0JHX0JMT0NLX1VOSU5JVAkweDAwMDIgLyogQmxvY2sgYml0bWFwIG5vdCBpbiB1c2UgKi8KICNkZWZpbmUgRVhUNF9CR19JTk9ERV9aRVJPRUQJMHgwMDA0IC8qIE9uLWRpc2sgaXRhYmxlIGluaXRpYWxpemVkIHRvIHplcm8gKi8KQEAgLTUyNyw2ICs1MzksNyBAQAogI2RlZmluZSBFWFQ0X01PVU5UX0pPVVJOQUxfQVNZTkNfQ09NTUlUCTB4MTAwMDAwMCAvKiBKb3VybmFsIEFzeW5jIENvbW1pdCAqLwogI2RlZmluZSBFWFQ0X01PVU5UX0lfVkVSU0lPTiAgICAgICAgICAgIDB4MjAwMDAwMCAvKiBpX3ZlcnNpb24gc3VwcG9ydCAqLwogI2RlZmluZSBFWFQ0X01PVU5UX01CQUxMT0MJCTB4NDAwMDAwMCAvKiBCdWRkeSBhbGxvY2F0aW9uIHN1cHBvcnQgKi8KKyNkZWZpbmUgRVhUNF9NT1VOVF9ERUxBTExPQwkJMHg4MDAwMDAwIC8qIERlbGFsbG9jIHN1cHBvcnQgKi8KIC8qIENvbXBhdGliaWxpdHksIGZvciBoYXZpbmcgYm90aCBleHQyX2ZzLmggYW5kIGV4dDRfZnMuaCBpbmNsdWRlZCBhdCBvbmNlICovCiAjaWZuZGVmIF9MSU5VWF9FWFQyX0ZTX0gKICNkZWZpbmUgY2xlYXJfb3B0KG8sIG9wdCkJCW8gJj0gfkVYVDRfTU9VTlRfIyNvcHQKQEAgLTY0Nyw3ICs2NjAsMTAgQEAKIAlfX2xlMTYgIHNfbW1wX2ludGVydmFsOyAgICAgICAgIC8qICMgc2Vjb25kcyB0byB3YWl0IGluIE1NUCBjaGVja2luZyAqLwogCV9fbGU2NCAgc19tbXBfYmxvY2s7ICAgICAgICAgICAgLyogQmxvY2sgZm9yIG11bHRpLW1vdW50IHByb3RlY3Rpb24gKi8KIAlfX2xlMzIgIHNfcmFpZF9zdHJpcGVfd2lkdGg7ICAgIC8qIGJsb2NrcyBvbiBhbGwgZGF0YSBkaXNrcyAoTipzdHJpZGUpKi8KLQlfX3UzMiAgIHNfcmVzZXJ2ZWRbMTYzXTsgICAgICAgIC8qIFBhZGRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2sgKi8KKwlfX3U4CXNfbG9nX2dyb3Vwc19wZXJfZmxleDsgIC8qIEZMRVhfQkcgZ3JvdXAgc2l6ZSAqLworCV9fdTgJc19yZXNlcnZlZF9jaGFyX3BhZDI7CisJX19sZTE2ICBzX3Jlc2VydmVkX3BhZDsKKwlfX3UzMiAgIHNfcmVzZXJ2ZWRbMTYyXTsgICAgICAgIC8qIFBhZGRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2sgKi8KIH07CiAKICNpZmRlZiBfX0tFUk5FTF9fCkBAIC05NTgsMTIgKzk3NCwxNyBAQAogZXh0ZXJuIGludCBleHQ0X2JnX2hhc19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgZ3JvdXApOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZXh0NF9iZ19udW1fZ2RiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQlleHQ0X2dyb3VwX3QgZ3JvdXApOwotZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9jayAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKK2V4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfbWV0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGdvYWwsIGludCAqZXJycCk7Ci1leHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKK2V4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfbWV0YV9ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWV4dDRfZnNibGtfdCBnb2FsLCB1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKTsKLWV4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQkJdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCk7CitleHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfb2xkX25ld19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWV4dDRfZnNibGtfdCBnb2FsLCB1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKTsKK2V4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9oYXNfZnJlZV9ibG9ja3Moc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLAorCQkJCQkJZXh0NF9mc2Jsa190IG5ibG9ja3MpOwogZXh0ZXJuIHZvaWQgZXh0NF9mcmVlX2Jsb2NrcyAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWV4dDRfZnNibGtfdCBibG9jaywgdW5zaWduZWQgbG9uZyBjb3VudCwgaW50IG1ldGFkYXRhKTsKIGV4dGVybiB2b2lkIGV4dDRfZnJlZV9ibG9ja3Nfc2IgKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCkBAIC0xMDE2LDkgKzEwMzcsMTQgQEAKIGV4dGVybiB2b2lkIGV4aXRfZXh0NF9tYmFsbG9jKHZvaWQpOwogZXh0ZXJuIHZvaWQgZXh0NF9tYl9mcmVlX2Jsb2NrcyhoYW5kbGVfdCAqLCBzdHJ1Y3QgaW5vZGUgKiwKIAkJdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgaW50LCB1bnNpZ25lZCBsb25nICopOworZXh0ZXJuIGludCBleHQ0X21iX2FkZF9tb3JlX2dyb3VwaW5mbyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorCQlleHQ0X2dyb3VwX3QgaSwgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYyk7CitleHRlcm4gdm9pZCBleHQ0X21iX3VwZGF0ZV9ncm91cF9pbmZvKHN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKmdycCwKKwkJZXh0NF9ncnBibGtfdCBhZGQpOwogCiAKIC8qIGlub2RlLmMgKi8KK3ZvaWQgZXh0NF9kYV9yZWxlYXNlX3NwYWNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCB1c2VkLCBpbnQgdG9fZnJlZSk7CiBpbnQgZXh0NF9mb3JnZXQoaGFuZGxlX3QgKmhhbmRsZSwgaW50IGlzX21ldGFkYXRhLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBleHQ0X2ZzYmxrX3QgYmxvY2tucik7CiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmV4dDRfZ2V0YmxrKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLApAQCAtMTAzMywxOSArMTA1OSwyMyBAQAogZXh0ZXJuIHN0cnVjdCBpbm9kZSAqZXh0NF9pZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiBpbnQgIGV4dDRfd3JpdGVfaW5vZGUgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwogZXh0ZXJuIGludCAgZXh0NF9zZXRhdHRyIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKK2V4dGVybiBpbnQgIGV4dDRfZ2V0YXR0cihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJCXN0cnVjdCBrc3RhdCAqc3RhdCk7CiBleHRlcm4gdm9pZCBleHQ0X2RlbGV0ZV9pbm9kZSAoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIGludCAgZXh0NF9zeW5jX2lub2RlIChoYW5kbGVfdCAqLCBzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gdm9pZCBleHQ0X2Rpc2NhcmRfcmVzZXJ2YXRpb24gKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZGlydHlfaW5vZGUoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIGludCBleHQ0X2NoYW5nZV9pbm9kZV9qb3VybmFsX2ZsYWcoc3RydWN0IGlub2RlICosIGludCk7CiBleHRlcm4gaW50IGV4dDRfZ2V0X2lub2RlX2xvYyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGV4dDRfaWxvYyAqKTsKK2V4dGVybiBpbnQgZXh0NF9jYW5fdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSk7CiBleHRlcm4gdm9pZCBleHQ0X3RydW5jYXRlIChzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gdm9pZCBleHQ0X3NldF9pbm9kZV9mbGFncyhzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gdm9pZCBleHQ0X2dldF9pbm9kZV9mbGFncyhzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICopOwogZXh0ZXJuIHZvaWQgZXh0NF9zZXRfYW9wcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiBpbnQgZXh0NF93cml0ZXBhZ2VfdHJhbnNfYmxvY2tzKHN0cnVjdCBpbm9kZSAqKTsKLWV4dGVybiBpbnQgZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBwYWdlICpwYWdlLAorZXh0ZXJuIGludCBleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlX3QgKmhhbmRsZSwKIAkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBmcm9tKTsKK2V4dGVybiBpbnQgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCBwYWdlICpwYWdlKTsKIAogLyogaW9jdGwuYyAqLwogZXh0ZXJuIGxvbmcgZXh0NF9pb2N0bChzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwpAQCAtMTE1OSwxMCArMTE4OSwyMSBAQAogfQogCiAKK3N0YXRpYyBpbmxpbmUgZXh0NF9ncm91cF90IGV4dDRfZmxleF9ncm91cChzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCisJCQkJCSAgICAgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQoreworCXJldHVybiBibG9ja19ncm91cCA+PiBzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleDsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZXh0NF9mbGV4X2JnX3NpemUoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpKQoreworCXJldHVybiAxIDw8IHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworfQorCiAjZGVmaW5lIGV4dDRfc3RkX2Vycm9yKHNiLCBlcnJubykJCQkJXAogZG8gewkJCQkJCQkJXAogCWlmICgoZXJybm8pKQkJCQkJCVwKLQkJX19leHQ0X3N0ZF9lcnJvcigoc2IpLCBfX0ZVTkNUSU9OX18sIChlcnJubykpOwlcCisJCV9fZXh0NF9zdGRfZXJyb3IoKHNiKSwgX19mdW5jX18sIChlcnJubykpOwlcCiB9IHdoaWxlICgwKQogCiAvKgpAQCAtMTE5MSw3ICsxMjMyLDcgQEAKIAkJCWV4dDRfbGJsa190IGlibG9jaywKIAkJCXVuc2lnbmVkIGxvbmcgbWF4X2Jsb2Nrcywgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaF9yZXN1bHQsCiAJCQlpbnQgY3JlYXRlLCBpbnQgZXh0ZW5kX2Rpc2tzaXplKTsKLWV4dGVybiB2b2lkIGV4dDRfZXh0X3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKK2V4dGVybiB2b2lkIGV4dDRfZXh0X3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZXh0X2luaXQoc3RydWN0IHN1cGVyX2Jsb2NrICopOwogZXh0ZXJuIHZvaWQgZXh0NF9leHRfcmVsZWFzZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CiBleHRlcm4gbG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwKQEAgLTExOTksNyArMTI0MCw3IEBACiBleHRlcm4gaW50IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQlzZWN0b3JfdCBibG9jaywgdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzLAogCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgaW50IGNyZWF0ZSwKLQkJCWludCBleHRlbmRfZGlza3NpemUpOworCQkJaW50IGV4dGVuZF9kaXNrc2l6ZSwgaW50IGZsYWcpOwogI2VuZGlmCS8qIF9fS0VSTkVMX18gKi8KIAogI2VuZGlmCS8qIF9FWFQ0X0ggKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9leHRlbnRzLmggYi9mcy9leHQ0L2V4dDRfZXh0ZW50cy5oCmluZGV4IDc1MzMzYjUuLjZjMTY2YzAgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NF9leHRlbnRzLmgKKysrIGIvZnMvZXh0NC9leHQ0X2V4dGVudHMuaApAQCAtMjEyLDYgKzIxMiw3IEBACiAJCShsZTE2X3RvX2NwdShleHQtPmVlX2xlbikgLSBFWFRfSU5JVF9NQVhfTEVOKSk7CiB9CiAKK2V4dGVybiBpbnQgZXh0NF9leHRfY2FsY19tZXRhZGF0YV9hbW91bnQoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGJsb2Nrcyk7CiBleHRlcm4gZXh0NF9mc2Jsa190IGlkeF9wYmxvY2soc3RydWN0IGV4dDRfZXh0ZW50X2lkeCAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZXh0X3N0b3JlX3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnQgKiwgZXh0NF9mc2Jsa190KTsKIGV4dGVybiBpbnQgZXh0NF9leHRlbnRfdHJlZV9pbml0KGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9pLmggYi9mcy9leHQ0L2V4dDRfaS5oCmluZGV4IDI2YTRhZTIuLmVmNzQwOWYgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NF9pLmgKKysrIGIvZnMvZXh0NC9leHQ0X2kuaApAQCAtNzksNyArNzksNyBAQAogfTsKIAogLyoKLSAqIHRoaXJkIGV4dGVuZGVkIGZpbGUgc3lzdGVtIGlub2RlIGRhdGEgaW4gbWVtb3J5CisgKiBmb3VydGggZXh0ZW5kZWQgZmlsZSBzeXN0ZW0gaW5vZGUgZGF0YSBpbiBtZW1vcnkKICAqLwogc3RydWN0IGV4dDRfaW5vZGVfaW5mbyB7CiAJX19sZTMyCWlfZGF0YVsxNV07CS8qIHVuY29udmVydGVkICovCkBAIC0xNTAsNiArMTUwLDcgQEAKIAkgKi8KIAlzdHJ1Y3Qgcndfc2VtYXBob3JlIGlfZGF0YV9zZW07CiAJc3RydWN0IGlub2RlIHZmc19pbm9kZTsKKwlzdHJ1Y3QgamJkMl9pbm9kZSBqaW5vZGU7CiAKIAl1bnNpZ25lZCBsb25nIGlfZXh0X2dlbmVyYXRpb247CiAJc3RydWN0IGV4dDRfZXh0X2NhY2hlIGlfY2FjaGVkX2V4dGVudDsKQEAgLTE2Miw2ICsxNjMsMTMgQEAKIAkvKiBtYmFsbG9jICovCiAJc3RydWN0IGxpc3RfaGVhZCBpX3ByZWFsbG9jX2xpc3Q7CiAJc3BpbmxvY2tfdCBpX3ByZWFsbG9jX2xvY2s7CisKKwkvKiBhbGxvY2F0aW9uIHJlc2VydmF0aW9uIGluZm8gZm9yIGRlbGFsbG9jICovCisJdW5zaWduZWQgbG9uZyBpX3Jlc2VydmVkX2RhdGFfYmxvY2tzOworCXVuc2lnbmVkIGxvbmcgaV9yZXNlcnZlZF9tZXRhX2Jsb2NrczsKKwl1bnNpZ25lZCBsb25nIGlfYWxsb2NhdGVkX21ldGFfYmxvY2tzOworCXVuc2lnbmVkIHNob3J0IGlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZzsKKwlzcGlubG9ja190IGlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jazsKIH07CiAKICNlbmRpZgkvKiBfRVhUNF9JICovCmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfamJkMi5oIGIvZnMvZXh0NC9leHQ0X2piZDIuaAppbmRleCA5MjU1YTdkMi4uZWI4YmMzYSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X2piZDIuaAorKysgYi9mcy9leHQ0L2V4dDRfamJkMi5oCkBAIC0xNDIsMTkgKzE0MiwxNyBAQAogCQkJCWhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOwogCiAjZGVmaW5lIGV4dDRfam91cm5hbF9nZXRfdW5kb19hY2Nlc3MoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhfX0ZVTkNUSU9OX18sIChoYW5kbGUpLCAoYmgpKQorCV9fZXh0NF9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgYmgpIFwKLQlfX2V4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9yZXZva2UoaGFuZGxlLCBibG9ja25yLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX3Jldm9rZShfX0ZVTkNUSU9OX18sIChoYW5kbGUpLCAoYmxvY2tuciksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfcmV2b2tlKF9fZnVuY19fLCAoaGFuZGxlKSwgKGJsb2NrbnIpLCAoYmgpKQogI2RlZmluZSBleHQ0X2pvdXJuYWxfZ2V0X2NyZWF0ZV9hY2Nlc3MoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2dldF9jcmVhdGVfYWNjZXNzKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfZ2V0X2NyZWF0ZV9hY2Nlc3MoX19mdW5jX18sIChoYW5kbGUpLCAoYmgpKQogI2RlZmluZSBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoX19mdW5jX18sIChoYW5kbGUpLCAoYmgpKQogI2RlZmluZSBleHQ0X2pvdXJuYWxfZm9yZ2V0KGhhbmRsZSwgYmgpIFwKLQlfX2V4dDRfam91cm5hbF9mb3JnZXQoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKLQotaW50IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOworCV9fZXh0NF9qb3VybmFsX2ZvcmdldChfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAKIGhhbmRsZV90ICpleHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IG5ibG9ja3MpOwogaW50IF9fZXh0NF9qb3VybmFsX3N0b3AoY29uc3QgY2hhciAqd2hlcmUsIGhhbmRsZV90ICpoYW5kbGUpOwpAQCAtMTY1LDcgKzE2Myw3IEBACiB9CiAKICNkZWZpbmUgZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKSBcCi0JX19leHQ0X2pvdXJuYWxfc3RvcChfX0ZVTkNUSU9OX18sIChoYW5kbGUpKQorCV9fZXh0NF9qb3VybmFsX3N0b3AoX19mdW5jX18sIChoYW5kbGUpKQogCiBzdGF0aWMgaW5saW5lIGhhbmRsZV90ICpleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUodm9pZCkKIHsKQEAgLTE5Miw2ICsxOTAsMTEgQEAKIAlyZXR1cm4gamJkMl9qb3VybmFsX2ZvcmNlX2NvbW1pdChqb3VybmFsKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlyZXR1cm4gamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlLCAmRVhUNF9JKGlub2RlKS0+amlub2RlKTsKK30KKwogLyogc3VwZXIuYyAqLwogaW50IGV4dDRfZm9yY2VfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogCmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfc2IuaCBiL2ZzL2V4dDQvZXh0NF9zYi5oCmluZGV4IDU4MDJlNjkuLjYzMDAyMjYgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NF9zYi5oCisrKyBiL2ZzL2V4dDQvZXh0NF9zYi5oCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAKIC8qCi0gKiB0aGlyZCBleHRlbmRlZC1mcyBzdXBlci1ibG9jayBkYXRhIGluIG1lbW9yeQorICogZm91cnRoIGV4dGVuZGVkLWZzIHN1cGVyLWJsb2NrIGRhdGEgaW4gbWVtb3J5CiAgKi8KIHN0cnVjdCBleHQ0X3NiX2luZm8gewogCXVuc2lnbmVkIGxvbmcgc19kZXNjX3NpemU7CS8qIFNpemUgb2YgYSBncm91cCBkZXNjcmlwdG9yIGluIGJ5dGVzICovCkBAIC0xNDMsNiArMTQzLDkgQEAKIAogCS8qIGxvY2FsaXR5IGdyb3VwcyAqLwogCXN0cnVjdCBleHQ0X2xvY2FsaXR5X2dyb3VwICpzX2xvY2FsaXR5X2dyb3VwczsKKworCXVuc2lnbmVkIGludCBzX2xvZ19ncm91cHNfcGVyX2ZsZXg7CisJc3RydWN0IGZsZXhfZ3JvdXBzICpzX2ZsZXhfZ3JvdXBzOwogfTsKIAogI2VuZGlmCS8qIF9FWFQ0X1NCICovCmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dGVudHMuYyBiL2ZzL2V4dDQvZXh0ZW50cy5jCmluZGV4IDQ3OTI5YzQuLjQyYzRjMGMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0ZW50cy5jCisrKyBiL2ZzL2V4dDQvZXh0ZW50cy5jCkBAIC05MiwxNyArOTIsMTYgQEAKIAlpeC0+ZWlfbGVhZl9oaSA9IGNwdV90b19sZTE2KCh1bnNpZ25lZCBsb25nKSAoKHBiID4+IDMxKSA+PiAxKSAmIDB4ZmZmZik7CiB9CiAKLXN0YXRpYyBoYW5kbGVfdCAqZXh0NF9leHRfam91cm5hbF9yZXN0YXJ0KGhhbmRsZV90ICpoYW5kbGUsIGludCBuZWVkZWQpCitzdGF0aWMgaW50IGV4dDRfZXh0X2pvdXJuYWxfcmVzdGFydChoYW5kbGVfdCAqaGFuZGxlLCBpbnQgbmVlZGVkKQogewogCWludCBlcnI7CiAKIAlpZiAoaGFuZGxlLT5oX2J1ZmZlcl9jcmVkaXRzID4gbmVlZGVkKQotCQlyZXR1cm4gaGFuZGxlOwotCWlmICghZXh0NF9qb3VybmFsX2V4dGVuZChoYW5kbGUsIG5lZWRlZCkpCi0JCXJldHVybiBoYW5kbGU7Ci0JZXJyID0gZXh0NF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlLCBuZWVkZWQpOwotCi0JcmV0dXJuIGhhbmRsZTsKKwkJcmV0dXJuIDA7CisJZXJyID0gZXh0NF9qb3VybmFsX2V4dGVuZChoYW5kbGUsIG5lZWRlZCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwlyZXR1cm4gZXh0NF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlLCBuZWVkZWQpOwogfQogCiAvKgpAQCAtMTgwLDE1ICsxNzksMTggQEAKIAlyZXR1cm4gYmdfc3RhcnQgKyBjb2xvdXIgKyBibG9jazsKIH0KIAorLyoKKyAqIEFsbG9jYXRpb24gZm9yIGEgbWV0YSBkYXRhIGJsb2NrCisgKi8KIHN0YXRpYyBleHQ0X2ZzYmxrX3QKLWV4dDRfZXh0X25ld19ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0NF9leHRfbmV3X21ldGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCXN0cnVjdCBleHQ0X2V4dF9wYXRoICpwYXRoLAogCQkJc3RydWN0IGV4dDRfZXh0ZW50ICpleCwgaW50ICplcnIpCiB7CiAJZXh0NF9mc2Jsa190IGdvYWwsIG5ld2Jsb2NrOwogCiAJZ29hbCA9IGV4dDRfZXh0X2ZpbmRfZ29hbChpbm9kZSwgcGF0aCwgbGUzMl90b19jcHUoZXgtPmVlX2Jsb2NrKSk7Ci0JbmV3YmxvY2sgPSBleHQ0X25ld19ibG9jayhoYW5kbGUsIGlub2RlLCBnb2FsLCBlcnIpOworCW5ld2Jsb2NrID0gZXh0NF9uZXdfbWV0YV9ibG9jayhoYW5kbGUsIGlub2RlLCBnb2FsLCBlcnIpOwogCXJldHVybiBuZXdibG9jazsKIH0KIApAQCAtMjQ2LDYgKzI0OCwzNiBAQAogCXJldHVybiBzaXplOwogfQogCisvKgorICogQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbWV0YWRhdGEgYmxvY2tzIG5lZWRlZAorICogdG8gYWxsb2NhdGUgQGJsb2NrcworICogV29yc2UgY2FzZSBpcyBvbmUgYmxvY2sgcGVyIGV4dGVudAorICovCitpbnQgZXh0NF9leHRfY2FsY19tZXRhZGF0YV9hbW91bnQoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGJsb2NrcykKK3sKKwlpbnQgbGNhcCwgaWNhcCwgcmNhcCwgbGVhZnMsIGlkeHMsIG51bTsKKwlpbnQgbmV3ZXh0ZW50cyA9IGJsb2NrczsKKworCXJjYXAgPSBleHQ0X2V4dF9zcGFjZV9yb290X2lkeChpbm9kZSk7CisJbGNhcCA9IGV4dDRfZXh0X3NwYWNlX2Jsb2NrKGlub2RlKTsKKwlpY2FwID0gZXh0NF9leHRfc3BhY2VfYmxvY2tfaWR4KGlub2RlKTsKKworCS8qIG51bWJlciBvZiBuZXcgbGVhZiBibG9ja3MgbmVlZGVkICovCisJbnVtID0gbGVhZnMgPSAobmV3ZXh0ZW50cyArIGxjYXAgLSAxKSAvIGxjYXA7CisKKwkvKgorCSAqIFdvcnNlIGNhc2UsIHdlIG5lZWQgc2VwYXJhdGUgaW5kZXggYmxvY2socykKKwkgKiB0byBsaW5rIGFsbCBuZXcgbGVhZiBibG9ja3MKKwkgKi8KKwlpZHhzID0gKGxlYWZzICsgaWNhcCAtIDEpIC8gaWNhcDsKKwlkbyB7CisJCW51bSArPSBpZHhzOworCQlpZHhzID0gKGlkeHMgKyBpY2FwIC0gMSkgLyBpY2FwOworCX0gd2hpbGUgKGlkeHMgPiByY2FwKTsKKworCXJldHVybiBudW07Cit9CisKIHN0YXRpYyBpbnQKIGV4dDRfZXh0X21heF9lbnRyaWVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBkZXB0aCkKIHsKQEAgLTUyNCw2ICs1NTYsNyBAQAogCQlhbGxvYyA9IDE7CiAJfQogCXBhdGhbMF0ucF9oZHIgPSBlaDsKKwlwYXRoWzBdLnBfYmggPSBOVUxMOwogCiAJaSA9IGRlcHRoOwogCS8qIHdhbGsgdGhyb3VnaCB0aGUgdHJlZSAqLwpAQCAtNTUyLDEyICs1ODUsMTQgQEAKIAl9CiAKIAlwYXRoW3Bwb3NdLnBfZGVwdGggPSBpOwotCXBhdGhbcHBvc10ucF9oZHIgPSBlaDsKIAlwYXRoW3Bwb3NdLnBfZXh0ID0gTlVMTDsKIAlwYXRoW3Bwb3NdLnBfaWR4ID0gTlVMTDsKIAogCS8qIGZpbmQgZXh0ZW50ICovCiAJZXh0NF9leHRfYmluc2VhcmNoKGlub2RlLCBwYXRoICsgcHBvcywgYmxvY2spOworCS8qIGlmIG5vdCBhbiBlbXB0eSBsZWFmICovCisJaWYgKHBhdGhbcHBvc10ucF9leHQpCisJCXBhdGhbcHBvc10ucF9ibG9jayA9IGV4dF9wYmxvY2socGF0aFtwcG9zXS5wX2V4dCk7CiAKIAlleHQ0X2V4dF9zaG93X3BhdGgoaW5vZGUsIHBhdGgpOwogCkBAIC02ODgsNyArNzIzLDggQEAKIAkvKiBhbGxvY2F0ZSBhbGwgbmVlZGVkIGJsb2NrcyAqLwogCWV4dF9kZWJ1ZygiYWxsb2NhdGUgJWQgYmxvY2tzIGZvciBpbmRleGVzL2xlYWZcbiIsIGRlcHRoIC0gYXQpOwogCWZvciAoYSA9IDA7IGEgPCBkZXB0aCAtIGF0OyBhKyspIHsKLQkJbmV3YmxvY2sgPSBleHQ0X2V4dF9uZXdfYmxvY2soaGFuZGxlLCBpbm9kZSwgcGF0aCwgbmV3ZXh0LCAmZXJyKTsKKwkJbmV3YmxvY2sgPSBleHQ0X2V4dF9uZXdfbWV0YV9ibG9jayhoYW5kbGUsIGlub2RlLCBwYXRoLAorCQkJCQkJICAgbmV3ZXh0LCAmZXJyKTsKIAkJaWYgKG5ld2Jsb2NrID09IDApCiAJCQlnb3RvIGNsZWFudXA7CiAJCWFibG9ja3NbYV0gPSBuZXdibG9jazsKQEAgLTg4NCw3ICs5MjAsNyBAQAogCWV4dDRfZnNibGtfdCBuZXdibG9jazsKIAlpbnQgZXJyID0gMDsKIAotCW5ld2Jsb2NrID0gZXh0NF9leHRfbmV3X2Jsb2NrKGhhbmRsZSwgaW5vZGUsIHBhdGgsIG5ld2V4dCwgJmVycik7CisJbmV3YmxvY2sgPSBleHQ0X2V4dF9uZXdfbWV0YV9ibG9jayhoYW5kbGUsIGlub2RlLCBwYXRoLCBuZXdleHQsICZlcnIpOwogCWlmIChuZXdibG9jayA9PSAwKQogCQlyZXR1cm4gZXJyOwogCkBAIC05ODEsNiArMTAxNyw4IEBACiAJCS8qIGlmIHdlIGZvdW5kIGluZGV4IHdpdGggZnJlZSBlbnRyeSwgdGhlbiB1c2UgdGhhdAogCQkgKiBlbnRyeTogY3JlYXRlIGFsbCBuZWVkZWQgc3VidHJlZSBhbmQgYWRkIG5ldyBsZWFmICovCiAJCWVyciA9IGV4dDRfZXh0X3NwbGl0KGhhbmRsZSwgaW5vZGUsIHBhdGgsIG5ld2V4dCwgaSk7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dDsKIAogCQkvKiByZWZpbGwgcGF0aCAqLwogCQlleHQ0X2V4dF9kcm9wX3JlZnMocGF0aCk7CkBAIC0xODgzLDExICsxOTIxLDkgQEAKIAkJY3JlZGl0cyArPSAyICogRVhUNF9RVU9UQV9UUkFOU19CTE9DS1MoaW5vZGUtPmlfc2IpOwogI2VuZGlmCiAKLQkJaGFuZGxlID0gZXh0NF9leHRfam91cm5hbF9yZXN0YXJ0KGhhbmRsZSwgY3JlZGl0cyk7Ci0JCWlmIChJU19FUlIoaGFuZGxlKSkgewotCQkJZXJyID0gUFRSX0VSUihoYW5kbGUpOworCQllcnIgPSBleHQ0X2V4dF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlLCBjcmVkaXRzKTsKKwkJaWYgKGVycikKIAkJCWdvdG8gb3V0OwotCQl9CiAKIAkJZXJyID0gZXh0NF9leHRfZ2V0X2FjY2VzcyhoYW5kbGUsIGlub2RlLCBwYXRoICsgZGVwdGgpOwogCQlpZiAoZXJyKQpAQCAtMjUyOSw2ICsyNTY1LDcgQEAKIAlpbnQgZXJyID0gMCwgZGVwdGgsIHJldDsKIAl1bnNpZ25lZCBsb25nIGFsbG9jYXRlZCA9IDA7CiAJc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOworCWxvZmZfdCBkaXNrc2l6ZTsKIAogCV9fY2xlYXJfYml0KEJIX05ldywgJmJoX3Jlc3VsdC0+Yl9zdGF0ZSk7CiAJZXh0X2RlYnVnKCJibG9ja3MgJXUvJWx1IHJlcXVlc3RlZCBmb3IgaW5vZGUgJXVcbiIsCkBAIC0yNjE2LDggKzI2NTMsNyBAQAogCQkJCSAqLwogCQkJCWlmIChhbGxvY2F0ZWQgPiBtYXhfYmxvY2tzKQogCQkJCQlhbGxvY2F0ZWQgPSBtYXhfYmxvY2tzOwotCQkJCS8qIG1hcmsgdGhlIGJ1ZmZlciB1bndyaXR0ZW4gKi8KLQkJCQlfX3NldF9iaXQoQkhfVW53cml0dGVuLCAmYmhfcmVzdWx0LT5iX3N0YXRlKTsKKwkJCQlzZXRfYnVmZmVyX3Vud3JpdHRlbihiaF9yZXN1bHQpOwogCQkJCWdvdG8gb3V0MjsKIAkJCX0KIApAQCAtMjcxNiwxNCArMjc1MiwxOSBAQAogCQlnb3RvIG91dDI7CiAJfQogCi0JaWYgKGV4dGVuZF9kaXNrc2l6ZSAmJiBpbm9kZS0+aV9zaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkKLQkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7Ci0KIAkvKiBwcmV2aW91cyByb3V0aW5lIGNvdWxkIHVzZSBibG9jayB3ZSBhbGxvY2F0ZWQgKi8KIAluZXdibG9jayA9IGV4dF9wYmxvY2soJm5ld2V4KTsKIAlhbGxvY2F0ZWQgPSBleHQ0X2V4dF9nZXRfYWN0dWFsX2xlbigmbmV3ZXgpOwogb3V0bmV3OgotCV9fc2V0X2JpdChCSF9OZXcsICZiaF9yZXN1bHQtPmJfc3RhdGUpOworCWlmIChleHRlbmRfZGlza3NpemUpIHsKKwkJZGlza3NpemUgPSAoKGxvZmZfdCkgaWJsb2NrICsgYXIubGVuKSA8PCBpbm9kZS0+aV9ibGtiaXRzOworCQlpZiAoZGlza3NpemUgPiBpX3NpemVfcmVhZChpbm9kZSkpCisJCQlkaXNrc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwkJaWYgKGRpc2tzaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkKKwkJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBkaXNrc2l6ZTsKKwl9CisKKwlzZXRfYnVmZmVyX25ldyhiaF9yZXN1bHQpOwogCiAJLyogQ2FjaGUgb25seSB3aGVuIGl0IGlzIF9ub3RfIGFuIHVuaW5pdGlhbGl6ZWQgZXh0ZW50ICovCiAJaWYgKGNyZWF0ZSAhPSBFWFQ0X0NSRUFURV9VTklOSVRJQUxJWkVEX0VYVCkKQEAgLTI3MzMsNyArMjc3NCw3IEBACiAJaWYgKGFsbG9jYXRlZCA+IG1heF9ibG9ja3MpCiAJCWFsbG9jYXRlZCA9IG1heF9ibG9ja3M7CiAJZXh0NF9leHRfc2hvd19sZWFmKGlub2RlLCBwYXRoKTsKLQlfX3NldF9iaXQoQkhfTWFwcGVkLCAmYmhfcmVzdWx0LT5iX3N0YXRlKTsKKwlzZXRfYnVmZmVyX21hcHBlZChiaF9yZXN1bHQpOwogCWJoX3Jlc3VsdC0+Yl9iZGV2ID0gaW5vZGUtPmlfc2ItPnNfYmRldjsKIAliaF9yZXN1bHQtPmJfYmxvY2tuciA9IG5ld2Jsb2NrOwogb3V0MjoKQEAgLTI3NDQsNyArMjc4NSw3IEBACiAJcmV0dXJuIGVyciA/IGVyciA6IGFsbG9jYXRlZDsKIH0KIAotdm9pZCBleHQ0X2V4dF90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCit2b2lkIGV4dDRfZXh0X3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOwogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpbm9kZS0+aV9zYjsKQEAgLTI3NTcsMTggKzI3OTgsMTQgQEAKIAkgKi8KIAllcnIgPSBleHQ0X3dyaXRlcGFnZV90cmFuc19ibG9ja3MoaW5vZGUpICsgMzsKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGVycik7Ci0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCWlmIChwYWdlKSB7Ci0JCQljbGVhcl9oaWdocGFnZShwYWdlKTsKLQkJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOwotCQkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7Ci0JCX0KKwlpZiAoSVNfRVJSKGhhbmRsZSkpCiAJCXJldHVybjsKLQl9CiAKLQlpZiAocGFnZSkKLQkJZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgcGFnZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CisJaWYgKGlub2RlLT5pX3NpemUgJiAoc2ItPnNfYmxvY2tzaXplIC0gMSkpCisJCWV4dDRfYmxvY2tfdHJ1bmNhdGVfcGFnZShoYW5kbGUsIG1hcHBpbmcsIGlub2RlLT5pX3NpemUpOworCisJaWYgKGV4dDRfb3JwaGFuX2FkZChoYW5kbGUsIGlub2RlKSkKKwkJZ290byBvdXRfc3RvcDsKIAogCWRvd25fd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwogCWV4dDRfZXh0X2ludmFsaWRhdGVfY2FjaGUoaW5vZGUpOwpAQCAtMjc4MCw4ICsyODE3LDYgQEAKIAkgKiBQcm9iYWJseSB3ZSBuZWVkIG5vdCBzY2FuIGF0IGFsbCwKIAkgKiBiZWNhdXNlIHBhZ2UgdHJ1bmNhdGlvbiBpcyBlbm91Z2guCiAJICovCi0JaWYgKGV4dDRfb3JwaGFuX2FkZChoYW5kbGUsIGlub2RlKSkKLQkJZ290byBvdXRfc3RvcDsKIAogCS8qIHdlIGhhdmUgdG8ga25vdyB3aGVyZSB0byB0cnVuY2F0ZSBmcm9tIGluIGNyYXNoIGNhc2UgKi8KIAlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gaW5vZGUtPmlfc2l6ZTsKQEAgLTI3OTgsNiArMjgzMyw3IEBACiAJCWhhbmRsZS0+aF9zeW5jID0gMTsKIAogb3V0X3N0b3A6CisJdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwogCS8qCiAJICogSWYgdGhpcyB3YXMgYSBzaW1wbGUgZnRydW5jYXRlKCkgYW5kIHRoZSBmaWxlIHdpbGwgcmVtYWluIGFsaXZlLAogCSAqIHRoZW4gd2UgbmVlZCB0byBjbGVhciB1cCB0aGUgb3JwaGFuIHJlY29yZCB3aGljaCB3ZSBjcmVhdGVkIGFib3ZlLgpAQCAtMjgwOCw3ICsyODQ0LDYgQEAKIAlpZiAoaW5vZGUtPmlfbmxpbmspCiAJCWV4dDRfb3JwaGFuX2RlbChoYW5kbGUsIGlub2RlKTsKIAotCXVwX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKTsKIAlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gZXh0NF9jdXJyZW50X3RpbWUoaW5vZGUpOwogCWV4dDRfbWFya19pbm9kZV9kaXJ0eShoYW5kbGUsIGlub2RlKTsKIAlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwpAQCAtMjkxMSw3ICsyOTQ2LDcgQEAKIAkJfQogCQlyZXQgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChoYW5kbGUsIGlub2RlLCBibG9jaywKIAkJCQkJICBtYXhfYmxvY2tzLCAmbWFwX2JoLAotCQkJCQkgIEVYVDRfQ1JFQVRFX1VOSU5JVElBTElaRURfRVhULCAwKTsKKwkJCQkJICBFWFQ0X0NSRUFURV9VTklOSVRJQUxJWkVEX0VYVCwgMCwgMCk7CiAJCWlmIChyZXQgPD0gMCkgewogI2lmZGVmIEVYVDRGU19ERUJVRwogCQkJV0FSTl9PTihyZXQgPD0gMCk7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2ZpbGUuYyBiL2ZzL2V4dDQvZmlsZS5jCmluZGV4IDQxNTliZTYuLjQzMGViNzkgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZmlsZS5jCisrKyBiL2ZzL2V4dDQvZmlsZS5jCkBAIC0xMjMsNiArMTIzLDIzIEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBleHQ0X2ZpbGVfdm1fb3BzID0geworCS5mYXVsdAkJPSBmaWxlbWFwX2ZhdWx0LAorCS5wYWdlX21rd3JpdGUgICA9IGV4dDRfcGFnZV9ta3dyaXRlLAorfTsKKworc3RhdGljIGludCBleHQ0X2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7CisKKwlpZiAoIW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSkKKwkJcmV0dXJuIC1FTk9FWEVDOworCWZpbGVfYWNjZXNzZWQoZmlsZSk7CisJdm1hLT52bV9vcHMgPSAmZXh0NF9maWxlX3ZtX29wczsKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX0NBTl9OT05MSU5FQVI7CisJcmV0dXJuIDA7Cit9CisKIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZXh0NF9maWxlX29wZXJhdGlvbnMgPSB7CiAJLmxsc2VlawkJPSBnZW5lcmljX2ZpbGVfbGxzZWVrLAogCS5yZWFkCQk9IGRvX3N5bmNfcmVhZCwKQEAgLTEzMyw3ICsxNTAsNyBAQAogI2lmZGVmIENPTkZJR19DT01QQVQKIAkuY29tcGF0X2lvY3RsCT0gZXh0NF9jb21wYXRfaW9jdGwsCiAjZW5kaWYKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJPSBleHQ0X2ZpbGVfbW1hcCwKIAkub3BlbgkJPSBnZW5lcmljX2ZpbGVfb3BlbiwKIAkucmVsZWFzZQk9IGV4dDRfcmVsZWFzZV9maWxlLAogCS5mc3luYwkJPSBleHQ0X3N5bmNfZmlsZSwKQEAgLTE0NCw2ICsxNjEsNyBAQAogY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgZXh0NF9maWxlX2lub2RlX29wZXJhdGlvbnMgPSB7CiAJLnRydW5jYXRlCT0gZXh0NF90cnVuY2F0ZSwKIAkuc2V0YXR0cgk9IGV4dDRfc2V0YXR0ciwKKwkuZ2V0YXR0cgk9IGV4dDRfZ2V0YXR0ciwKICNpZmRlZiBDT05GSUdfRVhUNERFVl9GU19YQVRUUgogCS5zZXR4YXR0cgk9IGdlbmVyaWNfc2V0eGF0dHIsCiAJLmdldHhhdHRyCT0gZ2VuZXJpY19nZXR4YXR0ciwKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZnN5bmMuYyBiL2ZzL2V4dDQvZnN5bmMuYwppbmRleCAxYzhiYTQ4Li5hNDVjMzczIDEwMDY0NAotLS0gYS9mcy9leHQ0L2ZzeW5jLmMKKysrIGIvZnMvZXh0NC9mc3luYy5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KICNpbmNsdWRlIDxsaW51eC9qYmQyLmg+CisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CiAjaW5jbHVkZSAiZXh0NC5oIgogI2luY2x1ZGUgImV4dDRfamJkMi5oIgogCkBAIC00NSw2ICs0Niw3IEBACiBpbnQgZXh0NF9zeW5jX2ZpbGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRhc3luYykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOworCWpvdXJuYWxfdCAqam91cm5hbCA9IEVYVDRfU0IoaW5vZGUtPmlfc2IpLT5zX2pvdXJuYWw7CiAJaW50IHJldCA9IDA7CiAKIAlKX0FTU0VSVChleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKSA9PSBOVUxMKTsKQEAgLTg1LDYgKzg3LDggQEAKIAkJCS5ucl90b193cml0ZSA9IDAsIC8qIHN5c19mc3luYyBkaWQgdGhpcyAqLwogCQl9OwogCQlyZXQgPSBzeW5jX2lub2RlKGlub2RlLCAmd2JjKTsKKwkJaWYgKGpvdXJuYWwgJiYgKGpvdXJuYWwtPmpfZmxhZ3MgJiBKQkQyX0JBUlJJRVIpKQorCQkJYmxrZGV2X2lzc3VlX2ZsdXNoKGlub2RlLT5pX3NiLT5zX2JkZXYsIE5VTEwpOwogCX0KIG91dDoKIAlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9ncm91cC5oIGIvZnMvZXh0NC9ncm91cC5oCmluZGV4IDdlYjA2MDQuLmMyYzBhOGQgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZ3JvdXAuaAorKysgYi9mcy9leHQ0L2dyb3VwLmgKQEAgLTEzLDcgKzEzLDcgQEAKIAkJCQkgICBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHApOwogZXh0ZXJuIGludCBleHQ0X2dyb3VwX2Rlc2NfY3N1bV92ZXJpZnkoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLCBfX3UzMiBncm91cCwKIAkJCQkgICAgICAgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZ2RwKTsKLXN0cnVjdCBidWZmZXJfaGVhZCAqcmVhZF9ibG9ja19iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKK3N0cnVjdCBidWZmZXJfaGVhZCAqZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCSAgICAgIGV4dDRfZ3JvdXBfdCBibG9ja19ncm91cCk7CiBleHRlcm4gdW5zaWduZWQgZXh0NF9pbml0X2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCSAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pYWxsb2MuYyBiL2ZzL2V4dDQvaWFsbG9jLmMKaW5kZXggYzZlZmJhYjAuLmE5MmViMzAgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaWFsbG9jLmMKKysrIGIvZnMvZXh0NC9pYWxsb2MuYwpAQCAtMTU3LDYgKzE1Nyw3IEBACiAJc3RydWN0IGV4dDRfc3VwZXJfYmxvY2sgKiBlczsKIAlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmk7CiAJaW50IGZhdGFsID0gMCwgZXJyOworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwOwogCiAJaWYgKGF0b21pY19yZWFkKCZpbm9kZS0+aV9jb3VudCkgPiAxKSB7CiAJCXByaW50ayAoImV4dDRfZnJlZV9pbm9kZTogaW5vZGUgaGFzIGNvdW50PSVkXG4iLApAQCAtMjMyLDYgKzIzMywxMiBAQAogCQkJaWYgKGlzX2RpcmVjdG9yeSkKIAkJCQlwZXJjcHVfY291bnRlcl9kZWMoJnNiaS0+c19kaXJzX2NvdW50ZXIpOwogCisJCQlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJCQlmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgYmxvY2tfZ3JvdXApOworCQkJCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9pbm9kZXMrKzsKKwkJCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJCX0KIAkJfQogCQlCVUZGRVJfVFJBQ0UoYmgyLCAiY2FsbCBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEiKTsKIAkJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYmgyKTsKQEAgLTI4Niw2ICsyOTMsODAgQEAKIAlyZXR1cm4gcmV0OwogfQogCisjZGVmaW5lIGZyZWVfYmxvY2tfcmF0aW8gMTAKKworc3RhdGljIGludCBmaW5kX2dyb3VwX2ZsZXgoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGlub2RlICpwYXJlbnQsCisJCQkgICBleHQ0X2dyb3VwX3QgKmJlc3RfZ3JvdXApCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOworCXN0cnVjdCBmbGV4X2dyb3VwcyAqZmxleF9ncm91cCA9IHNiaS0+c19mbGV4X2dyb3VwczsKKwlleHQ0X2dyb3VwX3QgcGFyZW50X2dyb3VwID0gRVhUNF9JKHBhcmVudCktPmlfYmxvY2tfZ3JvdXA7CisJZXh0NF9ncm91cF90IHBhcmVudF9mYmdfZ3JvdXAgPSBleHQ0X2ZsZXhfZ3JvdXAoc2JpLCBwYXJlbnRfZ3JvdXApOworCWV4dDRfZ3JvdXBfdCBuZ3JvdXBzID0gc2JpLT5zX2dyb3Vwc19jb3VudDsKKwlpbnQgZmxleF9zaXplID0gZXh0NF9mbGV4X2JnX3NpemUoc2JpKTsKKwlleHQ0X2dyb3VwX3QgYmVzdF9mbGV4ID0gcGFyZW50X2ZiZ19ncm91cDsKKwlpbnQgYmxvY2tzX3Blcl9mbGV4ID0gc2JpLT5zX2Jsb2Nrc19wZXJfZ3JvdXAgKiBmbGV4X3NpemU7CisJaW50IGZsZXhiZ19mcmVlX2Jsb2NrczsKKwlpbnQgZmxleF9mcmVlYl9yYXRpbzsKKwlleHQ0X2dyb3VwX3Qgbl9mYmdfZ3JvdXBzOworCWV4dDRfZ3JvdXBfdCBpOworCisJbl9mYmdfZ3JvdXBzID0gKHNiaS0+c19ncm91cHNfY291bnQgKyBmbGV4X3NpemUgLSAxKSA+PgorCQlzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleDsKKworZmluZF9jbG9zZV90b19wYXJlbnQ6CisJZmxleGJnX2ZyZWVfYmxvY2tzID0gZmxleF9ncm91cFtiZXN0X2ZsZXhdLmZyZWVfYmxvY2tzOworCWZsZXhfZnJlZWJfcmF0aW8gPSBmbGV4YmdfZnJlZV9ibG9ja3MgKiAxMDAgLyBibG9ja3NfcGVyX2ZsZXg7CisJaWYgKGZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2lub2RlcyAmJgorCSAgICBmbGV4X2ZyZWViX3JhdGlvID4gZnJlZV9ibG9ja19yYXRpbykKKwkJZ290byBmb3VuZF9mbGV4Ymc7CisKKwlpZiAoYmVzdF9mbGV4ICYmIGJlc3RfZmxleCA9PSBwYXJlbnRfZmJnX2dyb3VwKSB7CisJCWJlc3RfZmxleC0tOworCQlnb3RvIGZpbmRfY2xvc2VfdG9fcGFyZW50OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBuX2ZiZ19ncm91cHM7IGkrKykgeworCQlpZiAoaSA9PSBwYXJlbnRfZmJnX2dyb3VwIHx8IGkgPT0gcGFyZW50X2ZiZ19ncm91cCAtIDEpCisJCQljb250aW51ZTsKKworCQlmbGV4YmdfZnJlZV9ibG9ja3MgPSBmbGV4X2dyb3VwW2ldLmZyZWVfYmxvY2tzOworCQlmbGV4X2ZyZWViX3JhdGlvID0gZmxleGJnX2ZyZWVfYmxvY2tzICogMTAwIC8gYmxvY2tzX3Blcl9mbGV4OworCisJCWlmIChmbGV4X2ZyZWViX3JhdGlvID4gZnJlZV9ibG9ja19yYXRpbyAmJgorCQkgICAgZmxleF9ncm91cFtpXS5mcmVlX2lub2RlcykgeworCQkJYmVzdF9mbGV4ID0gaTsKKwkJCWdvdG8gZm91bmRfZmxleGJnOworCQl9CisKKwkJaWYgKGJlc3RfZmxleCA8IDAgfHwKKwkJICAgIChmbGV4X2dyb3VwW2ldLmZyZWVfYmxvY2tzID4KKwkJICAgICBmbGV4X2dyb3VwW2Jlc3RfZmxleF0uZnJlZV9ibG9ja3MgJiYKKwkJICAgICBmbGV4X2dyb3VwW2ldLmZyZWVfaW5vZGVzKSkKKwkJCWJlc3RfZmxleCA9IGk7CisJfQorCisJaWYgKCFmbGV4X2dyb3VwW2Jlc3RfZmxleF0uZnJlZV9pbm9kZXMgfHwKKwkgICAgIWZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2Jsb2NrcykKKwkJcmV0dXJuIC0xOworCitmb3VuZF9mbGV4Ymc6CisJZm9yIChpID0gYmVzdF9mbGV4ICogZmxleF9zaXplOyBpIDwgbmdyb3VwcyAmJgorCQkgICAgIGkgPCAoYmVzdF9mbGV4ICsgMSkgKiBmbGV4X3NpemU7IGkrKykgeworCQlkZXNjID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgaSwgJmJoKTsKKwkJaWYgKGxlMTZfdG9fY3B1KGRlc2MtPmJnX2ZyZWVfaW5vZGVzX2NvdW50KSkgeworCQkJKmJlc3RfZ3JvdXAgPSBpOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gLTE7CitvdXQ6CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBPcmxvdidzIGFsbG9jYXRvciBmb3IgZGlyZWN0b3JpZXMuCiAgKgpAQCAtNTAxLDYgKzU4Miw3IEBACiAJc3RydWN0IGlub2RlICpyZXQ7CiAJZXh0NF9ncm91cF90IGk7CiAJaW50IGZyZWUgPSAwOworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwOwogCiAJLyogQ2Fubm90IGNyZWF0ZSBmaWxlcyBpbiBhIGRlbGV0ZWQgZGlyZWN0b3J5ICovCiAJaWYgKCFkaXIgfHwgIWRpci0+aV9ubGluaykKQEAgLTUxNCw2ICs1OTYsMTIgQEAKIAogCXNiaSA9IEVYVDRfU0Ioc2IpOwogCWVzID0gc2JpLT5zX2VzOworCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCXJldDIgPSBmaW5kX2dyb3VwX2ZsZXgoc2IsIGRpciwgJmdyb3VwKTsKKwkJZ290byBnb3RfZ3JvdXA7CisJfQorCiAJaWYgKFNfSVNESVIobW9kZSkpIHsKIAkJaWYgKHRlc3Rfb3B0IChzYiwgT0xEQUxMT0MpKQogCQkJcmV0MiA9IGZpbmRfZ3JvdXBfZGlyKHNiLCBkaXIsICZncm91cCk7CkBAIC01MjIsNiArNjEwLDcgQEAKIAl9IGVsc2UKIAkJcmV0MiA9IGZpbmRfZ3JvdXBfb3RoZXIoc2IsIGRpciwgJmdyb3VwKTsKIAorZ290X2dyb3VwOgogCWVyciA9IC1FTk9TUEM7CiAJaWYgKHJldDIgPT0gLTEpCiAJCWdvdG8gb3V0OwpAQCAtNjAwLDcgKzY4OSw3IEBACiAJLyogV2UgbWF5IGhhdmUgdG8gaW5pdGlhbGl6ZSB0aGUgYmxvY2sgYml0bWFwIGlmIGl0IGlzbid0IGFscmVhZHkgKi8KIAlpZiAoRVhUNF9IQVNfUk9fQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfR0RUX0NTVU0pICYmCiAJICAgIGdkcC0+YmdfZmxhZ3MgJiBjcHVfdG9fbGUxNihFWFQ0X0JHX0JMT0NLX1VOSU5JVCkpIHsKLQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpibG9ja19iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cCk7CisJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmxvY2tfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cCk7CiAKIAkJQlVGRkVSX1RSQUNFKGJsb2NrX2JoLCAiZ2V0IGJsb2NrIGJpdG1hcCBhY2Nlc3MiKTsKIAkJZXJyID0gZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBibG9ja19iaCk7CkBAIC02NzYsNiArNzY1LDEzIEBACiAJCXBlcmNwdV9jb3VudGVyX2luYygmc2JpLT5zX2RpcnNfY291bnRlcik7CiAJc2ItPnNfZGlydCA9IDE7CiAKKwlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIGdyb3VwKTsKKwkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9pbm9kZXMtLTsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQorCiAJaW5vZGUtPmlfdWlkID0gY3VycmVudC0+ZnN1aWQ7CiAJaWYgKHRlc3Rfb3B0IChzYiwgR1JQSUQpKQogCQlpbm9kZS0+aV9naWQgPSBkaXItPmlfZ2lkOwpAQCAtNzQwLDE0ICs4MzYsMTAgQEAKIAkJZ290byBmYWlsX2ZyZWVfZHJvcDsKIAogCWlmICh0ZXN0X29wdChzYiwgRVhURU5UUykpIHsKLQkJLyogc2V0IGV4dGVudCBmbGFnIG9ubHkgZm9yIGRpcmV0b3J5LCBmaWxlIGFuZCBub3JtYWwgc3ltbGluayovCisJCS8qIHNldCBleHRlbnQgZmxhZyBvbmx5IGZvciBkaXJlY3RvcnksIGZpbGUgYW5kIG5vcm1hbCBzeW1saW5rKi8KIAkJaWYgKFNfSVNESVIobW9kZSkgfHwgU19JU1JFRyhtb2RlKSB8fCBTX0lTTE5LKG1vZGUpKSB7CiAJCQlFWFQ0X0koaW5vZGUpLT5pX2ZsYWdzIHw9IEVYVDRfRVhURU5UU19GTDsKIAkJCWV4dDRfZXh0X3RyZWVfaW5pdChoYW5kbGUsIGlub2RlKTsKLQkJCWVyciA9IGV4dDRfdXBkYXRlX2luY29tcGF0X2ZlYXR1cmUoaGFuZGxlLCBzYiwKLQkJCQkJRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0VYVEVOVFMpOwotCQkJaWYgKGVycikKLQkJCQlnb3RvIGZhaWxfZnJlZV9kcm9wOwogCQl9CiAJfQogCkBAIC04MTcsNiArOTA5LDE0IEBACiAJaWYgKElTX0VSUihpbm9kZSkpCiAJCWdvdG8gaWdldF9mYWlsZWQ7CiAKKwkvKgorCSAqIElmIHRoZSBvcnBoYW5zIGhhcyBpX25saW5rcyA+IDAgdGhlbiBpdCBzaG91bGQgYmUgYWJsZSB0byBiZQorCSAqIHRydW5jYXRlZCwgb3RoZXJ3aXNlIGl0IHdvbid0IGJlIHJlbW92ZWQgZnJvbSB0aGUgb3JwaGFuIGxpc3QKKwkgKiBkdXJpbmcgcHJvY2Vzc2luZyBhbmQgYW4gaW5maW5pdGUgbG9vcCB3aWxsIHJlc3VsdC4KKwkgKi8KKwlpZiAoaW5vZGUtPmlfbmxpbmsgJiYgIWV4dDRfY2FuX3RydW5jYXRlKGlub2RlKSkKKwkJZ290byBiYWRfb3JwaGFuOworCiAJaWYgKE5FWFRfT1JQSEFOKGlub2RlKSA+IG1heF9pbm8pCiAJCWdvdG8gYmFkX29ycGhhbjsKIAlicmVsc2UoYml0bWFwX2JoKTsKQEAgLTgzOCw2ICs5MzgsNyBAQAogCQlwcmludGsoS0VSTl9OT1RJQ0UgIk5FWFRfT1JQSEFOKGlub2RlKT0ldVxuIiwKIAkJICAgICAgIE5FWFRfT1JQSEFOKGlub2RlKSk7CiAJCXByaW50ayhLRVJOX05PVElDRSAibWF4X2lubz0lbHVcbiIsIG1heF9pbm8pOworCQlwcmludGsoS0VSTl9OT1RJQ0UgImlfbmxpbms9JXVcbiIsIGlub2RlLT5pX25saW5rKTsKIAkJLyogQXZvaWQgZnJlZWluZyBibG9ja3MgaWYgd2UgZ290IGEgYmFkIGRlbGV0ZWQgaW5vZGUgKi8KIAkJaWYgKGlub2RlLT5pX25saW5rID09IDApCiAJCQlpbm9kZS0+aV9ibG9ja3MgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9kZS5jCmluZGV4IDhkOTcwNzcuLjhjYTI3NjMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5vZGUuYworKysgYi9mcy9leHQ0L2lub2RlLmMKQEAgLTMyLDEyICszMiwyMyBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZXZlYy5oPgogI2luY2x1ZGUgPGxpbnV4L21wYWdlLmg+CiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVkZSA8bGludXgvYmlvLmg+CiAjaW5jbHVkZSAiZXh0NF9qYmQyLmgiCiAjaW5jbHVkZSAieGF0dHIuaCIKICNpbmNsdWRlICJhY2wuaCIKKyNpbmNsdWRlICJleHQ0X2V4dGVudHMuaCIKKworc3RhdGljIGlubGluZSBpbnQgZXh0NF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgIGxvZmZfdCBuZXdfc2l6ZSkKK3sKKwlyZXR1cm4gamJkMl9qb3VybmFsX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoJkVYVDRfSShpbm9kZSktPmppbm9kZSwKKwkJCQkJCSAgIG5ld19zaXplKTsKK30KKworc3RhdGljIHZvaWQgZXh0NF9pbnZhbGlkYXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogCiAvKgogICogVGVzdCB3aGV0aGVyIGFuIGlub2RlIGlzIGEgZmFzdCBzeW1saW5rLgpAQCAtMTgxLDYgKzE5Miw4IEBACiB7CiAJaGFuZGxlX3QgKmhhbmRsZTsKIAorCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKKwkJZXh0NF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKGlub2RlLCAwKTsKIAl0cnVuY2F0ZV9pbm9kZV9wYWdlcygmaW5vZGUtPmlfZGF0YSwgMCk7CiAKIAlpZiAoaXNfYmFkX2lub2RlKGlub2RlKSkKQEAgLTUwOCwxMSArNTIxLDEyIEBACiAgKgkJZGlyZWN0IGJsb2NrcwogICovCiBzdGF0aWMgaW50IGV4dDRfYWxsb2NfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQlleHQ0X2ZzYmxrX3QgZ29hbCwgaW50IGluZGlyZWN0X2Jsa3MsIGludCBibGtzLAotCQkJZXh0NF9mc2Jsa190IG5ld19ibG9ja3NbNF0sIGludCAqZXJyKQorCQkJCWV4dDRfbGJsa190IGlibG9jaywgZXh0NF9mc2Jsa190IGdvYWwsCisJCQkJaW50IGluZGlyZWN0X2Jsa3MsIGludCBibGtzLAorCQkJCWV4dDRfZnNibGtfdCBuZXdfYmxvY2tzWzRdLCBpbnQgKmVycikKIHsKIAlpbnQgdGFyZ2V0LCBpOwotCXVuc2lnbmVkIGxvbmcgY291bnQgPSAwOworCXVuc2lnbmVkIGxvbmcgY291bnQgPSAwLCBibGtfYWxsb2NhdGVkID0gMDsKIAlpbnQgaW5kZXggPSAwOwogCWV4dDRfZnNibGtfdCBjdXJyZW50X2Jsb2NrID0gMDsKIAlpbnQgcmV0ID0gMDsKQEAgLTUyNSwxMiArNTM5LDEzIEBACiAJICogdGhlIGZpcnN0IGRpcmVjdCBibG9jayBvZiB0aGlzIGJyYW5jaC4gIFRoYXQncyB0aGUKIAkgKiBtaW5pbXVtIG51bWJlciBvZiBibG9ja3MgbmVlZCB0byBhbGxvY2F0ZShyZXF1aXJlZCkKIAkgKi8KLQl0YXJnZXQgPSBibGtzICsgaW5kaXJlY3RfYmxrczsKLQotCXdoaWxlICgxKSB7CisJLyogZmlyc3Qgd2UgdHJ5IHRvIGFsbG9jYXRlIHRoZSBpbmRpcmVjdCBibG9ja3MgKi8KKwl0YXJnZXQgPSBpbmRpcmVjdF9ibGtzOworCXdoaWxlICh0YXJnZXQgPiAwKSB7CiAJCWNvdW50ID0gdGFyZ2V0OwogCQkvKiBhbGxvY2F0aW5nIGJsb2NrcyBmb3IgaW5kaXJlY3QgYmxvY2tzIGFuZCBkaXJlY3QgYmxvY2tzICovCi0JCWN1cnJlbnRfYmxvY2sgPSBleHQ0X25ld19ibG9ja3MoaGFuZGxlLGlub2RlLGdvYWwsJmNvdW50LGVycik7CisJCWN1cnJlbnRfYmxvY2sgPSBleHQ0X25ld19tZXRhX2Jsb2NrcyhoYW5kbGUsIGlub2RlLAorCQkJCQkJCWdvYWwsICZjb3VudCwgZXJyKTsKIAkJaWYgKCplcnIpCiAJCQlnb3RvIGZhaWxlZF9vdXQ7CiAKQEAgLTU0MCwxNiArNTU1LDQ4IEBACiAJCQluZXdfYmxvY2tzW2luZGV4KytdID0gY3VycmVudF9ibG9jaysrOwogCQkJY291bnQtLTsKIAkJfQotCi0JCWlmIChjb3VudCA+IDApCisJCWlmIChjb3VudCA+IDApIHsKKwkJCS8qCisJCQkgKiBzYXZlIHRoZSBuZXcgYmxvY2sgbnVtYmVyCisJCQkgKiBmb3IgdGhlIGZpcnN0IGRpcmVjdCBibG9jaworCQkJICovCisJCQluZXdfYmxvY2tzW2luZGV4XSA9IGN1cnJlbnRfYmxvY2s7CisJCQlwcmludGsoS0VSTl9JTkZPICIlcyByZXR1cm5lZCBtb3JlIGJsb2NrcyB0aGFuICIKKwkJCQkJCSJyZXF1ZXN0ZWRcbiIsIF9fZnVuY19fKTsKKwkJCVdBUk5fT04oMSk7CiAJCQlicmVhazsKKwkJfQogCX0KIAotCS8qIHNhdmUgdGhlIG5ldyBibG9jayBudW1iZXIgZm9yIHRoZSBmaXJzdCBkaXJlY3QgYmxvY2sgKi8KLQluZXdfYmxvY2tzW2luZGV4XSA9IGN1cnJlbnRfYmxvY2s7Ci0KKwl0YXJnZXQgPSBibGtzIC0gY291bnQgOworCWJsa19hbGxvY2F0ZWQgPSBjb3VudDsKKwlpZiAoIXRhcmdldCkKKwkJZ290byBhbGxvY2F0ZWQ7CisJLyogTm93IGFsbG9jYXRlIGRhdGEgYmxvY2tzICovCisJY291bnQgPSB0YXJnZXQ7CisJLyogYWxsb2NhdGluZyBibG9ja3MgZm9yIGRhdGEgYmxvY2tzICovCisJY3VycmVudF9ibG9jayA9IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBpYmxvY2ssCisJCQkJCQlnb2FsLCAmY291bnQsIGVycik7CisJaWYgKCplcnIgJiYgKHRhcmdldCA9PSBibGtzKSkgeworCQkvKgorCQkgKiBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQgYW5kIHdlIGRpZG4ndCBhbGxvY2F0ZQorCQkgKiBhbnkgYmxvY2tzIGJlZm9yZQorCQkgKi8KKwkJZ290byBmYWlsZWRfb3V0OworCX0KKwlpZiAoISplcnIpIHsKKwkJaWYgKHRhcmdldCA9PSBibGtzKSB7CisJCS8qCisJCSAqIHNhdmUgdGhlIG5ldyBibG9jayBudW1iZXIKKwkJICogZm9yIHRoZSBmaXJzdCBkaXJlY3QgYmxvY2sKKwkJICovCisJCQluZXdfYmxvY2tzW2luZGV4XSA9IGN1cnJlbnRfYmxvY2s7CisJCX0KKwkJYmxrX2FsbG9jYXRlZCArPSBjb3VudDsKKwl9CithbGxvY2F0ZWQ6CiAJLyogdG90YWwgbnVtYmVyIG9mIGJsb2NrcyBhbGxvY2F0ZWQgZm9yIGRpcmVjdCBibG9ja3MgKi8KLQlyZXQgPSBjb3VudDsKKwlyZXQgPSBibGtfYWxsb2NhdGVkOwogCSplcnIgPSAwOwogCXJldHVybiByZXQ7CiBmYWlsZWRfb3V0OgpAQCAtNTg0LDggKzYzMSw5IEBACiAgKglhcyBkZXNjcmliZWQgYWJvdmUgYW5kIHJldHVybiAwLgogICovCiBzdGF0aWMgaW50IGV4dDRfYWxsb2NfYnJhbmNoKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQlpbnQgaW5kaXJlY3RfYmxrcywgaW50ICpibGtzLCBleHQ0X2ZzYmxrX3QgZ29hbCwKLQkJCWV4dDRfbGJsa190ICpvZmZzZXRzLCBJbmRpcmVjdCAqYnJhbmNoKQorCQkJCWV4dDRfbGJsa190IGlibG9jaywgaW50IGluZGlyZWN0X2Jsa3MsCisJCQkJaW50ICpibGtzLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQlleHQ0X2xibGtfdCAqb2Zmc2V0cywgSW5kaXJlY3QgKmJyYW5jaCkKIHsKIAlpbnQgYmxvY2tzaXplID0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplOwogCWludCBpLCBuID0gMDsKQEAgLTU5NSw3ICs2NDMsNyBAQAogCWV4dDRfZnNibGtfdCBuZXdfYmxvY2tzWzRdOwogCWV4dDRfZnNibGtfdCBjdXJyZW50X2Jsb2NrOwogCi0JbnVtID0gZXh0NF9hbGxvY19ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZ29hbCwgaW5kaXJlY3RfYmxrcywKKwludW0gPSBleHQ0X2FsbG9jX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBpYmxvY2ssIGdvYWwsIGluZGlyZWN0X2Jsa3MsCiAJCQkJKmJsa3MsIG5ld19ibG9ja3MsICZlcnIpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CkBAIC03OTksNiArODQ3LDcgQEAKIAlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CiAJaW50IGNvdW50ID0gMDsKIAlleHQ0X2ZzYmxrX3QgZmlyc3RfYmxvY2sgPSAwOworCWxvZmZfdCBkaXNrc2l6ZTsKIAogCiAJSl9BU1NFUlQoIShFWFQ0X0koaW5vZGUpLT5pX2ZsYWdzICYgRVhUNF9FWFRFTlRTX0ZMKSk7CkBAIC04NTUsOCArOTA0LDkgQEAKIAkvKgogCSAqIEJsb2NrIG91dCBleHQ0X3RydW5jYXRlIHdoaWxlIHdlIGFsdGVyIHRoZSB0cmVlCiAJICovCi0JZXJyID0gZXh0NF9hbGxvY19icmFuY2goaGFuZGxlLCBpbm9kZSwgaW5kaXJlY3RfYmxrcywgJmNvdW50LCBnb2FsLAotCQkJCW9mZnNldHMgKyAocGFydGlhbCAtIGNoYWluKSwgcGFydGlhbCk7CisJZXJyID0gZXh0NF9hbGxvY19icmFuY2goaGFuZGxlLCBpbm9kZSwgaWJsb2NrLCBpbmRpcmVjdF9ibGtzLAorCQkJCQkmY291bnQsIGdvYWwsCisJCQkJCW9mZnNldHMgKyAocGFydGlhbCAtIGNoYWluKSwgcGFydGlhbCk7CiAKIAkvKgogCSAqIFRoZSBleHQ0X3NwbGljZV9icmFuY2ggY2FsbCB3aWxsIGZyZWUgYW5kIGZvcmdldCBhbnkgYnVmZmVycwpAQCAtODczLDggKzkyMywxMyBAQAogCSAqIHByb3RlY3QgaXQgaWYgeW91J3JlIGFib3V0IHRvIGltcGxlbWVudCBjb25jdXJyZW50CiAJICogZXh0NF9nZXRfYmxvY2soKSAtYnp6egogCSovCi0JaWYgKCFlcnIgJiYgZXh0ZW5kX2Rpc2tzaXplICYmIGlub2RlLT5pX3NpemUgPiBlaS0+aV9kaXNrc2l6ZSkKLQkJZWktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOworCWlmICghZXJyICYmIGV4dGVuZF9kaXNrc2l6ZSkgeworCQlkaXNrc2l6ZSA9ICgobG9mZl90KSBpYmxvY2sgKyBjb3VudCkgPDwgaW5vZGUtPmlfYmxrYml0czsKKwkJaWYgKGRpc2tzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKQorCQkJZGlza3NpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7CisJCWlmIChkaXNrc2l6ZSA+IGVpLT5pX2Rpc2tzaXplKQorCQkJZWktPmlfZGlza3NpemUgPSBkaXNrc2l6ZTsKKwl9CiAJaWYgKGVycikKIAkJZ290byBjbGVhbnVwOwogCkBAIC05MzQsNyArOTg5LDcgQEAKICAqLwogaW50IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGJsb2NrLAogCQkJdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAotCQkJaW50IGNyZWF0ZSwgaW50IGV4dGVuZF9kaXNrc2l6ZSkKKwkJCWludCBjcmVhdGUsIGludCBleHRlbmRfZGlza3NpemUsIGludCBmbGFnKQogewogCWludCByZXR2YWw7CiAKQEAgLTk3NSw2ICsxMDMwLDE1IEBACiAJICogd2l0aCBjcmVhdGUgPT0gMSBmbGFnLgogCSAqLwogCWRvd25fd3JpdGUoKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKSk7CisKKwkvKgorCSAqIGlmIHRoZSBjYWxsZXIgaXMgZnJvbSBkZWxheWVkIGFsbG9jYXRpb24gd3JpdGVvdXQgcGF0aAorCSAqIHdlIGhhdmUgYWxyZWFkeSByZXNlcnZlZCBmcyBibG9ja3MgZm9yIGFsbG9jYXRpb24KKwkgKiBsZXQgdGhlIHVuZGVybHlpbmcgZ2V0X2Jsb2NrKCkgZnVuY3Rpb24ga25vdyB0bworCSAqIGF2b2lkIGRvdWJsZSBhY2NvdW50aW5nCisJICovCisJaWYgKGZsYWcpCisJCUVYVDRfSShpbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZyA9IDE7CiAJLyoKIAkgKiBXZSBuZWVkIHRvIGNoZWNrIGZvciBFWFQ0IGhlcmUgYmVjYXVzZSBtaWdyYXRlCiAJICogY291bGQgaGF2ZSBjaGFuZ2VkIHRoZSBpbm9kZSB0eXBlIGluIGJldHdlZW4KQEAgLTk5Niw2ICsxMDYwLDE4IEBACiAJCQkJCQkJfkVYVDRfRVhUX01JR1JBVEU7CiAJCX0KIAl9CisKKwlpZiAoZmxhZykgeworCQlFWFQ0X0koaW5vZGUpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcgPSAwOworCQkvKgorCQkgKiBVcGRhdGUgcmVzZXJ2ZWQgYmxvY2tzL21ldGFkYXRhIGJsb2NrcworCQkgKiBhZnRlciBzdWNjZXNzZnVsIGJsb2NrIGFsbG9jYXRpb24KKwkJICogd2hpY2ggd2VyZSBkZWZlcnJlZCB0aWxsIG5vdworCQkgKi8KKwkJaWYgKChyZXR2YWwgPiAwKSAmJiBidWZmZXJfZGVsYXkoYmgpKQorCQkJZXh0NF9kYV9yZWxlYXNlX3NwYWNlKGlub2RlLCByZXR2YWwsIDApOworCX0KKwogCXVwX3dyaXRlKCgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSkpOwogCXJldHVybiByZXR2YWw7CiB9CkBAIC0xMDIxLDcgKzEwOTcsNyBAQAogCX0KIAogCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGlibG9jaywKLQkJCQkJbWF4X2Jsb2NrcywgYmhfcmVzdWx0LCBjcmVhdGUsIDApOworCQkJCQltYXhfYmxvY2tzLCBiaF9yZXN1bHQsIGNyZWF0ZSwgMCwgMCk7CiAJaWYgKHJldCA+IDApIHsKIAkJYmhfcmVzdWx0LT5iX3NpemUgPSAocmV0IDw8IGlub2RlLT5pX2Jsa2JpdHMpOwogCQlyZXQgPSAwOwpAQCAtMTA0Nyw3ICsxMTIzLDcgQEAKIAlkdW1teS5iX2Jsb2NrbnIgPSAtMTAwMDsKIAlidWZmZXJfdHJhY2VfaW5pdCgmZHVtbXkuYl9oaXN0b3J5KTsKIAllcnIgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChoYW5kbGUsIGlub2RlLCBibG9jaywgMSwKLQkJCQkJJmR1bW15LCBjcmVhdGUsIDEpOworCQkJCQkmZHVtbXksIGNyZWF0ZSwgMSwgMCk7CiAJLyoKIAkgKiBleHQ0X2dldF9ibG9ja3NfaGFuZGxlKCkgcmV0dXJucyBudW1iZXIgb2YgYmxvY2tzCiAJICogbWFwcGVkLiAwIGluIGNhc2Ugb2YgYSBIT0xFLgpAQCAtMTIwMywxOSArMTI3OSwyMCBAQAogIAl0byA9IGZyb20gKyBsZW47CiAKIHJldHJ5OgotIAlwYWdlID0gX19ncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOwotIAlpZiAoIXBhZ2UpCi0gCQlyZXR1cm4gLUVOT01FTTsKLSAJKnBhZ2VwID0gcGFnZTsKLQogICAJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCBuZWVkZWRfYmxvY2tzKTsKICAgCWlmIChJU19FUlIoaGFuZGxlKSkgewotIAkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0gCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAgIAkJcmV0ID0gUFRSX0VSUihoYW5kbGUpOwogICAJCWdvdG8gb3V0OwogCX0KIAorCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7CisJaWYgKCFwYWdlKSB7CisJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKwkqcGFnZXAgPSBwYWdlOworCiAJcmV0ID0gYmxvY2tfd3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGZsYWdzLCBwYWdlcCwgZnNkYXRhLAogCQkJCQkJCWV4dDRfZ2V0X2Jsb2NrKTsKIApAQCAtMTIyNSw4ICsxMzAyLDggQEAKIAl9CiAKIAlpZiAocmV0KSB7Ci0JCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiAgCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKICAJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKIAl9CiAKQEAgLTEyMzYsMTUgKzEzMTMsNiBAQAogCXJldHVybiByZXQ7CiB9CiAKLWludCBleHQ0X2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQotewotCWludCBlcnIgPSBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGUsIGJoKTsKLQlpZiAoZXJyKQotCQlleHQ0X2pvdXJuYWxfYWJvcnRfaGFuZGxlKF9fZnVuY19fLCBfX2Z1bmNfXywKLQkJCQkJCWJoLCBoYW5kbGUsIGVycik7Ci0JcmV0dXJuIGVycjsKLX0KLQogLyogRm9yIHdyaXRlX2VuZCgpIGluIGRhdGE9am91cm5hbCBtb2RlICovCiBzdGF0aWMgaW50IHdyaXRlX2VuZF9mbihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQogewpAQCAtMTI1NSwyOSArMTMyMyw2IEBACiB9CiAKIC8qCi0gKiBHZW5lcmljIHdyaXRlX2VuZCBoYW5kbGVyIGZvciBvcmRlcmVkIGFuZCB3cml0ZWJhY2sgZXh0NCBqb3VybmFsIG1vZGVzLgotICogV2UgY2FuJ3QgdXNlIGdlbmVyaWNfd3JpdGVfZW5kLCBiZWNhdXNlIHRoYXQgdW5sb2NrcyB0aGUgcGFnZSBhbmQgd2UgbmVlZCB0bwotICogdW5sb2NrIHRoZSBwYWdlIGFmdGVyIGV4dDRfam91cm5hbF9zdG9wLCBidXQgZXh0NF9qb3VybmFsX3N0b3AgbXVzdCBydW4KLSAqIGFmdGVyIGJsb2NrX3dyaXRlX2VuZC4KLSAqLwotc3RhdGljIGludCBleHQ0X2dlbmVyaWNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLAotCQkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAotCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAotCQkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCi17Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfbWFwcGluZy0+aG9zdDsKLQotCWNvcGllZCA9IGJsb2NrX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBwYWdlLCBmc2RhdGEpOwotCi0JaWYgKHBvcytjb3BpZWQgPiBpbm9kZS0+aV9zaXplKSB7Ci0JCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zK2NvcGllZCk7Ci0JCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOwotCX0KLQotCXJldHVybiBjb3BpZWQ7Ci19Ci0KLS8qCiAgKiBXZSBuZWVkIHRvIHBpY2sgdXAgdGhlIG5ldyBpbm9kZSBzaXplIHdoaWNoIGdlbmVyaWNfY29tbWl0X3dyaXRlIGdhdmUgdXMKICAqIGBmaWxlJyBjYW4gYmUgTlVMTCAtIGVnLCB3aGVuIGNhbGxlZCBmcm9tIHBhZ2Vfc3ltbGluaygpLgogICoKQEAgLTEyOTAsMTUgKzEzMzUsMTQgQEAKIAkJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQogewogCWhhbmRsZV90ICpoYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCXVuc2lnbmVkIGZyb20sIHRvOwogCWludCByZXQgPSAwLCByZXQyOwogCiAJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsKIAl0byA9IGZyb20gKyBsZW47CiAKLQlyZXQgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmZmVycyhwYWdlKSwKLQkJZnJvbSwgdG8sIE5VTEwsIGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKTsKKwlyZXQgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKIAogCWlmIChyZXQgPT0gMCkgewogCQkvKgpAQCAtMTMxMSw3ICsxMzU1LDcgQEAKIAkJbmV3X2lfc2l6ZSA9IHBvcyArIGNvcGllZDsKIAkJaWYgKG5ld19pX3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQogCQkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IG5ld19pX3NpemU7Ci0JCXJldDIgPSBleHQ0X2dlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsCisJCXJldDIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAogCQkJCQkJCXBhZ2UsIGZzZGF0YSk7CiAJCWNvcGllZCA9IHJldDI7CiAJCWlmIChyZXQyIDwgMCkKQEAgLTEzMjAsOCArMTM2NCw2IEBACiAJcmV0MiA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiAJaWYgKCFyZXQpCiAJCXJldCA9IHJldDI7Ci0JdW5sb2NrX3BhZ2UocGFnZSk7Ci0JcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCiAJcmV0dXJuIHJldCA/IHJldCA6IGNvcGllZDsKIH0KQEAgLTEzMzIsNyArMTM3NCw3IEBACiAJCQkJc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkKIHsKIAloYW5kbGVfdCAqaGFuZGxlID0gZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCk7Ci0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfbWFwcGluZy0+aG9zdDsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsKIAlpbnQgcmV0ID0gMCwgcmV0MjsKIAlsb2ZmX3QgbmV3X2lfc2l6ZTsKIApAQCAtMTM0MCw3ICsxMzgyLDcgQEAKIAlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpCiAJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBuZXdfaV9zaXplOwogCi0JcmV0MiA9IGV4dDRfZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwKKwlyZXQyID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwKIAkJCQkJCQlwYWdlLCBmc2RhdGEpOwogCWNvcGllZCA9IHJldDI7CiAJaWYgKHJldDIgPCAwKQpAQCAtMTM0OSw4ICsxMzkxLDYgQEAKIAlyZXQyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gcmV0MjsKLQl1bmxvY2tfcGFnZShwYWdlKTsKLQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQpAQCAtMTM4OSwxNCArMTQyOSw5NjUgQEAKIAkJCXJldCA9IHJldDI7CiAJfQogCisJdW5sb2NrX3BhZ2UocGFnZSk7CiAJcmV0MiA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiAJaWYgKCFyZXQpCiAJCXJldCA9IHJldDI7Ci0JdW5sb2NrX3BhZ2UocGFnZSk7CiAJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCiAJcmV0dXJuIHJldCA/IHJldCA6IGNvcGllZDsKIH0KKy8qCisgKiBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MgbmVlZCB0byByZXNlcnZlCisgKiB0byBhbGxvY2F0ZSBAYmxvY2tzIGZvciBub24gZXh0ZW50IGZpbGUgYmFzZWQgZmlsZQorICovCitzdGF0aWMgaW50IGV4dDRfaW5kaXJlY3RfY2FsY19tZXRhZGF0YV9hbW91bnQoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGJsb2NrcykKK3sKKwlpbnQgaWNhcCA9IEVYVDRfQUREUl9QRVJfQkxPQ0soaW5vZGUtPmlfc2IpOworCWludCBpbmRfYmxrcywgZGluZF9ibGtzLCB0aW5kX2Jsa3M7CisKKwkvKiBudW1iZXIgb2YgbmV3IGluZGlyZWN0IGJsb2NrcyBuZWVkZWQgKi8KKwlpbmRfYmxrcyA9IChibG9ja3MgKyBpY2FwIC0gMSkgLyBpY2FwOworCisJZGluZF9ibGtzID0gKGluZF9ibGtzICsgaWNhcCAtIDEpIC8gaWNhcDsKKworCXRpbmRfYmxrcyA9IDE7CisKKwlyZXR1cm4gaW5kX2Jsa3MgKyBkaW5kX2Jsa3MgKyB0aW5kX2Jsa3M7Cit9CisKKy8qCisgKiBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MgbmVlZCB0byByZXNlcnZlCisgKiB0byBhbGxvY2F0ZSBnaXZlbiBudW1iZXIgb2YgYmxvY2tzCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKQoreworCWlmIChFWFQ0X0koaW5vZGUpLT5pX2ZsYWdzICYgRVhUNF9FWFRFTlRTX0ZMKQorCQlyZXR1cm4gZXh0NF9leHRfY2FsY19tZXRhZGF0YV9hbW91bnQoaW5vZGUsIGJsb2Nrcyk7CisKKwlyZXR1cm4gZXh0NF9pbmRpcmVjdF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgYmxvY2tzKTsKK30KKworc3RhdGljIGludCBleHQ0X2RhX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IG5yYmxvY2tzKQoreworICAgICAgIHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0IoaW5vZGUtPmlfc2IpOworICAgICAgIHVuc2lnbmVkIGxvbmcgbWRfbmVlZGVkLCBtZGJsb2NrcywgdG90YWwgPSAwOworCisJLyoKKwkgKiByZWNhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIG1ldGFkYXRhIGJsb2NrcyB0byByZXNlcnZlCisJICogaW4gb3JkZXIgdG8gYWxsb2NhdGUgbnJibG9ja3MKKwkgKiB3b3JzZSBjYXNlIGlzIG9uZSBleHRlbnQgcGVyIGJsb2NrCisJICovCisJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCXRvdGFsID0gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyArIG5yYmxvY2tzOworCW1kYmxvY2tzID0gZXh0NF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgdG90YWwpOworCUJVR19PTihtZGJsb2NrcyA8IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3MpOworCisJbWRfbmVlZGVkID0gbWRibG9ja3MgLSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzOworCXRvdGFsID0gbWRfbmVlZGVkICsgbnJibG9ja3M7CisKKwlpZiAoZXh0NF9oYXNfZnJlZV9ibG9ja3Moc2JpLCB0b3RhbCkgPCB0b3RhbCkgeworCQlzcGluX3VubG9jaygmRVhUNF9JKGlub2RlKS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKTsKKwkJcmV0dXJuIC1FTk9TUEM7CisJfQorCisJLyogcmVkdWNlIGZzIGZyZWUgYmxvY2tzIGNvdW50ZXIgKi8KKwlwZXJjcHVfY291bnRlcl9zdWIoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIHRvdGFsKTsKKworCUVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3MgKz0gbnJibG9ja3M7CisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2NrcyA9IG1kYmxvY2tzOworCisJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJcmV0dXJuIDA7ICAgICAgIC8qIHN1Y2Nlc3MgKi8KK30KKwordm9pZCBleHQ0X2RhX3JlbGVhc2Vfc3BhY2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHVzZWQsIGludCB0b19mcmVlKQoreworCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0IoaW5vZGUtPmlfc2IpOworCWludCB0b3RhbCwgbWRiLCBtZGJfZnJlZSwgcmVsZWFzZTsKKworCXNwaW5fbG9jaygmRVhUNF9JKGlub2RlKS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKTsKKwkvKiByZWNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIG1ldGFibG9ja3Mgc3RpbGwgbmVlZCB0byBiZSByZXNlcnZlZCAqLworCXRvdGFsID0gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyAtIHVzZWQgLSB0b19mcmVlOworCW1kYiA9IGV4dDRfY2FsY19tZXRhZGF0YV9hbW91bnQoaW5vZGUsIHRvdGFsKTsKKworCS8qIGZpZ3VyZSBvdXQgaG93IG1hbnkgbWV0YWJsb2NrcyB0byByZWxlYXNlICovCisJQlVHX09OKG1kYiA+IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3MpOworCW1kYl9mcmVlID0gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2NrcyAtIG1kYjsKKworCS8qIEFjY291bnQgZm9yIGFsbG9jYXRlZCBtZXRhX2Jsb2NrcyAqLworCW1kYl9mcmVlIC09IEVYVDRfSShpbm9kZSktPmlfYWxsb2NhdGVkX21ldGFfYmxvY2tzOworCisJcmVsZWFzZSA9IHRvX2ZyZWUgKyBtZGJfZnJlZTsKKworCS8qIHVwZGF0ZSBmcyBmcmVlIGJsb2NrcyBjb3VudGVyIGZvciB0cnVuY2F0ZSBjYXNlICovCisJcGVyY3B1X2NvdW50ZXJfYWRkKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLCByZWxlYXNlKTsKKworCS8qIHVwZGF0ZSBwZXItaW5vZGUgcmVzZXJ2YXRpb25zICovCisJQlVHX09OKHVzZWQgKyB0b19mcmVlID4gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2Nrcyk7CisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyAtPSAodXNlZCArIHRvX2ZyZWUpOworCisJQlVHX09OKG1kYiA+IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3MpOworCUVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3MgPSBtZGI7CisJRVhUNF9JKGlub2RlKS0+aV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3MgPSAwOworCXNwaW5fdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBleHQ0X2RhX3BhZ2VfcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCWludCB0b19yZWxlYXNlID0gMDsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmhlYWQsICpiaDsKKwl1bnNpZ25lZCBpbnQgY3Vycl9vZmYgPSAwOworCisJaGVhZCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwliaCA9IGhlYWQ7CisJZG8geworCQl1bnNpZ25lZCBpbnQgbmV4dF9vZmYgPSBjdXJyX29mZiArIGJoLT5iX3NpemU7CisKKwkJaWYgKChvZmZzZXQgPD0gY3Vycl9vZmYpICYmIChidWZmZXJfZGVsYXkoYmgpKSkgeworCQkJdG9fcmVsZWFzZSsrOworCQkJY2xlYXJfYnVmZmVyX2RlbGF5KGJoKTsKKwkJfQorCQljdXJyX29mZiA9IG5leHRfb2ZmOworCX0gd2hpbGUgKChiaCA9IGJoLT5iX3RoaXNfcGFnZSkgIT0gaGVhZCk7CisJZXh0NF9kYV9yZWxlYXNlX3NwYWNlKHBhZ2UtPm1hcHBpbmctPmhvc3QsIDAsIHRvX3JlbGVhc2UpOworfQorCisvKgorICogRGVsYXllZCBhbGxvY2F0aW9uIHN0dWZmCisgKi8KKworc3RydWN0IG1wYWdlX2RhX2RhdGEgeworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJc3RydWN0IGJ1ZmZlcl9oZWFkIGxiaDsJCQkvKiBleHRlbnQgb2YgYmxvY2tzICovCisJdW5zaWduZWQgbG9uZyBmaXJzdF9wYWdlLCBuZXh0X3BhZ2U7CS8qIGV4dGVudCBvZiBwYWdlcyAqLworCWdldF9ibG9ja190ICpnZXRfYmxvY2s7CisJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmM7Cit9OworCisvKgorICogbXBhZ2VfZGFfc3VibWl0X2lvIC0gd2Fsa3MgdGhyb3VnaCBleHRlbnQgb2YgcGFnZXMgYW5kIHRyeSB0byB3cml0ZQorICogdGhlbSB3aXRoIF9fbXBhZ2Vfd3JpdGVwYWdlKCkKKyAqCisgKiBAbXBkLT5pbm9kZTogaW5vZGUKKyAqIEBtcGQtPmZpcnN0X3BhZ2U6IGZpcnN0IHBhZ2Ugb2YgdGhlIGV4dGVudAorICogQG1wZC0+bmV4dF9wYWdlOiBwYWdlIGFmdGVyIHRoZSBsYXN0IHBhZ2Ugb2YgdGhlIGV4dGVudAorICogQG1wZC0+Z2V0X2Jsb2NrOiB0aGUgZmlsZXN5c3RlbSdzIGJsb2NrIG1hcHBlciBmdW5jdGlvbgorICoKKyAqIEJ5IHRoZSB0aW1lIG1wYWdlX2RhX3N1Ym1pdF9pbygpIGlzIGNhbGxlZCB3ZSBleHBlY3QgYWxsIGJsb2NrcworICogdG8gYmUgYWxsb2NhdGVkLiB0aGlzIG1heSBiZSB3cm9uZyBpZiBhbGxvY2F0aW9uIGZhaWxlZC4KKyAqCisgKiBBcyBwYWdlcyBhcmUgYWxyZWFkeSBsb2NrZWQgYnkgd3JpdGVfY2FjaGVfcGFnZXMoKSwgd2UgY2FuJ3QgdXNlIGl0CisgKi8KK3N0YXRpYyBpbnQgbXBhZ2VfZGFfc3VibWl0X2lvKHN0cnVjdCBtcGFnZV9kYV9kYXRhICptcGQpCit7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBtcGQtPmlub2RlLT5pX21hcHBpbmc7CisJc3RydWN0IG1wYWdlX2RhdGEgbXBkX3BwID0geworCQkuYmlvID0gTlVMTCwKKwkJLmxhc3RfYmxvY2tfaW5fYmlvID0gMCwKKwkJLmdldF9ibG9jayA9IG1wZC0+Z2V0X2Jsb2NrLAorCQkudXNlX3dyaXRlcGFnZSA9IDEsCisJfTsKKwlpbnQgcmV0ID0gMCwgZXJyLCBucl9wYWdlcywgaTsKKwl1bnNpZ25lZCBsb25nIGluZGV4LCBlbmQ7CisJc3RydWN0IHBhZ2V2ZWMgcHZlYzsKKworCUJVR19PTihtcGQtPm5leHRfcGFnZSA8PSBtcGQtPmZpcnN0X3BhZ2UpOworCisJcGFnZXZlY19pbml0KCZwdmVjLCAwKTsKKwlpbmRleCA9IG1wZC0+Zmlyc3RfcGFnZTsKKwllbmQgPSBtcGQtPm5leHRfcGFnZSAtIDE7CisKKwl3aGlsZSAoaW5kZXggPD0gZW5kKSB7CisJCS8qIFhYWDogb3B0aW1pemUgdGFpbCAqLworCQlucl9wYWdlcyA9IHBhZ2V2ZWNfbG9va3VwKCZwdmVjLCBtYXBwaW5nLCBpbmRleCwgUEFHRVZFQ19TSVpFKTsKKwkJaWYgKG5yX3BhZ2VzID09IDApCisJCQlicmVhazsKKwkJZm9yIChpID0gMDsgaSA8IG5yX3BhZ2VzOyBpKyspIHsKKwkJCXN0cnVjdCBwYWdlICpwYWdlID0gcHZlYy5wYWdlc1tpXTsKKworCQkJaW5kZXggPSBwYWdlLT5pbmRleDsKKwkJCWlmIChpbmRleCA+IGVuZCkKKwkJCQlicmVhazsKKwkJCWluZGV4Kys7CisKKwkJCWVyciA9IF9fbXBhZ2Vfd3JpdGVwYWdlKHBhZ2UsIG1wZC0+d2JjLCAmbXBkX3BwKTsKKworCQkJLyoKKwkJCSAqIEluIGVycm9yIGNhc2UsIHdlIGhhdmUgdG8gY29udGludWUgYmVjYXVzZQorCQkJICogcmVtYWluaW5nIHBhZ2VzIGFyZSBzdGlsbCBsb2NrZWQKKwkJCSAqIFhYWDogdW5sb2NrIGFuZCByZS1kaXJ0eSB0aGVtPworCQkJICovCisJCQlpZiAocmV0ID09IDApCisJCQkJcmV0ID0gZXJyOworCQl9CisJCXBhZ2V2ZWNfcmVsZWFzZSgmcHZlYyk7CisJfQorCWlmIChtcGRfcHAuYmlvKQorCQltcGFnZV9iaW9fc3VibWl0KFdSSVRFLCBtcGRfcHAuYmlvKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBtcGFnZV9wdXRfYm5yX3RvX2JocyAtIHdhbGsgYmxvY2tzIGFuZCBhc3NpZ24gdGhlbSBhY3R1YWwgbnVtYmVycworICoKKyAqIEBtcGQtPmlub2RlIC0gaW5vZGUgdG8gd2FsayB0aHJvdWdoCisgKiBAZXhiaC0+Yl9ibG9ja25yIC0gZmlyc3QgYmxvY2sgb24gYSBkaXNrCisgKiBAZXhiaC0+Yl9zaXplIC0gYW1vdW50IG9mIHNwYWNlIGluIGJ5dGVzCisgKiBAbG9naWNhbCAtIGZpcnN0IGxvZ2ljYWwgYmxvY2sgdG8gc3RhcnQgYXNzaWdubWVudCB3aXRoCisgKgorICogdGhlIGZ1bmN0aW9uIGdvZXMgdGhyb3VnaCBhbGwgcGFzc2VkIHNwYWNlIGFuZCBwdXQgYWN0dWFsIGRpc2sKKyAqIGJsb2NrIG51bWJlcnMgaW50byBidWZmZXIgaGVhZHMsIGRyb3BwaW5nIEJIX0RlbGF5CisgKi8KK3N0YXRpYyB2b2lkIG1wYWdlX3B1dF9ibnJfdG9fYmhzKHN0cnVjdCBtcGFnZV9kYV9kYXRhICptcGQsIHNlY3Rvcl90IGxvZ2ljYWwsCisJCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqZXhiaCkKK3sKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbXBkLT5pbm9kZTsKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7CisJaW50IGJsb2NrcyA9IGV4YmgtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCXNlY3Rvcl90IHBibG9jayA9IGV4YmgtPmJfYmxvY2tuciwgY3VyX2xvZ2ljYWw7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpoZWFkLCAqYmg7CisJdW5zaWduZWQgbG9uZyBpbmRleCwgZW5kOworCXN0cnVjdCBwYWdldmVjIHB2ZWM7CisJaW50IG5yX3BhZ2VzLCBpOworCisJaW5kZXggPSBsb2dpY2FsID4+IChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfYmxrYml0cyk7CisJZW5kID0gKGxvZ2ljYWwgKyBibG9ja3MgLSAxKSA+PiAoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOworCWN1cl9sb2dpY2FsID0gaW5kZXggPDwgKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKKworCXBhZ2V2ZWNfaW5pdCgmcHZlYywgMCk7CisKKwl3aGlsZSAoaW5kZXggPD0gZW5kKSB7CisJCS8qIFhYWDogb3B0aW1pemUgdGFpbCAqLworCQlucl9wYWdlcyA9IHBhZ2V2ZWNfbG9va3VwKCZwdmVjLCBtYXBwaW5nLCBpbmRleCwgUEFHRVZFQ19TSVpFKTsKKwkJaWYgKG5yX3BhZ2VzID09IDApCisJCQlicmVhazsKKwkJZm9yIChpID0gMDsgaSA8IG5yX3BhZ2VzOyBpKyspIHsKKwkJCXN0cnVjdCBwYWdlICpwYWdlID0gcHZlYy5wYWdlc1tpXTsKKworCQkJaW5kZXggPSBwYWdlLT5pbmRleDsKKwkJCWlmIChpbmRleCA+IGVuZCkKKwkJCQlicmVhazsKKwkJCWluZGV4Kys7CisKKwkJCUJVR19PTighUGFnZUxvY2tlZChwYWdlKSk7CisJCQlCVUdfT04oUGFnZVdyaXRlYmFjayhwYWdlKSk7CisJCQlCVUdfT04oIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpOworCisJCQliaCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwkJCWhlYWQgPSBiaDsKKworCQkJLyogc2tpcCBibG9ja3Mgb3V0IG9mIHRoZSByYW5nZSAqLworCQkJZG8geworCQkJCWlmIChjdXJfbG9naWNhbCA+PSBsb2dpY2FsKQorCQkJCQlicmVhazsKKwkJCQljdXJfbG9naWNhbCsrOworCQkJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKworCQkJZG8geworCQkJCWlmIChjdXJfbG9naWNhbCA+PSBsb2dpY2FsICsgYmxvY2tzKQorCQkJCQlicmVhazsKKwkJCQlpZiAoYnVmZmVyX2RlbGF5KGJoKSkgeworCQkJCQliaC0+Yl9ibG9ja25yID0gcGJsb2NrOworCQkJCQljbGVhcl9idWZmZXJfZGVsYXkoYmgpOworCQkJCX0gZWxzZSBpZiAoYnVmZmVyX21hcHBlZChiaCkpCisJCQkJCUJVR19PTihiaC0+Yl9ibG9ja25yICE9IHBibG9jayk7CisKKwkJCQljdXJfbG9naWNhbCsrOworCQkJCXBibG9jaysrOworCQkJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwkJfQorCQlwYWdldmVjX3JlbGVhc2UoJnB2ZWMpOworCX0KK30KKworCisvKgorICogX191bm1hcF91bmRlcmx5aW5nX2Jsb2NrcyAtIGp1c3QgYSBoZWxwZXIgZnVuY3Rpb24gdG8gdW5tYXAKKyAqIHNldCBvZiBibG9ja3MgZGVzY3JpYmVkIGJ5IEBiaAorICovCitzdGF0aWMgaW5saW5lIHZvaWQgX191bm1hcF91bmRlcmx5aW5nX2Jsb2NrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCQkgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCit7CisJc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiA9IGlub2RlLT5pX3NiLT5zX2JkZXY7CisJaW50IGJsb2NrcywgaTsKKworCWJsb2NrcyA9IGJoLT5iX3NpemUgPj4gaW5vZGUtPmlfYmxrYml0czsKKwlmb3IgKGkgPSAwOyBpIDwgYmxvY2tzOyBpKyspCisJCXVubWFwX3VuZGVybHlpbmdfbWV0YWRhdGEoYmRldiwgYmgtPmJfYmxvY2tuciArIGkpOworfQorCisvKgorICogbXBhZ2VfZGFfbWFwX2Jsb2NrcyAtIGdvIHRocm91Z2ggZ2l2ZW4gc3BhY2UKKyAqCisgKiBAbXBkLT5sYmggLSBiaCBkZXNjcmliaW5nIHNwYWNlCisgKiBAbXBkLT5nZXRfYmxvY2sgLSB0aGUgZmlsZXN5c3RlbSdzIGJsb2NrIG1hcHBlciBmdW5jdGlvbgorICoKKyAqIFRoZSBmdW5jdGlvbiBza2lwcyBzcGFjZSB3ZSBrbm93IGlzIGFscmVhZHkgbWFwcGVkIHRvIGRpc2sgYmxvY2tzLgorICoKKyAqIFRoZSBmdW5jdGlvbiBpZ25vcmVzIGVycm9ycyAtPmdldF9ibG9jaygpIHJldHVybnMsIHRodXMgcmVhbAorICogZXJyb3IgaGFuZGxpbmcgaXMgcG9zdHBvbmVkIHRvIF9fbXBhZ2Vfd3JpdGVwYWdlKCkKKyAqLworc3RhdGljIHZvaWQgbXBhZ2VfZGFfbWFwX2Jsb2NrcyhzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBkKQoreworCXN0cnVjdCBidWZmZXJfaGVhZCAqbGJoID0gJm1wZC0+bGJoOworCWludCBlcnIgPSAwLCByZW1haW4gPSBsYmgtPmJfc2l6ZTsKKwlzZWN0b3JfdCBuZXh0ID0gbGJoLT5iX2Jsb2NrbnI7CisJc3RydWN0IGJ1ZmZlcl9oZWFkIG5ldzsKKworCS8qCisJICogV2UgY29uc2lkZXIgb25seSBub24tbWFwcGVkIGFuZCBub24tYWxsb2NhdGVkIGJsb2NrcworCSAqLworCWlmIChidWZmZXJfbWFwcGVkKGxiaCkgJiYgIWJ1ZmZlcl9kZWxheShsYmgpKQorCQlyZXR1cm47CisKKwl3aGlsZSAocmVtYWluKSB7CisJCW5ldy5iX3N0YXRlID0gbGJoLT5iX3N0YXRlOworCQluZXcuYl9ibG9ja25yID0gMDsKKwkJbmV3LmJfc2l6ZSA9IHJlbWFpbjsKKwkJZXJyID0gbXBkLT5nZXRfYmxvY2sobXBkLT5pbm9kZSwgbmV4dCwgJm5ldywgMSk7CisJCWlmIChlcnIpIHsKKwkJCS8qCisJCQkgKiBSYXRoZXIgdGhhbiBpbXBsZW1lbnQgb3duIGVycm9yIGhhbmRsaW5nCisJCQkgKiBoZXJlLCB3ZSBqdXN0IGxlYXZlIHJlbWFpbmluZyBibG9ja3MKKwkJCSAqIHVuYWxsb2NhdGVkIGFuZCB0cnkgYWdhaW4gd2l0aCAtPndyaXRlcGFnZSgpCisJCQkgKi8KKwkJCWJyZWFrOworCQl9CisJCUJVR19PTihuZXcuYl9zaXplID09IDApOworCisJCWlmIChidWZmZXJfbmV3KCZuZXcpKQorCQkJX191bm1hcF91bmRlcmx5aW5nX2Jsb2NrcyhtcGQtPmlub2RlLCAmbmV3KTsKKworCQkvKgorCQkgKiBJZiBibG9ja3MgYXJlIGRlbGF5ZWQgbWFya2VkLCB3ZSBuZWVkIHRvCisJCSAqIHB1dCBhY3R1YWwgYmxvY2tuciBhbmQgZHJvcCBkZWxheWVkIGJpdAorCQkgKi8KKwkJaWYgKGJ1ZmZlcl9kZWxheShsYmgpKQorCQkJbXBhZ2VfcHV0X2Jucl90b19iaHMobXBkLCBuZXh0LCAmbmV3KTsKKworCQkvKiBnbyBmb3IgdGhlIHJlbWFpbmluZyBibG9ja3MgKi8KKwkJbmV4dCArPSBuZXcuYl9zaXplID4+IG1wZC0+aW5vZGUtPmlfYmxrYml0czsKKwkJcmVtYWluIC09IG5ldy5iX3NpemU7CisJfQorfQorCisjZGVmaW5lIEJIX0ZMQUdTICgoMSA8PCBCSF9VcHRvZGF0ZSkgfCAoMSA8PCBCSF9NYXBwZWQpIHwgKDEgPDwgQkhfRGVsYXkpKQorCisvKgorICogbXBhZ2VfYWRkX2JoX3RvX2V4dGVudCAtIHRyeSB0byBhZGQgb25lIG1vcmUgYmxvY2sgdG8gZXh0ZW50IG9mIGJsb2NrcworICoKKyAqIEBtcGQtPmxiaCAtIGV4dGVudCBvZiBibG9ja3MKKyAqIEBsb2dpY2FsIC0gbG9naWNhbCBudW1iZXIgb2YgdGhlIGJsb2NrIGluIHRoZSBmaWxlCisgKiBAYmggLSBiaCBvZiB0aGUgYmxvY2sgKHVzZWQgdG8gYWNjZXNzIGJsb2NrJ3Mgc3RhdGUpCisgKgorICogdGhlIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29sbGVjdCBjb250aWcuIGJsb2NrcyBpbiBzYW1lIHN0YXRlCisgKi8KK3N0YXRpYyB2b2lkIG1wYWdlX2FkZF9iaF90b19leHRlbnQoc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCwKKwkJCQkgICBzZWN0b3JfdCBsb2dpY2FsLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQoreworCXN0cnVjdCBidWZmZXJfaGVhZCAqbGJoID0gJm1wZC0+bGJoOworCXNlY3Rvcl90IG5leHQ7CisKKwluZXh0ID0gbGJoLT5iX2Jsb2NrbnIgKyAobGJoLT5iX3NpemUgPj4gbXBkLT5pbm9kZS0+aV9ibGtiaXRzKTsKKworCS8qCisJICogRmlyc3QgYmxvY2sgaW4gdGhlIGV4dGVudAorCSAqLworCWlmIChsYmgtPmJfc2l6ZSA9PSAwKSB7CisJCWxiaC0+Yl9ibG9ja25yID0gbG9naWNhbDsKKwkJbGJoLT5iX3NpemUgPSBiaC0+Yl9zaXplOworCQlsYmgtPmJfc3RhdGUgPSBiaC0+Yl9zdGF0ZSAmIEJIX0ZMQUdTOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBDYW4gd2UgbWVyZ2UgdGhlIGJsb2NrIHRvIG91ciBiaWcgZXh0ZW50PworCSAqLworCWlmIChsb2dpY2FsID09IG5leHQgJiYgKGJoLT5iX3N0YXRlICYgQkhfRkxBR1MpID09IGxiaC0+Yl9zdGF0ZSkgeworCQlsYmgtPmJfc2l6ZSArPSBiaC0+Yl9zaXplOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBXZSBjb3VsZG4ndCBtZXJnZSB0aGUgYmxvY2sgdG8gb3VyIGV4dGVudCwgc28gd2UKKwkgKiBuZWVkIHRvIGZsdXNoIGN1cnJlbnQgIGV4dGVudCBhbmQgc3RhcnQgbmV3IG9uZQorCSAqLworCW1wYWdlX2RhX21hcF9ibG9ja3MobXBkKTsKKworCS8qCisJICogTm93IHN0YXJ0IGEgbmV3IGV4dGVudAorCSAqLworCWxiaC0+Yl9zaXplID0gYmgtPmJfc2l6ZTsKKwlsYmgtPmJfc3RhdGUgPSBiaC0+Yl9zdGF0ZSAmIEJIX0ZMQUdTOworCWxiaC0+Yl9ibG9ja25yID0gbG9naWNhbDsKK30KKworLyoKKyAqIF9fbXBhZ2VfZGFfd3JpdGVwYWdlIC0gZmluZHMgZXh0ZW50IG9mIHBhZ2VzIGFuZCBibG9ja3MKKyAqCisgKiBAcGFnZTogcGFnZSB0byBjb25zaWRlcgorICogQHdiYzogbm90IHVzZWQsIHdlIGp1c3QgZm9sbG93IHJ1bGVzCisgKiBAZGF0YTogY29udGV4dAorICoKKyAqIFRoZSBmdW5jdGlvbiBmaW5kcyBleHRlbnRzIG9mIHBhZ2VzIGFuZCBzY2FuIHRoZW0gZm9yIGFsbCBibG9ja3MuCisgKi8KK3N0YXRpYyBpbnQgX19tcGFnZV9kYV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCA9IGRhdGE7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1wZC0+aW5vZGU7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgKmhlYWQsIGZha2U7CisJc2VjdG9yX3QgbG9naWNhbDsKKworCS8qCisJICogQ2FuIHdlIG1lcmdlIHRoaXMgcGFnZSB0byBjdXJyZW50IGV4dGVudD8KKwkgKi8KKwlpZiAobXBkLT5uZXh0X3BhZ2UgIT0gcGFnZS0+aW5kZXgpIHsKKwkJLyoKKwkJICogTm9wZSwgd2UgY2FuJ3QuIFNvLCB3ZSBtYXAgbm9uLWFsbG9jYXRlZCBibG9ja3MKKwkJICogYW5kIHN0YXJ0IElPIG9uIHRoZW0gdXNpbmcgX19tcGFnZV93cml0ZXBhZ2UoKQorCQkgKi8KKwkJaWYgKG1wZC0+bmV4dF9wYWdlICE9IG1wZC0+Zmlyc3RfcGFnZSkgeworCQkJbXBhZ2VfZGFfbWFwX2Jsb2NrcyhtcGQpOworCQkJbXBhZ2VfZGFfc3VibWl0X2lvKG1wZCk7CisJCX0KKworCQkvKgorCQkgKiBTdGFydCBuZXh0IGV4dGVudCBvZiBwYWdlcyAuLi4KKwkJICovCisJCW1wZC0+Zmlyc3RfcGFnZSA9IHBhZ2UtPmluZGV4OworCisJCS8qCisJCSAqIC4uLiBhbmQgYmxvY2tzCisJCSAqLworCQltcGQtPmxiaC5iX3NpemUgPSAwOworCQltcGQtPmxiaC5iX3N0YXRlID0gMDsKKwkJbXBkLT5sYmguYl9ibG9ja25yID0gMDsKKwl9CisKKwltcGQtPm5leHRfcGFnZSA9IHBhZ2UtPmluZGV4ICsgMTsKKwlsb2dpY2FsID0gKHNlY3Rvcl90KSBwYWdlLT5pbmRleCA8PAorCQkgIChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfYmxrYml0cyk7CisKKwlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJLyoKKwkJICogVGhlcmUgaXMgbm8gYXR0YWNoZWQgYnVmZmVyIGhlYWRzIHlldCAobW1hcD8pCisJCSAqIHdlIHRyZWF0IHRoZSBwYWdlIGFzZnVsbCBvZiBkaXJ0eSBibG9ja3MKKwkJICovCisJCWJoID0gJmZha2U7CisJCWJoLT5iX3NpemUgPSBQQUdFX0NBQ0hFX1NJWkU7CisJCWJoLT5iX3N0YXRlID0gMDsKKwkJc2V0X2J1ZmZlcl9kaXJ0eShiaCk7CisJCXNldF9idWZmZXJfdXB0b2RhdGUoYmgpOworCQltcGFnZV9hZGRfYmhfdG9fZXh0ZW50KG1wZCwgbG9naWNhbCwgYmgpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIFBhZ2Ugd2l0aCByZWd1bGFyIGJ1ZmZlciBoZWFkcywganVzdCBhZGQgYWxsIGRpcnR5IG9uZXMKKwkJICovCisJCWhlYWQgPSBwYWdlX2J1ZmZlcnMocGFnZSk7CisJCWJoID0gaGVhZDsKKwkJZG8geworCQkJQlVHX09OKGJ1ZmZlcl9sb2NrZWQoYmgpKTsKKwkJCWlmIChidWZmZXJfZGlydHkoYmgpKQorCQkJCW1wYWdlX2FkZF9iaF90b19leHRlbnQobXBkLCBsb2dpY2FsLCBiaCk7CisJCQlsb2dpY2FsKys7CisJCX0gd2hpbGUgKChiaCA9IGJoLT5iX3RoaXNfcGFnZSkgIT0gaGVhZCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBtcGFnZV9kYV93cml0ZXBhZ2VzIC0gd2FsayB0aGUgbGlzdCBvZiBkaXJ0eSBwYWdlcyBvZiB0aGUgZ2l2ZW4KKyAqIGFkZHJlc3Mgc3BhY2UsIGFsbG9jYXRlcyBub24tYWxsb2NhdGVkIGJsb2NrcywgbWFwcyBuZXdseS1hbGxvY2F0ZWQKKyAqIGJsb2NrcyB0byBleGlzdGluZyBiaHMgYW5kIGlzc3VlIElPIHRoZW0KKyAqCisgKiBAbWFwcGluZzogYWRkcmVzcyBzcGFjZSBzdHJ1Y3R1cmUgdG8gd3JpdGUKKyAqIEB3YmM6IHN1YnRyYWN0IHRoZSBudW1iZXIgb2Ygd3JpdHRlbiBwYWdlcyBmcm9tICpAd2JjLT5ucl90b193cml0ZQorICogQGdldF9ibG9jazogdGhlIGZpbGVzeXN0ZW0ncyBibG9jayBtYXBwZXIgZnVuY3Rpb24uCisgKgorICogVGhpcyBpcyBhIGxpYnJhcnkgZnVuY3Rpb24sIHdoaWNoIGltcGxlbWVudHMgdGhlIHdyaXRlcGFnZXMoKQorICogYWRkcmVzc19zcGFjZV9vcGVyYXRpb24uCisgKgorICogSW4gb3JkZXIgdG8gYXZvaWQgZHVwbGljYXRpb24gb2YgbG9naWMgdGhhdCBkZWFscyB3aXRoIHBhcnRpYWwgcGFnZXMsCisgKiBtdWx0aXBsZSBiaW8gcGVyIHBhZ2UsIGV0Yywgd2UgZmluZCBub24tYWxsb2NhdGVkIGJsb2NrcywgYWxsb2NhdGUKKyAqIHRoZW0gd2l0aCBtaW5pbWFsIGNhbGxzIHRvIC0+Z2V0X2Jsb2NrKCkgYW5kIHJlLXVzZSBfX21wYWdlX3dyaXRlcGFnZSgpCisgKgorICogSXQncyBpbXBvcnRhbnQgdGhhdCB3ZSBjYWxsIF9fbXBhZ2Vfd3JpdGVwYWdlKCkgb25seSBvbmNlIGZvciBlYWNoCisgKiBpbnZvbHZlZCBwYWdlLCBvdGhlcndpc2Ugd2UnZCBoYXZlIHRvIGltcGxlbWVudCBtb3JlIGNvbXBsaWNhdGVkIGxvZ2ljCisgKiB0byBkZWFsIHdpdGggcGFnZXMgdy9vIFBHX2xvY2sgb3Igdy8gUEdfd3JpdGViYWNrIGFuZCBzbyBvbi4KKyAqCisgKiBTZWUgY29tbWVudHMgdG8gbXBhZ2Vfd3JpdGVwYWdlcygpCisgKi8KK3N0YXRpYyBpbnQgbXBhZ2VfZGFfd3JpdGVwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCSAgICAgICBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywKKwkJCSAgICAgICBnZXRfYmxvY2tfdCBnZXRfYmxvY2spCit7CisJc3RydWN0IG1wYWdlX2RhX2RhdGEgbXBkOworCWludCByZXQ7CisKKwlpZiAoIWdldF9ibG9jaykKKwkJcmV0dXJuIGdlbmVyaWNfd3JpdGVwYWdlcyhtYXBwaW5nLCB3YmMpOworCisJbXBkLndiYyA9IHdiYzsKKwltcGQuaW5vZGUgPSBtYXBwaW5nLT5ob3N0OworCW1wZC5sYmguYl9zaXplID0gMDsKKwltcGQubGJoLmJfc3RhdGUgPSAwOworCW1wZC5sYmguYl9ibG9ja25yID0gMDsKKwltcGQuZmlyc3RfcGFnZSA9IDA7CisJbXBkLm5leHRfcGFnZSA9IDA7CisJbXBkLmdldF9ibG9jayA9IGdldF9ibG9jazsKKworCXJldCA9IHdyaXRlX2NhY2hlX3BhZ2VzKG1hcHBpbmcsIHdiYywgX19tcGFnZV9kYV93cml0ZXBhZ2UsICZtcGQpOworCisJLyoKKwkgKiBIYW5kbGUgbGFzdCBleHRlbnQgb2YgcGFnZXMKKwkgKi8KKwlpZiAobXBkLm5leHRfcGFnZSAhPSBtcGQuZmlyc3RfcGFnZSkgeworCQltcGFnZV9kYV9tYXBfYmxvY2tzKCZtcGQpOworCQltcGFnZV9kYV9zdWJtaXRfaW8oJm1wZCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIHRoaXMgaXMgYSBzcGVjaWFsIGNhbGxiYWNrIGZvciAtPndyaXRlX2JlZ2luKCkgb25seQorICogaXQncyBpbnRlbnRpb24gaXMgdG8gcmV0dXJuIG1hcHBlZCBibG9jayBvciByZXNlcnZlIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9kYV9nZXRfYmxvY2tfcHJlcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCisJCQkJICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3VsdCwgaW50IGNyZWF0ZSkKK3sKKwlpbnQgcmV0ID0gMDsKKworCUJVR19PTihjcmVhdGUgPT0gMCk7CisJQlVHX09OKGJoX3Jlc3VsdC0+Yl9zaXplICE9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZSk7CisKKwkvKgorCSAqIGZpcnN0LCB3ZSBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgYmxvY2sgaXMgYWxsb2NhdGVkIGFscmVhZHkKKwkgKiBwcmVhbGxvY2F0ZWQgYmxvY2tzIGFyZSB1bm1hcHBlZCBidXQgc2hvdWxkIHRyZWF0ZWQKKwkgKiB0aGUgc2FtZSBhcyBhbGxvY2F0ZWQgYmxvY2tzLgorCSAqLworCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKE5VTEwsIGlub2RlLCBpYmxvY2ssIDEsICBiaF9yZXN1bHQsIDAsIDAsIDApOworCWlmICgocmV0ID09IDApICYmICFidWZmZXJfZGVsYXkoYmhfcmVzdWx0KSkgeworCQkvKiB0aGUgYmxvY2sgaXNuJ3QgKHByZSlhbGxvY2F0ZWQgeWV0LCBsZXQncyByZXNlcnZlIHNwYWNlICovCisJCS8qCisJCSAqIFhYWDogX19ibG9ja19wcmVwYXJlX3dyaXRlKCkgdW5tYXBzIHBhc3NlZCBibG9jaywKKwkJICogaXMgaXQgT0s/CisJCSAqLworCQlyZXQgPSBleHQ0X2RhX3Jlc2VydmVfc3BhY2UoaW5vZGUsIDEpOworCQlpZiAocmV0KQorCQkJLyogbm90IGVub3VnaCBzcGFjZSB0byByZXNlcnZlICovCisJCQlyZXR1cm4gcmV0OworCisJCW1hcF9iaChiaF9yZXN1bHQsIGlub2RlLT5pX3NiLCAwKTsKKwkJc2V0X2J1ZmZlcl9uZXcoYmhfcmVzdWx0KTsKKwkJc2V0X2J1ZmZlcl9kZWxheShiaF9yZXN1bHQpOworCX0gZWxzZSBpZiAocmV0ID4gMCkgeworCQliaF9yZXN1bHQtPmJfc2l6ZSA9IChyZXQgPDwgaW5vZGUtPmlfYmxrYml0cyk7CisJCXJldCA9IDA7CisJfQorCisJcmV0dXJuIHJldDsKK30KKyNkZWZpbmUJCUVYVDRfREVMQUxMT0NfUlNWRUQJMQorc3RhdGljIGludCBleHQ0X2RhX2dldF9ibG9ja193cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCisJCQkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaF9yZXN1bHQsIGludCBjcmVhdGUpCit7CisJaW50IHJldDsKKwl1bnNpZ25lZCBtYXhfYmxvY2tzID0gYmhfcmVzdWx0LT5iX3NpemUgPj4gaW5vZGUtPmlfYmxrYml0czsKKwlsb2ZmX3QgZGlza3NpemUgPSBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplOworCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOworCisJaGFuZGxlID0gZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCk7CisJaWYgKCFoYW5kbGUpIHsKKwkJcmV0ID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlLCBpbm9kZSwgaWJsb2NrLCBtYXhfYmxvY2tzLAorCQkJCSAgIGJoX3Jlc3VsdCwgMCwgMCwgMCk7CisJCUJVR19PTighcmV0KTsKKwl9IGVsc2UgeworCQlyZXQgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChoYW5kbGUsIGlub2RlLCBpYmxvY2ssIG1heF9ibG9ja3MsCisJCQkJICAgYmhfcmVzdWx0LCBjcmVhdGUsIDAsIEVYVDRfREVMQUxMT0NfUlNWRUQpOworCX0KKworCWlmIChyZXQgPiAwKSB7CisJCWJoX3Jlc3VsdC0+Yl9zaXplID0gKHJldCA8PCBpbm9kZS0+aV9ibGtiaXRzKTsKKworCQkvKgorCQkgKiBVcGRhdGUgb24tZGlzayBzaXplIGFsb25nIHdpdGggYmxvY2sgYWxsb2NhdGlvbgorCQkgKiB3ZSBkb24ndCB1c2UgJ2V4dGVuZF9kaXNrc2l6ZScgYXMgc2l6ZSBtYXkgY2hhbmdlCisJCSAqIHdpdGhpbiBhbHJlYWR5IGFsbG9jYXRlZCBibG9jayAtYnp6egorCQkgKi8KKwkJZGlza3NpemUgPSAoKGxvZmZfdCkgaWJsb2NrICsgcmV0KSA8PCBpbm9kZS0+aV9ibGtiaXRzOworCQlpZiAoZGlza3NpemUgPiBpX3NpemVfcmVhZChpbm9kZSkpCisJCQlkaXNrc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwkJaWYgKGRpc2tzaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkgeworCQkJLyoKKwkJCSAqIFhYWDogcmVwbGFjZSB3aXRoIHNwaW5sb2NrIGlmIHNlZW4gY29udGVuZGVkIC1ienp6CisJCQkgKi8KKwkJCWRvd25fd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOworCQkJaWYgKGRpc2tzaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkKKwkJCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gZGlza3NpemU7CisJCQl1cF93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CisKKwkJCWlmIChFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID09IGRpc2tzaXplKSB7CisJCQkJcmV0ID0gZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKwkJcmV0ID0gMDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBleHQ0X2JoX3VubWFwcGVkX29yX2RlbGF5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCit7CisJLyoKKwkgKiB1bm1hcHBlZCBidWZmZXIgaXMgcG9zc2libGUgZm9yIGhvbGVzLgorCSAqIGRlbGF5IGJ1ZmZlciBpcyBwb3NzaWJsZSB3aXRoIGRlbGF5ZWQgYWxsb2NhdGlvbgorCSAqLworCXJldHVybiAoKCFidWZmZXJfbWFwcGVkKGJoKSB8fCBidWZmZXJfZGVsYXkoYmgpKSAmJiBidWZmZXJfZGlydHkoYmgpKTsKK30KKworc3RhdGljIGludCBleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUoc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLAorCQkJCSAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmhfcmVzdWx0LCBpbnQgY3JlYXRlKQoreworCWludCByZXQgPSAwOworCXVuc2lnbmVkIG1heF9ibG9ja3MgPSBiaF9yZXN1bHQtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCisJLyoKKwkgKiB3ZSBkb24ndCB3YW50IHRvIGRvIGJsb2NrIGFsbG9jYXRpb24gaW4gd3JpdGVwYWdlCisJICogc28gY2FsbCBnZXRfYmxvY2tfd3JhcCB3aXRoIGNyZWF0ZSA9IDAKKwkgKi8KKwlyZXQgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChOVUxMLCBpbm9kZSwgaWJsb2NrLCBtYXhfYmxvY2tzLAorCQkJCSAgIGJoX3Jlc3VsdCwgMCwgMCwgMCk7CisJaWYgKHJldCA+IDApIHsKKwkJYmhfcmVzdWx0LT5iX3NpemUgPSAocmV0IDw8IGlub2RlLT5pX2Jsa2JpdHMpOworCQlyZXQgPSAwOworCX0KKwlyZXR1cm4gcmV0OworfQorCisvKgorICogZ2V0IGNhbGxlZCB2aSBleHQ0X2RhX3dyaXRlcGFnZXMgYWZ0ZXIgdGFraW5nIHBhZ2UgbG9jayAoaGF2ZSBqb3VybmFsIGhhbmRsZSkKKyAqIGdldCBjYWxsZWQgdmlhIGpvdXJuYWxfc3VibWl0X2lub2RlX2RhdGFfYnVmZmVycyAobm8gam91cm5hbCBoYW5kbGUpCisgKiBnZXQgY2FsbGVkIHZpYSBzaHJpbmtfcGFnZV9saXN0IHZpYSBwZGZsdXNoIChubyBqb3VybmFsIGhhbmRsZSkKKyAqIG9yIGdyYWJfcGFnZV9jYWNoZSB3aGVuIGRvaW5nIHdyaXRlX2JlZ2luIChoYXZlIGpvdXJuYWwgaGFuZGxlKQorICovCitzdGF0aWMgaW50IGV4dDRfZGFfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCWludCByZXQgPSAwOworCWxvZmZfdCBzaXplOworCXVuc2lnbmVkIGxvbmcgbGVuOworCXN0cnVjdCBidWZmZXJfaGVhZCAqcGFnZV9idWZzOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCisJc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwlpZiAocGFnZS0+aW5kZXggPT0gc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKQorCQlsZW4gPSBzaXplICYgflBBR0VfQ0FDSEVfTUFTSzsKKwllbHNlCisJCWxlbiA9IFBBR0VfQ0FDSEVfU0laRTsKKworCWlmIChwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7CisJCXBhZ2VfYnVmcyA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwkJaWYgKHdhbGtfcGFnZV9idWZmZXJzKE5VTEwsIHBhZ2VfYnVmcywgMCwgbGVuLCBOVUxMLAorCQkJCQlleHQ0X2JoX3VubWFwcGVkX29yX2RlbGF5KSkgeworCQkJLyoKKwkJCSAqIFdlIGRvbid0IHdhbnQgdG8gZG8gIGJsb2NrIGFsbG9jYXRpb24KKwkJCSAqIFNvIHJlZGlydHkgdGhlIHBhZ2UgYW5kIHJldHVybgorCQkJICogV2UgbWF5IHJlYWNoIGhlcmUgd2hlbiB3ZSBkbyBhIGpvdXJuYWwgY29tbWl0CisJCQkgKiB2aWEgam91cm5hbF9zdWJtaXRfaW5vZGVfZGF0YV9idWZmZXJzLgorCQkJICogSWYgd2UgZG9uJ3QgaGF2ZSBtYXBwaW5nIGJsb2NrIHdlIGp1c3QgaWdub3JlCisJCQkgKiB0aGVtLiBXZSBjYW4gYWxzbyByZWFjaCBoZXJlIHZpYSBzaHJpbmtfcGFnZV9saXN0CisJCQkgKi8KKwkJCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCXJldHVybiAwOworCQl9CisJfSBlbHNlIHsKKwkJLyoKKwkJICogVGhlIHRlc3QgZm9yIHBhZ2VfaGFzX2J1ZmZlcnMoKSBpcyBzdWJ0bGU6CisJCSAqIFdlIGtub3cgdGhlIHBhZ2UgaXMgZGlydHkgYnV0IGl0IGxvc3QgYnVmZmVycy4gVGhhdCBtZWFucworCQkgKiB0aGF0IGF0IHNvbWUgbW9tZW50IGluIHRpbWUgYWZ0ZXIgd3JpdGVfYmVnaW4oKS93cml0ZV9lbmQoKQorCQkgKiBoYXMgYmVlbiBjYWxsZWQgYWxsIGJ1ZmZlcnMgaGF2ZSBiZWVuIGNsZWFuIGFuZCB0aHVzIHRoZXkKKwkJICogbXVzdCBoYXZlIGJlZW4gd3JpdHRlbiBhdCBsZWFzdCBvbmNlLiBTbyB0aGV5IGFyZSBhbGwKKwkJICogbWFwcGVkIGFuZCB3ZSBjYW4gaGFwcGlseSBwcm9jZWVkIHdpdGggbWFwcGluZyB0aGVtCisJCSAqIGFuZCB3cml0aW5nIHRoZSBwYWdlLgorCQkgKgorCQkgKiBUcnkgdG8gaW5pdGlhbGl6ZSB0aGUgYnVmZmVyX2hlYWRzIGFuZCBjaGVjayB3aGV0aGVyCisJCSAqIGFsbCBhcmUgbWFwcGVkIGFuZCBub24gZGVsYXkuIFdlIGRvbid0IHdhbnQgdG8KKwkJICogZG8gYmxvY2sgYWxsb2NhdGlvbiBoZXJlLgorCQkgKi8KKwkJcmV0ID0gYmxvY2tfcHJlcGFyZV93cml0ZShwYWdlLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCisJCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUpOworCQlpZiAoIXJldCkgeworCQkJcGFnZV9idWZzID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCQkJLyogY2hlY2sgd2hldGhlciBhbGwgYXJlIG1hcHBlZCBhbmQgbm9uIGRlbGF5ICovCisJCQlpZiAod2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZzLCAwLCBsZW4sIE5VTEwsCisJCQkJCQlleHQ0X2JoX3VubWFwcGVkX29yX2RlbGF5KSkgeworCQkJCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJCQkJdW5sb2NrX3BhZ2UocGFnZSk7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogV2UgY2FuJ3QgZG8gYmxvY2sgYWxsb2NhdGlvbiBoZXJlCisJCQkgKiBzbyBqdXN0IHJlZGl0eSB0aGUgcGFnZSBhbmQgdW5sb2NrCisJCQkgKiBhbmQgcmV0dXJuCisJCQkgKi8KKwkJCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCisJaWYgKHRlc3Rfb3B0KGlub2RlLT5pX3NiLCBOT0JIKSAmJiBleHQ0X3Nob3VsZF93cml0ZWJhY2tfZGF0YShpbm9kZSkpCisJCXJldCA9IG5vYmhfd3JpdGVwYWdlKHBhZ2UsIGV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwgd2JjKTsKKwllbHNlCisJCXJldCA9IGJsb2NrX3dyaXRlX2Z1bGxfcGFnZShwYWdlLAorCQkJCQkJZXh0NF9ub3JtYWxfZ2V0X2Jsb2NrX3dyaXRlLAorCQkJCQkJd2JjKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBGb3Igbm93IGp1c3QgZm9sbG93IHRoZSBESU8gd2F5IHRvIGVzdGltYXRlIHRoZSBtYXggY3JlZGl0cworICogbmVlZGVkIHRvIHdyaXRlIG91dCBFWFQ0X01BWF9XUklURUJBQ0tfUEFHRVMuCisgKiB0b2RvOiBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgbWF4IGNyZWRpdHMgbmVlZCBmb3IKKyAqIGV4dGVudCBiYXNlZCBmaWxlcywgY3VycmVudGx5IHRoZSBESU8gY3JlZGl0cyBpcyBiYXNlZCBvbgorICogaW5kaXJlY3QtYmxvY2tzIG1hcHBpbmcgd2F5LgorICoKKyAqIFByb2JhYmx5IHNob3VsZCBoYXZlIGEgZ2VuZXJpYyB3YXkgdG8gY2FsY3VsYXRlIGNyZWRpdHMKKyAqIGZvciBESU8sIHdyaXRlcGFnZXMsIGFuZCB0cnVuY2F0ZQorICovCisjZGVmaW5lIEVYVDRfTUFYX1dSSVRFQkFDS19QQUdFUyAgICAgIERJT19NQVhfQkxPQ0tTCisjZGVmaW5lIEVYVDRfTUFYX1dSSVRFQkFDS19DUkVESVRTICAgIERJT19DUkVESVRTCisKK3N0YXRpYyBpbnQgZXh0NF9kYV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OworCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOworCWludCBuZWVkZWRfYmxvY2tzOworCWludCByZXQgPSAwOworCWxvbmcgdG9fd3JpdGU7CisJbG9mZl90IHJhbmdlX3N0YXJ0ID0gMDsKKworCS8qCisJICogTm8gcGFnZXMgdG8gd3JpdGU/IFRoaXMgaXMgbWFpbmx5IGEga2x1ZGdlIHRvIGF2b2lkIHN0YXJ0aW5nCisJICogYSB0cmFuc2FjdGlvbiBmb3Igc3BlY2lhbCBpbm9kZXMgbGlrZSBqb3VybmFsIGlub2RlIG9uIGxhc3QgaXB1dCgpCisJICogYmVjYXVzZSB0aGF0IGNvdWxkIHZpb2xhdGUgbG9jayBvcmRlcmluZyBvbiB1bW91bnQKKwkgKi8KKwlpZiAoIW1hcHBpbmctPm5ycGFnZXMpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBFc3RpbWF0ZSB0aGUgd29yc2UgY2FzZSBuZWVkZWQgY3JlZGl0cyB0byB3cml0ZSBvdXQKKwkgKiBFWFQ0X01BWF9CVUZfQkxPQ0tTIHBhZ2VzCisJICovCisJbmVlZGVkX2Jsb2NrcyA9IEVYVDRfTUFYX1dSSVRFQkFDS19DUkVESVRTOworCisJdG9fd3JpdGUgPSB3YmMtPm5yX3RvX3dyaXRlOworCWlmICghd2JjLT5yYW5nZV9jeWNsaWMpIHsKKwkJLyoKKwkJICogSWYgcmFuZ2VfY3ljbGljIGlzIG5vdCBzZXQgZm9yY2UgcmFuZ2VfY29udAorCQkgKiBhbmQgc2F2ZSB0aGUgb2xkIHdyaXRlYmFja19pbmRleAorCQkgKi8KKwkJd2JjLT5yYW5nZV9jb250ID0gMTsKKwkJcmFuZ2Vfc3RhcnQgPSAgd2JjLT5yYW5nZV9zdGFydDsKKwl9CisKKwl3aGlsZSAoIXJldCAmJiB0b193cml0ZSkgeworCQkvKiBzdGFydCBhIG5ldyB0cmFuc2FjdGlvbiovCisJCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgbmVlZGVkX2Jsb2Nrcyk7CisJCWlmIChJU19FUlIoaGFuZGxlKSkgeworCQkJcmV0ID0gUFRSX0VSUihoYW5kbGUpOworCQkJZ290byBvdXRfd3JpdGVwYWdlczsKKwkJfQorCQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpIHsKKwkJCS8qCisJCQkgKiBXaXRoIG9yZGVyZWQgbW9kZSB3ZSBuZWVkIHRvIGFkZAorCQkJICogdGhlIGlub2RlIHRvIHRoZSBqb3VybmFsIGhhbmRsZQorCQkJICogd2hlbiB3ZSBkbyBibG9jayBhbGxvY2F0aW9uLgorCQkJICovCisJCQlyZXQgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOworCQkJCWdvdG8gb3V0X3dyaXRlcGFnZXM7CisJCQl9CisKKwkJfQorCQkvKgorCQkgKiBzZXQgdGhlIG1heCBkaXJ0eSBwYWdlcyBjb3VsZCBiZSB3cml0ZSBhdCBhIHRpbWUKKwkJICogdG8gZml0IGludG8gdGhlIHJlc2VydmVkIHRyYW5zYWN0aW9uIGNyZWRpdHMKKwkJICovCisJCWlmICh3YmMtPm5yX3RvX3dyaXRlID4gRVhUNF9NQVhfV1JJVEVCQUNLX1BBR0VTKQorCQkJd2JjLT5ucl90b193cml0ZSA9IEVYVDRfTUFYX1dSSVRFQkFDS19QQUdFUzsKKworCQl0b193cml0ZSAtPSB3YmMtPm5yX3RvX3dyaXRlOworCQlyZXQgPSBtcGFnZV9kYV93cml0ZXBhZ2VzKG1hcHBpbmcsIHdiYywKKwkJCQkJCWV4dDRfZGFfZ2V0X2Jsb2NrX3dyaXRlKTsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKwkJaWYgKHdiYy0+bnJfdG9fd3JpdGUpIHsKKwkJCS8qCisJCQkgKiBUaGVyZSBpcyBubyBtb3JlIHdyaXRlb3V0IG5lZWRlZAorCQkJICogb3Igd2UgcmVxdWVzdGVkIGZvciBhIG5vYmxvY2tpbmcgd3JpdGVvdXQKKwkJCSAqIGFuZCB3ZSBmb3VuZCB0aGUgZGV2aWNlIGNvbmdlc3RlZAorCQkJICovCisJCQl0b193cml0ZSArPSB3YmMtPm5yX3RvX3dyaXRlOworCQkJYnJlYWs7CisJCX0KKwkJd2JjLT5ucl90b193cml0ZSA9IHRvX3dyaXRlOworCX0KKworb3V0X3dyaXRlcGFnZXM6CisJd2JjLT5ucl90b193cml0ZSA9IHRvX3dyaXRlOworCWlmIChyYW5nZV9zdGFydCkKKwkJd2JjLT5yYW5nZV9zdGFydCA9IHJhbmdlX3N0YXJ0OworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZXh0NF9kYV93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCisJCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywKKwkJCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKQoreworCWludCByZXQsIHJldHJpZXMgPSAwOworCXN0cnVjdCBwYWdlICpwYWdlOworCXBnb2ZmX3QgaW5kZXg7CisJdW5zaWduZWQgZnJvbSwgdG87CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaGFuZGxlX3QgKmhhbmRsZTsKKworCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7CisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsKKwl0byA9IGZyb20gKyBsZW47CisKK3JldHJ5OgorCS8qCisJICogV2l0aCBkZWxheWVkIGFsbG9jYXRpb24sIHdlIGRvbid0IGxvZyB0aGUgaV9kaXNrc2l6ZSB1cGRhdGUKKwkgKiBpZiB0aGVyZSBpcyBkZWxheWVkIGJsb2NrIGFsbG9jYXRpb24uIEJ1dCB3ZSBzdGlsbCBuZWVkCisJICogdG8gam91cm5hbGxpbmcgdGhlIGlfZGlza3NpemUgdXBkYXRlIGlmIHdyaXRlcyB0byB0aGUgZW5kCisJICogb2YgZmlsZSB3aGljaCBoYXMgYW4gYWxyZWFkeSBtYXBwZWQgYnVmZmVyLgorCSAqLworCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgMSk7CisJaWYgKElTX0VSUihoYW5kbGUpKSB7CisJCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKKwkJZ290byBvdXQ7CisJfQorCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsKKwlpZiAoIXBhZ2UpCisJCXJldHVybiAtRU5PTUVNOworCSpwYWdlcCA9IHBhZ2U7CisKKwlyZXQgPSBibG9ja193cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZmxhZ3MsIHBhZ2VwLCBmc2RhdGEsCisJCQkJCQkJZXh0NF9kYV9nZXRfYmxvY2tfcHJlcCk7CisJaWYgKHJldCA8IDApIHsKKwkJdW5sb2NrX3BhZ2UocGFnZSk7CisJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwl9CisKKwlpZiAocmV0ID09IC1FTk9TUEMgJiYgZXh0NF9zaG91bGRfcmV0cnlfYWxsb2MoaW5vZGUtPmlfc2IsICZyZXRyaWVzKSkKKwkJZ290byByZXRyeTsKK291dDoKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogQ2hlY2sgaWYgd2Ugc2hvdWxkIHVwZGF0ZSBpX2Rpc2tzaXplCisgKiB3aGVuIHdyaXRlIHRvIHRoZSBlbmQgb2YgZmlsZSBidXQgbm90IHJlcXVpcmUgYmxvY2sgYWxsb2NhdGlvbgorICovCitzdGF0aWMgaW50IGV4dDRfZGFfc2hvdWxkX3VwZGF0ZV9pX2Rpc2tzaXplKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCQkgdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsKKwl1bnNpZ25lZCBpbnQgaWR4OworCWludCBpOworCisJYmggPSBwYWdlX2J1ZmZlcnMocGFnZSk7CisJaWR4ID0gb2Zmc2V0ID4+IGlub2RlLT5pX2Jsa2JpdHM7CisKKwlmb3IgKGk9MDsgaSA8IGlkeDsgaSsrKQorCQliaCA9IGJoLT5iX3RoaXNfcGFnZTsKKworCWlmICghYnVmZmVyX21hcHBlZChiaCkgfHwgKGJ1ZmZlcl9kZWxheShiaCkpKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwKKwkJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OworCWludCByZXQgPSAwLCByZXQyOworCWhhbmRsZV90ICpoYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKKwlsb2ZmX3QgbmV3X2lfc2l6ZTsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7CisKKwlzdGFydCA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsKKwllbmQgPSBzdGFydCArIGNvcGllZCAtMTsKKworCS8qCisJICogZ2VuZXJpY193cml0ZV9lbmQoKSB3aWxsIHJ1biBtYXJrX2lub2RlX2RpcnR5KCkgaWYgaV9zaXplCisJICogY2hhbmdlcy4gIFNvIGxldCdzIHBpZ2d5YmFjayB0aGUgaV9kaXNrc2l6ZSBtYXJrX2lub2RlX2RpcnR5CisJICogaW50byB0aGF0LgorCSAqLworCisJbmV3X2lfc2l6ZSA9IHBvcyArIGNvcGllZDsKKwlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpIHsKKwkJaWYgKGV4dDRfZGFfc2hvdWxkX3VwZGF0ZV9pX2Rpc2tzaXplKHBhZ2UsIGVuZCkpIHsKKwkJCWRvd25fd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOworCQkJaWYgKG5ld19pX3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKSB7CisJCQkJLyoKKwkJCQkgKiBVcGRhdGluZyBpX2Rpc2tzaXplIHdoZW4gZXh0ZW5kaW5nIGZpbGUKKwkJCQkgKiB3aXRob3V0IG5lZWRpbmcgYmxvY2sgYWxsb2NhdGlvbgorCQkJCSAqLworCQkJCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKKwkJCQkJcmV0ID0gZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLAorCQkJCQkJCQkgICBpbm9kZSk7CisKKwkJCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gbmV3X2lfc2l6ZTsKKwkJCX0KKwkJCXVwX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKTsKKwkJfQorCX0KKwlyZXQyID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwKKwkJCQkJCQlwYWdlLCBmc2RhdGEpOworCWNvcGllZCA9IHJldDI7CisJaWYgKHJldDIgPCAwKQorCQlyZXQgPSByZXQyOworCXJldDIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOworCWlmICghcmV0KQorCQlyZXQgPSByZXQyOworCisJcmV0dXJuIHJldCA/IHJldCA6IGNvcGllZDsKK30KKworc3RhdGljIHZvaWQgZXh0NF9kYV9pbnZhbGlkYXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJLyoKKwkgKiBEcm9wIHJlc2VydmVkIGJsb2NrcworCSAqLworCUJVR19PTighUGFnZUxvY2tlZChwYWdlKSk7CisJaWYgKCFwYWdlX2hhc19idWZmZXJzKHBhZ2UpKQorCQlnb3RvIG91dDsKKworCWV4dDRfZGFfcGFnZV9yZWxlYXNlX3Jlc2VydmF0aW9uKHBhZ2UsIG9mZnNldCk7CisKK291dDoKKwlleHQ0X2ludmFsaWRhdGVwYWdlKHBhZ2UsIG9mZnNldCk7CisKKwlyZXR1cm47Cit9CisKIAogLyoKICAqIGJtYXAoKSBpcyBzcGVjaWFsLiAgSXQgZ2V0cyB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBzdWNoIGFzIGxpbG8gYW5kIGJ5CkBAIC0xNDE4LDYgKzI0MDksMTYgQEAKIAlqb3VybmFsX3QgKmpvdXJuYWw7CiAJaW50IGVycjsKIAorCWlmIChtYXBwaW5nX3RhZ2dlZChtYXBwaW5nLCBQQUdFQ0FDSEVfVEFHX0RJUlRZKSAmJgorCQkJdGVzdF9vcHQoaW5vZGUtPmlfc2IsIERFTEFMTE9DKSkgeworCQkvKgorCQkgKiBXaXRoIGRlbGFsbG9jIHdlIHdhbnQgdG8gc3luYyB0aGUgZmlsZQorCQkgKiBzbyB0aGF0IHdlIGNhbiBtYWtlIHN1cmUgd2UgYWxsb2NhdGUKKwkJICogYmxvY2tzIGZvciBmaWxlCisJCSAqLworCQlmaWxlbWFwX3dyaXRlX2FuZF93YWl0KG1hcHBpbmcpOworCX0KKwogCWlmIChFWFQ0X0koaW5vZGUpLT5pX3N0YXRlICYgRVhUNF9TVEFURV9KREFUQSkgewogCQkvKgogCQkgKiBUaGlzIGlzIGEgUkVBTExZIGhlYXZ5d2VpZ2h0IGFwcHJvYWNoLCBidXQgdGhlIHVzZSBvZgpAQCAtMTQ2MiwyMSArMjQ2MywxNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhX2ZuKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCi17Ci0JaWYgKGJ1ZmZlcl9tYXBwZWQoYmgpKQotCQlyZXR1cm4gZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlLCBiaCk7Ci0JcmV0dXJuIDA7Ci19Ci0KIC8qCi0gKiBOb3RlIHRoYXQgd2UgYWx3YXlzIHN0YXJ0IGEgdHJhbnNhY3Rpb24gZXZlbiBpZiB3ZSdyZSBub3Qgam91cm5hbGxpbmcKLSAqIGRhdGEuICBUaGlzIGlzIHRvIHByZXNlcnZlIG9yZGVyaW5nOiBhbnkgaG9sZSBpbnN0YW50aWF0aW9uIHdpdGhpbgotICogX19ibG9ja193cml0ZV9mdWxsX3BhZ2UgLT4gZXh0NF9nZXRfYmxvY2soKSBzaG91bGQgYmUgam91cm5hbGxlZAotICogYWxvbmcgd2l0aCB0aGUgZGF0YSBzbyB3ZSBkb24ndCBjcmFzaCBhbmQgdGhlbiBnZXQgbWV0YWRhdGEgd2hpY2gKLSAqIHJlZmVycyB0byBvbGQgZGF0YS4KKyAqIE5vdGUgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gdW5sZXNzIHdlJ3JlIGpvdXJuYWxpbmcgZGF0YQorICogYmVjYXVzZSB3ZSBzaG91bGQgaGF2ZSBob2xlcyBmaWxsZWQgZnJvbSBleHQ0X3BhZ2VfbWt3cml0ZSgpLiBXZSBldmVuIGRvbid0CisgKiBuZWVkIHRvIGZpbGUgdGhlIGlub2RlIHRvIHRoZSB0cmFuc2FjdGlvbidzIGxpc3QgaW4gb3JkZXJlZCBtb2RlIGJlY2F1c2UgaWYKKyAqIHdlIGFyZSB3cml0aW5nIGJhY2sgZGF0YSBhZGRlZCBieSB3cml0ZSgpLCB0aGUgaW5vZGUgaXMgYWxyZWFkeSB0aGVyZSBhbmQgaWYKKyAqIHdlIGFyZSB3cml0aW5nIGJhY2sgZGF0YSBtb2RpZmllZCB2aWEgbW1hcCgpLCBub29uZSBndWFyYW50ZWVzIGluIHdoaWNoCisgKiB0cmFuc2FjdGlvbiB0aGUgZGF0YSB3aWxsIGhpdCB0aGUgZGlzay4gSW4gY2FzZSB3ZSBhcmUgam91cm5hbGluZyBkYXRhLCB3ZQorICogY2Fubm90IHN0YXJ0IHRyYW5zYWN0aW9uIGRpcmVjdGx5IGJlY2F1c2UgdHJhbnNhY3Rpb24gc3RhcnQgcmFua3MgYWJvdmUgcGFnZQorICogbG9jayBzbyB3ZSBoYXZlIHRvIGRvIHNvbWUgbWFnaWMuCiAgKgotICogSW4gYWxsIGpvdXJuYWxsaW5nIG1vZGVzIGJsb2NrX3dyaXRlX2Z1bGxfcGFnZSgpIHdpbGwgc3RhcnQgdGhlIEkvTy4KKyAqIEluIGFsbCBqb3VybmFsaW5nIG1vZGVzIGJsb2NrX3dyaXRlX2Z1bGxfcGFnZSgpIHdpbGwgc3RhcnQgdGhlIEkvTy4KICAqCiAgKiBQcm9ibGVtOgogICoKQEAgLTE1MTgsMTA1ICsyNTE1LDEwMyBAQAogICogZGlzYXN0cm91cy4gIEFueSB3cml0ZSgpIG9yIG1ldGFkYXRhIG9wZXJhdGlvbiB3aWxsIHN5bmMgdGhlIGZzIGZvcgogICogdXMuCiAgKgotICogQUtQTTI6IGlmIGFsbCB0aGUgcGFnZSdzIGJ1ZmZlcnMgYXJlIG1hcHBlZCB0byBkaXNrIGFuZCAhZGF0YT1qb3VybmFsLAotICogd2UgZG9uJ3QgbmVlZCB0byBvcGVuIGEgdHJhbnNhY3Rpb24gaGVyZS4KICAqLwotc3RhdGljIGludCBleHQ0X29yZGVyZWRfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorc3RhdGljIGludCBfX2V4dDRfbm9ybWFsX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsKKworCWlmICh0ZXN0X29wdChpbm9kZS0+aV9zYiwgTk9CSCkpCisJCXJldHVybiBub2JoX3dyaXRlcGFnZShwYWdlLAorCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUsIHdiYyk7CisJZWxzZQorCQlyZXR1cm4gYmxvY2tfd3JpdGVfZnVsbF9wYWdlKHBhZ2UsCisJCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUsCisJCQkJCQl3YmMpOworfQorCitzdGF0aWMgaW50IGV4dDRfbm9ybWFsX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKK3sKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsKKwlsb2ZmX3Qgc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwlsb2ZmX3QgbGVuOworCisJSl9BU1NFUlQoUGFnZUxvY2tlZChwYWdlKSk7CisJaWYgKHBhZ2UtPmluZGV4ID09IHNpemUgPj4gUEFHRV9DQUNIRV9TSElGVCkKKwkJbGVuID0gc2l6ZSAmIH5QQUdFX0NBQ0hFX01BU0s7CisJZWxzZQorCQlsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7CisKKwlpZiAocGFnZV9oYXNfYnVmZmVycyhwYWdlKSkgeworCQkvKiBpZiBwYWdlIGhhcyBidWZmZXJzIGl0IHNob3VsZCBhbGwgYmUgbWFwcGVkCisJCSAqIGFuZCBhbGxvY2F0ZWQuIElmIHRoZXJlIGFyZSBub3QgYnVmZmVycyBhdHRhY2hlZAorCQkgKiB0byB0aGUgcGFnZSB3ZSBrbm93IHRoZSBwYWdlIGlzIGRpcnR5IGJ1dCBpdCBsb3N0CisJCSAqIGJ1ZmZlcnMuIFRoYXQgbWVhbnMgdGhhdCBhdCBzb21lIG1vbWVudCBpbiB0aW1lCisJCSAqIGFmdGVyIHdyaXRlX2JlZ2luKCkgLyB3cml0ZV9lbmQoKSBoYXMgYmVlbiBjYWxsZWQKKwkJICogYWxsIGJ1ZmZlcnMgaGF2ZSBiZWVuIGNsZWFuIGFuZCB0aHVzIHRoZXkgbXVzdCBoYXZlIGJlZW4KKwkJICogd3JpdHRlbiBhdCBsZWFzdCBvbmNlLiBTbyB0aGV5IGFyZSBhbGwgbWFwcGVkIGFuZCB3ZSBjYW4KKwkJICogaGFwcGlseSBwcm9jZWVkIHdpdGggbWFwcGluZyB0aGVtIGFuZCB3cml0aW5nIHRoZSBwYWdlLgorCQkgKi8KKwkJQlVHX09OKHdhbGtfcGFnZV9idWZmZXJzKE5VTEwsIHBhZ2VfYnVmZmVycyhwYWdlKSwgMCwgbGVuLCBOVUxMLAorCQkJCQlleHQ0X2JoX3VubWFwcGVkX29yX2RlbGF5KSk7CisJfQorCisJaWYgKCFleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKSkKKwkJcmV0dXJuIF9fZXh0NF9ub3JtYWxfd3JpdGVwYWdlKHBhZ2UsIHdiYyk7CisKKwlyZWRpcnR5X3BhZ2VfZm9yX3dyaXRlcGFnZSh3YmMsIHBhZ2UpOworCXVubG9ja19wYWdlKHBhZ2UpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZXh0NF9qb3VybmFsbGVkX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IHBhZ2UtPm1hcHBpbmc7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpwYWdlX2J1ZnM7CiAJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7CiAJaW50IHJldCA9IDA7CiAJaW50IGVycjsKIAotCUpfQVNTRVJUKFBhZ2VMb2NrZWQocGFnZSkpOworCXJldCA9IGJsb2NrX3ByZXBhcmVfd3JpdGUocGFnZSwgMCwgUEFHRV9DQUNIRV9TSVpFLAorCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUpOworCWlmIChyZXQgIT0gMCkKKwkJZ290byBvdXRfdW5sb2NrOwogCi0JLyoKLQkgKiBXZSBnaXZlIHVwIGhlcmUgaWYgd2UncmUgcmVlbnRlcmVkLCBiZWNhdXNlIGl0IG1pZ2h0IGJlIGZvciBhCi0JICogZGlmZmVyZW50IGZpbGVzeXN0ZW0uCi0JICovCi0JaWYgKGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpKQotCQlnb3RvIG91dF9mYWlsOwotCi0JaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCBleHQ0X3dyaXRlcGFnZV90cmFuc19ibG9ja3MoaW5vZGUpKTsKLQotCWlmIChJU19FUlIoaGFuZGxlKSkgewotCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7Ci0JCWdvdG8gb3V0X2ZhaWw7Ci0JfQotCi0JaWYgKCFwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7Ci0JCWNyZWF0ZV9lbXB0eV9idWZmZXJzKHBhZ2UsIGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZSwKLQkJCQkoMSA8PCBCSF9EaXJ0eSl8KDEgPDwgQkhfVXB0b2RhdGUpKTsKLQl9CiAJcGFnZV9idWZzID0gcGFnZV9idWZmZXJzKHBhZ2UpOwotCXdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLAotCQkJUEFHRV9DQUNIRV9TSVpFLCBOVUxMLCBiZ2V0X29uZSk7Ci0KLQlyZXQgPSBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwgZXh0NF9nZXRfYmxvY2ssIHdiYyk7Ci0KLQkvKgotCSAqIFRoZSBwYWdlIGNhbiBiZWNvbWUgdW5sb2NrZWQgYXQgYW55IHBvaW50IG5vdywgYW5kCi0JICogdHJ1bmNhdGUgY2FuIHRoZW4gY29tZSBpbiBhbmQgY2hhbmdlIHRoaW5ncy4gIFNvIHdlCi0JICogY2FuJ3QgdG91Y2ggKnBhZ2UgZnJvbSBub3cgb24uICBCdXQgKnBhZ2VfYnVmcyBpcwotCSAqIHNhZmUgZHVlIHRvIGVsZXZhdGVkIHJlZmNvdW50LgotCSAqLwotCi0JLyoKLQkgKiBBbmQgYXR0YWNoIHRoZW0gdG8gdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uICBCdXQgb25seSBpZgotCSAqIGJsb2NrX3dyaXRlX2Z1bGxfcGFnZSgpIHN1Y2NlZWRlZC4gIE90aGVyd2lzZSB0aGV5IGFyZSB1bm1hcHBlZCwKLQkgKiBhbmQgZ2VuZXJhbGx5IGp1bmsuCi0JICovCi0JaWYgKHJldCA9PSAwKSB7Ci0JCWVyciA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCi0JCQkJCU5VTEwsIGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhX2ZuKTsKLQkJaWYgKCFyZXQpCi0JCQlyZXQgPSBlcnI7Ci0JfQotCXdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLAotCQkJUEFHRV9DQUNIRV9TSVpFLCBOVUxMLCBicHV0X29uZSk7Ci0JZXJyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKLQlpZiAoIXJldCkKLQkJcmV0ID0gZXJyOwotCXJldHVybiByZXQ7Ci0KLW91dF9mYWlsOgotCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsIFBBR0VfQ0FDSEVfU0laRSwgTlVMTCwKKwkJCQkJCQkJYmdldF9vbmUpOworCS8qIEFzIHNvb24gYXMgd2UgdW5sb2NrIHRoZSBwYWdlLCBpdCBjYW4gZ28gYXdheSwgYnV0IHdlIGhhdmUKKwkgKiByZWZlcmVuY2VzIHRvIGJ1ZmZlcnMgc28gd2UgYXJlIHNhZmUgKi8KIAl1bmxvY2tfcGFnZShwYWdlKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGV4dDRfd3JpdGViYWNrX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKLXsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsKLQloYW5kbGVfdCAqaGFuZGxlID0gTlVMTDsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgZXJyOwotCi0JaWYgKGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpKQotCQlnb3RvIG91dF9mYWlsOwogCiAJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCBleHQ0X3dyaXRlcGFnZV90cmFuc19ibG9ja3MoaW5vZGUpKTsKIAlpZiAoSVNfRVJSKGhhbmRsZSkpIHsKIAkJcmV0ID0gUFRSX0VSUihoYW5kbGUpOwotCQlnb3RvIG91dF9mYWlsOworCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAodGVzdF9vcHQoaW5vZGUtPmlfc2IsIE5PQkgpICYmIGV4dDRfc2hvdWxkX3dyaXRlYmFja19kYXRhKGlub2RlKSkKLQkJcmV0ID0gbm9iaF93cml0ZXBhZ2UocGFnZSwgZXh0NF9nZXRfYmxvY2ssIHdiYyk7Ci0JZWxzZQotCQlyZXQgPSBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwgZXh0NF9nZXRfYmxvY2ssIHdiYyk7CisJcmV0ID0gd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCisJCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGRvX2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2Vzcyk7CiAKKwllcnIgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwKKwkJCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIHdyaXRlX2VuZF9mbik7CisJaWYgKHJldCA9PSAwKQorCQlyZXQgPSBlcnI7CiAJZXJyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gZXJyOwotCXJldHVybiByZXQ7CiAKLW91dF9mYWlsOgotCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCisJCQkJUEFHRV9DQUNIRV9TSVpFLCBOVUxMLCBicHV0X29uZSk7CisJRVhUNF9JKGlub2RlKS0+aV9zdGF0ZSB8PSBFWFQ0X1NUQVRFX0pEQVRBOworCWdvdG8gb3V0OworCitvdXRfdW5sb2NrOgogCXVubG9ja19wYWdlKHBhZ2UpOworb3V0OgogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE2MjQsNTkgKzI2MTksNTMgQEAKIAkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsKLQloYW5kbGVfdCAqaGFuZGxlID0gTlVMTDsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgZXJyOworCWxvZmZfdCBzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWxvZmZfdCBsZW47CisKKwlKX0FTU0VSVChQYWdlTG9ja2VkKHBhZ2UpKTsKKwlpZiAocGFnZS0+aW5kZXggPT0gc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKQorCQlsZW4gPSBzaXplICYgflBBR0VfQ0FDSEVfTUFTSzsKKwllbHNlCisJCWxlbiA9IFBBR0VfQ0FDSEVfU0laRTsKKworCWlmIChwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7CisJCS8qIGlmIHBhZ2UgaGFzIGJ1ZmZlcnMgaXQgc2hvdWxkIGFsbCBiZSBtYXBwZWQKKwkJICogYW5kIGFsbG9jYXRlZC4gSWYgdGhlcmUgYXJlIG5vdCBidWZmZXJzIGF0dGFjaGVkCisJCSAqIHRvIHRoZSBwYWdlIHdlIGtub3cgdGhlIHBhZ2UgaXMgZGlydHkgYnV0IGl0IGxvc3QKKwkJICogYnVmZmVycy4gVGhhdCBtZWFucyB0aGF0IGF0IHNvbWUgbW9tZW50IGluIHRpbWUKKwkJICogYWZ0ZXIgd3JpdGVfYmVnaW4oKSAvIHdyaXRlX2VuZCgpIGhhcyBiZWVuIGNhbGxlZAorCQkgKiBhbGwgYnVmZmVycyBoYXZlIGJlZW4gY2xlYW4gYW5kIHRodXMgdGhleSBtdXN0IGhhdmUgYmVlbgorCQkgKiB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIFNvIHRoZXkgYXJlIGFsbCBtYXBwZWQgYW5kIHdlIGNhbgorCQkgKiBoYXBwaWx5IHByb2NlZWQgd2l0aCBtYXBwaW5nIHRoZW0gYW5kIHdyaXRpbmcgdGhlIHBhZ2UuCisJCSAqLworCQlCVUdfT04od2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLCBsZW4sIE5VTEwsCisJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKTsKKwl9CiAKIAlpZiAoZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCkpCiAJCWdvdG8gbm9fd3JpdGU7CiAKLQloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwotCWlmIChJU19FUlIoaGFuZGxlKSkgewotCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7Ci0JCWdvdG8gbm9fd3JpdGU7Ci0JfQotCi0JaWYgKCFwYWdlX2hhc19idWZmZXJzKHBhZ2UpIHx8IFBhZ2VDaGVja2VkKHBhZ2UpKSB7CisJaWYgKFBhZ2VDaGVja2VkKHBhZ2UpKSB7CiAJCS8qCiAJCSAqIEl0J3MgbW1hcHBlZCBwYWdlY2FjaGUuICBBZGQgYnVmZmVycyBhbmQgam91cm5hbCBpdC4gIFRoZXJlCiAJCSAqIGRvZXNuJ3Qgc2VlbSBtdWNoIHBvaW50IGluIHJlZGlydHlpbmcgdGhlIHBhZ2UgaGVyZS4KIAkJICovCiAJCUNsZWFyUGFnZUNoZWNrZWQocGFnZSk7Ci0JCXJldCA9IGJsb2NrX3ByZXBhcmVfd3JpdGUocGFnZSwgMCwgUEFHRV9DQUNIRV9TSVpFLAotCQkJCQlleHQ0X2dldF9ibG9jayk7Ci0JCWlmIChyZXQgIT0gMCkgewotCQkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKLQkJCWdvdG8gb3V0X3VubG9jazsKLQkJfQotCQlyZXQgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmZmVycyhwYWdlKSwgMCwKLQkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgZG9fam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKTsKLQotCQllcnIgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmZmVycyhwYWdlKSwgMCwKLQkJCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIHdyaXRlX2VuZF9mbik7Ci0JCWlmIChyZXQgPT0gMCkKLQkJCXJldCA9IGVycjsKLQkJRVhUNF9JKGlub2RlKS0+aV9zdGF0ZSB8PSBFWFQ0X1NUQVRFX0pEQVRBOwotCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJcmV0dXJuIF9fZXh0NF9qb3VybmFsbGVkX3dyaXRlcGFnZShwYWdlLCB3YmMpOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEl0IG1heSBiZSBhIHBhZ2UgZnVsbCBvZiBjaGVja3BvaW50LW1vZGUgYnVmZmVycy4gIFdlIGRvbid0CiAJCSAqIHJlYWxseSBrbm93IHVubGVzcyB3ZSBnbyBwb2tlIGFyb3VuZCBpbiB0aGUgYnVmZmVyX2hlYWRzLgogCQkgKiBCdXQgYmxvY2tfd3JpdGVfZnVsbF9wYWdlIHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nLgogCQkgKi8KLQkJcmV0ID0gYmxvY2tfd3JpdGVfZnVsbF9wYWdlKHBhZ2UsIGV4dDRfZ2V0X2Jsb2NrLCB3YmMpOworCQlyZXR1cm4gYmxvY2tfd3JpdGVfZnVsbF9wYWdlKHBhZ2UsCisJCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUsCisJCQkJCQl3YmMpOwogCX0KLQllcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwotCWlmICghcmV0KQotCQlyZXQgPSBlcnI7Ci1vdXQ6Ci0JcmV0dXJuIHJldDsKLQogbm9fd3JpdGU6CiAJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKLW91dF91bmxvY2s6CiAJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JZ290byBvdXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZXh0NF9yZWFkcGFnZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCkBAIC0xODE5LDcgKzI4MDgsNyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZXh0NF9vcmRlcmVkX2FvcHMgPSB7CiAJLnJlYWRwYWdlCT0gZXh0NF9yZWFkcGFnZSwKIAkucmVhZHBhZ2VzCT0gZXh0NF9yZWFkcGFnZXMsCi0JLndyaXRlcGFnZQk9IGV4dDRfb3JkZXJlZF93cml0ZXBhZ2UsCisJLndyaXRlcGFnZQk9IGV4dDRfbm9ybWFsX3dyaXRlcGFnZSwKIAkuc3luY19wYWdlCT0gYmxvY2tfc3luY19wYWdlLAogCS53cml0ZV9iZWdpbgk9IGV4dDRfd3JpdGVfYmVnaW4sCiAJLndyaXRlX2VuZAk9IGV4dDRfb3JkZXJlZF93cml0ZV9lbmQsCkBAIC0xODMzLDcgKzI4MjIsNyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZXh0NF93cml0ZWJhY2tfYW9wcyA9IHsKIAkucmVhZHBhZ2UJPSBleHQ0X3JlYWRwYWdlLAogCS5yZWFkcGFnZXMJPSBleHQ0X3JlYWRwYWdlcywKLQkud3JpdGVwYWdlCT0gZXh0NF93cml0ZWJhY2tfd3JpdGVwYWdlLAorCS53cml0ZXBhZ2UJPSBleHQ0X25vcm1hbF93cml0ZXBhZ2UsCiAJLnN5bmNfcGFnZQk9IGJsb2NrX3N5bmNfcGFnZSwKIAkud3JpdGVfYmVnaW4JPSBleHQ0X3dyaXRlX2JlZ2luLAogCS53cml0ZV9lbmQJPSBleHQ0X3dyaXRlYmFja193cml0ZV9lbmQsCkBAIC0xODU3LDEwICsyODQ2LDMxIEBACiAJLnJlbGVhc2VwYWdlCT0gZXh0NF9yZWxlYXNlcGFnZSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGV4dDRfZGFfYW9wcyA9IHsKKwkucmVhZHBhZ2UJPSBleHQ0X3JlYWRwYWdlLAorCS5yZWFkcGFnZXMJPSBleHQ0X3JlYWRwYWdlcywKKwkud3JpdGVwYWdlCT0gZXh0NF9kYV93cml0ZXBhZ2UsCisJLndyaXRlcGFnZXMJPSBleHQ0X2RhX3dyaXRlcGFnZXMsCisJLnN5bmNfcGFnZQk9IGJsb2NrX3N5bmNfcGFnZSwKKwkud3JpdGVfYmVnaW4JPSBleHQ0X2RhX3dyaXRlX2JlZ2luLAorCS53cml0ZV9lbmQJPSBleHQ0X2RhX3dyaXRlX2VuZCwKKwkuYm1hcAkJPSBleHQ0X2JtYXAsCisJLmludmFsaWRhdGVwYWdlCT0gZXh0NF9kYV9pbnZhbGlkYXRlcGFnZSwKKwkucmVsZWFzZXBhZ2UJPSBleHQ0X3JlbGVhc2VwYWdlLAorCS5kaXJlY3RfSU8JPSBleHQ0X2RpcmVjdF9JTywKKwkubWlncmF0ZXBhZ2UJPSBidWZmZXJfbWlncmF0ZV9wYWdlLAorfTsKKwogdm9pZCBleHQ0X3NldF9hb3BzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0JaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQorCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSAmJgorCQl0ZXN0X29wdChpbm9kZS0+aV9zYiwgREVMQUxMT0MpKQorCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZleHQ0X2RhX2FvcHM7CisJZWxzZSBpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpCiAJCWlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmV4dDRfb3JkZXJlZF9hb3BzOworCWVsc2UgaWYgKGV4dDRfc2hvdWxkX3dyaXRlYmFja19kYXRhKGlub2RlKSAmJgorCQkgdGVzdF9vcHQoaW5vZGUtPmlfc2IsIERFTEFMTE9DKSkKKwkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZXh0NF9kYV9hb3BzOwogCWVsc2UgaWYgKGV4dDRfc2hvdWxkX3dyaXRlYmFja19kYXRhKGlub2RlKSkKIAkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZXh0NF93cml0ZWJhY2tfYW9wczsKIAllbHNlCkBAIC0xODczLDcgKzI4ODMsNyBAQAogICogVGhpcyByZXF1aXJlZCBkdXJpbmcgdHJ1bmNhdGUuIFdlIG5lZWQgdG8gcGh5c2ljYWxseSB6ZXJvIHRoZSB0YWlsIGVuZAogICogb2YgdGhhdCBibG9jayBzbyBpdCBkb2Vzbid0IHlpZWxkIG9sZCBkYXRhIGlmIHRoZSBmaWxlIGlzIGxhdGVyIGdyb3duLgogICovCi1pbnQgZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBwYWdlICpwYWdlLAoraW50IGV4dDRfYmxvY2tfdHJ1bmNhdGVfcGFnZShoYW5kbGVfdCAqaGFuZGxlLAogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IGZyb20pCiB7CiAJZXh0NF9mc2Jsa190IGluZGV4ID0gZnJvbSA+PiBQQUdFX0NBQ0hFX1NISUZUOwpAQCAtMTg4Miw4ICsyODkyLDEzIEBACiAJZXh0NF9sYmxrX3QgaWJsb2NrOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJaW50IGVyciA9IDA7CiAKKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGZyb20gPj4gUEFHRV9DQUNIRV9TSElGVCk7CisJaWYgKCFwYWdlKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWJsb2Nrc2l6ZSA9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZTsKIAlsZW5ndGggPSBibG9ja3NpemUgLSAob2Zmc2V0ICYgKGJsb2Nrc2l6ZSAtIDEpKTsKIAlpYmxvY2sgPSBpbmRleCA8PCAoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKQEAgLTE5NTYsNyArMjk3MSw3IEBACiAJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJoKTsKIAl9IGVsc2UgewogCQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpCi0JCQllcnIgPSBleHQ0X2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGUsIGJoKTsKKwkJCWVyciA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwgaW5vZGUpOwogCQltYXJrX2J1ZmZlcl9kaXJ0eShiaCk7CiAJfQogCkBAIC0yMTc5LDcgKzMxOTQsMjEgQEAKIAogCWlmICh0aGlzX2JoKSB7CiAJCUJVRkZFUl9UUkFDRSh0aGlzX2JoLCAiY2FsbCBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEiKTsKLQkJZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgdGhpc19iaCk7CisKKwkJLyoKKwkJICogVGhlIGJ1ZmZlciBoZWFkIHNob3VsZCBoYXZlIGFuIGF0dGFjaGVkIGpvdXJuYWwgaGVhZCBhdCB0aGlzCisJCSAqIHBvaW50LiBIb3dldmVyLCBpZiB0aGUgZGF0YSBpcyBjb3JydXB0ZWQgYW5kIGFuIGluZGlyZWN0CisJCSAqIGJsb2NrIHBvaW50ZWQgdG8gaXRzZWxmLCBpdCB3b3VsZCBoYXZlIGJlZW4gZGV0YWNoZWQgd2hlbgorCQkgKiB0aGUgYmxvY2sgd2FzIGNsZWFyZWQuIENoZWNrIGZvciB0aGlzIGluc3RlYWQgb2YgT09QU2luZy4KKwkJICovCisJCWlmIChiaDJqaCh0aGlzX2JoKSkKKwkJCWV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIHRoaXNfYmgpOworCQllbHNlCisJCQlleHQ0X2Vycm9yKGlub2RlLT5pX3NiLCBfX2Z1bmNfXywKKwkJCQkgICAiY2lyY3VsYXIgaW5kaXJlY3QgYmxvY2sgZGV0ZWN0ZWQsICIKKwkJCQkgICAiaW5vZGU9JWx1LCBibG9jaz0lbGx1IiwKKwkJCQkgICBpbm9kZS0+aV9pbm8sCisJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgdGhpc19iaC0+Yl9ibG9ja25yKTsKIAl9CiB9CiAKQEAgLTIzMDUsNiArMzMzNCwxOSBAQAogCX0KIH0KIAoraW50IGV4dDRfY2FuX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJaWYgKElTX0FQUEVORChpbm9kZSkgfHwgSVNfSU1NVVRBQkxFKGlub2RlKSkKKwkJcmV0dXJuIDA7CisJaWYgKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpCisJCXJldHVybiAxOworCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpKQorCQlyZXR1cm4gMTsKKwlpZiAoU19JU0xOSyhpbm9kZS0+aV9tb2RlKSkKKwkJcmV0dXJuICFleHQ0X2lub2RlX2lzX2Zhc3Rfc3ltbGluayhpbm9kZSk7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBleHQ0X3RydW5jYXRlKCkKICAqCkBAIC0yMzQ3LDUxICszMzg5LDI1IEBACiAJaW50IG47CiAJZXh0NF9sYmxrX3QgbGFzdF9ibG9jazsKIAl1bnNpZ25lZCBibG9ja3NpemUgPSBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemU7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2U7CiAKLQlpZiAoIShTX0lTUkVHKGlub2RlLT5pX21vZGUpIHx8IFNfSVNESVIoaW5vZGUtPmlfbW9kZSkgfHwKLQkgICAgU19JU0xOSyhpbm9kZS0+aV9tb2RlKSkpCisJaWYgKCFleHQ0X2Nhbl90cnVuY2F0ZShpbm9kZSkpCiAJCXJldHVybjsKLQlpZiAoZXh0NF9pbm9kZV9pc19mYXN0X3N5bWxpbmsoaW5vZGUpKQotCQlyZXR1cm47Ci0JaWYgKElTX0FQUEVORChpbm9kZSkgfHwgSVNfSU1NVVRBQkxFKGlub2RlKSkKLQkJcmV0dXJuOwotCi0JLyoKLQkgKiBXZSBoYXZlIHRvIGxvY2sgdGhlIEVPRiBwYWdlIGhlcmUsIGJlY2F1c2UgbG9ja19wYWdlKCkgbmVzdHMKLQkgKiBvdXRzaWRlIGpiZDJfam91cm5hbF9zdGFydCgpLgotCSAqLwotCWlmICgoaW5vZGUtPmlfc2l6ZSAmIChibG9ja3NpemUgLSAxKSkgPT0gMCkgewotCQkvKiBCbG9jayBib3VuZGFyeT8gTm90aGluZyB0byBkbyAqLwotCQlwYWdlID0gTlVMTDsKLQl9IGVsc2UgewotCQlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsCi0JCQkJaW5vZGUtPmlfc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKTsKLQkJaWYgKCFwYWdlKQotCQkJcmV0dXJuOwotCX0KIAogCWlmIChFWFQ0X0koaW5vZGUpLT5pX2ZsYWdzICYgRVhUNF9FWFRFTlRTX0ZMKSB7Ci0JCWV4dDRfZXh0X3RydW5jYXRlKGlub2RlLCBwYWdlKTsKKwkJZXh0NF9leHRfdHJ1bmNhdGUoaW5vZGUpOwogCQlyZXR1cm47CiAJfQogCiAJaGFuZGxlID0gc3RhcnRfdHJhbnNhY3Rpb24oaW5vZGUpOwotCWlmIChJU19FUlIoaGFuZGxlKSkgewotCQlpZiAocGFnZSkgewotCQkJY2xlYXJfaGlnaHBhZ2UocGFnZSk7Ci0JCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsKLQkJCXVubG9ja19wYWdlKHBhZ2UpOwotCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwotCQl9CisJaWYgKElTX0VSUihoYW5kbGUpKQogCQlyZXR1cm47CQkvKiBBS1BNOiByZXR1cm4gd2hhdD8gKi8KLQl9CiAKIAlsYXN0X2Jsb2NrID0gKGlub2RlLT5pX3NpemUgKyBibG9ja3NpemUtMSkKIAkJCQkJPj4gRVhUNF9CTE9DS19TSVpFX0JJVFMoaW5vZGUtPmlfc2IpOwogCi0JaWYgKHBhZ2UpCi0JCWV4dDRfYmxvY2tfdHJ1bmNhdGVfcGFnZShoYW5kbGUsIHBhZ2UsIG1hcHBpbmcsIGlub2RlLT5pX3NpemUpOworCWlmIChpbm9kZS0+aV9zaXplICYgKGJsb2Nrc2l6ZSAtIDEpKQorCQlpZiAoZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSkpCisJCQlnb3RvIG91dF9zdG9wOwogCiAJbiA9IGV4dDRfYmxvY2tfdG9fcGF0aChpbm9kZSwgbGFzdF9ibG9jaywgb2Zmc2V0cywgTlVMTCk7CiAJaWYgKG4gPT0gMCkKQEAgLTI0MTAsNiArMzQyNiwxMSBAQAogCQlnb3RvIG91dF9zdG9wOwogCiAJLyoKKwkgKiBGcm9tIGhlcmUgd2UgYmxvY2sgb3V0IGFsbCBleHQ0X2dldF9ibG9jaygpIGNhbGxlcnMgd2hvIHdhbnQgdG8KKwkgKiBtb2RpZnkgdGhlIGJsb2NrIGFsbG9jYXRpb24gdHJlZS4KKwkgKi8KKwlkb3duX3dyaXRlKCZlaS0+aV9kYXRhX3NlbSk7CisJLyoKIAkgKiBUaGUgb3JwaGFuIGxpc3QgZW50cnkgd2lsbCBub3cgcHJvdGVjdCB1cyBmcm9tIGFueSBjcmFzaCB3aGljaAogCSAqIG9jY3VycyBiZWZvcmUgdGhlIHRydW5jYXRlIGNvbXBsZXRlcywgc28gaXQgaXMgbm93IHNhZmUgdG8gcHJvcGFnYXRlCiAJICogdGhlIG5ldywgc2hvcnRlciBpbm9kZSBzaXplIChoZWxkIGZvciBub3cgaW4gaV9zaXplKSBpbnRvIHRoZQpAQCAtMjQxOCwxMiArMzQzOSw2IEBACiAJICovCiAJZWktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwogCi0JLyoKLQkgKiBGcm9tIGhlcmUgd2UgYmxvY2sgb3V0IGFsbCBleHQ0X2dldF9ibG9jaygpIGNhbGxlcnMgd2hvIHdhbnQgdG8KLQkgKiBtb2RpZnkgdGhlIGJsb2NrIGFsbG9jYXRpb24gdHJlZS4KLQkgKi8KLQlkb3duX3dyaXRlKCZlaS0+aV9kYXRhX3NlbSk7Ci0KIAlpZiAobiA9PSAxKSB7CQkvKiBkaXJlY3QgYmxvY2tzICovCiAJCWV4dDRfZnJlZV9kYXRhKGhhbmRsZSwgaW5vZGUsIE5VTEwsIGlfZGF0YStvZmZzZXRzWzBdLAogCQkJICAgICAgIGlfZGF0YSArIEVYVDRfTkRJUl9CTE9DS1MpOwpAQCAtMzEwNyw3ICs0MTIyLDE0IEBACiAgKiBiZSBmcmVlZCwgc28gd2UgaGF2ZSBhIHN0cm9uZyBndWFyYW50ZWUgdGhhdCBubyBmdXR1cmUgY29tbWl0IHdpbGwKICAqIGxlYXZlIHRoZXNlIGJsb2NrcyB2aXNpYmxlIHRvIHRoZSB1c2VyLikKICAqCi0gKiBDYWxsZWQgd2l0aCBpbm9kZS0+c2VtIGRvd24uCisgKiBBbm90aGVyIHRoaW5nIHdlIGhhdmUgdG8gYXNzdXJlIGlzIHRoYXQgaWYgd2UgYXJlIGluIG9yZGVyZWQgbW9kZQorICogYW5kIGlub2RlIGlzIHN0aWxsIGF0dGFjaGVkIHRvIHRoZSBjb21taXR0aW5nIHRyYW5zYWN0aW9uLCB3ZSBtdXN0CisgKiB3ZSBzdGFydCB3cml0ZW91dCBvZiBhbGwgdGhlIGRpcnR5IHBhZ2VzIHdoaWNoIGFyZSBiZWluZyB0cnVuY2F0ZWQuCisgKiBUaGlzIHdheSB3ZSBhcmUgc3VyZSB0aGF0IGFsbCB0aGUgZGF0YSB3cml0dGVuIGluIHRoZSBwcmV2aW91cworICogdHJhbnNhY3Rpb24gYXJlIGFscmVhZHkgb24gZGlzayAodHJ1bmNhdGUgd2FpdHMgZm9yIHBhZ2VzIHVuZGVyCisgKiB3cml0ZWJhY2spLgorICoKKyAqIENhbGxlZCB3aXRoIGlub2RlLT5pX211dGV4IGRvd24uCiAgKi8KIGludCBleHQ0X3NldGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIpCiB7CkBAIC0zMTczLDYgKzQxOTUsMjIgQEAKIAkJaWYgKCFlcnJvcikKIAkJCWVycm9yID0gcmM7CiAJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisKKwkJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKSB7CisJCQllcnJvciA9IGV4dDRfYmVnaW5fb3JkZXJlZF90cnVuY2F0ZShpbm9kZSwKKwkJCQkJCQkgICAgYXR0ci0+aWFfc2l6ZSk7CisJCQlpZiAoZXJyb3IpIHsKKwkJCQkvKiBEbyBhcyBtdWNoIGVycm9yIGNsZWFudXAgYXMgcG9zc2libGUgKi8KKwkJCQloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIDMpOworCQkJCWlmIChJU19FUlIoaGFuZGxlKSkgeworCQkJCQlleHQ0X29ycGhhbl9kZWwoTlVMTCwgaW5vZGUpOworCQkJCQlnb3RvIGVycl9vdXQ7CisJCQkJfQorCQkJCWV4dDRfb3JwaGFuX2RlbChoYW5kbGUsIGlub2RlKTsKKwkJCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOworCQkJCWdvdG8gZXJyX291dDsKKwkJCX0KKwkJfQogCX0KIAogCXJjID0gaW5vZGVfc2V0YXR0cihpbm9kZSwgYXR0cik7CkBAIC0zMTkzLDYgKzQyMzEsMzIgQEAKIAlyZXR1cm4gZXJyb3I7CiB9CiAKK2ludCBleHQ0X2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJIHN0cnVjdCBrc3RhdCAqc3RhdCkKK3sKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOworCXVuc2lnbmVkIGxvbmcgZGVsYWxsb2NfYmxvY2tzOworCisJaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CisJZ2VuZXJpY19maWxsYXR0cihpbm9kZSwgc3RhdCk7CisKKwkvKgorCSAqIFdlIGNhbid0IHVwZGF0ZSBpX2Jsb2NrcyBpZiB0aGUgYmxvY2sgYWxsb2NhdGlvbiBpcyBkZWxheWVkCisJICogb3RoZXJ3aXNlIGluIHRoZSBjYXNlIG9mIHN5c3RlbSBjcmFzaCBiZWZvcmUgdGhlIHJlYWwgYmxvY2sKKwkgKiBhbGxvY2F0aW9uIGlzIGRvbmUsIHdlIHdpbGwgaGF2ZSBpX2Jsb2NrcyBpbmNvbnNpc3RlbnQgd2l0aAorCSAqIG9uLWRpc2sgZmlsZSBibG9ja3MuCisJICogV2UgYWx3YXlzIGtlZXAgaV9ibG9ja3MgdXBkYXRlZCB0b2dldGhlciB3aXRoIHJlYWwKKwkgKiBhbGxvY2F0aW9uLiBCdXQgdG8gbm90IGNvbmZ1c2Ugd2l0aCB1c2VyLCBzdGF0CisJICogd2lsbCByZXR1cm4gdGhlIGJsb2NrcyB0aGF0IGluY2x1ZGUgdGhlIGRlbGF5ZWQgYWxsb2NhdGlvbgorCSAqIGJsb2NrcyBmb3IgdGhpcyBmaWxlLgorCSAqLworCXNwaW5fbG9jaygmRVhUNF9JKGlub2RlKS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKTsKKwlkZWxhbGxvY19ibG9ja3MgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzOworCXNwaW5fdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCisJc3RhdC0+YmxvY2tzICs9IChkZWxhbGxvY19ibG9ja3MgPDwgaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplX2JpdHMpPj45OworCXJldHVybiAwOworfQogCiAvKgogICogSG93IG1hbnkgYmxvY2tzIGRvdGggbWFrZSBhIHdyaXRlcGFnZSgpPwpAQCAtMzUwNiwzICs0NTcwLDY0IEBACiAKIAlyZXR1cm4gZXJyOwogfQorCitzdGF0aWMgaW50IGV4dDRfYmhfdW5tYXBwZWQoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwlyZXR1cm4gIWJ1ZmZlcl9tYXBwZWQoYmgpOworfQorCitpbnQgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCBwYWdlICpwYWdlKQoreworCWxvZmZfdCBzaXplOworCXVuc2lnbmVkIGxvbmcgbGVuOworCWludCByZXQgPSAtRUlOVkFMOworCXN0cnVjdCBmaWxlICpmaWxlID0gdm1hLT52bV9maWxlOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsKKworCS8qCisJICogR2V0IGlfYWxsb2Nfc2VtIHRvIHN0b3AgdHJ1bmNhdGVzIG1lc3Npbmcgd2l0aCB0aGUgaW5vZGUuIFdlIGNhbm5vdAorCSAqIGdldCBpX211dGV4IGJlY2F1c2Ugd2UgYXJlIGFscmVhZHkgaG9sZGluZyBtbWFwX3NlbS4KKwkgKi8KKwlkb3duX3JlYWQoJmlub2RlLT5pX2FsbG9jX3NlbSk7CisJc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwlpZiAocGFnZS0+bWFwcGluZyAhPSBtYXBwaW5nIHx8IHNpemUgPD0gcGFnZV9vZmZzZXQocGFnZSkKKwkgICAgfHwgIVBhZ2VVcHRvZGF0ZShwYWdlKSkgeworCQkvKiBwYWdlIGdvdCB0cnVuY2F0ZWQgZnJvbSB1bmRlciB1cz8gKi8KKwkJZ290byBvdXRfdW5sb2NrOworCX0KKwlyZXQgPSAwOworCWlmIChQYWdlTWFwcGVkVG9EaXNrKHBhZ2UpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlpZiAocGFnZS0+aW5kZXggPT0gc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKQorCQlsZW4gPSBzaXplICYgflBBR0VfQ0FDSEVfTUFTSzsKKwllbHNlCisJCWxlbiA9IFBBR0VfQ0FDSEVfU0laRTsKKworCWlmIChwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7CisJCS8qIHJldHVybiBpZiB3ZSBoYXZlIGFsbCB0aGUgYnVmZmVycyBtYXBwZWQgKi8KKwkJaWYgKCF3YWxrX3BhZ2VfYnVmZmVycyhOVUxMLCBwYWdlX2J1ZmZlcnMocGFnZSksIDAsIGxlbiwgTlVMTCwKKwkJCQkgICAgICAgZXh0NF9iaF91bm1hcHBlZCkpCisJCQlnb3RvIG91dF91bmxvY2s7CisJfQorCS8qCisJICogT0ssIHdlIG5lZWQgdG8gZmlsbCB0aGUgaG9sZS4uLiBEbyB3cml0ZV9iZWdpbiB3cml0ZV9lbmQKKwkgKiB0byBkbyBibG9jayBhbGxvY2F0aW9uL3Jlc2VydmF0aW9uLldlIGFyZSBub3QgaG9sZGluZworCSAqIGlub2RlLmlfX211dGV4IGhlcmUuIFRoYXQgYWxsb3cgKiBwYXJhbGxlbCB3cml0ZV9iZWdpbiwKKwkgKiB3cml0ZV9lbmQgY2FsbC4gbG9ja19wYWdlIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZworCSAqIG9uIHRoZSBzYW1lIHBhZ2UgdGhvdWdoCisJICovCisJcmV0ID0gbWFwcGluZy0+YV9vcHMtPndyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBhZ2Vfb2Zmc2V0KHBhZ2UpLAorCQkJbGVuLCBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsICZwYWdlLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfdW5sb2NrOworCXJldCA9IG1hcHBpbmctPmFfb3BzLT53cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcGFnZV9vZmZzZXQocGFnZSksCisJCQlsZW4sIGxlbiwgcGFnZSwgTlVMTCk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0X3VubG9jazsKKwlyZXQgPSAwOworb3V0X3VubG9jazoKKwl1cF9yZWFkKCZpbm9kZS0+aV9hbGxvY19zZW0pOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9mcy9leHQ0L21iYWxsb2MuYyBiL2ZzL2V4dDQvbWJhbGxvYy5jCmluZGV4IDg3M2FkOWIuLjhkMTQxYTIgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvbWJhbGxvYy5jCisrKyBiL2ZzL2V4dDQvbWJhbGxvYy5jCkBAIC0zODEsMjIgKzM4MSwyOCBAQAogCiBzdGF0aWMgaW5saW5lIGludCBtYl9maW5kX25leHRfemVyb19iaXQodm9pZCAqYWRkciwgaW50IG1heCwgaW50IHN0YXJ0KQogewotCWludCBmaXggPSAwOworCWludCBmaXggPSAwLCByZXQsIHRtcG1heDsKIAlhZGRyID0gbWJfY29ycmVjdF9hZGRyX2FuZF9iaXQoJmZpeCwgYWRkcik7Ci0JbWF4ICs9IGZpeDsKKwl0bXBtYXggPSBtYXggKyBmaXg7CiAJc3RhcnQgKz0gZml4OwogCi0JcmV0dXJuIGV4dDRfZmluZF9uZXh0X3plcm9fYml0KGFkZHIsIG1heCwgc3RhcnQpIC0gZml4OworCXJldCA9IGV4dDRfZmluZF9uZXh0X3plcm9fYml0KGFkZHIsIHRtcG1heCwgc3RhcnQpIC0gZml4OworCWlmIChyZXQgPiBtYXgpCisJCXJldHVybiBtYXg7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgbWJfZmluZF9uZXh0X2JpdCh2b2lkICphZGRyLCBpbnQgbWF4LCBpbnQgc3RhcnQpCiB7Ci0JaW50IGZpeCA9IDA7CisJaW50IGZpeCA9IDAsIHJldCwgdG1wbWF4OwogCWFkZHIgPSBtYl9jb3JyZWN0X2FkZHJfYW5kX2JpdCgmZml4LCBhZGRyKTsKLQltYXggKz0gZml4OworCXRtcG1heCA9IG1heCArIGZpeDsKIAlzdGFydCArPSBmaXg7CiAKLQlyZXR1cm4gZXh0NF9maW5kX25leHRfYml0KGFkZHIsIG1heCwgc3RhcnQpIC0gZml4OworCXJldCA9IGV4dDRfZmluZF9uZXh0X2JpdChhZGRyLCB0bXBtYXgsIHN0YXJ0KSAtIGZpeDsKKwlpZiAocmV0ID4gbWF4KQorCQlyZXR1cm4gbWF4OworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkICptYl9maW5kX2J1ZGR5KHN0cnVjdCBleHQ0X2J1ZGR5ICplNGIsIGludCBvcmRlciwgaW50ICptYXgpCkBAIC04MDMsNiArODA5LDcgQEAKIAkJaWYgKCFidWZmZXJfdXB0b2RhdGUoYmhbaV0pKQogCQkJZ290byBvdXQ7CiAKKwllcnIgPSAwOwogCWZpcnN0X2Jsb2NrID0gcGFnZS0+aW5kZXggKiBibG9ja3NfcGVyX3BhZ2U7CiAJZm9yIChpID0gMDsgaSA8IGJsb2Nrc19wZXJfcGFnZTsgaSsrKSB7CiAJCWludCBncm91cDsKQEAgLTg4Myw2ICs4OTAsNyBAQAogCWludCBwbnVtOwogCWludCBwb2ZmOwogCXN0cnVjdCBwYWdlICpwYWdlOworCWludCByZXQ7CiAKIAltYl9kZWJ1ZygibG9hZCBncm91cCAlbHVcbiIsIGdyb3VwKTsKIApAQCAtOTE0LDE1ICs5MjIsMjEgQEAKIAkJaWYgKHBhZ2UpIHsKIAkJCUJVR19PTihwYWdlLT5tYXBwaW5nICE9IGlub2RlLT5pX21hcHBpbmcpOwogCQkJaWYgKCFQYWdlVXB0b2RhdGUocGFnZSkpIHsKLQkJCQlleHQ0X21iX2luaXRfY2FjaGUocGFnZSwgTlVMTCk7CisJCQkJcmV0ID0gZXh0NF9tYl9pbml0X2NhY2hlKHBhZ2UsIE5VTEwpOworCQkJCWlmIChyZXQpIHsKKwkJCQkJdW5sb2NrX3BhZ2UocGFnZSk7CisJCQkJCWdvdG8gZXJyOworCQkJCX0KIAkJCQltYl9jbXBfYml0bWFwcyhlNGIsIHBhZ2VfYWRkcmVzcyhwYWdlKSArCiAJCQkJCSAgICAgICAocG9mZiAqIHNiLT5zX2Jsb2Nrc2l6ZSkpOwogCQkJfQogCQkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCX0KIAl9Ci0JaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKQorCWlmIChwYWdlID09IE5VTEwgfHwgIVBhZ2VVcHRvZGF0ZShwYWdlKSkgeworCQlyZXQgPSAtRUlPOwogCQlnb3RvIGVycjsKKwl9CiAJZTRiLT5iZF9iaXRtYXBfcGFnZSA9IHBhZ2U7CiAJZTRiLT5iZF9iaXRtYXAgPSBwYWdlX2FkZHJlc3MocGFnZSkgKyAocG9mZiAqIHNiLT5zX2Jsb2Nrc2l6ZSk7CiAJbWFya19wYWdlX2FjY2Vzc2VkKHBhZ2UpOwpAQCAtOTM4LDE0ICs5NTIsMjAgQEAKIAkJcGFnZSA9IGZpbmRfb3JfY3JlYXRlX3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSwgR0ZQX05PRlMpOwogCQlpZiAocGFnZSkgewogCQkJQlVHX09OKHBhZ2UtPm1hcHBpbmcgIT0gaW5vZGUtPmlfbWFwcGluZyk7Ci0JCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkKLQkJCQlleHQ0X21iX2luaXRfY2FjaGUocGFnZSwgZTRiLT5iZF9iaXRtYXApOwotCisJCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkgeworCQkJCXJldCA9IGV4dDRfbWJfaW5pdF9jYWNoZShwYWdlLCBlNGItPmJkX2JpdG1hcCk7CisJCQkJaWYgKHJldCkgeworCQkJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCQkJZ290byBlcnI7CisJCQkJfQorCQkJfQogCQkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCX0KIAl9Ci0JaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKQorCWlmIChwYWdlID09IE5VTEwgfHwgIVBhZ2VVcHRvZGF0ZShwYWdlKSkgeworCQlyZXQgPSAtRUlPOwogCQlnb3RvIGVycjsKKwl9CiAJZTRiLT5iZF9idWRkeV9wYWdlID0gcGFnZTsKIAllNGItPmJkX2J1ZGR5ID0gcGFnZV9hZGRyZXNzKHBhZ2UpICsgKHBvZmYgKiBzYi0+c19ibG9ja3NpemUpOwogCW1hcmtfcGFnZV9hY2Nlc3NlZChwYWdlKTsKQEAgLTk2Miw3ICs5ODIsNyBAQAogCQlwYWdlX2NhY2hlX3JlbGVhc2UoZTRiLT5iZF9idWRkeV9wYWdlKTsKIAllNGItPmJkX2J1ZGR5ID0gTlVMTDsKIAllNGItPmJkX2JpdG1hcCA9IE5VTEw7Ci0JcmV0dXJuIC1FSU87CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgZXh0NF9tYl9yZWxlYXNlX2Rlc2Moc3RydWN0IGV4dDRfYnVkZHkgKmU0YikKQEAgLTEwMzEsNyArMTA1MSw3IEBACiAJfQogfQogCi1zdGF0aWMgaW50IG1iX2ZyZWVfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X2J1ZGR5ICplNGIsCitzdGF0aWMgdm9pZCBtYl9mcmVlX2Jsb2NrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZXh0NF9idWRkeSAqZTRiLAogCQkJICBpbnQgZmlyc3QsIGludCBjb3VudCkKIHsKIAlpbnQgYmxvY2sgPSAwOwpAQCAtMTA3MSwxMSArMTA5MSwxMiBAQAogCQkJYmxvY2tuciArPSBibG9jazsKIAkJCWJsb2NrbnIgKz0KIAkJCSAgICBsZTMyX3RvX2NwdShFWFQ0X1NCKHNiKS0+c19lcy0+c19maXJzdF9kYXRhX2Jsb2NrKTsKLQorCQkJZXh0NF91bmxvY2tfZ3JvdXAoc2IsIGU0Yi0+YmRfZ3JvdXApOwogCQkJZXh0NF9lcnJvcihzYiwgX19mdW5jX18sICJkb3VibGUtZnJlZSBvZiBpbm9kZSIKIAkJCQkgICAiICVsdSdzIGJsb2NrICVsbHUoYml0ICV1IGluIGdyb3VwICVsdSlcbiIsCiAJCQkJICAgaW5vZGUgPyBpbm9kZS0+aV9pbm8gOiAwLCBibG9ja25yLCBibG9jaywKIAkJCQkgICBlNGItPmJkX2dyb3VwKTsKKwkJCWV4dDRfbG9ja19ncm91cChzYiwgZTRiLT5iZF9ncm91cCk7CiAJCX0KIAkJbWJfY2xlYXJfYml0KGJsb2NrLCBFWFQ0X01CX0JJVE1BUChlNGIpKTsKIAkJZTRiLT5iZF9pbmZvLT5iYl9jb3VudGVyc1tvcmRlcl0rKzsKQEAgLTExMTMsOCArMTEzNCw2IEBACiAJCX0gd2hpbGUgKDEpOwogCX0KIAltYl9jaGVja19idWRkeShlNGIpOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgbWJfZmluZF9leHRlbnQoc3RydWN0IGV4dDRfYnVkZHkgKmU0YiwgaW50IG9yZGVyLCBpbnQgYmxvY2ssCkBAIC0xNzMwLDEwICsxNzQ5LDYgQEAKIAkJYWMtPmFjX2dfZXguZmVfc3RhcnQgPSBzYmktPnNfbWJfbGFzdF9zdGFydDsKIAkJc3Bpbl91bmxvY2soJnNiaS0+c19tZF9sb2NrKTsKIAl9Ci0KLQkvKiBzZWFyY2hpbmcgZm9yIHRoZSByaWdodCBncm91cCBzdGFydCBmcm9tIHRoZSBnb2FsIHZhbHVlIHNwZWNpZmllZCAqLwotCWdyb3VwID0gYWMtPmFjX2dfZXguZmVfZ3JvdXA7Ci0KIAkvKiBMZXQncyBqdXN0IHNjYW4gZ3JvdXBzIHRvIGZpbmQgbW9yZS1sZXNzIHN1aXRhYmxlIGJsb2NrcyAqLwogCWNyID0gYWMtPmFjXzJvcmRlciA/IDAgOiAxOwogCS8qCkBAIC0xNzQzLDYgKzE3NTgsMTIgQEAKIHJlcGVhdDoKIAlmb3IgKDsgY3IgPCA0ICYmIGFjLT5hY19zdGF0dXMgPT0gQUNfU1RBVFVTX0NPTlRJTlVFOyBjcisrKSB7CiAJCWFjLT5hY19jcml0ZXJpYSA9IGNyOworCQkvKgorCQkgKiBzZWFyY2hpbmcgZm9yIHRoZSByaWdodCBncm91cCBzdGFydAorCQkgKiBmcm9tIHRoZSBnb2FsIHZhbHVlIHNwZWNpZmllZAorCQkgKi8KKwkJZ3JvdXAgPSBhYy0+YWNfZ19leC5mZV9ncm91cDsKKwogCQlmb3IgKGkgPSAwOyBpIDwgRVhUNF9TQihzYiktPnNfZ3JvdXBzX2NvdW50OyBncm91cCsrLCBpKyspIHsKIAkJCXN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKmdycDsKIAkJCXN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmRlc2M7CkBAIC0xOTYzLDYgKzE5ODQsOCBAQAogCWludCByYzsKIAlpbnQgc2l6ZTsKIAorCWlmICh1bmxpa2VseShzYmktPnNfbWJfaGlzdG9yeSA9PSBOVUxMKSkKKwkJcmV0dXJuIC1FTk9NRU07CiAJcyA9IGttYWxsb2Moc2l6ZW9mKCpzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0yMTY1LDkgKzIxODgsNyBAQAogCXNiaS0+c19tYl9oaXN0b3J5X2N1ciA9IDA7CiAJc3Bpbl9sb2NrX2luaXQoJnNiaS0+c19tYl9oaXN0b3J5X2xvY2spOwogCWkgPSBzYmktPnNfbWJfaGlzdG9yeV9tYXggKiBzaXplb2Yoc3RydWN0IGV4dDRfbWJfaGlzdG9yeSk7Ci0Jc2JpLT5zX21iX2hpc3RvcnkgPSBrbWFsbG9jKGksIEdGUF9LRVJORUwpOwotCWlmIChsaWtlbHkoc2JpLT5zX21iX2hpc3RvcnkgIT0gTlVMTCkpCi0JCW1lbXNldChzYmktPnNfbWJfaGlzdG9yeSwgMCwgaSk7CisJc2JpLT5zX21iX2hpc3RvcnkgPSBremFsbG9jKGksIEdGUF9LRVJORUwpOwogCS8qIGlmIHdlIGNhbid0IGFsbG9jYXRlIGhpc3RvcnksIHRoZW4gd2Ugc2ltcGxlIHdvbid0IHVzZSBpdCAqLwogfQogCkBAIC0yMjE1LDIxICsyMjM2LDE5MiBAQAogI2RlZmluZSBleHQ0X21iX2hpc3RvcnlfaW5pdChzYikKICNlbmRpZgogCisKKy8qIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBleHQ0X2dyb3VwX2luZm8gZGF0YSBmb3IgdGhlIGdpdmVuIGdyb3VwLiAqLworaW50IGV4dDRfbWJfYWRkX2dyb3VwaW5mbyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgZ3JvdXAsCisJCQkgIHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmRlc2MpCit7CisJaW50IGksIGxlbjsKKwlpbnQgbWV0YWxlbiA9IDA7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqKm1ldGFfZ3JvdXBfaW5mbzsKKworCS8qCisJICogRmlyc3QgY2hlY2sgaWYgdGhpcyBncm91cCBpcyB0aGUgZmlyc3Qgb2YgYSByZXNlcnZlZCBibG9jay4KKwkgKiBJZiBpdCdzIHRydWUsIHdlIGhhdmUgdG8gYWxsb2NhdGUgYSBuZXcgdGFibGUgb2YgcG9pbnRlcnMKKwkgKiB0byBleHQ0X2dyb3VwX2luZm8gc3RydWN0dXJlcworCSAqLworCWlmIChncm91cCAlIEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpID09IDApIHsKKwkJbWV0YWxlbiA9IHNpemVvZigqbWV0YV9ncm91cF9pbmZvKSA8PAorCQkJRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKTsKKwkJbWV0YV9ncm91cF9pbmZvID0ga21hbGxvYyhtZXRhbGVuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKG1ldGFfZ3JvdXBfaW5mbyA9PSBOVUxMKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IGNhbid0IGFsbG9jYXRlIG1lbSBmb3IgYSAiCisJCQkgICAgICAgImJ1ZGR5IGdyb3VwXG4iKTsKKwkJCWdvdG8gZXhpdF9tZXRhX2dyb3VwX2luZm87CisJCX0KKwkJc2JpLT5zX2dyb3VwX2luZm9bZ3JvdXAgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKV0gPQorCQkJbWV0YV9ncm91cF9pbmZvOworCX0KKworCS8qCisJICogY2FsY3VsYXRlIG5lZWRlZCBzaXplLiBpZiBjaGFuZ2UgYmJfY291bnRlcnMgc2l6ZSwKKwkgKiBkb24ndCBmb3JnZXQgYWJvdXQgZXh0NF9tYl9nZW5lcmF0ZV9idWRkeSgpCisJICovCisJbGVuID0gb2Zmc2V0b2YodHlwZW9mKCoqbWV0YV9ncm91cF9pbmZvKSwKKwkJICAgICAgIGJiX2NvdW50ZXJzW3NiLT5zX2Jsb2Nrc2l6ZV9iaXRzICsgMl0pOworCisJbWV0YV9ncm91cF9pbmZvID0KKwkJc2JpLT5zX2dyb3VwX2luZm9bZ3JvdXAgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKV07CisJaSA9IGdyb3VwICYgKEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpIC0gMSk7CisKKwltZXRhX2dyb3VwX2luZm9baV0gPSBremFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7CisJaWYgKG1ldGFfZ3JvdXBfaW5mb1tpXSA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgYnVkZHkgbWVtXG4iKTsKKwkJZ290byBleGl0X2dyb3VwX2luZm87CisJfQorCXNldF9iaXQoRVhUNF9HUk9VUF9JTkZPX05FRURfSU5JVF9CSVQsCisJCSYobWV0YV9ncm91cF9pbmZvW2ldLT5iYl9zdGF0ZSkpOworCisJLyoKKwkgKiBpbml0aWFsaXplIGJiX2ZyZWUgdG8gYmUgYWJsZSB0byBza2lwCisJICogZW1wdHkgZ3JvdXBzIHdpdGhvdXQgaW5pdGlhbGl6YXRpb24KKwkgKi8KKwlpZiAoZGVzYy0+YmdfZmxhZ3MgJiBjcHVfdG9fbGUxNihFWFQ0X0JHX0JMT0NLX1VOSU5JVCkpIHsKKwkJbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9mcmVlID0KKwkJCWV4dDRfZnJlZV9ibG9ja3NfYWZ0ZXJfaW5pdChzYiwgZ3JvdXAsIGRlc2MpOworCX0gZWxzZSB7CisJCW1ldGFfZ3JvdXBfaW5mb1tpXS0+YmJfZnJlZSA9CisJCQlsZTE2X3RvX2NwdShkZXNjLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCk7CisJfQorCisJSU5JVF9MSVNUX0hFQUQoJm1ldGFfZ3JvdXBfaW5mb1tpXS0+YmJfcHJlYWxsb2NfbGlzdCk7CisKKyNpZmRlZiBET1VCTEVfQ0hFQ0sKKwl7CisJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisJCW1ldGFfZ3JvdXBfaW5mb1tpXS0+YmJfYml0bWFwID0KKwkJCWttYWxsb2Moc2ItPnNfYmxvY2tzaXplLCBHRlBfS0VSTkVMKTsKKwkJQlVHX09OKG1ldGFfZ3JvdXBfaW5mb1tpXS0+YmJfYml0bWFwID09IE5VTEwpOworCQliaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwkJQlVHX09OKGJoID09IE5VTEwpOworCQltZW1jcHkobWV0YV9ncm91cF9pbmZvW2ldLT5iYl9iaXRtYXAsIGJoLT5iX2RhdGEsCisJCQlzYi0+c19ibG9ja3NpemUpOworCQlwdXRfYmgoYmgpOworCX0KKyNlbmRpZgorCisJcmV0dXJuIDA7CisKK2V4aXRfZ3JvdXBfaW5mbzoKKwkvKiBJZiBhIG1ldGFfZ3JvdXBfaW5mbyB0YWJsZSBoYXMgYmVlbiBhbGxvY2F0ZWQsIHJlbGVhc2UgaXQgbm93ICovCisJaWYgKGdyb3VwICUgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgPT0gMCkKKwkJa2ZyZWUoc2JpLT5zX2dyb3VwX2luZm9bZ3JvdXAgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKV0pOworZXhpdF9tZXRhX2dyb3VwX2luZm86CisJcmV0dXJuIC1FTk9NRU07Cit9IC8qIGV4dDRfbWJfYWRkX2dyb3VwaW5mbyAqLworCisvKgorICogQWRkIGEgZ3JvdXAgdG8gdGhlIGV4aXN0aW5nIGdyb3Vwcy4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBmb3Igb25saW5lIHJlc2l6ZQorICovCitpbnQgZXh0NF9tYl9hZGRfbW9yZV9ncm91cGluZm8oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgZXh0NF9ncm91cF90IGdyb3VwLAorCQkJICAgICAgIHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmRlc2MpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGlub2RlICppbm9kZSA9IHNiaS0+c19idWRkeV9jYWNoZTsKKwlpbnQgYmxvY2tzX3Blcl9wYWdlOworCWludCBibG9jazsKKwlpbnQgcG51bTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlpbnQgZXJyOworCisJLyogQWRkIGdyb3VwIGJhc2VkIG9uIGdyb3VwIGRlc2NyaXB0b3IqLworCWVyciA9IGV4dDRfbWJfYWRkX2dyb3VwaW5mbyhzYiwgZ3JvdXAsIGRlc2MpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwkvKgorCSAqIENhY2hlIHBhZ2VzIGNvbnRhaW5pbmcgZHluYW1pYyBtYl9hbGxvYyBkYXRhcyAoYnVkZHkgYW5kIGJpdG1hcAorCSAqIGRhdGFzKSBhcmUgc2V0IG5vdCB1cCB0byBkYXRlIHNvIHRoYXQgdGhleSB3aWxsIGJlIHJlLWluaXRpbGFpemVkCisJICogZHVyaW5nIHRoZSBuZXh0IGNhbGwgdG8gZXh0NF9tYl9sb2FkX2J1ZGR5CisJICovCisKKwkvKiBTZXQgYnVkZHkgcGFnZSBhcyBub3QgdXAgdG8gZGF0ZSAqLworCWJsb2Nrc19wZXJfcGFnZSA9IFBBR0VfQ0FDSEVfU0laRSAvIHNiLT5zX2Jsb2Nrc2l6ZTsKKwlibG9jayA9IGdyb3VwICogMjsKKwlwbnVtID0gYmxvY2sgLyBibG9ja3NfcGVyX3BhZ2U7CisJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJaWYgKHBhZ2UgIT0gTlVMTCkgeworCQlDbGVhclBhZ2VVcHRvZGF0ZShwYWdlKTsKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCS8qIFNldCBiaXRtYXAgcGFnZSBhcyBub3QgdXAgdG8gZGF0ZSAqLworCWJsb2NrKys7CisJcG51bSA9IGJsb2NrIC8gYmxvY2tzX3Blcl9wYWdlOworCXBhZ2UgPSBmaW5kX2dldF9wYWdlKGlub2RlLT5pX21hcHBpbmcsIHBudW0pOworCWlmIChwYWdlICE9IE5VTEwpIHsKKwkJQ2xlYXJQYWdlVXB0b2RhdGUocGFnZSk7CisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFVwZGF0ZSBhbiBleGlzdGluZyBncm91cC4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBmb3Igb25saW5lIHJlc2l6ZQorICovCit2b2lkIGV4dDRfbWJfdXBkYXRlX2dyb3VwX2luZm8oc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqZ3JwLCBleHQ0X2dycGJsa190IGFkZCkKK3sKKwlncnAtPmJiX2ZyZWUgKz0gYWRkOworfQorCiBzdGF0aWMgaW50IGV4dDRfbWJfaW5pdF9iYWNrZW5kKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJZXh0NF9ncm91cF90IGk7Ci0JaW50IGosIGxlbiwgbWV0YWxlbjsKKwlpbnQgbWV0YWxlbjsKIAlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKLQlpbnQgbnVtX21ldGFfZ3JvdXBfaW5mb3MgPQotCQkoc2JpLT5zX2dyb3Vwc19jb3VudCArIEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpIC0gMSkgPj4KLQkJCUVYVDRfREVTQ19QRVJfQkxPQ0tfQklUUyhzYik7CisJc3RydWN0IGV4dDRfc3VwZXJfYmxvY2sgKmVzID0gc2JpLT5zX2VzOworCWludCBudW1fbWV0YV9ncm91cF9pbmZvczsKKwlpbnQgbnVtX21ldGFfZ3JvdXBfaW5mb3NfbWF4OworCWludCBhcnJheV9zaXplOwogCXN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKiptZXRhX2dyb3VwX2luZm87CisJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKIAorCS8qIFRoaXMgaXMgdGhlIG51bWJlciBvZiBibG9ja3MgdXNlZCBieSBHRFQgKi8KKwludW1fbWV0YV9ncm91cF9pbmZvcyA9IChzYmktPnNfZ3JvdXBzX2NvdW50ICsgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLQorCQkJCTEpID4+IEVYVDRfREVTQ19QRVJfQkxPQ0tfQklUUyhzYik7CisKKwkvKgorCSAqIFRoaXMgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBibG9ja3MgdXNlZCBieSBHRFQgaW5jbHVkaW5nCisJICogdGhlIG51bWJlciBvZiByZXNlcnZlZCBibG9ja3MgZm9yIEdEVC4KKwkgKiBUaGUgc19ncm91cF9pbmZvIGFycmF5IGlzIGFsbG9jYXRlZCB3aXRoIHRoaXMgdmFsdWUKKwkgKiB0byBhbGxvdyBhIGNsZWFuIG9ubGluZSByZXNpemUgd2l0aG91dCBhIGNvbXBsZXgKKwkgKiBtYW5pcHVsYXRpb24gb2YgcG9pbnRlci4KKwkgKiBUaGUgZHJhd2JhY2sgaXMgdGhlIHVudXNlZCBtZW1vcnkgd2hlbiBubyByZXNpemUKKwkgKiBvY2N1cnMgYnV0IGl0J3MgdmVyeSBsb3cgaW4gdGVybXMgb2YgcGFnZXMKKwkgKiAoc2VlIGNvbW1lbnRzIGJlbG93KQorCSAqIE5lZWQgdG8gaGFuZGxlIHRoaXMgcHJvcGVybHkgd2hlbiBNRVRBX0JHIHJlc2l6aW5nIGlzIGFsbG93ZWQKKwkgKi8KKwludW1fbWV0YV9ncm91cF9pbmZvc19tYXggPSBudW1fbWV0YV9ncm91cF9pbmZvcyArCisJCQkJbGUxNl90b19jcHUoZXMtPnNfcmVzZXJ2ZWRfZ2R0X2Jsb2Nrcyk7CisKKwkvKgorCSAqIGFycmF5X3NpemUgaXMgdGhlIHNpemUgb2Ygc19ncm91cF9pbmZvIGFycmF5LiBXZSByb3VuZCBpdAorCSAqIHRvIHRoZSBuZXh0IHBvd2VyIG9mIHR3byBiZWNhdXNlIHRoaXMgYXBwcm94aW1hdGlvbiBpcyBkb25lCisJICogaW50ZXJuYWxseSBieSBrbWFsbG9jIHNvIHdlIGNhbiBoYXZlIHNvbWUgbW9yZSBtZW1vcnkKKwkgKiBmb3IgZnJlZSBoZXJlIChlLmcuIG1heSBiZSB1c2VkIGZvciBNRVRBX0JHIHJlc2l6ZSkuCisJICovCisJYXJyYXlfc2l6ZSA9IDE7CisJd2hpbGUgKGFycmF5X3NpemUgPCBzaXplb2YoKnNiaS0+c19ncm91cF9pbmZvKSAqCisJICAgICAgIG51bV9tZXRhX2dyb3VwX2luZm9zX21heCkKKwkJYXJyYXlfc2l6ZSA9IGFycmF5X3NpemUgPDwgMTsKIAkvKiBBbiA4VEIgZmlsZXN5c3RlbSB3aXRoIDY0LWJpdCBwb2ludGVycyByZXF1aXJlcyBhIDQwOTYgYnl0ZQogCSAqIGttYWxsb2MuIEEgMTI4a2IgbWFsbG9jIHNob3VsZCBzdWZmaWNlIGZvciBhIDI1NlRCIGZpbGVzeXN0ZW0uCiAJICogU28gYSB0d28gbGV2ZWwgc2NoZW1lIHN1ZmZpY2VzIGZvciBub3cuICovCi0Jc2JpLT5zX2dyb3VwX2luZm8gPSBrbWFsbG9jKHNpemVvZigqc2JpLT5zX2dyb3VwX2luZm8pICoKLQkJCQkgICAgbnVtX21ldGFfZ3JvdXBfaW5mb3MsIEdGUF9LRVJORUwpOworCXNiaS0+c19ncm91cF9pbmZvID0ga21hbGxvYyhhcnJheV9zaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAoc2JpLT5zX2dyb3VwX2luZm8gPT0gTlVMTCkgewogCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IGNhbid0IGFsbG9jYXRlIGJ1ZGR5IG1ldGEgZ3JvdXBcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTIyNTYsNjMgKzI0NDgsMTUgQEAKIAkJc2JpLT5zX2dyb3VwX2luZm9baV0gPSBtZXRhX2dyb3VwX2luZm87CiAJfQogCi0JLyoKLQkgKiBjYWxjdWxhdGUgbmVlZGVkIHNpemUuIGlmIGNoYW5nZSBiYl9jb3VudGVycyBzaXplLAotCSAqIGRvbid0IGZvcmdldCBhYm91dCBleHQ0X21iX2dlbmVyYXRlX2J1ZGR5KCkKLQkgKi8KLQlsZW4gPSBzaXplb2Yoc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyk7Ci0JbGVuICs9IHNpemVvZih1bnNpZ25lZCBzaG9ydCkgKiAoc2ItPnNfYmxvY2tzaXplX2JpdHMgKyAyKTsKIAlmb3IgKGkgPSAwOyBpIDwgc2JpLT5zX2dyb3Vwc19jb3VudDsgaSsrKSB7Ci0JCXN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmRlc2M7Ci0KLQkJbWV0YV9ncm91cF9pbmZvID0KLQkJCXNiaS0+c19ncm91cF9pbmZvW2kgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKV07Ci0JCWogPSBpICYgKEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpIC0gMSk7Ci0KLQkJbWV0YV9ncm91cF9pbmZvW2pdID0ga3phbGxvYyhsZW4sIEdGUF9LRVJORUwpOwotCQlpZiAobWV0YV9ncm91cF9pbmZvW2pdID09IE5VTEwpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgYnVkZHkgbWVtXG4iKTsKLQkJCWdvdG8gZXJyX2ZyZWVidWRkeTsKLQkJfQogCQlkZXNjID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgaSwgTlVMTCk7CiAJCWlmIChkZXNjID09IE5VTEwpIHsKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJCSJFWFQ0LWZzOiBjYW4ndCByZWFkIGRlc2NyaXB0b3IgJWx1XG4iLCBpKTsKLQkJCWkrKzsKIAkJCWdvdG8gZXJyX2ZyZWVidWRkeTsKIAkJfQotCQltZW1zZXQobWV0YV9ncm91cF9pbmZvW2pdLCAwLCBsZW4pOwotCQlzZXRfYml0KEVYVDRfR1JPVVBfSU5GT19ORUVEX0lOSVRfQklULAotCQkJJihtZXRhX2dyb3VwX2luZm9bal0tPmJiX3N0YXRlKSk7Ci0KLQkJLyoKLQkJICogaW5pdGlhbGl6ZSBiYl9mcmVlIHRvIGJlIGFibGUgdG8gc2tpcAotCQkgKiBlbXB0eSBncm91cHMgd2l0aG91dCBpbml0aWFsaXphdGlvbgotCQkgKi8KLQkJaWYgKGRlc2MtPmJnX2ZsYWdzICYgY3B1X3RvX2xlMTYoRVhUNF9CR19CTE9DS19VTklOSVQpKSB7Ci0JCQltZXRhX2dyb3VwX2luZm9bal0tPmJiX2ZyZWUgPQotCQkJCWV4dDRfZnJlZV9ibG9ja3NfYWZ0ZXJfaW5pdChzYiwgaSwgZGVzYyk7Ci0JCX0gZWxzZSB7Ci0JCQltZXRhX2dyb3VwX2luZm9bal0tPmJiX2ZyZWUgPQotCQkJCWxlMTZfdG9fY3B1KGRlc2MtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKLQkJfQotCi0JCUlOSVRfTElTVF9IRUFEKCZtZXRhX2dyb3VwX2luZm9bal0tPmJiX3ByZWFsbG9jX2xpc3QpOwotCi0jaWZkZWYgRE9VQkxFX0NIRUNLCi0JCXsKLQkJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Ci0JCQltZXRhX2dyb3VwX2luZm9bal0tPmJiX2JpdG1hcCA9Ci0JCQkJa21hbGxvYyhzYi0+c19ibG9ja3NpemUsIEdGUF9LRVJORUwpOwotCQkJQlVHX09OKG1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfYml0bWFwID09IE5VTEwpOwotCQkJYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgaSk7Ci0JCQlCVUdfT04oYmggPT0gTlVMTCk7Ci0JCQltZW1jcHkobWV0YV9ncm91cF9pbmZvW2pdLT5iYl9iaXRtYXAsIGJoLT5iX2RhdGEsCi0JCQkJCXNiLT5zX2Jsb2Nrc2l6ZSk7Ci0JCQlwdXRfYmgoYmgpOwotCQl9Ci0jZW5kaWYKLQorCQlpZiAoZXh0NF9tYl9hZGRfZ3JvdXBpbmZvKHNiLCBpLCBkZXNjKSAhPSAwKQorCQkJZ290byBlcnJfZnJlZWJ1ZGR5OwogCX0KIAogCXJldHVybiAwOwpAQCAtMjMzNiw2ICsyNDgwLDcgQEAKIAl1bnNpZ25lZCBpOwogCXVuc2lnbmVkIG9mZnNldDsKIAl1bnNpZ25lZCBtYXg7CisJaW50IHJldDsKIAogCWlmICghdGVzdF9vcHQoc2IsIE1CQUxMT0MpKQogCQlyZXR1cm4gMDsKQEAgLTIzNzAsMTIgKzI1MTUsMTIgQEAKIAl9IHdoaWxlIChpIDw9IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzICsgMSk7CiAKIAkvKiBpbml0IGZpbGUgZm9yIGJ1ZGR5IGRhdGEgKi8KLQlpID0gZXh0NF9tYl9pbml0X2JhY2tlbmQoc2IpOwotCWlmIChpKSB7CisJcmV0ID0gZXh0NF9tYl9pbml0X2JhY2tlbmQoc2IpOworCWlmIChyZXQgIT0gMCkgewogCQljbGVhcl9vcHQoc2JpLT5zX21vdW50X29wdCwgTUJBTExPQyk7CiAJCWtmcmVlKHNiaS0+c19tYl9vZmZzZXRzKTsKIAkJa2ZyZWUoc2JpLT5zX21iX21heHMpOwotCQlyZXR1cm4gaTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlzcGluX2xvY2tfaW5pdCgmc2JpLT5zX21kX2xvY2spOwpAQCAtMjU0OCw4ICsyNjkzLDcgQEAKIAkJZXh0NF9sb2NrX2dyb3VwKHNiLCBtZC0+Z3JvdXApOwogCQlmb3IgKGkgPSAwOyBpIDwgbWQtPm51bTsgaSsrKSB7CiAJCQltYl9kZWJ1ZygiICV1IiwgbWQtPmJsb2Nrc1tpXSk7Ci0JCQllcnIgPSBtYl9mcmVlX2Jsb2NrcyhOVUxMLCAmZTRiLCBtZC0+YmxvY2tzW2ldLCAxKTsKLQkJCUJVR19PTihlcnIgIT0gMCk7CisJCQltYl9mcmVlX2Jsb2NrcyhOVUxMLCAmZTRiLCBtZC0+YmxvY2tzW2ldLCAxKTsKIAkJfQogCQltYl9kZWJ1ZygiXG4iKTsKIAkJZXh0NF91bmxvY2tfZ3JvdXAoc2IsIG1kLT5ncm91cCk7CkBAIC0yNTc1LDI1ICsyNzE5LDI0IEBACiAKIAogCi0jZGVmaW5lIE1CX1BST0NfVkFMVUVfUkVBRChuYW1lKQkJCQlcCi1zdGF0aWMgaW50IGV4dDRfbWJfcmVhZF8jI25hbWUoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LAlcCi0JCW9mZl90IG9mZiwgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkJXAorI2RlZmluZSBNQl9QUk9DX0ZPUFMobmFtZSkJCQkJCVwKK3N0YXRpYyBpbnQgZXh0NF9tYl8jI25hbWUjI19wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQlcCiB7CQkJCQkJCQlcCi0Jc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gZGF0YTsJCQlcCi0JaW50IGxlbjsJCQkJCQlcCi0JKmVvZiA9IDE7CQkJCQkJXAotCWlmIChvZmYgIT0gMCkJCQkJCQlcCi0JCXJldHVybiAwOwkJCQkJXAotCWxlbiA9IHNwcmludGYocGFnZSwgIiVsZFxuIiwgc2JpLT5zX21iXyMjbmFtZSk7CQlcCi0JKnN0YXJ0ID0gcGFnZTsJCQkJCQlcCi0JcmV0dXJuIGxlbjsJCQkJCQlcCi19Ci0KLSNkZWZpbmUgTUJfUFJPQ19WQUxVRV9XUklURShuYW1lKQkJCQlcCi1zdGF0aWMgaW50IGV4dDRfbWJfd3JpdGVfIyNuYW1lKHN0cnVjdCBmaWxlICpmaWxlLAkJXAotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCB1bnNpZ25lZCBsb25nIGNudCwgdm9pZCAqZGF0YSkJXAorCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IG0tPnByaXZhdGU7CQkJXAorCQkJCQkJCQlcCisJc2VxX3ByaW50ZihtLCAiJWxkXG4iLCBzYmktPnNfbWJfIyNuYW1lKTsJCVwKKwlyZXR1cm4gMDsJCQkJCQlcCit9CQkJCQkJCQlcCisJCQkJCQkJCVwKK3N0YXRpYyBpbnQgZXh0NF9tYl8jI25hbWUjI19wcm9jX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpXAogewkJCQkJCQkJXAotCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IGRhdGE7CQkJXAorCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfc2hvdywgUERFKGlub2RlKS0+ZGF0YSk7XAorfQkJCQkJCQkJXAorCQkJCQkJCQlcCitzdGF0aWMgc3NpemVfdCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCVwKKwkJY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQlcCit7CQkJCQkJCQlcCisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gUERFKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpLT5kYXRhO1wKIAljaGFyIHN0clszMl07CQkJCQkJXAogCWxvbmcgdmFsdWU7CQkJCQkJXAogCWlmIChjbnQgPj0gc2l6ZW9mKHN0cikpCQkJCQlcCkBAIC0yNjA1LDMxICsyNzQ4LDMyIEBACiAJCXJldHVybiAtRVJBTkdFOwkJCQkJXAogCXNiaS0+c19tYl8jI25hbWUgPSB2YWx1ZTsJCQkJXAogCXJldHVybiBjbnQ7CQkJCQkJXAotfQorfQkJCQkJCQkJXAorCQkJCQkJCQlcCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBleHQ0X21iXyMjbmFtZSMjX3Byb2NfZm9wcyA9IHsJXAorCS5vd25lcgkJPSBUSElTX01PRFVMRSwJCQkJXAorCS5vcGVuCQk9IGV4dDRfbWJfIyNuYW1lIyNfcHJvY19vcGVuLAkJXAorCS5yZWFkCQk9IHNlcV9yZWFkLAkJCQlcCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCQkJCVwKKwkucmVsZWFzZQk9IHNpbmdsZV9yZWxlYXNlLAkJCVwKKwkud3JpdGUJCT0gZXh0NF9tYl8jI25hbWUjI19wcm9jX3dyaXRlLAkJXAorfTsKIAotTUJfUFJPQ19WQUxVRV9SRUFEKHN0YXRzKTsKLU1CX1BST0NfVkFMVUVfV1JJVEUoc3RhdHMpOwotTUJfUFJPQ19WQUxVRV9SRUFEKG1heF90b19zY2FuKTsKLU1CX1BST0NfVkFMVUVfV1JJVEUobWF4X3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9SRUFEKG1pbl90b19zY2FuKTsKLU1CX1BST0NfVkFMVUVfV1JJVEUobWluX3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9SRUFEKG9yZGVyMl9yZXFzKTsKLU1CX1BST0NfVkFMVUVfV1JJVEUob3JkZXIyX3JlcXMpOwotTUJfUFJPQ19WQUxVRV9SRUFEKHN0cmVhbV9yZXF1ZXN0KTsKLU1CX1BST0NfVkFMVUVfV1JJVEUoc3RyZWFtX3JlcXVlc3QpOwotTUJfUFJPQ19WQUxVRV9SRUFEKGdyb3VwX3ByZWFsbG9jKTsKLU1CX1BST0NfVkFMVUVfV1JJVEUoZ3JvdXBfcHJlYWxsb2MpOworTUJfUFJPQ19GT1BTKHN0YXRzKTsKK01CX1BST0NfRk9QUyhtYXhfdG9fc2Nhbik7CitNQl9QUk9DX0ZPUFMobWluX3RvX3NjYW4pOworTUJfUFJPQ19GT1BTKG9yZGVyMl9yZXFzKTsKK01CX1BST0NfRk9QUyhzdHJlYW1fcmVxdWVzdCk7CitNQl9QUk9DX0ZPUFMoZ3JvdXBfcHJlYWxsb2MpOwogCiAjZGVmaW5lCU1CX1BST0NfSEFORExFUihuYW1lLCB2YXIpCQkJCQlcCiBkbyB7CQkJCQkJCQkJXAotCXByb2MgPSBjcmVhdGVfcHJvY19lbnRyeShuYW1lLCBtb2RlLCBzYmktPnNfbWJfcHJvYyk7CQlcCisJcHJvYyA9IHByb2NfY3JlYXRlX2RhdGEobmFtZSwgbW9kZSwgc2JpLT5zX21iX3Byb2MsCQlcCisJCQkJJmV4dDRfbWJfIyN2YXIjI19wcm9jX2ZvcHMsIHNiaSk7CVwKIAlpZiAocHJvYyA9PSBOVUxMKSB7CQkJCQkJXAogCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IGNhbid0IHRvIGNyZWF0ZSAlc1xuIiwgbmFtZSk7CVwKIAkJZ290byBlcnJfb3V0OwkJCQkJCVwKIAl9CQkJCQkJCQlcCi0JcHJvYy0+ZGF0YSA9IHNiaTsJCQkJCQlcCi0JcHJvYy0+cmVhZF9wcm9jICA9IGV4dDRfbWJfcmVhZF8jI3ZhciA7CQkJCVwKLQlwcm9jLT53cml0ZV9wcm9jID0gZXh0NF9tYl93cml0ZV8jI3ZhcjsJCQkJXAogfSB3aGlsZSAoMCkKIAogc3RhdGljIGludCBleHQ0X21iX2luaXRfcGVyX2Rldl9wcm9jKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCkBAIC0yNjM5LDYgKzI3ODMsMTAgQEAKIAlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2M7CiAJY2hhciBkZXZuYW1lWzY0XTsKIAorCWlmIChwcm9jX3Jvb3RfZXh0NCA9PSBOVUxMKSB7CisJCXNiaS0+c19tYl9wcm9jID0gTlVMTDsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQogCWJkZXZuYW1lKHNiLT5zX2JkZXYsIGRldm5hbWUpOwogCXNiaS0+c19tYl9wcm9jID0gcHJvY19ta2RpcihkZXZuYW1lLCBwcm9jX3Jvb3RfZXh0NCk7CiAKQEAgLTI3NDUsMTEgKzI4OTMsOSBAQAogCXNiaSA9IEVYVDRfU0Ioc2IpOwogCWVzID0gc2JpLT5zX2VzOwogCi0JZXh0NF9kZWJ1ZygidXNpbmcgYmxvY2sgZ3JvdXAgJWx1KCVkKVxuIiwgYWMtPmFjX2JfZXguZmVfZ3JvdXAsCi0JCQlnZHAtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKIAogCWVyciA9IC1FSU87Ci0JYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGFjLT5hY19iX2V4LmZlX2dyb3VwKTsKKwliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBhYy0+YWNfYl9leC5mZV9ncm91cCk7CiAJaWYgKCFiaXRtYXBfYmgpCiAJCWdvdG8gb3V0X2VycjsKIApAQCAtMjc2Miw2ICsyOTA4LDkgQEAKIAlpZiAoIWdkcCkKIAkJZ290byBvdXRfZXJyOwogCisJZXh0NF9kZWJ1ZygidXNpbmcgYmxvY2sgZ3JvdXAgJWx1KCVkKVxuIiwgYWMtPmFjX2JfZXguZmVfZ3JvdXAsCisJCQlnZHAtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKKwogCWVyciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwgZ2RwX2JoKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9lcnI7CkBAIC0yODE1LDcgKzI5NjQsMjMgQEAKIAlsZTE2X2FkZF9jcHUoJmdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQsIC1hYy0+YWNfYl9leC5mZV9sZW4pOwogCWdkcC0+YmdfY2hlY2tzdW0gPSBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzYmksIGFjLT5hY19iX2V4LmZlX2dyb3VwLCBnZHApOwogCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgYWMtPmFjX2JfZXguZmVfZ3JvdXApKTsKLQlwZXJjcHVfY291bnRlcl9zdWIoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIGFjLT5hY19iX2V4LmZlX2xlbik7CisKKwkvKgorCSAqIGZyZWUgYmxvY2tzIGFjY291bnQgaGFzIGFscmVhZHkgYmUgcmVkdWNlZC9yZXNlcnZlZAorCSAqIGF0IHdyaXRlX2JlZ2luKCkgdGltZSBmb3IgZGVsYXllZCBhbGxvY2F0aW9uCisJICogZG8gbm90IGRvdWJsZSBhY2NvdW50aW5nCisJICovCisJaWYgKCEoYWMtPmFjX2ZsYWdzICYgRVhUNF9NQl9ERUxBTExPQ19SRVNFUlZFRCkpCisJCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwKKwkJCQkJYWMtPmFjX2JfZXguZmVfbGVuKTsKKworCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlleHQ0X2dyb3VwX3QgZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksCisJCQkJCQkJICBhYy0+YWNfYl9leC5mZV9ncm91cCk7CisJCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJc2JpLT5zX2ZsZXhfZ3JvdXBzW2ZsZXhfZ3JvdXBdLmZyZWVfYmxvY2tzIC09IGFjLT5hY19iX2V4LmZlX2xlbjsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQogCiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYml0bWFwX2JoKTsKIAlpZiAoZXJyKQpAQCAtMzA5NCw4ICszMjU5LDcgQEAKIHN0YXRpYyB2b2lkIGV4dDRfbWJfdXNlX2dyb3VwX3BhKHN0cnVjdCBleHQ0X2FsbG9jYXRpb25fY29udGV4dCAqYWMsCiAJCQkJc3RydWN0IGV4dDRfcHJlYWxsb2Nfc3BhY2UgKnBhKQogewotCXVuc2lnbmVkIGxlbiA9IGFjLT5hY19vX2V4LmZlX2xlbjsKLQorCXVuc2lnbmVkIGludCBsZW4gPSBhYy0+YWNfb19leC5mZV9sZW47CiAJZXh0NF9nZXRfZ3JvdXBfbm9fYW5kX29mZnNldChhYy0+YWNfc2IsIHBhLT5wYV9wc3RhcnQsCiAJCQkJCSZhYy0+YWNfYl9leC5mZV9ncm91cCwKIAkJCQkJJmFjLT5hY19iX2V4LmZlX3N0YXJ0KTsKQEAgLTM0NzMsOCArMzYzNyw2IEBACiAJCWlmIChiaXQgPj0gZW5kKQogCQkJYnJlYWs7CiAJCW5leHQgPSBtYl9maW5kX25leHRfYml0KGJpdG1hcF9iaC0+Yl9kYXRhLCBlbmQsIGJpdCk7Ci0JCWlmIChuZXh0ID4gZW5kKQotCQkJbmV4dCA9IGVuZDsKIAkJc3RhcnQgPSBncm91cCAqIEVYVDRfQkxPQ0tTX1BFUl9HUk9VUChzYikgKyBiaXQgKwogCQkJCWxlMzJfdG9fY3B1KHNiaS0+c19lcy0+c19maXJzdF9kYXRhX2Jsb2NrKTsKIAkJbWJfZGVidWcoIiAgICBmcmVlIHByZWFsbG9jYXRlZCAldS8ldSBpbiBncm91cCAldVxuIiwKQEAgLTM1NjksNyArMzczMSw3IEBACiAJaWYgKGxpc3RfZW1wdHkoJmdycC0+YmJfcHJlYWxsb2NfbGlzdCkpCiAJCXJldHVybiAwOwogCi0JYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cCk7CiAJaWYgKGJpdG1hcF9iaCA9PSBOVUxMKSB7CiAJCS8qIGVycm9yIGhhbmRsaW5nIGhlcmUgKi8KIAkJZXh0NF9tYl9yZWxlYXNlX2Rlc2MoJmU0Yik7CkBAIC0zNzQzLDcgKzM5MDUsNyBAQAogCQllcnIgPSBleHQ0X21iX2xvYWRfYnVkZHkoc2IsIGdyb3VwLCAmZTRiKTsKIAkJQlVHX09OKGVyciAhPSAwKTsgLyogZXJyb3IgaGFuZGxpbmcgaGVyZSAqLwogCi0JCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cCk7CisJCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKIAkJaWYgKGJpdG1hcF9iaCA9PSBOVUxMKSB7CiAJCQkvKiBlcnJvciBoYW5kbGluZyBoZXJlICovCiAJCQlleHQ0X21iX3JlbGVhc2VfZGVzYygmZTRiKTsKQEAgLTQwMTEsMTAgKzQxNzMsMjEgQEAKIAlzYmkgPSBFWFQ0X1NCKHNiKTsKIAogCWlmICghdGVzdF9vcHQoc2IsIE1CQUxMT0MpKSB7Ci0JCWJsb2NrID0gZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGUsIGFyLT5pbm9kZSwgYXItPmdvYWwsCisJCWJsb2NrID0gZXh0NF9vbGRfbmV3X2Jsb2NrcyhoYW5kbGUsIGFyLT5pbm9kZSwgYXItPmdvYWwsCiAJCQkJCSAgICAmKGFyLT5sZW4pLCBlcnJwKTsKIAkJcmV0dXJuIGJsb2NrOwogCX0KKwlpZiAoIUVYVDRfSShhci0+aW5vZGUpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcpIHsKKwkJLyoKKwkJICogV2l0aCBkZWxhbGxvYyB3ZSBhbHJlYWR5IHJlc2VydmVkIHRoZSBibG9ja3MKKwkJICovCisJCWFyLT5sZW4gPSBleHQ0X2hhc19mcmVlX2Jsb2NrcyhzYmksIGFyLT5sZW4pOworCX0KKworCWlmIChhci0+bGVuID09IDApIHsKKwkJKmVycnAgPSAtRU5PU1BDOworCQlyZXR1cm4gMDsKKwl9CiAKIAl3aGlsZSAoYXItPmxlbiAmJiBEUVVPVF9BTExPQ19CTE9DSyhhci0+aW5vZGUsIGFyLT5sZW4pKSB7CiAJCWFyLT5mbGFncyB8PSBFWFQ0X01CX0hJTlRfTk9QUkVBTExPQzsKQEAgLTQwMjYsMTAgKzQxOTksMTQgQEAKIAl9CiAJaW5xdW90YSA9IGFyLT5sZW47CiAKKwlpZiAoRVhUNF9JKGFyLT5pbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZykKKwkJYXItPmZsYWdzIHw9IEVYVDRfTUJfREVMQUxMT0NfUkVTRVJWRUQ7CisKIAlhYyA9IGttZW1fY2FjaGVfYWxsb2MoZXh0NF9hY19jYWNoZXAsIEdGUF9OT0ZTKTsKIAlpZiAoIWFjKSB7CisJCWFyLT5sZW4gPSAwOwogCQkqZXJycCA9IC1FTk9NRU07Ci0JCXJldHVybiAwOworCQlnb3RvIG91dDE7CiAJfQogCiAJZXh0NF9tYl9wb2xsX25ld190cmFuc2FjdGlvbihzYiwgaGFuZGxlKTsKQEAgLTQwMzcsMTIgKzQyMTQsMTEgQEAKIAkqZXJycCA9IGV4dDRfbWJfaW5pdGlhbGl6ZV9jb250ZXh0KGFjLCBhcik7CiAJaWYgKCplcnJwKSB7CiAJCWFyLT5sZW4gPSAwOwotCQlnb3RvIG91dDsKKwkJZ290byBvdXQyOwogCX0KIAogCWFjLT5hY19vcCA9IEVYVDRfTUJfSElTVE9SWV9QUkVBTExPQzsKIAlpZiAoIWV4dDRfbWJfdXNlX3ByZWFsbG9jYXRlZChhYykpIHsKLQogCQlhYy0+YWNfb3AgPSBFWFQ0X01CX0hJU1RPUllfQUxMT0M7CiAJCWV4dDRfbWJfbm9ybWFsaXplX3JlcXVlc3QoYWMsIGFyKTsKIHJlcGVhdDoKQEAgLTQwODUsMTEgKzQyNjEsMTIgQEAKIAogCWV4dDRfbWJfcmVsZWFzZV9jb250ZXh0KGFjKTsKIAotb3V0Ogorb3V0MjoKKwlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9hY19jYWNoZXAsIGFjKTsKK291dDE6CiAJaWYgKGFyLT5sZW4gPCBpbnF1b3RhKQogCQlEUVVPVF9GUkVFX0JMT0NLKGFyLT5pbm9kZSwgaW5xdW90YSAtIGFyLT5sZW4pOwogCi0Ja21lbV9jYWNoZV9mcmVlKGV4dDRfYWNfY2FjaGVwLCBhYyk7CiAJcmV0dXJuIGJsb2NrOwogfQogc3RhdGljIHZvaWQgZXh0NF9tYl9wb2xsX25ld190cmFuc2FjdGlvbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLApAQCAtNDI0Miw3ICs0NDE5LDcgQEAKIAkJb3ZlcmZsb3cgPSBiaXQgKyBjb3VudCAtIEVYVDRfQkxPQ0tTX1BFUl9HUk9VUChzYik7CiAJCWNvdW50IC09IG92ZXJmbG93OwogCX0KLQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgYmxvY2tfZ3JvdXApOworCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGJsb2NrX2dyb3VwKTsKIAlpZiAoIWJpdG1hcF9iaCkKIAkJZ290byBlcnJvcl9yZXR1cm47CiAJZ2RwID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgYmxvY2tfZ3JvdXAsICZnZF9iaCk7CkBAIC00MzA5LDEwICs0NDg2LDkgQEAKIAkJZXh0NF9tYl9mcmVlX21ldGFkYXRhKGhhbmRsZSwgJmU0YiwgYmxvY2tfZ3JvdXAsIGJpdCwgY291bnQpOwogCX0gZWxzZSB7CiAJCWV4dDRfbG9ja19ncm91cChzYiwgYmxvY2tfZ3JvdXApOwotCQllcnIgPSBtYl9mcmVlX2Jsb2Nrcyhpbm9kZSwgJmU0YiwgYml0LCBjb3VudCk7CisJCW1iX2ZyZWVfYmxvY2tzKGlub2RlLCAmZTRiLCBiaXQsIGNvdW50KTsKIAkJZXh0NF9tYl9yZXR1cm5fdG9fcHJlYWxsb2NhdGlvbihpbm9kZSwgJmU0YiwgYmxvY2ssIGNvdW50KTsKIAkJZXh0NF91bmxvY2tfZ3JvdXAoc2IsIGJsb2NrX2dyb3VwKTsKLQkJQlVHX09OKGVyciAhPSAwKTsKIAl9CiAKIAlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBibG9ja19ncm91cCkpOwpAQCAtNDMyMSw2ICs0NDk3LDEzIEBACiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBibG9ja19ncm91cCkpOwogCXBlcmNwdV9jb3VudGVyX2FkZCgmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgY291bnQpOwogCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgYmxvY2tfZ3JvdXApOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyArPSBjb3VudDsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQorCiAJZXh0NF9tYl9yZWxlYXNlX2Rlc2MoJmU0Yik7CiAKIAkqZnJlZWQgKz0gY291bnQ7CmRpZmYgLS1naXQgYS9mcy9leHQ0L25hbWVpLmMgYi9mcy9leHQ0L25hbWVpLmMKaW5kZXggYWIxNmJlYS4uMzg3YWQ5OCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9uYW1laS5jCisrKyBiL2ZzL2V4dDQvbmFtZWkuYwpAQCAtMTgzLDYgKzE4MywxNiBAQAogCQkJICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIAogLyoKKyAqIHAgaXMgYXQgbGVhc3QgNiBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiBwYWdlCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKgorZXh0NF9uZXh0X2VudHJ5KHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICpwKQoreworCXJldHVybiAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikoKGNoYXIgKilwICsKKwkJZXh0NF9yZWNfbGVuX2Zyb21fZGlzayhwLT5yZWNfbGVuKSk7Cit9CisKKy8qCiAgKiBGdXR1cmU6IHVzZSBoaWdoIGZvdXIgYml0cyBvZiBibG9jayBmb3IgY29hbGVzY2Utb24tZGVsZXRlIGZsYWdzCiAgKiBNYXNrIHRoZW0gb2ZmIGZvciBub3cuCiAgKi8KQEAgLTIzMSwxMyArMjQxLDEzIEBACiB7CiAJdW5zaWduZWQgZW50cnlfc3BhY2UgPSBkaXItPmlfc2ItPnNfYmxvY2tzaXplIC0gRVhUNF9ESVJfUkVDX0xFTigxKSAtCiAJCUVYVDRfRElSX1JFQ19MRU4oMikgLSBpbmZvc2l6ZTsKLQlyZXR1cm4gMD8gMjA6IGVudHJ5X3NwYWNlIC8gc2l6ZW9mKHN0cnVjdCBkeF9lbnRyeSk7CisJcmV0dXJuIGVudHJ5X3NwYWNlIC8gc2l6ZW9mKHN0cnVjdCBkeF9lbnRyeSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZHhfbm9kZV9saW1pdCAoc3RydWN0IGlub2RlICpkaXIpCiB7CiAJdW5zaWduZWQgZW50cnlfc3BhY2UgPSBkaXItPmlfc2ItPnNfYmxvY2tzaXplIC0gRVhUNF9ESVJfUkVDX0xFTigwKTsKLQlyZXR1cm4gMD8gMjI6IGVudHJ5X3NwYWNlIC8gc2l6ZW9mKHN0cnVjdCBkeF9lbnRyeSk7CisJcmV0dXJuIGVudHJ5X3NwYWNlIC8gc2l6ZW9mKHN0cnVjdCBkeF9lbnRyeSk7CiB9CiAKIC8qCkBAIC01NTQsMTUgKzU2NCw2IEBACiAKIAogLyoKLSAqIHAgaXMgYXQgbGVhc3QgNiBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiBwYWdlCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKmV4dDRfbmV4dF9lbnRyeShzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqcCkKLXsKLQlyZXR1cm4gKHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICopKChjaGFyICopcCArCi0JCWV4dDRfcmVjX2xlbl9mcm9tX2Rpc2socC0+cmVjX2xlbikpOwotfQotCi0vKgogICogVGhpcyBmdW5jdGlvbiBmaWxscyBhIHJlZC1ibGFjayB0cmVlIHdpdGggaW5mb3JtYXRpb24gZnJvbSBhCiAgKiBkaXJlY3RvcnkgYmxvY2suICBJdCByZXR1cm5zIHRoZSBudW1iZXIgZGlyZWN0b3J5IGVudHJpZXMgbG9hZGVkCiAgKiBpbnRvIHRoZSB0cmVlLiAgSWYgdGhlcmUgaXMgYW4gZXJyb3IgaXQgaXMgcmV0dXJuZWQgaW4gZXJyLgpAQCAtOTkzLDE5ICs5OTQsMjEgQEAKIAkJZGUgPSAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikgYmgtPmJfZGF0YTsKIAkJdG9wID0gKHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICopICgoY2hhciAqKSBkZSArIHNiLT5zX2Jsb2Nrc2l6ZSAtCiAJCQkJICAgICAgIEVYVDRfRElSX1JFQ19MRU4oMCkpOwotCQlmb3IgKDsgZGUgPCB0b3A7IGRlID0gZXh0NF9uZXh0X2VudHJ5KGRlKSkKLQkJaWYgKGV4dDRfbWF0Y2ggKG5hbWVsZW4sIG5hbWUsIGRlKSkgewotCQkJaWYgKCFleHQ0X2NoZWNrX2Rpcl9lbnRyeSgiZXh0NF9maW5kX2VudHJ5IiwKLQkJCQkJCSAgZGlyLCBkZSwgYmgsCi0JCQkJICAoYmxvY2s8PEVYVDRfQkxPQ0tfU0laRV9CSVRTKHNiKSkKLQkJCQkJICArKChjaGFyICopZGUgLSBiaC0+Yl9kYXRhKSkpIHsKLQkJCQlicmVsc2UgKGJoKTsKKwkJZm9yICg7IGRlIDwgdG9wOyBkZSA9IGV4dDRfbmV4dF9lbnRyeShkZSkpIHsKKwkJCWludCBvZmYgPSAoYmxvY2sgPDwgRVhUNF9CTE9DS19TSVpFX0JJVFMoc2IpKQorCQkJCSAgKyAoKGNoYXIgKikgZGUgLSBiaC0+Yl9kYXRhKTsKKworCQkJaWYgKCFleHQ0X2NoZWNrX2Rpcl9lbnRyeShfX2Z1bmNfXywgZGlyLCBkZSwgYmgsIG9mZikpIHsKKwkJCQlicmVsc2UoYmgpOwogCQkJCSplcnIgPSBFUlJfQkFEX0RYX0RJUjsKIAkJCQlnb3RvIGVycm91dDsKIAkJCX0KLQkJCSpyZXNfZGlyID0gZGU7Ci0JCQlkeF9yZWxlYXNlIChmcmFtZXMpOwotCQkJcmV0dXJuIGJoOworCisJCQlpZiAoZXh0NF9tYXRjaChuYW1lbGVuLCBuYW1lLCBkZSkpIHsKKwkJCQkqcmVzX2RpciA9IGRlOworCQkJCWR4X3JlbGVhc2UoZnJhbWVzKTsKKwkJCQlyZXR1cm4gYmg7CisJCQl9CiAJCX0KIAkJYnJlbHNlIChiaCk7CiAJCS8qIENoZWNrIHRvIHNlZSBpZiB3ZSBzaG91bGQgY29udGludWUgdG8gc2VhcmNoICovCmRpZmYgLS1naXQgYS9mcy9leHQ0L3Jlc2l6ZS5jIGIvZnMvZXh0NC9yZXNpemUuYwppbmRleCA5ZjA4NmE2Li5mMDAwZmJlIDEwMDY0NAotLS0gYS9mcy9leHQ0L3Jlc2l6ZS5jCisrKyBiL2ZzL2V4dDQvcmVzaXplLmMKQEAgLTU2Myw3ICs1NjMsOCBAQAogCX0KIAogCWJsayA9IEVYVDRfU0Ioc2IpLT5zX3NiaC0+Yl9ibG9ja25yICsgMSArIEVYVDRfU0Ioc2IpLT5zX2dkYl9jb3VudDsKLQlkYXRhID0gKF9fbGUzMiAqKWRpbmQtPmJfZGF0YSArIEVYVDRfU0Ioc2IpLT5zX2dkYl9jb3VudDsKKwlkYXRhID0gKF9fbGUzMiAqKWRpbmQtPmJfZGF0YSArIChFWFQ0X1NCKHNiKS0+c19nZGJfY291bnQgJQorCQkJCQkgRVhUNF9BRERSX1BFUl9CTE9DSyhzYikpOwogCWVuZCA9IChfX2xlMzIgKilkaW5kLT5iX2RhdGEgKyBFWFQ0X0FERFJfUEVSX0JMT0NLKHNiKTsKIAogCS8qIEdldCBlYWNoIHJlc2VydmVkIHByaW1hcnkgR0RUIGJsb2NrIGFuZCB2ZXJpZnkgaXQgaG9sZHMgYmFja3VwcyAqLwpAQCAtODU0LDcgKzg1NSw4IEBACiAJICovCiAKIAkvKiBVcGRhdGUgZ3JvdXAgZGVzY3JpcHRvciBibG9jayBmb3IgbmV3IGdyb3VwICovCi0JZ2RwID0gKHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKilwcmltYXJ5LT5iX2RhdGEgKyBnZGJfb2ZmOworCWdkcCA9IChzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICopKChjaGFyICopcHJpbWFyeS0+Yl9kYXRhICsKKwkJCQkJIGdkYl9vZmYgKiBFWFQ0X0RFU0NfU0laRShzYikpOwogCiAJZXh0NF9ibG9ja19iaXRtYXBfc2V0KHNiLCBnZHAsIGlucHV0LT5ibG9ja19iaXRtYXApOyAvKiBMViBGSVhNRSAqLwogCWV4dDRfaW5vZGVfYml0bWFwX3NldChzYiwgZ2RwLCBpbnB1dC0+aW5vZGVfYml0bWFwKTsgLyogTFYgRklYTUUgKi8KQEAgLTg2NCw2ICs4NjYsMTUgQEAKIAlnZHAtPmJnX2NoZWNrc3VtID0gZXh0NF9ncm91cF9kZXNjX2NzdW0oc2JpLCBpbnB1dC0+Z3JvdXAsIGdkcCk7CiAKIAkvKgorCSAqIFdlIGNhbiBhbGxvY2F0ZSBtZW1vcnkgZm9yIG1iX2FsbG9jIGJhc2VkIG9uIHRoZSBuZXcgZ3JvdXAKKwkgKiBkZXNjcmlwdG9yCisJICovCisJaWYgKHRlc3Rfb3B0KHNiLCBNQkFMTE9DKSkgeworCQllcnIgPSBleHQ0X21iX2FkZF9tb3JlX2dyb3VwaW5mbyhzYiwgaW5wdXQtPmdyb3VwLCBnZHApOworCQlpZiAoZXJyKQorCQkJZ290byBleGl0X2pvdXJuYWw7CisJfQorCS8qCiAJICogTWFrZSB0aGUgbmV3IGJsb2NrcyBhbmQgaW5vZGVzIHZhbGlkIG5leHQuICBXZSBkbyB0aGlzIGJlZm9yZQogCSAqIGluY3JlYXNpbmcgdGhlIGdyb3VwIGNvdW50IHNvIHRoYXQgb25jZSB0aGUgZ3JvdXAgaXMgZW5hYmxlZCwKIAkgKiBhbGwgb2YgaXRzIGJsb2NrcyBhbmQgaW5vZGVzIGFyZSBhbHJlYWR5IHZhbGlkLgpAQCAtOTU1LDYgKzk2Niw4IEBACiAJaGFuZGxlX3QgKmhhbmRsZTsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGxvbmcgZnJlZWRfYmxvY2tzOworCWV4dDRfZ3JvdXBfdCBncm91cDsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvICpncnA7CiAKIAkvKiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGxvY2tpbmcgd3J0IG90aGVyIHJlc2l6ZXJzIGp1c3QKIAkgKiB5ZXQ6IHdlJ3JlIGdvaW5nIHRvIHJldmFsaWRhdGUgZXMtPnNfYmxvY2tzX2NvdW50IGFmdGVyCkBAIC05ODYsNyArOTk5LDcgQEAKIAl9CiAKIAkvKiBIYW5kbGUgdGhlIHJlbWFpbmluZyBibG9ja3MgaW4gdGhlIGxhc3QgZ3JvdXAgb25seS4gKi8KLQlleHQ0X2dldF9ncm91cF9ub19hbmRfb2Zmc2V0KHNiLCBvX2Jsb2Nrc19jb3VudCwgTlVMTCwgJmxhc3QpOworCWV4dDRfZ2V0X2dyb3VwX25vX2FuZF9vZmZzZXQoc2IsIG9fYmxvY2tzX2NvdW50LCAmZ3JvdXAsICZsYXN0KTsKIAogCWlmIChsYXN0ID09IDApIHsKIAkJZXh0NF93YXJuaW5nKHNiLCBfX2Z1bmNfXywKQEAgLTEwNTgsNiArMTA3MSw0NSBAQAogCQkgICBvX2Jsb2Nrc19jb3VudCArIGFkZCk7CiAJaWYgKChlcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpKSkKIAkJZ290byBleGl0X3B1dDsKKworCS8qCisJICogTWFyayBtYmFsbG9jIHBhZ2VzIGFzIG5vdCB1cCB0byBkYXRlIHNvIHRoYXQgdGhleSB3aWxsIGJlIHVwZGF0ZWQKKwkgKiBuZXh0IHRpbWUgdGhleSBhcmUgbG9hZGVkIGJ5IGV4dDRfbWJfbG9hZF9idWRkeS4KKwkgKi8KKwlpZiAodGVzdF9vcHQoc2IsIE1CQUxMT0MpKSB7CisJCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0Ioc2IpOworCQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc2JpLT5zX2J1ZGR5X2NhY2hlOworCQlpbnQgYmxvY2tzX3Blcl9wYWdlOworCQlpbnQgYmxvY2s7CisJCWludCBwbnVtOworCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCQkvKiBTZXQgYnVkZHkgcGFnZSBhcyBub3QgdXAgdG8gZGF0ZSAqLworCQlibG9ja3NfcGVyX3BhZ2UgPSBQQUdFX0NBQ0hFX1NJWkUgLyBzYi0+c19ibG9ja3NpemU7CisJCWJsb2NrID0gZ3JvdXAgKiAyOworCQlwbnVtID0gYmxvY2sgLyBibG9ja3NfcGVyX3BhZ2U7CisJCXBhZ2UgPSBmaW5kX2dldF9wYWdlKGlub2RlLT5pX21hcHBpbmcsIHBudW0pOworCQlpZiAocGFnZSAhPSBOVUxMKSB7CisJCQlDbGVhclBhZ2VVcHRvZGF0ZShwYWdlKTsKKwkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwkJfQorCisJCS8qIFNldCBiaXRtYXAgcGFnZSBhcyBub3QgdXAgdG8gZGF0ZSAqLworCQlibG9jaysrOworCQlwbnVtID0gYmxvY2sgLyBibG9ja3NfcGVyX3BhZ2U7CisJCXBhZ2UgPSBmaW5kX2dldF9wYWdlKGlub2RlLT5pX21hcHBpbmcsIHBudW0pOworCQlpZiAocGFnZSAhPSBOVUxMKSB7CisJCQlDbGVhclBhZ2VVcHRvZGF0ZShwYWdlKTsKKwkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwkJfQorCisJCS8qIEdldCB0aGUgaW5mbyBvbiB0aGUgbGFzdCBncm91cCAqLworCQlncnAgPSBleHQ0X2dldF9ncm91cF9pbmZvKHNiLCBncm91cCk7CisKKwkJLyogVXBkYXRlIGZyZWUgYmxvY2tzIGluIGdyb3VwIGluZm8gKi8KKwkJZXh0NF9tYl91cGRhdGVfZ3JvdXBfaW5mbyhncnAsIGFkZCk7CisJfQorCiAJaWYgKHRlc3Rfb3B0KHNiLCBERUJVRykpCiAJCXByaW50ayhLRVJOX0RFQlVHICJFWFQ0LWZzOiBleHRlbmRlZCBncm91cCB0byAlbGx1IGJsb2Nrc1xuIiwKIAkJICAgICAgIGV4dDRfYmxvY2tzX2NvdW50KGVzKSk7CmRpZmYgLS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9mcy9leHQ0L3N1cGVyLmMKaW5kZXggMDlkOTM1OS4uMWNiMzcxZCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAtNTA2LDYgKzUwNiw3IEBACiAJZXh0NF9leHRfcmVsZWFzZShzYik7CiAJZXh0NF94YXR0cl9wdXRfc3VwZXIoc2IpOwogCWpiZDJfam91cm5hbF9kZXN0cm95KHNiaS0+c19qb3VybmFsKTsKKwlzYmktPnNfam91cm5hbCA9IE5VTEw7CiAJaWYgKCEoc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkpKSB7CiAJCUVYVDRfQ0xFQVJfSU5DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX1JFQ09WRVIpOwogCQllcy0+c19zdGF0ZSA9IGNwdV90b19sZTE2KHNiaS0+c19tb3VudF9zdGF0ZSk7CkBAIC01MTcsNiArNTE4LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgc2JpLT5zX2dkYl9jb3VudDsgaSsrKQogCQlicmVsc2Uoc2JpLT5zX2dyb3VwX2Rlc2NbaV0pOwogCWtmcmVlKHNiaS0+c19ncm91cF9kZXNjKTsKKwlrZnJlZShzYmktPnNfZmxleF9ncm91cHMpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlaW5vZGVzX2NvdW50ZXIpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19kaXJzX2NvdW50ZXIpOwpAQCAtNTcxLDYgKzU3MywxMiBAQAogCW1lbXNldCgmZWktPmlfY2FjaGVkX2V4dGVudCwgMCwgc2l6ZW9mKHN0cnVjdCBleHQ0X2V4dF9jYWNoZSkpOwogCUlOSVRfTElTVF9IRUFEKCZlaS0+aV9wcmVhbGxvY19saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmZWktPmlfcHJlYWxsb2NfbG9jayk7CisJamJkMl9qb3VybmFsX2luaXRfamJkX2lub2RlKCZlaS0+amlub2RlLCAmZWktPnZmc19pbm9kZSk7CisJZWktPmlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3MgPSAwOworCWVpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzID0gMDsKKwllaS0+aV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3MgPSAwOworCWVpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcgPSAwOworCXNwaW5fbG9ja19pbml0KCYoZWktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jaykpOwogCXJldHVybiAmZWktPnZmc19pbm9kZTsKIH0KIApAQCAtNjM1LDYgKzY0Myw4IEBACiAJRVhUNF9JKGlub2RlKS0+aV9ibG9ja19hbGxvY19pbmZvID0gTlVMTDsKIAlpZiAodW5saWtlbHkocnN2KSkKIAkJa2ZyZWUocnN2KTsKKwlqYmQyX2pvdXJuYWxfcmVsZWFzZV9qYmRfaW5vZGUoRVhUNF9TQihpbm9kZS0+aV9zYiktPnNfam91cm5hbCwKKwkJCQkgICAgICAgJkVYVDRfSShpbm9kZSktPmppbm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBleHQ0X3Nob3dfcXVvdGFfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTcyOSw4ICs3MzksMTUgQEAKIAkJc2VxX3ByaW50ZihzZXEsICIsY29tbWl0PSV1IiwKIAkJCSAgICh1bnNpZ25lZCkgKHNiaS0+c19jb21taXRfaW50ZXJ2YWwgLyBIWikpOwogCX0KLQlpZiAodGVzdF9vcHQoc2IsIEJBUlJJRVIpKQotCQlzZXFfcHV0cyhzZXEsICIsYmFycmllcj0xIik7CisJLyoKKwkgKiBXZSdyZSBjaGFuZ2luZyB0aGUgZGVmYXVsdCBvZiBiYXJyaWVyIG1vdW50IG9wdGlvbiwgc28KKwkgKiBsZXQncyBhbHdheXMgZGlzcGxheSBpdHMgbW91bnQgc3RhdGUgc28gaXQncyBjbGVhciB3aGF0IGl0cworCSAqIHN0YXR1cyBpcy4KKwkgKi8KKwlzZXFfcHV0cyhzZXEsICIsYmFycmllcj0iKTsKKwlzZXFfcHV0cyhzZXEsIHRlc3Rfb3B0KHNiLCBCQVJSSUVSKSA/ICIxIiA6ICIwIik7CisJaWYgKHRlc3Rfb3B0KHNiLCBKT1VSTkFMX0FTWU5DX0NPTU1JVCkpCisJCXNlcV9wdXRzKHNlcSwgIixqb3VybmFsX2FzeW5jX2NvbW1pdCIpOwogCWlmICh0ZXN0X29wdChzYiwgTk9CSCkpCiAJCXNlcV9wdXRzKHNlcSwgIixub2JoIik7CiAJaWYgKCF0ZXN0X29wdChzYiwgRVhURU5UUykpCkBAIC03MzksNiArNzU2LDkgQEAKIAkJc2VxX3B1dHMoc2VxLCAiLG5vbWJhbGxvYyIpOwogCWlmICh0ZXN0X29wdChzYiwgSV9WRVJTSU9OKSkKIAkJc2VxX3B1dHMoc2VxLCAiLGlfdmVyc2lvbiIpOworCWlmICghdGVzdF9vcHQoc2IsIERFTEFMTE9DKSkKKwkJc2VxX3B1dHMoc2VxLCAiLG5vZGVsYWxsb2MiKTsKKwogCiAJaWYgKHNiaS0+c19zdHJpcGUpCiAJCXNlcV9wcmludGYoc2VxLCAiLHN0cmlwZT0lbHUiLCBzYmktPnNfc3RyaXBlKTsKQEAgLTg4Niw3ICs5MDYsNyBAQAogCU9wdF9qcWZtdF92ZnNvbGQsIE9wdF9qcWZtdF92ZnN2MCwgT3B0X3F1b3RhLCBPcHRfbm9xdW90YSwKIAlPcHRfaWdub3JlLCBPcHRfYmFycmllciwgT3B0X2VyciwgT3B0X3Jlc2l6ZSwgT3B0X3VzcnF1b3RhLAogCU9wdF9ncnBxdW90YSwgT3B0X2V4dGVudHMsIE9wdF9ub2V4dGVudHMsIE9wdF9pX3ZlcnNpb24sCi0JT3B0X21iYWxsb2MsIE9wdF9ub21iYWxsb2MsIE9wdF9zdHJpcGUsCisJT3B0X21iYWxsb2MsIE9wdF9ub21iYWxsb2MsIE9wdF9zdHJpcGUsIE9wdF9kZWxhbGxvYywgT3B0X25vZGVsYWxsb2MsCiB9OwogCiBzdGF0aWMgbWF0Y2hfdGFibGVfdCB0b2tlbnMgPSB7CkBAIC05NDUsNiArOTY1LDggQEAKIAl7T3B0X25vbWJhbGxvYywgIm5vbWJhbGxvYyJ9LAogCXtPcHRfc3RyaXBlLCAic3RyaXBlPSV1In0sCiAJe09wdF9yZXNpemUsICJyZXNpemUifSwKKwl7T3B0X2RlbGFsbG9jLCAiZGVsYWxsb2MifSwKKwl7T3B0X25vZGVsYWxsb2MsICJub2RlbGFsbG9jIn0sCiAJe09wdF9lcnIsIE5VTEx9LAogfTsKIApAQCAtOTgyLDYgKzEwMDQsNyBAQAogCWludCBxdHlwZSwgcWZtdDsKIAljaGFyICpxbmFtZTsKICNlbmRpZgorCWV4dDRfZnNibGtfdCBsYXN0X2Jsb2NrOwogCiAJaWYgKCFvcHRpb25zKQogCQlyZXR1cm4gMTsKQEAgLTEzMDEsMTUgKzEzMjQsMzkgQEAKIAkJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBOT0JIKTsKIAkJCWJyZWFrOwogCQljYXNlIE9wdF9leHRlbnRzOgorCQkJaWYgKCFFWFQ0X0hBU19JTkNPTVBBVF9GRUFUVVJFKHNiLAorCQkJCQlFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUykpIHsKKwkJCQlleHQ0X3dhcm5pbmcoc2IsIF9fZnVuY19fLAorCQkJCQkiZXh0ZW50cyBmZWF0dXJlIG5vdCBlbmFibGVkICIKKwkJCQkJIm9uIHRoaXMgZmlsZXN5c3RlbSwgdXNlIHR1bmUyZnNcbiIpOworCQkJCXJldHVybiAwOworCQkJfQogCQkJc2V0X29wdCAoc2JpLT5zX21vdW50X29wdCwgRVhURU5UUyk7CiAJCQlicmVhazsKIAkJY2FzZSBPcHRfbm9leHRlbnRzOgorCQkJLyoKKwkJCSAqIFdoZW4gZTJmc3Byb2dzIHN1cHBvcnQgcmVzaXppbmcgYW4gYWxyZWFkeSBleGlzdGluZworCQkJICogZXh0MyBmaWxlIHN5c3RlbSB0byBncmVhdGVyIHRoYW4gMioqMzIgd2UgbmVlZCB0bworCQkJICogYWRkIHN1cHBvcnQgdG8gYmxvY2sgYWxsb2NhdG9yIHRvIGhhbmRsZSBncm93aW5nCisJCQkgKiBhbHJlYWR5IGV4aXN0aW5nIGJsb2NrICBtYXBwZWQgaW5vZGUgc28gdGhhdCBibG9ja3MKKwkJCSAqIGFsbG9jYXRlZCBmb3IgdGhlbSBmYWxsIHdpdGhpbiAyKiozMgorCQkJICovCisJCQlsYXN0X2Jsb2NrID0gZXh0NF9ibG9ja3NfY291bnQoc2JpLT5zX2VzKSAtIDE7CisJCQlpZiAobGFzdF9ibG9jayAgPiAweGZmZmZmZmZmVUxMKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBGaWxlc3lzdGVtIHRvbyAiCisJCQkJCQkibGFyZ2UgdG8gbW91bnQgd2l0aCAiCisJCQkJCQkiLW8gbm9leHRlbnRzIG9wdGlvbnNcbiIpOworCQkJCXJldHVybiAwOworCQkJfQogCQkJY2xlYXJfb3B0IChzYmktPnNfbW91bnRfb3B0LCBFWFRFTlRTKTsKIAkJCWJyZWFrOwogCQljYXNlIE9wdF9pX3ZlcnNpb246CiAJCQlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIElfVkVSU0lPTik7CiAJCQlzYi0+c19mbGFncyB8PSBNU19JX1ZFUlNJT047CiAJCQlicmVhazsKKwkJY2FzZSBPcHRfbm9kZWxhbGxvYzoKKwkJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisJCQlicmVhazsKIAkJY2FzZSBPcHRfbWJhbGxvYzoKIAkJCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgTUJBTExPQyk7CiAJCQlicmVhazsKQEAgLTEzMjMsNiArMTM3MCw5IEBACiAJCQkJcmV0dXJuIDA7CiAJCQlzYmktPnNfc3RyaXBlID0gb3B0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgT3B0X2RlbGFsbG9jOgorCQkJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXByaW50ayAoS0VSTl9FUlIKIAkJCQkiRVhUNC1mczogVW5yZWNvZ25pemVkIG1vdW50IG9wdGlvbiBcIiVzXCIgIgpAQCAtMTQzNSw2ICsxNDg1LDU0IEBACiAJcmV0dXJuIHJlczsKIH0KIAorc3RhdGljIGludCBleHQ0X2ZpbGxfZmxleF9pbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZ2RwID0gTlVMTDsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwX2NvdW50OworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwOworCWludCBncm91cHNfcGVyX2ZsZXggPSAwOworCV9fdTY0IGJsb2NrX2JpdG1hcCA9IDA7CisJaW50IGk7CisKKwlpZiAoIXNiaS0+c19lcy0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCXNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4ID0gMDsKKwkJcmV0dXJuIDE7CisJfQorCisJc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXggPSBzYmktPnNfZXMtPnNfbG9nX2dyb3Vwc19wZXJfZmxleDsKKwlncm91cHNfcGVyX2ZsZXggPSAxIDw8IHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworCisJZmxleF9ncm91cF9jb3VudCA9IChzYmktPnNfZ3JvdXBzX2NvdW50ICsgZ3JvdXBzX3Blcl9mbGV4IC0gMSkgLworCQlncm91cHNfcGVyX2ZsZXg7CisJc2JpLT5zX2ZsZXhfZ3JvdXBzID0ga21hbGxvYyhmbGV4X2dyb3VwX2NvdW50ICoKKwkJCQkgICAgIHNpemVvZihzdHJ1Y3QgZmxleF9ncm91cHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoc2JpLT5zX2ZsZXhfZ3JvdXBzID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBub3QgZW5vdWdoIG1lbW9yeVxuIik7CisJCWdvdG8gZmFpbGVkOworCX0KKwltZW1zZXQoc2JpLT5zX2ZsZXhfZ3JvdXBzLCAwLCBmbGV4X2dyb3VwX2NvdW50ICoKKwkgICAgICAgc2l6ZW9mKHN0cnVjdCBmbGV4X2dyb3VwcykpOworCisJZ2RwID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgMSwgJmJoKTsKKwlibG9ja19iaXRtYXAgPSBleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSAtIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2JpLT5zX2dyb3Vwc19jb3VudDsgaSsrKSB7CisJCWdkcCA9IGV4dDRfZ2V0X2dyb3VwX2Rlc2Moc2IsIGksICZiaCk7CisKKwkJZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIGkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9pbm9kZXMgKz0KKwkJCWxlMTZfdG9fY3B1KGdkcC0+YmdfZnJlZV9pbm9kZXNfY291bnQpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9ibG9ja3MgKz0KKwkJCWxlMTZfdG9fY3B1KGdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQpOworCX0KKworCXJldHVybiAxOworZmFpbGVkOgorCXJldHVybiAwOworfQorCiBfX2xlMTYgZXh0NF9ncm91cF9kZXNjX2NzdW0oc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLCBfX3UzMiBibG9ja19ncm91cCwKIAkJCSAgICBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHApCiB7CkBAIC0xODAyLDggKzE5MDAsOCBAQAogfQogCiBzdGF0aWMgaW50IGV4dDRfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKLQkJCQlfX3JlbGVhc2VzKGtlcm5lbF9zZW0pCi0JCQkJX19hY3F1aXJlcyhrZXJuZWxfc2VtKQorCQkJCV9fcmVsZWFzZXMoa2VybmVsX2xvY2spCisJCQkJX19hY3F1aXJlcyhrZXJuZWxfbG9jaykKIAogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqIGJoOwpAQCAtMTg0MywxMSArMTk0MSw2IEBACiAJCWdvdG8gb3V0X2ZhaWw7CiAJfQogCi0JaWYgKCFzYl9zZXRfYmxvY2tzaXplKHNiLCBibG9ja3NpemUpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogYmFkIGJsb2Nrc2l6ZSAlZC5cbiIsIGJsb2Nrc2l6ZSk7Ci0JCWdvdG8gb3V0X2ZhaWw7Ci0JfQotCiAJLyoKIAkgKiBUaGUgZXh0NCBzdXBlcmJsb2NrIHdpbGwgbm90IGJlIGJ1ZmZlciBhbGlnbmVkIGZvciBvdGhlciB0aGFuIDFrQgogCSAqIGJsb2NrIHNpemVzLiAgV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBmcm9tIGJ1ZmZlciBzdGFydC4KQEAgLTE5MDcsMTggKzIwMDAsMzIgQEAKIAlzYmktPnNfcmVzZ2lkID0gbGUxNl90b19jcHUoZXMtPnNfZGVmX3Jlc2dpZCk7CiAKIAlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIFJFU0VSVkFUSU9OKTsKKwlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIEJBUlJJRVIpOwogCiAJLyoKIAkgKiB0dXJuIG9uIGV4dGVudHMgZmVhdHVyZSBieSBkZWZhdWx0IGluIGV4dDQgZmlsZXN5c3RlbQotCSAqIFVzZXIgLW8gbm9leHRlbnRzIHRvIHR1cm4gaXQgb2ZmCisJICogb25seSBpZiBmZWF0dXJlIGZsYWcgYWxyZWFkeSBzZXQgYnkgbWtmcyBvciB0dW5lMmZzLgorCSAqIFVzZSAtbyBub2V4dGVudHMgdG8gdHVybiBpdCBvZmYKIAkgKi8KLQlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIEVYVEVOVFMpOworCWlmIChFWFQ0X0hBU19JTkNPTVBBVF9GRUFUVVJFKHNiLCBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUykpCisJCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgRVhURU5UUyk7CisJZWxzZQorCQlleHQ0X3dhcm5pbmcoc2IsIF9fZnVuY19fLAorCQkJImV4dGVudHMgZmVhdHVyZSBub3QgZW5hYmxlZCBvbiB0aGlzIGZpbGVzeXN0ZW0sICIKKwkJCSJ1c2UgdHVuZTJmcy5cbiIpOwogCS8qCi0JICogdHVybiBvbiBtYmFsbG9jIGZlYXR1cmUgYnkgZGVmYXVsdCBpbiBleHQ0IGZpbGVzeXN0ZW0KLQkgKiBVc2VyIC1vIG5vbWJhbGxvYyB0byB0dXJuIGl0IG9mZgorCSAqIHR1cm4gb24gbWJhbGxvYyBjb2RlIGJ5IGRlZmF1bHQgaW4gZXh0NCBmaWxlc3lzdGVtCisJICogVXNlIC1vIG5vbWJhbGxvYyB0byB0dXJuIGl0IG9mZgogCSAqLwogCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgTUJBTExPQyk7CiAKKwkvKgorCSAqIGVuYWJsZSBkZWxheWVkIGFsbG9jYXRpb24gYnkgZGVmYXVsdAorCSAqIFVzZSAtbyBub2RlbGFsbG9jIHRvIHR1cm4gaXQgb2ZmCisJICovCisJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisKKwogCWlmICghcGFyc2Vfb3B0aW9ucyAoKGNoYXIgKikgZGF0YSwgc2IsICZqb3VybmFsX2ludW0sICZqb3VybmFsX2Rldm51bSwKIAkJCSAgICBOVUxMLCAwKSkKIAkJZ290byBmYWlsZWRfbW91bnQ7CkBAIC0yMTI5LDYgKzIyMzYsMTQgQEAKIAkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBncm91cCBkZXNjcmlwdG9ycyBjb3JydXB0ZWQhXG4iKTsKIAkJZ290byBmYWlsZWRfbW91bnQyOwogCX0KKwlpZiAoRVhUNF9IQVNfSU5DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0ZMRVhfQkcpKQorCQlpZiAoIWV4dDRfZmlsbF9mbGV4X2luZm8oc2IpKSB7CisJCQlwcmludGsoS0VSTl9FUlIKKwkJCSAgICAgICAiRVhUNC1mczogdW5hYmxlIHRvIGluaXRpYWxpemUgIgorCQkJICAgICAgICJmbGV4X2JnIG1ldGEgaW5mbyFcbiIpOworCQkJZ290byBmYWlsZWRfbW91bnQyOworCQl9CisKIAlzYmktPnNfZ2RiX2NvdW50ID0gZGJfY291bnQ7CiAJZ2V0X3JhbmRvbV9ieXRlcygmc2JpLT5zX25leHRfZ2VuZXJhdGlvbiwgc2l6ZW9mKHUzMikpOwogCXNwaW5fbG9ja19pbml0KCZzYmktPnNfbmV4dF9nZW5fbG9jayk7CkBAIC0yMTg5LDYgKzIzMDQsMjkgQEAKIAkgICAgRVhUNF9IQVNfQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwpKSB7CiAJCWlmIChleHQ0X2xvYWRfam91cm5hbChzYiwgZXMsIGpvdXJuYWxfZGV2bnVtKSkKIAkJCWdvdG8gZmFpbGVkX21vdW50MzsKKwkJaWYgKCEoc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkpICYmCisJCSAgICBFWFQ0X1NCKHNiKS0+c19qb3VybmFsLT5qX2ZhaWxlZF9jb21taXQpIHsKKwkJCXByaW50ayhLRVJOX0NSSVQgIkVYVDQtZnMgZXJyb3IgKGRldmljZSAlcyk6ICIKKwkJCSAgICAgICAiZXh0NF9maWxsX3N1cGVyOiBKb3VybmFsIHRyYW5zYWN0aW9uICIKKwkJCSAgICAgICAiJXUgaXMgY29ycnVwdFxuIiwgc2ItPnNfaWQsIAorCQkJICAgICAgIEVYVDRfU0Ioc2IpLT5zX2pvdXJuYWwtPmpfZmFpbGVkX2NvbW1pdCk7CisJCQlpZiAodGVzdF9vcHQgKHNiLCBFUlJPUlNfUk8pKSB7CisJCQkJcHJpbnRrIChLRVJOX0NSSVQKKwkJCQkJIk1vdW50aW5nIGZpbGVzeXN0ZW0gcmVhZC1vbmx5XG4iKTsKKwkJCQlzYi0+c19mbGFncyB8PSBNU19SRE9OTFk7CisJCQkJRVhUNF9TQihzYiktPnNfbW91bnRfc3RhdGUgfD0gRVhUNF9FUlJPUl9GUzsKKwkJCQllcy0+c19zdGF0ZSB8PSBjcHVfdG9fbGUxNihFWFQ0X0VSUk9SX0ZTKTsKKwkJCX0KKwkJCWlmICh0ZXN0X29wdChzYiwgRVJST1JTX1BBTklDKSkgeworCQkJCUVYVDRfU0Ioc2IpLT5zX21vdW50X3N0YXRlIHw9IEVYVDRfRVJST1JfRlM7CisJCQkJZXMtPnNfc3RhdGUgfD0gY3B1X3RvX2xlMTYoRVhUNF9FUlJPUl9GUyk7CisJCQkJZXh0NF9jb21taXRfc3VwZXIoc2IsIGVzLCAxKTsKKwkJCQlwcmludGsoS0VSTl9DUklUCisJCQkJICAgICAgICJFWFQ0LWZzIChkZXZpY2UgJXMpOiBtb3VudCBmYWlsZWRcbiIsCisJCQkJICAgICAgc2ItPnNfaWQpOworCQkJCWdvdG8gZmFpbGVkX21vdW50NDsKKwkJCX0KKwkJfQogCX0gZWxzZSBpZiAoam91cm5hbF9pbnVtKSB7CiAJCWlmIChleHQ0X2NyZWF0ZV9qb3VybmFsKHNiLCBlcywgam91cm5hbF9pbnVtKSkKIAkJCWdvdG8gZmFpbGVkX21vdW50MzsKQEAgLTIzMjYsNiArMjQ2NCwxMyBAQAogCQl0ZXN0X29wdChzYixEQVRBX0ZMQUdTKSA9PSBFWFQ0X01PVU5UX09SREVSRURfREFUQSA/ICJvcmRlcmVkIjoKIAkJIndyaXRlYmFjayIpOwogCisJaWYgKHRlc3Rfb3B0KHNiLCBEQVRBX0ZMQUdTKSA9PSBFWFQ0X01PVU5UX0pPVVJOQUxfREFUQSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJFWFQ0LWZzOiBJZ25vcmluZyBkZWxhbGxvYyBvcHRpb24gLSAiCisJCQkJInJlcXVlc3RlZCBkYXRhIGpvdXJuYWxpbmcgbW9kZVxuIik7CisJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisJfSBlbHNlIGlmICh0ZXN0X29wdChzYiwgREVMQUxMT0MpKQorCQlwcmludGsoS0VSTl9JTkZPICJFWFQ0LWZzOiBkZWxheWVkIGFsbG9jYXRpb24gZW5hYmxlZFxuIik7CisKIAlleHQ0X2V4dF9pbml0KHNiKTsKIAlleHQ0X21iX2luaXQoc2IsIG5lZWRzX3JlY292ZXJ5KTsKIApAQCAtMjM0MCw2ICsyNDg1LDcgQEAKIAogZmFpbGVkX21vdW50NDoKIAlqYmQyX2pvdXJuYWxfZGVzdHJveShzYmktPnNfam91cm5hbCk7CisJc2JpLT5zX2pvdXJuYWwgPSBOVUxMOwogZmFpbGVkX21vdW50MzoKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyKTsKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZnJlZWlub2Rlc19jb3VudGVyKTsKQEAgLTMyOTMsNyArMzQzOSw3IEBACiAJCQllcnIgPSBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCBiaCk7CiAJCWVsc2UgewogCQkJLyogQWx3YXlzIGRvIGF0IGxlYXN0IG9yZGVyZWQgd3JpdGVzIGZvciBxdW90YXMgKi8KLQkJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZSwgYmgpOworCQkJZXJyID0gZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLCBpbm9kZSk7CiAJCQltYXJrX2J1ZmZlcl9kaXJ0eShiaCk7CiAJCX0KIAkJYnJlbHNlKGJoKTsKQEAgLTMzMDUsOCArMzQ1MSwxMCBAQAogCQlibGsrKzsKIAl9CiBvdXQ6Ci0JaWYgKGxlbiA9PSB0b3dyaXRlKQorCWlmIChsZW4gPT0gdG93cml0ZSkgeworCQltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4KTsKIAkJcmV0dXJuIGVycjsKKwl9CiAJaWYgKGlub2RlLT5pX3NpemUgPCBvZmYrbGVuLXRvd3JpdGUpIHsKIAkJaV9zaXplX3dyaXRlKGlub2RlLCBvZmYrbGVuLXRvd3JpdGUpOwogCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gaW5vZGUtPmlfc2l6ZTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQveGF0dHIuYyBiL2ZzL2V4dDQveGF0dHIuYwppbmRleCBmZjA4NjMzLi45M2M1ZmRjIDEwMDY0NAotLS0gYS9mcy9leHQ0L3hhdHRyLmMKKysrIGIvZnMvZXh0NC94YXR0ci5jCkBAIC04MTAsNyArODEwLDcgQEAKIAkJCS8qIFdlIG5lZWQgdG8gYWxsb2NhdGUgYSBuZXcgYmxvY2sgKi8KIAkJCWV4dDRfZnNibGtfdCBnb2FsID0gZXh0NF9ncm91cF9maXJzdF9ibG9ja19ubyhzYiwKIAkJCQkJCUVYVDRfSShpbm9kZSktPmlfYmxvY2tfZ3JvdXApOwotCQkJZXh0NF9mc2Jsa190IGJsb2NrID0gZXh0NF9uZXdfYmxvY2soaGFuZGxlLCBpbm9kZSwKKwkJCWV4dDRfZnNibGtfdCBibG9jayA9IGV4dDRfbmV3X21ldGFfYmxvY2soaGFuZGxlLCBpbm9kZSwKIAkJCQkJCQlnb2FsLCAmZXJyb3IpOwogCQkJaWYgKGVycm9yKQogCQkJCWdvdG8gY2xlYW51cDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQveGF0dHJfdHJ1c3RlZC5jIGIvZnMvZXh0NC94YXR0cl90cnVzdGVkLmMKaW5kZXggZmZmMzMzOC4uYWMxYTUyYyAxMDA2NDQKLS0tIGEvZnMvZXh0NC94YXR0cl90cnVzdGVkLmMKKysrIGIvZnMvZXh0NC94YXR0cl90cnVzdGVkLmMKQEAgLTEzLDEzICsxMywxMSBAQAogI2luY2x1ZGUgImV4dDQuaCIKICNpbmNsdWRlICJ4YXR0ci5oIgogCi0jZGVmaW5lIFhBVFRSX1RSVVNURURfUFJFRklYICJ0cnVzdGVkLiIKLQogc3RhdGljIHNpemVfdAogZXh0NF94YXR0cl90cnVzdGVkX2xpc3Qoc3RydWN0IGlub2RlICppbm9kZSwgY2hhciAqbGlzdCwgc2l6ZV90IGxpc3Rfc2l6ZSwKIAkJCWNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lX2xlbikKIHsKLQljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IHNpemVvZihYQVRUUl9UUlVTVEVEX1BSRUZJWCktMTsKKwljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IFhBVFRSX1RSVVNURURfUFJFRklYX0xFTjsKIAljb25zdCBzaXplX3QgdG90YWxfbGVuID0gcHJlZml4X2xlbiArIG5hbWVfbGVuICsgMTsKIAogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKZGlmZiAtLWdpdCBhL2ZzL2V4dDQveGF0dHJfdXNlci5jIGIvZnMvZXh0NC94YXR0cl91c2VyLmMKaW5kZXggNjdiZTcyMy4uZDkxYWE2MSAxMDA2NDQKLS0tIGEvZnMvZXh0NC94YXR0cl91c2VyLmMKKysrIGIvZnMvZXh0NC94YXR0cl91c2VyLmMKQEAgLTEyLDEzICsxMiwxMSBAQAogI2luY2x1ZGUgImV4dDQuaCIKICNpbmNsdWRlICJ4YXR0ci5oIgogCi0jZGVmaW5lIFhBVFRSX1VTRVJfUFJFRklYICJ1c2VyLiIKLQogc3RhdGljIHNpemVfdAogZXh0NF94YXR0cl91c2VyX2xpc3Qoc3RydWN0IGlub2RlICppbm9kZSwgY2hhciAqbGlzdCwgc2l6ZV90IGxpc3Rfc2l6ZSwKIAkJICAgICBjb25zdCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZV9sZW4pCiB7Ci0JY29uc3Qgc2l6ZV90IHByZWZpeF9sZW4gPSBzaXplb2YoWEFUVFJfVVNFUl9QUkVGSVgpLTE7CisJY29uc3Qgc2l6ZV90IHByZWZpeF9sZW4gPSBYQVRUUl9VU0VSX1BSRUZJWF9MRU47CiAJY29uc3Qgc2l6ZV90IHRvdGFsX2xlbiA9IHByZWZpeF9sZW4gKyBuYW1lX2xlbiArIDE7CiAKIAlpZiAoIXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBYQVRUUl9VU0VSKSkKZGlmZiAtLWdpdCBhL2ZzL2ZhdC9jYWNoZS5jIGIvZnMvZmF0L2NhY2hlLmMKaW5kZXggZmRhMjU0Ny4uM2E5ZWNhYzggMTAwNjQ0Ci0tLSBhL2ZzL2ZhdC9jYWNoZS5jCisrKyBiL2ZzL2ZhdC9jYWNoZS5jCkBAIC02MSw3ICs2MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZhdF9jYWNoZSAqZmF0X2NhY2hlX2FsbG9jKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX0tFUk5FTCk7CisJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX05PRlMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmF0X2NhY2hlX2ZyZWUoc3RydWN0IGZhdF9jYWNoZSAqY2FjaGUpCmRpZmYgLS1naXQgYS9mcy9mYXQvZGlyLmMgYi9mcy9mYXQvZGlyLmMKaW5kZXggNDg2NzI1ZS4uMzQ1NDFkMCAxMDA2NDQKLS0tIGEvZnMvZmF0L2Rpci5jCisrKyBiL2ZzL2ZhdC9kaXIuYwpAQCAtNDcyLDcgKzQ3Miw3IEBACiAJbG9mZl90IGNwb3M7CiAJaW50IHJldCA9IDA7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJY3BvcyA9IGZpbHAtPmZfcG9zOwogCS8qIEZha2UgLiBhbmQgLi4gZm9yIHRoZSByb290IGRpcmVjdG9yeS4gKi8KQEAgLTY1NCw3ICs2NTQsNyBAQAogCWlmICh1bmljb2RlKQogCQlfX3B1dG5hbWUodW5pY29kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZmF0L2ZpbGUuYyBiL2ZzL2ZhdC9maWxlLmMKaW5kZXggMjdjYzExNi4uYzY3MmRmNCAxMDA2NDQKLS0tIGEvZnMvZmF0L2ZpbGUuYworKysgYi9mcy9mYXQvZmlsZS5jCkBAIC0xMSw3ICsxMSw2IEBACiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbXNkb3NfZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KQEAgLTI0Miw5ICsyNDEsNyBAQAogCiAJbnJfY2x1c3RlcnMgPSAoaW5vZGUtPmlfc2l6ZSArIChjbHVzdGVyX3NpemUgLSAxKSkgPj4gc2JpLT5jbHVzdGVyX2JpdHM7CiAKLQlsb2NrX2tlcm5lbCgpOwogCWZhdF9mcmVlKGlub2RlLCBucl9jbHVzdGVycyk7Ci0JdW5sb2NrX2tlcm5lbCgpOwogCWZhdF9mbHVzaF9pbm9kZXMoaW5vZGUtPmlfc2IsIGlub2RlLCBOVUxMKTsKIH0KIApAQCAtMjU3LDI2ICsyNTQsMzQgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGZhdF9nZXRhdHRyKTsKIAotc3RhdGljIGludCBmYXRfY2hlY2tfbW9kZShjb25zdCBzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQkJICBtb2RlX3QgbW9kZSkKK3N0YXRpYyBpbnQgZmF0X3Nhbml0aXplX21vZGUoY29uc3Qgc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSwKKwkJCSAgICAgc3RydWN0IGlub2RlICppbm9kZSwgdW1vZGVfdCAqbW9kZV9wdHIpCiB7Ci0JbW9kZV90IG1hc2ssIHJlcSA9IG1vZGUgJiB+U19JRk1UOworCW1vZGVfdCBtYXNrLCBwZXJtOwogCi0JaWYgKFNfSVNSRUcobW9kZSkpCisJLyoKKwkgKiBOb3RlLCB0aGUgYmFzaWMgY2hlY2sgaXMgYWxyZWFkeSBkb25lIGJ5IGEgY2FsbGVyIG9mCisJICogKGF0dHItPmlhX21vZGUgJiB+TVNET1NfVkFMSURfTU9ERSkKKwkgKi8KKworCWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKQogCQltYXNrID0gc2JpLT5vcHRpb25zLmZzX2ZtYXNrOwogCWVsc2UKIAkJbWFzayA9IHNiaS0+b3B0aW9ucy5mc19kbWFzazsKIAorCXBlcm0gPSAqbW9kZV9wdHIgJiB+KFNfSUZNVCB8IG1hc2spOworCiAJLyoKIAkgKiBPZiB0aGUgciBhbmQgeCBiaXRzLCBhbGwgKHN1YmplY3QgdG8gdW1hc2spIG11c3QgYmUgcHJlc2VudC4gT2YgdGhlCiAJICogdyBiaXRzLCBlaXRoZXIgYWxsIChzdWJqZWN0IHRvIHVtYXNrKSBvciBub25lIG11c3QgYmUgcHJlc2VudC4KIAkgKi8KLQlyZXEgJj0gfm1hc2s7Ci0JaWYgKChyZXEgJiAoU19JUlVHTyB8IFNfSVhVR08pKSAhPSAoaW5vZGUtPmlfbW9kZSAmIChTX0lSVUdPfFNfSVhVR08pKSkKKwlpZiAoKHBlcm0gJiAoU19JUlVHTyB8IFNfSVhVR08pKSAhPSAoaW5vZGUtPmlfbW9kZSAmIChTX0lSVUdPfFNfSVhVR08pKSkKIAkJcmV0dXJuIC1FUEVSTTsKLQlpZiAoKHJlcSAmIFNfSVdVR08pICYmICgocmVxICYgU19JV1VHTykgIT0gKFNfSVdVR08gJiB+bWFzaykpKQorCWlmICgocGVybSAmIFNfSVdVR08pICYmICgocGVybSAmIFNfSVdVR08pICE9IChTX0lXVUdPICYgfm1hc2spKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAorCSptb2RlX3B0ciAmPSBTX0lGTVQgfCBwZXJtOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI5OSwxMSArMzA0LDkgQEAKIHsKIAlzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpID0gTVNET1NfU0IoZGVudHJ5LT5kX3NiKTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwotCWludCBtYXNrLCBlcnJvciA9IDA7CisJaW50IGVycm9yID0gMDsKIAl1bnNpZ25lZCBpbnQgaWFfdmFsaWQ7CiAKLQlsb2NrX2tlcm5lbCgpOwotCiAJLyoKIAkgKiBFeHBhbmQgdGhlIGZpbGUuIFNpbmNlIGlub2RlX3NldGF0dHIoKSB1cGRhdGVzIC0+aV9zaXplCiAJICogYmVmb3JlIGNhbGxpbmcgdGhlIC0+dHJ1bmNhdGUoKSwgYnV0IEZBVCBuZWVkcyB0byBmaWxsIHRoZQpAQCAtMzMyLDEyICszMzUsMTMgQEAKIAkJCWVycm9yID0gMDsKIAkJZ290byBvdXQ7CiAJfQorCiAJaWYgKCgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX1VJRCkgJiYKIAkgICAgIChhdHRyLT5pYV91aWQgIT0gc2JpLT5vcHRpb25zLmZzX3VpZCkpIHx8CiAJICAgICgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgJiYKIAkgICAgIChhdHRyLT5pYV9naWQgIT0gc2JpLT5vcHRpb25zLmZzX2dpZCkpIHx8CiAJICAgICgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX01PREUpICYmCi0JICAgICBmYXRfY2hlY2tfbW9kZShzYmksIGlub2RlLCBhdHRyLT5pYV9tb2RlKSA8IDApKQorCSAgICAgKGF0dHItPmlhX21vZGUgJiB+TVNET1NfVkFMSURfTU9ERSkpKQogCQllcnJvciA9IC1FUEVSTTsKIAogCWlmIChlcnJvcikgewpAQCAtMzQ2LDE3ICszNTAsMTcgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JZXJyb3IgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gb3V0OworCS8qCisJICogV2UgZG9uJ3QgcmV0dXJuIC1FUEVSTSBoZXJlLiBZZXMsIHN0cmFuZ2UsIGJ1dCB0aGlzIGlzIHRvbworCSAqIG9sZCBiZWhhdmlvci4KKwkgKi8KKwlpZiAoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX01PREUpIHsKKwkJaWYgKGZhdF9zYW5pdGl6ZV9tb2RlKHNiaSwgaW5vZGUsICZhdHRyLT5pYV9tb2RlKSA8IDApCisJCQlhdHRyLT5pYV92YWxpZCAmPSB+QVRUUl9NT0RFOworCX0KIAotCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpKQotCQltYXNrID0gc2JpLT5vcHRpb25zLmZzX2RtYXNrOwotCWVsc2UKLQkJbWFzayA9IHNiaS0+b3B0aW9ucy5mc19mbWFzazsKLQlpbm9kZS0+aV9tb2RlICY9IFNfSUZNVCB8IChTX0lSV1hVR08gJiB+bWFzayk7CisJZXJyb3IgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycm9yOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZmF0X3NldGF0dHIpOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYwppbmRleCA0ZTBhM2RkLi40NmE0NTA4IDEwMDY0NAotLS0gYS9mcy9mYXQvaW5vZGUuYworKysgYi9mcy9mYXQvaW5vZGUuYwpAQCAtNDQwLDE0ICs0NDAsMTMgQEAKIAogc3RhdGljIHZvaWQgZmF0X2NsZWFyX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0Jc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKGlub2RlLT5pX3NiKTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7CisJc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKHNiKTsKIAotCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZzYmktPmlub2RlX2hhc2hfbG9jayk7CiAJZmF0X2NhY2hlX2ludmFsX2lub2RlKGlub2RlKTsKIAlobGlzdF9kZWxfaW5pdCgmTVNET1NfSShpbm9kZSktPmlfZmF0X2hhc2gpOwogCXNwaW5fdW5sb2NrKCZzYmktPmlub2RlX2hhc2hfbG9jayk7Ci0JdW5sb2NrX2tlcm5lbCgpOwogfQogCiBzdGF0aWMgdm9pZCBmYXRfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTQ4NSw3ICs0ODQsNyBAQAogc3RhdGljIHN0cnVjdCBpbm9kZSAqZmF0X2FsbG9jX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IG1zZG9zX2lub2RlX2luZm8gKmVpOwotCWVpID0ga21lbV9jYWNoZV9hbGxvYyhmYXRfaW5vZGVfY2FjaGVwLCBHRlBfS0VSTkVMKTsKKwllaSA9IGttZW1fY2FjaGVfYWxsb2MoZmF0X2lub2RlX2NhY2hlcCwgR0ZQX05PRlMpOwogCWlmICghZWkpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiAmZWktPnZmc19pbm9kZTsKQEAgLTU2Nyw3ICs1NjYsNyBAQAogCWlmIChpbm9kZS0+aV9pbm8gPT0gTVNET1NfUk9PVF9JTk8gfHwgIWlfcG9zKQogCQlyZXR1cm4gMDsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAJYmggPSBzYl9icmVhZChzYiwgaV9wb3MgPj4gc2JpLT5kaXJfcGVyX2Jsb2NrX2JpdHMpOwogCWlmICghYmgpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJGQVQ6IHVuYWJsZSB0byByZWFkIGlub2RlIGJsb2NrICIKQEAgLTU3OSw3ICs1NzgsNyBAQAogCWlmIChpX3BvcyAhPSBNU0RPU19JKGlub2RlKS0+aV9wb3MpIHsKIAkJc3Bpbl91bmxvY2soJnNiaS0+aW5vZGVfaGFzaF9sb2NrKTsKIAkJYnJlbHNlKGJoKTsKLQkJdW5sb2NrX2tlcm5lbCgpOworCQl1bmxvY2tfc3VwZXIoc2IpOwogCQlnb3RvIHJldHJ5OwogCX0KIApAQCAtNjA2LDcgKzYwNSw3IEBACiAJCWVyciA9IHN5bmNfZGlydHlfYnVmZmVyKGJoKTsKIAlicmVsc2UoYmgpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTczNiw2ICs3MzUsNyBAQAogCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqZmF0X2dldF9wYXJlbnQoc3RydWN0IGRlbnRyeSAqY2hpbGQpCiB7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGNoaWxkLT5kX3NiOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7CiAJbG9mZl90IGlfcG9zOwpAQCAtNzQzLDE0ICs3NDMsMTQgQEAKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gZmF0X2dldF9kb3Rkb3RfZW50cnkoY2hpbGQtPmRfaW5vZGUsICZiaCwgJmRlLCAmaV9wb3MpOwogCWlmIChlcnIpIHsKIAkJcGFyZW50ID0gRVJSX1BUUihlcnIpOwogCQlnb3RvIG91dDsKIAl9Ci0JaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoY2hpbGQtPmRfc2IsIGRlLCBpX3Bvcyk7CisJaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoc2IsIGRlLCBpX3Bvcyk7CiAJYnJlbHNlKGJoKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewogCQlwYXJlbnQgPSBFUlJfQ0FTVChpbm9kZSk7CkBAIC03NjIsNyArNzYyLDcgQEAKIAkJcGFyZW50ID0gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAKIAlyZXR1cm4gcGFyZW50OwogfQpAQCAtMTE3Miw2ICsxMTcyLDEyIEBACiAJbG9uZyBlcnJvcjsKIAljaGFyIGJ1Zls1MF07CiAKKwkvKgorCSAqIEdGUF9LRVJORUwgaXMgb2sgaGVyZSwgYmVjYXVzZSB3aGlsZSB3ZSBkbyBob2xkIHRoZQorCSAqIHN1cGVibG9jayBsb2NrLCBtZW1vcnkgcHJlc3N1cmUgY2FuJ3QgY2FsbCBiYWNrIGludG8KKwkgKiB0aGUgZmlsZXN5c3RlbSwgc2luY2Ugd2UncmUgb25seSBqdXN0IGFib3V0IHRvIG1vdW50CisJICogaXQgYW5kIGhhdmUgbm8gaW5vZGVzIGV0YyBhY3RpdmUhCisJICovCiAJc2JpID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1zZG9zX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNiaSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9mY250bC5jIGIvZnMvZmNudGwuYwppbmRleCBiZmQ3NzY1Li4zMzBhN2Q3IDEwMDY0NAotLS0gYS9mcy9mY250bC5jCisrKyBiL2ZzL2ZjbnRsLmMKQEAgLTEyLDcgKzEyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2Rub3RpZnkuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgpAQCAtMjI3LDcgKzIyNiw2IEBACiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKLQlsb2NrX2tlcm5lbCgpOwogCWlmICgoYXJnIF4gZmlscC0+Zl9mbGFncykgJiBGQVNZTkMpIHsKIAkJaWYgKGZpbHAtPmZfb3AgJiYgZmlscC0+Zl9vcC0+ZmFzeW5jKSB7CiAJCQllcnJvciA9IGZpbHAtPmZfb3AtPmZhc3luYyhmZCwgZmlscCwgKGFyZyAmIEZBU1lOQykgIT0gMCk7CkBAIC0yMzgsNyArMjM2LDYgQEAKIAogCWZpbHAtPmZfZmxhZ3MgPSAoYXJnICYgU0VURkxfTUFTSykgfCAoZmlscC0+Zl9mbGFncyAmIH5TRVRGTF9NQVNLKTsKICBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZnVzZS9pbm9kZS5jIGIvZnMvZnVzZS9pbm9kZS5jCmluZGV4IDQzZTk5NTEuLjMxNDE2OTAgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2UvaW5vZGUuYworKysgYi9mcy9mdXNlL2lub2RlLmMKQEAgLTU5MSw3ICs1OTEsNyBAQAogCQlmYy0+YmRpLnJhX3BhZ2VzID0gbWluKGZjLT5iZGkucmFfcGFnZXMsIHJhX3BhZ2VzKTsKIAkJZmMtPm1pbm9yID0gYXJnLT5taW5vcjsKIAkJZmMtPm1heF93cml0ZSA9IGFyZy0+bWlub3IgPCA1ID8gNDA5NiA6IGFyZy0+bWF4X3dyaXRlOwotCQlmYy0+bWF4X3dyaXRlID0gbWluX3QodW5zaWduZWQsIDQwOTYsIGZjLT5tYXhfd3JpdGUpOworCQlmYy0+bWF4X3dyaXRlID0gbWF4X3QodW5zaWduZWQsIDQwOTYsIGZjLT5tYXhfd3JpdGUpOwogCQlmYy0+Y29ubl9pbml0ID0gMTsKIAl9CiAJZnVzZV9wdXRfcmVxdWVzdChmYywgcmVxKTsKQEAgLTY2Nyw3ICs2NjcsNyBAQAogCWZjLT5mbGFncyA9IGQuZmxhZ3M7CiAJZmMtPnVzZXJfaWQgPSBkLnVzZXJfaWQ7CiAJZmMtPmdyb3VwX2lkID0gZC5ncm91cF9pZDsKLQlmYy0+bWF4X3JlYWQgPSBtaW5fdCh1bnNpZ25lZCwgNDA5NiwgZC5tYXhfcmVhZCk7CisJZmMtPm1heF9yZWFkID0gbWF4X3QodW5zaWduZWQsIDQwOTYsIGQubWF4X3JlYWQpOwogCiAJLyogVXNlZCBieSBnZXRfcm9vdF9pbm9kZSgpICovCiAJc2ItPnNfZnNfaW5mbyA9IGZjOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9ibWFwLmMgYi9mcy9nZnMyL2JtYXAuYwppbmRleCBjMTkxODRmLi5iZWM3NmIxIDEwMDY0NAotLS0gYS9mcy9nZnMyL2JtYXAuYworKysgYi9mcy9nZnMyL2JtYXAuYwpAQCAtMjQ2LDE1ICsyNDYsMTEgQEAKIAogfQogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB6ZXJvX21ldGFwYXRoX2xlbmd0aChjb25zdCBzdHJ1Y3QgbWV0YXBhdGggKm1wLAotCQkJCQkJdW5zaWduZWQgaGVpZ2h0KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWV0YXBhdGhfYnJhbmNoX3N0YXJ0KGNvbnN0IHN0cnVjdCBtZXRhcGF0aCAqbXApCiB7Ci0JdW5zaWduZWQgaW50IGk7Ci0JZm9yIChpID0gMDsgaSA8IGhlaWdodCAtIDE7IGkrKykgewotCQlpZiAobXAtPm1wX2xpc3RbaV0gIT0gMCkKLQkJCXJldHVybiBpOwotCX0KLQlyZXR1cm4gaGVpZ2h0OworCWlmIChtcC0+bXBfbGlzdFswXSA9PSAwKQorCQlyZXR1cm4gMjsKKwlyZXR1cm4gMTsKIH0KIAogLyoqCkBAIC00MzYsNyArNDMyLDcgQEAKIAlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCA9IEdGUzJfU0IoaW5vZGUpOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqZGliaCA9IG1wLT5tcF9iaFswXTsKIAl1NjQgYm4sIGRibG9jayA9IDA7Ci0JdW5zaWduZWQgbiwgaSwgYmxrcywgYWxsb2NlZCA9IDAsIGlibGtzID0gMCwgem1wbCA9IDA7CisJdW5zaWduZWQgbiwgaSwgYmxrcywgYWxsb2NlZCA9IDAsIGlibGtzID0gMCwgYnJhbmNoX3N0YXJ0ID0gMDsKIAl1bnNpZ25lZCBkYmxrcyA9IDA7CiAJdW5zaWduZWQgcHRyc19wZXJfYmxrOwogCWNvbnN0IHVuc2lnbmVkIGVuZF9vZl9tZXRhZGF0YSA9IGhlaWdodCAtIDE7CkBAIC00NzEsOSArNDY3LDggQEAKIAkJCS8qIEJ1aWxkaW5nIHVwIHRyZWUgaGVpZ2h0ICovCiAJCQlzdGF0ZSA9IEFMTE9DX0dST1dfSEVJR0hUOwogCQkJaWJsa3MgPSBoZWlnaHQgLSBpcC0+aV9oZWlnaHQ7Ci0JCQl6bXBsID0gemVyb19tZXRhcGF0aF9sZW5ndGgobXAsIGhlaWdodCk7Ci0JCQlpYmxrcyAtPSB6bXBsOwotCQkJaWJsa3MgKz0gaGVpZ2h0OworCQkJYnJhbmNoX3N0YXJ0ID0gbWV0YXBhdGhfYnJhbmNoX3N0YXJ0KG1wKTsKKwkJCWlibGtzICs9IChoZWlnaHQgLSBicmFuY2hfc3RhcnQpOwogCQl9CiAJfQogCkBAIC01MDksMTMgKzUwNCwxMyBAQAogCQkJCQlzaXplb2Yoc3RydWN0IGdmczJfbWV0YV9oZWFkZXIpKTsKIAkJCQkqcHRyID0gemVyb19ibjsKIAkJCQlzdGF0ZSA9IEFMTE9DX0dST1dfREVQVEg7Ci0JCQkJZm9yKGkgPSB6bXBsOyBpIDwgaGVpZ2h0OyBpKyspIHsKKwkJCQlmb3IoaSA9IGJyYW5jaF9zdGFydDsgaSA8IGhlaWdodDsgaSsrKSB7CiAJCQkJCWlmIChtcC0+bXBfYmhbaV0gPT0gTlVMTCkKIAkJCQkJCWJyZWFrOwogCQkJCQlicmVsc2UobXAtPm1wX2JoW2ldKTsKIAkJCQkJbXAtPm1wX2JoW2ldID0gTlVMTDsKIAkJCQl9Ci0JCQkJaSA9IHptcGw7CisJCQkJaSA9IGJyYW5jaF9zdGFydDsKIAkJCX0KIAkJCWlmIChuID09IDApCiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9mcy9nZnMyL29wc19maWxlLmMgYi9mcy9nZnMyL29wc19maWxlLmMKaW5kZXggZTFiN2Q1Mi4uMjRkZDU5NCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9vcHNfZmlsZS5jCisrKyBiL2ZzL2dmczIvb3BzX2ZpbGUuYwpAQCAtNjIsMTEgKzYyLDExIEBACiAJCWVycm9yID0gZ2ZzMl9nbG9ja19ucV9pbml0KGlwLT5pX2dsLCBMTV9TVF9TSEFSRUQsIExNX0ZMQUdfQU5ZLAogCQkJCQkgICAmaV9naCk7CiAJCWlmICghZXJyb3IpIHsKLQkJCWVycm9yID0gcmVtb3RlX2xsc2VlayhmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJCQllcnJvciA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOwogCQkJZ2ZzMl9nbG9ja19kcV91bmluaXQoJmlfZ2gpOwogCQl9CiAJfSBlbHNlCi0JCWVycm9yID0gcmVtb3RlX2xsc2VlayhmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJCWVycm9yID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CiAKIAlyZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9mcy9nZnMyL3JncnAuYyBiL2ZzL2dmczIvcmdycC5jCmluZGV4IDYzODc1MjMuLjM0MDE2MjggMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvcmdycC5jCisrKyBiL2ZzL2dmczIvcmdycC5jCkBAIC0xOTUsNyArMTk1LDcgQEAKIAkgICBkZXBlbmRpbmcgb24gYXJjaGl0ZWN0dXJlLiAgSSd2ZSBleHBlcmltZW50ZWQgd2l0aCBzZXZlcmFsIHdheXMKIAkgICBvZiB3cml0aW5nIHRoaXMgc2VjdGlvbiBzdWNoIGFzIHVzaW5nIGFuIGVsc2UgYmVmb3JlIHRoZSBnb3RvCiAJICAgYnV0IHRoaXMgb25lIHNlZW1zIHRvIGJlIHRoZSBmYXN0ZXN0LiAqLwotCXdoaWxlICgodW5zaWduZWQgY2hhciAqKXBsb25nIDwgZW5kIC0gMSkgeworCXdoaWxlICgodW5zaWduZWQgY2hhciAqKXBsb25nIDwgZW5kIC0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7CiAJCXByZWZldGNoKHBsb25nICsgMSk7CiAJCWlmICgoKCpwbG9uZykgJiBMQklUTUFTSykgIT0gbHNraXB2YWwpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2ZzL2piZDIvY2hlY2twb2ludC5jIGIvZnMvamJkMi9jaGVja3BvaW50LmMKaW5kZXggNjkxNDU5OC4uOTEzODljOCAxMDA2NDQKLS0tIGEvZnMvamJkMi9jaGVja3BvaW50LmMKKysrIGIvZnMvamJkMi9jaGVja3BvaW50LmMKQEAgLTY4OCw3ICs2ODgsNiBAQAogCiAJSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfc3RhdGUgPT0gVF9GSU5JU0hFRCk7CiAJSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfYnVmZmVycyA9PSBOVUxMKTsKLQlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0ID09IE5VTEwpOwogCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X2ZvcmdldCA9PSBOVUxMKTsKIAlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9pb2J1Zl9saXN0ID09IE5VTEwpOwogCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X3NoYWRvd19saXN0ID09IE5VTEwpOwpkaWZmIC0tZ2l0IGEvZnMvamJkMi9jb21taXQuYyBiL2ZzL2piZDIvY29tbWl0LmMKaW5kZXggNGQ5OTY4NS4uZjhiM2JlOCAxMDA2NDQKLS0tIGEvZnMvamJkMi9jb21taXQuYworKysgYi9mcy9qYmQyL2NvbW1pdC5jCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPgorI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPgorI2luY2x1ZGUgPGxpbnV4L2JhY2tpbmctZGV2Lmg+CiAKIC8qCiAgKiBEZWZhdWx0IElPIGVuZCBoYW5kbGVyIGZvciB0ZW1wb3JhcnkgQkpfSU8gYnVmZmVyX2hlYWRzLgpAQCAtMzcsOCArMzksOCBAQAogfQogCiAvKgotICogV2hlbiBhbiBleHQzLW9yZGVyZWQgZmlsZSBpcyB0cnVuY2F0ZWQsIGl0IGlzIHBvc3NpYmxlIHRoYXQgbWFueSBwYWdlcyBhcmUKLSAqIG5vdCBzdWNlc3NmdWxseSBmcmVlZCwgYmVjYXVzZSB0aGV5IGFyZSBhdHRhY2hlZCB0byBhIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uCisgKiBXaGVuIGFuIGV4dDQgZmlsZSBpcyB0cnVuY2F0ZWQsIGl0IGlzIHBvc3NpYmxlIHRoYXQgc29tZSBwYWdlcyBhcmUgbm90CisgKiBzdWNjZXNzZnVsbHkgZnJlZWQsIGJlY2F1c2UgdGhleSBhcmUgYXR0YWNoZWQgdG8gYSBjb21taXR0aW5nIHRyYW5zYWN0aW9uLgogICogQWZ0ZXIgdGhlIHRyYW5zYWN0aW9uIGNvbW1pdHMsIHRoZXNlIHBhZ2VzIGFyZSBsZWZ0IG9uIHRoZSBMUlUsIHdpdGggbm8KICAqIC0+bWFwcGluZywgYW5kIHdpdGggYXR0YWNoZWQgYnVmZmVycy4gIFRoZXNlIHBhZ2VzIGFyZSB0cml2aWFsbHkgcmVjbGFpbWFibGUKICAqIGJ5IHRoZSBWTSwgYnV0IHRoZWlyIGFwcGFyZW50IGFic2VuY2UgdXBzZXRzIHRoZSBWTSBhY2NvdW50aW5nLCBhbmQgaXQgbWFrZXMKQEAgLTgwLDIxICs4Miw2IEBACiB9CiAKIC8qCi0gKiBUcnkgdG8gYWNxdWlyZSBqYmRfbG9ja19iaF9zdGF0ZSgpIGFnYWluc3QgdGhlIGJ1ZmZlciwgd2hlbiBqX2xpc3RfbG9jayBpcwotICogaGVsZC4gIEZvciByYW5raW5nIHJlYXNvbnMgd2UgbXVzdCB0cnlsb2NrLiAgSWYgd2UgbG9zZSwgc2NoZWR1bGUgYXdheSBhbmQKLSAqIHJldHVybiAwLiAgal9saXN0X2xvY2sgaXMgZHJvcHBlZCBpbiB0aGlzIGNhc2UuCi0gKi8KLXN0YXRpYyBpbnQgaW52ZXJ0ZWRfbG9jayhqb3VybmFsX3QgKmpvdXJuYWwsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCi17Ci0JaWYgKCFqYmRfdHJ5bG9ja19iaF9zdGF0ZShiaCkpIHsKLQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJc2NoZWR1bGUoKTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAxOwotfQotCi0vKgogICogRG9uZSBpdCBhbGw6IG5vdyBzdWJtaXQgdGhlIGNvbW1pdCByZWNvcmQuICBXZSBzaG91bGQgaGF2ZQogICogY2xlYW5lZCB1cCBvdXIgcHJldmlvdXMgYnVmZmVycyBieSBub3csIHNvIGlmIHdlIGFyZSBpbiBhYm9ydAogICogbW9kZSB3ZSBjYW4gbm93IGp1c3Qgc2tpcCB0aGUgcmVzdCBvZiB0aGUgam91cm5hbCB3cml0ZQpAQCAtMTEyLDYgKzk5LDcgQEAKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwogCWludCByZXQ7CiAJaW50IGJhcnJpZXJfZG9uZSA9IDA7CisJc3RydWN0IHRpbWVzcGVjIG5vdyA9IGN1cnJlbnRfa2VybmVsX3RpbWUoKTsKIAogCWlmIChpc19qb3VybmFsX2Fib3J0ZWQoam91cm5hbCkpCiAJCXJldHVybiAwOwpAQCAtMTI2LDYgKzExNCw4IEBACiAJdG1wLT5oX21hZ2ljID0gY3B1X3RvX2JlMzIoSkJEMl9NQUdJQ19OVU1CRVIpOwogCXRtcC0+aF9ibG9ja3R5cGUgPSBjcHVfdG9fYmUzMihKQkQyX0NPTU1JVF9CTE9DSyk7CiAJdG1wLT5oX3NlcXVlbmNlID0gY3B1X3RvX2JlMzIoY29tbWl0X3RyYW5zYWN0aW9uLT50X3RpZCk7CisJdG1wLT5oX2NvbW1pdF9zZWMgPSBjcHVfdG9fYmU2NChub3cudHZfc2VjKTsKKwl0bXAtPmhfY29tbWl0X25zZWMgPSBjcHVfdG9fYmUzMihub3cudHZfbnNlYyk7CiAKIAlpZiAoSkJEMl9IQVNfQ09NUEFUX0ZFQVRVUkUoam91cm5hbCwKIAkJCQkgICAgSkJEMl9GRUFUVVJFX0NPTVBBVF9DSEVDS1NVTSkpIHsKQEAgLTE2OCw2ICsxNTgsNyBAQAogCQlzcGluX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKIAogCQkvKiBBbmQgdHJ5IGFnYWluLCB3aXRob3V0IHRoZSBiYXJyaWVyICovCisJCWxvY2tfYnVmZmVyKGJoKTsKIAkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7CiAJCXNldF9idWZmZXJfZGlydHkoYmgpOwogCQlyZXQgPSBzdWJtaXRfYmgoV1JJVEUsIGJoKTsKQEAgLTE5NiwxNTkgKzE4NywxMDQgQEAKIH0KIAogLyoKLSAqIFdhaXQgZm9yIGFsbCBzdWJtaXR0ZWQgSU8gdG8gY29tcGxldGUuCisgKiB3cml0ZSB0aGUgZmlsZW1hcCBkYXRhIHVzaW5nIHdyaXRlcGFnZSgpIGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucy4KKyAqIFdlIGRvbid0IGRvIGJsb2NrIGFsbG9jYXRpb24gaGVyZSBldmVuIGZvciBkZWxhbGxvYy4gV2UgZG9uJ3QKKyAqIHVzZSB3cml0ZXBhZ2VzKCkgYmVjYXVzZSB3aXRoIGRlYWx5ZWQgYWxsb2NhdGlvbiB3ZSBtYXkgYmUgZG9pbmcKKyAqIGJsb2NrIGFsbG9jYXRpb24gaW4gd3JpdGVwYWdlcygpLgogICovCi1zdGF0aWMgaW50IGpvdXJuYWxfd2FpdF9vbl9sb2NrZWRfbGlzdChqb3VybmFsX3QgKmpvdXJuYWwsCi0JCQkJICAgICAgIHRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuc2FjdGlvbikKK3N0YXRpYyBpbnQgam91cm5hbF9zdWJtaXRfaW5vZGVfZGF0YV9idWZmZXJzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQogewotCWludCByZXQgPSAwOwotCXN0cnVjdCBqb3VybmFsX2hlYWQgKmpoOworCWludCByZXQ7CisJc3RydWN0IHdyaXRlYmFja19jb250cm9sIHdiYyA9IHsKKwkJLnN5bmNfbW9kZSA9ICBXQl9TWU5DX0FMTCwKKwkJLm5yX3RvX3dyaXRlID0gbWFwcGluZy0+bnJwYWdlcyAqIDIsCisJCS5yYW5nZV9zdGFydCA9IDAsCisJCS5yYW5nZV9lbmQgPSBpX3NpemVfcmVhZChtYXBwaW5nLT5ob3N0KSwKKwkJLmZvcl93cml0ZXBhZ2VzID0gMSwKKwl9OwogCi0Jd2hpbGUgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9sb2NrZWRfbGlzdCkgewotCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwotCi0JCWpoID0gY29tbWl0X3RyYW5zYWN0aW9uLT50X2xvY2tlZF9saXN0LT5iX3RwcmV2OwotCQliaCA9IGpoMmJoKGpoKTsKLQkJZ2V0X2JoKGJoKTsKLQkJaWYgKGJ1ZmZlcl9sb2NrZWQoYmgpKSB7Ci0JCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJd2FpdF9vbl9idWZmZXIoYmgpOwotCQkJaWYgKHVubGlrZWx5KCFidWZmZXJfdXB0b2RhdGUoYmgpKSkKLQkJCQlyZXQgPSAtRUlPOwotCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCX0KLQkJaWYgKCFpbnZlcnRlZF9sb2NrKGpvdXJuYWwsIGJoKSkgewotCQkJcHV0X2JoKGJoKTsKLQkJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJY29udGludWU7Ci0JCX0KLQkJaWYgKGJ1ZmZlcl9qYmQoYmgpICYmIGpoLT5iX2psaXN0ID09IEJKX0xvY2tlZCkgewotCQkJX19qYmQyX2pvdXJuYWxfdW5maWxlX2J1ZmZlcihqaCk7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCWpiZDJfam91cm5hbF9yZW1vdmVfam91cm5hbF9oZWFkKGJoKTsKLQkJCXB1dF9iaChiaCk7Ci0JCX0gZWxzZSB7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJfQotCQlwdXRfYmgoYmgpOwotCQljb25kX3Jlc2NoZWRfbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCX0KKwlyZXQgPSBnZW5lcmljX3dyaXRlcGFnZXMobWFwcGluZywgJndiYyk7CiAJcmV0dXJuIHJldDsKLSAgfQotCi1zdGF0aWMgdm9pZCBqb3VybmFsX2RvX3N1Ym1pdF9kYXRhKHN0cnVjdCBidWZmZXJfaGVhZCAqKndidWYsIGludCBidWZzKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGJ1ZnM7IGkrKykgewotCQl3YnVmW2ldLT5iX2VuZF9pbyA9IGVuZF9idWZmZXJfd3JpdGVfc3luYzsKLQkJLyogV2UgdXNlLXVwIG91ciBzYWZldHkgcmVmZXJlbmNlIGluIHN1Ym1pdF9iaCgpICovCi0JCXN1Ym1pdF9iaChXUklURSwgd2J1ZltpXSk7Ci0JfQogfQogCiAvKgotICogIFN1Ym1pdCBhbGwgdGhlIGRhdGEgYnVmZmVycyB0byBkaXNrCisgKiBTdWJtaXQgYWxsIHRoZSBkYXRhIGJ1ZmZlcnMgb2YgaW5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFuc2FjdGlvbiB0bworICogZGlzay4KKyAqCisgKiBXZSBhcmUgaW4gYSBjb21taXR0aW5nIHRyYW5zYWN0aW9uLiBUaGVyZWZvcmUgbm8gbmV3IGlub2RlIGNhbiBiZSBhZGRlZCB0bworICogb3VyIGlub2RlIGxpc3QuIFdlIHVzZSBKSV9DT01NSVRfUlVOTklORyBmbGFnIHRvIHByb3RlY3QgaW5vZGUgd2UgY3VycmVudGx5CisgKiBvcGVyYXRlIG9uIGZyb20gYmVpbmcgcmVsZWFzZWQgd2hpbGUgd2Ugd3JpdGUgb3V0IHBhZ2VzLgogICovCi1zdGF0aWMgdm9pZCBqb3VybmFsX3N1Ym1pdF9kYXRhX2J1ZmZlcnMoam91cm5hbF90ICpqb3VybmFsLAotCQkJCXRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuc2FjdGlvbikKK3N0YXRpYyBpbnQgam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5hbCwKKwkJdHJhbnNhY3Rpb25fdCAqY29tbWl0X3RyYW5zYWN0aW9uKQogewotCXN0cnVjdCBqb3VybmFsX2hlYWQgKmpoOwotCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Ci0JaW50IGxvY2tlZDsKLQlpbnQgYnVmcyA9IDA7Ci0Jc3RydWN0IGJ1ZmZlcl9oZWFkICoqd2J1ZiA9IGpvdXJuYWwtPmpfd2J1ZjsKKwlzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlOworCWludCBlcnIsIHJldCA9IDA7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CiAKLQkvKgotCSAqIFdoZW5ldmVyIHdlIHVubG9jayB0aGUgam91cm5hbCBhbmQgc2xlZXAsIHRoaW5ncyBjYW4gZ2V0IGFkZGVkCi0JICogb250byAtPnRfc3luY19kYXRhbGlzdCwgc28gd2UgaGF2ZSB0byBrZWVwIGxvb3BpbmcgYmFjayB0bwotCSAqIHdyaXRlX291dF9kYXRhIHVudGlsIHdlICprbm93KiB0aGF0IHRoZSBsaXN0IGlzIGVtcHR5LgotCSAqCi0JICogQ2xlYW51cCBhbnkgZmx1c2hlZCBkYXRhIGJ1ZmZlcnMgZnJvbSB0aGUgZGF0YSBsaXN0LiAgRXZlbiBpbgotCSAqIGFib3J0IG1vZGUsIHdlIHdhbnQgdG8gZmx1c2ggdGhpcyBvdXQgYXMgc29vbiBhcyBwb3NzaWJsZS4KLQkgKi8KLXdyaXRlX291dF9kYXRhOgotCWNvbmRfcmVzY2hlZCgpOwogCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCi0Jd2hpbGUgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0KSB7Ci0JCWpoID0gY29tbWl0X3RyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3Q7Ci0JCWJoID0gamgyYmgoamgpOwotCQlsb2NrZWQgPSAwOwotCi0JCS8qIEdldCByZWZlcmVuY2UganVzdCB0byBtYWtlIHN1cmUgYnVmZmVyIGRvZXMgbm90IGRpc2FwcGVhcgotCQkgKiB3aGVuIHdlIGFyZSBmb3JjZWQgdG8gZHJvcCB2YXJpb3VzIGxvY2tzICovCi0JCWdldF9iaChiaCk7Ci0JCS8qIElmIHRoZSBidWZmZXIgaXMgZGlydHksIHdlIG5lZWQgdG8gc3VibWl0IElPIGFuZCBoZW5jZQotCQkgKiB3ZSBuZWVkIHRoZSBidWZmZXIgbG9jay4gV2UgdHJ5IHRvIGxvY2sgdGhlIGJ1ZmZlciB3aXRob3V0Ci0JCSAqIGJsb2NraW5nLiBJZiB3ZSBmYWlsLCB3ZSBuZWVkIHRvIGRyb3Agal9saXN0X2xvY2sgYW5kIGRvCi0JCSAqIGJsb2NraW5nIGxvY2tfYnVmZmVyKCkuCisJbGlzdF9mb3JfZWFjaF9lbnRyeShqaW5vZGUsICZjb21taXRfdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCwgaV9saXN0KSB7CisJCW1hcHBpbmcgPSBqaW5vZGUtPmlfdmZzX2lub2RlLT5pX21hcHBpbmc7CisJCWppbm9kZS0+aV9mbGFncyB8PSBKSV9DT01NSVRfUlVOTklORzsKKwkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkJLyoKKwkJICogc3VibWl0IHRoZSBpbm9kZSBkYXRhIGJ1ZmZlcnMuIFdlIHVzZSB3cml0ZXBhZ2UKKwkJICogaW5zdGVhZCBvZiB3cml0ZXBhZ2VzLiBCZWNhdXNlIHdyaXRlcGFnZXMgY2FuIGRvCisJCSAqIGJsb2NrIGFsbG9jYXRpb24gIHdpdGggZGVsYWxsb2MuIFdlIG5lZWQgdG8gd3JpdGUKKwkJICogb25seSBhbGxvY2F0ZWQgYmxvY2tzIGhlcmUuCiAJCSAqLwotCQlpZiAoYnVmZmVyX2RpcnR5KGJoKSkgewotCQkJaWYgKHRlc3Rfc2V0X2J1ZmZlcl9sb2NrZWQoYmgpKSB7Ci0JCQkJQlVGRkVSX1RSQUNFKGJoLCAibmVlZHMgYmxvY2tpbmcgbG9jayIpOwotCQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJLyogV3JpdGUgb3V0IGFsbCBkYXRhIHRvIHByZXZlbnQgZGVhZGxvY2tzICovCi0JCQkJam91cm5hbF9kb19zdWJtaXRfZGF0YSh3YnVmLCBidWZzKTsKLQkJCQlidWZzID0gMDsKLQkJCQlsb2NrX2J1ZmZlcihiaCk7Ci0JCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQl9Ci0JCQlsb2NrZWQgPSAxOwotCQl9Ci0JCS8qIFdlIGhhdmUgdG8gZ2V0IGJoX3N0YXRlIGxvY2suIEFnYWluIG91dCBvZiBvcmRlciwgc2lnaC4gKi8KLQkJaWYgKCFpbnZlcnRlZF9sb2NrKGpvdXJuYWwsIGJoKSkgewotCQkJamJkX2xvY2tfYmhfc3RhdGUoYmgpOwotCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCX0KLQkJLyogU29tZW9uZSBhbHJlYWR5IGNsZWFuZWQgdXAgdGhlIGJ1ZmZlcj8gKi8KLQkJaWYgKCFidWZmZXJfamJkKGJoKQotCQkJfHwgamgtPmJfdHJhbnNhY3Rpb24gIT0gY29tbWl0X3RyYW5zYWN0aW9uCi0JCQl8fCBqaC0+Yl9qbGlzdCAhPSBCSl9TeW5jRGF0YSkgewotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlpZiAobG9ja2VkKQotCQkJCXVubG9ja19idWZmZXIoYmgpOwotCQkJQlVGRkVSX1RSQUNFKGJoLCAiYWxyZWFkeSBjbGVhbmVkIHVwIik7Ci0JCQlwdXRfYmgoYmgpOwotCQkJY29udGludWU7Ci0JCX0KLQkJaWYgKGxvY2tlZCAmJiB0ZXN0X2NsZWFyX2J1ZmZlcl9kaXJ0eShiaCkpIHsKLQkJCUJVRkZFUl9UUkFDRShiaCwgIm5lZWRzIHdyaXRlb3V0LCBhZGRpbmcgdG8gYXJyYXkiKTsKLQkJCXdidWZbYnVmcysrXSA9IGJoOwotCQkJX19qYmQyX2pvdXJuYWxfZmlsZV9idWZmZXIoamgsIGNvbW1pdF90cmFuc2FjdGlvbiwKLQkJCQkJCUJKX0xvY2tlZCk7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCWlmIChidWZzID09IGpvdXJuYWwtPmpfd2J1ZnNpemUpIHsKLQkJCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJCWpvdXJuYWxfZG9fc3VibWl0X2RhdGEod2J1ZiwgYnVmcyk7Ci0JCQkJYnVmcyA9IDA7Ci0JCQkJZ290byB3cml0ZV9vdXRfZGF0YTsKLQkJCX0KLQkJfSBlbHNlIGlmICghbG9ja2VkICYmIGJ1ZmZlcl9sb2NrZWQoYmgpKSB7Ci0JCQlfX2piZDJfam91cm5hbF9maWxlX2J1ZmZlcihqaCwgY29tbWl0X3RyYW5zYWN0aW9uLAotCQkJCQkJQkpfTG9ja2VkKTsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJcHV0X2JoKGJoKTsKLQkJfSBlbHNlIHsKLQkJCUJVRkZFUl9UUkFDRShiaCwgIndyaXRlb3V0IGNvbXBsZXRlOiB1bmZpbGUiKTsKLQkJCV9famJkMl9qb3VybmFsX3VuZmlsZV9idWZmZXIoamgpOwotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlpZiAobG9ja2VkKQotCQkJCXVubG9ja19idWZmZXIoYmgpOwotCQkJamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoYmgpOwotCQkJLyogT25jZSBmb3Igb3VyIHNhZmV0eSByZWZlcmVuY2UsIG9uY2UgZm9yCi0JCQkgKiBqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZCgpICovCi0JCQlwdXRfYmgoYmgpOwotCQkJcHV0X2JoKGJoKTsKLQkJfQorCQllcnIgPSBqb3VybmFsX3N1Ym1pdF9pbm9kZV9kYXRhX2J1ZmZlcnMobWFwcGluZyk7CisJCWlmICghcmV0KQorCQkJcmV0ID0gZXJyOworCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkJSl9BU1NFUlQoamlub2RlLT5pX3RyYW5zYWN0aW9uID09IGNvbW1pdF90cmFuc2FjdGlvbik7CisJCWppbm9kZS0+aV9mbGFncyAmPSB+SklfQ09NTUlUX1JVTk5JTkc7CisJCXdha2VfdXBfYml0KCZqaW5vZGUtPmlfZmxhZ3MsIF9fSklfQ09NTUlUX1JVTk5JTkcpOworCX0KKwlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCXJldHVybiByZXQ7Cit9CiAKLQkJaWYgKG5lZWRfcmVzY2hlZCgpIHx8IHNwaW5fbmVlZGJyZWFrKCZqb3VybmFsLT5qX2xpc3RfbG9jaykpIHsKLQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQlnb3RvIHdyaXRlX291dF9kYXRhOworLyoKKyAqIFdhaXQgZm9yIGRhdGEgc3VibWl0dGVkIGZvciB3cml0ZW91dCwgcmVmaWxlIGlub2RlcyB0byBwcm9wZXIKKyAqIHRyYW5zYWN0aW9uIGlmIG5lZWRlZC4KKyAqCisgKi8KK3N0YXRpYyBpbnQgam91cm5hbF9maW5pc2hfaW5vZGVfZGF0YV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5hbCwKKwkJdHJhbnNhY3Rpb25fdCAqY29tbWl0X3RyYW5zYWN0aW9uKQoreworCXN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUsICpuZXh0X2k7CisJaW50IGVyciwgcmV0ID0gMDsKKworCS8qIEZvciBsb2NraW5nLCBzZWUgdGhlIGNvbW1lbnQgaW4gam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKCkgKi8KKwlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGppbm9kZSwgJmNvbW1pdF90cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0LCBpX2xpc3QpIHsKKwkJamlub2RlLT5pX2ZsYWdzIHw9IEpJX0NPTU1JVF9SVU5OSU5HOworCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQllcnIgPSBmaWxlbWFwX2ZkYXRhd2FpdChqaW5vZGUtPmlfdmZzX2lub2RlLT5pX21hcHBpbmcpOworCQlpZiAoIXJldCkKKwkJCXJldCA9IGVycjsKKwkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCWppbm9kZS0+aV9mbGFncyAmPSB+SklfQ09NTUlUX1JVTk5JTkc7CisJCXdha2VfdXBfYml0KCZqaW5vZGUtPmlfZmxhZ3MsIF9fSklfQ09NTUlUX1JVTk5JTkcpOworCX0KKworCS8qIE5vdyByZWZpbGUgaW5vZGUgdG8gcHJvcGVyIGxpc3RzICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGppbm9kZSwgbmV4dF9pLAorCQkJCSAmY29tbWl0X3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QsIGlfbGlzdCkgeworCQlsaXN0X2RlbCgmamlub2RlLT5pX2xpc3QpOworCQlpZiAoamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24pIHsKKwkJCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uOworCQkJamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPSBOVUxMOworCQkJbGlzdF9hZGQoJmppbm9kZS0+aV9saXN0LAorCQkJCSZqaW5vZGUtPmlfdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCk7CisJCX0gZWxzZSB7CisJCQlqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPSBOVUxMOwogCQl9CiAJfQogCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0Jam91cm5hbF9kb19zdWJtaXRfZGF0YSh3YnVmLCBidWZzKTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBfX3UzMiBqYmQyX2NoZWNrc3VtX2RhdGEoX191MzIgY3JjMzJfc3VtLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQpAQCAtNTIzLDIxICs0NTksNyBAQAogCSAqIE5vdyBzdGFydCBmbHVzaGluZyB0aGluZ3MgdG8gZGlzaywgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyCiAJICogb24gdGhlIHRyYW5zYWN0aW9uIGxpc3RzLiAgRGF0YSBibG9ja3MgZ28gZmlyc3QuCiAJICovCi0JZXJyID0gMDsKLQlqb3VybmFsX3N1Ym1pdF9kYXRhX2J1ZmZlcnMoam91cm5hbCwgY29tbWl0X3RyYW5zYWN0aW9uKTsKLQotCS8qCi0JICogV2FpdCBmb3IgYWxsIHByZXZpb3VzbHkgc3VibWl0dGVkIElPIHRvIGNvbXBsZXRlIGlmIGNvbW1pdAotCSAqIHJlY29yZCBpcyB0byBiZSB3cml0dGVuIHN5bmNocm9ub3VzbHkuCi0JICovCi0Jc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JaWYgKCFKQkQyX0hBU19JTkNPTVBBVF9GRUFUVVJFKGpvdXJuYWwsCi0JCUpCRDJfRkVBVFVSRV9JTkNPTVBBVF9BU1lOQ19DT01NSVQpKQotCQllcnIgPSBqb3VybmFsX3dhaXRfb25fbG9ja2VkX2xpc3Qoam91cm5hbCwKLQkJCQkJCWNvbW1pdF90cmFuc2FjdGlvbik7Ci0KLQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCisJZXJyID0gam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKGpvdXJuYWwsIGNvbW1pdF90cmFuc2FjdGlvbik7CiAJaWYgKGVycikKIAkJamJkMl9qb3VybmFsX2Fib3J0KGpvdXJuYWwsIGVycik7CiAKQEAgLTU0NiwxNiArNDY4LDYgQEAKIAlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDJcbiIpOwogCiAJLyoKLQkgKiBJZiB3ZSBmb3VuZCBhbnkgZGlydHkgb3IgbG9ja2VkIGJ1ZmZlcnMsIHRoZW4gd2Ugc2hvdWxkIGhhdmUKLQkgKiBsb29wZWQgYmFjayB1cCB0byB0aGUgd3JpdGVfb3V0X2RhdGEgbGFiZWwuICBJZiB0aGVyZSB3ZXJlbid0Ci0JICogYW55IHRoZW4gam91cm5hbF9jbGVhbl9kYXRhX2xpc3Qgc2hvdWxkIGhhdmUgd2lwZWQgdGhlIGxpc3QKLQkgKiBjbGVhbiBieSBub3csIHNvIGNoZWNrIHRoYXQgaXQgaXMgaW4gZmFjdCBlbXB0eS4KLQkgKi8KLQlKX0FTU0VSVCAoY29tbWl0X3RyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3QgPT0gTlVMTCk7Ci0KLQlqYmRfZGVidWcgKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSAzXG4iKTsKLQotCS8qCiAJICogV2F5IHRvIGdvOiB3ZSBoYXZlIG5vdyB3cml0dGVuIG91dCBhbGwgb2YgdGhlIGRhdGEgZm9yIGEKIAkgKiB0cmFuc2FjdGlvbiEgIE5vdyBjb21lcyB0aGUgdHJpY2t5IHBhcnQ6IHdlIG5lZWQgdG8gd3JpdGUgb3V0CiAJICogbWV0YWRhdGEuICBMb29wIG92ZXIgdGhlIHRyYW5zYWN0aW9uJ3MgZW50aXJlIGJ1ZmZlciBsaXN0OgpAQCAtNTczLDYgKzQ4NSw3IEBACiAJSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMgPD0KIAkJIGNvbW1pdF90cmFuc2FjdGlvbi0+dF9vdXRzdGFuZGluZ19jcmVkaXRzKTsKIAorCWVyciA9IDA7CiAJZGVzY3JpcHRvciA9IE5VTEw7CiAJYnVmcyA9IDA7CiAJd2hpbGUgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9idWZmZXJzKSB7CkBAIC03NDcsMTUgKzY2MCwxOSBAQAogCQkJCQkJICZjYmgsIGNyYzMyX3N1bSk7CiAJCWlmIChlcnIpCiAJCQlfX2piZDJfam91cm5hbF9hYm9ydF9oYXJkKGpvdXJuYWwpOwotCi0JCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQllcnIgPSBqb3VybmFsX3dhaXRfb25fbG9ja2VkX2xpc3Qoam91cm5hbCwKLQkJCQkJCWNvbW1pdF90cmFuc2FjdGlvbik7Ci0JCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCWlmIChlcnIpCi0JCQlfX2piZDJfam91cm5hbF9hYm9ydF9oYXJkKGpvdXJuYWwpOwogCX0KIAorCS8qCisJICogVGhpcyBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gd2FpdCBmb3IgZGF0YSBidWZmZXJzIGJvdGggZm9yIEFTWU5DCisJICogYW5kICFBU1lOQyBjb21taXQuIElmIGNvbW1pdCBpcyBBU1lOQywgd2UgbmVlZCB0byB3YWl0IG9ubHkgYWZ0ZXIKKwkgKiB0aGUgY29tbWl0IGJsb2NrIHdlbnQgdG8gZGlzayAod2hpY2ggaGFwcGVucyBhYm92ZSkuIElmIGNvbW1pdCBpcworCSAqIFNZTkMsIHdlIG5lZWQgdG8gd2FpdCBmb3IgZGF0YSBidWZmZXJzIGJlZm9yZSB3ZSBzdGFydCB3cml0aW5nCisJICogY29tbWl0IGJsb2NrLCB3aGljaCBoYXBwZW5zIGJlbG93IGluIHN1Y2ggc2V0dGluZy4KKwkgKi8KKwllcnIgPSBqb3VybmFsX2ZpbmlzaF9pbm9kZV9kYXRhX2J1ZmZlcnMoam91cm5hbCwgY29tbWl0X3RyYW5zYWN0aW9uKTsKKwlpZiAoZXJyKQorCQlqYmQyX2pvdXJuYWxfYWJvcnQoam91cm5hbCwgZXJyKTsKKwogCS8qIExvIGFuZCBiZWhvbGQ6IHdlIGhhdmUganVzdCBtYW5hZ2VkIHRvIHNlbmQgYSB0cmFuc2FjdGlvbiB0bwogICAgICAgICAgICB0aGUgbG9nLiAgQmVmb3JlIHdlIGNhbiBjb21taXQgaXQsIHdhaXQgZm9yIHRoZSBJTyBzbyBmYXIgdG8KICAgICAgICAgICAgY29tcGxldGUuICBDb250cm9sIGJ1ZmZlcnMgYmVpbmcgd3JpdHRlbiBhcmUgb24gdGhlCkBAIC03NjcsNyArNjg0LDcgQEAKIAkgICBzbyB3ZSBpbmN1ciBsZXNzIHNjaGVkdWxpbmcgbG9hZC4KIAkqLwogCi0JamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA0XG4iKTsKKwlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDNcbiIpOwogCiAJLyoKIAkgKiBha3BtOiB0aGVzZSBhcmUgQkpfSU8sIGFuZCBqX2xpc3RfbG9jayBpcyBub3QgbmVlZGVkLgpAQCAtODI2LDcgKzc0Myw3IEBACiAKIAlKX0FTU0VSVCAoY29tbWl0X3RyYW5zYWN0aW9uLT50X3NoYWRvd19saXN0ID09IE5VTEwpOwogCi0JamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA1XG4iKTsKKwlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDRcbiIpOwogCiAJLyogSGVyZSB3ZSB3YWl0IGZvciB0aGUgcmV2b2tlIHJlY29yZCBhbmQgZGVzY3JpcHRvciByZWNvcmQgYnVmZmVycyAqLwogIHdhaXRfZm9yX2N0bGJ1ZjoKQEAgLTg1Myw3ICs3NzAsNyBAQAogCQkvKiBBS1BNOiBiZm9yZ2V0IGhlcmUgKi8KIAl9CiAKLQlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDZcbiIpOworCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNVxuIik7CiAKIAlpZiAoIUpCRDJfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoam91cm5hbCwKIAkJSkJEMl9GRUFUVVJFX0lOQ09NUEFUX0FTWU5DX0NPTU1JVCkpIHsKQEAgLTg3Myw5ICs3OTAsOSBAQAogICAgICAgICAgICB0cmFuc2FjdGlvbiBjYW4gYmUgcmVtb3ZlZCBmcm9tIGFueSBjaGVja3BvaW50IGxpc3QgaXQgd2FzIG9uCiAgICAgICAgICAgIGJlZm9yZS4gKi8KIAotCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgN1xuIik7CisJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA2XG4iKTsKIAotCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0ID09IE5VTEwpOworCUpfQVNTRVJUKGxpc3RfZW1wdHkoJmNvbW1pdF90cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0KSk7CiAJSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X2J1ZmZlcnMgPT0gTlVMTCk7CiAJSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X2NoZWNrcG9pbnRfbGlzdCA9PSBOVUxMKTsKIAlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfaW9idWZfbGlzdCA9PSBOVUxMKTsKQEAgLTk5Niw3ICs5MTMsNyBAQAogCiAJLyogRG9uZSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24hICovCiAKLQlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDhcbiIpOworCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgN1xuIik7CiAKIAlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfc3RhdGUgPT0gVF9DT01NSVQpOwogCmRpZmYgLS1naXQgYS9mcy9qYmQyL2pvdXJuYWwuYyBiL2ZzL2piZDIvam91cm5hbC5jCmluZGV4IDJlMjQ1NjcuLmIyNmM2ZDkgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvam91cm5hbC5jCisrKyBiL2ZzL2piZDIvam91cm5hbC5jCkBAIC01MCw3ICs1MCw2IEBACiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2dldF9jcmVhdGVfYWNjZXNzKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2dldF91bmRvX2FjY2Vzcyk7Ci1FWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2RpcnR5X21ldGFkYXRhKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX3JlbGVhc2VfYnVmZmVyKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ZvcmdldCk7CkBAIC04Miw2ICs4MSwxMCBAQAogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfaW52YWxpZGF0ZXBhZ2UpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycyk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9mb3JjZV9jb21taXQpOworRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZmlsZV9pbm9kZSk7CitFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9pbml0X2piZF9pbm9kZSk7CitFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9pbm9kZSk7CitFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKTsKIAogc3RhdGljIGludCBqb3VybmFsX2NvbnZlcnRfc3VwZXJibG9ja192MShqb3VybmFsX3QgKiwgam91cm5hbF9zdXBlcmJsb2NrX3QgKik7CiBzdGF0aWMgdm9pZCBfX2pvdXJuYWxfYWJvcnRfc29mdCAoam91cm5hbF90ICpqb3VybmFsLCBpbnQgZXJybm8pOwpAQCAtMjE5NSw2ICsyMTk4LDU0IEBACiB9CiAKIC8qCisgKiBJbml0aWFsaXplIGpiZCBpbm9kZSBoZWFkCisgKi8KK3ZvaWQgamJkMl9qb3VybmFsX2luaXRfamJkX2lub2RlKHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJamlub2RlLT5pX3RyYW5zYWN0aW9uID0gTlVMTDsKKwlqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9IE5VTEw7CisJamlub2RlLT5pX3Zmc19pbm9kZSA9IGlub2RlOworCWppbm9kZS0+aV9mbGFncyA9IDA7CisJSU5JVF9MSVNUX0hFQUQoJmppbm9kZS0+aV9saXN0KTsKK30KKworLyoKKyAqIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgcmVtb3ZpbmcgaW5vZGUgZnJvbSBtZW1vcnkgKGkuZS4sCisgKiBjbGVhcl9pbm9kZSgpIGlzIGEgZmluZSBwbGFjZSB0byBiZSBjYWxsZWQgZnJvbSkuIEl0IHJlbW92ZXMgaW5vZGUgZnJvbQorICogdHJhbnNhY3Rpb24ncyBsaXN0cy4KKyAqLwordm9pZCBqYmQyX2pvdXJuYWxfcmVsZWFzZV9qYmRfaW5vZGUoam91cm5hbF90ICpqb3VybmFsLAorCQkJCSAgICBzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlKQoreworCWludCB3cml0ZW91dCA9IDA7CisKKwlpZiAoIWpvdXJuYWwpCisJCXJldHVybjsKK3Jlc3RhcnQ6CisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJLyogSXMgY29tbWl0IHdyaXRpbmcgb3V0IGlub2RlIC0gd2UgaGF2ZSB0byB3YWl0ICovCisJaWYgKGppbm9kZS0+aV9mbGFncyAmIEpJX0NPTU1JVF9SVU5OSU5HKSB7CisJCXdhaXRfcXVldWVfaGVhZF90ICp3cTsKKwkJREVGSU5FX1dBSVRfQklUKHdhaXQsICZqaW5vZGUtPmlfZmxhZ3MsIF9fSklfQ09NTUlUX1JVTk5JTkcpOworCQl3cSA9IGJpdF93YWl0cXVldWUoJmppbm9kZS0+aV9mbGFncywgX19KSV9DT01NSVRfUlVOTklORyk7CisJCXByZXBhcmVfdG9fd2FpdCh3cSwgJndhaXQud2FpdCwgVEFTS19VTklOVEVSUlVQVElCTEUpOworCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQlzY2hlZHVsZSgpOworCQlmaW5pc2hfd2FpdCh3cSwgJndhaXQud2FpdCk7CisJCWdvdG8gcmVzdGFydDsKKwl9CisKKwkvKiBEbyB3ZSBuZWVkIHRvIHdhaXQgZm9yIGRhdGEgd3JpdGViYWNrPyAqLworCWlmIChqb3VybmFsLT5qX2NvbW1pdHRpbmdfdHJhbnNhY3Rpb24gPT0gamlub2RlLT5pX3RyYW5zYWN0aW9uKQorCQl3cml0ZW91dCA9IDE7CisJaWYgKGppbm9kZS0+aV90cmFuc2FjdGlvbikgeworCQlsaXN0X2RlbCgmamlub2RlLT5pX2xpc3QpOworCQlqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPSBOVUxMOworCX0KKwlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworfQorCisvKgogICogZGVidWdmcyB0dW5hYmxlcwogICovCiAjaWZkZWYgQ09ORklHX0pCRDJfREVCVUcKZGlmZiAtLWdpdCBhL2ZzL2piZDIvcmVjb3ZlcnkuYyBiL2ZzL2piZDIvcmVjb3ZlcnkuYwppbmRleCA1ZDA0MDVhLi4wNThmNTBmIDEwMDY0NAotLS0gYS9mcy9qYmQyL3JlY292ZXJ5LmMKKysrIGIvZnMvamJkMi9yZWNvdmVyeS5jCkBAIC0zNDQsNiArMzQ0LDcgQEAKIAkJCSpjcmMzMl9zdW0gPSBjcmMzMl9iZSgqY3JjMzJfc3VtLCAodm9pZCAqKW9iaC0+Yl9kYXRhLAogCQkJCSAgICAgb2JoLT5iX3NpemUpOwogCQl9CisJCXB1dF9iaChvYmgpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTYxMCw5ICs2MTEsOCBAQAogCQkJCWNoa3N1bV9lcnIgPSBjaGtzdW1fc2VlbiA9IDA7CiAKIAkJCQlpZiAoaW5mby0+ZW5kX3RyYW5zYWN0aW9uKSB7Ci0JCQkJCXByaW50ayhLRVJOX0VSUiAiSkJEOiBUcmFuc2FjdGlvbiAldSAiCi0JCQkJCQkiZm91bmQgdG8gYmUgY29ycnVwdC5cbiIsCi0JCQkJCQluZXh0X2NvbW1pdF9JRCAtIDEpOworCQkJCQlqb3VybmFsLT5qX2ZhaWxlZF9jb21taXQgPQorCQkJCQkJaW5mby0+ZW5kX3RyYW5zYWN0aW9uOwogCQkJCQlicmVsc2UoYmgpOwogCQkJCQlicmVhazsKIAkJCQl9CkBAIC02NDMsMTAgKzY0Myw4IEBACiAKIAkJCQkJaWYgKCFKQkQyX0hBU19JTkNPTVBBVF9GRUFUVVJFKGpvdXJuYWwsCiAJCQkJCSAgIEpCRDJfRkVBVFVSRV9JTkNPTVBBVF9BU1lOQ19DT01NSVQpKXsKLQkJCQkJCXByaW50ayhLRVJOX0VSUgotCQkJCQkJICAgICAgICJKQkQ6IFRyYW5zYWN0aW9uICV1ICIKLQkJCQkJCSAgICAgICAiZm91bmQgdG8gYmUgY29ycnVwdC5cbiIsCi0JCQkJCQkgICAgICAgbmV4dF9jb21taXRfSUQpOworCQkJCQkJam91cm5hbC0+al9mYWlsZWRfY29tbWl0ID0KKwkJCQkJCQluZXh0X2NvbW1pdF9JRDsKIAkJCQkJCWJyZWxzZShiaCk7CiAJCQkJCQlicmVhazsKIAkJCQkJfQpkaWZmIC0tZ2l0IGEvZnMvamJkMi90cmFuc2FjdGlvbi5jIGIvZnMvamJkMi90cmFuc2FjdGlvbi5jCmluZGV4IGQ2ZTAwNmUuLjRmN2NhZGIgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvdHJhbnNhY3Rpb24uYworKysgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMKQEAgLTQxLDcgKzQxLDYgQEAKICAqCW5ldyB0cmFuc2FjdGlvbglhbmQgd2UgY2FuJ3QgYmxvY2sgd2l0aG91dCBwcm90ZWN0aW5nIGFnYWluc3Qgb3RoZXIKICAqCXByb2Nlc3NlcyB0cnlpbmcgdG8gdG91Y2ggdGhlIGpvdXJuYWwgd2hpbGUgaXQgaXMgaW4gdHJhbnNpdGlvbi4KICAqCi0gKiBDYWxsZWQgdW5kZXIgal9zdGF0ZV9sb2NrCiAgKi8KIAogc3RhdGljIHRyYW5zYWN0aW9uX3QgKgpAQCAtNTIsNiArNTEsNyBAQAogCXRyYW5zYWN0aW9uLT50X3RpZCA9IGpvdXJuYWwtPmpfdHJhbnNhY3Rpb25fc2VxdWVuY2UrKzsKIAl0cmFuc2FjdGlvbi0+dF9leHBpcmVzID0gamlmZmllcyArIGpvdXJuYWwtPmpfY29tbWl0X2ludGVydmFsOwogCXNwaW5fbG9ja19pbml0KCZ0cmFuc2FjdGlvbi0+dF9oYW5kbGVfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnRyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QpOwogCiAJLyogU2V0IHVwIHRoZSBjb21taXQgdGltZXIgZm9yIHRoZSBuZXcgdHJhbnNhY3Rpb24uICovCiAJam91cm5hbC0+al9jb21taXRfdGltZXIuZXhwaXJlcyA9IHJvdW5kX2ppZmZpZXModHJhbnNhY3Rpb24tPnRfZXhwaXJlcyk7CkBAIC05NDMsMTgzICs5NDMsNiBAQAogfQogCiAvKioKLSAqIGludCBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YSgpIC0gIG1hcmsgYSBidWZmZXIgYXMgY29udGFpbmluZyBkaXJ0eSBkYXRhIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZHMgdG8gYmUgZmx1c2hlZCBiZWZvcmUgd2UgY2FuIGNvbW1pdCB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50IHRyYW5zYWN0aW9uLgotICogQGhhbmRsZTogdHJhbnNhY3Rpb24KLSAqIEBiaDogYnVmZmVyaGVhZCB0byBtYXJrCi0gKgotICogVGhlIGJ1ZmZlciBpcyBwbGFjZWQgb24gdGhlIHRyYW5zYWN0aW9uJ3MgZGF0YSBsaXN0IGFuZCBpcyBtYXJrZWQgYXMKLSAqIGJlbG9uZ2luZyB0byB0aGUgdHJhbnNhY3Rpb24uCi0gKgotICogUmV0dXJucyBlcnJvciBudW1iZXIgb3IgMCBvbiBzdWNjZXNzLgotICoKLSAqIGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKCkgY2FuIGJlIGNhbGxlZCB2aWEgcGFnZV9sYXVuZGVyLT5leHQzX3dyaXRlcGFnZQotICogYnkga3N3YXBkLgotICovCi1pbnQgamJkMl9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKLXsKLQlqb3VybmFsX3QgKmpvdXJuYWwgPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb24tPnRfam91cm5hbDsKLQlpbnQgbmVlZF9icmVsc2UgPSAwOwotCXN0cnVjdCBqb3VybmFsX2hlYWQgKmpoOwotCi0JaWYgKGlzX2hhbmRsZV9hYm9ydGVkKGhhbmRsZSkpCi0JCXJldHVybiAwOwotCi0JamggPSBqYmQyX2pvdXJuYWxfYWRkX2pvdXJuYWxfaGVhZChiaCk7Ci0JSkJVRkZFUl9UUkFDRShqaCwgImVudHJ5Iik7Ci0KLQkvKgotCSAqIFRoZSBidWZmZXIgY291bGQgKmFscmVhZHkqIGJlIGRpcnR5LiAgV3JpdGVvdXQgY2FuIHN0YXJ0Ci0JICogYXQgYW55IHRpbWUuCi0JICovCi0JamJkX2RlYnVnKDQsICJqaDogJXAsIHRpZDolZFxuIiwgamgsIGhhbmRsZS0+aF90cmFuc2FjdGlvbi0+dF90aWQpOwotCi0JLyoKLQkgKiBXaGF0IGlmIHRoZSBidWZmZXIgaXMgYWxyZWFkeSBwYXJ0IG9mIGEgcnVubmluZyB0cmFuc2FjdGlvbj8KLQkgKgotCSAqIFRoZXJlIGFyZSB0d28gY2FzZXM6Ci0JICogMSkgSXQgaXMgcGFydCBvZiB0aGUgY3VycmVudCBydW5uaW5nIHRyYW5zYWN0aW9uLiAgUmVmaWxlIGl0LAotCSAqICAgIGp1c3QgaW4gY2FzZSB3ZSBoYXZlIGFsbG9jYXRlZCBpdCBhcyBtZXRhZGF0YSwgZGVhbGxvY2F0ZWQKLQkgKiAgICBpdCwgdGhlbiByZWFsbG9jYXRlZCBpdCBhcyBkYXRhLgotCSAqIDIpIEl0IGlzIHBhcnQgb2YgdGhlIHByZXZpb3VzLCBzdGlsbC1jb21taXR0aW5nIHRyYW5zYWN0aW9uLgotCSAqICAgIElmIGFsbCB3ZSB3YW50IHRvIGRvIGlzIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBidWZmZXIgd2lsbCBiZQotCSAqICAgIHdyaXR0ZW4gdG8gZGlzayBiZWZvcmUgdGhpcyBuZXcgdHJhbnNhY3Rpb24gY29tbWl0cywgdGhlbgotCSAqICAgIGJlaW5nIHN1cmUgdGhhdCB0aGUgKnByZXZpb3VzKiB0cmFuc2FjdGlvbiBoYXMgdGhpcyBzYW1lCi0JICogICAgcHJvcGVydHkgaXMgc3VmZmljaWVudCBmb3IgdXMhICBKdXN0IGxlYXZlIGl0IG9uIGl0cyBvbGQKLQkgKiAgICB0cmFuc2FjdGlvbi4KLQkgKgotCSAqIEluIGNhc2UgKDIpLCB0aGUgYnVmZmVyIG11c3Qgbm90IGFscmVhZHkgZXhpc3QgYXMgbWV0YWRhdGEKLQkgKiAtLS0gdGhhdCB3b3VsZCB2aW9sYXRlIHdyaXRlIG9yZGVyaW5nIChhIHRyYW5zYWN0aW9uIGlzIGZyZWUKLQkgKiB0byB3cml0ZSBpdHMgZGF0YSBhdCBhbnkgcG9pbnQsIGV2ZW4gYmVmb3JlIHRoZSBwcmV2aW91cwotCSAqIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24gaGFzIGNvbW1pdHRlZCkuICBUaGUgY2FsbGVyIG11c3QKLQkgKiBuZXZlciwgZXZlciBhbGxvdyB0aGlzIHRvIGhhcHBlbjogdGhlcmUncyBub3RoaW5nIHdlIGNhbiBkbwotCSAqIGFib3V0IGl0IGluIHRoaXMgbGF5ZXIuCi0JICovCi0JamJkX2xvY2tfYmhfc3RhdGUoYmgpOwotCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCi0JLyogTm93IHRoYXQgd2UgaGF2ZSBiaF9zdGF0ZSBsb2NrZWQsIGFyZSB3ZSByZWFsbHkgc3RpbGwgbWFwcGVkPyAqLwotCWlmICghYnVmZmVyX21hcHBlZChiaCkpIHsKLQkJSkJVRkZFUl9UUkFDRShqaCwgInVubWFwcGVkIGJ1ZmZlciwgYmFpbGluZyBvdXQiKTsKLQkJZ290byBub19qb3VybmFsOwotCX0KLQotCWlmIChqaC0+Yl90cmFuc2FjdGlvbikgewotCQlKQlVGRkVSX1RSQUNFKGpoLCAiaGFzIHRyYW5zYWN0aW9uIik7Ci0JCWlmIChqaC0+Yl90cmFuc2FjdGlvbiAhPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb24pIHsKLQkJCUpCVUZGRVJfVFJBQ0UoamgsICJiZWxvbmdzIHRvIG9sZGVyIHRyYW5zYWN0aW9uIik7Ci0JCQlKX0FTU0VSVF9KSChqaCwgamgtPmJfdHJhbnNhY3Rpb24gPT0KLQkJCQkJam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uKTsKLQotCQkJLyogQEBAIElTIFRISVMgVFJVRSAgPyAqLwotCQkJLyoKLQkJCSAqIE5vdCBhbnkgbW9yZS4gIFNjZW5hcmlvOiBzb21lb25lIGRvZXMgYSB3cml0ZSgpCi0JCQkgKiBpbiBkYXRhPWpvdXJuYWwgbW9kZS4gIFRoZSBidWZmZXIncyB0cmFuc2FjdGlvbiBoYXMKLQkJCSAqIG1vdmVkIGludG8gY29tbWl0LiAgVGhlbiBzb21lb25lIGRvZXMgYW5vdGhlcgotCQkJICogd3JpdGUoKSB0byB0aGUgZmlsZS4gIFdlIGRvIHRoZSBmcm96ZW4gZGF0YSBjb3B5b3V0Ci0JCQkgKiBhbmQgc2V0IGJfbmV4dF90cmFuc2FjdGlvbiB0byBwb2ludCB0byBqX3J1bm5pbmdfdC4KLQkJCSAqIEFuZCB3aGlsZSB3ZSdyZSBpbiB0aGF0IHN0YXRlLCBzb21lb25lIGRvZXMgYQotCQkJICogd3JpdGVwYWdlKCkgaW4gYW4gYXR0ZW1wdCB0byBwYWdlb3V0IHRoZSBzYW1lIGFyZWEKLQkJCSAqIG9mIHRoZSBmaWxlIHZpYSBhIHNoYXJlZCBtYXBwaW5nLiAgQXQgcHJlc2VudCB0aGF0Ci0JCQkgKiBjYWxscyBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YSgpLCBhbmQgd2UgZ2V0IHJpZ2h0IGhlcmUuCi0JCQkgKiBJdCBtYXkgYmUgdG9vIGxhdGUgdG8gam91cm5hbCB0aGUgZGF0YS4gIFNpbXBseQotCQkJICogZmFsbGluZyB0aHJvdWdoIHRvIHRoZSBuZXh0IHRlc3Qgd2lsbCBzdWZmaWNlOiB0aGUKLQkJCSAqIGRhdGEgd2lsbCBiZSBkaXJ0eSBhbmQgd2lsIGJlIGNoZWNrcG9pbnRlZC4gIFRoZQotCQkJICogb3JkZXJpbmcgY29tbWVudHMgaW4gdGhlIG5leHQgY29tbWVudCBibG9jayBzdGlsbAotCQkJICogYXBwbHkuCi0JCQkgKi8KLQkJCS8vSl9BU1NFUlRfSkgoamgsIGpoLT5iX25leHRfdHJhbnNhY3Rpb24gPT0gTlVMTCk7Ci0KLQkJCS8qCi0JCQkgKiBJZiB3ZSdyZSBqb3VybmFsbGluZyBkYXRhLCBhbmQgdGhpcyBidWZmZXIgd2FzCi0JCQkgKiBzdWJqZWN0IHRvIGEgd3JpdGUoKSwgaXQgY291bGQgYmUgbWV0YWRhdGEsIGZvcmdldAotCQkJICogb3Igc2hhZG93IGFnYWluc3QgdGhlIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uICBOb3csCi0JCQkgKiBzb21lb25lIGhhcyBkaXJ0aWVkIHRoZSBzYW1lIGRhcm4gcGFnZSB2aWEgYSBtYXBwaW5nCi0JCQkgKiBhbmQgaXQgaXMgYmVpbmcgd3JpdGVwYWdlKCknZC4KLQkJCSAqIFdlICpjb3VsZCoganVzdCBzdGVhbCB0aGUgcGFnZSBmcm9tIGNvbW1pdCwgd2l0aCBzb21lCi0JCQkgKiBmYW5jeSBsb2NraW5nIHRoZXJlLiAgSW5zdGVhZCwgd2UganVzdCBza2lwIGl0IC0KLQkJCSAqIGRvbid0IHRpZSB0aGUgcGFnZSdzIGJ1ZmZlcnMgdG8gdGhlIG5ldyB0cmFuc2FjdGlvbgotCQkJICogYXQgYWxsLgotCQkJICogSW1wbGljYXRpb246IGlmIHdlIGNyYXNoIGJlZm9yZSB0aGUgd3JpdGVwYWdlKCkgZGF0YQotCQkJICogaXMgd3JpdHRlbiBpbnRvIHRoZSBmaWxlc3lzdGVtLCByZWNvdmVyeSB3aWxsIHJlcGxheQotCQkJICogdGhlIHdyaXRlKCkgZGF0YS4KLQkJCSAqLwotCQkJaWYgKGpoLT5iX2psaXN0ICE9IEJKX05vbmUgJiYKLQkJCQkJamgtPmJfamxpc3QgIT0gQkpfU3luY0RhdGEgJiYKLQkJCQkJamgtPmJfamxpc3QgIT0gQkpfTG9ja2VkKSB7Ci0JCQkJSkJVRkZFUl9UUkFDRShqaCwgIk5vdCBzdGVhbGluZyIpOwotCQkJCWdvdG8gbm9fam91cm5hbDsKLQkJCX0KLQotCQkJLyoKLQkJCSAqIFRoaXMgYnVmZmVyIG1heSBiZSB1bmRlcmdvaW5nIHdyaXRlb3V0IGluIGNvbW1pdC4gIFdlCi0JCQkgKiBjYW4ndCByZXR1cm4gZnJvbSBoZXJlIGFuZCBsZXQgdGhlIGNhbGxlciBkaXJ0eSBpdAotCQkJICogYWdhaW4gYmVjYXVzZSB0aGF0IGNhbiBjYXVzZSB0aGUgd3JpdGUtb3V0IGxvb3AgaW4KLQkJCSAqIGNvbW1pdCB0byBuZXZlciB0ZXJtaW5hdGUuCi0JCQkgKi8KLQkJCWlmIChidWZmZXJfZGlydHkoYmgpKSB7Ci0JCQkJZ2V0X2JoKGJoKTsKLQkJCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJCW5lZWRfYnJlbHNlID0gMTsKLQkJCQlzeW5jX2RpcnR5X2J1ZmZlcihiaCk7Ci0JCQkJamJkX2xvY2tfYmhfc3RhdGUoYmgpOwotCQkJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJCS8qIFNpbmNlIHdlIGRyb3BwZWQgdGhlIGxvY2suLi4gKi8KLQkJCQlpZiAoIWJ1ZmZlcl9tYXBwZWQoYmgpKSB7Ci0JCQkJCUpCVUZGRVJfVFJBQ0UoamgsICJidWZmZXIgZ290IHVubWFwcGVkIik7Ci0JCQkJCWdvdG8gbm9fam91cm5hbDsKLQkJCQl9Ci0JCQkJLyogVGhlIGJ1ZmZlciBtYXkgYmVjb21lIGxvY2tlZCBhZ2FpbiBhdCBhbnkKLQkJCQkgICB0aW1lIGlmIGl0IGlzIHJlZGlydGllZCAqLwotCQkJfQotCi0JCQkvKiBqb3VybmFsX2NsZWFuX2RhdGFfbGlzdCgpIG1heSBoYXZlIGdvdCB0aGVyZSBmaXJzdCAqLwotCQkJaWYgKGpoLT5iX3RyYW5zYWN0aW9uICE9IE5VTEwpIHsKLQkJCQlKQlVGRkVSX1RSQUNFKGpoLCAidW5maWxlIGZyb20gY29tbWl0Iik7Ci0JCQkJX19qYmQyX2pvdXJuYWxfdGVtcF91bmxpbmtfYnVmZmVyKGpoKTsKLQkJCQkvKiBJdCBzdGlsbCBwb2ludHMgdG8gdGhlIGNvbW1pdHRpbmcKLQkJCQkgKiB0cmFuc2FjdGlvbjsgbW92ZSBpdCB0byB0aGlzIG9uZSBzbwotCQkJCSAqIHRoYXQgdGhlIHJlZmlsZSBhc3NlcnQgY2hlY2tzIGFyZQotCQkJCSAqIGhhcHB5LiAqLwotCQkJCWpoLT5iX3RyYW5zYWN0aW9uID0gaGFuZGxlLT5oX3RyYW5zYWN0aW9uOwotCQkJfQotCQkJLyogVGhlIGJ1ZmZlciB3aWxsIGJlIHJlZmlsZWQgYmVsb3cgKi8KLQotCQl9Ci0JCS8qCi0JCSAqIFNwZWNpYWwgY2FzZSAtLS0gdGhlIGJ1ZmZlciBtaWdodCBhY3R1YWxseSBoYXZlIGJlZW4KLQkJICogYWxsb2NhdGVkIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGRlYWxsb2NhdGVkIGluIHRoZSBwcmV2aW91cywKLQkJICogY29tbWl0dGluZyB0cmFuc2FjdGlvbiwgc28gbWlnaHQgc3RpbGwgYmUgbGVmdCBvbiB0aGF0Ci0JCSAqIHRyYW5zYWN0aW9uJ3MgbWV0YWRhdGEgbGlzdHMuCi0JCSAqLwotCQlpZiAoamgtPmJfamxpc3QgIT0gQkpfU3luY0RhdGEgJiYgamgtPmJfamxpc3QgIT0gQkpfTG9ja2VkKSB7Ci0JCQlKQlVGRkVSX1RSQUNFKGpoLCAibm90IG9uIGNvcnJlY3QgZGF0YSBsaXN0OiB1bmZpbGUiKTsKLQkJCUpfQVNTRVJUX0pIKGpoLCBqaC0+Yl9qbGlzdCAhPSBCSl9TaGFkb3cpOwotCQkJX19qYmQyX2pvdXJuYWxfdGVtcF91bmxpbmtfYnVmZmVyKGpoKTsKLQkJCWpoLT5iX3RyYW5zYWN0aW9uID0gaGFuZGxlLT5oX3RyYW5zYWN0aW9uOwotCQkJSkJVRkZFUl9UUkFDRShqaCwgImZpbGUgYXMgZGF0YSIpOwotCQkJX19qYmQyX2pvdXJuYWxfZmlsZV9idWZmZXIoamgsIGhhbmRsZS0+aF90cmFuc2FjdGlvbiwKLQkJCQkJCUJKX1N5bmNEYXRhKTsKLQkJfQotCX0gZWxzZSB7Ci0JCUpCVUZGRVJfVFJBQ0UoamgsICJub3Qgb24gYSB0cmFuc2FjdGlvbiIpOwotCQlfX2piZDJfam91cm5hbF9maWxlX2J1ZmZlcihqaCwgaGFuZGxlLT5oX3RyYW5zYWN0aW9uLCBCSl9TeW5jRGF0YSk7Ci0JfQotbm9fam91cm5hbDoKLQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCWlmIChuZWVkX2JyZWxzZSkgewotCQlCVUZGRVJfVFJBQ0UoYmgsICJicmVsc2UiKTsKLQkJX19icmVsc2UoYmgpOwotCX0KLQlKQlVGRkVSX1RSQUNFKGpoLCAiZXhpdCIpOwotCWpiZDJfam91cm5hbF9wdXRfam91cm5hbF9oZWFkKGpoKTsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCiAgKiBpbnQgamJkMl9qb3VybmFsX2RpcnR5X21ldGFkYXRhKCkgLSAgbWFyayBhIGJ1ZmZlciBhcyBjb250YWluaW5nIGRpcnR5IG1ldGFkYXRhCiAgKiBAaGFuZGxlOiB0cmFuc2FjdGlvbiB0byBhZGQgYnVmZmVyIHRvLgogICogQGJoOiBidWZmZXIgdG8gbWFyawpAQCAtMTU0MSwxMCArMTM2NCwxMCBAQAogICogUmVtb3ZlIGEgYnVmZmVyIGZyb20gdGhlIGFwcHJvcHJpYXRlIHRyYW5zYWN0aW9uIGxpc3QuCiAgKgogICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gY2FuICpjaGFuZ2UqIHRoZSB2YWx1ZSBvZgotICogYmgtPmJfdHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdCwgdF9idWZmZXJzLCB0X2ZvcmdldCwKLSAqIHRfaW9idWZfbGlzdCwgdF9zaGFkb3dfbGlzdCwgdF9sb2dfbGlzdCBvciB0X3Jlc2VydmVkX2xpc3QuICBJZiB0aGUgY2FsbGVyCi0gKiBpcyBob2xkaW5nIG9udG8gYSBjb3B5IG9mIG9uZSBvZiB0aGVlIHBvaW50ZXJzLCBpdCBjb3VsZCBnbyBiYWQuCi0gKiBHZW5lcmFsbHkgdGhlIGNhbGxlciBuZWVkcyB0byByZS1yZWFkIHRoZSBwb2ludGVyIGZyb20gdGhlIHRyYW5zYWN0aW9uX3QuCisgKiBiaC0+Yl90cmFuc2FjdGlvbi0+dF9idWZmZXJzLCB0X2ZvcmdldCwgdF9pb2J1Zl9saXN0LCB0X3NoYWRvd19saXN0LAorICogdF9sb2dfbGlzdCBvciB0X3Jlc2VydmVkX2xpc3QuICBJZiB0aGUgY2FsbGVyIGlzIGhvbGRpbmcgb250byBhIGNvcHkgb2Ygb25lCisgKiBvZiB0aGVzZSBwb2ludGVycywgaXQgY291bGQgZ28gYmFkLiAgR2VuZXJhbGx5IHRoZSBjYWxsZXIgbmVlZHMgdG8gcmUtcmVhZAorICogdGhlIHBvaW50ZXIgZnJvbSB0aGUgdHJhbnNhY3Rpb25fdC4KICAqCiAgKiBDYWxsZWQgdW5kZXIgal9saXN0X2xvY2suICBUaGUgam91cm5hbCBtYXkgbm90IGJlIGxvY2tlZC4KICAqLwpAQCAtMTU2Niw5ICsxMzg5LDYgQEAKIAlzd2l0Y2ggKGpoLT5iX2psaXN0KSB7CiAJY2FzZSBCSl9Ob25lOgogCQlyZXR1cm47Ci0JY2FzZSBCSl9TeW5jRGF0YToKLQkJbGlzdCA9ICZ0cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0OwotCQlicmVhazsKIAljYXNlIEJKX01ldGFkYXRhOgogCQl0cmFuc2FjdGlvbi0+dF9ucl9idWZmZXJzLS07CiAJCUpfQVNTRVJUX0pIKGpoLCB0cmFuc2FjdGlvbi0+dF9ucl9idWZmZXJzID49IDApOwpAQCAtMTU4OSw5ICsxNDA5LDYgQEAKIAljYXNlIEJKX1Jlc2VydmVkOgogCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3Jlc2VydmVkX2xpc3Q7CiAJCWJyZWFrOwotCWNhc2UgQkpfTG9ja2VkOgotCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X2xvY2tlZF9saXN0OwotCQlicmVhazsKIAl9CiAKIAlfX2JsaXN0X2RlbF9idWZmZXIobGlzdCwgamgpOwpAQCAtMTYzNCwxNSArMTQ1MSw3IEBACiAJCWdvdG8gb3V0OwogCiAJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JaWYgKGpoLT5iX3RyYW5zYWN0aW9uICE9IE5VTEwgJiYgamgtPmJfY3BfdHJhbnNhY3Rpb24gPT0gTlVMTCkgewotCQlpZiAoamgtPmJfamxpc3QgPT0gQkpfU3luY0RhdGEgfHwgamgtPmJfamxpc3QgPT0gQkpfTG9ja2VkKSB7Ci0JCQkvKiBBIHdyaXR0ZW4tYmFjayBvcmRlcmVkIGRhdGEgYnVmZmVyICovCi0JCQlKQlVGRkVSX1RSQUNFKGpoLCAicmVsZWFzZSBkYXRhIik7Ci0JCQlfX2piZDJfam91cm5hbF91bmZpbGVfYnVmZmVyKGpoKTsKLQkJCWpiZDJfam91cm5hbF9yZW1vdmVfam91cm5hbF9oZWFkKGJoKTsKLQkJCV9fYnJlbHNlKGJoKTsKLQkJfQotCX0gZWxzZSBpZiAoamgtPmJfY3BfdHJhbnNhY3Rpb24gIT0gTlVMTCAmJiBqaC0+Yl90cmFuc2FjdGlvbiA9PSBOVUxMKSB7CisJaWYgKGpoLT5iX2NwX3RyYW5zYWN0aW9uICE9IE5VTEwgJiYgamgtPmJfdHJhbnNhY3Rpb24gPT0gTlVMTCkgewogCQkvKiB3cml0dGVuLWJhY2sgY2hlY2twb2ludGVkIG1ldGFkYXRhIGJ1ZmZlciAqLwogCQlpZiAoamgtPmJfamxpc3QgPT0gQkpfTm9uZSkgewogCQkJSkJVRkZFUl9UUkFDRShqaCwgInJlbW92ZSBmcm9tIGNoZWNrcG9pbnQgbGlzdCIpOwpAQCAtMTY1NiwxMiArMTQ2NSw0MyBAQAogCXJldHVybjsKIH0KIAorLyoKKyAqIGpiZDJfam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXJzKCkgY291bGQgcmFjZSB3aXRoCisgKiBqYmQyX2pvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKCkuIFRoZSBsYXRlciBtaWdodCBzdGlsbCBob2xkIHRoZQorICogcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBidWZmZXJzIHdoZW4gaW5zcGVjdGluZyB0aGVtIG9uCisgKiB0X3N5bmNkYXRhX2xpc3Qgb3IgdF9sb2NrZWRfbGlzdC4KKyAqCisgKiBqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycygpIHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvCisgKiB3YWl0IGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiB0byBmaW5pc2ggc3luY2luZyBkYXRhIGJ1ZmZlcnMsIGJlZm9yZQorICogdHJ5IHRvIGZyZWUgdGhhdCBidWZmZXIuCisgKgorICogQ2FsbGVkIHdpdGggam91cm5hbC0+al9zdGF0ZV9sb2NrIGhvbGQuCisgKi8KK3N0YXRpYyB2b2lkIGpiZDJfam91cm5hbF93YWl0X2Zvcl90cmFuc2FjdGlvbl9zeW5jX2RhdGEoam91cm5hbF90ICpqb3VybmFsKQoreworCXRyYW5zYWN0aW9uX3QgKnRyYW5zYWN0aW9uOworCXRpZF90IHRpZDsKKworCXNwaW5fbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwl0cmFuc2FjdGlvbiA9IGpvdXJuYWwtPmpfY29tbWl0dGluZ190cmFuc2FjdGlvbjsKKworCWlmICghdHJhbnNhY3Rpb24pIHsKKwkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisJCXJldHVybjsKKwl9CisKKwl0aWQgPSB0cmFuc2FjdGlvbi0+dF90aWQ7CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisJamJkMl9sb2dfd2FpdF9jb21taXQoam91cm5hbCwgdGlkKTsKK30KIAogLyoqCiAgKiBpbnQgamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoKSAtIHRyeSB0byBmcmVlIHBhZ2UgYnVmZmVycy4KICAqIEBqb3VybmFsOiBqb3VybmFsIGZvciBvcGVyYXRpb24KICAqIEBwYWdlOiB0byB0cnkgYW5kIGZyZWUKLSAqIEB1bnVzZWRfZ2ZwX21hc2s6IHVudXNlZAorICogQGdmcF9tYXNrOiB3ZSB1c2UgdGhlIG1hc2sgdG8gZGV0ZWN0IGhvdyBoYXJkIHNob3VsZCB3ZSB0cnkgdG8gcmVsZWFzZQorICogYnVmZmVycy4gSWYgX19HRlBfV0FJVCBhbmQgX19HRlBfRlMgaXMgc2V0LCB3ZSB3YWl0IGZvciBjb21taXQgY29kZSB0bworICogcmVsZWFzZSB0aGUgYnVmZmVycy4KICAqCiAgKgogICogRm9yIGFsbCB0aGUgYnVmZmVycyBvbiB0aGlzIHBhZ2UsCkBAIC0xNjkwLDkgKzE1MzAsMTEgQEAKICAqIGpvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVyKCkgaXMgY2hhbmdpbmcgaXRzIHN0YXRlLiAgQnV0IHRoYXQKICAqIGNhbm5vdCBoYXBwZW4gYmVjYXVzZSB3ZSBuZXZlciByZWFsbG9jYXRlIGZyZWVkIGRhdGEgYXMgbWV0YWRhdGEKICAqIHdoaWxlIHRoZSBkYXRhIGlzIHBhcnQgb2YgYSB0cmFuc2FjdGlvbi4gIFllcz8KKyAqCisgKiBSZXR1cm4gMCBvbiBmYWlsdXJlLCAxIG9uIHN1Y2Nlc3MKICAqLwogaW50IGpiZDJfam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5hbCwKLQkJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgZ2ZwX3QgdW51c2VkX2dmcF9tYXNrKQorCQkJCXN0cnVjdCBwYWdlICpwYWdlLCBnZnBfdCBnZnBfbWFzaykKIHsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmhlYWQ7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKQEAgLTE3MDgsNyArMTU1MCw4IEBACiAJCS8qCiAJCSAqIFdlIHRha2Ugb3VyIG93biByZWYgYWdhaW5zdCB0aGUgam91cm5hbF9oZWFkIGhlcmUgdG8gYXZvaWQKIAkJICogaGF2aW5nIHRvIGFkZCB0b25zIG9mIGxvY2tpbmcgYXJvdW5kIGVhY2ggaW5zdGFuY2Ugb2YKLQkJICogamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoKSBhbmQgamJkMl9qb3VybmFsX3B1dF9qb3VybmFsX2hlYWQoKS4KKwkJICogamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoKSBhbmQKKwkJICogamJkMl9qb3VybmFsX3B1dF9qb3VybmFsX2hlYWQoKS4KIAkJICovCiAJCWpoID0gamJkMl9qb3VybmFsX2dyYWJfam91cm5hbF9oZWFkKGJoKTsKIAkJaWYgKCFqaCkKQEAgLTE3MjEsNyArMTU2NCwyOCBAQAogCQlpZiAoYnVmZmVyX2piZChiaCkpCiAJCQlnb3RvIGJ1c3k7CiAJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwogCXJldCA9IHRyeV90b19mcmVlX2J1ZmZlcnMocGFnZSk7CisKKwkvKgorCSAqIFRoZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMgd2hlcmUgamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoKQorCSAqIGNvdWxkIHJhY2Ugd2l0aCBqYmQyX2pvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKCksIHRoZSBsYXRlciBzdGlsbAorCSAqIGhvbGRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIGJ1ZmZlcnMgdG8gZnJlZSB3aGlsZSBwcm9jZXNzaW5nIHRoZW0uCisJICogdHJ5X3RvX2ZyZWVfYnVmZmVycygpIGZhaWxlZCB0byBmcmVlIHRob3NlIGJ1ZmZlcnMuIFNvbWUgb2YgdGhlCisJICogY2FsbGVyIG9mIHJlbGVhc2VwYWdlKCkgcmVxdWVzdCBwYWdlIGJ1ZmZlcnMgdG8gYmUgZHJvcHBlZCwgb3RoZXJ3aXNlCisJICogdHJlYXQgdGhlIGZhaWwtdG8tZnJlZSBhcyBlcnJvcnMgKHN1Y2ggYXMgZ2VuZXJpY19maWxlX2RpcmVjdF9JTygpKQorCSAqCisJICogU28sIGlmIHRoZSBjYWxsZXIgb2YgdHJ5X3RvX3JlbGVhc2VfcGFnZSgpIHdhbnRzIHRoZSBzeW5jaHJvbm91cworCSAqIGJlaGF2aW91cihpLmUgbWFrZSBzdXJlIGJ1ZmZlcnMgYXJlIGRyb3BwZWQgdXBvbiByZXR1cm4pLAorCSAqIGxldCdzIHdhaXQgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHRvIGZpbmlzaCBmbHVzaCBvZgorCSAqIGRpcnR5IGRhdGEgYnVmZmVycywgdGhlbiB0cnkgdG8gZnJlZSB0aG9zZSBidWZmZXJzIGFnYWluLAorCSAqIHdpdGggdGhlIGpvdXJuYWwgbG9ja2VkLgorCSAqLworCWlmIChyZXQgPT0gMCAmJiAoZ2ZwX21hc2sgJiBfX0dGUF9XQUlUKSAmJiAoZ2ZwX21hc2sgJiBfX0dGUF9GUykpIHsKKwkJamJkMl9qb3VybmFsX3dhaXRfZm9yX3RyYW5zYWN0aW9uX3N5bmNfZGF0YShqb3VybmFsKTsKKwkJcmV0ID0gdHJ5X3RvX2ZyZWVfYnVmZmVycyhwYWdlKTsKKwl9CisKIGJ1c3k6CiAJcmV0dXJuIHJldDsKIH0KQEAgLTE4MjMsNiArMTY4Nyw3IEBACiAJaWYgKCFidWZmZXJfamJkKGJoKSkKIAkJZ290byB6YXBfYnVmZmVyX3VubG9ja2VkOwogCisJLyogT0ssIHdlIGhhdmUgZGF0YSBidWZmZXIgaW4gam91cm5hbGVkIG1vZGUgKi8KIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CiAJamJkX2xvY2tfYmhfc3RhdGUoYmgpOwogCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwpAQCAtMTg4NiwxNSArMTc1MSw2IEBACiAJCX0KIAl9IGVsc2UgaWYgKHRyYW5zYWN0aW9uID09IGpvdXJuYWwtPmpfY29tbWl0dGluZ190cmFuc2FjdGlvbikgewogCQlKQlVGRkVSX1RSQUNFKGpoLCAib24gY29tbWl0dGluZyB0cmFuc2FjdGlvbiIpOwotCQlpZiAoamgtPmJfamxpc3QgPT0gQkpfTG9ja2VkKSB7Ci0JCQkvKgotCQkJICogVGhlIGJ1ZmZlciBpcyBvbiB0aGUgY29tbWl0dGluZyB0cmFuc2FjdGlvbidzIGxvY2tlZAotCQkJICogbGlzdC4gIFdlIGhhdmUgdGhlIGJ1ZmZlciBsb2NrZWQsIHNvIEkvTyBoYXMKLQkJCSAqIGNvbXBsZXRlZC4gIFNvIHdlIGNhbiBuYWlsIHRoZSBidWZmZXIgbm93LgotCQkJICovCi0JCQltYXlfZnJlZSA9IF9fZGlzcG9zZV9idWZmZXIoamgsIHRyYW5zYWN0aW9uKTsKLQkJCWdvdG8gemFwX2J1ZmZlcjsKLQkJfQogCQkvKgogCQkgKiBJZiBpdCBpcyBjb21taXR0aW5nLCB3ZSBzaW1wbHkgY2Fubm90IHRvdWNoIGl0LiAgV2UKIAkJICogY2FuIHJlbW92ZSBpdCdzIG5leHRfdHJhbnNhY3Rpb24gcG9pbnRlciBmcm9tIHRoZQpAQCAtMjAyNyw5ICsxODgzLDYgQEAKIAkJSl9BU1NFUlRfSkgoamgsICFqaC0+Yl9jb21taXR0ZWRfZGF0YSk7CiAJCUpfQVNTRVJUX0pIKGpoLCAhamgtPmJfZnJvemVuX2RhdGEpOwogCQlyZXR1cm47Ci0JY2FzZSBCSl9TeW5jRGF0YToKLQkJbGlzdCA9ICZ0cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0OwotCQlicmVhazsKIAljYXNlIEJKX01ldGFkYXRhOgogCQl0cmFuc2FjdGlvbi0+dF9ucl9idWZmZXJzKys7CiAJCWxpc3QgPSAmdHJhbnNhY3Rpb24tPnRfYnVmZmVyczsKQEAgLTIwNDksOSArMTkwMiw2IEBACiAJY2FzZSBCSl9SZXNlcnZlZDoKIAkJbGlzdCA9ICZ0cmFuc2FjdGlvbi0+dF9yZXNlcnZlZF9saXN0OwogCQlicmVhazsKLQljYXNlIEJKX0xvY2tlZDoKLQkJbGlzdCA9ICAmdHJhbnNhY3Rpb24tPnRfbG9ja2VkX2xpc3Q7Ci0JCWJyZWFrOwogCX0KIAogCV9fYmxpc3RfYWRkX2J1ZmZlcihsaXN0LCBqaCk7CkBAIC0yMTQxLDMgKzE5OTEsODggQEAKIAlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwogCV9fYnJlbHNlKGJoKTsKIH0KKworLyoKKyAqIEZpbGUgaW5vZGUgaW4gdGhlIGlub2RlIGxpc3Qgb2YgdGhlIGhhbmRsZSdzIHRyYW5zYWN0aW9uCisgKi8KK2ludCBqYmQyX2pvdXJuYWxfZmlsZV9pbm9kZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlKQoreworCXRyYW5zYWN0aW9uX3QgKnRyYW5zYWN0aW9uID0gaGFuZGxlLT5oX3RyYW5zYWN0aW9uOworCWpvdXJuYWxfdCAqam91cm5hbCA9IHRyYW5zYWN0aW9uLT50X2pvdXJuYWw7CisKKwlpZiAoaXNfaGFuZGxlX2Fib3J0ZWQoaGFuZGxlKSkKKwkJcmV0dXJuIC1FSU87CisKKwlqYmRfZGVidWcoNCwgIkFkZGluZyBpbm9kZSAlbHUsIHRpZDolZFxuIiwgamlub2RlLT5pX3Zmc19pbm9kZS0+aV9pbm8sCisJCQl0cmFuc2FjdGlvbi0+dF90aWQpOworCisJLyoKKwkgKiBGaXJzdCBjaGVjayB3aGV0aGVyIGlub2RlIGlzbid0IGFscmVhZHkgb24gdGhlIHRyYW5zYWN0aW9uJ3MKKwkgKiBsaXN0cyB3aXRob3V0IHRha2luZyB0aGUgbG9jay4gTm90ZSB0aGF0IHRoaXMgY2hlY2sgaXMgc2FmZQorCSAqIHdpdGhvdXQgdGhlIGxvY2sgYXMgd2UgY2Fubm90IHJhY2Ugd2l0aCBzb21lYm9keSByZW1vdmluZyBpbm9kZQorCSAqIGZyb20gdGhlIHRyYW5zYWN0aW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgd2UgcmVtb3ZlIGlub2RlIGZyb20gdGhlCisJICogdHJhbnNhY3Rpb24gb25seSBpbiBqb3VybmFsX3JlbGVhc2VfamJkX2lub2RlKCkgYW5kIHdoZW4gd2UgY29tbWl0CisJICogdGhlIHRyYW5zYWN0aW9uLiBXZSBhcmUgZ3VhcmRlZCBmcm9tIHRoZSBmaXJzdCBjYXNlIGJ5IGhvbGRpbmcKKwkgKiBhIHJlZmVyZW5jZSB0byB0aGUgaW5vZGUuIFdlIGFyZSBzYWZlIGFnYWluc3QgdGhlIHNlY29uZCBjYXNlCisJICogYmVjYXVzZSBpZiBqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24sIGNvbW1pdCBjb2RlCisJICogY2Fubm90IHRvdWNoIHRoZSB0cmFuc2FjdGlvbiBiZWNhdXNlIHdlIGhvbGQgcmVmZXJlbmNlIHRvIGl0LAorCSAqIGFuZCBpZiBqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9PSB0cmFuc2FjdGlvbiwgY29tbWl0IGNvZGUKKwkgKiB3aWxsIG9ubHkgZmlsZSB0aGUgaW5vZGUgd2hlcmUgd2Ugd2FudCBpdC4KKwkgKi8KKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uIHx8CisJICAgIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKQorCQlyZXR1cm4gMDsKKworCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCisJaWYgKGppbm9kZS0+aV90cmFuc2FjdGlvbiA9PSB0cmFuc2FjdGlvbiB8fAorCSAgICBqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9PSB0cmFuc2FjdGlvbikKKwkJZ290byBkb25lOworCisJLyogT24gc29tZSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24ncyBsaXN0IC0gc2hvdWxkIGJlCisJICogdGhlIGNvbW1pdHRpbmcgb25lICovCisJaWYgKGppbm9kZS0+aV90cmFuc2FjdGlvbikgeworCQlKX0FTU0VSVChqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9PSBOVUxMKTsKKwkJSl9BU1NFUlQoamlub2RlLT5pX3RyYW5zYWN0aW9uID09CisJCQkJCWpvdXJuYWwtPmpfY29tbWl0dGluZ190cmFuc2FjdGlvbik7CisJCWppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247CisJCWdvdG8gZG9uZTsKKwl9CisJLyogTm90IG9uIGFueSB0cmFuc2FjdGlvbiBsaXN0Li4uICovCisJSl9BU1NFUlQoIWppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uKTsKKwlqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjsKKwlsaXN0X2FkZCgmamlub2RlLT5pX2xpc3QsICZ0cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0KTsKK2RvbmU6CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKworCXJldHVybiAwOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aGVuIGlub2RlIGlzIGpvdXJuYWxlZCBpbiBvcmRlcmVkIG1vZGUKKyAqIGJlZm9yZSB0cnVuY2F0aW9uIGhhcHBlbnMuIEl0IHN0YXJ0cyB3cml0ZW91dCBvZiB0cnVuY2F0ZWQgcGFydCBpbgorICogY2FzZSBpdCBpcyBpbiB0aGUgY29tbWl0dGluZyB0cmFuc2FjdGlvbiBzbyB0aGF0IHdlIHN0YW5kIHRvIG9yZGVyZWQKKyAqIG1vZGUgY29uc2lzdGVuY3kgZ3VhcmFudGVlcy4KKyAqLworaW50IGpiZDJfam91cm5hbF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSwKKwkJCQkJbG9mZl90IG5ld19zaXplKQoreworCWpvdXJuYWxfdCAqam91cm5hbDsKKwl0cmFuc2FjdGlvbl90ICpjb21taXRfdHJhbnM7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIWlub2RlLT5pX3RyYW5zYWN0aW9uICYmICFpbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uKQorCQlnb3RvIG91dDsKKwlqb3VybmFsID0gaW5vZGUtPmlfdHJhbnNhY3Rpb24tPnRfam91cm5hbDsKKwlzcGluX2xvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisJY29tbWl0X3RyYW5zID0gam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uOworCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOworCWlmIChpbm9kZS0+aV90cmFuc2FjdGlvbiA9PSBjb21taXRfdHJhbnMpIHsKKwkJcmV0ID0gZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKGlub2RlLT5pX3Zmc19pbm9kZS0+aV9tYXBwaW5nLAorCQkJbmV3X3NpemUsIExMT05HX01BWCk7CisJCWlmIChyZXQpCisJCQlqYmQyX2pvdXJuYWxfYWJvcnQoam91cm5hbCwgcmV0KTsKKwl9CitvdXQ6CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2ZzL2xpYmZzLmMgYi9mcy9saWJmcy5jCmluZGV4IDg5MmQ0MWMuLmJhZWI3MWUgMTAwNjQ0Ci0tLSBhL2ZzL2xpYmZzLmMKKysrIGIvZnMvbGliZnMuYwpAQCAtNTEyLDYgKzUxMiwyMCBAQAogCW1udHB1dChtbnQpOwogfQogCisvKioKKyAqIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyIC0gY29weSBkYXRhIGZyb20gdGhlIGJ1ZmZlciB0byB1c2VyIHNwYWNlCisgKiBAdG86IHRoZSB1c2VyIHNwYWNlIGJ1ZmZlciB0byByZWFkIHRvCisgKiBAY291bnQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byByZWFkCisgKiBAcHBvczogdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlcgorICogQGZyb206IHRoZSBidWZmZXIgdG8gcmVhZCBmcm9tCisgKiBAYXZhaWxhYmxlOiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyCisgKgorICogVGhlIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKCkgZnVuY3Rpb24gcmVhZHMgdXAgdG8gQGNvdW50IGJ5dGVzIGZyb20gdGhlCisgKiBidWZmZXIgQGZyb20gYXQgb2Zmc2V0IEBwcG9zIGludG8gdGhlIHVzZXIgc3BhY2UgYWRkcmVzcyBzdGFydGluZyBhdCBAdG8uCisgKgorICogT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGlzIHJldHVybmVkIGFuZCB0aGUgb2Zmc2V0IEBwcG9zIGlzCisgKiBhZHZhbmNlZCBieSB0aGlzIG51bWJlciwgb3IgbmVnYXRpdmUgdmFsdWUgaXMgcmV0dXJuZWQgb24gZXJyb3IuCisgKiovCiBzc2l6ZV90IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgX191c2VyICp0bywgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MsCiAJCQkJY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSkKIHsKQEAgLTUyOCw2ICs1NDIsMjAgQEAKIAlyZXR1cm4gY291bnQ7CiB9CiAKKy8qKgorICogbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIgLSBjb3B5IGRhdGEgZnJvbSB0aGUgYnVmZmVyCisgKiBAdG86IHRoZSBrZXJuZWwgc3BhY2UgYnVmZmVyIHRvIHJlYWQgdG8KKyAqIEBjb3VudDogdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQKKyAqIEBwcG9zOiB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyCisgKiBAZnJvbTogdGhlIGJ1ZmZlciB0byByZWFkIGZyb20KKyAqIEBhdmFpbGFibGU6IHRoZSBzaXplIG9mIHRoZSBidWZmZXIKKyAqCisgKiBUaGUgbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIoKSBmdW5jdGlvbiByZWFkcyB1cCB0byBAY291bnQgYnl0ZXMgZnJvbSB0aGUKKyAqIGJ1ZmZlciBAZnJvbSBhdCBvZmZzZXQgQHBwb3MgaW50byB0aGUga2VybmVsIHNwYWNlIGFkZHJlc3Mgc3RhcnRpbmcgYXQgQHRvLgorICoKKyAqIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBpcyByZXR1cm5lZCBhbmQgdGhlIG9mZnNldCBAcHBvcyBpcworICogYWR2YW5jZWQgYnkgdGhpcyBudW1iZXIsIG9yIG5lZ2F0aXZlIHZhbHVlIGlzIHJldHVybmVkIG9uIGVycm9yLgorICoqLwogc3NpemVfdCBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcih2b2lkICp0bywgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MsCiAJCQkJY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSkKIHsKZGlmZiAtLWdpdCBhL2ZzL2xvY2tzLmMgYi9mcy9sb2Nrcy5jCmluZGV4IDExZGJmMDguLmRjZThjNzQgMTAwNjQ0Ci0tLSBhL2ZzL2xvY2tzLmMKKysrIGIvZnMvbG9ja3MuYwpAQCAtNTYxLDkgKzU2MSw2IEBACiAJLyogaW5zZXJ0IGludG8gZmlsZSdzIGxpc3QgKi8KIAlmbC0+ZmxfbmV4dCA9ICpwb3M7CiAJKnBvcyA9IGZsOwotCi0JaWYgKGZsLT5mbF9vcHMgJiYgZmwtPmZsX29wcy0+ZmxfaW5zZXJ0KQotCQlmbC0+Zmxfb3BzLT5mbF9pbnNlcnQoZmwpOwogfQogCiAvKgpAQCAtNTg2LDkgKzU4Myw2IEBACiAJCWZsLT5mbF9mYXN5bmMgPSBOVUxMOwogCX0KIAotCWlmIChmbC0+Zmxfb3BzICYmIGZsLT5mbF9vcHMtPmZsX3JlbW92ZSkKLQkJZmwtPmZsX29wcy0+ZmxfcmVtb3ZlKGZsKTsKLQogCWlmIChmbC0+ZmxfbnNwaWQpIHsKIAkJcHV0X3BpZChmbC0+ZmxfbnNwaWQpOwogCQlmbC0+ZmxfbnNwaWQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZnMvbXBhZ2UuYyBiL2ZzL21wYWdlLmMKaW5kZXggMjM1ZTRkMy4uZGJjYzdhZiAxMDA2NDQKLS0tIGEvZnMvbXBhZ2UuYworKysgYi9mcy9tcGFnZS5jCkBAIC04Miw3ICs4Miw3IEBACiAJYmlvX3B1dChiaW8pOwogfQogCi1zdGF0aWMgc3RydWN0IGJpbyAqbXBhZ2VfYmlvX3N1Ym1pdChpbnQgcncsIHN0cnVjdCBiaW8gKmJpbykKK3N0cnVjdCBiaW8gKm1wYWdlX2Jpb19zdWJtaXQoaW50IHJ3LCBzdHJ1Y3QgYmlvICpiaW8pCiB7CiAJYmlvLT5iaV9lbmRfaW8gPSBtcGFnZV9lbmRfaW9fcmVhZDsKIAlpZiAocncgPT0gV1JJVEUpCkBAIC05MCw2ICs5MCw3IEBACiAJc3VibWl0X2JpbyhydywgYmlvKTsKIAlyZXR1cm4gTlVMTDsKIH0KK0VYUE9SVF9TWU1CT0wobXBhZ2VfYmlvX3N1Ym1pdCk7CiAKIHN0YXRpYyBzdHJ1Y3QgYmlvICoKIG1wYWdlX2FsbG9jKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCkBAIC00MzUsMTUgKzQzNiw5IEBACiAgKiB3cml0dGVuLCBzbyBpdCBjYW4gaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSBhIHN1aXRhYmx5LXNpemVkIEJJTy4gIEZvciBub3csCiAgKiBqdXN0IGFsbG9jYXRlIGZ1bGwtc2l6ZSAoMTYtcGFnZSkgQklPcy4KICAqLwotc3RydWN0IG1wYWdlX2RhdGEgewotCXN0cnVjdCBiaW8gKmJpbzsKLQlzZWN0b3JfdCBsYXN0X2Jsb2NrX2luX2JpbzsKLQlnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrOwotCXVuc2lnbmVkIHVzZV93cml0ZXBhZ2U7Ci19OwogCi1zdGF0aWMgaW50IF9fbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywKLQkJCSAgICAgdm9pZCAqZGF0YSkKK2ludCBfX21wYWdlX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsCisJCSAgICAgIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IG1wYWdlX2RhdGEgKm1wZCA9IGRhdGE7CiAJc3RydWN0IGJpbyAqYmlvID0gbXBkLT5iaW87CkBAIC02NTEsNiArNjQ2LDcgQEAKIAltcGQtPmJpbyA9IGJpbzsKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTChfX21wYWdlX3dyaXRlcGFnZSk7CiAKIC8qKgogICogbXBhZ2Vfd3JpdGVwYWdlcyAtIHdhbGsgdGhlIGxpc3Qgb2YgZGlydHkgcGFnZXMgb2YgdGhlIGdpdmVuIGFkZHJlc3Mgc3BhY2UgJiB3cml0ZXBhZ2UoKSBhbGwgb2YgdGhlbQpkaWZmIC0tZ2l0IGEvZnMvbXNkb3MvbmFtZWkuYyBiL2ZzL21zZG9zL25hbWVpLmMKaW5kZXggMDVmZjRmMS4uMWY3ZjI5NSAxMDA2NDQKLS0tIGEvZnMvbXNkb3MvbmFtZWkuYworKysgYi9mcy9tc2Rvcy9uYW1laS5jCkBAIC0yMTQsNyArMjE0LDcgQEAKIAogCWRlbnRyeS0+ZF9vcCA9ICZtc2Rvc19kZW50cnlfb3BlcmF0aW9uczsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAJcmVzID0gbXNkb3NfZmluZChkaXIsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLmxlbiwgJnNpbmZvKTsKIAlpZiAocmVzID09IC1FTk9FTlQpCiAJCWdvdG8gYWRkOwpAQCAtMjMyLDcgKzIzMiw3IEBACiAJaWYgKGRlbnRyeSkKIAkJZGVudHJ5LT5kX29wID0gJm1zZG9zX2RlbnRyeV9vcGVyYXRpb25zOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWlmICghcmVzKQogCQlyZXR1cm4gZGVudHJ5OwogCXJldHVybiBFUlJfUFRSKHJlcyk7CkBAIC0yODYsNyArMjg2LDcgQEAKIAl1bnNpZ25lZCBjaGFyIG1zZG9zX25hbWVbTVNET1NfTkFNRV07CiAJaW50IGVyciwgaXNfaGlkOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAogCWVyciA9IG1zZG9zX2Zvcm1hdF9uYW1lKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLmxlbiwKIAkJCQltc2Rvc19uYW1lLCAmTVNET1NfU0Ioc2IpLT5vcHRpb25zKTsKQEAgLTMxNSw3ICszMTUsNyBAQAogCiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlpZiAoIWVycikKIAkJZXJyID0gZmF0X2ZsdXNoX2lub2RlcyhzYiwgZGlyLCBpbm9kZSk7CiAJcmV0dXJuIGVycjsKQEAgLTMyNCwxMSArMzI0LDEyIEBACiAvKioqKiogUmVtb3ZlIGEgZGlyZWN0b3J5ICovCiBzdGF0aWMgaW50IG1zZG9zX3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGRpci0+aV9zYjsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCS8qCiAJICogQ2hlY2sgd2hldGhlciB0aGUgZGlyZWN0b3J5IGlzIG5vdCBpbiB1c2UsIHRoZW4gY2hlY2sKIAkgKiB3aGV0aGVyIGl0IGlzIGVtcHR5LgpAQCAtMzQ5LDkgKzM1MCw5IEBACiAJaW5vZGUtPmlfY3RpbWUgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWZhdF9kZXRhY2goaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWlmICghZXJyKQotCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKGlub2RlLT5pX3NiLCBkaXIsIGlub2RlKTsKKwkJZXJyID0gZmF0X2ZsdXNoX2lub2RlcyhzYiwgZGlyLCBpbm9kZSk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMzY2LDcgKzM2Nyw3IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWludCBlcnIsIGlzX2hpZCwgY2x1c3RlcjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAllcnIgPSBtc2Rvc19mb3JtYXRfbmFtZShkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnktPmRfbmFtZS5sZW4sCiAJCQkJbXNkb3NfbmFtZSwgJk1TRE9TX1NCKHNiKS0+b3B0aW9ucyk7CkBAIC00MDQsMTQgKzQwNSwxNCBAQAogCiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWZhdF9mbHVzaF9pbm9kZXMoc2IsIGRpciwgaW5vZGUpOwogCXJldHVybiAwOwogCiBvdXRfZnJlZToKIAlmYXRfZnJlZV9jbHVzdGVycyhkaXIsIGNsdXN0ZXIpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTQxOSwxMCArNDIwLDExIEBACiBzdGF0aWMgaW50IG1zZG9zX3VubGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYj0gaW5vZGUtPmlfc2I7CiAJc3RydWN0IGZhdF9zbG90X2luZm8gc2luZm87CiAJaW50IGVycjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAJZXJyID0gbXNkb3NfZmluZChkaXIsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLmxlbiwgJnNpbmZvKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTQzNCw5ICs0MzYsOSBAQAogCWlub2RlLT5pX2N0aW1lID0gQ1VSUkVOVF9USU1FX1NFQzsKIAlmYXRfZGV0YWNoKGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlpZiAoIWVycikKLQkJZXJyID0gZmF0X2ZsdXNoX2lub2Rlcyhpbm9kZS0+aV9zYiwgZGlyLCBpbm9kZSk7CisJCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoc2IsIGRpciwgaW5vZGUpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTYxOCwxMCArNjIwLDExIEBACiBzdGF0aWMgaW50IG1zZG9zX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAJCQlzdHJ1Y3QgaW5vZGUgKm5ld19kaXIsIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpCiB7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IG9sZF9kaXItPmlfc2I7CiAJdW5zaWduZWQgY2hhciBvbGRfbXNkb3NfbmFtZVtNU0RPU19OQU1FXSwgbmV3X21zZG9zX25hbWVbTVNET1NfTkFNRV07CiAJaW50IGVyciwgaXNfaGlkOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAogCWVyciA9IG1zZG9zX2Zvcm1hdF9uYW1lKG9sZF9kZW50cnktPmRfbmFtZS5uYW1lLAogCQkJCW9sZF9kZW50cnktPmRfbmFtZS5sZW4sIG9sZF9tc2Rvc19uYW1lLApAQCAtNjQwLDkgKzY0Myw5IEBACiAJZXJyID0gZG9fbXNkb3NfcmVuYW1lKG9sZF9kaXIsIG9sZF9tc2Rvc19uYW1lLCBvbGRfZGVudHJ5LAogCQkJICAgICAgbmV3X2RpciwgbmV3X21zZG9zX25hbWUsIG5ld19kZW50cnksIGlzX2hpZCk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJaWYgKCFlcnIpCi0JCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMob2xkX2Rpci0+aV9zYiwgb2xkX2RpciwgbmV3X2Rpcik7CisJCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoc2IsIG9sZF9kaXIsIG5ld19kaXIpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL25hbWVpLmMgYi9mcy9uYW1laS5jCmluZGV4IGM3ZTQzNTMuLjAxZTY3ZGQgMTAwNjQ0Ci0tLSBhL2ZzL25hbWVpLmMKKysrIGIvZnMvbmFtZWkuYwpAQCAtNTgxLDE1ICs1ODEsMTMgQEAKIAlpbnQgcmVzdWx0OwogCiAJLyogbWFrZSBzdXJlIHRoZSBzdHVmZiB3ZSBzYXZlZCBkb2Vzbid0IGdvIGF3YXkgKi8KLQlkZ2V0KHNhdmUuZGVudHJ5KTsKLQltbnRnZXQoc2F2ZS5tbnQpOworCXBhdGhfZ2V0KCZzYXZlKTsKIAogCXJlc3VsdCA9IF9fbGlua19wYXRoX3dhbGsobmFtZSwgbmQpOwogCWlmIChyZXN1bHQgPT0gLUVTVEFMRSkgewogCQkvKiBuZC0+cGF0aCBoYWQgYmVlbiBkcm9wcGVkICovCiAJCW5kLT5wYXRoID0gc2F2ZTsKLQkJZGdldChuZC0+cGF0aC5kZW50cnkpOwotCQltbnRnZXQobmQtPnBhdGgubW50KTsKKwkJcGF0aF9nZXQoJm5kLT5wYXRoKTsKIAkJbmQtPmZsYWdzIHw9IExPT0tVUF9SRVZBTDsKIAkJcmVzdWx0ID0gX19saW5rX3BhdGhfd2FsayhuYW1lLCBuZCk7CiAJfQpAQCAtMTIxNiw4ICsxMjE0LDkgQEAKIAluZC0+ZmxhZ3MgPSBmbGFnczsKIAluZC0+ZGVwdGggPSAwOwogCi0JbmQtPnBhdGgubW50ID0gbW50Z2V0KG1udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChkZW50cnkpOworCW5kLT5wYXRoLmRlbnRyeSA9IGRlbnRyeTsKKwluZC0+cGF0aC5tbnQgPSBtbnQ7CisJcGF0aF9nZXQoJm5kLT5wYXRoKTsKIAogCXJldHZhbCA9IHBhdGhfd2FsayhuYW1lLCBuZCk7CiAJaWYgKHVubGlrZWx5KCFyZXR2YWwgJiYgIWF1ZGl0X2R1bW15X2NvbnRleHQoKSAmJiBuZC0+cGF0aC5kZW50cnkgJiYKQEAgLTI4NTcsMTYgKzI4NTYsMTcgQEAKIHsKIAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOwogCXZvaWQgKmNvb2tpZTsKKwlpbnQgcmVzOwogCiAJbmQuZGVwdGggPSAwOwogCWNvb2tpZSA9IGRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+Zm9sbG93X2xpbmsoZGVudHJ5LCAmbmQpOwotCWlmICghSVNfRVJSKGNvb2tpZSkpIHsKLQkJaW50IHJlcyA9IHZmc19yZWFkbGluayhkZW50cnksIGJ1ZmZlciwgYnVmbGVuLCBuZF9nZXRfbGluaygmbmQpKTsKLQkJaWYgKGRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+cHV0X2xpbmspCi0JCQlkZW50cnktPmRfaW5vZGUtPmlfb3AtPnB1dF9saW5rKGRlbnRyeSwgJm5kLCBjb29raWUpOwotCQljb29raWUgPSBFUlJfUFRSKHJlcyk7Ci0JfQotCXJldHVybiBQVFJfRVJSKGNvb2tpZSk7CisJaWYgKElTX0VSUihjb29raWUpKQorCQlyZXR1cm4gUFRSX0VSUihjb29raWUpOworCisJcmVzID0gdmZzX3JlYWRsaW5rKGRlbnRyeSwgYnVmZmVyLCBidWZsZW4sIG5kX2dldF9saW5rKCZuZCkpOworCWlmIChkZW50cnktPmRfaW5vZGUtPmlfb3AtPnB1dF9saW5rKQorCQlkZW50cnktPmRfaW5vZGUtPmlfb3AtPnB1dF9saW5rKGRlbnRyeSwgJm5kLCBjb29raWUpOworCXJldHVybiByZXM7CiB9CiAKIGludCB2ZnNfZm9sbG93X2xpbmsoc3RydWN0IG5hbWVpZGF0YSAqbmQsIGNvbnN0IGNoYXIgKmxpbmspCmRpZmYgLS1naXQgYS9mcy9uYW1lc3BhY2UuYyBiL2ZzL25hbWVzcGFjZS5jCmluZGV4IDRmYzMwMmMuLjRmNmY3NjMgMTAwNjQ0Ci0tLSBhL2ZzL25hbWVzcGFjZS5jCisrKyBiL2ZzL25hbWVzcGFjZS5jCkBAIC03NTAsNyArNzUwLDcgQEAKIAljb25zdCBjaGFyICpzdHI7CiB9OwogCi1zdGF0aWMgdm9pZCBzaG93X3NiX29wdHMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQorc3RhdGljIGludCBzaG93X3NiX29wdHMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHJvY19mc19pbmZvIGZzX2luZm9bXSA9IHsKIAkJeyBNU19TWU5DSFJPTk9VUywgIixzeW5jIiB9LApAQCAtNzY0LDYgKzc2NCw4IEBACiAJCWlmIChzYi0+c19mbGFncyAmIGZzX2luZm9wLT5mbGFnKQogCQkJc2VxX3B1dHMobSwgZnNfaW5mb3AtPnN0cik7CiAJfQorCisJcmV0dXJuIHNlY3VyaXR5X3NiX3Nob3dfb3B0aW9ucyhtLCBzYik7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfbW50X29wdHMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCkKQEAgLTgwNiwxMSArODA4LDE0IEBACiAJc2VxX3B1dGMobSwgJyAnKTsKIAlzaG93X3R5cGUobSwgbW50LT5tbnRfc2IpOwogCXNlcV9wdXRzKG0sIF9fbW50X2lzX3JlYWRvbmx5KG1udCkgPyAiIHJvIiA6ICIgcnciKTsKLQlzaG93X3NiX29wdHMobSwgbW50LT5tbnRfc2IpOworCWVyciA9IHNob3dfc2Jfb3B0cyhtLCBtbnQtPm1udF9zYik7CisJaWYgKGVycikKKwkJZ290byBvdXQ7CiAJc2hvd19tbnRfb3B0cyhtLCBtbnQpOwogCWlmIChtbnQtPm1udF9zYi0+c19vcC0+c2hvd19vcHRpb25zKQogCQllcnIgPSBtbnQtPm1udF9zYi0+c19vcC0+c2hvd19vcHRpb25zKG0sIG1udCk7CiAJc2VxX3B1dHMobSwgIiAwIDBcbiIpOworb3V0OgogCXJldHVybiBlcnI7CiB9CiAKQEAgLTg2NSwxMCArODcwLDEzIEBACiAJc2VxX3B1dGMobSwgJyAnKTsKIAltYW5nbGUobSwgbW50LT5tbnRfZGV2bmFtZSA/IG1udC0+bW50X2Rldm5hbWUgOiAibm9uZSIpOwogCXNlcV9wdXRzKG0sIHNiLT5zX2ZsYWdzICYgTVNfUkRPTkxZID8gIiBybyIgOiAiIHJ3Iik7Ci0Jc2hvd19zYl9vcHRzKG0sIHNiKTsKKwllcnIgPSBzaG93X3NiX29wdHMobSwgc2IpOworCWlmIChlcnIpCisJCWdvdG8gb3V0OwogCWlmIChzYi0+c19vcC0+c2hvd19vcHRpb25zKQogCQllcnIgPSBzYi0+c19vcC0+c2hvd19vcHRpb25zKG0sIG1udCk7CiAJc2VxX3B1dGMobSwgJ1xuJyk7CitvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvbmNwZnMvZmlsZS5jIGIvZnMvbmNwZnMvZmlsZS5jCmluZGV4IDJiMTQ1ZGUuLjZhN2Q5MDEgMTAwNjQ0Ci0tLSBhL2ZzL25jcGZzL2ZpbGUuYworKysgYi9mcy9uY3Bmcy9maWxlLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L25jcF9mcy5oPgogI2luY2x1ZGUgIm5jcGxpYl9rZXJuZWwuaCIKQEAgLTI4MSw5ICsyODIsMTggQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGxvZmZfdCBuY3BfcmVtb3RlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK3sKKwlsb2ZmX3QgcmV0OworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbmNwX2ZpbGVfb3BlcmF0aW9ucyA9CiB7Ci0JLmxsc2VlawkJPSByZW1vdGVfbGxzZWVrLAorCS5sbHNlZWsgCT0gbmNwX3JlbW90ZV9sbHNlZWssCiAJLnJlYWQJCT0gbmNwX2ZpbGVfcmVhZCwKIAkud3JpdGUJCT0gbmNwX2ZpbGVfd3JpdGUsCiAJLmlvY3RsCQk9IG5jcF9pb2N0bCwKZGlmZiAtLWdpdCBhL2ZzL25mcy9kaXIuYyBiL2ZzL25mcy9kaXIuYwppbmRleCA1OGQ0M2RhLi45ODJhMjA2IDEwMDY0NAotLS0gYS9mcy9uZnMvZGlyLmMKKysrIGIvZnMvbmZzL2Rpci5jCkBAIC0yMDQsNyArMjA0LDcgQEAKIAkgKiBOb3RlOiBhc3N1bWVzIHdlIGhhdmUgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGlzIG1hcHBpbmcgZWl0aGVyCiAJICoJIHRocm91Z2ggaW5vZGUtPmlfbXV0ZXggb3Igc29tZSBvdGhlciBtZWNoYW5pc20uCiAJICovCi0JaWYgKHBhZ2UtPmluZGV4ID09IDAgJiYgaW52YWxpZGF0ZV9pbm9kZV9wYWdlczJfcmFuZ2UoaW5vZGUtPmlfbWFwcGluZywgUEFHRV9DQUNIRV9TSVpFLCAtMSkgPCAwKSB7CisJaWYgKGludmFsaWRhdGVfaW5vZGVfcGFnZXMyX3JhbmdlKGlub2RlLT5pX21hcHBpbmcsIHBhZ2UtPmluZGV4ICsgMSwgLTEpIDwgMCkgewogCQkvKiBTaG91bGQgbmV2ZXIgaGFwcGVuICovCiAJCW5mc196YXBfbWFwcGluZyhpbm9kZSwgaW5vZGUtPmlfbWFwcGluZyk7CiAJfQpkaWZmIC0tZ2l0IGEvZnMvbmZzL2ZpbGUuYyBiL2ZzL25mcy9maWxlLmMKaW5kZXggZDg0YTNkOC4uNGU5OGE1NiAxMDA2NDQKLS0tIGEvZnMvbmZzL2ZpbGUuYworKysgYi9mcy9uZnMvZmlsZS5jCkBAIC0xNzAsNiArMTcwLDcgQEAKIAogc3RhdGljIGxvZmZfdCBuZnNfZmlsZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbHAsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCiB7CisJbG9mZl90IGxvZmY7CiAJLyogb3JpZ2luID09IFNFRUtfRU5EID0+IHdlIG11c3QgcmV2YWxpZGF0ZSB0aGUgY2FjaGVkIGZpbGUgbGVuZ3RoICovCiAJaWYgKG9yaWdpbiA9PSBTRUVLX0VORCkgewogCQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlscC0+Zl9tYXBwaW5nLT5ob3N0OwpAQCAtMTc3LDcgKzE3OCwxMCBAQAogCQlpZiAocmV0dmFsIDwgMCkKIAkJCXJldHVybiAobG9mZl90KXJldHZhbDsKIAl9Ci0JcmV0dXJuIHJlbW90ZV9sbHNlZWsoZmlscCwgb2Zmc2V0LCBvcmlnaW4pOworCWxvY2tfa2VybmVsKCk7CS8qIEJLTCBuZWVkZWQ/ICovCisJbG9mZiA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlscCwgb2Zmc2V0LCBvcmlnaW4pOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gbG9mZjsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2ZzL25mcy9tb3VudF9jbG50LmMgYi9mcy9uZnMvbW91bnRfY2xudC5jCmluZGV4IDQ5YzdjZDAuLjc3OWQyZWIgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9tb3VudF9jbG50LmMKKysrIGIvZnMvbmZzL21vdW50X2NsbnQuYwpAQCAtMTMwLDEwICsxMzAsMTEgQEAKIAkJCQlzdHJ1Y3QgbW50X2Zoc3RhdHVzICpyZXMpCiB7CiAJc3RydWN0IG5mc19maCAqZmggPSByZXMtPmZoOworCXVuc2lnbmVkIHNpemU7CiAKIAlpZiAoKHJlcy0+c3RhdHVzID0gbnRvaGwoKnArKykpID09IDApIHsKLQkJaW50IHNpemUgPSBudG9obCgqcCsrKTsKLQkJaWYgKHNpemUgPD0gTkZTM19GSFNJWkUpIHsKKwkJc2l6ZSA9IG50b2hsKCpwKyspOworCQlpZiAoc2l6ZSA8PSBORlMzX0ZIU0laRSAmJiBzaXplICE9IDApIHsKIAkJCWZoLT5zaXplID0gc2l6ZTsKIAkJCW1lbWNweShmaC0+ZGF0YSwgcCwgc2l6ZSk7CiAJCX0gZWxzZQpkaWZmIC0tZ2l0IGEvZnMvbmZzL3N1cGVyLmMgYi9mcy9uZnMvc3VwZXIuYwppbmRleCAyYTRhMDI0Li42MTRlZmVlIDEwMDY0NAotLS0gYS9mcy9uZnMvc3VwZXIuYworKysgYi9mcy9uZnMvc3VwZXIuYwpAQCAtMTIxNiw4ICsxMjE2LDYgQEAKIHsKIAlzdHJ1Y3QgbmZzX21vdW50X2RhdGEgKmRhdGEgPSAoc3RydWN0IG5mc19tb3VudF9kYXRhICopb3B0aW9uczsKIAotCW1lbXNldChhcmdzLCAwLCBzaXplb2YoKmFyZ3MpKTsKLQogCWlmIChkYXRhID09IE5VTEwpCiAJCWdvdG8gb3V0X25vX2RhdGE7CiAKQEAgLTEyNTEsMTMgKzEyNDksMTMgQEAKIAljYXNlIDU6CiAJCW1lbXNldChkYXRhLT5jb250ZXh0LCAwLCBzaXplb2YoZGF0YS0+Y29udGV4dCkpOwogCWNhc2UgNjoKLQkJaWYgKGRhdGEtPmZsYWdzICYgTkZTX01PVU5UX1ZFUjMpCisJCWlmIChkYXRhLT5mbGFncyAmIE5GU19NT1VOVF9WRVIzKSB7CisJCQlpZiAoZGF0YS0+cm9vdC5zaXplID4gTkZTM19GSFNJWkUgfHwgZGF0YS0+cm9vdC5zaXplID09IDApCisJCQkJZ290byBvdXRfaW52YWxpZF9maDsKIAkJCW1udGZoLT5zaXplID0gZGF0YS0+cm9vdC5zaXplOwotCQllbHNlCisJCX0gZWxzZQogCQkJbW50ZmgtPnNpemUgPSBORlMyX0ZIU0laRTsKIAotCQlpZiAobW50ZmgtPnNpemUgPiBzaXplb2YobW50ZmgtPmRhdGEpKQotCQkJZ290byBvdXRfaW52YWxpZF9maDsKIAogCQltZW1jcHkobW50ZmgtPmRhdGEsIGRhdGEtPnJvb3QuZGF0YSwgbW50ZmgtPnNpemUpOwogCQlpZiAobW50ZmgtPnNpemUgPCBzaXplb2YobW50ZmgtPmRhdGEpKQpAQCAtMTU4NSwyNCArMTU4MywyOSBAQAogewogCXN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXIgPSBOVUxMOwogCXN0cnVjdCBzdXBlcl9ibG9jayAqczsKLQlzdHJ1Y3QgbmZzX2ZoIG1udGZoOwotCXN0cnVjdCBuZnNfcGFyc2VkX21vdW50X2RhdGEgZGF0YTsKKwlzdHJ1Y3QgbmZzX3BhcnNlZF9tb3VudF9kYXRhICpkYXRhOworCXN0cnVjdCBuZnNfZmggKm1udGZoOwogCXN0cnVjdCBkZW50cnkgKm1udHJvb3Q7CiAJaW50ICgqY29tcGFyZV9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKikgPSBuZnNfY29tcGFyZV9zdXBlcjsKIAlzdHJ1Y3QgbmZzX3NiX21vdW50ZGF0YSBzYl9tbnRkYXRhID0gewogCQkubW50ZmxhZ3MgPSBmbGFncywKIAl9OwotCWludCBlcnJvcjsKKwlpbnQgZXJyb3IgPSAtRU5PTUVNOwogCi0Jc2VjdXJpdHlfaW5pdF9tbnRfb3B0cygmZGF0YS5sc21fb3B0cyk7CisJZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJbW50ZmggPSBremFsbG9jKHNpemVvZigqbW50ZmgpLCBHRlBfS0VSTkVMKTsKKwlpZiAoZGF0YSA9PSBOVUxMIHx8IG1udGZoID09IE5VTEwpCisJCWdvdG8gb3V0X2ZyZWVfZmg7CisKKwlzZWN1cml0eV9pbml0X21udF9vcHRzKCZkYXRhLT5sc21fb3B0cyk7CiAKIAkvKiBWYWxpZGF0ZSB0aGUgbW91bnQgZGF0YSAqLwotCWVycm9yID0gbmZzX3ZhbGlkYXRlX21vdW50X2RhdGEocmF3X2RhdGEsICZkYXRhLCAmbW50ZmgsIGRldl9uYW1lKTsKKwllcnJvciA9IG5mc192YWxpZGF0ZV9tb3VudF9kYXRhKHJhd19kYXRhLCBkYXRhLCBtbnRmaCwgZGV2X25hbWUpOwogCWlmIChlcnJvciA8IDApCiAJCWdvdG8gb3V0OwogCiAJLyogR2V0IGEgdm9sdW1lIHJlcHJlc2VudGF0aW9uICovCi0Jc2VydmVyID0gbmZzX2NyZWF0ZV9zZXJ2ZXIoJmRhdGEsICZtbnRmaCk7CisJc2VydmVyID0gbmZzX2NyZWF0ZV9zZXJ2ZXIoZGF0YSwgbW50ZmgpOwogCWlmIChJU19FUlIoc2VydmVyKSkgewogCQllcnJvciA9IFBUUl9FUlIoc2VydmVyKTsKIAkJZ290byBvdXQ7CkBAIC0xNjMwLDE2ICsxNjMzLDE2IEBACiAKIAlpZiAoIXMtPnNfcm9vdCkgewogCQkvKiBpbml0aWFsIHN1cGVyYmxvY2svcm9vdCBjcmVhdGlvbiAqLwotCQluZnNfZmlsbF9zdXBlcihzLCAmZGF0YSk7CisJCW5mc19maWxsX3N1cGVyKHMsIGRhdGEpOwogCX0KIAotCW1udHJvb3QgPSBuZnNfZ2V0X3Jvb3QocywgJm1udGZoKTsKKwltbnRyb290ID0gbmZzX2dldF9yb290KHMsIG1udGZoKTsKIAlpZiAoSVNfRVJSKG1udHJvb3QpKSB7CiAJCWVycm9yID0gUFRSX0VSUihtbnRyb290KTsKIAkJZ290byBlcnJvcl9zcGxhdF9zdXBlcjsKIAl9CiAKLQllcnJvciA9IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzLCAmZGF0YS5sc21fb3B0cyk7CisJZXJyb3IgPSBzZWN1cml0eV9zYl9zZXRfbW50X29wdHMocywgJmRhdGEtPmxzbV9vcHRzKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZXJyb3Jfc3BsYXRfcm9vdDsKIApAQCAtMTY0OSw5ICsxNjUyLDEyIEBACiAJZXJyb3IgPSAwOwogCiBvdXQ6Ci0Ja2ZyZWUoZGF0YS5uZnNfc2VydmVyLmhvc3RuYW1lKTsKLQlrZnJlZShkYXRhLm1vdW50X3NlcnZlci5ob3N0bmFtZSk7Ci0Jc2VjdXJpdHlfZnJlZV9tbnRfb3B0cygmZGF0YS5sc21fb3B0cyk7CisJa2ZyZWUoZGF0YS0+bmZzX3NlcnZlci5ob3N0bmFtZSk7CisJa2ZyZWUoZGF0YS0+bW91bnRfc2VydmVyLmhvc3RuYW1lKTsKKwlzZWN1cml0eV9mcmVlX21udF9vcHRzKCZkYXRhLT5sc21fb3B0cyk7CitvdXRfZnJlZV9maDoKKwlrZnJlZShtbnRmaCk7CisJa2ZyZWUoZGF0YSk7CiAJcmV0dXJuIGVycm9yOwogCiBvdXRfZXJyX25vc2I6CkBAIC0xODAwLDggKzE4MDYsNiBAQAogCXN0cnVjdCBuZnM0X21vdW50X2RhdGEgKmRhdGEgPSAoc3RydWN0IG5mczRfbW91bnRfZGF0YSAqKW9wdGlvbnM7CiAJY2hhciAqYzsKIAotCW1lbXNldChhcmdzLCAwLCBzaXplb2YoKmFyZ3MpKTsKLQogCWlmIChkYXRhID09IE5VTEwpCiAJCWdvdG8gb3V0X25vX2RhdGE7CiAKQEAgLTE5NTksMjYgKzE5NjMsMzEgQEAKIHN0YXRpYyBpbnQgbmZzNF9nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCiAJaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqcmF3X2RhdGEsIHN0cnVjdCB2ZnNtb3VudCAqbW50KQogewotCXN0cnVjdCBuZnNfcGFyc2VkX21vdW50X2RhdGEgZGF0YTsKKwlzdHJ1Y3QgbmZzX3BhcnNlZF9tb3VudF9kYXRhICpkYXRhOwogCXN0cnVjdCBzdXBlcl9ibG9jayAqczsKIAlzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyOwotCXN0cnVjdCBuZnNfZmggbW50Zmg7CisJc3RydWN0IG5mc19maCAqbW50Zmg7CiAJc3RydWN0IGRlbnRyeSAqbW50cm9vdDsKIAlpbnQgKCpjb21wYXJlX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqKSA9IG5mc19jb21wYXJlX3N1cGVyOwogCXN0cnVjdCBuZnNfc2JfbW91bnRkYXRhIHNiX21udGRhdGEgPSB7CiAJCS5tbnRmbGFncyA9IGZsYWdzLAogCX07Ci0JaW50IGVycm9yOworCWludCBlcnJvciA9IC1FTk9NRU07CiAKLQlzZWN1cml0eV9pbml0X21udF9vcHRzKCZkYXRhLmxzbV9vcHRzKTsKKwlkYXRhID0ga3phbGxvYyhzaXplb2YoKmRhdGEpLCBHRlBfS0VSTkVMKTsKKwltbnRmaCA9IGt6YWxsb2Moc2l6ZW9mKCptbnRmaCksIEdGUF9LRVJORUwpOworCWlmIChkYXRhID09IE5VTEwgfHwgbW50ZmggPT0gTlVMTCkKKwkJZ290byBvdXRfZnJlZV9maDsKKworCXNlY3VyaXR5X2luaXRfbW50X29wdHMoJmRhdGEtPmxzbV9vcHRzKTsKIAogCS8qIFZhbGlkYXRlIHRoZSBtb3VudCBkYXRhICovCi0JZXJyb3IgPSBuZnM0X3ZhbGlkYXRlX21vdW50X2RhdGEocmF3X2RhdGEsICZkYXRhLCBkZXZfbmFtZSk7CisJZXJyb3IgPSBuZnM0X3ZhbGlkYXRlX21vdW50X2RhdGEocmF3X2RhdGEsIGRhdGEsIGRldl9uYW1lKTsKIAlpZiAoZXJyb3IgPCAwKQogCQlnb3RvIG91dDsKIAogCS8qIEdldCBhIHZvbHVtZSByZXByZXNlbnRhdGlvbiAqLwotCXNlcnZlciA9IG5mczRfY3JlYXRlX3NlcnZlcigmZGF0YSwgJm1udGZoKTsKKwlzZXJ2ZXIgPSBuZnM0X2NyZWF0ZV9zZXJ2ZXIoZGF0YSwgbW50ZmgpOwogCWlmIChJU19FUlIoc2VydmVyKSkgewogCQllcnJvciA9IFBUUl9FUlIoc2VydmVyKTsKIAkJZ290byBvdXQ7CkBAIC0yMDA5LDEzICsyMDE4LDEzIEBACiAJCW5mczRfZmlsbF9zdXBlcihzKTsKIAl9CiAKLQltbnRyb290ID0gbmZzNF9nZXRfcm9vdChzLCAmbW50ZmgpOworCW1udHJvb3QgPSBuZnM0X2dldF9yb290KHMsIG1udGZoKTsKIAlpZiAoSVNfRVJSKG1udHJvb3QpKSB7CiAJCWVycm9yID0gUFRSX0VSUihtbnRyb290KTsKIAkJZ290byBlcnJvcl9zcGxhdF9zdXBlcjsKIAl9CiAKLQllcnJvciA9IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzLCAmZGF0YS5sc21fb3B0cyk7CisJZXJyb3IgPSBzZWN1cml0eV9zYl9zZXRfbW50X29wdHMocywgJmRhdGEtPmxzbV9vcHRzKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZXJyb3Jfc3BsYXRfcm9vdDsKIApAQCAtMjAyNSwxMCArMjAzNCwxMyBAQAogCWVycm9yID0gMDsKIAogb3V0OgotCWtmcmVlKGRhdGEuY2xpZW50X2FkZHJlc3MpOwotCWtmcmVlKGRhdGEubmZzX3NlcnZlci5leHBvcnRfcGF0aCk7Ci0Ja2ZyZWUoZGF0YS5uZnNfc2VydmVyLmhvc3RuYW1lKTsKLQlzZWN1cml0eV9mcmVlX21udF9vcHRzKCZkYXRhLmxzbV9vcHRzKTsKKwlrZnJlZShkYXRhLT5jbGllbnRfYWRkcmVzcyk7CisJa2ZyZWUoZGF0YS0+bmZzX3NlcnZlci5leHBvcnRfcGF0aCk7CisJa2ZyZWUoZGF0YS0+bmZzX3NlcnZlci5ob3N0bmFtZSk7CisJc2VjdXJpdHlfZnJlZV9tbnRfb3B0cygmZGF0YS0+bHNtX29wdHMpOworb3V0X2ZyZWVfZmg6CisJa2ZyZWUobW50ZmgpOworCWtmcmVlKGRhdGEpOwogCXJldHVybiBlcnJvcjsKIAogb3V0X2ZyZWU6CmRpZmYgLS1naXQgYS9mcy9uZnMvd3JpdGUuYyBiL2ZzL25mcy93cml0ZS5jCmluZGV4IDZkOGFjZTMuLmYzMzM4NDggMTAwNjQ0Ci0tLSBhL2ZzL25mcy93cml0ZS5jCisrKyBiL2ZzL25mcy93cml0ZS5jCkBAIC03MzksMTIgKzczOSwxMyBAQAogCX0KIAogCXN0YXR1cyA9IG5mc193cml0ZXBhZ2Vfc2V0dXAoY3R4LCBwYWdlLCBvZmZzZXQsIGNvdW50KTsKLQlfX3NldF9wYWdlX2RpcnR5X25vYnVmZmVycyhwYWdlKTsKKwlpZiAoc3RhdHVzIDwgMCkKKwkJbmZzX3NldF9wYWdlZXJyb3IocGFnZSk7CisJZWxzZQorCQlfX3NldF9wYWdlX2RpcnR5X25vYnVmZmVycyhwYWdlKTsKIAogICAgICAgICBkcHJpbnRrKCJORlM6ICAgICAgbmZzX3VwZGF0ZXBhZ2UgcmV0dXJucyAlZCAoaXNpemUgJUxkKVxuIiwKIAkJCXN0YXR1cywgKGxvbmcgbG9uZylpX3NpemVfcmVhZChpbm9kZSkpOwotCWlmIChzdGF0dXMgPCAwKQotCQluZnNfc2V0X3BhZ2VlcnJvcihwYWdlKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmMgYi9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmMKaW5kZXggY2Y5NDAxZS4uY2ZkYjA4YiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvY2x1c3Rlci9ub2RlbWFuYWdlci5jCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvbm9kZW1hbmFnZXIuYwpAQCAtMjEsNyArMjEsNiBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvY29uZmlnZnMuaD4KIAogI2luY2x1ZGUgInRjcC5oIgpAQCAtMzYsNjUgKzM1LDYgQEAKICAqIGNsdXN0ZXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHdoZXJlIG5vZGVzIGFyZSBsb29rZWQgdXAgKi8KIHN0cnVjdCBvMm5tX2NsdXN0ZXIgKm8ybm1fc2luZ2xlX2NsdXN0ZXIgPSBOVUxMOwogCi0jZGVmaW5lIE9DRlMyX01BWF9IQl9DVExfUEFUSCAyNTYKLXN0YXRpYyBjaGFyIG9jZnMyX2hiX2N0bF9wYXRoW09DRlMyX01BWF9IQl9DVExfUEFUSF0gPSAiL3NiaW4vb2NmczJfaGJfY3RsIjsKLQotc3RhdGljIGN0bF90YWJsZSBvY2ZzMl9ubV90YWJsZVtdID0gewotCXsKLQkJLmN0bF9uYW1lCT0gMSwKLQkJLnByb2NuYW1lCT0gImhiX2N0bF9wYXRoIiwKLQkJLmRhdGEJCT0gb2NmczJfaGJfY3RsX3BhdGgsCi0JCS5tYXhsZW4JCT0gT0NGUzJfTUFYX0hCX0NUTF9QQVRILAotCQkubW9kZQkJPSAwNjQ0LAotCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9zdHJpbmcsCi0JCS5zdHJhdGVneQk9ICZzeXNjdGxfc3RyaW5nLAotCX0sCi0JeyAuY3RsX25hbWUgPSAwIH0KLX07Ci0KLXN0YXRpYyBjdGxfdGFibGUgb2NmczJfbW9kX3RhYmxlW10gPSB7Ci0JewotCQkuY3RsX25hbWUJPSBGU19PQ0ZTMl9OTSwKLQkJLnByb2NuYW1lCT0gIm5tIiwKLQkJLmRhdGEJCT0gTlVMTCwKLQkJLm1heGxlbgkJPSAwLAotCQkubW9kZQkJPSAwNTU1LAotCQkuY2hpbGQJCT0gb2NmczJfbm1fdGFibGUKLQl9LAotCXsgLmN0bF9uYW1lID0gMH0KLX07Ci0KLXN0YXRpYyBjdGxfdGFibGUgb2NmczJfa2Vybl90YWJsZVtdID0gewotCXsKLQkJLmN0bF9uYW1lCT0gRlNfT0NGUzIsCi0JCS5wcm9jbmFtZQk9ICJvY2ZzMiIsCi0JCS5kYXRhCQk9IE5VTEwsCi0JCS5tYXhsZW4JCT0gMCwKLQkJLm1vZGUJCT0gMDU1NSwKLQkJLmNoaWxkCQk9IG9jZnMyX21vZF90YWJsZQotCX0sCi0JeyAuY3RsX25hbWUgPSAwfQotfTsKLQotc3RhdGljIGN0bF90YWJsZSBvY2ZzMl9yb290X3RhYmxlW10gPSB7Ci0JewotCQkuY3RsX25hbWUJPSBDVExfRlMsCi0JCS5wcm9jbmFtZQk9ICJmcyIsCi0JCS5kYXRhCQk9IE5VTEwsCi0JCS5tYXhsZW4JCT0gMCwKLQkJLm1vZGUJCT0gMDU1NSwKLQkJLmNoaWxkCQk9IG9jZnMyX2tlcm5fdGFibGUKLQl9LAotCXsgLmN0bF9uYW1lID0gMCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKm9jZnMyX3RhYmxlX2hlYWRlciA9IE5VTEw7Ci0KLWNvbnN0IGNoYXIgKm8ybm1fZ2V0X2hiX2N0bF9wYXRoKHZvaWQpCi17Ci0JcmV0dXJuIG9jZnMyX2hiX2N0bF9wYXRoOwotfQotRVhQT1JUX1NZTUJPTF9HUEwobzJubV9nZXRfaGJfY3RsX3BhdGgpOwogCiBzdHJ1Y3QgbzJubV9ub2RlICpvMm5tX2dldF9ub2RlX2J5X251bSh1OCBub2RlX251bSkKIHsKQEAgLTk0MSw5ICs4ODEsNiBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9vMm5tKHZvaWQpCiB7Ci0JaWYgKG9jZnMyX3RhYmxlX2hlYWRlcikKLQkJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfdGFibGVfaGVhZGVyKTsKLQogCS8qIFhYWCBzeW5jIHdpdGggaGIgY2FsbGJhY2tzIGFuZCBzaHV0IGRvd24gaGI/ICovCiAJbzJuZXRfdW5yZWdpc3Rlcl9oYl9jYWxsYmFja3MoKTsKIAljb25maWdmc191bnJlZ2lzdGVyX3N1YnN5c3RlbSgmbzJubV9jbHVzdGVyX2dyb3VwLmNzX3N1YnN5cyk7CkBAIC05NjQsMTYgKzkwMSw5IEBACiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQlvY2ZzMl90YWJsZV9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfcm9vdF90YWJsZSk7Ci0JaWYgKCFvY2ZzMl90YWJsZV9oZWFkZXIpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJub2RlbWFuYWdlcjogdW5hYmxlIHRvIHJlZ2lzdGVyIHN5c2N0bFxuIik7Ci0JCXJldCA9IC1FTk9NRU07IC8qIG9yIHNvbWV0aGluZy4gKi8KLQkJZ290byBvdXRfbzJuZXQ7Ci0JfQotCiAJcmV0ID0gbzJuZXRfcmVnaXN0ZXJfaGJfY2FsbGJhY2tzKCk7CiAJaWYgKHJldCkKLQkJZ290byBvdXRfc3lzY3RsOworCQlnb3RvIG91dF9vMm5ldDsKIAogCWNvbmZpZ19ncm91cF9pbml0KCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzLnN1X2dyb3VwKTsKIAltdXRleF9pbml0KCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzLnN1X211dGV4KTsKQEAgLTk5MCw4ICs5MjAsNiBAQAogCWNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzKTsKIG91dF9jYWxsYmFja3M6CiAJbzJuZXRfdW5yZWdpc3Rlcl9oYl9jYWxsYmFja3MoKTsKLW91dF9zeXNjdGw6Ci0JdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfdGFibGVfaGVhZGVyKTsKIG91dF9vMm5ldDoKIAlvMm5ldF9leGl0KCk7CiBvdXQ6CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmggYi9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmgKaW5kZXggN2M4NjAzNi4uYzk5MmVhMCAxMDA2NDQKLS0tIGEvZnMvb2NmczIvY2x1c3Rlci9ub2RlbWFuYWdlci5oCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvbm9kZW1hbmFnZXIuaApAQCAtMzMsMTAgKzMzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb25maWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgogCi0jZGVmaW5lIEZTX09DRlMyX05NCQkxCi0KLWNvbnN0IGNoYXIgKm8ybm1fZ2V0X2hiX2N0bF9wYXRoKHZvaWQpOwotCiBzdHJ1Y3QgbzJubV9ub2RlIHsKIAlzcGlubG9ja190CQluZF9sb2NrOwogCXN0cnVjdCBjb25maWdfaXRlbQluZF9pdGVtOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jIGIvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jCmluZGV4IGVmYzAxNWMuLjQ0Zjg3Y2EgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMKQEAgLTYwNiw3ICs2MDYsOSBAQAogCiAJcmVzLT5sYXN0X3VzZWQgPSAwOwogCisJc3Bpbl9sb2NrKCZkbG0tPnNwaW5sb2NrKTsKIAlsaXN0X2FkZF90YWlsKCZyZXMtPnRyYWNraW5nLCAmZGxtLT50cmFja2luZ19saXN0KTsKKwlzcGluX3VubG9jaygmZGxtLT5zcGlubG9jayk7CiAKIAltZW1zZXQocmVzLT5sdmIsIDAsIERMTV9MVkJfTEVOKTsKIAltZW1zZXQocmVzLT5yZWZtYXAsIDAsIHNpemVvZihyZXMtPnJlZm1hcCkpOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtZ2x1ZS5jIGIvZnMvb2NmczIvZGxtZ2x1ZS5jCmluZGV4IDM5NGQyNWEuLjgwZTIwZDkgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbWdsdWUuYworKysgYi9mcy9vY2ZzMi9kbG1nbHVlLmMKQEAgLTE1NTQsOCArMTU1NCw4IEBACiAgKi8KIGludCBvY2ZzMl9maWxlX2xvY2soc3RydWN0IGZpbGUgKmZpbGUsIGludCBleCwgaW50IHRyeWxvY2spCiB7Ci0JaW50IHJldCwgbGV2ZWwgPSBleCA/IExLTV9FWE1PREUgOiBMS01fUFJNT0RFOwotCXVuc2lnbmVkIGludCBsa21fZmxhZ3MgPSB0cnlsb2NrID8gTEtNX05PUVVFVUUgOiAwOworCWludCByZXQsIGxldmVsID0gZXggPyBETE1fTE9DS19FWCA6IERMTV9MT0NLX1BSOworCXVuc2lnbmVkIGludCBsa21fZmxhZ3MgPSB0cnlsb2NrID8gRExNX0xLRl9OT1FVRVVFIDogMDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBvY2ZzMl9maWxlX3ByaXZhdGUgKmZwID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBvY2ZzMl9sb2NrX3JlcyAqbG9ja3JlcyA9ICZmcC0+ZnBfZmxvY2s7CkBAIC0xNTgyLDcgKzE1ODIsNyBAQAogCQkgKiBHZXQgdGhlIGxvY2sgYXQgTkxNT0RFIHRvIHN0YXJ0IC0gdGhhdCB3YXkgd2UKIAkJICogY2FuIGNhbmNlbCB0aGUgdXBjb252ZXJ0IHJlcXVlc3QgaWYgbmVlZCBiZS4KIAkJICovCi0JCXJldCA9IG9jZnMyX2xvY2tfY3JlYXRlKG9zYiwgbG9ja3JlcywgTEtNX05MTU9ERSwgMCk7CisJCXJldCA9IG9jZnMyX2xvY2tfY3JlYXRlKG9zYiwgbG9ja3JlcywgRExNX0xPQ0tfTkwsIDApOwogCQlpZiAocmV0IDwgMCkgewogCQkJbWxvZ19lcnJubyhyZXQpOwogCQkJZ290byBvdXQ7CkBAIC0xNTk3LDcgKzE1OTcsNyBAQAogCX0KIAogCWxvY2tyZXMtPmxfYWN0aW9uID0gT0NGUzJfQVNUX0NPTlZFUlQ7Ci0JbGttX2ZsYWdzIHw9IExLTV9DT05WRVJUOworCWxrbV9mbGFncyB8PSBETE1fTEtGX0NPTlZFUlQ7CiAJbG9ja3Jlcy0+bF9yZXF1ZXN0ZWQgPSBsZXZlbDsKIAlsb2NrcmVzX29yX2ZsYWdzKGxvY2tyZXMsIE9DRlMyX0xPQ0tfQlVTWSk7CiAKQEAgLTE2NjQsNyArMTY2NCw3IEBACiAJaWYgKCEobG9ja3Jlcy0+bF9mbGFncyAmIE9DRlMyX0xPQ0tfQVRUQUNIRUQpKQogCQlyZXR1cm47CiAKLQlpZiAobG9ja3Jlcy0+bF9sZXZlbCA9PSBMS01fTkxNT0RFKQorCWlmIChsb2NrcmVzLT5sX2xldmVsID09IERMTV9MT0NLX05MKQogCQlyZXR1cm47CiAKIAltbG9nKDAsICJVbmxvY2s6IFwiJXNcIiBmbGFnczogMHglbHgsIGxldmVsOiAlZCwgYWN0OiAlZFxuIiwKQEAgLTE2NzgsMTEgKzE2NzgsMTEgQEAKIAlsb2NrcmVzX29yX2ZsYWdzKGxvY2tyZXMsIE9DRlMyX0xPQ0tfQkxPQ0tFRCk7CiAJbG9ja3Jlcy0+bF9ibG9ja2luZyA9IERMTV9MT0NLX0VYOwogCi0JZ2VuID0gb2NmczJfcHJlcGFyZV9kb3duY29udmVydChsb2NrcmVzLCBMS01fTkxNT0RFKTsKKwlnZW4gPSBvY2ZzMl9wcmVwYXJlX2Rvd25jb252ZXJ0KGxvY2tyZXMsIERMTV9MT0NLX05MKTsKIAlsb2NrcmVzX2FkZF9tYXNrX3dhaXRlcihsb2NrcmVzLCAmbXcsIE9DRlMyX0xPQ0tfQlVTWSwgMCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9ja3Jlcy0+bF9sb2NrLCBmbGFncyk7CiAKLQlyZXQgPSBvY2ZzMl9kb3duY29udmVydF9sb2NrKG9zYiwgbG9ja3JlcywgTEtNX05MTU9ERSwgMCwgZ2VuKTsKKwlyZXQgPSBvY2ZzMl9kb3duY29udmVydF9sb2NrKG9zYiwgbG9ja3JlcywgRExNX0xPQ0tfTkwsIDAsIGdlbik7CiAJaWYgKHJldCkgewogCQltbG9nX2Vycm5vKHJldCk7CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3N0YWNrX28yY2IuYyBiL2ZzL29jZnMyL3N0YWNrX28yY2IuYwppbmRleCBiYmQxNjY3Li5mY2QxMjBmIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9zdGFja19vMmNiLmMKKysrIGIvZnMvb2NmczIvc3RhY2tfbzJjYi5jCkBAIC0zMTcsOCArMzE3LDcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgbzJjYl9jbHVzdGVyX2Rpc2Nvbm5lY3Qoc3RydWN0IG9jZnMyX2NsdXN0ZXJfY29ubmVjdGlvbiAqY29ubiwKLQkJCQkgICBpbnQgaGFuZ3VwX3BlbmRpbmcpCitzdGF0aWMgaW50IG8yY2JfY2x1c3Rlcl9kaXNjb25uZWN0KHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4pCiB7CiAJc3RydWN0IGRsbV9jdHh0ICpkbG0gPSBjb25uLT5jY19sb2Nrc3BhY2U7CiAJc3RydWN0IG8yZGxtX3ByaXZhdGUgKnByaXYgPSBjb25uLT5jY19wcml2YXRlOwpAQCAtMzMzLDQzICszMzIsNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBvMmhiX3N0b3AoY29uc3QgY2hhciAqZ3JvdXApCi17Ci0JaW50IHJldDsKLQljaGFyICphcmd2WzVdLCAqZW52cFszXTsKLQotCWFyZ3ZbMF0gPSAoY2hhciAqKW8ybm1fZ2V0X2hiX2N0bF9wYXRoKCk7Ci0JYXJndlsxXSA9ICItSyI7Ci0JYXJndlsyXSA9ICItdSI7Ci0JYXJndlszXSA9IChjaGFyICopZ3JvdXA7Ci0JYXJndls0XSA9IE5VTEw7Ci0KLQltbG9nKDAsICJSdW46ICVzICVzICVzICVzXG4iLCBhcmd2WzBdLCBhcmd2WzFdLCBhcmd2WzJdLCBhcmd2WzNdKTsKLQotCS8qIG1pbmltYWwgY29tbWFuZCBlbnZpcm9ubWVudCB0YWtlbiBmcm9tIGNwdV9ydW5fc2Jpbl9ob3RwbHVnICovCi0JZW52cFswXSA9ICJIT01FPS8iOwotCWVudnBbMV0gPSAiUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbiI7Ci0JZW52cFsyXSA9IE5VTEw7Ci0KLQlyZXQgPSBjYWxsX3VzZXJtb2RlaGVscGVyKGFyZ3ZbMF0sIGFyZ3YsIGVudnAsIFVNSF9XQUlUX1BST0MpOwotCWlmIChyZXQgPCAwKQotCQltbG9nX2Vycm5vKHJldCk7Ci19Ci0KLS8qCi0gKiBIYW5ndXAgaXMgYSBoYWNrIGZvciB0b29scyBjb21wYXRpYmlsaXR5LiAgT2xkZXIgb2NmczItdG9vbHMgc29mdHdhcmUKLSAqIGV4cGVjdHMgdGhlIGZpbGVzeXN0ZW0gdG8gY2FsbCAib2NmczJfaGJfY3RsIiBkdXJpbmcgdW5tb3VudC4gIFRoaXMKLSAqIGhhcHBlbnMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBETE0gZ290IHN0YXJ0ZWQsIHNvIHdlIGNhbid0IGRvIGl0Ci0gKiBpbiBvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QoKS4gIFdlIGJyaW5nIHRoZSBvMmhiX3N0b3AoKSBmdW5jdGlvbiBpbnRvCi0gKiB0aGUgZ2x1ZSBhbmQgcHJvdmlkZSBhICJoYW5ndXAiIEFQSSBmb3Igc3VwZXIuYyB0byBjYWxsLgotICoKLSAqIE90aGVyIHN0YWNrcyB3aWxsIGV2ZW50dWFsbHkgcHJvdmlkZSBhIE5VTEwgLT5oYW5ndXAoKSBwb2ludGVyLgotICovCi1zdGF0aWMgdm9pZCBvMmNiX2NsdXN0ZXJfaGFuZ3VwKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pCi17Ci0JbzJoYl9zdG9wKGdyb3VwKTsKLX0KLQogc3RhdGljIGludCBvMmNiX2NsdXN0ZXJfdGhpc19ub2RlKHVuc2lnbmVkIGludCAqbm9kZSkKIHsKIAlpbnQgbm9kZV9udW07CkBAIC0zODgsNyArMzUwLDYgQEAKIHN0YXRpYyBzdHJ1Y3Qgb2NmczJfc3RhY2tfb3BlcmF0aW9ucyBvMmNiX3N0YWNrX29wcyA9IHsKIAkuY29ubmVjdAk9IG8yY2JfY2x1c3Rlcl9jb25uZWN0LAogCS5kaXNjb25uZWN0CT0gbzJjYl9jbHVzdGVyX2Rpc2Nvbm5lY3QsCi0JLmhhbmd1cAkJPSBvMmNiX2NsdXN0ZXJfaGFuZ3VwLAogCS50aGlzX25vZGUJPSBvMmNiX2NsdXN0ZXJfdGhpc19ub2RlLAogCS5kbG1fbG9jawk9IG8yY2JfZGxtX2xvY2ssCiAJLmRsbV91bmxvY2sJPSBvMmNiX2RsbV91bmxvY2ssCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9zdGFja191c2VyLmMgYi9mcy9vY2ZzMi9zdGFja191c2VyLmMKaW5kZXggNmI5N2QxMS4uYmQ3ZTBmMyAxMDA2NDQKLS0tIGEvZnMvb2NmczIvc3RhY2tfdXNlci5jCisrKyBiL2ZzL29jZnMyL3N0YWNrX3VzZXIuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC02MTksMTAgKzYyMCwxMiBAQAogCQlyZXR1cm4gLUVOT01FTTsKIAlwLT5vcF90aGlzX25vZGUgPSAtMTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfbG9jaygmb2NmczJfY29udHJvbF9sb2NrKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwOwogCWxpc3RfYWRkKCZwLT5vcF9saXN0LCAmb2NmczJfY29udHJvbF9wcml2YXRlX2xpc3QpOwogCW11dGV4X3VubG9jaygmb2NmczJfY29udHJvbF9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTgxNiw4ICs4MTksNyBAQAogCXJldHVybiByYzsKIH0KIAotc3RhdGljIGludCB1c2VyX2NsdXN0ZXJfZGlzY29ubmVjdChzdHJ1Y3Qgb2NmczJfY2x1c3Rlcl9jb25uZWN0aW9uICpjb25uLAotCQkJCSAgIGludCBoYW5ndXBfcGVuZGluZykKK3N0YXRpYyBpbnQgdXNlcl9jbHVzdGVyX2Rpc2Nvbm5lY3Qoc3RydWN0IG9jZnMyX2NsdXN0ZXJfY29ubmVjdGlvbiAqY29ubikKIHsKIAlkbG1fcmVsZWFzZV9sb2Nrc3BhY2UoY29ubi0+Y2NfbG9ja3NwYWNlLCAyKTsKIAljb25uLT5jY19sb2Nrc3BhY2UgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3RhY2tnbHVlLmMgYi9mcy9vY2ZzMi9zdGFja2dsdWUuYwppbmRleCAxMTlmNjBjLi4xMGUxNDlhIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9zdGFja2dsdWUuYworKysgYi9mcy9vY2ZzMi9zdGFja2dsdWUuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CiAKICNpbmNsdWRlICJvY2ZzMl9mcy5oIgogCkBAIC0zMywxMSArMzQsMTMgQEAKIAogI2RlZmluZSBPQ0ZTMl9TVEFDS19QTFVHSU5fTzJDQgkJIm8yY2IiCiAjZGVmaW5lIE9DRlMyX1NUQUNLX1BMVUdJTl9VU0VSCQkidXNlciIKKyNkZWZpbmUgT0NGUzJfTUFYX0hCX0NUTF9QQVRICQkyNTYKIAogc3RhdGljIHN0cnVjdCBvY2ZzMl9sb2NraW5nX3Byb3RvY29sICpscHJvdG87CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9jZnMyX3N0YWNrX2xvY2spOwogc3RhdGljIExJU1RfSEVBRChvY2ZzMl9zdGFja19saXN0KTsKIHN0YXRpYyBjaGFyIGNsdXN0ZXJfc3RhY2tfbmFtZVtPQ0ZTMl9TVEFDS19MQUJFTF9MRU4gKyAxXTsKK3N0YXRpYyBjaGFyIG9jZnMyX2hiX2N0bF9wYXRoW09DRlMyX01BWF9IQl9DVExfUEFUSF0gPSAiL3NiaW4vb2NmczJfaGJfY3RsIjsKIAogLyoKICAqIFRoZSBzdGFjayBjdXJyZW50bHkgaW4gdXNlLiAgSWYgbm90IG51bGwsIGFjdGl2ZV9zdGFjay0+c3BfY291bnQgPiAwLApAQCAtMzQ5LDcgKzM1Miw3IEBACiAKIAlCVUdfT04oY29ubiA9PSBOVUxMKTsKIAotCXJldCA9IGFjdGl2ZV9zdGFjay0+c3Bfb3BzLT5kaXNjb25uZWN0KGNvbm4sIGhhbmd1cF9wZW5kaW5nKTsKKwlyZXQgPSBhY3RpdmVfc3RhY2stPnNwX29wcy0+ZGlzY29ubmVjdChjb25uKTsKIAogCS8qIFhYWCBTaG91bGQgd2UgZnJlZSBpdCBhbnl3YXk/ICovCiAJaWYgKCFyZXQpIHsKQEAgLTM2MiwxMyArMzY1LDQ4IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QpOwogCisvKgorICogTGVhdmUgdGhlIGdyb3VwIGZvciB0aGlzIGZpbGVzeXN0ZW0uICBUaGlzIGlzIGV4ZWN1dGVkIGJ5IGEgdXNlcnNwYWNlCisgKiBwcm9ncmFtIChzdG9yZWQgaW4gb2NmczJfaGJfY3RsX3BhdGgpLgorICovCitzdGF0aWMgdm9pZCBvY2ZzMl9sZWF2ZV9ncm91cChjb25zdCBjaGFyICpncm91cCkKK3sKKwlpbnQgcmV0OworCWNoYXIgKmFyZ3ZbNV0sICplbnZwWzNdOworCisJYXJndlswXSA9IG9jZnMyX2hiX2N0bF9wYXRoOworCWFyZ3ZbMV0gPSAiLUsiOworCWFyZ3ZbMl0gPSAiLXUiOworCWFyZ3ZbM10gPSAoY2hhciAqKWdyb3VwOworCWFyZ3ZbNF0gPSBOVUxMOworCisJLyogbWluaW1hbCBjb21tYW5kIGVudmlyb25tZW50IHRha2VuIGZyb20gY3B1X3J1bl9zYmluX2hvdHBsdWcgKi8KKwllbnZwWzBdID0gIkhPTUU9LyI7CisJZW52cFsxXSA9ICJQQVRIPS9zYmluOi9iaW46L3Vzci9zYmluOi91c3IvYmluIjsKKwllbnZwWzJdID0gTlVMTDsKKworCXJldCA9IGNhbGxfdXNlcm1vZGVoZWxwZXIoYXJndlswXSwgYXJndiwgZW52cCwgVU1IX1dBSVRfUFJPQyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCSAgICAgICAib2NmczI6IEVycm9yICVkIHJ1bm5pbmcgdXNlciBoZWxwZXIgIgorCQkgICAgICAgIlwiJXMgJXMgJXMgJXNcIlxuIiwKKwkJICAgICAgIHJldCwgYXJndlswXSwgYXJndlsxXSwgYXJndlsyXSwgYXJndlszXSk7CisJfQorfQorCisvKgorICogSGFuZ3VwIGlzIGEgcmVxdWlyZWQgcG9zdC11bW91bnQuICBvY2ZzMi10b29scyBzb2Z0d2FyZSBleHBlY3RzIHRoZQorICogZmlsZXN5c3RlbSB0byBjYWxsICJvY2ZzMl9oYl9jdGwiIGR1cmluZyB1bm1vdW50LiAgVGhpcyBoYXBwZW5zCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIERMTSBnb3Qgc3RhcnRlZCwgc28gd2UgY2FuJ3QgZG8gaXQKKyAqIGluIG9jZnMyX2NsdXN0ZXJfZGlzY29ubmVjdCgpLiAgVGhlIG9jZnMyX2xlYXZlX2dyb3VwKCkgZnVuY3Rpb24gZG9lcworICogdGhlIGFjdHVhbCB3b3JrLgorICovCiB2b2lkIG9jZnMyX2NsdXN0ZXJfaGFuZ3VwKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pCiB7CiAJQlVHX09OKGdyb3VwID09IE5VTEwpOwogCUJVR19PTihncm91cFtncm91cGxlbl0gIT0gJ1wwJyk7CiAKLQlpZiAoYWN0aXZlX3N0YWNrLT5zcF9vcHMtPmhhbmd1cCkKLQkJYWN0aXZlX3N0YWNrLT5zcF9vcHMtPmhhbmd1cChncm91cCwgZ3JvdXBsZW4pOworCW9jZnMyX2xlYXZlX2dyb3VwKGdyb3VwKTsKIAogCS8qIGNsdXN0ZXJfZGlzY29ubmVjdCgpIHdhcyBjYWxsZWQgd2l0aCBoYW5ndXBfcGVuZGluZz09MSAqLwogCW9jZnMyX3N0YWNrX2RyaXZlcl9wdXQoKTsKQEAgLTU0OCwxMCArNTg2LDgzIEBACiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIFN5c2N0bCBiaXRzCisgKgorICogVGhlIHN5c2N0bCBsaXZlcyBhdCAvcHJvYy9zeXMvZnMvb2NmczIvbm0vaGJfY3RsX3BhdGguICBUaGUgJ25tJyBkb2Vzbid0CisgKiBtYWtlIGFzIG11Y2ggc2Vuc2UgaW4gYSBtdWx0aXBsZSBjbHVzdGVyIHN0YWNrIHdvcmxkLCBidXQgaXQncyBzYWZlcgorICogYW5kIGVhc2llciB0byBwcmVzZXJ2ZSB0aGUgbmFtZS4KKyAqLworCisjZGVmaW5lIEZTX09DRlMyX05NCQkxCisKK3N0YXRpYyBjdGxfdGFibGUgb2NmczJfbm1fdGFibGVbXSA9IHsKKwl7CisJCS5jdGxfbmFtZQk9IDEsCisJCS5wcm9jbmFtZQk9ICJoYl9jdGxfcGF0aCIsCisJCS5kYXRhCQk9IG9jZnMyX2hiX2N0bF9wYXRoLAorCQkubWF4bGVuCQk9IE9DRlMyX01BWF9IQl9DVExfUEFUSCwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2Rvc3RyaW5nLAorCQkuc3RyYXRlZ3kJPSAmc3lzY3RsX3N0cmluZywKKwl9LAorCXsgLmN0bF9uYW1lID0gMCB9Cit9OworCitzdGF0aWMgY3RsX3RhYmxlIG9jZnMyX21vZF90YWJsZVtdID0geworCXsKKwkJLmN0bF9uYW1lCT0gRlNfT0NGUzJfTk0sCisJCS5wcm9jbmFtZQk9ICJubSIsCisJCS5kYXRhCQk9IE5VTEwsCisJCS5tYXhsZW4JCT0gMCwKKwkJLm1vZGUJCT0gMDU1NSwKKwkJLmNoaWxkCQk9IG9jZnMyX25tX3RhYmxlCisJfSwKKwl7IC5jdGxfbmFtZSA9IDB9Cit9OworCitzdGF0aWMgY3RsX3RhYmxlIG9jZnMyX2tlcm5fdGFibGVbXSA9IHsKKwl7CisJCS5jdGxfbmFtZQk9IEZTX09DRlMyLAorCQkucHJvY25hbWUJPSAib2NmczIiLAorCQkuZGF0YQkJPSBOVUxMLAorCQkubWF4bGVuCQk9IDAsCisJCS5tb2RlCQk9IDA1NTUsCisJCS5jaGlsZAkJPSBvY2ZzMl9tb2RfdGFibGUKKwl9LAorCXsgLmN0bF9uYW1lID0gMH0KK307CisKK3N0YXRpYyBjdGxfdGFibGUgb2NmczJfcm9vdF90YWJsZVtdID0geworCXsKKwkJLmN0bF9uYW1lCT0gQ1RMX0ZTLAorCQkucHJvY25hbWUJPSAiZnMiLAorCQkuZGF0YQkJPSBOVUxMLAorCQkubWF4bGVuCQk9IDAsCisJCS5tb2RlCQk9IDA1NTUsCisJCS5jaGlsZAkJPSBvY2ZzMl9rZXJuX3RhYmxlCisJfSwKKwl7IC5jdGxfbmFtZSA9IDAgfQorfTsKKworc3RhdGljIHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpvY2ZzMl90YWJsZV9oZWFkZXIgPSBOVUxMOworCisKKy8qCisgKiBJbml0aWFsaXphdGlvbgorICovCisKIHN0YXRpYyBpbnQgX19pbml0IG9jZnMyX3N0YWNrX2dsdWVfaW5pdCh2b2lkKQogewogCXN0cmNweShjbHVzdGVyX3N0YWNrX25hbWUsIE9DRlMyX1NUQUNLX1BMVUdJTl9PMkNCKTsKIAorCW9jZnMyX3RhYmxlX2hlYWRlciA9IHJlZ2lzdGVyX3N5c2N0bF90YWJsZShvY2ZzMl9yb290X3RhYmxlKTsKKwlpZiAoIW9jZnMyX3RhYmxlX2hlYWRlcikgeworCQlwcmludGsoS0VSTl9FUlIKKwkJICAgICAgICJvY2ZzMiBzdGFjayBnbHVlOiB1bmFibGUgdG8gcmVnaXN0ZXIgc3lzY3RsXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07IC8qIG9yIHNvbWV0aGluZy4gKi8KKwl9CisKIAlyZXR1cm4gb2NmczJfc3lzZnNfaW5pdCgpOwogfQogCkBAIC01NTksNiArNjcwLDggQEAKIHsKIAlscHJvdG8gPSBOVUxMOwogCW9jZnMyX3N5c2ZzX2V4aXQoKTsKKwlpZiAob2NmczJfdGFibGVfaGVhZGVyKQorCQl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShvY2ZzMl90YWJsZV9oZWFkZXIpOwogfQogCiBNT0RVTEVfQVVUSE9SKCJPcmFjbGUiKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3N0YWNrZ2x1ZS5oIGIvZnMvb2NmczIvc3RhY2tnbHVlLmgKaW5kZXggMDA1ZTRmMS4uZGI1NjI4MSAxMDA2NDQKLS0tIGEvZnMvb2NmczIvc3RhY2tnbHVlLmgKKysrIGIvZnMvb2NmczIvc3RhY2tnbHVlLmgKQEAgLTEzNCwyMiArMTM0LDEwIEBACiAJICogYmUgZnJlZWQuICBUaHVzLCBhIHN0YWNrIG11c3Qgbm90IHJldHVybiBmcm9tIC0+ZGlzY29ubmVjdCgpCiAJICogdW50aWwgaXQgd2lsbCBubyBsb25nZXIgcmVmZXJlbmNlIHRoZSBjb25uIHBvaW50ZXIuCiAJICoKLQkgKiBJZiBoYW5ndXBfcGVuZGluZyBpcyB6ZXJvLCBvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QoKSB3aWxsIGFsc28KLQkgKiBiZSBkcm9wcGluZyB0aGUgcmVmZXJlbmNlIG9uIHRoZSBtb2R1bGUuCisJICogT25jZSB0aGlzIGNhbGwgcmV0dXJucywgdGhlIHN0YWNrIGdsdWUgd2lsbCBiZSBkcm9wcGluZyB0aGlzCisJICogY29ubmVjdGlvbidzIHJlZmVyZW5jZSBvbiB0aGUgbW9kdWxlLgogCSAqLwotCWludCAoKmRpc2Nvbm5lY3QpKHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4sCi0JCQkgIGludCBoYW5ndXBfcGVuZGluZyk7Ci0KLQkvKgotCSAqIG9jZnMyX2NsdXN0ZXJfaGFuZ3VwKCkgZXhpc3RzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIKLQkgKiBvY2ZzMiB0b29scy4gIE9ubHkgdGhlIGNsYXNzaWMgc3RhY2sgcmVhbGx5IG5lZWRzIGl0LiAgQXMgc3VjaAotCSAqIC0+aGFuZ3VwKCkgaXMgbm90IHJlcXVpcmVkIG9mIGFsbCBzdGFja3MuICBTZWUgdGhlIGNvbW1lbnQgYnkKLQkgKiBvY2ZzMl9jbHVzdGVyX2hhbmd1cCgpIGZvciBtb3JlIGRldGFpbHMuCi0JICoKLQkgKiBOb3RlIHRoYXQgb2NmczJfY2x1c3Rlcl9oYW5ndXAoKSBjYW4gb25seSBiZSBjYWxsZWQgaWYKLQkgKiBoYW5ndXBfcGVuZGluZyB3YXMgcGFzc2VkIHRvIG9jZnMyX2NsdXN0ZXJfZGlzY29ubmVjdCgpLgotCSAqLwotCXZvaWQgKCpoYW5ndXApKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pOworCWludCAoKmRpc2Nvbm5lY3QpKHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4pOwogCiAJLyoKIAkgKiAtPnRoaXNfbm9kZSgpIHJldHVybnMgdGhlIGNsdXN0ZXIncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlCkBAIC0yNTgsNCArMjQ2LDUgQEAKIC8qIFVzZWQgYnkgc3RhY2sgcGx1Z2lucyAqLwogaW50IG9jZnMyX3N0YWNrX2dsdWVfcmVnaXN0ZXIoc3RydWN0IG9jZnMyX3N0YWNrX3BsdWdpbiAqcGx1Z2luKTsKIHZvaWQgb2NmczJfc3RhY2tfZ2x1ZV91bnJlZ2lzdGVyKHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gKnBsdWdpbik7CisKICNlbmRpZiAgLyogU1RBQ0tHTFVFX0ggKi8KZGlmZiAtLWdpdCBhL2ZzL29wZW4uYyBiL2ZzL29wZW4uYwppbmRleCBhMTQ1MDA4Li5hOTlhZDA5IDEwMDY0NAotLS0gYS9mcy9vcGVuLmMKKysrIGIvZnMvb3Blbi5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9iYWNraW5nLWRldi5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cmViaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L3Zmcy5oPgpAQCAtNDI1LDcgKzQyNiw3IEBACiB7CiAJc3RydWN0IG5hbWVpZGF0YSBuZDsKIAlpbnQgb2xkX2ZzdWlkLCBvbGRfZnNnaWQ7Ci0Ja2VybmVsX2NhcF90IG9sZF9jYXA7CisJa2VybmVsX2NhcF90IHVuaW5pdGlhbGl6ZWRfdmFyKG9sZF9jYXApOyAgLyogIVNFQ1VSRV9OT19TRVRVSURfRklYVVAgKi8KIAlpbnQgcmVzOwogCiAJaWYgKG1vZGUgJiB+U19JUldYTykJLyogd2hlcmUncyBGX09LLCBYX09LLCBXX09LLCBSX09LPyAqLwpAQCAtNDMzLDIzICs0MzQsMjcgQEAKIAogCW9sZF9mc3VpZCA9IGN1cnJlbnQtPmZzdWlkOwogCW9sZF9mc2dpZCA9IGN1cnJlbnQtPmZzZ2lkOwotCW9sZF9jYXAgPSBjdXJyZW50LT5jYXBfZWZmZWN0aXZlOwogCiAJY3VycmVudC0+ZnN1aWQgPSBjdXJyZW50LT51aWQ7CiAJY3VycmVudC0+ZnNnaWQgPSBjdXJyZW50LT5naWQ7CiAKLQkvKgotCSAqIENsZWFyIHRoZSBjYXBhYmlsaXRpZXMgaWYgd2Ugc3dpdGNoIHRvIGEgbm9uLXJvb3QgdXNlcgotCSAqCi0JICogRklYTUU6IFRoZXJlIGlzIGEgcmFjZSBoZXJlIGFnYWluc3Qgc3lzX2NhcHNldC4gIFRoZQotCSAqIGNhcGFiaWxpdGllcyBjYW4gY2hhbmdlIHlldCB3ZSB3aWxsIHJlc3RvcmUgdGhlIG9sZAotCSAqIHZhbHVlIGJlbG93LiAgV2Ugc2hvdWxkIGhvbGQgdGFza19jYXBhYmlsaXRpZXNfbG9jaywKLQkgKiBidXQgd2UgY2Fubm90IGJlY2F1c2UgdXNlcl9wYXRoX3dhbGsgY2FuIHNsZWVwLgotCSAqLwotCWlmIChjdXJyZW50LT51aWQpCi0JCWNhcF9jbGVhcihjdXJyZW50LT5jYXBfZWZmZWN0aXZlKTsKLQllbHNlCi0JCWN1cnJlbnQtPmNhcF9lZmZlY3RpdmUgPSBjdXJyZW50LT5jYXBfcGVybWl0dGVkOworCWlmICghaXNzZWN1cmUoU0VDVVJFX05PX1NFVFVJRF9GSVhVUCkpIHsKKwkJLyoKKwkJICogQ2xlYXIgdGhlIGNhcGFiaWxpdGllcyBpZiB3ZSBzd2l0Y2ggdG8gYSBub24tcm9vdCB1c2VyCisJCSAqLworI2lmbmRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMKKwkJLyoKKwkJICogRklYTUU6IFRoZXJlIGlzIGEgcmFjZSBoZXJlIGFnYWluc3Qgc3lzX2NhcHNldC4gIFRoZQorCQkgKiBjYXBhYmlsaXRpZXMgY2FuIGNoYW5nZSB5ZXQgd2Ugd2lsbCByZXN0b3JlIHRoZSBvbGQKKwkJICogdmFsdWUgYmVsb3cuICBXZSBzaG91bGQgaG9sZCB0YXNrX2NhcGFiaWxpdGllc19sb2NrLAorCQkgKiBidXQgd2UgY2Fubm90IGJlY2F1c2UgdXNlcl9wYXRoX3dhbGsgY2FuIHNsZWVwLgorCQkgKi8KKyNlbmRpZiAvKiBuZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyAqLworCQlpZiAoY3VycmVudC0+dWlkKQorCQkJb2xkX2NhcCA9IGNhcF9zZXRfZWZmZWN0aXZlKF9fY2FwX2VtcHR5X3NldCk7CisJCWVsc2UKKwkJCW9sZF9jYXAgPSBjYXBfc2V0X2VmZmVjdGl2ZShjdXJyZW50LT5jYXBfcGVybWl0dGVkKTsKKwl9CiAKIAlyZXMgPSBfX3VzZXJfd2Fsa19mZChkZmQsIGZpbGVuYW1lLCBMT09LVVBfRk9MTE9XfExPT0tVUF9BQ0NFU1MsICZuZCk7CiAJaWYgKHJlcykKQEAgLTQ3OCw3ICs0ODMsOSBAQAogb3V0OgogCWN1cnJlbnQtPmZzdWlkID0gb2xkX2ZzdWlkOwogCWN1cnJlbnQtPmZzZ2lkID0gb2xkX2ZzZ2lkOwotCWN1cnJlbnQtPmNhcF9lZmZlY3RpdmUgPSBvbGRfY2FwOworCisJaWYgKCFpc3NlY3VyZShTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQKSkKKwkJY2FwX3NldF9lZmZlY3RpdmUob2xkX2NhcCk7CiAKIAlyZXR1cm4gcmVzOwogfQpkaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jCmluZGV4IGVjMjI4YmMuLjcwMGY0ZTAgMTAwNjQ0Ci0tLSBhL2ZzL3BpcGUuYworKysgYi9mcy9waXBlLmMKQEAgLTEwMDMsOCArMTAwMyw3IEBACiB2b2lkIGZyZWVfd3JpdGVfcGlwZShzdHJ1Y3QgZmlsZSAqZikKIHsKIAlmcmVlX3BpcGVfaW5mbyhmLT5mX2RlbnRyeS0+ZF9pbm9kZSk7Ci0JZHB1dChmLT5mX3BhdGguZGVudHJ5KTsKLQltbnRwdXQoZi0+Zl9wYXRoLm1udCk7CisJcGF0aF9wdXQoJmYtPmZfcGF0aCk7CiAJcHV0X2ZpbHAoZik7CiB9CiAKQEAgLTEwMTUsOCArMTAxNCw4IEBACiAJCXJldHVybiBFUlJfUFRSKC1FTkZJTEUpOwogCiAJLyogR3JhYiBwaXBlIGZyb20gdGhlIHdyaXRlciAqLwotCWYtPmZfcGF0aC5tbnQgPSBtbnRnZXQod3JmLT5mX3BhdGgubW50KTsKLQlmLT5mX3BhdGguZGVudHJ5ID0gZGdldCh3cmYtPmZfcGF0aC5kZW50cnkpOworCWYtPmZfcGF0aCA9IHdyZi0+Zl9wYXRoOworCXBhdGhfZ2V0KCZ3cmYtPmZfcGF0aCk7CiAJZi0+Zl9tYXBwaW5nID0gd3JmLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX21hcHBpbmc7CiAKIAlmLT5mX3BvcyA9IDA7CkBAIC0xMDY4LDggKzEwNjcsNyBAQAogIGVycl9mZHI6CiAJcHV0X3VudXNlZF9mZChmZHIpOwogIGVycl9yZWFkX3BpcGU6Ci0JZHB1dChmci0+Zl9kZW50cnkpOwotCW1udHB1dChmci0+Zl92ZnNtbnQpOworCXBhdGhfcHV0KCZmci0+Zl9wYXRoKTsKIAlwdXRfZmlscChmcik7CiAgZXJyX3dyaXRlX3BpcGU6CiAJZnJlZV93cml0ZV9waXBlKGZ3KTsKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvYmFzZS5jIGIvZnMvcHJvYy9iYXNlLmMKaW5kZXggM2I0NTUzNy4uNThjM2U2YSAxMDA2NDQKLS0tIGEvZnMvcHJvYy9iYXNlLmMKKysrIGIvZnMvcHJvYy9iYXNlLmMKQEAgLTIzMyw3ICsyMzMsNyBAQAogCSAqLwogCWlmICh0YXNrLT5wYXJlbnQgPT0gY3VycmVudCAmJiAodGFzay0+cHRyYWNlICYgUFRfUFRSQUNFRCkgJiYKIAkgICAgdGFza19pc19zdG9wcGVkX29yX3RyYWNlZCh0YXNrKSAmJgotCSAgICBwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkKKwkgICAgcHRyYWNlX21heV9hY2Nlc3ModGFzaywgUFRSQUNFX01PREVfQVRUQUNIKSkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtMjUxLDcgKzI1MSw4IEBACiAJdGFza19sb2NrKHRhc2spOwogCWlmICh0YXNrLT5tbSAhPSBtbSkKIAkJZ290byBvdXQ7Ci0JaWYgKHRhc2stPm1tICE9IGN1cnJlbnQtPm1tICYmIF9fcHRyYWNlX21heV9hdHRhY2godGFzaykgPCAwKQorCWlmICh0YXNrLT5tbSAhPSBjdXJyZW50LT5tbSAmJgorCSAgICBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpIDwgMCkKIAkJZ290byBvdXQ7CiAJdGFza191bmxvY2sodGFzayk7CiAJcmV0dXJuIG1tOwpAQCAtNTE4LDcgKzUxOSw3IEBACiAJICovCiAJdGFzayA9IGdldF9wcm9jX3Rhc2soaW5vZGUpOwogCWlmICh0YXNrKSB7Ci0JCWFsbG93ZWQgPSBwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwkJYWxsb3dlZCA9IHB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpOwogCQlwdXRfdGFza19zdHJ1Y3QodGFzayk7CiAJfQogCXJldHVybiBhbGxvd2VkOwpAQCAtOTA0LDcgKzkwNSw3IEBACiAJaWYgKCF0YXNrKQogCQlnb3RvIG91dF9ub190YXNrOwogCi0JaWYgKCFwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkKKwlpZiAoIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlnb3RvIG91dDsKIAogCXJldCA9IC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9wcm9jL3Byb2NfbWlzYy5jIGIvZnMvcHJvYy9wcm9jX21pc2MuYwppbmRleCA3ZTI3N2YyLi5jNjUyZDQ2IDEwMDY0NAotLS0gYS9mcy9wcm9jL3Byb2NfbWlzYy5jCisrKyBiL2ZzL3Byb2MvcHJvY19taXNjLmMKQEAgLTEyMyw2ICsxMjMsMTEgQEAKIAlyZXR1cm4gcHJvY19jYWxjX21ldHJpY3MocGFnZSwgc3RhcnQsIG9mZiwgY291bnQsIGVvZiwgbGVuKTsKIH0KIAoraW50IF9fYXR0cmlidXRlX18oKHdlYWspKSBhcmNoX3JlcG9ydF9tZW1pbmZvKGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbWVtaW5mb19yZWFkX3Byb2MoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmYsCiAJCQkJIGludCBjb3VudCwgaW50ICplb2YsIHZvaWQgKmRhdGEpCiB7CkBAIC0yMjEsNiArMjI2LDggQEAKIAogCQlsZW4gKz0gaHVnZXRsYl9yZXBvcnRfbWVtaW5mbyhwYWdlICsgbGVuKTsKIAorCWxlbiArPSBhcmNoX3JlcG9ydF9tZW1pbmZvKHBhZ2UgKyBsZW4pOworCiAJcmV0dXJuIHByb2NfY2FsY19tZXRyaWNzKHBhZ2UsIHN0YXJ0LCBvZmYsIGNvdW50LCBlb2YsIGxlbik7CiAjdW5kZWYgSwogfQpAQCAtNDcyLDYgKzQ3OSwxMyBAQAogfTsKICNlbmRpZgogCisjaWZuZGVmIGFyY2hfaXJxX3N0YXRfY3B1CisjZGVmaW5lIGFyY2hfaXJxX3N0YXRfY3B1KGNwdSkgMAorI2VuZGlmCisjaWZuZGVmIGFyY2hfaXJxX3N0YXQKKyNkZWZpbmUgYXJjaF9pcnFfc3RhdCgpIDAKKyNlbmRpZgorCiBzdGF0aWMgaW50IHNob3dfc3RhdChzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQgKnYpCiB7CiAJaW50IGk7CkBAIC01MDksNyArNTIzLDkgQEAKIAkJCXN1bSArPSB0ZW1wOwogCQkJcGVyX2lycV9zdW1bal0gKz0gdGVtcDsKIAkJfQorCQlzdW0gKz0gYXJjaF9pcnFfc3RhdF9jcHUoaSk7CiAJfQorCXN1bSArPSBhcmNoX2lycV9zdGF0KCk7CiAKIAlzZXFfcHJpbnRmKHAsICJjcHUgICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1XG4iLAogCQkodW5zaWduZWQgbG9uZyBsb25nKWNwdXRpbWU2NF90b19jbG9ja190KHVzZXIpLApkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21tdS5jIGIvZnMvcHJvYy90YXNrX21tdS5jCmluZGV4IDE3NDAzNjIuLjE2NGJkOWYgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvdGFza19tbXUuYworKysgYi9mcy9wcm9jL3Rhc2tfbW11LmMKQEAgLTIxMCw3ICsyMTAsNyBAQAogCWRldl90IGRldiA9IDA7CiAJaW50IGxlbjsKIAotCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKQorCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlyZXR1cm4gLUVBQ0NFUzsKIAogCWlmIChmaWxlKSB7CkBAIC0zMTUsOSArMzE1LDkgQEAKIH07CiAKIHN0YXRpYyBpbnQgc21hcHNfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB2b2lkICpwcml2YXRlKQorCQkJICAgc3RydWN0IG1tX3dhbGsgKndhbGspCiB7Ci0Jc3RydWN0IG1lbV9zaXplX3N0YXRzICptc3MgPSBwcml2YXRlOworCXN0cnVjdCBtZW1fc2l6ZV9zdGF0cyAqbXNzID0gd2Fsay0+cHJpdmF0ZTsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IG1zcy0+dm1hOwogCXB0ZV90ICpwdGUsIHB0ZW50OwogCXNwaW5sb2NrX3QgKnB0bDsKQEAgLTM2NSwxOSArMzY1LDIxIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgbW1fd2FsayBzbWFwc193YWxrID0geyAucG1kX2VudHJ5ID0gc21hcHNfcHRlX3JhbmdlIH07Ci0KIHN0YXRpYyBpbnQgc2hvd19zbWFwKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIHsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHY7CiAJc3RydWN0IG1lbV9zaXplX3N0YXRzIG1zczsKIAlpbnQgcmV0OworCXN0cnVjdCBtbV93YWxrIHNtYXBzX3dhbGsgPSB7CisJCS5wbWRfZW50cnkgPSBzbWFwc19wdGVfcmFuZ2UsCisJCS5tbSA9IHZtYS0+dm1fbW0sCisJCS5wcml2YXRlID0gJm1zcywKKwl9OwogCiAJbWVtc2V0KCZtc3MsIDAsIHNpemVvZiBtc3MpOwogCW1zcy52bWEgPSB2bWE7CiAJaWYgKHZtYS0+dm1fbW0gJiYgIWlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKQotCQl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQsCi0JCQkJJnNtYXBzX3dhbGssICZtc3MpOworCQl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQsICZzbWFwc193YWxrKTsKIAogCXJldCA9IHNob3dfbWFwKG0sIHYpOwogCWlmIChyZXQpCkBAIC00MjYsOSArNDI4LDkgQEAKIH07CiAKIHN0YXRpYyBpbnQgY2xlYXJfcmVmc19wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJCXVuc2lnbmVkIGxvbmcgZW5kLCB2b2lkICpwcml2YXRlKQorCQkJCXVuc2lnbmVkIGxvbmcgZW5kLCBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHByaXZhdGU7CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSB3YWxrLT5wcml2YXRlOwogCXB0ZV90ICpwdGUsIHB0ZW50OwogCXNwaW5sb2NrX3QgKnB0bDsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKQEAgLTQ1Miw4ICs0NTQsNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IG1tX3dhbGsgY2xlYXJfcmVmc193YWxrID0geyAucG1kX2VudHJ5ID0gY2xlYXJfcmVmc19wdGVfcmFuZ2UgfTsKLQogc3RhdGljIHNzaXplX3QgY2xlYXJfcmVmc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKQEAgLTQ3NiwxMSArNDc2LDE3IEBACiAJCXJldHVybiAtRVNSQ0g7CiAJbW0gPSBnZXRfdGFza19tbSh0YXNrKTsKIAlpZiAobW0pIHsKKwkJc3RydWN0IG1tX3dhbGsgY2xlYXJfcmVmc193YWxrID0geworCQkJLnBtZF9lbnRyeSA9IGNsZWFyX3JlZnNfcHRlX3JhbmdlLAorCQkJLm1tID0gbW0sCisJCX07CiAJCWRvd25fcmVhZCgmbW0tPm1tYXBfc2VtKTsKLQkJZm9yICh2bWEgPSBtbS0+bW1hcDsgdm1hOyB2bWEgPSB2bWEtPnZtX25leHQpCisJCWZvciAodm1hID0gbW0tPm1tYXA7IHZtYTsgdm1hID0gdm1hLT52bV9uZXh0KSB7CisJCQljbGVhcl9yZWZzX3dhbGsucHJpdmF0ZSA9IHZtYTsKIAkJCWlmICghaXNfdm1faHVnZXRsYl9wYWdlKHZtYSkpCi0JCQkJd2Fsa19wYWdlX3JhbmdlKG1tLCB2bWEtPnZtX3N0YXJ0LCB2bWEtPnZtX2VuZCwKLQkJCQkJCSZjbGVhcl9yZWZzX3dhbGssIHZtYSk7CisJCQkJd2Fsa19wYWdlX3JhbmdlKHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5kLAorCQkJCQkJJmNsZWFyX3JlZnNfd2Fsayk7CisJCX0KIAkJZmx1c2hfdGxiX21tKG1tKTsKIAkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKIAkJbW1wdXQobW0pOwpAQCAtNTI4LDkgKzUzNCw5IEBACiB9CiAKIHN0YXRpYyBpbnQgcGFnZW1hcF9wdGVfaG9sZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQl2b2lkICpwcml2YXRlKQorCQkJCXN0cnVjdCBtbV93YWxrICp3YWxrKQogewotCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSBwcml2YXRlOworCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSB3YWxrLT5wcml2YXRlOwogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAlpbnQgZXJyID0gMDsKIAlmb3IgKGFkZHIgPSBzdGFydDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUpIHsKQEAgLTU0NywyNCArNTUzLDQ1IEBACiAJcmV0dXJuIHN3cF90eXBlKGUpIHwgKHN3cF9vZmZzZXQoZSkgPDwgTUFYX1NXQVBGSUxFU19TSElGVCk7CiB9CiAKLXN0YXRpYyBpbnQgcGFnZW1hcF9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgICAgdm9pZCAqcHJpdmF0ZSkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZV90IHB0ZSkKIHsKLQlzdHJ1Y3QgcGFnZW1hcHJlYWQgKnBtID0gcHJpdmF0ZTsKKwl1bnNpZ25lZCBsb25nIHBtZSA9IDA7CisJaWYgKGlzX3N3YXBfcHRlKHB0ZSkpCisJCXBtZSA9IFBNX1BGUkFNRShzd2FwX3B0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZSkpCisJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1NXQVA7CisJZWxzZSBpZiAocHRlX3ByZXNlbnQocHRlKSkKKwkJcG1lID0gUE1fUEZSQU1FKHB0ZV9wZm4ocHRlKSkKKwkJCXwgUE1fUFNISUZUKFBBR0VfU0hJRlQpIHwgUE1fUFJFU0VOVDsKKwlyZXR1cm4gcG1lOworfQorCitzdGF0aWMgaW50IHBhZ2VtYXBfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgICAgIHN0cnVjdCBtbV93YWxrICp3YWxrKQoreworCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOworCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSB3YWxrLT5wcml2YXRlOwogCXB0ZV90ICpwdGU7CiAJaW50IGVyciA9IDA7CiAKKwkvKiBmaW5kIHRoZSBmaXJzdCBWTUEgYXQgb3IgYWJvdmUgJ2FkZHInICovCisJdm1hID0gZmluZF92bWEod2Fsay0+bW0sIGFkZHIpOwogCWZvciAoOyBhZGRyICE9IGVuZDsgYWRkciArPSBQQUdFX1NJWkUpIHsKIAkJdTY0IHBmbiA9IFBNX05PVF9QUkVTRU5UOwotCQlwdGUgPSBwdGVfb2Zmc2V0X21hcChwbWQsIGFkZHIpOwotCQlpZiAoaXNfc3dhcF9wdGUoKnB0ZSkpCi0JCQlwZm4gPSBQTV9QRlJBTUUoc3dhcF9wdGVfdG9fcGFnZW1hcF9lbnRyeSgqcHRlKSkKLQkJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1NXQVA7Ci0JCWVsc2UgaWYgKHB0ZV9wcmVzZW50KCpwdGUpKQotCQkJcGZuID0gUE1fUEZSQU1FKHB0ZV9wZm4oKnB0ZSkpCi0JCQkJfCBQTV9QU0hJRlQoUEFHRV9TSElGVCkgfCBQTV9QUkVTRU5UOwotCQkvKiB1bm1hcCBzbyB3ZSdyZSBub3QgaW4gYXRvbWljIHdoZW4gd2UgY29weSB0byB1c2Vyc3BhY2UgKi8KLQkJcHRlX3VubWFwKHB0ZSk7CisKKwkJLyogY2hlY2sgdG8gc2VlIGlmIHdlJ3ZlIGxlZnQgJ3ZtYScgYmVoaW5kCisJCSAqIGFuZCBuZWVkIGEgbmV3LCBoaWdoZXIgb25lICovCisJCWlmICh2bWEgJiYgKGFkZHIgPj0gdm1hLT52bV9lbmQpKQorCQkJdm1hID0gZmluZF92bWEod2Fsay0+bW0sIGFkZHIpOworCisJCS8qIGNoZWNrIHRoYXQgJ3ZtYScgYWN0dWFsbHkgY292ZXJzIHRoaXMgYWRkcmVzcywKKwkJICogYW5kIHRoYXQgaXQgaXNuJ3QgYSBodWdlIHBhZ2Ugdm1hICovCisJCWlmICh2bWEgJiYgKHZtYS0+dm1fc3RhcnQgPD0gYWRkcikgJiYKKwkJICAgICFpc192bV9odWdldGxiX3BhZ2Uodm1hKSkgeworCQkJcHRlID0gcHRlX29mZnNldF9tYXAocG1kLCBhZGRyKTsKKwkJCXBmbiA9IHB0ZV90b19wYWdlbWFwX2VudHJ5KCpwdGUpOworCQkJLyogdW5tYXAgYmVmb3JlIHVzZXJzcGFjZSBjb3B5ICovCisJCQlwdGVfdW5tYXAocHRlKTsKKwkJfQogCQllcnIgPSBhZGRfdG9fcGFnZW1hcChhZGRyLCBwZm4sIHBtKTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CkBAIC01NzUsMTEgKzYwMiw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHN0cnVjdCBtbV93YWxrIHBhZ2VtYXBfd2FsayA9IHsKLQkucG1kX2VudHJ5ID0gcGFnZW1hcF9wdGVfcmFuZ2UsCi0JLnB0ZV9ob2xlID0gcGFnZW1hcF9wdGVfaG9sZQotfTsKLQogLyoKICAqIC9wcm9jL3BpZC9wYWdlbWFwIC0gYW4gYXJyYXkgbWFwcGluZyB2aXJ0dWFsIHBhZ2VzIHRvIHBmbnMKICAqCkBAIC02MTQsMTIgKzYzNiwxNyBAQAogCXN0cnVjdCBwYWdlbWFwcmVhZCBwbTsKIAlpbnQgcGFnZWNvdW50OwogCWludCByZXQgPSAtRVNSQ0g7CisJc3RydWN0IG1tX3dhbGsgcGFnZW1hcF93YWxrOworCXVuc2lnbmVkIGxvbmcgc3JjOworCXVuc2lnbmVkIGxvbmcgc3ZwZm47CisJdW5zaWduZWQgbG9uZyBzdGFydF92YWRkcjsKKwl1bnNpZ25lZCBsb25nIGVuZF92YWRkcjsKIAogCWlmICghdGFzaykKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSAtRUFDQ0VTOwotCWlmICghcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKCFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJZ290byBvdXRfdGFzazsKIAogCXJldCA9IC1FSU5WQUw7CkBAIC02MzIsMTEgKzY1OSwxNSBAQAogCWlmICghbW0pCiAJCWdvdG8gb3V0X3Rhc2s7CiAKLQlyZXQgPSAtRU5PTUVNOworCiAJdWFkZHIgPSAodW5zaWduZWQgbG9uZylidWYgJiBQQUdFX01BU0s7CiAJdWVuZCA9ICh1bnNpZ25lZCBsb25nKShidWYgKyBjb3VudCk7CiAJcGFnZWNvdW50ID0gKFBBR0VfQUxJR04odWVuZCkgLSB1YWRkcikgLyBQQUdFX1NJWkU7Ci0JcGFnZXMgPSBrbWFsbG9jKHBhZ2Vjb3VudCAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gMDsKKwlpZiAocGFnZWNvdW50ID09IDApCisJCWdvdG8gb3V0X21tOworCXBhZ2VzID0ga2NhbGxvYyhwYWdlY291bnQsIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gLUVOT01FTTsKIAlpZiAoIXBhZ2VzKQogCQlnb3RvIG91dF9tbTsKIApAQCAtNjU3LDMzICs2ODgsMzMgQEAKIAlwbS5vdXQgPSAodTY0ICopYnVmOwogCXBtLmVuZCA9ICh1NjQgKikoYnVmICsgY291bnQpOwogCi0JaWYgKCFwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkgewotCQlyZXQgPSAtRUlPOwotCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGxvbmcgc3JjID0gKnBwb3M7Ci0JCXVuc2lnbmVkIGxvbmcgc3ZwZm4gPSBzcmMgLyBQTV9FTlRSWV9CWVRFUzsKLQkJdW5zaWduZWQgbG9uZyBzdGFydF92YWRkciA9IHN2cGZuIDw8IFBBR0VfU0hJRlQ7Ci0JCXVuc2lnbmVkIGxvbmcgZW5kX3ZhZGRyID0gVEFTS19TSVpFX09GKHRhc2spOworCXBhZ2VtYXBfd2Fsay5wbWRfZW50cnkgPSBwYWdlbWFwX3B0ZV9yYW5nZTsKKwlwYWdlbWFwX3dhbGsucHRlX2hvbGUgPSBwYWdlbWFwX3B0ZV9ob2xlOworCXBhZ2VtYXBfd2Fsay5tbSA9IG1tOworCXBhZ2VtYXBfd2Fsay5wcml2YXRlID0gJnBtOwogCi0JCS8qIHdhdGNoIG91dCBmb3Igd3JhcGFyb3VuZCAqLwotCQlpZiAoc3ZwZm4gPiBUQVNLX1NJWkVfT0YodGFzaykgPj4gUEFHRV9TSElGVCkKLQkJCXN0YXJ0X3ZhZGRyID0gZW5kX3ZhZGRyOworCXNyYyA9ICpwcG9zOworCXN2cGZuID0gc3JjIC8gUE1fRU5UUllfQllURVM7CisJc3RhcnRfdmFkZHIgPSBzdnBmbiA8PCBQQUdFX1NISUZUOworCWVuZF92YWRkciA9IFRBU0tfU0laRV9PRih0YXNrKTsKIAotCQkvKgotCQkgKiBUaGUgb2RkcyBhcmUgdGhhdCB0aGlzIHdpbGwgc3RvcCB3YWxraW5nIHdheQotCQkgKiBiZWZvcmUgZW5kX3ZhZGRyLCBiZWNhdXNlIHRoZSBsZW5ndGggb2YgdGhlCi0JCSAqIHVzZXIgYnVmZmVyIGlzIHRyYWNrZWQgaW4gInBtIiwgYW5kIHRoZSB3YWxrCi0JCSAqIHdpbGwgc3RvcCB3aGVuIHdlIGhpdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCi0JCSAqLwotCQlyZXQgPSB3YWxrX3BhZ2VfcmFuZ2UobW0sIHN0YXJ0X3ZhZGRyLCBlbmRfdmFkZHIsCi0JCQkJCSZwYWdlbWFwX3dhbGssICZwbSk7Ci0JCWlmIChyZXQgPT0gUE1fRU5EX09GX0JVRkZFUikKLQkJCXJldCA9IDA7Ci0JCS8qIGRvbid0IG5lZWQgbW1hcF9zZW0gZm9yIHRoZXNlLCBidXQgdGhpcyBsb29rcyBjbGVhbmVyICovCi0JCSpwcG9zICs9IChjaGFyICopcG0ub3V0IC0gYnVmOwotCQlpZiAoIXJldCkKLQkJCXJldCA9IChjaGFyICopcG0ub3V0IC0gYnVmOwotCX0KKwkvKiB3YXRjaCBvdXQgZm9yIHdyYXBhcm91bmQgKi8KKwlpZiAoc3ZwZm4gPiBUQVNLX1NJWkVfT0YodGFzaykgPj4gUEFHRV9TSElGVCkKKwkJc3RhcnRfdmFkZHIgPSBlbmRfdmFkZHI7CisKKwkvKgorCSAqIFRoZSBvZGRzIGFyZSB0aGF0IHRoaXMgd2lsbCBzdG9wIHdhbGtpbmcgd2F5CisJICogYmVmb3JlIGVuZF92YWRkciwgYmVjYXVzZSB0aGUgbGVuZ3RoIG9mIHRoZQorCSAqIHVzZXIgYnVmZmVyIGlzIHRyYWNrZWQgaW4gInBtIiwgYW5kIHRoZSB3YWxrCisJICogd2lsbCBzdG9wIHdoZW4gd2UgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KKwkgKi8KKwlyZXQgPSB3YWxrX3BhZ2VfcmFuZ2Uoc3RhcnRfdmFkZHIsIGVuZF92YWRkciwgJnBhZ2VtYXBfd2Fsayk7CisJaWYgKHJldCA9PSBQTV9FTkRfT0ZfQlVGRkVSKQorCQlyZXQgPSAwOworCS8qIGRvbid0IG5lZWQgbW1hcF9zZW0gZm9yIHRoZXNlLCBidXQgdGhpcyBsb29rcyBjbGVhbmVyICovCisJKnBwb3MgKz0gKGNoYXIgKilwbS5vdXQgLSBidWY7CisJaWYgKCFyZXQpCisJCXJldCA9IChjaGFyICopcG0ub3V0IC0gYnVmOwogCiBvdXRfcGFnZXM6CiAJZm9yICg7IHBhZ2Vjb3VudDsgcGFnZWNvdW50LS0pIHsKQEAgLTcxNiw3ICs3NDcsNyBAQAogCXN0cnVjdCBwcm9jX21hcHNfcHJpdmF0ZSAqcHJpdiA9IG0tPnByaXZhdGU7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrID0gcHJpdi0+dGFzazsKIAotCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKQorCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlyZXR1cm4gLUVBQ0NFUzsKIAogCXJldHVybiBzaG93X251bWFfbWFwKG0sIHYpOwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX25vbW11LmMgYi9mcy9wcm9jL3Rhc2tfbm9tbXUuYwppbmRleCA0YjRmOWNjLi41ZDg0ZTcxIDEwMDY0NAotLS0gYS9mcy9wcm9jL3Rhc2tfbm9tbXUuYworKysgYi9mcy9wcm9jL3Rhc2tfbm9tbXUuYwpAQCAtMTEzLDcgKzExMyw3IEBACiAJc3RydWN0IHByb2NfbWFwc19wcml2YXRlICpwcml2ID0gbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2sgPSBwcml2LT50YXNrOwogCi0JaWYgKG1hcHNfcHJvdGVjdCAmJiAhcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKG1hcHNfcHJvdGVjdCAmJiAhcHRyYWNlX21heV9hY2Nlc3ModGFzaywgUFRSQUNFX01PREVfUkVBRCkpCiAJCXJldHVybiAtRUFDQ0VTOwogCiAJcmV0dXJuIG5vbW11X3ZtYV9zaG93KG0sIHZtbC0+dm1hKTsKZGlmZiAtLWdpdCBhL2ZzL3JhbWZzL2ZpbGUtbW11LmMgYi9mcy9yYW1mcy9maWxlLW1tdS5jCmluZGV4IDk1OTBiOTAuLjc4ZjYxM2MgMTAwNjQ0Ci0tLSBhL2ZzL3JhbWZzL2ZpbGUtbW11LmMKKysrIGIvZnMvcmFtZnMvZmlsZS1tbXUuYwpAQCAtNDUsNiArNDUsNyBAQAogCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAogCS5mc3luYwkJPSBzaW1wbGVfc3luY19maWxlLAogCS5zcGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKKwkuc3BsaWNlX3dyaXRlCT0gZ2VuZXJpY19maWxlX3NwbGljZV93cml0ZSwKIAkubGxzZWVrCQk9IGdlbmVyaWNfZmlsZV9sbHNlZWssCiB9OwogCmRpZmYgLS1naXQgYS9mcy9yYW1mcy9maWxlLW5vbW11LmMgYi9mcy9yYW1mcy9maWxlLW5vbW11LmMKaW5kZXggMDk4OWJjMi4uNTIzMTJlYyAxMDA2NDQKLS0tIGEvZnMvcmFtZnMvZmlsZS1ub21tdS5jCisrKyBiL2ZzL3JhbWZzL2ZpbGUtbm9tbXUuYwpAQCAtNDMsNiArNDMsNyBAQAogCS5haW9fd3JpdGUJCT0gZ2VuZXJpY19maWxlX2Fpb193cml0ZSwKIAkuZnN5bmMJCQk9IHNpbXBsZV9zeW5jX2ZpbGUsCiAJLnNwbGljZV9yZWFkCQk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKKwkuc3BsaWNlX3dyaXRlCQk9IGdlbmVyaWNfZmlsZV9zcGxpY2Vfd3JpdGUsCiAJLmxsc2VlawkJCT0gZ2VuZXJpY19maWxlX2xsc2VlaywKIH07CiAKZGlmZiAtLWdpdCBhL2ZzL3JlYWRfd3JpdGUuYyBiL2ZzL3JlYWRfd3JpdGUuYwppbmRleCBmMGQxMjQwLi45YmE0OTVkIDEwMDY0NAotLS0gYS9mcy9yZWFkX3dyaXRlLmMKKysrIGIvZnMvcmVhZF93cml0ZS5jCkBAIC0zMSwxMiArMzEsMTIgQEAKIAogRVhQT1JUX1NZTUJPTChnZW5lcmljX3JvX2ZvcHMpOwogCi1sb2ZmX3QgZ2VuZXJpY19maWxlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK2xvZmZfdAorZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIHsKIAlsb2ZmX3QgcmV0dmFsOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX21hcHBpbmctPmhvc3Q7CiAKLQltdXRleF9sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJc3dpdGNoIChvcmlnaW4pIHsKIAkJY2FzZSBTRUVLX0VORDoKIAkJCW9mZnNldCArPSBpbm9kZS0+aV9zaXplOwpAQCAtNDYsNDIgKzQ2LDI2IEBACiAJfQogCXJldHZhbCA9IC1FSU5WQUw7CiAJaWYgKG9mZnNldD49MCAmJiBvZmZzZXQ8PWlub2RlLT5pX3NiLT5zX21heGJ5dGVzKSB7CisJCS8qIFNwZWNpYWwgbG9jayBuZWVkZWQgaGVyZT8gKi8KIAkJaWYgKG9mZnNldCAhPSBmaWxlLT5mX3BvcykgewogCQkJZmlsZS0+Zl9wb3MgPSBvZmZzZXQ7CiAJCQlmaWxlLT5mX3ZlcnNpb24gPSAwOwogCQl9CiAJCXJldHZhbCA9IG9mZnNldDsKIAl9Ci0JbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJcmV0dXJuIHJldHZhbDsKIH0KK0VYUE9SVF9TWU1CT0woZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZCk7CiAKLUVYUE9SVF9TWU1CT0woZ2VuZXJpY19maWxlX2xsc2Vlayk7Ci0KLWxvZmZfdCByZW1vdGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQorbG9mZl90IGdlbmVyaWNfZmlsZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCiB7Ci0JbG9mZl90IHJldHZhbDsKLQotCWxvY2tfa2VybmVsKCk7Ci0Jc3dpdGNoIChvcmlnaW4pIHsKLQkJY2FzZSBTRUVLX0VORDoKLQkJCW9mZnNldCArPSBpX3NpemVfcmVhZChmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKLQkJCWJyZWFrOwotCQljYXNlIFNFRUtfQ1VSOgotCQkJb2Zmc2V0ICs9IGZpbGUtPmZfcG9zOwotCX0KLQlyZXR2YWwgPSAtRUlOVkFMOwotCWlmIChvZmZzZXQ+PTAgJiYgb2Zmc2V0PD1maWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3NiLT5zX21heGJ5dGVzKSB7Ci0JCWlmIChvZmZzZXQgIT0gZmlsZS0+Zl9wb3MpIHsKLQkJCWZpbGUtPmZfcG9zID0gb2Zmc2V0OwotCQkJZmlsZS0+Zl92ZXJzaW9uID0gMDsKLQkJfQotCQlyZXR2YWwgPSBvZmZzZXQ7Ci0JfQotCXVubG9ja19rZXJuZWwoKTsKLQlyZXR1cm4gcmV0dmFsOworCWxvZmZfdCBuOworCW11dGV4X2xvY2soJmZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsKKwluID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJbXV0ZXhfdW5sb2NrKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7CisJcmV0dXJuIG47CiB9Ci1FWFBPUlRfU1lNQk9MKHJlbW90ZV9sbHNlZWspOworRVhQT1JUX1NZTUJPTChnZW5lcmljX2ZpbGVfbGxzZWVrKTsKIAogbG9mZl90IG5vX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIHsKZGlmZiAtLWdpdCBhL2ZzL3JlaXNlcmZzL2lub2RlLmMgYi9mcy9yZWlzZXJmcy9pbm9kZS5jCmluZGV4IDU3OTE3OTMuLjE5MjI2OTYgMTAwNjQ0Ci0tLSBhL2ZzL3JlaXNlcmZzL2lub2RlLmMKKysrIGIvZnMvcmVpc2VyZnMvaW5vZGUuYwpAQCAtNDUsNiArNDUsOCBAQAogCQkJZ290byBvdXQ7CiAJCXJlaXNlcmZzX3VwZGF0ZV9pbm9kZV90cmFuc2FjdGlvbihpbm9kZSk7CiAKKwkJcmVpc2VyZnNfZGlzY2FyZF9wcmVhbGxvYygmdGgsIGlub2RlKTsKKwogCQllcnIgPSByZWlzZXJmc19kZWxldGVfb2JqZWN0KCZ0aCwgaW5vZGUpOwogCiAJCS8qIERvIHF1b3RhIHVwZGF0ZSBpbnNpZGUgYSB0cmFuc2FjdGlvbiBmb3Igam91cm5hbGVkIHF1b3Rhcy4gV2UgbXVzdCBkbyB0aGF0CmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9zdXBlci5jIGIvZnMvcmVpc2VyZnMvc3VwZXIuYwppbmRleCBlZDQyNGQ3Li4xZDQwZjJiIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9zdXBlci5jCisrKyBiL2ZzL3JlaXNlcmZzL3N1cGVyLmMKQEAgLTIxNjUsOCArMjE2NSwxMCBAQAogCQlibGsrKzsKIAl9CiBvdXQ6Ci0JaWYgKGxlbiA9PSB0b3dyaXRlKQorCWlmIChsZW4gPT0gdG93cml0ZSkgeworCQltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4KTsKIAkJcmV0dXJuIGVycjsKKwl9CiAJaWYgKGlub2RlLT5pX3NpemUgPCBvZmYgKyBsZW4gLSB0b3dyaXRlKQogCQlpX3NpemVfd3JpdGUoaW5vZGUsIG9mZiArIGxlbiAtIHRvd3JpdGUpOwogCWlub2RlLT5pX3ZlcnNpb24rKzsKZGlmZiAtLWdpdCBhL2ZzL3NlbGVjdC5jIGIvZnMvc2VsZWN0LmMKaW5kZXggOGRkYTk2OS4uZGEwZTg4MiAxMDA2NDQKLS0tIGEvZnMvc2VsZWN0LmMKKysrIGIvZnMvc2VsZWN0LmMKQEAgLTI0OSw3ICsyNDksNiBAQAogCQkJCQkJcmV0dmFsKys7CiAJCQkJCX0KIAkJCQl9Ci0JCQkJY29uZF9yZXNjaGVkKCk7CiAJCQl9CiAJCQlpZiAocmVzX2luKQogCQkJCSpyaW5wID0gcmVzX2luOwpAQCAtMjU3LDYgKzI1Niw3IEBACiAJCQkJKnJvdXRwID0gcmVzX291dDsKIAkJCWlmIChyZXNfZXgpCiAJCQkJKnJleHAgPSByZXNfZXg7CisJCQljb25kX3Jlc2NoZWQoKTsKIAkJfQogCQl3YWl0ID0gTlVMTDsKIAkJaWYgKHJldHZhbCB8fCAhKnRpbWVvdXQgfHwgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCmRpZmYgLS1naXQgYS9mcy9zbWJmcy9maWxlLmMgYi9mcy9zbWJmcy9maWxlLmMKaW5kZXggZWZiZTI5YS4uMjI5NDc4MyAxMDA2NDQKLS0tIGEvZnMvc21iZnMvZmlsZS5jCisrKyBiL2ZzL3NtYmZzL2ZpbGUuYwpAQCAtNDIyLDkgKzQyMiwxOCBAQAogCXJldHVybiBlcnJvcjsKIH0KIAorc3RhdGljIGxvZmZfdCBzbWJfcmVtb3RlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK3sKKwlsb2ZmX3QgcmV0OworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc21iX2ZpbGVfb3BlcmF0aW9ucyA9CiB7Ci0JLmxsc2VlawkJPSByZW1vdGVfbGxzZWVrLAorCS5sbHNlZWsgCT0gc21iX3JlbW90ZV9sbHNlZWssCiAJLnJlYWQJCT0gZG9fc3luY19yZWFkLAogCS5haW9fcmVhZAk9IHNtYl9maWxlX2Fpb19yZWFkLAogCS53cml0ZQkJPSBkb19zeW5jX3dyaXRlLApkaWZmIC0tZ2l0IGEvZnMvc3BsaWNlLmMgYi9mcy9zcGxpY2UuYwppbmRleCBhYTVmNmY2Li4zOTk0NDIxIDEwMDY0NAotLS0gYS9mcy9zcGxpY2UuYworKysgYi9mcy9zcGxpY2UuYwpAQCAtMzc5LDEzICszNzksMjIgQEAKIAkJCQlsb2NrX3BhZ2UocGFnZSk7CiAKIAkJCS8qCi0JCQkgKiBwYWdlIHdhcyB0cnVuY2F0ZWQsIHN0b3AgaGVyZS4gaWYgdGhpcyBpc24ndCB0aGUKLQkJCSAqIGZpcnN0IHBhZ2UsIHdlJ2xsIGp1c3QgY29tcGxldGUgd2hhdCB3ZSBhbHJlYWR5Ci0JCQkgKiBhZGRlZAorCQkJICogUGFnZSB3YXMgdHJ1bmNhdGVkLCBvciBpbnZhbGlkYXRlZCBieSB0aGUKKwkJCSAqIGZpbGVzeXN0ZW0uICBSZWRvIHRoZSBmaW5kL2NyZWF0ZSwgYnV0IHRoaXMgdGltZSB0aGUKKwkJCSAqIHBhZ2UgaXMga2VwdCBsb2NrZWQsIHNvIHRoZXJlJ3Mgbm8gY2hhbmNlIG9mIGFub3RoZXIKKwkJCSAqIHJhY2Ugd2l0aCB0cnVuY2F0ZS9pbnZhbGlkYXRlLgogCQkJICovCiAJCQlpZiAoIXBhZ2UtPm1hcHBpbmcpIHsKIAkJCQl1bmxvY2tfcGFnZShwYWdlKTsKLQkJCQlicmVhazsKKwkJCQlwYWdlID0gZmluZF9vcl9jcmVhdGVfcGFnZShtYXBwaW5nLCBpbmRleCwKKwkJCQkJCW1hcHBpbmdfZ2ZwX21hc2sobWFwcGluZykpOworCisJCQkJaWYgKCFwYWdlKSB7CisJCQkJCWVycm9yID0gLUVOT01FTTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlc1twYWdlX25yXSk7CisJCQkJcGFnZXNbcGFnZV9ucl0gPSBwYWdlOwogCQkJfQogCQkJLyoKIAkJCSAqIHBhZ2Ugd2FzIGFscmVhZHkgdW5kZXIgaW8gYW5kIGlzIG5vdyBkb25lLCBncmVhdApkaWZmIC0tZ2l0IGEvZnMvdWRmL3N1cGVyLmMgYi9mcy91ZGYvc3VwZXIuYwppbmRleCA3YTVmNjliLi40NGNjNzAyIDEwMDY0NAotLS0gYS9mcy91ZGYvc3VwZXIuYworKysgYi9mcy91ZGYvc3VwZXIuYwpAQCAtNjgyLDM4ICs2ODIsMjYgQEAKIC8qCiAgKiBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFuIGFuY2hvciBibG9jayBpbiB0aGUgZ2l2ZW4gYmxvY2sKICAqLwotc3RhdGljIGludCB1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHNlY3Rvcl90IGJsb2NrLAotCQkJCQlib29sIHZhcmNvbnYpCitzdGF0aWMgaW50IHVkZl9jaGVja19hbmNob3JfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgYmxvY2spCiB7Ci0Jc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5VTEw7Ci0JdGFnICp0OworCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJdWludDE2X3QgaWRlbnQ7Ci0JdWludDMyX3QgbG9jYXRpb247CiAKLQlpZiAodmFyY29udikgewotCQlpZiAodWRmX2ZpeGVkX3RvX3ZhcmlhYmxlKGJsb2NrKSA+PQotCQkgICAgc2ItPnNfYmRldi0+YmRfaW5vZGUtPmlfc2l6ZSA+PiBzYi0+c19ibG9ja3NpemVfYml0cykKLQkJCXJldHVybiAwOwotCQliaCA9IHNiX2JyZWFkKHNiLCB1ZGZfZml4ZWRfdG9fdmFyaWFibGUoYmxvY2spKTsKLQl9Ci0JZWxzZQotCQliaCA9IHNiX2JyZWFkKHNiLCBibG9jayk7CisJaWYgKFVERl9RVUVSWV9GTEFHKHNiLCBVREZfRkxBR19WQVJDT05WKSAmJgorCSAgICB1ZGZfZml4ZWRfdG9fdmFyaWFibGUoYmxvY2spID49CisJICAgIHNiLT5zX2JkZXYtPmJkX2lub2RlLT5pX3NpemUgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHMpCisJCXJldHVybiAwOwogCisJYmggPSB1ZGZfcmVhZF90YWdnZWQoc2IsIGJsb2NrLCBibG9jaywgJmlkZW50KTsKIAlpZiAoIWJoKQogCQlyZXR1cm4gMDsKLQotCXQgPSAodGFnICopYmgtPmJfZGF0YTsKLQlpZGVudCA9IGxlMTZfdG9fY3B1KHQtPnRhZ0lkZW50KTsKLQlsb2NhdGlvbiA9IGxlMzJfdG9fY3B1KHQtPnRhZ0xvY2F0aW9uKTsKIAlicmVsc2UoYmgpOwotCWlmIChpZGVudCAhPSBUQUdfSURFTlRfQVZEUCkKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIGxvY2F0aW9uID09IGJsb2NrOworCisJcmV0dXJuIGlkZW50ID09IFRBR19JREVOVF9BVkRQOwogfQogCiAvKiBTZWFyY2ggZm9yIGFuIGFuY2hvciB2b2x1bWUgZGVzY3JpcHRvciBwb2ludGVyICovCi1zdGF0aWMgc2VjdG9yX3QgdWRmX3NjYW5fYW5jaG9ycyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBib29sIHZhcmNvbnYsCi0JCQkJCXNlY3Rvcl90IGxhc3RibG9jaykKK3N0YXRpYyBzZWN0b3JfdCB1ZGZfc2Nhbl9hbmNob3JzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHNlY3Rvcl90IGxhc3RibG9jaykKIHsKIAlzZWN0b3JfdCBsYXN0WzZdOwogCWludCBpOwpAQCAtNzM5LDcgKzcyNyw3IEBACiAJCQkJc2ItPnNfYmxvY2tzaXplX2JpdHMpCiAJCQljb250aW51ZTsKIAotCQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgbGFzdFtpXSwgdmFyY29udikpIHsKKwkJaWYgKHVkZl9jaGVja19hbmNob3JfYmxvY2soc2IsIGxhc3RbaV0pKSB7CiAJCQlzYmktPnNfYW5jaG9yWzBdID0gbGFzdFtpXTsKIAkJCXNiaS0+c19hbmNob3JbMV0gPSBsYXN0W2ldIC0gMjU2OwogCQkJcmV0dXJuIGxhc3RbaV07CkBAIC03NDgsMTcgKzczNiwxNyBAQAogCQlpZiAobGFzdFtpXSA8IDI1NikKIAkJCWNvbnRpbnVlOwogCi0JCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBsYXN0W2ldIC0gMjU2LCB2YXJjb252KSkgeworCQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgbGFzdFtpXSAtIDI1NikpIHsKIAkJCXNiaS0+c19hbmNob3JbMV0gPSBsYXN0W2ldIC0gMjU2OwogCQkJcmV0dXJuIGxhc3RbaV07CiAJCX0KIAl9CiAKLQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyAyNTYsIHZhcmNvbnYpKSB7CisJaWYgKHVkZl9jaGVja19hbmNob3JfYmxvY2soc2IsIHNiaS0+c19zZXNzaW9uICsgMjU2KSkgewogCQlzYmktPnNfYW5jaG9yWzBdID0gc2JpLT5zX3Nlc3Npb24gKyAyNTY7CiAJCXJldHVybiBsYXN0WzBdOwogCX0KLQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyA1MTIsIHZhcmNvbnYpKSB7CisJaWYgKHVkZl9jaGVja19hbmNob3JfYmxvY2soc2IsIHNiaS0+c19zZXNzaW9uICsgNTEyKSkgewogCQlzYmktPnNfYW5jaG9yWzBdID0gc2JpLT5zX3Nlc3Npb24gKyA1MTI7CiAJCXJldHVybiBsYXN0WzBdOwogCX0KQEAgLTc4MCwyMyArNzY4LDI0IEBACiAJaW50IGk7CiAJc3RydWN0IHVkZl9zYl9pbmZvICpzYmkgPSBVREZfU0Ioc2IpOwogCi0JbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgMCwgc2JpLT5zX2xhc3RfYmxvY2spOworCWxhc3RibG9jayA9IHVkZl9zY2FuX2FuY2hvcnMoc2IsIHNiaS0+c19sYXN0X2Jsb2NrKTsKIAlpZiAobGFzdGJsb2NrKQogCQlnb3RvIGNoZWNrX2FuY2hvcjsKIAogCS8qIE5vIGFuY2hvciBmb3VuZD8gVHJ5IFZBUkNPTlYgY29udmVyc2lvbiBvZiBibG9jayBudW1iZXJzICovCisJVURGX1NFVF9GTEFHKHNiLCBVREZfRkxBR19WQVJDT05WKTsKIAkvKiBGaXJzdGx5LCB3ZSB0cnkgdG8gbm90IGNvbnZlcnQgbnVtYmVyIG9mIHRoZSBsYXN0IGJsb2NrICovCi0JbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgMSwKKwlsYXN0YmxvY2sgPSB1ZGZfc2Nhbl9hbmNob3JzKHNiLAogCQkJCXVkZl92YXJpYWJsZV90b19maXhlZChzYmktPnNfbGFzdF9ibG9jaykpOwotCWlmIChsYXN0YmxvY2spIHsKLQkJVURGX1NFVF9GTEFHKHNiLCBVREZfRkxBR19WQVJDT05WKTsKKwlpZiAobGFzdGJsb2NrKQogCQlnb3RvIGNoZWNrX2FuY2hvcjsKLQl9CiAKIAkvKiBTZWNvbmRseSwgd2UgdHJ5IHdpdGggY29udmVydGVkIG51bWJlciBvZiB0aGUgbGFzdCBibG9jayAqLwotCWxhc3RibG9jayA9IHVkZl9zY2FuX2FuY2hvcnMoc2IsIDEsIHNiaS0+c19sYXN0X2Jsb2NrKTsKLQlpZiAobGFzdGJsb2NrKQotCQlVREZfU0VUX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOworCWxhc3RibG9jayA9IHVkZl9zY2FuX2FuY2hvcnMoc2IsIHNiaS0+c19sYXN0X2Jsb2NrKTsKKwlpZiAoIWxhc3RibG9jaykgeworCQkvKiBWQVJDT05WIGRpZG4ndCBoZWxwLiBDbGVhciBpdC4gKi8KKwkJVURGX0NMRUFSX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOworCX0KIAogY2hlY2tfYW5jaG9yOgogCS8qCmRpZmYgLS1naXQgYS9mcy91ZGYvdWRmZGVjbC5oIGIvZnMvdWRmL3VkZmRlY2wuaAppbmRleCA4ZmE5YzJkLi44ZWM4NjVkIDEwMDY0NAotLS0gYS9mcy91ZGYvdWRmZGVjbC5oCisrKyBiL2ZzL3VkZi91ZGZkZWNsLmgKQEAgLTE2LDcgKzE2LDcgQEAKICNkZWZpbmUgVURGX1BSRUFMTE9DQVRFCiAjZGVmaW5lIFVERl9ERUZBVUxUX1BSRUFMTE9DX0JMT0NLUwk4CiAKLSNkZWZpbmUgVURGRlNfREVCVUcKKyN1bmRlZiBVREZGU19ERUJVRwogCiAjaWZkZWYgVURGRlNfREVCVUcKICNkZWZpbmUgdWRmX2RlYnVnKGYsIGEuLi4pIFwKZGlmZiAtLWdpdCBhL2ZzL3V0aW1lcy5jIGIvZnMvdXRpbWVzLmMKaW5kZXggYWYwNTlkNS4uYjZiNjY0ZSAxMDA2NDQKLS0tIGEvZnMvdXRpbWVzLmMKKysrIGIvZnMvdXRpbWVzLmMKQEAgLTQwLDE0ICs0MCw5IEBACiAKICNlbmRpZgogCi1zdGF0aWMgYm9vbCBuc2VjX3NwZWNpYWwobG9uZyBuc2VjKQotewotCXJldHVybiBuc2VjID09IFVUSU1FX09NSVQgfHwgbnNlYyA9PSBVVElNRV9OT1c7Ci19Ci0KIHN0YXRpYyBib29sIG5zZWNfdmFsaWQobG9uZyBuc2VjKQogewotCWlmIChuc2VjX3NwZWNpYWwobnNlYykpCisJaWYgKG5zZWMgPT0gVVRJTUVfT01JVCB8fCBuc2VjID09IFVUSU1FX05PVykKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gbnNlYyA+PSAwICYmIG5zZWMgPD0gOTk5OTk5OTk5OwpAQCAtMTAyLDcgKzk3LDExIEBACiAJaWYgKGVycm9yKQogCQlnb3RvIGRwdXRfYW5kX291dDsKIAotCS8qIERvbid0IHdvcnJ5LCB0aGUgY2hlY2tzIGFyZSBkb25lIGluIGlub2RlX2NoYW5nZV9vaygpICovCisJaWYgKHRpbWVzICYmIHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XICYmCisJCSAgICAgdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9OT1cpCisJCXRpbWVzID0gTlVMTDsKKworCS8qIEluIG1vc3QgY2FzZXMsIHRoZSBjaGVja3MgYXJlIGRvbmUgaW4gaW5vZGVfY2hhbmdlX29rKCkgKi8KIAluZXdhdHRycy5pYV92YWxpZCA9IEFUVFJfQ1RJTUUgfCBBVFRSX01USU1FIHwgQVRUUl9BVElNRTsKIAlpZiAodGltZXMpIHsKIAkJZXJyb3IgPSAtRVBFUk07CkBAIC0xMjQsMjggKzEyMywzNCBAQAogCQkJbmV3YXR0cnMuaWFfbXRpbWUudHZfbnNlYyA9IHRpbWVzWzFdLnR2X25zZWM7CiAJCQluZXdhdHRycy5pYV92YWxpZCB8PSBBVFRSX01USU1FX1NFVDsKIAkJfQotCX0KIAotCS8qCi0JICogSWYgdGltZXMgaXMgTlVMTCBvciBib3RoIHRpbWVzIGFyZSBlaXRoZXIgVVRJTUVfT01JVCBvcgotCSAqIFVUSU1FX05PVywgdGhlbiBuZWVkIHRvIGNoZWNrIHBlcm1pc3Npb25zLCBiZWNhdXNlCi0JICogaW5vZGVfY2hhbmdlX29rKCkgd29uJ3QgZG8gaXQuCi0JICovCi0JaWYgKCF0aW1lcyB8fCAobnNlY19zcGVjaWFsKHRpbWVzWzBdLnR2X25zZWMpICYmCi0JCSAgICAgICBuc2VjX3NwZWNpYWwodGltZXNbMV0udHZfbnNlYykpKSB7CisJCS8qCisJCSAqIEZvciB0aGUgVVRJTUVfT01JVC9VVElNRV9OT1cgYW5kIFVUSU1FX05PVy9VVElNRV9PTUlUCisJCSAqIGNhc2VzLCB3ZSBuZWVkIHRvIG1ha2UgYW4gZXh0cmEgY2hlY2sgdGhhdCBpcyBub3QgZG9uZSBieQorCQkgKiBpbm9kZV9jaGFuZ2Vfb2soKS4KKwkJICovCisJCWlmICgoKHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XICYmCisJCQkgICAgdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUKQorCQkgICAgIHx8CisJCSAgICAgKHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfT01JVCAmJgorCQkJICAgIHRpbWVzWzFdLnR2X25zZWMgPT0gVVRJTUVfTk9XKSkKKwkJICAgICYmICFpc19vd25lcl9vcl9jYXAoaW5vZGUpKQorCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OworCX0gZWxzZSB7CisKKwkJLyoKKwkJICogSWYgdGltZXMgaXMgTlVMTCAob3IgYm90aCB0aW1lcyBhcmUgVVRJTUVfTk9XKSwKKwkJICogdGhlbiB3ZSBuZWVkIHRvIGNoZWNrIHBlcm1pc3Npb25zLCBiZWNhdXNlCisJCSAqIGlub2RlX2NoYW5nZV9vaygpIHdvbid0IGRvIGl0LgorCQkgKi8KIAkJZXJyb3IgPSAtRUFDQ0VTOwogICAgICAgICAgICAgICAgIGlmIChJU19JTU1VVEFCTEUoaW5vZGUpKQogCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwogCiAJCWlmICghaXNfb3duZXJfb3JfY2FwKGlub2RlKSkgewotCQkJaWYgKGYpIHsKLQkJCQlpZiAoIShmLT5mX21vZGUgJiBGTU9ERV9XUklURSkpCi0JCQkJCWdvdG8gbW50X2Ryb3Bfd3JpdGVfYW5kX291dDsKLQkJCX0gZWxzZSB7Ci0JCQkJZXJyb3IgPSB2ZnNfcGVybWlzc2lvbigmbmQsIE1BWV9XUklURSk7Ci0JCQkJaWYgKGVycm9yKQotCQkJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2FuZF9vdXQ7Ci0JCQl9CisJCQllcnJvciA9IHBlcm1pc3Npb24oaW5vZGUsIE1BWV9XUklURSwgTlVMTCk7CisJCQlpZiAoZXJyb3IpCisJCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwogCQl9CiAJfQogCW11dGV4X2xvY2soJmlub2RlLT5pX211dGV4KTsKQEAgLTE2OSwxNCArMTc0LDYgQEAKIAlpZiAodXRpbWVzKSB7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdHN0aW1lcywgdXRpbWVzLCBzaXplb2YodHN0aW1lcykpKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCWlmICgodHN0aW1lc1swXS50dl9uc2VjID09IFVUSU1FX09NSVQgfHwKLQkJICAgICB0c3RpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XKSAmJgotCQkgICAgdHN0aW1lc1swXS50dl9zZWMgIT0gMCkKLQkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAoKHRzdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUIHx8Ci0JCSAgICAgdHN0aW1lc1sxXS50dl9uc2VjID09IFVUSU1FX05PVykgJiYKLQkJICAgIHRzdGltZXNbMV0udHZfc2VjICE9IDApCi0JCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkvKiBOb3RoaW5nIHRvIGRvLCB3ZSBtdXN0IG5vdCBldmVuIGNoZWNrIHRoZSBwYXRoLiAgKi8KIAkJaWYgKHRzdGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9PTUlUICYmCmRpZmYgLS1naXQgYS9mcy92ZmF0L25hbWVpLmMgYi9mcy92ZmF0L25hbWVpLmMKaW5kZXggYTM1MjI3Mi4uYjU0NmJhNiAxMDA2NDQKLS0tIGEvZnMvdmZhdC9uYW1laS5jCisrKyBiL2ZzL3ZmYXQvbmFtZWkuYwpAQCAtNjQ1LDcgKzY0NSw3IEBACiAJaWYgKGxlbiA9PSAwKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCXNsb3RzID0ga21hbGxvYyhzaXplb2YoKnNsb3RzKSAqIE1TRE9TX1NMT1RTLCBHRlBfS0VSTkVMKTsKKwlzbG90cyA9IGttYWxsb2Moc2l6ZW9mKCpzbG90cykgKiBNU0RPU19TTE9UUywgR0ZQX05PRlMpOwogCWlmIChzbG90cyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtNjg3LDcgKzY4Nyw3IEBACiAJc3RydWN0IGRlbnRyeSAqYWxpYXM7CiAJaW50IGVyciwgdGFibGU7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCXRhYmxlID0gKE1TRE9TX1NCKHNiKS0+b3B0aW9ucy5uYW1lX2NoZWNrID09ICdzJykgPyAyIDogMDsKIAlkZW50cnktPmRfb3AgPSAmdmZhdF9kZW50cnlfb3BzW3RhYmxlXTsKIApAQCAtNjk5LDcgKzY5OSw3IEBACiAJaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoc2IsIHNpbmZvLmRlLCBzaW5mby5pX3Bvcyk7CiAJYnJlbHNlKHNpbmZvLmJoKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewotCQl1bmxvY2tfa2VybmVsKCk7CisJCXVubG9ja19zdXBlcihzYik7CiAJCXJldHVybiBFUlJfQ0FTVChpbm9kZSk7CiAJfQogCWFsaWFzID0gZF9maW5kX2FsaWFzKGlub2RlKTsKQEAgLTcwOCwxMyArNzA4LDEzIEBACiAJCQlkcHV0KGFsaWFzKTsKIAkJZWxzZSB7CiAJCQlpcHV0KGlub2RlKTsKLQkJCXVubG9ja19rZXJuZWwoKTsKKwkJCXVubG9ja19zdXBlcihzYik7CiAJCQlyZXR1cm4gYWxpYXM7CiAJCX0KIAogCX0KIGVycm9yOgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWRlbnRyeS0+ZF9vcCA9ICZ2ZmF0X2RlbnRyeV9vcHNbdGFibGVdOwogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRlbnRyeSA9IGRfc3BsaWNlX2FsaWFzKGlub2RlLCBkZW50cnkpOwpAQCAtNzM0LDcgKzczNCw3IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJdHMgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWVyciA9IHZmYXRfYWRkX2VudHJ5KGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAwLCAwLCAmdHMsICZzaW5mbyk7CkBAIC03NTUsMTcgKzc1NSwxOCBAQAogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCB2ZmF0X3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gZmF0X2Rpcl9lbXB0eShpbm9kZSk7CiAJaWYgKGVycikKQEAgLTc4Myw3ICs3ODQsNyBAQAogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfYXRpbWUgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWZhdF9kZXRhY2goaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTc5MSwxMCArNzkyLDExIEBACiBzdGF0aWMgaW50IHZmYXRfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gdmZhdF9maW5kKGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAmc2luZm8pOwogCWlmIChlcnIpCkBAIC04MDcsNyArODA5LDcgQEAKIAlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2F0aW1lID0gQ1VSUkVOVF9USU1FX1NFQzsKIAlmYXRfZGV0YWNoKGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC04MjAsNyArODIyLDcgQEAKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CiAJaW50IGVyciwgY2x1c3RlcjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAl0cyA9IENVUlJFTlRfVElNRV9TRUM7CiAJY2x1c3RlciA9IGZhdF9hbGxvY19uZXdfZGlyKGRpciwgJnRzKTsKQEAgLTg0OSwxMyArODUxLDEzIEBACiAJZGVudHJ5LT5kX3RpbWUgPSBkZW50cnktPmRfcGFyZW50LT5kX2lub2RlLT5pX3ZlcnNpb247CiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiAwOwogCiBvdXRfZnJlZToKIAlmYXRfZnJlZV9jbHVzdGVycyhkaXIsIGNsdXN0ZXIpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTg2OSwxMSArODcxLDEyIEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWxvZmZfdCBkb3Rkb3RfaV9wb3MsIG5ld19pX3BvczsKIAlpbnQgZXJyLCBpc19kaXIsIHVwZGF0ZV9kb3Rkb3QsIGNvcnJ1cHQgPSAwOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBvbGRfZGlyLT5pX3NiOwogCiAJb2xkX3NpbmZvLmJoID0gc2luZm8uYmggPSBkb3Rkb3RfYmggPSBOVUxMOwogCW9sZF9pbm9kZSA9IG9sZF9kZW50cnktPmRfaW5vZGU7CiAJbmV3X2lub2RlID0gbmV3X2RlbnRyeS0+ZF9pbm9kZTsKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCWVyciA9IHZmYXRfZmluZChvbGRfZGlyLCAmb2xkX2RlbnRyeS0+ZF9uYW1lLCAmb2xkX3NpbmZvKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTk1MSw3ICs5NTQsNyBAQAogCWJyZWxzZShzaW5mby5iaCk7CiAJYnJlbHNlKGRvdGRvdF9iaCk7CiAJYnJlbHNlKG9sZF9zaW5mby5iaCk7Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAKIAlyZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2xvZy5jIGIvZnMveGZzL3hmc19sb2cuYwppbmRleCBhZmFlZTMwLi5hZDNkMjZkIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2xvZy5jCisrKyBiL2ZzL3hmcy94ZnNfbG9nLmMKQEAgLTI0MjcsMTMgKzI0MjcsMjAgQEAKIAlpZiAoaWNsb2ctPmljX3NpemUgLSBpY2xvZy0+aWNfb2Zmc2V0IDwgMipzaXplb2YoeGxvZ19vcF9oZWFkZXJfdCkpIHsKIAkJeGxvZ19zdGF0ZV9zd2l0Y2hfaWNsb2dzKGxvZywgaWNsb2csIGljbG9nLT5pY19zaXplKTsKIAotCQkvKiBJZiBJJ20gdGhlIG9ubHkgb25lIHdyaXRpbmcgdG8gdGhpcyBpY2xvZywgc3luYyBpdCB0byBkaXNrICovCi0JCWlmIChhdG9taWNfcmVhZCgmaWNsb2ctPmljX3JlZmNudCkgPT0gMSkgeworCQkvKgorCQkgKiBJZiBJJ20gdGhlIG9ubHkgb25lIHdyaXRpbmcgdG8gdGhpcyBpY2xvZywgc3luYyBpdCB0byBkaXNrLgorCQkgKiBXZSBuZWVkIHRvIGRvIGFuIGF0b21pYyBjb21wYXJlIGFuZCBkZWNyZW1lbnQgaGVyZSB0byBhdm9pZAorCQkgKiByYWNpbmcgd2l0aCBjb25jdXJyZW50IGF0b21pY19kZWNfYW5kX2xvY2soKSBjYWxscyBpbgorCQkgKiB4bG9nX3N0YXRlX3JlbGVhc2VfaWNsb2coKSB3aGVuIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUKKwkJICogcmVmZXJlbmNlIHRvIHRoZSBpY2xvZy4KKwkJICovCisJCWlmICghYXRvbWljX2FkZF91bmxlc3MoJmljbG9nLT5pY19yZWZjbnQsIC0xLCAxKSkgeworCQkJLyogd2UgYXJlIHRoZSBvbmx5IG9uZSAqLwogCQkJc3Bpbl91bmxvY2soJmxvZy0+bF9pY2xvZ2xvY2spOwotCQkJaWYgKChlcnJvciA9IHhsb2dfc3RhdGVfcmVsZWFzZV9pY2xvZyhsb2csIGljbG9nKSkpCisJCQllcnJvciA9IHhsb2dfc3RhdGVfcmVsZWFzZV9pY2xvZyhsb2csIGljbG9nKTsKKwkJCWlmIChlcnJvcikKIAkJCQlyZXR1cm4gZXJyb3I7CiAJCX0gZWxzZSB7Ci0JCQlhdG9taWNfZGVjKCZpY2xvZy0+aWNfcmVmY250KTsKIAkJCXNwaW5fdW5sb2NrKCZsb2ctPmxfaWNsb2dsb2NrKTsKIAkJfQogCQlnb3RvIHJlc3RhcnQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL0tidWlsZCBiL2luY2x1ZGUvS2J1aWxkCmluZGV4IGI1MjI4ODcuLmJkY2ExNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvS2J1aWxkCisrKyBiL2luY2x1ZGUvS2J1aWxkCkBAIC00LDUgKzQsNiBAQAogaGVhZGVyLXkgKz0gbXRkLwogaGVhZGVyLXkgKz0gcmRtYS8KIGhlYWRlci15ICs9IHZpZGVvLworaGVhZGVyLXkgKz0gZHJtLwogCiBoZWFkZXIteSArPSBhc20tJChBUkNIKS8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9wcm9jZXNzb3IuaCBiL2luY2x1ZGUvYWNwaS9wcm9jZXNzb3IuaAppbmRleCAwNjQ4MGJjLi4wNmViYjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FjcGkvcHJvY2Vzc29yLmgKKysrIGIvaW5jbHVkZS9hY3BpL3Byb2Nlc3Nvci5oCkBAIC0zMTksNiArMzE5LDcgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfQ1BVX0ZSRVEgKi8KIAogLyogaW4gcHJvY2Vzc29yX3Rocm90dGxpbmcuYyAqLworaW50IGFjcGlfcHJvY2Vzc29yX3RzdGF0ZV9oYXNfY2hhbmdlZChzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByKTsKIGludCBhY3BpX3Byb2Nlc3Nvcl9nZXRfdGhyb3R0bGluZ19pbmZvKHN0cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIpOwogZXh0ZXJuIGludCBhY3BpX3Byb2Nlc3Nvcl9zZXRfdGhyb3R0bGluZyhzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByLCBpbnQgc3RhdGUpOwogZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYWNwaV9wcm9jZXNzb3JfdGhyb3R0bGluZ19mb3BzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV9tY3BjaWEuaCBiL2luY2x1ZGUvYXNtLWFscGhhL2NvcmVfbWNwY2lhLmgKaW5kZXggNTI1YjRmNi4uYWNmNTViNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV9tY3BjaWEuaAorKysgYi9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX21jcGNpYS5oCkBAIC0yNjEsNyArMjYxLDcgQEAKIAl9CiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBpbnQgX19tY3BjaWFfaXNfbW1pbyh1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIGludCBfX21jcGNpYV9pc19tbWlvKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlyZXR1cm4gKGFkZHIgJiAweDgwMDAwMDAwVUwpID09IDA7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX3QyLmggYi9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX3QyLmgKaW5kZXggOTBlNmI1ZC4uNDZiZmZmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV90Mi5oCisrKyBiL2luY2x1ZGUvYXNtLWFscGhhL2NvcmVfdDIuaApAQCAtMzU2LDEzICszNTYsMTMgQEAKICNkZWZpbmUgdmlwCXZvbGF0aWxlIGludCAqCiAjZGVmaW5lIHZ1aXAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICoKIAotc3RhdGljIGlubGluZSB1OCB0Ml9pbmIodW5zaWduZWQgbG9uZyBhZGRyKQorZXh0ZXJuIGlubGluZSB1OCB0Ml9pbmIodW5zaWduZWQgbG9uZyBhZGRyKQogewogCWxvbmcgcmVzdWx0ID0gKih2aXApICgoYWRkciA8PCA1KSArIFQyX0lPICsgMHgwMCk7CiAJcmV0dXJuIF9fa2VybmVsX2V4dGJsKHJlc3VsdCwgYWRkciAmIDMpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdDJfb3V0Yih1OCBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIHZvaWQgdDJfb3V0Yih1OCBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJdW5zaWduZWQgbG9uZyB3OwogCkBAIC0zNzEsMTMgKzM3MSwxMyBAQAogCW1iKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTE2IHQyX2ludyh1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIHUxNiB0Ml9pbncodW5zaWduZWQgbG9uZyBhZGRyKQogewogCWxvbmcgcmVzdWx0ID0gKih2aXApICgoYWRkciA8PCA1KSArIFQyX0lPICsgMHgwOCk7CiAJcmV0dXJuIF9fa2VybmVsX2V4dHdsKHJlc3VsdCwgYWRkciAmIDMpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdDJfb3V0dyh1MTYgYiwgdW5zaWduZWQgbG9uZyBhZGRyKQorZXh0ZXJuIGlubGluZSB2b2lkIHQyX291dHcodTE2IGIsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAl1bnNpZ25lZCBsb25nIHc7CiAKQEAgLTM4NiwxMiArMzg2LDEyIEBACiAJbWIoKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgdDJfaW5sKHVuc2lnbmVkIGxvbmcgYWRkcikKK2V4dGVybiBpbmxpbmUgdTMyIHQyX2lubCh1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJcmV0dXJuICoodnVpcCkgKChhZGRyIDw8IDUpICsgVDJfSU8gKyAweDE4KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHQyX291dGwodTMyIGIsIHVuc2lnbmVkIGxvbmcgYWRkcikKK2V4dGVybiBpbmxpbmUgdm9pZCB0Ml9vdXRsKHUzMiBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJKih2dWlwKSAoKGFkZHIgPDwgNSkgKyBUMl9JTyArIDB4MTgpID0gYjsKIAltYigpOwpAQCAtNDM1LDcgKzQzNSw3IEBACiAJc2V0X2hhZShtc2IpOyBcCiB9CiAKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodDJfaGFlX2xvY2spOworZXh0ZXJuIHNwaW5sb2NrX3QgdDJfaGFlX2xvY2s7CiAKIC8qCiAgKiBOT1RFOiB0YWtlIFQyX0RFTlNFX01FTSBvZmYgaW4gZWFjaCByZWFkWC93cml0ZVggcm91dGluZSwgc2luY2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL2lvLmggYi9pbmNsdWRlL2FzbS1hbHBoYS9pby5oCmluZGV4IDM4ZjE4Y2YuLmU5NzFhYjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvaW8uaApAQCAtMzUsNyArMzUsNyBAQAogICogcmVnaXN0ZXIgbm90IGJlaW5nIHVwLXRvLWRhdGUgd2l0aCByZXNwZWN0IHRvIHRoZSBoYXJkd2FyZQogICogdmFsdWUuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9oYWUodW5zaWduZWQgbG9uZyBuZXdfaGFlKQorZXh0ZXJuIGlubGluZSB2b2lkIF9fc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CkBAIC00OSw3ICs0OSw3IEBACiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCitleHRlcm4gaW5saW5lIHZvaWQgc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCiB7CiAJaWYgKG5ld19oYWUgIT0gYWxwaGFfbXYuaGFlX2NhY2hlKQogCQlfX3NldF9oYWUobmV3X2hhZSk7CkBAIC0xNzYsNyArMTc2LDcgQEAKICN1bmRlZiBSRU1BUDEKICN1bmRlZiBSRU1BUDIKIAotc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmdlbmVyaWNfaW9wb3J0bWFwKHVuc2lnbmVkIGxvbmcgYSkKK2V4dGVybiBpbmxpbmUgdm9pZCBfX2lvbWVtICpnZW5lcmljX2lvcG9ydG1hcCh1bnNpZ25lZCBsb25nIGEpCiB7CiAJcmV0dXJuIGFscGhhX212Lm12X2lvcG9ydG1hcChhKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL21tdV9jb250ZXh0LmggYi9pbmNsdWRlL2FzbS1hbHBoYS9tbXVfY29udGV4dC5oCmluZGV4IDZhNWJlMWYuLjg2YzA4YTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL21tdV9jb250ZXh0LmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvbW11X2NvbnRleHQuaApAQCAtMjMsNyArMjMsNyBAQAogI2VuZGlmCiAKIAotZXh0ZXJuIGlubGluZSB1bnNpZ25lZCBsb25nCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIF9fcmVsb2FkX3RocmVhZChzdHJ1Y3QgcGNiX3N0cnVjdCAqcGNiKQogewogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgYTAgX19hc21fXygiJDE2Iik7CkBAIC0xMTQsNyArMTE0LDcgQEAKICNkZWZpbmUgX19NTVVfRVhURVJOX0lOTElORQogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZworZXh0ZXJuIGlubGluZSB1bnNpZ25lZCBsb25nCiBfX2dldF9uZXdfbW1fY29udGV4dChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgbG9uZyBjcHUpCiB7CiAJdW5zaWduZWQgbG9uZyBhc24gPSBjcHVfbGFzdF9hc24oY3B1KTsKQEAgLTIyNiw3ICsyMjYsNyBAQAogIyBlbmRpZgogI2VuZGlmCiAKLWV4dGVybiBpbmxpbmUgaW50CitzdGF0aWMgaW5saW5lIGludAogaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hbHBoYS9wZXJjcHUuaCBiL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCmluZGV4IDQ4MzQ4ZmUuLjM0OTVlOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCisrKyBiL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCkBAIC0xLDYgKzEsNzggQEAKICNpZm5kZWYgX19BTFBIQV9QRVJDUFVfSAogI2RlZmluZSBfX0FMUEhBX1BFUkNQVV9ICisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CiAKLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZXJjcHUuaD4KKy8qCisgKiBEZXRlcm1pbmUgdGhlIHJlYWwgdmFyaWFibGUgbmFtZSBmcm9tIHRoZSBuYW1lIHZpc2libGUgaW4gdGhlCisgKiBrZXJuZWwgc291cmNlcy4KKyAqLworI2RlZmluZSBwZXJfY3B1X3Zhcih2YXIpIHBlcl9jcHVfXyMjdmFyCisKKyNpZmRlZiBDT05GSUdfU01QCisKKy8qCisgKiBwZXJfY3B1X29mZnNldCgpIGlzIHRoZSBvZmZzZXQgdGhhdCBoYXMgdG8gYmUgYWRkZWQgdG8gYQorICogcGVyY3B1IHZhcmlhYmxlIHRvIGdldCB0byB0aGUgaW5zdGFuY2UgZm9yIGEgY2VydGFpbiBwcm9jZXNzb3IuCisgKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU107CisKKyNkZWZpbmUgcGVyX2NwdV9vZmZzZXQoeCkgKF9fcGVyX2NwdV9vZmZzZXRbeF0pCisKKyNkZWZpbmUgX19teV9jcHVfb2Zmc2V0IHBlcl9jcHVfb2Zmc2V0KHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCisjaWZkZWYgQ09ORklHX0RFQlVHX1BSRUVNUFQKKyNkZWZpbmUgbXlfY3B1X29mZnNldCBwZXJfY3B1X29mZnNldChzbXBfcHJvY2Vzc29yX2lkKCkpCisjZWxzZQorI2RlZmluZSBteV9jcHVfb2Zmc2V0IF9fbXlfY3B1X29mZnNldAorI2VuZGlmCisKKyNpZm5kZWYgTU9EVUxFCisjZGVmaW5lIFNISUZUX1BFUkNQVV9QVFIodmFyLCBvZmZzZXQpIFJFTE9DX0hJREUoJnBlcl9jcHVfdmFyKHZhciksIChvZmZzZXQpKQorI2RlZmluZSBQRVJfQ1BVX0FUVFJJQlVURVMKKyNlbHNlCisvKgorICogVG8gY2FsY3VsYXRlIGFkZHJlc3NlcyBvZiBsb2NhbGx5IGRlZmluZWQgdmFyaWFibGVzLCBHQ0MgdXNlcyAzMi1iaXQKKyAqIGRpc3BsYWNlbWVudCBmcm9tIHRoZSBHUC4gV2hpY2ggZG9lc24ndCB3b3JrIGZvciBwZXIgY3B1IHZhcmlhYmxlcyBpbgorICogbW9kdWxlcywgYXMgYW4gb2Zmc2V0IHRvIHRoZSBrZXJuZWwgcGVyIGNwdSBhcmVhIGlzIHdheSBhYm92ZSA0Ry4KKyAqCisgKiBUaGlzIGZvcmNlcyBhbGxvY2F0aW9uIG9mIGEgR09UIGVudHJ5IGZvciBwZXIgY3B1IHZhcmlhYmxlIHVzaW5nCisgKiBsZHEgaW5zdHJ1Y3Rpb24gd2l0aCBhICdsaXRlcmFsJyByZWxvY2F0aW9uLgorICovCisjZGVmaW5lIFNISUZUX1BFUkNQVV9QVFIodmFyLCBvZmZzZXQpICh7CQlcCisJZXh0ZXJuIGludCBzaW1wbGVfaWRlbnRpZmllcl8jI3Zhcih2b2lkKTsJXAorCXVuc2lnbmVkIGxvbmcgX19wdHIsIHRtcF9ncDsJCQlcCisJYXNtICggICJicgklMSwgMWYJCSAgCSAgICAgIFxuXAorCTE6CWxkZ3AJJTEsIDAoJTEpCSAgICAJICAgICAgXG5cCisJCWxkcSAlMCwgcGVyX2NwdV9fIiAjdmFyIiglMSlcdCFsaXRlcmFsIgkJXAorCQk6ICI9JnIiKF9fcHRyKSwgIj0mciIodG1wX2dwKSk7CQlcCisJKHR5cGVvZigmcGVyX2NwdV92YXIodmFyKSkpKF9fcHRyICsgKG9mZnNldCkpOyB9KQorCisjZGVmaW5lIFBFUl9DUFVfQVRUUklCVVRFUwlfX3VzZWQKKworI2VuZGlmIC8qIE1PRFVMRSAqLworCisvKgorICogQSBwZXJjcHUgdmFyaWFibGUgbWF5IHBvaW50IHRvIGEgZGlzY2FyZGVkIHJlZ2lvbnMuIFRoZSBmb2xsb3dpbmcgYXJlCisgKiBlc3RhYmxpc2hlZCB3YXlzIHRvIHByb2R1Y2UgYSB1c2FibGUgcG9pbnRlciBmcm9tIHRoZSBwZXJjcHUgdmFyaWFibGUKKyAqIG9mZnNldC4KKyAqLworI2RlZmluZSBwZXJfY3B1KHZhciwgY3B1KSBcCisJKCpTSElGVF9QRVJDUFVfUFRSKHZhciwgcGVyX2NwdV9vZmZzZXQoY3B1KSkpCisjZGVmaW5lIF9fZ2V0X2NwdV92YXIodmFyKSBcCisJKCpTSElGVF9QRVJDUFVfUFRSKHZhciwgbXlfY3B1X29mZnNldCkpCisjZGVmaW5lIF9fcmF3X2dldF9jcHVfdmFyKHZhcikgXAorCSgqU0hJRlRfUEVSQ1BVX1BUUih2YXIsIF9fbXlfY3B1X29mZnNldCkpCisKKyNlbHNlIC8qICEgU01QICovCisKKyNkZWZpbmUgcGVyX2NwdSh2YXIsIGNwdSkJCSgqKCh2b2lkKShjcHUpLCAmcGVyX2NwdV92YXIodmFyKSkpCisjZGVmaW5lIF9fZ2V0X2NwdV92YXIodmFyKQkJcGVyX2NwdV92YXIodmFyKQorI2RlZmluZSBfX3Jhd19nZXRfY3B1X3Zhcih2YXIpCQlwZXJfY3B1X3Zhcih2YXIpCisKKyNkZWZpbmUgUEVSX0NQVV9BVFRSSUJVVEVTCisKKyNlbmRpZiAvKiBTTVAgKi8KKworI2RlZmluZSBERUNMQVJFX1BFUl9DUFUodHlwZSwgbmFtZSkgZXh0ZXJuIF9fdHlwZW9mX18odHlwZSkgcGVyX2NwdV92YXIobmFtZSkKIAogI2VuZGlmIC8qIF9fQUxQSEFfUEVSQ1BVX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKaW5kZXggZWQyMjFkNi4uYWZlMjBmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKQEAgLTE4NCw3ICsxODQsNyBAQAogICAgX19hbWFzazsgfSkKIAogI2RlZmluZSBfX0NBTExfUEFMX1IwKE5BTUUsIFRZUEUpCQkJCVwKLXN0YXRpYyBpbmxpbmUgVFlQRSBOQU1FKHZvaWQpCQkJCQlcCitleHRlcm4gaW5saW5lIFRZUEUgTkFNRSh2b2lkKQkJCQkJXAogewkJCQkJCQkJXAogCXJlZ2lzdGVyIFRZUEUgX19yMCBfX2FzbV9fKCIkMCIpOwkJCVwKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygJCQkJCVwKQEAgLTE5Niw3ICsxOTYsNyBAQAogfQogCiAjZGVmaW5lIF9fQ0FMTF9QQUxfVzEoTkFNRSwgVFlQRTApCQkJCVwKLXN0YXRpYyBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzApCQkJCVwKK2V4dGVybiBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzApCQkJCVwKIHsJCQkJCQkJCVwKIAlyZWdpc3RlciBUWVBFMCBfX3IxNiBfX2FzbV9fKCIkMTYiKSA9IGFyZzA7CQlcCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oCQkJCQlcCkBAIC0yMDcsNyArMjA3LDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1cyKE5BTUUsIFRZUEUwLCBUWVBFMSkJCQlcCi1zdGF0aWMgaW5saW5lIHZvaWQgTkFNRShUWVBFMCBhcmcwLCBUWVBFMSBhcmcxKQkJCVwKK2V4dGVybiBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzAsIFRZUEUxIGFyZzEpCQkJXAogewkJCQkJCQkJXAogCXJlZ2lzdGVyIFRZUEUwIF9fcjE2IF9fYXNtX18oIiQxNiIpID0gYXJnMDsJCVwKIAlyZWdpc3RlciBUWVBFMSBfX3IxNyBfX2FzbV9fKCIkMTciKSA9IGFyZzE7CQlcCkBAIC0yMTksNyArMjE5LDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1JXMShOQU1FLCBSVFlQRSwgVFlQRTApCQkJXAotc3RhdGljIGlubGluZSBSVFlQRSBOQU1FKFRZUEUwIGFyZzApCQkJCVwKK2V4dGVybiBpbmxpbmUgUlRZUEUgTkFNRShUWVBFMCBhcmcwKQkJCQlcCiB7CQkJCQkJCQlcCiAJcmVnaXN0ZXIgUlRZUEUgX19yMCBfX2FzbV9fKCIkMCIpOwkJCVwKIAlyZWdpc3RlciBUWVBFMCBfX3IxNiBfX2FzbV9fKCIkMTYiKSA9IGFyZzA7CQlcCkBAIC0yMzIsNyArMjMyLDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1JXMihOQU1FLCBSVFlQRSwgVFlQRTAsIFRZUEUxKQkJXAotc3RhdGljIGlubGluZSBSVFlQRSBOQU1FKFRZUEUwIGFyZzAsIFRZUEUxIGFyZzEpCQlcCitleHRlcm4gaW5saW5lIFJUWVBFIE5BTUUoVFlQRTAgYXJnMCwgVFlQRTEgYXJnMSkJCVwKIHsJCQkJCQkJCVwKIAlyZWdpc3RlciBSVFlQRSBfX3IwIF9fYXNtX18oIiQwIik7CQkJXAogCXJlZ2lzdGVyIFRZUEUwIF9fcjE2IF9fYXNtX18oIiQxNiIpID0gYXJnMDsJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL3ZnYS5oIGIvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKaW5kZXggZThkZjFlNy4uYzAwMTA2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKQEAgLTEzLDcgKzEzLDcgQEAKICNkZWZpbmUgVlRfQlVGX0hBVkVfTUVNU0VUVwogI2RlZmluZSBWVF9CVUZfSEFWRV9NRU1DUFlXCiAKLWV4dGVybiBpbmxpbmUgdm9pZCBzY3Jfd3JpdGV3KHUxNiB2YWwsIHZvbGF0aWxlIHUxNiAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY3Jfd3JpdGV3KHUxNiB2YWwsIHZvbGF0aWxlIHUxNiAqYWRkcikKIHsKIAlpZiAoX19pc19pb2FkZHIoYWRkcikpCiAJCV9fcmF3X3dyaXRldyh2YWwsICh2b2xhdGlsZSB1MTYgX19pb21lbSAqKSBhZGRyKTsKQEAgLTIxLDcgKzIxLDcgQEAKIAkJKmFkZHIgPSB2YWw7CiB9CiAKLWV4dGVybiBpbmxpbmUgdTE2IHNjcl9yZWFkdyh2b2xhdGlsZSBjb25zdCB1MTYgKmFkZHIpCitzdGF0aWMgaW5saW5lIHUxNiBzY3JfcmVhZHcodm9sYXRpbGUgY29uc3QgdTE2ICphZGRyKQogewogCWlmIChfX2lzX2lvYWRkcihhZGRyKSkKIAkJcmV0dXJuIF9fcmF3X3JlYWR3KCh2b2xhdGlsZSBjb25zdCB1MTYgX19pb21lbSAqKSBhZGRyKTsKQEAgLTI5LDcgKzI5LDcgQEAKIAkJcmV0dXJuICphZGRyOwogfQogCi1leHRlcm4gaW5saW5lIHZvaWQgc2NyX21lbXNldHcodTE2ICpzLCB1MTYgYywgdW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIHNjcl9tZW1zZXR3KHUxNiAqcywgdTE2IGMsIHVuc2lnbmVkIGludCBjb3VudCkKIHsKIAlpZiAoX19pc19pb2FkZHIocykpCiAJCW1lbXNldHdfaW8oKHUxNiBfX2lvbWVtICopIHMsIGMsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaAppbmRleCBjMmIxM2MyLi4yMDAxZTgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFfcG1jLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxX3BtYy5oCkBAIC0zOSwxMCArMzksMTQgQEAKICNkZWZpbmUJQVQ5MV9QTUNfUENTUgkJKEFUOTFfUE1DICsgMHgxOCkJLyogUGVyaXBoZXJhbCBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KIAogI2RlZmluZQlBVDkxX0NLR1JfVUNLUgkJKEFUOTFfUE1DICsgMHgxQykJLyogVVRNSSBDbG9jayBSZWdpc3RlciBbU0FNOVJMLCBDQVA5XSAqLworI2RlZmluZQkJQVQ5MV9QTUNfVVBMTEVOCQkoMSAgIDw8IDE2KQkJLyogVVRNSSBQTEwgRW5hYmxlICovCisjZGVmaW5lCQlBVDkxX1BNQ19VUExMQ09VTlQJKDB4ZiA8PCAyMCkJCS8qIFVUTUkgUExMIFN0YXJ0LXVwIFRpbWUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNFTgkJKDEgICA8PCAyNCkJCS8qIFVUTUkgQklBUyBFbmFibGUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNDT1VOVAkoMHhmIDw8IDI4KQkJLyogVVRNSSBQTEwgU3RhcnQtdXAgVGltZSAqLwogCiAjZGVmaW5lCUFUOTFfQ0tHUl9NT1IJCShBVDkxX1BNQyArIDB4MjApCS8qIE1haW4gT3NjaWxsYXRvciBSZWdpc3RlciBbbm90IG9uIFNBTTlSTF0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX01PU0NFTgkJKDEgICAgPDwgMCkJCS8qIE1haW4gT3NjaWxsYXRvciBFbmFibGUgKi8KLSNkZWZpbmUJCUFUOTFfUE1DX09TQ0JZUEFTUwkoMSAgICA8PCAxKQkJLyogT3NjaWxsYXRvciBCeXBhc3MgW0FUOTFTQU05MjZ4IG9ubHldICovCisjZGVmaW5lCQlBVDkxX1BNQ19PU0NCWVBBU1MJKDEgICAgPDwgMSkJCS8qIE9zY2lsbGF0b3IgQnlwYXNzIFtTQU05eCwgQ0FQOV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX09TQ09VTlQJKDB4ZmYgPDwgOCkJCS8qIE1haW4gT3NjaWxsYXRvciBTdGFydC11cCBUaW1lICovCiAKICNkZWZpbmUJQVQ5MV9DS0dSX01DRlIJCShBVDkxX1BNQyArIDB4MjQpCS8qIE1haW4gQ2xvY2sgRnJlcXVlbmN5IFJlZ2lzdGVyICovCkBAIC05Nyw2ICsxMDEsNyBAQAogI2RlZmluZQkJQVQ5MV9QTUNfTE9DS0EJCSgxIDw8ICAxKQkJLyogUExMQSBMb2NrICovCiAjZGVmaW5lCQlBVDkxX1BNQ19MT0NLQgkJKDEgPDwgIDIpCQkvKiBQTExCIExvY2sgKi8KICNkZWZpbmUJCUFUOTFfUE1DX01DS1JEWQkJKDEgPDwgIDMpCQkvKiBNYXN0ZXIgQ2xvY2sgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0xPQ0tVCQkoMSA8PCAgNikJCS8qIFVQTEwgTG9jayBbQVQ5MUNBUDkgb25seV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX1BDSzBSRFkJKDEgPDwgIDgpCQkvKiBQcm9ncmFtbWFibGUgQ2xvY2sgMCAqLwogI2RlZmluZQkJQVQ5MV9QTUNfUENLMVJEWQkoMSA8PCAgOSkJCS8qIFByb2dyYW1tYWJsZSBDbG9jayAxICovCiAjZGVmaW5lCQlBVDkxX1BNQ19QQ0syUkRZCSgxIDw8IDEwKQkJLyogUHJvZ3JhbW1hYmxlIENsb2NrIDIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaAppbmRleCBiYWM4M2FkLi42ZjE0ZDkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOS5oCkBAIC0xMTgsNyArMTE4LDcgQEAKICNkZWZpbmUgQVQ5MUNBUDlfUk9NX1NJWkUJKDMyICogU1pfMUspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFDQVA5X0xDRENfQkFTRQkweDAwNTAwMDAwCS8qIExDRCBDb250cm9sbGVyICovCi0jZGVmaW5lIEFUOTFDQVA5X1VEUEhTX0JBU0UJMHgwMDYwMDAwMAkvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgUG9ydCAqLworI2RlZmluZSBBVDkxQ0FQOV9VRFBIU19GSUZPCTB4MDA2MDAwMDAJLyogVVNCIEhpZ2ggU3BlZWQgRGV2aWNlIFBvcnQgKi8KICNkZWZpbmUgQVQ5MUNBUDlfVUhQX0JBU0UJMHgwMDcwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNkZWZpbmUgQ09ORklHX0RSQU1fQkFTRQlBVDkxX0NISVBTRUxFQ1RfNgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDlfbWF0cml4LmgKaW5kZXggYTY0MTY4Ni4uZGRiZDQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5X21hdHJpeC5oCkBAIC0xMDYsNiArMTA2LDExIEBACiAjZGVmaW5lIEFUOTFfTVBCUzBfU0ZSCQkoQVQ5MV9NQVRSSVggKyAweDExNCkJLyogTVBCbG9jayBTbGF2ZSAwIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXIgKi8KICNkZWZpbmUgQVQ5MV9NUEJTMV9TRlIJCShBVDkxX01BVFJJWCArIDB4MTFDKQkvKiBNUEJsb2NrIFNsYXZlIDEgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlciAqLwogCisjZGVmaW5lIEFUOTFfTUFUUklYX1VEUEhTCShBVDkxX01BVFJJWCArIDB4MTE4KQkvKiBVU0JIUyBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVyIFtBVDkxQ0FQOSBvbmx5XSAqLworI2RlZmluZQkJQVQ5MV9NQVRSSVhfU0VMRUNUX1VEUEhTCSgwIDw8IDMxKQkvKiBzZWxlY3QgSGlnaCBTcGVlZCBVRFAgKi8KKyNkZWZpbmUJCUFUOTFfTUFUUklYX1NFTEVDVF9VRFAJCSgxIDw8IDMxKQkvKiBzZWxlY3Qgc3RhbmRhcmQgVURQICovCisjZGVmaW5lCQlBVDkxX01BVFJJWF9VRFBIU19CWVBBU1NfTE9DSwkoMSA8PCAzMCkJLyogYnlwYXNzIGxvY2sgYml0ICovCisKICNkZWZpbmUgQVQ5MV9NQVRSSVhfRUJJQ1NBCShBVDkxX01BVFJJWCArIDB4MTIwKQkvKiBFQkkgQ2hpcCBTZWxlY3QgQXNzaWdubWVudCBSZWdpc3RlciAqLwogI2RlZmluZQkJQVQ5MV9NQVRSSVhfRUJJX0NTMUEJCSgxIDw8IDEpCS8qIENoaXAgU2VsZWN0IDEgQXNzaWdubWVudCAqLwogI2RlZmluZQkJCUFUOTFfTUFUUklYX0VCSV9DUzFBX1NNQwkJKDAgPDwgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaAppbmRleCBjODkzNGZlLi44ODk4NzJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05MjYwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOTI2MC5oCkBAIC02LDYgKzYsOCBAQAogICogQ29tbW9uIGRlZmluaXRpb25zLgogICogQmFzZWQgb24gQVQ5MVNBTTkyNjAgZGF0YXNoZWV0IHJldmlzaW9uIEEgKFByZWxpbWluYXJ5KS4KICAqCisgKiBJbmNsdWRlcyBhbHNvIGRlZmluaXRpb25zIGZvciBBVDkxU0FNOVhFIGFuZCBBVDkxU0FNOUcgZmFtaWxpZXMKKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCkBAIC0xMjMsNSArMTI1LDE0IEBACiAjZGVmaW5lIEFUOTFTQU05WEVfRkxBU0hfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIEZMQVNIIGJhc2UgYWRkcmVzcyAqLwogI2RlZmluZSBBVDkxU0FNOVhFX1NSQU1fQkFTRQkweDAwMzAwMDAwCS8qIEludGVybmFsIFNSQU0gYmFzZSBhZGRyZXNzICovCiAKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfUk9NX0JBU0UJMHgwMDEwMDAwMAkvKiBJbnRlcm5hbCBST00gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIEFUOTFTQU05RzIwX1JPTV9TSVpFCVNaXzMySwkJLyogSW50ZXJuYWwgUk9NIHNpemUgKDMyS2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIFNSQU0gMCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfU0laRQlTWl8xNksJCS8qIEludGVybmFsIFNSQU0gMCBzaXplICgxNktiKSAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9CQVNFCTB4MDAzMDAwMDAJLyogSW50ZXJuYWwgU1JBTSAxIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9TSVpFCVNaXzE2SwkJLyogSW50ZXJuYWwgU1JBTSAxIHNpemUgKDE2S2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfVUhQX0JBU0UJMHgwMDUwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOXJsLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAppbmRleCAxNmQyODMyLi42MjJlNTZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaApAQCAtMTEwLDYgKzExMCw2IEBACiAjZGVmaW5lIEFUOTFTQU05UkxfUk9NX1NJWkUJKDIgKiBTWl8xNkspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFTQU05UkxfTENEQ19CQVNFCTB4MDA1MDAwMDAJLyogTENEIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQVQ5MVNBTTlSTF9VRFBIU19CQVNFCTB4MDA2MDAwMDAJLyogVVNCIERldmljZSBIUyBjb250cm9sbGVyICovCisjZGVmaW5lIEFUOTFTQU05UkxfVURQSFNfRklGTwkweDAwNjAwMDAwCS8qIFVTQiBEZXZpY2UgSFMgY29udHJvbGxlciAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaAppbmRleCBkYzE4OWYwLi45NGRlNzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2JvYXJkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9ib2FyZC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvbGVkcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IvYXRtZWxfdXNiYV91ZGMuaD4KIAogIC8qIFVTQiBEZXZpY2UgKi8KIHN0cnVjdCBhdDkxX3VkY19kYXRhIHsKQEAgLTQ1LDYgKzQ2LDkgQEAKIH07CiBleHRlcm4gdm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VkYyhzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSAqZGF0YSk7CiAKKyAvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgKi8KK2V4dGVybiB2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKTsKKwogIC8qIENvbXBhY3QgRmxhc2ggKi8KIHN0cnVjdCBhdDkxX2NmX2RhdGEgewogCXU4CWlycV9waW47CQkvKiBJL08gSVJRICovCkBAIC03Myw3ICs3Nyw3IEBACiB9OwogZXh0ZXJuIHZvaWQgX19pbml0IGF0OTFfYWRkX2RldmljZV9ldGgoc3RydWN0IGF0OTFfZXRoX2RhdGEgKmRhdGEpOwogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MykgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxQ0FQOSkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFDQVA5KQogI2RlZmluZSBldGhfcGxhdGZvcm1fZGF0YQlhdDkxX2V0aF9kYXRhCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvY3B1LmgKaW5kZXggNzE0NTE2Ni4uNTJkZjc5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2NwdS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTkyNjAJMHgwMTk4MDNhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05MjYxCTB4MDE5NzAzYTAKICNkZWZpbmUgQVJDSF9JRF9BVDkxU0FNOTI2MwkweDAxOTYwN2EwCisjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTlHMjAJMHgwMTk5MDVhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05Ukw2NAkweDAxOWIwM2EwCiAjZGVmaW5lIEFSQ0hfSURfQVQ5MUNBUDkJMHgwMzlBMDNBMAogCkBAIC02Myw2ICs2NCwxMiBAQAogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjAoKQkoMCkKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjAKKyNkZWZpbmUgY3B1X2lzX2F0OTFzYW05ZzIwKCkJKGF0OTFfY3B1X2lkZW50aWZ5KCkgPT0gQVJDSF9JRF9BVDkxU0FNOUcyMCkKKyNlbHNlCisjZGVmaW5lIGNwdV9pc19hdDkxc2FtOWcyMCgpCSgwKQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MQogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjEoKQkoYXQ5MV9jcHVfaWRlbnRpZnkoKSA9PSBBUkNIX0lEX0FUOTFTQU05MjYxKQogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaAppbmRleCAyYzgyNmQ4Mi4uMDE2YTNhMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaApAQCAtMTgsNyArMTgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxUk05MjAwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDAuaD4KLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYwLmg+CiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYxLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL3RpbWV4LmgKaW5kZXggZjE5MzNiMC4uMjk4ZDgzMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS90aW1leC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvdGltZXguaApAQCAtMjcsMTQgKzI3LDI5IEBACiAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MV9TTE9XX0NMT0NLKQogCi0jZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQorI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkKKworI2lmIGRlZmluZWQoQ09ORklHX01BQ0hfVVNCX0E5MjYwKSB8fCBkZWZpbmVkKENPTkZJR19NQUNIX1FJTF9BOTI2MCkKKyNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTkwMDAwMDAwCisjZWxzZQorI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJOTkzMDAwMDAKKyNlbmRpZgorCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFTQU05X01BU1RFUl9DTE9DSy8xNikKKworI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSkKIAogI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJOTkzMDAwMDAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKQogCisjaWYgZGVmaW5lZChDT05GSUdfTUFDSF9VU0JfQTkyNjMpCisjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwk5MDAwMDAwMAorI2Vsc2UKICNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTk5OTU5NTAwCisjZW5kaWYKKwogI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCShBVDkxU0FNOV9NQVNURVJfQ0xPQ0svMTYpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCkKQEAgLTQyLDYgKzU3LDExIEBACiAjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwkxMDAwMDAwMDAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQogCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQorCisjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwkxMzIwOTYwMDAKKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQorCiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFDQVA5KQogCiAjZGVmaW5lIEFUOTFDQVA5X01BU1RFUl9DTE9DSwkxMDAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvaGFyZHdhcmUuaAppbmRleCBkYWFkOGVlLi43NDYxMGMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9oYXJkd2FyZS5oCkBAIC0xNCw3ICsxNCw2IEBACiAKICNpbmNsdWRlIDxhc20vYXJjaC9tZW1vcnkuaD4KIAotI2lmZGVmIENPTkZJR19BUkNIX0ZPT1RCUklER0UKIC8qICAgVmlydHVhbCAgICAgIFBoeXNpY2FsCVNpemUKICAqIDB4ZmY4MDAwMDAJMHg0MDAwMDAwMAkxTUIJWC1CdXMKICAqIDB4ZmYwMDAwMDAJMHg3YzAwMDAwMAkxTUIJUENJIEkvTyBzcGFjZQpAQCAtNTAsMzEgKzQ5LDYgQEAKICNkZWZpbmUgUENJTUVNX1NJWkUJCTB4MDEwMDAwMDAKICNkZWZpbmUgUENJTUVNX0JBU0UJCTB4ZjAwMDAwMDAKIAotI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9DTzI4NSkKLS8qCi0gKiBUaGlzIGlzIHRoZSBDT0VCU0EyODUgY3V0LWRvd24gbWFwcGluZwotICovCi0jZGVmaW5lIFBDSU1FTV9TSVpFCQkweDgwMDAwMDAwCi0jZGVmaW5lIFBDSU1FTV9CQVNFCQkweDgwMDAwMDAwCi0KLSNkZWZpbmUgV0ZMVVNIX1NJWkUJCTB4MDEwMDAwMDAKLSNkZWZpbmUgV0ZMVVNIX0JBU0UJCTB4N2QwMDAwMDAKLQotI2RlZmluZSBBUk1DU1JfU0laRQkJMHgwMDEwMDAwMAotI2RlZmluZSBBUk1DU1JfQkFTRQkJMHg3Y2YwMDAwMAotCi0jZGVmaW5lIFhCVVNfU0laRQkJMHgwMDAyMDAwMAotI2RlZmluZSBYQlVTX0JBU0UJCTB4N2NlZTAwMDAKLQotI2RlZmluZSBQQ0lPX1NJWkUJCTB4MDAwMTAwMDAKLSNkZWZpbmUgUENJT19CQVNFCQkweDdjZWQwMDAwCi0KLSNlbHNlCi0KLSNlcnJvciAiVW5kZWZpbmVkIGZvb3RicmlkZ2UgYXJjaGl0ZWN0dXJlIgotCi0jZW5kaWYKLQogI2RlZmluZSBYQlVTX0xFRFMJCSgodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShYQlVTX0JBU0UgKyAweDEyMDAwKSkKICNkZWZpbmUgWEJVU19MRURfQU1CRVIJCSgxIDw8IDApCiAjZGVmaW5lIFhCVVNfTEVEX0dSRUVOCQkoMSA8PCAxKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9tZW1vcnkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvbWVtb3J5LmgKaW5kZXggY2JkN2FlNi4uOTAxOWEzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9tZW1vcnkuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L21lbW9yeS5oCkBAIC00Miw4ICs0Miw2IEBACiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9GT09UQlJJREdFKQotCiAvKiBUYXNrIHNpemUgYW5kIHBhZ2Ugb2Zmc2V0IGF0IDNHQiAqLwogI2RlZmluZSBUQVNLX1NJWkUJCVVMKDB4YmYwMDAwMDApCiAjZGVmaW5lIFBBR0VfT0ZGU0VUCQlVTCgweGMwMDAwMDAwKQpAQCAtNTMsMjMgKzUxLDYgQEAKICAqLwogI2RlZmluZSBGTFVTSF9CQVNFCQkweGY5MDAwMDAwCiAKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQ08yODUpCi0KLS8qIFRhc2sgc2l6ZSBhbmQgcGFnZSBvZmZzZXQgYXQgMS41R0IgKi8KLSNkZWZpbmUgVEFTS19TSVpFCQlVTCgweDVmMDAwMDAwKQotI2RlZmluZSBQQUdFX09GRlNFVAkJVUwoMHg2MDAwMDAwMCkKLQotLyoKLSAqIENhY2hlIGZsdXNoaW5nIGFyZWEuCi0gKi8KLSNkZWZpbmUgRkxVU0hfQkFTRQkJMHg3ZTAwMDAwMAotCi0jZWxzZQotCi0jZXJyb3IgIlVuZGVmaW5lZCBmb290YnJpZGdlIGFyY2hpdGVjdHVyZSIKLQotI2VuZGlmCi0KIC8qCiAgKiBQaHlzaWNhbCBEUkFNIG9mZnNldC4KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS92bWFsbG9jLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaAppbmRleCAwMjU5ODIwLi5lNDg3ZDdlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaApAQCAtNyw4ICs3LDQgQEAKICAqLwogCiAKLSNpZmRlZiBDT05GSUdfQVJDSF9GT09UQlJJREdFCiAjZGVmaW5lIFZNQUxMT0NfRU5EICAgICAgIChQQUdFX09GRlNFVCArIDB4MzAwMDAwMDApCi0jZWxzZQotI2RlZmluZSBWTUFMTE9DX0VORCAgICAgICAoUEFHRV9PRkZTRVQgKyAweDIwMDAwMDAwKQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCmluZGV4IGFkZmZiNmEuLjY1NDJjYTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCkBAIC03MywxNCArNzMsNiBAQAogICovCiBleHRlcm4gdm9pZCBpbXhfZ3Bpb19tb2RlKCBpbnQgZ3Bpb19tb2RlICk7CiAKLS8qIGdldCBmcmVxdWVuY2llcyBpbiBIeiAqLwotZXh0ZXJuIHVuc2lnbmVkIGludCBpbXhfZ2V0X3N5c3RlbV9jbGsodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfbWN1X2Nsayh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsxKHZvaWQpOyAvKiBVQVJUWzEyXSwgVGltZXJbMTJdLCBQV00gKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsyKHZvaWQpOyAvKiBMQ0QsIFNELCBTUElbMTJdICAgICAgICAgKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGszKHZvaWQpOyAvKiBTU0kgICAgICAgICAgICAgICAgICAgICAgKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9oY2xrKHZvaWQpOyAgICAvKiBTRFJBTSwgQ1NJLCBNZW1vcnkgU3RpY2ssKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMsIERNQSAgICAgICAgICAgICAgICAgKi8KICNlbmRpZgogCiAjZGVmaW5lIE1BWElSUU5VTSAgICAgICAgICAgICAgICAgICAgICAgNjIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LWRtYS5oCmluZGV4IDViMTA2NmQuLjQ0ZDg5YzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtZG1hLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC1kbWEuaApAQCAtODgsNyArODgsNyBAQAogCiB2b2lkIGlteF9kbWFfZnJlZShpbXhfZG1hY2hfdCBkbWFfY2gpOwogCi1pbnQgaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oaW14X2RtYWNoX3QgKnBkbWFfY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKTsKK2lteF9kbWFjaF90IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKTsKIAogCiAjZW5kaWYJLyogX0FTTV9BUkNIX0lNWF9ETUFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC11YXJ0LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaAppbmRleCAzYTY4NWUxLi5kNTRlYjFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaApAQCAtNCw2ICs0LDggQEAKICNkZWZpbmUgSU1YVUFSVF9IQVZFX1JUU0NUUyAoMTw8MCkKIAogc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSB7CisJaW50ICgqaW5pdCkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CisJdm9pZCAoKmV4aXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogCXVuc2lnbmVkIGludCBmbGFnczsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDEzeHgvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oCmluZGV4IDJlMTVkYTUzLi5kNzk4NDZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDEzeHgvZG1hLmgKQEAgLTEsMyArMSwzIEBACiAjaWZuZGVmIF9JT1AxM1hYX0RNQV9ICi0jZGVmaW5lIF9JT1AxM1hYX0RNQV9IXworI2RlZmluZSBfSU9QMTNYWF9ETUFfSAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AzMngvZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzJ4L2dwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDhmNGVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzJ4L2dwaW8uaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgX19BU01fQVJDSF9JT1AzMlhfR1BJT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9QMzJYX0dQSU9fSAorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmg+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzN4L2dwaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMzeC9ncGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRkNTViYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMzeC9ncGlvLmgKQEAgLTAsMCArMSw2IEBACisjaWZuZGVmIF9fQVNNX0FSQ0hfSU9QMzNYX0dQSU9fSAorI2RlZmluZSBfX0FTTV9BUkNIX0lPUDMzWF9HUElPX0gKKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oPgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9mc2cuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9mc2cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDEwMGNjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2ZzZy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvZnNnLmgKKyAqCisgKiBGcmVlY29tIEZTRy0zIHBsYXRmb3JtIHNwZWNpZmljIGRlZmluaXRpb25zCisgKgorICogQXV0aG9yOiBSb2QgV2hpdGJ5IDxyb2RAd2hpdGJ5LmlkLmF1PgorICogQXV0aG9yOiBUb21hc3ogQ2htaWVsZXdza2kgPG1hbmdvb0B3cGtnLm9yZz4KKyAqIE1haW50YWluZXJzOiBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZworICoKKyAqIEJhc2VkIG9uIGNveW90ZS5oIGJ5CisgKiBDb3B5cmlnaHQgMjAwNCAoYykgTW9udGFWaXN0YSwgU29mdHdhcmUsIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSF9fCisjZXJyb3IgIkRvIG5vdCBpbmNsdWRlIHRoaXMgZGlyZWN0bHksIGluc3RlYWQgI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPiIKKyNlbmRpZgorCisjZGVmaW5lIEZTR19TREFfUElOCQkxMgorI2RlZmluZSBGU0dfU0NMX1BJTgkJMTMKKworLyoKKyAqIEZTRyBQQ0kgSVJRcworICovCisjZGVmaW5lIEZTR19QQ0lfTUFYX0RFVgkJMworI2RlZmluZSBGU0dfUENJX0lSUV9MSU5FUwkzCisKKworLyogUENJIGNvbnRyb2xsZXIgR1BJTyB0byBJUlEgcGluIG1hcHBpbmdzICovCisjZGVmaW5lIEZTR19QQ0lfSU5UQV9QSU4JNgorI2RlZmluZSBGU0dfUENJX0lOVEJfUElOCTcKKyNkZWZpbmUgRlNHX1BDSV9JTlRDX1BJTgk1CisKKy8qIEJ1dHRvbnMgKi8KKworI2RlZmluZSBGU0dfU0JfR1BJTwkJNAkvKiBzeW5jIGJ1dHRvbiAqLworI2RlZmluZSBGU0dfUkJfR1BJTwkJOQkvKiByZXNldCBidXR0b24gKi8KKyNkZWZpbmUgRlNHX1VCX0dQSU8JCTEwCS8qIHVzYiBidXR0b24gKi8KKworLyogTEVEcyAqLworCisjZGVmaW5lIEZTR19MRURfV0xBTl9CSVQJMAorI2RlZmluZSBGU0dfTEVEX1dBTl9CSVQJCTEKKyNkZWZpbmUgRlNHX0xFRF9TQVRBX0JJVAkyCisjZGVmaW5lIEZTR19MRURfVVNCX0JJVAkJNAorI2RlZmluZSBGU0dfTEVEX1JJTkdfQklUCTUKKyNkZWZpbmUgRlNHX0xFRF9TWU5DX0JJVAk3CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCmluZGV4IDczZThkYzMuLmZhNzIzYTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCkBAIC00NSw1ICs0NSw2IEBACiAjaW5jbHVkZSAibnNsdTIuaCIKICNpbmNsdWRlICJuYXMxMDBkLmgiCiAjaW5jbHVkZSAiZHNtZzYwMC5oIgorI2luY2x1ZGUgImZzZy5oIgogCiAjZW5kaWYgIC8qIF9BU01fQVJDSF9IQVJEV0FSRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2lycXMuaAppbmRleCAxMTgwMTYwLi42NzRhZjRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaXJxcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9pcnFzLmgKQEAgLTEyOCw0ICsxMjgsMTEgQEAKICNkZWZpbmUgICAgICAgIElSUV9EU01HNjAwX1BDSV9JTlRFICAgIElSUV9JWFA0WFhfR1BJTzcKICNkZWZpbmUgICAgICAgIElSUV9EU01HNjAwX1BDSV9JTlRGICAgIElSUV9JWFA0WFhfR1BJTzYKIAorLyoKKyAqIEZyZWVjb20gRlNHLTMgQm9hcmQgSVJRcworICovCisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRBICAgICAgICBJUlFfSVhQNFhYX0dQSU82CisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRCICAgICAgICBJUlFfSVhQNFhYX0dQSU83CisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRDICAgICAgICBJUlFfSVhQNFhYX0dQSU81CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU1ZmI4YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisKKwkubWFjcm8JYWRkcnVhcnQscngKKwltcmMJcDE1LCAwLCBccngsIGMxLCBjMAorCXRzdAlccngsICMxCQkJCQlAIE1NVSBlbmFibGVkPworCWxkcmVxCVxyeCwgPUtJUktXT09EX1JFR1NfUEhZU19CQVNFCisJbGRybmUJXHJ4LCA9S0lSS1dPT0RfUkVHU19WSVJUX0JBU0UKKwlvcnIJXHJ4LCBccngsICMweDAwMDEyMDAwCisJLmVuZG0KKworI2RlZmluZSBVQVJUX1NISUZUCTIKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvZGVidWctODI1MC5TPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9kbWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE4YzE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZG1hLmgKQEAgLTAsMCArMSBAQAorLyogZW1wdHkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2VudHJ5LW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNmE0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCisgKgorICogTG93LWxldmVsIElSUSBoZWxwZXIgbWFjcm9zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIHBsYXRmb3JtcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorCisJLm1hY3JvICBkaXNhYmxlX2ZpcQorCS5lbmRtCisKKwkubWFjcm8gIGFyY2hfcmV0X3RvX3VzZXIsIHRtcDEsIHRtcDIKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfcHJlYW1ibGUsIGJhc2UsIHRtcAorCWxkcglcYmFzZSwgPUlSUV9WSVJUX0JBU0UKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfYW5kX2Jhc2UsIGlycW5yLCBpcnFzdGF0LCBiYXNlLCB0bXAKKwlAIGNoZWNrIGxvdyBpbnRlcnJ1cHRzCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfTE9XX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfTE9XX09GRl0KKwltb3YJXGlycW5yLCAjMzEKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCWJuZQkxMDAxZgorCisJQCBpZiBubyBsb3cgaW50ZXJydXB0cyBzZXQsIGNoZWNrIGhpZ2ggaW50ZXJydXB0cworCWxkcglcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX0hJR0hfT0ZGXQorCWxkcglcdG1wLCBbXGJhc2UsICNJUlFfTUFTS19ISUdIX09GRl0KKwltb3YJXGlycW5yLCAjNjMKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCisJQCBmaW5kIGZpcnN0IGFjdGl2ZSBpbnRlcnJ1cHQgc291cmNlCisxMDAxOgljbHpuZQlcaXJxc3RhdCwgXGlycXN0YXQKKwlzdWJuZQlcaXJxbnIsIFxpcnFuciwgXGlycXN0YXQKKwkuZW5kbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5NTcxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9IQVJEV0FSRV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorCisjaW5jbHVkZSAia2lya3dvb2QuaCIKKworI2RlZmluZSBwY2liaW9zX2Fzc2lnbl9hbGxfYnVzc2VzKCkJMQorCisjZGVmaW5lIFBDSUJJT1NfTUlOX0lPCQkJMHgwMDAwMTAwMAorI2RlZmluZSBQQ0lCSU9TX01JTl9NRU0JCQkweDAxMDAwMDAwCisjZGVmaW5lIFBDSU1FTV9CQVNFCQkJS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFIC8qIG1lbSBiYXNlIGZvciBWR0EgKi8KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZjZlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lPX0gKKyNkZWZpbmUgX19BU01fQVJDSF9JT19ICisKKyNpbmNsdWRlICJraXJrd29vZC5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFKQorCQkJCQkrIEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFKTsKK30KKworI2RlZmluZSBfX2lvKGEpCQkJX19pbyhhKQorI2RlZmluZSBfX21lbV9wY2koYSkJCShhKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaXJxcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlN2I1ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pcnFzLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lycXMuaAorICoKKyAqIElSUSBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lSUVNfSAorI2RlZmluZSBfX0FTTV9BUkNIX0lSUVNfSAorCisjaW5jbHVkZSAia2lya3dvb2QuaCIJLyogbmVlZCBHUElPX01BWCAqLworCisvKgorICogTG93IEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX0tJUktXT09EX0hJR0hfU1VNCTAKKyNkZWZpbmUgSVJRX0tJUktXT09EX0JSSURHRQkxCisjZGVmaW5lIElSUV9LSVJLV09PRF9IT1NUMkNQVQkyCisjZGVmaW5lIElSUV9LSVJLV09PRF9DUFUySE9TVAkzCisjZGVmaW5lIElSUV9LSVJLV09PRF9YT1JfMDAJNQorI2RlZmluZSBJUlFfS0lSS1dPT0RfWE9SXzAxCTYKKyNkZWZpbmUgSVJRX0tJUktXT09EX1hPUl8xMAk3CisjZGVmaW5lIElSUV9LSVJLV09PRF9YT1JfMTEJOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfUENJRQk5CisjZGVmaW5lIElSUV9LSVJLV09PRF9HRTAwX1NVTQkxMQorI2RlZmluZSBJUlFfS0lSS1dPT0RfR0UwMV9TVU0JMTUKKyNkZWZpbmUgSVJRX0tJUktXT09EX1VTQgkxOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfU0FUQQkyMQorI2RlZmluZSBJUlFfS0lSS1dPT0RfQ1JZUFRPCTIyCisjZGVmaW5lIElSUV9LSVJLV09PRF9TUEkJMjMKKyNkZWZpbmUgSVJRX0tJUktXT09EX0kyUwkyNAorI2RlZmluZSBJUlFfS0lSS1dPT0RfVFNfMAkyNgorI2RlZmluZSBJUlFfS0lSS1dPT0RfU0RJTwkyOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfVFdTSQkyOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfQVZCCTMwCisjZGVmaW5lIElSUV9LSVJLV09PRF9URE1JCTMxCisKKy8qCisgKiBIaWdoIEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX0tJUktXT09EX1VBUlRfMAkzMworI2RlZmluZSBJUlFfS0lSS1dPT0RfVUFSVF8xCTM0CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV18wXzcJMzUKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fTE9XXzhfMTUJMzYKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fTE9XXzE2XzIzCTM3CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV18yNF8zMQkzOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19ISUdIXzBfNwkzOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19ISUdIXzhfMTUJNDAKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fSElHSF8xNl8yMwk0MQorCisvKgorICogS0lSS1dPT0QgR2VuZXJhbCBQdXJwb3NlIFBpbnMKKyAqLworI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19TVEFSVAk2NAorI2RlZmluZSBOUl9HUElPX0lSUVMJCUdQSU9fTUFYCisKKyNkZWZpbmUgTlJfSVJRUwkJCShJUlFfS0lSS1dPT0RfR1BJT19TVEFSVCArIE5SX0dQSU9fSVJRUykKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2tpcmt3b29kLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9raXJrd29vZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzFiMzE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qva2lya3dvb2QuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2tpcmt3b29kLmgKKyAqCisgKiBHZW5lcmljIGRlZmluaXRpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQyBmbGF2b3JzOgorICogIDg4RjYxODAsIDg4RjYxOTIgYW5kIDg4RjYyODEuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0tJUktXT09EX0gKKyNkZWZpbmUgX19BU01fQVJDSF9LSVJLV09PRF9ICisKKy8qCisgKiBNYXJ2ZWxsIEtpcmt3b29kIGFkZHJlc3MgbWFwcy4KKyAqCisgKiBwaHlzCisgKiBlMDAwMDAwMAlQQ0llIE1lbW9yeSBzcGFjZQorICogZjEwMDAwMDAJb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICogZjIwMDAwMDAJUENJZSBJL08gc3BhY2UKKyAqIGYzMDAwMDAwCU5BTkQgY29udHJvbGxlciBhZGRyZXNzIHdpbmRvdworICoKKyAqIHZpcnQJCXBoeXMJCXNpemUKKyAqIGZlZTAwMDAwCWYxMDAwMDAwCTFNCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGZlZjAwMDAwCWYyMDAwMDAwCTFNCVBDSWUgSS9PIHNwYWNlCisgKi8KKworI2RlZmluZSBLSVJLV09PRF9OQU5EX01FTV9QSFlTX0JBU0UJMHhmMzAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9OQU5EX01FTV9TSVpFCQlTWl82NEsgLyogMUsgaXMgc3VmZmljaWVudCwgYnV0IDY0SworCQkJCQkJKiBpcyB0aGUgbWluaW1hbCB3aW5kb3cgc2l6ZQorCQkJCQkJKi8KKworI2RlZmluZSBLSVJLV09PRF9QQ0lFX0lPX1BIWVNfQkFTRQkweGYyMDAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFCTB4ZmVmMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9JT19CVVNfQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfSU9fU0laRQkJU1pfMU0KKworI2RlZmluZSBLSVJLV09PRF9SRUdTX1BIWVNfQkFTRQkJMHhmMTAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRQkJMHhmZWUwMDAwMAorI2RlZmluZSBLSVJLV09PRF9SRUdTX1NJWkUJCVNaXzFNCisKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFCTB4ZTAwMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9NRU1fU0laRQkJU1pfMTI4TQorCisvKgorICogTUJVUyBicmlkZ2UgcmVnaXN0ZXJzLgorICovCisjZGVmaW5lIEJSSURHRV9WSVJUX0JBU0UJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHgyMDAwMCkKKyNkZWZpbmUgIENQVV9DT05UUk9MCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDEwNCkKKyNkZWZpbmUgICBDUFVfUkVTRVQJCTB4MDAwMDAwMDIKKyNkZWZpbmUgIFJTVE9VVG5fTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDgpCisjZGVmaW5lICAgU09GVF9SRVNFVF9PVVRfRU4JMHgwMDAwMDAwNAorI2RlZmluZSAgU1lTVEVNX1NPRlRfUkVTRVQJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMGMpCisjZGVmaW5lICAgU09GVF9SRVNFVAkJMHgwMDAwMDAwMQorI2RlZmluZSAgQlJJREdFX0NBVVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExMCkKKyNkZWZpbmUgIEJSSURHRV9NQVNLCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExNCkKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMAkweDAwMDIKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMV9DTFIJKH4weDAwMDQpCisjZGVmaW5lICBJUlFfVklSVF9CQVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDIwMCkKKyNkZWZpbmUgICBJUlFfQ0FVU0VfTE9XX09GRgkweDAwMDAKKyNkZWZpbmUgICBJUlFfTUFTS19MT1dfT0ZGCTB4MDAwNAorI2RlZmluZSAgIElSUV9DQVVTRV9ISUdIX09GRgkweDAwMTAKKyNkZWZpbmUgICBJUlFfTUFTS19ISUdIX09GRgkweDAwMTQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKyNkZWZpbmUgIEwyX0NPTkZJR19SRUcJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTI4KQorI2RlZmluZSAgIEwyX1dSSVRFVEhST1VHSAkweDAwMDAwMDEwCisKKy8qCisgKiBSZWdpc3RlciBNYXAKKyAqLworI2RlZmluZSBERFJfVklSVF9CQVNFCQkoS0lSS1dPT0RfUkVHU19WSVJUX0JBU0UgfCAweDAwMDAwKQorI2RlZmluZSAgRERSX1dJTkRPV19DUFVfQkFTRQkoRERSX1ZJUlRfQkFTRSB8IDB4MTUwMCkKKworI2RlZmluZSBERVZfQlVTX1BIWVNfQkFTRQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoS0lSS1dPT0RfUkVHU19WSVJUX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSAgU0FNUExFX0FUX1JFU0VUCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzMCkKKyNkZWZpbmUgIERFVklDRV9JRAkJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgwMDM0KQorI2RlZmluZSAgUlRDX1BIWVNfQkFTRQkJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgwMzAwKQorI2RlZmluZSAgU1BJX1BIWVNfQkFTRQkJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgwNjAwKQorI2RlZmluZSAgVUFSVDBfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQwX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMV9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMTAwKQorI2RlZmluZSAgVUFSVDFfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjEwMCkKKworI2RlZmluZSBQQ0lFX1ZJUlRfQkFTRQkJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHg0MDAwMCkKKworI2RlZmluZSBVU0JfUEhZU19CQVNFCQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDUwMDAwKQorCisjZGVmaW5lIEdFMDBfUEhZU19CQVNFCQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDcwMDAwKQorI2RlZmluZSBHRTAxX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg3NDAwMCkKKworI2RlZmluZSBTQVRBX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg4MDAwMCkKKworCisjZGVmaW5lIEdQSU9fTUFYCQk1MAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvbWVtb3J5LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTEwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvbWVtb3J5LmgKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL21lbW9yeS5oCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01FTU9SWV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfTUVNT1JZX0gKKworI2RlZmluZSBQSFlTX09GRlNFVAkJVUwoMHgwMDAwMDAwMCkKKworI2RlZmluZSBfX3ZpcnRfdG9fYnVzKHgpCV9fdmlydF90b19waHlzKHgpCisjZGVmaW5lIF9fYnVzX3RvX3ZpcnQoeCkJX19waHlzX3RvX3ZpcnQoeCkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qvc3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRkZTdlMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3N5c3RlbS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9zeXN0ZW0uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9TWVNURU1fSAorI2RlZmluZSBfX0FTTV9BUkNIX1NZU1RFTV9ICisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2lkbGUodm9pZCkKK3sKKwljcHVfZG9faWRsZSgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9yZXNldChjaGFyIG1vZGUpCit7CisJLyoKKwkgKiBFbmFibGUgc29mdCByZXNldCB0byBhc3NlcnQgUlNUT1VUbi4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVF9PVVRfRU4sIFJTVE9VVG5fTUFTSyk7CisKKwkvKgorCSAqIEFzc2VydCBzb2Z0IHJlc2V0LgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VULCBTWVNURU1fU09GVF9SRVNFVCk7CisKKwl3aGlsZSAoMSkKKwkJOworfQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdGltZXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIxMjJlMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKQEAgLTAsMCArMSwxMSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKDEwMCAqIEhaKQorCisjZGVmaW5lIEtJUktXT09EX1RDTEsJCTE2NjY2NjY2NwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdW5jb21wcmVzcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdW5jb21wcmVzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MDYyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC91bmNvbXByZXNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3VuY29tcHJlc3MuaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKworI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCisKK3N0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIFVBUlRfTFNSX1RIUkUpCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KKworCWJhc2VbVUFSVF9UWCA8PCAyXSA9IGM7Cit9CisKK3N0YXRpYyB2b2lkIGZsdXNoKHZvaWQpCit7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCXVuc2lnbmVkIGNoYXIgbWFzazsKKwlpbnQgaTsKKworCW1hc2sgPSBVQVJUX0xTUl9URU1UIHwgVUFSVF9MU1JfVEhSRTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBtYXNrKSA9PSBtYXNrKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9Cit9CisKKy8qCisgKiBub3RoaW5nIHRvIGRvCisgKi8KKyNkZWZpbmUgYXJjaF9kZWNvbXBfc2V0dXAoKQorI2RlZmluZSBhcmNoX2RlY29tcF93ZG9nKCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTg1MmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qvdm1hbGxvYy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaAorICovCisKKyNkZWZpbmUgVk1BTExPQ19FTkQJMHhmZTgwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kZWJ1Zy1tYWNyby5TIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kZWJ1Zy1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NTUwMmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2RlYnVnLW1hY3JvLlMKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZGVidWctbWFjcm8uUworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorCisJLm1hY3JvCWFkZHJ1YXJ0LHJ4CisJbXJjCXAxNSwgMCwgXHJ4LCBjMSwgYzAKKwl0c3QJXHJ4LCAjMQkJCQkJQCBNTVUgZW5hYmxlZD8KKwlsZHJlcQlccngsID1MT0tJX1JFR1NfUEhZU19CQVNFCisJbGRybmUJXHJ4LCA9TE9LSV9SRUdTX1ZJUlRfQkFTRQorCW9ycglccngsIFxyeCwgIzB4MDAwMTIwMDAKKwkuZW5kbQorCisjZGVmaW5lIFVBUlRfU0hJRlQJMgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9kZWJ1Zy04MjUwLlM+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2RtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kbWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE4YzE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kbWEuaApAQCAtMCwwICsxIEBACisvKiBlbXB0eSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9lbnRyeS1tYWNyby5TIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9lbnRyeS1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MzI1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2VudHJ5LW1hY3JvLlMKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZW50cnktbWFjcm8uUworICoKKyAqIExvdy1sZXZlbCBJUlEgaGVscGVyIG1hY3JvcyBmb3IgTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgcGxhdGZvcm1zCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKworCS5tYWNybyAgZGlzYWJsZV9maXEKKwkuZW5kbQorCisJLm1hY3JvICBhcmNoX3JldF90b191c2VyLCB0bXAxLCB0bXAyCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX3ByZWFtYmxlLCBiYXNlLCB0bXAKKwlsZHIJXGJhc2UsID1JUlFfVklSVF9CQVNFCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX2FuZF9iYXNlLCBpcnFuciwgaXJxc3RhdCwgYmFzZSwgdG1wCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfT0ZGXQorCWxkcglcdG1wLCBbXGJhc2UsICNJUlFfTUFTS19PRkZdCisJbW92CVxpcnFuciwgIzAKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCWNsem5lCVxpcnFuciwgXGlycXN0YXQKKwlyc2JuZQlcaXJxbnIsIFxpcnFuciwgIzMxCisJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaGFyZHdhcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjViMDFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9oYXJkd2FyZS5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9IQVJEV0FSRV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorCisjaW5jbHVkZSAibG9raS5oIgorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NDE4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lvLmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaW8uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9fSAorCisjaW5jbHVkZSAibG9raS5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIExPS0lfUENJRTBfSU9fUEhZU19CQVNFKQorCQkJCQkrIExPS0lfUENJRTBfSU9fVklSVF9CQVNFKTsKK30KKworI2RlZmluZSBfX2lvKGEpCQkJX19pbyhhKQorI2RlZmluZSBfX21lbV9wY2koYSkJCShhKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lycXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTQ5NzE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pcnFzLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaXJxcy5oCisgKgorICogSVJRIGRlZmluaXRpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lSUVNfSAorI2RlZmluZSBfX0FTTV9BUkNIX0lSUVNfSAorCisjaW5jbHVkZSAibG9raS5oIgkvKiBuZWVkIEdQSU9fTUFYICovCisKKy8qCisgKiBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQV9DUFVfRFJCTAkwCisjZGVmaW5lIElSUV9MT0tJX0NQVV9QQ0lFX0FfRFJCTAkxCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQl9DUFVfRFJCTAkyCisjZGVmaW5lIElSUV9MT0tJX0NQVV9QQ0lFX0JfRFJCTAkzCisjZGVmaW5lIElSUV9MT0tJX0NPTV9BX0VSUgkJNgorI2RlZmluZSBJUlFfTE9LSV9DT01fQV9JTgkJNworI2RlZmluZSBJUlFfTE9LSV9DT01fQV9PVVQJCTgKKyNkZWZpbmUgSVJRX0xPS0lfQ09NX0JfRVJSCQk5CisjZGVmaW5lIElSUV9MT0tJX0NPTV9CX0lOCQkxMAorI2RlZmluZSBJUlFfTE9LSV9DT01fQl9PVVQJCTExCisjZGVmaW5lIElSUV9MT0tJX0RNQV9BCQkJMTIKKyNkZWZpbmUgSVJRX0xPS0lfRE1BX0IJCQkxMworI2RlZmluZSBJUlFfTE9LSV9TQVNfQQkJCTE0CisjZGVmaW5lIElSUV9MT0tJX1NBU19CCQkJMTUKKyNkZWZpbmUgSVJRX0xPS0lfRERSCQkJMTYKKyNkZWZpbmUgSVJRX0xPS0lfWE9SCQkJMTcKKyNkZWZpbmUgSVJRX0xPS0lfQlJJREdFCQkJMTgKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9BX0VSUgkJMjAKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9BX0lOVAkJMjEKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9CX0VSUgkJMjIKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9CX0lOVAkJMjMKKyNkZWZpbmUgSVJRX0xPS0lfR0JFX0FfSU5UCQkyNAorI2RlZmluZSBJUlFfTE9LSV9HQkVfQl9JTlQJCTI1CisjZGVmaW5lIElSUV9MT0tJX0RFVl9FUlIJCTI2CisjZGVmaW5lIElSUV9MT0tJX1VBUlQwCQkJMjcKKyNkZWZpbmUgSVJRX0xPS0lfVUFSVDEJCQkyOAorI2RlZmluZSBJUlFfTE9LSV9UV1NJCQkJMjkKKyNkZWZpbmUgSVJRX0xPS0lfR1BJT18yM18wCQkzMAorI2RlZmluZSBJUlFfTE9LSV9HUElPXzI1XzI0CQkzMQorCisvKgorICogTG9raSBHZW5lcmFsIFB1cnBvc2UgUGlucworICovCisjZGVmaW5lIElSUV9MT0tJX0dQSU9fU1RBUlQJMzIKKyNkZWZpbmUgTlJfR1BJT19JUlFTCQlHUElPX01BWAorCisjZGVmaW5lIE5SX0lSUVMJCQkoSVJRX0xPS0lfR1BJT19TVEFSVCArIE5SX0dQSU9fSVJRUykKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbG9raS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9sb2tpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkMDVlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbG9raS5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2xva2kuaAorICoKKyAqIEdlbmVyaWMgZGVmaW5pdGlvbnMgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQyBmbGF2b3JzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0xPS0lfSAorI2RlZmluZSBfX0FTTV9BUkNIX0xPS0lfSAorCisvKgorICogTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgYWRkcmVzcyBtYXBzLgorICoKKyAqIHBoeXMKKyAqIGQwMDAwMDAwCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGUwMDAwMDAwCVBDSWUgMCBNZW1vcnkgc3BhY2UKKyAqIGU4MDAwMDAwCVBDSWUgMSBNZW1vcnkgc3BhY2UKKyAqIGYwMDAwMDAwCVBDSWUgMCBJL08gc3BhY2UKKyAqIGYwMTAwMDAwCVBDSWUgMSBJL08gc3BhY2UKKyAqCisgKiB2aXJ0CQlwaHlzCQlzaXplCisgKiBmZWQwMDAwMAlkMDAwMDAwMAkxTQlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKiBmZWUwMDAwMAlmMDAwMDAwMAk2NEsJUENJZSAwIEkvTyBzcGFjZQorICogZmVmMDAwMDAJZjAxMDAwMDAJNjRLCVBDSWUgMSBJL08gc3BhY2UKKyAqLworCisjZGVmaW5lIExPS0lfUkVHU19QSFlTX0JBU0UJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgTE9LSV9SRUdTX1ZJUlRfQkFTRQkJMHhmZWQwMDAwMAorI2RlZmluZSBMT0tJX1JFR1NfU0laRQkJCVNaXzFNCisKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19QSFlTX0JBU0UJCTB4ZjAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19WSVJUX0JBU0UJCTB4ZmVlMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19CVVNfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUwX0lPX1NJWkUJCVNaXzY0SworCisjZGVmaW5lIExPS0lfUENJRTFfSU9fUEhZU19CQVNFCQkweGYwMTAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfSU9fVklSVF9CQVNFCQkweGZlZjAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfSU9fQlVTX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMV9JT19TSVpFCQlTWl82NEsKKworI2RlZmluZSBMT0tJX1BDSUUwX01FTV9QSFlTX0JBU0UJMHhlMDAwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUwX01FTV9TSVpFCQlTWl8xMjhNCisKKyNkZWZpbmUgTE9LSV9QQ0lFMV9NRU1fUEhZU19CQVNFCTB4ZTgwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMV9NRU1fU0laRQkJU1pfMTI4TQorCisvKgorICogUmVnaXN0ZXIgTWFwCisgKi8KKyNkZWZpbmUgREVWX0JVU19QSFlTX0JBU0UJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4MTAwMDApCisjZGVmaW5lICBVQVJUMF9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDBfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQxX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIxMDApCisjZGVmaW5lICBVQVJUMV9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMTAwKQorCisjZGVmaW5lIEJSSURHRV9WSVJUX0JBU0UJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweDIwMDAwKQorI2RlZmluZSAgQlJJREdFX1JFRyh4KQkJKEJSSURHRV9WSVJUX0JBU0UgfCAoeCkpCisjZGVmaW5lICBSU1RPVVRuX01BU0sJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTA4KQorI2RlZmluZSAgIFNPRlRfUkVTRVRfT1VUX0VOCTB4MDAwMDAwMDQKKyNkZWZpbmUgIFNZU1RFTV9TT0ZUX1JFU0VUCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTBjKQorI2RlZmluZSAgIFNPRlRfUkVTRVQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgIEJSSURHRV9DQVVTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTApCisjZGVmaW5lICBCUklER0VfTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTQpCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjEJMHgwMDA0CisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjFfQ0xSCTB4MDAwNAorI2RlZmluZSAgSVJRX1ZJUlRfQkFTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAyMDApCisjZGVmaW5lICAgSVJRX0NBVVNFX09GRgkJMHgwMDAwCisjZGVmaW5lICAgSVJRX01BU0tfT0ZGCQkweDAwMDQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKworI2RlZmluZSBQQ0lFMF9WSVJUX0JBU0UJCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHgzMDAwMCkKKworI2RlZmluZSBQQ0lFMV9WSVJUX0JBU0UJCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHg0MDAwMCkKKworI2RlZmluZSBTQVMwX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweDgwMDAwKQorCisjZGVmaW5lIFNBUzFfUEhZU19CQVNFCQkoTE9LSV9SRUdTX1BIWVNfQkFTRSB8IDB4OTAwMDApCisKKyNkZWZpbmUgR0UwX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweGEwMDAwKQorI2RlZmluZSBHRTBfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4YTAwMDApCisKKyNkZWZpbmUgR0UxX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweGIwMDAwKQorI2RlZmluZSBHRTFfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4YjAwMDApCisKKyNkZWZpbmUgRERSX1ZJUlRfQkFTRQkJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweGYwMDAwKQorI2RlZmluZSBERFJfUkVHKHgpCQkoRERSX1ZJUlRfQkFTRSB8ICh4KSkKKworCisjZGVmaW5lIEdQSU9fTUFYCQk4CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL21lbW9yeS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzUxMDFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaApAQCAtMCwwICsxLDE0IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaAorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NRU1PUllfSAorI2RlZmluZSBfX0FTTV9BUkNIX01FTU9SWV9ICisKKyNkZWZpbmUgUEhZU19PRkZTRVQJCVVMKDB4MDAwMDAwMDApCisKKyNkZWZpbmUgX192aXJ0X3RvX2J1cyh4KQlfX3ZpcnRfdG9fcGh5cyh4KQorI2RlZmluZSBfX2J1c190b192aXJ0KHgpCV9fcGh5c190b192aXJ0KHgpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzU2OGFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaApAQCAtMCwwICsxLDM3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9TWVNURU1fSAorI2RlZmluZSBfX0FTTV9BUkNIX1NZU1RFTV9ICisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfaWRsZSh2b2lkKQoreworCWNwdV9kb19pZGxlKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSkKK3sKKwkvKgorCSAqIEVuYWJsZSBzb2Z0IHJlc2V0IHRvIGFzc2VydCBSU1RPVVRuLgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VUX09VVF9FTiwgUlNUT1VUbl9NQVNLKTsKKworCS8qCisJICogQXNzZXJ0IHNvZnQgcmVzZXQuCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVQsIFNZU1RFTV9TT0ZUX1JFU0VUKTsKKworCXdoaWxlICgxKQorCQk7Cit9CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3RpbWV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQwMDE0ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdGltZXguaApAQCAtMCwwICsxLDExIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS90aW1leC5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCSgxMDAgKiBIWikKKworI2RlZmluZSBMT0tJX1RDTEsJCTE4MDAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS91bmNvbXByZXNzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3VuY29tcHJlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWEwY2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS91bmNvbXByZXNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdW5jb21wcmVzcy5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9sb2tpLmg+CisKKyNkZWZpbmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopVUFSVDBfUEhZU19CQVNFKQorCitzdGF0aWMgdm9pZCBwdXRjKGNvbnN0IGNoYXIgYykKK3sKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBVQVJUX0xTUl9USFJFKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOworfQorCitzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQorfQorCisvKgorICogbm90aGluZyB0byBkbworICovCisjZGVmaW5lIGFyY2hfZGVjb21wX3NldHVwKCkKKyNkZWZpbmUgYXJjaF9kZWNvbXBfd2RvZygpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdm1hbGxvYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YmUwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaAorICovCisKKyNkZWZpbmUgVk1BTExPQ19FTkQJMHhmZTgwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW1zbS9pcnFzLmgKaW5kZXggNTY1NDMwYy4uZTYyYTEwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vaXJxcy5oCkBAIC0xNSw2ICsxNSw3IEBACiAgKi8KIAogI2lmbmRlZiBfX0FTTV9BUkNIX01TTV9JUlFTX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NU01fSVJRU19ICiAKIC8qIE1TTSBBUk0xMSBJbnRlcnJ1cHQgTnVtYmVycyAqLwogLyogU2VlIDgwLVZFMTEzLTEgQSwgcHAyMTktMjIxICAgICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaAppbmRleCAxNTRiMjNmLi44NzI0NDg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaApAQCAtMTQsNiArMTQsNyBAQAogICovCiAKICNpZm5kZWYgX19BU01fQVJDSF9NU01fVElNRVhfSAorI2RlZmluZSBfX0FTTV9BUkNIX01TTV9USU1FWF9ICiAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkxMDAwMDAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZGVidWctbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDU5NWJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9kZWJ1Zy1tYWNyby5TCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RlYnVnLW1hY3JvLlMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworCS5tYWNybwlhZGRydWFydCxyeAorCW1yYwlwMTUsIDAsIFxyeCwgYzEsIGMwCisJdHN0CVxyeCwgIzEJCQkJCUAgTU1VIGVuYWJsZWQ/CisJbGRyZXEJXHJ4LCA9TVY3OFhYMF9SRUdTX1BIWVNfQkFTRQorCWxkcm5lCVxyeCwgPU1WNzhYWDBfUkVHU19WSVJUX0JBU0UKKwlvcnIJXHJ4LCBccngsICMweDAwMDEyMDAwCisJLmVuZG0KKworI2RlZmluZSBVQVJUX1NISUZUCTIKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvZGVidWctODI1MC5TPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9kbWEuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZG1hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhOGMxNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZG1hLmgKQEAgLTAsMCArMSBAQAorLyogZW1wdHkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZW50cnktbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZW50cnktbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWE2MDZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9lbnRyeS1tYWNyby5TCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2VudHJ5LW1hY3JvLlMKKyAqCisgKiBMb3ctbGV2ZWwgSVJRIGhlbHBlciBtYWNyb3MgZm9yIE1hcnZlbGwgTVY3OHh4MCBwbGF0Zm9ybXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorCisJLm1hY3JvICBkaXNhYmxlX2ZpcQorCS5lbmRtCisKKwkubWFjcm8gIGFyY2hfcmV0X3RvX3VzZXIsIHRtcDEsIHRtcDIKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfcHJlYW1ibGUsIGJhc2UsIHRtcAorCWxkcglcYmFzZSwgPUlSUV9WSVJUX0JBU0UKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfYW5kX2Jhc2UsIGlycW5yLCBpcnFzdGF0LCBiYXNlLCB0bXAKKwlAIGNoZWNrIGxvdyBpbnRlcnJ1cHRzCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfTE9XX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfTE9XX09GRl0KKwltb3YJXGlycW5yLCAjMzEKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCisJQCBpZiBubyBsb3cgaW50ZXJydXB0cyBzZXQsIGNoZWNrIGhpZ2ggaW50ZXJydXB0cworCWxkcmVxCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfSElHSF9PRkZdCisJbGRyZXEJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfSElHSF9PRkZdCisJbW92ZXEJXGlycW5yLCAjNjMKKwlhbmRlcXMJXGlycXN0YXQsIFxpcnFzdGF0LCBcdG1wCisKKwlAIGZpbmQgZmlyc3QgYWN0aXZlIGludGVycnVwdCBzb3VyY2UKKwljbHpuZQlcaXJxc3RhdCwgXGlycXN0YXQKKwlzdWJuZQlcaXJxbnIsIFxpcnFuciwgXGlycXN0YXQKKwkuZW5kbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMTc5MjYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorI2RlZmluZSBfX0FTTV9BUkNIX0hBUkRXQVJFX0gKKworI2luY2x1ZGUgIm12Nzh4eDAuaCIKKworI2RlZmluZSBwY2liaW9zX2Fzc2lnbl9hbGxfYnVzc2VzKCkJMQorCisjZGVmaW5lIFBDSUJJT1NfTUlOX0lPCQkJMHgwMDAwMTAwMAorI2RlZmluZSBQQ0lCSU9TX01JTl9NRU0JCQkweDAxMDAwMDAwCisjZGVmaW5lIFBDSU1FTV9CQVNFCQkJTVY3OFhYMF9QQ0lFX01FTV9QSFlTX0JBU0UgLyogbWVtIGJhc2UgZm9yIFZHQSAqLworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNWQ0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lvLmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaW8uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9fSAorCisjaW5jbHVkZSAibXY3OHh4MC5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIE1WNzhYWDBfUENJRV9JT19QSFlTX0JBU0UoMCkpCisJCQkJCSsgTVY3OFhYMF9QQ0lFX0lPX1ZJUlRfQkFTRSgwKSk7Cit9CisKKyNkZWZpbmUgX19pbyhhKQkJCV9faW8oYSkKKyNkZWZpbmUgX19tZW1fcGNpKGEpCQkoYSkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pcnFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5MzA0NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaXJxcy5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lycXMuaAorICoKKyAqIElSUSBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSVJRU19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSVJRU19ICisKKyNpbmNsdWRlICJtdjc4eHgwLmgiCS8qIG5lZWQgR1BJT19NQVggKi8KKworLyoKKyAqIE1WNzh4eDAgTG93IEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX01WNzhYWDBfRVJSCQkwCisjZGVmaW5lIElSUV9NVjc4WFgwX1NQSQkJMQorI2RlZmluZSBJUlFfTVY3OFhYMF9JMkNfMAkyCisjZGVmaW5lIElSUV9NVjc4WFgwX0kyQ18xCTMKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8wCTQKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8xCTUKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8yCTYKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8zCTcKKyNkZWZpbmUgSVJRX01WNzhYWDBfVElNRVJfMAk4CisjZGVmaW5lIElSUV9NVjc4WFgwX1RJTUVSXzEJOQorI2RlZmluZSBJUlFfTVY3OFhYMF9USU1FUl8yCTEwCisjZGVmaW5lIElSUV9NVjc4WFgwX1RJTUVSXzMJMTEKKyNkZWZpbmUgSVJRX01WNzhYWDBfVUFSVF8wCTEyCisjZGVmaW5lIElSUV9NVjc4WFgwX1VBUlRfMQkxMworI2RlZmluZSBJUlFfTVY3OFhYMF9VQVJUXzIJMTQKKyNkZWZpbmUgSVJRX01WNzhYWDBfVUFSVF8zCTE1CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8wCTE2CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8xCTE3CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8yCTE4CisjZGVmaW5lIElSUV9NVjc4WFgwX0NSWVBUTwkxOQorI2RlZmluZSBJUlFfTVY3OFhYMF9TRElPXzAJMjAKKyNkZWZpbmUgSVJRX01WNzhYWDBfU0RJT18xCTIxCisjZGVmaW5lIElSUV9NVjc4WFgwX1hPUl8wCTIyCisjZGVmaW5lIElSUV9NVjc4WFgwX1hPUl8xCTIzCisjZGVmaW5lIElSUV9NVjc4WFgwX0kyU18wCTI0CisjZGVmaW5lIElSUV9NVjc4WFgwX0kyU18xCTI1CisjZGVmaW5lIElSUV9NVjc4WFgwX1NBVEEJMjYKKyNkZWZpbmUgSVJRX01WNzhYWDBfVERNSQkyNworCisvKgorICogTVY3OHh4MCBIaWdoIEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8wMAkzMgorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzAxCTMzCisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMDIJMzQKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8wMwkzNQorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzEwCTM2CisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMTEJMzcKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8xMgkzOAorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzEzCTM5CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDBfU1VNCTQwCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDBfUlgJNDEKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMF9UWAk0MgorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAwX01JU0MJNDMKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMV9TVU0JNDQKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMV9SWAk0NQorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAxX1RYCTQ2CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDFfTUlTQwk0NworI2RlZmluZSBJUlFfTVY3OFhYMF9HRTEwX1NVTQk0OAorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTEwX1JYCTQ5CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTBfVFgJNTAKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMF9NSVNDCTUxCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTFfU1VNCTUyCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTFfUlgJNTMKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMV9UWAk1NAorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTExX01JU0MJNTUKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT18wXzcJNTYKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT184XzE1CTU3CisjZGVmaW5lIElSUV9NVjc4WFgwX0dQSU9fMTZfMjMJNTgKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT18yNF8zMQk1OQorI2RlZmluZSBJUlFfTVY3OFhYMF9EQl9JTgk2MAorI2RlZmluZSBJUlFfTVY3OFhYMF9EQl9PVVQJNjEKKworLyoKKyAqIE1WNzhYWDAgR2VuZXJhbCBQdXJwb3NlIFBpbnMKKyAqLworI2RlZmluZSBJUlFfTVY3OFhYMF9HUElPX1NUQVJUCTY0CisjZGVmaW5lIE5SX0dQSU9fSVJRUwkJR1BJT19NQVgKKworI2RlZmluZSBOUl9JUlFTCQkJKElSUV9NVjc4WFgwX0dQSU9fU1RBUlQgKyBOUl9HUElPX0lSUVMpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL21lbW9yeS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjFhNmIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaApAQCAtMCwwICsxLDE0IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaAorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NRU1PUllfSAorI2RlZmluZSBfX0FTTV9BUkNIX01FTU9SWV9ICisKKyNkZWZpbmUgUEhZU19PRkZTRVQJCVVMKDB4MDAwMDAwMDApCisKKyNkZWZpbmUgX192aXJ0X3RvX2J1cyh4KQlfX3ZpcnRfdG9fcGh5cyh4KQorI2RlZmluZSBfX2J1c190b192aXJ0KHgpCV9fcGh5c190b192aXJ0KHgpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbXY3OHh4MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNWQ4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbXY3OHh4MC5oCisgKgorICogR2VuZXJpYyBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQyBmbGF2b3JzOgorICogIE1WNzgxeDAgYW5kIE1WNzgyeDAuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01WNzhYWDBfSAorI2RlZmluZSBfX0FTTV9BUkNIX01WNzhYWDBfSAorCisvKgorICogTWFydmVsbCBNVjc4eHgwIGFkZHJlc3MgbWFwcy4KKyAqCisgKiBwaHlzCisgKiBjMDAwMDAwMAlQQ0llIE1lbW9yeSBzcGFjZQorICogZjA4MDAwMDAJUENJZSAjMCBJL08gc3BhY2UKKyAqIGYwOTAwMDAwCVBDSWUgIzEgSS9PIHNwYWNlCisgKiBmMGEwMDAwMAlQQ0llICMyIEkvTyBzcGFjZQorICogZjBiMDAwMDAJUENJZSAjMyBJL08gc3BhY2UKKyAqIGYwYzAwMDAwCVBDSWUgIzQgSS9PIHNwYWNlCisgKiBmMGQwMDAwMAlQQ0llICM1IEkvTyBzcGFjZQorICogZjBlMDAwMDAJUENJZSAjNiBJL08gc3BhY2UKKyAqIGYwZjAwMDAwCVBDSWUgIzcgSS9PIHNwYWNlCisgKiBmMTAwMDAwMAlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKgorICogdmlydAkJcGh5cwkJc2l6ZQorICogZmU0MDAwMDAJZjEwMngwMDAJMTZLCWNvcmUtc3BlY2lmaWMgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGZlNzAwMDAwCWYwODAwMDAwCTFNCVBDSWUgIzAgSS9PIHNwYWNlCisgKiBmZTgwMDAwMAlmMDkwMDAwMAkxTQlQQ0llICMxIEkvTyBzcGFjZQorICogZmU5MDAwMDAJZjBhMDAwMDAJMU0JUENJZSAjMiBJL08gc3BhY2UKKyAqIGZlYTAwMDAwCWYwYjAwMDAwCTFNCVBDSWUgIzMgSS9PIHNwYWNlCisgKiBmZWIwMDAwMAlmMGMwMDAwMAkxTQlQQ0llICM0IEkvTyBzcGFjZQorICogZmVjMDAwMDAJZjBkMDAwMDAJMU0JUENJZSAjNSBJL08gc3BhY2UKKyAqIGZlZDAwMDAwCWYwZTAwMDAwCTFNCVBDSWUgIzYgSS9PIHNwYWNlCisgKiBmZWUwMDAwMAlmMGYwMDAwMAkxTQlQQ0llICM3IEkvTyBzcGFjZQorICogZmVmMDAwMDAJZjEwMDAwMDAJMU0Jb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICovCisjZGVmaW5lIE1WNzhYWDBfQ09SRTBfUkVHU19QSFlTX0JBU0UJMHhmMTAyMDAwMAorI2RlZmluZSBNVjc4WFgwX0NPUkUxX1JFR1NfUEhZU19CQVNFCTB4ZjEwMjQwMDAKKyNkZWZpbmUgTVY3OFhYMF9DT1JFX1JFR1NfVklSVF9CQVNFCTB4ZmU0MDAwMDAKKyNkZWZpbmUgTVY3OFhYMF9DT1JFX1JFR1NfU0laRQkJU1pfMTZLCisKKyNkZWZpbmUgTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRShpKQkoMHhmMDgwMDAwMCArICgoaSkgPDwgMjApKQorI2RlZmluZSBNVjc4WFgwX1BDSUVfSU9fVklSVF9CQVNFKGkpCSgweGZlNzAwMDAwICsgKChpKSA8PCAyMCkpCisjZGVmaW5lIE1WNzhYWDBfUENJRV9JT19TSVpFCQlTWl8xTQorCisjZGVmaW5lIE1WNzhYWDBfUkVHU19QSFlTX0JBU0UJCTB4ZjEwMDAwMDAKKyNkZWZpbmUgTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRQkJMHhmZWYwMDAwMAorI2RlZmluZSBNVjc4WFgwX1JFR1NfU0laRQkJU1pfMU0KKworI2RlZmluZSBNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIE1WNzhYWDBfUENJRV9NRU1fU0laRQkJMHgzMDAwMDAwMAorCisvKgorICogQ29yZS1zcGVjaWZpYyBwZXJpcGhlcmFsIHJlZ2lzdGVycy4KKyAqLworI2RlZmluZSBCUklER0VfVklSVF9CQVNFCShNVjc4WFgwX0NPUkVfUkVHU19WSVJUX0JBU0UpCisjZGVmaW5lICBDUFVfQ09OVFJPTAkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDQpCisjZGVmaW5lICAgTDJfV1JJVEVUSFJPVUdICTB4MDAwMjAwMDAKKyNkZWZpbmUgIFJTVE9VVG5fTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDgpCisjZGVmaW5lICAgU09GVF9SRVNFVF9PVVRfRU4JMHgwMDAwMDAwNAorI2RlZmluZSAgU1lTVEVNX1NPRlRfUkVTRVQJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMGMpCisjZGVmaW5lICAgU09GVF9SRVNFVAkJMHgwMDAwMDAwMQorI2RlZmluZSAgQlJJREdFX0NBVVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExMCkKKyNkZWZpbmUgIEJSSURHRV9NQVNLCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExNCkKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMAkweDAwMDIKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMV9DTFIJKH4weDAwMDQpCisjZGVmaW5lICBJUlFfVklSVF9CQVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDIwMCkKKyNkZWZpbmUgICBJUlFfQ0FVU0VfTE9XX09GRgkweDAwMDQKKyNkZWZpbmUgICBJUlFfQ0FVU0VfSElHSF9PRkYJMHgwMDA4CisjZGVmaW5lICAgSVJRX01BU0tfTE9XX09GRgkweDAwMTAKKyNkZWZpbmUgICBJUlFfTUFTS19ISUdIX09GRgkweDAwMTQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKworLyoKKyAqIFJlZ2lzdGVyIE1hcAorICovCisjZGVmaW5lIEREUl9WSVJUX0JBU0UJCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHgwMDAwMCkKKyNkZWZpbmUgIEREUl9XSU5ET1dfQ1BVMF9CQVNFCShERFJfVklSVF9CQVNFIHwgMHgxNTAwKQorI2RlZmluZSAgRERSX1dJTkRPV19DUFUxX0JBU0UJKEREUl9WSVJUX0JBU0UgfCAweDE3MDApCisKKyNkZWZpbmUgREVWX0JVU19QSFlTX0JBU0UJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4MTAwMDApCisjZGVmaW5lICBTQU1QTEVfQVRfUkVTRVRfTE9XCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzMCkKKyNkZWZpbmUgIFNBTVBMRV9BVF9SRVNFVF9ISUdICShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzNCkKKyNkZWZpbmUgIFVBUlQwX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMF9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDFfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjEwMCkKKyNkZWZpbmUgIFVBUlQxX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIxMDApCisjZGVmaW5lICBVQVJUMl9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMjAwKQorI2RlZmluZSAgVUFSVDJfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjIwMCkKKyNkZWZpbmUgIFVBUlQzX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIzMDApCisjZGVmaW5lICBVQVJUM19WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMzAwKQorCisjZGVmaW5lIEdFMTBfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4MzAwMDApCisjZGVmaW5lIEdFMTFfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4MzQwMDApCisKKyNkZWZpbmUgUENJRTAwX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4NDAwMDApCisjZGVmaW5lIFBDSUUwMV9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDQ0MDAwKQorI2RlZmluZSBQQ0lFMDJfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg0ODAwMCkKKyNkZWZpbmUgUENJRTAzX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4NGMwMDApCisKKyNkZWZpbmUgVVNCMF9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MDAwMCkKKyNkZWZpbmUgVVNCMV9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MTAwMCkKKyNkZWZpbmUgVVNCMl9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MjAwMCkKKworI2RlZmluZSBHRTAwX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDcwMDAwKQorI2RlZmluZSBHRTAxX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDc0MDAwKQorCisjZGVmaW5lIFBDSUUxMF9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDgwMDAwKQorI2RlZmluZSBQQ0lFMTFfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg4NDAwMCkKKyNkZWZpbmUgUENJRTEyX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4ODgwMDApCisjZGVmaW5lIFBDSUUxM19WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDhjMDAwKQorCisjZGVmaW5lIFNBVEFfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4YTAwMDApCisKKworI2RlZmluZSBHUElPX01BWAkJMzIKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvc3lzdGVtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlYjQ3ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX1NZU1RFTV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfU1lTVEVNX0gKKworI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pZGxlKHZvaWQpCit7CisJY3B1X2RvX2lkbGUoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcmVzZXQoY2hhciBtb2RlKQoreworCS8qCisJICogRW5hYmxlIHNvZnQgcmVzZXQgdG8gYXNzZXJ0IFJTVE9VVG4uCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVRfT1VUX0VOLCBSU1RPVVRuX01BU0spOworCisJLyoKKwkgKiBBc3NlcnQgc29mdCByZXNldC4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVCwgU1lTVEVNX1NPRlRfUkVTRVQpOworCisJd2hpbGUgKDEpCisJCTsKK30KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODU0YjFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC90aW1leC5oCkBAIC0wLDAgKzEsOSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoMTAwICogSFopCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3VuY29tcHJlc3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdW5jb21wcmVzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmUwYTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3VuY29tcHJlc3MuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC91bmNvbXByZXNzLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCisKK3N0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIFVBUlRfTFNSX1RIUkUpCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KKworCWJhc2VbVUFSVF9UWCA8PCAyXSA9IGM7Cit9CisKK3N0YXRpYyB2b2lkIGZsdXNoKHZvaWQpCit7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCXVuc2lnbmVkIGNoYXIgbWFzazsKKwlpbnQgaTsKKworCW1hc2sgPSBVQVJUX0xTUl9URU1UIHwgVUFSVF9MU1JfVEhSRTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBtYXNrKSA9PSBtYXNrKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9Cit9CisKKy8qCisgKiBub3RoaW5nIHRvIGRvCisgKi8KKyNkZWZpbmUgYXJjaF9kZWNvbXBfc2V0dXAoKQorI2RlZmluZSBhcmNoX2RlY29tcF93ZG9nKCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC92bWFsbG9jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJjNTEyMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oCisgKi8KKworI2RlZmluZSBWTUFMTE9DX0VORAkweGZlMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgyN2Fkcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MjdhZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWU2NmRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MjdhZHMuaApAQCAtMCwwICsxLDM1NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisvKgorICogVGhlIGNvZGUgY29udGFpbmVkIGhlcmVpbiBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBWZXJzaW9uIDIgb3IgbGF0ZXIgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisgKgorICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5odG1sCisgKiBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fCisKKy8qIGV4dGVybmFsIGludGVycnVwdCBtdWx0aXBsZXhlciAqLworI2RlZmluZSBNWENfRVhQX0lPX0JBU0UJCShNWENfR1BJT19CQVNFICsgTVhDX01BWF9HUElPX0xJTkVTKQorCisjZGVmaW5lIE1YQ19WSVJUVUFMX0lOVFNfQkFTRQkoTVhDX0VYUF9JT19CQVNFICsgTVhDX01BWF9FWFBfSU9fTElORVMpCisjZGVmaW5lIE1YQ19TRElPMV9DQVJEX0lSUQlNWENfVklSVFVBTF9JTlRTX0JBU0UKKyNkZWZpbmUgTVhDX1NESU8yX0NBUkRfSVJRCShNWENfVklSVFVBTF9JTlRTX0JBU0UgKyAxKQorI2RlZmluZSBNWENfU0RJTzNfQ0FSRF9JUlEJKE1YQ19WSVJUVUFMX0lOVFNfQkFTRSArIDIpCisKKyNkZWZpbmUgTVhDX01BWF9CT0FSRF9JTlRTICAgICAgKE1YQ19NQVhfRVhQX0lPX0xJTkVTICsgXAorCQkJCU1YQ19NQVhfVklSVFVBTF9JTlRTKQorCisvKgorICogTVhDIFVBUlQgRVZCIGJvYXJkIGxldmVsIGNvbmZpZ3VyYXRpb25zCisgKi8KKworI2RlZmluZSBNWENfTExfRVhUVUFSVF9QQUREUgkoQ1M0X0JBU0VfQUREUiArIDB4MjAwMDApCisjZGVmaW5lIE1YQ19MTF9FWFRVQVJUX1ZBRERSCShDUzRfQkFTRV9BRERSX1ZJUlQgKyAweDIwMDAwKQorI2RlZmluZSBNWENfTExfRVhUVUFSVF8xNkJJVF9CVVMKKworI2RlZmluZSBNWENfTExfVUFSVF9QQUREUiAgICAgICBVQVJUMV9CQVNFX0FERFIKKyNkZWZpbmUgTVhDX0xMX1VBUlRfVkFERFIgICAgICAgQUlQSV9JT19BRERSRVNTKFVBUlQxX0JBU0VfQUREUikKKworLyoKKyAqIEBuYW1lIE1lbW9yeSBTaXplIHBhcmFtZXRlcnMKKyAqLworCisvKgorICogU2l6ZSBvZiBTRFJBTSBtZW1vcnkKKyAqLworI2RlZmluZSBTRFJBTV9NRU1fU0laRSAgICAgICAgICBTWl8xMjhNCisKKy8qCisgKiBQQkMgQ29udHJvbGxlciBwYXJhbWV0ZXJzCisgKi8KKworLyoKKyAqIEJhc2UgYWRkcmVzcyBvZiBQQkMgY29udHJvbGxlciwgQ1M0CisgKi8KKyNkZWZpbmUgUEJDX0JBU0VfQUREUkVTUyAgICAgICAgMHhFQjAwMDAwMAorI2RlZmluZSBQQkNfUkVHX0FERFIob2Zmc2V0KSAgICAoUEJDX0JBU0VfQUREUkVTUyArIChvZmZzZXQpKQorCisvKgorICogUEJDIEludGVydXB0IG5hbWUgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfR1BJTzFfMCAgMAorI2RlZmluZSBQQkNfR1BJTzFfMSAgMQorI2RlZmluZSBQQkNfR1BJTzFfMiAgMgorI2RlZmluZSBQQkNfR1BJTzFfMyAgMworI2RlZmluZSBQQkNfR1BJTzFfNCAgNAorI2RlZmluZSBQQkNfR1BJTzFfNSAgNQorCisjZGVmaW5lIFBCQ19JTlRSX01BWF9OVU0gNgorI2RlZmluZSBQQkNfSU5UUl9TSEFSRURfTUFYX05VTSA4CisKKy8qIFdoZW4gdGhlIFBCQyBhZGRyZXNzIGNvbm5lY3Rpb24gaXMgZml4ZWQgaW4gaC93LCBkZWZpbmVkIGFzIDEgKi8KKyNkZWZpbmUgUEJDX0FERFJfU0ggICAgICAgICAgICAgMAorCisvKiBPZmZzZXRzIGZvciB0aGUgUEJDIENvbnRyb2xsZXIgcmVnaXN0ZXIgKi8KKy8qCisgKiBQQkMgQm9hcmQgdmVyc2lvbiByZWdpc3RlciBvZmZzZXQKKyAqLworI2RlZmluZSBQQkNfVkVSU0lPTl9SRUcgICAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAwMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAxIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDA4ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDEgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwxX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAwQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAyIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDJfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDEwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDIgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwyX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAxNCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAzIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDNfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDE4ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDMgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwzX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAxQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAzIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDRfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDIwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDQgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkw0X0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAyNCA+PiBQQkNfQUREUl9TSCkKKy8qUEJDX0FERFJfU0gKKyAqIFBCQyBCb2FyZCBzdGF0dXMgcmVnaXN0ZXIgMS4KKyAqLworI2RlZmluZSBQQkNfQlNUQVQxX1JFRyAgICAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAyOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgaW50ZXJydXB0IHN0YXR1cyByZWdpc3Rlci4KKyAqLworI2RlZmluZSBQQkNfSU5UU1RBVFVTX1JFRyAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAyQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgaW50ZXJydXB0IGN1cnJlbnQgc3RhdHVzIHJlZ2lzdGVyLgorICovCisjZGVmaW5lIFBCQ19JTlRDVVJSX1NUQVRVU19SRUcgIFBCQ19SRUdfQUREUigweDAwMDM0ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBJbnRlcnJ1cHQgbWFzayByZWdpc3RlciBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfSU5UTUFTS19TRVRfUkVHICAgICBQQkNfUkVHX0FERFIoMHgwMDAzOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgSW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfSU5UTUFTS19DTEVBUl9SRUcgICBQQkNfUkVHX0FERFIoMHgwMDAzQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBFeHRlcm5hbCBVQVJUIEEuCisgKi8KKyNkZWZpbmUgUEJDX1NDMTZDNjUyX1VBUlRBX1JFRyAgUEJDX1JFR19BRERSKDB4MjAwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogVUFSVCA0IEV4cGFuZGluZyBTaWduYWwgU3RhdHVzLgorICovCisjZGVmaW5lIFBCQ19VQVJUX1NUQVRVU19SRUcgICAgIFBCQ19SRUdfQUREUigweDIyMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFVBUlQgNCBFeHBhbmRpbmcgU2lnbmFsIENvbnRyb2wgU2V0LgorICovCisjZGVmaW5lIFBCQ19VQ1RSTF9TRVRfUkVHICAgICAgIFBCQ19SRUdfQUREUigweDI0MDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFVBUlQgNCBFeHBhbmRpbmcgU2lnbmFsIENvbnRyb2wgQ2xlYXIuCisgKi8KKyNkZWZpbmUgUEJDX1VDVFJMX0NMUl9SRUcgICAgICAgUEJDX1JFR19BRERSKDB4MjYwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogRXRoZXJuZXQgQ29udHJvbGxlciBJTyBiYXNlIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0NTODkwMEFfSU9CQVNFX1JFRyAgUEJDX1JFR19BRERSKDB4NDAwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogRXRoZXJuZXQgQ29udHJvbGxlciBNZW1vcnkgYmFzZSBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19DUzg5MDBBX01FTUJBU0VfUkVHIFBCQ19SRUdfQUREUigweDQyMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIEV0aGVybmV0IENvbnRyb2xsZXIgRE1BIGJhc2UgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQ1M4OTAwQV9ETUFCQVNFX1JFRyBQQkNfUkVHX0FERFIoMHg0NDAwMCA+PiBQQkNfQUREUl9TSCkKKworLyogUEJDIEJvYXJkIFZlcnNpb24gUmVnaXN0ZXIgYml0IGRlZmluaXRpb24gKi8KKyNkZWZpbmUgUEJDX1ZFUlNJT05fQURTICAgICAgICAgMHg4MDAwCS8qIEJpdDE1PTEgbWVhbnMgdmVyc2lvbiBmb3IgYWRzICovCisjZGVmaW5lIFBCQ19WRVJTSU9OX0VWQl9SRVZCICAgIDB4NDAwMAkvKiBCSVQxND0xIG1lYW5zIHZlcnNpb24gZm9yIGV2YiByZXZiICovCisKKy8qIFBCQyBCb2FyZCBDb250cm9sIFJlZ2lzdGVyIDEgYml0IGRlZmluaXRpb25zICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfRVJTVCAgICAgICAgIDB4MDAwMQkvKiBFdGhlcm5ldCBSZXNldCAqLworI2RlZmluZSBQQkNfQkNUUkwxX1VSU1QgICAgICAgICAweDAwMDIJLyogUmVzZXQgRXh0ZXJuYWwgVUFSVCBjb250cm9sbGVyICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfRlJTVCAgICAgICAgIDB4MDAwNAkvKiBGRUMgUmVzZXQgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMV9FU0xFRVAgICAgICAgMHgwMDEwCS8qIEVuYWJsZSBldGhlcm5ldCBTbGVlcCAqLworI2RlZmluZSBQQkNfQkNUUkwxX0xDRE9OICAgICAgICAweDA4MDAJLyogRW5hYmxlIHRoZSBMQ0QgKi8KKworLyogUEJDIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgMiBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMl9WQ0NfRU4gICAgICAgMHgwMDA0CS8qICAgRW5hYmxlIFZDQyAqLworI2RlZmluZSBQQkNfQkNUUkwyX1ZQUF9FTiAgICAgICAweDAwMDgJLyogICBFbmFibGUgVnBwICovCisjZGVmaW5lIFBCQ19CQ1RSTDJfQVRBRkVDX0VOICAgIDBYMDAxMAorI2RlZmluZSBQQkNfQkNUUkwyX0FUQUZFQ19TRUwgICAwWDAwMjAKKyNkZWZpbmUgUEJDX0JDVFJMMl9BVEFfRU4gICAgICAgMFgwMDQwCisjZGVmaW5lIFBCQ19CQ1RSTDJfSVJEQV9TRCAgICAgIDBYMDA4MAorI2RlZmluZSBQQkNfQkNUUkwyX0lSREFfRU4gICAgICAwWDAxMDAKKyNkZWZpbmUgUEJDX0JDVFJMMl9DQ1RMMTAgICAgICAgMFgwMjAwCisjZGVmaW5lIFBCQ19CQ1RSTDJfQ0NUTDExICAgICAgIDBYMDQwMAorCisvKiBQQkMgQm9hcmQgQ29udHJvbCBSZWdpc3RlciAzIGJpdCBkZWZpbml0aW9ucyAqLworI2RlZmluZSBQQkNfQkNUUkwzX0hTSF9FTiAgICAgICAwWDAwMjAKKyNkZWZpbmUgUEJDX0JDVFJMM19GU0hfTU9EICAgICAgMFgwMDQwCisjZGVmaW5lIFBCQ19CQ1RSTDNfT1RHX0hTX0VOICAgIDBYMDA4MAorI2RlZmluZSBQQkNfQkNUUkwzX09UR19WQlVTX0VOICAwWDAxMDAKKyNkZWZpbmUgUEJDX0JDVFJMM19GU0hfVkJVU19FTiAgMFgwMjAwCisjZGVmaW5lIFBCQ19CQ1RSTDNfVVNCX09UR19PTiAgIDBYMDgwMAorI2RlZmluZSBQQkNfQkNUUkwzX1VTQl9GU0hfT04gICAwWDEwMDAKKworLyogUEJDIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgNCBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUEJDX0JDVFJMNF9SRUdFTl9TRUwgICAgMFgwMDAxCisjZGVmaW5lIFBCQ19CQ1RSTDRfVVNFUl9PRkYgICAgIDBYMDAwMgorI2RlZmluZSBQQkNfQkNUUkw0X1ZJQl9FTiAgICAgICAwWDAwMDQKKyNkZWZpbmUgUEJDX0JDVFJMNF9QV1JHVDFfRU4gICAgMFgwMDA4CisjZGVmaW5lIFBCQ19CQ1RSTDRfUFdSR1QyX0VOICAgIDBYMDAxMAorI2RlZmluZSBQQkNfQkNUUkw0X1NUREJZX1BSSSAgICAwWDAwMjAKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKy8qCisgKiBFbnVtZXJhdGlvbnMgZm9yIFNEIGNhcmRzIGFuZCBtZW1vcnkgc3RpY2sgY2FyZC4gVGhpcyBjb3JyZXNwb25kcyB0bworICogdGhlIGNhcmQgRU4gYml0cyBpbiB0aGUgSU1SOiBTRDFfRU4gfCBNU19FTiB8IFNEM19FTiB8IFNEMl9FTi4KKyAqLworZW51bSBteGNfY2FyZF9ubyB7CisJTVhDX0NBUkRfU0QyID0gMCwKKwlNWENfQ0FSRF9TRDMsCisJTVhDX0NBUkRfTVMsCisJTVhDX0NBUkRfU0QxLAorCU1YQ19DQVJEX01JTiA9IE1YQ19DQVJEX1NEMiwKKwlNWENfQ0FSRF9NQVggPSBNWENfQ0FSRF9TRDEsCit9OworI2VuZGlmCisKKyNkZWZpbmUgTVhDX0NQTERfVkVSXzFfNTAgICAgICAgMHgwMQorCisvKgorICogUEJDIEJTVEFUIFJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucworICovCisjZGVmaW5lIFBCQ19CU1RBVF9QUklfSU5UICAgICAgIDBYMDAwMQorI2RlZmluZSBQQkNfQlNUQVRfVVNCX0JZUCAgICAgICAwWDAwMDIKKyNkZWZpbmUgUEJDX0JTVEFUX0FUQV9JT0NTMTYgICAgMFgwMDA0CisjZGVmaW5lIFBCQ19CU1RBVF9BVEFfQ0JMSUQgICAgIDBYMDAwOAorI2RlZmluZSBQQkNfQlNUQVRfQVRBX0RBU1AgICAgICAwWDAwMTAKKyNkZWZpbmUgUEJDX0JTVEFUX1BXUl9SRFkgICAgICAgMFgwMDIwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDNfV1AgICAgICAgIDBYMDEwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QyX1dQICAgICAgICAwWDAyMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMV9XUCAgICAgICAgMFgwNDAwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDNfREVUICAgICAgIDBYMDgwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QyX0RFVCAgICAgICAwWDEwMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMV9ERVQgICAgICAgMFgyMDAwCisjZGVmaW5lIFBCQ19CU1RBVF9NU19ERVQgICAgICAgIDBYNDAwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QzX0RFVF9CSVQgICAxMQorI2RlZmluZSBQQkNfQlNUQVRfU0QyX0RFVF9CSVQgICAxMgorI2RlZmluZSBQQkNfQlNUQVRfU0QxX0RFVF9CSVQgICAxMworI2RlZmluZSBQQkNfQlNUQVRfTVNfREVUX0JJVCAgICAxNAorI2RlZmluZSBNWENfQlNUQVRfQklUKG4pICAgICAgICAoKG4gPT0gTVhDX0NBUkRfU0QyKSA/IFBCQ19CU1RBVF9TRDJfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfU0QzKSA/IFBCQ19CU1RBVF9TRDNfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfU0QxKSA/IFBCQ19CU1RBVF9TRDFfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfTVMpID8gUEJDX0JTVEFUX01TX0RFVCA6IFwKKwkJCQkJMHgwKSkpKQorCisvKgorICogUEJDIFVBUlQgQ29udHJvbCBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfVUNUUkxfRENFX0RDRCAgICAgICAwWDAwMDEKKyNkZWZpbmUgUEJDX1VDVFJMX0RDRV9EU1IgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19VQ1RSTF9EQ0VfUkkgICAgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfVUNUUkxfRFRFX0RUUiAgICAgICAwWDAxMDAKKworLyoKKyAqIFBCQyBVQVJUIFN0YXR1cyBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfVVNUQVRfRFRFX0RDRCAgICAgICAwWDAwMDEKKyNkZWZpbmUgUEJDX1VTVEFUX0RURV9EU1IgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19VU1RBVF9EVEVfUkkgICAgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfVVNUQVRfRENFX0RUUiAgICAgICAwWDAxMDAKKworLyoKKyAqIFBCQyBJbnRlcnVwdCBtYXNrIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucworICovCisjZGVmaW5lIFBCQ19JTlRSX1NEM19SX0VOX0JJVCAgIDQKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX1JfRU5fQklUICAgMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfUl9FTl9CSVQgICA2CisjZGVmaW5lIFBCQ19JTlRSX01TX1JfRU5fQklUICAgIDUKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX0VOX0JJVCAgICAgMTMKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX0VOX0JJVCAgICAgMTIKKyNkZWZpbmUgUEJDX0lOVFJfTVNfRU5fQklUICAgICAgMTQKKyNkZWZpbmUgUEJDX0lOVFJfU0QxX0VOX0JJVCAgICAgMTUKKworI2RlZmluZSBQQkNfSU5UUl9TRDJfUl9FTiAgICAgICAweDAwMDEKKyNkZWZpbmUgUEJDX0lOVFJfTE9XX0JBVCAgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19JTlRSX09UR19GU09WRVIgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfSU5UUl9GU0hfT1ZFUiAgICAgICAwWDAwMDgKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX1JfRU4gICAgICAgMHgwMDEwCisjZGVmaW5lIFBCQ19JTlRSX01TX1JfRU4gICAgICAgIDB4MDAyMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfUl9FTiAgICAgICAweDAwNDAKKyNkZWZpbmUgUEJDX0lOVFJfRkVDX0lOVCAgICAgICAgMFgwMDgwCisjZGVmaW5lIFBCQ19JTlRSX0VORVRfSU5UICAgICAgIDBYMDEwMAorI2RlZmluZSBQQkNfSU5UUl9PVEdGU19JTlQgICAgICAwWDAyMDAKKyNkZWZpbmUgUEJDX0lOVFJfWFVBUlRfSU5UICAgICAgMFgwNDAwCisjZGVmaW5lIFBCQ19JTlRSX0NDVEwxMiAgICAgICAgIDBYMDgwMAorI2RlZmluZSBQQkNfSU5UUl9TRDJfRU4gICAgICAgICAweDEwMDAKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX0VOICAgICAgICAgMHgyMDAwCisjZGVmaW5lIFBCQ19JTlRSX01TX0VOICAgICAgICAgIDB4NDAwMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfRU4gICAgICAgICAweDgwMDAKKworCisKKy8qIEZvciBpbnRlcnJ1cHRzIGxpa2UgeHVhcnQsIGVuZXQgZXRjICovCisjZGVmaW5lIEVYUElPX1BBUkVOVF9JTlQgICAgICAgIElPTVVYX1RPX0lSUShNWDI3X1BJTl9USU4pCisjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTICAgIDE2CisKKy8qCisgKiBUaGlzIGNvcnJlc3BvbmRzIHRvIFBCQ19JTlRNQVNLX1NFVF9SRUcgYXQgb2Zmc2V0IDB4MzguCisgKgorICovCisjZGVmaW5lIEVYUElPX0lOVF9MT1dfQkFUICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAxKQorI2RlZmluZSBFWFBJT19JTlRfT1RHX0ZTX09WUiAgICAoTVhDX0VYUF9JT19CQVNFICsgMikKKyNkZWZpbmUgRVhQSU9fSU5UX0ZTSF9PVlIgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDMpCisjZGVmaW5lIEVYUElPX0lOVF9SRVM0ICAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyA0KQorI2RlZmluZSBFWFBJT19JTlRfUkVTNSAgICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgNSkKKyNkZWZpbmUgRVhQSU9fSU5UX1JFUzYgICAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDYpCisjZGVmaW5lIEVYUElPX0lOVF9GRUMgICAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyA3KQorI2RlZmluZSBFWFBJT19JTlRfRU5FVF9JTlQgICAgICAoTVhDX0VYUF9JT19CQVNFICsgOCkKKyNkZWZpbmUgRVhQSU9fSU5UX09UR19GU19JTlQgICAgKE1YQ19FWFBfSU9fQkFTRSArIDkpCisjZGVmaW5lIEVYUElPX0lOVF9YVUFSVF9JTlRBICAgIChNWENfRVhQX0lPX0JBU0UgKyAxMCkKKyNkZWZpbmUgRVhQSU9fSU5UX0NDVEwxMl9JTlQgICAgKE1YQ19FWFBfSU9fQkFTRSArIDExKQorI2RlZmluZSBFWFBJT19JTlRfU0QyX0VOICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMTIpCisjZGVmaW5lIEVYUElPX0lOVF9TRDNfRU4gICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAxMykKKyNkZWZpbmUgRVhQSU9fSU5UX01TX0VOICAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDE0KQorI2RlZmluZSBFWFBJT19JTlRfU0QxX0VOICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMTUpCisKKy8qCisgKiBUaGlzIGlzIFN5c3RlbSBJUlEgdXNlZCBieSBDUzg5MDBBIGZvciBpbnRlcnJ1cHQgZ2VuZXJhdGlvbgorICogdGFrZW4gZnJvbSBwbGF0Zm9ybS5oCisgKi8KKyNkZWZpbmUgQ1M4OTAwQUlSUSAgICAgICAgICAgICAgRVhQSU9fSU5UX0VORVRfSU5UCisvKiBUaGlzIGlzIEkvTyBCYXNlIGFkZHJlc3MgdXNlZCB0byBhY2Nlc3MgcmVnaXN0ZXJzIG9mIENTODkwMEEgb24gTVhDIEFEUyAqLworI2RlZmluZSBDUzg5MDBBX0JBU0VfQUREUkVTUyAgICAoUEJDX0NTODkwMEFfSU9CQVNFX1JFRyArIDB4MzAwKQorCisjZGVmaW5lIE1YQ19QTUlDX0lOVF9MSU5FICAgICAgIElPTVVYX1RPX0lSUShNWDI3X1BJTl9UT1VUKQorCisvKgorKiBUaGlzIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIHRoZSBDUExEIHZlcnNpb24gaXMgZm9yIG14MjcgZXZiIGJvYXJkIHJldi1hCisqLworI2RlZmluZSBQQkNfQ1BMRF9WRVJTSU9OX0lTX1JFVkEoKSBcCisJKChfX3Jhd19yZWFkdyhQQkNfVkVSU0lPTl9SRUcpICYgXAorCShQQkNfVkVSU0lPTl9BRFMgfCBQQkNfVkVSU0lPTl9FVkJfUkVWQikpXAorCT09IDApCisKKy8qIFRoaXMgaXMgdXNlZCB0byBhY3RpdmUgb3IgaW5hY3RpdmUgYXRhIHNpZ25hbCBpbiBDUExEIC4KKyAqICBJdCBpcyBkZXBlbmRlbnQgd2l0aCBoYXJkd2FyZQorICovCisjZGVmaW5lIFBCQ19BVEFfU0lHTkFMX0FDVElWRSgpIFwKKwlfX3Jhd193cml0ZXcoICAgICAgICAgICBcCisJCVBCQ19CQ1RSTDJfQVRBRkVDX0VOfFBCQ19CQ1RSTDJfQVRBRkVDX1NFTHxQQkNfQkNUUkwyX0FUQV9FTiwgXAorCQlQQkNfQkNUUkwyX0NMRUFSX1JFRykKKworI2RlZmluZSBQQkNfQVRBX1NJR05BTF9JTkFDVElWRSgpIFwKKwlfX3Jhd193cml0ZXcoICBcCisJCVBCQ19CQ1RSTDJfQVRBRkVDX0VOfFBCQ19CQ1RSTDJfQVRBRkVDX1NFTHxQQkNfQkNUUkwyX0FUQV9FTiwgXAorCQlQQkNfQkNUUkwyX1NFVF9SRUcpCisKKyNkZWZpbmUgTVhDX0JEX0xFRDEgICAgICAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgTVhDX0JEX0xFRDIgICAgICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgTVhDX0JEX0xFRF9PTihsZWQpIFwKKwlfX3Jhd193cml0ZXcobGVkLCBQQkNfQkNUUkwxX1NFVF9SRUcpCisjZGVmaW5lIE1YQ19CRF9MRURfT0ZGKGxlZCkgXAorCV9fcmF3X3dyaXRldyhsZWQsIFBCQ19CQ1RSTDFfQ0xFQVJfUkVHKQorCisvKiB0byBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgZXh0ZXJuYWwgY3J5c3RhbCByZWZlcmVuY2UgKi8KKyNkZWZpbmUgQ0tJSF8yN01IWl9CSVRfU0VUICAgICAgKDEgPDwgMykKKworI2VuZGlmCQkJCS8qIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWFkcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFhZHMuaAppbmRleCA4NTkwMTI3Li4xYmM2ZmIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWFkcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxYWRzLmgKQEAgLTEwOSw0ICsxMDksOSBAQAogCiAjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTCTE2CiAKKy8qIG1hbmRhdG9yeSBmb3IgQ09ORklHX0xMX0RFQlVHICovCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIJVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSCUFJUFMxX0lPX0FERFJFU1MoVUFSVDFfQkFTRV9BRERSKQorCiAjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfTVgzMUFEU19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxbGl0ZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFsaXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRlNWNmNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxbGl0ZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfQk9BUkRfTVgzMUxJVEVfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMzFMSVRFX0hfXworCisjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTCTE2CisKKworLyoKKyAqIE1lbW9yeSBTaXplIHBhcmFtZXRlcnMKKyAqLworCisvKgorICogU2l6ZSBvZiBTRFJBTSBtZW1vcnkKKyAqLworI2RlZmluZSBTRFJBTV9NRU1fU0laRQkJU1pfMTI4TQorLyoKKyAqIFNpemUgb2YgTUJYIGJ1ZmZlciBtZW1vcnkKKyAqLworI2RlZmluZSBNWENfTUJYX01FTV9TSVpFCVNaXzE2TQorLyoKKyAqIFNpemUgb2YgbWVtb3J5IGF2YWlsYWJsZSB0byBrZXJuZWwKKyAqLworI2RlZmluZSBNRU1fU0laRQkJKFNEUkFNX01FTV9TSVpFIC0gTVhDX01CWF9NRU1fU0laRSkKKworI2RlZmluZSBNWENfTExfVUFSVF9QQUREUglVQVJUMV9CQVNFX0FERFIKKyNkZWZpbmUgTVhDX0xMX1VBUlRfVkFERFIJQUlQUzFfSU9fQUREUkVTUyhVQVJUMV9CQVNFX0FERFIpCisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDMxQURTX0hfXyAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM3LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyMzJiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1wY20wMzcuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwOCBTYXNjaGEgSGF1ZXIsIFBlbmd1dHJvbml4CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM3X0hfXworI2RlZmluZSBfX0FTTV9BUkNIX01YQ19CT0FSRF9QQ00wMzdfSF9fCisKKy8qIG1hbmRhdG9yeSBmb3IgQ09ORklHX0xMX0RFQlVHICovCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIJVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSCUFJUFMxX0lPX0FERFJFU1MoVUFSVDFfQkFTRV9BRERSKQorCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM3X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzOC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzOC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MGM2MmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM4LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX1BDTTAzOF9IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM4X0hfXworCisvKiBtYW5kYXRvcnkgZm9yIENPTkZJR19MTF9ERUJVRyAqLworCisjZGVmaW5lIE1YQ19MTF9VQVJUX1BBRERSCVVBUlQxX0JBU0VfQUREUgorI2RlZmluZSBNWENfTExfVUFSVF9WQUREUgkoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MEEwMDApCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisvKgorICogVGhpcyBDUFUgbW9kdWxlIG5lZWRzIGEgYmFzZWJvYXJkIHRvIHdvcmsuIEFmdGVyIGJhc2ljIGluaXRpYWxpemluZworICogaXRzIG93biBkZXZpY2VzLCBpdCBjYWxscyBiYXNlYm9hcmQncyBpbml0IGZ1bmN0aW9uLgorICogVE9ETzogQWRkIHlvdXIgb3duIGJhc2Vib2FyZCBpbml0IGZ1bmN0aW9uIGFuZCBjYWxsIGl0IGZyb20KKyAqIGluc2lkZSBwY20wMzhfaW5pdCgpLgorICoKKyAqIFRoaXMgZXhhbXBsZSBoZXJlIGlzIGZvciB0aGUgZGV2ZWxvcG1lbnQgYm9hcmQuIFJlZmVyIHBjbTk3MC1iYXNlYm9hcmQuYworICovCisKK2V4dGVybiB2b2lkIHBjbTk3MF9iYXNlYm9hcmRfaW5pdCh2b2lkKTsKKworI2VuZGlmCisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19CT0FSRF9QQ00wMzhfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY2xvY2suaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9jbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0Y2FhMmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY2xvY2suaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IDIwMDUtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19DTE9DS19IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfQ0xPQ0tfSF9fCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCitzdHJ1Y3QgbW9kdWxlOworCitzdHJ1Y3QgY2xrIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CisJc3RydWN0IG1vZHVsZSAqb3duZXI7CisJY29uc3QgY2hhciAqbmFtZTsKKwlpbnQgaWQ7CisJLyogU291cmNlIGNsb2NrIHRoaXMgY2xrIGRlcGVuZHMgb24gKi8KKwlzdHJ1Y3QgY2xrICpwYXJlbnQ7CisJLyogU2Vjb25kYXJ5IGNsb2NrIHRvIGVuYWJsZS9kaXNhYmxlIHdpdGggdGhpcyBjbG9jayAqLworCXN0cnVjdCBjbGsgKnNlY29uZGFyeTsKKwkvKiBSZWZlcmVuY2UgY291bnQgb2YgY2xvY2sgZW5hYmxlL2Rpc2FibGUgKi8KKwlfX3M4IHVzZWNvdW50OworCS8qIFJlZ2lzdGVyIGJpdCBwb3NpdGlvbiBmb3IgY2xvY2sncyBlbmFibGUvZGlzYWJsZSBjb250cm9sLiAqLworCXU4IGVuYWJsZV9zaGlmdDsKKwkvKiBSZWdpc3RlciBhZGRyZXNzIGZvciBjbG9jaydzIGVuYWJsZS9kaXNhYmxlIGNvbnRyb2wuICovCisJdTMyIGVuYWJsZV9yZWc7CisJdTMyIGZsYWdzOworCS8qIGdldCB0aGUgY3VycmVudCBjbG9jayByYXRlIChhbHdheXMgYSBmcmVzaCB2YWx1ZSkgKi8KKwl1bnNpZ25lZCBsb25nICgqZ2V0X3JhdGUpIChzdHJ1Y3QgY2xrICopOworCS8qIEZ1bmN0aW9uIHB0ciB0byBzZXQgdGhlIGNsb2NrIHRvIGEgbmV3IHJhdGUuIFRoZSByYXRlIG11c3QgbWF0Y2ggYQorCSAgIHN1cHBvcnRlZCByYXRlIHJldHVybmVkIGZyb20gcm91bmRfcmF0ZS4gTGVhdmUgYmxhbmsgaWYgY2xvY2sgaXMgbm90CisJICAgcHJvZ3JhbW1hYmxlICovCisJaW50ICgqc2V0X3JhdGUpIChzdHJ1Y3QgY2xrICosIHVuc2lnbmVkIGxvbmcpOworCS8qIEZ1bmN0aW9uIHB0ciB0byByb3VuZCB0aGUgcmVxdWVzdGVkIGNsb2NrIHJhdGUgdG8gdGhlIG5lYXJlc3QKKwkgICBzdXBwb3J0ZWQgcmF0ZSB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVxdWVzdGVkIHJhdGUuICovCisJdW5zaWduZWQgbG9uZyAoKnJvdW5kX3JhdGUpIChzdHJ1Y3QgY2xrICosIHVuc2lnbmVkIGxvbmcpOworCS8qIEZ1bmN0aW9uIHB0ciB0byBlbmFibGUgdGhlIGNsb2NrLiBMZWF2ZSBibGFuayBpZiBjbG9jayBjYW4gbm90CisJICAgYmUgZ2F0ZWQuICovCisJaW50ICgqZW5hYmxlKSAoc3RydWN0IGNsayAqKTsKKwkvKiBGdW5jdGlvbiBwdHIgdG8gZGlzYWJsZSB0aGUgY2xvY2suIExlYXZlIGJsYW5rIGlmIGNsb2NrIGNhbiBub3QKKwkgICBiZSBnYXRlZC4gKi8KKwl2b2lkICgqZGlzYWJsZSkgKHN0cnVjdCBjbGsgKik7CisJLyogRnVuY3Rpb24gcHRyIHRvIHNldCB0aGUgcGFyZW50IGNsb2NrIG9mIHRoZSBjbG9jay4gKi8KKwlpbnQgKCpzZXRfcGFyZW50KSAoc3RydWN0IGNsayAqLCBzdHJ1Y3QgY2xrICopOworfTsKKworaW50IGNsa19yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspOwordm9pZCBjbGtfdW5yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspOworCisjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQ0xPQ0tfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY29tbW9uLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY29tbW9uLmgKaW5kZXggMjNiNDM1MC4uYTZkMmUyNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9jb21tb24uaApAQCAtMTEsMTAgKzExLDEwIEBACiAjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0NPTU1PTl9IX18KICNkZWZpbmUgX19BU01fQVJDSF9NWENfQ09NTU9OX0hfXwogCi1zdHJ1Y3Qgc3lzX3RpbWVyOwotCiBleHRlcm4gdm9pZCBteGNfbWFwX2lvKHZvaWQpOwogZXh0ZXJuIHZvaWQgbXhjX2luaXRfaXJxKHZvaWQpOwotZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIgbXhjX3RpbWVyOworZXh0ZXJuIHZvaWQgbXhjX3RpbWVyX2luaXQoY29uc3QgY2hhciAqY2xrX3RpbWVyKTsKK2V4dGVybiBpbnQgbXhjX2Nsb2Nrc19pbml0KHVuc2lnbmVkIGxvbmcgZnJlZik7CitleHRlcm4gaW50IG14Y19yZWdpc3Rlcl9ncGlvcyh2b2lkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9kZWJ1Zy1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NTA4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZGVidWctbWFjcm8uUwpAQCAtMCwwICsxLDQ5IEBACisvKiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvZGVidWctbWFjcm8uUworICoKKyAqIERlYnVnZ2luZyBtYWNybyBpbmNsdWRlIGhlYWRlcgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBSdXNzZWxsIEtpbmcKKyAqICBNb3ZlZCBmcm9tIGxpbnV4L2FyY2gvYXJtL2tlcm5lbC9kZWJ1Zy5TIGJ5IEJlbiBEb29rcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorCisjaWZkZWYgQ09ORklHX01BQ0hfTVgzMUFEUworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MzFhZHMuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX1BDTTAzNworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLXBjbTAzNy5oPgorI2VuZGlmCisjaWZkZWYgQ09ORklHX01BQ0hfTVgzMUxJVEUKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxbGl0ZS5oPgorI2VuZGlmCisjaWZkZWYgQ09ORklHX01BQ0hfTVgyN0FEUworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MjdhZHMuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX1BDTTAzOAorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLXBjbTAzOC5oPgorI2VuZGlmCisJCS5tYWNybwlhZGRydWFydCxyeAorCQltcmMJcDE1LCAwLCBccngsIGMxLCBjMAorCQl0c3QJXHJ4LCAjMQkJCUAgTU1VIGVuYWJsZWQ/CisJCWxkcmVxCVxyeCwgPU1YQ19MTF9VQVJUX1BBRERSCUAgcGh5c2ljYWwKKwkJbGRybmUJXHJ4LCA9TVhDX0xMX1VBUlRfVkFERFIJQCB2aXJ0dWFsCisJCS5lbmRtCisKKwkJLm1hY3JvCXNlbmR1YXJ0LHJkLHJ4CisJCXN0cglccmQsIFtccngsICMweDQwXQlAIFRYREFUQQorCQkuZW5kbQorCisJCS5tYWNybwl3YWl0dWFydCxyZCxyeAorCQkuZW5kbQorCisJCS5tYWNybwlidXN5dWFydCxyZCxyeAorMTAwMjoJCWxkcglccmQsIFtccngsICMweDk4XQlAIFNSMgorCQl0c3QJXHJkLCAjMSA8PCAzCQlAIFRYREMKKwkJYmVxCTEwMDJiCQkJQCB3YWl0IHVudGlsIHRyYW5zbWl0IGRvbmUKKwkJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZ3Bpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOTNlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZ3Bpby5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0dQSU9fSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0dQSU9fSF9fCisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9ncGlvLmg+CisKKy8qIHVzZSBncGlvbGliIGRpc3BhdGNoZXJzICovCisjZGVmaW5lIGdwaW9fZ2V0X3ZhbHVlCQlfX2dwaW9fZ2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fc2V0X3ZhbHVlCQlfX2dwaW9fc2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fY2Fuc2xlZXAJCV9fZ3Bpb19jYW5zbGVlcAorCisjZGVmaW5lIGdwaW9fdG9faXJxKGdwaW8pCShNWENfTUFYX0lOVF9MSU5FUyArIChncGlvKSkKKyNkZWZpbmUgaXJxX3RvX2dwaW8oaXJxKQkoKGlycSkgLSBNWENfTUFYX0lOVF9MSU5FUykKKworc3RydWN0IG14Y19ncGlvX3BvcnQgeworCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgaXJxOworCWludCB2aXJ0dWFsX2lycV9zdGFydDsKKwlzdHJ1Y3QgZ3Bpb19jaGlwIGNoaXA7Cit9OworCitpbnQgbXhjX2dwaW9faW5pdChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCosIGludCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaAppbmRleCBlODdmZjA2Li4zN2NkZGJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaApAQCAtMSwxMSArMSwyMCBAQAogLyoKLSAqICBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKi8KLQotLyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0hBUkRXQVJFX0hfXwpAQCAtMTcsMTUgKzI2LDEyIEBACiAjIGluY2x1ZGUgPGFzbS9hcmNoL214MzEuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8YXNtL2FyY2gvbXhjLmg+Ci0KLS8qCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEJvYXJkIHNwZWNpZmljIGRlZmluZXMKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZkZWYgQ09ORklHX01BQ0hfTVgzMUFEUwotIyBpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxYWRzLmg+CisjaWZkZWYgQ09ORklHX0FSQ0hfTVgyCisjIGlmZGVmIENPTkZJR19NQUNIX01YMjcKKyMgIGluY2x1ZGUgPGFzbS9hcmNoL214MjcuaD4KKyMgZW5kaWYKICNlbmRpZgogCisjaW5jbHVkZSA8YXNtL2FyY2gvbXhjLmg+CisKICNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19IQVJEV0FSRV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9paW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9paW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTViZmZhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lpbS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0lJTV9IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfSUlNX0hfXworCisvKiBSZWdpc3RlciBvZmZzZXRzICovCisjZGVmaW5lIE1YQ19JSU1TVEFUICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBNWENfSUlNU1RBVE0gICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgTVhDX0lJTUVSUiAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIE1YQ19JSU1FTUFTSyAgICAgICAgICAgIDB4MDAwQworI2RlZmluZSBNWENfSUlNRkNUTCAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgTVhDX0lJTVVBICAgICAgICAgICAgICAgMHgwMDE0CisjZGVmaW5lIE1YQ19JSU1MQSAgICAgICAgICAgICAgIDB4MDAxOAorI2RlZmluZSBNWENfSUlNU0RBVCAgICAgICAgICAgICAweDAwMUMKKyNkZWZpbmUgTVhDX0lJTVBSRVYgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIE1YQ19JSU1TUkVWICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBNWENfSUlNUFJHX1AgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgTVhDX0lJTVNDUzAgICAgICAgICAgICAgMHgwMDJDCisjZGVmaW5lIE1YQ19JSU1TQ1MxICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBNWENfSUlNU0NTMiAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgTVhDX0lJTVNDUzMgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIE1YQ19JSU1GQkFDMCAgICAgICAgICAgIDB4MDgwMAorI2RlZmluZSBNWENfSUlNSkFDICAgICAgICAgICAgICAweDA4MDQKKyNkZWZpbmUgTVhDX0lJTUhXVjEgICAgICAgICAgICAgMHgwODA4CisjZGVmaW5lIE1YQ19JSU1IV1YyICAgICAgICAgICAgIDB4MDgwQworI2RlZmluZSBNWENfSUlNSEFCMCAgICAgICAgICAgICAweDA4MTAKKyNkZWZpbmUgTVhDX0lJTUhBQjEgICAgICAgICAgICAgMHgwODE0CisvKiBEZWZpbml0aW9ucyBmb3IgaS5NWDI3IFRPMiAqLworI2RlZmluZSBNWENfSUlNTUFDICAgICAgICAgICAgICAweDA4MTQKKyNkZWZpbmUgTVhDX0lJTVBSRVZfRlVTRSAgICAgICAgMHgwODE4CisjZGVmaW5lIE1YQ19JSU1TUkVWX0ZVU0UgICAgICAgIDB4MDgxQworI2RlZmluZSBNWENfSUlNU0pDX0NIQUxMXzAgICAgICAweDA4MjAKKyNkZWZpbmUgTVhDX0lJTVNKQ19DSEFMTF83ICAgICAgMHgwODNDCisjZGVmaW5lIE1YQ19JSU1GQjBVQzE3ICAgICAgICAgIDB4MDg0MAorI2RlZmluZSBNWENfSUlNRkIwVUMyNTUgICAgICAgICAweDBCRkMKKyNkZWZpbmUgTVhDX0lJTUZCQUMxICAgICAgICAgICAgMHgwQzAwCisvKiBEZWZpbml0aW9ucyBmb3IgaS5NWDI3IFRPMiAqLworI2RlZmluZSBNWENfSUlNU1VJRCAgICAgICAgICAgICAweDBDMDQKKyNkZWZpbmUgTVhDX0lJTUtFWTAgICAgICAgICAgICAgMHgwQzA0CisjZGVmaW5lIE1YQ19JSU1LRVkyMCAgICAgICAgICAgIDB4MEM1NAorI2RlZmluZSBNWENfSUlNU0pDX1JFU1BfMCAgICAgICAweDBDNTgKKyNkZWZpbmUgTVhDX0lJTVNKQ19SRVNQXzcgICAgICAgMHgwQzc0CisjZGVmaW5lIE1YQ19JSU1GQjFVQzMwICAgICAgICAgIDB4MEM3OAorI2RlZmluZSBNWENfSUlNRkIxVUMyNTUgICAgICAgICAweDBGRkMKKworLyogQml0IGRlZmluaXRpb25zICovCisKKyNkZWZpbmUgTVhDX0lJTUhXVjFfV0xPQ0sgICAgICAgICAgICAgICAoMHgxIDw8IDcpCisjZGVmaW5lIE1YQ19JSU1IV1YxX01DVV9FTkRJQU4gICAgICAgICAgKDB4MSA8PCA2KQorI2RlZmluZSBNWENfSUlNSFdWMV9EU1BfRU5ESUFOICAgICAgICAgICgweDEgPDwgNSkKKyNkZWZpbmUgTVhDX0lJTUhXVjFfQk9PVF9JTlQgICAgICAgICAgICAoMHgxIDw8IDQpCisjZGVmaW5lIE1YQ19JSU1IV1YxX1NDQ19ESVNBQkxFICAgICAgICAgKDB4MSA8PCAzKQorI2RlZmluZSBNWENfSUlNSFdWMV9IQU5UUk9fRElTQUJMRSAgICAgICgweDEgPDwgMikKKyNkZWZpbmUgTVhDX0lJTUhXVjFfTUVNU1RJQ0tfRElTICAgICAgICAoMHgxIDw8IDEpCisKKyNkZWZpbmUgTVhDX0lJTUhXVjJfV0xPQ0sgICAgICAgICAgICAgICAoMHgxIDw8IDcpCisjZGVmaW5lIE1YQ19JSU1IV1YyX0JQX1NETUEgICAgICAgICAgICAgKDB4MSA8PCA2KQorI2RlZmluZSBNWENfSUlNSFdWMl9TQ01fRENNICAgICAgICAgICAgICgweDEgPDwgNSkKKworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0lJTV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pbXgtdWFydC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lteC11YXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmYjcyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW14LXVhcnQuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgQVNNQVJNX0FSQ0hfVUFSVF9ICisjZGVmaW5lIEFTTUFSTV9BUkNIX1VBUlRfSAorCisjZGVmaW5lIElNWFVBUlRfSEFWRV9SVFNDVFMgKDE8PDApCisKK3N0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgeworCWludCAoKmluaXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCWludCAoKmV4aXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCXVuc2lnbmVkIGludCBmbGFnczsKK307CisKK2ludCBfX2luaXQgaW14X2luaXRfdWFydChpbnQgdWFydF9ubywgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pb211eC1teDEtbXgyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgxLW14Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NmQzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgxLW14Mi5oCkBAIC0wLDAgKzEsMzcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX01YQ19HUElPX01YMV9NWDJfSAorI2RlZmluZSBfTVhDX0dQSU9fTVgxX01YMl9ICisKKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMCTAKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9OT19BTExPQwkxCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfVFJZX0FMTE9DCTIKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9BTExPQ19PTkxZCTQKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFCTgKKworLyoKKyAqICBHUElPIE1vZHVsZSBhbmQgSS9PIE11bHRpcGxleGVyCisgKiAgeCA9IDAuLjMgZm9yIHJlZ19BLCByZWdfQiwgcmVnX0MsIHJlZ19ECisgKi8KKyNkZWZpbmUgVkFfR1BJT19CQVNFCUlPX0FERFJFU1MoR1BJT19CQVNFX0FERFIpCisjZGVmaW5lIE1YQ19ERElSKHgpICAgICgweDAwICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX09DUjEoeCkgICAgKDB4MDQgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfT0NSMih4KSAgICAoMHgwOCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ09ORkExKHgpICgweDBjICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDT05GQTIoeCkgKDB4MTAgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNPTkZCMSh4KSAoMHgxNCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ09ORkIyKHgpICgweDE4ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0RSKHgpICAgICAgKDB4MWMgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfR0lVUyh4KSAgICAoMHgyMCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19TU1IoeCkgICAgICgweDI0ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDUjEoeCkgICAgKDB4MjggKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNSMih4KSAgICAoMHgyYyArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JTVIoeCkgICAgICgweDMwICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lTUih4KSAgICAgKDB4MzQgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfR1BSKHgpICAgICAoMHgzOCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19TV1IoeCkgICAgICgweDNjICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX1BVRU4oeCkgICAgKDB4NDAgKyAoKHgpIDw8IDgpKQorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgxCisjIGRlZmluZSBHUElPX1BPUlRfTUFYICAzCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKyMgZGVmaW5lIEdQSU9fUE9SVF9NQVggIDUKKyNlbmRpZgorCisjaWZuZGVmIEdQSU9fUE9SVF9NQVgKKyMgZXJyb3IgIkdQSU8gY29uZmlnIHBvcnQgY291bnQgdW5rbm93biEiCisjZW5kaWYKKworI2RlZmluZSBHUElPX1BJTl9NQVNLIDB4MWYKKworI2RlZmluZSBHUElPX1BPUlRfU0hJRlQgNQorI2RlZmluZSBHUElPX1BPUlRfTUFTSyAoMHg3IDw8IEdQSU9fUE9SVF9TSElGVCkKKworI2RlZmluZSBHUElPX1BPUlRBICgwIDw8IEdQSU9fUE9SVF9TSElGVCkKKyNkZWZpbmUgR1BJT19QT1JUQiAoMSA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEMgKDIgPDwgR1BJT19QT1JUX1NISUZUKQorI2RlZmluZSBHUElPX1BPUlREICgzIDw8IEdQSU9fUE9SVF9TSElGVCkKKyNkZWZpbmUgR1BJT19QT1JURSAoNCA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEYgKDUgPDwgR1BJT19QT1JUX1NISUZUKQorCisjZGVmaW5lIEdQSU9fT1VUICAgKDEgPDwgOCkKKyNkZWZpbmUgR1BJT19JTiAgICAoMCA8PCA4KQorI2RlZmluZSBHUElPX1BVRU4gICgxIDw8IDkpCisKKyNkZWZpbmUgR1BJT19QRiAgICAoMSA8PCAxMCkKKyNkZWZpbmUgR1BJT19BRiAgICAoMSA8PCAxMSkKKworI2RlZmluZSBHUElPX09DUl9TSElGVCAxMgorI2RlZmluZSBHUElPX09DUl9NQVNLICgzIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0FJTiAgICgwIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0JJTiAgICgxIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0NJTiAgICgyIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0dQSU8gICgzIDw8IEdQSU9fT0NSX1NISUZUKQorCisjZGVmaW5lIEdQSU9fQU9VVF9TSElGVCAxNAorI2RlZmluZSBHUElPX0FPVVRfTUFTSyAoMyA8PCBHUElPX0FPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQU9VVCAgICAgKDAgPDwgR1BJT19BT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0FPVVRfSVNSICgxIDw8IEdQSU9fQU9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19BT1VUXzAgICAoMiA8PCBHUElPX0FPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQU9VVF8xICAgKDMgPDwgR1BJT19BT1VUX1NISUZUKQorCisjZGVmaW5lIEdQSU9fQk9VVF9TSElGVCAxNgorI2RlZmluZSBHUElPX0JPVVRfTUFTSyAoMyA8PCBHUElPX0JPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQk9VVCAgICAgICgwIDw8IEdQSU9fQk9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19CT1VUX0lTUiAgKDEgPDwgR1BJT19CT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0JPVVRfMCAgICAoMiA8PCBHUElPX0JPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQk9VVF8xICAgICgzIDw8IEdQSU9fQk9VVF9TSElGVCkKKworZXh0ZXJuIHZvaWQgbXhjX2dwaW9fbW9kZShpbnQgZ3Bpb19tb2RlKTsKK2V4dGVybiBpbnQgbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhjb25zdCBpbnQgKnBpbl9saXN0LCB1bnNpZ25lZCBjb3VudCwKKwkJCQkJaW50IGFsbG9jX21vZGUsIGNvbnN0IGNoYXIgKmxhYmVsKTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogYXNzaWduZW1lbnRzIGZvciBHUElPIGFsdGVybmF0ZS9wcmltYXJ5IGZ1bmN0aW9ucyAqLworCisvKiBGSVhNRTogVGhpcyBsaXN0IGlzIG5vdCBjb21wbGV0ZWQuIFRoZSBjb3JyZWN0IGRpcmVjdGlvbnMgYXJlCisgKiBtaXNzaW5nIG9uIHNvbWUgKG1hbnkpIHBpbnMKKyAqLworI2lmZGVmIENPTkZJR19BUkNIX01YMQorI2RlZmluZSBQQTBfQUlOX1NQSTJfQ0xLICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgMCkKKyNkZWZpbmUgUEEwX0FGX0VUTVRSQUNFU1lOQyAgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMCkKKyNkZWZpbmUgUEExX0FPVVRfU1BJMl9SWEQgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEEgfCBHUElPX0lOIHwgMSkKKyNkZWZpbmUgUEExX1BGX1RJTiAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMSkKKyNkZWZpbmUgUEEyX1BGX1BXTTAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyKQorI2RlZmluZSBQQTNfUEZfQ1NJX01DTEsgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAzKQorI2RlZmluZSBQQTRfUEZfQ1NJX0QwICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA0KQorI2RlZmluZSBQQTVfUEZfQ1NJX0QxICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA1KQorI2RlZmluZSBQQTZfUEZfQ1NJX0QyICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQTdfUEZfQ1NJX0QzICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA3KQorI2RlZmluZSBQQThfUEZfQ1NJX0Q0ICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA4KQorI2RlZmluZSBQQTlfUEZfQ1NJX0Q1ICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQTEwX1BGX0NTSV9ENiAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEExMV9QRl9DU0lfRDcgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBBMTJfUEZfQ1NJX1ZTWU5DICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQQTEzX1BGX0NTSV9IU1lOQyAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEExNF9QRl9DU0lfUElYQ0xLICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBBMTVfUEZfSTJDX1NEQSAgICAgIChHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTUpCisjZGVmaW5lIFBBMTZfUEZfSTJDX1NDTCAgICAgIChHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBBMTdfQUZfRVRNVFJBQ0VQS1Q0IChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDE3KQorI2RlZmluZSBQQTE3X0FJTl9TUEkyX1NTICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgMTcpCisjZGVmaW5lIFBBMThfQUZfRVRNVFJBQ0VQS1Q1IChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQTE5X0FGX0VUTVRSQUNFUEtUNiAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEEyMF9BRl9FVE1UUkFDRVBLVDcgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjApCisjZGVmaW5lIFBBMjFfUEZfQTAgICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQTIyX1BGX0NTNCAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyMikKKyNkZWZpbmUgUEEyM19QRl9DUzUgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBBMjRfUEZfQTE2ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQTI0X0FGX0VUTVRSQUNFUEtUMCAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyNCkKKyNkZWZpbmUgUEEyNV9QRl9BMTcgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBBMjVfQUZfRVRNVFJBQ0VQS1QxIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI1KQorI2RlZmluZSBQQTI2X1BGX0ExOCAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEEyNl9BRl9FVE1UUkFDRVBLVDIgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjYpCisjZGVmaW5lIFBBMjdfUEZfQTE5ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQTI3X0FGX0VUTVRSQUNFUEtUMyAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyNykKKyNkZWZpbmUgUEEyOF9QRl9BMjAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBBMjhfQUZfRVRNUElQRVNUQVQwIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI4KQorI2RlZmluZSBQQTI5X1BGX0EyMSAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyOSkKKyNkZWZpbmUgUEEyOV9BRl9FVE1QSVBFU1RBVDEgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjkpCisjZGVmaW5lIFBBMzBfUEZfQTIyICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQQTMwX0FGX0VUTVBJUEVTVEFUMiAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAzMCkKKyNkZWZpbmUgUEEzMV9QRl9BMjMgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBBMzFfQUZfRVRNVFJBQ0VDTEsgIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDMxKQorI2RlZmluZSBQQjhfUEZfU0RfREFUMCAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCBHUElPX1BVRU4gfCA4KQorI2RlZmluZSBQQjhfQUZfTVNfUElPICAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCA4KQorI2RlZmluZSBQQjlfUEZfU0RfREFUMSAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCBHUElPX1BVRU4gIHwgOSkKKyNkZWZpbmUgUEI5X0FGX01TX1BJMSAgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgOSkKKyNkZWZpbmUgUEIxMF9QRl9TRF9EQVQyICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgR1BJT19QVUVOICB8IDEwKQorI2RlZmluZSBQQjEwX0FGX01TX1NDTEtJICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxMCkKKyNkZWZpbmUgUEIxMV9QRl9TRF9EQVQzICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBCMTFfQUZfTVNfU0RJTyAgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDExKQorI2RlZmluZSBQQjEyX1BGX1NEX0NMSyAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEIxMl9BRl9NU19TQ0xLMCAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTIpCisjZGVmaW5lIFBCMTNfUEZfU0RfQ01EICAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IEdQSU9fUFVFTiB8IDEzKQorI2RlZmluZSBQQjEzX0FGX01TX0JTICAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxMykKKyNkZWZpbmUgUEIxNF9BRl9TU0lfUlhGUyAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTQpCisjZGVmaW5lIFBCMTVfQUZfU1NJX1JYQ0xLICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDE1KQorI2RlZmluZSBQQjE2X0FGX1NTSV9SWERBVCAgICAoR1BJT19QT1JUQiB8IEdQSU9fSU4gfCBHUElPX0FGIHwgMTYpCisjZGVmaW5lIFBCMTdfQUZfU1NJX1RYREFUICAgIChHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMTcpCisjZGVmaW5lIFBCMThfQUZfU1NJX1RYRlMgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQjE5X0FGX1NTSV9UWENMSyAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEIyMF9QRl9VU0JEX0FGRSAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBCMjFfUEZfVVNCRF9PRSAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQjIyX1BGVVNCRF9SQ1YgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyMikKKyNkZWZpbmUgUEIyM19QRl9VU0JEX1NVU1BORCAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBCMjRfUEZfVVNCRF9WUCAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQjI1X1BGX1VTQkRfVk0gICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyNSkKKyNkZWZpbmUgUEIyNl9QRl9VU0JEX1ZQTyAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBCMjdfUEZfVVNCRF9WTU8gICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQjI4X1BGX1VBUlQyX0NUUyAgICAoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQQjI5X1BGX1VBUlQyX1JUUyAgICAoR1BJT19QT1JUQiB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBCMzBfUEZfVUFSVDJfVFhEICAgIChHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzApCisjZGVmaW5lIFBCMzFfUEZfVUFSVDJfUlhEICAgIChHUElPX1BPUlRCIHwgR1BJT19JTiB8IEdQSU9fUEYgfCAzMSkKKyNkZWZpbmUgUEMzX1BGX1NTSV9SWEZTICAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMykKKyNkZWZpbmUgUEM0X1BGX1NTSV9SWENMSyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgNCkKKyNkZWZpbmUgUEM1X1BGX1NTSV9SWERBVCAgICAgKEdQSU9fUE9SVEMgfCBHUElPX0lOIHwgR1BJT19QRiB8IDUpCisjZGVmaW5lIFBDNl9QRl9TU0lfVFhEQVQgICAgIChHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEM3X1BGX1NTSV9UWEZTICAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgNykKKyNkZWZpbmUgUEM4X1BGX1NTSV9UWENMSyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEM5X1BGX1VBUlQxX0NUUyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQzEwX1BGX1VBUlQxX1JUUyAgICAoR1BJT19QT1JUQyB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMTApCisjZGVmaW5lIFBDMTFfUEZfVUFSVDFfVFhEICAgIChHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBDMTJfUEZfVUFSVDFfUlhEICAgIChHUElPX1BPUlRDIHwgR1BJT19JTiB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEMxM19QRl9TUEkxX1NQSV9SRFkgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBDMTRfUEZfU1BJMV9TQ0xLICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQQzE1X1BGX1NQSTFfU1MgICAgICAoR1BJT19QT1JUQyB8IEdQSU9fUEYgfCAxNSkKKyNkZWZpbmUgUEMxNl9QRl9TUEkxX01JU08gICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBDMTdfUEZfU1BJMV9NT1NJICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDE3KQorI2RlZmluZSBQQzI0X0JJTl9VQVJUM19SSSAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19CSU4gfCAyNCkKKyNkZWZpbmUgUEMyNV9CSU5fVUFSVDNfRFNSICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjUpCisjZGVmaW5lIFBDMjZfQU9VVF9VQVJUM19EVFIgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDI2KQorI2RlZmluZSBQQzI3X0JJTl9VQVJUM19EQ0QgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19CSU4gfCAyNykKKyNkZWZpbmUgUEMyOF9CSU5fVUFSVDNfQ1RTICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjgpCisjZGVmaW5lIFBDMjlfQU9VVF9VQVJUM19SVFMgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDI5KQorI2RlZmluZSBQQzMwX0JJTl9VQVJUM19UWCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fQklOIHwgMzApCisjZGVmaW5lIFBDMzFfQU9VVF9VQVJUM19SWCAgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDMxKQorI2RlZmluZSBQRDZfUEZfTFNDTEsgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDYpCisjZGVmaW5lIFBEN19QRl9SRVYgICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBEN19BRl9VQVJUMl9EVFIgICAgIChHUElPX0dJVVMgfCBHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQUYgfCA3KQorI2RlZmluZSBQRDdfQUlOX1NQSTJfU0NMSyAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQUlOIHwgNykKKyNkZWZpbmUgUEQ4X1BGX0NMUyAgICAgICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEQ4X0FGX1VBUlQyX0RDRCAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUYgfCA4KQorI2RlZmluZSBQRDhfQUlOX1NQSTJfU1MgICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQUlOIHwgOCkKKyNkZWZpbmUgUEQ5X1BGX1BTICAgICAgICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEQ5X0FGX1VBUlQyX1JJICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUYgfCA5KQorI2RlZmluZSBQRDlfQU9VVF9TUEkyX1JYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fSU4gfCA5KQorI2RlZmluZSBQRDEwX1BGX1NQTF9TUFIgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQRDEwX0FGX1VBUlQyX0RTUiAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDEwKQorI2RlZmluZSBQRDEwX0FJTl9TUEkyX1RYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgMTApCisjZGVmaW5lIFBEMTFfUEZfQ09OVFJBU1QgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBEMTJfUEZfQUNEX09FICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBEMTNfUEZfTFBfSFNZTkMgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBEMTRfUEZfRkxNX1ZTWU5DICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBEMTVfUEZfTEQwICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTUpCisjZGVmaW5lIFBEMTZfUEZfTEQxICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBEMTdfUEZfTEQyICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBEMThfUEZfTEQzICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTgpCisjZGVmaW5lIFBEMTlfUEZfTEQ0ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBEMjBfUEZfTEQ1ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBEMjFfUEZfTEQ2ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjEpCisjZGVmaW5lIFBEMjJfUEZfTEQ3ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBEMjNfUEZfTEQ4ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBEMjRfUEZfTEQ5ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjQpCisjZGVmaW5lIFBEMjVfUEZfTEQxMCAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBEMjZfUEZfTEQxMSAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBEMjdfUEZfTEQxMiAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjcpCisjZGVmaW5lIFBEMjhfUEZfTEQxMyAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBEMjlfUEZfTEQxNCAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBEMzBfUEZfTEQxNSAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzApCisjZGVmaW5lIFBEMzFfUEZfVE1SMk9VVCAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDMxKQorI2RlZmluZSBQRDMxX0JJTl9TUEkyX1RYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQklOIHwgMzEpCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBQQTVfUEZfTFNDTEsJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNSkKKyNkZWZpbmUgUEE2X1BGX0xEMAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQTdfUEZfTEQxCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBBOF9QRl9MRDIJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEE5X1BGX0xEMwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQTEwX1BGX0xENAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEExMV9QRl9MRDUJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBBMTJfUEZfTEQ2CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQQTEzX1BGX0xENwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEExNF9QRl9MRDgJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBBMTVfUEZfTEQ5CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQQTE2X1BGX0xEMTAJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBBMTdfUEZfTEQxMQkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNykKKyNkZWZpbmUgUEExOF9QRl9MRDEyCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQTE5X1BGX0xEMTMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBBMjBfUEZfTEQxNAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEEyMV9QRl9MRDE1CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQTIyX1BGX0xEMTYJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBBMjNfUEZfTEQxNwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMykKKyNkZWZpbmUgUEEyNF9QRl9SRVYJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjQpCisjZGVmaW5lIFBBMjVfUEZfQ0xTCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI1KQorI2RlZmluZSBQQTI2X1BGX1BTCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI2KQorI2RlZmluZSBQQTI3X1BGX1NQTF9TUFIJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjcpCisjZGVmaW5lIFBBMjhfUEZfSFNZTkMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBBMjlfUEZfVlNZTkMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBBMzBfUEZfQ09OVFJBU1QJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAzMCkKKyNkZWZpbmUgUEEzMV9QRl9PRV9BQ0QJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBCMTBfUEZfQ1NJX0QwCQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQQjEwX0FGX1VBUlQ2X1RYRAkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDEwKQorI2RlZmluZSBQQjExX1BGX0NTSV9EMQkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMSkKKyNkZWZpbmUgUEIxMV9BRl9VQVJUNl9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxMSkKKyNkZWZpbmUgUEIxMl9QRl9DU0lfRDIJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBCMTJfQUZfVUFSVDZfQ1RTCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMTIpCisjZGVmaW5lIFBCMTNfUEZfQ1NJX0QzCQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQQjEzX0FGX1VBUlQ2X1JUUwkoR1BJT19QT1JUQiB8IEdQSU9fSU4gIHwgR1BJT19BRiB8IDEzKQorI2RlZmluZSBQQjE0X1BGX0NTSV9ENAkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNCkKKyNkZWZpbmUgUEIxNV9QRl9DU0lfTUNMSwkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQQjE2X1BGX0NTSV9QSVhDTEsJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNikKKyNkZWZpbmUgUEIxN19QRl9DU0lfRDUJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBCMThfUEZfQ1NJX0Q2CQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQjE4X0FGX1VBUlQ1X1RYRAkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQjE5X1BGX0NTSV9ENwkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOSkKKyNkZWZpbmUgUEIxOV9BRl9VQVJUNV9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEIyMF9QRl9DU0lfVlNZTkMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEIyMF9BRl9VQVJUNV9DVFMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyMCkKKyNkZWZpbmUgUEIyMV9QRl9DU0lfSFNZTkMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEIyMV9BRl9VQVJUNV9SVFMJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAyMSkKKyNkZWZpbmUgUEIyNl9BRl9VQVJUNF9SVFMJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEIyOF9BRl9VQVJUNF9UWEQJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyOCkKKyNkZWZpbmUgUEIyOV9BRl9VQVJUNF9DVFMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyOSkKKyNkZWZpbmUgUEIzMV9BRl9VQVJUNF9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAzMSkKKyNkZWZpbmUgUEM1X1BGX0kyQzJfU0RBCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDUpCisjZGVmaW5lIFBDNl9QRl9JMkMyX1NDTAkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQzE2X1BGX1NTSTRfRlMJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBDMTdfUEZfU1NJNF9SWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxNykKKyNkZWZpbmUgUEMxOF9QRl9TU0k0X1RYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQzE5X1BGX1NTSTRfQ0xLCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBDMjBfUEZfU1NJMV9GUwkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEMyMV9QRl9TU0kxX1JYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQzIyX1BGX1NTSTFfVFhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBDMjNfUEZfU1NJMV9DTEsJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyMykKKyNkZWZpbmUgUEMyNF9QRl9TU0kyX0ZTCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQzI1X1BGX1NTSTJfUlhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBDMjZfUEZfU1NJMl9UWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEMyN19QRl9TU0kyX0NMSwkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQzI4X1BGX1NTSTNfRlMJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBDMjlfUEZfU1NJM19SWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyOSkKKyNkZWZpbmUgUEMzMF9QRl9TU0kzX1RYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQQzMxX1BGX1NTSTNfQ0xLCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBEMF9BSU5fRkVDX1RYRDAJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgMCkKKyNkZWZpbmUgUEQxX0FJTl9GRUNfVFhEMQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BSU4gfCAxKQorI2RlZmluZSBQRDJfQUlOX0ZFQ19UWEQyCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDIpCisjZGVmaW5lIFBEM19BSU5fRkVDX1RYRDMJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgMykKKyNkZWZpbmUgUEQ0X0FPVVRfRkVDX1JYX0VSCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDQpCisjZGVmaW5lIFBENV9BT1VUX0ZFQ19SWEQxCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDUpCisjZGVmaW5lIFBENl9BT1VUX0ZFQ19SWEQyCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDYpCisjZGVmaW5lIFBEN19BT1VUX0ZFQ19SWEQzCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDcpCisjZGVmaW5lIFBEOF9BRl9GRUNfTURJTwkJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BRiB8IDgpCisjZGVmaW5lIFBEOV9BSU5fRkVDX01EQwkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgOSkKKyNkZWZpbmUgUEQxMF9BT1VUX0ZFQ19DUlMJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTApCisjZGVmaW5lIFBEMTFfQU9VVF9GRUNfVFhfQ0xLCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDExKQorI2RlZmluZSBQRDEyX0FPVVRfRkVDX1JYRDAJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTIpCisjZGVmaW5lIFBEMTNfQU9VVF9GRUNfUlhfRFYJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTMpCisjZGVmaW5lIFBEMTRfQU9VVF9GRUNfQ0xSCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDE0KQorI2RlZmluZSBQRDE1X0FPVVRfRkVDX0NPTAkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCAxNSkKKyNkZWZpbmUgUEQxNl9BSU5fRkVDX1RYX0VSCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDE2KQorI2RlZmluZSBQRDE3X1BGX0kyQ19EQVRBCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBEMThfUEZfSTJDX0NMSwkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOCkKKyNkZWZpbmUgUEQyNV9QRl9DU1BJMV9SRFkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjUpCisjZGVmaW5lIFBEMjZfUEZfQ1NQSTFfU1MyCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGICB8IDI2KQorI2RlZmluZSBQRDI3X1BGX0NTUEkxX1NTMQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAyNykKKyNkZWZpbmUgUEQyOF9QRl9DU1BJMV9TUzAJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjgpCisjZGVmaW5lIFBEMjlfUEZfQ1NQSTFfU0NMSwkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAyOSkKKyNkZWZpbmUgUEQzMF9QRl9DU1BJMV9NSVNPCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fUEYgIHwgMzApCisjZGVmaW5lIFBEMzFfUEZfQ1NQSTFfTU9TSQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAzMSkKKyNkZWZpbmUgUEYyM19BSU5fRkVDX1RYX0VOCShHUElPX1BPUlRGIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDIzKQorI2RlZmluZSBQRTNfUEZfVUFSVDJfQ1RTCShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMykKKyNkZWZpbmUgUEU0X1BGX1VBUlQyX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDQpCisjZGVmaW5lIFBFNl9QRl9VQVJUMl9UWEQJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQRTdfUEZfVUFSVDJfUlhECShHUElPX1BPUlRFIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgNykKKyNkZWZpbmUgUEU4X1BGX1VBUlQzX1RYRAkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDgpCisjZGVmaW5lIFBFOV9QRl9VQVJUM19SWEQJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQRTEwX1BGX1VBUlQzX0NUUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQRTExX1BGX1VBUlQzX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQRTEyX1BGX1VBUlQxX1RYRAkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQRTEzX1BGX1VBUlQxX1JYRAkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQRTE0X1BGX1VBUlQxX0NUUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQRTE1X1BGX1VBUlQxX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQRTE4X0FGX0NTUEkzX01JU08JKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxOCkKKyNkZWZpbmUgUEUyMV9BRl9DU1BJM19TUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDIxKQorI2RlZmluZSBQRTIyX0FGX0NTUEkzX01PU0kJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyMikKKyNkZWZpbmUgUEUyM19BRl9DU1BJM19TQ0xLCShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjMpCisjZW5kaWYKKworLyogZGVjb2RlIGlycSBudW1iZXIgdG8gdXNlIHdpdGggSU1SKHgpLCBJU1IoeCkgYW5kIGZyaWVuZHMgKi8KKyNkZWZpbmUgSVJRX1RPX1JFRyhpcnEpICgoaXJxIC0gTVhDX01BWF9JTlRfTElORVMpID4+IDUpCisKKyNkZWZpbmUgSVJRX0dQSU9BKHgpICAoTVhDX01BWF9JTlRfTElORVMgKyB4KQorI2RlZmluZSBJUlFfR1BJT0IoeCkgIChJUlFfR1BJT0EoMzIpICsgeCkKKyNkZWZpbmUgSVJRX0dQSU9DKHgpICAoSVJRX0dQSU9CKDMyKSArIHgpCisjZGVmaW5lIElSUV9HUElPRCh4KSAgKElSUV9HUElPQygzMikgKyB4KQorCisjZW5kaWYgLyogX01YQ19HUElPX01YMV9NWDJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14My5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14My5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDllNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgzLmgKQEAgLTAsMCArMSw1MDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggYnkgU2FzY2hhIEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX01BQ0hfTVgzMV9JT01VWF9IX18KKyNkZWZpbmUgX19NQUNIX01YMzFfSU9NVVhfSF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisvKgorICogdmFyaW91cyBJT01VWCBvdXRwdXQgZnVuY3Rpb25zCisgKi8KKworI2RlZmluZQlJT01VWF9PQ09ORklHX0dQSU8gKDAgPDwgNCkJLyogdXNlZCBhcyBHUElPICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfRlVOQyAoMSA8PCA0KQkvKiB1c2VkIGFzIGZ1bmN0aW9uICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMSAoMiA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAxICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMiAoMyA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAyICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMyAoNCA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAzICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNCAoNSA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA0ICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNSAoNiA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA1ICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNiAoNyA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA2ICovCisjZGVmaW5lCUlPTVVYX0lDT05GSUdfTk9ORSAgMAkgCS8qIG5vdCBjb25maWd1cmVkIGZvciBpbnB1dCAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX0dQSU8gIDEJCS8qIHVzZWQgYXMgR1BJTyAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX0ZVTkMgIDIJCS8qIHVzZWQgYXMgZnVuY3Rpb24gKi8KKyNkZWZpbmUJSU9NVVhfSUNPTkZJR19BTFQxICA0CQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAxICovCisjZGVmaW5lCUlPTVVYX0lDT05GSUdfQUxUMiAgOAkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMiAqLworCisjZGVmaW5lIElPTVVYX0NPTkZJR19HUElPIChJT01VWF9PQ09ORklHX0dQSU8gfCBJT01VWF9JQ09ORklHX0dQSU8pCisjZGVmaW5lIElPTVVYX0NPTkZJR19GVU5DIChJT01VWF9PQ09ORklHX0ZVTkMgfCBJT01VWF9JQ09ORklHX0ZVTkMpCisjZGVmaW5lIElPTVVYX0NPTkZJR19BTFQxIChJT01VWF9PQ09ORklHX0FMVDEgfCBJT01VWF9JQ09ORklHX0FMVDEpCisjZGVmaW5lIElPTVVYX0NPTkZJR19BTFQyIChJT01VWF9PQ09ORklHX0FMVDIgfCBJT01VWF9JQ09ORklHX0FMVDIpCisKKy8qCisgKiB2YXJpb3VzIElPTVVYIHBhZCBmdW5jdGlvbnMKKyAqLworZW51bSBpb211eF9wYWRfY29uZmlnIHsKKwlQQURfQ1RMX05PTE9PUEJBQ0sJPSAweDAgPDwgOSwKKwlQQURfQ1RMX0xPT1BCQUNLCT0gMHgxIDw8IDksCisJUEFEX0NUTF9QS0VfTk9ORQk9IDB4MCA8PCA4LAorCVBBRF9DVExfUEtFX0VOQUJMRQk9IDB4MSA8PCA4LAorCVBBRF9DVExfUFVFX0tFRVBFUgk9IDB4MCA8PCA3LAorCVBBRF9DVExfUFVFX1BVRAkJPSAweDEgPDwgNywKKwlQQURfQ1RMXzEwMEtfUEQJCT0gMHgwIDw8IDUsCisJUEFEX0NUTF8xMDBLX1BVCQk9IDB4MSA8PCA1LAorCVBBRF9DVExfNDdLX1BVCQk9IDB4MiA8PCA1LAorCVBBRF9DVExfMjJLX1BVCQk9IDB4MyA8PCA1LAorCVBBRF9DVExfSFlTX0NNT1MJPSAweDAgPDwgNCwKKwlQQURfQ1RMX0hZU19TQ0hNSVRaCT0gMHgxIDw8IDQsCisJUEFEX0NUTF9PREVfQ01PUwk9IDB4MCA8PCAzLAorCVBBRF9DVExfT0RFX09wZW5EcmFpbgk9IDB4MSA8PCAzLAorCVBBRF9DVExfRFJWX05PUk1BTAk9IDB4MCA8PCAxLAorCVBBRF9DVExfRFJWX0hJR0gJPSAweDEgPDwgMSwKKwlQQURfQ1RMX0RSVl9NQVgJCT0gMHgyIDw8IDEsCisJUEFEX0NUTF9TUkVfU0xPVwk9IDB4MCA8PCAwLAorCVBBRF9DVExfU1JFX0ZBU1QJPSAweDEgPDwgMAorfTsKKworLyoKKyAqIHZhcmlvdXMgSU9NVVggZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9ucworICovCitlbnVtIGlvbXV4X2dwX2Z1bmMgeworCU1VWF9QR1BfRklSSQkJCT0gMSA8PCAwLAorCU1VWF9ERFJfTU9ERQkJCT0gMSA8PCAxLAorCU1VWF9QR1BfQ1NQSV9CQgkJCT0gMSA8PCAyLAorCU1VWF9QR1BfQVRBXzEJCQk9IDEgPDwgMywKKwlNVVhfUEdQX0FUQV8yCQkJPSAxIDw8IDQsCisJTVVYX1BHUF9BVEFfMwkJCT0gMSA8PCA1LAorCU1VWF9QR1BfQVRBXzQJCQk9IDEgPDwgNiwKKwlNVVhfUEdQX0FUQV81CQkJPSAxIDw8IDcsCisJTVVYX1BHUF9BVEFfNgkJCT0gMSA8PCA4LAorCU1VWF9QR1BfQVRBXzcJCQk9IDEgPDwgOSwKKwlNVVhfUEdQX0FUQV84CQkJPSAxIDw8IDEwLAorCU1VWF9QR1BfVUgyCQkJPSAxIDw8IDExLAorCU1VWF9TRENUTF9DU0QwX1NFTAkJPSAxIDw8IDEyLAorCU1VWF9TRENUTF9DU0QxX1NFTAkJPSAxIDw8IDEzLAorCU1VWF9DU1BJMV9VQVJUMwkJCT0gMSA8PCAxNCwKKwlNVVhfRVhURE1BUkVRMl9NQlhfU0VMCQk9IDEgPDwgMTUsCisJTVVYX1RBTVBFUl9ERVRFQ1RfRU4JCT0gMSA8PCAxNiwKKwlNVVhfUEdQX1VTQl80V0lSRQkJPSAxIDw8IDE3LAorCU1VWF9QR0JfVVNCX0NPTU1PTgkJPSAxIDw8IDE4LAorCU1VWF9TREhDX01FTVNUSUNLMQkJPSAxIDw8IDE5LAorCU1VWF9TREhDX01FTVNUSUNLMgkJPSAxIDw8IDIwLAorCU1VWF9QR1BfU1BMTF9CWVAJCT0gMSA8PCAyMSwKKwlNVVhfUEdQX1VQTExfQllQCQk9IDEgPDwgMjIsCisJTVVYX1BHUF9NU0hDMV9DTEtfU0VMCQk9IDEgPDwgMjMsCisJTVVYX1BHUF9NU0hDMl9DTEtfU0VMCQk9IDEgPDwgMjQsCisJTVVYX0NTUEkzX1VBUlQ1X1NFTAkJPSAxIDw8IDI1LAorCU1VWF9QR1BfQVRBXzkJCQk9IDEgPDwgMjYsCisJTVVYX1BHUF9VU0JfU1VTUEVORAkJPSAxIDw8IDI3LAorCU1VWF9QR1BfVVNCX09UR19MT09QQkFDSwk9IDEgPDwgMjgsCisJTVVYX1BHUF9VU0JfSFMxX0xPT1BCQUNLCT0gMSA8PCAyOSwKKwlNVVhfUEdQX1VTQl9IUzJfTE9PUEJBQ0sJPSAxIDw8IDMwLAorCU1VWF9DTEtPX0REUl9NT0RFCQk9IDEgPDwgMzEsCit9OworCisvKgorICogVGhpcyBmdW5jdGlvbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBnZW5lcmFsIHB1cnBvc2UgZnVuY3Rpb24gZm9yIGEgcGFydGljdWxhcgorICogc2lnbmFsLgorICovCit2b2lkIGlvbXV4X2NvbmZpZ19ncHIoZW51bSBpb211eF9ncF9mdW5jICwgYm9vbCk7CisKKy8qCisgKiBzZXQgdGhlIG1vZGUgZm9yIGEgSU9NVVggcGluLgorICovCitpbnQgbXhjX2lvbXV4X21vZGUodW5zaWduZWQgaW50KTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIHNpZ25hbC4KKyAqLwordm9pZCBteGNfaW9tdXhfc2V0X2dwcihlbnVtIGlvbXV4X2dwX2Z1bmMsIGJvb2wpOworCisjZGVmaW5lIElPTVVYX1BBRE5VTV9NQVNLCTB4MWZmCisjZGVmaW5lIElPTVVYX0dQSU9OVU1fU0hJRlQJOQorI2RlZmluZSBJT01VWF9HUElPTlVNX01BU0sJKDB4ZmYgPDwgSU9NVVhfR1BJT05VTV9TSElGVCkKKyNkZWZpbmUgSU9NVVhfTU9ERV9TSElGVAkxNworI2RlZmluZSBJT01VWF9NT0RFX01BU0sJKDB4ZmYgPDwgSU9NVVhfTU9ERV9TSElGVCkKKworI2RlZmluZSBJT01VWF9QSU4oZ3Bpb251bSwgcGFkbnVtKSBcCisJKCgoZ3Bpb251bSA8PCBJT01VWF9HUElPTlVNX1NISUZUKSAmIElPTVVYX0dQSU9OVU1fTUFTSykgfCBcCisJIChwYWRudW0gJiBJT01VWF9QQUROVU1fTUFTSykpCisKKyNkZWZpbmUgSU9NVVhfTU9ERShwaW4sIG1vZGUpIChwaW4gfCBtb2RlIDw8IElPTVVYX01PREVfU0hJRlQpCisKKyNkZWZpbmUgSU9NVVhfVE9fR1BJTyhpb211eF9waW4pIFwKKwkoKGlvbXV4X3BpbiAmIElPTVVYX0dQSU9OVU1fTUFTSykgPj4gSU9NVVhfR1BJT05VTV9TSElGVCkKKyNkZWZpbmUgSU9NVVhfVE9fSVJRKGlvbXV4X3BpbikgXAorCSgoKGlvbXV4X3BpbiAmIElPTVVYX0dQSU9OVU1fTUFTSykgPj4gSU9NVVhfR1BJT05VTV9TSElGVCkgKyBcCisJTVhDX0dQSU9fSU5UX0JBU0UpCisKKy8qCisgKiBUaGlzIGVudW1lcmF0aW9uIGlzIGNvbnN0cnVjdGVkIGJhc2VkIG9uIHRoZSBTZWN0aW9uCisgKiAic3dfcGFkX2N0bCAmIHN3X211eF9jdGwgZGV0YWlscyIgb2YgdGhlIE1YMzEgSUMgU3BlYy4gRWFjaCBlbnVtZXJhdGVkCisgKiB2YWx1ZSBpcyBjb25zdHJ1Y3RlZCBiYXNlZCBvbiB0aGUgcnVsZXMgZGVzY3JpYmVkIGFib3ZlLgorICovCisKK2VudW0gaW9tdXhfcGlucyB7CisJTVgzMV9QSU5fVFRNX1BBRAk9IElPTVVYX1BJTigweGZmLCAgIDApLAorCU1YMzFfUElOX0NTUEkzX1NQSV9SRFkJPSBJT01VWF9QSU4oMHhmZiwgICAxKSwKKwlNWDMxX1BJTl9DU1BJM19TQ0xLCT0gSU9NVVhfUElOKDB4ZmYsICAgMiksCisJTVgzMV9QSU5fQ1NQSTNfTUlTTwk9IElPTVVYX1BJTigweGZmLCAgIDMpLAorCU1YMzFfUElOX0NTUEkzX01PU0kJPSBJT01VWF9QSU4oMHhmZiwgICA0KSwKKwlNWDMxX1BJTl9DTEtTUwkJPSBJT01VWF9QSU4oMHhmZiwgICA1KSwKKwlNWDMxX1BJTl9DRV9DT05UUk9MCT0gSU9NVVhfUElOKDB4ZmYsICAgNiksCisJTVgzMV9QSU5fQVRBX1JFU0VUX0IJPSBJT01VWF9QSU4oOTUsICAgICA3KSwKKwlNWDMxX1BJTl9BVEFfRE1BQ0sJPSBJT01VWF9QSU4oOTQsICAgICA4KSwKKwlNWDMxX1BJTl9BVEFfRElPVwk9IElPTVVYX1BJTig5MywgICAgIDkpLAorCU1YMzFfUElOX0FUQV9ESU9SCT0gSU9NVVhfUElOKDkyLCAgICAxMCksCisJTVgzMV9QSU5fQVRBX0NTMQk9IElPTVVYX1BJTig5MSwgICAgMTEpLAorCU1YMzFfUElOX0FUQV9DUzAJPSBJT01VWF9QSU4oOTAsICAgIDEyKSwKKwlNWDMxX1BJTl9TRDFfREFUQTMJPSBJT01VWF9QSU4oNjMsICAgIDEzKSwKKwlNWDMxX1BJTl9TRDFfREFUQTIJPSBJT01VWF9QSU4oNjIsICAgIDE0KSwKKwlNWDMxX1BJTl9TRDFfREFUQTEJPSBJT01VWF9QSU4oNjEsICAgIDE1KSwKKwlNWDMxX1BJTl9TRDFfREFUQTAJPSBJT01VWF9QSU4oNjAsICAgIDE2KSwKKwlNWDMxX1BJTl9TRDFfQ0xLCT0gSU9NVVhfUElOKDU5LCAgICAxNyksCisJTVgzMV9QSU5fU0QxX0NNRAk9IElPTVVYX1BJTig1OCwgICAgMTgpLAorCU1YMzFfUElOX0QzX1NQTAkJPSBJT01VWF9QSU4oMHhmZiwgIDE5KSwKKwlNWDMxX1BJTl9EM19DTFMJCT0gSU9NVVhfUElOKDB4ZmYsICAyMCksCisJTVgzMV9QSU5fRDNfUkVWCQk9IElPTVVYX1BJTigweGZmLCAgMjEpLAorCU1YMzFfUElOX0NPTlRSQVNUCT0gSU9NVVhfUElOKDB4ZmYsICAyMiksCisJTVgzMV9QSU5fVlNZTkMzCQk9IElPTVVYX1BJTigweGZmLCAgMjMpLAorCU1YMzFfUElOX1JFQUQJCT0gSU9NVVhfUElOKDB4ZmYsICAyNCksCisJTVgzMV9QSU5fV1JJVEUJCT0gSU9NVVhfUElOKDB4ZmYsICAyNSksCisJTVgzMV9QSU5fUEFSX1JTCQk9IElPTVVYX1BJTigweGZmLCAgMjYpLAorCU1YMzFfUElOX1NFUl9SUwkJPSBJT01VWF9QSU4oODksICAgIDI3KSwKKwlNWDMxX1BJTl9MQ1MxCQk9IElPTVVYX1BJTig4OCwgICAgMjgpLAorCU1YMzFfUElOX0xDUzAJCT0gSU9NVVhfUElOKDg3LCAgICAyOSksCisJTVgzMV9QSU5fU0RfRF9DTEsJPSBJT01VWF9QSU4oODYsICAgIDMwKSwKKwlNWDMxX1BJTl9TRF9EX0lPCT0gSU9NVVhfUElOKDg1LCAgICAzMSksCisJTVgzMV9QSU5fU0RfRF9JCQk9IElPTVVYX1BJTig4NCwgICAgMzIpLAorCU1YMzFfUElOX0RSRFkwCQk9IElPTVVYX1BJTigweGZmLCAgMzMpLAorCU1YMzFfUElOX0ZQU0hJRlQJPSBJT01VWF9QSU4oMHhmZiwgIDM0KSwKKwlNWDMxX1BJTl9IU1lOQwkJPSBJT01VWF9QSU4oMHhmZiwgIDM1KSwKKwlNWDMxX1BJTl9WU1lOQzAJCT0gSU9NVVhfUElOKDB4ZmYsICAzNiksCisJTVgzMV9QSU5fTEQxNwkJPSBJT01VWF9QSU4oMHhmZiwgIDM3KSwKKwlNWDMxX1BJTl9MRDE2CQk9IElPTVVYX1BJTigweGZmLCAgMzgpLAorCU1YMzFfUElOX0xEMTUJCT0gSU9NVVhfUElOKDB4ZmYsICAzOSksCisJTVgzMV9QSU5fTEQxNAkJPSBJT01VWF9QSU4oMHhmZiwgIDQwKSwKKwlNWDMxX1BJTl9MRDEzCQk9IElPTVVYX1BJTigweGZmLCAgNDEpLAorCU1YMzFfUElOX0xEMTIJCT0gSU9NVVhfUElOKDB4ZmYsICA0MiksCisJTVgzMV9QSU5fTEQxMQkJPSBJT01VWF9QSU4oMHhmZiwgIDQzKSwKKwlNWDMxX1BJTl9MRDEwCQk9IElPTVVYX1BJTigweGZmLCAgNDQpLAorCU1YMzFfUElOX0xEOQkJPSBJT01VWF9QSU4oMHhmZiwgIDQ1KSwKKwlNWDMxX1BJTl9MRDgJCT0gSU9NVVhfUElOKDB4ZmYsICA0NiksCisJTVgzMV9QSU5fTEQ3CQk9IElPTVVYX1BJTigweGZmLCAgNDcpLAorCU1YMzFfUElOX0xENgkJPSBJT01VWF9QSU4oMHhmZiwgIDQ4KSwKKwlNWDMxX1BJTl9MRDUJCT0gSU9NVVhfUElOKDB4ZmYsICA0OSksCisJTVgzMV9QSU5fTEQ0CQk9IElPTVVYX1BJTigweGZmLCAgNTApLAorCU1YMzFfUElOX0xEMwkJPSBJT01VWF9QSU4oMHhmZiwgIDUxKSwKKwlNWDMxX1BJTl9MRDIJCT0gSU9NVVhfUElOKDB4ZmYsICA1MiksCisJTVgzMV9QSU5fTEQxCQk9IElPTVVYX1BJTigweGZmLCAgNTMpLAorCU1YMzFfUElOX0xEMAkJPSBJT01VWF9QSU4oMHhmZiwgIDU0KSwKKwlNWDMxX1BJTl9VU0JIMl9EQVRBMQk9IElPTVVYX1BJTigweGZmLCAgNTUpLAorCU1YMzFfUElOX1VTQkgyX0RBVEEwCT0gSU9NVVhfUElOKDB4ZmYsICA1NiksCisJTVgzMV9QSU5fVVNCSDJfTlhUCT0gSU9NVVhfUElOKDB4ZmYsICA1NyksCisJTVgzMV9QSU5fVVNCSDJfU1RQCT0gSU9NVVhfUElOKDB4ZmYsICA1OCksCisJTVgzMV9QSU5fVVNCSDJfRElSCT0gSU9NVVhfUElOKDB4ZmYsICA1OSksCisJTVgzMV9QSU5fVVNCSDJfQ0xLCT0gSU9NVVhfUElOKDB4ZmYsICA2MCksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE3CT0gSU9NVVhfUElOKDB4ZmYsICA2MSksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE2CT0gSU9NVVhfUElOKDB4ZmYsICA2MiksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE1CT0gSU9NVVhfUElOKDB4ZmYsICA2MyksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE0CT0gSU9NVVhfUElOKDB4ZmYsICA2NCksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEzCT0gSU9NVVhfUElOKDB4ZmYsICA2NSksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEyCT0gSU9NVVhfUElOKDB4ZmYsICA2NiksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEExCT0gSU9NVVhfUElOKDB4ZmYsICA2NyksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEwCT0gSU9NVVhfUElOKDB4ZmYsICA2OCksCisJTVgzMV9QSU5fVVNCT1RHX05YVAk9IElPTVVYX1BJTigweGZmLCAgNjkpLAorCU1YMzFfUElOX1VTQk9UR19TVFAJPSBJT01VWF9QSU4oMHhmZiwgIDcwKSwKKwlNWDMxX1BJTl9VU0JPVEdfRElSCT0gSU9NVVhfUElOKDB4ZmYsICA3MSksCisJTVgzMV9QSU5fVVNCT1RHX0NMSwk9IElPTVVYX1BJTigweGZmLCAgNzIpLAorCU1YMzFfUElOX1VTQl9CWVAJPSBJT01VWF9QSU4oMzEsICAgIDczKSwKKwlNWDMxX1BJTl9VU0JfT0MJCT0gSU9NVVhfUElOKDMwLCAgICA3NCksCisJTVgzMV9QSU5fVVNCX1BXUgk9IElPTVVYX1BJTigyOSwgICAgNzUpLAorCU1YMzFfUElOX1NKQ19NT0QJPSBJT01VWF9QSU4oMHhmZiwgIDc2KSwKKwlNWDMxX1BJTl9ERV9CCQk9IElPTVVYX1BJTigweGZmLCAgNzcpLAorCU1YMzFfUElOX1RSU1RCCQk9IElPTVVYX1BJTigweGZmLCAgNzgpLAorCU1YMzFfUElOX1RETwkJPSBJT01VWF9QSU4oMHhmZiwgIDc5KSwKKwlNWDMxX1BJTl9UREkJCT0gSU9NVVhfUElOKDB4ZmYsICA4MCksCisJTVgzMV9QSU5fVE1TCQk9IElPTVVYX1BJTigweGZmLCAgODEpLAorCU1YMzFfUElOX1RDSwkJPSBJT01VWF9QSU4oMHhmZiwgIDgyKSwKKwlNWDMxX1BJTl9SVENLCQk9IElPTVVYX1BJTigweGZmLCAgODMpLAorCU1YMzFfUElOX0tFWV9DT0w3CT0gSU9NVVhfUElOKDU3LCAgICA4NCksCisJTVgzMV9QSU5fS0VZX0NPTDYJPSBJT01VWF9QSU4oNTYsICAgIDg1KSwKKwlNWDMxX1BJTl9LRVlfQ09MNQk9IElPTVVYX1BJTig1NSwgICAgODYpLAorCU1YMzFfUElOX0tFWV9DT0w0CT0gSU9NVVhfUElOKDU0LCAgICA4NyksCisJTVgzMV9QSU5fS0VZX0NPTDMJPSBJT01VWF9QSU4oMHhmZiwgIDg4KSwKKwlNWDMxX1BJTl9LRVlfQ09MMgk9IElPTVVYX1BJTigweGZmLCAgODkpLAorCU1YMzFfUElOX0tFWV9DT0wxCT0gSU9NVVhfUElOKDB4ZmYsICA5MCksCisJTVgzMV9QSU5fS0VZX0NPTDAJPSBJT01VWF9QSU4oMHhmZiwgIDkxKSwKKwlNWDMxX1BJTl9LRVlfUk9XNwk9IElPTVVYX1BJTig1MywgICAgOTIpLAorCU1YMzFfUElOX0tFWV9ST1c2CT0gSU9NVVhfUElOKDUyLCAgICA5MyksCisJTVgzMV9QSU5fS0VZX1JPVzUJPSBJT01VWF9QSU4oNTEsICAgIDk0KSwKKwlNWDMxX1BJTl9LRVlfUk9XNAk9IElPTVVYX1BJTig1MCwgICAgOTUpLAorCU1YMzFfUElOX0tFWV9ST1czCT0gSU9NVVhfUElOKDB4ZmYsICA5NiksCisJTVgzMV9QSU5fS0VZX1JPVzIJPSBJT01VWF9QSU4oMHhmZiwgIDk3KSwKKwlNWDMxX1BJTl9LRVlfUk9XMQk9IElPTVVYX1BJTigweGZmLCAgOTgpLAorCU1YMzFfUElOX0tFWV9ST1cwCT0gSU9NVVhfUElOKDB4ZmYsICA5OSksCisJTVgzMV9QSU5fQkFUVF9MSU5FCT0gSU9NVVhfUElOKDQ5LCAgIDEwMCksCisJTVgzMV9QSU5fQ1RTMgkJPSBJT01VWF9QSU4oMHhmZiwgMTAxKSwKKwlNWDMxX1BJTl9SVFMyCQk9IElPTVVYX1BJTigweGZmLCAxMDIpLAorCU1YMzFfUElOX1RYRDIJCT0gSU9NVVhfUElOKDI4LCAgIDEwMyksCisJTVgzMV9QSU5fUlhEMgkJPSBJT01VWF9QSU4oMjcsICAgMTA0KSwKKwlNWDMxX1BJTl9EVFJfRENFMgk9IElPTVVYX1BJTig0OCwgICAxMDUpLAorCU1YMzFfUElOX0RDRF9EVEUxCT0gSU9NVVhfUElOKDQ3LCAgIDEwNiksCisJTVgzMV9QSU5fUklfRFRFMQk9IElPTVVYX1BJTig0NiwgICAxMDcpLAorCU1YMzFfUElOX0RTUl9EVEUxCT0gSU9NVVhfUElOKDQ1LCAgIDEwOCksCisJTVgzMV9QSU5fRFRSX0RURTEJPSBJT01VWF9QSU4oNDQsICAgMTA5KSwKKwlNWDMxX1BJTl9EQ0RfRENFMQk9IElPTVVYX1BJTig0MywgICAxMTApLAorCU1YMzFfUElOX1JJX0RDRTEJPSBJT01VWF9QSU4oNDIsICAgMTExKSwKKwlNWDMxX1BJTl9EU1JfRENFMQk9IElPTVVYX1BJTig0MSwgICAxMTIpLAorCU1YMzFfUElOX0RUUl9EQ0UxCT0gSU9NVVhfUElOKDQwLCAgIDExMyksCisJTVgzMV9QSU5fQ1RTMQkJPSBJT01VWF9QSU4oMzksICAgMTE0KSwKKwlNWDMxX1BJTl9SVFMxCQk9IElPTVVYX1BJTigzOCwgICAxMTUpLAorCU1YMzFfUElOX1RYRDEJCT0gSU9NVVhfUElOKDM3LCAgIDExNiksCisJTVgzMV9QSU5fUlhEMQkJPSBJT01VWF9QSU4oMzYsICAgMTE3KSwKKwlNWDMxX1BJTl9DU1BJMl9TUElfUkRZCT0gSU9NVVhfUElOKDB4ZmYsIDExOCksCisJTVgzMV9QSU5fQ1NQSTJfU0NMSwk9IElPTVVYX1BJTigweGZmLCAxMTkpLAorCU1YMzFfUElOX0NTUEkyX1NTMgk9IElPTVVYX1BJTigweGZmLCAxMjApLAorCU1YMzFfUElOX0NTUEkyX1NTMQk9IElPTVVYX1BJTigweGZmLCAxMjEpLAorCU1YMzFfUElOX0NTUEkyX1NTMAk9IElPTVVYX1BJTigweGZmLCAxMjIpLAorCU1YMzFfUElOX0NTUEkyX01JU08JPSBJT01VWF9QSU4oMHhmZiwgMTIzKSwKKwlNWDMxX1BJTl9DU1BJMl9NT1NJCT0gSU9NVVhfUElOKDB4ZmYsIDEyNCksCisJTVgzMV9QSU5fQ1NQSTFfU1BJX1JEWQk9IElPTVVYX1BJTigweGZmLCAxMjUpLAorCU1YMzFfUElOX0NTUEkxX1NDTEsJPSBJT01VWF9QSU4oMHhmZiwgMTI2KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzIJPSBJT01VWF9QSU4oMHhmZiwgMTI3KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzEJPSBJT01VWF9QSU4oMHhmZiwgMTI4KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzAJPSBJT01VWF9QSU4oMHhmZiwgMTI5KSwKKwlNWDMxX1BJTl9DU1BJMV9NSVNPCT0gSU9NVVhfUElOKDB4ZmYsIDEzMCksCisJTVgzMV9QSU5fQ1NQSTFfTU9TSQk9IElPTVVYX1BJTigweGZmLCAxMzEpLAorCU1YMzFfUElOX1NGUzYJCT0gSU9NVVhfUElOKDI2LCAgIDEzMiksCisJTVgzMV9QSU5fU0NLNgkJPSBJT01VWF9QSU4oMjUsICAgMTMzKSwKKwlNWDMxX1BJTl9TUlhENgkJPSBJT01VWF9QSU4oMjQsICAgMTM0KSwKKwlNWDMxX1BJTl9TVFhENgkJPSBJT01VWF9QSU4oMjMsICAgMTM1KSwKKwlNWDMxX1BJTl9TRlM1CQk9IElPTVVYX1BJTigweGZmLCAxMzYpLAorCU1YMzFfUElOX1NDSzUJCT0gSU9NVVhfUElOKDB4ZmYsIDEzNyksCisJTVgzMV9QSU5fU1JYRDUJCT0gSU9NVVhfUElOKDIyLCAgIDEzOCksCisJTVgzMV9QSU5fU1RYRDUJCT0gSU9NVVhfUElOKDIxLCAgIDEzOSksCisJTVgzMV9QSU5fU0ZTNAkJPSBJT01VWF9QSU4oMHhmZiwgMTQwKSwKKwlNWDMxX1BJTl9TQ0s0CQk9IElPTVVYX1BJTigweGZmLCAxNDEpLAorCU1YMzFfUElOX1NSWEQ0CQk9IElPTVVYX1BJTigyMCwgICAxNDIpLAorCU1YMzFfUElOX1NUWEQ0CQk9IElPTVVYX1BJTigxOSwgICAxNDMpLAorCU1YMzFfUElOX1NGUzMJCT0gSU9NVVhfUElOKDB4ZmYsIDE0NCksCisJTVgzMV9QSU5fU0NLMwkJPSBJT01VWF9QSU4oMHhmZiwgMTQ1KSwKKwlNWDMxX1BJTl9TUlhEMwkJPSBJT01VWF9QSU4oMTgsICAgMTQ2KSwKKwlNWDMxX1BJTl9TVFhEMwkJPSBJT01VWF9QSU4oMTcsICAgMTQ3KSwKKwlNWDMxX1BJTl9JMkNfREFUCT0gSU9NVVhfUElOKDB4ZmYsIDE0OCksCisJTVgzMV9QSU5fSTJDX0NMSwk9IElPTVVYX1BJTigweGZmLCAxNDkpLAorCU1YMzFfUElOX0NTSV9QSVhDTEsJPSBJT01VWF9QSU4oODMsICAgMTUwKSwKKwlNWDMxX1BJTl9DU0lfSFNZTkMJPSBJT01VWF9QSU4oODIsICAgMTUxKSwKKwlNWDMxX1BJTl9DU0lfVlNZTkMJPSBJT01VWF9QSU4oODEsICAgMTUyKSwKKwlNWDMxX1BJTl9DU0lfTUNMSwk9IElPTVVYX1BJTig4MCwgICAxNTMpLAorCU1YMzFfUElOX0NTSV9EMTUJPSBJT01VWF9QSU4oNzksICAgMTU0KSwKKwlNWDMxX1BJTl9DU0lfRDE0CT0gSU9NVVhfUElOKDc4LCAgIDE1NSksCisJTVgzMV9QSU5fQ1NJX0QxMwk9IElPTVVYX1BJTig3NywgICAxNTYpLAorCU1YMzFfUElOX0NTSV9EMTIJPSBJT01VWF9QSU4oNzYsICAgMTU3KSwKKwlNWDMxX1BJTl9DU0lfRDExCT0gSU9NVVhfUElOKDc1LCAgIDE1OCksCisJTVgzMV9QSU5fQ1NJX0QxMAk9IElPTVVYX1BJTig3NCwgICAxNTkpLAorCU1YMzFfUElOX0NTSV9EOQkJPSBJT01VWF9QSU4oNzMsICAgMTYwKSwKKwlNWDMxX1BJTl9DU0lfRDgJCT0gSU9NVVhfUElOKDcyLCAgIDE2MSksCisJTVgzMV9QSU5fQ1NJX0Q3CQk9IElPTVVYX1BJTig3MSwgICAxNjIpLAorCU1YMzFfUElOX0NTSV9ENgkJPSBJT01VWF9QSU4oNzAsICAgMTYzKSwKKwlNWDMxX1BJTl9DU0lfRDUJCT0gSU9NVVhfUElOKDY5LCAgIDE2NCksCisJTVgzMV9QSU5fQ1NJX0Q0CQk9IElPTVVYX1BJTig2OCwgICAxNjUpLAorCU1YMzFfUElOX01fR1JBTlQJPSBJT01VWF9QSU4oMHhmZiwgMTY2KSwKKwlNWDMxX1BJTl9NX1JFUVVFU1QJPSBJT01VWF9QSU4oMHhmZiwgMTY3KSwKKwlNWDMxX1BJTl9QQ19QT0UJCT0gSU9NVVhfUElOKDB4ZmYsIDE2OCksCisJTVgzMV9QSU5fUENfUldfQgk9IElPTVVYX1BJTigweGZmLCAxNjkpLAorCU1YMzFfUElOX0lPSVMxNgkJPSBJT01VWF9QSU4oMHhmZiwgMTcwKSwKKwlNWDMxX1BJTl9QQ19SU1QJCT0gSU9NVVhfUElOKDB4ZmYsIDE3MSksCisJTVgzMV9QSU5fUENfQlZEMgk9IElPTVVYX1BJTigweGZmLCAxNzIpLAorCU1YMzFfUElOX1BDX0JWRDEJPSBJT01VWF9QSU4oMHhmZiwgMTczKSwKKwlNWDMxX1BJTl9QQ19WUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDE3NCksCisJTVgzMV9QSU5fUENfVlMxCQk9IElPTVVYX1BJTigweGZmLCAxNzUpLAorCU1YMzFfUElOX1BDX1BXUk9OCT0gSU9NVVhfUElOKDB4ZmYsIDE3NiksCisJTVgzMV9QSU5fUENfUkVBRFkJPSBJT01VWF9QSU4oMHhmZiwgMTc3KSwKKwlNWDMxX1BJTl9QQ19XQUlUX0IJPSBJT01VWF9QSU4oMHhmZiwgMTc4KSwKKwlNWDMxX1BJTl9QQ19DRDJfQgk9IElPTVVYX1BJTigweGZmLCAxNzkpLAorCU1YMzFfUElOX1BDX0NEMV9CCT0gSU9NVVhfUElOKDB4ZmYsIDE4MCksCisJTVgzMV9QSU5fRDAJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MSksCisJTVgzMV9QSU5fRDEJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MiksCisJTVgzMV9QSU5fRDIJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MyksCisJTVgzMV9QSU5fRDMJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NCksCisJTVgzMV9QSU5fRDQJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NSksCisJTVgzMV9QSU5fRDUJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NiksCisJTVgzMV9QSU5fRDYJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NyksCisJTVgzMV9QSU5fRDcJCT0gSU9NVVhfUElOKDB4ZmYsIDE4OCksCisJTVgzMV9QSU5fRDgJCT0gSU9NVVhfUElOKDB4ZmYsIDE4OSksCisJTVgzMV9QSU5fRDkJCT0gSU9NVVhfUElOKDB4ZmYsIDE5MCksCisJTVgzMV9QSU5fRDEwCQk9IElPTVVYX1BJTigweGZmLCAxOTEpLAorCU1YMzFfUElOX0QxMQkJPSBJT01VWF9QSU4oMHhmZiwgMTkyKSwKKwlNWDMxX1BJTl9EMTIJCT0gSU9NVVhfUElOKDB4ZmYsIDE5MyksCisJTVgzMV9QSU5fRDEzCQk9IElPTVVYX1BJTigweGZmLCAxOTQpLAorCU1YMzFfUElOX0QxNAkJPSBJT01VWF9QSU4oMHhmZiwgMTk1KSwKKwlNWDMxX1BJTl9EMTUJCT0gSU9NVVhfUElOKDB4ZmYsIDE5NiksCisJTVgzMV9QSU5fTkZSQgkJPSBJT01VWF9QSU4oMTYsICAgMTk3KSwKKwlNWDMxX1BJTl9ORkNFX0IJCT0gSU9NVVhfUElOKDE1LCAgIDE5OCksCisJTVgzMV9QSU5fTkZXUF9CCQk9IElPTVVYX1BJTigxNCwgICAxOTkpLAorCU1YMzFfUElOX05GQ0xFCQk9IElPTVVYX1BJTigxMywgICAyMDApLAorCU1YMzFfUElOX05GQUxFCQk9IElPTVVYX1BJTigxMiwgICAyMDEpLAorCU1YMzFfUElOX05GUkVfQgkJPSBJT01VWF9QSU4oMTEsICAgMjAyKSwKKwlNWDMxX1BJTl9ORldFX0IJCT0gSU9NVVhfUElOKDEwLCAgIDIwMyksCisJTVgzMV9QSU5fU0RRUzMJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNCksCisJTVgzMV9QSU5fU0RRUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNSksCisJTVgzMV9QSU5fU0RRUzEJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNiksCisJTVgzMV9QSU5fU0RRUzAJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNyksCisJTVgzMV9QSU5fU0RDTEtfQgk9IElPTVVYX1BJTigweGZmLCAyMDgpLAorCU1YMzFfUElOX1NEQ0xLCQk9IElPTVVYX1BJTigweGZmLCAyMDkpLAorCU1YMzFfUElOX1NEQ0tFMQkJPSBJT01VWF9QSU4oMHhmZiwgMjEwKSwKKwlNWDMxX1BJTl9TRENLRTAJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMSksCisJTVgzMV9QSU5fU0RXRQkJPSBJT01VWF9QSU4oMHhmZiwgMjEyKSwKKwlNWDMxX1BJTl9DQVMJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMyksCisJTVgzMV9QSU5fUkFTCQk9IElPTVVYX1BJTigweGZmLCAyMTQpLAorCU1YMzFfUElOX1JXCQk9IElPTVVYX1BJTigweGZmLCAyMTUpLAorCU1YMzFfUElOX0JDTEsJCT0gSU9NVVhfUElOKDB4ZmYsIDIxNiksCisJTVgzMV9QSU5fTEJBCQk9IElPTVVYX1BJTigweGZmLCAyMTcpLAorCU1YMzFfUElOX0VDQgkJPSBJT01VWF9QSU4oMHhmZiwgMjE4KSwKKwlNWDMxX1BJTl9DUzUJCT0gSU9NVVhfUElOKDB4ZmYsIDIxOSksCisJTVgzMV9QSU5fQ1M0CQk9IElPTVVYX1BJTigweGZmLCAyMjApLAorCU1YMzFfUElOX0NTMwkJPSBJT01VWF9QSU4oMHhmZiwgMjIxKSwKKwlNWDMxX1BJTl9DUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDIyMiksCisJTVgzMV9QSU5fQ1MxCQk9IElPTVVYX1BJTigweGZmLCAyMjMpLAorCU1YMzFfUElOX0NTMAkJPSBJT01VWF9QSU4oMHhmZiwgMjI0KSwKKwlNWDMxX1BJTl9PRQkJPSBJT01VWF9QSU4oMHhmZiwgMjI1KSwKKwlNWDMxX1BJTl9FQjEJCT0gSU9NVVhfUElOKDB4ZmYsIDIyNiksCisJTVgzMV9QSU5fRUIwCQk9IElPTVVYX1BJTigweGZmLCAyMjcpLAorCU1YMzFfUElOX0RRTTMJCT0gSU9NVVhfUElOKDB4ZmYsIDIyOCksCisJTVgzMV9QSU5fRFFNMgkJPSBJT01VWF9QSU4oMHhmZiwgMjI5KSwKKwlNWDMxX1BJTl9EUU0xCQk9IElPTVVYX1BJTigweGZmLCAyMzApLAorCU1YMzFfUElOX0RRTTAJCT0gSU9NVVhfUElOKDB4ZmYsIDIzMSksCisJTVgzMV9QSU5fU0QzMQkJPSBJT01VWF9QSU4oMHhmZiwgMjMyKSwKKwlNWDMxX1BJTl9TRDMwCQk9IElPTVVYX1BJTigweGZmLCAyMzMpLAorCU1YMzFfUElOX1NEMjkJCT0gSU9NVVhfUElOKDB4ZmYsIDIzNCksCisJTVgzMV9QSU5fU0QyOAkJPSBJT01VWF9QSU4oMHhmZiwgMjM1KSwKKwlNWDMxX1BJTl9TRDI3CQk9IElPTVVYX1BJTigweGZmLCAyMzYpLAorCU1YMzFfUElOX1NEMjYJCT0gSU9NVVhfUElOKDB4ZmYsIDIzNyksCisJTVgzMV9QSU5fU0QyNQkJPSBJT01VWF9QSU4oMHhmZiwgMjM4KSwKKwlNWDMxX1BJTl9TRDI0CQk9IElPTVVYX1BJTigweGZmLCAyMzkpLAorCU1YMzFfUElOX1NEMjMJCT0gSU9NVVhfUElOKDB4ZmYsIDI0MCksCisJTVgzMV9QSU5fU0QyMgkJPSBJT01VWF9QSU4oMHhmZiwgMjQxKSwKKwlNWDMxX1BJTl9TRDIxCQk9IElPTVVYX1BJTigweGZmLCAyNDIpLAorCU1YMzFfUElOX1NEMjAJCT0gSU9NVVhfUElOKDB4ZmYsIDI0MyksCisJTVgzMV9QSU5fU0QxOQkJPSBJT01VWF9QSU4oMHhmZiwgMjQ0KSwKKwlNWDMxX1BJTl9TRDE4CQk9IElPTVVYX1BJTigweGZmLCAyNDUpLAorCU1YMzFfUElOX1NEMTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI0NiksCisJTVgzMV9QSU5fU0QxNgkJPSBJT01VWF9QSU4oMHhmZiwgMjQ3KSwKKwlNWDMxX1BJTl9TRDE1CQk9IElPTVVYX1BJTigweGZmLCAyNDgpLAorCU1YMzFfUElOX1NEMTQJCT0gSU9NVVhfUElOKDB4ZmYsIDI0OSksCisJTVgzMV9QSU5fU0QxMwkJPSBJT01VWF9QSU4oMHhmZiwgMjUwKSwKKwlNWDMxX1BJTl9TRDEyCQk9IElPTVVYX1BJTigweGZmLCAyNTEpLAorCU1YMzFfUElOX1NEMTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI1MiksCisJTVgzMV9QSU5fU0QxMAkJPSBJT01VWF9QSU4oMHhmZiwgMjUzKSwKKwlNWDMxX1BJTl9TRDkJCT0gSU9NVVhfUElOKDB4ZmYsIDI1NCksCisJTVgzMV9QSU5fU0Q4CQk9IElPTVVYX1BJTigweGZmLCAyNTUpLAorCU1YMzFfUElOX1NENwkJPSBJT01VWF9QSU4oMHhmZiwgMjU2KSwKKwlNWDMxX1BJTl9TRDYJCT0gSU9NVVhfUElOKDB4ZmYsIDI1NyksCisJTVgzMV9QSU5fU0Q1CQk9IElPTVVYX1BJTigweGZmLCAyNTgpLAorCU1YMzFfUElOX1NENAkJPSBJT01VWF9QSU4oMHhmZiwgMjU5KSwKKwlNWDMxX1BJTl9TRDMJCT0gSU9NVVhfUElOKDB4ZmYsIDI2MCksCisJTVgzMV9QSU5fU0QyCQk9IElPTVVYX1BJTigweGZmLCAyNjEpLAorCU1YMzFfUElOX1NEMQkJPSBJT01VWF9QSU4oMHhmZiwgMjYyKSwKKwlNWDMxX1BJTl9TRDAJCT0gSU9NVVhfUElOKDB4ZmYsIDI2MyksCisJTVgzMV9QSU5fU0RCQTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI2NCksCisJTVgzMV9QSU5fU0RCQTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI2NSksCisJTVgzMV9QSU5fQTI1CQk9IElPTVVYX1BJTigweGZmLCAyNjYpLAorCU1YMzFfUElOX0EyNAkJPSBJT01VWF9QSU4oMHhmZiwgMjY3KSwKKwlNWDMxX1BJTl9BMjMJCT0gSU9NVVhfUElOKDB4ZmYsIDI2OCksCisJTVgzMV9QSU5fQTIyCQk9IElPTVVYX1BJTigweGZmLCAyNjkpLAorCU1YMzFfUElOX0EyMQkJPSBJT01VWF9QSU4oMHhmZiwgMjcwKSwKKwlNWDMxX1BJTl9BMjAJCT0gSU9NVVhfUElOKDB4ZmYsIDI3MSksCisJTVgzMV9QSU5fQTE5CQk9IElPTVVYX1BJTigweGZmLCAyNzIpLAorCU1YMzFfUElOX0ExOAkJPSBJT01VWF9QSU4oMHhmZiwgMjczKSwKKwlNWDMxX1BJTl9BMTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI3NCksCisJTVgzMV9QSU5fQTE2CQk9IElPTVVYX1BJTigweGZmLCAyNzUpLAorCU1YMzFfUElOX0ExNAkJPSBJT01VWF9QSU4oMHhmZiwgMjc2KSwKKwlNWDMxX1BJTl9BMTUJCT0gSU9NVVhfUElOKDB4ZmYsIDI3NyksCisJTVgzMV9QSU5fQTEzCQk9IElPTVVYX1BJTigweGZmLCAyNzgpLAorCU1YMzFfUElOX0ExMgkJPSBJT01VWF9QSU4oMHhmZiwgMjc5KSwKKwlNWDMxX1BJTl9BMTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MCksCisJTVgzMV9QSU5fTUExMAkJPSBJT01VWF9QSU4oMHhmZiwgMjgxKSwKKwlNWDMxX1BJTl9BMTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MiksCisJTVgzMV9QSU5fQTkJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MyksCisJTVgzMV9QSU5fQTgJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NCksCisJTVgzMV9QSU5fQTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NSksCisJTVgzMV9QSU5fQTYJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NiksCisJTVgzMV9QSU5fQTUJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NyksCisJTVgzMV9QSU5fQTQJCT0gSU9NVVhfUElOKDB4ZmYsIDI4OCksCisJTVgzMV9QSU5fQTMJCT0gSU9NVVhfUElOKDB4ZmYsIDI4OSksCisJTVgzMV9QSU5fQTIJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MCksCisJTVgzMV9QSU5fQTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MSksCisJTVgzMV9QSU5fQTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MiksCisJTVgzMV9QSU5fVlBHMQkJPSBJT01VWF9QSU4oMHhmZiwgMjkzKSwKKwlNWDMxX1BJTl9WUEcwCQk9IElPTVVYX1BJTigweGZmLCAyOTQpLAorCU1YMzFfUElOX0RWRlMxCQk9IElPTVVYX1BJTigweGZmLCAyOTUpLAorCU1YMzFfUElOX0RWRlMwCQk9IElPTVVYX1BJTigweGZmLCAyOTYpLAorCU1YMzFfUElOX1ZTVEJZCQk9IElPTVVYX1BJTigweGZmLCAyOTcpLAorCU1YMzFfUElOX1BPV0VSX0ZBSUwJPSBJT01VWF9QSU4oMHhmZiwgMjk4KSwKKwlNWDMxX1BJTl9DS0lMCQk9IElPTVVYX1BJTigweGZmLCAyOTkpLAorCU1YMzFfUElOX0JPT1RfTU9ERTQJPSBJT01VWF9QSU4oMHhmZiwgMzAwKSwKKwlNWDMxX1BJTl9CT09UX01PREUzCT0gSU9NVVhfUElOKDB4ZmYsIDMwMSksCisJTVgzMV9QSU5fQk9PVF9NT0RFMgk9IElPTVVYX1BJTigweGZmLCAzMDIpLAorCU1YMzFfUElOX0JPT1RfTU9ERTEJPSBJT01VWF9QSU4oMHhmZiwgMzAzKSwKKwlNWDMxX1BJTl9CT09UX01PREUwCT0gSU9NVVhfUElOKDB4ZmYsIDMwNCksCisJTVgzMV9QSU5fQ0xLTwkJPSBJT01VWF9QSU4oMHhmZiwgMzA1KSwKKwlNWDMxX1BJTl9QT1JfQgkJPSBJT01VWF9QSU4oMHhmZiwgMzA2KSwKKwlNWDMxX1BJTl9SRVNFVF9JTl9CCT0gSU9NVVhfUElOKDB4ZmYsIDMwNyksCisJTVgzMV9QSU5fQ0tJSAkJPSBJT01VWF9QSU4oMHhmZiwgMzA4KSwKKwlNWDMxX1BJTl9TSU1QRDAJCT0gSU9NVVhfUElOKDM1LCAgIDMwOSksCisJTVgzMV9QSU5fU1JYMAkJPSBJT01VWF9QSU4oMzQsICAgMzEwKSwKKwlNWDMxX1BJTl9TVFgwCQk9IElPTVVYX1BJTigzMywgICAzMTEpLAorCU1YMzFfUElOX1NWRU4wCQk9IElPTVVYX1BJTigzMiwgICAzMTIpLAorCU1YMzFfUElOX1NSU1QwCQk9IElPTVVYX1BJTig2NywgICAzMTMpLAorCU1YMzFfUElOX1NDTEswCQk9IElPTVVYX1BJTig2NiwgICAzMTQpLAorCU1YMzFfUElOX0dQSU8zXzEJPSBJT01VWF9QSU4oNjUsICAgMzE1KSwKKwlNWDMxX1BJTl9HUElPM18wCT0gSU9NVVhfUElOKDY0LCAgIDMxNiksCisJTVgzMV9QSU5fR1BJTzFfNgk9IElPTVVYX1BJTiggNiwgICAzMTcpLAorCU1YMzFfUElOX0dQSU8xXzUJPSBJT01VWF9QSU4oIDUsICAgMzE4KSwKKwlNWDMxX1BJTl9HUElPMV80CT0gSU9NVVhfUElOKCA0LCAgIDMxOSksCisJTVgzMV9QSU5fR1BJTzFfMwk9IElPTVVYX1BJTiggMywgICAzMjApLAorCU1YMzFfUElOX0dQSU8xXzIJPSBJT01VWF9QSU4oIDIsICAgMzIxKSwKKwlNWDMxX1BJTl9HUElPMV8xCT0gSU9NVVhfUElOKCAxLCAgIDMyMiksCisJTVgzMV9QSU5fR1BJTzFfMAk9IElPTVVYX1BJTiggMCwgICAzMjMpLAorCU1YMzFfUElOX1BXTU8JCT0gSU9NVVhfUElOKCA5LCAgIDMyNCksCisJTVgzMV9QSU5fV0FUQ0hET0dfUlNUCT0gSU9NVVhfUElOKDB4ZmYsIDMyNSksCisJTVgzMV9QSU5fQ09NUEFSRQk9IElPTVVYX1BJTiggOCwgICAzMjYpLAorCU1YMzFfUElOX0NBUFRVUkUJPSBJT01VWF9QSU4oIDcsICAgMzI3KSwKK307CisKKy8qCisgKiBDb252ZW5pZW5jZSB2YWx1ZXMgZm9yIHVzZSB3aXRoIG14Y19pb211eF9tb2RlKCkKKyAqCisgKiBGb3JtYXQgaGVyZSBpcyBNWDMxX1BJTl8ocGluIG5hbWUpX18oZnVuY3Rpb24pCisgKi8KKyNkZWZpbmUgTVgzMV9QSU5fQ1NQSTNfTU9TSV9fUlhEMwlJT01VWF9NT0RFKE1YMzFfUElOX0NTUEkzX01PU0ksIElPTVVYX0NPTkZJR19BTFQxKQorI2RlZmluZSBNWDMxX1BJTl9DU1BJM19NSVNPX19UWEQzCUlPTVVYX01PREUoTVgzMV9QSU5fQ1NQSTNfTUlTTywgSU9NVVhfQ09ORklHX0FMVDEpCisjZGVmaW5lIE1YMzFfUElOX0NUUzFfX0NUUzEJCUlPTVVYX01PREUoTVgzMV9QSU5fQ1RTMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1JUUzFfX1JUUzEJCUlPTVVYX01PREUoTVgzMV9QSU5fUlRTMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1RYRDFfX1RYRDEJCUlPTVVYX01PREUoTVgzMV9QSU5fVFhEMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1JYRDFfX1JYRDEJCUlPTVVYX01PREUoTVgzMV9QSU5fUlhEMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGNvbmZpZ3VyZXMgdGhlIHBhZCB2YWx1ZSBmb3IgYSBJT01VWCBwaW4uCisgKi8KK3ZvaWQgbXhjX2lvbXV4X3NldF9wYWQoZW51bSBpb211eF9waW5zLCB1MzIpOworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pcnFzLmgKaW5kZXggYjJjNTIwNS4uZjQxNjEzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaXJxcy5oCkBAIC0xMywxNyArMTMsNCBAQAogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKLSNkZWZpbmUgTVhDX0lSUV9UT19FWFBJTyhpcnEpCSgoaXJxKSAtIE1YQ19FWFBfSU9fQkFTRSkKLQotI2RlZmluZSBNWENfSVJRX1RPX0dQSU8oaXJxKQkoKGlycSkgLSBNWENfR1BJT19JTlRfQkFTRSkKLSNkZWZpbmUgTVhDX0dQSU9fVE9fSVJRKHgpCShNWENfR1BJT19JTlRfQkFTRSArIHgpCi0KLS8qIE51bWJlciBvZiBub3JtYWwgaW50ZXJydXB0cyAqLwotI2RlZmluZSBOUl9JUlFTCQkoTVhDX01BWF9JTlRfTElORVMgKyBcCi0JCQlNWENfTUFYX0dQSU9fTElORVMgKyBcCi0JCQlNWENfTUFYX1ZJUlRVQUxfSU5UUykKLQotLyogTnVtYmVyIG9mIGZhc3QgaW50ZXJydXB0cyAqLwotI2RlZmluZSBOUl9GSVFTCQlNWENfTUFYX0lOVFMKLQogI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0lSUVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgyNy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MjcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTJlY2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MjcuaApAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfTVgyN19IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfTVgyN19IX18KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19IQVJEV0FSRV9IX18KKyNlcnJvciAiRG8gbm90IGluY2x1ZGUgZGlyZWN0bHkuIgorI2VuZGlmCisKKy8qIElSQU0gKi8KKyNkZWZpbmUgSVJBTV9CQVNFX0FERFIgICAgICAgICAgMHhGRkZGNEMwMAkvKiBpbnRlcm5hbCByYW0gKi8KKworLyogUmVnaXN0ZXIgb2ZmZXN0cyAqLworI2RlZmluZSBBSVBJX0JBU0VfQUREUiAgICAgICAgICAweDEwMDAwMDAwCisjZGVmaW5lIEFJUElfQkFTRV9BRERSX1ZJUlQgICAgIDB4RjQwMDAwMDAKKyNkZWZpbmUgQUlQSV9TSVpFICAgICAgICAgICAgICAgU1pfMU0KKworI2RlZmluZSBETUFfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAxMDAwKQorI2RlZmluZSBXRE9HX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAyMDAwKQorI2RlZmluZSBHUFQxX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAzMDAwKQorI2RlZmluZSBHUFQyX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA0MDAwKQorI2RlZmluZSBHUFQzX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA1MDAwKQorI2RlZmluZSBQV01fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA2MDAwKQorI2RlZmluZSBSVENfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA3MDAwKQorI2RlZmluZSBLUFBfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA4MDAwKQorI2RlZmluZSBPV0lSRV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA5MDAwKQorI2RlZmluZSBVQVJUMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBBMDAwKQorI2RlZmluZSBVQVJUMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBCMDAwKQorI2RlZmluZSBVQVJUM19CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBDMDAwKQorI2RlZmluZSBVQVJUNF9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBEMDAwKQorI2RlZmluZSBDU1BJMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBFMDAwKQorI2RlZmluZSBDU1BJMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBGMDAwKQorI2RlZmluZSBTU0kxX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEwMDAwKQorI2RlZmluZSBTU0kyX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDExMDAwKQorI2RlZmluZSBJMkNfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEyMDAwKQorI2RlZmluZSBTREhDMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEzMDAwKQorI2RlZmluZSBTREhDMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE0MDAwKQorI2RlZmluZSBHUElPX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE1MDAwKQorI2RlZmluZSBBVURNVVhfQkFTRV9BRERSICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE2MDAwKQorCisjZGVmaW5lIENTUEkzX0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTcwMDApCisjZGVmaW5lIE1TSENfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTgwMDApCisjZGVmaW5lIEdQVDVfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTkwMDApCisjZGVmaW5lIEdQVDRfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUEwMDApCisjZGVmaW5lIFVBUlQ1X0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUIwMDApCisjZGVmaW5lIFVBUlQ2X0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUMwMDApCisjZGVmaW5lIEkyQzJfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUQwMDApCisjZGVmaW5lIFNESEMzX0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUUwMDApCisjZGVmaW5lIEdQVDZfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUYwMDApCisKKyNkZWZpbmUgTENEQ19CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMTAwMCkKKyNkZWZpbmUgU0xDRENfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMjAwMCkKKyNkZWZpbmUgVlBVX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMzAwMCkKKyNkZWZpbmUgVVNCT1RHX0JBU0VfQUREUiAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNDAwMCkKKy8qIGZvciBteDI3Ki8KKyNkZWZpbmUgT1RHX0JBU0VfQUREUiAgICAgICAgICAgVVNCT1RHX0JBU0VfQUREUgorI2RlZmluZSBTQUhBUkFfQkFTRV9BRERSICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI1MDAwKQorI2RlZmluZSBFTU1BX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI2NDAwKQorI2RlZmluZSBDQ01fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI3MDAwKQorI2RlZmluZSBTWVNDVFJMX0JBU0VfQUREUiAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI3ODAwKQorI2RlZmluZSBJSU1fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI4MDAwKQorCisjZGVmaW5lIFJUSUNfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkEwMDApCisjZGVmaW5lIEZFQ19CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkIwMDApCisjZGVmaW5lIFNDQ19CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkMwMDApCisjZGVmaW5lIEVUQl9CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0IwMDApCisjZGVmaW5lIEVUQl9SQU1fQkFTRV9BRERSICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0MwMDApCisKKyNkZWZpbmUgSkFNX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgzRTAwMCkKKyNkZWZpbmUgTUFYX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgzRjAwMCkKKworLyogUk9NUCBhbmQgQVZJQyAqLworI2RlZmluZSBST01QX0JBU0VfQUREUiAgICAgICAgICAweDEwMDQxMDAwCisKKyNkZWZpbmUgQVZJQ19CQVNFX0FERFIgICAgICAgICAgMHgxMDA0MDAwMAorCisjZGVmaW5lIFNBSEIxX0JBU0VfQUREUiAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgU0FIQjFfQkFTRV9BRERSX1ZJUlQgICAgMHhGNDEwMDAwMAorI2RlZmluZSBTQUhCMV9TSVpFICAgICAgICAgICAgICBTWl8xTQorCisjZGVmaW5lIENTSV9CQVNFX0FERFIgICAgICAgICAgIChTQUhCMV9CQVNFX0FERFIgKyAweDAwMDApCisjZGVmaW5lIEFUQV9CQVNFX0FERFIgICAgICAgICAgIChTQUhCMV9CQVNFX0FERFIgKyAweDEwMDApCisKKy8qIE5BTkQsIFNEUkFNLCBXRUlNLCBNM0lGLCBFTUkgY29udHJvbGxlcnMgKi8KKyNkZWZpbmUgWF9NRU1DX0JBU0VfQUREUiAgICAgICAgMHhEODAwMDAwMAorI2RlZmluZSBYX01FTUNfQkFTRV9BRERSX1ZJUlQgICAweEY0MjAwMDAwCisjZGVmaW5lIFhfTUVNQ19TSVpFICAgICAgICAgICAgIFNaXzFNCisKKyNkZWZpbmUgTkZDX0JBU0VfQUREUiAgICAgICAgICAgKFhfTUVNQ19CQVNFX0FERFIpCisjZGVmaW5lIFNEUkFNQ19CQVNFX0FERFIgICAgICAgIChYX01FTUNfQkFTRV9BRERSICsgMHgxMDAwKQorI2RlZmluZSBXRUlNX0JBU0VfQUREUiAgICAgICAgICAoWF9NRU1DX0JBU0VfQUREUiArIDB4MjAwMCkKKyNkZWZpbmUgTTNJRl9CQVNFX0FERFIgICAgICAgICAgKFhfTUVNQ19CQVNFX0FERFIgKyAweDMwMDApCisjZGVmaW5lIFBDTUNJQV9DVExfQkFTRV9BRERSICAgIChYX01FTUNfQkFTRV9BRERSICsgMHg0MDAwKQorCisvKiBNZW1vcnkgcmVnaW9ucyBhbmQgQ1MgKi8KKyNkZWZpbmUgU0RSQU1fQkFTRV9BRERSCQkweEEwMDAwMDAwCisjZGVmaW5lIENTRDFfQkFTRV9BRERSCQkweEIwMDAwMDAwCisKKyNkZWZpbmUgQ1MwX0JBU0VfQUREUiAgICAgICAgICAgMHhDMDAwMDAwMAorI2RlZmluZSBDUzFfQkFTRV9BRERSICAgICAgICAgICAweEM4MDAwMDAwCisjZGVmaW5lIENTMl9CQVNFX0FERFIgICAgICAgICAgIDB4RDAwMDAwMDAKKyNkZWZpbmUgQ1MzX0JBU0VfQUREUiAgICAgICAgICAgMHhEMjAwMDAwMAorI2RlZmluZSBDUzRfQkFTRV9BRERSICAgICAgICAgICAweEQ0MDAwMDAwCisjZGVmaW5lIENTNV9CQVNFX0FERFIgICAgICAgICAgIDB4RDYwMDAwMDAKKyNkZWZpbmUgUENNQ0lBX01FTV9CQVNFX0FERFIgICAgMHhEQzAwMDAwMAorCisvKgorICogVGhpcyBtYWNybyBkZWZpbmVzIHRoZSBwaHlzaWNhbCB0byB2aXJ0dWFsIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHRoZQorICogcGVyaXBoZXJhbCBtb2R1bGVzLiBJdCBpcyB1c2VkIGJ5IHBhc3NpbmcgaW4gdGhlIHBoeXNpY2FsIGFkZHJlc3MgYXMgeAorICogYW5kIHJldHVybmluZyB0aGUgdmlydHVhbCBhZGRyZXNzLiBJZiB0aGUgcGh5c2ljYWwgYWRkcmVzcyBpcyBub3QgbWFwcGVkLAorICogaXQgcmV0dXJucyAweERFQURCRUVGCisgKi8KKyNkZWZpbmUgSU9fQUREUkVTUyh4KSAgIFwKKwkoKCh4ID49IEFJUElfQkFTRV9BRERSKSAmJiAoeCA8IChBSVBJX0JBU0VfQUREUiArIEFJUElfU0laRSkpKSA/IFwKKwkJQUlQSV9JT19BRERSRVNTKHgpIDogXAorCSgoeCA+PSBTQUhCMV9CQVNFX0FERFIpICYmICh4IDwgKFNBSEIxX0JBU0VfQUREUiArIFNBSEIxX1NJWkUpKSkgPyBcCisJCVNBSEIxX0lPX0FERFJFU1MoeCkgOiBcCisJKCh4ID49IFhfTUVNQ19CQVNFX0FERFIpICYmICh4IDwgKFhfTUVNQ19CQVNFX0FERFIgKyBYX01FTUNfU0laRSkpKSA/IFwKKwkJWF9NRU1DX0lPX0FERFJFU1MoeCkgOiAweERFQURCRUVGKQorCisvKiBkZWZpbmUgdGhlIGFkZHJlc3MgbWFwcGluZyBtYWNyb3M6IGluIHBoeXNpY2FsIGFkZHJlc3Mgb3JkZXIgKi8KKyNkZWZpbmUgQUlQSV9JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBBSVBJX0JBU0VfQUREUikgKyBBSVBJX0JBU0VfQUREUl9WSVJUKQorCisjZGVmaW5lIEFWSUNfSU9fQUREUkVTUyh4KQlBSVBJX0lPX0FERFJFU1MoeCkKKworI2RlZmluZSBTQUhCMV9JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBTQUhCMV9CQVNFX0FERFIpICsgU0FIQjFfQkFTRV9BRERSX1ZJUlQpCisKKyNkZWZpbmUgQ1M0X0lPX0FERFJFU1MoeCkgIFwKKwkoKCh4KSAtIENTNF9CQVNFX0FERFIpICsgQ1M0X0JBU0VfQUREUl9WSVJUKQorCisjZGVmaW5lIFhfTUVNQ19JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBYX01FTUNfQkFTRV9BRERSKSArIFhfTUVNQ19CQVNFX0FERFJfVklSVCkKKworI2RlZmluZSBQQ01DSUFfSU9fQUREUkVTUyh4KSBcCisJKCgoeCkgLSBYX01FTUNfQkFTRV9BRERSKSArIFhfTUVNQ19CQVNFX0FERFJfVklSVCkKKworLyogZml4ZWQgaW50ZXJycHV0IG51bWJlcnMgKi8KKyNkZWZpbmUgTVhDX0lOVF9DQ00JCTYzCisjZGVmaW5lIE1YQ19JTlRfSUlNCQk2MgorI2RlZmluZSBNWENfSU5UX0xDREMJCTYxCisjZGVmaW5lIE1YQ19JTlRfU0xDREMJCTYwCisjZGVmaW5lIE1YQ19JTlRfU0FIQVJBCQk1OQorI2RlZmluZSBNWENfSU5UX1NDQ19TQ00JCTU4CisjZGVmaW5lIE1YQ19JTlRfU0NDX1NNTgkJNTcKKyNkZWZpbmUgTVhDX0lOVF9VU0IzCQk1NgorI2RlZmluZSBNWENfSU5UX1VTQjIJCTU1CisjZGVmaW5lIE1YQ19JTlRfVVNCMQkJNTQKKyNkZWZpbmUgTVhDX0lOVF9WUFUJCTUzCisjZGVmaW5lIE1YQ19JTlRfRU1NQVBQCQk1MgorI2RlZmluZSBNWENfSU5UX0VNTUFQUlAJCTUxCisjZGVmaW5lIE1YQ19JTlRfRkVDCQk1MAorI2RlZmluZSBNWENfSU5UX1VBUlQ1CQk0OQorI2RlZmluZSBNWENfSU5UX1VBUlQ2CQk0OAorI2RlZmluZSBNWENfSU5UX0RNQUNIMTUJCTQ3CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxNAkJNDYKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDEzCQk0NQorI2RlZmluZSBNWENfSU5UX0RNQUNIMTIJCTQ0CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxMQkJNDMKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDEwCQk0MgorI2RlZmluZSBNWENfSU5UX0RNQUNIOQkJNDEKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDgJCTQwCisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g3CQkzOQorI2RlZmluZSBNWENfSU5UX0RNQUNINgkJMzgKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDUJCTM3CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g0CQkzNgorI2RlZmluZSBNWENfSU5UX0RNQUNIMwkJMzUKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDIJCTM0CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxCQkzMworI2RlZmluZSBNWENfSU5UX0RNQUNIMAkJMzIKKyNkZWZpbmUgTVhDX0lOVF9DU0kJCTMxCisjZGVmaW5lIE1YQ19JTlRfQVRBCQkzMAorI2RlZmluZSBNWENfSU5UX05BTkRGQwkJMjkKKyNkZWZpbmUgTVhDX0lOVF9QQ01DSUEJCTI4CisjZGVmaW5lIE1YQ19JTlRfV0RPRwkJMjcKKyNkZWZpbmUgTVhDX0lOVF9HUFQxCQkyNgorI2RlZmluZSBNWENfSU5UX0dQVDIJCTI1CisjZGVmaW5lIE1YQ19JTlRfR1BUMwkJMjQKKyNkZWZpbmUgTVhDX0lOVF9HUFQJCUlOVF9HUFQxCisjZGVmaW5lIE1YQ19JTlRfUFdNCQkyMworI2RlZmluZSBNWENfSU5UX1JUQwkJMjIKKyNkZWZpbmUgTVhDX0lOVF9LUFAJCTIxCisjZGVmaW5lIE1YQ19JTlRfVUFSVDEJCTIwCisjZGVmaW5lIE1YQ19JTlRfVUFSVDIJCTE5CisjZGVmaW5lIE1YQ19JTlRfVUFSVDMJCTE4CisjZGVmaW5lIE1YQ19JTlRfVUFSVDQJCTE3CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTEJCTE2CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTIJCTE1CisjZGVmaW5lIE1YQ19JTlRfU1NJMQkJMTQKKyNkZWZpbmUgTVhDX0lOVF9TU0kyCQkxMworI2RlZmluZSBNWENfSU5UX0kyQwkJMTIKKyNkZWZpbmUgTVhDX0lOVF9TREhDMQkJMTEKKyNkZWZpbmUgTVhDX0lOVF9TREhDMgkJMTAKKyNkZWZpbmUgTVhDX0lOVF9TREhDMwkJOQorI2RlZmluZSBNWENfSU5UX0dQSU8JCTgKKyNkZWZpbmUgTVhDX0lOVF9TREhDCQk3CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTMJCTYKKyNkZWZpbmUgTVhDX0lOVF9SVElDCQk1CisjZGVmaW5lIE1YQ19JTlRfR1BUNAkJNAorI2RlZmluZSBNWENfSU5UX0dQVDUJCTMKKyNkZWZpbmUgTVhDX0lOVF9HUFQ2CQkyCisjZGVmaW5lIE1YQ19JTlRfSTJDMgkJMQorCisvKiBmaXhlZCBETUEgcmVxdWVzdCBudW1iZXJzICovCisjZGVmaW5lIERNQV9SRVFfTkZDICAgICAgICAgICAgIDM3CisjZGVmaW5lIERNQV9SRVFfU0RIQzMgICAgICAgICAgIDM2CisjZGVmaW5lIERNQV9SRVFfVUFSVDZfUlggICAgICAgIDM1CisjZGVmaW5lIERNQV9SRVFfVUFSVDZfVFggICAgICAgIDM0CisjZGVmaW5lIERNQV9SRVFfVUFSVDVfUlggICAgICAgIDMzCisjZGVmaW5lIERNQV9SRVFfVUFSVDVfVFggICAgICAgIDMyCisjZGVmaW5lIERNQV9SRVFfQ1NJX1JYICAgICAgICAgIDMxCisjZGVmaW5lIERNQV9SRVFfQ1NJX1NUQVQgICAgICAgIDMwCisjZGVmaW5lIERNQV9SRVFfQVRBX1JDViAgICAgICAgIDI5CisjZGVmaW5lIERNQV9SRVFfQVRBX1RYICAgICAgICAgIDI4CisjZGVmaW5lIERNQV9SRVFfVUFSVDFfVFggICAgICAgIDI3CisjZGVmaW5lIERNQV9SRVFfVUFSVDFfUlggICAgICAgIDI2CisjZGVmaW5lIERNQV9SRVFfVUFSVDJfVFggICAgICAgIDI1CisjZGVmaW5lIERNQV9SRVFfVUFSVDJfUlggICAgICAgIDI0CisjZGVmaW5lIERNQV9SRVFfVUFSVDNfVFggICAgICAgIDIzCisjZGVmaW5lIERNQV9SRVFfVUFSVDNfUlggICAgICAgIDIyCisjZGVmaW5lIERNQV9SRVFfVUFSVDRfVFggICAgICAgIDIxCisjZGVmaW5lIERNQV9SRVFfVUFSVDRfUlggICAgICAgIDIwCisjZGVmaW5lIERNQV9SRVFfQ1NQSTFfVFggICAgICAgIDE5CisjZGVmaW5lIERNQV9SRVFfQ1NQSTFfUlggICAgICAgIDE4CisjZGVmaW5lIERNQV9SRVFfQ1NQSTJfVFggICAgICAgIDE3CisjZGVmaW5lIERNQV9SRVFfQ1NQSTJfUlggICAgICAgIDE2CisjZGVmaW5lIERNQV9SRVFfU1NJMV9UWDEgICAgICAgIDE1CisjZGVmaW5lIERNQV9SRVFfU1NJMV9SWDEgICAgICAgIDE0CisjZGVmaW5lIERNQV9SRVFfU1NJMV9UWDAgICAgICAgIDEzCisjZGVmaW5lIERNQV9SRVFfU1NJMV9SWDAgICAgICAgIDEyCisjZGVmaW5lIERNQV9SRVFfU1NJMl9UWDEgICAgICAgIDExCisjZGVmaW5lIERNQV9SRVFfU1NJMl9SWDEgICAgICAgIDEwCisjZGVmaW5lIERNQV9SRVFfU1NJMl9UWDAgICAgICAgIDkKKyNkZWZpbmUgRE1BX1JFUV9TU0kyX1JYMCAgICAgICAgOAorI2RlZmluZSBETUFfUkVRX1NESEMxICAgICAgICAgICA3CisjZGVmaW5lIERNQV9SRVFfU0RIQzIgICAgICAgICAgIDYKKyNkZWZpbmUgRE1BX1JFUV9NU0hDICAgICAgICAgICAgNAorI2RlZmluZSBETUFfUkVRX0VYVCAgICAgICAgICAgICAzCisjZGVmaW5lIERNQV9SRVFfQ1NQSTNfVFggICAgICAgIDIKKyNkZWZpbmUgRE1BX1JFUV9DU1BJM19SWCAgICAgICAgMQorCisvKiBzaWxpY29uIHJldmlzaW9ucyBzcGVjaWZpYyB0byBpLk1YMjcgKi8KKyNkZWZpbmUgQ0hJUF9SRVZfMV8wCQkweDAwCisjZGVmaW5lIENISVBfUkVWXzJfMAkJMHgwMQorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIGludCBteDI3X3JldmlzaW9uKHZvaWQpOworI2VuZGlmCisKKy8qIGdwaW8gYW5kIGdwaW8gYmFzZWQgaW50ZXJydXB0IGhhbmRsaW5nICovCisjZGVmaW5lIEdQSU9fRFIJCSAJMHgxQworI2RlZmluZSBHUElPX0dESVIJIAkweDAwCisjZGVmaW5lIEdQSU9fUFNSCSAJMHgyNAorI2RlZmluZSBHUElPX0lDUjEJIAkweDI4CisjZGVmaW5lIEdQSU9fSUNSMgkgCTB4MkMKKyNkZWZpbmUgR1BJT19JTVIJIAkweDMwCisjZGVmaW5lIEdQSU9fSVNSCSAJMHgzNAorI2RlZmluZSBHUElPX0lOVF9MT1dfTEVWCTB4MworI2RlZmluZSBHUElPX0lOVF9ISUdIX0xFVgkweDIKKyNkZWZpbmUgR1BJT19JTlRfUklTRV9FREdFIAkweDAKKyNkZWZpbmUgR1BJT19JTlRfRkFMTF9FREdFCTB4MQorI2RlZmluZSBHUElPX0lOVF9OT05FCQkweDQKKworLyogTWFuZGF0b3J5IGRlZmluZXMgdXNlZCBnbG9iYWxseSAqLworCisvKiB0aGlzIGlzIGFuIGkuTVgyNyBDUFUgKi8KKyNkZWZpbmUgY3B1X2lzX214MjcoKQkJKDEpCisKKy8qIHRoaXMgQ1BVIHN1cHBvcnRzIHVwIHRvIDE5MiBHUElPcyAoZG9uJ3QgZm9yZ2V0IHRoZSBiYXNlYm9hcmQhKSAqLworI2RlZmluZSBBUkNIX05SX0dQSU9TCQkoMTkyICsgMTYpCisKKy8qIE9TIGNsb2NrIHRpY2sgcmF0ZSAqLworI2RlZmluZSBDTE9DS19USUNLX1JBVEUgICAgICAgICAxMzMwMDAwMAorCisvKiBTdGFydCBvZiBSQU0gKi8KKyNkZWZpbmUgUEhZU19PRkZTRVQJCVNEUkFNX0JBU0VfQUREUgorCisvKiBtYXggaW50ZXJydXB0IGxpbmVzIGNvdW50ICovCisjZGVmaW5lIE5SX0lSUVMJCQkyNTYKKworLyogY291bnQgb2YgaW50ZXJuYWwgaW50ZXJydXB0IHNvdXJjZXMgKi8KKyNkZWZpbmUgTVhDX01BWF9JTlRfTElORVMJNjQKKworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX01YMjdfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgzMS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MzEuaAppbmRleCAzNmExYWY0Li5hNzM3M2U0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgzMS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teDMxLmgKQEAgLTMyMCw2ICszMjAsOCBAQAogI2RlZmluZSBNWENfTUFYX0dQSU9fTElORVMgICAgICAoR1BJT19OVU1fUElOICogR1BJT19QT1JUX05VTSkKICNkZWZpbmUgTVhDX01BWF9WSVJUVUFMX0lOVFMJMTYKIAorI2RlZmluZSBOUl9JUlFTIChNWENfTUFYX0lOVF9MSU5FUyArIE1YQ19NQVhfR1BJT19MSU5FUyArIE1YQ19NQVhfVklSVFVBTF9JTlRTKQorCiAvKiEKICAqIE51bWJlciBvZiBHUElPIHBvcnQgYXMgZGVmaW5lZCBpbiB0aGUgSUMgU3BlYwogICovCkBAIC0zNDcsNiArMzQ5LDI1IEBACiAjZGVmaW5lIFNZU1RFTV9SRVZfTUlOCQlDSElQX1JFVl8xXzAKICNkZWZpbmUgU1lTVEVNX1JFVl9OVU0JCTMKIAorLyogZ3BpbyBhbmQgZ3BpbyBiYXNlZCBpbnRlcnJ1cHQgaGFuZGxpbmcgKi8KKyNkZWZpbmUgR1BJT19EUgkJIAkweDAwCisjZGVmaW5lIEdQSU9fR0RJUgkgCTB4MDQKKyNkZWZpbmUgR1BJT19QU1IJIAkweDA4CisjZGVmaW5lIEdQSU9fSUNSMQkgCTB4MEMKKyNkZWZpbmUgR1BJT19JQ1IyCSAJMHgxMAorI2RlZmluZSBHUElPX0lNUgkgCTB4MTQKKyNkZWZpbmUgR1BJT19JU1IJIAkweDE4CisjZGVmaW5lIEdQSU9fSU5UX0xPV19MRVYJMHgwCisjZGVmaW5lIEdQSU9fSU5UX0hJR0hfTEVWCTB4MQorI2RlZmluZSBHUElPX0lOVF9SSVNFX0VER0UJMHgyCisjZGVmaW5lIEdQSU9fSU5UX0ZBTExfRURHRQkweDMKKyNkZWZpbmUgR1BJT19JTlRfTk9ORQkJMHg0CisKKy8qIE1hbmRhdG9yeSBkZWZpbmVzIHVzZWQgZ2xvYmFsbHkgKi8KKworLyogdGhpcyBDUFUgc3VwcG9ydHMgdXAgdG8gOTYgR1BJT3MgKi8KKyNkZWZpbmUgQVJDSF9OUl9HUElPUwkJOTYKKwogI2lmICFkZWZpbmVkKF9fQVNTRU1CTFlfXykgJiYgIWRlZmluZWQoX19NWENfQk9PVF9VTkNPTVBSRVNTKQogCiAvKiB0aGlzIGlzIGEgaS5NWDMxIENQVSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Yy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Yy5oCmluZGV4IDE0NmQzZjYuLjMzMmVkYTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXhjLmgKQEAgLTEsMTEgKzEsMjAgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKi8KLQotLyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19IX18KQEAgLTIwLDEzMyArMjksOCBAQAogIyBkZWZpbmUgY3B1X2lzX214MzEoKSAoMCkKICNlbmRpZgogCi0vKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBHUFQgIFJlZ2lzdGVyIGRlZmluaXRpb25zICAgICAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0jZGVmaW5lIE1YQ19HUFRfR1BUQ1IJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDAwKQotI2RlZmluZSBNWENfR1BUX0dQVFBSCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgwNCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRTUgkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUiArIDB4MDgpCi0jZGVmaW5lIE1YQ19HUFRfR1BUSVIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDBDKQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjEJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDEwKQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDE0KQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjMJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDE4KQotI2RlZmluZSBNWENfR1BUX0dQVElDUjEJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDFDKQotI2RlZmluZSBNWENfR1BUX0dQVElDUjIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDIwKQotI2RlZmluZSBNWENfR1BUX0dQVENOVAkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUiArIDB4MjQpCi0KLS8qIEdQVCBDb250cm9sIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBHUFRDUl9GTzMJCQkoMSA8PCAzMSkKLSNkZWZpbmUgR1BUQ1JfRk8yCQkJKDEgPDwgMzApCi0jZGVmaW5lIEdQVENSX0ZPMQkJCSgxIDw8IDI5KQotCi0jZGVmaW5lIEdQVENSX09NM19TSElGVAkJCTI2Ci0jZGVmaW5lIEdQVENSX09NM19NQVNLCQkJKDcgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfRElTQ09OTkVDVEVECQkoMCA8PCBHUFRDUl9PTTNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NM19UT0dHTEUJCSgxIDw8IEdQVENSX09NM19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00zX0NMRUFSCQkJKDIgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfU0VUCQkJKDMgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfR0VORVJBVEVfTE9XCQkoNyA8PCBHUFRDUl9PTTNfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfT00yX1NISUZUCQkJMjMKLSNkZWZpbmUgR1BUQ1JfT00yX01BU0sJCQkoNyA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9ESVNDT05ORUNURUQJCSgwIDw8IEdQVENSX09NMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00yX1RPR0dMRQkJKDEgPDwgR1BUQ1JfT00yX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTJfQ0xFQVIJCQkoMiA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9TRVQJCQkoMyA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9HRU5FUkFURV9MT1cJCSg3IDw8IEdQVENSX09NMl9TSElGVCkKLQotI2RlZmluZSBHUFRDUl9PTTFfU0hJRlQJCQkyMAotI2RlZmluZSBHUFRDUl9PTTFfTUFTSwkJCSg3IDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX0RJU0NPTk5FQ1RFRAkJKDAgPDwgR1BUQ1JfT00xX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTFfVE9HR0xFCQkoMSA8PCBHUFRDUl9PTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMV9DTEVBUgkJCSgyIDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX1NFVAkJCSgzIDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX0dFTkVSQVRFX0xPVwkJKDcgPDwgR1BUQ1JfT00xX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX0lNMl9TSElGVAkJCTE4Ci0jZGVmaW5lIEdQVENSX0lNMl9NQVNLCQkJKDMgPDwgR1BUQ1JfSU0yX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTJfQ0FQVFVSRV9ESVNBQkxFCSgwIDw8IEdQVENSX0lNMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0yX0NBUFRVUkVfUklTSU5HCSgxIDw8IEdQVENSX0lNMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0yX0NBUFRVUkVfRkFMTElORwkoMiA8PCBHUFRDUl9JTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMl9DQVBUVVJFX0JPVEgJCSgzIDw8IEdQVENSX0lNMl9TSElGVCkKLQotI2RlZmluZSBHUFRDUl9JTTFfU0hJRlQJCQkxNgotI2RlZmluZSBHUFRDUl9JTTFfTUFTSwkJCSgzIDw8IEdQVENSX0lNMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0xX0NBUFRVUkVfRElTQUJMRQkoMCA8PCBHUFRDUl9JTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMV9DQVBUVVJFX1JJU0lORwkoMSA8PCBHUFRDUl9JTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMV9DQVBUVVJFX0ZBTExJTkcJKDIgPDwgR1BUQ1JfSU0xX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTFfQ0FQVFVSRV9CT1RICQkoMyA8PCBHUFRDUl9JTTFfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfU1dSCQkJKDEgPDwgMTUpCi0jZGVmaW5lIEdQVENSX0ZSUgkJCSgxIDw8IDkpCi0KLSNkZWZpbmUgR1BUQ1JfQ0xLU1JDX1NISUZUCQk2Ci0jZGVmaW5lIEdQVENSX0NMS1NSQ19NQVNLCQkoNyA8PCBHUFRDUl9DTEtTUkNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19OT0NMT0NLCQkoMCA8PCBHUFRDUl9DTEtTUkNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19ISUdIRlJFUQkJKDIgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotI2RlZmluZSBHUFRDUl9DTEtTUkNfQ0xLSU4JCSgzIDw8IEdQVENSX0NMS1NSQ19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfQ0xLU1JDX0NMSzMySwkJKDcgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX1NUT1BFTgkJCSgxIDw8IDUpCi0jZGVmaW5lIEdQVENSX0RPWkVOCQkJKDEgPDwgNCkKLSNkZWZpbmUgR1BUQ1JfV0FJVEVOCQkJKDEgPDwgMykKLSNkZWZpbmUgR1BUQ1JfREJHRU4JCQkoMSA8PCAyKQotCi0jZGVmaW5lIEdQVENSX0VOTU9ECQkJKDEgPDwgMSkKLSNkZWZpbmUgR1BUQ1JfRU5BQkxFCQkJKDEgPDwgMCkKLQotI2RlZmluZSBHUFRTUl9PRjEJCQkoMSA8PCAwKQotI2RlZmluZSBHUFRTUl9PRjIJCQkoMSA8PCAxKQotI2RlZmluZSBHUFRTUl9PRjMJCQkoMSA8PCAyKQotI2RlZmluZSBHUFRTUl9JRjEJCQkoMSA8PCAzKQotI2RlZmluZSBHUFRTUl9JRjIJCQkoMSA8PCA0KQotI2RlZmluZSBHUFRTUl9ST1YJCQkoMSA8PCA1KQotCi0jZGVmaW5lIEdQVElSX09GMUlFCQkJR1BUU1JfT0YxCi0jZGVmaW5lIEdQVElSX09GMklFCQkJR1BUU1JfT0YyCi0jZGVmaW5lIEdQVElSX09GM0lFCQkJR1BUU1JfT0YzCi0jZGVmaW5lIEdQVElSX0lGMUlFCQkJR1BUU1JfSUYxCi0jZGVmaW5lIEdQVElSX0lGMklFCQkJR1BUU1JfSUYyCi0jZGVmaW5lIEdQVElSX1JPVklFCQkJR1BUU1JfUk9WCi0KLS8qCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEFWSUMgUmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLSNkZWZpbmUgQVZJQ19CQVNFCQlJT19BRERSRVNTKEFWSUNfQkFTRV9BRERSKQotI2RlZmluZSBBVklDX0lOVENOVEwJCShBVklDX0JBU0UgKyAweDAwKQkvKiBpbnQgY29udHJvbCByZWcgKi8KLSNkZWZpbmUgQVZJQ19OSU1BU0sJCShBVklDX0JBU0UgKyAweDA0KQkvKiBpbnQgbWFzayByZWcgKi8KLSNkZWZpbmUgQVZJQ19JTlRFTk5VTQkJKEFWSUNfQkFTRSArIDB4MDgpCS8qIGludCBlbmFibGUgbnVtYmVyIHJlZyAqLwotI2RlZmluZSBBVklDX0lOVERJU05VTQkJKEFWSUNfQkFTRSArIDB4MEMpCS8qIGludCBkaXNhYmxlIG51bWJlciByZWcgKi8KLSNkZWZpbmUgQVZJQ19JTlRFTkFCTEVICQkoQVZJQ19CQVNFICsgMHgxMCkJLyogaW50IGVuYWJsZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVEVOQUJMRUwJCShBVklDX0JBU0UgKyAweDE0KQkvKiBpbnQgZW5hYmxlIHJlZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19JTlRUWVBFSAkJKEFWSUNfQkFTRSArIDB4MTgpCS8qIGludCB0eXBlIHJlZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfSU5UVFlQRUwJCShBVklDX0JBU0UgKyAweDFDKQkvKiBpbnQgdHlwZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTcJKEFWSUNfQkFTRSArIDB4MjApCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDcgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNgkoQVZJQ19CQVNFICsgMHgyNCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNiAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFk1CShBVklDX0JBU0UgKyAweDI4KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw1ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTQJKEFWSUNfQkFTRSArIDB4MkMpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDQgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMwkoQVZJQ19CQVNFICsgMHgzMCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMyAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFkyCShBVklDX0JBU0UgKyAweDM0KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwyICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTEJKEFWSUNfQkFTRSArIDB4MzgpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDEgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMAkoQVZJQ19CQVNFICsgMHgzQykJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMCAqLwotI2RlZmluZSBBVklDX05JVkVDU1IJCShBVklDX0JBU0UgKyAweDQwKQkvKiBub3JtIGludCB2ZWN0b3Ivc3RhdHVzICovCi0jZGVmaW5lIEFWSUNfRklWRUNTUgkJKEFWSUNfQkFTRSArIDB4NDQpCS8qIGZhc3QgaW50IHZlY3Rvci9zdGF0dXMgKi8KLSNkZWZpbmUgQVZJQ19JTlRTUkNICQkoQVZJQ19CQVNFICsgMHg0OCkJLyogaW50IHNvdXJjZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVFNSQ0wJCShBVklDX0JBU0UgKyAweDRDKQkvKiBpbnQgc291cmNlIHJlZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19JTlRGUkNICQkoQVZJQ19CQVNFICsgMHg1MCkJLyogaW50IGZvcmNlIHJlZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfSU5URlJDTAkJKEFWSUNfQkFTRSArIDB4NTQpCS8qIGludCBmb3JjZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfTklQTkRICQkoQVZJQ19CQVNFICsgMHg1OCkJLyogbm9ybSBpbnQgcGVuZGluZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfTklQTkRMCQkoQVZJQ19CQVNFICsgMHg1QykJLyogbm9ybSBpbnQgcGVuZGluZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19GSVBOREgJCShBVklDX0JBU0UgKyAweDYwKQkvKiBmYXN0IGludCBwZW5kaW5nIGhpZ2ggKi8KLSNkZWZpbmUgQVZJQ19GSVBOREwJCShBVklDX0JBU0UgKyAweDY0KQkvKiBmYXN0IGludCBwZW5kaW5nIGxvdyAqLwotCi0jZGVmaW5lIFNZU1RFTV9QUkVWX1JFRwkJSU9fQUREUkVTUyhJSU1fQkFTRV9BRERSICsgMHgyMCkKLSNkZWZpbmUgU1lTVEVNX1NSRVZfUkVHCQlJT19BRERSRVNTKElJTV9CQVNFX0FERFIgKyAweDI0KQotI2RlZmluZSBJSU1fUFJPRF9SRVZfU0gJCTMKLSNkZWZpbmUgSUlNX1BST0RfUkVWX0xFTgk1CisjaWZuZGVmIENPTkZJR19NQUNIX01YMjcKKyMgZGVmaW5lIGNwdV9pc19teDI3KCkgKDApCisjZW5kaWYKIAogI2VuZGlmIC8qICBfX0FTTV9BUkNIX01YQ19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGNfdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGNfdGltZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2IxMWY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Y190aW1lci5oCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogbXhjX3RpbWVyLmgKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogUGxhdGZvcm0gaW5kZXBlbmRlbnQgKGkuTVgxLCBpLk1YMiwgaS5NWDMpIGRlZmluaXRpb24gZm9yIHRpbWVyIGhhbmRsaW5nLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fUExBVF9NWENfVElNRVJfSAorI2RlZmluZSBfX1BMQVRfTVhDX1RJTUVSX0gKKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCisjZGVmaW5lIFRJTUVSX0JBU0UJCUlPX0FERFJFU1MoVElNMV9CQVNFX0FERFIpCisjZGVmaW5lIFRJTUVSX0lOVEVSUlVQVAkJVElNMV9JTlQKKworI2RlZmluZSBUQ1RMX1ZBTAkJVENUTF9DTEtfUENMSzEKKyNkZWZpbmUgVENUTF9JUlFFTgkJKDE8PDQpCisjZGVmaW5lIFRDVExfRlJSCQkoMTw8OCkKKyNkZWZpbmUgVENUTF9DTEtfUENMSzEJCSgxPDwxKQorI2RlZmluZSBUQ1RMX0NMS19QQ0xLMV80CSgyPDwxKQorI2RlZmluZSBUQ1RMX0NMS19USU4JCSgzPDwxKQorI2RlZmluZSBUQ1RMX0NMS18zMgkJKDQ8PDEpCisKKyNkZWZpbmUgTVhDX1RDVEwgICAweDAwCisjZGVmaW5lIE1YQ19UUFJFUiAgMHgwNAorI2RlZmluZSBNWENfVENNUCAgIDB4MDgKKyNkZWZpbmUgTVhDX1RDUiAgICAweDBjCisjZGVmaW5lIE1YQ19UQ04gICAgMHgxMAorI2RlZmluZSBNWENfVFNUQVQgIDB4MTQKKyNkZWZpbmUgVFNUQVRfQ0FQVAkJKDE8PDEpCisjZGVmaW5lIFRTVEFUX0NPTVAJCSgxPDwwKQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9kaXNhYmxlKHZvaWQpCit7CisJdW5zaWduZWQgaW50IHRtcDsKKworCXRtcCA9IF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENUTCk7CisJX19yYXdfd3JpdGVsKHRtcCAmIH5UQ1RMX0lSUUVOLCBUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9lbmFibGUodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ1RMKSB8IFRDVExfSVJRRU4sCisJCQkJVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKK30KKworc3RhdGljIHZvaWQgZ3B0X2lycV9hY2tub3dsZWRnZSh2b2lkKQoreworCV9fcmF3X3dyaXRlbCgwLCBUSU1FUl9CQVNFICsgTVhDX1RTVEFUKTsKK30KKyNlbmRpZiAvKiBDT05GSUdfQVJDSF9JTVggKi8KKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBUSU1FUl9CQVNFCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSKQorI2RlZmluZSBUSU1FUl9JTlRFUlJVUFQJCU1YQ19JTlRfR1BUMQorCisjZGVmaW5lIE1YQ19UQ1RMICAgMHgwMAorI2RlZmluZSBUQ1RMX1ZBTAkJVENUTF9DTEtfUENMSzEKKyNkZWZpbmUgVENUTF9DTEtfUENMSzEJCSgxPDwxKQorI2RlZmluZSBUQ1RMX0NMS19QQ0xLMV80CSgyPDwxKQorI2RlZmluZSBUQ1RMX0lSUUVOCQkoMTw8NCkKKyNkZWZpbmUgVENUTF9GUlIJCSgxPDw4KQorI2RlZmluZSBNWENfVFBSRVIgIDB4MDQKKyNkZWZpbmUgTVhDX1RDTVAgICAweDA4CisjZGVmaW5lIE1YQ19UQ1IgICAgMHgwYworI2RlZmluZSBNWENfVENOICAgIDB4MTAKKyNkZWZpbmUgTVhDX1RTVEFUICAweDE0CisjZGVmaW5lIFRTVEFUX0NBUFQJCSgxPDwxKQorI2RlZmluZSBUU1RBVF9DT01QCQkoMTw8MCkKKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZGlzYWJsZSh2b2lkKQoreworCXVuc2lnbmVkIGludCB0bXA7CisKKwl0bXAgPSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCV9fcmF3X3dyaXRlbCh0bXAgJiB+VENUTF9JUlFFTiwgVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZW5hYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENUTCkgfCBUQ1RMX0lSUUVOLAorCQkJCVRJTUVSX0JBU0UgKyBNWENfVENUTCk7Cit9CisKK3N0YXRpYyB2b2lkIGdwdF9pcnFfYWNrbm93bGVkZ2Uodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoVFNUQVRfQ0FQVCB8IFRTVEFUX0NPTVAsIFRJTUVSX0JBU0UgKyBNWENfVFNUQVQpOworfQorI2VuZGlmIC8qIENPTkZJR19BUkNIX01YMiAqLworCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgzCisjZGVmaW5lIFRJTUVSX0JBU0UJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIpCisjZGVmaW5lIFRJTUVSX0lOVEVSUlVQVAkJTVhDX0lOVF9HUFQKKworI2RlZmluZSBNWENfVENUTCAgIDB4MDAKKyNkZWZpbmUgVENUTF9WQUwJCShUQ1RMX0NMS19JUEcgfCBUQ1RMX1dBSVRFTikKKyNkZWZpbmUgVENUTF9DTEtfSVBHCQkoMTw8NikKKyNkZWZpbmUgVENUTF9GUlIJCSgxPDw5KQorI2RlZmluZSBUQ1RMX1dBSVRFTgkJKDE8PDMpCisKKyNkZWZpbmUgTVhDX1RQUkVSICAweDA0CisjZGVmaW5lIE1YQ19UU1RBVCAgMHgwOAorI2RlZmluZSBUU1RBVF9PRjEJCSgxPDwwKQorI2RlZmluZSBUU1RBVF9PRjIJCSgxPDwxKQorI2RlZmluZSBUU1RBVF9PRjMJCSgxPDwyKQorI2RlZmluZSBUU1RBVF9JRjEJCSgxPDwzKQorI2RlZmluZSBUU1RBVF9JRjIJCSgxPDw0KQorI2RlZmluZSBUU1RBVF9ST1YJCSgxPDw1KQorI2RlZmluZSBNWENfSVIgICAgIDB4MGMKKyNkZWZpbmUgTVhDX1RDTVAgICAweDEwCisjZGVmaW5lIE1YQ19UQ01QMiAgMHgxNAorI2RlZmluZSBNWENfVENNUDMgIDB4MTgKKyNkZWZpbmUgTVhDX1RDUiAgICAweDFjCisjZGVmaW5lIE1YQ19UQ04gICAgMHgyNAorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9kaXNhYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKDAsIFRJTUVSX0JBU0UgKyBNWENfSVIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9lbmFibGUodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoMTw8MCwgVElNRVJfQkFTRSArIE1YQ19JUik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBncHRfaXJxX2Fja25vd2xlZGdlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKFRTVEFUX09GMSwgVElNRVJfQkFTRSArIE1YQ19UU1RBVCk7Cit9CisjZW5kaWYgLyogQ09ORklHX0FSQ0hfTVgzICovCisKKyNkZWZpbmUgVENUTF9TV1IJCSgxPDwxNSkKKyNkZWZpbmUgVENUTF9DQwkJCSgxPDwxMCkKKyNkZWZpbmUgVENUTF9PTQkJCSgxPDw5KQorI2RlZmluZSBUQ1RMX0NBUF9SSVMJCSgxPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9GQUwJCSgyPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9SSVNfRkFMCSgzPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9FTkEJCSgxPDw1KQorI2RlZmluZSBUQ1RMX1RFTgkJKDE8PDApCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbnM5eHh4L2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaAppbmRleCAwYjdiMzQ2Li4wZGNhMTFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaApAQCAtNjYsMTMgKzY2LDEzIEBACiAJIF9fUkVHR0VUKHZhciwgcmVnICMjIF8gIyMgZmllbGQpIC8gX19SRUdTSElGVChyZWcgIyMgXyAjIyBmaWVsZCkKIAogIyAgZGVmaW5lIFJFR0dFVElNX0lEWCh2YXIsIHJlZywgZmllbGQsIGlkeCkJCQkJXAotCSBfX1JFR0dFVCh2YXIsIHJlZyAjIyBfICMjIGZpZWxkKChpZHgpKSkgLyAJCQlcCisJIF9fUkVHR0VUKHZhciwgcmVnICMjIF8gIyMgZmllbGQoKGlkeCkpKSAvCQkJXAogCSBfX1JFR1NISUZUKHJlZyAjIyBfICMjIGZpZWxkKChpZHgpKSkKIAogI2Vsc2UKIAogIyAgZGVmaW5lIF9fUkVHKHgpCWlvX3Aydih4KQotIyAgZGVmaW5lIF9fUkVHMih4LCB5KQlpb19wMnYoKHgpICsgKHkpKQorIyAgZGVmaW5lIF9fUkVHMih4LCB5KQlpb19wMnYoKHgpICsgNCAqICh5KSkKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtMjQzMHNkcC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKaW5kZXggZTljNjVjZS4uYzdkYjkwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKQEAgLTM2LDkgKzM2LDQgQEAKIAogI2RlZmluZSBUV0w0MDMwX0lSUU5VTQkJCUlOVF8yNFhYX1NZU19OSVJRCiAKLS8qIFRXTDQwMzAgUHJpbWFyeSBJbnRlcnJ1cHQgSGFuZGxlciAoUElIKSBpbnRlcnJ1cHRzICovCi0jZGVmaW5lIElIX1RXTDQwMzBfQkFTRQkJCUlIX0JPQVJEX0JBU0UKLSNkZWZpbmUgSUhfVFdMNDAzMF9FTkQJCQkoSUhfVFdMNDAzMF9CQVNFKzgpCi0jZGVmaW5lIE5SX0lSUVMJCQkJKElIX1RXTDQwMzBfRU5EKQotCiAjZW5kaWYgLyogX19BU01fQVJDSF9PTUFQXzI0MzBTRFBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1oMy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1oMy5oCmluZGV4IDBmNjQwNDQuLmM1ZDBmMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaDMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWgzLmgKQEAgLTMwLDEyICszMCw2IEBACiAvKiBJbiBPTUFQMTcxMCBIMyB0aGUgRXRoZXJuZXQgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIENTMSAqLwogI2RlZmluZSBPTUFQMTcxMF9FVEhSX1NUQVJUCQkweDA0MDAwMzAwCiAKLSNkZWZpbmUgTUFYSVJRTlVNCQkJKElIX0JPQVJEX0JBU0UpCi0jZGVmaW5lIE1BWEZJUU5VTQkJCU1BWElSUU5VTQotI2RlZmluZSBNQVhTV0lOVU0JCQlNQVhJUlFOVU0KLQotI2RlZmluZSBOUl9JUlFTCQkJCShNQVhJUlFOVU0gKyAxKQotCiBleHRlcm4gdm9pZCBoM19tbWNfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGgzX21tY19zbG90X2NvdmVyX2hhbmRsZXIodm9pZCAqYXJnLCBpbnQgc3RhdGUpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWlubm92YXRvci5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1pbm5vdmF0b3IuaAppbmRleCA1NmQyYzk4Li45Y2EwM2RlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWlubm92YXRvci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaW5ub3ZhdG9yLmgKQEAgLTM2LDkgKzM2LDYgQEAKICNkZWZpbmUgT01BUDE1MTBQMV9FTUlGU19QUklfVkFMVUUJCTB4MDAKICNkZWZpbmUgT01BUDE1MTBQMV9FTUlGRl9QUklfVkFMVUUJCTB4MDAKIAotI2RlZmluZSBOUl9GUEdBX0lSUVMJCTI0Ci0jZGVmaW5lIE5SX0lSUVMgICAgICAgICAgICAgICAgIChJSF9CT0FSRF9CQVNFICsgTlJfRlBHQV9JUlFTKQotCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogdm9pZCBmcGdhX3dyaXRlKHVuc2lnbmVkIGNoYXIgdmFsLCBpbnQgcmVnKTsKIHVuc2lnbmVkIGNoYXIgZnBnYV9yZWFkKGludCByZWcpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wZXJzZXVzMi5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wZXJzZXVzMi5oCmluZGV4IGViNzQ0MjAuLmQ3NDI5Y2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGVyc2V1czIuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLXBlcnNldXMyLmgKQEAgLTM2LDEwICszNiw0IEBACiAjZGVmaW5lIE9NQVBfU0RSQU1fREVWSUNFCQlEMjU2TV8xWDE2XzRCCiAjZW5kaWYKIAotI2RlZmluZSBNQVhJUlFOVU0JCUlIX0JPQVJEX0JBU0UKLSNkZWZpbmUgTUFYRklRTlVNCQlNQVhJUlFOVU0KLSNkZWZpbmUgTUFYU1dJTlVNCQlNQVhJUlFOVU0KLQotI2RlZmluZSBOUl9JUlFTCQkJKE1BWElSUU5VTSArIDEpCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jbG9jay5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jbG9jay5oCmluZGV4IDEyYTVlNGQuLjRjN2IzNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY2xvY2suaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2Nsb2NrLmgKQEAgLTMzLDEyICszMywyNCBAQAogCXZvaWQgX19pb21lbQkJKm11bHRfZGl2MV9yZWc7CiAJdTMyCQkJbXVsdF9tYXNrOwogCXUzMgkJCWRpdjFfbWFzazsKKwl1MTYJCQlsYXN0X3JvdW5kZWRfbTsKKwl1OAkJCWxhc3Rfcm91bmRlZF9uOworCXVuc2lnbmVkIGxvbmcJCWxhc3Rfcm91bmRlZF9yYXRlOworCXVuc2lnbmVkIGludAkJcmF0ZV90b2xlcmFuY2U7CisJdTE2CQkJbWF4X211bHRpcGxpZXI7CisJdTgJCQltYXhfZGl2aWRlcjsKKwl1MzIJCQltYXhfdG9sZXJhbmNlOwogIyAgaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKKwl1OAkJCW1vZGVzOwogCXZvaWQgX19pb21lbQkJKmNvbnRyb2xfcmVnOwogCXUzMgkJCWVuYWJsZV9tYXNrOwogCXU4CQkJYXV0b19yZWNhbF9iaXQ7CiAJdTgJCQlyZWNhbF9lbl9iaXQ7CiAJdTgJCQlyZWNhbF9zdF9iaXQ7CisJdm9pZCBfX2lvbWVtCQkqYXV0b2lkbGVfcmVnOworCXUzMgkJCWF1dG9pZGxlX21hc2s7CisJdm9pZCBfX2lvbWVtCQkqaWRsZXN0X3JlZzsKKwl1OAkJCWlkbGVzdF9iaXQ7CiAjICBlbmRpZgogfTsKIApAQCAtNjYsMTEgKzc4LDE0IEBACiAJdm9pZCBfX2lvbWVtCQkqY2xrc2VsX3JlZzsKIAl1MzIJCQljbGtzZWxfbWFzazsKIAljb25zdCBzdHJ1Y3QgY2xrc2VsCSpjbGtzZWw7Ci0JY29uc3Qgc3RydWN0IGRwbGxfZGF0YQkqZHBsbF9kYXRhOworCXN0cnVjdCBkcGxsX2RhdGEJKmRwbGxfZGF0YTsKICNlbHNlCiAJX191OAkJCXJhdGVfb2Zmc2V0OwogCV9fdTgJCQlzcmNfb2Zmc2V0OwogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfUE1fREVCVUcpICYmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQorCXN0cnVjdCBkZW50cnkJCSpkZW50OwkvKiBGb3IgdmlzaWJsZSB0cmVlIGhpZXJhcmNoeSAqLworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbW1vbi5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jb21tb24uaAppbmRleCAzNmEzYjYyLi44YWMwMzA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29tbW9uLmgKQEAgLTQ3LDggKzQ3LDIzIEBACiB9CiAjZW5kaWYKIAorLyogSU8gYmFzZXMgZm9yIHZhcmlvdXMgT01BUCBwcm9jZXNzb3JzICovCitzdHJ1Y3Qgb21hcF9nbG9iYWxzIHsKKwl2b2lkIF9faW9tZW0JKnRhcDsJCS8qIENvbnRyb2wgbW9kdWxlIElEIGNvZGUgKi8KKwl2b2lkIF9faW9tZW0JKnNkcmM7CQkvKiBTRFJBTSBDb250cm9sbGVyICovCisJdm9pZCBfX2lvbWVtCSpzbXM7CQkvKiBTRFJBTSBNZW1vcnkgU2NoZWR1bGVyICovCisJdm9pZCBfX2lvbWVtCSpjdHJsOwkJLyogU3lzdGVtIENvbnRyb2wgTW9kdWxlICovCisJdm9pZCBfX2lvbWVtCSpwcm07CQkvKiBQb3dlciBhbmQgUmVzZXQgTWFuYWdlbWVudCAqLworCXZvaWQgX19pb21lbQkqY207CQkvKiBDbG9jayBNYW5hZ2VtZW50ICovCit9OworCiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzI0Mngodm9pZCk7CiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzI0M3godm9pZCk7CiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzM0M3godm9pZCk7CiAKKy8qIFRoZXNlIGdldCBjYWxsZWQgZnJvbSBvbWFwMl9zZXRfZ2xvYmFsc194eHh4KCksIGRvIG5vdCBjYWxsIHRoZXNlICovCit2b2lkIG9tYXAyX3NldF9nbG9iYWxzX21lbW9yeShzdHJ1Y3Qgb21hcF9nbG9iYWxzICopOwordm9pZCBvbWFwMl9zZXRfZ2xvYmFsc19jb250cm9sKHN0cnVjdCBvbWFwX2dsb2JhbHMgKik7Cit2b2lkIG9tYXAyX3NldF9nbG9iYWxzX3ByY20oc3RydWN0IG9tYXBfZ2xvYmFscyAqKTsKKwogI2VuZGlmIC8qIF9fQVJDSF9BUk1fTUFDSF9PTUFQX0NPTU1PTl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbnRyb2wuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCmluZGV4IDU5YzA2ODYuLjk4NzU1M2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCkBAIC0xNjcsOCArMTY3LDcgQEAKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQotZXh0ZXJuIHZvaWQgb21hcF9jdHJsX2Jhc2Vfc2V0KHUzMiBiYXNlKTsKLWV4dGVybiB1MzIgb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpOworZXh0ZXJuIHZvaWQgX19pb21lbSAqb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpOwogZXh0ZXJuIHU4IG9tYXBfY3RybF9yZWFkYih1MTYgb2Zmc2V0KTsKIGV4dGVybiB1MTYgb21hcF9jdHJsX3JlYWR3KHUxNiBvZmZzZXQpOwogZXh0ZXJuIHUzMiBvbWFwX2N0cmxfcmVhZGwodTE2IG9mZnNldCk7CkBAIC0xNzYsNyArMTc1LDYgQEAKIGV4dGVybiB2b2lkIG9tYXBfY3RybF93cml0ZXcodTE2IHZhbCwgdTE2IG9mZnNldCk7CiBleHRlcm4gdm9pZCBvbWFwX2N0cmxfd3JpdGVsKHUzMiB2YWwsIHUxNiBvZmZzZXQpOwogI2Vsc2UKLSNkZWZpbmUgb21hcF9jdHJsX2Jhc2Vfc2V0KHgpCQlXQVJOX09OKDEpCiAjZGVmaW5lIG9tYXBfY3RybF9iYXNlX2dldCgpCQkwCiAjZGVmaW5lIG9tYXBfY3RybF9yZWFkYih4KQkJMAogI2RlZmluZSBvbWFwX2N0cmxfcmVhZHcoeCkJCTAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY3B1LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NwdS5oCmluZGV4IGU4YTRjZjUuLjUyZGIwOWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY3B1LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jcHUuaApAQCAtMyw3ICszLDcgQEAKICAqCiAgKiBPTUFQIGNwdSB0eXBlIGRldGVjdGlvbgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBOb2tpYSBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKgogICogV3JpdHRlbiBieSBUb255IExpbmRncmVuIDx0b255LmxpbmRncmVuQG5va2lhLmNvbT4KICAqCkBAIC0yNiw2ICsyNiwxMiBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX09NQVBfQ1BVX0gKICNkZWZpbmUgX19BU01fQVJDSF9PTUFQX0NQVV9ICiAKK3N0cnVjdCBvbWFwX2NoaXBfaWQgeworCXU4IG9jOworfTsKKworI2RlZmluZSBPTUFQX0NISVBfSU5JVCh4KQl7IC5vYyA9IHggfQorCiBleHRlcm4gdW5zaWduZWQgaW50IHN5c3RlbV9yZXY7CiAKICNkZWZpbmUgb21hcDJfY3B1X3JldigpCQkoKHN5c3RlbV9yZXYgPj4gMTIpICYgMHgwZikKQEAgLTM0NSw2ICszNTEsMzMgQEAKICNkZWZpbmUgT01BUDI0MzBfUkVWX0VTMV8wCTB4MjQzMDAwMDAKICNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMV8wCTB4MzQzMDAwMDAKICNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8wCTB4MzQzMDEwMDAKKyNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8xCTB4MzQzMDIwMDAKKyNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8yCTB4MzQzMDMwMDAKKworLyoKKyAqIG9tYXBfY2hpcCBiaXRzCisgKgorICogQ0hJUF9JU19PTUFQezI0MjAsMjQzMCwzNDMwfSBpbmRpY2F0ZSB0aGF0IGEgcGFydGljdWxhciBzdHJ1Y3R1cmUgaXMKKyAqIHZhbGlkIG9uIGFsbCBjaGlwcyBvZiB0aGF0IHR5cGUuICBDSElQX0lTX09NQVAzNDMwRVN7MSwyfSBpbmRpY2F0ZXMKKyAqIHNvbWV0aGluZyB0aGF0IGlzIG9ubHkgdmFsaWQgb24gdGhhdCBwYXJ0aWN1bGFyIEVTIHJldmlzaW9uLgorICoKKyAqIFRoZXNlIGJpdHMgbWF5IGJlIE9SZWQgdG9nZXRoZXIgdG8gaW5kaWNhdGUgc3RydWN0dXJlcyB0aGF0IGFyZQorICogYXZhaWxhYmxlIG9uIG11bHRpcGxlIGNoaXAgdHlwZXMuCisgKgorICogVG8gdGVzdCB3aGV0aGVyIGEgcGFydGljdWxhciBzdHJ1Y3R1cmUgbWF0Y2hlcyB0aGUgY3VycmVudCBPTUFQIGNoaXAgdHlwZSwKKyAqIHVzZSBvbWFwX2NoaXBfaXMoKS4KKyAqCisgKi8KKyNkZWZpbmUgQ0hJUF9JU19PTUFQMjQyMCAgICAgICAoMSA8PCAwKQorI2RlZmluZSBDSElQX0lTX09NQVAyNDMwICAgICAgICgxIDw8IDEpCisjZGVmaW5lIENISVBfSVNfT01BUDM0MzAgICAgICAgKDEgPDwgMikKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMzQzMEVTMSAgICAoMSA8PCAzKQorI2RlZmluZSBDSElQX0lTX09NQVAzNDMwRVMyICAgICgxIDw8IDQpCisKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMjRYWCAgICAgICAoQ0hJUF9JU19PTUFQMjQyMCB8IENISVBfSVNfT01BUDI0MzApCisKK2ludCBvbWFwX2NoaXBfaXMoc3RydWN0IG9tYXBfY2hpcF9pZCBvY2kpOworCiAKIC8qCiAgKiBNYWNybyB0byBkZXRlY3QgZGV2aWNlIHR5cGUgaS5lLiBFTVUvSFMvVFNUL0dQL0JBRApAQCAtMzYyLDYgKzM5NSw4IEBACiAjZGVmaW5lIGlzX2RldmljZV90eXBlX2dwKCkJKGdldF9kZXZpY2VfdHlwZSgpID09IERFVklDRV9UWVBFX0dQKQogI2RlZmluZSBpc19kZXZpY2VfdHlwZV9iYWQoKQkoZ2V0X2RldmljZV90eXBlKCkgPT0gREVWSUNFX1RZUEVfQkFEKQogCi0jZW5kaWYKK3ZvaWQgb21hcDJfY2hlY2tfcmV2aXNpb24odm9pZCk7CisKKyNlbmRpZiAgICAvKiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKSAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtYS5oCmluZGV4IDI0YWNmMDkuLmY0ZGNiOTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG1hLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9kbWEuaApAQCAtMjIsMTA4ICsyMiwxMjggQEAKICNkZWZpbmUgX19BU01fQVJDSF9ETUFfSAogCiAvKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAxICovCi0jZGVmaW5lIE9NQVBfRE1BX0JBU0UJCQkoMHhmZmZlZDgwMCkKLSNkZWZpbmUgT01BUF9ETUFfR0NSCQkJKE9NQVBfRE1BX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgT01BUF9ETUFfR1NDUgkJCShPTUFQX0RNQV9CQVNFICsgMHg0MDQpCi0jZGVmaW5lIE9NQVBfRE1BX0dSU1QJCQkoT01BUF9ETUFfQkFTRSArIDB4NDA4KQotI2RlZmluZSBPTUFQX0RNQV9IV19JRAkJCShPTUFQX0RNQV9CQVNFICsgMHg0NDIpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDJfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDQpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDBfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDYpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDFfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDgpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSEdfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NGEpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSERfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NGMpCi0jZGVmaW5lIE9NQVBfRE1BX0NBUFNfMF9VCQkoT01BUF9ETUFfQkFTRSArIDB4NDRlKQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzBfTAkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1MCkKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU18xX1UJCShPTUFQX0RNQV9CQVNFICsgMHg0NTIpCi0jZGVmaW5lIE9NQVBfRE1BX0NBUFNfMV9MCQkoT01BUF9ETUFfQkFTRSArIDB4NDU0KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzIJCQkoT01BUF9ETUFfQkFTRSArIDB4NDU2KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzMJCQkoT01BUF9ETUFfQkFTRSArIDB4NDU4KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzQJCQkoT01BUF9ETUFfQkFTRSArIDB4NDVhKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gyX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDYwKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gwX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDgwKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gxX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDgyKQotI2RlZmluZSBPTUFQX0RNQV9QQ0hEX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NGMwKQorI2RlZmluZSBPTUFQMV9ETUFfQkFTRQkJCSgweGZmZmVkODAwKQogCi0vKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAyICovCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKLSNkZWZpbmUgT01BUF9ETUE0X0JBU0UJCQkoTDRfMzRYWF9CQVNFICsgMHg1NjAwMCkKLSNlbHNlCS8qIENPTkZJR19BUkNIX09NQVAyICovCi0jZGVmaW5lIE9NQVBfRE1BNF9CQVNFCQkJKEw0XzI0WFhfQkFTRSArIDB4NTYwMDApCi0jZW5kaWYKKyNkZWZpbmUgT01BUDFfRE1BX0dDUgkJCTB4NDAwCisjZGVmaW5lIE9NQVAxX0RNQV9HU0NSCQkJMHg0MDQKKyNkZWZpbmUgT01BUDFfRE1BX0dSU1QJCQkweDQwOAorI2RlZmluZSBPTUFQMV9ETUFfSFdfSUQJCQkweDQ0MgorI2RlZmluZSBPTUFQMV9ETUFfUENIMl9JRAkJMHg0NDQKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDBfSUQJCTB4NDQ2CisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gxX0lECQkweDQ0OAorI2RlZmluZSBPTUFQMV9ETUFfUENIR19JRAkJMHg0NGEKKyNkZWZpbmUgT01BUDFfRE1BX1BDSERfSUQJCTB4NDRjCisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzBfVQkJMHg0NGUKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMF9MCQkweDQ1MAorI2RlZmluZSBPTUFQMV9ETUFfQ0FQU18xX1UJCTB4NDUyCisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzFfTAkJMHg0NTQKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMgkJMHg0NTYKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMwkJMHg0NTgKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfNAkJMHg0NWEKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDJfU1IJCTB4NDYwCisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gwX1NSCQkweDQ4MAorI2RlZmluZSBPTUFQMV9ETUFfUENIMV9TUgkJMHg0ODIKKyNkZWZpbmUgT01BUDFfRE1BX1BDSERfU1IJCTB4NGMwCiAKLSNkZWZpbmUgT01BUF9ETUE0X1JFVklTSU9OCQkoT01BUF9ETUE0X0JBU0UgKyAweDAwKQotI2RlZmluZSBPTUFQX0RNQTRfR0NSX1JFRwkJKE9NQVBfRE1BNF9CQVNFICsgMHg3OCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMAkJKE9NQVBfRE1BNF9CQVNFICsgMHgwOCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMQkJKE9NQVBfRE1BNF9CQVNFICsgMHgwYykKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMgkJKE9NQVBfRE1BNF9CQVNFICsgMHgxMCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMwkJKE9NQVBfRE1BNF9CQVNFICsgMHgxNCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMAkJKE9NQVBfRE1BNF9CQVNFICsgMHgxOCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMQkJKE9NQVBfRE1BNF9CQVNFICsgMHgxYykKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMgkJKE9NQVBfRE1BNF9CQVNFICsgMHgyMCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMwkJKE9NQVBfRE1BNF9CQVNFICsgMHgyNCkKLSNkZWZpbmUgT01BUF9ETUE0X1NZU1NUQVRVUwkJKE9NQVBfRE1BNF9CQVNFICsgMHgyOCkKLSNkZWZpbmUgT01BUF9ETUE0X09DUF9TWVNDT05GSUcJCShPTUFQX0RNQTRfQkFTRSArIDB4MmMpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzAJCShPTUFQX0RNQTRfQkFTRSArIDB4NjQpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzIJCShPTUFQX0RNQTRfQkFTRSArIDB4NmMpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzMJCShPTUFQX0RNQTRfQkFTRSArIDB4NzApCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzQJCShPTUFQX0RNQTRfQkFTRSArIDB4NzQpCisvKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAyIGFuZCBvbWFwMyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUE0X0JBU0UJCShMNF8yNFhYX0JBU0UgKyAweDU2MDAwKQorI2RlZmluZSBPTUFQMzRYWF9ETUE0X0JBU0UJCShMNF8zNFhYX0JBU0UgKyAweDU2MDAwKQogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKKyNkZWZpbmUgT01BUF9ETUE0X1JFVklTSU9OCQkweDAwCisjZGVmaW5lIE9NQVBfRE1BNF9HQ1IJCQkweDc4CisjZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDAJCTB4MDgKKyNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMQkJMHgwYworI2RlZmluZSBPTUFQX0RNQTRfSVJRU1RBVFVTX0wyCQkweDEwCisjZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDMJCTB4MTQKKyNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMAkJMHgxOAorI2RlZmluZSBPTUFQX0RNQTRfSVJRRU5BQkxFX0wxCQkweDFjCisjZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDIJCTB4MjAKKyNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMwkJMHgyNAorI2RlZmluZSBPTUFQX0RNQTRfU1lTU1RBVFVTCQkweDI4CisjZGVmaW5lIE9NQVBfRE1BNF9PQ1BfU1lTQ09ORklHCQkweDJjCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzAJCTB4NjQKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMgkJMHg2YworI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18zCQkweDcwCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzQJCTB4NzQKIAotI2RlZmluZSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UCTE3CisjZGVmaW5lIE9NQVAxX0xPR0lDQUxfRE1BX0NIX0NPVU5UCTE3CisjZGVmaW5lIE9NQVBfRE1BNF9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkzMgkvKiBSRVZJU0lUOiBJcyB0aGlzIDMyICsgMj8gKi8KIAogLyogQ29tbW9uIGNoYW5uZWwgc3BlY2lmaWMgcmVnaXN0ZXJzIGZvciBvbWFwMSAqLwotI2RlZmluZSBPTUFQX0RNQV9DU0RQX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MDApCi0jZGVmaW5lIE9NQVBfRE1BX0NDUl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDAyKQotI2RlZmluZSBPTUFQX0RNQV9DSUNSX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MDQpCi0jZGVmaW5lIE9NQVBfRE1BX0NTUl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDA2KQotI2RlZmluZSBPTUFQX0RNQV9DRU5fUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxMCkKLSNkZWZpbmUgT01BUF9ETUFfQ0ZOX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTIpCi0jZGVmaW5lIE9NQVBfRE1BX0NTRklfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxNCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NFSV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDE2KQotI2RlZmluZSBPTUFQX0RNQV9DU0FDX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTgpCi0jZGVmaW5lIE9NQVBfRE1BX0NEQUNfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxYSkKLSNkZWZpbmUgT01BUF9ETUFfQ0RFSV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDFjKQotI2RlZmluZSBPTUFQX0RNQV9DREZJX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MWUpCi0jZGVmaW5lIE9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MjgpCi0KLSNlbHNlCi0KLSNkZWZpbmUgT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkzMgkvKiBSRVZJU0lUOiBJcyB0aGlzIDMyICsgMj8gKi8KKyNkZWZpbmUgT01BUDFfRE1BX0NIX0JBU0UobikJCSgweDQwICogKG4pICsgMHgwMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTRFAobikJCSgweDQwICogKG4pICsgMHgwMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NDUihuKQkJKDB4NDAgKiAobikgKyAweDAyKQorI2RlZmluZSBPTUFQMV9ETUFfQ0lDUihuKQkJKDB4NDAgKiAobikgKyAweDA0KQorI2RlZmluZSBPTUFQMV9ETUFfQ1NSKG4pCQkoMHg0MCAqIChuKSArIDB4MDYpCisjZGVmaW5lIE9NQVAxX0RNQV9DRU4obikJCSgweDQwICogKG4pICsgMHgxMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NGTihuKQkJKDB4NDAgKiAobikgKyAweDEyKQorI2RlZmluZSBPTUFQMV9ETUFfQ1NGSShuKQkJKDB4NDAgKiAobikgKyAweDE0KQorI2RlZmluZSBPTUFQMV9ETUFfQ1NFSShuKQkJKDB4NDAgKiAobikgKyAweDE2KQorI2RlZmluZSBPTUFQMV9ETUFfQ1BDKG4pCQkoMHg0MCAqIChuKSArIDB4MTgpCS8qIDE1eHggb25seSAqLworI2RlZmluZSBPTUFQMV9ETUFfQ1NBQyhuKQkJKDB4NDAgKiAobikgKyAweDE4KQorI2RlZmluZSBPTUFQMV9ETUFfQ0RBQyhuKQkJKDB4NDAgKiAobikgKyAweDFhKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RFSShuKQkJKDB4NDAgKiAobikgKyAweDFjKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RGSShuKQkJKDB4NDAgKiAobikgKyAweDFlKQorI2RlZmluZSBPTUFQMV9ETUFfQ0xOS19DVFJMKG4pCQkoMHg0MCAqIChuKSArIDB4MjgpCiAKIC8qIENvbW1vbiBjaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBmb3Igb21hcDIgKi8KLSNkZWZpbmUgT01BUF9ETUFfQ0NSX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDgwKQotI2RlZmluZSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKG4pCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4NCkKLSNkZWZpbmUgT01BUF9ETUFfQ0lDUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4OCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NSX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDhjKQotI2RlZmluZSBPTUFQX0RNQV9DU0RQX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDkwKQotI2RlZmluZSBPTUFQX0RNQV9DRU5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4OTQpCi0jZGVmaW5lIE9NQVBfRE1BX0NGTl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg5OCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NFSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhNCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NGSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhOCkKLSNkZWZpbmUgT01BUF9ETUFfQ0RFSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhYykKLSNkZWZpbmUgT01BUF9ETUFfQ0RGSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiMCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NBQ19SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiNCkKLSNkZWZpbmUgT01BUF9ETUFfQ0RBQ19SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiOCkKLQotI2VuZGlmCisjZGVmaW5lIE9NQVBfRE1BNF9DSF9CQVNFKG4pCQkoMHg2MCAqIChuKSArIDB4ODApCisjZGVmaW5lIE9NQVBfRE1BNF9DQ1IobikJCSgweDYwICogKG4pICsgMHg4MCkKKyNkZWZpbmUgT01BUF9ETUE0X0NMTktfQ1RSTChuKQkJKDB4NjAgKiAobikgKyAweDg0KQorI2RlZmluZSBPTUFQX0RNQTRfQ0lDUihuKQkJKDB4NjAgKiAobikgKyAweDg4KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NSKG4pCQkoMHg2MCAqIChuKSArIDB4OGMpCisjZGVmaW5lIE9NQVBfRE1BNF9DU0RQKG4pCQkoMHg2MCAqIChuKSArIDB4OTApCisjZGVmaW5lIE9NQVBfRE1BNF9DRU4obikJCSgweDYwICogKG4pICsgMHg5NCkKKyNkZWZpbmUgT01BUF9ETUE0X0NGTihuKQkJKDB4NjAgKiAobikgKyAweDk4KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NFSShuKQkJKDB4NjAgKiAobikgKyAweGE0KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NGSShuKQkJKDB4NjAgKiAobikgKyAweGE4KQorI2RlZmluZSBPTUFQX0RNQTRfQ0RFSShuKQkJKDB4NjAgKiAobikgKyAweGFjKQorI2RlZmluZSBPTUFQX0RNQTRfQ0RGSShuKQkJKDB4NjAgKiAobikgKyAweGIwKQorI2RlZmluZSBPTUFQX0RNQTRfQ1NBQyhuKQkJKDB4NjAgKiAobikgKyAweGI0KQorI2RlZmluZSBPTUFQX0RNQTRfQ0RBQyhuKQkJKDB4NjAgKiAobikgKyAweGI4KQogCiAvKiBDaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBvbmx5IG9uIG9tYXAxICovCi0jZGVmaW5lIE9NQVAxX0RNQV9DU1NBX0xfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwOCkKLSNkZWZpbmUgT01BUDFfRE1BX0NTU0FfVV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDBhKQotI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9MX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MGMpCi0jZGVmaW5lIE9NQVAxX0RNQV9DRFNBX1VfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwZSkKLSNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX0xfUkVHKG4pCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDIwKQotI2RlZmluZSBPTUFQMV9ETUFfQ0NSMl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDI0KQotI2RlZmluZSBPTUFQMV9ETUFfQ09MT1JfVV9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MjIpCi0jZGVmaW5lIE9NQVAxX0RNQV9MQ0hfQ1RSTF9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MmEpCisjZGVmaW5lIE9NQVAxX0RNQV9DU1NBX0wobikJCSgweDQwICogKG4pICsgMHgwOCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTU0FfVShuKQkJKDB4NDAgKiAobikgKyAweDBhKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9MKG4pCQkoMHg0MCAqIChuKSArIDB4MGMpCisjZGVmaW5lIE9NQVAxX0RNQV9DRFNBX1UobikJCSgweDQwICogKG4pICsgMHgwZSkKKyNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX0wobikJCSgweDQwICogKG4pICsgMHgyMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX1UobikJCSgweDQwICogKG4pICsgMHgyMikKKyNkZWZpbmUgT01BUDFfRE1BX0NDUjIobikJCSgweDQwICogKG4pICsgMHgyNCkKKyNkZWZpbmUgT01BUDFfRE1BX0xDSF9DVFJMKG4pCQkoMHg0MCAqIChuKSArIDB4MmEpCS8qIG5vdCBvbiAxNXh4ICovCisjZGVmaW5lIE9NQVAxX0RNQV9DQ0VOKG4pCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9DQ0ZOKG4pCQkwCiAKIC8qIENoYW5uZWwgc3BlY2lmaWMgcmVnaXN0ZXJzIG9ubHkgb24gb21hcDIgKi8KLSNkZWZpbmUgT01BUDJfRE1BX0NTU0FfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4OWMpCi0jZGVmaW5lIE9NQVAyX0RNQV9DRFNBX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweGEwKQotI2RlZmluZSBPTUFQMl9ETUFfQ0NFTl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiYykKLSNkZWZpbmUgT01BUDJfRE1BX0NDRk5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YzApCi0jZGVmaW5lIE9NQVAyX0RNQV9DT0xPUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhjNCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTU0EobikJCSgweDYwICogKG4pICsgMHg5YykKKyNkZWZpbmUgT01BUF9ETUE0X0NEU0EobikJCSgweDYwICogKG4pICsgMHhhMCkKKyNkZWZpbmUgT01BUF9ETUE0X0NDRU4obikJCSgweDYwICogKG4pICsgMHhiYykKKyNkZWZpbmUgT01BUF9ETUE0X0NDRk4obikJCSgweDYwICogKG4pICsgMHhjMCkKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SKG4pCQkoMHg2MCAqIChuKSArIDB4YzQpCisKKy8qIER1bW15IGRlZmluZXMgdG8ga2VlcCBtdWx0aS1vbWFwIGNvbXBpbGVzIGhhcHB5ICovCisjZGVmaW5lIE9NQVAxX0RNQV9SRVZJU0lPTgkJMAorI2RlZmluZSBPTUFQMV9ETUFfSVJRU1RBVFVTX0wwCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9JUlFFTkFCTEVfTDAJCTAKKyNkZWZpbmUgT01BUDFfRE1BX09DUF9TWVNDT05GSUcJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0hXX0lECQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18wX0wJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMF9VCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzFfTAkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18xX1UJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0dTQ1IJCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DUEMobikJCTAKKworI2RlZmluZSBPTUFQX0RNQTRfTENIX0NUUkwobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SX0wobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SX1UobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NDUjIobikJCTAKKyNkZWZpbmUgT01BUDFfRE1BX0NTU0EobikJCTAKKyNkZWZpbmUgT01BUDFfRE1BX0NEU0EobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NTU0FfTChuKQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ1NTQV9VKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DRFNBX0wobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NEU0FfVShuKQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0xOTYsNjMgKzIxNiw5OCBAQAogI2RlZmluZSBPTUFQMjRYWF9ETUFfR1BNQwkJNAkvKiBTX0RNQV8zICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9HRlgJCTUJLyogU19ETUFfNCAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfRFNTCQk2CS8qIFNfRE1BXzUgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1ZMWU5RX1RYCQk3CS8qIFNfRE1BXzYgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX1ZMWU5RX1RYCQk3CS8qIFNfRE1BXzYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVEyCTcJLyogU19ETUFfNiAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfQ1dUCQk4CS8qIFNfRE1BXzcgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0FFU19UWAkJOQkvKiBTX0RNQV84ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9BRVNfUlgJCTEwCS8qIFNfRE1BXzkgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0RFU19UWAkJMTEJLyogU19ETUFfMTAgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0RFU19SWAkJMTIJLyogU19ETUFfMTEgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX1NIQTFNRDVfUlgJCTEzCS8qIFNfRE1BXzEyICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FWFRfRE1BUkVRMgkxNAkvKiBTX0RNQV8xMyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRVhUX0RNQVJFUTMJMTUJLyogU19ETUFfMTQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVE0CTE2CS8qIFNfRE1BXzE1ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQUNfUkQJCTE3CS8qIFNfRE1BXzE2ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQUNfV1IJCTE4CS8qIFNfRE1BXzE3ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfTURfVUxfUkQJMTkJLyogU19ETUFfMTggKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19NRF9VTF9XUgkyMAkvKiBTX0RNQV8xOSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX01EX0RMX1JECTIxCS8qIFNfRE1BXzIwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfTURfRExfV1IJMjIJLyogU19ETUFfMjEgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19CVF9VTF9SRAkyMwkvKiBTX0RNQV8yMiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX0JUX1VMX1dSCTI0CS8qIFNfRE1BXzIzICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQlRfRExfUkQJMjUJLyogU19ETUFfMjQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19CVF9ETF9XUgkyNgkvKiBTX0RNQV8yNSAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfU0hBMk1ENV9SWAkJMTMJLyogU19ETUFfMTIgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VYVF9ETUFSRVEyCTE0CS8qIFNfRE1BXzEzICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FWFRfRE1BUkVRMwkxNQkvKiBTX0RNQV8xNCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRVhUX0RNQVJFUTQJMTYJLyogU19ETUFfMTUgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19BQ19SRAkJMTcJLyogU19ETUFfMTYgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19BQ19XUgkJMTgJLyogU19ETUFfMTcgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19NRF9VTF9SRAkxOQkvKiBTX0RNQV8xOCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX01EX1VMX1dSCTIwCS8qIFNfRE1BXzE5ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfTURfRExfUkQJMjEJLyogU19ETUFfMjAgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19NRF9ETF9XUgkyMgkvKiBTX0RNQV8yMSAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX0JUX1VMX1JECTIzCS8qIFNfRE1BXzIyICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfQlRfVUxfV1IJMjQJLyogU19ETUFfMjMgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19CVF9ETF9SRAkyNQkvKiBTX0RNQV8yNCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX0JUX0RMX1dSCTI2CS8qIFNfRE1BXzI1ICovCisjZGVmaW5lIE9NQVAyNDNYX0RNQV9FWFRfRE1BUkVRMwkxNAkvKiBTX0RNQV8xMyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJM19UWDAJCTE1CS8qIFNfRE1BXzE0ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkzX1JYMAkJMTYJLyogU19ETUFfMTUgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQM19UWAkJMTcJLyogU19ETUFfMTYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQM19SWAkJMTgJLyogU19ETUFfMTcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNF9UWAkJMTkJLyogU19ETUFfMTggKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNF9SWAkJMjAJLyogU19ETUFfMTkgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNV9UWAkJMjEJLyogU19ETUFfMjAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNV9SWAkJMjIJLyogU19ETUFfMjEgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTNfVFgxCQkyMwkvKiBTX0RNQV8yMiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJM19SWDEJCTI0CS8qIFNfRE1BXzIzICovCisjZGVmaW5lIE9NQVAyNDNYX0RNQV9FWFRfRE1BUkVRNAkyNQkvKiBTX0RNQV8yNCAqLworI2RlZmluZSBPTUFQMjQzWF9ETUFfRVhUX0RNQVJFUTUJMjYJLyogU19ETUFfMjUgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0kyQzNfVFgJCTI1CS8qIFNfRE1BXzI0ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9JMkMzX1JYCQkyNgkvKiBTX0RNQV8yNSAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfSTJDMV9UWAkJMjcJLyogU19ETUFfMjYgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0kyQzFfUlgJCTI4CS8qIFNfRE1BXzI3ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9JMkMyX1RYCQkyOQkvKiBTX0RNQV8yOCAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfSTJDMl9SWAkJMzAJLyogU19ETUFfMjkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQMV9UWAkJMzEJLyogU0RNQV8zMCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYCQkzMgkvKiBTRE1BXzMxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgJCTMzCS8qIFNETUFfMzIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQMl9SWAkJMzQJLyogU0RNQV8zMyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDAJCTM1CS8qIFNETUFfMzQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgwCQkzNgkvKiBTRE1BXzM1ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMQkJMzcJLyogU0RNQV8zNiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDEJCTM4CS8qIFNETUFfMzcgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgyCQkzOQkvKiBTRE1BXzM4ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMgkJNDAJLyogU0RNQV8zOSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDMJCTQxCS8qIFNETUFfNDAgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgzCQk0MgkvKiBTRE1BXzQxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1RYMAkJNDMJLyogU0RNQV80MiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDAJCTQ0CS8qIFNETUFfNDMgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfVFgxCQk0NQkvKiBTRE1BXzQ0ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1JYMQkJNDYJLyogU0RNQV80NSAqLwotCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMV9UWAkJNDkJLyogU0RNQV80OCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDFfUlgJCTUwCS8qIFNETUFfNDkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQyX1RYCQk1MQkvKiBTRE1BXzUwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9SWAkJNTIJLyogU0RNQV81MSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDNfVFgJCTUzCS8qIFNETUFfNTIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQzX1JYCQk1NAkvKiBTRE1BXzUzICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDAJNTUJLyogU0RNQV81NCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgwCTU2CS8qIFNETUFfNTUgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMQk1NwkvKiBTRE1BXzU2ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDEJNTgJLyogU0RNQV81NyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgyCTU5CS8qIFNETUFfNTggKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMgk2MAkvKiBTRE1BXzU5ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1RYCQk2MQkvKiBTRE1BXzYwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1JYCQk2MgkvKiBTRE1BXzYxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NUwkJCTYzCS8qIFNETUFfNjIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVE1CTY0CS8qIFNfRE1BXzYzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgJCTMxCS8qIFNfRE1BXzMwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDFfUlgJCTMyCS8qIFNfRE1BXzMxICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgJCTMzCS8qIFNfRE1BXzMyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgJCTM0CS8qIFNfRE1BXzMzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMAkJMzUJLyogU19ETUFfMzQgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgwCQkzNgkvKiBTX0RNQV8zNSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDEJCTM3CS8qIFNfRE1BXzM2ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMQkJMzgJLyogU19ETUFfMzcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgyCQkzOQkvKiBTX0RNQV8zOCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDIJCTQwCS8qIFNfRE1BXzM5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMwkJNDEJLyogU19ETUFfNDAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgzCQk0MgkvKiBTX0RNQV80MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9UWDAJCTQzCS8qIFNfRE1BXzQyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1JYMAkJNDQJLyogU19ETUFfNDMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfVFgxCQk0NQkvKiBTX0RNQV80NCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDEJCTQ2CS8qIFNfRE1BXzQ1ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMyX1RYCQk0NwkvKiBTX0RNQV80NiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMl9SWAkJNDgJLyogU19ETUFfNDcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQxX1RYCQk0OQkvKiBTX0RNQV80OCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDFfUlgJCTUwCS8qIFNfRE1BXzQ5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9UWAkJNTEJLyogU19ETUFfNTAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQyX1JYCQk1MgkvKiBTX0RNQV81MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDNfVFgJCTUzCS8qIFNfRE1BXzUyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUM19SWAkJNTQJLyogU19ETUFfNTMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMAk1NQkvKiBTX0RNQV81NCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgwCTU2CS8qIFNfRE1BXzU1ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDEJNTcJLyogU19ETUFfNTYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMQk1OAkvKiBTX0RNQV81NyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgyCTU5CS8qIFNfRE1BXzU4ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDIJNjAJLyogU19ETUFfNTkgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01NQzFfVFgJCTYxCS8qIFNfRE1BXzYwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1JYCQk2MgkvKiBTX0RNQV82MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTVMJCQk2MwkvKiBTX0RNQV82MiAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRVhUX0RNQVJFUTUJNjQJLyogU19ETUFfNjMgKi8KKyNkZWZpbmUgT01BUDI0M1hfRE1BX0VYVF9ETUFSRVE2CTY0CS8qIFNfRE1BXzYzICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9FWFRfRE1BUkVRMwk2NAkvKiBTX0RNQV82MyAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfQUVTMl9UWAkJNjUJLyogU19ETUFfNjQgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0FFUzJfUlgJCTY2CS8qIFNfRE1BXzY1ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9ERVMyX1RYCQk2NwkvKiBTX0RNQV82NiAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfREVTMl9SWAkJNjgJLyogU19ETUFfNjcgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1NIQTFNRDVfUlgJCTY5CS8qIFNfRE1BXzY4ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9TUEk0X1RYMAkJNzAJLyogU19ETUFfNjkgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1NQSTRfUlgwCQk3MQkvKiBTX0RNQV83MCAqLworI2RlZmluZSBPTUFQMzRYWF9EU1NfRE1BMAkJNzIJLyogU19ETUFfNzEgKi8KKyNkZWZpbmUgT01BUDM0WFhfRFNTX0RNQTEJCTczCS8qIFNfRE1BXzcyICovCisjZGVmaW5lIE9NQVAzNFhYX0RTU19ETUEyCQk3NAkvKiBTX0RNQV83MyAqLworI2RlZmluZSBPTUFQMzRYWF9EU1NfRE1BMwkJNzUJLyogU19ETUFfNzQgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX01NQzNfVFgJCTc3CS8qIFNfRE1BXzc2ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9NTUMzX1JYCQk3OAkvKiBTX0RNQV83NyAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfVVNJTV9UWAkJNzkJLyogU19ETUFfNzggKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1VTSU1fUlgJCTgwCS8qIFNfRE1BXzc5ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTM1OCw2ICs0MTMsMTEgQEAKIAlPTUFQX0RNQV9EQVRBX0JVUlNUXzE2LAogfTsKIAorZW51bSBlbmRfdHlwZSB7CisJT01BUF9ETUFfTElUVExFX0VORElBTiA9IDAsCisJT01BUF9ETUFfQklHX0VORElBTgorfTsKKwogZW51bSBvbWFwX2RtYV9jb2xvcl9tb2RlIHsKIAlPTUFQX0RNQV9DT0xPUl9ESVMgPSAwLAogCU9NQVBfRE1BX0NPTlNUQU5UX0ZJTEwsCkBAIC0zNzAsMjQgKzQzMCwzNCBAQAogCU9NQVBfRE1BX1dSSVRFX0xBU1RfTk9OX1BPU1RFRAogfTsKIAorZW51bSBvbWFwX2RtYV9jaGFubmVsX21vZGUgeworCU9NQVBfRE1BX0xDSF8yRCA9IDAsCisJT01BUF9ETUFfTENIX0csCisJT01BUF9ETUFfTENIX1AsCisJT01BUF9ETUFfTENIX1BECit9OworCiBzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgewogCWludCBkYXRhX3R5cGU7CQkvKiBkYXRhIHR5cGUgOCwxNiwzMiAqLwogCWludCBlbGVtX2NvdW50OwkJLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgZnJhbWUgKi8KIAlpbnQgZnJhbWVfY291bnQ7CS8qIG51bWJlciBvZiBmcmFtZXMgaW4gYSBlbGVtZW50ICovCiAKIAlpbnQgc3JjX3BvcnQ7CQkvKiBPbmx5IG9uIE9NQVAxIFJFVklTSVQ6IElzIHRoaXMgbmVlZGVkPyAqLwotCWludCBzcmNfYW1vZGU7CQkvKiBjb25zdGFudCAsIHBvc3QgaW5jcmVtZW50LCBpbmRleGVkICwgZG91YmxlIGluZGV4ZWQgKi8KKwlpbnQgc3JjX2Ftb2RlOwkJLyogY29uc3RhbnQsIHBvc3QgaW5jcmVtZW50LCBpbmRleGVkLAorCQkJCQlkb3VibGUgaW5kZXhlZCAqLwogCXVuc2lnbmVkIGxvbmcgc3JjX3N0YXJ0OwkvKiBzb3VyY2UgYWRkcmVzcyA6IHBoeXNpY2FsICovCiAJaW50IHNyY19laTsJCS8qIHNvdXJjZSBlbGVtZW50IGluZGV4ICovCiAJaW50IHNyY19maTsJCS8qIHNvdXJjZSBmcmFtZSBpbmRleCAqLwogCiAJaW50IGRzdF9wb3J0OwkJLyogT25seSBvbiBPTUFQMSBSRVZJU0lUOiBJcyB0aGlzIG5lZWRlZD8gKi8KLQlpbnQgZHN0X2Ftb2RlOwkJLyogY29uc3RhbnQgLCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCAsIGRvdWJsZSBpbmRleGVkICovCisJaW50IGRzdF9hbW9kZTsJCS8qIGNvbnN0YW50LCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCwKKwkJCQkJZG91YmxlIGluZGV4ZWQgKi8KIAl1bnNpZ25lZCBsb25nIGRzdF9zdGFydDsJLyogc291cmNlIGFkZHJlc3MgOiBwaHlzaWNhbCAqLwogCWludCBkc3RfZWk7CQkvKiBzb3VyY2UgZWxlbWVudCBpbmRleCAqLwogCWludCBkc3RfZmk7CQkvKiBzb3VyY2UgZnJhbWUgaW5kZXggKi8KIAotCWludCB0cmlnZ2VyOwkJLyogdHJpZ2dlciBhdHRhY2hlZCBpZiB0aGUgY2hhbm5lbCBpcyBzeW5jaHJvbml6ZWQgKi8KKwlpbnQgdHJpZ2dlcjsJCS8qIHRyaWdnZXIgYXR0YWNoZWQgaWYgdGhlIGNoYW5uZWwgaXMKKwkJCQkJc3luY2hyb25pemVkICovCiAJaW50IHN5bmNfbW9kZTsJCS8qIHN5Y24gb24gZWxlbWVudCwgZnJhbWUgLCBibG9jayBvciBwYWNrZXQgKi8KIAlpbnQgc3JjX29yX2RzdF9zeW5jaDsJLyogc291cmNlIHN5bmNoKDEpIG9yIGRlc3RpbmF0aW9uIHN5bmNoKDApICovCiAKQEAgLTQwNCw4ICs0NzQsOCBAQAogCiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfcHJpb3JpdHkoaW50IGxjaCwgaW50IGRzdF9wb3J0LCBpbnQgcHJpb3JpdHkpOwogZXh0ZXJuIGludCBvbWFwX3JlcXVlc3RfZG1hKGludCBkZXZfaWQsIGNvbnN0IGNoYXIgKmRldl9uYW1lLAotCQkJICAgIHZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAotCQkJICAgIHZvaWQgKmRhdGEsIGludCAqZG1hX2NoKTsKKwkJCXZvaWQgKCpjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCisJCQl2b2lkICpkYXRhLCBpbnQgKmRtYV9jaCk7CiBleHRlcm4gdm9pZCBvbWFwX2VuYWJsZV9kbWFfaXJxKGludCBjaCwgdTE2IGlycV9iaXRzKTsKIGV4dGVybiB2b2lkIG9tYXBfZGlzYWJsZV9kbWFfaXJxKGludCBjaCwgdTE2IGlycV9iaXRzKTsKIGV4dGVybiB2b2lkIG9tYXBfZnJlZV9kbWEoaW50IGNoKTsKQEAgLTQxOCw2ICs0ODgsNyBAQAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX2NvbG9yX21vZGUoaW50IGxjaCwgZW51bSBvbWFwX2RtYV9jb2xvcl9tb2RlIG1vZGUsCiAJCQkJICAgIHUzMiBjb2xvcik7CiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfd3JpdGVfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX3dyaXRlX21vZGUgbW9kZSk7CitleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY2hhbm5lbF9tb2RlIG1vZGUpOwogCiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyhpbnQgbGNoLCBpbnQgc3JjX3BvcnQsIGludCBzcmNfYW1vZGUsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgc3JjX3N0YXJ0LApAQCAtNDM2LDIzICs1MDcsMjYgQEAKIAkJCQkJIGVudW0gb21hcF9kbWFfYnVyc3RfbW9kZSBidXJzdF9tb2RlKTsKIAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3BhcmFtcyhpbnQgbGNoLAotCQkJCXN0cnVjdCBvbWFwX2RtYV9jaGFubmVsX3BhcmFtcyAqIHBhcmFtcyk7CisJCQkJc3RydWN0IG9tYXBfZG1hX2NoYW5uZWxfcGFyYW1zICpwYXJhbXMpOwogCi1leHRlcm4gdm9pZCBvbWFwX2RtYV9saW5rX2xjaCAoaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKTsKLWV4dGVybiB2b2lkIG9tYXBfZG1hX3VubGlua19sY2ggKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSk7CitleHRlcm4gdm9pZCBvbWFwX2RtYV9saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpOworZXh0ZXJuIHZvaWQgb21hcF9kbWFfdW5saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpOwogCiBleHRlcm4gaW50IG9tYXBfc2V0X2RtYV9jYWxsYmFjayhpbnQgbGNoLAotCQkJdm9pZCAoKiBjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCisJCQl2b2lkICgqY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJdm9pZCAqZGF0YSk7CiBleHRlcm4gZG1hX2FkZHJfdCBvbWFwX2dldF9kbWFfc3JjX3BvcyhpbnQgbGNoKTsKIGV4dGVybiBkbWFfYWRkcl90IG9tYXBfZ2V0X2RtYV9kc3RfcG9zKGludCBsY2gpOwotZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfc3JjX2FkZHJfY291bnRlcihpbnQgbGNoKTsKIGV4dGVybiB2b2lkIG9tYXBfY2xlYXJfZG1hKGludCBsY2gpOworZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfYWN0aXZlX3N0YXR1cyhpbnQgbGNoKTsKIGV4dGVybiBpbnQgb21hcF9kbWFfcnVubmluZyh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXBfZG1hX3NldF9nbG9iYWxfcGFyYW1zKGludCBhcmJfcmF0ZSwgaW50IG1heF9maWZvX2RlcHRoLAogCQkJCSAgICAgICBpbnQgdHBhcmFtcyk7CiBleHRlcm4gaW50IG9tYXBfZG1hX3NldF9wcmlvX2xjaChpbnQgbGNoLCB1bnNpZ25lZCBjaGFyIHJlYWRfcHJpbywKIAkJCQkgdW5zaWduZWQgY2hhciB3cml0ZV9wcmlvKTsKK2V4dGVybiB2b2lkIG9tYXBfc2V0X2RtYV9kc3RfZW5kaWFuX3R5cGUoaW50IGxjaCwgZW51bSBlbmRfdHlwZSBldHlwZSk7CitleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfc3JjX2VuZGlhbl90eXBlKGludCBsY2gsIGVudW0gZW5kX3R5cGUgZXR5cGUpOworZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfaW5kZXgoaW50IGxjaCwgaW50ICplaSwgaW50ICpmaSk7CiAKIC8qIENoYWluaW5nIEFQSXMgKi8KICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKQEAgLTQ3OCw3ICs1NTIsNyBAQAogI2VuZGlmCiAKIC8qIExDRCBETUEgZnVuY3Rpb25zICovCi1leHRlcm4gaW50IG9tYXBfcmVxdWVzdF9sY2RfZG1hKHZvaWQgKCogY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpLAorZXh0ZXJuIGludCBvbWFwX3JlcXVlc3RfbGNkX2RtYSh2b2lkICgqY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJCXZvaWQgKmRhdGEpOwogZXh0ZXJuIHZvaWQgb21hcF9mcmVlX2xjZF9kbWEodm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwX3NldHVwX2xjZF9kbWEodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCmluZGV4IGZlZmIyNzYuLjAyYjI5ZTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCkBAIC02Niw2ICs2Niw3IEBACiAKIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfc291cmNlKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHNvdXJjZSk7CiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X2xvYWQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgYXV0b3JlbG9hZCwgdW5zaWduZWQgaW50IHZhbHVlKTsKK3ZvaWQgb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBhdXRvcmVsb2FkLCB1bnNpZ25lZCBpbnQgdmFsdWUpOwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9tYXRjaChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBlbmFibGUsIHVuc2lnbmVkIGludCBtYXRjaCk7CiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X3B3bShzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBkZWZfb24sIGludCB0b2dnbGUsIGludCB0cmlnZ2VyKTsKIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfcHJlc2NhbGVyKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHByZXNjYWxlcik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2ZwZ2EuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZnBnYS5oCmluZGV4IDZhODgzZTAuLmY0MjA4ODEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZnBnYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZnBnYS5oCkBAIC0xNjksMzAgKzE2OSwyOSBAQAogI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQQkJKElIX0dQSU9fQkFTRSArIDEzKQogCiAvKiBJUlEgTnVtYmVycyBmb3IgaW50ZXJydXB0cyBtdXhlZCB0aHJvdWdoIHRoZSBGUEdBICovCi0jZGVmaW5lIE9NQVAxNTEwX0lIX0ZQR0FfQkFTRQkJSUhfQk9BUkRfQkFTRQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9BVE4JCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAwKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9BQ0sJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAyKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTMJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAzKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTQJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA0KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTUJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA1KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTYJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA2KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTcJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA3KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTgJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA4KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTkJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyA5KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTEwCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTApCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTEJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxMSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDEyKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRVRIRVIJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxMykKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FVQVJUMQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE0KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQVVBUlQyCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTUpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1RTCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTYpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTcJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxNykKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQ0FNCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTgpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1JUQ19BCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTkpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1JUQ19CCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMjApCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0NECQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMjEpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMjIJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAyMikKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyMwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDIzKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9BVE4JCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAwKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9BQ0sJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAyKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTMJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAzKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTQJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA0KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTUJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA1KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTYJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA2KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTcJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA3KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTgJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA4KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTkJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyA5KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTEwCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTApCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTEJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxMSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDEyKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRVRIRVIJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxMykKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FVQVJUMQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE0KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQVVBUlQyCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTUpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1RTCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTYpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTcJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxNykKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQ0FNCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTgpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1JUQ19BCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTkpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX1JUQ19CCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMjApCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0NECQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMjEpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMjIJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAyMikKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyMwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDIzKQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaGFyZHdhcmUuaAppbmRleCA5MWQ4NWIzLi40NWZkZmNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9oYXJkd2FyZS5oCkBAIC0yODQsNiArMjg0LDcgQEAKICNpbmNsdWRlICJvbWFwMTUxMC5oIgogI2luY2x1ZGUgIm9tYXAyNHh4LmgiCiAjaW5jbHVkZSAib21hcDE2eHguaCIKKyNpbmNsdWRlICJvbWFwMzR4eC5oIgogCiAjaWZuZGVmIF9fQVNTRU1CTEVSX18KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pby5oCmluZGV4IDE2MDU3OGUuLjBiMTM1NTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lvLmgKQEAgLTYwLDYgKzYwLDcgQEAKICNkZWZpbmUgSU9fU0laRQkJMHg0MDAwMAogI2RlZmluZSBJT19WSVJUCQkoSU9fUEhZUyAtIElPX09GRlNFVCkKICNkZWZpbmUgSU9fQUREUkVTUyhwYSkJKChwYSkgLSBJT19PRkZTRVQpCisjZGVmaW5lIE9NQVAxX0lPX0FERFJFU1MocGEpCSgocGEpIC0gSU9fT0ZGU0VUKQogI2RlZmluZSBpb19wMnYocGEpCSgocGEpIC0gSU9fT0ZGU0VUKQogI2RlZmluZSBpb192MnAodmEpCSgodmEpICsgSU9fT0ZGU0VUKQogCkBAIC05MSw2ICs5Miw3IEBACiAKICNkZWZpbmUgSU9fT0ZGU0VUCTB4OTAwMDAwMDAKICNkZWZpbmUgSU9fQUREUkVTUyhwYSkJKChwYSkgKyBJT19PRkZTRVQpCS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KKyNkZWZpbmUgT01BUDJfSU9fQUREUkVTUyhwYSkJKChwYSkgKyBJT19PRkZTRVQpCS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KICNkZWZpbmUgaW9fcDJ2KHBhKQkoKHBhKSArIElPX09GRlNFVCkJLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogI2RlZmluZSBpb192MnAodmEpCSgodmEpIC0gSU9fT0ZGU0VUKQkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAKQEAgLTE0OCw2ICsxNTAsNyBAQAogCiAjZGVmaW5lIElPX09GRlNFVAkJMHg5MDAwMDAwMAogI2RlZmluZSBJT19BRERSRVNTKHBhKQkJKChwYSkgKyBJT19PRkZTRVQpLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLworI2RlZmluZSBPTUFQMl9JT19BRERSRVNTKHBhKQkoKHBhKSArIElPX09GRlNFVCkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAjZGVmaW5lIGlvX3AydihwYSkJCSgocGEpICsgSU9fT0ZGU0VUKS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KICNkZWZpbmUgaW9fdjJwKHZhKQkJKCh2YSkgLSBJT19PRkZTRVQpLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogCkBAIC0xODMsMzUgKzE4NiwxMiBAQAogI2RlZmluZSBvbWFwX3dyaXRldyh2LGEpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopSU9fQUREUkVTUyhhKSA9ICh2KSkKICNkZWZpbmUgb21hcF93cml0ZWwodixhKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgICAqKUlPX0FERFJFU1MoYSkgPSAodikpCiAKLS8qIDE2IGJpdCB1c2VzIExEUkgvU1RSSCwgYmFzZSArLy0gb2Zmc2V0XzggKi8KLXR5cGVkZWYgc3RydWN0IHsgdm9sYXRpbGUgdTE2IG9mZnNldFsyNTZdOyB9IF9fcmVnYmFzZTE2OwotI2RlZmluZSBfX1JFR1YxNih2YWRkcikJCSgoX19yZWdiYXNlMTYgKikoKHZhZGRyKSZ+MHhmZikpIFwKLQkJCQkJLT5vZmZzZXRbKCh2YWRkcikmMHhmZik+PjFdCi0jZGVmaW5lIF9fUkVHMTYocGFkZHIpICAgICAgICAgIF9fUkVHVjE2KGlvX3AydihwYWRkcikpCi0KLS8qIDgvMzIgYml0IHVzZXMgTERSL1NUUiwgYmFzZSArLy0gb2Zmc2V0XzEyICovCi10eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIHU4IG9mZnNldFs0MDk2XTsgfSBfX3JlZ2Jhc2U4OwotI2RlZmluZSBfX1JFR1Y4KHZhZGRyKQkJKChfX3JlZ2Jhc2U4ICAqKSgodmFkZHIpJn40MDk1KSkgXAotCQkJCQktPm9mZnNldFsoKHZhZGRyKSY0MDk1KT4+MF0KLSNkZWZpbmUgX19SRUc4KHBhZGRyKQkJX19SRUdWOChpb19wMnYocGFkZHIpKQotCi10eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIHUzMiBvZmZzZXRbNDA5Nl07IH0gX19yZWdiYXNlMzI7Ci0jZGVmaW5lIF9fUkVHVjMyKHZhZGRyKQkJKChfX3JlZ2Jhc2UzMiAqKSgodmFkZHIpJn40MDk1KSkgXAotCQkJCQktPm9mZnNldFsoKHZhZGRyKSY0MDk1KT4+Ml0KLSNkZWZpbmUgX19SRUczMihwYWRkcikJCV9fUkVHVjMyKGlvX3AydihwYWRkcikpCi0KIGV4dGVybiB2b2lkIG9tYXAxX21hcF9jb21tb25faW8odm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwMV9pbml0X2NvbW1vbl9odyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgb21hcDJfbWFwX2NvbW1vbl9pbyh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXAyX2luaXRfY29tbW9uX2h3KHZvaWQpOwogCi0jZWxzZQotCi0jZGVmaW5lIF9fUkVHOChwYWRkcikJCWlvX3AydihwYWRkcikKLSNkZWZpbmUgX19SRUcxNihwYWRkcikJCWlvX3AydihwYWRkcikKLSNkZWZpbmUgX19SRUczMihwYWRkcikJCWlvX3AydihwYWRkcikKLQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaAppbmRleCA4Nzk3MzY1Li43NDY0YzY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaApAQCAtMjg1LDcgKzI4NSw0MSBAQAogI2RlZmluZSBPTUFQX01BWF9HUElPX0xJTkVTCTE5MgogI2RlZmluZSBJSF9HUElPX0JBU0UJCSgxMjggKyBJSDJfQkFTRSkKICNkZWZpbmUgSUhfTVBVSU9fQkFTRQkJKE9NQVBfTUFYX0dQSU9fTElORVMgKyBJSF9HUElPX0JBU0UpCi0jZGVmaW5lIElIX0JPQVJEX0JBU0UJCSgxNiArIElIX01QVUlPX0JBU0UpCisjZGVmaW5lIE9NQVBfSVJRX0VORAkJKElIX01QVUlPX0JBU0UgKyAxNikKKworLyogRXh0ZXJuYWwgRlBHQSBoYW5kbGVzIGludGVycnVwdHMgb24gSW5ub3ZhdG9yIGJvYXJkcyAqLworI2RlZmluZQlPTUFQX0ZQR0FfSVJRX0JBU0UJKE9NQVBfSVJRX0VORCkKKyNpZmRlZglDT05GSUdfTUFDSF9PTUFQX0lOTk9WQVRPUgorI2RlZmluZSBPTUFQX0ZQR0FfTlJfSVJRUwkyNAorI2Vsc2UKKyNkZWZpbmUgT01BUF9GUEdBX05SX0lSUVMJMAorI2VuZGlmCisjZGVmaW5lIE9NQVBfRlBHQV9JUlFfRU5ECShPTUFQX0ZQR0FfSVJRX0JBU0UgKyBPTUFQX0ZQR0FfTlJfSVJRUykKKworLyogRXh0ZXJuYWwgVFdMNDAzMCBjYW4gaGFuZGxlIGludGVycnVwdHMgb24gMjQzMCBhbmQgMzR4eCBib2FyZHMgKi8KKyNkZWZpbmUJVFdMNDAzMF9JUlFfQkFTRQkoT01BUF9GUEdBX0lSUV9FTkQpCisjaWZkZWYJQ09ORklHX1RXTDQwMzBfQ09SRQorI2RlZmluZQlUV0w0MDMwX0JBU0VfTlJfSVJRUwk4CisjZGVmaW5lCVRXTDQwMzBfUFdSX05SX0lSUVMJOAorI2Vsc2UKKyNkZWZpbmUJVFdMNDAzMF9CQVNFX05SX0lSUVMJMAorI2RlZmluZQlUV0w0MDMwX1BXUl9OUl9JUlFTCTAKKyNlbmRpZgorI2RlZmluZSBUV0w0MDMwX0lSUV9FTkQJCShUV0w0MDMwX0lSUV9CQVNFICsgVFdMNDAzMF9CQVNFX05SX0lSUVMpCisjZGVmaW5lIFRXTDQwMzBfUFdSX0lSUV9CQVNFCVRXTDQwMzBfSVJRX0VORAorI2RlZmluZQlUV0w0MDMwX1BXUl9JUlFfRU5ECShUV0w0MDMwX1BXUl9JUlFfQkFTRSArIFRXTDQwMzBfUFdSX05SX0lSUVMpCisKKy8qIEV4dGVybmFsIFRXTDQwMzAgZ3BpbyBpbnRlcnJ1cHRzIGFyZSBvcHRpb25hbCAqLworI2RlZmluZSBUV0w0MDMwX0dQSU9fSVJRX0JBU0UJVFdMNDAzMF9QV1JfSVJRX0VORAorI2lmZGVmCUNPTkZJR19UV0w0MDMwX0dQSU8KKyNkZWZpbmUgVFdMNDAzMF9HUElPX05SX0lSUVMJMTgKKyNlbHNlCisjZGVmaW5lCVRXTDQwMzBfR1BJT19OUl9JUlFTCTAKKyNlbmRpZgorI2RlZmluZSBUV0w0MDMwX0dQSU9fSVJRX0VORAkoVFdMNDAzMF9HUElPX0lSUV9CQVNFICsgVFdMNDAzMF9HUElPX05SX0lSUVMpCisKKy8qIFRvdGFsIG51bWJlciBvZiBpbnRlcnJ1cHRzIGRlcGVuZHMgb24gdGhlIGVuYWJsZWQgYmxvY2tzIGFib3ZlICovCisjZGVmaW5lIE5SX0lSUVMJCQlUV0w0MDMwX0dQSU9fSVJRX0VORAogCiAjZGVmaW5lIE9NQVBfSVJRX0JJVChpcnEpCSgxIDw8ICgoaXJxKSAlIDMyKSkKIApAQCAtMjkzLDE0ICszMjcsNiBAQAogZXh0ZXJuIHZvaWQgb21hcF9pbml0X2lycSh2b2lkKTsKICNlbmRpZgogCi0vKgotICogVGhlIGRlZmluaXRpb24gb2YgTlJfSVJRUyBpcyBpbiBib2FyZC1zcGVjaWZpYyBoZWFkZXIgZmlsZSwgd2hpY2ggaXMKLSAqIGluY2x1ZGVkIHZpYSBoYXJkd2FyZS5oCi0gKi8KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAotI2lmbmRlZiBOUl9JUlFTCi0jZGVmaW5lIE5SX0lSUVMgICAgICAgICAgICAgICAgIElIX0JPQVJEX0JBU0UKLSNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvbWNic3AuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvbWNic3AuaAppbmRleCBjN2EwY2MxLi4yNmM3OGY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL21jYnNwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9tY2JzcC5oCkBAIC0yNCw3ICsyNCwxMSBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX09NQVBfTUNCU1BfSAogI2RlZmluZSBfX0FTTV9BUkNIX09NQVBfTUNCU1BfSAogCisjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgogCiAjZGVmaW5lIE9NQVA3MzBfTUNCU1AxX0JBU0UJMHhmZmZiMTAwMAogI2RlZmluZSBPTUFQNzMwX01DQlNQMl9CQVNFCTB4ZmZmYjE4MDAKQEAgLTQwLDYgKzQ0LDkgQEAKICNkZWZpbmUgT01BUDI0WFhfTUNCU1AxX0JBU0UJMHg0ODA3NDAwMAogI2RlZmluZSBPTUFQMjRYWF9NQ0JTUDJfQkFTRQkweDQ4MDc2MDAwCiAKKyNkZWZpbmUgT01BUDM0WFhfTUNCU1AxX0JBU0UJMHg0ODA3NDAwMAorI2RlZmluZSBPTUFQMzRYWF9NQ0JTUDJfQkFTRQkweDQ5MDIyMDAwCisKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNVhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNlhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVA3MzApCiAKICNkZWZpbmUgT01BUF9NQ0JTUF9SRUdfRFJSMgkweDAwCkBAIC03NCw3ICs4MSw4IEBACiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX1hDRVJHCTB4M0EKICNkZWZpbmUgT01BUF9NQ0JTUF9SRUdfWENFUkgJMHgzQwogCi0jZGVmaW5lIE9NQVBfTUFYX01DQlNQX0NPVU5UIDMKKyNkZWZpbmUgT01BUF9NQVhfTUNCU1BfQ09VTlQJMworI2RlZmluZSBNQVhfTUNCU1BfQ0xPQ0tTCTMKIAogI2RlZmluZSBBVURJT19NQ0JTUF9EQVRBV1JJVEUJKE9NQVAxNTEwX01DQlNQMV9CQVNFICsgT01BUF9NQ0JTUF9SRUdfRFhSMSkKICNkZWZpbmUgQVVESU9fTUNCU1BfREFUQVJFQUQJKE9NQVAxNTEwX01DQlNQMV9CQVNFICsgT01BUF9NQ0JTUF9SRUdfRFJSMSkKQEAgLTExNyw3ICsxMjUsOCBAQAogI2RlZmluZSBPTUFQX01DQlNQX1JFR19YQ0VSRwkweDc0CiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX1hDRVJICTB4NzgKIAotI2RlZmluZSBPTUFQX01BWF9NQ0JTUF9DT1VOVCAyCisjZGVmaW5lIE9NQVBfTUFYX01DQlNQX0NPVU5UCTIKKyNkZWZpbmUgTUFYX01DQlNQX0NMT0NLUwkyCiAKICNkZWZpbmUgQVVESU9fTUNCU1BfREFUQVdSSVRFCShPTUFQMjRYWF9NQ0JTUDJfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RYUjEpCiAjZGVmaW5lIEFVRElPX01DQlNQX0RBVEFSRUFECShPTUFQMjRYWF9NQ0JTUDJfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RSUjEpCkBAIC0yOTgsNiArMzA3LDU1IEBACiAJb21hcF9tY2JzcF93b3JkX2xlbmd0aAkJd29yZF9sZW5ndGg7CiB9OwogCisvKiBQbGF0Zm9ybSBzcGVjaWZpYyBjb25maWd1cmF0aW9uICovCitzdHJ1Y3Qgb21hcF9tY2JzcF9vcHMgeworCXZvaWQgKCpyZXF1ZXN0KSh1bnNpZ25lZCBpbnQpOworCXZvaWQgKCpmcmVlKSh1bnNpZ25lZCBpbnQpOworCWludCAoKmNoZWNrKSh1bnNpZ25lZCBpbnQpOworfTsKKworc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSB7CisJdTMyIHZpcnRfYmFzZTsKKwl1OCBkbWFfcnhfc3luYywgZG1hX3R4X3N5bmM7CisJdTE2IHJ4X2lycSwgdHhfaXJxOworCXN0cnVjdCBvbWFwX21jYnNwX29wcyAqb3BzOworCWNoYXIgY29uc3QgKmNsa19uYW1lOworfTsKKworc3RydWN0IG9tYXBfbWNic3AgeworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwl1MzIgaW9fYmFzZTsKKwl1OCBpZDsKKwl1OCBmcmVlOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCB0eF93b3JkX2xlbmd0aDsKKworCW9tYXBfbWNic3BfaW9fdHlwZV90IGlvX3R5cGU7IC8qIElSUSBvciBwb2xsICovCisJLyogSVJRIGJhc2VkIFRYL1JYICovCisJaW50IHJ4X2lycTsKKwlpbnQgdHhfaXJxOworCisJLyogRE1BIHN0dWZmICovCisJdTggZG1hX3J4X3N5bmM7CisJc2hvcnQgZG1hX3J4X2xjaDsKKwl1OCBkbWFfdHhfc3luYzsKKwlzaG9ydCBkbWFfdHhfbGNoOworCisJLyogQ29tcGxldGlvbiBxdWV1ZXMgKi8KKwlzdHJ1Y3QgY29tcGxldGlvbiB0eF9pcnFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiByeF9pcnFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiB0eF9kbWFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiByeF9kbWFfY29tcGxldGlvbjsKKworCS8qIFByb3RlY3QgdGhlIGZpZWxkIC5mcmVlLCB3aGlsZSBjaGVja2luZyBpZiB0aGUgbWNic3AgaXMgaW4gdXNlICovCisJc3BpbmxvY2tfdCBsb2NrOworCXN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgKnBkYXRhOworCXN0cnVjdCBjbGsgKmNsazsKK307CisKK2ludCBvbWFwX21jYnNwX2luaXQodm9pZCk7Cit2b2lkIG9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgKmNvbmZpZywKKwkJCQkJaW50IHNpemUpOwogdm9pZCBvbWFwX21jYnNwX2NvbmZpZyh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX3JlZ19jZmcgKiBjb25maWcpOwogaW50IG9tYXBfbWNic3BfcmVxdWVzdCh1bnNpZ25lZCBpbnQgaWQpOwogdm9pZCBvbWFwX21jYnNwX2ZyZWUodW5zaWduZWQgaW50IGlkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvb21hcDM0eHguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvb21hcDM0eHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTMwYzZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9vbWFwMzR4eC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL29tYXAzNHh4LmgKKyAqCisgKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHByb2Nlc3NvciBzcGVjaWZpYyBkZWZpbml0aW9ucyBvZiB0aGUgVEkgT01BUDM0WFguCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3IFRleGFzIEluc3RydW1lbnRzLgorICogQ29weXJpZ2h0IChDKSAyMDA3IE5va2lhIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfT01BUDM0WFhfSAorI2RlZmluZSBfX0FTTV9BUkNIX09NQVAzNFhYX0gKKworLyoKKyAqIFBsZWFzZSBwbGFjZSBvbmx5IGJhc2UgZGVmaW5lcyBoZXJlIGFuZCBwdXQgdGhlIHJlc3QgaW4gZGV2aWNlCisgKiBzcGVjaWZpYyBoZWFkZXJzLgorICovCisKKyNkZWZpbmUgTDRfMzRYWF9CQVNFCQkweDQ4MDAwMDAwCisjZGVmaW5lIEw0X1dLXzM0WFhfQkFTRQkJMHg0ODMwMDAwMAorI2RlZmluZSBMNF9XS19PTUFQX0JBU0UJCUw0X1dLXzM0WFhfQkFTRQorI2RlZmluZSBMNF9QRVJfMzRYWF9CQVNFCTB4NDkwMDAwMDAKKyNkZWZpbmUgTDRfUEVSX09NQVBfQkFTRQlMNF9QRVJfMzRYWF9CQVNFCisjZGVmaW5lIEw0X0VNVV8zNFhYX0JBU0UJMHg1NDAwMDAwMAorI2RlZmluZSBMNF9FTVVfQkFTRQkJTDRfRU1VXzM0WFhfQkFTRQorI2RlZmluZSBMM18zNFhYX0JBU0UJCTB4NjgwMDAwMDAKKyNkZWZpbmUgTDNfT01BUF9CQVNFCQlMM18zNFhYX0JBU0UKKworI2RlZmluZSBPTUFQMzQzMF8zMktTWU5DVF9CQVNFCTB4NDgzMjAwMDAKKyNkZWZpbmUgT01BUDM0MzBfQ01fQkFTRQkweDQ4MDA0ODAwCisjZGVmaW5lIE9NQVAzNDMwX1BSTV9CQVNFCTB4NDgzMDY4MDAKKyNkZWZpbmUgT01BUDM0M1hfU01TX0JBU0UJMHg2QzAwMDAwMAorI2RlZmluZSBPTUFQMzQzWF9TRFJDX0JBU0UJMHg2RDAwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9HUE1DX0JBU0UJMHg2RTAwMDAwMAorI2RlZmluZSBPTUFQMzQzWF9TQ01fQkFTRQkweDQ4MDAyMDAwCisjZGVmaW5lIE9NQVAzNDNYX0NUUkxfQkFTRQlPTUFQMzQzWF9TQ01fQkFTRQorCisjZGVmaW5lIE9NQVAzNFhYX0lDX0JBU0UJMHg0ODIwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9JVkFfSU5UQ19CQVNFCTB4NDAwMDAwMDAKKyNkZWZpbmUgT01BUDM0WFhfSFNVU0JfT1RHX0JBU0UJKEw0XzM0WFhfQkFTRSArIDB4QUIwMDApCisjZGVmaW5lIE9NQVAzNFhYX0hTVVNCX0hPU1RfQkFTRQkoTDRfMzRYWF9CQVNFICsgMHg2NDAwMCkKKyNkZWZpbmUgT01BUDM0WFhfVVNCVExMX0JBU0UJKEw0XzM0WFhfQkFTRSArIDB4NjIwMDApCisKKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0MzApCisKKyNkZWZpbmUgT01BUDJfMzJLU1lOQ1RfQkFTRQkJT01BUDM0MzBfMzJLU1lOQ1RfQkFTRQorI2RlZmluZSBPTUFQMl9DTV9CQVNFCQkJT01BUDM0MzBfQ01fQkFTRQorI2RlZmluZSBPTUFQMl9QUk1fQkFTRQkJCU9NQVAzNDMwX1BSTV9CQVNFCisjZGVmaW5lIE9NQVAyX1ZBX0lDX0JBU0UJCUlPX0FERFJFU1MoT01BUDM0WFhfSUNfQkFTRSkKKworI2VuZGlmCisKKyNkZWZpbmUgT01BUDM0WFhfRFNQX0JBU0UJMHg1ODAwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9EU1BfTUVNX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgwKQorI2RlZmluZSBPTUFQMzRYWF9EU1BfSVBJX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgxMDAwMDAwKQorI2RlZmluZSBPTUFQMzRYWF9EU1BfTU1VX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgyMDAwMDAwKQorI2VuZGlmIC8qIF9fQVNNX0FSQ0hfT01BUDM0WFhfSCAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3NyYW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCmluZGV4IGJiOWJiM2YuLmJlNTlmNGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCkBAIC0xMSw2ICsxMSw3IEBACiAjaWZuZGVmIF9fQVJDSF9BUk1fT01BUF9TUkFNX0gKICNkZWZpbmUgX19BUkNIX0FSTV9PTUFQX1NSQU1fSAogCitleHRlcm4gaW50IF9faW5pdCBvbWFwX3NyYW1faW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkICogb21hcF9zcmFtX3B1c2godm9pZCAqIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOwogZXh0ZXJuIHZvaWQgb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayh1MzIgZHBsbGN0bCwgdTMyIGNrY3RsKTsKIApAQCAtMjEsMTcgKzIyLDM1IEBACiBleHRlcm4gdTMyIG9tYXAyX3NldF9wcmNtKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLCBpbnQgYnlwYXNzKTsKIAogLyogRG8gbm90IHVzZSB0aGVzZSAqLwotZXh0ZXJuIHZvaWQgc3JhbV9yZXByb2dyYW1fY2xvY2sodTMyIGNrY3RsLCB1MzIgZHBsbGN0bCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3JlcHJvZ3JhbV9jbG9ja19zejsKK2V4dGVybiB2b2lkIG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrKHUzMiBja2N0bCwgdTMyIGRwbGxjdGwpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3o7CiAKLWV4dGVybiB2b2lkIHNyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKLQkJCSAgdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3JhbV9kZHJfaW5pdF9zejsKK2V4dGVybiB2b2lkIG9tYXAyNHh4X3NyYW1fcmVwcm9ncmFtX2Nsb2NrKHUzMiBja2N0bCwgdTMyIGRwbGxjdGwpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0eHhfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3o7CiAKLWV4dGVybiB1MzIgc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwgaW50IGJ5cGFzcyk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3NldF9wcmNtX3N6OworZXh0ZXJuIHZvaWQgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdCh1MzIgKnNsb3dfZGxsX2N0cmwsIHUzMiBmYXN0X2RsbF9jdHJsLAorCQkJCQkJdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zejsKIAotZXh0ZXJuIHZvaWQgc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsIHUzMiBtZW1fdHlwZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3JlcHJvZ3JhbV9zZHJjX3N6OworZXh0ZXJuIHUzMiBvbWFwMjQyeF9zcmFtX3NldF9wcmNtKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLAorCQkJCQkJaW50IGJ5cGFzcyk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6OworCitleHRlcm4gdm9pZCBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxsX3ZhbCwKKwkJCQkJCXUzMiBtZW1fdHlwZSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6OworCisKK2V4dGVybiB2b2lkIG9tYXAyNDN4X3NyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKKwkJCQkJCXUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3o7CisKK2V4dGVybiB1MzIgb21hcDI0M3hfc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwKKwkJCQkJCWludCBieXBhc3MpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zejsKKworZXh0ZXJuIHZvaWQgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsCisJCQkJCQl1MzIgbWVtX3R5cGUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyY19zejsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3RjLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3RjLmgKaW5kZXggOGRlZDIxOC4uNjVhOWM4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC90Yy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdGMuaApAQCAtNzUsMTYgKzc1LDE0IEBACiAjaWZuZGVmCV9fQVNTRU1CTEVSX18KIAogLyogRU1JRiBTbG93IEludGVyZmFjZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lCU9NQVBfRU1JRlNfQ09ORklHX1JFRwlfX1JFRzMyKEVNSUZTX0NPTkZJRykKLQogI2RlZmluZSBPTUFQX0VNSUZTX0NPTkZJR19GUgkJKDEgPDwgNCkKICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfUERFCQkoMSA8PCAzKQogI2RlZmluZSBPTUFQX0VNSUZTX0NPTkZJR19QV0RfRU4JKDEgPDwgMikKICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfQk0JCSgxIDw8IDEpCiAjZGVmaW5lIE9NQVBfRU1JRlNfQ09ORklHX1dQCQkoMSA8PCAwKQogCi0jZGVmaW5lIEVNSUZTX0NDUyhuKQkJX19SRUczMihFTUlGU19DUzBfQ09ORklHICsgKDQgKiAobikpKQotI2RlZmluZSBFTUlGU19BQ1MobikJCV9fUkVHMzIoRU1JRlNfQUNTMCArICg0ICogKG4pKSkKKyNkZWZpbmUgRU1JRlNfQ0NTKG4pCQkoRU1JRlNfQ1MwX0NPTkZJRyArICg0ICogKG4pKSkKKyNkZWZpbmUgRU1JRlNfQUNTKG4pCQkoRU1JRlNfQUNTMCArICg0ICogKG4pKSkKIAogLyogQWxtb3N0IGFsbCBkb2N1bWVudGF0aW9uIGZvciBjaGlwIGFuZCBib2FyZCBtZW1vcnkgbWFwcyBhc3N1bWVzCiAgKiBCTSBpcyBjbGVhci4gIE1vc3QgZGV2ZWwgYm9hcmRzIGhhdmUgYSBzd2l0Y2ggdG8gY29udHJvbCBib290aW5nCkBAIC05MywxMyArOTEsMTMgQEAKICAqLwogc3RhdGljIGlubGluZSB1MzIgb21hcF9jczBfcGh5cyh2b2lkKQogewotCXJldHVybiAoT01BUF9FTUlGU19DT05GSUdfUkVHICYgT01BUF9FTUlGU19DT05GSUdfQk0pCisJcmV0dXJuIChvbWFwX3JlYWRsKEVNSUZTX0NPTkZJRykgJiBPTUFQX0VNSUZTX0NPTkZJR19CTSkKIAkJCT8gIE9NQVBfQ1MzX1BIWVMgOiAwOwogfQogCiBzdGF0aWMgaW5saW5lIHUzMiBvbWFwX2NzM19waHlzKHZvaWQpCiB7Ci0JcmV0dXJuIChPTUFQX0VNSUZTX0NPTkZJR19SRUcgJiBPTUFQX0VNSUZTX0NPTkZJR19CTSkKKwlyZXR1cm4gKG9tYXBfcmVhZGwoRU1JRlNfQ09ORklHKSAmIE9NQVBfRU1JRlNfQ09ORklHX0JNKQogCQkJPyAwIDogT01BUF9DUzNfUEhZUzsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC91c2IuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdXNiLmgKaW5kZXggMjE0N2QxOC4uZGRmMTg2MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC91c2IuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3VzYi5oCkBAIC0zNCwxMSArMzQsOCBAQAogLyoKICAqIE9URyBhbmQgdHJhbnNjZWl2ZXIgcmVnaXN0ZXJzLCBmb3IgT01BUHMgc3RhcnRpbmcgd2l0aCBBUk05MjYKICAqLwotI2RlZmluZSBPVEdfUkVHMzIob2Zmc2V0KQkJX19SRUczMihPVEdfQkFTRSArIChvZmZzZXQpKQotI2RlZmluZSBPVEdfUkVHMTYob2Zmc2V0KQkJX19SRUcxNihPVEdfQkFTRSArIChvZmZzZXQpKQotCi0jZGVmaW5lIE9UR19SRVZfUkVHCQkJT1RHX1JFRzMyKDB4MDApCi0jZGVmaW5lIE9UR19TWVNDT05fMV9SRUcJCU9UR19SRUczMigweDA0KQorI2RlZmluZSBPVEdfUkVWCQkJCShPVEdfQkFTRSArIDB4MDApCisjZGVmaW5lIE9UR19TWVNDT05fMQkJCShPVEdfQkFTRSArIDB4MDQpCiAjCWRlZmluZQkgVVNCMl9UUlhfTU9ERSh3KQkoKCh3KT4+MjQpJjB4MDcpCiAjCWRlZmluZQkgVVNCMV9UUlhfTU9ERSh3KQkoKCh3KT4+MjApJjB4MDcpCiAjCWRlZmluZQkgVVNCMF9UUlhfTU9ERSh3KQkoKCh3KT4+MTYpJjB4MDcpCkBAIC00Nyw3ICs0NCw3IEBACiAjCWRlZmluZQkgREVWX0lETEVfRU4JCSgxIDw8IDEzKQogIwlkZWZpbmUJIE9UR19SRVNFVF9ET05FCQkoMSA8PCAyKQogIwlkZWZpbmUJIE9UR19TT0ZUX1JFU0VUCQkoMSA8PCAxKQotI2RlZmluZSBPVEdfU1lTQ09OXzJfUkVHCQlPVEdfUkVHMzIoMHgwOCkKKyNkZWZpbmUgT1RHX1NZU0NPTl8yCQkJKE9UR19CQVNFICsgMHgwOCkKICMJZGVmaW5lCSBPVEdfRU4JCQkoMSA8PCAzMSkKICMJZGVmaW5lCSBVU0JYX1NZTkNIUk8JCSgxIDw8IDMwKQogIwlkZWZpbmUJIE9UR19NU1QxNgkJKDEgPDwgMjkpCkBAIC02NSw3ICs2Miw3IEBACiAjCWRlZmluZQkgSE1DX1RMTFNQRUVECQkoMSA8PCA3KQogIwlkZWZpbmUJIEhNQ19UTExBVFRBQ0gJCSgxIDw8IDYpCiAjCWRlZmluZQkgT1RHX0hNQyh3KQkJKCgodyk+PjApJjB4M2YpCi0jZGVmaW5lIE9UR19DVFJMX1JFRwkJCU9UR19SRUczMigweDBjKQorI2RlZmluZSBPVEdfQ1RSTAkJCShPVEdfQkFTRSArIDB4MGMpCiAjCWRlZmluZQkgT1RHX1VTQjJfRU4JCSgxIDw8IDI5KQogIwlkZWZpbmUJIE9UR19VU0IyX0RQCQkoMSA8PCAyOCkKICMJZGVmaW5lCSBPVEdfVVNCMl9ETQkJKDEgPDwgMjcpCkBAIC05Miw3ICs4OSw3IEBACiAjCWRlZmluZQkgT1RHX1BEX1ZCVVMJCSgxIDw8IDIpCiAjCWRlZmluZQkgT1RHX1BVX1ZCVVMJCSgxIDw8IDEpCiAjCWRlZmluZQkgT1RHX1BVX0lECQkoMSA8PCAwKQotI2RlZmluZSBPVEdfSVJRX0VOX1JFRwkJCU9UR19SRUcxNigweDEwKQorI2RlZmluZSBPVEdfSVJRX0VOCQkJKE9UR19CQVNFICsgMHgxMCkJLyogMTYtYml0ICovCiAjCWRlZmluZQkgRFJJVkVSX1NXSVRDSAkJKDEgPDwgMTUpCiAjCWRlZmluZQkgQV9WQlVTX0VSUgkJKDEgPDwgMTMpCiAjCWRlZmluZQkgQV9SRVFfVE1ST1VUCQkoMSA8PCAxMikKQEAgLTEwMiw5ICs5OSw5IEBACiAjCWRlZmluZQkgQl9TUlBfRE9ORQkJKDEgPDwgOCkKICMJZGVmaW5lCSBCX1NSUF9TVEFSVEVECQkoMSA8PCA3KQogIwlkZWZpbmUJIE9QUlRfQ0hHCQkoMSA8PCAwKQotI2RlZmluZSBPVEdfSVJRX1NSQ19SRUcJCQlPVEdfUkVHMTYoMHgxNCkKKyNkZWZpbmUgT1RHX0lSUV9TUkMJCQkoT1RHX0JBU0UgKyAweDE0KQkvKiAxNi1iaXQgKi8KIAkvLyBzYW1lIGJpdHMgYXMgaW4gSVJRX0VOCi0jZGVmaW5lIE9UR19PVVRDVFJMX1JFRwkJCU9UR19SRUcxNigweDE4KQorI2RlZmluZSBPVEdfT1VUQ1RSTAkJCShPVEdfQkFTRSArIDB4MTgpCS8qIDE2LWJpdCAqLwogIwlkZWZpbmUJIE9UR1ZQRAkJCSgxIDw8IDE0KQogIwlkZWZpbmUJIE9UR1ZQVQkJCSgxIDw8IDEzKQogIwlkZWZpbmUJIE9UR1BVSUQJCSgxIDw8IDEyKQpAQCAtMTE3LDEzICsxMTQsMTMgQEAKICMJZGVmaW5lCSBVU0IwVkRSCQkoMSA8PCAyKQogIwlkZWZpbmUJIFVTQjBQREVOCQkoMSA8PCAxKQogIwlkZWZpbmUJIFVTQjBQVUVOCQkoMSA8PCAwKQotI2RlZmluZSBPVEdfVEVTVF9SRUcJCQlPVEdfUkVHMTYoMHgyMCkKLSNkZWZpbmUgT1RHX1ZFTkRPUl9DT0RFX1JFRwkJT1RHX1JFRzMyKDB4ZmMpCisjZGVmaW5lIE9UR19URVNUCQkJKE9UR19CQVNFICsgMHgyMCkJLyogMTYtYml0ICovCisjZGVmaW5lIE9UR19WRU5ET1JfQ09ERQkJCShPVEdfQkFTRSArIDB4ZmMpCS8qIDE2LWJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKiBPTUFQMSAqLwotI2RlZmluZQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcJX19SRUczMigweGZmZmUxMDAwICsgMHgwMDY0KQorI2RlZmluZQlVU0JfVFJBTlNDRUlWRVJfQ1RSTAkJKDB4ZmZmZTEwMDAgKyAweDAwNjQpCiAjCWRlZmluZQlDT05GX1VTQjJfVU5JX1IJCSgxIDw8IDgpCiAjCWRlZmluZQlDT05GX1VTQjFfVU5JX1IJCSgxIDw8IDcpCiAjCWRlZmluZQlDT05GX1VTQl9QT1JUMF9SKHgpCSgoKHgpPj40KSYweDcpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L2lvLmgKaW5kZXggNTBmOGM4OC4uNTlmMWJjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9pby5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvaW8uaApAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgIm9yaW9uNXguaCIKIAogI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhmZmZmZmZmZgotI2RlZmluZSBJT19TUEFDRV9SRU1BUAkJT1JJT041WF9QQ0lfU1lTX0lPX0JBU0UKIAogc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKgogX19hcmNoX2lvcmVtYXAodW5zaWduZWQgbG9uZyBwYWRkciwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBtdHlwZSkKQEAgLTUzLDE1ICs1MiwxMiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBIZWxwZXJzIHRvIGFjY2VzcyBPcmlvbiByZWdpc3RlcnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBvcmlvbjV4X3JlYWQocikJCV9fcmF3X3JlYWRsKHIpCi0jZGVmaW5lIG9yaW9uNXhfd3JpdGUociwgdmFsKQlfX3Jhd193cml0ZWwodmFsLCByKQotCiAvKgogICogVGhlc2UgYXJlIG5vdCBwcmVlbXB0LXNhZmUuICBMb2NrcywgaWYgbmVlZGVkLCBtdXN0IGJlIHRha2VuCiAgKiBjYXJlIG9mIGJ5IHRoZSBjYWxsZXIuCiAgKi8KLSNkZWZpbmUgb3Jpb241eF9zZXRiaXRzKHIsIG1hc2spCW9yaW9uNXhfd3JpdGUoKHIpLCBvcmlvbjV4X3JlYWQocikgfCAobWFzaykpCi0jZGVmaW5lIG9yaW9uNXhfY2xyYml0cyhyLCBtYXNrKQlvcmlvbjV4X3dyaXRlKChyKSwgb3Jpb241eF9yZWFkKHIpICYgfihtYXNrKSkKKyNkZWZpbmUgb3Jpb241eF9zZXRiaXRzKHIsIG1hc2spCXdyaXRlbChyZWFkbChyKSB8IChtYXNrKSwgKHIpKQorI2RlZmluZSBvcmlvbjV4X2NscmJpdHMociwgbWFzaykJd3JpdGVsKHJlYWRsKHIpICYgfihtYXNrKSwgKHIpKQogCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9vcmlvbjV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaAppbmRleCAyMDZkZGQ3Li4xMDI1N2Y1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaApAQCAtMiw3ICsyLDcgQEAKICAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvb3Jpb241eC5oCiAgKgogICogR2VuZXJpYyBkZWZpbml0aW9ucyBvZiBPcmlvbiBTb0MgZmxhdm9yczoKLSAqICBPcmlvbi0xLCBPcmlvbi1OQVMsIE9yaW9uLVZvSVAsIGFuZCBPcmlvbi0yLgorICogIE9yaW9uLTEsIE9yaW9uLVZvSVAsIE9yaW9uLU5BUywgYW5kIE9yaW9uLTIuCiAgKgogICogTWFpbnRhaW5lcjogVHphY2hpIFBlcmVsc3RlaW4gPHR6YWNoaUBtYXJ2ZWxsLmNvbT4KICAqCkBAIC02Myw5ICs2MywxMSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFN1cHBvcnRlZCBEZXZpY2VzICYgUmV2aXNpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogT3Jpb24tMSAoODhGNTE4MSkgKi8KKy8qIE9yaW9uLTEgKDg4RjUxODEpIGFuZCBPcmlvbi1Wb0lQICg4OEY1MTgxTCkgKi8KICNkZWZpbmUgTVY4OEY1MTgxX0RFVl9JRAkweDUxODEKICNkZWZpbmUgTVY4OEY1MTgxX1JFVl9CMQkzCisjZGVmaW5lIE1WODhGNTE4MUxfUkVWX0EwCTgKKyNkZWZpbmUgTVY4OEY1MTgxTF9SRVZfQTEJOQogLyogT3Jpb24tTkFTICg4OEY1MTgyKSAqLwogI2RlZmluZSBNVjg4RjUxODJfREVWX0lECTB4NTE4MgogI2RlZmluZSBNVjg4RjUxODJfUkVWX0EyCTIKQEAgLTE1Miw2ICsxNTQsNyBAQAogI2RlZmluZSBCUklER0VfTUFTSwkJT1JJT041WF9CUklER0VfUkVHKDB4MTE0KQogI2RlZmluZSAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCiAjZGVmaW5lICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgIEJSSURHRV9JTlRfVElNRVIxX0NMUgkofjB4MDAwNCkKICNkZWZpbmUgTUFJTl9JUlFfQ0FVU0UJCU9SSU9ONVhfQlJJREdFX1JFRygweDIwMCkKICNkZWZpbmUgTUFJTl9JUlFfTUFTSwkJT1JJT041WF9CUklER0VfUkVHKDB4MjA0KQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L3VuY29tcHJlc3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCmluZGV4IDVjMTNkNGYuLjc1NDhjZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCkBAIC04LDIzICs4LDM4IEBACiAgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAKLSNkZWZpbmUgTVZfVUFSVF9USFIJKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKFVBUlQwX1BIWVNfQkFTRSArIDB4MCkpCi0jZGVmaW5lIE1WX1VBUlRfTFNSIAkoKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoVUFSVDBfUEhZU19CQVNFICsgMHgxNCkpCi0KLSNkZWZpbmUgTFNSX1RIUkUJMHgyMAorI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCiAKIHN0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQogewotCWludCBqID0gMHgxMDAwOwotCXdoaWxlICgtLWogJiYgISgqTVZfVUFSVF9MU1IgJiBMU1JfVEhSRSkpCisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDB4MTAwMDsgaSsrKSB7CisJCWlmIChiYXNlW1VBUlRfTFNSIDw8IDJdICYgVUFSVF9MU1JfVEhSRSkKKwkJCWJyZWFrOwogCQliYXJyaWVyKCk7Ci0JKk1WX1VBUlRfVEhSID0gYzsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOwogfQogCiBzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQogeworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2F1ZGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaAppbmRleCA1MmJiZTNiLi5mODJmOTZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaApAQCAtMTIsNCArMTIsNiBAQAogCXZvaWQgKnByaXY7CiB9IHB4YTJ4eF9hdWRpb19vcHNfdDsKIAorZXh0ZXJuIHZvaWQgcHhhX3NldF9hYzk3X2luZm8ocHhhMnh4X2F1ZGlvX29wc190ICpvcHMpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKaW5kZXggZTI1NTU4Zi4uZDlhZjZkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKQEAgLTE5MiwxNSArMTkyLDYgQEAKIGV4dGVybiB2b2lkIHB4YV9ncGlvX3NldF92YWx1ZSh1bnNpZ25lZCBncGlvLCBpbnQgdmFsdWUpOwogCiAvKgotICogUm91dGluZSB0byBlbmFibGUgb3IgZGlzYWJsZSBDS0VOCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2RlcHJlY2F0ZWQgcHhhX3NldF9ja2VuKGludCBjbG9jaywgaW50IGVuYWJsZSkKLXsKLQlleHRlcm4gdm9pZCBfX3B4YV9zZXRfY2tlbihpbnQgY2xvY2ssIGludCBlbmFibGUpOwotCV9fcHhhX3NldF9ja2VuKGNsb2NrLCBlbmFibGUpOwotfQotCi0vKgogICogcmV0dXJuIGN1cnJlbnQgbWVtb3J5IGFuZCBMQ0QgY2xvY2sgZnJlcXVlbmN5IGluIHVuaXRzIG9mIDEwa0h6CiAgKi8KIGV4dGVybiB1bnNpZ25lZCBpbnQgZ2V0X21lbWNsa19mcmVxdWVuY3lfMTBraHoodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaXJkYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2lyZGEuaAppbmRleCA5OWY0ZjQyLi4wYTUwYzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaXJkYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9pcmRhLmgKQEAgLTE2LDQgKzE2LDggQEAKIAogZXh0ZXJuIHZvaWQgcHhhX3NldF9maWNwX2luZm8oc3RydWN0IHB4YWZpY3BfcGxhdGZvcm1fZGF0YSAqaW5mbyk7CiAKKyNpZiBkZWZpbmVkKENPTkZJR19QWEEyNXgpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3eCkKK3ZvaWQgcHhhMnh4X3RyYW5zY2VpdmVyX21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgbW9kZSk7CisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCmluZGV4IDRiMmVhMWUuLmRjZTkzMDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCkBAIC02MDAsNDE4ICs2MDAsNiBAQAogCiAKIC8qCi0gKiBVU0IgRGV2aWNlIENvbnRyb2xsZXIKLSAqIFBYQTI1eCBhbmQgUFhBMjd4IFVTQiBkZXZpY2UgY29udHJvbGxlciByZWdpc3RlcnMgYXJlIGRpZmZlcmVudC4KLSAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BYQTI1eCkKLQotI2RlZmluZSBVRENfUkVTMQlfX1JFRygweDQwNjAwMDA0KSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMSAqLwotI2RlZmluZSBVRENfUkVTMglfX1JFRygweDQwNjAwMDA4KSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMiAqLwotI2RlZmluZSBVRENfUkVTMwlfX1JFRygweDQwNjAwMDBDKSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMyAqLwotCi0jZGVmaW5lIFVEQ0NSCQlfX1JFRygweDQwNjAwMDAwKSAgLyogVURDIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1JfVURFCSgxIDw8IDApCS8qIFVEQyBlbmFibGUgKi8KLSNkZWZpbmUgVURDQ1JfVURBCSgxIDw8IDEpCS8qIFVEQyBhY3RpdmUgKi8KLSNkZWZpbmUgVURDQ1JfUlNNCSgxIDw8IDIpCS8qIERldmljZSByZXN1bWUgKi8KLSNkZWZpbmUgVURDQ1JfUkVTSVIJKDEgPDwgMykJLyogUmVzdW1lIGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVEQ0NSX1NVU0lSCSgxIDw8IDQpCS8qIFN1c3BlbmQgaW50ZXJydXB0IHJlcXVlc3QgKi8KLSNkZWZpbmUgVURDQ1JfU1JNCSgxIDw8IDUpCS8qIFN1c3BlbmQvcmVzdW1lIGludGVycnVwdCBtYXNrICovCi0jZGVmaW5lIFVEQ0NSX1JTVElSCSgxIDw8IDYpCS8qIFJlc2V0IGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVEQ0NSX1JFTQkoMSA8PCA3KQkvKiBSZXNldCBpbnRlcnJ1cHQgbWFzayAqLwotCi0jZGVmaW5lIFVEQ0NTMAkJX19SRUcoMHg0MDYwMDAxMCkgIC8qIFVEQyBFbmRwb2ludCAwIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMF9PUFIJKDEgPDwgMCkJLyogT1VUIHBhY2tldCByZWFkeSAqLwotI2RlZmluZSBVRENDUzBfSVBSCSgxIDw8IDEpCS8qIElOIHBhY2tldCByZWFkeSAqLwotI2RlZmluZSBVRENDUzBfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1MwX0RSV0YJKDEgPDwgMykJLyogRGV2aWNlIHJlbW90ZSB3YWtldXAgZmVhdHVyZSAqLwotI2RlZmluZSBVRENDUzBfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1MwX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLwotI2RlZmluZSBVRENDUzBfUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBubyBlbXB0eSAqLwotI2RlZmluZSBVRENDUzBfU0EJKDEgPDwgNykJLyogU2V0dXAgYWN0aXZlICovCi0KLS8qIEJ1bGsgSU4gLSBFbmRwb2ludCAxLDYsMTEgKi8KLSNkZWZpbmUgVURDQ1MxCQlfX1JFRygweDQwNjAwMDE0KSAgLyogVURDIEVuZHBvaW50IDEgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzYJCV9fUkVHKDB4NDA2MDAwMjgpICAvKiBVREMgRW5kcG9pbnQgNiAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMTEJCV9fUkVHKDB4NDA2MDAwM0MpICAvKiBVREMgRW5kcG9pbnQgMTEgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0JJX1RGUwkoMSA8PCAwKQkvKiBUcmFuc21pdCBGSUZPIHNlcnZpY2UgKi8KLSNkZWZpbmUgVURDQ1NfQklfVFBDCSgxIDw8IDEpCS8qIFRyYW5zbWl0IHBhY2tldCBjb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU19CSV9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLwotI2RlZmluZSBVRENDU19CSV9UVVIJKDEgPDwgMykJLyogVHJhbnNtaXQgRklGTyB1bmRlcnJ1biAqLwotI2RlZmluZSBVRENDU19CSV9TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLwotI2RlZmluZSBVRENDU19CSV9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQklfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0vKiBCdWxrIE9VVCAtIEVuZHBvaW50IDIsNywxMiAqLwotI2RlZmluZSBVRENDUzIJCV9fUkVHKDB4NDA2MDAwMTgpICAvKiBVREMgRW5kcG9pbnQgMiAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzcJCV9fUkVHKDB4NDA2MDAwMkMpICAvKiBVREMgRW5kcG9pbnQgNyAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzEyCQlfX1JFRygweDQwNjAwMDQwKSAgLyogVURDIEVuZHBvaW50IDEyIChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVURDQ1NfQk9fUkZTCSgxIDw8IDApCS8qIFJlY2VpdmUgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0JPX1JQQwkoMSA8PCAxKQkvKiBSZWNlaXZlIHBhY2tldCBjb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU19CT19ETUUJKDEgPDwgMykJLyogRE1BIGVuYWJsZSAqLwotI2RlZmluZSBVRENDU19CT19TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLwotI2RlZmluZSBVRENDU19CT19GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQk9fUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBub3QgZW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NfQk9fUlNQCSgxIDw8IDcpCS8qIFJlY2VpdmUgc2hvcnQgcGFja2V0ICovCi0KLS8qIElzb2Nocm9ub3VzIElOIC0gRW5kcG9pbnQgMyw4LDEzICovCi0jZGVmaW5lIFVEQ0NTMwkJX19SRUcoMHg0MDYwMDAxQykgIC8qIFVEQyBFbmRwb2ludCAzIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M4CQlfX1JFRygweDQwNjAwMDMwKSAgLyogVURDIEVuZHBvaW50IDggKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzEzCQlfX1JFRygweDQwNjAwMDQ0KSAgLyogVURDIEVuZHBvaW50IDEzIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVRENDU19JSV9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0lJX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSUlfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1NfSUlfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KLSNkZWZpbmUgVURDQ1NfSUlfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0vKiBJc29jaHJvbm91cyBPVVQgLSBFbmRwb2ludCA0LDksMTQgKi8KLSNkZWZpbmUgVURDQ1M0CQlfX1JFRygweDQwNjAwMDIwKSAgLyogVURDIEVuZHBvaW50IDQgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M5CQlfX1JFRygweDQwNjAwMDM0KSAgLyogVURDIEVuZHBvaW50IDkgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxNAkJX19SRUcoMHg0MDYwMDA0OCkgIC8qIFVEQyBFbmRwb2ludCAxNCAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0lPX1JGUwkoMSA8PCAwKQkvKiBSZWNlaXZlIEZJRk8gc2VydmljZSAqLwotI2RlZmluZSBVRENDU19JT19SUEMJKDEgPDwgMSkJLyogUmVjZWl2ZSBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUk9GCSgxIDw8IDIpCS8qIFJlY2VpdmUgb3ZlcmZsb3cgKi8KLSNkZWZpbmUgVURDQ1NfSU9fRE1FCSgxIDw8IDMpCS8qIERNQSBlbmFibGUgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBub3QgZW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUlNQCSgxIDw8IDcpCS8qIFJlY2VpdmUgc2hvcnQgcGFja2V0ICovCi0KLS8qIEludGVycnVwdCBJTiAtIEVuZHBvaW50IDUsMTAsMTUgKi8KLSNkZWZpbmUgVURDQ1M1CQlfX1JFRygweDQwNjAwMDI0KSAgLyogVURDIEVuZHBvaW50IDUgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxMAkJX19SRUcoMHg0MDYwMDAzOCkgIC8qIFVEQyBFbmRwb2ludCAxMCAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzE1CQlfX1JFRygweDQwNjAwMDRDKSAgLyogVURDIEVuZHBvaW50IDE1IChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVURDQ1NfSU5UX1RGUwkoMSA8PCAwKQkvKiBUcmFuc21pdCBGSUZPIHNlcnZpY2UgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTX0lOVF9UVVIJKDEgPDwgMykJLyogVHJhbnNtaXQgRklGTyB1bmRlcnJ1biAqLwotI2RlZmluZSBVRENDU19JTlRfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLwotI2RlZmluZSBVRENDU19JTlRfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0jZGVmaW5lIFVGTlJICQlfX1JFRygweDQwNjAwMDYwKSAgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciBIaWdoICovCi0jZGVmaW5lIFVGTlJMCQlfX1JFRygweDQwNjAwMDY0KSAgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciBMb3cgKi8KLSNkZWZpbmUgVUJDUjIJCV9fUkVHKDB4NDA2MDAwNjgpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgMiAqLwotI2RlZmluZSBVQkNSNAkJX19SRUcoMHg0MDYwMDA2YykgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA0ICovCi0jZGVmaW5lIFVCQ1I3CQlfX1JFRygweDQwNjAwMDcwKSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDcgKi8KLSNkZWZpbmUgVUJDUjkJCV9fUkVHKDB4NDA2MDAwNzQpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgOSAqLwotI2RlZmluZSBVQkNSMTIJCV9fUkVHKDB4NDA2MDAwNzgpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgMTIgKi8KLSNkZWZpbmUgVUJDUjE0CQlfX1JFRygweDQwNjAwMDdjKSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDE0ICovCi0jZGVmaW5lIFVERFIwCQlfX1JFRygweDQwNjAwMDgwKSAgLyogVURDIEVuZHBvaW50IDAgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMQkJX19SRUcoMHg0MDYwMDEwMCkgIC8qIFVEQyBFbmRwb2ludCAxIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjIJCV9fUkVHKDB4NDA2MDAxODApICAvKiBVREMgRW5kcG9pbnQgMiBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFIzCQlfX1JFRygweDQwNjAwMjAwKSAgLyogVURDIEVuZHBvaW50IDMgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSNAkJX19SRUcoMHg0MDYwMDQwMCkgIC8qIFVEQyBFbmRwb2ludCA0IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjUJCV9fUkVHKDB4NDA2MDAwQTApICAvKiBVREMgRW5kcG9pbnQgNSBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI2CQlfX1JFRygweDQwNjAwNjAwKSAgLyogVURDIEVuZHBvaW50IDYgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSNwkJX19SRUcoMHg0MDYwMDY4MCkgIC8qIFVEQyBFbmRwb2ludCA3IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjgJCV9fUkVHKDB4NDA2MDA3MDApICAvKiBVREMgRW5kcG9pbnQgOCBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI5CQlfX1JFRygweDQwNjAwOTAwKSAgLyogVURDIEVuZHBvaW50IDkgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTAJCV9fUkVHKDB4NDA2MDAwQzApICAvKiBVREMgRW5kcG9pbnQgMTAgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTEJCV9fUkVHKDB4NDA2MDBCMDApICAvKiBVREMgRW5kcG9pbnQgMTEgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTIJCV9fUkVHKDB4NDA2MDBCODApICAvKiBVREMgRW5kcG9pbnQgMTIgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTMJCV9fUkVHKDB4NDA2MDBDMDApICAvKiBVREMgRW5kcG9pbnQgMTMgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTQJCV9fUkVHKDB4NDA2MDBFMDApICAvKiBVREMgRW5kcG9pbnQgMTQgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTUJCV9fUkVHKDB4NDA2MDAwRTApICAvKiBVREMgRW5kcG9pbnQgMTUgRGF0YSBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVJQ1IwCQlfX1JFRygweDQwNjAwMDUwKSAgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KLQotI2RlZmluZSBVSUNSMF9JTTAJKDEgPDwgMCkJLyogSW50ZXJydXB0IG1hc2sgZXAgMCAqLwotI2RlZmluZSBVSUNSMF9JTTEJKDEgPDwgMSkJLyogSW50ZXJydXB0IG1hc2sgZXAgMSAqLwotI2RlZmluZSBVSUNSMF9JTTIJKDEgPDwgMikJLyogSW50ZXJydXB0IG1hc2sgZXAgMiAqLwotI2RlZmluZSBVSUNSMF9JTTMJKDEgPDwgMykJLyogSW50ZXJydXB0IG1hc2sgZXAgMyAqLwotI2RlZmluZSBVSUNSMF9JTTQJKDEgPDwgNCkJLyogSW50ZXJydXB0IG1hc2sgZXAgNCAqLwotI2RlZmluZSBVSUNSMF9JTTUJKDEgPDwgNSkJLyogSW50ZXJydXB0IG1hc2sgZXAgNSAqLwotI2RlZmluZSBVSUNSMF9JTTYJKDEgPDwgNikJLyogSW50ZXJydXB0IG1hc2sgZXAgNiAqLwotI2RlZmluZSBVSUNSMF9JTTcJKDEgPDwgNykJLyogSW50ZXJydXB0IG1hc2sgZXAgNyAqLwotCi0jZGVmaW5lIFVJQ1IxCQlfX1JFRygweDQwNjAwMDU0KSAgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KLQotI2RlZmluZSBVSUNSMV9JTTgJKDEgPDwgMCkJLyogSW50ZXJydXB0IG1hc2sgZXAgOCAqLwotI2RlZmluZSBVSUNSMV9JTTkJKDEgPDwgMSkJLyogSW50ZXJydXB0IG1hc2sgZXAgOSAqLwotI2RlZmluZSBVSUNSMV9JTTEwCSgxIDw8IDIpCS8qIEludGVycnVwdCBtYXNrIGVwIDEwICovCi0jZGVmaW5lIFVJQ1IxX0lNMTEJKDEgPDwgMykJLyogSW50ZXJydXB0IG1hc2sgZXAgMTEgKi8KLSNkZWZpbmUgVUlDUjFfSU0xMgkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMiAqLwotI2RlZmluZSBVSUNSMV9JTTEzCSgxIDw8IDUpCS8qIEludGVycnVwdCBtYXNrIGVwIDEzICovCi0jZGVmaW5lIFVJQ1IxX0lNMTQJKDEgPDwgNikJLyogSW50ZXJydXB0IG1hc2sgZXAgMTQgKi8KLSNkZWZpbmUgVUlDUjFfSU0xNQkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxNSAqLwotCi0jZGVmaW5lIFVTSVIwCQlfX1JFRygweDQwNjAwMDU4KSAgLyogVURDIFN0YXR1cyBJbnRlcnJ1cHQgUmVnaXN0ZXIgMCAqLwotCi0jZGVmaW5lIFVTSVIwX0lSMAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAwICovCi0jZGVmaW5lIFVTSVIwX0lSMQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxICovCi0jZGVmaW5lIFVTSVIwX0lSMgkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAyICovCi0jZGVmaW5lIFVTSVIwX0lSMwkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAzICovCi0jZGVmaW5lIFVTSVIwX0lSNAkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA0ICovCi0jZGVmaW5lIFVTSVIwX0lSNQkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA1ICovCi0jZGVmaW5lIFVTSVIwX0lSNgkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA2ICovCi0jZGVmaW5lIFVTSVIwX0lSNwkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA3ICovCi0KLSNkZWZpbmUgVVNJUjEJCV9fUkVHKDB4NDA2MDAwNUMpICAvKiBVREMgU3RhdHVzIEludGVycnVwdCBSZWdpc3RlciAxICovCi0KLSNkZWZpbmUgVVNJUjFfSVI4CSgxIDw8IDApCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDggKi8KLSNkZWZpbmUgVVNJUjFfSVI5CSgxIDw8IDEpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDkgKi8KLSNkZWZpbmUgVVNJUjFfSVIxMAkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMCAqLwotI2RlZmluZSBVU0lSMV9JUjExCSgxIDw8IDMpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDExICovCi0jZGVmaW5lIFVTSVIxX0lSMTIJKDEgPDwgNCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTIgKi8KLSNkZWZpbmUgVVNJUjFfSVIxMwkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMyAqLwotI2RlZmluZSBVU0lSMV9JUjE0CSgxIDw8IDYpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDE0ICovCi0jZGVmaW5lIFVTSVIxX0lSMTUJKDEgPDwgNykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTUgKi8KLQotI2VsaWYgZGVmaW5lZChDT05GSUdfUFhBMjd4KQotCi0jZGVmaW5lIFVEQ0NSICAgICAgICAgICBfX1JFRygweDQwNjAwMDAwKSAvKiBVREMgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUl9PRU4JKDEgPDwgMzEpCS8qIE9uLXRoZS1HbyBFbmFibGUgKi8KLSNkZWZpbmUgVURDQ1JfQUFMVEhOUAkoMSA8PCAzMCkJLyogQS1kZXZpY2UgQWx0ZXJuYXRlIEhvc3QgTmVnb3RpYXRpb24KLQkJCQkJICAgUHJvdG9jb2wgUG9ydCBTdXBwb3J0ICovCi0jZGVmaW5lIFVEQ0NSX0FITlAJKDEgPDwgMjkpCS8qIEEtZGV2aWNlIEhvc3QgTmVnb3RpYXRpb24gUHJvdG9jb2wKLQkJCQkJICAgU3VwcG9ydCAqLwotI2RlZmluZSBVRENDUl9CSE5QCSgxIDw8IDI4KQkvKiBCLWRldmljZSBIb3N0IE5lZ290aWF0aW9uIFByb3RvY29sCi0JCQkJCSAgIEVuYWJsZSAqLwotI2RlZmluZSBVRENDUl9EV1JFCSgxIDw8IDE2KQkvKiBEZXZpY2UgUmVtb3RlIFdha2UtdXAgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NSX0FDTgkoMHgwMyA8PCAxMSkJLyogQWN0aXZlIFVEQyBjb25maWd1cmF0aW9uIE51bWJlciAqLwotI2RlZmluZSBVRENDUl9BQ05fUwkxMQotI2RlZmluZSBVRENDUl9BSU4JKDB4MDcgPDwgOCkJLyogQWN0aXZlIFVEQyBpbnRlcmZhY2UgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NSX0FJTl9TCTgKLSNkZWZpbmUgVURDQ1JfQUFJU04JKDB4MDcgPDwgNSkJLyogQWN0aXZlIFVEQyBBbHRlcm5hdGUgSW50ZXJmYWNlCi0JCQkJCSAgIFNldHRpbmcgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NSX0FBSVNOX1MJNQotI2RlZmluZSBVRENDUl9TTUFDCSgxIDw8IDQpCS8qIFN3aXRjaCBFbmRwb2ludCBNZW1vcnkgdG8gQWN0aXZlCi0JCQkJCSAgIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgVURDQ1JfRU1DRQkoMSA8PCAzKQkvKiBFbmRwb2ludCBNZW1vcnkgQ29uZmlndXJhdGlvbgotCQkJCQkgICBFcnJvciAqLwotI2RlZmluZSBVRENDUl9VRFIJKDEgPDwgMikJLyogVURDIFJlc3VtZSAqLwotI2RlZmluZSBVRENDUl9VREEJKDEgPDwgMSkJLyogVURDIEFjdGl2ZSAqLwotI2RlZmluZSBVRENDUl9VREUJKDEgPDwgMCkJLyogVURDIEVuYWJsZSAqLwotCi0jZGVmaW5lIFVEQ0lDUjAgICAgICAgICBfX1JFRygweDQwNjAwMDA0KSAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIwICovCi0jZGVmaW5lIFVEQ0lDUjEgICAgICAgICBfX1JFRygweDQwNjAwMDA4KSAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIxICovCi0jZGVmaW5lIFVEQ0lDUl9GSUZPRVJSCSgxIDw8IDEpCS8qIEZJRk8gRXJyb3IgaW50ZXJydXB0IGZvciBFUCAqLwotI2RlZmluZSBVRENJQ1JfUEtUQ09NUEwgKDEgPDwgMCkJLyogUGFja2V0IENvbXBsZXRlIGludGVycnVwdCBmb3IgRVAgKi8KLQotI2RlZmluZSBVRENfSU5UX0ZJRk9FUlJPUiAgKDB4MikKLSNkZWZpbmUgVURDX0lOVF9QQUNLRVRDTVAgICgweDEpCi0KLSNkZWZpbmUgVURDSUNSX0lOVChuLGludHIpICgoKGludHIpICYgMHgwMykgPDwgKCgobikgJiAweDBGKSAqIDIpKQotI2RlZmluZSBVRENJQ1IxX0lFQ0MJKDEgPDwgMzEpCS8qIEludEVuIC0gQ29uZmlndXJhdGlvbiBDaGFuZ2UgKi8KLSNkZWZpbmUgVURDSUNSMV9JRVNPRgkoMSA8PCAzMCkJLyogSW50RW4gLSBTdGFydCBvZiBGcmFtZSAqLwotI2RlZmluZSBVRENJQ1IxX0lFUlUJKDEgPDwgMjkpCS8qIEludEVuIC0gUmVzdW1lICovCi0jZGVmaW5lIFVEQ0lDUjFfSUVTVQkoMSA8PCAyOCkJLyogSW50RW4gLSBTdXNwZW5kICovCi0jZGVmaW5lIFVEQ0lDUjFfSUVSUwkoMSA8PCAyNykJLyogSW50RW4gLSBSZXNldCAqLwotCi0jZGVmaW5lIFVEQ0lTUjAgICAgICAgICBfX1JFRygweDQwNjAwMDBDKSAvKiBVREMgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAwICovCi0jZGVmaW5lIFVEQ0lTUjEgICAgICAgICBfX1JFRygweDQwNjAwMDEwKSAvKiBVREMgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAxICovCi0jZGVmaW5lIFVEQ0lTUl9JTlQobixpbnRyKSAoKChpbnRyKSAmIDB4MDMpIDw8ICgoKG4pICYgMHgwRikgKiAyKSkKLSNkZWZpbmUgVURDSVNSMV9JUkNDCSgxIDw8IDMxKQkvKiBJbnRSZXEgLSBDb25maWd1cmF0aW9uIENoYW5nZSAqLwotI2RlZmluZSBVRENJU1IxX0lSU09GCSgxIDw8IDMwKQkvKiBJbnRSZXEgLSBTdGFydCBvZiBGcmFtZSAqLwotI2RlZmluZSBVRENJU1IxX0lSUlUJKDEgPDwgMjkpCS8qIEludFJlcSAtIFJlc3VtZSAqLwotI2RlZmluZSBVRENJU1IxX0lSU1UJKDEgPDwgMjgpCS8qIEludFJlcSAtIFN1c3BlbmQgKi8KLSNkZWZpbmUgVURDSVNSMV9JUlJTCSgxIDw8IDI3KQkvKiBJbnRSZXEgLSBSZXNldCAqLwotCi0jZGVmaW5lIFVEQ0ZOUiAgICAgICAgICBfX1JFRygweDQwNjAwMDE0KSAvKiBVREMgRnJhbWUgTnVtYmVyIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ09UR0lDUglfX1JFRygweDQwNjAwMDE4KSAvKiBVREMgT24tVGhlLUdvIGludGVycnVwdCBjb250cm9sICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVNGCSgxIDw8IDI0KQkvKiBPVEcgU0VUX0ZFQVRVUkUgY29tbWFuZCByZWN2ZCAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVYUgkoMSA8PCAxNykJLyogRXh0cmEgVHJhbnNjaWV2ZXIgSW50ZXJydXB0Ci0JCQkJCSAgIFJpc2luZyBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFWEYJKDEgPDwgMTYpCS8qIEV4dHJhIFRyYW5zY2lldmVyIEludGVycnVwdAotCQkJCQkgICBGYWxsaW5nIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQwUiAoMSA8PCA5KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjBWIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0MEYgKDEgPDwgOCkJLyogT1RHIFZidXMgVmFsaWQgNC4wViBGYWxsaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQ0UiAoMSA8PCA3KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjRWIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0NEYgKDEgPDwgNikJLyogT1RHIFZidXMgVmFsaWQgNC40ViBGYWxsaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVTVlIJKDEgPDwgNSkJLyogT1RHIFNlc3Npb24gVmFsaWQgUmlzaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVTVkYJKDEgPDwgNCkJLyogT1RHIFNlc3Npb24gVmFsaWQgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU0RSCSgxIDw8IDMpCS8qIE9URyBBLURldmljZSBTUlAgRGV0ZWN0IFJpc2luZwotCQkJCQkgICBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU0RGCSgxIDw8IDIpCS8qIE9URyBBLURldmljZSBTUlAgRGV0ZWN0IEZhbGxpbmcKLQkJCQkJICAgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRUlEUgkoMSA8PCAxKQkvKiBPVEcgSUQgQ2hhbmdlIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFSURGCSgxIDw8IDApCS8qIE9URyBJRCBDaGFuZ2UgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLQotI2RlZmluZSBVUDJPQ1IJCSAgX19SRUcoMHg0MDYwMDAyMCkgIC8qIFVTQiBQb3J0IDIgT3V0cHV0IENvbnRyb2wgcmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVUDJPQ1JfQ1BWRU4JKDEgPDwgMCkJLyogQ2hhcmdlIFB1bXAgVmJ1cyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0NQVlBFCSgxIDw8IDEpCS8qIENoYXJnZSBQdW1wIFZidXMgUHVsc2UgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9EUFBERQkoMSA8PCAyKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIERvd24gRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9ETVBERQkoMSA8PCAzKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIERvd24gRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9EUFBVRQkoMSA8PCA0KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfRE1QVUUJKDEgPDwgNSkJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRC0gUHVsbCBVcCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0RQUFVCRQkoMSA8PCA2KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0RNUFVCRQkoMSA8PCA3KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0VYU1AJCSgxIDw8IDgpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIENvbnRyb2wgKi8KLSNkZWZpbmUgVVAyT0NSX0VYU1VTCSgxIDw8IDkpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfSURPTgkJKDEgPDwgMTApCS8qIE9URyBJRCBSZWFkIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfSFhTCQkoMSA8PCAxNikJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgT3V0cHV0IFNlbGVjdCAqLwotI2RlZmluZSBVUDJPQ1JfSFhPRQkJKDEgPDwgMTcpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIE91dHB1dCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX1NFT1MJCSgxIDw8IDI0KQkvKiBTaW5nbGUtRW5kZWQgT3V0cHV0IFNlbGVjdCAqLwotCi0jZGVmaW5lIFVEQ0NTTih4KQlfX1JFRzIoMHg0MDYwMDEwMCwgKHgpIDw8IDIpCi0jZGVmaW5lIFVEQ0NTUjAgICAgICAgICBfX1JFRygweDQwNjAwMTAwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCAwICovCi0jZGVmaW5lIFVEQ0NTUjBfU0EJKDEgPDwgNykJLyogU2V0dXAgQWN0aXZlICovCi0jZGVmaW5lIFVEQ0NTUjBfUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBOb3QgRW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NSMF9GU1QJKDEgPDwgNSkJLyogRm9yY2UgU3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NSMF9TU1QJKDEgPDwgNCkJLyogU2VudCBTdGFsbCAqLwotI2RlZmluZSBVRENDU1IwX0RNRQkoMSA8PCAzKQkvKiBETUEgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NTUjBfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFRyYW5zbWl0IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1NSMF9JUFIJKDEgPDwgMSkJLyogSU4gUGFja2V0IFJlYWR5ICovCi0jZGVmaW5lIFVEQ0NTUjBfT1BDCSgxIDw8IDApCS8qIE9VVCBQYWNrZXQgQ29tcGxldGUgKi8KLQotI2RlZmluZSBVRENDU1JBICAgICAgICAgX19SRUcoMHg0MDYwMDEwNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQSAqLwotI2RlZmluZSBVRENDU1JCICAgICAgICAgX19SRUcoMHg0MDYwMDEwOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQiAqLwotI2RlZmluZSBVRENDU1JDICAgICAgICAgX19SRUcoMHg0MDYwMDEwQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQyAqLwotI2RlZmluZSBVRENDU1JEICAgICAgICAgX19SRUcoMHg0MDYwMDExMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRCAqLwotI2RlZmluZSBVRENDU1JFICAgICAgICAgX19SRUcoMHg0MDYwMDExNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRSAqLwotI2RlZmluZSBVRENDU1JGICAgICAgICAgX19SRUcoMHg0MDYwMDExOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRiAqLwotI2RlZmluZSBVRENDU1JHICAgICAgICAgX19SRUcoMHg0MDYwMDExQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRyAqLwotI2RlZmluZSBVRENDU1JIICAgICAgICAgX19SRUcoMHg0MDYwMDEyMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSCAqLwotI2RlZmluZSBVRENDU1JJICAgICAgICAgX19SRUcoMHg0MDYwMDEyNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSSAqLwotI2RlZmluZSBVRENDU1JKICAgICAgICAgX19SRUcoMHg0MDYwMDEyOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSiAqLwotI2RlZmluZSBVRENDU1JLICAgICAgICAgX19SRUcoMHg0MDYwMDEyQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSyAqLwotI2RlZmluZSBVRENDU1JMICAgICAgICAgX19SRUcoMHg0MDYwMDEzMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTCAqLwotI2RlZmluZSBVRENDU1JNICAgICAgICAgX19SRUcoMHg0MDYwMDEzNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTSAqLwotI2RlZmluZSBVRENDU1JOICAgICAgICAgX19SRUcoMHg0MDYwMDEzOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTiAqLwotI2RlZmluZSBVRENDU1JQICAgICAgICAgX19SRUcoMHg0MDYwMDEzQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUCAqLwotI2RlZmluZSBVRENDU1JRICAgICAgICAgX19SRUcoMHg0MDYwMDE0MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUSAqLwotI2RlZmluZSBVRENDU1JSICAgICAgICAgX19SRUcoMHg0MDYwMDE0NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUiAqLwotI2RlZmluZSBVRENDU1JTICAgICAgICAgX19SRUcoMHg0MDYwMDE0OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUyAqLwotI2RlZmluZSBVRENDU1JUICAgICAgICAgX19SRUcoMHg0MDYwMDE0QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVCAqLwotI2RlZmluZSBVRENDU1JVICAgICAgICAgX19SRUcoMHg0MDYwMDE1MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVSAqLwotI2RlZmluZSBVRENDU1JWICAgICAgICAgX19SRUcoMHg0MDYwMDE1NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgViAqLwotI2RlZmluZSBVRENDU1JXICAgICAgICAgX19SRUcoMHg0MDYwMDE1OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVyAqLwotI2RlZmluZSBVRENDU1JYICAgICAgICAgX19SRUcoMHg0MDYwMDE1QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgWCAqLwotCi0jZGVmaW5lIFVEQ0NTUl9EUEUJKDEgPDwgOSkJLyogRGF0YSBQYWNrZXQgRXJyb3IgKi8KLSNkZWZpbmUgVURDQ1NSX0ZFRgkoMSA8PCA4KQkvKiBGbHVzaCBFbmRwb2ludCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTUl9TUAkoMSA8PCA3KQkvKiBTaG9ydCBQYWNrZXQgQ29udHJvbC9TdGF0dXMgKi8KLSNkZWZpbmUgVURDQ1NSX0JORQkoMSA8PCA2KQkvKiBCdWZmZXIgTm90IEVtcHR5IChJTiBlbmRwb2ludHMpICovCi0jZGVmaW5lIFVEQ0NTUl9CTkYJKDEgPDwgNikJLyogQnVmZmVyIE5vdCBGdWxsIChPVVQgZW5kcG9pbnRzKSAqLwotI2RlZmluZSBVRENDU1JfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIFNUQUxMICovCi0jZGVmaW5lIFVEQ0NTUl9TU1QJKDEgPDwgNCkJLyogU2VudCBTVEFMTCAqLwotI2RlZmluZSBVRENDU1JfRE1FCSgxIDw8IDMpCS8qIERNQSBFbmFibGUgKi8KLSNkZWZpbmUgVURDQ1NSX1RSTgkoMSA8PCAyKQkvKiBUeC9SeCBOQUsgKi8KLSNkZWZpbmUgVURDQ1NSX1BDCSgxIDw8IDEpCS8qIFBhY2tldCBDb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU1JfRlMJKDEgPDwgMCkJLyogRklGTyBuZWVkcyBzZXJ2aWNlICovCi0KLSNkZWZpbmUgVURDQkNOKHgpCV9fUkVHMigweDQwNjAwMjAwLCAoeCk8PDIpCi0jZGVmaW5lIFVEQ0JDUjAgICAgICAgICBfX1JFRygweDQwNjAwMjAwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVAwICovCi0jZGVmaW5lIFVEQ0JDUkEgICAgICAgICBfX1JFRygweDQwNjAwMjA0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBBICovCi0jZGVmaW5lIFVEQ0JDUkIgICAgICAgICBfX1JFRygweDQwNjAwMjA4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBCICovCi0jZGVmaW5lIFVEQ0JDUkMgICAgICAgICBfX1JFRygweDQwNjAwMjBDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBDICovCi0jZGVmaW5lIFVEQ0JDUkQgICAgICAgICBfX1JFRygweDQwNjAwMjEwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBEICovCi0jZGVmaW5lIFVEQ0JDUkUgICAgICAgICBfX1JFRygweDQwNjAwMjE0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBFICovCi0jZGVmaW5lIFVEQ0JDUkYgICAgICAgICBfX1JFRygweDQwNjAwMjE4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBGICovCi0jZGVmaW5lIFVEQ0JDUkcgICAgICAgICBfX1JFRygweDQwNjAwMjFDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBHICovCi0jZGVmaW5lIFVEQ0JDUkggICAgICAgICBfX1JFRygweDQwNjAwMjIwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBIICovCi0jZGVmaW5lIFVEQ0JDUkkgICAgICAgICBfX1JFRygweDQwNjAwMjI0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBJICovCi0jZGVmaW5lIFVEQ0JDUkogICAgICAgICBfX1JFRygweDQwNjAwMjI4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBKICovCi0jZGVmaW5lIFVEQ0JDUksgICAgICAgICBfX1JFRygweDQwNjAwMjJDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBLICovCi0jZGVmaW5lIFVEQ0JDUkwgICAgICAgICBfX1JFRygweDQwNjAwMjMwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBMICovCi0jZGVmaW5lIFVEQ0JDUk0gICAgICAgICBfX1JFRygweDQwNjAwMjM0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBNICovCi0jZGVmaW5lIFVEQ0JDUk4gICAgICAgICBfX1JFRygweDQwNjAwMjM4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBOICovCi0jZGVmaW5lIFVEQ0JDUlAgICAgICAgICBfX1JFRygweDQwNjAwMjNDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBQICovCi0jZGVmaW5lIFVEQ0JDUlEgICAgICAgICBfX1JFRygweDQwNjAwMjQwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBRICovCi0jZGVmaW5lIFVEQ0JDUlIgICAgICAgICBfX1JFRygweDQwNjAwMjQ0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBSICovCi0jZGVmaW5lIFVEQ0JDUlMgICAgICAgICBfX1JFRygweDQwNjAwMjQ4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBTICovCi0jZGVmaW5lIFVEQ0JDUlQgICAgICAgICBfX1JFRygweDQwNjAwMjRDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBUICovCi0jZGVmaW5lIFVEQ0JDUlUgICAgICAgICBfX1JFRygweDQwNjAwMjUwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBVICovCi0jZGVmaW5lIFVEQ0JDUlYgICAgICAgICBfX1JFRygweDQwNjAwMjU0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBWICovCi0jZGVmaW5lIFVEQ0JDUlcgICAgICAgICBfX1JFRygweDQwNjAwMjU4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBXICovCi0jZGVmaW5lIFVEQ0JDUlggICAgICAgICBfX1JFRygweDQwNjAwMjVDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBYICovCi0KLSNkZWZpbmUgVURDRE4oeCkJX19SRUcyKDB4NDA2MDAzMDAsICh4KTw8MikKLSNkZWZpbmUgUEhZU19VRENETih4KQkoMHg0MDYwMDMwMCArICgoeCk8PDIpKQotI2RlZmluZSBQVURDRE4oeCkJKHZvbGF0aWxlIHUzMiAqKShpb19wMnYoUEhZU19VRENETigoeCkpKSkKLSNkZWZpbmUgVURDRFIwICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUDAgKi8KLSNkZWZpbmUgVURDRFJBICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEEgKi8KLSNkZWZpbmUgVURDRFJCICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEIgKi8KLSNkZWZpbmUgVURDRFJDICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEMgKi8KLSNkZWZpbmUgVURDRFJEICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEQgKi8KLSNkZWZpbmUgVURDRFJFICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEUgKi8KLSNkZWZpbmUgVURDRFJGICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEYgKi8KLSNkZWZpbmUgVURDRFJHICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEcgKi8KLSNkZWZpbmUgVURDRFJIICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEggKi8KLSNkZWZpbmUgVURDRFJJICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEkgKi8KLSNkZWZpbmUgVURDRFJKICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEogKi8KLSNkZWZpbmUgVURDRFJLICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMkMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEsgKi8KLSNkZWZpbmUgVURDRFJMICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEwgKi8KLSNkZWZpbmUgVURDRFJNICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE0gKi8KLSNkZWZpbmUgVURDRFJOICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE4gKi8KLSNkZWZpbmUgVURDRFJQICAgICAgICAgIF9fUkVHKDB4NDA2MDAzM0MpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFAgKi8KLSNkZWZpbmUgVURDRFJRICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFEgKi8KLSNkZWZpbmUgVURDRFJSICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFIgKi8KLSNkZWZpbmUgVURDRFJTICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFMgKi8KLSNkZWZpbmUgVURDRFJUICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFQgKi8KLSNkZWZpbmUgVURDRFJVICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFUgKi8KLSNkZWZpbmUgVURDRFJWICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFYgKi8KLSNkZWZpbmUgVURDRFJXICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFcgKi8KLSNkZWZpbmUgVURDRFJYICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFggKi8KLQotI2RlZmluZSBVRENDTih4KSAgICAgICBfX1JFRzIoMHg0MDYwMDQwMCwgKHgpPDwyKQotI2RlZmluZSBVRENDUkEgICAgICAgICAgX19SRUcoMHg0MDYwMDQwNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEEgKi8KLSNkZWZpbmUgVURDQ1JCICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MDgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBCICovCi0jZGVmaW5lIFVEQ0NSQyAgICAgICAgICBfX1JFRygweDQwNjAwNDBDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQyAqLwotI2RlZmluZSBVRENDUkQgICAgICAgICAgX19SRUcoMHg0MDYwMDQxMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEQgKi8KLSNkZWZpbmUgVURDQ1JFICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBFICovCi0jZGVmaW5lIFVEQ0NSRiAgICAgICAgICBfX1JFRygweDQwNjAwNDE4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRiAqLwotI2RlZmluZSBVRENDUkcgICAgICAgICAgX19SRUcoMHg0MDYwMDQxQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEcgKi8KLSNkZWZpbmUgVURDQ1JIICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBIICovCi0jZGVmaW5lIFVEQ0NSSSAgICAgICAgICBfX1JFRygweDQwNjAwNDI0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSSAqLwotI2RlZmluZSBVRENDUkogICAgICAgICAgX19SRUcoMHg0MDYwMDQyOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEogKi8KLSNkZWZpbmUgVURDQ1JLICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MkMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBLICovCi0jZGVmaW5lIFVEQ0NSTCAgICAgICAgICBfX1JFRygweDQwNjAwNDMwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTCAqLwotI2RlZmluZSBVRENDUk0gICAgICAgICAgX19SRUcoMHg0MDYwMDQzNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUE0gKi8KLSNkZWZpbmUgVURDQ1JOICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBOICovCi0jZGVmaW5lIFVEQ0NSUCAgICAgICAgICBfX1JFRygweDQwNjAwNDNDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUCAqLwotI2RlZmluZSBVRENDUlEgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0MCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFEgKi8KLSNkZWZpbmUgVURDQ1JSICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBSICovCi0jZGVmaW5lIFVEQ0NSUyAgICAgICAgICBfX1JFRygweDQwNjAwNDQ4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUyAqLwotI2RlZmluZSBVRENDUlQgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0QykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFQgKi8KLSNkZWZpbmUgVURDQ1JVICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBVICovCi0jZGVmaW5lIFVEQ0NSViAgICAgICAgICBfX1JFRygweDQwNjAwNDU0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQViAqLwotI2RlZmluZSBVRENDUlcgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1OCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFcgKi8KLSNkZWZpbmUgVURDQ1JYICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NUMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBYICovCi0KLSNkZWZpbmUgVURDQ09OUl9DTgkoMHgwMyA8PCAyNSkJLyogQ29uZmlndXJhdGlvbiBOdW1iZXIgKi8KLSNkZWZpbmUgVURDQ09OUl9DTl9TCSgyNSkKLSNkZWZpbmUgVURDQ09OUl9JTgkoMHgwNyA8PCAyMikJLyogSW50ZXJmYWNlIE51bWJlciAqLwotI2RlZmluZSBVRENDT05SX0lOX1MJKDIyKQotI2RlZmluZSBVRENDT05SX0FJU04JKDB4MDcgPDwgMTkpCS8qIEFsdGVybmF0ZSBJbnRlcmZhY2UgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NPTlJfQUlTTl9TCSgxOSkKLSNkZWZpbmUgVURDQ09OUl9FTgkoMHgwZiA8PCAxNSkJLyogRW5kcG9pbnQgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NPTlJfRU5fUwkoMTUpCi0jZGVmaW5lIFVEQ0NPTlJfRVQJKDB4MDMgPDwgMTMpCS8qIEVuZHBvaW50IFR5cGU6ICovCi0jZGVmaW5lIFVEQ0NPTlJfRVRfUwkoMTMpCi0jZGVmaW5lIFVEQ0NPTlJfRVRfSU5UCSgweDAzIDw8IDEzKQkvKiAgIEludGVycnVwdCAqLwotI2RlZmluZSBVRENDT05SX0VUX0JVTEsJKDB4MDIgPDwgMTMpCS8qICAgQnVsayAqLwotI2RlZmluZSBVRENDT05SX0VUX0lTTwkoMHgwMSA8PCAxMykJLyogICBJc29jaHJvbm91cyAqLwotI2RlZmluZSBVRENDT05SX0VUX05VCSgweDAwIDw8IDEzKQkvKiAgIE5vdCB1c2VkICovCi0jZGVmaW5lIFVEQ0NPTlJfRUQJKDEgPDwgMTIpCS8qIEVuZHBvaW50IERpcmVjdGlvbiAqLwotI2RlZmluZSBVRENDT05SX01QUwkoMHgzZmYgPDwgMikJLyogTWF4aW11bSBQYWNrZXQgU2l6ZSAqLwotI2RlZmluZSBVRENDT05SX01QU19TCSgyKQotI2RlZmluZSBVRENDT05SX0RFCSgxIDw8IDEpCS8qIERvdWJsZSBCdWZmZXJpbmcgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NPTlJfRUUJKDEgPDwgMCkJLyogRW5kcG9pbnQgRW5hYmxlICovCi0KLQotI2RlZmluZSBVRENfSU5UX0ZJRk9FUlJPUiAgKDB4MikKLSNkZWZpbmUgVURDX0lOVF9QQUNLRVRDTVAgICgweDEpCi0KLSNkZWZpbmUgVURDX0ZOUl9NQVNLICAgICAoMHg3ZmYpCi0KLSNkZWZpbmUgVURDQ1NSX1dSX01BU0sgICAoVURDQ1NSX0RNRXxVRENDU1JfRlNUKQotI2RlZmluZSBVRENfQkNSX01BU0sgICAgKDB4M2ZmKQotI2VuZGlmCi0KLS8qCiAgKiBGYXN0IEluZnJhcmVkIENvbW11bmljYXRpb24gUG9ydAogICovCiAKQEAgLTEyMzcsMTIwICs4MjUsOSBAQAogI2VuZGlmCiAKIC8qCi0gKiBQb3dlciBNYW5hZ2VyCisgKiBQb3dlciBNYW5hZ2VyIC0gc2VlIHB4YTJ4eC1yZWdzLmgKICAqLwogCi0jZGVmaW5lIFBNQ1IJCV9fUkVHKDB4NDBGMDAwMDApICAvKiBQb3dlciBNYW5hZ2VyIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUFNTUgkJX19SRUcoMHg0MEYwMDAwNCkgIC8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBTUFIJCV9fUkVHKDB4NDBGMDAwMDgpICAvKiBQb3dlciBNYW5hZ2VyIFNjcmF0Y2ggUGFkIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBXRVIJCV9fUkVHKDB4NDBGMDAwMEMpICAvKiBQb3dlciBNYW5hZ2VyIFdha2UtdXAgRW5hYmxlIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBSRVIJCV9fUkVHKDB4NDBGMDAwMTApICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gUmlzaW5nLUVkZ2UgRGV0ZWN0IEVuYWJsZSBSZWdpc3RlciAqLwotI2RlZmluZSBQRkVSCQlfX1JFRygweDQwRjAwMDE0KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIEZhbGxpbmctRWRnZSBEZXRlY3QgRW5hYmxlIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBFRFIJCV9fUkVHKDB4NDBGMDAwMTgpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gRWRnZSBEZXRlY3QgU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBDRlIJCV9fUkVHKDB4NDBGMDAwMUMpICAvKiBQb3dlciBNYW5hZ2VyIEdlbmVyYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBQR1NSMAkJX19SRUcoMHg0MEYwMDAyMCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbMzEtMF0gKi8KLSNkZWZpbmUgUEdTUjEJCV9fUkVHKDB4NDBGMDAwMjQpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzYzLTMyXSAqLwotI2RlZmluZSBQR1NSMgkJX19SRUcoMHg0MEYwMDAyOCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbODQtNjRdICovCi0jZGVmaW5lIFBHU1IzCQlfX1JFRygweDQwRjAwMDJDKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFsxMTgtOTZdICovCi0jZGVmaW5lIFJDU1IJCV9fUkVHKDB4NDBGMDAwMzApICAvKiBSZXNldCBDb250cm9sbGVyIFN0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFBTTFIJCV9fUkVHKDB4NDBGMDAwMzQpCS8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgQ29uZmlnIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBTVFIJCV9fUkVHKDB4NDBGMDAwMzgpCS8qUG93ZXIgTWFuYWdlciBTdGFuZGJ5IENvbmZpZyBSZWdpc3RlciAqLwotI2RlZmluZSBQU05SCQlfX1JFRygweDQwRjAwMDNDKQkvKlBvd2VyIE1hbmFnZXIgU2Vuc2UgQ29uZmlnIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBWQ1IJCV9fUkVHKDB4NDBGMDAwNDApCS8qUG93ZXIgTWFuYWdlciBWb2x0YWdlQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBQS1dSCQlfX1JFRygweDQwRjAwMDUwKQkvKiBQb3dlciBNYW5hZ2VyIEtCIFdha2UtdXAgRW5hYmxlIFJlZyAqLwotI2RlZmluZSBQS1NSCQlfX1JFRygweDQwRjAwMDU0KQkvKiBQb3dlciBNYW5hZ2VyIEtCIExldmVsLURldGVjdCBSZWdpc3RlciAqLwotI2RlZmluZSBQQ01EKHgpCV9fUkVHMigweDQwRjAwMDgwLCAoeCk8PDIpCi0jZGVmaW5lIFBDTUQwCV9fUkVHKDB4NDBGMDAwODAgKyAwICogNCkKLSNkZWZpbmUgUENNRDEJX19SRUcoMHg0MEYwMDA4MCArIDEgKiA0KQotI2RlZmluZSBQQ01EMglfX1JFRygweDQwRjAwMDgwICsgMiAqIDQpCi0jZGVmaW5lIFBDTUQzCV9fUkVHKDB4NDBGMDAwODAgKyAzICogNCkKLSNkZWZpbmUgUENNRDQJX19SRUcoMHg0MEYwMDA4MCArIDQgKiA0KQotI2RlZmluZSBQQ01ENQlfX1JFRygweDQwRjAwMDgwICsgNSAqIDQpCi0jZGVmaW5lIFBDTUQ2CV9fUkVHKDB4NDBGMDAwODAgKyA2ICogNCkKLSNkZWZpbmUgUENNRDcJX19SRUcoMHg0MEYwMDA4MCArIDcgKiA0KQotI2RlZmluZSBQQ01EOAlfX1JFRygweDQwRjAwMDgwICsgOCAqIDQpCi0jZGVmaW5lIFBDTUQ5CV9fUkVHKDB4NDBGMDAwODAgKyA5ICogNCkKLSNkZWZpbmUgUENNRDEwCV9fUkVHKDB4NDBGMDAwODAgKyAxMCAqIDQpCi0jZGVmaW5lIFBDTUQxMQlfX1JFRygweDQwRjAwMDgwICsgMTEgKiA0KQotI2RlZmluZSBQQ01EMTIJX19SRUcoMHg0MEYwMDA4MCArIDEyICogNCkKLSNkZWZpbmUgUENNRDEzCV9fUkVHKDB4NDBGMDAwODAgKyAxMyAqIDQpCi0jZGVmaW5lIFBDTUQxNAlfX1JFRygweDQwRjAwMDgwICsgMTQgKiA0KQotI2RlZmluZSBQQ01EMTUJX19SRUcoMHg0MEYwMDA4MCArIDE1ICogNCkKLSNkZWZpbmUgUENNRDE2CV9fUkVHKDB4NDBGMDAwODAgKyAxNiAqIDQpCi0jZGVmaW5lIFBDTUQxNwlfX1JFRygweDQwRjAwMDgwICsgMTcgKiA0KQotI2RlZmluZSBQQ01EMTgJX19SRUcoMHg0MEYwMDA4MCArIDE4ICogNCkKLSNkZWZpbmUgUENNRDE5CV9fUkVHKDB4NDBGMDAwODAgKyAxOSAqIDQpCi0jZGVmaW5lIFBDTUQyMAlfX1JFRygweDQwRjAwMDgwICsgMjAgKiA0KQotI2RlZmluZSBQQ01EMjEJX19SRUcoMHg0MEYwMDA4MCArIDIxICogNCkKLSNkZWZpbmUgUENNRDIyCV9fUkVHKDB4NDBGMDAwODAgKyAyMiAqIDQpCi0jZGVmaW5lIFBDTUQyMwlfX1JFRygweDQwRjAwMDgwICsgMjMgKiA0KQotI2RlZmluZSBQQ01EMjQJX19SRUcoMHg0MEYwMDA4MCArIDI0ICogNCkKLSNkZWZpbmUgUENNRDI1CV9fUkVHKDB4NDBGMDAwODAgKyAyNSAqIDQpCi0jZGVmaW5lIFBDTUQyNglfX1JFRygweDQwRjAwMDgwICsgMjYgKiA0KQotI2RlZmluZSBQQ01EMjcJX19SRUcoMHg0MEYwMDA4MCArIDI3ICogNCkKLSNkZWZpbmUgUENNRDI4CV9fUkVHKDB4NDBGMDAwODAgKyAyOCAqIDQpCi0jZGVmaW5lIFBDTUQyOQlfX1JFRygweDQwRjAwMDgwICsgMjkgKiA0KQotI2RlZmluZSBQQ01EMzAJX19SRUcoMHg0MEYwMDA4MCArIDMwICogNCkKLSNkZWZpbmUgUENNRDMxCV9fUkVHKDB4NDBGMDAwODAgKyAzMSAqIDQpCi0KLSNkZWZpbmUgUENNRF9NQkMJKDE8PDEyKQotI2RlZmluZSBQQ01EX0RDRQkoMTw8MTEpCi0jZGVmaW5lIFBDTURfTEMJKDE8PDEwKQotLyogRklYTUU6ICBQQ01EX1NRQyBuZWVkIGJlIGNoZWNrZWQuICAgKi8KLSNkZWZpbmUgUENNRF9TUUMJKDM8PDgpCS8qIGN1cnJlbnRseSBvbmx5IGJpdCA4IGlzIGNoYW5nZWFibGUsCi0JCQkJICAgYml0IDkgc2hvdWxkIGJlIDAgYWxsIGRheS4gKi8KLSNkZWZpbmUgUFZDUl9WQ1NBCSgweDE8PDE0KQotI2RlZmluZSBQVkNSX0NvbW1hbmREZWxheSAoMHhmODApCi0jZGVmaW5lIFBDRlJfUEkyQ19FTgkoMHgxIDw8IDYpCi0KLSNkZWZpbmUgUFNTUl9PVEdQSAkoMSA8PCA2KQkvKiBPVEcgUGVyaXBoZXJhbCBjb250cm9sIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9SREgJKDEgPDwgNSkJLyogUmVhZCBEaXNhYmxlIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9QSAkJKDEgPDwgNCkJLyogUGVyaXBoZXJhbCBDb250cm9sIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9TVFMJKDEgPDwgMykJLyogU3RhbmRieSBNb2RlIFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX1ZGUwkoMSA8PCAyKQkvKiBWREQgRmF1bHQgU3RhdHVzICovCi0jZGVmaW5lIFBTU1JfQkZTCSgxIDw8IDEpCS8qIEJhdHRlcnkgRmF1bHQgU3RhdHVzICovCi0jZGVmaW5lIFBTU1JfU1NTCSgxIDw8IDApCS8qIFNvZnR3YXJlIFNsZWVwIFN0YXR1cyAqLwotCi0jZGVmaW5lIFBTTFJfU0xfUk9ECSgxIDw8IDIwKQkvKiBTbGVlcC1Nb2RlL0RlcHAtU2xlZXAgTW9kZSBuUkVTRVRfT1VUIERpc2FibGUgKi8KLQotI2RlZmluZSBQQ0ZSX1JPCQkoMSA8PCAxNSkJLyogUkRIIE92ZXJyaWRlICovCi0jZGVmaW5lIFBDRlJfUE8JCSgxIDw8IDE0KQkvKiBQSCBPdmVycmlkZSAqLwotI2RlZmluZSBQQ0ZSX0dQUk9ECSgxIDw8IDEyKQkvKiBHUElPIG5SRVNFVF9PVVQgRGlzYWJsZSAqLwotI2RlZmluZSBQQ0ZSX0wxX0VOCSgxIDw8IDExKQkvKiBTbGVlcCBNb2RlIEwxIGNvbnZlcnRlciBFbmFibGUgKi8KLSNkZWZpbmUgUENGUl9GVkMJKDEgPDwgMTApCS8qIEZyZXF1ZW5jeS9Wb2x0YWdlIENoYW5nZSAqLwotI2RlZmluZSBQQ0ZSX0RDX0VOCSgxIDw8IDcpCS8qIFNsZWVwL2RlZXAtc2xlZXAgREMtREMgQ29udmVydGVyIEVuYWJsZSAqLwotI2RlZmluZSBQQ0ZSX1BJMkNFTgkoMSA8PCA2KQkvKiBFbmFibGUgUEkyQyBjb250cm9sbGVyICovCi0jZGVmaW5lIFBDRlJfR1BSX0VOCSgxIDw8IDQpCS8qIG5SRVNFVF9HUElPIFBpbiBFbmFibGUgKi8KLSNkZWZpbmUgUENGUl9EUwkJKDEgPDwgMykJLyogRGVlcCBTbGVlcCBNb2RlICovCi0jZGVmaW5lIFBDRlJfRlMJCSgxIDw8IDIpCS8qIEZsb2F0IFN0YXRpYyBDaGlwIFNlbGVjdHMgKi8KLSNkZWZpbmUgUENGUl9GUAkJKDEgPDwgMSkJLyogRmxvYXQgUENNQ0lBIGNvbnRyb2xzICovCi0jZGVmaW5lIFBDRlJfT1BERQkoMSA8PCAwKQkvKiAzLjY4NjQgTUh6IG9zY2lsbGF0b3IgcG93ZXItZG93biBlbmFibGUgKi8KLQotI2RlZmluZSBSQ1NSX0dQUgkoMSA8PCAzKQkvKiBHUElPIFJlc2V0ICovCi0jZGVmaW5lIFJDU1JfU01SCSgxIDw8IDIpCS8qIFNsZWVwIE1vZGUgKi8KLSNkZWZpbmUgUkNTUl9XRFIJKDEgPDwgMSkJLyogV2F0Y2hkb2cgUmVzZXQgKi8KLSNkZWZpbmUgUkNTUl9IV1IJKDEgPDwgMCkJLyogSGFyZHdhcmUgUmVzZXQgKi8KLQotI2RlZmluZSBQV0VSX0dQSU8oTmIpCSgxIDw8IE5iKQkvKiBHUElPIFswLi4xNV0gd2FrZS11cCBlbmFibGUgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzAJUFdFUl9HUElPICgwKQkvKiBHUElPICBbMF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEJUFdFUl9HUElPICgxKQkvKiBHUElPICBbMV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzIJUFdFUl9HUElPICgyKQkvKiBHUElPICBbMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzMJUFdFUl9HUElPICgzKQkvKiBHUElPICBbM10gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzQJUFdFUl9HUElPICg0KQkvKiBHUElPICBbNF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzUJUFdFUl9HUElPICg1KQkvKiBHUElPICBbNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzYJUFdFUl9HUElPICg2KQkvKiBHUElPICBbNl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzcJUFdFUl9HUElPICg3KQkvKiBHUElPICBbN10gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzgJUFdFUl9HUElPICg4KQkvKiBHUElPICBbOF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzkJUFdFUl9HUElPICg5KQkvKiBHUElPICBbOV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEwCVBXRVJfR1BJTyAoMTApCS8qIEdQSU8gWzEwXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTEJUFdFUl9HUElPICgxMSkJLyogR1BJTyBbMTFdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xMglQV0VSX0dQSU8gKDEyKQkvKiBHUElPIFsxMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEzCVBXRVJfR1BJTyAoMTMpCS8qIEdQSU8gWzEzXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTQJUFdFUl9HUElPICgxNCkJLyogR1BJTyBbMTRdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xNQlQV0VSX0dQSU8gKDE1KQkvKiBHUElPIFsxNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfUlRDCTB4ODAwMDAwMDAJLyogUlRDIGFsYXJtIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotCiAvKgogICogU1NQIFNlcmlhbCBQb3J0IFJlZ2lzdGVycyAtIHNlZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcmVncy1zc3AuaAogICovCkBAIC0xMzYwLDUyICs4MzcsOSBAQAogICovCiAKIC8qCi0gKiBDb3JlIENsb2NrCisgKiBDb3JlIENsb2NrIC0gc2VlIGluY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oCiAgKi8KIAotI2RlZmluZSBDQ0NSCQlfX1JFRygweDQxMzAwMDAwKSAgLyogQ29yZSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lIENLRU4JCV9fUkVHKDB4NDEzMDAwMDQpICAvKiBDbG9jayBFbmFibGUgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgT1NDQwkJX19SRUcoMHg0MTMwMDAwOCkgIC8qIE9zY2lsbGF0b3IgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDQ1NSCQlfX1JFRygweDQxMzAwMDBDKSAgLyogQ29yZSBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBDQ0NSX05fTUFTSwkweDAzODAJCS8qIFJ1biBNb2RlIEZyZXF1ZW5jeSB0byBUdXJibyBNb2RlIEZyZXF1ZW5jeSBNdWx0aXBsaWVyICovCi0jZGVmaW5lIENDQ1JfTV9NQVNLCTB4MDA2MAkJLyogTWVtb3J5IEZyZXF1ZW5jeSB0byBSdW4gTW9kZSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLwotI2RlZmluZSBDQ0NSX0xfTUFTSwkweDAwMWYJCS8qIENyeXN0YWwgRnJlcXVlbmN5IHRvIE1lbW9yeSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLwotCi0jZGVmaW5lIENLRU5fQUM5N0NPTkYgICAoMzEpICAgIC8qIEFDOTcgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENLRU5fQ0FNRVJBCSgyNCkJLyogQ2FtZXJhIEludGVyZmFjZSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9TU1AxCSgyMykJLyogU1NQMSBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX01FTUMJKDIyKQkvKiBNZW1vcnkgQ29udHJvbGxlciBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NRU1TVEsJKDIxKQkvKiBNZW1vcnkgU3RpY2sgSG9zdCBDb250cm9sbGVyICovCi0jZGVmaW5lIENLRU5fSU0JCSgyMCkJLyogSW50ZXJuYWwgTWVtb3J5IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0tFWVBBRAkoMTkpCS8qIEtleXBhZCBJbnRlcmZhY2UgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fVVNJTQkoMTgpCS8qIFVTSU0gVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NU0wJKDE3KQkvKiBNU0wgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9MQ0QJKDE2KQkvKiBMQ0QgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9QV1JJMkMJKDE1KQkvKiBQV1IgSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fSTJDCSgxNCkJLyogSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fRklDUAkoMTMpCS8qIEZJQ1AgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NTUMJKDEyKQkvKiBNTUMgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9VU0IJKDExKQkvKiBVU0IgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9BU1NQCSgxMCkJLyogQVNTUCAoU1NQMykgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fVVNCSE9TVAkoMTApCS8qIFVTQiBIb3N0IFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fT1NUSU1FUgkoOSkJLyogT1MgVGltZXIgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9OU1NQCSg5KQkvKiBOU1NQIChTU1AyKSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9JMlMJKDgpCS8qIEkyUyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0JUVUFSVAkoNykJLyogQlRVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fRkZVQVJUCSg2KQkvKiBGRlVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9TVFVBUlQJKDUpCS8qIFNUVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0hXVUFSVAkoNCkJLyogSFdVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1NQMwkoNCkJLyogU1NQMyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1NTUAkoMykJLyogU1NQIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1NQMgkoMykJLyogU1NQMiBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0FDOTcJKDIpCS8qIEFDOTcgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9QV00xCSgxKQkvKiBQV00xIENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1BXTTAJKDApCS8qIFBXTTAgQ2xvY2sgRW5hYmxlICovCi0KLSNkZWZpbmUgT1NDQ19PT04JKDEgPDwgMSkJLyogMzIuNzY4a0h6IE9PTiAod3JpdGUtb25jZSBvbmx5IGJpdCkgKi8KLSNkZWZpbmUgT1NDQ19PT0sJKDEgPDwgMCkJLyogMzIuNzY4a0h6IE9PSyAocmVhZC1vbmx5IGJpdCkgKi8KLQogI2lmZGVmIENPTkZJR19QWEEyN3gKIAogLyogQ2FtZXJhIEludGVyZmFjZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTI1eC11ZGMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyNXgtdWRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQwMzA1OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyNXgtdWRjLmgKQEAgLTAsMCArMSwxNjMgQEAKKyNpZm5kZWYgX0FTTV9BUkNIX1BYQTI1WF9VRENfSAorI2RlZmluZSBfQVNNX0FSQ0hfUFhBMjVYX1VEQ19ICisKKyNpZmRlZiBfQVNNX0FSQ0hfUFhBMjdYX1VEQ19ICisjZXJyb3IgWW91IGNhbid0IGluY2x1ZGUgYm90aCBQWEEyNXggYW5kIFBYQTI3eCBVREMgc3VwcG9ydAorI2VuZGlmCisKKyNkZWZpbmUgVURDX1JFUzEJX19SRUcoMHg0MDYwMDAwNCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDEgKi8KKyNkZWZpbmUgVURDX1JFUzIJX19SRUcoMHg0MDYwMDAwOCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDIgKi8KKyNkZWZpbmUgVURDX1JFUzMJX19SRUcoMHg0MDYwMDAwQykgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDMgKi8KKworI2RlZmluZSBVRENDUgkJX19SRUcoMHg0MDYwMDAwMCkgIC8qIFVEQyBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NSX1VERQkoMSA8PCAwKQkvKiBVREMgZW5hYmxlICovCisjZGVmaW5lIFVEQ0NSX1VEQQkoMSA8PCAxKQkvKiBVREMgYWN0aXZlICovCisjZGVmaW5lIFVEQ0NSX1JTTQkoMSA8PCAyKQkvKiBEZXZpY2UgcmVzdW1lICovCisjZGVmaW5lIFVEQ0NSX1JFU0lSCSgxIDw8IDMpCS8qIFJlc3VtZSBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRENDUl9TVVNJUgkoMSA8PCA0KQkvKiBTdXNwZW5kIGludGVycnVwdCByZXF1ZXN0ICovCisjZGVmaW5lIFVEQ0NSX1NSTQkoMSA8PCA1KQkvKiBTdXNwZW5kL3Jlc3VtZSBpbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBVRENDUl9SU1RJUgkoMSA8PCA2KQkvKiBSZXNldCBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRENDUl9SRU0JKDEgPDwgNykJLyogUmVzZXQgaW50ZXJydXB0IG1hc2sgKi8KKworI2RlZmluZSBVRENDUzAJCV9fUkVHKDB4NDA2MDAwMTApICAvKiBVREMgRW5kcG9pbnQgMCBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzBfT1BSCSgxIDw8IDApCS8qIE9VVCBwYWNrZXQgcmVhZHkgKi8KKyNkZWZpbmUgVURDQ1MwX0lQUgkoMSA8PCAxKQkvKiBJTiBwYWNrZXQgcmVhZHkgKi8KKyNkZWZpbmUgVURDQ1MwX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCisjZGVmaW5lIFVEQ0NTMF9EUldGCSgxIDw8IDMpCS8qIERldmljZSByZW1vdGUgd2FrZXVwIGZlYXR1cmUgKi8KKyNkZWZpbmUgVURDQ1MwX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTMF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1MwX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm8gZW1wdHkgKi8KKyNkZWZpbmUgVURDQ1MwX1NBCSgxIDw8IDcpCS8qIFNldHVwIGFjdGl2ZSAqLworCisvKiBCdWxrIElOIC0gRW5kcG9pbnQgMSw2LDExICovCisjZGVmaW5lIFVEQ0NTMQkJX19SRUcoMHg0MDYwMDAxNCkgIC8qIFVEQyBFbmRwb2ludCAxIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1M2CQlfX1JFRygweDQwNjAwMDI4KSAgLyogVURDIEVuZHBvaW50IDYgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzExCQlfX1JFRygweDQwNjAwMDNDKSAgLyogVURDIEVuZHBvaW50IDExIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19CSV9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCisjZGVmaW5lIFVEQ0NTX0JJX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KKyNkZWZpbmUgVURDQ1NfQklfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NfQklfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KKyNkZWZpbmUgVURDQ1NfQklfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfQklfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworLyogQnVsayBPVVQgLSBFbmRwb2ludCAyLDcsMTIgKi8KKyNkZWZpbmUgVURDQ1MyCQlfX1JFRygweDQwNjAwMDE4KSAgLyogVURDIEVuZHBvaW50IDIgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1M3CQlfX1JFRygweDQwNjAwMDJDKSAgLyogVURDIEVuZHBvaW50IDcgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxMgkJX19SRUcoMHg0MDYwMDA0MCkgIC8qIFVEQyBFbmRwb2ludCAxMiAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFVEQ0NTX0JPX1JGUwkoMSA8PCAwKQkvKiBSZWNlaXZlIEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19CT19SUEMJKDEgPDwgMSkJLyogUmVjZWl2ZSBwYWNrZXQgY29tcGxldGUgKi8KKyNkZWZpbmUgVURDQ1NfQk9fRE1FCSgxIDw8IDMpCS8qIERNQSBlbmFibGUgKi8KKyNkZWZpbmUgVURDQ1NfQk9fU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfQk9fRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCisjZGVmaW5lIFVEQ0NTX0JPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLworCisvKiBJc29jaHJvbm91cyBJTiAtIEVuZHBvaW50IDMsOCwxMyAqLworI2RlZmluZSBVRENDUzMJCV9fUkVHKDB4NDA2MDAwMUMpICAvKiBVREMgRW5kcG9pbnQgMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTOAkJX19SRUcoMHg0MDYwMDAzMCkgIC8qIFVEQyBFbmRwb2ludCA4IChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxMwkJX19SRUcoMHg0MDYwMDA0NCkgIC8qIFVEQyBFbmRwb2ludCAxMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVURDQ1NfSUlfVEZTCSgxIDw8IDApCS8qIFRyYW5zbWl0IEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19JSV9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lJX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCisjZGVmaW5lIFVEQ0NTX0lJX1RVUgkoMSA8PCAzKQkvKiBUcmFuc21pdCBGSUZPIHVuZGVycnVuICovCisjZGVmaW5lIFVEQ0NTX0lJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworLyogSXNvY2hyb25vdXMgT1VUIC0gRW5kcG9pbnQgNCw5LDE0ICovCisjZGVmaW5lIFVEQ0NTNAkJX19SRUcoMHg0MDYwMDAyMCkgIC8qIFVEQyBFbmRwb2ludCA0IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTOQkJX19SRUcoMHg0MDYwMDAzNCkgIC8qIFVEQyBFbmRwb2ludCA5IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTQJCV9fUkVHKDB4NDA2MDAwNDgpICAvKiBVREMgRW5kcG9pbnQgMTQgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19JT19SRlMJKDEgPDwgMCkJLyogUmVjZWl2ZSBGSUZPIHNlcnZpY2UgKi8KKyNkZWZpbmUgVURDQ1NfSU9fUlBDCSgxIDw8IDEpCS8qIFJlY2VpdmUgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lPX1JPRgkoMSA8PCAyKQkvKiBSZWNlaXZlIG92ZXJmbG93ICovCisjZGVmaW5lIFVEQ0NTX0lPX0RNRQkoMSA8PCAzKQkvKiBETUEgZW5hYmxlICovCisjZGVmaW5lIFVEQ0NTX0lPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCisjZGVmaW5lIFVEQ0NTX0lPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLworCisvKiBJbnRlcnJ1cHQgSU4gLSBFbmRwb2ludCA1LDEwLDE1ICovCisjZGVmaW5lIFVEQ0NTNQkJX19SRUcoMHg0MDYwMDAyNCkgIC8qIFVEQyBFbmRwb2ludCA1IChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTAJCV9fUkVHKDB4NDA2MDAwMzgpICAvKiBVREMgRW5kcG9pbnQgMTAgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxNQkJX19SRUcoMHg0MDYwMDA0QykgIC8qIFVEQyBFbmRwb2ludCAxNSAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFVEQ0NTX0lOVF9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCisjZGVmaW5lIFVEQ0NTX0lOVF9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lOVF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLworI2RlZmluZSBVRENDU19JTlRfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KKyNkZWZpbmUgVURDQ1NfSU5UX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0lOVF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfSU5UX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworI2RlZmluZSBVRk5SSAkJX19SRUcoMHg0MDYwMDA2MCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgSGlnaCAqLworI2RlZmluZSBVRk5STAkJX19SRUcoMHg0MDYwMDA2NCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgTG93ICovCisjZGVmaW5lIFVCQ1IyCQlfX1JFRygweDQwNjAwMDY4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDIgKi8KKyNkZWZpbmUgVUJDUjQJCV9fUkVHKDB4NDA2MDAwNmMpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgNCAqLworI2RlZmluZSBVQkNSNwkJX19SRUcoMHg0MDYwMDA3MCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA3ICovCisjZGVmaW5lIFVCQ1I5CQlfX1JFRygweDQwNjAwMDc0KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDkgKi8KKyNkZWZpbmUgVUJDUjEyCQlfX1JFRygweDQwNjAwMDc4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDEyICovCisjZGVmaW5lIFVCQ1IxNAkJX19SRUcoMHg0MDYwMDA3YykgIC8qIFVEQyBCeXRlIENvdW50IFJlZyAxNCAqLworI2RlZmluZSBVRERSMAkJX19SRUcoMHg0MDYwMDA4MCkgIC8qIFVEQyBFbmRwb2ludCAwIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEJCV9fUkVHKDB4NDA2MDAxMDApICAvKiBVREMgRW5kcG9pbnQgMSBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIyCQlfX1JFRygweDQwNjAwMTgwKSAgLyogVURDIEVuZHBvaW50IDIgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSMwkJX19SRUcoMHg0MDYwMDIwMCkgIC8qIFVEQyBFbmRwb2ludCAzIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjQJCV9fUkVHKDB4NDA2MDA0MDApICAvKiBVREMgRW5kcG9pbnQgNCBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI1CQlfX1JFRygweDQwNjAwMEEwKSAgLyogVURDIEVuZHBvaW50IDUgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSNgkJX19SRUcoMHg0MDYwMDYwMCkgIC8qIFVEQyBFbmRwb2ludCA2IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjcJCV9fUkVHKDB4NDA2MDA2ODApICAvKiBVREMgRW5kcG9pbnQgNyBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI4CQlfX1JFRygweDQwNjAwNzAwKSAgLyogVURDIEVuZHBvaW50IDggRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSOQkJX19SRUcoMHg0MDYwMDkwMCkgIC8qIFVEQyBFbmRwb2ludCA5IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEwCQlfX1JFRygweDQwNjAwMEMwKSAgLyogVURDIEVuZHBvaW50IDEwIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjExCQlfX1JFRygweDQwNjAwQjAwKSAgLyogVURDIEVuZHBvaW50IDExIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEyCQlfX1JFRygweDQwNjAwQjgwKSAgLyogVURDIEVuZHBvaW50IDEyIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEzCQlfX1JFRygweDQwNjAwQzAwKSAgLyogVURDIEVuZHBvaW50IDEzIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjE0CQlfX1JFRygweDQwNjAwRTAwKSAgLyogVURDIEVuZHBvaW50IDE0IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjE1CQlfX1JFRygweDQwNjAwMEUwKSAgLyogVURDIEVuZHBvaW50IDE1IERhdGEgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVSUNSMAkJX19SRUcoMHg0MDYwMDA1MCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAwICovCisKKyNkZWZpbmUgVUlDUjBfSU0wCSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDAgKi8KKyNkZWZpbmUgVUlDUjBfSU0xCSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDEgKi8KKyNkZWZpbmUgVUlDUjBfSU0yCSgxIDw8IDIpCS8qIEludGVycnVwdCBtYXNrIGVwIDIgKi8KKyNkZWZpbmUgVUlDUjBfSU0zCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDMgKi8KKyNkZWZpbmUgVUlDUjBfSU00CSgxIDw8IDQpCS8qIEludGVycnVwdCBtYXNrIGVwIDQgKi8KKyNkZWZpbmUgVUlDUjBfSU01CSgxIDw8IDUpCS8qIEludGVycnVwdCBtYXNrIGVwIDUgKi8KKyNkZWZpbmUgVUlDUjBfSU02CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDYgKi8KKyNkZWZpbmUgVUlDUjBfSU03CSgxIDw8IDcpCS8qIEludGVycnVwdCBtYXNrIGVwIDcgKi8KKworI2RlZmluZSBVSUNSMQkJX19SRUcoMHg0MDYwMDA1NCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAxICovCisKKyNkZWZpbmUgVUlDUjFfSU04CSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDggKi8KKyNkZWZpbmUgVUlDUjFfSU05CSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDkgKi8KKyNkZWZpbmUgVUlDUjFfSU0xMAkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMCAqLworI2RlZmluZSBVSUNSMV9JTTExCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDExICovCisjZGVmaW5lIFVJQ1IxX0lNMTIJKDEgPDwgNCkJLyogSW50ZXJydXB0IG1hc2sgZXAgMTIgKi8KKyNkZWZpbmUgVUlDUjFfSU0xMwkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMyAqLworI2RlZmluZSBVSUNSMV9JTTE0CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDE0ICovCisjZGVmaW5lIFVJQ1IxX0lNMTUJKDEgPDwgNykJLyogSW50ZXJydXB0IG1hc2sgZXAgMTUgKi8KKworI2RlZmluZSBVU0lSMAkJX19SRUcoMHg0MDYwMDA1OCkgIC8qIFVEQyBTdGF0dXMgSW50ZXJydXB0IFJlZ2lzdGVyIDAgKi8KKworI2RlZmluZSBVU0lSMF9JUjAJKDEgPDwgMCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMCAqLworI2RlZmluZSBVU0lSMF9JUjEJKDEgPDwgMSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMSAqLworI2RlZmluZSBVU0lSMF9JUjIJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMiAqLworI2RlZmluZSBVU0lSMF9JUjMJKDEgPDwgMykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMyAqLworI2RlZmluZSBVU0lSMF9JUjQJKDEgPDwgNCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNCAqLworI2RlZmluZSBVU0lSMF9JUjUJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNSAqLworI2RlZmluZSBVU0lSMF9JUjYJKDEgPDwgNikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNiAqLworI2RlZmluZSBVU0lSMF9JUjcJKDEgPDwgNykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNyAqLworCisjZGVmaW5lIFVTSVIxCQlfX1JFRygweDQwNjAwMDVDKSAgLyogVURDIFN0YXR1cyBJbnRlcnJ1cHQgUmVnaXN0ZXIgMSAqLworCisjZGVmaW5lIFVTSVIxX0lSOAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA4ICovCisjZGVmaW5lIFVTSVIxX0lSOQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA5ICovCisjZGVmaW5lIFVTSVIxX0lSMTAJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTAgKi8KKyNkZWZpbmUgVVNJUjFfSVIxMQkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMSAqLworI2RlZmluZSBVU0lSMV9JUjEyCSgxIDw8IDQpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEyICovCisjZGVmaW5lIFVTSVIxX0lSMTMJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTMgKi8KKyNkZWZpbmUgVVNJUjFfSVIxNAkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxNCAqLworI2RlZmluZSBVU0lSMV9JUjE1CSgxIDw8IDcpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDE1ICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTI3eC11ZGMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyN3gtdWRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMxY2Y3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMjd4LXVkYy5oCkBAIC0wLDAgKzEsMjU3IEBACisjaWZuZGVmIF9BU01fQVJDSF9QWEEyN1hfVURDX0gKKyNkZWZpbmUgX0FTTV9BUkNIX1BYQTI3WF9VRENfSAorCisjaWZkZWYgX0FTTV9BUkNIX1BYQTI1WF9VRENfSAorI2Vycm9yIFlvdSBjYW5ub3QgaW5jbHVkZSBib3RoIFBYQTI1eCBhbmQgUFhBMjd4IFVEQyBzdXBwb3J0CisjZW5kaWYKKworI2RlZmluZSBVRENDUiAgICAgICAgICAgX19SRUcoMHg0MDYwMDAwMCkgLyogVURDIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1JfT0VOCSgxIDw8IDMxKQkvKiBPbi10aGUtR28gRW5hYmxlICovCisjZGVmaW5lIFVEQ0NSX0FBTFRITlAJKDEgPDwgMzApCS8qIEEtZGV2aWNlIEFsdGVybmF0ZSBIb3N0IE5lZ290aWF0aW9uCisJCQkJCSAgIFByb3RvY29sIFBvcnQgU3VwcG9ydCAqLworI2RlZmluZSBVRENDUl9BSE5QCSgxIDw8IDI5KQkvKiBBLWRldmljZSBIb3N0IE5lZ290aWF0aW9uIFByb3RvY29sCisJCQkJCSAgIFN1cHBvcnQgKi8KKyNkZWZpbmUgVURDQ1JfQkhOUAkoMSA8PCAyOCkJLyogQi1kZXZpY2UgSG9zdCBOZWdvdGlhdGlvbiBQcm90b2NvbAorCQkJCQkgICBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1JfRFdSRQkoMSA8PCAxNikJLyogRGV2aWNlIFJlbW90ZSBXYWtlLXVwIEVuYWJsZSAqLworI2RlZmluZSBVRENDUl9BQ04JKDB4MDMgPDwgMTEpCS8qIEFjdGl2ZSBVREMgY29uZmlndXJhdGlvbiBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ1JfQUNOX1MJMTEKKyNkZWZpbmUgVURDQ1JfQUlOCSgweDA3IDw8IDgpCS8qIEFjdGl2ZSBVREMgaW50ZXJmYWNlIE51bWJlciAqLworI2RlZmluZSBVRENDUl9BSU5fUwk4CisjZGVmaW5lIFVEQ0NSX0FBSVNOCSgweDA3IDw8IDUpCS8qIEFjdGl2ZSBVREMgQWx0ZXJuYXRlIEludGVyZmFjZQorCQkJCQkgICBTZXR0aW5nIE51bWJlciAqLworI2RlZmluZSBVRENDUl9BQUlTTl9TCTUKKyNkZWZpbmUgVURDQ1JfU01BQwkoMSA8PCA0KQkvKiBTd2l0Y2ggRW5kcG9pbnQgTWVtb3J5IHRvIEFjdGl2ZQorCQkJCQkgICBDb25maWd1cmF0aW9uICovCisjZGVmaW5lIFVEQ0NSX0VNQ0UJKDEgPDwgMykJLyogRW5kcG9pbnQgTWVtb3J5IENvbmZpZ3VyYXRpb24KKwkJCQkJICAgRXJyb3IgKi8KKyNkZWZpbmUgVURDQ1JfVURSCSgxIDw8IDIpCS8qIFVEQyBSZXN1bWUgKi8KKyNkZWZpbmUgVURDQ1JfVURBCSgxIDw8IDEpCS8qIFVEQyBBY3RpdmUgKi8KKyNkZWZpbmUgVURDQ1JfVURFCSgxIDw8IDApCS8qIFVEQyBFbmFibGUgKi8KKworI2RlZmluZSBVRENJQ1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwNCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMCAqLworI2RlZmluZSBVRENJQ1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAwOCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMSAqLworI2RlZmluZSBVRENJQ1JfRklGT0VSUgkoMSA8PCAxKQkvKiBGSUZPIEVycm9yIGludGVycnVwdCBmb3IgRVAgKi8KKyNkZWZpbmUgVURDSUNSX1BLVENPTVBMICgxIDw8IDApCS8qIFBhY2tldCBDb21wbGV0ZSBpbnRlcnJ1cHQgZm9yIEVQICovCisKKyNkZWZpbmUgVURDX0lOVF9GSUZPRVJST1IgICgweDIpCisjZGVmaW5lIFVEQ19JTlRfUEFDS0VUQ01QICAoMHgxKQorCisjZGVmaW5lIFVEQ0lDUl9JTlQobixpbnRyKSAoKChpbnRyKSAmIDB4MDMpIDw8ICgoKG4pICYgMHgwRikgKiAyKSkKKyNkZWZpbmUgVURDSUNSMV9JRUNDCSgxIDw8IDMxKQkvKiBJbnRFbiAtIENvbmZpZ3VyYXRpb24gQ2hhbmdlICovCisjZGVmaW5lIFVEQ0lDUjFfSUVTT0YJKDEgPDwgMzApCS8qIEludEVuIC0gU3RhcnQgb2YgRnJhbWUgKi8KKyNkZWZpbmUgVURDSUNSMV9JRVJVCSgxIDw8IDI5KQkvKiBJbnRFbiAtIFJlc3VtZSAqLworI2RlZmluZSBVRENJQ1IxX0lFU1UJKDEgPDwgMjgpCS8qIEludEVuIC0gU3VzcGVuZCAqLworI2RlZmluZSBVRENJQ1IxX0lFUlMJKDEgPDwgMjcpCS8qIEludEVuIC0gUmVzZXQgKi8KKworI2RlZmluZSBVRENJU1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwQykgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBVRENJU1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAxMCkgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBVRENJU1JfSU5UKG4saW50cikgKCgoaW50cikgJiAweDAzKSA8PCAoKChuKSAmIDB4MEYpICogMikpCisjZGVmaW5lIFVEQ0lTUjFfSVJDQwkoMSA8PCAzMSkJLyogSW50UmVxIC0gQ29uZmlndXJhdGlvbiBDaGFuZ2UgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlNPRgkoMSA8PCAzMCkJLyogSW50UmVxIC0gU3RhcnQgb2YgRnJhbWUgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlJVCSgxIDw8IDI5KQkvKiBJbnRSZXEgLSBSZXN1bWUgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlNVCSgxIDw8IDI4KQkvKiBJbnRSZXEgLSBTdXNwZW5kICovCisjZGVmaW5lIFVEQ0lTUjFfSVJSUwkoMSA8PCAyNykJLyogSW50UmVxIC0gUmVzZXQgKi8KKworI2RlZmluZSBVRENGTlIgICAgICAgICAgX19SRUcoMHg0MDYwMDAxNCkgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciAqLworI2RlZmluZSBVRENPVEdJQ1IJX19SRUcoMHg0MDYwMDAxOCkgLyogVURDIE9uLVRoZS1HbyBpbnRlcnJ1cHQgY29udHJvbCAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVTRgkoMSA8PCAyNCkJLyogT1RHIFNFVF9GRUFUVVJFIGNvbW1hbmQgcmVjdmQgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFWFIJKDEgPDwgMTcpCS8qIEV4dHJhIFRyYW5zY2lldmVyIEludGVycnVwdAorCQkJCQkgICBSaXNpbmcgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVhGCSgxIDw8IDE2KQkvKiBFeHRyYSBUcmFuc2NpZXZlciBJbnRlcnJ1cHQKKwkJCQkJICAgRmFsbGluZyBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFVlY0MFIgKDEgPDwgOSkJLyogT1RHIFZidXMgVmFsaWQgNC4wViBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDBGICgxIDw8IDgpCS8qIE9URyBWYnVzIFZhbGlkIDQuMFYgRmFsbGluZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFVlY0NFIgKDEgPDwgNykJLyogT1RHIFZidXMgVmFsaWQgNC40ViBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDRGICgxIDw8IDYpCS8qIE9URyBWYnVzIFZhbGlkIDQuNFYgRmFsbGluZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFU1ZSCSgxIDw8IDUpCS8qIE9URyBTZXNzaW9uIFZhbGlkIFJpc2luZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFU1ZGCSgxIDw8IDQpCS8qIE9URyBTZXNzaW9uIFZhbGlkIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNEUgkoMSA8PCAzKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBSaXNpbmcKKwkJCQkJICAgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNERgkoMSA8PCAyKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBGYWxsaW5nCisJCQkJCSAgIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVJRFIJKDEgPDwgMSkJLyogT1RHIElEIENoYW5nZSBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRUlERgkoMSA8PCAwKQkvKiBPVEcgSUQgQ2hhbmdlIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisKKyNkZWZpbmUgVVAyT0NSCQkgIF9fUkVHKDB4NDA2MDAwMjApICAvKiBVU0IgUG9ydCAyIE91dHB1dCBDb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIFVQM09DUgkJICBfX1JFRygweDQwNjAwMDI0KSAgLyogVVNCIFBvcnQgMiBPdXRwdXQgQ29udHJvbCByZWdpc3RlciAqLworCisjZGVmaW5lIFVQMk9DUl9DUFZFTgkoMSA8PCAwKQkvKiBDaGFyZ2UgUHVtcCBWYnVzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfQ1BWUEUJKDEgPDwgMSkJLyogQ2hhcmdlIFB1bXAgVmJ1cyBQdWxzZSBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RQUERFCSgxIDw8IDIpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgRG93biBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RNUERFCSgxIDw8IDMpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQtIFB1bGwgRG93biBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RQUFVFCSgxIDw8IDQpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgVXAgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9ETVBVRQkoMSA8PCA1KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIFVwIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRFBQVUJFCSgxIDw8IDYpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgVXAgQnlwYXNzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRE1QVUJFCSgxIDw8IDcpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQtIFB1bGwgVXAgQnlwYXNzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRVhTUAkJKDEgPDwgOCkJLyogRXh0ZXJuYWwgVHJhbnNjZWl2ZXIgU3BlZWQgQ29udHJvbCAqLworI2RlZmluZSBVUDJPQ1JfRVhTVVMJKDEgPDwgOSkJLyogRXh0ZXJuYWwgVHJhbnNjZWl2ZXIgU3BlZWQgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9JRE9OCQkoMSA8PCAxMCkJLyogT1RHIElEIFJlYWQgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9IWFMJCSgxIDw8IDE2KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBPdXRwdXQgU2VsZWN0ICovCisjZGVmaW5lIFVQMk9DUl9IWE9FCQkoMSA8PCAxNykJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgT3V0cHV0IEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfU0VPUwkJKDEgPDwgMjQpCS8qIFNpbmdsZS1FbmRlZCBPdXRwdXQgU2VsZWN0ICovCisKKyNkZWZpbmUgVURDQ1NOKHgpCV9fUkVHMigweDQwNjAwMTAwLCAoeCkgPDwgMikKKyNkZWZpbmUgVURDQ1NSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAxMDApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IDAgKi8KKyNkZWZpbmUgVURDQ1NSMF9TQQkoMSA8PCA3KQkvKiBTZXR1cCBBY3RpdmUgKi8KKyNkZWZpbmUgVURDQ1NSMF9STkUJKDEgPDwgNikJLyogUmVjZWl2ZSBGSUZPIE5vdCBFbXB0eSAqLworI2RlZmluZSBVRENDU1IwX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBTdGFsbCAqLworI2RlZmluZSBVRENDU1IwX1NTVAkoMSA8PCA0KQkvKiBTZW50IFN0YWxsICovCisjZGVmaW5lIFVEQ0NTUjBfRE1FCSgxIDw8IDMpCS8qIERNQSBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1NSMF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHJhbnNtaXQgRklGTyAqLworI2RlZmluZSBVRENDU1IwX0lQUgkoMSA8PCAxKQkvKiBJTiBQYWNrZXQgUmVhZHkgKi8KKyNkZWZpbmUgVURDQ1NSMF9PUEMJKDEgPDwgMCkJLyogT1VUIFBhY2tldCBDb21wbGV0ZSAqLworCisjZGVmaW5lIFVEQ0NTUkEgICAgICAgICBfX1JFRygweDQwNjAwMTA0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBBICovCisjZGVmaW5lIFVEQ0NTUkIgICAgICAgICBfX1JFRygweDQwNjAwMTA4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBCICovCisjZGVmaW5lIFVEQ0NTUkMgICAgICAgICBfX1JFRygweDQwNjAwMTBDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBDICovCisjZGVmaW5lIFVEQ0NTUkQgICAgICAgICBfX1JFRygweDQwNjAwMTEwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBEICovCisjZGVmaW5lIFVEQ0NTUkUgICAgICAgICBfX1JFRygweDQwNjAwMTE0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBFICovCisjZGVmaW5lIFVEQ0NTUkYgICAgICAgICBfX1JFRygweDQwNjAwMTE4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBGICovCisjZGVmaW5lIFVEQ0NTUkcgICAgICAgICBfX1JFRygweDQwNjAwMTFDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBHICovCisjZGVmaW5lIFVEQ0NTUkggICAgICAgICBfX1JFRygweDQwNjAwMTIwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBIICovCisjZGVmaW5lIFVEQ0NTUkkgICAgICAgICBfX1JFRygweDQwNjAwMTI0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBJICovCisjZGVmaW5lIFVEQ0NTUkogICAgICAgICBfX1JFRygweDQwNjAwMTI4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBKICovCisjZGVmaW5lIFVEQ0NTUksgICAgICAgICBfX1JFRygweDQwNjAwMTJDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBLICovCisjZGVmaW5lIFVEQ0NTUkwgICAgICAgICBfX1JFRygweDQwNjAwMTMwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBMICovCisjZGVmaW5lIFVEQ0NTUk0gICAgICAgICBfX1JFRygweDQwNjAwMTM0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBNICovCisjZGVmaW5lIFVEQ0NTUk4gICAgICAgICBfX1JFRygweDQwNjAwMTM4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBOICovCisjZGVmaW5lIFVEQ0NTUlAgICAgICAgICBfX1JFRygweDQwNjAwMTNDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBQICovCisjZGVmaW5lIFVEQ0NTUlEgICAgICAgICBfX1JFRygweDQwNjAwMTQwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBRICovCisjZGVmaW5lIFVEQ0NTUlIgICAgICAgICBfX1JFRygweDQwNjAwMTQ0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBSICovCisjZGVmaW5lIFVEQ0NTUlMgICAgICAgICBfX1JFRygweDQwNjAwMTQ4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBTICovCisjZGVmaW5lIFVEQ0NTUlQgICAgICAgICBfX1JFRygweDQwNjAwMTRDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBUICovCisjZGVmaW5lIFVEQ0NTUlUgICAgICAgICBfX1JFRygweDQwNjAwMTUwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBVICovCisjZGVmaW5lIFVEQ0NTUlYgICAgICAgICBfX1JFRygweDQwNjAwMTU0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBWICovCisjZGVmaW5lIFVEQ0NTUlcgICAgICAgICBfX1JFRygweDQwNjAwMTU4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBXICovCisjZGVmaW5lIFVEQ0NTUlggICAgICAgICBfX1JFRygweDQwNjAwMTVDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBYICovCisKKyNkZWZpbmUgVURDQ1NSX0RQRQkoMSA8PCA5KQkvKiBEYXRhIFBhY2tldCBFcnJvciAqLworI2RlZmluZSBVRENDU1JfRkVGCSgxIDw8IDgpCS8qIEZsdXNoIEVuZHBvaW50IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NSX1NQCSgxIDw8IDcpCS8qIFNob3J0IFBhY2tldCBDb250cm9sL1N0YXR1cyAqLworI2RlZmluZSBVRENDU1JfQk5FCSgxIDw8IDYpCS8qIEJ1ZmZlciBOb3QgRW1wdHkgKElOIGVuZHBvaW50cykgKi8KKyNkZWZpbmUgVURDQ1NSX0JORgkoMSA8PCA2KQkvKiBCdWZmZXIgTm90IEZ1bGwgKE9VVCBlbmRwb2ludHMpICovCisjZGVmaW5lIFVEQ0NTUl9GU1QJKDEgPDwgNSkJLyogRm9yY2UgU1RBTEwgKi8KKyNkZWZpbmUgVURDQ1NSX1NTVAkoMSA8PCA0KQkvKiBTZW50IFNUQUxMICovCisjZGVmaW5lIFVEQ0NTUl9ETUUJKDEgPDwgMykJLyogRE1BIEVuYWJsZSAqLworI2RlZmluZSBVRENDU1JfVFJOCSgxIDw8IDIpCS8qIFR4L1J4IE5BSyAqLworI2RlZmluZSBVRENDU1JfUEMJKDEgPDwgMSkJLyogUGFja2V0IENvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTUl9GUwkoMSA8PCAwKQkvKiBGSUZPIG5lZWRzIHNlcnZpY2UgKi8KKworI2RlZmluZSBVRENCQ04oeCkJX19SRUcyKDB4NDA2MDAyMDAsICh4KTw8MikKKyNkZWZpbmUgVURDQkNSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUDAgKi8KKyNkZWZpbmUgVURDQkNSQSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEEgKi8KKyNkZWZpbmUgVURDQkNSQiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEIgKi8KKyNkZWZpbmUgVURDQkNSQyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMEMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEMgKi8KKyNkZWZpbmUgVURDQkNSRCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEQgKi8KKyNkZWZpbmUgVURDQkNSRSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEUgKi8KKyNkZWZpbmUgVURDQkNSRiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEYgKi8KKyNkZWZpbmUgVURDQkNSRyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMUMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEcgKi8KKyNkZWZpbmUgVURDQkNSSCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEggKi8KKyNkZWZpbmUgVURDQkNSSSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEkgKi8KKyNkZWZpbmUgVURDQkNSSiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEogKi8KKyNkZWZpbmUgVURDQkNSSyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMkMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEsgKi8KKyNkZWZpbmUgVURDQkNSTCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEwgKi8KKyNkZWZpbmUgVURDQkNSTSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUE0gKi8KKyNkZWZpbmUgVURDQkNSTiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUE4gKi8KKyNkZWZpbmUgVURDQkNSUCAgICAgICAgIF9fUkVHKDB4NDA2MDAyM0MpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFAgKi8KKyNkZWZpbmUgVURDQkNSUSAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFEgKi8KKyNkZWZpbmUgVURDQkNSUiAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFIgKi8KKyNkZWZpbmUgVURDQkNSUyAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFMgKi8KKyNkZWZpbmUgVURDQkNSVCAgICAgICAgIF9fUkVHKDB4NDA2MDAyNEMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFQgKi8KKyNkZWZpbmUgVURDQkNSVSAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFUgKi8KKyNkZWZpbmUgVURDQkNSViAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFYgKi8KKyNkZWZpbmUgVURDQkNSVyAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFcgKi8KKyNkZWZpbmUgVURDQkNSWCAgICAgICAgIF9fUkVHKDB4NDA2MDAyNUMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFggKi8KKworI2RlZmluZSBVRENETih4KQlfX1JFRzIoMHg0MDYwMDMwMCwgKHgpPDwyKQorI2RlZmluZSBQSFlTX1VEQ0ROKHgpCSgweDQwNjAwMzAwICsgKCh4KTw8MikpCisjZGVmaW5lIFBVRENETih4KQkodm9sYXRpbGUgdTMyICopKGlvX3AydihQSFlTX1VEQ0ROKCh4KSkpKQorI2RlZmluZSBVRENEUjAgICAgICAgICAgX19SRUcoMHg0MDYwMDMwMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQMCAqLworI2RlZmluZSBVRENEUkEgICAgICAgICAgX19SRUcoMHg0MDYwMDMwNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQQSAqLworI2RlZmluZSBVRENEUkIgICAgICAgICAgX19SRUcoMHg0MDYwMDMwOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQQiAqLworI2RlZmluZSBVRENEUkMgICAgICAgICAgX19SRUcoMHg0MDYwMDMwQykgLyogRGF0YSBSZWdpc3RlciAtIEVQQyAqLworI2RlZmluZSBVRENEUkQgICAgICAgICAgX19SRUcoMHg0MDYwMDMxMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRCAqLworI2RlZmluZSBVRENEUkUgICAgICAgICAgX19SRUcoMHg0MDYwMDMxNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRSAqLworI2RlZmluZSBVRENEUkYgICAgICAgICAgX19SRUcoMHg0MDYwMDMxOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRiAqLworI2RlZmluZSBVRENEUkcgICAgICAgICAgX19SRUcoMHg0MDYwMDMxQykgLyogRGF0YSBSZWdpc3RlciAtIEVQRyAqLworI2RlZmluZSBVRENEUkggICAgICAgICAgX19SRUcoMHg0MDYwMDMyMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSCAqLworI2RlZmluZSBVRENEUkkgICAgICAgICAgX19SRUcoMHg0MDYwMDMyNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSSAqLworI2RlZmluZSBVRENEUkogICAgICAgICAgX19SRUcoMHg0MDYwMDMyOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSiAqLworI2RlZmluZSBVRENEUksgICAgICAgICAgX19SRUcoMHg0MDYwMDMyQykgLyogRGF0YSBSZWdpc3RlciAtIEVQSyAqLworI2RlZmluZSBVRENEUkwgICAgICAgICAgX19SRUcoMHg0MDYwMDMzMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTCAqLworI2RlZmluZSBVRENEUk0gICAgICAgICAgX19SRUcoMHg0MDYwMDMzNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTSAqLworI2RlZmluZSBVRENEUk4gICAgICAgICAgX19SRUcoMHg0MDYwMDMzOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTiAqLworI2RlZmluZSBVRENEUlAgICAgICAgICAgX19SRUcoMHg0MDYwMDMzQykgLyogRGF0YSBSZWdpc3RlciAtIEVQUCAqLworI2RlZmluZSBVRENEUlEgICAgICAgICAgX19SRUcoMHg0MDYwMDM0MCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUSAqLworI2RlZmluZSBVRENEUlIgICAgICAgICAgX19SRUcoMHg0MDYwMDM0NCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUiAqLworI2RlZmluZSBVRENEUlMgICAgICAgICAgX19SRUcoMHg0MDYwMDM0OCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUyAqLworI2RlZmluZSBVRENEUlQgICAgICAgICAgX19SRUcoMHg0MDYwMDM0QykgLyogRGF0YSBSZWdpc3RlciAtIEVQVCAqLworI2RlZmluZSBVRENEUlUgICAgICAgICAgX19SRUcoMHg0MDYwMDM1MCkgLyogRGF0YSBSZWdpc3RlciAtIEVQVSAqLworI2RlZmluZSBVRENEUlYgICAgICAgICAgX19SRUcoMHg0MDYwMDM1NCkgLyogRGF0YSBSZWdpc3RlciAtIEVQViAqLworI2RlZmluZSBVRENEUlcgICAgICAgICAgX19SRUcoMHg0MDYwMDM1OCkgLyogRGF0YSBSZWdpc3RlciAtIEVQVyAqLworI2RlZmluZSBVRENEUlggICAgICAgICAgX19SRUcoMHg0MDYwMDM1QykgLyogRGF0YSBSZWdpc3RlciAtIEVQWCAqLworCisjZGVmaW5lIFVEQ0NOKHgpICAgICAgIF9fUkVHMigweDQwNjAwNDAwLCAoeCk8PDIpCisjZGVmaW5lIFVEQ0NSQSAgICAgICAgICBfX1JFRygweDQwNjAwNDA0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQSAqLworI2RlZmluZSBVRENDUkIgICAgICAgICAgX19SRUcoMHg0MDYwMDQwOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEIgKi8KKyNkZWZpbmUgVURDQ1JDICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MEMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBDICovCisjZGVmaW5lIFVEQ0NSRCAgICAgICAgICBfX1JFRygweDQwNjAwNDEwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRCAqLworI2RlZmluZSBVRENDUkUgICAgICAgICAgX19SRUcoMHg0MDYwMDQxNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEUgKi8KKyNkZWZpbmUgVURDQ1JGICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBGICovCisjZGVmaW5lIFVEQ0NSRyAgICAgICAgICBfX1JFRygweDQwNjAwNDFDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRyAqLworI2RlZmluZSBVRENDUkggICAgICAgICAgX19SRUcoMHg0MDYwMDQyMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEggKi8KKyNkZWZpbmUgVURDQ1JJICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBJICovCisjZGVmaW5lIFVEQ0NSSiAgICAgICAgICBfX1JFRygweDQwNjAwNDI4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSiAqLworI2RlZmluZSBVRENDUksgICAgICAgICAgX19SRUcoMHg0MDYwMDQyQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEsgKi8KKyNkZWZpbmUgVURDQ1JMICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBMICovCisjZGVmaW5lIFVEQ0NSTSAgICAgICAgICBfX1JFRygweDQwNjAwNDM0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTSAqLworI2RlZmluZSBVRENDUk4gICAgICAgICAgX19SRUcoMHg0MDYwMDQzOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUE4gKi8KKyNkZWZpbmUgVURDQ1JQICAgICAgICAgIF9fUkVHKDB4NDA2MDA0M0MpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBQICovCisjZGVmaW5lIFVEQ0NSUSAgICAgICAgICBfX1JFRygweDQwNjAwNDQwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUSAqLworI2RlZmluZSBVRENDUlIgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0NCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFIgKi8KKyNkZWZpbmUgVURDQ1JTICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBTICovCisjZGVmaW5lIFVEQ0NSVCAgICAgICAgICBfX1JFRygweDQwNjAwNDRDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQVCAqLworI2RlZmluZSBVRENDUlUgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1MCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFUgKi8KKyNkZWZpbmUgVURDQ1JWICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBWICovCisjZGVmaW5lIFVEQ0NSVyAgICAgICAgICBfX1JFRygweDQwNjAwNDU4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQVyAqLworI2RlZmluZSBVRENDUlggICAgICAgICAgX19SRUcoMHg0MDYwMDQ1QykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFggKi8KKworI2RlZmluZSBVRENDT05SX0NOCSgweDAzIDw8IDI1KQkvKiBDb25maWd1cmF0aW9uIE51bWJlciAqLworI2RlZmluZSBVRENDT05SX0NOX1MJKDI1KQorI2RlZmluZSBVRENDT05SX0lOCSgweDA3IDw8IDIyKQkvKiBJbnRlcmZhY2UgTnVtYmVyICovCisjZGVmaW5lIFVEQ0NPTlJfSU5fUwkoMjIpCisjZGVmaW5lIFVEQ0NPTlJfQUlTTgkoMHgwNyA8PCAxOSkJLyogQWx0ZXJuYXRlIEludGVyZmFjZSBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ09OUl9BSVNOX1MJKDE5KQorI2RlZmluZSBVRENDT05SX0VOCSgweDBmIDw8IDE1KQkvKiBFbmRwb2ludCBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ09OUl9FTl9TCSgxNSkKKyNkZWZpbmUgVURDQ09OUl9FVAkoMHgwMyA8PCAxMykJLyogRW5kcG9pbnQgVHlwZTogKi8KKyNkZWZpbmUgVURDQ09OUl9FVF9TCSgxMykKKyNkZWZpbmUgVURDQ09OUl9FVF9JTlQJKDB4MDMgPDwgMTMpCS8qICAgSW50ZXJydXB0ICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfQlVMSwkoMHgwMiA8PCAxMykJLyogICBCdWxrICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfSVNPCSgweDAxIDw8IDEzKQkvKiAgIElzb2Nocm9ub3VzICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfTlUJKDB4MDAgPDwgMTMpCS8qICAgTm90IHVzZWQgKi8KKyNkZWZpbmUgVURDQ09OUl9FRAkoMSA8PCAxMikJLyogRW5kcG9pbnQgRGlyZWN0aW9uICovCisjZGVmaW5lIFVEQ0NPTlJfTVBTCSgweDNmZiA8PCAyKQkvKiBNYXhpbXVtIFBhY2tldCBTaXplICovCisjZGVmaW5lIFVEQ0NPTlJfTVBTX1MJKDIpCisjZGVmaW5lIFVEQ0NPTlJfREUJKDEgPDwgMSkJLyogRG91YmxlIEJ1ZmZlcmluZyBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ09OUl9FRQkoMSA8PCAwKQkvKiBFbmRwb2ludCBFbmFibGUgKi8KKworCisjZGVmaW5lIFVEQ19JTlRfRklGT0VSUk9SICAoMHgyKQorI2RlZmluZSBVRENfSU5UX1BBQ0tFVENNUCAgKDB4MSkKKworI2RlZmluZSBVRENfRk5SX01BU0sgICAgICgweDdmZikKKworI2RlZmluZSBVRENDU1JfV1JfTUFTSyAgIChVRENDU1JfRE1FfFVEQ0NTUl9GU1QpCisjZGVmaW5lIFVEQ19CQ1JfTUFTSyAgICAoMHgzZmYpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaAppbmRleCBiODFjZDYzLi42ZWYxZGQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19BU01fQVJDSF9QWEEyWFhfR1BJT19ICiAjZGVmaW5lIF9fQVNNX0FSQ0hfUFhBMlhYX0dQSU9fSAogCisjd2FybmluZyBQbGVhc2UgdXNlIG1mcC1weGEyWzU3XXguaCBpbnN0ZWFkIG9mIHB4YTJ4eC1ncGlvLmgKKwogLyogR1BJTyBhbHRlcm5hdGUgZnVuY3Rpb24gYXNzaWdubWVudHMgKi8KIAogI2RlZmluZSBHUElPMV9SU1QJCTEJLyogcmVzZXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1yZWdzLmgKaW5kZXggOTU1M2I1NC4uNzNlMGEzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1yZWdzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1yZWdzLmgKQEAgLTgxLDQgKzgxLDE2NiBAQAogCiAjZW5kaWYKIAorCisvKgorICogUG93ZXIgTWFuYWdlcgorICovCisKKyNkZWZpbmUgUE1DUgkJX19SRUcoMHg0MEYwMDAwMCkgIC8qIFBvd2VyIE1hbmFnZXIgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBQU1NSCQlfX1JFRygweDQwRjAwMDA0KSAgLyogUG93ZXIgTWFuYWdlciBTbGVlcCBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFNQUgkJX19SRUcoMHg0MEYwMDAwOCkgIC8qIFBvd2VyIE1hbmFnZXIgU2NyYXRjaCBQYWQgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFdFUgkJX19SRUcoMHg0MEYwMDAwQykgIC8qIFBvd2VyIE1hbmFnZXIgV2FrZS11cCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFJFUgkJX19SRUcoMHg0MEYwMDAxMCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBSaXNpbmctRWRnZSBEZXRlY3QgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFBGRVIJCV9fUkVHKDB4NDBGMDAwMTQpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gRmFsbGluZy1FZGdlIERldGVjdCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUEVEUgkJX19SRUcoMHg0MEYwMDAxOCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBFZGdlIERldGVjdCBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUENGUgkJX19SRUcoMHg0MEYwMDAxQykgIC8qIFBvd2VyIE1hbmFnZXIgR2VuZXJhbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCisjZGVmaW5lIFBHU1IwCQlfX1JFRygweDQwRjAwMDIwKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFszMS0wXSAqLworI2RlZmluZSBQR1NSMQkJX19SRUcoMHg0MEYwMDAyNCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbNjMtMzJdICovCisjZGVmaW5lIFBHU1IyCQlfX1JFRygweDQwRjAwMDI4KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFs4NC02NF0gKi8KKyNkZWZpbmUgUEdTUjMJCV9fUkVHKDB4NDBGMDAwMkMpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzExOC05Nl0gKi8KKyNkZWZpbmUgUkNTUgkJX19SRUcoMHg0MEYwMDAzMCkgIC8qIFJlc2V0IENvbnRyb2xsZXIgU3RhdHVzIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgUFNMUgkJX19SRUcoMHg0MEYwMDAzNCkJLyogUG93ZXIgTWFuYWdlciBTbGVlcCBDb25maWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFNUUgkJX19SRUcoMHg0MEYwMDAzOCkJLyogUG93ZXIgTWFuYWdlciBTdGFuZGJ5IENvbmZpZyBSZWdpc3RlciAqLworI2RlZmluZSBQU05SCQlfX1JFRygweDQwRjAwMDNDKQkvKiBQb3dlciBNYW5hZ2VyIFNlbnNlIENvbmZpZyBSZWdpc3RlciAqLworI2RlZmluZSBQVkNSCQlfX1JFRygweDQwRjAwMDQwKQkvKiBQb3dlciBNYW5hZ2VyIFZvbHRhZ2VDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFBLV1IJCV9fUkVHKDB4NDBGMDAwNTApCS8qIFBvd2VyIE1hbmFnZXIgS0IgV2FrZS11cCBFbmFibGUgUmVnICovCisjZGVmaW5lIFBLU1IJCV9fUkVHKDB4NDBGMDAwNTQpCS8qIFBvd2VyIE1hbmFnZXIgS0IgTGV2ZWwtRGV0ZWN0IFJlZ2lzdGVyICovCisjZGVmaW5lIFBDTUQoeCkJX19SRUcyKDB4NDBGMDAwODAsICh4KTw8MikKKyNkZWZpbmUgUENNRDAJX19SRUcoMHg0MEYwMDA4MCArIDAgKiA0KQorI2RlZmluZSBQQ01EMQlfX1JFRygweDQwRjAwMDgwICsgMSAqIDQpCisjZGVmaW5lIFBDTUQyCV9fUkVHKDB4NDBGMDAwODAgKyAyICogNCkKKyNkZWZpbmUgUENNRDMJX19SRUcoMHg0MEYwMDA4MCArIDMgKiA0KQorI2RlZmluZSBQQ01ENAlfX1JFRygweDQwRjAwMDgwICsgNCAqIDQpCisjZGVmaW5lIFBDTUQ1CV9fUkVHKDB4NDBGMDAwODAgKyA1ICogNCkKKyNkZWZpbmUgUENNRDYJX19SRUcoMHg0MEYwMDA4MCArIDYgKiA0KQorI2RlZmluZSBQQ01ENwlfX1JFRygweDQwRjAwMDgwICsgNyAqIDQpCisjZGVmaW5lIFBDTUQ4CV9fUkVHKDB4NDBGMDAwODAgKyA4ICogNCkKKyNkZWZpbmUgUENNRDkJX19SRUcoMHg0MEYwMDA4MCArIDkgKiA0KQorI2RlZmluZSBQQ01EMTAJX19SRUcoMHg0MEYwMDA4MCArIDEwICogNCkKKyNkZWZpbmUgUENNRDExCV9fUkVHKDB4NDBGMDAwODAgKyAxMSAqIDQpCisjZGVmaW5lIFBDTUQxMglfX1JFRygweDQwRjAwMDgwICsgMTIgKiA0KQorI2RlZmluZSBQQ01EMTMJX19SRUcoMHg0MEYwMDA4MCArIDEzICogNCkKKyNkZWZpbmUgUENNRDE0CV9fUkVHKDB4NDBGMDAwODAgKyAxNCAqIDQpCisjZGVmaW5lIFBDTUQxNQlfX1JFRygweDQwRjAwMDgwICsgMTUgKiA0KQorI2RlZmluZSBQQ01EMTYJX19SRUcoMHg0MEYwMDA4MCArIDE2ICogNCkKKyNkZWZpbmUgUENNRDE3CV9fUkVHKDB4NDBGMDAwODAgKyAxNyAqIDQpCisjZGVmaW5lIFBDTUQxOAlfX1JFRygweDQwRjAwMDgwICsgMTggKiA0KQorI2RlZmluZSBQQ01EMTkJX19SRUcoMHg0MEYwMDA4MCArIDE5ICogNCkKKyNkZWZpbmUgUENNRDIwCV9fUkVHKDB4NDBGMDAwODAgKyAyMCAqIDQpCisjZGVmaW5lIFBDTUQyMQlfX1JFRygweDQwRjAwMDgwICsgMjEgKiA0KQorI2RlZmluZSBQQ01EMjIJX19SRUcoMHg0MEYwMDA4MCArIDIyICogNCkKKyNkZWZpbmUgUENNRDIzCV9fUkVHKDB4NDBGMDAwODAgKyAyMyAqIDQpCisjZGVmaW5lIFBDTUQyNAlfX1JFRygweDQwRjAwMDgwICsgMjQgKiA0KQorI2RlZmluZSBQQ01EMjUJX19SRUcoMHg0MEYwMDA4MCArIDI1ICogNCkKKyNkZWZpbmUgUENNRDI2CV9fUkVHKDB4NDBGMDAwODAgKyAyNiAqIDQpCisjZGVmaW5lIFBDTUQyNwlfX1JFRygweDQwRjAwMDgwICsgMjcgKiA0KQorI2RlZmluZSBQQ01EMjgJX19SRUcoMHg0MEYwMDA4MCArIDI4ICogNCkKKyNkZWZpbmUgUENNRDI5CV9fUkVHKDB4NDBGMDAwODAgKyAyOSAqIDQpCisjZGVmaW5lIFBDTUQzMAlfX1JFRygweDQwRjAwMDgwICsgMzAgKiA0KQorI2RlZmluZSBQQ01EMzEJX19SRUcoMHg0MEYwMDA4MCArIDMxICogNCkKKworI2RlZmluZSBQQ01EX01CQwkoMTw8MTIpCisjZGVmaW5lIFBDTURfRENFCSgxPDwxMSkKKyNkZWZpbmUgUENNRF9MQwkoMTw8MTApCisvKiBGSVhNRTogIFBDTURfU1FDIG5lZWQgYmUgY2hlY2tlZC4gICAqLworI2RlZmluZSBQQ01EX1NRQwkoMzw8OCkJLyogY3VycmVudGx5IG9ubHkgYml0IDggaXMgY2hhbmdlYWJsZSwKKwkJCQkgICBiaXQgOSBzaG91bGQgYmUgMCBhbGwgZGF5LiAqLworI2RlZmluZSBQVkNSX1ZDU0EJKDB4MTw8MTQpCisjZGVmaW5lIFBWQ1JfQ29tbWFuZERlbGF5ICgweGY4MCkKKyNkZWZpbmUgUENGUl9QSTJDX0VOCSgweDEgPDwgNikKKworI2RlZmluZSBQU1NSX09UR1BICSgxIDw8IDYpCS8qIE9URyBQZXJpcGhlcmFsIGNvbnRyb2wgSG9sZCAqLworI2RlZmluZSBQU1NSX1JESAkoMSA8PCA1KQkvKiBSZWFkIERpc2FibGUgSG9sZCAqLworI2RlZmluZSBQU1NSX1BICQkoMSA8PCA0KQkvKiBQZXJpcGhlcmFsIENvbnRyb2wgSG9sZCAqLworI2RlZmluZSBQU1NSX1NUUwkoMSA8PCAzKQkvKiBTdGFuZGJ5IE1vZGUgU3RhdHVzICovCisjZGVmaW5lIFBTU1JfVkZTCSgxIDw8IDIpCS8qIFZERCBGYXVsdCBTdGF0dXMgKi8KKyNkZWZpbmUgUFNTUl9CRlMJKDEgPDwgMSkJLyogQmF0dGVyeSBGYXVsdCBTdGF0dXMgKi8KKyNkZWZpbmUgUFNTUl9TU1MJKDEgPDwgMCkJLyogU29mdHdhcmUgU2xlZXAgU3RhdHVzICovCisKKyNkZWZpbmUgUFNMUl9TTF9ST0QJKDEgPDwgMjApCS8qIFNsZWVwLU1vZGUvRGVwcC1TbGVlcCBNb2RlIG5SRVNFVF9PVVQgRGlzYWJsZSAqLworCisjZGVmaW5lIFBDRlJfUk8JCSgxIDw8IDE1KQkvKiBSREggT3ZlcnJpZGUgKi8KKyNkZWZpbmUgUENGUl9QTwkJKDEgPDwgMTQpCS8qIFBIIE92ZXJyaWRlICovCisjZGVmaW5lIFBDRlJfR1BST0QJKDEgPDwgMTIpCS8qIEdQSU8gblJFU0VUX09VVCBEaXNhYmxlICovCisjZGVmaW5lIFBDRlJfTDFfRU4JKDEgPDwgMTEpCS8qIFNsZWVwIE1vZGUgTDEgY29udmVydGVyIEVuYWJsZSAqLworI2RlZmluZSBQQ0ZSX0ZWQwkoMSA8PCAxMCkJLyogRnJlcXVlbmN5L1ZvbHRhZ2UgQ2hhbmdlICovCisjZGVmaW5lIFBDRlJfRENfRU4JKDEgPDwgNykJLyogU2xlZXAvZGVlcC1zbGVlcCBEQy1EQyBDb252ZXJ0ZXIgRW5hYmxlICovCisjZGVmaW5lIFBDRlJfUEkyQ0VOCSgxIDw8IDYpCS8qIEVuYWJsZSBQSTJDIGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgUENGUl9HUFJfRU4JKDEgPDwgNCkJLyogblJFU0VUX0dQSU8gUGluIEVuYWJsZSAqLworI2RlZmluZSBQQ0ZSX0RTCQkoMSA8PCAzKQkvKiBEZWVwIFNsZWVwIE1vZGUgKi8KKyNkZWZpbmUgUENGUl9GUwkJKDEgPDwgMikJLyogRmxvYXQgU3RhdGljIENoaXAgU2VsZWN0cyAqLworI2RlZmluZSBQQ0ZSX0ZQCQkoMSA8PCAxKQkvKiBGbG9hdCBQQ01DSUEgY29udHJvbHMgKi8KKyNkZWZpbmUgUENGUl9PUERFCSgxIDw8IDApCS8qIDMuNjg2NCBNSHogb3NjaWxsYXRvciBwb3dlci1kb3duIGVuYWJsZSAqLworCisjZGVmaW5lIFJDU1JfR1BSCSgxIDw8IDMpCS8qIEdQSU8gUmVzZXQgKi8KKyNkZWZpbmUgUkNTUl9TTVIJKDEgPDwgMikJLyogU2xlZXAgTW9kZSAqLworI2RlZmluZSBSQ1NSX1dEUgkoMSA8PCAxKQkvKiBXYXRjaGRvZyBSZXNldCAqLworI2RlZmluZSBSQ1NSX0hXUgkoMSA8PCAwKQkvKiBIYXJkd2FyZSBSZXNldCAqLworCisjZGVmaW5lIFBXRVJfR1BJTyhOYikJKDEgPDwgTmIpCS8qIEdQSU8gWzAuLjE1XSB3YWtlLXVwIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMAlQV0VSX0dQSU8gKDApCS8qIEdQSU8gIFswXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMQlQV0VSX0dQSU8gKDEpCS8qIEdQSU8gIFsxXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMglQV0VSX0dQSU8gKDIpCS8qIEdQSU8gIFsyXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMwlQV0VSX0dQSU8gKDMpCS8qIEdQSU8gIFszXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPNAlQV0VSX0dQSU8gKDQpCS8qIEdQSU8gIFs0XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPNQlQV0VSX0dQSU8gKDUpCS8qIEdQSU8gIFs1XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPNglQV0VSX0dQSU8gKDYpCS8qIEdQSU8gIFs2XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPNwlQV0VSX0dQSU8gKDcpCS8qIEdQSU8gIFs3XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPOAlQV0VSX0dQSU8gKDgpCS8qIEdQSU8gIFs4XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPOQlQV0VSX0dQSU8gKDkpCS8qIEdQSU8gIFs5XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTAJUFdFUl9HUElPICgxMCkJLyogR1BJTyBbMTBdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xMQlQV0VSX0dQSU8gKDExKQkvKiBHUElPIFsxMV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzEyCVBXRVJfR1BJTyAoMTIpCS8qIEdQSU8gWzEyXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTMJUFdFUl9HUElPICgxMykJLyogR1BJTyBbMTNdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xNAlQV0VSX0dQSU8gKDE0KQkvKiBHUElPIFsxNF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzE1CVBXRVJfR1BJTyAoMTUpCS8qIEdQSU8gWzE1XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9SVEMJMHg4MDAwMDAwMAkvKiBSVEMgYWxhcm0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisKKy8qCisgKiBQWEEyeHggc3BlY2lmaWMgQ29yZSBjbG9jayBkZWZpbml0aW9ucworICovCisjZGVmaW5lIENDQ1IJCV9fUkVHKDB4NDEzMDAwMDApICAvKiBDb3JlIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ0NTUgkJX19SRUcoMHg0MTMwMDAwQykgIC8qIENvcmUgQ2xvY2sgU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIENLRU4JCV9fUkVHKDB4NDEzMDAwMDQpICAvKiBDbG9jayBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgT1NDQwkJX19SRUcoMHg0MTMwMDAwOCkgIC8qIE9zY2lsbGF0b3IgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLworCisjZGVmaW5lIENDQ1JfTl9NQVNLCTB4MDM4MAkvKiBSdW4gTW9kZSBGcmVxdWVuY3kgdG8gVHVyYm8gTW9kZSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLworI2RlZmluZSBDQ0NSX01fTUFTSwkweDAwNjAJLyogTWVtb3J5IEZyZXF1ZW5jeSB0byBSdW4gTW9kZSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLworI2RlZmluZSBDQ0NSX0xfTUFTSwkweDAwMWYJLyogQ3J5c3RhbCBGcmVxdWVuY3kgdG8gTWVtb3J5IEZyZXF1ZW5jeSBNdWx0aXBsaWVyICovCisKKyNkZWZpbmUgQ0tFTl9BQzk3Q09ORiAgICgzMSkgICAgLyogQUM5NyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gKi8KKyNkZWZpbmUgQ0tFTl9DQU1FUkEJKDI0KQkvKiBDYW1lcmEgSW50ZXJmYWNlIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1NTUDEJKDIzKQkvKiBTU1AxIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTUVNQwkoMjIpCS8qIE1lbW9yeSBDb250cm9sbGVyIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX01FTVNUSwkoMjEpCS8qIE1lbW9yeSBTdGljayBIb3N0IENvbnRyb2xsZXIgKi8KKyNkZWZpbmUgQ0tFTl9JTQkJKDIwKQkvKiBJbnRlcm5hbCBNZW1vcnkgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fS0VZUEFECSgxOSkJLyogS2V5cGFkIEludGVyZmFjZSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9VU0lNCSgxOCkJLyogVVNJTSBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX01TTAkoMTcpCS8qIE1TTCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0xDRAkoMTYpCS8qIExDRCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1BXUkkyQwkoMTUpCS8qIFBXUiBJMkMgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9JMkMJKDE0KQkvKiBJMkMgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9GSUNQCSgxMykJLyogRklDUCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX01NQwkoMTIpCS8qIE1NQyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1VTQgkoMTEpCS8qIFVTQiBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0FTU1AJKDEwKQkvKiBBU1NQIChTU1AzKSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9VU0JIT1NUCSgxMCkJLyogVVNCIEhvc3QgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9PU1RJTUVSCSg5KQkvKiBPUyBUaW1lciBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX05TU1AJKDkpCS8qIE5TU1AgKFNTUDIpIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0kyUwkoOCkJLyogSTJTIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fQlRVQVJUCSg3KQkvKiBCVFVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9GRlVBUlQJKDYpCS8qIEZGVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1NUVUFSVAkoNSkJLyogU1RVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fSFdVQVJUCSg0KQkvKiBIV1VBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9TU1AzCSg0KQkvKiBTU1AzIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fU1NQCSgzKQkvKiBTU1AgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9TU1AyCSgzKQkvKiBTU1AyIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fQUM5NwkoMikJLyogQUM5NyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1BXTTEJKDEpCS8qIFBXTTEgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fUFdNMAkoMCkJLyogUFdNMCBDbG9jayBFbmFibGUgKi8KKworI2RlZmluZSBPU0NDX09PTgkoMSA8PCAxKQkvKiAzMi43NjhrSHogT09OICh3cml0ZS1vbmNlIG9ubHkgYml0KSAqLworI2RlZmluZSBPU0NDX09PSwkoMSA8PCAwKQkvKiAzMi43NjhrSHogT09LIChyZWFkLW9ubHkgYml0KSAqLworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9yZWdzLWxjZC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3JlZ3MtbGNkLmgKaW5kZXggZjc2MjQ5My4uM2JhNDY0YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3JlZ3MtbGNkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3JlZ3MtbGNkLmgKQEAgLTEsNSArMSw4IEBACiAjaWZuZGVmIF9fQVNNX0FSQ0hfUkVHU19MQ0RfSAogI2RlZmluZSBfX0FTTV9BUkNIX1JFR1NfTENEX0gKKworI2luY2x1ZGUgPGFzbS9hcmNoL2JpdGZpZWxkLmg+CisKIC8qCiAgKiBMQ0QgQ29udHJvbGxlciBSZWdpc3RlcnMgYW5kIEJpdHMgRGVmaW5pdGlvbnMKICAqLwpAQCAtNjksNyArNzIsNyBAQAogI2RlZmluZSBMQ0NSMF9RRE0JKDEgPDwgMTEpCS8qIExDRCBRdWljayBEaXNhYmxlIG1hc2sgKi8KICNkZWZpbmUgTENDUjBfUERECSgweGZmIDw8IDEyKQkvKiBQYWxldHRlIERNQSByZXF1ZXN0IGRlbGF5ICovCiAjZGVmaW5lIExDQ1IwX1BERF9TCTEyCi0jZGVmaW5lIExDQ1IwX0JNCSgxIDw8IDIwKSAJLyogQnJhbmNoIG1hc2sgKi8KKyNkZWZpbmUgTENDUjBfQk0JKDEgPDwgMjApCS8qIEJyYW5jaCBtYXNrICovCiAjZGVmaW5lIExDQ1IwX09VTQkoMSA8PCAyMSkJLyogT3V0cHV0IEZJRk8gdW5kZXJydW4gbWFzayAqLwogI2RlZmluZSBMQ0NSMF9MQ0RUCSgxIDw8IDIyKQkvKiBMQ0QgcGFuZWwgdHlwZSAqLwogI2RlZmluZSBMQ0NSMF9SRFNUTQkoMSA8PCAyMykJLyogUmVhZCBzdGF0dXMgaW50ZXJydXB0IG1hc2sgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9zeXN0ZW0uaAppbmRleCA5YWE2YzJlLi5iYTdlMTMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvc3lzdGVtLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3N5c3RlbS5oCkBAIC0xMiw2ICsxMiw3IEBACiAKICNpbmNsdWRlIDxhc20vcHJvYy1mbnMuaD4KICNpbmNsdWRlICJoYXJkd2FyZS5oIgorI2luY2x1ZGUgInB4YTJ4eC1yZWdzLmgiCiAjaW5jbHVkZSAicHhhLXJlZ3MuaCIKIAogc3RhdGljIGlubGluZSB2b2lkIGFyY2hfaWRsZSh2b2lkKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3p5bG9uaXRlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvenlsb25pdGUuaAppbmRleCA0ODgxYjgwLi5kZTU3N2RlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvenlsb25pdGUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvenlsb25pdGUuaApAQCAtMTUsNyArMTUsNiBAQAogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX21tY19zbG90IHp5bG9uaXRlX21tY19zbG90W107CiAKLWV4dGVybiBpbnQgZ3Bpb19iYWNrbGlnaHQ7CiBleHRlcm4gaW50IGdwaW9fZXRoX2lycTsKIAogZXh0ZXJuIGludCB3bTk3MTNfaXJxOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcnBjL2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1ycGMvaW8uaAppbmRleCBiNGRhMDhkLi42YmQyMjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1ycGMvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1ycGMvaW8uaApAQCAtMTI2LDcgKzEyNiw3IEBACiAJcmV0dXJuICh1bnNpZ25lZCBzeil2YWx1ZTsJCQkJCQlcCiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvYWRkcih1bnNpZ25lZCBpbnQgcG9ydCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2RlcHJlY2F0ZWQgX19pb2FkZHIodW5zaWduZWQgaW50IHBvcnQpCiB7CiAJdm9pZCBfX2lvbWVtICpyZXQ7CiAJaWYgKF9fUE9SVF9QQ0lPKHBvcnQpKQpAQCAtMjMyLDggKzIzMiw3IEBACiAJcmVzdWx0OwkJCQkJCQkJCVwKIH0pCiAKLSNkZWZpbmUgX19pb2FkZHJjKHBvcnQpCQlcCi0JKChfX1BPUlRfUENJTyhwb3J0KSA/IFBDSU9fQkFTRSA6IElPX0JBU0UpICsgKChwb3J0KSA8PCAyKSkKKyNkZWZpbmUgX19pb2FkZHJjKHBvcnQpCQlfX2lvYWRkcihwb3J0KQogCiAjZGVmaW5lIGluYihwKQkgCShfX2J1aWx0aW5fY29uc3RhbnRfcCgocCkpID8gX19pbmJjKHApICAgIDogX19pbmIocCkpCiAjZGVmaW5lIGludyhwKQkgCShfX2J1aWx0aW5fY29uc3RhbnRfcCgocCkpID8gX19pbndjKHApICAgIDogX19pbncocCkpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oCmluZGV4IDc1ODM4OTUuLjE4ZTEwZDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oCkBAIC0xLDY4ICsxLDE4IEBACi0vKgotICogbGludXgvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmgKKy8qIGxpbnV4L2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oCiAgKgotICogUzNDMjQxMCBHUElPIHdyYXBwZXJzIGZvciBhcmNoLW5ldXRyYWwgR1BJTyBjYWxscworICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCi0gKiBXcml0dGVuIGJ5IFBoaWxpcHAgWmFiZWwgPHBoaWxpcHAuemFiZWxAZ21haWwuY29tPgorICogUzNDMjQxMCAtIEdQSU8gbGliIHN1cHBvcnQKICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCi0gKgotICovCisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLwogCi0jaWZuZGVmIF9fQVNNX0FSQ0hfUzNDMjQxMF9HUElPX0gKLSNkZWZpbmUgX19BU01fQVJDSF9TM0MyNDEwX0dQSU9fSAorI2RlZmluZSBncGlvX2dldF92YWx1ZQlfX2dwaW9fZ2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fc2V0X3ZhbHVlCV9fZ3Bpb19zZXRfdmFsdWUKKyNkZWZpbmUgZ3Bpb19jYW5zbGVlcAlfX2dwaW9fY2Fuc2xlZXAKIAotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KLQotc3RhdGljIGlubGluZSBpbnQgZ3Bpb19yZXF1ZXN0KHVuc2lnbmVkIGdwaW8sIGNvbnN0IGNoYXIgKmxhYmVsKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZ3Bpb19mcmVlKHVuc2lnbmVkIGdwaW8pCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBncGlvX2RpcmVjdGlvbl9pbnB1dCh1bnNpZ25lZCBncGlvKQotewotCXMzYzI0MTBfZ3Bpb19jZmdwaW4oZ3BpbywgUzNDMjQxMF9HUElPX0lOUFVUKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KHVuc2lnbmVkIGdwaW8sIGludCB2YWx1ZSkKLXsKLQlzM2MyNDEwX2dwaW9fY2ZncGluKGdwaW8sIFMzQzI0MTBfR1BJT19PVVRQVVQpOwotCS8qIFJFVklTSVQgY2FuIHdlIHdyaXRlIHRoZSB2YWx1ZSBmaXJzdCwgdG8gYXZvaWQgZ2xpdGNoaW5nPyAqLwotCXMzYzI0MTBfZ3Bpb19zZXRwaW4oZ3BpbywgdmFsdWUpOwotCXJldHVybiAwOwotfQotCi0jZGVmaW5lIGdwaW9fZ2V0X3ZhbHVlKGdwaW8pCQlzM2MyNDEwX2dwaW9fZ2V0cGluKGdwaW8pCi0jZGVmaW5lIGdwaW9fc2V0X3ZhbHVlKGdwaW8sdmFsdWUpCXMzYzI0MTBfZ3Bpb19zZXRwaW4oZ3BpbywgdmFsdWUpCi0KLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9ncGlvLmg+CQkJLyogY2Fuc2xlZXAgd3JhcHBlcnMgKi8KLQotI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAotI2RlZmluZSBncGlvX3RvX2lycShncGlvKQkJczNjMjQwMF9ncGlvX2dldGlycShncGlvKQotI2Vsc2UKLSNkZWZpbmUgZ3Bpb190b19pcnEoZ3BpbykJCXMzYzI0MTBfZ3Bpb19nZXRpcnEoZ3BpbykKLSNlbmRpZgotCi0vKiBGSVhNRSBpbXBsZW1lbnQgaXJxX3RvX2dwaW8oKSAqLwotCi0jZW5kaWYKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9ncGlvLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL3JlZ3MtY2xvY2suaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvcmVncy1jbG9jay5oCmluZGV4IGVjYWU5ZTcuLjM3NjYxMzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvcmVncy1jbG9jay5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvcmVncy1jbG9jay5oCkBAIC0xODksNiArMTg5LDggQEAKICNkZWZpbmUgUzNDMjQxMl9DTEtTUkNfSTJTQ0xLX01QTEwJCSgxPDw5KQogI2RlZmluZSBTM0MyNDEyX0NMS1NSQ19VU0JDTEtfSENMSwkJKDE8PDEwKQogI2RlZmluZSBTM0MyNDEyX0NMS1NSQ19DQU1DTEtfSENMSwkJKDE8PDExKQorI2RlZmluZSBTM0MyNDEyX0NMS1NSQ19VUkVGQ0xLX0VYVENMSwkoMTw8MTIpCisjZGVmaW5lIFMzQzI0MTJfQ0xLU1JDX0VSRUZDTEtfRVhUQ0xLCSgxPDwxNCkKIAogI2VuZGlmIC8qIENPTkZJR19DUFVfUzNDMjQxMiB8IENPTkZJR19DUFVfUzNDMjQxMyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXNzZW1ibGVyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXNzZW1ibGVyLmgKaW5kZXggZmNlODMyOC4uOTExMzkzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2Fzc2VtYmxlci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hc3NlbWJsZXIuaApAQCAtNTYsNiArNTYsMjEgQEAKICNlbmRpZgogCiAvKgorICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29kZSB0byBjYWNoZWxpbmUgYWxpZ24gdGhlIGRlc3RpbmF0aW9uCisgKiBwb2ludGVyIHdoZW4gYnVsayB3cml0aW5nIHRvIG1lbW9yeS4gIEV4cGVyaW1lbnRzIG9uIFN0cm9uZ0FSTSBhbmQKKyAqIFhTY2FsZSBkaWRuJ3Qgc2hvdyB0aGlzIGEgd29ydGh3aGlsZSB0aGluZyB0byBkbyB3aGVuIHRoZSBjYWNoZSBpcyBub3QKKyAqIHNldCB0byB3cml0ZS1hbGxvY2F0ZSAodGhpcyB3b3VsZCBuZWVkIGZ1cnRoZXIgdGVzdGluZyBvbiBYU2NhbGUgd2hlbiBXQQorICogaXMgdXNlZCkuCisgKgorICogT24gRmVyb2Nlb24gdGhlcmUgaXMgbXVjaCB0byBnYWluIGhvd2V2ZXIsIHJlZ2FyZGxlc3Mgb2YgY2FjaGUgbW9kZS4KKyAqLworI2lmZGVmIENPTkZJR19DUFVfRkVST0NFT04KKyNkZWZpbmUgQ0FMR04oY29kZS4uLikgY29kZQorI2Vsc2UKKyNkZWZpbmUgQ0FMR04oY29kZS4uLikKKyNlbmRpZgorCisvKgogICogRW5hYmxlIGFuZCBkaXNhYmxlIGludGVycnVwdHMKICAqLwogI2lmIF9fTElOVVhfQVJNX0FSQ0hfXyA+PSA2CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vY2FjaGVmbHVzaC5oIGIvaW5jbHVkZS9hc20tYXJtL2NhY2hlZmx1c2guaAppbmRleCA3NTlhOTdiLi43MGIwZmU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vY2FjaGVmbHVzaC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9jYWNoZWZsdXNoLmgKQEAgLTk1LDExICs5NSw3IEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9GRVJPQ0VPTikKLSMgaWZkZWYgX0NBQ0hFCi0jICBkZWZpbmUgTVVMVElfQ0FDSEUgMQotIyBlbHNlCi0jICBkZWZpbmUgX0NBQ0hFIGZlcm9jZW9uCi0jIGVuZGlmCisjIGRlZmluZSBNVUxUSV9DQUNIRSAxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9WNikKQEAgLTQxMCw2ICs0MDYsMTMgQEAKIAogZXh0ZXJuIHZvaWQgX19mbHVzaF9kY2FjaGVfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IHBhZ2UgKnBhZ2UpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgX19mbHVzaF9pY2FjaGVfYWxsKHZvaWQpCit7CisJYXNtKCJtY3IJcDE1LCAwLCAlMCwgYzcsIGM1LCAwCUAgaW52YWxpZGF0ZSBJLWNhY2hlXG4iCisJICAgIDoKKwkgICAgOiAiciIgKDApKTsKK30KKwogI2RlZmluZSBBUkNIX0hBU19GTFVTSF9BTk9OX1BBR0UKIHN0YXRpYyBpbmxpbmUgdm9pZCBmbHVzaF9hbm9uX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdm1hZGRyKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2R5bnRpY2suaCBiL2luY2x1ZGUvYXNtLWFybS9keW50aWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZmFiMmQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2R5bnRpY2suaAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotI2lmbmRlZiBfQVNNQVJNX0RZTlRJQ0tfSAotI2RlZmluZSBfQVNNQVJNX0RZTlRJQ0tfSAotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCi0jZW5kaWYgLyogX0FTTUFSTV9EWU5USUNLX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9lY2FyZC5oIGIvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKaW5kZXggNjg0ZmUwNi4uNWUyMjg4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKQEAgLTg1LDE5ICs4NSw2IEBACiAKICNkZWZpbmUgTUFYX0VDQVJEUwk5CiAKLXR5cGVkZWYgZW51bSB7CQkJCS8qIENhcmRzIGFkZHJlc3Mgc3BhY2UJCSovCi0JRUNBUkRfSU9DLAotCUVDQVJEX01FTUMsCi0JRUNBUkRfRUFTSQotfSBjYXJkX3R5cGVfdDsKLQotdHlwZWRlZiBlbnVtIHsJCQkJLyogU3BlZWQgZm9yIEVDQVJEX0lPQyBzcGFjZQkqLwotCUVDQVJEX1NMT1cJID0gMCwKLQlFQ0FSRF9NRURJVU0JID0gMSwKLQlFQ0FSRF9GQVNUCSA9IDIsCi0JRUNBUkRfU1lOQwkgPSAzCi19IGNhcmRfc3BlZWRfdDsKLQogc3RydWN0IGVjYXJkX2lkIHsJCQkvKiBDYXJkIElEIHN0cnVjdHVyZQkJKi8KIAl1bnNpZ25lZCBzaG9ydAltYW51ZmFjdHVyZXI7CiAJdW5zaWduZWQgc2hvcnQJcHJvZHVjdDsKQEAgLTE5MCwxNiArMTc3LDYgQEAKIH07CiAKIC8qCi0gKiBlY2FyZF9jbGFpbTogY2xhaW0gYW4gZXhwYW5zaW9uIGNhcmQgZW50cnkKLSAqLwotI2RlZmluZSBlY2FyZF9jbGFpbShlYykgKChlYyktPmNsYWltZWQgPSAxKQotCi0vKgotICogZWNhcmRfcmVsZWFzZTogcmVsZWFzZSBhbiBleHBhbnNpb24gY2FyZCBlbnRyeQotICovCi0jZGVmaW5lIGVjYXJkX3JlbGVhc2UoZWMpICgoZWMpLT5jbGFpbWVkID0gMCkKLQotLyoKICAqIFJlYWQgYSBjaHVuayBmcm9tIGFuIGV4cGFuc2lvbiBjYXJkCiAgKiBjZCA6IHdoZXJlIHRvIHB1dCByZWFkIGRhdGEKICAqIGVjIDogZXhwYW5zaW9uIGNhcmQgaW5mbyBzdHJ1Y3QKQEAgLTIwOSwxOCArMTg2LDYgQEAKIGV4dGVybiBpbnQgZWNhcmRfcmVhZGNodW5rIChzdHJ1Y3QgaW5fY2h1bmtfZGlyICpjZCwgc3RydWN0IGV4cGFuc2lvbl9jYXJkICplYywgaW50IGlkLCBpbnQgbnVtKTsKIAogLyoKLSAqIE9idGFpbiB0aGUgYWRkcmVzcyBvZiBhIGNhcmQuICBUaGlzIHJldHVybnMgdGhlICJvbGQgc3R5bGUiIGFkZHJlc3MKLSAqIGFuZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHVzZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9fZGVwcmVjYXRlZAotZWNhcmRfYWRkcmVzcyhzdHJ1Y3QgZXhwYW5zaW9uX2NhcmQgKmVjLCBjYXJkX3R5cGVfdCB0eXBlLCBjYXJkX3NwZWVkX3Qgc3BlZWQpCi17Ci0JZXh0ZXJuIHVuc2lnbmVkIGludCBfX2VjYXJkX2FkZHJlc3Moc3RydWN0IGV4cGFuc2lvbl9jYXJkICosCi0JCQkJCSAgICBjYXJkX3R5cGVfdCwgY2FyZF9zcGVlZF90KTsKLQlyZXR1cm4gX19lY2FyZF9hZGRyZXNzKGVjLCB0eXBlLCBzcGVlZCk7Ci19Ci0KLS8qCiAgKiBSZXF1ZXN0IGFuZCByZWxlYXNlIGVjYXJkIHJlc291cmNlcwogICovCiBleHRlcm4gaW50IGVjYXJkX3JlcXVlc3RfcmVzb3VyY2VzKHN0cnVjdCBleHBhbnNpb25fY2FyZCAqZWMpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2Z0cmFjZS5oIGIvaW5jbHVkZS9hc20tYXJtL2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NGVmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vZnRyYWNlLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfQVNNX0FSTV9GVFJBQ0UKKyNkZWZpbmUgX0FTTV9BUk1fRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjZGVmaW5lIE1DT1VOVF9BRERSCQkoKGxvbmcpKG1jb3VudCkpCisjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNCAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIG1jb3VudCh2b2lkKTsKKyNlbmRpZgorCisjZW5kaWYKKworI2VuZGlmIC8qIF9BU01fQVJNX0ZUUkFDRSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vaGFyZHdhcmUvaW9wM3h4LWdwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzkzMzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIGxpbnV4L2luY2x1ZGUvYXNtLWFybS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oCisgKgorICogSU9QM3h4IEdQSU8gd3JhcHBlcnMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KKyAqIEJhc2VkIG9uIElYUDRYWCBncGlvLmggZmlsZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKKyAqCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUk1fSEFSRFdBUkVfSU9QM1hYX0dQSU9fSAorI2RlZmluZSBfX0FTTV9BUk1fSEFSRFdBUkVfSU9QM1hYX0dQSU9fSAorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvZ3Bpby5oPgorCisjZGVmaW5lIElPUDNYWF9OX0dQSU9TCTgKKworc3RhdGljIGlubGluZSBpbnQgZ3Bpb19nZXRfdmFsdWUodW5zaWduZWQgZ3BpbykKK3sKKwlpZiAoZ3BpbyA+IElPUDNYWF9OX0dQSU9TKQorCQlyZXR1cm4gX19ncGlvX2dldF92YWx1ZShncGlvKTsKKworCXJldHVybiBncGlvX2xpbmVfZ2V0KGdwaW8pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3Bpb19zZXRfdmFsdWUodW5zaWduZWQgZ3BpbywgaW50IHZhbHVlKQoreworCWlmIChncGlvID4gSU9QM1hYX05fR1BJT1MpIHsKKwkJX19ncGlvX3NldF92YWx1ZShncGlvLCB2YWx1ZSk7CisJCXJldHVybjsKKwl9CisJZ3Bpb19saW5lX3NldChncGlvLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGdwaW9fY2Fuc2xlZXAodW5zaWduZWQgZ3BpbykKK3sKKwlpZiAoZ3BpbyA8IElPUDNYWF9OX0dQSU9TKQorCQlyZXR1cm4gMDsKKwllbHNlCisJCXJldHVybiBfX2dwaW9fY2Fuc2xlZXAoZ3Bpbyk7Cit9CisKKy8qCisgKiBUaGUgR1BJT3MgYXJlIG5vdCBnZW5lcmF0aW5nIGFueSBpbnRlcnJ1cHQKKyAqIE5vdGUgOiBtYW51YWxzIGFyZSBub3QgY2xlYXIgYWJvdXQgdGhpcworICovCitzdGF0aWMgaW5saW5lIGludCBncGlvX3RvX2lycShpbnQgZ3BpbykKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGlubGluZSBpbnQgaXJxX3RvX2dwaW8oaW50IGdwaW8pCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vaHdfaXJxLmggYi9pbmNsdWRlL2FzbS1hcm0vaHdfaXJxLmgKaW5kZXggOThkNTk0YS4uZjFhMDhhNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2h3X2lycS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9od19pcnEuaApAQCAtNiwxNSArNiw0IEBACiAKICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX05PX0lETEVfSFopCi0jIGluY2x1ZGUgPGFzbS9keW50aWNrLmg+Ci0jIGRlZmluZSBoYW5kbGVfZHluYW1pY190aWNrKGFjdGlvbikJCQkJCVwKLQlpZiAoIShhY3Rpb24tPmZsYWdzICYgSVJRRl9USU1FUikgJiYgc3lzdGVtX3RpbWVyLT5keW5fdGljaykgewlcCi0JCXdyaXRlX3NlcWxvY2soJnh0aW1lX2xvY2spOwkJCQlcCi0JCWlmIChzeXN0ZW1fdGltZXItPmR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpCVwKLQkJCXN5c3RlbV90aW1lci0+ZHluX3RpY2stPmhhbmRsZXIoaXJxLCBOVUxMKTsJXAotCQl3cml0ZV9zZXF1bmxvY2soJnh0aW1lX2xvY2spOwkJCQlcCi0JfQotI2VuZGlmCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2tleGVjLmggYi9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaAppbmRleCA0N2ZlMzRkLi5jODk4NmJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaApAQCAtMTQsOCArMTQsNiBAQAogCiAjZGVmaW5lIEtFWEVDX0FSQ0ggS0VYRUNfQVJDSF9BUk0KIAotI2RlZmluZSBLRVhFQ19CT09UX1BBUkFNU19TSVpFIDE1MzYKLQogI2RlZmluZSBLRVhFQ19BUk1fQVRBR1NfT0ZGU0VUICAweDEwMDAKICNkZWZpbmUgS0VYRUNfQVJNX1pJTUFHRV9PRkZTRVQgMHg4MDAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9rcHJvYmVzLmggYi9pbmNsdWRlL2FzbS1hcm0va3Byb2Jlcy5oCmluZGV4IGMwNDIxOTQuLmIxYTM3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9rcHJvYmVzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2twcm9iZXMuaApAQCAtNTksNiArNTksNyBAQAogfTsKIAogdm9pZCBhcmNoX3JlbW92ZV9rcHJvYmUoc3RydWN0IGtwcm9iZSAqKTsKK3ZvaWQga3JldHByb2JlX3RyYW1wb2xpbmUodm9pZCk7CiAKIGludCBrcHJvYmVfdHJhcF9oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgaW5zdHIpOwogaW50IGtwcm9iZV9mYXVsdF9oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgZnNyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9tYWNoL3RpbWUuaCBiL2luY2x1ZGUvYXNtLWFybS9tYWNoL3RpbWUuaAppbmRleCA1ZGMzNTcwLi4yZmQzNmVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vbWFjaC90aW1lLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL21hY2gvdGltZS5oCkBAIC00MSwzMCArNDEsOCBAQAogI2lmbmRlZiBDT05GSUdfR0VORVJJQ19USU1FCiAJdW5zaWduZWQgbG9uZwkJKCpvZmZzZXQpKHZvaWQpOwogI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCXN0cnVjdCBkeW5fdGlja190aW1lcgkqZHluX3RpY2s7Ci0jZW5kaWYKIH07CiAKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCi0jZGVmaW5lIERZTl9USUNLX0VOQUJMRUQJKDEgPDwgMSkKLQotc3RydWN0IGR5bl90aWNrX3RpbWVyIHsKLQlzcGlubG9ja190CWxvY2s7Ci0JdW5zaWduZWQgaW50CXN0YXRlOwkJCS8qIEN1cnJlbnQgc3RhdGUgKi8KLQlpbnQJCSgqZW5hYmxlKSh2b2lkKTsJLyogRW5hYmxlcyBkeW5hbWljIHRpY2sgKi8KLQlpbnQJCSgqZGlzYWJsZSkodm9pZCk7CS8qIERpc2FibGVzIGR5bmFtaWMgdGljayAqLwotCXZvaWQJCSgqcmVwcm9ncmFtKSh1bnNpZ25lZCBsb25nKTsgLyogUmVwcm9ncmFtcyB0aGUgdGltZXIgKi8KLQlpbnQJCSgqaGFuZGxlcikoaW50LCB2b2lkICopOwotfTsKLQotdm9pZCB0aW1lcl9keW5fcmVwcm9ncmFtKHZvaWQpOwotI2Vsc2UKLSNkZWZpbmUgdGltZXJfZHluX3JlcHJvZ3JhbSgpCWRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCiBleHRlcm4gc3RydWN0IHN5c190aW1lciAqc3lzdGVtX3RpbWVyOwogZXh0ZXJuIHZvaWQgdGltZXJfdGljayh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL21tdV9jb250ZXh0LmggYi9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaAppbmRleCA2OTEzZDAyLi45MWI5ZGZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaApAQCAtOTcsNiArOTcsMTEgQEAKICNpZmRlZiBDT05GSUdfTU1VCiAJdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAorI2lmZGVmIENPTkZJR19TTVAKKwkvKiBjaGVjayBmb3IgcG9zc2libGUgdGhyZWFkIG1pZ3JhdGlvbiAqLworCWlmICghY3B1c19lbXB0eShuZXh0LT5jcHVfdm1fbWFzaykgJiYgIWNwdV9pc3NldChjcHUsIG5leHQtPmNwdV92bV9tYXNrKSkKKwkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CisjZW5kaWYKIAlpZiAoIWNwdV90ZXN0X2FuZF9zZXQoY3B1LCBuZXh0LT5jcHVfdm1fbWFzaykgfHwgcHJldiAhPSBuZXh0KSB7CiAJCWNoZWNrX2NvbnRleHQobmV4dCk7CiAJCWNwdV9zd2l0Y2hfbW0obmV4dC0+cGdkLCBuZXh0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL2NhY2hlLWZlcm9jZW9uLWwyLmggYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNGUwMTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCkBAIC0wLDAgKzEsMTEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnZlbGwgU2VtaWNvbmR1Y3RvcgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworZXh0ZXJuIHZvaWQgX19pbml0IGZlcm9jZW9uX2wyX2luaXQoaW50IGwyX3d0X292ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaAppbmRleCBmZmQzODUyLi5hZDRjZTk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oCkBAIC0xOCw2ICsxOCw3IEBACiAJdTggYWxlOwkJLyogYWRkcmVzcyBsaW5lIG51bWJlciBjb25uZWN0ZWQgdG8gQUxFICovCiAJdTggY2xlOwkJLyogYWRkcmVzcyBsaW5lIG51bWJlciBjb25uZWN0ZWQgdG8gQ0xFICovCiAJdTggd2lkdGg7CS8qIGJ1c3dpZHRoICovCisJdTggY2hpcF9kZWxheTsKIH07CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vcGNpZS5oIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vcGNpZS5oCmluZGV4IDY0MzRhYzYuLmU2MWI3YmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL3BjaWUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9wY2llLmgKQEAgLTE0LDYgKzE0LDcgQEAKIHUzMiBvcmlvbl9wY2llX2Rldl9pZCh2b2lkIF9faW9tZW0gKmJhc2UpOwogdTMyIG9yaW9uX3BjaWVfcmV2KHZvaWQgX19pb21lbSAqYmFzZSk7CiBpbnQgb3Jpb25fcGNpZV9saW5rX3VwKHZvaWQgX19pb21lbSAqYmFzZSk7CitpbnQgb3Jpb25fcGNpZV94NF9tb2RlKHZvaWQgX19pb21lbSAqYmFzZSk7CiBpbnQgb3Jpb25fcGNpZV9nZXRfbG9jYWxfYnVzX25yKHZvaWQgX19pb21lbSAqYmFzZSk7CiB2b2lkIG9yaW9uX3BjaWVfc2V0X2xvY2FsX2J1c19ucih2b2lkIF9faW9tZW0gKmJhc2UsIGludCBucik7CiB2b2lkIG9yaW9uX3BjaWVfc2V0dXAodm9pZCBfX2lvbWVtICpiYXNlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjL3JlZ3MtdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYy9yZWdzLXRpbWVyLmgKaW5kZXggOGIwZDU5NC4uYjViYzY5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjL3JlZ3MtdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1zM2MvcmVncy10aW1lci5oCkBAIC02NSw2ICs2NSwxNSBAQAogI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWDBfVENMSzAgICg0PDwwKQogI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWDBfTUFTSwkgICgxNTw8MCkKIAorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9ESVYyCSAgKDA8PDApCisjZGVmaW5lIFMzQzI0MTBfVENGRzFfTVVYX0RJVjQJICAoMTw8MCkKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfRElWOAkgICgyPDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9ESVYxNiAgICgzPDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLICAgICg0PDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLCSAgKDE1PDwwKQorCisjZGVmaW5lIFMzQzI0MTBfVENGRzFfU0hJRlQoeCkJICAoKHgpICogNCkKKwogLyogZm9yIGVhY2ggdGltZXIsIHdlIGhhdmUgYW4gY291bnQgYnVmZmVyLCBhbiBjb21wYXJlIGJ1ZmZlciBhbmQKICAqIGFuIG9ic2VydmF0aW9uIGJ1ZmZlcgogKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYzI0eHgvZGV2cy5oIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKaW5kZXggZjlkNmYwMy4uYmFkYWFjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKQEAgLTIxLDYgKzIxLDggQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpzM2MyNHh4X3VhcnRfZGV2c1tdOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnMzYzI0eHhfdWFydF9zcmNbXTsKIAorZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcltdOworCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3VzYjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfbGNkOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV93ZHQ7CkBAIC0zNiwxMSArMzgsNiBAQAogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX25hbmQ7CiAKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIwOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjE7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMjsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIzOwotCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3VzYmdhZGdldDsKIAogLyogczNjMjQ0MCBzcGVjaWZpYyBkZXZpY2VzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vcnRjLmggYi9pbmNsdWRlL2FzbS1hcm0vcnRjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNWM5MjMuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3J0Yy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqICBsaW51eC9pbmNsdWRlL2FzbS1hcm0vcnRjLmgKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLSNpZm5kZWYgQVNNQVJNX1JUQ19ICi0jZGVmaW5lIEFTTUFSTV9SVENfSAotCi1zdHJ1Y3QgbW9kdWxlOwotCi1zdHJ1Y3QgcnRjX29wcyB7Ci0Jc3RydWN0IG1vZHVsZQkqb3duZXI7Ci0JaW50CQkoKm9wZW4pKHZvaWQpOwotCXZvaWQJCSgqcmVsZWFzZSkodm9pZCk7Ci0JaW50CQkoKmlvY3RsKSh1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwotCi0JaW50CQkoKnJlYWRfdGltZSkoc3RydWN0IHJ0Y190aW1lICopOwotCWludAkJKCpzZXRfdGltZSkoc3RydWN0IHJ0Y190aW1lICopOwotCWludAkJKCpyZWFkX2FsYXJtKShzdHJ1Y3QgcnRjX3drYWxybSAqKTsKLQlpbnQJCSgqc2V0X2FsYXJtKShzdHJ1Y3QgcnRjX3drYWxybSAqKTsKLQlpbnQJCSgqcHJvYykoY2hhciAqYnVmKTsKLX07Ci0KLXZvaWQgcnRjX25leHRfYWxhcm1fdGltZShzdHJ1Y3QgcnRjX3RpbWUgKiwgc3RydWN0IHJ0Y190aW1lICosIHN0cnVjdCBydGNfdGltZSAqKTsKLXZvaWQgcnRjX3VwZGF0ZSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKLWludCByZWdpc3Rlcl9ydGMoc3RydWN0IHJ0Y19vcHMgKik7Ci12b2lkIHVucmVnaXN0ZXJfcnRjKHN0cnVjdCBydGNfb3BzICopOwotCi1zdGF0aWMgaW5saW5lIGludCBydGNfcGVyaW9kaWNfYWxhcm0oc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlyZXR1cm4gICh0bS0+dG1feWVhciA9PSAtMSkgfHwKLQkJKCh1bnNpZ25lZCl0bS0+dG1fbW9uID49IDEyKSB8fAotCQkoKHVuc2lnbmVkKSh0bS0+dG1fbWRheSAtIDEpID49IDMxKSB8fAotCQkoKHVuc2lnbmVkKXRtLT50bV9ob3VyID4gMjMpIHx8Ci0JCSgodW5zaWduZWQpdG0tPnRtX21pbiA+IDU5KSB8fAotCQkoKHVuc2lnbmVkKXRtLT50bV9zZWMgPiA1OSk7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3RsYmZsdXNoLmggYi9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaAppbmRleCA4YzZiYzFiLi45MDk2NTZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaApAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBUTEJfVjZfRF9BU0lECSgxIDw8IDE3KQogI2RlZmluZSBUTEJfVjZfSV9BU0lECSgxIDw8IDE4KQogCisjZGVmaW5lIFRMQl9MMkNMRUFOX0ZSCSgxIDw8IDI5KQkJLyogRmVyb2Nlb24gKi8KICNkZWZpbmUgVExCX0RDTEVBTgkoMSA8PCAzMCkKICNkZWZpbmUgVExCX1dCCQkoMSA8PCAzMSkKIApAQCAtNTEsNiArNTIsNyBAQAogICoJICB2NCAgICAtIEFSTXY0IHdpdGhvdXQgd3JpdGUgYnVmZmVyCiAgKgkgIHY0d2IgIC0gQVJNdjQgd2l0aCB3cml0ZSBidWZmZXIgd2l0aG91dCBJIFRMQiBmbHVzaCBlbnRyeSBpbnN0cnVjdGlvbgogICoJICB2NHdiaSAtIEFSTXY0IHdpdGggd3JpdGUgYnVmZmVyIHdpdGggSSBUTEIgZmx1c2ggZW50cnkgaW5zdHJ1Y3Rpb24KKyAqCSAgZnIgICAgLSBGZXJvY2VvbiAodjR3Ymkgd2l0aCBub24tb3V0ZXItY2FjaGVhYmxlIHBhZ2UgdGFibGUgd2Fsa3MpCiAgKgkgIHY2d2JpIC0gQVJNdjYgd2l0aCB3cml0ZSBidWZmZXIgd2l0aCBJIFRMQiBmbHVzaCBlbnRyeSBpbnN0cnVjdGlvbgogICovCiAjdW5kZWYgX1RMQgpAQCAtMTAzLDYgKzEwNSwyMyBAQAogIyBkZWZpbmUgdjR3YmlfYWx3YXlzX2ZsYWdzCSgtMVVMKQogI2VuZGlmCiAKKyNkZWZpbmUgZnJfdGxiX2ZsYWdzCShUTEJfV0IgfCBUTEJfRENMRUFOIHwgVExCX0wyQ0xFQU5fRlIgfCBcCisJCQkgVExCX1Y0X0lfRlVMTCB8IFRMQl9WNF9EX0ZVTEwgfCBcCisJCQkgVExCX1Y0X0lfUEFHRSB8IFRMQl9WNF9EX1BBR0UpCisKKyNpZmRlZiBDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTgorIyBkZWZpbmUgZnJfcG9zc2libGVfZmxhZ3MJZnJfdGxiX2ZsYWdzCisjIGRlZmluZSBmcl9hbHdheXNfZmxhZ3MJZnJfdGxiX2ZsYWdzCisjIGlmZGVmIF9UTEIKKyMgIGRlZmluZSBNVUxUSV9UTEIgMQorIyBlbHNlCisjICBkZWZpbmUgX1RMQiB2NHdiaQorIyBlbmRpZgorI2Vsc2UKKyMgZGVmaW5lIGZyX3Bvc3NpYmxlX2ZsYWdzCTAKKyMgZGVmaW5lIGZyX2Fsd2F5c19mbGFncwkoLTFVTCkKKyNlbmRpZgorCiAjZGVmaW5lIHY0d2JfdGxiX2ZsYWdzCShUTEJfV0IgfCBUTEJfRENMRUFOIHwgXAogCQkJIFRMQl9WNF9JX0ZVTEwgfCBUTEJfVjRfRF9GVUxMIHwgXAogCQkJIFRMQl9WNF9EX1BBR0UpCkBAIC0yNDUsMTIgKzI2NCwxNCBAQAogI2RlZmluZSBwb3NzaWJsZV90bGJfZmxhZ3MJKHYzX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NF9wb3NzaWJsZV9mbGFncyB8IFwKIAkJCQkgdjR3YmlfcG9zc2libGVfZmxhZ3MgfCBcCisJCQkJIGZyX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NHdiX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NndiaV9wb3NzaWJsZV9mbGFncykKIAogI2RlZmluZSBhbHdheXNfdGxiX2ZsYWdzCSh2M19hbHdheXNfZmxhZ3MgJiBcCiAJCQkJIHY0X2Fsd2F5c19mbGFncyAmIFwKIAkJCQkgdjR3YmlfYWx3YXlzX2ZsYWdzICYgXAorCQkJCSBmcl9hbHdheXNfZmxhZ3MgJiBcCiAJCQkJIHY0d2JfYWx3YXlzX2ZsYWdzICYgXAogCQkJCSB2NndiaV9hbHdheXNfZmxhZ3MpCiAKQEAgLTQxNyw2ICs0MzgsMTEgQEAKIAlpZiAodGxiX2ZsYWcoVExCX0RDTEVBTikpCiAJCWFzbSgibWNyCXAxNSwgMCwgJTAsIGM3LCBjMTAsIDEJQCBmbHVzaF9wbWQiCiAJCQk6IDogInIiIChwbWQpIDogImNjIik7CisKKwlpZiAodGxiX2ZsYWcoVExCX0wyQ0xFQU5fRlIpKQorCQlhc20oIm1jcglwMTUsIDEsICUwLCBjMTUsIGM5LCAxICBAIEwyIGZsdXNoX3BtZCIKKwkJCTogOiAiciIgKHBtZCkgOiAiY2MiKTsKKwogCWlmICh0bGJfZmxhZyhUTEJfV0IpKQogCQlkc2IoKTsKIH0KQEAgLTQyOCw2ICs0NTQsMTAgQEAKIAlpZiAodGxiX2ZsYWcoVExCX0RDTEVBTikpCiAJCWFzbSgibWNyCXAxNSwgMCwgJTAsIGM3LCBjMTAsIDEJQCBmbHVzaF9wbWQiCiAJCQk6IDogInIiIChwbWQpIDogImNjIik7CisKKwlpZiAodGxiX2ZsYWcoVExCX0wyQ0xFQU5fRlIpKQorCQlhc20oIm1jcglwMTUsIDEsICUwLCBjMTUsIGM5LCAxICBAIEwyIGZsdXNoX3BtZCIKKwkJCTogOiAiciIgKHBtZCkgOiAiY2MiKTsKIH0KIAogI3VuZGVmIHRsYl9mbGFnCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9ib2FyZC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvYm9hcmQuaAppbmRleCBhNGUyZDI4Li5iNGNkZGZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9ib2FyZC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2JvYXJkLmgKQEAgLTgsNiArOCwxMiBAQAogCiAjZGVmaW5lIEdQSU9fUElOX05PTkUJKC0xKQogCisvKgorICogQ2xvY2sgcmF0ZXMgZm9yIHZhcmlvdXMgb24tYm9hcmQgb3NjaWxsYXRvcnMuIFRoZSBudW1iZXIgb2YgZW50cmllcworICogaW4gdGhpcyBhcnJheSBpcyBjaGlwLWRlcGVuZGVudC4KKyAqLworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbXTsKKyAgCiAvKiBBZGQgYmFzaWMgZGV2aWNlczogc3lzdGVtIG1hbmFnZXIsIGludGVycnVwdCBjb250cm9sbGVyLCBwb3J0bXV4ZXMsIGV0Yy4gKi8KIHZvaWQgYXQzMl9hZGRfc3lzdGVtX2RldmljZXModm9pZCk7CiAKQEAgLTM2LDcgKzQyLDggQEAKIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvOwogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqCiBhdDMyX2FkZF9kZXZpY2VfbGNkYyh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvICpkYXRhLAotCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuKTsKKwkJICAgICB1bnNpZ25lZCBsb25nIGZibWVtX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGZibWVtX2xlbiwKKwkJICAgICB1bnNpZ25lZCBpbnQgcGluX2NvbmZpZyk7CiAKIHN0cnVjdCB1c2JhX3BsYXRmb3JtX2RhdGE7CiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICoKQEAgLTczLDYgKzgwLDcgQEAKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MzJfYWRkX2RldmljZV9tY2kodW5zaWduZWQgaW50IGlkKTsKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MzJfYWRkX2RldmljZV9hYzk3Yyh1bnNpZ25lZCBpbnQgaWQpOwogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYXQzMl9hZGRfZGV2aWNlX2FiZGFjKHVuc2lnbmVkIGludCBpZCk7CitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdDMyX2FkZF9kZXZpY2VfcHNpZih1bnNpZ25lZCBpbnQgaWQpOwogCiBzdHJ1Y3QgY2ZfcGxhdGZvcm1fZGF0YSB7CiAJaW50CWRldGVjdF9waW47CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9pbml0LmggYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9pbml0LmgKaW5kZXggNWU3NWQ4NS4uYmM0MGUzZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvaW5pdC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2luaXQuaApAQCAtMTMsMTAgKzEzLDYgQEAKIHZvaWQgc2V0dXBfcGxhdGZvcm0odm9pZCk7CiB2b2lkIHNldHVwX2JvYXJkKHZvaWQpOwogCi0vKiBDYWxsZWQgYnkgc2V0dXBfcGxhdGZvcm0gKi8KLXZvaWQgYXQzMl9jbG9ja19pbml0KHZvaWQpOwotdm9pZCBhdDMyX3BvcnRtdXhfaW5pdCh2b2lkKTsKLQogdm9pZCBhdDMyX3NldHVwX3NlcmlhbF9jb25zb2xlKHVuc2lnbmVkIGludCB1c2FydF9pZCk7CiAKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9BVDMyQVBfSU5JVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3BtLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9wbS5oCmluZGV4IDM1NmU0MzAuLjk3OWIzNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3BtLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvcG0uaApAQCAtMTksNiArMTksNyBAQAogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogZXh0ZXJuIHZvaWQgY3B1X2VudGVyX2lkbGUodm9pZCk7CitleHRlcm4gdm9pZCBjcHVfZW50ZXJfc3RhbmRieSh1bnNpZ25lZCBsb25nIHNkcmFtY19iYXNlKTsKIAogZXh0ZXJuIGJvb2wgZGlzYWJsZV9pZGxlX3NsZWVwOwogCkBAIC00Myw2ICs0NCw4IEBACiAJZWxzZQogCQljcHVfZW50ZXJfaWRsZSgpOwogfQorCit2b2lkIGludGNfc2V0X3N1c3BlbmRfaGFuZGxlcih1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAjZW5kaWYKIAogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX0FSQ0hfUE1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvc3JhbS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvc3JhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MzhkYWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9zcmFtLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIFNpbXBsZSBTUkFNIGFsbG9jYXRvcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBdG1lbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKyNpZm5kZWYgX19BU01fQVZSMzJfQVJDSF9TUkFNX0gKKyNkZWZpbmUgX19BU01fQVZSMzJfQVJDSF9TUkFNX0gKKworI2luY2x1ZGUgPGxpbnV4L2dlbmFsbG9jLmg+CisKK2V4dGVybiBzdHJ1Y3QgZ2VuX3Bvb2wgKnNyYW1fcG9vbDsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHNyYW1fYWxsb2Moc2l6ZV90IGxlbikKK3sKKwlpZiAoIXNyYW1fcG9vbCkKKwkJcmV0dXJuIDBVTDsKKworCXJldHVybiBnZW5fcG9vbF9hbGxvYyhzcmFtX3Bvb2wsIGxlbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcmFtX2ZyZWUodW5zaWduZWQgbG9uZyBhZGRyLCBzaXplX3QgbGVuKQoreworCXJldHVybiBnZW5fcG9vbF9mcmVlKHNyYW1fcG9vbCwgYWRkciwgbGVuKTsKK30KKworI2VuZGlmIC8qIF9fQVNNX0FWUjMyX0FSQ0hfU1JBTV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9tbXVfY29udGV4dC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvbW11X2NvbnRleHQuaAppbmRleCBjMzdjMzkxLi4yN2ZmMjM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL21tdV9jb250ZXh0LmgKQEAgLTEzLDcgKzEzLDYgQEAKICNkZWZpbmUgX19BU01fQVZSMzJfTU1VX0NPTlRFWFRfSAogCiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vc3lzcmVnLmg+CiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvbW1faG9va3MuaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvcGNpLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaAppbmRleCAwZjVmMTM0Li5hMzJhMDIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaApAQCAtNSw0ICs1LDYgQEAKIAogI2RlZmluZSBQQ0lfRE1BX0JVU19JU19QSFlTCSgxKQogCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGNpLWRtYS1jb21wYXQuaD4KKwogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX1BDSV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3BnYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3BnYWxsb2MuaAppbmRleCA1MWZjMWY2Li42NDA4MjEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9wZ2FsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvcGdhbGxvYy5oCkBAIC04LDY1ICs4LDc5IEBACiAjaWZuZGVmIF9fQVNNX0FWUjMyX1BHQUxMT0NfSAogI2RlZmluZSBfX0FTTV9BVlIzMl9QR0FMTE9DX0gKIAotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcXVpY2tsaXN0Lmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCi0jZGVmaW5lIHBtZF9wb3B1bGF0ZV9rZXJuZWwobW0sIHBtZCwgcHRlKSBcCi0Jc2V0X3BtZChwbWQsIF9fcG1kKF9QQUdFX1RBQkxFICsgX19wYShwdGUpKSkKKyNkZWZpbmUgUVVJQ0tfUEdECTAJLyogUHJlc2VydmUga2VybmVsIG1hcHBpbmdzIG92ZXIgZnJlZSAqLworI2RlZmluZSBRVUlDS19QVAkxCS8qIFplcm8gb24gZnJlZSAqLwogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBtZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKK3N0YXRpYyBpbmxpbmUgdm9pZCBwbWRfcG9wdWxhdGVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCSAgICAgICBwbWRfdCAqcG1kLCBwdGVfdCAqcHRlKQoreworCXNldF9wbWQocG1kLCBfX3BtZCgodW5zaWduZWQgbG9uZylwdGUpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBtZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKIAkJCQkgICAgcGd0YWJsZV90IHB0ZSkKIHsKLQlzZXRfcG1kKHBtZCwgX19wbWQoX1BBR0VfVEFCTEUgKyBwYWdlX3RvX3BoeXMocHRlKSkpOworCXNldF9wbWQocG1kLCBfX3BtZCgodW5zaWduZWQgbG9uZylwYWdlX2FkZHJlc3MocHRlKSkpOwogfQogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpIHBtZF9wYWdlKHBtZCkKIAorc3RhdGljIGlubGluZSB2b2lkIHBnZF9jdG9yKHZvaWQgKngpCit7CisJcGdkX3QgKnBnZCA9IHg7CisKKwltZW1jcHkocGdkICsgVVNFUl9QVFJTX1BFUl9QR0QsCisJCXN3YXBwZXJfcGdfZGlyICsgVVNFUl9QVFJTX1BFUl9QR0QsCisJCShQVFJTX1BFUl9QR0QgLSBVU0VSX1BUUlNfUEVSX1BHRCkgKiBzaXplb2YocGdkX3QpKTsKK30KKwogLyoKICAqIEFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCitzdGF0aWMgaW5saW5lIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcmV0dXJuIGtjYWxsb2MoVVNFUl9QVFJTX1BFUl9QR0QsIHNpemVvZihwZ2RfdCksIEdGUF9LRVJORUwpOworCXJldHVybiBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUEdELCBHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFULCBwZ2RfY3Rvcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKIHsKLQlrZnJlZShwZ2QpOworCXF1aWNrbGlzdF9mcmVlKFFVSUNLX1BHRCwgTlVMTCwgcGdkKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCAqcHRlX2FsbG9jX29uZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewotCXB0ZV90ICpwdGU7Ci0KLQlwdGUgPSAocHRlX3QgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFUEVBVCk7Ci0KLQlyZXR1cm4gcHRlOworCXJldHVybiBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUFQsIEdGUF9LRVJORUwgfCBfX0dGUF9SRVBFQVQsIE5VTEwpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpwdGVfYWxsb2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorc3RhdGljIGlubGluZSBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcGFnZSAqcHRlOworCXN0cnVjdCBwYWdlICpwYWdlOworCXZvaWQgKnBnOwogCi0JcHRlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFUIHwgX19HRlBfWkVSTyk7Ci0JaWYgKCFwdGUpCisJcGcgPSBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUFQsIEdGUF9LRVJORUwgfCBfX0dGUF9SRVBFQVQsIE5VTEwpOworCWlmICghcGcpCiAJCXJldHVybiBOVUxMOwotCXBndGFibGVfcGFnZV9jdG9yKHB0ZSk7Ci0JcmV0dXJuIHB0ZTsKKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocGcpOworCXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpOworCisJcmV0dXJuIHBhZ2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICpwdGUpCiB7Ci0JZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXB0ZSk7CisJcXVpY2tsaXN0X2ZyZWUoUVVJQ0tfUFQsIE5VTEwsIHB0ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZSkKIHsKIAlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwotCV9fZnJlZV9wYWdlKHB0ZSk7CisJcXVpY2tsaXN0X2ZyZWVfcGFnZShRVUlDS19QVCwgTlVMTCwgcHRlKTsKIH0KIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIscHRlKQkJCQlcCkBAIC03NSw2ICs4OSwxMCBAQAogCXRsYl9yZW1vdmVfcGFnZSgodGxiKSwgcHRlKTsJCQlcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpIGRvIHsgfSB3aGlsZSgwKQorc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX3BndF9jYWNoZSh2b2lkKQoreworCXF1aWNrbGlzdF90cmltKFFVSUNLX1BHRCwgTlVMTCwgMjUsIDE2KTsKKwlxdWlja2xpc3RfdHJpbShRVUlDS19QVCwgTlVMTCwgMjUsIDE2KTsKK30KIAogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX1BHQUxMT0NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvcGd0YWJsZS5oCmluZGV4IGMwZTVlMjkuLmZlY2RkYTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL3BndGFibGUuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9wZ3RhYmxlLmgKQEAgLTEyOSwxMyArMTI5LDYgQEAKIAogI2RlZmluZSBfUEFHRV9GTEFHU19DQUNIRV9NQVNLCShfUEFHRV9DQUNIQUJMRSB8IF9QQUdFX0JVRkZFUiB8IF9QQUdFX1dUKQogCi0vKiBUT0RPOiBDaGVjayBmb3Igc2FuZW5lc3MgKi8KLS8qIFVzZXItbW9kZSBwYWdlIHRhYmxlIGZsYWdzICh0byBiZSBzZXQgaW4gYSBwZ2Qgb3IgcG1kIGVudHJ5KSAqLwotI2RlZmluZSBfUEFHRV9UQUJMRQkJKF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9UWVBFX1NNQUxMIHwgX1BBR0VfUlcgXAotCQkJCSB8IF9QQUdFX1VTRVIgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0RJUlRZKQotLyogS2VybmVsLW1vZGUgcGFnZSB0YWJsZSBmbGFncyAqLwotI2RlZmluZSBfS0VSTlBHX1RBQkxFCQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1RZUEVfU01BTEwgfCBfUEFHRV9SVyBcCi0JCQkJIHwgX1BBR0VfQUNDRVNTRUQgfCBfUEFHRV9ESVJUWSkKIC8qIEZsYWdzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIGJ5IHNvZnR3YXJlICovCiAjZGVmaW5lIF9QQUdFX0NIR19NQVNLCQkoUFRFX01BU0sgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0RJUlRZIFwKIAkJCQkgfCBfUEFHRV9GTEFHU19DQUNIRV9NQVNLKQpAQCAtMjYyLDEwICsyNTUsMTQgQEAKIH0KIAogI2RlZmluZSBwbWRfbm9uZSh4KQkoIXBtZF92YWwoeCkpCi0jZGVmaW5lIHBtZF9wcmVzZW50KHgpCShwbWRfdmFsKHgpICYgX1BBR0VfUFJFU0VOVCkKLSNkZWZpbmUgcG1kX2NsZWFyKHhwKQlkbyB7IHNldF9wbWQoeHAsIF9fcG1kKDApKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUJcG1kX2JhZCh4KQkoKHBtZF92YWwoeCkgJiAoflBBR0VfTUFTSyAmIH5fUEFHRV9VU0VSKSkJXAotCQkJICE9IF9LRVJOUEdfVEFCTEUpCisjZGVmaW5lIHBtZF9wcmVzZW50KHgpCShwbWRfdmFsKHgpKQorCitzdGF0aWMgaW5saW5lIHZvaWQgcG1kX2NsZWFyKHBtZF90ICpwbWRwKQoreworCXNldF9wbWQocG1kcCwgX19wbWQoMCkpOworfQorCisjZGVmaW5lCXBtZF9iYWQoeCkJKHBtZF92YWwoeCkgJiB+UEFHRV9NQVNLKQogCiAvKgogICogUGVybWFuZW50IGFkZHJlc3Mgb2YgYSBwYWdlLiBXZSBkb24ndCBzdXBwb3J0IGhpZ2htZW0sIHNvIHRoaXMgaXMKQEAgLTMwMywxOSArMzAwLDE2IEBACiAKICNkZWZpbmUgcGFnZV9wdGUocGFnZSkJcGFnZV9wdGVfcHJvdChwYWdlLCBfX3BncHJvdCgwKSkKIAotI2RlZmluZSBwbWRfcGFnZV92YWRkcihwbWQpCQkJCQlcCi0JKCh1bnNpZ25lZCBsb25nKSBfX3ZhKHBtZF92YWwocG1kKSAmIFBBR0VfTUFTSykpCi0KLSNkZWZpbmUgcG1kX3BhZ2UocG1kKQkocGh5c190b19wYWdlKHBtZF92YWwocG1kKSkpCisjZGVmaW5lIHBtZF9wYWdlX3ZhZGRyKHBtZCkJcG1kX3ZhbChwbWQpCisjZGVmaW5lIHBtZF9wYWdlKHBtZCkJCSh2aXJ0X3RvX3BhZ2UocG1kX3ZhbChwbWQpKSkKIAogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIHBhZ2UtdGFibGUtZGlyZWN0b3J5LiAqLwotI2RlZmluZSBwZ2RfaW5kZXgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gUEdESVJfU0hJRlQpICYgKFBUUlNfUEVSX1BHRC0xKSkKLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCtwZ2RfaW5kZXgoYWRkcmVzcykpCi0jZGVmaW5lIHBnZF9vZmZzZXRfY3VycmVudChhZGRyZXNzKQkJCQlcCi0JKChwZ2RfdCAqKV9fbWZzcihTWVNSRUdfUFRCUikgKyBwZ2RfaW5kZXgoYWRkcmVzcykpCisjZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKQkoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkJXAorCQkJCSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKKyNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykJKChtbSktPnBnZCArIHBnZF9pbmRleChhZGRyZXNzKSkKIAogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIGtlcm5lbCBwYWdlLXRhYmxlLWRpcmVjdG9yeSAqLwotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgYWRkcmVzcykKKyNkZWZpbmUgcGdkX29mZnNldF9rKGFkZHJlc3MpCXBnZF9vZmZzZXQoJmluaXRfbW0sIGFkZHJlc3MpCiAKIC8qIEZpbmQgYW4gZW50cnkgaW4gdGhlIHRoaXJkLWxldmVsIHBhZ2UgdGFibGUuLiAqLwogI2RlZmluZSBwdGVfaW5kZXgoYWRkcmVzcykJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvc2V0dXAuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3NldHVwLmgKaW5kZXggZWEzMDcwZi4uZmY1YjdjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvc2V0dXAuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9zZXR1cC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgQXRtZWwgQ29ycG9yYXRpb24KICAqCiAgKiBCYXNlZCBvbiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaAotICogICBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWwgS2luZworICogICBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWxsIEtpbmcKICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3RocmVhZF9pbmZvLmggYi9pbmNsdWRlL2FzbS1hdnIzMi90aHJlYWRfaW5mby5oCmluZGV4IDA3MDQ5ZjYuLmRmNjg2MzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL3RocmVhZF9pbmZvLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvdGhyZWFkX2luZm8uaApAQCAtODgsNiArODgsNyBAQAogI2RlZmluZSBUSUZfTUVNRElFCQk2CiAjZGVmaW5lIFRJRl9SRVNUT1JFX1NJR01BU0sJNwkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCAqLwogI2RlZmluZSBUSUZfQ1BVX0dPSU5HX1RPX1NMRUVQCTgJLyogQ1BVIGlzIGVudGVyaW5nIHNsZWVwIDAgbW9kZSAqLworI2RlZmluZSBUSUZfRlJFRVpFCQkyOQogI2RlZmluZSBUSUZfREVCVUcJCTMwCS8qIGRlYnVnZ2luZyBlbmFibGVkICovCiAjZGVmaW5lIFRJRl9VU0VSU1BBQ0UJCTMxICAgICAgLyogdHJ1ZSBpZiBGUyBzZXRzIHVzZXJzcGFjZSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi90bGJmbHVzaC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvdGxiZmx1c2guaAppbmRleCA1YmM3Yzg4Li5iZjkwYTc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi90bGJmbHVzaC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL3RsYmZsdXNoLmgKQEAgLTI2LDcgKzI2LDYgQEAKIGV4dGVybiB2b2lkIGZsdXNoX3RsYl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCSAgICB1bnNpZ25lZCBsb25nIGVuZCk7CiBleHRlcm4gdm9pZCBmbHVzaF90bGJfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBwYWdlKTsKLWV4dGVybiB2b2lkIF9fZmx1c2hfdGxiX3BhZ2UodW5zaWduZWQgbG9uZyBhc2lkLCB1bnNpZ25lZCBsb25nIHBhZ2UpOwogCiBleHRlcm4gdm9pZCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9iZmluX3NlcmlhbF81eHguaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MjcvYmZpbl9zZXJpYWxfNXh4LmgKaW5kZXggMjZlM2M4MC4uMjUyNmI2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9iZmluX3NlcmlhbF81eHguaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTI3L2JmaW5fc2VyaWFsXzV4eC5oCkBAIC01Myw2ICs1MywxMiBAQAogI2RlZmluZSBVQVJUX1NFVF9ETEFCKHVhcnQpICAgICBkbyB7IFVBUlRfUFVUX0xDUih1YXJ0LCBVQVJUX0dFVF9MQ1IodWFydCkgfCBETEFCKTsgU1NZTkMoKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgVUFSVF9DTEVBUl9ETEFCKHVhcnQpICAgZG8geyBVQVJUX1BVVF9MQ1IodWFydCwgVUFSVF9HRVRfTENSKHVhcnQpICYgfkRMQUIpOyBTU1lOQygpOyB9IHdoaWxlICgwKQogCisjZGVmaW5lIFVBUlRfR0VUX0NUUyh4KSBncGlvX2dldF92YWx1ZSh4LT5jdHNfcGluKQorI2RlZmluZSBVQVJUX1NFVF9SVFMoeCkgZ3Bpb19zZXRfdmFsdWUoeC0+cnRzX3BpbiwgMSkKKyNkZWZpbmUgVUFSVF9DTEVBUl9SVFMoeCkgZ3Bpb19zZXRfdmFsdWUoeC0+cnRzX3BpbiwgMCkKKyNkZWZpbmUgVUFSVF9FTkFCTEVfSU5UUyh4LCB2KSBVQVJUX1BVVF9JRVIoeCwgdikKKyNkZWZpbmUgVUFSVF9ESVNBQkxFX0lOVFMoeCkgVUFSVF9QVVRfSUVSKHgsIDApCisKICNpZiBkZWZpbmVkKENPTkZJR19CRklOX1VBUlQwX0NUU1JUUykgfHwgZGVmaW5lZChDT05GSUdfQkZJTl9VQVJUMV9DVFNSVFMpCiAjIGRlZmluZSBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCiAKQEAgLTkwLDcgKzk2LDcgQEAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdHhfZG1hX3dvcmtxdWV1ZTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCBjdHNfdGltZXI7CiAJaW50IGN0c19waW47CiAJaW50IHJ0c19waW47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzMvYmZpbl9zZXJpYWxfNXh4LmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTMzL2JmaW5fc2VyaWFsXzV4eC5oCmluZGV4IGQwMTY2MDMuLmViZjU5MmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzMvYmZpbl9zZXJpYWxfNXh4LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzMy9iZmluX3NlcmlhbF81eHguaApAQCAtNTMsNiArNTMsMTIgQEAKICNkZWZpbmUgVUFSVF9TRVRfRExBQih1YXJ0KSAgICAgZG8geyBVQVJUX1BVVF9MQ1IodWFydCwgVUFSVF9HRVRfTENSKHVhcnQpIHwgRExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAjZGVmaW5lIFVBUlRfQ0xFQVJfRExBQih1YXJ0KSAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSAmIH5ETEFCKTsgU1NZTkMoKTsgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBVQVJUX0dFVF9DVFMoeCkgZ3Bpb19nZXRfdmFsdWUoeC0+Y3RzX3BpbikKKyNkZWZpbmUgVUFSVF9TRVRfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDEpCisjZGVmaW5lIFVBUlRfQ0xFQVJfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDApCisjZGVmaW5lIFVBUlRfRU5BQkxFX0lOVFMoeCwgdikgVUFSVF9QVVRfSUVSKHgsIHYpCisjZGVmaW5lIFVBUlRfRElTQUJMRV9JTlRTKHgpIFVBUlRfUFVUX0lFUih4LCAwKQorCiAjaWZkZWYgQ09ORklHX0JGSU5fVUFSVDBfQ1RTUlRTCiAjIGRlZmluZSBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCiAjIGlmbmRlZiBDT05GSUdfVUFSVDBfQ1RTX1BJTgpAQCAtODIsNyArODgsNyBAQAogIyBlbmRpZgogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotCXN0cnVjdCB3b3JrX3N0cnVjdCAJY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCAgICAgICBjdHNfdGltZXI7CiAJaW50CQkJY3RzX3BpbjsKIAlpbnQJCQlydHNfcGluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2JmaW5fc2VyaWFsXzV4eC5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzNy9iZmluX3NlcmlhbF81eHguaAppbmRleCBmNzlkMWEwLi4xYmY1NmZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2JmaW5fc2VyaWFsXzV4eC5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzcvYmZpbl9zZXJpYWxfNXh4LmgKQEAgLTUzLDYgKzUzLDEyIEBACiAjZGVmaW5lIFVBUlRfU0VUX0RMQUIodWFydCkgICAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSB8IERMQUIpOyBTU1lOQygpOyB9IHdoaWxlICgwKQogI2RlZmluZSBVQVJUX0NMRUFSX0RMQUIodWFydCkgICBkbyB7IFVBUlRfUFVUX0xDUih1YXJ0LCBVQVJUX0dFVF9MQ1IodWFydCkgJiB+RExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgVUFSVF9HRVRfQ1RTKHgpIGdwaW9fZ2V0X3ZhbHVlKHgtPmN0c19waW4pCisjZGVmaW5lIFVBUlRfU0VUX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAxKQorI2RlZmluZSBVQVJUX0NMRUFSX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAwKQorI2RlZmluZSBVQVJUX0VOQUJMRV9JTlRTKHgsIHYpIFVBUlRfUFVUX0lFUih4LCB2KQorI2RlZmluZSBVQVJUX0RJU0FCTEVfSU5UUyh4KSBVQVJUX1BVVF9JRVIoeCwgMCkKKwogI2lmIGRlZmluZWQoQ09ORklHX0JGSU5fVUFSVDBfQ1RTUlRTKSB8fCBkZWZpbmVkKENPTkZJR19CRklOX1VBUlQxX0NUU1JUUykKICMgZGVmaW5lIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKIApAQCAtOTAsNyArOTYsNyBAQAogCXN0cnVjdCB3b3JrX3N0cnVjdAl0eF9kbWFfd29ya3F1ZXVlOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotCXN0cnVjdCB3b3JrX3N0cnVjdCAJY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCAJY3RzX3RpbWVyOwogCWludAkJY3RzX3BpbjsKIAlpbnQgCQlydHNfcGluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTQ4L2JmaW5fc2VyaWFsXzV4eC5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9iZmluX3NlcmlhbF81eHguaAppbmRleCA1ZWI0NmE3Li41ZTI5NDQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTQ4L2JmaW5fc2VyaWFsXzV4eC5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NDgvYmZpbl9zZXJpYWxfNXh4LmgKQEAgLTU3LDYgKzU3LDEyIEBACiAjZGVmaW5lIFVBUlRfU0VUX0RMQUIodWFydCkgICAgIC8qIE1NUnMgbm90IG11eGVkIG9uIEJGNTR4ICovCiAjZGVmaW5lIFVBUlRfQ0xFQVJfRExBQih1YXJ0KSAgIC8qIE1NUnMgbm90IG11eGVkIG9uIEJGNTR4ICovCiAKKyNkZWZpbmUgVUFSVF9HRVRfQ1RTKHgpIChVQVJUX0dFVF9NU1IoeCkgJiBDVFMpCisjZGVmaW5lIFVBUlRfU0VUX1JUUyh4KSAoVUFSVF9QVVRfTUNSKHgsIFVBUlRfR0VUX01DUih4KSB8IE1SVFMpKQorI2RlZmluZSBVQVJUX0NMRUFSX1JUUyh4KSAoVUFSVF9QVVRfTUNSKHgsIFVBUlRfR0VUX01DUih4KSAmIH5NUlRTKSkKKyNkZWZpbmUgVUFSVF9FTkFCTEVfSU5UUyh4LCB2KSBVQVJUX1NFVF9JRVIoeCwgdikKKyNkZWZpbmUgVUFSVF9ESVNBQkxFX0lOVFMoeCkgVUFSVF9DTEVBUl9JRVIoeCwgMHhGKQorCiAjaWYgZGVmaW5lZChDT05GSUdfQkZJTl9VQVJUMF9DVFNSVFMpIHx8IGRlZmluZWQoQ09ORklHX0JGSU5fVUFSVDFfQ1RTUlRTKQogIyBkZWZpbmUgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwogCkBAIC05Myw3ICs5OSw3IEBACiAJc3RydWN0IHdvcmtfc3RydWN0CXR4X2RtYV93b3JrcXVldWU7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCi0Jc3RydWN0IHdvcmtfc3RydWN0IAljdHNfd29ya3F1ZXVlOworCXN0cnVjdCB0aW1lcl9saXN0IAljdHNfdGltZXI7CiAJaW50CQljdHNfcGluOwogCWludCAJCXJ0c19waW47CiAjZW5kaWYKQEAgLTE4MSw3ICsxODcsNyBAQAogCiAjaWZkZWYgQ09ORklHX0JGSU5fVUFSVDFfQ1RTUlRTCiAJcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDFfUlRTLCBEUklWRVJfTkFNRSk7Ci0JcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDFfQ1RTIERSSVZFUl9OQU1FKTsKKwlwZXJpcGhlcmFsX3JlcXVlc3QoUF9VQVJUMV9DVFMsIERSSVZFUl9OQU1FKTsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE5Niw3ICsyMDIsNyBAQAogCiAjaWZkZWYgQ09ORklHX0JGSU5fVUFSVDNfQ1RTUlRTCiAJcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDNfUlRTLCBEUklWRVJfTkFNRSk7Ci0JcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDNfQ1RTIERSSVZFUl9OQU1FKTsKKwlwZXJpcGhlcmFsX3JlcXVlc3QoUF9VQVJUM19DVFMsIERSSVZFUl9OQU1FKTsKICNlbmRpZgogI2VuZGlmCiAJU1NZTkMoKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYmZpbl9zZXJpYWxfNXh4LmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTYxL2JmaW5fc2VyaWFsXzV4eC5oCmluZGV4IDdhOTYyODcuLjhhYTAyNzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYmZpbl9zZXJpYWxfNXh4LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU2MS9iZmluX3NlcmlhbF81eHguaApAQCAtNTMsNiArNTMsMTIgQEAKICNkZWZpbmUgVUFSVF9TRVRfRExBQih1YXJ0KSAgICAgZG8geyBVQVJUX1BVVF9MQ1IodWFydCwgVUFSVF9HRVRfTENSKHVhcnQpIHwgRExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAjZGVmaW5lIFVBUlRfQ0xFQVJfRExBQih1YXJ0KSAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSAmIH5ETEFCKTsgU1NZTkMoKTsgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBVQVJUX0dFVF9DVFMoeCkgZ3Bpb19nZXRfdmFsdWUoeC0+Y3RzX3BpbikKKyNkZWZpbmUgVUFSVF9TRVRfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDEpCisjZGVmaW5lIFVBUlRfQ0xFQVJfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDApCisjZGVmaW5lIFVBUlRfRU5BQkxFX0lOVFMoeCwgdikgVUFSVF9QVVRfSUVSKHgsIHYpCisjZGVmaW5lIFVBUlRfRElTQUJMRV9JTlRTKHgpIFVBUlRfUFVUX0lFUih4LCAwKQorCiAjaWZkZWYgQ09ORklHX0JGSU5fVUFSVDBfQ1RTUlRTCiAjIGRlZmluZSBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCiAjIGlmbmRlZiBDT05GSUdfVUFSVDBfQ1RTX1BJTgpAQCAtODIsNyArODgsNyBAQAogIyBlbmRpZgogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotCXN0cnVjdCB3b3JrX3N0cnVjdCAJY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCAgICAgICBjdHNfdGltZXI7CiAJaW50CQkJY3RzX3BpbjsKIAlpbnQJCQlydHNfcGluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1mcnYvc3lzdGVtLmggYi9pbmNsdWRlL2FzbS1mcnYvc3lzdGVtLmgKaW5kZXggZDNhMTJhOS4uNzc0MmVjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZnJ2L3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLWZydi9zeXN0ZW0uaApAQCAtODcsNyArODcsNyBAQAogfSB3aGlsZSgwKQogCiAjZGVmaW5lIGlycXNfZGlzYWJsZWQoKSBcCi0JKHt1bnNpZ25lZCBsb25nIGZsYWdzOyBsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsgZmxhZ3M7IH0pCisJKHt1bnNpZ25lZCBsb25nIGZsYWdzOyBsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsgISFmbGFnczsgfSkKIAogI2RlZmluZQlsb2NhbF9pcnFfc2F2ZShmbGFncykJCQlcCiBkbyB7CQkJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQuYXNtIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQuYXNtCmluZGV4IDkyYTZkOTEuLjdjZDI1YjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkLmFzbQorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20KQEAgLTEsNiArMSw2IEBACiBoZWFkZXIteSAgKz0ga3ZtLmgKIAotaWZlcSAoJCh3aWxkY2FyZCBpbmNsdWRlL2FzbS0kKFNSQ0FSQ0gpL2Eub3V0LmgpLGluY2x1ZGUvYXNtLSQoU1JDQVJDSCkvYS5vdXQuaCkKK2lmbmVxICgkKHdpbGRjYXJkICQoc3JjdHJlZSkvaW5jbHVkZS9hc20tJChTUkNBUkNIKS9hLm91dC5oKSwpCiB1bmlmZGVmLXkgKz0gYS5vdXQuaAogZW5kaWYKIHVuaWZkZWYteSArPSBhdXh2ZWMuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLmgKaW5kZXggODVmZDBhYS4uNGVjMGEyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBfQVNNX0dFTkVSSUNfQVRPTUlDX0gKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotICoJQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKglDaHJpc3RvcGggTGFtZXRlcgogICoKICAqIEFsbG93cyB0byBwcm92aWRlIGFyY2ggaW5kZXBlbmRlbnQgYXRvbWljIGRlZmluaXRpb25zIHdpdGhvdXQgdGhlIG5lZWQgdG8KICAqIGVkaXQgYWxsIGFyY2ggc3BlY2lmaWMgYXRvbWljLmggZmlsZXMuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCmluZGV4IDQ0ZWYzMjkuLjRmY2UzZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCkBAIC0xOTcsNiArMTk3LDYzIEBACiB9CiAjZW5kaWYgLyogQ09ORklHX01NVSAqLwogCitzdGF0aWMgaW5saW5lIHB0ZV90IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgICAgcHRlX3QgKnB0ZXApCit7CisJLyoKKwkgKiBHZXQgdGhlIGN1cnJlbnQgcHRlIHN0YXRlLCBidXQgemVybyBpdCBvdXQgdG8gbWFrZSBpdAorCSAqIG5vbi1wcmVzZW50LCBwcmV2ZW50aW5nIHRoZSBoYXJkd2FyZSBmcm9tIGFzeW5jaHJvbm91c2x5CisJICogdXBkYXRpbmcgaXQuCisJICovCisJcmV0dXJuIHB0ZXBfZ2V0X2FuZF9jbGVhcihtbSwgYWRkciwgcHRlcCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQoreworCS8qCisJICogVGhlIHB0ZSBpcyBub24tcHJlc2VudCwgc28gdGhlcmUncyBubyBoYXJkd2FyZSBzdGF0ZSB0bworCSAqIHByZXNlcnZlLgorCSAqLworCXNldF9wdGVfYXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7Cit9CisKKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTgorLyoKKyAqIFN0YXJ0IGEgcHRlIHByb3RlY3Rpb24gcmVhZC1tb2RpZnktd3JpdGUgdHJhbnNhY3Rpb24sIHdoaWNoCisgKiBwcm90ZWN0cyBhZ2FpbnN0IGFzeW5jaHJvbm91cyBoYXJkd2FyZSBtb2RpZmljYXRpb25zIHRvIHRoZSBwdGUuCisgKiBUaGUgaW50ZW50aW9uIGlzIG5vdCB0byBwcmV2ZW50IHRoZSBoYXJkd2FyZSBmcm9tIG1ha2luZyBwdGUKKyAqIHVwZGF0ZXMsIGJ1dCB0byBwcmV2ZW50IGFueSB1cGRhdGVzIGl0IG1heSBtYWtlIGZyb20gYmVpbmcgbG9zdC4KKyAqCisgKiBUaGlzIGRvZXMgbm90IHByb3RlY3QgYWdhaW5zdCBvdGhlciBzb2Z0d2FyZSBtb2RpZmljYXRpb25zIG9mIHRoZQorICogcHRlOyB0aGUgYXBwcm9wcmlhdGUgcHRlIGxvY2sgbXVzdCBiZSBoZWxkIG92ZXIgdGhlIHRyYW5zYXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaW50ZXJmYWNlIGlzIGludGVuZGVkIHRvIGJlIGJhdGNoYWJsZSwgbWVhbmluZyB0aGF0CisgKiBwdGVwX21vZGlmeV9wcm90X2NvbW1pdCBtYXkgbm90IGFjdHVhbGx5IHVwZGF0ZSB0aGUgcHRlLCBidXQgbWVyZWx5CisgKiBxdWV1ZSB0aGUgdXBkYXRlIHRvIGJlIGRvbmUgYXQgc29tZSBsYXRlciB0aW1lLiAgVGhlIHVwZGF0ZSBtdXN0IGJlCisgKiBhY3R1YWxseSBjb21taXR0ZWQgYmVmb3JlIHRoZSBwdGUgbG9jayBpcyByZWxlYXNlZCwgaG93ZXZlci4KKyAqLworc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwKQoreworCXJldHVybiBfX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQobW0sIGFkZHIsIHB0ZXApOworfQorCisvKgorICogQ29tbWl0IGFuIHVwZGF0ZSB0byBhIHB0ZSwgbGVhdmluZyBhbnkgaGFyZHdhcmUtY29udHJvbGxlZCBiaXRzIGluCisgKiB0aGUgUFRFIHVubW9kaWZpZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBwdGVwX21vZGlmeV9wcm90X2NvbW1pdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQkgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQoreworCV9fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7Cit9CisjZW5kaWYgLyogX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTiAqLworCiAvKgogICogQSBmYWNpbGl0eSB0byBwcm92aWRlIGxhenkgTU1VIGJhdGNoaW5nLiAgVGhpcyBhbGxvd3MgUFRFIHVwZGF0ZXMgYW5kCiAgKiBwYWdlIGludmFsaWRhdGlvbnMgdG8gYmUgZGVsYXllZCB1bnRpbCBhIGNhbGwgdG8gbGVhdmUgbGF6eSBNTVUgbW9kZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oCmluZGV4IGE2YWVhNzkuLjU0YmJmNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdG9wb2xvZ3kuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RvcG9sb2d5LmgKQEAgLTYwLDcgKzYwLDggQEAKICNpZm5kZWYgbm9kZV90b19jcHVtYXNrX3B0cgogCiAjZGVmaW5lCW5vZGVfdG9fY3B1bWFza19wdHIodiwgbm9kZSkgCQkJCQlcCi0JCWNwdW1hc2tfdCBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpLCAqdiA9ICZfIyN2CisJCWNwdW1hc2tfdCBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpOwkJCVwKKwkJY29uc3QgY3B1bWFza190ICp2ID0gJl8jI3YKIAogI2RlZmluZSBub2RlX3RvX2NwdW1hc2tfcHRyX25leHQodiwgbm9kZSkJCQkJXAogCQkJICBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmgKaW5kZXggZjA1NDc3OC4uYjIwNDA5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaApAQCAtNjcsNiArNjcsOCBAQAogCQkqKC5yb2RhdGExKQkJCQkJCVwKIAl9CQkJCQkJCQlcCiAJCQkJCQkJCQlcCisJQlVHX1RBQkxFCQkJCQkJCVwKKwkJCQkJCQkJCVwKIAkvKiBQQ0kgcXVpcmtzICovCQkJCQkJXAogCS5wY2lfZml4dXAgICAgICAgIDogQVQoQUREUigucGNpX2ZpeHVwKSAtIExPQURfT0ZGU0VUKSB7CVwKIAkJVk1MSU5VWF9TWU1CT0woX19zdGFydF9wY2lfZml4dXBzX2Vhcmx5KSA9IC47CQlcCkBAIC04Niw2ICs4OCwxMyBAQAogCQlWTUxJTlVYX1NZTUJPTChfX2VuZF9wY2lfZml4dXBzX3Jlc3VtZSkgPSAuOwkJXAogCX0JCQkJCQkJCVwKIAkJCQkJCQkJCVwKKwkvKiBCdWlsdC1pbiBmaXJtd2FyZSBibG9icyAqLwkJCQkJXAorCS5idWlsdGluX2Z3ICAgICAgICA6IEFUKEFERFIoLmJ1aWx0aW5fZncpIC0gTE9BRF9PRkZTRVQpIHsJXAorCQlWTUxJTlVYX1NZTUJPTChfX3N0YXJ0X2J1aWx0aW5fZncpID0gLjsJCQlcCisJCSooLmJ1aWx0aW5fZncpCQkJCQkJXAorCQlWTUxJTlVYX1NZTUJPTChfX2VuZF9idWlsdGluX2Z3KSA9IC47CQkJXAorCX0JCQkJCQkJCVwKKwkJCQkJCQkJCVwKIAkvKiBSYXBpZElPIHJvdXRlIG9wcyAqLwkJCQkJCVwKIAkucmlvX3JvdXRlICAgICAgICA6IEFUKEFERFIoLnJpb19yb3V0ZSkgLSBMT0FEX09GRlNFVCkgewlcCiAJCVZNTElOVVhfU1lNQk9MKF9fc3RhcnRfcmlvX3JvdXRlX29wcykgPSAuOwkJXApAQCAtOTMsNiArMTAyLDggQEAKIAkJVk1MSU5VWF9TWU1CT0woX19lbmRfcmlvX3JvdXRlX29wcykgPSAuOwkJXAogCX0JCQkJCQkJCVwKIAkJCQkJCQkJCVwKKwlUUkFDRURBVEEJCQkJCQkJXAorCQkJCQkJCQkJXAogCS8qIEtlcm5lbCBzeW1ib2wgdGFibGU6IE5vcm1hbCBzeW1ib2xzICovCQkJXAogCV9fa3N5bXRhYiAgICAgICAgIDogQVQoQUREUihfX2tzeW10YWIpIC0gTE9BRF9PRkZTRVQpIHsJCVwKIAkJVk1MSU5VWF9TWU1CT0woX19zdGFydF9fX2tzeW10YWIpID0gLjsJCQlcCkBAIC0zMTAsNiArMzIxLDcgQEAKIAkJLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQkJXAogCQkuY29tbWVudCAwIDogeyAqKC5jb21tZW50KSB9CiAKKyNpZmRlZiBDT05GSUdfR0VORVJJQ19CVUcKICNkZWZpbmUgQlVHX1RBQkxFCQkJCQkJCVwKIAkuID0gQUxJR04oOCk7CQkJCQkJCVwKIAlfX2J1Z190YWJsZSA6IEFUKEFERFIoX19idWdfdGFibGUpIC0gTE9BRF9PRkZTRVQpIHsJCVwKQEAgLTMxNyw2ICszMjksMjEgQEAKIAkJKihfX2J1Z190YWJsZSkJCQkJCQlcCiAJCV9fc3RvcF9fX2J1Z190YWJsZSA9IC47CQkJCQlcCiAJfQorI2Vsc2UKKyNkZWZpbmUgQlVHX1RBQkxFCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19QTV9UUkFDRQorI2RlZmluZSBUUkFDRURBVEEJCQkJCQkJXAorCS4gPSBBTElHTig0KTsJCQkJCQkJXAorCS50cmFjZWRhdGEgOiBBVChBRERSKC50cmFjZWRhdGEpIC0gTE9BRF9PRkZTRVQpIHsJCVwKKwkgIAlfX3RyYWNlZGF0YV9zdGFydCA9IC47CQkJCQlcCisJCSooLnRyYWNlZGF0YSkJCQkJCQlcCisJICAJX190cmFjZWRhdGFfZW5kID0gLjsJCQkJCVwKKwl9CisjZWxzZQorI2RlZmluZSBUUkFDRURBVEEKKyNlbmRpZgogCiAjZGVmaW5lIE5PVEVTCQkJCQkJCQlcCiAJLm5vdGVzIDogQVQoQUREUigubm90ZXMpIC0gTE9BRF9PRkZTRVQpIHsJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1pYTY0L3NuL3NpbXVsYXRvci5oIGIvaW5jbHVkZS9hc20taWE2NC9zbi9zaW11bGF0b3IuaAppbmRleCBjM2ZkM2ViLi5jMjYxMWY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1pYTY0L3NuL3NpbXVsYXRvci5oCisrKyBiL2luY2x1ZGUvYXNtLWlhNjQvc24vc2ltdWxhdG9yLmgKQEAgLTgsNyArOCw3IEBACiAjaWZuZGVmIF9BU01fSUE2NF9TTl9TSU1VTEFUT1JfSAogI2RlZmluZSBfQVNNX0lBNjRfU05fU0lNVUxBVE9SX0gKIAotCisjaWYgZGVmaW5lZChDT05GSUdfSUE2NF9HRU5FUklDKSB8fCBkZWZpbmVkKENPTkZJR19JQTY0X1NHSV9TTjIpIHx8IGRlZmluZWQoQ09ORklHX0lBNjRfU0dJX1VWKQogI2RlZmluZSBTTk1BR0lDIDB4YWVlZWVlZWU4YmFkYmVlZkwKICNkZWZpbmUgSVNfTUVEVVNBKCkJCQkoe2xvbmcgc247IGFzbSgibW92ICUwPWNwdWlkWyUxXSIgOiAiPXIiKHNuKSA6ICJyIigyKSk7IHNuID09IFNOTUFHSUM7fSkKIApAQCAtMTYsNSArMTYsMTAgQEAKICNkZWZpbmUgSVNfUlVOTklOR19PTl9TSU1VTEFUT1IoKQkoc25fcHJvbV90eXBlKQogI2RlZmluZSBJU19SVU5OSU5HX09OX0ZBS0VfUFJPTSgpCShzbl9wcm9tX3R5cGUgPT0gMikKIGV4dGVybiBpbnQgc25fcHJvbV90eXBlOwkJLyogMD1oYXJkd2FyZSwgMT1tZWR1c2EvcmVhbHByb20sIDI9bWVkdXNhL2Zha2Vwcm9tICovCisjZWxzZQorI2RlZmluZSBJU19NRURVU0EoKQkJCTAKKyNkZWZpbmUgU0lNVUxBVE9SX1NMRUVQKCkKKyNkZWZpbmUgSVNfUlVOTklOR19PTl9TSU1VTEFUT1IoKQkwCisjZW5kaWYKIAogI2VuZGlmIC8qIF9BU01fSUE2NF9TTl9TSU1VTEFUT1JfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9iaXRvcHMuaCBiL2luY2x1ZGUvYXNtLW02OGsvYml0b3BzLmgKaW5kZXggODNkMWYyOC4uM2U4MTA2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9iaXRvcHMuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL2JpdG9wcy5oCkBAIC00MTAsOCArNDEwLDQ5IEBACiAJcmVzID0gZXh0Ml9maW5kX2ZpcnN0X3plcm9fYml0IChwLCBzaXplIC0gMzIgKiAocCAtIGFkZHIpKTsKIAlyZXR1cm4gKHAgLSBhZGRyKSAqIDMyICsgcmVzOwogfQotI2RlZmluZSBleHQyX2ZpbmRfbmV4dF9iaXQoYWRkciwgc2l6ZSwgb2ZmKSBcCi0JZ2VuZXJpY19maW5kX25leHRfbGVfYml0KCh1bnNpZ25lZCBsb25nICopKGFkZHIpLCAoc2l6ZSksIChvZmYpKQorCitzdGF0aWMgaW5saW5lIGludCBleHQyX2ZpbmRfZmlyc3RfYml0KGNvbnN0IHZvaWQgKnZhZGRyLCB1bnNpZ25lZCBzaXplKQoreworCWNvbnN0IHVuc2lnbmVkIGxvbmcgKnAgPSB2YWRkciwgKmFkZHIgPSB2YWRkcjsKKwlpbnQgcmVzOworCisJaWYgKCFzaXplKQorCQlyZXR1cm4gMDsKKworCXNpemUgPSAoc2l6ZSA+PiA1KSArICgoc2l6ZSAmIDMxKSA+IDApOworCXdoaWxlICgqcCsrID09IDBVTCkgeworCQlpZiAoLS1zaXplID09IDApCisJCQlyZXR1cm4gKHAgLSBhZGRyKSA8PCA1OworCX0KKworCS0tcDsKKwlmb3IgKHJlcyA9IDA7IHJlcyA8IDMyOyByZXMrKykKKwkJaWYgKGV4dDJfdGVzdF9iaXQocmVzLCBwKSkKKwkJCWJyZWFrOworCXJldHVybiAocCAtIGFkZHIpICogMzIgKyByZXM7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGV4dDJfZmluZF9uZXh0X2JpdChjb25zdCB2b2lkICp2YWRkciwgdW5zaWduZWQgc2l6ZSwKKwkJCQkgICAgIHVuc2lnbmVkIG9mZnNldCkKK3sKKwljb25zdCB1bnNpZ25lZCBsb25nICphZGRyID0gdmFkZHI7CisJY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IGFkZHIgKyAob2Zmc2V0ID4+IDUpOworCWludCBiaXQgPSBvZmZzZXQgJiAzMVVMLCByZXM7CisKKwlpZiAob2Zmc2V0ID49IHNpemUpCisJCXJldHVybiBzaXplOworCisJaWYgKGJpdCkgeworCQkvKiBMb29rIGZvciBvbmUgaW4gZmlyc3QgbG9uZ3dvcmQgKi8KKwkJZm9yIChyZXMgPSBiaXQ7IHJlcyA8IDMyOyByZXMrKykKKwkJCWlmIChleHQyX3Rlc3RfYml0KHJlcywgcCkpCisJCQkJcmV0dXJuIChwIC0gYWRkcikgKiAzMiArIHJlczsKKwkJcCsrOworCX0KKwkvKiBObyBzZXQgYml0IHlldCwgc2VhcmNoIHJlbWFpbmluZyBmdWxsIGJ5dGVzIGZvciBhIHNldCBiaXQgKi8KKwlyZXMgPSBleHQyX2ZpbmRfZmlyc3RfYml0KHAsIHNpemUgLSAzMiAqIChwIC0gYWRkcikpOworCXJldHVybiAocCAtIGFkZHIpICogMzIgKyByZXM7Cit9CiAKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvYXRvbWljLmggYi9pbmNsdWRlL2FzbS1taXBzL2F0b21pYy5oCmluZGV4IGE3OThkNjIuLjEyMzJiZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvYXRvbWljLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9hdG9taWMuaApAQCAtMjgzLDEwICsyODMsMTAgQEAKIAkJIgliZXF6CSUwLCAyZgkJCQkJXG4iCiAJCSIJIHN1YnUJJTAsICUxLCAlMwkJCQlcbiIKIAkJIgkuc2V0CXJlb3JkZXIJCQkJCVxuIgotCQkiMToJCQkJCQkJXG4iCiAJCSIJLnN1YnNlY3Rpb24gMgkJCQkJXG4iCiAJCSIyOgliCTFiCQkJCQlcbiIKIAkJIgkucHJldmlvdXMJCQkJCVxuIgorCQkiMToJCQkJCQkJXG4iCiAJCSIJLnNldAltaXBzMAkJCQkJXG4iCiAJCTogIj0mciIgKHJlc3VsdCksICI9JnIiICh0ZW1wKSwgIj1tIiAodi0+Y291bnRlcikKIAkJOiAiSXIiIChpKSwgIm0iICh2LT5jb3VudGVyKQpAQCAtNjY0LDEwICs2NjQsMTAgQEAKIAkJIgliZXF6CSUwLCAyZgkJCQkJXG4iCiAJCSIJIGRzdWJ1CSUwLCAlMSwgJTMJCQkJXG4iCiAJCSIJLnNldAlyZW9yZGVyCQkJCQlcbiIKLQkJIjE6CQkJCQkJCVxuIgogCQkiCS5zdWJzZWN0aW9uIDIJCQkJCVxuIgogCQkiMjoJYgkxYgkJCQkJXG4iCiAJCSIJLnByZXZpb3VzCQkJCQlcbiIKKwkJIjE6CQkJCQkJCVxuIgogCQkiCS5zZXQJbWlwczAJCQkJCVxuIgogCQk6ICI9JnIiIChyZXN1bHQpLCAiPSZyIiAodGVtcCksICI9bSIgKHYtPmNvdW50ZXIpCiAJCTogIklyIiAoaSksICJtIiAodi0+Y291bnRlcikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvY3B1LWluZm8uaCBiL2luY2x1ZGUvYXNtLW1pcHMvY3B1LWluZm8uaAppbmRleCAwYzVhMzU4Li4yZGU3M2RiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL2NwdS1pbmZvLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9jcHUtaW5mby5oCkBAIC01Niw3ICs1Niw3IEBACiAJc3RydWN0IGNhY2hlX2Rlc2MJdGNhY2hlOwkvKiBUZXJ0aWFyeS9zcGxpdCBzZWNvbmRhcnkgY2FjaGUgKi8KIAlpbnQJCQlzcnNldHM7CS8qIFNoYWRvdyByZWdpc3RlciBzZXRzICovCiAJaW50CQkJY29yZTsJLyogcGh5c2ljYWwgY29yZSBudW1iZXIgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19NSVBTX01UX1NNVEMpCisjaWYgZGVmaW5lZChDT05GSUdfTUlQU19NVF9TTVApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfTVRfU01UQykKIAkvKgogCSAqIEluIHRoZSBNSVBTIE1UICJTTVRDIiBtb2RlbCwgZWFjaCBUQyBpcyBjb25zaWRlcmVkCiAJICogdG8gYmUgYSAiQ1BVIiBmb3IgdGhlIHB1cnBvc2VzIG9mIHNjaGVkdWxpbmcsIGJ1dApAQCAtNjQsNyArNjQsNyBAQAogCSAqIHRvIGFsbCBUQ3Mgd2l0aGluIHRoZSBzYW1lIFZQRS4KIAkgKi8KIAlpbnQJCQl2cGVfaWQ7ICAvKiBWaXJ0dWFsIFByb2Nlc3NvciBudW1iZXIgKi8KLSNlbmRpZiAvKiBDT05GSUdfTUlQU19NVCAqLworI2VuZGlmCiAjaWZkZWYgQ09ORklHX01JUFNfTVRfU01UQwogCWludAkJCXRjX2lkOyAgIC8qIFRocmVhZCBDb250ZXh0IG51bWJlciAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL2dpYy5oIGIvaW5jbHVkZS9hc20tbWlwcy9naWMuaAppbmRleCAzYTQ5MmYyLi45NTQ4MDdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL2dpYy5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvZ2ljLmgKQEAgLTI0LDggKzI0LDggQEAKIAogI2RlZmluZSBNU0sobikgKCgxIDw8IChuKSkgLSAxKQogI2RlZmluZSBSRUczMihhZGRyKQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChhZGRyKSkKLSNkZWZpbmUgUkVHKGJhc2UsIG9mZnMpCQlSRUczMigodW5zaWduZWQgaW50KShiYXNlKSArIG9mZnMjI18jI09GUykKLSNkZWZpbmUgUkVHUChiYXNlLCBwaHlzKQlSRUczMigodW5zaWduZWQgaW50KShiYXNlKSArIChwaHlzKSkKKyNkZWZpbmUgUkVHKGJhc2UsIG9mZnMpCQlSRUczMigodW5zaWduZWQgbG9uZykoYmFzZSkgKyBvZmZzIyNfIyNPRlMpCisjZGVmaW5lIFJFR1AoYmFzZSwgcGh5cykJUkVHMzIoKHVuc2lnbmVkIGxvbmcpKGJhc2UpICsgKHBoeXMpKQogCiAvKiBBY2Nlc3NvcnMgKi8KICNkZWZpbmUgR0lDX1JFRyhzZWdtZW50LCBvZmZzZXQpIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbGFzYXQvc2VyaWFsLmggYi9pbmNsdWRlL2FzbS1taXBzL2xhc2F0L3NlcmlhbC5oCmluZGV4IGJhZmU2OGIuLjFjMzdkNzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvbGFzYXQvc2VyaWFsLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9sYXNhdC9zZXJpYWwuaApAQCAtNCwxMCArNCwxMCBAQAogI2RlZmluZSBMQVNBVF9CQVNFX0JBVURfMTAwIAkJKDczNzI4MDAgLyAxNikKICNkZWZpbmUgTEFTQVRfVUFSVF9SRUdTX0JBU0VfMTAwCTB4MWM4YjAwMDAKICNkZWZpbmUgTEFTQVRfVUFSVF9SRUdTX1NISUZUXzEwMAkyCi0jZGVmaW5lIExBU0FUSU5UX1VBUlRfMTAwCQk4CisjZGVmaW5lIExBU0FUSU5UX1VBUlRfMTAwCQkxNgogCiAvKiAqIExBU0FUIDIwMCBib2FyZHMgc2VyaWFsIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgTEFTQVRfQkFTRV9CQVVEXzIwMAkJKDEwMDAwMDAwMCAvIDE2IC8gMTIpCiAjZGVmaW5lIExBU0FUX1VBUlRfUkVHU19CQVNFXzIwMAkoVnJjNTA3NF9QSFlTX0JBU0UgKyAweDAzMDApCiAjZGVmaW5lIExBU0FUX1VBUlRfUkVHU19TSElGVF8yMDAJMwotI2RlZmluZSBMQVNBVElOVF9VQVJUXzIwMAkJMTMKKyNkZWZpbmUgTEFTQVRJTlRfVUFSVF8yMDAJCTIxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MTAwMC5oIGIvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTEwMDAuaAppbmRleCAxYjUwNjRkLi4wZDMwMmJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MTAwMC5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxMDAwLmgKQEAgLTYxNSw2ICs2MTUsNyBAQAogCUFVMTAwMF9SVENfTUFUQ0gxX0lOVCwKIAlBVTEwMDBfUlRDX01BVENIMl9JTlQsCiAJQVUxNTAwX1BDSV9FUlJfSU5ULAorCUFVMTUwMF9SRVNFUlZFRF9JTlQsCiAJQVUxMDAwX1VTQl9ERVZfUkVRX0lOVCwKIAlBVTEwMDBfVVNCX0RFVl9TVVNfSU5ULAogCUFVMTAwMF9VU0JfSE9TVF9JTlQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaCBiL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oCmluZGV4IGRhZTRlY2EuLjg5MmI3ZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oCkBAIC0yMDQsNiArMjA0LDE0IEBACiAJdTMyCXBzY19pMnN1ZGY7CiB9IHBzY19pMnNfdDsKIAorI2RlZmluZSBQU0NfSTJTQ0ZHX09GRlNFVAkweDA4CisjZGVmaW5lIFBTQ19JMlNNQVNLX09GRlNFVAkweDBDCisjZGVmaW5lIFBTQ19JMlNQQ1JfT0ZGU0VUCTB4MTAKKyNkZWZpbmUgUFNDX0kyU1NUQVRfT0ZGU0VUCTB4MTQKKyNkZWZpbmUgUFNDX0kyU0VWRU5UX09GRlNFVAkweDE4CisjZGVmaW5lIFBTQ19JMlNSWFRYX09GRlNFVAkweDFDCisjZGVmaW5lIFBTQ19JMlNVREZfT0ZGU0VUCTB4MjAKKwogLyogSTJTIENvbmZpZyBSZWdpc3Rlci4gKi8KICNkZWZpbmUgUFNDX0kyU0NGR19SVF9NQVNLCSgzIDw8IDMwKQogI2RlZmluZSBQU0NfSTJTQ0ZHX1JUX0ZJRk8xCSgwIDw8IDMwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9wZ3RhYmxlLWJpdHMuaCBiL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS1iaXRzLmgKaW5kZXggNjBlMmY5My4uNTFiMzRhNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9wZ3RhYmxlLWJpdHMuaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL3BndGFibGUtYml0cy5oCkBAIC0xMzQsNiArMTM0LDQgQEAKIAogI2RlZmluZSBfUEFHRV9DSEdfTUFTSyAgKFBBR0VfTUFTSyB8IF9QQUdFX0FDQ0VTU0VEIHwgX1BBR0VfTU9ESUZJRUQgfCBfQ0FDSEVfTUFTSykKIAotI2RlZmluZSBDT05GX0NNX0RFRkFVTFQJCShQQUdFX0NBQ0hBQkxFX0RFRkFVTFQ+Pl9DQUNIRV9TSElGVCkKLQogI2VuZGlmIC8qIF9BU01fUEdUQUJMRV9CSVRTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBhcmlzYy9jaGVja3N1bS5oIGIvaW5jbHVkZS9hc20tcGFyaXNjL2NoZWNrc3VtLmgKaW5kZXggY2MzZWMxYi4uZTk2MzljYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcGFyaXNjL2NoZWNrc3VtLmgKKysrIGIvaW5jbHVkZS9hc20tcGFyaXNjL2NoZWNrc3VtLmgKQEAgLTY1LDcgKzY1LDcgQEAKICIyOlxuIgogCTogIj1yIiAoc3VtKSwgIj1yIiAoaXBoKSwgIj1yIiAoaWhsKQogCTogIjEiIChpcGgpLCAiMiIgKGlobCkKLQk6ICJyMTkiLCAicjIwIiwgInIyMSIgKTsKKwk6ICJyMTkiLCAicjIwIiwgInIyMSIsICJtZW1vcnkiKTsKIAogCXJldHVybiAoX19mb3JjZSBfX3N1bTE2KXN1bTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9LYnVpbGQKaW5kZXggNzM4MTkxNi4uYmNhMzUyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9LYnVpbGQKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9LYnVpbGQKQEAgLTEsNiArMSw1IEBACiBpbmNsdWRlIGluY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkLmFzbQogCi1oZWFkZXIteSArPSBhLm91dC5oCiBoZWFkZXIteSArPSBhdXh2ZWMuaAogaGVhZGVyLXkgKz0gaW9jdGxzLmgKIGhlYWRlci15ICs9IG1tYW4uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9mdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvZnRyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU5MjEzMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMvZnRyYWNlLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfQVNNX1BPV0VSUENfRlRSQUNFCisjZGVmaW5lIF9BU01fUE9XRVJQQ19GVFJBQ0UKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNkZWZpbmUgTUNPVU5UX0FERFIJCSgobG9uZykoX21jb3VudCkpCisjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNCAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIF9tY291bnQodm9pZCk7CisjZW5kaWYKKworI2VuZGlmCisKKyNlbmRpZiAvKiBfQVNNX1BPV0VSUENfRlRSQUNFICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvaHVnZXRsYi5oCmluZGV4IDY0OWM2YzMuLmJlMzJmZjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaHVnZXRsYi5oCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMvaHVnZXRsYi5oCkBAIC00OSwxMiArNDksNiBAQAogCXJldHVybiBwdGVfd3Jwcm90ZWN0KHB0ZSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBodWdlX3B0ZXBfc2V0X3dycHJvdGVjdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCkKLXsKLQlwdGVwX3NldF93cnByb3RlY3QobW0sIGFkZHIsIHB0ZXApOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBodWdlX3B0ZXBfc2V0X2FjY2Vzc19mbGFncyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwLAogCQkJCQkgICAgIHB0ZV90IHB0ZSwgaW50IGRpcnR5KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9od19pcnEuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvaHdfaXJxLmgKaW5kZXggYWQ4YzlmNy4uZjc1YTVmYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9od19pcnEuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h3X2lycS5oCkBAIC01OSw2ICs1OSwxMSBAQAogCQlnZXRfcGFjYSgpLT5oYXJkX2VuYWJsZWQgPSAwOwlcCiAJfSB3aGlsZSgwKQogCitzdGF0aWMgaW5saW5lIGludCBpcnFzX2Rpc2FibGVkX2ZsYWdzKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJcmV0dXJuIGZsYWdzID09IDA7Cit9CisKICNlbHNlCiAKICNpZiBkZWZpbmVkKENPTkZJR19CT09LRSkKQEAgLTExMyw2ICsxMTgsMTEgQEAKICNkZWZpbmUgaGFyZF9pcnFfZW5hYmxlKCkJbG9jYWxfaXJxX2VuYWJsZSgpCiAjZGVmaW5lIGhhcmRfaXJxX2Rpc2FibGUoKQlsb2NhbF9pcnFfZGlzYWJsZSgpCiAKK3N0YXRpYyBpbmxpbmUgaW50IGlycXNfZGlzYWJsZWRfZmxhZ3ModW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlyZXR1cm4gKGZsYWdzICYgTVNSX0VFKSA9PSAwOworfQorCiAjZW5kaWYgLyogQ09ORklHX1BQQzY0ICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wb3dlcnBjL2t2bV9wcGMuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMva3ZtX3BwYy5oCmluZGV4IGIzNWE3ZTMuLjVhMjExMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMva3ZtX3BwYy5oCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMva3ZtX3BwYy5oCkBAIC01Nyw2ICs1Nyw3IEBACiAKIGV4dGVybiBpbnQga3ZtcHBjX2VtdWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV9ydW4gKnJ1biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKK2V4dGVybiBpbnQga3ZtcHBjX2VtdWxhdGVfbW1pbyhzdHJ1Y3Qga3ZtX3J1biAqcnVuLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCiBleHRlcm4gdm9pZCBrdm1wcGNfbW11X21hcChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndmFkZHIsIGdmbl90IGdmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBhc2lkLCB1MzIgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9tZWRpYWJheS5oIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9tZWRpYWJheS5oCmluZGV4IGRmMTExYzMuLmIyZWZiMzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvbWVkaWFiYXkuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL21lZGlhYmF5LmgKQEAgLTE3LDggKzE3LDYgQEAKICNkZWZpbmUgTUJfUE9XRVIJNgkvKiBtZWRpYSBiYXkgY29udGFpbnMgYSBQb3dlciBkZXZpY2UgKD8/PykgKi8KICNkZWZpbmUgTUJfTk8JCTcJLyogbWVkaWEgYmF5IGNvbnRhaW5zIG5vdGhpbmcgKi8KIAotaW50IGNoZWNrX21lZGlhX2JheShzdHJ1Y3QgZGV2aWNlX25vZGUgKndoaWNoX2JheSwgaW50IHdoYXQpOwotCiAvKiBOdW1iZXIgb2YgYmF5cyBpbiB0aGUgbWFjaGluZSBvciAwICovCiBleHRlcm4gaW50IG1lZGlhX2JheV9jb3VudDsKIApAQCAtMjksNiArMjcsMTYgQEAKIC8qIGNhbGxlZCBieSBJREUgUE1BQyBob3N0IGRyaXZlciB0byByZWdpc3RlciBJREUgY29udHJvbGxlciBmb3IgbWVkaWEgYmF5ICovCiBpbnQgbWVkaWFfYmF5X3NldF9pZGVfaW5mb3Moc3RydWN0IGRldmljZV9ub2RlICp3aGljaF9iYXksIHVuc2lnbmVkIGxvbmcgYmFzZSwKIAkJCSAgICBpbnQgaXJxLCBpZGVfaHdpZl90ICpod2lmKTsKKworaW50IGNoZWNrX21lZGlhX2JheShzdHJ1Y3QgZGV2aWNlX25vZGUgKndoaWNoX2JheSwgaW50IHdoYXQpOworCisjZWxzZQorCitzdGF0aWMgaW5saW5lIGludCBjaGVja19tZWRpYV9iYXkoc3RydWN0IGRldmljZV9ub2RlICp3aGljaF9iYXksIGludCB3aGF0KQoreworCXJldHVybiAtRU5PREVWOworfQorCiAjZW5kaWYKIAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvcGd0YWJsZS1wcGM2NC5oIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKaW5kZXggY2M2YTQzYi4uNzY4NjU2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKQEAgLTMxNCw2ICszMTQsMTYgQEAKIAlvbGQgPSBwdGVfdXBkYXRlKG1tLCBhZGRyLCBwdGVwLCBfUEFHRV9SVywgMCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBodWdlX3B0ZXBfc2V0X3dycHJvdGVjdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCkKK3sKKwl1bnNpZ25lZCBsb25nIG9sZDsKKworCWlmICgocHRlX3ZhbCgqcHRlcCkgJiBfUEFHRV9SVykgPT0gMCkKKwkJcmV0dXJuOworCW9sZCA9IHB0ZV91cGRhdGUobW0sIGFkZHIsIHB0ZXAsIF9QQUdFX1JXLCAxKTsKK30KKwogLyoKICAqIFdlIGN1cnJlbnRseSByZW1vdmUgZW50cmllcyBmcm9tIHRoZSBoYXNodGFibGUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyCiAgKiB0aGUgZW50cnkgd2FzIHlvdW5nIG9yIGRpcnR5LiBUaGUgZ2VuZXJpYyByb3V0aW5lcyBvbmx5IGZsdXNoIGlmIHRoZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHUuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvc3B1LmgKaW5kZXggNmFiZWFkNi4uOTkzNDhjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHUuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdS5oCkBAIC0xMzEsNyArMTMxLDYgQEAKIAl1NjQgZmxhZ3M7CiAJdTY0IGNsYXNzXzBfcGVuZGluZzsKIAl1NjQgY2xhc3NfMF9kYXI7Ci0JdTY0IGNsYXNzXzBfZHNpc3I7CiAJdTY0IGNsYXNzXzFfZGFyOwogCXU2NCBjbGFzc18xX2RzaXNyOwogCXNpemVfdCBsc19zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHVfY3NhLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaAppbmRleCAxMjllYzE0Li5hNDBmZDQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaApAQCAtMjU0LDcgKzI1NCw3IEBACiAJdTY0IHNwdV9jaG5sZGF0YV9SV1szMl07CiAJdTMyIHNwdV9tYWlsYm94X2RhdGFbNF07CiAJdTMyIHB1X21haWxib3hfZGF0YVsxXTsKLQl1NjQgY2xhc3NfMF9kYXIsIGNsYXNzXzBfZHNpc3IsIGNsYXNzXzBfcGVuZGluZzsKKwl1NjQgY2xhc3NfMF9kYXIsIGNsYXNzXzBfcGVuZGluZzsKIAl1NjQgY2xhc3NfMV9kYXIsIGNsYXNzXzFfZHNpc3I7CiAJdW5zaWduZWQgbG9uZyBzdXNwZW5kX3RpbWU7CiAJc3BpbmxvY2tfdCByZWdpc3Rlcl9sb2NrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvc3lzdGVtLmgKaW5kZXggMmI2NTU5YS4uNTIzNWY4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3N5c3RlbS5oCkBAIC0zNCw3ICszNCw3IEBACiAgKiBTTVAgc2luY2UgaXQgaXMgb25seSB1c2VkIHRvIG9yZGVyIHVwZGF0ZXMgdG8gc3lzdGVtIG1lbW9yeS4KICAqLwogI2RlZmluZSBtYigpICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikKLSNkZWZpbmUgcm1iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fIChfX3N0cmluZ2lmeShMV1NZTkMpIDogOiA6ICJtZW1vcnkiKQorI2RlZmluZSBybWIoKSAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikKICNkZWZpbmUgd21iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIgOiA6IDogIm1lbW9yeSIpCiAjZGVmaW5lIHJlYWRfYmFycmllcl9kZXBlbmRzKCkgIGRvIHsgfSB3aGlsZSgwKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL0tidWlsZCBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCmluZGV4IDEzYzk4MDUuLjA5ZjMxMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCkBAIC04LDYgKzgsOSBAQAogaGVhZGVyLXkgKz0gdnRvYy5oCiBoZWFkZXIteSArPSB6Y3J5cHQuaAogaGVhZGVyLXkgKz0ga3ZtLmgKK2hlYWRlci15ICs9IHNjaGlkLmgKK2hlYWRlci15ICs9IGNoc2MuaAogCiB1bmlmZGVmLXkgKz0gY21iLmgKIHVuaWZkZWYteSArPSBkZWJ1Zy5oCit1bmlmZGVmLXkgKz0gY2hwaWQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9haXJxLmggYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAppbmRleCA0MWQwMjhjLi4xYWM4MGQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaApAQCAtMTMsNyArMTMsNyBAQAogCiB0eXBlZGVmIHZvaWQgKCphZGFwdGVyX2ludF9oYW5kbGVyX3QpKHZvaWQgKiwgdm9pZCAqKTsKIAotdm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKik7Ci12b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICopOwordm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKiwgdTgpOwordm9pZCBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodm9pZCAqLCB1OCk7CiAKICNlbmRpZiAvKiBfQVNNX1MzOTBfQUlSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oIGIvaW5jbHVkZS9hc20tczM5MC9jY3dkZXYuaAppbmRleCAwNjZhYTcwLi5iYTAwN2Q4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2N3ZGV2LmgKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KIAogLyogc3RydWN0cyBmcm9tIGFzbS9jaW8uaCAqLwogc3RydWN0IGlyYjsKQEAgLTE1Nyw2ICsxNTgsMTcgQEAKIGV4dGVybiBpbnQgY2N3X2RldmljZV9yZXN1bWUoc3RydWN0IGNjd19kZXZpY2UgKik7CiBleHRlcm4gaW50IGNjd19kZXZpY2VfaGFsdChzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiBpbnQgY2N3X2RldmljZV9jbGVhcihzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtLCB1OCBrZXkpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfa2V5KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgdTgpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoc3RydWN0IGNjd19kZXZpY2UgKiwgc3RydWN0IHRjdyAqLAorCQkJICAgIHVuc2lnbmVkIGxvbmcsIHU4LCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCk7CitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX2ludHJnKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKIAogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpOwogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vZmZsaW5lKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaCBiL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaAppbmRleCBiMjAzMzM2Li42MDY4NDRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2NocGlkLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9jaHBpZC5oCkBAIC0xMCw3ICsxMCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vY2lvLmg+CiAKICNkZWZpbmUgX19NQVhfQ0hQSUQgMjU1CiAKQEAgLTQxLDYgKzQwLDkgQEAKIAl9CiB9CiAKKyNpZmRlZiBfX0tFUk5FTF9fCisjaW5jbHVkZSA8YXNtL2Npby5oPgorCiBzdGF0aWMgaW5saW5lIGludCBjaHBfaWRfaXNfdmFsaWQoc3RydWN0IGNocF9pZCAqY2hwaWQpCiB7CiAJcmV0dXJuIChjaHBpZC0+Y3NzaWQgPD0gX19NQVhfQ1NTSUQpOwpAQCAtNDksNSArNTEsNiBAQAogCiAjZGVmaW5lIGNocF9pZF9mb3JfZWFjaChjKSBcCiAJZm9yIChjaHBfaWRfaW5pdChjKTsgY2hwX2lkX2lzX3ZhbGlkKGMpOyBjaHBfaWRfbmV4dChjKSkKKyNlbmRpZiAvKiBfX0tFUk5FTCAqLwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIUElEX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oIGIvaW5jbHVkZS9hc20tczM5MC9jaHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4ZDBjZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogaW9jdGwgaW50ZXJmYWNlIGZvciAvZGV2L2Noc2MKKyAqCisgKiBDb3B5cmlnaHQgMjAwOCBJQk0gQ29ycC4KKyAqIEF1dGhvcihzKTogQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorICovCisKKyNpZm5kZWYgX0FTTV9DSFNDX0gKKyNkZWZpbmUgX0FTTV9DSFNDX0gKKworI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgorCitzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgeworCV9fdTE2IGxlbmd0aDsKKwlfX3UxNiBjb2RlOworCV9fdTMyIGNtZF9kZXBlbmRlbmQ7CisJX191MzIga2V5IDogNDsKKwlfX3UzMiA6IDI4OworCXN0cnVjdCBzdWJjaGFubmVsX2lkIHNpZDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCitzdHJ1Y3QgY2hzY19hc3luY19hcmVhIHsKKwlzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgaGVhZGVyOworCV9fdTggZGF0YVtQQUdFX1NJWkUgLSAxNiAvKiBzaXplIG9mIGNoc2NfYXN5bmNfaGVhZGVyICovXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisKK3N0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCB7CisJX191MTYgbGVuZ3RoOworCV9fdTE2IGNvZGU7CisJX191MzIgcGFybXM7CisJX191OCBkYXRhW1BBR0VfU0laRSAtIDhdOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK3N0cnVjdCBjaHNjX2NocF9jZCB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjcGNiOworfTsKKworc3RydWN0IGNoc2NfY3VfY2QgeworCV9fdTE2IGN1bjsKKwlfX3U4IGNzc2lkOworCWludCBtOworCWludCBmbXQ7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IGN1Y2I7Cit9OworCitzdHJ1Y3QgY2hzY19zY2hfY3VkIHsKKwlzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY3ViOworfTsKKworc3RydWN0IGNvbmZfaWQgeworCWludCBtOworCV9fdTggY3NzaWQ7CisJX191OCBzc2lkOworfTsKKworc3RydWN0IGNoc2NfY29uZl9pbmZvIHsKKwlzdHJ1Y3QgY29uZl9pZCBpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY2lkOworfTsKKworc3RydWN0IGNjbF9wYXJtX2NocGlkIHsKKwlpbnQgbTsKKwlzdHJ1Y3QgY2hwX2lkIGNocDsKK307CisKK3N0cnVjdCBjY2xfcGFybV9jc3NpZHMgeworCV9fdTggZl9jc3NpZDsKKwlfX3U4IGxfY3NzaWQ7Cit9OworCitzdHJ1Y3QgY2hzY19jb21wX2xpc3QgeworCXN0cnVjdCB7CisJCWVudW0geworCQkJQ0NMX0NVX09OX0NIUCA9IDEsCisJCQlDQ0xfQ0hQX1RZUEVfQ0FQID0gMiwKKwkJCUNDTF9DU1NfSU1HID0gNCwKKwkJCUNDTF9DU1NfSU1HX0NPTkZfQ0hBUiA9IDUsCisJCQlDQ0xfSU9QX0NIUCA9IDYsCisJCX0gY3R5cGU7CisJCWludCBmbXQ7CisJCXN0cnVjdCBjY2xfcGFybV9jaHBpZCBjaHBpZDsKKwkJc3RydWN0IGNjbF9wYXJtX2Nzc2lkcyBjc3NpZHM7CisJfSByZXE7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IHNjY2w7Cit9OworCitzdHJ1Y3QgY2hzY19kY2FsIHsKKwlzdHJ1Y3QgeworCQllbnVtIHsKKwkJCURDQUxfQ1NTX0lJRF9QTiA9IDQsCisJCX0gYXR5cGU7CisJCV9fdTMyIGxpc3RfcGFybVsyXTsKKwkJaW50IGZtdDsKKwl9IHJlcTsKKwlzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3Qgc2RjYWw7Cit9OworCitzdHJ1Y3QgY2hzY19jcGRfaW5mbyB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCWludCByZm10OworCWludCBjOworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjaHBkYjsKK307CisKKyNkZWZpbmUgQ0hTQ19JT0NUTF9NQUdJQyAnYycKKworI2RlZmluZSBDSFNDX1NUQVJUIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODEsIHN0cnVjdCBjaHNjX2FzeW5jX2FyZWEpCisjZGVmaW5lIENIU0NfSU5GT19DSEFOTkVMX1BBVEggX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4MiwgXAorCQkJCSAgICBzdHJ1Y3QgY2hzY19jaHBfY2QpCisjZGVmaW5lIENIU0NfSU5GT19DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDgzLCBzdHJ1Y3QgY2hzY19jdV9jZCkKKyNkZWZpbmUgQ0hTQ19JTkZPX1NDSF9DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg0LCBzdHJ1Y3QgY2hzY19zY2hfY3VkKQorI2RlZmluZSBDSFNDX0lORk9fQ0kgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4NSwgc3RydWN0IGNoc2NfY29uZl9pbmZvKQorI2RlZmluZSBDSFNDX0lORk9fQ0NMIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODYsIHN0cnVjdCBjaHNjX2NvbXBfbGlzdCkKKyNkZWZpbmUgQ0hTQ19JTkZPX0NQRCBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg3LCBzdHJ1Y3QgY2hzY19jcGRfaW5mbykKKyNkZWZpbmUgQ0hTQ19JTkZPX0RDQUwgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4OCwgc3RydWN0IGNoc2NfZGNhbCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oIGIvaW5jbHVkZS9hc20tczM5MC9jaW8uaAppbmRleCAwODE4ZWNkLi42ZGNjYjA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2lvLmgKQEAgLTE2LDcgKzE2LDcgQEAKICNkZWZpbmUgX19NQVhfQ1NTSUQgMAogCiAvKioKLSAqIHN0cnVjdCBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogc3RydWN0IGNtZF9zY3N3IC0gY29tbWFuZC1tb2RlIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQKICAqIEBrZXk6IHN1YmNoYW5uZWwga2V5CiAgKiBAc2N0bDogc3VzcGVuZCBjb250cm9sCiAgKiBAZXN3ZjogZXN3IGZvcm1hdApAQCAtMzgsNyArMzgsNyBAQAogICogQGNzdGF0OiBzdWJjaGFubmVsIHN0YXR1cwogICogQGNvdW50OiByZXNpZHVhbCBjb3VudAogICovCi1zdHJ1Y3Qgc2NzdyB7CitzdHJ1Y3QgY21kX3Njc3cgewogCV9fdTMyIGtleSAgOiA0OwogCV9fdTMyIHNjdGwgOiAxOwogCV9fdTMyIGVzd2YgOiAxOwpAQCAtNjEsNiArNjEsMTE0IEBACiAJX191MzIgY291bnQgOiAxNjsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCisvKioKKyAqIHN0cnVjdCB0bV9zY3N3IC0gdHJhbnNwb3J0LW1vZGUgc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGtleTogc3ViY2hhbm5lbCBrZXkKKyAqIEBlc3dmOiBlc3cgZm9ybWF0CisgKiBAY2M6IGRlZmVycmVkIGNvbmRpdGlvbiBjb2RlCisgKiBAZm10OiBmb3JtYXQKKyAqIEB4OiBJUkItZm9ybWF0IGNvbnRyb2wKKyAqIEBxOiBpbnRlcnJvZ2F0ZS1jb21wbGV0ZQorICogQGVjdGw6IGV4dGVuZGVkIGNvbnRyb2wKKyAqIEBwbm86IHBhdGggbm90IG9wZXJhdGlvbmFsCisgKiBAZmN0bDogZnVuY3Rpb24gY29udHJvbAorICogQGFjdGw6IGFjdGl2aXR5IGNvbnRyb2wKKyAqIEBzdGN0bDogc3RhdHVzIGNvbnRyb2wKKyAqIEB0Y3c6IFRDVyBhZGRyZXNzCisgKiBAZHN0YXQ6IGRldmljZSBzdGF0dXMKKyAqIEBjc3RhdDogc3ViY2hhbm5lbCBzdGF0dXMKKyAqIEBmY3hzOiBGQ1ggc3RhdHVzCisgKiBAc2NoeHM6IHN1YmNoYW5uZWwtZXh0ZW5kZWQgc3RhdHVzCisgKi8KK3N0cnVjdCB0bV9zY3N3IHsKKwl1MzIga2V5OjQ7CisJdTMyIDoxOworCXUzMiBlc3dmOjE7CisJdTMyIGNjOjI7CisJdTMyIGZtdDozOworCXUzMiB4OjE7CisJdTMyIHE6MTsKKwl1MzIgOjE7CisJdTMyIGVjdGw6MTsKKwl1MzIgcG5vOjE7CisJdTMyIDoxOworCXUzMiBmY3RsOjM7CisJdTMyIGFjdGw6NzsKKwl1MzIgc3RjdGw6NTsKKwl1MzIgdGN3OworCXUzMiBkc3RhdDo4OworCXUzMiBjc3RhdDo4OworCXUzMiBmY3hzOjg7CisJdTMyIHNjaHhzOjg7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiB1bmlvbiBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGNtZDogY29tbWFuZC1tb2RlIFNDU1cKKyAqIEB0bTogdHJhbnNwb3J0LW1vZGUgU0NTVworICovCit1bmlvbiBzY3N3IHsKKwlzdHJ1Y3QgY21kX3Njc3cgY21kOworCXN0cnVjdCB0bV9zY3N3IHRtOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK2ludCBzY3N3X2lzX3RtKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NjKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9zY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZm10KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3BmY2godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfaXNpYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hbGNjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NzaSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF96Y2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9wbm8odW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3NvbGljaXRlZCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9jYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9xKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN4cyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworCiAjZGVmaW5lIFNDU1dfRkNUTF9DTEVBUl9GVU5DCSAweDEKICNkZWZpbmUgU0NTV19GQ1RMX0hBTFRfRlVOQwkgMHgyCiAjZGVmaW5lIFNDU1dfRkNUTF9TVEFSVF9GVU5DCSAweDQKQEAgLTMwMyw3ICs0MTEsNyBAQAogICogaWYgYXBwbGljYWJsZSkuCiAgKi8KIHN0cnVjdCBpcmIgewotCXN0cnVjdCBzY3N3IHNjc3c7CisJdW5pb24gc2NzdyBzY3N3OwogCXVuaW9uIHsKIAkJc3RydWN0IGVzdzAgZXN3MDsKIAkJc3RydWN0IGVzdzEgZXN3MTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmggYi9pbmNsdWRlL2FzbS1zMzkwL2VsZi5oCmluZGV4IGIzYWMyNjIuLjNjYWQ1NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9lbGYuaApAQCAtMTEzLDYgKzExMyw5IEBACiB0eXBlZGVmIHMzOTBfZnBfcmVncyBlbGZfZnByZWdzZXRfdDsKIHR5cGVkZWYgczM5MF9yZWdzIGVsZl9ncmVnc2V0X3Q7CiAKK3R5cGVkZWYgczM5MF9mcF9yZWdzIGNvbXBhdF9lbGZfZnByZWdzZXRfdDsKK3R5cGVkZWYgczM5MF9jb21wYXRfcmVncyBjb21wYXRfZWxmX2dyZWdzZXRfdDsKKwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGZvciB0YXNrX3N0cnVjdCAqLwogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4JCS8qIGZvciBzYXZlX2FjY2Vzc19yZWdzICovCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC0xMjMsNiArMTI2LDEwIEBACiAjZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpIFwKIAkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKICAgICAgICAgICYmICh4KS0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGX0NMQVNTKSAKKyNkZWZpbmUgY29tcGF0X2VsZl9jaGVja19hcmNoKHgpIFwKKwkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKKwkgJiYgKHgpLT5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZfQ0xBU1MpCisjZGVmaW5lIGNvbXBhdF9zdGFydF90aHJlYWQJc3RhcnRfdGhyZWFkMzEKIAogLyogRm9yIFNWUjQvUzM5MCB0aGUgZnVuY3Rpb24gcG9pbnRlciB0byBiZSByZWdpc3RlcmVkIHdpdGggYGF0ZXhpdGAgaXMKICAgIHBhc3NlZCBpbiBSMTQuICovCkBAIC0xMzEsNiArMTM4LDcgQEAKIAkJX3ItPmdwcnNbMTRdID0gMDsgXAogCX0gd2hpbGUgKDApCiAKKyNkZWZpbmUgQ09SRV9EVU1QX1VTRV9SRUdTRVQKICNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKICNkZWZpbmUgRUxGX0VYRUNfUEFHRVNJWkUJNDA5NgogCkBAIC0xNDAsNDQgKzE0OCw2IEBACiAgICB0aGF0IGl0IHdpbGwgImV4ZWMiLCBhbmQgdGhhdCB0aGVyZSBpcyBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBicmsuICAqLwogI2RlZmluZSBFTEZfRVRfRFlOX0JBU0UJCShTVEFDS19UT1AgLyAzICogMikKIAotLyogV293LCB0aGUgIm1haW4iIGFyY2ggbmVlZHMgYXJjaCBkZXBlbmRlbnQgZnVuY3Rpb25zIHRvby4uIDopICovCi0KLS8qIHJlZ3MgaXMgc3RydWN0IHB0X3JlZ3MsIHByX3JlZyBpcyBlbGZfZ3JlZ3NldF90ICh3aGljaCBpcwotICAgbm93IHN0cnVjdF91c2VyX3JlZ3MsIHRoZXkgYXJlIGRpZmZlcmVudCkgKi8KLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF9yZWdzKHN0cnVjdCBwdF9yZWdzICpwdHJlZ3MsIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0JbWVtY3B5KCZyZWdzLT5wc3csICZwdHJlZ3MtPnBzdywgc2l6ZW9mKHJlZ3MtPnBzdykrc2l6ZW9mKHJlZ3MtPmdwcnMpKTsKLQlzYXZlX2FjY2Vzc19yZWdzKHJlZ3MtPmFjcnMpOwotCXJlZ3MtPm9yaWdfZ3ByMiA9IHB0cmVncy0+b3JpZ19ncHIyOwotCXJldHVybiAxOwotfQotCi0jZGVmaW5lIEVMRl9DT1JFX0NPUFlfUkVHUyhwcl9yZWcsIHJlZ3MpIGR1bXBfcmVncyhyZWdzLCAmcHJfcmVnKTsKLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF90YXNrX3JlZ3Moc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0Jc3RydWN0IHB0X3JlZ3MgKnB0cmVncyA9IHRhc2tfcHRfcmVncyh0c2spOwotCW1lbWNweSgmcmVncy0+cHN3LCAmcHRyZWdzLT5wc3csIHNpemVvZihyZWdzLT5wc3cpK3NpemVvZihyZWdzLT5ncHJzKSk7Ci0JbWVtY3B5KHJlZ3MtPmFjcnMsIHRzay0+dGhyZWFkLmFjcnMsIHNpemVvZihyZWdzLT5hY3JzKSk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLSNkZWZpbmUgRUxGX0NPUkVfQ09QWV9UQVNLX1JFR1ModHNrLCByZWdzKSBkdW1wX3Rhc2tfcmVncyh0c2ssIHJlZ3MpCi0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19mcHUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9mcHJlZ3NldF90ICpmcHJlZ3MpCi17Ci0JaWYgKHRzayA9PSBjdXJyZW50KQotCQlzYXZlX2ZwX3JlZ3MoZnByZWdzKTsKLQllbHNlCi0JCW1lbWNweShmcHJlZ3MsICZ0c2stPnRocmVhZC5mcF9yZWdzLCBzaXplb2YoZWxmX2ZwcmVnc2V0X3QpKTsKLQlyZXR1cm4gMTsKLX0KLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX0ZQUkVHUyh0c2ssIGZwcmVncykgZHVtcF90YXNrX2ZwdSh0c2ssIGZwcmVncykKLQotCiAvKiBUaGlzIHlpZWxkcyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0CiAgICBpbnN0cnVjdGlvbiBzZXQgdGhpcyBDUFUgc3VwcG9ydHMuICovCiAKQEAgLTIwNCw3ICsxNzQsMTAgQEAKIAkJc2V0X3BlcnNvbmFsaXR5KFBFUl9TVlI0KTsJCVwKIAllbHNlIGlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAhPSBQRVJfTElOVVgzMikJXAogCQlzZXRfcGVyc29uYWxpdHkoUEVSX0xJTlVYKTsJCVwKLQljbGVhcl90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJCVwKKwlpZiAoKGV4KS5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZDTEFTUzMyKQlcCisJCXNldF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJXAorCWVsc2UJCQkJCQlcCisJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl8zMUJJVCk7CQlcCiB9IHdoaWxlICgwKQogI2VuZGlmIC8qIF9fczM5MHhfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oIGIvaW5jbHVkZS9hc20tczM5MC9ldHIuaAppbmRleCBiNDk4ZjE5Li44MGVmNThjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvZXRyLmgKQEAgLTEyMiw3ICsxMjIsNyBAQAogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoOCkpKTsKIAogLyogRVRSIGludGVycnVwdGlvbiBwYXJhbWV0ZXIgKi8KLXN0cnVjdCBldHJfaW50ZXJydXB0aW9uX3BhcmFtZXRlciB7CitzdHJ1Y3QgZXRyX2lycV9wYXJtIHsKIAl1bnNpZ25lZCBpbnQgX3BhZDAJOiA4OwogCXVuc2lnbmVkIGludCBwYzAJOiAxOwkvKiBwb3J0IDAgc3RhdGUgY2hhbmdlICovCiAJdW5zaWduZWQgaW50IHBjMQk6IDE7CS8qIHBvcnQgMSBzdGF0ZSBjaGFuZ2UgKi8KQEAgLTIxMyw3ICsyMTMsNDYgQEAKICNkZWZpbmUgRVRSX1BURkZfU0dTCTB4NDMJLyogc2V0IGdyb3NzIHN0ZWVyaW5nIHJhdGUgKi8KIAogLyogRnVuY3Rpb25zIG5lZWRlZCBieSB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyICovCi1leHRlcm4gdm9pZCBldHJfc3dpdGNoX3RvX2xvY2FsKHZvaWQpOwotZXh0ZXJuIHZvaWQgZXRyX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIGV0cl9zd2l0Y2hfdG9fbG9jYWwodm9pZCk7Cit2b2lkIGV0cl9zeW5jX2NoZWNrKHZvaWQpOworCisvKiBTVFAgaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLworc3RydWN0IHN0cF9pcnFfcGFybSB7CisJdW5zaWduZWQgaW50IF9wYWQwCTogMTQ7CisJdW5zaWduZWQgaW50IHRzYwk6IDE7CS8qIFRpbWluZyBzdGF0dXMgY2hhbmdlICovCisJdW5zaWduZWQgaW50IGxhYwk6IDE7CS8qIExpbmsgYXZhaWxhYmlsaXR5IGNoYW5nZSAqLworCXVuc2lnbmVkIGludCB0Y3BjCTogMTsJLyogVGltZSBjb250cm9sIHBhcmFtZXRlciBjaGFuZ2UgKi8KKwl1bnNpZ25lZCBpbnQgX3BhZDIJOiAxNTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFNUUF9PUF9TWU5DCTEKKyNkZWZpbmUgU1RQX09QX0NUUkwJMworCitzdHJ1Y3Qgc3RwX3NzdHBpIHsKKwl1bnNpZ25lZCBpbnQgcnN2ZDA7CisJdW5zaWduZWQgaW50IHJzdmQxIDogODsKKwl1bnNpZ25lZCBpbnQgc3RyYXR1bSA6IDg7CisJdW5zaWduZWQgaW50IHZiaXRzIDogMTY7CisJdW5zaWduZWQgaW50IGxlYXBzIDogMTY7CisJdW5zaWduZWQgaW50IHRtZCA6IDQ7CisJdW5zaWduZWQgaW50IGN0biA6IDQ7CisJdW5zaWduZWQgaW50IHJzdmQyIDogMzsKKwl1bnNpZ25lZCBpbnQgYyA6IDE7CisJdW5zaWduZWQgaW50IHRzdCA6IDQ7CisJdW5zaWduZWQgaW50IHR6byA6IDE2OworCXVuc2lnbmVkIGludCBkc3RvIDogMTY7CisJdW5zaWduZWQgaW50IGN0cmwgOiAxNjsKKwl1bnNpZ25lZCBpbnQgcnN2ZDMgOiAxNjsKKwl1bnNpZ25lZCBpbnQgdHRvOworCXVuc2lnbmVkIGludCByc3ZkNDsKKwl1bnNpZ25lZCBpbnQgY3RuaWRbM107CisJdW5zaWduZWQgaW50IHJzdmQ1OworCXVuc2lnbmVkIGludCB0b2RvZmZbNF07CisJdW5zaWduZWQgaW50IHJzdmQ2WzQ4XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKiBGdW5jdGlvbnMgbmVlZGVkIGJ5IHRoZSBtYWNoaW5lIGNoZWNrIGhhbmRsZXIgKi8KK3ZvaWQgc3RwX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIHN0cF9pc2xhbmRfY2hlY2sodm9pZCk7CiAKICNlbmRpZiAvKiBfX1MzOTBfRVRSX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZmN4LmggYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZTFmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgYXNzZW1ibGluZyBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaWZuZGVmIF9BU01fUzM5MF9GQ1hfSAorI2RlZmluZSBfQVNNX1MzOTBfRkNYX0ggX0FTTV9TMzkwX0ZDWF9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjZGVmaW5lIFRDV19GT1JNQVRfREVGQVVMVAkJMAorI2RlZmluZSBUQ1dfVElEQVdfRk9STUFUX0RFRkFVTFQJMAorI2RlZmluZSBUQ1dfRkxBR1NfSU5QVVRfVElEQQkJMSA8PCAoMjMgLSA1KQorI2RlZmluZSBUQ1dfRkxBR1NfVENDQl9USURBCQkxIDw8ICgyMyAtIDYpCisjZGVmaW5lIFRDV19GTEFHU19PVVRQVVRfVElEQQkJMSA8PCAoMjMgLSA3KQorI2RlZmluZSBUQ1dfRkxBR1NfVElEQVdfRk9STUFUKHgpCSgoeCkgJiAzKSA8PCAoMjMgLSA5KQorI2RlZmluZSBUQ1dfRkxBR1NfR0VUX1RJREFXX0ZPUk1BVCh4KQkoKCh4KSA+PiAoMjMgLSA5KSkgJiAzKQorCisvKioKKyAqIHN0cnVjdCB0Y3cgLSBUcmFuc3BvcnQgQ29udHJvbCBXb3JkIChUQ1cpCisgKiBAZm9ybWF0OiBUQ1cgZm9ybWF0CisgKiBAZmxhZ3M6IFRDVyBmbGFncworICogQHRjY2JsOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIExlbmd0aAorICogQHI6IFJlYWQgT3BlcmF0aW9ucworICogQHc6IFdyaXRlIE9wZXJhdGlvbnMKKyAqIEBvdXRwdXQ6IE91dHB1dC1EYXRhIEFkZHJlc3MKKyAqIEBpbnB1dDogSW5wdXQtRGF0YSBBZGRyZXNzCisgKiBAdHNiOiBUcmFuc3BvcnQtU3RhdHVzLUJsb2NrIEFkZHJlc3MKKyAqIEB0Y2NiOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIEFkZHJlc3MKKyAqIEBvdXRwdXRfY291bnQ6IE91dHB1dCBDb3VudAorICogQGlucHV0X2NvdW50OiBJbnB1dCBDb3VudAorICogQGludHJnOiBJbnRlcnJvZ2F0ZSBUQ1cgQWRkcmVzcworICovCitzdHJ1Y3QgdGN3IHsKKwl1MzIgZm9ybWF0OjI7CisJdTMyIDo2OworCXUzMiBmbGFnczoyNDsKKwl1MzIgOjg7CisJdTMyIHRjY2JsOjY7CisJdTMyIHI6MTsKKwl1MzIgdzoxOworCXUzMiA6MTY7CisJdTY0IG91dHB1dDsKKwl1NjQgaW5wdXQ7CisJdTY0IHRzYjsKKwl1NjQgdGNjYjsKKwl1MzIgb3V0cHV0X2NvdW50OworCXUzMiBpbnB1dF9jb3VudDsKKwl1MzIgOjMyOworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgaW50cmc7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNjQpKSk7CisKKyNkZWZpbmUgVElEQVdfRkxBR1NfTEFTVAkJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRJREFXX0ZMQUdTX1NLSVAJCTEgPDwgKDcgLSAxKQorI2RlZmluZSBUSURBV19GTEFHU19EQVRBX0lOVAkJMSA8PCAoNyAtIDIpCisjZGVmaW5lIFRJREFXX0ZMQUdTX1RUSUMJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUSURBV19GTEFHU19JTlNFUlRfQ0JDCQkxIDw8ICg3IC0gNCkKKworLyoqCisgKiBzdHJ1Y3QgdGlkYXcgLSBUcmFuc3BvcnQtSW5kaXJlY3QtQWRkcmVzc2luZyBXb3JkIChUSURBVykKKyAqIEBmbGFnczogVElEQVcgZmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzOgorICogJVRJREFXX0ZMQUdTX0xBU1QsICVUSURBV19GTEFHU19TS0lQLCAlVElEQVdfRkxBR1NfREFUQV9JTlQsCisgKiAlVElEQVdfRkxBR1NfVFRJQywgJVRJREFXX0ZMQUdTX0lOU0VSVF9DQkMKKyAqIEBjb3VudDogQ291bnQKKyAqIEBhZGRyOiBBZGRyZXNzCisgKi8KK3N0cnVjdCB0aWRhdyB7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgY291bnQ7CisJdTY0IGFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoMTYpKSk7CisKKy8qKgorICogc3RydWN0IHRzYV9pb3N0YXQgLSBJL08tU3RhdHVzIFRyYW5zcG9ydC1TdGF0dXMgQXJlYSAoSU8tU3RhdCBUU0EpCisgKiBAZGV2X3RpbWU6IERldmljZSBUaW1lCisgKiBAZGVmX3RpbWU6IERlZmVyIFRpbWUKKyAqIEBxdWV1ZV90aW1lOiBRdWV1ZSBUaW1lCisgKiBAZGV2X2J1c3lfdGltZTogRGV2aWNlLUJ1c3kgVGltZQorICogQGRldl9hY3RfdGltZTogRGV2aWNlLUFjdGl2ZS1Pbmx5IFRpbWUKKyAqIEBzZW5zZTogU2Vuc2UgRGF0YSAoaWYgcHJlc2VudCkKKyAqLworc3RydWN0IHRzYV9pb3N0YXQgeworCXUzMiBkZXZfdGltZTsKKwl1MzIgZGVmX3RpbWU7CisJdTMyIHF1ZXVlX3RpbWU7CisJdTMyIGRldl9idXN5X3RpbWU7CisJdTMyIGRldl9hY3RfdGltZTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2RkcGNzIC0gRGV2aWNlLURldGVjdGVkLVByb2dyYW0tQ2hlY2sgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChERFBDIFRTQSkKKyAqIEByYzogUmVhc29uIENvZGUKKyAqIEByY3E6IFJlYXNvbiBDb2RlIFF1YWxpZmllcgorICogQHNlbnNlOiBTZW5zZSBEYXRhIChpZiBwcmVzZW50KQorICovCitzdHJ1Y3QgdHNhX2RkcGMgeworCXUzMiA6MjQ7CisJdTMyIHJjOjg7CisJdTggcmNxWzE2XTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQJCTEgPDwgKDcgLSAwKQorI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMSkKKyNkZWZpbmUgVFNBX0lOVFJHX0ZMQUdTX09QX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2ludHJnIC0gSW50ZXJyb2dhdGUgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChJbnRyZy4gVFNBKQorICogQGZvcm1hdDogRm9ybWF0CisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQsICVUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElELAorICogJVRTQV9JTlRSR19GTEFHU19PUF9TVEFURV9WQUxJRAorICogQGN1X3N0YXRlOiBDb250cm9sZS1Vbml0IFN0YXRlCisgKiBAZGV2X3N0YXRlOiBEZXZpY2UgU3RhdGUKKyAqIEBvcF9zdGF0ZTogT3BlcmF0aW9uIFN0YXRlCisgKiBAc2RfaW5mbzogU3RhdGUtRGVwZW5kZW50IEluZm9ybWF0aW9uCisgKiBAZGxfaWQ6IERldmljZS1MZXZlbCBJZGVudGlmaWVyCisgKiBAZGRfZGF0YTogRGV2aWNlLURlcGVuZGVudCBEYXRhCisgKi8KK3N0cnVjdCB0c2FfaW50cmcgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgY3Vfc3RhdGU6ODsKKwl1MzIgZGV2X3N0YXRlOjg7CisJdTMyIG9wX3N0YXRlOjg7CisJdTMyIDoyNDsKKwl1OCBzZF9pbmZvWzEyXTsKKwl1MzIgZGxfaWQ7CisJdTggZGRfZGF0YVsyOF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0JfRk9STUFUX05PTkUJCTAKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JT1NUQVQJMQorI2RlZmluZSBUU0JfRk9STUFUX0REUEMJCTIKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JTlRSRwkzCisKKyNkZWZpbmUgVFNCX0ZMQUdTX0RDV19PRkZTRVRfVkFMSUQJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRTQl9GTEFHU19DT1VOVF9WQUxJRAkJMSA8PCAoNyAtIDEpCisjZGVmaW5lIFRTQl9GTEFHU19DQUNIRV9NSVNTCQkxIDw8ICg3IC0gMikKKyNkZWZpbmUgVFNCX0ZMQUdTX1RJTUVfVkFMSUQJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUU0JfRkxBR1NfRk9STUFUKHgpCQkoKHgpICYgNykKKyNkZWZpbmUgVFNCX0ZPUk1BVCh0KQkJCSgodCktPmZsYWdzICYgNykKKworLyoqCisgKiBzdHJ1Y3QgdHNiIC0gVHJhbnNwb3J0LVN0YXR1cyBCbG9jayAoVFNCKQorICogQGxlbmd0aDogTGVuZ3RoCisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0JfRkxBR1NfRENXX09GRlNFVF9WQUxJRCwgJVRTQl9GTEFHU19DT1VOVF9WQUxJRCwgJVRTQl9GTEFHU19DQUNIRV9NSVNTLAorICogJVRTQl9GTEFHU19USU1FX1ZBTElECisgKiBAZGN3X29mZnNldDogRENXIE9mZnNldAorICogQGNvdW50OiBDb3VudAorICogQHRzYTogVHJhbnNwb3J0LVN0YXR1cy1BcmVhCisgKi8KK3N0cnVjdCB0c2IgeworCXUzMiBsZW5ndGg6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgZGN3X29mZnNldDoxNjsKKwl1MzIgY291bnQ7CisJdTMyIDozMjsKKwl1bmlvbiB7CisJCXN0cnVjdCB0c2FfaW9zdGF0IGlvc3RhdDsKKwkJc3RydWN0IHRzYV9kZHBjIGRkcGM7CisJCXN0cnVjdCB0c2FfaW50cmcgaW50cmc7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgdHNhOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDgpKSk7CisKKyNkZWZpbmUgRENXX0lOVFJHX0ZPUk1BVF9ERUZBVUxUCTAKKworI2RlZmluZSBEQ1dfSU5UUkdfUkNfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNfVElNRU9VVAkJMQorCisjZGVmaW5lIERDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNRX1BSSU1BUlkJCTEKKyNkZWZpbmUgRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkJCTIKKworI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfTVBNCQkxIDwgKDcgLSAwKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfUFBSCQkxIDwgKDcgLSAxKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfQ1JJVAkJMSA8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgLSBJbnRlcnJvZ2F0ZSBEQ1cgZGF0YQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJURDV19JTlRSR19GT1JNQVRfREVGQVVMVAorICogQHJjOiBSZWFzb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0lOVFJHX1JDX1VOU1BFQ0lGSUVELAorICogJURDV19JTlRSR19SQ19USU1FT1VUCisgKiBAcmNxOiBSZWFzb24gQ29kZSBRdWFsaWZpZXI6IENhbiBiZSBvbmUgb2YgJURDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQsCisgKiAlRENXX0lOVFJHX1JDUV9QUklNQVJZLCAlRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkKKyAqIEBscG06IExvZ2ljYWwtUGF0aCBNYXNrCisgKiBAcGFtOiBQYXRoLUF2YWlsYWJsZSBNYXNrCisgKiBAcGltOiBQYXRoLUluc3RhbGxlZCBNYXNrCisgKiBAdGltZW91dDogVGltZW91dAorICogQGZsYWdzOiBGbGFncy4gQ2FuIGJlIGFuIGFyaXRobWV0aWMgT1Igb2YgJURDV19JTlRSR19GTEFHU19NUE0sCisgKiAlRENXX0lOVFJHX0ZMQUdTX1BQUiwgJURDV19JTlRSR19GTEFHU19DUklUCisgKiBAdGltZTogVGltZQorICogQHByb2dfaWQ6IFByb2dyYW0gSWRlbnRpZmllcgorICogQHByb2dfZGF0YTogUHJvZ3JhbS1EZXBlbmRlbnQgRGF0YQorICovCitzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgcmM6ODsKKwl1MzIgcmNxOjg7CisJdTMyIGxwbTo4OworCXUzMiBwYW06ODsKKwl1MzIgcGltOjg7CisJdTMyIHRpbWVvdXQ6MTY7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgOjMyOworCXU2NCB0aW1lOworCXU2NCBwcm9nX2lkOworCXU4ICBwcm9nX2RhdGFbMF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBEQ1dfRkxBR1NfQ0MJCTEgPDwgKDcgLSAxKQorCisjZGVmaW5lIERDV19DTURfV1JJVEUJCTB4MDEKKyNkZWZpbmUgRENXX0NNRF9SRUFECQkweDAyCisjZGVmaW5lIERDV19DTURfQ09OVFJPTAkJMHgwMworI2RlZmluZSBEQ1dfQ01EX1NFTlNFCQkweDA0CisjZGVmaW5lIERDV19DTURfU0VOU0VfSUQJMHhlNAorI2RlZmluZSBEQ1dfQ01EX0lOVFJHCQkweDQwCisKKy8qKgorICogc3RydWN0IGRjdyAtIERldmljZS1Db21tYW5kIFdvcmQgKERDVykKKyAqIEBjbWQ6IENvbW1hbmQgQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0NNRF9XUklURSwgJURDV19DTURfUkVBRCwKKyAqICVEQ1dfQ01EX0NPTlRST0wsICVEQ1dfQ01EX1NFTlNFLCAlRENXX0NNRF9TRU5TRV9JRCwgJURDV19DTURfSU5UUkcKKyAqIEBmbGFnczogRmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mICVEQ1dfRkxBR1NfQ0MKKyAqIEBjZF9jb3VudDogQ29udHJvbC1EYXRhIENvdW50CisgKiBAY291bnQ6IENvdW50CisgKiBAY2Q6IENvbnRyb2wgRGF0YQorICovCitzdHJ1Y3QgZGN3IHsKKwl1MzIgY21kOjg7CisJdTMyIGZsYWdzOjg7CisJdTMyIDo4OworCXUzMiBjZF9jb3VudDo4OworCXUzMiBjb3VudDsKKwl1OCBjZFswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgorI2RlZmluZSBUQ0NCX01BWF9EQ1cJCTMwCisjZGVmaW5lIFRDQ0JfTUFYX1NJWkUJCShzaXplb2Yoc3RydWN0IHRjY2JfdGNhaCkgKyBcCisJCQkJIFRDQ0JfTUFYX0RDVyAqIHNpemVvZihzdHJ1Y3QgZGN3KSArIFwKKwkJCQkgc2l6ZW9mKHN0cnVjdCB0Y2NiX3RjYXQpKQorI2RlZmluZSBUQ0NCX1NBQ19ERUZBVUxUCTB4ZjkwMQorI2RlZmluZSBUQ0NCX1NBQ19JTlRSRwkJMHhmOTAyCisKKy8qKgorICogc3RydWN0IHRjY2JfdGNhaCAtIFRyYW5zcG9ydC1Db21tYW5kLUFyZWEgSGVhZGVyIChUQ0FIKQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJVRDQ0JfRk9STUFUX0RFRkFVTFQKKyAqIEB0Y2FsOiBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIExlbmd0aAorICogQHNhYzogU2VydmljZS1BY3Rpb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlVENDQl9TQUNfREVGQVVMVCwgJVRDQ0JfU0FDX0lOVFJHCisgKiBAcHJpbzogUHJpb3JpdHkKKyAqLworc3RydWN0IHRjY2JfdGNhaCB7CisJdTMyIGZvcm1hdDo4OworCXUzMiA6MjQ7CisJdTMyIDoyNDsKKwl1MzIgdGNhbDo4OworCXUzMiBzYWM6MTY7CisJdTMyIDo4OworCXUzMiBwcmlvOjg7CisJdTMyIDozMjsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiX3RjYXQgLSBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIFRyYWlsZXIgKFRDQVQpCisgKiBAY291bnQ6IFRyYW5zcG9ydCBDb3VudAorICovCitzdHJ1Y3QgdGNjYl90Y2F0IHsKKwl1MzIgOjMyOworCXUzMiBjb3VudDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiIC0gKHBhcnRpYWwpIFRyYW5zcG9ydC1Db21tYW5kLUNvbnRyb2wgQmxvY2sgKFRDQ0IpCisgKiBAdGNhaDogVENBSAorICogQHRjYTogVHJhbnNwb3J0LUNvbW1hbmQgQXJlYQorICovCitzdHJ1Y3QgdGNjYiB7CisJc3RydWN0IHRjY2JfdGNhaCB0Y2FoOworCXU4IHRjYVswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg4KSkpOworCitzdHJ1Y3QgdGN3ICp0Y3dfZ2V0X2ludHJnKHN0cnVjdCB0Y3cgKnRjdyk7Cit2b2lkICp0Y3dfZ2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0Y2NiICp0Y3dfZ2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0c2IgKnRjd19nZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdyk7CisKK3ZvaWQgdGN3X2luaXQoc3RydWN0IHRjdyAqdGN3LCBpbnQgciwgaW50IHcpOwordm9pZCB0Y3dfZmluYWxpemUoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cyk7CisKK3ZvaWQgdGN3X3NldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3csIHN0cnVjdCB0Y3cgKmludHJnX3Rjdyk7Cit2b2lkIHRjd19zZXRfZGF0YShzdHJ1Y3QgdGN3ICp0Y3csIHZvaWQgKmRhdGEsIGludCB1c2VfdGlkYWwpOwordm9pZCB0Y3dfc2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGNjYiAqdGNjYik7Cit2b2lkIHRjd19zZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdywgc3RydWN0IHRzYiAqdHNiKTsKKwordm9pZCB0Y2NiX2luaXQoc3RydWN0IHRjY2IgKnRjY2IsIHNpemVfdCB0Y2NiX3NpemUsIHUzMiBzYWMpOwordm9pZCB0c2JfaW5pdChzdHJ1Y3QgdHNiICp0c2IpOworc3RydWN0IGRjdyAqdGNjYl9hZGRfZGN3KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3QgdGNjYl9zaXplLCB1OCBjbWQsIHU4IGZsYWdzLAorCQkJIHZvaWQgKmNkLCB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqdGN3X2FkZF90aWRhdyhzdHJ1Y3QgdGN3ICp0Y3csIGludCBudW1fdGlkYXdzLCB1OCBmbGFncywKKwkJCSAgICB2b2lkICphZGRyLCB1MzIgY291bnQpOworCisjZW5kaWYgLyogX0FTTV9TMzkwX0ZDWF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oIGIvaW5jbHVkZS9hc20tczM5MC9pcGwuaAppbmRleCBjMWIyZTUwLi5lYWNhNmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXBsLmgKQEAgLTU2LDE1ICs1NiwxOSBAQAogCXU4ICBzY3BfZGF0YVtdOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAorI2RlZmluZSBESUFHMzA4X1ZNUEFSTV9TSVpFCTY0CisKIHN0cnVjdCBpcGxfYmxvY2tfY2N3IHsKLQl1OCAgbG9hZF9wYXJhbVs4XTsKKwl1OCAgbG9hZF9wYXJtWzhdOwogCXU4ICByZXNlcnZlZDFbODRdOwogCXU4ICByZXNlcnZlZDJbMl07CiAJdTE2IGRldm5vOwogCXU4ICB2bV9mbGFnczsKIAl1OCAgcmVzZXJ2ZWQzWzNdOwogCXUzMiB2bV9wYXJtX2xlbjsKLQl1OCAgcmVzZXJ2ZWQ0WzgwXTsKKwl1OCAgbnNzX25hbWVbOF07CisJdTggIHZtX3Bhcm1bRElBRzMwOF9WTVBBUk1fU0laRV07CisJdTggIHJlc2VydmVkNFs4XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIHsKQEAgLTczLDcgKzc3LDcgQEAKIAkJc3RydWN0IGlwbF9ibG9ja19mY3AgZmNwOwogCQlzdHJ1Y3QgaXBsX2Jsb2NrX2NjdyBjY3c7CiAJfSBpcGxfaW5mbzsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCxhbGlnbmVkKDQwOTYpKSk7CiAKIC8qCiAgKiBJUEwgdmFsaWRpdHkgZmxhZ3MKQEAgLTg2LDYgKzkwLDggQEAKIGV4dGVybiB2b2lkIGRvX2hhbHQodm9pZCk7CiBleHRlcm4gdm9pZCBkb19wb2ZmKHZvaWQpOwogZXh0ZXJuIHZvaWQgaXBsX3NhdmVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGlwbF91cGRhdGVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKik7CiAKIGVudW0gewogCUlQTF9ERVZOT19WQUxJRAkJPSAxLApAQCAtMTQ3LDYgKzE1MywxMSBAQAogCURJQUczMDhfRkxBR1NfTFBfVkFMSUQJPSAweDgwLAogfTsKIAorZW51bSBkaWFnMzA4X3ZtX2ZsYWdzIHsKKwlESUFHMzA4X1ZNX0ZMQUdTX05TU19WQUxJRAk9IDB4ODAsCisJRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRAk9IDB4NDAsCit9OworCiBlbnVtIGRpYWczMDhfcmMgewogCURJQUczMDhfUkNfT0sJPSAxLAogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXNjLmggYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YmI4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCkBAIC0wLDAgKzEsMjUgQEAKKyNpZm5kZWYgX0FTTV9TMzkwX0lTQ19ICisjZGVmaW5lIF9BU01fUzM5MF9JU0NfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoKKyAqIEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3NlcyB1c2VkIGJ5IGRyaXZlcnMuCisgKiBQbGVhc2UgYWRkIGFsbCB1c2VkIGlzY3MgaGVyZSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGRpc3RyaWJ1dGUKKyAqIGlzYyB1c2FnZSBiZXR3ZWVuIGRyaXZlcnMuCisgKiBSZW1pbmRlcjogMCBpcyBoaWdoZXN0IHByaW9yaXR5LCA3IGxvd2VzdC4KKyAqLworI2RlZmluZSBNQVhfSVNDIDcKKworLyogUmVndWxhciBJL08gaW50ZXJydXB0cy4gKi8KKyNkZWZpbmUgSU9fU0NIX0lTQyAzCQkJLyogcmVndWxhciBJL08gc3ViY2hhbm5lbHMgKi8KKyNkZWZpbmUgQ09OU09MRV9JU0MgMQkJCS8qIGNvbnNvbGUgSS9PIHN1YmNoYW5uZWwgKi8KKyNkZWZpbmUgQ0hTQ19TQ0hfSVNDIDcJCQkvKiBDSFNDIHN1YmNoYW5uZWxzICovCisvKiBBZGFwdGVyIGludGVycnVwdHMuICovCisjZGVmaW5lIFFESU9fQUlSUV9JU0MgSU9fU0NIX0lTQwkvKiBJL08gc3ViY2hhbm5lbCBpbiBxZGlvIG1vZGUgKi8KKworLyogRnVuY3Rpb25zIGZvciByZWdpc3RyYXRpb24gb2YgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzc2VzICovCit2b2lkIGlzY19yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaXNjKTsKK3ZvaWQgaXNjX3VucmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVNDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oIGIvaW5jbHVkZS9hc20tczM5MC9pdGN3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTliYzVjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAgRnVuY3Rpb25zIGZvciBpbmNyZW1lbnRhbCBjb25zdHJ1Y3Rpb24gb2YgZmN4IGVuYWJsZWQgSS9PIGNvbnRyb2wgYmxvY2tzLgorICoKKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogICAgQXV0aG9yKHMpOiBQZXRlciBPYmVycGFybGVpdGVyIDxwZXRlci5vYmVycGFybGVpdGVyQGRlLmlibS5jb20+CisgKi8KKworI2lmbmRlZiBfQVNNX1MzOTBfSVRDV19ICisjZGVmaW5lIF9BU01fUzM5MF9JVENXX0ggX0FTTV9TMzkwX0lUQ1dfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisKKyNkZWZpbmUgSVRDV19PUF9SRUFECTAKKyNkZWZpbmUgSVRDV19PUF9XUklURQkxCisKK3N0cnVjdCBpdGN3OworCitzdHJ1Y3QgdGN3ICppdGN3X2dldF90Y3coc3RydWN0IGl0Y3cgKml0Y3cpOworc2l6ZV90IGl0Y3dfY2FsY19zaXplKGludCBpbnRyZywgaW50IG1heF90aWRhd3MsIGludCBpbnRyZ19tYXhfdGlkYXdzKTsKK3N0cnVjdCBpdGN3ICppdGN3X2luaXQodm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwgaW50IG9wLCBpbnQgaW50cmcsCisJCSAgICAgICBpbnQgbWF4X3RpZGF3cywgaW50IGludHJnX21heF90aWRhd3MpOworc3RydWN0IGRjdyAqaXRjd19hZGRfZGN3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBjbWQsIHU4IGZsYWdzLCB2b2lkICpjZCwKKwkJCSB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqaXRjd19hZGRfdGlkYXcoc3RydWN0IGl0Y3cgKml0Y3csIHU4IGZsYWdzLCB2b2lkICphZGRyLAorCQkJICAgICB1MzIgY291bnQpOwordm9pZCBpdGN3X3NldF9kYXRhKHN0cnVjdCBpdGN3ICppdGN3LCB2b2lkICphZGRyLCBpbnQgdXNlX3RpZGFsKTsKK3ZvaWQgaXRjd19maW5hbGl6ZShzdHJ1Y3QgaXRjdyAqaXRjdyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVRDV19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCmluZGV4IGM3ZjRmOGUuLjBiZGI3MDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAgKiB0aGUgUzM5MCBwYWdlIHRhYmxlIHRyZWUuCiAgKi8KICNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4KICNpbmNsdWRlIDxhc20vYnVnLmg+CkBAIC0yMjMsNiArMjI0LDkgQEAKICNkZWZpbmUgX1BBR0VfU1BFQ0lBTAkweDAwNAkJLyogU1cgYXNzb2NpYXRlZCB3aXRoIHNwZWNpYWwgcGFnZSAqLwogI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVfU1BFQ0lBTAogCisvKiBTZXQgb2YgYml0cyBub3QgY2hhbmdlZCBpbiBwdGVfbW9kaWZ5ICovCisjZGVmaW5lIF9QQUdFX0NIR19NQVNLCShQQUdFX01BU0sgfCBfUEFHRV9TUEVDSUFMKQorCiAvKiBTaXggZGlmZmVyZW50IHR5cGVzIG9mIHBhZ2VzLiAqLwogI2RlZmluZSBfUEFHRV9UWVBFX0VNUFRZCTB4NDAwCiAjZGVmaW5lIF9QQUdFX1RZUEVfTk9ORQkJMHg0MDEKQEAgLTY4MSw3ICs2ODUsNyBAQAogICovCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9tb2RpZnkocHRlX3QgcHRlLCBwZ3Byb3RfdCBuZXdwcm90KQogewotCXB0ZV92YWwocHRlKSAmPSBQQUdFX01BU0s7CisJcHRlX3ZhbChwdGUpICY9IF9QQUdFX0NIR19NQVNLOwogCXB0ZV92YWwocHRlKSB8PSBwZ3Byb3RfdmFsKG5ld3Byb3QpOwogCXJldHVybiBwdGU7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oIGIvaW5jbHVkZS9hc20tczM5MC9wcm9jZXNzb3IuaAppbmRleCBhMDBmNzlkLi40YWY4MGFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcHJvY2Vzc29yLmgKQEAgLTE0MywxMSArMTQzLDE5IEBACiAvKgogICogRG8gbmVjZXNzYXJ5IHNldHVwIHRvIHN0YXJ0IHVwIGEgbmV3IHRocmVhZC4KICAqLwotI2RlZmluZSBzdGFydF90aHJlYWQocmVncywgbmV3X3BzdywgbmV3X3N0YWNrcCkgZG8geyAgICAgICAgICAgIFwKKyNkZWZpbmUgc3RhcnRfdGhyZWFkKHJlZ3MsIG5ld19wc3csIG5ld19zdGFja3ApIGRvIHsJCVwKIAlzZXRfZnMoVVNFUl9EUyk7CQkJCQlcCiAJcmVncy0+cHN3Lm1hc2sJPSBwc3dfdXNlcl9iaXRzOwkJCVwKLSAgICAgICAgcmVncy0+cHN3LmFkZHIgID0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOyAgICAgICAgICAgICBcCi0gICAgICAgIHJlZ3MtPmdwcnNbMTVdICA9IG5ld19zdGFja3AgOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXJlZ3MtPnBzdy5hZGRyCT0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOwkJXAorCXJlZ3MtPmdwcnNbMTVdCT0gbmV3X3N0YWNrcDsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBzdGFydF90aHJlYWQzMShyZWdzLCBuZXdfcHN3LCBuZXdfc3RhY2twKSBkbyB7CQlcCisJc2V0X2ZzKFVTRVJfRFMpOwkJCQkJXAorCXJlZ3MtPnBzdy5tYXNrCT0gcHN3X3VzZXIzMl9iaXRzOwkJCVwKKwlyZWdzLT5wc3cuYWRkcgk9IG5ld19wc3cgfCBQU1dfQUREUl9BTU9ERTsJCVwKKwlyZWdzLT5ncHJzWzE1XQk9IG5ld19zdGFja3A7CQkJCVwKKwljcnN0X3RhYmxlX2Rvd25ncmFkZShjdXJyZW50LT5tbSwgMVVMIDw8IDMxKTsJCVwKIH0gd2hpbGUgKDApCiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb24sIGEgc3RyYW5nZSBDIHRoaW5nICovCkBAIC0zMjgsMTYgKzMzNiw2IEBACiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9wZ21faGFuZGxlcl9mbikodm9pZCk7CiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9leHRfaGFuZGxlcl9mbikodm9pZCk7CiAKLS8qCi0gKiBDUFUgaWRsZSBub3RpZmllciBjaGFpbi4KLSAqLwotI2RlZmluZSBTMzkwX0NQVV9JRExFCQkwCi0jZGVmaW5lIFMzOTBfQ1BVX05PVF9JRExFCTEKLQotc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwotaW50IHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7Ci1pbnQgdW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwotCiAjZGVmaW5lIEFSQ0hfTE9XX0FERFJFU1NfTElNSVQJMHg3ZmZmZmZmZlVMCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcHRyYWNlLmgKaW5kZXggZDdkNGUyZS4uYWYyYzlhYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3B0cmFjZS5oCkBAIC0yMTUsNiArMjE1LDEyIEBACiAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsKIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoOCkpKSBwc3dfdDsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlfX3UzMgltYXNrOworCV9fdTMyCWFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkKDgpKSkgcHN3X2NvbXBhdF90OworCiAjaWZuZGVmIF9fczM5MHhfXwogCiAjZGVmaW5lIFBTV19NQVNLX1BFUgkJMHg0MDAwMDAwMFVMCkBAIC0yOTIsNiArMjk4LDE1IEBACiAJdW5zaWduZWQgbG9uZyBvcmlnX2dwcjI7CiB9IHMzOTBfcmVnczsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlwc3dfY29tcGF0X3QJcHN3OworCV9fdTMyCQlncHJzW05VTV9HUFJTXTsKKwlfX3UzMgkJYWNyc1tOVU1fQUNSU107CisJX191MzIJCW9yaWdfZ3ByMjsKK30gczM5MF9jb21wYXRfcmVnczsKKworCiAjaWZkZWYgX19LRVJORUxfXwogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmggYi9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAxN2ZmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NoaWQuaApAQCAtMCwwICsxLDI4IEBACisjaWZuZGVmIEFTTV9TQ0hJRF9ICisjZGVmaW5lIEFTTV9TQ0hJRF9ICisKK3N0cnVjdCBzdWJjaGFubmVsX2lkIHsKKwlfX3UzMiBjc3NpZCA6IDg7CisJX191MzIgOiA0OworCV9fdTMyIG0gOiAxOworCV9fdTMyIHNzaWQgOiAyOworCV9fdTMyIG9uZSA6IDE7CisJX191MzIgc2NoX25vIDogMTY7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNCkpKTsKKworCisvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNhbmUgc3RhdGUgb2YgcHJlLWFsbG9jYXRlZCBzdWJjaGFubmVsX2lkLiAqLworc3RhdGljIGlubGluZSB2b2lkCitpbml0X3N1YmNoYW5uZWxfaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQgKnNjaGlkKQoreworCW1lbXNldChzY2hpZCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsX2lkKSk7CisJc2NoaWQtPm9uZSA9IDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitzY2hpZF9lcXVhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQxLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQyKQoreworCXJldHVybiAhbWVtY21wKHNjaGlkMSwgc2NoaWQyLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKK30KKworI2VuZGlmIC8qIEFTTV9TQ0hJRF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjbHAuaCBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCmluZGV4IGI1ZjI4NDMuLmZlZDdiZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCkBAIC00NSw5ICs0NSw5IEBACiBpbnQgc2NscF9nZXRfY3B1X2luZm8oc3RydWN0IHNjbHBfY3B1X2luZm8gKmluZm8pOwogaW50IHNjbHBfY3B1X2NvbmZpZ3VyZSh1OCBjcHUpOwogaW50IHNjbHBfY3B1X2RlY29uZmlndXJlKHU4IGNwdSk7Ci12b2lkIHNjbHBfcmVhZF9pbmZvX2Vhcmx5KHZvaWQpOwogdm9pZCBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KHZvaWQpOwotdW5zaWduZWQgbG9uZyBsb25nIHNjbHBfbWVtb3J5X2RldGVjdCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9ybm1heCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9yem0odm9pZCk7CiBpbnQgc2NscF9zZGlhc19ibGtfY291bnQodm9pZCk7CiBpbnQgc2NscF9zZGlhc19jb3B5KHZvaWQgKmRlc3QsIGludCBibGtfbnVtLCBpbnQgbnJfYmxrcyk7CiBpbnQgc2NscF9jaHBfY29uZmlndXJlKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oIGIvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oCmluZGV4IGJhNjk2NzQuLmYwOWVlM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2V0dXAuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3NldHVwLmgKQEAgLTgsMTQgKzgsMTYgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NFVFVQX0gKICNkZWZpbmUgX0FTTV9TMzkwX1NFVFVQX0gKIAotI2RlZmluZSBDT01NQU5EX0xJTkVfU0laRSAJODk2CisjZGVmaW5lIENPTU1BTkRfTElORV9TSVpFCTEwMjQKKworI2RlZmluZSBBUkNIX0NPTU1BTkRfTElORV9TSVpFCTg5NgogCiAjaWZkZWYgX19LRVJORUxfXwogCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CiAKICNkZWZpbmUgUEFSTUFSRUEJCTB4MTA0MDAKLSNkZWZpbmUgTUVNT1JZX0NIVU5LUwkJMTYJLyogbWF4IDB4N2ZmZiAqLworI2RlZmluZSBNRU1PUllfQ0hVTktTCQkyNTYKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApAQCAtMzYsMTIgKzM4LDE0IEBACiBzdHJ1Y3QgbWVtX2NodW5rIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJdW5zaWduZWQgbG9uZyBzaXplOwotCXVuc2lnbmVkIGxvbmcgdHlwZTsKKwlpbnQgdHlwZTsKIH07CiAKIGV4dGVybiBzdHJ1Y3QgbWVtX2NodW5rIG1lbW9yeV9jaHVua1tdOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmVhbF9tZW1vcnlfc2l6ZTsKIAordm9pZCBkZXRlY3RfbWVtb3J5X2xheW91dChzdHJ1Y3QgbWVtX2NodW5rIGNodW5rW10pOworCiAjaWZkZWYgQ09ORklHX1MzOTBfU1dJVENIX0FNT0RFCiBleHRlcm4gdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZTsKICNlbHNlCkBAIC02MSw3ICs2NSw2IEBACiAKICNkZWZpbmUgTUFDSElORV9GTEFHX1ZNCQkoMVVMIDw8IDApCiAjZGVmaW5lIE1BQ0hJTkVfRkxBR19JRUVFCSgxVUwgPDwgMSkKLSNkZWZpbmUgTUFDSElORV9GTEFHX1AzOTAJKDFVTCA8PCAyKQogI2RlZmluZSBNQUNISU5FX0ZMQUdfQ1NQCSgxVUwgPDwgMykKICNkZWZpbmUgTUFDSElORV9GTEFHX01WUEcJKDFVTCA8PCA0KQogI2RlZmluZSBNQUNISU5FX0ZMQUdfRElBRzQ0CSgxVUwgPDwgNSkKQEAgLTk3LDcgKzEwMCw2IEBACiAjZGVmaW5lIE1BQ0hJTkVfSEFTX1BGTUYJKG1hY2hpbmVfZmxhZ3MgJiBNQUNISU5FX0ZMQUdfUEZNRikKICNlbmRpZiAvKiBfX3MzOTB4X18gKi8KIAotI2RlZmluZSBNQUNISU5FX0hBU19TQ0xQCSghTUFDSElORV9JU19QMzkwKQogI2RlZmluZSBaRkNQRFVNUF9IU0FfU0laRQkoMzJVTDw8MjApCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oIGIvaW5jbHVkZS9hc20tczM5MC9zcGFyc2VtZW0uaAppbmRleCAwNmRmZGFiLi41NDVkMjE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc3BhcnNlbWVtLmgKQEAgLTEsMTUgKzEsMTUgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NQQVJTRU1FTV9ICiAjZGVmaW5lIF9BU01fUzM5MF9TUEFSU0VNRU1fSAogCi0jZGVmaW5lIFNFQ1RJT05fU0laRV9CSVRTCTI1Ci0KICNpZmRlZiBDT05GSUdfNjRCSVQKIAorI2RlZmluZSBTRUNUSU9OX1NJWkVfQklUUwkyOAogI2RlZmluZSBNQVhfUEhZU0FERFJfQklUUwk0MgogI2RlZmluZSBNQVhfUEhZU01FTV9CSVRTCTQyCiAKICNlbHNlCiAKKyNkZWZpbmUgU0VDVElPTl9TSVpFX0JJVFMJMjUKICNkZWZpbmUgTUFYX1BIWVNBRERSX0JJVFMJMzEKICNkZWZpbmUgTUFYX1BIWVNNRU1fQklUUwkzMQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tczM5MC9zeXN0ZW0uaAppbmRleCBlMGQ0NTAwLi44MTllN2Q5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgKQEAgLTMxNSwxNCArMzE1LDE0IEBACiAJYXNtIHZvbGF0aWxlKAkJCQkJCVwKIAkJIglsY3RsZwklMSwlMiwwKCUwKVxuIgkJCVwKIAkJOiA6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpLAlcCi0JCSAgICAibSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKSk7CQlcCisJCSAgICAibSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkpOwkJXAogCX0pCiAKICNkZWZpbmUgX19jdGxfc3RvcmUoYXJyYXksIGxvdywgaGlnaCkgKHsJCQlcCiAJdHlwZWRlZiBzdHJ1Y3QgeyBjaGFyIF9bc2l6ZW9mKGFycmF5KV07IH0gYWRkcnR5cGU7CVwKIAlhc20gdm9sYXRpbGUoCQkJCQkJXAogCQkiCXN0Y3RnCSUyLCUzLDAoJTEpXG4iCQkJXAotCQk6ICI9bSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKQkJCVwKKwkJOiAiPW0iICgqKGFkZHJ0eXBlICopKCZhcnJheSkpCQkJXAogCQk6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpKTsJCVwKIAl9KQogCkBAIC0zMzMsMTQgKzMzMywxNCBAQAogCWFzbSB2b2xhdGlsZSgJCQkJCQlcCiAJCSIJbGN0bAklMSwlMiwwKCUwKVxuIgkJCVwKIAkJOiA6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpLAlcCi0JCSAgICAibSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKSk7CQlcCisJCSAgICAibSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkpOwkJXAogfSkKIAogI2RlZmluZSBfX2N0bF9zdG9yZShhcnJheSwgbG93LCBoaWdoKSAoewkJCVwKIAl0eXBlZGVmIHN0cnVjdCB7IGNoYXIgX1tzaXplb2YoYXJyYXkpXTsgfSBhZGRydHlwZTsJXAogCWFzbSB2b2xhdGlsZSgJCQkJCQlcCiAJCSIJc3RjdGwJJTIsJTMsMCglMSlcbiIJCQlcCi0JCTogIj1tIiAoKihhZGRydHlwZSAqKShhcnJheSkpCQkJXAorCQk6ICI9bSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkJCQlcCiAJCTogImEiICgmYXJyYXkpLCAiaSIgKGxvdyksICJpIiAoaGlnaCkpOwkJXAogCX0pCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvdGltZXIuaCBiL2luY2x1ZGUvYXNtLXMzOTAvdGltZXIuaAppbmRleCBhZGIzNDg2Li5kOThkNzllIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3RpbWVyLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC90aW1lci5oCkBAIC00OCw2ICs0OCwxOCBAQAogZXh0ZXJuIHZvaWQgaW5pdF9jcHVfdnRpbWVyKHZvaWQpOwogZXh0ZXJuIHZvaWQgdnRpbWVfaW5pdCh2b2lkKTsKIAorI2lmZGVmIENPTkZJR19WSVJUX1RJTUVSCisKK2V4dGVybiB2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKTsKK2V4dGVybiB2b2lkIHZ0aW1lX3N0b3BfY3B1X3RpbWVyKHZvaWQpOworCisjZWxzZQorCitzdGF0aWMgaW5saW5lIHZvaWQgdnRpbWVfc3RhcnRfY3B1X3RpbWVyKHZvaWQpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIHZ0aW1lX3N0b3BfY3B1X3RpbWVyKHZvaWQpIHsgfQorCisjZW5kaWYgLyogQ09ORklHX1ZJUlRfVElNRVIgKi8KKwogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2VuZGlmIC8qIF9BU01fUzM5MF9USU1FUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3pjcnlwdC5oIGIvaW5jbHVkZS9hc20tczM5MC96Y3J5cHQuaAppbmRleCBmMjI4ZjFiLi4wMGQzYmJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3pjcnlwdC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvemNyeXB0LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2RlZmluZSBaQ1JZUFRfVkVSU0lPTiAyCiAjZGVmaW5lIFpDUllQVF9SRUxFQVNFIDEKLSNkZWZpbmUgWkNSWVBUX1ZBUklBTlQgMAorI2RlZmluZSBaQ1JZUFRfVkFSSUFOVCAxCiAKICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zcGFyYzY0L2Z0cmFjZS5oIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9mdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjc3MTZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9mdHJhY2UuaApAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9BU01fU1BBUkM2NF9GVFJBQ0UKKyNkZWZpbmUgX0FTTV9TUEFSQzY0X0ZUUkFDRQorCisjaWZkZWYgQ09ORklHX01DT1VOVAorI2RlZmluZSBNQ09VTlRfQUREUgkJKChsb25nKShfbWNvdW50KSkKKyNkZWZpbmUgTUNPVU5UX0lOU05fU0laRQk0IC8qIHNpemVvZiBtY291bnQgY2FsbCAqLworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIHZvaWQgX21jb3VudCh2b2lkKTsKKyNlbmRpZgorCisjZW5kaWYKKworI2VuZGlmIC8qIF9BU01fU1BBUkM2NF9GVFJBQ0UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmggYi9pbmNsdWRlL2FzbS14ODYvYWNwaS5oCmluZGV4IDE0NDExYzkuLjYzNWQ3NjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2FjcGkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGFzbS9udW1hLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9tbXUuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAKICNkZWZpbmUgQ09NUElMRVJfREVQRU5ERU5UX0lOVDY0ICAgbG9uZyBsb25nCiAjZGVmaW5lIENPTVBJTEVSX0RFUEVOREVOVF9VSU5UNjQgIHVuc2lnbmVkIGxvbmcgbG9uZwpAQCAtMTYwLDkgKzE2MSw3IEBACiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogZXh0ZXJuIGludCBhY3BpX251bWE7CiBleHRlcm4gaW50IGFjcGlfc2Nhbl9ub2Rlcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl82NAotIyBkZWZpbmUgTlJfTk9ERV9NRU1CTEtTIChNQVhfTlVNTk9ERVMqMikKLSNlbmRpZgorI2RlZmluZSBOUl9OT0RFX01FTUJMS1MgKE1BWF9OVU1OT0RFUyoyKQogZXh0ZXJuIHZvaWQgYWNwaV9mYWtlX25vZGVzKGNvbnN0IHN0cnVjdCBib290bm9kZSAqZmFrZV9ub2RlcywKIAkJCQkgICBpbnQgbnVtX25vZGVzKTsKICNlbHNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCmluZGV4IDFmNmE5Y2EuLmY2YWExOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCkBAIC03Miw2ICs3Miw4IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9zd2l0Y2goaW50IHNtcCkge30KICNlbmRpZgkvKiBDT05GSUdfU01QICovCiAKK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0ICpmaW5kX25vcF90YWJsZSh2b2lkKTsKKwogLyoKICAqIEFsdGVybmF0aXZlIGluc3RydWN0aW9ucyBmb3IgZGlmZmVyZW50IENQVSB0eXBlcyBvciBjYXBhYmlsaXRpZXMuCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2FtZF9pb21tdS5oIGIvaW5jbHVkZS9hc20teDg2L2FtZF9pb21tdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwYTEyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvYW1kX2lvbW11LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9BU01fWDg2X0FNRF9JT01NVV9ICisjZGVmaW5lIF9BU01fWDg2X0FNRF9JT01NVV9ICisKKyNpZmRlZiBDT05GSUdfQU1EX0lPTU1VCitleHRlcm4gaW50IGFtZF9pb21tdV9pbml0KHZvaWQpOworZXh0ZXJuIGludCBhbWRfaW9tbXVfaW5pdF9kbWFfb3BzKHZvaWQpOworZXh0ZXJuIHZvaWQgYW1kX2lvbW11X2RldGVjdCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBhbWRfaW9tbXVfaW5pdCh2b2lkKSB7IHJldHVybiAtRU5PREVWOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgYW1kX2lvbW11X2RldGVjdCh2b2lkKSB7IH0KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXVfdHlwZXMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXVfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmZjYjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L2FtZF9pb21tdV90eXBlcy5oCkBAIC0wLDAgKzEsMjQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICogQXV0aG9yOiBKb2VyZyBSb2VkZWwgPGpvZXJnLnJvZWRlbEBhbWQuY29tPgorICogICAgICAgICBMZW8gRHVyYW4gPGxlby5kdXJhbkBhbWQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICovCisKKyNpZm5kZWYgX19BTURfSU9NTVVfVFlQRVNfSF9fCisjZGVmaW5lIF9fQU1EX0lPTU1VX1RZUEVTX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworLyoKKyAqIHNvbWUgc2l6ZSBjYWxjdWxhdGlvbiBjb25zdGFudHMKKyAqLworI2RlZmluZSBERVZfVEFCTEVfRU5UUllfU0laRQkJMjU2CisjZGVmaW5lIEFMSUFTX1RBQkxFX0VOVFJZX1NJWkUJCTIKKyNkZWZpbmUgUkxPT0tVUF9UQUJMRV9FTlRSWV9TSVpFCShzaXplb2Yodm9pZCAqKSkKKworLyogaGVscGVyIG1hY3JvcyAqLworI2RlZmluZSBMT1dfVTMyKHgpICgoeCkgJiAoKDFVTEwgPDwgMzIpLTEpKQorI2RlZmluZSBISUdIX1UzMih4KSAoTE9XX1UzMigoeCkgPj4gMzIpKQorCisvKiBMZW5ndGggb2YgdGhlIE1NSU8gcmVnaW9uIGZvciB0aGUgQU1EIElPTU1VICovCisjZGVmaW5lIE1NSU9fUkVHSU9OX0xFTkdUSCAgICAgICAweDQwMDAKKworLyogQ2FwYWJpbGl0eSBvZmZzZXRzIHVzZWQgYnkgdGhlIGRyaXZlciAqLworI2RlZmluZSBNTUlPX0NBUF9IRFJfT0ZGU0VUCTB4MDAKKyNkZWZpbmUgTU1JT19SQU5HRV9PRkZTRVQJMHgwYworCisvKiBNYXNrcywgc2hpZnRzIGFuZCBtYWNyb3MgdG8gcGFyc2UgdGhlIGRldmljZSByYW5nZSBjYXBhYmlsaXR5ICovCisjZGVmaW5lIE1NSU9fUkFOR0VfTERfTUFTSwkweGZmMDAwMDAwCisjZGVmaW5lIE1NSU9fUkFOR0VfRkRfTUFTSwkweDAwZmYwMDAwCisjZGVmaW5lIE1NSU9fUkFOR0VfQlVTX01BU0sJMHgwMDAwZmYwMAorI2RlZmluZSBNTUlPX1JBTkdFX0xEX1NISUZUCTI0CisjZGVmaW5lIE1NSU9fUkFOR0VfRkRfU0hJRlQJMTYKKyNkZWZpbmUgTU1JT19SQU5HRV9CVVNfU0hJRlQJOAorI2RlZmluZSBNTUlPX0dFVF9MRCh4KSAgKCgoeCkgJiBNTUlPX1JBTkdFX0xEX01BU0spID4+IE1NSU9fUkFOR0VfTERfU0hJRlQpCisjZGVmaW5lIE1NSU9fR0VUX0ZEKHgpICAoKCh4KSAmIE1NSU9fUkFOR0VfRkRfTUFTSykgPj4gTU1JT19SQU5HRV9GRF9TSElGVCkKKyNkZWZpbmUgTU1JT19HRVRfQlVTKHgpICgoKHgpICYgTU1JT19SQU5HRV9CVVNfTUFTSykgPj4gTU1JT19SQU5HRV9CVVNfU0hJRlQpCisKKy8qIEZsYWcgbWFza3MgZm9yIHRoZSBBTUQgSU9NTVUgZXhjbHVzaW9uIHJhbmdlICovCisjZGVmaW5lIE1NSU9fRVhDTF9FTkFCTEVfTUFTSyAweDAxVUxMCisjZGVmaW5lIE1NSU9fRVhDTF9BTExPV19NQVNLICAweDAyVUxMCisKKy8qIFVzZWQgb2Zmc2V0cyBpbnRvIHRoZSBNTUlPIHNwYWNlICovCisjZGVmaW5lIE1NSU9fREVWX1RBQkxFX09GRlNFVCAgIDB4MDAwMAorI2RlZmluZSBNTUlPX0NNRF9CVUZfT0ZGU0VUICAgICAweDAwMDgKKyNkZWZpbmUgTU1JT19FVlRfQlVGX09GRlNFVCAgICAgMHgwMDEwCisjZGVmaW5lIE1NSU9fQ09OVFJPTF9PRkZTRVQgICAgIDB4MDAxOAorI2RlZmluZSBNTUlPX0VYQ0xfQkFTRV9PRkZTRVQgICAweDAwMjAKKyNkZWZpbmUgTU1JT19FWENMX0xJTUlUX09GRlNFVCAgMHgwMDI4CisjZGVmaW5lIE1NSU9fQ01EX0hFQURfT0ZGU0VUCTB4MjAwMAorI2RlZmluZSBNTUlPX0NNRF9UQUlMX09GRlNFVAkweDIwMDgKKyNkZWZpbmUgTU1JT19FVlRfSEVBRF9PRkZTRVQJMHgyMDEwCisjZGVmaW5lIE1NSU9fRVZUX1RBSUxfT0ZGU0VUCTB4MjAxOAorI2RlZmluZSBNTUlPX1NUQVRVU19PRkZTRVQJMHgyMDIwCisKKy8qIGZlYXR1cmUgY29udHJvbCBiaXRzICovCisjZGVmaW5lIENPTlRST0xfSU9NTVVfRU4gICAgICAgIDB4MDBVTEwKKyNkZWZpbmUgQ09OVFJPTF9IVF9UVU5fRU4gICAgICAgMHgwMVVMTAorI2RlZmluZSBDT05UUk9MX0VWVF9MT0dfRU4gICAgICAweDAyVUxMCisjZGVmaW5lIENPTlRST0xfRVZUX0lOVF9FTiAgICAgIDB4MDNVTEwKKyNkZWZpbmUgQ09OVFJPTF9DT01XQUlUX0VOICAgICAgMHgwNFVMTAorI2RlZmluZSBDT05UUk9MX1BBU1NQV19FTiAgICAgICAweDA4VUxMCisjZGVmaW5lIENPTlRST0xfUkVTUEFTU1BXX0VOICAgIDB4MDlVTEwKKyNkZWZpbmUgQ09OVFJPTF9DT0hFUkVOVF9FTiAgICAgMHgwYVVMTAorI2RlZmluZSBDT05UUk9MX0lTT0NfRU4gICAgICAgICAweDBiVUxMCisjZGVmaW5lIENPTlRST0xfQ01EQlVGX0VOICAgICAgIDB4MGNVTEwKKyNkZWZpbmUgQ09OVFJPTF9QUEZMT0dfRU4gICAgICAgMHgwZFVMTAorI2RlZmluZSBDT05UUk9MX1BQRklOVF9FTiAgICAgICAweDBlVUxMCisKKy8qIGNvbW1hbmQgc3BlY2lmaWMgZGVmaW5lcyAqLworI2RlZmluZSBDTURfQ09NUExfV0FJVCAgICAgICAgICAweDAxCisjZGVmaW5lIENNRF9JTlZfREVWX0VOVFJZICAgICAgIDB4MDIKKyNkZWZpbmUgQ01EX0lOVl9JT01NVV9QQUdFUyAgICAgMHgwMworCisjZGVmaW5lIENNRF9DT01QTF9XQUlUX1NUT1JFX01BU0sJMHgwMQorI2RlZmluZSBDTURfSU5WX0lPTU1VX1BBR0VTX1NJWkVfTUFTSwkweDAxCisjZGVmaW5lIENNRF9JTlZfSU9NTVVfUEFHRVNfUERFX01BU0sJMHgwMgorCisjZGVmaW5lIENNRF9JTlZfSU9NTVVfQUxMX1BBR0VTX0FERFJFU1MJMHg3ZmZmZmZmZmZmZmZmZmZmVUxMCisKKy8qIG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMgZm9yIGRldmljZSB0YWJsZSBlbnRyaWVzICovCisjZGVmaW5lIERFVl9FTlRSWV9WQUxJRCAgICAgICAgIDB4MDAKKyNkZWZpbmUgREVWX0VOVFJZX1RSQU5TTEFUSU9OICAgMHgwMQorI2RlZmluZSBERVZfRU5UUllfSVIgICAgICAgICAgICAweDNkCisjZGVmaW5lIERFVl9FTlRSWV9JVyAgICAgICAgICAgIDB4M2UKKyNkZWZpbmUgREVWX0VOVFJZX0VYICAgICAgICAgICAgMHg2NworI2RlZmluZSBERVZfRU5UUllfU1lTTUdUMSAgICAgICAweDY4CisjZGVmaW5lIERFVl9FTlRSWV9TWVNNR1QyICAgICAgIDB4NjkKKyNkZWZpbmUgREVWX0VOVFJZX0lOSVRfUEFTUyAgICAgMHhiOAorI2RlZmluZSBERVZfRU5UUllfRUlOVF9QQVNTICAgICAweGI5CisjZGVmaW5lIERFVl9FTlRSWV9OTUlfUEFTUyAgICAgIDB4YmEKKyNkZWZpbmUgREVWX0VOVFJZX0xJTlQwX1BBU1MgICAgMHhiZQorI2RlZmluZSBERVZfRU5UUllfTElOVDFfUEFTUyAgICAweGJmCisKKy8qIGNvbnN0YW50cyB0byBjb25maWd1cmUgdGhlIGNvbW1hbmQgYnVmZmVyICovCisjZGVmaW5lIENNRF9CVUZGRVJfU0laRSAgICA4MTkyCisjZGVmaW5lIENNRF9CVUZGRVJfRU5UUklFUyA1MTIKKyNkZWZpbmUgTU1JT19DTURfU0laRV9TSElGVCA1NgorI2RlZmluZSBNTUlPX0NNRF9TSVpFXzUxMiAoMHg5VUxMIDw8IE1NSU9fQ01EX1NJWkVfU0hJRlQpCisKKyNkZWZpbmUgUEFHRV9NT0RFXzFfTEVWRUwgMHgwMQorI2RlZmluZSBQQUdFX01PREVfMl9MRVZFTCAweDAyCisjZGVmaW5lIFBBR0VfTU9ERV8zX0xFVkVMIDB4MDMKKworI2RlZmluZSBJT01NVV9QREVfTkxfMCAgIDB4MDAwVUxMCisjZGVmaW5lIElPTU1VX1BERV9OTF8xICAgMHgyMDBVTEwKKyNkZWZpbmUgSU9NTVVfUERFX05MXzIgICAweDQwMFVMTAorI2RlZmluZSBJT01NVV9QREVfTkxfMyAgIDB4NjAwVUxMCisKKyNkZWZpbmUgSU9NTVVfUFRFX0wyX0lOREVYKGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IDMwKSAmIDB4MWZmVUxMKQorI2RlZmluZSBJT01NVV9QVEVfTDFfSU5ERVgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gMjEpICYgMHgxZmZVTEwpCisjZGVmaW5lIElPTU1VX1BURV9MMF9JTkRFWChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiAxMikgJiAweDFmZlVMTCkKKworI2RlZmluZSBJT01NVV9NQVBfU0laRV9MMSAoMVVMTCA8PCAyMSkKKyNkZWZpbmUgSU9NTVVfTUFQX1NJWkVfTDIgKDFVTEwgPDwgMzApCisjZGVmaW5lIElPTU1VX01BUF9TSVpFX0wzICgxVUxMIDw8IDM5KQorCisjZGVmaW5lIElPTU1VX1BURV9QICAoMVVMTCA8PCAwKQorI2RlZmluZSBJT01NVV9QVEVfVSAgKDFVTEwgPDwgNTkpCisjZGVmaW5lIElPTU1VX1BURV9GQyAoMVVMTCA8PCA2MCkKKyNkZWZpbmUgSU9NTVVfUFRFX0lSICgxVUxMIDw8IDYxKQorI2RlZmluZSBJT01NVV9QVEVfSVcgKDFVTEwgPDwgNjIpCisKKyNkZWZpbmUgSU9NTVVfTDFfUERFKGFkZHJlc3MpIFwKKwkoKGFkZHJlc3MpIHwgSU9NTVVfUERFX05MXzEgfCBJT01NVV9QVEVfUCB8IElPTU1VX1BURV9JUiB8IElPTU1VX1BURV9JVykKKyNkZWZpbmUgSU9NTVVfTDJfUERFKGFkZHJlc3MpIFwKKwkoKGFkZHJlc3MpIHwgSU9NTVVfUERFX05MXzIgfCBJT01NVV9QVEVfUCB8IElPTU1VX1BURV9JUiB8IElPTU1VX1BURV9JVykKKworI2RlZmluZSBJT01NVV9QQUdFX01BU0sgKCgoMVVMTCA8PCA1MikgLSAxKSAmIH4weGZmZlVMTCkKKyNkZWZpbmUgSU9NTVVfUFRFX1BSRVNFTlQocHRlKSAoKHB0ZSkgJiBJT01NVV9QVEVfUCkKKyNkZWZpbmUgSU9NTVVfUFRFX1BBR0UocHRlKSAocGh5c190b192aXJ0KChwdGUpICYgSU9NTVVfUEFHRV9NQVNLKSkKKyNkZWZpbmUgSU9NTVVfUFRFX01PREUocHRlKSAoKChwdGUpID4+IDkpICYgMHgwNykKKworI2RlZmluZSBJT01NVV9QUk9UX01BU0sgMHgwMworI2RlZmluZSBJT01NVV9QUk9UX0lSIDB4MDEKKyNkZWZpbmUgSU9NTVVfUFJPVF9JVyAweDAyCisKKy8qIElPTU1VIGNhcGFiaWxpdGllcyAqLworI2RlZmluZSBJT01NVV9DQVBfSU9UTEIgICAyNAorI2RlZmluZSBJT01NVV9DQVBfTlBDQUNIRSAyNgorCisjZGVmaW5lIE1BWF9ET01BSU5fSUQgNjU1MzYKKworc3RydWN0IHByb3RlY3Rpb25fZG9tYWluIHsKKwlzcGlubG9ja190IGxvY2s7CisJdTE2IGlkOworCWludCBtb2RlOworCXU2NCAqcHRfcm9vdDsKKwl2b2lkICpwcml2OworfTsKKworc3RydWN0IGRtYV9vcHNfZG9tYWluIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluIGRvbWFpbjsKKwl1bnNpZ25lZCBsb25nIGFwZXJ0dXJlX3NpemU7CisJdW5zaWduZWQgbG9uZyBuZXh0X2JpdDsKKwl1bnNpZ25lZCBsb25nICpiaXRtYXA7CisJdTY0ICoqcHRlX3BhZ2VzOworfTsKKworc3RydWN0IGFtZF9pb21tdSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXNwaW5sb2NrX3QgbG9jazsKKworCXUxNiBkZXZpZDsKKwl1MTYgY2FwX3B0cjsKKworCXU2NCBtbWlvX3BoeXM7CisJdTggKm1taW9fYmFzZTsKKwl1MzIgY2FwOworCXUxNiBmaXJzdF9kZXZpY2U7CisJdTE2IGxhc3RfZGV2aWNlOworCXU2NCBleGNsdXNpb25fc3RhcnQ7CisJdTY0IGV4Y2x1c2lvbl9sZW5ndGg7CisKKwl1OCAqY21kX2J1ZjsKKwl1MzIgY21kX2J1Zl9zaXplOworCisJaW50IG5lZWRfc3luYzsKKworCXN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZGVmYXVsdF9kb207Cit9OworCitleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBhbWRfaW9tbXVfbGlzdDsKKworc3RydWN0IGRldl90YWJsZV9lbnRyeSB7CisJdTMyIGRhdGFbOF07Cit9OworCitzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJdTE2IGRldmlkX3N0YXJ0OworCXUxNiBkZXZpZF9lbmQ7CisJdTY0IGFkZHJlc3Nfc3RhcnQ7CisJdTY0IGFkZHJlc3NfZW5kOworCWludCBwcm90OworfTsKKworZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYW1kX2lvbW11X3VuaXR5X21hcDsKKworLyogZGF0YSBzdHJ1Y3R1cmVzIGZvciBkZXZpY2UgaGFuZGxpbmcgKi8KK2V4dGVybiBzdHJ1Y3QgZGV2X3RhYmxlX2VudHJ5ICphbWRfaW9tbXVfZGV2X3RhYmxlOworZXh0ZXJuIHUxNiAqYW1kX2lvbW11X2FsaWFzX3RhYmxlOworZXh0ZXJuIHN0cnVjdCBhbWRfaW9tbXUgKiphbWRfaW9tbXVfcmxvb2t1cF90YWJsZTsKKworZXh0ZXJuIHVuc2lnbmVkIGFtZF9pb21tdV9hcGVydHVyZV9vcmRlcjsKKworZXh0ZXJuIHUxNiBhbWRfaW9tbXVfbGFzdF9iZGY7CisKKy8qIGRhdGEgc3RydWN0dXJlcyBmb3IgcHJvdGVjdGlvbiBkb21haW4gaGFuZGxpbmcgKi8KK2V4dGVybiBzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKiphbWRfaW9tbXVfcGRfdGFibGU7CitleHRlcm4gdW5zaWduZWQgbG9uZyAqYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcDsKKworZXh0ZXJuIGludCBhbWRfaW9tbXVfaXNvbGF0ZTsKKworc3RhdGljIGlubGluZSB2b2lkIHByaW50X2RldmlkKHUxNiBkZXZpZCwgaW50IG5sKQoreworCWludCBidXMgPSBkZXZpZCA+PiA4OworCWludCBkZXYgPSBkZXZpZCA+PiAzICYgMHgxZjsKKwlpbnQgZm4gID0gZGV2aWQgJiAweDA3OworCisJcHJpbnRrKCIlMDJ4OiUwMnguJXgiLCBidXMsIGRldiwgZm4pOworCWlmIChubCkKKwkJcHJpbnRrKCJcbiIpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hcGljLmggYi9pbmNsdWRlL2FzbS14ODYvYXBpYy5oCmluZGV4IGJlOTYzOWEuLjRlMmMxZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2FwaWMuaApAQCAtMzYsMTUgKzM2LDExIEBACiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAKIGV4dGVybiBpbnQgYXBpY192ZXJib3NpdHk7Ci1leHRlcm4gaW50IHRpbWVyX292ZXJfODI1NDsKIGV4dGVybiBpbnQgbG9jYWxfYXBpY190aW1lcl9jMl9vazsKLWV4dGVybiBpbnQgbG9jYWxfYXBpY190aW1lcl9kaXNhYmxlZDsKIAotZXh0ZXJuIGludCBhcGljX3J1bnNfbWFpbl90aW1lcjsKIGV4dGVybiBpbnQgaW9hcGljX2ZvcmNlOwotZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7Ci1leHRlcm4gaW50IGRpc2FibGVfYXBpY190aW1lcjsKIAorZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7CiAvKgogICogQmFzaWMgZnVuY3Rpb25zIGFjY2Vzc2luZyBBUElDcy4KICAqLwpAQCAtMTI1LDE2ICsxMjEsMjIgQEAKICAqLwogI2lmZGVmIENPTkZJR19YODZfNjQKIGV4dGVybiB2b2lkIGVhcmx5X2luaXRfbGFwaWNfbWFwcGluZyh2b2lkKTsKK2V4dGVybiBpbnQgYXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGFwaWNfaXNfY2x1c3RlcmVkX2JveCh2b2lkKQoreworCXJldHVybiAwOworfQogI2VuZGlmCiAKIGV4dGVybiB1OCBzZXR1cF9BUElDX2VpbHZ0X21jZSh1OCB2ZWN0b3IsIHU4IG1zZ190eXBlLCB1OCBtYXNrKTsKIGV4dGVybiB1OCBzZXR1cF9BUElDX2VpbHZ0X2licyh1OCB2ZWN0b3IsIHU4IG1zZ190eXBlLCB1OCBtYXNrKTsKIAotZXh0ZXJuIGludCBhcGljX2lzX2NsdXN0ZXJlZF9ib3godm9pZCk7CiAKICNlbHNlIC8qICFDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBsYXBpY19zaHV0ZG93bih2b2lkKSB7IH0KICNkZWZpbmUgbG9jYWxfYXBpY190aW1lcl9jMl9vawkJMQorc3RhdGljIGlubGluZSB2b2lkIGluaXRfYXBpY19tYXBwaW5ncyh2b2lkKSB7IH0KIAogI2VuZGlmIC8qICFDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2FzbS5oIGIvaW5jbHVkZS9hc20teDg2L2FzbS5oCmluZGV4IDkwZGVjMGMuLjk3MjIwMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9hc20uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYXNtLmgKQEAgLTEsMzcgKzEsNDAgQEAKICNpZm5kZWYgX0FTTV9YODZfQVNNX0gKICNkZWZpbmUgX0FTTV9YODZfQVNNX0gKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLS8qIDMyIGJpdHMgKi8KLQotIyBkZWZpbmUgX0FTTV9QVFIJIiAubG9uZyAiCi0jIGRlZmluZSBfQVNNX0FMSUdOCSIgLmJhbGlnbiA0ICIKLSMgZGVmaW5lIF9BU01fTU9WX1VMCSIgbW92bCAiCi0KLSMgZGVmaW5lIF9BU01fSU5DCSIgaW5jbCAiCi0jIGRlZmluZSBfQVNNX0RFQwkiIGRlY2wgIgotIyBkZWZpbmUgX0FTTV9BREQJIiBhZGRsICIKLSMgZGVmaW5lIF9BU01fU1VCCSIgc3VibCAiCi0jIGRlZmluZSBfQVNNX1hBREQJIiB4YWRkbCAiCi0KKyNpZmRlZiBfX0FTU0VNQkxZX18KKyMgZGVmaW5lIF9fQVNNX0ZPUk0oeCkJeAorIyBkZWZpbmUgX19BU01fRVhfU0VDCS5zZWN0aW9uIF9fZXhfdGFibGUKICNlbHNlCi0vKiA2NCBiaXRzICovCisjIGRlZmluZSBfX0FTTV9GT1JNKHgpCSIgIiAjeCAiICIKKyMgZGVmaW5lIF9fQVNNX0VYX1NFQwkiIC5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCJcbiIKKyNlbmRpZgogCi0jIGRlZmluZSBfQVNNX1BUUgkiIC5xdWFkICIKLSMgZGVmaW5lIF9BU01fQUxJR04JIiAuYmFsaWduIDggIgotIyBkZWZpbmUgX0FTTV9NT1ZfVUwJIiBtb3ZxICIKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGRlZmluZSBfX0FTTV9TRUwoYSxiKSBfX0FTTV9GT1JNKGEpCisjZWxzZQorIyBkZWZpbmUgX19BU01fU0VMKGEsYikgX19BU01fRk9STShiKQorI2VuZGlmCiAKLSMgZGVmaW5lIF9BU01fSU5DCSIgaW5jcSAiCi0jIGRlZmluZSBfQVNNX0RFQwkiIGRlY3EgIgotIyBkZWZpbmUgX0FTTV9BREQJIiBhZGRxICIKLSMgZGVmaW5lIF9BU01fU1VCCSIgc3VicSAiCi0jIGRlZmluZSBfQVNNX1hBREQJIiB4YWRkcSAiCisjZGVmaW5lIF9fQVNNX1NJWkUoaW5zdCkJX19BU01fU0VMKGluc3QjI2wsIGluc3QjI3EpCisjZGVmaW5lIF9fQVNNX1JFRyhyZWcpCQlfX0FTTV9TRUwoZSMjcmVnLCByIyNyZWcpCiAKLSNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCisjZGVmaW5lIF9BU01fUFRSCV9fQVNNX1NFTCgubG9uZywgLnF1YWQpCisjZGVmaW5lIF9BU01fQUxJR04JX19BU01fU0VMKC5iYWxpZ24gNCwgLmJhbGlnbiA4KQorI2RlZmluZSBfQVNNX01PVl9VTAlfX0FTTV9TSVpFKG1vdikKKworI2RlZmluZSBfQVNNX0lOQwlfX0FTTV9TSVpFKGluYykKKyNkZWZpbmUgX0FTTV9ERUMJX19BU01fU0laRShkZWMpCisjZGVmaW5lIF9BU01fQURECV9fQVNNX1NJWkUoYWRkKQorI2RlZmluZSBfQVNNX1NVQglfX0FTTV9TSVpFKHN1YikKKyNkZWZpbmUgX0FTTV9YQURECV9fQVNNX1NJWkUoeGFkZCkKKyNkZWZpbmUgX0FTTV9BWAkJX19BU01fUkVHKGF4KQorI2RlZmluZSBfQVNNX0JYCQlfX0FTTV9SRUcoYngpCisjZGVmaW5lIF9BU01fQ1gJCV9fQVNNX1JFRyhjeCkKKyNkZWZpbmUgX0FTTV9EWAkJX19BU01fUkVHKGR4KQogCiAvKiBFeGNlcHRpb24gdGFibGUgZW50cnkgKi8KICMgZGVmaW5lIF9BU01fRVhUQUJMRShmcm9tLHRvKSBcCi0JIiAuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iIFwKKwlfX0FTTV9FWF9TRUMJXAogCV9BU01fQUxJR04gIlxuIiBcCiAJX0FTTV9QVFIgI2Zyb20gIiwiICN0byAiXG4iIFwKIAkiIC5wcmV2aW91c1xuIgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2F0b21pY182NC5oIGIvaW5jbHVkZS9hc20teDg2L2F0b21pY182NC5oCmluZGV4IDNlMGNkN2QuLmEwMDk1MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9hdG9taWNfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYXRvbWljXzY0LmgKQEAgLTExLDEyICsxMSw2IEBACiAgKiByZXNvdXJjZSBjb3VudGluZyBldGMuLgogICovCiAKLSNpZmRlZiBDT05GSUdfU01QCi0jZGVmaW5lIExPQ0sgImxvY2sgOyAiCi0jZWxzZQotI2RlZmluZSBMT0NLICIiCi0jZW5kaWYKLQogLyoKICAqIE1ha2Ugc3VyZSBnY2MgZG9lc24ndCB0cnkgdG8gYmUgY2xldmVyIGFuZCBtb3ZlIHRoaW5ncyBhcm91bmQKICAqIG9uIHVzLiBXZSBuZWVkIHRvIHVzZSBfZXhhY3RseV8gdGhlIGFkZHJlc3MgdGhlIHVzZXIgZ2F2ZSB1cywKQEAgLTQzMSw2ICs0MjUsMzIgQEAKIAlyZXR1cm4gYyAhPSAodSk7CiB9CiAKKy8qKgorICogYXRvbWljX2luY19zaG9ydCAtIGluY3JlbWVudCBvZiBhIHNob3J0IGludGVnZXIKKyAqIEB2OiBwb2ludGVyIHRvIHR5cGUgaW50CisgKgorICogQXRvbWljYWxseSBhZGRzIDEgdG8gQHYKKyAqIFJldHVybnMgdGhlIG5ldyB2YWx1ZSBvZiBAdQorICovCitzdGF0aWMgaW5saW5lIHNob3J0IGludCBhdG9taWNfaW5jX3Nob3J0KHNob3J0IGludCAqdikKK3sKKwlhc20oTE9DS19QUkVGSVggImFkZHcgJDEsICUwIiA6ICIrbSIgKCp2KSk7CisJcmV0dXJuICp2OworfQorCisvKioKKyAqIGF0b21pY19vcl9sb25nIC0gT1Igb2YgdHdvIGxvbmcgaW50ZWdlcnMKKyAqIEB2MTogcG9pbnRlciB0byB0eXBlIHVuc2lnbmVkIGxvbmcKKyAqIEB2MjogcG9pbnRlciB0byB0eXBlIHVuc2lnbmVkIGxvbmcKKyAqCisgKiBBdG9taWNhbGx5IE9ScyBAdjEgYW5kIEB2MgorICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBPUgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljX29yX2xvbmcodW5zaWduZWQgbG9uZyAqdjEsIHVuc2lnbmVkIGxvbmcgdjIpCit7CisJYXNtKExPQ0tfUFJFRklYICJvcnEgJTEsICUwIiA6ICIrbSIgKCp2MSkgOiAiciIgKHYyKSk7Cit9CisKICNkZWZpbmUgYXRvbWljNjRfaW5jX25vdF96ZXJvKHYpIGF0b21pYzY0X2FkZF91bmxlc3MoKHYpLCAxLCAwKQogCiAvKiBUaGVzZSBhcmUgeDg2LXNwZWNpZmljLCB1c2VkIGJ5IHNvbWUgaGVhZGVyIGZpbGVzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYmlvc19lYmRhLmggYi9pbmNsdWRlL2FzbS14ODYvYmlvc19lYmRhLmgKaW5kZXggYjRhNDZiNy4uMDAzM2U1MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2Jpb3NfZWJkYS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9iaW9zX2ViZGEuaApAQCAtMTQsNCArMTQsNiBAQAogCXJldHVybiBhZGRyZXNzOwkvKiAwIG1lYW5zIG5vbmUgKi8KIH0KIAordm9pZCByZXNlcnZlX2ViZGFfcmVnaW9uKHZvaWQpOworCiAjZW5kaWYgLyogX01BQ0hfQklPU19FQkRBX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9iaXRvcHMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9iaXRvcHMuaAppbmRleCBlZTRiM2VhLi45NmIxODI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYml0b3BzLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2JpdG9wcy5oCkBAIC0yMywxMSArMjMsMjEgQEAKICNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCAxKQogLyogVGVjaG5pY2FsbHkgd3JvbmcsIGJ1dCB0aGlzIGF2b2lkcyBjb21waWxhdGlvbiBlcnJvcnMgb24gc29tZSBnY2MKICAgIHZlcnNpb25zLiAqLwotI2RlZmluZSBBRERSICI9bSIgKCoodm9sYXRpbGUgbG9uZyAqKSBhZGRyKQorI2RlZmluZSBCSVRPUF9BRERSKHgpICI9bSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoeCkpCiAjZWxzZQotI2RlZmluZSBBRERSICIrbSIgKCoodm9sYXRpbGUgbG9uZyAqKSBhZGRyKQorI2RlZmluZSBCSVRPUF9BRERSKHgpICIrbSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoeCkpCiAjZW5kaWYKIAorI2RlZmluZSBBRERSCQkJCUJJVE9QX0FERFIoYWRkcikKKworLyoKKyAqIFdlIGRvIHRoZSBsb2NrZWQgb3BzIHRoYXQgZG9uJ3QgcmV0dXJuIHRoZSBvbGQgdmFsdWUgYXMKKyAqIGEgbWFzayBvcGVyYXRpb24gb24gYSBieXRlLgorICovCisjZGVmaW5lIElTX0lNTUVESUFURShucikJCShfX2J1aWx0aW5fY29uc3RhbnRfcChucikpCisjZGVmaW5lIENPTlNUX01BU0tfQUREUihuciwgYWRkcikJQklUT1BfQUREUigodm9pZCAqKShhZGRyKSArICgobnIpPj4zKSkKKyNkZWZpbmUgQ09OU1RfTUFTSyhucikJCQkoMSA8PCAoKG5yKSAmIDcpKQorCiAvKioKICAqIHNldF9iaXQgLSBBdG9taWNhbGx5IHNldCBhIGJpdCBpbiBtZW1vcnkKICAqIEBucjogdGhlIGJpdCB0byBzZXQKQEAgLTQzLDkgKzUzLDE3IEBACiAgKiBOb3RlIHRoYXQgQG5yIG1heSBiZSBhbG1vc3QgYXJiaXRyYXJpbHkgbGFyZ2U7IHRoaXMgZnVuY3Rpb24gaXMgbm90CiAgKiByZXN0cmljdGVkIHRvIGFjdGluZyBvbiBhIHNpbmdsZS13b3JkIHF1YW50aXR5LgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2JpdCh1bnNpZ25lZCBpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7Ci0JYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJidHMgJTEsJTAiIDogQUREUiA6ICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKKwlpZiAoSVNfSU1NRURJQVRFKG5yKSkgeworCQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggIm9yYiAlMSwlMCIKKwkJCTogQ09OU1RfTUFTS19BRERSKG5yLCBhZGRyKQorCQkJOiAiaXEiICgodTgpQ09OU1RfTUFTSyhucikpCisJCQk6ICJtZW1vcnkiKTsKKwl9IGVsc2UgeworCQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImJ0cyAlMSwlMCIKKwkJCTogQklUT1BfQUREUihhZGRyKSA6ICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKKwl9CiB9CiAKIC8qKgpAQCAtNTcsNyArNzUsNyBAQAogICogSWYgaXQncyBjYWxsZWQgb24gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBzaW11bHRhbmVvdXNseSwgdGhlIGVmZmVjdAogICogbWF5IGJlIHRoYXQgb25seSBvbmUgb3BlcmF0aW9uIHN1Y2NlZWRzLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWFzbSB2b2xhdGlsZSgiYnRzICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikgOiAibWVtb3J5Iik7CiB9CkBAIC03Miw5ICs5MCwxNyBAQAogICogeW91IHNob3VsZCBjYWxsIHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpIGFuZC9vciBzbXBfbWJfX2FmdGVyX2NsZWFyX2JpdCgpCiAgKiBpbiBvcmRlciB0byBlbnN1cmUgY2hhbmdlcyBhcmUgdmlzaWJsZSBvbiBvdGhlciBwcm9jZXNzb3JzLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewotCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRyICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikpOworCWlmIChJU19JTU1FRElBVEUobnIpKSB7CisJCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYW5kYiAlMSwlMCIKKwkJCTogQ09OU1RfTUFTS19BRERSKG5yLCBhZGRyKQorCQkJOiAiaXEiICgodTgpfkNPTlNUX01BU0sobnIpKSk7CisJfSBlbHNlIHsKKwkJYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJidHIgJTEsJTAiCisJCQk6IEJJVE9QX0FERFIoYWRkcikKKwkJCTogIklyIiAobnIpKTsKKwl9CiB9CiAKIC8qCkBAIC04NSwxMyArMTExLDEzIEBACiAgKiBjbGVhcl9iaXQoKSBpcyBhdG9taWMgYW5kIGltcGxpZXMgcmVsZWFzZSBzZW1hbnRpY3MgYmVmb3JlIHRoZSBtZW1vcnkKICAqIG9wZXJhdGlvbi4gSXQgY2FuIGJlIHVzZWQgZm9yIGFuIHVubG9jay4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2JpdF91bmxvY2sodW5zaWduZWQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0X3VubG9jayh1bnNpZ25lZCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAliYXJyaWVyKCk7CiAJY2xlYXJfYml0KG5yLCBhZGRyKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIF9fY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJYXNtIHZvbGF0aWxlKCJidHIgJTEsJTAiIDogQUREUiA6ICJJciIgKG5yKSk7CiB9CkBAIC0xMDgsNyArMTM0LDcgQEAKICAqIE5vIG1lbW9yeSBiYXJyaWVyIGlzIHJlcXVpcmVkIGhlcmUsIGJlY2F1c2UgeDg2IGNhbm5vdCByZW9yZGVyIHN0b3JlcyBwYXN0CiAgKiBvbGRlciBsb2Fkcy4gU2FtZSBwcmluY2lwbGUgYXMgc3Bpbl91bmxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NsZWFyX2JpdF91bmxvY2sodW5zaWduZWQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19jbGVhcl9iaXRfdW5sb2NrKHVuc2lnbmVkIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWJhcnJpZXIoKTsKIAlfX2NsZWFyX2JpdChuciwgYWRkcik7CkBAIC0xMjYsNyArMTUyLDcgQEAKICAqIElmIGl0J3MgY2FsbGVkIG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2ltdWx0YW5lb3VzbHksIHRoZSBlZmZlY3QKICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlvbiBzdWNjZWVkcy4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIF9fY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlhc20gdm9sYXRpbGUoImJ0YyAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpKTsKIH0KQEAgLTE0MCw3ICsxNjYsNyBAQAogICogTm90ZSB0aGF0IEBuciBtYXkgYmUgYWxtb3N0IGFyYml0cmFyaWx5IGxhcmdlOyB0aGlzIGZ1bmN0aW9uIGlzIG5vdAogICogcmVzdHJpY3RlZCB0byBhY3Rpbmcgb24gYSBzaW5nbGUtd29yZCBxdWFudGl0eS4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIGNoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIGNoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRjICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikpOwogfQpAQCAtMTUzLDcgKzE3OSw3IEBACiAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuCiAgKiBJdCBhbHNvIGltcGxpZXMgYSBtZW1vcnkgYmFycmllci4KICAqLwotc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0xNzAsNyArMTk2LDcgQEAKICAqCiAgKiBUaGlzIGlzIHRoZSBzYW1lIGFzIHRlc3RfYW5kX3NldF9iaXQgb24geDg2LgogICovCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9zZXRfYml0X2xvY2soaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sb2NrKGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlyZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChuciwgYWRkcik7CiB9CkBAIC0xODQsNyArMjEwLDcgQEAKICAqIElmIHR3byBleGFtcGxlcyBvZiB0aGlzIG9wZXJhdGlvbiByYWNlLCBvbmUgY2FuIGFwcGVhciB0byBzdWNjZWVkCiAgKiBidXQgYWN0dWFsbHkgZmFpbC4gIFlvdSBtdXN0IHByb3RlY3QgbXVsdGlwbGUgYWNjZXNzZXMgd2l0aCBhIGxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKQEAgLTIwMyw3ICsyMjksNyBAQAogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKQEAgLTIyMyw3ICsyNDksNyBAQAogICogSWYgdHdvIGV4YW1wbGVzIG9mIHRoaXMgb3BlcmF0aW9uIHJhY2UsIG9uZSBjYW4gYXBwZWFyIHRvIHN1Y2NlZWQKICAqIGJ1dCBhY3R1YWxseSBmYWlsLiAgWW91IG11c3QgcHJvdGVjdCBtdWx0aXBsZSBhY2Nlc3NlcyB3aXRoIGEgbG9jay4KICAqLwotc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKQEAgLTIzNSw3ICsyNjEsNyBAQAogfQogCiAvKiBXQVJOSU5HOiBub24gYXRvbWljIGFuZCBpdCBjYW4gYmUgcmVvcmRlcmVkISAqLwotc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApAQCAtMjU1LDcgKzI4MSw3IEBACiAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuCiAgKiBJdCBhbHNvIGltcGxpZXMgYSBtZW1vcnkgYmFycmllci4KICAqLwotc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yNjYsMTMgKzI5MiwxMyBAQAogCXJldHVybiBvbGRiaXQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IGNvbnN0YW50X3Rlc3RfYml0KGludCBuciwgY29uc3Qgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IGNvbnN0YW50X3Rlc3RfYml0KGludCBuciwgY29uc3Qgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlyZXR1cm4gKCgxVUwgPDwgKG5yICUgQklUU19QRVJfTE9ORykpICYKIAkJKCgodW5zaWduZWQgbG9uZyAqKWFkZHIpW25yIC8gQklUU19QRVJfTE9OR10pKSAhPSAwOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB2YXJpYWJsZV90ZXN0X2JpdChpbnQgbnIsIHZvbGF0aWxlIGNvbnN0IHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCB2YXJpYWJsZV90ZXN0X2JpdChpbnQgbnIsIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Jvb3RwYXJhbS5oIGIvaW5jbHVkZS9hc20teDg2L2Jvb3RwYXJhbS5oCmluZGV4IGY2MmY0NzMuLmFlMjJiZGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9ib290cGFyYW0uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYm9vdHBhcmFtLmgKQEAgLTExLDYgKzExLDcgQEAKIAogLyogc2V0dXAgZGF0YSB0eXBlcyAqLwogI2RlZmluZSBTRVRVUF9OT05FCQkJMAorI2RlZmluZSBTRVRVUF9FODIwX0VYVAkJCTEKIAogLyogZXh0ZW5zaWJsZSBzZXR1cCBkYXRhIGxpc3Qgbm9kZSAqLwogc3RydWN0IHNldHVwX2RhdGEgewpAQCAtNDAsNiArNDEsNyBAQAogCV9fdTgJdHlwZV9vZl9sb2FkZXI7CiAJX191OAlsb2FkZmxhZ3M7CiAjZGVmaW5lIExPQURFRF9ISUdICSgxPDwwKQorI2RlZmluZSBRVUlFVF9GTEFHCSgxPDw1KQogI2RlZmluZSBLRUVQX1NFR01FTlRTCSgxPDw2KQogI2RlZmluZSBDQU5fVVNFX0hFQVAJKDE8PDcpCiAJX191MTYJc2V0dXBfbW92ZV9zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2NtcHhjaGdfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9jbXB4Y2hnXzY0LmgKaW5kZXggZDliMjZiOS4uMTc0NjNjYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2NtcHhjaGdfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvY21weGNoZ182NC5oCkBAIC05Myw2ICs5MywzOSBAQAogCXJldHVybiBvbGQ7CiB9CiAKKy8qCisgKiBBbHdheXMgdXNlIGxvY2tlZCBvcGVyYXRpb25zIHdoZW4gdG91Y2hpbmcgbWVtb3J5IHNoYXJlZCB3aXRoIGEKKyAqIGh5cGVydmlzb3IsIHNpbmNlIHRoZSBzeXN0ZW0gbWF5IGJlIFNNUCBldmVuIGlmIHRoZSBndWVzdCBrZXJuZWwKKyAqIGlzbid0LgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19zeW5jX2NtcHhjaGcodm9sYXRpbGUgdm9pZCAqcHRyLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIG9sZCwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBuZXcsIGludCBzaXplKQoreworCXVuc2lnbmVkIGxvbmcgcHJldjsKKwlzd2l0Y2ggKHNpemUpIHsKKwljYXNlIDE6CisJCWFzbSB2b2xhdGlsZSgibG9jazsgY21weGNoZ2IgJWIxLCUyIgorCQkJICAgICA6ICI9YSIocHJldikKKwkJCSAgICAgOiAicSIobmV3KSwgIm0iKCpfX3hnKHB0cikpLCAiMCIob2xkKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHByZXY7CisJY2FzZSAyOgorCQlhc20gdm9sYXRpbGUoImxvY2s7IGNtcHhjaGd3ICV3MSwlMiIKKwkJCSAgICAgOiAiPWEiKHByZXYpCisJCQkgICAgIDogInIiKG5ldyksICJtIigqX194ZyhwdHIpKSwgIjAiKG9sZCkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiBwcmV2OworCWNhc2UgNDoKKwkJYXNtIHZvbGF0aWxlKCJsb2NrOyBjbXB4Y2hnbCAlMSwlMiIKKwkJCSAgICAgOiAiPWEiKHByZXYpCisJCQkgICAgIDogInIiKG5ldyksICJtIigqX194ZyhwdHIpKSwgIjAiKG9sZCkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiBwcmV2OworCX0KKwlyZXR1cm4gb2xkOworfQorCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jbXB4Y2hnX2xvY2FsKHZvbGF0aWxlIHZvaWQgKnB0ciwKIAkJCQkJICAgIHVuc2lnbmVkIGxvbmcgb2xkLAogCQkJCQkgICAgdW5zaWduZWQgbG9uZyBuZXcsIGludCBzaXplKQpAQCAtMTM5LDYgKzE3MiwxMCBAQAogCSgoX190eXBlb2ZfXygqKHB0cikpKV9fY21weGNoZ19sb2NhbCgocHRyKSwgKHVuc2lnbmVkIGxvbmcpKG8pLAlcCiAJCQkJCSAgICAgKHVuc2lnbmVkIGxvbmcpKG4pLAlcCiAJCQkJCSAgICAgc2l6ZW9mKCoocHRyKSkpKQorI2RlZmluZSBzeW5jX2NtcHhjaGcocHRyLCBvLCBuKQkJCQkJCVwKKwkoKF9fdHlwZW9mX18oKihwdHIpKSlfX3N5bmNfY21weGNoZygocHRyKSwgKHVuc2lnbmVkIGxvbmcpKG8pLAlcCisJCQkJCSAgICAodW5zaWduZWQgbG9uZykobiksCQlcCisJCQkJCSAgICBzaXplb2YoKihwdHIpKSkpCiAjZGVmaW5lIGNtcHhjaGc2NF9sb2NhbChwdHIsIG8sIG4pCQkJCQlcCiAoewkJCQkJCQkJCVwKIAlCVUlMRF9CVUdfT04oc2l6ZW9mKCoocHRyKSkgIT0gOCk7CQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggYi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCmluZGV4IDBkNjA5YzguLjc1ZWY5NTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaApAQCAtNzQsOCArNzQsOCBAQAogI2RlZmluZSBYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04gKDMqMzIrMTEpIC8qIEludGVsIEFyY2hpdGVjdHVyYWwgUGVyZk1vbiAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9QRUJTCSgzKjMyKzEyKSAgLyogUHJlY2lzZS1FdmVudCBCYXNlZCBTYW1wbGluZyAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9CVFMJCSgzKjMyKzEzKSAgLyogQnJhbmNoIFRyYWNlIFN0b3JlICovCi0vKiAxNCBmcmVlICovCi0vKiAxNSBmcmVlICovCisjZGVmaW5lIFg4Nl9GRUFUVVJFX1NZU0NBTEwzMgkoMyozMisxNCkgIC8qIHN5c2NhbGwgaW4gaWEzMiB1c2Vyc3BhY2UgKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfU1lTRU5URVIzMgkoMyozMisxNSkgIC8qIHN5c2VudGVyIGluIGlhMzIgdXNlcnNwYWNlICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX1JFUF9HT09ECSgzKjMyKzE2KSAvKiByZXAgbWljcm9jb2RlIHdvcmtzIHdlbGwgb24gdGhpcyBDUFUgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfTUZFTkNFX1JEVFNDICgzKjMyKzE3KSAvKiBNZmVuY2Ugc3luY2hyb25pemVzIFJEVFNDICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyAoMyozMisxOCkgLyogTGZlbmNlIHN5bmNocm9uaXplcyBSRFRTQyAqLwpAQCAtMTA2LDYgKzEwNiw3IEBACiAvKiBNb3JlIGV4dGVuZGVkIEFNRCBmbGFnczogQ1BVSUQgbGV2ZWwgMHg4MDAwMDAwMSwgZWN4LCB3b3JkIDYgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfTEFIRl9MTQkoNiozMisgMCkgLyogTEFIRi9TQUhGIGluIGxvbmcgbW9kZSAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9DTVBfTEVHQUNZCSg2KjMyKyAxKSAvKiBJZiB5ZXMgSHlwZXJUaHJlYWRpbmcgbm90IHZhbGlkICovCisjZGVmaW5lIFg4Nl9GRUFUVVJFX0lCUwkJKDYqMzIrIDEwKSAvKiBJbnN0cnVjdGlvbiBCYXNlZCBTYW1wbGluZyAqLwogCiAvKgogICogQXV4aWxpYXJ5IGZsYWdzOiBMaW51eCBkZWZpbmVkIC0gRm9yIGZlYXR1cmVzIHNjYXR0ZXJlZCBpbiB2YXJpb3VzCkBAIC0xNDIsMTEgKzE0MywxMSBAQAogI2RlZmluZSBjbGVhcl9jcHVfY2FwKGMsIGJpdCkJY2xlYXJfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKikoKGMpLT54ODZfY2FwYWJpbGl0eSkpCiAjZGVmaW5lIHNldHVwX2NsZWFyX2NwdV9jYXAoYml0KSBkbyB7IFwKIAljbGVhcl9jcHVfY2FwKCZib290X2NwdV9kYXRhLCBiaXQpOwlcCi0Jc2V0X2JpdChiaXQsIGNsZWFyZWRfY3B1X2NhcHMpOyAJXAorCXNldF9iaXQoYml0LCAodW5zaWduZWQgbG9uZyAqKWNsZWFyZWRfY3B1X2NhcHMpOyBcCiB9IHdoaWxlICgwKQogI2RlZmluZSBzZXR1cF9mb3JjZV9jcHVfY2FwKGJpdCkgZG8geyBcCiAJc2V0X2NwdV9jYXAoJmJvb3RfY3B1X2RhdGEsIGJpdCk7CVwKLQljbGVhcl9iaXQoYml0LCBjbGVhcmVkX2NwdV9jYXBzKTsgCVwKKwljbGVhcl9iaXQoYml0LCAodW5zaWduZWQgbG9uZyAqKWNsZWFyZWRfY3B1X2NhcHMpOyAJXAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBjcHVfaGFzX2ZwdQkJYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0ZQVSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggYi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCmluZGV4IGQyNTI2ZDMuLjc1MTVjMTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaApAQCAtMSw1ICsxLDM5IEBACisjaWZuZGVmIF9YODZfQ1VSUkVOVF9ICisjZGVmaW5lIF9YODZfQ1VSUkVOVF9ICisKICNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGluY2x1ZGUgImN1cnJlbnRfMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgImN1cnJlbnRfNjQuaCIKLSNlbmRpZgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgorCitzdHJ1Y3QgdGFza19zdHJ1Y3Q7CisKK0RFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgY3VycmVudF90YXNrKTsKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfY3VycmVudCh2b2lkKQoreworCXJldHVybiB4ODZfcmVhZF9wZXJjcHUoY3VycmVudF90YXNrKTsKK30KKworI2Vsc2UgLyogWDg2XzMyICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCitzdHJ1Y3QgdGFza19zdHJ1Y3Q7CisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfY3VycmVudCh2b2lkKQoreworCXJldHVybiByZWFkX3BkYShwY3VycmVudCk7Cit9CisKKyNlbHNlIC8qIF9fQVNTRU1CTFlfXyAqLworCisjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CisjZGVmaW5lIEdFVF9DVVJSRU5UKHJlZykgbW92cSAlZ3M6KHBkYV9wY3VycmVudCkscmVnCisKKyNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKworI2VuZGlmIC8qIFg4Nl8zMiAqLworCisjZGVmaW5lIGN1cnJlbnQgZ2V0X2N1cnJlbnQoKQorCisjZW5kaWYgLyogWDg2X0NVUlJFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhZjliZGIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSNpZm5kZWYgX0kzODZfQ1VSUkVOVF9ICi0jZGVmaW5lIF9JMzg2X0NVUlJFTlRfSAotCi0jaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KLSNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+Ci0KLXN0cnVjdCB0YXNrX3N0cnVjdDsKLQotREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBjdXJyZW50X3Rhc2spOwotc3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCi17Ci0JcmV0dXJuIHg4Nl9yZWFkX3BlcmNwdShjdXJyZW50X3Rhc2spOwotfQotCi0jZGVmaW5lIGN1cnJlbnQgZ2V0X2N1cnJlbnQoKQotCi0jZW5kaWYgLyogIShfSTM4Nl9DVVJSRU5UX0gpICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudF82NC5oIGIvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQzNjhlZC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudF82NC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotI2lmbmRlZiBfWDg2XzY0X0NVUlJFTlRfSAotI2RlZmluZSBfWDg2XzY0X0NVUlJFTlRfSAotCi0jaWYgIWRlZmluZWQoX19BU1NFTUJMWV9fKQotc3RydWN0IHRhc2tfc3RydWN0OwotCi0jaW5jbHVkZSA8YXNtL3BkYS5oPgotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ2V0X2N1cnJlbnQodm9pZCkKLXsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQgPSByZWFkX3BkYShwY3VycmVudCk7Ci0JcmV0dXJuIHQ7Ci19Ci0KLSNkZWZpbmUgY3VycmVudCBnZXRfY3VycmVudCgpCi0KLSNlbHNlCi0KLSNpZm5kZWYgQVNNX09GRlNFVF9ICi0jaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+Ci0jZW5kaWYKLQotI2RlZmluZSBHRVRfQ1VSUkVOVChyZWcpIG1vdnEgJWdzOihwZGFfcGN1cnJlbnQpLHJlZwotCi0jZW5kaWYKLQotI2VuZGlmIC8qICEoX1g4Nl82NF9DVVJSRU5UX0gpICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZGVzYy5oIGIvaW5jbHVkZS9hc20teDg2L2Rlc2MuaAppbmRleCAyNjhhMDEyLi5hNDRjNGRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmgKQEAgLTI5LDExICsyOSwxNyBAQAogZXh0ZXJuIHN0cnVjdCBkZXNjX3B0ciBpZHRfZGVzY3I7CiBleHRlcm4gZ2F0ZV9kZXNjIGlkdF90YWJsZVtdOwogCitzdHJ1Y3QgZ2R0X3BhZ2UgeworCXN0cnVjdCBkZXNjX3N0cnVjdCBnZHRbR0RUX0VOVFJJRVNdOworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKFBBR0VfU0laRSkpKTsKK0RFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgZ2R0X3BhZ2UsIGdkdF9wYWdlKTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdldF9jcHVfZ2R0X3RhYmxlKHVuc2lnbmVkIGludCBjcHUpCit7CisJcmV0dXJuIHBlcl9jcHUoZ2R0X3BhZ2UsIGNwdSkuZ2R0OworfQorCiAjaWZkZWYgQ09ORklHX1g4Nl82NAotZXh0ZXJuIHN0cnVjdCBkZXNjX3N0cnVjdCBjcHVfZ2R0X3RhYmxlW0dEVF9FTlRSSUVTXTsKLWV4dGVybiBzdHJ1Y3QgZGVzY19wdHIgY3B1X2dkdF9kZXNjcltdOwotLyogdGhlIGNwdSBnZHQgYWNjZXNzb3IgKi8KLSNkZWZpbmUgZ2V0X2NwdV9nZHRfdGFibGUoeCkgKChzdHJ1Y3QgZGVzY19zdHJ1Y3QgKiljcHVfZ2R0X2Rlc2NyW3hdLmFkZHJlc3MpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWNrX2dhdGUoZ2F0ZV9kZXNjICpnYXRlLCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBsb25nIGZ1bmMsCiAJCQkgICAgIHVuc2lnbmVkIGRwbCwgdW5zaWduZWQgaXN0LCB1bnNpZ25lZCBzZWcpCkBAIC01MSwxNiArNTcsNiBAQAogfQogCiAjZWxzZQotc3RydWN0IGdkdF9wYWdlIHsKLQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgZ2R0W0dEVF9FTlRSSUVTXTsKLX0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChQQUdFX1NJWkUpKSk7Ci1ERUNMQVJFX1BFUl9DUFUoc3RydWN0IGdkdF9wYWdlLCBnZHRfcGFnZSk7Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0ICpnZXRfY3B1X2dkdF90YWJsZSh1bnNpZ25lZCBpbnQgY3B1KQotewotCXJldHVybiBwZXJfY3B1KGdkdF9wYWdlLCBjcHUpLmdkdDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHBhY2tfZ2F0ZShnYXRlX2Rlc2MgKmdhdGUsIHVuc2lnbmVkIGNoYXIgdHlwZSwKIAkJCSAgICAgdW5zaWduZWQgbG9uZyBiYXNlLCB1bnNpZ25lZCBkcGwsIHVuc2lnbmVkIGZsYWdzLAogCQkJICAgICB1bnNpZ25lZCBzaG9ydCBzZWcpCkBAIC0xOTIsOCArMTg4LDggQEAKIAkJdW5zaWduZWQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCQlsZHRfZGVzYyBsZHQ7CiAKLQkJc2V0X3Rzc2xkdF9kZXNjcmlwdG9yKCZsZHQsICh1bnNpZ25lZCBsb25nKWFkZHIsCi0JCQkJICAgICAgREVTQ19MRFQsIGVudHJpZXMgKiBzaXplb2YobGR0KSAtIDEpOworCQlzZXRfdHNzbGR0X2Rlc2NyaXB0b3IoJmxkdCwgKHVuc2lnbmVkIGxvbmcpYWRkciwgREVTQ19MRFQsCisJCQkJICAgICAgZW50cmllcyAqIExEVF9FTlRSWV9TSVpFIC0gMSk7CiAJCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF90YWJsZShjcHUpLCBHRFRfRU5UUllfTERULAogCQkJCSZsZHQsIERFU0NfTERUKTsKIAkJYXNtIHZvbGF0aWxlKCJsbGR0ICV3MCI6OiJxIiAoR0RUX0VOVFJZX0xEVCo4KSk7CkBAIC0zMTEsNiArMzA3LDI4IEBACiAJX3NldF9nYXRlKG4sIEdBVEVfSU5URVJSVVBULCBhZGRyLCAwLCAwLCBfX0tFUk5FTF9DUyk7CiB9CiAKKyNkZWZpbmUgU1lTX1ZFQ1RPUl9GUkVFCQkwCisjZGVmaW5lIFNZU19WRUNUT1JfQUxMT0NFRAkxCisKK2V4dGVybiBpbnQgZmlyc3Rfc3lzdGVtX3ZlY3RvcjsKK2V4dGVybiBjaGFyIHN5c3RlbV92ZWN0b3JzW107CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhbGxvY19zeXN0ZW1fdmVjdG9yKGludCB2ZWN0b3IpCit7CisJaWYgKHN5c3RlbV92ZWN0b3JzW3ZlY3Rvcl0gPT0gU1lTX1ZFQ1RPUl9GUkVFKSB7CisJCXN5c3RlbV92ZWN0b3JzW3ZlY3Rvcl0gPSBTWVNfVkVDVE9SX0FMTE9DRUQ7CisJCWlmIChmaXJzdF9zeXN0ZW1fdmVjdG9yID4gdmVjdG9yKQorCQkJZmlyc3Rfc3lzdGVtX3ZlY3RvciA9IHZlY3RvcjsKKwl9IGVsc2UKKwkJQlVHKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhbGxvY19pbnRyX2dhdGUodW5zaWduZWQgaW50IG4sIHZvaWQgKmFkZHIpCit7CisJYWxsb2Nfc3lzdGVtX3ZlY3RvcihuKTsKKwlzZXRfaW50cl9nYXRlKG4sIGFkZHIpOworfQorCiAvKgogICogVGhpcyByb3V0aW5lIHNldHMgdXAgYW4gaW50ZXJydXB0IGdhdGUgYXQgZGlyZWN0b3J5IHByaXZpbGVnZSBsZXZlbCAzLgogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZGVzY19kZWZzLmggYi9pbmNsdWRlL2FzbS14ODYvZGVzY19kZWZzLmgKaW5kZXggZWNjYjRlYS4uZjdiYWNmMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2Rlc2NfZGVmcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9kZXNjX2RlZnMuaApAQCAtNzUsMTAgKzc1LDE0IEBACiB0eXBlZGVmIHN0cnVjdCBnYXRlX3N0cnVjdDY0IGdhdGVfZGVzYzsKIHR5cGVkZWYgc3RydWN0IGxkdHRzc19kZXNjNjQgbGR0X2Rlc2M7CiB0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYzY0IHRzc19kZXNjOworI2RlZmluZSBnYXRlX29mZnNldChnKSAoKGcpLm9mZnNldF9sb3cgfCAoKHVuc2lnbmVkIGxvbmcpKGcpLm9mZnNldF9taWRkbGUgPDwgMTYpIHwgKCh1bnNpZ25lZCBsb25nKShnKS5vZmZzZXRfaGlnaCA8PCAzMikpCisjZGVmaW5lIGdhdGVfc2VnbWVudChnKSAoKGcpLnNlZ21lbnQpCiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgZGVzY19zdHJ1Y3QgZ2F0ZV9kZXNjOwogdHlwZWRlZiBzdHJ1Y3QgZGVzY19zdHJ1Y3QgbGR0X2Rlc2M7CiB0eXBlZGVmIHN0cnVjdCBkZXNjX3N0cnVjdCB0c3NfZGVzYzsKKyNkZWZpbmUgZ2F0ZV9vZmZzZXQoZykJCSgoKGcpLmIgJiAweGZmZmYwMDAwKSB8ICgoZykuYSAmIDB4MDAwMGZmZmYpKQorI2RlZmluZSBnYXRlX3NlZ21lbnQoZykJCSgoZykuYSA+PiAxNikKICNlbmRpZgogCiBzdHJ1Y3QgZGVzY19wdHIgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2RtaS5oIGIvaW5jbHVkZS9hc20teDg2L2RtaS5oCmluZGV4IDRlZGY3NTEuLjU4YTg2NTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kbWkuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZG1pLmgKQEAgLTMsMTIgKzMsNiBAQAogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0KLSNkZWZpbmUgZG1pX2FsbG9jIGFsbG9jX2Jvb3RtZW0KLQotI2Vsc2UgLyogQ09ORklHX1g4Nl8zMiAqLwotCiAjZGVmaW5lIERNSV9NQVhfREFUQSAyMDQ4CiAKIGV4dGVybiBpbnQgZG1pX2FsbG9jX2luZGV4OwpAQCAtMjUsOCArMTksNiBAQAogCXJldHVybiBkbWlfYWxsb2NfZGF0YSArIGlkeDsKIH0KIAotI2VuZGlmCi0KIC8qIFVzZSBlYXJseSBJTyBtYXBwaW5ncyBmb3IgRE1JIGJlY2F1c2UgaXQncyBpbml0aWFsaXplZCBlYXJseSAqLwogI2RlZmluZSBkbWlfaW9yZW1hcCBlYXJseV9pb3JlbWFwCiAjZGVmaW5lIGRtaV9pb3VubWFwIGVhcmx5X2lvdW5tYXAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjIuaAppbmRleCBiM2NiYjBjLi43MzhiYjlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2R3YXJmMi5oCkBAIC0xLDUgKzEsNjEgQEAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGluY2x1ZGUgImR3YXJmMl8zMi5oIgorI2lmbmRlZiBfRFdBUkYyX0gKKyNkZWZpbmUgX0RXQVJGMl9ICisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjd2FybmluZyAiYXNtL2R3YXJmMi5oIHNob3VsZCBiZSBvbmx5IGluY2x1ZGVkIGluIHB1cmUgYXNzZW1ibHkgZmlsZXMiCisjZW5kaWYKKworLyoKKyAgIE1hY3JvcyBmb3IgZHdhcmYyIENGSSB1bndpbmQgdGFibGUgZW50cmllcy4KKyAgIFNlZSAiYXMuaW5mbyIgZm9yIGRldGFpbHMgb24gdGhlc2UgcHNldWRvIG9wcy4gVW5mb3J0dW5hdGVseQorICAgdGhleSBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdmVyeSBuZXcgYmludXRpbHMsIHNvIGRlZmluZSB0aGVtCisgICBhd2F5IGZvciBvbGRlciB2ZXJzaW9uLgorICovCisKKyNpZmRlZiBDT05GSUdfQVNfQ0ZJCisKKyNkZWZpbmUgQ0ZJX1NUQVJUUFJPQyAuY2ZpX3N0YXJ0cHJvYworI2RlZmluZSBDRklfRU5EUFJPQyAuY2ZpX2VuZHByb2MKKyNkZWZpbmUgQ0ZJX0RFRl9DRkEgLmNmaV9kZWZfY2ZhCisjZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSIC5jZmlfZGVmX2NmYV9yZWdpc3RlcgorI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQgLmNmaV9kZWZfY2ZhX29mZnNldAorI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQgLmNmaV9hZGp1c3RfY2ZhX29mZnNldAorI2RlZmluZSBDRklfT0ZGU0VUIC5jZmlfb2Zmc2V0CisjZGVmaW5lIENGSV9SRUxfT0ZGU0VUIC5jZmlfcmVsX29mZnNldAorI2RlZmluZSBDRklfUkVHSVNURVIgLmNmaV9yZWdpc3RlcgorI2RlZmluZSBDRklfUkVTVE9SRSAuY2ZpX3Jlc3RvcmUKKyNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFIC5jZmlfcmVtZW1iZXJfc3RhdGUKKyNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUgLmNmaV9yZXN0b3JlX3N0YXRlCisjZGVmaW5lIENGSV9VTkRFRklORUQgLmNmaV91bmRlZmluZWQKKworI2lmZGVmIENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FCisjZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUgLmNmaV9zaWduYWxfZnJhbWUKICNlbHNlCi0jIGluY2x1ZGUgImR3YXJmMl82NC5oIgorI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FCisjZW5kaWYKKworI2Vsc2UKKworLyogRHVlIHRvIHRoZSBzdHJ1Y3R1cmUgb2YgcHJlLWV4aXNpdGluZyBjb2RlLCBkb24ndCB1c2UgYXNzZW1ibGVyIGxpbmUKKyAgIGNvbW1lbnQgY2hhcmFjdGVyICMgdG8gaWdub3JlIHRoZSBhcmd1bWVudHMuIEluc3RlYWQsIHVzZSBhIGR1bW15IG1hY3JvLiAqLworLm1hY3JvIGNmaV9pZ25vcmUgYT0wLCBiPTAsIGM9MCwgZD0wCisuZW5kbQorCisjZGVmaW5lIENGSV9TVEFSVFBST0MJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfRU5EUFJPQwljZmlfaWdub3JlCisjZGVmaW5lIENGSV9ERUZfQ0ZBCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfT0ZGU0VUCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfUkVHSVNURVIJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfUkVTVE9SRQljZmlfaWdub3JlCisjZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURSBjZmlfaWdub3JlCisjZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFIGNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1VOREVGSU5FRCBjZmlfaWdub3JlCisjZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUgY2ZpX2lnbm9yZQorCisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkNjYzOTguLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMl8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotI2lmbmRlZiBfRFdBUkYyX0gKLSNkZWZpbmUgX0RXQVJGMl9ICi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jd2FybmluZyAiYXNtL2R3YXJmMi5oIHNob3VsZCBiZSBvbmx5IGluY2x1ZGVkIGluIHB1cmUgYXNzZW1ibHkgZmlsZXMiCi0jZW5kaWYKLQotLyoKLSAgIE1hY3JvcyBmb3IgZHdhcmYyIENGSSB1bndpbmQgdGFibGUgZW50cmllcy4KLSAgIFNlZSAiYXMuaW5mbyIgZm9yIGRldGFpbHMgb24gdGhlc2UgcHNldWRvIG9wcy4gVW5mb3J0dW5hdGVseQotICAgdGhleSBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdmVyeSBuZXcgYmludXRpbHMsIHNvIGRlZmluZSB0aGVtCi0gICBhd2F5IGZvciBvbGRlciB2ZXJzaW9uLgotICovCi0KLSNpZmRlZiBDT05GSUdfVU5XSU5EX0lORk8KLQotI2RlZmluZSBDRklfU1RBUlRQUk9DIC5jZmlfc3RhcnRwcm9jCi0jZGVmaW5lIENGSV9FTkRQUk9DIC5jZmlfZW5kcHJvYwotI2RlZmluZSBDRklfREVGX0NGQSAuY2ZpX2RlZl9jZmEKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIgLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVCAuY2ZpX2RlZl9jZmFfb2Zmc2V0Ci0jZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVCAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0Ci0jZGVmaW5lIENGSV9PRkZTRVQgLmNmaV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQgLmNmaV9yZWxfb2Zmc2V0Ci0jZGVmaW5lIENGSV9SRUdJU1RFUiAuY2ZpX3JlZ2lzdGVyCi0jZGVmaW5lIENGSV9SRVNUT1JFIC5jZmlfcmVzdG9yZQotI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUgLmNmaV9yZW1lbWJlcl9zdGF0ZQotI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURSAuY2ZpX3Jlc3RvcmVfc3RhdGUKLSNkZWZpbmUgQ0ZJX1VOREVGSU5FRCAuY2ZpX3VuZGVmaW5lZAotCi0jaWZkZWYgQ09ORklHX0FTX0NGSV9TSUdOQUxfRlJBTUUKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRSAuY2ZpX3NpZ25hbF9mcmFtZQotI2Vsc2UKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRQotI2VuZGlmCi0KLSNlbHNlCi0KLS8qIER1ZSB0byB0aGUgc3RydWN0dXJlIG9mIHByZS1leGlzaXRpbmcgY29kZSwgZG9uJ3QgdXNlIGFzc2VtYmxlciBsaW5lCi0gICBjb21tZW50IGNoYXJhY3RlciAjIHRvIGlnbm9yZSB0aGUgYXJndW1lbnRzLiBJbnN0ZWFkLCB1c2UgYSBkdW1teSBtYWNyby4gKi8KLS5tYWNybyBpZ25vcmUgYT0wLCBiPTAsIGM9MCwgZD0wCi0uZW5kbQotCi0jZGVmaW5lIENGSV9TVEFSVFBST0MJaWdub3JlCi0jZGVmaW5lIENGSV9FTkRQUk9DCWlnbm9yZQotI2RlZmluZSBDRklfREVGX0NGQQlpZ25vcmUKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIJaWdub3JlCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVAlpZ25vcmUKLSNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUCWlnbm9yZQotI2RlZmluZSBDRklfT0ZGU0VUCWlnbm9yZQotI2RlZmluZSBDRklfUkVMX09GRlNFVAlpZ25vcmUKLSNkZWZpbmUgQ0ZJX1JFR0lTVEVSCWlnbm9yZQotI2RlZmluZSBDRklfUkVTVE9SRQlpZ25vcmUKLSNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFIGlnbm9yZQotI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURSBpZ25vcmUKLSNkZWZpbmUgQ0ZJX1VOREVGSU5FRCBpZ25vcmUKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRSBpZ25vcmUKLQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMl82NC5oIGIvaW5jbHVkZS9hc20teDg2L2R3YXJmMl82NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTUwNTE5Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfNjQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLSNpZm5kZWYgX0RXQVJGMl9ICi0jZGVmaW5lIF9EV0FSRjJfSCAxCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jd2FybmluZyAiYXNtL2R3YXJmMi5oIHNob3VsZCBiZSBvbmx5IGluY2x1ZGVkIGluIHB1cmUgYXNzZW1ibHkgZmlsZXMiCi0jZW5kaWYKLQotLyoKLSAgIE1hY3JvcyBmb3IgZHdhcmYyIENGSSB1bndpbmQgdGFibGUgZW50cmllcy4KLSAgIFNlZSAiYXMuaW5mbyIgZm9yIGRldGFpbHMgb24gdGhlc2UgcHNldWRvIG9wcy4gVW5mb3J0dW5hdGVseQotICAgdGhleSBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdmVyeSBuZXcgYmludXRpbHMsIHNvIGRlZmluZSB0aGVtCi0gICBhd2F5IGZvciBvbGRlciB2ZXJzaW9uLgotICovCi0KLSNpZmRlZiBDT05GSUdfQVNfQ0ZJCi0KLSNkZWZpbmUgQ0ZJX1NUQVJUUFJPQyAuY2ZpX3N0YXJ0cHJvYwotI2RlZmluZSBDRklfRU5EUFJPQyAuY2ZpX2VuZHByb2MKLSNkZWZpbmUgQ0ZJX0RFRl9DRkEgLmNmaV9kZWZfY2ZhCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSIC5jZmlfZGVmX2NmYV9yZWdpc3RlcgotI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQgLmNmaV9kZWZfY2ZhX29mZnNldAotI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQgLmNmaV9hZGp1c3RfY2ZhX29mZnNldAotI2RlZmluZSBDRklfT0ZGU0VUIC5jZmlfb2Zmc2V0Ci0jZGVmaW5lIENGSV9SRUxfT0ZGU0VUIC5jZmlfcmVsX29mZnNldAotI2RlZmluZSBDRklfUkVHSVNURVIgLmNmaV9yZWdpc3RlcgotI2RlZmluZSBDRklfUkVTVE9SRSAuY2ZpX3Jlc3RvcmUKLSNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFIC5jZmlfcmVtZW1iZXJfc3RhdGUKLSNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUgLmNmaV9yZXN0b3JlX3N0YXRlCi0jZGVmaW5lIENGSV9VTkRFRklORUQgLmNmaV91bmRlZmluZWQKLSNpZmRlZiBDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFNRQotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FIC5jZmlfc2lnbmFsX2ZyYW1lCi0jZWxzZQotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FCi0jZW5kaWYKLQotI2Vsc2UKLQotLyogdXNlIGFzc2VtYmxlciBsaW5lIGNvbW1lbnQgY2hhcmFjdGVyICMgdG8gaWdub3JlIHRoZSBhcmd1bWVudHMuICovCi0jZGVmaW5lIENGSV9TVEFSVFBST0MJIwotI2RlZmluZSBDRklfRU5EUFJPQwkjCi0jZGVmaW5lIENGSV9ERUZfQ0ZBCSMKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIJIwotI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQJIwotI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQJIwotI2RlZmluZSBDRklfT0ZGU0VUCSMKLSNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQJIwotI2RlZmluZSBDRklfUkVHSVNURVIJIwotI2RlZmluZSBDRklfUkVTVE9SRQkjCi0jZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURQkjCi0jZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFCSMKLSNkZWZpbmUgQ0ZJX1VOREVGSU5FRAkjCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUJIwotCi0jZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZTgyMC5oIGIvaW5jbHVkZS9hc20teDg2L2U4MjAuaAppbmRleCA3MDA0MjUxLi4zM2U3OTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZTgyMC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9lODIwLmgKQEAgLTIsNiArMiw0MSBAQAogI2RlZmluZSBfX0FTTV9FODIwX0gKICNkZWZpbmUgRTgyME1BUAkweDJkMAkJLyogb3VyIG1hcCAqLwogI2RlZmluZSBFODIwTUFYCTEyOAkJLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gRTgyME1BUCAqLworCisvKgorICogTGVnYWN5IEU4MjAgQklPUyBsaW1pdHMgdXMgdG8gMTI4IChFODIwTUFYKSBub2RlcyBkdWUgdG8gdGhlCisgKiBjb25zdHJhaW5lZCBzcGFjZSBpbiB0aGUgemVyb3BhZ2UuICBJZiB3ZSBoYXZlIG1vcmUgbm9kZXMgdGhhbgorICogdGhhdCwgYW5kIGlmIHdlJ3ZlIGJvb3RlZCBvZmYgRUZJIGZpcm13YXJlLCB0aGVuIHRoZSBFRkkgdGFibGVzCisgKiBwYXNzZWQgdXMgZnJvbSB0aGUgRUZJIGZpcm13YXJlIGNhbiBsaXN0IG1vcmUgbm9kZXMuICBTaXplIG91cgorICogaW50ZXJuYWwgbWVtb3J5IG1hcCB0YWJsZXMgdG8gaGF2ZSByb29tIGZvciB0aGVzZSBhZGRpdGlvbmFsCisgKiBub2RlcywgYmFzZWQgb24gdXAgdG8gdGhyZWUgZW50cmllcyBwZXIgbm9kZSBmb3Igd2hpY2ggdGhlCisgKiBrZXJuZWwgd2FzIGJ1aWx0OiBNQVhfTlVNTk9ERVMgPT0gKDEgPDwgQ09ORklHX05PREVTX1NISUZUKSwKKyAqIHBsdXMgRTgyME1BWCwgYWxsb3dpbmcgc3BhY2UgZm9yIHRoZSBwb3NzaWJsZSBkdXBsaWNhdGUgRTgyMAorICogZW50cmllcyB0aGF0IG1pZ2h0IG5lZWQgcm9vbSBpbiB0aGUgc2FtZSBhcnJheXMsIHByaW9yIHRvIHRoZQorICogY2FsbCB0byBzYW5pdGl6ZV9lODIwX21hcCgpIHRvIHJlbW92ZSBkdXBsaWNhdGVzLiAgVGhlIGFsbG93YW5jZQorICogb2YgdGhyZWUgbWVtb3J5IG1hcCBlbnRyaWVzIHBlciBub2RlIGlzICJlbm91Z2giIGVudHJpZXMgZm9yCisgKiB0aGUgaW5pdGlhbCBoYXJkd2FyZSBwbGF0Zm9ybSBtb3RpdmF0aW5nIHRoaXMgbWVjaGFuaXNtIHRvIG1ha2UKKyAqIHVzZSBvZiBhZGRpdGlvbmFsIEVGSSBtYXAgZW50cmllcy4gIEZ1dHVyZSBwbGF0Zm9ybXMgbWF5IHdhbnQKKyAqIHRvIGFsbG93IG1vcmUgdGhhbiB0aHJlZSBlbnRyaWVzIHBlciBub2RlIG9yIG90aGVyd2lzZSByZWZpbmUKKyAqIHRoaXMgc2l6ZS4KKyAqLworCisvKgorICogT2RkOiAnbWFrZSBoZWFkZXJzX2NoZWNrJyBjb21wbGFpbnMgYWJvdXQgbnVtYS5oIGlmIEkgdHJ5CisgKiB0byBjb2xsYXBzZSB0aGUgbmV4dCB0d28gI2lmZGVmIGxpbmVzIHRvIGEgc2luZ2xlIGxpbmU6CisgKgkjaWYgZGVmaW5lZChfX0tFUk5FTF9fKSAmJiBkZWZpbmVkKENPTkZJR19FRkkpCisgKi8KKyNpZmRlZiBfX0tFUk5FTF9fCisjaWZkZWYgQ09ORklHX0VGSQorI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KKyNkZWZpbmUgRTgyMF9YX01BWCAoRTgyME1BWCArIDMgKiBNQVhfTlVNTk9ERVMpCisjZWxzZQkvKiAhIENPTkZJR19FRkkgKi8KKyNkZWZpbmUgRTgyMF9YX01BWCBFODIwTUFYCisjZW5kaWYKKyNlbHNlCS8qICEgX19LRVJORUxfXyAqLworI2RlZmluZSBFODIwX1hfTUFYIEU4MjBNQVgKKyNlbmRpZgorCiAjZGVmaW5lIEU4MjBOUgkweDFlOAkJLyogIyBlbnRyaWVzIGluIEU4MjBNQVAgKi8KIAogI2RlZmluZSBFODIwX1JBTQkxCkBAIC05LDYgKzQ0LDkgQEAKICNkZWZpbmUgRTgyMF9BQ1BJCTMKICNkZWZpbmUgRTgyMF9OVlMJNAogCisvKiByZXNlcnZlZCBSQU0gdXNlZCBieSBrZXJuZWwgaXRzZWxmICovCisjZGVmaW5lIEU4MjBfUkVTRVJWRURfS0VSTiAgICAgICAgMTI4CisKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBzdHJ1Y3QgZTgyMGVudHJ5IHsKIAlfX3U2NCBhZGRyOwkvKiBzdGFydCBvZiBtZW1vcnkgc2VnbWVudCAqLwpAQCAtMTgsMjIgKzU2LDc5IEBACiAKIHN0cnVjdCBlODIwbWFwIHsKIAlfX3UzMiBucl9tYXA7Ci0Jc3RydWN0IGU4MjBlbnRyeSBtYXBbRTgyME1BWF07CisJc3RydWN0IGU4MjBlbnRyeSBtYXBbRTgyMF9YX01BWF07CiB9OworCisvKiBzZWUgY29tbWVudCBpbiBhcmNoL3g4Ni9rZXJuZWwvZTgyMC5jICovCitleHRlcm4gc3RydWN0IGU4MjBtYXAgZTgyMDsKK2V4dGVybiBzdHJ1Y3QgZTgyMG1hcCBlODIwX3NhdmVkOworCitleHRlcm4gaW50IGU4MjBfYW55X21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpOworZXh0ZXJuIGludCBlODIwX2FsbF9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKTsKK2V4dGVybiB2b2lkIGU4MjBfYWRkX3JlZ2lvbih1NjQgc3RhcnQsIHU2NCBzaXplLCBpbnQgdHlwZSk7CitleHRlcm4gdm9pZCBlODIwX3ByaW50X21hcChjaGFyICp3aG8pOworZXh0ZXJuIGludAorc2FuaXRpemVfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG1heF9ucl9tYXAsIGludCAqcG5yX21hcCk7CitleHRlcm4gdTY0IGU4MjBfdXBkYXRlX3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAorCQkJICAgICAgIHVuc2lnbmVkIG5ld190eXBlKTsKK2V4dGVybiB1NjQgZTgyMF9yZW1vdmVfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCisJCQkgICAgIGludCBjaGVja3R5cGUpOworZXh0ZXJuIHZvaWQgdXBkYXRlX2U4MjAodm9pZCk7CitleHRlcm4gdm9pZCBlODIwX3NldHVwX2dhcCh2b2lkKTsKK2V4dGVybiBpbnQgZTgyMF9zZWFyY2hfZ2FwKHVuc2lnbmVkIGxvbmcgKmdhcHN0YXJ0LCB1bnNpZ25lZCBsb25nICpnYXBzaXplLAorCQkJdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyLCB1bnNpZ25lZCBsb25nIGxvbmcgZW5kX2FkZHIpOworc3RydWN0IHNldHVwX2RhdGE7CitleHRlcm4gdm9pZCBwYXJzZV9lODIwX2V4dChzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YSwgdW5zaWduZWQgbG9uZyBwYV9kYXRhKTsKKworI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgfHwgXAorCShkZWZpbmVkKENPTkZJR19YODZfMzIpICYmIGRlZmluZWQoQ09ORklHX0hJQkVSTkFUSU9OKSkKK2V4dGVybiB2b2lkIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh1bnNpZ25lZCBsb25nIGxpbWl0X3Bmbik7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh1bnNpZ25lZCBsb25nIGxpbWl0X3BmbikKK3sKK30KKyNlbmRpZgorCitleHRlcm4gdW5zaWduZWQgbG9uZyBlbmRfdXNlcl9wZm47CisKK2V4dGVybiB1NjQgZmluZF9lODIwX2FyZWEodTY0IHN0YXJ0LCB1NjQgZW5kLCB1NjQgc2l6ZSwgdTY0IGFsaWduKTsKK2V4dGVybiB1NjQgZmluZF9lODIwX2FyZWFfc2l6ZSh1NjQgc3RhcnQsIHU2NCAqc2l6ZXAsIHU2NCBhbGlnbik7CitleHRlcm4gdm9pZCByZXNlcnZlX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCwgY2hhciAqbmFtZSk7CitleHRlcm4gdm9pZCByZXNlcnZlX2Vhcmx5X292ZXJsYXBfb2sodTY0IHN0YXJ0LCB1NjQgZW5kLCBjaGFyICpuYW1lKTsKK2V4dGVybiB2b2lkIGZyZWVfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kKTsKK2V4dGVybiB2b2lkIGVhcmx5X3Jlc190b19ib290bWVtKHU2NCBzdGFydCwgdTY0IGVuZCk7CitleHRlcm4gdTY0IGVhcmx5X3Jlc2VydmVfZTgyMCh1NjQgc3RhcnR0LCB1NjQgc2l6ZXQsIHU2NCBhbGlnbik7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIGU4MjBfZW5kX29mX3JhbV9wZm4odm9pZCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBlODIwX2VuZF9vZl9sb3dfcmFtX3Bmbih2b2lkKTsKK2V4dGVybiBpbnQgZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oY29uc3Qgc3RydWN0IGU4MjBlbnRyeSAqZWksCisJCQkJICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nICplaV9zdGFydHBmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX2VuZHBmbik7CitleHRlcm4gdm9pZCBlODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKK2V4dGVybiB1NjQgZTgyMF9ob2xlX3NpemUodTY0IHN0YXJ0LCB1NjQgZW5kKTsKK2V4dGVybiB2b2lkIGZpbmlzaF9lODIwX3BhcnNpbmcodm9pZCk7CitleHRlcm4gdm9pZCBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKHZvaWQpOworZXh0ZXJuIHZvaWQgc2V0dXBfbWVtb3J5X21hcCh2b2lkKTsKK2V4dGVybiBjaGFyICpkZWZhdWx0X21hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpOworZXh0ZXJuIGNoYXIgKm1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpOworZXh0ZXJuIGNoYXIgKm1lbW9yeV9zZXR1cCh2b2lkKTsKKwogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogCiAjZGVmaW5lIElTQV9TVEFSVF9BRERSRVNTCTB4YTAwMDAKICNkZWZpbmUgSVNBX0VORF9BRERSRVNTCQkweDEwMDAwMAorI2RlZmluZSBpc19JU0FfcmFuZ2UocywgZSkgKChzKSA+PSBJU0FfU1RBUlRfQUREUkVTUyAmJiAoZSkgPCBJU0FfRU5EX0FERFJFU1MpCiAKICNkZWZpbmUgQklPU19CRUdJTgkJMHgwMDBhMDAwMAogI2RlZmluZSBCSU9TX0VORAkJMHgwMDEwMDAwMAogCiAjaWZkZWYgX19LRVJORUxfXwotI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAiZTgyMF8zMi5oIgotI2Vsc2UKLSMgaW5jbHVkZSAiZTgyMF82NC5oIgotI2VuZGlmCisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisKKyNkZWZpbmUgSElHSF9NRU1PUlkJKDEwMjQqMTAyNCkKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNlbmRpZiAgLyogX19BU01fRTgyMF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZTgyMF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2U4MjBfMzIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTlmN2M2ZS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZTgyMF8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zIGZvciB0aGUgaW50IDE1LCBheD1lODIwIG1lbW9yeSBtYXAKLSAqIHNjaGVtZS4KLSAqCi0gKiBJbiBhIG51dHNoZWxsLCBhcmNoL2kzODYvYm9vdC9zZXR1cC5TIHBvcHVsYXRlcyBhIHNjcmF0Y2ggdGFibGUKLSAqIGluIHRoZSBlbXB0eV96ZXJvX2Jsb2NrIHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIHVzYWJsZSBhZGRyZXNzL3NpemUKLSAqIGR1cGxlcy4gICBJbiBhcmNoL2kzODYva2VybmVsL3NldHVwLmMsIHRoaXMgaW5mb3JtYXRpb24gaXMKLSAqIHRyYW5zZmVycmVkIGludG8gdGhlIGU4MjBtYXAsIGFuZCBpbiBhcmNoL2kzODYvbW0vaW5pdC5jLCB0aGF0Ci0gKiBuZXcgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBtYXJrIHBhZ2VzIHJlc2VydmVkIG9yIG5vdC4KLSAqCi0gKi8KLSNpZm5kZWYgX19FODIwX0hFQURFUgotI2RlZmluZSBfX0U4MjBfSEVBREVSCi0KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLQotI2RlZmluZSBISUdIX01FTU9SWQkoMTAyNCoxMDI0KQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotCi1leHRlcm4gc3RydWN0IGU4MjBtYXAgZTgyMDsKLWV4dGVybiB2b2lkIHVwZGF0ZV9lODIwKHZvaWQpOwotCi1leHRlcm4gaW50IGU4MjBfYWxsX21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgIHVuc2lnbmVkIHR5cGUpOwotZXh0ZXJuIGludCBlODIwX2FueV9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKTsKLWV4dGVybiB2b2lkIHByb3BhZ2F0ZV9lODIwX21hcCh2b2lkKTsKLWV4dGVybiB2b2lkIHJlZ2lzdGVyX2Jvb3RtZW1fbG93X3BhZ2VzKHVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm4pOwotZXh0ZXJuIHZvaWQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIGludCB0eXBlKTsKLWV4dGVybiB2b2lkIHVwZGF0ZV9tZW1vcnlfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCi0JCQkJdW5zaWduZWQgbmV3X3R5cGUpOwotZXh0ZXJuIHZvaWQgZTgyMF9yZWdpc3Rlcl9tZW1vcnkodm9pZCk7Ci1leHRlcm4gdm9pZCBsaW1pdF9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKLWV4dGVybiB2b2lkIHByaW50X21lbW9yeV9tYXAoY2hhciAqd2hvKTsKLWV4dGVybiB2b2lkIGluaXRfaW9tZW1fcmVzb3VyY2VzKHN0cnVjdCByZXNvdXJjZSAqY29kZV9yZXNvdXJjZSwKLQkJCQkgc3RydWN0IHJlc291cmNlICpkYXRhX3Jlc291cmNlLAotCQkJCSBzdHJ1Y3QgcmVzb3VyY2UgKmJzc19yZXNvdXJjZSk7Ci0KLSNpZiBkZWZpbmVkKENPTkZJR19QTSkgJiYgZGVmaW5lZChDT05GSUdfSElCRVJOQVRJT04pCi1leHRlcm4gdm9pZCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModm9pZCk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh2b2lkKQotewotfQotI2VuZGlmCi0KLQotI2VuZGlmLyohX19BU1NFTUJMWV9fKi8KLSNlbmRpZi8qX19FODIwX0hFQURFUiovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZTgyMF82NC5oIGIvaW5jbHVkZS9hc20teDg2L2U4MjBfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFjNGQ2OC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZTgyMF82NC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zIGZvciB0aGUgaW50IDE1LCBheD1lODIwIG1lbW9yeSBtYXAKLSAqIHNjaGVtZS4KLSAqCi0gKiBJbiBhIG51dHNoZWxsLCBzZXR1cC5TIHBvcHVsYXRlcyBhIHNjcmF0Y2ggdGFibGUgaW4gdGhlCi0gKiBlbXB0eV96ZXJvX2Jsb2NrIHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIHVzYWJsZSBhZGRyZXNzL3NpemUKLSAqIGR1cGxlcy4gIHNldHVwLmMsIHRoaXMgaW5mb3JtYXRpb24gaXMgdHJhbnNmZXJyZWQgaW50byB0aGUgZTgyMG1hcCwKLSAqIGFuZCBpbiBpbml0LmMvbnVtYS5jLCB0aGF0IG5ldyBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIG1hcmsgcGFnZXMKLSAqIHJlc2VydmVkIG9yIG5vdC4KLSAqLwotI2lmbmRlZiBfX0U4MjBfSEVBREVSCi0jZGVmaW5lIF9fRTgyMF9IRUFERVIKLQotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9lODIwX2FyZWEodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkJICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbik7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX2U4MjBfYXJlYV9zaXplKHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkJCSB1bnNpZ25lZCBsb25nICpzaXplcCwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgYWxpZ24pOwotZXh0ZXJuIHZvaWQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJICAgICAgaW50IHR5cGUpOwotZXh0ZXJuIHZvaWQgdXBkYXRlX21lbW9yeV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKLQkJCQl1bnNpZ25lZCBuZXdfdHlwZSk7Ci1leHRlcm4gdm9pZCBzZXR1cF9tZW1vcnlfcmVnaW9uKHZvaWQpOwotZXh0ZXJuIHZvaWQgY29udGlnX2U4MjBfc2V0dXAodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBlODIwX2VuZF9vZl9yYW0odm9pZCk7Ci1leHRlcm4gdm9pZCBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKHZvaWQpOwotZXh0ZXJuIHZvaWQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHZvaWQpOwotZXh0ZXJuIGludCBlODIwX2FueV9tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB1bnNpZ25lZCB0eXBlKTsKLWV4dGVybiBpbnQgZTgyMF9hbGxfbWFwcGVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAgdW5zaWduZWQgdHlwZSk7Ci1leHRlcm4gaW50IGU4MjBfYW55X25vbl9yZXNlcnZlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci1leHRlcm4gaW50IGlzX21lbW9yeV9hbnlfdmFsaWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotZXh0ZXJuIGludCBlODIwX2FsbF9ub25fcmVzZXJ2ZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotZXh0ZXJuIGludCBpc19tZW1vcnlfYWxsX3ZhbGlkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGU4MjBfaG9sZV9zaXplKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLQotZXh0ZXJuIHZvaWQgZTgyMF9zZXR1cF9nYXAodm9pZCk7Ci1leHRlcm4gdm9pZCBlODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAotCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKLQotZXh0ZXJuIHZvaWQgZmluaXNoX2U4MjBfcGFyc2luZyh2b2lkKTsKLQotZXh0ZXJuIHN0cnVjdCBlODIwbWFwIGU4MjA7Ci1leHRlcm4gdm9pZCB1cGRhdGVfZTgyMCh2b2lkKTsKLQotZXh0ZXJuIHZvaWQgcmVzZXJ2ZV9lYXJseSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwgY2hhciAqbmFtZSk7Ci1leHRlcm4gdm9pZCBmcmVlX2Vhcmx5KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLWV4dGVybiB2b2lkIGVhcmx5X3Jlc190b19ib290bWVtKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLQotI2VuZGlmLyohX19BU1NFTUJMWV9fKi8KLQotI2VuZGlmLypfX0U4MjBfSEVBREVSKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9lZmkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9lZmkuaAppbmRleCBkNTMwMDRiLi43ZWQyYmQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZWZpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2VmaS5oCkBAIC05MCw3ICs5MCw3IEBACiAKICNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCiAKLWV4dGVybiB2b2lkIGVmaV9yZXNlcnZlX2Jvb3RtZW0odm9pZCk7CitleHRlcm4gdm9pZCBlZmlfcmVzZXJ2ZV9lYXJseSh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9jYWxsX3BoeXNfcHJlbG9nKHZvaWQpOwogZXh0ZXJuIHZvaWQgZWZpX2NhbGxfcGh5c19lcGlsb2codm9pZCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9lbGYuaCBiL2luY2x1ZGUvYXNtLXg4Ni9lbGYuaAppbmRleCA4ZjIzMmRjLi43YmU0NzMzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZWxmLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2VsZi5oCkBAIC04Myw5ICs4Myw5IEBACiAJKCgoeCktPmVfbWFjaGluZSA9PSBFTV8zODYpIHx8ICgoeCktPmVfbWFjaGluZSA9PSBFTV80ODYpKQogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIAogI2lmZGVmIENPTkZJR19YODZfMzIKLSNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CQkvKiBmb3Igc2F2ZXNlZ21lbnQgKi8KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogCiAjZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpCWVsZl9jaGVja19hcmNoX2lhMzIoeCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXAuaAppbmRleCA1YmQyMDY5Li40NGQ0ZjgyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcC5oCkBAIC03LDcgKzcsNjIgQEAKICMgaW5jbHVkZSAiZml4bWFwXzY0LmgiCiAjZW5kaWYKIAorZXh0ZXJuIGludCBmaXhtYXBzX3NldDsKKwordm9pZCBfX25hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgcHRlX3QgcHRlKTsKK3ZvaWQgbmF0aXZlX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAorCQkgICAgICAgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncyk7CisKKyNpZm5kZWYgQ09ORklHX1BBUkFWSVJUCitzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKKwkJCQl1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKQoreworCW5hdGl2ZV9zZXRfZml4bWFwKGlkeCwgcGh5cywgZmxhZ3MpOworfQorI2VuZGlmCisKKyNkZWZpbmUgc2V0X2ZpeG1hcChpZHgsIHBoeXMpCQkJCVwKKwlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTCkKKworLyoKKyAqIFNvbWUgaGFyZHdhcmUgd2FudHMgdG8gZ2V0IGZpeG1hcHBlZCB3aXRob3V0IGNhY2hpbmcuCisgKi8KKyNkZWZpbmUgc2V0X2ZpeG1hcF9ub2NhY2hlKGlkeCwgcGh5cykJCQlcCisJX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUxfTk9DQUNIRSkKKwogI2RlZmluZSBjbGVhcl9maXhtYXAoaWR4KQkJCVwKIAlfX3NldF9maXhtYXAoaWR4LCAwLCBfX3BncHJvdCgwKSkKIAorI2RlZmluZSBfX2ZpeF90b192aXJ0KHgpCShGSVhBRERSX1RPUCAtICgoeCkgPDwgUEFHRV9TSElGVCkpCisjZGVmaW5lIF9fdmlydF90b19maXgoeCkJKChGSVhBRERSX1RPUCAtICgoeCkmUEFHRV9NQVNLKSkgPj4gUEFHRV9TSElGVCkKKworZXh0ZXJuIHZvaWQgX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCh2b2lkKTsKKworLyoKKyAqICdpbmRleCB0byBhZGRyZXNzJyB0cmFuc2xhdGlvbi4gSWYgYW55b25lIHRyaWVzIHRvIHVzZSB0aGUgaWR4CisgKiBkaXJlY3RseSB3aXRob3V0IHRyYW5zbGF0aW9uLCB3ZSBjYXRjaCB0aGUgYnVnIHdpdGggYSBOVUxMLWRlZmVyZW5jZQorICoga2VybmVsIG9vcHMuIElsbGVnYWwgcmFuZ2VzIG9mIGluY29taW5nIGluZGljZXMgYXJlIGNhdWdodCB0b28uCisgKi8KK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBmaXhfdG9fdmlydChjb25zdCB1bnNpZ25lZCBpbnQgaWR4KQoreworCS8qCisJICogdGhpcyBicmFuY2ggZ2V0cyBjb21wbGV0ZWx5IGVsaW1pbmF0ZWQgYWZ0ZXIgaW5saW5pbmcsCisJICogZXhjZXB0IHdoZW4gc29tZW9uZSB0cmllcyB0byB1c2UgZml4YWRkciBpbmRpY2VzIGluIGFuCisJICogaWxsZWdhbCB3YXkuIChzdWNoIGFzIG1peGluZyB1cCBhZGRyZXNzIHR5cGVzIG9yIHVzaW5nCisJICogb3V0LW9mLXJhbmdlIGluZGljZXMpLgorCSAqCisJICogSWYgaXQgZG9lc24ndCBnZXQgcmVtb3ZlZCwgdGhlIGxpbmtlciB3aWxsIGNvbXBsYWluCisJICogbG91ZGx5IHdpdGggYSByZWFzb25hYmx5IGNsZWFyIGVycm9yIG1lc3NhZ2UuLgorCSAqLworCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKQorCQlfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KCk7CisKKwlyZXR1cm4gX19maXhfdG9fdmlydChpZHgpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3QgdW5zaWduZWQgbG9uZyB2YWRkcikKK3sKKwlCVUdfT04odmFkZHIgPj0gRklYQUREUl9UT1AgfHwgdmFkZHIgPCBGSVhBRERSX1NUQVJUKTsKKwlyZXR1cm4gX192aXJ0X3RvX2ZpeCh2YWRkcik7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfMzIuaAppbmRleCA0Yjk2MTQ4Li5hYWUyZjA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF8zMi5oCkBAIC03OSwxMCArNzksNiBAQAogCUZJWF9LTUFQX0JFR0lOLAkvKiByZXNlcnZlZCBwdGUncyBmb3IgdGVtcG9yYXJ5IGtlcm5lbCBtYXBwaW5ncyAqLwogCUZJWF9LTUFQX0VORCA9IEZJWF9LTUFQX0JFR0lOKyhLTV9UWVBFX05SKk5SX0NQVVMpLTEsCiAjZW5kaWYKLSNpZmRlZiBDT05GSUdfQUNQSQotCUZJWF9BQ1BJX0JFR0lOLAotCUZJWF9BQ1BJX0VORCA9IEZJWF9BQ1BJX0JFR0lOICsgRklYX0FDUElfUEFHRVMgLSAxLAotI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BDSV9NTUNPTkZJRwogCUZJWF9QQ0lFX01DRkcsCiAjZW5kaWYKQEAgLTEwMywyMyArOTksMTggQEAKIAkJCShfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgNTExKSwKIAlGSVhfQlRNQVBfQkVHSU4gPSBGSVhfQlRNQVBfRU5EICsgTlJfRklYX0JUTUFQUypGSVhfQlRNQVBTX05FU1RJTkcgLSAxLAogCUZJWF9XUF9URVNULAorI2lmZGVmIENPTkZJR19BQ1BJCisJRklYX0FDUElfQkVHSU4sCisJRklYX0FDUElfRU5EID0gRklYX0FDUElfQkVHSU4gKyBGSVhfQUNQSV9QQUdFUyAtIDEsCisjZW5kaWYKICNpZmRlZiBDT05GSUdfUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVAogCUZJWF9PSENJMTM5NF9CQVNFLAogI2VuZGlmCiAJX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzCiB9OwogCi1leHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAotCQkJIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwogZXh0ZXJuIHZvaWQgcmVzZXJ2ZV90b3BfYWRkcmVzcyh1bnNpZ25lZCBsb25nIHJlc2VydmUpOwogCi0jZGVmaW5lIHNldF9maXhtYXAoaWR4LCBwaHlzKQkJCQlcCi0JX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUwpCi0vKgotICogU29tZSBoYXJkd2FyZSB3YW50cyB0byBnZXQgZml4bWFwcGVkIHdpdGhvdXQgY2FjaGluZy4KLSAqLwotI2RlZmluZSBzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBwaHlzKQkJCVwKLQlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTF9OT0NBQ0hFKQogCiAjZGVmaW5lIEZJWEFERFJfVE9QCSgodW5zaWduZWQgbG9uZylfX0ZJWEFERFJfVE9QKQogCkBAIC0xMjgsMzggKzExOSw1IEBACiAjZGVmaW5lIEZJWEFERFJfU1RBUlQJCShGSVhBRERSX1RPUCAtIF9fRklYQUREUl9TSVpFKQogI2RlZmluZSBGSVhBRERSX0JPT1RfU1RBUlQJKEZJWEFERFJfVE9QIC0gX19GSVhBRERSX0JPT1RfU0laRSkKIAotI2RlZmluZSBfX2ZpeF90b192aXJ0KHgpCShGSVhBRERSX1RPUCAtICgoeCkgPDwgUEFHRV9TSElGVCkpCi0jZGVmaW5lIF9fdmlydF90b19maXgoeCkJKChGSVhBRERSX1RPUCAtICgoeCkmUEFHRV9NQVNLKSkgPj4gUEFHRV9TSElGVCkKLQotZXh0ZXJuIHZvaWQgX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCh2b2lkKTsKLQotLyoKLSAqICdpbmRleCB0byBhZGRyZXNzJyB0cmFuc2xhdGlvbi4gSWYgYW55b25lIHRyaWVzIHRvIHVzZSB0aGUgaWR4Ci0gKiBkaXJlY3RseSB3aXRob3V0IHRyYW5sYXRpb24sIHdlIGNhdGNoIHRoZSBidWcgd2l0aCBhIE5VTEwtZGVmZXJlbmNlCi0gKiBrZXJuZWwgb29wcy4gSWxsZWdhbCByYW5nZXMgb2YgaW5jb21pbmcgaW5kaWNlcyBhcmUgY2F1Z2h0IHRvby4KLSAqLwotc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCi17Ci0JLyoKLQkgKiB0aGlzIGJyYW5jaCBnZXRzIGNvbXBsZXRlbHkgZWxpbWluYXRlZCBhZnRlciBpbmxpbmluZywKLQkgKiBleGNlcHQgd2hlbiBzb21lb25lIHRyaWVzIHRvIHVzZSBmaXhhZGRyIGluZGljZXMgaW4gYW4KLQkgKiBpbGxlZ2FsIHdheS4gKHN1Y2ggYXMgbWl4aW5nIHVwIGFkZHJlc3MgdHlwZXMgb3IgdXNpbmcKLQkgKiBvdXQtb2YtcmFuZ2UgaW5kaWNlcykuCi0JICoKLQkgKiBJZiBpdCBkb2Vzbid0IGdldCByZW1vdmVkLCB0aGUgbGlua2VyIHdpbGwgY29tcGxhaW4KLQkgKiBsb3VkbHkgd2l0aCBhIHJlYXNvbmFibHkgY2xlYXIgZXJyb3IgbWVzc2FnZS4uCi0JICovCi0JaWYgKGlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpCi0JCV9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3QoKTsKLQotCXJldHVybiBfX2ZpeF90b192aXJ0KGlkeCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB2aXJ0X3RvX2ZpeChjb25zdCB1bnNpZ25lZCBsb25nIHZhZGRyKQotewotCUJVR19PTih2YWRkciA+PSBGSVhBRERSX1RPUCB8fCB2YWRkciA8IEZJWEFERFJfU1RBUlQpOwotCXJldHVybiBfX3ZpcnRfdG9fZml4KHZhZGRyKTsKLX0KLQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF82NC5oIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF82NC5oCmluZGV4IDM1NWQyNmEuLjAwZjNkNzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzY0LmgKQEAgLTEyLDYgKzEyLDcgQEAKICNkZWZpbmUgX0FTTV9GSVhNQVBfNjRfSAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8YXNtL2FjcGkuaD4KICNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL3ZzeXNjYWxsLmg+CkBAIC0zOSwzMCArNDAsMzggQEAKIAlWU1lTQ0FMTF9IUEVULAogCUZJWF9EQkdQX0JBU0UsCiAJRklYX0VBUkxZQ09OX01FTV9CQVNFLAotCUZJWF9IUEVUX0JBU0UsCiAJRklYX0FQSUNfQkFTRSwJLyogbG9jYWwgKENQVSkgQVBJQykgLS0gcmVxdWlyZWQgZm9yIFNNUCBvciBub3QgKi8KIAlGSVhfSU9fQVBJQ19CQVNFXzAsCiAJRklYX0lPX0FQSUNfQkFTRV9FTkQgPSBGSVhfSU9fQVBJQ19CQVNFXzAgKyBNQVhfSU9fQVBJQ1MgLSAxLAogCUZJWF9FRklfSU9fTUFQX0xBU1RfUEFHRSwKIAlGSVhfRUZJX0lPX01BUF9GSVJTVF9QQUdFID0gRklYX0VGSV9JT19NQVBfTEFTVF9QQUdFCiAJCQkJICArIE1BWF9FRklfSU9fUEFHRVMgLSAxLAorI2lmZGVmIENPTkZJR19QQVJBVklSVAorCUZJWF9QQVJBVklSVF9CT09UTUFQLAorI2VuZGlmCisjaWZkZWYgQ09ORklHX0FDUEkKKwlGSVhfQUNQSV9CRUdJTiwKKwlGSVhfQUNQSV9FTkQgPSBGSVhfQUNQSV9CRUdJTiArIEZJWF9BQ1BJX1BBR0VTIC0gMSwKKyNlbmRpZgogI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCiAJRklYX09IQ0kxMzk0X0JBU0UsCiAjZW5kaWYKKwlfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzLAorCS8qCisJICogMjU2IHRlbXBvcmFyeSBib290LXRpbWUgbWFwcGluZ3MsIHVzZWQgYnkgZWFybHlfaW9yZW1hcCgpLAorCSAqIGJlZm9yZSBpb3JlbWFwKCkgaXMgZnVuY3Rpb25hbC4KKwkgKgorCSAqIFdlIHJvdW5kIGl0IHVwIHRvIHRoZSBuZXh0IDUxMiBwYWdlcyBib3VuZGFyeSBzbyB0aGF0IHdlCisJICogY2FuIGhhdmUgYSBzaW5nbGUgcGdkIGVudHJ5IGFuZCBhIHNpbmdsZSBwdGUgdGFibGU6CisJICovCisjZGVmaW5lIE5SX0ZJWF9CVE1BUFMJCTY0CisjZGVmaW5lIEZJWF9CVE1BUFNfTkVTVElORwk0CisJRklYX0JUTUFQX0VORCA9IF9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgKyA1MTIgLQorCQkJKF9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgJiA1MTEpLAorCUZJWF9CVE1BUF9CRUdJTiA9IEZJWF9CVE1BUF9FTkQgKyBOUl9GSVhfQlRNQVBTKkZJWF9CVE1BUFNfTkVTVElORyAtIDEsCiAJX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzCiB9OwogCi1leHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAotCQkJIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwotCi0jZGVmaW5lIHNldF9maXhtYXAoaWR4LCBwaHlzKQkJCVwKLQlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTCkKLS8qCi0gKiBTb21lIGhhcmR3YXJlIHdhbnRzIHRvIGdldCBmaXhtYXBwZWQgd2l0aG91dCBjYWNoaW5nLgotICovCi0jZGVmaW5lIHNldF9maXhtYXBfbm9jYWNoZShpZHgsIHBoeXMpCQkJXAotCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMX05PQ0FDSEUpCi0KICNkZWZpbmUgRklYQUREUl9UT1AJKFZTWVNDQUxMX0VORC1QQUdFX1NJWkUpCiAjZGVmaW5lIEZJWEFERFJfU0laRQkoX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzIDw8IFBBR0VfU0hJRlQpCiAjZGVmaW5lIEZJWEFERFJfU1RBUlQJKEZJWEFERFJfVE9QIC0gRklYQUREUl9TSVpFKQpAQCAtNzEsMzAgKzgwLDQgQEAKICNkZWZpbmUgRklYQUREUl9VU0VSX1NUQVJUCSgodW5zaWduZWQgbG9uZylWU1lTQ0FMTDMyX1ZTWVNDQUxMKQogI2RlZmluZSBGSVhBRERSX1VTRVJfRU5ECShGSVhBRERSX1VTRVJfU1RBUlQgKyBQQUdFX1NJWkUpCiAKLSNkZWZpbmUgX19maXhfdG9fdmlydCh4KQkoRklYQUREUl9UT1AgLSAoKHgpIDw8IFBBR0VfU0hJRlQpKQotCi1leHRlcm4gdm9pZCBfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KHZvaWQpOwotCi0vKgotICogJ2luZGV4IHRvIGFkZHJlc3MnIHRyYW5zbGF0aW9uLiBJZiBhbnlvbmUgdHJpZXMgdG8gdXNlIHRoZSBpZHgKLSAqIGRpcmVjdGx5IHdpdGhvdXQgdHJhbnNsYXRpb24sIHdlIGNhdGNoIHRoZSBidWcgd2l0aCBhIE5VTEwtZGVmZXJlbmNlCi0gKiBrZXJuZWwgb29wcy4gSWxsZWdhbCByYW5nZXMgb2YgaW5jb21pbmcgaW5kaWNlcyBhcmUgY2F1Z2h0IHRvby4KLSAqLwotc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCi17Ci0JLyoKLQkgKiB0aGlzIGJyYW5jaCBnZXRzIGNvbXBsZXRlbHkgZWxpbWluYXRlZCBhZnRlciBpbmxpbmluZywKLQkgKiBleGNlcHQgd2hlbiBzb21lb25lIHRyaWVzIHRvIHVzZSBmaXhhZGRyIGluZGljZXMgaW4gYW4KLQkgKiBpbGxlZ2FsIHdheS4gKHN1Y2ggYXMgbWl4aW5nIHVwIGFkZHJlc3MgdHlwZXMgb3IgdXNpbmcKLQkgKiBvdXQtb2YtcmFuZ2UgaW5kaWNlcykuCi0JICoKLQkgKiBJZiBpdCBkb2Vzbid0IGdldCByZW1vdmVkLCB0aGUgbGlua2VyIHdpbGwgY29tcGxhaW4KLQkgKiBsb3VkbHkgd2l0aCBhIHJlYXNvbmFibHkgY2xlYXIgZXJyb3IgbWVzc2FnZS4uCi0JICovCi0JaWYgKGlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpCi0JCV9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3QoKTsKLQotCXJldHVybiBfX2ZpeF90b192aXJ0KGlkeCk7Ci19Ci0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Z0cmFjZS5oIGIvaW5jbHVkZS9hc20teDg2L2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxODQ0NDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvZnRyYWNlLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfQVNNX1g4Nl9GVFJBQ0UKKyNkZWZpbmUgX0FTTV9TUEFSQzY0X0ZUUkFDRQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2RlZmluZSBNQ09VTlRfQUREUgkJKChsb25nKShtY291bnQpKQorI2RlZmluZSBNQ09VTlRfSU5TTl9TSVpFCTUgLyogc2l6ZW9mIG1jb3VudCBjYWxsICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCitleHRlcm4gdm9pZCBtY291bnQodm9pZCk7CisjZW5kaWYKKworI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworI2VuZGlmIC8qIF9BU01fWDg2X0ZUUkFDRSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2dhcnQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9nYXJ0LmgKaW5kZXggOTA5NThlZC4uMzNiOWFlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2dhcnQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZ2FydC5oCkBAIC0xLDM0ICsxLDcyIEBACi0jaWZuZGVmIF9BU01fWDg2NjRfSU9NTVVfSAotI2RlZmluZSBfQVNNX1g4NjY0X0lPTU1VX0ggMQorI2lmbmRlZiBfQVNNX1g4NjY0X0dBUlRfSAorI2RlZmluZSBfQVNNX1g4NjY0X0dBUlRfSCAxCiAKLWV4dGVybiB2b2lkIHBjaV9pb21tdV9zaHV0ZG93bih2b2lkKTsKLWV4dGVybiB2b2lkIG5vX2lvbW11X2luaXQodm9pZCk7Ci1leHRlcm4gaW50IGZvcmNlX2lvbW11LCBub19pb21tdTsKLWV4dGVybiBpbnQgaW9tbXVfZGV0ZWN0ZWQ7Ci0jaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKLWV4dGVybiB2b2lkIGdhcnRfaW9tbXVfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIGdhcnRfaW9tbXVfc2h1dGRvd24odm9pZCk7Ci1leHRlcm4gdm9pZCBfX2luaXQgZ2FydF9wYXJzZV9vcHRpb25zKGNoYXIgKik7Ci1leHRlcm4gdm9pZCBlYXJseV9nYXJ0X2lvbW11X2NoZWNrKHZvaWQpOwotZXh0ZXJuIHZvaWQgZ2FydF9pb21tdV9ob2xlX2luaXQodm9pZCk7CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vaW9tbXUuaD4KKworZXh0ZXJuIHZvaWQgc2V0X3VwX2dhcnRfcmVzdW1lKHUzMiwgdTMyKTsKKwogZXh0ZXJuIGludCBmYWxsYmFja19hcGVyX29yZGVyOwogZXh0ZXJuIGludCBmYWxsYmFja19hcGVyX2ZvcmNlOwotZXh0ZXJuIGludCBnYXJ0X2lvbW11X2FwZXJ0dXJlOwotZXh0ZXJuIGludCBnYXJ0X2lvbW11X2FwZXJ0dXJlX2FsbG93ZWQ7Ci1leHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQ7CiBleHRlcm4gaW50IGZpeF9hcGVydHVyZTsKLSNlbHNlCi0jZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmUgMAotI2RlZmluZSBnYXJ0X2lvbW11X2FwZXJ0dXJlX2FsbG93ZWQgMAogCi1zdGF0aWMgaW5saW5lIHZvaWQgZWFybHlfZ2FydF9pb21tdV9jaGVjayh2b2lkKQorLyogUFRFIGJpdHMuICovCisjZGVmaW5lIEdQVEVfVkFMSUQJMQorI2RlZmluZSBHUFRFX0NPSEVSRU5UCTIKKworLyogQXBlcnR1cmUgY29udHJvbCByZWdpc3RlciBiaXRzLiAqLworI2RlZmluZSBHQVJURU4JCSgxPDwwKQorI2RlZmluZSBESVNHQVJUQ1BVCSgxPDw0KQorI2RlZmluZSBESVNHQVJUSU8JKDE8PDUpCisKKy8qIEdBUlQgY2FjaGUgY29udHJvbCByZWdpc3RlciBiaXRzLiAqLworI2RlZmluZSBJTlZHQVJUCQkoMTw8MCkKKyNkZWZpbmUgR0FSVFBURUVSUgkoMTw8MSkKKworLyogSzggT24tY3B1IEdBUlQgcmVnaXN0ZXJzICovCisjZGVmaW5lIEFNRDY0X0dBUlRBUEVSVFVSRUNUTAkweDkwCisjZGVmaW5lIEFNRDY0X0dBUlRBUEVSVFVSRUJBU0UJMHg5NAorI2RlZmluZSBBTUQ2NF9HQVJUVEFCTEVCQVNFCTB4OTgKKyNkZWZpbmUgQU1ENjRfR0FSVENBQ0hFQ1RMCTB4OWMKKyNkZWZpbmUgQU1ENjRfR0FSVEVOCQkoMTw8MCkKKworc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9uKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU2NCBhZGRyKQogeworCXUzMiB0bXAsIGN0bDsKKworICAgICAgICAvKiBhZGRyZXNzIG9mIHRoZSBtYXBwaW5ncyB0YWJsZSAqLworICAgICAgICBhZGRyID4+PSAxMjsKKyAgICAgICAgdG1wID0gKHUzMikgYWRkcjw8NDsKKyAgICAgICAgdG1wICY9IH4weGY7CisgICAgICAgIHBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBBTUQ2NF9HQVJUVEFCTEVCQVNFLCB0bXApOworCisgICAgICAgIC8qIEVuYWJsZSBHQVJUIHRyYW5zbGF0aW9uIGZvciB0aGlzIGhhbW1lci4gKi8KKyAgICAgICAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmY3RsKTsKKyAgICAgICAgY3RsIHw9IEdBUlRFTjsKKyAgICAgICAgY3RsICY9IH4oRElTR0FSVENQVSB8IERJU0dBUlRJTyk7CisgICAgICAgIHBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIGN0bCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBnYXJ0X2lvbW11X3NodXRkb3duKHZvaWQpCitzdGF0aWMgaW5saW5lIGludCBhcGVydHVyZV92YWxpZCh1NjQgYXBlcl9iYXNlLCB1MzIgYXBlcl9zaXplLCB1MzIgbWluX3NpemUpCiB7Ci19CisJaWYgKCFhcGVyX2Jhc2UpCisJCXJldHVybiAwOwogCi0jZW5kaWYKKwlpZiAoYXBlcl9iYXNlICsgYXBlcl9zaXplID4gMHgxMDAwMDAwMDBVTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJBcGVydHVyZSBiZXlvbmQgNEdCLiBJZ25vcmluZy5cbiIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKGU4MjBfYW55X21hcHBlZChhcGVyX2Jhc2UsIGFwZXJfYmFzZSArIGFwZXJfc2l6ZSwgRTgyMF9SQU0pKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgcG9pbnRpbmcgdG8gZTgyMCBSQU0uIElnbm9yaW5nLlxuIik7CisJCXJldHVybiAwOworCX0KKwlpZiAoYXBlcl9zaXplIDwgbWluX3NpemUpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJBcGVydHVyZSB0b28gc21hbGwgKCVkIE1CKSB0aGFuICglZCBNQilcbiIsCisJCQkJIGFwZXJfc2l6ZT4+MjAsIG1pbl9zaXplPj4yMCk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAxOworfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9nZW5hcGljXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvZ2VuYXBpY182NC5oCmluZGV4IDFkZTkzMWIuLjBmODUwNDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9nZW5hcGljXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2dlbmFwaWNfNjQuaApAQCAtNDQsNCArNDQsNiBAQAogZXh0ZXJuIHZvaWQgdXZfY3B1X2luaXQodm9pZCk7CiBleHRlcm4gaW50IHV2X3dha2V1cF9zZWNvbmRhcnkoaW50IHBoeXNfYXBpY2lkLCB1bnNpZ25lZCBpbnQgc3RhcnRfcmlwKTsKIAorZXh0ZXJuIHZvaWQgc2V0dXBfYXBpY19yb3V0aW5nKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9nZW9kZS5oIGIvaW5jbHVkZS9hc20teDg2L2dlb2RlLmgKaW5kZXggNmU2NDU4OC4uYmIwNjAyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2dlb2RlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2dlb2RlLmgKQEAgLTExMiw4ICsxMTIsOCBAQAogI2RlZmluZSBWU0FfVlJfVU5MT0NLCQkweEZDNTMJLyogdW5sb2NrIHZpcnR1YWwgcmVnaXN0ZXIgKi8KICNkZWZpbmUgVlNBX1ZSX1NJR05BVFVSRQkweDAwMDMKICNkZWZpbmUgVlNBX1ZSX01FTV9TSVpFCQkweDAyMDAKLSNkZWZpbmUgVlNBX1NJRwkJCTB4NDEzMgkvKiBzaWduYXR1cmUgaXMgYXNjaWkgJ1ZTQTInICovCi0KKyNkZWZpbmUgQU1EX1ZTQV9TSUcJCTB4NDEzMgkvKiBzaWduYXR1cmUgaXMgYXNjaWkgJ1ZTQTInICovCisjZGVmaW5lIEdTV19WU0FfU0lHCQkweDUzNGQgIC8qIEdlbmVyYWwgU29mdHdhcmUgc2lnbmF0dXJlICovCiAvKiBHUElPICovCiAKICNkZWZpbmUgR1BJT19PVVRQVVRfVkFMCQkweDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaGFyZGlycS5oIGIvaW5jbHVkZS9hc20teDg2L2hhcmRpcnEuaAppbmRleCAzMTQ0MzRkLi4wMDA3ODdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaGFyZGlycS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9oYXJkaXJxLmgKQEAgLTMsMyArMyw5IEBACiAjZWxzZQogIyBpbmNsdWRlICJoYXJkaXJxXzY0LmgiCiAjZW5kaWYKKworZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0X2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKKyNkZWZpbmUgYXJjaF9pcnFfc3RhdF9jcHUJYXJjaF9pcnFfc3RhdF9jcHUKKworZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOworI2RlZmluZSBhcmNoX2lycV9zdGF0CQlhcmNoX2lycV9zdGF0CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaGlnaG1lbS5oIGIvaW5jbHVkZS9hc20teDg2L2hpZ2htZW0uaAppbmRleCBlMTUzZjNiLi40NTE0YjE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaGlnaG1lbS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9oaWdobWVtLmgKQEAgLTc0LDYgKzc0LDkgQEAKIAogI2RlZmluZSBmbHVzaF9jYWNoZV9rbWFwcygpCWRvIHsgfSB3aGlsZSAoMCkKIAorZXh0ZXJuIHZvaWQgYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOworCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYgLyogX0FTTV9ISUdITUVNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ocGV0LmggYi9pbmNsdWRlL2FzbS14ODYvaHBldC5oCmluZGV4IDZhOWI0YWMuLjgyZjFhYzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9ocGV0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2hwZXQuaApAQCAtODYsOCArODYsOCBAQAogI2Vsc2UgLyogQ09ORklHX0hQRVRfVElNRVIgKi8KIAogc3RhdGljIGlubGluZSBpbnQgaHBldF9lbmFibGUodm9pZCkgeyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGhwZXRfcmVhZGwodW5zaWduZWQgbG9uZyBhKSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBpc19ocGV0X2VuYWJsZWQodm9pZCkgeyByZXR1cm4gMDsgfQorI2RlZmluZSBocGV0X3JlYWRsKGEpIDAKIAogI2VuZGlmCiAjZW5kaWYgLyogQVNNX1g4Nl9IUEVUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9od19pcnEuaAppbmRleCBiZjAyNTM5Li4xOGYwNjdjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaHdfaXJxLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycS5oCkBAIC0xLDUgKzEsMTA2IEBACisjaWZuZGVmIF9BU01fSFdfSVJRX0gKKyNkZWZpbmUgX0FTTV9IV19JUlFfSAorCisvKgorICogKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCisgKgorICogbW92ZWQgc29tZSBvZiB0aGUgb2xkIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmggdG8gaGVyZS4gVlkKKyAqCisgKiBJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQorICogPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KKyAqCisgKiBoYWNrZWQgYnkgQW5kaSBLbGVlbiBmb3IgeDg2LTY0LgorICogdW5pZmllZCBieSB0Z2x4CisgKi8KKworI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvcHJvZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKworI2RlZmluZSBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkJKChpcnEpIDwgMTYpCisKKy8qIEludGVycnVwdCBoYW5kbGVycyByZWdpc3RlcmVkIGR1cmluZyBpbml0X0lSUSAqLworZXh0ZXJuIHZvaWQgYXBpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCBlcnJvcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCBzcHVyaW91c19pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCB0aGVybWFsX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIHJlc2NoZWR1bGVfaW50ZXJydXB0KHZvaWQpOworCitleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MSh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Mih2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Myh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NSh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nih2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nyh2b2lkKTsKKworZXh0ZXJuIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCB0aHJlc2hvbGRfaW50ZXJydXB0KHZvaWQpOworCitleHRlcm4gdm9pZCBjYWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKTsKKworLyogUElDIHNwZWNpZmljIGZ1bmN0aW9ucyAqLworZXh0ZXJuIHZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gdm9pZCBlbmFibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOworZXh0ZXJuIGludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKK2V4dGVybiB2b2lkIGluaXRfODI1OUEoaW50IGFlb2kpOworCisvKiBJT0FQSUMgKi8KKyNkZWZpbmUgSU9fQVBJQ19JUlEoeCkgKCgoeCkgPj0gMTYpIHx8ICgoMTw8KHgpKSAmIGlvX2FwaWNfaXJxcykpCitleHRlcm4gdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7CisKK2V4dGVybiB2b2lkIGluaXRfVklTV1NfQVBJQ19pcnFzKHZvaWQpOworZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsKK2V4dGVybiB2b2lkIGRpc2FibGVfSU9fQVBJQyh2b2lkKTsKK2V4dGVybiB2b2lkIHByaW50X0lPX0FQSUModm9pZCk7CitleHRlcm4gaW50IElPX0FQSUNfZ2V0X1BDSV9pcnFfdmVjdG9yKGludCBidXMsIGludCBzbG90LCBpbnQgZm4pOworZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CitleHRlcm4gdm9pZCBlbmFibGVfSU9fQVBJQyh2b2lkKTsKKyNlbmRpZgorCisvKiBJUEkgZnVuY3Rpb25zICovCitleHRlcm4gdm9pZCBzZW5kX0lQSV9zZWxmKGludCB2ZWN0b3IpOworZXh0ZXJuIHZvaWQgc2VuZF9JUEkoaW50IGRlc3QsIGludCB2ZWN0b3IpOworCisvKiBTdGF0aXN0aWNzICovCitleHRlcm4gYXRvbWljX3QgaXJxX2Vycl9jb3VudDsKK2V4dGVybiBhdG9taWNfdCBpcnFfbWlzX2NvdW50OworCisvKiBFSVNBICovCitleHRlcm4gdm9pZCBlaXNhX3NldF9sZXZlbF9pcnEodW5zaWduZWQgaW50IGlycSk7CisKKy8qIFZveWFnZXIgZnVuY3Rpb25zICovCitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19jcGlfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfc3lzX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX2Ntbl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19pbnZhbGlkYXRlX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX3Jlc2NoZWR1bGVfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfZW5hYmxlX2lycV9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19jYWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKTsKKwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAiaHdfaXJxXzMyLmgiCitleHRlcm4gdm9pZCAoKmNvbnN0IGludGVycnVwdFtOUl9JUlFTXSkodm9pZCk7CiAjZWxzZQotIyBpbmNsdWRlICJod19pcnFfNjQuaCIKK3R5cGVkZWYgaW50IHZlY3Rvcl9pcnFfdFtOUl9WRUNUT1JTXTsKK0RFQ0xBUkVfUEVSX0NQVSh2ZWN0b3JfaXJxX3QsIHZlY3Rvcl9pcnEpOworZXh0ZXJuIHNwaW5sb2NrX3QgdmVjdG9yX2xvY2s7CisjZW5kaWYKK2V4dGVybiB2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSk7CisKKyNlbmRpZiAvKiAhQVNTRU1CTFlfICovCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2h3X2lycV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycV8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTg4MDU0Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLSNpZm5kZWYgX0FTTV9IV19JUlFfSAotI2RlZmluZSBfQVNNX0hXX0lSUV9ICi0KLS8qCi0gKglsaW51eC9pbmNsdWRlL2FzbS9od19pcnEuaAotICoKLSAqCShDKSAxOTkyLCAxOTkzIExpbnVzIFRvcnZhbGRzLCAoQykgMTk5NyBJbmdvIE1vbG5hcgotICoKLSAqCW1vdmVkIHNvbWUgb2YgdGhlIG9sZCBhcmNoL2kzODYva2VybmVsL2lycS5oIHRvIGhlcmUuIFZZCi0gKgotICoJSVJRL0lQSSBjaGFuZ2VzIHRha2VuIGZyb20gd29yayBieSBUaG9tYXMgUmFka2UKLSAqCTx0b21zb2Z0QGluZm9ybWF0aWsudHUtY2hlbW5pdHouZGU+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGUuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotCi0jZGVmaW5lIE5NSV9WRUNUT1IJCTB4MDIKLQotLyoKLSAqIFZhcmlvdXMgbG93LWxldmVsIGlycSBkZXRhaWxzIG5lZWRlZCBieSBpcnEuYywgcHJvY2Vzcy5jLAotICogdGltZS5jLCBpb19hcGljLmMgYW5kIHNtcC5jCi0gKgotICogSW50ZXJydXB0IGVudHJ5L2V4aXQgY29kZSBhdCBib3RoIEMgYW5kIGFzc2VtYmx5IGxldmVsCi0gKi8KLQotZXh0ZXJuIHZvaWQgKCpjb25zdCBpbnRlcnJ1cHRbTlJfSVJRU10pKHZvaWQpOwotCi0jaWZkZWYgQ09ORklHX1NNUAotdm9pZCByZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGNhbGxfZnVuY3Rpb25faW50ZXJydXB0KHZvaWQpOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLXZvaWQgYXBpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGVycm9yX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgc3B1cmlvdXNfaW50ZXJydXB0KHZvaWQpOwotdm9pZCB0aGVybWFsX2ludGVycnVwdCh2b2lkKTsKLSNkZWZpbmUgcGxhdGZvcm1fbGVnYWN5X2lycShpcnEpCSgoaXJxKSA8IDE2KQotI2VuZGlmCi0KLXZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7Ci12b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7Ci1pbnQgaTgyNTlBX2lycV9wZW5kaW5nKHVuc2lnbmVkIGludCBpcnEpOwotdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLXZvaWQgaW5pdF84MjU5QShpbnQgYWVvaSk7Ci12b2lkIHNlbmRfSVBJX3NlbGYoaW50IHZlY3Rvcik7Ci12b2lkIGluaXRfVklTV1NfQVBJQ19pcnFzKHZvaWQpOwotdm9pZCBzZXR1cF9JT19BUElDKHZvaWQpOwotdm9pZCBkaXNhYmxlX0lPX0FQSUModm9pZCk7Ci12b2lkIHByaW50X0lPX0FQSUModm9pZCk7Ci1pbnQgSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoaW50IGJ1cywgaW50IHNsb3QsIGludCBmbik7Ci12b2lkIHNlbmRfSVBJKGludCBkZXN0LCBpbnQgdmVjdG9yKTsKLXZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCk7Ci0KLWV4dGVybiB1bnNpZ25lZCBsb25nIGlvX2FwaWNfaXJxczsKLQotZXh0ZXJuIGF0b21pY190IGlycV9lcnJfY291bnQ7Ci1leHRlcm4gYXRvbWljX3QgaXJxX21pc19jb3VudDsKLQotI2RlZmluZSBJT19BUElDX0lSUSh4KSAoKCh4KSA+PSAxNikgfHwgKCgxPDwoeCkpICYgaW9fYXBpY19pcnFzKSkKLQotI2VuZGlmIC8qIF9BU01fSFdfSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA2MmVmMy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaHdfaXJxXzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzMgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0hXX0lSUV9ICi0jZGVmaW5lIF9BU01fSFdfSVJRX0gKLQotLyoKLSAqCWxpbnV4L2luY2x1ZGUvYXNtL2h3X2lycS5oCi0gKgotICoJKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCi0gKgotICoJbW92ZWQgc29tZSBvZiB0aGUgb2xkIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmggdG8gaGVyZS4gVlkKLSAqCi0gKglJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQotICoJPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KLSAqCi0gKgloYWNrZWQgYnkgQW5kaSBLbGVlbiBmb3IgeDg2LTY0LgotICovCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc21wLmg+Ci0jaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Ci0jZW5kaWYKLQotI2RlZmluZSBOTUlfVkVDVE9SCQkweDAyCi0vKgotICogSURUIHZlY3RvcnMgdXNhYmxlIGZvciBleHRlcm5hbCBpbnRlcnJ1cHQgc291cmNlcyBzdGFydAotICogYXQgMHgyMDoKLSAqLwotI2RlZmluZSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IJMHgyMAotCi0jZGVmaW5lIElBMzJfU1lTQ0FMTF9WRUNUT1IJMHg4MAotCi0KLS8qIFJlc2VydmUgdGhlIGxvd2VzdCB1c2FibGUgcHJpb3JpdHkgbGV2ZWwgMHgyMCAtIDB4MmYgZm9yIHRyaWdnZXJpbmcKLSAqIGNsZWFudXAgYWZ0ZXIgaXJxIG1pZ3JhdGlvbi4KLSAqLwotI2RlZmluZSBJUlFfTU9WRV9DTEVBTlVQX1ZFQ1RPUglGSVJTVF9FWFRFUk5BTF9WRUNUT1IKLQotLyoKLSAqIFZlY3RvcnMgMHgzMC0weDNmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotI2RlZmluZSBJUlEwX1ZFQ1RPUgkJKEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIDB4MTApCi0jZGVmaW5lIElSUTFfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxKQotI2RlZmluZSBJUlEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMikKLSNkZWZpbmUgSVJRM19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDMpCi0jZGVmaW5lIElSUTRfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA0KQotI2RlZmluZSBJUlE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNSkKLSNkZWZpbmUgSVJRNl9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDYpCi0jZGVmaW5lIElSUTdfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA3KQotI2RlZmluZSBJUlE4X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgOCkKLSNkZWZpbmUgSVJROV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDkpCi0jZGVmaW5lIElSUTEwX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTApCi0jZGVmaW5lIElSUTExX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTEpCi0jZGVmaW5lIElSUTEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTIpCi0jZGVmaW5lIElSUTEzX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTMpCi0jZGVmaW5lIElSUTE0X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTQpCi0jZGVmaW5lIElSUTE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTUpCi0KLS8qCi0gKiBTcGVjaWFsIElSUSB2ZWN0b3JzIHVzZWQgYnkgdGhlIFNNUCBhcmNoaXRlY3R1cmUsIDB4ZjAtMHhmZgotICoKLSAqICBzb21lIG9mIHRoZSBmb2xsb3dpbmcgdmVjdG9ycyBhcmUgJ3JhcmUnLCB0aGV5IGFyZSBtZXJnZWQKLSAqICBpbnRvIGEgc2luZ2xlIHZlY3RvciAoQ0FMTF9GVU5DVElPTl9WRUNUT1IpIHRvIHNhdmUgdmVjdG9yIHNwYWNlLgotICogIFRMQiwgcmVzY2hlZHVsZSBhbmQgbG9jYWwgQVBJQyB2ZWN0b3JzIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4KLSAqLwotI2RlZmluZSBTUFVSSU9VU19BUElDX1ZFQ1RPUgkweGZmCi0jZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCTB4ZmUKLSNkZWZpbmUgUkVTQ0hFRFVMRV9WRUNUT1IJMHhmZAotI2RlZmluZSBDQUxMX0ZVTkNUSU9OX1ZFQ1RPUgkweGZjCi0vKiBmYiBmcmVlIC0gcGxlYXNlIGRvbid0IHJlYWRkIEtEQiBoZXJlIGJlY2F1c2UgaXQncyB1c2VsZXNzCi0gICAoaGludCAtIHRoaW5rIHdoYXQgYSBOTUkgYml0IGRvZXMgdG8gYSB2ZWN0b3IpICovCi0jZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJMHhmYQotI2RlZmluZSBUSFJFU0hPTERfQVBJQ19WRUNUT1IgICAweGY5Ci0vKiBmOCBmcmVlICovCi0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9FTkQJMHhmNwotI2RlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQJMHhmMAkvKiBmMC1mNyB1c2VkIGZvciBUTEIgZmx1c2ggKi8KLQotI2RlZmluZSBOVU1fSU5WQUxJREFURV9UTEJfVkVDVE9SUwk4Ci0KLS8qCi0gKiBMb2NhbCBBUElDIHRpbWVyIElSUSB2ZWN0b3IgaXMgb24gYSBkaWZmZXJlbnQgcHJpb3JpdHkgbGV2ZWwsCi0gKiB0byB3b3JrIGFyb3VuZCB0aGUgJ2xvc3QgbG9jYWwgaW50ZXJydXB0IGlmIG1vcmUgdGhhbiAyIElSUQotICogc291cmNlcyBwZXIgbGV2ZWwnIGVycmF0YS4KLSAqLwotI2RlZmluZSBMT0NBTF9USU1FUl9WRUNUT1IJMHhlZgotCi0vKgotICogRmlyc3QgQVBJQyB2ZWN0b3IgYXZhaWxhYmxlIHRvIGRyaXZlcnM6ICh2ZWN0b3JzIDB4MzAtMHhlZSkKLSAqIHdlIHN0YXJ0IGF0IDB4NDEgdG8gc3ByZWFkIG91dCB2ZWN0b3JzIGV2ZW5seSBiZXR3ZWVuIHByaW9yaXR5Ci0gKiBsZXZlbHMuICgweDgwIGlzIHRoZSBzeXNjYWxsIHZlY3RvcikKLSAqLwotI2RlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCShJUlExNV9WRUNUT1IgKyAyKQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYgICAvKiBkdXBsaWNhdGVkIGluIGlycS5oICovCi0KLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotLyogSW50ZXJydXB0IGhhbmRsZXJzIHJlZ2lzdGVyZWQgZHVyaW5nIGluaXRfSVJRICovCi12b2lkIGFwaWNfdGltZXJfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBzcHVyaW91c19pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGVycm9yX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgcmVzY2hlZHVsZV9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGNhbGxfZnVuY3Rpb25faW50ZXJydXB0KHZvaWQpOwotdm9pZCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQwKHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDEodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Mih2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQzKHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDQodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NSh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ2KHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDcodm9pZCk7Ci12b2lkIHRoZXJtYWxfaW50ZXJydXB0KHZvaWQpOwotdm9pZCB0aHJlc2hvbGRfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBpODI1NF90aW1lcl9yZXN1bWUodm9pZCk7Ci0KLXR5cGVkZWYgaW50IHZlY3Rvcl9pcnFfdFtOUl9WRUNUT1JTXTsKLURFQ0xBUkVfUEVSX0NQVSh2ZWN0b3JfaXJxX3QsIHZlY3Rvcl9pcnEpOwotZXh0ZXJuIHZvaWQgX19zZXR1cF92ZWN0b3JfaXJxKGludCBjcHUpOwotZXh0ZXJuIHNwaW5sb2NrX3QgdmVjdG9yX2xvY2s7Ci0KLS8qCi0gKiBWYXJpb3VzIGxvdy1sZXZlbCBpcnEgZGV0YWlscyBuZWVkZWQgYnkgaXJxLmMsIHByb2Nlc3MuYywKLSAqIHRpbWUuYywgaW9fYXBpYy5jIGFuZCBzbXAuYwotICoKLSAqIEludGVycnVwdCBlbnRyeS9leGl0IGNvZGUgYXQgYm90aCBDIGFuZCBhc3NlbWJseSBsZXZlbAotICovCi0KLWV4dGVybiB2b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotZXh0ZXJuIHZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLWV4dGVybiBpbnQgaTgyNTlBX2lycV9wZW5kaW5nKHVuc2lnbmVkIGludCBpcnEpOwotZXh0ZXJuIHZvaWQgbWFrZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7Ci1leHRlcm4gdm9pZCBpbml0XzgyNTlBKGludCBhZW9pKTsKLWV4dGVybiB2b2lkIHNlbmRfSVBJX3NlbGYoaW50IHZlY3Rvcik7Ci1leHRlcm4gdm9pZCBpbml0X1ZJU1dTX0FQSUNfaXJxcyh2b2lkKTsKLWV4dGVybiB2b2lkIHNldHVwX0lPX0FQSUModm9pZCk7Ci1leHRlcm4gdm9pZCBlbmFibGVfSU9fQVBJQyh2b2lkKTsKLWV4dGVybiB2b2lkIGRpc2FibGVfSU9fQVBJQyh2b2lkKTsKLWV4dGVybiB2b2lkIHByaW50X0lPX0FQSUModm9pZCk7Ci1leHRlcm4gaW50IElPX0FQSUNfZ2V0X1BDSV9pcnFfdmVjdG9yKGludCBidXMsIGludCBzbG90LCBpbnQgZm4pOwotZXh0ZXJuIHZvaWQgc2VuZF9JUEkoaW50IGRlc3QsIGludCB2ZWN0b3IpOwotZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCk7Ci1leHRlcm4gdm9pZCBuYXRpdmVfaW5pdF9JUlEodm9pZCk7Ci0KLWV4dGVybiB1bnNpZ25lZCBsb25nIGlvX2FwaWNfaXJxczsKLQotZXh0ZXJuIGF0b21pY190IGlycV9lcnJfY291bnQ7Ci1leHRlcm4gYXRvbWljX3QgaXJxX21pc19jb3VudDsKLQotI2RlZmluZSBJT19BUElDX0lSUSh4KSAoKCh4KSA+PSAxNikgfHwgKCgxPDwoeCkpICYgaW9fYXBpY19pcnFzKSkKLQotI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLQotI2RlZmluZSBJUlFfTkFNRTIobnIpIG5yIyNfaW50ZXJydXB0KHZvaWQpCi0jZGVmaW5lIElSUV9OQU1FKG5yKSBJUlFfTkFNRTIoSVJRIyNucikKLQotLyoKLSAqCVNNUCBoYXMgYSBmZXcgc3BlY2lhbCBpbnRlcnJ1cHRzIGZvciBJUEkgbWVzc2FnZXMKLSAqLwotCi0jZGVmaW5lIEJVSUxEX0lSUShucikJCQkJXAotCWFzbWxpbmthZ2Ugdm9pZCBJUlFfTkFNRShucik7CQlcCi0JYXNtKCJcbi5wMmFsaWduXG4iCQkJXAotCSAgICAiSVJRIiAjbnIgIl9pbnRlcnJ1cHQ6XG5cdCIJCVwKLQkgICAgInB1c2ggJH4oIiAjbnIgIikgOyAiCQlcCi0JICAgICJqbXAgY29tbW9uX2ludGVycnVwdCIpOwotCi0jZGVmaW5lIHBsYXRmb3JtX2xlZ2FjeV9pcnEoaXJxKQkoKGlycSkgPCAxNikKLQotI2VuZGlmCi0KLSNlbmRpZiAvKiBfQVNNX0hXX0lSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaTgyNTkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCmluZGV4IDQ1ZDRkZjMuLjJmOThkZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCkBAIC01NSw0ICs1NSw2IEBACiAJdWRlbGF5KDIpOwogfQogCitleHRlcm4gc3RydWN0IGlycV9jaGlwIGk4MjU5QV9jaGlwOworCiAjZW5kaWYJLyogX19BU01fSTgyNTlfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW8uaCBiL2luY2x1ZGUvYXNtLXg4Ni9pby5oCmluZGV4IGQ1YjExZjYuLmJmNWQ2MjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pby5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pby5oCkBAIC0zLDYgKzMsNzYgQEAKIAogI2RlZmluZSBBUkNIX0hBU19JT1JFTUFQX1dDCiAKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorCisvKgorICogZWFybHlfaW9yZW1hcCgpIGFuZCBlYXJseV9pb3VubWFwKCkgYXJlIGZvciB0ZW1wb3JhcnkgZWFybHkgYm9vdC10aW1lCisgKiBtYXBwaW5ncywgYmVmb3JlIHRoZSByZWFsIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgorICogQSBib290LXRpbWUgbWFwcGluZyBpcyBjdXJyZW50bHkgbGltaXRlZCB0byBhdCBtb3N0IDE2IHBhZ2VzLgorICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9jbGVhcih2b2lkKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZCk7CitleHRlcm4gdm9pZCAqZWFybHlfaW9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvdW5tYXAodm9pZCAqYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKmZpeF9pb3JlbWFwKHVuc2lnbmVkIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzKTsKKyNlbmRpZgorCisjZGVmaW5lIGJ1aWxkX21taW9fcmVhZChuYW1lLCBzaXplLCB0eXBlLCByZWcsIGJhcnJpZXIpIFwKK3N0YXRpYyBpbmxpbmUgdHlwZSBuYW1lKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikgXAoreyB0eXBlIHJldDsgYXNtIHZvbGF0aWxlKCJtb3YiIHNpemUgIiAlMSwlMCI6Ij0iIHJlZyAocmV0KSBcCis6Im0iICgqKHZvbGF0aWxlIHR5cGUgX19mb3JjZSAqKWFkZHIpIGJhcnJpZXIpOyByZXR1cm4gcmV0OyB9CisKKyNkZWZpbmUgYnVpbGRfbW1pb193cml0ZShuYW1lLCBzaXplLCB0eXBlLCByZWcsIGJhcnJpZXIpIFwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHR5cGUgdmFsLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpIFwKK3sgYXNtIHZvbGF0aWxlKCJtb3YiIHNpemUgIiAlMCwlMSI6IDpyZWcgKHZhbCksIFwKKyJtIiAoKih2b2xhdGlsZSB0eXBlIF9fZm9yY2UgKilhZGRyKSBiYXJyaWVyKTsgfQorCitidWlsZF9tbWlvX3JlYWQocmVhZGIsICJiIiwgdW5zaWduZWQgY2hhciwgInEiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3JlYWQocmVhZHcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb19yZWFkKHJlYWRsLCAibCIsIHVuc2lnbmVkIGludCwgInIiLCA6Im1lbW9yeSIpCisKK2J1aWxkX21taW9fcmVhZChfX3JlYWRiLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZHcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZGwsICJsIiwgdW5zaWduZWQgaW50LCAiciIsICkKKworYnVpbGRfbW1pb193cml0ZSh3cml0ZWIsICJiIiwgdW5zaWduZWQgY2hhciwgInEiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3dyaXRlKHdyaXRldywgInciLCB1bnNpZ25lZCBzaG9ydCwgInIiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3dyaXRlKHdyaXRlbCwgImwiLCB1bnNpZ25lZCBpbnQsICJyIiwgOiJtZW1vcnkiKQorCitidWlsZF9tbWlvX3dyaXRlKF9fd3JpdGViLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgKQorYnVpbGRfbW1pb193cml0ZShfX3dyaXRldywgInciLCB1bnNpZ25lZCBzaG9ydCwgInIiLCApCitidWlsZF9tbWlvX3dyaXRlKF9fd3JpdGVsLCAibCIsIHVuc2lnbmVkIGludCwgInIiLCApCisKKyNkZWZpbmUgcmVhZGJfcmVsYXhlZChhKSBfX3JlYWRiKGEpCisjZGVmaW5lIHJlYWR3X3JlbGF4ZWQoYSkgX19yZWFkdyhhKQorI2RlZmluZSByZWFkbF9yZWxheGVkKGEpIF9fcmVhZGwoYSkKKyNkZWZpbmUgX19yYXdfcmVhZGIgX19yZWFkYgorI2RlZmluZSBfX3Jhd19yZWFkdyBfX3JlYWR3CisjZGVmaW5lIF9fcmF3X3JlYWRsIF9fcmVhZGwKKworI2RlZmluZSBfX3Jhd193cml0ZWIgX193cml0ZWIKKyNkZWZpbmUgX19yYXdfd3JpdGV3IF9fd3JpdGV3CisjZGVmaW5lIF9fcmF3X3dyaXRlbCBfX3dyaXRlbAorCisjZGVmaW5lIG1taW93YigpIGJhcnJpZXIoKQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAorYnVpbGRfbW1pb19yZWFkKHJlYWRxLCAicSIsIHVuc2lnbmVkIGxvbmcsICJyIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZHEsICJxIiwgdW5zaWduZWQgbG9uZywgInIiLCApCitidWlsZF9tbWlvX3dyaXRlKHdyaXRlcSwgInEiLCB1bnNpZ25lZCBsb25nLCAiciIsIDoibWVtb3J5IikKK2J1aWxkX21taW9fd3JpdGUoX193cml0ZXEsICJxIiwgdW5zaWduZWQgbG9uZywgInIiLCApCisKKyNkZWZpbmUgcmVhZHFfcmVsYXhlZChhKSBfX3JlYWRxKGEpCisjZGVmaW5lIF9fcmF3X3JlYWRxIF9fcmVhZHEKKyNkZWZpbmUgX19yYXdfd3JpdGVxIHdyaXRlcQorCisvKiBMZXQgcGVvcGxlIGtub3cgd2UgaGF2ZSB0aGVtICovCisjZGVmaW5lIHJlYWRxIHJlYWRxCisjZGVmaW5lIHdyaXRlcSB3cml0ZXEKKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJpb18zMi5oIgogI2Vsc2UKQEAgLTE2LDQgKzg2LDE3IEBACiAJCQkJdW5zaWduZWQgbG9uZyBwcm90X3ZhbCk7CiBleHRlcm4gdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOwogCisvKgorICogZWFybHlfaW9yZW1hcCgpIGFuZCBlYXJseV9pb3VubWFwKCkgYXJlIGZvciB0ZW1wb3JhcnkgZWFybHkgYm9vdC10aW1lCisgKiBtYXBwaW5ncywgYmVmb3JlIHRoZSByZWFsIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgorICogQSBib290LXRpbWUgbWFwcGluZyBpcyBjdXJyZW50bHkgbGltaXRlZCB0byBhdCBtb3N0IDE2IHBhZ2VzLgorICovCitleHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2NsZWFyKHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKTsKK2V4dGVybiB2b2lkICplYXJseV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHZvaWQgZWFybHlfaW91bm1hcCh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHZvaWQgX19pb21lbSAqZml4X2lvcmVtYXAodW5zaWduZWQgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMpOworCisKICNlbmRpZiAvKiBfQVNNX1g4Nl9JT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW9fMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCmluZGV4IDA0OWU4MWUuLjRkZjQ0ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCkBAIC0xMjIsMTggKzEyMiw2IEBACiBleHRlcm4gdm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcik7CiAKIC8qCi0gKiBlYXJseV9pb3JlbWFwKCkgYW5kIGVhcmx5X2lvdW5tYXAoKSBhcmUgZm9yIHRlbXBvcmFyeSBlYXJseSBib290LXRpbWUKLSAqIG1hcHBpbmdzLCBiZWZvcmUgdGhlIHJlYWwgaW9yZW1hcCgpIGlzIGZ1bmN0aW9uYWwuCi0gKiBBIGJvb3QtdGltZSBtYXBwaW5nIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIGF0IG1vc3QgMTYgcGFnZXMuCi0gKi8KLWV4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfY2xlYXIodm9pZCk7Ci1leHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpOwotZXh0ZXJuIHZvaWQgKmVhcmx5X2lvcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdm9pZCBlYXJseV9pb3VubWFwKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdm9pZCBfX2lvbWVtICpmaXhfaW9yZW1hcCh1bnNpZ25lZCBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cyk7Ci0KLS8qCiAgKiBJU0EgSS9PIGJ1cyBtZW1vcnkgYWRkcmVzc2VzIGFyZSAxOjEgd2l0aCB0aGUgcGh5c2ljYWwgYWRkcmVzcy4KICAqLwogI2RlZmluZSBpc2FfdmlydF90b19idXMgdmlydF90b19waHlzCkBAIC0xNDksNTUgKzEzNyw2IEBACiAjZGVmaW5lIHZpcnRfdG9fYnVzIHZpcnRfdG9fcGh5cwogI2RlZmluZSBidXNfdG9fdmlydCBwaHlzX3RvX3ZpcnQKIAotLyoKLSAqIHJlYWRYL3dyaXRlWCgpIGFyZSB1c2VkIHRvIGFjY2VzcyBtZW1vcnkgbWFwcGVkIGRldmljZXMuIE9uIHNvbWUKLSAqIGFyY2hpdGVjdHVyZXMgdGhlIG1lbW9yeSBtYXBwZWQgSU8gc3R1ZmYgbmVlZHMgdG8gYmUgYWNjZXNzZWQKLSAqIGRpZmZlcmVudGx5LiBPbiB0aGUgeDg2IGFyY2hpdGVjdHVyZSwgd2UganVzdCByZWFkL3dyaXRlIHRoZQotICogbWVtb3J5IGxvY2F0aW9uIGRpcmVjdGx5LgotICovCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciByZWFkYihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICoodm9sYXRpbGUgdW5zaWduZWQgY2hhciBfX2ZvcmNlICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBzaG9ydCByZWFkdyhjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgX19mb3JjZSAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHJlYWRsKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgX19mb3JjZSAqKSBhZGRyOwotfQotCi0jZGVmaW5lIHJlYWRiX3JlbGF4ZWQoYWRkcikgcmVhZGIoYWRkcikKLSNkZWZpbmUgcmVhZHdfcmVsYXhlZChhZGRyKSByZWFkdyhhZGRyKQotI2RlZmluZSByZWFkbF9yZWxheGVkKGFkZHIpIHJlYWRsKGFkZHIpCi0jZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCi0jZGVmaW5lIF9fcmF3X3JlYWR3IHJlYWR3Ci0jZGVmaW5lIF9fcmF3X3JlYWRsIHJlYWRsCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZWIodW5zaWduZWQgY2hhciBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIF9fZm9yY2UgKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHdyaXRldyh1bnNpZ25lZCBzaG9ydCBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCBfX2ZvcmNlICopYWRkciA9IGI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZWwodW5zaWduZWQgaW50IGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKHZvbGF0aWxlIHVuc2lnbmVkIGludCBfX2ZvcmNlICopYWRkciA9IGI7Ci19Ci0jZGVmaW5lIF9fcmF3X3dyaXRlYiB3cml0ZWIKLSNkZWZpbmUgX19yYXdfd3JpdGV3IHdyaXRldwotI2RlZmluZSBfX3Jhd193cml0ZWwgd3JpdGVsCi0KLSNkZWZpbmUgbW1pb3diKCkKLQogc3RhdGljIGlubGluZSB2b2lkCiBtZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBjaGFyIHZhbCwgaW50IGNvdW50KQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lvXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaAppbmRleCAwOTMwYmVkLi5kZGQ4MDU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaApAQCAtMjA0LDc3ICsyMDQsNiBAQAogI2RlZmluZSB2aXJ0X3RvX2J1cyB2aXJ0X3RvX3BoeXMKICNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiAKLS8qCi0gKiByZWFkWC93cml0ZVgoKSBhcmUgdXNlZCB0byBhY2Nlc3MgbWVtb3J5IG1hcHBlZCBkZXZpY2VzLiBPbiBzb21lCi0gKiBhcmNoaXRlY3R1cmVzIHRoZSBtZW1vcnkgbWFwcGVkIElPIHN0dWZmIG5lZWRzIHRvIGJlIGFjY2Vzc2VkCi0gKiBkaWZmZXJlbnRseS4gT24gdGhlIHg4NiBhcmNoaXRlY3R1cmUsIHdlIGp1c3QgcmVhZC93cml0ZSB0aGUKLSAqIG1lbW9yeSBsb2NhdGlvbiBkaXJlY3RseS4KLSAqLwotCi1zdGF0aWMgaW5saW5lIF9fdTggX19yZWFkYihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICooX19mb3JjZSB2b2xhdGlsZSBfX3U4ICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSBfX3UxNiBfX3JlYWR3KGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTE2ICopYWRkcjsKLX0KLQotc3RhdGljIF9fYWx3YXlzX2lubGluZSBfX3UzMiBfX3JlYWRsKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTMyICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSBfX3U2NCBfX3JlYWRxKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTY0ICopYWRkcjsKLX0KLQotI2RlZmluZSByZWFkYih4KSBfX3JlYWRiKHgpCi0jZGVmaW5lIHJlYWR3KHgpIF9fcmVhZHcoeCkKLSNkZWZpbmUgcmVhZGwoeCkgX19yZWFkbCh4KQotI2RlZmluZSByZWFkcSh4KSBfX3JlYWRxKHgpCi0jZGVmaW5lIHJlYWRiX3JlbGF4ZWQoYSkgcmVhZGIoYSkKLSNkZWZpbmUgcmVhZHdfcmVsYXhlZChhKSByZWFkdyhhKQotI2RlZmluZSByZWFkbF9yZWxheGVkKGEpIHJlYWRsKGEpCi0jZGVmaW5lIHJlYWRxX3JlbGF4ZWQoYSkgcmVhZHEoYSkKLSNkZWZpbmUgX19yYXdfcmVhZGIgcmVhZGIKLSNkZWZpbmUgX19yYXdfcmVhZHcgcmVhZHcKLSNkZWZpbmUgX19yYXdfcmVhZGwgcmVhZGwKLSNkZWZpbmUgX19yYXdfcmVhZHEgcmVhZHEKLQotI2RlZmluZSBtbWlvd2IoKQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZWwoX191MzIgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSooX19mb3JjZSB2b2xhdGlsZSBfX3UzMiAqKWFkZHIgPSBiOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZXEoX191NjQgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSooX19mb3JjZSB2b2xhdGlsZSBfX3U2NCAqKWFkZHIgPSBiOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZWIoX191OCBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTggKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9fd3JpdGV3KF9fdTE2IGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKF9fZm9yY2Ugdm9sYXRpbGUgX191MTYgKilhZGRyID0gYjsKLX0KLQotI2RlZmluZSB3cml0ZXEodmFsLCBhZGRyKSBfX3dyaXRlcSgodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZWwodmFsLCBhZGRyKSBfX3dyaXRlbCgodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZXcodmFsLCBhZGRyKSBfX3dyaXRldygodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZWIodmFsLCBhZGRyKSBfX3dyaXRlYigodmFsKSwgKGFkZHIpKQotI2RlZmluZSBfX3Jhd193cml0ZWIgd3JpdGViCi0jZGVmaW5lIF9fcmF3X3dyaXRldyB3cml0ZXcKLSNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAotI2RlZmluZSBfX3Jhd193cml0ZXEgd3JpdGVxCi0KIHZvaWQgX19tZW1jcHlfZnJvbWlvKHZvaWQgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQpOwogdm9pZCBfX21lbWNweV90b2lvKHVuc2lnbmVkIGxvbmcsIGNvbnN0IHZvaWQgKiwgdW5zaWduZWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW9fYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L2lvX2FwaWMuaAppbmRleCBkNTkzZTE0Li4xNGY4MmJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW9fYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pb19hcGljLmgKQEAgLTExLDYgKzExLDE1IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAgSW5nbyBNb2xuYXIKICAqLwogCisvKiBJL08gVW5pdCBSZWRpcmVjdGlvbiBUYWJsZSAqLworI2RlZmluZSBJT19BUElDX1JFRElSX1ZFQ1RPUl9NQVNLCTB4MDAwRkYKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9ERVNUX0xPR0lDQUwJMHgwMDgwMAorI2RlZmluZSBJT19BUElDX1JFRElSX0RFU1RfUEhZU0lDQUwJMHgwMDAwMAorI2RlZmluZSBJT19BUElDX1JFRElSX1NFTkRfUEVORElORwkoMSA8PCAxMikKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9SRU1PVEVfSVJSCSgxIDw8IDE0KQorI2RlZmluZSBJT19BUElDX1JFRElSX0xFVkVMX1RSSUdHRVIJKDEgPDwgMTUpCisjZGVmaW5lIElPX0FQSUNfUkVESVJfTUFTS0VECQkoMSA8PCAxNikKKwogLyoKICAqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIElPLUFQSUM6CiAgKi8KQEAgLTExMiwyMSArMTIxLDMyIEBACiAKICNkZWZpbmUgTVBfTUFYX0lPQVBJQ19QSU4gMTI3CiAKLXN0cnVjdCBtcF9pb2FwaWNfcm91dGluZyB7Ci0JaW50IGFwaWNfaWQ7Ci0JaW50IGdzaV9iYXNlOwotCWludCBnc2lfZW5kOwotCURFQ0xBUkVfQklUTUFQKHBpbl9wcm9ncmFtbWVkLCBNUF9NQVhfSU9BUElDX1BJTiArIDEpOworc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgeworCXVuc2lnbmVkIGxvbmcgbXBfYXBpY2FkZHI7CisJdW5zaWduZWQgaW50IG1wX2FwaWNpZDsKKwl1bnNpZ25lZCBjaGFyIG1wX3R5cGU7CisJdW5zaWduZWQgY2hhciBtcF9hcGljdmVyOworCXVuc2lnbmVkIGNoYXIgbXBfZmxhZ3M7Cit9OworCitzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyB7CisJdW5zaWduZWQgaW50IG1wX2RzdGFwaWM7CisJdW5zaWduZWQgY2hhciBtcF90eXBlOworCXVuc2lnbmVkIGNoYXIgbXBfaXJxdHlwZTsKKwl1bnNpZ25lZCBzaG9ydCBtcF9pcnFmbGFnOworCXVuc2lnbmVkIGNoYXIgbXBfc3JjYnVzOworCXVuc2lnbmVkIGNoYXIgbXBfc3JjYnVzaXJxOworCXVuc2lnbmVkIGNoYXIgbXBfZHN0aXJxOwogfTsKIAogLyogSS9PIEFQSUMgZW50cmllcyAqLwotZXh0ZXJuIHN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyBtcF9pb2FwaWNzW01BWF9JT19BUElDU107CitleHRlcm4gc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOwogCiAvKiAjIG9mIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwogZXh0ZXJuIGludCBtcF9pcnFfZW50cmllczsKIAogLyogTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCi1leHRlcm4gc3RydWN0IG1wY19jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKK2V4dGVybiBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CiAKIC8qIG5vbi0wIGlmIGRlZmF1bHQgKHRhYmxlLWxlc3MpIE1QIGNvbmZpZ3VyYXRpb24gKi8KIGV4dGVybiBpbnQgbXBjX2RlZmF1bHRfdHlwZTsKQEAgLTEzNyw2ICsxNTcsOSBAQAogLyogMSBpZiAibm9hcGljIiBib290IG9wdGlvbiBwYXNzZWQgKi8KIGV4dGVybiBpbnQgc2tpcF9pb2FwaWNfc2V0dXA7CiAKKy8qIDEgaWYgdGhlIHRpbWVyIElSUSB1c2VzIHRoZSAnODI1OUEgVmlydHVhbCBXaXJlJyBtb2RlICovCitleHRlcm4gaW50IHRpbWVyX3Rocm91Z2hfODI1OTsKKwogc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfaW9hcGljX3NldHVwKHZvaWQpCiB7CiAJc2tpcF9pb2FwaWNfc2V0dXAgPSAxOwpAQCAtMTYyLDYgKzE4NSw4IEBACiAKICNlbHNlICAvKiAhQ09ORklHX1g4Nl9JT19BUElDICovCiAjZGVmaW5lIGlvX2FwaWNfYXNzaWduX3BjaV9pcnFzIDAKK3N0YXRpYyBjb25zdCBpbnQgdGltZXJfdGhyb3VnaF84MjU5ID0gMDsKK3N0YXRpYyBpbmxpbmUgdm9pZCBpb2FwaWNfaW5pdF9tYXBwaW5ncyh2b2lkKSB7IH0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oIGIvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKaW5kZXggMDc4NjJmZC4uMDY4YzlhNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTEsMjkgKzEsMzQgQEAKLSNpZm5kZWYgX0FTTV9YODY2NF9HQVJUX0gKLSNkZWZpbmUgX0FTTV9YODY2NF9HQVJUX0ggMQorI2lmbmRlZiBfQVNNX1g4NjY0X0lPTU1VX0gKKyNkZWZpbmUgX0FTTV9YODY2NF9JT01NVV9IIDEKIAogZXh0ZXJuIHZvaWQgcGNpX2lvbW11X3NodXRkb3duKHZvaWQpOwogZXh0ZXJuIHZvaWQgbm9faW9tbXVfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgZm9yY2VfaW9tbXUsIG5vX2lvbW11OwogZXh0ZXJuIGludCBpb21tdV9kZXRlY3RlZDsKLSNpZmRlZiBDT05GSUdfSU9NTVUKKworI2lmZGVmIENPTkZJR19HQVJUX0lPTU1VCitleHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmU7CitleHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZDsKK2V4dGVybiBpbnQgZ2FydF9pb21tdV9hcGVydHVyZV9kaXNhYmxlZDsKKworZXh0ZXJuIHZvaWQgZWFybHlfZ2FydF9pb21tdV9jaGVjayh2b2lkKTsKIGV4dGVybiB2b2lkIGdhcnRfaW9tbXVfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGdhcnRfaW9tbXVfc2h1dGRvd24odm9pZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgZ2FydF9wYXJzZV9vcHRpb25zKGNoYXIgKik7Ci1leHRlcm4gdm9pZCBpb21tdV9ob2xlX2luaXQodm9pZCk7Ci1leHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfb3JkZXI7Ci1leHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfZm9yY2U7Ci1leHRlcm4gaW50IGlvbW11X2FwZXJ0dXJlOwotZXh0ZXJuIGludCBpb21tdV9hcGVydHVyZV9hbGxvd2VkOwotZXh0ZXJuIGludCBpb21tdV9hcGVydHVyZV9kaXNhYmxlZDsKLWV4dGVybiBpbnQgZml4X2FwZXJ0dXJlOworZXh0ZXJuIHZvaWQgZ2FydF9pb21tdV9ob2xlX2luaXQodm9pZCk7CisKICNlbHNlCi0jZGVmaW5lIGlvbW11X2FwZXJ0dXJlIDAKLSNkZWZpbmUgaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmUgICAgICAgICAgICAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCAgICAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQgICAxCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBlYXJseV9nYXJ0X2lvbW11X2NoZWNrKHZvaWQpCit7Cit9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnYXJ0X2lvbW11X3NodXRkb3duKHZvaWQpCiB7CiB9Ci0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcGkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcGkuaAppbmRleCBlY2M4MGYzLi4xOTZkNjNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXBpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lwaS5oCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlIDxhc20vaHdfaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CiAKIC8qCiAgKiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBkZWFsIHdpdGggc2VuZGluZyBJUElzIGJldHdlZW4gQ1BVcy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnEuaAppbmRleCA3YmE5MDU0Li4xYTI5MjU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXJxLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lycS5oCkBAIC0xLDUgKzEsNTAgQEAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGluY2x1ZGUgImlycV8zMi5oIgotI2Vsc2UKLSMgaW5jbHVkZSAiaXJxXzY0LmgiCisjaWZuZGVmIF9BU01fSVJRX0gKKyNkZWZpbmUgX0FTTV9JUlFfSAorLyoKKyAqCShDKSAxOTkyLCAxOTkzIExpbnVzIFRvcnZhbGRzLCAoQykgMTk5NyBJbmdvIE1vbG5hcgorICoKKyAqCUlSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCisgKgk8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgorICovCisKKyNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgorI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorCitzdGF0aWMgaW5saW5lIGludCBpcnFfY2Fub25pY2FsaXplKGludCBpcnEpCit7CisJcmV0dXJuICgoaXJxID09IDIpID8gOSA6IGlycSk7Cit9CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKyMgZGVmaW5lIEFSQ0hfSEFTX05NSV9XQVRDSERPRwogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfNEtTVEFDS1MKKyAgZXh0ZXJuIHZvaWQgaXJxX2N0eF9pbml0KGludCBjcHUpOworICBleHRlcm4gdm9pZCBpcnFfY3R4X2V4aXQoaW50IGNwdSk7CisjIGRlZmluZSBfX0FSQ0hfSEFTX0RPX1NPRlRJUlEKKyNlbHNlCisjIGRlZmluZSBpcnFfY3R4X2luaXQoY3B1KSBkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBpcnFfY3R4X2V4aXQoY3B1KSBkbyB7IH0gd2hpbGUgKDApCisjIGlmZGVmIENPTkZJR19YODZfNjQKKyMgIGRlZmluZSBfX0FSQ0hfSEFTX0RPX1NPRlRJUlEKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0lSUUJBTEFOQ0UKK2V4dGVybiBpbnQgaXJxYmFsYW5jZV9kaXNhYmxlKGNoYXIgKnN0cik7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQorI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KK2V4dGVybiB2b2lkIGZpeHVwX2lycXMoY3B1bWFza190IG1hcCk7CisjZW5kaWYKKworZXh0ZXJuIHVuc2lnbmVkIGludCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworZXh0ZXJuIHZvaWQgaW5pdF9JUlEodm9pZCk7CitleHRlcm4gdm9pZCBuYXRpdmVfaW5pdF9JUlEodm9pZCk7CisKKy8qIEludGVycnVwdCB2ZWN0b3IgbWFuYWdlbWVudCAqLworZXh0ZXJuIERFQ0xBUkVfQklUTUFQKHVzZWRfdmVjdG9ycywgTlJfVkVDVE9SUyk7CisKKyNlbmRpZiAvKiBfQVNNX0lSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvaXJxXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiNzlmMzEuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lycV8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0lSUV9ICi0jZGVmaW5lIF9BU01fSVJRX0gKLQotLyoKLSAqCWxpbnV4L2luY2x1ZGUvYXNtL2lycS5oCi0gKgotICoJKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCi0gKgotICoJSVJRL0lQSSBjaGFuZ2VzIHRha2VuIGZyb20gd29yayBieSBUaG9tYXMgUmFka2UKLSAqCTx0b21zb2Z0QGluZm9ybWF0aWsudHUtY2hlbW5pdHouZGU+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0vKiBpbmNsdWRlIGNvbWVzIGZyb20gbWFjaGluZSBzcGVjaWZpYyBkaXJlY3RvcnkgKi8KLSNpbmNsdWRlICJpcnFfdmVjdG9ycy5oIgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi1zdGF0aWMgaW5saW5lIGludCBpcnFfY2Fub25pY2FsaXplKGludCBpcnEpCi17Ci0JcmV0dXJuICgoaXJxID09IDIpID8gOSA6IGlycSk7Ci19Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLSMgZGVmaW5lIEFSQ0hfSEFTX05NSV9XQVRDSERPRwkJLyogU2VlIGluY2x1ZGUvbGludXgvbm1pLmggKi8KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHXzRLU1RBQ0tTCi0gIGV4dGVybiB2b2lkIGlycV9jdHhfaW5pdChpbnQgY3B1KTsKLSAgZXh0ZXJuIHZvaWQgaXJxX2N0eF9leGl0KGludCBjcHUpOwotIyBkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRCi0jZWxzZQotIyBkZWZpbmUgaXJxX2N0eF9pbml0KGNwdSkgZG8geyB9IHdoaWxlICgwKQotIyBkZWZpbmUgaXJxX2N0eF9leGl0KGNwdSkgZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfSVJRQkFMQU5DRQotZXh0ZXJuIGludCBpcnFiYWxhbmNlX2Rpc2FibGUoY2hhciAqc3RyKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCi1leHRlcm4gdm9pZCBmaXh1cF9pcnFzKGNwdW1hc2tfdCBtYXApOwotI2VuZGlmCi0KLXVuc2lnbmVkIGludCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotdm9pZCBpbml0X0lSUSh2b2lkKTsKLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKTsKLQotLyogSW50ZXJydXB0IHZlY3RvciBtYW5hZ2VtZW50ICovCi1leHRlcm4gREVDTEFSRV9CSVRNQVAodXNlZF92ZWN0b3JzLCBOUl9WRUNUT1JTKTsKLQotI2VuZGlmIC8qIF9BU01fSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgzZDM1YS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXJxXzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0jaWZuZGVmIF9BU01fSVJRX0gKLSNkZWZpbmUgX0FTTV9JUlFfSAotCi0vKgotICoJbGludXgvaW5jbHVkZS9hc20vaXJxLmgKLSAqCi0gKgkoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKLSAqCi0gKglJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQotICoJPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KLSAqLwotCi0jZGVmaW5lIFRJTUVSX0lSUSAwCi0KLS8qCi0gKiAxNiA4MjU5QSBJUlEncywgMjA4IHBvdGVudGlhbCBBUElDIGludGVycnVwdCBzb3VyY2VzLgotICogUmlnaHQgbm93IHRoZSBBUElDIGlzIG1vc3RseSBvbmx5IHVzZWQgZm9yIFNNUC4KLSAqIDI1NiB2ZWN0b3JzIGlzIGFuIGFyY2hpdGVjdHVyYWwgbGltaXQuICh3ZSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIDI1NiBkZXZpY2VzIHRoZW9yZXRpY2FsbHksIGJ1dCB0aGV5IHdpbGwKLSAqIGhhdmUgdG8gdXNlIHNoYXJlZCBpbnRlcnJ1cHRzKQotICogU2luY2UgdmVjdG9ycyAweDAwLTB4MWYgYXJlIHVzZWQvcmVzZXJ2ZWQgZm9yIHRoZSBDUFUsCi0gKiB0aGUgdXNhYmxlIHZlY3RvciBzcGFjZSBpcyAweDIwLTB4ZmYgKDIyNCB2ZWN0b3JzKQotICovCi0KLS8qCi0gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdmVjdG9ycyBzdXBwb3J0ZWQgYnkgeDg2XzY0IHByb2Nlc3NvcnMKLSAqIGlzIGxpbWl0ZWQgdG8gMjU2LiBGb3IgcHJvY2Vzc29ycyBvdGhlciB0aGFuIHg4Nl82NCwgTlJfVkVDVE9SUwotICogc2hvdWxkIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHkuCi0gKi8KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYgICAvKiBkdXBsaWNhdGVkIGluIGh3X2lycS5oICovCi0KLSNkZWZpbmUgTlJfSVJRUyAoTlJfVkVDVE9SUyArICgzMiAqIE5SX0NQVVMpKQotI2RlZmluZSBOUl9JUlFfVkVDVE9SUyBOUl9JUlFTCi0KLXN0YXRpYyBpbmxpbmUgaW50IGlycV9jYW5vbmljYWxpemUoaW50IGlycSkKLXsKLQlyZXR1cm4gKChpcnEgPT0gMikgPyA5IDogaXJxKTsKLX0KLQotI2RlZmluZSBBUkNIX0hBU19OTUlfV0FUQ0hET0cJCS8qIFNlZSBpbmNsdWRlL2xpbnV4L25taS5oICovCi0KLSNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci1leHRlcm4gdm9pZCBmaXh1cF9pcnFzKGNwdW1hc2tfdCBtYXApOwotI2VuZGlmCi0KLSNkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRIDEKLQotI2VuZGlmIC8qIF9BU01fSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L2lycV92ZWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFjODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFfdmVjdG9ycy5oCkBAIC0wLDAgKzEsMTY5IEBACisjaWZuZGVmIF9BU01fSVJRX1ZFQ1RPUlNfSAorI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0gKKworI2luY2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KKworI2RlZmluZSBOTUlfVkVDVE9SCQkweDAyCisKKy8qCisgKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0CisgKiBhdCAweDIwOgorICovCisjZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGRlZmluZSBTWVNDQUxMX1ZFQ1RPUgkJMHg4MAorI2Vsc2UKKyMgZGVmaW5lIElBMzJfU1lTQ0FMTF9WRUNUT1IJMHg4MAorI2VuZGlmCisKKy8qCisgKiBSZXNlcnZlIHRoZSBsb3dlc3QgdXNhYmxlIHByaW9yaXR5IGxldmVsIDB4MjAgLSAweDJmIGZvciB0cmlnZ2VyaW5nCisgKiBjbGVhbnVwIGFmdGVyIGlycSBtaWdyYXRpb24gb24gNjQgYml0LgorICovCisjZGVmaW5lIElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgorCisvKgorICogVmVjdG9ycyAweDIwLTB4MmYgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzIG9uIDMyIGJpdC4KKyAqIFZlY3RvcnMgMHgzMC0weDNmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cyBvbiA2NCBiaXQuCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIElSUTBfVkVDVE9SCQkoRklSU1RfRVhURVJOQUxfVkVDVE9SKQorI2Vsc2UKKyNkZWZpbmUgSVJRMF9WRUNUT1IJCShGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyAweDEwKQorI2VuZGlmCisjZGVmaW5lIElSUTFfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxKQorI2RlZmluZSBJUlEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMikKKyNkZWZpbmUgSVJRM19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDMpCisjZGVmaW5lIElSUTRfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA0KQorI2RlZmluZSBJUlE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNSkKKyNkZWZpbmUgSVJRNl9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDYpCisjZGVmaW5lIElSUTdfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA3KQorI2RlZmluZSBJUlE4X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgOCkKKyNkZWZpbmUgSVJROV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDkpCisjZGVmaW5lIElSUTEwX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTApCisjZGVmaW5lIElSUTExX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTEpCisjZGVmaW5lIElSUTEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTIpCisjZGVmaW5lIElSUTEzX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTMpCisjZGVmaW5lIElSUTE0X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTQpCisjZGVmaW5lIElSUTE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTUpCisKKy8qCisgKiBTcGVjaWFsIElSUSB2ZWN0b3JzIHVzZWQgYnkgdGhlIFNNUCBhcmNoaXRlY3R1cmUsIDB4ZjAtMHhmZgorICoKKyAqICBzb21lIG9mIHRoZSBmb2xsb3dpbmcgdmVjdG9ycyBhcmUgJ3JhcmUnLCB0aGV5IGFyZSBtZXJnZWQKKyAqICBpbnRvIGEgc2luZ2xlIHZlY3RvciAoQ0FMTF9GVU5DVElPTl9WRUNUT1IpIHRvIHNhdmUgdmVjdG9yIHNwYWNlLgorICogIFRMQiwgcmVzY2hlZHVsZSBhbmQgbG9jYWwgQVBJQyB2ZWN0b3JzIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4KKyAqCisgKiAgVmVjdG9ycyAweGYwLTB4ZmEgYXJlIGZyZWUgKHJlc2VydmVkIGZvciBmdXR1cmUgTGludXggdXNlKS4KKyAqLworI2lmZGVmIENPTkZJR19YODZfMzIKKworIyBkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJCTB4ZmYKKyMgZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCQkweGZlCisjIGRlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1IJCTB4ZmQKKyMgZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCQkweGZjCisjIGRlZmluZSBDQUxMX0ZVTkNUSU9OX1ZFQ1RPUgkJMHhmYgorIyBkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkJMHhmMAorCisjZWxzZQorCisjZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCQkweGZmCisjZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCQkweGZlCisjZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCQkweGZkCisjZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCQkweGZjCisjZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJCTB4ZmEKKyNkZWZpbmUgVEhSRVNIT0xEX0FQSUNfVkVDVE9SCQkweGY5CisjZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9FTkQJMHhmNworI2RlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQJMHhmMAkvKiBmMC1mNyB1c2VkIGZvciBUTEIgZmx1c2ggKi8KKworI2RlZmluZSBOVU1fSU5WQUxJREFURV9UTEJfVkVDVE9SUwk4CisKKyNlbmRpZgorCisvKgorICogTG9jYWwgQVBJQyB0aW1lciBJUlEgdmVjdG9yIGlzIG9uIGEgZGlmZmVyZW50IHByaW9yaXR5IGxldmVsLAorICogdG8gd29yayBhcm91bmQgdGhlICdsb3N0IGxvY2FsIGludGVycnVwdCBpZiBtb3JlIHRoYW4gMiBJUlEKKyAqIHNvdXJjZXMgcGVyIGxldmVsJyBlcnJhdGEuCisgKi8KKyNkZWZpbmUgTE9DQUxfVElNRVJfVkVDVE9SCTB4ZWYKKworLyoKKyAqIEZpcnN0IEFQSUMgdmVjdG9yIGF2YWlsYWJsZSB0byBkcml2ZXJzOiAodmVjdG9ycyAweDMwLTB4ZWUpIHdlCisgKiBzdGFydCBhdCAweDMxKDB4NDEpIHRvIHNwcmVhZCBvdXQgdmVjdG9ycyBldmVubHkgYmV0d2VlbiBwcmlvcml0eQorICogbGV2ZWxzLiAoMHg4MCBpcyB0aGUgc3lzY2FsbCB2ZWN0b3IpCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGRlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCTB4MzEKKyNlbHNlCisjIGRlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCShJUlExNV9WRUNUT1IgKyAyKQorI2VuZGlmCisKKyNkZWZpbmUgTlJfVkVDVE9SUwkJMjU2CisKKyNkZWZpbmUgRlBVX0lSUQkJCTEzCisKKyNkZWZpbmUJRklSU1RfVk04Nl9JUlEJCTMKKyNkZWZpbmUgTEFTVF9WTTg2X0lSUQkJMTUKKyNkZWZpbmUgaW52YWxpZF92bTg2X2lycShpcnEpCSgoaXJxKSA8IDMgfHwgKGlycSkgPiAxNSkKKworI2lmICFkZWZpbmVkKENPTkZJR19YODZfVk9ZQUdFUikKKworIyBpZiBkZWZpbmVkKENPTkZJR19YODZfSU9fQVBJQykgfHwgZGVmaW5lZChDT05GSUdfUEFSQVZJUlQpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9WSVNXUykKKworIyAgZGVmaW5lIE5SX0lSUVMJCTIyNAorCisjICBpZiAoMjI0ID49IDMyICogTlJfQ1BVUykKKyMgICBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMJTlJfSVJRUworIyAgZWxzZQorIyAgIGRlZmluZSBOUl9JUlFfVkVDVE9SUwkoMzIgKiBOUl9DUFVTKQorIyAgZW5kaWYKKworIyBlbHNlIC8qIElPX0FQSUMgfHwgUEFSQVZJUlQgKi8KKworIyAgZGVmaW5lIE5SX0lSUVMJCTE2CisjICBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMJTlJfSVJRUworCisjIGVuZGlmCisKKyNlbHNlIC8qICFWSVNXUyAmJiAhVk9ZQUdFUiAqLworCisjIGRlZmluZSBOUl9JUlFTCQkyMjQKKyMgZGVmaW5lIE5SX0lSUV9WRUNUT1JTCQlOUl9JUlFTCisKKyNlbmRpZiAvKiBWSVNXUyAqLworCisvKiBWb3lhZ2VyIHNwZWNpZmljIGRlZmluZXMgKi8KKy8qIFRoZXNlIGRlZmluZSB0aGUgQ1BJcyB3ZSB1c2UgaW4gbGludXggKi8KKyNkZWZpbmUgVklDX0NQSV9MRVZFTDAJCQkwCisjZGVmaW5lIFZJQ19DUElfTEVWRUwxCQkJMQorLyogbm93IHRoZSBmYWtlIENQSXMgKi8KKyNkZWZpbmUgVklDX1RJTUVSX0NQSQkJCTIKKyNkZWZpbmUgVklDX0lOVkFMSURBVEVfQ1BJCQkzCisjZGVmaW5lIFZJQ19SRVNDSEVEVUxFX0NQSQkJNAorI2RlZmluZSBWSUNfRU5BQkxFX0lSUV9DUEkJCTUKKyNkZWZpbmUgVklDX0NBTExfRlVOQ1RJT05fQ1BJCQk2CisKKy8qIE5vdyB0aGUgUUlDIENQSXM6ICBTaW5jZSB3ZSBkb24ndCBuZWVkIHRoZSB0d28gaW5pdGlhbCBsZXZlbHMsCisgKiB0aGVzZSBhcmUgMiBsZXNzIHRoYW4gdGhlIFZJQyBDUElzICovCisjZGVmaW5lIFFJQ19DUElfT0ZGU0VUCQkJMQorI2RlZmluZSBRSUNfVElNRVJfQ1BJCQkJKFZJQ19USU1FUl9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0lOVkFMSURBVEVfQ1BJCQkoVklDX0lOVkFMSURBVEVfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisjZGVmaW5lIFFJQ19SRVNDSEVEVUxFX0NQSQkJKFZJQ19SRVNDSEVEVUxFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQorI2RlZmluZSBRSUNfRU5BQkxFX0lSUV9DUEkJCShWSUNfRU5BQkxFX0lSUV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0NBTExfRlVOQ1RJT05fQ1BJCQkoVklDX0NBTExfRlVOQ1RJT05fQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisKKyNkZWZpbmUgVklDX1NUQVJUX0ZBS0VfQ1BJCQlWSUNfVElNRVJfQ1BJCisjZGVmaW5lIFZJQ19FTkRfRkFLRV9DUEkJCVZJQ19DQUxMX0ZVTkNUSU9OX0NQSQorCisvKiB0aGlzIGlzIHRoZSBTWVNfSU5UIENQSS4gKi8KKyNkZWZpbmUgVklDX1NZU19JTlQJCQk4CisjZGVmaW5lIFZJQ19DTU5fSU5UCQkJMTUKKworLyogVGhpcyBpcyB0aGUgYm9vdCBDUEkgZm9yIGFsdGVybmF0ZSBwcm9jZXNzb3JzLiAgSXQgZ2V0cyBvdmVyd3JpdHRlbgorICogYnkgdGhlIGFib3ZlIG9uY2UgdGhlIHN5c3RlbSBoYXMgYWN0aXZhdGVkIGFsbCBhdmFpbGFibGUgcHJvY2Vzc29ycyAqLworI2RlZmluZSBWSUNfQ1BVX0JPT1RfQ1BJCQlWSUNfQ1BJX0xFVkVMMAorI2RlZmluZSBWSUNfQ1BVX0JPT1RfRVJSQVRBX0NQSQkJKFZJQ19DUElfTEVWRUwwICsgOCkKKworCisjZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxZmxhZ3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCmluZGV4IGMyNDI1MjcuLjQyNGFjYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCkBAIC0xMTEsMTQgKzExMSwzNSBAQAogI2RlZmluZSBESVNBQkxFX0lOVEVSUlVQVFMoeCkJY2xpCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CisjZGVmaW5lIFNXQVBHUwlzd2FwZ3MKKy8qCisgKiBDdXJyZW50bHkgcGFyYXZpcnQgY2FuJ3QgaGFuZGxlIHN3YXBncyBuaWNlbHkgd2hlbiB3ZQorICogZG9uJ3QgaGF2ZSBhIHN0YWNrIHdlIGNhbiByZWx5IG9uIChzdWNoIGFzIGEgdXNlciBzcGFjZQorICogc3RhY2spLiAgU28gd2UgZWl0aGVyIGZpbmQgYSB3YXkgYXJvdW5kIHRoZXNlIG9yIGp1c3QgZmF1bHQKKyAqIGFuZCBlbXVsYXRlIGlmIGEgZ3Vlc3QgdHJpZXMgdG8gY2FsbCBzd2FwZ3MgZGlyZWN0bHkuCisgKgorICogRWl0aGVyIHdheSwgdGhpcyBpcyBhIGdvb2Qgd2F5IHRvIGRvY3VtZW50IHRoYXQgd2UgZG9uJ3QKKyAqIGhhdmUgYSByZWxpYWJsZSBzdGFjay4geDg2XzY0IG9ubHkuCisgKi8KKyNkZWZpbmUgU1dBUEdTX1VOU0FGRV9TVEFDSwlzd2FwZ3MKKworI2RlZmluZSBQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCS8qICAqLworCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JaXJldHEKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJCQlcCi0JCQltb3ZxCSVnczpwZGFfb2xkcnNwLCAlcnNwOwlcCi0JCQlzd2FwZ3M7CQkJCVwKLQkJCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQ2NAkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQzMgkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldGwKKyNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVDMyCQlcCisJc3dhcGdzOwkJCQkJXAorCXN0aTsJCQkJCVwKKwlzeXNleGl0CisKICNlbHNlCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JCWlyZXQKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJc3RpOyBzeXNleGl0CisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQJc3RpOyBzeXNleGl0CiAjZGVmaW5lIEdFVF9DUjBfSU5UT19FQVgJCW1vdmwgJWNyMCwgJWVheAogI2VuZGlmCiAKQEAgLTE2OSwxOCArMTkwLDYgQEAKICNlbHNlCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0vKgotICogQ3VycmVudGx5IHBhcmF2aXJ0IGNhbid0IGhhbmRsZSBzd2FwZ3MgbmljZWx5IHdoZW4gd2UKLSAqIGRvbid0IGhhdmUgYSBzdGFjayB3ZSBjYW4gcmVseSBvbiAoc3VjaCBhcyBhIHVzZXIgc3BhY2UKLSAqIHN0YWNrKS4gIFNvIHdlIGVpdGhlciBmaW5kIGEgd2F5IGFyb3VuZCB0aGVzZSBvciBqdXN0IGZhdWx0Ci0gKiBhbmQgZW11bGF0ZSBpZiBhIGd1ZXN0IHRyaWVzIHRvIGNhbGwgc3dhcGdzIGRpcmVjdGx5LgotICoKLSAqIEVpdGhlciB3YXksIHRoaXMgaXMgYSBnb29kIHdheSB0byBkb2N1bWVudCB0aGF0IHdlIGRvbid0Ci0gKiBoYXZlIGEgcmVsaWFibGUgc3RhY2suIHg4Nl82NCBvbmx5LgotICovCi0jZGVmaW5lIFNXQVBHU19VTlNBRkVfU1RBQ0sJc3dhcGdzCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJY2FsbCB0cmFjZV9oYXJkaXJxc19vbl90aHVuawotI2RlZmluZSBBUkNIX1RSQUNFX0lSUVNfT0ZGCQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVQJCWNhbGwgbG9ja2RlcF9zeXNfZXhpdF90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVRfSVJRCVwKIAlUUkFDRV9JUlFTX09OOyBcCkBAIC0xOTIsMjQgKzIwMSw2IEBACiAJVFJBQ0VfSVJRU19PRkY7CiAKICNlbHNlCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29uOwkJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KLSNkZWZpbmUgQVJDSF9UUkFDRV9JUlFTX09GRgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZjsJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KICNkZWZpbmUgQVJDSF9MT0NLREVQX1NZU19FWElUCQkJXAogCXB1c2hsICVlYXg7CQkJCVwKIAlwdXNobCAlZWN4OwkJCQlcCkBAIC0yMjMsOCArMjE0LDggQEAKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PTgkJQVJDSF9UUkFDRV9JUlFTX09OCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJQVJDSF9UUkFDRV9JUlFTX09GRgorIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04JCWNhbGwgdHJhY2VfaGFyZGlycXNfb25fdGh1bms7CisjICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJY2FsbCB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bms7CiAjZWxzZQogIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04KICMgIGRlZmluZSBUUkFDRV9JUlFTX09GRgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2t2bV9ob3N0LmggYi9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaAppbmRleCAxZDhjZDAxLi44NDRmMmE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaAorKysgYi9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaApAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+CiAjaW5jbHVkZSA8bGludXgva3ZtX3R5cGVzLmg+CiAKKyNpbmNsdWRlIDxhc20vcHZjbG9jay1hYmkuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogCiAjZGVmaW5lIEtWTV9NQVhfVkNQVVMgMTYKQEAgLTI4Miw3ICsyODMsOCBAQAogCXN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0IGVtdWxhdGVfY3R4dDsKIAogCWdwYV90IHRpbWU7Ci0Jc3RydWN0IGt2bV92Y3B1X3RpbWVfaW5mbyBodl9jbG9jazsKKwlzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyBodl9jbG9jazsKKwl1bnNpZ25lZCBpbnQgaHZfY2xvY2tfdHNjX2toejsKIAl1bnNpZ25lZCBpbnQgdGltZV9vZmZzZXQ7CiAJc3RydWN0IHBhZ2UgKnRpbWVfcGFnZTsKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYva3ZtX3BhcmEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCmluZGV4IDUwOTg0NTkuLjc2ZjM5MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCkBAIC00OCwyNCArNDgsNiBAQAogI2lmZGVmIF9fS0VSTkVMX18KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLS8qIHhlbiBiaW5hcnktY29tcGF0aWJsZSBpbnRlcmZhY2UuIFNlZSB4ZW4gaGVhZGVycyBmb3IgZGV0YWlscyAqLwotc3RydWN0IGt2bV92Y3B1X3RpbWVfaW5mbyB7Ci0JdWludDMyX3QgdmVyc2lvbjsKLQl1aW50MzJfdCBwYWQwOwotCXVpbnQ2NF90IHRzY190aW1lc3RhbXA7Ci0JdWludDY0X3Qgc3lzdGVtX3RpbWU7Ci0JdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7Ci0JaW50OF90ICAgdHNjX3NoaWZ0OwotCWludDhfdAkgcGFkWzNdOwotfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7IC8qIDMyIGJ5dGVzICovCi0KLXN0cnVjdCBrdm1fd2FsbF9jbG9jayB7Ci0JdWludDMyX3Qgd2NfdmVyc2lvbjsKLQl1aW50MzJfdCB3Y19zZWM7Ci0JdWludDMyX3Qgd2NfbnNlYzsKLX0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwotCi0KIGV4dGVybiB2b2lkIGt2bWNsb2NrX2luaXQodm9pZCk7CiAKIApAQCAtODksNyArNzEsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihucikpOworCQkgICAgIDogImEiKG5yKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTk4LDcgKzgxLDggQEAKIAlsb25nIHJldDsKIAlhc20gdm9sYXRpbGUoS1ZNX0hZUEVSQ0FMTAogCQkgICAgIDogIj1hIihyZXQpCi0JCSAgICAgOiAiYSIobnIpLCAiYiIocDEpKTsKKwkJICAgICA6ICJhIihuciksICJiIihwMSkKKwkJICAgICA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMDgsNyArOTIsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMikpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTExOCw3ICsxMDMsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMiksICJkIihwMykpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEyOSw3ICsxMTUsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMiksICJkIihwMyksICJTIihwNCkpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKSwgIlMiKHA0KQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX2FwaWMuaAppbmRleCA4MzI3OTA3Li4wMTdjOGMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfYXBpYy5oCkBAIC04MSw3ICs4MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IGFwaWNpZF90b19ub2RlKGludCBsb2dpY2FsX2FwaWNpZCkKIHsKLQlyZXR1cm4gKDApOworCXJldHVybiBhcGljaWRfMl9ub2RlW2hhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpXTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgY3B1X3ByZXNlbnRfdG9fYXBpY2lkKGludCBtcHNfY3B1KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfbXBzcGVjLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI1ZGFkYy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9tcHNwZWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX01QU1BFQ19ICi0jZGVmaW5lIF9fQVNNX01BQ0hfTVBTUEVDX0gKLQotI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgMjU2Ci0KLSNkZWZpbmUgTUFYX01QX0JVU1NFUyAzMgotCi0jZW5kaWYgLyogX19BU01fTUFDSF9NUFNQRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9ycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODFjNjNjLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvaXJxX3ZlY3RvcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gI2RlZmluZXMgZm9yIGFsbCBvZiB0aGUgaW50ZXJydXB0IHZlY3RvcgotICogbnVtYmVycyB1c2VkIGJ5IHRoaXMgYXJjaGl0ZWN0dXJlLgotICoKLSAqIEluIGFkZGl0aW9uLCB0aGVyZSBhcmUgc29tZSBzdGFuZGFyZCBkZWZpbmVzOgotICoKLSAqCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUjoKLSAqCQlUaGUgZmlyc3QgZnJlZSBwbGFjZSBmb3IgZXh0ZXJuYWwgaW50ZXJydXB0cwotICoKLSAqCVNZU0NBTExfVkVDVE9SOgotICoJCVRoZSBJUlEgdmVjdG9yIGEgc3lzY2FsbCBtYWtlcyB0aGUgdXNlciB0byBrZXJuZWwgdHJhbnNpdGlvbgotICoJCXVuZGVyLgotICoKLSAqCVRJTUVSX0lSUToKLSAqCQlUaGUgSVJRIG51bWJlciB0aGUgdGltZXIgaW50ZXJydXB0IGNvbWVzIGluIGF0LgotICoKLSAqCU5SX0lSUVM6Ci0gKgkJVGhlIHRvdGFsIG51bWJlciBvZiBpbnRlcnJ1cHQgdmVjdG9ycyAoaW5jbHVkaW5nIGFsbCB0aGUKLSAqCQlhcmNoaXRlY3R1cmUgc3BlY2lmaWMgaW50ZXJydXB0cykgbmVlZGVkLgotICoKLSAqLwkJCQotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKLSNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICi0KLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKLQotLyoKLSAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotCi0vKgotICogU3BlY2lhbCBJUlEgdmVjdG9ycyB1c2VkIGJ5IHRoZSBTTVAgYXJjaGl0ZWN0dXJlLCAweGYwLTB4ZmYKLSAqCi0gKiAgc29tZSBvZiB0aGUgZm9sbG93aW5nIHZlY3RvcnMgYXJlICdyYXJlJywgdGhleSBhcmUgbWVyZ2VkCi0gKiAgaW50byBhIHNpbmdsZSB2ZWN0b3IgKENBTExfRlVOQ1RJT05fVkVDVE9SKSB0byBzYXZlIHZlY3RvciBzcGFjZS4KLSAqICBUTEIsIHJlc2NoZWR1bGUgYW5kIGxvY2FsIEFQSUMgdmVjdG9ycyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuCi0gKgotICogIFZlY3RvcnMgMHhmMC0weGZhIGFyZSBmcmVlIChyZXNlcnZlZCBmb3IgZnV0dXJlIExpbnV4IHVzZSkuCi0gKi8KLSNkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJMHhmZgotI2RlZmluZSBFUlJPUl9BUElDX1ZFQ1RPUgkweGZlCi0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUgkweGZkCi0jZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCTB4ZmMKLSNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJMHhmYgotCi0jZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJMHhmMAotLyoKLSAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbCwKLSAqIHRvIHdvcmsgYXJvdW5kIHRoZSAnbG9zdCBsb2NhbCBpbnRlcnJ1cHQgaWYgbW9yZSB0aGFuIDIgSVJRCi0gKiBzb3VyY2VzIHBlciBsZXZlbCcgZXJyYXRhLgotICovCi0jZGVmaW5lIExPQ0FMX1RJTUVSX1ZFQ1RPUgkweGVmCi0KLS8qCi0gKiBGaXJzdCBBUElDIHZlY3RvciBhdmFpbGFibGUgdG8gZHJpdmVyczogKHZlY3RvcnMgMHgzMC0weGVlKQotICogd2Ugc3RhcnQgYXQgMHgzMSB0byBzcHJlYWQgb3V0IHZlY3RvcnMgZXZlbmx5IGJldHdlZW4gcHJpb3JpdHkKLSAqIGxldmVscy4gKDB4ODAgaXMgdGhlIHN5c2NhbGwgdmVjdG9yKQotICovCi0jZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJMHgzMQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYKLQotI2RlZmluZSBUSU1FUl9JUlEgMAotCi0vKgotICogMTYgODI1OUEgSVJRJ3MsIDIwOCBwb3RlbnRpYWwgQVBJQyBpbnRlcnJ1cHQgc291cmNlcy4KLSAqIFJpZ2h0IG5vdyB0aGUgQVBJQyBpcyBtb3N0bHkgb25seSB1c2VkIGZvciBTTVAuCi0gKiAyNTYgdmVjdG9ycyBpcyBhbiBhcmNoaXRlY3R1cmFsIGxpbWl0LiAod2UgY2FuIGhhdmUKLSAqIG1vcmUgdGhhbiAyNTYgZGV2aWNlcyB0aGVvcmV0aWNhbGx5LCBidXQgdGhleSB3aWxsCi0gKiBoYXZlIHRvIHVzZSBzaGFyZWQgaW50ZXJydXB0cykKLSAqIFNpbmNlIHZlY3RvcnMgMHgwMC0weDFmIGFyZSB1c2VkL3Jlc2VydmVkIGZvciB0aGUgQ1BVLAotICogdGhlIHVzYWJsZSB2ZWN0b3Igc3BhY2UgaXMgMHgyMC0weGZmICgyMjQgdmVjdG9ycykKLSAqLwotCi0vKgotICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZlY3RvcnMgc3VwcG9ydGVkIGJ5IGkzODYgcHJvY2Vzc29ycwotICogaXMgbGltaXRlZCB0byAyNTYuIEZvciBwcm9jZXNzb3JzIG90aGVyIHRoYW4gaTM4NiwgTlJfVkVDVE9SUwotICogc2hvdWxkIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHkuCi0gKi8KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLQotI2luY2x1ZGUgImlycV92ZWN0b3JzX2xpbWl0cy5oIgotCi0jZGVmaW5lIEZQVV9JUlEJCQkxMwotCi0jZGVmaW5lCUZJUlNUX1ZNODZfSVJRCQkzCi0jZGVmaW5lIExBU1RfVk04Nl9JUlEJCTE1Ci0jZGVmaW5lIGludmFsaWRfdm04Nl9pcnEoaXJxKQkoKGlycSkgPCAzIHx8IChpcnEpID4gMTUpCi0KLQotI2VuZGlmIC8qIF9BU01fSVJRX1ZFQ1RPUlNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9yc19saW1pdHMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvaXJxX3ZlY3RvcnNfbGltaXRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MGM3YTYuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9yc19saW1pdHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSNpZm5kZWYgX0FTTV9JUlFfVkVDVE9SU19MSU1JVFNfSAotI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0xJTUlUU19ICi0KLSNpZiBkZWZpbmVkKENPTkZJR19YODZfSU9fQVBJQykgfHwgZGVmaW5lZChDT05GSUdfUEFSQVZJUlQpCi0jZGVmaW5lIE5SX0lSUVMgMjI0Ci0jIGlmICgyMjQgPj0gMzIgKiBOUl9DUFVTKQotIyBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotIyBlbHNlCi0jIGRlZmluZSBOUl9JUlFfVkVDVE9SUyAoMzIgKiBOUl9DUFVTKQotIyBlbmRpZgotI2Vsc2UKLSNkZWZpbmUgTlJfSVJRUyAxNgotI2RlZmluZSBOUl9JUlFfVkVDVE9SUyBOUl9JUlFTCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9BU01fSVJRX1ZFQ1RPUlNfTElNSVRTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L21hY2hfYXBpYy5oCmluZGV4IDIxMDAzYjUuLjBiMmNkZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9tYWNoX2FwaWMuaApAQCAtNzcsNyArNzcsMTEgQEAKIAogc3RhdGljIGlubGluZSBpbnQgYXBpY2lkX3RvX25vZGUoaW50IGxvZ2ljYWxfYXBpY2lkKQogeworI2lmZGVmIENPTkZJR19TTVAKKwlyZXR1cm4gYXBpY2lkXzJfbm9kZVtoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKV07CisjZWxzZQogCXJldHVybiAwOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9zZXR1cF9hcmNoLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaAppbmRleCA2MDVlM2NjLi4zODg0NjIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaApAQCAtMSw3ICsxLDMgQEAKIC8qIEhvb2sgdG8gY2FsbCBCSU9TIGluaXRpYWxpc2F0aW9uIGZ1bmN0aW9uICovCiAKIC8qIG5vIGFjdGlvbiBmb3IgZ2VuZXJpYyAqLwotCi0jaWZuZGVmIEFSQ0hfU0VUVVAKLSNkZWZpbmUgQVJDSF9TRVRVUAotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NtcGJvb3RfaG9va3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCmluZGV4IDU2ZDBlMWYuLjU2ZDAwMWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCkBAIC0zLDcgKzMsOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9jbGVhcl9pb19hcGljX2lycXModm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlpb19hcGljX2lycXMgPSAwOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3NldHVwX3dhcm1fcmVzZXRfdmVjdG9yKHVuc2lnbmVkIGxvbmcgc3RhcnRfZWlwKQpAQCAtMzUsMTcgKzM3LDIzIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgc21wYm9vdF9zZXR1cF9pb19hcGljKHZvaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJLyoKIAkgKiBIZXJlIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlcmUgaXMgYW4gSU8tQVBJQyBpbiB0aGUgc3lzdGVtLiBMZXQncwogCSAqIGdvIGFuZCBzZXQgaXQgdXA6CiAJICovCiAJaWYgKCFza2lwX2lvYXBpY19zZXR1cCAmJiBucl9pb2FwaWNzKQogCQlzZXR1cF9JT19BUElDKCk7Ci0JZWxzZQorCWVsc2UgewogCQlucl9pb2FwaWNzID0gMDsKKwkJbG9jYWxpc2Vfbm1pX3dhdGNoZG9nKCk7CisJfQorI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X2NsZWFyX2lvX2FwaWModm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlucl9pb2FwaWNzID0gMDsKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZXM3MDAwL21hY2hfbXBzcGVjLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1lczcwMDAvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFmNTAzOS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1lczcwMDAvbWFjaF9tcHNwZWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX01QU1BFQ19ICi0jZGVmaW5lIF9fQVNNX01BQ0hfTVBTUEVDX0gKLQotI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgMjU2Ci0KLSNkZWZpbmUgTUFYX01QX0JVU1NFUyAyNTYKLQotI2VuZGlmIC8qIF9fQVNNX01BQ0hfTVBTUEVDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWdlbmVyaWMvbWFjaF9tcHBhcnNlLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljL21hY2hfbXBwYXJzZS5oCmluZGV4IDBkMGI1YmEuLjU4NmNhZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWdlbmVyaWMvbWFjaF9tcHBhcnNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYy9tYWNoX21wcGFyc2UuaApAQCAtMSw3ICsxLDEwIEBACiAjaWZuZGVmIF9NQUNIX01QUEFSU0VfSAogI2RlZmluZSBfTUFDSF9NUFBBUlNFX0ggMQogCi1pbnQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwgY2hhciAqcHJvZHVjdGlkKTsgCi1pbnQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCk7IAorCitleHRlcm4gaW50IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCQkgY2hhciAqcHJvZHVjdGlkKTsKKworZXh0ZXJuIGludCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCmluZGV4IDc1YTU2ZTUuLmQ4MDI0NjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCkBAIC0yMCw4ICsyMCwxNCBAQAogI2RlZmluZSBJTlRfREVMSVZFUllfTU9ERSBkZXN0X0xvd2VzdFByaW8KICNkZWZpbmUgSU5UX0RFU1RfTU9ERSAwICAgICAvKiBwaHlzaWNhbCBkZWxpdmVyeSBvbiBMT0NBTCBxdWFkICovCiAgCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF91c2VkKGJpdG1hcCwgYXBpY2lkKSBwaHlzaWRfaXNzZXQoYXBpY2lkLCBiaXRtYXApCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF9wcmVzZW50KGJpdCkgcGh5c2lkX2lzc2V0KGJpdCwgcGh5c19jcHVfcHJlc2VudF9tYXApCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2hlY2tfYXBpY2lkX3VzZWQocGh5c2lkX21hc2tfdCBiaXRtYXAsIGludCBhcGljaWQpCit7CisJcmV0dXJuIHBoeXNpZF9pc3NldChhcGljaWQsIGJpdG1hcCk7Cit9CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2hlY2tfYXBpY2lkX3ByZXNlbnQoaW50IGJpdCkKK3sKKwlyZXR1cm4gcGh5c2lkX2lzc2V0KGJpdCwgcGh5c19jcHVfcHJlc2VudF9tYXApOworfQogI2RlZmluZSBhcGljaWRfY2x1c3RlcihhcGljaWQpIChhcGljaWQgJiAweEYwKQogCiBzdGF0aWMgaW5saW5lIGludCBhcGljX2lkX3JlZ2lzdGVyZWQodm9pZCkKQEAgLTc3LDExICs4Myw2IEBACiAJCXJldHVybiBCQURfQVBJQ0lEOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChpbnQgcXVhZCwgaW50IHBoeXNfYXBpY2lkKQotewotCXJldHVybiAocXVhZCA8PCA0KSArIChwaHlzX2FwaWNpZCA/IHBoeXNfYXBpY2lkIDw8IDEgOiAxKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgYXBpY2lkX3RvX25vZGUoaW50IGxvZ2ljYWxfYXBpY2lkKSAKIHsKIAlyZXR1cm4gbG9naWNhbF9hcGljaWQgPj4gNDsKQEAgLTk1LDMwICs5Niw2IEBACiAJcmV0dXJuIHBoeXNpZF9tYXNrX29mX3BoeXNpZChjcHUgKyA0Km5vZGUpOwogfQogCi1zdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiB7Ci0JdW5zaWduZWQgY2hhciBtcGNfdHlwZTsKLQl1bnNpZ25lZCBjaGFyIHRyYW5zX2xlbjsKLQl1bnNpZ25lZCBjaGFyIHRyYW5zX3R5cGU7Ci0JdW5zaWduZWQgY2hhciB0cmFuc19xdWFkOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfZ2xvYmFsOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfbG9jYWw7Ci0JdW5zaWduZWQgc2hvcnQgdHJhbnNfcmVzZXJ2ZWQ7Ci19OwotCi1zdGF0aWMgaW5saW5lIGludCBtcGNfYXBpY19pZChzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0sIAotCQkJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uX3JlY29yZCkKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uX3JlY29yZC0+dHJhbnNfcXVhZDsKLQlpbnQgbG9naWNhbF9hcGljaWQgPSBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChxdWFkLCBtLT5tcGNfYXBpY2lkKTsKLQotCXByaW50aygiUHJvY2Vzc29yICMlZCAldToldSBBUElDIHZlcnNpb24gJWQgKHF1YWQgJWQsIGFwaWMgJWQpXG4iLAotCSAgICAgICBtLT5tcGNfYXBpY2lkLAotCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfRkFNSUxZX01BU0spID4+IDgsCi0JICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9NT0RFTF9NQVNLKSA+PiA0LAotCSAgICAgICBtLT5tcGNfYXBpY3ZlciwgcXVhZCwgbG9naWNhbF9hcGljaWQpOwotCXJldHVybiBsb2dpY2FsX2FwaWNpZDsKLX0KLQogZXh0ZXJuIHZvaWQgKnhxdWFkX3BvcnRpbzsKIAogc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3BvcnRpb19yZW1hcCh2b2lkKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9tcHBhcnNlLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaAppbmRleCA0NTliMTI0Li42MjZhZWY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaApAQCAtMSwxNCArMSw3IEBACiAjaWZuZGVmIF9fQVNNX01BQ0hfTVBQQVJTRV9ICiAjZGVmaW5lIF9fQVNNX01BQ0hfTVBQQVJTRV9ICiAKLWV4dGVybiB2b2lkIG1wY19vZW1fYnVzX2luZm8oc3RydWN0IG1wY19jb25maWdfYnVzICptLCBjaGFyICpuYW1lLAotCQkJICAgICBzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pOwotZXh0ZXJuIHZvaWQgbXBjX29lbV9wY2lfYnVzKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwKLQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pOwotCi0vKiBIb29rIGZyb20gZ2VuZXJpYyBBQ1BJIHRhYmxlcy5jICovCi1zdGF0aWMgaW5saW5lIHZvaWQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCkKLXsKLX0KK2V4dGVybiB2b2lkIG51bWFxX21wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCQkJY2hhciAqcHJvZHVjdGlkKTsKIAogI2VuZGlmIC8qIF9fQVNNX01BQ0hfTVBQQVJTRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wc3BlYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmYjA5OC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyA1MTIKLQotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDMyCi0KLSNlbmRpZiAvKiBfX0FTTV9NQUNIX01QU1BFQ19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1zdW1taXQvbWFjaF9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXN1bW1pdC9tYWNoX21wc3BlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDc2NTUyLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXN1bW1pdC9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyAyNTYKLQotLyogTWF4aW11bSAyNTYgUENJIGJ1c3NlcywgcGx1cyAxIElTQSBidXMgaW4gZWFjaCBvZiA0IGNhYmluZXRzLiAqLwotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDI2MAotCi0jZW5kaWYgLyogX19BU01fTUFDSF9NUFNQRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvaXJxX3ZlY3RvcnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL2lycV92ZWN0b3JzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNTcyZDguLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvaXJxX3ZlY3RvcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLSNpZm5kZWYgX0FTTV9JUlFfVkVDVE9SU19ICi0jZGVmaW5lIF9BU01fSVJRX1ZFQ1RPUlNfSAotCi0vKgotICogSURUIHZlY3RvcnMgdXNhYmxlIGZvciBleHRlcm5hbCBpbnRlcnJ1cHQgc291cmNlcyBzdGFydAotICogYXQgMHgyMDoKLSAqLwotI2RlZmluZSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IJMHgyMAotCi0jZGVmaW5lIFNZU0NBTExfVkVDVE9SCQkweDgwCi0KLS8qCi0gKiBWZWN0b3JzIDB4MjAtMHgyZiBhcmUgdXNlZCBmb3IgSVNBIGludGVycnVwdHMuCi0gKi8KLQotLyoKLSAqIFNwZWNpYWwgSVJRIHZlY3RvcnMgdXNlZCBieSB0aGUgU01QIGFyY2hpdGVjdHVyZSwgMHhmMC0weGZmCi0gKgotICogIHNvbWUgb2YgdGhlIGZvbGxvd2luZyB2ZWN0b3JzIGFyZSAncmFyZScsIHRoZXkgYXJlIG1lcmdlZAotICogIGludG8gYSBzaW5nbGUgdmVjdG9yIChDQUxMX0ZVTkNUSU9OX1ZFQ1RPUikgdG8gc2F2ZSB2ZWN0b3Igc3BhY2UuCi0gKiAgVExCLCByZXNjaGVkdWxlIGFuZCBsb2NhbCBBUElDIHZlY3RvcnMgYXJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLgotICoKLSAqICBWZWN0b3JzIDB4ZjAtMHhmYSBhcmUgZnJlZSAocmVzZXJ2ZWQgZm9yIGZ1dHVyZSBMaW51eCB1c2UpLgotICovCi0jZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCTB4ZmYKLSNkZWZpbmUgRVJST1JfQVBJQ19WRUNUT1IJMHhmZQotI2RlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1IJMHhmZAotI2RlZmluZSBSRVNDSEVEVUxFX1ZFQ1RPUgkweGZjCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCTB4ZmIKLQotI2RlZmluZSBUSEVSTUFMX0FQSUNfVkVDVE9SCTB4ZjAKLS8qCi0gKiBMb2NhbCBBUElDIHRpbWVyIElSUSB2ZWN0b3IgaXMgb24gYSBkaWZmZXJlbnQgcHJpb3JpdHkgbGV2ZWwsCi0gKiB0byB3b3JrIGFyb3VuZCB0aGUgJ2xvc3QgbG9jYWwgaW50ZXJydXB0IGlmIG1vcmUgdGhhbiAyIElSUQotICogc291cmNlcyBwZXIgbGV2ZWwnIGVycmF0YS4KLSAqLwotI2RlZmluZSBMT0NBTF9USU1FUl9WRUNUT1IJMHhlZgotCi0vKgotICogRmlyc3QgQVBJQyB2ZWN0b3IgYXZhaWxhYmxlIHRvIGRyaXZlcnM6ICh2ZWN0b3JzIDB4MzAtMHhlZSkKLSAqIHdlIHN0YXJ0IGF0IDB4MzEgdG8gc3ByZWFkIG91dCB2ZWN0b3JzIGV2ZW5seSBiZXR3ZWVuIHByaW9yaXR5Ci0gKiBsZXZlbHMuICgweDgwIGlzIHRoZSBzeXNjYWxsIHZlY3RvcikKLSAqLwotI2RlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCTB4MzEKLSNkZWZpbmUgRklSU1RfU1lTVEVNX1ZFQ1RPUgkweGVmCi0KLSNkZWZpbmUgVElNRVJfSVJRIDAKLQotLyoKLSAqIElSUSBkZWZpbml0aW9ucwotICovCi0jZGVmaW5lIE5SX1ZFQ1RPUlMgMjU2Ci0jZGVmaW5lIE5SX0lSUVMgMjI0Ci0jZGVmaW5lIE5SX0lSUV9WRUNUT1JTIE5SX0lSUVMKLQotI2RlZmluZSBGUFVfSVJRCQkJMTMKLQotI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMwotI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQotI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCmluZGV4IGE5ZWYzM2EuLjY5NDNlN2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCkBAIC0xLDEwMyArMSBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX0FQSUNfSAotI2RlZmluZSBfX0FTTV9NQUNIX0FQSUNfSAotCi0jaW5jbHVkZSA8bWFjaF9hcGljZGVmLmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotCi0jZGVmaW5lIEFQSUNfREZSX1ZBTFVFCShBUElDX0RGUl9GTEFUKQotCi0jZGVmaW5lIG5vX2JhbGFuY2VfaXJxICgwKQotI2RlZmluZSBlc3JfZGlzYWJsZSAoMCkKLQotI2RlZmluZSBJTlRfREVMSVZFUllfTU9ERSBkZXN0X0xvd2VzdFByaW8KLSNkZWZpbmUgSU5UX0RFU1RfTU9ERSAxICAgICAvKiBsb2dpY2FsIGRlbGl2ZXJ5IGJyb2FkY2FzdCB0byBhbGwgcHJvY3MgKi8KLQotI2lmZGVmIENPTkZJR19TTVAKLSAjZGVmaW5lIFRBUkdFVF9DUFVTIGNwdV9vbmxpbmVfbWFwCi0jZWxzZQotICNkZWZpbmUgVEFSR0VUX0NQVVMgY3B1bWFza19vZl9jcHUoMCkKLSNlbmRpZgotCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF91c2VkKGJpdG1hcCwgYXBpY2lkKQlwaHlzaWRfaXNzZXQoYXBpY2lkLCBiaXRtYXApCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF9wcmVzZW50KGJpdCkJCXBoeXNpZF9pc3NldChiaXQsIHBoeXNfY3B1X3ByZXNlbnRfbWFwKQotCi1zdGF0aWMgaW5saW5lIGludCBhcGljX2lkX3JlZ2lzdGVyZWQodm9pZCkKLXsKLQlyZXR1cm4gcGh5c2lkX2lzc2V0KEdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKSwgcGh5c19jcHVfcHJlc2VudF9tYXApOwotfQotCi0vKgotICogU2V0IHVwIHRoZSBsb2dpY2FsIGRlc3RpbmF0aW9uIElELgotICoKLSAqIEludGVsIHJlY29tbWVuZHMgdG8gc2V0IERGUiwgTERSIGFuZCBUUFIgYmVmb3JlIGVuYWJsaW5nCi0gKiBhbiBBUElDLiAgU2VlIGUuZy4gIkFQLTM4OCA4MjQ4OURYIFVzZXIncyBNYW51YWwiIChJbnRlbAotICogZG9jdW1lbnQgbnVtYmVyIDI5MjExNikuICBTbyBoZXJlIGl0IGdvZXMuLi4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGluaXRfYXBpY19sZHIodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHZhbDsKLQotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfREZSLCBBUElDX0RGUl9WQUxVRSk7Ci0JdmFsID0gYXBpY19yZWFkKEFQSUNfTERSKSAmIH5BUElDX0xEUl9NQVNLOwotCXZhbCB8PSBTRVRfQVBJQ19MT0dJQ0FMX0lEKDFVTCA8PCBzbXBfcHJvY2Vzc29yX2lkKCkpOwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTERSLCB2YWwpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc3VtbWl0X2NoZWNrKGNoYXIgKm9lbSwgY2hhciAqcHJvZHVjdGlkKSAKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNldHVwX2FwaWNfcm91dGluZyh2b2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIGludCBhcGljaWRfdG9fbm9kZShpbnQgbG9naWNhbF9hcGljaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIE1hcHBpbmcgZnJvbSBjcHUgbnVtYmVyIHRvIGxvZ2ljYWwgYXBpY2lkICovCi1zdGF0aWMgaW5saW5lIGludCBjcHVfdG9fbG9naWNhbF9hcGljaWQoaW50IGNwdSkKLXsKLQlyZXR1cm4gMSA8PCBjcHU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGNwdV9wcmVzZW50X3RvX2FwaWNpZChpbnQgbXBzX2NwdSkKLXsKLQlpZiAobXBzX2NwdSA8IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkKLQkJcmV0dXJuIG1wc19jcHU7Ci0JZWxzZQotCQlyZXR1cm4gQkFEX0FQSUNJRDsKLX0KLQotc3RhdGljIGlubGluZSBwaHlzaWRfbWFza190IGFwaWNpZF90b19jcHVfcHJlc2VudChpbnQgYXBpY2lkKQotewotCXJldHVybiBwaHlzaWRfbWFza19vZl9waHlzaWQoYXBpY2lkKTsKLX0KLQotI2RlZmluZSBXQUtFX1NFQ09OREFSWV9WSUFfSU5JVAotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfcG9ydGlvX3JlbWFwKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfYXBpY19tb2RlKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQoaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCkKLXsKLQlyZXR1cm4gcGh5c2lkX2lzc2V0KGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgcGh5c19jcHVfcHJlc2VudF9tYXApOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcHVfbWFza190b19hcGljaWQoY3B1bWFza190IGNwdW1hc2spCi17Ci0JcmV0dXJuIGNwdXNfYWRkcihjcHVtYXNrKVswXTsKLX0KLQotc3RhdGljIGlubGluZSB1MzIgcGh5c19wa2dfaWQodTMyIGNwdWlkX2FwaWMsIGludCBpbmRleF9tc2IpCi17Ci0JcmV0dXJuIGNwdWlkX2FwaWMgPj4gaW5kZXhfbXNiOwotfQotCi0jZW5kaWYgLyogX19BU01fTUFDSF9BUElDX0ggKi8KKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9tYWNoX2FwaWNkZWYuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCmluZGV4IDgyNmNmYTkuLjQyNzExZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCkBAIC0xLDEyICsxIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfQVBJQ0RFRl9ICi0jZGVmaW5lIF9fQVNNX01BQ0hfQVBJQ0RFRl9ICi0KLSNkZWZpbmUgICAgICAgICBBUElDX0lEX01BU0sgICAgICAgICAgICAoMHhGPDwyNCkKLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBnZXRfYXBpY19pZCh1bnNpZ25lZCBsb25nIHgpCi17Ci0JICAgICAgICByZXR1cm4gKCgoeCk+PjI0KSYweEYpOwotfQotI2RlZmluZSAgICAgICAgIEdFVF9BUElDX0lEKHgpICBnZXRfYXBpY19pZCh4KQotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvbWFjaF9hcGljZGVmLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zZXR1cF9hcmNoLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zZXR1cF9hcmNoLmgKaW5kZXggMzNmNzAwZS4uZmE0NzY2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc2V0dXBfYXJjaC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NldHVwX2FyY2guaApAQCAtMSw4ICsxIEBACi0vKiBIb29rIHRvIGNhbGwgQklPUyBpbml0aWFsaXNhdGlvbiBmdW5jdGlvbiAqLwotCi1leHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fc2l6ZTsKLQotLyogbm8gYWN0aW9uIGZvciB2aXN3cyAqLwotCi0jZGVmaW5lIEFSQ0hfU0VUVVAKKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvc2V0dXBfYXJjaC5oIgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc21wYm9vdF9ob29rcy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc21wYm9vdF9ob29rcy5oCmluZGV4IGM5YjgzZTMuLmU0NDMzY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NtcGJvb3RfaG9va3MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zbXBib290X2hvb2tzLmgKQEAgLTEsMjggKzEgQEAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3NldHVwX3dhcm1fcmVzZXRfdmVjdG9yKHVuc2lnbmVkIGxvbmcgc3RhcnRfZWlwKQotewotCUNNT1NfV1JJVEUoMHhhLCAweGYpOwotCWxvY2FsX2ZsdXNoX3RsYigpOwotCURwcmludGsoIjEuXG4iKTsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSBUUkFNUE9MSU5FX0hJR0gpID0gc3RhcnRfZWlwID4+IDQ7Ci0JRHByaW50aygiMi5cbiIpOwotCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIFRSQU1QT0xJTkVfTE9XKSA9IHN0YXJ0X2VpcCAmIDB4ZjsKLQlEcHJpbnRrKCIzLlxuIik7Ci19Ci0KLS8qIGZvciB2aXN3cyBkbyBub3RoaW5nIGZvciBhbnkgb2YgdGhlc2UgKi8KLQotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3RfY2xlYXJfaW9fYXBpY19pcnFzKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3Jlc3RvcmVfd2FybV9yZXNldF92ZWN0b3Iodm9pZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3Rfc2V0dXBfaW9fYXBpYyh2b2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9jbGVhcl9pb19hcGljKHZvaWQpCi17Ci19CisjaW5jbHVkZSAiLi4vbWFjaC1kZWZhdWx0L3NtcGJvb3RfaG9va3MuaCIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZveWFnZXIvaXJxX3ZlY3RvcnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZveWFnZXIvaXJxX3ZlY3RvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1NDIxZi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12b3lhZ2VyL2lycV92ZWN0b3JzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKiAtKi0gbW9kZTogYzsgYy1iYXNpYy1vZmZzZXQ6IDggLSotICovCi0KLS8qIENvcHlyaWdodCAoQykgMjAwMgotICoKLSAqIEF1dGhvcjogSmFtZXMuQm90dG9tbGV5QEhhbnNlblBhcnRuZXJzaGlwLmNvbQotICoKLSAqIGxpbnV4L2FyY2gvaTM4Ni92b3lhZ2VyL2lycV92ZWN0b3JzLmgKLSAqCi0gKiBUaGlzIGZpbGUgcHJvdmlkZXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBWSUMgYW5kIFFJQyBDUElzCi0gKi8KLQotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKLSNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICi0KLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKLQotLyoKLSAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotCi0vKiBUaGVzZSBkZWZpbmUgdGhlIENQSXMgd2UgdXNlIGluIGxpbnV4ICovCi0jZGVmaW5lIFZJQ19DUElfTEVWRUwwCQkJMAotI2RlZmluZSBWSUNfQ1BJX0xFVkVMMQkJCTEKLS8qIG5vdyB0aGUgZmFrZSBDUElzICovCi0jZGVmaW5lIFZJQ19USU1FUl9DUEkJCQkyCi0jZGVmaW5lIFZJQ19JTlZBTElEQVRFX0NQSQkJMwotI2RlZmluZSBWSUNfUkVTQ0hFRFVMRV9DUEkJCTQKLSNkZWZpbmUgVklDX0VOQUJMRV9JUlFfQ1BJCQk1Ci0jZGVmaW5lIFZJQ19DQUxMX0ZVTkNUSU9OX0NQSQkJNgotCi0vKiBOb3cgdGhlIFFJQyBDUElzOiAgU2luY2Ugd2UgZG9uJ3QgbmVlZCB0aGUgdHdvIGluaXRpYWwgbGV2ZWxzLAotICogdGhlc2UgYXJlIDIgbGVzcyB0aGFuIHRoZSBWSUMgQ1BJcyAqLwotI2RlZmluZSBRSUNfQ1BJX09GRlNFVAkJCTEKLSNkZWZpbmUgUUlDX1RJTUVSX0NQSQkJCShWSUNfVElNRVJfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19JTlZBTElEQVRFX0NQSQkJKFZJQ19JTlZBTElEQVRFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotI2RlZmluZSBRSUNfUkVTQ0hFRFVMRV9DUEkJCShWSUNfUkVTQ0hFRFVMRV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKLSNkZWZpbmUgUUlDX0VOQUJMRV9JUlFfQ1BJCQkoVklDX0VOQUJMRV9JUlFfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19DQUxMX0ZVTkNUSU9OX0NQSQkJKFZJQ19DQUxMX0ZVTkNUSU9OX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotCi0jZGVmaW5lIFZJQ19TVEFSVF9GQUtFX0NQSQkJVklDX1RJTUVSX0NQSQotI2RlZmluZSBWSUNfRU5EX0ZBS0VfQ1BJCQlWSUNfQ0FMTF9GVU5DVElPTl9DUEkKLQotLyogdGhpcyBpcyB0aGUgU1lTX0lOVCBDUEkuICovCi0jZGVmaW5lIFZJQ19TWVNfSU5UCQkJOAotI2RlZmluZSBWSUNfQ01OX0lOVAkJCTE1Ci0KLS8qIFRoaXMgaXMgdGhlIGJvb3QgQ1BJIGZvciBhbHRlcm5hdGUgcHJvY2Vzc29ycy4gIEl0IGdldHMgb3ZlcndyaXR0ZW4KLSAqIGJ5IHRoZSBhYm92ZSBvbmNlIHRoZSBzeXN0ZW0gaGFzIGFjdGl2YXRlZCBhbGwgYXZhaWxhYmxlIHByb2Nlc3NvcnMgKi8KLSNkZWZpbmUgVklDX0NQVV9CT09UX0NQSQkJVklDX0NQSV9MRVZFTDAKLSNkZWZpbmUgVklDX0NQVV9CT09UX0VSUkFUQV9DUEkJCShWSUNfQ1BJX0xFVkVMMCArIDgpCi0KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLSNkZWZpbmUgTlJfSVJRUyAyMjQKLSNkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotCi0jZGVmaW5lIEZQVV9JUlEJCQkJMTMKLQotI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMwotI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQotI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfY3BpX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX3N5c19pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19jbW5faW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfdGltZXJfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfaW52YWxpZGF0ZV9pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19yZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX2VuYWJsZV9pcnFfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YmVkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaApAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIF9BU01fTU1DT05GSUdfSAorI2RlZmluZSBfQVNNX01NQ09ORklHX0gKKworI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IGNoZWNrX2VuYWJsZV9hbWRfbW1jb25mX2RtaSh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCkgeyB9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW11X2NvbnRleHQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCmluZGV4IDY1OTg0NTAuLmZhYzU3MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCkBAIC0xLDUgKzEsMzcgQEAKKyNpZm5kZWYgX19BU01fWDg2X01NVV9DT05URVhUX0gKKyNkZWZpbmUgX19BU01fWDg2X01NVV9DT05URVhUX0gKKworI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisjaWZuZGVmIENPTkZJR19QQVJBVklSVAorI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LAorCQkJCQlzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KQoreworfQorI2VuZGlmCS8qICFDT05GSUdfUEFSQVZJUlQgKi8KKworLyoKKyAqIFVzZWQgZm9yIExEVCBjb3B5L2Rlc3RydWN0aW9uLgorICovCitpbnQgaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwordm9pZCBkZXN0cm95X2NvbnRleHQoc3RydWN0IG1tX3N0cnVjdCAqbW0pOworCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJtbXVfY29udGV4dF8zMi5oIgogI2Vsc2UKICMgaW5jbHVkZSAibW11X2NvbnRleHRfNjQuaCIKICNlbmRpZgorCisjZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAorZG8gewkJCQkJCVwKKwlwYXJhdmlydF9hY3RpdmF0ZV9tbSgocHJldiksIChuZXh0KSk7CVwKKwlzd2l0Y2hfbW0oKHByZXYpLCAobmV4dCksIE5VTEwpOwlcCit9IHdoaWxlICgwKTsKKworCisjZW5kaWYgLyogX19BU01fWDg2X01NVV9DT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKaW5kZXggOTc1NmFlMC4uODI0ZmM1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKQEAgLTEsMjggKzEsNiBAQAogI2lmbmRlZiBfX0kzODZfU0NIRURfSAogI2RlZmluZSBfX0kzODZfU0NIRURfSAogCi0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KLSNpZm5kZWYgQ09ORklHX1BBUkFWSVJUCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvbW1faG9va3MuaD4KLQotc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsCi0JCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm5leHQpCi17Ci19Ci0jZW5kaWYJLyogIUNPTkZJR19QQVJBVklSVCAqLwotCi0KLS8qCi0gKiBVc2VkIGZvciBMRFQgY29weS9kZXN0cnVjdGlvbi4KLSAqLwotaW50IGluaXRfbmV3X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLXZvaWQgZGVzdHJveV9jb250ZXh0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZW50ZXJfbGF6eV90bGIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogI2lmZGVmIENPTkZJR19TTVAKQEAgLTc1LDEwICs1Myw0IEBACiAjZGVmaW5lIGRlYWN0aXZhdGVfbW0odHNrLCBtbSkJCQlcCiAJYXNtKCJtb3ZsICUwLCUlZ3MiOiA6InIiICgwKSk7CiAKLSNkZWZpbmUgYWN0aXZhdGVfbW0ocHJldiwgbmV4dCkJCQlcCi1kbyB7CQkJCQkJXAotCXBhcmF2aXJ0X2FjdGl2YXRlX21tKChwcmV2KSwgKG5leHQpKTsJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCk7CVwKLX0gd2hpbGUgKDApOwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF82NC5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKaW5kZXggY2E0NGM3MS4uYzcwMDA2MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKQEAgLTEsMjEgKzEsNyBAQAogI2lmbmRlZiBfX1g4Nl82NF9NTVVfQ09OVEVYVF9ICiAjZGVmaW5lIF9fWDg2XzY0X01NVV9DT05URVhUX0gKIAotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3BkYS5oPgotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0jaWZuZGVmIENPTkZJR19QQVJBVklSVAotI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+Ci0jZW5kaWYKLQotLyoKLSAqIHBvc3NpYmx5IGRvIHRoZSBMRFQgdW5sb2FkIGhlcmU/Ci0gKi8KLWludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7Ci12b2lkIGRlc3Ryb3lfY29udGV4dChzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlbnRlcl9sYXp5X3RsYihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB7CkBAIC02NSw4ICs1MSw0IEBACiAJYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCUlZnMiOjoiciIoMCkpOwlcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCkKLQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaAppbmRleCBjYjJjYWQwLi5iMjI5OGEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbW16b25lXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tem9uZV8zMi5oCkBAIC0xMiwxMSArMTIsOSBAQAogZXh0ZXJuIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW107CiAjZGVmaW5lIE5PREVfREFUQShuaWQpCShub2RlX2RhdGFbbmlkXSkKIAotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQkjaW5jbHVkZSA8YXNtL251bWFxLmg+Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19BQ1BJX1NSQVQpLyogc3VtbWl0IG9yIGdlbmVyaWMgYXJjaCAqLwotCSNpbmNsdWRlIDxhc20vc3JhdC5oPgotI2VuZGlmCisjaW5jbHVkZSA8YXNtL251bWFxLmg+CisvKiBzdW1taXQgb3IgZ2VuZXJpYyBhcmNoICovCisjaW5jbHVkZSA8YXNtL3NyYXQuaD4KIAogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX251bWFfZmxhdCh2b2lkKTsKIC8qCkBAIC0yNiwyOCArMjQsMjAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGdldF9tZW1jZmdfbnVtYSh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwogCWlmIChnZXRfbWVtY2ZnX251bWFxKCkpCiAJCXJldHVybjsKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FDUElfU1JBVCkKIAlpZiAoZ2V0X21lbWNmZ19mcm9tX3NyYXQoKSkKIAkJcmV0dXJuOwotI2VuZGlmCi0KIAlnZXRfbWVtY2ZnX251bWFfZmxhdCgpOwogfQogCiBleHRlcm4gaW50IGVhcmx5X3Bmbl90b19uaWQodW5zaWduZWQgbG9uZyBwZm4pOwotZXh0ZXJuIHZvaWQgbnVtYV9rdmFfcmVzZXJ2ZSh2b2lkKTsKIAogI2Vsc2UgLyogIUNPTkZJR19OVU1BICovCiAKICNkZWZpbmUgZ2V0X21lbWNmZ19udW1hIGdldF9tZW1jZmdfbnVtYV9mbGF0Ci0jZGVmaW5lIGdldF96aG9sZXNfc2l6ZShuKSAoMCkKIAotc3RhdGljIGlubGluZSB2b2lkIG51bWFfa3ZhX3Jlc2VydmUodm9pZCkKLXsKLX0KICNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLwogCiAjaWZkZWYgQ09ORklHX0RJU0NPTlRJR01FTQpAQCAtNTUsMTQgKzQ1LDE0IEBACiAvKgogICogZ2VuZXJpYyBub2RlIG1lbW9yeSBzdXBwb3J0LCB0aGUgZm9sbG93aW5nIGFzc3VtcHRpb25zIGFwcGx5OgogICoKLSAqIDEpIG1lbW9yeSBjb21lcyBpbiAyNTZNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CisgKiAxKSBtZW1vcnkgY29tZXMgaW4gNjRNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CiAgKiAyKSB3ZSB3aWxsIG5vdCBoYXZlIG1vcmUgdGhhbiA2NEdiIGluIHRvdGFsCiAgKgogICogZm9yIG5vdyBhc3N1bWUgdGhhdCA2NEdiIGlzIG1heCBhbW91bnQgb2YgUkFNIGZvciB3aG9sZSBzeXN0ZW0KICAqICAgIDY0R2IgLyA0MDk2Ynl0ZXMvcGFnZSA9IDE2Nzc3MjE2IHBhZ2VzCiAgKi8KICNkZWZpbmUgTUFYX05SX1BBR0VTIDE2Nzc3MjE2Ci0jZGVmaW5lIE1BWF9FTEVNRU5UUyAyNTYKKyNkZWZpbmUgTUFYX0VMRU1FTlRTIDEwMjQKICNkZWZpbmUgUEFHRVNfUEVSX0VMRU1FTlQgKE1BWF9OUl9QQUdFUy9NQVhfRUxFTUVOVFMpCiAKIGV4dGVybiBzOCBwaHlzbm9kZV9tYXBbXTsKQEAgLTg3LDkgKzc3LDYgQEAKIAlfX3BnZGF0LT5ub2RlX3N0YXJ0X3BmbiArIF9fcGdkYXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsJCVwKIH0pCiAKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRICAgICAgICAgICAgLyogd2UgaGF2ZSBjb250aWd1b3VzIG1lbW9yeSBvbiBOVU1BLVEgKi8KLSNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgbnVtX3BoeXNwYWdlcykKLSNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBwZm5fdmFsaWQoaW50IHBmbikKIHsKIAlpbnQgbmlkID0gcGZuX3RvX25pZChwZm4pOwpAQCAtOTgsNyArODUsNiBAQAogCQlyZXR1cm4gKHBmbiA8IG5vZGVfZW5kX3BmbihuaWQpKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDT05GSUdfWDg2X05VTUFRICovCiAKICNlbmRpZiAvKiBDT05GSUdfRElTQ09OVElHTUVNICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaAppbmRleCA1N2E5OTFiLi5iNjk5NWU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21wc3BlYy5oCkBAIC0xMyw2ICsxMywxMiBAQAogZXh0ZXJuIHU4IGFwaWNpZF8yX25vZGVbXTsKIGV4dGVybiBpbnQgcGljX21vZGU7CiAKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCitleHRlcm4gaW50IG1wX2J1c19pZF90b19ub2RlW01BWF9NUF9CVVNTRVNdOworZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fbG9jYWxbTUFYX01QX0JVU1NFU107CitleHRlcm4gaW50IHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkIFtOUl9DUFVTLzRdWzRdOworI2VuZGlmCisKICNkZWZpbmUgTUFYX0FQSUNJRCAyNTYKIAogI2Vsc2UKQEAgLTIxLDI2ICsyNywzMCBAQAogLyogRWFjaCBQQ0kgc2xvdCBtYXkgYmUgYSBjb21ibyBjYXJkIHdpdGggaXRzIG93biBidXMuICA0IElSUSBwaW5zIHBlciBzbG90LiAqLwogI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgKE1BWF9NUF9CVVNTRVMgKiA0KQogCisjZW5kaWYKKwogZXh0ZXJuIHZvaWQgZWFybHlfZmluZF9zbXBfY29uZmlnKHZvaWQpOwogZXh0ZXJuIHZvaWQgZWFybHlfZ2V0X3NtcF9jb25maWcodm9pZCk7CiAKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChDT05GSUdfTUNBKSB8fCBkZWZpbmVkKENPTkZJR19FSVNBKQogZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKICNlbmRpZgogCiBleHRlcm4gREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOwogCi1leHRlcm4gaW50IG1wX2J1c19pZF90b19wY2lfYnVzW01BWF9NUF9CVVNTRVNdOwotCiBleHRlcm4gdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZDsKK2V4dGVybiB1bnNpZ25lZCBpbnQgbWF4X3BoeXNpY2FsX2FwaWNpZDsKIGV4dGVybiBpbnQgc21wX2ZvdW5kX2NvbmZpZzsKIGV4dGVybiBpbnQgbXBjX2RlZmF1bHRfdHlwZTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKIGV4dGVybiB2b2lkIGZpbmRfc21wX2NvbmZpZyh2b2lkKTsKIGV4dGVybiB2b2lkIGdldF9zbXBfY29uZmlnKHZvaWQpOworI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQorZXh0ZXJuIHZvaWQgZWFybHlfcmVzZXJ2ZV9lODIwX21wY19uZXcodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3Jlc2VydmVfZTgyMF9tcGNfbmV3KHZvaWQpIHsgfQorI2VuZGlmCiAKIHZvaWQgX19jcHVpbml0IGdlbmVyaWNfcHJvY2Vzc29yX2luZm8oaW50IGFwaWNpZCwgaW50IHZlcnNpb24pOwogI2lmZGVmIENPTkZJR19BQ1BJCkBAIC00OSw2ICs1OSwxNyBAQAogCQkJCSAgIHUzMiBnc2kpOwogZXh0ZXJuIHZvaWQgbXBfY29uZmlnX2FjcGlfbGVnYWN5X2lycXModm9pZCk7CiBleHRlcm4gaW50IG1wX3JlZ2lzdGVyX2dzaSh1MzIgZ3NpLCBpbnQgZWRnZV9sZXZlbCwgaW50IGFjdGl2ZV9oaWdoX2xvdyk7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCitleHRlcm4gaW50IG1wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQKK21wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCSAgIHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKICNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLwogCiAjZGVmaW5lIFBIWVNJRF9BUlJBWV9TSVpFCUJJVFNfVE9fTE9OR1MoTUFYX0FQSUNTKQpAQCAtMTAxLDYgKzEyMiw3IEBACiAJCV9fcGh5c2lkX21hc2s7CQkJCQkJXAogCX0pCiAKKy8qIE5vdGU6IHdpbGwgY3JlYXRlIHZlcnkgbGFyZ2Ugc3RhY2sgZnJhbWVzIGlmIHBoeXNpZF9tYXNrX3QgaXMgYmlnICovCiAjZGVmaW5lIHBoeXNpZF9tYXNrX29mX3BoeXNpZChwaHlzaWQpCQkJCQlcCiAJKHsJCQkJCQkJCVwKIAkJcGh5c2lkX21hc2tfdCBfX3BoeXNpZF9tYXNrID0gUEhZU0lEX01BU0tfTk9ORTsJCVwKQEAgLTEwOCw2ICsxMzAsMTIgQEAKIAkJX19waHlzaWRfbWFzazsJCQkJCQlcCiAJfSkKIAorc3RhdGljIGlubGluZSB2b2lkIHBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoaW50IHBoeXNpZCwgcGh5c2lkX21hc2tfdCAqbWFwKQoreworCXBoeXNpZHNfY2xlYXIoKm1hcCk7CisJcGh5c2lkX3NldChwaHlzaWQsICptYXApOworfQorCiAjZGVmaW5lIFBIWVNJRF9NQVNLX0FMTAkJeyB7WzAgLi4uIFBIWVNJRF9BUlJBWV9TSVpFLTFdID0gfjBVTH0gfQogI2RlZmluZSBQSFlTSURfTUFTS19OT05FCXsge1swIC4uLiBQSFlTSURfQVJSQVlfU0laRS0xXSA9IDBVTH0gfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oIGIvaW5jbHVkZS9hc20teDg2L21wc3BlY19kZWYuaAppbmRleCBkYzZlZjg1Li4zOGQxZTczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWNfZGVmLmgKQEAgLTE3LDEwICsxNywxMSBAQAogIyBkZWZpbmUgTUFYX01QQ19FTlRSWSAxMDI0CiAjIGRlZmluZSBNQVhfQVBJQ1MgICAgICAyNTYKICNlbHNlCi0vKgotICogQSBtYXhpbXVtIG9mIDI1NSBBUElDcyB3aXRoIHRoZSBjdXJyZW50IEFQSUMgSUQgYXJjaGl0ZWN0dXJlLgotICovCi0jIGRlZmluZSBNQVhfQVBJQ1MgMjU1CisjIGlmIE5SX0NQVVMgPD0gMjU1CisjICBkZWZpbmUgTUFYX0FQSUNTICAgICAyNTUKKyMgZWxzZQorIyAgZGVmaW5lIE1BWF9BUElDUyAgIDMyNzY4CisjIGVuZGlmCiAjZW5kaWYKIAogc3RydWN0IGludGVsX21wX2Zsb2F0aW5nIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaCBiL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaAppbmRleCAwOTQxM2FkLi40NGJjZTc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oCkBAIC0xMTEsNyArMTExLDkgQEAKICNkZWZpbmUgTVNSX0s4X1RPUF9NRU0yCQkJMHhjMDAxMDAxZAogI2RlZmluZSBNU1JfSzhfU1lTQ0ZHCQkJMHhjMDAxMDAxMAogI2RlZmluZSBNU1JfSzhfSFdDUgkJCTB4YzAwMTAwMTUKLSNkZWZpbmUgTVNSX0s4X0VOQUJMRV9DMUUJCTB4YzAwMTAwNTUKKyNkZWZpbmUgTVNSX0s4X0lOVF9QRU5ESU5HX01TRwkJMHhjMDAxMDA1NQorLyogQzFFIGFjdGl2ZSBiaXRzIGluIGludCBwZW5kaW5nIG1lc3NhZ2UgKi8KKyNkZWZpbmUgSzhfSU5UUF9DMUVfQUNUSVZFX01BU0sJCTB4MTgwMDAwMDAKICNkZWZpbmUgTVNSX0s4X1RTRUdfQUREUgkJMHhjMDAxMDExMgogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9FTkFCTEUJMHgwMDA0MDAwMCAvKiBNdHJyRml4RHJhbUVuIGJpdCAgICAqLwogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9NT0RJRlkJMHgwMDA4MDAwMCAvKiBNdHJyRml4RHJhbU1vZEVuIGJpdCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21zci5oIGIvaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IDM3MDc2NTAuLmNhMTEwZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKQEAgLTE4LDcgKzE4LDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKIAlhc20gdm9sYXRpbGUoIi5ieXRlIDB4MGYsMHgwMSwweGY5IgogCQkgICAgIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCksICI9YyIgKCphdXgpKTsKLQlyZXR1cm4gbG93IHwgKCh1NjQpaGlnaCA+PiAzMik7CisJcmV0dXJuIGxvdyB8ICgodTY0KWhpZ2ggPDwgMzIpOwogfQogCiAvKgpAQCAtNjYsNyArNjYsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV93cml0ZV9tc3IodW5zaWduZWQgaW50IG1zciwKIAkJCQkgICAgdW5zaWduZWQgbG93LCB1bnNpZ25lZCBoaWdoKQogewotCWFzbSB2b2xhdGlsZSgid3Jtc3IiIDogOiAiYyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpKTsKKwlhc20gdm9sYXRpbGUoIndybXNyIiA6IDogImMiIChtc3IpLCAiYSIobG93KSwgImQiIChoaWdoKSA6ICJtZW1vcnkiKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2lnbmVkIGludCBtc3IsCkBAIC04MSw3ICs4MSw4IEBACiAJCSAgICAgX0FTTV9FWFRBQkxFKDJiLCAzYikKIAkJICAgICA6ICI9YSIgKGVycikKIAkJICAgICA6ICJjIiAobXNyKSwgIjAiIChsb3cpLCAiZCIgKGhpZ2gpLAotCQkgICAgICJpIiAoLUVGQVVMVCkpOworCQkgICAgICAgImkiICgtRUZBVUxUKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaAppbmRleCAxZTM2MzAyLi4yMWY4ZDAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbm1pLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L25taS5oCkBAIC0xNSwzOCArMTUsMTMgQEAKICAqLwogaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSk7CiAKLSNpZmRlZiBDT05GSUdfUE0KLQotLyoqIFJlcGxhY2UgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgZm9yIE5NSS4gKi8KLXN0cnVjdCBwbV9kZXYgKnNldF9ubWlfcG1fY2FsbGJhY2socG1fY2FsbGJhY2sgY2FsbGJhY2spOwotCi0vKiogVW5zZXQgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgYmFjayB0byB0aGUgZGVmYXVsdC4gKi8KLXZvaWQgdW5zZXRfbm1pX3BtX2NhbGxiYWNrKHN0cnVjdCBwbV9kZXYgKmRldik7Ci0KLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHBtX2RldiAqc2V0X25taV9wbV9jYWxsYmFjayhwbV9jYWxsYmFjayBjYWxsYmFjaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVuc2V0X25taV9wbV9jYWxsYmFjayhzdHJ1Y3QgcG1fZGV2ICpkZXYpCi17Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfUE0gKi8KLQogI2lmZGVmIENPTkZJR19YODZfNjQKIGV4dGVybiB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICopOwotZXh0ZXJuIHZvaWQgZGllX25taShjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgZG9fcGFuaWMpOwotZXh0ZXJuIHZvaWQgbm1pX3dhdGNoZG9nX2RlZmF1bHQodm9pZCk7Ci0jZWxzZQotI2RlZmluZSBubWlfd2F0Y2hkb2dfZGVmYXVsdCgpIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKK2V4dGVybiB2b2lkIGRpZV9ubWkoY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGRvX3BhbmljKTsKIGV4dGVybiBpbnQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpOwogZXh0ZXJuIGludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLWV4dGVybiBpbnQgdW5rbm93bl9ubWlfcGFuaWM7CiBleHRlcm4gaW50IGF2YWlsX3RvX3Jlc3J2X3BlcmZjdHJfbm1pX2JpdCh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCBhdmFpbF90b19yZXNydl9wZXJmY3RyX25taSh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCByZXNlcnZlX3BlcmZjdHJfbm1pKHVuc2lnbmVkIGludCk7CkBAIC02MiwxMiArMzcsMTAgQEAKIAogZXh0ZXJuIGF0b21pY190IG5taV9hY3RpdmU7CiBleHRlcm4gdW5zaWduZWQgaW50IG5taV93YXRjaGRvZzsKLSNkZWZpbmUgTk1JX0RJU0FCTEVEICAgIC0xCiAjZGVmaW5lIE5NSV9OT05FCTAKICNkZWZpbmUgTk1JX0lPX0FQSUMJMQogI2RlZmluZSBOTUlfTE9DQUxfQVBJQwkyCiAjZGVmaW5lIE5NSV9JTlZBTElECTMKLSNkZWZpbmUgTk1JX0RFRkFVTFQJTk1JX0RJU0FCTEVECiAKIHN0cnVjdCBjdGxfdGFibGU7CiBzdHJ1Y3QgZmlsZTsKQEAgLTc4LDYgKzUxLDI0IEBACiB2b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKTsKICNkZWZpbmUgdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBsb2NhbGlzZV9ubWlfd2F0Y2hkb2codm9pZCkKK3sKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKK30KKworLyogY2hlY2sgaWYgbm1pX3dhdGNoZG9nIGlzIGFjdGl2ZSAoaWUgd2FzIHNwZWNpZmllZCBhdCBib290KSAqLworc3RhdGljIGlubGluZSBpbnQgbm1pX3dhdGNoZG9nX2FjdGl2ZSh2b2lkKQoreworCS8qCisJICogYWN0dWFsbHkgaXQgc2hvdWxkIGJlOgorCSAqIAlyZXR1cm4gKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQyB8fAorCSAqIAkJbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCSAqIGJ1dCBzaW5jZSB0aGV5IGFyZSBwb3dlciBvZiB0d28gd2UgY291bGQgdXNlIGEKKwkgKiBjaGVhcGVyIHdheSAtLWN2ZworCSAqLworCXJldHVybiBubWlfd2F0Y2hkb2cgJiAweDM7Cit9CiAjZW5kaWYKIAogdm9pZCBsYXBpY193YXRjaGRvZ19zdG9wKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzMyLmgKaW5kZXggMDNkMGY3YS4uMjIwZDdiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbnVtYV8zMi5oCkBAIC0yLDE0ICsyLDEwIEBACiAjZGVmaW5lIF9BU01fWDg2XzMyX05VTUFfSCAxCiAKIGV4dGVybiBpbnQgcHhtX3RvX25pZChpbnQgcHhtKTsKK2V4dGVybiB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKIAogI2lmZGVmIENPTkZJR19OVU1BCi1leHRlcm4gdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCk7Ci1leHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHJlbWFwX251bWFfa3ZhKHZvaWQpCi17Ci19CitleHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KHZvaWQpOwogI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1g4Nl8zMl9OVU1BX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvbnVtYV82NC5oCmluZGV4IDIyZTg3YzkuLjM4MzAwOTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L251bWFfNjQuaApAQCAtMTQsMzIgKzE0LDMwIEBACiAKICNkZWZpbmUgWk9ORV9BTElHTiAoMVVMIDw8IChNQVhfT1JERVIrUEFHRV9TSElGVCkpCiAKLWV4dGVybiB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIG51bWFfaW5pdF9hcnJheSh2b2lkKTsKIGV4dGVybiBpbnQgbnVtYV9vZmY7CiAKLWV4dGVybiB2b2lkIG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpOwogZXh0ZXJuIHZvaWQgc3JhdF9yZXNlcnZlX2FkZF9hcmVhKGludCBub2RlaWQpOwogZXh0ZXJuIGludCBob3RhZGRfcGVyY2VudDsKIAogZXh0ZXJuIHMxNiBhcGljaWRfdG9fbm9kZVtNQVhfTE9DQUxfQVBJQ107CiAKLWV4dGVybiB2b2lkIG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtYV9mcmVlX2FsbF9ib290bWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2V0dXBfbm9kZV9ib290bWVtKGludCBub2RlaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwogCiAjaWZkZWYgQ09ORklHX05VTUEKIGV4dGVybiB2b2lkIF9faW5pdCBpbml0X2NwdV90b19ub2RlKHZvaWQpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfbm9kZV9jcHVtYXNrKGludCBjcHUpCi17Ci0JY2xlYXJfYml0KGNwdSwgKHVuc2lnbmVkIGxvbmcgKikmbm9kZV90b19jcHVtYXNrX21hcFtjcHVfdG9fbm9kZShjcHUpXSk7Ci19Ci0KK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKTsKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX2NsZWFyX25vZGUoaW50IGNwdSk7CitleHRlcm4gdm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpOworZXh0ZXJuIHZvaWQgX19jcHVpbml0IG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKICNlbHNlCi0jZGVmaW5lIGluaXRfY3B1X3RvX25vZGUoKSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xlYXJfbm9kZV9jcHVtYXNrKGNwdSkgZG8ge30gd2hpbGUgKDApCitzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9jcHVfdG9fbm9kZSh2b2lkKQkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9zZXRfbm9kZShpbnQgY3B1LCBpbnQgbm9kZSkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9jbGVhcl9ub2RlKGludCBjcHUpCQl7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSwgaW50IG5vZGUpCXsgfQorc3RhdGljIGlubGluZSB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KQkJeyB9CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbnVtYXEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCmluZGV4IDk0Yjg2YzMuLjM0YjkyZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZmRlZiBDT05GSUdfWDg2X05VTUFRCiAKK2V4dGVybiBpbnQgZm91bmRfbnVtYXE7CiBleHRlcm4gaW50IGdldF9tZW1jZmdfbnVtYXEodm9pZCk7CiAKIC8qCkBAIC0xNTYsOSArMTU3LDEyIEBACiAJc3RydWN0CQllYWNocXVhZG1lbSBlcVtNQVhfTlVNTk9ERVNdOwkvKiBpbmRleGVkIGJ5IHF1YWQgaWQgKi8KIH07CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZ2V0X3pob2xlc19zaXplKGludCBuaWQpCit2b2lkIG51bWFxX3RzY19kaXNhYmxlKHZvaWQpOworCisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgZ2V0X21lbWNmZ19udW1hcSh2b2lkKQogewotCXJldHVybiBOVUxMOworCXJldHVybiAwOwogfQogI2VuZGlmIC8qIENPTkZJR19YODZfTlVNQVEgKi8KICNlbmRpZiAvKiBOVU1BUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oIGIvaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBkYzkzNmRkLi4yOGQ3YjQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTUxLDkgKzUxLDE3IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKK3R5cGVkZWYgc3RydWN0IHsgcGdkdmFsX3QgcGdkOyB9IHBnZF90OwordHlwZWRlZiBzdHJ1Y3QgeyBwZ3Byb3R2YWxfdCBwZ3Byb3Q7IH0gcGdwcm90X3Q7CisKIGV4dGVybiBpbnQgcGFnZV9pc19yYW0odW5zaWduZWQgbG9uZyBwYWdlbnIpOwogZXh0ZXJuIGludCBkZXZtZW1faXNfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBhZ2Vucik7CitleHRlcm4gdm9pZCBtYXBfZGV2bWVtKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIHNpemUsCisJCSAgICAgICBwZ3Byb3RfdCB2bWFfcHJvdCk7CitleHRlcm4gdm9pZCB1bm1hcF9kZXZtZW0odW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSBwZ3Byb3RfdCB2bWFfcHJvdCk7CiAKK2V4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwogCiBzdHJ1Y3QgcGFnZTsKQEAgLTc0LDkgKzgyLDYgQEAKIAlhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVIgfCBfX0dGUF9aRVJPIHwgbW92YWJsZWZsYWdzLCB2bWEsIHZhZGRyKQogI2RlZmluZSBfX0hBVkVfQVJDSF9BTExPQ19aRVJPRURfVVNFUl9ISUdIUEFHRQogCi10eXBlZGVmIHN0cnVjdCB7IHBnZHZhbF90IHBnZDsgfSBwZ2RfdDsKLXR5cGVkZWYgc3RydWN0IHsgcGdwcm90dmFsX3QgcGdwcm90OyB9IHBncHJvdF90OwotCiBzdGF0aWMgaW5saW5lIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwpCiB7CiAJcmV0dXJuIChwZ2RfdCkgeyB2YWwgfTsKQEAgLTE2MCw2ICsxNjUsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgcHRlX3ZhbCh4KQluYXRpdmVfcHRlX3ZhbCh4KQorI2RlZmluZSBwdGVfZmxhZ3MoeCkJbmF0aXZlX3B0ZV92YWwoeCkKICNkZWZpbmUgX19wdGUoeCkJbmF0aXZlX21ha2VfcHRlKHgpCiAKICNlbmRpZgkvKiBDT05GSUdfUEFSQVZJUlQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvcGFnZV8zMi5oCmluZGV4IDQyNGU4MmYuLmFiODUyODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhZ2VfMzIuaApAQCAtMTMsOCArMTMsMTcgQEAKICAqLwogI2RlZmluZSBfX1BBR0VfT0ZGU0VUCQlfQUMoQ09ORklHX1BBR0VfT0ZGU0VULCBVTCkKIAorI2lmZGVmIENPTkZJR180S1NUQUNLUworI2RlZmluZSBUSFJFQURfT1JERVIJMAorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX09SREVSCTEKKyNlbmRpZgorI2RlZmluZSBUSFJFQURfU0laRSAJKFBBR0VfU0laRSA8PCBUSFJFQURfT1JERVIpCisKKwogI2lmZGVmIENPTkZJR19YODZfUEFFCi0jZGVmaW5lIF9fUEhZU0lDQUxfTUFTS19TSElGVAkzNgorLyogNDQ9MzIrMTIsIHRoZSBsaW1pdCB3ZSBjYW4gZml0IGludG8gYW4gdW5zaWduZWQgbG9uZyBwZm4gKi8KKyNkZWZpbmUgX19QSFlTSUNBTF9NQVNLX1NISUZUCTQ0CiAjZGVmaW5lIF9fVklSVFVBTF9NQVNLX1NISUZUCTMyCiAjZGVmaW5lIFBBR0VUQUJMRV9MRVZFTFMJMwogCkBAIC04Myw2ICs5MiwxMyBAQAogI2RlZmluZSBWTUFMTE9DX1JFU0VSVkUJCSgodW5zaWduZWQgbG9uZylfX1ZNQUxMT0NfUkVTRVJWRSkKICNkZWZpbmUgTUFYTUVNCQkJKC1fX1BBR0VfT0ZGU0VUIC0gX19WTUFMTE9DX1JFU0VSVkUpCiAKK2V4dGVybiB2b2lkIGZpbmRfbG93X3Bmbl9yYW5nZSh2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgZW5kKTsKK2V4dGVybiB2b2lkIGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKK2V4dGVybiB2b2lkIHNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKHZvaWQpOworCisKICNpZmRlZiBDT05GSUdfWDg2X1VTRV8zRE5PVwogI2luY2x1ZGUgPGFzbS9tbXguaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BhZ2VfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzY0LmgKaW5kZXggNmVhNzI4NS4uYzY5MTZjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BhZ2VfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGFnZV82NC5oCkBAIC0yNiw3ICsyNiwxMyBAQAogI2RlZmluZSBQVURfUEFHRV9TSVpFCQkoX0FDKDEsIFVMKSA8PCBQVURfU0hJRlQpCiAjZGVmaW5lIFBVRF9QQUdFX01BU0sJCSh+KFBVRF9QQUdFX1NJWkUtMSkpCiAKLSNkZWZpbmUgX19QQUdFX09GRlNFVCAgICAgICAgICAgX0FDKDB4ZmZmZjgxMDAwMDAwMDAwMCwgVUwpCisvKgorICogU2V0IF9fUEFHRV9PRkZTRVQgdG8gdGhlIG1vc3QgbmVnYXRpdmUgcG9zc2libGUgYWRkcmVzcyArCisgKiBQR0RJUl9TSVpFKjE2IChwZ2Qgc2xvdCAyNzIpLiAgVGhlIGdhcCBpcyB0byBhbGxvdyBhIHNwYWNlIGZvciBhCisgKiBoeXBlcnZpc29yIHRvIGZpdC4gIENob29zaW5nIDE2IHNsb3RzIGhlcmUgaXMgYXJiaXRyYXJ5LCBidXQgaXQncworICogd2hhdCBYZW4gcmVxdWlyZXMuCisgKi8KKyNkZWZpbmUgX19QQUdFX09GRlNFVCAgICAgICAgICAgX0FDKDB4ZmZmZjg4MDAwMDAwMDAwMCwgVUwpCiAKICNkZWZpbmUgX19QSFlTSUNBTF9TVEFSVAlDT05GSUdfUEhZU0lDQUxfU1RBUlQKICNkZWZpbmUgX19LRVJORUxfQUxJR04JCTB4MjAwMDAwCkBAIC01OCw3ICs2NCw4IEBACiB2b2lkIGNsZWFyX3BhZ2Uodm9pZCAqcGFnZSk7CiB2b2lkIGNvcHlfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSk7CiAKLWV4dGVybiB1bnNpZ25lZCBsb25nIGVuZF9wZm47CisvKiBkdXBsaWNhdGVkIHRvIHRoZSBvbmUgaW4gYm9vdG1lbS5oICovCitleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhfcGZuOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3BoeXNfYWRkcih1bnNpZ25lZCBsb25nKTsKQEAgLTgzLDEwICs5MCwxNSBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9tZW1vcnlfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LAogCQkJCQkgdW5zaWduZWQgbG9uZyBlbmQpOwogCitleHRlcm4gdm9pZCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CisKK2V4dGVybiB2b2lkIGluaXRfZXh0cmFfbWFwcGluZ191Yyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdm9pZCBpbml0X2V4dHJhX21hcHBpbmdfd2IodW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIHNpemUpOworCiAjZW5kaWYJLyogIV9fQVNTRU1CTFlfXyAqLwogCiAjaWZkZWYgQ09ORklHX0ZMQVRNRU0KLSNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgZW5kX3BmbikKKyNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgbWF4X3BmbikKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYXJhdmlydC5oIGIvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKaW5kZXggMGYxM2I5NC4uZWY1ZThlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKQEAgLTg0LDcgKzg0LDcgQEAKIAlpbnQgKCpzZXRfd2FsbGNsb2NrKSh1bnNpZ25lZCBsb25nKTsKIAogCXVuc2lnbmVkIGxvbmcgbG9uZyAoKnNjaGVkX2Nsb2NrKSh2b2lkKTsKLQl1bnNpZ25lZCBsb25nICgqZ2V0X2NwdV9raHopKHZvaWQpOworCXVuc2lnbmVkIGxvbmcgKCpnZXRfdHNjX2toeikodm9pZCk7CiB9OwogCiBzdHJ1Y3QgcHZfY3B1X29wcyB7CkBAIC0xMTUsNiArMTE1LDkgQEAKIAl2b2lkICgqc2V0X2xkdCkoY29uc3Qgdm9pZCAqZGVzYywgdW5zaWduZWQgZW50cmllcyk7CiAJdW5zaWduZWQgbG9uZyAoKnN0b3JlX3RyKSh2b2lkKTsKIAl2b2lkICgqbG9hZF90bHMpKHN0cnVjdCB0aHJlYWRfc3RydWN0ICp0LCB1bnNpZ25lZCBpbnQgY3B1KTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJdm9pZCAoKmxvYWRfZ3NfaW5kZXgpKHVuc2lnbmVkIGludCBpZHgpOworI2VuZGlmCiAJdm9pZCAoKndyaXRlX2xkdF9lbnRyeSkoc3RydWN0IGRlc2Nfc3RydWN0ICpsZHQsIGludCBlbnRyeW51bSwKIAkJCQljb25zdCB2b2lkICpkZXNjKTsKIAl2b2lkICgqd3JpdGVfZ2R0X2VudHJ5KShzdHJ1Y3QgZGVzY19zdHJ1Y3QgKiwKQEAgLTE0MSw4ICsxNDQsMzIgQEAKIAl1NjQgKCpyZWFkX3BtYykoaW50IGNvdW50ZXIpOwogCXVuc2lnbmVkIGxvbmcgbG9uZyAoKnJlYWRfdHNjcCkodW5zaWduZWQgaW50ICphdXgpOwogCi0JLyogVGhlc2UgdHdvIGFyZSBqbXAgdG8sIG5vdCBhY3R1YWxseSBjYWxsZWQuICovCi0Jdm9pZCAoKmlycV9lbmFibGVfc3lzY2FsbF9yZXQpKHZvaWQpOworCS8qCisJICogQXRvbWljYWxseSBlbmFibGUgaW50ZXJydXB0cyBhbmQgcmV0dXJuIHRvIHVzZXJzcGFjZS4gIFRoaXMKKwkgKiBpcyBvbmx5IGV2ZXIgdXNlZCB0byByZXR1cm4gdG8gMzItYml0IHByb2Nlc3NlczsgaW4gYQorCSAqIDY0LWJpdCBrZXJuZWwsIGl0J3MgdXNlZCBmb3IgMzItb24tNjQgY29tcGF0IHByb2Nlc3NlcywgYnV0CisJICogbmV2ZXIgbmF0aXZlIDY0LWJpdCBwcm9jZXNzZXMuICAoSnVtcCwgbm90IGNhbGwuKQorCSAqLworCXZvaWQgKCppcnFfZW5hYmxlX3N5c2V4aXQpKHZvaWQpOworCisJLyoKKwkgKiBTd2l0Y2ggdG8gdXNlcm1vZGUgZ3MgYW5kIHJldHVybiB0byA2NC1iaXQgdXNlcm1vZGUgdXNpbmcKKwkgKiBzeXNyZXQuICBPbmx5IHVzZWQgaW4gNjQtYml0IGtlcm5lbHMgdG8gcmV0dXJuIHRvIDY0LWJpdAorCSAqIHByb2Nlc3Nlcy4gIFVzZXJtb2RlIHJlZ2lzdGVyIHN0YXRlLCBpbmNsdWRpbmcgJXJzcCwgbXVzdAorCSAqIGFscmVhZHkgYmUgcmVzdG9yZWQuCisJICovCisJdm9pZCAoKnVzZXJnc19zeXNyZXQ2NCkodm9pZCk7CisKKwkvKgorCSAqIFN3aXRjaCB0byB1c2VybW9kZSBncyBhbmQgcmV0dXJuIHRvIDMyLWJpdCB1c2VybW9kZSB1c2luZworCSAqIHN5c3JldC4gIFVzZWQgdG8gcmV0dXJuIHRvIDMyLW9uLTY0IGNvbXBhdCBwcm9jZXNzZXMuCisJICogT3RoZXIgdXNlcm1vZGUgcmVnaXN0ZXIgc3RhdGUsIGluY2x1ZGluZyAlZXNwLCBtdXN0IGFscmVhZHkKKwkgKiBiZSByZXN0b3JlZC4KKwkgKi8KKwl2b2lkICgqdXNlcmdzX3N5c3JldDMyKSh2b2lkKTsKKworCS8qIE5vcm1hbCBpcmV0LiAgSnVtcCB0byB0aGlzIHdpdGggdGhlIHN0YW5kYXJkIGlyZXQgc3RhY2sKKwkgICBmcmFtZSBzZXQgdXAuICovCiAJdm9pZCAoKmlyZXQpKHZvaWQpOwogCiAJdm9pZCAoKnN3YXBncykodm9pZCk7CkBAIC0xNjUsNiArMTkyLDEwIEBACiAJdm9pZCAoKmlycV9lbmFibGUpKHZvaWQpOwogCXZvaWQgKCpzYWZlX2hhbHQpKHZvaWQpOwogCXZvaWQgKCpoYWx0KSh2b2lkKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwl2b2lkICgqYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSkodm9pZCk7CisjZW5kaWYKIH07CiAKIHN0cnVjdCBwdl9hcGljX29wcyB7CkBAIC0yMTksNyArMjUwLDE0IEBACiAJdm9pZCAoKmZsdXNoX3RsYl9vdGhlcnMpKGNvbnN0IGNwdW1hc2tfdCAqY3B1cywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJIHVuc2lnbmVkIGxvbmcgdmEpOwogCi0JLyogSG9va3MgZm9yIGFsbG9jYXRpbmcvcmVsZWFzaW5nIHBhZ2V0YWJsZSBwYWdlcyAqLworCS8qIEhvb2tzIGZvciBhbGxvY2F0aW5nIGFuZCBmcmVlaW5nIGEgcGFnZXRhYmxlIHRvcC1sZXZlbCAqLworCWludCAgKCpwZ2RfYWxsb2MpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKKwl2b2lkICgqcGdkX2ZyZWUpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKTsKKworCS8qCisJICogSG9va3MgZm9yIGFsbG9jYXRpbmcvcmVsZWFzaW5nIHBhZ2V0YWJsZSBwYWdlcyB3aGVuIHRoZXkncmUKKwkgKiBhdHRhY2hlZCB0byBhIHBhZ2V0YWJsZQorCSAqLwogCXZvaWQgKCphbGxvY19wdGUpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1MzIgcGZuKTsKIAl2b2lkICgqYWxsb2NfcG1kKShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdTMyIHBmbik7CiAJdm9pZCAoKmFsbG9jX3BtZF9jbG9uZSkodTMyIHBmbiwgdTMyIGNsb25lcGZuLCB1MzIgc3RhcnQsIHUzMiBjb3VudCk7CkBAIC0yMzgsNyArMjc2LDEzIEBACiAJdm9pZCAoKnB0ZV91cGRhdGVfZGVmZXIpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCSB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKIAorCXB0ZV90ICgqcHRlcF9tb2RpZnlfcHJvdF9zdGFydCkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJcHRlX3QgKnB0ZXApOworCXZvaWQgKCpwdGVwX21vZGlmeV9wcm90X2NvbW1pdCkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSk7CisKIAlwdGV2YWxfdCAoKnB0ZV92YWwpKHB0ZV90KTsKKwlwdGV2YWxfdCAoKnB0ZV9mbGFncykocHRlX3QpOwogCXB0ZV90ICgqbWFrZV9wdGUpKHB0ZXZhbF90IHB0ZSk7CiAKIAlwZ2R2YWxfdCAoKnBnZF92YWwpKHBnZF90KTsKQEAgLTI3Myw2ICszMTcsMTMgQEAKICNlbmRpZgogCiAJc3RydWN0IHB2X2xhenlfb3BzIGxhenlfbW9kZTsKKworCS8qIGRvbTAgb3BzICovCisKKwkvKiBTb21ldGltZXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgaXMgYSBwZm4sIGFuZCBzb21ldGltZXMgaXRzCisJICAgYW4gbWZuLiAgV2UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2ggZnJvbSB0aGUgaW5kZXguICovCisJdm9pZCAoKnNldF9maXhtYXApKHVuc2lnbmVkIC8qIGVudW0gZml4ZWRfYWRkcmVzc2VzICovIGlkeCwKKwkJCSAgIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwogfTsKIAogLyogVGhpcyBjb250YWlucyBhbGwgdGhlIHBhcmF2aXJ0IHN0cnVjdHVyZXM6IHdlIGdldCBhIGNvbnZlbmllbnQKQEAgLTQzOSwxMCArNDkwLDE3IEBACiAjZGVmaW5lIFZFWFRSQV9DTE9CQkVSUwkgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiCiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19QQVJBVklSVF9ERUJVRworI2RlZmluZSBQVk9QX1RFU1RfTlVMTChvcCkJQlVHX09OKG9wID09IE5VTEwpCisjZWxzZQorI2RlZmluZSBQVk9QX1RFU1RfTlVMTChvcCkJKCh2b2lkKW9wKQorI2VuZGlmCisKICNkZWZpbmUgX19QVk9QX0NBTEwocmV0dHlwZSwgb3AsIHByZSwgcG9zdCwgLi4uKQkJCVwKIAkoewkJCQkJCQkJXAogCQlyZXR0eXBlIF9fcmV0OwkJCQkJCVwKIAkJUFZPUF9DQUxMX0FSR1M7CQkJCQlcCisJCVBWT1BfVEVTVF9OVUxMKG9wKTsJCQkJCVwKIAkJLyogVGhpcyBpcyAzMi1iaXQgc3BlY2lmaWMsIGJ1dCBpcyBva2F5IGluIDY0LWJpdCAqLwlcCiAJCS8qIHNpbmNlIHRoaXMgY29uZGl0aW9uIHdpbGwgbmV2ZXIgaG9sZCAqLwkJXAogCQlpZiAoc2l6ZW9mKHJldHR5cGUpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7CQlcCkBAIC00NzEsNiArNTI5LDcgQEAKICNkZWZpbmUgX19QVk9QX1ZDQUxMKG9wLCBwcmUsIHBvc3QsIC4uLikJCQkJXAogCSh7CQkJCQkJCQlcCiAJCVBWT1BfVkNBTExfQVJHUzsJCQkJCVwKKwkJUFZPUF9URVNUX05VTEwob3ApOwkJCQkJXAogCQlhc20gdm9sYXRpbGUocHJlCQkJCQlcCiAJCQkgICAgIHBhcmF2aXJ0X2FsdChQQVJBVklSVF9DQUxMKQkJXAogCQkJICAgICBwb3N0CQkJCQlcCkBAIC03MjAsNyArNzc5LDcgQEAKIHsKIAlyZXR1cm4gUFZPUF9DQUxMMCh1bnNpZ25lZCBsb25nIGxvbmcsIHB2X3RpbWVfb3BzLnNjaGVkX2Nsb2NrKTsKIH0KLSNkZWZpbmUgY2FsY3VsYXRlX2NwdV9raHooKSAocHZfdGltZV9vcHMuZ2V0X2NwdV9raHooKSkKKyNkZWZpbmUgY2FsaWJyYXRlX3RzYygpIChwdl90aW1lX29wcy5nZXRfdHNjX2toeigpKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXJhdmlydF9yZWFkX3BtYyhpbnQgY291bnRlcikKIHsKQEAgLTc4OSw2ICs4NDgsMTMgQEAKIAlQVk9QX1ZDQUxMMihwdl9jcHVfb3BzLmxvYWRfdGxzLCB0LCBjcHUpOwogfQogCisjaWZkZWYgQ09ORklHX1g4Nl82NAorc3RhdGljIGlubGluZSB2b2lkIGxvYWRfZ3NfaW5kZXgodW5zaWduZWQgaW50IGdzKQoreworCVBWT1BfVkNBTEwxKHB2X2NwdV9vcHMubG9hZF9nc19pbmRleCwgZ3MpOworfQorI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZV9sZHRfZW50cnkoc3RydWN0IGRlc2Nfc3RydWN0ICpkdCwgaW50IGVudHJ5LAogCQkJCSAgIGNvbnN0IHZvaWQgKmRlc2MpCiB7CkBAIC05MTIsNiArOTc4LDE2IEBACiAJUFZPUF9WQ0FMTDMocHZfbW11X29wcy5mbHVzaF90bGJfb3RoZXJzLCAmY3B1bWFzaywgbW0sIHZhKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgcGFyYXZpcnRfcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXJldHVybiBQVk9QX0NBTEwxKGludCwgcHZfbW11X29wcy5wZ2RfYWxsb2MsIG1tKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X3BnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQoreworCVBWT1BfVkNBTEwyKHB2X21tdV9vcHMucGdkX2ZyZWUsIG1tLCBwZ2QpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfYWxsb2NfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBwZm4pCiB7CiAJUFZPUF9WQ0FMTDIocHZfbW11X29wcy5hbGxvY19wdGUsIG1tLCBwZm4pOwpAQCAtOTk2LDYgKzEwNzIsMjAgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW5saW5lIHB0ZXZhbF90IHB0ZV9mbGFncyhwdGVfdCBwdGUpCit7CisJcHRldmFsX3QgcmV0OworCisJaWYgKHNpemVvZihwdGV2YWxfdCkgPiBzaXplb2YobG9uZykpCisJCXJldCA9IFBWT1BfQ0FMTDIocHRldmFsX3QsIHB2X21tdV9vcHMucHRlX2ZsYWdzLAorCQkJCSBwdGUucHRlLCAodTY0KXB0ZS5wdGUgPj4gMzIpOworCWVsc2UKKwkJcmV0ID0gUFZPUF9DQUxMMShwdGV2YWxfdCwgcHZfbW11X29wcy5wdGVfZmxhZ3MsCisJCQkJIHB0ZS5wdGUpOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGlubGluZSBwZ2RfdCBfX3BnZChwZ2R2YWxfdCB2YWwpCiB7CiAJcGdkdmFsX3QgcmV0OwpAQCAtMTAyNCw2ICsxMTE0LDI5IEBACiAJcmV0dXJuIHJldDsKIH0KIAorI2RlZmluZSAgX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTgorc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwKQoreworCXB0ZXZhbF90IHJldDsKKworCXJldCA9IFBWT1BfQ0FMTDMocHRldmFsX3QsIHB2X21tdV9vcHMucHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkJCSBtbSwgYWRkciwgcHRlcCk7CisKKwlyZXR1cm4gKHB0ZV90KSB7IC5wdGUgPSByZXQgfTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCit7CisJaWYgKHNpemVvZihwdGV2YWxfdCkgPiBzaXplb2YobG9uZykpCisJCS8qIDUgYXJnIHdvcmRzICovCisJCXB2X21tdV9vcHMucHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7CisJZWxzZQorCQlQVk9QX1ZDQUxMNChwdl9tbXVfb3BzLnB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAorCQkJICAgIG1tLCBhZGRyLCBwdGVwLCBwdGUucHRlKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHNldF9wdGUocHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKIHsKIAlpZiAoc2l6ZW9mKHB0ZXZhbF90KSA+IHNpemVvZihsb25nKSkKQEAgLTEyNTIsNiArMTM2NSwxMiBAQAogCX0KIH0KIAorc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X2ZpeG1hcCh1bnNpZ25lZCAvKiBlbnVtIGZpeGVkX2FkZHJlc3NlcyAqLyBpZHgsCisJCQkJdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwlwdl9tbXVfb3BzLnNldF9maXhtYXAoaWR4LCBwaHlzLCBmbGFncyk7Cit9CisKIHZvaWQgX3BhcmF2aXJ0X25vcCh2b2lkKTsKICNkZWZpbmUgcGFyYXZpcnRfbm9wCSgodm9pZCAqKV9wYXJhdmlydF9ub3ApCiAKQEAgLTEzNzQsNTQgKzE0OTMsODYgQEAKICNkZWZpbmUgUFZfUkVTVE9SRV9SRUdTIHBvcHEgJXJkeDsgcG9wcSAlcmN4OyBwb3BxICVyZGk7IHBvcHEgJXJheAogI2RlZmluZSBQQVJBX1BBVENIKHN0cnVjdCwgb2ZmKSAgICAgICAgKChQQVJBVklSVF9QQVRDSF8jI3N0cnVjdCArIChvZmYpKSAvIDgpCiAjZGVmaW5lIFBBUkFfU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcykgX1BWU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcywgLnF1YWQsIDgpCisjZGVmaW5lIFBBUkFfSU5ESVJFQ1QoYWRkcikJKmFkZHIoJXJpcCkKICNlbHNlCiAjZGVmaW5lIFBWX1NBVkVfUkVHUyAgIHB1c2hsICVlYXg7IHB1c2hsICVlZGk7IHB1c2hsICVlY3g7IHB1c2hsICVlZHgKICNkZWZpbmUgUFZfUkVTVE9SRV9SRUdTIHBvcGwgJWVkeDsgcG9wbCAlZWN4OyBwb3BsICVlZGk7IHBvcGwgJWVheAogI2RlZmluZSBQQVJBX1BBVENIKHN0cnVjdCwgb2ZmKSAgICAgICAgKChQQVJBVklSVF9QQVRDSF8jI3N0cnVjdCArIChvZmYpKSAvIDQpCiAjZGVmaW5lIFBBUkFfU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcykgX1BWU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcywgLmxvbmcsIDQpCisjZGVmaW5lIFBBUkFfSU5ESVJFQ1QoYWRkcikJKiVjczphZGRyCiAjZW5kaWYKIAogI2RlZmluZSBJTlRFUlJVUFRfUkVUVVJOCQkJCQkJXAogCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9pcmV0KSwgQ0xCUl9OT05FLAlcCi0JCSAgam1wIColY3M6cHZfY3B1X29wcytQVl9DUFVfaXJldCkKKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV9pcmV0KSkKIAogI2RlZmluZSBESVNBQkxFX0lOVEVSUlVQVFMoY2xvYmJlcnMpCQkJCQlcCiAJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfaXJxX29wcywgUFZfSVJRX2lycV9kaXNhYmxlKSwgY2xvYmJlcnMsIFwKLQkJICBQVl9TQVZFX1JFR1M7CQkJXAotCQkgIGNhbGwgKiVjczpwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZGlzYWJsZTsJCVwKKwkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAorCQkgIGNhbGwgUEFSQV9JTkRJUkVDVChwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZGlzYWJsZSk7CVwKIAkJICBQVl9SRVNUT1JFX1JFR1M7KQkJCVwKIAogI2RlZmluZSBFTkFCTEVfSU5URVJSVVBUUyhjbG9iYmVycykJCQkJCVwKIAlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9pcnFfb3BzLCBQVl9JUlFfaXJxX2VuYWJsZSksIGNsb2JiZXJzLAlcCi0JCSAgUFZfU0FWRV9SRUdTOwkJCVwKLQkJICBjYWxsIColY3M6cHZfaXJxX29wcytQVl9JUlFfaXJxX2VuYWJsZTsJCVwKKwkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAorCQkgIGNhbGwgUEFSQV9JTkRJUkVDVChwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZW5hYmxlKTsJXAogCQkgIFBWX1JFU1RPUkVfUkVHUzspCiAKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJCQkJCVwKLQlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCksXAorI2RlZmluZSBVU0VSR1NfU1lTUkVUMzIJCQkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV91c2VyZ3Nfc3lzcmV0MzIpLAlcCiAJCSAgQ0xCUl9OT05FLAkJCQkJCVwKLQkJICBqbXAgKiVjczpwdl9jcHVfb3BzK1BWX0NQVV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KQotCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfdXNlcmdzX3N5c3JldDMyKSkKIAogI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgR0VUX0NSMF9JTlRPX0VBWAkJCVwKLQlwdXNoICVlY3g7IHB1c2ggJWVkeDsJCQlcCi0JY2FsbCAqcHZfY3B1X29wcytQVl9DUFVfcmVhZF9jcjA7CVwKKyNkZWZpbmUgR0VUX0NSMF9JTlRPX0VBWAkJCQlcCisJcHVzaCAlZWN4OyBwdXNoICVlZHg7CQkJCVwKKwljYWxsIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfcmVhZF9jcjApOwlcCiAJcG9wICVlZHg7IHBvcCAlZWN4Ci0jZWxzZQorCisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSkKKworCisjZWxzZQkvKiAhQ09ORklHX1g4Nl8zMiAqLworCisvKgorICogSWYgc3dhcGdzIGlzIHVzZWQgd2hpbGUgdGhlIHVzZXJzcGFjZSBzdGFjayBpcyBzdGlsbCBjdXJyZW50LAorICogdGhlcmUncyBubyB3YXkgdG8gY2FsbCBhIHB2b3AuICBUaGUgUFYgcmVwbGFjZW1lbnQgKm11c3QqIGJlCisgKiBpbmxpbmVkLCBvciB0aGUgc3dhcGdzIGluc3RydWN0aW9uIG11c3QgYmUgdHJhcHBlZCBhbmQgZW11bGF0ZWQuCisgKi8KKyNkZWZpbmUgU1dBUEdTX1VOU0FGRV9TVEFDSwkJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfc3dhcGdzKSwgQ0xCUl9OT05FLAlcCisJCSAgc3dhcGdzKQorCiAjZGVmaW5lIFNXQVBHUwkJCQkJCQkJXAogCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9zd2FwZ3MpLCBDTEJSX05PTkUsCVwKIAkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAotCQkgIGNhbGwgKnB2X2NwdV9vcHMrUFZfQ1BVX3N3YXBnczsJCQlcCisJCSAgY2FsbCBQQVJBX0lORElSRUNUKHB2X2NwdV9vcHMrUFZfQ1BVX3N3YXBncyk7CQlcCiAJCSAgUFZfUkVTVE9SRV9SRUdTCQkJCQlcCiAJCSApCiAKLSNkZWZpbmUgR0VUX0NSMl9JTlRPX1JDWAkJCVwKLQljYWxsICpwdl9tbXVfb3BzK1BWX01NVV9yZWFkX2NyMjsJXAotCW1vdnEgJXJheCwgJXJjeDsJCQlcCisjZGVmaW5lIEdFVF9DUjJfSU5UT19SQ1gJCQkJXAorCWNhbGwgUEFSQV9JTkRJUkVDVChwdl9tbXVfb3BzK1BWX01NVV9yZWFkX2NyMik7CVwKKwltb3ZxICVyYXgsICVyY3g7CQkJCVwKIAl4b3JxICVyYXgsICVyYXg7CiAKLSNlbmRpZgorI2RlZmluZSBQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCQkJCQlcCisJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfaXJxX29wcywgUFZfSVJRX2FkanVzdF9leGNlcHRpb25fZnJhbWUpLCBcCisJCSAgQ0xCUl9OT05FLAkJCQkJCVwKKwkJICBjYWxsIFBBUkFfSU5ESVJFQ1QocHZfaXJxX29wcytQVl9JUlFfYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSkpCisKKyNkZWZpbmUgVVNFUkdTX1NZU1JFVDY0CQkJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfdXNlcmdzX3N5c3JldDY0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfdXNlcmdzX3N5c3JldDY0KSkKKworI2RlZmluZSBFTkFCTEVfSU5URVJSVVBUU19TWVNFWElUMzIJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSkKKyNlbmRpZgkvKiBDT05GSUdfWDg2XzMyICovCiAKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYXQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wYXQuaAppbmRleCA4OGY2MGNjLi43ZWRjNDczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGF0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhdC5oCkBAIC0xLDE0ICsxLDEzIEBACi0KICNpZm5kZWYgX0FTTV9QQVRfSAotI2RlZmluZSBfQVNNX1BBVF9IIDEKKyNkZWZpbmUgX0FTTV9QQVRfSAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAogI2lmZGVmIENPTkZJR19YODZfUEFUCi1leHRlcm4gaW50IHBhdF93Y19lbmFibGVkOworZXh0ZXJuIGludCBwYXRfZW5hYmxlZDsKIGV4dGVybiB2b2lkIHZhbGlkYXRlX3BhdF9zdXBwb3J0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CiAjZWxzZQotc3RhdGljIGNvbnN0IGludCBwYXRfd2NfZW5hYmxlZCA9IDA7CitzdGF0aWMgY29uc3QgaW50IHBhdF9lbmFibGVkOwogc3RhdGljIGlubGluZSB2b2lkIHZhbGlkYXRlX3BhdF9zdXBwb3J0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykgeyB9CiAjZW5kaWYKIApAQCAtMjEsNCArMjAsMyBAQAogZXh0ZXJuIHZvaWQgcGF0X2Rpc2FibGUoY2hhciAqcmVhc29uKTsKIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAppbmRleCAzMGJiZGUwLi4yZGIxNGNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGNpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xOCw2ICsxOCw4IEBACiAjZW5kaWYKIH07CiAKK2V4dGVybiBpbnQgcGNpX3JvdXRlaXJxOworCiAvKiBzY2FuIGEgYnVzIGFmdGVyIGFsbG9jYXRpbmcgYSBwY2lfc3lzZGF0YSBmb3IgaXQgKi8KIGV4dGVybiBzdHJ1Y3QgcGNpX2J1cyAqcGNpX3NjYW5fYnVzX29uX25vZGUoaW50IGJ1c25vLCBzdHJ1Y3QgcGNpX29wcyAqb3BzLAogCQkJCQkgICAgaW50IG5vZGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BjaV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3BjaV8zMi5oCmluZGV4IDhjNGMzYTAuLmE1MGQ0NjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wY2lfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGNpXzMyLmgKQEAgLTE4LDEyICsxOCwxNCBAQAogI2RlZmluZSBQQ0lfRE1BX0JVU19JU19QSFlTCSgxKQogCiAvKiBwY2lfdW5tYXBfe3BhZ2Usc2luZ2xlfSBpcyBhIG5vcCBzby4uLiAqLwotI2RlZmluZSBERUNMQVJFX1BDSV9VTk1BUF9BRERSKEFERFJfTkFNRSkKLSNkZWZpbmUgREVDTEFSRV9QQ0lfVU5NQVBfTEVOKExFTl9OQU1FKQotI2RlZmluZSBwY2lfdW5tYXBfYWRkcihQVFIsIEFERFJfTkFNRSkJCSgwKQotI2RlZmluZSBwY2lfdW5tYXBfYWRkcl9zZXQoUFRSLCBBRERSX05BTUUsIFZBTCkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBwY2lfdW5tYXBfbGVuKFBUUiwgTEVOX05BTUUpCQkoMCkKLSNkZWZpbmUgcGNpX3VubWFwX2xlbl9zZXQoUFRSLCBMRU5fTkFNRSwgVkFMKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIERFQ0xBUkVfUENJX1VOTUFQX0FERFIoQUREUl9OQU1FKQlkbWFfYWRkcl90IEFERFJfTkFNRVswXTsKKyNkZWZpbmUgREVDTEFSRV9QQ0lfVU5NQVBfTEVOKExFTl9OQU1FKQl1bnNpZ25lZCBMRU5fTkFNRVswXTsKKyNkZWZpbmUgcGNpX3VubWFwX2FkZHIoUFRSLCBBRERSX05BTUUpCXNpemVvZigoUFRSKS0+QUREUl9OQU1FKQorI2RlZmluZSBwY2lfdW5tYXBfYWRkcl9zZXQoUFRSLCBBRERSX05BTUUsIFZBTCkgXAorCWRvIHsgYnJlYWs7IH0gd2hpbGUgKHBjaV91bm1hcF9hZGRyKFBUUiwgQUREUl9OQU1FKSkKKyNkZWZpbmUgcGNpX3VubWFwX2xlbihQVFIsIExFTl9OQU1FKQkJc2l6ZW9mKChQVFIpLT5MRU5fTkFNRSkKKyNkZWZpbmUgcGNpX3VubWFwX2xlbl9zZXQoUFRSLCBMRU5fTkFNRSwgVkFMKSBcCisJZG8geyBicmVhazsgfSB3aGlsZSAocGNpX3VubWFwX2xlbihQVFIsIExFTl9OQU1FKSkKIAogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BkYS5oIGIvaW5jbHVkZS9hc20teDg2L3BkYS5oCmluZGV4IDEwMWZiOWUuLmIzNGU5YTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZGEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGRhLmgKQEAgLTIyLDYgKzIyLDggQEAKIAkJCQkJICAgb2Zmc2V0IDQwISEhICovCiAjZW5kaWYKIAljaGFyICppcnFzdGFja3B0cjsKKwlzaG9ydCBub2RlbnVtYmVyOwkJLyogbnVtYmVyIG9mIGN1cnJlbnQgbm9kZSAoMzJrIG1heCkgKi8KKwlzaG9ydCBpbl9ib290bWVtOwkJLyogcGRhIGxpdmVzIGluIGJvb3RtZW0gKi8KIAl1bnNpZ25lZCBpbnQgX19zb2Z0aXJxX3BlbmRpbmc7CiAJdW5zaWduZWQgaW50IF9fbm1pX2NvdW50OwkvKiBudW1iZXIgb2YgTk1JIG9uIHRoaXMgQ1BVcyAqLwogCXNob3J0IG1tdV9zdGF0ZTsKQEAgLTM3LDggKzM5LDcgQEAKIAl1bnNpZ25lZCBpcnFfc3B1cmlvdXNfY291bnQ7CiB9IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7CiAKLWV4dGVybiBzdHJ1Y3QgeDg2NjRfcGRhICpfY3B1X3BkYVtdOwotZXh0ZXJuIHN0cnVjdCB4ODY2NF9wZGEgYm9vdF9jcHVfcGRhW107CitleHRlcm4gc3RydWN0IHg4NjY0X3BkYSAqKl9jcHVfcGRhOwogZXh0ZXJuIHZvaWQgcGRhX2luaXQoaW50KTsKIAogI2RlZmluZSBjcHVfcGRhKGkpIChfY3B1X3BkYVtpXSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZXJjcHUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wZXJjcHUuaAppbmRleCA3MzZmYzNiLi45MTJhM2ExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGVyY3B1LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BlcmNwdS5oCkBAIC0xNDMsNCArMTQzLDUwIEBACiAjZGVmaW5lIHg4Nl9vcl9wZXJjcHUodmFyLCB2YWwpIHBlcmNwdV90b19vcCgib3IiLCBwZXJfY3B1X18jI3ZhciwgdmFsKQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiAhQ09ORklHX1g4Nl82NCAqLworCisjaWZkZWYgQ09ORklHX1NNUAorCisvKgorICogRGVmaW5lIHRoZSAiRUFSTFlfUEVSX0NQVSIgbWFjcm9zLiAgVGhlc2UgYXJlIHVzZWQgZm9yIHNvbWUgcGVyX2NwdQorICogdmFyaWFibGVzIHRoYXQgYXJlIGluaXRpYWxpemVkIGFuZCBhY2Nlc3NlZCBiZWZvcmUgdGhlcmUgYXJlIHBlcl9jcHUKKyAqIGFyZWFzIGFsbG9jYXRlZC4KKyAqLworCisjZGVmaW5lCURFRklORV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSwgX2luaXR2YWx1ZSkJCQlcCisJREVGSU5FX1BFUl9DUFUoX3R5cGUsIF9uYW1lKSA9IF9pbml0dmFsdWU7CQkJXAorCV9fdHlwZW9mX18oX3R5cGUpIF9uYW1lIyNfZWFybHlfbWFwW05SX0NQVVNdIF9faW5pdGRhdGEgPQlcCisJCQkJeyBbMCAuLi4gTlJfQ1BVUy0xXSA9IF9pbml0dmFsdWUgfTsJXAorCV9fdHlwZW9mX18oX3R5cGUpICpfbmFtZSMjX2Vhcmx5X3B0ciA9IF9uYW1lIyNfZWFybHlfbWFwCisKKyNkZWZpbmUgRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKF9uYW1lKQkJCVwKKwlFWFBPUlRfUEVSX0NQVV9TWU1CT0woX25hbWUpCisKKyNkZWZpbmUgREVDTEFSRV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSkJCQlcCisJREVDTEFSRV9QRVJfQ1BVKF90eXBlLCBfbmFtZSk7CQkJCVwKKwlleHRlcm4gX190eXBlb2ZfXyhfdHlwZSkgKl9uYW1lIyNfZWFybHlfcHRyOwkJXAorCWV4dGVybiBfX3R5cGVvZl9fKF90eXBlKSAgX25hbWUjI19lYXJseV9tYXBbXQorCisjZGVmaW5lCWVhcmx5X3Blcl9jcHVfcHRyKF9uYW1lKSAoX25hbWUjI19lYXJseV9wdHIpCisjZGVmaW5lCWVhcmx5X3Blcl9jcHVfbWFwKF9uYW1lLCBfaWR4KSAoX25hbWUjI19lYXJseV9tYXBbX2lkeF0pCisjZGVmaW5lCWVhcmx5X3Blcl9jcHUoX25hbWUsIF9jcHUpIAkJCQlcCisJKGVhcmx5X3Blcl9jcHVfcHRyKF9uYW1lKSA/CQkJCVwKKwkJZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpW19jcHVdIDoJCVwKKwkJcGVyX2NwdShfbmFtZSwgX2NwdSkpCisKKyNlbHNlCS8qICFDT05GSUdfU01QICovCisjZGVmaW5lCURFRklORV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSwgX2luaXR2YWx1ZSkJCVwKKwlERUZJTkVfUEVSX0NQVShfdHlwZSwgX25hbWUpID0gX2luaXR2YWx1ZQorCisjZGVmaW5lIEVYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTChfbmFtZSkJCQlcCisJRVhQT1JUX1BFUl9DUFVfU1lNQk9MKF9uYW1lKQorCisjZGVmaW5lIERFQ0xBUkVfRUFSTFlfUEVSX0NQVShfdHlwZSwgX25hbWUpCQkJXAorCURFQ0xBUkVfUEVSX0NQVShfdHlwZSwgX25hbWUpCisKKyNkZWZpbmUJZWFybHlfcGVyX2NwdShfbmFtZSwgX2NwdSkgcGVyX2NwdShfbmFtZSwgX2NwdSkKKyNkZWZpbmUJZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpIE5VTEwKKy8qIG5vIGVhcmx5X3Blcl9jcHVfbWFwKCkgKi8KKworI2VuZGlmCS8qICFDT05GSUdfU01QICovCisKICNlbmRpZiAvKiBfQVNNX1g4Nl9QRVJDUFVfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ2FsbG9jLmggYi9pbmNsdWRlL2FzbS14ODYvcGdhbGxvYy5oCmluZGV4IDkxZTQ2NDEuLmQ2M2VhNDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ2FsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BnYWxsb2MuaApAQCAtNSw5ICs1LDEzIEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4JCS8qIGZvciBzdHJ1Y3QgcGFnZSAqLwogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KIAorc3RhdGljIGlubGluZSBpbnQgIF9fcGFyYXZpcnRfcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKSB7IHJldHVybiAwOyB9CisKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKICNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KICNlbHNlCisjZGVmaW5lIHBhcmF2aXJ0X3BnZF9hbGxvYyhtbSkJX19wYXJhdmlydF9wZ2RfYWxsb2MobW0pCitzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfYWxsb2NfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHBmbikJe30KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hbGxvY19wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgcGZuKQl7fQogc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FsbG9jX3BtZF9jbG9uZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBjbG9uZXBmbiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlLmggYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZS5oCmluZGV4IDk3YzI3MWIuLjQ5Y2JkNzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGUuaApAQCAtMjAsMzAgKzIwLDI1IEBACiAjZGVmaW5lIF9QQUdFX0JJVF9QQVRfTEFSR0UJMTIJLyogT24gMk1CIG9yIDFHQiBwYWdlcyAqLwogI2RlZmluZSBfUEFHRV9CSVRfTlggICAgICAgICAgIDYzICAgICAgIC8qIE5vIGV4ZWN1dGU6IG9ubHkgdmFsaWQgYWZ0ZXIgY3B1aWQgY2hlY2sgKi8KIAotLyoKLSAqIE5vdGU6IHdlIHVzZSBfQUMoMSwgTCkgaW5zdGVhZCBvZiBfQUMoMSwgVUwpIHNvIHRoYXQgd2UgZ2V0IGEKLSAqIHNpZ24tZXh0ZW5kZWQgdmFsdWUgb24gMzItYml0IHdpdGggYWxsIDEncyBpbiB0aGUgdXBwZXIgd29yZCwKLSAqIHdoaWNoIHByZXNlcnZlcyB0aGUgdXBwZXIgcHRlIHZhbHVlcyBvbiA2NC1iaXQgcHRlczoKLSAqLwotI2RlZmluZSBfUEFHRV9QUkVTRU5UCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9QUkVTRU5UKQotI2RlZmluZSBfUEFHRV9SVwkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUlcpCi0jZGVmaW5lIF9QQUdFX1VTRVIJKF9BQygxLCBMKTw8X1BBR0VfQklUX1VTRVIpCi0jZGVmaW5lIF9QQUdFX1BXVAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUFdUKQotI2RlZmluZSBfUEFHRV9QQ0QJKF9BQygxLCBMKTw8X1BBR0VfQklUX1BDRCkKLSNkZWZpbmUgX1BBR0VfQUNDRVNTRUQJKF9BQygxLCBMKTw8X1BBR0VfQklUX0FDQ0VTU0VEKQotI2RlZmluZSBfUEFHRV9ESVJUWQkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfRElSVFkpCi0jZGVmaW5lIF9QQUdFX1BTRQkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUFNFKQkvKiAyTUIgcGFnZSAqLwotI2RlZmluZSBfUEFHRV9HTE9CQUwJKF9BQygxLCBMKTw8X1BBR0VfQklUX0dMT0JBTCkJLyogR2xvYmFsIFRMQiBlbnRyeSAqLwotI2RlZmluZSBfUEFHRV9VTlVTRUQxCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQxKQotI2RlZmluZSBfUEFHRV9VTlVTRUQyCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQyKQotI2RlZmluZSBfUEFHRV9VTlVTRUQzCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQzKQotI2RlZmluZSBfUEFHRV9QQVQJKF9BQygxLCBMKTw8X1BBR0VfQklUX1BBVCkKLSNkZWZpbmUgX1BBR0VfUEFUX0xBUkdFIChfQUMoMSwgTCk8PF9QQUdFX0JJVF9QQVRfTEFSR0UpCisjZGVmaW5lIF9QQUdFX1BSRVNFTlQJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BSRVNFTlQpCisjZGVmaW5lIF9QQUdFX1JXCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9SVykKKyNkZWZpbmUgX1BBR0VfVVNFUgkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfVVNFUikKKyNkZWZpbmUgX1BBR0VfUFdUCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QV1QpCisjZGVmaW5lIF9QQUdFX1BDRAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfUENEKQorI2RlZmluZSBfUEFHRV9BQ0NFU1NFRAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfQUNDRVNTRUQpCisjZGVmaW5lIF9QQUdFX0RJUlRZCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9ESVJUWSkKKyNkZWZpbmUgX1BBR0VfUFNFCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QU0UpCisjZGVmaW5lIF9QQUdFX0dMT0JBTAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfR0xPQkFMKQorI2RlZmluZSBfUEFHRV9VTlVTRUQxCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQxKQorI2RlZmluZSBfUEFHRV9VTlVTRUQyCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQyKQorI2RlZmluZSBfUEFHRV9VTlVTRUQzCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQzKQorI2RlZmluZSBfUEFHRV9QQVQJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BBVCkKKyNkZWZpbmUgX1BBR0VfUEFUX0xBUkdFIChfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QQVRfTEFSR0UpCiAKICNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9QQUUpCi0jZGVmaW5lIF9QQUdFX05YCShfQUMoMSwgVUxMKSA8PCBfUEFHRV9CSVRfTlgpCisjZGVmaW5lIF9QQUdFX05YCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9OWCkKICNlbHNlCi0jZGVmaW5lIF9QQUdFX05YCTAKKyNkZWZpbmUgX1BBR0VfTlgJKF9BVChwdGV2YWxfdCwgMCkpCiAjZW5kaWYKIAogLyogSWYgX1BBR0VfUFJFU0VOVCBpcyBjbGVhciwgd2UgdXNlIHRoZXNlOiAqLwpAQCAtODMsMTkgKzc4LDkgQEAKICNkZWZpbmUgUEFHRV9SRUFET05MWV9FWEVDCV9fcGdwcm90KF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9VU0VSIHwJXAogCQkJCQkgX1BBR0VfQUNDRVNTRUQpCiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jZGVmaW5lIF9QQUdFX0tFUk5FTF9FWEVDIFwKLQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCkKLSNkZWZpbmUgX1BBR0VfS0VSTkVMIChfUEFHRV9LRVJORUxfRVhFQyB8IF9QQUdFX05YKQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIHB0ZXZhbF90IF9fUEFHRV9LRVJORUwsIF9fUEFHRV9LRVJORUxfRVhFQzsKLSNlbmRpZgkvKiBfX0FTU0VNQkxZX18gKi8KLSNlbHNlCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfRVhFQwkJCQkJCVwKLQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCkKKwkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0dMT0JBTCkKICNkZWZpbmUgX19QQUdFX0tFUk5FTAkJKF9fUEFHRV9LRVJORUxfRVhFQyB8IF9QQUdFX05YKQotI2VuZGlmCiAKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9STwkJKF9fUEFHRV9LRVJORUwgJiB+X1BBR0VfUlcpCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfUlgJCShfX1BBR0VfS0VSTkVMX0VYRUMgJiB+X1BBR0VfUlcpCkBAIC0xMDYsMjYgKzkxLDIyIEBACiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfVlNZU0NBTEwJCShfX1BBR0VfS0VSTkVMX1JYIHwgX1BBR0VfVVNFUikKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9WU1lTQ0FMTF9OT0NBQ0hFCShfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMIHwgX1BBR0VfUENEIHwgX1BBR0VfUFdUKQogI2RlZmluZSBfX1BBR0VfS0VSTkVMX0xBUkdFCQkoX19QQUdFX0tFUk5FTCB8IF9QQUdFX1BTRSkKKyNkZWZpbmUgX19QQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFCShfX1BBR0VfS0VSTkVMIHwgX1BBR0VfQ0FDSEVfVUMgfCBfUEFHRV9QU0UpCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkoX19QQUdFX0tFUk5FTF9FWEVDIHwgX1BBR0VfUFNFKQogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBkZWZpbmUgTUFLRV9HTE9CQUwoeCkJCQlfX3BncHJvdCgoeCkpCi0jZWxzZQotIyBkZWZpbmUgTUFLRV9HTE9CQUwoeCkJCQlfX3BncHJvdCgoeCkgfCBfUEFHRV9HTE9CQUwpCi0jZW5kaWYKLQotI2RlZmluZSBQQUdFX0tFUk5FTAkJCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUwpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1JPCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9STykKLSNkZWZpbmUgUEFHRV9LRVJORUxfRVhFQwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9FWEVDKQotI2RlZmluZSBQQUdFX0tFUk5FTF9SWAkJCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUxfUlgpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1dDCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9XQykKLSNkZWZpbmUgUEFHRV9LRVJORUxfTk9DQUNIRQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9OT0NBQ0hFKQotI2RlZmluZSBQQUdFX0tFUk5FTF9VQ19NSU5VUwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9VQ19NSU5VUykKLSNkZWZpbmUgUEFHRV9LRVJORUxfRVhFQ19OT0NBQ0hFCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUxfRVhFQ19OT0NBQ0hFKQotI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9MQVJHRSkKLSNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDKQotI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTAkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9WU1lTQ0FMTCkKLSNkZWZpbmUgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMCQkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfUk8JCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1JPKQorI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0VYRUMpCisjZGVmaW5lIFBBR0VfS0VSTkVMX1JYCQkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9SWCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfV0MJCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1dDKQorI2RlZmluZSBQQUdFX0tFUk5FTF9OT0NBQ0hFCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMX1VDX01JTlVTCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1VDX01JTlVTKQorI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMX0xBUkdFCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0xBUkdFKQorI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfTEFSR0VfTk9DQUNIRSkKKyNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDKQorI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTAkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9WU1lTQ0FMTCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpCiAKIC8qICAgICAgICAgeHdyICovCiAjZGVmaW5lIF9fUDAwMAlQQUdFX05PTkUKQEAgLTE2NCwzNyArMTQ1LDM3IEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9kaXJ0eShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX0RJUlRZOworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX0RJUlRZOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfeW91bmcocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9BQ0NFU1NFRDsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9BQ0NFU1NFRDsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcHRlX3dyaXRlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfUlc7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfUlc7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9maWxlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfRklMRTsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9GSUxFOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfaHVnZShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX1BTRTsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9QU0U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9nbG9iYWwocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9HTE9CQUw7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfR0xPQkFMOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfZXhlYyhwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuICEocHRlX3ZhbChwdGUpICYgX1BBR0VfTlgpOworCXJldHVybiAhKHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfTlgpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfc3BlY2lhbChwdGVfdCBwdGUpCkBAIC0yMTAsMjIgKzE5MSwyMiBAQAogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta2NsZWFuKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9ESVJUWSk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9ESVJUWSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rb2xkKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9BQ0NFU1NFRCk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9BQ0NFU1NFRCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX3dycHJvdGVjdChwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfUlcpOworCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+X1BBR0VfUlcpOwogfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta2V4ZWMocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX05YKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX05YKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfbWtkaXJ0eShwdGVfdCBwdGUpCkBAIC0yNTAsNyArMjMxLDcgQEAKIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfY2xyaHVnZShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfUFNFKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX1BTRSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rZ2xvYmFsKHB0ZV90IHB0ZSkKQEAgLTI2MCw3ICsyNDEsNyBAQAogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9jbHJnbG9iYWwocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX0dMT0JBTCk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9HTE9CQUwpOwogfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3NwZWNpYWwocHRlX3QgcHRlKQpAQCAtMzA1LDcgKzI4Niw3IEBACiAJcmV0dXJuIF9fcGdwcm90KHByZXNlcnZlYml0cyB8IGFkZGJpdHMpOwogfQogCi0jZGVmaW5lIHB0ZV9wZ3Byb3QoeCkgX19wZ3Byb3QocHRlX3ZhbCh4KSAmIH5QVEVfTUFTSykKKyNkZWZpbmUgcHRlX3BncHJvdCh4KSBfX3BncHJvdChwdGVfZmxhZ3MoeCkgJiB+UFRFX01BU0spCiAKICNkZWZpbmUgY2Fub25fcGdwcm90KHApIF9fcGdwcm90KHBncHJvdF92YWwocCkgJiBfX3N1cHBvcnRlZF9wdGVfbWFzaykKIApAQCAtMzE4LDYgKzI5OSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90ICp2bWFfcHJvdCk7CiAjZW5kaWYKIAorLyogSW5zdGFsbCBhIHB0ZSBmb3IgYSBwYXJ0aWN1bGFyIHZhZGRyIGluIGtlcm5lbCBzcGFjZS4gKi8KK3ZvaWQgc2V0X3B0ZV92YWRkcih1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBwdGUpOworCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCiAjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CiAjZWxzZSAgLyogIUNPTkZJR19QQVJBVklSVCAqLwpAQCAtMzU5LDYgKzM0MywyNiBAQAogIyBpbmNsdWRlICJwZ3RhYmxlXzY0LmgiCiAjZW5kaWYKIAorLyoKKyAqIHRoZSBwZ2QgcGFnZSBjYW4gYmUgdGhvdWdodCBvZiBhbiBhcnJheSBsaWtlIHRoaXM6IHBnZF90W1BUUlNfUEVSX1BHRF0KKyAqCisgKiB0aGlzIG1hY3JvIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSBpbiB0aGUgcGdkIHBhZ2Ugd2hpY2ggd291bGQKKyAqIGNvbnRyb2wgdGhlIGdpdmVuIHZpcnR1YWwgYWRkcmVzcworICovCisjZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkgJiAoUFRSU19QRVJfUEdEIC0gMSkpCisKKy8qCisgKiBwZ2Rfb2Zmc2V0KCkgcmV0dXJucyBhIChwZ2RfdCAqKQorICogcGdkX2luZGV4KCkgaXMgdXNlZCBnZXQgdGhlIG9mZnNldCBpbnRvIHRoZSBwZ2QgcGFnZSdzIGFycmF5IG9mIHBnZF90J3M7CisgKi8KKyNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQorLyoKKyAqIGEgc2hvcnRjdXQgd2hpY2ggaW1wbGllcyB0aGUgdXNlIG9mIHRoZSBrZXJuZWwncyBwZ2QsIGluc3RlYWQKKyAqIG9mIGEgcHJvY2VzcydzCisgKi8KKyNkZWZpbmUgcGdkX29mZnNldF9rKGFkZHJlc3MpIHBnZF9vZmZzZXQoJmluaXRfbW0sIChhZGRyZXNzKSkKKworCiAjZGVmaW5lIEtFUk5FTF9QR0RfQk9VTkRBUlkJcGdkX2luZGV4KFBBR0VfT0ZGU0VUKQogI2RlZmluZSBLRVJORUxfUEdEX1BUUlMJCShQVFJTX1BFUl9QR0QgLSBLRVJORUxfUEdEX0JPVU5EQVJZKQogCkBAIC0zNjksOCArMzczLDE1IEBACiAJUEdfTEVWRUxfNEssCiAJUEdfTEVWRUxfMk0sCiAJUEdfTEVWRUxfMUcsCisJUEdfTEVWRUxfTlVNCiB9OwogCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK2V4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcyk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcykgeyB9CisjZW5kaWYKKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGtlcm5lbCBwYWdldGFibGUgZW50cnkgY29udHJvbGxpbmcKICAqIHRoZSB2aXJ0dWFsIGFkZHJlc3MgJ2FkZHJlc3MnLiBOVUxMIG1lYW5zIG5vIHBhZ2V0YWJsZSBlbnRyeSBwcmVzZW50LgpAQCAtNDIwLDYgKzQzMSw4IEBACiAgKiByYWNlIHdpdGggb3RoZXIgQ1BVJ3MgdGhhdCBtaWdodCBiZSB1cGRhdGluZyB0aGUgZGlydHkKICAqIGJpdCBhdCB0aGUgc2FtZSB0aW1lLgogICovCitzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CisKICNkZWZpbmUgIF9fSEFWRV9BUkNIX1BURVBfU0VUX0FDQ0VTU19GTEFHUwogZXh0ZXJuIGludCBwdGVwX3NldF9hY2Nlc3NfZmxhZ3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgcHRlX3QgKnB0ZXAsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGVfMzIuaAppbmRleCAzMmNhMDMxLi5lYzg3MWM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzMyLmgKQEAgLTExMywyNiArMTEzLDYgQEAKICAqLwogI2RlZmluZSBta19wdGUocGFnZSwgcGdwcm90KQlwZm5fcHRlKHBhZ2VfdG9fcGZuKHBhZ2UpLCAocGdwcm90KSkKIAotLyoKLSAqIHRoZSBwZ2QgcGFnZSBjYW4gYmUgdGhvdWdodCBvZiBhbiBhcnJheSBsaWtlIHRoaXM6IHBnZF90W1BUUlNfUEVSX1BHRF0KLSAqCi0gKiB0aGlzIG1hY3JvIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSBpbiB0aGUgcGdkIHBhZ2Ugd2hpY2ggd291bGQKLSAqIGNvbnRyb2wgdGhlIGdpdmVuIHZpcnR1YWwgYWRkcmVzcwotICovCi0jZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkgJiAoUFRSU19QRVJfUEdEIC0gMSkpCi0jZGVmaW5lIHBnZF9pbmRleF9rKGFkZHIpIHBnZF9pbmRleCgoYWRkcikpCi0KLS8qCi0gKiBwZ2Rfb2Zmc2V0KCkgcmV0dXJucyBhIChwZ2RfdCAqKQotICogcGdkX2luZGV4KCkgaXMgdXNlZCBnZXQgdGhlIG9mZnNldCBpbnRvIHRoZSBwZ2QgcGFnZSdzIGFycmF5IG9mIHBnZF90J3M7Ci0gKi8KLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQotCi0vKgotICogYSBzaG9ydGN1dCB3aGljaCBpbXBsaWVzIHRoZSB1c2Ugb2YgdGhlIGtlcm5lbCdzIHBnZCwgaW5zdGVhZAotICogb2YgYSBwcm9jZXNzJ3MKLSAqLwotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgKGFkZHJlc3MpKQogCiBzdGF0aWMgaW5saW5lIGludCBwdWRfbGFyZ2UocHVkX3QgcHVkKSB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV82NC5oCmluZGV4IDFjYzUwZDIuLmZhNzIwOGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGVfNjQuaApAQCAtNzAsNiArNzAsOSBAQAogCiBzdHJ1Y3QgbW1fc3RydWN0OwogCit2b2lkIHNldF9wdGVfdmFkZHJfcHVkKHB1ZF90ICpwdWRfcGFnZSwgdW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgbmV3X3B0ZSk7CisKKwogc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV9wdGVfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQkgICAgcHRlX3QgKnB0ZXApCiB7CkBAIC0xOTAsMTIgKzE5Myw5IEBACiAjZGVmaW5lIHBnZF9wYWdlX3ZhZGRyKHBnZCkJCQkJCQlcCiAJKCh1bnNpZ25lZCBsb25nKV9fdmEoKHVuc2lnbmVkIGxvbmcpcGdkX3ZhbCgocGdkKSkgJiBQVEVfTUFTSykpCiAjZGVmaW5lIHBnZF9wYWdlKHBnZCkJCShwZm5fdG9fcGFnZShwZ2RfdmFsKChwZ2QpKSA+PiBQQUdFX1NISUZUKSkKLSNkZWZpbmUgcGdkX2luZGV4KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBHRElSX1NISUZUKSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykJKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgKGluaXRfbGV2ZWw0X3BndCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQogI2RlZmluZSBwZ2RfcHJlc2VudChwZ2QpIChwZ2RfdmFsKHBnZCkgJiBfUEFHRV9QUkVTRU5UKQogc3RhdGljIGlubGluZSBpbnQgcGdkX2xhcmdlKHBnZF90IHBnZCkgeyByZXR1cm4gMDsgfQotI2RlZmluZSBta19rZXJuZWxfcGdkKGFkZHJlc3MpICgocGdkX3QpeyAoYWRkcmVzcykgfCBfS0VSTlBHX1RBQkxFIH0pCisjZGVmaW5lIG1rX2tlcm5lbF9wZ2QoYWRkcmVzcykgX19wZ2QoKGFkZHJlc3MpIHwgX0tFUk5QR19UQUJMRSkKIAogLyogUFVEIC0gTGV2ZWwzIGFjY2VzcyAqLwogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIHBhZ2UtdGFibGUtZGlyZWN0b3J5LiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci1mbGFncy5oIGIvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci1mbGFncy5oCmluZGV4IDE5OWNhYjEuLjA5MmIzOWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3ItZmxhZ3MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLWZsYWdzLmgKQEAgLTg4LDQgKzg4LDEwIEBACiAjZGVmaW5lIENYODZfQVJSX0JBU0UJMHhjNAogI2RlZmluZSBDWDg2X1JDUl9CQVNFCTB4ZGMKIAorI2lmZGVmIENPTkZJR19WTTg2CisjZGVmaW5lIFg4Nl9WTV9NQVNLCVg4Nl9FRkxBR1NfVk0KKyNlbHNlCisjZGVmaW5lIFg4Nl9WTV9NQVNLCTAgLyogTm8gVk04NiBzdXBwb3J0ICovCisjZW5kaWYKKwogI2VuZGlmCS8qIF9fQVNNX0kzODZfUFJPQ0VTU09SX0ZMQUdTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCA1NTkxMDUyLi43ZjczODI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCkBAIC0xNTMsNyArMTUzLDcgQEAKIAogZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwogCi1leHRlcm4gdm9pZCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICopOworZXh0ZXJuIHZvaWQgZWFybHlfY3B1X2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBpZGVudGlmeV9ib290X2NwdSh2b2lkKTsKIGV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICopOwogZXh0ZXJuIHZvaWQgcHJpbnRfY3B1X2luZm8oc3RydWN0IGNwdWluZm9feDg2ICopOwpAQCAtMjYzLDE1ICsyNjMsMTEgQEAKIAlzdHJ1Y3QgdGhyZWFkX3N0cnVjdAkqaW9fYml0bWFwX293bmVyOwogCiAJLyoKLQkgKiBQYWQgdGhlIFRTUyB0byBiZSBjYWNoZWxpbmUtYWxpZ25lZCAoc2l6ZSBpcyAweDEwMCk6Ci0JICovCi0JdW5zaWduZWQgbG9uZwkJX19jYWNoZWxpbmVfZmlsbGVyWzM1XTsKLQkvKgogCSAqIC4uIGFuZCB0aGVuIGFub3RoZXIgMHgxMDAgYnl0ZXMgZm9yIHRoZSBlbWVyZ2VuY3kga2VybmVsIHN0YWNrOgogCSAqLwogCXVuc2lnbmVkIGxvbmcJCXN0YWNrWzY0XTsKIAotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKK30gX19fX2NhY2hlbGluZV9hbGlnbmVkOwogCiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHRzc19zdHJ1Y3QsIGluaXRfdHNzKTsKIApAQCAtNTM1LDcgKzUzMSw2IEBACiB9CiAKICNkZWZpbmUgc2V0X2lvcGxfbWFzayBuYXRpdmVfc2V0X2lvcGxfbWFzawotI2RlZmluZSBTV0FQR1MJc3dhcGdzCiAjZW5kaWYgLyogQ09ORklHX1BBUkFWSVJUICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcHJvdG8uaCBiL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCmluZGV4IDZjOGI0MWIuLjNkZDQ1OGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCkBAIC0xNCw4ICsxNCw2IEBACiBleHRlcm4gdm9pZCBpYTMyX2NzdGFyX3RhcmdldCh2b2lkKTsKIGV4dGVybiB2b2lkIGlhMzJfc3lzZW50ZXJfdGFyZ2V0KHZvaWQpOwogCi1leHRlcm4gdm9pZCByZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxlbik7Ci0KIGV4dGVybiB2b2lkIHN5c2NhbGwzMl9jcHVfaW5pdCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgY2hlY2tfZWZlcih2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wdHJhY2UuaAppbmRleCA5ZjkyMmIwLi44YTcxZGI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcHRyYWNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3B0cmFjZS5oCkBAIC0zLDcgKzMsMTIgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CS8qIEZvciBfX3VzZXIgKi8KICNpbmNsdWRlIDxhc20vcHRyYWNlLWFiaS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KIAorI2lmZGVmIF9fS0VSTkVMX18KKyNpbmNsdWRlIDxhc20vZHMuaD4JCS8qIHRoZSBEUyBCVFMgc3RydWN0IGlzIHVzZWQgZm9yIHB0cmFjZSB0b28gKi8KKyNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgorI2VuZGlmCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKQEAgLTU1LDkgKzYwLDYgQEAKIAl1bnNpZ25lZCBsb25nIHNzOwogfTsKIAotI2luY2x1ZGUgPGFzbS92bTg2Lmg+Ci0jaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4KLQogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2Vsc2UgLyogX19pMzg2X18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wdmNsb2NrLWFiaS5oIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2stYWJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjg1N2Y4NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wdmNsb2NrLWFiaS5oCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgX0FTTV9YODZfUFZDTE9DS19BQklfSF8KKyNkZWZpbmUgX0FTTV9YODZfUFZDTE9DS19BQklfSF8KKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKKy8qCisgKiBUaGVzZSBzdHJ1Y3RzIE1VU1QgTk9UIGJlIGNoYW5nZWQuCisgKiBUaGV5IGFyZSB0aGUgQUJJIGJldHdlZW4gaHlwZXJ2aXNvciBhbmQgZ3Vlc3QgT1MuCisgKiBCb3RoIFhlbiBhbmQgS1ZNIGFyZSB1c2luZyB0aGlzLgorICoKKyAqIHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gaG9sZHMgdGhlIHN5c3RlbSB0aW1lIGFuZCB0aGUgdHNjIHRpbWVzdGFtcAorICogb2YgdGhlIGxhc3QgdXBkYXRlLiBTbyB0aGUgZ3Vlc3QgY2FuIHVzZSB0aGUgdHNjIGRlbHRhIHRvIGdldCBhCisgKiBtb3JlIHByZWNpc2Ugc3lzdGVtIHRpbWUuICBUaGVyZSBpcyBvbmUgcGVyIHZpcnR1YWwgY3B1LgorICoKKyAqIHB2Y2xvY2tfd2FsbF9jbG9jayByZWZlcmVuY2VzIHRoZSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIHN5c3RlbQorICogdGltZSB3YXMgemVybyAodXN1YWxseSBib290IHRpbWUpLCB0aHVzIHRoZSBndWVzdCBjYWxjdWxhdGVzIHRoZQorICogY3VycmVudCB3YWxsIGNsb2NrIGJ5IGFkZGluZyB0aGUgc3lzdGVtIHRpbWUuCisgKgorICogUHJvdG9jb2wgZm9yIHRoZSAidmVyc2lvbiIgZmllbGRzIGlzOiBoeXBlcnZpc29yIHJhaXNlcyBpdCAobWFraW5nCisgKiBpdCB1bmV2ZW4pIGJlZm9yZSBpdCBzdGFydHMgdXBkYXRpbmcgdGhlIGZpZWxkcyBhbmQgcmFpc2VzIGl0IGFnYWluCisgKiAobWFraW5nIGl0IGV2ZW4pIHdoZW4gaXQgaXMgZG9uZS4gIFRodXMgdGhlIGd1ZXN0IGNhbiBtYWtlIHN1cmUgdGhlCisgKiB0aW1lIHZhbHVlcyBpdCBnb3QgYXJlIGNvbnNpc3RlbnQgYnkgY2hlY2tpbmcgdGhlIHZlcnNpb24gYmVmb3JlCisgKiBhbmQgYWZ0ZXIgcmVhZGluZyB0aGVtLgorICovCisKK3N0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvIHsKKwl1MzIgICB2ZXJzaW9uOworCXUzMiAgIHBhZDA7CisJdTY0ICAgdHNjX3RpbWVzdGFtcDsKKwl1NjQgICBzeXN0ZW1fdGltZTsKKwl1MzIgICB0c2NfdG9fc3lzdGVtX211bDsKKwlzOCAgICB0c2Nfc2hpZnQ7CisJdTggICAgcGFkWzNdOworfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7IC8qIDMyIGJ5dGVzICovCisKK3N0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgeworCXUzMiAgIHZlcnNpb247CisJdTMyICAgc2VjOworCXUzMiAgIG5zZWM7Cit9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworI2VuZGlmIC8qIF9BU01fWDg2X1BWQ0xPQ0tfQUJJX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcHZjbG9jay5oIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxYmJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2suaApAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIF9BU01fWDg2X1BWQ0xPQ0tfSF8KKyNkZWZpbmUgX0FTTV9YODZfUFZDTE9DS19IXworCisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxhc20vcHZjbG9jay1hYmkuaD4KKworLyogc29tZSBoZWxwZXIgZnVuY3Rpb25zIGZvciB4ZW4gYW5kIGt2bSBwdiBjbG9jayBzb3VyY2VzICovCitjeWNsZV90IHB2Y2xvY2tfY2xvY2tzb3VyY2VfcmVhZChzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjKTsKK3ZvaWQgcHZjbG9ja19yZWFkX3dhbGxjbG9jayhzdHJ1Y3QgcHZjbG9ja193YWxsX2Nsb2NrICp3YWxsLAorCQkJICAgIHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICp2Y3B1LAorCQkJICAgIHN0cnVjdCB0aW1lc3BlYyAqdHMpOworCisjZW5kaWYgLyogX0FTTV9YODZfUFZDTE9DS19IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oIGIvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oCmluZGV4IGU2Mzc0MWYuLjIwNmYzNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZWJvb3QuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcmVib290LmgKQEAgLTE0LDggKzE0LDggQEAKIAogZXh0ZXJuIHN0cnVjdCBtYWNoaW5lX29wcyBtYWNoaW5lX29wczsKIAotdm9pZCBtYWNoaW5lX3JlYWxfcmVzdGFydCh1bnNpZ25lZCBjaGFyICpjb2RlLCBpbnQgbGVuZ3RoKTsKIHZvaWQgbmF0aXZlX21hY2hpbmVfY3Jhc2hfc2h1dGRvd24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogdm9pZCBuYXRpdmVfbWFjaGluZV9zaHV0ZG93bih2b2lkKTsKK3ZvaWQgbWFjaGluZV9yZWFsX3Jlc3RhcnQoY29uc3QgdW5zaWduZWQgY2hhciAqY29kZSwgaW50IGxlbmd0aCk7CiAKICNlbmRpZgkvKiBfQVNNX1JFQk9PVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcmVxdWlyZWQtZmVhdHVyZXMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCmluZGV4IDc0MDBkM2EuLmFkZWM4ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCkBAIC0xOSw5ICsxOSwxMyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X1BBRSkgfHwgZGVmaW5lZChDT05GSUdfWDg2XzY0KQogIyBkZWZpbmUgTkVFRF9QQUUJKDE8PChYODZfRkVBVFVSRV9QQUUgJiAzMSkpCi0jIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKICNlbHNlCiAjIGRlZmluZSBORUVEX1BBRQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfQ01QWENIRzY0CisjIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKKyNlbHNlCiAjIGRlZmluZSBORUVEX0NYOAkwCiAjZW5kaWYKIApAQCAtMzgsNyArNDIsNyBAQAogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0jZGVmaW5lIE5FRURfUFNFCSgxPDwoWDg2X0ZFQVRVUkVfUFNFICYgMzEpKQorI2RlZmluZSBORUVEX1BTRQkwCiAjZGVmaW5lIE5FRURfTVNSCSgxPDwoWDg2X0ZFQVRVUkVfTVNSICYgMzEpKQogI2RlZmluZSBORUVEX1BHRQkoMTw8KFg4Nl9GRUFUVVJFX1BHRSAmIDMxKSkKICNkZWZpbmUgTkVFRF9GWFNSCSgxPDwoWDg2X0ZFQVRVUkVfRlhTUiAmIDMxKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaAppbmRleCAyNTU3NTE0Li44ZDlmMGI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcmVzdW1lLXRyYWNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Jlc3VtZS10cmFjZS5oCkBAIC02LDcgKzYsNyBAQAogI2RlZmluZSBUUkFDRV9SRVNVTUUodXNlcikJCQkJCVwKIGRvIHsJCQkJCQkJCVwKIAlpZiAocG1fdHJhY2VfZW5hYmxlZCkgewkJCQkJXAotCQl2b2lkICp0cmFjZWRhdGE7CQkJCVwKKwkJY29uc3Qgdm9pZCAqdHJhY2VkYXRhOwkJCQlcCiAJCWFzbSB2b2xhdGlsZShfQVNNX01PVl9VTCAiICQxZiwlMFxuIgkJXAogCQkJICAgICAiLnNlY3Rpb24gLnRyYWNlZGF0YSxcImFcIlxuIglcCiAJCQkgICAgICIxOlx0LndvcmQgJWMxXG5cdCIJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF8zMi5oCmluZGV4IDE4ZGExOWUuLjM2ZTcxYzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfMzIuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF82NC5oCmluZGV4IDU1M2FmNjUuLjc2Y2ZlNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfNjQuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmggYi9pbmNsdWRlL2FzbS14ODYvc2VnbWVudC5oCmluZGV4IGVkNTEzMWQuLmRmYzg2MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlZ21lbnQuaApAQCAtNjEsMTggKzYxLDE0IEBACiAjZGVmaW5lIEdEVF9FTlRSWV9UTFNfTUFYIAkoR0RUX0VOVFJZX1RMU19NSU4gKyBHRFRfRU5UUllfVExTX0VOVFJJRVMgLSAxKQogCiAjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MJMTQKLSNkZWZpbmUgX19VU0VSX0NTIChHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTICogOCArIDMpCiAKICNkZWZpbmUgR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUwkxNQotI2RlZmluZSBfX1VTRVJfRFMgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgKiA4ICsgMykKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0JBU0UJMTIKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0NTCQkoR0RUX0VOVFJZX0tFUk5FTF9CQVNFICsgMCkKLSNkZWZpbmUgX19LRVJORUxfQ1MgKEdEVF9FTlRSWV9LRVJORUxfQ1MgKiA4KQogCiAjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyAxKQotI2RlZmluZSBfX0tFUk5FTF9EUyAoR0RUX0VOVFJZX0tFUk5FTF9EUyAqIDgpCiAKICNkZWZpbmUgR0RUX0VOVFJZX1RTUwkJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyA0KQogI2RlZmluZSBHRFRfRU5UUllfTERUCQkJKEdEVF9FTlRSWV9LRVJORUxfQkFTRSArIDUpCkBAIC0xMzksMTAgKzEzNSwxMSBAQAogI2Vsc2UKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KIAotI2RlZmluZSBfX0tFUk5FTF9DUwkweDEwCi0jZGVmaW5lIF9fS0VSTkVMX0RTCTB4MTgKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTDMyX0NTIDEKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTF9DUyAyCisjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMgMwogCi0jZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAweDA4CisjZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAoR0RUX0VOVFJZX0tFUk5FTDMyX0NTICogOCkKIAogLyoKICAqIHdlIGNhbm5vdCB1c2UgdGhlIHNhbWUgY29kZSBzZWdtZW50IGRlc2NyaXB0b3IgZm9yIHVzZXIgYW5kIGtlcm5lbApAQCAtMTUwLDEwICsxNDcsMTAgQEAKICAqIFRoZSBzZWdtZW50IG9mZnNldCBuZWVkcyB0byBjb250YWluIGEgUlBMLiBHcnIuIC1BSwogICogR0RUIGxheW91dCB0byBnZXQgNjRiaXQgc3lzY2FsbCByaWdodCAoc3lzcmV0IGhhcmRjb2RlcyBnZHQgb2Zmc2V0cykKICAqLwotCi0jZGVmaW5lIF9fVVNFUjMyX0NTICAgMHgyMyAgIC8qIDQqOCszICovCi0jZGVmaW5lIF9fVVNFUl9EUyAgICAgMHgyYiAgIC8qIDUqOCszICovCi0jZGVmaW5lIF9fVVNFUl9DUyAgICAgMHgzMyAgIC8qIDYqOCszICovCisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVIzMl9DUyA0CisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgNQorI2RlZmluZSBHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTIDYKKyNkZWZpbmUgX19VU0VSMzJfQ1MgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUjMyX0NTICogOCArIDMpCiAjZGVmaW5lIF9fVVNFUjMyX0RTCV9fVVNFUl9EUwogCiAjZGVmaW5lIEdEVF9FTlRSWV9UU1MgOAkvKiBuZWVkcyB0d28gZW50cmllcyAqLwpAQCAtMTc1LDYgKzE3MiwxMCBAQAogCiAjZW5kaWYKIAorI2RlZmluZSBfX0tFUk5FTF9DUwkoR0RUX0VOVFJZX0tFUk5FTF9DUyAqIDgpCisjZGVmaW5lIF9fS0VSTkVMX0RTCShHRFRfRU5UUllfS0VSTkVMX0RTICogOCkKKyNkZWZpbmUgX19VU0VSX0RTICAgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUyogOCArIDMpCisjZGVmaW5lIF9fVVNFUl9DUyAgICAgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MqIDggKyAzKQogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKICNkZWZpbmUgZ2V0X2tlcm5lbF9ycGwoKSAgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc2V0dXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCmluZGV4IGZhNjc2M2EuLjkwYWIyMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCkBAIC04LDcgKzgsMjUgQEAKIC8qIEludGVycnVwdCBjb250cm9sIGZvciB2U01Qb3dlcmVkIHg4Nl82NCBzeXN0ZW1zICovCiB2b2lkIHZzbXBfaW5pdCh2b2lkKTsKIAotY2hhciAqbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCk7CisjaWZkZWYgQ09ORklHX1g4Nl9WSVNXUworZXh0ZXJuIHZvaWQgdmlzd3NfZWFybHlfZGV0ZWN0KHZvaWQpOworZXh0ZXJuIGludCBpc192aXN3c19ib3godm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHZpc3dzX2Vhcmx5X2RldGVjdCh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgaW50IGlzX3Zpc3dzX2JveCh2b2lkKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKworLyoKKyAqIEFueSBzZXR1cCBxdWlya3MgdG8gYmUgcGVyZm9ybWVkPworICovCitleHRlcm4gaW50ICgqYXJjaF90aW1lX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqYXJjaF9pbnRyX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfdHJhcF9pbml0X3F1aXJrKSh2b2lkKTsKK2V4dGVybiBjaGFyICogKCphcmNoX21lbW9yeV9zZXR1cF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IGVhcmx5KTsKK2V4dGVybiBpbnQgKCptYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IHJlc2VydmUpOworCiAjaWZuZGVmIENPTkZJR19QQVJBVklSVAogI2RlZmluZSBwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCkJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKQEAgLTQzLDI2ICs2MSwyMyBAQAogICovCiBleHRlcm4gc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwogCi0jaWZkZWYgX19pMzg2X18KIC8qCiAgKiBEbyBOT1QgRVZFUiBsb29rIGF0IHRoZSBCSU9TIG1lbW9yeSBzaXplIGxvY2F0aW9uLgogICogSXQgZG9lcyBub3Qgd29yayBvbiBtYW55IG1hY2hpbmVzLgogICovCiAjZGVmaW5lIExPV01FTVNJWkUoKQkoMHg5ZjAwMCkKIAotc3RydWN0IGU4MjBlbnRyeTsKKyNpZmRlZiBfX2kzODZfXwogCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpOwotY2hhciAqbWVtb3J5X3NldHVwKHZvaWQpOwordm9pZCBfX2luaXQgaTM4Nl9zdGFydF9rZXJuZWwodm9pZCk7CitleHRlcm4gdm9pZCBwcm9iZV9yb21zKHZvaWQpOwogCi1pbnQgX19pbml0IGNvcHlfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCk7Ci1pbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGNoYXIgKnBucl9tYXApOwotdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIGludCB0eXBlKTsKLQorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfc3RhcnQ7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19lbmQ7CiAKLQorI2Vsc2UKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqcmVhbF9tb2RlKTsKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9yZXNlcnZhdGlvbnMoY2hhciAqcmVhbF9tb2RlX2RhdGEpOwogCiAjZW5kaWYgLyogX19pMzg2X18gKi8KICNlbmRpZiAvKiBfU0VUVVAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaAppbmRleCAxZWJhYTVjLi4yZTIyMWYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc21wLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NtcC5oCkBAIC0yOSwyMSArMjksMTIgQEAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbnVtX3Byb2Nlc3NvcnM7CiBleHRlcm4gY3B1bWFza190IGNwdV9pbml0aWFsaXplZDsKIAotI2lmZGVmIENPTkZJR19TTVAKLWV4dGVybiB1MTYgeDg2X2NwdV90b19hcGljaWRfaW5pdFtdOwotZXh0ZXJuIHUxNiB4ODZfYmlvc19jcHVfYXBpY2lkX2luaXRbXTsKLWV4dGVybiB2b2lkICp4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHI7Ci1leHRlcm4gdm9pZCAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7Ci0jZWxzZQotI2RlZmluZSB4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIgTlVMTAotI2RlZmluZSB4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciBOVUxMCi0jZW5kaWYKLQogREVDTEFSRV9QRVJfQ1BVKGNwdW1hc2tfdCwgY3B1X3NpYmxpbmdfbWFwKTsKIERFQ0xBUkVfUEVSX0NQVShjcHVtYXNrX3QsIGNwdV9jb3JlX21hcCk7CiBERUNMQVJFX1BFUl9DUFUodTE2LCBjcHVfbGxjX2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9jcHVfdG9fYXBpY2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQpOworCitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCk7CitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfYmlvc19jcHVfYXBpY2lkKTsKIAogLyogU3RhdGljIHN0YXRlIGluIGhlYWQuUyB1c2VkIHRvIHNldCB1cCBhIENQVSAqLwogZXh0ZXJuIHN0cnVjdCB7CkBAIC0xMTgsOCArMTA5LDYgQEAKIGV4dGVybiBpbnQgX19jcHVfZGlzYWJsZSh2b2lkKTsKIGV4dGVybiB2b2lkIF9fY3B1X2RpZSh1bnNpZ25lZCBpbnQgY3B1KTsKIAotZXh0ZXJuIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCk7Ci0KIHZvaWQgc21wX3N0b3JlX2NwdV9pbmZvKGludCBpZCk7CiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkKIApAQCAtMTMwLDYgKzExOSwxNCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAorI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfSE9UUExVR19DUFUpCitleHRlcm4gdm9pZCBwcmVmaWxsX3Bvc3NpYmxlX21hcCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCkKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gdW5zaWduZWQgZGlzYWJsZWRfY3B1cyBfX2NwdWluaXRkYXRhOwogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMl9TTVAKQEAgLTE5NywxMSArMTk0LDkgQEAKICNlbmRpZiAvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQotZXh0ZXJuIHZvaWQgY3B1X2V4aXRfY2xlYXIodm9pZCk7CiBleHRlcm4gdm9pZCBjcHVfdW5pbml0KHZvaWQpOwogI2VuZGlmCiAKLWV4dGVybiB2b2lkIHNtcF9hbGxvY19tZW1vcnkodm9pZCk7CiBleHRlcm4gdm9pZCBsb2NrX2lwaV9jYWxsX2xvY2sodm9pZCk7CiBleHRlcm4gdm9pZCB1bmxvY2tfaXBpX2NhbGxfbG9jayh2b2lkKTsKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmggYi9pbmNsdWRlL2FzbS14ODYvc3JhdC5oCmluZGV4IGY0YmJhMTMuLjc3NGM5MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NyYXQuaApAQCAtMjcsMTEgKzI3LDEzIEBACiAjaWZuZGVmIF9BU01fU1JBVF9IXwogI2RlZmluZSBfQVNNX1NSQVRfSF8KIAotI2lmbmRlZiBDT05GSUdfQUNQSV9TUkFUCi0jZXJyb3IgQ09ORklHX0FDUElfU1JBVCBub3QgZGVmaW5lZCwgYW5kIHNyYXQuaCBoZWFkZXIgaGFzIGJlZW4gaW5jbHVkZWQKLSNlbmRpZgotCisjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nICpnZXRfemhvbGVzX3NpemUoaW50KTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1NSQVRfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaAppbmRleCBiNDkzNjlhLi4xOTM1NzhjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3RyaW5nXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3N0cmluZ18zMi5oCkBAIC0yOSw4MSArMjksMTE2IEBACiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTgogZXh0ZXJuIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqcyk7CiAKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IG4pCiB7Ci1pbnQgZDAsIGQxLCBkMjsKLV9fYXNtX18gX192b2xhdGlsZV9fKAotCSJyZXAgOyBtb3ZzbFxuXHQiCi0JIm1vdmwgJTQsJSVlY3hcblx0IgotCSJhbmRsICQzLCUlZWN4XG5cdCIKLQkianogMWZcblx0IgotCSJyZXAgOyBtb3ZzYlxuXHQiCi0JIjE6IgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKSwgIj0mUyIgKGQyKQotCTogIjAiIChuLzQpLCAiZyIgKG4pLCAiMSIgKChsb25nKSB0byksICIyIiAoKGxvbmcpIGZyb20pCi0JOiAibWVtb3J5Iik7Ci1yZXR1cm4gKHRvKTsKKwlpbnQgZDAsIGQxLCBkMjsKKwlhc20gdm9sYXRpbGUoInJlcCA7IG1vdnNsXG5cdCIKKwkJICAgICAibW92bCAlNCwlJWVjeFxuXHQiCisJCSAgICAgImFuZGwgJDMsJSVlY3hcblx0IgorCQkgICAgICJqeiAxZlxuXHQiCisJCSAgICAgInJlcCA7IG1vdnNiXG5cdCIKKwkJICAgICAiMToiCisJCSAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpLCAiPSZTIiAoZDIpCisJCSAgICAgOiAiMCIgKG4gLyA0KSwgImciIChuKSwgIjEiICgobG9uZyl0byksICIyIiAoKGxvbmcpZnJvbSkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gdG87CiB9CiAKIC8qCiAgKiBUaGlzIGxvb2tzIHVnbHksIGJ1dCB0aGUgY29tcGlsZXIgY2FuIG9wdGltaXplIGl0IHRvdGFsbHksCiAgKiBhcyB0aGUgY291bnQgaXMgY29uc3RhbnQuCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwKKwkJCQkJICAgICAgIHNpemVfdCBuKQogewogCWxvbmcgZXNpLCBlZGk7Ci0JaWYgKCFuKSByZXR1cm4gdG87Ci0jaWYgMQkvKiB3YW50IHRvIGRvIHNtYWxsIGNvcGllcyB3aXRoIG5vbi1zdHJpbmcgb3BzPyAqLworCWlmICghbikKKwkJcmV0dXJuIHRvOworCiAJc3dpdGNoIChuKSB7Ci0JCWNhc2UgMTogKihjaGFyKil0byA9ICooY2hhciopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDI6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDQ6ICooaW50Kil0byA9ICooaW50Kilmcm9tOyByZXR1cm4gdG87Ci0jaWYgMQkvKiBpbmNsdWRpbmcgdGhvc2UgZG9hYmxlIHdpdGggdHdvIG1vdmVzPyAqLwotCQljYXNlIDM6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsKLQkJCSooKGNoYXIqKXRvKzIpID0gKigoY2hhciopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDU6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoY2hhciopdG8rNCkgPSAqKChjaGFyKilmcm9tKzQpOyByZXR1cm4gdG87Ci0JCWNhc2UgNjogKihpbnQqKXRvID0gKihpbnQqKWZyb207Ci0JCQkqKChzaG9ydCopdG8rMikgPSAqKChzaG9ydCopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDg6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoaW50Kil0bysxKSA9ICooKGludCopZnJvbSsxKTsgcmV0dXJuIHRvOwotI2VuZGlmCisJY2FzZSAxOgorCQkqKGNoYXIgKil0byA9ICooY2hhciAqKWZyb207CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQlyZXR1cm4gdG87CisJY2FzZSA0OgorCQkqKGludCAqKXRvID0gKihpbnQgKilmcm9tOworCQlyZXR1cm4gdG87CisKKwljYXNlIDM6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQkqKChjaGFyICopdG8gKyAyKSA9ICooKGNoYXIgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDU6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGNoYXIgKil0byArIDQpID0gKigoY2hhciAqKWZyb20gKyA0KTsKKwkJcmV0dXJuIHRvOworCWNhc2UgNjoKKwkJKihpbnQgKil0byA9ICooaW50ICopZnJvbTsKKwkJKigoc2hvcnQgKil0byArIDIpID0gKigoc2hvcnQgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDg6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGludCAqKXRvICsgMSkgPSAqKChpbnQgKilmcm9tICsgMSk7CisJCXJldHVybiB0bzsKIAl9Ci0jZW5kaWYKLQllc2kgPSAobG9uZykgZnJvbTsKLQllZGkgPSAobG9uZykgdG87Ci0JaWYgKG4gPj0gNSo0KSB7CisKKwllc2kgPSAobG9uZylmcm9tOworCWVkaSA9IChsb25nKXRvOworCWlmIChuID49IDUgKiA0KSB7CiAJCS8qIGxhcmdlIGJsb2NrOiB1c2UgcmVwIHByZWZpeCAqLwogCQlpbnQgZWN4OwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJCSJyZXAgOyBtb3ZzbCIKLQkJCTogIj0mYyIgKGVjeCksICI9JkQiIChlZGkpLCAiPSZTIiAoZXNpKQotCQkJOiAiMCIgKG4vNCksICIxIiAoZWRpKSwiMiIgKGVzaSkKLQkJCTogIm1lbW9yeSIKKwkJYXNtIHZvbGF0aWxlKCJyZXAgOyBtb3ZzbCIKKwkJCSAgICAgOiAiPSZjIiAoZWN4KSwgIj0mRCIgKGVkaSksICI9JlMiIChlc2kpCisJCQkgICAgIDogIjAiIChuIC8gNCksICIxIiAoZWRpKSwgIjIiIChlc2kpCisJCQkgICAgIDogIm1lbW9yeSIKIAkJKTsKIAl9IGVsc2UgewogCQkvKiBzbWFsbCBibG9jazogZG9uJ3QgY2xvYmJlciBlY3ggKyBzbWFsbGVyIGNvZGUgKi8KLQkJaWYgKG4gPj0gNCo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMyo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMio0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMSo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gNCAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CisJCWlmIChuID49IDMgKiA0KQorCQkJYXNtIHZvbGF0aWxlKCJtb3ZzbCIKKwkJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCQkgICAgIDogIm1lbW9yeSIpOworCQlpZiAobiA+PSAyICogNCkKKwkJCWFzbSB2b2xhdGlsZSgibW92c2wiCisJCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCQkgICAgIDogIjAiKGVkaSksICIxIihlc2kpCisJCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gMSAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CiAJfQogCXN3aXRjaCAobiAlIDQpIHsKIAkJLyogdGFpbCAqLwotCQljYXNlIDA6IHJldHVybiB0bzsKLQkJY2FzZSAxOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2IiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c3ciCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJZGVmYXVsdDogX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdnN3XG5cdG1vdnNiIgotCQkJOiI9JkQiKGVkaSksIj0mUyIoZXNpKToiMCIoZWRpKSwiMSIoZXNpKToibWVtb3J5Iik7Ci0JCQlyZXR1cm4gdG87CisJY2FzZSAwOgorCQlyZXR1cm4gdG87CisJY2FzZSAxOgorCQlhc20gdm9sYXRpbGUoIm1vdnNiIgorCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCWFzbSB2b2xhdGlsZSgibW92c3ciCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOworCWRlZmF1bHQ6CisJCWFzbSB2b2xhdGlsZSgibW92c3dcblx0bW92c2IiCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOwogCX0KIH0KIApAQCAtMTE3LDg3ICsxNTIsODYgQEAKICAqCVRoaXMgQ1BVIGZhdm91cnMgM0ROb3cgc3Ryb25nbHkgKGVnIEFNRCBBdGhsb24pCiAgKi8KIAotc3RhdGljIGlubGluZSB2b2lkICogX19jb25zdGFudF9tZW1jcHkzZCh2b2lkICogdG8sIGNvbnN0IHZvaWQgKiBmcm9tLCBzaXplX3QgbGVuKQorc3RhdGljIGlubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweTNkKHZvaWQgKnRvLCBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgbGVuKQogewogCWlmIChsZW4gPCA1MTIpCiAJCXJldHVybiBfX2NvbnN0YW50X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIAlyZXR1cm4gX21teF9tZW1jcHkodG8sIGZyb20sIGxlbik7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCiB7CiAJaWYgKGxlbiA8IDUxMikKIAkJcmV0dXJuIF9fbWVtY3B5KHRvLCBmcm9tLCBsZW4pOwogCXJldHVybiBfbW14X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIH0KIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5M2QoKHQpLChmKSwobikpIDogXAotIF9fbWVtY3B5M2QoKHQpLChmKSwobikpKQorI2RlZmluZSBtZW1jcHkodCwgZiwgbikJCQkJXAorCShfX2J1aWx0aW5fY29uc3RhbnRfcCgobikpCQlcCisJID8gX19jb25zdGFudF9tZW1jcHkzZCgodCksIChmKSwgKG4pKQlcCisJIDogX19tZW1jcHkzZCgodCksIChmKSwgKG4pKSkKIAogI2Vsc2UKIAogLyoKICAqCU5vIDNEIE5vdyEKICAqLwotIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5KCh0KSwoZiksKG4pKSA6IFwKLSBfX21lbWNweSgodCksKGYpLChuKSkpCisKKyNkZWZpbmUgbWVtY3B5KHQsIGYsIG4pCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoKG4pKQkJXAorCSA/IF9fY29uc3RhbnRfbWVtY3B5KCh0KSwgKGYpLCAobikpCVwKKwkgOiBfX21lbWNweSgodCksIChmKSwgKG4pKSkKIAogI2VuZGlmCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNTU9WRQotdm9pZCAqbWVtbW92ZSh2b2lkICogZGVzdCxjb25zdCB2b2lkICogc3JjLCBzaXplX3Qgbik7Cit2b2lkICptZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pOwogCiAjZGVmaW5lIG1lbWNtcCBfX2J1aWx0aW5fbWVtY21wCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNQ0hSCi1leHRlcm4gdm9pZCAqbWVtY2hyKGNvbnN0IHZvaWQgKiBjcyxpbnQgYyxzaXplX3QgY291bnQpOworZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICpjcywgaW50IGMsIHNpemVfdCBjb3VudCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCAqIF9fbWVtc2V0X2dlbmVyaWModm9pZCAqIHMsIGNoYXIgYyxzaXplX3QgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtc2V0X2dlbmVyaWModm9pZCAqcywgY2hhciBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcFxuXHQiCi0JInN0b3NiIgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCIxIiAocyksIjAiIChjb3VudCkKLQk6Im1lbW9yeSIpOwotcmV0dXJuIHM7CisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcFxuXHQiCisJCSAgICAgInN0b3NiIgorCQkgICAgIDogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQorCQkgICAgIDogImEiIChjKSwgIjEiIChzKSwgIjAiIChjb3VudCkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gczsKIH0KIAogLyogd2UgbWlnaHQgd2FudCB0byB3cml0ZSBvcHRpbWl6ZWQgdmVyc2lvbnMgb2YgdGhlc2UgbGF0ZXIgKi8KLSNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocyxjLGNvdW50KSBfX21lbXNldF9nZW5lcmljKChzKSwoYyksKGNvdW50KSkKKyNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocywgYywgY291bnQpIF9fbWVtc2V0X2dlbmVyaWMoKHMpLCAoYyksIChjb3VudCkpCiAKIC8qCi0gKiBtZW1zZXQoeCwwLHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAorICogbWVtc2V0KHgsIDAsIHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAogICogdGhpbmdzIDMyIGJpdHMgYXQgYSB0aW1lIGV2ZW4gd2hlbiB3ZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIHRoZQogICogYXJlYSBhdCBjb21waWxlLXRpbWUuLgogICovCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgKiBfX2NvbnN0YW50X2NfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIGMsIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19tZW1zZXQodm9pZCAqcywgdW5zaWduZWQgbG9uZyBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcCA7IHN0b3NsXG5cdCIKLQkidGVzdGIgJDIsJWIzXG5cdCIKLQkiamUgMWZcblx0IgotCSJzdG9zd1xuIgotCSIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKLQkiamUgMmZcblx0IgotCSJzdG9zYlxuIgotCSIyOiIKLQk6Ij0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCAicSIgKGNvdW50KSwgIjAiIChjb3VudC80KSwgIjEiICgobG9uZykgcykKLQk6Im1lbW9yeSIpOwotcmV0dXJuIChzKTsJCisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcCA7IHN0b3NsXG5cdCIKKwkJICAgICAidGVzdGIgJDIsJWIzXG5cdCIKKwkJICAgICAiamUgMWZcblx0IgorCQkgICAgICJzdG9zd1xuIgorCQkgICAgICIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKKwkJICAgICAiamUgMmZcblx0IgorCQkgICAgICJzdG9zYlxuIgorCQkgICAgICIyOiIKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKKwkJICAgICA6ICJhIiAoYyksICJxIiAoY291bnQpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCisJCSAgICAgOiAibWVtb3J5Iik7CisJcmV0dXJuIHM7CiB9CiAKIC8qIEFkZGVkIGJ5IEdlcnRqYW4gdmFuIFdpbmdlcmRlIHRvIG1ha2UgbWluaXggYW5kIHN5c3YgbW9kdWxlIHdvcmsgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfU1RSTkxFTgotZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKiBzLCBzaXplX3QgY291bnQpOworZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCk7CiAvKiBlbmQgb2YgYWRkaXRpb25hbCBzdHVmZiAqLwogCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUlNUUgpAQCAtMjA3LDY2ICsyNDEsODUgQEAKICAqIFRoaXMgbG9va3MgaG9ycmlibHkgdWdseSwgYnV0IHRoZSBjb21waWxlciBjYW4gb3B0aW1pemUgaXQgdG90YWxseSwKICAqIGFzIHdlIGJ5IG5vdyBrbm93IHRoYXQgYm90aCBwYXR0ZXJuIGFuZCBjb3VudCBpcyBjb25zdGFudC4uCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIHBhdHRlcm4sIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKnMsIHVuc2lnbmVkIGxvbmcgcGF0dGVybiwKKwkJCQkgICAgc2l6ZV90IGNvdW50KQogewogCXN3aXRjaCAoY291bnQpIHsKKwljYXNlIDA6CisJCXJldHVybiBzOworCWNhc2UgMToKKwkJKih1bnNpZ25lZCBjaGFyICopcyA9IHBhdHRlcm4gJiAweGZmOworCQlyZXR1cm4gczsKKwljYXNlIDI6CisJCSoodW5zaWduZWQgc2hvcnQgKilzID0gcGF0dGVybiAmIDB4ZmZmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSAzOgorCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7CisJCSooKHVuc2lnbmVkIGNoYXIgKilzICsgMikgPSBwYXR0ZXJuICYgMHhmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSA0OgorCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKKwkJcmV0dXJuIHM7CisJfQorCisjZGVmaW5lIENPTU1PTih4KQkJCQkJCQlcCisJYXNtIHZvbGF0aWxlKCJyZXAgOyBzdG9zbCIJCQkJCVwKKwkJICAgICB4CQkJCQkJCVwKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkJCQkJXAorCQkgICAgIDogImEiIChlYXgpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCVwKKwkJICAgICA6ICJtZW1vcnkiKQorCisJeworCQlpbnQgZDAsIGQxOworI2lmIF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPT0gMAorCQkvKiBXb3JrYXJvdW5kIGZvciBicm9rZW4gZ2NjIDQuMCAqLworCQlyZWdpc3RlciB1bnNpZ25lZCBsb25nIGVheCBhc20oIiVlYXgiKSA9IHBhdHRlcm47CisjZWxzZQorCQl1bnNpZ25lZCBsb25nIGVheCA9IHBhdHRlcm47CisjZW5kaWYKKworCQlzd2l0Y2ggKGNvdW50ICUgNCkgewogCQljYXNlIDA6CisJCQlDT01NT04oIiIpOwogCQkJcmV0dXJuIHM7CiAJCWNhc2UgMToKLQkJCSoodW5zaWduZWQgY2hhciAqKXMgPSBwYXR0ZXJuICYgMHhmZjsKKwkJCUNPTU1PTigiXG5cdHN0b3NiIik7CiAJCQlyZXR1cm4gczsKIAkJY2FzZSAyOgotCQkJKih1bnNpZ25lZCBzaG9ydCAqKXMgPSBwYXR0ZXJuICYgMHhmZmZmOworCQkJQ09NTU9OKCJcblx0c3Rvc3ciKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDM6Ci0JCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7Ci0JCQkqKDIrKHVuc2lnbmVkIGNoYXIgKilzKSA9IHBhdHRlcm4gJiAweGZmOworCQlkZWZhdWx0OgorCQkJQ09NTU9OKCJcblx0c3Rvc3dcblx0c3Rvc2IiKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDQ6Ci0JCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKLQkJCXJldHVybiBzOworCQl9CiAJfQotI2RlZmluZSBDT01NT04oeCkgXAotX19hc21fXyAgX192b2xhdGlsZV9fKCBcCi0JInJlcCA7IHN0b3NsIiBcCi0JeCBcCi0JOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpIFwKLQk6ICJhIiAocGF0dGVybiksIjAiIChjb3VudC80KSwiMSIgKChsb25nKSBzKSBcCi0JOiAibWVtb3J5IikKLXsKLQlpbnQgZDAsIGQxOwotCXN3aXRjaCAoY291bnQgJSA0KSB7Ci0JCWNhc2UgMDogQ09NTU9OKCIiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMTogQ09NTU9OKCJcblx0c3Rvc2IiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMjogQ09NTU9OKCJcblx0c3Rvc3ciKTsgcmV0dXJuIHM7Ci0JCWRlZmF1bHQ6IENPTU1PTigiXG5cdHN0b3N3XG5cdHN0b3NiIik7IHJldHVybiBzOwotCX0KLX0KLSAgCisKICN1bmRlZiBDT01NT04KIH0KIAotI2RlZmluZSBfX2NvbnN0YW50X2NfeF9tZW1zZXQocywgYywgY291bnQpIFwKLShfX2J1aWx0aW5fY29uc3RhbnRfcChjb3VudCkgPyBcCi0gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLChjKSwoY291bnQpKSA6IFwKLSBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIF9fY29uc3RhbnRfY194X21lbXNldChzLCBjLCBjb3VudCkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KQkJCQlcCisJID8gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLCAoYyksIChjb3VudCkpCVwKKwkgOiBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAotI2RlZmluZSBfX21lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KSA/IFwKLSBfX2NvbnN0YW50X2NvdW50X21lbXNldCgocyksKGMpLChjb3VudCkpIDogXAotIF9fbWVtc2V0X2dlbmVyaWMoKHMpLChjKSwoY291bnQpKSkKKyNkZWZpbmUgX19tZW1zZXQocywgYywgY291bnQpCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoY291bnQpCQkJXAorCSA/IF9fY29uc3RhbnRfY291bnRfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKQlcCisJIDogX19tZW1zZXRfZ2VuZXJpYygocyksIChjKSwgKGNvdW50KSkpCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUCi0jZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpID8gXAotIF9fY29uc3RhbnRfY194X21lbXNldCgocyksKDB4MDEwMTAxMDFVTCoodW5zaWduZWQgY2hhcikoYykpLChjb3VudCkpIDogXAotIF9fbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkJCQkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpCQkJCQlcCisJID8gX19jb25zdGFudF9jX3hfbWVtc2V0KChzKSwgKDB4MDEwMTAxMDFVTCAqICh1bnNpZ25lZCBjaGFyKShjKSksIFwKKwkJCQkgKGNvdW50KSkJCQkJXAorCSA6IF9fbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAogLyoKICAqIGZpbmQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYnl0ZSAnYycsIG9yIDEgcGFzdCB0aGUgYXJlYSBpZiBub25lCiAgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0NBTgotZXh0ZXJuIHZvaWQgKm1lbXNjYW4odm9pZCAqIGFkZHIsIGludCBjLCBzaXplX3Qgc2l6ZSk7CitleHRlcm4gdm9pZCAqbWVtc2Nhbih2b2lkICphZGRyLCBpbnQgYywgc2l6ZV90IHNpemUpOwogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3N1c3BlbmRfMzIuaAppbmRleCAyNGUxYzA4Li44Njc1YzY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zdXNwZW5kXzMyLmgKQEAgLTMsNiArMyw5IEBACiAgKiBCYXNlZCBvbiBjb2RlCiAgKiBDb3B5cmlnaHQgMjAwMSBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPgogICovCisjaWZuZGVmIF9fQVNNX1g4Nl8zMl9TVVNQRU5EX0gKKyNkZWZpbmUgX19BU01fWDg2XzMyX1NVU1BFTkRfSAorCiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgogCkBAIC00NCwzICs0Nyw1IEBACiAvKiByb3V0aW5lcyBmb3Igc2F2aW5nL3Jlc3RvcmluZyBrZXJuZWwgc3RhdGUgKi8KIGV4dGVybiBpbnQgYWNwaV9zYXZlX3N0YXRlX21lbSh2b2lkKTsKICNlbmRpZgorCisjZW5kaWYgLyogX19BU01fWDg2XzMyX1NVU1BFTkRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oIGIvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oCmluZGV4IGEyZjA0Y2QuLjk4M2NlMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvc3lzdGVtLmgKQEAgLTEzNiw3ICsxMzYsNyBAQAogI2RlZmluZSBzZXRfYmFzZShsZHQsIGJhc2UpIF9zZXRfYmFzZSgoKGNoYXIgKikmKGxkdCkpICwgKGJhc2UpKQogI2RlZmluZSBzZXRfbGltaXQobGR0LCBsaW1pdCkgX3NldF9saW1pdCgoKGNoYXIgKikmKGxkdCkpICwgKChsaW1pdCktMSkpCiAKLWV4dGVybiB2b2lkIGxvYWRfZ3NfaW5kZXgodW5zaWduZWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX2xvYWRfZ3NfaW5kZXgodW5zaWduZWQpOwogCiAvKgogICogTG9hZCBhIHNlZ21lbnQuIEZhbGwgYmFjayBvbiBsb2FkaW5nIHRoZSB6ZXJvCkBAIC0xNTMsMTQgKzE1MywxNCBAQAogCQkgICAgICJqbXAgMmJcbiIJCQlcCiAJCSAgICAgIi5wcmV2aW91c1xuIgkJXAogCQkgICAgIF9BU01fRVhUQUJMRSgxYiwzYikJXAotCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApKQorCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApIDogIm1lbW9yeSIpCiAKIAogLyoKICAqIFNhdmUgYSBzZWdtZW50IHJlZ2lzdGVyIGF3YXkKICAqLwogI2RlZmluZSBzYXZlc2VnbWVudChzZWcsIHZhbHVlKQkJCQlcCi0JYXNtIHZvbGF0aWxlKCJtb3YgJSUiICNzZWcgIiwlMCI6Ij1ybSIgKHZhbHVlKSkKKwlhc20oIm1vdiAlJSIgI3NlZyAiLCUwIjoiPXIiICh2YWx1ZSkgOiA6ICJtZW1vcnkiKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2xpbWl0KHVuc2lnbmVkIGxvbmcgc2VnbWVudCkKIHsKQEAgLTI4Miw2ICsyODIsNyBAQAogI2lmZGVmIENPTkZJR19YODZfNjQKICNkZWZpbmUgcmVhZF9jcjgoKQkobmF0aXZlX3JlYWRfY3I4KCkpCiAjZGVmaW5lIHdyaXRlX2NyOCh4KQkobmF0aXZlX3dyaXRlX2NyOCh4KSkKKyNkZWZpbmUgbG9hZF9nc19pbmRleCAgIG5hdGl2ZV9sb2FkX2dzX2luZGV4CiAjZW5kaWYKIAogLyogQ2xlYXIgdGhlICdUUycgYml0ICovCkBAIC0yODksNyArMjkwLDcgQEAKIAogI2VuZGlmLyogQ09ORklHX1BBUkFWSVJUICovCiAKLSNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMCg4IHwgcmVhZF9jcjAoKSkKKyNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMChyZWFkX2NyMCgpIHwgWDg2X0NSMF9UUykKIAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIApAQCAtMzAzLDcgKzMwNCw2IEBACiB2b2lkIGRpc2FibGVfaGx0KHZvaWQpOwogdm9pZCBlbmFibGVfaGx0KHZvaWQpOwogCi1leHRlcm4gaW50IGVzNzAwMF9wbGF0Owogdm9pZCBjcHVfaWRsZV93YWl0KHZvaWQpOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBhcmNoX2FsaWduX3N0YWNrKHVuc2lnbmVkIGxvbmcgc3ApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvLmggYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAppbmRleCA3NzI0NGYxLi44OTUzMzlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaApAQCAtMSw5ICsxLDI1MyBAQAorLyogdGhyZWFkX2luZm8uaDogbG93LWxldmVsIHRocmVhZCBpbmZvcm1hdGlvbgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMiAgRGF2aWQgSG93ZWxscyAoZGhvd2VsbHNAcmVkaGF0LmNvbSkKKyAqIC0gSW5jb3Jwb3JhdGluZyBzdWdnZXN0aW9ucyBtYWRlIGJ5IExpbnVzIFRvcnZhbGRzIGFuZCBEYXZlIE1pbGxlcgorICovCisKICNpZm5kZWYgX0FTTV9YODZfVEhSRUFEX0lORk9fSAorI2RlZmluZSBfQVNNX1g4Nl9USFJFQURfSU5GT19ICisKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisKKy8qCisgKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCisgKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCisgKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcworICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHRhc2tfc3RydWN0Oworc3RydWN0IGV4ZWNfZG9tYWluOworI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKworc3RydWN0IHRocmVhZF9pbmZvIHsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCisJc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCisJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxhZ3MgKi8KKwlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCisJaW50CQkJcHJlZW1wdF9jb3VudDsJLyogMCA9PiBwcmVlbXB0YWJsZSwKKwkJCQkJCSAgIDwwID0+IEJVRyAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKKwlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOworCXZvaWQgX191c2VyCQkqc3lzZW50ZXJfcmV0dXJuOwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAidGhyZWFkX2luZm9fMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgInRocmVhZF9pbmZvXzY0LmgiCisJdW5zaWduZWQgbG9uZyAgICAgICAgICAgcHJldmlvdXNfZXNwOyAgIC8qIEVTUCBvZiB0aGUgcHJldmlvdXMgc3RhY2sgaW4KKwkJCQkJCSAgIGNhc2Ugb2YgbmVzdGVkIChJUlEpIHN0YWNrcworCQkJCQkJKi8KKwlfX3U4CQkJc3VwZXJ2aXNvcl9zdGFja1swXTsKICNlbmRpZgorfTsKKworI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlcCit7CQkJCQkJXAorCS50YXNrCQk9ICZ0c2ssCQkJXAorCS5leGVjX2RvbWFpbgk9ICZkZWZhdWx0X2V4ZWNfZG9tYWluLAlcCisJLmZsYWdzCQk9IDAsCQkJXAorCS5jcHUJCT0gMCwJCQlcCisJLnByZWVtcHRfY291bnQJPSAxLAkJCVwKKwkuYWRkcl9saW1pdAk9IEtFUk5FTF9EUywJCVwKKwkucmVzdGFydF9ibG9jayA9IHsJCQlcCisJCS5mbiA9IGRvX25vX3Jlc3RhcnRfc3lzY2FsbCwJXAorCX0sCQkJCQlcCit9CisKKyNkZWZpbmUgaW5pdF90aHJlYWRfaW5mbwkoaW5pdF90aHJlYWRfdW5pb24udGhyZWFkX2luZm8pCisjZGVmaW5lIGluaXRfc3RhY2sJCShpbml0X3RocmVhZF91bmlvbi5zdGFjaykKKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CisKKyNlbmRpZgorCisvKgorICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCisgKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cyBhc3NlbWJseSBmaWxlcworICogICBtYXkgbmVlZCB0byBhY2Nlc3MKKyAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVworICogLSBvdGhlciBmbGFncyBpbiBNU1cKKyAqIFdhcm5pbmc6IGxheW91dCBvZiBMU1cgaXMgaGFyZGNvZGVkIGluIGVudHJ5LlMKKyAqLworI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCisjZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkyCS8qIHNpZ25hbCBwZW5kaW5nICovCisjZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMwkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCisjZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQk0CS8qIHJlZW5hYmxlIHNpbmdsZXN0ZXAgb24gdXNlciByZXR1cm4qLworI2RlZmluZSBUSUZfSVJFVAkJNQkvKiBmb3JjZSBJUkVUICovCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorI2RlZmluZSBUSUZfU1lTQ0FMTF9FTVUJCTYJLyogc3lzY2FsbCBlbXVsYXRpb24gYWN0aXZlICovCisjZW5kaWYKKyNkZWZpbmUgVElGX1NZU0NBTExfQVVESVQJNwkvKiBzeXNjYWxsIGF1ZGl0aW5nIGFjdGl2ZSAqLworI2RlZmluZSBUSUZfU0VDQ09NUAkJOAkvKiBzZWN1cmUgY29tcHV0aW5nICovCisjZGVmaW5lIFRJRl9NQ0VfTk9USUZZCQkxMAkvKiBub3RpZnkgdXNlcnNwYWNlIG9mIGFuIE1DRSAqLworI2RlZmluZSBUSUZfSFJUSUNLX1JFU0NIRUQJMTEJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLworI2RlZmluZSBUSUZfTk9UU0MJCTE2CS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLworI2RlZmluZSBUSUZfSUEzMgkJMTcJLyogMzJiaXQgcHJvY2VzcyAqLworI2RlZmluZSBUSUZfRk9SSwkJMTgJLyogcmV0X2Zyb21fZm9yayAqLworI2RlZmluZSBUSUZfQUJJX1BFTkRJTkcJCTE5CisjZGVmaW5lIFRJRl9NRU1ESUUJCTIwCisjZGVmaW5lIFRJRl9ERUJVRwkJMjEJLyogdXNlcyBkZWJ1ZyByZWdpc3RlcnMgKi8KKyNkZWZpbmUgVElGX0lPX0JJVE1BUAkJMjIJLyogdXNlcyBJL08gYml0bWFwICovCisjZGVmaW5lIFRJRl9GUkVFWkUJCTIzCS8qIGlzIGZyZWV6aW5nIGZvciBzdXNwZW5kICovCisjZGVmaW5lIFRJRl9GT1JDRURfVEYJCTI0CS8qIHRydWUgaWYgVEYgaW4gZWZsYWdzIGFydGlmaWNpYWxseSAqLworI2RlZmluZSBUSUZfREVCVUdDVExNU1IJCTI1CS8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kZWJ1Z2N0bG1zciAqLworI2RlZmluZSBUSUZfRFNfQVJFQV9NU1IJCTI2ICAgICAgLyogdXNlcyB0aHJlYWRfc3RydWN0LmRzX2FyZWFfbXNyICovCisjZGVmaW5lIFRJRl9CVFNfVFJBQ0VfVFMJMjcgICAgICAvKiByZWNvcmQgc2NoZWR1bGluZyBldmVudCB0aW1lc3RhbXBzICovCisKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX1RSQUNFCSgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFKQorI2RlZmluZSBfVElGX1NJR1BFTkRJTkcJCSgxIDw8IFRJRl9TSUdQRU5ESU5HKQorI2RlZmluZSBfVElGX1NJTkdMRVNURVAJCSgxIDw8IFRJRl9TSU5HTEVTVEVQKQorI2RlZmluZSBfVElGX05FRURfUkVTQ0hFRAkoMSA8PCBUSUZfTkVFRF9SRVNDSEVEKQorI2RlZmluZSBfVElGX0lSRVQJCSgxIDw8IFRJRl9JUkVUKQorI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX0VNVQkoMSA8PCBUSUZfU1lTQ0FMTF9FTVUpCisjZWxzZQorI2RlZmluZSBfVElGX1NZU0NBTExfRU1VCTAKKyNlbmRpZgorI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCisjZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCisjZGVmaW5lIF9USUZfTUNFX05PVElGWQkJKDEgPDwgVElGX01DRV9OT1RJRlkpCisjZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQorI2RlZmluZSBfVElGX05PVFNDCQkoMSA8PCBUSUZfTk9UU0MpCisjZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCisjZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCisjZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQorI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCisjZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQorI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKKyNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCisjZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQorI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKKyNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKKworLyogd29yayB0byBkbyBvbiBpbnRlcnJ1cHQvZXhjZXB0aW9uIHJldHVybiAqLworI2RlZmluZSBfVElGX1dPUktfTUFTSwkJCQkJCQlcCisJKDB4MDAwMEZGRkYgJgkJCQkJCQlcCisJIH4oX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NJTkdMRVNURVB8CVwKKwkgX1RJRl9TRUNDT01QfF9USUZfU1lTQ0FMTF9FTVUpKQorCisvKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdXNlciBzcGFjZSAqLworI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSyAoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCisKKy8qIE9ubHkgdXNlZCBmb3IgNjQgYml0ICovCisjZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCisJKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCisKKy8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKKwkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfCBcCisJCQkJCQkJCV9USUZfTk9UU0MpCisKKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXX1BSRVYgX1RJRl9XT1JLX0NUWFNXCisjZGVmaW5lIF9USUZfV09SS19DVFhTV19ORVhUIChfVElGX1dPUktfQ1RYU1d8X1RJRl9ERUJVRykKKworI2RlZmluZSBQUkVFTVBUX0FDVElWRQkJMHgxMDAwMDAwMAorCisvKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLworI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQorI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKKyNlbmRpZgorCisjZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCisJKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKKworI2lmZGVmIENPTkZJR19YODZfMzIKKworI2RlZmluZSBTVEFDS19XQVJOCShUSFJFQURfU0laRS84KQorLyoKKyAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCisgKgorICogcHJlZW1wdF9jb3VudCBuZWVkcyB0byBiZSAxIGluaXRpYWxseSwgdW50aWwgdGhlIHNjaGVkdWxlciBpcyBmdW5jdGlvbmFsLgorICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisKKy8qIGhvdyB0byBnZXQgdGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBmcm9tIEMgKi8KK3JlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyIGFzbSgiZXNwIikgX191c2VkOworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKK3sKKwlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQorCQkoY3VycmVudF9zdGFja19wb2ludGVyICYgfihUSFJFQURfU0laRSAtIDEpKTsKK30KKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCisjZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpCSBcCisJbW92bCAkLVRIUkVBRF9TSVpFLCByZWc7IFwKKwlhbmRsICVlc3AsIHJlZworCisvKiB1c2UgdGhpcyBvbmUgaWYgcmVnIGFscmVhZHkgY29udGFpbnMgJWVzcCAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk9fV0lUSF9FU1AocmVnKSBcCisJYW5kbCAkLVRIUkVBRF9TSVpFLCByZWcKKworI2VuZGlmCisKKyNlbHNlIC8qIFg4Nl8zMiAqLworCisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCisvKgorICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKKyAqIHByZWVtcHRfY291bnQgbmVlZHMgdG8gYmUgMSBpbml0aWFsbHksIHVudGlsIHRoZSBzY2hlZHVsZXIgaXMgZnVuY3Rpb25hbC4KKyAqLworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpjdXJyZW50X3RocmVhZF9pbmZvKHZvaWQpCit7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aTsKKwl0aSA9ICh2b2lkICopKHJlYWRfcGRhKGtlcm5lbHN0YWNrKSArIFBEQV9TVEFDS09GRlNFVCAtIFRIUkVBRF9TSVpFKTsKKwlyZXR1cm4gdGk7Cit9CisKKy8qIGRvIG5vdCB1c2UgaW4gaW50ZXJydXB0IGNvbnRleHQgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpzdGFja190aHJlYWRfaW5mbyh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7CisJYXNtKCJhbmRxICUlcnNwLCUwOyAiIDogIj1yIiAodGkpIDogIjAiICh+KFRIUkVBRF9TSVpFIC0gMSkpKTsKKwlyZXR1cm4gdGk7Cit9CisKKyNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KKworLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKSBcCisJbW92cSAlZ3M6cGRhX2tlcm5lbHN0YWNrLHJlZyA7IFwKKwlzdWJxICQoVEhSRUFEX1NJWkUtUERBX1NUQUNLT0ZGU0VUKSxyZWcKKworI2VuZGlmCisKKyNlbmRpZiAvKiAhWDg2XzMyICovCisKKy8qCisgKiBUaHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLgorICoKKyAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZsYWdzIGluIHRoYXQgbm9ib2R5IGVsc2UKKyAqIGV2ZXIgdG91Y2hlcyBvdXIgdGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cywgc28gd2UgZG9uJ3QKKyAqIGhhdmUgdG8gd29ycnkgYWJvdXQgYXRvbWljIGFjY2Vzc2VzLgorICovCisjZGVmaW5lIFRTX1VTRURGUFUJCTB4MDAwMQkvKiBGUFUgd2FzIHVzZWQgYnkgdGhpcyB0YXNrCisJCQkJCSAgIHRoaXMgcXVhbnR1bSAoU01QKSAqLworI2RlZmluZSBUU19DT01QQVQJCTB4MDAwMgkvKiAzMmJpdCBzeXNjYWxsIGFjdGl2ZSAoNjRCSVQpKi8KKyNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDA0CS8qIHRydWUgaWYgaW4gaWRsZSBsb29wCisJCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KKyNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwOAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCisKKyNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CisJdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7CisJc2V0X2JpdChUSUZfU0lHUEVORElORywgKHVuc2lnbmVkIGxvbmcgKikmdGktPmZsYWdzKTsKK30KKyNlbmRpZgkvKiAhX19BU1NFTUJMWV9fICovCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gdm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb18zMi5oIGIvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MzM4ODIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotLyogdGhyZWFkX2luZm8uaDogaTM4NiBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2VuZGlmCi0KLS8qCi0gKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCi0gKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCi0gKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcwotICogLSBpZiB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgYXJlIGNoYW5nZWQsCi0gKiAgIHRoZSBhc3NlbWJseSBjb25zdGFudHMgbXVzdCBhbHNvIGJlIGNoYW5nZWQKLSAqLwotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotc3RydWN0IHRocmVhZF9pbmZvIHsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCi0Jc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCi0JdW5zaWduZWQgbG9uZwkJc3RhdHVzOwkJLyogdGhyZWFkLXN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludAkJCXByZWVtcHRfY291bnQ7CS8qIDAgPT4gcHJlZW1wdGFibGUsCi0JCQkJCQkgICA8MCA9PiBCVUcgKi8KLQltbV9zZWdtZW50X3QJCWFkZHJfbGltaXQ7CS8qIHRocmVhZCBhZGRyZXNzIHNwYWNlOgotCQkJCQkJICAgMC0weEJGRkZGRkZGIHVzZXItdGhyZWFkCi0JCQkJCQkgICAwLTB4RkZGRkZGRkYga2VybmVsLXRocmVhZAotCQkJCQkJKi8KLQl2b2lkCQkJKnN5c2VudGVyX3JldHVybjsKLQlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOwotCXVuc2lnbmVkIGxvbmcgICAgICAgICAgIHByZXZpb3VzX2VzcDsgICAvKiBFU1Agb2YgdGhlIHByZXZpb3VzIHN0YWNrIGluCi0JCQkJCQkgICBjYXNlIG9mIG5lc3RlZCAoSVJRKSBzdGFja3MKLQkJCQkJCSovCi0JX191OAkJCXN1cGVydmlzb3Jfc3RhY2tbMF07Ci19OwotCi0jZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCi0KLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLQotI2VuZGlmCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUJCTB4MTAwMDAwMDAKLSNpZmRlZiBDT05GSUdfNEtTVEFDS1MKLSNkZWZpbmUgVEhSRUFEX1NJWkUgICAgICAgICAgICAoNDA5NikKLSNlbHNlCi0jZGVmaW5lIFRIUkVBRF9TSVpFCQkoODE5MikKLSNlbmRpZgotCi0jZGVmaW5lIFNUQUNLX1dBUk4gICAgICAgICAgICAgKFRIUkVBRF9TSVpFLzgpCi0vKgotICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKLSAqCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0KLSNkZWZpbmUgSU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAotewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwKLQkuZXhlY19kb21haW4JPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkJPSAwLAkJCVwKLQkuY3B1CQk9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50CT0gMSwJCQlcCi0JLmFkZHJfbGltaXQJPSBLRVJORUxfRFMsCQlcCi0JLnJlc3RhcnRfYmxvY2sgPSB7CQkJXAotCQkuZm4gPSBkb19ub19yZXN0YXJ0X3N5c2NhbGwsCVwKLQl9LAkJCQkJXAotfQotCi0jZGVmaW5lIGluaXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQotI2RlZmluZSBpbml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCi0KLQotLyogaG93IHRvIGdldCB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyIGZyb20gQyAqLwotcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBjdXJyZW50X3N0YWNrX3BvaW50ZXIgYXNtKCJlc3AiKSBfX3VzZWQ7Ci0KLS8qIGhvdyB0byBnZXQgdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopCi0JCShjdXJyZW50X3N0YWNrX3BvaW50ZXIgJiB+KFRIUkVBRF9TSVpFIC0gMSkpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBhbGxvY190aHJlYWRfaW5mbyh0c2spICgoc3RydWN0IHRocmVhZF9pbmZvICopCQkJXAotCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8sIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2Vsc2UKLSNkZWZpbmUgYWxsb2NfdGhyZWFkX2luZm8odHNrKSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQkJCVwKLQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2VuZGlmCi0KLSNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KLQotLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLwotI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKQkgXAotCW1vdmwgJC1USFJFQURfU0laRSwgcmVnOyBcCi0JYW5kbCAlZXNwLCByZWcKLQotLyogdXNlIHRoaXMgb25lIGlmIHJlZyBhbHJlYWR5IGNvbnRhaW5zICVlc3AgKi8KLSNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPX1dJVEhfRVNQKHJlZykgXAotCWFuZGwgJC1USFJFQURfU0laRSwgcmVnCi0KLSNlbmRpZgotCi0vKgotICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCi0gKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cwotICogICBhc3NlbWJseSBmaWxlcyBtYXkgbmVlZCB0byBhY2Nlc3MKLSAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVwotICogLSBvdGhlciBmbGFncyBpbiBNU1cKLSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkxCS8qIHNpZ25hbCBwZW5kaW5nICovCi0jZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMgkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCi0jZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQkzCS8qIHJlc3RvcmUgc2luZ2xlc3RlcCBvbiByZXR1cm4gdG8KLQkJCQkJICAgdXNlciBtb2RlICovCi0jZGVmaW5lIFRJRl9JUkVUCQk0CS8qIHJldHVybiB3aXRoIGlyZXQgKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfRU1VCQk1CS8qIHN5c2NhbGwgZW11bGF0aW9uIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk2CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk3CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX0hSVElDS19SRVNDSEVECTkJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLwotI2RlZmluZSBUSUZfTUVNRElFCQkxNgotI2RlZmluZSBUSUZfREVCVUcJCTE3CS8qIHVzZXMgZGVidWcgcmVnaXN0ZXJzICovCi0jZGVmaW5lIFRJRl9JT19CSVRNQVAJCTE4CS8qIHVzZXMgSS9PIGJpdG1hcCAqLwotI2RlZmluZSBUSUZfRlJFRVpFCQkxOQkvKiBpcyBmcmVlemluZyBmb3Igc3VzcGVuZCAqLwotI2RlZmluZSBUSUZfTk9UU0MJCTIwCS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLwotI2RlZmluZSBUSUZfRk9SQ0VEX1RGCQkyMQkvKiB0cnVlIGlmIFRGIGluIGVmbGFncyBhcnRpZmljaWFsbHkgKi8KLSNkZWZpbmUgVElGX0RFQlVHQ1RMTVNSCQkyMgkvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZGVidWdjdGxtc3IgKi8KLSNkZWZpbmUgVElGX0RTX0FSRUFfTVNSIAkyMyAgICAgIC8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kc19hcmVhX21zciAqLwotI2RlZmluZSBUSUZfQlRTX1RSQUNFX1RTICAgICAgICAyNCAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9FTVUJKDEgPDwgVElGX1NZU0NBTExfRU1VKQotI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCi0jZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCi0jZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotI2RlZmluZSBfVElGX0ZPUkNFRF9URgkJKDEgPDwgVElGX0ZPUkNFRF9URikKLSNkZWZpbmUgX1RJRl9ERUJVR0NUTE1TUgkoMSA8PCBUSUZfREVCVUdDVExNU1IpCi0jZGVmaW5lIF9USUZfRFNfQVJFQV9NU1IJKDEgPDwgVElGX0RTX0FSRUFfTVNSKQotI2RlZmluZSBfVElGX0JUU19UUkFDRV9UUwkoMSA8PCBUSUZfQlRTX1RSQUNFX1RTKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmIH4oX1RJRl9TWVNDQUxMX1RSQUNFIHwgX1RJRl9TWVNDQUxMX0FVRElUIHwJXAotCQkJX1RJRl9TRUNDT01QIHwgX1RJRl9TWVNDQUxMX0VNVSkpCi0vKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdS1zcGFjZSAqLwotI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSwkoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJXAotCShfVElGX0lPX0JJVE1BUCB8IF9USUZfTk9UU0MgfCBfVElGX0RFQlVHQ1RMTVNSIHwJXAotCSBfVElGX0RTX0FSRUFfTVNSIHwgX1RJRl9CVFNfVFJBQ0VfVFMpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXIHwgX1RJRl9ERUJVRykKLQotCi0vKgotICogVGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cy4KLSAqCi0gKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmbGFncyBpbiB0aGF0IG5vYm9keSBlbHNlCi0gKiBldmVyIHRvdWNoZXMgb3VyIHRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMsIHNvIHdlIGRvbid0Ci0gKiBoYXZlIHRvIHdvcnJ5IGFib3V0IGF0b21pYyBhY2Nlc3Nlcy4KLSAqLwotI2RlZmluZSBUU19VU0VERlBVCQkweDAwMDEJLyogRlBVIHdhcyB1c2VkIGJ5IHRoaXMgdGFzawotCQkJCQkgICB0aGlzIHF1YW50dW0gKFNNUCkgKi8KLSNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDAyCS8qIFRydWUgaWYgaW4gaWRsZSBsb29wCi0JCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KLSNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwNAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCi0KLSNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7Ci0JdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7Ci0Jc2V0X2JpdChUSUZfU0lHUEVORElORywgJnRpLT5mbGFncyk7Ci19Ci0jZW5kaWYJLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX19LRVJORUxfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9USFJFQURfSU5GT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm9fNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjY5ZjcwLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qIHRocmVhZF9pbmZvLmg6IHg4Nl82NCBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLQotLyoKLSAqIGxvdyBsZXZlbCB0YXNrIGRhdGEgdGhhdCBlbnRyeS5TIG5lZWRzIGltbWVkaWF0ZSBhY2Nlc3MgdG8KLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hvdWxkIGZpdCBlbnRpcmVseSBpbnNpZGUgb2Ygb25lIGNhY2hlIGxpbmUKLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hhcmVzIHRoZSBzdXBlcnZpc29yIHN0YWNrIHBhZ2VzCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi1zdHJ1Y3QgdGFza19zdHJ1Y3Q7Ci1zdHJ1Y3QgZXhlY19kb21haW47Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotCi1zdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFzazsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KLQlzdHJ1Y3QgZXhlY19kb21haW4JKmV4ZWNfZG9tYWluOwkvKiBleGVjdXRpb24gZG9tYWluICovCi0JX191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwotCV9fdTMyCQkJc3RhdHVzOwkJLyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludCAJCQlwcmVlbXB0X2NvdW50OwkvKiAwID0+IHByZWVtcHRhYmxlLAotCQkJCQkJICAgPDAgPT4gQlVHICovCi0JbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwotCXN0cnVjdCByZXN0YXJ0X2Jsb2NrICAgIHJlc3RhcnRfYmxvY2s7Ci0jaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OCi0Jdm9pZCBfX3VzZXIJCSpzeXNlbnRlcl9yZXR1cm47Ci0jZW5kaWYKLX07Ci0jZW5kaWYKLQotLyoKLSAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIElOSVRfVEhSRUFEX0lORk8odHNrKQkJCVwKLXsJCQkJCQlcCi0JLnRhc2sJICAgICAgID0gJnRzaywJCQlcCi0JLmV4ZWNfZG9tYWluICAgPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkgICAgICAgPSAwLAkJCVwKLQkuY3B1CSAgICAgICA9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50ID0gMSwJCQlcCi0JLmFkZHJfbGltaXQgICAgID0gS0VSTkVMX0RTLAkJXAotCS5yZXN0YXJ0X2Jsb2NrID0gewkJCVwKLQkJLmZuID0gZG9fbm9fcmVzdGFydF9zeXNjYWxsLAlcCi0JfSwJCQkJCVwKLX0KLQotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlvbi50aHJlYWRfaW5mbykKLSNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0YWNrKQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7Ci0JdGkgPSAodm9pZCAqKShyZWFkX3BkYShrZXJuZWxzdGFjaykgKyBQREFfU1RBQ0tPRkZTRVQgLSBUSFJFQURfU0laRSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiBkbyBub3QgdXNlIGluIGludGVycnVwdCBjb250ZXh0ICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqc3RhY2tfdGhyZWFkX2luZm8odm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwotCWFzbSgiYW5kcSAlJXJzcCwlMDsgIiA6ICI9ciIgKHRpKSA6ICIwIiAofihUSFJFQURfU0laRSAtIDEpKSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQotI2Vsc2UKLSNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKLSNlbmRpZgotCi0jZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCi0JKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKLQotI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0vKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCi0jZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpIFwKLQltb3ZxICVnczpwZGFfa2VybmVsc3RhY2sscmVnIDsgXAotCXN1YnEgJChUSFJFQURfU0laRS1QREFfU1RBQ0tPRkZTRVQpLHJlZwotCi0jZW5kaWYKLQotLyoKLSAqIHRocmVhZCBpbmZvcm1hdGlvbiBmbGFncwotICogLSB0aGVzZSBhcmUgcHJvY2VzcyBzdGF0ZSBmbGFncyB0aGF0IHZhcmlvdXMgYXNzZW1ibHkgZmlsZXMKLSAqICAgbWF5IG5lZWQgdG8gYWNjZXNzCi0gKiAtIHBlbmRpbmcgd29yay10by1iZS1kb25lIGZsYWdzIGFyZSBpbiBMU1cKLSAqIC0gb3RoZXIgZmxhZ3MgaW4gTVNXCi0gKiBXYXJuaW5nOiBsYXlvdXQgb2YgTFNXIGlzIGhhcmRjb2RlZCBpbiBlbnRyeS5TCi0gKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfVFJBQ0UJMAkvKiBzeXNjYWxsIHRyYWNlIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU0lHUEVORElORwkJMgkvKiBzaWduYWwgcGVuZGluZyAqLwotI2RlZmluZSBUSUZfTkVFRF9SRVNDSEVECTMJLyogcmVzY2hlZHVsaW5nIG5lY2Vzc2FyeSAqLwotI2RlZmluZSBUSUZfU0lOR0xFU1RFUAkJNAkvKiByZWVuYWJsZSBzaW5nbGVzdGVwIG9uIHVzZXIgcmV0dXJuKi8KLSNkZWZpbmUgVElGX0lSRVQJCTUJLyogZm9yY2UgSVJFVCAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk3CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk4CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX01DRV9OT1RJRlkJCTEwCS8qIG5vdGlmeSB1c2Vyc3BhY2Ugb2YgYW4gTUNFICovCi0jZGVmaW5lIFRJRl9IUlRJQ0tfUkVTQ0hFRAkxMQkvKiByZXByb2dyYW0gaHJ0aWNrIHRpbWVyICovCi0vKiAxNiBmcmVlICovCi0jZGVmaW5lIFRJRl9JQTMyCQkxNwkvKiAzMmJpdCBwcm9jZXNzICovCi0jZGVmaW5lIFRJRl9GT1JLCQkxOAkvKiByZXRfZnJvbV9mb3JrICovCi0jZGVmaW5lIFRJRl9BQklfUEVORElORwkJMTkKLSNkZWZpbmUgVElGX01FTURJRQkJMjAKLSNkZWZpbmUgVElGX0RFQlVHCQkyMQkvKiB1c2VzIGRlYnVnIHJlZ2lzdGVycyAqLwotI2RlZmluZSBUSUZfSU9fQklUTUFQCQkyMgkvKiB1c2VzIEkvTyBiaXRtYXAgKi8KLSNkZWZpbmUgVElGX0ZSRUVaRQkJMjMJLyogaXMgZnJlZXppbmcgZm9yIHN1c3BlbmQgKi8KLSNkZWZpbmUgVElGX0ZPUkNFRF9URgkJMjQJLyogdHJ1ZSBpZiBURiBpbiBlZmxhZ3MgYXJ0aWZpY2lhbGx5ICovCi0jZGVmaW5lIFRJRl9ERUJVR0NUTE1TUgkJMjUJLyogdXNlcyB0aHJlYWRfc3RydWN0LmRlYnVnY3RsbXNyICovCi0jZGVmaW5lIFRJRl9EU19BUkVBX01TUgkJMjYgICAgICAvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZHNfYXJlYV9tc3IgKi8KLSNkZWZpbmUgVElGX0JUU19UUkFDRV9UUwkyNyAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLSNkZWZpbmUgVElGX05PVFNDCQkyOAkvKiBUU0MgaXMgbm90IGFjY2Vzc2libGUgaW4gdXNlcmxhbmQgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9BVURJVAkoMSA8PCBUSUZfU1lTQ0FMTF9BVURJVCkKLSNkZWZpbmUgX1RJRl9TRUNDT01QCQkoMSA8PCBUSUZfU0VDQ09NUCkKLSNkZWZpbmUgX1RJRl9NQ0VfTk9USUZZCQkoMSA8PCBUSUZfTUNFX05PVElGWSkKLSNkZWZpbmUgX1RJRl9IUlRJQ0tfUkVTQ0hFRAkoMSA8PCBUSUZfSFJUSUNLX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCi0jZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCi0jZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCi0jZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQotI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKLSNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmCQkJCQkJCVwKLQkgfihfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0lOR0xFU1RFUHxfVElGX1NFQ0NPTVApKQotLyogd29yayB0byBkbyBvbiBhbnkgcmV0dXJuIHRvIHVzZXIgc3BhY2UgKi8KLSNkZWZpbmUgX1RJRl9BTExXT1JLX01BU0sgKDB4MDAwMEZGRkYgJiB+X1RJRl9TRUNDT01QKQotCi0jZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCi0JKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKLQkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfF9USUZfTk9UU0MpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXfF9USUZfREVCVUcpCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUgICAgIDB4MTAwMDAwMDAKLQotLyoKLSAqIFRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMuCi0gKgotICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZmxhZ3MgaW4gdGhhdCBub2JvZHkgZWxzZQotICogZXZlciB0b3VjaGVzIG91ciB0aHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLCBzbyB3ZSBkb24ndAotICogaGF2ZSB0byB3b3JyeSBhYm91dCBhdG9taWMgYWNjZXNzZXMuCi0gKi8KLSNkZWZpbmUgVFNfVVNFREZQVQkJMHgwMDAxCS8qIEZQVSB3YXMgdXNlZCBieSB0aGlzIHRhc2sKLQkJCQkJICAgdGhpcyBxdWFudHVtIChTTVApICovCi0jZGVmaW5lIFRTX0NPTVBBVAkJMHgwMDAyCS8qIDMyYml0IHN5c2NhbGwgYWN0aXZlICovCi0jZGVmaW5lIFRTX1BPTExJTkcJCTB4MDAwNAkvKiB0cnVlIGlmIGluIGlkbGUgbG9vcAotCQkJCQkgICBhbmQgbm90IHNsZWVwaW5nICovCi0jZGVmaW5lIFRTX1JFU1RPUkVfU0lHTUFTSwkweDAwMDgJLyogcmVzdG9yZSBzaWduYWwgbWFzayBpbiBkb19zaWduYWwoKSAqLwotCi0jZGVmaW5lIHRza19pc19wb2xsaW5nKHQpICh0YXNrX3RocmVhZF9pbmZvKHQpLT5zdGF0dXMgJiBUU19QT0xMSU5HKQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI2RlZmluZSBIQVZFX1NFVF9SRVNUT1JFX1NJR01BU0sJMQotc3RhdGljIGlubGluZSB2b2lkIHNldF9yZXN0b3JlX3NpZ21hc2sodm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwotCXRpLT5zdGF0dXMgfD0gVFNfUkVTVE9SRV9TSUdNQVNLOwotCXNldF9iaXQoVElGX1NJR1BFTkRJTkcsICZ0aS0+ZmxhZ3MpOwotfQotI2VuZGlmCS8qICFfX0FTU0VNQkxZX18gKi8KLQotI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KLQotI2VuZGlmIC8qIF9BU01fVEhSRUFEX0lORk9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKaW5kZXggYmNlNzJkNy4uYTE3ZmE0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZS5oCkBAIC01Niw0ICs1Niw2IEBACiAKICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KIAorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19pbml0IGNhbGlicmF0ZV9jcHUodm9pZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWVyLmggYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAppbmRleCA0ZjZmY2IwLi5mYjJhNGRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaApAQCAtNywxNCArNywxNCBAQAogI2RlZmluZSBUSUNLX1NJWkUgKHRpY2tfbnNlYyAvIDEwMDApCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2sodm9pZCk7Ci11bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxjdWxhdGVfY3B1X2toeih2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbmF0aXZlX2NhbGlicmF0ZV90c2Modm9pZCk7CiAKIGV4dGVybiBpbnQgdGltZXJfYWNrOwogZXh0ZXJuIGludCBub190aW1lcl9jaGVjazsKIGV4dGVybiBpbnQgcmVjYWxpYnJhdGVfY3B1X2toeih2b2lkKTsKIAogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKLSNkZWZpbmUgY2FsY3VsYXRlX2NwdV9raHooKSBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHooKQorI2RlZmluZSBjYWxpYnJhdGVfdHNjKCkgbmF0aXZlX2NhbGlicmF0ZV90c2MoKQogI2VuZGlmCiAKIC8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RvcG9sb2d5LmggYi9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaAppbmRleCBkY2YzZjgxLi45MGFjNzcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaApAQCAtMzUsNzkgKzM1LDkzIEBACiAjIGVuZGlmCiAjZW5kaWYKIAorLyogTm9kZSBub3QgcHJlc2VudCAqLworI2RlZmluZSBOVU1BX05PX05PREUJKC0xKQorCiAjaWZkZWYgQ09ORklHX05VTUEKICNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CiAjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogCi0vKiBNYXBwaW5ncyBiZXR3ZWVuIGxvZ2ljYWwgY3B1IG51bWJlciBhbmQgbm9kZSBudW1iZXIgKi8KICNpZmRlZiBDT05GSUdfWDg2XzMyCi1leHRlcm4gaW50IGNwdV90b19ub2RlX21hcFtdOwotI2Vsc2UKLS8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBOb2RlLiAqLwotI2RlZmluZSBudW1hX25vZGVfaWQoKQkJKGVhcmx5X2NwdV90b19ub2RlKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpKQotI2VuZGlmCiAKLURFQ0xBUkVfUEVSX0NQVShpbnQsIHg4Nl9jcHVfdG9fbm9kZV9tYXApOwotCi0jaWZkZWYgQ09ORklHX1NNUAotZXh0ZXJuIGludCB4ODZfY3B1X3RvX25vZGVfbWFwX2luaXRbXTsKLWV4dGVybiB2b2lkICp4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cjsKLSNlbHNlCi0jZGVmaW5lIHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyIE5VTEwKLSNlbmRpZgotCisvKiBNYXBwaW5ncyBiZXR3ZWVuIG5vZGUgbnVtYmVyIGFuZCBjcHVzIG9uIHRoYXQgbm9kZS4gKi8KIGV4dGVybiBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrX21hcFtdOwogCi0jZGVmaW5lIE5VTUFfTk9fTk9ERQkoLTEpCisvKiBNYXBwaW5ncyBiZXR3ZWVuIGxvZ2ljYWwgY3B1IG51bWJlciBhbmQgbm9kZSBudW1iZXIgKi8KK2V4dGVybiBpbnQgY3B1X3RvX25vZGVfbWFwW107CiAKIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbm9kZSBjb250YWluaW5nIENQVSAnY3B1JyAqLwotI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgZWFybHlfY3B1X3RvX25vZGUoY3B1KQljcHVfdG9fbm9kZShjcHUpCiBzdGF0aWMgaW5saW5lIGludCBjcHVfdG9fbm9kZShpbnQgY3B1KQogewogCXJldHVybiBjcHVfdG9fbm9kZV9tYXBbY3B1XTsKIH0KKyNkZWZpbmUgZWFybHlfY3B1X3RvX25vZGUoY3B1KQljcHVfdG9fbm9kZShjcHUpCisKKy8qIFJldHVybnMgYSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuCisgKgorICogU2lkZSBub3RlOiB0aGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIHJldHVybmVkIGNwdW1hc2sgb24gdGhlIHN0YWNrCisgKiBzbyB3aXRoIGEgaGlnaCBOUl9DUFVTIGNvdW50LCBleGNlc3NpdmUgc3RhY2sgc3BhY2UgaXMgdXNlZC4gIFRoZQorICogbm9kZV90b19jcHVtYXNrX3B0ciBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZS4KKyAqLworc3RhdGljIGlubGluZSBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQoreworCXJldHVybiBub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworfQogCiAjZWxzZSAvKiBDT05GSUdfWDg2XzY0ICovCiAKLSNpZmRlZiBDT05GSUdfU01QCi1zdGF0aWMgaW5saW5lIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQotewotCWludCAqY3B1X3RvX25vZGVfbWFwID0geDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7CisvKiBNYXBwaW5ncyBiZXR3ZWVuIG5vZGUgbnVtYmVyIGFuZCBjcHVzIG9uIHRoYXQgbm9kZS4gKi8KK2V4dGVybiBjcHVtYXNrX3QgKm5vZGVfdG9fY3B1bWFza19tYXA7CiAKLQlpZiAoY3B1X3RvX25vZGVfbWFwKQotCQlyZXR1cm4gY3B1X3RvX25vZGVfbWFwW2NwdV07Ci0JZWxzZSBpZiAocGVyX2NwdV9vZmZzZXQoY3B1KSkKLQkJcmV0dXJuIHBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKLQllbHNlCi0JCXJldHVybiBOVU1BX05PX05PREU7Ci19Ci0jZWxzZQotI2RlZmluZQllYXJseV9jcHVfdG9fbm9kZShjcHUpCWNwdV90b19ub2RlKGNwdSkKLSNlbmRpZgorLyogTWFwcGluZ3MgYmV0d2VlbiBsb2dpY2FsIGNwdSBudW1iZXIgYW5kIG5vZGUgbnVtYmVyICovCitERUNMQVJFX0VBUkxZX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKTsKIAorLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBjdXJyZW50IE5vZGUuICovCisjZGVmaW5lIG51bWFfbm9kZV9pZCgpCQlyZWFkX3BkYShub2RlbnVtYmVyKQorCisjaWZkZWYgQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUworZXh0ZXJuIGludCBjcHVfdG9fbm9kZShpbnQgY3B1KTsKK2V4dGVybiBpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSk7CitleHRlcm4gY29uc3QgY3B1bWFza190ICpfbm9kZV90b19jcHVtYXNrX3B0cihpbnQgbm9kZSk7CitleHRlcm4gY3B1bWFza190IG5vZGVfdG9fY3B1bWFzayhpbnQgbm9kZSk7CisKKyNlbHNlCS8qICFDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKy8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbm9kZSBjb250YWluaW5nIENQVSAnY3B1JyAqLwogc3RhdGljIGlubGluZSBpbnQgY3B1X3RvX25vZGUoaW50IGNwdSkKIHsKLSNpZmRlZiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTCi0JaWYgKHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKSB7Ci0JCXByaW50aygiS0VSTl9OT1RJQ0UgY3B1X3RvX25vZGUoJWQpOiB1c2FnZSB0b28gZWFybHkhXG4iLAotCQkgICAgICAgKGludCljcHUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXJldHVybiAoKGludCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKVtjcHVdOwotCX0KLSNlbmRpZgogCXJldHVybiBwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSk7CiB9CiAKLSNpZmRlZglDT05GSUdfTlVNQQorLyogU2FtZSBmdW5jdGlvbiBidXQgdXNlZCBpZiBjYWxsZWQgYmVmb3JlIHBlcl9jcHUgYXJlYXMgYXJlIHNldHVwICovCitzdGF0aWMgaW5saW5lIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQoreworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSkKKwkJcmV0dXJuIGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApW2NwdV07CisKKwlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworfQogCiAvKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY3B1bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLiAqLworc3RhdGljIGlubGluZSBjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCXJldHVybiAmbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KKworLyogUmV0dXJucyBhIGJpdG1hc2sgb2YgQ1BVcyBvbiBOb2RlICdub2RlJy4gKi8KK3N0YXRpYyBpbmxpbmUgY3B1bWFza190IG5vZGVfdG9fY3B1bWFzayhpbnQgbm9kZSkKK3sKKwlyZXR1cm4gbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KKworI2VuZGlmIC8qICFDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKy8qIFJlcGxhY2UgZGVmYXVsdCBub2RlX3RvX2NwdW1hc2tfcHRyIHdpdGggb3B0aW1pemVkIHZlcnNpb24gKi8KICNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cih2LCBub2RlKQkJXAotCQljcHVtYXNrX3QgKnYgPSAmKG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV0pCisJCWNvbnN0IGNwdW1hc2tfdCAqdiA9IF9ub2RlX3RvX2NwdW1hc2tfcHRyKG5vZGUpCiAKICNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cl9uZXh0KHYsIG5vZGUpCVwKLQkJCSAgIHYgPSAmKG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV0pCi0jZW5kaWYKKwkJCSAgIHYgPSBfbm9kZV90b19jcHVtYXNrX3B0cihub2RlKQogCiAjZW5kaWYgLyogQ09ORklHX1g4Nl82NCAqLwogCkBAIC0xMTcsMjAgKzEzMSw2IEBACiAgKi8KICNkZWZpbmUgcGFyZW50X25vZGUobm9kZSkgKG5vZGUpCiAKLS8qIFJldHVybnMgYSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuICovCi1zdGF0aWMgaW5saW5lIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCi17Ci0JcmV0dXJuIG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV07Ci19Ci0KLS8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgZmlyc3QgQ1BVIG9uIE5vZGUgJ25vZGUnLiAqLwotc3RhdGljIGlubGluZSBpbnQgbm9kZV90b19maXJzdF9jcHUoaW50IG5vZGUpCi17Ci0JY3B1bWFza190IG1hc2sgPSBub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0KLQlyZXR1cm4gZmlyc3RfY3B1KG1hc2spOwotfQotCiAjZGVmaW5lIHBjaWJ1c190b19ub2RlKGJ1cykgX19wY2lidXNfdG9fbm9kZShidXMpCiAjZGVmaW5lIHBjaWJ1c190b19jcHVtYXNrKGJ1cykgX19wY2lidXNfdG9fY3B1bWFzayhidXMpCiAKQEAgLTE4MCwxMiArMTgwLDQ0IEBACiAjZGVmaW5lIG5vZGVfZGlzdGFuY2UoYSwgYikgX19ub2RlX2Rpc3RhbmNlKGEsIGIpCiAjZW5kaWYKIAotI2Vsc2UgLyogQ09ORklHX05VTUEgKi8KKyNlbHNlIC8qICFDT05GSUdfTlVNQSAqLwogCisjZGVmaW5lIG51bWFfbm9kZV9pZCgpCQkwCisjZGVmaW5lCWNwdV90b19ub2RlKGNwdSkJMAorI2RlZmluZQllYXJseV9jcHVfdG9fbm9kZShjcHUpCTAKKworc3RhdGljIGlubGluZSBjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCXJldHVybiAmY3B1X29ubGluZV9tYXA7Cit9CitzdGF0aWMgaW5saW5lIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCit7CisJcmV0dXJuIGNwdV9vbmxpbmVfbWFwOworfQorc3RhdGljIGlubGluZSBpbnQgbm9kZV90b19maXJzdF9jcHUoaW50IG5vZGUpCit7CisJcmV0dXJuIGZpcnN0X2NwdShjcHVfb25saW5lX21hcCk7Cit9CisKKy8qIFJlcGxhY2UgZGVmYXVsdCBub2RlX3RvX2NwdW1hc2tfcHRyIHdpdGggb3B0aW1pemVkIHZlcnNpb24gKi8KKyNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cih2LCBub2RlKQkJXAorCQljb25zdCBjcHVtYXNrX3QgKnYgPSBfbm9kZV90b19jcHVtYXNrX3B0cihub2RlKQorCisjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHJfbmV4dCh2LCBub2RlKQlcCisJCQkgICB2ID0gX25vZGVfdG9fY3B1bWFza19wdHIobm9kZSkKICNlbmRpZgogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvdG9wb2xvZ3kuaD4KIAorI2lmZGVmIENPTkZJR19OVU1BCisvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGZpcnN0IENQVSBvbiBOb2RlICdub2RlJy4gKi8KK3N0YXRpYyBpbmxpbmUgaW50IG5vZGVfdG9fZmlyc3RfY3B1KGludCBub2RlKQoreworCW5vZGVfdG9fY3B1bWFza19wdHIobWFzaywgbm9kZSk7CisJcmV0dXJuIGZpcnN0X2NwdSgqbWFzayk7Cit9CisjZW5kaWYKKwogZXh0ZXJuIGNwdW1hc2tfdCBjcHVfY29yZWdyb3VwX21hcChpbnQgY3B1KTsKIAogI2lmZGVmIEVOQUJMRV9UT1BPX0RFRklORVMKQEAgLTE5Myw2ICsyMjUsOSBAQAogI2RlZmluZSB0b3BvbG9neV9jb3JlX2lkKGNwdSkJCQkoY3B1X2RhdGEoY3B1KS5jcHVfY29yZV9pZCkKICNkZWZpbmUgdG9wb2xvZ3lfY29yZV9zaWJsaW5ncyhjcHUpCQkocGVyX2NwdShjcHVfY29yZV9tYXAsIGNwdSkpCiAjZGVmaW5lIHRvcG9sb2d5X3RocmVhZF9zaWJsaW5ncyhjcHUpCQkocGVyX2NwdShjcHVfc2libGluZ19tYXAsIGNwdSkpCisKKy8qIGluZGljYXRlcyB0aGF0IHBvaW50ZXJzIHRvIHRoZSB0b3BvbG9neSBjcHVtYXNrX3QgbWFwcyBhcmUgdmFsaWQgKi8KKyNkZWZpbmUgYXJjaF9wcm92aWRlc190b3BvbG9neV9wb2ludGVycwkJeWVzCiAjZW5kaWYKIAogc3RhdGljIGlubGluZSB2b2lkIGFyY2hfZml4X3BoeXNfcGFja2FnZV9pZChpbnQgbnVtLCB1MzIgc2xvdCkKQEAgLTIyMCw0ICsyNTUsNCBAQAogfQogI2VuZGlmCiAKLSNlbmRpZgorI2VuZGlmIC8qIF9BU01fWDg2X1RPUE9MT0dZX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90c2MuaCBiL2luY2x1ZGUvYXNtLXg4Ni90c2MuaAppbmRleCA1NDg4NzNhLi5jYjZmNmVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdHNjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3RzYy5oCkBAIC00OCw3ICs0OCw2IEBACiBleHRlcm4gdm9pZCB0c2NfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbik7CiBleHRlcm4gaW50IHVuc3luY2hyb25pemVkX3RzYyh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRfdHNjX2Nsb2Nrc291cmNlKHZvaWQpOwogaW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKTsKIAogLyoKQEAgLTU4LDcgKzU3LDYgQEAKIGV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3NvdXJjZShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3RhcmdldCh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgdHNjX2NhbGlicmF0ZSh2b2lkKTsKIGV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzcy5oIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3MuaAppbmRleCA5ZmVmZDI5Li5mNmZhNGQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmgKQEAgLTEsNSArMSw0NTMgQEAKKyNpZm5kZWYgX0FTTV9VQUNDRVNfSF8KKyNkZWZpbmUgX0FTTV9VQUNDRVNfSF8KKy8qCisgKiBVc2VyIHNwYWNlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zCisgKi8KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGFzbS9hc20uaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorCisjZGVmaW5lIFZFUklGWV9SRUFEIDAKKyNkZWZpbmUgVkVSSUZZX1dSSVRFIDEKKworLyoKKyAqIFRoZSBmcyB2YWx1ZSBkZXRlcm1pbmVzIHdoZXRoZXIgYXJndW1lbnQgdmFsaWRpdHkgY2hlY2tpbmcgc2hvdWxkIGJlCisgKiBwZXJmb3JtZWQgb3Igbm90LiAgSWYgZ2V0X2ZzKCkgPT0gVVNFUl9EUywgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLCB3aXRoCisgKiBnZXRfZnMoKSA9PSBLRVJORUxfRFMsIGNoZWNraW5nIGlzIGJ5cGFzc2VkLgorICoKKyAqIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHRoZXNlIG1hY3JvcyBhcmUgZ3Jvc3NseSBtaXNuYW1lZC4KKyAqLworCisjZGVmaW5lIE1BS0VfTU1fU0VHKHMpCSgobW1fc2VnbWVudF90KSB7IChzKSB9KQorCisjZGVmaW5lIEtFUk5FTF9EUwlNQUtFX01NX1NFRygtMVVMKQorI2RlZmluZSBVU0VSX0RTCQlNQUtFX01NX1NFRyhQQUdFX09GRlNFVCkKKworI2RlZmluZSBnZXRfZHMoKQkoS0VSTkVMX0RTKQorI2RlZmluZSBnZXRfZnMoKQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0KQorI2RlZmluZSBzZXRfZnMoeCkJKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdCA9ICh4KSkKKworI2RlZmluZSBzZWdtZW50X2VxKGEsIGIpCSgoYSkuc2VnID09IChiKS5zZWcpCisKKyNkZWZpbmUgX19hZGRyX29rKGFkZHIpCQkJCQlcCisJKCh1bnNpZ25lZCBsb25nIF9fZm9yY2UpKGFkZHIpIDwJCVwKKwkgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKQorCisvKgorICogVGVzdCB3aGV0aGVyIGEgYmxvY2sgb2YgbWVtb3J5IGlzIGEgdmFsaWQgdXNlciBzcGFjZSBhZGRyZXNzLgorICogUmV0dXJucyAwIGlmIHRoZSByYW5nZSBpcyB2YWxpZCwgbm9uemVybyBvdGhlcndpc2UuCisgKgorICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgdGVzdDoKKyAqICh1MzMpYWRkciArICh1MzMpc2l6ZSA+PSAodTMzKWN1cnJlbnQtPmFkZHJfbGltaXQuc2VnICh1NjUgZm9yIHg4Nl82NCkKKyAqCisgKiBUaGlzIG5lZWRzIDMzLWJpdCAoNjUtYml0IGZvciB4ODZfNjQpIGFyaXRobWV0aWMuIFdlIGhhdmUgYSBjYXJyeS4uLgorICovCisKKyNkZWZpbmUgX19yYW5nZV9ub3Rfb2soYWRkciwgc2l6ZSkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAorCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKKwlhc20oImFkZCAlMywlMSA7IHNiYiAlMCwlMCA7IGNtcCAlMSwlNCA7IHNiYiAkMCwlMCIJCVwKKwkgICAgOiAiPSZyIiAoZmxhZyksICI9ciIgKHJva3N1bSkJCQkJXAorCSAgICA6ICIxIiAoYWRkciksICJnIiAoKGxvbmcpKHNpemUpKSwJCQkJXAorCSAgICAgICJybSIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKKwlmbGFnOwkJCQkJCQkJXAorfSkKKworLyoqCisgKiBhY2Nlc3Nfb2s6IC0gQ2hlY2tzIGlmIGEgdXNlciBzcGFjZSBwb2ludGVyIGlzIHZhbGlkCisgKiBAdHlwZTogVHlwZSBvZiBhY2Nlc3M6ICVWRVJJRllfUkVBRCBvciAlVkVSSUZZX1dSSVRFLiAgTm90ZSB0aGF0CisgKiAgICAgICAgJVZFUklGWV9XUklURSBpcyBhIHN1cGVyc2V0IG9mICVWRVJJRllfUkVBRCAtIGlmIGl0IGlzIHNhZmUKKyAqICAgICAgICB0byB3cml0ZSB0byBhIGJsb2NrLCBpdCBpcyBhbHdheXMgc2FmZSB0byByZWFkIGZyb20gaXQuCisgKiBAYWRkcjogVXNlciBzcGFjZSBwb2ludGVyIHRvIHN0YXJ0IG9mIGJsb2NrIHRvIGNoZWNrCisgKiBAc2l6ZTogU2l6ZSBvZiBibG9jayB0byBjaGVjaworICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogQ2hlY2tzIGlmIGEgcG9pbnRlciB0byBhIGJsb2NrIG9mIG1lbW9yeSBpbiB1c2VyIHNwYWNlIGlzIHZhbGlkLgorICoKKyAqIFJldHVybnMgdHJ1ZSAobm9uemVybykgaWYgdGhlIG1lbW9yeSBibG9jayBtYXkgYmUgdmFsaWQsIGZhbHNlICh6ZXJvKQorICogaWYgaXQgaXMgZGVmaW5pdGVseSBpbnZhbGlkLgorICoKKyAqIE5vdGUgdGhhdCwgZGVwZW5kaW5nIG9uIGFyY2hpdGVjdHVyZSwgdGhpcyBmdW5jdGlvbiBwcm9iYWJseSBqdXN0CisgKiBjaGVja3MgdGhhdCB0aGUgcG9pbnRlciBpcyBpbiB0aGUgdXNlciBzcGFjZSByYW5nZSAtIGFmdGVyIGNhbGxpbmcKKyAqIHRoaXMgZnVuY3Rpb24sIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIG1heSBzdGlsbCByZXR1cm4gLUVGQVVMVC4KKyAqLworI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKGxpa2VseShfX3JhbmdlX25vdF9vayhhZGRyLCBzaXplKSA9PSAwKSkKKworLyoKKyAqIFRoZSBleGNlcHRpb24gdGFibGUgY29uc2lzdHMgb2YgcGFpcnMgb2YgYWRkcmVzc2VzOiB0aGUgZmlyc3QgaXMgdGhlCisgKiBhZGRyZXNzIG9mIGFuIGluc3RydWN0aW9uIHRoYXQgaXMgYWxsb3dlZCB0byBmYXVsdCwgYW5kIHRoZSBzZWNvbmQgaXMKKyAqIHRoZSBhZGRyZXNzIGF0IHdoaWNoIHRoZSBwcm9ncmFtIHNob3VsZCBjb250aW51ZS4gIE5vIHJlZ2lzdGVycyBhcmUKKyAqIG1vZGlmaWVkLCBzbyBpdCBpcyBlbnRpcmVseSB1cCB0byB0aGUgY29udGludWF0aW9uIGNvZGUgdG8gZmlndXJlIG91dAorICogd2hhdCB0byBkby4KKyAqCisgKiBBbGwgdGhlIHJvdXRpbmVzIGJlbG93IHVzZSBiaXRzIG9mIGZpeHVwIGNvZGUgdGhhdCBhcmUgb3V0IG9mIGxpbmUKKyAqIHdpdGggdGhlIG1haW4gaW5zdHJ1Y3Rpb24gcGF0aC4gIFRoaXMgbWVhbnMgd2hlbiBldmVyeXRoaW5nIGlzIHdlbGwsCisgKiB3ZSBkb24ndCBldmVuIGhhdmUgdG8ganVtcCBvdmVyIHRoZW0uICBGdXJ0aGVyLCB0aGV5IGRvIG5vdCBpbnRydWRlCisgKiBvbiBvdXIgY2FjaGUgb3IgdGxiIGVudHJpZXMuCisgKi8KKworc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSB7CisJdW5zaWduZWQgbG9uZyBpbnNuLCBmaXh1cDsKK307CisKK2V4dGVybiBpbnQgZml4dXBfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKworLyoKKyAqIFRoZXNlIGFyZSB0aGUgbWFpbiBzaW5nbGUtdmFsdWUgdHJhbnNmZXIgcm91dGluZXMuICBUaGV5IGF1dG9tYXRpY2FsbHkKKyAqIHVzZSB0aGUgcmlnaHQgc2l6ZSBpZiB3ZSBqdXN0IGhhdmUgdGhlIHJpZ2h0IHBvaW50ZXIgdHlwZS4KKyAqCisgKiBUaGlzIGdldHMga2luZCBvZiB1Z2x5LiBXZSB3YW50IHRvIHJldHVybiBfdHdvXyB2YWx1ZXMgaW4gImdldF91c2VyKCkiCisgKiBhbmQgeWV0IHdlIGRvbid0IHdhbnQgdG8gZG8gYW55IHBvaW50ZXJzLCBiZWNhdXNlIHRoYXQgaXMgdG9vIG11Y2gKKyAqIG9mIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBUaHVzIHdlIGhhdmUgYSBmZXcgcmF0aGVyIHVnbHkgbWFjcm9zIGhlcmUsCisgKiBhbmQgaGlkZSBhbGwgdGhlIHVnbGluZXNzIGZyb20gdGhlIHVzZXIuCisgKgorICogVGhlICJfX3h4eCIgdmVyc2lvbnMgb2YgdGhlIHVzZXIgYWNjZXNzIGZ1bmN0aW9ucyBhcmUgdmVyc2lvbnMgdGhhdAorICogZG8gbm90IHZlcmlmeSB0aGUgYWRkcmVzcyBzcGFjZSwgdGhhdCBtdXN0IGhhdmUgYmVlbiBkb25lIHByZXZpb3VzbHkKKyAqIHdpdGggYSBzZXBhcmF0ZSAiYWNjZXNzX29rKCkiIGNhbGwgKHRoaXMgaXMgdXNlZCB3aGVuIHdlIGRvIG11bHRpcGxlCisgKiBhY2Nlc3NlcyB0byB0aGUgc2FtZSBhcmVhIG9mIHVzZXIgbWVtb3J5KS4KKyAqLworCitleHRlcm4gaW50IF9fZ2V0X3VzZXJfMSh2b2lkKTsKK2V4dGVybiBpbnQgX19nZXRfdXNlcl8yKHZvaWQpOworZXh0ZXJuIGludCBfX2dldF91c2VyXzQodm9pZCk7CitleHRlcm4gaW50IF9fZ2V0X3VzZXJfOCh2b2lkKTsKK2V4dGVybiBpbnQgX19nZXRfdXNlcl9iYWQodm9pZCk7CisKKyNkZWZpbmUgX19nZXRfdXNlcl94KHNpemUsIHJldCwgeCwgcHRyKQkJICAgICAgXAorCWFzbSB2b2xhdGlsZSgiY2FsbCBfX2dldF91c2VyXyIgI3NpemUJICAgICAgXAorCQkgICAgIDogIj1hIiAocmV0KSwiPWQiICh4KQkgICAgICBcCisJCSAgICAgOiAiMCIgKHB0cikpCQkgICAgICBcCisKKy8qIENhcmVmdWw6IHdlIGhhdmUgdG8gY2FzdCB0aGUgcmVzdWx0IHRvIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyCisgKiBmb3Igc2lnbiByZWFzb25zICovCisKKy8qKgorICogZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZS4KKyAqIEB4OiAgIFZhcmlhYmxlIHRvIHN0b3JlIHJlc3VsdC4KKyAqIEBwdHI6IFNvdXJjZSBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgorICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSB0byBrZXJuZWwKKyAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgorICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgorICoKKyAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCB0aGUgcmVzdWx0IG9mCisgKiBkZXJlZmVyZW5jaW5nIEBwdHIgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIEB4IHdpdGhvdXQgYSBjYXN0LgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICogT24gZXJyb3IsIHRoZSB2YXJpYWJsZSBAeCBpcyBzZXQgdG8gemVyby4KKyAqLworI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX19nZXRfdXNlcl84KF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKQkJCQlcCisJCV9fZ2V0X3VzZXJfeChYLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cikKKyNlbHNlCisjZGVmaW5lIF9fZ2V0X3VzZXJfOChfX3JldF9ndSwgX192YWxfZ3UsIHB0cikJCQkJXAorCQlfX2dldF91c2VyX3goOCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpCisjZW5kaWYKKworI2RlZmluZSBnZXRfdXNlcih4LCBwdHIpCQkJCQkJXAorKHsJCQkJCQkJCQlcCisJaW50IF9fcmV0X2d1OwkJCQkJCQlcCisJdW5zaWduZWQgbG9uZyBfX3ZhbF9ndTsJCQkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCisJc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQkJXAorCWNhc2UgMToJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl94KDEsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDI6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfeCgyLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQkJXAorCQlfX2dldF91c2VyX3goNCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgODoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl84KF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCQlcCisJCWJyZWFrOwkJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQkJXAorCQlfX2dldF91c2VyX3goWCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCX0JCQkJCQkJCVwKKwkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fdmFsX2d1OwkJCQlcCisJX19yZXRfZ3U7CQkJCQkJCVwKK30pCisKKyNkZWZpbmUgX19wdXRfdXNlcl94KHNpemUsIHgsIHB0ciwgX19yZXRfcHUpCQkJXAorCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXyIgI3NpemUgOiAiPWEiIChfX3JldF9wdSkJXAorCQkgICAgIDoiMCIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikgOiAiZWJ4IikKKworCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIGFkZHIsIGVycikJCQkJCVwKKwlhc20gdm9sYXRpbGUoIjE6CW1vdmwgJSVlYXgsMCglMilcbiIJCQlcCisJCSAgICAgIjI6CW1vdmwgJSVlZHgsNCglMilcbiIJCQlcCisJCSAgICAgIjM6XG4iCQkJCQkJXAorCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKKwkJICAgICAiNDoJbW92bCAlMywlMFxuIgkJCQlcCisJCSAgICAgIglqbXAgM2JcbiIJCQkJCVwKKwkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCisJCSAgICAgX0FTTV9FWFRBQkxFKDFiLCA0YikJCQkJXAorCQkgICAgIF9BU01fRVhUQUJMRSgyYiwgNGIpCQkJCVwKKwkJICAgICA6ICI9ciIgKGVycikJCQkJCVwKKwkJICAgICA6ICJBIiAoeCksICJyIiAoYWRkciksICJpIiAoLUVGQVVMVCksICIwIiAoZXJyKSkKKworI2RlZmluZSBfX3B1dF91c2VyX3g4KHgsIHB0ciwgX19yZXRfcHUpCQkJCVwKKwlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl84IiA6ICI9YSIgKF9fcmV0X3B1KQlcCisJCSAgICAgOiAiQSIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikgOiAiZWJ4IikKKyNlbHNlCisjZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIHB0ciwgcmV0dmFsKSBcCisJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJxIiwgIiIsICJaciIsIC1FRkFVTFQpCisjZGVmaW5lIF9fcHV0X3VzZXJfeDgoeCwgcHRyLCBfX3JldF9wdSkgX19wdXRfdXNlcl94KDgsIHgsIHB0ciwgX19yZXRfcHUpCisjZW5kaWYKKworZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl9iYWQodm9pZCk7CisKKy8qCisgKiBTdHJhbmdlIG1hZ2ljIGNhbGxpbmcgY29udmVudGlvbjogcG9pbnRlciBpbiAlZWN4LAorICogdmFsdWUgaW4gJWVheCg6JWVkeCksIHJldHVybiB2YWx1ZSBpbiAlZWF4LiBjbG9iYmVycyAlcmJ4CisgKi8KK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfMSh2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfMih2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfNCh2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfOCh2b2lkKTsKKworI2lmZGVmIENPTkZJR19YODZfV1BfV09SS1NfT0sKKworLyoqCisgKiBwdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UuCisgKiBAeDogICBWYWx1ZSB0byBjb3B5IHRvIHVzZXIgc3BhY2UuCisgKiBAcHRyOiBEZXN0aW5hdGlvbiBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgorICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhbHVlIGZyb20ga2VybmVsIHNwYWNlIHRvIHVzZXIKKyAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgorICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgorICoKKyAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCBAeCBtdXN0IGJlIGFzc2lnbmFibGUKKyAqIHRvIHRoZSByZXN1bHQgb2YgZGVyZWZlcmVuY2luZyBAcHRyLgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICovCisjZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKKyh7CQkJCQkJCQlcCisJaW50IF9fcmV0X3B1OwkJCQkJCVwKKwlfX3R5cGVvZl9fKCoocHRyKSkgX19wdV92YWw7CQkJCVwKKwlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJXAorCV9fcHVfdmFsID0geDsJCQkJCQlcCisJc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQlcCisJY2FzZSAxOgkJCQkJCQlcCisJCV9fcHV0X3VzZXJfeCgxLCBfX3B1X3ZhbCwgcHRyLCBfX3JldF9wdSk7CVwKKwkJYnJlYWs7CQkJCQkJXAorCWNhc2UgMjoJCQkJCQkJXAorCQlfX3B1dF91c2VyX3goMiwgX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwlcCisJCWJyZWFrOwkJCQkJCVwKKwljYXNlIDQ6CQkJCQkJCVwKKwkJX19wdXRfdXNlcl94KDQsIF9fcHVfdmFsLCBwdHIsIF9fcmV0X3B1KTsJXAorCQlicmVhazsJCQkJCQlcCisJY2FzZSA4OgkJCQkJCQlcCisJCV9fcHV0X3VzZXJfeDgoX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwkJXAorCQlicmVhazsJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQlcCisJCV9fcHV0X3VzZXJfeChYLCBfX3B1X3ZhbCwgcHRyLCBfX3JldF9wdSk7CVwKKwkJYnJlYWs7CQkJCQkJXAorCX0JCQkJCQkJXAorCV9fcmV0X3B1OwkJCQkJCVwKK30pCisKKyNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAorZG8gewkJCQkJCQkJCVwKKwlyZXR2YWwgPSAwOwkJCQkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCisJc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKKwljYXNlIDE6CQkJCQkJCQlcCisJCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgImlxIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgMjoJCQkJCQkJCVwKKwkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiaXIiLCBlcnJyZXQpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQkJXAorCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiayIsICAiaXIiLCBlcnJyZXQpO1wKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDg6CQkJCQkJCQlcCisJCV9fcHV0X3VzZXJfdTY0KChfX3R5cGVvZl9fKCpwdHIpKSh4KSwgcHRyLCByZXR2YWwpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQkJXAorCQlfX3B1dF91c2VyX2JhZCgpOwkJCQkJXAorCX0JCQkJCQkJCVwKK30gd2hpbGUgKDApCisKKyNlbHNlCisKKyNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAorZG8gewkJCQkJCQkJCVwKKwlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCQlcCisJcmV0dmFsID0gMDsJCQkJCQkJXAorCQkJCQkJCQkJXAorCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsIHNpemUpICE9IDApKQlcCisJCXJldHZhbCA9IGVycnJldDsJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgcHV0X3VzZXIoeCwgcHRyKQkJCQkJXAorKHsJCQkJCQkJCVwKKwlpbnQgX19yZXRfcHU7CQkJCQkJXAorCV9fdHlwZW9mX18oKihwdHIpKV9fcHVzX3RtcCA9IHg7CQkJXAorCV9fcmV0X3B1ID0gMDsJCQkJCQlcCisJaWYgKHVubGlrZWx5KF9fY29weV90b191c2VyX2xsKHB0ciwgJl9fcHVzX3RtcCwJCVwKKwkJCQkgICAgICAgc2l6ZW9mKCoocHRyKSkpICE9IDApKQlcCisJCV9fcmV0X3B1ID0gLUVGQVVMVDsJCQkJXAorCV9fcmV0X3B1OwkJCQkJCVwKK30pCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX19nZXRfdXNlcl9hc21fdTY0KHgsIHB0ciwgcmV0dmFsLCBlcnJyZXQpCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCkKKyNlbHNlCisjZGVmaW5lIF9fZ2V0X3VzZXJfYXNtX3U2NCh4LCBwdHIsIHJldHZhbCwgZXJycmV0KSBcCisJIF9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAicSIsICIiLCAiPXIiLCBlcnJyZXQpCisjZW5kaWYKKworI2RlZmluZSBfX2dldF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCitkbyB7CQkJCQkJCQkJXAorCXJldHZhbCA9IDA7CQkJCQkJCVwKKwlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKKwlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAorCWNhc2UgMToJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiPXEiLCBlcnJyZXQpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSAyOgkJCQkJCQkJXAorCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICI9ciIsIGVycnJldCk7CVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDQ6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICJrIiwgIj1yIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgODoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl9hc21fdTY0KHgsIHB0ciwgcmV0dmFsLCBlcnJyZXQpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJCVwKKwkJKHgpID0gX19nZXRfdXNlcl9iYWQoKTsJCQkJCVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfYXNtKHgsIGFkZHIsIGVyciwgaXR5cGUsIHJ0eXBlLCBsdHlwZSwgZXJycmV0KQlcCisJYXNtIHZvbGF0aWxlKCIxOgltb3YiaXR5cGUiICUyLCUicnR5cGUiMVxuIgkJXAorCQkgICAgICIyOlxuIgkJCQkJCVwKKwkJICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcCisJCSAgICAgIjM6CW1vdiAlMywlMFxuIgkJCQlcCisJCSAgICAgIgl4b3IiaXR5cGUiICUicnR5cGUiMSwlInJ0eXBlIjFcbiIJCVwKKwkJICAgICAiCWptcCAyYlxuIgkJCQkJXAorCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKKwkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCisJCSAgICAgOiAiPXIiIChlcnIpLCBsdHlwZSh4KQkJCQlcCisJCSAgICAgOiAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQorCisjZGVmaW5lIF9fcHV0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQkJXAorKHsJCQkJCQkJCVwKKwlsb25nIF9fcHVfZXJyOwkJCQkJCVwKKwlfX3B1dF91c2VyX3NpemUoKHgpLCAocHRyKSwgKHNpemUpLCBfX3B1X2VyciwgLUVGQVVMVCk7CVwKKwlfX3B1X2VycjsJCQkJCQlcCit9KQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQkJCVwKKyh7CQkJCQkJCQkJXAorCWxvbmcgX19ndV9lcnI7CQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIF9fZ3VfdmFsOwkJCQkJCVwKKwlfX2dldF91c2VyX3NpemUoX19ndV92YWwsIChwdHIpLCAoc2l6ZSksIF9fZ3VfZXJyLCAtRUZBVUxUKTsJXAorCSh4KSA9IChfX2ZvcmNlIF9fdHlwZW9mX18oKihwdHIpKSlfX2d1X3ZhbDsJCQlcCisJX19ndV9lcnI7CQkJCQkJCVwKK30pCisKKy8qIEZJWE1FOiB0aGlzIGhhY2sgaXMgZGVmaW5pdGVseSB3cm9uZyAtQUsgKi8KK3N0cnVjdCBfX2xhcmdlX3N0cnVjdCB7IHVuc2lnbmVkIGxvbmcgYnVmWzEwMF07IH07CisjZGVmaW5lIF9fbSh4KSAoKihzdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgX191c2VyICopKHgpKQorCisvKgorICogVGVsbCBnY2Mgd2UgcmVhZCBmcm9tIG1lbW9yeSBpbnN0ZWFkIG9mIHdyaXRpbmc6IHRoaXMgaXMgYmVjYXVzZQorICogd2UgZG8gbm90IHdyaXRlIHRvIGFueSBtZW1vcnkgZ2NjIGtub3dzIGFib3V0LCBzbyB0aGVyZSBhcmUgbm8KKyAqIGFsaWFzaW5nIGlzc3Vlcy4KKyAqLworI2RlZmluZSBfX3B1dF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycnJldCkJXAorCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlInJ0eXBlIjEsJTJcbiIJCVwKKwkJICAgICAiMjpcbiIJCQkJCQlcCisJCSAgICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiIJCQkJXAorCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAorCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCisJCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAorCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKKwkJICAgICA6ICI9ciIoZXJyKQkJCQkJXAorCQkgICAgIDogbHR5cGUoeCksICJtIiAoX19tKGFkZHIpKSwgImkiIChlcnJyZXQpLCAiMCIgKGVycikpCisvKioKKyAqIF9fZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgorICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgorICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCisgKgorICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KKyAqCisgKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAorICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCisgKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCisgKgorICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKKyAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCisgKgorICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KKyAqIE9uIGVycm9yLCB0aGUgdmFyaWFibGUgQHggaXMgc2V0IHRvIHplcm8uCisgKi8KKworI2RlZmluZSBfX2dldF91c2VyKHgsIHB0cikJCQkJCQlcCisJX19nZXRfdXNlcl9ub2NoZWNrKCh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQorLyoqCisgKiBfX3B1dF91c2VyOiAtIFdyaXRlIGEgc2ltcGxlIHZhbHVlIGludG8gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgorICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgorICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KKyAqCisgKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgorICoKKyAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCisgKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKKyAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KKyAqCisgKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCisgKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KKyAqCisgKiBDYWxsZXIgbXVzdCBjaGVjayB0aGUgcG9pbnRlciB3aXRoIGFjY2Vzc19vaygpIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICovCisKKyNkZWZpbmUgX19wdXRfdXNlcih4LCBwdHIpCQkJCQkJXAorCV9fcHV0X3VzZXJfbm9jaGVjaygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfdW5hbGlnbmVkIF9fZ2V0X3VzZXIKKyNkZWZpbmUgX19wdXRfdXNlcl91bmFsaWduZWQgX19wdXRfdXNlcgorCisvKgorICogbW92c2wgY2FuIGJlIHNsb3cgd2hlbiBzb3VyY2UgYW5kIGRlc3QgYXJlIG5vdCBib3RoIDgtYnl0ZSBhbGlnbmVkCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZCitleHRlcm4gc3RydWN0IG1vdnNsX21hc2sgeworCWludCBtYXNrOworfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wIG1vdnNsX21hc2s7CisjZW5kaWYKKworI2RlZmluZSBBUkNIX0hBU19OT0NBQ0hFX1VBQ0NFU1MgMQorCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJ1YWNjZXNzXzMyLmgiCiAjZWxzZQorIyBkZWZpbmUgQVJDSF9IQVNfU0VBUkNIX0VYVEFCTEUKICMgaW5jbHVkZSAidWFjY2Vzc182NC5oIgogI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzMyLmgKaW5kZXggOGU3NTk1Yy4uNmZkZWYzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc18zMi5oCkBAIC0xMSw0MjYgKzExLDYgQEAKICNpbmNsdWRlIDxhc20vYXNtLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotI2RlZmluZSBWRVJJRllfUkVBRCAwCi0jZGVmaW5lIFZFUklGWV9XUklURSAxCi0KLS8qCi0gKiBUaGUgZnMgdmFsdWUgZGV0ZXJtaW5lcyB3aGV0aGVyIGFyZ3VtZW50IHZhbGlkaXR5IGNoZWNraW5nIHNob3VsZCBiZQotICogcGVyZm9ybWVkIG9yIG5vdC4gIElmIGdldF9mcygpID09IFVTRVJfRFMsIGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgd2l0aAotICogZ2V0X2ZzKCkgPT0gS0VSTkVMX0RTLCBjaGVja2luZyBpcyBieXBhc3NlZC4KLSAqCi0gKiBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGVzZSBtYWNyb3MgYXJlIGdyb3NzbHkgbWlzbmFtZWQuCi0gKi8KLQotI2RlZmluZSBNQUtFX01NX1NFRyhzKQkoKG1tX3NlZ21lbnRfdCkgeyAocykgfSkKLQotCi0jZGVmaW5lIEtFUk5FTF9EUwlNQUtFX01NX1NFRygweEZGRkZGRkZGVUwpCi0jZGVmaW5lIFVTRVJfRFMJCU1BS0VfTU1fU0VHKFBBR0VfT0ZGU0VUKQotCi0jZGVmaW5lIGdldF9kcygpCShLRVJORUxfRFMpCi0jZGVmaW5lIGdldF9mcygpCShjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQpCi0jZGVmaW5lIHNldF9mcyh4KQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0ID0gKHgpKQotCi0jZGVmaW5lIHNlZ21lbnRfZXEoYSwgYikJKChhKS5zZWcgPT0gKGIpLnNlZykKLQotLyoKLSAqIG1vdnNsIGNhbiBiZSBzbG93IHdoZW4gc291cmNlIGFuZCBkZXN0IGFyZSBub3QgYm90aCA4LWJ5dGUgYWxpZ25lZAotICovCi0jaWZkZWYgQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWQotZXh0ZXJuIHN0cnVjdCBtb3ZzbF9tYXNrIHsKLQlpbnQgbWFzazsKLX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcCBtb3ZzbF9tYXNrOwotI2VuZGlmCi0KLSNkZWZpbmUgX19hZGRyX29rKGFkZHIpCQkJCQlcCi0JKCh1bnNpZ25lZCBsb25nIF9fZm9yY2UpKGFkZHIpIDwJCVwKLQkgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKQotCi0vKgotICogVGVzdCB3aGV0aGVyIGEgYmxvY2sgb2YgbWVtb3J5IGlzIGEgdmFsaWQgdXNlciBzcGFjZSBhZGRyZXNzLgotICogUmV0dXJucyAwIGlmIHRoZSByYW5nZSBpcyB2YWxpZCwgbm9uemVybyBvdGhlcndpc2UuCi0gKgotICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgdGVzdDoKLSAqICh1MzMpYWRkciArICh1MzMpc2l6ZSA+PSAodTMzKWN1cnJlbnQtPmFkZHJfbGltaXQuc2VnCi0gKgotICogVGhpcyBuZWVkcyAzMy1iaXQgYXJpdGhtZXRpYy4gV2UgaGF2ZSBhIGNhcnJ5Li4uCi0gKi8KLSNkZWZpbmUgX19yYW5nZV9vayhhZGRyLCBzaXplKQkJCQkJCVwKLSh7CQkJCQkJCQkJXAotCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKLQlhc20oImFkZGwgJTMsJTEgOyBzYmJsICUwLCUwOyBjbXBsICUxLCU0OyBzYmJsICQwLCUwIgkJXAotCSAgICA6Ij0mciIgKGZsYWcpLCAiPXIiIChyb2tzdW0pCQkJCVwKLQkgICAgOiIxIiAoYWRkciksICJnIiAoKGludCkoc2l6ZSkpLAkJCQlcCi0JICAgICJybSIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKLQlmbGFnOwkJCQkJCQkJXAotfSkKLQotLyoqCi0gKiBhY2Nlc3Nfb2s6IC0gQ2hlY2tzIGlmIGEgdXNlciBzcGFjZSBwb2ludGVyIGlzIHZhbGlkCi0gKiBAdHlwZTogVHlwZSBvZiBhY2Nlc3M6ICVWRVJJRllfUkVBRCBvciAlVkVSSUZZX1dSSVRFLiAgTm90ZSB0aGF0Ci0gKiAgICAgICAgJVZFUklGWV9XUklURSBpcyBhIHN1cGVyc2V0IG9mICVWRVJJRllfUkVBRCAtIGlmIGl0IGlzIHNhZmUKLSAqICAgICAgICB0byB3cml0ZSB0byBhIGJsb2NrLCBpdCBpcyBhbHdheXMgc2FmZSB0byByZWFkIGZyb20gaXQuCi0gKiBAYWRkcjogVXNlciBzcGFjZSBwb2ludGVyIHRvIHN0YXJ0IG9mIGJsb2NrIHRvIGNoZWNrCi0gKiBAc2l6ZTogU2l6ZSBvZiBibG9jayB0byBjaGVjawotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogQ2hlY2tzIGlmIGEgcG9pbnRlciB0byBhIGJsb2NrIG9mIG1lbW9yeSBpbiB1c2VyIHNwYWNlIGlzIHZhbGlkLgotICoKLSAqIFJldHVybnMgdHJ1ZSAobm9uemVybykgaWYgdGhlIG1lbW9yeSBibG9jayBtYXkgYmUgdmFsaWQsIGZhbHNlICh6ZXJvKQotICogaWYgaXQgaXMgZGVmaW5pdGVseSBpbnZhbGlkLgotICoKLSAqIE5vdGUgdGhhdCwgZGVwZW5kaW5nIG9uIGFyY2hpdGVjdHVyZSwgdGhpcyBmdW5jdGlvbiBwcm9iYWJseSBqdXN0Ci0gKiBjaGVja3MgdGhhdCB0aGUgcG9pbnRlciBpcyBpbiB0aGUgdXNlciBzcGFjZSByYW5nZSAtIGFmdGVyIGNhbGxpbmcKLSAqIHRoaXMgZnVuY3Rpb24sIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIG1heSBzdGlsbCByZXR1cm4gLUVGQVVMVC4KLSAqLwotI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKGxpa2VseShfX3JhbmdlX29rKGFkZHIsIHNpemUpID09IDApKQotCi0vKgotICogVGhlIGV4Y2VwdGlvbiB0YWJsZSBjb25zaXN0cyBvZiBwYWlycyBvZiBhZGRyZXNzZXM6IHRoZSBmaXJzdCBpcyB0aGUKLSAqIGFkZHJlc3Mgb2YgYW4gaW5zdHJ1Y3Rpb24gdGhhdCBpcyBhbGxvd2VkIHRvIGZhdWx0LCBhbmQgdGhlIHNlY29uZCBpcwotICogdGhlIGFkZHJlc3MgYXQgd2hpY2ggdGhlIHByb2dyYW0gc2hvdWxkIGNvbnRpbnVlLiAgTm8gcmVnaXN0ZXJzIGFyZQotICogbW9kaWZpZWQsIHNvIGl0IGlzIGVudGlyZWx5IHVwIHRvIHRoZSBjb250aW51YXRpb24gY29kZSB0byBmaWd1cmUgb3V0Ci0gKiB3aGF0IHRvIGRvLgotICoKLSAqIEFsbCB0aGUgcm91dGluZXMgYmVsb3cgdXNlIGJpdHMgb2YgZml4dXAgY29kZSB0aGF0IGFyZSBvdXQgb2YgbGluZQotICogd2l0aCB0aGUgbWFpbiBpbnN0cnVjdGlvbiBwYXRoLiAgVGhpcyBtZWFucyB3aGVuIGV2ZXJ5dGhpbmcgaXMgd2VsbCwKLSAqIHdlIGRvbid0IGV2ZW4gaGF2ZSB0byBqdW1wIG92ZXIgdGhlbS4gIEZ1cnRoZXIsIHRoZXkgZG8gbm90IGludHJ1ZGUKLSAqIG9uIG91ciBjYWNoZSBvciB0bGIgZW50cmllcy4KLSAqLwotCi1zdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5IHsKLQl1bnNpZ25lZCBsb25nIGluc24sIGZpeHVwOwotfTsKLQotZXh0ZXJuIGludCBmaXh1cF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotCi0vKgotICogVGhlc2UgYXJlIHRoZSBtYWluIHNpbmdsZS12YWx1ZSB0cmFuc2ZlciByb3V0aW5lcy4gIFRoZXkgYXV0b21hdGljYWxseQotICogdXNlIHRoZSByaWdodCBzaXplIGlmIHdlIGp1c3QgaGF2ZSB0aGUgcmlnaHQgcG9pbnRlciB0eXBlLgotICoKLSAqIFRoaXMgZ2V0cyBraW5kIG9mIHVnbHkuIFdlIHdhbnQgdG8gcmV0dXJuIF90d29fIHZhbHVlcyBpbiAiZ2V0X3VzZXIoKSIKLSAqIGFuZCB5ZXQgd2UgZG9uJ3Qgd2FudCB0byBkbyBhbnkgcG9pbnRlcnMsIGJlY2F1c2UgdGhhdCBpcyB0b28gbXVjaAotICogb2YgYSBwZXJmb3JtYW5jZSBpbXBhY3QuIFRodXMgd2UgaGF2ZSBhIGZldyByYXRoZXIgdWdseSBtYWNyb3MgaGVyZSwKLSAqIGFuZCBoaWRlIGFsbCB0aGUgdWdsaW5lc3MgZnJvbSB0aGUgdXNlci4KLSAqCi0gKiBUaGUgIl9feHh4IiB2ZXJzaW9ucyBvZiB0aGUgdXNlciBhY2Nlc3MgZnVuY3Rpb25zIGFyZSB2ZXJzaW9ucyB0aGF0Ci0gKiBkbyBub3QgdmVyaWZ5IHRoZSBhZGRyZXNzIHNwYWNlLCB0aGF0IG11c3QgaGF2ZSBiZWVuIGRvbmUgcHJldmlvdXNseQotICogd2l0aCBhIHNlcGFyYXRlICJhY2Nlc3Nfb2soKSIgY2FsbCAodGhpcyBpcyB1c2VkIHdoZW4gd2UgZG8gbXVsdGlwbGUKLSAqIGFjY2Vzc2VzIHRvIHRoZSBzYW1lIGFyZWEgb2YgdXNlciBtZW1vcnkpLgotICovCi0KLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfMih2b2lkKTsKLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfNCh2b2lkKTsKLQotI2RlZmluZSBfX2dldF91c2VyX3goc2l6ZSwgcmV0LCB4LCBwdHIpCSAgICAgIFwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19nZXRfdXNlcl8iICNzaXplIFwKLQkJICAgICA6Ij1hIiAocmV0KSwiPWQiICh4KSAgICAgXAotCQkgICAgIDoiMCIgKHB0cikpCi0KLQotLyogQ2FyZWZ1bDogd2UgaGF2ZSB0byBjYXN0IHRoZSByZXN1bHQgdG8gdGhlIHR5cGUgb2YgdGhlIHBvaW50ZXIKLSAqIGZvciBzaWduIHJlYXNvbnMgKi8KLQotLyoqCi0gKiBnZXRfdXNlcjogLSBHZXQgYSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlLgotICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgotICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCi0gKgotICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KLSAqCi0gKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAotICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCi0gKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCi0gKgotICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKLSAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCi0gKgotICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG9yIC1FRkFVTFQgb24gZXJyb3IuCi0gKiBPbiBlcnJvciwgdGhlIHZhcmlhYmxlIEB4IGlzIHNldCB0byB6ZXJvLgotICovCi0jZGVmaW5lIGdldF91c2VyKHgsIHB0cikJCQkJCQlcCi0oewkJCQkJCQkJCVwKLQlpbnQgX19yZXRfZ3U7CQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fdmFsX2d1OwkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemVvZigqKHB0cikpKSB7CQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goMSwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDIsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCg0LCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQkJXAotCQlfX2dldF91c2VyX3goWCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCX0JCQkJCQkJCVwKLQkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fdmFsX2d1OwkJCQlcCi0JX19yZXRfZ3U7CQkJCQkJCVwKLX0pCi0KLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfYmFkKHZvaWQpOwotCi0vKgotICogU3RyYW5nZSBtYWdpYyBjYWxsaW5nIGNvbnZlbnRpb246IHBvaW50ZXIgaW4gJWVjeCwKLSAqIHZhbHVlIGluICVlYXgoOiVlZHgpLCByZXR1cm4gdmFsdWUgaW4gJWVheCwgbm8gY2xvYmJlcnMuCi0gKi8KLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMih2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfNCh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfOCh2b2lkKTsKLQotI2RlZmluZSBfX3B1dF91c2VyXzEoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzEiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzIoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzIiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzQoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzQiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzgoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzgiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICJBIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyX1goeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyX1giIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICJjIiAocHRyKSkKLQotLyoqCi0gKiBwdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UuCi0gKiBAeDogICBWYWx1ZSB0byBjb3B5IHRvIHVzZXIgc3BhY2UuCi0gKiBAcHRyOiBEZXN0aW5hdGlvbiBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhbHVlIGZyb20ga2VybmVsIHNwYWNlIHRvIHVzZXIKLSAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgotICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgotICoKLSAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCBAeCBtdXN0IGJlIGFzc2lnbmFibGUKLSAqIHRvIHRoZSByZXN1bHQgb2YgZGVyZWZlcmVuY2luZyBAcHRyLgotICoKLSAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgotICovCi0jaWZkZWYgQ09ORklHX1g4Nl9XUF9XT1JLU19PSwotCi0jZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fcmV0X3B1OwkJCQkJCVwKLQlfX3R5cGVvZl9fKCoocHRyKSkgX19wdV92YWw7CQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJXAotCV9fcHVfdmFsID0geDsJCQkJCQlcCi0Jc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQlcCi0JY2FzZSAxOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfMShfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCVwKLQkJX19wdXRfdXNlcl8yKF9fcHVfdmFsLCBwdHIpOwkJCVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJXAotCQlfX3B1dF91c2VyXzQoX19wdV92YWwsIHB0cik7CQkJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfOChfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCVwKLQkJX19wdXRfdXNlcl9YKF9fcHVfdmFsLCBwdHIpOwkJCVwKLQkJYnJlYWs7CQkJCQkJXAotCX0JCQkJCQkJXAotCV9fcmV0X3B1OwkJCQkJCVwKLX0pCi0KLSNlbHNlCi0jZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fcmV0X3B1OwkJCQkJCVwKLQlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCVwKLQlfX3JldF9wdSA9IDA7CQkJCQkJXAotCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsCQlcCi0JCQkJICAgICAgIHNpemVvZigqKHB0cikpKSAhPSAwKSkJXAotCQlfX3JldF9wdSA9IC1FRkFVTFQ7CQkJCVwKLQlfX3JldF9wdTsJCQkJCQlcCi19KQotCi0KLSNlbmRpZgotCi0vKioKLSAqIF9fZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgotICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgotICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCi0gKgotICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KLSAqCi0gKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAotICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCi0gKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCi0gKgotICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKLSAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCi0gKgotICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCi0gKiBmdW5jdGlvbi4KLSAqCi0gKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KLSAqIE9uIGVycm9yLCB0aGUgdmFyaWFibGUgQHggaXMgc2V0IHRvIHplcm8uCi0gKi8KLSNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCVwKLQlfX2dldF91c2VyX25vY2hlY2soKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLQotLyoqCi0gKiBfX3B1dF91c2VyOiAtIFdyaXRlIGEgc2ltcGxlIHZhbHVlIGludG8gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgotICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgotICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KLSAqCi0gKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgotICoKLSAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCi0gKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKLSAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KLSAqCi0gKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCi0gKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KLSAqCi0gKiBDYWxsZXIgbXVzdCBjaGVjayB0aGUgcG9pbnRlciB3aXRoIGFjY2Vzc19vaygpIGJlZm9yZSBjYWxsaW5nIHRoaXMKLSAqIGZ1bmN0aW9uLgotICoKLSAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgotICovCi0jZGVmaW5lIF9fcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX3B1dF91c2VyX25vY2hlY2soKF9fdHlwZW9mX18oKihwdHIpKSkoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKLQotI2RlZmluZSBfX3B1dF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCVwKLSh7CQkJCQkJCQlcCi0JbG9uZyBfX3B1X2VycjsJCQkJCQlcCi0JX19wdXRfdXNlcl9zaXplKCh4KSwgKHB0ciksIChzaXplKSwgX19wdV9lcnIsIC1FRkFVTFQpOwlcCi0JX19wdV9lcnI7CQkJCQkJXAotfSkKLQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIGFkZHIsIGVycikJCQkJCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdmwgJSVlYXgsMCglMilcbiIJCQlcCi0JCSAgICAgIjI6CW1vdmwgJSVlZHgsNCglMilcbiIJCQlcCi0JCSAgICAgIjM6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKLQkJICAgICAiNDoJbW92bCAlMywlMFxuIgkJCQlcCi0JCSAgICAgIglqbXAgM2JcbiIJCQkJCVwKLQkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCi0JCSAgICAgX0FTTV9FWFRBQkxFKDFiLCA0YikJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgyYiwgNGIpCQkJCVwKLQkJICAgICA6ICI9ciIgKGVycikJCQkJCVwKLQkJICAgICA6ICJBIiAoeCksICJyIiAoYWRkciksICJpIiAoLUVGQVVMVCksICIwIiAoZXJyKSkKLQotI2lmZGVmIENPTkZJR19YODZfV1BfV09SS1NfT0sKLQotI2RlZmluZSBfX3B1dF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCXJldHZhbCA9IDA7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiaXEiLCBlcnJyZXQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICJpciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICIiLCAgImlyIiwgZXJycmV0KTsJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgODoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl91NjQoKF9fdHlwZW9mX18oKnB0cikpKHgpLCBwdHIsIHJldHZhbCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2Vsc2UKLQotI2RlZmluZSBfX3B1dF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCV9fdHlwZW9mX18oKihwdHIpKV9fcHVzX3RtcCA9IHg7CQkJCVwKLQlyZXR2YWwgPSAwOwkJCQkJCQlcCi0JCQkJCQkJCQlcCi0JaWYgKHVubGlrZWx5KF9fY29weV90b191c2VyX2xsKHB0ciwgJl9fcHVzX3RtcCwgc2l6ZSkgIT0gMCkpCVwKLQkJcmV0dmFsID0gZXJycmV0OwkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2VuZGlmCi1zdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1ZlsxMDBdOyB9OwotI2RlZmluZSBfX20oeCkgKCooc3RydWN0IF9fbGFyZ2Vfc3RydWN0IF9fdXNlciAqKSh4KSkKLQotLyoKLSAqIFRlbGwgZ2NjIHdlIHJlYWQgZnJvbSBtZW1vcnkgaW5zdGVhZCBvZiB3cml0aW5nOiB0aGlzIGlzIGJlY2F1c2UKLSAqIHdlIGRvIG5vdCB3cml0ZSB0byBhbnkgbWVtb3J5IGdjYyBrbm93cyBhYm91dCwgc28gdGhlcmUgYXJlIG5vCi0gKiBhbGlhc2luZyBpc3N1ZXMuCi0gKi8KLSNkZWZpbmUgX19wdXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJyZXQpCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdiJpdHlwZSIgJSJydHlwZSIxLCUyXG4iCQlcCi0JCSAgICAgIjI6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKLQkJICAgICAiMzoJbW92bCAlMywlMFxuIgkJCQlcCi0JCSAgICAgIglqbXAgMmJcbiIJCQkJCVwKLQkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCi0JCSAgICAgX0FTTV9FWFRBQkxFKDFiLCAzYikJCQkJXAotCQkgICAgIDogIj1yIihlcnIpCQkJCQlcCi0JCSAgICAgOiBsdHlwZSAoeCksICJtIiAoX19tKGFkZHIpKSwgImkiIChlcnJyZXQpLCAiMCIgKGVycikpCi0KLQotI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCQlcCi0oewkJCQkJCQkJCVwKLQlsb25nIF9fZ3VfZXJyOwkJCQkJCQlcCi0JdW5zaWduZWQgbG9uZyBfX2d1X3ZhbDsJCQkJCQlcCi0JX19nZXRfdXNlcl9zaXplKF9fZ3VfdmFsLCAocHRyKSwgKHNpemUpLCBfX2d1X2VyciwgLUVGQVVMVCk7CVwKLQkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fZ3VfdmFsOwkJCQlcCi0JX19ndV9lcnI7CQkJCQkJCVwKLX0pCi0KLWV4dGVybiBsb25nIF9fZ2V0X3VzZXJfYmFkKHZvaWQpOwotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCwgZXJycmV0KQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICI9cSIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgIj1yIiwgZXJycmV0KTsJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgIiIsICI9ciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBfX2dldF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycnJldCkJXAotCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlMiwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiMjpcbiIJCQkJCQlcCi0JCSAgICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiIJCQkJXAotCQkgICAgICIzOgltb3ZsICUzLCUwXG4iCQkJCVwKLQkJICAgICAiCXhvciJpdHlwZSIgJSJydHlwZSIxLCUicnR5cGUiMVxuIgkJXAotCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKLQkJICAgICA6ICI9ciIgKGVyciksIGx0eXBlICh4KQkJCQlcCi0JCSAgICAgOiAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQotCi0KIHVuc2lnbmVkIGxvbmcgX19tdXN0X2NoZWNrIF9fY29weV90b191c2VyX2xsCiAJCSh2b2lkIF9fdXNlciAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxvbmcgbik7CiB1bnNpZ25lZCBsb25nIF9fbXVzdF9jaGVjayBfX2NvcHlfZnJvbV91c2VyX2xsCkBAIC01NzYsOCArMTU2LDYgQEAKIAlyZXR1cm4gX19jb3B5X2Zyb21fdXNlcl9sbCh0bywgZnJvbSwgbik7CiB9CiAKLSNkZWZpbmUgQVJDSF9IQVNfTk9DQUNIRV9VQUNDRVNTCi0KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBfX2NvcHlfZnJvbV91c2VyX25vY2FjaGUodm9pZCAqdG8sCiAJCQkJY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sIHVuc2lnbmVkIGxvbmcgbikKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc182NC5oCmluZGV4IGI4YTJmNDMuLjUxNWQ0ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfNjQuaApAQCAtOSwyNjUgKzksNiBAQAogI2luY2x1ZGUgPGxpbnV4L3ByZWZldGNoLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotI2RlZmluZSBWRVJJRllfUkVBRCAwCi0jZGVmaW5lIFZFUklGWV9XUklURSAxCi0KLS8qCi0gKiBUaGUgZnMgdmFsdWUgZGV0ZXJtaW5lcyB3aGV0aGVyIGFyZ3VtZW50IHZhbGlkaXR5IGNoZWNraW5nIHNob3VsZCBiZQotICogcGVyZm9ybWVkIG9yIG5vdC4gIElmIGdldF9mcygpID09IFVTRVJfRFMsIGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgd2l0aAotICogZ2V0X2ZzKCkgPT0gS0VSTkVMX0RTLCBjaGVja2luZyBpcyBieXBhc3NlZC4KLSAqCi0gKiBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGVzZSBtYWNyb3MgYXJlIGdyb3NzbHkgbWlzbmFtZWQuCi0gKi8KLQotI2RlZmluZSBNQUtFX01NX1NFRyhzKQkoKG1tX3NlZ21lbnRfdCkgeyAocykgfSkKLQotI2RlZmluZSBLRVJORUxfRFMJTUFLRV9NTV9TRUcoMHhGRkZGRkZGRkZGRkZGRkZGVUwpCi0jZGVmaW5lIFVTRVJfRFMJCU1BS0VfTU1fU0VHKFBBR0VfT0ZGU0VUKQotCi0jZGVmaW5lIGdldF9kcygpCShLRVJORUxfRFMpCi0jZGVmaW5lIGdldF9mcygpCShjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQpCi0jZGVmaW5lIHNldF9mcyh4KQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0ID0gKHgpKQotCi0jZGVmaW5lIHNlZ21lbnRfZXEoYSwgYikJKChhKS5zZWcgPT0gKGIpLnNlZykKLQotI2RlZmluZSBfX2FkZHJfb2soYWRkcikgKCEoKHVuc2lnbmVkIGxvbmcpKGFkZHIpICYJCQlcCi0JCQkgICAoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0LnNlZykpKQotCi0vKgotICogVWhodWgsIHRoaXMgbmVlZHMgNjUtYml0IGFyaXRobWV0aWMuIFdlIGhhdmUgYSBjYXJyeS4uCi0gKi8KLSNkZWZpbmUgX19yYW5nZV9ub3Rfb2soYWRkciwgc2l6ZSkJCQkJCVwKLSh7CQkJCQkJCQkJXAotCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKLQlhc20oIiMgcmFuZ2Vfb2tcblxyIgkJCQkJCVwKLQkgICAgImFkZHEgJTMsJTEgOyBzYmJxICUwLCUwIDsgY21wcSAlMSwlNCA7IHNiYnEgJDAsJTAiCQlcCi0JICAgIDogIj0mciIgKGZsYWcpLCAiPXIiIChyb2tzdW0pCQkJCVwKLQkgICAgOiAiMSIgKGFkZHIpLCAiZyIgKChsb25nKShzaXplKSksCQkJCVwKLQkgICAgICAiZyIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKLQlmbGFnOwkJCQkJCQkJXAotfSkKLQotI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKF9fcmFuZ2Vfbm90X29rKGFkZHIsIHNpemUpID09IDApCi0KLS8qCi0gKiBUaGUgZXhjZXB0aW9uIHRhYmxlIGNvbnNpc3RzIG9mIHBhaXJzIG9mIGFkZHJlc3NlczogdGhlIGZpcnN0IGlzIHRoZQotICogYWRkcmVzcyBvZiBhbiBpbnN0cnVjdGlvbiB0aGF0IGlzIGFsbG93ZWQgdG8gZmF1bHQsIGFuZCB0aGUgc2Vjb25kIGlzCi0gKiB0aGUgYWRkcmVzcyBhdCB3aGljaCB0aGUgcHJvZ3JhbSBzaG91bGQgY29udGludWUuICBObyByZWdpc3RlcnMgYXJlCi0gKiBtb2RpZmllZCwgc28gaXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlIGNvbnRpbnVhdGlvbiBjb2RlIHRvIGZpZ3VyZSBvdXQKLSAqIHdoYXQgdG8gZG8uCi0gKgotICogQWxsIHRoZSByb3V0aW5lcyBiZWxvdyB1c2UgYml0cyBvZiBmaXh1cCBjb2RlIHRoYXQgYXJlIG91dCBvZiBsaW5lCi0gKiB3aXRoIHRoZSBtYWluIGluc3RydWN0aW9uIHBhdGguICBUaGlzIG1lYW5zIHdoZW4gZXZlcnl0aGluZyBpcyB3ZWxsLAotICogd2UgZG9uJ3QgZXZlbiBoYXZlIHRvIGp1bXAgb3ZlciB0aGVtLiAgRnVydGhlciwgdGhleSBkbyBub3QgaW50cnVkZQotICogb24gb3VyIGNhY2hlIG9yIHRsYiBlbnRyaWVzLgotICovCi0KLXN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgewotCXVuc2lnbmVkIGxvbmcgaW5zbiwgZml4dXA7Ci19OwotCi1leHRlcm4gaW50IGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Ci0KLSNkZWZpbmUgQVJDSF9IQVNfU0VBUkNIX0VYVEFCTEUKLQotLyoKLSAqIFRoZXNlIGFyZSB0aGUgbWFpbiBzaW5nbGUtdmFsdWUgdHJhbnNmZXIgcm91dGluZXMuICBUaGV5IGF1dG9tYXRpY2FsbHkKLSAqIHVzZSB0aGUgcmlnaHQgc2l6ZSBpZiB3ZSBqdXN0IGhhdmUgdGhlIHJpZ2h0IHBvaW50ZXIgdHlwZS4KLSAqCi0gKiBUaGlzIGdldHMga2luZCBvZiB1Z2x5LiBXZSB3YW50IHRvIHJldHVybiBfdHdvXyB2YWx1ZXMgaW4gImdldF91c2VyKCkiCi0gKiBhbmQgeWV0IHdlIGRvbid0IHdhbnQgdG8gZG8gYW55IHBvaW50ZXJzLCBiZWNhdXNlIHRoYXQgaXMgdG9vIG11Y2gKLSAqIG9mIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBUaHVzIHdlIGhhdmUgYSBmZXcgcmF0aGVyIHVnbHkgbWFjcm9zIGhlcmUsCi0gKiBhbmQgaGlkZSBhbGwgdGhlIHVnbGluZXNzIGZyb20gdGhlIHVzZXIuCi0gKgotICogVGhlICJfX3h4eCIgdmVyc2lvbnMgb2YgdGhlIHVzZXIgYWNjZXNzIGZ1bmN0aW9ucyBhcmUgdmVyc2lvbnMgdGhhdAotICogZG8gbm90IHZlcmlmeSB0aGUgYWRkcmVzcyBzcGFjZSwgdGhhdCBtdXN0IGhhdmUgYmVlbiBkb25lIHByZXZpb3VzbHkKLSAqIHdpdGggYSBzZXBhcmF0ZSAiYWNjZXNzX29rKCkiIGNhbGwgKHRoaXMgaXMgdXNlZCB3aGVuIHdlIGRvIG11bHRpcGxlCi0gKiBhY2Nlc3NlcyB0byB0aGUgc2FtZSBhcmVhIG9mIHVzZXIgbWVtb3J5KS4KLSAqLwotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfeChzaXplLCByZXQsIHgsIHB0cikJCSAgICAgIFwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19nZXRfdXNlcl8iICNzaXplCSAgICAgIFwKLQkJICAgICA6ICI9YSIgKHJldCksIj1kIiAoeCkJICAgICAgXAotCQkgICAgIDogImMiIChwdHIpCQkgICAgICBcCi0JCSAgICAgOiAicjgiKQotCi0vKiBDYXJlZnVsOiB3ZSBoYXZlIHRvIGNhc3QgdGhlIHJlc3VsdCB0byB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlcgotICogZm9yIHNpZ24gcmVhc29ucyAqLwotCi0jZGVmaW5lIGdldF91c2VyKHgsIHB0cikJCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fdmFsX2d1OwkJCQkJCVwKLQlpbnQgX19yZXRfZ3U7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemVvZigqKHB0cikpKSB7CQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goMSwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDIsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCg0LCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goOCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJCVwKLQkJX19nZXRfdXNlcl9iYWQoKTsJCQkJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQl9CQkJCQkJCQlcCi0JKHgpID0gKF9fZm9yY2UgdHlwZW9mKCoocHRyKSkpX192YWxfZ3U7CQkJCVwKLQlfX3JldF9ndTsJCQkJCQkJXAotfSkKLQotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl8xKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl8yKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl80KHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl84KHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl9iYWQodm9pZCk7Ci0KLSNkZWZpbmUgX19wdXRfdXNlcl94KHNpemUsIHJldCwgeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXyIgI3NpemUJCQkJXAotCQkgICAgIDoiPWEiIChyZXQpCQkJCQlcCi0JCSAgICAgOiJjIiAocHRyKSwiZCIgKHgpCQkJCQlcCi0JCSAgICAgOiJyOCIpCi0KLSNkZWZpbmUgcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX3B1dF91c2VyX2NoZWNrKChfX3R5cGVvZl9fKCoocHRyKSkpKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLSNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCQkJXAotCV9fZ2V0X3VzZXJfbm9jaGVjaygoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKLSNkZWZpbmUgX19wdXRfdXNlcih4LCBwdHIpCQkJCQkJXAotCV9fcHV0X3VzZXJfbm9jaGVjaygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfdW5hbGlnbmVkIF9fZ2V0X3VzZXIKLSNkZWZpbmUgX19wdXRfdXNlcl91bmFsaWduZWQgX19wdXRfdXNlcgotCi0jZGVmaW5lIF9fcHV0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQlcCi0oewkJCQkJCQlcCi0JaW50IF9fcHVfZXJyOwkJCQkJXAotCV9fcHV0X3VzZXJfc2l6ZSgoeCksIChwdHIpLCAoc2l6ZSksIF9fcHVfZXJyKTsJXAotCV9fcHVfZXJyOwkJCQkJXAotfSkKLQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfY2hlY2soeCwgcHRyLCBzaXplKQkJCQlcCi0oewkJCQkJCQkJXAotCWludCBfX3B1X2VycjsJCQkJCQlcCi0JdHlwZW9mKCoocHRyKSkgX191c2VyICpfX3B1X2FkZHIgPSAocHRyKTsJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCgxLCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCgyLCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCg0LCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCg4LCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYmFkKCk7CQkJCVwKLQl9CQkJCQkJCVwKLQlfX3B1X2VycjsJCQkJCQlcCi19KQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlyZXR2YWwgPSAwOwkJCQkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCi0Jc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKLQljYXNlIDE6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgImlxIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiaXIiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiayIsICJpciIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDg6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAicSIsICIiLCAiWnIiLCAtRUZBVUxUKTsJXAotCQlicmVhazsJCQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJCVwKLQkJX19wdXRfdXNlcl9iYWQoKTsJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKiBGSVhNRTogdGhpcyBoYWNrIGlzIGRlZmluaXRlbHkgd3JvbmcgLUFLICovCi1zdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1ZlsxMDBdOyB9OwotI2RlZmluZSBfX20oeCkgKCooc3RydWN0IF9fbGFyZ2Vfc3RydWN0IF9fdXNlciAqKSh4KSkKLQotLyoKLSAqIFRlbGwgZ2NjIHdlIHJlYWQgZnJvbSBtZW1vcnkgaW5zdGVhZCBvZiB3cml0aW5nOiB0aGlzIGlzIGJlY2F1c2UKLSAqIHdlIGRvIG5vdCB3cml0ZSB0byBhbnkgbWVtb3J5IGdjYyBrbm93cyBhYm91dCwgc28gdGhlcmUgYXJlIG5vCi0gKiBhbGlhc2luZyBpc3N1ZXMuCi0gKi8KLSNkZWZpbmUgX19wdXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJubykJXAotCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlInJ0eXBlIjEsJTJcbiIJCVwKLQkJICAgICAiMjpcbiIJCQkJCQlcCi0JCSAgICAgIi5zZWN0aW9uIC5maXh1cCwgXCJheFwiXG4iCQkJXAotCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAotCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKLQkJICAgICA6ICI9ciIoZXJyKQkJCQkJXAotCQkgICAgIDogbHR5cGUgKHgpLCAibSIgKF9fbShhZGRyKSksICJpIiAoZXJybm8pLCAiMCIgKGVycikpCi0KLQotI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fZ3VfZXJyOwkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fZ3VfdmFsOwkJCQkJXAotCV9fZ2V0X3VzZXJfc2l6ZShfX2d1X3ZhbCwgKHB0ciksIChzaXplKSwgX19ndV9lcnIpOwlcCi0JKHgpID0gKF9fZm9yY2UgdHlwZW9mKCoocHRyKSkpX19ndV92YWw7CQkJXAotCV9fZ3VfZXJyOwkJCQkJCVwKLX0pCi0KLWV4dGVybiBpbnQgX19nZXRfdXNlcl8xKHZvaWQpOwotZXh0ZXJuIGludCBfX2dldF91c2VyXzIodm9pZCk7Ci1leHRlcm4gaW50IF9fZ2V0X3VzZXJfNCh2b2lkKTsKLWV4dGVybiBpbnQgX19nZXRfdXNlcl84KHZvaWQpOwotZXh0ZXJuIGludCBfX2dldF91c2VyX2JhZCh2b2lkKTsKLQotI2RlZmluZSBfX2dldF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwpCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICI9cSIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgIj1yIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgImsiLCAiPXIiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInEiLCAiIiwgIj1yIiwgLUVGQVVMVCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBfX2dldF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycm5vKQlcCi0JYXNtIHZvbGF0aWxlKCIxOgltb3YiaXR5cGUiICUyLCUicnR5cGUiMVxuIgkJXAotCQkgICAgICIyOlxuIgkJCQkJCVwKLQkJICAgICAiLnNlY3Rpb24gLmZpeHVwLCBcImF4XCJcbiIJCQlcCi0JCSAgICAgIjM6CW1vdiAlMywlMFxuIgkJCQlcCi0JCSAgICAgIgl4b3IiaXR5cGUiICUicnR5cGUiMSwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiCWptcCAyYlxuIgkJCQkJXAotCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKLQkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCi0JCSAgICAgOiAiPXIiIChlcnIpLCBsdHlwZSAoeCkJCQkJXAotCQkgICAgIDogIm0iIChfX20oYWRkcikpLCAiaSIoZXJybm8pLCAiMCIoZXJyKSkKLQogLyoKICAqIENvcHkgVG8vRnJvbSBVc2Vyc3BhY2UKICAqLwpAQCAtNDM3LDcgKzE3OCw2IEBACiAJcmV0dXJuIGNvcHlfdXNlcl9nZW5lcmljKChfX2ZvcmNlIHZvaWQgKilkc3QsIHNyYywgc2l6ZSk7CiB9CiAKLSNkZWZpbmUgQVJDSF9IQVNfTk9DQUNIRV9VQUNDRVNTIDEKIGV4dGVybiBsb25nIF9fY29weV91c2VyX25vY2FjaGUodm9pZCAqZHN0LCBjb25zdCB2b2lkIF9fdXNlciAqc3JjLAogCQkJCXVuc2lnbmVkIHNpemUsIGludCB6ZXJvcmVzdCk7CiAKQEAgLTQ1NSw0ICsxOTUsNyBAQAogCXJldHVybiBfX2NvcHlfdXNlcl9ub2NhY2hlKGRzdCwgc3JjLCBzaXplLCAwKTsKIH0KIAordW5zaWduZWQgbG9uZworY29weV91c2VyX2hhbmRsZV90YWlsKGNoYXIgKnRvLCBjaGFyICpmcm9tLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIHplcm9yZXN0KTsKKwogI2VuZGlmIC8qIF9fWDg2XzY0X1VBQ0NFU1NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3VuaXN0ZF82NC5oIGIvaW5jbHVkZS9hc20teDg2L3VuaXN0ZF82NC5oCmluZGV4IGZlMjZlMzYuLjljMWE0YTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91bmlzdGRfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdW5pc3RkXzY0LmgKQEAgLTI5MCw3ICsyOTAsNyBAQAogI2RlZmluZSBfX05SX3J0X3NpZ3F1ZXVlaW5mbwkJCTEyOQogX19TWVNDQUxMKF9fTlJfcnRfc2lncXVldWVpbmZvLCBzeXNfcnRfc2lncXVldWVpbmZvKQogI2RlZmluZSBfX05SX3J0X3NpZ3N1c3BlbmQJCQkxMzAKLV9fU1lTQ0FMTChfX05SX3J0X3NpZ3N1c3BlbmQsIHN0dWJfcnRfc2lnc3VzcGVuZCkKK19fU1lTQ0FMTChfX05SX3J0X3NpZ3N1c3BlbmQsIHN5c19ydF9zaWdzdXNwZW5kKQogI2RlZmluZSBfX05SX3NpZ2FsdHN0YWNrCQkJMTMxCiBfX1NZU0NBTEwoX19OUl9zaWdhbHRzdGFjaywgc3R1Yl9zaWdhbHRzdGFjaykKICNkZWZpbmUgX19OUl91dGltZQkJCQkxMzIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9iYXUuaCBiL2luY2x1ZGUvYXNtLXg4Ni91di91dl9iYXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWFjMGRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X2JhdS5oCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgIkNPUFlJTkciIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIGFyY2hpdmUKKyAqIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogU0dJIFVWIEJyb2FkY2FzdCBBc3Npc3QgVW5pdCBkZWZpbml0aW9ucworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9YODZfVVZfQkFVX18KKyNkZWZpbmUgX19BU01fWDg2X1VWX0JBVV9fCisKKyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKyNkZWZpbmUgQklUU1BFUkJZVEUgOAorCisvKgorICogQnJvYWRjYXN0IEFzc2lzdCBVbml0IG1lc3NhZ2luZyBzdHJ1Y3R1cmVzCisgKgorICogU2VsZWN0aXZlIEJyb2FkY2FzdCBhY3RpdmF0aW9ucyBhcmUgaW5kdWNlZCBieSBzb2Z0d2FyZSBhY3Rpb24KKyAqIHNwZWNpZnlpbmcgYSBwYXJ0aWN1bGFyIDgtZGVzY3JpcHRvciAic2V0IiB2aWEgYSA2LWJpdCBpbmRleCB3cml0dGVuCisgKiB0byBhbiBNTVIuCisgKiBUaHVzIHRoZXJlIGFyZSA2NCB1bmlxdWUgNTEyLWJ5dGUgc2V0cyBvZiBTQiBkZXNjcmlwdG9ycyAtIG9uZSBzZXQgZm9yCisgKiBlYWNoIDYtYml0IGluZGV4IHZhbHVlLiBUaGVzZSBkZXNjcmlwdG9yIHNldHMgYXJlIG1hcHBlZCBpbiBzZXF1ZW5jZQorICogc3RhcnRpbmcgd2l0aCBzZXQgMCBsb2NhdGVkIGF0IHRoZSBhZGRyZXNzIHNwZWNpZmllZCBpbiB0aGUKKyAqIEJBVV9TQl9ERVNDUklQVE9SX0JBU0UgcmVnaXN0ZXIsIHNldCAxIGlzIGxvY2F0ZWQgYXQgQkFTRSArIDUxMiwKKyAqIHNldCAyIGlzIGF0IEJBU0UgKyAyKjUxMiwgc2V0IDMgYXQgQkFTRSArIDMqNTEyLCBhbmQgc28gb24uCisgKgorICogV2Ugd2lsbCB1c2UgMzEgc2V0cywgb25lIGZvciBzZW5kaW5nIEJBVSBtZXNzYWdlcyBmcm9tIGVhY2ggb2YgdGhlIDMyCisgKiBjcHUncyBvbiB0aGUgbm9kZS4KKyAqCisgKiBUTEIgc2hvb3Rkb3duIHdpbGwgdXNlIHRoZSBmaXJzdCBvZiB0aGUgOCBkZXNjcmlwdG9ycyBvZiBlYWNoIHNldC4KKyAqIEVhY2ggb2YgdGhlIGRlc2NyaXB0b3JzIGlzIDY0IGJ5dGVzIGluIHNpemUgKDgqNjQgPSA1MTIgYnl0ZXMgaW4gYSBzZXQpLgorICovCisKKyNkZWZpbmUgVVZfSVRFTVNfUEVSX0RFU0NSSVBUT1IJCTgKKyNkZWZpbmUgVVZfQ1BVU19QRVJfQUNUX1NUQVRVUwkJMzIKKyNkZWZpbmUgVVZfQUNUX1NUQVRVU19NQVNLCQkweDMKKyNkZWZpbmUgVVZfQUNUX1NUQVRVU19TSVpFCQkyCisjZGVmaW5lIFVWX0FDVElWQVRJT05fREVTQ1JJUFRPUl9TSVpFCTMyCisjZGVmaW5lIFVWX0RJU1RSSUJVVElPTl9TSVpFCQkyNTYKKyNkZWZpbmUgVVZfU1dfQUNLX05QRU5ESU5HCQk4CisjZGVmaW5lIFVWX0JBVV9NRVNTQUdFCQkJMjAwCisvKgorICogTWVzc2FnaW5nIGlycTsgc2VlIGlycV82NC5oIGFuZCBpbmNsdWRlL2FzbS14ODYvaHdfaXJxXzY0LmgKKyAqIFRvIGJlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBpbiB0aGUgZnV0dXJlCisgKi8KKyNkZWZpbmUgVVZfTkVUX0VORFBPSU5UX0lOVEQJCTB4MzgKKyNkZWZpbmUgVVZfREVTQ19CQVNFX1BOT0RFX1NISUZUCTQ5CisjZGVmaW5lIFVWX1BBWUxPQURRX1BOT0RFX1NISUZUCQk0OQorI2RlZmluZSBVVl9QVENfQkFTRU5BTUUJCQkic2dpX3V2L3B0Y19zdGF0aXN0aWNzIgorI2RlZmluZSB1dl9waHlzbm9kZWFkZHIoeCkJCSgoX19wYSgodW5zaWduZWQgbG9uZykoeCkpICYgdXZfbW1hc2spKQorCisvKgorICogYml0cyBpbiBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzAvMQorICovCisjZGVmaW5lIERFU0NfU1RBVFVTX0lETEUJCTAKKyNkZWZpbmUgREVTQ19TVEFUVVNfQUNUSVZFCQkxCisjZGVmaW5lIERFU0NfU1RBVFVTX0RFU1RJTkFUSU9OX1RJTUVPVVQJMgorI2RlZmluZSBERVNDX1NUQVRVU19TT1VSQ0VfVElNRU9VVAkzCisKKy8qCisgKiBzb3VyY2Ugc2lkZSB0aHJlc2hob2xkcyBhdCB3aGljaCBtZXNzYWdlIHJldHJpZXMgcHJpbnQgYSB3YXJuaW5nCisgKi8KKyNkZWZpbmUgU09VUkNFX1RJTUVPVVRfTElNSVQJCTIwCisjZGVmaW5lIERFU1RJTkFUSU9OX1RJTUVPVVRfTElNSVQJMjAKKworLyoKKyAqIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBkZXN0aW5hdGlvbiBzaWRlIHBheWxvYWQgcXVldWUKKyAqLworI2RlZmluZSBERVNUX1FfU0laRQkJCTE3CisvKgorICogbnVtYmVyIG9mIGRlc3RpbmF0aW9uIHNpZGUgc29mdHdhcmUgYWNrIHJlc291cmNlcworICovCisjZGVmaW5lIERFU1RfTlVNX1JFU09VUkNFUwkJOAorI2RlZmluZSBNQVhfQ1BVU19QRVJfTk9ERQkJMzIKKy8qCisgKiBjb21wbGV0aW9uIHN0YXR1c2VzIGZvciBzZW5kaW5nIGEgVExCIGZsdXNoIG1lc3NhZ2UKKyAqLworI2RlZmluZQlGTFVTSF9SRVRSWQkJCTEKKyNkZWZpbmUJRkxVU0hfR0lWRVVQCQkJMgorI2RlZmluZQlGTFVTSF9DT01QTEVURQkJCTMKKworLyoKKyAqIERpc3RyaWJ1dGlvbjogMzIgYnl0ZXMgKDI1NiBiaXRzKSAoYnl0ZXMgMC0weDFmIG9mIGRlc2NyaXB0b3IpCisgKiBJZiB0aGUgJ211bHRpbGV2ZWwnIGZsYWcgaW4gdGhlIGhlYWRlciBwb3J0aW9uIG9mIHRoZSBkZXNjcmlwdG9yCisgKiBoYXMgYmVlbiBzZXQgdG8gMCwgdGhlbiBlbmRwb2ludCBtdWx0aS11bmljYXN0IG1vZGUgaXMgc2VsZWN0ZWQuCisgKiBUaGUgZGlzdHJpYnV0aW9uIHNwZWNpZmljYXRpb24gKDMyIGJ5dGVzKSBpcyBpbnRlcnByZXRlZCBhcyBhIDI1Ni1iaXQKKyAqIGRpc3RyaWJ1dGlvbiB2ZWN0b3IuIEFkamFjZW50IGJpdHMgY29ycmVzcG9uZCB0byBjb25zZWN1dGl2ZSBldmVuIG51bWJlcmVkCisgKiBub2RlSURzLiBUaGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgaW5kZXggb2YgYSBnaXZlbiBiaXQgdG8gdGhlIDE1LWJpdAorICogJ2Jhc2VfZGVzdF9ub2RlaWQnIGZpZWxkIG9mIHRoZSBoZWFkZXIgY29ycmVzcG9uZHMgdG8gdGhlCisgKiBkZXN0aW5hdGlvbiBub2RlSUQgYXNzb2NpYXRlZCB3aXRoIHRoYXQgc3BlY2lmaWVkIGJpdC4KKyAqLworc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgeworCXVuc2lnbmVkIGxvbmcgYml0c1tCSVRTX1RPX0xPTkdTKDI1NildOworfTsKKworLyoKKyAqIG1hc2sgb2YgY3B1J3Mgb24gYSBub2RlCisgKiAoZHVyaW5nIGluaXRpYWxpemF0aW9uIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCB1bnNpZ25lZCBsb25nIGhhcworICogIGVub3VnaCBiaXRzIGZvciBtYXguIGNwdSdzIHBlciBub2RlKQorICovCitzdHJ1Y3QgYmF1X2xvY2FsX2NwdW1hc2sgeworCXVuc2lnbmVkIGxvbmcgYml0czsKK307CisKKy8qCisgKiBQYXlsb2FkOiAxNiBieXRlcyAoMTI4IGJpdHMpIChieXRlcyAweDIwLTB4MmYgb2YgZGVzY3JpcHRvcikKKyAqIG9ubHkgMTIgYnl0ZXMgKDk2IGJpdHMpIG9mIHRoZSBwYXlsb2FkIGFyZWEgYXJlIHVzYWJsZS4KKyAqIEFuIGFkZGl0aW9uYWwgMyBieXRlcyAoYml0cyAyNzo0KSBvZiB0aGUgaGVhZGVyIGFkZHJlc3MgYXJlIGNhcnJpZWQKKyAqIHRvIHRoZSBuZXh0IGJ5dGVzIG9mIHRoZSBkZXN0aW5hdGlvbiBwYXlsb2FkIHF1ZXVlLgorICogQW5kIGFuIGFkZGl0aW9uYWwgMiBieXRlcyBvZiB0aGUgaGVhZGVyIFN1cHBsX0EgZmllbGQgYXJlIGFsc28KKyAqIGNhcnJpZWQgdG8gdGhlIGRlc3RpbmF0aW9uIHBheWxvYWQgcXVldWUuCisgKiBCdXQgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIFN1cHBsX0EgYmVjb21lcyBiaXRzIDEyNzoxMjAgKHRoZSAxNnRoIGJ5dGUpCisgKiBvZiB0aGUgZGVzdGluYXRpb24gcGF5bG9hZCBxdWV1ZSwgd2hpY2ggaXMgd3JpdHRlbiBieSB0aGUgaGFyZHdhcmUKKyAqIHdpdGggdGhlIHMvdyBhY2sgcmVzb3VyY2UgYml0IHZlY3Rvci4KKyAqIFsgZWZmZWN0aXZlIG1lc3NhZ2UgY29udGVudHMgKDE2IGJ5dGVzICgxMjggYml0cykgbWF4aW11bSksIG5vdCBjb3VudGluZworICogICB0aGUgcy93IGFjayBiaXQgdmVjdG9yICBdCisgKi8KKworLyoKKyAqIFRoZSBwYXlsb2FkIGlzIHNvZnR3YXJlLWRlZmluZWQgZm9yIElOVEQgdHJhbnNhY3Rpb25zCisgKi8KK3N0cnVjdCBiYXVfbXNnX3BheWxvYWQgeworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsJCS8qIHNpZ25pZmllcyBhIHBhZ2Ugb3IgYWxsIFRMQidzCisJCQkJCQlvZiB0aGUgY3B1ICovCisJLyogNjQgYml0cyAqLworCXVuc2lnbmVkIHNob3J0IHNlbmRpbmdfY3B1OwkvKiBmaWxsZWQgaW4gYnkgc2VuZGVyICovCisJLyogMTYgYml0cyAqLworCXVuc2lnbmVkIHNob3J0IGFja25vd2xlZGdlX2NvdW50Oy8qIGZpbGxlZCBpbiBieSBkZXN0aW5hdGlvbiAqLworCS8qIDE2IGJpdHMgKi8KKwl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQxOjMyOwkvKiBub3QgdXNhYmxlICovCit9OworCisKKy8qCisgKiBNZXNzYWdlIGhlYWRlcjogIDE2IGJ5dGVzICgxMjggYml0cykgKGJ5dGVzIDB4MzAtMHgzZiBvZiBkZXNjcmlwdG9yKQorICogc2VlIHRhYmxlIDQuMi4zLjAuMSBpbiBicm9hY2FzdF9hc3Npc3Qgc3BlYy4KKyAqLworc3RydWN0IGJhdV9tc2dfaGVhZGVyIHsKKwlpbnQgZGVzdF9zdWJub2RlaWQ6NjsJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA1OjAgKi8KKwlpbnQgYmFzZV9kZXN0X25vZGVpZDoxNTsgLyogbmFzaWQ+PjEgKHBub2RlKSBvZiBmaXJzdCBiaXQgaW4gbm9kZV9tYXAgKi8KKwkvKiBiaXRzIDIwOjYgKi8KKwlpbnQgY29tbWFuZDo4OwkJLyogbWVzc2FnZSB0eXBlICovCisJLyogYml0cyAyODoyMSAqLworCQkJCS8qIDB4Mzg6IFNOM25ldCBFbmRQb2ludCBNZXNzYWdlICovCisJaW50IHJzdmRfMTozOwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyAzMToyOSAqLworCQkJCS8qIGludCB3aWxsIGFsaWduIG9uIDMyIGJpdHMgKi8KKwlpbnQgcnN2ZF8yOjk7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDQwOjMyICovCisJCQkJLyogU3VwcGxfQSBpcyA1Ni00MSAqLworCWludCBwYXlsb2FkXzJhOjg7CS8qIGJlY29tZXMgYnl0ZSAxNiBvZiBtc2cgKi8KKwkvKiBiaXRzIDQ4OjQxICovCS8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwlpbnQgcGF5bG9hZF8yYjo4OwkvKiBiZWNvbWVzIGJ5dGUgMTcgb2YgbXNnICovCisJLyogYml0cyA1Njo0OSAqLwkvKiBub3QgY3VycmVudGx5IHVzaW5nICovCisJCQkJLyogQWRkcmVzcyBmaWVsZCAoOTY6NTcpIGlzIG5ldmVyIHVzZWQgYXMgYW4KKwkJCQkgICBhZGRyZXNzICh0aGVzZSBhcmUgYWRkcmVzcyBiaXRzIDQyOjMpICovCisJaW50IHJzdmRfMzoxOwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0IDU3ICovCisJCQkJLyogYWRkcmVzcyBiaXRzIDI3OjQgYXJlIHBheWxvYWQgKi8KKwkJCQkvKiB0aGVzZSAyNCBiaXRzIGJlY29tZSBieXRlcyAxMi0xNCBvZiBtc2cgKi8KKwlpbnQgcmVwbGllZF90bzoxOwkvKiBzZW50IGFzIDAgYnkgdGhlIHNvdXJjZSB0byBieXRlIDEyICovCisJLyogYml0IDU4ICovCisKKwlpbnQgcGF5bG9hZF8xYTo1OwkvKiBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKiBiaXRzIDYzOjU5ICovCisJaW50IHBheWxvYWRfMWI6ODsJLyogbm90IGN1cnJlbnRseSB1c2VkICovCisJLyogYml0cyA3MTo2NCAqLworCWludCBwYXlsb2FkXzFjOjg7CS8qIG5vdCBjdXJyZW50bHkgdXNlZCAqLworCS8qIGJpdHMgNzk6NzIgKi8KKwlpbnQgcGF5bG9hZF8xZDoyOwkvKiBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKiBiaXRzIDgxOjgwICovCisKKwlpbnQgcnN2ZF80Ojc7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDg4OjgyICovCisJaW50IHN3X2Fja19mbGFnOjE7CS8qIHNvZnR3YXJlIGFja25vd2xlZGdlIGZsYWcgKi8KKwkvKiBiaXQgODkgKi8KKwkJCQkvKiBJTlREIHRyYXNhY3Rpb25zIGF0IGRlc3RpbmF0aW9uIGFyZSB0bworCQkJCSAgIHdhaXQgZm9yIHNvZnR3YXJlIGFja25vd2xlZGdlICovCisJaW50IHJzdmRfNTo2OwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA5NTo5MCAqLworCWludCByc3ZkXzY6NTsJCS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdHMgMTAwOjk2ICovCisJaW50IGludF9ib3RoOjE7CQkvKiBpZiAxLCBpbnRlcnJ1cHQgYm90aCBzb2NrZXRzIG9uIHRoZSBibGFkZSAqLworCS8qIGJpdCAxMDEqLworCWludCBmYWlybmVzczozOwkJLyogdXN1YWxseSB6ZXJvICovCisJLyogYml0cyAxMDQ6MTAyICovCisJaW50IG11bHRpbGV2ZWw6MTsJLyogbXVsdGktbGV2ZWwgbXVsdGljYXN0IGZvcm1hdCAqLworCS8qIGJpdCAxMDUgKi8KKwkJCQkvKiAwIGZvciBUTEI6IGVuZHBvaW50IG11bHRpLXVuaWNhc3QgbWVzc2FnZXMgKi8KKwlpbnQgY2hhaW5pbmc6MTsJCS8qIG5leHQgZGVzY3JpcHRvciBpcyBwYXJ0IG9mIHRoaXMgYWN0aXZhdGlvbiovCisJLyogYml0IDEwNiAqLworCWludCByc3ZkXzc6MjE7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDEyNzoxMDcgKi8KK307CisKKy8qCisgKiBUaGUgYWN0aXZhdGlvbiBkZXNjcmlwdG9yOgorICogVGhlIGZvcm1hdCBvZiB0aGUgbWVzc2FnZSB0byBzZW5kLCBwbHVzIGFsbCBhY2NvbXBhbnlpbmcgY29udHJvbAorICogU2hvdWxkIGJlIDY0IGJ5dGVzCisgKi8KK3N0cnVjdCBiYXVfZGVzYyB7CisJc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgZGlzdHJpYnV0aW9uOworCS8qCisJICogbWVzc2FnZSB0ZW1wbGF0ZSwgY29uc2lzdGluZyBvZiBoZWFkZXIgYW5kIHBheWxvYWQ6CisJICovCisJc3RydWN0IGJhdV9tc2dfaGVhZGVyIGhlYWRlcjsKKwlzdHJ1Y3QgYmF1X21zZ19wYXlsb2FkIHBheWxvYWQ7Cit9OworLyoKKyAqICAgLXBheWxvYWQtLSAgICAtLS0tLS0tLS1oZWFkZXItLS0tLS0KKyAqICAgYnl0ZXMgMC0xMSAgICBiaXRzIDQxLTU2ICBiaXRzIDU4LTgxCisgKiAgICAgICBBICAgICAgICAgICBCICAoMikgICAgICBDICgzKQorICoKKyAqICAgICAgICAgICAgQS9CL0MgYXJlIG1vdmVkIHRvOgorICogICAgICAgQSAgICAgICAgICAgIEMgICAgICAgICAgQgorICogICBieXRlcyAwLTExICBieXRlcyAxMi0xNCAgYnl0ZXMgMTYtMTcgIChieXRlIDE1IGZpbGxlZCBpbiBieSBodyBhcyB2ZWN0b3IpCisgKiAgIC0tLS0tLS0tLS0tLXBheWxvYWQgcXVldWUtLS0tLS0tLS0tLQorICovCisKKy8qCisgKiBUaGUgcGF5bG9hZCBxdWV1ZSBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBhbiBhcnJheSBvZiB0aGVzZS4KKyAqIFdpdGggQkFVX01JU0NfQ09OVFJPTCBzZXQgZm9yIHNvZnR3YXJlIGFja25vd2xlZGdlIG1vZGUsIHRoZSBtZXNzYWdlcworICogYXJlIDMyIGJ5dGVzICgyIG1pY3JvcGFja2V0cykgKDI1NiBiaXRzKSBpbiBsZW5ndGgsIGJ1dCBjb250YWluIG9ubHkgMTcKKyAqIGJ5dGVzIG9mIHVzYWJsZSBkYXRhLCBpbmNsdWRpbmcgdGhlIHN3IGFjayB2ZWN0b3IgaW4gYnl0ZSAxNSAoYml0cyAxMjc6MTIwKQorICogKDEyIGJ5dGVzIGNvbWUgZnJvbSBiYXVfbXNnX3BheWxvYWQsIDMgZnJvbSBwYXlsb2FkXzEsIDIgZnJvbQorICogIHN3X2Fja192ZWN0b3IgYW5kIHBheWxvYWRfMikKKyAqICJFbmFibGluZyBTb2Z0d2FyZSBBY2tub3dsZWRnbWVudCBtb2RlIChzZWUgU2VjdGlvbiA0LjMuMyBTb2Z0d2FyZQorICogIEFja25vd2xlZGdlIFByb2Nlc3NpbmcpIGFsc28gc2VsZWN0cyAzMiBieXRlICgxNyBieXRlcyB1c2FibGUpIHBheWxvYWQKKyAqICBvcGVyYXRpb24uIgorICovCitzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgeworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsJCS8qIHNpZ25pZmllcyBhIHBhZ2Ugb3IgYWxsIFRMQidzCisJCQkJCQlvZiB0aGUgY3B1ICovCisJLyogNjQgYml0cywgYnl0ZXMgMC03ICovCisKKwl1bnNpZ25lZCBzaG9ydCBzZW5kaW5nX2NwdTsJLyogY3B1IHRoYXQgc2VudCB0aGUgbWVzc2FnZSAqLworCS8qIDE2IGJpdHMsIGJ5dGVzIDgtOSAqLworCisJdW5zaWduZWQgc2hvcnQgYWNrbm93bGVkZ2VfY291bnQ7IC8qIGZpbGxlZCBpbiBieSBkZXN0aW5hdGlvbiAqLworCS8qIDE2IGJpdHMsIGJ5dGVzIDEwLTExICovCisKKwl1bnNpZ25lZCBzaG9ydCByZXBsaWVkX3RvOjE7CS8qIHNlbnQgYXMgMCBieSB0aGUgc291cmNlICovCisJLyogMSBiaXQgKi8KKwl1bnNpZ25lZCBzaG9ydCB1bnVzZWQxOjc7ICAgICAgIC8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwkvKiA3IGJpdHM6IGJ5dGUgMTIpICovCisKKwl1bnNpZ25lZCBjaGFyIHVudXNlZDJbMl07CS8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwkvKiBieXRlcyAxMy0xNCAqLworCisJdW5zaWduZWQgY2hhciBzd19hY2tfdmVjdG9yOwkvKiBmaWxsZWQgaW4gYnkgdGhlIGhhcmR3YXJlICovCisJLyogYnl0ZSAxNSAoYml0cyAxMjc6MTIwKSAqLworCisJdW5zaWduZWQgY2hhciB1bnVzZWQ0WzNdOwkvKiBub3QgY3VycmVudGx5IHVzaW5nIGJ5dGVzIDE3LTE5ICovCisJLyogYnl0ZXMgMTctMTkgKi8KKworCWludCBudW1iZXJfb2ZfY3B1czsJCS8qIGZpbGxlZCBpbiBhdCBkZXN0aW5hdGlvbiAqLworCS8qIDMyIGJpdHMsIGJ5dGVzIDIwLTIzIChhbGlnbmVkKSAqLworCisJdW5zaWduZWQgY2hhciB1bnVzZWQ1WzhdOyAgICAgICAvKiBub3QgdXNpbmcgKi8KKwkvKiBieXRlcyAyNC0zMSAqLworfTsKKworLyoKKyAqIG9uZSBmb3IgZXZlcnkgc2xvdCBpbiB0aGUgZGVzdGluYXRpb24gcGF5bG9hZCBxdWV1ZQorICovCitzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgeworCXN0cnVjdCBiYXVfbG9jYWxfY3B1bWFzayBzZWVuX2J5OwkvKiBtYXAgb2YgY3B1J3MgKi8KK307CisKKy8qCisgKiBvbmUgZm9yIGV2ZXJ5IHNsb3QgaW4gdGhlIGRlc3RpbmF0aW9uIHNvZnR3YXJlIGFjayByZXNvdXJjZXMKKyAqLworc3RydWN0IGJhdV9zd19hY2tfc3RhdHVzIHsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZzsJLyogYXNzb2NpYXRlZCBtZXNzYWdlICovCisJaW50IHdhdGNoZXI7CQkJCS8qIGNwdSBtb25pdG9yaW5nLCBvciAtMSAqLworfTsKKworLyoKKyAqIG9uZSBvbiBldmVyeSBub2RlIGFuZCBwZXItY3B1OyB0byBsb2NhdGUgdGhlIHNvZnR3YXJlIHRhYmxlcworICovCitzdHJ1Y3QgYmF1X2NvbnRyb2wgeworCXN0cnVjdCBiYXVfZGVzYyAqZGVzY3JpcHRvcl9iYXNlOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqYmF1X21zZ19oZWFkOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqdmFfcXVldWVfZmlyc3Q7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICp2YV9xdWV1ZV9sYXN0OworCXN0cnVjdCBiYXVfbXNnX3N0YXR1cyAqbXNnX3N0YXR1c2VzOworCWludCAqd2F0Y2hpbmc7IC8qIHBvaW50ZXIgdG8gYXJyYXkgKi8KK307CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQgcGVyX2NwdSBmb3IgVVYgVExCIHNob290ZG93biBzdGF0aXN0aWNzLgorICovCitzdHJ1Y3QgcHRjX3N0YXRzIHsKKwl1bnNpZ25lZCBsb25nIHB0Y19pOwkvKiBudW1iZXIgb2YgSVBJLXN0eWxlIGZsdXNoZXMgKi8KKwl1bnNpZ25lZCBsb25nIHJlcXVlc3RvcjsJLyogbnVtYmVyIG9mIG5vZGVzIHRoaXMgY3B1IHNlbnQgdG8gKi8KKwl1bnNpZ25lZCBsb25nIHJlcXVlc3RlZTsJLyogdGltZXMgY3B1IHdhcyByZW1vdGVseSByZXF1ZXN0ZWQgKi8KKwl1bnNpZ25lZCBsb25nIGFsbHRsYjsJLyogdGltZXMgYWxsIHRsYidzIG9uIHRoaXMgY3B1IHdlcmUgZmx1c2hlZCAqLworCXVuc2lnbmVkIGxvbmcgb25ldGxiOwkvKiB0aW1lcyBqdXN0IG9uZSB0bGIgb24gdGhpcyBjcHUgd2FzIGZsdXNoZWQgKi8KKwl1bnNpZ25lZCBsb25nIHNfcmV0cnk7CS8qIHJldHJpZXMgb24gc291cmNlIHNpZGUgdGltZW91dHMgKi8KKwl1bnNpZ25lZCBsb25nIGRfcmV0cnk7CS8qIHJldHJpZXMgb24gZGVzdGluYXRpb24gc2lkZSB0aW1lb3V0cyAqLworCXVuc2lnbmVkIGxvbmcgc2ZsdXNoOwkvKiBjeWNsZXMgc3BlbnQgaW4gdXZfZmx1c2hfdGxiX290aGVycyAqLworCXVuc2lnbmVkIGxvbmcgZGZsdXNoOwkvKiBjeWNsZXMgc3BlbnQgb24gZGVzdGluYXRpb24gc2lkZSAqLworCXVuc2lnbmVkIGxvbmcgcmV0cmllc29rOyAvKiBzdWNjZXNzZXMgb24gcmV0cmllcyAqLworCXVuc2lnbmVkIGxvbmcgbm9tc2c7CS8qIGludGVycnVwdHMgd2l0aCBubyBtZXNzYWdlICovCisJdW5zaWduZWQgbG9uZyBtdWx0bXNnOwkvKiBpbnRlcnJ1cHRzIHdpdGggbXVsdGlwbGUgbWVzc2FnZXMgKi8KKwl1bnNpZ25lZCBsb25nIG50YXJnZXRlZDsvKiBub2RlcyB0YXJnZXRlZCAqLworfTsKKworc3RhdGljIGlubGluZSBpbnQgYmF1X25vZGVfaXNzZXQoaW50IG5vZGUsIHN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrICpkc3RwKQoreworCXJldHVybiBjb25zdGFudF90ZXN0X2JpdChub2RlLCAmZHN0cC0+Yml0c1swXSk7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgYmF1X25vZGVfc2V0KGludCBub2RlLCBzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZHN0cCkKK3sKKwlfX3NldF9iaXQobm9kZSwgJmRzdHAtPmJpdHNbMF0pOworfQorc3RhdGljIGlubGluZSB2b2lkIGJhdV9ub2Rlc19jbGVhcihzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZHN0cCwgaW50IG5iaXRzKQoreworCWJpdG1hcF96ZXJvKCZkc3RwLT5iaXRzWzBdLCBuYml0cyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBiYXVfY3B1Yml0c19jbGVhcihzdHJ1Y3QgYmF1X2xvY2FsX2NwdW1hc2sgKmRzdHAsIGludCBuYml0cykKK3sKKwliaXRtYXBfemVybygmZHN0cC0+Yml0cywgbmJpdHMpOworfQorCisjZGVmaW5lIGNwdWJpdF9pc3NldChjcHUsIGJhdV9sb2NhbF9jcHVtYXNrKSBcCisJdGVzdF9iaXQoKGNwdSksIChiYXVfbG9jYWxfY3B1bWFzaykuYml0cykKKworZXh0ZXJuIGludCB1dl9mbHVzaF90bGJfb3RoZXJzKGNwdW1hc2tfdCAqLCBzdHJ1Y3QgbW1fc3RydWN0ICosIHVuc2lnbmVkIGxvbmcpOworZXh0ZXJuIHZvaWQgdXZfYmF1X21lc3NhZ2VfaW50cjEodm9pZCk7CitleHRlcm4gdm9pZCB1dl9iYXVfdGltZW91dF9pbnRyMSh2b2lkKTsKKworI2VuZGlmIC8qIF9fQVNNX1g4Nl9VVl9CQVVfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3V2L3V2X2h1Yi5oIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X2h1Yi5oCmluZGV4IDI2YjkyNDAuLmE0ZWYyNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9odWIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdXYvdXZfaHViLmgKQEAgLTUsNyArNSw3IEBACiAgKgogICogU0dJIFVWIGFyY2hpdGVjdHVyYWwgZGVmaW5pdGlvbnMKICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKICNpZm5kZWYgX19BU01fWDg2X1VWX0hVQl9IX18KQEAgLTIwLDI2ICsyMCw0OSBAQAogLyoKICAqIEFkZHJlc3NpbmcgVGVybWlub2xvZ3kKICAqCi0gKiAJTkFTSUQgLSBuZXR3b3JrIElEIG9mIGEgcm91dGVyLCBNYnJpY2sgb3IgQ2JyaWNrLiBOYXNpZCB2YWx1ZXMgb2YKLSAqIAkJcm91dGVycyBhbHdheXMgaGF2ZSBsb3cgYml0IG9mIDEsIEMvTUJyaWNrcyBoYXZlIGxvdyBiaXQKLSAqIAkJZXF1YWwgdG8gMC4gTW9zdCBhZGRyZXNzaW5nIG1hY3JvcyB0aGF0IHRhcmdldCBVViBodWIgY2hpcHMKLSAqIAkJcmlnaHQgc2hpZnQgdGhlIE5BU0lEIGJ5IDEgdG8gZXhjbHVkZSB0aGUgYWx3YXlzLXplcm8gYml0LgorICoJTSAgICAgICAtIFRoZSBsb3cgTSBiaXRzIG9mIGEgcGh5c2ljYWwgYWRkcmVzcyByZXByZXNlbnQgdGhlIG9mZnNldAorICoJCSAgaW50byB0aGUgYmxhZGUgbG9jYWwgbWVtb3J5LiBSQU0gbWVtb3J5IG9uIGEgYmxhZGUgaXMgcGh5c2ljYWxseQorICoJCSAgY29udGlndW91cyAoYWx0aG91Z2ggdmFyaW91cyBJTyBzcGFjZXMgbWF5IHB1bmNoIGhvbGVzIGluCisgKgkJICBpdCkuLgogICoKLSAqCVNOQVNJRCAtIE5BU0lEIHJpZ2h0IHNoaWZ0ZWQgYnkgMSBiaXQuCisgKiAJTgktIE51bWJlciBvZiBiaXRzIGluIHRoZSBub2RlIHBvcnRpb24gb2YgYSBzb2NrZXQgcGh5c2ljYWwKKyAqIAkJICBhZGRyZXNzLgorICoKKyAqIAlOQVNJRCAgIC0gbmV0d29yayBJRCBvZiBhIHJvdXRlciwgTWJyaWNrIG9yIENicmljay4gTmFzaWQgdmFsdWVzIG9mCisgKiAJIAkgIHJvdXRlcnMgYWx3YXlzIGhhdmUgbG93IGJpdCBvZiAxLCBDL01Ccmlja3MgaGF2ZSBsb3cgYml0CisgKiAJCSAgZXF1YWwgdG8gMC4gTW9zdCBhZGRyZXNzaW5nIG1hY3JvcyB0aGF0IHRhcmdldCBVViBodWIgY2hpcHMKKyAqIAkJICByaWdodCBzaGlmdCB0aGUgTkFTSUQgYnkgMSB0byBleGNsdWRlIHRoZSBhbHdheXMtemVybyBiaXQuCisgKiAJCSAgTkFTSURzIGNvbnRhaW4gdXAgdG8gMTUgYml0cy4KKyAqCisgKglHTk9ERSAgIC0gTkFTSUQgcmlnaHQgc2hpZnRlZCBieSAxIGJpdC4gTW9zdCBtbXJzIGNvbnRhaW4gZ25vZGVzIGluc3RlYWQKKyAqCQkgIG9mIG5hc2lkcy4KKyAqCisgKiAJUE5PREUgICAtIHRoZSBsb3cgTiBiaXRzIG9mIHRoZSBHTk9ERS4gVGhlIFBOT0RFIGlzIHRoZSBtb3N0IHVzZWZ1bCB2YXJpYW50CisgKiAJCSAgb2YgdGhlIG5hc2lkIGZvciBzb2NrZXQgdXNhZ2UuCisgKgorICoKKyAqICBOdW1hTGluayBHbG9iYWwgUGh5c2ljYWwgQWRkcmVzcyBGb3JtYXQ6CisgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICB8MDAuLjAwMHwgICAgICBHTk9ERSAgICAgICAgICAgICB8ICAgICAgTm9kZU9mZnNldCAgICAgfAorICogICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgICB8PC0tLS0tLS01MyAtIE0gYml0cyAtLS0+fDwtLS0tLS0tLU0gYml0cyAtLS0tLT4KKyAqCisgKglNIC0gbnVtYmVyIG9mIG5vZGUgb2Zmc2V0IGJpdHMgKDM1IC4uIDQwKQogICoKICAqCiAgKiAgTWVtb3J5L1VWLUhVQiBQcm9jZXNzb3IgU29ja2V0IEFkZHJlc3MgRm9ybWF0OgotICogICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICogIHwwMC4uMDAwMHwgICAgU05BU0lEICAgICB8ICAgICAgTm9kZU9mZnNldCAgICAgfAotICogICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICogICAgICAgICAgIDwtLS0gTiBiaXRzIC0tLT58PC0tLS0tLS0tTSBiaXRzIC0tLS0tPgorICogICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgfDAwLi4wMDAwMDAwMDAwMDB8ICAgUE5PREUgICAgICAgfCAgICAgIE5vZGVPZmZzZXQgICAgIHwKKyAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgICAgICAgICAgICAgPC0tLSBOIGJpdHMgLS0tPnw8LS0tLS0tLS1NIGJpdHMgLS0tLS0+CiAgKgotICoJTSBudW1iZXIgb2Ygbm9kZSBvZmZzZXQgYml0cyAoMzUgLi4gNDApCi0gKglOIG51bWJlciBvZiBTTkFTSUQgYml0cyAoMCAuLiAxMCkKKyAqCU0gLSBudW1iZXIgb2Ygbm9kZSBvZmZzZXQgYml0cyAoMzUgLi4gNDApCisgKglOIC0gbnVtYmVyIG9mIFBOT0RFIGJpdHMgKDAgLi4gMTApCiAgKgogICoJCU5vdGU6IE0gKyBOIGNhbm5vdCBjdXJyZW50bHkgZXhjZWVkIDQ0ICh4ODZfNjQpIG9yIDQ2IChJQTY0KS4KICAqCQlUaGUgYWN0dWFsIHZhbHVlcyBhcmUgY29uZmlndXJhdGlvbiBkZXBlbmRlbnQgYW5kIGFyZSBzZXQgYXQKLSAqCQlib290IHRpbWUKKyAqCQlib290IHRpbWUuIE0gJiBOIHZhbHVlcyBhcmUgc2V0IGJ5IHRoZSBoYXJkd2FyZS9CSU9TIGF0IGJvb3QuCisgKgogICoKICAqIEFQSUNJRCBmb3JtYXQKICAqIAlOT1RFISEhISEhIFRoaXMgaXMgdGhlIGN1cnJlbnQgZm9ybWF0IG9mIHRoZSBBUElDSUQuIEhvd2V2ZXIsIGNvZGUKQEAgLTQ4LDE0ICs3MSwxNCBAQAogICoKICAqIAkJMTExMTExMDAwMDAwMDAwMAogICogCQk1NDMyMTA5ODc2NTQzMjEwCi0gKgkJbm5ubm5ubm5ubmxjMGNjaAorICoJCXBwcHBwcHBwcHBsYzBjY2gKICAqCQlzc3Nzc3Nzc3NzcwogICoKLSAqCQkJbiAgPSBzbmFzaWQgYml0cworICoJCQlwICA9IHBub2RlIGJpdHMKICAqCQkJbCA9ICBzb2NrZXQgbnVtYmVyIG9uIGJvYXJkCiAgKgkJCWMgID0gY29yZQogICoJCQloICA9IGh5cGVydGhyZWFkCi0gKgkJCXMgID0gYml0cyB0aGF0IGFyZSBpbiB0aGUgc29ja2V0IENTUgorICoJCQlzICA9IGJpdHMgdGhhdCBhcmUgaW4gdGhlIFNPQ0tFVF9JRCBDU1IKICAqCiAgKglOb3RlOiBQcm9jZXNzb3Igb25seSBzdXBwb3J0cyAxMiBiaXRzIGluIHRoZSBBUElDSUQgcmVnaXN0ZXIuIFRoZSBBQ1BJCiAgKgkgICAgICB0YWJsZXMgaG9sZCBhbGwgMTYgYml0cy4gU29mdHdhcmUgbmVlZHMgdG8gYmUgYXdhcmUgb2YgdGhpcy4KQEAgLTc0LDcgKzk3LDcgQEAKICAqIFRoaXMgdmFsdWUgaXMgYWxzbyB0aGUgdmFsdWUgb2YgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5vbi1yb3V0ZXIgTkFTSURzCiAgKiBpbiB0aGUgbnVtYWxpbmsgZmFicmljLgogICoKLSAqIE5PVEU6IGEgYnJpY2sgbWF5IGJlIDEgb3IgMiBPUyBub2Rlcy4gRG9uJ3QgZ2V0IHRoZXNlIGNvbmZ1c2VkLgorICogTk9URTogYSBicmljayBtYXkgY29udGFpbiAxIG9yIDIgT1Mgbm9kZXMuIERvbid0IGdldCB0aGVzZSBjb25mdXNlZC4KICAqLwogI2RlZmluZSBVVl9NQVhfTlVNQUxJTktfQkxBREVTCTE2Mzg0CiAKQEAgLTk2LDggKzExOSwxMiBAQAogICovCiBzdHJ1Y3QgdXZfaHViX2luZm9fcyB7CiAJdW5zaWduZWQgbG9uZwlnbG9iYWxfbW1yX2Jhc2U7Ci0JdW5zaWduZWQgc2hvcnQJbG9jYWxfbmFzaWQ7Ci0JdW5zaWduZWQgc2hvcnQJZ25vZGVfdXBwZXI7CisJdW5zaWduZWQgbG9uZwlncGFfbWFzazsKKwl1bnNpZ25lZCBsb25nCWdub2RlX3VwcGVyOworCXVuc2lnbmVkIGxvbmcJbG93bWVtX3JlbWFwX3RvcDsKKwl1bnNpZ25lZCBsb25nCWxvd21lbV9yZW1hcF9iYXNlOworCXVuc2lnbmVkIHNob3J0CXBub2RlOworCXVuc2lnbmVkIHNob3J0CXBub2RlX21hc2s7CiAJdW5zaWduZWQgc2hvcnQJY29oZXJlbmN5X2RvbWFpbl9udW1iZXI7CiAJdW5zaWduZWQgc2hvcnQJbnVtYV9ibGFkZV9pZDsKIAl1bnNpZ25lZCBjaGFyCWJsYWRlX3Byb2Nlc3Nvcl9pZDsKQEAgLTExMiw4MyArMTM5LDEyNiBAQAogICogTG9jYWwgJiBHbG9iYWwgTU1SIHNwYWNlIG1hY3Jvcy4KICAqIAlOb3RlOiBtYWNyb3MgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgT05MWSBieSBpbmxpbmUgZnVuY3Rpb25zCiAgKiAJaW4gdGhpcyBmaWxlIC0gbm90IGJ5IG90aGVyIGtlcm5lbCBjb2RlLgorICogCQluIC0gIE5BU0lEIChmdWxsIDE1LWJpdCBnbG9iYWwgbmFzaWQpCisgKiAJCWcgLSAgR05PREUgKGZ1bGwgMTUtYml0IGdsb2JhbCBuYXNpZCwgcmlnaHQgc2hpZnRlZCAxKQorICogCQlwIC0gIFBOT0RFIChsb2NhbCBwYXJ0IG9mIG5zaWRzLCByaWdodCBzaGlmdGVkIDEpCiAgKi8KLSNkZWZpbmUgVVZfU05BU0lEKG4pCQkJKChuKSA+PiAxKQotI2RlZmluZSBVVl9OQVNJRChuKQkJCSgobikgPDwgMSkKKyNkZWZpbmUgVVZfTkFTSURfVE9fUE5PREUobikJCSgoKG4pID4+IDEpICYgdXZfaHViX2luZm8tPnBub2RlX21hc2spCisjZGVmaW5lIFVWX1BOT0RFX1RPX05BU0lEKHApCQkoKChwKSA8PCAxKSB8IHV2X2h1Yl9pbmZvLT5nbm9kZV91cHBlcikKIAogI2RlZmluZSBVVl9MT0NBTF9NTVJfQkFTRQkJMHhmNDAwMDAwMFVMCiAjZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9CQVNFCQkweGY4MDAwMDAwVUwKICNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X0JBU0UJCSh1dl9odWJfaW5mby0+Z2xvYmFsX21tcl9iYXNlKQorI2RlZmluZSBVVl9MT0NBTF9NTVJfU0laRQkJKDY0VUwgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX1NJWkUJCSg2NFVMICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9NQVNLCTB4M2ZmCi0jZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9TTkFTSURfU0hJRlQJMTUKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X1NOQVNJRF9TSElGVAkyNgorI2RlZmluZSBVVl9HTE9CQUxfTU1SMzJfUE5PREVfU0hJRlQJMTUKKyNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X1BOT0RFX1NISUZUCTI2CiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX05BU0lEX0JJVFMobikJCQkJCVwKLQkJKCgoVVZfU05BU0lEKG4pICYgVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9NQVNLKSkgPDwJXAotCQkoVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9TSElGVCkpCisjZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9CSVRTKHApCSgocCkgPDwgKFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9TSElGVCkpCiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X05BU0lEX0JJVFMobikJCQkJCVwKLQkoKHVuc2lnbmVkIGxvbmcpVVZfU05BU0lEKG4pIDw8IFVWX0dMT0JBTF9NTVI2NF9TTkFTSURfU0hJRlQpCisjZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9QTk9ERV9CSVRTKHApCQkJCQlcCisJKCh1bnNpZ25lZCBsb25nKShwKSA8PCBVVl9HTE9CQUxfTU1SNjRfUE5PREVfU0hJRlQpCiAKLSNkZWZpbmUgVVZfQVBJQ19OQVNJRF9TSElGVAk2CisjZGVmaW5lIFVWX0FQSUNfUE5PREVfU0hJRlQJNgogCiAvKgotICogRXh0cmFjdCBhIE5BU0lEIGZyb20gYW4gQVBJQ0lEIChmdWxsIGFwaWNpZCwgbm90IHByb2Nlc3NvciBzdWJzZXQpCisgKiBNYWNyb3MgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiBrZXJuZWwgdmlydHVhbCBhZGRyZXNzZXMsIHNvY2tldCBsb2NhbCBwaHlzaWNhbAorICogYWRkcmVzc2VzLCBhbmQgVVYgZ2xvYmFsIHBoeXNpY2FsIGFkZHJlc3Nlcy4KKyAqIAlOb3RlOiB1c2UgdGhlIHN0YW5kYXJkIF9fcGEoKSAmIF9fdmEoKSBtYWNyb3MgZm9yIGNvbnZlcnRpbmcKKyAqIAkgICAgICBiZXR3ZWVuIHNvY2tldCB2aXJ0dWFsIGFuZCBzb2NrZXQgcGh5c2ljYWwgYWRkcmVzc2VzLgogICovCi1zdGF0aWMgaW5saW5lIGludCB1dl9hcGljaWRfdG9fbmFzaWQoaW50IGFwaWNpZCkKKworLyogc29ja2V0IHBoeXMgUkFNIC0tPiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X3NvY19waHlzX3JhbV90b19ncGEodW5zaWduZWQgbG9uZyBwYWRkcikKIHsKLQlyZXR1cm4gKFVWX05BU0lEKGFwaWNpZCA+PiBVVl9BUElDX05BU0lEX1NISUZUKSk7CisJaWYgKHBhZGRyIDwgdXZfaHViX2luZm8tPmxvd21lbV9yZW1hcF90b3ApCisJCXBhZGRyICs9IHV2X2h1Yl9pbmZvLT5sb3dtZW1fcmVtYXBfYmFzZTsKKwlyZXR1cm4gcGFkZHIgfCB1dl9odWJfaW5mby0+Z25vZGVfdXBwZXI7Cit9CisKKworLyogc29ja2V0IHZpcnR1YWwgLS0+IFVWIGdsb2JhbCBwaHlzaWNhbCBhZGRyZXNzICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfZ3BhKHZvaWQgKnYpCit7CisJcmV0dXJuIF9fcGEodikgfCB1dl9odWJfaW5mby0+Z25vZGVfdXBwZXI7Cit9CisKKy8qIHNvY2tldCB2aXJ0dWFsIC0tPiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAqLworc3RhdGljIGlubGluZSB2b2lkICp1dl92Z3BhKHZvaWQgKnYpCit7CisJcmV0dXJuICh2b2lkICopdXZfZ3BhKHYpOworfQorCisvKiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAtLT4gc29ja2V0IHZpcnR1YWwgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqdXZfdmEodW5zaWduZWQgbG9uZyBncGEpCit7CisJcmV0dXJuIF9fdmEoZ3BhICYgdXZfaHViX2luZm8tPmdwYV9tYXNrKTsKK30KKworLyogcG5vZGUsIG9mZnNldCAtLT4gc29ja2V0IHZpcnR1YWwgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqdXZfcG5vZGVfb2Zmc2V0X3RvX3ZhZGRyKGludCBwbm9kZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJcmV0dXJuIF9fdmEoKCh1bnNpZ25lZCBsb25nKXBub2RlIDw8IHV2X2h1Yl9pbmZvLT5tX3ZhbCkgfCBvZmZzZXQpOworfQorCisKKy8qCisgKiBFeHRyYWN0IGEgUE5PREUgZnJvbSBhbiBBUElDSUQgKGZ1bGwgYXBpY2lkLCBub3QgcHJvY2Vzc29yIHN1YnNldCkKKyAqLworc3RhdGljIGlubGluZSBpbnQgdXZfYXBpY2lkX3RvX3Bub2RlKGludCBhcGljaWQpCit7CisJcmV0dXJuIChhcGljaWQgPj4gVVZfQVBJQ19QTk9ERV9TSElGVCk7CiB9CiAKIC8qCiAgKiBBY2Nlc3MgZ2xvYmFsIE1NUnMgdXNpbmcgdGhlIGxvdyBtZW1vcnkgTU1SMzIgc3BhY2UuIFRoaXMgcmVnaW9uIHN1cHBvcnRzCiAgKiBmYXN0ZXIgTU1SIGFjY2VzcyBidXQgbm90IGFsbCBNTVJzIGFyZSBhY2Nlc3NpYmxlIGluIHRoaXMgc3BhY2UuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqdXZfZ2xvYmFsX21tcjMyX2FkZHJlc3MoaW50IG5hc2lkLAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhpbnQgcG5vZGUsCiAJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7CiAJcmV0dXJuIF9fdmEoVVZfR0xPQkFMX01NUjMyX0JBU0UgfAotCQkgICAgICAgVVZfR0xPQkFMX01NUjMyX05BU0lEX0JJVFMobmFzaWQpIHwgb2Zmc2V0KTsKKwkJICAgICAgIFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9CSVRTKHBub2RlKSB8IG9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yMzIoaW50IG5hc2lkLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKK3N0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yMzIoaW50IHBub2RlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKIAkJCQkgdW5zaWduZWQgbG9uZyB2YWwpCiB7Ci0JKnV2X2dsb2JhbF9tbXIzMl9hZGRyZXNzKG5hc2lkLCBvZmZzZXQpID0gdmFsOworCSp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhwbm9kZSwgb2Zmc2V0KSA9IHZhbDsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X3JlYWRfZ2xvYmFsX21tcjMyKGludCBuYXNpZCwKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9yZWFkX2dsb2JhbF9tbXIzMihpbnQgcG5vZGUsCiAJCQkJCQkgdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7Ci0JcmV0dXJuICp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhuYXNpZCwgb2Zmc2V0KTsKKwlyZXR1cm4gKnV2X2dsb2JhbF9tbXIzMl9hZGRyZXNzKHBub2RlLCBvZmZzZXQpOwogfQogCiAvKgogICogQWNjZXNzIEdsb2JhbCBNTVIgc3BhY2UgdXNpbmcgdGhlIE1NUiBzcGFjZSBsb2NhdGVkIGF0IHRoZSB0b3Agb2YgcGh5c2ljYWwKICAqIG1lbW9yeS4KICAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhpbnQgbmFzaWQsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgKnV2X2dsb2JhbF9tbXI2NF9hZGRyZXNzKGludCBwbm9kZSwKIAkJCQl1bnNpZ25lZCBsb25nIG9mZnNldCkKIHsKIAlyZXR1cm4gX192YShVVl9HTE9CQUxfTU1SNjRfQkFTRSB8Ci0JCSAgICAgICBVVl9HTE9CQUxfTU1SNjRfTkFTSURfQklUUyhuYXNpZCkgfCBvZmZzZXQpOworCQkgICAgVVZfR0xPQkFMX01NUjY0X1BOT0RFX0JJVFMocG5vZGUpIHwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHV2X3dyaXRlX2dsb2JhbF9tbXI2NChpbnQgbmFzaWQsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorc3RhdGljIGlubGluZSB2b2lkIHV2X3dyaXRlX2dsb2JhbF9tbXI2NChpbnQgcG5vZGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogCQkJCXVuc2lnbmVkIGxvbmcgdmFsKQogewotCSp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhuYXNpZCwgb2Zmc2V0KSA9IHZhbDsKKwkqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MocG5vZGUsIG9mZnNldCkgPSB2YWw7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9yZWFkX2dsb2JhbF9tbXI2NChpbnQgbmFzaWQsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfcmVhZF9nbG9iYWxfbW1yNjQoaW50IHBub2RlLAogCQkJCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogewotCXJldHVybiAqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MobmFzaWQsIG9mZnNldCk7CisJcmV0dXJuICp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhwbm9kZSwgb2Zmc2V0KTsKIH0KIAogLyoKLSAqIEFjY2VzcyBub2RlIGxvY2FsIE1NUnMuIEZhc3RlciB0aGFuIHVzaW5nIGdsb2JhbCBzcGFjZSBidXQgb25seSBsb2NhbCBNTVJzCisgKiBBY2Nlc3MgaHViIGxvY2FsIE1NUnMuIEZhc3RlciB0aGFuIHVzaW5nIGdsb2JhbCBzcGFjZSBidXQgb25seSBsb2NhbCBNTVJzCiAgKiBhcmUgYWNjZXNzaWJsZS4KICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9sb2NhbF9tbXJfYWRkcmVzcyh1bnNpZ25lZCBsb25nIG9mZnNldCkKQEAgLTIwNywxNSArMjc3LDE1IEBACiB9CiAKIC8qCi0gKiBTdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgY29udmVydGluZyBiZXR3ZWVuIGNwdSwgbm9kZSwgYW5kIGJsYWRlCisgKiBTdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgY29udmVydGluZyBiZXR3ZWVuIGNwdSwgbm9kZSwgcG5vZGUsIGFuZCBibGFkZQogICogbnVtYmVycy4KICAqLwogc3RydWN0IHV2X2JsYWRlX2luZm8gewotCXVuc2lnbmVkIHNob3J0CW5yX3Bvc2libGVfY3B1czsKKwl1bnNpZ25lZCBzaG9ydAlucl9wb3NzaWJsZV9jcHVzOwogCXVuc2lnbmVkIHNob3J0CW5yX29ubGluZV9jcHVzOwotCXVuc2lnbmVkIHNob3J0CW5hc2lkOworCXVuc2lnbmVkIHNob3J0CXBub2RlOwogfTsKLXN0cnVjdCB1dl9ibGFkZV9pbmZvICp1dl9ibGFkZV9pbmZvOworZXh0ZXJuIHN0cnVjdCB1dl9ibGFkZV9pbmZvICp1dl9ibGFkZV9pbmZvOwogZXh0ZXJuIHNob3J0ICp1dl9ub2RlX3RvX2JsYWRlOwogZXh0ZXJuIHNob3J0ICp1dl9jcHVfdG9fYmxhZGU7CiBleHRlcm4gc2hvcnQgdXZfcG9zc2libGVfYmxhZGVzOwpAQCAtMjQ0LDE2ICszMTQsMTYgQEAKIAlyZXR1cm4gdXZfbm9kZV90b19ibGFkZVtuaWRdOwogfQogCi0vKiBDb252ZXJ0IGEgYmxhZGUgaWQgdG8gdGhlIE5BU0lEIG9mIHRoZSBibGFkZSAqLwotc3RhdGljIGlubGluZSBpbnQgdXZfYmxhZGVfdG9fbmFzaWQoaW50IGJpZCkKKy8qIENvbnZlcnQgYSBibGFkZSBpZCB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlICovCitzdGF0aWMgaW5saW5lIGludCB1dl9ibGFkZV90b19wbm9kZShpbnQgYmlkKQogewotCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubmFzaWQ7CisJcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5wbm9kZTsKIH0KIAogLyogRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY3B1cyBvbiBhIGJsYWRlICovCiBzdGF0aWMgaW5saW5lIGludCB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGludCBiaWQpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5ucl9wb3NpYmxlX2NwdXM7CisJcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5ucl9wb3NzaWJsZV9jcHVzOwogfQogCiAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBvbmxpbmUgY3B1cyBvbiBhIGJsYWRlICovCkBAIC0yNjIsMTYgKzMzMiwxNiBAQAogCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubnJfb25saW5lX2NwdXM7CiB9CiAKLS8qIENvbnZlcnQgYSBjcHUgaWQgdG8gdGhlIE5BU0lEIG9mIHRoZSBibGFkZSBjb250YWluaW5nIHRoZSBjcHUgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHV2X2NwdV90b19uYXNpZChpbnQgY3B1KQorLyogQ29udmVydCBhIGNwdSBpZCB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlIGNvbnRhaW5pbmcgdGhlIGNwdSAqLworc3RhdGljIGlubGluZSBpbnQgdXZfY3B1X3RvX3Bub2RlKGludCBjcHUpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bdXZfY3B1X3RvX2JsYWRlX2lkKGNwdSldLm5hc2lkOworCXJldHVybiB1dl9ibGFkZV9pbmZvW3V2X2NwdV90b19ibGFkZV9pZChjcHUpXS5wbm9kZTsKIH0KIAotLyogQ29udmVydCBhIG5vZGUgbnVtYmVyIHRvIHRoZSBOQVNJRCBvZiB0aGUgYmxhZGUgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHV2X25vZGVfdG9fbmFzaWQoaW50IG5pZCkKKy8qIENvbnZlcnQgYSBsaW51eCBub2RlIG51bWJlciB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlICovCitzdGF0aWMgaW5saW5lIGludCB1dl9ub2RlX3RvX3Bub2RlKGludCBuaWQpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bdXZfbm9kZV90b19ibGFkZV9pZChuaWQpXS5uYXNpZDsKKwlyZXR1cm4gdXZfYmxhZGVfaW5mb1t1dl9ub2RlX3RvX2JsYWRlX2lkKG5pZCldLnBub2RlOwogfQogCiAvKiBNYXhpbXVtIHBvc3NpYmxlIG51bWJlciBvZiBibGFkZXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9tbXJzLmggYi9pbmNsdWRlL2FzbS14ODYvdXYvdXZfbW1ycy5oCmluZGV4IDNiNjlmZTYuLjE1MWZkN2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9tbXJzLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X21tcnMuaApAQCAtMTEsMTcgKzExLDI5MCBAQAogI2lmbmRlZiBfX0FTTV9YODZfVVZfTU1SU19fCiAjZGVmaW5lIF9fQVNNX1g4Nl9VVl9NTVJTX18KIAotLyoKLSAqICAgICAgIEFVVE8gR0VORVJBVEVEIC0gRG8gbm90IGVkaXQKLSAqLworI2RlZmluZSBVVl9NTVJfRU5BQkxFCQkoMVVMIDw8IDYzKQogCi0gI2RlZmluZSBVVl9NTVJfRU5BQkxFCQkoMVVMIDw8IDYzKQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfQkFVX0RBVEFfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHIDB4NjE2ODBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHXzMyIDB4MDQzOAorCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0RFU1RNT0RFX1NIRlQgMTEKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19TVEFUVVNfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1RfU0hGVCAxNQorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX01fTUFTSyAweDAwMDAwMDAwMDAwMTAwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfYmF1X2RhdGFfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2JhdV9kYXRhX2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9FVkVOVF9PQ0NVUlJFRDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDAgMHg3MDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfMzIgMHgwMDVlOAorCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSENFUlJfU0hGVCAwCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDFVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMF9IQ0VSUl9TSEZUIDEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDJVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMV9IQ0VSUl9TSEZUIDIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDRVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0hDRVJSX1NIRlQgMworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA4VUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9IQ0VSUl9TSEZUIDQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAxMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fSENFUlJfU0hGVCA1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMjBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0hDRVJSX1NIRlQgNgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDQwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9BT0VSUjBfU0hGVCA3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMDgwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIwX1NIRlQgOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDAxMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMV9BT0VSUjBfU0hGVCA5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IxX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDIwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEhfQU9FUlIwX1NIRlQgMTAKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX0FPRVJSMF9TSEZUIDExCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9YTl9BT0VSUjBfU0hGVCAxMgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU0lfQU9FUlIwX1NIRlQgMTMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0FPRVJSMV9TSEZUIDE0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDA0MDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIxX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfQU9FUlIxX1NIRlQgMTYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9BT0VSUjFfU0hGVCAxNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAyMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfQU9FUlIxX1NIRlQgMTgKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwNDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0FPRVJSMV9TSEZUIDE5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDgwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9BT0VSUjFfU0hGVCAyMAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDEwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfVlBJX0lOVF9TSEZUIDIxCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfVlBJX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDIwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU1lTVEVNX1NIVVRET1dOX0lOVF9TSEZUIDIyCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU1lTVEVNX1NIVVRET1dOX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDQwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8wX1NIRlQgMjMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzBfTUFTSyAweDAwMDAwMDAwMDA4MDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMV9TSEZUIDI0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8xX01BU0sgMHgwMDAwMDAwMDAxMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzJfU0hGVCAyNQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMl9NQVNLIDB4MDAwMDAwMDAwMjAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8zX1NIRlQgMjYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzNfTUFTSyAweDAwMDAwMDAwMDQwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNF9TSEZUIDI3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF80X01BU0sgMHgwMDAwMDAwMDA4MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzVfU0hGVCAyOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF82X1NIRlQgMjkKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzZfTUFTSyAweDAwMDAwMDAwMjAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfN19TSEZUIDMwCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF83X01BU0sgMHgwMDAwMDAwMDQwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzhfU0hGVCAzMQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfOF9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF85X1NIRlQgMzIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzlfTUFTSyAweDAwMDAwMDAxMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTBfU0hGVCAzMworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTBfTUFTSyAweDAwMDAwMDAyMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTFfU0hGVCAzNAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTFfTUFTSyAweDAwMDAwMDA0MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTJfU0hGVCAzNQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTJfTUFTSyAweDAwMDAwMDA4MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTNfU0hGVCAzNgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTNfTUFTSyAweDAwMDAwMDEwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTRfU0hGVCAzNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTRfTUFTSyAweDAwMDAwMDIwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTVfU0hGVCAzOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTVfTUFTSyAweDAwMDAwMDQwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX05NSV9JTlRfU0hGVCAzOQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX05NSV9JTlRfTUFTSyAweDAwMDAwMDgwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NUT1BfQ0xPQ0tfU0hGVCA0MAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NUT1BfQ0xPQ0tfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FTSUNfVE9fTDFfU0hGVCA0MQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FTSUNfVE9fTDFfTUFTSyAweDAwMDAwMjAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX1RPX0FTSUNfU0hGVCA0MgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX1RPX0FTSUNfTUFTSyAweDAwMDAwNDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xUQ19JTlRfU0hGVCA0MworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xUQ19JTlRfTUFTSyAweDAwMDAwODAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xBX1NFUV9UUklHR0VSX1NIRlQgNDQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQV9TRVFfVFJJR0dFUl9NQVNLIDB4MDAwMDEwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfSVBJX0lOVF9TSEZUIDQ1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfSVBJX0lOVF9NQVNLIDB4MDAwMDIwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMF9TSEZUIDQ2CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMF9NQVNLIDB4MDAwMDQwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMV9TSEZUIDQ3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMV9NQVNLIDB4MDAwMDgwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMl9TSEZUIDQ4CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMl9NQVNLIDB4MDAwMTAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UM19TSEZUIDQ5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UM19NQVNLIDB4MDAwMjAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUFJPRklMRV9JTlRfU0hGVCA1MAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1BST0ZJTEVfSU5UX01BU0sgMHgwMDA0MDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMwX1NIRlQgNTEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMwX01BU0sgMHgwMDA4MDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMxX1NIRlQgNTIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMxX01BU0sgMHgwMDEwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMyX1NIRlQgNTMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMyX01BU0sgMHgwMDIwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMzX1NIRlQgNTQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMzX01BU0sgMHgwMDQwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9CQVVfREFUQV9TSEZUIDU1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfQkFVX0RBVEFfTUFTSyAweDAwODAwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1BPV0VSX01BTkFHRU1FTlRfUkVRX1NIRlQgNTYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9QT1dFUl9NQU5BR0VNRU5UX1JFUV9NQVNLIDB4MDEwMDAwMDAwMDAwMDAwMFVMCit1bmlvbiB1dmhfZXZlbnRfb2NjdXJyZWQwX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2V2ZW50X29jY3VycmVkMF9zIHsKKwl1bnNpZ25lZCBsb25nCWxiX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjBfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlyaF9oY2VyciAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJeG5faGNlcnIgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsaF9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcmhfYW9lcnIwICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2FvZXJyMCAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzaV9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjFfYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGhfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2FvZXJyMSAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwl4bl9hb2VycjEgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJc2lfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJoX3ZwaV9pbnQgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzeXN0ZW1fc2h1dGRvd25faW50ICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8wICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMSAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzIgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8zICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNCAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzUgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF82ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNyAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzggICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF85ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzExICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMiAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTMgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzE0ICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xNSAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWwxX25taV9pbnQgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzdG9wX2Nsb2NrICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJYXNpY190b19sMSAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWwxX3RvX2FzaWMgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsdGNfaW50ICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGFfc2VxX3RyaWdnZXIgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWlwaV9pbnQgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlleHRpb19pbnQwICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZXh0aW9faW50MSAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWV4dGlvX2ludDIgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlleHRpb19pbnQzICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcHJvZmlsZV9pbnQgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJ0YzAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlydGMxICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcnRjMiAgICAgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJ0YzMgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwliYXVfZGF0YSAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcG93ZXJfbWFuYWdlbWVudF9yZXEgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTdfNjMgICAgICAgICAgIDogIDc7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0VWRU5UX09DQ1VSUkVEMF9BTElBUyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9BTElBUyAweDAwMDAwMDAwMDAwNzAwMDhVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FMSUFTXzMyIDB4MDA1ZjAKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0lOVF9DTVBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfSU5UX0NNUEIgMHgyMjA4MFVMCisKKyNkZWZpbmUgVVZIX0lOVF9DTVBCX1JFQUxfVElNRV9DTVBCX1NIRlQgMAorI2RlZmluZSBVVkhfSU5UX0NNUEJfUkVBTF9USU1FX0NNUEJfTUFTSyAweDAwZmZmZmZmZmZmZmZmZmZVTAorCit1bmlvbiB1dmhfaW50X2NtcGJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfaW50X2NtcGJfcyB7CisJdW5zaWduZWQgbG9uZwlyZWFsX3RpbWVfY21wYiA6IDU2OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjMgICAgIDogIDg7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9JTlRfQ01QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0lOVF9DTVBDIDB4MjIxMDBVTAorCisjZGVmaW5lIFVWSF9JTlRfQ01QQ19SRUFMX1RJTUVfQ01QQ19TSEZUIDAKKyNkZWZpbmUgVVZIX0lOVF9DTVBDX1JFQUxfVElNRV9DTVBDX01BU0sgMHgwMGZmZmZmZmZmZmZmZmZmVUwKKwordW5pb24gdXZoX2ludF9jbXBjX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2ludF9jbXBjX3MgeworCXVuc2lnbmVkIGxvbmcJcmVhbF90aW1lX2NtcGMgOiA1NjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzU2XzYzICAgICA6ICA4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfSU5UX0NNUEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9JTlRfQ01QRCAweDIyMTgwVUwKKworI2RlZmluZSBVVkhfSU5UX0NNUERfUkVBTF9USU1FX0NNUERfU0hGVCAwCisjZGVmaW5lIFVWSF9JTlRfQ01QRF9SRUFMX1RJTUVfQ01QRF9NQVNLIDB4MDBmZmZmZmZmZmZmZmZmZlVMCisKK3VuaW9uIHV2aF9pbnRfY21wZF91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9pbnRfY21wZF9zIHsKKwl1bnNpZ25lZCBsb25nCXJlYWxfdGltZV9jbXBkIDogNTY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81Nl82MyAgICAgOiAgODsgIC8qICAgICovCisgICAgfSBzOworfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0lQSV9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfSVBJX0lOVCAweDYwNTAwVUwKLSNkZWZpbmUgVVZIX0lQSV9JTlRfMzIgMHgwMzYwCisjZGVmaW5lIFVWSF9JUElfSU5UXzMyIDB4MDM0OAogCiAjZGVmaW5lIFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUIDAKICNkZWZpbmUgVVZIX0lQSV9JTlRfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKQEAgLTUxLDcgKzMyNCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVCAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNUIDB4MzIwMDUwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfMzIgMHgwMDlmMAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVF8zMiAweDAwOWMwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfQUREUkVTU19TSEZUIDQKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfQUREUkVTU19NQVNLIDB4MDAwMDA3ZmZmZmZmZmZmMFVMCkBAIC03Myw3ICszNDYsNyBAQAogLyogICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1QgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNUIDB4MzIwMDYwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfTEFTVF8zMiAweDAwOWY4CisjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfMzIgMHgwMDljOAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfQUREUkVTU19TSEZUIDQKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfTEFTVF9BRERSRVNTX01BU0sgMHgwMDAwMDdmZmZmZmZmZmYwVUwKQEAgLTkxLDcgKzM2NCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTCAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUwgMHgzMjAwNzBVTAotI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMXzMyIDB4MDBhMDAKKyNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF8zMiAweDAwOWQwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF9BRERSRVNTX1NIRlQgNAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMX0FERFJFU1NfTUFTSyAweDAwMDAwN2ZmZmZmZmZmZjBVTApAQCAtMTA5LDYgKzM4Miw3IEBACiAvKiAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0UgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRSAweDMyMDA4MFVMCisjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRV8zMiAweDBhNjgKIAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfUEVORElOR18wX1NIRlQgMAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfUEVORElOR18wX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAxVUwKQEAgLTE2OSwxMiArNDQzLDEzIEBACiAvKiAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVMgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRV9BTElBUyAweDAwMDAwMDAwMDAzMjAwODhVTAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVNfMzIgMHgwYTcwCiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wgMHgzMjAwMjBVTAotI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTF8zMiAweDAwOWQ4CisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MXzMyIDB4MDA5YTgKIAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTF9JTkRFWF9TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0xfSU5ERVhfTUFTSyAweDAwMDAwMDAwMDAwMDAwM2ZVTApAQCAtMTk3LDcgKzQ3Miw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMCAweDMyMDAzMFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF8zMiAweDAwOWUwCisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF8zMiAweDAwOWIwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wX1NUQVRVU19TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wX1NUQVRVU19NQVNLIDB4ZmZmZmZmZmZmZmZmZmZmZlVMCkBAIC0yMTMsNyArNDg4LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xIDB4MzIwMDQwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xXzMyIDB4MDA5ZTgKKyNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xXzMyIDB4MDA5YjgKIAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzFfU1RBVFVTX1NIRlQgMAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzFfU1RBVFVTX01BU0sgMHhmZmZmZmZmZmZmZmZmZmZmVUwKQEAgLTIyOSw3ICs1MDQsNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRSAweDMyMDAxMFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFXzMyIDB4MDA5ZDAKKyNkZWZpbmUgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0VfMzIgMHgwMDlhMAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFX1BBR0VfQUREUkVTU19TSEZUIDEyCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFX1BBR0VfQUREUkVTU19NQVNLIDB4MDAwMDA3ZmZmZmZmZjAwMFVMCkBAIC0yNDgsNiArNTIzLDMzNCBAQAogfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEUgMHg1MGIyMFVMCisKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX09CRVNFX01TR19TSEZUIDAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMVVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9EQVRBX1NCX0VSUl9TSEZUIDEKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX0RBVEFfU0JfRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAyVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX05BQ0tfQlVGRl9QQVJJVFlfU0hGVCAyCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9OQUNLX0JVRkZfUEFSSVRZX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA0VUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1RJTUVPVVRfU0hGVCAzCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA4VUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX0lOQUNUSVZFX1JFUExZX1NIRlQgNAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfSU5BQ1RJVkVfUkVQTFlfTUFTSyAweDAwMDAwMDAwMDAwMDAwMTBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfVVBHUkFERV9FUlJPUl9TSEZUIDUKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1VQR1JBREVfRVJST1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwMjBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfUkVHX0NPVU5UX1VOREVSRkxPV19TSEZUIDYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFR19DT1VOVF9VTkRFUkZMT1dfTUFTSyAweDAwMDAwMDAwMDAwMDAwNDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfUkVQX09CRVNFX01TR19TSEZUIDcKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFUF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAwODBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9SVU5UX01TR19TSEZUIDgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfUlVOVF9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAxMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9PQkVTRV9NU0dfU0hGVCA5CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMDIwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX0RBVEFfU0JfRVJSX1NIRlQgMTAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9SVU5UX01TR19TSEZUIDExCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfT0JFU0VfTVNHX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfT0JFU0VfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfREFUQV9TQl9FUlJfU0hGVCAxMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9EQVRBX1NCX0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX0NPTU1BTkRfRVJSX1NIRlQgMTQKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfQ09NTUFORF9FUlJfTUFTSyAweDAwMDAwMDAwMDAwMDQwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1BFTkRfVElNRU9VVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUEVORF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX1JVTlRfTVNHX1NIRlQgMTYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX09CRVNFX01TR19TSEZUIDE3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUV9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMjAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVFfREFUQV9TQl9FUlJfU0hGVCAxOAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVFfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAwNDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfUlVOVF9NU0dfU0hGVCAxOQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfUlVOVF9NU0dfTUFTSyAweDAwMDAwMDAwMDAwODAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfT0JFU0VfTVNHX1NIRlQgMjAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVQX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDEwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUF9EQVRBX1NCX0VSUl9TSEZUIDIxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUF9EQVRBX1NCX0VSUl9NQVNLIDB4MDAwMDAwMDAwMDIwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX0FNT19USU1FT1VUX1NIRlQgMjIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfQU1PX1RJTUVPVVRfTUFTSyAweDAwMDAwMDAwMDA0MDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19QVVRfVElNRU9VVF9TSEZUIDIzCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1BVVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwODAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfU1BVUklPVVNfRVZFTlRfU0hGVCAyNAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19TUFVSSU9VU19FVkVOVF9NQVNLIDB4MDAwMDAwMDAwMTAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JT0hfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMjUKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPSF9ERVNUSU5BVElPTl9UQUJMRV9QQVJJVFlfTUFTSyAweDAwMDAwMDAwMDIwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfR0VUX0hBRF9FUlJPUl9SRVBMWV9TSEZUIDI2CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9HRVRfSEFEX0VSUk9SX1JFUExZX01BU0sgMHgwMDAwMDAwMDA0MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0dFVF9USU1FT1VUX1NIRlQgMjcKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0dFVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDA4MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0xPQ0tfTUFOQUdFUl9IQURfRVJST1JfUkVQTFlfU0hGVCAyOAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTE9DS19NQU5BR0VSX0hBRF9FUlJPUl9SRVBMWV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9QVVRfSEFEX0VSUk9SX1JFUExZX1NIRlQgMjkKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1BVVF9IQURfRVJST1JfUkVQTFlfTUFTSyAweDAwMDAwMDAwMjAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfUFVUX1RJTUVPVVRfU0hGVCAzMAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfUFVUX1RJTUVPVVRfTUFTSyAweDAwMDAwMDAwNDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfU0JfQUNUSVZBVElPTl9PVkVSUlVOX1NIRlQgMzEKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1NCX0FDVElWQVRJT05fT1ZFUlJVTl9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9DT01QTEVURURfR0JfQUNUSVZBVElPTl9IQURfRVJST1JfUkVQTFlfU0hGVCAzMgorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQ09NUExFVEVEX0dCX0FDVElWQVRJT05fSEFEX0VSUk9SX1JFUExZX01BU0sgMHgwMDAwMDAwMTAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0NPTVBMRVRFRF9HQl9BQ1RJVkFUSU9OX1RJTUVPVVRfU0hGVCAzMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQ09NUExFVEVEX0dCX0FDVElWQVRJT05fVElNRU9VVF9NQVNLIDB4MDAwMDAwMDIwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8wX1BBUklUWV9TSEZUIDM0CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8wX1BBUklUWV9NQVNLIDB4MDAwMDAwMDQwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8xX1BBUklUWV9TSEZUIDM1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8xX1BBUklUWV9NQVNLIDB4MDAwMDAwMDgwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9TT0NLRVRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMzYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1NPQ0tFVF9ERVNUSU5BVElPTl9UQUJMRV9QQVJJVFlfTUFTSyAweDAwMDAwMDEwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQkFVX1JFUExZX1BBWUxPQURfQ09SUlVQVElPTl9TSEZUIDM3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9CQVVfUkVQTFlfUEFZTE9BRF9DT1JSVVBUSU9OX01BU0sgMHgwMDAwMDAyMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPX1BPUlRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMzgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPX1BPUlRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX01BU0sgMHgwMDAwMDA0MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVERfU09GVF9BQ0tfVElNRU9VVF9TSEZUIDM5CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlREX1NPRlRfQUNLX1RJTUVPVVRfTUFTSyAweDAwMDAwMDgwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9PQkVTRV9NU0dfU0hGVCA0MAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9DT01NQU5EX0VSUl9TSEZUIDQxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlRfUkVQX0NPTU1BTkRfRVJSX01BU0sgMHgwMDAwMDIwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9USU1FT1VUX1NIRlQgNDIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9USU1FT1VUX01BU0sgMHgwMDAwMDQwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX2xiX21jYXN0X2FvZXJyMF9ycHRfZW5hYmxlX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2xiX21jYXN0X2FvZXJyMF9ycHRfZW5hYmxlX3MgeworCXVuc2lnbmVkIGxvbmcJbWNhc3Rfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfbmFja19idWZmX3Bhcml0eSAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfaW5hY3RpdmVfcmVwbHkgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfdXBncmFkZV9lcnJvciAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfcmVnX2NvdW50X3VuZGVyZmxvdyAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfcmVwX29iZXNlX21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9ydW50X21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9kYXRhX3NiX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9ydW50X21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9kYXRhX3NiX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9jb21tYW5kX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3BlbmRfdGltZW91dCAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19hbW9fdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19wdXRfdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19zcHVyaW91c19ldmVudCAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW9oX2Rlc3RpbmF0aW9uX3RhYmxlX3Bhcml0eSAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ2V0X2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ2V0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbG9ja19tYW5hZ2VyX2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcHV0X2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcHV0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc2JfYWN0aXZhdGlvbl9vdmVycnVuICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJY29tcGxldGVkX2diX2FjdGl2YXRpb25faGFkX2Vycm9yX3JlcGx5IDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJY29tcGxldGVkX2diX2FjdGl2YXRpb25fdGltZW91dCAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzY3JpcHRvcl9idWZmZXJfMF9wYXJpdHkgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzY3JpcHRvcl9idWZmZXJfMV9wYXJpdHkgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc29ja2V0X2Rlc3RpbmF0aW9uX3RhYmxlX3Bhcml0eSAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJYmF1X3JlcGx5X3BheWxvYWRfY29ycnVwdGlvbiAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW9fcG9ydF9kZXN0aW5hdGlvbl90YWJsZV9wYXJpdHkgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50ZF9zb2Z0X2Fja190aW1lb3V0ICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3JlcF9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3JlcF9jb21tYW5kX2VyciAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF80M182MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMjE7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfTE9DQUxfSU5UMF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHIDB4NjEwMDBVTAorCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19WRUNUT1JfU0hGVCAwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ETV9NQVNLIDB4MDAwMDAwMDAwMDAwMDcwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19TVEFUVVNfU0hGVCAxMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfUF9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfTV9TSEZUIDE2CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfQVBJQ19JRF9NQVNLIDB4ZmZmZmZmZmYwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9sb2NhbF9pbnQwX2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9sb2NhbF9pbnQwX2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRSAweDY1MDAwVUwKKworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSENFUlJfU0hGVCAwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMVVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfSENFUlJfU0hGVCAxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDJVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0hDRVJSX1NIRlQgMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA0VUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0hDRVJSX1NIRlQgMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEhfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDhVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfSENFUlJfU0hGVCA0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAxMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9IQ0VSUl9TSEZUIDUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1hOX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDIwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0hDRVJSX1NIRlQgNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU0lfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwNDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIwX1NIRlQgNworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMDgwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMF9BT0VSUjBfU0hGVCA4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMTAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMV9BT0VSUjBfU0hGVCA5CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjFfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMjAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0FPRVJSMF9TSEZUIDEwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfQU9FUlIwX1NIRlQgMTEKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9BT0VSUjBfU0hGVCAxMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0FPRVJSMF9TSEZUIDEzCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIxX1NIRlQgMTQKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAwNDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIxX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0FPRVJSMV9TSEZUIDE2CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjFfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0FPRVJSMV9TSEZUIDE3CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMjAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfQU9FUlIxX1NIRlQgMTgKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDA0MDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9BT0VSUjFfU0hGVCAxOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDgwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0FPRVJSMV9TSEZUIDIwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAxMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfVlBJX0lOVF9TSEZUIDIxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9WUElfSU5UX01BU0sgMHgwMDAwMDAwMDAwMjAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NZU1RFTV9TSFVURE9XTl9JTlRfU0hGVCAyMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU1lTVEVNX1NIVVRET1dOX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDQwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzBfU0hGVCAyMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8wX01BU0sgMHgwMDAwMDAwMDAwODAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMV9TSEZUIDI0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzFfTUFTSyAweDAwMDAwMDAwMDEwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8yX1NIRlQgMjUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMl9NQVNLIDB4MDAwMDAwMDAwMjAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzNfU0hGVCAyNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8zX01BU0sgMHgwMDAwMDAwMDA0MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNF9TSEZUIDI3CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzRfTUFTSyAweDAwMDAwMDAwMDgwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF81X1NIRlQgMjgKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzZfU0hGVCAyOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF82X01BU0sgMHgwMDAwMDAwMDIwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfN19TSEZUIDMwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzdfTUFTSyAweDAwMDAwMDAwNDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF84X1NIRlQgMzEKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfOF9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzlfU0hGVCAzMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF85X01BU0sgMHgwMDAwMDAwMTAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTBfU0hGVCAzMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMF9NQVNLIDB4MDAwMDAwMDIwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzExX1NIRlQgMzQKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTFfTUFTSyAweDAwMDAwMDA0MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMl9TSEZUIDM1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzEyX01BU0sgMHgwMDAwMDAwODAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTNfU0hGVCAzNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xM19NQVNLIDB4MDAwMDAwMTAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzE0X1NIRlQgMzcKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTRfTUFTSyAweDAwMDAwMDIwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xNV9TSEZUIDM4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzE1X01BU0sgMHgwMDAwMDA0MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX05NSV9JTlRfU0hGVCAzOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTDFfTk1JX0lOVF9NQVNLIDB4MDAwMDAwODAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TVE9QX0NMT0NLX1NIRlQgNDAKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NUT1BfQ0xPQ0tfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfQVNJQ19UT19MMV9TSEZUIDQxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9BU0lDX1RPX0wxX01BU0sgMHgwMDAwMDIwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX1RPX0FTSUNfU0hGVCA0MgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTDFfVE9fQVNJQ19NQVNLIDB4MDAwMDA0MDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MVENfSU5UX1NIRlQgNDMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xUQ19JTlRfTUFTSyAweDAwMDAwODAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEFfU0VRX1RSSUdHRVJfU0hGVCA0NAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEFfU0VRX1RSSUdHRVJfTUFTSyAweDAwMDAxMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfbG9jYWxfaW50MF9lbmFibGVfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfbG9jYWxfaW50MF9lbmFibGVfcyB7CisJdW5zaWduZWQgbG9uZwlsYl9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2hjZXJyICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9oY2VyciAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsaF9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcmhfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzaV9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9hb2VycjAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjFfYW9lcnIwICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGhfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwl4bl9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc2lfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjBfYW9lcnIxICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2FvZXJyMSAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyaF9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJeG5fYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyaF92cGlfaW50ICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3lzdGVtX3NodXRkb3duX2ludCA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMCAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8yICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMyAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzQgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF81ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNiAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzcgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF84ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfOSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEwICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMSAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTIgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEzICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xNCAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTUgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsMV9ubWlfaW50ICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3RvcF9jbG9jayAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWFzaWNfdG9fbDEgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsMV90b19hc2ljICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbHRjX2ludCAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxhX3NlcV90cmlnZ2VyICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ1XzYzICAgICAgICAgIDogMTk7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9OT0RFX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX05PREVfSUQgMHgwVUwKQEAgLTI4NCwxNCArODg3LDEwMSBAQAogfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9OT0RFX1BSRVNFTlRfVEFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFIDB4MTQwMFVMCisjZGVmaW5lIFVWSF9OT0RFX1BSRVNFTlRfVEFCTEVfREVQVEggMTYKKworI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX05PREVTX1NIRlQgMAorI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX05PREVTX01BU0sgMHhmZmZmZmZmZmZmZmZmZmZmVUwKKwordW5pb24gdXZoX25vZGVfcHJlc2VudF90YWJsZV91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ub2RlX3ByZXNlbnRfdGFibGVfcyB7CisJdW5zaWduZWQgbG9uZwlub2RlcyA6IDY0OyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18wX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzBfTU1SIDB4MTYwMDBkMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMF9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18wX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18xX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzFfTU1SIDB4MTYwMDBlMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMV9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMV9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMV9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18xX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18yX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SIDB4MTYwMDBmMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMl9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18yX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUiAweDE2MDAwMjBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX1NIRlQgMjYKKyNkZWZpbmUgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfTUFTSyAweDAwMDAzZmZmZmMwMDAwMDBVTAorI2RlZmluZSBVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fY2ZnX292ZXJsYXlfY29uZmlnX21tcl91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9yaF9nYW1fY2ZnX292ZXJsYXlfY29uZmlnX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yNTogMjY7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgIDogMjA7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF80Nl82MjogMTc7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVIgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAxMFVMCiAKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVCAyOAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9NQVNLIDB4MDAwMDNmZmZmMDAwMDAwMFVMCi0jZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9HUjRfU0hGVCA0NgotI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfR1I0X01BU0sgMHgwMDAwNDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0dSNF9TSEZUIDQ4CisjZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9HUjRfTUFTSyAweDAwMDEwMDAwMDAwMDAwMDBVTAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfTl9HUlVfU0hGVCA1MgogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfTl9HUlVfTUFTSyAweDAwZjAwMDAwMDAwMDAwMDBVTAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKQEAgLTMwMiw4ICs5OTIsOSBAQAogICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2dydV9vdmVybGF5X2NvbmZpZ19tbXJfcyB7CiAJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjc6IDI4OyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWJhc2UgICA6IDE4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNDc6ICAyOyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWdyNCAgICA6ICAxOyAgLyogUlcgKi8KLQl1bnNpZ25lZCBsb25nCXJzdmRfNDdfNTE6ICA1OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDlfNTE6ICAzOyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCW5fZ3J1ICA6ICA0OyAgLyogUlcgKi8KIAl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjI6ICA3OyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWVuYWJsZSA6ICAxOyAgLyogUlcgKi8KQEAgLTMxMSw2ICsxMDAyLDMyIEBACiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUiAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAzMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUIDMwCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfTUFTSyAweDAwMDAzZmZmYzAwMDAwMDBVTAorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9NX0lPX1NIRlQgNDYKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfTV9JT19NQVNLIDB4MDAwZmMwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX05fSU9fU0hGVCA1MgorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9OX0lPX01BU0sgMHgwMGYwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX01BU0sgMHg4MDAwMDAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9tbWlvaF9vdmVybGF5X2NvbmZpZ19tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX21taW9oX292ZXJsYXlfY29uZmlnX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yOTogMzA7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgIDogMTY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbV9pbyAgIDogIDY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbl9pbyAgIDogIDQ7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81Nl82MjogIDc7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVIgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAyOFVMCkBAIC0zMzYsNyArMTA1Myw3IEBACiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0jZGVmaW5lIFVWSF9SVEMgMHgyODAwMFVMCisjZGVmaW5lIFVWSF9SVEMgMHgzNDAwMDBVTAogCiAjZGVmaW5lIFVWSF9SVENfUkVBTF9USU1FX0NMT0NLX1NIRlQgMAogI2RlZmluZSBVVkhfUlRDX1JFQUxfVElNRV9DTE9DS19NQVNLIDB4MDBmZmZmZmZmZmZmZmZmZlVMCkBAIC0zNTAsNiArMTA2NywxMzkgQEAKIH07CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX1JUQzFfSU5UX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJRyAweDYxNWMwVUwKKworI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX1ZFQ1RPUl9TSEZUIDAKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX0RNX1NIRlQgOAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX0RNX01BU0sgMHgwMDAwMDAwMDAwMDAwNzAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfREVTVE1PREVfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX1NUQVRVU19TSEZUIDEyCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19QX1NIRlQgMTMKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19QX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19UX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19NX1NIRlQgMTYKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19BUElDX0lEX1NIRlQgMzIKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19BUElDX0lEX01BU0sgMHhmZmZmZmZmZjAwMDAwMDAwVUwKKwordW5pb24gdXZoX3J0YzFfaW50X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ydGMxX2ludF9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwl2ZWN0b3JfICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRtICAgICAgIDogIDM7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzdG1vZGUgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzdGF0dXMgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXAgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xNCAgOiAgMTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwl0ICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCW0gICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xN18zMTogMTU7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYXBpY19pZCAgOiAzMjsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfUlRDMl9JTlRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHIDB4NjE2MDBVTAorCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0RFU1RNT0RFX1NIRlQgMTEKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19TVEFUVVNfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1RfU0hGVCAxNQorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX01fTUFTSyAweDAwMDAwMDAwMDAwMTAwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfcnRjMl9pbnRfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3J0YzJfaW50X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVEMzX0lOVF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUcgMHg2MTY0MFVMCisKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19WRUNUT1JfU0hGVCAwCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19ETV9TSEZUIDgKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19ETV9NQVNLIDB4MDAwMDAwMDAwMDAwMDcwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfREVTVE1PREVfU0hGVCAxMQorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX0RFU1RNT0RFX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19TVEFUVVNfU0hGVCAxMgorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1NUQVRVU19NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfUF9TSEZUIDEzCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfUF9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVF9NQVNLIDB4MDAwMDAwMDAwMDAwODAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfTV9TSEZUIDE2CisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfTV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfQVBJQ19JRF9TSEZUIDMyCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfQVBJQ19JRF9NQVNLIDB4ZmZmZmZmZmYwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9ydGMzX2ludF9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcnRjM19pbnRfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJdmVjdG9yXyAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkbSAgICAgICA6ICAzOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3Rtb2RlIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3RhdHVzICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlwICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTQgIDogIDE7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJdCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwltICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTdfMzE6IDE1OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWFwaWNfaWQgIDogMzI7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVENfSU5DX1JBVElPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1JUQ19JTkNfUkFUSU8gMHgzNTAwMDBVTAorCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPX0ZSQUNUSU9OX1NIRlQgMAorI2RlZmluZSBVVkhfUlRDX0lOQ19SQVRJT19GUkFDVElPTl9NQVNLIDB4MDAwMDAwMDAwMDBmZmZmZlVMCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPX1JBVElPX1NIRlQgMjAKKyNkZWZpbmUgVVZIX1JUQ19JTkNfUkFUSU9fUkFUSU9fTUFTSyAweDAwMDAwMDAwMDA3MDAwMDBVTAorCit1bmlvbiB1dmhfcnRjX2luY19yYXRpb191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ydGNfaW5jX3JhdGlvX3MgeworCXVuc2lnbmVkIGxvbmcJZnJhY3Rpb24gOiAyMDsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyYXRpbyAgICA6ICAzOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMjNfNjM6IDQxOyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX1NJX0FERFJfTUFQX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9TSV9BRERSX01BUF9DT05GSUcgMHhjODAwMDBVTApAQCAtMzY5LDUgKzEyMTksNzcgQEAKICAgICB9IHM7CiB9OwogCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgVVZIX1NJX0FMSUFTMF9PVkVSTEFZX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUcgMHhjODAwMDhVTAorCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfQkFTRV9NQVNLIDB4MDAwMDAwMDBmZjAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19TSEZUIDQ4CisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19NQVNLIDB4MDAxZjAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMF9PVkVSTEFZX0NPTkZJR19FTkFCTEVfTUFTSyAweDgwMDAwMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfc2lfYWxpYXMwX292ZXJsYXlfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3NpX2FsaWFzMF9vdmVybGF5X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMzogMjQ7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMzJfNDc6IDE2OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCW1fYWxpYXMgOiAgNTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzUzXzYyOiAxMDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwllbmFibGUgIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBVVkhfU0lfQUxJQVMxX09WRVJMQVlfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJRyAweGM4MDAxMFVMCisKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19CQVNFX01BU0sgMHgwMDAwMDAwMGZmMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX1NIRlQgNDgKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX01BU0sgMHgwMDFmMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19FTkFCTEVfU0hGVCA2MworI2RlZmluZSBVVkhfU0lfQUxJQVMxX09WRVJMQVlfQ09ORklHX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9zaV9hbGlhczFfb3ZlcmxheV9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfc2lfYWxpYXMxX292ZXJsYXlfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJcnN2ZF8wXzIzOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwliYXNlICAgIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8zMl80NzogMTY7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJbV9hbGlhcyA6ICA1OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTNfNjI6IDEwOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWVuYWJsZSAgOiAgMTsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgIFVWSF9TSV9BTElBUzJfT1ZFUkxBWV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHIDB4YzgwMDE4VUwKKworI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0JBU0VfU0hGVCAyNAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0JBU0VfTUFTSyAweDAwMDAwMDAwZmYwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX01fQUxJQVNfU0hGVCA0OAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX01fQUxJQVNfTUFTSyAweDAwMWYwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0VOQUJMRV9TSEZUIDYzCisjZGVmaW5lIFVWSF9TSV9BTElBUzJfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX01BU0sgMHg4MDAwMDAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX3NpX2FsaWFzMl9vdmVybGF5X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9zaV9hbGlhczJfb3ZlcmxheV9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjM6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWJhc2UgICAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzMyXzQ3OiAxNjsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwltX2FsaWFzIDogIDU7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81M182MjogMTA7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlICA6ICAxOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCiAKICNlbmRpZiAvKiBfX0FTTV9YODZfVVZfTU1SU19fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9jb2JhbHQuaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9jb2JhbHQuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvY29iYWx0LmgKcmVuYW1lIHRvIGluY2x1ZGUvYXNtLXg4Ni92aXN3cy9jb2JhbHQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbGl0aGl1bS5oIGIvaW5jbHVkZS9hc20teDg2L3Zpc3dzL2xpdGhpdW0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbGl0aGl1bS5oCnJlbmFtZSB0byBpbmNsdWRlL2FzbS14ODYvdmlzd3MvbGl0aGl1bS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9waWl4NC5oIGIvaW5jbHVkZS9hc20teDg2L3Zpc3dzL3BpaXg0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3BpaXg0LmgKcmVuYW1lIHRvIGluY2x1ZGUvYXNtLXg4Ni92aXN3cy9waWl4NC5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdmlzd3Mvc2dpdncuaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9zZ2l2dy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmYmY2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvdmlzd3Mvc2dpdncuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBGcmFtZSBidWZmZXIgcG9zaXRpb24gYW5kIHNpemU6CisgKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIHNnaXZ3ZmJfbWVtX3BoeXM7CitleHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3ZtODYuaCBiL2luY2x1ZGUvYXNtLXg4Ni92bTg2LmgKaW5kZXggMDc0YjM1Ny4uNWNlMzUxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3ZtODYuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdm04Ni5oCkBAIC0xNCwxMiArMTQsNiBAQAogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCi0jaWZkZWYgQ09ORklHX1ZNODYKLSNkZWZpbmUgWDg2X1ZNX01BU0sJWDg2X0VGTEFHU19WTQotI2Vsc2UKLSNkZWZpbmUgWDg2X1ZNX01BU0sJMCAvKiBObyBWTTg2IHN1cHBvcnQgKi8KLSNlbmRpZgotCiAjZGVmaW5lIEJJT1NTRUcJCTB4MGYwMDAKIAogI2RlZmluZSBDUFVfMDg2CQkwCkBAIC0xMjEsNyArMTE1LDYgQEAKIAl1bnNpZ25lZCBsb25nIGlzX3ZtODZwdXM6MTsJICAgICAgLyogZm9yIHZtODYgaW50ZXJuYWwgdXNlICovCiAJdW5zaWduZWQgY2hhciB2bTg2ZGJnX2ludHh4dGFiWzMyXTsgICAvKiBmb3IgZGVidWdnZXIgKi8KIH07Ci0KIHN0cnVjdCB2bTg2cGx1c19zdHJ1Y3QgewogCXN0cnVjdCB2bTg2X3JlZ3MgcmVnczsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTMzLDYgKzEyNiw5IEBACiB9OwogCiAjaWZkZWYgX19LRVJORUxfXworCisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorCiAvKgogICogVGhpcyBpcyB0aGUgKGtlcm5lbCkgc3RhY2stbGF5b3V0IHdoZW4gd2UgaGF2ZSBkb25lIGEgIlNBVkVfQUxMIiBmcm9tIHZtODYKICAqIG1vZGUgLSB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhhdCB0aGUgb2xkIHNlZ21lbnQgZGVzY3JpcHRvcnMgYXJlbid0CkBAIC0xNDEsNyArMTM3LDYgQEAKICAqIGF0IHRoZSBlbmQgb2YgdGhlIHN0cnVjdHVyZS4gTG9vayBhdCBwdHJhY2UuaCB0byBzZWUgdGhlICJub3JtYWwiCiAgKiBzZXR1cC4gRm9yIHVzZXIgc3BhY2UgbGF5b3V0IHNlZSAnc3RydWN0IHZtODZfcmVncycgYWJvdmUuCiAgKi8KLSNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CiAKIHN0cnVjdCBrZXJuZWxfdm04Nl9yZWdzIHsKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdm1pX3RpbWUuaCBiL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCmluZGV4IDQ3ODE4ODEuLmMzMTE4YzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCkBAIC01MCw3ICs1MCw3IEBACiBleHRlcm4gdW5zaWduZWQgbG9uZyB2bWlfZ2V0X3dhbGxjbG9jayh2b2lkKTsKIGV4dGVybiBpbnQgdm1pX3NldF93YWxsY2xvY2sodW5zaWduZWQgbG9uZyBub3cpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyB2bWlfc2NoZWRfY2xvY2sodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyB2bWlfY3B1X2toeih2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIHZtaV90c2Nfa2h6KHZvaWQpOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiBleHRlcm4gdm9pZCBfX2RldmluaXQgdm1pX3RpbWVfYnNwX2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdnN5c2NhbGwuaCBiL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCmluZGV4IDE3YjM3MDAuLjZiNjZmZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCkBAIC0yNCw3ICsyNCw4IEBACiAJKCh1bnVzZWQsIF9fc2VjdGlvbl9fICgiLnZzeXNjYWxsX2d0b2RfZGF0YSIpLGFsaWduZWQoMTYpKSkKICNkZWZpbmUgX19zZWN0aW9uX3ZzeXNjYWxsX2Nsb2NrIF9fYXR0cmlidXRlX18gXAogCSgodW51c2VkLCBfX3NlY3Rpb25fXyAoIi52c3lzY2FsbF9jbG9jayIpLGFsaWduZWQoMTYpKSkKLSNkZWZpbmUgX192c3lzY2FsbF9mbiBfX2F0dHJpYnV0ZV9fICgodW51c2VkLF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfZm4iKSkpCisjZGVmaW5lIF9fdnN5c2NhbGxfZm4gXAorCV9fYXR0cmlidXRlX18gKCh1bnVzZWQsIF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfZm4iKSkpIG5vdHJhY2UKIAogI2RlZmluZSBWR0VUQ1BVX1JEVFNDUAkxCiAjZGVmaW5lIFZHRVRDUFVfTFNMCTIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vaHlwZXJjYWxsLmggYi9pbmNsdWRlL2FzbS14ODYveGVuL2h5cGVyY2FsbC5oCmluZGV4IGMyY2NkOTkuLjJhNGY5YjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vaHlwZXJjYWxsLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hlbi9oeXBlcmNhbGwuaApAQCAtMTc2LDkgKzE3Niw5IEBACiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50Ci1IWVBFUlZJU09SX3NjaGVkX29wKGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQorSFlQRVJWSVNPUl9zY2hlZF9vcChpbnQgY21kLCB2b2lkICphcmcpCiB7Ci0JcmV0dXJuIF9oeXBlcmNhbGwyKGludCwgc2NoZWRfb3AsIGNtZCwgYXJnKTsKKwlyZXR1cm4gX2h5cGVyY2FsbDIoaW50LCBzY2hlZF9vcF9uZXcsIGNtZCwgYXJnKTsKIH0KIAogc3RhdGljIGlubGluZSBsb25nCkBAIC0zMTUsNiArMzE1LDEzIEBACiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAorTVVMVElfZnB1X3Rhc2tzd2l0Y2goc3RydWN0IG11bHRpY2FsbF9lbnRyeSAqbWNsLCBpbnQgc2V0KQoreworCW1jbC0+b3AgPSBfX0hZUEVSVklTT1JfZnB1X3Rhc2tzd2l0Y2g7CisJbWNsLT5hcmdzWzBdID0gc2V0OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKIE1VTFRJX3VwZGF0ZV92YV9tYXBwaW5nKHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgKm1jbCwgdW5zaWduZWQgbG9uZyB2YSwKIAkJCXB0ZV90IG5ld192YWwsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYveGVuL3BhZ2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCmluZGV4IGJhZjNhNGQuLjM3N2MwNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCkBAIC0yNiwxNSArMjYsMjAgQEAKICNkZWZpbmUgRk9SRUlHTl9GUkFNRV9CSVQJKDFVTDw8MzEpCiAjZGVmaW5lIEZPUkVJR05fRlJBTUUobSkJKChtKSB8IEZPUkVJR05fRlJBTUVfQklUKQogCi1leHRlcm4gdW5zaWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7CisvKiBNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgd2UgY2FuIGhhbmRsZSBpbiBhIGRvbWFpbiBpbiBwYWdlcyAqLworI2RlZmluZSBNQVhfRE9NQUlOX1BBR0VTCQkJCQkJXAorICAgICgodW5zaWduZWQgbG9uZykoKHU2NClDT05GSUdfWEVOX01BWF9ET01BSU5fTUVNT1JZICogMTAyNCAqIDEwMjQgKiAxMDI0IC8gUEFHRV9TSVpFKSkKKworCitleHRlcm4gdW5zaWduZWQgbG9uZyBnZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuKTsKK2V4dGVybiB2b2lkIHNldF9waHlzX3RvX21hY2hpbmUodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHBmbl90b19tZm4odW5zaWduZWQgbG9uZyBwZm4pCiB7CiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApKQogCQlyZXR1cm4gcGZuOwogCi0JcmV0dXJuIHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nWyh1bnNpZ25lZCBpbnQpKHBmbildICYKLQkJfkZPUkVJR05fRlJBTUVfQklUOworCXJldHVybiBnZXRfcGh5c190b19tYWNoaW5lKHBmbikgJiB+Rk9SRUlHTl9GUkFNRV9CSVQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nX3ZhbGlkKHVuc2lnbmVkIGxvbmcgcGZuKQpAQCAtNDIsNyArNDcsNyBAQAogCWlmICh4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKIAkJcmV0dXJuIDE7CiAKLQlyZXR1cm4gKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nW3Bmbl0gIT0gSU5WQUxJRF9QMk1fRU5UUlkpOworCXJldHVybiBnZXRfcGh5c190b19tYWNoaW5lKHBmbikgIT0gSU5WQUxJRF9QMk1fRU5UUlk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBtZm5fdG9fcGZuKHVuc2lnbmVkIGxvbmcgbWZuKQpAQCAtMTA2LDIwICsxMTEsMTIgQEAKIAl1bnNpZ25lZCBsb25nIHBmbiA9IG1mbl90b19wZm4obWZuKTsKIAlpZiAoKHBmbiA8IG1heF9tYXBucikKIAkgICAgJiYgIXhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApCi0JICAgICYmIChwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1twZm5dICE9IG1mbikpCisJICAgICYmIChnZXRfcGh5c190b19tYWNoaW5lKHBmbikgIT0gbWZuKSkKIAkJcmV0dXJuIG1heF9tYXBucjsgLyogZm9yY2UgIXBmbl92YWxpZCgpICovCisJLyogWFhYIGZpeG1lOyBub3QgdHJ1ZSB3aXRoIHNwYXJzZW1lbSAqLwogCXJldHVybiBwZm47CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikKLXsKLQlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpIHsKLQkJQlVHX09OKHBmbiAhPSBtZm4gJiYgbWZuICE9IElOVkFMSURfUDJNX0VOVFJZKTsKLQkJcmV0dXJuOwotCX0KLQlwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1twZm5dID0gbWZuOwotfQotCiAvKiBWSVJUIDwtPiBNQUNISU5FIGNvbnZlcnNpb24gKi8KICNkZWZpbmUgdmlydF90b19tYWNoaW5lKHYpCShwaHlzX3RvX21hY2hpbmUoWFBBRERSKF9fcGEodikpKSkKICNkZWZpbmUgdmlydF90b19tZm4odikJCShwZm5fdG9fbWZuKFBGTl9ET1dOKF9fcGEodikpKSkKQEAgLTE1MCwxMyArMTQ3LDkgQEAKIAlyZXR1cm4gKHB0ZV90KSB7IC5wdGUgPSB4IH07CiB9CiAKLSNpZmRlZiBDT05GSUdfWDg2X1BBRQogI2RlZmluZSBwbWRfdmFsX21hKHYpICgodikucG1kKQogI2RlZmluZSBwdWRfdmFsX21hKHYpICgodikucGdkLnBnZCkKICNkZWZpbmUgX19wbWRfbWEoeCkJKChwbWRfdCkgeyAoeCkgfSApCi0jZWxzZSAgLyogIVg4Nl9QQUUgKi8KLSNkZWZpbmUgcG1kX3ZhbF9tYSh2KQkoKHYpLnB1ZC5wZ2QucGdkKQotI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCiAKICNkZWZpbmUgcGdkX3ZhbF9tYSh4KQkoKHgpLnBnZCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3hvcl8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3hvcl8zMi5oCmluZGV4IDA2N2I1YzEuLjkyMWI0NTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYveG9yXzMyLmgKQEAgLTEsMyArMSw2IEBACisjaWZuZGVmIEFTTV9YODZfX1hPUl8zMl9ICisjZGVmaW5lIEFTTV9YODZfX1hPUl8zMl9ICisKIC8qCiAgKiBPcHRpbWl6ZWQgUkFJRC01IGNoZWNrc3VtbWluZyBmdW5jdGlvbnMgZm9yIE1NWCBhbmQgU1NFLgogICoKQEAgLTg4MSwzICs4ODQsNSBAQAogICAgZGVhbHMgd2l0aCBhIGxvYWQgdG8gYSBsaW5lIHRoYXQgaXMgYmVpbmcgcHJlZmV0Y2hlZC4gICovCiAjZGVmaW5lIFhPUl9TRUxFQ1RfVEVNUExBVEUoRkFTVEVTVCkJCQlcCiAJKGNwdV9oYXNfeG1tID8gJnhvcl9ibG9ja19wSUlJX3NzZSA6IEZBU1RFU1QpCisKKyNlbmRpZiAvKiBBU01fWDg2X19YT1JfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3hvcl82NC5oIGIvaW5jbHVkZS9hc20teDg2L3hvcl82NC5oCmluZGV4IDI0OTU3ZTMuLjJkM2ExOGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYveG9yXzY0LmgKQEAgLTEsMyArMSw2IEBACisjaWZuZGVmIEFTTV9YODZfX1hPUl82NF9ICisjZGVmaW5lIEFTTV9YODZfX1hPUl82NF9ICisKIC8qCiAgKiBPcHRpbWl6ZWQgUkFJRC01IGNoZWNrc3VtbWluZyBmdW5jdGlvbnMgZm9yIE1NWCBhbmQgU1NFLgogICoKQEAgLTM1NCwzICszNTcsNSBAQAogICAgV2UgbWF5IGFsc28gYmUgYWJsZSB0byBsb2FkIGludG8gdGhlIEwxIG9ubHkgZGVwZW5kaW5nIG9uIGhvdyB0aGUgY3B1CiAgICBkZWFscyB3aXRoIGEgbG9hZCB0byBhIGxpbmUgdGhhdCBpcyBiZWluZyBwcmVmZXRjaGVkLiAgKi8KICNkZWZpbmUgWE9SX1NFTEVDVF9URU1QTEFURShGQVNURVNUKSAoJnhvcl9ibG9ja19zc2UpCisKKyNlbmRpZiAvKiBBU01fWDg2X19YT1JfNjRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jcnlwdG8vaGFzaC5oIGIvaW5jbHVkZS9jcnlwdG8vaGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjQ5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2NyeXB0by9oYXNoLmgKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBIYXNoOiBIYXNoIGFsZ29yaXRobXMgdW5kZXIgdGhlIGNyeXB0byBBUEkKKyAqIAorICogQ29weXJpZ2h0IChjKSAyMDA4IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2lmbmRlZiBfQ1JZUFRPX0hBU0hfSAorI2RlZmluZSBfQ1JZUFRPX0hBU0hfSAorCisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisKK3N0cnVjdCBjcnlwdG9fYWhhc2ggeworCXN0cnVjdCBjcnlwdG9fdGZtIGJhc2U7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjcnlwdG9fYWhhc2ggKl9fY3J5cHRvX2FoYXNoX2Nhc3Qoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gKHN0cnVjdCBjcnlwdG9fYWhhc2ggKil0Zm07Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0b19haGFzaCAqY3J5cHRvX2FsbG9jX2FoYXNoKGNvbnN0IGNoYXIgKmFsZ19uYW1lLAorCQkJCQkJICAgICAgdTMyIHR5cGUsIHUzMiBtYXNrKQoreworCXR5cGUgJj0gfkNSWVBUT19BTEdfVFlQRV9NQVNLOworCW1hc2sgJj0gfkNSWVBUT19BTEdfVFlQRV9NQVNLOworCXR5cGUgfD0gQ1JZUFRPX0FMR19UWVBFX0FIQVNIOworCW1hc2sgfD0gQ1JZUFRPX0FMR19UWVBFX0FIQVNIX01BU0s7CisKKwlyZXR1cm4gX19jcnlwdG9fYWhhc2hfY2FzdChjcnlwdG9fYWxsb2NfYmFzZShhbGdfbmFtZSwgdHlwZSwgbWFzaykpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjcnlwdG9fdGZtICpjcnlwdG9fYWhhc2hfdGZtKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gJnRmbS0+YmFzZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNyeXB0b19mcmVlX2FoYXNoKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwljcnlwdG9fZnJlZV90Zm0oY3J5cHRvX2FoYXNoX3RmbSh0Zm0pKTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY3J5cHRvX2FoYXNoX2FsaWdubWFzaygKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1fYWxnX2FsaWdubWFzayhjcnlwdG9fYWhhc2hfdGZtKHRmbSkpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhaGFzaF90Zm0gKmNyeXB0b19haGFzaF9jcnQoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiAmY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLT5jcnRfYWhhc2g7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gY3J5cHRvX2FoYXNoX2NydCh0Zm0pLT5kaWdlc3RzaXplOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBjcnlwdG9fYWhhc2hfZ2V0X2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gY3J5cHRvX3RmbV9nZXRfZmxhZ3MoY3J5cHRvX2FoYXNoX3RmbSh0Zm0pKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNyeXB0b19haGFzaF9zZXRfZmxhZ3Moc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCB1MzIgZmxhZ3MpCit7CisJY3J5cHRvX3RmbV9zZXRfZmxhZ3MoY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fYWhhc2hfY2xlYXJfZmxhZ3Moc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCB1MzIgZmxhZ3MpCit7CisJY3J5cHRvX3RmbV9jbGVhcl9mbGFncyhjcnlwdG9fYWhhc2hfdGZtKHRmbSksIGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX2FoYXNoICpjcnlwdG9fYWhhc2hfcmVxdGZtKAorCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIF9fY3J5cHRvX2FoYXNoX2Nhc3QocmVxLT5iYXNlLnRmbSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9yZXFzaXplKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gY3J5cHRvX2FoYXNoX2NydCh0Zm0pLT5yZXFzaXplOworfQorCitzdGF0aWMgaW5saW5lIGludCBjcnlwdG9fYWhhc2hfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwKKwkJCQkgICAgICBjb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBhaGFzaF90Zm0gKmNydCA9IGNyeXB0b19haGFzaF9jcnQodGZtKTsKKworCXJldHVybiBjcnQtPnNldGtleSh0Zm0sIGtleSwga2V5bGVuKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgY3J5cHRvX2FoYXNoX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBhaGFzaF90Zm0gKmNydCA9IGNyeXB0b19haGFzaF9jcnQoY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpKTsKKwlyZXR1cm4gY3J0LT5kaWdlc3QocmVxKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFoYXNoX3JlcXVlc3Rfc2V0X3RmbShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJCQkgc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJlcS0+YmFzZS50Zm0gPSBjcnlwdG9fYWhhc2hfdGZtKHRmbSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX3JlcXVlc3QgKmFoYXNoX3JlcXVlc3RfYWxsb2MoCisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBnZnBfdCBnZnApCit7CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcTsKKworCXJlcSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBhaGFzaF9yZXF1ZXN0KSArCisJCSAgICAgIGNyeXB0b19haGFzaF9yZXFzaXplKHRmbSksIGdmcCk7CisKKwlpZiAobGlrZWx5KHJlcSkpCisJCWFoYXNoX3JlcXVlc3Rfc2V0X3RmbShyZXEsIHRmbSk7CisKKwlyZXR1cm4gcmVxOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWhhc2hfcmVxdWVzdF9mcmVlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJa2ZyZWUocmVxKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqYWhhc2hfcmVxdWVzdF9jYXN0KAorCXN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjb250YWluZXJfb2YocmVxLCBzdHJ1Y3QgYWhhc2hfcmVxdWVzdCwgYmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhaGFzaF9yZXF1ZXN0X3NldF9jYWxsYmFjayhzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJCQkgICAgICB1MzIgZmxhZ3MsCisJCQkJCSAgICAgIGNyeXB0b19jb21wbGV0aW9uX3QgY29tcGxldGUsCisJCQkJCSAgICAgIHZvaWQgKmRhdGEpCit7CisJcmVxLT5iYXNlLmNvbXBsZXRlID0gY29tcGxldGU7CisJcmVxLT5iYXNlLmRhdGEgPSBkYXRhOworCXJlcS0+YmFzZS5mbGFncyA9IGZsYWdzOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQkJICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpzcmMsIHU4ICpyZXN1bHQsCisJCQkJCSAgIHVuc2lnbmVkIGludCBuYnl0ZXMpCit7CisJcmVxLT5zcmMgPSBzcmM7CisJcmVxLT5uYnl0ZXMgPSBuYnl0ZXM7CisJcmVxLT5yZXN1bHQgPSByZXN1bHQ7Cit9CisKKyNlbmRpZgkvKiBfQ1JZUFRPX0hBU0hfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwvaGFzaC5oIGIvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwvaGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2FlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIEhhc2ggYWxnb3JpdGhtcy4KKyAqIAorICogQ29weXJpZ2h0IChjKSAyMDA4IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2lmbmRlZiBfQ1JZUFRPX0lOVEVSTkFMX0hBU0hfSAorI2RlZmluZSBfQ1JZUFRPX0lOVEVSTkFMX0hBU0hfSAorCisjaW5jbHVkZSA8Y3J5cHRvL2FsZ2FwaS5oPgorI2luY2x1ZGUgPGNyeXB0by9oYXNoLmg+CisKK3N0cnVjdCBhaGFzaF9yZXF1ZXN0Oworc3RydWN0IHNjYXR0ZXJsaXN0OworCitzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayB7CisJY2hhciAqZGF0YTsKKworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJdW5zaWduZWQgaW50IGFsaWdubWFzazsKKworCXN0cnVjdCBwYWdlICpwZzsKKwl1bnNpZ25lZCBpbnQgZW50cnlsZW47CisKKwl1bnNpZ25lZCBpbnQgdG90YWw7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKworCXVuc2lnbmVkIGludCBmbGFnczsKK307CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgY3J5cHRvX3R5cGUgY3J5cHRvX2FoYXNoX3R5cGU7CisKK2ludCBjcnlwdG9faGFzaF93YWxrX2RvbmUoc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGssIGludCBlcnIpOworaW50IGNyeXB0b19oYXNoX3dhbGtfZmlyc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCSAgIHN0cnVjdCBjcnlwdG9faGFzaF93YWxrICp3YWxrKTsKKworc3RhdGljIGlubGluZSB2b2lkICpjcnlwdG9fYWhhc2hfY3R4KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gY3J5cHRvX3RmbV9jdHgoJnRmbS0+YmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX2FsZyAqY3J5cHRvX2FoYXNoX2FsZygKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuICZjcnlwdG9fYWhhc2hfdGZtKHRmbSktPl9fY3J0X2FsZy0+Y3JhX2FoYXNoOworfQorCitzdGF0aWMgaW5saW5lIGludCBhaGFzaF9lbnF1ZXVlX3JlcXVlc3Qoc3RydWN0IGNyeXB0b19xdWV1ZSAqcXVldWUsCisJCQkJCSAgICAgc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcXVlc3QpCit7CisJcmV0dXJuIGNyeXB0b19lbnF1ZXVlX3JlcXVlc3QocXVldWUsICZyZXF1ZXN0LT5iYXNlKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqYWhhc2hfZGVxdWV1ZV9yZXF1ZXN0KAorCXN0cnVjdCBjcnlwdG9fcXVldWUgKnF1ZXVlKQoreworCXJldHVybiBhaGFzaF9yZXF1ZXN0X2Nhc3QoY3J5cHRvX2RlcXVldWVfcmVxdWVzdChxdWV1ZSkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKmFoYXNoX3JlcXVlc3RfY3R4KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIHJlcS0+X19jdHg7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGFoYXNoX3RmbV9pbl9xdWV1ZShzdHJ1Y3QgY3J5cHRvX3F1ZXVlICpxdWV1ZSwKKwkJCQkJICBzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1faW5fcXVldWUocXVldWUsIGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cit9CisKKyNlbmRpZgkvKiBfQ1JZUFRPX0lOVEVSTkFMX0hBU0hfSCAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9LYnVpbGQgYi9pbmNsdWRlL2RybS9LYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiNjk4MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL0tidWlsZApAQCAtMCwwICsxLDEwIEBACit1bmlmZGVmLXkgKz0gZHJtLmggZHJtX3NhcmVhLmgKK3VuaWZkZWYteSArPSBpODEwX2RybS5oCit1bmlmZGVmLXkgKz0gaTgzMF9kcm0uaAordW5pZmRlZi15ICs9IGk5MTVfZHJtLmgKK3VuaWZkZWYteSArPSBtZ2FfZHJtLmgKK3VuaWZkZWYteSArPSByMTI4X2RybS5oCit1bmlmZGVmLXkgKz0gcmFkZW9uX2RybS5oCit1bmlmZGVmLXkgKz0gc2lzX2RybS5oCit1bmlmZGVmLXkgKz0gc2F2YWdlX2RybS5oCit1bmlmZGVmLXkgKz0gdmlhX2RybS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm0uaCBiL2luY2x1ZGUvZHJtL2RybS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZDNjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm0uaApAQCAtMCwwICsxLDY5NCBAQAorLyoqCisgKiBcZmlsZSBkcm0uaAorICogSGVhZGVyIGZvciB0aGUgRGlyZWN0IFJlbmRlcmluZyBNYW5hZ2VyCisgKgorICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KKyAqCisgKiBccGFyIEFja25vd2xlZGdtZW50czoKKyAqIERlYyAxOTk5LCBSaWNoYXJkIEhlbmRlcnNvbiA8cnRoQHR3aWRkbGUubmV0PiwgbW92ZSB0byBnZW5lcmljIFxjIGNtcHhjaGcuCisgKi8KKworLyoKKyAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfRFJNX0hfCisjZGVmaW5lIF9EUk1fSF8KKworI2lmIGRlZmluZWQoX19saW51eF9fKQorI2lmIGRlZmluZWQoX19LRVJORUxfXykKKyNlbmRpZgorI2luY2x1ZGUgPGFzbS9pb2N0bC5oPgkJLyogRm9yIF9JTyogbWFjcm9zICovCisjZGVmaW5lIERSTV9JT0NUTF9OUihuKQkJX0lPQ19OUihuKQorI2RlZmluZSBEUk1fSU9DX1ZPSUQJCV9JT0NfTk9ORQorI2RlZmluZSBEUk1fSU9DX1JFQUQJCV9JT0NfUkVBRAorI2RlZmluZSBEUk1fSU9DX1dSSVRFCQlfSU9DX1dSSVRFCisjZGVmaW5lIERSTV9JT0NfUkVBRFdSSVRFCV9JT0NfUkVBRHxfSU9DX1dSSVRFCisjZGVmaW5lIERSTV9JT0MoZGlyLCBncm91cCwgbnIsIHNpemUpIF9JT0MoZGlyLCBncm91cCwgbnIsIHNpemUpCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgZGVmaW5lZChJTl9NT0RVTEUpCisvKiBQcmV2ZW50IG5hbWUgY29sbGlzaW9uIHdoZW4gaW5jbHVkaW5nIHN5cy9pb2Njb20uaCAqLworI3VuZGVmIGlvY3RsCisjaW5jbHVkZSA8c3lzL2lvY2NvbS5oPgorI2RlZmluZSBpb2N0bChhLGIsYykJCXhmODZpb2N0bChhLGIsYykKKyNlbHNlCisjaW5jbHVkZSA8c3lzL2lvY2NvbS5oPgorI2VuZGlmCQkJCS8qIF9fRnJlZUJTRF9fICYmIHhmODZpb2N0bCAqLworI2RlZmluZSBEUk1fSU9DVExfTlIobikJCSgobikgJiAweGZmKQorI2RlZmluZSBEUk1fSU9DX1ZPSUQJCUlPQ19WT0lECisjZGVmaW5lIERSTV9JT0NfUkVBRAkJSU9DX09VVAorI2RlZmluZSBEUk1fSU9DX1dSSVRFCQlJT0NfSU4KKyNkZWZpbmUgRFJNX0lPQ19SRUFEV1JJVEUJSU9DX0lOT1VUCisjZGVmaW5lIERSTV9JT0MoZGlyLCBncm91cCwgbnIsIHNpemUpIF9JT0MoZGlyLCBncm91cCwgbnIsIHNpemUpCisjZW5kaWYKKworI2RlZmluZSBEUk1fTUFKT1IgICAgICAgMjI2CisjZGVmaW5lIERSTV9NQVhfTUlOT1IgICAxNQorCisjZGVmaW5lIERSTV9OQU1FCSJkcm0iCSAgLyoqPCBOYW1lIGluIGtlcm5lbCwgL2RldiwgYW5kIC9wcm9jICovCisjZGVmaW5lIERSTV9NSU5fT1JERVIJNQkgIC8qKjwgQXQgbGVhc3QgMl41IGJ5dGVzID0gMzIgYnl0ZXMgKi8KKyNkZWZpbmUgRFJNX01BWF9PUkRFUgkyMgkgIC8qKjwgVXAgdG8gMl4yMiBieXRlcyA9IDRNQiAqLworI2RlZmluZSBEUk1fUkFNX1BFUkNFTlQgMTAJICAvKio8IEhvdyBtdWNoIHN5c3RlbSByYW0gY2FuIHdlIGxvY2s/ICovCisKKyNkZWZpbmUgX0RSTV9MT0NLX0hFTEQJMHg4MDAwMDAwMFUgLyoqPCBIYXJkd2FyZSBsb2NrIGlzIGhlbGQgKi8KKyNkZWZpbmUgX0RSTV9MT0NLX0NPTlQJMHg0MDAwMDAwMFUgLyoqPCBIYXJkd2FyZSBsb2NrIGlzIGNvbnRlbmRlZCAqLworI2RlZmluZSBfRFJNX0xPQ0tfSVNfSEVMRChsb2NrKQkgICAoKGxvY2spICYgX0RSTV9MT0NLX0hFTEQpCisjZGVmaW5lIF9EUk1fTE9DS19JU19DT05UKGxvY2spCSAgICgobG9jaykgJiBfRFJNX0xPQ0tfQ09OVCkKKyNkZWZpbmUgX0RSTV9MT0NLSU5HX0NPTlRFWFQobG9jaykgKChsb2NrKSAmIH4oX0RSTV9MT0NLX0hFTER8X0RSTV9MT0NLX0NPTlQpKQorCit0eXBlZGVmIHVuc2lnbmVkIGludCBkcm1faGFuZGxlX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fY29udGV4dF90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX2RyYXdhYmxlX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fbWFnaWNfdDsKKworLyoqCisgKiBDbGlwcmVjdC4KKyAqCisgKiBcd2FybmluZzogSWYgeW91IGNoYW5nZSB0aGlzIHN0cnVjdHVyZSwgbWFrZSBzdXJlIHlvdSBjaGFuZ2UKKyAqIFhGODZEUklDbGlwUmVjdFJlYyBpbiB0aGUgc2VydmVyIGFzIHdlbGwKKyAqCisgKiBcbm90ZSBLVzogQWN0dWFsbHkgaXQncyBpbGxlZ2FsIHRvIGNoYW5nZSBlaXRoZXIgZm9yCisgKiBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLgorICovCitzdHJ1Y3QgZHJtX2NsaXBfcmVjdCB7CisJdW5zaWduZWQgc2hvcnQgeDE7CisJdW5zaWduZWQgc2hvcnQgeTE7CisJdW5zaWduZWQgc2hvcnQgeDI7CisJdW5zaWduZWQgc2hvcnQgeTI7Cit9OworCisvKioKKyAqIERyYXdhYmxlIGluZm9ybWF0aW9uLgorICovCitzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8geworCXVuc2lnbmVkIGludCBudW1fcmVjdHM7CisJc3RydWN0IGRybV9jbGlwX3JlY3QgKnJlY3RzOworfTsKKworLyoqCisgKiBUZXh0dXJlIHJlZ2lvbiwKKyAqLworc3RydWN0IGRybV90ZXhfcmVnaW9uIHsKKwl1bnNpZ25lZCBjaGFyIG5leHQ7CisJdW5zaWduZWQgY2hhciBwcmV2OworCXVuc2lnbmVkIGNoYXIgaW5fdXNlOworCXVuc2lnbmVkIGNoYXIgcGFkZGluZzsKKwl1bnNpZ25lZCBpbnQgYWdlOworfTsKKworLyoqCisgKiBIYXJkd2FyZSBsb2NrLgorICoKKyAqIFRoZSBsb2NrIHN0cnVjdHVyZSBpcyBhIHNpbXBsZSBjYWNoZS1saW5lIGFsaWduZWQgaW50ZWdlci4gIFRvIGF2b2lkCisgKiBwcm9jZXNzb3IgYnVzIGNvbnRlbnRpb24gb24gYSBtdWx0aXByb2Nlc3NvciBzeXN0ZW0sIHRoZXJlIHNob3VsZCBub3QgYmUgYW55CisgKiBvdGhlciBkYXRhIHN0b3JlZCBpbiB0aGUgc2FtZSBjYWNoZSBsaW5lLgorICovCitzdHJ1Y3QgZHJtX2h3X2xvY2sgeworCV9fdm9sYXRpbGVfXyB1bnNpZ25lZCBpbnQgbG9jazsJCS8qKjwgbG9jayB2YXJpYWJsZSAqLworCWNoYXIgcGFkZGluZ1s2MF07CQkJLyoqPCBQYWQgdG8gY2FjaGUgbGluZSAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfVkVSU0lPTiBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1HZXRWZXJzaW9uKCkuCisgKi8KK3N0cnVjdCBkcm1fdmVyc2lvbiB7CisJaW50IHZlcnNpb25fbWFqb3I7CSAgLyoqPCBNYWpvciB2ZXJzaW9uICovCisJaW50IHZlcnNpb25fbWlub3I7CSAgLyoqPCBNaW5vciB2ZXJzaW9uICovCisJaW50IHZlcnNpb25fcGF0Y2hsZXZlbDsJICAvKio8IFBhdGNoIGxldmVsICovCisJc2l6ZV90IG5hbWVfbGVuOwkgIC8qKjwgTGVuZ3RoIG9mIG5hbWUgYnVmZmVyICovCisJY2hhciBfX3VzZXIgKm5hbWU7CSAgLyoqPCBOYW1lIG9mIGRyaXZlciAqLworCXNpemVfdCBkYXRlX2xlbjsJICAvKio8IExlbmd0aCBvZiBkYXRlIGJ1ZmZlciAqLworCWNoYXIgX191c2VyICpkYXRlOwkgIC8qKjwgVXNlci1zcGFjZSBidWZmZXIgdG8gaG9sZCBkYXRlICovCisJc2l6ZV90IGRlc2NfbGVuOwkgIC8qKjwgTGVuZ3RoIG9mIGRlc2MgYnVmZmVyICovCisJY2hhciBfX3VzZXIgKmRlc2M7CSAgLyoqPCBVc2VyLXNwYWNlIGJ1ZmZlciB0byBob2xkIGRlc2MgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0dFVF9VTklRVUUgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtR2V0QnVzaWQoKSBhbmQgZHJtU2V0QnVzSWQoKS4KKyAqLworc3RydWN0IGRybV91bmlxdWUgeworCXNpemVfdCB1bmlxdWVfbGVuOwkgIC8qKjwgTGVuZ3RoIG9mIHVuaXF1ZSAqLworCWNoYXIgX191c2VyICp1bmlxdWU7CSAgLyoqPCBVbmlxdWUgbmFtZSBmb3IgZHJpdmVyIGluc3RhbnRpYXRpb24gKi8KK307CisKK3N0cnVjdCBkcm1fbGlzdCB7CisJaW50IGNvdW50OwkJICAvKio8IExlbmd0aCBvZiB1c2VyLXNwYWNlIHN0cnVjdHVyZXMgKi8KKwlzdHJ1Y3QgZHJtX3ZlcnNpb24gX191c2VyICp2ZXJzaW9uOworfTsKKworc3RydWN0IGRybV9ibG9jayB7CisJaW50IHVudXNlZDsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0NPTlRST0wgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtQ3RsSW5zdEhhbmRsZXIoKSBhbmQgZHJtQ3RsVW5pbnN0SGFuZGxlcigpLgorICovCitzdHJ1Y3QgZHJtX2NvbnRyb2wgeworCWVudW0geworCQlEUk1fQUREX0NPTU1BTkQsCisJCURSTV9STV9DT01NQU5ELAorCQlEUk1fSU5TVF9IQU5ETEVSLAorCQlEUk1fVU5JTlNUX0hBTkRMRVIKKwl9IGZ1bmM7CisJaW50IGlycTsKK307CisKKy8qKgorICogVHlwZSBvZiBtZW1vcnkgdG8gbWFwLgorICovCitlbnVtIGRybV9tYXBfdHlwZSB7CisJX0RSTV9GUkFNRV9CVUZGRVIgPSAwLAkgIC8qKjwgV0MgKG5vIGNhY2hpbmcpLCBubyBjb3JlIGR1bXAgKi8KKwlfRFJNX1JFR0lTVEVSUyA9IDEsCSAgLyoqPCBubyBjYWNoaW5nLCBubyBjb3JlIGR1bXAgKi8KKwlfRFJNX1NITSA9IDIsCQkgIC8qKjwgc2hhcmVkLCBjYWNoZWQgKi8KKwlfRFJNX0FHUCA9IDMsCQkgIC8qKjwgQUdQL0dBUlQgKi8KKwlfRFJNX1NDQVRURVJfR0FUSEVSID0gNCwgIC8qKjwgU2NhdHRlci9nYXRoZXIgbWVtb3J5IGZvciBQQ0kgRE1BICovCisJX0RSTV9DT05TSVNURU5UID0gNSwJICAvKio8IENvbnNpc3RlbnQgbWVtb3J5IGZvciBQQ0kgRE1BICovCit9OworCisvKioKKyAqIE1lbW9yeSBtYXBwaW5nIGZsYWdzLgorICovCitlbnVtIGRybV9tYXBfZmxhZ3MgeworCV9EUk1fUkVTVFJJQ1RFRCA9IDB4MDEsCSAgICAgLyoqPCBDYW5ub3QgYmUgbWFwcGVkIHRvIHVzZXItdmlydHVhbCAqLworCV9EUk1fUkVBRF9PTkxZID0gMHgwMiwKKwlfRFJNX0xPQ0tFRCA9IDB4MDQsCSAgICAgLyoqPCBzaGFyZWQsIGNhY2hlZCwgbG9ja2VkICovCisJX0RSTV9LRVJORUwgPSAweDA4LAkgICAgIC8qKjwga2VybmVsIHJlcXVpcmVzIGFjY2VzcyAqLworCV9EUk1fV1JJVEVfQ09NQklOSU5HID0gMHgxMCwgLyoqPCB1c2Ugd3JpdGUtY29tYmluaW5nIGlmIGF2YWlsYWJsZSAqLworCV9EUk1fQ09OVEFJTlNfTE9DSyA9IDB4MjAsICAgLyoqPCBTSE0gcGFnZSB0aGF0IGNvbnRhaW5zIGxvY2sgKi8KKwlfRFJNX1JFTU9WQUJMRSA9IDB4NDAsCSAgICAgLyoqPCBSZW1vdmFibGUgbWFwcGluZyAqLworCV9EUk1fRFJJVkVSID0gMHg4MAkgICAgIC8qKjwgTWFuYWdlZCBieSBkcml2ZXIgKi8KK307CisKK3N0cnVjdCBkcm1fY3R4X3ByaXZfbWFwIHsKKwl1bnNpZ25lZCBpbnQgY3R4X2lkOwkgLyoqPCBDb250ZXh0IHJlcXVlc3RpbmcgcHJpdmF0ZSBtYXBwaW5nICovCisJdm9pZCAqaGFuZGxlOwkJIC8qKjwgSGFuZGxlIG9mIG1hcCAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfR0VUX01BUCwgRFJNX0lPQ1RMX0FERF9NQVAgYW5kIERSTV9JT0NUTF9STV9NQVAgaW9jdGxzCisgKiBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1BZGRNYXAoKS4KKyAqLworc3RydWN0IGRybV9tYXAgeworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwkgLyoqPCBSZXF1ZXN0ZWQgcGh5c2ljYWwgYWRkcmVzcyAoMCBmb3IgU0FSRUEpKi8KKwl1bnNpZ25lZCBsb25nIHNpemU7CSAvKio8IFJlcXVlc3RlZCBwaHlzaWNhbCBzaXplIChieXRlcykgKi8KKwllbnVtIGRybV9tYXBfdHlwZSB0eXBlOwkgLyoqPCBUeXBlIG9mIG1lbW9yeSB0byBtYXAgKi8KKwllbnVtIGRybV9tYXBfZmxhZ3MgZmxhZ3M7CSAvKio8IEZsYWdzICovCisJdm9pZCAqaGFuZGxlOwkJIC8qKjwgVXNlci1zcGFjZTogIkhhbmRsZSIgdG8gcGFzcyB0byBtbWFwKCkgKi8KKwkJCQkgLyoqPCBLZXJuZWwtc3BhY2U6IGtlcm5lbC12aXJ0dWFsIGFkZHJlc3MgKi8KKwlpbnQgbXRycjsJCSAvKio8IE1UUlIgc2xvdCB1c2VkICovCisJLyogICBQcml2YXRlIGRhdGEgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0dFVF9DTElFTlQgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9jbGllbnQgeworCWludCBpZHg7CQkvKio8IFdoaWNoIGNsaWVudCBkZXNpcmVkPyAqLworCWludCBhdXRoOwkJLyoqPCBJcyBjbGllbnQgYXV0aGVudGljYXRlZD8gKi8KKwl1bnNpZ25lZCBsb25nIHBpZDsJLyoqPCBQcm9jZXNzIElEICovCisJdW5zaWduZWQgbG9uZyB1aWQ7CS8qKjwgVXNlciBJRCAqLworCXVuc2lnbmVkIGxvbmcgbWFnaWM7CS8qKjwgTWFnaWMgKi8KKwl1bnNpZ25lZCBsb25nIGlvY3M7CS8qKjwgSW9jdGwgY291bnQgKi8KK307CisKK2VudW0gZHJtX3N0YXRfdHlwZSB7CisJX0RSTV9TVEFUX0xPQ0ssCisJX0RSTV9TVEFUX09QRU5TLAorCV9EUk1fU1RBVF9DTE9TRVMsCisJX0RSTV9TVEFUX0lPQ1RMUywKKwlfRFJNX1NUQVRfTE9DS1MsCisJX0RSTV9TVEFUX1VOTE9DS1MsCisJX0RSTV9TVEFUX1ZBTFVFLAkvKio8IEdlbmVyaWMgdmFsdWUgKi8KKwlfRFJNX1NUQVRfQllURSwJCS8qKjwgR2VuZXJpYyBieXRlIGNvdW50ZXIgKDEwMjRieXRlcy9LKSAqLworCV9EUk1fU1RBVF9DT1VOVCwJLyoqPCBHZW5lcmljIG5vbi1ieXRlIGNvdW50ZXIgKDEwMDAvaykgKi8KKworCV9EUk1fU1RBVF9JUlEsCQkvKio8IElSUSAqLworCV9EUk1fU1RBVF9QUklNQVJZLAkvKio8IFByaW1hcnkgRE1BIGJ5dGVzICovCisJX0RSTV9TVEFUX1NFQ09OREFSWSwJLyoqPCBTZWNvbmRhcnkgRE1BIGJ5dGVzICovCisJX0RSTV9TVEFUX0RNQSwJCS8qKjwgRE1BICovCisJX0RSTV9TVEFUX1NQRUNJQUwsCS8qKjwgU3BlY2lhbCBETUEgKGUuZy4sIHByaW9yaXR5IG9yIHBvbGxlZCkgKi8KKwlfRFJNX1NUQVRfTUlTU0VECS8qKjwgTWlzc2VkIERNQSBvcHBvcnR1bml0eSAqLworCSAgICAvKiBBZGQgdG8gdGhlICpFTkQqIG9mIHRoZSBsaXN0ICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9HRVRfU1RBVFMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9zdGF0cyB7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBsb25nIHZhbHVlOworCQllbnVtIGRybV9zdGF0X3R5cGUgdHlwZTsKKwl9IGRhdGFbMTVdOworfTsKKworLyoqCisgKiBIYXJkd2FyZSBsb2NraW5nIGZsYWdzLgorICovCitlbnVtIGRybV9sb2NrX2ZsYWdzIHsKKwlfRFJNX0xPQ0tfUkVBRFkgPSAweDAxLAkgICAgIC8qKjwgV2FpdCB1bnRpbCBoYXJkd2FyZSBpcyByZWFkeSBmb3IgRE1BICovCisJX0RSTV9MT0NLX1FVSUVTQ0VOVCA9IDB4MDIsICAvKio8IFdhaXQgdW50aWwgaGFyZHdhcmUgcXVpZXNjZW50ICovCisJX0RSTV9MT0NLX0ZMVVNIID0gMHgwNCwJICAgICAvKio8IEZsdXNoIHRoaXMgY29udGV4dCdzIERNQSBxdWV1ZSBmaXJzdCAqLworCV9EUk1fTE9DS19GTFVTSF9BTEwgPSAweDA4LCAgLyoqPCBGbHVzaCBhbGwgRE1BIHF1ZXVlcyBmaXJzdCAqLworCS8qIFRoZXNlICpIQUxUKiBmbGFncyBhcmVuJ3Qgc3VwcG9ydGVkIHlldAorCSAgIC0tIHRoZXkgd2lsbCBiZSB1c2VkIHRvIHN1cHBvcnQgdGhlCisJICAgZnVsbC1zY3JlZW4gREdBLWxpa2UgbW9kZS4gKi8KKwlfRFJNX0hBTFRfQUxMX1FVRVVFUyA9IDB4MTAsIC8qKjwgSGFsdCBhbGwgY3VycmVudCBhbmQgZnV0dXJlIHF1ZXVlcyAqLworCV9EUk1fSEFMVF9DVVJfUVVFVUVTID0gMHgyMCAgLyoqPCBIYWx0IGFsbCBjdXJyZW50IHF1ZXVlcyAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfTE9DSywgRFJNX0lPQ1RMX1VOTE9DSyBhbmQgRFJNX0lPQ1RMX0ZJTklTSCBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1HZXRMb2NrKCkgYW5kIGRybVVubG9jaygpLgorICovCitzdHJ1Y3QgZHJtX2xvY2sgeworCWludCBjb250ZXh0OworCWVudW0gZHJtX2xvY2tfZmxhZ3MgZmxhZ3M7Cit9OworCisvKioKKyAqIERNQSBmbGFncworICoKKyAqIFx3YXJuaW5nCisgKiBUaGVzZSB2YWx1ZXMgXGUgbXVzdCBtYXRjaCB4Zjg2ZHJtLmguCisgKgorICogXHNhIGRybV9kbWEuCisgKi8KK2VudW0gZHJtX2RtYV9mbGFncyB7CisJLyogRmxhZ3MgZm9yIERNQSBidWZmZXIgZGlzcGF0Y2ggKi8KKwlfRFJNX0RNQV9CTE9DSyA9IDB4MDEsCSAgICAgIC8qKjwKKwkJCQkgICAgICAgKiBCbG9jayB1bnRpbCBidWZmZXIgZGlzcGF0Y2hlZC4KKwkJCQkgICAgICAgKgorCQkJCSAgICAgICAqIFxub3RlIFRoZSBidWZmZXIgbWF5IG5vdCB5ZXQgaGF2ZQorCQkJCSAgICAgICAqIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBoYXJkd2FyZSAtLQorCQkJCSAgICAgICAqIGdldHRpbmcgYSBoYXJkd2FyZSBsb2NrIHdpdGggdGhlCisJCQkJICAgICAgICogaGFyZHdhcmUgcXVpZXNjZW50IHdpbGwgZW5zdXJlCisJCQkJICAgICAgICogdGhhdCB0aGUgYnVmZmVyIGhhcyBiZWVuCisJCQkJICAgICAgICogcHJvY2Vzc2VkLgorCQkJCSAgICAgICAqLworCV9EUk1fRE1BX1dISUxFX0xPQ0tFRCA9IDB4MDIsIC8qKjwgRGlzcGF0Y2ggd2hpbGUgbG9jayBoZWxkICovCisJX0RSTV9ETUFfUFJJT1JJVFkgPSAweDA0LCAgICAgLyoqPCBIaWdoIHByaW9yaXR5IGRpc3BhdGNoICovCisKKwkvKiBGbGFncyBmb3IgRE1BIGJ1ZmZlciByZXF1ZXN0ICovCisJX0RSTV9ETUFfV0FJVCA9IDB4MTAsCSAgICAgIC8qKjwgV2FpdCBmb3IgZnJlZSBidWZmZXJzICovCisJX0RSTV9ETUFfU01BTExFUl9PSyA9IDB4MjAsICAgLyoqPCBTbWFsbGVyLXRoYW4tcmVxdWVzdGVkIGJ1ZmZlcnMgT0sgKi8KKwlfRFJNX0RNQV9MQVJHRVJfT0sgPSAweDQwICAgICAvKio8IExhcmdlci10aGFuLXJlcXVlc3RlZCBidWZmZXJzIE9LICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9BRERfQlVGUyBhbmQgRFJNX0lPQ1RMX01BUktfQlVGUyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1BZGRCdWZzKCkuCisgKi8KK3N0cnVjdCBkcm1fYnVmX2Rlc2MgeworCWludCBjb3VudDsJCSAvKio8IE51bWJlciBvZiBidWZmZXJzIG9mIHRoaXMgc2l6ZSAqLworCWludCBzaXplOwkJIC8qKjwgU2l6ZSBpbiBieXRlcyAqLworCWludCBsb3dfbWFyazsJCSAvKio8IExvdyB3YXRlciBtYXJrICovCisJaW50IGhpZ2hfbWFyazsJCSAvKio8IEhpZ2ggd2F0ZXIgbWFyayAqLworCWVudW0geworCQlfRFJNX1BBR0VfQUxJR04gPSAweDAxLAkvKio8IEFsaWduIG9uIHBhZ2UgYm91bmRhcmllcyBmb3IgRE1BICovCisJCV9EUk1fQUdQX0JVRkZFUiA9IDB4MDIsCS8qKjwgQnVmZmVyIGlzIGluIEFHUCBzcGFjZSAqLworCQlfRFJNX1NHX0JVRkZFUiA9IDB4MDQsCS8qKjwgU2NhdHRlci9nYXRoZXIgbWVtb3J5IGJ1ZmZlciAqLworCQlfRFJNX0ZCX0JVRkZFUiA9IDB4MDgsCS8qKjwgQnVmZmVyIGlzIGluIGZyYW1lIGJ1ZmZlciAqLworCQlfRFJNX1BDSV9CVUZGRVJfUk8gPSAweDEwIC8qKjwgTWFwIFBDSSBETUEgYnVmZmVyIHJlYWQtb25seSAqLworCX0gZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBhZ3Bfc3RhcnQ7IC8qKjwKKwkJCQkgICogU3RhcnQgYWRkcmVzcyBvZiB3aGVyZSB0aGUgQUdQIGJ1ZmZlcnMgYXJlCisJCQkJICAqIGluIHRoZSBBR1AgYXBlcnR1cmUKKwkJCQkgICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9JTkZPX0JVRlMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9idWZfaW5mbyB7CisJaW50IGNvdW50OwkJLyoqPCBFbnRyaWVzIGluIGxpc3QgKi8KKwlzdHJ1Y3QgZHJtX2J1Zl9kZXNjIF9fdXNlciAqbGlzdDsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0ZSRUVfQlVGUyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICovCitzdHJ1Y3QgZHJtX2J1Zl9mcmVlIHsKKwlpbnQgY291bnQ7CisJaW50IF9fdXNlciAqbGlzdDsKK307CisKKy8qKgorICogQnVmZmVyIGluZm9ybWF0aW9uCisgKgorICogXHNhIGRybV9idWZfbWFwLgorICovCitzdHJ1Y3QgZHJtX2J1Zl9wdWIgeworCWludCBpZHg7CQkgICAgICAgLyoqPCBJbmRleCBpbnRvIHRoZSBtYXN0ZXIgYnVmZmVyIGxpc3QgKi8KKwlpbnQgdG90YWw7CQkgICAgICAgLyoqPCBCdWZmZXIgc2l6ZSAqLworCWludCB1c2VkOwkJICAgICAgIC8qKjwgQW1vdW50IG9mIGJ1ZmZlciBpbiB1c2UgKGZvciBETUEpICovCisJdm9pZCBfX3VzZXIgKmFkZHJlc3M7CSAgICAgICAvKio8IEFkZHJlc3Mgb2YgYnVmZmVyICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9NQVBfQlVGUyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICovCitzdHJ1Y3QgZHJtX2J1Zl9tYXAgeworCWludCBjb3VudDsJCS8qKjwgTGVuZ3RoIG9mIHRoZSBidWZmZXIgbGlzdCAqLworCXZvaWQgX191c2VyICp2aXJ0dWFsOwkJLyoqPCBNbWFwJ2QgYXJlYSBpbiB1c2VyLXZpcnR1YWwgKi8KKwlzdHJ1Y3QgZHJtX2J1Zl9wdWIgX191c2VyICpsaXN0OwkvKio8IEJ1ZmZlciBpbmZvcm1hdGlvbiAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfRE1BIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogSW5kaWNlcyBoZXJlIHJlZmVyIHRvIHRoZSBvZmZzZXQgaW50byB0aGUgYnVmZmVyIGxpc3QgaW4gZHJtX2J1Zl9nZXQuCisgKgorICogXHNhIGRybURNQSgpLgorICovCitzdHJ1Y3QgZHJtX2RtYSB7CisJaW50IGNvbnRleHQ7CQkJICAvKio8IENvbnRleHQgaGFuZGxlICovCisJaW50IHNlbmRfY291bnQ7CQkJICAvKio8IE51bWJlciBvZiBidWZmZXJzIHRvIHNlbmQgKi8KKwlpbnQgX191c2VyICpzZW5kX2luZGljZXM7CSAgLyoqPCBMaXN0IG9mIGhhbmRsZXMgdG8gYnVmZmVycyAqLworCWludCBfX3VzZXIgKnNlbmRfc2l6ZXM7CQkgIC8qKjwgTGVuZ3RocyBvZiBkYXRhIHRvIHNlbmQgKi8KKwllbnVtIGRybV9kbWFfZmxhZ3MgZmxhZ3M7CSAgLyoqPCBGbGFncyAqLworCWludCByZXF1ZXN0X2NvdW50OwkJICAvKio8IE51bWJlciBvZiBidWZmZXJzIHJlcXVlc3RlZCAqLworCWludCByZXF1ZXN0X3NpemU7CQkgIC8qKjwgRGVzaXJlZCBzaXplIGZvciBidWZmZXJzICovCisJaW50IF9fdXNlciAqcmVxdWVzdF9pbmRpY2VzOwkgIC8qKjwgQnVmZmVyIGluZm9ybWF0aW9uICovCisJaW50IF9fdXNlciAqcmVxdWVzdF9zaXplczsKKwlpbnQgZ3JhbnRlZF9jb3VudDsJCSAgLyoqPCBOdW1iZXIgb2YgYnVmZmVycyBncmFudGVkICovCit9OworCitlbnVtIGRybV9jdHhfZmxhZ3MgeworCV9EUk1fQ09OVEVYVF9QUkVTRVJWRUQgPSAweDAxLAorCV9EUk1fQ09OVEVYVF8yRE9OTFkgPSAweDAyCit9OworCisvKioKKyAqIERSTV9JT0NUTF9BRERfQ1RYIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUNyZWF0ZUNvbnRleHQoKSBhbmQgZHJtRGVzdHJveUNvbnRleHQoKS4KKyAqLworc3RydWN0IGRybV9jdHggeworCWRybV9jb250ZXh0X3QgaGFuZGxlOworCWVudW0gZHJtX2N0eF9mbGFncyBmbGFnczsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX1JFU19DVFggaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9jdHhfcmVzIHsKKwlpbnQgY291bnQ7CisJc3RydWN0IGRybV9jdHggX191c2VyICpjb250ZXh0czsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0FERF9EUkFXIGFuZCBEUk1fSU9DVExfUk1fRFJBVyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICovCitzdHJ1Y3QgZHJtX2RyYXcgeworCWRybV9kcmF3YWJsZV90IGhhbmRsZTsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX1VQREFURV9EUkFXIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3R5cGVkZWYgZW51bSB7CisJRFJNX0RSQVdBQkxFX0NMSVBSRUNUUywKK30gZHJtX2RyYXdhYmxlX2luZm9fdHlwZV90OworCitzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3IHsKKwlkcm1fZHJhd2FibGVfdCBoYW5kbGU7CisJdW5zaWduZWQgaW50IHR5cGU7CisJdW5zaWduZWQgaW50IG51bTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZGF0YTsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0dFVF9NQUdJQyBhbmQgRFJNX0lPQ1RMX0FVVEhfTUFHSUMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9hdXRoIHsKKwlkcm1fbWFnaWNfdCBtYWdpYzsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0lSUV9CVVNJRCBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1HZXRJbnRlcnJ1cHRGcm9tQnVzSUQoKS4KKyAqLworc3RydWN0IGRybV9pcnFfYnVzaWQgeworCWludCBpcnE7CS8qKjwgSVJRIG51bWJlciAqLworCWludCBidXNudW07CS8qKjwgYnVzIG51bWJlciAqLworCWludCBkZXZudW07CS8qKjwgZGV2aWNlIG51bWJlciAqLworCWludCBmdW5jbnVtOwkvKio8IGZ1bmN0aW9uIG51bWJlciAqLworfTsKKworZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHsKKwlfRFJNX1ZCTEFOS19BQlNPTFVURSA9IDB4MCwJLyoqPCBXYWl0IGZvciBzcGVjaWZpYyB2Ymxhbmsgc2VxdWVuY2UgbnVtYmVyICovCisJX0RSTV9WQkxBTktfUkVMQVRJVkUgPSAweDEsCS8qKjwgV2FpdCBmb3IgZ2l2ZW4gbnVtYmVyIG9mIHZibGFua3MgKi8KKwlfRFJNX1ZCTEFOS19ORVhUT05NSVNTID0gMHgxMDAwMDAwMCwJLyoqPCBJZiBtaXNzZWQsIHdhaXQgZm9yIG5leHQgdmJsYW5rICovCisJX0RSTV9WQkxBTktfU0VDT05EQVJZID0gMHgyMDAwMDAwMCwJLyoqPCBTZWNvbmRhcnkgZGlzcGxheSBjb250cm9sbGVyICovCisJX0RSTV9WQkxBTktfU0lHTkFMID0gMHg0MDAwMDAwMAkvKio8IFNlbmQgc2lnbmFsIGluc3RlYWQgb2YgYmxvY2tpbmcgKi8KK307CisKKyNkZWZpbmUgX0RSTV9WQkxBTktfVFlQRVNfTUFTSyAoX0RSTV9WQkxBTktfQUJTT0xVVEUgfCBfRFJNX1ZCTEFOS19SRUxBVElWRSkKKyNkZWZpbmUgX0RSTV9WQkxBTktfRkxBR1NfTUFTSyAoX0RSTV9WQkxBTktfU0lHTkFMIHwgX0RSTV9WQkxBTktfU0VDT05EQVJZIHwgXAorCQkJCV9EUk1fVkJMQU5LX05FWFRPTk1JU1MpCisKK3N0cnVjdCBkcm1fd2FpdF92YmxhbmtfcmVxdWVzdCB7CisJZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHR5cGU7CisJdW5zaWduZWQgaW50IHNlcXVlbmNlOworCXVuc2lnbmVkIGxvbmcgc2lnbmFsOworfTsKKworc3RydWN0IGRybV93YWl0X3ZibGFua19yZXBseSB7CisJZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHR5cGU7CisJdW5zaWduZWQgaW50IHNlcXVlbmNlOworCWxvbmcgdHZhbF9zZWM7CisJbG9uZyB0dmFsX3VzZWM7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9XQUlUX1ZCTEFOSyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1XYWl0VkJsYW5rKCkuCisgKi8KK3VuaW9uIGRybV93YWl0X3ZibGFuayB7CisJc3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHJlcXVlc3Q7CisJc3RydWN0IGRybV93YWl0X3ZibGFua19yZXBseSByZXBseTsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX0FHUF9FTkFCTEUgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtQWdwRW5hYmxlKCkuCisgKi8KK3N0cnVjdCBkcm1fYWdwX21vZGUgeworCXVuc2lnbmVkIGxvbmcgbW9kZTsJLyoqPCBBR1AgbW9kZSAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfQUdQX0FMTE9DIGFuZCBEUk1fSU9DVExfQUdQX0ZSRUUgaW9jdGxzIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUFncEFsbG9jKCkgYW5kIGRybUFncEZyZWUoKS4KKyAqLworc3RydWN0IGRybV9hZ3BfYnVmZmVyIHsKKwl1bnNpZ25lZCBsb25nIHNpemU7CS8qKjwgSW4gYnl0ZXMgLS0gd2lsbCByb3VuZCB0byBwYWdlIGJvdW5kYXJ5ICovCisJdW5zaWduZWQgbG9uZyBoYW5kbGU7CS8qKjwgVXNlZCBmb3IgYmluZGluZyAvIHVuYmluZGluZyAqLworCXVuc2lnbmVkIGxvbmcgdHlwZTsJLyoqPCBUeXBlIG9mIG1lbW9yeSB0byBhbGxvY2F0ZSAqLworCXVuc2lnbmVkIGxvbmcgcGh5c2ljYWw7CS8qKjwgUGh5c2ljYWwgdXNlZCBieSBpODEwICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9BR1BfQklORCBhbmQgRFJNX0lPQ1RMX0FHUF9VTkJJTkQgaW9jdGxzIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUFncEJpbmQoKSBhbmQgZHJtQWdwVW5iaW5kKCkuCisgKi8KK3N0cnVjdCBkcm1fYWdwX2JpbmRpbmcgeworCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkvKio8IEZyb20gZHJtX2FncF9idWZmZXIgKi8KKwl1bnNpZ25lZCBsb25nIG9mZnNldDsJLyoqPCBJbiBieXRlcyAtLSB3aWxsIHJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0FHUF9JTkZPIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUFncFZlcnNpb25NYWpvcigpLCBkcm1BZ3BWZXJzaW9uTWlub3IoKSwgZHJtQWdwR2V0TW9kZSgpLAorICogZHJtQWdwQmFzZSgpLCBkcm1BZ3BTaXplKCksIGRybUFncE1lbW9yeVVzZWQoKSwgZHJtQWdwTWVtb3J5QXZhaWwoKSwKKyAqIGRybUFncFZlbmRvcklkKCkgYW5kIGRybUFncERldmljZUlkKCkuCisgKi8KK3N0cnVjdCBkcm1fYWdwX2luZm8geworCWludCBhZ3BfdmVyc2lvbl9tYWpvcjsKKwlpbnQgYWdwX3ZlcnNpb25fbWlub3I7CisJdW5zaWduZWQgbG9uZyBtb2RlOworCXVuc2lnbmVkIGxvbmcgYXBlcnR1cmVfYmFzZTsJLyogcGh5c2ljYWwgYWRkcmVzcyAqLworCXVuc2lnbmVkIGxvbmcgYXBlcnR1cmVfc2l6ZTsJLyogYnl0ZXMgKi8KKwl1bnNpZ25lZCBsb25nIG1lbW9yeV9hbGxvd2VkOwkvKiBieXRlcyAqLworCXVuc2lnbmVkIGxvbmcgbWVtb3J5X3VzZWQ7CisKKwkvKiBQQ0kgaW5mb3JtYXRpb24gKi8KKwl1bnNpZ25lZCBzaG9ydCBpZF92ZW5kb3I7CisJdW5zaWduZWQgc2hvcnQgaWRfZGV2aWNlOworfTsKKworLyoqCisgKiBEUk1fSU9DVExfU0dfQUxMT0MgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlciB7CisJdW5zaWduZWQgbG9uZyBzaXplOwkvKio8IEluIGJ5dGVzIC0tIHdpbGwgcm91bmQgdG8gcGFnZSBib3VuZGFyeSAqLworCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkvKio8IFVzZWQgZm9yIG1hcHBpbmcgLyB1bm1hcHBpbmcgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX1NFVF9WRVJTSU9OIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fc2V0X3ZlcnNpb24geworCWludCBkcm1fZGlfbWFqb3I7CisJaW50IGRybV9kaV9taW5vcjsKKwlpbnQgZHJtX2RkX21ham9yOworCWludCBkcm1fZGRfbWlub3I7Cit9OworCisjZGVmaW5lIERSTV9JT0NUTF9CQVNFCQkJJ2QnCisjZGVmaW5lIERSTV9JTyhucikJCQlfSU8oRFJNX0lPQ1RMX0JBU0UsbnIpCisjZGVmaW5lIERSTV9JT1IobnIsdHlwZSkJCV9JT1IoRFJNX0lPQ1RMX0JBU0UsbnIsdHlwZSkKKyNkZWZpbmUgRFJNX0lPVyhucix0eXBlKQkJX0lPVyhEUk1fSU9DVExfQkFTRSxucix0eXBlKQorI2RlZmluZSBEUk1fSU9XUihucix0eXBlKQkJX0lPV1IoRFJNX0lPQ1RMX0JBU0UsbnIsdHlwZSkKKworI2RlZmluZSBEUk1fSU9DVExfVkVSU0lPTgkJRFJNX0lPV1IoMHgwMCwgc3RydWN0IGRybV92ZXJzaW9uKQorI2RlZmluZSBEUk1fSU9DVExfR0VUX1VOSVFVRQkJRFJNX0lPV1IoMHgwMSwgc3RydWN0IGRybV91bmlxdWUpCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfTUFHSUMJCURSTV9JT1IoIDB4MDIsIHN0cnVjdCBkcm1fYXV0aCkKKyNkZWZpbmUgRFJNX0lPQ1RMX0lSUV9CVVNJRAkJRFJNX0lPV1IoMHgwMywgc3RydWN0IGRybV9pcnFfYnVzaWQpCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfTUFQICAgICAgICAgICAgICAgRFJNX0lPV1IoMHgwNCwgc3RydWN0IGRybV9tYXApCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfQ0xJRU5UICAgICAgICAgICAgRFJNX0lPV1IoMHgwNSwgc3RydWN0IGRybV9jbGllbnQpCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfU1RBVFMgICAgICAgICAgICAgRFJNX0lPUiggMHgwNiwgc3RydWN0IGRybV9zdGF0cykKKyNkZWZpbmUgRFJNX0lPQ1RMX1NFVF9WRVJTSU9OCQlEUk1fSU9XUigweDA3LCBzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uKQorCisjZGVmaW5lIERSTV9JT0NUTF9TRVRfVU5JUVVFCQlEUk1fSU9XKCAweDEwLCBzdHJ1Y3QgZHJtX3VuaXF1ZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX0FVVEhfTUFHSUMJCURSTV9JT1coIDB4MTEsIHN0cnVjdCBkcm1fYXV0aCkKKyNkZWZpbmUgRFJNX0lPQ1RMX0JMT0NLCQkJRFJNX0lPV1IoMHgxMiwgc3RydWN0IGRybV9ibG9jaykKKyNkZWZpbmUgRFJNX0lPQ1RMX1VOQkxPQ0sJCURSTV9JT1dSKDB4MTMsIHN0cnVjdCBkcm1fYmxvY2spCisjZGVmaW5lIERSTV9JT0NUTF9DT05UUk9MCQlEUk1fSU9XKCAweDE0LCBzdHJ1Y3QgZHJtX2NvbnRyb2wpCisjZGVmaW5lIERSTV9JT0NUTF9BRERfTUFQCQlEUk1fSU9XUigweDE1LCBzdHJ1Y3QgZHJtX21hcCkKKyNkZWZpbmUgRFJNX0lPQ1RMX0FERF9CVUZTCQlEUk1fSU9XUigweDE2LCBzdHJ1Y3QgZHJtX2J1Zl9kZXNjKQorI2RlZmluZSBEUk1fSU9DVExfTUFSS19CVUZTCQlEUk1fSU9XKCAweDE3LCBzdHJ1Y3QgZHJtX2J1Zl9kZXNjKQorI2RlZmluZSBEUk1fSU9DVExfSU5GT19CVUZTCQlEUk1fSU9XUigweDE4LCBzdHJ1Y3QgZHJtX2J1Zl9pbmZvKQorI2RlZmluZSBEUk1fSU9DVExfTUFQX0JVRlMJCURSTV9JT1dSKDB4MTksIHN0cnVjdCBkcm1fYnVmX21hcCkKKyNkZWZpbmUgRFJNX0lPQ1RMX0ZSRUVfQlVGUwkJRFJNX0lPVyggMHgxYSwgc3RydWN0IGRybV9idWZfZnJlZSkKKworI2RlZmluZSBEUk1fSU9DVExfUk1fTUFQCQlEUk1fSU9XKCAweDFiLCBzdHJ1Y3QgZHJtX21hcCkKKworI2RlZmluZSBEUk1fSU9DVExfU0VUX1NBUkVBX0NUWAkJRFJNX0lPVyggMHgxYywgc3RydWN0IGRybV9jdHhfcHJpdl9tYXApCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfU0FSRUFfQ1RYIAlEUk1fSU9XUigweDFkLCBzdHJ1Y3QgZHJtX2N0eF9wcml2X21hcCkKKworI2RlZmluZSBEUk1fSU9DVExfQUREX0NUWAkJRFJNX0lPV1IoMHgyMCwgc3RydWN0IGRybV9jdHgpCisjZGVmaW5lIERSTV9JT0NUTF9STV9DVFgJCURSTV9JT1dSKDB4MjEsIHN0cnVjdCBkcm1fY3R4KQorI2RlZmluZSBEUk1fSU9DVExfTU9EX0NUWAkJRFJNX0lPVyggMHgyMiwgc3RydWN0IGRybV9jdHgpCisjZGVmaW5lIERSTV9JT0NUTF9HRVRfQ1RYCQlEUk1fSU9XUigweDIzLCBzdHJ1Y3QgZHJtX2N0eCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1NXSVRDSF9DVFgJCURSTV9JT1coIDB4MjQsIHN0cnVjdCBkcm1fY3R4KQorI2RlZmluZSBEUk1fSU9DVExfTkVXX0NUWAkJRFJNX0lPVyggMHgyNSwgc3RydWN0IGRybV9jdHgpCisjZGVmaW5lIERSTV9JT0NUTF9SRVNfQ1RYCQlEUk1fSU9XUigweDI2LCBzdHJ1Y3QgZHJtX2N0eF9yZXMpCisjZGVmaW5lIERSTV9JT0NUTF9BRERfRFJBVwkJRFJNX0lPV1IoMHgyNywgc3RydWN0IGRybV9kcmF3KQorI2RlZmluZSBEUk1fSU9DVExfUk1fRFJBVwkJRFJNX0lPV1IoMHgyOCwgc3RydWN0IGRybV9kcmF3KQorI2RlZmluZSBEUk1fSU9DVExfRE1BCQkJRFJNX0lPV1IoMHgyOSwgc3RydWN0IGRybV9kbWEpCisjZGVmaW5lIERSTV9JT0NUTF9MT0NLCQkJRFJNX0lPVyggMHgyYSwgc3RydWN0IGRybV9sb2NrKQorI2RlZmluZSBEUk1fSU9DVExfVU5MT0NLCQlEUk1fSU9XKCAweDJiLCBzdHJ1Y3QgZHJtX2xvY2spCisjZGVmaW5lIERSTV9JT0NUTF9GSU5JU0gJCURSTV9JT1coIDB4MmMsIHN0cnVjdCBkcm1fbG9jaykKKworI2RlZmluZSBEUk1fSU9DVExfQUdQX0FDUVVJUkUJCURSTV9JTyggIDB4MzApCisjZGVmaW5lIERSTV9JT0NUTF9BR1BfUkVMRUFTRQkJRFJNX0lPKCAgMHgzMSkKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9FTkFCTEUJCURSTV9JT1coIDB4MzIsIHN0cnVjdCBkcm1fYWdwX21vZGUpCisjZGVmaW5lIERSTV9JT0NUTF9BR1BfSU5GTwkJRFJNX0lPUiggMHgzMywgc3RydWN0IGRybV9hZ3BfaW5mbykKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9BTExPQwkJRFJNX0lPV1IoMHgzNCwgc3RydWN0IGRybV9hZ3BfYnVmZmVyKQorI2RlZmluZSBEUk1fSU9DVExfQUdQX0ZSRUUJCURSTV9JT1coIDB4MzUsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlcikKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9CSU5ECQlEUk1fSU9XKCAweDM2LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nKQorI2RlZmluZSBEUk1fSU9DVExfQUdQX1VOQklORAkJRFJNX0lPVyggMHgzNywgc3RydWN0IGRybV9hZ3BfYmluZGluZykKKworI2RlZmluZSBEUk1fSU9DVExfU0dfQUxMT0MJCURSTV9JT1dSKDB4MzgsIHN0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIpCisjZGVmaW5lIERSTV9JT0NUTF9TR19GUkVFCQlEUk1fSU9XKCAweDM5LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyKQorCisjZGVmaW5lIERSTV9JT0NUTF9XQUlUX1ZCTEFOSwkJRFJNX0lPV1IoMHgzYSwgdW5pb24gZHJtX3dhaXRfdmJsYW5rKQorCisjZGVmaW5lIERSTV9JT0NUTF9VUERBVEVfRFJBVwkJRFJNX0lPVygweDNmLCBzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3KQorCisvKioKKyAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzCisgKiBUaGUgZGV2aWNlIHNwZWNpZmljIGlvY3RsIHJhbmdlIGlzIGZyb20gMHg0MCB0byAweDk5LgorICogR2VuZXJpYyBJT0NUTFMgcmVzdGFydCBhdCAweEEwLgorICoKKyAqIFxzYSBkcm1Db21tYW5kTm9uZSgpLCBkcm1Db21tYW5kUmVhZCgpLCBkcm1Db21tYW5kV3JpdGUoKSwgYW5kCisgKiBkcm1Db21tYW5kUmVhZFdyaXRlKCkuCisgKi8KKyNkZWZpbmUgRFJNX0NPTU1BTkRfQkFTRSAgICAgICAgICAgICAgICAweDQwCisjZGVmaW5lIERSTV9DT01NQU5EX0VORAkJCTB4QTAKKworLyogdHlwZWRlZiBhcmVhICovCisjaWZuZGVmIF9fS0VSTkVMX18KK3R5cGVkZWYgc3RydWN0IGRybV9jbGlwX3JlY3QgZHJtX2NsaXBfcmVjdF90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gZHJtX2RyYXdhYmxlX2luZm9fdDsKK3R5cGVkZWYgc3RydWN0IGRybV90ZXhfcmVnaW9uIGRybV90ZXhfcmVnaW9uX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1faHdfbG9jayBkcm1faHdfbG9ja190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX3ZlcnNpb24gZHJtX3ZlcnNpb25fdDsKK3R5cGVkZWYgc3RydWN0IGRybV91bmlxdWUgZHJtX3VuaXF1ZV90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2xpc3QgZHJtX2xpc3RfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9ibG9jayBkcm1fYmxvY2tfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9jb250cm9sIGRybV9jb250cm9sX3Q7Cit0eXBlZGVmIGVudW0gZHJtX21hcF90eXBlIGRybV9tYXBfdHlwZV90OwordHlwZWRlZiBlbnVtIGRybV9tYXBfZmxhZ3MgZHJtX21hcF9mbGFnc190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2N0eF9wcml2X21hcCBkcm1fY3R4X3ByaXZfbWFwX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fbWFwIGRybV9tYXBfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9jbGllbnQgZHJtX2NsaWVudF90OwordHlwZWRlZiBlbnVtIGRybV9zdGF0X3R5cGUgZHJtX3N0YXRfdHlwZV90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX3N0YXRzIGRybV9zdGF0c190OwordHlwZWRlZiBlbnVtIGRybV9sb2NrX2ZsYWdzIGRybV9sb2NrX2ZsYWdzX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fbG9jayBkcm1fbG9ja190OwordHlwZWRlZiBlbnVtIGRybV9kbWFfZmxhZ3MgZHJtX2RtYV9mbGFnc190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9kZXNjIGRybV9idWZfZGVzY190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9pbmZvIGRybV9idWZfaW5mb190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9mcmVlIGRybV9idWZfZnJlZV90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9wdWIgZHJtX2J1Zl9wdWJfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9idWZfbWFwIGRybV9idWZfbWFwX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fZG1hIGRybV9kbWFfdDsKK3R5cGVkZWYgdW5pb24gZHJtX3dhaXRfdmJsYW5rIGRybV93YWl0X3ZibGFua190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9tb2RlIGRybV9hZ3BfbW9kZV90OwordHlwZWRlZiBlbnVtIGRybV9jdHhfZmxhZ3MgZHJtX2N0eF9mbGFnc190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2N0eCBkcm1fY3R4X3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fY3R4X3JlcyBkcm1fY3R4X3Jlc190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2RyYXcgZHJtX2RyYXdfdDsKK3R5cGVkZWYgc3RydWN0IGRybV91cGRhdGVfZHJhdyBkcm1fdXBkYXRlX2RyYXdfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9hdXRoIGRybV9hdXRoX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1faXJxX2J1c2lkIGRybV9pcnFfYnVzaWRfdDsKK3R5cGVkZWYgZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIGRybV92Ymxhbmtfc2VxX3R5cGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgZHJtX2FncF9idWZmZXJfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9hZ3BfYmluZGluZyBkcm1fYWdwX2JpbmRpbmdfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9hZ3BfaW5mbyBkcm1fYWdwX2luZm9fdDsKK3R5cGVkZWYgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlciBkcm1fc2NhdHRlcl9nYXRoZXJfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9zZXRfdmVyc2lvbiBkcm1fc2V0X3ZlcnNpb25fdDsKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzFiMTNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCkBAIC0wLDAgKzEsMTE1NCBAQAorLyoqCisgKiBcZmlsZSBkcm1QLmgKKyAqIFByaXZhdGUgaGVhZGVyIGZvciBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKKyAqCisgKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgorICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworLyoKKyAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfRFJNX1BfSF8KKyNkZWZpbmUgX0RSTV9QX0hfCisKKy8qIElmIHlvdSB3YW50IHRoZSBtZW1vcnkgYWxsb2MgZGVidWcgZnVuY3Rpb25hbGl0eSwgY2hhbmdlIGRlZmluZSBiZWxvdyAqLworLyogI2RlZmluZSBERUJVR19NRU1PUlkgKi8KKworI2lmZGVmIF9fS0VSTkVMX18KKyNpZmRlZiBfX2FscGhhX18KKy8qIGFkZCBpbmNsdWRlIG9mIGN1cnJlbnQuaCBzbyB0aGF0ICJjdXJyZW50IiBpcyBkZWZpbmVkCisgKiBiZWZvcmUgc3RhdGljIGlubGluZSBmdW5jcyBpbiB3YWl0LmguIERvaW5nIHRoaXMgc28gd2UKKyAqIGNhbiBidWlsZCB0aGUgRFJNIChwYXJ0IG9mIFBJIERSSSkuIDQvMjEvMjAwMCBTICsgQiAqLworI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CisjZW5kaWYJCQkJLyogX19hbHBoYV9fICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CS8qIEZvciAodW4pbG9ja19rZXJuZWwgKi8KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaWYgZGVmaW5lZChfX2FscGhhX18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pCisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4JLyogRm9yIHB0ZV93cnByb3RlY3QgKi8KKyNlbmRpZgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9tbWFuLmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpZmRlZiBDT05GSUdfTVRSUgorI2luY2x1ZGUgPGFzbS9tdHJyLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19BR1ApIHx8IGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9hZ3BfYmFja2VuZC5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSAiZHJtLmgiCisKKyNpbmNsdWRlIDxsaW51eC9pZHIuaD4KKworI2RlZmluZSBfX09TX0hBU19BR1AgKGRlZmluZWQoQ09ORklHX0FHUCkgfHwgKGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpICYmIGRlZmluZWQoTU9EVUxFKSkpCisjZGVmaW5lIF9fT1NfSEFTX01UUlIgKGRlZmluZWQoQ09ORklHX01UUlIpKQorCitzdHJ1Y3QgZHJtX2ZpbGU7CitzdHJ1Y3QgZHJtX2RldmljZTsKKworI2luY2x1ZGUgImRybV9vc19saW51eC5oIgorI2luY2x1ZGUgImRybV9oYXNodGFiLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKiBcbmFtZSBEUk0gdGVtcGxhdGUgY3VzdG9taXphdGlvbiBkZWZhdWx0cyAqLworLypAeyovCisKKy8qIGRyaXZlciBjYXBhYmlsaXRpZXMgYW5kIHJlcXVpcmVtZW50cyBtYXNrICovCisjZGVmaW5lIERSSVZFUl9VU0VfQUdQICAgICAweDEKKyNkZWZpbmUgRFJJVkVSX1JFUVVJUkVfQUdQIDB4MgorI2RlZmluZSBEUklWRVJfVVNFX01UUlIgICAgMHg0CisjZGVmaW5lIERSSVZFUl9QQ0lfRE1BICAgICAweDgKKyNkZWZpbmUgRFJJVkVSX1NHICAgICAgICAgIDB4MTAKKyNkZWZpbmUgRFJJVkVSX0hBVkVfRE1BICAgIDB4MjAKKyNkZWZpbmUgRFJJVkVSX0hBVkVfSVJRICAgIDB4NDAKKyNkZWZpbmUgRFJJVkVSX0lSUV9TSEFSRUQgIDB4ODAKKyNkZWZpbmUgRFJJVkVSX0lSUV9WQkwgICAgIDB4MTAwCisjZGVmaW5lIERSSVZFUl9ETUFfUVVFVUUgICAweDIwMAorI2RlZmluZSBEUklWRVJfRkJfRE1BICAgICAgMHg0MDAKKyNkZWZpbmUgRFJJVkVSX0lSUV9WQkwyICAgIDB4ODAwCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKiBcbmFtZSBCZWdpbiB0aGUgRFJNLi4uICovCisvKkB7Ki8KKworI2RlZmluZSBEUk1fREVCVUdfQ09ERSAyCSAgLyoqPCBJbmNsdWRlIGRlYnVnZ2luZyBjb2RlIGlmID4gMSwgdGhlbgorCQkJCSAgICAgYWxzbyBpbmNsdWRlIGxvb3BpbmcgZGV0ZWN0aW9uLiAqLworCisjZGVmaW5lIERSTV9NQUdJQ19IQVNIX09SREVSICA0ICAvKio8IFNpemUgb2Yga2V5IGhhc2ggdGFibGUuIE11c3QgYmUgcG93ZXIgb2YgMi4gKi8KKyNkZWZpbmUgRFJNX0tFUk5FTF9DT05URVhUICAgIDAJIC8qKjwgQ2hhbmdlIGRybV9yZXNjdHggaWYgY2hhbmdlZCAqLworI2RlZmluZSBEUk1fUkVTRVJWRURfQ09OVEVYVFMgMQkgLyoqPCBDaGFuZ2UgZHJtX3Jlc2N0eCBpZiBjaGFuZ2VkICovCisjZGVmaW5lIERSTV9MT09QSU5HX0xJTUlUICAgICA1MDAwMDAwCisjZGVmaW5lIERSTV9USU1FX1NMSUNFCSAgICAgIChIWi8yMCkgIC8qKjwgVGltZSBzbGljZSBmb3IgR0xYQ29udGV4dHMgKi8KKyNkZWZpbmUgRFJNX0xPQ0tfU0xJQ0UJICAgICAgMQkvKio8IFRpbWUgc2xpY2UgZm9yIGxvY2ssIGluIGppZmZpZXMgKi8KKworI2RlZmluZSBEUk1fRkxBR19ERUJVRwkgIDB4MDEKKworI2RlZmluZSBEUk1fTUVNX0RNQQkgICAwCisjZGVmaW5lIERSTV9NRU1fU0FSRUEJICAgMQorI2RlZmluZSBEUk1fTUVNX0RSSVZFUgkgICAyCisjZGVmaW5lIERSTV9NRU1fTUFHSUMJICAgMworI2RlZmluZSBEUk1fTUVNX0lPQ1RMUwkgICA0CisjZGVmaW5lIERSTV9NRU1fTUFQUwkgICA1CisjZGVmaW5lIERSTV9NRU1fVk1BUwkgICA2CisjZGVmaW5lIERSTV9NRU1fQlVGUwkgICA3CisjZGVmaW5lIERSTV9NRU1fU0VHUwkgICA4CisjZGVmaW5lIERSTV9NRU1fUEFHRVMJICAgOQorI2RlZmluZSBEUk1fTUVNX0ZJTEVTCSAgMTAKKyNkZWZpbmUgRFJNX01FTV9RVUVVRVMJICAxMQorI2RlZmluZSBEUk1fTUVNX0NNRFMJICAxMgorI2RlZmluZSBEUk1fTUVNX01BUFBJTkdTICAxMworI2RlZmluZSBEUk1fTUVNX0JVRkxJU1RTICAxNAorI2RlZmluZSBEUk1fTUVNX0FHUExJU1RTICAxNQorI2RlZmluZSBEUk1fTUVNX1RPVEFMQUdQICAxNgorI2RlZmluZSBEUk1fTUVNX0JPVU5EQUdQICAxNworI2RlZmluZSBEUk1fTUVNX0NUWEJJVE1BUCAxOAorI2RlZmluZSBEUk1fTUVNX1NUVUIgICAgICAxOQorI2RlZmluZSBEUk1fTUVNX1NHTElTVFMgICAyMAorI2RlZmluZSBEUk1fTUVNX0NUWExJU1QgICAyMQorI2RlZmluZSBEUk1fTUVNX01NICAgICAgICAyMgorI2RlZmluZSBEUk1fTUVNX0hBU0hUQUIgICAyMworCisjZGVmaW5lIERSTV9NQVhfQ1RYQklUTUFQIChQQUdFX1NJWkUgKiA4KQorI2RlZmluZSBEUk1fTUFQX0hBU0hfT0ZGU0VUIDB4MTAwMDAwMDAKKworLypAfSovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKiBcbmFtZSBNYWNyb3MgdG8gbWFrZSBwcmludGsgZWFzaWVyICovCisvKkB7Ki8KKworLyoqCisgKiBFcnJvciBvdXRwdXQuCisgKgorICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCisgKiBccGFyYW0gYXJnIGFyZ3VtZW50cworICovCisjZGVmaW5lIERSTV9FUlJPUihmbXQsIGFyZy4uLikgXAorCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fICwgIyNhcmcpCisKKy8qKgorICogTWVtb3J5IGVycm9yIG91dHB1dC4KKyAqCisgKiBccGFyYW0gYXJlYSBtZW1vcnkgYXJlYSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCisgKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KKyAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCisgKi8KKyNkZWZpbmUgRFJNX01FTV9FUlJPUihhcmVhLCBmbXQsIGFyZy4uLikgXAorCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolczolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fLCBcCisJICAgICAgIGRybV9tZW1fc3RhdHNbYXJlYV0ubmFtZSAsICMjYXJnKQorCisjZGVmaW5lIERSTV9JTkZPKGZtdCwgYXJnLi4uKSAgcHJpbnRrKEtFUk5fSU5GTyAiWyIgRFJNX05BTUUgIl0gIiBmbXQgLCAjI2FyZykKKworLyoqCisgKiBEZWJ1ZyBvdXRwdXQuCisgKgorICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCisgKiBccGFyYW0gYXJnIGFyZ3VtZW50cworICovCisjaWYgRFJNX0RFQlVHX0NPREUKKyNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJCQkJCVwKKwlkbyB7CQkJCQkJCQlcCisJCWlmICggZHJtX2RlYnVnICkJCQlcCisJCQlwcmludGsoS0VSTl9ERUJVRwkJCQlcCisJCQkgICAgICAgIlsiIERSTV9OQU1FICI6JXNdICIgZm10ICwJXAorCQkJICAgICAgIF9fZnVuY19fICwgIyNhcmcpOwkJCVwKKwl9IHdoaWxlICgwKQorI2Vsc2UKKyNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZGVmaW5lIERSTV9QUk9DX0xJTUlUIChQQUdFX1NJWkUtODApCisKKyNkZWZpbmUgRFJNX1BST0NfUFJJTlQoZm10LCBhcmcuLi4pCQkJCQlcCisgICBsZW4gKz0gc3ByaW50ZigmYnVmW2xlbl0sIGZtdCAsICMjYXJnKTsJCQkJXAorICAgaWYgKGxlbiA+IERSTV9QUk9DX0xJTUlUKSB7ICplb2YgPSAxOyByZXR1cm4gbGVuIC0gb2Zmc2V0OyB9CisKKyNkZWZpbmUgRFJNX1BST0NfUFJJTlRfUkVUKHJldCwgZm10LCBhcmcuLi4pCQkJCVwKKyAgIGxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgZm10ICwgIyNhcmcpOwkJCQlcCisgICBpZiAobGVuID4gRFJNX1BST0NfTElNSVQpIHsgcmV0OyAqZW9mID0gMTsgcmV0dXJuIGxlbiAtIG9mZnNldDsgfQorCisvKkB9Ki8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqIFxuYW1lIEludGVybmFsIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzICovCisvKkB7Ki8KKworI2RlZmluZSBEUk1fQVJSQVlfU0laRSh4KSBBUlJBWV9TSVpFKHgpCisKKyNkZWZpbmUgRFJNX0xFRlRDT1VOVCh4KSAoKCh4KS0+cnAgKyAoeCktPmNvdW50IC0gKHgpLT53cCkgJSAoKHgpLT5jb3VudCArIDEpKQorI2RlZmluZSBEUk1fQlVGQ09VTlQoeCkgKCh4KS0+Y291bnQgLSBEUk1fTEVGVENPVU5UKHgpKQorI2RlZmluZSBEUk1fV0FJVENPVU5UKGRldixpZHgpIERSTV9CVUZDT1VOVCgmZGV2LT5xdWV1ZWxpc3RbaWR4XS0+d2FpdGxpc3QpCisKKyNkZWZpbmUgRFJNX0lGX1ZFUlNJT04obWFqLCBtaW4pIChtYWogPDwgMTYgfCBtaW4pCisvKioKKyAqIEdldCB0aGUgcHJpdmF0ZSBTQVJFQSBtYXBwaW5nLgorICoKKyAqIFxwYXJhbSBfZGV2IERSTSBkZXZpY2UuCisgKiBccGFyYW0gX2N0eCBjb250ZXh0IG51bWJlci4KKyAqIFxwYXJhbSBfbWFwIG91dHB1dCBtYXBwaW5nLgorICovCisjZGVmaW5lIERSTV9HRVRfUFJJVl9TQVJFQShfZGV2LCBfY3R4LCBfbWFwKSBkbyB7CVwKKwkoX21hcCkgPSAoX2RldiktPmNvbnRleHRfc2FyZWFzW19jdHhdOwkJXAorfSB3aGlsZSgwKQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgaGFyZHdhcmUgbG9jayBpcyBoZWxkIGJ5IHRoZSBjYWxsZXIsIHJldHVybmluZyBvdGhlcndpc2UuCisgKgorICogXHBhcmFtIGRldiBEUk0gZGV2aWNlLgorICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyIG9mIHRoZSBjYWxsZXIuCisgKi8KKyNkZWZpbmUgTE9DS19URVNUX1dJVEhfUkVUVVJOKCBkZXYsIGZpbGVfcHJpdiApCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJaWYgKCAhX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICkgfHwJCVwKKwkgICAgIGRldi0+bG9jay5maWxlX3ByaXYgIT0gZmlsZV9wcml2ICkJewkJCVwKKwkJRFJNX0VSUk9SKCAiJXMgY2FsbGVkIHdpdGhvdXQgbG9jayBoZWxkLCBoZWxkICAlZCBvd25lciAlcCAlcFxuIixcCisJCQkgICBfX2Z1bmNfXywgX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICksXAorCQkJICAgZGV2LT5sb2NrLmZpbGVfcHJpdiwgZmlsZV9wcml2ICk7CQlcCisJCXJldHVybiAtRUlOVkFMOwkJCQkJCVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisvKioKKyAqIENvcHkgYW5kIElPQ1RMIHJldHVybiBzdHJpbmcgdG8gdXNlciBzcGFjZQorICovCisjZGVmaW5lIERSTV9DT1BZKCBuYW1lLCB2YWx1ZSApCQkJCQkJXAorCWxlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCQlcCisJaWYgKCBsZW4gPiBuYW1lIyNfbGVuICkgbGVuID0gbmFtZSMjX2xlbjsJCQlcCisJbmFtZSMjX2xlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCVwKKwlpZiAoIGxlbiAmJiBuYW1lICkgewkJCQkJCVwKKwkJaWYgKCBjb3B5X3RvX3VzZXIoIG5hbWUsIHZhbHVlLCBsZW4gKSApCQkJXAorCQkJcmV0dXJuIC1FRkFVTFQ7CQkJCQlcCisJfQorCisvKioKKyAqIElvY3RsIGZ1bmN0aW9uIHR5cGUuCisgKgorICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KKyAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZSBwb2ludGVyLgorICogXHBhcmFtIGNtZCBjb21tYW5kLgorICogXHBhcmFtIGFyZyBhcmd1bWVudC4KKyAqLwordHlwZWRlZiBpbnQgZHJtX2lvY3RsX3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKwordHlwZWRlZiBpbnQgZHJtX2lvY3RsX2NvbXBhdF90KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKTsKKworI2RlZmluZSBEUk1fQVVUSAkweDEKKyNkZWZpbmUJRFJNX01BU1RFUgkweDIKKyNkZWZpbmUgRFJNX1JPT1RfT05MWQkweDQKKworc3RydWN0IGRybV9pb2N0bF9kZXNjIHsKKwl1bnNpZ25lZCBpbnQgY21kOworCWRybV9pb2N0bF90ICpmdW5jOworCWludCBmbGFnczsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIGRyaXZlciBvciBnZW5lcmFsIGRybV9pb2N0bF9kZXNjIGFycmF5IGVudHJ5IGZvciB0aGUgZ2l2ZW4KKyAqIGlvY3RsLCBmb3IgdXNlIGJ5IGRybV9pb2N0bCgpLgorICovCisjZGVmaW5lIERSTV9JT0NUTF9ERUYoaW9jdGwsIGZ1bmMsIGZsYWdzKSBcCisJW0RSTV9JT0NUTF9OUihpb2N0bCldID0ge2lvY3RsLCBmdW5jLCBmbGFnc30KKworc3RydWN0IGRybV9tYWdpY19lbnRyeSB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2hfaXRlbTsKKwlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7Cit9OworCitzdHJ1Y3QgZHJtX3ZtYV9lbnRyeSB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOworCXBpZF90IHBpZDsKK307CisKKy8qKgorICogRE1BIGJ1ZmZlci4KKyAqLworc3RydWN0IGRybV9idWYgeworCWludCBpZHg7CQkgICAgICAgLyoqPCBJbmRleCBpbnRvIG1hc3RlciBidWZsaXN0ICovCisJaW50IHRvdGFsOwkJICAgICAgIC8qKjwgQnVmZmVyIHNpemUgKi8KKwlpbnQgb3JkZXI7CQkgICAgICAgLyoqPCBsb2ctYmFzZS0yKHRvdGFsKSAqLworCWludCB1c2VkOwkJICAgICAgIC8qKjwgQW1vdW50IG9mIGJ1ZmZlciBpbiB1c2UgKGZvciBETUEpICovCisJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAgICAgICAvKio8IEJ5dGUgb2Zmc2V0ICh1c2VkIGludGVybmFsbHkpICovCisJdm9pZCAqYWRkcmVzczsJCSAgICAgICAvKio8IEFkZHJlc3Mgb2YgYnVmZmVyICovCisJdW5zaWduZWQgbG9uZyBidXNfYWRkcmVzczsgICAgIC8qKjwgQnVzIGFkZHJlc3Mgb2YgYnVmZmVyICovCisJc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEtlcm5lbC1vbmx5OiB1c2VkIGZvciBmcmVlIGxpc3QgKi8KKwlfX3ZvbGF0aWxlX18gaW50IHdhaXRpbmc7ICAgICAgLyoqPCBPbiBrZXJuZWwgRE1BIHF1ZXVlICovCisJX192b2xhdGlsZV9fIGludCBwZW5kaW5nOyAgICAgIC8qKjwgT24gaGFyZHdhcmUgRE1BIHF1ZXVlICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgZG1hX3dhaXQ7ICAgIC8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgKi8KKwlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgICAgLyoqPCBQcml2YXRlIG9mIGhvbGRpbmcgZmlsZSBkZXNjciAqLworCWludCBjb250ZXh0OwkJICAgICAgIC8qKjwgS2VybmVsIHF1ZXVlIGZvciB0aGlzIGJ1ZmZlciAqLworCWludCB3aGlsZV9sb2NrZWQ7CSAgICAgICAvKio8IERpc3BhdGNoIHRoaXMgYnVmZmVyIHdoaWxlIGxvY2tlZCAqLworCWVudW0geworCQlEUk1fTElTVF9OT05FID0gMCwKKwkJRFJNX0xJU1RfRlJFRSA9IDEsCisJCURSTV9MSVNUX1dBSVQgPSAyLAorCQlEUk1fTElTVF9QRU5EID0gMywKKwkJRFJNX0xJU1RfUFJJTyA9IDQsCisJCURSTV9MSVNUX1JFQ0xBSU0gPSA1CisJfSBsaXN0OwkJCSAgICAgICAvKio8IFdoaWNoIGxpc3Qgd2UncmUgb24gKi8KKworCWludCBkZXZfcHJpdl9zaXplOwkJIC8qKjwgU2l6ZSBvZiBidWZmZXIgcHJpdmF0ZSBzdG9yYWdlICovCisJdm9pZCAqZGV2X3ByaXZhdGU7CQkgLyoqPCBQZXItYnVmZmVyIHByaXZhdGUgc3RvcmFnZSAqLworfTsKKworLyoqIGJ1ZnMgaXMgb25lIGxvbmdlciB0aGFuIGl0IGhhcyB0byBiZSAqLworc3RydWN0IGRybV93YWl0bGlzdCB7CisJaW50IGNvdW50OwkJCS8qKjwgTnVtYmVyIG9mIHBvc3NpYmxlIGJ1ZmZlcnMgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1ZnM7CQkvKio8IExpc3Qgb2YgcG9pbnRlcnMgdG8gYnVmZmVycyAqLworCXN0cnVjdCBkcm1fYnVmICoqcnA7CQkJLyoqPCBSZWFkIHBvaW50ZXIgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqKndwOwkJCS8qKjwgV3JpdGUgcG9pbnRlciAqLworCXN0cnVjdCBkcm1fYnVmICoqZW5kOwkJLyoqPCBFbmQgcG9pbnRlciAqLworCXNwaW5sb2NrX3QgcmVhZF9sb2NrOworCXNwaW5sb2NrX3Qgd3JpdGVfbG9jazsKK307CisKK3N0cnVjdCBkcm1fZnJlZWxpc3QgeworCWludCBpbml0aWFsaXplZDsJICAgICAgIC8qKjwgRnJlZWxpc3QgaW4gdXNlICovCisJYXRvbWljX3QgY291bnQ7CQkgICAgICAgLyoqPCBOdW1iZXIgb2YgZnJlZSBidWZmZXJzICovCisJc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEVuZCBwb2ludGVyICovCisKKwl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0aW5nOyAgICAgLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBmcmVlIGJ1ZnMgKi8KKwlpbnQgbG93X21hcms7CQkgICAgICAgLyoqPCBMb3cgd2F0ZXIgbWFyayAqLworCWludCBoaWdoX21hcms7CQkgICAgICAgLyoqPCBIaWdoIHdhdGVyIG1hcmsgKi8KKwlhdG9taWNfdCB3Zmg7CQkgICAgICAgLyoqPCBJZiB3YWl0aW5nIGZvciBoaWdoIG1hcmsgKi8KKwlzcGlubG9ja190IGxvY2s7Cit9OworCit0eXBlZGVmIHN0cnVjdCBkcm1fZG1hX2hhbmRsZSB7CisJZG1hX2FkZHJfdCBidXNhZGRyOworCXZvaWQgKnZhZGRyOworCXNpemVfdCBzaXplOworfSBkcm1fZG1hX2hhbmRsZV90OworCisvKioKKyAqIEJ1ZmZlciBlbnRyeS4gIFRoZXJlIGlzIG9uZSBvZiB0aGlzIGZvciBlYWNoIGJ1ZmZlciBzaXplIG9yZGVyLgorICovCitzdHJ1Y3QgZHJtX2J1Zl9lbnRyeSB7CisJaW50IGJ1Zl9zaXplOwkJCS8qKjwgc2l6ZSAqLworCWludCBidWZfY291bnQ7CQkJLyoqPCBudW1iZXIgb2YgYnVmZmVycyAqLworCXN0cnVjdCBkcm1fYnVmICpidWZsaXN0OwkJLyoqPCBidWZmZXIgbGlzdCAqLworCWludCBzZWdfY291bnQ7CisJaW50IHBhZ2Vfb3JkZXI7CisJc3RydWN0IGRybV9kbWFfaGFuZGxlICoqc2VnbGlzdDsKKworCXN0cnVjdCBkcm1fZnJlZWxpc3QgZnJlZWxpc3Q7Cit9OworCisvKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KK3N0cnVjdCBkcm1fZmlsZSB7CisJaW50IGF1dGhlbnRpY2F0ZWQ7CisJaW50IG1hc3RlcjsKKwlwaWRfdCBwaWQ7CisJdWlkX3QgdWlkOworCWRybV9tYWdpY190IG1hZ2ljOworCXVuc2lnbmVkIGxvbmcgaW9jdGxfY291bnQ7CisJc3RydWN0IGxpc3RfaGVhZCBsaGVhZDsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKKwlpbnQgcmVtb3ZlX2F1dGhfb25fY2xvc2U7CisJdW5zaWduZWQgbG9uZyBsb2NrX2NvdW50OworCXN0cnVjdCBmaWxlICpmaWxwOworCXZvaWQgKmRyaXZlcl9wcml2OworfTsKKworLyoqIFdhaXQgcXVldWUgKi8KK3N0cnVjdCBkcm1fcXVldWUgeworCWF0b21pY190IHVzZV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdXNlcyAoKzEpICovCisJYXRvbWljX3QgZmluYWxpemF0aW9uOwkJLyoqPCBGaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MgKi8KKwlhdG9taWNfdCBibG9ja19jb3VudDsJCS8qKjwgQ291bnQgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgKi8KKwlhdG9taWNfdCBibG9ja19yZWFkOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciByZWFkcyAqLworCXdhaXRfcXVldWVfaGVhZF90IHJlYWRfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gYmxvY2tfcmVhZCAqLworCWF0b21pY190IGJsb2NrX3dyaXRlOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciB3cml0ZXMgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCB3cml0ZV9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBibG9ja193cml0ZSAqLworCWF0b21pY190IHRvdGFsX3F1ZXVlZDsJCS8qKjwgVG90YWwgcXVldWVkIHN0YXRpc3RpYyAqLworCWF0b21pY190IHRvdGFsX2ZsdXNoZWQ7CQkvKio8IFRvdGFsIGZsdXNoZXMgc3RhdGlzdGljICovCisJYXRvbWljX3QgdG90YWxfbG9ja3M7CQkvKio8IFRvdGFsIGxvY2tzIHN0YXRpc3RpY3MgKi8KKwllbnVtIGRybV9jdHhfZmxhZ3MgZmxhZ3M7CS8qKjwgQ29udGV4dCBwcmVzZXJ2aW5nIGFuZCAyRC1vbmx5ICovCisJc3RydWN0IGRybV93YWl0bGlzdCB3YWl0bGlzdDsJLyoqPCBQZW5kaW5nIGJ1ZmZlcnMgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBmbHVzaF9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB1bnRpbCBmbHVzaCAqLworfTsKKworLyoqCisgKiBMb2NrIGRhdGEuCisgKi8KK3N0cnVjdCBkcm1fbG9ja19kYXRhIHsKKwlzdHJ1Y3QgZHJtX2h3X2xvY2sgKmh3X2xvY2s7CS8qKjwgSGFyZHdhcmUgbG9jayAqLworCS8qKiBQcml2YXRlIG9mIGxvY2sgaG9sZGVyJ3MgZmlsZSAoTlVMTD1rZXJuZWwpICovCisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7CisJd2FpdF9xdWV1ZV9oZWFkX3QgbG9ja19xdWV1ZTsJLyoqPCBRdWV1ZSBvZiBibG9ja2VkIHByb2Nlc3NlcyAqLworCXVuc2lnbmVkIGxvbmcgbG9ja190aW1lOwkvKio8IFRpbWUgb2YgbGFzdCBsb2NrIGluIGppZmZpZXMgKi8KKwlzcGlubG9ja190IHNwaW5sb2NrOworCXVpbnQzMl90IGtlcm5lbF93YWl0ZXJzOworCXVpbnQzMl90IHVzZXJfd2FpdGVyczsKKwlpbnQgaWRsZV9oYXNfbG9jazsKK307CisKKy8qKgorICogRE1BIGRhdGEuCisgKi8KK3N0cnVjdCBkcm1fZGV2aWNlX2RtYSB7CisKKwlzdHJ1Y3QgZHJtX2J1Zl9lbnRyeSBidWZzW0RSTV9NQVhfT1JERVIgKyAxXTsJLyoqPCBidWZmZXJzLCBncm91cGVkIGJ5IHRoZWlyIHNpemUgb3JkZXIgKi8KKwlpbnQgYnVmX2NvdW50OwkJCS8qKjwgdG90YWwgbnVtYmVyIG9mIGJ1ZmZlcnMgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1Zmxpc3Q7CQkvKio8IFZlY3RvciBvZiBwb2ludGVycyBpbnRvIGRybV9kZXZpY2VfZG1hOjpidWZzICovCisJaW50IHNlZ19jb3VudDsKKwlpbnQgcGFnZV9jb3VudDsJCQkvKio8IG51bWJlciBvZiBwYWdlcyAqLworCXVuc2lnbmVkIGxvbmcgKnBhZ2VsaXN0OwkvKio8IHBhZ2UgbGlzdCAqLworCXVuc2lnbmVkIGxvbmcgYnl0ZV9jb3VudDsKKwllbnVtIHsKKwkJX0RSTV9ETUFfVVNFX0FHUCA9IDB4MDEsCisJCV9EUk1fRE1BX1VTRV9TRyA9IDB4MDIsCisJCV9EUk1fRE1BX1VTRV9GQiA9IDB4MDQsCisJCV9EUk1fRE1BX1VTRV9QQ0lfUk8gPSAweDA4CisJfSBmbGFnczsKKworfTsKKworLyoqCisgKiBBR1AgbWVtb3J5IGVudHJ5LiAgU3RvcmVkIGFzIGEgZG91Ymx5IGxpbmtlZCBsaXN0LgorICovCitzdHJ1Y3QgZHJtX2FncF9tZW0geworCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkJLyoqPCBoYW5kbGUgKi8KKwlEUk1fQUdQX01FTSAqbWVtb3J5OworCXVuc2lnbmVkIGxvbmcgYm91bmQ7CQkvKio8IGFkZHJlc3MgKi8KKwlpbnQgcGFnZXM7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworfTsKKworLyoqCisgKiBBR1AgZGF0YS4KKyAqCisgKiBcc2EgZHJtX2FncF9pbml0KCkgYW5kIGRybV9kZXZpY2U6OmFncC4KKyAqLworc3RydWN0IGRybV9hZ3BfaGVhZCB7CisJRFJNX0FHUF9LRVJOIGFncF9pbmZvOwkJLyoqPCBBR1AgZGV2aWNlIGluZm9ybWF0aW9uICovCisJc3RydWN0IGxpc3RfaGVhZCBtZW1vcnk7CisJdW5zaWduZWQgbG9uZyBtb2RlOwkJLyoqPCBBR1AgbW9kZSAqLworCXN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZTsKKwlpbnQgZW5hYmxlZDsJCQkvKio8IHdoZXRoZXIgdGhlIEFHUCBidXMgYXMgYmVlbiBlbmFibGVkICovCisJaW50IGFjcXVpcmVkOwkJCS8qKjwgd2hldGhlciB0aGUgQUdQIGRldmljZSBoYXMgYmVlbiBhY3F1aXJlZCAqLworCXVuc2lnbmVkIGxvbmcgYmFzZTsKKwlpbnQgYWdwX210cnI7CisJaW50IGNhbnRfdXNlX2FwZXJ0dXJlOworCXVuc2lnbmVkIGxvbmcgcGFnZV9tYXNrOworfTsKKworLyoqCisgKiBTY2F0dGVyLWdhdGhlciBtZW1vcnkuCisgKi8KK3N0cnVjdCBkcm1fc2dfbWVtIHsKKwl1bnNpZ25lZCBsb25nIGhhbmRsZTsKKwl2b2lkICp2aXJ0dWFsOworCWludCBwYWdlczsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VsaXN0OworCWRtYV9hZGRyX3QgKmJ1c2FkZHI7Cit9OworCitzdHJ1Y3QgZHJtX3NpZ2RhdGEgeworCWludCBjb250ZXh0OworCXN0cnVjdCBkcm1faHdfbG9jayAqbG9jazsKK307CisKKworLyoKKyAqIEdlbmVyaWMgbWVtb3J5IG1hbmFnZXIgc3RydWN0cworICovCisKK3N0cnVjdCBkcm1fbW1fbm9kZSB7CisJc3RydWN0IGxpc3RfaGVhZCBmbF9lbnRyeTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG1sX2VudHJ5OworCWludCBmcmVlOworCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CisJdW5zaWduZWQgbG9uZyBzaXplOworCXN0cnVjdCBkcm1fbW0gKm1tOworCXZvaWQgKnByaXZhdGU7Cit9OworCitzdHJ1Y3QgZHJtX21tIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2VudHJ5OworCXN0cnVjdCBsaXN0X2hlYWQgbWxfZW50cnk7Cit9OworCisKKy8qKgorICogTWFwcGluZ3MgbGlzdAorICovCitzdHJ1Y3QgZHJtX21hcF9saXN0IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLworCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2g7CisJc3RydWN0IGRybV9tYXAgKm1hcDsJCQkvKio8IG1hcHBpbmcgKi8KKwl1aW50NjRfdCB1c2VyX3Rva2VuOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX21hcCBkcm1fbG9jYWxfbWFwX3Q7CisKKy8qKgorICogQ29udGV4dCBoYW5kbGUgbGlzdAorICovCitzdHJ1Y3QgZHJtX2N0eF9saXN0IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLworCWRybV9jb250ZXh0X3QgaGFuZGxlOwkJLyoqPCBjb250ZXh0IGhhbmRsZSAqLworCXN0cnVjdCBkcm1fZmlsZSAqdGFnOwkJLyoqPCBhc3NvY2lhdGVkIGZkIHByaXZhdGUgZGF0YSAqLworfTsKKworc3RydWN0IGRybV92Ymxfc2lnIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CisJdW5zaWduZWQgaW50IHNlcXVlbmNlOworCXN0cnVjdCBzaWdpbmZvIGluZm87CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOworfTsKKworLyogbG9jYXRpb24gb2YgR0FSVCB0YWJsZSAqLworI2RlZmluZSBEUk1fQVRJX0dBUlRfTUFJTiAxCisjZGVmaW5lIERSTV9BVElfR0FSVF9GQiAgIDIKKworI2RlZmluZSBEUk1fQVRJX0dBUlRfUENJIDEKKyNkZWZpbmUgRFJNX0FUSV9HQVJUX1BDSUUgMgorI2RlZmluZSBEUk1fQVRJX0dBUlRfSUdQIDMKKworc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvIHsKKwlpbnQgZ2FydF90YWJsZV9sb2NhdGlvbjsKKwlpbnQgZ2FydF9yZWdfaWY7CisJdm9pZCAqYWRkcjsKKwlkbWFfYWRkcl90IGJ1c19hZGRyOworCWRtYV9hZGRyX3QgdGFibGVfbWFzazsKKwlzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKnRhYmxlX2hhbmRsZTsKKwlkcm1fbG9jYWxfbWFwX3QgbWFwcGluZzsKKwlpbnQgdGFibGVfc2l6ZTsKK307CisKKy8qKgorICogRFJNIGRyaXZlciBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgY29tbW9uIGNvZGUgZm9yCisgKiBhIGZhbWlseSBvZiBjYXJkcy4gVGhlcmUgd2lsbCBvbmUgZHJtX2RldmljZSBmb3IgZWFjaCBjYXJkIHByZXNlbnQKKyAqIGluIHRoaXMgZmFtaWx5CisgKi8KK3N0cnVjdCBkcm1fZHJpdmVyIHsKKwlpbnQgKCpsb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7CisJaW50ICgqZmlyc3RvcGVuKSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqb3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKKwl2b2lkICgqcHJlY2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisJdm9pZCAoKnBvc3RjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKKwl2b2lkICgqbGFzdGNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqdW5sb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CisJaW50ICgqcmVzdW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqZG1hX2lvY3RsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCXZvaWQgKCpkbWFfcmVhZHkpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCpkbWFfcXVpZXNjZW50KSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqY29udGV4dF9jdG9yKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOworCWludCAoKmNvbnRleHRfZHRvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKKwlpbnQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2gpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb2xkLAorCQkJCSAgICAgIGludCBuZXcpOworCXZvaWQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2hfdW5sb2NrKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisJaW50ICgqdmJsYW5rX3dhaXQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKKwlpbnQgKCp2Ymxhbmtfd2FpdDIpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKKwlpbnQgKCpkcmlfbGlicmFyeV9uYW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY2hhciAqYnVmKTsKKworCS8qKgorCSAqIENhbGxlZCBieSBcYyBkcm1fZGV2aWNlX2lzX2FncC4gIFR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiBhCisJICogY2FyZCBpcyByZWFsbHkgYXR0YWNoZWQgdG8gQUdQIG9yIG5vdC4KKwkgKgorCSAqIFxwYXJhbSBkZXYgIERSTSBkZXZpY2UgaGFuZGxlCisJICoKKwkgKiBccmV0dXJucworCSAqIE9uZSBvZiB0aHJlZSB2YWx1ZXMgaXMgcmV0dXJuZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZQorCSAqIGNhcmQgaXMgYWJzb2x1dGVseSBcYiBub3QgQUdQIChyZXR1cm4gb2YgMCksIGFic29sdXRlbHkgXGIgaXMgQUdQCisJICogKHJldHVybiBvZiAxKSwgb3IgbWF5IG9yIG1heSBub3QgYmUgQUdQIChyZXR1cm4gb2YgMikuCisJICovCisJaW50ICgqZGV2aWNlX2lzX2FncCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisJLyogdGhlc2UgaGF2ZSB0byBiZSBmaWxsZWQgaW4gKi8KKworCWlycXJldHVybl90KCppcnFfaGFuZGxlcikgKERSTV9JUlFfQVJHUyk7CisJdm9pZCAoKmlycV9wcmVpbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisJdm9pZCAoKmlycV9wb3N0aW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCXZvaWQgKCppcnFfdW5pbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisJdm9pZCAoKnJlY2xhaW1fYnVmZmVycykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqIGZpbGVfcHJpdik7CisJdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisJdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKwl1bnNpZ25lZCBsb25nICgqZ2V0X21hcF9vZnMpIChzdHJ1Y3QgZHJtX21hcCAqIG1hcCk7CisJdW5zaWduZWQgbG9uZyAoKmdldF9yZWdfb2ZzKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisJdm9pZCAoKnNldF92ZXJzaW9uKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgc3RydWN0IGRybV9zZXRfdmVyc2lvbiAqc3YpOworCisJaW50IG1ham9yOworCWludCBtaW5vcjsKKwlpbnQgcGF0Y2hsZXZlbDsKKwljaGFyICpuYW1lOworCWNoYXIgKmRlc2M7CisJY2hhciAqZGF0ZTsKKworCXUzMiBkcml2ZXJfZmVhdHVyZXM7CisJaW50IGRldl9wcml2X3NpemU7CisJc3RydWN0IGRybV9pb2N0bF9kZXNjICppb2N0bHM7CisJaW50IG51bV9pb2N0bHM7CisJc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzOworCXN0cnVjdCBwY2lfZHJpdmVyIHBjaV9kcml2ZXI7Cit9OworCisjZGVmaW5lIERSTV9NSU5PUl9VTkFTU0lHTkVEIDAKKyNkZWZpbmUgRFJNX01JTk9SX0xFR0FDWSAxCisKKy8qKgorICogRFJNIG1pbm9yIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIGRybSBtaW5vciBudW1iZXIuCisgKi8KK3N0cnVjdCBkcm1fbWlub3IgeworCWludCBpbmRleDsJCQkvKio8IE1pbm9yIGRldmljZSBudW1iZXIgKi8KKwlpbnQgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgIC8qKjwgQ29udHJvbCBvciByZW5kZXIgKi8KKwlkZXZfdCBkZXZpY2U7CQkJLyoqPCBEZXZpY2UgbnVtYmVyIGZvciBta25vZCAqLworCXN0cnVjdCBkZXZpY2Uga2RldjsJCS8qKjwgTGludXggZGV2aWNlICovCisJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKKwlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmRldl9yb290OyAgLyoqPCBwcm9jIGRpcmVjdG9yeSBlbnRyeSAqLworfTsKKworLyoqCisgKiBEUk0gZGV2aWNlIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IGEgY29tcGxldGUgY2FyZCB0aGF0CisgKiBtYXkgY29udGFpbiBtdWx0aXBsZSBoZWFkcy4KKyAqLworc3RydWN0IGRybV9kZXZpY2UgeworCWNoYXIgKnVuaXF1ZTsJCQkvKio8IFVuaXF1ZSBpZGVudGlmaWVyOiBlLmcuLCBidXNpZCAqLworCWludCB1bmlxdWVfbGVuOwkJCS8qKjwgTGVuZ3RoIG9mIHVuaXF1ZSBmaWVsZCAqLworCWNoYXIgKmRldm5hbWU7CQkJLyoqPCBGb3IgL3Byb2MvaW50ZXJydXB0cyAqLworCWludCBpZl92ZXJzaW9uOwkJCS8qKjwgSGlnaGVzdCBpbnRlcmZhY2UgdmVyc2lvbiBzZXQgKi8KKworCWludCBibG9ja2VkOwkJCS8qKjwgQmxvY2tlZCBkdWUgdG8gVkMgc3dpdGNoPyAqLworCisJLyoqIFxuYW1lIExvY2tzICovCisJLypAeyAqLworCXNwaW5sb2NrX3QgY291bnRfbG9jazsJCS8qKjwgRm9yIGludXNlLCBkcm1fZGV2aWNlOjpvcGVuX2NvdW50LCBkcm1fZGV2aWNlOjpidWZfdXNlICovCisJc3RydWN0IG11dGV4IHN0cnVjdF9tdXRleDsJLyoqPCBGb3Igb3RoZXJzICovCisJLypAfSAqLworCisJLyoqIFxuYW1lIFVzYWdlIENvdW50ZXJzICovCisJLypAeyAqLworCWludCBvcGVuX2NvdW50OwkJCS8qKjwgT3V0c3RhbmRpbmcgZmlsZXMgb3BlbiAqLworCWF0b21pY190IGlvY3RsX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyBJT0NUTHMgcGVuZGluZyAqLworCWF0b21pY190IHZtYV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdm1hIGFyZWFzIG9wZW4gKi8KKwlpbnQgYnVmX3VzZTsJCQkvKio8IEJ1ZmZlcnMgaW4gdXNlIC0tIGNhbm5vdCBhbGxvYyAqLworCWF0b21pY190IGJ1Zl9hbGxvYzsJCS8qKjwgQnVmZmVyIGFsbG9jYXRpb24gaW4gcHJvZ3Jlc3MgKi8KKwkvKkB9ICovCisKKwkvKiogXG5hbWUgUGVyZm9ybWFuY2UgY291bnRlcnMgKi8KKwkvKkB7ICovCisJdW5zaWduZWQgbG9uZyBjb3VudGVyczsKKwllbnVtIGRybV9zdGF0X3R5cGUgdHlwZXNbMTVdOworCWF0b21pY190IGNvdW50c1sxNV07CisJLypAfSAqLworCisJLyoqIFxuYW1lIEF1dGhlbnRpY2F0aW9uICovCisJLypAeyAqLworCXN0cnVjdCBsaXN0X2hlYWQgZmlsZWxpc3Q7CisJc3RydWN0IGRybV9vcGVuX2hhc2ggbWFnaWNsaXN0OwkvKio8IG1hZ2ljIGhhc2ggdGFibGUgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIG1hZ2ljZnJlZTsKKwkvKkB9ICovCisKKwkvKiogXG5hbWUgTWVtb3J5IG1hbmFnZW1lbnQgKi8KKwkvKkB7ICovCisJc3RydWN0IGxpc3RfaGVhZCBtYXBsaXN0OwkvKio8IExpbmtlZCBsaXN0IG9mIHJlZ2lvbnMgKi8KKwlpbnQgbWFwX2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIG1hcHBhYmxlIHJlZ2lvbnMgKi8KKwlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYXBfaGFzaDsJLyoqPCBVc2VyIHRva2VuIGhhc2ggdGFibGUgZm9yIG1hcHMgKi8KKworCS8qKiBcbmFtZSBDb250ZXh0IGhhbmRsZSBtYW5hZ2VtZW50ICovCisJLypAeyAqLworCXN0cnVjdCBsaXN0X2hlYWQgY3R4bGlzdDsJLyoqPCBMaW5rZWQgbGlzdCBvZiBjb250ZXh0IGhhbmRsZXMgKi8KKwlpbnQgY3R4X2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIGNvbnRleHQgaGFuZGxlcyAqLworCXN0cnVjdCBtdXRleCBjdHhsaXN0X211dGV4OwkvKio8IEZvciBjdHhsaXN0ICovCisKKwlzdHJ1Y3QgaWRyIGN0eF9pZHI7CisKKwlzdHJ1Y3QgbGlzdF9oZWFkIHZtYWxpc3Q7CS8qKjwgTGlzdCBvZiB2bWFzIChmb3IgZGVidWdnaW5nKSAqLworCXN0cnVjdCBkcm1fbG9ja19kYXRhIGxvY2s7CS8qKjwgSW5mb3JtYXRpb24gb24gaGFyZHdhcmUgbG9jayAqLworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBETUEgcXVldWVzIChjb250ZXh0cykgKi8KKwkvKkB7ICovCisJaW50IHF1ZXVlX2NvdW50OwkJLyoqPCBOdW1iZXIgb2YgYWN0aXZlIERNQSBxdWV1ZXMgKi8KKwlpbnQgcXVldWVfcmVzZXJ2ZWQ7CQkgIC8qKjwgTnVtYmVyIG9mIHJlc2VydmVkIERNQSBxdWV1ZXMgKi8KKwlpbnQgcXVldWVfc2xvdHM7CQkvKio8IEFjdHVhbCBsZW5ndGggb2YgcXVldWVsaXN0ICovCisJc3RydWN0IGRybV9xdWV1ZSAqKnF1ZXVlbGlzdDsJLyoqPCBWZWN0b3Igb2YgcG9pbnRlcnMgdG8gRE1BIHF1ZXVlcyAqLworCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hOwkJLyoqPCBPcHRpb25hbCBwb2ludGVyIGZvciBETUEgc3VwcG9ydCAqLworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBDb250ZXh0IHN1cHBvcnQgKi8KKwkvKkB7ICovCisJaW50IGlycTsJCQkvKio8IEludGVycnVwdCB1c2VkIGJ5IGJvYXJkICovCisJaW50IGlycV9lbmFibGVkOwkJLyoqPCBUcnVlIGlmIGlycSBoYW5kbGVyIGlzIGVuYWJsZWQgKi8KKwlfX3ZvbGF0aWxlX18gbG9uZyBjb250ZXh0X2ZsYWc7CS8qKjwgQ29udGV4dCBzd2FwcGluZyBmbGFnICovCisJX192b2xhdGlsZV9fIGxvbmcgaW50ZXJydXB0X2ZsYWc7IC8qKjwgSW50ZXJydXB0aW9uIGhhbmRsZXIgZmxhZyAqLworCV9fdm9sYXRpbGVfXyBsb25nIGRtYV9mbGFnOwkvKio8IERNQSBkaXNwYXRjaCBmbGFnICovCisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CS8qKjwgVGltZXIgZm9yIGRlbGF5aW5nIGN0eCBzd2l0Y2ggKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBjb250ZXh0X3dhaXQ7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gY3R4IHN3aXRjaCAqLworCWludCBsYXN0X2NoZWNrZWQ7CQkvKio8IExhc3QgY29udGV4dCBjaGVja2VkIGZvciBETUEgKi8KKwlpbnQgbGFzdF9jb250ZXh0OwkJLyoqPCBMYXN0IGN1cnJlbnQgY29udGV4dCAqLworCXVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2g7CS8qKjwgamlmZmllcyBhdCBsYXN0IGNvbnRleHQgc3dpdGNoICovCisJLypAfSAqLworCisJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CisJLyoqIFxuYW1lIFZCTEFOSyBJUlEgc3VwcG9ydCAqLworCS8qQHsgKi8KKworCXdhaXRfcXVldWVfaGVhZF90IHZibF9xdWV1ZTsJLyoqPCBWQkxBTksgd2FpdCBxdWV1ZSAqLworCWF0b21pY190IHZibF9yZWNlaXZlZDsKKwlhdG9taWNfdCB2YmxfcmVjZWl2ZWQyOwkJLyoqPCBudW1iZXIgb2Ygc2Vjb25kYXJ5IFZCTEFOSyBpbnRlcnJ1cHRzICovCisJc3BpbmxvY2tfdCB2YmxfbG9jazsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHZibF9zaWdzOwkJLyoqPCBzaWduYWwgbGlzdCB0byBzZW5kIG9uIFZCTEFOSyAqLworCXN0cnVjdCBsaXN0X2hlYWQgdmJsX3NpZ3MyOwkvKio8IHNpZ25hbHMgdG8gc2VuZCBvbiBzZWNvbmRhcnkgVkJMQU5LICovCisJdW5zaWduZWQgaW50IHZibF9wZW5kaW5nOworCXNwaW5sb2NrX3QgdGFza2xldF9sb2NrOwkvKio8IEZvciBkcm1fbG9ja2VkX3Rhc2tsZXQgKi8KKwl2b2lkICgqbG9ja2VkX3Rhc2tsZXRfZnVuYykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKwkvKkB9ICovCisJY3ljbGVzX3QgY3R4X3N0YXJ0OworCWN5Y2xlc190IGxja19zdGFydDsKKworCXN0cnVjdCBmYXN5bmNfc3RydWN0ICpidWZfYXN5bmM7LyoqPCBQcm9jZXNzZXMgd2FpdGluZyBmb3IgU0lHSU8gKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBidWZfcmVhZGVyczsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB0byByZWFkICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgYnVmX3dyaXRlcnM7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdG8gY3R4IHN3aXRjaCAqLworCisJc3RydWN0IGRybV9hZ3BfaGVhZCAqYWdwOwkvKio8IEFHUCBkYXRhICovCisKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsJCS8qKjwgUENJIGRldmljZSBzdHJ1Y3R1cmUgKi8KKwlpbnQgcGNpX3ZlbmRvcjsJCQkvKio8IFBDSSB2ZW5kb3IgaWQgKi8KKwlpbnQgcGNpX2RldmljZTsJCQkvKio8IFBDSSBkZXZpY2UgaWQgKi8KKyNpZmRlZiBfX2FscGhhX18KKwlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7CisjZW5kaWYKKwlzdHJ1Y3QgZHJtX3NnX21lbSAqc2c7CS8qKjwgU2NhdHRlciBnYXRoZXIgbWVtb3J5ICovCisJdm9pZCAqZGV2X3ByaXZhdGU7CQkvKio8IGRldmljZSBwcml2YXRlIGRhdGEgKi8KKwlzdHJ1Y3QgZHJtX3NpZ2RhdGEgc2lnZGF0YTsJICAgLyoqPCBGb3IgYmxvY2tfYWxsX3NpZ25hbHMgKi8KKwlzaWdzZXRfdCBzaWdtYXNrOworCisJc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcjsKKwlkcm1fbG9jYWxfbWFwX3QgKmFncF9idWZmZXJfbWFwOworCXVuc2lnbmVkIGludCBhZ3BfYnVmZmVyX3Rva2VuOworCXN0cnVjdCBkcm1fbWlub3IgKnByaW1hcnk7CQkvKio8IHJlbmRlciB0eXBlIHByaW1hcnkgc2NyZWVuIGhlYWQgKi8KKworCS8qKiBcbmFtZSBEcmF3YWJsZSBpbmZvcm1hdGlvbiAqLworCS8qQHsgKi8KKwlzcGlubG9ja190IGRyd19sb2NrOworCXN0cnVjdCBpZHIgZHJ3X2lkcjsKKwkvKkB9ICovCit9OworCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkgICAgIGludCBmZWF0dXJlKQoreworCXJldHVybiAoKGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBmZWF0dXJlKSA/IDEgOiAwKTsKK30KKworI2lmZGVmIF9fYWxwaGFfXworI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSBkZXYtPmhvc2UtPmluZGV4CisjZWxzZQorI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSAwCisjZW5kaWYKKworI2lmIF9fT1NfSEFTX0FHUAorc3RhdGljIGlubGluZSBpbnQgZHJtX2NvcmVfaGFzX0FHUChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9BR1ApOworfQorI2Vsc2UKKyNkZWZpbmUgZHJtX2NvcmVfaGFzX0FHUChkZXYpICgwKQorI2VuZGlmCisKKyNpZiBfX09TX0hBU19NVFJSCitzdGF0aWMgaW5saW5lIGludCBkcm1fY29yZV9oYXNfTVRSUihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9NVFJSKTsKK30KKworI2RlZmluZSBEUk1fTVRSUl9XQwkJTVRSUl9UWVBFX1dSQ09NQgorCitzdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIG10cnJfYWRkKG9mZnNldCwgc2l6ZSwgZmxhZ3MsIDEpOworfQorCitzdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9kZWwoaW50IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIG10cnJfZGVsKGhhbmRsZSwgb2Zmc2V0LCBzaXplKTsKK30KKworI2Vsc2UKKyNkZWZpbmUgZHJtX2NvcmVfaGFzX01UUlIoZGV2KSAoMCkKKworI2RlZmluZSBEUk1fTVRSUl9XQwkJMAorCitzdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2RlbChpbnQgaGFuZGxlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqIFxuYW1lIEludGVybmFsIGZ1bmN0aW9uIGRlZmluaXRpb25zICovCisvKkB7Ki8KKworCQkJCS8qIERyaXZlciBzdXBwb3J0IChkcm1fZHJ2LmgpICovCitleHRlcm4gaW50IGRybV9pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOworZXh0ZXJuIHZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7CitleHRlcm4gaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitleHRlcm4gbG9uZyBkcm1fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitleHRlcm4gaW50IGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKwkJCQkvKiBEZXZpY2Ugc3VwcG9ydCAoZHJtX2ZvcHMuaCkgKi8KK2V4dGVybiBpbnQgZHJtX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOworZXh0ZXJuIGludCBkcm1fc3R1Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKK2V4dGVybiBpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pOworZXh0ZXJuIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7CisKKwkJCQkvKiBNYXBwaW5nIHN1cHBvcnQgKGRybV92bS5oKSAqLworZXh0ZXJuIGludCBkcm1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X21hcF9vZnMoc3RydWN0IGRybV9tYXAgKiBtYXApOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X3JlZ19vZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdW5zaWduZWQgaW50IGRybV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpOworCisJCQkJLyogTWVtb3J5IG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX21lbW9yeS5oKSAqLworI2luY2x1ZGUgImRybV9tZW1vcnkuaCIKK2V4dGVybiB2b2lkIGRybV9tZW1faW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCisJCQlpbnQgcmVxdWVzdCwgaW50ICplb2YsIHZvaWQgKmRhdGEpOworZXh0ZXJuIHZvaWQgKmRybV9yZWFsbG9jKHZvaWQgKm9sZHB0LCBzaXplX3Qgb2xkc2l6ZSwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKKworZXh0ZXJuIERSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwYWdlcywgdTMyIHR5cGUpOworZXh0ZXJuIGludCBkcm1fZnJlZV9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIGludCBwYWdlcyk7CitleHRlcm4gaW50IGRybV9iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgdW5zaWduZWQgaW50IHN0YXJ0KTsKK2V4dGVybiBpbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOworCisJCQkJLyogTWlzYy4gSU9DVEwgc3VwcG9ydCAoZHJtX2lvY3RsLmgpICovCitleHRlcm4gaW50IGRybV9pcnFfYnlfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9zZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0Y2xpZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0c3RhdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3NldHZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbm9vcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisJCQkJLyogQ29udGV4dCBJT0NUTCBzdXBwb3J0IChkcm1fY29udGV4dC5oKSAqLworZXh0ZXJuIGludCBkcm1fcmVzY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FkZGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9tb2RjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0Y3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3N3aXRjaGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX25ld2N0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9ybWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIGludCBkcm1fY3R4Yml0bWFwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGN0eF9oYW5kbGUpOworCitleHRlcm4gaW50IGRybV9zZXRzYXJlYWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0c2FyZWFjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworCQkJCS8qIERyYXdhYmxlIElPQ1RMIHN1cHBvcnQgKGRybV9kcmF3YWJsZS5oKSAqLworZXh0ZXJuIGludCBkcm1fYWRkZHJhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fcm1kcmF3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3VwZGF0ZV9kcmF3YWJsZV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRybV9nZXRfZHJhd2FibGVfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJICBkcm1fZHJhd2FibGVfdCBpZCk7CitleHRlcm4gdm9pZCBkcm1fZHJhd2FibGVfZnJlZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKwkJCQkvKiBBdXRoZW50aWNhdGlvbiBJT0NUTCBzdXBwb3J0IChkcm1fYXV0aC5oKSAqLworZXh0ZXJuIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2F1dGhtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworCQkJCS8qIExvY2tpbmcgSU9DVEwgc3VwcG9ydCAoZHJtX2xvY2suaCkgKi8KK2V4dGVybiBpbnQgZHJtX2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3VubG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9sb2NrX3Rha2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOworZXh0ZXJuIGludCBkcm1fbG9ja19mcmVlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KTsKK2V4dGVybiB2b2lkIGRybV9pZGxlbG9ja190YWtlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEpOworZXh0ZXJuIHZvaWQgZHJtX2lkbGVsb2NrX3JlbGVhc2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSk7CisKKy8qCisgKiBUaGVzZSBhcmUgZXhwb3J0ZWQgdG8gZHJpdmVycyBzbyB0aGF0IHRoZXkgY2FuIGltcGxlbWVudCBmZW5jaW5nIHVzaW5nCisgKiBETUEgcXVpc2NlbnQgKyBpZGxlLiBETUEgcXVpZXNjZW50IHVzdWFsbHkgcmVxdWlyZXMgdGhlIGhhcmR3YXJlIGxvY2suCisgKi8KKworZXh0ZXJuIGludCBkcm1faV9oYXZlX2h3X2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisJCQkJLyogQnVmZmVyIG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX2J1ZnMuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfcGNpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FkZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorCQkgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwgZW51bSBkcm1fbWFwX3R5cGUgdHlwZSwKKwkJICAgICAgZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzLCBkcm1fbG9jYWxfbWFwX3QgKiogbWFwX3B0cik7CitleHRlcm4gaW50IGRybV9hZGRtYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9ybW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fbG9jYWxfbWFwX3QgKm1hcCk7CitleHRlcm4gaW50IGRybV9ybW1hcF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2xvY2FsX21hcF90ICptYXApOworZXh0ZXJuIGludCBkcm1fcm1tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FkZGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2luZm9idWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9tYXJrYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZnJlZWJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX21hcGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2dldF9yZXNvdXJjZV9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOworCisJCQkJLyogRE1BIHN1cHBvcnQgKGRybV9kbWEuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2RtYV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9kbWFfdGFrZWRvd24oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fZnJlZV9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWYgKiBidWYpOworZXh0ZXJuIHZvaWQgZHJtX2NvcmVfcmVjbGFpbV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOworCisJCQkJLyogSVJRIHN1cHBvcnQgKGRybV9pcnEuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2NvbnRyb2woc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpcnFyZXR1cm5fdCBkcm1faXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKK2V4dGVybiBpbnQgZHJtX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKK2V4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnZibF9zZXEpOworZXh0ZXJuIHZvaWQgZHJtX3ZibF9zZW5kX3NpZ25hbHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fbG9ja2VkX3Rhc2tsZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCgqZnVuYykoc3RydWN0IGRybV9kZXZpY2UqKSk7CisKKwkJCQkvKiBBR1AvR0FSVCBzdXBwb3J0IChkcm1fYWdwc3VwcG9ydC5oKSAqLworZXh0ZXJuIHN0cnVjdCBkcm1fYWdwX2hlYWQgKmRybV9hZ3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IGRybV9hZ3BfcmVsZWFzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX21vZGUgbW9kZSk7CitleHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfaW5mbyAqaW5mbyk7CitleHRlcm4gaW50IGRybV9hZ3BfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciAqcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZ3BfYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgKnJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF91bmJpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYmluZGluZyAqcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWdwX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBEUk1fQUdQX01FTSAqZHJtX2FncF9hbGxvY2F0ZV9tZW1vcnkoc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlLCBzaXplX3QgcGFnZXMsIHUzMiB0eXBlKTsKK2V4dGVybiBpbnQgZHJtX2FncF9mcmVlX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSk7CitleHRlcm4gaW50IGRybV9hZ3BfYmluZF9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIG9mZl90IHN0YXJ0KTsKK2V4dGVybiBpbnQgZHJtX2FncF91bmJpbmRfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlKTsKKworCQkJCS8qIFN0dWIgc3VwcG9ydCAoZHJtX3N0dWIuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2dldF9kZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKK2V4dGVybiBpbnQgZHJtX3B1dF9kZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IGRybV9wdXRfbWlub3Ioc3RydWN0IGRybV9taW5vciAqKm1pbm9yKTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgZHJtX2RlYnVnOworCitleHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7CitleHRlcm4gc3RydWN0IHByb2NfZGlyX2VudHJ5ICpkcm1fcHJvY19yb290OworCitleHRlcm4gc3RydWN0IGlkciBkcm1fbWlub3JzX2lkcjsKKworZXh0ZXJuIGRybV9sb2NhbF9tYXBfdCAqZHJtX2dldHNhcmVhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisJCQkJLyogUHJvYyBzdXBwb3J0IChkcm1fcHJvYy5oKSAqLworZXh0ZXJuIGludCBkcm1fcHJvY19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yLCBpbnQgbWlub3JfaWQsCisJCQkgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKK2V4dGVybiBpbnQgZHJtX3Byb2NfY2xlYW51cChzdHJ1Y3QgZHJtX21pbm9yICptaW5vciwgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKKworCQkJCS8qIFNjYXR0ZXIgR2F0aGVyIFN1cHBvcnQgKGRybV9zY2F0dGVyLmgpICovCitleHRlcm4gdm9pZCBkcm1fc2dfY2xlYW51cChzdHJ1Y3QgZHJtX3NnX21lbSAqIGVudHJ5KTsKK2V4dGVybiBpbnQgZHJtX3NnX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9zZ19hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyICogcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9zZ19mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKwkJCSAgICAgICAvKiBBVEkgUENJR0FSVCBzdXBwb3J0IChhdGlfcGNpZ2FydC5oKSAqLworZXh0ZXJuIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqIGdhcnRfaW5mbyk7CitleHRlcm4gaW50IGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICogZ2FydF9pbmZvKTsKKworZXh0ZXJuIGRybV9kbWFfaGFuZGxlX3QgKmRybV9wY2lfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCisJCQkJICAgICAgIHNpemVfdCBhbGlnbiwgZG1hX2FkZHJfdCBtYXhhZGRyKTsKK2V4dGVybiB2b2lkIF9fZHJtX3BjaV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9kbWFfaGFuZGxlX3QgKiBkbWFoKTsKK2V4dGVybiB2b2lkIGRybV9wY2lfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fZG1hX2hhbmRsZV90ICogZG1haCk7CisKKwkJCSAgICAgICAvKiBzeXNmcyBzdXBwb3J0IChkcm1fc3lzZnMuYykgKi8KK3N0cnVjdCBkcm1fc3lzZnNfY2xhc3M7CitleHRlcm4gc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKTsKK2V4dGVybiB2b2lkIGRybV9zeXNmc19kZXN0cm95KHZvaWQpOworZXh0ZXJuIGludCBkcm1fc3lzZnNfZGV2aWNlX2FkZChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7CitleHRlcm4gdm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7CisKKy8qCisgKiBCYXNpYyBtZW1vcnkgbWFuYWdlciBzdXBwb3J0IChkcm1fbW0uYykKKyAqLworZXh0ZXJuIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX2dldF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKiBwYXJlbnQsCisJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkgICAgICAgdW5zaWduZWQgYWxpZ25tZW50KTsKK2V4dGVybiB2b2lkIGRybV9tbV9wdXRfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICogY3VyKTsKK2V4dGVybiBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9tbV9zZWFyY2hfZnJlZShjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkgdW5zaWduZWQgYWxpZ25tZW50LCBpbnQgYmVzdF9tYXRjaCk7CitleHRlcm4gaW50IGRybV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHZvaWQgZHJtX21tX3Rha2Vkb3duKHN0cnVjdCBkcm1fbW0gKm1tKTsKK2V4dGVybiBpbnQgZHJtX21tX2NsZWFuKHN0cnVjdCBkcm1fbW0gKm1tKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRybV9tbV90YWlsX3NwYWNlKHN0cnVjdCBkcm1fbW0gKm1tKTsKK2V4dGVybiBpbnQgZHJtX21tX3JlbW92ZV9zcGFjZV9mcm9tX3RhaWwoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gaW50IGRybV9tbV9hZGRfc3BhY2VfdG9fdGFpbChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplKTsKKworZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXBfd2Moc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fY29yZV9pb3JlbWFwZnJlZShzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworc3RhdGljIF9faW5saW5lX18gc3RydWN0IGRybV9tYXAgKmRybV9jb3JlX2ZpbmRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJCSAgIHVuc2lnbmVkIGludCB0b2tlbikKK3sKKwlzdHJ1Y3QgZHJtX21hcF9saXN0ICpfZW50cnk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShfZW50cnksICZkZXYtPm1hcGxpc3QsIGhlYWQpCisJICAgIGlmIChfZW50cnktPnVzZXJfdG9rZW4gPT0gdG9rZW4pCisJCXJldHVybiBfZW50cnktPm1hcDsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IGRybV9kZXZpY2VfaXNfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+ZHJpdmVyLT5kZXZpY2VfaXNfYWdwICE9IE5VTEwpIHsKKwkJaW50IGVyciA9ICgqZGV2LT5kcml2ZXItPmRldmljZV9pc19hZ3ApIChkZXYpOworCisJCWlmIChlcnIgIT0gMikgeworCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKworCXJldHVybiBwY2lfZmluZF9jYXBhYmlsaXR5KGRldi0+cGRldiwgUENJX0NBUF9JRF9BR1ApOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2RldmljZV9pc19wY2llKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LT5wZGV2LCBQQ0lfQ0FQX0lEX0VYUCk7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgZHJtX2NvcmVfZHJvcG1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwKQoreworfQorCisjaWZuZGVmIERFQlVHX01FTU9SWQorLyoqIFdyYXBwZXIgYXJvdW5kIGttYWxsb2MoKSAqLworc3RhdGljIF9faW5saW5lX18gdm9pZCAqZHJtX2FsbG9jKHNpemVfdCBzaXplLCBpbnQgYXJlYSkKK3sKKwlyZXR1cm4ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGtmcmVlKCkgKi8KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgZHJtX2ZyZWUodm9pZCAqcHQsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKK3sKKwlrZnJlZShwdCk7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBrY2FsbG9jKCkgKi8KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgKmRybV9jYWxsb2Moc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCit7CisJcmV0dXJuIGtjYWxsb2Mobm1lbWIsIHNpemUsIEdGUF9LRVJORUwpOworfQorI2Vsc2UKK2V4dGVybiB2b2lkICpkcm1fYWxsb2Moc2l6ZV90IHNpemUsIGludCBhcmVhKTsKK2V4dGVybiB2b2lkIGRybV9mcmVlKHZvaWQgKnB0LCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOworZXh0ZXJuIHZvaWQgKmRybV9jYWxsb2Moc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOworI2VuZGlmCisKKy8qQH0qLworCisjZW5kaWYJCQkJLyogX19LRVJORUxfXyAqLworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9jb3JlLmggYi9pbmNsdWRlL2RybS9kcm1fY29yZS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9jb3JlLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9jb3JlLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2hhc2h0YWIuaCBiL2luY2x1ZGUvZHJtL2RybV9oYXNodGFiLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2hhc2h0YWIuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX2hhc2h0YWIuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fbWVtb3J5LmggYi9pbmNsdWRlL2RybS9kcm1fbWVtb3J5LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fbWVtb3J5LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeV9kZWJ1Zy5oIGIvaW5jbHVkZS9kcm0vZHJtX21lbW9yeV9kZWJ1Zy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnlfZGVidWcuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX21lbW9yeV9kZWJ1Zy5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9vc19saW51eC5oIGIvaW5jbHVkZS9kcm0vZHJtX29zX2xpbnV4LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX29zX2xpbnV4LmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9vc19saW51eC5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGNpaWRzLmggYi9pbmNsdWRlL2RybS9kcm1fcGNpaWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM1YmQxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wY2lpZHMuaApAQCAtMCwwICsxLDQxNSBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBkcm1fcGNpaWRzLnR4dCBpbiB0aGUgRFJNIENWUworICAgUGxlYXNlIGNvbnRhY3QgZHJpLWRldmVsQGxpc3RzLnNmLm5ldCB0byBhZGQgbmV3IGNhcmRzIHRvIHRoaXMgbGlzdAorKi8KKyNkZWZpbmUgcmFkZW9uX1BDSV9JRFMgXAorCXsweDEwMDIsIDB4MzE1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHgzMTUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDMxNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4M0U1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDNFNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0MTM2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMTAwfFJBREVPTl9JU19JR1B9LCBcCisJezB4MTAwMiwgMHg0MTM3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMjAwfFJBREVPTl9JU19JR1B9LCBcCisJezB4MTAwMiwgMHg0MTQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0MTQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0MTQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0MTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0MTQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0MTRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0MTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0MTUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAorCXsweDEwMDIsIDB4NDE1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKKwl7MHgxMDAyLCAweDQxNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCisJezB4MTAwMiwgMHg0MTUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAorCXsweDEwMDIsIDB4NDE1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKKwl7MHgxMDAyLCAweDQxNTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCisJezB4MTAwMiwgMHg0MTU2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAorCXsweDEwMDIsIDB4NDIzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfSwgXAorCXsweDEwMDIsIDB4NDI0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMjAwfSwgXAorCXsweDEwMDIsIDB4NDI0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMjAwfSwgXAorCXsweDEwMDIsIDB4NDMzNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzEwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDQzMzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMyMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0NDM3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMjAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NDk2NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI1MH0sIFwKKwl7MHgxMDAyLCAweDQ5NjcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB9LCBcCisJezB4MTAwMiwgMHg0QTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTRDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTRELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg0QTRFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEI0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEI0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEI0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEI0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEM1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjIwMHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0QzU4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjAwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRDNTksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEM1QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0QzY0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRDNjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEM2NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0RTQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0RTQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0RTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0RTQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzMDB9LCBcCisJezB4MTAwMiwgMHg0RTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0RTQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0RTRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0RTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IzNTB9LCBcCisJezB4MTAwMiwgMHg0RTUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRFNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEU1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0RTUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRFNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEU1NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg1MTQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IxMDB8UkFERU9OX1NJTkdMRV9DUlRDfSwgXAorCXsweDEwMDIsIDB4NTE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKKwl7MHgxMDAyLCAweDUxNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjEwMHxSQURFT05fU0lOR0xFX0NSVEN9LCBcCisJezB4MTAwMiwgMHg1MTQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IxMDB8UkFERU9OX1NJTkdMRV9DUlRDfSwgXAorCXsweDEwMDIsIDB4NTE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMjAwfSwgXAorCXsweDEwMDIsIDB4NTE0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMjAwfSwgXAorCXsweDEwMDIsIDB4NTE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMjAwfSwgXAorCXsweDEwMDIsIDB4NTE1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjIwMH0sIFwKKwl7MHgxMDAyLCAweDUxNTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB9LCBcCisJezB4MTAwMiwgMHg1MTU5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfSwgXAorCXsweDEwMDIsIDB4NTE1QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKKwl7MHgxMDAyLCAweDUxNUUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB9LCBcCisJezB4MTAwMiwgMHg1NDYwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDU0NjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NTQ2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg1NjU3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTU1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTY0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1NjRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU2NEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTY1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1NjUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU4MzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUH0sIFwKKwl7MHgxMDAyLCAweDU4MzUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg1OTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDgwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXsweDEwMDIsIDB4NTk1NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQ4MHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKKwl7MHgxMDAyLCAweDU5NzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0ODB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezB4MTAwMiwgMHg1OTc1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDgwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXsweDEwMDIsIDB4NTk2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MH0sIFwKKwl7MHgxMDAyLCAweDU5NjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCisJezB4MTAwMiwgMHg1OTYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAorCXsweDEwMDIsIDB4NTk2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MH0sIFwKKwl7MHgxMDAyLCAweDU5NjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCisJezB4MTAwMiwgMHg1OTY5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfSwgXAorCXsweDEwMDIsIDB4NWE2MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQ4MHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKKwl7MHgxMDAyLCAweDVhNjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0ODB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezB4MTAwMiwgMHg1YjYwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWI2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDViNjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1YjY0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWI2NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVjNjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NWM2MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg1ZDQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVkNGEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDRkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDRmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDU3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWU0YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVlNGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZTRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWU0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVlNGYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTA0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTA2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwQSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwQiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwQywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwRSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwRiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE1RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNUYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTgwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxODMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTg2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MThDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOTMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTk2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOUIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTlGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUM2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQ0QsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUNFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFEMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxRDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFENSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxREEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MURFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyMTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyODEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjgzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3Mjg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyOEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjhDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI5MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyOTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjkzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI5NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDc4MzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDc4MzUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3OTFlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezB4MTAwMiwgMHg3OTFmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgcjEyOF9QQ0lfSURTIFwKKwl7MHgxMDAyLCAweDRjNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGQ0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRkNGMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDRELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDU2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MjQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUyNDcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MjRiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTI0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUzNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1NDQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTQ0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDU0NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgbWdhX1BDSV9JRFMgXAorCXsweDEwMmIsIDB4MDUyMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAorCXsweDEwMmIsIDB4MDUyMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAorCXsweDEwMmIsIDB4MDUyNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNDAwfSwgXAorCXsweDEwMmIsIDB4MjUyNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNTUwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIG1hY2g2NF9QQ0lfSURTIFwKKwl7MHgxMDAyLCAweDQ3NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc0ZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NGUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIHNpc2Rydl9QQ0lfSURTIFwKKwl7MHgxMDM5LCAweDAzMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAzOSwgMHg1MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMzksIDB4NjMwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDM5LCAweDYzMzAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFNJU19DSElQXzMxNX0sIFwKKwl7MHgxMDM5LCAweDYzNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAzOSwgMHg3MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDE4Q0EsIDB4MDA0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAorCXsweDE4Q0EsIDB4MDA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIHRkZnhfUENJX0lEUyBcCisJezB4MTIxYSwgMHgwMDAzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEyMWEsIDB4MDAwNCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMjFhLCAweDAwMDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTIxYSwgMHgwMDA3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEyMWEsIDB4MDAwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMjFhLCAweDAwMGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgdmlhZHJ2X1BDSV9JRFMgXAorCXsweDExMDYsIDB4MzAyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMTA2LCAweDMxMTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZJQV9QUk9fR1JPVVBfQX0sIFwKKwl7MHgxMTA2LCAweDMxMjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTEwNiwgMHg3MjA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDExMDYsIDB4MzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMTA2LCAweDMzNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTEwNiwgMHgzMzQzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDExMDYsIDB4MzIzMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX0RYOV8wfSwgXAorCXsweDExMDYsIDB4MzE1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX1BST19HUk9VUF9BfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIGk4MTBfUENJX0lEUyBcCisJezB4ODA4NiwgMHg3MTIxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4NzEyMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDcxMjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgxMTMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIGk4MzBfUENJX0lEUyBcCisJezB4ODA4NiwgMHgzNTc3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjU2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDM1ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIGdhbW1hX1BDSV9JRFMgXAorCXsweDNkM2QsIDB4MDAwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBzYXZhZ2VfUENJX0lEUyBcCisJezB4NTMzMywgMHg4YTIwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0UzRH0sIFwKKwl7MHg1MzMzLCAweDhhMjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTNEfSwgXAorCXsweDUzMzMsIDB4OGEyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFNH0sIFwKKwl7MHg1MzMzLCAweDhhMjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTR9LCBcCisJezB4NTMzMywgMHg4YzEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCisJezB4NTMzMywgMHg4YzExLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCisJezB4NTMzMywgMHg4YzEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCisJezB4NTMzMywgMHg4YzEzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCisJezB4NTMzMywgMHg4YzIyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGMyNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YzJhLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMmIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGMyYywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YzJkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMmUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGMyZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YTI1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YTI2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCisJezB4NTMzMywgMHg4ZDAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19UV0lTVEVSfSwgXAorCXsweDUzMzMsIDB4OGQwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfVFdJU1RFUn0sIFwKKwl7MHg1MzMzLCAweDhkMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKKwl7MHg1MzMzLCAweDhkMDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBmZmJfUENJX0lEUyBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgaTkxNV9QQ0lfSURTIFwKKwl7MHg4MDg2LCAweDM1NzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNTYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MzU4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI1NzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNTgyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjU4YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI1OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNzcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjdhMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI3YWUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyOTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4Mjk4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI5OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyOWEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjliMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI5YzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyOWQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MmEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDJhMTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyYTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MmUwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDJlMTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyZTIyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc2FyZWEuaCBiL2luY2x1ZGUvZHJtL2RybV9zYXJlYS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zYXJlYS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fc2FyZWEuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc21hbi5oIGIvaW5jbHVkZS9kcm0vZHJtX3NtYW4uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc21hbi5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fc21hbi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MTBfZHJtLmggYi9pbmNsdWRlL2RybS9pODEwX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MTBfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2k4MTBfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgzMF9kcm0uaCBiL2luY2x1ZGUvZHJtL2k4MzBfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgzMF9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vaTgzMF9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pOTE1X2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9pOTE1X2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9kcm0uaCBiL2luY2x1ZGUvZHJtL21nYV9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL21nYV9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2RybS5oIGIvaW5jbHVkZS9kcm0vcjEyOF9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yMTI4X2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9yMTI4X2RybS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9yYWRlb25fZHJtLmggYi9pbmNsdWRlL2RybS9yYWRlb25fZHJtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNmZjUxZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL3JhZGVvbl9kcm0uaApAQCAtMCwwICsxLDc0OSBAQAorLyogcmFkZW9uX2RybS5oIC0tIFB1YmxpYyBoZWFkZXIgZm9yIHRoZSByYWRlb24gZHJpdmVyIC0qLSBsaW51eC1jIC0qLQorICoKKyAqIENvcHlyaWdodCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCisgKiBDb3B5cmlnaHQgMjAwMiBUdW5nc3RlbiBHcmFwaGljcywgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+CisgKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKiAgICBLZWl0aCBXaGl0d2VsbCA8a2VpdGhAdHVuZ3N0ZW5ncmFwaGljcy5jb20+CisgKi8KKworI2lmbmRlZiBfX1JBREVPTl9EUk1fSF9fCisjZGVmaW5lIF9fUkFERU9OX0RSTV9IX18KKworLyogV0FSTklORzogSWYgeW91IGNoYW5nZSBhbnkgb2YgdGhlc2UgZGVmaW5lcywgbWFrZSBzdXJlIHRvIGNoYW5nZSB0aGUKKyAqIGRlZmluZXMgaW4gdGhlIFggc2VydmVyIGZpbGUgKHJhZGVvbl9zYXJlYS5oKQorICovCisjaWZuZGVmIF9fUkFERU9OX1NBUkVBX0RFRklORVNfXworI2RlZmluZSBfX1JBREVPTl9TQVJFQV9ERUZJTkVTX18KKworLyogT2xkIHN0eWxlIHN0YXRlIGZsYWdzLCByZXF1aXJlZCBmb3Igc2FyZWEgaW50ZXJmYWNlICgxLjEgYW5kIDEuMgorICogY2xlYXJzKSBhbmQgMS4yIGRybV92ZXJ0ZXgyIGlvY3RsLgorICovCisjZGVmaW5lIFJBREVPTl9VUExPQURfQ09OVEVYVAkJMHgwMDAwMDAwMQorI2RlZmluZSBSQURFT05fVVBMT0FEX1ZFUlRGTVQJCTB4MDAwMDAwMDIKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9MSU5FCQkweDAwMDAwMDA0CisjZGVmaW5lIFJBREVPTl9VUExPQURfQlVNUE1BUAkJMHgwMDAwMDAwOAorI2RlZmluZSBSQURFT05fVVBMT0FEX01BU0tTCQkweDAwMDAwMDEwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVklFV1BPUlQJCTB4MDAwMDAwMjAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9TRVRVUAkJMHgwMDAwMDA0MAorI2RlZmluZSBSQURFT05fVVBMT0FEX1RDTAkJMHgwMDAwMDA4MAorI2RlZmluZSBSQURFT05fVVBMT0FEX01JU0MJCTB4MDAwMDAxMDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgwCQkweDAwMDAwMjAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMQkJMHgwMDAwMDQwMAorI2RlZmluZSBSQURFT05fVVBMT0FEX1RFWDIJCTB4MDAwMDA4MDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgwSU1BR0VTCTB4MDAwMDEwMDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTCTB4MDAwMDIwMDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTCTB4MDAwMDQwMDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9DTElQUkVDVFMJCTB4MDAwMDgwMDAJLyogaGFuZGxlZCBjbGllbnQtc2lkZSAqLworI2RlZmluZSBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFCTB4MDAwMTAwMDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9aQklBUwkJMHgwMDAyMDAwMAkvKiB2ZXJzaW9uIDEuMiBhbmQgbmV3ZXIgKi8KKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9BTEwJCTB4MDAzZWZmZmYKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9DT05URVhUX0FMTCAgICAgICAweDAwM2UwMWZmCisKKy8qIE5ldyBzdHlsZSBwZXItcGFja2V0IGlkZW50aWZpZXJzIGZvciB1c2UgaW4gY21kX2J1ZmZlciBpb2N0bCB3aXRoCisgKiB0aGUgUkFERU9OX0VNSVRfUEFDS0VUIGNvbW1hbmQuICBDb21tZW50cyByZWxhdGUgbmV3IHBhY2tldHMgdG8gb2xkCisgKiBzdGF0ZSBiaXRzIGFuZCB0aGUgcGFja2V0IHNpemU6CisgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAwCS8qIGNvbnRleHQvNyAqLworI2RlZmluZSBSQURFT05fRU1JVF9QUF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgIDEJLyogY29udGV4dC8zICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1JCM0RfQ09MT1JQSVRDSCAgICAgICAgICAgICAgICAgMgkvKiBjb250ZXh0LzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUkVfTElORV9QQVRURVJOICAgICAgICAgICAgICAgICAzCS8qIGxpbmUvMiAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9MSU5FX1dJRFRIICAgICAgICAgICAgICAgICAgIDQJLyogbGluZS8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0xVTV9NQVRSSVggICAgICAgICAgICAgICAgICAgNQkvKiBidW1wbWFwLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfUk9UX01BVFJJWF8wICAgICAgICAgICAgICAgICA2CS8qIGJ1bXBtYXAvMiAqLworI2RlZmluZSBSQURFT05fRU1JVF9SQjNEX1NURU5DSUxSRUZNQVNLICAgICAgICAgICAgIDcJLyogbWFza3MvMyAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9WUE9SVF9YU0NBTEUgICAgICAgICAgICAgICAgIDgJLyogdmlld3BvcnQvNiAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgIDkJLyogc2V0dXAvMiAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgICAgIDEwCS8qIHNldHVwLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUkVfTUlTQyAgICAgICAgICAgICAgICAgICAgICAgICAxMQkvKiBtaXNjLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMCAgICAgICAgICAgICAgICAgICAxMgkvKiB0ZXgwLzYgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzAgICAgICAgICAgICAgICAxMwkvKiB0ZXgwLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMSAgICAgICAgICAgICAgICAgICAxNAkvKiB0ZXgxLzYgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzEgICAgICAgICAgICAgICAxNQkvKiB0ZXgxLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAgICAxNgkvKiB0ZXgyLzYgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzIgICAgICAgICAgICAgICAxNwkvKiB0ZXgyLzEgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfU0VfWkJJQVNfRkFDVE9SICAgICAgICAgICAgICAgICAxOAkvKiB6Ymlhcy8yICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCAgICAgICAgICAgMTkJLyogdGNsLzExICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEICAgMjAJLyogbWF0ZXJpYWwvMTcgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzAgICAgICAgICAgICAgICAgICAgICAyMQkvKiB0ZXgwLzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzEgICAgICAgICAgICAgICAgICAgICAyMgkvKiB0ZXgxLzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzIgICAgICAgICAgICAgICAgICAgICAyMwkvKiB0ZXgyLzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzMgICAgICAgICAgICAgICAgICAgICAyNAkvKiB0ZXgzLzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzQgICAgICAgICAgICAgICAgICAgICAyNQkvKiB0ZXg0LzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzUgICAgICAgICAgICAgICAgICAgICAyNgkvKiB0ZXg1LzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzYgICAgICAgICAgICAgICAgICAgICAyNwkvKiAvNCAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNyAgICAgICAgICAgICAgICAgICAgIDI4CS8qIC80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAgICAgICAgICAgICAgMjkJLyogdGNsLzcgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1RGQUNUT1JfMCAgICAgICAgICAgICAgICAgICAgICAgICAzMAkvKiB0Zi83ICovCisjZGVmaW5lIFIyMDBfRU1JVF9WVFhfRk1UXzAgICAgICAgICAgICAgICAgICAgICAgICAgMzEJLyogdnR4LzUgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1ZBUF9DVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAzMgkvKiB2YXAvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfTUFUUklYX1NFTEVDVF8wICAgICAgICAgICAgICAgICAgIDMzCS8qIG1zbC81ICovCisjZGVmaW5lIFIyMDBfRU1JVF9URVhfUFJPQ19DVExfMiAgICAgICAgICAgICAgICAgICAgMzQJLyogdGNnLzUgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwgICAgICAgICAgICAzNQkvKiB0Y2wvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMCAgICAgICAgICAgICAgICAgICAgIDM2CS8qIHRleDAvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMSAgICAgICAgICAgICAgICAgICAgIDM3CS8qIHRleDEvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAgICAgIDM4CS8qIHRleDIvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMyAgICAgICAgICAgICAgICAgICAgIDM5CS8qIHRleDMvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNCAgICAgICAgICAgICAgICAgICAgIDQwCS8qIHRleDQvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNSAgICAgICAgICAgICAgICAgICAgIDQxCS8qIHRleDUvNiAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMCAgICAgICAgICAgICAgICAgICAgIDQyCS8qIHRleDAvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMSAgICAgICAgICAgICAgICAgICAgIDQzCS8qIHRleDEvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMiAgICAgICAgICAgICAgICAgICAgIDQ0CS8qIHRleDIvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMyAgICAgICAgICAgICAgICAgICAgIDQ1CS8qIHRleDMvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNCAgICAgICAgICAgICAgICAgICAgIDQ2CS8qIHRleDQvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNSAgICAgICAgICAgICAgICAgICAgIDQ3CS8qIHRleDUvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfVlRFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4CS8qIHZ0ZS8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9PVVRQVVRfVlRYX0NPTVBfU0VMICAgICAgICAgICAgICAgNDkJLyogdnR4LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RBTV9ERUJVRzMgICAgICAgICAgICAgICAgICAgICA1MAkvKiB0YW0vMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfQ05UTF9YICAgICAgICAgICAgICAgICAgICAgICAgIDUxCS8qIGNzdC8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9SQjNEX0RFUFRIWFlfT0ZGU0VUICAgICAgICAgICAgICAgNTIJLyogY3N0LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgICAgICA1MwkvKiBjc3QvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8wICAgICAgICAgICAgICAgICAgIDU0CS8qIGNzdC8yICovCisjZGVmaW5lIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzEgICAgICAgICAgICAgICAgICAgNTUJLyogY3N0LzIgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMiAgICAgICAgICAgICAgICAgICA1NgkvKiBjc3QvMiAqLworI2RlZmluZSBSMjAwX0VNSVRfU0VfVkFQX0NOVExfU1RBVFVTICAgICAgICAgICAgICAgIDU3CS8qIGNzdC8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9TRV9WVFhfU1RBVEVfQ05UTCAgICAgICAgICAgICAgICAgNTgJLyogY3N0LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgICAgICA1OQkvKiBjc3QvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wICAgICAgIDYwCS8qIGNzdC80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgICAgICAgNjEKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMCAgICAgICAgICAgICAgICA2MgorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMSAgICAgICAgICAgICAgICAgIDYzCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzEgICAgICAgICAgICAgICAgNjQKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzIgICAgICAgICAgICAgICAgICA2NQorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18yICAgICAgICAgICAgICAgIDY2CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18zICAgICAgICAgICAgICAgICAgNjcKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMyAgICAgICAgICAgICAgICA2OAorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfNCAgICAgICAgICAgICAgICAgIDY5CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzQgICAgICAgICAgICAgICAgNzAKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzUgICAgICAgICAgICAgICAgICA3MQorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU181ICAgICAgICAgICAgICAgIDcyCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzAgICAgICAgICAgICAgICAgICAgNzMKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMSAgICAgICAgICAgICAgICAgICA3NAorI2RlZmluZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8yICAgICAgICAgICAgICAgICAgIDc1CisjZGVmaW5lIFIyMDBfRU1JVF9SQjNEX0JMRU5EQ09MT1IgICAgICAgICAgICAgICAgICAgNzYKKyNkZWZpbmUgUjIwMF9FTUlUX1RDTF9QT0lOVF9TUFJJVEVfQ05UTCAgICAgICAgICAgICA3NworI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgICAgIDc4CisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDAgICAgICAgICAgICAgNzkKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMSAgICAgICAgICAgICAgICA4MAorI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QxICAgICAgICAgICAgIDgxCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzIgICAgICAgICAgICAgICAgODIKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMiAgICAgICAgICAgICA4MworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFJJX1BFUkZfQ05UTCAgICAgICAgICAgICAgICAgIDg0CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9BRlNfMCAgICAgICAgICAgICAgICAgICAgICAgICAgODUKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0FGU18xICAgICAgICAgICAgICAgICAgICAgICAgICA4NgorI2RlZmluZSBSMjAwX0VNSVRfQVRGX1RGQUNUT1IgICAgICAgICAgICAgICAgICAgICAgIDg3CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8wICAgICAgICAgICAgICAgICAgICAgODgKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzEgICAgICAgICAgICAgICAgICAgICA4OQorI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMiAgICAgICAgICAgICAgICAgICAgIDkwCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8zICAgICAgICAgICAgICAgICAgICAgOTEKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzQgICAgICAgICAgICAgICAgICAgICA5MgorI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfNSAgICAgICAgICAgICAgICAgICAgIDkzCisjZGVmaW5lIFIyMDBfRU1JVF9WQVBfUFZTX0NOVEwgICAgICAgICAgICAgICAgICAgICAgOTQKKyNkZWZpbmUgUkFERU9OX01BWF9TVEFURV9QQUNLRVRTICAgICAgICAgICAgICAgICAgICA5NQorCisvKiBDb21tYW5kcyB1bmRlcnN0b29kIGJ5IGNtZF9idWZmZXIgaW9jdGwuICBNb3JlIGNhbiBiZSBhZGRlZCBidXQKKyAqIG9idmlvdXNseSB0aGVzZSBjYW4ndCBiZSByZW1vdmVkIG9yIGNoYW5nZWQ6CisgKi8KKyNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQgICAgICAxCS8qIGVtaXQgb25lIG9mIHRoZSByZWdpc3RlciBwYWNrZXRzIGFib3ZlICovCisjZGVmaW5lIFJBREVPTl9DTURfU0NBTEFSUyAgICAgMgkvKiBlbWl0IHNjYWxhciBkYXRhICovCisjZGVmaW5lIFJBREVPTl9DTURfVkVDVE9SUyAgICAgMwkvKiBlbWl0IHZlY3RvciBkYXRhICovCisjZGVmaW5lIFJBREVPTl9DTURfRE1BX0RJU0NBUkQgNAkvKiBkaXNjYXJkIGN1cnJlbnQgZG1hIGJ1ZiAqLworI2RlZmluZSBSQURFT05fQ01EX1BBQ0tFVDMgICAgIDUJLyogZW1pdCBodyBwYWNrZXQgKi8KKyNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQzX0NMSVAgNgkvKiBlbWl0IGh3IHBhY2tldCB3cmFwcGVkIGluIGNsaXByZWN0cyAqLworI2RlZmluZSBSQURFT05fQ01EX1NDQUxBUlMyICAgICA3CS8qIHIyMDAgc3RvcGdhcCAqLworI2RlZmluZSBSQURFT05fQ01EX1dBSVQgICAgICAgICA4CS8qIGVtaXQgaHcgd2FpdCBjb21tYW5kcyAtLSBub3RlOgorCQkJCQkgKiAgZG9lc24ndCBtYWtlIHRoZSBjcHUgd2FpdCwganVzdAorCQkJCQkgKiAgdGhlIGdyYXBoaWNzIGhhcmR3YXJlICovCisjZGVmaW5lIFJBREVPTl9DTURfVkVDTElORUFSCTkgICAgICAgLyogYW5vdGhlciByMjAwIHN0b3BnYXAgKi8KKwordHlwZWRlZiB1bmlvbiB7CisJaW50IGk7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFkMCwgcGFkMSwgcGFkMjsKKwl9IGhlYWRlcjsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBwYWNrZXRfaWQsIHBhZDAsIHBhZDE7CisJfSBwYWNrZXQ7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgb2Zmc2V0LCBzdHJpZGUsIGNvdW50OworCX0gc2NhbGFyczsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBvZmZzZXQsIHN0cmlkZSwgY291bnQ7CisJfSB2ZWN0b3JzOworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGFkZHJfbG8sIGFkZHJfaGksIGNvdW50OworCX0gdmVjbGluZWFyOworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGJ1Zl9pZHgsIHBhZDAsIHBhZDE7CisJfSBkbWE7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgZmxhZ3MsIHBhZDAsIHBhZDE7CisJfSB3YWl0OworfSBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdDsKKworI2RlZmluZSBSQURFT05fV0FJVF8yRCAgMHgxCisjZGVmaW5lIFJBREVPTl9XQUlUXzNEICAweDIKKworLyogQWxsb3dlZCBwYXJhbWV0ZXJzIGZvciBSMzAwX0NNRF9QQUNLRVQzCisgKi8KKyNkZWZpbmUgUjMwMF9DTURfUEFDS0VUM19DTEVBUgkJMAorI2RlZmluZSBSMzAwX0NNRF9QQUNLRVQzX1JBVwkJMQorCisvKiBDb21tYW5kcyB1bmRlcnN0b29kIGJ5IGNtZF9idWZmZXIgaW9jdGwgZm9yIFIzMDAuCisgKiBUaGUgaW50ZXJmYWNlIGhhcyBub3QgYmVlbiBzdGFiaWxpemVkLCBzbyBzb21lIG9mIHRoZXNlIG1heSBiZSByZW1vdmVkCisgKiBhbmQgZXZlbnR1YWxseSByZW9yZGVyZWQgYmVmb3JlIHN0YWJpbGl6YXRpb24uCisgKi8KKyNkZWZpbmUgUjMwMF9DTURfUEFDS0VUMAkJMQorI2RlZmluZSBSMzAwX0NNRF9WUFUJCQkyCS8qIGVtaXQgdmVydGV4IHByb2dyYW0gdXBsb2FkICovCisjZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDMJCTMJLyogZW1pdCBhIHBhY2tldDMgKi8KKyNkZWZpbmUgUjMwMF9DTURfRU5EM0QJCQk0CS8qIGVtaXQgc2VxdWVuY2UgZW5kaW5nIDNkIHJlbmRlcmluZyAqLworI2RlZmluZSBSMzAwX0NNRF9DUF9ERUxBWQkJNQorI2RlZmluZSBSMzAwX0NNRF9ETUFfRElTQ0FSRAkJNgorI2RlZmluZSBSMzAwX0NNRF9XQUlUCQkJNworIwlkZWZpbmUgUjMwMF9XQUlUXzJECQkweDEKKyMJZGVmaW5lIFIzMDBfV0FJVF8zRAkJMHgyCisvKiB0aGVzZSB0d28gZGVmaW5lcyBhcmUgRE9JTkcgSVQgV1JPTkcgLSBob3dldmVyCisgKiB3ZSBoYXZlIHVzZXJzcGFjZSB3aGljaCByZWxpZXMgb24gdXNpbmcgdGhlc2UuCisgKiBUaGUgd2FpdCBpbnRlcmZhY2UgaXMgYmFja3dhcmRzIGNvbXBhdCBuZXcgCisgKiBjb2RlIHNob3VsZCB1c2UgdGhlIE5FV19XQUlUIGRlZmluZXMgYmVsb3cKKyAqIFRIRVNFIEFSRSBOT1QgQklUIEZJRUxEUworICovCisjCWRlZmluZSBSMzAwX1dBSVRfMkRfQ0xFQU4JMHgzCisjCWRlZmluZSBSMzAwX1dBSVRfM0RfQ0xFQU4JMHg0CisKKyMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfMkRfM0QJMHgzCisjCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOCTB4NAorIwlkZWZpbmUgUjMwMF9ORVdfV0FJVF8zRF8zRF9DTEVBTgkweDYKKyMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfMkRfMkRfQ0xFQU5fM0RfM0RfQ0xFQU4JMHg4CisKKyNkZWZpbmUgUjMwMF9DTURfU0NSQVRDSAkJOAorI2RlZmluZSBSMzAwX0NNRF9SNTAwRlAgICAgICAgICAgICAgICAgIDkKKwordHlwZWRlZiB1bmlvbiB7CisJdW5zaWduZWQgaW50IHU7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFkMCwgcGFkMSwgcGFkMjsKKwl9IGhlYWRlcjsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBjb3VudCwgcmVnbG8sIHJlZ2hpOworCX0gcGFja2V0MDsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBjb3VudCwgYWRybG8sIGFkcmhpOworCX0gdnB1OworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhY2tldCwgcGFkMCwgcGFkMTsKKwl9IHBhY2tldDM7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFja2V0OworCQl1bnNpZ25lZCBzaG9ydCBjb3VudDsJLyogYW1vdW50IG9mIHBhY2tldDIgdG8gZW1pdCAqLworCX0gZGVsYXk7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgYnVmX2lkeCwgcGFkMCwgcGFkMTsKKwl9IGRtYTsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBmbGFncywgcGFkMCwgcGFkMTsKKwl9IHdhaXQ7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcmVnLCBuX2J1ZnMsIGZsYWdzOworCX0gc2NyYXRjaDsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBjb3VudCwgYWRybG8sIGFkcmhpX2ZsYWdzOworCX0gcjUwMGZwOworfSBkcm1fcjMwMF9jbWRfaGVhZGVyX3Q7CisKKyNkZWZpbmUgUkFERU9OX0ZST05UCQkJMHgxCisjZGVmaW5lIFJBREVPTl9CQUNLCQkJMHgyCisjZGVmaW5lIFJBREVPTl9ERVBUSAkJCTB4NAorI2RlZmluZSBSQURFT05fU1RFTkNJTAkJCTB4OAorI2RlZmluZSBSQURFT05fQ0xFQVJfRkFTVFoJCTB4ODAwMDAwMDAKKyNkZWZpbmUgUkFERU9OX1VTRV9ISUVSWgkJMHg0MDAwMDAwMAorI2RlZmluZSBSQURFT05fVVNFX0NPTVBfWkJVRgkJMHgyMDAwMDAwMAorCisjZGVmaW5lIFI1MDBGUF9DT05TVEFOVF9UWVBFICAoMSA8PCAxKQorI2RlZmluZSBSNTAwRlBfQ09OU1RBTlRfQ0xBTVAgKDEgPDwgMikKKworLyogUHJpbWl0aXZlIHR5cGVzCisgKi8KKyNkZWZpbmUgUkFERU9OX1BPSU5UUwkJCTB4MQorI2RlZmluZSBSQURFT05fTElORVMJCQkweDIKKyNkZWZpbmUgUkFERU9OX0xJTkVfU1RSSVAJCTB4MworI2RlZmluZSBSQURFT05fVFJJQU5HTEVTCQkweDQKKyNkZWZpbmUgUkFERU9OX1RSSUFOR0xFX0ZBTgkJMHg1CisjZGVmaW5lIFJBREVPTl9UUklBTkdMRV9TVFJJUAkJMHg2CisKKy8qIFZlcnRleC9pbmRpcmVjdCBidWZmZXIgc2l6ZQorICovCisjZGVmaW5lIFJBREVPTl9CVUZGRVJfU0laRQkJNjU1MzYKKworLyogQnl0ZSBvZmZzZXRzIGZvciBpbmRpcmVjdCBidWZmZXIgZGF0YQorICovCisjZGVmaW5lIFJBREVPTl9JTkRFWF9QUklNX09GRlNFVAkyMAorCisjZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQJMzIKKworI2RlZmluZSBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTCTEyCisKKy8qIFRoZXJlIGFyZSAyIGhlYXBzIChsb2NhbC9HQVJUKS4gIEVhY2ggcmVnaW9uIHdpdGhpbiBhIGhlYXAgaXMgYQorICogbWluaW11bSBvZiA2NGssIGFuZCB0aGVyZSBhcmUgYXQgbW9zdCA2NCBvZiB0aGVtIHBlciBoZWFwLgorICovCisjZGVmaW5lIFJBREVPTl9MT0NBTF9URVhfSEVBUAkJMAorI2RlZmluZSBSQURFT05fR0FSVF9URVhfSEVBUAkJMQorI2RlZmluZSBSQURFT05fTlJfVEVYX0hFQVBTCQkyCisjZGVmaW5lIFJBREVPTl9OUl9URVhfUkVHSU9OUwkJNjQKKyNkZWZpbmUgUkFERU9OX0xPR19URVhfR1JBTlVMQVJJVFkJMTYKKworI2RlZmluZSBSQURFT05fTUFYX1RFWFRVUkVfTEVWRUxTCTEyCisjZGVmaW5lIFJBREVPTl9NQVhfVEVYVFVSRV9VTklUUwkzCisKKyNkZWZpbmUgUkFERU9OX01BWF9TVVJGQUNFUwkJOAorCisvKiBCbGl0cyBoYXZlIHN0cmljdCBvZmZzZXQgcnVsZXMuICBBbGwgYmxpdCBvZmZzZXQgbXVzdCBiZSBhbGlnbmVkIG9uCisgKiBhIDFLLWJ5dGUgYm91bmRhcnkuCisgKi8KKyNkZWZpbmUgUkFERU9OX09GRlNFVF9TSElGVCAgICAgICAgICAgICAxMAorI2RlZmluZSBSQURFT05fT0ZGU0VUX0FMSUdOICAgICAgICAgICAgICgxIDw8IFJBREVPTl9PRkZTRVRfU0hJRlQpCisjZGVmaW5lIFJBREVPTl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgKFJBREVPTl9PRkZTRVRfQUxJR04gLSAxKQorCisjZW5kaWYJCQkJLyogX19SQURFT05fU0FSRUFfREVGSU5FU19fICovCisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgcmVkOworCXVuc2lnbmVkIGludCBncmVlbjsKKwl1bnNpZ25lZCBpbnQgYmx1ZTsKKwl1bnNpZ25lZCBpbnQgYWxwaGE7Cit9IHJhZGVvbl9jb2xvcl9yZWdzX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwkvKiBDb250ZXh0IHN0YXRlICovCisJdW5zaWduZWQgaW50IHBwX21pc2M7CS8qIDB4MWMxNCAqLworCXVuc2lnbmVkIGludCBwcF9mb2dfY29sb3I7CisJdW5zaWduZWQgaW50IHJlX3NvbGlkX2NvbG9yOworCXVuc2lnbmVkIGludCByYjNkX2JsZW5kY250bDsKKwl1bnNpZ25lZCBpbnQgcmIzZF9kZXB0aG9mZnNldDsKKwl1bnNpZ25lZCBpbnQgcmIzZF9kZXB0aHBpdGNoOworCXVuc2lnbmVkIGludCByYjNkX3pzdGVuY2lsY250bDsKKworCXVuc2lnbmVkIGludCBwcF9jbnRsOwkvKiAweDFjMzggKi8KKwl1bnNpZ25lZCBpbnQgcmIzZF9jbnRsOworCXVuc2lnbmVkIGludCByYjNkX2NvbG9yb2Zmc2V0OworCXVuc2lnbmVkIGludCByZV93aWR0aF9oZWlnaHQ7CisJdW5zaWduZWQgaW50IHJiM2RfY29sb3JwaXRjaDsKKwl1bnNpZ25lZCBpbnQgc2VfY250bDsKKworCS8qIFZlcnRleCBmb3JtYXQgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgc2VfY29vcmRfZm10OwkvKiAweDFjNTAgKi8KKworCS8qIExpbmUgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgcmVfbGluZV9wYXR0ZXJuOwkvKiAweDFjZDAgKi8KKwl1bnNpZ25lZCBpbnQgcmVfbGluZV9zdGF0ZTsKKworCXVuc2lnbmVkIGludCBzZV9saW5lX3dpZHRoOwkvKiAweDFkYjggKi8KKworCS8qIEJ1bXBtYXAgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgcHBfbHVtX21hdHJpeDsJLyogMHgxZDAwICovCisKKwl1bnNpZ25lZCBpbnQgcHBfcm90X21hdHJpeF8wOwkvKiAweDFkNTggKi8KKwl1bnNpZ25lZCBpbnQgcHBfcm90X21hdHJpeF8xOworCisJLyogTWFzayBzdGF0ZSAqLworCXVuc2lnbmVkIGludCByYjNkX3N0ZW5jaWxyZWZtYXNrOwkvKiAweDFkN2MgKi8KKwl1bnNpZ25lZCBpbnQgcmIzZF9yb3BjbnRsOworCXVuc2lnbmVkIGludCByYjNkX3BsYW5lbWFzazsKKworCS8qIFZpZXdwb3J0IHN0YXRlICovCisJdW5zaWduZWQgaW50IHNlX3Zwb3J0X3hzY2FsZTsJLyogMHgxZDk4ICovCisJdW5zaWduZWQgaW50IHNlX3Zwb3J0X3hvZmZzZXQ7CisJdW5zaWduZWQgaW50IHNlX3Zwb3J0X3lzY2FsZTsKKwl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfeW9mZnNldDsKKwl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfenNjYWxlOworCXVuc2lnbmVkIGludCBzZV92cG9ydF96b2Zmc2V0OworCisJLyogU2V0dXAgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgc2VfY250bF9zdGF0dXM7CS8qIDB4MjE0MCAqLworCisJLyogTWlzYyBzdGF0ZSAqLworCXVuc2lnbmVkIGludCByZV90b3BfbGVmdDsJLyogMHgyNmMwICovCisJdW5zaWduZWQgaW50IHJlX21pc2M7Cit9IGRybV9yYWRlb25fY29udGV4dF9yZWdzX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwkvKiBaYmlhcyBzdGF0ZSAqLworCXVuc2lnbmVkIGludCBzZV96Ymlhc19mYWN0b3I7CS8qIDB4MWRhYyAqLworCXVuc2lnbmVkIGludCBzZV96Ymlhc19jb25zdGFudDsKK30gZHJtX3JhZGVvbl9jb250ZXh0Ml9yZWdzX3Q7CisKKy8qIFNldHVwIHJlZ2lzdGVycyBmb3IgZWFjaCB0ZXh0dXJlIHVuaXQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworCXVuc2lnbmVkIGludCBwcF90eGZpbHRlcjsKKwl1bnNpZ25lZCBpbnQgcHBfdHhmb3JtYXQ7CisJdW5zaWduZWQgaW50IHBwX3R4b2Zmc2V0OworCXVuc2lnbmVkIGludCBwcF90eGNibGVuZDsKKwl1bnNpZ25lZCBpbnQgcHBfdHhhYmxlbmQ7CisJdW5zaWduZWQgaW50IHBwX3RmYWN0b3I7CisJdW5zaWduZWQgaW50IHBwX2JvcmRlcl9jb2xvcjsKK30gZHJtX3JhZGVvbl90ZXh0dXJlX3JlZ3NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworCXVuc2lnbmVkIGludCBzdGFydDsKKwl1bnNpZ25lZCBpbnQgZmluaXNoOworCXVuc2lnbmVkIGludCBwcmltOjg7CisJdW5zaWduZWQgaW50IHN0YXRlaWR4Ojg7CisJdW5zaWduZWQgaW50IG51bXZlcnRzOjE2OwkvKiBvdmVybG9hZGVkIGFzIG9mZnNldC82NCBmb3IgZWx0IHByaW1zICovCisJdW5zaWduZWQgaW50IHZjX2Zvcm1hdDsJLyogdmVydGV4IGZvcm1hdCAqLworfSBkcm1fcmFkZW9uX3ByaW1fdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworCWRybV9yYWRlb25fY29udGV4dF9yZWdzX3QgY29udGV4dDsKKwlkcm1fcmFkZW9uX3RleHR1cmVfcmVnc190IHRleFtSQURFT05fTUFYX1RFWFRVUkVfVU5JVFNdOworCWRybV9yYWRlb25fY29udGV4dDJfcmVnc190IGNvbnRleHQyOworCXVuc2lnbmVkIGludCBkaXJ0eTsKK30gZHJtX3JhZGVvbl9zdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCB7CisJLyogVGhlIGNoYW5uZWwgZm9yIGNvbW11bmljYXRpb24gb2Ygc3RhdGUgaW5mb3JtYXRpb24gdG8gdGhlCisJICoga2VybmVsIG9uIGZpcmluZyBhIHZlcnRleCBidWZmZXIgd2l0aCBlaXRoZXIgb2YgdGhlCisJICogb2Jzb2xldGVkIHZlcnRleC9pbmRleCBpb2N0bHMuCisJICovCisJZHJtX3JhZGVvbl9jb250ZXh0X3JlZ3NfdCBjb250ZXh0X3N0YXRlOworCWRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3QgdGV4X3N0YXRlW1JBREVPTl9NQVhfVEVYVFVSRV9VTklUU107CisJdW5zaWduZWQgaW50IGRpcnR5OworCXVuc2lnbmVkIGludCB2ZXJ0c2l6ZTsKKwl1bnNpZ25lZCBpbnQgdmNfZm9ybWF0OworCisJLyogVGhlIGN1cnJlbnQgY2xpcHJlY3RzLCBvciBhIHN1YnNldCB0aGVyZW9mLgorCSAqLworCXN0cnVjdCBkcm1fY2xpcF9yZWN0IGJveGVzW1JBREVPTl9OUl9TQVJFQV9DTElQUkVDVFNdOworCXVuc2lnbmVkIGludCBuYm94OworCisJLyogQ291bnRlcnMgZm9yIGNsaWVudC1zaWRlIHRocm90dGxpbmcgb2YgcmVuZGVyaW5nIGNsaWVudHMuCisJICovCisJdW5zaWduZWQgaW50IGxhc3RfZnJhbWU7CisJdW5zaWduZWQgaW50IGxhc3RfZGlzcGF0Y2g7CisJdW5zaWduZWQgaW50IGxhc3RfY2xlYXI7CisKKwlzdHJ1Y3QgZHJtX3RleF9yZWdpb24gdGV4X2xpc3RbUkFERU9OX05SX1RFWF9IRUFQU11bUkFERU9OX05SX1RFWF9SRUdJT05TICsKKwkJCQkJCSAgICAgICAxXTsKKwl1bnNpZ25lZCBpbnQgdGV4X2FnZVtSQURFT05fTlJfVEVYX0hFQVBTXTsKKwlpbnQgY3R4X293bmVyOworCWludCBwZlN0YXRlOwkJLyogbnVtYmVyIG9mIDNkIHdpbmRvd3MgKDAsMSwyb3Jtb3JlKSAqLworCWludCBwZkN1cnJlbnRQYWdlOwkvKiB3aGljaCBidWZmZXIgaXMgYmVpbmcgZGlzcGxheWVkPyAqLworCWludCBjcnRjMl9iYXNlOwkJLyogQ1JUQzIgZnJhbWUgb2Zmc2V0ICovCisJaW50IHRpbGluZ19lbmFibGVkOwkvKiBzZXQgYnkgZHJtLCByZWFkIGJ5IDJkICsgM2QgY2xpZW50cyAqLworfSBkcm1fcmFkZW9uX3NhcmVhX3Q7CisKKy8qIFdBUk5JTkc6IElmIHlvdSBjaGFuZ2UgYW55IG9mIHRoZXNlIGRlZmluZXMsIG1ha2Ugc3VyZSB0byBjaGFuZ2UgdGhlCisgKiBkZWZpbmVzIGluIHRoZSBYc2VydmVyIGZpbGUgKHhmODZkcm1SYWRlb24uaCkKKyAqCisgKiBLVzogYWN0dWFsbHkgaXQncyBpbGxlZ2FsIHRvIGNoYW5nZSBhbnkgb2YgdGhpcyAoYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgorICovCisKKy8qIFJhZGVvbiBzcGVjaWZpYyBpb2N0bHMKKyAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgMHg0MCB0byAweDc5LgorICovCisjZGVmaW5lIERSTV9SQURFT05fQ1BfSU5JVCAgICAweDAwCisjZGVmaW5lIERSTV9SQURFT05fQ1BfU1RBUlQgICAweDAxCisjZGVmaW5lIERSTV9SQURFT05fQ1BfU1RPUCAgICAweDAyCisjZGVmaW5lIERSTV9SQURFT05fQ1BfUkVTRVQgICAweDAzCisjZGVmaW5lIERSTV9SQURFT05fQ1BfSURMRSAgICAweDA0CisjZGVmaW5lIERSTV9SQURFT05fUkVTRVQgICAgICAweDA1CisjZGVmaW5lIERSTV9SQURFT05fRlVMTFNDUkVFTiAweDA2CisjZGVmaW5lIERSTV9SQURFT05fU1dBUCAgICAgICAweDA3CisjZGVmaW5lIERSTV9SQURFT05fQ0xFQVIgICAgICAweDA4CisjZGVmaW5lIERSTV9SQURFT05fVkVSVEVYICAgICAweDA5CisjZGVmaW5lIERSTV9SQURFT05fSU5ESUNFUyAgICAweDBBCisjZGVmaW5lIERSTV9SQURFT05fTk9UX1VTRUQKKyNkZWZpbmUgRFJNX1JBREVPTl9TVElQUExFICAgIDB4MEMKKyNkZWZpbmUgRFJNX1JBREVPTl9JTkRJUkVDVCAgIDB4MEQKKyNkZWZpbmUgRFJNX1JBREVPTl9URVhUVVJFICAgIDB4MEUKKyNkZWZpbmUgRFJNX1JBREVPTl9WRVJURVgyICAgIDB4MEYKKyNkZWZpbmUgRFJNX1JBREVPTl9DTURCVUYgICAgIDB4MTAKKyNkZWZpbmUgRFJNX1JBREVPTl9HRVRQQVJBTSAgIDB4MTEKKyNkZWZpbmUgRFJNX1JBREVPTl9GTElQICAgICAgIDB4MTIKKyNkZWZpbmUgRFJNX1JBREVPTl9BTExPQyAgICAgIDB4MTMKKyNkZWZpbmUgRFJNX1JBREVPTl9GUkVFICAgICAgIDB4MTQKKyNkZWZpbmUgRFJNX1JBREVPTl9JTklUX0hFQVAgIDB4MTUKKyNkZWZpbmUgRFJNX1JBREVPTl9JUlFfRU1JVCAgIDB4MTYKKyNkZWZpbmUgRFJNX1JBREVPTl9JUlFfV0FJVCAgIDB4MTcKKyNkZWZpbmUgRFJNX1JBREVPTl9DUF9SRVNVTUUgIDB4MTgKKyNkZWZpbmUgRFJNX1JBREVPTl9TRVRQQVJBTSAgIDB4MTkKKyNkZWZpbmUgRFJNX1JBREVPTl9TVVJGX0FMTE9DIDB4MWEKKyNkZWZpbmUgRFJNX1JBREVPTl9TVVJGX0ZSRUUgIDB4MWIKKworI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX0lOSVQgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfSU5JVCwgZHJtX3JhZGVvbl9pbml0X3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfU1RBUlQgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9TVEFSVCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9TVE9QICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX1NUT1AsIGRybV9yYWRlb25fY3Bfc3RvcF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX1JFU0VUICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfUkVTRVQpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfSURMRSAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9JRExFKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1JFU0VUICAgICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fUkVTRVQpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRlVMTFNDUkVFTiBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GVUxMU0NSRUVOLCBkcm1fcmFkZW9uX2Z1bGxzY3JlZW5fdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TV0FQICAgICAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NXQVApCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ0xFQVIgICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DTEVBUiwgZHJtX3JhZGVvbl9jbGVhcl90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1ZFUlRFWCAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fVkVSVEVYLCBkcm1fcmFkZW9uX3ZlcnRleF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lORElDRVMgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSU5ESUNFUywgZHJtX3JhZGVvbl9pbmRpY2VzX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1RJUFBMRSAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TVElQUExFLCBkcm1fcmFkZW9uX3N0aXBwbGVfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JTkRJUkVDVCAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lORElSRUNULCBkcm1fcmFkZW9uX2luZGlyZWN0X3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fVEVYVFVSRSAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9URVhUVVJFLCBkcm1fcmFkZW9uX3RleHR1cmVfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9WRVJURVgyICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1ZFUlRFWDIsIGRybV9yYWRlb25fdmVydGV4Ml90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NNREJVRiAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ01EQlVGLCBkcm1fcmFkZW9uX2NtZF9idWZmZXJfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9HRVRQQVJBTSAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0dFVFBBUkFNLCBkcm1fcmFkZW9uX2dldHBhcmFtX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRkxJUCAgICAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GTElQKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0FMTE9DICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQUxMT0MsIGRybV9yYWRlb25fbWVtX2FsbG9jX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRlJFRSAgICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GUkVFLCBkcm1fcmFkZW9uX21lbV9mcmVlX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSU5JVF9IRUFQICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JTklUX0hFQVAsIGRybV9yYWRlb25fbWVtX2luaXRfaGVhcF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lSUV9FTUlUICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSVJRX0VNSVQsIGRybV9yYWRlb25faXJxX2VtaXRfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JUlFfV0FJVCAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lSUV9XQUlULCBkcm1fcmFkZW9uX2lycV93YWl0X3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfUkVTVU1FICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9SRVNVTUUpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU0VUUEFSQU0gICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TRVRQQVJBTSwgZHJtX3JhZGVvbl9zZXRwYXJhbV90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NVUkZfQUxMT0MgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU1VSRl9BTExPQywgZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1VSRl9GUkVFICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TVVJGX0ZSRUUsIGRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3QpCisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faW5pdCB7CisJZW51bSB7CisJCVJBREVPTl9JTklUX0NQID0gMHgwMSwKKwkJUkFERU9OX0NMRUFOVVBfQ1AgPSAweDAyLAorCQlSQURFT05fSU5JVF9SMjAwX0NQID0gMHgwMywKKwkJUkFERU9OX0lOSVRfUjMwMF9DUCA9IDB4MDQKKwl9IGZ1bmM7CisJdW5zaWduZWQgbG9uZyBzYXJlYV9wcml2X29mZnNldDsKKwlpbnQgaXNfcGNpOworCWludCBjcF9tb2RlOworCWludCBnYXJ0X3NpemU7CisJaW50IHJpbmdfc2l6ZTsKKwlpbnQgdXNlY190aW1lb3V0OworCisJdW5zaWduZWQgaW50IGZiX2JwcDsKKwl1bnNpZ25lZCBpbnQgZnJvbnRfb2Zmc2V0LCBmcm9udF9waXRjaDsKKwl1bnNpZ25lZCBpbnQgYmFja19vZmZzZXQsIGJhY2tfcGl0Y2g7CisJdW5zaWduZWQgaW50IGRlcHRoX2JwcDsKKwl1bnNpZ25lZCBpbnQgZGVwdGhfb2Zmc2V0LCBkZXB0aF9waXRjaDsKKworCXVuc2lnbmVkIGxvbmcgZmJfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgbW1pb19vZmZzZXQ7CisJdW5zaWduZWQgbG9uZyByaW5nX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIHJpbmdfcnB0cl9vZmZzZXQ7CisJdW5zaWduZWQgbG9uZyBidWZmZXJzX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIGdhcnRfdGV4dHVyZXNfb2Zmc2V0OworfSBkcm1fcmFkZW9uX2luaXRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9jcF9zdG9wIHsKKwlpbnQgZmx1c2g7CisJaW50IGlkbGU7Cit9IGRybV9yYWRlb25fY3Bfc3RvcF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2Z1bGxzY3JlZW4geworCWVudW0geworCQlSQURFT05fSU5JVF9GVUxMU0NSRUVOID0gMHgwMSwKKwkJUkFERU9OX0NMRUFOVVBfRlVMTFNDUkVFTiA9IDB4MDIKKwl9IGZ1bmM7Cit9IGRybV9yYWRlb25fZnVsbHNjcmVlbl90OworCisjZGVmaW5lIENMRUFSX1gxCTAKKyNkZWZpbmUgQ0xFQVJfWTEJMQorI2RlZmluZSBDTEVBUl9YMgkyCisjZGVmaW5lIENMRUFSX1kyCTMKKyNkZWZpbmUgQ0xFQVJfREVQVEgJNAorCit0eXBlZGVmIHVuaW9uIGRybV9yYWRlb25fY2xlYXJfcmVjdCB7CisJZmxvYXQgZls1XTsKKwl1bnNpZ25lZCBpbnQgdWlbNV07Cit9IGRybV9yYWRlb25fY2xlYXJfcmVjdF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2NsZWFyIHsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJdW5zaWduZWQgaW50IGNsZWFyX2NvbG9yOworCXVuc2lnbmVkIGludCBjbGVhcl9kZXB0aDsKKwl1bnNpZ25lZCBpbnQgY29sb3JfbWFzazsKKwl1bnNpZ25lZCBpbnQgZGVwdGhfbWFzazsJLyogbWlzbmFtZWQgZmllbGQ6ICBzaG91bGQgYmUgc3RlbmNpbCAqLworCWRybV9yYWRlb25fY2xlYXJfcmVjdF90IF9fdXNlciAqZGVwdGhfYm94ZXM7Cit9IGRybV9yYWRlb25fY2xlYXJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl92ZXJ0ZXggeworCWludCBwcmltOworCWludCBpZHg7CQkvKiBJbmRleCBvZiB2ZXJ0ZXggYnVmZmVyICovCisJaW50IGNvdW50OwkJLyogTnVtYmVyIG9mIHZlcnRpY2VzIGluIGJ1ZmZlciAqLworCWludCBkaXNjYXJkOwkJLyogQ2xpZW50IGZpbmlzaGVkIHdpdGggYnVmZmVyPyAqLworfSBkcm1fcmFkZW9uX3ZlcnRleF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2luZGljZXMgeworCWludCBwcmltOworCWludCBpZHg7CisJaW50IHN0YXJ0OworCWludCBlbmQ7CisJaW50IGRpc2NhcmQ7CQkvKiBDbGllbnQgZmluaXNoZWQgd2l0aCBidWZmZXI/ICovCit9IGRybV9yYWRlb25faW5kaWNlc190OworCisvKiB2MS4yIC0gb2Jzb2xldGVzIGRybV9yYWRlb25fdmVydGV4IGFuZCBkcm1fcmFkZW9uX2luZGljZXMKKyAqICAgICAgLSBhbGxvd3MgbXVsdGlwbGUgcHJpbWl0aXZlcyBhbmQgc3RhdGUgY2hhbmdlcyBpbiBhIHNpbmdsZSBpb2N0bAorICogICAgICAtIHN1cHBvcnRzIGRyaXZlciBjaGFuZ2UgdG8gZW1pdCBuYXRpdmUgcHJpbWl0aXZlcworICovCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3ZlcnRleDIgeworCWludCBpZHg7CQkvKiBJbmRleCBvZiB2ZXJ0ZXggYnVmZmVyICovCisJaW50IGRpc2NhcmQ7CQkvKiBDbGllbnQgZmluaXNoZWQgd2l0aCBidWZmZXI/ICovCisJaW50IG5yX3N0YXRlczsKKwlkcm1fcmFkZW9uX3N0YXRlX3QgX191c2VyICpzdGF0ZTsKKwlpbnQgbnJfcHJpbXM7CisJZHJtX3JhZGVvbl9wcmltX3QgX191c2VyICpwcmltOworfSBkcm1fcmFkZW9uX3ZlcnRleDJfdDsKKworLyogdjEuMyAtIG9ic29sZXRlcyBkcm1fcmFkZW9uX3ZlcnRleDIKKyAqICAgICAgLSBhbGxvd3MgYXJiaXRhcmlseSBsYXJnZSBjbGlwcmVjdCBsaXN0CisgKiAgICAgIC0gYWxsb3dzIHVwZGF0aW5nIG9mIHRjbCBwYWNrZXQsIHZlY3RvciBhbmQgc2NhbGFyIHN0YXRlCisgKiAgICAgIC0gYWxsb3dzIG1lbW9yeS1lZmZpY2llbnQgZGVzY3JpcHRpb24gb2Ygc3RhdGUgdXBkYXRlcworICogICAgICAtIGFsbG93cyBzdGF0ZSB0byBiZSBlbWl0dGVkIHdpdGhvdXQgYSBwcmltaXRpdmUKKyAqICAgICAgICAgICAoZm9yIGNsZWFycywgY3R4IHN3aXRjaGVzKQorICogICAgICAtIGFsbG93cyBtb3JlIHRoYW4gb25lIGRtYSBidWZmZXIgdG8gYmUgcmVmZXJlbmNlZCBwZXIgaW9jdGwKKyAqICAgICAgLSBzdXBwb3J0cyB0Y2wgZHJpdmVyCisgKiAgICAgIC0gbWF5IGJlIGV4dGVuZGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyB3aXRoIG5ldyBjbWQgdHlwZXMsIHBhY2tldHMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9jbWRfYnVmZmVyIHsKKwlpbnQgYnVmc3o7CisJY2hhciBfX3VzZXIgKmJ1ZjsKKwlpbnQgbmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzOworfSBkcm1fcmFkZW9uX2NtZF9idWZmZXJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl90ZXhfaW1hZ2UgeworCXVuc2lnbmVkIGludCB4LCB5OwkvKiBCbGl0IGNvb3JkaW5hdGVzICovCisJdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7CisJY29uc3Qgdm9pZCBfX3VzZXIgKmRhdGE7Cit9IGRybV9yYWRlb25fdGV4X2ltYWdlX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fdGV4dHVyZSB7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKwlpbnQgcGl0Y2g7CisJaW50IGZvcm1hdDsKKwlpbnQgd2lkdGg7CQkvKiBUZXh0dXJlIGltYWdlIGNvb3JkaW5hdGVzICovCisJaW50IGhlaWdodDsKKwlkcm1fcmFkZW9uX3RleF9pbWFnZV90IF9fdXNlciAqaW1hZ2U7Cit9IGRybV9yYWRlb25fdGV4dHVyZV90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3N0aXBwbGUgeworCXVuc2lnbmVkIGludCBfX3VzZXIgKm1hc2s7Cit9IGRybV9yYWRlb25fc3RpcHBsZV90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2luZGlyZWN0IHsKKwlpbnQgaWR4OworCWludCBzdGFydDsKKwlpbnQgZW5kOworCWludCBkaXNjYXJkOworfSBkcm1fcmFkZW9uX2luZGlyZWN0X3Q7CisKKy8qIGVudW0gZm9yIGNhcmQgdHlwZSBwYXJhbWV0ZXJzICovCisjZGVmaW5lIFJBREVPTl9DQVJEX1BDSSAwCisjZGVmaW5lIFJBREVPTl9DQVJEX0FHUCAxCisjZGVmaW5lIFJBREVPTl9DQVJEX1BDSUUgMgorCisvKiAxLjM6IEFuIGlvY3RsIHRvIGdldCBwYXJhbWV0ZXJzIHRoYXQgYXJlbid0IGF2YWlsYWJsZSB0byB0aGUgM2QKKyAqIGNsaWVudCBhbnkgb3RoZXIgd2F5LgorICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9HQVJUX0JVRkZFUl9PRkZTRVQgICAgMQkvKiBjYXJkIG9mZnNldCBvZiAxc3QgR0FSVCBidWZmZXIgKi8KKyNkZWZpbmUgUkFERU9OX1BBUkFNX0xBU1RfRlJBTUUgICAgICAgICAgICAyCisjZGVmaW5lIFJBREVPTl9QQVJBTV9MQVNUX0RJU1BBVENIICAgICAgICAgMworI2RlZmluZSBSQURFT05fUEFSQU1fTEFTVF9DTEVBUiAgICAgICAgICAgIDQKKy8qIEFkZGVkIHdpdGggRFJNIHZlcnNpb24gMS42LiAqLworI2RlZmluZSBSQURFT05fUEFSQU1fSVJRX05SICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgUkFERU9OX1BBUkFNX0dBUlRfQkFTRSAgICAgICAgICAgICA2CS8qIGNhcmQgb2Zmc2V0IG9mIEdBUlQgYmFzZSAqLworLyogQWRkZWQgd2l0aCBEUk0gdmVyc2lvbiAxLjguICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9SRUdJU1RFUl9IQU5ETEUgICAgICAgNwkvKiBmb3IgZHJtTWFwKCkgKi8KKyNkZWZpbmUgUkFERU9OX1BBUkFNX1NUQVRVU19IQU5ETEUgICAgICAgICA4CisjZGVmaW5lIFJBREVPTl9QQVJBTV9TQVJFQV9IQU5ETEUgICAgICAgICAgOQorI2RlZmluZSBSQURFT05fUEFSQU1fR0FSVF9URVhfSEFORExFICAgICAgIDEwCisjZGVmaW5lIFJBREVPTl9QQVJBTV9TQ1JBVENIX09GRlNFVCAgICAgICAgMTEKKyNkZWZpbmUgUkFERU9OX1BBUkFNX0NBUkRfVFlQRSAgICAgICAgICAgICAxMgorI2RlZmluZSBSQURFT05fUEFSQU1fVkJMQU5LX0NSVEMgICAgICAgICAgIDEzICAgLyogVkJMQU5LIENSVEMgKi8KKyNkZWZpbmUgUkFERU9OX1BBUkFNX0ZCX0xPQ0FUSU9OICAgICAgICAgICAxNCAgIC8qIEZCIGxvY2F0aW9uICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9OVU1fR0JfUElQRVMgICAgICAgICAgMTUgICAvKiBudW0gR0IgcGlwZXMgKi8KKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9nZXRwYXJhbSB7CisJaW50IHBhcmFtOworCXZvaWQgX191c2VyICp2YWx1ZTsKK30gZHJtX3JhZGVvbl9nZXRwYXJhbV90OworCisvKiAxLjY6IFNldCB1cCBhIG1lbW9yeSBtYW5hZ2VyIGZvciByZWdpb25zIG9mIHNoYXJlZCBtZW1vcnk6CisgKi8KKyNkZWZpbmUgUkFERU9OX01FTV9SRUdJT05fR0FSVCAxCisjZGVmaW5lIFJBREVPTl9NRU1fUkVHSU9OX0ZCICAgMgorCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX21lbV9hbGxvYyB7CisJaW50IHJlZ2lvbjsKKwlpbnQgYWxpZ25tZW50OworCWludCBzaXplOworCWludCBfX3VzZXIgKnJlZ2lvbl9vZmZzZXQ7CS8qIG9mZnNldCBmcm9tIHN0YXJ0IG9mIGZiIG9yIEdBUlQgKi8KK30gZHJtX3JhZGVvbl9tZW1fYWxsb2NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1fZnJlZSB7CisJaW50IHJlZ2lvbjsKKwlpbnQgcmVnaW9uX29mZnNldDsKK30gZHJtX3JhZGVvbl9tZW1fZnJlZV90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX21lbV9pbml0X2hlYXAgeworCWludCByZWdpb247CisJaW50IHNpemU7CisJaW50IHN0YXJ0OworfSBkcm1fcmFkZW9uX21lbV9pbml0X2hlYXBfdDsKKworLyogMS42OiBVc2Vyc3BhY2UgY2FuIHJlcXVlc3QgJiB3YWl0IG9uIGlycSdzOgorICovCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2lycV9lbWl0IHsKKwlpbnQgX191c2VyICppcnFfc2VxOworfSBkcm1fcmFkZW9uX2lycV9lbWl0X3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faXJxX3dhaXQgeworCWludCBpcnFfc2VxOworfSBkcm1fcmFkZW9uX2lycV93YWl0X3Q7CisKKy8qIDEuMTA6IENsaWVudHMgdGVsbCB0aGUgRFJNIHdoZXJlIHRoZXkgdGhpbmsgdGhlIGZyYW1lYnVmZmVyIGlzIGxvY2F0ZWQgaW4KKyAqIHRoZSBjYXJkJ3MgYWRkcmVzcyBzcGFjZSwgdmlhIGEgbmV3IGdlbmVyaWMgaW9jdGwgdG8gc2V0IHBhcmFtZXRlcnMKKyAqLworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3NldHBhcmFtIHsKKwl1bnNpZ25lZCBpbnQgcGFyYW07CisJaW50NjRfdCB2YWx1ZTsKK30gZHJtX3JhZGVvbl9zZXRwYXJhbV90OworCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9GQl9MT0NBVElPTiAgICAxCS8qIGRldGVybWluZWQgZnJhbWVidWZmZXIgbG9jYXRpb24gKi8KKyNkZWZpbmUgUkFERU9OX1NFVFBBUkFNX1NXSVRDSF9USUxJTkcgIDIJLyogZW5hYmxlL2Rpc2FibGUgY29sb3IgdGlsaW5nICovCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX0xPQ0FUSU9OIDMJLyogUENJIEdhcnQgTG9jYXRpb24gKi8KKyNkZWZpbmUgUkFERU9OX1NFVFBBUkFNX05FV19NRU1NQVAgNAkJLyogVXNlIG5ldyBtZW1vcnkgbWFwICovCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX1RBQkxFX1NJWkUgNSAgICAvKiBQQ0kgR0FSVCBUYWJsZSBTaXplICovCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9WQkxBTktfQ1JUQyA2ICAgICAgICAgICAvKiBWQkxBTksgQ1JUQyAqLworLyogMS4xNDogQ2xpZW50cyBjYW4gYWxsb2NhdGUvZnJlZSBhIHN1cmZhY2UKKyAqLwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jIHsKKwl1bnNpZ25lZCBpbnQgYWRkcmVzczsKKwl1bnNpZ25lZCBpbnQgc2l6ZTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7Cit9IGRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3N1cmZhY2VfZnJlZSB7CisJdW5zaWduZWQgaW50IGFkZHJlc3M7Cit9IGRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3Q7CisKKyNkZWZpbmUJRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEJCTEKKyNkZWZpbmUJRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIJCTIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcm0uaCBiL2luY2x1ZGUvZHJtL3NhdmFnZV9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL3NhdmFnZV9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zaXNfZHJtLmggYi9pbmNsdWRlL2RybS9zaXNfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2lzX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9zaXNfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX2RybS5oIGIvaW5jbHVkZS9kcm0vdmlhX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vdmlhX2RybS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L0tidWlsZCBiL2luY2x1ZGUvbGludXgvS2J1aWxkCmluZGV4IDkzYjk4ODUuLjcxZDcwZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvS2J1aWxkCisrKyBiL2luY2x1ZGUvbGludXgvS2J1aWxkCkBAIC0xNjYsNiArMTY2LDkgQEAKIHVuaWZkZWYteSArPSBhZGIuaAogdW5pZmRlZi15ICs9IGFkZnNfZnMuaAogdW5pZmRlZi15ICs9IGFncGdhcnQuaAoraWZuZXEgKCQod2lsZGNhcmQgJChzcmN0cmVlKS9pbmNsdWRlL2FzbS0kKFNSQ0FSQ0gpL2Eub3V0LmgpLCkKK3VuaWZkZWYteSArPSBhLm91dC5oCitlbmRpZgogdW5pZmRlZi15ICs9IGFwbV9iaW9zLmgKIHVuaWZkZWYteSArPSBhdGFsay5oCiB1bmlmZGVmLXkgKz0gYXRtZGV2LmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYS5vdXQuaCBiL2luY2x1ZGUvbGludXgvYS5vdXQuaAppbmRleCAyMDhmNGU4Li5lODZkZmNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Eub3V0LmgKKysrIGIvaW5jbHVkZS9saW51eC9hLm91dC5oCkBAIC0xLDggKzEsNiBAQAogI2lmbmRlZiBfX0FfT1VUX0dOVV9IX18KICNkZWZpbmUgX19BX09VVF9HTlVfSF9fCiAKLSNpZmRlZiBDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUCi0KICNkZWZpbmUgX19HTlVfRVhFQ19NQUNST1NfXwogCiAjaWZuZGVmIF9fU1RSVUNUX0VYRUNfT1ZFUlJJREVfXwpAQCAtMjc3LDEwICsyNzUsNCBAQAogI2VuZGlmIC8qIG5vIE5fUkVMT0NBVElPTl9JTkZPX0RFQ0xBUkVELiAgKi8KIAogI2VuZGlmIC8qX19BU1NFTUJMWV9fICovCi0jZWxzZSAvKiBDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUICovCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotc3RydWN0IGV4ZWMgewotfTsKLSNlbmRpZgotI2VuZGlmIC8qIENPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQgKi8KICNlbmRpZiAvKiBfX0FfT1VUX0dOVV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYWNwaS5oIGIvaW5jbHVkZS9saW51eC9hY3BpLmgKaW5kZXggNDFmN2NlNy4uMDYwMTA3NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hY3BpLmgKKysrIGIvaW5jbHVkZS9saW51eC9hY3BpLmgKQEAgLTgyLDYgKzgyLDcgQEAKIGludCBlYXJseV9hY3BpX2Jvb3RfaW5pdCh2b2lkKTsKIGludCBhY3BpX2Jvb3RfaW5pdCAodm9pZCk7CiBpbnQgYWNwaV9ib290X3RhYmxlX2luaXQgKHZvaWQpOworaW50IGFjcGlfbXBzX2NoZWNrICh2b2lkKTsKIGludCBhY3BpX251bWFfaW5pdCAodm9pZCk7CiAKIGludCBhY3BpX3RhYmxlX2luaXQgKHZvaWQpOwpAQCAtMjUwLDYgKzI1MSwxMSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW5saW5lIGludCBhY3BpX21wc19jaGVjayh2b2lkKQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW5saW5lIGludCBhY3BpX2NoZWNrX3Jlc291cmNlX2NvbmZsaWN0KHN0cnVjdCByZXNvdXJjZSAqcmVzKQogewogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hZ3BfYmFja2VuZC5oIGIvaW5jbHVkZS9saW51eC9hZ3BfYmFja2VuZC5oCmluZGV4IDY2MWQ5MGQuLjk3MmIxMmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWdwX2JhY2tlbmQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2FncF9iYWNrZW5kLmgKQEAgLTMwLDE0ICszMCw2IEBACiAjaWZuZGVmIF9BR1BfQkFDS0VORF9ICiAjZGVmaW5lIF9BR1BfQkFDS0VORF9IIDEKIAotI2lmbmRlZiBUUlVFCi0jZGVmaW5lIFRSVUUgMQotI2VuZGlmCi0KLSNpZm5kZWYgRkFMU0UKLSNkZWZpbmUgRkFMU0UgMAotI2VuZGlmCi0KIGVudW0gY2hpcHNldF90eXBlIHsKIAlOT1RfU1VQUE9SVEVELAogCVNVUFBPUlRFRCwKQEAgLTU3LDcgKzQ5LDcgQEAKIAlzaXplX3QgYXBlcl9zaXplOwogCWludCBtYXhfbWVtb3J5OwkJLyogSW4gcGFnZXMgKi8KIAlpbnQgY3VycmVudF9tZW1vcnk7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOworCWJvb2wgY2FudF91c2VfYXBlcnR1cmU7CiAJdW5zaWduZWQgbG9uZyBwYWdlX21hc2s7CiAJc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICp2bV9vcHM7CiB9OwpAQCAtODMsOSArNzUsOSBAQAogCW9mZl90IHBnX3N0YXJ0OwogCXUzMiB0eXBlOwogCXUzMiBwaHlzaWNhbDsKLQl1OCBpc19ib3VuZDsKLQl1OCBpc19mbHVzaGVkOwotICAgICAgICB1OCB2bWFsbG9jX2ZsYWc7CisJYm9vbCBpc19ib3VuZDsKKwlib29sIGlzX2ZsdXNoZWQ7CisgICAgICAgIGJvb2wgdm1hbGxvY19mbGFnOwogfTsKIAogI2RlZmluZSBBR1BfTk9STUFMX01FTU9SWSAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FncGdhcnQuaCBiL2luY2x1ZGUvbGludXgvYWdwZ2FydC5oCmluZGV4IDYyYWVmNTguLmM4ZmRiNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWdwZ2FydC5oCisrKyBiL2luY2x1ZGUvbGludXgvYWdwZ2FydC5oCkBAIC0yMDYsOCArMjA2LDggQEAKIAlzdHJ1Y3QgYWdwX2NvbnRyb2xsZXIgKmN1cnJlbnRfY29udHJvbGxlcjsKIAlzdHJ1Y3QgYWdwX2NvbnRyb2xsZXIgKmNvbnRyb2xsZXJzOwogCXN0cnVjdCBhZ3BfZmlsZV9wcml2YXRlICpmaWxlX3ByaXZfbGlzdDsKLQl1OCB1c2VkX2J5X2NvbnRyb2xsZXI7Ci0JdTggYmFja2VuZF9hY3F1aXJlZDsKKwlib29sIHVzZWRfYnlfY29udHJvbGxlcjsKKwlib29sIGJhY2tlbmRfYWNxdWlyZWQ7CiB9OwogCiAjZW5kaWYJCQkJLyogX19LRVJORUxfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCmluZGV4IDYzYzNiYjkuLjhiODI5NzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYXVkaXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKQEAgLTU3MSw3ICs1NzEsNyBAQAogZXh0ZXJuIGludAkJICAgIGF1ZGl0X3VwZGF0ZV9sc21fcnVsZXModm9pZCk7CiAKIAkJCQkvKiBQcml2YXRlIEFQSSAoZm9yIGF1ZGl0LmMgb25seSkgKi8KLWV4dGVybiBpbnQgYXVkaXRfZmlsdGVyX3VzZXIoc3RydWN0IG5ldGxpbmtfc2tiX3Bhcm1zICpjYiwgaW50IHR5cGUpOworZXh0ZXJuIGludCBhdWRpdF9maWx0ZXJfdXNlcihzdHJ1Y3QgbmV0bGlua19za2JfcGFybXMgKmNiKTsKIGV4dGVybiBpbnQgYXVkaXRfZmlsdGVyX3R5cGUoaW50IHR5cGUpOwogZXh0ZXJuIGludCAgYXVkaXRfcmVjZWl2ZV9maWx0ZXIoaW50IHR5cGUsIGludCBwaWQsIGludCB1aWQsIGludCBzZXEsCiAJCQkJdm9pZCAqZGF0YSwgc2l6ZV90IGRhdGFzeiwgdWlkX3QgbG9naW51aWQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jpby5oIGIvaW5jbHVkZS9saW51eC9iaW8uaAppbmRleCA2MWMxNWVhLi4wOTMzYTE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jpby5oCisrKyBiL2luY2x1ZGUvbGludXgvYmlvLmgKQEAgLTY0LDYgKzY0LDcgQEAKIAogc3RydWN0IGJpb19zZXQ7CiBzdHJ1Y3QgYmlvOworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZDsKIHR5cGVkZWYgdm9pZCAoYmlvX2VuZF9pb190KSAoc3RydWN0IGJpbyAqLCBpbnQpOwogdHlwZWRlZiB2b2lkIChiaW9fZGVzdHJ1Y3Rvcl90KSAoc3RydWN0IGJpbyAqKTsKIApAQCAtMTEyLDYgKzExMyw5IEBACiAJYXRvbWljX3QJCWJpX2NudDsJCS8qIHBpbiBjb3VudCAqLwogCiAJdm9pZAkJCSpiaV9wcml2YXRlOworI2lmIGRlZmluZWQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQorCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpX2ludGVncml0eTsgIC8qIGRhdGEgaW50ZWdyaXR5ICovCisjZW5kaWYKIAogCWJpb19kZXN0cnVjdG9yX3QJKmJpX2Rlc3RydWN0b3I7CS8qIGRlc3RydWN0b3IgKi8KIH07CkBAIC0yNzEsNiArMjc1LDI5IEBACiAgKi8KICNkZWZpbmUgYmlvX2dldChiaW8pCWF0b21pY19pbmMoJihiaW8pLT5iaV9jbnQpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKy8qCisgKiBiaW8gaW50ZWdyaXR5IHBheWxvYWQKKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCB7CisJc3RydWN0IGJpbwkJKmJpcF9iaW87CS8qIHBhcmVudCBiaW8gKi8KKwlzdHJ1Y3QgYmlvX3ZlYwkJKmJpcF92ZWM7CS8qIGludGVncml0eSBkYXRhIHZlY3RvciAqLworCisJc2VjdG9yX3QJCWJpcF9zZWN0b3I7CS8qIHZpcnR1YWwgc3RhcnQgc2VjdG9yICovCisKKwl2b2lkCQkJKmJpcF9idWY7CS8qIGdlbmVyYXRlZCBpbnRlZ3JpdHkgZGF0YSAqLworCWJpb19lbmRfaW9fdAkJKmJpcF9lbmRfaW87CS8qIHNhdmVkIEkvTyBjb21wbGV0aW9uIGZuICovCisKKwlpbnQJCQliaXBfZXJyb3I7CS8qIHNhdmVkIEkvTyBlcnJvciAqLworCXVuc2lnbmVkIGludAkJYmlwX3NpemU7CisKKwl1bnNpZ25lZCBzaG9ydAkJYmlwX3Bvb2w7CS8qIHBvb2wgdGhlIGl2ZWMgY2FtZSBmcm9tICovCisJdW5zaWduZWQgc2hvcnQJCWJpcF92Y250OwkvKiAjIG9mIGludGVncml0eSBiaW9fdmVjcyAqLworCXVuc2lnbmVkIHNob3J0CQliaXBfaWR4OwkvKiBjdXJyZW50IGJpcF92ZWMgaW5kZXggKi8KKworCXN0cnVjdCB3b3JrX3N0cnVjdAliaXBfd29yazsJLyogSS9PIGNvbXBsZXRpb24gKi8KK307CisjZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5URUdSSVRZICovCiAKIC8qCiAgKiBBIGJpb19wYWlyIGlzIHVzZWQgd2hlbiB3ZSBuZWVkIHRvIHNwbGl0IGEgYmlvLgpAQCAtMjgzLDEwICszMTAsMTQgQEAKICAqICAgaW4gYmlvMi5iaV9wcml2YXRlCiAgKi8KIHN0cnVjdCBiaW9fcGFpciB7Ci0Jc3RydWN0IGJpbwliaW8xLCBiaW8yOwotCXN0cnVjdCBiaW9fdmVjCWJ2MSwgYnYyOwotCWF0b21pY190CWNudDsKLQlpbnQJCWVycm9yOworCXN0cnVjdCBiaW8JCQliaW8xLCBiaW8yOworCXN0cnVjdCBiaW9fdmVjCQkJYnYxLCBidjI7CisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZAliaXAxLCBiaXAyOworCXN0cnVjdCBiaW9fdmVjCQkJaXYxLCBpdjI7CisjZW5kaWYKKwlhdG9taWNfdAkJCWNudDsKKwlpbnQJCQkJZXJyb3I7CiB9OwogZXh0ZXJuIHN0cnVjdCBiaW9fcGFpciAqYmlvX3NwbGl0KHN0cnVjdCBiaW8gKmJpLCBtZW1wb29sX3QgKnBvb2wsCiAJCQkJICBpbnQgZmlyc3Rfc2VjdG9ycyk7CkBAIC0zMzMsNiArMzY0LDM5IEBACiAJCQkJICAgICBpbnQsIGludCk7CiBleHRlcm4gaW50IGJpb191bmNvcHlfdXNlcihzdHJ1Y3QgYmlvICopOwogdm9pZCB6ZXJvX2ZpbGxfYmlvKHN0cnVjdCBiaW8gKmJpbyk7CitleHRlcm4gc3RydWN0IGJpb192ZWMgKmJ2ZWNfYWxsb2NfYnMoZ2ZwX3QsIGludCwgdW5zaWduZWQgbG9uZyAqLCBzdHJ1Y3QgYmlvX3NldCAqKTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgYnZlY19ucl92ZWNzKHVuc2lnbmVkIHNob3J0IGlkeCk7CisKKy8qCisgKiBiaW9fc2V0IGlzIHVzZWQgdG8gYWxsb3cgb3RoZXIgcG9ydGlvbnMgb2YgdGhlIElPIHN5c3RlbSB0bworICogYWxsb2NhdGUgdGhlaXIgb3duIHByaXZhdGUgbWVtb3J5IHBvb2xzIGZvciBiaW8gYW5kIGlvdmVjIHN0cnVjdHVyZXMuCisgKiBUaGVzZSBtZW1vcnkgcG9vbHMgaW4gdHVybiBhbGwgYWxsb2NhdGUgZnJvbSB0aGUgYmlvX3NsYWIKKyAqIGFuZCB0aGUgYnZlY19zbGFic1tdLgorICovCisjZGVmaW5lIEJJT19QT09MX1NJWkUgMgorI2RlZmluZSBCSU9WRUNfTlJfUE9PTFMgNgorCitzdHJ1Y3QgYmlvX3NldCB7CisJbWVtcG9vbF90ICpiaW9fcG9vbDsKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKwltZW1wb29sX3QgKmJpb19pbnRlZ3JpdHlfcG9vbDsKKyNlbmRpZgorCW1lbXBvb2xfdCAqYnZlY19wb29sc1tCSU9WRUNfTlJfUE9PTFNdOworfTsKKworc3RydWN0IGJpb3ZlY19zbGFiIHsKKwlpbnQgbnJfdmVjczsKKwljaGFyICpuYW1lOworCXN0cnVjdCBrbWVtX2NhY2hlICpzbGFiOworfTsKKworZXh0ZXJuIHN0cnVjdCBiaW9fc2V0ICpmc19iaW9fc2V0OworCisvKgorICogYSBzbWFsbCBudW1iZXIgb2YgZW50cmllcyBpcyBmaW5lLCBub3QgZ29pbmcgdG8gYmUgcGVyZm9ybWFuY2UgY3JpdGljYWwuCisgKiBiYXNpY2FsbHkgd2UganVzdCBuZWVkIHRvIHN1cnZpdmUKKyAqLworI2RlZmluZSBCSU9fU1BMSVRfRU5UUklFUyAyCiAKICNpZmRlZiBDT05GSUdfSElHSE1FTQogLyoKQEAgLTM4MSw1ICs0NDUsNjMgQEAKIAlfX2Jpb19rbWFwX2lycSgoYmlvKSwgKGJpbyktPmJpX2lkeCwgKGZsYWdzKSkKICNkZWZpbmUgYmlvX2t1bm1hcF9pcnEoYnVmLGZsYWdzKQlfX2Jpb19rdW5tYXBfaXJxKGJ1ZiwgZmxhZ3MpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKworI2RlZmluZSBiaXBfdmVjX2lkeChiaXAsIGlkeCkJKCYoYmlwLT5iaXBfdmVjWyhpZHgpXSkpCisjZGVmaW5lIGJpcF92ZWMoYmlwKQkJYmlwX3ZlY19pZHgoYmlwLCAwKQorCisjZGVmaW5lIF9fYmlwX2Zvcl9lYWNoX3ZlYyhidmwsIGJpcCwgaSwgc3RhcnRfaWR4KQkJCVwKKwlmb3IgKGJ2bCA9IGJpcF92ZWNfaWR4KChiaXApLCAoc3RhcnRfaWR4KSksIGkgPSAoc3RhcnRfaWR4KTsJXAorCSAgICAgaSA8IChiaXApLT5iaXBfdmNudDsJCQkJCVwKKwkgICAgIGJ2bCsrLCBpKyspCisKKyNkZWZpbmUgYmlwX2Zvcl9lYWNoX3ZlYyhidmwsIGJpcCwgaSkJCQkJCVwKKwlfX2JpcF9mb3JfZWFjaF92ZWMoYnZsLCBiaXAsIGksIChiaXApLT5iaXBfaWR4KQorCitzdGF0aWMgaW5saW5lIGludCBiaW9faW50ZWdyaXR5KHN0cnVjdCBiaW8gKmJpbykKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKwlyZXR1cm4gYmlvLT5iaV9pbnRlZ3JpdHkgIT0gTlVMTDsKKyNlbHNlCisJcmV0dXJuIDA7CisjZW5kaWYKK30KKworZXh0ZXJuIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KHN0cnVjdCBiaW8gKiwgZ2ZwX3QsIHVuc2lnbmVkIGludCwgc3RydWN0IGJpb19zZXQgKik7CitleHRlcm4gc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvYyhzdHJ1Y3QgYmlvICosIGdmcF90LCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9mcmVlKHN0cnVjdCBiaW8gKiwgc3RydWN0IGJpb19zZXQgKik7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2Uoc3RydWN0IGJpbyAqLCBzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmlvICpiaW8pOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X3NldF90YWcoc3RydWN0IGJpbyAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhzdHJ1Y3QgYmlvICosIHZvaWQgKiwgdW5zaWduZWQgaW50KTsKK2V4dGVybiBpbnQgYmlvX2ludGVncml0eV9wcmVwKHN0cnVjdCBiaW8gKik7CitleHRlcm4gdm9pZCBiaW9faW50ZWdyaXR5X2VuZGlvKHN0cnVjdCBiaW8gKiwgaW50KTsKK2V4dGVybiB2b2lkIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShzdHJ1Y3QgYmlvICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gdm9pZCBiaW9faW50ZWdyaXR5X3RyaW0oc3RydWN0IGJpbyAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CitleHRlcm4gdm9pZCBiaW9faW50ZWdyaXR5X3NwbGl0KHN0cnVjdCBiaW8gKiwgc3RydWN0IGJpb19wYWlyICosIGludCk7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfY2xvbmUoc3RydWN0IGJpbyAqLCBzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIGludCBiaW9zZXRfaW50ZWdyaXR5X2NyZWF0ZShzdHJ1Y3QgYmlvX3NldCAqLCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvc2V0X2ludGVncml0eV9mcmVlKHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9pbml0X3NsYWIodm9pZCk7CisKKyNlbHNlIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLworCisjZGVmaW5lIGJpb19pbnRlZ3JpdHkoYSkJCSgwKQorI2RlZmluZSBiaW9zZXRfaW50ZWdyaXR5X2NyZWF0ZShhLCBiKQkoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9wcmVwKGEpCQkoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9lbmFibGVkKGEpCSgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2Nsb25lKGEsIGIsIGMpCSgwKQorI2RlZmluZSBiaW9zZXRfaW50ZWdyaXR5X2ZyZWUoYSkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2ZyZWUoYSwgYikJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2VuZGlvKGEsIGIpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9hZHZhbmNlKGEsIGIpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV90cmltKGEsIGIsIGMpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9zcGxpdChhLCBiLCBjKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfc2V0X3RhZyhhLCBiLCBjKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhhLCBiLCBjKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKGEpCWRvIHsgfSB3aGlsZSAoMCkKKworI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLworCiAjZW5kaWYgLyogQ09ORklHX0JMT0NLICovCiAjZW5kaWYgLyogX19MSU5VWF9CSU9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKaW5kZXggZDJhMWI3MS4uMWZmZDhiZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCkBAIC0yMyw3ICsyMyw2IEBACiBzdHJ1Y3Qgc2NzaV9pb2N0bF9jb21tYW5kOwogCiBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZTsKLXR5cGVkZWYgc3RydWN0IHJlcXVlc3RfcXVldWUgcmVxdWVzdF9xdWV1ZV90IF9fZGVwcmVjYXRlZDsKIHN0cnVjdCBlbGV2YXRvcl9xdWV1ZTsKIHR5cGVkZWYgc3RydWN0IGVsZXZhdG9yX3F1ZXVlIGVsZXZhdG9yX3Q7CiBzdHJ1Y3QgcmVxdWVzdF9wbV9zdGF0ZTsKQEAgLTM0LDEyICszMyw2IEBACiAjZGVmaW5lIEJMS0RFVl9NSU5fUlEJNAogI2RlZmluZSBCTEtERVZfTUFYX1JRCTEyOAkvKiBEZWZhdWx0IG1heGltdW0gKi8KIAotaW50IHB1dF9pb19jb250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICppb2MpOwotdm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCk7Ci1zdHJ1Y3QgaW9fY29udGV4dCAqZ2V0X2lvX2NvbnRleHQoZ2ZwX3QgZ2ZwX2ZsYWdzLCBpbnQgbm9kZSk7Ci1zdHJ1Y3QgaW9fY29udGV4dCAqYWxsb2NfaW9fY29udGV4dChnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKLXZvaWQgY29weV9pb19jb250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICoqcGRzdCwgc3RydWN0IGlvX2NvbnRleHQgKipwc3JjKTsKLQogc3RydWN0IHJlcXVlc3Q7CiB0eXBlZGVmIHZvaWQgKHJxX2VuZF9pb19mbikoc3RydWN0IHJlcXVlc3QgKiwgaW50KTsKIApAQCAtMTEzLDYgKzEwNiw3IEBACiAJX19SRVFfQUxMT0NFRCwJCS8qIHJlcXVlc3QgY2FtZSBmcm9tIG91ciBhbGxvYyBwb29sICovCiAJX19SRVFfUldfTUVUQSwJCS8qIG1ldGFkYXRhIGlvIHJlcXVlc3QgKi8KIAlfX1JFUV9DT1BZX1VTRVIsCS8qIGNvbnRhaW5zIGNvcGllcyBvZiB1c2VyIHBhZ2VzICovCisJX19SRVFfSU5URUdSSVRZLAkvKiBpbnRlZ3JpdHkgbWV0YWRhdGEgaGFzIGJlZW4gcmVtYXBwZWQgKi8KIAlfX1JFUV9OUl9CSVRTLAkJLyogc3RvcHMgaGVyZSAqLwogfTsKIApAQCAtMTM1LDYgKzEyOSw3IEBACiAjZGVmaW5lIFJFUV9BTExPQ0VECSgxIDw8IF9fUkVRX0FMTE9DRUQpCiAjZGVmaW5lIFJFUV9SV19NRVRBCSgxIDw8IF9fUkVRX1JXX01FVEEpCiAjZGVmaW5lIFJFUV9DT1BZX1VTRVIJKDEgPDwgX19SRVFfQ09QWV9VU0VSKQorI2RlZmluZSBSRVFfSU5URUdSSVRZCSgxIDw8IF9fUkVRX0lOVEVHUklUWSkKIAogI2RlZmluZSBCTEtfTUFYX0NEQgkxNgogCkBAIC0yNTksNyArMjU0LDE0IEBACiB0eXBlZGVmIHZvaWQgKHVucGx1Z19mbikgKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICopOwogCiBzdHJ1Y3QgYmlvX3ZlYzsKLXR5cGVkZWYgaW50IChtZXJnZV9idmVjX2ZuKSAoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IGJpbyAqLCBzdHJ1Y3QgYmlvX3ZlYyAqKTsKK3N0cnVjdCBidmVjX21lcmdlX2RhdGEgeworCXN0cnVjdCBibG9ja19kZXZpY2UgKmJpX2JkZXY7CisJc2VjdG9yX3QgYmlfc2VjdG9yOworCXVuc2lnbmVkIGJpX3NpemU7CisJdW5zaWduZWQgbG9uZyBiaV9ydzsKK307Cit0eXBlZGVmIGludCAobWVyZ2VfYnZlY19mbikgKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKiwKKwkJCSAgICAgc3RydWN0IGJpb192ZWMgKik7CiB0eXBlZGVmIHZvaWQgKHByZXBhcmVfZmx1c2hfZm4pIChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsKIHR5cGVkZWYgdm9pZCAoc29mdGlycV9kb25lX2ZuKShzdHJ1Y3QgcmVxdWVzdCAqKTsKIHR5cGVkZWYgaW50IChkbWFfZHJhaW5fbmVlZGVkX2ZuKShzdHJ1Y3QgcmVxdWVzdCAqKTsKQEAgLTQyNiw2ICs0MjgsMzIgQEAKIAlfX3NldF9iaXQoZmxhZywgJnEtPnF1ZXVlX2ZsYWdzKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgcXVldWVfZmxhZ190ZXN0X2FuZF9jbGVhcih1bnNpZ25lZCBpbnQgZmxhZywKKwkJCQkJICAgIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQoreworCVdBUk5fT05fT05DRSghcXVldWVfaXNfbG9ja2VkKHEpKTsKKworCWlmICh0ZXN0X2JpdChmbGFnLCAmcS0+cXVldWVfZmxhZ3MpKSB7CisJCV9fY2xlYXJfYml0KGZsYWcsICZxLT5xdWV1ZV9mbGFncyk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBxdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldCh1bnNpZ25lZCBpbnQgZmxhZywKKwkJCQkJICBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKK3sKKwlXQVJOX09OX09OQ0UoIXF1ZXVlX2lzX2xvY2tlZChxKSk7CisKKwlpZiAoIXRlc3RfYml0KGZsYWcsICZxLT5xdWV1ZV9mbGFncykpIHsKKwkJX19zZXRfYml0KGZsYWcsICZxLT5xdWV1ZV9mbGFncyk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAxOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgcXVldWVfZmxhZ19zZXQodW5zaWduZWQgaW50IGZsYWcsIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQogewogCVdBUk5fT05fT05DRSghcXVldWVfaXNfbG9ja2VkKHEpKTsKQEAgLTY3Niw3ICs3MDQsNiBAQAogCQkJICBzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgYmxrX2V4ZWN1dGVfcnFfbm93YWl0KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHN0cnVjdCBnZW5kaXNrICosCiAJCQkJICBzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQsIHJxX2VuZF9pb19mbiAqKTsKLWV4dGVybiBpbnQgYmxrX3ZlcmlmeV9jb21tYW5kKHVuc2lnbmVkIGNoYXIgKiwgaW50KTsKIGV4dGVybiB2b2lkIGJsa191bnBsdWcoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpiZGV2X2dldF9xdWV1ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQpAQCAtNzQ5LDYgKzc3Niw3IEBACiBleHRlcm4gdm9pZCBibGtfcXVldWVfaGFyZHNlY3Rfc2l6ZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBzaG9ydCk7CiBleHRlcm4gdm9pZCBibGtfcXVldWVfc3RhY2tfbGltaXRzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICp0LCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqYik7CiBleHRlcm4gdm9pZCBibGtfcXVldWVfZG1hX3BhZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmxrX3F1ZXVlX3VwZGF0ZV9kbWFfcGFkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHVuc2lnbmVkIGludCk7CiBleHRlcm4gaW50IGJsa19xdWV1ZV9kbWFfZHJhaW4oc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCiAJCQkgICAgICAgZG1hX2RyYWluX25lZWRlZF9mbiAqZG1hX2RyYWluX25lZWRlZCwKIAkJCSAgICAgICB2b2lkICpidWYsIHVuc2lnbmVkIGludCBzaXplKTsKQEAgLTgwMiw2ICs4MzAsMTUgQEAKIAogZXh0ZXJuIGludCBibGtkZXZfaXNzdWVfZmx1c2goc3RydWN0IGJsb2NrX2RldmljZSAqLCBzZWN0b3JfdCAqKTsKIAorLyoKKyogY29tbWFuZCBmaWx0ZXIgZnVuY3Rpb25zCisqLworZXh0ZXJuIGludCBibGtfdmVyaWZ5X2NvbW1hbmQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGNoYXIgKmNtZCk7CitleHRlcm4gaW50IGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkJCSB1bnNpZ25lZCBjaGFyICpjbWQsIG1vZGVfdCAqZl9tb2RlKTsKK2V4dGVybiBpbnQgYmxrX3JlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CitleHRlcm4gdm9pZCBibGtfdW5yZWdpc3Rlcl9maWx0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2spOworCiAjZGVmaW5lIE1BWF9QSFlTX1NFR01FTlRTIDEyOAogI2RlZmluZSBNQVhfSFdfU0VHTUVOVFMgMTI4CiAjZGVmaW5lIFNBRkVfTUFYX1NFQ1RPUlMgMjU1CkBAIC04NjUsNiArOTAyLDEwNSBAQAogI2RlZmluZSBNT0RVTEVfQUxJQVNfQkxPQ0tERVZfTUFKT1IobWFqb3IpIFwKIAlNT0RVTEVfQUxJQVMoImJsb2NrLW1ham9yLSIgX19zdHJpbmdpZnkobWFqb3IpICItKiIpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKworI2RlZmluZSBJTlRFR1JJVFlfRkxBR19SRUFECTIJLyogdmVyaWZ5IGRhdGEgaW50ZWdyaXR5IG9uIHJlYWQgKi8KKyNkZWZpbmUgSU5URUdSSVRZX0ZMQUdfV1JJVEUJNAkvKiBnZW5lcmF0ZSBkYXRhIGludGVncml0eSBvbiB3cml0ZSAqLworCitzdHJ1Y3QgYmxrX2ludGVncml0eV9leGNoZyB7CisJdm9pZAkJCSpwcm90X2J1ZjsKKwl2b2lkCQkJKmRhdGFfYnVmOworCXNlY3Rvcl90CQlzZWN0b3I7CisJdW5zaWduZWQgaW50CQlkYXRhX3NpemU7CisJdW5zaWduZWQgc2hvcnQJCXNlY3Rvcl9zaXplOworCWNvbnN0IGNoYXIJCSpkaXNrX25hbWU7Cit9OworCit0eXBlZGVmIHZvaWQgKGludGVncml0eV9nZW5fZm4pIChzdHJ1Y3QgYmxrX2ludGVncml0eV9leGNoZyAqKTsKK3R5cGVkZWYgaW50IChpbnRlZ3JpdHlfdnJmeV9mbikgKHN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnICopOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfc2V0X3RhZ19mbikgKHZvaWQgKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfZ2V0X3RhZ19mbikgKHZvaWQgKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOworCitzdHJ1Y3QgYmxrX2ludGVncml0eSB7CisJaW50ZWdyaXR5X2dlbl9mbgkqZ2VuZXJhdGVfZm47CisJaW50ZWdyaXR5X3ZyZnlfZm4JKnZlcmlmeV9mbjsKKwlpbnRlZ3JpdHlfc2V0X3RhZ19mbgkqc2V0X3RhZ19mbjsKKwlpbnRlZ3JpdHlfZ2V0X3RhZ19mbgkqZ2V0X3RhZ19mbjsKKworCXVuc2lnbmVkIHNob3J0CQlmbGFnczsKKwl1bnNpZ25lZCBzaG9ydAkJdHVwbGVfc2l6ZTsKKwl1bnNpZ25lZCBzaG9ydAkJc2VjdG9yX3NpemU7CisJdW5zaWduZWQgc2hvcnQJCXRhZ19zaXplOworCisJY29uc3QgY2hhcgkJKm5hbWU7CisKKwlzdHJ1Y3Qga29iamVjdAkJa29iajsKK307CisKK2V4dGVybiBpbnQgYmxrX2ludGVncml0eV9yZWdpc3RlcihzdHJ1Y3QgZ2VuZGlzayAqLCBzdHJ1Y3QgYmxrX2ludGVncml0eSAqKTsKK2V4dGVybiB2b2lkIGJsa19pbnRlZ3JpdHlfdW5yZWdpc3RlcihzdHJ1Y3QgZ2VuZGlzayAqKTsKK2V4dGVybiBpbnQgYmxrX2ludGVncml0eV9jb21wYXJlKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgc3RydWN0IGJsb2NrX2RldmljZSAqKTsKK2V4dGVybiBpbnQgYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKiwgc3RydWN0IHNjYXR0ZXJsaXN0ICopOworZXh0ZXJuIGludCBibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnKHN0cnVjdCByZXF1ZXN0ICopOworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0IGJsa19pbnRlZ3JpdHlfdHVwbGVfc2l6ZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkpCit7CisJaWYgKGJpKQorCQlyZXR1cm4gYmktPnR1cGxlX3NpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmRldl9nZXRfaW50ZWdyaXR5KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCit7CisJcmV0dXJuIGJkZXYtPmJkX2Rpc2stPmludGVncml0eTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYmRldl9nZXRfdGFnX3NpemUoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmRldik7CisKKwlpZiAoYmkpCisJCXJldHVybiBiaS0+dGFnX3NpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBpbnQgcncpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJkZXYpOworCisJaWYgKGJpID09IE5VTEwpCisJCXJldHVybiAwOworCisJaWYgKHJ3ID09IFJFQUQgJiYgYmktPnZlcmlmeV9mbiAhPSBOVUxMICYmCisJICAgIChiaS0+ZmxhZ3MgJiBJTlRFR1JJVFlfRkxBR19SRUFEKSkKKwkJcmV0dXJuIDE7CisKKwlpZiAocncgPT0gV1JJVEUgJiYgYmktPmdlbmVyYXRlX2ZuICE9IE5VTEwgJiYKKwkgICAgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1dSSVRFKSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYmxrX2ludGVncml0eV9ycShzdHJ1Y3QgcmVxdWVzdCAqcnEpCit7CisJcmV0dXJuIGJpb19pbnRlZ3JpdHkocnEtPmJpbyk7Cit9CisKKyNlbHNlIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLworCisjZGVmaW5lIGJsa19pbnRlZ3JpdHlfcnEocnEpCQkJKDApCisjZGVmaW5lIGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coYSkJCSgwKQorI2RlZmluZSBibGtfcnFfbWFwX2ludGVncml0eV9zZyhhLCBiKQkJKDApCisjZGVmaW5lIGJkZXZfZ2V0X2ludGVncml0eShhKQkJCSgwKQorI2RlZmluZSBiZGV2X2dldF90YWdfc2l6ZShhKQkJCSgwKQorI2RlZmluZSBibGtfaW50ZWdyaXR5X2NvbXBhcmUoYSwgYikJCSgwKQorI2RlZmluZSBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKGEsIGIpCQkoMCkKKyNkZWZpbmUgYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKGEpCQlkbyB7IH0gd2hpbGUgKDApOworCisjZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5URUdSSVRZICovCiAKICNlbHNlIC8qIENPTkZJR19CTE9DSyAqLwogLyoKQEAgLTg3NywxNyArMTAxMyw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCkKLXsKLX0KLQotc3RydWN0IGlvX2NvbnRleHQ7Ci1zdGF0aWMgaW5saW5lIGludCBwdXRfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKQotewotCXJldHVybiAxOwotfQotCi0KICNlbmRpZiAvKiBDT05GSUdfQkxPQ0sgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jsa3RyYWNlX2FwaS5oIGIvaW5jbHVkZS9saW51eC9ibGt0cmFjZV9hcGkuaAppbmRleCBlM2VmOTAzLi5kMDg0YjhkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa3RyYWNlX2FwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYmxrdHJhY2VfYXBpLmgKQEAgLTEyOSw2ICsxMjksNyBAQAogCXUzMiBkZXY7CiAJc3RydWN0IGRlbnRyeSAqZGlyOwogCXN0cnVjdCBkZW50cnkgKmRyb3BwZWRfZmlsZTsKKwlzdHJ1Y3QgZGVudHJ5ICptc2dfZmlsZTsKIAlhdG9taWNfdCBkcm9wcGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ib290bWVtLmggYi9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaAppbmRleCA2YTVkYmRjLi5hMWQ5Yjc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaApAQCAtODQsNiArODQsOCBAQAogCV9fYWxsb2NfYm9vdG1lbV9sb3coeCwgUEFHRV9TSVpFLCAwKQogI2VuZGlmIC8qICFDT05GSUdfSEFWRV9BUkNIX0JPT1RNRU1fTk9ERSAqLwogCitleHRlcm4gaW50IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCSAgIGludCBmbGFncyk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBmcmVlX2FsbF9ib290bWVtKHZvaWQpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZnJlZV9hbGxfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQpOwogZXh0ZXJuIHZvaWQgKl9fYWxsb2NfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQsCkBAIC05NCw3ICs5Niw3IEBACiAJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZXBmbiwKIAkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydHBmbiwKIAkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmRwZm4pOwotZXh0ZXJuIHZvaWQgcmVzZXJ2ZV9ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCwKK2V4dGVybiBpbnQgcmVzZXJ2ZV9ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCwKIAkJCQkgdW5zaWduZWQgbG9uZyBwaHlzYWRkciwKIAkJCQkgdW5zaWduZWQgbG9uZyBzaXplLAogCQkJCSBpbnQgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmggYi9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaAppbmRleCBmYTgzMGY4Li4wMjY3Mzg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaApAQCAtNTAxLDYgKzUwMSw4IEBACiBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2Z1bGxfc2V0OwogZXh0ZXJuIGNvbnN0IGtlcm5lbF9jYXBfdCBfX2NhcF9pbml0X2VmZl9zZXQ7CiAKK2tlcm5lbF9jYXBfdCBjYXBfc2V0X2VmZmVjdGl2ZShjb25zdCBrZXJuZWxfY2FwX3QgcEVfbmV3KTsKKwogaW50IGNhcGFibGUoaW50IGNhcCk7CiBpbnQgX19jYXBhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IGNhcCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2ZhZzEyODY0Yi5oIGIvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKaW5kZXggMTYwNWRkOC4uNmY5ZjE5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKQEAgLTQsNyArNCw3IEBACiAgKiBEZXNjcmlwdGlvbjogY2ZhZzEyODY0YiBMQ0QgZHJpdmVyIGhlYWRlcgogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKgotICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KKyAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcwogICogICAgICAgIERhdGU6IDIwMDYtMTAtMTIKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29uc29sZS5oIGIvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKaW5kZXggYTRmMjdmYi4uMjQ4ZTZlMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKKysrIGIvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKQEAgLTEwOCw2ICsxMDgsOCBAQAogCXN0cnVjdAkgY29uc29sZSAqbmV4dDsKIH07CiAKK2V4dGVybiBpbnQgY29uc29sZV9zZXRfb25fY21kbGluZTsKKwogZXh0ZXJuIGludCBhZGRfcHJlZmVycmVkX2NvbnNvbGUoY2hhciAqbmFtZSwgaW50IGlkeCwgY2hhciAqb3B0aW9ucyk7CiBleHRlcm4gaW50IHVwZGF0ZV9jb25zb2xlX2NtZGxpbmUoY2hhciAqbmFtZSwgaW50IGlkeCwgY2hhciAqbmFtZV9uZXcsIGludCBpZHhfbmV3LCBjaGFyICpvcHRpb25zKTsKIGV4dGVybiB2b2lkIHJlZ2lzdGVyX2NvbnNvbGUoc3RydWN0IGNvbnNvbGUgKik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NwdWlkbGUuaCBiL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCmluZGV4IDUxZTZiMWUuLmRjZjc3ZmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCkBAIC04Miw2ICs4Miw3IEBACiB9OwogCiBzdHJ1Y3QgY3B1aWRsZV9kZXZpY2UgeworCXVuc2lnbmVkIGludAkJcmVnaXN0ZXJlZDoxOwogCXVuc2lnbmVkIGludAkJZW5hYmxlZDoxOwogCXVuc2lnbmVkIGludAkJY3B1OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCBiL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCmluZGV4IDVkZjNkYjUuLmMyNDg3NWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCisrKyBiL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCkBAIC0zNTMsNiArMzUzLDEwIEBACiAJZm9yICgoY3B1KSA9IDA7IChjcHUpIDwgMTsgKGNwdSkrKywgKHZvaWQpbWFzaykKICNlbmRpZiAvKiBOUl9DUFVTICovCiAKKyNkZWZpbmUgbmV4dF9jcHVfbnIobiwgc3JjKQkJbmV4dF9jcHUobiwgc3JjKQorI2RlZmluZSBjcHVzX3dlaWdodF9ucihjcHVtYXNrKQkJY3B1c193ZWlnaHQoY3B1bWFzaykKKyNkZWZpbmUgZm9yX2VhY2hfY3B1X21hc2tfbnIoY3B1LCBtYXNrKQlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIG1hc2spCisKIC8qCiAgKiBUaGUgZm9sbG93aW5nIHBhcnRpY3VsYXIgc3lzdGVtIGNwdW1hc2tzIGFuZCBvcGVyYXRpb25zIG1hbmFnZQogICogcG9zc2libGUsIHByZXNlbnQgYW5kIG9ubGluZSBjcHVzLiAgRWFjaCBvZiB0aGVtIGlzIGEgZml4ZWQgc2l6ZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcnlwdG8uaCBiL2luY2x1ZGUvbGludXgvY3J5cHRvLmgKaW5kZXggNDI1ODI0Yi4uYzQzZGM0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcnlwdG8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCkBAIC0zMCwxNSArMzAsMTcgQEAKICAqLwogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfTUFTSwkJMHgwMDAwMDAwZgogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQ0lQSEVSCQkweDAwMDAwMDAxCi0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9ESUdFU1QJCTB4MDAwMDAwMDIKLSNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0gJCTB4MDAwMDAwMDMKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0NPTVBSRVNTCTB4MDAwMDAwMDIKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FFQUQJCTB4MDAwMDAwMDMKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0JMS0NJUEhFUgkweDAwMDAwMDA0CiAjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BQkxLQ0lQSEVSCTB4MDAwMDAwMDUKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0dJVkNJUEhFUgkweDAwMDAwMDA2Ci0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9DT01QUkVTUwkweDAwMDAwMDA4Ci0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BRUFECQkweDAwMDAwMDA5CisjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9ESUdFU1QJCTB4MDAwMDAwMDgKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0gJCTB4MDAwMDAwMDkKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FIQVNICQkweDAwMDAwMDBhCiAKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSwkweDAwMDAwMDBlCisjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BSEFTSF9NQVNLCTB4MDAwMDAwMGMKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0JMS0NJUEhFUl9NQVNLCTB4MDAwMDAwMGMKIAogI2RlZmluZSBDUllQVE9fQUxHX0xBUlZBTAkJMHgwMDAwMDAxMApAQCAtMTAyLDYgKzEwNCw3IEBACiBzdHJ1Y3QgY3J5cHRvX2FlYWQ7CiBzdHJ1Y3QgY3J5cHRvX2Jsa2NpcGhlcjsKIHN0cnVjdCBjcnlwdG9faGFzaDsKK3N0cnVjdCBjcnlwdG9fYWhhc2g7CiBzdHJ1Y3QgY3J5cHRvX3RmbTsKIHN0cnVjdCBjcnlwdG9fdHlwZTsKIHN0cnVjdCBhZWFkX2dpdmNyeXB0X3JlcXVlc3Q7CkBAIC0xMzEsNiArMTM0LDE2IEBACiAJdm9pZCAqX19jdHhbXSBDUllQVE9fTUlOQUxJR05fQVRUUjsKIH07CiAKK3N0cnVjdCBhaGFzaF9yZXF1ZXN0IHsKKwlzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgYmFzZTsKKworCXVuc2lnbmVkIGludCBuYnl0ZXM7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzcmM7CisJdTgJCSAgICpyZXN1bHQ7CisKKwl2b2lkICpfX2N0eFtdIENSWVBUT19NSU5BTElHTl9BVFRSOworfTsKKwogLyoqCiAgKglzdHJ1Y3QgYWVhZF9yZXF1ZXN0IC0gQUVBRCByZXF1ZXN0CiAgKglAYmFzZTogQ29tbW9uIGF0dHJpYnV0ZXMgZm9yIGFzeW5jIGNyeXB0byByZXF1ZXN0cwpAQCAtMTk1LDYgKzIwOCwxNyBAQAogCXVuc2lnbmVkIGludCBpdnNpemU7CiB9OwogCitzdHJ1Y3QgYWhhc2hfYWxnIHsKKwlpbnQgKCppbml0KShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCp1cGRhdGUpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKmZpbmFsKShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCpkaWdlc3QpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKnNldGtleSkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleWxlbik7CisKKwl1bnNpZ25lZCBpbnQgZGlnZXN0c2l6ZTsKK307CisKIHN0cnVjdCBhZWFkX2FsZyB7CiAJaW50ICgqc2V0a2V5KShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgY29uc3QgdTggKmtleSwKIAkgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXlsZW4pOwpAQCAtMjcyLDYgKzI5Niw3IEBACiAjZGVmaW5lIGNyYV9jaXBoZXIJY3JhX3UuY2lwaGVyCiAjZGVmaW5lIGNyYV9kaWdlc3QJY3JhX3UuZGlnZXN0CiAjZGVmaW5lIGNyYV9oYXNoCWNyYV91Lmhhc2gKKyNkZWZpbmUgY3JhX2FoYXNoCWNyYV91LmFoYXNoCiAjZGVmaW5lIGNyYV9jb21wcmVzcwljcmFfdS5jb21wcmVzcwogCiBzdHJ1Y3QgY3J5cHRvX2FsZyB7CkBAIC0yOTgsNiArMzIzLDcgQEAKIAkJc3RydWN0IGNpcGhlcl9hbGcgY2lwaGVyOwogCQlzdHJ1Y3QgZGlnZXN0X2FsZyBkaWdlc3Q7CiAJCXN0cnVjdCBoYXNoX2FsZyBoYXNoOworCQlzdHJ1Y3QgYWhhc2hfYWxnIGFoYXNoOwogCQlzdHJ1Y3QgY29tcHJlc3NfYWxnIGNvbXByZXNzOwogCX0gY3JhX3U7CiAKQEAgLTM4Myw2ICs0MDksMTggQEAKIAl1bnNpZ25lZCBpbnQgZGlnZXN0c2l6ZTsKIH07CiAKK3N0cnVjdCBhaGFzaF90Zm0geworCWludCAoKmluaXQpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKnVwZGF0ZSkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqZmluYWwpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKmRpZ2VzdCkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqc2V0a2V5KShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKTsKKworCXVuc2lnbmVkIGludCBkaWdlc3RzaXplOworCXVuc2lnbmVkIGludCByZXFzaXplOworfTsKKwogc3RydWN0IGNvbXByZXNzX3RmbSB7CiAJaW50ICgqY290X2NvbXByZXNzKShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLAogCSAgICAgICAgICAgICAgICAgICAgY29uc3QgdTggKnNyYywgdW5zaWduZWQgaW50IHNsZW4sCkBAIC0zOTcsNiArNDM1LDcgQEAKICNkZWZpbmUgY3J0X2Jsa2NpcGhlcgljcnRfdS5ibGtjaXBoZXIKICNkZWZpbmUgY3J0X2NpcGhlcgljcnRfdS5jaXBoZXIKICNkZWZpbmUgY3J0X2hhc2gJY3J0X3UuaGFzaAorI2RlZmluZSBjcnRfYWhhc2gJY3J0X3UuYWhhc2gKICNkZWZpbmUgY3J0X2NvbXByZXNzCWNydF91LmNvbXByZXNzCiAKIHN0cnVjdCBjcnlwdG9fdGZtIHsKQEAgLTQwOSw2ICs0NDgsNyBAQAogCQlzdHJ1Y3QgYmxrY2lwaGVyX3RmbSBibGtjaXBoZXI7CiAJCXN0cnVjdCBjaXBoZXJfdGZtIGNpcGhlcjsKIAkJc3RydWN0IGhhc2hfdGZtIGhhc2g7CisJCXN0cnVjdCBhaGFzaF90Zm0gYWhhc2g7CiAJCXN0cnVjdCBjb21wcmVzc190Zm0gY29tcHJlc3M7CiAJfSBjcnRfdTsKIAkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGNhY2hlLmggYi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oCmluZGV4IDJhNjYzOTQuLmQ5ODJlYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZGNhY2hlLmgKKysrIGIvaW5jbHVkZS9saW51eC9kY2FjaGUuaApAQCAtMzAwLDcgKzMwMCw3IEBACiBleHRlcm4gY2hhciAqZHluYW1pY19kbmFtZShzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50LCBjb25zdCBjaGFyICosIC4uLik7CiAKIGV4dGVybiBjaGFyICpfX2RfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0IHBhdGggKnJvb3QsIGNoYXIgKiwgaW50KTsKLWV4dGVybiBjaGFyICpkX3BhdGgoc3RydWN0IHBhdGggKiwgY2hhciAqLCBpbnQpOworZXh0ZXJuIGNoYXIgKmRfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICosIGludCk7CiBleHRlcm4gY2hhciAqZGVudHJ5X3BhdGgoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CiAKIC8qIEFsbG9jYXRpb24gY291bnRzLi4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaCBiL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaAppbmRleCBmNGE1ODcxLi40YWFhNGFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgKKysrIGIvaW5jbHVkZS9saW51eC9kZWJ1Z19sb2Nrcy5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBfX0xJTlVYX0RFQlVHX0xPQ0tJTkdfSAogI2RlZmluZSBfX0xJTlVYX0RFQlVHX0xPQ0tJTkdfSAogCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisKIHN0cnVjdCB0YXNrX3N0cnVjdDsKIAogZXh0ZXJuIGludCBkZWJ1Z19sb2NrczsKQEAgLTExLDE0ICsxMyw2IEBACiAgKi8KIGV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2ZmKHZvaWQpOwogCi0vKgotICogSW4gdGhlIGRlYnVnIGNhc2Ugd2UgY2FycnkgdGhlIGNhbGxlcidzIGluc3RydWN0aW9uIHBvaW50ZXIgaW50bwotICogb3RoZXIgZnVuY3Rpb25zLCBidXQgd2UgZG9udCB3YW50IHRoZSBmdW5jdGlvbiBhcmd1bWVudCBvdmVyaGVhZAotICogaW4gdGhlIG5vbmRlYnVnIGNhc2UgLSBoZW5jZSB0aGVzZSBtYWNyb3M6Ci0gKi8KLSNkZWZpbmUgX1JFVF9JUF8JCSh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKQotI2RlZmluZSBfVEhJU19JUF8gICh7IF9fbGFiZWxfXyBfX2hlcmU7IF9faGVyZTogKHVuc2lnbmVkIGxvbmcpJiZfX2hlcmU7IH0pCi0KICNkZWZpbmUgREVCVUdfTE9DS1NfV0FSTl9PTihjKQkJCQkJCVwKICh7CQkJCQkJCQkJXAogCWludCBfX3JldCA9IDA7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGVsYXkuaCBiL2luY2x1ZGUvbGludXgvZGVsYXkuaAppbmRleCA1NDU1MmQyLi5mZDgzMmM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RlbGF5LmgKKysrIGIvaW5jbHVkZS9saW51eC9kZWxheS5oCkBAIC00MSw2ICs0MSw3IEBACiAjZGVmaW5lIG5kZWxheSh4KSBuZGVsYXkoeCkKICNlbmRpZgogCitleHRlcm4gdW5zaWduZWQgbG9uZyBscGpfZmluZTsKIHZvaWQgY2FsaWJyYXRlX2RlbGF5KHZvaWQpOwogdm9pZCBtc2xlZXAodW5zaWduZWQgaW50IG1zZWNzKTsKIHVuc2lnbmVkIGxvbmcgbXNsZWVwX2ludGVycnVwdGlibGUodW5zaWduZWQgaW50IG1zZWNzKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZWZpLmggYi9pbmNsdWRlL2xpbnV4L2VmaS5oCmluZGV4IGE1ZjM1OWEuLjgwNzM3M2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZWZpLmgKKysrIGIvaW5jbHVkZS9saW51eC9lZmkuaApAQCAtMjg3LDcgKzI4Nyw2IEBACiBleHRlcm4gdm9pZCBlZmlfaW5pdCAodm9pZCk7CiBleHRlcm4gdm9pZCAqZWZpX2dldF9wYWxfYWRkciAodm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfbWFwX3BhbF9jb2RlICh2b2lkKTsKLWV4dGVybiB2b2lkIGVmaV9tYXBfbWVtbWFwKHZvaWQpOwogZXh0ZXJuIHZvaWQgZWZpX21lbW1hcF93YWxrIChlZmlfZnJlZW1lbV9jYWxsYmFja190IGNhbGxiYWNrLCB2b2lkICphcmcpOwogZXh0ZXJuIHZvaWQgZWZpX2dldHRpbWVvZmRheSAoc3RydWN0IHRpbWVzcGVjICp0cyk7CiBleHRlcm4gdm9pZCBlZmlfZW50ZXJfdmlydHVhbF9tb2RlICh2b2lkKTsJLyogc3dpdGNoIEVGSSB0byB2aXJ0dWFsIG1vZGUsIGlmIHBvc3NpYmxlICovCkBAIC0yOTUsMTQgKzI5NCwxMSBAQAogZXh0ZXJuIHUzMiBlZmlfbWVtX3R5cGUgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyKTsKIGV4dGVybiB1NjQgZWZpX21lbV9hdHRyaWJ1dGVzICh1bnNpZ25lZCBsb25nIHBoeXNfYWRkcik7CiBleHRlcm4gdTY0IGVmaV9tZW1fYXR0cmlidXRlICh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsKLWV4dGVybiBpbnQgZWZpX21lbV9hdHRyaWJ1dGVfcmFuZ2UgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkJICAgIHU2NCBhdHRyKTsKIGV4dGVybiBpbnQgX19pbml0IGVmaV91YXJ0X2NvbnNvbGVfb25seSAodm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfaW5pdGlhbGl6ZV9pb21lbV9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpjb2RlX3Jlc291cmNlLAogCQlzdHJ1Y3QgcmVzb3VyY2UgKmRhdGFfcmVzb3VyY2UsIHN0cnVjdCByZXNvdXJjZSAqYnNzX3Jlc291cmNlKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGVmaV9nZXRfdGltZSh2b2lkKTsKIGV4dGVybiBpbnQgZWZpX3NldF9ydGNfbW1zcyh1bnNpZ25lZCBsb25nIG5vd3RpbWUpOwotZXh0ZXJuIGludCBpc19hdmFpbGFibGVfbWVtb3J5KGVmaV9tZW1vcnlfZGVzY190ICogbWQpOwogZXh0ZXJuIHN0cnVjdCBlZmlfbWVtb3J5X21hcCBtZW1tYXA7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaCBiL2luY2x1ZGUvbGludXgvZmlybXdhcmUtbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiZGJjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvZmlybXdhcmUtbWFwLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIGluY2x1ZGUvbGludXgvZmlybXdhcmUtbWFwLmg6CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNVU0UgTElOVVggUHJvZHVjdHMgR21iSAorICogIGJ5IEJlcm5oYXJkIFdhbGxlIDxid2FsbGVAc3VzZS5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2Mi4wIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICovCisjaWZuZGVmIF9MSU5VWF9GSVJNV0FSRV9NQVBfSAorI2RlZmluZSBfTElOVVhfRklSTVdBUkVfTUFQX0gKKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9rb2JqZWN0Lmg+CisKKy8qCisgKiBwcm92aWRlIGEgZHVtbXkgaW50ZXJmYWNlIGlmIENPTkZJR19GSVJNV0FSRV9NRU1NQVAgaXMgZGlzYWJsZWQKKyAqLworI2lmZGVmIENPTkZJR19GSVJNV0FSRV9NRU1NQVAKKworLyoqCisgKiBBZGRzIGEgZmlybXdhcmUgbWFwcGluZyBlbnRyeS4gVGhpcyBmdW5jdGlvbiB1c2VzIGttYWxsb2MoKSBmb3IgbWVtb3J5CisgKiBhbGxvY2F0aW9uLiBVc2UgZmlybXdhcmVfbWFwX2FkZF9lYXJseSgpIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgYm9vdG1lbQorICogYWxsb2NhdG9yLgorICoKKyAqIFRoYXQgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGxhdGVfaW5pdGNhbGwuCisgKgorICogQHN0YXJ0OiBTdGFydCBvZiB0aGUgbWVtb3J5IHJhbmdlLgorICogQGVuZDogICBFbmQgb2YgdGhlIG1lbW9yeSByYW5nZSAoaW5jbHVzaXZlKS4KKyAqIEB0eXBlOiAgVHlwZSBvZiB0aGUgbWVtb3J5IHJhbmdlLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBvciAtRU5PTUVNIGlmIG5vIG1lbW9yeSBjb3VsZCBiZSBhbGxvY2F0ZWQuCisgKi8KK2ludCBmaXJtd2FyZV9tYXBfYWRkKHJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IGVuZCwKKwkJICAgICBjb25zdCBjaGFyICp0eXBlKTsKKworLyoqCisgKiBBZGRzIGEgZmlybXdhcmUgbWFwcGluZyBlbnRyeS4gVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBib290bWVtIGFsbG9jYXRvcgorICogZm9yIG1lbW9yeSBhbGxvY2F0aW9uLiBVc2UgZmlybXdhcmVfbWFwX2FkZCgpIGlmIHlvdSB3YW50IHRvIHVzZSBrbWFsbG9jKCkuCisgKgorICogVGhhdCBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbGF0ZV9pbml0Y2FsbC4KKyAqCisgKiBAc3RhcnQ6IFN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW5kOiAgIEVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsdXNpdmUpLgorICogQHR5cGU6ICBUeXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIC1FTk9NRU0gaWYgbm8gbWVtb3J5IGNvdWxkIGJlIGFsbG9jYXRlZC4KKyAqLworaW50IGZpcm13YXJlX21hcF9hZGRfZWFybHkocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkJICAgY29uc3QgY2hhciAqdHlwZSk7CisKKyNlbHNlIC8qIENPTkZJR19GSVJNV0FSRV9NRU1NQVAgKi8KKworc3RhdGljIGlubGluZSBpbnQgZmlybXdhcmVfbWFwX2FkZChyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCisJCQkJICAgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgZmlybXdhcmVfbWFwX2FkZF9lYXJseShyZXNvdXJjZV9zaXplX3Qgc3RhcnQsCisJCQkJCSByZXNvdXJjZV9zaXplX3QgZW5kLCBjb25zdCBjaGFyICp0eXBlKQoreworCXJldHVybiAwOworfQorCisjZW5kaWYgLyogQ09ORklHX0ZJUk1XQVJFX01FTU1BUCAqLworCisjZW5kaWYgLyogX0xJTlVYX0ZJUk1XQVJFX01BUF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLmggYi9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLmgKaW5kZXggNGQxMGM3My4uYzhlY2Y1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9maXJtd2FyZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZmlybXdhcmUuaApAQCAtMSwxOSArMSw0MCBAQAogI2lmbmRlZiBfTElOVVhfRklSTVdBUkVfSAogI2RlZmluZSBfTElOVVhfRklSTVdBUkVfSAorCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorCiAjZGVmaW5lIEZJUk1XQVJFX05BTUVfTUFYIDMwIAogI2RlZmluZSBGV19BQ1RJT05fTk9IT1RQTFVHIDAKICNkZWZpbmUgRldfQUNUSU9OX0hPVFBMVUcgMQogCiBzdHJ1Y3QgZmlybXdhcmUgewogCXNpemVfdCBzaXplOwotCXU4ICpkYXRhOworCWNvbnN0IHU4ICpkYXRhOwogfTsKIAogc3RydWN0IGRldmljZTsKIAotI2lmIGRlZmluZWQoQ09ORklHX0ZXX0xPQURFUikgfHwgZGVmaW5lZChDT05GSUdfRldfTE9BREVSX01PRFVMRSkKK3N0cnVjdCBidWlsdGluX2Z3IHsKKwljaGFyICpuYW1lOworCXZvaWQgKmRhdGE7CisJdW5zaWduZWQgbG9uZyBzaXplOworfTsKKworLyogV2UgaGF2ZSB0byBwbGF5IHRyaWNrcyBoZXJlIG11Y2ggbGlrZSBzdHJpbmdpZnkoKSB0byBnZXQgdGhlCisgICBfX0NPVU5URVJfXyBtYWNybyB0byBiZSBleHBhbmRlZCBhcyB3ZSB3YW50IGl0ICovCisjZGVmaW5lIF9fZndfY29uY2F0MSh4LCB5KSB4IyN5CisjZGVmaW5lIF9fZndfY29uY2F0KHgsIHkpIF9fZndfY29uY2F0MSh4LCB5KQorCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9GSVJNV0FSRShuYW1lLCBibG9iKQkJCQkgICAgIFwKKwlERUNMQVJFX0JVSUxUSU5fRklSTVdBUkVfU0laRShuYW1lLCAmKGJsb2IpLCBzaXplb2YoYmxvYikpCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0ZJUk1XQVJFX1NJWkUobmFtZSwgYmxvYiwgc2l6ZSkJCQkgICAgIFwKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGJ1aWx0aW5fZncgX19md19jb25jYXQoX19idWlsdGluX2Z3LF9fQ09VTlRFUl9fKSBcCisJX191c2VkIF9fc2VjdGlvbiguYnVpbHRpbl9mdykgPSB7IG5hbWUsIGJsb2IsIHNpemUgfQorCisjaWYgZGVmaW5lZChDT05GSUdfRldfTE9BREVSKSB8fCAoZGVmaW5lZChDT05GSUdfRldfTE9BREVSX01PRFVMRSkgJiYgZGVmaW5lZChNT0RVTEUpKQogaW50IHJlcXVlc3RfZmlybXdhcmUoY29uc3Qgc3RydWN0IGZpcm13YXJlICoqZncsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSAgICAgc3RydWN0IGRldmljZSAqZGV2aWNlKTsKIGludCByZXF1ZXN0X2Zpcm13YXJlX25vd2FpdCgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnMuaCBiL2luY2x1ZGUvbGludXgvZnMuaAppbmRleCBkNDkwNzc5Li41MmU1MTBhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9mcy5oCkBAIC04Myw2ICs4Myw3IEBACiAjZGVmaW5lIFJFQURfU1lOQwkoUkVBRCB8ICgxIDw8IEJJT19SV19TWU5DKSkKICNkZWZpbmUgUkVBRF9NRVRBCShSRUFEIHwgKDEgPDwgQklPX1JXX01FVEEpKQogI2RlZmluZSBXUklURV9TWU5DCShXUklURSB8ICgxIDw8IEJJT19SV19TWU5DKSkKKyNkZWZpbmUgU1dSSVRFX1NZTkMJKFNXUklURSB8ICgxIDw8IEJJT19SV19TWU5DKSkKICNkZWZpbmUgV1JJVEVfQkFSUklFUgkoKDEgPDwgQklPX1JXKSB8ICgxIDw8IEJJT19SV19CQVJSSUVSKSkKIAogI2RlZmluZSBTRUxfSU4JCTEKQEAgLTg5NCw4ICs4OTUsNiBAQAogdHlwZWRlZiBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmbF9vd25lcl90OwogCiBzdHJ1Y3QgZmlsZV9sb2NrX29wZXJhdGlvbnMgewotCXZvaWQgKCpmbF9pbnNlcnQpKHN0cnVjdCBmaWxlX2xvY2sgKik7CS8qIGxvY2sgaW5zZXJ0aW9uIGNhbGxiYWNrICovCi0Jdm9pZCAoKmZsX3JlbW92ZSkoc3RydWN0IGZpbGVfbG9jayAqKTsJLyogbG9jayByZW1vdmFsIGNhbGxiYWNrICovCiAJdm9pZCAoKmZsX2NvcHlfbG9jaykoc3RydWN0IGZpbGVfbG9jayAqLCBzdHJ1Y3QgZmlsZV9sb2NrICopOwogCXZvaWQgKCpmbF9yZWxlYXNlX3ByaXZhdGUpKHN0cnVjdCBmaWxlX2xvY2sgKik7CiB9OwpAQCAtMTc0MSw2ICsxNzQwLDggQEAKIAkJCQlwZ29mZl90IHN0YXJ0LCBwZ29mZl90IGVuZCk7CiBleHRlcm4gaW50IF9fZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJCWxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IHN5bmNfbW9kZSk7CitleHRlcm4gaW50IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCQlsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQpOwogCiBleHRlcm4gbG9uZyBkb19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKTsKIGV4dGVybiB2b2lkIHN5bmNfc3VwZXJzKHZvaWQpOwpAQCAtMTg3MSw3ICsxODcyLDggQEAKIGZpbGVfcmFfc3RhdGVfaW5pdChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKIGV4dGVybiBsb2ZmX3Qgbm9fbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKTsKIGV4dGVybiBsb2ZmX3QgZ2VuZXJpY19maWxlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbik7Ci1leHRlcm4gbG9mZl90IHJlbW90ZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pOworZXh0ZXJuIGxvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAorCQkJaW50IG9yaWdpbik7CiBleHRlcm4gaW50IGdlbmVyaWNfZmlsZV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwogZXh0ZXJuIGludCBub25zZWVrYWJsZV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oIGIvaW5jbHVkZS9saW51eC9mdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzY4ZDA0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9mdHJhY2UuaApAQCAtMCwwICsxLDE0NCBAQAorI2lmbmRlZiBfTElOVVhfRlRSQUNFX0gKKyNkZWZpbmUgX0xJTlVYX0ZUUkFDRV9ICisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisKKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworZXh0ZXJuIGludCBmdHJhY2VfZW5hYmxlZDsKK2V4dGVybiBpbnQKK2Z0cmFjZV9lbmFibGVfc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCSAgICAgc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVucCwKKwkJICAgICBsb2ZmX3QgKnBwb3MpOworCit0eXBlZGVmIHZvaWQgKCpmdHJhY2VfZnVuY190KSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHBhcmVudF9pcCk7CisKK3N0cnVjdCBmdHJhY2Vfb3BzIHsKKwlmdHJhY2VfZnVuY190CSAgZnVuYzsKKwlzdHJ1Y3QgZnRyYWNlX29wcyAqbmV4dDsKK307CisKKy8qCisgKiBUaGUgZnRyYWNlX29wcyBtdXN0IGJlIGEgc3RhdGljIGFuZCBzaG91bGQgYWxzbworICogYmUgcmVhZF9tb3N0bHkuICBUaGVzZSBmdW5jdGlvbnMgZG8gbW9kaWZ5IHJlYWRfbW9zdGx5IHZhcmlhYmxlcworICogc28gdXNlIHRoZW0gc3BhcmVseS4gTmV2ZXIgZnJlZSBhbiBmdHJhY2Vfb3Agb3IgbW9kaWZ5IHRoZQorICogbmV4dCBwb2ludGVyIGFmdGVyIGl0IGhhcyBiZWVuIHJlZ2lzdGVyZWQuIEV2ZW4gYWZ0ZXIgdW5yZWdpc3RlcmluZworICogaXQsIHRoZSBuZXh0IHBvaW50ZXIgbWF5IHN0aWxsIGJlIHVzZWQgaW50ZXJuYWxseS4KKyAqLworaW50IHJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKTsKK2ludCB1bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKTsKK3ZvaWQgY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKHZvaWQpOworCitleHRlcm4gdm9pZCBmdHJhY2Vfc3R1Yih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKTsKKworI2Vsc2UgLyogIUNPTkZJR19GVFJBQ0UgKi8KKyMgZGVmaW5lIHJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpIGRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcykgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKG9wcykgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorIyBkZWZpbmUgRlRSQUNFX0hBU0hCSVRTCTEwCisjIGRlZmluZSBGVFJBQ0VfSEFTSFNJWkUJKDE8PEZUUkFDRV9IQVNIQklUUykKKworZW51bSB7CisJRlRSQUNFX0ZMX0ZSRUUJCT0gKDEgPDwgMCksCisJRlRSQUNFX0ZMX0ZBSUxFRAk9ICgxIDw8IDEpLAorCUZUUkFDRV9GTF9GSUxURVIJPSAoMSA8PCAyKSwKKwlGVFJBQ0VfRkxfRU5BQkxFRAk9ICgxIDw8IDMpLAorCUZUUkFDRV9GTF9OT1RSQUNFCT0gKDEgPDwgNCksCisJRlRSQUNFX0ZMX0NPTlZFUlRFRAk9ICgxIDw8IDUpLAorCUZUUkFDRV9GTF9GUk9aRU4JPSAoMSA8PCA2KSwKK307CisKK3N0cnVjdCBkeW5fZnRyYWNlIHsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZSBub2RlOworCXVuc2lnbmVkIGxvbmcJICBpcDsgLyogYWRkcmVzcyBvZiBtY291bnQgY2FsbC1zaXRlICovCisJdW5zaWduZWQgbG9uZwkgIGZsYWdzOworfTsKKworaW50IGZ0cmFjZV9mb3JjZV91cGRhdGUodm9pZCk7Cit2b2lkIGZ0cmFjZV9zZXRfZmlsdGVyKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHJlc2V0KTsKKworLyogZGVmaW5lZCBpbiBhcmNoICovCitleHRlcm4gaW50IGZ0cmFjZV9pcF9jb252ZXJ0ZWQodW5zaWduZWQgbG9uZyBpcCk7CitleHRlcm4gdW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpOworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmZ0cmFjZV9jYWxsX3JlcGxhY2UodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBhZGRyKTsKK2V4dGVybiBpbnQgZnRyYWNlX2R5bl9hcmNoX2luaXQodm9pZCAqZGF0YSk7CitleHRlcm4gaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpOworZXh0ZXJuIGludCBmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCQkgICAgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSk7CitleHRlcm4gaW50IGZ0cmFjZV91cGRhdGVfZnRyYWNlX2Z1bmMoZnRyYWNlX2Z1bmNfdCBmdW5jKTsKK2V4dGVybiB2b2lkIGZ0cmFjZV9jYWxsZXIodm9pZCk7CitleHRlcm4gdm9pZCBmdHJhY2VfY2FsbCh2b2lkKTsKK2V4dGVybiB2b2lkIG1jb3VudF9jYWxsKHZvaWQpOworCitleHRlcm4gaW50IHNraXBfdHJhY2UodW5zaWduZWQgbG9uZyBpcCk7CisKK3ZvaWQgZnRyYWNlX2Rpc2FibGVfZGFlbW9uKHZvaWQpOwordm9pZCBmdHJhY2VfZW5hYmxlX2RhZW1vbih2b2lkKTsKKworI2Vsc2UKKyMgZGVmaW5lIHNraXBfdHJhY2UoaXApCQkJCSh7IDA7IH0pCisjIGRlZmluZSBmdHJhY2VfZm9yY2VfdXBkYXRlKCkJCQkoeyAwOyB9KQorIyBkZWZpbmUgZnRyYWNlX3NldF9maWx0ZXIoYnVmLCBsZW4sIHJlc2V0KQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2VfZGlzYWJsZV9kYWVtb24oKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgZnRyYWNlX2VuYWJsZV9kYWVtb24oKQkJCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKworLyogdG90YWxseSBkaXNhYmxlIGZ0cmFjZSAtIGNhbiBub3QgcmUtZW5hYmxlIGFmdGVyIHRoaXMgKi8KK3ZvaWQgZnRyYWNlX2tpbGwodm9pZCk7Cit2b2lkIGZ0cmFjZV9raWxsX2F0b21pYyh2b2lkKTsKKworc3RhdGljIGlubGluZSB2b2lkIHRyYWNlcl9kaXNhYmxlKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCWZ0cmFjZV9lbmFibGVkID0gMDsKKyNlbmRpZgorfQorCisjaWZkZWYgQ09ORklHX0ZSQU1FX1BPSU5URVIKKy8qIFRPRE86IG5lZWQgdG8gZml4IHRoaXMgZm9yIEFSTSAqLworIyBkZWZpbmUgQ0FMTEVSX0FERFIwICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpCisjIGRlZmluZSBDQUxMRVJfQUREUjEgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygxKSkKKyMgZGVmaW5lIENBTExFUl9BRERSMiAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDIpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFIzICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMykpCisjIGRlZmluZSBDQUxMRVJfQUREUjQgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyg0KSkKKyMgZGVmaW5lIENBTExFUl9BRERSNSAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDUpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFI2ICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNikpCisjZWxzZQorIyBkZWZpbmUgQ0FMTEVSX0FERFIwICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpCisjIGRlZmluZSBDQUxMRVJfQUREUjEgMFVMCisjIGRlZmluZSBDQUxMRVJfQUREUjIgMFVMCisjIGRlZmluZSBDQUxMRVJfQUREUjMgMFVMCisjIGRlZmluZSBDQUxMRVJfQUREUjQgMFVMCisjIGRlZmluZSBDQUxMRVJfQUREUjUgMFVMCisjIGRlZmluZSBDQUxMRVJfQUREUjYgMFVMCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorICBleHRlcm4gdm9pZCB0aW1lX2hhcmRpcnFzX29uKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworICBleHRlcm4gdm9pZCB0aW1lX2hhcmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKTsKKyNlbHNlCisjIGRlZmluZSB0aW1lX2hhcmRpcnFzX29uKGEwLCBhMSkJCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIHRpbWVfaGFyZGlycXNfb2ZmKGEwLCBhMSkJCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCisgIGV4dGVybiB2b2lkIHRyYWNlX3ByZWVtcHRfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSk7CisgIGV4dGVybiB2b2lkIHRyYWNlX3ByZWVtcHRfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworI2Vsc2UKKyMgZGVmaW5lIHRyYWNlX3ByZWVtcHRfb24oYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdHJhY2VfcHJlZW1wdF9vZmYoYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfVFJBQ0lORworZXh0ZXJuIHZvaWQKK2Z0cmFjZV9zcGVjaWFsKHVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorZnRyYWNlX3NwZWNpYWwodW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMykgeyB9CisjZW5kaWYKKworI2VuZGlmIC8qIF9MSU5VWF9GVFJBQ0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9nZW5oZC5oIGIvaW5jbHVkZS9saW51eC9nZW5oZC5oCmluZGV4IGFlN2FlYzMuLmU4Nzg3NDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ2VuaGQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2dlbmhkLmgKQEAgLTExMCw2ICsxMTAsMTQgQEAKICNkZWZpbmUgR0VOSERfRkxfU1VQUFJFU1NfUEFSVElUSU9OX0lORk8JMzIKICNkZWZpbmUgR0VOSERfRkxfRkFJTAkJCQk2NAogCisjZGVmaW5lIEJMS19TQ1NJX01BWF9DTURTCSgyNTYpCisjZGVmaW5lIEJMS19TQ1NJX0NNRF9QRVJfTE9ORwkoQkxLX1NDU0lfTUFYX0NNRFMgLyAoc2l6ZW9mKGxvbmcpICogOCkpCisKK3N0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyIHsKKwl1bnNpZ25lZCBsb25nIHJlYWRfb2tbQkxLX1NDU0lfQ01EX1BFUl9MT05HXTsKKwl1bnNpZ25lZCBsb25nIHdyaXRlX29rW0JMS19TQ1NJX0NNRF9QRVJfTE9OR107CisJc3RydWN0IGtvYmplY3Qga29iajsKK307CiAKIHN0cnVjdCBnZW5kaXNrIHsKIAlpbnQgbWFqb3I7CQkJLyogbWFqb3IgbnVtYmVyIG9mIGRyaXZlciAqLwpAQCAtMTIwLDYgKzEyOCw3IEBACiAJc3RydWN0IGhkX3N0cnVjdCAqKnBhcnQ7CS8qIFtpbmRleGVkIGJ5IG1pbm9yXSAqLwogCXN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyAqZm9wczsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWU7CisJc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgY21kX2ZpbHRlcjsKIAl2b2lkICpwcml2YXRlX2RhdGE7CiAJc2VjdG9yX3QgY2FwYWNpdHk7CiAKQEAgLTE0MSw2ICsxNTAsOSBAQAogCXN0cnVjdCBkaXNrX3N0YXRzIGRrc3RhdHM7CiAjZW5kaWYKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgYXN5bmNfbm90aWZ5OworI2lmZGVmICBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqaW50ZWdyaXR5OworI2VuZGlmCiB9OwogCiAvKiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaTJjLmggYi9pbmNsdWRlL2xpbnV4L2kyYy5oCmluZGV4IGZiOWFmNmEuLjhkYzczMDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaTJjLmgKKysrIGIvaW5jbHVkZS9saW51eC9pMmMuaApAQCAtMTcxLDcgKzE3MSw3IEBACiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyOwkvKiB0aGUgYWRhcHRlciB3ZSBzaXQgb24JKi8KIAlzdHJ1Y3QgaTJjX2RyaXZlciAqZHJpdmVyOwkvKiBhbmQgb3VyIGFjY2VzcyByb3V0aW5lcwkqLwogCXN0cnVjdCBkZXZpY2UgZGV2OwkJLyogdGhlIGRldmljZSBzdHJ1Y3R1cmUJCSovCi0JaW50IGlycTsJCQkvKiBpcnEgaXNzdWVkIGJ5IGRldmljZSAob3IgLTEpICovCisJaW50IGlycTsJCQkvKiBpcnEgaXNzdWVkIGJ5IGRldmljZQkJKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CQkvKiBERVBSRUNBVEVEICovCiAJc3RydWN0IGNvbXBsZXRpb24gcmVsZWFzZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZGUuaCBiL2luY2x1ZGUvbGludXgvaWRlLmgKaW5kZXggZjhmMTk1Yy4uZWRkYjZkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pZGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lkZS5oCkBAIC0xNTMsNyArMTUzLDcgQEAKIAkJaWRlX3FkNjV4eCwJaWRlX3VtYzg2NzIsCWlkZV9odDY1NjBiLAogCQlpZGVfcnoxMDAwLAlpZGVfdHJtMjkwLAogCQlpZGVfY21kNjQ2LAlpZGVfY3k4MmM2OTMsCWlkZV80ZHJpdmVzLAotCQlpZGVfcG1hYywJaWRlX2V0cmF4MTAwLAlpZGVfYWNvcm4sCisJCWlkZV9wbWFjLAlpZGVfYWNvcm4sCiAJCWlkZV9hdTF4eHgsCWlkZV9wYWxtMzcxMAogfTsKIApAQCAtMTg5LDYgKzE4OSwyMSBAQAogCWh3LT5pb19wb3J0cy5jdGxfYWRkciA9IGN0bF9hZGRyOwogfQogCisvKiBmb3IgSURFIFBDSSBjb250cm9sbGVycyBpbiBsZWdhY3kgbW9kZSwgdGVtcG9yYXJ5ICovCitzdGF0aWMgaW5saW5lIGludCBfX2lkZV9kZWZhdWx0X2lycSh1bnNpZ25lZCBsb25nIGJhc2UpCit7CisJc3dpdGNoIChiYXNlKSB7CisjaWZkZWYgQ09ORklHX0lBNjQKKwljYXNlIDB4MWYwOiByZXR1cm4gaXNhX2lycV90b192ZWN0b3IoMTQpOworCWNhc2UgMHgxNzA6IHJldHVybiBpc2FfaXJxX3RvX3ZlY3RvcigxNSk7CisjZWxzZQorCWNhc2UgMHgxZjA6IHJldHVybiAxNDsKKwljYXNlIDB4MTcwOiByZXR1cm4gMTU7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisKICNpbmNsdWRlIDxhc20vaWRlLmg+CiAKICNpZiAhZGVmaW5lZChNQVhfSFdJRlMpIHx8IGRlZmluZWQoQ09ORklHX0VNQkVEREVEKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZl90dW5uZWwuaCBiL2luY2x1ZGUvbGludXgvaWZfdHVubmVsLmgKaW5kZXggZjFmYmU5Yy4uZDRlZmU0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pZl90dW5uZWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lmX3R1bm5lbC5oCkBAIC00MSw3ICs0MSw3IEBACiAJX191MTYJCQlfX3Jlc2VydmVkOwogCV9fdTMyCQkJZGF0YWxlbjsKIAlfX3UzMgkJCV9fcmVzZXJ2ZWQyOwotCXZvaWQgX191c2VyCQkqZGF0YTsKKwkvKiBkYXRhIGZvbGxvd3MgKi8KIH07CiAKIC8qIFBSTCBmbGFncyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9paGV4LmggYi9pbmNsdWRlL2xpbnV4L2loZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmFhY2UyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9paGV4LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvbXBhY3QgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXggcmVjb3Jkcy4gU29tZSBkZXZpY2VzIG5lZWQgdGhlaXIKKyAqIGZpcm13YXJlIGxvYWRlZCBpbiBzdHJhbmdlIG9yZGVycyByYXRoZXIgdGhhbiBhIHNpbmdsZSBiaWcgYmxvYiwgYnV0CisgKiBhY3R1YWxseSBwYXJzaW5nIGloZXgtYXMtdGV4dCB3aXRoaW4gdGhlIGtlcm5lbCBzZWVtcyBzaWxseS4gVGh1cywuLi4KKyAqLworCisjaWZuZGVmIF9fTElOVVhfSUhFWF9IX18KKyNkZWZpbmUgX19MSU5VWF9JSEVYX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorCisvKiBJbnRlbCBIRVggZmlsZXMgYWN0dWFsbHkgbGltaXQgdGhlIGxlbmd0aCB0byAyNTYgYnl0ZXMsIGJ1dCB3ZSBoYXZlCisgICBkcml2ZXJzIHdoaWNoIHdvdWxkIGJlbmVmaXQgZnJvbSB1c2luZyBzZXBhcmF0ZSByZWNvcmRzIHdoaWNoIGFyZQorICAgbG9uZ2VyIHRoYW4gdGhhdCwgc28gd2UgZXh0ZW5kIHRvIDE2IGJpdHMgb2YgbGVuZ3RoICovCitzdHJ1Y3QgaWhleF9iaW5yZWMgeworCV9fYmUzMiBhZGRyOworCV9fYmUxNiBsZW47CisJdWludDhfdCBkYXRhWzBdOworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSk7CisKKy8qIEZpbmQgdGhlIG5leHQgcmVjb3JkLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSA0LWJ5dGUgYWxpZ25tZW50ICovCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqCitpaGV4X25leHRfYmlucmVjKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjKQoreworCWludCBuZXh0ID0gKChiZTE2X3RvX2NwdShyZWMtPmxlbikgKyA1KSAmIH4zKSAtIDI7CisJcmVjID0gKHZvaWQgKikmcmVjLT5kYXRhW25leHRdOworCisJcmV0dXJuIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA/IHJlYyA6IE5VTEw7Cit9CisKKy8qIENoZWNrIHRoYXQgaWhleF9uZXh0X2JpbnJlYygpIHdvbid0IHRha2UgdXMgb2ZmIHRoZSBlbmQgb2YgdGhlIGltYWdlLi4uICovCitzdGF0aWMgaW5saW5lIGludCBpaGV4X3ZhbGlkYXRlX2Z3KGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCit7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJc2l6ZV90IG9mcyA9IDA7CisKKwl3aGlsZSAob2ZzIDw9IGZ3LT5zaXplIC0gc2l6ZW9mKCpyZWMpKSB7CisJCXJlYyA9ICh2b2lkICopJmZ3LT5kYXRhW29mc107CisKKwkJLyogWmVybyBsZW5ndGggbWFya3MgZW5kIG9mIHJlY29yZHMgKi8KKwkJaWYgKCFiZTE2X3RvX2NwdShyZWMtPmxlbikpCisJCQlyZXR1cm4gMDsKKworCQkvKiBQb2ludCB0byBuZXh0IHJlY29yZC4uLiAqLworCQlvZnMgKz0gKHNpemVvZigqcmVjKSArIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSArIDMpICYgfjM7CisJfQorCXJldHVybiAtRUlOVkFMOworfQorCisvKiBSZXF1ZXN0IGZpcm13YXJlIGFuZCB2YWxpZGF0ZSBpdCBzbyB0aGF0IHdlIGNhbiB0cnVzdCB3ZSB3b24ndAorICogcnVuIG9mZiB0aGUgZW5kIHdoaWxlIHJlYWRpbmcgcmVjb3Jkcy4uLiAqLworc3RhdGljIGlubGluZSBpbnQgcmVxdWVzdF9paGV4X2Zpcm13YXJlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqKmZ3LAorCQkJCQljb25zdCBjaGFyICpmd19uYW1lLAorCQkJCQlzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpsZnc7CisJaW50IHJldDsKKworCXJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmxmdywgZndfbmFtZSwgZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldCA9IGloZXhfdmFsaWRhdGVfZncobGZ3KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiRmlybXdhcmUgXCIlc1wiIG5vdCB2YWxpZCBJSEVYIHJlY29yZHNcbiIsCisJCQlmd19uYW1lKTsKKwkJcmVsZWFzZV9maXJtd2FyZShsZncpOworCQlyZXR1cm4gcmV0OworCX0KKwkqZncgPSBsZnc7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogX19MSU5VWF9JSEVYX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbmV0X2xyby5oIGIvaW5jbHVkZS9saW51eC9pbmV0X2xyby5oCmluZGV4IDgwMzM1YjcuLmM0MzM1ZmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5ldF9scm8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2luZXRfbHJvLmgKQEAgLTg0LDcgKzg0LDExIEBACiAJCQkJICAgIGZyb20gcmVjZWl2ZWQgcGFja2V0cyBhbmQgZXRoIHByb3RvY29sCiAJCQkJICAgIGlzIHN0aWxsIEVUSF9QXzgwMjFRICovCiAKLQl1MzIgaXBfc3VtbWVkOyAgICAgIC8qIFNldCBpbiBub24gZ2VuZXJhdGVkIFNLQnMgaW4gcGFnZSBtb2RlICovCisJLyoKKwkgKiBTZXQgZm9yIGdlbmVyYXRlZCBTS0JzIHRoYXQgYXJlIG5vdCBhZGRlZCB0bworCSAqIHRoZSBmcmFnIGxpc3QgaW4gZnJhZ21lbnRlZCBtb2RlCisJICovCisJdTMyIGlwX3N1bW1lZDsKIAl1MzIgaXBfc3VtbWVkX2FnZ3I7IC8qIFNldCBpbiBhZ2dyZWdhdGVkIFNLQnM6IENIRUNLU1VNX1VOTkVDRVNTQVJZCiAJCQkgICAgICogb3IgQ0hFQ0tTVU1fTk9ORSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lucHV0LmggYi9pbmNsdWRlL2xpbnV4L2lucHV0LmgKaW5kZXggZTA3NWM0Yi4uZDE1MGM1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbnB1dC5oCisrKyBiL2luY2x1ZGUvbGludXgvaW5wdXQuaApAQCAtNTM0LDggKzUzNCw4IEBACiAKICNkZWZpbmUgS0VZX0ZSQU1FQkFDSwkJMHgxYjQJLyogQ29uc3VtZXIgLSB0cmFuc3BvcnQgY29udHJvbHMgKi8KICNkZWZpbmUgS0VZX0ZSQU1FRk9SV0FSRAkweDFiNQotCiAjZGVmaW5lIEtFWV9DT05URVhUX01FTlUJMHgxYjYJLyogR2VuRGVzYyAtIHN5c3RlbSBjb250ZXh0IG1lbnUgKi8KKyNkZWZpbmUgS0VZX01FRElBX1JFUEVBVAkweDFiNwkvKiBDb25zdW1lciAtIHRyYW5zcG9ydCBjb250cm9sICovCiAKICNkZWZpbmUgS0VZX0RFTF9FT0wJCTB4MWMwCiAjZGVmaW5lIEtFWV9ERUxfRU9TCQkweDFjMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaCBiL2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmgKaW5kZXggZjFmYzc0Ny4uYTg2MTg2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ludGVycnVwdC5oCkBAIC0yODUsMTIgKzI4NSwxMSBAQAogc3RydWN0IHNvZnRpcnFfYWN0aW9uCiB7CiAJdm9pZAkoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopOwotCXZvaWQJKmRhdGE7CiB9OwogCiBhc21saW5rYWdlIHZvaWQgZG9fc29mdGlycSh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBfX2RvX3NvZnRpcnEodm9pZCk7Ci1leHRlcm4gdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24qKSwgdm9pZCAqZGF0YSk7CitleHRlcm4gdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24gKikpOwogZXh0ZXJuIHZvaWQgc29mdGlycV9pbml0KHZvaWQpOwogI2RlZmluZSBfX3JhaXNlX3NvZnRpcnFfaXJxb2ZmKG5yKSBkbyB7IG9yX3NvZnRpcnFfcGVuZGluZygxVUwgPDwgKG5yKSk7IH0gd2hpbGUgKDApCiBleHRlcm4gdm9pZCByYWlzZV9zb2Z0aXJxX2lycW9mZih1bnNpZ25lZCBpbnQgbnIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCBiL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgKaW5kZXggMmI3YTExOC4uMDhiOTg3YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oCkBAIC05OSw0ICs5OSwyMiBAQAogCXJldHVybiBOVUxMOwogfQogCisjaWZkZWYgQ09ORklHX0JMT0NLCitpbnQgcHV0X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKmlvYyk7Cit2b2lkIGV4aXRfaW9fY29udGV4dCh2b2lkKTsKK3N0cnVjdCBpb19jb250ZXh0ICpnZXRfaW9fY29udGV4dChnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKK3N0cnVjdCBpb19jb250ZXh0ICphbGxvY19pb19jb250ZXh0KGdmcF90IGdmcF9mbGFncywgaW50IG5vZGUpOwordm9pZCBjb3B5X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKipwZHN0LCBzdHJ1Y3QgaW9fY29udGV4dCAqKnBzcmMpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCkKK3sKK30KKworc3RydWN0IGlvX2NvbnRleHQ7CitzdGF0aWMgaW5saW5lIGludCBwdXRfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKQoreworCXJldHVybiAxOworfQorI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb3BvcnQuaCBiL2luY2x1ZGUvbGludXgvaW9wb3J0LmgKaW5kZXggZDVkNDBhOS4uYzY4MDFiZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb3BvcnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCkBAIC01MywxNCArNTMsMTQgQEAKICNkZWZpbmUgSU9SRVNPVVJDRV9BVVRPCQkweDQwMDAwMDAwCiAjZGVmaW5lIElPUkVTT1VSQ0VfQlVTWQkJMHg4MDAwMDAwMAkvKiBEcml2ZXIgaGFzIG1hcmtlZCB0aGlzIHJlc291cmNlIGJ1c3kgKi8KIAotLyogSVNBIFBuUCBJUlEgc3BlY2lmaWMgYml0cyAoSU9SRVNPVVJDRV9CSVRTKSAqLworLyogUG5QIElSUSBzcGVjaWZpYyBiaXRzIChJT1JFU09VUkNFX0JJVFMpICovCiAjZGVmaW5lIElPUkVTT1VSQ0VfSVJRX0hJR0hFREdFCQkoMTw8MCkKICNkZWZpbmUgSU9SRVNPVVJDRV9JUlFfTE9XRURHRQkJKDE8PDEpCiAjZGVmaW5lIElPUkVTT1VSQ0VfSVJRX0hJR0hMRVZFTAkoMTw8MikKICNkZWZpbmUgSU9SRVNPVVJDRV9JUlFfTE9XTEVWRUwJCSgxPDwzKQogI2RlZmluZSBJT1JFU09VUkNFX0lSUV9TSEFSRUFCTEUJKDE8PDQpCiAKLS8qIElTQSBQblAgRE1BIHNwZWNpZmljIGJpdHMgKElPUkVTT1VSQ0VfQklUUykgKi8KKy8qIFBuUCBETUEgc3BlY2lmaWMgYml0cyAoSU9SRVNPVVJDRV9CSVRTKSAqLwogI2RlZmluZSBJT1JFU09VUkNFX0RNQV9UWVBFX01BU0sJKDM8PDApCiAjZGVmaW5lIElPUkVTT1VSQ0VfRE1BXzhCSVQJCSgwPDwwKQogI2RlZmluZSBJT1JFU09VUkNFX0RNQV84QU5EMTZCSVQJKDE8PDApCkBAIC03Niw3ICs3Niw3IEBACiAjZGVmaW5lIElPUkVTT1VSQ0VfRE1BX1RZUEVCCQkoMjw8NikKICNkZWZpbmUgSU9SRVNPVVJDRV9ETUFfVFlQRUYJCSgzPDw2KQogCi0vKiBJU0EgUG5QIG1lbW9yeSBJL08gc3BlY2lmaWMgYml0cyAoSU9SRVNPVVJDRV9CSVRTKSAqLworLyogUG5QIG1lbW9yeSBJL08gc3BlY2lmaWMgYml0cyAoSU9SRVNPVVJDRV9CSVRTKSAqLwogI2RlZmluZSBJT1JFU09VUkNFX01FTV9XUklURUFCTEUJKDE8PDApCS8qIGR1cDogSU9SRVNPVVJDRV9SRUFET05MWSAqLwogI2RlZmluZSBJT1JFU09VUkNFX01FTV9DQUNIRUFCTEUJKDE8PDEpCS8qIGR1cDogSU9SRVNPVVJDRV9DQUNIRUFCTEUgKi8KICNkZWZpbmUgSU9SRVNPVVJDRV9NRU1fUkFOR0VMRU5HVEgJKDE8PDIpCS8qIGR1cDogSU9SRVNPVVJDRV9SQU5HRUxFTkdUSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcHY2LmggYi9pbmNsdWRlL2xpbnV4L2lwdjYuaAppbmRleCAxMGI2NjZiLi5jZGUwNTZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lwdjYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lwdjYuaApAQCAtMzk2LDggKzM5NiwxMCBAQAogewogCXN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSA9IHJlcXNrX2FsbG9jKG9wcyk7CiAKLQlpZiAocmVxICE9IE5VTEwpCisJaWYgKHJlcSAhPSBOVUxMKSB7CiAJCWluZXRfcnNrKHJlcSktPmluZXQ2X3Jza19vZmZzZXQgPSBpbmV0Nl9yc2tfb2Zmc2V0KHJlcSk7CisJCWluZXQ2X3JzayhyZXEpLT5wa3RvcHRzID0gTlVMTDsKKwl9CiAKIAlyZXR1cm4gcmVxOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcnFmbGFncy5oIGIvaW5jbHVkZS9saW51eC9pcnFmbGFncy5oCmluZGV4IGU2MDBjNGUuLjJiMWMyZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lycWZsYWdzLmgKQEAgLTEyLDEwICsxMiwxMCBAQAogI2RlZmluZSBfTElOVVhfVFJBQ0VfSVJRRkxBR1NfSAogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0gIGV4dGVybiB2b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpOwotICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCk7CiAgIGV4dGVybiB2b2lkIHRyYWNlX3NvZnRpcnFzX29uKHVuc2lnbmVkIGxvbmcgaXApOwogICBleHRlcm4gdm9pZCB0cmFjZV9zb2Z0aXJxc19vZmYodW5zaWduZWQgbG9uZyBpcCk7CisgIGV4dGVybiB2b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpOworICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCk7CiAjIGRlZmluZSB0cmFjZV9oYXJkaXJxX2NvbnRleHQocCkJKChwKS0+aGFyZGlycV9jb250ZXh0KQogIyBkZWZpbmUgdHJhY2Vfc29mdGlycV9jb250ZXh0KHApCSgocCktPnNvZnRpcnFfY29udGV4dCkKICMgZGVmaW5lIHRyYWNlX2hhcmRpcnFzX2VuYWJsZWQocCkJKChwKS0+aGFyZGlycXNfZW5hYmxlZCkKQEAgLTQxLDYgKzQxLDE1IEBACiAjIGRlZmluZSBJTklUX1RSQUNFX0lSUUZMQUdTCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX0lSUVNPRkZfVFJBQ0VSKSB8fCBcCisJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCisgZXh0ZXJuIHZvaWQgc3RvcF9jcml0aWNhbF90aW1pbmdzKHZvaWQpOworIGV4dGVybiB2b2lkIHN0YXJ0X2NyaXRpY2FsX3RpbWluZ3Modm9pZCk7CisjZWxzZQorIyBkZWZpbmUgc3RvcF9jcml0aWNhbF90aW1pbmdzKCkgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgc3RhcnRfY3JpdGljYWxfdGltaW5ncygpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQKIAogI2luY2x1ZGUgPGFzbS9pcnFmbGFncy5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9qYmQyLmggYi9pbmNsdWRlL2xpbnV4L2piZDIuaAppbmRleCAwNWUyYjMwLi4zZGQyMDkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2piZDIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2piZDIuaApAQCAtMTY4LDYgKzE2OCw4IEBACiAJdW5zaWduZWQgY2hhciAgIGhfY2hrc3VtX3NpemU7CiAJdW5zaWduZWQgY2hhciAJaF9wYWRkaW5nWzJdOwogCV9fYmUzMiAJCWhfY2hrc3VtW0pCRDJfQ0hFQ0tTVU1fQllURVNdOworCV9fYmU2NAkJaF9jb21taXRfc2VjOworCV9fYmUzMgkJaF9jb21taXRfbnNlYzsKIH07CiAKIC8qCkBAIC0zNzksNiArMzgxLDM4IEBACiAJYml0X3NwaW5fdW5sb2NrKEJIX0pvdXJuYWxIZWFkLCAmYmgtPmJfc3RhdGUpOwogfQogCisvKiBGbGFncyBpbiBqYmRfaW5vZGUtPmlfZmxhZ3MgKi8KKyNkZWZpbmUgX19KSV9DT01NSVRfUlVOTklORyAwCisvKiBDb21taXQgb2YgdGhlIGlub2RlIGRhdGEgaW4gcHJvZ3Jlc3MuIFdlIHVzZSB0aGlzIGZsYWcgdG8gcHJvdGVjdCB1cyBmcm9tCisgKiBjb25jdXJyZW50IGRlbGV0aW9uIG9mIGlub2RlLiBXZSBjYW5ub3QgdXNlIHJlZmVyZW5jZSB0byBpbm9kZSBmb3IgdGhpcworICogc2luY2Ugd2UgY2Fubm90IGFmZm9yZCBkb2luZyBsYXN0IGlwdXQoKSBvbiBiZWhhbGYgb2Yga2pvdXJuYWxkCisgKi8KKyNkZWZpbmUgSklfQ09NTUlUX1JVTk5JTkcgKDEgPDwgX19KSV9DT01NSVRfUlVOTklORykKKworLyoqCisgKiBzdHJ1Y3QgamJkX2lub2RlIGlzIHRoZSBzdHJ1Y3R1cmUgbGlua2luZyBpbm9kZXMgaW4gb3JkZXJlZCBtb2RlCisgKiAgIHByZXNlbnQgaW4gYSB0cmFuc2FjdGlvbiBzbyB0aGF0IHdlIGNhbiBzeW5jIHRoZW0gZHVyaW5nIGNvbW1pdC4KKyAqLworc3RydWN0IGpiZDJfaW5vZGUgeworCS8qIFdoaWNoIHRyYW5zYWN0aW9uIGRvZXMgdGhpcyBpbm9kZSBiZWxvbmcgdG8/IEVpdGhlciB0aGUgcnVubmluZworCSAqIHRyYW5zYWN0aW9uIG9yIHRoZSBjb21taXR0aW5nIG9uZS4gW2pfbGlzdF9sb2NrXSAqLworCXRyYW5zYWN0aW9uX3QgKmlfdHJhbnNhY3Rpb247CisKKwkvKiBQb2ludGVyIHRvIHRoZSBydW5uaW5nIHRyYW5zYWN0aW9uIG1vZGlmeWluZyBpbm9kZSdzIGRhdGEgaW4gY2FzZQorCSAqIHRoZXJlIGlzIGFscmVhZHkgYSBjb21taXR0aW5nIHRyYW5zYWN0aW9uIHRvdWNoaW5nIGl0LiBbal9saXN0X2xvY2tdICovCisJdHJhbnNhY3Rpb25fdCAqaV9uZXh0X3RyYW5zYWN0aW9uOworCisJLyogTGlzdCBvZiBpbm9kZXMgaW4gdGhlIGlfdHJhbnNhY3Rpb24gW2pfbGlzdF9sb2NrXSAqLworCXN0cnVjdCBsaXN0X2hlYWQgaV9saXN0OworCisJLyogVkZTIGlub2RlIHRoaXMgaW5vZGUgYmVsb25ncyB0byBbY29uc3RhbnQgZHVyaW5nIHRoZSBsaWZldGltZQorCSAqIG9mIHRoZSBzdHJ1Y3R1cmVdICovCisJc3RydWN0IGlub2RlICppX3Zmc19pbm9kZTsKKworCS8qIEZsYWdzIG9mIGlub2RlIFtqX2xpc3RfbG9ja10gKi8KKwl1bnNpZ25lZCBpbnQgaV9mbGFnczsKK307CisKIHN0cnVjdCBqYmQyX3Jldm9rZV90YWJsZV9zOwogCiAvKioKQEAgLTUwOSwyNCArNTQzLDEyIEBACiAJc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9yZXNlcnZlZF9saXN0OwogCiAJLyoKLQkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIGJ1ZmZlcnMgdW5kZXIgd3JpdGVvdXQgZHVyaW5nCi0JICogY29tbWl0IFtqX2xpc3RfbG9ja10KLQkgKi8KLQlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2xvY2tlZF9saXN0OwotCi0JLyoKIAkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIG1ldGFkYXRhIGJ1ZmZlcnMgb3duZWQgYnkgdGhpcwogCSAqIHRyYW5zYWN0aW9uIFtqX2xpc3RfbG9ja10KIAkgKi8KIAlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2J1ZmZlcnM7CiAKIAkvKgotCSAqIERvdWJseS1saW5rZWQgY2lyY3VsYXIgbGlzdCBvZiBhbGwgZGF0YSBidWZmZXJzIHN0aWxsIHRvIGJlCi0JICogZmx1c2hlZCBiZWZvcmUgdGhpcyB0cmFuc2FjdGlvbiBjYW4gYmUgY29tbWl0dGVkIFtqX2xpc3RfbG9ja10KLQkgKi8KLQlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X3N5bmNfZGF0YWxpc3Q7Ci0KLQkvKgogCSAqIERvdWJseS1saW5rZWQgY2lyY3VsYXIgbGlzdCBvZiBhbGwgZm9yZ2V0IGJ1ZmZlcnMgKHN1cGVyc2VkZWQKIAkgKiBidWZmZXJzIHdoaWNoIHdlIGNhbiB1bi1jaGVja3BvaW50IG9uY2UgdGhpcyB0cmFuc2FjdGlvbiBjb21taXRzKQogCSAqIFtqX2xpc3RfbG9ja10KQEAgLTU2NSw2ICs1ODcsMTIgQEAKIAlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2xvZ19saXN0OwogCiAJLyoKKwkgKiBMaXN0IG9mIGlub2RlcyB3aG9zZSBkYXRhIHdlJ3ZlIG1vZGlmaWVkIGluIGRhdGE9b3JkZXJlZCBtb2RlLgorCSAqIFtqX2xpc3RfbG9ja10KKwkgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkCXRfaW5vZGVfbGlzdDsKKworCS8qCiAJICogUHJvdGVjdHMgaW5mbyByZWxhdGVkIHRvIGhhbmRsZXMKIAkgKi8KIAlzcGlubG9ja190CQl0X2hhbmRsZV9sb2NrOwpAQCAtOTE5LDYgKzk0Nyw5IEBACiAJc3RydWN0IHByb2NfZGlyX2VudHJ5CSpqX3Byb2NfZW50cnk7CiAJc3RydWN0IHRyYW5zYWN0aW9uX3N0YXRzX3Mgal9zdGF0czsKIAorCS8qIEZhaWxlZCBqb3VybmFsIGNvbW1pdCBJRCAqLworCXVuc2lnbmVkIGludAkJal9mYWlsZWRfY29tbWl0OworCiAJLyoKIAkgKiBBbiBvcGFxdWUgcG9pbnRlciB0byBmcy1wcml2YXRlIGluZm9ybWF0aW9uLiAgZXh0MyBwdXRzIGl0cwogCSAqIHN1cGVyYmxvY2sgcG9pbnRlciBoZXJlCkBAIC0xMDAxLDcgKzEwMzIsNiBAQAogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlX3QgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOwogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2dldF9jcmVhdGVfYWNjZXNzIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKLWV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZGlydHlfbWV0YWRhdGEgKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKIGV4dGVybiB2b2lkCSBqYmQyX2pvdXJuYWxfcmVsZWFzZV9idWZmZXIgKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKIGV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9mb3JnZXQgKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKQEAgLTEwNDEsNiArMTA3MSwxMCBAQAogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfY2xlYXJfZXJyICAoam91cm5hbF90ICopOwogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfYm1hcChqb3VybmFsX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nICopOwogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0KGpvdXJuYWxfdCAqKTsKK2V4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGpiZDJfaW5vZGUgKmlub2RlKTsKK2V4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGpiZDJfaW5vZGUgKmlub2RlLCBsb2ZmX3QgbmV3X3NpemUpOworZXh0ZXJuIHZvaWQJICAgamJkMl9qb3VybmFsX2luaXRfamJkX2lub2RlKHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUpOworZXh0ZXJuIHZvaWQJICAgamJkMl9qb3VybmFsX3JlbGVhc2VfamJkX2lub2RlKGpvdXJuYWxfdCAqam91cm5hbCwgc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSk7CiAKIC8qCiAgKiBqb3VybmFsX2hlYWQgbWFuYWdlbWVudApAQCAtMTE3NiwxNSArMTIxMCwxMyBAQAogCiAvKiBqb3VybmFsaW5nIGJ1ZmZlciB0eXBlcyAqLwogI2RlZmluZSBCSl9Ob25lCQkwCS8qIE5vdCBqb3VybmFsZWQgKi8KLSNkZWZpbmUgQkpfU3luY0RhdGEJMQkvKiBOb3JtYWwgZGF0YTogZmx1c2ggYmVmb3JlIGNvbW1pdCAqLwotI2RlZmluZSBCSl9NZXRhZGF0YQkyCS8qIE5vcm1hbCBqb3VybmFsZWQgbWV0YWRhdGEgKi8KLSNkZWZpbmUgQkpfRm9yZ2V0CTMJLyogQnVmZmVyIHN1cGVyc2VkZWQgYnkgdGhpcyB0cmFuc2FjdGlvbiAqLwotI2RlZmluZSBCSl9JTwkJNAkvKiBCdWZmZXIgaXMgZm9yIHRlbXBvcmFyeSBJTyB1c2UgKi8KLSNkZWZpbmUgQkpfU2hhZG93CTUJLyogQnVmZmVyIGNvbnRlbnRzIGJlaW5nIHNoYWRvd2VkIHRvIHRoZSBsb2cgKi8KLSNkZWZpbmUgQkpfTG9nQ3RsCTYJLyogQnVmZmVyIGNvbnRhaW5zIGxvZyBkZXNjcmlwdG9ycyAqLwotI2RlZmluZSBCSl9SZXNlcnZlZAk3CS8qIEJ1ZmZlciBpcyByZXNlcnZlZCBmb3IgYWNjZXNzIGJ5IGpvdXJuYWwgKi8KLSNkZWZpbmUgQkpfTG9ja2VkCTgJLyogTG9ja2VkIGZvciBJL08gZHVyaW5nIGNvbW1pdCAqLwotI2RlZmluZSBCSl9UeXBlcwk5CisjZGVmaW5lIEJKX01ldGFkYXRhCTEJLyogTm9ybWFsIGpvdXJuYWxlZCBtZXRhZGF0YSAqLworI2RlZmluZSBCSl9Gb3JnZXQJMgkvKiBCdWZmZXIgc3VwZXJzZWRlZCBieSB0aGlzIHRyYW5zYWN0aW9uICovCisjZGVmaW5lIEJKX0lPCQkzCS8qIEJ1ZmZlciBpcyBmb3IgdGVtcG9yYXJ5IElPIHVzZSAqLworI2RlZmluZSBCSl9TaGFkb3cJNAkvKiBCdWZmZXIgY29udGVudHMgYmVpbmcgc2hhZG93ZWQgdG8gdGhlIGxvZyAqLworI2RlZmluZSBCSl9Mb2dDdGwJNQkvKiBCdWZmZXIgY29udGFpbnMgbG9nIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIEJKX1Jlc2VydmVkCTYJLyogQnVmZmVyIGlzIHJlc2VydmVkIGZvciBhY2Nlc3MgYnkgam91cm5hbCAqLworI2RlZmluZSBCSl9UeXBlcwk3CiAKIGV4dGVybiBpbnQgamJkX2Jsb2Nrc19wZXJfcGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rZXJuZWwuaCBiL2luY2x1ZGUvbGludXgva2VybmVsLmgKaW5kZXggNzkyYmYwYS4uZjljZDdhNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rZXJuZWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCkBAIC00Niw2ICs0Niw5IEBACiAjZGVmaW5lIERJVl9ST1VORF9VUChuLGQpICgoKG4pICsgKGQpIC0gMSkgLyAoZCkpCiAjZGVmaW5lIHJvdW5kdXAoeCwgeSkgKCgoKHgpICsgKCh5KSAtIDEpKSAvICh5KSkgKiAoeSkpCiAKKyNkZWZpbmUgX1JFVF9JUF8JCSh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKQorI2RlZmluZSBfVEhJU19JUF8gICh7IF9fbGFiZWxfXyBfX2hlcmU7IF9faGVyZTogKHVuc2lnbmVkIGxvbmcpJiZfX2hlcmU7IH0pCisKICNpZmRlZiBDT05GSUdfTEJECiAjIGluY2x1ZGUgPGFzbS9kaXY2NC5oPgogIyBkZWZpbmUgc2VjdG9yX2RpdihhLCBiKSBkb19kaXYoYSwgYikKQEAgLTE4NCw5ICsxODcsNiBAQAogCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMCkpKTsKIGFzbWxpbmthZ2UgaW50IHByaW50ayhjb25zdCBjaGFyICogZm10LCAuLi4pCiAJX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpIF9fY29sZDsKLWV4dGVybiBpbnQgbG9nX2J1Zl9nZXRfbGVuKHZvaWQpOwotZXh0ZXJuIGludCBsb2dfYnVmX3JlYWQoaW50IGlkeCk7Ci1leHRlcm4gaW50IGxvZ19idWZfY29weShjaGFyICpkZXN0LCBpbnQgaWR4LCBpbnQgbGVuKTsKIAogZXh0ZXJuIGludCBwcmludGtfcmF0ZWxpbWl0X2ppZmZpZXM7CiBleHRlcm4gaW50IHByaW50a19yYXRlbGltaXRfYnVyc3Q7CkBAIC0yMDIsOSArMjAyLDYgQEAKIHN0YXRpYyBpbmxpbmUgaW50IHByaW50ayhjb25zdCBjaGFyICpzLCAuLi4pCiAJX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOwogc3RhdGljIGlubGluZSBpbnQgX19jb2xkIHByaW50ayhjb25zdCBjaGFyICpzLCAuLi4pIHsgcmV0dXJuIDA7IH0KLXN0YXRpYyBpbmxpbmUgaW50IGxvZ19idWZfZ2V0X2xlbih2b2lkKSB7IHJldHVybiAwOyB9Ci1zdGF0aWMgaW5saW5lIGludCBsb2dfYnVmX3JlYWQoaW50IGlkeCkgeyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSBpbnQgbG9nX2J1Zl9jb3B5KGNoYXIgKmRlc3QsIGludCBpZHgsIGludCBsZW4pIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IHByaW50a19yYXRlbGltaXQodm9pZCkgeyByZXR1cm4gMDsgfQogc3RhdGljIGlubGluZSBpbnQgX19wcmludGtfcmF0ZWxpbWl0KGludCByYXRlbGltaXRfamlmZmllcywgXAogCQkJCSAgICAgaW50IHJhdGVsaW1pdF9idXJzdCkgeyByZXR1cm4gMDsgfQpAQCAtMjEzLDcgKzIxMCw3IEBACiAJCXsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50ZiwgMSwgMikpKQorZXh0ZXJuIHZvaWQgYXNtbGlua2FnZSBfX2F0dHJpYnV0ZV9fKChmb3JtYXQocHJpbnRmLCAxLCAyKSkpCiAJZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKIAogdW5zaWduZWQgbG9uZyBpbnRfc3FydCh1bnNpZ25lZCBsb25nKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaCBiL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaAppbmRleCBlOGZmY2U4Li5jZjlmNDBhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCkBAIC0xLDExICsxLDExIEBACiAjaWZuZGVmIF9MSU5VWF9LRVJORUxfU1RBVF9ICiAjZGVmaW5lIF9MSU5VWF9LRVJORUxfU1RBVF9ICiAKLSNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2NwdXRpbWUuaD4KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oIGIvaW5jbHVkZS9saW51eC9rcHJvYmVzLmgKaW5kZXggMTAzNjYzMS4uMDRhMzU1NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rcHJvYmVzLmgKKysrIGIvaW5jbHVkZS9saW51eC9rcHJvYmVzLmgKQEAgLTI1OSw2ICsyNTksMTAgQEAKIHN0cnVjdCBqcHJvYmU7CiBzdHJ1Y3Qga3JldHByb2JlOwogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBrcHJvYmUgKmdldF9rcHJvYmUodm9pZCAqYWRkcikKK3sKKwlyZXR1cm4gTlVMTDsKK30KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGtwcm9iZSAqa3Byb2JlX3J1bm5pbmcodm9pZCkKIHsKIAlyZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva3MwMTA4LmggYi9pbmNsdWRlL2xpbnV4L2tzMDEwOC5oCmluZGV4IGEyYzU0YWMuLmNiMzExNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva3MwMTA4LmgKKysrIGIvaW5jbHVkZS9saW51eC9rczAxMDguaApAQCAtNCw3ICs0LDcgQEAKICAqIERlc2NyaXB0aW9uOiBrczAxMDggTENEIENvbnRyb2xsZXIgZHJpdmVyIGhlYWRlcgogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKgotICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KKyAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcwogICogICAgICAgIERhdGU6IDIwMDYtMTAtMzEKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaCBiL2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaAppbmRleCAzOTg5Nzg5Li5kZTlkMWRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKKysrIGIvaW5jbHVkZS9saW51eC9rdm1faG9zdC5oCkBAIC0zMyw2ICszMyw3IEBACiAjZGVmaW5lIEtWTV9SRVFfUkVQT1JUX1RQUl9BQ0NFU1MgIDIKICNkZWZpbmUgS1ZNX1JFUV9NTVVfUkVMT0FEICAgICAgICAgMwogI2RlZmluZSBLVk1fUkVRX1RSSVBMRV9GQVVMVCAgICAgICA0CisjZGVmaW5lIEtWTV9SRVFfUEVORElOR19USU1FUiAgICAgIDUKIAogc3RydWN0IGt2bV92Y3B1OwogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICprdm1fdmNwdV9jYWNoZTsKQEAgLTI5Nyw3ICsyOTgsNyBAQAogCXJldHVybiAoZ3BhX3QpZ2ZuIDw8IFBBR0VfU0hJRlQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fbWlncmF0ZV9hcGljX3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBrdm1fbWlncmF0ZV90aW1lcnMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXNldF9iaXQoS1ZNX1JFUV9NSUdSQVRFX1RJTUVSLCAmdmNwdS0+cmVxdWVzdHMpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saW5rYWdlLmggYi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaAppbmRleCAyMTE5NjEwLi41NmJhMzczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaApAQCAtMSw4ICsxLDExIEBACiAjaWZuZGVmIF9MSU5VWF9MSU5LQUdFX0gKICNkZWZpbmUgX0xJTlVYX0xJTktBR0VfSAogCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxhc20vbGlua2FnZS5oPgogCisjZGVmaW5lIG5vdHJhY2UgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpCisKICNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBDUFBfQVNNTElOS0FHRSBleHRlcm4gIkMiCiAjZWxzZQpAQCAtMTcsNiArMjAsOSBAQAogIyBkZWZpbmUgYXNtcmVncGFybQogI2VuZGlmCiAKKyNkZWZpbmUgX19wYWdlX2FsaWduZWRfZGF0YQlfX3NlY3Rpb24oLmRhdGEucGFnZV9hbGlnbmVkKSBfX2FsaWduZWQoUEFHRV9TSVpFKQorI2RlZmluZSBfX3BhZ2VfYWxpZ25lZF9ic3MJX19zZWN0aW9uKC5ic3MucGFnZV9hbGlnbmVkKSBfX2FsaWduZWQoUEFHRV9TSVpFKQorCiAvKgogICogVGhpcyBpcyB1c2VkIGJ5IGFyY2hpdGVjdHVyZXMgdG8ga2VlcCBhcmd1bWVudHMgb24gdGhlIHN0YWNrCiAgKiB1bnRvdWNoZWQgYnkgdGhlIGNvbXBpbGVyIGJ5IGtlZXBpbmcgdGhlbSBsaXZlIHVudGlsIHRoZSBlbmQuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCBiL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oCmluZGV4IDRjNGQyMzYuLjI0ODZlYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oCisrKyBiL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oCkBAIC0xODIsNiArMTgyLDkgQEAKICAqIFdlIHJlY29yZCBsb2NrIGRlcGVuZGVuY3kgY2hhaW5zLCBzbyB0aGF0IHdlIGNhbiBjYWNoZSB0aGVtOgogICovCiBzdHJ1Y3QgbG9ja19jaGFpbiB7CisJdTgJCQkJaXJxX2NvbnRleHQ7CisJdTgJCQkJZGVwdGg7CisJdTE2CQkJCWJhc2U7CiAJc3RydWN0IGxpc3RfaGVhZAkJZW50cnk7CiAJdTY0CQkJCWNoYWluX2tleTsKIH07CkBAIC0yNzYsMTQgKzI3OSw2IEBACiAJCQkJIChsb2NrKS0+ZGVwX21hcC5rZXksIHN1YikKIAogLyoKLSAqIFRvIGluaXRpYWxpemUgYSBsb2NrZGVwX21hcCBzdGF0aWNhbGx5IHVzZSB0aGlzIG1hY3JvLgotICogTm90ZSB0aGF0IF9uYW1lIG11c3Qgbm90IGJlIE5VTEwuCi0gKi8KLSNkZWZpbmUgU1RBVElDX0xPQ0tERVBfTUFQX0lOSVQoX25hbWUsIF9rZXkpIFwKLQl7IC5uYW1lID0gKF9uYW1lKSwgLmtleSA9ICh2b2lkICopKF9rZXkpLCB9Ci0KLQotLyoKICAqIEFjcXVpcmUgYSBsb2NrLgogICoKICAqIFZhbHVlcyBmb3IgInJlYWQiOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tYXJrZXIuaCBiL2luY2x1ZGUvbGludXgvbWFya2VyLmgKaW5kZXggNDMwZjZhZC4uMTI5MDY1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tYXJrZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21hcmtlci5oCkBAIC00NCw4ICs0NCw4IEBACiAJCQkJICovCiAJY2hhciBzdGF0ZTsJCS8qIE1hcmtlciBzdGF0ZS4gKi8KIAljaGFyIHB0eXBlOwkJLyogcHJvYmUgdHlwZSA6IDAgOiBzaW5nbGUsIDEgOiBtdWx0aSAqLwotCXZvaWQgKCpjYWxsKShjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwJLyogUHJvYmUgd3JhcHBlciAqLwotCQl2b2lkICpjYWxsX3ByaXZhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKwkJCQkvKiBQcm9iZSB3cmFwcGVyICovCisJdm9pZCAoKmNhbGwpKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLCB2b2lkICpjYWxsX3ByaXZhdGUsIC4uLik7CiAJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlIHNpbmdsZTsKIAlzdHJ1Y3QgbWFya2VyX3Byb2JlX2Nsb3N1cmUgKm11bHRpOwogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CkBAIC01OCw4ICs1OCwxMiBAQAogICogTWFrZSBzdXJlIHRoZSBhbGlnbm1lbnQgb2YgdGhlIHN0cnVjdHVyZSBpbiB0aGUgX19tYXJrZXJzIHNlY3Rpb24gd2lsbAogICogbm90IGFkZCB1bndhbnRlZCBwYWRkaW5nIGJldHdlZW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VjdGlvbiBhbmQgdGhlCiAgKiBzdHJ1Y3R1cmUuIEZvcmNlIGFsaWdubWVudCB0byB0aGUgc2FtZSBhbGlnbm1lbnQgYXMgdGhlIHNlY3Rpb24gc3RhcnQuCisgKgorICogVGhlICJnZW5lcmljIiBhcmd1bWVudCBjb250cm9scyB3aGljaCBtYXJrZXIgZW5hYmxpbmcgbWVjaGFuaXNtIG11c3QgYmUgdXNlZC4KKyAqIElmIGdlbmVyaWMgaXMgdHJ1ZSwgYSB2YXJpYWJsZSByZWFkIGlzIHVzZWQuCisgKiBJZiBnZW5lcmljIGlzIGZhbHNlLCBpbW1lZGlhdGUgdmFsdWVzIGFyZSB1c2VkLgogICovCi0jZGVmaW5lIF9fdHJhY2VfbWFyayhuYW1lLCBjYWxsX3ByaXZhdGUsIGZvcm1hdCwgYXJncy4uLikJCVwKKyNkZWZpbmUgX190cmFjZV9tYXJrKGdlbmVyaWMsIG5hbWUsIGNhbGxfcHJpdmF0ZSwgZm9ybWF0LCBhcmdzLi4uKQlcCiAJZG8gewkJCQkJCQkJXAogCQlzdGF0aWMgY29uc3QgY2hhciBfX21zdHJ0YWJfIyNuYW1lW10JCQlcCiAJCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fbWFya2Vyc19zdHJpbmdzIikpKQkJXApAQCAtNzIsMTUgKzc2LDE0IEBACiAJCV9fbWFya19jaGVja19mb3JtYXQoZm9ybWF0LCAjIyBhcmdzKTsJCQlcCiAJCWlmICh1bmxpa2VseShfX21hcmtfIyNuYW1lLnN0YXRlKSkgewkJCVwKIAkJCSgqX19tYXJrXyMjbmFtZS5jYWxsKQkJCQlcCi0JCQkJKCZfX21hcmtfIyNuYW1lLCBjYWxsX3ByaXZhdGUsCQlcCi0JCQkJZm9ybWF0LCAjIyBhcmdzKTsJCQlcCisJCQkJKCZfX21hcmtfIyNuYW1lLCBjYWxsX3ByaXZhdGUsICMjIGFyZ3MpO1wKIAkJfQkJCQkJCQlcCiAJfSB3aGlsZSAoMCkKIAogZXh0ZXJuIHZvaWQgbWFya2VyX3VwZGF0ZV9wcm9iZV9yYW5nZShzdHJ1Y3QgbWFya2VyICpiZWdpbiwKIAlzdHJ1Y3QgbWFya2VyICplbmQpOwogI2Vsc2UgLyogIUNPTkZJR19NQVJLRVJTICovCi0jZGVmaW5lIF9fdHJhY2VfbWFyayhuYW1lLCBjYWxsX3ByaXZhdGUsIGZvcm1hdCwgYXJncy4uLikgXAorI2RlZmluZSBfX3RyYWNlX21hcmsoZ2VuZXJpYywgbmFtZSwgY2FsbF9wcml2YXRlLCBmb3JtYXQsIGFyZ3MuLi4pIFwKIAkJX19tYXJrX2NoZWNrX2Zvcm1hdChmb3JtYXQsICMjIGFyZ3MpCiBzdGF0aWMgaW5saW5lIHZvaWQgbWFya2VyX3VwZGF0ZV9wcm9iZV9yYW5nZShzdHJ1Y3QgbWFya2VyICpiZWdpbiwKIAlzdHJ1Y3QgbWFya2VyICplbmQpCkBAIC04OCwxNSArOTEsMzAgQEAKICNlbmRpZiAvKiBDT05GSUdfTUFSS0VSUyAqLwogCiAvKioKLSAqIHRyYWNlX21hcmsgLSBNYXJrZXIKKyAqIHRyYWNlX21hcmsgLSBNYXJrZXIgdXNpbmcgY29kZSBwYXRjaGluZwogICogQG5hbWU6IG1hcmtlciBuYW1lLCBub3QgcXVvdGVkLgogICogQGZvcm1hdDogZm9ybWF0IHN0cmluZwogICogQGFyZ3MuLi46IHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QKICAqCi0gKiBQbGFjZXMgYSBtYXJrZXIuCisgKiBQbGFjZXMgYSBtYXJrZXIgdXNpbmcgb3B0aW1pemVkIGNvZGUgcGF0Y2hpbmcgdGVjaG5pcXVlIChpbXZfcmVhZCgpKQorICogdG8gYmUgZW5hYmxlZCB3aGVuIGltbWVkaWF0ZSB2YWx1ZXMgYXJlIHByZXNlbnQuCiAgKi8KICNkZWZpbmUgdHJhY2VfbWFyayhuYW1lLCBmb3JtYXQsIGFyZ3MuLi4pIFwKLQlfX3RyYWNlX21hcmsobmFtZSwgTlVMTCwgZm9ybWF0LCAjIyBhcmdzKQorCV9fdHJhY2VfbWFyaygwLCBuYW1lLCBOVUxMLCBmb3JtYXQsICMjIGFyZ3MpCisKKy8qKgorICogX3RyYWNlX21hcmsgLSBNYXJrZXIgdXNpbmcgdmFyaWFibGUgcmVhZAorICogQG5hbWU6IG1hcmtlciBuYW1lLCBub3QgcXVvdGVkLgorICogQGZvcm1hdDogZm9ybWF0IHN0cmluZworICogQGFyZ3MuLi46IHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QKKyAqCisgKiBQbGFjZXMgYSBtYXJrZXIgdXNpbmcgYSBzdGFuZGFyZCBtZW1vcnkgcmVhZCAoX2ltdl9yZWFkKCkpIHRvIGJlCisgKiBlbmFibGVkLiBTaG91bGQgYmUgdXNlZCBmb3IgbWFya2VycyBpbiBjb2RlIHBhdGhzIHdoZXJlIGluc3RydWN0aW9uCisgKiBtb2RpZmljYXRpb24gYmFzZWQgZW5hYmxpbmcgaXMgbm90IHdlbGNvbWUuIChfX2luaXQgYW5kIF9fZXhpdCBmdW5jdGlvbnMsCisgKiBsb2NrZGVwLCBzb21lIHRyYXBzLCBwcmludGspLgorICovCisjZGVmaW5lIF90cmFjZV9tYXJrKG5hbWUsIGZvcm1hdCwgYXJncy4uLikgXAorCV9fdHJhY2VfbWFyaygxLCBuYW1lLCBOVUxMLCBmb3JtYXQsICMjIGFyZ3MpCiAKIC8qKgogICogTUFSS19OT0FSR1MgLSBGb3JtYXQgc3RyaW5nIGZvciBhIG1hcmtlciB3aXRoIG5vIGFyZ3VtZW50LgpAQCAtMTE3LDkgKzEzNSw5IEBACiBleHRlcm4gbWFya2VyX3Byb2JlX2Z1bmMgX19tYXJrX2VtcHR5X2Z1bmN0aW9uOwogCiBleHRlcm4gdm9pZCBtYXJrZXJfcHJvYmVfY2IoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCi0Jdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CisJdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pOwogZXh0ZXJuIHZvaWQgbWFya2VyX3Byb2JlX2NiX25vYXJnKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLAotCXZvaWQgKmNhbGxfcHJpdmF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCXZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKTsKIAogLyoKICAqIENvbm5lY3QgYSBwcm9iZSB0byBhIG1hcmtlci4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWF0aDY0LmggYi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oCmluZGV4IGMxYTVmODEuLmM4N2YxNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWF0aDY0LmgKKysrIGIvaW5jbHVkZS9saW51eC9tYXRoNjQuaApAQCAtODEsNCArODEsMjUgQEAKIH0KICNlbmRpZgogCit1MzIgaXRlcl9kaXZfdTY0X3JlbSh1NjQgZGl2aWRlbmQsIHUzMiBkaXZpc29yLCB1NjQgKnJlbWFpbmRlcik7CisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdTMyCitfX2l0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTY0ICpyZW1haW5kZXIpCit7CisJdTMyIHJldCA9IDA7CisKKwl3aGlsZSAoZGl2aWRlbmQgPj0gZGl2aXNvcikgeworCQkvKiBUaGUgZm9sbG93aW5nIGFzbSgpIHByZXZlbnRzIHRoZSBjb21waWxlciBmcm9tCisJCSAgIG9wdGltaXNpbmcgdGhpcyBsb29wIGludG8gYSBtb2R1bG8gb3BlcmF0aW9uLiAgKi8KKwkJYXNtKCIiIDogIitybSIoZGl2aWRlbmQpKTsKKworCQlkaXZpZGVuZCAtPSBkaXZpc29yOworCQlyZXQrKzsKKwl9CisKKwkqcmVtYWluZGVyID0gZGl2aWRlbmQ7CisKKwlyZXR1cm4gcmV0OworfQorCiAjZW5kaWYgLyogX0xJTlVYX01BVEg2NF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmggYi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgKaW5kZXggNzNlMzU4Ni4uZWE5ZjVhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oCisrKyBiL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaApAQCAtNzcsMTQgKzc3LDYgQEAKIGV4dGVybiBpbnQgX19yZW1vdmVfcGFnZXMoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwogCi0vKgotICogV2FsayB0aHJvdWdoIGFsbCBtZW1vcnkgd2hpY2ggaXMgcmVnaXN0ZXJlZCBhcyByZXNvdXJjZS4KLSAqIGFyZyBpcyAoc3RhcnRfcGZuLCBucl9wYWdlcywgcHJpdmF0ZV9hcmdfcG9pbnRlcikKLSAqLwotZXh0ZXJuIGludCB3YWxrX21lbW9yeV9yZXNvdXJjZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKLQkJCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsIHZvaWQgKmFyZywKLQkJCWludCAoKmZ1bmMpKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKikpOwotCiAjaWZkZWYgQ09ORklHX05VTUEKIGV4dGVybiBpbnQgbWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQodTY0IHN0YXJ0KTsKICNlbHNlCkBAIC0xOTksNiArMTkxLDE0IEBACiAKICNlbmRpZiAvKiAhIENPTkZJR19NRU1PUllfSE9UUExVRyAqLwogCisvKgorICogV2FsayB0aHJvdWdoIGFsbCBtZW1vcnkgd2hpY2ggaXMgcmVnaXN0ZXJlZCBhcyByZXNvdXJjZS4KKyAqIGFyZyBpcyAoc3RhcnRfcGZuLCBucl9wYWdlcywgcHJpdmF0ZV9hcmdfcG9pbnRlcikKKyAqLworZXh0ZXJuIGludCB3YWxrX21lbW9yeV9yZXNvdXJjZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsIHZvaWQgKmFyZywKKwkJCWludCAoKmZ1bmMpKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKikpOworCiBleHRlcm4gaW50IGFkZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CiBleHRlcm4gaW50IGFyY2hfYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2NCBzaXplKTsKIGV4dGVybiBpbnQgcmVtb3ZlX21lbW9yeSh1NjQgc3RhcnQsIHU2NCBzaXplKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NC9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbWx4NC9kZXZpY2UuaAppbmRleCBhNzQ0MzgzLi44MWIzZGQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDQvZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbHg0L2RldmljZS5oCkBAIC0zOTgsNyArMzk4LDggQEAKIGludCBtbHg0X0lOSVRfUE9SVChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgaW50IHBvcnQpOwogaW50IG1seDRfQ0xPU0VfUE9SVChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgaW50IHBvcnQpOwogCi1pbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0pOworaW50IG1seDRfbXVsdGljYXN0X2F0dGFjaChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfcXAgKnFwLCB1OCBnaWRbMTZdLAorCQkJICBpbnQgYmxvY2tfbWNhc3RfbG9vcGJhY2spOwogaW50IG1seDRfbXVsdGljYXN0X2RldGFjaChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfcXAgKnFwLCB1OCBnaWRbMTZdKTsKIAogaW50IG1seDRfbWFwX3BoeXNfZm1yKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9mbXIgKmZtciwgdTY0ICpwYWdlX2xpc3QsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXggYzMxYTljZC4uY2YxY2QzYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtNzYwLDE2ICs3NjAsMTcgQEAKICAqIChzZWUgd2Fsa19wYWdlX3JhbmdlIGZvciBtb3JlIGRldGFpbHMpCiAgKi8KIHN0cnVjdCBtbV93YWxrIHsKLQlpbnQgKCpwZ2RfZW50cnkpKHBnZF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7Ci0JaW50ICgqcHVkX2VudHJ5KShwdWRfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwotCWludCAoKnBtZF9lbnRyeSkocG1kX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdm9pZCAqKTsKLQlpbnQgKCpwdGVfZW50cnkpKHB0ZV90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7Ci0JaW50ICgqcHRlX2hvbGUpKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CisJaW50ICgqcGdkX2VudHJ5KShwZ2RfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3QgbW1fd2FsayAqKTsKKwlpbnQgKCpwdWRfZW50cnkpKHB1ZF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVjdCBtbV93YWxrICopOworCWludCAoKnBtZF9lbnRyeSkocG1kX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgc3RydWN0IG1tX3dhbGsgKik7CisJaW50ICgqcHRlX2VudHJ5KShwdGVfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3QgbW1fd2FsayAqKTsKKwlpbnQgKCpwdGVfaG9sZSkodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgc3RydWN0IG1tX3dhbGsgKik7CisJc3RydWN0IG1tX3N0cnVjdCAqbW07CisJdm9pZCAqcHJpdmF0ZTsKIH07CiAKLWludCB3YWxrX3BhZ2VfcmFuZ2UoY29uc3Qgc3RydWN0IG1tX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCSAgICB1bnNpZ25lZCBsb25nIGVuZCwgY29uc3Qgc3RydWN0IG1tX3dhbGsgKndhbGssCi0JCSAgICB2b2lkICpwcml2YXRlKTsKK2ludCB3YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJc3RydWN0IG1tX3dhbGsgKndhbGspOwogdm9pZCBmcmVlX3BnZF9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqKnRsYiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQl1bnNpZ25lZCBsb25nIGVuZCwgdW5zaWduZWQgbG9uZyBmbG9vciwgdW5zaWduZWQgbG9uZyBjZWlsaW5nKTsKIHZvaWQgZnJlZV9wZ3RhYmxlcyhzdHJ1Y3QgbW11X2dhdGhlciAqKnRsYiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpzdGFydF92bWEsCkBAIC05OTcsOCArOTk4LDggQEAKIGV4dGVybiB2b2lkIGZyZWVfYXJlYV9pbml0X25vZGVzKHVuc2lnbmVkIGxvbmcgKm1heF96b25lX3Bmbik7CiBleHRlcm4gdm9pZCBhZGRfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwotZXh0ZXJuIHZvaWQgc2hyaW5rX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIG9sZF9lbmRfcGZuLAotCQkJCQkJdW5zaWduZWQgbG9uZyBuZXdfZW5kX3Bmbik7CitleHRlcm4gdm9pZCByZW1vdmVfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHZvaWQgcHVzaF9ub2RlX2JvdW5kYXJpZXModW5zaWduZWQgaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAJCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CiBleHRlcm4gdm9pZCByZW1vdmVfYWxsX2FjdGl2ZV9yYW5nZXModm9pZCk7CkBAIC0xMDEwLDYgKzEwMTEsOCBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9tYXhfcGZuX3dpdGhfYWN0aXZlX3JlZ2lvbnModm9pZCk7CiBleHRlcm4gdm9pZCBmcmVlX2Jvb3RtZW1fd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLAogCQkJCQkJdW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbik7Cit0eXBlZGVmIGludCAoKndvcmtfZm5fdCkodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdm9pZCAqKTsKK2V4dGVybiB2b2lkIHdvcmtfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB3b3JrX2ZuX3Qgd29ya19mbiwgdm9pZCAqZGF0YSk7CiBleHRlcm4gdm9pZCBzcGFyc2VfbWVtb3J5X3ByZXNlbnRfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkKTsKICNpZm5kZWYgQ09ORklHX0hBVkVfQVJDSF9FQVJMWV9QRk5fVE9fTklECiBleHRlcm4gaW50IGVhcmx5X3Bmbl90b19uaWQodW5zaWduZWQgbG9uZyBwZm4pOwpAQCAtMTAyMyw2ICsxMDI2LDcgQEAKIGV4dGVybiB2b2lkIHNob3dfbWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2lfbWVtaW5mbyhzdHJ1Y3Qgc3lzaW5mbyAqIHZhbCk7CiBleHRlcm4gdm9pZCBzaV9tZW1pbmZvX25vZGUoc3RydWN0IHN5c2luZm8gKnZhbCwgaW50IG5pZCk7CitleHRlcm4gaW50IGFmdGVyX2Jvb3RtZW07CiAKICNpZmRlZiBDT05GSUdfTlVNQQogZXh0ZXJuIHZvaWQgc2V0dXBfcGVyX2NwdV9wYWdlc2V0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbWlvdHJhY2UuaCBiL2luY2x1ZGUvbGludXgvbW1pb3RyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkMTllMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbW1pb3RyYWNlLmgKQEAgLTAsMCArMSw4NSBAQAorI2lmbmRlZiBNTUlPVFJBQ0VfSAorI2RlZmluZSBNTUlPVFJBQ0VfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKK3N0cnVjdCBrbW1pb19wcm9iZTsKK3N0cnVjdCBwdF9yZWdzOworCit0eXBlZGVmIHZvaWQgKCprbW1pb19wcmVfaGFuZGxlcl90KShzdHJ1Y3Qga21taW9fcHJvYmUgKiwKKwkJCQlzdHJ1Y3QgcHRfcmVncyAqLCB1bnNpZ25lZCBsb25nIGFkZHIpOwordHlwZWRlZiB2b2lkICgqa21taW9fcG9zdF9oYW5kbGVyX3QpKHN0cnVjdCBrbW1pb19wcm9iZSAqLAorCQkJCXVuc2lnbmVkIGxvbmcgY29uZGl0aW9uLCBzdHJ1Y3QgcHRfcmVncyAqKTsKKworc3RydWN0IGttbWlvX3Byb2JlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7IC8qIGttbWlvIGludGVybmFsIGxpc3QgKi8KKwl1bnNpZ25lZCBsb25nIGFkZHI7IC8qIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBwcm9iZSBwb2ludCAqLworCXVuc2lnbmVkIGxvbmcgbGVuOyAvKiBsZW5ndGggb2YgdGhlIHByb2JlIHJlZ2lvbiAqLworCWttbWlvX3ByZV9oYW5kbGVyX3QgcHJlX2hhbmRsZXI7IC8qIENhbGxlZCBiZWZvcmUgYWRkciBpcyBleGVjdXRlZC4gKi8KKwlrbW1pb19wb3N0X2hhbmRsZXJfdCBwb3N0X2hhbmRsZXI7IC8qIENhbGxlZCBhZnRlciBhZGRyIGlzIGV4ZWN1dGVkICovCisJdm9pZCAqcHJpdmF0ZTsKK307CisKKy8qIGttbWlvIGlzIGFjdGl2ZSBieSBzb21lIGttbWlvX3Byb2Jlcz8gKi8KK3N0YXRpYyBpbmxpbmUgaW50IGlzX2ttbWlvX2FjdGl2ZSh2b2lkKQoreworCWV4dGVybiB1bnNpZ25lZCBpbnQga21taW9fY291bnQ7CisJcmV0dXJuIGttbWlvX2NvdW50OworfQorCitleHRlcm4gaW50IHJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCk7CitleHRlcm4gdm9pZCB1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCk7CisKKy8qIENhbGxlZCBmcm9tIHBhZ2UgZmF1bHQgaGFuZGxlci4gKi8KK2V4dGVybiBpbnQga21taW9faGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKTsKKworLyogQ2FsbGVkIGZyb20gaW9yZW1hcC5jICovCisjaWZkZWYgQ09ORklHX01NSU9UUkFDRQorZXh0ZXJuIHZvaWQgbW1pb3RyYWNlX2lvcmVtYXAocmVzb3VyY2Vfc2l6ZV90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJCXZvaWQgX19pb21lbSAqYWRkcik7CitleHRlcm4gdm9pZCBtbWlvdHJhY2VfaW91bm1hcCh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBtbWlvdHJhY2VfaW9yZW1hcChyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LAorCQkJCQl1bnNpZ25lZCBsb25nIHNpemUsIHZvaWQgX19pb21lbSAqYWRkcikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIG1taW90cmFjZV9pb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfTU1JT1RSQUNFX0hPT0tTICovCisKK2VudW0gbW1faW9fb3Bjb2RlIHsKKwlNTUlPX1JFQUQgPSAweDEsICAgICAvKiBzdHJ1Y3QgbW1pb3RyYWNlX3J3ICovCisJTU1JT19XUklURSA9IDB4MiwgICAgLyogc3RydWN0IG1taW90cmFjZV9ydyAqLworCU1NSU9fUFJPQkUgPSAweDMsICAgIC8qIHN0cnVjdCBtbWlvdHJhY2VfbWFwICovCisJTU1JT19VTlBST0JFID0gMHg0LCAgLyogc3RydWN0IG1taW90cmFjZV9tYXAgKi8KKwlNTUlPX01BUktFUiA9IDB4NSwgICAvKiByYXcgY2hhciBkYXRhICovCisJTU1JT19VTktOT1dOX09QID0gMHg2LCAvKiBzdHJ1Y3QgbW1pb3RyYWNlX3J3ICovCit9OworCitzdHJ1Y3QgbW1pb3RyYWNlX3J3IHsKKwlyZXNvdXJjZV9zaXplX3QgcGh5czsJLyogUENJIGFkZHJlc3Mgb2YgcmVnaXN0ZXIgKi8KKwl1bnNpZ25lZCBsb25nIHZhbHVlOworCXVuc2lnbmVkIGxvbmcgcGM7CS8qIG9wdGlvbmFsIHByb2dyYW0gY291bnRlciAqLworCWludCBtYXBfaWQ7CisJdW5zaWduZWQgY2hhciBvcGNvZGU7CS8qIG9uZSBvZiBNTUlPX3tSRUFELFdSSVRFLFVOS05PV05fT1B9ICovCisJdW5zaWduZWQgY2hhciB3aWR0aDsJLyogc2l6ZSBvZiByZWdpc3RlciBhY2Nlc3MgaW4gYnl0ZXMgKi8KK307CisKK3N0cnVjdCBtbWlvdHJhY2VfbWFwIHsKKwlyZXNvdXJjZV9zaXplX3QgcGh5czsJLyogYmFzZSBhZGRyZXNzIGluIFBDSSBzcGFjZSAqLworCXVuc2lnbmVkIGxvbmcgdmlydDsJLyogYmFzZSB2aXJ0dWFsIGFkZHJlc3MgKi8KKwl1bnNpZ25lZCBsb25nIGxlbjsJLyogbWFwcGluZyBzaXplICovCisJaW50IG1hcF9pZDsKKwl1bnNpZ25lZCBjaGFyIG9wY29kZTsJLyogTU1JT19QUk9CRSBvciBNTUlPX1VOUFJPQkUgKi8KK307CisKKy8qIGluIGtlcm5lbC90cmFjZS90cmFjZV9tbWlvdHJhY2UuYyAqLworZXh0ZXJuIHZvaWQgZW5hYmxlX21taW90cmFjZSh2b2lkKTsKK2V4dGVybiB2b2lkIGRpc2FibGVfbW1pb3RyYWNlKHZvaWQpOworZXh0ZXJuIHZvaWQgbW1pb190cmFjZV9ydyhzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpydyk7CitleHRlcm4gdm9pZCBtbWlvX3RyYWNlX21hcHBpbmcoc3RydWN0IG1taW90cmFjZV9tYXAgKm1hcCk7CisKKyNlbmRpZiAvKiBNTUlPVFJBQ0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaCBiL2luY2x1ZGUvbGludXgvbW9kX2RldmljZXRhYmxlLmgKaW5kZXggNjliMjM0Mi4uYzRkYjU4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oCkBAIC0xNTksNiArMTU5LDE1IEBACiAKICNkZWZpbmUgQVBfREVWSUNFX0lEX01BVENIX0RFVklDRV9UWVBFCQkweDAxCiAKKy8qIHMzOTAgY3NzIGJ1cyBkZXZpY2VzIChzdWJjaGFubmVscykgKi8KK3N0cnVjdCBjc3NfZGV2aWNlX2lkIHsKKwlfX3U4IG1hdGNoX2ZsYWdzOworCV9fdTggdHlwZTsgLyogc3ViY2hhbm5lbCB0eXBlICovCisJX191MTYgcGFkMjsKKwlfX3UzMiBwYWQzOworCWtlcm5lbF91bG9uZ190IGRyaXZlcl9kYXRhOworfTsKKwogI2RlZmluZSBBQ1BJX0lEX0xFTgkxNiAvKiBvbmx5IDkgYnl0ZXMgbmVlZGVkIGhlcmUsIDE2IGJ5dGVzIGFyZSB1c2VkICovCiAJCQkgICAvKiB0byB3b3JrYXJvdW5kIGNyb3NzY29tcGlsZSBpc3N1ZXMgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tcGFnZS5oIGIvaW5jbHVkZS9saW51eC9tcGFnZS5oCmluZGV4IDA2OGEwYzkuLjVjNDI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXBhZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L21wYWdlLmgKQEAgLTExLDExICsxMSwyMSBAQAogICovCiAjaWZkZWYgQ09ORklHX0JMT0NLCiAKK3N0cnVjdCBtcGFnZV9kYXRhIHsKKwlzdHJ1Y3QgYmlvICpiaW87CisJc2VjdG9yX3QgbGFzdF9ibG9ja19pbl9iaW87CisJZ2V0X2Jsb2NrX3QgKmdldF9ibG9jazsKKwl1bnNpZ25lZCB1c2Vfd3JpdGVwYWdlOworfTsKKwogc3RydWN0IHdyaXRlYmFja19jb250cm9sOwogCitzdHJ1Y3QgYmlvICptcGFnZV9iaW9fc3VibWl0KGludCBydywgc3RydWN0IGJpbyAqYmlvKTsKIGludCBtcGFnZV9yZWFkcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VzLAogCQkJCXVuc2lnbmVkIG5yX3BhZ2VzLCBnZXRfYmxvY2tfdCBnZXRfYmxvY2spOwogaW50IG1wYWdlX3JlYWRwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBnZXRfYmxvY2tfdCBnZXRfYmxvY2spOworaW50IF9fbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywKKwkJICAgICAgdm9pZCAqZGF0YSk7CiBpbnQgbXBhZ2Vfd3JpdGVwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsIGdldF9ibG9ja190IGdldF9ibG9jayk7CiBpbnQgbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tc2Rvc19mcy5oIGIvaW5jbHVkZS9saW51eC9tc2Rvc19mcy5oCmluZGV4IGIwM2IyNzQuLjgxY2QzNmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXNkb3NfZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzLmgKQEAgLTU3LDEyICs1Nyw2IEBACiAjZGVmaW5lIE1TRE9TX0RPVAkiLiAgICAgICAgICAiCS8qICIuIiwgcGFkZGVkIHRvIE1TRE9TX05BTUUgY2hhcnMgKi8KICNkZWZpbmUgTVNET1NfRE9URE9UCSIuLiAgICAgICAgICIJLyogIi4uIiwgcGFkZGVkIHRvIE1TRE9TX05BTUUgY2hhcnMgKi8KIAotLyogbWVkaWEgb2YgYm9vdCBzZWN0b3IgKi8KLXN0YXRpYyBpbmxpbmUgaW50IGZhdF92YWxpZF9tZWRpYSh1OCBtZWRpYSkKLXsKLQlyZXR1cm4gMHhmOCA8PSBtZWRpYSB8fCBtZWRpYSA9PSAweGYwOwotfQotCiAjZGVmaW5lIEZBVF9GSVJTVF9FTlQocywgeCkJKChNU0RPU19TQihzKS0+ZmF0X2JpdHMgPT0gMzIgPyAweDBGRkZGRjAwIDogXAogCU1TRE9TX1NCKHMpLT5mYXRfYml0cyA9PSAxNiA/IDB4RkYwMCA6IDB4RjAwKSB8ICh4KSkKIApAQCAtMzM0LDYgKzMyOCwxMiBAQAogI2VuZGlmCiB9CiAKKy8qIG1lZGlhIG9mIGJvb3Qgc2VjdG9yICovCitzdGF0aWMgaW5saW5lIGludCBmYXRfdmFsaWRfbWVkaWEodTggbWVkaWEpCit7CisJcmV0dXJuIDB4ZjggPD0gbWVkaWEgfHwgbWVkaWEgPT0gMHhmMDsKK30KKwogLyogZmF0L2NhY2hlLmMgKi8KIGV4dGVybiB2b2lkIGZhdF9jYWNoZV9pbnZhbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiBpbnQgZmF0X2dldF9jbHVzdGVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBjbHVzdGVyLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggZjI3ZmQyMC4uMjVmODcxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC04OCw2ICs4OCw4IEBACiAjZGVmaW5lIE5FVERFVl9UWF9CVVNZIDEJLyogZHJpdmVyIHR4IHBhdGggd2FzIGJ1c3kqLwogI2RlZmluZSBORVRERVZfVFhfTE9DS0VEIC0xCS8qIGRyaXZlciB0eCBsb2NrIHdhcyBhbHJlYWR5IHRha2VuICovCiAKKyNpZmRlZiAgX19LRVJORUxfXworCiAvKgogICoJQ29tcHV0ZSB0aGUgd29yc3QgY2FzZSBoZWFkZXIgbGVuZ3RoIGFjY29yZGluZyB0byB0aGUgcHJvdG9jb2xzCiAgKgl1c2VkLgpAQCAtMTE0LDYgKzExNiw4IEBACiAjZGVmaW5lIE1BWF9IRUFERVIgKExMX01BWF9IRUFERVIgKyA0OCkKICNlbmRpZgogCisjZW5kaWYgIC8qICBfX0tFUk5FTF9fICAqLworCiBzdHJ1Y3QgbmV0X2RldmljZV9zdWJxdWV1ZQogewogCS8qIEdpdmUgYSBjb250cm9sIHN0YXRlIGZvciBlYWNoIHF1ZXVlLiAgVGhpcyBzdHJ1Y3QgbWF5IGNvbnRhaW4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIGIvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKaW5kZXggNTkwY2ZmMy4uMGQyYTRlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKQEAgLTE1Nyw2ICsxNTcsNyBAQAogX19QQUdFRkxBRyhTbGFiLCBzbGFiKQogUEFHRUZMQUcoQ2hlY2tlZCwgb3duZXJfcHJpdl8xKQkJLyogVXNlZCBieSBzb21lIGZpbGVzeXN0ZW1zICovCiBQQUdFRkxBRyhQaW5uZWQsIG93bmVyX3ByaXZfMSkgVEVTVFNDRkxBRyhQaW5uZWQsIG93bmVyX3ByaXZfMSkgLyogWGVuICovCitQQUdFRkxBRyhTYXZlUGlubmVkLCBkaXJ0eSk7CQkJCQkvKiBYZW4gKi8KIFBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkgX19DTEVBUlBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkKIFBBR0VGTEFHKFByaXZhdGUsIHByaXZhdGUpIF9fQ0xFQVJQQUdFRkxBRyhQcml2YXRlLCBwcml2YXRlKQogCV9fU0VUUEFHRUZMQUcoUHJpdmF0ZSwgcHJpdmF0ZSkKQEAgLTMwNiw1ICszMDcsMjkgQEAKIH0KIAogI2VuZGlmIC8qICFQQUdFRkxBR1NfRVhURU5ERUQgKi8KKworI2RlZmluZSBQQUdFX0ZMQUdTCSgxIDw8IFBHX2xydSAgIHwgMSA8PCBQR19wcml2YXRlICAgfCAxIDw8IFBHX2xvY2tlZCB8IFwKKwkJCSAxIDw8IFBHX2J1ZGR5IHwgMSA8PCBQR193cml0ZWJhY2sgfCBcCisJCQkgMSA8PCBQR19zbGFiICB8IDEgPDwgUEdfc3dhcGNhY2hlIHwgMSA8PCBQR19hY3RpdmUpCisKKy8qCisgKiBGbGFncyBjaGVja2VkIGluIGJhZF9wYWdlKCkuICBQYWdlcyBvbiB0aGUgZnJlZSBsaXN0IHNob3VsZCBub3QgaGF2ZQorICogdGhlc2UgZmxhZ3Mgc2V0LiAgSXQgdGhleSBhcmUsIHRoZXJlIGlzIGEgcHJvYmxlbS4KKyAqLworI2RlZmluZSBQQUdFX0ZMQUdTX0NMRUFSX1dIRU5fQkFEIChQQUdFX0ZMQUdTIHwgMSA8PCBQR19yZWNsYWltIHwgMSA8PCBQR19kaXJ0eSkKKworLyoKKyAqIEZsYWdzIGNoZWNrZWQgd2hlbiBhIHBhZ2UgaXMgZnJlZWQuICBQYWdlcyBiZWluZyBmcmVlZCBzaG91bGQgbm90IGhhdmUKKyAqIHRoZXNlIGZsYWdzIHNldC4gIEl0IHRoZXkgYXJlLCB0aGVyZSBpcyBhIHByb2JsZW0uCisgKi8KKyNkZWZpbmUgUEFHRV9GTEFHU19DSEVDS19BVF9GUkVFIChQQUdFX0ZMQUdTIHwgMSA8PCBQR19yZXNlcnZlZCkKKworLyoKKyAqIEZsYWdzIGNoZWNrZWQgd2hlbiBhIHBhZ2UgaXMgcHJlcHBlZCBmb3IgcmV0dXJuIGJ5IHRoZSBwYWdlIGFsbG9jYXRvci4KKyAqIFBhZ2VzIGJlaW5nIHByZXBwZWQgc2hvdWxkIG5vdCBoYXZlIHRoZXNlIGZsYWdzIHNldC4gIEl0IHRoZXkgYXJlLCB0aGVyZQorICogaXMgYSBwcm9ibGVtLgorICovCisjZGVmaW5lIFBBR0VfRkxBR1NfQ0hFQ0tfQVRfUFJFUCAoUEFHRV9GTEFHUyB8IDEgPDwgUEdfcmVzZXJ2ZWQgfCAxIDw8IFBHX2RpcnR5KQorCiAjZW5kaWYgLyogIV9fR0VORVJBVElOR19CT1VORFNfSCAqLwogI2VuZGlmCS8qIFBBR0VfRkxBR1NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaCBiL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgKaW5kZXggZTg3NTkwNS4uZThjMDYxMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oCkBAIC0yNSwxMyArMjUsMTEgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKLS8qIE1hY3JvIHRvIGFpZCB0aGUgZGVmaW5pdGlvbiBvZiByYW5nZXMgb2YgYml0cyAqLwotI2RlZmluZSBQQl9yYW5nZShuYW1lLCByZXF1aXJlZF9iaXRzKSBcCi0JbmFtZSwgbmFtZSAjIyBfZW5kID0gKG5hbWUgKyByZXF1aXJlZF9iaXRzKSAtIDEKLQogLyogQml0IGluZGljZXMgdGhhdCBhZmZlY3QgYSB3aG9sZSBibG9jayBvZiBwYWdlcyAqLwogZW51bSBwYWdlYmxvY2tfYml0cyB7Ci0JUEJfcmFuZ2UoUEJfbWlncmF0ZSwgMyksIC8qIDMgYml0cyByZXF1aXJlZCBmb3IgbWlncmF0ZSB0eXBlcyAqLworCVBCX21pZ3JhdGUsCisJUEJfbWlncmF0ZV9lbmQgPSBQQl9taWdyYXRlICsgMyAtIDEsCisJCQkvKiAzIGJpdHMgcmVxdWlyZWQgZm9yIG1pZ3JhdGUgdHlwZXMgKi8KIAlOUl9QQUdFQkxPQ0tfQklUUwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGludXgvcGNpLmgKaW5kZXggNTA5MTU5Yi4uZDE4YjFkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2kuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS5oCkBAIC0yMDYsNiArMjA2LDcgQEAKIAlzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqcm9tX2F0dHI7IC8qIGF0dHJpYnV0ZSBkZXNjcmlwdG9yIGZvciBzeXNmcyBST00gZW50cnkgKi8KIAlpbnQgcm9tX2F0dHJfZW5hYmxlZDsJCS8qIGhhcyBkaXNwbGF5IG9mIHRoZSByb20gYXR0cmlidXRlIGJlZW4gZW5hYmxlZD8gKi8KIAlzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqcmVzX2F0dHJbREVWSUNFX0NPVU5UX1JFU09VUkNFXTsgLyogc3lzZnMgZmlsZSBmb3IgcmVzb3VyY2VzICovCisJc3RydWN0IGJpbl9hdHRyaWJ1dGUgKnJlc19hdHRyX3djW0RFVklDRV9DT1VOVF9SRVNPVVJDRV07IC8qIHN5c2ZzIGZpbGUgZm9yIFdDIG1hcHBpbmcgb2YgcmVzb3VyY2VzICovCiAjaWZkZWYgQ09ORklHX1BDSV9NU0kKIAlzdHJ1Y3QgbGlzdF9oZWFkIG1zaV9saXN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaCBiL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCmluZGV4IDliOTQwZTYuLjY1OTUzODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCkBAIC03MTYsNiArNzE2LDcgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9IUF9DSVNTQQkJMHgzMjIwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0MJCTB4MzIzMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0hQX0NJU1NECQkweDMyMzgKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9IUF9DSVNTRQkJMHgzMjNhCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSFBfWlgyX0lPQwkweDQwMzEKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1BDVEVDSAkJMHgxMDQyCkBAIC0xNTE5LDYgKzE1MjAsNyBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfR1Q2NDI2MAkweDY0MzAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9NQVJWRUxMX01WNjQzNjAJMHg2NDYwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUFSVkVMTF9NVjY0NDYwCTB4NjQ4MAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfQ0FGRV9TRAkweDQxMDEKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1YzCQkweDExYjAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9WM19WOTYwCQkweDAwMDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGVyY3B1X2NvdW50ZXIuaCBiL2luY2x1ZGUvbGludXgvcGVyY3B1X2NvdW50ZXIuaAppbmRleCA5MDA3Y2NkLi4yMDgzODg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oCkBAIC0zNSw3ICszNSw3IEBACiB2b2lkIHBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpOwogdm9pZCBwZXJjcHVfY291bnRlcl9zZXQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQpOwogdm9pZCBfX3BlcmNwdV9jb3VudGVyX2FkZChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IGFtb3VudCwgczMyIGJhdGNoKTsKLXM2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYyk7CitzNjQgX19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIGludCBzZXQpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQogewpAQCAtNDQsMTMgKzQ0LDE5IEBACiAKIHN0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bV9wb3NpdGl2ZShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKIHsKLQlzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKKwlzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjLCAwKTsKIAlyZXR1cm4gcmV0IDwgMCA/IDAgOiByZXQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bV9hbmRfc2V0KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoreworCXJldHVybiBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMsIDEpOworfQorCisKIHN0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKIHsKLQlyZXR1cm4gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKKwlyZXR1cm4gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjLCAwKTsKIH0KIAogc3RhdGljIGlubGluZSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIGIvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKaW5kZXggMjNmMGM1NC4uNzJiMWExMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKKysrIGIvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKQEAgLTEwLDcgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogCi0jaWZkZWYgQ09ORklHX0RFQlVHX1BSRUVNUFQKKyNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKSB8fCBkZWZpbmVkKENPTkZJR19QUkVFTVBUX1RSQUNFUikKICAgZXh0ZXJuIHZvaWQgYWRkX3ByZWVtcHRfY291bnQoaW50IHZhbCk7CiAgIGV4dGVybiB2b2lkIHN1Yl9wcmVlbXB0X2NvdW50KGludCB2YWwpOwogI2Vsc2UKQEAgLTUyLDYgKzUyLDM0IEBACiAJcHJlZW1wdF9jaGVja19yZXNjaGVkKCk7IFwKIH0gd2hpbGUgKDApCiAKKy8qIEZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNlciBpbnRlcm5hbHMgb25seSEgKi8KKyNkZWZpbmUgYWRkX3ByZWVtcHRfY291bnRfbm90cmFjZSh2YWwpCQkJXAorCWRvIHsgcHJlZW1wdF9jb3VudCgpICs9ICh2YWwpOyB9IHdoaWxlICgwKQorI2RlZmluZSBzdWJfcHJlZW1wdF9jb3VudF9ub3RyYWNlKHZhbCkJCQlcCisJZG8geyBwcmVlbXB0X2NvdW50KCkgLT0gKHZhbCk7IH0gd2hpbGUgKDApCisjZGVmaW5lIGluY19wcmVlbXB0X2NvdW50X25vdHJhY2UoKSBhZGRfcHJlZW1wdF9jb3VudF9ub3RyYWNlKDEpCisjZGVmaW5lIGRlY19wcmVlbXB0X2NvdW50X25vdHJhY2UoKSBzdWJfcHJlZW1wdF9jb3VudF9ub3RyYWNlKDEpCisKKyNkZWZpbmUgcHJlZW1wdF9kaXNhYmxlX25vdHJhY2UoKSBcCitkbyB7IFwKKwlpbmNfcHJlZW1wdF9jb3VudF9ub3RyYWNlKCk7IFwKKwliYXJyaWVyKCk7IFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCkgXAorZG8geyBcCisJYmFycmllcigpOyBcCisJZGVjX3ByZWVtcHRfY291bnRfbm90cmFjZSgpOyBcCit9IHdoaWxlICgwKQorCisvKiBwcmVlbXB0X2NoZWNrX3Jlc2NoZWQgaXMgT0sgdG8gdHJhY2UgKi8KKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm90cmFjZSgpIFwKK2RvIHsgXAorCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpOyBcCisJYmFycmllcigpOyBcCisJcHJlZW1wdF9jaGVja19yZXNjaGVkKCk7IFwKK30gd2hpbGUgKDApCisKICNlbHNlCiAKICNkZWZpbmUgcHJlZW1wdF9kaXNhYmxlKCkJCWRvIHsgfSB3aGlsZSAoMCkKQEAgLTU5LDYgKzg3LDEwIEBACiAjZGVmaW5lIHByZWVtcHRfZW5hYmxlKCkJCWRvIHsgfSB3aGlsZSAoMCkKICNkZWZpbmUgcHJlZW1wdF9jaGVja19yZXNjaGVkKCkJCWRvIHsgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBwcmVlbXB0X2Rpc2FibGVfbm90cmFjZSgpCQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm90cmFjZSgpCQlkbyB7IH0gd2hpbGUgKDApCisKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Byb2NfZnMuaCBiL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCmluZGV4IDk4ODNiYzkuLmZmZjFkMjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCkBAIC05LDYgKzksOCBAQAogCiBzdHJ1Y3QgbmV0Owogc3RydWN0IGNvbXBsZXRpb247CitzdHJ1Y3QgbW1fc3RydWN0OworCiAvKgogICogVGhlIHByb2MgZmlsZXN5c3RlbSBjb25zdGFudHMvc3RydWN0dXJlcwogICovCkBAIC0xMDEsOCArMTAzLDYgQEAKIGV4dGVybiB2b2lkIHByb2Nfcm9vdF9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgcHJvY19taXNjX2luaXQodm9pZCk7CiAKLXN0cnVjdCBtbV9zdHJ1Y3Q7Ci0KIHZvaWQgcHJvY19mbHVzaF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiBzdHJ1Y3QgZGVudHJ5ICpwcm9jX3BpZF9sb29rdXAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKiBkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKik7CiBpbnQgcHJvY19waWRfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbHAsIHZvaWQgKiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmggYi9pbmNsdWRlL2xpbnV4L3B0cmFjZS5oCmluZGV4IGY5ODUwMWIuLmM2ZjVmOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9wdHJhY2UuaApAQCAtOTUsOCArOTUsMTIgQEAKIAkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXdfcGFyZW50KTsKIGV4dGVybiB2b2lkIF9fcHRyYWNlX3VubGluayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKIGV4dGVybiB2b2lkIHB0cmFjZV91bnRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOwotZXh0ZXJuIGludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwotZXh0ZXJuIGludCBfX3B0cmFjZV9tYXlfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CisjZGVmaW5lIFBUUkFDRV9NT0RFX1JFQUQgICAxCisjZGVmaW5lIFBUUkFDRV9NT0RFX0FUVEFDSCAyCisvKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLWVycm5vIG9uIGRlbmlhbC4gKi8KK2V4dGVybiBpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKKy8qIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBkZW5pYWwuICovCitleHRlcm4gYm9vbCBwdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKIAogc3RhdGljIGlubGluZSBpbnQgcHRyYWNlX3JlcGFyZW50ZWQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHdtLmggYi9pbmNsdWRlL2xpbnV4L3B3bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDVmODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3B3bS5oCkBAIC0wLDAgKzEsMzEgQEAKKyNpZm5kZWYgX19MSU5VWF9QV01fSAorI2RlZmluZSBfX0xJTlVYX1BXTV9ICisKK3N0cnVjdCBwd21fZGV2aWNlOworCisvKgorICogcHdtX3JlcXVlc3QgLSByZXF1ZXN0IGEgUFdNIGRldmljZQorICovCitzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3JlcXVlc3QoaW50IHB3bV9pZCwgY29uc3QgY2hhciAqbGFiZWwpOworCisvKgorICogcHdtX2ZyZWUgLSBmcmVlIGEgUFdNIGRldmljZQorICovCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2NvbmZpZyAtIGNoYW5nZSBhIFBXTSBkZXZpY2UgY29uZmlndXJhdGlvbgorICovCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucyk7CisKKy8qCisgKiBwd21fZW5hYmxlIC0gc3RhcnQgYSBQV00gb3V0cHV0IHRvZ2dsaW5nCisgKi8KK2ludCBwd21fZW5hYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2Rpc2FibGUgLSBzdG9wIGEgUFdNIG91dHB1dCB0b2dnbGluZworICovCit2b2lkIHB3bV9kaXNhYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisjZW5kaWYgLyogX19BU01fQVJDSF9QV01fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmggYi9pbmNsdWRlL2xpbnV4L3B3bV9iYWNrbGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTk3NTRjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmgKQEAgLTAsMCArMSwxNyBAQAorLyoKKyAqIEdlbmVyaWMgUFdNIGJhY2tsaWdodCBkcml2ZXIgZGF0YSAtIHNlZSBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworICovCisjaWZuZGVmIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisjZGVmaW5lIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisKK3N0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgeworCWludCBwd21faWQ7CisJdW5zaWduZWQgaW50IG1heF9icmlnaHRuZXNzOworCXVuc2lnbmVkIGludCBkZnRfYnJpZ2h0bmVzczsKKwl1bnNpZ25lZCBpbnQgcHdtX3BlcmlvZF9uczsKKwlpbnQgKCppbml0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworCWludCAoKm5vdGlmeSkoaW50IGJyaWdodG5lc3MpOworCXZvaWQgKCpleGl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCBiL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZTQ1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgX0xJTlVYX1JDVUxJU1RfSAorI2RlZmluZSBfTElOVVhfUkNVTElTVF9ICisKKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNlbmRpZgkvKiBfTElOVVhfUkNVTElTVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc3VtZS10cmFjZS5oIGIvaW5jbHVkZS9saW51eC9yZXN1bWUtdHJhY2UuaAppbmRleCBmM2Y0ZjI4Li5jOWJhMmZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3Jlc3VtZS10cmFjZS5oCisrKyBiL2luY2x1ZGUvbGludXgvcmVzdW1lLXRyYWNlLmgKQEAgLTgsNyArOCw3IEBACiAKIHN0cnVjdCBkZXZpY2U7CiBleHRlcm4gdm9pZCBzZXRfdHJhY2VfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKik7Ci1leHRlcm4gdm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2Uodm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcik7CitleHRlcm4gdm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2UoY29uc3Qgdm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcik7CiAKICNkZWZpbmUgVFJBQ0VfREVWSUNFKGRldikgZG8geyBcCiAJaWYgKHBtX3RyYWNlX2VuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcnRuZXRsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3J0bmV0bGluay5oCmluZGV4IGEyYWVjMmMuLmIzNThjNzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcnRuZXRsaW5rLmgKKysrIGIvaW5jbHVkZS9saW51eC9ydG5ldGxpbmsuaApAQCAtMjQ2LDYgKzI0Niw3IEBACiB7CiAJUlRfVEFCTEVfVU5TUEVDPTAsCiAvKiBVc2VyIGRlZmluZWQgdmFsdWVzICovCisJUlRfVEFCTEVfQ09NUEFUPTI1MiwKIAlSVF9UQUJMRV9ERUZBVUxUPTI1MywKIAlSVF9UQUJMRV9NQUlOPTI1NCwKIAlSVF9UQUJMRV9MT0NBTD0yNTUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKaW5kZXggYWUwYmUzYy4uMjEzNDkxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbGludXgvc2NoZWQuaApAQCAtMTM0LDcgKzEzNCw2IEBACiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl91bmludGVycnVwdGlibGUodm9pZCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9hY3RpdmUodm9pZCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9pb3dhaXQodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyB3ZWlnaHRlZF9jcHVsb2FkKGNvbnN0IGludCBjcHUpOwogCiBzdHJ1Y3Qgc2VxX2ZpbGU7CiBzdHJ1Y3QgY2ZzX3JxOwpAQCAtMjQ2LDYgKzI0NSw4IEBACiBleHRlcm4gdm9pZCBpbml0X2lkbGUoc3RydWN0IHRhc2tfc3RydWN0ICppZGxlLCBpbnQgY3B1KTsKIGV4dGVybiB2b2lkIGluaXRfaWRsZV9ib290dXBfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpOwogCitleHRlcm4gaW50IHJ1bnF1ZXVlX2lzX2xvY2tlZCh2b2lkKTsKKwogZXh0ZXJuIGNwdW1hc2tfdCBub2h6X2NwdV9tYXNrOwogI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfTk9fSFopCiBleHRlcm4gaW50IHNlbGVjdF9ub2h6X2xvYWRfYmFsYW5jZXIoaW50IGNwdSk7CkBAIC03ODQsNiArNzg1LDggQEAKIAl1bnNpZ25lZCBpbnQgYmFsYW5jZV9pbnRlcnZhbDsJLyogaW5pdGlhbGlzZSB0byAxLiB1bml0cyBpbiBtcy4gKi8KIAl1bnNpZ25lZCBpbnQgbnJfYmFsYW5jZV9mYWlsZWQ7IC8qIGluaXRpYWxpc2UgdG8gMCAqLwogCisJdTY0IGxhc3RfdXBkYXRlOworCiAjaWZkZWYgQ09ORklHX1NDSEVEU1RBVFMKIAkvKiBsb2FkX2JhbGFuY2UoKSBzdGF0cyAqLwogCXVuc2lnbmVkIGludCBsYl9jb3VudFtDUFVfTUFYX0lETEVfVFlQRVNdOwpAQCAtODIzLDIzICs4MjYsNiBAQAogCiAjZW5kaWYJLyogQ09ORklHX1NNUCAqLwogCi0vKgotICogQSBydW5xdWV1ZSBsYWRlbiB3aXRoIGEgc2luZ2xlIG5pY2UgMCB0YXNrIHNjb3JlcyBhIHdlaWdodGVkX2NwdWxvYWQgb2YKLSAqIFNDSEVEX0xPQURfU0NBTEUuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyAxIGlmIGFueSBjcHUgaXMgbGFkZW4gd2l0aCBhCi0gKiB0YXNrIG9mIG5pY2UgMCBvciBlbm91Z2ggbG93ZXIgcHJpb3JpdHkgdGFza3MgdG8gYnJpbmcgdXAgdGhlCi0gKiB3ZWlnaHRlZF9jcHVsb2FkCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGFib3ZlX2JhY2tncm91bmRfbG9hZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgY3B1OwotCi0JZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKLQkJaWYgKHdlaWdodGVkX2NwdWxvYWQoY3B1KSA+PSBTQ0hFRF9MT0FEX1NDQUxFKQotCQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotCiBzdHJ1Y3QgaW9fY29udGV4dDsJCQkvKiBTZWUgYmxrZGV2LmggKi8KICNkZWZpbmUgTkdST1VQU19TTUFMTAkJMzIKICNkZWZpbmUgTkdST1VQU19QRVJfQkxPQ0sJKCh1bnNpZ25lZCBpbnQpKFBBR0VfU0laRSAvIHNpemVvZihnaWRfdCkpKQpAQCAtOTIxLDggKzkwNyw4IEBACiAJdm9pZCAoKnNldF9jcHVzX2FsbG93ZWQpKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKIAkJCQkgY29uc3QgY3B1bWFza190ICpuZXdtYXNrKTsKIAotCXZvaWQgKCpqb2luX2RvbWFpbikoc3RydWN0IHJxICpycSk7Ci0Jdm9pZCAoKmxlYXZlX2RvbWFpbikoc3RydWN0IHJxICpycSk7CisJdm9pZCAoKnJxX29ubGluZSkoc3RydWN0IHJxICpycSk7CisJdm9pZCAoKnJxX29mZmxpbmUpKHN0cnVjdCBycSAqcnEpOwogCiAJdm9pZCAoKnN3aXRjaGVkX2Zyb20pIChzdHJ1Y3QgcnEgKnRoaXNfcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKIAkJCSAgICAgICBpbnQgcnVubmluZyk7CkBAIC0xMDM5LDYgKzEwMjUsNyBAQAogI2VuZGlmCiAKIAlpbnQgcHJpbywgc3RhdGljX3ByaW8sIG5vcm1hbF9wcmlvOworCXVuc2lnbmVkIGludCBydF9wcmlvcml0eTsKIAljb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgKnNjaGVkX2NsYXNzOwogCXN0cnVjdCBzY2hlZF9lbnRpdHkgc2U7CiAJc3RydWN0IHNjaGVkX3J0X2VudGl0eSBydDsKQEAgLTExMjIsNyArMTEwOSw2IEBACiAJaW50IF9fdXNlciAqc2V0X2NoaWxkX3RpZDsJCS8qIENMT05FX0NISUxEX1NFVFRJRCAqLwogCWludCBfX3VzZXIgKmNsZWFyX2NoaWxkX3RpZDsJCS8qIENMT05FX0NISUxEX0NMRUFSVElEICovCiAKLQl1bnNpZ25lZCBpbnQgcnRfcHJpb3JpdHk7CiAJY3B1dGltZV90IHV0aW1lLCBzdGltZSwgdXRpbWVzY2FsZWQsIHN0aW1lc2NhbGVkOwogCWNwdXRpbWVfdCBndGltZTsKIAljcHV0aW1lX3QgcHJldl91dGltZSwgcHJldl9zdGltZTsKQEAgLTExNDEsMTIgKzExMjcsMTIgQEAKIAlnaWRfdCBnaWQsZWdpZCxzZ2lkLGZzZ2lkOwogCXN0cnVjdCBncm91cF9pbmZvICpncm91cF9pbmZvOwogCWtlcm5lbF9jYXBfdCAgIGNhcF9lZmZlY3RpdmUsIGNhcF9pbmhlcml0YWJsZSwgY2FwX3Blcm1pdHRlZCwgY2FwX2JzZXQ7Ci0JdW5zaWduZWQgc2VjdXJlYml0czsKIAlzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKnVzZXI7CisJdW5zaWduZWQgc2VjdXJlYml0czsKICNpZmRlZiBDT05GSUdfS0VZUworCXVuc2lnbmVkIGNoYXIgaml0X2tleXJpbmc7CS8qIGRlZmF1bHQga2V5cmluZyB0byBhdHRhY2ggcmVxdWVzdGVkIGtleXMgdG8gKi8KIAlzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV9hdXRoOwkvKiBhc3N1bWVkIHJlcXVlc3Rfa2V5IGF1dGhvcml0eSAqLwogCXN0cnVjdCBrZXkgKnRocmVhZF9rZXlyaW5nOwkvKiBrZXlyaW5nIHByaXZhdGUgdG8gdGhpcyB0aHJlYWQgKi8KLQl1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwkvKiBkZWZhdWx0IGtleXJpbmcgdG8gYXR0YWNoIHJlcXVlc3RlZCBrZXlzIHRvICovCiAjZW5kaWYKIAljaGFyIGNvbW1bVEFTS19DT01NX0xFTl07IC8qIGV4ZWN1dGFibGUgbmFtZSBleGNsdWRpbmcgcGF0aAogCQkJCSAgICAgLSBhY2Nlc3Mgd2l0aCBbZ3NdZXRfdGFza19jb21tICh3aGljaCBsb2NrCkBAIC0xMjMzLDggKzEyMTksOCBAQAogIyBkZWZpbmUgTUFYX0xPQ0tfREVQVEggNDhVTAogCXU2NCBjdXJyX2NoYWluX2tleTsKIAlpbnQgbG9ja2RlcF9kZXB0aDsKLQlzdHJ1Y3QgaGVsZF9sb2NrIGhlbGRfbG9ja3NbTUFYX0xPQ0tfREVQVEhdOwogCXVuc2lnbmVkIGludCBsb2NrZGVwX3JlY3Vyc2lvbjsKKwlzdHJ1Y3QgaGVsZF9sb2NrIGhlbGRfbG9ja3NbTUFYX0xPQ0tfREVQVEhdOwogI2VuZGlmCiAKIC8qIGpvdXJuYWxsaW5nIGZpbGVzeXN0ZW0gaW5mbyAqLwpAQCAtMTI2MiwxMCArMTI0OCw2IEBACiAJdTY0IGFjY3Rfdm1fbWVtMTsJLyogYWNjdW11bGF0ZWQgdmlydHVhbCBtZW1vcnkgdXNhZ2UgKi8KIAljcHV0aW1lX3QgYWNjdF9zdGltZXhwZDsvKiBzdGltZSBzaW5jZSBsYXN0IHVwZGF0ZSAqLwogI2VuZGlmCi0jaWZkZWYgQ09ORklHX05VTUEKLSAgCXN0cnVjdCBtZW1wb2xpY3kgKm1lbXBvbGljeTsKLQlzaG9ydCBpbF9uZXh0OwotI2VuZGlmCiAjaWZkZWYgQ09ORklHX0NQVVNFVFMKIAlub2RlbWFza190IG1lbXNfYWxsb3dlZDsKIAlpbnQgY3B1c2V0X21lbXNfZ2VuZXJhdGlvbjsKQEAgLTEyODUsNiArMTI2NywxMCBAQAogCXN0cnVjdCBsaXN0X2hlYWQgcGlfc3RhdGVfbGlzdDsKIAlzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKnBpX3N0YXRlX2NhY2hlOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX05VTUEKKwlzdHJ1Y3QgbWVtcG9saWN5ICptZW1wb2xpY3k7CisJc2hvcnQgaWxfbmV4dDsKKyNlbmRpZgogCWF0b21pY190IGZzX2V4Y2w7CS8qIGhvbGRpbmcgZnMgZXhjbHVzaXZlIHJlc291cmNlcyAqLwogCXN0cnVjdCByY3VfaGVhZCByY3U7CiAKQEAgLTE1MDQsNiArMTQ5MCw3IEBACiAjZGVmaW5lIFBGX1NXQVBXUklURQkweDAwODAwMDAwCS8qIEFsbG93ZWQgdG8gd3JpdGUgdG8gc3dhcCAqLwogI2RlZmluZSBQRl9TUFJFQURfUEFHRQkweDAxMDAwMDAwCS8qIFNwcmVhZCBwYWdlIGNhY2hlIG92ZXIgY3B1c2V0ICovCiAjZGVmaW5lIFBGX1NQUkVBRF9TTEFCCTB4MDIwMDAwMDAJLyogU3ByZWFkIHNvbWUgc2xhYiBjYWNoZXMgb3ZlciBjcHVzZXQgKi8KKyNkZWZpbmUgUEZfVEhSRUFEX0JPVU5ECTB4MDQwMDAwMDAJLyogVGhyZWFkIGJvdW5kIHRvIHNwZWNpZmljIGNwdSAqLwogI2RlZmluZSBQRl9NRU1QT0xJQ1kJMHgxMDAwMDAwMAkvKiBOb24tZGVmYXVsdCBOVU1BIG1lbXBvbGljeSAqLwogI2RlZmluZSBQRl9NVVRFWF9URVNURVIJMHgyMDAwMDAwMAkvKiBUaHJlYWQgYmVsb25ncyB0byB0aGUgcnQgbXV0ZXggdGVzdGVyICovCiAjZGVmaW5lIFBGX0ZSRUVaRVJfU0tJUAkweDQwMDAwMDAwCS8qIEZyZWV6ZXIgc2hvdWxkIG5vdCBjb3VudCBpdCBhcyBmcmVlemVhYmxlICovCkBAIC0xNTczLDEzICsxNTYwLDI4IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xvY2tfaWRsZV93YWtldXBfZXZlbnQodTY0IGRlbHRhX25zKQogewogfQotI2Vsc2UKKworI2lmZGVmIENPTkZJR19OT19IWgorc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RvcChpbnQgY3B1KQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xvY2tfdGlja19zdGFydChpbnQgY3B1KQoreworfQorI2VuZGlmCisKKyNlbHNlIC8qIENPTkZJR19IQVZFX1VOU1RBQkxFX1NDSEVEX0NMT0NLICovCiBleHRlcm4gdm9pZCBzY2hlZF9jbG9ja19pbml0KHZvaWQpOwogZXh0ZXJuIHU2NCBzY2hlZF9jbG9ja19jcHUoaW50IGNwdSk7CiBleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCh2b2lkKTsKIGV4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX2lkbGVfd2FrZXVwX2V2ZW50KHU2NCBkZWx0YV9ucyk7CisjaWZkZWYgQ09ORklHX05PX0haCitleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrX3N0b3AoaW50IGNwdSk7CitleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrX3N0YXJ0KGludCBjcHUpOwogI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0hBVkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0sgKi8KIAogLyoKICAqIEZvciBrZXJuZWwtaW50ZXJuYWwgdXNlOiBoaWdoLXNwZWVkIChidXQgc2xpZ2h0bHkgaW5jb3JyZWN0KSBwZXItY3B1CkBAIC0xNjIyLDYgKzE2MjQsNyBAQAogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfZmVhdHVyZXM7CiBleHRlcm4gdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdDsKIGV4dGVybiB1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX25yX21pZ3JhdGU7CitleHRlcm4gdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0OwogCiBpbnQgc2NoZWRfbnJfbGF0ZW5jeV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwKQEAgLTE2NTUsNiArMTY1OCw4IEBACiBleHRlcm4gaW50IHRhc2tfY3Vycihjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwogZXh0ZXJuIGludCBpZGxlX2NwdShpbnQgY3B1KTsKIGV4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQsIHN0cnVjdCBzY2hlZF9wYXJhbSAqKTsKK2V4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soc3RydWN0IHRhc2tfc3RydWN0ICosIGludCwKKwkJCQkgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKik7CiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICppZGxlX3Rhc2soaW50IGNwdSk7CiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyX3Rhc2soaW50IGNwdSk7CiBleHRlcm4gdm9pZCBzZXRfY3Vycl90YXNrKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CkBAIC0yMDI2LDYgKzIwMzEsMTkgQEAKIAlyZXR1cm4gc2lnbmFsX3BlbmRpbmcocCkgJiYgX19mYXRhbF9zaWduYWxfcGVuZGluZyhwKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2lnbmFsX3BlbmRpbmdfc3RhdGUobG9uZyBzdGF0ZSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCWlmICghKHN0YXRlICYgKFRBU0tfSU5URVJSVVBUSUJMRSB8IFRBU0tfV0FLRUtJTEwpKSkKKwkJcmV0dXJuIDA7CisJaWYgKCFzaWduYWxfcGVuZGluZyhwKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoc3RhdGUgJiAoX19UQVNLX1NUT1BQRUQgfCBfX1RBU0tfVFJBQ0VEKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gKHN0YXRlICYgVEFTS19JTlRFUlJVUFRJQkxFKSB8fCBfX2ZhdGFsX3NpZ25hbF9wZW5kaW5nKHApOworfQorCiBzdGF0aWMgaW5saW5lIGludCBuZWVkX3Jlc2NoZWQodm9pZCkKIHsKIAlyZXR1cm4gdW5saWtlbHkodGVzdF90aHJlYWRfZmxhZyhUSUZfTkVFRF9SRVNDSEVEKSk7CkBAIC0yMTE4LDYgKzIxMzYsMTggQEAKIH0KICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1RSQUNJTkcKK2V4dGVybiB2b2lkCitfX3RyYWNlX3NwZWNpYWwodm9pZCAqX190ciwgdm9pZCAqX19kYXRhLAorCQl1bnNpZ25lZCBsb25nIGFyZzEsIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmczKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQKK19fdHJhY2Vfc3BlY2lhbCh2b2lkICpfX3RyLCB2b2lkICpfX2RhdGEsCisJCXVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpCit7Cit9CisjZW5kaWYKKwogZXh0ZXJuIGxvbmcgc2NoZWRfc2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjb25zdCBjcHVtYXNrX3QgKm5ld19tYXNrKTsKIGV4dGVybiBsb25nIHNjaGVkX2dldGFmZmluaXR5KHBpZF90IHBpZCwgY3B1bWFza190ICptYXNrKTsKIApAQCAtMjIxMiw2ICsyMjQyLDggQEAKIH0KICNlbmRpZiAvKiBDT05GSUdfTU1fT1dORVIgKi8KIAorI2RlZmluZSBUQVNLX1NUQVRFX1RPX0NIQVJfU1RSICJSU0RUdFpYIgorCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJlYml0cy5oIGIvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmgKaW5kZXggYzFmMTlkYi4uOTJmMDliZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmgKQEAgLTcsMTQgKzcsMTUgQEAKICAgIGluaGVyaXRhbmNlIG9mIHJvb3QtcGVybWlzc2lvbnMgYW5kIHN1aWQtcm9vdCBleGVjdXRhYmxlIHVuZGVyCiAgICBjb21wYXRpYmlsaXR5IG1vZGUuIFdlIHJhaXNlIHRoZSBlZmZlY3RpdmUgYW5kIGluaGVyaXRhYmxlIGJpdG1hc2tzCiAgICAqb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSogaWYgdGhlIGVmZmVjdGl2ZSB1aWQgb2YgdGhlIG5ldyBwcm9jZXNzIGlzCi0gICAwLiBJZiB0aGUgcmVhbCB1aWQgaXMgMCwgd2UgcmFpc2UgdGhlIGluaGVyaXRhYmxlIGJpdG1hc2sgb2YgdGhlCisgICAwLiBJZiB0aGUgcmVhbCB1aWQgaXMgMCwgd2UgcmFpc2UgdGhlIGVmZmVjdGl2ZSAobGVnYWN5KSBiaXQgb2YgdGhlCiAgICBleGVjdXRhYmxlIGZpbGUuICovCiAjZGVmaW5lIFNFQ1VSRV9OT1JPT1QJCQkwCiAjZGVmaW5lIFNFQ1VSRV9OT1JPT1RfTE9DS0VECQkxICAvKiBtYWtlIGJpdC0wIGltbXV0YWJsZSAqLwogCi0vKiBXaGVuIHNldCwgc2V0dWlkIHRvL2Zyb20gdWlkIDAgZG9lcyBub3QgdHJpZ2dlciBjYXBhYmlsaXR5LSJmaXhlcyIKLSAgIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBvbGQgcHJvZ3JhbXMgcmVseWluZyBvbiBzZXQqdWlkIHRvIGxvb3NlCi0gICBwcml2aWxlZ2VzLiBXaGVuIHVuc2V0LCBzZXR1aWQgZG9lc24ndCBjaGFuZ2UgcHJpdmlsZWdlcy4gKi8KKy8qIFdoZW4gc2V0LCBzZXR1aWQgdG8vZnJvbSB1aWQgMCBkb2VzIG5vdCB0cmlnZ2VyIGNhcGFiaWxpdHktImZpeHVwIi4KKyAgIFdoZW4gdW5zZXQsIHRvIHByb3ZpZGUgY29tcGF0aWJsaWxpdHkgd2l0aCBvbGQgcHJvZ3JhbXMgcmVseWluZyBvbgorICAgc2V0KnVpZCB0byBnYWluL2xvc2UgcHJpdmlsZWdlLCB0cmFuc2l0aW9ucyB0by9mcm9tIHVpZCAwIGNhdXNlCisgICBjYXBhYmlsaXRpZXMgdG8gYmUgZ2FpbmVkL2xvc3QuICovCiAjZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURfRklYVVAJCTIKICNkZWZpbmUgU0VDVVJFX05PX1NFVFVJRF9GSVhVUF9MT0NLRUQJMyAgLyogbWFrZSBiaXQtMiBpbW11dGFibGUgKi8KIApAQCAtMjYsMTAgKzI3LDEwIEBACiAjZGVmaW5lIFNFQ1VSRV9LRUVQX0NBUFMJCTQKICNkZWZpbmUgU0VDVVJFX0tFRVBfQ0FQU19MT0NLRUQJCTUgIC8qIG1ha2UgYml0LTQgaW1tdXRhYmxlICovCiAKLS8qIEVhY2ggc2VjdXJlc2V0dGluZyBpcyBpbXBsZW1lbnRlZCB1c2luZyB0d28gYml0cy4gT25lIGJpdCBzcGVjaWZ5CisvKiBFYWNoIHNlY3VyZXNldHRpbmcgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdHdvIGJpdHMuIE9uZSBiaXQgc3BlY2lmaWVzCiAgICB3aGV0aGVyIHRoZSBzZXR0aW5nIGlzIG9uIG9yIG9mZi4gVGhlIG90aGVyIGJpdCBzcGVjaWZ5IHdoZXRoZXIgdGhlCi0gICBzZXR0aW5nIGlzIGZpeGVkIG9yIG5vdC4gQSBzZXR0aW5nIHdoaWNoIGlzIGZpeGVkIGNhbm5vdCBiZSBjaGFuZ2VkCi0gICBmcm9tIHVzZXItbGV2ZWwuICovCisgICBzZXR0aW5nIGlzIGxvY2tlZCBvciBub3QuIEEgc2V0dGluZyB3aGljaCBpcyBsb2NrZWQgY2Fubm90IGJlCisgICBjaGFuZ2VkIGZyb20gdXNlci1sZXZlbC4gKi8KICNkZWZpbmUgaXNzZWN1cmVfbWFzayhYKQkoMSA8PCAoWCkpCiAjZGVmaW5lIGlzc2VjdXJlKFgpCQkoaXNzZWN1cmVfbWFzayhYKSAmIGN1cnJlbnQtPnNlY3VyZWJpdHMpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaCBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAppbmRleCA1MDczN2M3Li4zMWM4ODUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKKysrIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC00Niw3ICs0Niw4IEBACiAgKi8KIGV4dGVybiBpbnQgY2FwX2NhcGFibGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjYXApOwogZXh0ZXJuIGludCBjYXBfc2V0dGltZShzdHJ1Y3QgdGltZXNwZWMgKnRzLCBzdHJ1Y3QgdGltZXpvbmUgKnR6KTsKLWV4dGVybiBpbnQgY2FwX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCk7CitleHRlcm4gaW50IGNhcF9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIGV4dGVybiBpbnQgY2FwX2NhcGdldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwga2VybmVsX2NhcF90ICplZmZlY3RpdmUsIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsIGtlcm5lbF9jYXBfdCAqcGVybWl0dGVkKTsKIGV4dGVybiBpbnQgY2FwX2NhcHNldF9jaGVjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwga2VybmVsX2NhcF90ICplZmZlY3RpdmUsIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsIGtlcm5lbF9jYXBfdCAqcGVybWl0dGVkKTsKIGV4dGVybiB2b2lkIGNhcF9jYXBzZXRfc2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwga2VybmVsX2NhcF90ICppbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICpwZXJtaXR0ZWQpOwpAQCAtNzksNiArODAsNyBAQAogc3RydWN0IHhmcm1fcG9saWN5Owogc3RydWN0IHhmcm1fc3RhdGU7CiBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHg7CitzdHJ1Y3Qgc2VxX2ZpbGU7CiAKIGV4dGVybiBpbnQgY2FwX25ldGxpbmtfc2VuZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpOwogZXh0ZXJuIGludCBjYXBfbmV0bGlua19yZWN2KHN0cnVjdCBza19idWZmICpza2IsIGludCBjYXApOwpAQCAtMjg5LDEwICsyOTEsNiBAQAogICoJVXBkYXRlIG1vZHVsZSBzdGF0ZSBhZnRlciBhIHN1Y2Nlc3NmdWwgcGl2b3QuCiAgKglAb2xkX3BhdGggY29udGFpbnMgdGhlIHBhdGggZm9yIHRoZSBvbGQgcm9vdC4KICAqCUBuZXdfcGF0aCBjb250YWlucyB0aGUgcGF0aCBmb3IgdGhlIG5ldyByb290LgotICogQHNiX2dldF9tbnRfb3B0czoKLSAqCUdldCB0aGUgc2VjdXJpdHkgcmVsZXZhbnQgbW91bnQgb3B0aW9ucyB1c2VkIGZvciBhIHN1cGVyYmxvY2sKLSAqCUBzYiB0aGUgc3VwZXJibG9jayB0byBnZXQgc2VjdXJpdHkgbW91bnQgb3B0aW9ucyBmcm9tCi0gKglAb3B0cyBiaW5hcnkgZGF0YSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhbGwgbHNtIG1vdW50IGRhdGEKICAqIEBzYl9zZXRfbW50X29wdHM6CiAgKglTZXQgdGhlIHNlY3VyaXR5IHJlbGV2YW50IG1vdW50IG9wdGlvbnMgdXNlZCBmb3IgYSBzdXBlcmJsb2NrCiAgKglAc2IgdGhlIHN1cGVyYmxvY2sgdG8gc2V0IHNlY3VyaXR5IG1vdW50IG9wdGlvbnMgZm9yCkBAIC0xMTcwLDYgKzExNjgsNyBAQAogICoJYXR0cmlidXRlcyB3b3VsZCBiZSBjaGFuZ2VkIGJ5IHRoZSBleGVjdmUuCiAgKglAcGFyZW50IGNvbnRhaW5zIHRoZSB0YXNrX3N0cnVjdCBzdHJ1Y3R1cmUgZm9yIHBhcmVudCBwcm9jZXNzLgogICoJQGNoaWxkIGNvbnRhaW5zIHRoZSB0YXNrX3N0cnVjdCBzdHJ1Y3R1cmUgZm9yIGNoaWxkIHByb2Nlc3MuCisgKglAbW9kZSBjb250YWlucyB0aGUgUFRSQUNFX01PREUgZmxhZ3MgaW5kaWNhdGluZyB0aGUgZm9ybSBvZiBhY2Nlc3MuCiAgKglSZXR1cm4gMCBpZiBwZXJtaXNzaW9uIGlzIGdyYW50ZWQuCiAgKiBAY2FwZ2V0OgogICoJR2V0IHRoZSBAZWZmZWN0aXZlLCBAaW5oZXJpdGFibGUsIGFuZCBAcGVybWl0dGVkIGNhcGFiaWxpdHkgc2V0cyBmb3IKQEAgLTEyNDAsMTEgKzEyMzksNiBAQAogICoJQHBhZ2VzIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgcGFnZXMuCiAgKglSZXR1cm4gMCBpZiBwZXJtaXNzaW9uIGlzIGdyYW50ZWQuCiAgKgotICogQHJlZ2lzdGVyX3NlY3VyaXR5OgotICoJYWxsb3cgbW9kdWxlIHN0YWNraW5nLgotICoJQG5hbWUgY29udGFpbnMgdGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IG1vZHVsZSBiZWluZyBzdGFja2VkLgotICoJQG9wcyBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIG9mIHRoZSBtb2R1bGUgdG8gc3RhY2suCi0gKgogICogQHNlY2lkX3RvX3NlY2N0eDoKICAqCUNvbnZlcnQgc2VjaWQgdG8gc2VjdXJpdHkgY29udGV4dC4KICAqCUBzZWNpZCBjb250YWlucyB0aGUgc2VjdXJpdHkgSUQuCkBAIC0xMjk1LDcgKzEyODksOCBAQAogc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgewogCWNoYXIgbmFtZVtTRUNVUklUWV9OQU1FX01BWCArIDFdOwogCi0JaW50ICgqcHRyYWNlKSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOworCWludCAoKnB0cmFjZSkgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLAorCQkgICAgICAgdW5zaWduZWQgaW50IG1vZGUpOwogCWludCAoKmNhcGdldCkgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LAogCQkgICAgICAga2VybmVsX2NhcF90ICplZmZlY3RpdmUsCiAJCSAgICAgICBrZXJuZWxfY2FwX3QgKmluaGVyaXRhYmxlLCBrZXJuZWxfY2FwX3QgKnBlcm1pdHRlZCk7CkBAIC0xMzI4LDYgKzEzMjMsNyBAQAogCXZvaWQgKCpzYl9mcmVlX3NlY3VyaXR5KSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAJaW50ICgqc2JfY29weV9kYXRhKSAoY2hhciAqb3JpZywgY2hhciAqY29weSk7CiAJaW50ICgqc2Jfa2Vybl9tb3VudCkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEpOworCWludCAoKnNiX3Nob3dfb3B0aW9ucykgKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAJaW50ICgqc2Jfc3RhdGZzKSAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKIAlpbnQgKCpzYl9tb3VudCkgKGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3QgcGF0aCAqcGF0aCwKIAkJCSBjaGFyICp0eXBlLCB1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpkYXRhKTsKQEAgLTEzNDMsOCArMTMzOSw2IEBACiAJCQkgICAgIHN0cnVjdCBwYXRoICpuZXdfcGF0aCk7CiAJdm9pZCAoKnNiX3Bvc3RfcGl2b3Ryb290KSAoc3RydWN0IHBhdGggKm9sZF9wYXRoLAogCQkJCSAgIHN0cnVjdCBwYXRoICpuZXdfcGF0aCk7Ci0JaW50ICgqc2JfZ2V0X21udF9vcHRzKSAoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpOwogCWludCAoKnNiX3NldF9tbnRfb3B0cykgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKTsKIAl2b2lkICgqc2JfY2xvbmVfbW50X29wdHMpIChjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm9sZHNiLApAQCAtMTQ3MiwxMCArMTQ2Niw2IEBACiAJaW50ICgqbmV0bGlua19zZW5kKSAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIAlpbnQgKCpuZXRsaW5rX3JlY3YpIChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2FwKTsKIAotCS8qIGFsbG93IG1vZHVsZSBzdGFja2luZyAqLwotCWludCAoKnJlZ2lzdGVyX3NlY3VyaXR5KSAoY29uc3QgY2hhciAqbmFtZSwKLQkJCQkgIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwotCiAJdm9pZCAoKmRfaW5zdGFudGlhdGUpIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogCiAJaW50ICgqZ2V0cHJvY2F0dHIpIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSk7CkBAIC0xNTY1LDcgKzE1NTUsNiBAQAogZXh0ZXJuIGludCBzZWN1cml0eV9pbml0KHZvaWQpOwogZXh0ZXJuIGludCBzZWN1cml0eV9tb2R1bGVfZW5hYmxlKHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwogZXh0ZXJuIGludCByZWdpc3Rlcl9zZWN1cml0eShzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKTsKLWV4dGVybiBpbnQgbW9kX3JlZ19zZWN1cml0eShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKTsKIGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpzZWN1cml0eWZzX2NyZWF0ZV9maWxlKGNvbnN0IGNoYXIgKm5hbWUsIG1vZGVfdCBtb2RlLAogCQkJCQkgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwKIAkJCQkJICAgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKTsKQEAgLTE1NzMsNyArMTU2Miw4IEBACiBleHRlcm4gdm9pZCBzZWN1cml0eWZzX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogCiAvKiBTZWN1cml0eSBvcGVyYXRpb25zICovCi1pbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKK2ludCBzZWN1cml0eV9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICB1bnNpZ25lZCBpbnQgbW9kZSk7CiBpbnQgc2VjdXJpdHlfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LAogCQkgICAga2VybmVsX2NhcF90ICplZmZlY3RpdmUsCiAJCSAgICBrZXJuZWxfY2FwX3QgKmluaGVyaXRhYmxlLApAQCAtMTYwNiw2ICsxNTk2LDcgQEAKIHZvaWQgc2VjdXJpdHlfc2JfZnJlZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIGludCBzZWN1cml0eV9zYl9jb3B5X2RhdGEoY2hhciAqb3JpZywgY2hhciAqY29weSk7CiBpbnQgc2VjdXJpdHlfc2Jfa2Vybl9tb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhKTsKK2ludCBzZWN1cml0eV9zYl9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIGludCBzZWN1cml0eV9zYl9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKIGludCBzZWN1cml0eV9zYl9tb3VudChjaGFyICpkZXZfbmFtZSwgc3RydWN0IHBhdGggKnBhdGgsCiAJCSAgICAgIGNoYXIgKnR5cGUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKmRhdGEpOwpAQCAtMTYxNyw4ICsxNjA4LDYgQEAKIHZvaWQgc2VjdXJpdHlfc2JfcG9zdF9hZGRtb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKm1vdW50cG9pbnQpOwogaW50IHNlY3VyaXR5X3NiX3Bpdm90cm9vdChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCk7CiB2b2lkIHNlY3VyaXR5X3NiX3Bvc3RfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKLWludCBzZWN1cml0eV9zYl9nZXRfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpOwogaW50IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpOwogdm9pZCBzZWN1cml0eV9zYl9jbG9uZV9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm9sZHNiLAogCQkJCXN0cnVjdCBzdXBlcl9ibG9jayAqbmV3c2IpOwpAQCAtMTc1NSw5ICsxNzQ0LDExIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK3N0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwKKwkJCQkgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkJICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKLQlyZXR1cm4gY2FwX3B0cmFjZShwYXJlbnQsIGNoaWxkKTsKKwlyZXR1cm4gY2FwX3B0cmFjZShwYXJlbnQsIGNoaWxkLCBtb2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LApAQCAtMTg4MSw2ICsxODcyLDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCisJCQkJCSAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3NiX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJcmV0dXJuIDA7CkBAIC0xOTI3LDEyICsxOTI0LDYgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZWN1cml0eV9zYl9wb3N0X3Bpdm90cm9vdChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsCiAJCQkJCSAgICAgIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKIHsgfQotc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfc2JfZ2V0X21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCi0JCQkJCSAgIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKLXsKLQlzZWN1cml0eV9pbml0X21udF9vcHRzKG9wdHMpOwotCXJldHVybiAwOwotfQogCiBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9zYl9zZXRfbW50X29wdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQkJICAgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbGFiLmggYi9pbmNsdWRlL2xpbnV4L3NsYWIuaAppbmRleCBjMmFkMzUwLi45YWE5MGE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NsYWIuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NsYWIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBXcml0dGVuIGJ5IE1hcmsgSGVtbWVudCwgMTk5NiAobWFya2hlQG5leHRkLmRlbW9uLmNvLnVrKS4KICAqCi0gKiAoQykgU0dJIDIwMDYsIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogKEMpIFNHSSAyMDA2LCBDaHJpc3RvcGggTGFtZXRlcgogICogCUNsZWFuZWQgdXAgYW5kIHJlc3RydWN0dXJlZCB0byBlYXNlIHRoZSBhZGRpdGlvbiBvZiBhbHRlcm5hdGl2ZQogICogCWltcGxlbWVudGF0aW9ucyBvZiBTTEFCIGFsbG9jYXRvcnMuCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2x1Yl9kZWYuaCBiL2luY2x1ZGUvbGludXgvc2x1Yl9kZWYuaAppbmRleCA3MWU0M2ExLi5kMTE3ZWEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NsdWJfZGVmLmgKKysrIGIvaW5jbHVkZS9saW51eC9zbHViX2RlZi5oCkBAIC00LDcgKzQsNyBAQAogLyoKICAqIFNMVUIgOiBBIFNsYWIgYWxsb2NhdG9yIHdpdGhvdXQgb2JqZWN0IHF1ZXVlcy4KICAqCi0gKiAoQykgMjAwNyBTR0ksIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogKEMpIDIwMDcgU0dJLCBDaHJpc3RvcGggTGFtZXRlcgogICovCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KQEAgLTEzNywxMCArMTM3LDEyIEBACiAJaWYgKHNpemUgPD0gS01BTExPQ19NSU5fU0laRSkKIAkJcmV0dXJuIEtNQUxMT0NfU0hJRlRfTE9XOwogCisjaWYgS01BTExPQ19NSU5fU0laRSA8PSA2NAogCWlmIChzaXplID4gNjQgJiYgc2l6ZSA8PSA5NikKIAkJcmV0dXJuIDE7CiAJaWYgKHNpemUgPiAxMjggJiYgc2l6ZSA8PSAxOTIpCiAJCXJldHVybiAyOworI2VuZGlmCiAJaWYgKHNpemUgPD0gICAgICAgICAgOCkgcmV0dXJuIDM7CiAJaWYgKHNpemUgPD0gICAgICAgICAxNikgcmV0dXJuIDQ7CiAJaWYgKHNpemUgPD0gICAgICAgICAzMikgcmV0dXJuIDU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NtcF9sb2NrLmggYi9pbmNsdWRlL2xpbnV4L3NtcF9sb2NrLmgKaW5kZXggYWFiM2E0Yy4uODEzYmU1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oCisrKyBiL2luY2x1ZGUvbGludXgvc21wX2xvY2suaApAQCAtMjcsMTEgKzI3LDI0IEBACiBleHRlcm4gdm9pZCBfX2xvY2tmdW5jIGxvY2tfa2VybmVsKHZvaWQpCV9fYWNxdWlyZXMoa2VybmVsX2xvY2spOwogZXh0ZXJuIHZvaWQgX19sb2NrZnVuYyB1bmxvY2tfa2VybmVsKHZvaWQpCV9fcmVsZWFzZXMoa2VybmVsX2xvY2spOwogCisvKgorICogVmFyaW91cyBsZWdhY3kgZHJpdmVycyBkb24ndCByZWFsbHkgbmVlZCB0aGUgQktMIGluIGEgc3BlY2lmaWMKKyAqIGZ1bmN0aW9uLCBidXQgdGhleSAqZG8qIG5lZWQgdG8ga25vdyB0aGF0IHRoZSBCS0wgYmVjYW1lIGF2YWlsYWJsZS4KKyAqIFRoaXMgZnVuY3Rpb24ganVzdCBhdm9pZHMgd3JhcHBpbmcgYSBidW5jaCBvZiBsb2NrL3VubG9jayBwYWlycworICogYXJvdW5kIGNvZGUgd2hpY2ggZG9lc24ndCByZWFsbHkgbmVlZCBpdC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGN5Y2xlX2tlcm5lbF9sb2NrKHZvaWQpCit7CisJbG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfa2VybmVsKCk7Cit9CisKICNlbHNlCiAKICNkZWZpbmUgbG9ja19rZXJuZWwoKQkJCQlkbyB7IH0gd2hpbGUoMCkKICNkZWZpbmUgdW5sb2NrX2tlcm5lbCgpCQkJCWRvIHsgfSB3aGlsZSgwKQogI2RlZmluZSByZWxlYXNlX2tlcm5lbF9sb2NrKHRhc2spCQlkbyB7IH0gd2hpbGUoMCkKKyNkZWZpbmUgY3ljbGVfa2VybmVsX2xvY2soKQkJCWRvIHsgfSB3aGlsZSgwKQogI2RlZmluZSByZWFjcXVpcmVfa2VybmVsX2xvY2sodGFzaykJCTAKICNkZWZpbmUga2VybmVsX2xvY2tlZCgpCQkJCTEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zc2Ivc3NiX2RyaXZlcl9naWdlLmggYi9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaAppbmRleCAwMWZiZGY1Li45NDJlMzg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaApAQCAtMTAwLDcgKzEwMCw3IEBACiAvKiBHZXQgdGhlIGRldmljZSBNQUMgYWRkcmVzcyAqLwogc3RhdGljIGlubGluZSB2b2lkIHNzYl9naWdlX2dldF9tYWNhZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1OCAqbWFjYWRkcikKIHsKLSNpZmRlZiBDT05GSUdfQkNNOTQ3WFgKKyNpZmRlZiBDT05GSUdfQkNNNDdYWAogCWNoYXIgKnJlcyA9IG52cmFtX2dldCgiZXQwbWFjYWRkciIpOwogCWlmIChyZXMpCiAJCW1lbWNweShtYWNhZGRyLCByZXMsIDYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90Y3AuaCBiL2luY2x1ZGUvbGludXgvdGNwLmgKaW5kZXggMThlNjJlMy4uYjMxYjZiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90Y3AuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RjcC5oCkBAIC0yMzksMTEgKzIzOSw2IEBACiAJcmV0dXJuIChzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqKXJlcTsKIH0KIAotc3RydWN0IHRjcF9kZWZlcnJlZF9hY2NlcHRfaW5mbyB7Ci0Jc3RydWN0IHNvY2sgKmxpc3Rlbl9zazsKLQlzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXF1ZXN0OwotfTsKLQogc3RydWN0IHRjcF9zb2NrIHsKIAkvKiBpbmV0X2Nvbm5lY3Rpb25fc29jayBoYXMgdG8gYmUgdGhlIGZpcnN0IG1lbWJlciBvZiB0Y3Bfc29jayAqLwogCXN0cnVjdCBpbmV0X2Nvbm5lY3Rpb25fc29jawlpbmV0X2Nvbm47CkBAIC0zNzksOCArMzc0LDYgQEAKIAl1bnNpZ25lZCBpbnQJCWtlZXBhbGl2ZV9pbnR2bDsgIC8qIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbiBrZWVwIGFsaXZlIHByb2JlcyAqLwogCWludAkJCWxpbmdlcjI7CiAKLQlzdHJ1Y3QgdGNwX2RlZmVycmVkX2FjY2VwdF9pbmZvIGRlZmVyX3RjcF9hY2NlcHQ7Ci0KIAl1bnNpZ25lZCBsb25nIGxhc3Rfc3lucV9vdmVyZmxvdzsgCiAKIAl1MzIJdHNvX2RlZmVycmVkOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90aGVybWFsLmggYi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAppbmRleCAwNmQzZTZlLi45MTc3MDdlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaApAQCAtNjYsOCArNjYsNyBAQAogCQkJCSgobG9uZyl0LTI3MzIrNSkvMTAgOiAoKGxvbmcpdC0yNzMyLTUpLzEwKQogI2RlZmluZSBDRUxTSVVTX1RPX0tFTFZJTih0KQkoKHQpKjEwKzI3MzIpCiAKLSNpZiBkZWZpbmVkKENPTkZJR19IV01PTikgfHwJXAotCShkZWZpbmVkKENPTkZJR19IV01PTl9NT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfTU9EVUxFKSkKKyNpZiBkZWZpbmVkKENPTkZJR19USEVSTUFMX0hXTU9OKQogLyogdGhlcm1hbCB6b25lIGRldmljZXMgd2l0aCB0aGUgc2FtZSB0eXBlIHNoYXJlIG9uZSBod21vbiBkZXZpY2UgKi8KIHN0cnVjdCB0aGVybWFsX2h3bW9uX2RldmljZSB7CiAJY2hhciB0eXBlW1RIRVJNQUxfTkFNRV9MRU5HVEhdOwpAQCAtOTQsOCArOTMsNyBAQAogCXN0cnVjdCBpZHIgaWRyOwogCXN0cnVjdCBtdXRleCBsb2NrOwkvKiBwcm90ZWN0IGNvb2xpbmcgZGV2aWNlcyBsaXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwotI2lmIGRlZmluZWQoQ09ORklHX0hXTU9OKSB8fAlcCi0JKGRlZmluZWQoQ09ORklHX0hXTU9OX01PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfVEhFUk1BTF9NT0RVTEUpKQorI2lmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfSFdNT04pCiAJc3RydWN0IGxpc3RfaGVhZCBod21vbl9ub2RlOwogCXN0cnVjdCB0aGVybWFsX2h3bW9uX2RldmljZSAqaHdtb247CiAJc3RydWN0IHRoZXJtYWxfaHdtb25fYXR0ciB0ZW1wX2lucHV0OwkvKiBod21vbiBzeXMgYXR0ciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90aW1lLmggYi9pbmNsdWRlL2xpbnV4L3RpbWUuaAppbmRleCBkMzJlZjBhLi5lMTUyMDZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RpbWUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RpbWUuaApAQCAtNiw2ICs2LDcgQEAKICNpZmRlZiBfX0tFUk5FTF9fCiAjIGluY2x1ZGUgPGxpbnV4L2NhY2hlLmg+CiAjIGluY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KKyMgaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAjZW5kaWYKIAogI2lmbmRlZiBfU1RSVUNUX1RJTUVTUEVDCkBAIC0xNjksMTggKzE3MCwxMyBAQAogICogdGltZXNwZWNfYWRkX25zIC0gQWRkcyBuYW5vc2Vjb25kcyB0byBhIHRpbWVzcGVjCiAgKiBAYToJCXBvaW50ZXIgdG8gdGltZXNwZWMgdG8gYmUgaW5jcmVtZW50ZWQKICAqIEBuczoJCXVuc2lnbmVkIG5hbm9zZWNvbmRzIHZhbHVlIHRvIGJlIGFkZGVkCisgKgorICogVGhpcyBtdXN0IGFsd2F5cyBiZSBpbmxpbmVkIGJlY2F1c2UgaXRzIHVzZWQgZnJvbSB0aGUgeDg2LTY0IHZkc28sCisgKiB3aGljaCBjYW5ub3QgY2FsbCBvdGhlciBrZXJuZWwgZnVuY3Rpb25zLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgdGltZXNwZWNfYWRkX25zKHN0cnVjdCB0aW1lc3BlYyAqYSwgdTY0IG5zKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIHRpbWVzcGVjX2FkZF9ucyhzdHJ1Y3QgdGltZXNwZWMgKmEsIHU2NCBucykKIHsKLQlucyArPSBhLT50dl9uc2VjOwotCXdoaWxlKHVubGlrZWx5KG5zID49IE5TRUNfUEVSX1NFQykpIHsKLQkJLyogVGhlIGZvbGxvd2luZyBhc20oKSBwcmV2ZW50cyB0aGUgY29tcGlsZXIgZnJvbQotCQkgKiBvcHRpbWlzaW5nIHRoaXMgbG9vcCBpbnRvIGEgbW9kdWxvIG9wZXJhdGlvbi4gICovCi0JCWFzbSgiIiA6ICIrciIobnMpKTsKLQotCQlucyAtPSBOU0VDX1BFUl9TRUM7Ci0JCWEtPnR2X3NlYysrOwotCX0KKwlhLT50dl9zZWMgKz0gX19pdGVyX2Rpdl91NjRfcmVtKGEtPnR2X25zZWMgKyBucywgTlNFQ19QRVJfU0VDLCAmbnMpOwogCWEtPnR2X25zZWMgPSBuczsKIH0KICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvdHR5X2RyaXZlci5oCmluZGV4IDU5ZjFjMGIuLmQyYTAwMzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdHR5X2RyaXZlci5oCisrKyBiL2luY2x1ZGUvbGludXgvdHR5X2RyaXZlci5oCkBAIC0yNyw4ICsyNyw3IEBACiAgKiAJVGhpcyByb3V0aW5lIGlzIGNhbGxlZCBieSB0aGUga2VybmVsIHRvIHdyaXRlIGEgc2VyaWVzIG9mCiAgKiAJY2hhcmFjdGVycyB0byB0aGUgdHR5IGRldmljZS4gIFRoZSBjaGFyYWN0ZXJzIG1heSBjb21lIGZyb20KICAqIAl1c2VyIHNwYWNlIG9yIGtlcm5lbCBzcGFjZS4gIFRoaXMgcm91dGluZSB3aWxsIHJldHVybiB0aGUKLSAqCW51bWJlciBvZiBjaGFyYWN0ZXJzIGFjdHVhbGx5IGFjY2VwdGVkIGZvciB3cml0aW5nLiAgVGhpcwotICoJcm91dGluZSBpcyBtYW5kYXRvcnkuCisgKgludW1iZXIgb2YgY2hhcmFjdGVycyBhY3R1YWxseSBhY2NlcHRlZCBmb3Igd3JpdGluZy4KICAqCiAgKglPcHRpb25hbDogUmVxdWlyZWQgZm9yIHdyaXRhYmxlIGRldmljZXMuCiAgKgpAQCAtMTM0LDcgKzEzMyw3IEBACiAgKiAJVGhpcyByb3V0aW5lIG5vdGlmaWVzIHRoZSB0dHkgZHJpdmVyIHRoYXQgaXQgc2hvdWxkIGhhbmd1cCB0aGUKICAqIAl0dHkgZGV2aWNlLgogICoKLSAqCVJlcXVpcmVkOgorICoJT3B0aW9uYWw6CiAgKgogICogdm9pZCAoKmJyZWFrX2N0bCkoc3RydWN0IHR0eV9zdHVjdCAqdHR5LCBpbnQgc3RhdGUpOwogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKaW5kZXggOTQwNWFhNi4uMzhjMDU3MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgVklSVElPX05FVF9IRFJfR1NPX0VDTgkJMHg4MAkvLyBUQ1AgaGFzIEVDTiBzZXQKIAlfX3U4IGdzb190eXBlOwogCV9fdTE2IGhkcl9sZW47CQkvKiBFdGhlcm5ldCArIElQICsgdGNwL3VkcCBoZHJzICovCi0JX191MTYgZ3NvX3NpemU7CQkvKiBCeXRlcyB0byBhcHBlbmQgdG8gZ3NvX2hkcl9sZW4gcGVyIGZyYW1lICovCisJX191MTYgZ3NvX3NpemU7CQkvKiBCeXRlcyB0byBhcHBlbmQgdG8gaGRyX2xlbiBwZXIgZnJhbWUgKi8KIAlfX3UxNiBjc3VtX3N0YXJ0OwkvKiBQb3NpdGlvbiB0byBzdGFydCBjaGVja3N1bW1pbmcgZnJvbSAqLwogCV9fdTE2IGNzdW1fb2Zmc2V0OwkvKiBPZmZzZXQgYWZ0ZXIgdGhhdCB0byBwbGFjZSBjaGVja3N1bSAqLwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd3JpdGViYWNrLmggYi9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCmluZGV4IGY0NjI0MzkuLjEyYjE1YzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvd3JpdGViYWNrLmgKKysrIGIvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaApAQCAtNjMsNiArNjMsNyBAQAogCXVuc2lnbmVkIGZvcl93cml0ZXBhZ2VzOjE7CS8qIFRoaXMgaXMgYSB3cml0ZXBhZ2VzKCkgY2FsbCAqLwogCXVuc2lnbmVkIHJhbmdlX2N5Y2xpYzoxOwkvKiByYW5nZV9zdGFydCBpcyBjeWNsaWMgKi8KIAl1bnNpZ25lZCBtb3JlX2lvOjE7CQkvKiBtb3JlIGlvIHRvIGJlIGRpc3BhdGNoZWQgKi8KKwl1bnNpZ25lZCByYW5nZV9jb250OjE7CiB9OwogCiAvKgpAQCAtMTA1LDYgKzEwNiw4IEBACiBleHRlcm4gaW50IGJsb2NrX2R1bXA7CiBleHRlcm4gaW50IGxhcHRvcF9tb2RlOwogCitleHRlcm4gdW5zaWduZWQgbG9uZyBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSh2b2lkKTsKKwogZXh0ZXJuIGludCBkaXJ0eV9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCWxvZmZfdCAqcHBvcyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3hmcm0uaCBiL2luY2x1ZGUvbGludXgveGZybS5oCmluZGV4IDJjYTZiYWUuLmZiMGMyMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgveGZybS5oCisrKyBiL2luY2x1ZGUvbGludXgveGZybS5oCkBAIC0zMzksNiArMzM5LDcgQEAKICNkZWZpbmUgWEZSTV9TVEFURV9OT1BNVFVESVNDCTQKICNkZWZpbmUgWEZSTV9TVEFURV9XSUxEUkVDVgk4CiAjZGVmaW5lIFhGUk1fU1RBVEVfSUNNUAkJMTYKKyNkZWZpbmUgWEZSTV9TVEFURV9BRl9VTlNQRUMJMzIKIH07CiAKIHN0cnVjdCB4ZnJtX3VzZXJzYV9pZCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2N4MjU4NDAuaCBiL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCmluZGV4IGNkNTk5YWQuLmRiNDMxZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCisrKyBiL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCkBAIC0zMiwxMiArMzIsMTYgQEAKIAlDWDI1ODQwX0NPTVBPU0lURTcsCiAJQ1gyNTg0MF9DT01QT1NJVEU4LAogCi0JLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluNCkgT1JlZCB3aXRoIG9uZQorCS8qIFMtVmlkZW8gaW5wdXRzIGNvbnNpc3Qgb2Ygb25lIGx1bWEgaW5wdXQgKEluMS1JbjgpIE9SZWQgd2l0aCBvbmUKIAkgICBjaHJvbWEgaW5wdXQgKEluNS1JbjgpICovCiAJQ1gyNTg0MF9TVklERU9fTFVNQTEgPSAweDEwLAogCUNYMjU4NDBfU1ZJREVPX0xVTUEyID0gMHgyMCwKIAlDWDI1ODQwX1NWSURFT19MVU1BMyA9IDB4MzAsCiAJQ1gyNTg0MF9TVklERU9fTFVNQTQgPSAweDQwLAorCUNYMjU4NDBfU1ZJREVPX0xVTUE1ID0gMHg1MCwKKwlDWDI1ODQwX1NWSURFT19MVU1BNiA9IDB4NjAsCisJQ1gyNTg0MF9TVklERU9fTFVNQTcgPSAweDcwLAorCUNYMjU4NDBfU1ZJREVPX0xVTUE4ID0gMHg4MCwKIAlDWDI1ODQwX1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCiAJQ1gyNTg0MF9TVklERU9fQ0hST01BNSA9IDB4NTAwLAogCUNYMjU4NDBfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvaXItY29tbW9uLmggYi9pbmNsdWRlL21lZGlhL2lyLWNvbW1vbi5oCmluZGV4IGJmZWU4YmUuLmI4ZThhYTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvaXItY29tbW9uLmgKKysrIGIvaW5jbHVkZS9tZWRpYS9pci1jb21tb24uaApAQCAtMTQ2LDYgKzE0Niw3IEBACiBleHRlcm4gSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfcGlubmFjbGVfcGN0dl9oZFtJUl9LRVlUQUJfU0laRV07CiBleHRlcm4gSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfZ2VuaXVzX3R2Z29fYTExbWNlW0lSX0tFWVRBQl9TSVpFXTsKIGV4dGVybiBJUl9LRVlUQUJfVFlQRSBpcl9jb2Rlc19wb3dlcmNvbG9yX3JlYWxfYW5nZWxbSVJfS0VZVEFCX1NJWkVdOworZXh0ZXJuIElSX0tFWVRBQl9UWVBFIGlyX2NvZGVzX2F2ZXJtZWRpYV9hMTZkW0lSX0tFWVRBQl9TSVpFXTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdjRsMi1kZXYuaCBiL2luY2x1ZGUvbWVkaWEvdjRsMi1kZXYuaAppbmRleCAzM2YwMWFlLi44NTlmN2E2IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL3Y0bDItZGV2LmgKKysrIGIvaW5jbHVkZS9tZWRpYS92NGwyLWRldi5oCkBAIC00MCw5ICs0MCw5IEBACiAjZGVmaW5lIFZGTF9UWVBFX1ZUWAkJMwogCiAvKiAgVmlkZW8gc3RhbmRhcmQgZnVuY3Rpb25zICAqLwotZXh0ZXJuIGNoYXIgKnY0bDJfbm9ybV90b19uYW1lKHY0bDJfc3RkX2lkIGlkKTsKK2V4dGVybiBjb25zdCBjaGFyICp2NGwyX25vcm1fdG9fbmFtZSh2NGwyX3N0ZF9pZCBpZCk7CiBleHRlcm4gaW50IHY0bDJfdmlkZW9fc3RkX2NvbnN0cnVjdChzdHJ1Y3QgdjRsMl9zdGFuZGFyZCAqdnMsCi0JCQkJICAgIGludCBpZCwgY2hhciAqbmFtZSk7CisJCQkJICAgIGludCBpZCwgY29uc3QgY2hhciAqbmFtZSk7CiAvKiBQcmludHMgdGhlIGlvY3RsIGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0ICovCiBleHRlcm4gdm9pZCB2NGxfcHJpbnRrX2lvY3RsKHVuc2lnbmVkIGludCBjbWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X3NvY2suaCBiL2luY2x1ZGUvbmV0L2luZXRfc29jay5oCmluZGV4IGE0MmNkNjMuLjlmYWJlNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfc29jay5oCisrKyBiL2luY2x1ZGUvbmV0L2luZXRfc29jay5oCkBAIC0xOTcsNCArMTk3LDE0IEBACiAJcmV0dXJuIHNrYi0+cnRhYmxlLT5ydF9paWY7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19hbGxvYyhzdHJ1Y3QgcmVxdWVzdF9zb2NrX29wcyAqb3BzKQoreworCXN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSA9IHJlcXNrX2FsbG9jKG9wcyk7CisKKwlpZiAocmVxICE9IE5VTEwpCisJCWluZXRfcnNrKHJlcSktPm9wdCA9IE5VTEw7CisKKwlyZXR1cm4gcmVxOworfQorCiAjZW5kaWYJLyogX0lORVRfU09DS19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcHY2LmggYi9pbmNsdWRlL25ldC9pcHY2LmgKaW5kZXggZTBhNjEyYi4uZjQyMmY3MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaXB2Ni5oCisrKyBiL2luY2x1ZGUvbmV0L2lwdjYuaApAQCAtMzY3LDYgKzM2NywxMiBAQAogCQkgYS0+czZfYWRkcjMyWzJdIHwgYS0+czZfYWRkcjMyWzNdICkgPT0gMCk7IAogfQogCitzdGF0aWMgaW5saW5lIGludCBpcHY2X2FkZHJfbG9vcGJhY2soY29uc3Qgc3RydWN0IGluNl9hZGRyICphKQoreworCXJldHVybiAoKGEtPnM2X2FkZHIzMlswXSB8IGEtPnM2X2FkZHIzMlsxXSB8CisJCSBhLT5zNl9hZGRyMzJbMl0gfCAoYS0+czZfYWRkcjMyWzNdIF4gaHRvbmwoMSkpKSA9PSAwKTsKK30KKwogc3RhdGljIGlubGluZSBpbnQgaXB2Nl9hZGRyX3Y0bWFwcGVkKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYSkKIHsKIAlyZXR1cm4gKChhLT5zNl9hZGRyMzJbMF0gfCBhLT5zNl9hZGRyMzJbMV0gfApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaCBiL2luY2x1ZGUvbmV0L21hYzgwMjExLmgKaW5kZXggZGFlM2Y5ZS4uYmNkMTYyMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaAorKysgYi9pbmNsdWRlL25ldC9tYWM4MDIxMS5oCkBAIC01OTUsNiArNTk1LDE1IEBACiAJQUxHX0NDTVAsCiB9OwogCisvKioKKyAqIGVudW0gaWVlZTgwMjExX2tleV9sZW4gLSBrZXkgbGVuZ3RoCisgKiBAV0VQNDA6IFdFUCA1IGJ5dGUgbG9uZyBrZXkKKyAqIEBXRVAxMDQ6IFdFUCAxMyBieXRlIGxvbmcga2V5CisgKi8KK2VudW0gaWVlZTgwMjExX2tleV9sZW4geworCUxFTl9XRVA0MCA9IDUsCisJTEVOX1dFUDEwNCA9IDEzLAorfTsKIAogLyoqCiAgKiBlbnVtIGllZWU4MDIxMV9rZXlfZmxhZ3MgLSBrZXkgZmxhZ3MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaCBiL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaAppbmRleCBhYTU0MGU2Li5kOWRkMGY3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCisrKyBiL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaApAQCAtOTUsNiArOTUsMTEgQEAKICNpZmRlZiBDT05GSUdfTkVUX05TCiBleHRlcm4gdm9pZCBfX3B1dF9uZXQoc3RydWN0IG5ldCAqbmV0KTsKIAorc3RhdGljIGlubGluZSBpbnQgbmV0X2FsaXZlKHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlyZXR1cm4gbmV0ICYmIGF0b21pY19yZWFkKCZuZXQtPmNvdW50KTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ICpnZXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlhdG9taWNfaW5jKCZuZXQtPmNvdW50KTsKQEAgLTEyNSw2ICsxMzAsMTIgQEAKIAlyZXR1cm4gbmV0MSA9PSBuZXQyOwogfQogI2Vsc2UKKworc3RhdGljIGlubGluZSBpbnQgbmV0X2FsaXZlKHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ICpnZXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlyZXR1cm4gbmV0OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQuaCBiL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmgKaW5kZXggZjczNmU4NC4uZjgwYzBlZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQuaAorKysgYi9pbmNsdWRlL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5oCkBAIC0xNSw2ICsxNSw3IEBACiAKIC8qIEV4dGVuc2lvbnM6IG9wdGlvbmFsIHN0dWZmIHdoaWNoIGlzbid0IHBlcm1hbmVudGx5IGluIHN0cnVjdC4gKi8KIHN0cnVjdCBuZl9jdF9leHQgeworCXN0cnVjdCByY3VfaGVhZCByY3U7CiAJdTggb2Zmc2V0W05GX0NUX0VYVF9OVU1dOwogCXU4IGxlbjsKIAljaGFyIGRhdGFbMF07CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9yZXF1ZXN0X3NvY2suaCBiL2luY2x1ZGUvbmV0L3JlcXVlc3Rfc29jay5oCmluZGV4IGIyMjBiNWYuLjBjOTZlN2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3JlcXVlc3Rfc29jay5oCisrKyBiL2luY2x1ZGUvbmV0L3JlcXVlc3Rfc29jay5oCkBAIC0xMTUsOCArMTE1LDggQEAKIAlzdHJ1Y3QgcmVxdWVzdF9zb2NrCSpyc2txX2FjY2VwdF9oZWFkOwogCXN0cnVjdCByZXF1ZXN0X3NvY2sJKnJza3FfYWNjZXB0X3RhaWw7CiAJcndsb2NrX3QJCXN5bl93YWl0X2xvY2s7Ci0JdTE2CQkJcnNrcV9kZWZlcl9hY2NlcHQ7Ci0JLyogMiBieXRlcyBob2xlLCB0cnkgdG8gcGFjayAqLworCXU4CQkJcnNrcV9kZWZlcl9hY2NlcHQ7CisJLyogMyBieXRlcyBob2xlLCB0cnkgdG8gcGFjayAqLwogCXN0cnVjdCBsaXN0ZW5fc29jawkqbGlzdGVuX29wdDsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmggYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCmluZGV4IGFiNTAyZWMuLmE4N2ZjMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKKysrIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApAQCAtMTc4LDcgKzE3OCw3IEBACiBleHRlcm4gc3RydWN0IFFkaXNjICpxZGlzY19jcmVhdGVfZGZsdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMsIHUzMiBwYXJlbnRpZCk7CiBleHRlcm4gdm9pZCB0Y2ZfZGVzdHJveShzdHJ1Y3QgdGNmX3Byb3RvICp0cCk7Ci1leHRlcm4gdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICpmbCk7CitleHRlcm4gdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICoqZmwpOwogCiBzdGF0aWMgaW5saW5lIGludCBfX3FkaXNjX2VucXVldWVfdGFpbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJCQkgICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggNjMzMTQ3Yy4uY2Y1NDAzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTEzOSw3ICsxMzksNiBAQAogI2RlZmluZSBNQVhfVENQX0tFRVBJTlRWTAkzMjc2NwogI2RlZmluZSBNQVhfVENQX0tFRVBDTlQJCTEyNwogI2RlZmluZSBNQVhfVENQX1NZTkNOVAkJMTI3Ci0jZGVmaW5lIE1BWF9UQ1BfQUNDRVBUX0RFRkVSUkVEIDY1NTM1CiAKICNkZWZpbmUgVENQX1NZTlFfSU5URVJWQUwJKEhaLzUpCS8qIFBlcmlvZCBvZiBTWU5BQ0sgdGltZXIgKi8KIApAQCAtNDMzLDcgKzQzMiw2IEBACiAKIGV4dGVybiBpbnQJCQl0Y3BfZGlzY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncyk7CiAKLWV4dGVybiB2b2lkCQkJdGNwX3VuaGFzaChzdHJ1Y3Qgc29jayAqc2spOwogCiAvKiBGcm9tIHN5bmNvb2tpZXMuYyAqLwogZXh0ZXJuIF9fdTMyIHN5bmNvb2tpZV9zZWNyZXRbMl1bMTYtNCtTSEFfRElHRVNUX1dPUkRTXTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2J1bGttZW0uaCBiL2luY2x1ZGUvcGNtY2lhL2J1bGttZW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJjNzQ3Mi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL3BjbWNpYS9idWxrbWVtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogYnVsa21lbS5oIC0tIERlZmluaXRpb25zIGZvciBidWxrIG1lbW9yeSBzZXJ2aWNlcwotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKgotICogVGhlIGluaXRpYWwgZGV2ZWxvcGVyIG9mIHRoZSBvcmlnaW5hbCBjb2RlIGlzIERhdmlkIEEuIEhpbmRzCi0gKiA8ZGFoaW5kc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LiAgUG9ydGlvbnMgY3JlYXRlZCBieSBEYXZpZCBBLiBIaW5kcwotICogYXJlIENvcHlyaWdodCAoQykgMTk5OSBEYXZpZCBBLiBIaW5kcy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogKEMpIDE5OTkJCURhdmlkIEEuIEhpbmRzCi0gKi8KLQotI2lmbmRlZiBfTElOVVhfQlVMS01FTV9ICi0jZGVmaW5lIF9MSU5VWF9CVUxLTUVNX0gKLQotLyogRm9yIEdldEZpcnN0UmVnaW9uIGFuZCBHZXROZXh0UmVnaW9uICovCi10eXBlZGVmIHN0cnVjdCByZWdpb25faW5mb190IHsKLSAgICB1X2ludAkJQXR0cmlidXRlczsKLSAgICB1X2ludAkJQ2FyZE9mZnNldDsKLSAgICB1X2ludAkJUmVnaW9uU2l6ZTsKLSAgICB1X2ludAkJQWNjZXNzU3BlZWQ7Ci0gICAgdV9pbnQJCUJsb2NrU2l6ZTsKLSAgICB1X2ludAkJUGFydE11bHRpcGxlOwotICAgIHVfY2hhcgkJSmVkZWNNZnIsIEplZGVjSW5mbzsKLSAgICBtZW1vcnlfaGFuZGxlX3QJbmV4dDsKLX0gcmVnaW9uX2luZm9fdDsKLQotI2RlZmluZSBSRUdJT05fVFlQRQkJMHgwMDAxCi0jZGVmaW5lIFJFR0lPTl9UWVBFX0NNCQkweDAwMDAKLSNkZWZpbmUgUkVHSU9OX1RZUEVfQU0JCTB4MDAwMQotI2RlZmluZSBSRUdJT05fUFJFRkVUQ0gJCTB4MDAwOAotI2RlZmluZSBSRUdJT05fQ0FDSEVBQkxFCTB4MDAxMAotI2RlZmluZSBSRUdJT05fQkFSX01BU0sJCTB4ZTAwMAotI2RlZmluZSBSRUdJT05fQkFSX1NISUZUCTEzCi0KLWludCBwY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbihzdHJ1Y3QgcGNtY2lhX2RldmljZSAqaGFuZGxlLCByZWdpb25faW5mb190ICpyZ24pOwotaW50IHBjbWNpYV9nZXRfbmV4dF9yZWdpb24oc3RydWN0IHBjbWNpYV9kZXZpY2UgKmhhbmRsZSwgcmVnaW9uX2luZm9fdCAqcmduKTsKLQotI2VuZGlmIC8qIF9MSU5VWF9CVUxLTUVNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2Npc3RwbC5oIGIvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKaW5kZXggZDNiYmIxOS4uZTJlMTBjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKKysrIGIvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKQEAgLTU5NSw3ICs1OTUsNyBAQAogaW50IHBjY2FyZF9nZXRfdHVwbGVfZGF0YShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdHVwbGVfdCAqdHVwbGUpOwogaW50IHBjY2FyZF9wYXJzZV90dXBsZSh0dXBsZV90ICp0dXBsZSwgY2lzcGFyc2VfdCAqcGFyc2UpOwogCi1pbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCBjaXNpbmZvX3QgKmluZm8pOworaW50IHBjY2FyZF92YWxpZGF0ZV9jaXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHVuc2lnbmVkIGludCBmdW5jdGlvbiwgdW5zaWduZWQgaW50ICpjb3VudCk7CiAKIC8qIC4uLiBidXQgdXNlIHRoZXNlIHdyYXBwZXJzIGluc3RlYWQgKi8KICNkZWZpbmUgcGNtY2lhX2dldF9maXJzdF90dXBsZShwX2RldiwgdHVwbGUpIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2NzLmggYi9pbmNsdWRlL3BjbWNpYS9jcy5oCmluZGV4IDg3YTI2MGUuLjQ1ZDg0YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcGNtY2lhL2NzLmgKKysrIGIvaW5jbHVkZS9wY21jaWEvY3MuaApAQCAtMzczLDkgKzM3Myw2IEBACiAKIGludCBwY21jaWFfYWNjZXNzX2NvbmZpZ3VyYXRpb25fcmVnaXN0ZXIoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjb25mX3JlZ190ICpyZWcpOwogaW50IHBjbWNpYV9nZXRfY29uZmlndXJhdGlvbl9pbmZvKHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwgY29uZmlnX2luZm9fdCAqY29uZmlnKTsKLWludCBwY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyh3aW5kb3dfaGFuZGxlX3QgKndpbiwgd2luX3JlcV90ICpyZXEpOwotaW50IHBjbWNpYV9nZXRfbmV4dF93aW5kb3cod2luZG93X2hhbmRsZV90ICp3aW4sIHdpbl9yZXFfdCAqcmVxKTsKLWludCBwY21jaWFfZ2V0X3N0YXR1cyhzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNzX3N0YXR1c190ICpzdGF0dXMpOwogaW50IHBjbWNpYV9nZXRfbWVtX3BhZ2Uod2luZG93X2hhbmRsZV90IHdpbiwgbWVtcmVxX3QgKnJlcSk7CiBpbnQgcGNtY2lhX21hcF9tZW1fcGFnZSh3aW5kb3dfaGFuZGxlX3Qgd2luLCBtZW1yZXFfdCAqcmVxKTsKIGludCBwY21jaWFfbW9kaWZ5X2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBtb2Rjb25mX3QgKm1vZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9jc190eXBlcy5oIGIvaW5jbHVkZS9wY21jaWEvY3NfdHlwZXMuaAppbmRleCA5YTZiY2M0Li5mNDAyYTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9jc190eXBlcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2NzX3R5cGVzLmgKQEAgLTIxLDcgKzIxLDggQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fYXZyMzJfXykKKyNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19hdnIzMl9fKSB8fCBcCisJZGVmaW5lZChfX2JmaW5fXykKIC8qIFRoaXMgKGlvYWRkcl90KSBpcyBleHBvc2VkIHRvIHVzZXJzcGFjZSAmIGhlbmNlIGNhbm5vdCBiZSBjaGFuZ2VkLiAqLwogdHlwZWRlZiB1X2ludCAgIGlvYWRkcl90OwogI2Vsc2UKQEAgLTMzLDkgKzM0LDYgQEAKIHR5cGVkZWYgdV9jaGFyCWNpc2RhdGFfdDsKIHR5cGVkZWYgdV9zaG9ydAlwYWdlX3Q7CiAKLXN0cnVjdCBwY21jaWFfZGV2aWNlOwotdHlwZWRlZiBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqY2xpZW50X2hhbmRsZV90OwotCiBzdHJ1Y3Qgd2luZG93X3Q7CiB0eXBlZGVmIHN0cnVjdCB3aW5kb3dfdCAqd2luZG93X2hhbmRsZV90OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9kcy5oIGIvaW5jbHVkZS9wY21jaWEvZHMuaAppbmRleCBmMDQ3YTFmLi5iMzE2MDI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9kcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2RzLmgKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvZGV2aWNlX2lkLmg+CiAKQEAgLTUxLDYgKzUwLDI0IEBACiAgICAgdV9pbnQJCUNhcmRPZmZzZXQ7CiB9IG10ZF9pbmZvX3Q7CiAKK3R5cGVkZWYgc3RydWN0IHJlZ2lvbl9pbmZvX3QgeworICAgIHVfaW50CQlBdHRyaWJ1dGVzOworICAgIHVfaW50CQlDYXJkT2Zmc2V0OworICAgIHVfaW50CQlSZWdpb25TaXplOworICAgIHVfaW50CQlBY2Nlc3NTcGVlZDsKKyAgICB1X2ludAkJQmxvY2tTaXplOworICAgIHVfaW50CQlQYXJ0TXVsdGlwbGU7CisgICAgdV9jaGFyCQlKZWRlY01mciwgSmVkZWNJbmZvOworICAgIG1lbW9yeV9oYW5kbGVfdAluZXh0OworfSByZWdpb25faW5mb190OworI2RlZmluZSBSRUdJT05fVFlQRQkJMHgwMDAxCisjZGVmaW5lIFJFR0lPTl9UWVBFX0NNCQkweDAwMDAKKyNkZWZpbmUgUkVHSU9OX1RZUEVfQU0JCTB4MDAwMQorI2RlZmluZSBSRUdJT05fUFJFRkVUQ0gJCTB4MDAwOAorI2RlZmluZSBSRUdJT05fQ0FDSEVBQkxFCTB4MDAxMAorI2RlZmluZSBSRUdJT05fQkFSX01BU0sJCTB4ZTAwMAorI2RlZmluZSBSRUdJT05fQkFSX1NISUZUCTEzCisKIHR5cGVkZWYgdW5pb24gZHNfaW9jdGxfYXJnX3QgewogICAgIGFkanVzdF90CQlhZGp1c3Q7CiAgICAgY29uZmlnX2luZm9fdAljb25maWc7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9zcy5oIGIvaW5jbHVkZS9wY21jaWEvc3MuaAppbmRleCBmOTVkY2EwLi5lZDkxOWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9zcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL3NzLmgKQEAgLTIxLDcgKzIxLDYgQEAKIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaWZkZWYgQ09ORklHX0NBUkRCVVMKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNlbmRpZgpAQCAtMTM2LDggKzEzNSwxNCBAQAogCXN0cnVjdCByZXNvdXJjZSogKCpmaW5kX21lbSkJKHVuc2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9uZyBudW0sCiAJCQkJCSB1bnNpZ25lZCBsb25nIGFsaWduLCBpbnQgbG93LAogCQkJCQkgc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpOwotCWludAkoKmFkanVzdF9yZXNvdXJjZSkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLAotCQkJCQkgYWRqdXN0X3QgKmFkaik7CisJaW50CSgqYWRkX2lvKQkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLAorCQkJCQkgdW5zaWduZWQgaW50IGFjdGlvbiwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9zdGFydCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9lbmQpOworCWludAkoKmFkZF9tZW0pCQkoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsCisJCQkJCSB1bnNpZ25lZCBpbnQgYWN0aW9uLAorCQkJCQkgdW5zaWduZWQgbG9uZyByX3N0YXJ0LAorCQkJCQkgdW5zaWduZWQgbG9uZyByX2VuZCk7CiAJaW50CSgqaW5pdCkJCQkoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpOwogCXZvaWQJKCpleGl0KQkJCShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcyk7CiB9OwpAQCAtMjQ1LDcgKzI1MCw2IEBACiAKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QJCSp0aHJlYWQ7CiAJc3RydWN0IGNvbXBsZXRpb24JCXRocmVhZF9kb25lOwotCXdhaXRfcXVldWVfaGVhZF90CQl0aHJlYWRfd2FpdDsKIAlzcGlubG9ja190CQkJdGhyZWFkX2xvY2s7CS8qIHByb3RlY3RzIHRocmVhZF9ldmVudHMgKi8KIAl1bnNpZ25lZCBpbnQJCQl0aHJlYWRfZXZlbnRzOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS92ZXJzaW9uLmggYi9pbmNsdWRlL3BjbWNpYS92ZXJzaW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhZDljNWUuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9wY21jaWEvdmVyc2lvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vKiB2ZXJzaW9uLmggMS45NCAyMDAwLzEwLzAzIDE3OjU1OjQ4IChEYXZpZCBIaW5kcykgKi8KLQotLyogVGhpcyBmaWxlIHdpbGwgYmUgcmVtb3ZlZCwgcGxlYXNlIGRvbid0IGluY2x1ZGUgaXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9hZGRyLmggYi9pbmNsdWRlL3JkbWEvaWJfYWRkci5oCmluZGV4IGMzNjc1MGYuLjQ4MzA1N2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9hZGRyLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX2FkZHIuaApAQCAtMiwyOSArMiwzMyBAQAogICogQ29weXJpZ2h0IChjKSAyMDA1IFZvbHRhaXJlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSW50ZWwgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLSAqIFRoaXMgU29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGljZW5zZXM6CisgKiBUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bworICogbGljZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIsIGF2YWlsYWJsZSBmcm9tIHRoZSBmaWxlCisgKiBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLCBvciB0aGUKKyAqIE9wZW5JQi5vcmcgQlNEIGxpY2Vuc2UgYmVsb3c6CiAgKgotICogMSkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiQ29tbW9uIFB1YmxpYyBMaWNlbnNlIDEuMCIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2NwbC5waHAuCisgKiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgorICogICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZworICogICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAqCi0gKiAyKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJUaGUgQlNEIExpY2Vuc2UiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lci4KICAqCi0gKiAzKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIiIGEKLSAqICAgIGNvcHkgb2Ygd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIExpY2Vuc2VlIGhhcyB0aGUgcmlnaHQgdG8gY2hvb3NlIG9uZSBvZiB0aGUgYWJvdmUgbGljZW5zZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSBhbmQgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KICAqLwogCiAjaWYgIWRlZmluZWQoSUJfQUREUl9IKQpAQCAtNTcsNiArNjEsNyBAQAogCXVuc2lnbmVkIGNoYXIgZHN0X2Rldl9hZGRyW01BWF9BRERSX0xFTl07CiAJdW5zaWduZWQgY2hhciBicm9hZGNhc3RbTUFYX0FERFJfTEVOXTsKIAllbnVtIHJkbWFfbm9kZV90eXBlIGRldl90eXBlOworCXN0cnVjdCBuZXRfZGV2aWNlICpzcmNfZGV2OwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfY2FjaGUuaCBiL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCmluZGV4IGYxNzlkMjMuLjAwYTJiOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9jYWNoZS5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIF9JQl9DQUNIRV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfY20uaCBiL2luY2x1ZGUvcmRtYS9pYl9jbS5oCmluZGV4IGE2MjdjODYuLmVjN2M2ZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9jbS5oCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9jbS5oIDQzMTEgMjAwNS0xMi0wNSAxODo0MjowMVogc2Vhbi5oZWZ0eSAkCiAgKi8KICNpZiAhZGVmaW5lZChJQl9DTV9IKQogI2RlZmluZSBJQl9DTV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfZm1yX3Bvb2wuaCBiL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCmluZGV4IDAwZGFkYmYuLmY2MmI4NDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9mbXJfcG9vbC5oIDI3MzAgMjAwNS0wNi0yOCAxNjo0MzowM1ogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmICFkZWZpbmVkKElCX0ZNUl9QT09MX0gpCkBAIC02MSw3ICs1OSw3IEBACiAJaW50ICAgICAgICAgICAgICAgICAgICAgcG9vbF9zaXplOwogCWludCAgICAgICAgICAgICAgICAgICAgIGRpcnR5X3dhdGVybWFyazsKIAl2b2lkICAgICAgICAgICAgICAgICAgKCpmbHVzaF9mdW5jdGlvbikoc3RydWN0IGliX2Ztcl9wb29sICpwb29sLAotCQkJCQkJdm9pZCAqICAgICAgICAgICAgICBhcmcpOworCQkJCQkJdm9pZCAgICAgICAgICAgICAgICphcmcpOwogCXZvaWQgICAgICAgICAgICAgICAgICAgKmZsdXNoX2FyZzsKIAl1bnNpZ25lZCAgICAgICAgICAgICAgICBjYWNoZToxOwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9tYWQuaCBiL2luY2x1ZGUvcmRtYS9pYl9tYWQuaAppbmRleCA3MjI4YzA1Li41ZjZjNDBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfbWFkLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX21hZC5oCkBAIC0zMiwxMSArMzIsOSBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfbWFkLmggNTU5NiAyMDA2LTAzLTAzIDAxOjAwOjA3WiBzZWFuLmhlZnR5ICQKICAqLwogCi0jaWYgIWRlZmluZWQoIElCX01BRF9IICkKKyNpZiAhZGVmaW5lZChJQl9NQURfSCkKICNkZWZpbmUgSUJfTUFEX0gKIAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KQEAgLTE5NCw4ICsxOTIsNyBAQAogCXU4CQkJZGF0YVtJQl9NR01UX1ZFTkRPUl9EQVRBXTsKIH07CiAKLXN0cnVjdCBpYl9jbGFzc19wb3J0X2luZm8KLXsKK3N0cnVjdCBpYl9jbGFzc19wb3J0X2luZm8gewogCXU4CQkJYmFzZV92ZXJzaW9uOwogCXU4CQkJY2xhc3NfdmVyc2lvbjsKIAlfX2JlMTYJCQljYXBhYmlsaXR5X21hc2s7CkBAIC02MTQsMTEgKzYxMSwxMSBAQAogICogYW55IGNsYXNzIHNwZWNpZmljIGhlYWRlciwgYW5kIE1BRCBkYXRhIGFyZWEuCiAgKiBJZiBAcm1wcF9hY3RpdmUgaXMgc2V0LCB0aGUgUk1QUCBoZWFkZXIgd2lsbCBiZSBpbml0aWFsaXplZCBmb3Igc2VuZGluZy4KICAqLwotc3RydWN0IGliX21hZF9zZW5kX2J1ZiAqIGliX2NyZWF0ZV9zZW5kX21hZChzdHJ1Y3QgaWJfbWFkX2FnZW50ICptYWRfYWdlbnQsCi0JCQkJCSAgICB1MzIgcmVtb3RlX3FwbiwgdTE2IHBrZXlfaW5kZXgsCi0JCQkJCSAgICBpbnQgcm1wcF9hY3RpdmUsCi0JCQkJCSAgICBpbnQgaGRyX2xlbiwgaW50IGRhdGFfbGVuLAotCQkJCQkgICAgZ2ZwX3QgZ2ZwX21hc2spOworc3RydWN0IGliX21hZF9zZW5kX2J1ZiAqaWJfY3JlYXRlX3NlbmRfbWFkKHN0cnVjdCBpYl9tYWRfYWdlbnQgKm1hZF9hZ2VudCwKKwkJCQkJICAgdTMyIHJlbW90ZV9xcG4sIHUxNiBwa2V5X2luZGV4LAorCQkJCQkgICBpbnQgcm1wcF9hY3RpdmUsCisJCQkJCSAgIGludCBoZHJfbGVuLCBpbnQgZGF0YV9sZW4sCisJCQkJCSAgIGdmcF90IGdmcF9tYXNrKTsKIAogLyoqCiAgKiBpYl9pc19tYWRfY2xhc3Nfcm1wcCAtIHJldHVybnMgd2hldGhlciBnaXZlbiBtYW5hZ2VtZW50IGNsYXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfcGFjay5oIGIvaW5jbHVkZS9yZG1hL2liX3BhY2suaAppbmRleCBmOTI2MDIwLi5kN2ZjNDVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfcGFjay5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9wYWNrLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3BhY2suaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBJQl9QQUNLX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9zYS5oIGIvaW5jbHVkZS9yZG1hL2liX3NhLmgKaW5kZXggOTQyNjkyYi4uMzg0MWMxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3NhLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3NhLmgKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NhLmggMjgxMSAyMDA1LTA3LTA2IDE4OjExOjQzWiBoYWxyICQKICAqLwogCiAjaWZuZGVmIElCX1NBX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9zbWkuaCBiL2luY2x1ZGUvcmRtYS9pYl9zbWkuaAppbmRleCBmMjlhZjEzLi5hYWNhMDg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfc21pLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3NtaS5oCkBAIC0zMiwxMSArMzIsOSBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfc21pLmggMTM4OSAyMDA0LTEyLTI3IDIyOjU2OjQ3WiByb2xhbmQgJAogICovCiAKLSNpZiAhZGVmaW5lZCggSUJfU01JX0ggKQorI2lmICFkZWZpbmVkKElCX1NNSV9IKQogI2RlZmluZSBJQl9TTUlfSAogCiAjaW5jbHVkZSA8cmRtYS9pYl9tYWQuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX2NtLmggYi9pbmNsdWRlL3JkbWEvaWJfdXNlcl9jbS5oCmluZGV4IDM3NjUwYWYuLmJkM2QzODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX2NtLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfY20uaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdXNlcl9jbS5oIDQwMTkgMjAwNS0xMS0xMSAwMDozMzowOVogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBJQl9VU0VSX0NNX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX21hZC5oIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKaW5kZXggMjlkMmM3Mi4uZDZmY2UxYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3VzZXJfbWFkLmggMjgxNCAyMDA1LTA3LTA2IDE5OjE0OjA5WiBoYWxyICQKICAqLwogCiAjaWZuZGVmIElCX1VTRVJfTUFEX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX3ZlcmJzLmggYi9pbmNsdWRlL3JkbWEvaWJfdXNlcl92ZXJicy5oCmluZGV4IDhkNjViZjAuLmExN2Y3NzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX3ZlcmJzLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfdmVyYnMuaApAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdXNlcl92ZXJicy5oIDQwMTkgMjAwNS0xMS0xMSAwMDozMzowOVogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBJQl9VU0VSX1ZFUkJTX0gKQEAgLTI5MSw3ICsyODksMTAgQEAKIAlfX3UzMiBvcGNvZGU7CiAJX191MzIgdmVuZG9yX2VycjsKIAlfX3UzMiBieXRlX2xlbjsKLQlfX3UzMiBpbW1fZGF0YTsKKwl1bmlvbiB7CisJCV9fdTMyIGltbV9kYXRhOworCQlfX3UzMiBpbnZhbGlkYXRlX3JrZXk7CisJfSBleDsKIAlfX3UzMiBxcF9udW07CiAJX191MzIgc3JjX3FwOwogCV9fdTMyIHdjX2ZsYWdzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmggYi9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaAppbmRleCA5MTFhNjYxLi45MGI1MjlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaApAQCAtMzQsOCArMzQsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdmVyYnMuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmICFkZWZpbmVkKElCX1ZFUkJTX0gpCkBAIC05Myw3ICs5MSw3IEBACiAJSUJfREVWSUNFX1JDX1JOUl9OQUtfR0VOCT0gKDE8PDEyKSwKIAlJQl9ERVZJQ0VfU1JRX1JFU0laRQkJPSAoMTw8MTMpLAogCUlCX0RFVklDRV9OX05PVElGWV9DUQkJPSAoMTw8MTQpLAotCUlCX0RFVklDRV9aRVJPX1NUQUcJCT0gKDE8PDE1KSwKKwlJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkJPSAoMTw8MTUpLAogCUlCX0RFVklDRV9SRVNFUlZFRAkJPSAoMTw8MTYpLCAvKiBvbGQgU0VORF9XX0lOViAqLwogCUlCX0RFVklDRV9NRU1fV0lORE9XCQk9ICgxPDwxNyksCiAJLyoKQEAgLTEwNSw3ICsxMDMsOCBAQAogCSAqLwogCUlCX0RFVklDRV9VRF9JUF9DU1VNCQk9ICgxPDwxOCksCiAJSUJfREVWSUNFX1VEX1RTTwkJPSAoMTw8MTkpLAotCUlCX0RFVklDRV9TRU5EX1dfSU5WCQk9ICgxPDwyMSksCisJSUJfREVWSUNFX01FTV9NR1RfRVhURU5TSU9OUwk9ICgxPDwyMSksCisJSUJfREVWSUNFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSyA9ICgxPDwyMiksCiB9OwogCiBlbnVtIGliX2F0b21pY19jYXAgewpAQCAtMTUxLDYgKzE1MCw3IEBACiAJaW50CQkJbWF4X3NycTsKIAlpbnQJCQltYXhfc3JxX3dyOwogCWludAkJCW1heF9zcnFfc2dlOworCXVuc2lnbmVkIGludAkJbWF4X2Zhc3RfcmVnX3BhZ2VfbGlzdF9sZW47CiAJdTE2CQkJbWF4X3BrZXlzOwogCXU4CQkJbG9jYWxfY2FfYWNrX2RlbGF5OwogfTsKQEAgLTIyNyw2ICsyMjcsNTcgQEAKIAl9CiB9CiAKK3N0cnVjdCBpYl9wcm90b2NvbF9zdGF0cyB7CisJLyogVEJELi4uICovCit9OworCitzdHJ1Y3QgaXdfcHJvdG9jb2xfc3RhdHMgeworCXU2NAlpcEluUmVjZWl2ZXM7CisJdTY0CWlwSW5IZHJFcnJvcnM7CisJdTY0CWlwSW5Ub29CaWdFcnJvcnM7CisJdTY0CWlwSW5Ob1JvdXRlczsKKwl1NjQJaXBJbkFkZHJFcnJvcnM7CisJdTY0CWlwSW5Vbmtub3duUHJvdG9zOworCXU2NAlpcEluVHJ1bmNhdGVkUGt0czsKKwl1NjQJaXBJbkRpc2NhcmRzOworCXU2NAlpcEluRGVsaXZlcnM7CisJdTY0CWlwT3V0Rm9yd0RhdGFncmFtczsKKwl1NjQJaXBPdXRSZXF1ZXN0czsKKwl1NjQJaXBPdXREaXNjYXJkczsKKwl1NjQJaXBPdXROb1JvdXRlczsKKwl1NjQJaXBSZWFzbVRpbWVvdXQ7CisJdTY0CWlwUmVhc21SZXFkczsKKwl1NjQJaXBSZWFzbU9LczsKKwl1NjQJaXBSZWFzbUZhaWxzOworCXU2NAlpcEZyYWdPS3M7CisJdTY0CWlwRnJhZ0ZhaWxzOworCXU2NAlpcEZyYWdDcmVhdGVzOworCXU2NAlpcEluTWNhc3RQa3RzOworCXU2NAlpcE91dE1jYXN0UGt0czsKKwl1NjQJaXBJbkJjYXN0UGt0czsKKwl1NjQJaXBPdXRCY2FzdFBrdHM7CisKKwl1NjQJdGNwUnRvQWxnb3JpdGhtOworCXU2NAl0Y3BSdG9NaW47CisJdTY0CXRjcFJ0b01heDsKKwl1NjQJdGNwTWF4Q29ubjsKKwl1NjQJdGNwQWN0aXZlT3BlbnM7CisJdTY0CXRjcFBhc3NpdmVPcGVuczsKKwl1NjQJdGNwQXR0ZW1wdEZhaWxzOworCXU2NAl0Y3BFc3RhYlJlc2V0czsKKwl1NjQJdGNwQ3VyckVzdGFiOworCXU2NAl0Y3BJblNlZ3M7CisJdTY0CXRjcE91dFNlZ3M7CisJdTY0CXRjcFJldHJhbnNTZWdzOworCXU2NAl0Y3BJbkVycnM7CisJdTY0CXRjcE91dFJzdHM7Cit9OworCit1bmlvbiByZG1hX3Byb3RvY29sX3N0YXRzIHsKKwlzdHJ1Y3QgaWJfcHJvdG9jb2xfc3RhdHMJaWI7CisJc3RydWN0IGl3X3Byb3RvY29sX3N0YXRzCWl3OworfTsKKwogc3RydWN0IGliX3BvcnRfYXR0ciB7CiAJZW51bSBpYl9wb3J0X3N0YXRlCXN0YXRlOwogCWVudW0gaWJfbXR1CQltYXhfbXR1OwpAQCAtNDE0LDYgKzQ2NSw4IEBACiAJSUJfV0NfRkVUQ0hfQURELAogCUlCX1dDX0JJTkRfTVcsCiAJSUJfV0NfTFNPLAorCUlCX1dDX0xPQ0FMX0lOViwKKwlJQl9XQ19GQVNUX1JFR19NUiwKIC8qCiAgKiBTZXQgdmFsdWUgb2YgSUJfV0NfUkVDViBzbyBjb25zdW1lcnMgY2FuIHRlc3QgaWYgYSBjb21wbGV0aW9uIGlzIGEKICAqIHJlY2VpdmUgYnkgdGVzdGluZyAob3Bjb2RlICYgSUJfV0NfUkVDVikuCkBAIC00MjQsNyArNDc3LDggQEAKIAogZW51bSBpYl93Y19mbGFncyB7CiAJSUJfV0NfR1JICQk9IDEsCi0JSUJfV0NfV0lUSF9JTU0JCT0gKDE8PDEpCisJSUJfV0NfV0lUSF9JTU0JCT0gKDE8PDEpLAorCUlCX1dDX1dJVEhfSU5WQUxJREFURQk9ICgxPDwyKSwKIH07CiAKIHN0cnVjdCBpYl93YyB7CkBAIC00MzQsNyArNDg4LDEwIEBACiAJdTMyCQkJdmVuZG9yX2VycjsKIAl1MzIJCQlieXRlX2xlbjsKIAlzdHJ1Y3QgaWJfcXAJICAgICAgICpxcDsKLQlfX2JlMzIJCQlpbW1fZGF0YTsKKwl1bmlvbiB7CisJCV9fYmUzMgkJaW1tX2RhdGE7CisJCXUzMgkJaW52YWxpZGF0ZV9ya2V5OworCX0gZXg7CiAJdTMyCQkJc3JjX3FwOwogCWludAkJCXdjX2ZsYWdzOwogCXUxNgkJCXBrZXlfaW5kZXg7CkBAIC00OTksNyArNTU2LDggQEAKIH07CiAKIGVudW0gaWJfcXBfY3JlYXRlX2ZsYWdzIHsKLQlJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPCT0gMSA8PCAwLAorCUlCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08JCT0gMSA8PCAwLAorCUlCX1FQX0NSRUFURV9CTE9DS19NVUxUSUNBU1RfTE9PUEJBQ0sJPSAxIDw8IDEsCiB9OwogCiBzdHJ1Y3QgaWJfcXBfaW5pdF9hdHRyIHsKQEAgLTYyOCw2ICs2ODYsOSBAQAogCUlCX1dSX0FUT01JQ19GRVRDSF9BTkRfQURELAogCUlCX1dSX0xTTywKIAlJQl9XUl9TRU5EX1dJVEhfSU5WLAorCUlCX1dSX1JETUFfUkVBRF9XSVRIX0lOViwKKwlJQl9XUl9MT0NBTF9JTlYsCisJSUJfV1JfRkFTVF9SRUdfTVIsCiB9OwogCiBlbnVtIGliX3NlbmRfZmxhZ3MgewpAQCAtNjQ0LDYgKzcwNSwxMiBAQAogCXUzMglsa2V5OwogfTsKIAorc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCB7CisJc3RydWN0IGliX2RldmljZSAgICAgICAqZGV2aWNlOworCXU2NAkJICAgICAgICpwYWdlX2xpc3Q7CisJdW5zaWduZWQgaW50CQltYXhfcGFnZV9saXN0X2xlbjsKK307CisKIHN0cnVjdCBpYl9zZW5kX3dyIHsKIAlzdHJ1Y3QgaWJfc2VuZF93ciAgICAgICpuZXh0OwogCXU2NAkJCXdyX2lkOwpAQCAtNjc2LDYgKzc0MywxNSBAQAogCQkJdTE2CXBrZXlfaW5kZXg7IC8qIHZhbGlkIGZvciBHU0kgb25seSAqLwogCQkJdTgJcG9ydF9udW07ICAgLyogdmFsaWQgZm9yIERSIFNNUHMgb24gc3dpdGNoIG9ubHkgKi8KIAkJfSB1ZDsKKwkJc3RydWN0IHsKKwkJCXU2NAkJCQlpb3ZhX3N0YXJ0OworCQkJc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAgICpwYWdlX2xpc3Q7CisJCQl1bnNpZ25lZCBpbnQJCQlwYWdlX3NoaWZ0OworCQkJdW5zaWduZWQgaW50CQkJcGFnZV9saXN0X2xlbjsKKwkJCXUzMgkJCQlsZW5ndGg7CisJCQlpbnQJCQkJYWNjZXNzX2ZsYWdzOworCQkJdTMyCQkJCXJrZXk7CisJCX0gZmFzdF9yZWc7CiAJfSB3cjsKIH07CiAKQEAgLTc3OCw3ICs4NTQsNyBAQAogCXN0cnVjdCBpYl91b2JqZWN0ICAgICAgKnVvYmplY3Q7CiAJaWJfY29tcF9oYW5kbGVyICAgCWNvbXBfaGFuZGxlcjsKIAl2b2lkICAgICAgICAgICAgICAgICAgKCpldmVudF9oYW5kbGVyKShzdHJ1Y3QgaWJfZXZlbnQgKiwgdm9pZCAqKTsKLQl2b2lkICogICAgICAgICAgICAJY3FfY29udGV4dDsKKwl2b2lkICAgICAgICAgICAgICAgICAgICpjcV9jb250ZXh0OwogCWludCAgICAgICAgICAgICAgIAljcWU7CiAJYXRvbWljX3QgICAgICAgICAgCXVzZWNudDsgLyogY291bnQgbnVtYmVyIG9mIHdvcmsgcXVldWVzICovCiB9OwpAQCAtODg0LDcgKzk2MCw3IEBACiAJdm9pZAkJKCpzeW5jX3NpbmdsZV9mb3JfY3B1KShzdHJ1Y3QgaWJfZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICB1NjQgZG1hX2hhbmRsZSwKIAkJCQkJICAgICAgIHNpemVfdCBzaXplLAotCQkJCSAgICAgICAgICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7CisJCQkJCSAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpOwogCXZvaWQJCSgqc3luY19zaW5nbGVfZm9yX2RldmljZSkoc3RydWN0IGliX2RldmljZSAqZGV2LAogCQkJCQkJICB1NjQgZG1hX2hhbmRsZSwKIAkJCQkJCSAgc2l6ZV90IHNpemUsCkBAIC05MjAsNiArOTk2LDggQEAKIAogCXN0cnVjdCBpd19jbV92ZXJicwkgICAgICppd2NtOwogCisJaW50CQkgICAgICAgICAgICgqZ2V0X3Byb3RvY29sX3N0YXRzKShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCisJCQkJCQkJIHVuaW9uIHJkbWFfcHJvdG9jb2xfc3RhdHMgKnN0YXRzKTsKIAlpbnQJCSAgICAgICAgICAgKCpxdWVyeV9kZXZpY2UpKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKIAkJCQkJCSAgIHN0cnVjdCBpYl9kZXZpY2VfYXR0ciAqZGV2aWNlX2F0dHIpOwogCWludAkJICAgICAgICAgICAoKnF1ZXJ5X3BvcnQpKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKQEAgLTEwMTQsNiArMTA5MiwxMSBAQAogCWludCAgICAgICAgICAgICAgICAgICAgICAgICgqcXVlcnlfbXIpKHN0cnVjdCBpYl9tciAqbXIsCiAJCQkJCSAgICAgICBzdHJ1Y3QgaWJfbXJfYXR0ciAqbXJfYXR0cik7CiAJaW50ICAgICAgICAgICAgICAgICAgICAgICAgKCpkZXJlZ19tcikoc3RydWN0IGliX21yICptcik7CisJc3RydWN0IGliX21yICoJCSAgICgqYWxsb2NfZmFzdF9yZWdfbXIpKHN0cnVjdCBpYl9wZCAqcGQsCisJCQkJCSAgICAgICBpbnQgbWF4X3BhZ2VfbGlzdF9sZW4pOworCXN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKiAoKmFsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCkoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQkJCQkgICBpbnQgcGFnZV9saXN0X2xlbik7CisJdm9pZAkJCSAgICgqZnJlZV9mYXN0X3JlZ19wYWdlX2xpc3QpKHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKnBhZ2VfbGlzdCk7CiAJaW50ICAgICAgICAgICAgICAgICAgICAgICAgKCpyZXJlZ19waHlzX21yKShzdHJ1Y3QgaWJfbXIgKm1yLAogCQkJCQkJICAgIGludCBtcl9yZXJlZ19tYXNrLAogCQkJCQkJICAgIHN0cnVjdCBpYl9wZCAqcGQsCkBAIC0xMDY2LDYgKzExNDksNyBAQAogCiAJY2hhcgkJCSAgICAgbm9kZV9kZXNjWzY0XTsKIAlfX2JlNjQJCQkgICAgIG5vZGVfZ3VpZDsKKwl1MzIJCQkgICAgIGxvY2FsX2RtYV9sa2V5OwogCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV90eXBlOwogCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGh5c19wb3J0X2NudDsKIH07CkBAIC0xODA4LDYgKzE4OTIsNTQgQEAKIGludCBpYl9kZXJlZ19tcihzdHJ1Y3QgaWJfbXIgKm1yKTsKIAogLyoqCisgKiBpYl9hbGxvY19mYXN0X3JlZ19tciAtIEFsbG9jYXRlcyBtZW1vcnkgcmVnaW9uIHVzYWJsZSB3aXRoIHRoZQorICogICBJQl9XUl9GQVNUX1JFR19NUiBzZW5kIHdvcmsgcmVxdWVzdC4KKyAqIEBwZDogVGhlIHByb3RlY3Rpb24gZG9tYWluIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVnaW9uLgorICogQG1heF9wYWdlX2xpc3RfbGVuOiByZXF1ZXN0ZWQgbWF4IHBoeXNpY2FsIGJ1ZmZlciBsaXN0IGxlbmd0aCB0byBiZQorICogICB1c2VkIHdpdGggZmFzdCByZWdpc3RlciB3b3JrIHJlcXVlc3RzIGZvciB0aGlzIE1SLgorICovCitzdHJ1Y3QgaWJfbXIgKmliX2FsbG9jX2Zhc3RfcmVnX21yKHN0cnVjdCBpYl9wZCAqcGQsIGludCBtYXhfcGFnZV9saXN0X2xlbik7CisKKy8qKgorICogaWJfYWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0IC0gQWxsb2NhdGVzIGEgcGFnZSBsaXN0IGFycmF5CisgKiBAZGV2aWNlIC0gaWIgZGV2aWNlIHBvaW50ZXIuCisgKiBAcGFnZV9saXN0X2xlbiAtIHNpemUgb2YgdGhlIHBhZ2UgbGlzdCBhcnJheSB0byBiZSBhbGxvY2F0ZWQuCisgKgorICogVGhpcyBhbGxvY2F0ZXMgYW5kIHJldHVybnMgYSBzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICogYW5kIGEKKyAqIHBhZ2VfbGlzdCBhcnJheSB0aGF0IGlzIGF0IGxlYXN0IHBhZ2VfbGlzdF9sZW4gaW4gc2l6ZS4gIFRoZSBhY3R1YWwKKyAqIHNpemUgaXMgcmV0dXJuZWQgaW4gbWF4X3BhZ2VfbGlzdF9sZW4uICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlCisgKiBmb3IgaW5pdGlhbGl6aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgcGFnZV9saXN0IGFycmF5IGJlZm9yZSBwb3N0aW5nCisgKiBhIHNlbmQgd29yayByZXF1ZXN0IHdpdGggdGhlIElCX1dDX0ZBU1RfUkVHX01SIG9wY29kZS4KKyAqCisgKiBUaGUgcGFnZV9saXN0IGFycmF5IGVudHJpZXMgbXVzdCBiZSB0cmFuc2xhdGVkIHVzaW5nIG9uZSBvZiB0aGUKKyAqIGliX2RtYV8qKCkgZnVuY3Rpb25zIGp1c3QgbGlrZSB0aGUgYWRkcmVzc2VzIHBhc3NlZCB0bworICogaWJfbWFwX3BoeXNfZm1yKCkuICBPbmNlIHRoZSBpYl9wb3N0X3NlbmQoKSBpcyBpc3N1ZWQsIHRoZSBzdHJ1Y3QKKyAqIGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCBtdXN0IG5vdCBiZSBtb2RpZmllZCBieSB0aGUgY2FsbGVyIHVudGlsIHRoZQorICogSUJfV0NfRkFTVF9SRUdfTVIgd29yayByZXF1ZXN0IGNvbXBsZXRlcy4KKyAqLworc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqaWJfYWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KAorCQkJCXN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwgaW50IHBhZ2VfbGlzdF9sZW4pOworCisvKioKKyAqIGliX2ZyZWVfZmFzdF9yZWdfcGFnZV9saXN0IC0gRGVhbGxvY2F0ZXMgYSBwcmV2aW91c2x5IGFsbG9jYXRlZAorICogICBwYWdlIGxpc3QgYXJyYXkuCisgKiBAcGFnZV9saXN0IC0gc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCBwb2ludGVyIHRvIGJlIGRlYWxsb2NhdGVkLgorICovCit2b2lkIGliX2ZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKnBhZ2VfbGlzdCk7CisKKy8qKgorICogaWJfdXBkYXRlX2Zhc3RfcmVnX2tleSAtIHVwZGF0ZXMgdGhlIGtleSBwb3J0aW9uIG9mIHRoZSBmYXN0X3JlZyBNUgorICogICBSX0tleSBhbmQgTF9LZXkuCisgKiBAbXIgLSBzdHJ1Y3QgaWJfbXIgcG9pbnRlciB0byBiZSB1cGRhdGVkLgorICogQG5ld2tleSAtIG5ldyBrZXkgdG8gYmUgdXNlZC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGliX3VwZGF0ZV9mYXN0X3JlZ19rZXkoc3RydWN0IGliX21yICptciwgdTggbmV3a2V5KQoreworCW1yLT5sa2V5ID0gKG1yLT5sa2V5ICYgMHhmZmZmZmYwMCkgfCBuZXdrZXk7CisJbXItPnJrZXkgPSAobXItPnJrZXkgJiAweGZmZmZmZjAwKSB8IG5ld2tleTsKK30KKworLyoqCiAgKiBpYl9hbGxvY19tdyAtIEFsbG9jYXRlcyBhIG1lbW9yeSB3aW5kb3cuCiAgKiBAcGQ6IFRoZSBwcm90ZWN0aW9uIGRvbWFpbiBhc3NvY2lhdGVkIHdpdGggdGhlIG1lbW9yeSB3aW5kb3cuCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pd19jbS5oIGIvaW5jbHVkZS9yZG1hL2l3X2NtLmgKaW5kZXggYWVlZmE5Yi4uY2JiODIyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2l3X2NtLmgKKysrIGIvaW5jbHVkZS9yZG1hL2l3X2NtLmgKQEAgLTYyLDcgKzYyLDcgQEAKIAlzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVtb3RlX2FkZHI7CiAJdm9pZCAqcHJpdmF0ZV9kYXRhOwogCXU4IHByaXZhdGVfZGF0YV9sZW47Ci0Jdm9pZCogcHJvdmlkZXJfZGF0YTsKKwl2b2lkICpwcm92aWRlcl9kYXRhOwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvcmRtYV9jbS5oIGIvaW5jbHVkZS9yZG1hL3JkbWFfY20uaAppbmRleCAwMTBmODc2Li4yMmJiMmU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvcmRtYV9jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9yZG1hX2NtLmgKQEAgLTIsMjkgKzIsMzMgQEAKICAqIENvcHlyaWdodCAoYykgMjAwNSBWb2x0YWlyZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChjKSAyMDA1IEludGVsIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpY2Vuc2VzOgorICogVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdG8geW91IHVuZGVyIGEgY2hvaWNlIG9mIG9uZSBvZiB0d28KKyAqIGxpY2Vuc2VzLiAgWW91IG1heSBjaG9vc2UgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyLCBhdmFpbGFibGUgZnJvbSB0aGUgZmlsZQorICogQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZSwgb3IgdGhlCisgKiBPcGVuSUIub3JnIEJTRCBsaWNlbnNlIGJlbG93OgogICoKLSAqIDEpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkNvbW1vbiBQdWJsaWMgTGljZW5zZSAxLjAiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9jcGwucGhwLgorICogICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKKyAqICAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcKKyAqICAgICBjb25kaXRpb25zIGFyZSBtZXQ6CiAgKgotICogMikgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiVGhlIEJTRCBMaWNlbnNlIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIuCiAgKgotICogMykgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyIiBhCi0gKiAgICBjb3B5IG9mIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBMaWNlbnNlZSBoYXMgdGhlIHJpZ2h0IHRvIGNob29zZSBvbmUgb2YgdGhlIGFib3ZlIGxpY2Vuc2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UgYW5kIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSBib3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCiAgKi8KIAogI2lmICFkZWZpbmVkKFJETUFfQ01fSCkKQEAgLTU3LDExICs2MSwxMSBAQAogfTsKIAogZW51bSByZG1hX3BvcnRfc3BhY2UgewotCVJETUFfUFNfU0RQICA9IDB4MDAwMSwKLQlSRE1BX1BTX0lQT0lCPSAweDAwMDIsCi0JUkRNQV9QU19UQ1AgID0gMHgwMTA2LAotCVJETUFfUFNfVURQICA9IDB4MDExMSwKLQlSRE1BX1BTX1NDVFAgPSAweDAxODMKKwlSRE1BX1BTX1NEUCAgID0gMHgwMDAxLAorCVJETUFfUFNfSVBPSUIgPSAweDAwMDIsCisJUkRNQV9QU19UQ1AgICA9IDB4MDEwNiwKKwlSRE1BX1BTX1VEUCAgID0gMHgwMTExLAorCVJETUFfUFNfU0NUUCAgPSAweDAxODMKIH07CiAKIHN0cnVjdCByZG1hX2FkZHIgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL3JkbWFfY21faWIuaCBiL2luY2x1ZGUvcmRtYS9yZG1hX2NtX2liLmgKaW5kZXggOTUwNDI0Yi4uMjM4OWMzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfY21faWIuaAorKysgYi9pbmNsdWRlL3JkbWEvcmRtYV9jbV9pYi5oCkBAIC0xLDI5ICsxLDMzIEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA2IEludGVsIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpY2Vuc2VzOgorICogVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdG8geW91IHVuZGVyIGEgY2hvaWNlIG9mIG9uZSBvZiB0d28KKyAqIGxpY2Vuc2VzLiAgWW91IG1heSBjaG9vc2UgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyLCBhdmFpbGFibGUgZnJvbSB0aGUgZmlsZQorICogQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZSwgb3IgdGhlCisgKiBPcGVuSUIub3JnIEJTRCBsaWNlbnNlIGJlbG93OgogICoKLSAqIDEpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkNvbW1vbiBQdWJsaWMgTGljZW5zZSAxLjAiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9jcGwucGhwLgorICogICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKKyAqICAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcKKyAqICAgICBjb25kaXRpb25zIGFyZSBtZXQ6CiAgKgotICogMikgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiVGhlIEJTRCBMaWNlbnNlIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIuCiAgKgotICogMykgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyIiBhCi0gKiAgICBjb3B5IG9mIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBMaWNlbnNlZSBoYXMgdGhlIHJpZ2h0IHRvIGNob29zZSBvbmUgb2YgdGhlIGFib3ZlIGxpY2Vuc2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UgYW5kIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSBib3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCiAgKi8KIAogI2lmICFkZWZpbmVkKFJETUFfQ01fSUJfSCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvYWQxODQzLmggYi9pbmNsdWRlL3NvdW5kL2FkMTg0My5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMzZhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3NvdW5kL2FkMTg0My5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZS4gIFNlZSB0aGUgZmlsZSAiQ09QWUlORyIgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgYXJjaGl2ZQorICogZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBDb3B5cmlnaHQgMjAwMyBWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgtbWlwcy5vcmc+CisgKiBDb3B5cmlnaHQgMjAwOCBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBmcmFua2VuLmRlPgorICovCisKKyNpZm5kZWYgX19TT1VORF9BRDE4NDNfSAorI2RlZmluZSBfX1NPVU5EX0FEMTg0M19ICisKK3N0cnVjdCBzbmRfYWQxODQzIHsKKwl2b2lkICpjaGlwOworCWludCAoKnJlYWQpKHZvaWQgKmNoaXAsIGludCByZWcpOworCWludCAoKndyaXRlKSh2b2lkICpjaGlwLCBpbnQgcmVnLCBpbnQgdmFsKTsKK307CisKKyNkZWZpbmUgQUQxODQzX0dBSU5fUkVDTEVWIDAKKyNkZWZpbmUgQUQxODQzX0dBSU5fTElORSAgIDEKKyNkZWZpbmUgQUQxODQzX0dBSU5fTElORV8yIDIKKyNkZWZpbmUgQUQxODQzX0dBSU5fTUlDICAgIDMKKyNkZWZpbmUgQUQxODQzX0dBSU5fUENNXzAgIDQKKyNkZWZpbmUgQUQxODQzX0dBSU5fUENNXzEgIDUKKyNkZWZpbmUgQUQxODQzX0dBSU5fU0laRSAgIChBRDE4NDNfR0FJTl9QQ01fMSsxKQorCitpbnQgYWQxODQzX2dldF9nYWluX21heChzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQpOworaW50IGFkMTg0M19nZXRfZ2FpbihzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQpOworaW50IGFkMTg0M19zZXRfZ2FpbihzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQsIGludCBuZXd2YWwpOworaW50IGFkMTg0M19nZXRfcmVjc3JjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpOworaW50IGFkMTg0M19zZXRfcmVjc3JjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBuZXdzcmMpOwordm9pZCBhZDE4NDNfc2V0dXBfZGFjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCSAgICAgIHVuc2lnbmVkIGludCBpZCwKKwkJICAgICAgdW5zaWduZWQgaW50IGZyYW1lcmF0ZSwKKwkJICAgICAgc25kX3BjbV9mb3JtYXRfdCBmbXQsCisJCSAgICAgIHVuc2lnbmVkIGludCBjaGFubmVscyk7Cit2b2lkIGFkMTg0M19zaHV0ZG93bl9kYWMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywKKwkJCSB1bnNpZ25lZCBpbnQgaWQpOwordm9pZCBhZDE4NDNfc2V0dXBfYWRjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCSAgICAgIHVuc2lnbmVkIGludCBmcmFtZXJhdGUsCisJCSAgICAgIHNuZF9wY21fZm9ybWF0X3QgZm10LAorCQkgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMpOwordm9pZCBhZDE4NDNfc2h1dGRvd25fYWRjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpOworaW50IGFkMTg0M19pbml0KHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpOworCisjZW5kaWYgLyogX19TT1VORF9BRDE4NDNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9jb250cm9sLmggYi9pbmNsdWRlL3NvdW5kL2NvbnRyb2wuaAppbmRleCAzZGMxMjkxLi40NzIxYjRiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL2NvbnRyb2wuaAorKysgYi9pbmNsdWRlL3NvdW5kL2NvbnRyb2wuaApAQCAtMTI5LDkgKzEyOSw2IEBACiAjZGVmaW5lIHNuZF9jdGxfdW5yZWdpc3Rlcl9pb2N0bF9jb21wYXQoZmNuKQogI2VuZGlmCiAKLWludCBzbmRfY3RsX2VsZW1fcmVhZChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpOwotaW50IHNuZF9jdGxfZWxlbV93cml0ZShzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2ZpbGUgKmZpbGUsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpOwotCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBzbmRfY3RsX2dldF9pb2ZmbnVtKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjdGwsIHN0cnVjdCBzbmRfY3RsX2VsZW1faWQgKmlkKQogewogCXJldHVybiBpZC0+bnVtaWQgLSBrY3RsLT5pZC5udW1pZDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvY29yZS5oIGIvaW5jbHVkZS9zb3VuZC9jb3JlLmgKaW5kZXggNjk1ZWU1My4uNTU4Yjk2MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9jb3JlLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9jb3JlLmgKQEAgLTQxMiwxMyArNDEyLDEzIEBACiAKICNlbmRpZiAvKiBDT05GSUdfU05EX0RFQlVHICovCiAKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogLyoqCiAgKiBzbmRfcHJpbnRkZCAtIGRlYnVnIHByaW50awogICogQGZvcm1hdDogZm9ybWF0IHN0cmluZwogICoKICAqIFdvcmtzIGxpa2Ugc25kX3ByaW50aygpIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCi0gKiBJZ25vcmVkIHdoZW4gQ09ORklHX1NORF9ERUJVR19ERVRFQ1QgaXMgbm90IHNldC4KKyAqIElnbm9yZWQgd2hlbiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UgaXMgbm90IHNldC4KICAqLwogI2RlZmluZSBzbmRfcHJpbnRkZChmb3JtYXQsIGFyZ3MuLi4pIHNuZF9wcmludGsoZm9ybWF0LCAjI2FyZ3MpCiAjZWxzZQpAQCAtNDQyLDcgKzQ0Miw3IEBACiAJdW5zaWduZWQgc2hvcnQgc3VidmVuZG9yOwkvKiBQQ0kgc3VidmVuZG9yIElEICovCiAJdW5zaWduZWQgc2hvcnQgc3ViZGV2aWNlOwkvKiBQQ0kgc3ViZGV2aWNlIElEICovCiAJaW50IHZhbHVlOwkJCS8qIHZhbHVlICovCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAljb25zdCBjaGFyICpuYW1lOwkJLyogbmFtZSBvZiB0aGUgZGV2aWNlIChvcHRpb25hbCkgKi8KICNlbmRpZgogfTsKQEAgLTQ1MCw3ICs0NTAsNyBAQAogI2RlZmluZSBfU05EX1BDSV9RVUlSS19JRCh2ZW5kLGRldikgXAogCS5zdWJ2ZW5kb3IgPSAodmVuZCksIC5zdWJkZXZpY2UgPSAoZGV2KQogI2RlZmluZSBTTkRfUENJX1FVSVJLX0lEKHZlbmQsZGV2KSB7X1NORF9QQ0lfUVVJUktfSUQodmVuZCwgZGV2KX0KLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogI2RlZmluZSBTTkRfUENJX1FVSVJLKHZlbmQsZGV2LHhuYW1lLHZhbCkgXAogCXtfU05EX1BDSV9RVUlSS19JRCh2ZW5kLCBkZXYpLCAudmFsdWUgPSAodmFsKSwgLm5hbWUgPSAoeG5hbWUpfQogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvY3M0MjMxLXJlZ3MuaCBiL2luY2x1ZGUvc291bmQvY3M0MjMxLXJlZ3MuaAppbmRleCBlOGQxZjNlLi45MjY0NzUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS1yZWdzLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9jczQyMzEtcmVncy5oCkBAIC0xNzcsNCArMTc3LDEyIEBACiAjZGVmaW5lIENTNDIzNl9SSUdIVF9XQVZFCTB4MWMJLyogcmlnaHQgd2F2ZXRhYmxlIHNlcmlhbCBwb3J0IHZvbHVtZSAqLwogI2RlZmluZSBDUzQyMzZfVkVSU0lPTgkJMHg5YwkvKiBjaGlwIHZlcnNpb24gYW5kIElEICovCiAKKy8qIGRlZmluaXRpb25zIGZvciBleHRlbmRlZCByZWdpc3RlcnMgLSBPUFRJOTNYICovCisjZGVmaW5lIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQJMHgxMAorI2RlZmluZSBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVAkweDExCisjZGVmaW5lIE9QVGk5M1hfTUlDX0xFRlRfSU5QVVQJMHgxNAorI2RlZmluZSBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVAkweDE1CisjZGVmaW5lIE9QVGk5M1hfT1VUX0xFRlQJMHgxNgorI2RlZmluZSBPUFRpOTNYX09VVF9SSUdIVAkweDE3CisKICNlbmRpZiAvKiBfX1NPVU5EX0NTNDIzMV9SRUdTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvY3M0MjMxLmggYi9pbmNsdWRlL3NvdW5kL2NzNDIzMS5oCmluZGV4IDY2MDU1ZDcuLmYwNzg1ZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvY3M0MjMxLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9jczQyMzEuaApAQCAtNTgsNiArNTgsNyBAQAogLyogY29tcGF0aWJsZSwgYnV0IGNsb25lcyAqLwogI2RlZmluZSBDUzQyMzFfSFdfSU5URVJXQVZFICAgICAweDEwMDAJLyogSW50ZXJXYXZlIGNoaXAgKi8KICNkZWZpbmUgQ1M0MjMxX0hXX09QTDNTQTIgICAgICAgMHgxMTAxCS8qIE9QTDMtU0EyIGNoaXAsIHNpbWlsYXIgdG8gY3M0MjMxICovCisjZGVmaW5lIENTNDIzMV9IV19PUFRJOTNYIAkweDExMDIJLyogT3B0aSA5MzAvOTMxLzkzMyAqLwogCiAvKiBkZWZpbmVzIGZvciBjb2RlYy5od3NoYXJlICovCiAjZGVmaW5lIENTNDIzMV9IV1NIQVJFX0lSUQkoMTw8MCkKQEAgLTEyMCw2ICsxMjEsOCBAQAogdm9pZCBzbmRfY3M0MjMxX21jZV91cChzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCk7CiB2b2lkIHNuZF9jczQyMzFfbWNlX2Rvd24oc3RydWN0IHNuZF9jczQyMzEgKmNoaXApOwogCit2b2lkIHNuZF9jczQyMzFfb3ZlcnJhbmdlKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKTsKKwogaXJxcmV0dXJuX3Qgc25kX2NzNDIzMV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKTsKIAogY29uc3QgY2hhciAqc25kX2NzNDIzMV9jaGlwX2lkKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvZW11MTBrMS5oIGIvaW5jbHVkZS9zb3VuZC9lbXUxMGsxLmgKaW5kZXggN2I3YjliMS4uMTBlZTI4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9lbXUxMGsxLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9lbXUxMGsxLmgKQEAgLTE2NzAsNiArMTY3MCw3IEBACiAJdW5zaWduZWQgY2hhciBzcGlfZGFjOyAgICAgIC8qIFNQSSBpbnRlcmZhY2UgZm9yIERBQyAqLwogCXVuc2lnbmVkIGNoYXIgaTJjX2FkYzsgICAgICAvKiBJMkMgaW50ZXJmYWNlIGZvciBBREMgKi8KIAl1bnNpZ25lZCBjaGFyIGFkY18xMzYxdDsgICAgLyogVXNlIFBoaWxpcHMgMTM2MVQgQURDICovCisJdW5zaWduZWQgY2hhciBpbnZlcnRfc2hhcmVkX3NwZGlmOyAvKiBhbmFsb2cvZGlnaXRhbCBzd2l0Y2ggaW52ZXJ0ZWQgKi8KIAljb25zdCBjaGFyICpkcml2ZXI7CiAJY29uc3QgY2hhciAqbmFtZTsKIAljb25zdCBjaGFyICppZDsJCS8qIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IC0gY2FuIGJlIE5VTEwgaWYgbm90IG5lZWRlZCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmggYi9pbmNsdWRlL3NvdW5kL3NlcV9rZXJuZWwuaAppbmRleCBmMDIzYzFiLi4zZDlhZmI2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL3NlcV9rZXJuZWwuaAorKysgYi9pbmNsdWRlL3NvdW5kL3NlcV9rZXJuZWwuaApAQCAtMTA1LDcgKzEwNSw3IEBACiAJCQkgICAgICBpbnQgY2FwLCBpbnQgdHlwZSwgaW50IG1pZGlfY2hhbm5lbHMsIGludCBtaWRpX3ZvaWNlcywgY2hhciAqcG9ydG5hbWUpOwogaW50IHNuZF9zZXFfZXZlbnRfcG9ydF9kZXRhY2goaW50IGNsaWVudCwgaW50IHBvcnQpOwogCi0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogdm9pZCBzbmRfc2VxX2F1dG9sb2FkX2xvY2sodm9pZCk7CiB2b2lkIHNuZF9zZXFfYXV0b2xvYWRfdW5sb2NrKHZvaWQpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvc29jLWRhcG0uaCBiL2luY2x1ZGUvc291bmQvc29jLWRhcG0uaAppbmRleCBhMTA1YjAxLi4zMDMwZmRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL3NvYy1kYXBtLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9zb2MtZGFwbS5oCkBAIC0xMzAsNiArMTMwLDEzIEBACiB7CS5pZCA9IHNuZF9zb2NfZGFwbV9hZGMsIC5uYW1lID0gd25hbWUsIC5zbmFtZSA9IHN0bmFtZSwgLnJlZyA9IHdyZWcsIFwKIAkuc2hpZnQgPSB3c2hpZnQsIC5pbnZlcnQgPSB3aW52ZXJ0fQogCisvKiBnZW5lcmljIHJlZ2lzdGVyIG1vZGlmaWVyIHdpZGdldCAqLworI2RlZmluZSBTTkRfU09DX0RBUE1fUkVHKHdpZCwgd25hbWUsIHdyZWcsIHdzaGlmdCwgd21hc2ssIHdvbl92YWwsIHdvZmZfdmFsKSBcCit7CS5pZCA9IHdpZCwgLm5hbWUgPSB3bmFtZSwgLmtjb250cm9scyA9IE5VTEwsIC5udW1fa2NvbnRyb2xzID0gMCwgXAorCS5yZWcgPSAtKCh3cmVnKSArIDEpLCAuc2hpZnQgPSB3c2hpZnQsIC5tYXNrID0gd21hc2ssIFwKKwkub25fdmFsID0gd29uX3ZhbCwgLm9mZl92YWwgPSB3b2ZmX3ZhbCwgLmV2ZW50ID0gZGFwbV9yZWdfZXZlbnQsIFwKKwkuZXZlbnRfZmxhZ3MgPSBTTkRfU09DX0RBUE1fUFJFX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRH0KKwogLyogZGFwbSBrY29udHJvbCB0eXBlcyAqLwogI2RlZmluZSBTT0NfREFQTV9TSU5HTEUoeG5hbWUsIHJlZywgc2hpZnQsIG1heCwgaW52ZXJ0KSBcCiB7CS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCBcCkBAIC0xOTMsNiArMjAwLDcgQEAKIGVudW0gc25kX3NvY19kYXBtX3R5cGU7CiBzdHJ1Y3Qgc25kX3NvY19kYXBtX3BhdGg7CiBzdHJ1Y3Qgc25kX3NvY19kYXBtX3BpbjsKK3N0cnVjdCBzbmRfc29jX2RhcG1fcm91dGU7CiAKIC8qIGRhcG0gY29udHJvbHMgKi8KIGludCBzbmRfc29jX2RhcG1fcHV0X3ZvbHN3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLApAQCAtMjA1LDI1ICsyMTMsMzIgQEAKIAlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCk7CiBpbnQgc25kX3NvY19kYXBtX25ld19jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKIAljb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqd2lkZ2V0KTsKK2ludCBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwljb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqd2lkZ2V0LAorCWludCBudW0pOwogCiAvKiBkYXBtIHBhdGggc2V0dXAgKi8KLWludCBzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCitpbnQgIF9fZGVwcmVjYXRlZCBzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCiAJY29uc3QgY2hhciAqc2lua19uYW1lLCBjb25zdCBjaGFyICpjb250cm9sX25hbWUsIGNvbnN0IGNoYXIgKnNyY19uYW1lKTsKIGludCBzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKTsKIHZvaWQgc25kX3NvY19kYXBtX2ZyZWUoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYpOworaW50IHNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCSAgICBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlICpyb3V0ZSwgaW50IG51bSk7CiAKIC8qIGRhcG0gZXZlbnRzICovCiBpbnQgc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKnN0cmVhbSwKIAlpbnQgZXZlbnQpOwotaW50IHNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsIGludCBldmVudCk7CitpbnQgc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2LAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKTsKIAogLyogZGFwbSBzeXMgZnMgLSB1c2VkIGJ5IHRoZSBjb3JlICovCiBpbnQgc25kX3NvY19kYXBtX3N5c19hZGQoc3RydWN0IGRldmljZSAqZGV2KTsKIAotLyogZGFwbSBhdWRpbyBlbmRwb2ludCBjb250cm9sICovCi1pbnQgc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCi0JY2hhciAqcGluLCBpbnQgc3RhdHVzKTsKLWludCBzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKTsKKy8qIGRhcG0gYXVkaW8gcGluIGNvbnRyb2wgYW5kIHN0YXR1cyAqLworaW50IHNuZF9zb2NfZGFwbV9lbmFibGVfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKTsKK2ludCBzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pOworaW50IHNuZF9zb2NfZGFwbV9nZXRfcGluX3N0YXR1cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKnBpbik7CitpbnQgc25kX3NvY19kYXBtX3N5bmMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKTsKIAogLyogZGFwbSB3aWRnZXQgdHlwZXMgKi8KIGVudW0gc25kX3NvY19kYXBtX3R5cGUgewpAQCAtMjQ1LDYgKzI2MCwxOCBAQAogCXNuZF9zb2NfZGFwbV9wb3N0LAkJCS8qIG1hY2hpbmUgc3BlY2lmaWMgcG9zdCB3aWRnZXQgLSBleGVjIGxhc3QgKi8KIH07CiAKKy8qCisgKiBEQVBNIGF1ZGlvIHJvdXRlIGRlZmluaXRpb24uCisgKgorICogRGVmaW5lcyBhbiBhdWRpbyByb3V0ZSBvcmlnaW5hdGluZyBhdCBzb3VyY2UgdmlhIGNvbnRyb2wgYW5kIGZpbmlzaGluZworICogYXQgc2luay4KKyAqLworc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSB7CisJY29uc3QgY2hhciAqc2luazsKKwljb25zdCBjaGFyICpjb250cm9sOworCWNvbnN0IGNoYXIgKnNvdXJjZTsKK307CisKIC8qIGRhcG0gYXVkaW8gcGF0aCBiZXR3ZWVuIHR3byB3aWRnZXRzICovCiBzdHJ1Y3Qgc25kX3NvY19kYXBtX3BhdGggewogCWNoYXIgKm5hbWU7CkBAIC0yNzcsNiArMzA0LDkgQEAKIAl1bnNpZ25lZCBjaGFyIHNoaWZ0OwkJCS8qIGJpdHMgdG8gc2hpZnQgKi8KIAl1bnNpZ25lZCBpbnQgc2F2ZWRfdmFsdWU7CQkvKiB3aWRnZXQgc2F2ZWQgdmFsdWUgKi8KIAl1bnNpZ25lZCBpbnQgdmFsdWU7CQkJCS8qIHdpZGdldCBjdXJyZW50IHZhbHVlICovCisJdW5zaWduZWQgaW50IG1hc2s7CQkJLyogbm9uLXNoaWZ0ZWQgbWFzayAqLworCXVuc2lnbmVkIGludCBvbl92YWw7CQkJLyogb24gc3RhdGUgdmFsdWUgKi8KKwl1bnNpZ25lZCBpbnQgb2ZmX3ZhbDsJCQkvKiBvZmYgc3RhdGUgdmFsdWUgKi8KIAl1bnNpZ25lZCBjaGFyIHBvd2VyOjE7CQkJLyogYmxvY2sgcG93ZXIgc3RhdHVzICovCiAJdW5zaWduZWQgY2hhciBpbnZlcnQ6MTsJCQkvKiBpbnZlcnQgdGhlIHBvd2VyIGJpdCAqLwogCXVuc2lnbmVkIGNoYXIgYWN0aXZlOjE7CQkJLyogYWN0aXZlIHN0cmVhbSBvbiBEQUMsIEFEQydzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3NvYy5oIGIvaW5jbHVkZS9zb3VuZC9zb2MuaAppbmRleCBkM2M4YzAzLi4xODkwZDg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL3NvYy5oCisrKyBiL2luY2x1ZGUvc291bmQvc29jLmgKQEAgLTczLDYgKzczLDE1IEBACiAJLmdldCA9IHNuZF9zb2NfZ2V0X3ZvbHN3XzJyLCAucHV0ID0gc25kX3NvY19wdXRfdm9sc3dfMnIsIFwKIAkucHJpdmF0ZV92YWx1ZSA9IChyZWdfbGVmdCkgfCAoKHNoaWZ0KSA8PCA4KSAgfCBcCiAJCSgobWF4KSA8PCAxMikgfCAoKGludmVydCkgPDwgMjApIHwgKChyZWdfcmlnaHQpIDw8IDI0KSB9CisjZGVmaW5lIFNPQ19ET1VCTEVfUzhfVExWKHhuYW1lLCByZWcsIG1pbiwgbWF4LCB0bHZfYXJyYXkpIFwKK3sJLmlmYWNlICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9ICh4bmFtZSksIFwKKwkuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFEIHwgXAorCQkgIFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsIFwKKwkudGx2LnAgID0gKHRsdl9hcnJheSksIFwKKwkuaW5mbyAgID0gc25kX3NvY19pbmZvX3ZvbHN3X3M4LCAuZ2V0ID0gc25kX3NvY19nZXRfdm9sc3dfczgsIFwKKwkucHV0ICAgID0gc25kX3NvY19wdXRfdm9sc3dfczgsIFwKKwkucHJpdmF0ZV92YWx1ZSA9IChyZWcpIHwgKCgoc2lnbmVkIGNoYXIpbWF4KSA8PCAxNikgfCBcCisJCQkgKCgoc2lnbmVkIGNoYXIpbWluKSA8PCAyNCkgfQogI2RlZmluZSBTT0NfRU5VTV9ET1VCTEUoeHJlZywgeHNoaWZ0X2wsIHhzaGlmdF9yLCB4bWFzaywgeHRleHRzKSBcCiB7CS5yZWcgPSB4cmVnLCAuc2hpZnRfbCA9IHhzaGlmdF9sLCAuc2hpZnRfciA9IHhzaGlmdF9yLCBcCiAJLm1hc2sgPSB4bWFzaywgLnRleHRzID0geHRleHRzIH0KQEAgLTkxLDYgKzEwMCwxNSBAQAogCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCiAJLmdldCA9IHhoYW5kbGVyX2dldCwgLnB1dCA9IHhoYW5kbGVyX3B1dCwgXAogCS5wcml2YXRlX3ZhbHVlID0gU09DX1NJTkdMRV9WQUxVRSh4cmVnLCB4c2hpZnQsIHhtYXNrLCB4aW52ZXJ0KSB9CisjZGVmaW5lIFNPQ19TSU5HTEVfRVhUX1RMVih4bmFtZSwgeHJlZywgeHNoaWZ0LCB4bWFzaywgeGludmVydCxcCisJIHhoYW5kbGVyX2dldCwgeGhhbmRsZXJfcHV0LCB0bHZfYXJyYXkpIFwKK3sJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIFwKKwkuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFEIHxcCisJCSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLFwKKwkudGx2LnAgPSAodGx2X2FycmF5KSwgXAorCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCisJLmdldCA9IHhoYW5kbGVyX2dldCwgLnB1dCA9IHhoYW5kbGVyX3B1dCwgXAorCS5wcml2YXRlX3ZhbHVlID0gU09DX1NJTkdMRV9WQUxVRSh4cmVnLCB4c2hpZnQsIHhtYXNrLCB4aW52ZXJ0KSB9CiAjZGVmaW5lIFNPQ19TSU5HTEVfQk9PTF9FWFQoeG5hbWUsIHhkYXRhLCB4aGFuZGxlcl9nZXQsIHhoYW5kbGVyX3B1dCkgXAogewkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgXAogCS5pbmZvID0gc25kX3NvY19pbmZvX2Jvb2xfZXh0LCBcCkBAIC0xMDMsNiArMTIxLDI0IEBACiAJLnByaXZhdGVfdmFsdWUgPSAodW5zaWduZWQgbG9uZykmeGVudW0gfQogCiAvKgorICogQmlhcyBsZXZlbHMKKyAqCisgKiBAT046ICAgICAgQmlhcyBpcyBmdWxseSBvbiBmb3IgYXVkaW8gcGxheWJhY2sgYW5kIGNhcHR1cmUgb3BlcmF0aW9ucy4KKyAqIEBQUkVQQVJFOiBQcmVwYXJlIGZvciBhdWRpbyBvcGVyYXRpb25zLiBDYWxsZWQgYmVmb3JlIERBUE0gc3dpdGNoaW5nIGZvcgorICogICAgICAgICAgIHN0cmVhbSBzdGFydCBhbmQgc3RvcCBvcGVyYXRpb25zLgorICogQFNUQU5EQlk6IExvdyBwb3dlciBzdGFuZGJ5IHN0YXRlIHdoZW4gbm8gcGxheWJhY2svY2FwdHVyZSBvcGVyYXRpb25zIGFyZQorICogICAgICAgICAgIGluIHByb2dyZXNzLiBOT1RFOiBUaGUgdHJhbnNpdGlvbiB0aW1lIGJldHdlZW4gU1RBTkRCWSBhbmQgT04KKyAqICAgICAgICAgICBzaG91bGQgYmUgYXMgZmFzdCBhcyBwb3NzaWJsZSBhbmQgbm8gbG9uZ2VyIHRoYW4gMTBtcy4KKyAqIEBPRkY6ICAgICBQb3dlciBPZmYuIE5vIHJlc3RyaWN0aW9ucyBvbiB0cmFuc2l0aW9uIHRpbWVzLgorICovCitlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCB7CisJU05EX1NPQ19CSUFTX09OLAorCVNORF9TT0NfQklBU19QUkVQQVJFLAorCVNORF9TT0NfQklBU19TVEFOREJZLAorCVNORF9TT0NfQklBU19PRkYsCit9OworCisvKgogICogRGlnaXRhbCBBdWRpbyBJbnRlcmZhY2UgKERBSSkgdHlwZXMKICAqLwogI2RlZmluZSBTTkRfU09DX0RBSV9BQzk3CTB4MQpAQCAtMTg1LDggKzIyMSw3IEBACiBzdHJ1Y3Qgc25kX3NvY19vcHM7CiBzdHJ1Y3Qgc25kX3NvY19kYWlfbW9kZTsKIHN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lOwotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpOwotc3RydWN0IHNuZF9zb2NfY3B1X2RhaTsKK3N0cnVjdCBzbmRfc29jX2RhaTsKIHN0cnVjdCBzbmRfc29jX2NvZGVjOwogc3RydWN0IHNuZF9zb2NfbWFjaGluZV9jb25maWc7CiBzdHJ1Y3Qgc29jX2VudW07CkBAIC0yMjEsNiArMjU2LDI3IEBACiAJc3RydWN0IHNuZF9hYzk3X2J1c19vcHMgKm9wcywgaW50IG51bSk7CiB2b2lkIHNuZF9zb2NfZnJlZV9hYzk3X2NvZGVjKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CiAKKy8qIERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlIGNsb2NraW5nIEFQSS4qLworaW50IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBjbGtfaWQsCisJdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpOworCitpbnQgc25kX3NvY19kYWlfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwlpbnQgZGl2X2lkLCBpbnQgZGl2KTsKKworaW50IHNuZF9zb2NfZGFpX3NldF9wbGwoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJaW50IHBsbF9pZCwgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291dCk7CisKKy8qIERpZ2l0YWwgQXVkaW8gaW50ZXJmYWNlIGZvcm1hdHRpbmcgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KTsKKworaW50IHNuZF9zb2NfZGFpX3NldF90ZG1fc2xvdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwl1bnNpZ25lZCBpbnQgbWFzaywgaW50IHNsb3RzKTsKKworaW50IHNuZF9zb2NfZGFpX3NldF90cmlzdGF0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IHRyaXN0YXRlKTsKKworLyogRGlnaXRhbCBBdWRpbyBJbnRlcmZhY2UgbXV0ZSAqLworaW50IHNuZF9zb2NfZGFpX2RpZ2l0YWxfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpOworCiAvKgogICpDb250cm9scwogICovCkBAIC0yNDksNiArMzA1LDEyIEBACiAJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpOwogaW50IHNuZF9zb2NfcHV0X3ZvbHN3XzJyKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKK2ludCBzbmRfc29jX2luZm9fdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbyk7CitpbnQgc25kX3NvY19nZXRfdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpOworaW50IHNuZF9zb2NfcHV0X3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKIAogLyogU29DIFBDTSBzdHJlYW0gaW5mb3JtYXRpb24gKi8KIHN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gewpAQCAtMjcyLDg3ICszMzQsNDUgQEAKIAlpbnQgKCp0cmlnZ2VyKShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKiwgaW50KTsKIH07CiAKLS8qIEFTb0MgY29kZWMgREFJIG9wcyAqLwotc3RydWN0IHNuZF9zb2NfY29kZWNfb3BzIHsKLQkvKiBjb2RlYyBEQUkgY2xvY2tpbmcgY29uZmlndXJhdGlvbiAqLwotCWludCAoKnNldF9zeXNjbGspKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorLyogQVNvQyBEQUkgb3BzICovCitzdHJ1Y3Qgc25kX3NvY19kYWlfb3BzIHsKKwkvKiBEQUkgY2xvY2tpbmcgY29uZmlndXJhdGlvbiAqLworCWludCAoKnNldF9zeXNjbGspKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcik7Ci0JaW50ICgqc2V0X3BsbCkoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCisJaW50ICgqc2V0X3BsbCkoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpOwotCWludCAoKnNldF9jbGtkaXYpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAotCQlpbnQgZGl2X2lkLCBpbnQgZGl2KTsKKwlpbnQgKCpzZXRfY2xrZGl2KShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IGRpdl9pZCwgaW50IGRpdik7CiAKLQkvKiBDUFUgREFJIGZvcm1hdCBjb25maWd1cmF0aW9uICovCi0JaW50ICgqc2V0X2ZtdCkoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCi0JCXVuc2lnbmVkIGludCBmbXQpOwotCWludCAoKnNldF90ZG1fc2xvdCkoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCisJLyogREFJIGZvcm1hdCBjb25maWd1cmF0aW9uICovCisJaW50ICgqc2V0X2ZtdCkoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCBmbXQpOworCWludCAoKnNldF90ZG1fc2xvdCkoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCXVuc2lnbmVkIGludCBtYXNrLCBpbnQgc2xvdHMpOwotCWludCAoKnNldF90cmlzdGF0ZSkoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICosIGludCB0cmlzdGF0ZSk7CisJaW50ICgqc2V0X3RyaXN0YXRlKShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IHRyaXN0YXRlKTsKIAogCS8qIGRpZ2l0YWwgbXV0ZSAqLwotCWludCAoKmRpZ2l0YWxfbXV0ZSkoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICosIGludCBtdXRlKTsKKwlpbnQgKCpkaWdpdGFsX211dGUpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSk7CiB9OwogCi0vKiBBU29DIGNwdSBEQUkgb3BzICovCi1zdHJ1Y3Qgc25kX3NvY19jcHVfb3BzIHsKLQkvKiBDUFUgREFJIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24gKi8KLQlpbnQgKCpzZXRfc3lzY2xrKShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAotCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcik7Ci0JaW50ICgqc2V0X2Nsa2Rpdikoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJaW50IGRpdl9pZCwgaW50IGRpdik7Ci0JaW50ICgqc2V0X3BsbCkoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJaW50IHBsbF9pZCwgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291dCk7Ci0KLQkvKiBDUFUgREFJIGZvcm1hdCBjb25maWd1cmF0aW9uICovCi0JaW50ICgqc2V0X2ZtdCkoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJdW5zaWduZWQgaW50IGZtdCk7Ci0JaW50ICgqc2V0X3RkbV9zbG90KShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAotCQl1bnNpZ25lZCBpbnQgbWFzaywgaW50IHNsb3RzKTsKLQlpbnQgKCpzZXRfdHJpc3RhdGUpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKiwgaW50IHRyaXN0YXRlKTsKLX07Ci0KLS8qIFNvQyBDb2RlYyBEQUkgKi8KLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB7Ci0JY2hhciAqbmFtZTsKLQlpbnQgaWQ7Ci0JdW5zaWduZWQgY2hhciB0eXBlOwotCi0JLyogREFJIGNhcGFiaWxpdGllcyAqLwotCXN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gcGxheWJhY2s7Ci0Jc3RydWN0IHNuZF9zb2NfcGNtX3N0cmVhbSBjYXB0dXJlOwotCi0JLyogREFJIHJ1bnRpbWUgaW5mbyAqLwotCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKLQl1bnNpZ25lZCBpbnQgYWN0aXZlOwotCXVuc2lnbmVkIGNoYXIgcG9wX3dhaXQ6MTsKLQotCS8qIG9wcyAqLwotCXN0cnVjdCBzbmRfc29jX29wcyBvcHM7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfb3BzIGRhaV9vcHM7Ci0KLQkvKiBEQUkgcHJpdmF0ZSBkYXRhICovCi0Jdm9pZCAqcHJpdmF0ZV9kYXRhOwotfTsKLQotLyogU29DIENQVSBEQUkgKi8KLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgewotCisvKiBTb0MgIERBSSAoRGlnaXRhbCBBdWRpbyBJbnRlcmZhY2UpICovCitzdHJ1Y3Qgc25kX3NvY19kYWkgewogCS8qIERBSSBkZXNjcmlwdGlvbiAqLwogCWNoYXIgKm5hbWU7CiAJdW5zaWduZWQgaW50IGlkOwogCXVuc2lnbmVkIGNoYXIgdHlwZTsKIAogCS8qIERBSSBjYWxsYmFja3MgKi8KLQlpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7Ci0Jdm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CisJaW50ICgqcHJvYmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOworCXZvaWQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSk7CiAJaW50ICgqc3VzcGVuZCkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKIAlpbnQgKCpyZXN1bWUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSk7CiAKIAkvKiBvcHMgKi8KIAlzdHJ1Y3Qgc25kX3NvY19vcHMgb3BzOwotCXN0cnVjdCBzbmRfc29jX2NwdV9vcHMgZGFpX29wczsKKwlzdHJ1Y3Qgc25kX3NvY19kYWlfb3BzIGRhaV9vcHM7CiAKIAkvKiBEQUkgY2FwYWJpbGl0aWVzICovCiAJc3RydWN0IHNuZF9zb2NfcGNtX3N0cmVhbSBjYXB0dXJlOwpAQCAtMzYwLDcgKzM4MCw5IEBACiAKIAkvKiBEQUkgcnVudGltZSBpbmZvICovCiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZTsKLQl1bnNpZ25lZCBjaGFyIGFjdGl2ZToxOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKKwl1bnNpZ25lZCBpbnQgYWN0aXZlOworCXVuc2lnbmVkIGNoYXIgcG9wX3dhaXQ6MTsKIAl2b2lkICpkbWFfZGF0YTsKIAogCS8qIERBSSBwcml2YXRlIGRhdGEgKi8KQEAgLTM3NCw3ICszOTYsOCBAQAogCXN0cnVjdCBtdXRleCBtdXRleDsKIAogCS8qIGNhbGxiYWNrcyAqLwotCWludCAoKmRhcG1fZXZlbnQpKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KTsKKwlpbnQgKCpzZXRfYmlhc19sZXZlbCkoc3RydWN0IHNuZF9zb2NfY29kZWMgKiwKKwkJCSAgICAgIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKTsKIAogCS8qIHJ1bnRpbWUgKi8KIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CkBAIC0zOTYsMTIgKzQxOSwxMiBAQAogCS8qIGRhcG0gKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGRhcG1fd2lkZ2V0czsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGRhcG1fcGF0aHM7Ci0JdW5zaWduZWQgaW50IGRhcG1fc3RhdGU7Ci0JdW5zaWduZWQgaW50IHN1c3BlbmRfZGFwbV9zdGF0ZTsKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBiaWFzX2xldmVsOworCWVudW0gc25kX3NvY19iaWFzX2xldmVsIHN1c3BlbmRfYmlhc19sZXZlbDsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGRlbGF5ZWRfd29yazsKIAogCS8qIGNvZGVjIERBSSdzICovCi0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWk7CiAJdW5zaWduZWQgaW50IG51bV9kYWk7CiB9OwogCkBAIC00MjAsMTIgKzQ0MywxMiBAQAogCWludCAoKnByb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAlpbnQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogCWludCAoKnN1c3BlbmQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSk7CiAJaW50ICgqcmVzdW1lKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCiAJLyogcGNtIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiAqLwotCWludCAoKnBjbV9uZXcpKHN0cnVjdCBzbmRfY2FyZCAqLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKiwKKwlpbnQgKCpwY21fbmV3KShzdHJ1Y3Qgc25kX2NhcmQgKiwgc3RydWN0IHNuZF9zb2NfZGFpICosCiAJCXN0cnVjdCBzbmRfcGNtICopOwogCXZvaWQgKCpwY21fZnJlZSkoc3RydWN0IHNuZF9wY20gKik7CiAKQEAgLTQzOSw4ICs0NjIsOCBAQAogCWNoYXIgKnN0cmVhbV9uYW1lOwkJLyogU3RyZWFtIG5hbWUgKi8KIAogCS8qIERBSSAqLwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpOwogCiAJLyogbWFjaGluZSBzdHJlYW0gb3BlcmF0aW9ucyAqLwogCXN0cnVjdCBzbmRfc29jX29wcyAqb3BzOwpAQCAtNDY3LDcgKzQ5MCw4IEBACiAJaW50ICgqcmVzdW1lX3Bvc3QpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogCiAJLyogY2FsbGJhY2tzICovCi0JaW50ICgqZGFwbV9ldmVudCkoc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqLCBpbnQgZXZlbnQpOworCWludCAoKnNldF9iaWFzX2xldmVsKShzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICosCisJCQkgICAgICBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCk7CiAKIAkvKiBDUFUgPC0tPiBDb2RlYyBEQUkgbGlua3MgICovCiAJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmRhaV9saW5rOwpAQCAtNDgyLDYgKzUwNiw3IEBACiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSAqY29kZWNfZGV2OwogCXN0cnVjdCBkZWxheWVkX3dvcmsgZGVsYXllZF93b3JrOworCXN0cnVjdCB3b3JrX3N0cnVjdCBkZWZlcnJlZF9yZXN1bWVfd29yazsKIAl2b2lkICpjb2RlY19kYXRhOwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmggYi9pbmNsdWRlL3NvdW5kL3VkYTEzNDEuaAppbmRleCAyZTU2NGJmLi4xMTBkNWRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL3VkYTEzNDEuaAorKysgYi9pbmNsdWRlL3NvdW5kL3VkYTEzNDEuaApAQCAtMTUsOCArMTUsNiBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlcyBzdXBwb3J0CiAgKi8KIAotLyogJElkOiB1ZGExMzQxLmgsdiAxLjggMjAwNS8xMS8xNyAxNDoxNzoyMSB0aXdhaSBFeHAgJCAqLwotCiAjZGVmaW5lIFVEQTEzNDFfQUxTQV9OQU1FICJzbmQtdWRhMTM0MSIKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oIGIvaW5jbHVkZS9zb3VuZC92ZXJzaW9uLmgKaW5kZXggZWQ2ZmIyZS4uNmI3OGFmZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC92ZXJzaW9uLmgKKysrIGIvaW5jbHVkZS9zb3VuZC92ZXJzaW9uLmgKQEAgLTEsMyArMSwzIEBACi0vKiBpbmNsdWRlL3ZlcnNpb24uaC4gIEdlbmVyYXRlZCBieSBhbHNhL2tzeW5jIHNjcmlwdC4gICovCi0jZGVmaW5lIENPTkZJR19TTkRfVkVSU0lPTiAiMS4wLjE2IgorLyogaW5jbHVkZS92ZXJzaW9uLmggKi8KKyNkZWZpbmUgQ09ORklHX1NORF9WRVJTSU9OICIxLjAuMTciCiAjZGVmaW5lIENPTkZJR19TTkRfREFURSAiIgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZXZlbnRzLmggYi9pbmNsdWRlL3hlbi9ldmVudHMuaAppbmRleCBhY2Q4ZTA2Li42N2M0NDM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9ldmVudHMuaAorKysgYi9pbmNsdWRlL3hlbi9ldmVudHMuaApAQCAtMzIsNiArMzIsNyBAQAogCiB2b2lkIHhlbl9zZW5kX0lQSV9vbmUodW5zaWduZWQgaW50IGNwdSwgZW51bSBpcGlfdmVjdG9yIHZlY3Rvcik7CiBpbnQgcmVzZW5kX2lycV9vbl9ldnRjaG4odW5zaWduZWQgaW50IGlycSk7Cit2b2lkIHJlYmluZF9ldnRjaG5faXJxKGludCBldnRjaG4sIGludCBpcnEpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgbm90aWZ5X3JlbW90ZV92aWFfZXZ0Y2huKGludCBwb3J0KQogewpAQCAtNDAsNCArNDEsNyBAQAogfQogCiBleHRlcm4gdm9pZCBub3RpZnlfcmVtb3RlX3ZpYV9pcnEoaW50IGlycSk7CisKK2V4dGVybiB2b2lkIHhlbl9pcnFfcmVzdW1lKHZvaWQpOworCiAjZW5kaWYJLyogX1hFTl9FVkVOVFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKaW5kZXggNDY2MjA0OC4uYTQwZjFjZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCkBAIC01MSw2ICs1MSw5IEBACiAJdTE2IGNvdW50OwogfTsKIAoraW50IGdudHRhYl9zdXNwZW5kKHZvaWQpOworaW50IGdudHRhYl9yZXN1bWUodm9pZCk7CisKIGludCBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3MoZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwKIAkJCQlpbnQgcmVhZG9ubHkpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odmMtY29uc29sZS5oIGIvaW5jbHVkZS94ZW4vaHZjLWNvbnNvbGUuaAppbmRleCAyMWMwZWNmLi45OGI3OWJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9odmMtY29uc29sZS5oCisrKyBiL2luY2x1ZGUveGVuL2h2Yy1jb25zb2xlLmgKQEAgLTMsNCArMywxMyBAQAogCiBleHRlcm4gc3RydWN0IGNvbnNvbGUgeGVuYm9vdF9jb25zb2xlOwogCisjaWZkZWYgQ09ORklHX0hWQ19YRU4KK3ZvaWQgeGVuX2NvbnNvbGVfcmVzdW1lKHZvaWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fY29uc29sZV9yZXN1bWUodm9pZCkgeyB9CisjZW5kaWYKKwordm9pZCB4ZW5fcmF3X2NvbnNvbGVfd3JpdGUoY29uc3QgY2hhciAqc3RyKTsKK3ZvaWQgeGVuX3Jhd19wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pOworCiAjZW5kaWYJLyogWEVOX0hWQ19DT05TT0xFX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9lbGZub3RlLmggYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZWxmbm90ZS5oCmluZGV4IGE2NGQzZGYuLjdhODI2MmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9lbGZub3RlLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2VsZm5vdGUuaApAQCAtMTIwLDYgKzEyMCwyNiBAQAogICovCiAjZGVmaW5lIFhFTl9FTEZOT1RFX0JTRF9TWU1UQUIgICAgMTEKIAorLyoKKyAqIFRoZSBsb3dlc3QgYWRkcmVzcyB0aGUgaHlwZXJ2aXNvciBob2xlIGNhbiBiZWdpbiBhdCAobnVtZXJpYykuCisgKgorICogVGhpcyBtdXN0IG5vdCBiZSBzZXQgaGlnaGVyIHRoYW4gSFlQRVJWSVNPUl9WSVJUX1NUQVJULiBJdHMgcHJlc2VuY2UKKyAqIGFsc28gaW5kaWNhdGVzIHRvIHRoZSBoeXBlcnZpc29yIHRoYXQgdGhlIGtlcm5lbCBjYW4gZGVhbCB3aXRoIHRoZQorICogaG9sZSBzdGFydGluZyBhdCBhIGhpZ2hlciBhZGRyZXNzLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0hWX1NUQVJUX0xPVyAgMTIKKworLyoKKyAqIExpc3Qgb2YgbWFkZHJfdC1zaXplZCBtYXNrL3ZhbHVlIHBhaXJzIGRlc2NyaWJpbmcgaG93IHRvIHJlY29nbml6ZQorICogKG5vbi1wcmVzZW50KSBMMSBwYWdlIHRhYmxlIGVudHJpZXMgY2FycnlpbmcgdmFsaWQgTUZOcyAobnVtZXJpYykuCisgKi8KKyNkZWZpbmUgWEVOX0VMRk5PVEVfTDFfTUZOX1ZBTElEICAxMworCisvKgorICogV2hldGhlciBvciBub3QgdGhlIGd1ZXN0IHN1cHBvcnRzIGNvb3BlcmF0aXZlIHN1c3BlbmQgY2FuY2VsbGF0aW9uLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX1NVU1BFTkRfQ0FOQ0VMIDE0CisKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRUxGTk9URV9IX18gKi8KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2ZlYXR1cmVzLmgKaW5kZXggZDczMjI4ZC4uZjUxYjY0MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2ZlYXR1cmVzLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2ZlYXR1cmVzLmgKQEAgLTM4LDYgKzM4LDkgQEAKICAqLwogI2RlZmluZSBYRU5GRUFUX3BhZV9wZ2Rpcl9hYm92ZV80Z2IgICAgICAgIDQKIAorLyogeDg2OiBEb2VzIHRoaXMgWGVuIGhvc3Qgc3VwcG9ydCB0aGUgTU1VX1BUX1VQREFURV9QUkVTRVJWRV9BRCBoeXBlcmNhbGw/ICovCisjZGVmaW5lIFhFTkZFQVRfbW11X3B0X3VwZGF0ZV9wcmVzZXJ2ZV9hZCAgNQorCiAjZGVmaW5lIFhFTkZFQVRfTlJfU1VCTUFQUyAxCiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfRkVBVFVSRVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZmJpZi5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2ZiaWYuaAppbmRleCA1YTkzNGRkLi45NzRhNTFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZmJpZi5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9mYmlmLmgKQEAgLTQ5LDExICs0OSwyNyBAQAogCWludDMyX3QgaGVpZ2h0OwkJLyogcmVjdCBoZWlnaHQgKi8KIH07CiAKKy8qCisgKiBGcmFtZWJ1ZmZlciByZXNpemUgbm90aWZpY2F0aW9uIGV2ZW50CisgKiBDYXBhYmxlIGJhY2tlbmQgc2V0cyBmZWF0dXJlLXJlc2l6ZSBpbiB4ZW5zdG9yZS4KKyAqLworI2RlZmluZSBYRU5GQl9UWVBFX1JFU0laRSAzCisKK3N0cnVjdCB4ZW5mYl9yZXNpemUgeworCXVpbnQ4X3QgdHlwZTsJCS8qIFhFTkZCX1RZUEVfUkVTSVpFICovCisJaW50MzJfdCB3aWR0aDsJCS8qIHdpZHRoIGluIHBpeGVscyAqLworCWludDMyX3QgaGVpZ2h0OwkJLyogaGVpZ2h0IGluIHBpeGVscyAqLworCWludDMyX3Qgc3RyaWRlOwkJLyogc3RyaWRlIGluIGJ5dGVzICovCisJaW50MzJfdCBkZXB0aDsJCS8qIGRlcHRoIGluIGJpdHMgKi8KKwlpbnQzMl90IG9mZnNldDsJCS8qIHN0YXJ0IG9mZnNldCB3aXRoaW4gZnJhbWVidWZmZXIgKi8KK307CisKICNkZWZpbmUgWEVORkJfT1VUX0VWRU5UX1NJWkUgNDAKIAogdW5pb24geGVuZmJfb3V0X2V2ZW50IHsKIAl1aW50OF90IHR5cGU7CiAJc3RydWN0IHhlbmZiX3VwZGF0ZSB1cGRhdGU7CisJc3RydWN0IHhlbmZiX3Jlc2l6ZSByZXNpemU7CiAJY2hhciBwYWRbWEVORkJfT1VUX0VWRU5UX1NJWkVdOwogfTsKIApAQCAtMTA1LDE1ICsxMjEsMTggQEAKIAkgKiBFYWNoIGRpcmVjdG9yeSBwYWdlIGhvbGRzIFBBR0VfU0laRSAvIHNpemVvZigqcGQpCiAJICogZnJhbWVidWZmZXIgcGFnZXMsIGFuZCBjYW4gdGh1cyBtYXAgdXAgdG8gUEFHRV9TSVpFICoKIAkgKiBQQUdFX1NJWkUgLyBzaXplb2YoKnBkKSBieXRlcy4gIFdpdGggUEFHRV9TSVpFID09IDQwOTYgYW5kCi0JICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpID09IDQsIHRoYXQncyA0IE1lZ3MuICBUd28gZGlyZWN0b3J5Ci0JICogcGFnZXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgYSB3aGlsZS4KKwkgKiBzaXplb2YodW5zaWduZWQgbG9uZykgPT0gNC84LCB0aGF0J3MgNCBNZWdzIDMyIGJpdCBhbmQgMgorCSAqIE1lZ3MgNjQgYml0LiAgMjU2IGRpcmVjdG9yaWVzIGdpdmUgZW5vdWdoIHJvb20gZm9yIGEgNTEyCisJICogTWVnIGZyYW1lYnVmZmVyIHdpdGggYSBtYXggcmVzb2x1dGlvbiBvZiAxMiw4MDB4MTAsMjQwLgorCSAqIFNob3VsZCBiZSBlbm91Z2ggZm9yIGEgd2hpbGUgd2l0aCByb29tIGxlZnRvdmVyIGZvcgorCSAqIGV4cGFuc2lvbi4KIAkgKi8KLQl1bnNpZ25lZCBsb25nIHBkWzJdOworCXVuc2lnbmVkIGxvbmcgcGRbMjU2XTsKIH07CiAKIC8qCi0gKiBXYXJ0OiB4ZW5rYmQgbmVlZHMgdG8ga25vdyByZXNvbHV0aW9uLiAgUHV0IGl0IGhlcmUgdW50aWwgYSBiZXR0ZXIKLSAqIHNvbHV0aW9uIGlzIGZvdW5kLCBidXQgZG9uJ3QgbGVhayBpdCB0byB0aGUgYmFja2VuZC4KKyAqIFdhcnQ6IHhlbmtiZCBuZWVkcyB0byBrbm93IGRlZmF1bHQgcmVzb2x1dGlvbi4gIFB1dCBpdCBoZXJlIHVudGlsIGEKKyAqIGJldHRlciBzb2x1dGlvbiBpcyBmb3VuZCwgYnV0IGRvbid0IGxlYWsgaXQgdG8gdGhlIGJhY2tlbmQuCiAgKi8KICNpZmRlZiBfX0tFUk5FTF9fCiAjZGVmaW5lIFhFTkZCX1dJRFRIIDgwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmggYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8va2JkaWYuaAppbmRleCBmYjk3ZjQyLi44MDY2Yzc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8va2JkaWYuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8va2JkaWYuaApAQCAtNDksNiArNDksNyBAQAogCXVpbnQ4X3QgdHlwZTsJCS8qIFhFTktCRF9UWVBFX01PVElPTiAqLwogCWludDMyX3QgcmVsX3g7CQkvKiByZWxhdGl2ZSBYIG1vdGlvbiAqLwogCWludDMyX3QgcmVsX3k7CQkvKiByZWxhdGl2ZSBZIG1vdGlvbiAqLworCWludDMyX3QgcmVsX3o7CQkvKiByZWxhdGl2ZSBaIG1vdGlvbiAod2hlZWwpICovCiB9OwogCiBzdHJ1Y3QgeGVua2JkX2tleSB7CkBAIC02MSw2ICs2Miw3IEBACiAJdWludDhfdCB0eXBlOwkJLyogWEVOS0JEX1RZUEVfUE9TICovCiAJaW50MzJfdCBhYnNfeDsJCS8qIGFic29sdXRlIFggcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KIAlpbnQzMl90IGFic195OwkJLyogYWJzb2x1dGUgWSBwb3NpdGlvbiAoaW4gRkIgcGl4ZWxzKSAqLworCWludDMyX3QgcmVsX3o7CQkvKiByZWxhdGl2ZSBaIG1vdGlvbiAod2hlZWwpICovCiB9OwogCiAjZGVmaW5lIFhFTktCRF9JTl9FVkVOVF9TSVpFIDQwCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5LmggYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5LmgKaW5kZXggZGE3Njg0Ni4uYWYzNmVhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9tZW1vcnkuaApAQCAtMjksNyArMjksNyBAQAogICAgICAqICAgT1VUOiBHTUZOIGJhc2VzIG9mIGV4dGVudHMgdGhhdCB3ZXJlIGFsbG9jYXRlZAogICAgICAqICAgKE5CLiBUaGlzIGNvbW1hbmQgYWxzbyB1cGRhdGVzIHRoZSBtYWNoX3RvX3BoeXMgdHJhbnNsYXRpb24gdGFibGUpCiAgICAgICovCi0gICAgdWxvbmcgZXh0ZW50X3N0YXJ0OworICAgIEdVRVNUX0hBTkRMRSh1bG9uZykgZXh0ZW50X3N0YXJ0OwogCiAgICAgLyogTnVtYmVyIG9mIGV4dGVudHMsIGFuZCBzaXplL2FsaWdubWVudCBvZiBlYWNoICgyXmV4dGVudF9vcmRlciBwYWdlcykuICovCiAgICAgdW5zaWduZWQgbG9uZyAgbnJfZXh0ZW50czsKQEAgLTUwLDYgKzUwLDcgQEAKICAgICBkb21pZF90ICAgICAgICBkb21pZDsKIAogfTsKK0RFRklORV9HVUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24pOwogCiAvKgogICogUmV0dXJucyB0aGUgbWF4aW11bSBtYWNoaW5lIGZyYW1lIG51bWJlciBvZiBtYXBwZWQgUkFNIGluIHRoaXMgc3lzdGVtLgpAQCAtODUsNyArODYsNyBAQAogICAgICAqIGFueSBsYXJnZSBkaXNjb250aWd1aXRpZXMgaW4gdGhlIG1hY2hpbmUgYWRkcmVzcyBzcGFjZSwgMk1CIGdhcHMgaW4KICAgICAgKiB0aGUgbWFjaHBoeXMgdGFibGUgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhbiBNRk4gYmFzZSBvZiB6ZXJvLgogICAgICAqLwotICAgIHVsb25nIGV4dGVudF9zdGFydDsKKyAgICBHVUVTVF9IQU5ETEUodWxvbmcpIGV4dGVudF9zdGFydDsKIAogICAgIC8qCiAgICAgICogTnVtYmVyIG9mIGV4dGVudHMgd3JpdHRlbiB0byB0aGUgYWJvdmUgYXJyYXkuIFRoaXMgd2lsbCBiZSBzbWFsbGVyCkBAIC05Myw2ICs5NCw3IEBACiAgICAgICovCiAgICAgdW5zaWduZWQgaW50IG5yX2V4dGVudHM7CiB9OworREVGSU5FX0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVuX21hY2hwaHlzX21mbl9saXN0KTsKIAogLyoKICAqIFNldHMgdGhlIEdQRk4gYXQgd2hpY2ggYSBwYXJ0aWN1bGFyIHBhZ2UgYXBwZWFycyBpbiB0aGUgc3BlY2lmaWVkIGd1ZXN0J3MKQEAgLTExNSw2ICsxMTcsNyBAQAogICAgIC8qIEdQRk4gd2hlcmUgdGhlIHNvdXJjZSBtYXBwaW5nIHBhZ2Ugc2hvdWxkIGFwcGVhci4gKi8KICAgICB1bnNpZ25lZCBsb25nIGdwZm47CiB9OworREVGSU5FX0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVuX2FkZF90b19waHlzbWFwKTsKIAogLyoKICAqIFRyYW5zbGF0ZXMgYSBsaXN0IG9mIGRvbWFpbi1zcGVjaWZpYyBHUEZOcyBpbnRvIE1GTnMuIFJldHVybnMgYSAtdmUgZXJyb3IKQEAgLTEyOSwxMyArMTMyLDE0IEBACiAgICAgdW5zaWduZWQgbG9uZyBucl9ncGZuczsKIAogICAgIC8qIExpc3Qgb2YgR1BGTnMgdG8gdHJhbnNsYXRlLiAqLwotICAgIHVsb25nIGdwZm5fbGlzdDsKKyAgICBHVUVTVF9IQU5ETEUodWxvbmcpIGdwZm5fbGlzdDsKIAogICAgIC8qCiAgICAgICogT3V0cHV0IGxpc3QgdG8gY29udGFpbiBNRk4gdHJhbnNsYXRpb25zLiBNYXkgYmUgdGhlIHNhbWUgYXMgdGhlIGlucHV0CiAgICAgICogbGlzdCAoaW4gd2hpY2ggY2FzZSBlYWNoIGlucHV0IEdQRk4gaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgb3V0cHV0IE1GTikuCiAgICAgICovCi0gICAgdWxvbmcgbWZuX2xpc3Q7CisgICAgR1VFU1RfSEFORExFKHVsb25nKSBtZm5fbGlzdDsKIH07CitERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5fdHJhbnNsYXRlX2dwZm5fbGlzdCk7CiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfTUVNT1JZX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oCmluZGV4IDliMDE4ZGEuLjJiZWZhM2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UveGVuLmgKQEAgLTEwLDYgKzEwLDcgQEAKICNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18KIAogI2luY2x1ZGUgPGFzbS94ZW4vaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8YXNtL3B2Y2xvY2stYWJpLmg+CiAKIC8qCiAgKiBYRU4gIlNZU1RFTSBDQUxMUyIgKGEuay5hLiBIWVBFUkNBTExTKS4KQEAgLTExMyw5ICsxMTQsMTQgQEAKICAqIHB0cls6Ml0gIC0tIE1hY2hpbmUgYWRkcmVzcyB3aXRoaW4gdGhlIGZyYW1lIHdob3NlIG1hcHBpbmcgdG8gbW9kaWZ5LgogICogICAgICAgICAgICAgVGhlIGZyYW1lIG11c3QgYmVsb25nIHRvIHRoZSBGRCwgaWYgb25lIGlzIHNwZWNpZmllZC4KICAqIHZhbCAgICAgIC0tIFZhbHVlIHRvIHdyaXRlIGludG8gdGhlIG1hcHBpbmcgZW50cnkuCisgKgorICogcHRyWzE6MF0gPT0gTU1VX1BUX1VQREFURV9QUkVTRVJWRV9BRDoKKyAqIEFzIE1NVV9OT1JNQUxfUFRfVVBEQVRFIGFib3ZlLCBidXQgQS9EIGJpdHMgY3VycmVudGx5IGluIHRoZSBQVEUgYXJlIE9SZWQKKyAqIHdpdGggdGhvc2UgaW4gQHZhbC4KICAqLwotI2RlZmluZSBNTVVfTk9STUFMX1BUX1VQREFURSAgICAgMCAvKiBjaGVja2VkICcqcHRyID0gdmFsJy4gcHRyIGlzIE1BLiAgICAgICAqLwotI2RlZmluZSBNTVVfTUFDSFBIWVNfVVBEQVRFICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICAqLworI2RlZmluZSBNTVVfTk9STUFMX1BUX1VQREFURSAgICAgIDAgLyogY2hlY2tlZCAnKnB0ciA9IHZhbCcuIHB0ciBpcyBNQS4gICAgICAgKi8KKyNkZWZpbmUgTU1VX01BQ0hQSFlTX1VQREFURSAgICAgICAxIC8qIHB0ciA9IE1BIG9mIGZyYW1lIHRvIG1vZGlmeSBlbnRyeSBmb3IgICovCisjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5OiAqcHRyID0gdmFsIHwgKCpwdHImKEF8RCkpICovCiAKIC8qCiAgKiBNTVUgRVhURU5ERUQgT1BFUkFUSU9OUwpAQCAtMzM2LDcgKzM0Miw3IEBACiAJdWludDhfdCBldnRjaG5fdXBjYWxsX21hc2s7CiAJdW5zaWduZWQgbG9uZyBldnRjaG5fcGVuZGluZ19zZWw7CiAJc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2g7Ci0Jc3RydWN0IHZjcHVfdGltZV9pbmZvIHRpbWU7CisJc3RydWN0IHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gdGltZTsKIH07IC8qIDY0IGJ5dGVzICh4ODYpICovCiAKIC8qCkBAIC0zODQsOSArMzkwLDcgQEAKIAkgKiBXYWxsY2xvY2sgdGltZTogdXBkYXRlZCBvbmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQogCSAqIHRoZWlyIGdldHRpbWVvZmRheSgpIHN5c2NhbGwgb24gdGhpcyB3YWxsY2xvY2stYmFzZSB2YWx1ZS4KIAkgKi8KLQl1aW50MzJfdCB3Y192ZXJzaW9uOyAgICAgIC8qIFZlcnNpb24gY291bnRlcjogc2VlIHZjcHVfdGltZV9pbmZvX3QuICovCi0JdWludDMyX3Qgd2Nfc2VjOyAgICAgICAgICAvKiBTZWNzICAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KLQl1aW50MzJfdCB3Y19uc2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworCXN0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgd2M7CiAKIAlzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94ZW4tb3BzLmggYi9pbmNsdWRlL3hlbi94ZW4tb3BzLmgKaW5kZXggMTBkZGZlMC4uYTcwNmQ2YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuLW9wcy5oCisrKyBiL2luY2x1ZGUveGVuL3hlbi1vcHMuaApAQCAtNSw0ICs1LDEwIEBACiAKIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdmNwdV9pbmZvICosIHhlbl92Y3B1KTsKIAordm9pZCB4ZW5fcHJlX3N1c3BlbmQodm9pZCk7Cit2b2lkIHhlbl9wb3N0X3N1c3BlbmQoaW50IHN1c3BlbmRfY2FuY2VsbGVkKTsKKwordm9pZCB4ZW5fbW1fcGluX2FsbCh2b2lkKTsKK3ZvaWQgeGVuX21tX3VucGluX2FsbCh2b2lkKTsKKwogI2VuZGlmIC8qIElOQ0xVREVfWEVOX09QU19IICovCmRpZmYgLS1naXQgYS9pbml0L2NhbGlicmF0ZS5jIGIvaW5pdC9jYWxpYnJhdGUuYwppbmRleCBlY2IzODIyLi43OTYzZTNmIDEwMDY0NAotLS0gYS9pbml0L2NhbGlicmF0ZS5jCisrKyBiL2luaXQvY2FsaWJyYXRlLmMKQEAgLTgsNyArOCw5IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KIAordW5zaWduZWQgbG9uZyBscGpfZmluZTsKIHVuc2lnbmVkIGxvbmcgcHJlc2V0X2xwajsKIHN0YXRpYyBpbnQgX19pbml0IGxwal9zZXR1cChjaGFyICpzdHIpCiB7CkBAIC0zMyw5ICszNSw5IEBACiAJdW5zaWduZWQgbG9uZyBwcmVfc3RhcnQsIHN0YXJ0LCBwb3N0X3N0YXJ0OwogCXVuc2lnbmVkIGxvbmcgcHJlX2VuZCwgZW5kLCBwb3N0X2VuZDsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X2ppZmZpZXM7Ci0JdW5zaWduZWQgbG9uZyB0c2NfcmF0ZV9taW4sIHRzY19yYXRlX21heDsKLQl1bnNpZ25lZCBsb25nIGdvb2RfdHNjX3N1bSA9IDA7Ci0JdW5zaWduZWQgbG9uZyBnb29kX3RzY19jb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyB0aW1lcl9yYXRlX21pbiwgdGltZXJfcmF0ZV9tYXg7CisJdW5zaWduZWQgbG9uZyBnb29kX3RpbWVyX3N1bSA9IDA7CisJdW5zaWduZWQgbG9uZyBnb29kX3RpbWVyX2NvdW50ID0gMDsKIAlpbnQgaTsKIAogCWlmIChyZWFkX2N1cnJlbnRfdGltZXIoJnByZV9zdGFydCkgPCAwICkKQEAgLTc5LDIyICs4MSwyNCBAQAogCQl9CiAJCXJlYWRfY3VycmVudF90aW1lcigmcG9zdF9lbmQpOwogCi0JCXRzY19yYXRlX21heCA9IChwb3N0X2VuZCAtIHByZV9zdGFydCkgLyBERUxBWV9DQUxJQlJBVElPTl9USUNLUzsKLQkJdHNjX3JhdGVfbWluID0gKHByZV9lbmQgLSBwb3N0X3N0YXJ0KSAvIERFTEFZX0NBTElCUkFUSU9OX1RJQ0tTOworCQl0aW1lcl9yYXRlX21heCA9IChwb3N0X2VuZCAtIHByZV9zdGFydCkgLworCQkJCQlERUxBWV9DQUxJQlJBVElPTl9USUNLUzsKKwkJdGltZXJfcmF0ZV9taW4gPSAocHJlX2VuZCAtIHBvc3Rfc3RhcnQpIC8KKwkJCQkJREVMQVlfQ0FMSUJSQVRJT05fVElDS1M7CiAKIAkJLyoKLQkgCSAqIElmIHRoZSB1cHBlciBsaW1pdCBhbmQgbG93ZXIgbGltaXQgb2YgdGhlIHRzY19yYXRlIGlzCisJCSAqIElmIHRoZSB1cHBlciBsaW1pdCBhbmQgbG93ZXIgbGltaXQgb2YgdGhlIHRpbWVyX3JhdGUgaXMKIAkJICogPj0gMTIuNSUgYXBhcnQsIHJlZG8gY2FsaWJyYXRpb24uCiAJCSAqLwogCQlpZiAocHJlX3N0YXJ0ICE9IDAgJiYgcHJlX2VuZCAhPSAwICYmCi0JCSAgICAodHNjX3JhdGVfbWF4IC0gdHNjX3JhdGVfbWluKSA8ICh0c2NfcmF0ZV9tYXggPj4gMykpIHsKLQkJCWdvb2RfdHNjX2NvdW50Kys7Ci0JCQlnb29kX3RzY19zdW0gKz0gdHNjX3JhdGVfbWF4OworCQkgICAgKHRpbWVyX3JhdGVfbWF4IC0gdGltZXJfcmF0ZV9taW4pIDwgKHRpbWVyX3JhdGVfbWF4ID4+IDMpKSB7CisJCQlnb29kX3RpbWVyX2NvdW50Kys7CisJCQlnb29kX3RpbWVyX3N1bSArPSB0aW1lcl9yYXRlX21heDsKIAkJfQogCX0KIAotCWlmIChnb29kX3RzY19jb3VudCkKLQkJcmV0dXJuIChnb29kX3RzY19zdW0vZ29vZF90c2NfY291bnQpOworCWlmIChnb29kX3RpbWVyX2NvdW50KQorCQlyZXR1cm4gKGdvb2RfdGltZXJfc3VtL2dvb2RfdGltZXJfY291bnQpOwogCiAJcHJpbnRrKEtFUk5fV0FSTklORyAiY2FsaWJyYXRlX2RlbGF5X2RpcmVjdCgpIGZhaWxlZCB0byBnZXQgYSBnb29kICIKIAkgICAgICAgImVzdGltYXRlIGZvciBsb29wc19wZXJfamlmZnkuXG5Qcm9iYWJseSBkdWUgdG8gbG9uZyBwbGF0Zm9ybSBpbnRlcnJ1cHRzLiBDb25zaWRlciB1c2luZyBcImxwaj1cIiBib290IG9wdGlvbi5cbiIpOwpAQCAtMTA4LDYgKzExMiwxMCBAQAogICogVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgb2YgcHJlY2lzaW9uIGZvciB0aGUgbG9vcHNfcGVyX2ppZmZ5LiAgRWFjaAogICogYml0IHRha2VzIG9uIGF2ZXJhZ2UgMS41L0haIHNlY29uZHMuICBUaGlzIChsaWtlIHRoZSBvcmlnaW5hbCkgaXMgYSBsaXR0bGUKICAqIGJldHRlciB0aGFuIDElCisgKiBGb3IgdGhlIGJvb3QgY3B1IHdlIGNhbiBza2lwIHRoZSBkZWxheSBjYWxpYnJhdGlvbiBhbmQgYXNzaWduIGl0IGEgdmFsdWUKKyAqIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRpbWVyIGZyZXF1ZW5jeS4KKyAqIEZvciB0aGUgcmVzdCBvZiB0aGUgQ1BVcyB3ZSBjYW5ub3QgYXNzdW1lIHRoYXQgdGhlIHRpbWVyIGZyZXF1ZW5jeSBpcyBzYW1lIGFzCisgKiB0aGUgY3B1IGZyZXF1ZW5jeSwgaGVuY2UgZG8gdGhlIGNhbGlicmF0aW9uIGZvciB0aG9zZS4KICAqLwogI2RlZmluZSBMUFNfUFJFQyA4CiAKQEAgLTExOCwyMCArMTI2LDIwIEBACiAKIAlpZiAocHJlc2V0X2xwaikgewogCQlsb29wc19wZXJfamlmZnkgPSBwcmVzZXRfbHBqOwotCQlwcmludGsoIkNhbGlicmF0aW5nIGRlbGF5IGxvb3AgKHNraXBwZWQpLi4uICIKLQkJCSIlbHUuJTAybHUgQm9nb01JUFMgcHJlc2V0XG4iLAotCQkJbG9vcHNfcGVyX2ppZmZ5Lyg1MDAwMDAvSFopLAotCQkJKGxvb3BzX3Blcl9qaWZmeS8oNTAwMC9IWikpICUgMTAwKTsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkJIkNhbGlicmF0aW5nIGRlbGF5IGxvb3AgKHNraXBwZWQpIHByZXNldCB2YWx1ZS4uICIpOworCX0gZWxzZSBpZiAoKHNtcF9wcm9jZXNzb3JfaWQoKSA9PSAwKSAmJiBscGpfZmluZSkgeworCQlsb29wc19wZXJfamlmZnkgPSBscGpfZmluZTsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkJIkNhbGlicmF0aW5nIGRlbGF5IGxvb3AgKHNraXBwZWQpLCAiCisJCQkidmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVxdWVuY3kuLiAiKTsKIAl9IGVsc2UgaWYgKChsb29wc19wZXJfamlmZnkgPSBjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KCkpICE9IDApIHsKLQkJcHJpbnRrKCJDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5lLi4gIik7Ci0JCXByaW50aygiJWx1LiUwMmx1IEJvZ29NSVBTIChscGo9JWx1KVxuIiwKLQkJCWxvb3BzX3Blcl9qaWZmeS8oNTAwMDAwL0haKSwKLQkJCShsb29wc19wZXJfamlmZnkvKDUwMDAvSFopKSAlIDEwMCwKLQkJCWxvb3BzX3Blcl9qaWZmeSk7CisJCXByaW50ayhLRVJOX0lORk8KKwkJCSJDYWxpYnJhdGluZyBkZWxheSB1c2luZyB0aW1lciBzcGVjaWZpYyByb3V0aW5lLi4gIik7CiAJfSBlbHNlIHsKIAkJbG9vcHNfcGVyX2ppZmZ5ID0gKDE8PDEyKTsKIAotCQlwcmludGsoS0VSTl9ERUJVRyAiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcC4uLiAiKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcC4uLiAiKTsKIAkJd2hpbGUgKChsb29wc19wZXJfamlmZnkgPDw9IDEpICE9IDApIHsKIAkJCS8qIHdhaXQgZm9yICJzdGFydCBvZiIgY2xvY2sgdGljayAqLwogCQkJdGlja3MgPSBqaWZmaWVzOwpAQCAtMTYxLDEyICsxNjksOCBAQAogCQkJaWYgKGppZmZpZXMgIT0gdGlja3MpCS8qIGxvbmdlciB0aGFuIDEgdGljayAqLwogCQkJCWxvb3BzX3Blcl9qaWZmeSAmPSB+bG9vcGJpdDsKIAkJfQotCi0JCS8qIFJvdW5kIHRoZSB2YWx1ZSBhbmQgcHJpbnQgaXQgKi8KLQkJcHJpbnRrKCIlbHUuJTAybHUgQm9nb01JUFMgKGxwaj0lbHUpXG4iLAotCQkJbG9vcHNfcGVyX2ppZmZ5Lyg1MDAwMDAvSFopLAotCQkJKGxvb3BzX3Blcl9qaWZmeS8oNTAwMC9IWikpICUgMTAwLAotCQkJbG9vcHNfcGVyX2ppZmZ5KTsKIAl9Ci0KKwlwcmludGsoS0VSTl9JTkZPICIlbHUuJTAybHUgQm9nb01JUFMgKGxwaj0lbHUpXG4iLAorCQkJbG9vcHNfcGVyX2ppZmZ5Lyg1MDAwMDAvSFopLAorCQkJKGxvb3BzX3Blcl9qaWZmeS8oNTAwMC9IWikpICUgMTAwLCBsb29wc19wZXJfamlmZnkpOwogfQpkaWZmIC0tZ2l0IGEvaXBjL3NobS5jIGIvaXBjL3NobS5jCmluZGV4IDU1NDQyOWEuLjc5MDI0MGMgMTAwNjQ0Ci0tLSBhL2lwYy9zaG0uYworKysgYi9pcGMvc2htLmMKQEAgLTg5NCw4ICs4OTQsNiBAQAogCWlmICghc2ZkKQogCQlnb3RvIG91dF9wdXRfZGVudHJ5OwogCi0JZXJyID0gLUVOT01FTTsKLQogCWZpbGUgPSBhbGxvY19maWxlKHBhdGgubW50LCBwYXRoLmRlbnRyeSwgZl9tb2RlLCAmc2htX2ZpbGVfb3BlcmF0aW9ucyk7CiAJaWYgKCFmaWxlKQogCQlnb3RvIG91dF9mcmVlOwpAQCAtMTA2MCwxNiArMTA1OCwxNiBAQAogc3RhdGljIGludCBzeXN2aXBjX3NobV9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICppdCkKIHsKIAlzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAgPSBpdDsKLQljaGFyICpmb3JtYXQ7CiAKLSNkZWZpbmUgU01BTExfU1RSSU5HICIlMTBkICUxMGQgICU0byAlMTB1ICU1dSAlNXUgICU1ZCAlNXUgJTV1ICU1dSAlNXUgJTEwbHUgJTEwbHUgJTEwbHVcbiIKLSNkZWZpbmUgQklHX1NUUklORyAgICIlMTBkICUxMGQgICU0byAlMjF1ICU1dSAlNXUgICU1ZCAlNXUgJTV1ICU1dSAlNXUgJTEwbHUgJTEwbHUgJTEwbHVcbiIKKyNpZiBCSVRTX1BFUl9MT05HIDw9IDMyCisjZGVmaW5lIFNJWkVfU1BFQyAiJTEwbHUiCisjZWxzZQorI2RlZmluZSBTSVpFX1NQRUMgIiUyMWx1IgorI2VuZGlmCiAKLQlpZiAoc2l6ZW9mKHNpemVfdCkgPD0gc2l6ZW9mKGludCkpCi0JCWZvcm1hdCA9IFNNQUxMX1NUUklORzsKLQllbHNlCi0JCWZvcm1hdCA9IEJJR19TVFJJTkc7Ci0JcmV0dXJuIHNlcV9wcmludGYocywgZm9ybWF0LAorCXJldHVybiBzZXFfcHJpbnRmKHMsCisJCQkgICIlMTBkICUxMGQgICU0byAiIFNJWkVfU1BFQyAiICU1dSAlNXUgICIKKwkJCSAgIiU1bHUgJTV1ICU1dSAlNXUgJTV1ICUxMGx1ICUxMGx1ICUxMGx1XG4iLAogCQkJICBzaHAtPnNobV9wZXJtLmtleSwKIAkJCSAgc2hwLT5zaG1fcGVybS5pZCwKIAkJCSAgc2hwLT5zaG1fcGVybS5tb2RlLApkaWZmIC0tZ2l0IGEva2VybmVsL01ha2VmaWxlIGIva2VybmVsL01ha2VmaWxlCmluZGV4IDFjOTkzOGEuLmY2MzI4ZTEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9NYWtlZmlsZQorKysgYi9rZXJuZWwvTWFrZWZpbGUKQEAgLTMsNyArMyw3IEBACiAjCiAKIG9iai15ICAgICA9IHNjaGVkLm8gZm9yay5vIGV4ZWNfZG9tYWluLm8gcGFuaWMubyBwcmludGsubyBwcm9maWxlLm8gXAotCSAgICBleGl0Lm8gaXRpbWVyLm8gdGltZS5vIHNvZnRpcnEubyByZXNvdXJjZS5vIFwKKwkgICAgY3B1Lm8gZXhpdC5vIGl0aW1lci5vIHRpbWUubyBzb2Z0aXJxLm8gcmVzb3VyY2UubyBcCiAJICAgIHN5c2N0bC5vIGNhcGFiaWxpdHkubyBwdHJhY2UubyB0aW1lci5vIHVzZXIubyBcCiAJICAgIHNpZ25hbC5vIHN5cy5vIGttb2QubyB3b3JrcXVldWUubyBwaWQubyBcCiAJICAgIHJjdXBkYXRlLm8gZXh0YWJsZS5vIHBhcmFtcy5vIHBvc2l4LXRpbWVycy5vIFwKQEAgLTExLDYgKzExLDE4IEBACiAJICAgIGhydGltZXIubyByd3NlbS5vIG5zcHJveHkubyBzcmN1Lm8gc2VtYXBob3JlLm8gXAogCSAgICBub3RpZmllci5vIGtzeXNmcy5vIHBtX3Fvc19wYXJhbXMubyBzY2hlZF9jbG9jay5vCiAKK0NGTEFHU19SRU1PVkVfc2NoZWQubyA9IC1tbm8tc3BlCisKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHRyYWNlIGRlYnVnIGZpbGVzIGFuZCBpbnRlcm5hbCBmdHJhY2UgZmlsZXMKK0NGTEFHU19SRU1PVkVfbG9ja2RlcC5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX2xvY2tkZXBfcHJvYy5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX211dGV4LWRlYnVnLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfcnRtdXRleC1kZWJ1Zy5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX2Nncm91cC1kZWJ1Zy5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3NjaGVkX2Nsb2NrLm8gPSAtcGcKK2VuZGlmCisKIG9iai0kKENPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSykgKz0gc3lzY3RsX2NoZWNrLm8KIG9iai0kKENPTkZJR19TVEFDS1RSQUNFKSArPSBzdGFja3RyYWNlLm8KIG9iai15ICs9IHRpbWUvCkBAIC0yNyw3ICszOSw3IEBACiBvYmotJChDT05GSUdfREVCVUdfUlRfTVVURVhFUykgKz0gcnRtdXRleC1kZWJ1Zy5vCiBvYmotJChDT05GSUdfUlRfTVVURVhfVEVTVEVSKSArPSBydG11dGV4LXRlc3Rlci5vCiBvYmotJChDT05GSUdfR0VORVJJQ19JU0FfRE1BKSArPSBkbWEubwotb2JqLSQoQ09ORklHX1NNUCkgKz0gY3B1Lm8gc3BpbmxvY2subworb2JqLSQoQ09ORklHX1NNUCkgKz0gc3BpbmxvY2subwogb2JqLSQoQ09ORklHX0RFQlVHX1NQSU5MT0NLKSArPSBzcGlubG9jay5vCiBvYmotJChDT05GSUdfUFJPVkVfTE9DS0lORykgKz0gc3BpbmxvY2subwogb2JqLSQoQ09ORklHX1VJRDE2KSArPSB1aWQxNi5vCkBAIC02OSw2ICs4MSw5IEBACiBvYmotJChDT05GSUdfVEFTS1NUQVRTKSArPSB0YXNrc3RhdHMubyB0c2FjY3Qubwogb2JqLSQoQ09ORklHX01BUktFUlMpICs9IG1hcmtlci5vCiBvYmotJChDT05GSUdfTEFURU5DWVRPUCkgKz0gbGF0ZW5jeXRvcC5vCitvYmotJChDT05GSUdfRlRSQUNFKSArPSB0cmFjZS8KK29iai0kKENPTkZJR19UUkFDSU5HKSArPSB0cmFjZS8KK29iai0kKENPTkZJR19TTVApICs9IHNjaGVkX2NwdXByaS5vCiAKIGlmbmVxICgkKENPTkZJR19TQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVIpLHkpCiAjIEFjY29yZGluZyB0byBBbGFuIE1vZHJhIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+LCB0aGUgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgaXMKZGlmZiAtLWdpdCBhL2tlcm5lbC9hdWRpdC5jIGIva2VybmVsL2F1ZGl0LmMKaW5kZXggZTg2OTJhNS4uZTA5MmYxYyAxMDA2NDQKLS0tIGEva2VybmVsL2F1ZGl0LmMKKysrIGIva2VybmVsL2F1ZGl0LmMKQEAgLTczOCw3ICs3MzgsNyBAQAogCQlpZiAoIWF1ZGl0X2VuYWJsZWQgJiYgbXNnX3R5cGUgIT0gQVVESVRfVVNFUl9BVkMpCiAJCQlyZXR1cm4gMDsKIAotCQllcnIgPSBhdWRpdF9maWx0ZXJfdXNlcigmTkVUTElOS19DQihza2IpLCBtc2dfdHlwZSk7CisJCWVyciA9IGF1ZGl0X2ZpbHRlcl91c2VyKCZORVRMSU5LX0NCKHNrYikpOwogCQlpZiAoZXJyID09IDEpIHsKIAkJCWVyciA9IDA7CiAJCQlpZiAobXNnX3R5cGUgPT0gQVVESVRfVVNFUl9UVFkpIHsKQEAgLTc3OSw3ICs3NzksNyBAQAogCQl9CiAJCS8qIGZhbGx0aHJvdWdoICovCiAJY2FzZSBBVURJVF9MSVNUOgotCQllcnIgPSBhdWRpdF9yZWNlaXZlX2ZpbHRlcihubGgtPm5sbXNnX3R5cGUsIE5FVExJTktfQ0Ioc2tiKS5waWQsCisJCWVyciA9IGF1ZGl0X3JlY2VpdmVfZmlsdGVyKG1zZ190eXBlLCBORVRMSU5LX0NCKHNrYikucGlkLAogCQkJCQkgICB1aWQsIHNlcSwgZGF0YSwgbmxtc2dfbGVuKG5saCksCiAJCQkJCSAgIGxvZ2ludWlkLCBzZXNzaW9uaWQsIHNpZCk7CiAJCWJyZWFrOwpAQCAtNzk4LDcgKzc5OCw3IEBACiAJCX0KIAkJLyogZmFsbHRocm91Z2ggKi8KIAljYXNlIEFVRElUX0xJU1RfUlVMRVM6Ci0JCWVyciA9IGF1ZGl0X3JlY2VpdmVfZmlsdGVyKG5saC0+bmxtc2dfdHlwZSwgTkVUTElOS19DQihza2IpLnBpZCwKKwkJZXJyID0gYXVkaXRfcmVjZWl2ZV9maWx0ZXIobXNnX3R5cGUsIE5FVExJTktfQ0Ioc2tiKS5waWQsCiAJCQkJCSAgIHVpZCwgc2VxLCBkYXRhLCBubG1zZ19sZW4obmxoKSwKIAkJCQkJICAgbG9naW51aWQsIHNlc3Npb25pZCwgc2lkKTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXRmaWx0ZXIuYyBiL2tlcm5lbC9hdWRpdGZpbHRlci5jCmluZGV4IDBlMGJkMjdlLi45OGM1MGNjIDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXRmaWx0ZXIuYworKysgYi9rZXJuZWwvYXVkaXRmaWx0ZXIuYwpAQCAtMTU0NCw2ICsxNTQ0LDcgQEAKICAqIEBkYXRhOiBwYXlsb2FkIGRhdGEKICAqIEBkYXRhc3o6IHNpemUgb2YgcGF5bG9hZCBkYXRhCiAgKiBAbG9naW51aWQ6IGxvZ2ludWlkIG9mIHNlbmRlcgorICogQHNlc3Npb25pZDogc2Vzc2lvbmlkIGZvciBuZXRsaW5rIGF1ZGl0IG1lc3NhZ2UKICAqIEBzaWQ6IFNFIExpbnV4IFNlY3VyaXR5IElEIG9mIHNlbmRlcgogICovCiBpbnQgYXVkaXRfcmVjZWl2ZV9maWx0ZXIoaW50IHR5cGUsIGludCBwaWQsIGludCB1aWQsIGludCBzZXEsIHZvaWQgKmRhdGEsCkBAIC0xNzIwLDcgKzE3MjEsNyBAQAogCXJldHVybiAxOwogfQogCi1pbnQgYXVkaXRfZmlsdGVyX3VzZXIoc3RydWN0IG5ldGxpbmtfc2tiX3Bhcm1zICpjYiwgaW50IHR5cGUpCitpbnQgYXVkaXRfZmlsdGVyX3VzZXIoc3RydWN0IG5ldGxpbmtfc2tiX3Bhcm1zICpjYikKIHsKIAllbnVtIGF1ZGl0X3N0YXRlIHN0YXRlID0gQVVESVRfRElTQUJMRUQ7CiAJc3RydWN0IGF1ZGl0X2VudHJ5ICplOwpkaWZmIC0tZ2l0IGEva2VybmVsL2JhY2t0cmFjZXRlc3QuYyBiL2tlcm5lbC9iYWNrdHJhY2V0ZXN0LmMKaW5kZXggZDFhNzYwNS4uYTVlMDI2YiAxMDA2NDQKLS0tIGEva2VybmVsL2JhY2t0cmFjZXRlc3QuYworKysgYi9rZXJuZWwvYmFja3RyYWNldGVzdC5jCkBAIC0xMCwzMCArMTAsNzMgQEAKICAqIG9mIHRoZSBMaWNlbnNlLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc3RhY2t0cmFjZS5oPgogCi1zdGF0aWMgc3RydWN0IHRpbWVyX2xpc3QgYmFja3RyYWNlX3RpbWVyOworc3RhdGljIHZvaWQgYmFja3RyYWNlX3Rlc3Rfbm9ybWFsKHZvaWQpCit7CisJcHJpbnRrKCJUZXN0aW5nIGEgYmFja3RyYWNlIGZyb20gcHJvY2VzcyBjb250ZXh0LlxuIik7CisJcHJpbnRrKCJUaGUgZm9sbG93aW5nIHRyYWNlIGlzIGEga2VybmVsIHNlbGYgdGVzdCBhbmQgbm90IGEgYnVnIVxuIik7CiAKLXN0YXRpYyB2b2lkIGJhY2t0cmFjZV90ZXN0X3RpbWVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKKwlkdW1wX3N0YWNrKCk7Cit9CisKK3N0YXRpYyBERUNMQVJFX0NPTVBMRVRJT04oYmFja3RyYWNlX3dvcmspOworCitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfdGVzdF9pcnFfY2FsbGJhY2sodW5zaWduZWQgbG9uZyBkYXRhKQoreworCWR1bXBfc3RhY2soKTsKKwljb21wbGV0ZSgmYmFja3RyYWNlX3dvcmspOworfQorCitzdGF0aWMgREVDTEFSRV9UQVNLTEVUKGJhY2t0cmFjZV90YXNrbGV0LCAmYmFja3RyYWNlX3Rlc3RfaXJxX2NhbGxiYWNrLCAwKTsKKworc3RhdGljIHZvaWQgYmFja3RyYWNlX3Rlc3RfaXJxKHZvaWQpCiB7CiAJcHJpbnRrKCJUZXN0aW5nIGEgYmFja3RyYWNlIGZyb20gaXJxIGNvbnRleHQuXG4iKTsKIAlwcmludGsoIlRoZSBmb2xsb3dpbmcgdHJhY2UgaXMgYSBrZXJuZWwgc2VsZiB0ZXN0IGFuZCBub3QgYSBidWchXG4iKTsKLQlkdW1wX3N0YWNrKCk7CisKKwlpbml0X2NvbXBsZXRpb24oJmJhY2t0cmFjZV93b3JrKTsKKwl0YXNrbGV0X3NjaGVkdWxlKCZiYWNrdHJhY2VfdGFza2xldCk7CisJd2FpdF9mb3JfY29tcGxldGlvbigmYmFja3RyYWNlX3dvcmspOwogfQorCisjaWZkZWYgQ09ORklHX1NUQUNLVFJBQ0UKK3N0YXRpYyB2b2lkIGJhY2t0cmFjZV90ZXN0X3NhdmVkKHZvaWQpCit7CisJc3RydWN0IHN0YWNrX3RyYWNlIHRyYWNlOworCXVuc2lnbmVkIGxvbmcgZW50cmllc1s4XTsKKworCXByaW50aygiVGVzdGluZyBhIHNhdmVkIGJhY2t0cmFjZS5cbiIpOworCXByaW50aygiVGhlIGZvbGxvd2luZyB0cmFjZSBpcyBhIGtlcm5lbCBzZWxmIHRlc3QgYW5kIG5vdCBhIGJ1ZyFcbiIpOworCisJdHJhY2UubnJfZW50cmllcyA9IDA7CisJdHJhY2UubWF4X2VudHJpZXMgPSBBUlJBWV9TSVpFKGVudHJpZXMpOworCXRyYWNlLmVudHJpZXMgPSBlbnRyaWVzOworCXRyYWNlLnNraXAgPSAwOworCisJc2F2ZV9zdGFja190cmFjZSgmdHJhY2UpOworCXByaW50X3N0YWNrX3RyYWNlKCZ0cmFjZSwgMCk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgYmFja3RyYWNlX3Rlc3Rfc2F2ZWQodm9pZCkKK3sKKwlwcmludGsoIlNhdmVkIGJhY2t0cmFjZSB0ZXN0IHNraXBwZWQuXG4iKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgaW50IGJhY2t0cmFjZV9yZWdyZXNzaW9uX3Rlc3Qodm9pZCkKIHsKIAlwcmludGsoIj09PT1bIGJhY2t0cmFjZSB0ZXN0aW5nIF09PT09PT09PT09PVxuIik7Ci0JcHJpbnRrKCJUZXN0aW5nIGEgYmFja3RyYWNlIGZyb20gcHJvY2VzcyBjb250ZXh0LlxuIik7Ci0JcHJpbnRrKCJUaGUgZm9sbG93aW5nIHRyYWNlIGlzIGEga2VybmVsIHNlbGYgdGVzdCBhbmQgbm90IGEgYnVnIVxuIik7Ci0JZHVtcF9zdGFjaygpOwogCi0JaW5pdF90aW1lcigmYmFja3RyYWNlX3RpbWVyKTsKLQliYWNrdHJhY2VfdGltZXIuZnVuY3Rpb24gPSBiYWNrdHJhY2VfdGVzdF90aW1lcjsKLQltb2RfdGltZXIoJmJhY2t0cmFjZV90aW1lciwgamlmZmllcyArIDEwKTsKKwliYWNrdHJhY2VfdGVzdF9ub3JtYWwoKTsKKwliYWNrdHJhY2VfdGVzdF9pcnEoKTsKKwliYWNrdHJhY2VfdGVzdF9zYXZlZCgpOwogCi0JbXNsZWVwKDEwKTsKIAlwcmludGsoIj09PT1bIGVuZCBvZiBiYWNrdHJhY2UgdGVzdGluZyBdPT09PVxuIik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvY2FwYWJpbGl0eS5jIGIva2VybmVsL2NhcGFiaWxpdHkuYwppbmRleCBjZmJlNDQyLi45MDFlMGZkIDEwMDY0NAotLS0gYS9rZXJuZWwvY2FwYWJpbGl0eS5jCisrKyBiL2tlcm5lbC9jYXBhYmlsaXR5LmMKQEAgLTEyMSw2ICsxMjEsMjcgQEAKICAqIHVuaW50ZXJlc3RpbmcgYW5kL29yIG5vdCB0byBiZSBjaGFuZ2VkLgogICovCiAKKy8qCisgKiBBdG9taWNhbGx5IG1vZGlmeSB0aGUgZWZmZWN0aXZlIGNhcGFiaWxpdGllcyByZXR1cm5pbmcgdGhlIG9yaWdpbmFsCisgKiB2YWx1ZS4gTm8gcGVybWlzc2lvbiBjaGVjayBpcyBwZXJmb3JtZWQgaGVyZSAtIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUKKyAqIGNhbGxlciBpcyBwZXJtaXR0ZWQgdG8gc2V0IHRoZSBkZXNpcmVkIGVmZmVjdGl2ZSBjYXBhYmlsaXRpZXMuCisgKi8KK2tlcm5lbF9jYXBfdCBjYXBfc2V0X2VmZmVjdGl2ZShjb25zdCBrZXJuZWxfY2FwX3QgcEVfbmV3KQoreworCWtlcm5lbF9jYXBfdCBwRV9vbGQ7CisKKwlzcGluX2xvY2soJnRhc2tfY2FwYWJpbGl0eV9sb2NrKTsKKworCXBFX29sZCA9IGN1cnJlbnQtPmNhcF9lZmZlY3RpdmU7CisJY3VycmVudC0+Y2FwX2VmZmVjdGl2ZSA9IHBFX25ldzsKKworCXNwaW5fdW5sb2NrKCZ0YXNrX2NhcGFiaWxpdHlfbG9jayk7CisKKwlyZXR1cm4gcEVfb2xkOworfQorCitFWFBPUlRfU1lNQk9MKGNhcF9zZXRfZWZmZWN0aXZlKTsKKwogLyoqCiAgKiBzeXNfY2FwZ2V0IC0gZ2V0IHRoZSBjYXBhYmlsaXRpZXMgb2YgYSBnaXZlbiBwcm9jZXNzLgogICogQGhlYWRlcjogcG9pbnRlciB0byBzdHJ1Y3QgdGhhdCBjb250YWlucyBjYXBhYmlsaXR5IHZlcnNpb24gYW5kCmRpZmYgLS1naXQgYS9rZXJuZWwvY3B1LmMgYi9rZXJuZWwvY3B1LmMKaW5kZXggYzc3YmMzYS4uYjExZjA2ZCAxMDA2NDQKLS0tIGEva2VybmVsL2NwdS5jCisrKyBiL2tlcm5lbC9jcHUuYwpAQCAtMTUsNiArMTUsMjggQEAKICNpbmNsdWRlIDxsaW51eC9zdG9wX21hY2hpbmUuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCisvKgorICogUmVwcmVzZW50cyBhbGwgY3B1J3MgcHJlc2VudCBpbiB0aGUgc3lzdGVtCisgKiBJbiBzeXN0ZW1zIGNhcGFibGUgb2YgaG90cGx1ZywgdGhpcyBtYXAgY291bGQgZHluYW1pY2FsbHkgZ3JvdworICogYXMgbmV3IGNwdSdzIGFyZSBkZXRlY3RlZCBpbiB0aGUgc3lzdGVtIHZpYSBhbnkgcGxhdGZvcm0gc3BlY2lmaWMKKyAqIG1ldGhvZCwgc3VjaCBhcyBBQ1BJIGZvciBlLmcuCisgKi8KK2NwdW1hc2tfdCBjcHVfcHJlc2VudF9tYXAgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woY3B1X3ByZXNlbnRfbWFwKTsKKworI2lmbmRlZiBDT05GSUdfU01QCisKKy8qCisgKiBSZXByZXNlbnRzIGFsbCBjcHUncyB0aGF0IGFyZSBjdXJyZW50bHkgb25saW5lLgorICovCitjcHVtYXNrX3QgY3B1X29ubGluZV9tYXAgX19yZWFkX21vc3RseSA9IENQVV9NQVNLX0FMTDsKK0VYUE9SVF9TWU1CT0woY3B1X29ubGluZV9tYXApOworCitjcHVtYXNrX3QgY3B1X3Bvc3NpYmxlX21hcCBfX3JlYWRfbW9zdGx5ID0gQ1BVX01BU0tfQUxMOworRVhQT1JUX1NZTUJPTChjcHVfcG9zc2libGVfbWFwKTsKKworI2Vsc2UgLyogQ09ORklHX1NNUCAqLworCiAvKiBTZXJpYWxpemVzIHRoZSB1cGRhdGVzIHRvIGNwdV9vbmxpbmVfbWFwLCBjcHVfcHJlc2VudF9tYXAgKi8KIHN0YXRpYyBERUZJTkVfTVVURVgoY3B1X2FkZF9yZW1vdmVfbG9jayk7CiAKQEAgLTQwMywzICs0MjUsNSBAQAogCWNwdV9tYXBzX3VwZGF0ZV9kb25lKCk7CiB9CiAjZW5kaWYgLyogQ09ORklHX1BNX1NMRUVQX1NNUCAqLworCisjZW5kaWYgLyogQ09ORklHX1NNUCAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2NwdXNldC5jIGIva2VybmVsL2NwdXNldC5jCmluZGV4IDAzOWJhYTQuLjQ1OWQ2MDEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jcHVzZXQuYworKysgYi9rZXJuZWwvY3B1c2V0LmMKQEAgLTEwMzcsOCArMTAzNyw4IEBACiAKIHN0YXRpYyBpbnQgdXBkYXRlX3JlbGF4X2RvbWFpbl9sZXZlbChzdHJ1Y3QgY3B1c2V0ICpjcywgczY0IHZhbCkKIHsKLQlpZiAoKGludCl2YWwgPCAwKQotCQl2YWwgPSAtMTsKKwlpZiAodmFsIDwgLTEgfHwgdmFsID49IFNEX0xWX01BWCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAodmFsICE9IGNzLT5yZWxheF9kb21haW5fbGV2ZWwpIHsKIAkJY3MtPnJlbGF4X2RvbWFpbl9sZXZlbCA9IHZhbDsKQEAgLTExOTQsNiArMTE5NCwxNSBAQAogCiAJaWYgKGNwdXNfZW1wdHkoY3MtPmNwdXNfYWxsb3dlZCkgfHwgbm9kZXNfZW1wdHkoY3MtPm1lbXNfYWxsb3dlZCkpCiAJCXJldHVybiAtRU5PU1BDOworCWlmICh0c2stPmZsYWdzICYgUEZfVEhSRUFEX0JPVU5EKSB7CisJCWNwdW1hc2tfdCBtYXNrOworCisJCW11dGV4X2xvY2soJmNhbGxiYWNrX211dGV4KTsKKwkJbWFzayA9IGNzLT5jcHVzX2FsbG93ZWQ7CisJCW11dGV4X3VubG9jaygmY2FsbGJhY2tfbXV0ZXgpOworCQlpZiAoIWNwdXNfZXF1YWwodHNrLT5jcHVzX2FsbG93ZWQsIG1hc2spKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQogCiAJcmV0dXJuIHNlY3VyaXR5X3Rhc2tfc2V0c2NoZWR1bGVyKHRzaywgMCwgTlVMTCk7CiB9CkBAIC0xMjA3LDExICsxMjE2LDE0IEBACiAJc3RydWN0IG1tX3N0cnVjdCAqbW07CiAJc3RydWN0IGNwdXNldCAqY3MgPSBjZ3JvdXBfY3MoY29udCk7CiAJc3RydWN0IGNwdXNldCAqb2xkY3MgPSBjZ3JvdXBfY3Mob2xkY29udCk7CisJaW50IGVycjsKIAogCW11dGV4X2xvY2soJmNhbGxiYWNrX211dGV4KTsKIAlndWFyYW50ZWVfb25saW5lX2NwdXMoY3MsICZjcHVzKTsKLQlzZXRfY3B1c19hbGxvd2VkX3B0cih0c2ssICZjcHVzKTsKKwllcnIgPSBzZXRfY3B1c19hbGxvd2VkX3B0cih0c2ssICZjcHVzKTsKIAltdXRleF91bmxvY2soJmNhbGxiYWNrX211dGV4KTsKKwlpZiAoZXJyKQorCQlyZXR1cm47CiAKIAlmcm9tID0gb2xkY3MtPm1lbXNfYWxsb3dlZDsKIAl0byA9IGNzLT5tZW1zX2FsbG93ZWQ7CkBAIC0xODgyLDcgKzE4OTQsNyBAQAogICogaW4gb3JkZXIgdG8gbWluaW1pemUgdGV4dCBzaXplLgogICovCiAKLXN0YXRpYyB2b2lkIGNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKHZvaWQpCitzdGF0aWMgdm9pZCBjb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZyhpbnQgcmVidWlsZF9zZCkKIHsKIAljZ3JvdXBfbG9jaygpOwogCkBAIC0xODkwLDYgKzE5MDIsMTMgQEAKIAl0b3BfY3B1c2V0Lm1lbXNfYWxsb3dlZCA9IG5vZGVfc3RhdGVzW05fSElHSF9NRU1PUlldOwogCXNjYW5fZm9yX2VtcHR5X2NwdXNldHMoJnRvcF9jcHVzZXQpOwogCisJLyoKKwkgKiBTY2hlZHVsZXIgZGVzdHJveXMgZG9tYWlucyBvbiBob3RwbHVnIGV2ZW50cy4KKwkgKiBSZWJ1aWxkIHRoZW0gYmFzZWQgb24gdGhlIGN1cnJlbnQgc2V0dGluZ3MuCisJICovCisJaWYgKHJlYnVpbGRfc2QpCisJCXJlYnVpbGRfc2NoZWRfZG9tYWlucygpOworCiAJY2dyb3VwX3VubG9jaygpOwogfQogCkBAIC0xOTA2LDExICsxOTI1LDIyIEBACiBzdGF0aWMgaW50IGNwdXNldF9oYW5kbGVfY3B1aHAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWRfbmIsCiAJCQkJdW5zaWduZWQgbG9uZyBwaGFzZSwgdm9pZCAqdW51c2VkX2NwdSkKIHsKLQlpZiAocGhhc2UgPT0gQ1BVX0RZSU5HIHx8IHBoYXNlID09IENQVV9EWUlOR19GUk9aRU4pCisJc3dpdGNoIChwaGFzZSkgeworCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgorCWNhc2UgQ1BVX1VQX0NBTkNFTEVEX0ZST1pFTjoKKwljYXNlIENQVV9ET1dOX0ZBSUxFRDoKKwljYXNlIENQVV9ET1dOX0ZBSUxFRF9GUk9aRU46CisJY2FzZSBDUFVfT05MSU5FOgorCWNhc2UgQ1BVX09OTElORV9GUk9aRU46CisJY2FzZSBDUFVfREVBRDoKKwljYXNlIENQVV9ERUFEX0ZST1pFTjoKKwkJY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcoMSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CiAJCXJldHVybiBOT1RJRllfRE9ORTsKKwl9CiAKLQljb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZygpOwotCXJldHVybiAwOworCXJldHVybiBOT1RJRllfT0s7CiB9CiAKICNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKQEAgLTE5MjMsNyArMTk1Myw3IEBACiAKIHZvaWQgY3B1c2V0X3RyYWNrX29ubGluZV9ub2Rlcyh2b2lkKQogewotCWNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKCk7CisJY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcoMCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEva2VybmVsL2V4aXQuYyBiL2tlcm5lbC9leGl0LmMKaW5kZXggOGY2MTg1ZS4uY2ViMjU4NyAxMDA2NDQKLS0tIGEva2VybmVsL2V4aXQuYworKysgYi9rZXJuZWwvZXhpdC5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvcGVyc29uYWxpdHkuaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC9tbnRfbmFtZXNwYWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW9jb250ZXh0Lmg+CiAjaW5jbHVkZSA8bGludXgva2V5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jCmluZGV4IDE5OTA4YjIuLjRiZDJmNTEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9mb3JrLmMKKysrIGIva2VybmVsL2ZvcmsuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvaW9jb250ZXh0Lmg+CiAjaW5jbHVkZSA8bGludXgva2V5Lmg+CiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KQEAgLTkwOSw3ICs5MTAsNyBAQAogCiAJcnRfbXV0ZXhfaW5pdF90YXNrKHApOwogCi0jaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCisjaWZkZWYgQ09ORklHX1BST1ZFX0xPQ0tJTkcKIAlERUJVR19MT0NLU19XQVJOX09OKCFwLT5oYXJkaXJxc19lbmFibGVkKTsKIAlERUJVR19MT0NLU19XQVJOX09OKCFwLT5zb2Z0aXJxc19lbmFibGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEva2VybmVsL2Z1dGV4LmMgYi9rZXJuZWwvZnV0ZXguYwppbmRleCA0NDlkZWY4Li43ZDExMzZlIDEwMDY0NAotLS0gYS9rZXJuZWwvZnV0ZXguYworKysgYi9rZXJuZWwvZnV0ZXguYwpAQCAtMTA5NiwyMSArMTA5Niw2NCBAQAogICogcHJpdmF0ZSBmdXRleGVzLgogICovCiBzdGF0aWMgaW50IGZpeHVwX3BpX3N0YXRlX293bmVyKHUzMiBfX3VzZXIgKnVhZGRyLCBzdHJ1Y3QgZnV0ZXhfcSAqcSwKLQkJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5ld293bmVyKQorCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV3b3duZXIsCisJCQkJc3RydWN0IHJ3X3NlbWFwaG9yZSAqZnNoYXJlZCkKIHsKIAl1MzIgbmV3dGlkID0gdGFza19waWRfdm5yKG5ld293bmVyKSB8IEZVVEVYX1dBSVRFUlM7CiAJc3RydWN0IGZ1dGV4X3BpX3N0YXRlICpwaV9zdGF0ZSA9IHEtPnBpX3N0YXRlOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqb2xkb3duZXIgPSBwaV9zdGF0ZS0+b3duZXI7CiAJdTMyIHV2YWwsIGN1cnZhbCwgbmV3dmFsOwotCWludCByZXQ7CisJaW50IHJldCwgYXR0ZW1wdCA9IDA7CiAKIAkvKiBPd25lciBkaWVkPyAqLworCWlmICghcGlfc3RhdGUtPm93bmVyKQorCQluZXd0aWQgfD0gRlVURVhfT1dORVJfRElFRDsKKworCS8qCisJICogV2UgYXJlIGhlcmUgZWl0aGVyIGJlY2F1c2Ugd2Ugc3RvbGUgdGhlIHJ0bXV0ZXggZnJvbSB0aGUKKwkgKiBwZW5kaW5nIG93bmVyIG9yIHdlIGFyZSB0aGUgcGVuZGluZyBvd25lciB3aGljaCBmYWlsZWQgdG8KKwkgKiBnZXQgdGhlIHJ0bXV0ZXguIFdlIGhhdmUgdG8gcmVwbGFjZSB0aGUgcGVuZGluZyBvd25lciBUSUQKKwkgKiBpbiB0aGUgdXNlciBzcGFjZSB2YXJpYWJsZS4gVGhpcyBtdXN0IGJlIGF0b21pYyBhcyB3ZSBoYXZlCisJICogdG8gcHJlc2VydmUgdGhlIG93bmVyIGRpZWQgYml0IGhlcmUuCisJICoKKwkgKiBOb3RlOiBXZSB3cml0ZSB0aGUgdXNlciBzcGFjZSB2YWx1ZSBfYmVmb3JlXyBjaGFuZ2luZyB0aGUKKwkgKiBwaV9zdGF0ZSBiZWNhdXNlIHdlIGNhbiBmYXVsdCBoZXJlLiBJbWFnaW5lIHN3YXBwZWQgb3V0CisJICogcGFnZXMgb3IgYSBmb3JrLCB3aGljaCB3YXMgcnVubmluZyByaWdodCBiZWZvcmUgd2UgYWNxdWlyZWQKKwkgKiBtbWFwX3NlbSwgdGhhdCBtYXJrZWQgYWxsIHRoZSBhbm9ueW1vdXMgbWVtb3J5IHJlYWRvbmx5IGZvcgorCSAqIGNvdy4KKwkgKgorCSAqIE1vZGlmeWluZyBwaV9zdGF0ZSBfYmVmb3JlXyB0aGUgdXNlciBzcGFjZSB2YWx1ZSB3b3VsZAorCSAqIGxlYXZlIHRoZSBwaV9zdGF0ZSBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgd2hlbiB3ZSBmYXVsdAorCSAqIGhlcmUsIGJlY2F1c2Ugd2UgbmVlZCB0byBkcm9wIHRoZSBoYXNoIGJ1Y2tldCBsb2NrIHRvCisJICogaGFuZGxlIHRoZSBmYXVsdC4gVGhpcyBtaWdodCBiZSBvYnNlcnZlZCBpbiB0aGUgUElEIGNoZWNrCisJICogaW4gbG9va3VwX3BpX3N0YXRlLgorCSAqLworcmV0cnk6CisJaWYgKGdldF9mdXRleF92YWx1ZV9sb2NrZWQoJnV2YWwsIHVhZGRyKSkKKwkJZ290byBoYW5kbGVfZmF1bHQ7CisKKwl3aGlsZSAoMSkgeworCQluZXd2YWwgPSAodXZhbCAmIEZVVEVYX09XTkVSX0RJRUQpIHwgbmV3dGlkOworCisJCWN1cnZhbCA9IGNtcHhjaGdfZnV0ZXhfdmFsdWVfbG9ja2VkKHVhZGRyLCB1dmFsLCBuZXd2YWwpOworCisJCWlmIChjdXJ2YWwgPT0gLUVGQVVMVCkKKwkJCWdvdG8gaGFuZGxlX2ZhdWx0OworCQlpZiAoY3VydmFsID09IHV2YWwpCisJCQlicmVhazsKKwkJdXZhbCA9IGN1cnZhbDsKKwl9CisKKwkvKgorCSAqIFdlIGZpeGVkIHVwIHVzZXIgc3BhY2UuIE5vdyB3ZSBuZWVkIHRvIGZpeCB0aGUgcGlfc3RhdGUKKwkgKiBpdHNlbGYuCisJICovCiAJaWYgKHBpX3N0YXRlLT5vd25lciAhPSBOVUxMKSB7CiAJCXNwaW5fbG9ja19pcnEoJnBpX3N0YXRlLT5vd25lci0+cGlfbG9jayk7CiAJCVdBUk5fT04obGlzdF9lbXB0eSgmcGlfc3RhdGUtPmxpc3QpKTsKIAkJbGlzdF9kZWxfaW5pdCgmcGlfc3RhdGUtPmxpc3QpOwogCQlzcGluX3VubG9ja19pcnEoJnBpX3N0YXRlLT5vd25lci0+cGlfbG9jayk7Ci0JfSBlbHNlCi0JCW5ld3RpZCB8PSBGVVRFWF9PV05FUl9ESUVEOworCX0KIAogCXBpX3N0YXRlLT5vd25lciA9IG5ld293bmVyOwogCkBAIC0xMTE4LDI2ICsxMTYxLDM1IEBACiAJV0FSTl9PTighbGlzdF9lbXB0eSgmcGlfc3RhdGUtPmxpc3QpKTsKIAlsaXN0X2FkZCgmcGlfc3RhdGUtPmxpc3QsICZuZXdvd25lci0+cGlfc3RhdGVfbGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxKCZuZXdvd25lci0+cGlfbG9jayk7CisJcmV0dXJuIDA7CiAKIAkvKgotCSAqIFdlIG93biBpdCwgc28gd2UgaGF2ZSB0byByZXBsYWNlIHRoZSBwZW5kaW5nIG93bmVyCi0JICogVElELiBUaGlzIG11c3QgYmUgYXRvbWljIGFzIHdlIGhhdmUgcHJlc2VydmUgdGhlCi0JICogb3duZXIgZGllZCBiaXQgaGVyZS4KKwkgKiBUbyBoYW5kbGUgdGhlIHBhZ2UgZmF1bHQgd2UgbmVlZCB0byBkcm9wIHRoZSBoYXNoIGJ1Y2tldAorCSAqIGxvY2sgaGVyZS4gVGhhdCBnaXZlcyB0aGUgb3RoZXIgdGFzayAoZWl0aGVyIHRoZSBwZW5kaW5nCisJICogb3duZXIgaXRzZWxmIG9yIHRoZSB0YXNrIHdoaWNoIHN0b2xlIHRoZSBydG11dGV4KSB0aGUKKwkgKiBjaGFuY2UgdG8gdHJ5IHRoZSBmaXh1cCBvZiB0aGUgcGlfc3RhdGUuIFNvIG9uY2Ugd2UgYXJlCisJICogYmFjayBmcm9tIGhhbmRsaW5nIHRoZSBmYXVsdCB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBwaV9zdGF0ZQorCSAqIGFmdGVyIHJlYWNxdWlyaW5nIHRoZSBoYXNoIGJ1Y2tldCBsb2NrIGFuZCBiZWZvcmUgdHJ5aW5nIHRvCisJICogZG8gYW5vdGhlciBmaXh1cC4gV2hlbiB0aGUgZml4dXAgaGFzIGJlZW4gZG9uZSBhbHJlYWR5IHdlCisJICogc2ltcGx5IHJldHVybi4KIAkgKi8KLQlyZXQgPSBnZXRfZnV0ZXhfdmFsdWVfbG9ja2VkKCZ1dmFsLCB1YWRkcik7CitoYW5kbGVfZmF1bHQ6CisJc3Bpbl91bmxvY2socS0+bG9ja19wdHIpOwogCi0Jd2hpbGUgKCFyZXQpIHsKLQkJbmV3dmFsID0gKHV2YWwgJiBGVVRFWF9PV05FUl9ESUVEKSB8IG5ld3RpZDsKKwlyZXQgPSBmdXRleF9oYW5kbGVfZmF1bHQoKHVuc2lnbmVkIGxvbmcpdWFkZHIsIGZzaGFyZWQsIGF0dGVtcHQrKyk7CiAKLQkJY3VydmFsID0gY21weGNoZ19mdXRleF92YWx1ZV9sb2NrZWQodWFkZHIsIHV2YWwsIG5ld3ZhbCk7CisJc3Bpbl9sb2NrKHEtPmxvY2tfcHRyKTsKIAotCQlpZiAoY3VydmFsID09IC1FRkFVTFQpCi0JCQlyZXQgPSAtRUZBVUxUOwotCQlpZiAoY3VydmFsID09IHV2YWwpCi0JCQlicmVhazsKLQkJdXZhbCA9IGN1cnZhbDsKLQl9Ci0JcmV0dXJuIHJldDsKKwkvKgorCSAqIENoZWNrIGlmIHNvbWVvbmUgZWxzZSBmaXhlZCBpdCBmb3IgdXM6CisJICovCisJaWYgKHBpX3N0YXRlLT5vd25lciAhPSBvbGRvd25lcikKKwkJcmV0dXJuIDA7CisKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZ290byByZXRyeTsKIH0KIAogLyoKQEAgLTE1MDcsNyArMTU1OSw3IEBACiAJCSAqIHRoYXQgY2FzZToKIAkJICovCiAJCWlmIChxLnBpX3N0YXRlLT5vd25lciAhPSBjdXJyKQotCQkJcmV0ID0gZml4dXBfcGlfc3RhdGVfb3duZXIodWFkZHIsICZxLCBjdXJyKTsKKwkJCXJldCA9IGZpeHVwX3BpX3N0YXRlX293bmVyKHVhZGRyLCAmcSwgY3VyciwgZnNoYXJlZCk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogQ2F0Y2ggdGhlIHJhcmUgY2FzZSwgd2hlcmUgdGhlIGxvY2sgd2FzIHJlbGVhc2VkCkBAIC0xNTM5LDcgKzE1OTEsOCBAQAogCQkJCWludCByZXM7CiAKIAkJCQlvd25lciA9IHJ0X211dGV4X293bmVyKCZxLnBpX3N0YXRlLT5waV9tdXRleCk7Ci0JCQkJcmVzID0gZml4dXBfcGlfc3RhdGVfb3duZXIodWFkZHIsICZxLCBvd25lcik7CisJCQkJcmVzID0gZml4dXBfcGlfc3RhdGVfb3duZXIodWFkZHIsICZxLCBvd25lciwKKwkJCQkJCQkgICBmc2hhcmVkKTsKIAogCQkJCS8qIHByb3BhZ2F0ZSAtRUZBVUxULCBpZiB0aGUgZml4dXAgZmFpbGVkICovCiAJCQkJaWYgKHJlcykKZGlmZiAtLWdpdCBhL2tlcm5lbC9ocnRpbWVyLmMgYi9rZXJuZWwvaHJ0aW1lci5jCmluZGV4IDQyMWJlNWYuLjI3YTgzZWUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9ocnRpbWVyLmMKKysrIGIva2VybmVsL2hydGltZXIuYwpAQCAtMTAwMywxMCArMTAwMywxOCBAQAogCSAqLwogCXJhaXNlID0gdGltZXItPnN0YXRlID09IEhSVElNRVJfU1RBVEVfUEVORElORzsKIAorCS8qCisJICogV2UgdXNlIHByZWVtcHRfZGlzYWJsZSB0byBwcmV2ZW50IHRoaXMgdGFzayBmcm9tIG1pZ3JhdGluZyBhZnRlcgorCSAqIHNldHRpbmcgdXAgdGhlIHNvZnRpcnEgYW5kIHJhaXNpbmcgaXQuIE90aGVyd2lzZSwgaWYgbWUgbWlncmF0ZQorCSAqIHdlIHdpbGwgcmFpc2UgdGhlIHNvZnRpcnEgb24gdGhlIHdyb25nIENQVS4KKwkgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwogCXVubG9ja19ocnRpbWVyX2Jhc2UodGltZXIsICZmbGFncyk7CiAKIAlpZiAocmFpc2UpCiAJCWhydGltZXJfcmFpc2Vfc29mdGlycSgpOworCXByZWVtcHRfZW5hYmxlKCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTA3OCw3ICsxMDg2LDcgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGhydGltZXJfZ2V0X3JlbWFpbmluZyk7CiAKLSNpZiBkZWZpbmVkKENPTkZJR19OT19JRExFX0haKSB8fCBkZWZpbmVkKENPTkZJR19OT19IWikKKyNpZmRlZiBDT05GSUdfTk9fSFoKIC8qKgogICogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCAtIGdldCB0aGUgdGltZSB1bnRpbCBuZXh0IGV4cGlyeSBldmVudAogICoKQEAgLTE2NjksNyArMTY3Nyw3IEBACiAJCQkgICh2b2lkICopKGxvbmcpc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAlyZWdpc3Rlcl9jcHVfbm90aWZpZXIoJmhydGltZXJzX25iKTsKICNpZmRlZiBDT05GSUdfSElHSF9SRVNfVElNRVJTCi0Jb3Blbl9zb2Z0aXJxKEhSVElNRVJfU09GVElSUSwgcnVuX2hydGltZXJfc29mdGlycSwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKEhSVElNRVJfU09GVElSUSwgcnVuX2hydGltZXJfc29mdGlycSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEva2VybmVsL2tnZGIuYyBiL2tlcm5lbC9rZ2RiLmMKaW5kZXggNzllM2M5MC4uM2VjMjNjMyAxMDA2NDQKLS0tIGEva2VybmVsL2tnZGIuYworKysgYi9rZXJuZWwva2dkYi5jCkBAIC0xNDk5LDcgKzE0OTksOCBAQAogCXJldHVybiAxOwogfQogCi12b2lkIGtnZGJfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGNvdW50KQorc3RhdGljIHZvaWQga2dkYl9jb25zb2xlX3dyaXRlKHN0cnVjdCBjb25zb2xlICpjbywgY29uc3QgY2hhciAqcywKKyAgIHVuc2lnbmVkIGNvdW50KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9rcHJvYmVzLmMgYi9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IDFlMDI1MGMuLjE0ODVjYTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9rcHJvYmVzLmMKKysrIGIva2VybmVsL2twcm9iZXMuYwpAQCAtNzksNyArNzksNyBAQAogICoKICAqIEZvciBzdWNoIGNhc2VzLCB3ZSBub3cgaGF2ZSBhIGJsYWNrbGlzdAogICovCi1zdHJ1Y3Qga3Byb2JlX2JsYWNrcG9pbnQga3Byb2JlX2JsYWNrbGlzdFtdID0geworc3RhdGljIHN0cnVjdCBrcHJvYmVfYmxhY2twb2ludCBrcHJvYmVfYmxhY2tsaXN0W10gPSB7CiAJeyJwcmVlbXB0X3NjaGVkdWxlIix9LAogCXtOVUxMfSAgICAvKiBUZXJtaW5hdG9yICovCiB9OwpAQCAtNjk5LDggKzY5OSw5IEBACiAJCXJldHVybiAtRUlOVkFMOwogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewogCQlyZXQgPSBfX3JlZ2lzdGVyX2twcm9iZShrcHNbaV0sIGNhbGxlZF9mcm9tKTsKLQkJaWYgKHJldCA8IDAgJiYgaSA+IDApIHsKLQkJCXVucmVnaXN0ZXJfa3Byb2JlcyhrcHMsIGkpOworCQlpZiAocmV0IDwgMCkgeworCQkJaWYgKGkgPiAwKQorCQkJCXVucmVnaXN0ZXJfa3Byb2JlcyhrcHMsIGkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC03NzYsOCArNzc3LDkgQEAKIAkJCWpwLT5rcC5icmVha19oYW5kbGVyID0gbG9uZ2ptcF9icmVha19oYW5kbGVyOwogCQkJcmV0ID0gX19yZWdpc3Rlcl9rcHJvYmUoJmpwLT5rcCwgY2FsbGVkX2Zyb20pOwogCQl9Ci0JCWlmIChyZXQgPCAwICYmIGkgPiAwKSB7Ci0JCQl1bnJlZ2lzdGVyX2pwcm9iZXMoanBzLCBpKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlmIChpID4gMCkKKwkJCQl1bnJlZ2lzdGVyX2pwcm9iZXMoanBzLCBpKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtOTIwLDggKzkyMiw5IEBACiAJCXJldHVybiAtRUlOVkFMOwogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewogCQlyZXQgPSBfX3JlZ2lzdGVyX2tyZXRwcm9iZShycHNbaV0sIGNhbGxlZF9mcm9tKTsKLQkJaWYgKHJldCA8IDAgJiYgaSA+IDApIHsKLQkJCXVucmVnaXN0ZXJfa3JldHByb2JlcyhycHMsIGkpOworCQlpZiAocmV0IDwgMCkgeworCQkJaWYgKGkgPiAwKQorCQkJCXVucmVnaXN0ZXJfa3JldHByb2JlcyhycHMsIGkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9rZXJuZWwva3RocmVhZC5jIGIva2VybmVsL2t0aHJlYWQuYwppbmRleCBiZDFiOWVhLi45Nzc0N2NkIDEwMDY0NAotLS0gYS9rZXJuZWwva3RocmVhZC5jCisrKyBiL2tlcm5lbC9rdGhyZWFkLmMKQEAgLTE4MCw2ICsxODAsNyBAQAogCXNldF90YXNrX2NwdShrLCBjcHUpOwogCWstPmNwdXNfYWxsb3dlZCA9IGNwdW1hc2tfb2ZfY3B1KGNwdSk7CiAJay0+cnQubnJfY3B1c19hbGxvd2VkID0gMTsKKwlrLT5mbGFncyB8PSBQRl9USFJFQURfQk9VTkQ7CiB9CiBFWFBPUlRfU1lNQk9MKGt0aHJlYWRfYmluZCk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NrZGVwLmMgYi9rZXJuZWwvbG9ja2RlcC5jCmluZGV4IDgxYTRlNGEuLmQzOGE2NDMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9sb2NrZGVwLmMKKysrIGIva2VybmVsL2xvY2tkZXAuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lycWZsYWdzLmg+CiAjaW5jbHVkZSA8bGludXgvdXRzbmFtZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KIAogI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgogCkBAIC04MSw2ICs4Miw4IEBACiAJCV9fcmF3X3NwaW5fdW5sb2NrKCZsb2NrZGVwX2xvY2spOwogCQlyZXR1cm4gMDsKIAl9CisJLyogcHJldmVudCBhbnkgcmVjdXJzaW9ucyB3aXRoaW4gbG9ja2RlcCBmcm9tIGNhdXNpbmcgZGVhZGxvY2tzICovCisJY3VycmVudC0+bG9ja2RlcF9yZWN1cnNpb24rKzsKIAlyZXR1cm4gMTsKIH0KIApAQCAtODksNiArOTIsNyBAQAogCWlmIChkZWJ1Z19sb2NrcyAmJiAhX19yYXdfc3Bpbl9pc19sb2NrZWQoJmxvY2tkZXBfbG9jaykpCiAJCXJldHVybiBERUJVR19MT0NLU19XQVJOX09OKDEpOwogCisJY3VycmVudC0+bG9ja2RlcF9yZWN1cnNpb24tLTsKIAlfX3Jhd19zcGluX3VubG9jaygmbG9ja2RlcF9sb2NrKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTk4Miw3ICs5ODYsNyBAQAogCXJldHVybiAxOwogfQogCi0jaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCisjaWYgZGVmaW5lZChDT05GSUdfVFJBQ0VfSVJRRkxBR1MpICYmIGRlZmluZWQoQ09ORklHX1BST1ZFX0xPQ0tJTkcpCiAvKgogICogRm9yd2FyZHMgYW5kIGJhY2t3YXJkcyBzdWJncmFwaCBzZWFyY2hpbmcsIGZvciB0aGUgcHVycG9zZXMgb2YKICAqIHByb3ZpbmcgdGhhdCB0d28gc3ViZ3JhcGhzIGNhbiBiZSBjb25uZWN0ZWQgYnkgYSBuZXcgZGVwZW5kZW5jeQpAQCAtMTQ1OCw3ICsxNDYyLDE0IEBACiB9CiAKIHVuc2lnbmVkIGxvbmcgbnJfbG9ja19jaGFpbnM7Ci1zdGF0aWMgc3RydWN0IGxvY2tfY2hhaW4gbG9ja19jaGFpbnNbTUFYX0xPQ0tERVBfQ0hBSU5TXTsKK3N0cnVjdCBsb2NrX2NoYWluIGxvY2tfY2hhaW5zW01BWF9MT0NLREVQX0NIQUlOU107CitpbnQgbnJfY2hhaW5faGxvY2tzOworc3RhdGljIHUxNiBjaGFpbl9obG9ja3NbTUFYX0xPQ0tERVBfQ0hBSU5fSExPQ0tTXTsKKworc3RydWN0IGxvY2tfY2xhc3MgKmxvY2tfY2hhaW5fZ2V0X2NsYXNzKHN0cnVjdCBsb2NrX2NoYWluICpjaGFpbiwgaW50IGkpCit7CisJcmV0dXJuIGxvY2tfY2xhc3NlcyArIGNoYWluX2hsb2Nrc1tjaGFpbi0+YmFzZSArIGldOworfQogCiAvKgogICogTG9vayB1cCBhIGRlcGVuZGVuY3kgY2hhaW4uIElmIHRoZSBrZXkgaXMgbm90IHByZXNlbnQgeWV0IHRoZW4KQEAgLTE0NjYsMTAgKzE0NzcsMTUgQEAKICAqIHZhbGlkYXRlZC4gSWYgdGhlIGtleSBpcyBhbHJlYWR5IGhhc2hlZCwgcmV0dXJuIDAuCiAgKiAoT24gcmV0dXJuIHdpdGggMSBncmFwaF9sb2NrIGlzIGhlbGQuKQogICovCi1zdGF0aWMgaW5saW5lIGludCBsb29rdXBfY2hhaW5fY2FjaGUodTY0IGNoYWluX2tleSwgc3RydWN0IGxvY2tfY2xhc3MgKmNsYXNzKQorc3RhdGljIGlubGluZSBpbnQgbG9va3VwX2NoYWluX2NhY2hlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciwKKwkJCQkgICAgIHN0cnVjdCBoZWxkX2xvY2sgKmhsb2NrLAorCQkJCSAgICAgdTY0IGNoYWluX2tleSkKIHsKKwlzdHJ1Y3QgbG9ja19jbGFzcyAqY2xhc3MgPSBobG9jay0+Y2xhc3M7CiAJc3RydWN0IGxpc3RfaGVhZCAqaGFzaF9oZWFkID0gY2hhaW5oYXNoZW50cnkoY2hhaW5fa2V5KTsKIAlzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW47CisJc3RydWN0IGhlbGRfbG9jayAqaGxvY2tfY3VyciwgKmhsb2NrX25leHQ7CisJaW50IGksIGosIG4sIGNuOwogCiAJaWYgKERFQlVHX0xPQ0tTX1dBUk5fT04oIWlycXNfZGlzYWJsZWQoKSkpCiAJCXJldHVybiAwOwpAQCAtMTUxNyw2ICsxNTMzLDMyIEBACiAJfQogCWNoYWluID0gbG9ja19jaGFpbnMgKyBucl9sb2NrX2NoYWlucysrOwogCWNoYWluLT5jaGFpbl9rZXkgPSBjaGFpbl9rZXk7CisJY2hhaW4tPmlycV9jb250ZXh0ID0gaGxvY2stPmlycV9jb250ZXh0OworCS8qIEZpbmQgdGhlIGZpcnN0IGhlbGRfbG9jayBvZiBjdXJyZW50IGNoYWluICovCisJaGxvY2tfbmV4dCA9IGhsb2NrOworCWZvciAoaSA9IGN1cnItPmxvY2tkZXBfZGVwdGggLSAxOyBpID49IDA7IGktLSkgeworCQlobG9ja19jdXJyID0gY3Vyci0+aGVsZF9sb2NrcyArIGk7CisJCWlmIChobG9ja19jdXJyLT5pcnFfY29udGV4dCAhPSBobG9ja19uZXh0LT5pcnFfY29udGV4dCkKKwkJCWJyZWFrOworCQlobG9ja19uZXh0ID0gaGxvY2s7CisJfQorCWkrKzsKKwljaGFpbi0+ZGVwdGggPSBjdXJyLT5sb2NrZGVwX2RlcHRoICsgMSAtIGk7CisJY24gPSBucl9jaGFpbl9obG9ja3M7CisJd2hpbGUgKGNuICsgY2hhaW4tPmRlcHRoIDw9IE1BWF9MT0NLREVQX0NIQUlOX0hMT0NLUykgeworCQluID0gY21weGNoZygmbnJfY2hhaW5faGxvY2tzLCBjbiwgY24gKyBjaGFpbi0+ZGVwdGgpOworCQlpZiAobiA9PSBjbikKKwkJCWJyZWFrOworCQljbiA9IG47CisJfQorCWlmIChsaWtlbHkoY24gKyBjaGFpbi0+ZGVwdGggPD0gTUFYX0xPQ0tERVBfQ0hBSU5fSExPQ0tTKSkgeworCQljaGFpbi0+YmFzZSA9IGNuOworCQlmb3IgKGogPSAwOyBqIDwgY2hhaW4tPmRlcHRoIC0gMTsgaisrLCBpKyspIHsKKwkJCWludCBsb2NrX2lkID0gY3Vyci0+aGVsZF9sb2Nrc1tpXS5jbGFzcyAtIGxvY2tfY2xhc3NlczsKKwkJCWNoYWluX2hsb2Nrc1tjaGFpbi0+YmFzZSArIGpdID0gbG9ja19pZDsKKwkJfQorCQljaGFpbl9obG9ja3NbY2hhaW4tPmJhc2UgKyBqXSA9IGNsYXNzIC0gbG9ja19jbGFzc2VzOworCX0KIAlsaXN0X2FkZF90YWlsX3JjdSgmY2hhaW4tPmVudHJ5LCBoYXNoX2hlYWQpOwogCWRlYnVnX2F0b21pY19pbmMoJmNoYWluX2xvb2t1cF9taXNzZXMpOwogCWluY19jaGFpbnMoKTsKQEAgLTE1MzgsNyArMTU4MCw3IEBACiAJICogZ3JhcGhfbG9jayBmb3IgdXMpCiAJICovCiAJaWYgKCFobG9jay0+dHJ5bG9jayAmJiAoaGxvY2stPmNoZWNrID09IDIpICYmCi0JCQlsb29rdXBfY2hhaW5fY2FjaGUoY2hhaW5fa2V5LCBobG9jay0+Y2xhc3MpKSB7CisJICAgIGxvb2t1cF9jaGFpbl9jYWNoZShjdXJyLCBobG9jaywgY2hhaW5fa2V5KSkgewogCQkvKgogCQkgKiBDaGVjayB3aGV0aGVyIGxhc3QgaGVsZCBsb2NrOgogCQkgKgpAQCAtMTY4MCw3ICsxNzIyLDcgQEAKIHN0YXRpYyBpbnQgbWFya19sb2NrKHN0cnVjdCB0YXNrX3N0cnVjdCAqY3Vyciwgc3RydWN0IGhlbGRfbG9jayAqdGhpcywKIAkJICAgICBlbnVtIGxvY2tfdXNhZ2VfYml0IG5ld19iaXQpOwogCi0jaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCisjaWYgZGVmaW5lZChDT05GSUdfVFJBQ0VfSVJRRkxBR1MpICYmIGRlZmluZWQoQ09ORklHX1BST1ZFX0xPQ0tJTkcpCiAKIC8qCiAgKiBwcmludCBpcnEgaW52ZXJzaW9uIGJ1ZzoKQEAgLTIwMTMsMTEgKzIwNTUsMTMgQEAKIC8qCiAgKiBIYXJkaXJxcyB3aWxsIGJlIGVuYWJsZWQ6CiAgKi8KLXZvaWQgdHJhY2VfaGFyZGlycXNfb24odm9pZCkKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKHVuc2lnbmVkIGxvbmcgYTApCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyID0gY3VycmVudDsKIAl1bnNpZ25lZCBsb25nIGlwOwogCisJdGltZV9oYXJkaXJxc19vbihDQUxMRVJfQUREUjAsIGEwKTsKKwogCWlmICh1bmxpa2VseSghZGVidWdfbG9ja3MgfHwgY3VycmVudC0+bG9ja2RlcF9yZWN1cnNpb24pKQogCQlyZXR1cm47CiAKQEAgLTIwNTUsMTYgKzIwOTksMjMgQEAKIAljdXJyLT5oYXJkaXJxX2VuYWJsZV9ldmVudCA9ICsrY3Vyci0+aXJxX2V2ZW50czsKIAlkZWJ1Z19hdG9taWNfaW5jKCZoYXJkaXJxc19vbl9ldmVudHMpOwogfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIpOwogCit2b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpCit7CisJdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKENBTExFUl9BRERSMCk7Cit9CiBFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29uKTsKIAogLyoKICAqIEhhcmRpcnFzIHdlcmUgZGlzYWJsZWQ6CiAgKi8KLXZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmKHZvaWQpCit2b2lkIHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIodW5zaWduZWQgbG9uZyBhMCkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIgPSBjdXJyZW50OwogCisJdGltZV9oYXJkaXJxc19vZmYoQ0FMTEVSX0FERFIwLCBhMCk7CisKIAlpZiAodW5saWtlbHkoIWRlYnVnX2xvY2tzIHx8IGN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uKSkKIAkJcmV0dXJuOwogCkBAIC0yMDgyLDcgKzIxMzMsMTIgQEAKIAl9IGVsc2UKIAkJZGVidWdfYXRvbWljX2luYygmcmVkdW5kYW50X2hhcmRpcnFzX29mZik7CiB9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIpOwogCit2b2lkIHRyYWNlX2hhcmRpcnFzX29mZih2b2lkKQoreworCXRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIoQ0FMTEVSX0FERFIwKTsKK30KIEVYUE9SVF9TWU1CT0wodHJhY2VfaGFyZGlycXNfb2ZmKTsKIAogLyoKQEAgLTIyNDYsNyArMjMwMiw3IEBACiAgKiBNYXJrIGEgbG9jayB3aXRoIGEgdXNhZ2UgYml0LCBhbmQgdmFsaWRhdGUgdGhlIHN0YXRlIHRyYW5zaXRpb246CiAgKi8KIHN0YXRpYyBpbnQgbWFya19sb2NrKHN0cnVjdCB0YXNrX3N0cnVjdCAqY3Vyciwgc3RydWN0IGhlbGRfbG9jayAqdGhpcywKLQkJICAgICBlbnVtIGxvY2tfdXNhZ2VfYml0IG5ld19iaXQpCisJCQkgICAgIGVudW0gbG9ja191c2FnZV9iaXQgbmV3X2JpdCkKIHsKIAl1bnNpZ25lZCBpbnQgbmV3X21hc2sgPSAxIDw8IG5ld19iaXQsIHJldCA9IDE7CiAKQEAgLTI2NTAsNyArMjcwNiw4IEBACiAgKi8KIHN0YXRpYyB2b2lkIGNoZWNrX2ZsYWdzKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7Ci0jaWYgZGVmaW5lZChDT05GSUdfREVCVUdfTE9DS0RFUCkgJiYgZGVmaW5lZChDT05GSUdfVFJBQ0VfSVJRRkxBR1MpCisjaWYgZGVmaW5lZChDT05GSUdfUFJPVkVfTE9DS0lORykgJiYgZGVmaW5lZChDT05GSUdfREVCVUdfTE9DS0RFUCkgJiYgXAorICAgIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKQogCWlmICghZGVidWdfbG9ja3MpCiAJCXJldHVybjsKIApAQCAtMjY4Niw3ICsyNzQzLDcgQEAKICAqIGFuZCBhbHNvIGF2b2lkIGxvY2tkZXAgcmVjdXJzaW9uOgogICovCiB2b2lkIGxvY2tfYWNxdWlyZShzdHJ1Y3QgbG9ja2RlcF9tYXAgKmxvY2ssIHVuc2lnbmVkIGludCBzdWJjbGFzcywKLQkJICBpbnQgdHJ5bG9jaywgaW50IHJlYWQsIGludCBjaGVjaywgdW5zaWduZWQgbG9uZyBpcCkKKwkJCSAgaW50IHRyeWxvY2ssIGludCByZWFkLCBpbnQgY2hlY2ssIHVuc2lnbmVkIGxvbmcgaXApCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtMjcwOCw3ICsyNzY1LDggQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwobG9ja19hY3F1aXJlKTsKIAotdm9pZCBsb2NrX3JlbGVhc2Uoc3RydWN0IGxvY2tkZXBfbWFwICpsb2NrLCBpbnQgbmVzdGVkLCB1bnNpZ25lZCBsb25nIGlwKQordm9pZCBsb2NrX3JlbGVhc2Uoc3RydWN0IGxvY2tkZXBfbWFwICpsb2NrLCBpbnQgbmVzdGVkLAorCQkJICB1bnNpZ25lZCBsb25nIGlwKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oIGIva2VybmVsL2xvY2tkZXBfaW50ZXJuYWxzLmgKaW5kZXggOGNlMDliYy4uYzM2MDBhMCAxMDA2NDQKLS0tIGEva2VybmVsL2xvY2tkZXBfaW50ZXJuYWxzLmgKKysrIGIva2VybmVsL2xvY2tkZXBfaW50ZXJuYWxzLmgKQEAgLTIzLDYgKzIzLDggQEAKICNkZWZpbmUgTUFYX0xPQ0tERVBfQ0hBSU5TX0JJVFMJMTQKICNkZWZpbmUgTUFYX0xPQ0tERVBfQ0hBSU5TCSgxVUwgPDwgTUFYX0xPQ0tERVBfQ0hBSU5TX0JJVFMpCiAKKyNkZWZpbmUgTUFYX0xPQ0tERVBfQ0hBSU5fSExPQ0tTIChNQVhfTE9DS0RFUF9DSEFJTlMqNSkKKwogLyoKICAqIFN0YWNrLXRyYWNlOiB0aWdodGx5IHBhY2tlZCBhcnJheSBvZiBzdGFjayBiYWNrdHJhY2UKICAqIGFkZHJlc3Nlcy4gUHJvdGVjdGVkIGJ5IHRoZSBoYXNoX2xvY2suCkBAIC0zMCwxNSArMzIsMTkgQEAKICNkZWZpbmUgTUFYX1NUQUNLX1RSQUNFX0VOVFJJRVMJMjYyMTQ0VUwKIAogZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYWxsX2xvY2tfY2xhc3NlczsKK2V4dGVybiBzdHJ1Y3QgbG9ja19jaGFpbiBsb2NrX2NoYWluc1tdOwogCiBleHRlcm4gdm9pZAogZ2V0X3VzYWdlX2NoYXJzKHN0cnVjdCBsb2NrX2NsYXNzICpjbGFzcywgY2hhciAqYzEsIGNoYXIgKmMyLCBjaGFyICpjMywgY2hhciAqYzQpOwogCiBleHRlcm4gY29uc3QgY2hhciAqIF9fZ2V0X2tleV9uYW1lKHN0cnVjdCBsb2NrZGVwX3N1YmNsYXNzX2tleSAqa2V5LCBjaGFyICpzdHIpOwogCitzdHJ1Y3QgbG9ja19jbGFzcyAqbG9ja19jaGFpbl9nZXRfY2xhc3Moc3RydWN0IGxvY2tfY2hhaW4gKmNoYWluLCBpbnQgaSk7CisKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2xvY2tfY2xhc3NlczsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2xpc3RfZW50cmllczsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2xvY2tfY2hhaW5zOworZXh0ZXJuIGludCBucl9jaGFpbl9obG9ja3M7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9zdGFja190cmFjZV9lbnRyaWVzOwogCiBleHRlcm4gdW5zaWduZWQgaW50IG5yX2hhcmRpcnFfY2hhaW5zOwpkaWZmIC0tZ2l0IGEva2VybmVsL2xvY2tkZXBfcHJvYy5jIGIva2VybmVsL2xvY2tkZXBfcHJvYy5jCmluZGV4IGRjNWQyOTYuLjliMGU5NDAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9sb2NrZGVwX3Byb2MuYworKysgYi9rZXJuZWwvbG9ja2RlcF9wcm9jLmMKQEAgLTEzOSw3ICsxMzksNyBAQAogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmNsYXNzLT5sb2Nrc19hZnRlciwgZW50cnkpIHsKIAkJaWYgKGVudHJ5LT5kaXN0YW5jZSA9PSAxKSB7Ci0JCQlzZXFfcHJpbnRmKG0sICIgLT4gWyVwXSAiLCBlbnRyeS0+Y2xhc3MpOworCQkJc2VxX3ByaW50ZihtLCAiIC0+IFslcF0gIiwgZW50cnktPmNsYXNzLT5rZXkpOwogCQkJcHJpbnRfbmFtZShtLCBlbnRyeS0+Y2xhc3MpOwogCQkJc2VxX3B1dHMobSwgIlxuIik7CiAJCX0KQEAgLTE3OCw2ICsxNzgsOTUgQEAKIAkucmVsZWFzZQk9IHNlcV9yZWxlYXNlLAogfTsKIAorI2lmZGVmIENPTkZJR19QUk9WRV9MT0NLSU5HCitzdGF0aWMgdm9pZCAqbGNfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCBsb2NrX2NoYWluICpjaGFpbjsKKworCSgqcG9zKSsrOworCisJaWYgKHYgPT0gU0VRX1NUQVJUX1RPS0VOKQorCQljaGFpbiA9IG0tPnByaXZhdGU7CisJZWxzZSB7CisJCWNoYWluID0gdjsKKworCQlpZiAoKnBvcyA8IG5yX2xvY2tfY2hhaW5zKQorCQkJY2hhaW4gPSBsb2NrX2NoYWlucyArICpwb3M7CisJCWVsc2UKKwkJCWNoYWluID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gY2hhaW47Cit9CisKK3N0YXRpYyB2b2lkICpsY19zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQoreworCWlmICgqcG9zID09IDApCisJCXJldHVybiBTRVFfU1RBUlRfVE9LRU47CisKKwlpZiAoKnBvcyA8IG5yX2xvY2tfY2hhaW5zKQorCQlyZXR1cm4gbG9ja19jaGFpbnMgKyAqcG9zOworCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGxjX3N0b3Aoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQoreworfQorCitzdGF0aWMgaW50IGxjX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQoreworCXN0cnVjdCBsb2NrX2NoYWluICpjaGFpbiA9IHY7CisJc3RydWN0IGxvY2tfY2xhc3MgKmNsYXNzOworCWludCBpOworCisJaWYgKHYgPT0gU0VRX1NUQVJUX1RPS0VOKSB7CisJCXNlcV9wcmludGYobSwgImFsbCBsb2NrIGNoYWluczpcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlzZXFfcHJpbnRmKG0sICJpcnFfY29udGV4dDogJWRcbiIsIGNoYWluLT5pcnFfY29udGV4dCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY2hhaW4tPmRlcHRoOyBpKyspIHsKKwkJY2xhc3MgPSBsb2NrX2NoYWluX2dldF9jbGFzcyhjaGFpbiwgaSk7CisJCXNlcV9wcmludGYobSwgIlslcF0gIiwgY2xhc3MtPmtleSk7CisJCXByaW50X25hbWUobSwgY2xhc3MpOworCQlzZXFfcHV0cyhtLCAiXG4iKTsKKwl9CisJc2VxX3B1dHMobSwgIlxuIik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBsb2NrZGVwX2NoYWluc19vcHMgPSB7CisJLnN0YXJ0CT0gbGNfc3RhcnQsCisJLm5leHQJPSBsY19uZXh0LAorCS5zdG9wCT0gbGNfc3RvcCwKKwkuc2hvdwk9IGxjX3Nob3csCit9OworCitzdGF0aWMgaW50IGxvY2tkZXBfY2hhaW5zX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJaW50IHJlcyA9IHNlcV9vcGVuKGZpbGUsICZsb2NrZGVwX2NoYWluc19vcHMpOworCWlmICghcmVzKSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCQlpZiAobnJfbG9ja19jaGFpbnMpCisJCQltLT5wcml2YXRlID0gbG9ja19jaGFpbnM7CisJCWVsc2UKKwkJCW0tPnByaXZhdGUgPSBOVUxMOworCX0KKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwcm9jX2xvY2tkZXBfY2hhaW5zX29wZXJhdGlvbnMgPSB7CisJLm9wZW4JCT0gbG9ja2RlcF9jaGFpbnNfb3BlbiwKKwkucmVhZAkJPSBzZXFfcmVhZCwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNlcV9yZWxlYXNlLAorfTsKKyNlbmRpZiAvKiBDT05GSUdfUFJPVkVfTE9DS0lORyAqLworCiBzdGF0aWMgdm9pZCBsb2NrZGVwX3N0YXRzX2RlYnVnX3Nob3coc3RydWN0IHNlcV9maWxlICptKQogewogI2lmZGVmIENPTkZJR19ERUJVR19MT0NLREVQCkBAIC0yOTQsNiArMzgzLDggQEAKICNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORwogCXNlcV9wcmludGYobSwgIiBkZXBlbmRlbmN5IGNoYWluczogICAgICAgICAgICAgJTExbHUgW21heDogJWx1XVxuIiwKIAkJCW5yX2xvY2tfY2hhaW5zLCBNQVhfTE9DS0RFUF9DSEFJTlMpOworCXNlcV9wcmludGYobSwgIiBkZXBlbmRlbmN5IGNoYWluIGhsb2NrczogICAgICAgJTExZCBbbWF4OiAlbHVdXG4iLAorCQkJbnJfY2hhaW5faGxvY2tzLCBNQVhfTE9DS0RFUF9DSEFJTl9ITE9DS1MpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKQEAgLTY2MSw2ICs3NTIsMTAgQEAKIHN0YXRpYyBpbnQgX19pbml0IGxvY2tkZXBfcHJvY19pbml0KHZvaWQpCiB7CiAJcHJvY19jcmVhdGUoImxvY2tkZXAiLCBTX0lSVVNSLCBOVUxMLCAmcHJvY19sb2NrZGVwX29wZXJhdGlvbnMpOworI2lmZGVmIENPTkZJR19QUk9WRV9MT0NLSU5HCisJcHJvY19jcmVhdGUoImxvY2tkZXBfY2hhaW5zIiwgU19JUlVTUiwgTlVMTCwKKwkJICAgICZwcm9jX2xvY2tkZXBfY2hhaW5zX29wZXJhdGlvbnMpOworI2VuZGlmCiAJcHJvY19jcmVhdGUoImxvY2tkZXBfc3RhdHMiLCBTX0lSVVNSLCBOVUxMLAogCQkgICAgJnByb2NfbG9ja2RlcF9zdGF0c19vcGVyYXRpb25zKTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL21hcmtlci5jIGIva2VybmVsL21hcmtlci5jCmluZGV4IGI1YTlmZTEuLjFhYmZiOTIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9tYXJrZXIuYworKysgYi9rZXJuZWwvbWFya2VyLmMKQEAgLTU1LDggKzU1LDggQEAKIHN0cnVjdCBtYXJrZXJfZW50cnkgewogCXN0cnVjdCBobGlzdF9ub2RlIGhsaXN0OwogCWNoYXIgKmZvcm1hdDsKLQl2b2lkICgqY2FsbCkoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCS8qIFByb2JlIHdyYXBwZXIgKi8KLQkJdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CisJCQkvKiBQcm9iZSB3cmFwcGVyICovCisJdm9pZCAoKmNhbGwpKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLCB2b2lkICpjYWxsX3ByaXZhdGUsIC4uLik7CiAJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlIHNpbmdsZTsKIAlzdHJ1Y3QgbWFya2VyX3Byb2JlX2Nsb3N1cmUgKm11bHRpOwogCWludCByZWZjb3VudDsJLyogTnVtYmVyIG9mIHRpbWVzIGFybWVkLiAwIGlmIGRpc2FybWVkLiAqLwpAQCAtOTEsMTUgKzkxLDEzIEBACiAgKiBtYXJrZXJfcHJvYmVfY2IgQ2FsbGJhY2sgdGhhdCBwcmVwYXJlcyB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdCBmb3IgcHJvYmVzLgogICogQG1kYXRhOiBwb2ludGVyIG9mIHR5cGUgc3RydWN0IG1hcmtlcgogICogQGNhbGxfcHJpdmF0ZTogY2FsbGVyIHNpdGUgcHJpdmF0ZSBkYXRhCi0gKiBAZm10OiBmb3JtYXQgc3RyaW5nCiAgKiBALi4uOiAgVmFyaWFibGUgYXJndW1lbnQgbGlzdC4KICAqCiAgKiBTaW5jZSB3ZSBkbyBub3QgdXNlICJ0eXBpY2FsIiBwb2ludGVyIGJhc2VkIFJDVSBpbiB0aGUgMSBhcmd1bWVudCBjYXNlLCB3ZQogICogbmVlZCB0byBwdXQgYSBmdWxsIHNtcF9ybWIoKSBpbiB0aGlzIGJyYW5jaC4gVGhpcyBpcyB3aHkgd2UgZG8gbm90IHVzZQogICogcmN1X2RlcmVmZXJlbmNlKCkgZm9yIHRoZSBwb2ludGVyIHJlYWQuCiAgKi8KLXZvaWQgbWFya2VyX3Byb2JlX2NiKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLCB2b2lkICpjYWxsX3ByaXZhdGUsCi0JY29uc3QgY2hhciAqZm10LCAuLi4pCit2b2lkIG1hcmtlcl9wcm9iZV9jYihjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pCiB7CiAJdmFfbGlzdCBhcmdzOwogCWNoYXIgcHR5cGU7CkBAIC0xMjAsOCArMTE4LDkgQEAKIAkJLyogTXVzdCByZWFkIHRoZSBwdHIgYmVmb3JlIHByaXZhdGUgZGF0YS4gVGhleSBhcmUgbm90IGRhdGEKIAkJICogZGVwZW5kYW50LCBzbyB3ZSBwdXQgYW4gZXhwbGljaXQgc21wX3JtYigpIGhlcmUuICovCiAJCXNtcF9ybWIoKTsKLQkJdmFfc3RhcnQoYXJncywgZm10KTsKLQkJZnVuYyhtZGF0YS0+c2luZ2xlLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgZm10LCAmYXJncyk7CisJCXZhX3N0YXJ0KGFyZ3MsIGNhbGxfcHJpdmF0ZSk7CisJCWZ1bmMobWRhdGEtPnNpbmdsZS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIG1kYXRhLT5mb3JtYXQsCisJCQkmYXJncyk7CiAJCXZhX2VuZChhcmdzKTsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgbWFya2VyX3Byb2JlX2Nsb3N1cmUgKm11bHRpOwpAQCAtMTM2LDkgKzEzNSw5IEBACiAJCXNtcF9yZWFkX2JhcnJpZXJfZGVwZW5kcygpOwogCQltdWx0aSA9IG1kYXRhLT5tdWx0aTsKIAkJZm9yIChpID0gMDsgbXVsdGlbaV0uZnVuYzsgaSsrKSB7Ci0JCQl2YV9zdGFydChhcmdzLCBmbXQpOwotCQkJbXVsdGlbaV0uZnVuYyhtdWx0aVtpXS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIGZtdCwKLQkJCQkmYXJncyk7CisJCQl2YV9zdGFydChhcmdzLCBjYWxsX3ByaXZhdGUpOworCQkJbXVsdGlbaV0uZnVuYyhtdWx0aVtpXS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsCisJCQkJbWRhdGEtPmZvcm1hdCwgJmFyZ3MpOwogCQkJdmFfZW5kKGFyZ3MpOwogCQl9CiAJfQpAQCAtMTUwLDEzICsxNDksMTEgQEAKICAqIG1hcmtlcl9wcm9iZV9jYiBDYWxsYmFjayB0aGF0IGRvZXMgbm90IHByZXBhcmUgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCiAgKiBAbWRhdGE6IHBvaW50ZXIgb2YgdHlwZSBzdHJ1Y3QgbWFya2VyCiAgKiBAY2FsbF9wcml2YXRlOiBjYWxsZXIgc2l0ZSBwcml2YXRlIGRhdGEKLSAqIEBmbXQ6IGZvcm1hdCBzdHJpbmcKICAqIEAuLi46ICBWYXJpYWJsZSBhcmd1bWVudCBsaXN0LgogICoKICAqIFNob3VsZCBiZSBjb25uZWN0ZWQgdG8gbWFya2VycyAiTUFSS19OT0FSR1MiLgogICovCi12b2lkIG1hcmtlcl9wcm9iZV9jYl9ub2FyZyhjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwKLQl2b2lkICpjYWxsX3ByaXZhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQordm9pZCBtYXJrZXJfcHJvYmVfY2Jfbm9hcmcoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsIHZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKQogewogCXZhX2xpc3QgYXJnczsJLyogbm90IGluaXRpYWxpemVkICovCiAJY2hhciBwdHlwZTsKQEAgLTE3Miw3ICsxNjksOCBAQAogCQkvKiBNdXN0IHJlYWQgdGhlIHB0ciBiZWZvcmUgcHJpdmF0ZSBkYXRhLiBUaGV5IGFyZSBub3QgZGF0YQogCQkgKiBkZXBlbmRhbnQsIHNvIHdlIHB1dCBhbiBleHBsaWNpdCBzbXBfcm1iKCkgaGVyZS4gKi8KIAkJc21wX3JtYigpOwotCQlmdW5jKG1kYXRhLT5zaW5nbGUucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBmbXQsICZhcmdzKTsKKwkJZnVuYyhtZGF0YS0+c2luZ2xlLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgbWRhdGEtPmZvcm1hdCwKKwkJCSZhcmdzKTsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgbWFya2VyX3Byb2JlX2Nsb3N1cmUgKm11bHRpOwogCQlpbnQgaTsKQEAgLTE4Niw4ICsxODQsOCBAQAogCQlzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKIAkJbXVsdGkgPSBtZGF0YS0+bXVsdGk7CiAJCWZvciAoaSA9IDA7IG11bHRpW2ldLmZ1bmM7IGkrKykKLQkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBmbXQsCi0JCQkJJmFyZ3MpOworCQkJbXVsdGlbaV0uZnVuYyhtdWx0aVtpXS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsCisJCQkJbWRhdGEtPmZvcm1hdCwgJmFyZ3MpOwogCX0KIAlwcmVlbXB0X2VuYWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL211dGV4LWRlYnVnLmMgYi9rZXJuZWwvbXV0ZXgtZGVidWcuYwppbmRleCAzYWFhMDZjLi4xZDk0MTYwIDEwMDY0NAotLS0gYS9rZXJuZWwvbXV0ZXgtZGVidWcuYworKysgYi9rZXJuZWwvbXV0ZXgtZGVidWcuYwpAQCAtNzksOCArNzksOCBAQAogCWlmICh1bmxpa2VseSghZGVidWdfbG9ja3MpKQogCQlyZXR1cm47CiAKLQlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiAJREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5tYWdpYyAhPSBsb2NrKTsKKwlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiAJREVCVUdfTE9DS1NfV0FSTl9PTighbG9jay0+d2FpdF9saXN0LnByZXYgJiYgIWxvY2stPndhaXRfbGlzdC5uZXh0KTsKIAlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvbXV0ZXguYyBiL2tlcm5lbC9tdXRleC5jCmluZGV4IGQwNDZhMzQuLmJjZGM5YWMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9tdXRleC5jCisrKyBiL2tlcm5lbC9tdXRleC5jCkBAIC0xNjUsMTAgKzE2NSw3IEBACiAJCSAqIGdvdCBhIHNpZ25hbD8gKFRoaXMgY29kZSBnZXRzIGVsaW1pbmF0ZWQgaW4gdGhlCiAJCSAqIFRBU0tfVU5JTlRFUlJVUFRJQkxFIGNhc2UuKQogCQkgKi8KLQkJaWYgKHVubGlrZWx5KChzdGF0ZSA9PSBUQVNLX0lOVEVSUlVQVElCTEUgJiYKLQkJCQkJc2lnbmFsX3BlbmRpbmcodGFzaykpIHx8Ci0JCQkgICAgICAoc3RhdGUgPT0gVEFTS19LSUxMQUJMRSAmJgotCQkJCQlmYXRhbF9zaWduYWxfcGVuZGluZyh0YXNrKSkpKSB7CisJCWlmICh1bmxpa2VseShzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgdGFzaykpKSB7CiAJCQltdXRleF9yZW1vdmVfd2FpdGVyKGxvY2ssICZ3YWl0ZXIsCiAJCQkJCSAgICB0YXNrX3RocmVhZF9pbmZvKHRhc2spKTsKIAkJCW11dGV4X3JlbGVhc2UoJmxvY2stPmRlcF9tYXAsIDEsIGlwKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wbV9xb3NfcGFyYW1zLmMgYi9rZXJuZWwvcG1fcW9zX3BhcmFtcy5jCmluZGV4IDBhZmUzMmIuLjhjYjc1NzAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wbV9xb3NfcGFyYW1zLmMKKysrIGIva2VybmVsL3BtX3Fvc19wYXJhbXMuYwpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8bGludXgvcG1fcW9zX3BhcmFtcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CkBAIC0zNTgsMTUgKzM1OSwxOSBAQAogCWludCByZXQ7CiAJbG9uZyBwbV9xb3NfY2xhc3M7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXBtX3Fvc19jbGFzcyA9IGZpbmRfcG1fcW9zX29iamVjdF9ieV9taW5vcihpbWlub3IoaW5vZGUpKTsKIAlpZiAocG1fcW9zX2NsYXNzID49IDApIHsKIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKilwbV9xb3NfY2xhc3M7CiAJCXNwcmludGYobmFtZSwgInByb2Nlc3NfJWQiLCBjdXJyZW50LT5waWQpOwogCQlyZXQgPSBwbV9xb3NfYWRkX3JlcXVpcmVtZW50KHBtX3Fvc19jbGFzcywgbmFtZSwKIAkJCQkJUE1fUU9TX0RFRkFVTFRfVkFMVUUpOwotCQlpZiAocmV0ID49IDApCisJCWlmIChyZXQgPj0gMCkgeworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIDA7CisJCX0KIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIC1FUEVSTTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsuYyBiL2tlcm5lbC9wcmludGsuYwppbmRleCA4ZmIwMWMzLi4wN2FkOWU3IDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrLmMKKysrIGIva2VybmVsL3ByaW50ay5jCkBAIC0zOCw3ICszOCw3IEBACiAvKgogICogQXJjaGl0ZWN0dXJlcyBjYW4gb3ZlcnJpZGUgaXQ6CiAgKi8KLXZvaWQgX19hdHRyaWJ1dGVfXygod2VhaykpIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgYXNtbGlua2FnZSBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogfQogCkBAIC03NSw2ICs3NSw4IEBACiBzdGF0aWMgREVDTEFSRV9NVVRFWChjb25zb2xlX3NlbSk7CiBzdGF0aWMgREVDTEFSRV9NVVRFWChzZWNvbmRhcnlfY29uc29sZV9zZW0pOwogc3RydWN0IGNvbnNvbGUgKmNvbnNvbGVfZHJpdmVyczsKK0VYUE9SVF9TWU1CT0xfR1BMKGNvbnNvbGVfZHJpdmVycyk7CisKIC8qCiAgKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgbWVzcyB0aGF0IGlzIHRoZSBWVCBjb2RlIGJ5CiAgKiBrZWVwaW5nIHRyYWNrIGlmIHdlIGhhdmUgdGhlIGNvbnNvbGUgc2VtYXBob3JlIGhlbGQuIEl0J3MKQEAgLTEyMSw2ICsxMjMsOCBAQAogc3RhdGljIHN0cnVjdCBjb25zb2xlX2NtZGxpbmUgY29uc29sZV9jbWRsaW5lW01BWF9DTURMSU5FQ09OU09MRVNdOwogc3RhdGljIGludCBzZWxlY3RlZF9jb25zb2xlID0gLTE7CiBzdGF0aWMgaW50IHByZWZlcnJlZF9jb25zb2xlID0gLTE7CitpbnQgY29uc29sZV9zZXRfb25fY21kbGluZTsKK0VYUE9SVF9TWU1CT0woY29uc29sZV9zZXRfb25fY21kbGluZSk7CiAKIC8qIEZsYWc6IGNvbnNvbGUgY29kZSBtYXkgY2FsbCBzY2hlZHVsZSgpICovCiBzdGF0aWMgaW50IGNvbnNvbGVfbWF5X3NjaGVkdWxlOwpAQCAtMjMxLDcgKzIzNSw3IEBACiAvKgogICogUmV0dXJuIHRoZSBudW1iZXIgb2YgdW5yZWFkIGNoYXJhY3RlcnMgaW4gdGhlIGxvZyBidWZmZXIuCiAgKi8KLWludCBsb2dfYnVmX2dldF9sZW4odm9pZCkKK3N0YXRpYyBpbnQgbG9nX2J1Zl9nZXRfbGVuKHZvaWQpCiB7CiAJcmV0dXJuIGxvZ2dlZF9jaGFyczsKIH0KQEAgLTI2OCwxOSArMjcyLDYgQEAKIH0KIAogLyoKLSAqIEV4dHJhY3QgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gdGhlIGxvZyBidWZmZXIuCi0gKi8KLWludCBsb2dfYnVmX3JlYWQoaW50IGlkeCkKLXsKLQljaGFyIHJldDsKLQotCWlmIChsb2dfYnVmX2NvcHkoJnJldCwgaWR4LCAxKSA9PSAxKQotCQlyZXR1cm4gcmV0OwotCWVsc2UKLQkJcmV0dXJuIC0xOwotfQotCi0vKgogICogQ29tbWFuZHMgdG8gZG9fc3lzbG9nOgogICoKICAqIAkwIC0tIENsb3NlIHRoZSBsb2cuICBDdXJyZW50bHkgYSBOT1AuCkBAIC02NjUsMTggKzY1NiwxNyBAQAogCXNwaW5fdW5sb2NrKCZsb2didWZfbG9jayk7CiAJcmV0dXJuIHJldHZhbDsKIH0KLQotY29uc3QgY2hhciBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cgW10gPQotCQkJS0VSTl9DUklUICJCVUc6IHJlY2VudCBwcmludGsgcmVjdXJzaW9uIVxuIjsKLXN0YXRpYyBpbnQgcHJpbnRrX3JlY3Vyc2lvbl9idWc7CitzdGF0aWMgY29uc3QgY2hhciByZWN1cnNpb25fYnVnX21zZyBbXSA9CisJCUtFUk5fQ1JJVCAiQlVHOiByZWNlbnQgcHJpbnRrIHJlY3Vyc2lvbiFcbiI7CitzdGF0aWMgaW50IHJlY3Vyc2lvbl9idWc7CisJc3RhdGljIGludCBuZXdfdGV4dF9saW5lID0gMTsKK3N0YXRpYyBjaGFyIHByaW50a19idWZbMTAyNF07CiAKIGFzbWxpbmthZ2UgaW50IHZwcmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7Ci0Jc3RhdGljIGludCBsb2dfbGV2ZWxfdW5rbm93biA9IDE7Ci0Jc3RhdGljIGNoYXIgcHJpbnRrX2J1ZlsxMDI0XTsKLQotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHByaW50ZWRfbGVuID0gMDsKKwlpbnQgY3VycmVudF9sb2dfbGV2ZWwgPSBkZWZhdWx0X21lc3NhZ2VfbG9nbGV2ZWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgdGhpc19jcHU7CiAJY2hhciAqcDsKIApAQCAtNjk5LDcgKzY4OSw3IEBACiAJCSAqIGl0IGNhbiBiZSBwcmludGVkIGF0IHRoZSBuZXh0IGFwcHJvcHJpYXRlIG1vbWVudDoKIAkJICovCiAJCWlmICghb29wc19pbl9wcm9ncmVzcykgewotCQkJcHJpbnRrX3JlY3Vyc2lvbl9idWcgPSAxOworCQkJcmVjdXJzaW9uX2J1ZyA9IDE7CiAJCQlnb3RvIG91dF9yZXN0b3JlX2lycXM7CiAJCX0KIAkJemFwX2xvY2tzKCk7CkBAIC03MDksNzAgKzY5OSw2MiBAQAogCXNwaW5fbG9jaygmbG9nYnVmX2xvY2spOwogCXByaW50a19jcHUgPSB0aGlzX2NwdTsKIAotCWlmIChwcmludGtfcmVjdXJzaW9uX2J1ZykgewotCQlwcmludGtfcmVjdXJzaW9uX2J1ZyA9IDA7Ci0JCXN0cmNweShwcmludGtfYnVmLCBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOwotCQlwcmludGVkX2xlbiA9IHNpemVvZihwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOworCWlmIChyZWN1cnNpb25fYnVnKSB7CisJCXJlY3Vyc2lvbl9idWcgPSAwOworCQlzdHJjcHkocHJpbnRrX2J1ZiwgcmVjdXJzaW9uX2J1Z19tc2cpOworCQlwcmludGVkX2xlbiA9IHNpemVvZihyZWN1cnNpb25fYnVnX21zZyk7CiAJfQogCS8qIEVtaXQgdGhlIG91dHB1dCBpbnRvIHRoZSB0ZW1wb3JhcnkgYnVmZmVyICovCiAJcHJpbnRlZF9sZW4gKz0gdnNjbnByaW50ZihwcmludGtfYnVmICsgcHJpbnRlZF9sZW4sCiAJCQkJICBzaXplb2YocHJpbnRrX2J1ZikgLSBwcmludGVkX2xlbiwgZm10LCBhcmdzKTsKIAorCiAJLyoKIAkgKiBDb3B5IHRoZSBvdXRwdXQgaW50byBsb2dfYnVmLiAgSWYgdGhlIGNhbGxlciBkaWRuJ3QgcHJvdmlkZQogCSAqIGFwcHJvcHJpYXRlIGxvZyBsZXZlbCB0YWdzLCB3ZSBpbnNlcnQgdGhlbSBoZXJlCiAJICovCiAJZm9yIChwID0gcHJpbnRrX2J1ZjsgKnA7IHArKykgewotCQlpZiAobG9nX2xldmVsX3Vua25vd24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxvZ19sZXZlbF91bmtub3duIHNpZ25hbHMgdGhlIHN0YXJ0IG9mIGEgbmV3IGxpbmUgKi8KKwkJaWYgKG5ld190ZXh0X2xpbmUpIHsKKwkJCS8qIElmIGEgdG9rZW4sIHNldCBjdXJyZW50X2xvZ19sZXZlbCBhbmQgc2tpcCBvdmVyICovCisJCQlpZiAocFswXSA9PSAnPCcgJiYgcFsxXSA+PSAnMCcgJiYgcFsxXSA8PSAnNycgJiYKKwkJCSAgICBwWzJdID09ICc+JykgeworCQkJCWN1cnJlbnRfbG9nX2xldmVsID0gcFsxXSAtICcwJzsKKwkJCQlwICs9IDM7CisJCQkJcHJpbnRlZF9sZW4gLT0gMzsKKwkJCX0KKworCQkJLyogQWx3YXlzIG91dHB1dCB0aGUgdG9rZW4gKi8KKwkJCWVtaXRfbG9nX2NoYXIoJzwnKTsKKwkJCWVtaXRfbG9nX2NoYXIoY3VycmVudF9sb2dfbGV2ZWwgKyAnMCcpOworCQkJZW1pdF9sb2dfY2hhcignPicpOworCQkJcHJpbnRlZF9sZW4gKz0gMzsKKwkJCW5ld190ZXh0X2xpbmUgPSAwOworCiAJCQlpZiAocHJpbnRrX3RpbWUpIHsKLQkJCQlpbnQgbG9nbGV2X2NoYXI7CisJCQkJLyogRm9sbG93IHRoZSB0b2tlbiB3aXRoIHRoZSB0aW1lICovCiAJCQkJY2hhciB0YnVmWzUwXSwgKnRwOwogCQkJCXVuc2lnbmVkIHRsZW47CiAJCQkJdW5zaWduZWQgbG9uZyBsb25nIHQ7CiAJCQkJdW5zaWduZWQgbG9uZyBuYW5vc2VjX3JlbTsKIAotCQkJCS8qCi0JCQkJICogZm9yY2UgdGhlIGxvZyBsZXZlbCB0b2tlbiB0byBiZQotCQkJCSAqIGJlZm9yZSB0aGUgdGltZSBvdXRwdXQuCi0JCQkJICovCi0JCQkJaWYgKHBbMF0gPT0gJzwnICYmIHBbMV0gPj0nMCcgJiYKLQkJCQkgICBwWzFdIDw9ICc3JyAmJiBwWzJdID09ICc+JykgewotCQkJCQlsb2dsZXZfY2hhciA9IHBbMV07Ci0JCQkJCXAgKz0gMzsKLQkJCQkJcHJpbnRlZF9sZW4gLT0gMzsKLQkJCQl9IGVsc2UgewotCQkJCQlsb2dsZXZfY2hhciA9IGRlZmF1bHRfbWVzc2FnZV9sb2dsZXZlbAotCQkJCQkJKyAnMCc7Ci0JCQkJfQogCQkJCXQgPSBjcHVfY2xvY2socHJpbnRrX2NwdSk7CiAJCQkJbmFub3NlY19yZW0gPSBkb19kaXYodCwgMTAwMDAwMDAwMCk7Ci0JCQkJdGxlbiA9IHNwcmludGYodGJ1ZiwKLQkJCQkJCSI8JWM+WyU1bHUuJTA2bHVdICIsCi0JCQkJCQlsb2dsZXZfY2hhciwKLQkJCQkJCSh1bnNpZ25lZCBsb25nKXQsCi0JCQkJCQluYW5vc2VjX3JlbS8xMDAwKTsKKwkJCQl0bGVuID0gc3ByaW50Zih0YnVmLCAiWyU1bHUuJTA2bHVdICIsCisJCQkJCQkodW5zaWduZWQgbG9uZykgdCwKKwkJCQkJCW5hbm9zZWNfcmVtIC8gMTAwMCk7CiAKIAkJCQlmb3IgKHRwID0gdGJ1ZjsgdHAgPCB0YnVmICsgdGxlbjsgdHArKykKIAkJCQkJZW1pdF9sb2dfY2hhcigqdHApOwogCQkJCXByaW50ZWRfbGVuICs9IHRsZW47Ci0JCQl9IGVsc2UgewotCQkJCWlmIChwWzBdICE9ICc8JyB8fCBwWzFdIDwgJzAnIHx8Ci0JCQkJICAgcFsxXSA+ICc3JyB8fCBwWzJdICE9ICc+JykgewotCQkJCQllbWl0X2xvZ19jaGFyKCc8Jyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoZGVmYXVsdF9tZXNzYWdlX2xvZ2xldmVsCi0JCQkJCQkrICcwJyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoJz4nKTsKLQkJCQkJcHJpbnRlZF9sZW4gKz0gMzsKLQkJCQl9CiAJCQl9Ci0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDA7CisKIAkJCWlmICghKnApCiAJCQkJYnJlYWs7CiAJCX0KKwogCQllbWl0X2xvZ19jaGFyKCpwKTsKIAkJaWYgKCpwID09ICdcbicpCi0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDE7CisJCQluZXdfdGV4dF9saW5lID0gMTsKIAl9CiAKIAkvKgpAQCAtODkwLDYgKzg3Miw3IEBACiAJKnMgPSAwOwogCiAJX19hZGRfcHJlZmVycmVkX2NvbnNvbGUoYnVmLCBpZHgsIG9wdGlvbnMsIGJybF9vcHRpb25zKTsKKwljb25zb2xlX3NldF9vbl9jbWRsaW5lID0gMTsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImNvbnNvbGU9IiwgY29uc29sZV9zZXR1cCk7CkBAIC0xMDQxLDcgKzEwMjQsOSBAQAogCQlfbG9nX2VuZCA9IGxvZ19lbmQ7CiAJCWNvbl9zdGFydCA9IGxvZ19lbmQ7CQkvKiBGbHVzaCAqLwogCQlzcGluX3VubG9jaygmbG9nYnVmX2xvY2spOworCQlzdG9wX2NyaXRpY2FsX3RpbWluZ3MoKTsJLyogZG9uJ3QgdHJhY2UgcHJpbnQgbGF0ZW5jeSAqLwogCQljYWxsX2NvbnNvbGVfZHJpdmVycyhfY29uX3N0YXJ0LCBfbG9nX2VuZCk7CisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKTsKIAkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCX0KIAljb25zb2xlX2xvY2tlZCA9IDA7CkBAIC0xMTcyLDggKzExNTcsMTEgQEAKIAkJCWNvbnNvbGUtPmluZGV4ID0gMDsKIAkJaWYgKGNvbnNvbGUtPnNldHVwID09IE5VTEwgfHwKIAkJICAgIGNvbnNvbGUtPnNldHVwKGNvbnNvbGUsIE5VTEwpID09IDApIHsKLQkJCWNvbnNvbGUtPmZsYWdzIHw9IENPTl9FTkFCTEVEIHwgQ09OX0NPTlNERVY7Ci0JCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQljb25zb2xlLT5mbGFncyB8PSBDT05fRU5BQkxFRDsKKwkJCWlmIChjb25zb2xlLT5kZXZpY2UpIHsKKwkJCQljb25zb2xlLT5mbGFncyB8PSBDT05fQ09OU0RFVjsKKwkJCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tlcm5lbC9wdHJhY2UuYwppbmRleCA2YzE5ZTk0Li5lMzM3MzkwIDEwMDY0NAotLS0gYS9rZXJuZWwvcHRyYWNlLmMKKysrIGIva2VybmVsL3B0cmFjZS5jCkBAIC0xMjEsNyArMTIxLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgX19wdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKQogewogCS8qIE1heSB3ZSBpbnNwZWN0IHRoZSBnaXZlbiB0YXNrPwogCSAqIFRoaXMgY2hlY2sgaXMgdXNlZCBib3RoIGZvciBhdHRhY2hpbmcgd2l0aCBwdHJhY2UKQEAgLTE0OCwxNiArMTQ4LDE2IEBACiAJaWYgKCFkdW1wYWJsZSAmJiAhY2FwYWJsZShDQVBfU1lTX1BUUkFDRSkpCiAJCXJldHVybiAtRVBFUk07CiAKLQlyZXR1cm4gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQsIHRhc2spOworCXJldHVybiBzZWN1cml0eV9wdHJhY2UoY3VycmVudCwgdGFzaywgbW9kZSk7CiB9CiAKLWludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitib29sIHB0cmFjZV9tYXlfYWNjZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJaW50IGVycjsKIAl0YXNrX2xvY2sodGFzayk7Ci0JZXJyID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwllcnIgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIG1vZGUpOwogCXRhc2tfdW5sb2NrKHRhc2spOwotCXJldHVybiAhZXJyOworCXJldHVybiAoIWVyciA/IHRydWUgOiBmYWxzZSk7CiB9CiAKIGludCBwdHJhY2VfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKQEAgLTE5NSw3ICsxOTUsNyBAQAogCS8qIHRoZSBzYW1lIHByb2Nlc3MgY2Fubm90IGJlIGF0dGFjaGVkIG1hbnkgdGltZXMgKi8KIAlpZiAodGFzay0+cHRyYWNlICYgUFRfUFRSQUNFRCkKIAkJZ290byBiYWQ7Ci0JcmV0dmFsID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwlyZXR2YWwgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSCk7CiAJaWYgKHJldHZhbCkKIAkJZ290byBiYWQ7CiAKQEAgLTQ5NCw3ICs0OTQsOCBAQAogCSAqLwogCXRhc2tfbG9jayhjdXJyZW50KTsKIAlpZiAoIShjdXJyZW50LT5wdHJhY2UgJiBQVF9QVFJBQ0VEKSkgewotCQlyZXQgPSBzZWN1cml0eV9wdHJhY2UoY3VycmVudC0+cGFyZW50LCBjdXJyZW50KTsKKwkJcmV0ID0gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQtPnBhcmVudCwgY3VycmVudCwKKwkJCQkgICAgICBQVFJBQ0VfTU9ERV9BVFRBQ0gpOwogCQkvKgogCQkgKiBTZXQgdGhlIHB0cmFjZSBiaXQgaW4gdGhlIHByb2Nlc3MgcHRyYWNlIGZsYWdzLgogCQkgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9yY3VjbGFzc2ljLmMgYi9rZXJuZWwvcmN1Y2xhc3NpYy5jCmluZGV4IGY0ZmZiZDAuLjY1YzA5MDYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9yY3VjbGFzc2ljLmMKKysrIGIva2VybmVsL3JjdWNsYXNzaWMuYwpAQCAtODksOCArODksMjIgQEAKIAkJLyoKIAkJICogRG9uJ3Qgc2VuZCBJUEkgdG8gaXRzZWxmLiBXaXRoIGlycXMgZGlzYWJsZWQsCiAJCSAqIHJkcC0+Y3B1IGlzIHRoZSBjdXJyZW50IGNwdS4KKwkJICoKKwkJICogY3B1X29ubGluZV9tYXAgaXMgdXBkYXRlZCBieSB0aGUgX2NwdV9kb3duKCkKKwkJICogdXNpbmcgc3RvcF9tYWNoaW5lX3J1bigpLiBTaW5jZSB3ZSdyZSBpbiBpcnFzIGRpc2FibGVkCisJCSAqIHNlY3Rpb24sIHN0b3BfbWFjaGluZV9ydW4oKSBpcyBub3QgZXhlY3R1dGluZywgaGVuY2UKKwkJICogdGhlIGNwdV9vbmxpbmVfbWFwIGlzIHN0YWJsZS4KKwkJICoKKwkJICogSG93ZXZlciwgIGEgY3B1IG1pZ2h0IGhhdmUgYmVlbiBvZmZsaW5lZCBfanVzdF8gYmVmb3JlCisJCSAqIHdlIGRpc2FibGVkIGlycXMgd2hpbGUgZW50ZXJpbmcgaGVyZS4KKwkJICogQW5kIHJjdSBzdWJzeXN0ZW0gbWlnaHQgbm90IHlldCBoYXZlIGhhbmRsZWQgdGhlIENQVV9ERUFECisJCSAqIG5vdGlmaWNhdGlvbiwgbGVhZGluZyB0byB0aGUgb2ZmbGluZWQgY3B1J3MgYml0CisJCSAqIGJlaW5nIHNldCBpbiB0aGUgcmNwLT5jcHVtYXNrLgorCQkgKgorCQkgKiBIZW5jZSBjcHVtYXNrID0gKHJjcC0+Y3B1bWFzayAmIGNwdV9vbmxpbmVfbWFwKSB0byBwcmV2ZW50CisJCSAqIHNlbmRpbmcgc21wX3Jlc2NoZWR1bGUoKSB0byBhbiBvZmZsaW5lZCBDUFUuCiAJCSAqLwotCQljcHVtYXNrID0gcmNwLT5jcHVtYXNrOworCQljcHVzX2FuZChjcHVtYXNrLCByY3AtPmNwdW1hc2ssIGNwdV9vbmxpbmVfbWFwKTsKIAkJY3B1X2NsZWFyKHJkcC0+Y3B1LCBjcHVtYXNrKTsKIAkJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBjcHVtYXNrKQogCQkJc21wX3NlbmRfcmVzY2hlZHVsZShjcHUpOwpAQCAtNTI5LDcgKzU0Myw3IEBACiAKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfY3RybGJsaywgcmRwKTsKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfYmhfY3RybGJsaywgYmhfcmRwKTsKLQlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcywgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJvY2Vzc19jYWxsYmFja3MpOwogfQogCiBzdGF0aWMgaW50IF9fY3B1aW5pdCByY3VfY3B1X25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsCmRpZmYgLS1naXQgYS9rZXJuZWwvcmN1cHJlZW1wdC5jIGIva2VybmVsL3JjdXByZWVtcHQuYwppbmRleCBlMWNkZjE5Li45YmY0NDU2IDEwMDY0NAotLS0gYS9rZXJuZWwvcmN1cHJlZW1wdC5jCisrKyBiL2tlcm5lbC9yY3VwcmVlbXB0LmMKQEAgLTIxNyw4ICsyMTcsNiBAQAogfQogRVhQT1JUX1NZTUJPTF9HUEwocmN1X2JhdGNoZXNfY29tcGxldGVkKTsKIAotRVhQT1JUX1NZTUJPTF9HUEwocmN1X2JhdGNoZXNfY29tcGxldGVkX2JoKTsKLQogdm9pZCBfX3JjdV9yZWFkX2xvY2sodm9pZCkKIHsKIAlpbnQgaWR4OwpAQCAtOTI3LDcgKzkyNSwxNSBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJkcC0+bG9jaywgZmxhZ3MpOwogfQogCi12b2lkIF9fZGV2aW5pdCByY3Vfb25saW5lX2NwdShpbnQgY3B1KQorI2Vsc2UgLyogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVSAqLworCit2b2lkIHJjdV9vZmZsaW5lX2NwdShpbnQgY3B1KQoreworfQorCisjZW5kaWYgLyogI2Vsc2UgI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVSAqLworCit2b2lkIF9fY3B1aW5pdCByY3Vfb25saW5lX2NwdShpbnQgY3B1KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTkzNiwxOCArOTQyLDYgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyY3VfY3RybGJsay5mbGlwbG9jaywgZmxhZ3MpOwogfQogCi0jZWxzZSAvKiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCi0KLXZvaWQgcmN1X29mZmxpbmVfY3B1KGludCBjcHUpCi17Ci19Ci0KLXZvaWQgX19kZXZpbml0IHJjdV9vbmxpbmVfY3B1KGludCBjcHUpCi17Ci19Ci0KLSNlbmRpZiAvKiAjZWxzZSAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCi0KIHN0YXRpYyB2b2lkIHJjdV9wcm9jZXNzX2NhbGxiYWNrcyhzdHJ1Y3Qgc29mdGlycV9hY3Rpb24gKnVudXNlZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTEyNSw3ICsxMTE5LDcgQEAKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKIAkJcmN1X2NwdV9ub3RpZnkoJnJjdV9uYiwgQ1BVX1VQX1BSRVBBUkUsCSh2b2lkICopKGxvbmcpIGNwdSk7CiAKLQlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcywgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJvY2Vzc19jYWxsYmFja3MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkLmMgYi9rZXJuZWwvc2NoZWQuYwppbmRleCBiZmI4YWQ4Li45OWU2ZDg1IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQuYworKysgYi9rZXJuZWwvc2NoZWQuYwpAQCAtNzAsMTAgKzcwLDEzIEBACiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgogCiAjaW5jbHVkZSA8YXNtL3RsYi5oPgogI2luY2x1ZGUgPGFzbS9pcnFfcmVncy5oPgogCisjaW5jbHVkZSAic2NoZWRfY3B1cHJpLmgiCisKIC8qCiAgKiBDb252ZXJ0IHVzZXItbmljZSB2YWx1ZXMgWyAtMjAgLi4uIDAgLi4uIDE5IF0KICAqIHRvIHN0YXRpYyBwcmlvcml0eSBbIE1BWF9SVF9QUklPLi5NQVhfUFJJTy0xIF0sCkBAIC0yODksMTUgKzI5MiwxNSBAQAogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9lbnRpdHksIGluaXRfc2NoZWRfZW50aXR5KTsKIC8qIERlZmF1bHQgdGFzayBncm91cCdzIGNmc19ycSBvbiBlYWNoIGNwdSAqLwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBjZnNfcnEsIGluaXRfY2ZzX3JxKSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOwotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19SVF9HUk9VUF9TQ0hFRAogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9ydF9lbnRpdHksIGluaXRfc2NoZWRfcnRfZW50aXR5KTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgcnRfcnEsIGluaXRfcnRfcnEpIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7Ci0jZW5kaWYKLSNlbHNlCisjZW5kaWYgLyogQ09ORklHX1JUX0dST1VQX1NDSEVEICovCisjZWxzZSAvKiAhQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KICNkZWZpbmUgcm9vdF90YXNrX2dyb3VwIGluaXRfdGFza19ncm91cAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KIAogLyogdGFza19ncm91cF9sb2NrIHNlcmlhbGl6ZXMgYWRkL3JlbW92ZSBvZiB0YXNrIGdyb3VwcyBhbmQgYWxzbyBjaGFuZ2VzIHRvCiAgKiBhIHRhc2sgZ3JvdXAncyBjcHUgc2hhcmVzLgpAQCAtMzA3LDE3ICszMTAsMjAgQEAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAogI2lmZGVmIENPTkZJR19VU0VSX1NDSEVECiAjIGRlZmluZSBJTklUX1RBU0tfR1JPVVBfTE9BRAkoMipOSUNFXzBfTE9BRCkKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1VTRVJfU0NIRUQgKi8KICMgZGVmaW5lIElOSVRfVEFTS19HUk9VUF9MT0FECU5JQ0VfMF9MT0FECi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfVVNFUl9TQ0hFRCAqLwogCiAvKgotICogQSB3ZWlnaHQgb2YgMCwgMSBvciBVTE9OR19NQVggY2FuIGNhdXNlIGFyaXRobWV0aWNzIHByb2JsZW1zLgorICogQSB3ZWlnaHQgb2YgMCBvciAxIGNhbiBjYXVzZSBhcml0aG1ldGljcyBwcm9ibGVtcy4KKyAqIEEgd2VpZ2h0IG9mIGEgY2ZzX3JxIGlzIHRoZSBzdW0gb2Ygd2VpZ2h0cyBvZiB3aGljaCBlbnRpdGllcworICogYXJlIHF1ZXVlZCBvbiB0aGlzIGNmc19ycSwgc28gYSB3ZWlnaHQgb2YgYSBlbnRpdHkgc2hvdWxkIG5vdCBiZQorICogdG9vIGxhcmdlLCBzbyBhcyB0aGUgc2hhcmVzIHZhbHVlIG9mIGEgdGFzayBncm91cC4KICAqIChUaGUgZGVmYXVsdCB3ZWlnaHQgaXMgMTAyNCAtIHNvIHRoZXJlJ3Mgbm8gcHJhY3RpY2FsCiAgKiAgbGltaXRhdGlvbiBmcm9tIHRoaXMuKQogICovCiAjZGVmaW5lIE1JTl9TSEFSRVMJMgotI2RlZmluZSBNQVhfU0hBUkVTCShVTE9OR19NQVggLSAxKQorI2RlZmluZSBNQVhfU0hBUkVTCSgxVUwgPDwgMTgpCiAKIHN0YXRpYyBpbnQgaW5pdF90YXNrX2dyb3VwX2xvYWQgPSBJTklUX1RBU0tfR1JPVVBfTE9BRDsKICNlbmRpZgpAQCAtMzYwLDYgKzM2NiwxMCBAQAogI2Vsc2UKIAogc3RhdGljIGlubGluZSB2b2lkIHNldF90YXNrX3JxKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdW5zaWduZWQgaW50IGNwdSkgeyB9CitzdGF0aWMgaW5saW5lIHN0cnVjdCB0YXNrX2dyb3VwICp0YXNrX2dyb3VwKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gTlVMTDsKK30KIAogI2VuZGlmCS8qIENPTkZJR19HUk9VUF9TQ0hFRCAqLwogCkBAIC0zNzAsNiArMzgwLDcgQEAKIAogCXU2NCBleGVjX2Nsb2NrOwogCXU2NCBtaW5fdnJ1bnRpbWU7CisJdTY0IHBhaXJfc3RhcnQ7CiAKIAlzdHJ1Y3QgcmJfcm9vdCB0YXNrc190aW1lbGluZTsKIAlzdHJ1Y3QgcmJfbm9kZSAqcmJfbGVmdG1vc3Q7CkBAIC0zOTgsNiArNDA5LDMxIEBACiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCBsZWFmX2Nmc19ycV9saXN0OwogCXN0cnVjdCB0YXNrX2dyb3VwICp0ZzsJLyogZ3JvdXAgdGhhdCAib3ducyIgdGhpcyBydW5xdWV1ZSAqLworCisjaWZkZWYgQ09ORklHX1NNUAorCS8qCisJICogdGhlIHBhcnQgb2YgbG9hZC53ZWlnaHQgY29udHJpYnV0ZWQgYnkgdGFza3MKKwkgKi8KKwl1bnNpZ25lZCBsb25nIHRhc2tfd2VpZ2h0OworCisJLyoKKwkgKiAgIGhfbG9hZCA9IHdlaWdodCAqIGYodGcpCisJICoKKwkgKiBXaGVyZSBmKHRnKSBpcyB0aGUgcmVjdXJzaXZlIHdlaWdodCBmcmFjdGlvbiBhc3NpZ25lZCB0bworCSAqIHRoaXMgZ3JvdXAuCisJICovCisJdW5zaWduZWQgbG9uZyBoX2xvYWQ7CisKKwkvKgorCSAqIHRoaXMgY3B1J3MgcGFydCBvZiB0Zy0+c2hhcmVzCisJICovCisJdW5zaWduZWQgbG9uZyBzaGFyZXM7CisKKwkvKgorCSAqIGxvYWQud2VpZ2h0IGF0IHRoZSB0aW1lIHdlIHNldCBzaGFyZXMKKwkgKi8KKwl1bnNpZ25lZCBsb25nIHJxX3dlaWdodDsKKyNlbmRpZgogI2VuZGlmCiB9OwogCkBAIC00NDksNiArNDg1LDkgQEAKIAkgKi8KIAljcHVtYXNrX3QgcnRvX21hc2s7CiAJYXRvbWljX3QgcnRvX2NvdW50OworI2lmZGVmIENPTkZJR19TTVAKKwlzdHJ1Y3QgY3B1cHJpIGNwdXByaTsKKyNlbmRpZgogfTsKIAogLyoKQEAgLTUyMyw2ICs1NjIsOSBAQAogCWludCBwdXNoX2NwdTsKIAkvKiBjcHUgb2YgdGhpcyBydW5xdWV1ZTogKi8KIAlpbnQgY3B1OworCWludCBvbmxpbmU7CisKKwl1bnNpZ25lZCBsb25nIGF2Z19sb2FkX3Blcl90YXNrOwogCiAJc3RydWN0IHRhc2tfc3RydWN0ICptaWdyYXRpb25fdGhyZWFkOwogCXN0cnVjdCBsaXN0X2hlYWQgbWlncmF0aW9uX3F1ZXVlOwpAQCAtNjA0LDYgKzY0NiwyNCBAQAogIyBkZWZpbmUgY29uc3RfZGVidWcgc3RhdGljIGNvbnN0CiAjZW5kaWYKIAorLyoqCisgKiBydW5xdWV1ZV9pc19sb2NrZWQKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgY3B1IHJ1bnF1ZXVlIGlzIGxvY2tlZC4KKyAqIFRoaXMgaW50ZXJmYWNlIGFsbG93cyBwcmludGsgdG8gYmUgY2FsbGVkIHdpdGggdGhlIHJ1bnF1ZXVlIGxvY2sKKyAqIGhlbGQgYW5kIGtub3cgd2hldGhlciBvciBub3QgaXQgaXMgT0sgdG8gd2FrZSB1cCB0aGUga2xvZ2QuCisgKi8KK2ludCBydW5xdWV1ZV9pc19sb2NrZWQodm9pZCkKK3sKKwlpbnQgY3B1ID0gZ2V0X2NwdSgpOworCXN0cnVjdCBycSAqcnEgPSBjcHVfcnEoY3B1KTsKKwlpbnQgcmV0OworCisJcmV0ID0gc3Bpbl9pc19sb2NrZWQoJnJxLT5sb2NrKTsKKwlwdXRfY3B1KCk7CisJcmV0dXJuIHJldDsKK30KKwogLyoKICAqIERlYnVnZ2luZzogdmFyaW91cyBmZWF0dXJlIGJpdHMKICAqLwpAQCAtNzQ2LDYgKzgwNiwxMiBAQAogY29uc3RfZGVidWcgdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9ucl9taWdyYXRlID0gMzI7CiAKIC8qCisgKiByYXRlbGltaXQgZm9yIHVwZGF0aW5nIHRoZSBncm91cCBzaGFyZXMuCisgKiBkZWZhdWx0OiAwLjVtcworICovCitjb25zdF9kZWJ1ZyB1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX3NoYXJlc19yYXRlbGltaXQgPSA1MDAwMDA7CisKKy8qCiAgKiBwZXJpb2Qgb3ZlciB3aGljaCB3ZSBtZWFzdXJlIC1ydCB0YXNrIGNwdSB1c2FnZSBpbiB1cy4KICAqIGRlZmF1bHQ6IDFzCiAgKi8KQEAgLTc3Miw4MiArODM4LDYgQEAKIAlyZXR1cm4gKHU2NClzeXNjdGxfc2NoZWRfcnRfcnVudGltZSAqIE5TRUNfUEVSX1VTRUM7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyB0aW1lX3N5bmNfdGhyZXNoID0gMTAwMDAwOwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZyBsb25nLCB0aW1lX29mZnNldCk7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZyBsb25nLCBwcmV2X2NwdV90aW1lKTsKLQotLyoKLSAqIEdsb2JhbCBsb2NrIHdoaWNoIHdlIHRha2UgZXZlcnkgbm93IGFuZCB0aGVuIHRvIHN5bmNocm9uaXplCi0gKiB0aGUgQ1BVcyB0aW1lLiBUaGlzIG1ldGhvZCBpcyBub3Qgd2FycC1zYWZlLCBidXQgaXQncyBnb29kCi0gKiBlbm91Z2ggdG8gc3luY2hyb25pemUgc2xvd2x5IGRpdmVyZ2luZyB0aW1lIHNvdXJjZXMgYW5kIHRodXMKLSAqIGl0J3MgZ29vZCBlbm91Z2ggZm9yIHRyYWNpbmc6Ci0gKi8KLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodGltZV9zeW5jX2xvY2spOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBwcmV2X2dsb2JhbF90aW1lOwotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIF9fc3luY19jcHVfY2xvY2sodW5zaWduZWQgbG9uZyBsb25nIHRpbWUsIGludCBjcHUpCi17Ci0JLyoKLQkgKiBXZSB3YW50IHRoaXMgaW5saW5lZCwgdG8gbm90IGdldCB0cmFjZXIgZnVuY3Rpb24gY2FsbHMKLQkgKiBpbiB0aGlzIGNyaXRpY2FsIHNlY3Rpb246Ci0JICovCi0Jc3Bpbl9hY3F1aXJlKCZ0aW1lX3N5bmNfbG9jay5kZXBfbWFwLCAwLCAwLCBfVEhJU19JUF8pOwotCV9fcmF3X3NwaW5fbG9jaygmdGltZV9zeW5jX2xvY2sucmF3X2xvY2spOwotCi0JaWYgKHRpbWUgPCBwcmV2X2dsb2JhbF90aW1lKSB7Ci0JCXBlcl9jcHUodGltZV9vZmZzZXQsIGNwdSkgKz0gcHJldl9nbG9iYWxfdGltZSAtIHRpbWU7Ci0JCXRpbWUgPSBwcmV2X2dsb2JhbF90aW1lOwotCX0gZWxzZSB7Ci0JCXByZXZfZ2xvYmFsX3RpbWUgPSB0aW1lOwotCX0KLQotCV9fcmF3X3NwaW5fdW5sb2NrKCZ0aW1lX3N5bmNfbG9jay5yYXdfbG9jayk7Ci0Jc3Bpbl9yZWxlYXNlKCZ0aW1lX3N5bmNfbG9jay5kZXBfbWFwLCAxLCBfVEhJU19JUF8pOwotCi0JcmV0dXJuIHRpbWU7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgX19jcHVfY2xvY2soaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbm93OwotCi0JLyoKLQkgKiBPbmx5IGNhbGwgc2NoZWRfY2xvY2soKSBpZiB0aGUgc2NoZWR1bGVyIGhhcyBhbHJlYWR5IGJlZW4KLQkgKiBpbml0aWFsaXplZCAoc29tZSBjb2RlIG1pZ2h0IGNhbGwgY3B1X2Nsb2NrKCkgdmVyeSBlYXJseSk6Ci0JICovCi0JaWYgKHVubGlrZWx5KCFzY2hlZHVsZXJfcnVubmluZykpCi0JCXJldHVybiAwOwotCi0Jbm93ID0gc2NoZWRfY2xvY2tfY3B1KGNwdSk7Ci0KLQlyZXR1cm4gbm93OwotfQotCi0vKgotICogRm9yIGtlcm5lbC1pbnRlcm5hbCB1c2U6IGhpZ2gtc3BlZWQgKGJ1dCBzbGlnaHRseSBpbmNvcnJlY3QpIHBlci1jcHUKLSAqIGNsb2NrIGNvbnN0cnVjdGVkIGZyb20gc2NoZWRfY2xvY2soKToKLSAqLwotdW5zaWduZWQgbG9uZyBsb25nIGNwdV9jbG9jayhpbnQgY3B1KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBwcmV2X2NwdV90aW1lLCB0aW1lLCBkZWx0YV90aW1lOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JcHJldl9jcHVfdGltZSA9IHBlcl9jcHUocHJldl9jcHVfdGltZSwgY3B1KTsKLQl0aW1lID0gX19jcHVfY2xvY2soY3B1KSArIHBlcl9jcHUodGltZV9vZmZzZXQsIGNwdSk7Ci0JZGVsdGFfdGltZSA9IHRpbWUtcHJldl9jcHVfdGltZTsKLQotCWlmICh1bmxpa2VseShkZWx0YV90aW1lID4gdGltZV9zeW5jX3RocmVzaCkpIHsKLQkJdGltZSA9IF9fc3luY19jcHVfY2xvY2sodGltZSwgY3B1KTsKLQkJcGVyX2NwdShwcmV2X2NwdV90aW1lLCBjcHUpID0gdGltZTsKLQl9Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JcmV0dXJuIHRpbWU7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChjcHVfY2xvY2spOwotCiAjaWZuZGVmIHByZXBhcmVfYXJjaF9zd2l0Y2gKICMgZGVmaW5lIHByZXBhcmVfYXJjaF9zd2l0Y2gobmV4dCkJZG8geyB9IHdoaWxlICgwKQogI2VuZGlmCkBAIC0xMTI0LDYgKzExMTQsNyBAQAogCXJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsKIH0KIAorI2lmZGVmIENPTkZJR19TTVAKIHN0YXRpYyB2b2lkIGhvdHBsdWdfaHJ0aWNrX2Rpc2FibGUoaW50IGNwdSkKIHsKIAlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CkBAIC0xMTc5LDYgKzExNzAsNyBAQAogewogCWhvdGNwdV9ub3RpZmllcihob3RwbHVnX2hydGljaywgMCk7CiB9CisjZW5kaWYgLyogQ09ORklHX1NNUCAqLwogCiBzdGF0aWMgdm9pZCBpbml0X3JxX2hydGljayhzdHJ1Y3QgcnEgKnJxKQogewpAQCAtMTMwOCwxNSArMTMwMCwxNSBAQAogCWlmICghdHNrX2lzX3BvbGxpbmcocnEtPmlkbGUpKQogCQlzbXBfc2VuZF9yZXNjaGVkdWxlKGNwdSk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfTk9fSFogKi8KIAotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfU01QICovCiBzdGF0aWMgdm9pZCBfX3Jlc2NoZWRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB0aWZfYml0KQogewogCWFzc2VydF9zcGluX2xvY2tlZCgmdGFza19ycShwKS0+bG9jayk7CiAJc2V0X3Rza190aHJlYWRfZmxhZyhwLCB0aWZfYml0KTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogI2lmIEJJVFNfUEVSX0xPTkcgPT0gMzIKICMgZGVmaW5lIFdNVUxUX0NPTlNUCSh+MFVMKQpAQCAtMTMzMSwxNCArMTMyMywyMiBAQAogICovCiAjZGVmaW5lIFNSUih4LCB5KSAoKCh4KSArICgxVUwgPDwgKCh5KSAtIDEpKSkgPj4gKHkpKQogCisvKgorICogZGVsdGEgKj0gd2VpZ2h0IC8gbHcKKyAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcKIGNhbGNfZGVsdGFfbWluZSh1bnNpZ25lZCBsb25nIGRlbHRhX2V4ZWMsIHVuc2lnbmVkIGxvbmcgd2VpZ2h0LAogCQlzdHJ1Y3QgbG9hZF93ZWlnaHQgKmx3KQogewogCXU2NCB0bXA7CiAKLQlpZiAoIWx3LT5pbnZfd2VpZ2h0KQotCQlsdy0+aW52X3dlaWdodCA9IDEgKyAoV01VTFRfQ09OU1QtbHctPndlaWdodC8yKS8obHctPndlaWdodCsxKTsKKwlpZiAoIWx3LT5pbnZfd2VpZ2h0KSB7CisJCWlmIChCSVRTX1BFUl9MT05HID4gMzIgJiYgdW5saWtlbHkobHctPndlaWdodCA+PSBXTVVMVF9DT05TVCkpCisJCQlsdy0+aW52X3dlaWdodCA9IDE7CisJCWVsc2UKKwkJCWx3LT5pbnZfd2VpZ2h0ID0gMSArIChXTVVMVF9DT05TVC1sdy0+d2VpZ2h0LzIpCisJCQkJLyAobHctPndlaWdodCsxKTsKKwl9CiAKIAl0bXAgPSAodTY0KWRlbHRhX2V4ZWMgKiB3ZWlnaHQ7CiAJLyoKQEAgLTEzNTMsMTIgKzEzNTMsNiBAQAogCXJldHVybiAodW5zaWduZWQgbG9uZyltaW4odG1wLCAodTY0KSh1bnNpZ25lZCBsb25nKUxPTkdfTUFYKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1jYWxjX2RlbHRhX2ZhaXIodW5zaWduZWQgbG9uZyBkZWx0YV9leGVjLCBzdHJ1Y3QgbG9hZF93ZWlnaHQgKmx3KQotewotCXJldHVybiBjYWxjX2RlbHRhX21pbmUoZGVsdGFfZXhlYywgTklDRV8wX0xPQUQsIGx3KTsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9sb2FkX2FkZChzdHJ1Y3QgbG9hZF93ZWlnaHQgKmx3LCB1bnNpZ25lZCBsb25nIGluYykKIHsKIAlsdy0+d2VpZ2h0ICs9IGluYzsKQEAgLTE0NjksMTggKzE0NjMsMjEyIEBACiAjaWZkZWYgQ09ORklHX1NNUAogc3RhdGljIHVuc2lnbmVkIGxvbmcgc291cmNlX2xvYWQoaW50IGNwdSwgaW50IHR5cGUpOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X2xvYWQoaW50IGNwdSwgaW50IHR5cGUpOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2F2Z19sb2FkX3Blcl90YXNrKGludCBjcHUpOwogc3RhdGljIGludCB0YXNrX2hvdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHU2NCBub3csIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKTsKLSNlbHNlIC8qIENPTkZJR19TTVAgKi8KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2F2Z19sb2FkX3Blcl90YXNrKGludCBjcHUpCit7CisJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOworCisJaWYgKHJxLT5ucl9ydW5uaW5nKQorCQlycS0+YXZnX2xvYWRfcGVyX3Rhc2sgPSBycS0+bG9hZC53ZWlnaHQgLyBycS0+bnJfcnVubmluZzsKKworCXJldHVybiBycS0+YXZnX2xvYWRfcGVyX3Rhc2s7Cit9CisKKyNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAorCit0eXBlZGVmIHZvaWQgKCp0Z192aXNpdG9yKShzdHJ1Y3QgdGFza19ncm91cCAqLCBpbnQsIHN0cnVjdCBzY2hlZF9kb21haW4gKik7CisKKy8qCisgKiBJdGVyYXRlIHRoZSBmdWxsIHRyZWUsIGNhbGxpbmcgQGRvd24gd2hlbiBmaXJzdCBlbnRlcmluZyBhIG5vZGUgYW5kIEB1cCB3aGVuCisgKiBsZWF2aW5nIGl0IGZvciB0aGUgZmluYWwgdGltZS4KKyAqLworc3RhdGljIHZvaWQKK3dhbGtfdGdfdHJlZSh0Z192aXNpdG9yIGRvd24sIHRnX3Zpc2l0b3IgdXAsIGludCBjcHUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworCXN0cnVjdCB0YXNrX2dyb3VwICpwYXJlbnQsICpjaGlsZDsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlwYXJlbnQgPSAmcm9vdF90YXNrX2dyb3VwOworZG93bjoKKwkoKmRvd24pKHBhcmVudCwgY3B1LCBzZCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoY2hpbGQsICZwYXJlbnQtPmNoaWxkcmVuLCBzaWJsaW5ncykgeworCQlwYXJlbnQgPSBjaGlsZDsKKwkJZ290byBkb3duOworCit1cDoKKwkJY29udGludWU7CisJfQorCSgqdXApKHBhcmVudCwgY3B1LCBzZCk7CisKKwljaGlsZCA9IHBhcmVudDsKKwlwYXJlbnQgPSBwYXJlbnQtPnBhcmVudDsKKwlpZiAocGFyZW50KQorCQlnb3RvIHVwOworCXJjdV9yZWFkX3VubG9jaygpOworfQorCitzdGF0aWMgdm9pZCBfX3NldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKTsKKworLyoKKyAqIENhbGN1bGF0ZSBhbmQgc2V0IHRoZSBjcHUncyBncm91cCBzaGFyZXMuCisgKi8KK3N0YXRpYyB2b2lkCitfX3VwZGF0ZV9ncm91cF9zaGFyZXNfY3B1KHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwKKwkJCSAgdW5zaWduZWQgbG9uZyBzZF9zaGFyZXMsIHVuc2lnbmVkIGxvbmcgc2RfcnFfd2VpZ2h0KQoreworCWludCBib29zdCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaGFyZXM7CisJdW5zaWduZWQgbG9uZyBycV93ZWlnaHQ7CisKKwlpZiAoIXRnLT5zZVtjcHVdKQorCQlyZXR1cm47CisKKwlycV93ZWlnaHQgPSB0Zy0+Y2ZzX3JxW2NwdV0tPmxvYWQud2VpZ2h0OworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgY3VycmVudGx5IG5vIHRhc2tzIG9uIHRoZSBjcHUgcHJldGVuZCB0aGVyZSBpcyBvbmUgb2YKKwkgKiBhdmVyYWdlIGxvYWQgc28gdGhhdCB3aGVuIGEgbmV3IHRhc2sgZ2V0cyB0byBydW4gaGVyZSBpdCB3aWxsIG5vdAorCSAqIGdldCBkZWxheWVkIGJ5IGdyb3VwIHN0YXJ2YXRpb24uCisJICovCisJaWYgKCFycV93ZWlnaHQpIHsKKwkJYm9vc3QgPSAxOworCQlycV93ZWlnaHQgPSBOSUNFXzBfTE9BRDsKKwl9CisKKwlpZiAodW5saWtlbHkocnFfd2VpZ2h0ID4gc2RfcnFfd2VpZ2h0KSkKKwkJcnFfd2VpZ2h0ID0gc2RfcnFfd2VpZ2h0OworCisJLyoKKwkgKiAgICAgICAgICAgXFN1bSBzaGFyZXMgKiBycV93ZWlnaHQKKwkgKiBzaGFyZXMgPSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgKiAgICAgICAgICAgICAgIFxTdW0gcnFfd2VpZ2h0CisJICoKKwkgKi8KKwlzaGFyZXMgPSAoc2Rfc2hhcmVzICogcnFfd2VpZ2h0KSAvIChzZF9ycV93ZWlnaHQgKyAxKTsKKworCS8qCisJICogcmVjb3JkIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHNoYXJlcywgbm90IHRoZSBib29zdGVkIGFtb3VudC4KKwkgKi8KKwl0Zy0+Y2ZzX3JxW2NwdV0tPnNoYXJlcyA9IGJvb3N0ID8gMCA6IHNoYXJlczsKKwl0Zy0+Y2ZzX3JxW2NwdV0tPnJxX3dlaWdodCA9IHJxX3dlaWdodDsKKworCWlmIChzaGFyZXMgPCBNSU5fU0hBUkVTKQorCQlzaGFyZXMgPSBNSU5fU0hBUkVTOworCWVsc2UgaWYgKHNoYXJlcyA+IE1BWF9TSEFSRVMpCisJCXNoYXJlcyA9IE1BWF9TSEFSRVM7CisKKwlfX3NldF9zZV9zaGFyZXModGctPnNlW2NwdV0sIHNoYXJlcyk7Cit9CisKKy8qCisgKiBSZS1jb21wdXRlIHRoZSB0YXNrIGdyb3VwIHRoZWlyIHBlciBjcHUgc2hhcmVzIG92ZXIgdGhlIGdpdmVuIGRvbWFpbi4KKyAqIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSBpbiBhIGJvdHRvbS11cCBmYXNoaW9uIGJlY2F1c2UgdGhlIHJxIHdlaWdodCBvZiBhCisgKiBwYXJlbnQgZ3JvdXAgZGVwZW5kcyBvbiB0aGUgc2hhcmVzIG9mIGl0cyBjaGlsZCBncm91cHMuCisgKi8KK3N0YXRpYyB2b2lkCit0Z19zaGFyZXNfdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJxX3dlaWdodCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaGFyZXMgPSAwOworCWludCBpOworCisJZm9yX2VhY2hfY3B1X21hc2soaSwgc2QtPnNwYW4pIHsKKwkJcnFfd2VpZ2h0ICs9IHRnLT5jZnNfcnFbaV0tPmxvYWQud2VpZ2h0OworCQlzaGFyZXMgKz0gdGctPmNmc19ycVtpXS0+c2hhcmVzOworCX0KKworCWlmICgoIXNoYXJlcyAmJiBycV93ZWlnaHQpIHx8IHNoYXJlcyA+IHRnLT5zaGFyZXMpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXNkLT5wYXJlbnQgfHwgIShzZC0+cGFyZW50LT5mbGFncyAmIFNEX0xPQURfQkFMQU5DRSkpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXJxX3dlaWdodCkKKwkJcnFfd2VpZ2h0ID0gY3B1c193ZWlnaHQoc2QtPnNwYW4pICogTklDRV8wX0xPQUQ7CisKKwlmb3JfZWFjaF9jcHVfbWFzayhpLCBzZC0+c3BhbikgeworCQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGkpOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCQlfX3VwZGF0ZV9ncm91cF9zaGFyZXNfY3B1KHRnLCBpLCBzaGFyZXMsIHJxX3dlaWdodCk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CisJfQorfQorCisvKgorICogQ29tcHV0ZSB0aGUgY3B1J3MgaGllcmFyY2hpY2FsIGxvYWQgZmFjdG9yIGZvciBlYWNoIHRhc2sgZ3JvdXAuCisgKiBUaGlzIG5lZWRzIHRvIGJlIGRvbmUgaW4gYSB0b3AtZG93biBmYXNoaW9uIGJlY2F1c2UgdGhlIGxvYWQgb2YgYSBjaGlsZAorICogZ3JvdXAgaXMgYSBmcmFjdGlvbiBvZiBpdHMgcGFyZW50cyBsb2FkLgorICovCitzdGF0aWMgdm9pZAordGdfbG9hZF9kb3duKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCit7CisJdW5zaWduZWQgbG9uZyBsb2FkOworCisJaWYgKCF0Zy0+cGFyZW50KSB7CisJCWxvYWQgPSBjcHVfcnEoY3B1KS0+bG9hZC53ZWlnaHQ7CisJfSBlbHNlIHsKKwkJbG9hZCA9IHRnLT5wYXJlbnQtPmNmc19ycVtjcHVdLT5oX2xvYWQ7CisJCWxvYWQgKj0gdGctPmNmc19ycVtjcHVdLT5zaGFyZXM7CisJCWxvYWQgLz0gdGctPnBhcmVudC0+Y2ZzX3JxW2NwdV0tPmxvYWQud2VpZ2h0ICsgMTsKKwl9CisKKwl0Zy0+Y2ZzX3JxW2NwdV0tPmhfbG9hZCA9IGxvYWQ7Cit9CisKK3N0YXRpYyB2b2lkCit0Z19ub3Aoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwl1NjQgbm93ID0gY3B1X2Nsb2NrKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOworCXM2NCBlbGFwc2VkID0gbm93IC0gc2QtPmxhc3RfdXBkYXRlOworCisJaWYgKGVsYXBzZWQgPj0gKHM2NCkodTY0KXN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0KSB7CisJCXNkLT5sYXN0X3VwZGF0ZSA9IG5vdzsKKwkJd2Fsa190Z190cmVlKHRnX25vcCwgdGdfc2hhcmVzX3VwLCAwLCBzZCk7CisJfQorfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfc2hhcmVzX2xvY2tlZChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwlzcGluX3VubG9jaygmcnEtPmxvY2spOworCXVwZGF0ZV9zaGFyZXMoc2QpOworCXNwaW5fbG9jaygmcnEtPmxvY2spOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfaF9sb2FkKGludCBjcHUpCit7CisJd2Fsa190Z190cmVlKHRnX2xvYWRfZG93biwgdGdfbm9wLCBjcHUsIE5VTEwpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9zaGFyZXNfbG9ja2VkKHN0cnVjdCBycSAqcnEsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworfQorCisjZW5kaWYKKworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgY2ZzX3JxX3NldF9zaGFyZXMoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCB1bnNpZ25lZCBsb25nIHNoYXJlcykKIHsKKyNpZmRlZiBDT05GSUdfU01QCisJY2ZzX3JxLT5zaGFyZXMgPSBzaGFyZXM7CisjZW5kaWYKIH0KICNlbmRpZgogCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLwotCiAjaW5jbHVkZSAic2NoZWRfc3RhdHMuaCIKICNpbmNsdWRlICJzY2hlZF9pZGxldGFzay5jIgogI2luY2x1ZGUgInNjaGVkX2ZhaXIuYyIKQEAgLTE0OTAsMjcgKzE2NzgsMTcgQEAKICNlbmRpZgogCiAjZGVmaW5lIHNjaGVkX2NsYXNzX2hpZ2hlc3QgKCZydF9zY2hlZF9jbGFzcykKKyNkZWZpbmUgZm9yX2VhY2hfY2xhc3MoY2xhc3MpIFwKKyAgIGZvciAoY2xhc3MgPSBzY2hlZF9jbGFzc19oaWdoZXN0OyBjbGFzczsgY2xhc3MgPSBjbGFzcy0+bmV4dCkKIAotc3RhdGljIGlubGluZSB2b2lkIGluY19sb2FkKHN0cnVjdCBycSAqcnEsIGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQl1cGRhdGVfbG9hZF9hZGQoJnJxLT5sb2FkLCBwLT5zZS5sb2FkLndlaWdodCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkZWNfbG9hZChzdHJ1Y3QgcnEgKnJxLCBjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JdXBkYXRlX2xvYWRfc3ViKCZycS0+bG9hZCwgcC0+c2UubG9hZC53ZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBpbmNfbnJfcnVubmluZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBpbmNfbnJfcnVubmluZyhzdHJ1Y3QgcnEgKnJxKQogewogCXJxLT5ucl9ydW5uaW5nKys7Ci0JaW5jX2xvYWQocnEsIHApOwogfQogCi1zdGF0aWMgdm9pZCBkZWNfbnJfcnVubmluZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBkZWNfbnJfcnVubmluZyhzdHJ1Y3QgcnEgKnJxKQogewogCXJxLT5ucl9ydW5uaW5nLS07Ci0JZGVjX2xvYWQocnEsIHApOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfbG9hZF93ZWlnaHQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQpAQCAtMTUzNCw2ICsxNzEyLDEyIEBACiAJcC0+c2UubG9hZC5pbnZfd2VpZ2h0ID0gcHJpb190b193bXVsdFtwLT5zdGF0aWNfcHJpbyAtIE1BWF9SVF9QUklPXTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlX2F2Zyh1NjQgKmF2ZywgdTY0IHNhbXBsZSkKK3sKKwlzNjQgZGlmZiA9IHNhbXBsZSAtICphdmc7CisJKmF2ZyArPSBkaWZmID4+IDM7Cit9CisKIHN0YXRpYyB2b2lkIGVucXVldWVfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB3YWtldXApCiB7CiAJc2NoZWRfaW5mb19xdWV1ZWQocCk7CkBAIC0xNTQzLDYgKzE3MjcsMTMgQEAKIAogc3RhdGljIHZvaWQgZGVxdWV1ZV90YXNrKHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHNsZWVwKQogeworCWlmIChzbGVlcCAmJiBwLT5zZS5sYXN0X3dha2V1cCkgeworCQl1cGRhdGVfYXZnKCZwLT5zZS5hdmdfb3ZlcmxhcCwKKwkJCSAgIHAtPnNlLnN1bV9leGVjX3J1bnRpbWUgLSBwLT5zZS5sYXN0X3dha2V1cCk7CisJCXAtPnNlLmxhc3Rfd2FrZXVwID0gMDsKKwl9CisKKwlzY2hlZF9pbmZvX2RlcXVldWVkKHApOwogCXAtPnNjaGVkX2NsYXNzLT5kZXF1ZXVlX3Rhc2socnEsIHAsIHNsZWVwKTsKIAlwLT5zZS5vbl9ycSA9IDA7CiB9CkBAIC0xNjAyLDcgKzE3OTMsNyBAQAogCQlycS0+bnJfdW5pbnRlcnJ1cHRpYmxlLS07CiAKIAllbnF1ZXVlX3Rhc2socnEsIHAsIHdha2V1cCk7Ci0JaW5jX25yX3J1bm5pbmcocCwgcnEpOworCWluY19ucl9ydW5uaW5nKHJxKTsKIH0KIAogLyoKQEAgLTE2MTQsNyArMTgwNSw3IEBACiAJCXJxLT5ucl91bmludGVycnVwdGlibGUrKzsKIAogCWRlcXVldWVfdGFzayhycSwgcCwgc2xlZXApOwotCWRlY19ucl9ydW5uaW5nKHAsIHJxKTsKKwlkZWNfbnJfcnVubmluZyhycSk7CiB9CiAKIC8qKgpAQCAtMTYyNiwxMiArMTgxNyw2IEBACiAJcmV0dXJuIGNwdV9jdXJyKHRhc2tfY3B1KHApKSA9PSBwOwogfQogCi0vKiBVc2VkIGluc3RlYWQgb2Ygc291cmNlX2xvYWQgd2hlbiB3ZSBrbm93IHRoZSB0eXBlID09IDAgKi8KLXVuc2lnbmVkIGxvbmcgd2VpZ2h0ZWRfY3B1bG9hZChjb25zdCBpbnQgY3B1KQotewotCXJldHVybiBjcHVfcnEoY3B1KS0+bG9hZC53ZWlnaHQ7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF90YXNrX2NwdShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHVuc2lnbmVkIGludCBjcHUpCiB7CiAJc2V0X3Rhc2tfcnEocCwgY3B1KTsKQEAgLTE2NjAsNiArMTg0NSwxMiBAQAogCiAjaWZkZWYgQ09ORklHX1NNUAogCisvKiBVc2VkIGluc3RlYWQgb2Ygc291cmNlX2xvYWQgd2hlbiB3ZSBrbm93IHRoZSB0eXBlID09IDAgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHdlaWdodGVkX2NwdWxvYWQoY29uc3QgaW50IGNwdSkKK3sKKwlyZXR1cm4gY3B1X3JxKGNwdSktPmxvYWQud2VpZ2h0OworfQorCiAvKgogICogSXMgdGhpcyB0YXNrIGxpa2VseSBjYWNoZS1ob3Q6CiAgKi8KQEAgLTE4NzAsNyArMjA2MSw3IEBACiAJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwogCXVuc2lnbmVkIGxvbmcgdG90YWwgPSB3ZWlnaHRlZF9jcHVsb2FkKGNwdSk7CiAKLQlpZiAodHlwZSA9PSAwKQorCWlmICh0eXBlID09IDAgfHwgIXNjaGVkX2ZlYXQoTEJfQklBUykpCiAJCXJldHVybiB0b3RhbDsKIAogCXJldHVybiBtaW4ocnEtPmNwdV9sb2FkW3R5cGUtMV0sIHRvdGFsKTsKQEAgLTE4ODUsMjUgKzIwNzYsMTMgQEAKIAlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CiAJdW5zaWduZWQgbG9uZyB0b3RhbCA9IHdlaWdodGVkX2NwdWxvYWQoY3B1KTsKIAotCWlmICh0eXBlID09IDApCisJaWYgKHR5cGUgPT0gMCB8fCAhc2NoZWRfZmVhdChMQl9CSUFTKSkKIAkJcmV0dXJuIHRvdGFsOwogCiAJcmV0dXJuIG1heChycS0+Y3B1X2xvYWRbdHlwZS0xXSwgdG90YWwpOwogfQogCiAvKgotICogUmV0dXJuIHRoZSBhdmVyYWdlIGxvYWQgcGVyIHRhc2sgb24gdGhlIGNwdSdzIHJ1biBxdWV1ZQotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBjcHVfYXZnX2xvYWRfcGVyX3Rhc2soaW50IGNwdSkKLXsKLQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7Ci0JdW5zaWduZWQgbG9uZyB0b3RhbCA9IHdlaWdodGVkX2NwdWxvYWQoY3B1KTsKLQl1bnNpZ25lZCBsb25nIG4gPSBycS0+bnJfcnVubmluZzsKLQotCXJldHVybiBuID8gdG90YWwgLyBuIDogU0NIRURfTE9BRF9TQ0FMRTsKLX0KLQotLyoKICAqIGZpbmRfaWRsZXN0X2dyb3VwIGZpbmRzIGFuZCByZXR1cm5zIHRoZSBsZWFzdCBidXN5IENQVSBncm91cCB3aXRoaW4gdGhlCiAgKiBkb21haW4uCiAgKi8KQEAgLTIwMDksNiArMjE4OCw5IEBACiAJCQlzZCA9IHRtcDsKIAl9CiAKKwlpZiAoc2QpCisJCXVwZGF0ZV9zaGFyZXMoc2QpOworCiAJd2hpbGUgKHNkKSB7CiAJCWNwdW1hc2tfdCBzcGFuLCB0bXBtYXNrOwogCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKmdyb3VwOwpAQCAtMjA3NSw2ICsyMjU3LDIyIEBACiAJaWYgKCFzY2hlZF9mZWF0KFNZTkNfV0FLRVVQUykpCiAJCXN5bmMgPSAwOwogCisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChzY2hlZF9mZWF0KExCX1dBS0VVUF9VUERBVEUpKSB7CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKnNkOworCisJCXRoaXNfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwkJY3B1ID0gdGFza19jcHUocCk7CisKKwkJZm9yX2VhY2hfZG9tYWluKHRoaXNfY3B1LCBzZCkgeworCQkJaWYgKGNwdV9pc3NldChjcHUsIHNkLT5zcGFuKSkgeworCQkJCXVwZGF0ZV9zaGFyZXMoc2QpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorI2VuZGlmCisKIAlzbXBfd21iKCk7CiAJcnEgPSB0YXNrX3JxX2xvY2socCwgJmZsYWdzKTsKIAlvbGRfc3RhdGUgPSBwLT5zdGF0ZTsKQEAgLTIxMjEsNyArMjMxOSw3IEBACiAJCQl9CiAJCX0KIAl9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU0NIRURTVEFUUyAqLwogCiBvdXRfYWN0aXZhdGU6CiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLwpAQCAtMjEzOSw2ICsyMzM3LDkgQEAKIAlzdWNjZXNzID0gMTsKIAogb3V0X3J1bm5pbmc6CisJdHJhY2VfbWFyayhrZXJuZWxfc2NoZWRfd2FrZXVwLAorCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJcC0+cGlkLCBwLT5zdGF0ZSwgcnEsIHAsIHJxLT5jdXJyKTsKIAljaGVja19wcmVlbXB0X2N1cnIocnEsIHApOwogCiAJcC0+c3RhdGUgPSBUQVNLX1JVTk5JTkc7CkBAIC0yMTQ3LDYgKzIzNDgsOCBAQAogCQlwLT5zY2hlZF9jbGFzcy0+dGFza193YWtlX3VwKHJxLCBwKTsKICNlbmRpZgogb3V0OgorCWN1cnJlbnQtPnNlLmxhc3Rfd2FrZXVwID0gY3VycmVudC0+c2Uuc3VtX2V4ZWNfcnVudGltZTsKKwogCXRhc2tfcnFfdW5sb2NrKHJxLCAmZmxhZ3MpOwogCiAJcmV0dXJuIHN1Y2Nlc3M7CkBAIC0yMjY3LDggKzI0NzAsMTEgQEAKIAkJICogbWFuYWdlbWVudCAoaWYgYW55KToKIAkJICovCiAJCXAtPnNjaGVkX2NsYXNzLT50YXNrX25ldyhycSwgcCk7Ci0JCWluY19ucl9ydW5uaW5nKHAsIHJxKTsKKwkJaW5jX25yX3J1bm5pbmcocnEpOwogCX0KKwl0cmFjZV9tYXJrKGtlcm5lbF9zY2hlZF93YWtldXBfbmV3LAorCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJcC0+cGlkLCBwLT5zdGF0ZSwgcnEsIHAsIHJxLT5jdXJyKTsKIAljaGVja19wcmVlbXB0X2N1cnIocnEsIHApOwogI2lmZGVmIENPTkZJR19TTVAKIAlpZiAocC0+c2NoZWRfY2xhc3MtPnRhc2tfd2FrZV91cCkKQEAgLTIzMjEsNyArMjUyNyw3IEBACiAJCW5vdGlmaWVyLT5vcHMtPnNjaGVkX291dChub3RpZmllciwgbmV4dCk7CiB9CiAKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIHN0YXRpYyB2b2lkIGZpcmVfc2NoZWRfaW5fcHJlZW1wdF9ub3RpZmllcnMoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQogewpAQCAtMjMzMyw3ICsyNTM5LDcgQEAKIHsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIC8qKgogICogcHJlcGFyZV90YXNrX3N3aXRjaCAtIHByZXBhcmUgdG8gc3dpdGNoIHRhc2tzCkBAIC0yNDQxLDYgKzI2NDcsMTEgQEAKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSwgKm9sZG1tOwogCiAJcHJlcGFyZV90YXNrX3N3aXRjaChycSwgcHJldiwgbmV4dCk7CisJdHJhY2VfbWFyayhrZXJuZWxfc2NoZWRfc2NoZWR1bGUsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlwcmV2LT5waWQsIG5leHQtPnBpZCwgcHJldi0+c3RhdGUsCisJCXJxLCBwcmV2LCBuZXh0KTsKIAltbSA9IG5leHQtPm1tOwogCW9sZG1tID0gcHJldi0+YWN0aXZlX21tOwogCS8qCkBAIC0yNzc1LDcgKzI5ODYsNyBAQAogCSAgICAgIGVudW0gY3B1X2lkbGVfdHlwZSBpZGxlLCBpbnQgKmFsbF9waW5uZWQsCiAJICAgICAgaW50ICp0aGlzX2Jlc3RfcHJpbywgc3RydWN0IHJxX2l0ZXJhdG9yICppdGVyYXRvcikKIHsKLQlpbnQgbG9vcHMgPSAwLCBwdWxsZWQgPSAwLCBwaW5uZWQgPSAwLCBza2lwX2Zvcl9sb2FkOworCWludCBsb29wcyA9IDAsIHB1bGxlZCA9IDAsIHBpbm5lZCA9IDA7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwOwogCWxvbmcgcmVtX2xvYWRfbW92ZSA9IG1heF9sb2FkX21vdmU7CiAKQEAgLTI3OTEsMTQgKzMwMDIsOCBAQAogbmV4dDoKIAlpZiAoIXAgfHwgbG9vcHMrKyA+IHN5c2N0bF9zY2hlZF9ucl9taWdyYXRlKQogCQlnb3RvIG91dDsKLQkvKgotCSAqIFRvIGhlbHAgZGlzdHJpYnV0ZSBoaWdoIHByaW9yaXR5IHRhc2tzIGFjcm9zcyBDUFVzIHdlIGRvbid0Ci0JICogc2tpcCBhIHRhc2sgaWYgaXQgd2lsbCBiZSB0aGUgaGlnaGVzdCBwcmlvcml0eSB0YXNrIChpLmUuIHNtYWxsZXN0Ci0JICogcHJpbyB2YWx1ZSkgb24gaXRzIG5ldyBxdWV1ZSByZWdhcmRsZXNzIG9mIGl0cyBsb2FkIHdlaWdodAotCSAqLwotCXNraXBfZm9yX2xvYWQgPSAocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlICsKLQkJCQkJCQkgU0NIRURfTE9BRF9TQ0FMRV9GVVpaOwotCWlmICgoc2tpcF9mb3JfbG9hZCAmJiBwLT5wcmlvID49ICp0aGlzX2Jlc3RfcHJpbykgfHwKKworCWlmICgocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlIHx8CiAJICAgICFjYW5fbWlncmF0ZV90YXNrKHAsIGJ1c2llc3QsIHRoaXNfY3B1LCBzZCwgaWRsZSwgJnBpbm5lZCkpIHsKIAkJcCA9IGl0ZXJhdG9yLT5uZXh0KGl0ZXJhdG9yLT5hcmcpOwogCQlnb3RvIG5leHQ7CkBAIC0yODUzLDYgKzMwNTgsMTAgQEAKIAkJCQltYXhfbG9hZF9tb3ZlIC0gdG90YWxfbG9hZF9tb3ZlZCwKIAkJCQlzZCwgaWRsZSwgYWxsX3Bpbm5lZCwgJnRoaXNfYmVzdF9wcmlvKTsKIAkJY2xhc3MgPSBjbGFzcy0+bmV4dDsKKworCQlpZiAoaWRsZSA9PSBDUFVfTkVXTFlfSURMRSAmJiB0aGlzX3JxLT5ucl9ydW5uaW5nKQorCQkJYnJlYWs7CisKIAl9IHdoaWxlIChjbGFzcyAmJiBtYXhfbG9hZF9tb3ZlID4gdG90YWxfbG9hZF9tb3ZlZCk7CiAKIAlyZXR1cm4gdG90YWxfbG9hZF9tb3ZlZCA+IDA7CkBAIC0yOTI5LDYgKzMxMzgsNyBAQAogCW1heF9sb2FkID0gdGhpc19sb2FkID0gdG90YWxfbG9hZCA9IHRvdGFsX3B3ciA9IDA7CiAJYnVzaWVzdF9sb2FkX3Blcl90YXNrID0gYnVzaWVzdF9ucl9ydW5uaW5nID0gMDsKIAl0aGlzX2xvYWRfcGVyX3Rhc2sgPSB0aGlzX25yX3J1bm5pbmcgPSAwOworCiAJaWYgKGlkbGUgPT0gQ1BVX05PVF9JRExFKQogCQlsb2FkX2lkeCA9IHNkLT5idXN5X2lkeDsKIAllbHNlIGlmIChpZGxlID09IENQVV9ORVdMWV9JRExFKQpAQCAtMjk0Myw2ICszMTUzLDggQEAKIAkJaW50IF9fZ3JvdXBfaW1iID0gMDsKIAkJdW5zaWduZWQgaW50IGJhbGFuY2VfY3B1ID0gLTEsIGZpcnN0X2lkbGVfY3B1ID0gMDsKIAkJdW5zaWduZWQgbG9uZyBzdW1fbnJfcnVubmluZywgc3VtX3dlaWdodGVkX2xvYWQ7CisJCXVuc2lnbmVkIGxvbmcgc3VtX2F2Z19sb2FkX3Blcl90YXNrOworCQl1bnNpZ25lZCBsb25nIGF2Z19sb2FkX3Blcl90YXNrOwogCiAJCWxvY2FsX2dyb3VwID0gY3B1X2lzc2V0KHRoaXNfY3B1LCBncm91cC0+Y3B1bWFzayk7CiAKQEAgLTI5NTEsNiArMzE2Myw4IEBACiAKIAkJLyogVGFsbHkgdXAgdGhlIGxvYWQgb2YgYWxsIENQVXMgaW4gdGhlIGdyb3VwICovCiAJCXN1bV93ZWlnaHRlZF9sb2FkID0gc3VtX25yX3J1bm5pbmcgPSBhdmdfbG9hZCA9IDA7CisJCXN1bV9hdmdfbG9hZF9wZXJfdGFzayA9IGF2Z19sb2FkX3Blcl90YXNrID0gMDsKKwogCQltYXhfY3B1X2xvYWQgPSAwOwogCQltaW5fY3B1X2xvYWQgPSB+MFVMOwogCkBAIC0yOTg0LDYgKzMxOTgsOCBAQAogCQkJYXZnX2xvYWQgKz0gbG9hZDsKIAkJCXN1bV9ucl9ydW5uaW5nICs9IHJxLT5ucl9ydW5uaW5nOwogCQkJc3VtX3dlaWdodGVkX2xvYWQgKz0gd2VpZ2h0ZWRfY3B1bG9hZChpKTsKKworCQkJc3VtX2F2Z19sb2FkX3Blcl90YXNrICs9IGNwdV9hdmdfbG9hZF9wZXJfdGFzayhpKTsKIAkJfQogCiAJCS8qCkBAIC0zMDA1LDcgKzMyMjEsMjAgQEAKIAkJYXZnX2xvYWQgPSBzZ19kaXZfY3B1X3Bvd2VyKGdyb3VwLAogCQkJCWF2Z19sb2FkICogU0NIRURfTE9BRF9TQ0FMRSk7CiAKLQkJaWYgKChtYXhfY3B1X2xvYWQgLSBtaW5fY3B1X2xvYWQpID4gU0NIRURfTE9BRF9TQ0FMRSkKKworCQkvKgorCQkgKiBDb25zaWRlciB0aGUgZ3JvdXAgdW5iYWxhbmNlZCB3aGVuIHRoZSBpbWJhbGFuY2UgaXMgbGFyZ2VyCisJCSAqIHRoYW4gdGhlIGF2ZXJhZ2Ugd2VpZ2h0IG9mIHR3byB0YXNrcy4KKwkJICoKKwkJICogQVBaOiB3aXRoIGNncm91cCB0aGUgYXZnIHRhc2sgd2VpZ2h0IGNhbiB2YXJ5IHdpbGRseSBhbmQKKwkJICogICAgICBtaWdodCBub3QgYmUgYSBzdWl0YWJsZSBudW1iZXIgLSBzaG91bGQgd2Uga2VlcCBhCisJCSAqICAgICAgbm9ybWFsaXplZCBucl9ydW5uaW5nIG51bWJlciBzb21ld2hlcmUgdGhhdCBuZWdhdGVzCisJCSAqICAgICAgdGhlIGhpZXJhcmNoeT8KKwkJICovCisJCWF2Z19sb2FkX3Blcl90YXNrID0gc2dfZGl2X2NwdV9wb3dlcihncm91cCwKKwkJCQlzdW1fYXZnX2xvYWRfcGVyX3Rhc2sgKiBTQ0hFRF9MT0FEX1NDQUxFKTsKKworCQlpZiAoKG1heF9jcHVfbG9hZCAtIG1pbl9jcHVfbG9hZCkgPiAyKmF2Z19sb2FkX3Blcl90YXNrKQogCQkJX19ncm91cF9pbWIgPSAxOwogCiAJCWdyb3VwX2NhcGFjaXR5ID0gZ3JvdXAtPl9fY3B1X3Bvd2VyIC8gU0NIRURfTE9BRF9TQ0FMRTsKQEAgLTMxNDYsOSArMzM3NSw5IEBACiAJCQlpZiAoYnVzaWVzdF9sb2FkX3Blcl90YXNrID4gdGhpc19sb2FkX3Blcl90YXNrKQogCQkJCWltYm4gPSAxOwogCQl9IGVsc2UKLQkJCXRoaXNfbG9hZF9wZXJfdGFzayA9IFNDSEVEX0xPQURfU0NBTEU7CisJCQl0aGlzX2xvYWRfcGVyX3Rhc2sgPSBjcHVfYXZnX2xvYWRfcGVyX3Rhc2sodGhpc19jcHUpOwogCi0JCWlmIChtYXhfbG9hZCAtIHRoaXNfbG9hZCArIFNDSEVEX0xPQURfU0NBTEVfRlVaWiA+PQorCQlpZiAobWF4X2xvYWQgLSB0aGlzX2xvYWQgKyAyKmJ1c2llc3RfbG9hZF9wZXJfdGFzayA+PQogCQkJCQlidXNpZXN0X2xvYWRfcGVyX3Rhc2sgKiBpbWJuKSB7CiAJCQkqaW1iYWxhbmNlID0gYnVzaWVzdF9sb2FkX3Blcl90YXNrOwogCQkJcmV0dXJuIGJ1c2llc3Q7CkBAIC0zMjc0LDYgKzM1MDMsNyBAQAogCXNjaGVkc3RhdF9pbmMoc2QsIGxiX2NvdW50W2lkbGVdKTsKIAogcmVkbzoKKwl1cGRhdGVfc2hhcmVzKHNkKTsKIAlncm91cCA9IGZpbmRfYnVzaWVzdF9ncm91cChzZCwgdGhpc19jcHUsICZpbWJhbGFuY2UsIGlkbGUsICZzZF9pZGxlLAogCQkJCSAgIGNwdXMsIGJhbGFuY2UpOwogCkBAIC0zMzc2LDggKzM2MDYsOSBAQAogCiAJaWYgKCFsZF9tb3ZlZCAmJiAhc2RfaWRsZSAmJiBzZC0+ZmxhZ3MgJiBTRF9TSEFSRV9DUFVQT1dFUiAmJgogCSAgICAhdGVzdF9zZF9wYXJlbnQoc2QsIFNEX1BPV0VSU0FWSU5HU19CQUxBTkNFKSkKLQkJcmV0dXJuIC0xOwotCXJldHVybiBsZF9tb3ZlZDsKKwkJbGRfbW92ZWQgPSAtMTsKKworCWdvdG8gb3V0OwogCiBvdXRfYmFsYW5jZWQ6CiAJc2NoZWRzdGF0X2luYyhzZCwgbGJfYmFsYW5jZWRbaWRsZV0pOwpAQCAtMzM5Miw4ICszNjIzLDEzIEBACiAKIAlpZiAoIXNkX2lkbGUgJiYgc2QtPmZsYWdzICYgU0RfU0hBUkVfQ1BVUE9XRVIgJiYKIAkgICAgIXRlc3Rfc2RfcGFyZW50KHNkLCBTRF9QT1dFUlNBVklOR1NfQkFMQU5DRSkpCi0JCXJldHVybiAtMTsKLQlyZXR1cm4gMDsKKwkJbGRfbW92ZWQgPSAtMTsKKwllbHNlCisJCWxkX21vdmVkID0gMDsKK291dDoKKwlpZiAobGRfbW92ZWQpCisJCXVwZGF0ZV9zaGFyZXMoc2QpOworCXJldHVybiBsZF9tb3ZlZDsKIH0KIAogLyoKQEAgLTM0MjgsNiArMzY2NCw3IEBACiAKIAlzY2hlZHN0YXRfaW5jKHNkLCBsYl9jb3VudFtDUFVfTkVXTFlfSURMRV0pOwogcmVkbzoKKwl1cGRhdGVfc2hhcmVzX2xvY2tlZCh0aGlzX3JxLCBzZCk7CiAJZ3JvdXAgPSBmaW5kX2J1c2llc3RfZ3JvdXAoc2QsIHRoaXNfY3B1LCAmaW1iYWxhbmNlLCBDUFVfTkVXTFlfSURMRSwKIAkJCQkgICAmc2RfaWRsZSwgY3B1cywgTlVMTCk7CiAJaWYgKCFncm91cCkgewpAQCAtMzQ3MSw2ICszNzA4LDcgQEAKIAl9IGVsc2UKIAkJc2QtPm5yX2JhbGFuY2VfZmFpbGVkID0gMDsKIAorCXVwZGF0ZV9zaGFyZXNfbG9ja2VkKHRoaXNfcnEsIHNkKTsKIAlyZXR1cm4gbGRfbW92ZWQ7CiAKIG91dF9iYWxhbmNlZDoKQEAgLTM2NjIsNiArMzkwMCw3IEBACiAJLyogRWFybGllc3QgdGltZSB3aGVuIHdlIGhhdmUgdG8gZG8gcmViYWxhbmNlIGFnYWluICovCiAJdW5zaWduZWQgbG9uZyBuZXh0X2JhbGFuY2UgPSBqaWZmaWVzICsgNjAqSFo7CiAJaW50IHVwZGF0ZV9uZXh0X2JhbGFuY2UgPSAwOworCWludCBuZWVkX3NlcmlhbGl6ZTsKIAljcHVtYXNrX3QgdG1wOwogCiAJZm9yX2VhY2hfZG9tYWluKGNwdSwgc2QpIHsKQEAgLTM2NzksOCArMzkxOCw5IEBACiAJCWlmIChpbnRlcnZhbCA+IEhaKk5SX0NQVVMvMTApCiAJCQlpbnRlcnZhbCA9IEhaKk5SX0NQVVMvMTA7CiAKKwkJbmVlZF9zZXJpYWxpemUgPSBzZC0+ZmxhZ3MgJiBTRF9TRVJJQUxJWkU7CiAKLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkgeworCQlpZiAobmVlZF9zZXJpYWxpemUpIHsKIAkJCWlmICghc3Bpbl90cnlsb2NrKCZiYWxhbmNpbmcpKQogCQkJCWdvdG8gb3V0OwogCQl9CkBAIC0zNjk2LDcgKzM5MzYsNyBAQAogCQkJfQogCQkJc2QtPmxhc3RfYmFsYW5jZSA9IGppZmZpZXM7CiAJCX0KLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkKKwkJaWYgKG5lZWRfc2VyaWFsaXplKQogCQkJc3Bpbl91bmxvY2soJmJhbGFuY2luZyk7CiBvdXQ6CiAJCWlmICh0aW1lX2FmdGVyKG5leHRfYmFsYW5jZSwgc2QtPmxhc3RfYmFsYW5jZSArIGludGVydmFsKSkgewpAQCAtNDAxMSwyNiArNDI1MSw0NCBAQAogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKQorI2lmIGRlZmluZWQoQ09ORklHX1BSRUVNUFQpICYmIChkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKSB8fCBcCisJCQkJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpKQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X3BhcmVudF9pcCh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJaWYgKGluX2xvY2tfZnVuY3Rpb25zKGFkZHIpKSB7CisJCWFkZHIgPSBDQUxMRVJfQUREUjI7CisJCWlmIChpbl9sb2NrX2Z1bmN0aW9ucyhhZGRyKSkKKwkJCWFkZHIgPSBDQUxMRVJfQUREUjM7CisJfQorCXJldHVybiBhZGRyOworfQogCiB2b2lkIF9fa3Byb2JlcyBhZGRfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCiAJaWYgKERFQlVHX0xPQ0tTX1dBUk5fT04oKHByZWVtcHRfY291bnQoKSA8IDApKSkKIAkJcmV0dXJuOworI2VuZGlmCiAJcHJlZW1wdF9jb3VudCgpICs9IHZhbDsKKyNpZmRlZiBDT05GSUdfREVCVUdfUFJFRU1QVAogCS8qCiAJICogU3BpbmxvY2sgY291bnQgb3ZlcmZsb3dpbmcgc29vbj8KIAkgKi8KIAlERUJVR19MT0NLU19XQVJOX09OKChwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spID49CiAJCQkJUFJFRU1QVF9NQVNLIC0gMTApOworI2VuZGlmCisJaWYgKHByZWVtcHRfY291bnQoKSA9PSB2YWwpCisJCXRyYWNlX3ByZWVtcHRfb2ZmKENBTExFUl9BRERSMCwgZ2V0X3BhcmVudF9pcChDQUxMRVJfQUREUjEpKTsKIH0KIEVYUE9SVF9TWU1CT0woYWRkX3ByZWVtcHRfY291bnQpOwogCiB2b2lkIF9fa3Byb2JlcyBzdWJfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCkBAIC00MDQyLDcgKzQzMDAsMTAgQEAKIAlpZiAoREVCVUdfTE9DS1NfV0FSTl9PTigodmFsIDwgUFJFRU1QVF9NQVNLKSAmJgogCQkJIShwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spKSkKIAkJcmV0dXJuOworI2VuZGlmCiAKKwlpZiAocHJlZW1wdF9jb3VudCgpID09IHZhbCkKKwkJdHJhY2VfcHJlZW1wdF9vbihDQUxMRVJfQUREUjAsIGdldF9wYXJlbnRfaXAoQ0FMTEVSX0FERFIxKSk7CiAJcHJlZW1wdF9jb3VudCgpIC09IHZhbDsKIH0KIEVYUE9SVF9TWU1CT0woc3ViX3ByZWVtcHRfY291bnQpOwpAQCAtNDA2MCw2ICs0MzIxLDcgQEAKIAkJcHJldi0+Y29tbSwgcHJldi0+cGlkLCBwcmVlbXB0X2NvdW50KCkpOwogCiAJZGVidWdfc2hvd19oZWxkX2xvY2tzKHByZXYpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAoaXJxc19kaXNhYmxlZCgpKQogCQlwcmludF9pcnF0cmFjZV9ldmVudHMocHJldik7CiAKQEAgLTQxMzMsNyArNDM5NSw3IEBACiAJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LCAqbmV4dDsKIAl1bnNpZ25lZCBsb25nICpzd2l0Y2hfY291bnQ7CiAJc3RydWN0IHJxICpycTsKLQlpbnQgY3B1OworCWludCBjcHUsIGhydGljayA9IHNjaGVkX2ZlYXQoSFJUSUNLKTsKIAogbmVlZF9yZXNjaGVkOgogCXByZWVtcHRfZGlzYWJsZSgpOwpAQCAtNDE0OCw3ICs0NDEwLDggQEAKIAogCXNjaGVkdWxlX2RlYnVnKHByZXYpOwogCi0JaHJ0aWNrX2NsZWFyKHJxKTsKKwlpZiAoaHJ0aWNrKQorCQlocnRpY2tfY2xlYXIocnEpOwogCiAJLyoKIAkgKiBEbyB0aGUgcnEtY2xvY2sgdXBkYXRlIG91dHNpZGUgdGhlIHJxIGxvY2s6CkBAIC00MTU5LDEyICs0NDIyLDEwIEBACiAJY2xlYXJfdHNrX25lZWRfcmVzY2hlZChwcmV2KTsKIAogCWlmIChwcmV2LT5zdGF0ZSAmJiAhKHByZWVtcHRfY291bnQoKSAmIFBSRUVNUFRfQUNUSVZFKSkgewotCQlpZiAodW5saWtlbHkoKHByZXYtPnN0YXRlICYgVEFTS19JTlRFUlJVUFRJQkxFKSAmJgotCQkJCXNpZ25hbF9wZW5kaW5nKHByZXYpKSkgeworCQlpZiAodW5saWtlbHkoc2lnbmFsX3BlbmRpbmdfc3RhdGUocHJldi0+c3RhdGUsIHByZXYpKSkKIAkJCXByZXYtPnN0YXRlID0gVEFTS19SVU5OSU5HOwotCQl9IGVsc2UgeworCQllbHNlCiAJCQlkZWFjdGl2YXRlX3Rhc2socnEsIHByZXYsIDEpOwotCQl9CiAJCXN3aXRjaF9jb3VudCA9ICZwcmV2LT5udmNzdzsKIAl9CiAKQEAgLTQxOTYsNyArNDQ1Nyw4IEBACiAJfSBlbHNlCiAJCXNwaW5fdW5sb2NrX2lycSgmcnEtPmxvY2spOwogCi0JaHJ0aWNrX3NldChycSk7CisJaWYgKGhydGljaykKKwkJaHJ0aWNrX3NldChycSk7CiAKIAlpZiAodW5saWtlbHkocmVhY3F1aXJlX2tlcm5lbF9sb2NrKGN1cnJlbnQpIDwgMCkpCiAJCWdvdG8gbmVlZF9yZXNjaGVkX25vbnByZWVtcHRpYmxlOwpAQCAtNDM5MCwyMiArNDY1MiwyMCBAQAogCQkJICAgICBzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgfHwKIAkJCSAgICAoc3RhdGUgPT0gVEFTS19LSUxMQUJMRSAmJgogCQkJICAgICBmYXRhbF9zaWduYWxfcGVuZGluZyhjdXJyZW50KSkpIHsKLQkJCQlfX3JlbW92ZV93YWl0X3F1ZXVlKCZ4LT53YWl0LCAmd2FpdCk7Ci0JCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwkJCQl0aW1lb3V0ID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQkJX19zZXRfY3VycmVudF9zdGF0ZShzdGF0ZSk7CiAJCQlzcGluX3VubG9ja19pcnEoJngtPndhaXQubG9jayk7CiAJCQl0aW1lb3V0ID0gc2NoZWR1bGVfdGltZW91dCh0aW1lb3V0KTsKIAkJCXNwaW5fbG9ja19pcnEoJngtPndhaXQubG9jayk7Ci0JCQlpZiAoIXRpbWVvdXQpIHsKLQkJCQlfX3JlbW92ZV93YWl0X3F1ZXVlKCZ4LT53YWl0LCAmd2FpdCk7Ci0JCQkJcmV0dXJuIHRpbWVvdXQ7Ci0JCQl9Ci0JCX0gd2hpbGUgKCF4LT5kb25lKTsKKwkJfSB3aGlsZSAoIXgtPmRvbmUgJiYgdGltZW91dCk7CiAJCV9fcmVtb3ZlX3dhaXRfcXVldWUoJngtPndhaXQsICZ3YWl0KTsKKwkJaWYgKCF4LT5kb25lKQorCQkJcmV0dXJuIHRpbWVvdXQ7CiAJfQogCXgtPmRvbmUtLTsKLQlyZXR1cm4gdGltZW91dDsKKwlyZXR1cm4gdGltZW91dCA/OiAxOwogfQogCiBzdGF0aWMgbG9uZyBfX3NjaGVkCkBAIC00NTgwLDEwICs0ODQwLDggQEAKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAlvbl9ycSA9IHAtPnNlLm9uX3JxOwotCWlmIChvbl9ycSkgeworCWlmIChvbl9ycSkKIAkJZGVxdWV1ZV90YXNrKHJxLCBwLCAwKTsKLQkJZGVjX2xvYWQocnEsIHApOwotCX0KIAogCXAtPnN0YXRpY19wcmlvID0gTklDRV9UT19QUklPKG5pY2UpOwogCXNldF9sb2FkX3dlaWdodChwKTsKQEAgLTQ1OTMsNyArNDg1MSw2IEBACiAKIAlpZiAob25fcnEpIHsKIAkJZW5xdWV1ZV90YXNrKHJxLCBwLCAwKTsKLQkJaW5jX2xvYWQocnEsIHApOwogCQkvKgogCQkgKiBJZiB0aGUgdGFzayBpbmNyZWFzZWQgaXRzIHByaW9yaXR5IG9yIGlzIHJ1bm5pbmcgYW5kCiAJCSAqIGxvd2VyZWQgaXRzIHByaW9yaXR5LCB0aGVuIHJlc2NoZWR1bGUgaXRzIENQVToKQEAgLTQ3MzgsMTYgKzQ5OTUsOCBAQAogCXNldF9sb2FkX3dlaWdodChwKTsKIH0KIAotLyoqCi0gKiBzY2hlZF9zZXRzY2hlZHVsZXIgLSBjaGFuZ2UgdGhlIHNjaGVkdWxpbmcgcG9saWN5IGFuZC9vciBSVCBwcmlvcml0eSBvZiBhIHRocmVhZC4KLSAqIEBwOiB0aGUgdGFzayBpbiBxdWVzdGlvbi4KLSAqIEBwb2xpY3k6IG5ldyBwb2xpY3kuCi0gKiBAcGFyYW06IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBuZXcgUlQgcHJpb3JpdHkuCi0gKgotICogTk9URSB0aGF0IHRoZSB0YXNrIG1heSBiZSBhbHJlYWR5IGRlYWQuCi0gKi8KLWludCBzY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAotCQkgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkKK3N0YXRpYyBpbnQgX19zY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAorCQkJCXN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0sIGJvb2wgdXNlcikKIHsKIAlpbnQgcmV0dmFsLCBvbGRwcmlvLCBvbGRwb2xpY3kgPSAtMSwgb25fcnEsIHJ1bm5pbmc7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTQ3NzksNyArNTAyOCw3IEBACiAJLyoKIAkgKiBBbGxvdyB1bnByaXZpbGVnZWQgUlQgdGFza3MgdG8gZGVjcmVhc2UgcHJpb3JpdHk6CiAJICovCi0JaWYgKCFjYXBhYmxlKENBUF9TWVNfTklDRSkpIHsKKwlpZiAodXNlciAmJiAhY2FwYWJsZShDQVBfU1lTX05JQ0UpKSB7CiAJCWlmIChydF9wb2xpY3kocG9saWN5KSkgewogCQkJdW5zaWduZWQgbG9uZyBybGltX3J0cHJpbzsKIApAQCAtNDgxNSw3ICs1MDY0LDggQEAKIAkgKiBEbyBub3QgYWxsb3cgcmVhbHRpbWUgdGFza3MgaW50byBncm91cHMgdGhhdCBoYXZlIG5vIHJ1bnRpbWUKIAkgKiBhc3NpZ25lZC4KIAkgKi8KLQlpZiAocnRfcG9saWN5KHBvbGljeSkgJiYgdGFza19ncm91cChwKS0+cnRfYmFuZHdpZHRoLnJ0X3J1bnRpbWUgPT0gMCkKKwlpZiAodXNlcgorCSAgICAmJiBydF9wb2xpY3kocG9saWN5KSAmJiB0YXNrX2dyb3VwKHApLT5ydF9iYW5kd2lkdGgucnRfcnVudGltZSA9PSAwKQogCQlyZXR1cm4gLUVQRVJNOwogI2VuZGlmCiAKQEAgLTQ4NjQsOCArNTExNCwzOSBAQAogCiAJcmV0dXJuIDA7CiB9CisKKy8qKgorICogc2NoZWRfc2V0c2NoZWR1bGVyIC0gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIHBvbGljeSBhbmQvb3IgUlQgcHJpb3JpdHkgb2YgYSB0aHJlYWQuCisgKiBAcDogdGhlIHRhc2sgaW4gcXVlc3Rpb24uCisgKiBAcG9saWN5OiBuZXcgcG9saWN5LgorICogQHBhcmFtOiBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgbmV3IFJUIHByaW9yaXR5LgorICoKKyAqIE5PVEUgdGhhdCB0aGUgdGFzayBtYXkgYmUgYWxyZWFkeSBkZWFkLgorICovCitpbnQgc2NoZWRfc2V0c2NoZWR1bGVyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHBvbGljeSwKKwkJICAgICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pCit7CisJcmV0dXJuIF9fc2NoZWRfc2V0c2NoZWR1bGVyKHAsIHBvbGljeSwgcGFyYW0sIHRydWUpOworfQogRVhQT1JUX1NZTUJPTF9HUEwoc2NoZWRfc2V0c2NoZWR1bGVyKTsKIAorLyoqCisgKiBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayAtIGNoYW5nZSB0aGUgc2NoZWR1bGluZyBwb2xpY3kgYW5kL29yIFJUIHByaW9yaXR5IG9mIGEgdGhyZWFkIGZyb20ga2VybmVsc3BhY2UuCisgKiBAcDogdGhlIHRhc2sgaW4gcXVlc3Rpb24uCisgKiBAcG9saWN5OiBuZXcgcG9saWN5LgorICogQHBhcmFtOiBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgbmV3IFJUIHByaW9yaXR5LgorICoKKyAqIEp1c3QgbGlrZSBzY2hlZF9zZXRzY2hlZHVsZXIsIG9ubHkgZG9uJ3QgYm90aGVyIGNoZWNraW5nIGlmIHRoZQorICogY3VycmVudCBjb250ZXh0IGhhcyBwZXJtaXNzaW9uLiAgRm9yIGV4YW1wbGUsIHRoaXMgaXMgbmVlZGVkIGluCisgKiBzdG9wX21hY2hpbmUoKTogd2UgY3JlYXRlIHRlbXBvcmFyeSBoaWdoIHByaW9yaXR5IHdvcmtlciB0aHJlYWRzLAorICogYnV0IG91ciBjYWxsZXIgbWlnaHQgbm90IGhhdmUgdGhhdCBjYXBhYmlsaXR5LgorICovCitpbnQgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAorCQkJICAgICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pCit7CisJcmV0dXJuIF9fc2NoZWRfc2V0c2NoZWR1bGVyKHAsIHBvbGljeSwgcGFyYW0sIGZhbHNlKTsKK30KKwogc3RhdGljIGludAogZG9fc2NoZWRfc2V0c2NoZWR1bGVyKHBpZF90IHBpZCwgaW50IHBvbGljeSwgc3RydWN0IHNjaGVkX3BhcmFtIF9fdXNlciAqcGFyYW0pCiB7CkBAIC01MDY0LDI0ICs1MzQ1LDYgQEAKIAlyZXR1cm4gc2NoZWRfc2V0YWZmaW5pdHkocGlkLCAmbmV3X21hc2spOwogfQogCi0vKgotICogUmVwcmVzZW50cyBhbGwgY3B1J3MgcHJlc2VudCBpbiB0aGUgc3lzdGVtCi0gKiBJbiBzeXN0ZW1zIGNhcGFibGUgb2YgaG90cGx1ZywgdGhpcyBtYXAgY291bGQgZHluYW1pY2FsbHkgZ3JvdwotICogYXMgbmV3IGNwdSdzIGFyZSBkZXRlY3RlZCBpbiB0aGUgc3lzdGVtIHZpYSBhbnkgcGxhdGZvcm0gc3BlY2lmaWMKLSAqIG1ldGhvZCwgc3VjaCBhcyBBQ1BJIGZvciBlLmcuCi0gKi8KLQotY3B1bWFza190IGNwdV9wcmVzZW50X21hcCBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChjcHVfcHJlc2VudF9tYXApOwotCi0jaWZuZGVmIENPTkZJR19TTVAKLWNwdW1hc2tfdCBjcHVfb25saW5lX21hcCBfX3JlYWRfbW9zdGx5ID0gQ1BVX01BU0tfQUxMOwotRVhQT1JUX1NZTUJPTChjcHVfb25saW5lX21hcCk7Ci0KLWNwdW1hc2tfdCBjcHVfcG9zc2libGVfbWFwIF9fcmVhZF9tb3N0bHkgPSBDUFVfTUFTS19BTEw7Ci1FWFBPUlRfU1lNQk9MKGNwdV9wb3NzaWJsZV9tYXApOwotI2VuZGlmCi0KIGxvbmcgc2NoZWRfZ2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjcHVtYXNrX3QgKm1hc2spCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwOwpAQCAtNTM3OCw3ICs1NjQxLDcgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciBzdGF0X25hbVtdID0gIlJTRFR0WlgiOworc3RhdGljIGNvbnN0IGNoYXIgc3RhdF9uYW1bXSA9IFRBU0tfU1RBVEVfVE9fQ0hBUl9TVFI7CiAKIHZvaWQgc2NoZWRfc2hvd190YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKQEAgLTU1NjUsNiArNTgyOCwxMiBAQAogCQlnb3RvIG91dDsKIAl9CiAKKwlpZiAodW5saWtlbHkoKHAtPmZsYWdzICYgUEZfVEhSRUFEX0JPVU5EKSAmJiBwICE9IGN1cnJlbnQgJiYKKwkJICAgICAhY3B1c19lcXVhbChwLT5jcHVzX2FsbG93ZWQsICpuZXdfbWFzaykpKSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKwogCWlmIChwLT5zY2hlZF9jbGFzcy0+c2V0X2NwdXNfYWxsb3dlZCkKIAkJcC0+c2NoZWRfY2xhc3MtPnNldF9jcHVzX2FsbG93ZWQocCwgbmV3X21hc2spOwogCWVsc2UgewpAQCAtNTYxNiwxMCArNTg4NSwxMCBAQAogCWRvdWJsZV9ycV9sb2NrKHJxX3NyYywgcnFfZGVzdCk7CiAJLyogQWxyZWFkeSBtb3ZlZC4gKi8KIAlpZiAodGFza19jcHUocCkgIT0gc3JjX2NwdSkKLQkJZ290byBvdXQ7CisJCWdvdG8gZG9uZTsKIAkvKiBBZmZpbml0eSBjaGFuZ2VkIChhZ2FpbikuICovCiAJaWYgKCFjcHVfaXNzZXQoZGVzdF9jcHUsIHAtPmNwdXNfYWxsb3dlZCkpCi0JCWdvdG8gb3V0OworCQlnb3RvIGZhaWw7CiAKIAlvbl9ycSA9IHAtPnNlLm9uX3JxOwogCWlmIChvbl9ycSkKQEAgLTU2MzAsOCArNTg5OSw5IEBACiAJCWFjdGl2YXRlX3Rhc2socnFfZGVzdCwgcCwgMCk7CiAJCWNoZWNrX3ByZWVtcHRfY3VycihycV9kZXN0LCBwKTsKIAl9Citkb25lOgogCXJldCA9IDE7Ci1vdXQ6CitmYWlsOgogCWRvdWJsZV9ycV91bmxvY2socnFfc3JjLCBycV9kZXN0KTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTg4MSw2ICs2MTUxLDcgQEAKIAkJbmV4dCA9IHBpY2tfbmV4dF90YXNrKHJxLCBycS0+Y3Vycik7CiAJCWlmICghbmV4dCkKIAkJCWJyZWFrOworCQluZXh0LT5zY2hlZF9jbGFzcy0+cHV0X3ByZXZfdGFzayhycSwgbmV4dCk7CiAJCW1pZ3JhdGVfZGVhZChkZWFkX2NwdSwgbmV4dCk7CiAKIAl9CkBAIC02MDUyLDYgKzYzMjMsMzYgQEAKIH0KICNlbmRpZgogCitzdGF0aWMgdm9pZCBzZXRfcnFfb25saW5lKHN0cnVjdCBycSAqcnEpCit7CisJaWYgKCFycS0+b25saW5lKSB7CisJCWNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqY2xhc3M7CisKKwkJY3B1X3NldChycS0+Y3B1LCBycS0+cmQtPm9ubGluZSk7CisJCXJxLT5vbmxpbmUgPSAxOworCisJCWZvcl9lYWNoX2NsYXNzKGNsYXNzKSB7CisJCQlpZiAoY2xhc3MtPnJxX29ubGluZSkKKwkJCQljbGFzcy0+cnFfb25saW5lKHJxKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgc2V0X3JxX29mZmxpbmUoc3RydWN0IHJxICpycSkKK3sKKwlpZiAocnEtPm9ubGluZSkgeworCQljb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgKmNsYXNzOworCisJCWZvcl9lYWNoX2NsYXNzKGNsYXNzKSB7CisJCQlpZiAoY2xhc3MtPnJxX29mZmxpbmUpCisJCQkJY2xhc3MtPnJxX29mZmxpbmUocnEpOworCQl9CisKKwkJY3B1X2NsZWFyKHJxLT5jcHUsIHJxLT5yZC0+b25saW5lKTsKKwkJcnEtPm9ubGluZSA9IDA7CisJfQorfQorCiAvKgogICogbWlncmF0aW9uX2NhbGwgLSBjYWxsYmFjayB0aGF0IGdldHMgdHJpZ2dlcmVkIHdoZW4gYSBDUFUgaXMgYWRkZWQuCiAgKiBIZXJlIHdlIGNhbiBzdGFydCB1cCB0aGUgbmVjZXNzYXJ5IG1pZ3JhdGlvbiB0aHJlYWQgZm9yIHRoZSBuZXcgQ1BVLgpAQCAtNjA4OSw3ICs2MzkwLDggQEAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWlmIChycS0+cmQpIHsKIAkJCUJVR19PTighY3B1X2lzc2V0KGNwdSwgcnEtPnJkLT5zcGFuKSk7Ci0JCQljcHVfc2V0KGNwdSwgcnEtPnJkLT5vbmxpbmUpOworCisJCQlzZXRfcnFfb25saW5lKHJxKTsKIAkJfQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZycS0+bG9jaywgZmxhZ3MpOwogCQlicmVhazsKQEAgLTYxNTAsNyArNjQ1Miw3IEBACiAJCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOwogCQlpZiAocnEtPnJkKSB7CiAJCQlCVUdfT04oIWNwdV9pc3NldChjcHUsIHJxLT5yZC0+c3BhbikpOwotCQkJY3B1X2NsZWFyKGNwdSwgcnEtPnJkLT5vbmxpbmUpOworCQkJc2V0X3JxX29mZmxpbmUocnEpOwogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWJyZWFrOwpAQCAtNjE4NCw2ICs2NDg2LDI4IEBACiAKICNpZmRlZiBDT05GSUdfU0NIRURfREVCVUcKIAorc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzZF9sZXZlbF90b19zdHJpbmcoZW51bSBzY2hlZF9kb21haW5fbGV2ZWwgbHZsKQoreworCXN3aXRjaCAobHZsKSB7CisJY2FzZSBTRF9MVl9OT05FOgorCQkJcmV0dXJuICJOT05FIjsKKwljYXNlIFNEX0xWX1NJQkxJTkc6CisJCQlyZXR1cm4gIlNJQkxJTkciOworCWNhc2UgU0RfTFZfTUM6CisJCQlyZXR1cm4gIk1DIjsKKwljYXNlIFNEX0xWX0NQVToKKwkJCXJldHVybiAiQ1BVIjsKKwljYXNlIFNEX0xWX05PREU6CisJCQlyZXR1cm4gIk5PREUiOworCWNhc2UgU0RfTFZfQUxMTk9ERVM6CisJCQlyZXR1cm4gIkFMTE5PREVTIjsKKwljYXNlIFNEX0xWX01BWDoKKwkJCXJldHVybiAiTUFYIjsKKworCX0KKwlyZXR1cm4gIk1BWCI7Cit9CisKIHN0YXRpYyBpbnQgc2NoZWRfZG9tYWluX2RlYnVnX29uZShzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCwgaW50IGNwdSwgaW50IGxldmVsLAogCQkJCSAgY3B1bWFza190ICpncm91cG1hc2spCiB7CkBAIC02MjAzLDcgKzY1MjcsOCBAQAogCQlyZXR1cm4gLTE7CiAJfQogCi0JcHJpbnRrKEtFUk5fQ09OVCAic3BhbiAlc1xuIiwgc3RyKTsKKwlwcmludGsoS0VSTl9DT05UICJzcGFuICVzIGxldmVsICVzXG4iLAorCQlzdHIsIHNkX2xldmVsX3RvX3N0cmluZyhzZC0+bGV2ZWwpKTsKIAogCWlmICghY3B1X2lzc2V0KGNwdSwgc2QtPnNwYW4pKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRVJST1I6IGRvbWFpbi0+c3BhbiBkb2VzIG5vdCBjb250YWluICIKQEAgLTYyODcsOSArNjYxMiw5IEBACiAJfQogCWtmcmVlKGdyb3VwbWFzayk7CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19TQ0hFRF9ERUJVRyAqLwogIyBkZWZpbmUgc2NoZWRfZG9tYWluX2RlYnVnKHNkLCBjcHUpIGRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9ERUJVRyAqLwogCiBzdGF0aWMgaW50IHNkX2RlZ2VuZXJhdGUoc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCiB7CkBAIC02MzQ5LDIwICs2Njc0LDE2IEBACiBzdGF0aWMgdm9pZCBycV9hdHRhY2hfcm9vdChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgcm9vdF9kb21haW4gKnJkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JY29uc3Qgc3RydWN0IHNjaGVkX2NsYXNzICpjbGFzczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOwogCiAJaWYgKHJxLT5yZCkgewogCQlzdHJ1Y3Qgcm9vdF9kb21haW4gKm9sZF9yZCA9IHJxLT5yZDsKIAotCQlmb3IgKGNsYXNzID0gc2NoZWRfY2xhc3NfaGlnaGVzdDsgY2xhc3M7IGNsYXNzID0gY2xhc3MtPm5leHQpIHsKLQkJCWlmIChjbGFzcy0+bGVhdmVfZG9tYWluKQotCQkJCWNsYXNzLT5sZWF2ZV9kb21haW4ocnEpOwotCQl9CisJCWlmIChjcHVfaXNzZXQocnEtPmNwdSwgb2xkX3JkLT5vbmxpbmUpKQorCQkJc2V0X3JxX29mZmxpbmUocnEpOwogCiAJCWNwdV9jbGVhcihycS0+Y3B1LCBvbGRfcmQtPnNwYW4pOwotCQljcHVfY2xlYXIocnEtPmNwdSwgb2xkX3JkLT5vbmxpbmUpOwogCiAJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZvbGRfcmQtPnJlZmNvdW50KSkKIAkJCWtmcmVlKG9sZF9yZCk7CkBAIC02MzczLDEyICs2Njk0LDcgQEAKIAogCWNwdV9zZXQocnEtPmNwdSwgcmQtPnNwYW4pOwogCWlmIChjcHVfaXNzZXQocnEtPmNwdSwgY3B1X29ubGluZV9tYXApKQotCQljcHVfc2V0KHJxLT5jcHUsIHJkLT5vbmxpbmUpOwotCi0JZm9yIChjbGFzcyA9IHNjaGVkX2NsYXNzX2hpZ2hlc3Q7IGNsYXNzOyBjbGFzcyA9IGNsYXNzLT5uZXh0KSB7Ci0JCWlmIChjbGFzcy0+am9pbl9kb21haW4pCi0JCQljbGFzcy0+am9pbl9kb21haW4ocnEpOwotCX0KKwkJc2V0X3JxX29ubGluZShycSk7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZycS0+bG9jaywgZmxhZ3MpOwogfQpAQCAtNjM4OSw2ICs2NzA1LDggQEAKIAogCWNwdXNfY2xlYXIocmQtPnNwYW4pOwogCWNwdXNfY2xlYXIocmQtPm9ubGluZSk7CisKKwljcHVwcmlfaW5pdCgmcmQtPmNwdXByaSk7CiB9CiAKIHN0YXRpYyB2b2lkIGluaXRfZGVmcm9vdGRvbWFpbih2b2lkKQpAQCAtNjUzMSw5ICs2ODQ5LDkgQEAKIAogCW1pbl92YWwgPSBJTlRfTUFYOwogCi0JZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IG5yX25vZGVfaWRzOyBpKyspIHsKIAkJLyogU3RhcnQgYXQgQG5vZGUgKi8KLQkJbiA9IChub2RlICsgaSkgJSBNQVhfTlVNTk9ERVM7CisJCW4gPSAobm9kZSArIGkpICUgbnJfbm9kZV9pZHM7CiAKIAkJaWYgKCFucl9jcHVzX25vZGUobikpCiAJCQljb250aW51ZTsKQEAgLTY1ODMsNyArNjkwMSw3IEBACiAJCWNwdXNfb3IoKnNwYW4sICpzcGFuLCAqbm9kZW1hc2spOwogCX0KIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKIGludCBzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncyA9IDAsIHNjaGVkX21jX3Bvd2VyX3NhdmluZ3MgPSAwOwogCkBAIC02NjAyLDcgKzY5MjAsNyBAQAogCQkqc2cgPSAmcGVyX2NwdShzY2hlZF9ncm91cF9jcHVzLCBjcHUpOwogCXJldHVybiBjcHU7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU0NIRURfU01UICovCiAKIC8qCiAgKiBtdWx0aS1jb3JlIHNjaGVkLWRvbWFpbnM6CkBAIC02NjEwLDcgKzY5MjgsNyBAQAogI2lmZGVmIENPTkZJR19TQ0hFRF9NQwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9kb21haW4sIGNvcmVfZG9tYWlucyk7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX2dyb3VwLCBzY2hlZF9ncm91cF9jb3JlKTsKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9NQyAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfU0NIRURfTUMpICYmIGRlZmluZWQoQ09ORklHX1NDSEVEX1NNVCkKIHN0YXRpYyBpbnQKQEAgLTY3MTIsNyArNzAzMCw3IEBACiAJCXNnID0gc2ctPm5leHQ7CiAJfSB3aGlsZSAoc2cgIT0gZ3JvdXBfaGVhZCk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLwogCiAjaWZkZWYgQ09ORklHX05VTUEKIC8qIEZyZWUgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdmFyaW91cyBzY2hlZF9ncm91cCBzdHJ1Y3R1cmVzICovCkBAIC02NzI3LDcgKzcwNDUsNyBAQAogCQlpZiAoIXNjaGVkX2dyb3VwX25vZGVzKQogCQkJY29udGludWU7CiAKLQkJZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKm9sZHNnLCAqc2cgPSBzY2hlZF9ncm91cF9ub2Rlc1tpXTsKIAogCQkJKm5vZGVtYXNrID0gbm9kZV90b19jcHVtYXNrKGkpOwpAQCAtNjc0OSwxMSArNzA2NywxMSBAQAogCQlzY2hlZF9ncm91cF9ub2Rlc19ieWNwdVtjcHVdID0gTlVMTDsKIAl9CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19OVU1BICovCiBzdGF0aWMgdm9pZCBmcmVlX3NjaGVkX2dyb3Vwcyhjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXAsIGNwdW1hc2tfdCAqbm9kZW1hc2spCiB7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLwogCiAvKgogICogSW5pdGlhbGl6ZSBzY2hlZCBncm91cHMgY3B1X3Bvd2VyLgpAQCAtNjg3MSw3ICs3MTg5LDEyIEBACiAKIHN0YXRpYyBpbnQgX19pbml0IHNldHVwX3JlbGF4X2RvbWFpbl9sZXZlbChjaGFyICpzdHIpCiB7Ci0JZGVmYXVsdF9yZWxheF9kb21haW5fbGV2ZWwgPSBzaW1wbGVfc3RydG91bChzdHIsIE5VTEwsIDApOworCXVuc2lnbmVkIGxvbmcgdmFsOworCisJdmFsID0gc2ltcGxlX3N0cnRvdWwoc3RyLCBOVUxMLCAwKTsKKwlpZiAodmFsIDwgU0RfTFZfTUFYKQorCQlkZWZhdWx0X3JlbGF4X2RvbWFpbl9sZXZlbCA9IHZhbDsKKwogCXJldHVybiAxOwogfQogX19zZXR1cCgicmVsYXhfZG9tYWluX2xldmVsPSIsIHNldHVwX3JlbGF4X2RvbWFpbl9sZXZlbCk7CkBAIC02OTE1LDcgKzcyMzgsNyBAQAogCS8qCiAJICogQWxsb2NhdGUgdGhlIHBlci1ub2RlIGxpc3Qgb2Ygc2NoZWQgZ3JvdXBzCiAJICovCi0Jc2NoZWRfZ3JvdXBfbm9kZXMgPSBrY2FsbG9jKE1BWF9OVU1OT0RFUywgc2l6ZW9mKHN0cnVjdCBzY2hlZF9ncm91cCAqKSwKKwlzY2hlZF9ncm91cF9ub2RlcyA9IGtjYWxsb2MobnJfbm9kZV9pZHMsIHNpemVvZihzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKiksCiAJCQkJICAgIEdGUF9LRVJORUwpOwogCWlmICghc2NoZWRfZ3JvdXBfbm9kZXMpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ2FuIG5vdCBhbGxvYyBzY2hlZCBncm91cCBub2RlIGxpc3RcbiIpOwpAQCAtNzA1NCw3ICs3Mzc3LDcgQEAKICNlbmRpZgogCiAJLyogU2V0IHVwIHBoeXNpY2FsIGdyb3VwcyAqLwotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKG5vZGVtYXNrLCBhbGxtYXNrcyk7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKHNlbmRfY292ZXJlZCwgYWxsbWFza3MpOwogCkBAIC03MDc4LDcgKzc0MDEsNyBAQAogCQkJCQlzZW5kX2NvdmVyZWQsIHRtcG1hc2spOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCS8qIFNldCB1cCBub2RlIGdyb3VwcyAqLwogCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKnNnLCAqcHJldjsKIAkJU0NIRURfQ1BVTUFTS19WQVIobm9kZW1hc2ssIGFsbG1hc2tzKTsKQEAgLTcxMTcsOSArNzQ0MCw5IEBACiAJCWNwdXNfb3IoKmNvdmVyZWQsICpjb3ZlcmVkLCAqbm9kZW1hc2spOwogCQlwcmV2ID0gc2c7CiAKLQkJZm9yIChqID0gMDsgaiA8IE1BWF9OVU1OT0RFUzsgaisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBucl9ub2RlX2lkczsgaisrKSB7CiAJCQlTQ0hFRF9DUFVNQVNLX1ZBUihub3Rjb3ZlcmVkLCBhbGxtYXNrcyk7Ci0JCQlpbnQgbiA9IChpICsgaikgJSBNQVhfTlVNTk9ERVM7CisJCQlpbnQgbiA9IChpICsgaikgJSBucl9ub2RlX2lkczsKIAkJCW5vZGVfdG9fY3B1bWFza19wdHIocG5vZGVtYXNrLCBuKTsKIAogCQkJY3B1c19jb21wbGVtZW50KCpub3Rjb3ZlcmVkLCAqY292ZXJlZCk7CkBAIC03MTcyLDcgKzc0OTUsNyBAQAogCX0KIAogI2lmZGVmIENPTkZJR19OVU1BCi0JZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKQogCQlpbml0X251bWFfc2NoZWRfZ3JvdXBzX3Bvd2VyKHNjaGVkX2dyb3VwX25vZGVzW2ldKTsKIAogCWlmIChzZF9hbGxub2RlcykgewpAQCAtNzIzMCw2ICs3NTUzLDE4IEBACiB9CiAKIC8qCisgKiBGcmVlIGN1cnJlbnQgZG9tYWluIG1hc2tzLgorICogQ2FsbGVkIGFmdGVyIGFsbCBjcHVzIGFyZSBhdHRhY2hlZCB0byBOVUxMIGRvbWFpbi4KKyAqLworc3RhdGljIHZvaWQgZnJlZV9zY2hlZF9kb21haW5zKHZvaWQpCit7CisJbmRvbXNfY3VyID0gMDsKKwlpZiAoZG9tc19jdXIgIT0gJmZhbGxiYWNrX2RvbXMpCisJCWtmcmVlKGRvbXNfY3VyKTsKKwlkb21zX2N1ciA9ICZmYWxsYmFja19kb21zOworfQorCisvKgogICogU2V0IHVwIHNjaGVkdWxlciBkb21haW5zIGFuZCBncm91cHMuIENhbGxlcnMgbXVzdCBob2xkIHRoZSBob3RwbHVnIGxvY2suCiAgKiBGb3Igbm93IHRoaXMganVzdCBleGNsdWRlcyBpc29sYXRlZCBjcHVzLCBidXQgY291bGQgYmUgdXNlZCB0bwogICogZXhjbHVkZSBvdGhlciBzcGVjaWFsIGNhc2VzIGluIHRoZSBmdXR1cmUuCkBAIC03Mzc2LDYgKzc3MTEsNyBAQAogCWdldF9vbmxpbmVfY3B1cygpOwogCW11dGV4X2xvY2soJnNjaGVkX2RvbWFpbnNfbXV0ZXgpOwogCWRldGFjaF9kZXN0cm95X2RvbWFpbnMoJmNwdV9vbmxpbmVfbWFwKTsKKwlmcmVlX3NjaGVkX2RvbWFpbnMoKTsKIAllcnIgPSBhcmNoX2luaXRfc2NoZWRfZG9tYWlucygmY3B1X29ubGluZV9tYXApOwogCW11dGV4X3VubG9jaygmc2NoZWRfZG9tYWluc19tdXRleCk7CiAJcHV0X29ubGluZV9jcHVzKCk7CkBAIC03NDQ0LDcgKzc3ODAsNyBAQAogI2VuZGlmCiAJcmV0dXJuIGVycjsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9NQyB8fCBDT05GSUdfU0NIRURfU01UICovCiAKIC8qCiAgKiBGb3JjZSBhIHJlaW5pdGlhbGl6YXRpb24gb2YgdGhlIHNjaGVkIGRvbWFpbnMgaGllcmFyY2h5LiBUaGUgZG9tYWlucwpAQCAtNzQ1NSwyMCArNzc5MSwyOCBAQAogc3RhdGljIGludCB1cGRhdGVfc2NoZWRfZG9tYWlucyhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwKIAkJCQl1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkKIHsKKwlpbnQgY3B1ID0gKGludCkobG9uZyloY3B1OworCiAJc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIENQVV9VUF9QUkVQQVJFOgotCWNhc2UgQ1BVX1VQX1BSRVBBUkVfRlJPWkVOOgogCWNhc2UgQ1BVX0RPV05fUFJFUEFSRToKIAljYXNlIENQVV9ET1dOX1BSRVBBUkVfRlJPWkVOOgorCQlkaXNhYmxlX3J1bnRpbWUoY3B1X3JxKGNwdSkpOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIENQVV9VUF9QUkVQQVJFOgorCWNhc2UgQ1BVX1VQX1BSRVBBUkVfRlJPWkVOOgogCQlkZXRhY2hfZGVzdHJveV9kb21haW5zKCZjcHVfb25saW5lX21hcCk7CisJCWZyZWVfc2NoZWRfZG9tYWlucygpOwogCQlyZXR1cm4gTk9USUZZX09LOwogCi0JY2FzZSBDUFVfVVBfQ0FOQ0VMRUQ6Ci0JY2FzZSBDUFVfVVBfQ0FOQ0VMRURfRlJPWkVOOgorCiAJY2FzZSBDUFVfRE9XTl9GQUlMRUQ6CiAJY2FzZSBDUFVfRE9XTl9GQUlMRURfRlJPWkVOOgogCWNhc2UgQ1BVX09OTElORToKIAljYXNlIENQVV9PTkxJTkVfRlJPWkVOOgorCQllbmFibGVfcnVudGltZShjcHVfcnEoY3B1KSk7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgorCWNhc2UgQ1BVX1VQX0NBTkNFTEVEX0ZST1pFTjoKIAljYXNlIENQVV9ERUFEOgogCWNhc2UgQ1BVX0RFQURfRlJPWkVOOgogCQkvKgpAQCAtNzQ3OSw4ICs3ODIzLDE2IEBACiAJCXJldHVybiBOT1RJRllfRE9ORTsKIAl9CiAKKyNpZm5kZWYgQ09ORklHX0NQVVNFVFMKKwkvKgorCSAqIENyZWF0ZSBkZWZhdWx0IGRvbWFpbiBwYXJ0aXRpb25pbmcgaWYgY3B1c2V0cyBhcmUgZGlzYWJsZWQuCisJICogT3RoZXJ3aXNlIHdlIGxldCBjcHVzZXRzIHJlYnVpbGQgdGhlIGRvbWFpbnMgYmFzZWQgb24gdGhlCisJICogY3VycmVudCBzZXR1cC4KKwkgKi8KKwogCS8qIFRoZSBob3RwbHVnIGxvY2sgaXMgYWxyZWFkeSBoZWxkIGJ5IGNwdV91cC9jcHVfZG93biAqLwogCWFyY2hfaW5pdF9zY2hlZF9kb21haW5zKCZjcHVfb25saW5lX21hcCk7CisjZW5kaWYKIAogCXJldHVybiBOT1RJRllfT0s7CiB9CkBAIC03NjIwLDcgKzc5NzIsNiBAQAogCWVsc2UKIAkJcnRfc2UtPnJ0X3JxID0gcGFyZW50LT5teV9xOwogCi0JcnRfc2UtPnJ0X3JxID0gJnJxLT5ydDsKIAlydF9zZS0+bXlfcSA9IHJ0X3JxOwogCXJ0X3NlLT5wYXJlbnQgPSBwYXJlbnQ7CiAJSU5JVF9MSVNUX0hFQUQoJnJ0X3NlLT5ydW5fbGlzdCk7CkBAIC03NjYxLDggKzgwMTIsOCBAQAogCiAJCXJvb3RfdGFza19ncm91cC5jZnNfcnEgPSAoc3RydWN0IGNmc19ycSAqKilwdHI7CiAJCXB0ciArPSBucl9jcHVfaWRzICogc2l6ZW9mKHZvaWQgKiopOwotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfVVNFUl9TQ0hFRCAqLworI2VuZGlmIC8qIENPTkZJR19GQUlSX0dST1VQX1NDSEVEICovCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECiAJCWluaXRfdGFza19ncm91cC5ydF9zZSA9IChzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICoqKXB0cjsKIAkJcHRyICs9IG5yX2NwdV9pZHMgKiBzaXplb2Yodm9pZCAqKik7CkBAIC03Njc2LDggKzgwMjcsOCBAQAogCiAJCXJvb3RfdGFza19ncm91cC5ydF9ycSA9IChzdHJ1Y3QgcnRfcnEgKiopcHRyOwogCQlwdHIgKz0gbnJfY3B1X2lkcyAqIHNpemVvZih2b2lkICoqKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAl9CiAKICNpZmRlZiBDT05GSUdfU01QCkBAIC03NjkzLDggKzgwNDQsOCBAQAogI2lmZGVmIENPTkZJR19VU0VSX1NDSEVECiAJaW5pdF9ydF9iYW5kd2lkdGgoJnJvb3RfdGFza19ncm91cC5ydF9iYW5kd2lkdGgsCiAJCQlnbG9iYWxfcnRfcGVyaW9kKCksIFJVTlRJTUVfSU5GKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19HUk9VUF9TQ0hFRAogCWxpc3RfYWRkKCZpbml0X3Rhc2tfZ3JvdXAubGlzdCwgJnRhc2tfZ3JvdXBzKTsKQEAgLTc3MDQsOCArODA1NSw4IEBACiAJSU5JVF9MSVNUX0hFQUQoJnJvb3RfdGFza19ncm91cC5jaGlsZHJlbik7CiAJaW5pdF90YXNrX2dyb3VwLnBhcmVudCA9ICZyb290X3Rhc2tfZ3JvdXA7CiAJbGlzdF9hZGQoJmluaXRfdGFza19ncm91cC5zaWJsaW5ncywgJnJvb3RfdGFza19ncm91cC5jaGlsZHJlbik7Ci0jZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19VU0VSX1NDSEVEICovCisjZW5kaWYgLyogQ09ORklHX0dST1VQX1NDSEVEICovCiAKIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgewogCQlzdHJ1Y3QgcnEgKnJxOwpAQCAtNzc4NSw2ICs4MTM2LDcgQEAKIAkJcnEtPm5leHRfYmFsYW5jZSA9IGppZmZpZXM7CiAJCXJxLT5wdXNoX2NwdSA9IDA7CiAJCXJxLT5jcHUgPSBpOworCQlycS0+b25saW5lID0gMDsKIAkJcnEtPm1pZ3JhdGlvbl90aHJlYWQgPSBOVUxMOwogCQlJTklUX0xJU1RfSEVBRCgmcnEtPm1pZ3JhdGlvbl9xdWV1ZSk7CiAJCXJxX2F0dGFjaF9yb290KHJxLCAmZGVmX3Jvb3RfZG9tYWluKTsKQEAgLTc4MDAsNyArODE1Miw3IEBACiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19TTVAKLQlvcGVuX3NvZnRpcnEoU0NIRURfU09GVElSUSwgcnVuX3JlYmFsYW5jZV9kb21haW5zLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoU0NIRURfU09GVElSUSwgcnVuX3JlYmFsYW5jZV9kb21haW5zKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1JUX01VVEVYRVMKQEAgLTgwMjQsNyArODM3Niw3IEBACiB7CiAJbGlzdF9kZWxfcmN1KCZ0Zy0+Y2ZzX3JxW2NwdV0tPmxlYWZfY2ZzX3JxX2xpc3QpOwogfQotI2Vsc2UKKyNlbHNlIC8qICFDT05GR19GQUlSX0dST1VQX1NDSEVEICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9mYWlyX3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKIHsKIH0KQEAgLTgwNDIsNyArODM5NCw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgdW5yZWdpc3Rlcl9mYWlyX3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSkKIHsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19GQUlSX0dST1VQX1NDSEVEICovCiAKICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKIHN0YXRpYyB2b2lkIGZyZWVfcnRfc2NoZWRfZ3JvdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnKQpAQCAtODExMyw3ICs4NDY1LDcgQEAKIHsKIAlsaXN0X2RlbF9yY3UoJnRnLT5ydF9ycVtjcHVdLT5sZWFmX3J0X3JxX2xpc3QpOwogfQotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlX3J0X3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKIHsKIH0KQEAgLTgxMzEsNyArODQ4Myw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgdW5yZWdpc3Rlcl9ydF9zY2hlZF9ncm91cChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUpCiB7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgZnJlZV9zY2hlZF9ncm91cChzdHJ1Y3QgdGFza19ncm91cCAqdGcpCkBAIC04MjQyLDE3ICs4NTk0LDE0IEBACiAKIAl0YXNrX3JxX3VubG9jayhycSwgJmZsYWdzKTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKLXN0YXRpYyB2b2lkIHNldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKQorc3RhdGljIHZvaWQgX19zZXRfc2Vfc2hhcmVzKHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlLCB1bnNpZ25lZCBsb25nIHNoYXJlcykKIHsKIAlzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEgPSBzZS0+Y2ZzX3JxOwotCXN0cnVjdCBycSAqcnEgPSBjZnNfcnEtPnJxOwogCWludCBvbl9ycTsKIAotCXNwaW5fbG9ja19pcnEoJnJxLT5sb2NrKTsKLQogCW9uX3JxID0gc2UtPm9uX3JxOwogCWlmIChvbl9ycSkKIAkJZGVxdWV1ZV9lbnRpdHkoY2ZzX3JxLCBzZSwgMCk7CkBAIC04MjYyLDggKzg2MTEsMTcgQEAKIAogCWlmIChvbl9ycSkKIAkJZW5xdWV1ZV9lbnRpdHkoY2ZzX3JxLCBzZSwgMCk7Cit9CiAKLQlzcGluX3VubG9ja19pcnEoJnJxLT5sb2NrKTsKK3N0YXRpYyB2b2lkIHNldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKQoreworCXN0cnVjdCBjZnNfcnEgKmNmc19ycSA9IHNlLT5jZnNfcnE7CisJc3RydWN0IHJxICpycSA9IGNmc19ycS0+cnE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCV9fc2V0X3NlX3NoYXJlcyhzZSwgc2hhcmVzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZycS0+bG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgREVGSU5FX01VVEVYKHNoYXJlc19tdXRleCk7CkBAIC04MzAyLDggKzg2NjAsMTMgQEAKIAkgKiB3L28gdHJpcHBpbmcgcmViYWxhbmNlX3NoYXJlIG9yIGxvYWRfYmFsYW5jZV9mYWlyLgogCSAqLwogCXRnLT5zaGFyZXMgPSBzaGFyZXM7Ci0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpIHsKKwkJLyoKKwkJICogZm9yY2UgYSByZWJhbGFuY2UKKwkJICovCisJCWNmc19ycV9zZXRfc2hhcmVzKHRnLT5jZnNfcnFbaV0sIDApOwogCQlzZXRfc2Vfc2hhcmVzKHRnLT5zZVtpXSwgc2hhcmVzKTsKKwl9CiAKIAkvKgogCSAqIEVuYWJsZSBsb2FkIGJhbGFuY2UgYWN0aXZpdHkgb24gdGhpcyBncm91cCwgYnkgaW5zZXJ0aW5nIGl0IGJhY2sgb24KQEAgLTgzNjYsNyArODcyOSw3IEBACiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogCi0JcmV0dXJuIHRvdGFsICsgdG9fcmF0aW8ocGVyaW9kLCBydW50aW1lKSA8CisJcmV0dXJuIHRvdGFsICsgdG9fcmF0aW8ocGVyaW9kLCBydW50aW1lKSA8PQogCQl0b19yYXRpbyhrdGltZV90b19ucyhwYXJlbnQtPnJ0X2JhbmR3aWR0aC5ydF9wZXJpb2QpLAogCQkJCXBhcmVudC0+cnRfYmFuZHdpZHRoLnJ0X3J1bnRpbWUpOwogfQpAQCAtODQ2OSw2ICs4ODMyLDkgQEAKIAlydF9wZXJpb2QgPSAodTY0KXJ0X3BlcmlvZF91cyAqIE5TRUNfUEVSX1VTRUM7CiAJcnRfcnVudGltZSA9IHRnLT5ydF9iYW5kd2lkdGgucnRfcnVudGltZTsKIAorCWlmIChydF9wZXJpb2QgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlyZXR1cm4gdGdfc2V0X2JhbmR3aWR0aCh0ZywgcnRfcGVyaW9kLCBydF9ydW50aW1lKTsKIH0KIApAQCAtODQ4MywxNiArODg0OSwyMSBAQAogCiBzdGF0aWMgaW50IHNjaGVkX3J0X2dsb2JhbF9jb25zdHJhaW50cyh2b2lkKQogeworCXN0cnVjdCB0YXNrX2dyb3VwICp0ZyA9ICZyb290X3Rhc2tfZ3JvdXA7CisJdTY0IHJ0X3J1bnRpbWUsIHJ0X3BlcmlvZDsKIAlpbnQgcmV0ID0gMDsKIAorCXJ0X3BlcmlvZCA9IGt0aW1lX3RvX25zKHRnLT5ydF9iYW5kd2lkdGgucnRfcGVyaW9kKTsKKwlydF9ydW50aW1lID0gdGctPnJ0X2JhbmR3aWR0aC5ydF9ydW50aW1lOworCiAJbXV0ZXhfbG9jaygmcnRfY29uc3RyYWludHNfbXV0ZXgpOwotCWlmICghX19ydF9zY2hlZHVsYWJsZShOVUxMLCAxLCAwKSkKKwlpZiAoIV9fcnRfc2NoZWR1bGFibGUodGcsIHJ0X3BlcmlvZCwgcnRfcnVudGltZSkpCiAJCXJldCA9IC1FSU5WQUw7CiAJbXV0ZXhfdW5sb2NrKCZydF9jb25zdHJhaW50c19tdXRleCk7CiAKIAlyZXR1cm4gcmV0OwogfQotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIHN0YXRpYyBpbnQgc2NoZWRfcnRfZ2xvYmFsX2NvbnN0cmFpbnRzKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTg1MTAsNyArODg4MSw3IEBACiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiBpbnQgc2NoZWRfcnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQlzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLApAQCAtODYxOCw3ICs4OTg5LDcgQEAKIAogCXJldHVybiAodTY0KSB0Zy0+c2hhcmVzOwogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19SVF9HUk9VUF9TQ0hFRAogc3RhdGljIGludCBjcHVfcnRfcnVudGltZV93cml0ZShzdHJ1Y3QgY2dyb3VwICpjZ3JwLCBzdHJ1Y3QgY2Z0eXBlICpjZnQsCkBAIC04NjQyLDcgKzkwMTMsNyBAQAogewogCXJldHVybiBzY2hlZF9ncm91cF9ydF9wZXJpb2QoY2dyb3VwX3RnKGNncnApKTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiBzdGF0aWMgc3RydWN0IGNmdHlwZSBjcHVfZmlsZXNbXSA9IHsKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRApkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2Nsb2NrLmMgYi9rZXJuZWwvc2NoZWRfY2xvY2suYwppbmRleCBjZTA1MjcxLi4yMmVkNTVkIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfY2xvY2suYworKysgYi9rZXJuZWwvc2NoZWRfY2xvY2suYwpAQCAtMyw2ICszLDkgQEAKICAqCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFJlZCBIYXQsIEluYy4sIFBldGVyIFppamxzdHJhIDxwemlqbHN0ckByZWRoYXQuY29tPgogICoKKyAqICBVcGRhdGVzIGFuZCBlbmhhbmNlbWVudHM6CisgKiAgICBDb3B5cmlnaHQgKEMpIDIwMDggUmVkIEhhdCwgSW5jLiBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqCiAgKiBCYXNlZCBvbiBjb2RlIGJ5OgogICogICBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KICAqICAgR3VpbGxhdW1lIENoYXphcmFpbiA8Z3VpY2hhekBnbWFpbC5jb20+CkBAIC0zMiw2ICszNSwxMSBAQAogCiAjaWZkZWYgQ09ORklHX0hBVkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0sKIAorI2RlZmluZSBNVUxUSV9TSElGVCAxNQorLyogTWF4IGlzIGRvdWJsZSwgTWluIGlzIDEvMiAqLworI2RlZmluZSBNQVhfTVVMVEkgKDJMTCA8PCBNVUxUSV9TSElGVCkKKyNkZWZpbmUgTUlOX01VTFRJICgxTEwgPDwgKE1VTFRJX1NISUZULTEpKQorCiBzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSB7CiAJLyoKIAkgKiBSYXcgc3BpbmxvY2sgLSB0aGlzIGlzIGEgc3BlY2lhbCBjYXNlOiB0aGlzIG1pZ2h0IGJlIGNhbGxlZApAQCAtNDAsMTEgKzQ4LDE1IEBACiAJICovCiAJcmF3X3NwaW5sb2NrX3QJCWxvY2s7CiAKLQl1bnNpZ25lZCBsb25nCQlwcmV2X2ppZmZpZXM7CisJdW5zaWduZWQgbG9uZwkJdGlja19qaWZmaWVzOwogCXU2NAkJCXByZXZfcmF3OwogCXU2NAkJCXRpY2tfcmF3OwogCXU2NAkJCXRpY2tfZ3RvZDsKIAl1NjQJCQljbG9jazsKKwlzNjQJCQltdWx0aTsKKyNpZmRlZiBDT05GSUdfTk9fSFoKKwlpbnQJCQljaGVja19tYXg7CisjZW5kaWYKIH07CiAKIHN0YXRpYyBERUZJTkVfUEVSX0NQVV9TSEFSRURfQUxJR05FRChzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSwgc2NoZWRfY2xvY2tfZGF0YSk7CkBAIC03MSw0MSArODMsOTEgQEAKIAkJc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCA9IGNwdV9zZGMoY3B1KTsKIAogCQlzY2QtPmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOwotCQlzY2QtPnByZXZfamlmZmllcyA9IG5vd19qaWZmaWVzOworCQlzY2QtPnRpY2tfamlmZmllcyA9IG5vd19qaWZmaWVzOwogCQlzY2QtPnByZXZfcmF3ID0gMDsKIAkJc2NkLT50aWNrX3JhdyA9IDA7CiAJCXNjZC0+dGlja19ndG9kID0ga3RpbWVfbm93OwogCQlzY2QtPmNsb2NrID0ga3RpbWVfbm93OworCQlzY2QtPm11bHRpID0gMSA8PCBNVUxUSV9TSElGVDsKKyNpZmRlZiBDT05GSUdfTk9fSFoKKwkJc2NkLT5jaGVja19tYXggPSAxOworI2VuZGlmCiAJfQogCiAJc2NoZWRfY2xvY2tfcnVubmluZyA9IDE7CiB9CiAKKyNpZmRlZiBDT05GSUdfTk9fSFoKKy8qCisgKiBUaGUgZHluYW1pYyB0aWNrcyBtYWtlcyB0aGUgZGVsdGEgamlmZmllcyBpbmFjY3VyYXRlLiBUaGlzCisgKiBwcmV2ZW50cyB1cyBmcm9tIGNoZWNraW5nIHRoZSBtYXhpbXVtIHRpbWUgdXBkYXRlLgorICogRGlzYWJsZSB0aGUgbWF4aW11bSBjaGVjayBkdXJpbmcgc3RvcHBlZCB0aWNrcy4KKyAqLwordm9pZCBzY2hlZF9jbG9ja190aWNrX3N0b3AoaW50IGNwdSkKK3sKKwlzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkID0gY3B1X3NkYyhjcHUpOworCisJc2NkLT5jaGVja19tYXggPSAwOworfQorCit2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RhcnQoaW50IGNwdSkKK3sKKwlzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkID0gY3B1X3NkYyhjcHUpOworCisJc2NkLT5jaGVja19tYXggPSAxOworfQorCitzdGF0aWMgaW50IGNoZWNrX21heChzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkKQoreworCXJldHVybiBzY2QtPmNoZWNrX21heDsKK30KKyNlbHNlCitzdGF0aWMgaW50IGNoZWNrX21heChzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkKQoreworCXJldHVybiAxOworfQorI2VuZGlmIC8qIENPTkZJR19OT19IWiAqLworCiAvKgogICogdXBkYXRlIHRoZSBwZXJjcHUgc2NkIGZyb20gdGhlIHJhdyBAbm93IHZhbHVlCiAgKgogICogIC0gZmlsdGVyIG91dCBiYWNrd2FyZCBtb3Rpb24KICAqICAtIHVzZSBqaWZmaWVzIHRvIGdlbmVyYXRlIGEgbWluLG1heCB3aW5kb3cgdG8gY2xpcCB0aGUgcmF3IHZhbHVlcwogICovCi1zdGF0aWMgdm9pZCBfX3VwZGF0ZV9zY2hlZF9jbG9jayhzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkLCB1NjQgbm93KQorc3RhdGljIHZvaWQgX191cGRhdGVfc2NoZWRfY2xvY2soc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCwgdTY0IG5vdywgdTY0ICp0aW1lKQogewogCXVuc2lnbmVkIGxvbmcgbm93X2ppZmZpZXMgPSBqaWZmaWVzOwotCWxvbmcgZGVsdGFfamlmZmllcyA9IG5vd19qaWZmaWVzIC0gc2NkLT5wcmV2X2ppZmZpZXM7CisJbG9uZyBkZWx0YV9qaWZmaWVzID0gbm93X2ppZmZpZXMgLSBzY2QtPnRpY2tfamlmZmllczsKIAl1NjQgY2xvY2sgPSBzY2QtPmNsb2NrOwogCXU2NCBtaW5fY2xvY2ssIG1heF9jbG9jazsKIAlzNjQgZGVsdGEgPSBub3cgLSBzY2QtPnByZXZfcmF3OwogCiAJV0FSTl9PTl9PTkNFKCFpcnFzX2Rpc2FibGVkKCkpOwotCW1pbl9jbG9jayA9IHNjZC0+dGlja19ndG9kICsgZGVsdGFfamlmZmllcyAqIFRJQ0tfTlNFQzsKKworCS8qCisJICogQXQgc2NoZWR1bGUgdGljayB0aGUgY2xvY2sgY2FuIGJlIGp1c3QgdW5kZXIgdGhlIGd0b2QuIFdlIGRvbid0CisJICogd2FudCB0byBwdXNoIGl0IHRvbyBwcmVtYXR1cmVseS4KKwkgKi8KKwltaW5fY2xvY2sgPSBzY2QtPnRpY2tfZ3RvZCArIChkZWx0YV9qaWZmaWVzICogVElDS19OU0VDKTsKKwlpZiAobWluX2Nsb2NrID4gVElDS19OU0VDKQorCQltaW5fY2xvY2sgLT0gVElDS19OU0VDIC8gMjsKIAogCWlmICh1bmxpa2VseShkZWx0YSA8IDApKSB7CiAJCWNsb2NrKys7CiAJCWdvdG8gb3V0OwogCX0KIAotCW1heF9jbG9jayA9IG1pbl9jbG9jayArIFRJQ0tfTlNFQzsKKwkvKgorCSAqIFRoZSBjbG9jayBtdXN0IHN0YXkgd2l0aGluIGEgamlmZmllIG9mIHRoZSBndG9kLgorCSAqIEJ1dCBzaW5jZSB3ZSBtYXkgYmUgYXQgdGhlIHN0YXJ0IG9mIGEgamlmZnkgb3IgdGhlIGVuZCBvZiBvbmUKKwkgKiB3ZSBhZGQgYW5vdGhlciBqaWZmeSBidWZmZXIuCisJICovCisJbWF4X2Nsb2NrID0gc2NkLT50aWNrX2d0b2QgKyAoMiArIGRlbHRhX2ppZmZpZXMpICogVElDS19OU0VDOwogCi0JaWYgKHVubGlrZWx5KGNsb2NrICsgZGVsdGEgPiBtYXhfY2xvY2spKSB7CisJZGVsdGEgKj0gc2NkLT5tdWx0aTsKKwlkZWx0YSA+Pj0gTVVMVElfU0hJRlQ7CisKKwlpZiAodW5saWtlbHkoY2xvY2sgKyBkZWx0YSA+IG1heF9jbG9jaykgJiYgY2hlY2tfbWF4KHNjZCkpIHsKIAkJaWYgKGNsb2NrIDwgbWF4X2Nsb2NrKQogCQkJY2xvY2sgPSBtYXhfY2xvY2s7CiAJCWVsc2UKQEAgLTExOCw5ICsxODAsMTIgQEAKIAlpZiAodW5saWtlbHkoY2xvY2sgPCBtaW5fY2xvY2spKQogCQljbG9jayA9IG1pbl9jbG9jazsKIAotCXNjZC0+cHJldl9yYXcgPSBub3c7Ci0Jc2NkLT5wcmV2X2ppZmZpZXMgPSBub3dfamlmZmllczsKLQlzY2QtPmNsb2NrID0gY2xvY2s7CisJaWYgKHRpbWUpCisJCSp0aW1lID0gY2xvY2s7CisJZWxzZSB7CisJCXNjZC0+cHJldl9yYXcgPSBub3c7CisJCXNjZC0+Y2xvY2sgPSBjbG9jazsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGxvY2tfZG91YmxlX2Nsb2NrKHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpkYXRhMSwKQEAgLTE2MCwyNSArMjI1LDMwIEBACiAJCW5vdyAtPSBteV9zY2QtPnRpY2tfcmF3OwogCQlub3cgKz0gc2NkLT50aWNrX3JhdzsKIAotCQlub3cgLT0gbXlfc2NkLT50aWNrX2d0b2Q7Ci0JCW5vdyArPSBzY2QtPnRpY2tfZ3RvZDsKKwkJbm93ICs9IG15X3NjZC0+dGlja19ndG9kOworCQlub3cgLT0gc2NkLT50aWNrX2d0b2Q7CiAKIAkJX19yYXdfc3Bpbl91bmxvY2soJm15X3NjZC0+bG9jayk7CisKKwkJX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3csICZjbG9jayk7CisKKwkJX19yYXdfc3Bpbl91bmxvY2soJnNjZC0+bG9jayk7CisKIAl9IGVsc2UgewogCQlfX3Jhd19zcGluX2xvY2soJnNjZC0+bG9jayk7CisJCV9fdXBkYXRlX3NjaGVkX2Nsb2NrKHNjZCwgbm93LCBOVUxMKTsKKwkJY2xvY2sgPSBzY2QtPmNsb2NrOworCQlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIAl9CiAKLQlfX3VwZGF0ZV9zY2hlZF9jbG9jayhzY2QsIG5vdyk7Ci0JY2xvY2sgPSBzY2QtPmNsb2NrOwotCi0JX19yYXdfc3Bpbl91bmxvY2soJnNjZC0+bG9jayk7Ci0KIAlyZXR1cm4gY2xvY2s7CiB9CiAKIHZvaWQgc2NoZWRfY2xvY2tfdGljayh2b2lkKQogewogCXN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QgPSB0aGlzX3NjZCgpOworCXVuc2lnbmVkIGxvbmcgbm93X2ppZmZpZXMgPSBqaWZmaWVzOworCXM2NCBtdWx0LCBkZWx0YV9ndG9kLCBkZWx0YV9yYXc7CiAJdTY0IG5vdywgbm93X2d0b2Q7CiAKIAlpZiAodW5saWtlbHkoIXNjaGVkX2Nsb2NrX3J1bm5pbmcpKQpAQCAtMTg2LDE4ICsyNTYsMzMgQEAKIAogCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKIAotCW5vdyA9IHNjaGVkX2Nsb2NrKCk7CiAJbm93X2d0b2QgPSBrdGltZV90b19ucyhrdGltZV9nZXQoKSk7CisJbm93ID0gc2NoZWRfY2xvY2soKTsKIAogCV9fcmF3X3NwaW5fbG9jaygmc2NkLT5sb2NrKTsKLQlfX3VwZGF0ZV9zY2hlZF9jbG9jayhzY2QsIG5vdyk7CisJX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3csIE5VTEwpOwogCS8qCiAJICogdXBkYXRlIHRpY2tfZ3RvZCBhZnRlciBfX3VwZGF0ZV9zY2hlZF9jbG9jaygpIGJlY2F1c2UgdGhhdCB3aWxsCiAJICogYWxyZWFkeSBvYnNlcnZlIDEgbmV3IGppZmZ5OyBhZGRpbmcgYSBuZXcgdGlja19ndG9kIHRvIHRoYXQgd291bGQKIAkgKiBpbmNyZWFzZSB0aGUgY2xvY2sgMiBqaWZmaWVzLgogCSAqLworCWRlbHRhX2d0b2QgPSBub3dfZ3RvZCAtIHNjZC0+dGlja19ndG9kOworCWRlbHRhX3JhdyA9IG5vdyAtIHNjZC0+dGlja19yYXc7CisKKwlpZiAoKGxvbmcpZGVsdGFfcmF3ID4gMCkgeworCQltdWx0ID0gZGVsdGFfZ3RvZCA8PCBNVUxUSV9TSElGVDsKKwkJZG9fZGl2KG11bHQsIGRlbHRhX3Jhdyk7CisJCXNjZC0+bXVsdGkgPSBtdWx0OworCQlpZiAoc2NkLT5tdWx0aSA+IE1BWF9NVUxUSSkKKwkJCXNjZC0+bXVsdGkgPSBNQVhfTVVMVEk7CisJCWVsc2UgaWYgKHNjZC0+bXVsdGkgPCBNSU5fTVVMVEkpCisJCQlzY2QtPm11bHRpID0gTUlOX01VTFRJOworCX0gZWxzZQorCQlzY2QtPm11bHRpID0gMSA8PCBNVUxUSV9TSElGVDsKKwogCXNjZC0+dGlja19yYXcgPSBub3c7CiAJc2NkLT50aWNrX2d0b2QgPSBub3dfZ3RvZDsKKwlzY2QtPnRpY2tfamlmZmllcyA9IG5vd19qaWZmaWVzOwogCV9fcmF3X3NwaW5fdW5sb2NrKCZzY2QtPmxvY2spOwogfQogCkBAIC0yMjcsNiArMzEyLDcgQEAKIAlfX3Jhd19zcGluX2xvY2soJnNjZC0+bG9jayk7CiAJc2NkLT5wcmV2X3JhdyA9IG5vdzsKIAlzY2QtPmNsb2NrICs9IGRlbHRhX25zOworCXNjZC0+bXVsdGkgPSAxIDw8IE1VTFRJX1NISUZUOwogCV9fcmF3X3NwaW5fdW5sb2NrKCZzY2QtPmxvY2spOwogCiAJdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwpAQCAtMjQ0LDMgKzMzMCwxNiBAQAogewogCXJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKWppZmZpZXMgKiAoTlNFQ19QRVJfU0VDIC8gSFopOwogfQorCit1bnNpZ25lZCBsb25nIGxvbmcgY3B1X2Nsb2NrKGludCBjcHUpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGNsb2NrOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJY2xvY2sgPSBzY2hlZF9jbG9ja19jcHUoY3B1KTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gY2xvY2s7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjcHVfY2xvY2spOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2NwdXByaS5jIGIva2VybmVsL3NjaGVkX2NwdXByaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMTU0ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvc2NoZWRfY3B1cHJpLmMKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiAga2VybmVsL3NjaGVkX2NwdXByaS5jCisgKgorICogIENQVSBwcmlvcml0eSBtYW5hZ2VtZW50CisgKgorICogIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IE5vdmVsbAorICoKKyAqICBBdXRob3I6IEdyZWdvcnkgSGFza2lucyA8Z2hhc2tpbnNAbm92ZWxsLmNvbT4KKyAqCisgKiAgVGhpcyBjb2RlIHRyYWNrcyB0aGUgcHJpb3JpdHkgb2YgZWFjaCBDUFUgc28gdGhhdCBnbG9iYWwgbWlncmF0aW9uCisgKiAgZGVjaXNpb25zIGFyZSBlYXN5IHRvIGNhbGN1bGF0ZS4gIEVhY2ggQ1BVIGNhbiBiZSBpbiBhIHN0YXRlIGFzIGZvbGxvd3M6CisgKgorICogICAgICAgICAgICAgICAgIChJTlZBTElEKSwgSURMRSwgTk9STUFMLCBSVDEsIC4uLiBSVDk5CisgKgorICogIGdvaW5nIGZyb20gdGhlIGxvd2VzdCBwcmlvcml0eSB0byB0aGUgaGlnaGVzdC4gIENQVXMgaW4gdGhlIElOVkFMSUQgc3RhdGUKKyAqICBhcmUgbm90IGVsaWdpYmxlIGZvciByb3V0aW5nLiAgVGhlIHN5c3RlbSBtYWludGFpbnMgdGhpcyBzdGF0ZSB3aXRoCisgKiAgYSAyIGRpbWVuc2lvbmFsIGJpdG1hcCAodGhlIGZpcnN0IGZvciBwcmlvcml0eSBjbGFzcywgdGhlIHNlY29uZCBmb3IgY3B1cworICogIGluIHRoYXQgY2xhc3MpLiAgVGhlcmVmb3JlIGEgdHlwaWNhbCBhcHBsaWNhdGlvbiB3aXRob3V0IGFmZmluaXR5CisgKiAgcmVzdHJpY3Rpb25zIGNhbiBmaW5kIGEgc3VpdGFibGUgQ1BVIHdpdGggTygxKSBjb21wbGV4aXR5IChlLmcuIHR3byBiaXQKKyAqICBzZWFyY2hlcykuICBGb3IgdGFza3Mgd2l0aCBhZmZpbml0eSByZXN0cmljdGlvbnMsIHRoZSBhbGdvcml0aG0gaGFzIGEKKyAqICB3b3JzdCBjYXNlIGNvbXBsZXhpdHkgb2YgTyhtaW4oMTAyLCBucl9kb21jcHVzKSksIHRob3VnaCB0aGUgc2NlbmFyaW8gdGhhdAorICogIHlpZWxkcyB0aGUgd29yc3QgY2FzZSBzZWFyY2ggaXMgZmFpcmx5IGNvbnRyaXZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMgorICogIG9mIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJzY2hlZF9jcHVwcmkuaCIKKworLyogQ29udmVydCBiZXR3ZWVuIGEgMTQwIGJhc2VkIHRhc2stPnByaW8sIGFuZCBvdXIgMTAyIGJhc2VkIGNwdXByaSAqLworc3RhdGljIGludCBjb252ZXJ0X3ByaW8oaW50IHByaW8pCit7CisJaW50IGNwdXByaTsKKworCWlmIChwcmlvID09IENQVVBSSV9JTlZBTElEKQorCQljcHVwcmkgPSBDUFVQUklfSU5WQUxJRDsKKwllbHNlIGlmIChwcmlvID09IE1BWF9QUklPKQorCQljcHVwcmkgPSBDUFVQUklfSURMRTsKKwllbHNlIGlmIChwcmlvID49IE1BWF9SVF9QUklPKQorCQljcHVwcmkgPSBDUFVQUklfTk9STUFMOworCWVsc2UKKwkJY3B1cHJpID0gTUFYX1JUX1BSSU8gLSBwcmlvICsgMTsKKworCXJldHVybiBjcHVwcmk7Cit9CisKKyNkZWZpbmUgZm9yX2VhY2hfY3B1cHJpX2FjdGl2ZShhcnJheSwgaWR4KSAgICAgICAgICAgICAgICAgICAgXAorICBmb3IgKGlkeCA9IGZpbmRfZmlyc3RfYml0KGFycmF5LCBDUFVQUklfTlJfUFJJT1JJVElFUyk7ICAgICBcCisgICAgICAgaWR4IDwgQ1BVUFJJX05SX1BSSU9SSVRJRVM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBpZHggPSBmaW5kX25leHRfYml0KGFycmF5LCBDUFVQUklfTlJfUFJJT1JJVElFUywgaWR4KzEpKQorCisvKioKKyAqIGNwdXByaV9maW5kIC0gZmluZCB0aGUgYmVzdCAobG93ZXN0LXByaSkgQ1BVIGluIHRoZSBzeXN0ZW0KKyAqIEBjcDogVGhlIGNwdXByaSBjb250ZXh0CisgKiBAcDogVGhlIHRhc2sKKyAqIEBsb3dlc3RfbWFzazogQSBtYXNrIHRvIGZpbGwgaW4gd2l0aCBzZWxlY3RlZCBDUFVzCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZWNvbW1lbmRlZCBDUFVzIGFzIGNhbGN1bGF0ZWQgZHVyaW5nIHRoZQorICogY3VycmVudCBpbnZva2F0aW9uLiAgQnkgdGhlIHRpbWUgdGhlIGNhbGwgcmV0dXJucywgdGhlIENQVXMgbWF5IGhhdmUgaW4KKyAqIGZhY3QgY2hhbmdlZCBwcmlvcml0aWVzIGFueSBudW1iZXIgb2YgdGltZXMuICBXaGlsZSBub3QgaWRlYWwsIGl0IGlzIG5vdAorICogYW4gaXNzdWUgb2YgY29ycmVjdG5lc3Mgc2luY2UgdGhlIG5vcm1hbCByZWJhbGFuY2VyIGxvZ2ljIHdpbGwgY29ycmVjdAorICogYW55IGRpc2NyZXBhbmNpZXMgY3JlYXRlZCBieSByYWNpbmcgYWdhaW5zdCB0aGUgdW5jZXJ0YWludHkgb2YgdGhlIGN1cnJlbnQKKyAqIHByaW9yaXR5IGNvbmZpZ3VyYXRpb24uCisgKgorICogUmV0dXJuczogKGludClib29sIC0gQ1BVcyB3ZXJlIGZvdW5kCisgKi8KK2ludCBjcHVwcmlfZmluZChzdHJ1Y3QgY3B1cHJpICpjcCwgc3RydWN0IHRhc2tfc3RydWN0ICpwLAorCQljcHVtYXNrX3QgKmxvd2VzdF9tYXNrKQoreworCWludCAgICAgICAgICAgICAgICAgIGlkeCAgICAgID0gMDsKKwlpbnQgICAgICAgICAgICAgICAgICB0YXNrX3ByaSA9IGNvbnZlcnRfcHJpbyhwLT5wcmlvKTsKKworCWZvcl9lYWNoX2NwdXByaV9hY3RpdmUoY3AtPnByaV9hY3RpdmUsIGlkeCkgeworCQlzdHJ1Y3QgY3B1cHJpX3ZlYyAqdmVjICA9ICZjcC0+cHJpX3RvX2NwdVtpZHhdOworCQljcHVtYXNrX3QgbWFzazsKKworCQlpZiAoaWR4ID49IHRhc2tfcHJpKQorCQkJYnJlYWs7CisKKwkJY3B1c19hbmQobWFzaywgcC0+Y3B1c19hbGxvd2VkLCB2ZWMtPm1hc2spOworCisJCWlmIChjcHVzX2VtcHR5KG1hc2spKQorCQkJY29udGludWU7CisKKwkJKmxvd2VzdF9tYXNrID0gbWFzazsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogY3B1cHJpX3NldCAtIHVwZGF0ZSB0aGUgY3B1IHByaW9yaXR5IHNldHRpbmcKKyAqIEBjcDogVGhlIGNwdXByaSBjb250ZXh0CisgKiBAY3B1OiBUaGUgdGFyZ2V0IGNwdQorICogQHByaTogVGhlIHByaW9yaXR5IChJTlZBTElELVJUOTkpIHRvIGFzc2lnbiB0byB0aGlzIENQVQorICoKKyAqIE5vdGU6IEFzc3VtZXMgY3B1X3JxKGNwdSktPmxvY2sgaXMgbG9ja2VkCisgKgorICogUmV0dXJuczogKHZvaWQpCisgKi8KK3ZvaWQgY3B1cHJpX3NldChzdHJ1Y3QgY3B1cHJpICpjcCwgaW50IGNwdSwgaW50IG5ld3ByaSkKK3sKKwlpbnQgICAgICAgICAgICAgICAgICpjdXJycHJpID0gJmNwLT5jcHVfdG9fcHJpW2NwdV07CisJaW50ICAgICAgICAgICAgICAgICAgb2xkcHJpICA9ICpjdXJycHJpOworCXVuc2lnbmVkIGxvbmcgICAgICAgIGZsYWdzOworCisJbmV3cHJpID0gY29udmVydF9wcmlvKG5ld3ByaSk7CisKKwlCVUdfT04obmV3cHJpID49IENQVVBSSV9OUl9QUklPUklUSUVTKTsKKworCWlmIChuZXdwcmkgPT0gb2xkcHJpKQorCQlyZXR1cm47CisKKwkvKgorCSAqIElmIHRoZSBjcHUgd2FzIGN1cnJlbnRseSBtYXBwZWQgdG8gYSBkaWZmZXJlbnQgdmFsdWUsIHdlCisJICogZmlyc3QgbmVlZCB0byB1bm1hcCB0aGUgb2xkIHZhbHVlCisJICovCisJaWYgKGxpa2VseShvbGRwcmkgIT0gQ1BVUFJJX0lOVkFMSUQpKSB7CisJCXN0cnVjdCBjcHVwcmlfdmVjICp2ZWMgID0gJmNwLT5wcmlfdG9fY3B1W29sZHByaV07CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnZlYy0+bG9jaywgZmxhZ3MpOworCisJCXZlYy0+Y291bnQtLTsKKwkJaWYgKCF2ZWMtPmNvdW50KQorCQkJY2xlYXJfYml0KG9sZHByaSwgY3AtPnByaV9hY3RpdmUpOworCQljcHVfY2xlYXIoY3B1LCB2ZWMtPm1hc2spOworCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlYy0+bG9jaywgZmxhZ3MpOworCX0KKworCWlmIChsaWtlbHkobmV3cHJpICE9IENQVVBSSV9JTlZBTElEKSkgeworCQlzdHJ1Y3QgY3B1cHJpX3ZlYyAqdmVjID0gJmNwLT5wcmlfdG9fY3B1W25ld3ByaV07CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnZlYy0+bG9jaywgZmxhZ3MpOworCisJCWNwdV9zZXQoY3B1LCB2ZWMtPm1hc2spOworCQl2ZWMtPmNvdW50Kys7CisJCWlmICh2ZWMtPmNvdW50ID09IDEpCisJCQlzZXRfYml0KG5ld3ByaSwgY3AtPnByaV9hY3RpdmUpOworCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlYy0+bG9jaywgZmxhZ3MpOworCX0KKworCSpjdXJycHJpID0gbmV3cHJpOworfQorCisvKioKKyAqIGNwdXByaV9pbml0IC0gaW5pdGlhbGl6ZSB0aGUgY3B1cHJpIHN0cnVjdHVyZQorICogQGNwOiBUaGUgY3B1cHJpIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zOiAodm9pZCkKKyAqLwordm9pZCBjcHVwcmlfaW5pdChzdHJ1Y3QgY3B1cHJpICpjcCkKK3sKKwlpbnQgaTsKKworCW1lbXNldChjcCwgMCwgc2l6ZW9mKCpjcCkpOworCisJZm9yIChpID0gMDsgaSA8IENQVVBSSV9OUl9QUklPUklUSUVTOyBpKyspIHsKKwkJc3RydWN0IGNwdXByaV92ZWMgKnZlYyA9ICZjcC0+cHJpX3RvX2NwdVtpXTsKKworCQlzcGluX2xvY2tfaW5pdCgmdmVjLT5sb2NrKTsKKwkJdmVjLT5jb3VudCA9IDA7CisJCWNwdXNfY2xlYXIodmVjLT5tYXNrKTsKKwl9CisKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKKwkJY3AtPmNwdV90b19wcmlbaV0gPSBDUFVQUklfSU5WQUxJRDsKK30KKworCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfY3B1cHJpLmggYi9rZXJuZWwvc2NoZWRfY3B1cHJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1ODExYjAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvc2NoZWRfY3B1cHJpLmgKQEAgLTAsMCArMSwzNiBAQAorI2lmbmRlZiBfTElOVVhfQ1BVUFJJX0gKKyNkZWZpbmUgX0xJTlVYX0NQVVBSSV9ICisKKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorCisjZGVmaW5lIENQVVBSSV9OUl9QUklPUklUSUVTCShNQVhfUlRfUFJJTyArIDIpCisjZGVmaW5lIENQVVBSSV9OUl9QUklfV09SRFMJQklUU19UT19MT05HUyhDUFVQUklfTlJfUFJJT1JJVElFUykKKworI2RlZmluZSBDUFVQUklfSU5WQUxJRCAtMQorI2RlZmluZSBDUFVQUklfSURMRSAgICAgMAorI2RlZmluZSBDUFVQUklfTk9STUFMICAgMQorLyogdmFsdWVzIDItMTAxIGFyZSBSVCBwcmlvcml0aWVzIDAtOTkgKi8KKworc3RydWN0IGNwdXByaV92ZWMgeworCXNwaW5sb2NrX3QgbG9jazsKKwlpbnQgICAgICAgIGNvdW50OworCWNwdW1hc2tfdCAgbWFzazsKK307CisKK3N0cnVjdCBjcHVwcmkgeworCXN0cnVjdCBjcHVwcmlfdmVjIHByaV90b19jcHVbQ1BVUFJJX05SX1BSSU9SSVRJRVNdOworCWxvbmcgICAgICAgICAgICAgIHByaV9hY3RpdmVbQ1BVUFJJX05SX1BSSV9XT1JEU107CisJaW50ICAgICAgICAgICAgICAgY3B1X3RvX3ByaVtOUl9DUFVTXTsKK307CisKKyNpZmRlZiBDT05GSUdfU01QCitpbnQgIGNwdXByaV9maW5kKHN0cnVjdCBjcHVwcmkgKmNwLAorCQkgc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjcHVtYXNrX3QgKmxvd2VzdF9tYXNrKTsKK3ZvaWQgY3B1cHJpX3NldChzdHJ1Y3QgY3B1cHJpICpjcCwgaW50IGNwdSwgaW50IHByaSk7Cit2b2lkIGNwdXByaV9pbml0KHN0cnVjdCBjcHVwcmkgKmNwKTsKKyNlbHNlCisjZGVmaW5lIGNwdXByaV9zZXQoY3AsIGNwdSwgcHJpKSBkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGNwdXByaV9pbml0KCkgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNlbmRpZiAvKiBfTElOVVhfQ1BVUFJJX0ggKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jIGIva2VybmVsL3NjaGVkX2RlYnVnLmMKaW5kZXggOGJiNzEzMC4uYmJlNmIzMSAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkX2RlYnVnLmMKKysrIGIva2VybmVsL3NjaGVkX2RlYnVnLmMKQEAgLTExOSw5ICsxMTksNyBAQAogCXN0cnVjdCBzY2hlZF9lbnRpdHkgKmxhc3Q7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotI2lmICFkZWZpbmVkKENPTkZJR19DR1JPVVBfU0NIRUQpIHx8ICFkZWZpbmVkKENPTkZJR19VU0VSX1NDSEVEKQotCVNFUV9wcmludGYobSwgIlxuY2ZzX3JxWyVkXTpcbiIsIGNwdSk7Ci0jZWxzZQorI2lmIGRlZmluZWQoQ09ORklHX0NHUk9VUF9TQ0hFRCkgJiYgZGVmaW5lZChDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCkKIAljaGFyIHBhdGhbMTI4XSA9ICIiOwogCXN0cnVjdCBjZ3JvdXAgKmNncm91cCA9IE5VTEw7CiAJc3RydWN0IHRhc2tfZ3JvdXAgKnRnID0gY2ZzX3JxLT50ZzsKQEAgLTEzMyw2ICsxMzEsOCBAQAogCQljZ3JvdXBfcGF0aChjZ3JvdXAsIHBhdGgsIHNpemVvZihwYXRoKSk7CiAKIAlTRVFfcHJpbnRmKG0sICJcbmNmc19ycVslZF06JXNcbiIsIGNwdSwgcGF0aCk7CisjZWxzZQorCVNFUV9wcmludGYobSwgIlxuY2ZzX3JxWyVkXTpcbiIsIGNwdSk7CiAjZW5kaWYKIAogCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlTGQuJTA2bGRcbiIsICJleGVjX2Nsb2NrIiwKQEAgLTE2MiwxMSArMTYyLDY0IEBACiAJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVsZFxuIiwgIm5yX3J1bm5pbmciLCBjZnNfcnEtPm5yX3J1bm5pbmcpOwogCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlbGRcbiIsICJsb2FkIiwgY2ZzX3JxLT5sb2FkLndlaWdodCk7CiAjaWZkZWYgQ09ORklHX1NDSEVEU1RBVFMKLQlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWRcbiIsICJia2xfY291bnQiLAotCQkJcnEtPmJrbF9jb3VudCk7CisjZGVmaW5lIFAobikgU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVkXG4iLCAjbiwgcnEtPm4pOworCisJUCh5bGRfZXhwX2VtcHR5KTsKKwlQKHlsZF9hY3RfZW1wdHkpOworCVAoeWxkX2JvdGhfZW1wdHkpOworCVAoeWxkX2NvdW50KTsKKworCVAoc2NoZWRfc3dpdGNoKTsKKwlQKHNjaGVkX2NvdW50KTsKKwlQKHNjaGVkX2dvaWRsZSk7CisKKwlQKHR0d3VfY291bnQpOworCVAodHR3dV9sb2NhbCk7CisKKwlQKGJrbF9jb3VudCk7CisKKyN1bmRlZiBQCiAjZW5kaWYKIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWxkXG4iLCAibnJfc3ByZWFkX292ZXIiLAogCQkJY2ZzX3JxLT5ucl9zcHJlYWRfb3Zlcik7CisjaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKKyNpZmRlZiBDT05GSUdfU01QCisJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVsdVxuIiwgInNoYXJlcyIsIGNmc19ycS0+c2hhcmVzKTsKKyNlbmRpZgorI2VuZGlmCit9CisKK3ZvaWQgcHJpbnRfcnRfcnEoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1LCBzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQoreworI2lmIGRlZmluZWQoQ09ORklHX0NHUk9VUF9TQ0hFRCkgJiYgZGVmaW5lZChDT05GSUdfUlRfR1JPVVBfU0NIRUQpCisJY2hhciBwYXRoWzEyOF0gPSAiIjsKKwlzdHJ1Y3QgY2dyb3VwICpjZ3JvdXAgPSBOVUxMOworCXN0cnVjdCB0YXNrX2dyb3VwICp0ZyA9IHJ0X3JxLT50ZzsKKworCWlmICh0ZykKKwkJY2dyb3VwID0gdGctPmNzcy5jZ3JvdXA7CisKKwlpZiAoY2dyb3VwKQorCQljZ3JvdXBfcGF0aChjZ3JvdXAsIHBhdGgsIHNpemVvZihwYXRoKSk7CisKKwlTRVFfcHJpbnRmKG0sICJcbnJ0X3JxWyVkXTolc1xuIiwgY3B1LCBwYXRoKTsKKyNlbHNlCisJU0VRX3ByaW50ZihtLCAiXG5ydF9ycVslZF06XG4iLCBjcHUpOworI2VuZGlmCisKKworI2RlZmluZSBQKHgpIFwKKwlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJUxkXG4iLCAjeCwgKGxvbmcgbG9uZykocnRfcnEtPngpKQorI2RlZmluZSBQTih4KSBcCisJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVMZC4lMDZsZFxuIiwgI3gsIFNQTElUX05TKHJ0X3JxLT54KSkKKworCVAocnRfbnJfcnVubmluZyk7CisJUChydF90aHJvdHRsZWQpOworCVBOKHJ0X3RpbWUpOworCVBOKHJ0X3J1bnRpbWUpOworCisjdW5kZWYgUE4KKyN1bmRlZiBQCiB9CiAKIHN0YXRpYyB2b2lkIHByaW50X2NwdShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBjcHUpCkBAIC0yMDgsNiArMjYxLDcgQEAKICN1bmRlZiBQTgogCiAJcHJpbnRfY2ZzX3N0YXRzKG0sIGNwdSk7CisJcHJpbnRfcnRfc3RhdHMobSwgY3B1KTsKIAogCXByaW50X3JxKG0sIHJxLCBjcHUpOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2ZhaXIuYyBiL2tlcm5lbC9zY2hlZF9mYWlyLmMKaW5kZXggMDhhZTg0OC4uZjJhYTk4NyAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkX2ZhaXIuYworKysgYi9rZXJuZWwvc2NoZWRfZmFpci5jCkBAIC02MywxMyArNjMsMTMgQEAKIAogLyoKICAqIFNDSEVEX09USEVSIHdha2UtdXAgZ3JhbnVsYXJpdHkuCi0gKiAoZGVmYXVsdDogMTAgbXNlYyAqICgxICsgaWxvZyhuY3B1cykpLCB1bml0czogbmFub3NlY29uZHMpCisgKiAoZGVmYXVsdDogNSBtc2VjICogKDEgKyBpbG9nKG5jcHVzKSksIHVuaXRzOiBuYW5vc2Vjb25kcykKICAqCiAgKiBUaGlzIG9wdGlvbiBkZWxheXMgdGhlIHByZWVtcHRpb24gZWZmZWN0cyBvZiBkZWNvdXBsZWQgd29ya2xvYWRzCiAgKiBhbmQgcmVkdWNlcyB0aGVpciBvdmVyLXNjaGVkdWxpbmcuIFN5bmNocm9ub3VzIHdvcmtsb2FkcyB3aWxsIHN0aWxsCiAgKiBoYXZlIGltbWVkaWF0ZSB3YWtldXAvc2xlZXAgbGF0ZW5jaWVzLgogICovCi11bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX3dha2V1cF9ncmFudWxhcml0eSA9IDEwMDAwMDAwVUw7Cit1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX3dha2V1cF9ncmFudWxhcml0eSA9IDUwMDAwMDBVTDsKIAogY29uc3RfZGVidWcgdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdCA9IDUwMDAwMFVMOwogCkBAIC0zMzQsNiArMzM0LDM0IEBACiAjZW5kaWYKIAogLyoKKyAqIGRlbHRhICo9IHcgLyBydworICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKK2NhbGNfZGVsdGFfd2VpZ2h0KHVuc2lnbmVkIGxvbmcgZGVsdGEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQoreworCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgeworCQlkZWx0YSA9IGNhbGNfZGVsdGFfbWluZShkZWx0YSwKKwkJCQlzZS0+bG9hZC53ZWlnaHQsICZjZnNfcnFfb2Yoc2UpLT5sb2FkKTsKKwl9CisKKwlyZXR1cm4gZGVsdGE7Cit9CisKKy8qCisgKiBkZWx0YSAqPSBydyAvIHcKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCitjYWxjX2RlbHRhX2ZhaXIodW5zaWduZWQgbG9uZyBkZWx0YSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCit7CisJZm9yX2VhY2hfc2NoZWRfZW50aXR5KHNlKSB7CisJCWRlbHRhID0gY2FsY19kZWx0YV9taW5lKGRlbHRhLAorCQkJCWNmc19ycV9vZihzZSktPmxvYWQud2VpZ2h0LCAmc2UtPmxvYWQpOworCX0KKworCXJldHVybiBkZWx0YTsKK30KKworLyoKICAqIFRoZSBpZGVhIGlzIHRvIHNldCBhIHBlcmlvZCBpbiB3aGljaCBlYWNoIHRhc2sgcnVucyBvbmNlLgogICoKICAqIFdoZW4gdGhlcmUgYXJlIHRvbyBtYW55IHRhc2tzIChzeXNjdGxfc2NoZWRfbnJfbGF0ZW5jeSkgd2UgaGF2ZSB0byBzdHJldGNoCkBAIC0zNjIsNDcgKzM5MCw4MCBAQAogICovCiBzdGF0aWMgdTY0IHNjaGVkX3NsaWNlKHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCiB7Ci0JdTY0IHNsaWNlID0gX19zY2hlZF9wZXJpb2QoY2ZzX3JxLT5ucl9ydW5uaW5nKTsKLQotCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgewotCQljZnNfcnEgPSBjZnNfcnFfb2Yoc2UpOwotCi0JCXNsaWNlICo9IHNlLT5sb2FkLndlaWdodDsKLQkJZG9fZGl2KHNsaWNlLCBjZnNfcnEtPmxvYWQud2VpZ2h0KTsKLQl9Ci0KLQotCXJldHVybiBzbGljZTsKKwlyZXR1cm4gY2FsY19kZWx0YV93ZWlnaHQoX19zY2hlZF9wZXJpb2QoY2ZzX3JxLT5ucl9ydW5uaW5nKSwgc2UpOwogfQogCiAvKgogICogV2UgY2FsY3VsYXRlIHRoZSB2cnVudGltZSBzbGljZSBvZiBhIHRvIGJlIGluc2VydGVkIHRhc2sKICAqCi0gKiB2cyA9IHMvdyA9IHAvcncKKyAqIHZzID0gcypydy93ID0gcAogICovCiBzdGF0aWMgdTY0IHNjaGVkX3ZzbGljZV9hZGQoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSkKIHsKIAl1bnNpZ25lZCBsb25nIG5yX3J1bm5pbmcgPSBjZnNfcnEtPm5yX3J1bm5pbmc7Ci0JdW5zaWduZWQgbG9uZyB3ZWlnaHQ7Ci0JdTY0IHZzbGljZTsKIAogCWlmICghc2UtPm9uX3JxKQogCQlucl9ydW5uaW5nKys7CiAKLQl2c2xpY2UgPSBfX3NjaGVkX3BlcmlvZChucl9ydW5uaW5nKTsKKwlyZXR1cm4gX19zY2hlZF9wZXJpb2QobnJfcnVubmluZyk7Cit9CisKKy8qCisgKiBUaGUgZ29hbCBvZiBjYWxjX2RlbHRhX2FzeW0oKSBpcyB0byBiZSBhc3ltbWV0cmljYWxseSBhcm91bmQgTklDRV8wX0xPQUQsIGluCisgKiB0aGF0IGl0IGZhdm91cnMgPj0wIG92ZXIgPDAuCisgKgorICogICAtMjAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgIHwKKyAqICAgICAwIC0tLS0tLS0tKy0tLS0tLS0KKyAqICAgICAgICAgICAgIC4nCisgKiAgICAxOSAgICAgLicKKyAqCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCitjYWxjX2RlbHRhX2FzeW0odW5zaWduZWQgbG9uZyBkZWx0YSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCit7CisJc3RydWN0IGxvYWRfd2VpZ2h0IGx3ID0geworCQkud2VpZ2h0ID0gTklDRV8wX0xPQUQsCisJCS5pbnZfd2VpZ2h0ID0gMVVMIDw8IChXTVVMVF9TSElGVC1OSUNFXzBfU0hJRlQpCisJfTsKIAogCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgewotCQljZnNfcnEgPSBjZnNfcnFfb2Yoc2UpOworCQlzdHJ1Y3QgbG9hZF93ZWlnaHQgKnNlX2x3ID0gJnNlLT5sb2FkOworCQl1bnNpZ25lZCBsb25nIHJ3ID0gY2ZzX3JxX29mKHNlKS0+bG9hZC53ZWlnaHQ7CiAKLQkJd2VpZ2h0ID0gY2ZzX3JxLT5sb2FkLndlaWdodDsKLQkJaWYgKCFzZS0+b25fcnEpCi0JCQl3ZWlnaHQgKz0gc2UtPmxvYWQud2VpZ2h0OworI2lmZGVmIENPTkZJR19GQUlSX1NDSEVEX0dST1VQCisJCXN0cnVjdCBjZnNfcnEgKmNmc19ycSA9IHNlLT5teV9xOworCQlzdHJ1Y3QgdGFza19ncm91cCAqdGcgPSBOVUxMCiAKLQkJdnNsaWNlICo9IE5JQ0VfMF9MT0FEOwotCQlkb19kaXYodnNsaWNlLCB3ZWlnaHQpOworCQlpZiAoY2ZzX3JxKQorCQkJdGcgPSBjZnNfcnEtPnRnOworCisJCWlmICh0ZyAmJiB0Zy0+c2hhcmVzIDwgTklDRV8wX0xPQUQpIHsKKwkJCS8qCisJCQkgKiBzY2FsZSBzaGFyZXMgdG8gd2hhdCBpdCB3b3VsZCBoYXZlIGJlZW4gaGFkCisJCQkgKiB0Zy0+d2VpZ2h0IGJlZW4gTklDRV8wX0xPQUQ6CisJCQkgKgorCQkJICogICB3ZWlnaHQgPSAxMDI0ICogc2hhcmVzIC8gdGctPndlaWdodAorCQkJICovCisJCQlsdy53ZWlnaHQgKj0gc2UtPmxvYWQud2VpZ2h0OworCQkJbHcud2VpZ2h0IC89IHRnLT5zaGFyZXM7CisKKwkJCWx3Lmludl93ZWlnaHQgPSAwOworCisJCQlzZV9sdyA9ICZsdzsKKwkJCXJ3ICs9IGx3LndlaWdodCAtIHNlLT5sb2FkLndlaWdodDsKKwkJfSBlbHNlCisjZW5kaWYKKworCQlpZiAoc2UtPmxvYWQud2VpZ2h0IDwgTklDRV8wX0xPQUQpIHsKKwkJCXNlX2x3ID0gJmx3OworCQkJcncgKz0gTklDRV8wX0xPQUQgLSBzZS0+bG9hZC53ZWlnaHQ7CisJCX0KKworCQlkZWx0YSA9IGNhbGNfZGVsdGFfbWluZShkZWx0YSwgcncsIHNlX2x3KTsKIAl9CiAKLQlyZXR1cm4gdnNsaWNlOworCXJldHVybiBkZWx0YTsKIH0KIAogLyoKQEAgLTQxOSwxMSArNDgwLDcgQEAKIAogCWN1cnItPnN1bV9leGVjX3J1bnRpbWUgKz0gZGVsdGFfZXhlYzsKIAlzY2hlZHN0YXRfYWRkKGNmc19ycSwgZXhlY19jbG9jaywgZGVsdGFfZXhlYyk7Ci0JZGVsdGFfZXhlY193ZWlnaHRlZCA9IGRlbHRhX2V4ZWM7Ci0JaWYgKHVubGlrZWx5KGN1cnItPmxvYWQud2VpZ2h0ICE9IE5JQ0VfMF9MT0FEKSkgewotCQlkZWx0YV9leGVjX3dlaWdodGVkID0gY2FsY19kZWx0YV9mYWlyKGRlbHRhX2V4ZWNfd2VpZ2h0ZWQsCi0JCQkJCQkJJmN1cnItPmxvYWQpOwotCX0KKwlkZWx0YV9leGVjX3dlaWdodGVkID0gY2FsY19kZWx0YV9mYWlyKGRlbHRhX2V4ZWMsIGN1cnIpOwogCWN1cnItPnZydW50aW1lICs9IGRlbHRhX2V4ZWNfd2VpZ2h0ZWQ7CiB9CiAKQEAgLTUxMCwxMCArNTY3LDI3IEBACiAgKiBTY2hlZHVsaW5nIGNsYXNzIHF1ZXVlaW5nIG1ldGhvZHM6CiAgKi8KIAorI2lmIGRlZmluZWQgQ09ORklHX1NNUCAmJiBkZWZpbmVkIENPTkZJR19GQUlSX0dST1VQX1NDSEVECitzdGF0aWMgdm9pZAorYWRkX2Nmc190YXNrX3dlaWdodChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHVuc2lnbmVkIGxvbmcgd2VpZ2h0KQoreworCWNmc19ycS0+dGFza193ZWlnaHQgKz0gd2VpZ2h0OworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorYWRkX2Nmc190YXNrX3dlaWdodChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHVuc2lnbmVkIGxvbmcgd2VpZ2h0KQoreworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkCiBhY2NvdW50X2VudGl0eV9lbnF1ZXVlKHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCiB7CiAJdXBkYXRlX2xvYWRfYWRkKCZjZnNfcnEtPmxvYWQsIHNlLT5sb2FkLndlaWdodCk7CisJaWYgKCFwYXJlbnRfZW50aXR5KHNlKSkKKwkJaW5jX2NwdV9sb2FkKHJxX29mKGNmc19ycSksIHNlLT5sb2FkLndlaWdodCk7CisJaWYgKGVudGl0eV9pc190YXNrKHNlKSkKKwkJYWRkX2Nmc190YXNrX3dlaWdodChjZnNfcnEsIHNlLT5sb2FkLndlaWdodCk7CiAJY2ZzX3JxLT5ucl9ydW5uaW5nKys7CiAJc2UtPm9uX3JxID0gMTsKIAlsaXN0X2FkZCgmc2UtPmdyb3VwX25vZGUsICZjZnNfcnEtPnRhc2tzKTsKQEAgLTUyMyw2ICs1OTcsMTAgQEAKIGFjY291bnRfZW50aXR5X2RlcXVldWUoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSkKIHsKIAl1cGRhdGVfbG9hZF9zdWIoJmNmc19ycS0+bG9hZCwgc2UtPmxvYWQud2VpZ2h0KTsKKwlpZiAoIXBhcmVudF9lbnRpdHkoc2UpKQorCQlkZWNfY3B1X2xvYWQocnFfb2YoY2ZzX3JxKSwgc2UtPmxvYWQud2VpZ2h0KTsKKwlpZiAoZW50aXR5X2lzX3Rhc2soc2UpKQorCQlhZGRfY2ZzX3Rhc2tfd2VpZ2h0KGNmc19ycSwgLXNlLT5sb2FkLndlaWdodCk7CiAJY2ZzX3JxLT5ucl9ydW5uaW5nLS07CiAJc2UtPm9uX3JxID0gMDsKIAlsaXN0X2RlbF9pbml0KCZzZS0+Z3JvdXBfbm9kZSk7CkBAIC02MDksOCArNjg3LDE3IEBACiAKIAlpZiAoIWluaXRpYWwpIHsKIAkJLyogc2xlZXBzIHVwdG8gYSBzaW5nbGUgbGF0ZW5jeSBkb24ndCBjb3VudC4gKi8KLQkJaWYgKHNjaGVkX2ZlYXQoTkVXX0ZBSVJfU0xFRVBFUlMpKQotCQkJdnJ1bnRpbWUgLT0gc3lzY3RsX3NjaGVkX2xhdGVuY3k7CisJCWlmIChzY2hlZF9mZWF0KE5FV19GQUlSX1NMRUVQRVJTKSkgeworCQkJdW5zaWduZWQgbG9uZyB0aHJlc2ggPSBzeXNjdGxfc2NoZWRfbGF0ZW5jeTsKKworCQkJLyoKKwkJCSAqIGNvbnZlcnQgdGhlIHNsZWVwZXIgdGhyZXNob2xkIGludG8gdmlydHVhbCB0aW1lCisJCQkgKi8KKwkJCWlmIChzY2hlZF9mZWF0KE5PUk1BTElaRURfU0xFRVBFUikpCisJCQkJdGhyZXNoID0gY2FsY19kZWx0YV9mYWlyKHRocmVzaCwgc2UpOworCisJCQl2cnVudGltZSAtPSB0aHJlc2g7CisJCX0KIAogCQkvKiBlbnN1cmUgd2UgbmV2ZXIgZ2FpbiB0aW1lIGJ5IGJlaW5nIHBsYWNlZCBiYWNrd2FyZHMuICovCiAJCXZydW50aW1lID0gbWF4X3ZydW50aW1lKHNlLT52cnVudGltZSwgdnJ1bnRpbWUpOwpAQCAtNjM5LDIxICs3MjYsNiBAQAogCQlfX2VucXVldWVfZW50aXR5KGNmc19ycSwgc2UpOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfYXZnKHU2NCAqYXZnLCB1NjQgc2FtcGxlKQotewotCXM2NCBkaWZmID0gc2FtcGxlIC0gKmF2ZzsKLQkqYXZnICs9IGRpZmYgPj4gMzsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX2F2Z19zdGF0cyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQotewotCWlmICghc2UtPmxhc3Rfd2FrZXVwKQotCQlyZXR1cm47Ci0KLQl1cGRhdGVfYXZnKCZzZS0+YXZnX292ZXJsYXAsIHNlLT5zdW1fZXhlY19ydW50aW1lIC0gc2UtPmxhc3Rfd2FrZXVwKTsKLQlzZS0+bGFzdF93YWtldXAgPSAwOwotfQotCiBzdGF0aWMgdm9pZAogZGVxdWV1ZV9lbnRpdHkoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSwgaW50IHNsZWVwKQogewpAQCAtNjY0LDcgKzczNiw2IEBACiAKIAl1cGRhdGVfc3RhdHNfZGVxdWV1ZShjZnNfcnEsIHNlKTsKIAlpZiAoc2xlZXApIHsKLQkJdXBkYXRlX2F2Z19zdGF0cyhjZnNfcnEsIHNlKTsKICNpZmRlZiBDT05GSUdfU0NIRURTVEFUUwogCQlpZiAoZW50aXR5X2lzX3Rhc2soc2UpKSB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IHRhc2tfb2Yoc2UpOwpAQCAtNzI2LDE3ICs3OTcsMTYgQEAKIAlzZS0+cHJldl9zdW1fZXhlY19ydW50aW1lID0gc2UtPnN1bV9leGVjX3J1bnRpbWU7CiB9CiAKLXN0YXRpYyBpbnQKLXdha2V1cF9wcmVlbXB0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpjdXJyLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSk7Ci0KIHN0YXRpYyBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICoKIHBpY2tfbmV4dChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQogewotCWlmICghY2ZzX3JxLT5uZXh0KQotCQlyZXR1cm4gc2U7CisJc3RydWN0IHJxICpycSA9IHJxX29mKGNmc19ycSk7CisJdTY0IHBhaXJfc2xpY2UgPSBycS0+Y2xvY2sgLSBjZnNfcnEtPnBhaXJfc3RhcnQ7CiAKLQlpZiAod2FrZXVwX3ByZWVtcHRfZW50aXR5KGNmc19ycS0+bmV4dCwgc2UpICE9IDApCisJaWYgKCFjZnNfcnEtPm5leHQgfHwgcGFpcl9zbGljZSA+IHNjaGVkX3NsaWNlKGNmc19ycSwgY2ZzX3JxLT5uZXh0KSkgeworCQljZnNfcnEtPnBhaXJfc3RhcnQgPSBycS0+Y2xvY2s7CiAJCXJldHVybiBzZTsKKwl9CiAKIAlyZXR1cm4gY2ZzX3JxLT5uZXh0OwogfQpAQCAtODM1LDcgKzkwNSw3IEBACiAJCWhydGlja19zdGFydChycSwgZGVsdGEsIHJlcXVldWUpOwogCX0KIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1NDSEVEX0hSVElDSyAqLwogc3RhdGljIGlubGluZSB2b2lkCiBocnRpY2tfc3RhcnRfZmFpcihzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiB7CkBAIC05NzYsNyArMTA0Niw3IEBACiAJfQogCXJldHVybiBjcHU7CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUFSQ0hfSEFTX1NDSEVEX1dBS0VfSURMRSovCiBzdGF0aWMgaW5saW5lIGludCB3YWtlX2lkbGUoaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewogCXJldHVybiBjcHU7CkBAIC05ODcsNiArMTA1Nyw4OSBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkX2NsYXNzIGZhaXJfc2NoZWRfY2xhc3M7CiAKKyNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAorLyoKKyAqIGVmZmVjdGl2ZV9sb2FkKCkgY2FsY3VsYXRlcyB0aGUgbG9hZCBjaGFuZ2UgYXMgc2VlbiBmcm9tIHRoZSByb290X3Rhc2tfZ3JvdXAKKyAqCisgKiBBZGRpbmcgbG9hZCB0byBhIGdyb3VwIGRvZXNuJ3QgbWFrZSBhIGdyb3VwIGhlYXZpZXIsIGJ1dCBjYW4gY2F1c2UgbW92ZW1lbnQKKyAqIG9mIGdyb3VwIHNoYXJlcyBiZXR3ZWVuIGNwdXMuIEFzc3VtaW5nIHRoZSBzaGFyZXMgd2VyZSBwZXJmZWN0bHkgYWxpZ25lZCBvbmUKKyAqIGNhbiBjYWxjdWxhdGUgdGhlIHNoaWZ0IGluIHNoYXJlcy4KKyAqCisgKiBUaGUgcHJvYmxlbSBpcyB0aGF0IHBlcmZlY3RseSBhbGlnbmluZyB0aGUgc2hhcmVzIGlzIHJhdGhlciBleHBlbnNpdmUsIGhlbmNlCisgKiB3ZSB0cnkgdG8gYXZvaWQgZG9pbmcgdGhhdCB0b28gb2Z0ZW4gLSBzZWUgdXBkYXRlX3NoYXJlcygpLCB3aGljaCByYXRlbGltaXRzCisgKiB0aGlzIGNoYW5nZS4KKyAqCisgKiBXZSBjb21wZW5zYXRlIHRoaXMgYnkgbm90IG9ubHkgdGFraW5nIHRoZSBjdXJyZW50IGRlbHRhIGludG8gYWNjb3VudCwgYnV0CisgKiBhbHNvIGNvbnNpZGVyaW5nIHRoZSBkZWx0YSBiZXR3ZWVuIHdoZW4gdGhlIHNoYXJlcyB3ZXJlIGxhc3QgYWRqdXN0ZWQgYW5kCisgKiBub3cuCisgKgorICogV2Ugc3RpbGwgc2F3IGEgcGVyZm9ybWFuY2UgZGlwLCBzb21lIHRyYWNpbmcgbGVhcm5lZCB1cyB0aGF0IGJldHdlZW4KKyAqIGNncm91cDovIGFuZCBjZ3JvdXA6L2ZvbyBiYWxhbmNpbmcgdGhlIG51bWJlciBvZiBhZmZpbmUgd2FrZXVwcyBpbmNyZWFzZWQKKyAqIHNpZ25pZmljYW50bHkuIFRoZXJlZm9yZSB0cnkgdG8gYmlhcyB0aGUgZXJyb3IgaW4gZGlyZWN0aW9uIG9mIGZhaWxpbmcKKyAqIHRoZSBhZmZpbmUgd2FrZXVwLgorICoKKyAqLworc3RhdGljIGxvbmcgZWZmZWN0aXZlX2xvYWQoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LAorCQlsb25nIHdsLCBsb25nIHdnKQoreworCXN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlID0gdGctPnNlW2NwdV07CisJbG9uZyBtb3JlX3c7CisKKwlpZiAoIXRnLT5wYXJlbnQpCisJCXJldHVybiB3bDsKKworCS8qCisJICogQnkgbm90IHRha2luZyB0aGUgZGVjcmVhc2Ugb2Ygc2hhcmVzIG9uIHRoZSBvdGhlciBjcHUgaW50bworCSAqIGFjY291bnQgb3VyIGVycm9yIGxlYW5zIHRvd2FyZHMgcmVkdWNpbmcgdGhlIGFmZmluZSB3YWtldXBzLgorCSAqLworCWlmICghd2wgJiYgc2NoZWRfZmVhdChBU1lNX0VGRl9MT0FEKSkKKwkJcmV0dXJuIHdsOworCisJLyoKKwkgKiBJbnN0ZWFkIG9mIHVzaW5nIHRoaXMgaW5jcmVtZW50LCBhbHNvIGFkZCB0aGUgZGlmZmVyZW5jZQorCSAqIGJldHdlZW4gd2hlbiB0aGUgc2hhcmVzIHdlcmUgbGFzdCB1cGRhdGVkIGFuZCBub3cuCisJICovCisJbW9yZV93ID0gc2UtPm15X3EtPmxvYWQud2VpZ2h0IC0gc2UtPm15X3EtPnJxX3dlaWdodDsKKwl3bCArPSBtb3JlX3c7CisJd2cgKz0gbW9yZV93OworCisJZm9yX2VhY2hfc2NoZWRfZW50aXR5KHNlKSB7CisjZGVmaW5lIEQobikgKGxpa2VseShuKSA/IChuKSA6IDEpCisKKwkJbG9uZyBTLCBydywgcywgYSwgYjsKKworCQlTID0gc2UtPm15X3EtPnRnLT5zaGFyZXM7CisJCXMgPSBzZS0+bXlfcS0+c2hhcmVzOworCQlydyA9IHNlLT5teV9xLT5ycV93ZWlnaHQ7CisKKwkJYSA9IFMqKHJ3ICsgd2wpOworCQliID0gUypydyArIHMqd2c7CisKKwkJd2wgPSBzKihhLWIpL0QoYik7CisJCS8qCisJCSAqIEFzc3VtZSB0aGUgZ3JvdXAgaXMgYWxyZWFkeSBydW5uaW5nIGFuZCB3aWxsCisJCSAqIHRodXMgYWxyZWFkeSBiZSBhY2NvdW50ZWQgZm9yIGluIHRoZSB3ZWlnaHQuCisJCSAqCisJCSAqIFRoYXQgaXMsIG1vdmluZyBzaGFyZXMgYmV0d2VlbiBDUFVzLCBkb2VzIG5vdAorCQkgKiBhbHRlciB0aGUgZ3JvdXAgd2VpZ2h0LgorCQkgKi8KKwkJd2cgPSAwOworI3VuZGVmIEQKKwl9CisKKwlyZXR1cm4gd2w7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBlZmZlY3RpdmVfbG9hZChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUsCisJCXVuc2lnbmVkIGxvbmcgd2wsIHVuc2lnbmVkIGxvbmcgd2cpCit7CisJcmV0dXJuIHdsOworfQorCisjZW5kaWYKKwogc3RhdGljIGludAogd2FrZV9hZmZpbmUoc3RydWN0IHJxICpycSwgc3RydWN0IHNjaGVkX2RvbWFpbiAqdGhpc19zZCwgc3RydWN0IHJxICp0aGlzX3JxLAogCSAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwcmV2X2NwdSwgaW50IHRoaXNfY3B1LCBpbnQgc3luYywKQEAgLTk5NCw4ICsxMTQ3LDEwIEBACiAJICAgIHVuc2lnbmVkIGludCBpbWJhbGFuY2UpCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyID0gdGhpc19ycS0+Y3VycjsKKwlzdHJ1Y3QgdGFza19ncm91cCAqdGc7CiAJdW5zaWduZWQgbG9uZyB0bCA9IHRoaXNfbG9hZDsKIAl1bnNpZ25lZCBsb25nIHRsX3Blcl90YXNrOworCXVuc2lnbmVkIGxvbmcgd2VpZ2h0OwogCWludCBiYWxhbmNlZDsKIAogCWlmICghKHRoaXNfc2QtPmZsYWdzICYgU0RfV0FLRV9BRkZJTkUpIHx8ICFzY2hlZF9mZWF0KEFGRklORV9XQUtFVVBTKSkKQEAgLTEwMDYsMTkgKzExNjEsMjggQEAKIAkgKiBlZmZlY3Qgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRhc2sgZnJvbSB0aGUgbG9hZAogCSAqIG9mIHRoZSBjdXJyZW50IENQVToKIAkgKi8KLQlpZiAoc3luYykKLQkJdGwgLT0gY3VycmVudC0+c2UubG9hZC53ZWlnaHQ7CisJaWYgKHN5bmMpIHsKKwkJdGcgPSB0YXNrX2dyb3VwKGN1cnJlbnQpOworCQl3ZWlnaHQgPSBjdXJyZW50LT5zZS5sb2FkLndlaWdodDsKIAotCWJhbGFuY2VkID0gMTAwKih0bCArIHAtPnNlLmxvYWQud2VpZ2h0KSA8PSBpbWJhbGFuY2UqbG9hZDsKKwkJdGwgKz0gZWZmZWN0aXZlX2xvYWQodGcsIHRoaXNfY3B1LCAtd2VpZ2h0LCAtd2VpZ2h0KTsKKwkJbG9hZCArPSBlZmZlY3RpdmVfbG9hZCh0ZywgcHJldl9jcHUsIDAsIC13ZWlnaHQpOworCX0KKworCXRnID0gdGFza19ncm91cChwKTsKKwl3ZWlnaHQgPSBwLT5zZS5sb2FkLndlaWdodDsKKworCWJhbGFuY2VkID0gMTAwKih0bCArIGVmZmVjdGl2ZV9sb2FkKHRnLCB0aGlzX2NwdSwgd2VpZ2h0LCB3ZWlnaHQpKSA8PQorCQlpbWJhbGFuY2UqKGxvYWQgKyBlZmZlY3RpdmVfbG9hZCh0ZywgcHJldl9jcHUsIDAsIHdlaWdodCkpOwogCiAJLyoKIAkgKiBJZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGFzayB3aWxsIHNsZWVwIHdpdGhpbgogCSAqIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSB0aGVuIGF0dHJhY3QgdGhpcyBuZXdseQogCSAqIHdva2VuIHRhc2s6CiAJICovCi0JaWYgKHN5bmMgJiYgYmFsYW5jZWQgJiYgY3Vyci0+c2NoZWRfY2xhc3MgPT0gJmZhaXJfc2NoZWRfY2xhc3MpIHsKKwlpZiAoc3luYyAmJiBiYWxhbmNlZCkgewogCQlpZiAoY3Vyci0+c2UuYXZnX292ZXJsYXAgPCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QgJiYKLQkJCQlwLT5zZS5hdmdfb3ZlcmxhcCA8IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdCkKKwkJICAgIHAtPnNlLmF2Z19vdmVybGFwIDwgc3lzY3RsX3NjaGVkX21pZ3JhdGlvbl9jb3N0KQogCQkJcmV0dXJuIDE7CiAJfQogCkBAIC0xMTExLDExICsxMjc1LDEzIEBACiAJdW5zaWduZWQgbG9uZyBncmFuID0gc3lzY3RsX3NjaGVkX3dha2V1cF9ncmFudWxhcml0eTsKIAogCS8qCi0JICogTW9yZSBlYXNpbHkgcHJlZW1wdCAtIG5pY2UgdGFza3MsIHdoaWxlIG5vdCBtYWtpbmcKLQkgKiBpdCBoYXJkZXIgZm9yICsgbmljZSB0YXNrcy4KKwkgKiBNb3JlIGVhc2lseSBwcmVlbXB0IC0gbmljZSB0YXNrcywgd2hpbGUgbm90IG1ha2luZyBpdCBoYXJkZXIgZm9yCisJICogKyBuaWNlIHRhc2tzLgogCSAqLwotCWlmICh1bmxpa2VseShzZS0+bG9hZC53ZWlnaHQgPiBOSUNFXzBfTE9BRCkpCi0JCWdyYW4gPSBjYWxjX2RlbHRhX2ZhaXIoZ3JhbiwgJnNlLT5sb2FkKTsKKwlpZiAoc2NoZWRfZmVhdChBU1lNX0dSQU4pKQorCQlncmFuID0gY2FsY19kZWx0YV9hc3ltKHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHksIHNlKTsKKwllbHNlCisJCWdyYW4gPSBjYWxjX2RlbHRhX2ZhaXIoc3lzY3RsX3NjaGVkX3dha2V1cF9ncmFudWxhcml0eSwgc2UpOwogCiAJcmV0dXJuIGdyYW47CiB9CkBAIC0xMTc3LDcgKzEzNDMsNiBAQAogCQlyZXR1cm47CiAJfQogCi0Jc2UtPmxhc3Rfd2FrZXVwID0gc2UtPnN1bV9leGVjX3J1bnRpbWU7CiAJaWYgKHVubGlrZWx5KHNlID09IHBzZSkpCiAJCXJldHVybjsKIApAQCAtMTI3NSwyMyArMTQ0MCwxOCBAQAogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcCA9IE5VTEw7CiAJc3RydWN0IHNjaGVkX2VudGl0eSAqc2U7CiAKLQlpZiAobmV4dCA9PSAmY2ZzX3JxLT50YXNrcykKLQkJcmV0dXJuIE5VTEw7Ci0KLQkvKiBTa2lwIG92ZXIgZW50aXRpZXMgdGhhdCBhcmUgbm90IHRhc2tzICovCi0JZG8geworCXdoaWxlIChuZXh0ICE9ICZjZnNfcnEtPnRhc2tzKSB7CiAJCXNlID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3Qgc2NoZWRfZW50aXR5LCBncm91cF9ub2RlKTsKIAkJbmV4dCA9IG5leHQtPm5leHQ7Ci0JfSB3aGlsZSAobmV4dCAhPSAmY2ZzX3JxLT50YXNrcyAmJiAhZW50aXR5X2lzX3Rhc2soc2UpKTsKIAotCWlmIChuZXh0ID09ICZjZnNfcnEtPnRhc2tzKQotCQlyZXR1cm4gTlVMTDsKKwkJLyogU2tpcCBvdmVyIGVudGl0aWVzIHRoYXQgYXJlIG5vdCB0YXNrcyAqLworCQlpZiAoZW50aXR5X2lzX3Rhc2soc2UpKSB7CisJCQlwID0gdGFza19vZihzZSk7CisJCQlicmVhazsKKwkJfQorCX0KIAogCWNmc19ycS0+YmFsYW5jZV9pdGVyYXRvciA9IG5leHQ7Ci0KLQlpZiAoZW50aXR5X2lzX3Rhc2soc2UpKQotCQlwID0gdGFza19vZihzZSk7Ci0KIAlyZXR1cm4gcDsKIH0KIApAQCAtMTMwOSw3NSArMTQ2OSw4MiBAQAogCXJldHVybiBfX2xvYWRfYmFsYW5jZV9pdGVyYXRvcihjZnNfcnEsIGNmc19ycS0+YmFsYW5jZV9pdGVyYXRvcik7CiB9CiAKLSNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAotc3RhdGljIGludCBjZnNfcnFfYmVzdF9wcmlvKHN0cnVjdCBjZnNfcnEgKmNmc19ycSkKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitfX2xvYWRfYmFsYW5jZV9mYWlyKHN0cnVjdCBycSAqdGhpc19ycSwgaW50IHRoaXNfY3B1LCBzdHJ1Y3QgcnEgKmJ1c2llc3QsCisJCXVuc2lnbmVkIGxvbmcgbWF4X2xvYWRfbW92ZSwgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QsCisJCWVudW0gY3B1X2lkbGVfdHlwZSBpZGxlLCBpbnQgKmFsbF9waW5uZWQsIGludCAqdGhpc19iZXN0X3ByaW8sCisJCXN0cnVjdCBjZnNfcnEgKmNmc19ycSkKIHsKLQlzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpjdXJyOwotCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKKwlzdHJ1Y3QgcnFfaXRlcmF0b3IgY2ZzX3JxX2l0ZXJhdG9yOwogCi0JaWYgKCFjZnNfcnEtPm5yX3J1bm5pbmcgfHwgIWZpcnN0X2ZhaXIoY2ZzX3JxKSkKLQkJcmV0dXJuIE1BWF9QUklPOworCWNmc19ycV9pdGVyYXRvci5zdGFydCA9IGxvYWRfYmFsYW5jZV9zdGFydF9mYWlyOworCWNmc19ycV9pdGVyYXRvci5uZXh0ID0gbG9hZF9iYWxhbmNlX25leHRfZmFpcjsKKwljZnNfcnFfaXRlcmF0b3IuYXJnID0gY2ZzX3JxOwogCi0JY3VyciA9IGNmc19ycS0+Y3VycjsKLQlpZiAoIWN1cnIpCi0JCWN1cnIgPSBfX3BpY2tfbmV4dF9lbnRpdHkoY2ZzX3JxKTsKLQotCXAgPSB0YXNrX29mKGN1cnIpOwotCi0JcmV0dXJuIHAtPnByaW87CisJcmV0dXJuIGJhbGFuY2VfdGFza3ModGhpc19ycSwgdGhpc19jcHUsIGJ1c2llc3QsCisJCQltYXhfbG9hZF9tb3ZlLCBzZCwgaWRsZSwgYWxsX3Bpbm5lZCwKKwkJCXRoaXNfYmVzdF9wcmlvLCAmY2ZzX3JxX2l0ZXJhdG9yKTsKIH0KLSNlbmRpZgogCisjaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKIHN0YXRpYyB1bnNpZ25lZCBsb25nCiBsb2FkX2JhbGFuY2VfZmFpcihzdHJ1Y3QgcnEgKnRoaXNfcnEsIGludCB0aGlzX2NwdSwgc3RydWN0IHJxICpidXNpZXN0LAogCQkgIHVuc2lnbmVkIGxvbmcgbWF4X2xvYWRfbW92ZSwKIAkJICBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCwgZW51bSBjcHVfaWRsZV90eXBlIGlkbGUsCiAJCSAgaW50ICphbGxfcGlubmVkLCBpbnQgKnRoaXNfYmVzdF9wcmlvKQogewotCXN0cnVjdCBjZnNfcnEgKmJ1c3lfY2ZzX3JxOwogCWxvbmcgcmVtX2xvYWRfbW92ZSA9IG1heF9sb2FkX21vdmU7Ci0Jc3RydWN0IHJxX2l0ZXJhdG9yIGNmc19ycV9pdGVyYXRvcjsKKwlpbnQgYnVzaWVzdF9jcHUgPSBjcHVfb2YoYnVzaWVzdCk7CisJc3RydWN0IHRhc2tfZ3JvdXAgKnRnOwogCi0JY2ZzX3JxX2l0ZXJhdG9yLnN0YXJ0ID0gbG9hZF9iYWxhbmNlX3N0YXJ0X2ZhaXI7Ci0JY2ZzX3JxX2l0ZXJhdG9yLm5leHQgPSBsb2FkX2JhbGFuY2VfbmV4dF9mYWlyOworCXJjdV9yZWFkX2xvY2soKTsKKwl1cGRhdGVfaF9sb2FkKGJ1c2llc3RfY3B1KTsKIAotCWZvcl9lYWNoX2xlYWZfY2ZzX3JxKGJ1c2llc3QsIGJ1c3lfY2ZzX3JxKSB7Ci0jaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKLQkJc3RydWN0IGNmc19ycSAqdGhpc19jZnNfcnE7Ci0JCWxvbmcgaW1iYWxhbmNlOwotCQl1bnNpZ25lZCBsb25nIG1heGxvYWQ7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZywgJnRhc2tfZ3JvdXBzLCBsaXN0KSB7CisJCXN0cnVjdCBjZnNfcnEgKmJ1c2llc3RfY2ZzX3JxID0gdGctPmNmc19ycVtidXNpZXN0X2NwdV07CisJCXVuc2lnbmVkIGxvbmcgYnVzaWVzdF9oX2xvYWQgPSBidXNpZXN0X2Nmc19ycS0+aF9sb2FkOworCQl1bnNpZ25lZCBsb25nIGJ1c2llc3Rfd2VpZ2h0ID0gYnVzaWVzdF9jZnNfcnEtPmxvYWQud2VpZ2h0OworCQl1NjQgcmVtX2xvYWQsIG1vdmVkX2xvYWQ7CiAKLQkJdGhpc19jZnNfcnEgPSBjcHVfY2ZzX3JxKGJ1c3lfY2ZzX3JxLCB0aGlzX2NwdSk7Ci0KLQkJaW1iYWxhbmNlID0gYnVzeV9jZnNfcnEtPmxvYWQud2VpZ2h0IC0gdGhpc19jZnNfcnEtPmxvYWQud2VpZ2h0OwotCQkvKiBEb24ndCBwdWxsIGlmIHRoaXNfY2ZzX3JxIGhhcyBtb3JlIGxvYWQgdGhhbiBidXN5X2Nmc19ycSAqLwotCQlpZiAoaW1iYWxhbmNlIDw9IDApCisJCS8qCisJCSAqIGVtcHR5IGdyb3VwCisJCSAqLworCQlpZiAoIWJ1c2llc3RfY2ZzX3JxLT50YXNrX3dlaWdodCkKIAkJCWNvbnRpbnVlOwogCi0JCS8qIERvbid0IHB1bGwgbW9yZSB0aGFuIGltYmFsYW5jZS8yICovCi0JCWltYmFsYW5jZSAvPSAyOwotCQltYXhsb2FkID0gbWluKHJlbV9sb2FkX21vdmUsIGltYmFsYW5jZSk7CisJCXJlbV9sb2FkID0gKHU2NClyZW1fbG9hZF9tb3ZlICogYnVzaWVzdF93ZWlnaHQ7CisJCXJlbV9sb2FkID0gZGl2X3U2NChyZW1fbG9hZCwgYnVzaWVzdF9oX2xvYWQgKyAxKTsKIAotCQkqdGhpc19iZXN0X3ByaW8gPSBjZnNfcnFfYmVzdF9wcmlvKHRoaXNfY2ZzX3JxKTsKLSNlbHNlCi0jIGRlZmluZSBtYXhsb2FkIHJlbV9sb2FkX21vdmUKLSNlbmRpZgotCQkvKgotCQkgKiBwYXNzIGJ1c3lfY2ZzX3JxIGFyZ3VtZW50IGludG8KLQkJICogbG9hZF9iYWxhbmNlX1tzdGFydHxuZXh0XV9mYWlyIGl0ZXJhdG9ycwotCQkgKi8KLQkJY2ZzX3JxX2l0ZXJhdG9yLmFyZyA9IGJ1c3lfY2ZzX3JxOwotCQlyZW1fbG9hZF9tb3ZlIC09IGJhbGFuY2VfdGFza3ModGhpc19ycSwgdGhpc19jcHUsIGJ1c2llc3QsCi0JCQkJCSAgICAgICBtYXhsb2FkLCBzZCwgaWRsZSwgYWxsX3Bpbm5lZCwKLQkJCQkJICAgICAgIHRoaXNfYmVzdF9wcmlvLAotCQkJCQkgICAgICAgJmNmc19ycV9pdGVyYXRvcik7CisJCW1vdmVkX2xvYWQgPSBfX2xvYWRfYmFsYW5jZV9mYWlyKHRoaXNfcnEsIHRoaXNfY3B1LCBidXNpZXN0LAorCQkJCXJlbV9sb2FkLCBzZCwgaWRsZSwgYWxsX3Bpbm5lZCwgdGhpc19iZXN0X3ByaW8sCisJCQkJdGctPmNmc19ycVtidXNpZXN0X2NwdV0pOwogCi0JCWlmIChyZW1fbG9hZF9tb3ZlIDw9IDApCisJCWlmICghbW92ZWRfbG9hZCkKKwkJCWNvbnRpbnVlOworCisJCW1vdmVkX2xvYWQgKj0gYnVzaWVzdF9oX2xvYWQ7CisJCW1vdmVkX2xvYWQgPSBkaXZfdTY0KG1vdmVkX2xvYWQsIGJ1c2llc3Rfd2VpZ2h0ICsgMSk7CisKKwkJcmVtX2xvYWRfbW92ZSAtPSBtb3ZlZF9sb2FkOworCQlpZiAocmVtX2xvYWRfbW92ZSA8IDApCiAJCQlicmVhazsKIAl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlyZXR1cm4gbWF4X2xvYWRfbW92ZSAtIHJlbV9sb2FkX21vdmU7CiB9CisjZWxzZQorc3RhdGljIHVuc2lnbmVkIGxvbmcKK2xvYWRfYmFsYW5jZV9mYWlyKHN0cnVjdCBycSAqdGhpc19ycSwgaW50IHRoaXNfY3B1LCBzdHJ1Y3QgcnEgKmJ1c2llc3QsCisJCSAgdW5zaWduZWQgbG9uZyBtYXhfbG9hZF9tb3ZlLAorCQkgIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkLCBlbnVtIGNwdV9pZGxlX3R5cGUgaWRsZSwKKwkJICBpbnQgKmFsbF9waW5uZWQsIGludCAqdGhpc19iZXN0X3ByaW8pCit7CisJcmV0dXJuIF9fbG9hZF9iYWxhbmNlX2ZhaXIodGhpc19ycSwgdGhpc19jcHUsIGJ1c2llc3QsCisJCQltYXhfbG9hZF9tb3ZlLCBzZCwgaWRsZSwgYWxsX3Bpbm5lZCwKKwkJCXRoaXNfYmVzdF9wcmlvLCAmYnVzaWVzdC0+Y2ZzKTsKK30KKyNlbmRpZgogCiBzdGF0aWMgaW50CiBtb3ZlX29uZV90YXNrX2ZhaXIoc3RydWN0IHJxICp0aGlzX3JxLCBpbnQgdGhpc19jcHUsIHN0cnVjdCBycSAqYnVzaWVzdCwKQEAgLTE0MDIsNyArMTU2OSw3IEBACiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogLyoKICAqIHNjaGVkdWxlciB0aWNrIGhpdHRpbmcgYSB0YXNrIG9mIG91ciBzY2hlZHVsaW5nIGNsYXNzOgpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2ZlYXR1cmVzLmggYi9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaAppbmRleCAxYzcyODNjLi44NjJiMDZiIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaAorKysgYi9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaApAQCAtMSw0ICsxLDUgQEAKIFNDSEVEX0ZFQVQoTkVXX0ZBSVJfU0xFRVBFUlMsIDEpCitTQ0hFRF9GRUFUKE5PUk1BTElaRURfU0xFRVBFUiwgMSkKIFNDSEVEX0ZFQVQoV0FLRVVQX1BSRUVNUFQsIDEpCiBTQ0hFRF9GRUFUKFNUQVJUX0RFQklULCAxKQogU0NIRURfRkVBVChBRkZJTkVfV0FLRVVQUywgMSkKQEAgLTYsNSArNyw3IEBACiBTQ0hFRF9GRUFUKFNZTkNfV0FLRVVQUywgMSkKIFNDSEVEX0ZFQVQoSFJUSUNLLCAxKQogU0NIRURfRkVBVChET1VCTEVfVElDSywgMCkKLVNDSEVEX0ZFQVQoTk9STUFMSVpFRF9TTEVFUEVSLCAxKQotU0NIRURfRkVBVChERUFETElORSwgMSkKK1NDSEVEX0ZFQVQoQVNZTV9HUkFOLCAxKQorU0NIRURfRkVBVChMQl9CSUFTLCAwKQorU0NIRURfRkVBVChMQl9XQUtFVVBfVVBEQVRFLCAxKQorU0NIRURfRkVBVChBU1lNX0VGRl9MT0FELCAxKQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX3J0LmMgYi9rZXJuZWwvc2NoZWRfcnQuYwppbmRleCAzNDMyZDU3Li40N2NlYWM5IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfcnQuYworKysgYi9rZXJuZWwvc2NoZWRfcnQuYwpAQCAtMTIsNiArMTIsOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcnRfc2V0X292ZXJsb2FkKHN0cnVjdCBycSAqcnEpCiB7CisJaWYgKCFycS0+b25saW5lKQorCQlyZXR1cm47CisKIAljcHVfc2V0KHJxLT5jcHUsIHJxLT5yZC0+cnRvX21hc2spOwogCS8qCiAJICogTWFrZSBzdXJlIHRoZSBtYXNrIGlzIHZpc2libGUgYmVmb3JlIHdlIHNldApAQCAtMjYsNiArMjksOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcnRfY2xlYXJfb3ZlcmxvYWQoc3RydWN0IHJxICpycSkKIHsKKwlpZiAoIXJxLT5vbmxpbmUpCisJCXJldHVybjsKKwogCS8qIHRoZSBvcmRlciBoZXJlIHJlYWxseSBkb2Vzbid0IG1hdHRlciAqLwogCWF0b21pY19kZWMoJnJxLT5yZC0+cnRvX2NvdW50KTsKIAljcHVfY2xlYXIocnEtPmNwdSwgcnEtPnJkLT5ydG9fbWFzayk7CkBAIC0xNTUsNyArMTYxLDcgQEAKIAlyZXR1cm4gJnJ0X3JxLT50Zy0+cnRfYmFuZHdpZHRoOwogfQogCi0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiBzdGF0aWMgaW5saW5lIHU2NCBzY2hlZF9ydF9ydW50aW1lKHN0cnVjdCBydF9ycSAqcnRfcnEpCiB7CkBAIC0yMjAsNyArMjI2LDE2MCBAQAogCXJldHVybiAmZGVmX3J0X2JhbmR3aWR0aDsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1JUX0dST1VQX1NDSEVEICovCisKKyNpZmRlZiBDT05GSUdfU01QCitzdGF0aWMgaW50IGRvX2JhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQoreworCXN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IgPSBzY2hlZF9ydF9iYW5kd2lkdGgocnRfcnEpOworCXN0cnVjdCByb290X2RvbWFpbiAqcmQgPSBjcHVfcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+cmQ7CisJaW50IGksIHdlaWdodCwgbW9yZSA9IDA7CisJdTY0IHJ0X3BlcmlvZDsKKworCXdlaWdodCA9IGNwdXNfd2VpZ2h0KHJkLT5zcGFuKTsKKworCXNwaW5fbG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKKwlydF9wZXJpb2QgPSBrdGltZV90b19ucyhydF9iLT5ydF9wZXJpb2QpOworCWZvcl9lYWNoX2NwdV9tYXNrKGksIHJkLT5zcGFuKSB7CisJCXN0cnVjdCBydF9ycSAqaXRlciA9IHNjaGVkX3J0X3BlcmlvZF9ydF9ycShydF9iLCBpKTsKKwkJczY0IGRpZmY7CisKKwkJaWYgKGl0ZXIgPT0gcnRfcnEpCisJCQljb250aW51ZTsKKworCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisJCWlmIChpdGVyLT5ydF9ydW50aW1lID09IFJVTlRJTUVfSU5GKQorCQkJZ290byBuZXh0OworCisJCWRpZmYgPSBpdGVyLT5ydF9ydW50aW1lIC0gaXRlci0+cnRfdGltZTsKKwkJaWYgKGRpZmYgPiAwKSB7CisJCQlkb19kaXYoZGlmZiwgd2VpZ2h0KTsKKwkJCWlmIChydF9ycS0+cnRfcnVudGltZSArIGRpZmYgPiBydF9wZXJpb2QpCisJCQkJZGlmZiA9IHJ0X3BlcmlvZCAtIHJ0X3JxLT5ydF9ydW50aW1lOworCQkJaXRlci0+cnRfcnVudGltZSAtPSBkaWZmOworCQkJcnRfcnEtPnJ0X3J1bnRpbWUgKz0gZGlmZjsKKwkJCW1vcmUgPSAxOworCQkJaWYgKHJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X3BlcmlvZCkgeworCQkJCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOworCQkJCWJyZWFrOworCQkJfQorCQl9CituZXh0OgorCQlzcGluX3VubG9jaygmaXRlci0+cnRfcnVudGltZV9sb2NrKTsKKwl9CisJc3Bpbl91bmxvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisKKwlyZXR1cm4gbW9yZTsKK30KKworc3RhdGljIHZvaWQgX19kaXNhYmxlX3J1bnRpbWUoc3RydWN0IHJxICpycSkKK3sKKwlzdHJ1Y3Qgcm9vdF9kb21haW4gKnJkID0gcnEtPnJkOworCXN0cnVjdCBydF9ycSAqcnRfcnE7CisKKwlpZiAodW5saWtlbHkoIXNjaGVkdWxlcl9ydW5uaW5nKSkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfbGVhZl9ydF9ycShydF9ycSwgcnEpIHsKKwkJc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiA9IHNjaGVkX3J0X2JhbmR3aWR0aChydF9ycSk7CisJCXM2NCB3YW50OworCQlpbnQgaTsKKworCQlzcGluX2xvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCWlmIChydF9ycS0+cnRfcnVudGltZSA9PSBSVU5USU1FX0lORiB8fAorCQkJCXJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X2ItPnJ0X3J1bnRpbWUpCisJCQlnb3RvIGJhbGFuY2VkOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisKKwkJd2FudCA9IHJ0X2ItPnJ0X3J1bnRpbWUgLSBydF9ycS0+cnRfcnVudGltZTsKKworCQlmb3JfZWFjaF9jcHVfbWFzayhpLCByZC0+c3BhbikgeworCQkJc3RydWN0IHJ0X3JxICppdGVyID0gc2NoZWRfcnRfcGVyaW9kX3J0X3JxKHJ0X2IsIGkpOworCQkJczY0IGRpZmY7CisKKwkJCWlmIChpdGVyID09IHJ0X3JxKQorCQkJCWNvbnRpbnVlOworCisJCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisJCQlpZiAod2FudCA+IDApIHsKKwkJCQlkaWZmID0gbWluX3QoczY0LCBpdGVyLT5ydF9ydW50aW1lLCB3YW50KTsKKwkJCQlpdGVyLT5ydF9ydW50aW1lIC09IGRpZmY7CisJCQkJd2FudCAtPSBkaWZmOworCQkJfSBlbHNlIHsKKwkJCQlpdGVyLT5ydF9ydW50aW1lIC09IHdhbnQ7CisJCQkJd2FudCAtPSB3YW50OworCQkJfQorCQkJc3Bpbl91bmxvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisKKwkJCWlmICghd2FudCkKKwkJCQlicmVhazsKKwkJfQorCisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCUJVR19PTih3YW50KTsKK2JhbGFuY2VkOgorCQlydF9ycS0+cnRfcnVudGltZSA9IFJVTlRJTUVfSU5GOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCX0KK30KKworc3RhdGljIHZvaWQgZGlzYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCV9fZGlzYWJsZV9ydW50aW1lKHJxKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZycS0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBfX2VuYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJc3RydWN0IHJ0X3JxICpydF9ycTsKKworCWlmICh1bmxpa2VseSghc2NoZWR1bGVyX3J1bm5pbmcpKQorCQlyZXR1cm47CisKKwlmb3JfZWFjaF9sZWFmX3J0X3JxKHJ0X3JxLCBycSkgeworCQlzdHJ1Y3QgcnRfYmFuZHdpZHRoICpydF9iID0gc2NoZWRfcnRfYmFuZHdpZHRoKHJ0X3JxKTsKKworCQlzcGluX2xvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXJ0X3JxLT5ydF9ydW50aW1lID0gcnRfYi0+cnRfcnVudGltZTsKKwkJcnRfcnEtPnJ0X3RpbWUgPSAwOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCX0KK30KKworc3RhdGljIHZvaWQgZW5hYmxlX3J1bnRpbWUoc3RydWN0IHJxICpycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CisJX19lbmFibGVfcnVudGltZShycSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIGludCBiYWxhbmNlX3J1bnRpbWUoc3RydWN0IHJ0X3JxICpydF9ycSkKK3sKKwlpbnQgbW9yZSA9IDA7CisKKwlpZiAocnRfcnEtPnJ0X3RpbWUgPiBydF9ycS0+cnRfcnVudGltZSkgeworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCW1vcmUgPSBkb19iYWxhbmNlX3J1bnRpbWUocnRfcnEpOworCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCX0KKworCXJldHVybiBtb3JlOworfQorI2Vsc2UgLyogIUNPTkZJR19TTVAgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGJhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQoreworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogc3RhdGljIGludCBkb19zY2hlZF9ydF9wZXJpb2RfdGltZXIoc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiwgaW50IG92ZXJydW4pCiB7CkBAIC0yNDEsNiArNDAwLDggQEAKIAkJCXU2NCBydW50aW1lOwogCiAJCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQkJaWYgKHJ0X3JxLT5ydF90aHJvdHRsZWQpCisJCQkJYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKIAkJCXJ1bnRpbWUgPSBydF9ycS0+cnRfcnVudGltZTsKIAkJCXJ0X3JxLT5ydF90aW1lIC09IG1pbihydF9ycS0+cnRfdGltZSwgb3ZlcnJ1bipydW50aW1lKTsKIAkJCWlmIChydF9ycS0+cnRfdGhyb3R0bGVkICYmIHJ0X3JxLT5ydF90aW1lIDwgcnVudGltZSkgewpAQCAtMjUwLDcgKzQxMSw4IEBACiAJCQlpZiAocnRfcnEtPnJ0X3RpbWUgfHwgcnRfcnEtPnJ0X25yX3J1bm5pbmcpCiAJCQkJaWRsZSA9IDA7CiAJCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7Ci0JCX0KKwkJfSBlbHNlIGlmIChydF9ycS0+cnRfbnJfcnVubmluZykKKwkJCWlkbGUgPSAwOwogCiAJCWlmIChlbnF1ZXVlKQogCQkJc2NoZWRfcnRfcnFfZW5xdWV1ZShydF9ycSk7CkBAIC0yNjAsNDcgKzQyMiw2IEBACiAJcmV0dXJuIGlkbGU7CiB9CiAKLSNpZmRlZiBDT05GSUdfU01QCi1zdGF0aWMgaW50IGJhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQotewotCXN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IgPSBzY2hlZF9ydF9iYW5kd2lkdGgocnRfcnEpOwotCXN0cnVjdCByb290X2RvbWFpbiAqcmQgPSBjcHVfcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+cmQ7Ci0JaW50IGksIHdlaWdodCwgbW9yZSA9IDA7Ci0JdTY0IHJ0X3BlcmlvZDsKLQotCXdlaWdodCA9IGNwdXNfd2VpZ2h0KHJkLT5zcGFuKTsKLQotCXNwaW5fbG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKLQlydF9wZXJpb2QgPSBrdGltZV90b19ucyhydF9iLT5ydF9wZXJpb2QpOwotCWZvcl9lYWNoX2NwdV9tYXNrKGksIHJkLT5zcGFuKSB7Ci0JCXN0cnVjdCBydF9ycSAqaXRlciA9IHNjaGVkX3J0X3BlcmlvZF9ydF9ycShydF9iLCBpKTsKLQkJczY0IGRpZmY7Ci0KLQkJaWYgKGl0ZXIgPT0gcnRfcnEpCi0JCQljb250aW51ZTsKLQotCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7Ci0JCWRpZmYgPSBpdGVyLT5ydF9ydW50aW1lIC0gaXRlci0+cnRfdGltZTsKLQkJaWYgKGRpZmYgPiAwKSB7Ci0JCQlkb19kaXYoZGlmZiwgd2VpZ2h0KTsKLQkJCWlmIChydF9ycS0+cnRfcnVudGltZSArIGRpZmYgPiBydF9wZXJpb2QpCi0JCQkJZGlmZiA9IHJ0X3BlcmlvZCAtIHJ0X3JxLT5ydF9ydW50aW1lOwotCQkJaXRlci0+cnRfcnVudGltZSAtPSBkaWZmOwotCQkJcnRfcnEtPnJ0X3J1bnRpbWUgKz0gZGlmZjsKLQkJCW1vcmUgPSAxOwotCQkJaWYgKHJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X3BlcmlvZCkgewotCQkJCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOwotCX0KLQlzcGluX3VubG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKLQotCXJldHVybiBtb3JlOwotfQotI2VuZGlmCi0KIHN0YXRpYyBpbmxpbmUgaW50IHJ0X3NlX3ByaW8oc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UpCiB7CiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECkBAIC0zMjYsMTggKzQ0NywxMCBAQAogCWlmIChzY2hlZF9ydF9ydW50aW1lKHJ0X3JxKSA+PSBzY2hlZF9ydF9wZXJpb2QocnRfcnEpKQogCQlyZXR1cm4gMDsKIAotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAocnRfcnEtPnJ0X3RpbWUgPiBydW50aW1lKSB7Ci0JCWludCBtb3JlOwotCi0JCXNwaW5fdW5sb2NrKCZydF9ycS0+cnRfcnVudGltZV9sb2NrKTsKLQkJbW9yZSA9IGJhbGFuY2VfcnVudGltZShydF9ycSk7Ci0JCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7Ci0KLQkJaWYgKG1vcmUpCi0JCQlydW50aW1lID0gc2NoZWRfcnRfcnVudGltZShydF9ycSk7Ci0JfQotI2VuZGlmCisJYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKKwlydW50aW1lID0gc2NoZWRfcnRfcnVudGltZShydF9ycSk7CisJaWYgKHJ1bnRpbWUgPT0gUlVOVElNRV9JTkYpCisJCXJldHVybiAwOwogCiAJaWYgKHJ0X3JxLT5ydF90aW1lID4gcnVudGltZSkgewogCQlydF9ycS0+cnRfdGhyb3R0bGVkID0gMTsKQEAgLTM5MSwxMiArNTA0LDIxIEBACiAJV0FSTl9PTighcnRfcHJpbyhydF9zZV9wcmlvKHJ0X3NlKSkpOwogCXJ0X3JxLT5ydF9ucl9ydW5uaW5nKys7CiAjaWYgZGVmaW5lZCBDT05GSUdfU01QIHx8IGRlZmluZWQgQ09ORklHX1JUX0dST1VQX1NDSEVECi0JaWYgKHJ0X3NlX3ByaW8ocnRfc2UpIDwgcnRfcnEtPmhpZ2hlc3RfcHJpbykKKwlpZiAocnRfc2VfcHJpbyhydF9zZSkgPCBydF9ycS0+aGlnaGVzdF9wcmlvKSB7CisJCXN0cnVjdCBycSAqcnEgPSBycV9vZl9ydF9ycShydF9ycSk7CisKIAkJcnRfcnEtPmhpZ2hlc3RfcHJpbyA9IHJ0X3NlX3ByaW8ocnRfc2UpOworI2lmZGVmIENPTkZJR19TTVAKKwkJaWYgKHJxLT5vbmxpbmUpCisJCQljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwKKwkJCQkgICBydF9zZV9wcmlvKHJ0X3NlKSk7CisjZW5kaWYKKwl9CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfU01QCiAJaWYgKHJ0X3NlLT5ucl9jcHVzX2FsbG93ZWQgPiAxKSB7CiAJCXN0cnVjdCBycSAqcnEgPSBycV9vZl9ydF9ycShydF9ycSk7CisKIAkJcnEtPnJ0LnJ0X25yX21pZ3JhdG9yeSsrOwogCX0KIApAQCAtNDE2LDYgKzUzOCwxMCBAQAogc3RhdGljIGlubGluZQogdm9pZCBkZWNfcnRfdGFza3Moc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UsIHN0cnVjdCBydF9ycSAqcnRfcnEpCiB7CisjaWZkZWYgQ09ORklHX1NNUAorCWludCBoaWdoZXN0X3ByaW8gPSBydF9ycS0+aGlnaGVzdF9wcmlvOworI2VuZGlmCisKIAlXQVJOX09OKCFydF9wcmlvKHJ0X3NlX3ByaW8ocnRfc2UpKSk7CiAJV0FSTl9PTighcnRfcnEtPnJ0X25yX3J1bm5pbmcpOwogCXJ0X3JxLT5ydF9ucl9ydW5uaW5nLS07CkBAIC00MzksNiArNTY1LDE0IEBACiAJCXJxLT5ydC5ydF9ucl9taWdyYXRvcnktLTsKIAl9CiAKKwlpZiAocnRfcnEtPmhpZ2hlc3RfcHJpbyAhPSBoaWdoZXN0X3ByaW8pIHsKKwkJc3RydWN0IHJxICpycSA9IHJxX29mX3J0X3JxKHJ0X3JxKTsKKworCQlpZiAocnEtPm9ubGluZSkKKwkJCWNwdXByaV9zZXQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3B1LAorCQkJCSAgIHJ0X3JxLT5oaWdoZXN0X3ByaW8pOworCX0KKwogCXVwZGF0ZV9ydF9taWdyYXRpb24ocnFfb2ZfcnRfcnEocnRfcnEpKTsKICNlbmRpZiAvKiBDT05GSUdfU01QICovCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECkBAIC00NDksMjIgKzU4MywzMyBAQAogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGVucXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQorc3RhdGljIHZvaWQgX19lbnF1ZXVlX3J0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKIAlzdHJ1Y3QgcnRfcnEgKnJ0X3JxID0gcnRfcnFfb2Zfc2UocnRfc2UpOwogCXN0cnVjdCBydF9wcmlvX2FycmF5ICphcnJheSA9ICZydF9ycS0+YWN0aXZlOwogCXN0cnVjdCBydF9ycSAqZ3JvdXBfcnEgPSBncm91cF9ydF9ycShydF9zZSk7CisJc3RydWN0IGxpc3RfaGVhZCAqcXVldWUgPSBhcnJheS0+cXVldWUgKyBydF9zZV9wcmlvKHJ0X3NlKTsKIAotCWlmIChncm91cF9ycSAmJiBydF9ycV90aHJvdHRsZWQoZ3JvdXBfcnEpKQorCS8qCisJICogRG9uJ3QgZW5xdWV1ZSB0aGUgZ3JvdXAgaWYgaXRzIHRocm90dGxlZCwgb3Igd2hlbiBlbXB0eS4KKwkgKiBUaGUgbGF0dGVyIGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhlIGZvcm1lciB3aGVuIGEgY2hpbGQgZ3JvdXAKKwkgKiBnZXQgdGhyb3R0bGVkIGFuZCB0aGUgY3VycmVudCBncm91cCBkb2Vzbid0IGhhdmUgYW55IG90aGVyCisJICogYWN0aXZlIG1lbWJlcnMuCisJICovCisJaWYgKGdyb3VwX3JxICYmIChydF9ycV90aHJvdHRsZWQoZ3JvdXBfcnEpIHx8ICFncm91cF9ycS0+cnRfbnJfcnVubmluZykpCiAJCXJldHVybjsKIAotCWxpc3RfYWRkX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgYXJyYXktPnF1ZXVlICsgcnRfc2VfcHJpbyhydF9zZSkpOworCWlmIChydF9zZS0+bnJfY3B1c19hbGxvd2VkID09IDEpCisJCWxpc3RfYWRkKCZydF9zZS0+cnVuX2xpc3QsIHF1ZXVlKTsKKwllbHNlCisJCWxpc3RfYWRkX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgcXVldWUpOworCiAJX19zZXRfYml0KHJ0X3NlX3ByaW8ocnRfc2UpLCBhcnJheS0+Yml0bWFwKTsKIAogCWluY19ydF90YXNrcyhydF9zZSwgcnRfcnEpOwogfQogCi1zdGF0aWMgdm9pZCBkZXF1ZXVlX3J0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKK3N0YXRpYyB2b2lkIF9fZGVxdWV1ZV9ydF9lbnRpdHkoc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UpCiB7CiAJc3RydWN0IHJ0X3JxICpydF9ycSA9IHJ0X3JxX29mX3NlKHJ0X3NlKTsKIAlzdHJ1Y3QgcnRfcHJpb19hcnJheSAqYXJyYXkgPSAmcnRfcnEtPmFjdGl2ZTsKQEAgLTQ4MCwxMSArNjI1LDEwIEBACiAgKiBCZWNhdXNlIHRoZSBwcmlvIG9mIGFuIHVwcGVyIGVudHJ5IGRlcGVuZHMgb24gdGhlIGxvd2VyCiAgKiBlbnRyaWVzLCB3ZSBtdXN0IHJlbW92ZSBlbnRyaWVzIHRvcCAtIGRvd24uCiAgKi8KLXN0YXRpYyB2b2lkIGRlcXVldWVfcnRfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQorc3RhdGljIHZvaWQgZGVxdWV1ZV9ydF9zdGFjayhzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKLQlzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSwgKmJhY2sgPSBOVUxMOworCXN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKmJhY2sgPSBOVUxMOwogCi0JcnRfc2UgPSAmcC0+cnQ7CiAJZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKSB7CiAJCXJ0X3NlLT5iYWNrID0gYmFjazsKIAkJYmFjayA9IHJ0X3NlOwpAQCAtNDkyLDcgKzYzNiwyNiBAQAogCiAJZm9yIChydF9zZSA9IGJhY2s7IHJ0X3NlOyBydF9zZSA9IHJ0X3NlLT5iYWNrKSB7CiAJCWlmIChvbl9ydF9ycShydF9zZSkpCi0JCQlkZXF1ZXVlX3J0X2VudGl0eShydF9zZSk7CisJCQlfX2RlcXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGVucXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQoreworCWRlcXVldWVfcnRfc3RhY2socnRfc2UpOworCWZvcl9lYWNoX3NjaGVkX3J0X2VudGl0eShydF9zZSkKKwkJX19lbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRlcXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQoreworCWRlcXVldWVfcnRfc3RhY2socnRfc2UpOworCisJZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKSB7CisJCXN0cnVjdCBydF9ycSAqcnRfcnEgPSBncm91cF9ydF9ycShydF9zZSk7CisKKwkJaWYgKHJ0X3JxICYmIHJ0X3JxLT5ydF9ucl9ydW5uaW5nKQorCQkJX19lbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7CiAJfQogfQogCkBAIC01MDYsMzIgKzY2OSwxOSBAQAogCWlmICh3YWtldXApCiAJCXJ0X3NlLT50aW1lb3V0ID0gMDsKIAotCWRlcXVldWVfcnRfc3RhY2socCk7CisJZW5xdWV1ZV9ydF9lbnRpdHkocnRfc2UpOwogCi0JLyoKLQkgKiBlbnF1ZXVlIGV2ZXJ5Ym9keSwgYm90dG9tIC0gdXAuCi0JICovCi0JZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKQotCQllbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7CisJaW5jX2NwdV9sb2FkKHJxLCBwLT5zZS5sb2FkLndlaWdodCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRlcXVldWVfdGFza19ydChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBzbGVlcCkKIHsKIAlzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSA9ICZwLT5ydDsKLQlzdHJ1Y3QgcnRfcnEgKnJ0X3JxOwogCiAJdXBkYXRlX2N1cnJfcnQocnEpOworCWRlcXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKIAotCWRlcXVldWVfcnRfc3RhY2socCk7Ci0KLQkvKgotCSAqIHJlLWVucXVldWUgYWxsIG5vbi1lbXB0eSBydF9ycSBlbnRpdGllcy4KLQkgKi8KLQlmb3JfZWFjaF9zY2hlZF9ydF9lbnRpdHkocnRfc2UpIHsKLQkJcnRfcnEgPSBncm91cF9ydF9ycShydF9zZSk7Ci0JCWlmIChydF9ycSAmJiBydF9ycS0+cnRfbnJfcnVubmluZykKLQkJCWVucXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKLQl9CisJZGVjX2NwdV9sb2FkKHJxLCBwLT5zZS5sb2FkLndlaWdodCk7CiB9CiAKIC8qCkBAIC01NDMsNyArNjkzLDExIEBACiB7CiAJc3RydWN0IHJ0X3ByaW9fYXJyYXkgKmFycmF5ID0gJnJ0X3JxLT5hY3RpdmU7CiAKLQlsaXN0X21vdmVfdGFpbCgmcnRfc2UtPnJ1bl9saXN0LCBhcnJheS0+cXVldWUgKyBydF9zZV9wcmlvKHJ0X3NlKSk7CisJaWYgKG9uX3J0X3JxKHJ0X3NlKSkgeworCQlsaXN0X2RlbF9pbml0KCZydF9zZS0+cnVuX2xpc3QpOworCQlsaXN0X2FkZF90YWlsKCZydF9zZS0+cnVuX2xpc3QsCisJCQkgICAgICBhcnJheS0+cXVldWUgKyBydF9zZV9wcmlvKHJ0X3NlKSk7CisJfQogfQogCiBzdGF0aWMgdm9pZCByZXF1ZXVlX3Rhc2tfcnQoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQpAQCAtNjA2LDggKzc2MCwzNyBAQAogICovCiBzdGF0aWMgdm9pZCBjaGVja19wcmVlbXB0X2N1cnJfcnQoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewotCWlmIChwLT5wcmlvIDwgcnEtPmN1cnItPnByaW8pCisJaWYgKHAtPnByaW8gPCBycS0+Y3Vyci0+cHJpbykgewogCQlyZXNjaGVkX3Rhc2socnEtPmN1cnIpOworCQlyZXR1cm47CisJfQorCisjaWZkZWYgQ09ORklHX1NNUAorCS8qCisJICogSWY6CisJICoKKwkgKiAtIHRoZSBuZXdseSB3b2tlbiB0YXNrIGlzIG9mIGVxdWFsIHByaW9yaXR5IHRvIHRoZSBjdXJyZW50IHRhc2sKKwkgKiAtIHRoZSBuZXdseSB3b2tlbiB0YXNrIGlzIG5vbi1taWdyYXRhYmxlIHdoaWxlIGN1cnJlbnQgaXMgbWlncmF0YWJsZQorCSAqIC0gY3VycmVudCB3aWxsIGJlIHByZWVtcHRlZCBvbiB0aGUgbmV4dCByZXNjaGVkdWxlCisJICoKKwkgKiB3ZSBzaG91bGQgY2hlY2sgdG8gc2VlIGlmIGN1cnJlbnQgY2FuIHJlYWRpbHkgbW92ZSB0byBhIGRpZmZlcmVudAorCSAqIGNwdS4gIElmIHNvLCB3ZSB3aWxsIHJlc2NoZWR1bGUgdG8gYWxsb3cgdGhlIHB1c2ggbG9naWMgdG8gdHJ5CisJICogdG8gbW92ZSBjdXJyZW50IHNvbWV3aGVyZSBlbHNlLCBtYWtpbmcgcm9vbSBmb3Igb3VyIG5vbi1taWdyYXRhYmxlCisJICogdGFzay4KKwkgKi8KKwlpZigocC0+cHJpbyA9PSBycS0+Y3Vyci0+cHJpbykKKwkgICAmJiBwLT5ydC5ucl9jcHVzX2FsbG93ZWQgPT0gMQorCSAgICYmIHJxLT5jdXJyLT5ydC5ucl9jcHVzX2FsbG93ZWQgIT0gMSkgeworCQljcHVtYXNrX3QgbWFzazsKKworCQlpZiAoY3B1cHJpX2ZpbmQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3VyciwgJm1hc2spKQorCQkJLyoKKwkJCSAqIFRoZXJlIGFwcGVhcnMgdG8gYmUgb3RoZXIgY3B1cyB0aGF0IGNhbiBhY2NlcHQKKwkJCSAqIGN1cnJlbnQsIHNvIGxldHMgcmVzY2hlZHVsZSB0byB0cnkgYW5kIHB1c2ggaXQgYXdheQorCQkJICovCisJCQlyZXNjaGVkX3Rhc2socnEtPmN1cnIpOworCX0KKyNlbmRpZgogfQogCiBzdGF0aWMgc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcGlja19uZXh0X3J0X2VudGl0eShzdHJ1Y3QgcnEgKnJxLApAQCAtNzEwLDczICs4OTMsNiBAQAogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoY3B1bWFza190LCBsb2NhbF9jcHVfbWFzayk7CiAKLXN0YXRpYyBpbnQgZmluZF9sb3dlc3RfY3B1cyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGNwdW1hc2tfdCAqbG93ZXN0X21hc2spCi17Ci0JaW50ICAgICAgIGxvd2VzdF9wcmlvID0gLTE7Ci0JaW50ICAgICAgIGxvd2VzdF9jcHUgID0gLTE7Ci0JaW50ICAgICAgIGNvdW50ICAgICAgID0gMDsKLQlpbnQgICAgICAgY3B1OwotCi0JY3B1c19hbmQoKmxvd2VzdF9tYXNrLCB0YXNrX3JxKHRhc2spLT5yZC0+b25saW5lLCB0YXNrLT5jcHVzX2FsbG93ZWQpOwotCi0JLyoKLQkgKiBTY2FuIGVhY2ggcnEgZm9yIHRoZSBsb3dlc3QgcHJpby4KLQkgKi8KLQlmb3JfZWFjaF9jcHVfbWFzayhjcHUsICpsb3dlc3RfbWFzaykgewotCQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7Ci0KLQkJLyogV2UgbG9vayBmb3IgbG93ZXN0IFJUIHByaW8gb3Igbm9uLXJ0IENQVSAqLwotCQlpZiAocnEtPnJ0LmhpZ2hlc3RfcHJpbyA+PSBNQVhfUlRfUFJJTykgewotCQkJLyoKLQkJCSAqIGlmIHdlIGFscmVhZHkgZm91bmQgYSBsb3cgUlQgcXVldWUKLQkJCSAqIGFuZCBub3cgd2UgZm91bmQgdGhpcyBub24tcnQgcXVldWUKLQkJCSAqIGNsZWFyIHRoZSBtYXNrIGFuZCBzZXQgb3VyIGJpdC4KLQkJCSAqIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgcXVldWUgYXMgaXMKLQkJCSAqIGFuZCB0aGUgY291bnQ9PTEgd2lsbCBjYXVzZSB0aGUgYWxnb3JpdGhtCi0JCQkgKiB0byB1c2UgdGhlIGZpcnN0IGJpdCBmb3VuZC4KLQkJCSAqLwotCQkJaWYgKGxvd2VzdF9jcHUgIT0gLTEpIHsKLQkJCQljcHVzX2NsZWFyKCpsb3dlc3RfbWFzayk7Ci0JCQkJY3B1X3NldChycS0+Y3B1LCAqbG93ZXN0X21hc2spOwotCQkJfQotCQkJcmV0dXJuIDE7Ci0JCX0KLQotCQkvKiBubyBsb2NraW5nIGZvciBub3cgKi8KLQkJaWYgKChycS0+cnQuaGlnaGVzdF9wcmlvID4gdGFzay0+cHJpbykKLQkJICAgICYmIChycS0+cnQuaGlnaGVzdF9wcmlvID49IGxvd2VzdF9wcmlvKSkgewotCQkJaWYgKHJxLT5ydC5oaWdoZXN0X3ByaW8gPiBsb3dlc3RfcHJpbykgewotCQkJCS8qIG5ldyBsb3cgLSBjbGVhciBvbGQgZGF0YSAqLwotCQkJCWxvd2VzdF9wcmlvID0gcnEtPnJ0LmhpZ2hlc3RfcHJpbzsKLQkJCQlsb3dlc3RfY3B1ID0gY3B1OwotCQkJCWNvdW50ID0gMDsKLQkJCX0KLQkJCWNvdW50Kys7Ci0JCX0gZWxzZQotCQkJY3B1X2NsZWFyKGNwdSwgKmxvd2VzdF9tYXNrKTsKLQl9Ci0KLQkvKgotCSAqIENsZWFyIG91dCBhbGwgdGhlIHNldCBiaXRzIHRoYXQgcmVwcmVzZW50Ci0JICogcnVucXVldWVzIHRoYXQgd2VyZSBvZiBoaWdoZXIgcHJpbyB0aGFuCi0JICogdGhlIGxvd2VzdF9wcmlvLgotCSAqLwotCWlmIChsb3dlc3RfY3B1ID4gMCkgewotCQkvKgotCQkgKiBQZXJoYXBzIHdlIGNvdWxkIGFkZCBhbm90aGVyIGNwdW1hc2sgb3AgdG8KLQkJICogemVybyBvdXQgYml0cy4gTGlrZSBjcHVfemVyb19iaXRzKGNwdW1hc2ssIG5yYml0cyk7Ci0JCSAqIFRoZW4gdGhhdCBjb3VsZCBiZSBvcHRpbWl6ZWQgdG8gdXNlIG1lbXNldCBhbmQgc3VjaC4KLQkJICovCi0JCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgKmxvd2VzdF9tYXNrKSB7Ci0JCQlpZiAoY3B1ID49IGxvd2VzdF9jcHUpCi0JCQkJYnJlYWs7Ci0JCQljcHVfY2xlYXIoY3B1LCAqbG93ZXN0X21hc2spOwotCQl9Ci0JfQotCi0JcmV0dXJuIGNvdW50OwotfQotCiBzdGF0aWMgaW5saW5lIGludCBwaWNrX29wdGltYWxfY3B1KGludCB0aGlzX2NwdSwgY3B1bWFza190ICptYXNrKQogewogCWludCBmaXJzdDsKQEAgLTc5OCwxOSArOTE0LDE0IEBACiAJY3B1bWFza190ICpsb3dlc3RfbWFzayA9ICZfX2dldF9jcHVfdmFyKGxvY2FsX2NwdV9tYXNrKTsKIAlpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJaW50IGNwdSAgICAgID0gdGFza19jcHUodGFzayk7Ci0JaW50IGNvdW50ICAgID0gZmluZF9sb3dlc3RfY3B1cyh0YXNrLCBsb3dlc3RfbWFzayk7CiAKLQlpZiAoIWNvdW50KQorCWlmICh0YXNrLT5ydC5ucl9jcHVzX2FsbG93ZWQgPT0gMSkKKwkJcmV0dXJuIC0xOyAvKiBObyBvdGhlciB0YXJnZXRzIHBvc3NpYmxlICovCisKKwlpZiAoIWNwdXByaV9maW5kKCZ0YXNrX3JxKHRhc2spLT5yZC0+Y3B1cHJpLCB0YXNrLCBsb3dlc3RfbWFzaykpCiAJCXJldHVybiAtMTsgLyogTm8gdGFyZ2V0cyBmb3VuZCAqLwogCiAJLyoKLQkgKiBUaGVyZSBpcyBubyBzZW5zZSBpbiBwZXJmb3JtaW5nIGFuIG9wdGltYWwgc2VhcmNoIGlmIG9ubHkgb25lCi0JICogdGFyZ2V0IGlzIGZvdW5kLgotCSAqLwotCWlmIChjb3VudCA9PSAxKQotCQlyZXR1cm4gZmlyc3RfY3B1KCpsb3dlc3RfbWFzayk7Ci0KLQkvKgogCSAqIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBidWlsdCBhIG1hc2sgb2YgY3B1cyByZXByZXNlbnRpbmcgdGhlCiAJICogbG93ZXN0IHByaW9yaXR5IHRhc2tzIGluIHRoZSBzeXN0ZW0uICBOb3cgd2Ugd2FudCB0byBlbGVjdAogCSAqIHRoZSBiZXN0IG9uZSBiYXNlZCBvbiBvdXIgYWZmaW5pdHkgYW5kIHRvcG9sb2d5LgpAQCAtMTE1MywxNyArMTI2NCwyNSBAQAogfQogCiAvKiBBc3N1bWVzIHJxLT5sb2NrIGlzIGhlbGQgKi8KLXN0YXRpYyB2b2lkIGpvaW5fZG9tYWluX3J0KHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBycV9vbmxpbmVfcnQoc3RydWN0IHJxICpycSkKIHsKIAlpZiAocnEtPnJ0Lm92ZXJsb2FkZWQpCiAJCXJ0X3NldF9vdmVybG9hZChycSk7CisKKwlfX2VuYWJsZV9ydW50aW1lKHJxKTsKKworCWNwdXByaV9zZXQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3B1LCBycS0+cnQuaGlnaGVzdF9wcmlvKTsKIH0KIAogLyogQXNzdW1lcyBycS0+bG9jayBpcyBoZWxkICovCi1zdGF0aWMgdm9pZCBsZWF2ZV9kb21haW5fcnQoc3RydWN0IHJxICpycSkKK3N0YXRpYyB2b2lkIHJxX29mZmxpbmVfcnQoc3RydWN0IHJxICpycSkKIHsKIAlpZiAocnEtPnJ0Lm92ZXJsb2FkZWQpCiAJCXJ0X2NsZWFyX292ZXJsb2FkKHJxKTsKKworCV9fZGlzYWJsZV9ydW50aW1lKHJxKTsKKworCWNwdXByaV9zZXQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3B1LCBDUFVQUklfSU5WQUxJRCk7CiB9CiAKIC8qCkBAIC0xMzI2LDggKzE0NDUsOCBAQAogCS5sb2FkX2JhbGFuY2UJCT0gbG9hZF9iYWxhbmNlX3J0LAogCS5tb3ZlX29uZV90YXNrCQk9IG1vdmVfb25lX3Rhc2tfcnQsCiAJLnNldF9jcHVzX2FsbG93ZWQgICAgICAgPSBzZXRfY3B1c19hbGxvd2VkX3J0LAotCS5qb2luX2RvbWFpbiAgICAgICAgICAgID0gam9pbl9kb21haW5fcnQsCi0JLmxlYXZlX2RvbWFpbiAgICAgICAgICAgPSBsZWF2ZV9kb21haW5fcnQsCisJLnJxX29ubGluZSAgICAgICAgICAgICAgPSBycV9vbmxpbmVfcnQsCisJLnJxX29mZmxpbmUgICAgICAgICAgICAgPSBycV9vZmZsaW5lX3J0LAogCS5wcmVfc2NoZWR1bGUJCT0gcHJlX3NjaGVkdWxlX3J0LAogCS5wb3N0X3NjaGVkdWxlCQk9IHBvc3Rfc2NoZWR1bGVfcnQsCiAJLnRhc2tfd2FrZV91cAkJPSB0YXNrX3dha2VfdXBfcnQsCkBAIC0xMzQwLDMgKzE0NTksMTcgQEAKIAkucHJpb19jaGFuZ2VkCQk9IHByaW9fY2hhbmdlZF9ydCwKIAkuc3dpdGNoZWRfdG8JCT0gc3dpdGNoZWRfdG9fcnQsCiB9OworCisjaWZkZWYgQ09ORklHX1NDSEVEX0RFQlVHCitleHRlcm4gdm9pZCBwcmludF9ydF9ycShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBjcHUsIHN0cnVjdCBydF9ycSAqcnRfcnEpOworCitzdGF0aWMgdm9pZCBwcmludF9ydF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBjcHUpCit7CisJc3RydWN0IHJ0X3JxICpydF9ycTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlmb3JfZWFjaF9sZWFmX3J0X3JxKHJ0X3JxLCBjcHVfcnEoY3B1KSkKKwkJcHJpbnRfcnRfcnEobSwgY3B1LCBydF9ycSk7CisJcmN1X3JlYWRfdW5sb2NrKCk7Cit9CisjZW5kaWYgLyogQ09ORklHX1NDSEVEX0RFQlVHICovCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfc3RhdHMuaCBiL2tlcm5lbC9zY2hlZF9zdGF0cy5oCmluZGV4IGEzODg3OGUuLjgzODVkNDMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9zdGF0cy5oCisrKyBiL2tlcm5lbC9zY2hlZF9zdGF0cy5oCkBAIC0xMTgsNiArMTE4LDEzIEBACiAJaWYgKHJxKQogCQlycS0+cnFfc2NoZWRfaW5mby5jcHVfdGltZSArPSBkZWx0YTsKIH0KKworc3RhdGljIGlubGluZSB2b2lkCitycV9zY2hlZF9pbmZvX2RlcXVldWVkKHN0cnVjdCBycSAqcnEsIHVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSkKK3sKKwlpZiAocnEpCisJCXJxLT5ycV9zY2hlZF9pbmZvLnJ1bl9kZWxheSArPSBkZWx0YTsKK30KICMgZGVmaW5lIHNjaGVkc3RhdF9pbmMocnEsIGZpZWxkKQlkbyB7IChycSktPmZpZWxkKys7IH0gd2hpbGUgKDApCiAjIGRlZmluZSBzY2hlZHN0YXRfYWRkKHJxLCBmaWVsZCwgYW10KQlkbyB7IChycSktPmZpZWxkICs9IChhbXQpOyB9IHdoaWxlICgwKQogIyBkZWZpbmUgc2NoZWRzdGF0X3NldCh2YXIsIHZhbCkJZG8geyB2YXIgPSAodmFsKTsgfSB3aGlsZSAoMCkKQEAgLTEyNiw2ICsxMzMsOSBAQAogcnFfc2NoZWRfaW5mb19hcnJpdmUoc3RydWN0IHJxICpycSwgdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhKQoge30KIHN0YXRpYyBpbmxpbmUgdm9pZAorcnFfc2NoZWRfaW5mb19kZXF1ZXVlZChzdHJ1Y3QgcnEgKnJxLCB1bnNpZ25lZCBsb25nIGxvbmcgZGVsdGEpCit7fQorc3RhdGljIGlubGluZSB2b2lkCiBycV9zY2hlZF9pbmZvX2RlcGFydChzdHJ1Y3QgcnEgKnJxLCB1bnNpZ25lZCBsb25nIGxvbmcgZGVsdGEpCiB7fQogIyBkZWZpbmUgc2NoZWRzdGF0X2luYyhycSwgZmllbGQpCWRvIHsgfSB3aGlsZSAoMCkKQEAgLTEzNCw2ICsxNDQsMTEgQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfU0NIRURTVEFUUykgfHwgZGVmaW5lZChDT05GSUdfVEFTS19ERUxBWV9BQ0NUKQorc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2luZm9fcmVzZXRfZGVxdWV1ZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0KQoreworCXQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQgPSAwOworfQorCiAvKgogICogQ2FsbGVkIHdoZW4gYSBwcm9jZXNzIGlzIGRlcXVldWVkIGZyb20gdGhlIGFjdGl2ZSBhcnJheSBhbmQgZ2l2ZW4KICAqIHRoZSBjcHUuICBXZSBzaG91bGQgbm90ZSB0aGF0IHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBpbnRlcmFjdGl2ZQpAQCAtMTQzLDE1ICsxNTgsMjIgQEAKICAqIGFjdGl2ZSBxdWV1ZSwgdGh1cyBkZWxheWluZyB0YXNrcyBpbiB0aGUgZXhwaXJlZCBxdWV1ZSBmcm9tIHJ1bm5pbmc7CiAgKiBzZWUgc2NoZWR1bGVyX3RpY2soKSkuCiAgKgotICogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIHNjaGVkX2luZm9fYXJyaXZlKCksIHJhdGhlciB0aGFuCi0gKiBkZXF1ZXVlX3Rhc2soKS4gRXZlbiB0aG91Z2ggYSB0YXNrIG1heSBiZSBxdWV1ZWQgYW5kIGRlcXVldWVkIG11bHRpcGxlCi0gKiB0aW1lcyBhcyBpdCBpcyBzaHVmZmxlZCBhYm91dCwgd2UncmUgcmVhbGx5IGludGVyZXN0ZWQgaW4ga25vd2luZyBob3cKLSAqIGxvbmcgaXQgd2FzIGZyb20gdGhlICpmaXJzdCogdGltZSBpdCB3YXMgcXVldWVkIHRvIHRoZSB0aW1lIHRoYXQgaXQKLSAqIGZpbmFsbHkgaGl0IGEgY3B1LgorICogVGhvdWdoIHdlIGFyZSBpbnRlcmVzdGVkIGluIGtub3dpbmcgaG93IGxvbmcgaXQgd2FzIGZyb20gdGhlICpmaXJzdCogdGltZSBhCisgKiB0YXNrIHdhcyBxdWV1ZWQgdG8gdGhlIHRpbWUgdGhhdCBpdCBmaW5hbGx5IGhpdCBhIGNwdSwgd2UgY2FsbCB0aGlzIHJvdXRpbmUKKyAqIGZyb20gZGVxdWV1ZV90YXNrKCkgdG8gYWNjb3VudCBmb3IgcG9zc2libGUgcnEtPmNsb2NrIHNrZXcgYWNyb3NzIGNwdXMuIFRoZQorICogZGVsdGEgdGFrZW4gb24gZWFjaCBjcHUgd291bGQgYW5udWwgdGhlIHNrZXcuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9pbmZvX2RlcXVldWVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKIHsKLQl0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkID0gMDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgbm93ID0gdGFza19ycSh0KS0+Y2xvY2ssIGRlbHRhID0gMDsKKworCWlmICh1bmxpa2VseShzY2hlZF9pbmZvX29uKCkpKQorCQlpZiAodC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZCkKKwkJCWRlbHRhID0gbm93IC0gdC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZDsKKwlzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHQpOworCXQtPnNjaGVkX2luZm8ucnVuX2RlbGF5ICs9IGRlbHRhOworCisJcnFfc2NoZWRfaW5mb19kZXF1ZXVlZCh0YXNrX3JxKHQpLCBkZWx0YSk7CiB9CiAKIC8qCkBAIC0xNjUsNyArMTg3LDcgQEAKIAogCWlmICh0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkKQogCQlkZWx0YSA9IG5vdyAtIHQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQ7Ci0Jc2NoZWRfaW5mb19kZXF1ZXVlZCh0KTsKKwlzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHQpOwogCXQtPnNjaGVkX2luZm8ucnVuX2RlbGF5ICs9IGRlbHRhOwogCXQtPnNjaGVkX2luZm8ubGFzdF9hcnJpdmFsID0gbm93OwogCXQtPnNjaGVkX2luZm8ucGNvdW50Kys7CkBAIC0xOTgsNiArMjIwLDkgQEAKIC8qCiAgKiBDYWxsZWQgd2hlbiBhIHByb2Nlc3MgY2Vhc2VzIGJlaW5nIHRoZSBhY3RpdmUtcnVubmluZyBwcm9jZXNzLCBlaXRoZXIKICAqIHZvbHVudGFyaWx5IG9yIGludm9sdW50YXJpbHkuICBOb3cgd2UgY2FuIGNhbGN1bGF0ZSBob3cgbG9uZyB3ZSByYW4uCisgKiBBbHNvLCBpZiB0aGUgcHJvY2VzcyBpcyBzdGlsbCBpbiB0aGUgVEFTS19SVU5OSU5HIHN0YXRlLCBjYWxsCisgKiBzY2hlZF9pbmZvX3F1ZXVlZCgpIHRvIG1hcmsgdGhhdCBpdCBoYXMgbm93IGFnYWluIHN0YXJ0ZWQgd2FpdGluZyBvbgorICogdGhlIHJ1bnF1ZXVlLgogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfaW5mb19kZXBhcnQoc3RydWN0IHRhc2tfc3RydWN0ICp0KQogewpAQCAtMjA2LDYgKzIzMSw5IEBACiAKIAl0LT5zY2hlZF9pbmZvLmNwdV90aW1lICs9IGRlbHRhOwogCXJxX3NjaGVkX2luZm9fZGVwYXJ0KHRhc2tfcnEodCksIGRlbHRhKTsKKworCWlmICh0LT5zdGF0ZSA9PSBUQVNLX1JVTk5JTkcpCisJCXNjaGVkX2luZm9fcXVldWVkKHQpOwogfQogCiAvKgpAQCAtMjM2LDcgKzI2NCw5IEBACiAJCV9fc2NoZWRfaW5mb19zd2l0Y2gocHJldiwgbmV4dCk7CiB9CiAjZWxzZQotI2RlZmluZSBzY2hlZF9pbmZvX3F1ZXVlZCh0KQkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBzY2hlZF9pbmZvX3N3aXRjaCh0LCBuZXh0KQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNjaGVkX2luZm9fcXVldWVkKHQpCQkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHQpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgc2NoZWRfaW5mb19kZXF1ZXVlZCh0KQkJCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgc2NoZWRfaW5mb19zd2l0Y2godCwgbmV4dCkJCWRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZiAvKiBDT05GSUdfU0NIRURTVEFUUyB8fCBDT05GSUdfVEFTS19ERUxBWV9BQ0NUICovCiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9zZW1hcGhvcmUuYyBiL2tlcm5lbC9zZW1hcGhvcmUuYwppbmRleCA1YzI5NDJlLi5hYWFlYWU4IDEwMDY0NAotLS0gYS9rZXJuZWwvc2VtYXBob3JlLmMKKysrIGIva2VybmVsL3NlbWFwaG9yZS5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zZW1hcGhvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgogCiBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2Rvd24oc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKIHN0YXRpYyBub2lubGluZSBpbnQgX19kb3duX2ludGVycnVwdGlibGUoc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zb2Z0aXJxLmMgYi9rZXJuZWwvc29mdGlycS5jCmluZGV4IDM2ZTA2MTcuLjNlOWU4OTYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zb2Z0aXJxLmMKKysrIGIva2VybmVsL3NvZnRpcnEuYwpAQCAtMTMxLDQ4ICsxMzEsMTEgQEAKIAogRVhQT1JUX1NZTUJPTChfbG9jYWxfYmhfZW5hYmxlKTsKIAotdm9pZCBsb2NhbF9iaF9lbmFibGUodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBfbG9jYWxfYmhfZW5hYmxlX2lwKHVuc2lnbmVkIGxvbmcgaXApCiB7CisJV0FSTl9PTl9PTkNFKGluX2lycSgpIHx8IGlycXNfZGlzYWJsZWQoKSk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCVdBUk5fT05fT05DRShpbl9pcnEoKSk7Ci0jZW5kaWYKLQlXQVJOX09OX09OQ0UoaXJxc19kaXNhYmxlZCgpKTsKLQotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLSNlbmRpZgotCS8qCi0JICogQXJlIHNvZnRpcnFzIGdvaW5nIHRvIGJlIHR1cm5lZCBvbiBub3c6Ci0JICovCi0JaWYgKHNvZnRpcnFfY291bnQoKSA9PSBTT0ZUSVJRX09GRlNFVCkKLQkJdHJhY2Vfc29mdGlycXNfb24oKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLQkvKgotCSAqIEtlZXAgcHJlZW1wdGlvbiBkaXNhYmxlZCB1bnRpbCB3ZSBhcmUgZG9uZSB3aXRoCi0JICogc29mdGlycSBwcm9jZXNzaW5nOgotIAkgKi8KLSAJc3ViX3ByZWVtcHRfY291bnQoU09GVElSUV9PRkZTRVQgLSAxKTsKLQotCWlmICh1bmxpa2VseSghaW5faW50ZXJydXB0KCkgJiYgbG9jYWxfc29mdGlycV9wZW5kaW5nKCkpKQotCQlkb19zb2Z0aXJxKCk7Ci0KLQlkZWNfcHJlZW1wdF9jb3VudCgpOwotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLSNlbmRpZgotCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwotfQotRVhQT1JUX1NZTUJPTChsb2NhbF9iaF9lbmFibGUpOwotCi12b2lkIGxvY2FsX2JoX2VuYWJsZV9pcCh1bnNpZ25lZCBsb25nIGlwKQotewotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlXQVJOX09OX09OQ0UoaW5faXJxKCkpOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAjZW5kaWYKIAkvKgogCSAqIEFyZSBzb2Z0aXJxcyBnb2luZyB0byBiZSB0dXJuZWQgb24gbm93OgpAQCAtMTkwLDEwICsxNTMsMjEgQEAKIAogCWRlY19wcmVlbXB0X2NvdW50KCk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCWxvY2FsX2lycV9lbmFibGUoKTsKICNlbmRpZgogCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwogfQorCit2b2lkIGxvY2FsX2JoX2VuYWJsZSh2b2lkKQoreworCV9sb2NhbF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKK30KK0VYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlKTsKKwordm9pZCBsb2NhbF9iaF9lbmFibGVfaXAodW5zaWduZWQgbG9uZyBpcCkKK3sKKwlfbG9jYWxfYmhfZW5hYmxlX2lwKGlwKTsKK30KIEVYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlX2lwKTsKIAogLyoKQEAgLTM0Nyw5ICszMjEsOCBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAotdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24qKSwgdm9pZCAqZGF0YSkKK3ZvaWQgb3Blbl9zb2Z0aXJxKGludCBuciwgdm9pZCAoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopKQogewotCXNvZnRpcnFfdmVjW25yXS5kYXRhID0gZGF0YTsKIAlzb2Z0aXJxX3ZlY1tucl0uYWN0aW9uID0gYWN0aW9uOwogfQogCkBAIC0zNjAsMTAgKzMzMyw4IEBACiAJc3RydWN0IHRhc2tsZXRfc3RydWN0ICoqdGFpbDsKIH07CiAKLS8qIFNvbWUgY29tcGlsZXJzIGRpc29iZXkgc2VjdGlvbiBhdHRyaWJ1dGUgb24gc3RhdGljcyB3aGVuIG5vdAotICAgaW5pdGlhbGl6ZWQgLS0gUlIgKi8KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYykgPSB7IE5VTEwgfTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X2hpX3ZlYykgPSB7IE5VTEwgfTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYyk7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRhc2tsZXRfaGVhZCwgdGFza2xldF9oaV92ZWMpOwogCiB2b2lkIF9fdGFza2xldF9zY2hlZHVsZShzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpCiB7CkBAIC01MDMsOCArNDc0LDggQEAKIAkJCSZwZXJfY3B1KHRhc2tsZXRfaGlfdmVjLCBjcHUpLmhlYWQ7CiAJfQogCi0Jb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24sIE5VTEwpOwotCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbiwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24pOworCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbik7CiB9CiAKIHN0YXRpYyBpbnQga3NvZnRpcnFkKHZvaWQgKiBfX2JpbmRfY3B1KQpAQCAtNjQ1LDcgKzYxNiw3IEBACiAKIAkJcCA9IHBlcl9jcHUoa3NvZnRpcnFkLCBob3RjcHUpOwogCQlwZXJfY3B1KGtzb2Z0aXJxZCwgaG90Y3B1KSA9IE5VTEw7Ci0JCXNjaGVkX3NldHNjaGVkdWxlcihwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOworCQlzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCQlrdGhyZWFkX3N0b3AocCk7CiAJCXRha2VvdmVyX3Rhc2tsZXRzKGhvdGNwdSk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NvZnRsb2NrdXAuYyBiL2tlcm5lbC9zb2Z0bG9ja3VwLmMKaW5kZXggMDFiNjUyMi4uYTI3MmQ3OCAxMDA2NDQKLS0tIGEva2VybmVsL3NvZnRsb2NrdXAuYworKysgYi9rZXJuZWwvc29mdGxvY2t1cC5jCkBAIC00OSwxMiArNDksMTcgQEAKIAlyZXR1cm4gY3B1X2Nsb2NrKHRoaXNfY3B1KSA+PiAzMExMOyAgLyogMl4zMCB+PSAxMF45ICovCiB9CiAKLXZvaWQgdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZyh2b2lkKQorc3RhdGljIHZvaWQgX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKHZvaWQpCiB7CiAJaW50IHRoaXNfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAogCV9fcmF3X2dldF9jcHVfdmFyKHRvdWNoX3RpbWVzdGFtcCkgPSBnZXRfdGltZXN0YW1wKHRoaXNfY3B1KTsKIH0KKwordm9pZCB0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKHZvaWQpCit7CisJX19yYXdfZ2V0X2NwdV92YXIodG91Y2hfdGltZXN0YW1wKSA9IDA7Cit9CiBFWFBPUlRfU1lNQk9MKHRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2cpOwogCiB2b2lkIHRvdWNoX2FsbF9zb2Z0bG9ja3VwX3dhdGNoZG9ncyh2b2lkKQpAQCAtODAsNyArODUsNyBAQAogCXVuc2lnbmVkIGxvbmcgbm93OwogCiAJaWYgKHRvdWNoX3RpbWVzdGFtcCA9PSAwKSB7Ci0JCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKKwkJX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTk1LDcgKzEwMCw3IEBACiAKIAkvKiBkbyBub3QgcHJpbnQgZHVyaW5nIGVhcmx5IGJvb3R1cDogKi8KIAlpZiAodW5saWtlbHkoc3lzdGVtX3N0YXRlICE9IFNZU1RFTV9SVU5OSU5HKSkgewotCQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJCV9fdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMTUsNiArMTIwLDcgQEAKIAlwcmludGsoS0VSTl9FUlIgIkJVRzogc29mdCBsb2NrdXAgLSBDUFUjJWQgc3R1Y2sgZm9yICVsdXMhIFslczolZF1cbiIsCiAJCQl0aGlzX2NwdSwgbm93IC0gdG91Y2hfdGltZXN0YW1wLAogCQkJY3VycmVudC0+Y29tbSwgdGFza19waWRfbnIoY3VycmVudCkpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAocmVncykKIAkJc2hvd19yZWdzKHJlZ3MpOwogCWVsc2UKQEAgLTIxNCw3ICsyMjAsNyBAQAogCXNjaGVkX3NldHNjaGVkdWxlcihjdXJyZW50LCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCiAJLyogaW5pdGlhbGl6ZSB0aW1lc3RhbXAgKi8KLQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CiAKIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwogCS8qCkBAIC0yMjMsNyArMjI5LDcgQEAKIAkgKiBkZWJ1Zy1wcmludG91dCB0cmlnZ2VycyBpbiBzb2Z0bG9ja3VwX3RpY2soKS4KIAkgKi8KIAl3aGlsZSAoIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgewotCQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJCV9fdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwogCQlzY2hlZHVsZSgpOwogCiAJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCmRpZmYgLS1naXQgYS9rZXJuZWwvc3BpbmxvY2suYyBiL2tlcm5lbC9zcGlubG9jay5jCmluZGV4IGFlMjhjODIuLmExZmI1NGMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zcGlubG9jay5jCisrKyBiL2tlcm5lbC9zcGlubG9jay5jCkBAIC00MzYsNyArNDM2LDcgQEAKIH0KIEVYUE9SVF9TWU1CT0woX3NwaW5fdHJ5bG9ja19iaCk7CiAKLWludCBpbl9sb2NrX2Z1bmN0aW9ucyh1bnNpZ25lZCBsb25nIGFkZHIpCitub3RyYWNlIGludCBpbl9sb2NrX2Z1bmN0aW9ucyh1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJLyogTGlua2VyIGFkZHMgdGhlc2U6IHN0YXJ0IGFuZCBlbmQgb2YgX19sb2NrZnVuYyBmdW5jdGlvbnMgKi8KIAlleHRlcm4gY2hhciBfX2xvY2tfdGV4dF9zdGFydFtdLCBfX2xvY2tfdGV4dF9lbmRbXTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IGI3MTgxNmUuLjk0YjUyN2UgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIva2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtNiwxOSArNiwyMSBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiBSZWQgSGF0LCBJbmMuLCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KICAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KICNpbmNsdWRlIDxsaW51eC9zdGFja3RyYWNlLmg+CiAKIHZvaWQgcHJpbnRfc3RhY2tfdHJhY2Uoc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSwgaW50IHNwYWNlcykKIHsKLQlpbnQgaSwgajsKKwlpbnQgaTsKKworCWlmIChXQVJOX09OKCF0cmFjZS0+ZW50cmllcykpCisJCXJldHVybjsKIAogCWZvciAoaSA9IDA7IGkgPCB0cmFjZS0+bnJfZW50cmllczsgaSsrKSB7Ci0JCXVuc2lnbmVkIGxvbmcgaXAgPSB0cmFjZS0+ZW50cmllc1tpXTsKLQotCQlmb3IgKGogPSAwOyBqIDwgc3BhY2VzICsgMTsgaisrKQotCQkJcHJpbnRrKCIgIik7Ci0JCXByaW50X2lwX3N5bShpcCk7CisJCXByaW50aygiJSpjIiwgMSArIHNwYWNlcywgJyAnKTsKKwkJcHJpbnRfaXBfc3ltKHRyYWNlLT5lbnRyaWVzW2ldKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MX0dQTChwcmludF9zdGFja190cmFjZSk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9zdG9wX21hY2hpbmUuYyBiL2tlcm5lbC9zdG9wX21hY2hpbmUuYwppbmRleCBiNzM1MGJiLi5iYTliMjA1IDEwMDY0NAotLS0gYS9rZXJuZWwvc3RvcF9tYWNoaW5lLmMKKysrIGIva2VybmVsL3N0b3BfbWFjaGluZS5jCkBAIC0xODcsNyArMTg3LDcgQEAKIAkJc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtID0geyAuc2NoZWRfcHJpb3JpdHkgPSBNQVhfUlRfUFJJTy0xIH07CiAKIAkJLyogT25lIGhpZ2gtcHJpbyB0aHJlYWQgcGVyIGNwdS4gIFdlJ2xsIGRvIHRoaXMgb25lLiAqLwotCQlzY2hlZF9zZXRzY2hlZHVsZXIocCwgU0NIRURfRklGTywgJnBhcmFtKTsKKwkJc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2socCwgU0NIRURfRklGTywgJnBhcmFtKTsKIAkJa3RocmVhZF9iaW5kKHAsIGNwdSk7CiAJCXdha2VfdXBfcHJvY2VzcyhwKTsKIAkJd2FpdF9mb3JfY29tcGxldGlvbigmc21kYXRhLmRvbmUpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3N5c2N0bC5jIGIva2VybmVsL3N5c2N0bC5jCmluZGV4IDI5MTE2NjUuLjBkNTYyZDYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zeXNjdGwuYworKysgYi9rZXJuZWwvc3lzY3RsLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9uZnNfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KQEAgLTEzMiw4ICsxMzMsNiBAQAogZXh0ZXJuIGludCBzcGluX3JldHJ5OwogI2VuZGlmCiAKLWV4dGVybiBpbnQgc3lzY3RsX2h6X3RpbWVyOwotCiAjaWZkZWYgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QKIGV4dGVybiBpbnQgYWNjdF9wYXJtW107CiAjZW5kaWYKQEAgLTI2Niw2ICsyNjUsMTQgQEAKIAl9LAogCXsKIAkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCisJCS5wcm9jbmFtZQk9ICJzY2hlZF9zaGFyZXNfcmF0ZWxpbWl0IiwKKwkJLmRhdGEJCT0gJnN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0LAorCQkubWF4bGVuCQk9IHNpemVvZih1bnNpZ25lZCBpbnQpLAorCQkubW9kZQkJPSAwNjQ0LAorCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9pbnR2ZWMsCisJfSwKKwl7CisJCS5jdGxfbmFtZQk9IENUTF9VTk5VTUJFUkVELAogCQkucHJvY25hbWUJPSAic2NoZWRfY2hpbGRfcnVuc19maXJzdCIsCiAJCS5kYXRhCQk9ICZzeXNjdGxfc2NoZWRfY2hpbGRfcnVuc19maXJzdCwKIAkJLm1heGxlbgkJPSBzaXplb2YodW5zaWduZWQgaW50KSwKQEAgLTQ1NSw2ICs0NjIsMTYgQEAKIAkJLm1vZGUJCT0gMDY0NCwKIAkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2RvaW50dmVjLAogCX0sCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCXsKKwkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCisJCS5wcm9jbmFtZQk9ICJmdHJhY2VfZW5hYmxlZCIsCisJCS5kYXRhCQk9ICZmdHJhY2VfZW5hYmxlZCwKKwkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnByb2NfaGFuZGxlcgk9ICZmdHJhY2VfZW5hYmxlX3N5c2N0bCwKKwl9LAorI2VuZGlmCiAjaWZkZWYgQ09ORklHX0tNT0QKIAl7CiAJCS5jdGxfbmFtZQk9IEtFUk5fTU9EUFJPQkUsCkBAIC01NjMsMTYgKzU4MCw2IEBACiAJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19kb2ludHZlYywKIAl9LAogI2VuZGlmCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLQl7Ci0JCS5jdGxfbmFtZSAgICAgICA9IEtFUk5fSFpfVElNRVIsCi0JCS5wcm9jbmFtZSAgICAgICA9ICJoel90aW1lciIsCi0JCS5kYXRhICAgICAgICAgICA9ICZzeXNjdGxfaHpfdGltZXIsCi0JCS5tYXhsZW4gICAgICAgICA9IHNpemVvZihpbnQpLAotCQkubW9kZSAgICAgICAgICAgPSAwNjQ0LAotCQkucHJvY19oYW5kbGVyICAgPSAmcHJvY19kb2ludHZlYywKLQl9LAotI2VuZGlmCiAJewogCQkuY3RsX25hbWUJPSBLRVJOX1MzOTBfVVNFUl9ERUJVR19MT0dHSU5HLAogCQkucHJvY25hbWUJPSAidXNlcnByb2Nlc3NfZGVidWciLApkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0LmMKaW5kZXggNTdhMWYwMi4uNjdmODBjMiAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYworKysgYi9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jCkBAIC0zMCw2ICszMCw3IEBACiBzdHJ1Y3QgdGlja19kZXZpY2UgdGlja19icm9hZGNhc3RfZGV2aWNlOwogc3RhdGljIGNwdW1hc2tfdCB0aWNrX2Jyb2FkY2FzdF9tYXNrOwogc3RhdGljIERFRklORV9TUElOTE9DSyh0aWNrX2Jyb2FkY2FzdF9sb2NrKTsKK3N0YXRpYyBpbnQgdGlja19icm9hZGNhc3RfZm9yY2U7CiAKICNpZmRlZiBDT05GSUdfVElDS19PTkVTSE9UCiBzdGF0aWMgdm9pZCB0aWNrX2Jyb2FkY2FzdF9jbGVhcl9vbmVzaG90KGludCBjcHUpOwpAQCAtMjMyLDEwICsyMzMsMTEgQEAKIAkJCQkJCSAgICAgQ0xPQ0tfRVZUX01PREVfU0hVVERPV04pOwogCQl9CiAJCWlmICgqcmVhc29uID09IENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0ZPUkNFKQotCQkJZGV2LT5mZWF0dXJlcyB8PSBDTE9DS19FVlRfRkVBVF9EVU1NWTsKKwkJCXRpY2tfYnJvYWRjYXN0X2ZvcmNlID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBDTE9DS19FVlRfTk9USUZZX0JST0FEQ0FTVF9PRkY6Ci0JCWlmIChjcHVfaXNzZXQoY3B1LCB0aWNrX2Jyb2FkY2FzdF9tYXNrKSkgeworCQlpZiAoIXRpY2tfYnJvYWRjYXN0X2ZvcmNlICYmCisJCSAgICBjcHVfaXNzZXQoY3B1LCB0aWNrX2Jyb2FkY2FzdF9tYXNrKSkgewogCQkJY3B1X2NsZWFyKGNwdSwgdGlja19icm9hZGNhc3RfbWFzayk7CiAJCQlpZiAodGQtPm1vZGUgPT0gVElDS0RFVl9NT0RFX1BFUklPRElDKQogCQkJCXRpY2tfc2V0dXBfcGVyaW9kaWMoZGV2LCAwKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL3RpY2stc2NoZWQuYyBiL2tlcm5lbC90aW1lL3RpY2stc2NoZWQuYwppbmRleCBiODU0YTg5Li5kNjMwMDhiIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLXNjaGVkLmMKKysrIGIva2VybmVsL3RpbWUvdGljay1zY2hlZC5jCkBAIC0yNzYsNiArMjc2LDcgQEAKIAkJCXRzLT50aWNrX3N0b3BwZWQgPSAxOwogCQkJdHMtPmlkbGVfamlmZmllcyA9IGxhc3RfamlmZmllczsKIAkJCXJjdV9lbnRlcl9ub2h6KCk7CisJCQlzY2hlZF9jbG9ja190aWNrX3N0b3AoY3B1KTsKIAkJfQogCiAJCS8qCkBAIC0zNzUsNiArMzc2LDcgQEAKIAlzZWxlY3Rfbm9oel9sb2FkX2JhbGFuY2VyKDApOwogCW5vdyA9IGt0aW1lX2dldCgpOwogCXRpY2tfZG9fdXBkYXRlX2ppZmZpZXM2NChub3cpOworCXNjaGVkX2Nsb2NrX3RpY2tfc3RhcnQoY3B1KTsKIAljcHVfY2xlYXIoY3B1LCBub2h6X2NwdV9tYXNrKTsKIAogCS8qCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZXIuYyBiL2tlcm5lbC90aW1lci5jCmluZGV4IGNlYWNjNjYuLjAzYmM3ZjEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lci5jCisrKyBiL2tlcm5lbC90aW1lci5jCkBAIC04MTIsNyArODEyLDcgQEAKIAlzcGluX3VubG9ja19pcnEoJmJhc2UtPmxvY2spOwogfQogCi0jaWYgZGVmaW5lZChDT05GSUdfTk9fSURMRV9IWikgfHwgZGVmaW5lZChDT05GSUdfTk9fSFopCisjaWZkZWYgQ09ORklHX05PX0haCiAvKgogICogRmluZCBvdXQgd2hlbiB0aGUgbmV4dCB0aW1lciBldmVudCBpcyBkdWUgdG8gaGFwcGVuLiBUaGlzCiAgKiBpcyB1c2VkIG9uIFMvMzkwIHRvIHN0b3AgYWxsIGFjdGl2aXR5IHdoZW4gYSBjcHVzIGlzIGlkbGUuCkBAIC05NDcsMTQgKzk0Nyw2IEBACiAKIAlyZXR1cm4gY21wX25leHRfaHJ0aW1lcl9ldmVudChub3csIGV4cGlyZXMpOwogfQotCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLXVuc2lnbmVkIGxvbmcgbmV4dF90aW1lcl9pbnRlcnJ1cHQodm9pZCkKLXsKLQlyZXR1cm4gZ2V0X25leHRfdGltZXJfaW50ZXJydXB0KGppZmZpZXMpOwotfQotI2VuZGlmCi0KICNlbmRpZgogCiAjaWZuZGVmIENPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HCkBAIC0xNTAyLDcgKzE0OTQsNyBAQAogCiAJQlVHX09OKGVyciA9PSBOT1RJRllfQkFEKTsKIAlyZWdpc3Rlcl9jcHVfbm90aWZpZXIoJnRpbWVyc19uYik7Ci0Jb3Blbl9zb2Z0aXJxKFRJTUVSX1NPRlRJUlEsIHJ1bl90aW1lcl9zb2Z0aXJxLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoVElNRVJfU09GVElSUSwgcnVuX3RpbWVyX3NvZnRpcnEpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS9LY29uZmlnIGIva2VybmVsL3RyYWNlL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYzZTllNgotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS9LY29uZmlnCkBAIC0wLDAgKzEsMTM1IEBACisjCisjIEFyY2hpdGVjdHVyZXMgdGhhdCBvZmZlciBhbiBGVFJBQ0UgaW1wbGVtZW50YXRpb24gc2hvdWxkIHNlbGVjdCBIQVZFX0ZUUkFDRToKKyMKK2NvbmZpZyBIQVZFX0ZUUkFDRQorCWJvb2wKKworY29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0UKKwlib29sCisKK2NvbmZpZyBUUkFDRVJfTUFYX1RSQUNFCisJYm9vbAorCitjb25maWcgVFJBQ0lORworCWJvb2wKKwlzZWxlY3QgREVCVUdfRlMKKwlzZWxlY3QgU1RBQ0tUUkFDRQorCitjb25maWcgRlRSQUNFCisJYm9vbCAiS2VybmVsIEZ1bmN0aW9uIFRyYWNlciIKKwlkZXBlbmRzIG9uIEhBVkVfRlRSQUNFCisJc2VsZWN0IEZSQU1FX1BPSU5URVIKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBDT05URVhUX1NXSVRDSF9UUkFDRVIKKwloZWxwCisJICBFbmFibGUgdGhlIGtlcm5lbCB0byB0cmFjZSBldmVyeSBrZXJuZWwgZnVuY3Rpb24uIFRoaXMgaXMgZG9uZQorCSAgYnkgdXNpbmcgYSBjb21waWxlciBmZWF0dXJlIHRvIGluc2VydCBhIHNtYWxsLCA1LWJ5dGUgTm8tT3BlcmF0aW9uCisJICBpbnN0cnVjdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIGV2ZXJ5IGtlcm5lbCBmdW5jdGlvbiwgd2hpY2ggTk9QCisJICBzZXF1ZW5jZSBpcyB0aGVuIGR5bmFtaWNhbGx5IHBhdGNoZWQgaW50byBhIHRyYWNlciBjYWxsIHdoZW4KKwkgIHRyYWNpbmcgaXMgZW5hYmxlZCBieSB0aGUgYWRtaW5pc3RyYXRvci4gSWYgaXQncyBydW50aW1lIGRpc2FibGVkCisJICAodGhlIGJvb3R1cCBkZWZhdWx0KSwgdGhlbiB0aGUgb3ZlcmhlYWQgb2YgdGhlIGluc3RydWN0aW9ucyBpcyB2ZXJ5CisJICBzbWFsbCBhbmQgbm90IG1lYXN1cmFibGUgZXZlbiBpbiBtaWNyby1iZW5jaG1hcmtzLgorCitjb25maWcgSVJRU09GRl9UUkFDRVIKKwlib29sICJJbnRlcnJ1cHRzLW9mZiBMYXRlbmN5IFRyYWNlciIKKwlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIFRSQUNFX0lSUUZMQUdTX1NVUFBPUlQKKwlkZXBlbmRzIG9uIEdFTkVSSUNfVElNRQorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0VfSVJRRkxBR1MKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyBvcHRpb24gbWVhc3VyZXMgdGhlIHRpbWUgc3BlbnQgaW4gaXJxcy1vZmYgY3JpdGljYWwKKwkgIHNlY3Rpb25zLCB3aXRoIG1pY3Jvc2Vjb25kIGFjY3VyYWN5LgorCisJICBUaGUgZGVmYXVsdCBtZWFzdXJlbWVudCBtZXRob2QgaXMgYSBtYXhpbXVtIHNlYXJjaCwgd2hpY2ggaXMKKwkgIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBydW50aW1lIChyZS0pc3RhcnRlZAorCSAgdmlhOgorCisJICAgICAgZWNobyAwID4gL2RlYnVnZnMvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisKKwkgIChOb3RlIHRoYXQga2VybmVsIHNpemUgYW5kIG92ZXJoZWFkIGluY3JlYXNlcyB3aXRoIHRoaXMgb3B0aW9uCisJICBlbmFibGVkLiBUaGlzIG9wdGlvbiBhbmQgdGhlIHByZWVtcHQtb2ZmIHRpbWluZyBvcHRpb24gY2FuIGJlCisJICB1c2VkIHRvZ2V0aGVyIG9yIHNlcGFyYXRlbHkuKQorCitjb25maWcgUFJFRU1QVF9UUkFDRVIKKwlib29sICJQcmVlbXB0aW9uLW9mZiBMYXRlbmN5IFRyYWNlciIKKwlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIEdFTkVSSUNfVElNRQorCWRlcGVuZHMgb24gUFJFRU1QVAorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyBvcHRpb24gbWVhc3VyZXMgdGhlIHRpbWUgc3BlbnQgaW4gcHJlZW1wdGlvbiBvZmYgY3JpdGljYWwKKwkgIHNlY3Rpb25zLCB3aXRoIG1pY3Jvc2Vjb25kIGFjY3VyYWN5LgorCisJICBUaGUgZGVmYXVsdCBtZWFzdXJlbWVudCBtZXRob2QgaXMgYSBtYXhpbXVtIHNlYXJjaCwgd2hpY2ggaXMKKwkgIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBydW50aW1lIChyZS0pc3RhcnRlZAorCSAgdmlhOgorCisJICAgICAgZWNobyAwID4gL2RlYnVnZnMvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisKKwkgIChOb3RlIHRoYXQga2VybmVsIHNpemUgYW5kIG92ZXJoZWFkIGluY3JlYXNlcyB3aXRoIHRoaXMgb3B0aW9uCisJICBlbmFibGVkLiBUaGlzIG9wdGlvbiBhbmQgdGhlIGlycXMtb2ZmIHRpbWluZyBvcHRpb24gY2FuIGJlCisJICB1c2VkIHRvZ2V0aGVyIG9yIHNlcGFyYXRlbHkuKQorCitjb25maWcgU1lTUFJPRl9UUkFDRVIKKwlib29sICJTeXNwcm9mIFRyYWNlciIKKwlkZXBlbmRzIG9uIFg4NgorCXNlbGVjdCBUUkFDSU5HCisJaGVscAorCSAgVGhpcyB0cmFjZXIgcHJvdmlkZXMgdGhlIHRyYWNlIG5lZWRlZCBieSB0aGUgJ1N5c3Byb2YnIHVzZXJzcGFjZQorCSAgdG9vbC4KKworY29uZmlnIFNDSEVEX1RSQUNFUgorCWJvb2wgIlNjaGVkdWxpbmcgTGF0ZW5jeSBUcmFjZXIiCisJZGVwZW5kcyBvbiBIQVZFX0ZUUkFDRQorCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IENPTlRFWFRfU1dJVENIX1RSQUNFUgorCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyB0cmFjZXIgdHJhY2tzIHRoZSBsYXRlbmN5IG9mIHRoZSBoaWdoZXN0IHByaW9yaXR5IHRhc2sKKwkgIHRvIGJlIHNjaGVkdWxlZCBpbiwgc3RhcnRpbmcgZnJvbSB0aGUgcG9pbnQgaXQgaGFzIHdva2VuIHVwLgorCitjb25maWcgQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCisJYm9vbCAiVHJhY2UgcHJvY2VzcyBjb250ZXh0IHN3aXRjaGVzIgorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBNQVJLRVJTCisJaGVscAorCSAgVGhpcyB0cmFjZXIgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgY29udGV4dCBzd2l0Y2ggYW5kIHJlY29yZHMKKwkgIGFsbCBzd2l0Y2hpbmcgb2YgdGFza3MuCisKK2NvbmZpZyBEWU5BTUlDX0ZUUkFDRQorCWJvb2wgImVuYWJsZS9kaXNhYmxlIGZ0cmFjZSB0cmFjZXBvaW50cyBkeW5hbWljYWxseSIKKwlkZXBlbmRzIG9uIEZUUkFDRQorCWRlcGVuZHMgb24gSEFWRV9EWU5BTUlDX0ZUUkFDRQorCWRlZmF1bHQgeQorCWhlbHAKKyAgICAgICAgIFRoaXMgb3B0aW9uIHdpbGwgbW9kaWZ5IGFsbCB0aGUgY2FsbHMgdG8gZnRyYWNlIGR5bmFtaWNhbGx5CisJICh3aWxsIHBhdGNoIHRoZW0gb3V0IG9mIHRoZSBiaW5hcnkgaW1hZ2UgYW5kIHJlcGxhY2VzIHRoZW0KKwkgd2l0aCBhIE5vLU9wIGluc3RydWN0aW9uKSBhcyB0aGV5IGFyZSBjYWxsZWQuIEEgdGFibGUgaXMKKwkgY3JlYXRlZCB0byBkeW5hbWljYWxseSBlbmFibGUgdGhlbSBhZ2Fpbi4KKworCSBUaGlzIHdheSBhIENPTkZJR19GVFJBQ0Uga2VybmVsIGlzIHNsaWdodGx5IGxhcmdlciwgYnV0IG90aGVyd2lzZQorCSBoYXMgbmF0aXZlIHBlcmZvcm1hbmNlIGFzIGxvbmcgYXMgbm8gdHJhY2luZyBpcyBhY3RpdmUuCisKKwkgVGhlIGNoYW5nZXMgdG8gdGhlIGNvZGUgYXJlIGRvbmUgYnkgYSBrZXJuZWwgdGhyZWFkIHRoYXQKKwkgd2FrZXMgdXAgb25jZSBhIHNlY29uZCBhbmQgY2hlY2tzIHRvIHNlZSBpZiBhbnkgZnRyYWNlIGNhbGxzCisJIHdlcmUgbWFkZS4gSWYgc28sIGl0IHJ1bnMgc3RvcF9tYWNoaW5lIChzdG9wcyBhbGwgQ1BVUykKKwkgYW5kIG1vZGlmaWVzIHRoZSBjb2RlIHRvIGp1bXAgb3ZlciB0aGUgY2FsbCB0byBmdHJhY2UuCisKK2NvbmZpZyBGVFJBQ0VfU0VMRlRFU1QKKwlib29sCisKK2NvbmZpZyBGVFJBQ0VfU1RBUlRVUF9URVNUCisJYm9vbCAiUGVyZm9ybSBhIHN0YXJ0dXAgdGVzdCBvbiBmdHJhY2UiCisJZGVwZW5kcyBvbiBUUkFDSU5HCisJc2VsZWN0IEZUUkFDRV9TRUxGVEVTVAorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIHBlcmZvcm1zIGEgc2VyaWVzIG9mIHN0YXJ0dXAgdGVzdHMgb24gZnRyYWNlLiBPbiBib290dXAKKwkgIGEgc2VyaWVzIG9mIHRlc3RzIGFyZSBtYWRlIHRvIHZlcmlmeSB0aGF0IHRoZSB0cmFjZXIgaXMKKwkgIGZ1bmN0aW9uaW5nIHByb3Blcmx5LiBJdCB3aWxsIGRvIHRlc3RzIG9uIGFsbCB0aGUgY29uZmlndXJlZAorCSAgdHJhY2VycyBvZiBmdHJhY2UuCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvTWFrZWZpbGUgYi9rZXJuZWwvdHJhY2UvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFkMTdkZQotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS9NYWtlZmlsZQpAQCAtMCwwICsxLDI0IEBACisKKyMgRG8gbm90IGluc3RydW1lbnQgdGhlIHRyYWNlciBpdHNlbGY6CisKK2lmZGVmIENPTkZJR19GVFJBQ0UKK09SSUdfQ0ZMQUdTIDo9ICQoS0JVSUxEX0NGTEFHUykKK0tCVUlMRF9DRkxBR1MgPSAkKHN1YnN0IC1wZywsJChPUklHX0NGTEFHUykpCisKKyMgc2VsZnRlc3QgbmVlZHMgaW5zdHJ1bWVudGF0aW9uCitDRkxBR1NfdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5vID0gLXBnCitvYmoteSArPSB0cmFjZV9zZWxmdGVzdF9keW5hbWljLm8KK2VuZGlmCisKK29iai0kKENPTkZJR19GVFJBQ0UpICs9IGxpYmZ0cmFjZS5vCisKK29iai0kKENPTkZJR19UUkFDSU5HKSArPSB0cmFjZS5vCitvYmotJChDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSKSArPSB0cmFjZV9zY2hlZF9zd2l0Y2gubworb2JqLSQoQ09ORklHX1NZU1BST0ZfVFJBQ0VSKSArPSB0cmFjZV9zeXNwcm9mLm8KK29iai0kKENPTkZJR19GVFJBQ0UpICs9IHRyYWNlX2Z1bmN0aW9ucy5vCitvYmotJChDT05GSUdfSVJRU09GRl9UUkFDRVIpICs9IHRyYWNlX2lycXNvZmYubworb2JqLSQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKSArPSB0cmFjZV9pcnFzb2ZmLm8KK29iai0kKENPTkZJR19TQ0hFRF9UUkFDRVIpICs9IHRyYWNlX3NjaGVkX3dha2V1cC5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFKSArPSB0cmFjZV9tbWlvdHJhY2UubworCitsaWJmdHJhY2UteSA6PSBmdHJhY2UubwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2Z0cmFjZS5jIGIva2VybmVsL3RyYWNlL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMzFhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMKQEAgLTAsMCArMSwxNzI3IEBACisvKgorICogSW5mcmFzdHJ1Y3R1cmUgZm9yIHByb2ZpbGluZyBjb2RlIGluc2VydGVkIGJ5ICdnY2MgLXBnJy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqIE9yaWdpbmFsbHkgcG9ydGVkIGZyb20gdGhlIC1ydCBwYXRjaCBieToKKyAqICAgQ29weXJpZ2h0IChDKSAyMDA3IEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUByZWRoYXQuY29tPgorICoKKyAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3RvcF9tYWNoaW5lLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCisvKiBmdHJhY2VfZW5hYmxlZCBpcyBhIG1ldGhvZCB0byB0dXJuIGZ0cmFjZSBvbiBvciBvZmYgKi8KK2ludCBmdHJhY2VfZW5hYmxlZCBfX3JlYWRfbW9zdGx5Oworc3RhdGljIGludCBsYXN0X2Z0cmFjZV9lbmFibGVkOworCisvKgorICogZnRyYWNlX2Rpc2FibGVkIGlzIHNldCB3aGVuIGFuIGFub21hbHkgaXMgZGlzY292ZXJlZC4KKyAqIGZ0cmFjZV9kaXNhYmxlZCBpcyBtdWNoIHN0cm9uZ2VyIHRoYW4gZnRyYWNlX2VuYWJsZWQuCisgKi8KK3N0YXRpYyBpbnQgZnRyYWNlX2Rpc2FibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soZnRyYWNlX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2Vfc3lzY3RsX2xvY2spOworCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgZnRyYWNlX2xpc3RfZW5kIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gZnRyYWNlX3N0dWIsCit9OworCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgKmZ0cmFjZV9saXN0IF9fcmVhZF9tb3N0bHkgPSAmZnRyYWNlX2xpc3RfZW5kOworZnRyYWNlX2Z1bmNfdCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24gX19yZWFkX21vc3RseSA9IGZ0cmFjZV9zdHViOworCitzdGF0aWMgdm9pZCBmdHJhY2VfbGlzdF9mdW5jKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCXN0cnVjdCBmdHJhY2Vfb3BzICpvcCA9IGZ0cmFjZV9saXN0OworCisJLyogaW4gY2FzZSBzb21lb25lIGFjdHVhbGx5IHBvcnRzIHRoaXMgdG8gYWxwaGEhICovCisJcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKKworCXdoaWxlIChvcCAhPSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCS8qIHNpbGx5IGFscGhhICovCisJCXJlYWRfYmFycmllcl9kZXBlbmRzKCk7CisJCW9wLT5mdW5jKGlwLCBwYXJlbnRfaXApOworCQlvcCA9IG9wLT5uZXh0OworCX07Cit9CisKKy8qKgorICogY2xlYXJfZnRyYWNlX2Z1bmN0aW9uIC0gcmVzZXQgdGhlIGZ0cmFjZSBmdW5jdGlvbgorICoKKyAqIFRoaXMgTlVMTHMgdGhlIGZ0cmFjZSBmdW5jdGlvbiBhbmQgaW4gZXNzZW5jZSBzdG9wcworICogdHJhY2luZy4gIFRoZXJlIG1heSBiZSBsYWcKKyAqLwordm9pZCBjbGVhcl9mdHJhY2VfZnVuY3Rpb24odm9pZCkKK3sKKwlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2Vfc3R1YjsKK30KKworc3RhdGljIGludCBfX3JlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKQoreworCS8qIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgYnkgaW50ZXJydXB0cyAqLworCXNwaW5fbG9jaygmZnRyYWNlX2xvY2spOworCisJb3BzLT5uZXh0ID0gZnRyYWNlX2xpc3Q7CisJLyoKKwkgKiBXZSBhcmUgZW50ZXJpbmcgb3BzIGludG8gdGhlIGZ0cmFjZV9saXN0IGJ1dCBhbm90aGVyCisJICogQ1BVIG1pZ2h0IGJlIHdhbGtpbmcgdGhhdCBsaXN0LiBXZSBuZWVkIHRvIG1ha2Ugc3VyZQorCSAqIHRoZSBvcHMtPm5leHQgcG9pbnRlciBpcyB2YWxpZCBiZWZvcmUgYW5vdGhlciBDUFUgc2VlcworCSAqIHRoZSBvcHMgcG9pbnRlciBpbmNsdWRlZCBpbnRvIHRoZSBmdHJhY2VfbGlzdC4KKwkgKi8KKwlzbXBfd21iKCk7CisJZnRyYWNlX2xpc3QgPSBvcHM7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKwkJLyoKKwkJICogRm9yIG9uZSBmdW5jLCBzaW1wbHkgY2FsbCBpdCBkaXJlY3RseS4KKwkJICogRm9yIG1vcmUgdGhhbiBvbmUgZnVuYywgY2FsbCB0aGUgY2hhaW4uCisJCSAqLworCQlpZiAob3BzLT5uZXh0ID09ICZmdHJhY2VfbGlzdF9lbmQpCisJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBvcHMtPmZ1bmM7CisJCWVsc2UKKwkJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9saXN0X2Z1bmM7CisJfQorCisJc3Bpbl91bmxvY2soJmZ0cmFjZV9sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykKK3sKKwlzdHJ1Y3QgZnRyYWNlX29wcyAqKnA7CisJaW50IHJldCA9IDA7CisKKwlzcGluX2xvY2soJmZ0cmFjZV9sb2NrKTsKKworCS8qCisJICogSWYgd2UgYXJlIHJlbW92aW5nIHRoZSBsYXN0IGZ1bmN0aW9uLCB0aGVuIHNpbXBseSBwb2ludAorCSAqIHRvIHRoZSBmdHJhY2Vfc3R1Yi4KKwkgKi8KKwlpZiAoZnRyYWNlX2xpc3QgPT0gb3BzICYmIG9wcy0+bmV4dCA9PSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9zdHViOworCQlmdHJhY2VfbGlzdCA9ICZmdHJhY2VfbGlzdF9lbmQ7CisJCWdvdG8gb3V0OworCX0KKworCWZvciAocCA9ICZmdHJhY2VfbGlzdDsgKnAgIT0gJmZ0cmFjZV9saXN0X2VuZDsgcCA9ICYoKnApLT5uZXh0KQorCQlpZiAoKnAgPT0gb3BzKQorCQkJYnJlYWs7CisKKwlpZiAoKnAgIT0gb3BzKSB7CisJCXJldCA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwkqcCA9ICgqcCktPm5leHQ7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKwkJLyogSWYgd2Ugb25seSBoYXZlIG9uZSBmdW5jIGxlZnQsIHRoZW4gY2FsbCB0aGF0IGRpcmVjdGx5ICovCisJCWlmIChmdHJhY2VfbGlzdCA9PSAmZnRyYWNlX2xpc3RfZW5kIHx8CisJCSAgICBmdHJhY2VfbGlzdC0+bmV4dCA9PSAmZnRyYWNlX2xpc3RfZW5kKQorCQkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX2xpc3QtPmZ1bmM7CisJfQorCisgb3V0OgorCXNwaW5fdW5sb2NrKCZmdHJhY2VfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisKK3N0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmZ0cmFjZWRfdGFzazsKKworZW51bSB7CisJRlRSQUNFX0VOQUJMRV9DQUxMUwkJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfRElTQUJMRV9DQUxMUwkJPSAoMSA8PCAxKSwKKwlGVFJBQ0VfVVBEQVRFX1RSQUNFX0ZVTkMJPSAoMSA8PCAyKSwKKwlGVFJBQ0VfRU5BQkxFX01DT1VOVAkJPSAoMSA8PCAzKSwKKwlGVFJBQ0VfRElTQUJMRV9NQ09VTlQJCT0gKDEgPDwgNCksCit9OworCitzdGF0aWMgaW50IGZ0cmFjZV9maWx0ZXJlZDsKK3N0YXRpYyBpbnQgdHJhY2luZ19vbjsKK3N0YXRpYyBpbnQgZnJvemVuX3JlY29yZF9jb3VudDsKKworc3RhdGljIHN0cnVjdCBobGlzdF9oZWFkIGZ0cmFjZV9oYXNoW0ZUUkFDRV9IQVNIU0laRV07CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSk7CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soZnRyYWNlX3NodXRkb3duX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2VkX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2VfcmVnZXhfbG9jayk7CisKK3N0cnVjdCBmdHJhY2VfcGFnZSB7CisJc3RydWN0IGZ0cmFjZV9wYWdlCSpuZXh0OworCXVuc2lnbmVkIGxvbmcJCWluZGV4OworCXN0cnVjdCBkeW5fZnRyYWNlCXJlY29yZHNbXTsKK307CisKKyNkZWZpbmUgRU5UUklFU19QRVJfUEFHRSBcCisgICgoUEFHRV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBmdHJhY2VfcGFnZSkpIC8gc2l6ZW9mKHN0cnVjdCBkeW5fZnRyYWNlKSkKKworLyogZXN0aW1hdGUgZnJvbSBydW5uaW5nIGRpZmZlcmVudCBrZXJuZWxzICovCisjZGVmaW5lIE5SX1RPX0lOSVQJCTEwMDAwCisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX3BhZ2UJKmZ0cmFjZV9wYWdlc19zdGFydDsKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX3BhZ2UJKmZ0cmFjZV9wYWdlczsKKworc3RhdGljIGludCBmdHJhY2VkX3RyaWdnZXI7CitzdGF0aWMgaW50IGZ0cmFjZWRfc3VzcGVuZDsKK3N0YXRpYyBpbnQgZnRyYWNlZF9zdG9wOworCitzdGF0aWMgaW50IGZ0cmFjZV9yZWNvcmRfc3VzcGVuZDsKKworc3RhdGljIHN0cnVjdCBkeW5fZnRyYWNlICpmdHJhY2VfZnJlZV9yZWNvcmRzOworCisKKyNpZmRlZiBDT05GSUdfS1BST0JFUworc3RhdGljIGlubGluZSB2b2lkIGZyZWV6ZV9yZWNvcmQoc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwlpZiAoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZST1pFTikpIHsKKwkJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRlJPWkVOOworCQlmcm96ZW5fcmVjb3JkX2NvdW50Kys7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdW5mcmVlemVfcmVjb3JkKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMpCit7CisJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJPWkVOKSB7CisJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9GUk9aRU47CisJCWZyb3plbl9yZWNvcmRfY291bnQtLTsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHJlY29yZF9mcm96ZW4oc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwlyZXR1cm4gcmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GUk9aRU47Cit9CisjZWxzZQorIyBkZWZpbmUgZnJlZXplX3JlY29yZChyZWMpCQkJKHsgMDsgfSkKKyMgZGVmaW5lIHVuZnJlZXplX3JlY29yZChyZWMpCQkJKHsgMDsgfSkKKyMgZGVmaW5lIHJlY29yZF9mcm96ZW4ocmVjKQkJCSh7IDA7IH0pCisjZW5kaWYgLyogQ09ORklHX0tQUk9CRVMgKi8KKworaW50IHNraXBfdHJhY2UodW5zaWduZWQgbG9uZyBpcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWM7CisJc3RydWN0IGhsaXN0X25vZGUgKnQ7CisJc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQ7CisKKwlpZiAoZnJvemVuX3JlY29yZF9jb3VudCA9PSAwKQorCQlyZXR1cm4gMDsKKworCWhlYWQgPSAmZnRyYWNlX2hhc2hbaGFzaF9sb25nKGlwLCBGVFJBQ0VfSEFTSEJJVFMpXTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocmVjLCB0LCBoZWFkLCBub2RlKSB7CisJCWlmIChyZWMtPmlwID09IGlwKSB7CisJCQlpZiAocmVjb3JkX2Zyb3plbihyZWMpKSB7CisJCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCQlyZXR1cm4gMTsKKworCQkJCWlmICghKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfQ09OVkVSVEVEKSkKKwkJCQkJcmV0dXJuIDE7CisKKwkJCQlpZiAoIXRyYWNpbmdfb24gfHwgIWZ0cmFjZV9lbmFibGVkKQorCQkJCQlyZXR1cm4gMTsKKworCQkJCWlmIChmdHJhY2VfZmlsdGVyZWQpIHsKKwkJCQkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9GSUxURVIgfAorCQkJCQkJCSAgIEZUUkFDRV9GTF9OT1RSQUNFKTsKKwkJCQkJaWYgKCFmbCB8fCAoZmwgJiBGVFJBQ0VfRkxfTk9UUkFDRSkpCisJCQkJCQlyZXR1cm4gMTsKKwkJCQl9CisJCQl9CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludAorZnRyYWNlX2lwX2luX2hhc2godW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBrZXkpCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnA7CisJc3RydWN0IGhsaXN0X25vZGUgKnQ7CisJaW50IGZvdW5kID0gMDsKKworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwLCB0LCAmZnRyYWNlX2hhc2hba2V5XSwgbm9kZSkgeworCQlpZiAocC0+aXAgPT0gaXApIHsKKwkJCWZvdW5kID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIGZvdW5kOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2Z0cmFjZV9hZGRfaGFzaChzdHJ1Y3QgZHluX2Z0cmFjZSAqbm9kZSwgdW5zaWduZWQgbG9uZyBrZXkpCit7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZub2RlLT5ub2RlLCAmZnRyYWNlX2hhc2hba2V5XSk7Cit9CisKKy8qIGNhbGxlZCBmcm9tIGtzdG9wX21hY2hpbmUgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBmdHJhY2VfZGVsX2hhc2goc3RydWN0IGR5bl9mdHJhY2UgKm5vZGUpCit7CisJaGxpc3RfZGVsKCZub2RlLT5ub2RlKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX2ZyZWVfcmVjKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMpCit7CisJLyogbm8gbG9ja2luZywgb25seSBjYWxsZWQgZnJvbSBrc3RvcF9tYWNoaW5lICovCisKKwlyZWMtPmlwID0gKHVuc2lnbmVkIGxvbmcpZnRyYWNlX2ZyZWVfcmVjb3JkczsKKwlmdHJhY2VfZnJlZV9yZWNvcmRzID0gcmVjOworCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0ZSRUU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHluX2Z0cmFjZSAqZnRyYWNlX2FsbG9jX2R5bl9ub2RlKHVuc2lnbmVkIGxvbmcgaXApCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYzsKKworCS8qIEZpcnN0IGNoZWNrIGZvciBmcmVlZCByZWNvcmRzICovCisJaWYgKGZ0cmFjZV9mcmVlX3JlY29yZHMpIHsKKwkJcmVjID0gZnRyYWNlX2ZyZWVfcmVjb3JkczsKKworCQlpZiAodW5saWtlbHkoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZSRUUpKSkgeworCQkJV0FSTl9PTl9PTkNFKDEpOworCQkJZnRyYWNlX2ZyZWVfcmVjb3JkcyA9IE5VTEw7CisJCQlmdHJhY2VfZGlzYWJsZWQgPSAxOworCQkJZnRyYWNlX2VuYWJsZWQgPSAwOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQlmdHJhY2VfZnJlZV9yZWNvcmRzID0gKHZvaWQgKilyZWMtPmlwOworCQltZW1zZXQocmVjLCAwLCBzaXplb2YoKnJlYykpOworCQlyZXR1cm4gcmVjOworCX0KKworCWlmIChmdHJhY2VfcGFnZXMtPmluZGV4ID09IEVOVFJJRVNfUEVSX1BBR0UpIHsKKwkJaWYgKCFmdHJhY2VfcGFnZXMtPm5leHQpCisJCQlyZXR1cm4gTlVMTDsKKwkJZnRyYWNlX3BhZ2VzID0gZnRyYWNlX3BhZ2VzLT5uZXh0OworCX0KKworCXJldHVybiAmZnRyYWNlX3BhZ2VzLT5yZWNvcmRzW2Z0cmFjZV9wYWdlcy0+aW5kZXgrK107Cit9CisKK3N0YXRpYyB2b2lkCitmdHJhY2VfcmVjb3JkX2lwKHVuc2lnbmVkIGxvbmcgaXApCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKm5vZGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGtleTsKKwlpbnQgcmVzY2hlZDsKKwlpbnQgYXRvbWljOworCWludCBjcHU7CisKKwlpZiAoIWZ0cmFjZV9lbmFibGVkIHx8IGZ0cmFjZV9kaXNhYmxlZCkKKwkJcmV0dXJuOworCisJcmVzY2hlZCA9IG5lZWRfcmVzY2hlZCgpOworCXByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCk7CisKKwkvKgorCSAqIFdlIHNpbXBseSBuZWVkIHRvIHByb3RlY3QgYWdhaW5zdCByZWN1cnNpb24uCisJICogVXNlIHRoZSB0aGUgcmF3IHZlcnNpb24gb2Ygc21wX3Byb2Nlc3Nvcl9pZCBhbmQgbm90CisJICogX19nZXRfY3B1X3ZhciB3aGljaCBjYW4gY2FsbCBkZWJ1ZyBob29rcyB0aGF0IGNhbgorCSAqIGNhdXNlIGEgcmVjdXJzaXZlIGNyYXNoIGhlcmUuCisJICovCisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KSsrOworCWlmIChwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KSAhPSAxKQorCQlnb3RvIG91dDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfcmVjb3JkX3N1c3BlbmQpKQorCQlnb3RvIG91dDsKKworCWtleSA9IGhhc2hfbG9uZyhpcCwgRlRSQUNFX0hBU0hCSVRTKTsKKworCVdBUk5fT05fT05DRShrZXkgPj0gRlRSQUNFX0hBU0hTSVpFKTsKKworCWlmIChmdHJhY2VfaXBfaW5faGFzaChpcCwga2V5KSkKKwkJZ290byBvdXQ7CisKKwlhdG9taWMgPSBpcnFzX2Rpc2FibGVkKCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZnRyYWNlX3NodXRkb3duX2xvY2ssIGZsYWdzKTsKKworCS8qIFRoaXMgaXAgbWF5IGhhdmUgaGl0IHRoZSBoYXNoIGJlZm9yZSB0aGUgbG9jayAqLworCWlmIChmdHJhY2VfaXBfaW5faGFzaChpcCwga2V5KSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJbm9kZSA9IGZ0cmFjZV9hbGxvY19keW5fbm9kZShpcCk7CisJaWYgKCFub2RlKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlub2RlLT5pcCA9IGlwOworCisJZnRyYWNlX2FkZF9oYXNoKG5vZGUsIGtleSk7CisKKwlmdHJhY2VkX3RyaWdnZXIgPSAxOworCisgb3V0X3VubG9jazoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmdHJhY2Vfc2h1dGRvd25fbG9jaywgZmxhZ3MpOworIG91dDoKKwlwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KS0tOworCisJLyogcHJldmVudCByZWN1cnNpb24gd2l0aCBzY2hlZHVsZXIgKi8KKwlpZiAocmVzY2hlZCkKKwkJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCk7CisJZWxzZQorCQlwcmVlbXB0X2VuYWJsZV9ub3RyYWNlKCk7Cit9CisKKyNkZWZpbmUgRlRSQUNFX0FERFIgKChsb25nKShmdHJhY2VfY2FsbGVyKSkKKworc3RhdGljIGludAorX19mdHJhY2VfcmVwbGFjZV9jb2RlKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMsCisJCSAgICAgIHVuc2lnbmVkIGNoYXIgKm9sZCwgdW5zaWduZWQgY2hhciAqbmV3LCBpbnQgZW5hYmxlKQoreworCXVuc2lnbmVkIGxvbmcgaXAsIGZsOworCisJaXAgPSByZWMtPmlwOworCisJaWYgKGZ0cmFjZV9maWx0ZXJlZCAmJiBlbmFibGUpIHsKKwkJLyoKKwkJICogSWYgZmlsdGVyaW5nIGlzIG9uOgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgdG8gYmUgZmlsdGVyZWQgYW5kCisJCSAqIGlzIGVuYWJsZWQgdGhlbiBkbyBub3RoaW5nLgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgdG8gYmUgZmlsdGVyZWQgYW5kCisJCSAqIGl0IGlzIG5vdCBlbmFibGVkLCBlbmFibGUgaXQuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIG5vdCBzZXQgdG8gYmUgZmlsdGVyZWQKKwkJICogYW5kIGl0IGlzIG5vdCBlbmFibGVkIGRvIG5vdGhpbmcuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCBub3QgdG8gdHJhY2UgdGhlbgorCQkgKiBkbyBub3RoaW5nLgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgbm90IHRvIHRyYWNlIGFuZAorCQkgKiBpdCBpcyBlbmFibGVkIHRoZW4gZGlzYWJsZSBpdC4KKwkJICoKKwkJICogSWYgdGhpcyByZWNvcmQgaXMgbm90IHNldCB0byBiZSBmaWx0ZXJlZCBhbmQKKwkJICogaXQgaXMgZW5hYmxlZCwgZGlzYWJsZSBpdC4KKwkJICovCisKKwkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9GSUxURVIgfCBGVFJBQ0VfRkxfTk9UUkFDRSB8CisJCQkJICAgRlRSQUNFX0ZMX0VOQUJMRUQpOworCisJCWlmICgoZmwgPT0gIChGVFJBQ0VfRkxfRklMVEVSIHwgRlRSQUNFX0ZMX0VOQUJMRUQpKSB8fAorCQkgICAgKGZsID09ICAoRlRSQUNFX0ZMX0ZJTFRFUiB8IEZUUkFDRV9GTF9OT1RSQUNFKSkgfHwKKwkJICAgICFmbCB8fCAoZmwgPT0gRlRSQUNFX0ZMX05PVFJBQ0UpKQorCQkJcmV0dXJuIDA7CisKKwkJLyoKKwkJICogSWYgaXQgaXMgZW5hYmxlZCBkaXNhYmxlIGl0LAorCQkgKiBvdGhlcndpc2UgZW5hYmxlIGl0IQorCQkgKi8KKwkJaWYgKGZsICYgRlRSQUNFX0ZMX0VOQUJMRUQpIHsKKwkJCS8qIHN3YXAgbmV3IGFuZCBvbGQgKi8KKwkJCW5ldyA9IG9sZDsKKwkJCW9sZCA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsIEZUUkFDRV9BRERSKTsKKwkJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9FTkFCTEVEOworCQl9IGVsc2UgeworCQkJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgRlRSQUNFX0FERFIpOworCQkJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRU5BQkxFRDsKKwkJfQorCX0gZWxzZSB7CisKKwkJaWYgKGVuYWJsZSkgeworCQkJLyoKKwkJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCBub3QgdG8gdHJhY2UgYW5kIGlzCisJCQkgKiBub3QgZW5hYmxlZCwgZG8gbm90aGluZy4KKwkJCSAqLworCQkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9OT1RSQUNFIHwgRlRSQUNFX0ZMX0VOQUJMRUQpOworCQkJaWYgKGZsID09IEZUUkFDRV9GTF9OT1RSQUNFKQorCQkJCXJldHVybiAwOworCisJCQluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCBGVFJBQ0VfQUREUik7CisJCX0gZWxzZQorCQkJb2xkID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgRlRSQUNFX0FERFIpOworCisJCWlmIChlbmFibGUpIHsKKwkJCWlmIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0VOQUJMRUQpCisJCQkJcmV0dXJuIDA7CisJCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9FTkFCTEVEOworCQl9IGVsc2UgeworCQkJaWYgKCEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9FTkFCTEVEKSkKKwkJCQlyZXR1cm4gMDsKKwkJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9FTkFCTEVEOworCQl9CisJfQorCisJcmV0dXJuIGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2VfcmVwbGFjZV9jb2RlKGludCBlbmFibGUpCit7CisJaW50IGksIGZhaWxlZDsKKwl1bnNpZ25lZCBjaGFyICpuZXcgPSBOVUxMLCAqb2xkID0gTlVMTDsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCXN0cnVjdCBmdHJhY2VfcGFnZSAqcGc7CisKKwlpZiAoZW5hYmxlKQorCQlvbGQgPSBmdHJhY2Vfbm9wX3JlcGxhY2UoKTsKKwllbHNlCisJCW5ldyA9IGZ0cmFjZV9ub3BfcmVwbGFjZSgpOworCisJZm9yIChwZyA9IGZ0cmFjZV9wYWdlc19zdGFydDsgcGc7IHBnID0gcGctPm5leHQpIHsKKwkJZm9yIChpID0gMDsgaSA8IHBnLT5pbmRleDsgaSsrKSB7CisJCQlyZWMgPSAmcGctPnJlY29yZHNbaV07CisKKwkJCS8qIGRvbid0IG1vZGlmeSBjb2RlIHRoYXQgaGFzIGFscmVhZHkgZmF1bHRlZCAqLworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBpZ25vcmUgdXBkYXRlcyB0byB0aGlzIHJlY29yZCdzIG1jb3VudCBzaXRlICovCisJCQlpZiAoZ2V0X2twcm9iZSgodm9pZCAqKXJlYy0+aXApKSB7CisJCQkJZnJlZXplX3JlY29yZChyZWMpOworCQkJCWNvbnRpbnVlOworCQkJfSBlbHNlIHsKKwkJCQl1bmZyZWV6ZV9yZWNvcmQocmVjKTsKKwkJCX0KKworCQkJZmFpbGVkID0gX19mdHJhY2VfcmVwbGFjZV9jb2RlKHJlYywgb2xkLCBuZXcsIGVuYWJsZSk7CisJCQlpZiAoZmFpbGVkICYmIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0NPTlZFUlRFRCkpIHsKKwkJCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9GQUlMRUQ7CisJCQkJaWYgKChzeXN0ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcpIHx8CisJCQkJICAgICFjb3JlX2tlcm5lbF90ZXh0KHJlYy0+aXApKSB7CisJCQkJCWZ0cmFjZV9kZWxfaGFzaChyZWMpOworCQkJCQlmdHJhY2VfZnJlZV9yZWMocmVjKTsKKwkJCQl9CisJCQl9CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9zaHV0ZG93bl9yZXBsZW5pc2godm9pZCkKK3sKKwlpZiAoZnRyYWNlX3BhZ2VzLT5uZXh0KQorCQlyZXR1cm47CisKKwkvKiBhbGxvY2F0ZSBhbm90aGVyIHBhZ2UgKi8KKwlmdHJhY2VfcGFnZXMtPm5leHQgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX2NvZGVfZGlzYWJsZShzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjKQoreworCXVuc2lnbmVkIGxvbmcgaXA7CisJdW5zaWduZWQgY2hhciAqbm9wLCAqY2FsbDsKKwlpbnQgZmFpbGVkOworCisJaXAgPSByZWMtPmlwOworCisJbm9wID0gZnRyYWNlX25vcF9yZXBsYWNlKCk7CisJY2FsbCA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsIE1DT1VOVF9BRERSKTsKKworCWZhaWxlZCA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgY2FsbCwgbm9wKTsKKwlpZiAoZmFpbGVkKSB7CisJCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0ZBSUxFRDsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IF9fZnRyYWNlX3VwZGF0ZV9jb2RlKHZvaWQgKmlnbm9yZSk7CisKK3N0YXRpYyBpbnQgX19mdHJhY2VfbW9kaWZ5X2NvZGUodm9pZCAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50ICpjb21tYW5kID0gZGF0YTsKKworCWlmICgqY29tbWFuZCAmIEZUUkFDRV9FTkFCTEVfQ0FMTFMpIHsKKwkJLyoKKwkJICogVXBkYXRlIGFueSByZWNvcmRlZCBpcHMgbm93IHRoYXQgd2UgaGF2ZSB0aGUKKwkJICogbWFjaGluZSBzdG9wcGVkCisJCSAqLworCQlfX2Z0cmFjZV91cGRhdGVfY29kZShOVUxMKTsKKwkJZnRyYWNlX3JlcGxhY2VfY29kZSgxKTsKKwkJdHJhY2luZ19vbiA9IDE7CisJfSBlbHNlIGlmICgqY29tbWFuZCAmIEZUUkFDRV9ESVNBQkxFX0NBTExTKSB7CisJCWZ0cmFjZV9yZXBsYWNlX2NvZGUoMCk7CisJCXRyYWNpbmdfb24gPSAwOworCX0KKworCWlmICgqY29tbWFuZCAmIEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQykKKwkJZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfdHJhY2VfZnVuY3Rpb24pOworCisJaWYgKCpjb21tYW5kICYgRlRSQUNFX0VOQUJMRV9NQ09VTlQpIHsKKwkJYWRkciA9ICh1bnNpZ25lZCBsb25nKWZ0cmFjZV9yZWNvcmRfaXA7CisJCWZ0cmFjZV9tY291bnRfc2V0KCZhZGRyKTsKKwl9IGVsc2UgaWYgKCpjb21tYW5kICYgRlRSQUNFX0RJU0FCTEVfTUNPVU5UKSB7CisJCWFkZHIgPSAodW5zaWduZWQgbG9uZylmdHJhY2Vfc3R1YjsKKwkJZnRyYWNlX21jb3VudF9zZXQoJmFkZHIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2VfcnVuX3VwZGF0ZV9jb2RlKGludCBjb21tYW5kKQoreworCXN0b3BfbWFjaGluZV9ydW4oX19mdHJhY2VfbW9kaWZ5X2NvZGUsICZjb21tYW5kLCBOUl9DUFVTKTsKK30KKwordm9pZCBmdHJhY2VfZGlzYWJsZV9kYWVtb24odm9pZCkKK3sKKwkvKiBTdG9wIHRoZSBkYWVtb24gZnJvbSBjYWxsaW5nIGtzdG9wX21hY2hpbmUgKi8KKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCWZ0cmFjZWRfc3RvcCA9IDE7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCisJZnRyYWNlX2ZvcmNlX3VwZGF0ZSgpOworfQorCit2b2lkIGZ0cmFjZV9lbmFibGVfZGFlbW9uKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwlmdHJhY2VkX3N0b3AgPSAwOworCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKKworCWZ0cmFjZV9mb3JjZV91cGRhdGUoKTsKK30KKworc3RhdGljIGZ0cmFjZV9mdW5jX3Qgc2F2ZWRfZnRyYWNlX2Z1bmM7CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9zdGFydHVwKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJZnRyYWNlZF9zdXNwZW5kKys7CisJaWYgKGZ0cmFjZWRfc3VzcGVuZCA9PSAxKQorCQljb21tYW5kIHw9IEZUUkFDRV9FTkFCTEVfQ0FMTFM7CisKKwlpZiAoc2F2ZWRfZnRyYWNlX2Z1bmMgIT0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKSB7CisJCXNhdmVkX2Z0cmFjZV9mdW5jID0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uOworCQljb21tYW5kIHw9IEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQzsKKwl9CisKKwlpZiAoIWNvbW1hbmQgfHwgIWZ0cmFjZV9lbmFibGVkKQorCQlnb3RvIG91dDsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7Cisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX3NodXRkb3duKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJZnRyYWNlZF9zdXNwZW5kLS07CisJaWYgKCFmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0RJU0FCTEVfQ0FMTFM7CisKKwlpZiAoc2F2ZWRfZnRyYWNlX2Z1bmMgIT0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKSB7CisJCXNhdmVkX2Z0cmFjZV9mdW5jID0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uOworCQljb21tYW5kIHw9IEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQzsKKwl9CisKKwlpZiAoIWNvbW1hbmQgfHwgIWZ0cmFjZV9lbmFibGVkKQorCQlnb3RvIG91dDsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7Cisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX3N0YXJ0dXBfc3lzY3RsKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSBGVFJBQ0VfRU5BQkxFX01DT1VOVDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCS8qIEZvcmNlIHVwZGF0ZSBuZXh0IHRpbWUgKi8KKwlzYXZlZF9mdHJhY2VfZnVuYyA9IE5VTEw7CisJLyogZnRyYWNlZF9zdXNwZW5kIGlzIHRydWUgaWYgd2Ugd2FudCBmdHJhY2UgcnVubmluZyAqLworCWlmIChmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0VOQUJMRV9DQUxMUzsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2Vfc2h1dGRvd25fc3lzY3RsKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSBGVFJBQ0VfRElTQUJMRV9NQ09VTlQ7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwkvKiBmdHJhY2VkX3N1c3BlbmQgaXMgdHJ1ZSBpZiBmdHJhY2UgaXMgcnVubmluZyAqLworCWlmIChmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0RJU0FCTEVfQ0FMTFM7CisKKwlmdHJhY2VfcnVuX3VwZGF0ZV9jb2RlKGNvbW1hbmQpOworCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIGN5Y2xlX3QJCWZ0cmFjZV91cGRhdGVfdGltZTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nCWZ0cmFjZV91cGRhdGVfY250OwordW5zaWduZWQgbG9uZwkJZnRyYWNlX3VwZGF0ZV90b3RfY250OworCitzdGF0aWMgaW50IF9fZnRyYWNlX3VwZGF0ZV9jb2RlKHZvaWQgKmlnbm9yZSkKK3sKKwlpbnQgaSwgc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwljeWNsZV90IHN0YXJ0LCBzdG9wOworCXN0cnVjdCBkeW5fZnRyYWNlICpwOworCXN0cnVjdCBobGlzdF9ub2RlICp0LCAqbjsKKwlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwgdGVtcF9saXN0OworCisJLyogRG9uJ3QgYmUgcmVjb3JkaW5nIGZ1bmNzIG5vdyAqLworCWZ0cmFjZV9yZWNvcmRfc3VzcGVuZCsrOworCXNhdmVfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZDsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisKKwlzdGFydCA9IGZ0cmFjZV9ub3cocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJZnRyYWNlX3VwZGF0ZV9jbnQgPSAwOworCisJLyogTm8gbG9ja3MgbmVlZGVkLCB0aGUgbWFjaGluZSBpcyBzdG9wcGVkISAqLworCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfSEFTSFNJWkU7IGkrKykgeworCQlJTklUX0hMSVNUX0hFQUQoJnRlbXBfbGlzdCk7CisJCWhlYWQgPSAmZnRyYWNlX2hhc2hbaV07CisKKwkJLyogYWxsIENQVVMgYXJlIHN0b3BwZWQsIHdlIGFyZSBzYWZlIHRvIG1vZGlmeSBjb2RlICovCisJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocCwgdCwgbiwgaGVhZCwgbm9kZSkgeworCQkJLyogU2tpcCBvdmVyIGZhaWxlZCByZWNvcmRzIHdoaWNoIGhhdmUgbm90IGJlZW4KKwkJCSAqIGZyZWVkLiAqLworCQkJaWYgKHAtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkKKwkJCQljb250aW51ZTsKKworCQkJLyogVW5jb252ZXJ0ZWQgcmVjb3JkcyBhcmUgYWx3YXlzIGF0IHRoZSBoZWFkIG9mIHRoZQorCQkJICogaGFzaCBidWNrZXQuIE9uY2Ugd2UgZW5jb3VudGVyIGEgY29udmVydGVkIHJlY29yZCwKKwkJCSAqIHNpbXBseSBza2lwIG92ZXIgdG8gdGhlIG5leHQgYnVja2V0LiBTYXZlcyBmdHJhY2VkCisJCQkgKiBzb21lIHByb2Nlc3NvciBjeWNsZXMgKGZ0cmFjZSBkb2VzIGl0cyBiaWQgZm9yCisJCQkgKiBnbG9iYWwgd2FybWluZyA6LXAgKS4gKi8KKwkJCWlmIChwLT5mbGFncyAmIChGVFJBQ0VfRkxfQ09OVkVSVEVEKSkKKwkJCQlicmVhazsKKworCQkJLyogSWdub3JlIHVwZGF0ZXMgdG8gdGhpcyByZWNvcmQncyBtY291bnQgc2l0ZS4KKwkJCSAqIFJlaW50cm9kdWNlIHRoaXMgcmVjb3JkIGF0IHRoZSBoZWFkIG9mIHRoaXMKKwkJCSAqIGJ1Y2tldCB0byBhdHRlbXB0IHRvICJjb252ZXJ0IiBpdCBhZ2FpbiBpZgorCQkJICogdGhlIGtwcm9iZSBvbiBpdCBpcyB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZQorCQkJICogbmV4dCBydW4uICovCisJCQlpZiAoZ2V0X2twcm9iZSgodm9pZCAqKXAtPmlwKSkgeworCQkJCWZ0cmFjZV9kZWxfaGFzaChwKTsKKwkJCQlJTklUX0hMSVNUX05PREUoJnAtPm5vZGUpOworCQkJCWhsaXN0X2FkZF9oZWFkKCZwLT5ub2RlLCAmdGVtcF9saXN0KTsKKwkJCQlmcmVlemVfcmVjb3JkKHApOworCQkJCWNvbnRpbnVlOworCQkJfSBlbHNlIHsKKwkJCQl1bmZyZWV6ZV9yZWNvcmQocCk7CisJCQl9CisKKwkJCS8qIGNvbnZlcnQgcmVjb3JkIChpLmUsIHBhdGNoIG1jb3VudC1jYWxsIHdpdGggTk9QKSAqLworCQkJaWYgKGZ0cmFjZV9jb2RlX2Rpc2FibGUocCkpIHsKKwkJCQlwLT5mbGFncyB8PSBGVFJBQ0VfRkxfQ09OVkVSVEVEOworCQkJCWZ0cmFjZV91cGRhdGVfY250Kys7CisJCQl9IGVsc2UgeworCQkJCWlmICgoc3lzdGVtX3N0YXRlID09IFNZU1RFTV9CT09USU5HKSB8fAorCQkJCSAgICAhY29yZV9rZXJuZWxfdGV4dChwLT5pcCkpIHsKKwkJCQkJZnRyYWNlX2RlbF9oYXNoKHApOworCQkJCQlmdHJhY2VfZnJlZV9yZWMocCk7CisJCQkJfQorCQkJfQorCQl9CisKKwkJaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwLCB0LCBuLCAmdGVtcF9saXN0LCBub2RlKSB7CisJCQlobGlzdF9kZWwoJnAtPm5vZGUpOworCQkJSU5JVF9ITElTVF9OT0RFKCZwLT5ub2RlKTsKKwkJCWhsaXN0X2FkZF9oZWFkKCZwLT5ub2RlLCBoZWFkKTsKKwkJfQorCX0KKworCXN0b3AgPSBmdHJhY2Vfbm93KHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOworCWZ0cmFjZV91cGRhdGVfdGltZSA9IHN0b3AgLSBzdGFydDsKKwlmdHJhY2VfdXBkYXRlX3RvdF9jbnQgKz0gZnRyYWNlX3VwZGF0ZV9jbnQ7CisJZnRyYWNlZF90cmlnZ2VyID0gMDsKKworCWZ0cmFjZV9lbmFibGVkID0gc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwlmdHJhY2VfcmVjb3JkX3N1c3BlbmQtLTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGZ0cmFjZV91cGRhdGVfY29kZSh2b2lkKQoreworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpIHx8CisJICAgICFmdHJhY2VfZW5hYmxlZCB8fCAhZnRyYWNlZF90cmlnZ2VyKQorCQlyZXR1cm4gMDsKKworCXN0b3BfbWFjaGluZV9ydW4oX19mdHJhY2VfdXBkYXRlX2NvZGUsIE5VTEwsIE5SX0NQVVMpOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgZnRyYWNlZCh2b2lkICppZ25vcmUpCit7CisJdW5zaWduZWQgbG9uZyB1c2VjczsKKworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CisKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKworCQkvKiBjaGVjayBvbmNlIGEgc2Vjb25kICovCisJCXNjaGVkdWxlX3RpbWVvdXQoSFopOworCisJCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQkJY29udGludWU7CisKKwkJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwkJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwkJaWYgKCFmdHJhY2VkX3N1c3BlbmQgJiYgIWZ0cmFjZWRfc3RvcCAmJgorCQkgICAgZnRyYWNlX3VwZGF0ZV9jb2RlKCkpIHsKKwkJCXVzZWNzID0gbnNlY3NfdG9fdXNlY3MoZnRyYWNlX3VwZGF0ZV90aW1lKTsKKwkJCWlmIChmdHJhY2VfdXBkYXRlX3RvdF9jbnQgPiAxMDAwMDApIHsKKwkJCQlmdHJhY2VfdXBkYXRlX3RvdF9jbnQgPSAwOworCQkJCXByX2luZm8oImhtLCBkZnRyYWNlIG92ZXJmbG93OiAlbHUgY2hhbmdlJXMiCisJCQkJCSIgKCVsdSB0b3RhbCkgaW4gJWx1IHVzZWMlc1xuIiwKKwkJCQkJZnRyYWNlX3VwZGF0ZV9jbnQsCisJCQkJCWZ0cmFjZV91cGRhdGVfY250ICE9IDEgPyAicyIgOiAiIiwKKwkJCQkJZnRyYWNlX3VwZGF0ZV90b3RfY250LAorCQkJCQl1c2VjcywgdXNlY3MgIT0gMSA/ICJzIiA6ICIiKTsKKwkJCQlmdHJhY2VfZGlzYWJsZWQgPSAxOworCQkJCVdBUk5fT05fT05DRSgxKTsKKwkJCX0KKwkJfQorCQltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisJCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCQlmdHJhY2Vfc2h1dGRvd25fcmVwbGVuaXNoKCk7CisJfQorCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZnRyYWNlX2R5bl90YWJsZV9hbGxvYyh2b2lkKQoreworCXN0cnVjdCBmdHJhY2VfcGFnZSAqcGc7CisJaW50IGNudDsKKwlpbnQgaTsKKworCS8qIGFsbG9jYXRlIGEgZmV3IHBhZ2VzICovCisJZnRyYWNlX3BhZ2VzX3N0YXJ0ID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFmdHJhY2VfcGFnZXNfc3RhcnQpCisJCXJldHVybiAtMTsKKworCS8qCisJICogQWxsb2NhdGUgYSBmZXcgbW9yZSBwYWdlcy4KKwkgKgorCSAqIFRPRE86IGhhdmUgc29tZSBwYXJzZXIgc2VhcmNoIHZtbGludXggYmVmb3JlCisJICogICBmaW5hbCBsaW5raW5nIHRvIGZpbmQgYWxsIGNhbGxzIHRvIGZ0cmFjZS4KKwkgKiAgIFRoZW4gd2UgY2FuOgorCSAqICAgIGEpIGtub3cgaG93IG1hbnkgcGFnZXMgdG8gYWxsb2NhdGUuCisJICogICAgIGFuZC9vcgorCSAqICAgIGIpIHNldCB1cCB0aGUgdGFibGUgdGhlbi4KKwkgKgorCSAqICBUaGUgZHluYW1pYyBjb2RlIGlzIHN0aWxsIG5lY2Vzc2FyeSBmb3IKKwkgKiAgbW9kdWxlcy4KKwkgKi8KKworCXBnID0gZnRyYWNlX3BhZ2VzID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCisJY250ID0gTlJfVE9fSU5JVCAvIEVOVFJJRVNfUEVSX1BBR0U7CisKKwlmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKKwkJcGctPm5leHQgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKworCQkvKiBJZiB3ZSBmYWlsLCB3ZSdsbCB0cnkgbGF0ZXIgYW55d2F5ICovCisJCWlmICghcGctPm5leHQpCisJCQlicmVhazsKKworCQlwZyA9IHBnLT5uZXh0OworCX0KKworCXJldHVybiAwOworfQorCitlbnVtIHsKKwlGVFJBQ0VfSVRFUl9GSUxURVIJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfSVRFUl9DT05UCT0gKDEgPDwgMSksCisJRlRSQUNFX0lURVJfTk9UUkFDRQk9ICgxIDw8IDIpLAorCUZUUkFDRV9JVEVSX0ZBSUxVUkVTCT0gKDEgPDwgMyksCit9OworCisjZGVmaW5lIEZUUkFDRV9CVUZGX01BWCAoS1NZTV9TWU1CT0xfTEVOKzQpIC8qIHJvb20gZm9yIHdpbGRjYXJkcyAqLworCitzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yIHsKKwlsb2ZmX3QJCQlwb3M7CisJc3RydWN0IGZ0cmFjZV9wYWdlCSpwZzsKKwl1bnNpZ25lZAkJaWR4OworCXVuc2lnbmVkCQlmbGFnczsKKwl1bnNpZ25lZCBjaGFyCQlidWZmZXJbRlRSQUNFX0JVRkZfTUFYKzFdOworCXVuc2lnbmVkCQlidWZmZXJfaWR4OworCXVuc2lnbmVkCQlmaWx0ZXJlZDsKK307CisKK3N0YXRpYyB2b2lkICoKK3RfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWMgPSBOVUxMOworCisJKCpwb3MpKys7CisKKyByZXRyeToKKwlpZiAoaXRlci0+aWR4ID49IGl0ZXItPnBnLT5pbmRleCkgeworCQlpZiAoaXRlci0+cGctPm5leHQpIHsKKwkJCWl0ZXItPnBnID0gaXRlci0+cGctPm5leHQ7CisJCQlpdGVyLT5pZHggPSAwOworCQkJZ290byByZXRyeTsKKwkJfQorCX0gZWxzZSB7CisJCXJlYyA9ICZpdGVyLT5wZy0+cmVjb3Jkc1tpdGVyLT5pZHgrK107CisJCWlmICgoIShpdGVyLT5mbGFncyAmIEZUUkFDRV9JVEVSX0ZBSUxVUkVTKSAmJgorCQkgICAgIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkpIHx8CisKKwkJICAgICgoaXRlci0+ZmxhZ3MgJiBGVFJBQ0VfSVRFUl9GQUlMVVJFUykgJiYKKwkJICAgICAoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkgfHwKKwkJICAgICAgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJFRSkpKSB8fAorCisJCSAgICAoKGl0ZXItPmZsYWdzICYgRlRSQUNFX0lURVJfRklMVEVSKSAmJgorCQkgICAgICEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GSUxURVIpKSB8fAorCisJCSAgICAoKGl0ZXItPmZsYWdzICYgRlRSQUNFX0lURVJfTk9UUkFDRSkgJiYKKwkJICAgICAhKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfTk9UUkFDRSkpKSB7CisJCQlyZWMgPSBOVUxMOworCQkJZ290byByZXRyeTsKKwkJfQorCX0KKworCWl0ZXItPnBvcyA9ICpwb3M7CisKKwlyZXR1cm4gcmVjOworfQorCitzdGF0aWMgdm9pZCAqdF9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCXZvaWQgKnAgPSBOVUxMOworCWxvZmZfdCBsID0gLTE7CisKKwlpZiAoKnBvcyAhPSBpdGVyLT5wb3MpIHsKKwkJZm9yIChwID0gdF9uZXh0KG0sIHAsICZsKTsgcCAmJiBsIDwgKnBvczsgcCA9IHRfbmV4dChtLCBwLCAmbCkpCisJCQk7CisJfSBlbHNlIHsKKwkJbCA9ICpwb3M7CisJCXAgPSB0X25leHQobSwgcCwgJmwpOworCX0KKworCXJldHVybiBwOworfQorCitzdGF0aWMgdm9pZCB0X3N0b3Aoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpwKQoreworfQorCitzdGF0aWMgaW50IHRfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYyA9IHY7CisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCWlmICghcmVjKQorCQlyZXR1cm4gMDsKKworCWthbGxzeW1zX2xvb2t1cChyZWMtPmlwLCBOVUxMLCBOVUxMLCBOVUxMLCBzdHIpOworCisJc2VxX3ByaW50ZihtLCAiJXNcbiIsIHN0cik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBzaG93X2Z0cmFjZV9zZXFfb3BzID0geworCS5zdGFydCA9IHRfc3RhcnQsCisJLm5leHQgPSB0X25leHQsCisJLnN0b3AgPSB0X3N0b3AsCisJLnNob3cgPSB0X3Nob3csCit9OworCitzdGF0aWMgaW50CitmdHJhY2VfYXZhaWxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWludCByZXQ7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJaXRlci0+cGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJaXRlci0+cG9zID0gLTE7CisKKwlyZXQgPSBzZXFfb3BlbihmaWxlLCAmc2hvd19mdHJhY2Vfc2VxX29wcyk7CisJaWYgKCFyZXQpIHsKKwkJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJCW0tPnByaXZhdGUgPSBpdGVyOworCX0gZWxzZSB7CisJCWtmcmVlKGl0ZXIpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK2ludCBmdHJhY2VfYXZhaWxfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSAoc3RydWN0IHNlcV9maWxlICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCisJc2VxX3JlbGVhc2UoaW5vZGUsIGZpbGUpOworCWtmcmVlKGl0ZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9mYWlsdXJlc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWludCByZXQ7CisJc3RydWN0IHNlcV9maWxlICptOworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisKKwlyZXQgPSBmdHJhY2VfYXZhaWxfb3Blbihpbm9kZSwgZmlsZSk7CisJaWYgKCFyZXQpIHsKKwkJbSA9IChzdHJ1Y3Qgc2VxX2ZpbGUgKilmaWxlLT5wcml2YXRlX2RhdGE7CisJCWl0ZXIgPSAoc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqKW0tPnByaXZhdGU7CisJCWl0ZXItPmZsYWdzID0gRlRSQUNFX0lURVJfRkFJTFVSRVM7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgdm9pZCBmdHJhY2VfZmlsdGVyX3Jlc2V0KGludCBlbmFibGUpCit7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCXVuc2lnbmVkIGxvbmcgdHlwZSA9IGVuYWJsZSA/IEZUUkFDRV9GTF9GSUxURVIgOiBGVFJBQ0VfRkxfTk9UUkFDRTsKKwl1bnNpZ25lZCBpOworCisJLyoga2VlcCBrc3RvcCBtYWNoaW5lIGZyb20gcnVubmluZyAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCWlmIChlbmFibGUpCisJCWZ0cmFjZV9maWx0ZXJlZCA9IDA7CisJcGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJd2hpbGUgKHBnKSB7CisJCWZvciAoaSA9IDA7IGkgPCBwZy0+aW5kZXg7IGkrKykgeworCQkJcmVjID0gJnBnLT5yZWNvcmRzW2ldOworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCQkJcmVjLT5mbGFncyAmPSB+dHlwZTsKKwkJfQorCQlwZyA9IHBnLT5uZXh0OworCX0KKwlwcmVlbXB0X2VuYWJsZSgpOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfcmVnZXhfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWludCByZXQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtRU5PREVWOworCisJaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCppdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpdGVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKwlpZiAoKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKSAmJgorCSAgICAhKGZpbGUtPmZfZmxhZ3MgJiBPX0FQUEVORCkpCisJCWZ0cmFjZV9maWx0ZXJfcmVzZXQoZW5hYmxlKTsKKworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7CisJCWl0ZXItPnBnID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCQlpdGVyLT5wb3MgPSAtMTsKKwkJaXRlci0+ZmxhZ3MgPSBlbmFibGUgPyBGVFJBQ0VfSVRFUl9GSUxURVIgOgorCQkJRlRSQUNFX0lURVJfTk9UUkFDRTsKKworCQlyZXQgPSBzZXFfb3BlbihmaWxlLCAmc2hvd19mdHJhY2Vfc2VxX29wcyk7CisJCWlmICghcmV0KSB7CisJCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJCQltLT5wcml2YXRlID0gaXRlcjsKKwkJfSBlbHNlCisJCQlrZnJlZShpdGVyKTsKKwl9IGVsc2UKKwkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gaXRlcjsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9maWx0ZXJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X29wZW4oaW5vZGUsIGZpbGUsIDEpOworfQorCitzdGF0aWMgaW50CitmdHJhY2Vfbm90cmFjZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfb3Blbihpbm9kZSwgZmlsZSwgMCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2VfcmVnZXhfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpCisJCXJldHVybiBzZXFfcmVhZChmaWxlLCB1YnVmLCBjbnQsIHBwb3MpOworCWVsc2UKKwkJcmV0dXJuIC1FUEVSTTsKK30KKworc3RhdGljIGxvZmZfdAorZnRyYWNlX3JlZ2V4X2xzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQoreworCWxvZmZfdCByZXQ7CisKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkKKwkJcmV0ID0gc2VxX2xzZWVrKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwllbHNlCisJCWZpbGUtPmZfcG9zID0gcmV0ID0gMTsKKworCXJldHVybiByZXQ7Cit9CisKK2VudW0geworCU1BVENIX0ZVTEwsCisJTUFUQ0hfRlJPTlRfT05MWSwKKwlNQVRDSF9NSURETEVfT05MWSwKKwlNQVRDSF9FTkRfT05MWSwKK307CisKK3N0YXRpYyB2b2lkCitmdHJhY2VfbWF0Y2godW5zaWduZWQgY2hhciAqYnVmZiwgaW50IGxlbiwgaW50IGVuYWJsZSkKK3sKKwljaGFyIHN0cltLU1lNX1NZTUJPTF9MRU5dOworCWNoYXIgKnNlYXJjaCA9IE5VTEw7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCWludCB0eXBlID0gTUFUQ0hfRlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWcgPSBlbmFibGUgPyBGVFJBQ0VfRkxfRklMVEVSIDogRlRSQUNFX0ZMX05PVFJBQ0U7CisJdW5zaWduZWQgaSwgbWF0Y2ggPSAwLCBzZWFyY2hfbGVuID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQlpZiAoYnVmZltpXSA9PSAnKicpIHsKKwkJCWlmICghaSkgeworCQkJCXNlYXJjaCA9IGJ1ZmYgKyBpICsgMTsKKwkJCQl0eXBlID0gTUFUQ0hfRU5EX09OTFk7CisJCQkJc2VhcmNoX2xlbiA9IGxlbiAtIChpICsgMSk7CisJCQl9IGVsc2UgeworCQkJCWlmICh0eXBlID09IE1BVENIX0VORF9PTkxZKSB7CisJCQkJCXR5cGUgPSBNQVRDSF9NSURETEVfT05MWTsKKwkJCQl9IGVsc2UgeworCQkJCQltYXRjaCA9IGk7CisJCQkJCXR5cGUgPSBNQVRDSF9GUk9OVF9PTkxZOworCQkJCX0KKwkJCQlidWZmW2ldID0gMDsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCS8qIGtlZXAga3N0b3AgbWFjaGluZSBmcm9tIHJ1bm5pbmcgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlpZiAoZW5hYmxlKQorCQlmdHJhY2VfZmlsdGVyZWQgPSAxOworCXBnID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCXdoaWxlIChwZykgeworCQlmb3IgKGkgPSAwOyBpIDwgcGctPmluZGV4OyBpKyspIHsKKwkJCWludCBtYXRjaGVkID0gMDsKKwkJCWNoYXIgKnB0cjsKKworCQkJcmVjID0gJnBnLT5yZWNvcmRzW2ldOworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCQkJa2FsbHN5bXNfbG9va3VwKHJlYy0+aXAsIE5VTEwsIE5VTEwsIE5VTEwsIHN0cik7CisJCQlzd2l0Y2ggKHR5cGUpIHsKKwkJCWNhc2UgTUFUQ0hfRlVMTDoKKwkJCQlpZiAoc3RyY21wKHN0ciwgYnVmZikgPT0gMCkKKwkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlIE1BVENIX0ZST05UX09OTFk6CisJCQkJaWYgKG1lbWNtcChzdHIsIGJ1ZmYsIG1hdGNoKSA9PSAwKQorCQkJCQltYXRjaGVkID0gMTsKKwkJCQlicmVhazsKKwkJCWNhc2UgTUFUQ0hfTUlERExFX09OTFk6CisJCQkJaWYgKHN0cnN0cihzdHIsIHNlYXJjaCkpCisJCQkJCW1hdGNoZWQgPSAxOworCQkJCWJyZWFrOworCQkJY2FzZSBNQVRDSF9FTkRfT05MWToKKwkJCQlwdHIgPSBzdHJzdHIoc3RyLCBzZWFyY2gpOworCQkJCWlmIChwdHIgJiYgKHB0cltzZWFyY2hfbGVuXSA9PSAwKSkKKwkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAobWF0Y2hlZCkKKwkJCQlyZWMtPmZsYWdzIHw9IGZsYWc7CisJCX0KKwkJcGcgPSBwZy0+bmV4dDsKKwl9CisJcHJlZW1wdF9lbmFibGUoKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZV9yZWdleF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcywgaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWNoYXIgY2g7CisJc2l6ZV90IHJlYWQgPSAwOworCXNzaXplX3QgcmV0OworCisJaWYgKCFjbnQgfHwgY250IDwgMCkKKwkJcmV0dXJuIDA7CisKKwltdXRleF9sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7CisKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkgeworCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJCWl0ZXIgPSBtLT5wcml2YXRlOworCX0gZWxzZQorCQlpdGVyID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJaWYgKCEqcHBvcykgeworCQlpdGVyLT5mbGFncyAmPSB+RlRSQUNFX0lURVJfQ09OVDsKKwkJaXRlci0+YnVmZmVyX2lkeCA9IDA7CisJfQorCisJcmV0ID0gZ2V0X3VzZXIoY2gsIHVidWYrKyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmVhZCsrOworCWNudC0tOworCisJaWYgKCEoaXRlci0+ZmxhZ3MgJiB+RlRSQUNFX0lURVJfQ09OVCkpIHsKKwkJLyogc2tpcCB3aGl0ZSBzcGFjZSAqLworCQl3aGlsZSAoY250ICYmIGlzc3BhY2UoY2gpKSB7CisJCQlyZXQgPSBnZXRfdXNlcihjaCwgdWJ1ZisrKTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBvdXQ7CisJCQlyZWFkKys7CisJCQljbnQtLTsKKwkJfQorCisJCWlmIChpc3NwYWNlKGNoKSkgeworCQkJZmlsZS0+Zl9wb3MgKz0gcmVhZDsKKwkJCXJldCA9IHJlYWQ7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWl0ZXItPmJ1ZmZlcl9pZHggPSAwOworCX0KKworCXdoaWxlIChjbnQgJiYgIWlzc3BhY2UoY2gpKSB7CisJCWlmIChpdGVyLT5idWZmZXJfaWR4IDwgRlRSQUNFX0JVRkZfTUFYKQorCQkJaXRlci0+YnVmZmVyW2l0ZXItPmJ1ZmZlcl9pZHgrK10gPSBjaDsKKwkJZWxzZSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKwkJcmV0ID0gZ2V0X3VzZXIoY2gsIHVidWYrKyk7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKKwkJcmVhZCsrOworCQljbnQtLTsKKwl9CisKKwlpZiAoaXNzcGFjZShjaCkpIHsKKwkJaXRlci0+ZmlsdGVyZWQrKzsKKwkJaXRlci0+YnVmZmVyW2l0ZXItPmJ1ZmZlcl9pZHhdID0gMDsKKwkJZnRyYWNlX21hdGNoKGl0ZXItPmJ1ZmZlciwgaXRlci0+YnVmZmVyX2lkeCwgZW5hYmxlKTsKKwkJaXRlci0+YnVmZmVyX2lkeCA9IDA7CisJfSBlbHNlCisJCWl0ZXItPmZsYWdzIHw9IEZUUkFDRV9JVEVSX0NPTlQ7CisKKworCWZpbGUtPmZfcG9zICs9IHJlYWQ7CisKKwlyZXQgPSByZWFkOworIG91dDoKKwltdXRleF91bmxvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2VfZmlsdGVyX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X3dyaXRlKGZpbGUsIHVidWYsIGNudCwgcHBvcywgMSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2Vfbm90cmFjZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfd3JpdGUoZmlsZSwgdWJ1ZiwgY250LCBwcG9zLCAwKTsKK30KKworc3RhdGljIHZvaWQKK2Z0cmFjZV9zZXRfcmVnZXgodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQsIGludCBlbmFibGUpCit7CisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKwlpZiAocmVzZXQpCisJCWZ0cmFjZV9maWx0ZXJfcmVzZXQoZW5hYmxlKTsKKwlpZiAoYnVmKQorCQlmdHJhY2VfbWF0Y2goYnVmLCBsZW4sIGVuYWJsZSk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7Cit9CisKKy8qKgorICogZnRyYWNlX3NldF9maWx0ZXIgLSBzZXQgYSBmdW5jdGlvbiB0byBmaWx0ZXIgb24gaW4gZnRyYWNlCisgKiBAYnVmIC0gdGhlIHN0cmluZyB0aGF0IGhvbGRzIHRoZSBmdW5jdGlvbiBmaWx0ZXIgdGV4dC4KKyAqIEBsZW4gLSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiBAcmVzZXQgLSBub24gemVybyB0byByZXNldCBhbGwgZmlsdGVycyBiZWZvcmUgYXBwbHlpbmcgdGhpcyBmaWx0ZXIuCisgKgorICogRmlsdGVycyBkZW5vdGUgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBlbmFibGVkIHdoZW4gdHJhY2luZyBpcyBlbmFibGVkLgorICogSWYgQGJ1ZiBpcyBOVUxMIGFuZCByZXNldCBpcyBzZXQsIGFsbCBmdW5jdGlvbnMgd2lsbCBiZSBlbmFibGVkIGZvciB0cmFjaW5nLgorICovCit2b2lkIGZ0cmFjZV9zZXRfZmlsdGVyKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHJlc2V0KQoreworCWZ0cmFjZV9zZXRfcmVnZXgoYnVmLCBsZW4sIHJlc2V0LCAxKTsKK30KKworLyoqCisgKiBmdHJhY2Vfc2V0X25vdHJhY2UgLSBzZXQgYSBmdW5jdGlvbiB0byBub3QgdHJhY2UgaW4gZnRyYWNlCisgKiBAYnVmIC0gdGhlIHN0cmluZyB0aGF0IGhvbGRzIHRoZSBmdW5jdGlvbiBub3RyYWNlIHRleHQuCisgKiBAbGVuIC0gdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICogQHJlc2V0IC0gbm9uIHplcm8gdG8gcmVzZXQgYWxsIGZpbHRlcnMgYmVmb3JlIGFwcGx5aW5nIHRoaXMgZmlsdGVyLgorICoKKyAqIE5vdHJhY2UgRmlsdGVycyBkZW5vdGUgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgZW5hYmxlZCB3aGVuIHRyYWNpbmcKKyAqIGlzIGVuYWJsZWQuIElmIEBidWYgaXMgTlVMTCBhbmQgcmVzZXQgaXMgc2V0LCBhbGwgZnVuY3Rpb25zIHdpbGwgYmUgZW5hYmxlZAorICogZm9yIHRyYWNpbmcuCisgKi8KK3ZvaWQgZnRyYWNlX3NldF9ub3RyYWNlKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHJlc2V0KQoreworCWZ0cmFjZV9zZXRfcmVnZXgoYnVmLCBsZW4sIHJlc2V0LCAwKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX3JlZ2V4X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIGludCBlbmFibGUpCit7CisJc3RydWN0IHNlcV9maWxlICptID0gKHN0cnVjdCBzZXFfZmlsZSAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7CisJCWl0ZXIgPSBtLT5wcml2YXRlOworCisJCXNlcV9yZWxlYXNlKGlub2RlLCBmaWxlKTsKKwl9IGVsc2UKKwkJaXRlciA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCWlmIChpdGVyLT5idWZmZXJfaWR4KSB7CisJCWl0ZXItPmZpbHRlcmVkKys7CisJCWl0ZXItPmJ1ZmZlcltpdGVyLT5idWZmZXJfaWR4XSA9IDA7CisJCWZ0cmFjZV9tYXRjaChpdGVyLT5idWZmZXIsIGl0ZXItPmJ1ZmZlcl9pZHgsIGVuYWJsZSk7CisJfQorCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCWlmIChpdGVyLT5maWx0ZXJlZCAmJiBmdHJhY2VkX3N1c3BlbmQgJiYgZnRyYWNlX2VuYWJsZWQpCisJCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoRlRSQUNFX0VOQUJMRV9DQUxMUyk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCWtmcmVlKGl0ZXIpOworCW11dGV4X3VubG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfZmlsdGVyX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIGZ0cmFjZV9yZWdleF9yZWxlYXNlKGlub2RlLCBmaWxlLCAxKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX25vdHJhY2VfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X3JlbGVhc2UoaW5vZGUsIGZpbGUsIDApOworfQorCitzdGF0aWMgc3NpemVfdAorZnRyYWNlZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJLyogZG9uJ3Qgd29ycnkgYWJvdXQgcmFjZXMgKi8KKwljaGFyICpidWYgPSBmdHJhY2VkX3N0b3AgPyAiZGlzYWJsZWRcbiIgOiAiZW5hYmxlZFxuIjsKKwlpbnQgciA9IHN0cmxlbihidWYpOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZWRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciBidWZbNjRdOworCWxvbmcgdmFsOworCWludCByZXQ7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChzdHJuY21wKGJ1ZiwgImVuYWJsZSIsIDYpID09IDApCisJCXZhbCA9IDE7CisJZWxzZSBpZiAoc3RybmNtcChidWYsICJkaXNhYmxlIiwgNykgPT0gMCkKKwkJdmFsID0gMDsKKwllbHNlIHsKKwkJYnVmW2NudF0gPSAwOworCisJCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJdmFsID0gISF2YWw7CisJfQorCisJaWYgKHZhbCkKKwkJZnRyYWNlX2VuYWJsZV9kYWVtb24oKTsKKwllbHNlCisJCWZ0cmFjZV9kaXNhYmxlX2RhZW1vbigpOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnRyYWNlX2F2YWlsX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2VfYXZhaWxfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2VfYXZhaWxfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZ0cmFjZV9mYWlsdXJlc19mb3BzID0geworCS5vcGVuID0gZnRyYWNlX2ZhaWx1cmVzX29wZW4sCisJLnJlYWQgPSBzZXFfcmVhZCwKKwkubGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gZnRyYWNlX2F2YWlsX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2VfZmlsdGVyX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2VfZmlsdGVyX29wZW4sCisJLnJlYWQgPSBmdHJhY2VfcmVnZXhfcmVhZCwKKwkud3JpdGUgPSBmdHJhY2VfZmlsdGVyX3dyaXRlLAorCS5sbHNlZWsgPSBmdHJhY2VfcmVnZXhfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2VfZmlsdGVyX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2Vfbm90cmFjZV9mb3BzID0geworCS5vcGVuID0gZnRyYWNlX25vdHJhY2Vfb3BlbiwKKwkucmVhZCA9IGZ0cmFjZV9yZWdleF9yZWFkLAorCS53cml0ZSA9IGZ0cmFjZV9ub3RyYWNlX3dyaXRlLAorCS5sbHNlZWsgPSBmdHJhY2VfcmVnZXhfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2Vfbm90cmFjZV9yZWxlYXNlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnRyYWNlZF9mb3BzID0geworCS5vcGVuID0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQgPSBmdHJhY2VkX3JlYWQsCisJLndyaXRlID0gZnRyYWNlZF93cml0ZSwKK307CisKKy8qKgorICogZnRyYWNlX2ZvcmNlX3VwZGF0ZSAtIGZvcmNlIGFuIHVwZGF0ZSB0byBhbGwgcmVjb3JkaW5nIGZ0cmFjZSBmdW5jdGlvbnMKKyAqLworaW50IGZ0cmFjZV9mb3JjZV91cGRhdGUodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKworCS8qCisJICogSWYgZnRyYWNlZF90cmlnZ2VyIGlzIG5vdCBzZXQsIHRoZW4gdGhlcmUgaXMgbm90aGluZworCSAqIHRvIHVwZGF0ZS4KKwkgKi8KKwlpZiAoZnRyYWNlZF90cmlnZ2VyICYmICFmdHJhY2VfdXBkYXRlX2NvZGUoKSkKKwkJcmV0ID0gLUVCVVNZOworCisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9mb3JjZV9zaHV0ZG93bih2b2lkKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlpbnQgY29tbWFuZCA9IEZUUkFDRV9ESVNBQkxFX0NBTExTIHwgRlRSQUNFX1VQREFURV9UUkFDRV9GVU5DOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwl0YXNrID0gZnRyYWNlZF90YXNrOworCWZ0cmFjZWRfdGFzayA9IE5VTEw7CisJZnRyYWNlZF9zdXNwZW5kID0gLTE7CisJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisKKwlpZiAodGFzaykKKwkJa3RocmVhZF9zdG9wKHRhc2spOworfQorCitzdGF0aWMgX19pbml0IGludCBmdHJhY2VfaW5pdF9kZWJ1Z2ZzKHZvaWQpCit7CisJc3RydWN0IGRlbnRyeSAqZF90cmFjZXI7CisJc3RydWN0IGRlbnRyeSAqZW50cnk7CisKKwlkX3RyYWNlciA9IHRyYWNpbmdfaW5pdF9kZW50cnkoKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiYXZhaWxhYmxlX2ZpbHRlcl9mdW5jdGlvbnMiLCAwNDQ0LAorCQkJCSAgICBkX3RyYWNlciwgTlVMTCwgJmZ0cmFjZV9hdmFpbF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIidhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucycgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJmYWlsdXJlcyIsIDA0NDQsCisJCQkJICAgIGRfdHJhY2VyLCBOVUxMLCAmZnRyYWNlX2ZhaWx1cmVzX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAnZmFpbHVyZXMnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic2V0X2Z0cmFjZV9maWx0ZXIiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJmZ0cmFjZV9maWx0ZXJfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICInc2V0X2Z0cmFjZV9maWx0ZXInIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic2V0X2Z0cmFjZV9ub3RyYWNlIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZmdHJhY2Vfbm90cmFjZV9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIidzZXRfZnRyYWNlX25vdHJhY2UnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiZnRyYWNlZF9lbmFibGVkIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZmdHJhY2VkX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ2Z0cmFjZWRfZW5hYmxlZCcgZW50cnlcbiIpOworCXJldHVybiAwOworfQorCitmc19pbml0Y2FsbChmdHJhY2VfaW5pdF9kZWJ1Z2ZzKTsKKworc3RhdGljIGludCBfX2luaXQgZnRyYWNlX2R5bmFtaWNfaW5pdCh2b2lkKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50IHJldDsKKworCWFkZHIgPSAodW5zaWduZWQgbG9uZylmdHJhY2VfcmVjb3JkX2lwOworCisJc3RvcF9tYWNoaW5lX3J1bihmdHJhY2VfZHluX2FyY2hfaW5pdCwgJmFkZHIsIE5SX0NQVVMpOworCisJLyogZnRyYWNlX2R5bl9hcmNoX2luaXQgcGxhY2VzIHRoZSByZXR1cm4gY29kZSBpbiBhZGRyICovCisJaWYgKGFkZHIpIHsKKwkJcmV0ID0gKGludClhZGRyOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlyZXQgPSBmdHJhY2VfZHluX3RhYmxlX2FsbG9jKCk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsZWQ7CisKKwlwID0ga3RocmVhZF9ydW4oZnRyYWNlZCwgTlVMTCwgImZ0cmFjZWQiKTsKKwlpZiAoSVNfRVJSKHApKSB7CisJCXJldCA9IC0xOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlsYXN0X2Z0cmFjZV9lbmFibGVkID0gZnRyYWNlX2VuYWJsZWQgPSAxOworCWZ0cmFjZWRfdGFzayA9IHA7CisKKwlyZXR1cm4gMDsKKworIGZhaWxlZDoKKwlmdHJhY2VfZGlzYWJsZWQgPSAxOworCXJldHVybiByZXQ7Cit9CisKK2NvcmVfaW5pdGNhbGwoZnRyYWNlX2R5bmFtaWNfaW5pdCk7CisjZWxzZQorIyBkZWZpbmUgZnRyYWNlX3N0YXJ0dXAoKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgZnRyYWNlX3NodXRkb3duKCkJCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9zdGFydHVwX3N5c2N0bCgpCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9zaHV0ZG93bl9zeXNjdGwoKQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2VfZm9yY2Vfc2h1dGRvd24oKQlkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisKKy8qKgorICogZnRyYWNlX2tpbGxfYXRvbWljIC0ga2lsbCBmdHJhY2UgZnJvbSBjcml0aWNhbCBzZWN0aW9ucworICoKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgYnkgcGFuaWMgY29kZS4gSXQgc3RvcHMgZnRyYWNlCisgKiBidXQgaW4gYSBub3Qgc28gbmljZSB3YXkuIElmIHlvdSBuZWVkIHRvIHNpbXBseSBraWxsIGZ0cmFjZQorICogZnJvbSBhIG5vbi1hdG9taWMgc2VjdGlvbiwgdXNlIGZ0cmFjZV9raWxsLgorICovCit2b2lkIGZ0cmFjZV9raWxsX2F0b21pYyh2b2lkKQoreworCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCWZ0cmFjZWRfc3VzcGVuZCA9IC0xOworI2VuZGlmCisJY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKCk7Cit9CisKKy8qKgorICogZnRyYWNlX2tpbGwgLSB0b3RhbGx5IHNodXRkb3duIGZ0cmFjZQorICoKKyAqIFRoaXMgaXMgYSBzYWZldHkgbWVhc3VyZS4gSWYgc29tZXRoaW5nIHdhcyBkZXRlY3RlZCB0aGF0IHNlZW1zCisgKiB3cm9uZywgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwga2VlcCBmdHJhY2UgZnJvbSBkb2luZworICogYW55IG1vcmUgbW9kaWZpY2F0aW9ucywgYW5kIHVwZGF0ZXMuCisgKiB1c2VkIHdoZW4gc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgKi8KK3ZvaWQgZnRyYWNlX2tpbGwodm9pZCkKK3sKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworCisJY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJLyogVHJ5IHRvIHRvdGFsbHkgZGlzYWJsZSBmdHJhY2UgKi8KKwlmdHJhY2VfZm9yY2Vfc2h1dGRvd24oKTsKK30KKworLyoqCisgKiByZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24gLSByZWdpc3RlciBhIGZ1bmN0aW9uIGZvciBwcm9maWxpbmcKKyAqIEBvcHMgLSBvcHMgc3RydWN0dXJlIHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uIGZvciBwcm9maWxpbmcuCisgKgorICogUmVnaXN0ZXIgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYnkgYWxsIGZ1bmN0aW9ucyBpbiB0aGUKKyAqIGtlcm5lbC4KKyAqCisgKiBOb3RlOiBAb3BzLT5mdW5jIGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBpdCBjYWxscyBtdXN0IGJlIGxhYmVsZWQKKyAqICAgICAgIHdpdGggIm5vdHJhY2UiLCBvdGhlcndpc2UgaXQgd2lsbCBnbyBpbnRvIGEKKyAqICAgICAgIHJlY3Vyc2l2ZSBsb29wLgorICovCitpbnQgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpCit7CisJaW50IHJldDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm4gLTE7CisKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCXJldCA9IF9fcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcyk7CisJZnRyYWNlX3N0YXJ0dXAoKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uIC0gdW5yZXNnaXN0ZXIgYSBmdW5jdGlvbiBmb3IgcHJvZmlsaW5nLgorICogQG9wcyAtIG9wcyBzdHJ1Y3R1cmUgdGhhdCBob2xkcyB0aGUgZnVuY3Rpb24gdG8gdW5yZWdpc3RlcgorICoKKyAqIFVucmVnaXN0ZXIgYSBmdW5jdGlvbiB0aGF0IHdhcyBhZGRlZCB0byBiZSBjYWxsZWQgYnkgZnRyYWNlIHByb2ZpbGluZy4KKyAqLworaW50IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpCit7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJcmV0ID0gX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpOworCWZ0cmFjZV9zaHV0ZG93bigpOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK2ludAorZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAorCQkgICAgIGxvZmZfdCAqcHBvcykKK3sKKwlpbnQgcmV0OworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtRU5PREVWOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldCAgPSBwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlsZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKKworCWlmIChyZXQgfHwgIXdyaXRlIHx8IChsYXN0X2Z0cmFjZV9lbmFibGVkID09IGZ0cmFjZV9lbmFibGVkKSkKKwkJZ290byBvdXQ7CisKKwlsYXN0X2Z0cmFjZV9lbmFibGVkID0gZnRyYWNlX2VuYWJsZWQ7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKworCQlmdHJhY2Vfc3RhcnR1cF9zeXNjdGwoKTsKKworCQkvKiB3ZSBhcmUgc3RhcnRpbmcgZnRyYWNlIGFnYWluICovCisJCWlmIChmdHJhY2VfbGlzdCAhPSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCQlpZiAoZnRyYWNlX2xpc3QtPm5leHQgPT0gJmZ0cmFjZV9saXN0X2VuZCkKKwkJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2VfbGlzdC0+ZnVuYzsKKwkJCWVsc2UKKwkJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2VfbGlzdF9mdW5jOworCQl9CisKKwl9IGVsc2UgeworCQkvKiBzdG9wcGluZyBmdHJhY2UgY2FsbHMgKGp1c3Qgc2VuZCB0byBmdHJhY2Vfc3R1YikgKi8KKwkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX3N0dWI7CisKKwkJZnRyYWNlX3NodXRkb3duX3N5c2N0bCgpOworCX0KKworIG91dDoKKwltdXRleF91bmxvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY4ZTEyMQotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZS5jCkBAIC0wLDAgKzEsMzE2MSBAQAorLyoKKyAqIHJpbmcgYnVmZmVyIGJhc2VkIGZ1bmN0aW9uIHRyYWNlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqIE9yaWdpbmFsbHkgdGFrZW4gZnJvbSB0aGUgUlQgcGF0Y2ggYnk6CisgKiAgICBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAcmVkaGF0LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEluZ28gTW9sbmFyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IFdpbGxpYW0gTGVlIElyd2luIElJSQorICovCisjaW5jbHVkZSA8bGludXgvdXRzcmVsZWFzZS5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KKyNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KKworI2luY2x1ZGUgPGxpbnV4L3N0YWNrdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3Vuc2lnbmVkIGxvbmcgX19yZWFkX21vc3RseQl0cmFjaW5nX21heF9sYXRlbmN5ID0gKGN5Y2xlX3QpVUxPTkdfTUFYOwordW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5CXRyYWNpbmdfdGhyZXNoOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5CXRyYWNpbmdfbnJfYnVmZmVyczsKK3N0YXRpYyBjcHVtYXNrX3QgX19yZWFkX21vc3RseQkJdHJhY2luZ19idWZmZXJfbWFzazsKKworI2RlZmluZSBmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpCVwKKwlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIHRyYWNpbmdfYnVmZmVyX21hc2spCisKK3N0YXRpYyBpbnQgdHJhY2VfYWxsb2NfcGFnZSh2b2lkKTsKK3N0YXRpYyBpbnQgdHJhY2VfZnJlZV9wYWdlKHZvaWQpOworCitzdGF0aWMgaW50IHRyYWNpbmdfZGlzYWJsZWQgPSAxOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyB0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZDsKKworbG9uZworbnMydXNlY3MoY3ljbGVfdCBuc2VjKQoreworCW5zZWMgKz0gNTAwOworCWRvX2Rpdihuc2VjLCAxMDAwKTsKKwlyZXR1cm4gbnNlYzsKK30KKworY3ljbGVfdCBmdHJhY2Vfbm93KGludCBjcHUpCit7CisJcmV0dXJuIGNwdV9jbG9jayhjcHUpOworfQorCisvKgorICogVGhlIGdsb2JhbF90cmFjZSBpcyB0aGUgZGVzY3JpcHRvciB0aGF0IGhvbGRzIHRoZSB0cmFjaW5nCisgKiBidWZmZXJzIGZvciB0aGUgbGl2ZSB0cmFjaW5nLiBGb3IgZWFjaCBDUFUsIGl0IGNvbnRhaW5zCisgKiBhIGxpbmsgbGlzdCBvZiBwYWdlcyB0aGF0IHdpbGwgc3RvcmUgdHJhY2UgZW50cmllcy4gVGhlCisgKiBwYWdlIGRlc2NyaXB0b3Igb2YgdGhlIHBhZ2VzIGluIHRoZSBtZW1vcnkgaXMgdXNlZCB0byBob2xkCisgKiB0aGUgbGluayBsaXN0IGJ5IGxpbmtpbmcgdGhlIGxydSBpdGVtIGluIHRoZSBwYWdlIGRlc2NyaXB0b3IKKyAqIHRvIGVhY2ggb2YgdGhlIHBhZ2VzIGluIHRoZSBidWZmZXIgcGVyIENQVS4KKyAqCisgKiBGb3IgZWFjaCBhY3RpdmUgQ1BVIHRoZXJlIGlzIGEgZGF0YSBmaWVsZCB0aGF0IGhvbGRzIHRoZQorICogcGFnZXMgZm9yIHRoZSBidWZmZXIgZm9yIHRoYXQgQ1BVLiBFYWNoIENQVSBoYXMgdGhlIHNhbWUgbnVtYmVyCisgKiBvZiBwYWdlcyBhbGxvY2F0ZWQgZm9yIGl0cyBidWZmZXIuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJZ2xvYmFsX3RyYWNlOworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRyYWNlX2FycmF5X2NwdSwgZ2xvYmFsX3RyYWNlX2NwdSk7CisKKy8qCisgKiBUaGUgbWF4X3RyIGlzIHVzZWQgdG8gc25hcHNob3QgdGhlIGdsb2JhbF90cmFjZSB3aGVuIGEgbWF4aW11bQorICogbGF0ZW5jeSBpcyByZWFjaGVkLiBTb21lIHRyYWNlcnMgd2lsbCB1c2UgdGhpcyB0byBzdG9yZSBhIG1heGltdW0KKyAqIHRyYWNlIHdoaWxlIGl0IGNvbnRpbnVlcyBleGFtaW5pbmcgbGl2ZSB0cmFjZXMuCisgKgorICogVGhlIGJ1ZmZlcnMgZm9yIHRoZSBtYXhfdHIgYXJlIHNldCB1cCB0aGUgc2FtZSBhcyB0aGUgZ2xvYmFsX3RyYWNlLgorICogV2hlbiBhIHNuYXBzaG90IGlzIHRha2VuLCB0aGUgbGluayBsaXN0IG9mIHRoZSBtYXhfdHIgaXMgc3dhcHBlZAorICogd2l0aCB0aGUgbGluayBsaXN0IG9mIHRoZSBnbG9iYWxfdHJhY2UgYW5kIHRoZSBidWZmZXJzIGFyZSByZXNldCBmb3IKKyAqIHRoZSBnbG9iYWxfdHJhY2Ugc28gdGhlIHRyYWNpbmcgY2FuIGNvbnRpbnVlLgorICovCitzdGF0aWMgc3RydWN0IHRyYWNlX2FycmF5CW1heF90cjsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUsIG1heF9kYXRhKTsKKworLyogdHJhY2VyX2VuYWJsZWQgaXMgdXNlZCB0byB0b2dnbGUgYWN0aXZhdGlvbiBvZiBhIHRyYWNlciAqLworc3RhdGljIGludAkJCXRyYWNlcl9lbmFibGVkID0gMTsKKworLyogZnVuY3Rpb24gdHJhY2luZyBlbmFibGVkICovCitpbnQJCQkJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQ7CisKKy8qCisgKiB0cmFjZV9ucl9lbnRyaWVzIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyB0aGF0IGlzIGFsbG9jYXRlZAorICogZm9yIGEgYnVmZmVyLiBOb3RlLCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaXMgYWx3YXlzIHJvdW5kZWQKKyAqIHRvIEVOVFJJRVNfUEVSX1BBR0UuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCQl0cmFjZV9ucl9lbnRyaWVzID0gNjU1MzZVTDsKKworLyogdHJhY2VfdHlwZXMgaG9sZHMgYSBsaW5rIGxpc3Qgb2YgYXZhaWxhYmxlIHRyYWNlcnMuICovCitzdGF0aWMgc3RydWN0IHRyYWNlcgkJKnRyYWNlX3R5cGVzIF9fcmVhZF9tb3N0bHk7CisKKy8qIGN1cnJlbnRfdHJhY2UgcG9pbnRzIHRvIHRoZSB0cmFjZXIgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlICovCitzdGF0aWMgc3RydWN0IHRyYWNlcgkJKmN1cnJlbnRfdHJhY2UgX19yZWFkX21vc3RseTsKKworLyoKKyAqIG1heF90cmFjZXJfdHlwZV9sZW4gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgYWxsb2NhdGluZyBvZgorICogYnVmZmVycyB0byByZWFkIHVzZXJzcGFjZSB0cmFjZXIgbmFtZXMuIFdlIGtlZXAgdHJhY2sgb2YKKyAqIHRoZSBsb25nZXN0IHRyYWNlciBuYW1lIHJlZ2lzdGVyZWQuCisgKi8KK3N0YXRpYyBpbnQJCQltYXhfdHJhY2VyX3R5cGVfbGVuOworCisvKgorICogdHJhY2VfdHlwZXNfbG9jayBpcyB1c2VkIHRvIHByb3RlY3QgdGhlIHRyYWNlX3R5cGVzIGxpc3QuCisgKiBUaGlzIGxvY2sgaXMgYWxzbyB1c2VkIHRvIGtlZXAgdXNlciBhY2Nlc3Mgc2VyaWFsaXplZC4KKyAqIEFjY2Vzc2VzIGZyb20gdXNlcnNwYWNlIHdpbGwgZ3JhYiB0aGlzIGxvY2sgd2hpbGUgdXNlcnNwYWNlCisgKiBhY3Rpdml0aWVzIGhhcHBlbiBpbnNpZGUgdGhlIGtlcm5lbC4KKyAqLworc3RhdGljIERFRklORV9NVVRFWCh0cmFjZV90eXBlc19sb2NrKTsKKworLyogdHJhY2Vfd2FpdCBpcyBhIHdhaXRxdWV1ZSBmb3IgdGFza3MgYmxvY2tlZCBvbiB0cmFjZV9wb2xsICovCitzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQodHJhY2Vfd2FpdCk7CisKKy8qIHRyYWNlX2ZsYWdzIGhvbGRzIGl0ZXJfY3RybCBvcHRpb25zICovCit1bnNpZ25lZCBsb25nIHRyYWNlX2ZsYWdzID0gVFJBQ0VfSVRFUl9QUklOVF9QQVJFTlQ7CisKK3N0YXRpYyBub3RyYWNlIHZvaWQgbm9fdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCA9IDA7CisJaWYodHItPmN0cmwpCisJCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKKwl0cmFjZXJfZW5hYmxlZCA9IDA7Cit9CisKKy8qIGR1bW15IHRyYWNlIHRvIGRpc2FibGUgdHJhY2luZyAqLworc3RhdGljIHN0cnVjdCB0cmFjZXIgbm9fdHJhY2VyIF9fcmVhZF9tb3N0bHkgPSB7CisJLm5hbWUJCT0gIm5vbmUiLAorCS5pbml0CQk9IG5vX3RyYWNlX2luaXQKK307CisKKworLyoqCisgKiB0cmFjZV93YWtlX3VwIC0gd2FrZSB1cCB0YXNrcyB3YWl0aW5nIGZvciB0cmFjZSBpbnB1dAorICoKKyAqIFNpbXBseSB3YWtlcyB1cCBhbnkgdGFzayB0aGF0IGlzIGJsb2NrZWQgb24gdGhlIHRyYWNlX3dhaXQKKyAqIHF1ZXVlLiBUaGVzZSBpcyB1c2VkIHdpdGggdHJhY2VfcG9sbCBmb3IgdGFza3MgcG9sbGluZyB0aGUgdHJhY2UuCisgKi8KK3ZvaWQgdHJhY2Vfd2FrZV91cCh2b2lkKQoreworCS8qCisJICogVGhlIHJ1bnF1ZXVlX2lzX2xvY2tlZCgpIGNhbiBmYWlsLCBidXQgdGhpcyBpcyB0aGUgYmVzdCB3ZQorCSAqIGhhdmUgZm9yIG5vdzoKKwkgKi8KKwlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfQkxPQ0spICYmICFydW5xdWV1ZV9pc19sb2NrZWQoKSkKKwkJd2FrZV91cCgmdHJhY2Vfd2FpdCk7Cit9CisKKyNkZWZpbmUgRU5UUklFU19QRVJfUEFHRSAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCB0cmFjZV9lbnRyeSkpCisKK3N0YXRpYyBpbnQgX19pbml0IHNldF9ucl9lbnRyaWVzKGNoYXIgKnN0cikKK3sKKwl1bnNpZ25lZCBsb25nIG5yX2VudHJpZXM7CisJaW50IHJldDsKKworCWlmICghc3RyKQorCQlyZXR1cm4gMDsKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChzdHIsIDAsICZucl9lbnRyaWVzKTsKKwkvKiBucl9lbnRyaWVzIGNhbiBub3QgYmUgemVybyAqLworCWlmIChyZXQgPCAwIHx8IG5yX2VudHJpZXMgPT0gMCkKKwkJcmV0dXJuIDA7CisJdHJhY2VfbnJfZW50cmllcyA9IG5yX2VudHJpZXM7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJ0cmFjZV9lbnRyaWVzPSIsIHNldF9ucl9lbnRyaWVzKTsKKwordW5zaWduZWQgbG9uZyBuc2Vjc190b191c2Vjcyh1bnNpZ25lZCBsb25nIG5zZWNzKQoreworCXJldHVybiBuc2VjcyAvIDEwMDA7Cit9CisKKy8qCisgKiB0cmFjZV9mbGFnX3R5cGUgaXMgYW4gZW51bWVyYXRpb24gdGhhdCBob2xkcyBkaWZmZXJlbnQKKyAqIHN0YXRlcyB3aGVuIGEgdHJhY2Ugb2NjdXJzLiBUaGVzZSBhcmU6CisgKiAgSVJRU19PRkYJLSBpbnRlcnJ1cHRzIHdlcmUgZGlzYWJsZWQKKyAqICBORUVEX1JFU0NFRCAtIHJlc2NoZWR1bGUgaXMgcmVxdWVzdGVkCisgKiAgSEFSRElSUQktIGluc2lkZSBhbiBpbnRlcnJ1cHQgaGFuZGxlcgorICogIFNPRlRJUlEJLSBpbnNpZGUgYSBzb2Z0aXJxIGhhbmRsZXIKKyAqLworZW51bSB0cmFjZV9mbGFnX3R5cGUgeworCVRSQUNFX0ZMQUdfSVJRU19PRkYJCT0gMHgwMSwKKwlUUkFDRV9GTEFHX05FRURfUkVTQ0hFRAkJPSAweDAyLAorCVRSQUNFX0ZMQUdfSEFSRElSUQkJPSAweDA0LAorCVRSQUNFX0ZMQUdfU09GVElSUQkJPSAweDA4LAorfTsKKworLyoKKyAqIFRSQUNFX0lURVJfU1lNX01BU0sgbWFza3MgdGhlIG9wdGlvbnMgaW4gdHJhY2VfZmxhZ3MgdGhhdAorICogY29udHJvbCB0aGUgb3V0cHV0IG9mIGtlcm5lbCBzeW1ib2xzLgorICovCisjZGVmaW5lIFRSQUNFX0lURVJfU1lNX01BU0sgXAorCShUUkFDRV9JVEVSX1BSSU5UX1BBUkVOVHxUUkFDRV9JVEVSX1NZTV9PRkZTRVR8VFJBQ0VfSVRFUl9TWU1fQUREUikKKworLyogVGhlc2UgbXVzdCBtYXRjaCB0aGUgYml0IHBvc3Rpb25zIGluIHRyYWNlX2l0ZXJhdG9yX2ZsYWdzICovCitzdGF0aWMgY29uc3QgY2hhciAqdHJhY2Vfb3B0aW9uc1tdID0geworCSJwcmludC1wYXJlbnQiLAorCSJzeW0tb2Zmc2V0IiwKKwkic3ltLWFkZHIiLAorCSJ2ZXJib3NlIiwKKwkicmF3IiwKKwkiaGV4IiwKKwkiYmluIiwKKwkiYmxvY2siLAorCSJzdGFja3RyYWNlIiwKKwkic2NoZWQtdHJlZSIsCisJTlVMTAorfTsKKworLyoKKyAqIGZ0cmFjZV9tYXhfbG9jayBpcyB1c2VkIHRvIHByb3RlY3QgdGhlIHN3YXBwaW5nIG9mIGJ1ZmZlcnMKKyAqIHdoZW4gdGFraW5nIGEgbWF4IHNuYXBzaG90LiBUaGUgYnVmZmVycyB0aGVtc2VsdmVzIGFyZQorICogcHJvdGVjdGVkIGJ5IHBlcl9jcHUgc3BpbmxvY2tzLiBCdXQgdGhlIGFjdGlvbiBvZiB0aGUgc3dhcAorICogbmVlZHMgaXRzIG93biBsb2NrLgorICoKKyAqIFRoaXMgaXMgZGVmaW5lZCBhcyBhIHJhd19zcGlubG9ja190IGluIG9yZGVyIHRvIGhlbHAKKyAqIHdpdGggcGVyZm9ybWFuY2Ugd2hlbiBsb2NrZGVwIGRlYnVnZ2luZyBpcyBlbmFibGVkLgorICovCitzdGF0aWMgcmF3X3NwaW5sb2NrX3QgZnRyYWNlX21heF9sb2NrID0KKwkocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOworCisvKgorICogQ29weSB0aGUgbmV3IG1heGltdW0gdHJhY2UgaW50byB0aGUgc2VwYXJhdGUgbWF4aW11bS10cmFjZQorICogc3RydWN0dXJlLiAodGhpcyB3YXkgdGhlIG1heGltdW0gdHJhY2UgaXMgcGVybWFuZW50bHkgc2F2ZWQsCisgKiBmb3IgbGF0ZXIgcmV0cmlldmFsIHZpYSAvZGVidWdmcy90cmFjaW5nL2xhdGVuY3lfdHJhY2UpCisgKi8KK3N0YXRpYyB2b2lkCitfX3VwZGF0ZV9tYXhfdHIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjcHUpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IHRyLT5kYXRhW2NwdV07CisKKwltYXhfdHIuY3B1ID0gY3B1OworCW1heF90ci50aW1lX3N0YXJ0ID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisKKwlkYXRhID0gbWF4X3RyLmRhdGFbY3B1XTsKKwlkYXRhLT5zYXZlZF9sYXRlbmN5ID0gdHJhY2luZ19tYXhfbGF0ZW5jeTsKKworCW1lbWNweShkYXRhLT5jb21tLCB0c2stPmNvbW0sIFRBU0tfQ09NTV9MRU4pOworCWRhdGEtPnBpZCA9IHRzay0+cGlkOworCWRhdGEtPnVpZCA9IHRzay0+dWlkOworCWRhdGEtPm5pY2UgPSB0c2stPnN0YXRpY19wcmlvIC0gMjAgLSBNQVhfUlRfUFJJTzsKKwlkYXRhLT5wb2xpY3kgPSB0c2stPnBvbGljeTsKKwlkYXRhLT5ydF9wcmlvcml0eSA9IHRzay0+cnRfcHJpb3JpdHk7CisKKwkvKiByZWNvcmQgdGhpcyB0YXNrcyBjb21tICovCisJdHJhY2luZ19yZWNvcmRfY21kbGluZShjdXJyZW50KTsKK30KKworI2RlZmluZSBDSEVDS19DT05EKGNvbmQpCQkJXAorCWlmICh1bmxpa2VseShjb25kKSkgewkJCVwKKwkJdHJhY2luZ19kaXNhYmxlZCA9IDE7CQlcCisJCVdBUk5fT04oMSk7CQkJXAorCQlyZXR1cm4gLTE7CQkJXAorCX0KKworLyoqCisgKiBjaGVja19wYWdlcyAtIGludGVncml0eSBjaGVjayBvZiB0cmFjZSBidWZmZXJzCisgKgorICogQXMgYSBzYWZ0eSBtZWFzdXJlIHdlIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgZGF0YSBwYWdlcyBoYXZlIG5vdAorICogYmVlbiBjb3JydXB0ZWQuCisgKi8KK2ludCBjaGVja19wYWdlcyhzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOworCisJQ0hFQ0tfQ09ORChkYXRhLT50cmFjZV9wYWdlcy5uZXh0LT5wcmV2ICE9ICZkYXRhLT50cmFjZV9wYWdlcyk7CisJQ0hFQ0tfQ09ORChkYXRhLT50cmFjZV9wYWdlcy5wcmV2LT5uZXh0ICE9ICZkYXRhLT50cmFjZV9wYWdlcyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLCAmZGF0YS0+dHJhY2VfcGFnZXMsIGxydSkgeworCQlDSEVDS19DT05EKHBhZ2UtPmxydS5uZXh0LT5wcmV2ICE9ICZwYWdlLT5scnUpOworCQlDSEVDS19DT05EKHBhZ2UtPmxydS5wcmV2LT5uZXh0ICE9ICZwYWdlLT5scnUpOworCX0KKworCXJldHVybiAwOworfQorCisvKioKKyAqIGhlYWRfcGFnZSAtIHBhZ2UgYWRkcmVzcyBvZiB0aGUgZmlyc3QgcGFnZSBpbiBwZXJfY3B1IGJ1ZmZlci4KKyAqCisgKiBoZWFkX3BhZ2UgcmV0dXJucyB0aGUgcGFnZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBwYWdlIGluCisgKiBhIHBlcl9jcHUgYnVmZmVyLiBUaGlzIGFsc28gcHJlZm9ybXMgdmFyaW91cyBjb25zaXN0ZW5jeQorICogY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyIGhhcyBub3QgYmVlbiBjb3JydXB0ZWQuCisgKi8KK3ZvaWQgKmhlYWRfcGFnZShzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCBwYWdlICpwYWdlOworCisJaWYgKGxpc3RfZW1wdHkoJmRhdGEtPnRyYWNlX3BhZ2VzKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwYWdlID0gbGlzdF9lbnRyeShkYXRhLT50cmFjZV9wYWdlcy5uZXh0LCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwlCVUdfT04oJnBhZ2UtPmxydSA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpOworCisJcmV0dXJuIHBhZ2VfYWRkcmVzcyhwYWdlKTsKK30KKworLyoqCisgKiB0cmFjZV9zZXFfcHJpbnRmIC0gc2VxdWVuY2UgcHJpbnRpbmcgb2YgdHJhY2UgaW5mb3JtYXRpb24KKyAqIEBzOiB0cmFjZSBzZXF1ZW5jZSBkZXNjcmlwdG9yCisgKiBAZm10OiBwcmludGYgZm9ybWF0IHN0cmluZworICoKKyAqIFRoZSB0cmFjZXIgbWF5IHVzZSBlaXRoZXIgc2VxdWVuY2Ugb3BlcmF0aW9ucyBvciBpdHMgb3duCisgKiBjb3B5IHRvIHVzZXIgcm91dGluZXMuIFRvIHNpbXBsaWZ5IGZvcm1hdGluZyBvZiBhIHRyYWNlCisgKiB0cmFjZV9zZXFfcHJpbnRmIGlzIHVzZWQgdG8gc3RvcmUgc3RyaW5ncyBpbnRvIGEgc3BlY2lhbAorICogYnVmZmVyIChAcykuIFRoZW4gdGhlIG91dHB1dCBtYXkgYmUgZWl0aGVyIHVzZWQgYnkKKyAqIHRoZSBzZXF1ZW5jZXIgb3IgcHVsbGVkIGludG8gYW5vdGhlciBidWZmZXIuCisgKi8KK2ludAordHJhY2Vfc2VxX3ByaW50ZihzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKwlpbnQgbGVuID0gKFBBR0VfU0laRSAtIDEpIC0gcy0+bGVuOworCXZhX2xpc3QgYXA7CisJaW50IHJldDsKKworCWlmICghbGVuKQorCQlyZXR1cm4gMDsKKworCXZhX3N0YXJ0KGFwLCBmbXQpOworCXJldCA9IHZzbnByaW50ZihzLT5idWZmZXIgKyBzLT5sZW4sIGxlbiwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCS8qIElmIHdlIGNhbid0IHdyaXRlIGl0IGFsbCwgZG9uJ3QgYm90aGVyIHdyaXRpbmcgYW55dGhpbmcgKi8KKwlpZiAocmV0ID49IGxlbikKKwkJcmV0dXJuIDA7CisKKwlzLT5sZW4gKz0gcmV0OworCisJcmV0dXJuIGxlbjsKK30KKworLyoqCisgKiB0cmFjZV9zZXFfcHV0cyAtIHRyYWNlIHNlcXVlbmNlIHByaW50aW5nIG9mIHNpbXBsZSBzdHJpbmcKKyAqIEBzOiB0cmFjZSBzZXF1ZW5jZSBkZXNjcmlwdG9yCisgKiBAc3RyOiBzaW1wbGUgc3RyaW5nIHRvIHJlY29yZAorICoKKyAqIFRoZSB0cmFjZXIgbWF5IHVzZSBlaXRoZXIgdGhlIHNlcXVlbmNlIG9wZXJhdGlvbnMgb3IgaXRzIG93bgorICogY29weSB0byB1c2VyIHJvdXRpbmVzLiBUaGlzIGZ1bmN0aW9uIHJlY29yZHMgYSBzaW1wbGUgc3RyaW5nCisgKiBpbnRvIGEgc3BlY2lhbCBidWZmZXIgKEBzKSBmb3IgbGF0ZXIgcmV0cmlldmFsIGJ5IGEgc2VxdWVuY2VyCisgKiBvciBvdGhlciBtZWNoYW5pc20uCisgKi8KK3N0YXRpYyBpbnQKK3RyYWNlX3NlcV9wdXRzKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKnN0cikKK3sKKwlpbnQgbGVuID0gc3RybGVuKHN0cik7CisKKwlpZiAobGVuID4gKChQQUdFX1NJWkUgLSAxKSAtIHMtPmxlbikpCisJCXJldHVybiAwOworCisJbWVtY3B5KHMtPmJ1ZmZlciArIHMtPmxlbiwgc3RyLCBsZW4pOworCXMtPmxlbiArPSBsZW47CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgaW50Cit0cmFjZV9zZXFfcHV0YyhzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBjaGFyIGMpCit7CisJaWYgKHMtPmxlbiA+PSAoUEFHRV9TSVpFIC0gMSkpCisJCXJldHVybiAwOworCisJcy0+YnVmZmVyW3MtPmxlbisrXSA9IGM7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludAordHJhY2Vfc2VxX3B1dG1lbShzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB2b2lkICptZW0sIHNpemVfdCBsZW4pCit7CisJaWYgKGxlbiA+ICgoUEFHRV9TSVpFIC0gMSkgLSBzLT5sZW4pKQorCQlyZXR1cm4gMDsKKworCW1lbWNweShzLT5idWZmZXIgKyBzLT5sZW4sIG1lbSwgbGVuKTsKKwlzLT5sZW4gKz0gbGVuOworCisJcmV0dXJuIGxlbjsKK30KKworI2RlZmluZSBIRVhfQ0hBUlMgMTcKK3N0YXRpYyBjb25zdCBjaGFyIGhleDJhc2NbXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKworc3RhdGljIGludAordHJhY2Vfc2VxX3B1dG1lbV9oZXgoc3RydWN0IHRyYWNlX3NlcSAqcywgdm9pZCAqbWVtLCBzaXplX3QgbGVuKQoreworCXVuc2lnbmVkIGNoYXIgaGV4W0hFWF9DSEFSU107CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IG1lbTsKKwl1bnNpZ25lZCBjaGFyIGJ5dGU7CisJaW50IGksIGo7CisKKwlCVUdfT04obGVuID49IEhFWF9DSEFSUyk7CisKKyNpZmRlZiBfX0JJR19FTkRJQU4KKwlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGxlbjsgaSsrKSB7CisjZWxzZQorCWZvciAoaSA9IGxlbi0xLCBqID0gMDsgaSA+PSAwOyBpLS0pIHsKKyNlbmRpZgorCQlieXRlID0gZGF0YVtpXTsKKworCQloZXhbaisrXSA9IGhleDJhc2NbYnl0ZSAmIDB4MGZdOworCQloZXhbaisrXSA9IGhleDJhc2NbYnl0ZSA+PiA0XTsKKwl9CisJaGV4W2orK10gPSAnICc7CisKKwlyZXR1cm4gdHJhY2Vfc2VxX3B1dG1lbShzLCBoZXgsIGopOworfQorCitzdGF0aWMgdm9pZAordHJhY2Vfc2VxX3Jlc2V0KHN0cnVjdCB0cmFjZV9zZXEgKnMpCit7CisJcy0+bGVuID0gMDsKKwlzLT5yZWFkcG9zID0gMDsKK30KKworc3NpemVfdCB0cmFjZV9zZXFfdG9fdXNlcihzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IGNudCkKK3sKKwlpbnQgbGVuOworCWludCByZXQ7CisKKwlpZiAocy0+bGVuIDw9IHMtPnJlYWRwb3MpCisJCXJldHVybiAtRUJVU1k7CisKKwlsZW4gPSBzLT5sZW4gLSBzLT5yZWFkcG9zOworCWlmIChjbnQgPiBsZW4pCisJCWNudCA9IGxlbjsKKwlyZXQgPSBjb3B5X3RvX3VzZXIodWJ1Ziwgcy0+YnVmZmVyICsgcy0+cmVhZHBvcywgY250KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXMtPnJlYWRwb3MgKz0gbGVuOworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyB2b2lkCit0cmFjZV9wcmludF9zZXEoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgdHJhY2Vfc2VxICpzKQoreworCWludCBsZW4gPSBzLT5sZW4gPj0gUEFHRV9TSVpFID8gUEFHRV9TSVpFIC0gMSA6IHMtPmxlbjsKKworCXMtPmJ1ZmZlcltsZW5dID0gMDsKKwlzZXFfcHV0cyhtLCBzLT5idWZmZXIpOworCisJdHJhY2Vfc2VxX3Jlc2V0KHMpOworfQorCisvKgorICogZmxpcCB0aGUgdHJhY2UgYnVmZmVycyBiZXR3ZWVuIHR3byB0cmFjZSBkZXNjcmlwdG9ycy4KKyAqIFRoaXMgdXN1YWxseSBpcyB0aGUgYnVmZmVycyBiZXR3ZWVuIHRoZSBnbG9iYWxfdHJhY2UgYW5kCisgKiB0aGUgbWF4X3RyIHRvIHJlY29yZCBhIHNuYXBzaG90IG9mIGEgY3VycmVudCB0cmFjZS4KKyAqCisgKiBUaGUgZnRyYWNlX21heF9sb2NrIG11c3QgYmUgaGVsZC4KKyAqLworc3RhdGljIHZvaWQKK2ZsaXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqdHIxLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICp0cjIpCit7CisJc3RydWN0IGxpc3RfaGVhZCBmbGlwX3BhZ2VzOworCisJSU5JVF9MSVNUX0hFQUQoJmZsaXBfcGFnZXMpOworCisJbWVtY3B5KCZ0cjEtPnRyYWNlX2hlYWRfaWR4LCAmdHIyLT50cmFjZV9oZWFkX2lkeCwKKwkJc2l6ZW9mKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUpIC0KKwkJb2Zmc2V0b2Yoc3RydWN0IHRyYWNlX2FycmF5X2NwdSwgdHJhY2VfaGVhZF9pZHgpKTsKKworCWNoZWNrX3BhZ2VzKHRyMSk7CisJY2hlY2tfcGFnZXModHIyKTsKKwlsaXN0X3NwbGljZV9pbml0KCZ0cjEtPnRyYWNlX3BhZ2VzLCAmZmxpcF9wYWdlcyk7CisJbGlzdF9zcGxpY2VfaW5pdCgmdHIyLT50cmFjZV9wYWdlcywgJnRyMS0+dHJhY2VfcGFnZXMpOworCWxpc3Rfc3BsaWNlX2luaXQoJmZsaXBfcGFnZXMsICZ0cjItPnRyYWNlX3BhZ2VzKTsKKwlCVUdfT04oIWxpc3RfZW1wdHkoJmZsaXBfcGFnZXMpKTsKKwljaGVja19wYWdlcyh0cjEpOworCWNoZWNrX3BhZ2VzKHRyMik7Cit9CisKKy8qKgorICogdXBkYXRlX21heF90ciAtIHNuYXBzaG90IGFsbCB0cmFjZSBidWZmZXJzIGZyb20gZ2xvYmFsX3RyYWNlIHRvIG1heF90cgorICogQHRyOiB0cmFjZXIKKyAqIEB0c2s6IHRoZSB0YXNrIHdpdGggdGhlIGxhdGVuY3kKKyAqIEBjcHU6IFRoZSBjcHUgdGhhdCBpbml0aWF0ZWQgdGhlIHRyYWNlLgorICoKKyAqIEZsaXAgdGhlIGJ1ZmZlcnMgYmV0d2VlbiB0aGUgQHRyIGFuZCB0aGUgbWF4X3RyIGFuZCByZWNvcmQgaW5mb3JtYXRpb24KKyAqIGFib3V0IHdoaWNoIHRhc2sgd2FzIHRoZSBjYXVzZSBvZiB0aGlzIGxhdGVuY3kuCisgKi8KK3ZvaWQKK3VwZGF0ZV9tYXhfdHIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjcHUpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlpbnQgaTsKKworCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJLyogY2xlYXIgb3V0IGFsbCB0aGUgcHJldmlvdXMgdHJhY2VzICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gdHItPmRhdGFbaV07CisJCWZsaXBfdHJhY2UobWF4X3RyLmRhdGFbaV0sIGRhdGEpOworCQl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCX0KKworCV9fdXBkYXRlX21heF90cih0ciwgdHNrLCBjcHUpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworfQorCisvKioKKyAqIHVwZGF0ZV9tYXhfdHJfc2luZ2xlIC0gb25seSBjb3B5IG9uZSB0cmFjZSBvdmVyLCBhbmQgcmVzZXQgdGhlIHJlc3QKKyAqIEB0ciAtIHRyYWNlcgorICogQHRzayAtIHRhc2sgd2l0aCB0aGUgbGF0ZW5jeQorICogQGNwdSAtIHRoZSBjcHUgb2YgdGhlIGJ1ZmZlciB0byBjb3B5LgorICoKKyAqIEZsaXAgdGhlIHRyYWNlIG9mIGEgc2luZ2xlIENQVSBidWZmZXIgYmV0d2VlbiB0aGUgQHRyIGFuZCB0aGUgbWF4X3RyLgorICovCit2b2lkCit1cGRhdGVfbWF4X3RyX3NpbmdsZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gdHItPmRhdGFbY3B1XTsKKwlpbnQgaTsKKworCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkKKwkJdHJhY2luZ19yZXNldChtYXhfdHIuZGF0YVtpXSk7CisKKwlmbGlwX3RyYWNlKG1heF90ci5kYXRhW2NwdV0sIGRhdGEpOworCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisKKwlfX3VwZGF0ZV9tYXhfdHIodHIsIHRzaywgY3B1KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZnRyYWNlX21heF9sb2NrKTsKK30KKworLyoqCisgKiByZWdpc3Rlcl90cmFjZXIgLSByZWdpc3RlciBhIHRyYWNlciB3aXRoIHRoZSBmdHJhY2Ugc3lzdGVtLgorICogQHR5cGUgLSB0aGUgcGx1Z2luIGZvciB0aGUgdHJhY2VyCisgKgorICogUmVnaXN0ZXIgYSBuZXcgcGx1Z2luIHRyYWNlci4KKyAqLworaW50IHJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKQoreworCXN0cnVjdCB0cmFjZXIgKnQ7CisJaW50IGxlbjsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghdHlwZS0+bmFtZSkgeworCQlwcl9pbmZvKCJUcmFjZXIgbXVzdCBoYXZlIGEgbmFtZVxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlmb3IgKHQgPSB0cmFjZV90eXBlczsgdDsgdCA9IHQtPm5leHQpIHsKKwkJaWYgKHN0cmNtcCh0eXBlLT5uYW1lLCB0LT5uYW1lKSA9PSAwKSB7CisJCQkvKiBhbHJlYWR5IGZvdW5kICovCisJCQlwcl9pbmZvKCJUcmFjZSAlcyBhbHJlYWR5IHJlZ2lzdGVyZWRcbiIsCisJCQkJdHlwZS0+bmFtZSk7CisJCQlyZXQgPSAtMTsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QKKwlpZiAodHlwZS0+c2VsZnRlc3QpIHsKKwkJc3RydWN0IHRyYWNlciAqc2F2ZWRfdHJhY2VyID0gY3VycmVudF90cmFjZTsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwkJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJCWludCBzYXZlZF9jdHJsID0gdHItPmN0cmw7CisJCWludCBpOworCQkvKgorCQkgKiBSdW4gYSBzZWxmdGVzdCBvbiB0aGlzIHRyYWNlci4KKwkJICogSGVyZSB3ZSByZXNldCB0aGUgdHJhY2UgYnVmZmVyLCBhbmQgc2V0IHRoZSBjdXJyZW50CisJCSAqIHRyYWNlciB0byBiZSB0aGlzIHRyYWNlci4gVGhlIHRyYWNlciBjYW4gdGhlbiBydW4gc29tZQorCQkgKiBpbnRlcm5hbCB0cmFjaW5nIHRvIHZlcmlmeSB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gb3JkZXIuCisJCSAqIElmIHdlIGZhaWwsIHdlIGRvIG5vdCByZWdpc3RlciB0aGlzIHRyYWNlci4KKwkJICovCisJCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpIHsKKwkJCWRhdGEgPSB0ci0+ZGF0YVtpXTsKKwkJCWlmICghaGVhZF9wYWdlKGRhdGEpKQorCQkJCWNvbnRpbnVlOworCQkJdHJhY2luZ19yZXNldChkYXRhKTsKKwkJfQorCQljdXJyZW50X3RyYWNlID0gdHlwZTsKKwkJdHItPmN0cmwgPSAwOworCQkvKiB0aGUgdGVzdCBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIGFuZCBlbmFibGluZyAqLworCQlwcl9pbmZvKCJUZXN0aW5nIHRyYWNlciAlczogIiwgdHlwZS0+bmFtZSk7CisJCXJldCA9IHR5cGUtPnNlbGZ0ZXN0KHR5cGUsIHRyKTsKKwkJLyogdGhlIHRlc3QgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyB0b28gKi8KKwkJY3VycmVudF90cmFjZSA9IHNhdmVkX3RyYWNlcjsKKwkJdHItPmN0cmwgPSBzYXZlZF9jdHJsOworCQlpZiAocmV0KSB7CisJCQlwcmludGsoS0VSTl9DT05UICJGQUlMRUQhXG4iKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCS8qIE9ubHkgcmVzZXQgb24gcGFzc2luZywgdG8gYXZvaWQgdG91Y2hpbmcgY29ycnVwdGVkIGJ1ZmZlcnMgKi8KKwkJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQkJZGF0YSA9IHRyLT5kYXRhW2ldOworCQkJaWYgKCFoZWFkX3BhZ2UoZGF0YSkpCisJCQkJY29udGludWU7CisJCQl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCQl9CisJCXByaW50ayhLRVJOX0NPTlQgIlBBU1NFRFxuIik7CisJfQorI2VuZGlmCisKKwl0eXBlLT5uZXh0ID0gdHJhY2VfdHlwZXM7CisJdHJhY2VfdHlwZXMgPSB0eXBlOworCWxlbiA9IHN0cmxlbih0eXBlLT5uYW1lKTsKKwlpZiAobGVuID4gbWF4X3RyYWNlcl90eXBlX2xlbikKKwkJbWF4X3RyYWNlcl90eXBlX2xlbiA9IGxlbjsKKworIG91dDoKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCB1bnJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKQoreworCXN0cnVjdCB0cmFjZXIgKip0OworCWludCBsZW47CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlmb3IgKHQgPSAmdHJhY2VfdHlwZXM7ICp0OyB0ID0gJigqdCktPm5leHQpIHsKKwkJaWYgKCp0ID09IHR5cGUpCisJCQlnb3RvIGZvdW5kOworCX0KKwlwcl9pbmZvKCJUcmFjZSAlcyBub3QgcmVnaXN0ZXJlZFxuIiwgdHlwZS0+bmFtZSk7CisJZ290byBvdXQ7CisKKyBmb3VuZDoKKwkqdCA9ICgqdCktPm5leHQ7CisJaWYgKHN0cmxlbih0eXBlLT5uYW1lKSAhPSBtYXhfdHJhY2VyX3R5cGVfbGVuKQorCQlnb3RvIG91dDsKKworCW1heF90cmFjZXJfdHlwZV9sZW4gPSAwOworCWZvciAodCA9ICZ0cmFjZV90eXBlczsgKnQ7IHQgPSAmKCp0KS0+bmV4dCkgeworCQlsZW4gPSBzdHJsZW4oKCp0KS0+bmFtZSk7CisJCWlmIChsZW4gPiBtYXhfdHJhY2VyX3R5cGVfbGVuKQorCQkJbWF4X3RyYWNlcl90eXBlX2xlbiA9IGxlbjsKKwl9Cisgb3V0OgorCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7Cit9CisKK3ZvaWQgdHJhY2luZ19yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCWRhdGEtPnRyYWNlX2lkeCA9IDA7CisJZGF0YS0+b3ZlcnJ1biA9IDA7CisJZGF0YS0+dHJhY2VfaGVhZCA9IGRhdGEtPnRyYWNlX3RhaWwgPSBoZWFkX3BhZ2UoZGF0YSk7CisJZGF0YS0+dHJhY2VfaGVhZF9pZHggPSAwOworCWRhdGEtPnRyYWNlX3RhaWxfaWR4ID0gMDsKK30KKworI2RlZmluZSBTQVZFRF9DTURMSU5FUyAxMjgKK3N0YXRpYyB1bnNpZ25lZCBtYXBfcGlkX3RvX2NtZGxpbmVbUElEX01BWF9ERUZBVUxUKzFdOworc3RhdGljIHVuc2lnbmVkIG1hcF9jbWRsaW5lX3RvX3BpZFtTQVZFRF9DTURMSU5FU107CitzdGF0aWMgY2hhciBzYXZlZF9jbWRsaW5lc1tTQVZFRF9DTURMSU5FU11bVEFTS19DT01NX0xFTl07CitzdGF0aWMgaW50IGNtZGxpbmVfaWR4Oworc3RhdGljIERFRklORV9TUElOTE9DSyh0cmFjZV9jbWRsaW5lX2xvY2spOworCisvKiB0ZW1wb3JhcnkgZGlzYWJsZSByZWNvcmRpbmcgKi8KK2F0b21pY190IHRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyB2b2lkIHRyYWNlX2luaXRfY21kbGluZXModm9pZCkKK3sKKwltZW1zZXQoJm1hcF9waWRfdG9fY21kbGluZSwgLTEsIHNpemVvZihtYXBfcGlkX3RvX2NtZGxpbmUpKTsKKwltZW1zZXQoJm1hcF9jbWRsaW5lX3RvX3BpZCwgLTEsIHNpemVvZihtYXBfY21kbGluZV90b19waWQpKTsKKwljbWRsaW5lX2lkeCA9IDA7Cit9CisKK3ZvaWQgdHJhY2Vfc3RvcF9jbWRsaW5lX3JlY29yZGluZyh2b2lkKTsKKworc3RhdGljIHZvaWQgdHJhY2Vfc2F2ZV9jbWRsaW5lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoreworCXVuc2lnbmVkIG1hcDsKKwl1bnNpZ25lZCBpZHg7CisKKwlpZiAoIXRzay0+cGlkIHx8IHVubGlrZWx5KHRzay0+cGlkID4gUElEX01BWF9ERUZBVUxUKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJdCdzIG5vdCB0aGUgZW5kIG9mIHRoZSB3b3JsZCBpZiB3ZSBkb24ndCBnZXQKKwkgKiB0aGUgbG9jaywgYnV0IHdlIGFsc28gZG9uJ3Qgd2FudCB0byBzcGluCisJICogbm9yIGRvIHdlIHdhbnQgdG8gZGlzYWJsZSBpbnRlcnJ1cHRzLAorCSAqIHNvIGlmIHdlIG1pc3MgaGVyZSwgdGhlbiBiZXR0ZXIgbHVjayBuZXh0IHRpbWUuCisJICovCisJaWYgKCFzcGluX3RyeWxvY2soJnRyYWNlX2NtZGxpbmVfbG9jaykpCisJCXJldHVybjsKKworCWlkeCA9IG1hcF9waWRfdG9fY21kbGluZVt0c2stPnBpZF07CisJaWYgKGlkeCA+PSBTQVZFRF9DTURMSU5FUykgeworCQlpZHggPSAoY21kbGluZV9pZHggKyAxKSAlIFNBVkVEX0NNRExJTkVTOworCisJCW1hcCA9IG1hcF9jbWRsaW5lX3RvX3BpZFtpZHhdOworCQlpZiAobWFwIDw9IFBJRF9NQVhfREVGQVVMVCkKKwkJCW1hcF9waWRfdG9fY21kbGluZVttYXBdID0gKHVuc2lnbmVkKS0xOworCisJCW1hcF9waWRfdG9fY21kbGluZVt0c2stPnBpZF0gPSBpZHg7CisKKwkJY21kbGluZV9pZHggPSBpZHg7CisJfQorCisJbWVtY3B5KCZzYXZlZF9jbWRsaW5lc1tpZHhdLCB0c2stPmNvbW0sIFRBU0tfQ09NTV9MRU4pOworCisJc3Bpbl91bmxvY2soJnRyYWNlX2NtZGxpbmVfbG9jayk7Cit9CisKK3N0YXRpYyBjaGFyICp0cmFjZV9maW5kX2NtZGxpbmUoaW50IHBpZCkKK3sKKwljaGFyICpjbWRsaW5lID0gIjwuLi4+IjsKKwl1bnNpZ25lZCBtYXA7CisKKwlpZiAoIXBpZCkKKwkJcmV0dXJuICI8aWRsZT4iOworCisJaWYgKHBpZCA+IFBJRF9NQVhfREVGQVVMVCkKKwkJZ290byBvdXQ7CisKKwltYXAgPSBtYXBfcGlkX3RvX2NtZGxpbmVbcGlkXTsKKwlpZiAobWFwID49IFNBVkVEX0NNRExJTkVTKQorCQlnb3RvIG91dDsKKworCWNtZGxpbmUgPSBzYXZlZF9jbWRsaW5lc1ttYXBdOworCisgb3V0OgorCXJldHVybiBjbWRsaW5lOworfQorCit2b2lkIHRyYWNpbmdfcmVjb3JkX2NtZGxpbmUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCit7CisJaWYgKGF0b21pY19yZWFkKCZ0cmFjZV9yZWNvcmRfY21kbGluZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCXRyYWNlX3NhdmVfY21kbGluZSh0c2spOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKgordHJhY2VfbmV4dF9saXN0KHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQpCit7CisJLyoKKwkgKiBSb3VuZHJvYmluIC0gYnV0IHNraXAgdGhlIGhlYWQgKHdoaWNoIGlzIG5vdCBhIHJlYWwgcGFnZSk6CisJICovCisJbmV4dCA9IG5leHQtPm5leHQ7CisJaWYgKHVubGlrZWx5KG5leHQgPT0gJmRhdGEtPnRyYWNlX3BhZ2VzKSkKKwkJbmV4dCA9IG5leHQtPm5leHQ7CisJQlVHX09OKG5leHQgPT0gJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKworCXJldHVybiBuZXh0OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKgordHJhY2VfbmV4dF9wYWdlKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsIHZvaWQgKmFkZHIpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqbmV4dDsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoYWRkcik7CisKKwluZXh0ID0gdHJhY2VfbmV4dF9saXN0KGRhdGEsICZwYWdlLT5scnUpOworCXBhZ2UgPSBsaXN0X2VudHJ5KG5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCisJcmV0dXJuIHBhZ2VfYWRkcmVzcyhwYWdlKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgdHJhY2VfZW50cnkgKgordHJhY2luZ19nZXRfdHJhY2VfZW50cnkoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGlkeCwgaWR4X25leHQ7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKworCWRhdGEtPnRyYWNlX2lkeCsrOworCWlkeCA9IGRhdGEtPnRyYWNlX2hlYWRfaWR4OworCWlkeF9uZXh0ID0gaWR4ICsgMTsKKworCUJVR19PTihpZHggKiBUUkFDRV9FTlRSWV9TSVpFID49IFBBR0VfU0laRSk7CisKKwllbnRyeSA9IGRhdGEtPnRyYWNlX2hlYWQgKyBpZHggKiBUUkFDRV9FTlRSWV9TSVpFOworCisJaWYgKHVubGlrZWx5KGlkeF9uZXh0ID49IEVOVFJJRVNfUEVSX1BBR0UpKSB7CisJCWRhdGEtPnRyYWNlX2hlYWQgPSB0cmFjZV9uZXh0X3BhZ2UoZGF0YSwgZGF0YS0+dHJhY2VfaGVhZCk7CisJCWlkeF9uZXh0ID0gMDsKKwl9CisKKwlpZiAoZGF0YS0+dHJhY2VfaGVhZCA9PSBkYXRhLT50cmFjZV90YWlsICYmCisJICAgIGlkeF9uZXh0ID09IGRhdGEtPnRyYWNlX3RhaWxfaWR4KSB7CisJCS8qIG92ZXJydW4gKi8KKwkJZGF0YS0+b3ZlcnJ1bisrOworCQlkYXRhLT50cmFjZV90YWlsX2lkeCsrOworCQlpZiAoZGF0YS0+dHJhY2VfdGFpbF9pZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQkJZGF0YS0+dHJhY2VfdGFpbCA9CisJCQkJdHJhY2VfbmV4dF9wYWdlKGRhdGEsIGRhdGEtPnRyYWNlX3RhaWwpOworCQkJZGF0YS0+dHJhY2VfdGFpbF9pZHggPSAwOworCQl9CisJfQorCisJZGF0YS0+dHJhY2VfaGVhZF9pZHggPSBpZHhfbmV4dDsKKworCXJldHVybiBlbnRyeTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCit0cmFjaW5nX2dlbmVyaWNfZW50cnlfdXBkYXRlKHN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnksIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXVuc2lnbmVkIGxvbmcgcGM7CisKKwlwYyA9IHByZWVtcHRfY291bnQoKTsKKworCWVudHJ5LT5wcmVlbXB0X2NvdW50CT0gcGMgJiAweGZmOworCWVudHJ5LT5waWQJCT0gKHRzaykgPyB0c2stPnBpZCA6IDA7CisJZW50cnktPnQJCT0gZnRyYWNlX25vdyhyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwllbnRyeS0+ZmxhZ3MgPSAoaXJxc19kaXNhYmxlZF9mbGFncyhmbGFncykgPyBUUkFDRV9GTEFHX0lSUVNfT0ZGIDogMCkgfAorCQkoKHBjICYgSEFSRElSUV9NQVNLKSA/IFRSQUNFX0ZMQUdfSEFSRElSUSA6IDApIHwKKwkJKChwYyAmIFNPRlRJUlFfTUFTSykgPyBUUkFDRV9GTEFHX1NPRlRJUlEgOiAwKSB8CisJCShuZWVkX3Jlc2NoZWQoKSA/IFRSQUNFX0ZMQUdfTkVFRF9SRVNDSEVEIDogMCk7Cit9CisKK3ZvaWQKK3RyYWNlX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJICAgICAgIHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgZmxhZ3MpOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX0ZOOworCWVudHJ5LT5mbi5pcAkJPSBpcDsKKwllbnRyeS0+Zm4ucGFyZW50X2lwCT0gcGFyZW50X2lwOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKK30KKwordm9pZAorZnRyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisgICAgICAgdW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJaWYgKGxpa2VseSghYXRvbWljX3JlYWQoJmRhdGEtPmRpc2FibGVkKSkpCisJCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7Cit9CisKKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFCit2b2lkIF9fdHJhY2VfbW1pb3RyYWNlX3J3KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJCQlzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpydykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgMCk7CisJZW50cnktPnR5cGUJCT0gVFJBQ0VfTU1JT19SVzsKKwllbnRyeS0+bW1pb3J3CQk9ICpydzsKKworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKKworCXRyYWNlX3dha2VfdXAoKTsKK30KKwordm9pZCBfX3RyYWNlX21taW90cmFjZV9tYXAoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQkJCXN0cnVjdCBtbWlvdHJhY2VfbWFwICptYXApCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKKworCXJhd19sb2NhbF9pcnFfc2F2ZShpcnFfZmxhZ3MpOworCV9fcmF3X3NwaW5fbG9jaygmZGF0YS0+bG9jayk7CisKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIDApOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX01NSU9fTUFQOworCWVudHJ5LT5tbWlvbWFwCQk9ICptYXA7CisKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisjZW5kaWYKKwordm9pZCBfX3RyYWNlX3N0YWNrKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCSAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCSAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCSAgIGludCBza2lwKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJc3RydWN0IHN0YWNrX3RyYWNlIHRyYWNlOworCisJaWYgKCEodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1NUQUNLVFJBQ0UpKQorCQlyZXR1cm47CisKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9TVEFDSzsKKworCW1lbXNldCgmZW50cnktPnN0YWNrLCAwLCBzaXplb2YoZW50cnktPnN0YWNrKSk7CisKKwl0cmFjZS5ucl9lbnRyaWVzCT0gMDsKKwl0cmFjZS5tYXhfZW50cmllcwk9IEZUUkFDRV9TVEFDS19FTlRSSUVTOworCXRyYWNlLnNraXAJCT0gc2tpcDsKKwl0cmFjZS5lbnRyaWVzCQk9IGVudHJ5LT5zdGFjay5jYWxsZXI7CisKKwlzYXZlX3N0YWNrX3RyYWNlKCZ0cmFjZSk7Cit9CisKK3ZvaWQKK19fdHJhY2Vfc3BlY2lhbCh2b2lkICpfX3RyLCB2b2lkICpfX2RhdGEsCisJCXVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IF9fZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gX190cjsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIDApOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX1NQRUNJQUw7CisJZW50cnktPnNwZWNpYWwuYXJnMQk9IGFyZzE7CisJZW50cnktPnNwZWNpYWwuYXJnMgk9IGFyZzI7CisJZW50cnktPnNwZWNpYWwuYXJnMwk9IGFyZzM7CisJX190cmFjZV9zdGFjayh0ciwgZGF0YSwgaXJxX2ZsYWdzLCA0KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisKK3ZvaWQKK3RyYWNpbmdfc2NoZWRfc3dpdGNoX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0LAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9DVFg7CisJZW50cnktPmN0eC5wcmV2X3BpZAk9IHByZXYtPnBpZDsKKwllbnRyeS0+Y3R4LnByZXZfcHJpbwk9IHByZXYtPnByaW87CisJZW50cnktPmN0eC5wcmV2X3N0YXRlCT0gcHJldi0+c3RhdGU7CisJZW50cnktPmN0eC5uZXh0X3BpZAk9IG5leHQtPnBpZDsKKwllbnRyeS0+Y3R4Lm5leHRfcHJpbwk9IG5leHQtPnByaW87CisJZW50cnktPmN0eC5uZXh0X3N0YXRlCT0gbmV4dC0+c3RhdGU7CisJX190cmFjZV9zdGFjayh0ciwgZGF0YSwgZmxhZ3MsIDUpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKK30KKwordm9pZAordHJhY2luZ19zY2hlZF93YWtldXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKndha2VlLAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyLAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9XQUtFOworCWVudHJ5LT5jdHgucHJldl9waWQJPSBjdXJyLT5waWQ7CisJZW50cnktPmN0eC5wcmV2X3ByaW8JPSBjdXJyLT5wcmlvOworCWVudHJ5LT5jdHgucHJldl9zdGF0ZQk9IGN1cnItPnN0YXRlOworCWVudHJ5LT5jdHgubmV4dF9waWQJPSB3YWtlZS0+cGlkOworCWVudHJ5LT5jdHgubmV4dF9wcmlvCT0gd2FrZWUtPnByaW87CisJZW50cnktPmN0eC5uZXh0X3N0YXRlCT0gd2FrZWUtPnN0YXRlOworCV9fdHJhY2Vfc3RhY2sodHIsIGRhdGEsIGZsYWdzLCA2KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisKK3ZvaWQKK2Z0cmFjZV9zcGVjaWFsKHVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCWlmICh0cmFjaW5nX2Rpc2FibGVkIHx8IGN1cnJlbnRfdHJhY2UgPT0gJm5vX3RyYWNlciB8fCAhdHItPmN0cmwpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgYXJnMSwgYXJnMiwgYXJnMyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorc3RhdGljIHZvaWQKK2Z1bmN0aW9uX3RyYWNlX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCWlmICh1bmxpa2VseSghZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQpKQorCQlyZXR1cm47CisKKwlpZiAoc2tpcF90cmFjZShpcCkpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgdHJhY2Vfb3BzIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gZnVuY3Rpb25fdHJhY2VfY2FsbCwKK307CisKK3ZvaWQgdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSh2b2lkKQoreworCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMDsKKwlyZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7CisJaWYgKHRyYWNlcl9lbmFibGVkKQorCQlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCA9IDE7Cit9CisKK3ZvaWQgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKHZvaWQpCit7CisJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQgPSAwOworCXVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworfQorI2VuZGlmCisKK2VudW0gdHJhY2VfZmlsZV90eXBlIHsKKwlUUkFDRV9GSUxFX0xBVF9GTVQJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCB0cmFjZV9lbnRyeSAqCit0cmFjZV9lbnRyeV9pZHgoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBpbnQgY3B1KQoreworCXN0cnVjdCBwYWdlICpwYWdlOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqYXJyYXk7CisKKwlpZiAoaXRlci0+bmV4dF9pZHhbY3B1XSA+PSB0ci0+ZW50cmllcyB8fAorCSAgICBpdGVyLT5uZXh0X2lkeFtjcHVdID49IGRhdGEtPnRyYWNlX2lkeCB8fAorCSAgICAoZGF0YS0+dHJhY2VfaGVhZCA9PSBkYXRhLT50cmFjZV90YWlsICYmCisJICAgICBkYXRhLT50cmFjZV9oZWFkX2lkeCA9PSBkYXRhLT50cmFjZV90YWlsX2lkeCkpCisJCXJldHVybiBOVUxMOworCisJaWYgKCFpdGVyLT5uZXh0X3BhZ2VbY3B1XSkgeworCQkvKiBJbml0aWFsaXplIHRoZSBpdGVyYXRvciBmb3IgdGhpcyBjcHUgdHJhY2UgYnVmZmVyICovCisJCVdBUk5fT04oIWRhdGEtPnRyYWNlX3RhaWwpOworCQlwYWdlID0gdmlydF90b19wYWdlKGRhdGEtPnRyYWNlX3RhaWwpOworCQlpdGVyLT5uZXh0X3BhZ2VbY3B1XSA9ICZwYWdlLT5scnU7CisJCWl0ZXItPm5leHRfcGFnZV9pZHhbY3B1XSA9IGRhdGEtPnRyYWNlX3RhaWxfaWR4OworCX0KKworCXBhZ2UgPSBsaXN0X2VudHJ5KGl0ZXItPm5leHRfcGFnZVtjcHVdLCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwlCVUdfT04oJmRhdGEtPnRyYWNlX3BhZ2VzID09ICZwYWdlLT5scnUpOworCisJYXJyYXkgPSBwYWdlX2FkZHJlc3MocGFnZSk7CisKKwlXQVJOX09OKGl0ZXItPm5leHRfcGFnZV9pZHhbY3B1XSA+PSBFTlRSSUVTX1BFUl9QQUdFKTsKKwlyZXR1cm4gJmFycmF5W2l0ZXItPm5leHRfcGFnZV9pZHhbY3B1XV07Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfZW50cnkgKgorZmluZF9uZXh0X2VudHJ5KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciwgaW50ICplbnRfY3B1KQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBpdGVyLT50cjsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudCwgKm5leHQgPSBOVUxMOworCWludCBuZXh0X2NwdSA9IC0xOworCWludCBjcHU7CisKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpIHsKKwkJaWYgKCFoZWFkX3BhZ2UodHItPmRhdGFbY3B1XSkpCisJCQljb250aW51ZTsKKwkJZW50ID0gdHJhY2VfZW50cnlfaWR4KHRyLCB0ci0+ZGF0YVtjcHVdLCBpdGVyLCBjcHUpOworCQkvKgorCQkgKiBQaWNrIHRoZSBlbnRyeSB3aXRoIHRoZSBzbWFsbGVzdCB0aW1lc3RhbXA6CisJCSAqLworCQlpZiAoZW50ICYmICghbmV4dCB8fCBlbnQtPnQgPCBuZXh0LT50KSkgeworCQkJbmV4dCA9IGVudDsKKwkJCW5leHRfY3B1ID0gY3B1OworCQl9CisJfQorCisJaWYgKGVudF9jcHUpCisJCSplbnRfY3B1ID0gbmV4dF9jcHU7CisKKwlyZXR1cm4gbmV4dDsKK30KKworc3RhdGljIHZvaWQgdHJhY2VfaXRlcmF0b3JfaW5jcmVtZW50KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpdGVyLT5pZHgrKzsKKwlpdGVyLT5uZXh0X2lkeFtpdGVyLT5jcHVdKys7CisJaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdKys7CisKKwlpZiAoaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdID49IEVOVFJJRVNfUEVSX1BBR0UpIHsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IGl0ZXItPnRyLT5kYXRhW2l0ZXItPmNwdV07CisKKwkJaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdID0gMDsKKwkJaXRlci0+bmV4dF9wYWdlW2l0ZXItPmNwdV0gPQorCQkJdHJhY2VfbmV4dF9saXN0KGRhdGEsIGl0ZXItPm5leHRfcGFnZVtpdGVyLT5jcHVdKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNlX2NvbnN1bWUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSBpdGVyLT50ci0+ZGF0YVtpdGVyLT5jcHVdOworCisJZGF0YS0+dHJhY2VfdGFpbF9pZHgrKzsKKwlpZiAoZGF0YS0+dHJhY2VfdGFpbF9pZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQlkYXRhLT50cmFjZV90YWlsID0gdHJhY2VfbmV4dF9wYWdlKGRhdGEsIGRhdGEtPnRyYWNlX3RhaWwpOworCQlkYXRhLT50cmFjZV90YWlsX2lkeCA9IDA7CisJfQorCisJLyogQ2hlY2sgaWYgd2UgZW1wdHkgaXQsIHRoZW4gcmVzZXQgdGhlIGluZGV4ICovCisJaWYgKGRhdGEtPnRyYWNlX2hlYWQgPT0gZGF0YS0+dHJhY2VfdGFpbCAmJgorCSAgICBkYXRhLT50cmFjZV9oZWFkX2lkeCA9PSBkYXRhLT50cmFjZV90YWlsX2lkeCkKKwkJZGF0YS0+dHJhY2VfaWR4ID0gMDsKK30KKworc3RhdGljIHZvaWQgKmZpbmRfbmV4dF9lbnRyeV9pbmMoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqbmV4dDsKKwlpbnQgbmV4dF9jcHUgPSAtMTsKKworCW5leHQgPSBmaW5kX25leHRfZW50cnkoaXRlciwgJm5leHRfY3B1KTsKKworCWl0ZXItPnByZXZfZW50ID0gaXRlci0+ZW50OworCWl0ZXItPnByZXZfY3B1ID0gaXRlci0+Y3B1OworCisJaXRlci0+ZW50ID0gbmV4dDsKKwlpdGVyLT5jcHUgPSBuZXh0X2NwdTsKKworCWlmIChuZXh0KQorCQl0cmFjZV9pdGVyYXRvcl9pbmNyZW1lbnQoaXRlcik7CisKKwlyZXR1cm4gbmV4dCA/IGl0ZXIgOiBOVUxMOworfQorCitzdGF0aWMgdm9pZCAqc19uZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gbS0+cHJpdmF0ZTsKKwl2b2lkICpsYXN0X2VudCA9IGl0ZXItPmVudDsKKwlpbnQgaSA9IChpbnQpKnBvczsKKwl2b2lkICplbnQ7CisKKwkoKnBvcykrKzsKKworCS8qIGNhbid0IGdvIGJhY2t3YXJkcyAqLworCWlmIChpdGVyLT5pZHggPiBpKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChpdGVyLT5pZHggPCAwKQorCQllbnQgPSBmaW5kX25leHRfZW50cnlfaW5jKGl0ZXIpOworCWVsc2UKKwkJZW50ID0gaXRlcjsKKworCXdoaWxlIChlbnQgJiYgaXRlci0+aWR4IDwgaSkKKwkJZW50ID0gZmluZF9uZXh0X2VudHJ5X2luYyhpdGVyKTsKKworCWl0ZXItPnBvcyA9ICpwb3M7CisKKwlpZiAobGFzdF9lbnQgJiYgIWVudCkKKwkJc2VxX3B1dHMobSwgIlxuXG52aW06ZnQ9aGVscFxuIik7CisKKwlyZXR1cm4gZW50OworfQorCitzdGF0aWMgdm9pZCAqc19zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisJdm9pZCAqcCA9IE5VTEw7CisJbG9mZl90IGwgPSAwOworCWludCBpOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlpZiAoIWN1cnJlbnRfdHJhY2UgfHwgY3VycmVudF90cmFjZSAhPSBpdGVyLT50cmFjZSkgeworCQltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlhdG9taWNfaW5jKCZ0cmFjZV9yZWNvcmRfY21kbGluZV9kaXNhYmxlZCk7CisKKwkvKiBsZXQgdGhlIHRyYWNlciBncmFiIGxvY2tzIGhlcmUgaWYgbmVlZGVkICovCisJaWYgKGN1cnJlbnRfdHJhY2UtPnN0YXJ0KQorCQljdXJyZW50X3RyYWNlLT5zdGFydChpdGVyKTsKKworCWlmICgqcG9zICE9IGl0ZXItPnBvcykgeworCQlpdGVyLT5lbnQgPSBOVUxMOworCQlpdGVyLT5jcHUgPSAwOworCQlpdGVyLT5pZHggPSAtMTsKKwkJaXRlci0+cHJldl9lbnQgPSBOVUxMOworCQlpdGVyLT5wcmV2X2NwdSA9IC0xOworCisJCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpIHsKKwkJCWl0ZXItPm5leHRfaWR4W2ldID0gMDsKKwkJCWl0ZXItPm5leHRfcGFnZVtpXSA9IE5VTEw7CisJCX0KKworCQlmb3IgKHAgPSBpdGVyOyBwICYmIGwgPCAqcG9zOyBwID0gc19uZXh0KG0sIHAsICZsKSkKKwkJCTsKKworCX0gZWxzZSB7CisJCWwgPSAqcG9zIC0gMTsKKwkJcCA9IHNfbmV4dChtLCBwLCAmbCk7CisJfQorCisJcmV0dXJuIHA7Cit9CisKK3N0YXRpYyB2b2lkIHNfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnApCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gbS0+cHJpdmF0ZTsKKworCWF0b21pY19kZWMoJnRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkKTsKKworCS8qIGxldCB0aGUgdHJhY2VyIHJlbGVhc2UgbG9ja3MgaGVyZSBpZiBuZWVkZWQgKi8KKwlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlID09IGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5zdG9wKQorCQlpdGVyLT50cmFjZS0+c3RvcChpdGVyKTsKKworCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7Cit9CisKKyNkZWZpbmUgS1JFVFBST0JFX01TRyAiW3Vua25vd24va3JldHByb2JlJ2RdIgorCisjaWZkZWYgQ09ORklHX0tSRVRQUk9CRVMKK3N0YXRpYyBpbmxpbmUgaW50IGtyZXRwcm9iZWQodW5zaWduZWQgbG9uZyBhZGRyKQoreworCXJldHVybiBhZGRyID09ICh1bnNpZ25lZCBsb25nKWtyZXRwcm9iZV90cmFtcG9saW5lOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGtyZXRwcm9iZWQodW5zaWduZWQgbG9uZyBhZGRyKQoreworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19LUkVUUFJPQkVTICovCisKK3N0YXRpYyBpbnQKK3NlcV9wcmludF9zeW1fc2hvcnQoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3QgY2hhciAqZm10LCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisjaWZkZWYgQ09ORklHX0tBTExTWU1TCisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCWthbGxzeW1zX2xvb2t1cChhZGRyZXNzLCBOVUxMLCBOVUxMLCBOVUxMLCBzdHIpOworCisJcmV0dXJuIHRyYWNlX3NlcV9wcmludGYocywgZm10LCBzdHIpOworI2VuZGlmCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3NlcV9wcmludF9zeW1fb2Zmc2V0KHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKmZtdCwKKwkJICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisjaWZkZWYgQ09ORklHX0tBTExTWU1TCisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCXNwcmludF9zeW1ib2woc3RyLCBhZGRyZXNzKTsKKwlyZXR1cm4gdHJhY2Vfc2VxX3ByaW50ZihzLCBmbXQsIHN0cik7CisjZW5kaWYKKwlyZXR1cm4gMTsKK30KKworI2lmbmRlZiBDT05GSUdfNjRCSVQKKyMgZGVmaW5lIElQX0ZNVCAiJTA4bHgiCisjZWxzZQorIyBkZWZpbmUgSVBfRk1UICIlMDE2bHgiCisjZW5kaWYKKworc3RhdGljIGludAorc2VxX3ByaW50X2lwX3N5bShzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHN5bV9mbGFncykKK3sKKwlpbnQgcmV0OworCisJaWYgKCFpcCkKKwkJcmV0dXJuIHRyYWNlX3NlcV9wcmludGYocywgIjAiKTsKKworCWlmIChzeW1fZmxhZ3MgJiBUUkFDRV9JVEVSX1NZTV9PRkZTRVQpCisJCXJldCA9IHNlcV9wcmludF9zeW1fb2Zmc2V0KHMsICIlcyIsIGlwKTsKKwllbHNlCisJCXJldCA9IHNlcV9wcmludF9zeW1fc2hvcnQocywgIiVzIiwgaXApOworCisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCisJaWYgKHN5bV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX0FERFIpCisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiA8IiBJUF9GTVQgIj4iLCBpcCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfbGF0X2hlbHBfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIyAgICAgICAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmICAgICAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGggICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8fHx8IC8gICAgICAgICAgICAgICAgICAgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5ICAgICAgICAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIgICAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICBcXCAgIC8gICAgfHx8fHwgICBcXCAgIHwgICAvICAgICAgICAgICBcbiIpOworfQorCitzdGF0aWMgdm9pZCBwcmludF9mdW5jX2hlbHBfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT05cbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8XG4iKTsKK30KKworCitzdGF0aWMgdm9pZAorcHJpbnRfdHJhY2VfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXVuc2lnbmVkIGxvbmcgc3ltX2ZsYWdzID0gKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9TWU1fTUFTSyk7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGl0ZXItPnRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSB0ci0+ZGF0YVt0ci0+Y3B1XTsKKwlzdHJ1Y3QgdHJhY2VyICp0eXBlID0gY3VycmVudF90cmFjZTsKKwl1bnNpZ25lZCBsb25nIHRvdGFsICAgPSAwOworCXVuc2lnbmVkIGxvbmcgZW50cmllcyA9IDA7CisJaW50IGNwdTsKKwljb25zdCBjaGFyICpuYW1lID0gInByZWVtcHRpb24iOworCisJaWYgKHR5cGUpCisJCW5hbWUgPSB0eXBlLT5uYW1lOworCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCWlmIChoZWFkX3BhZ2UodHItPmRhdGFbY3B1XSkpIHsKKwkJCXRvdGFsICs9IHRyLT5kYXRhW2NwdV0tPnRyYWNlX2lkeDsKKwkJCWlmICh0ci0+ZGF0YVtjcHVdLT50cmFjZV9pZHggPiB0ci0+ZW50cmllcykKKwkJCQllbnRyaWVzICs9IHRyLT5lbnRyaWVzOworCQkJZWxzZQorCQkJCWVudHJpZXMgKz0gdHItPmRhdGFbY3B1XS0+dHJhY2VfaWR4OworCQl9CisJfQorCisJc2VxX3ByaW50ZihtLCAiJXMgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gJXNcbiIsCisJCSAgIG5hbWUsIFVUU19SRUxFQVNFKTsKKwlzZXFfcHV0cyhtLCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisJCSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKwlzZXFfcHJpbnRmKG0sICIgbGF0ZW5jeTogJWx1IHVzLCAjJWx1LyVsdSwgQ1BVIyVkIHwiCisJCSAgICIgKE06JXMgVlA6JWQsIEtQOiVkLCBTUDolZCBIUDolZCIsCisJCSAgIG5zZWNzX3RvX3VzZWNzKGRhdGEtPnNhdmVkX2xhdGVuY3kpLAorCQkgICBlbnRyaWVzLAorCQkgICB0b3RhbCwKKwkJICAgdHItPmNwdSwKKyNpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUX05PTkUpCisJCSAgICJzZXJ2ZXIiLAorI2VsaWYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkpCisJCSAgICJkZXNrdG9wIiwKKyNlbGlmIGRlZmluZWQoQ09ORklHX1BSRUVNUFQpCisJCSAgICJwcmVlbXB0IiwKKyNlbHNlCisJCSAgICJ1bmtub3duIiwKKyNlbmRpZgorCQkgICAvKiBUaGVzZSBhcmUgcmVzZXJ2ZWQgZm9yIGxhdGVyIHVzZSAqLworCQkgICAwLCAwLCAwLCAwKTsKKyNpZmRlZiBDT05GSUdfU01QCisJc2VxX3ByaW50ZihtLCAiICNQOiVkKVxuIiwgbnVtX29ubGluZV9jcHVzKCkpOworI2Vsc2UKKwlzZXFfcHV0cyhtLCAiKVxuIik7CisjZW5kaWYKKwlzZXFfcHV0cyhtLCAiICAgIC0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKwlzZXFfcHJpbnRmKG0sICIgICAgfCB0YXNrOiAlLjE2cy0lZCAiCisJCSAgICIodWlkOiVkIG5pY2U6JWxkIHBvbGljeTolbGQgcnRfcHJpbzolbGQpXG4iLAorCQkgICBkYXRhLT5jb21tLCBkYXRhLT5waWQsIGRhdGEtPnVpZCwgZGF0YS0+bmljZSwKKwkJICAgZGF0YS0+cG9saWN5LCBkYXRhLT5ydF9wcmlvcml0eSk7CisJc2VxX3B1dHMobSwgIiAgICAtLS0tLS0tLS0tLS0tLS0tLVxuIik7CisKKwlpZiAoZGF0YS0+Y3JpdGljYWxfc3RhcnQpIHsKKwkJc2VxX3B1dHMobSwgIiA9PiBzdGFydGVkIGF0OiAiKTsKKwkJc2VxX3ByaW50X2lwX3N5bSgmaXRlci0+c2VxLCBkYXRhLT5jcml0aWNhbF9zdGFydCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2VfcHJpbnRfc2VxKG0sICZpdGVyLT5zZXEpOworCQlzZXFfcHV0cyhtLCAiXG4gPT4gZW5kZWQgYXQ6ICAgIik7CisJCXNlcV9wcmludF9pcF9zeW0oJml0ZXItPnNlcSwgZGF0YS0+Y3JpdGljYWxfZW5kLCBzeW1fZmxhZ3MpOworCQl0cmFjZV9wcmludF9zZXEobSwgJml0ZXItPnNlcSk7CisJCXNlcV9wdXRzKG0sICJcbiIpOworCX0KKworCXNlcV9wdXRzKG0sICJcbiIpOworfQorCitzdGF0aWMgdm9pZAorbGF0X3ByaW50X2dlbmVyaWMoc3RydWN0IHRyYWNlX3NlcSAqcywgc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSwgaW50IGNwdSkKK3sKKwlpbnQgaGFyZGlycSwgc29mdGlycTsKKwljaGFyICpjb21tOworCisJY29tbSA9IHRyYWNlX2ZpbmRfY21kbGluZShlbnRyeS0+cGlkKTsKKworCXRyYWNlX3NlcV9wcmludGYocywgIiU4LjhzLSUtNWQgIiwgY29tbSwgZW50cnktPnBpZCk7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJWQiLCBjcHUpOworCXRyYWNlX3NlcV9wcmludGYocywgIiVjJWMiLAorCQkJKGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfSVJRU19PRkYpID8gJ2QnIDogJy4nLAorCQkJKChlbnRyeS0+ZmxhZ3MgJiBUUkFDRV9GTEFHX05FRURfUkVTQ0hFRCkgPyAnTicgOiAnLicpKTsKKworCWhhcmRpcnEgPSBlbnRyeS0+ZmxhZ3MgJiBUUkFDRV9GTEFHX0hBUkRJUlE7CisJc29mdGlycSA9IGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfU09GVElSUTsKKwlpZiAoaGFyZGlycSAmJiBzb2Z0aXJxKSB7CisJCXRyYWNlX3NlcV9wdXRjKHMsICdIJyk7CisJfSBlbHNlIHsKKwkJaWYgKGhhcmRpcnEpIHsKKwkJCXRyYWNlX3NlcV9wdXRjKHMsICdoJyk7CisJCX0gZWxzZSB7CisJCQlpZiAoc29mdGlycSkKKwkJCQl0cmFjZV9zZXFfcHV0YyhzLCAncycpOworCQkJZWxzZQorCQkJCXRyYWNlX3NlcV9wdXRjKHMsICcuJyk7CisJCX0KKwl9CisKKwlpZiAoZW50cnktPnByZWVtcHRfY291bnQpCisJCXRyYWNlX3NlcV9wcmludGYocywgIiV4IiwgZW50cnktPnByZWVtcHRfY291bnQpOworCWVsc2UKKwkJdHJhY2Vfc2VxX3B1dHMocywgIi4iKTsKK30KKwordW5zaWduZWQgbG9uZyBwcmVlbXB0X21hcmtfdGhyZXNoID0gMTAwOworCitzdGF0aWMgdm9pZAorbGF0X3ByaW50X3RpbWVzdGFtcChzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBsb25nIGxvbmcgYWJzX3VzZWNzLAorCQkgICAgdW5zaWduZWQgbG9uZyByZWxfdXNlY3MpCit7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiICU0bGxkdXMiLCBhYnNfdXNlY3MpOworCWlmIChyZWxfdXNlY3MgPiBwcmVlbXB0X21hcmtfdGhyZXNoKQorCQl0cmFjZV9zZXFfcHV0cyhzLCAiITogIik7CisJZWxzZSBpZiAocmVsX3VzZWNzID4gMSkKKwkJdHJhY2Vfc2VxX3B1dHMocywgIis6ICIpOworCWVsc2UKKwkJdHJhY2Vfc2VxX3B1dHMocywgIiA6ICIpOworfQorCitzdGF0aWMgY29uc3QgY2hhciBzdGF0ZV90b19jaGFyW10gPSBUQVNLX1NUQVRFX1RPX0NIQVJfU1RSOworCitzdGF0aWMgaW50CitwcmludF9sYXRfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciwgdW5zaWduZWQgaW50IHRyYWNlX2lkeCwgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIHN5bV9mbGFncyA9ICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX01BU0spOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqbmV4dF9lbnRyeSA9IGZpbmRfbmV4dF9lbnRyeShpdGVyLCBOVUxMKTsKKwl1bnNpZ25lZCBsb25nIHZlcmJvc2UgPSAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1ZFUkJPU0UpOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnkgPSBpdGVyLT5lbnQ7CisJdW5zaWduZWQgbG9uZyBhYnNfdXNlY3M7CisJdW5zaWduZWQgbG9uZyByZWxfdXNlY3M7CisJY2hhciAqY29tbTsKKwlpbnQgUywgVDsKKwlpbnQgaTsKKwl1bnNpZ25lZCBzdGF0ZTsKKworCWlmICghbmV4dF9lbnRyeSkKKwkJbmV4dF9lbnRyeSA9IGVudHJ5OworCXJlbF91c2VjcyA9IG5zMnVzZWNzKG5leHRfZW50cnktPnQgLSBlbnRyeS0+dCk7CisJYWJzX3VzZWNzID0gbnMydXNlY3MoZW50cnktPnQgLSBpdGVyLT50ci0+dGltZV9zdGFydCk7CisKKwlpZiAodmVyYm9zZSkgeworCQljb21tID0gdHJhY2VfZmluZF9jbWRsaW5lKGVudHJ5LT5waWQpOworCQl0cmFjZV9zZXFfcHJpbnRmKHMsICIlMTZzICU1ZCAlZCAlZCAlMDh4ICUwOHggWyUwOGx4XSIKKwkJCQkgIiAlbGQuJTAzbGRtcyAoKyVsZC4lMDNsZG1zKTogIiwKKwkJCQkgY29tbSwKKwkJCQkgZW50cnktPnBpZCwgY3B1LCBlbnRyeS0+ZmxhZ3MsCisJCQkJIGVudHJ5LT5wcmVlbXB0X2NvdW50LCB0cmFjZV9pZHgsCisJCQkJIG5zMnVzZWNzKGVudHJ5LT50KSwKKwkJCQkgYWJzX3VzZWNzLzEwMDAsCisJCQkJIGFic191c2VjcyAlIDEwMDAsIHJlbF91c2Vjcy8xMDAwLAorCQkJCSByZWxfdXNlY3MgJSAxMDAwKTsKKwl9IGVsc2UgeworCQlsYXRfcHJpbnRfZ2VuZXJpYyhzLCBlbnRyeSwgY3B1KTsKKwkJbGF0X3ByaW50X3RpbWVzdGFtcChzLCBhYnNfdXNlY3MsIHJlbF91c2Vjcyk7CisJfQorCXN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFRSQUNFX0ZOOgorCQlzZXFfcHJpbnRfaXBfc3ltKHMsIGVudHJ5LT5mbi5pcCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2Vfc2VxX3B1dHMocywgIiAoIik7CisJCWlmIChrcmV0cHJvYmVkKGVudHJ5LT5mbi5wYXJlbnRfaXApKQorCQkJdHJhY2Vfc2VxX3B1dHMocywgS1JFVFBST0JFX01TRyk7CisJCWVsc2UKKwkJCXNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLnBhcmVudF9pcCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2Vfc2VxX3B1dHMocywgIilcbiIpOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwljYXNlIFRSQUNFX1dBS0U6CisJCVQgPSBlbnRyeS0+Y3R4Lm5leHRfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4Lm5leHRfc3RhdGVdIDogJ1gnOworCisJCXN0YXRlID0gZW50cnktPmN0eC5wcmV2X3N0YXRlID8gX19mZnMoZW50cnktPmN0eC5wcmV2X3N0YXRlKSArIDEgOiAwOworCQlTID0gc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgLSAxID8gc3RhdGVfdG9fY2hhcltzdGF0ZV0gOiAnWCc7CisJCWNvbW0gPSB0cmFjZV9maW5kX2NtZGxpbmUoZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCXRyYWNlX3NlcV9wcmludGYocywgIiAlNWQ6JTNkOiVjICVzICU1ZDolM2Q6JWMgJXNcbiIsCisJCQkJIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSBTLCBlbnRyeS0+dHlwZSA9PSBUUkFDRV9DVFggPyAiPT0+IiA6ICIgICsiLAorCQkJCSBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgVCwgY29tbSk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiIyAlbGQgJWxkICVsZFxuIiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMSwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfU1RBQ0tfRU5UUklFUzsgaSsrKSB7CisJCQlpZiAoaSkKKwkJCQl0cmFjZV9zZXFfcHV0cyhzLCAiIDw9ICIpOworCQkJc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+c3RhY2suY2FsbGVyW2ldLCBzeW1fZmxhZ3MpOworCQl9CisJCXRyYWNlX3NlcV9wdXRzKHMsICJcbiIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQl0cmFjZV9zZXFfcHJpbnRmKHMsICJVbmtub3duIHR5cGUgJWRcbiIsIGVudHJ5LT50eXBlKTsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfdHJhY2VfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIHN5bV9mbGFncyA9ICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX01BU0spOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyB1c2VjX3JlbTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdDsKKwl1bnNpZ25lZCBsb25nIHNlY3M7CisJY2hhciAqY29tbTsKKwlpbnQgcmV0OworCWludCBTLCBUOworCWludCBpOworCisJZW50cnkgPSBpdGVyLT5lbnQ7CisKKwljb21tID0gdHJhY2VfZmluZF9jbWRsaW5lKGl0ZXItPmVudC0+cGlkKTsKKworCXQgPSBuczJ1c2VjcyhlbnRyeS0+dCk7CisJdXNlY19yZW0gPSBkb19kaXYodCwgMTAwMDAwMFVMTCk7CisJc2VjcyA9ICh1bnNpZ25lZCBsb25nKXQ7CisKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlMTZzLSUtNWQgIiwgY29tbSwgZW50cnktPnBpZCk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIlslMDJkXSAiLCBpdGVyLT5jcHUpOworCWlmICghcmV0KQorCQlyZXR1cm4gMDsKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlNWx1LiUwNmx1OiAiLCBzZWNzLCB1c2VjX3JlbSk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCXJldCA9IHNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLmlwLCBzeW1fZmxhZ3MpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlpZiAoKHN5bV9mbGFncyAmIFRSQUNFX0lURVJfUFJJTlRfUEFSRU5UKSAmJgorCQkJCQkJZW50cnktPmZuLnBhcmVudF9pcCkgeworCQkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIDwtIik7CisJCQlpZiAoIXJldCkKKwkJCQlyZXR1cm4gMDsKKwkJCWlmIChrcmV0cHJvYmVkKGVudHJ5LT5mbi5wYXJlbnRfaXApKQorCQkJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsIEtSRVRQUk9CRV9NU0cpOworCQkJZWxzZQorCQkJCXJldCA9IHNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLnBhcmVudF9pcCwKKwkJCQkJCSAgICAgICBzeW1fZmxhZ3MpOworCQkJaWYgKCFyZXQpCisJCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiXG4iKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCQlTID0gZW50cnktPmN0eC5wcmV2X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5wcmV2X3N0YXRlXSA6ICdYJzsKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiAlNWQ6JTNkOiVjICVzICU1ZDolM2Q6JWNcbiIsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSAgICAgICBTLAorCQkJCSAgICAgICBlbnRyeS0+dHlwZSA9PSBUUkFDRV9DVFggPyAiPT0+IiA6ICIgICsiLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgICAgICAgVCk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIyAlbGQgJWxkICVsZFxuIiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMSwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfU1RBQ0tfRU5UUklFUzsgaSsrKSB7CisJCQlpZiAoaSkgeworCQkJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsICIgPD0gIik7CisJCQkJaWYgKCFyZXQpCisJCQkJCXJldHVybiAwOworCQkJfQorCQkJcmV0ID0gc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+c3RhY2suY2FsbGVyW2ldLAorCQkJCQkgICAgICAgc3ltX2ZsYWdzKTsKKwkJCWlmICghcmV0KQorCQkJCXJldHVybiAwOworCQl9CisJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsICJcbiIpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfcmF3X2ZtdChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwlpbnQgcmV0OworCWludCBTLCBUOworCisJZW50cnkgPSBpdGVyLT5lbnQ7CisKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlZCAlZCAlbGx1ICIsCisJCWVudHJ5LT5waWQsIGl0ZXItPmNwdSwgZW50cnktPnQpOworCWlmICghcmV0KQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFRSQUNFX0ZOOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIleCAleFxuIiwKKwkJCQkJZW50cnktPmZuLmlwLCBlbnRyeS0+Zm4ucGFyZW50X2lwKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCQlTID0gZW50cnktPmN0eC5wcmV2X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5wcmV2X3N0YXRlXSA6ICdYJzsKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisJCWlmIChlbnRyeS0+dHlwZSA9PSBUUkFDRV9XQUtFKQorCQkJUyA9ICcrJzsKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiJWQgJWQgJWMgJWQgJWQgJWNcbiIsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSAgICAgICBTLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgICAgICAgVCk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwljYXNlIFRSQUNFX1NUQUNLOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIjICVsZCAlbGQgJWxkXG4iLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcxLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcyLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJfQorCXJldHVybiAxOworfQorCisjZGVmaW5lIFNFUV9QVVRfRklFTERfUkVUKHMsIHgpCQkJCVwKK2RvIHsJCQkJCQkJXAorCWlmICghdHJhY2Vfc2VxX3B1dG1lbShzLCAmKHgpLCBzaXplb2YoeCkpKQlcCisJCXJldHVybiAwOwkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCB4KQkJCVwKK2RvIHsJCQkJCQkJXAorCWlmICghdHJhY2Vfc2VxX3B1dG1lbV9oZXgocywgJih4KSwgc2l6ZW9mKHgpKSkJXAorCQlyZXR1cm4gMDsJCQkJXAorfSB3aGlsZSAoMCkKKworc3RhdGljIGludCBwcmludF9oZXhfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBjaGFyIG5ld2xpbmUgPSAnXG4nOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJaW50IFMsIFQ7CisKKwllbnRyeSA9IGl0ZXItPmVudDsKKworCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+cGlkKTsKKwlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgaXRlci0+Y3B1KTsKKwlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPnQpOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Zm4uaXApOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPmZuLnBhcmVudF9pcCk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfQ1RYOgorCWNhc2UgVFJBQ0VfV0FLRToKKwkJUyA9IGVudHJ5LT5jdHgucHJldl9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgucHJldl9zdGF0ZV0gOiAnWCc7CisJCVQgPSBlbnRyeS0+Y3R4Lm5leHRfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4Lm5leHRfc3RhdGVdIDogJ1gnOworCQlpZiAoZW50cnktPnR5cGUgPT0gVFJBQ0VfV0FLRSkKKwkJCVMgPSAnKyc7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4LnByZXZfcGlkKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgucHJldl9wcmlvKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIFMpOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4Lm5leHRfcHJpbyk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Zm4ucGFyZW50X2lwKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIFQpOworCQlicmVhazsKKwljYXNlIFRSQUNFX1NQRUNJQUw6CisJY2FzZSBUUkFDRV9TVEFDSzoKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzEpOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMik7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJYnJlYWs7CisJfQorCVNFUV9QVVRfRklFTERfUkVUKHMsIG5ld2xpbmUpOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfYmluX2ZtdChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gaXRlci0+ZW50OworCisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnBpZCk7CisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmNwdSk7CisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnQpOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5pcCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5wYXJlbnRfaXApOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3BpZCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgucHJldl9wcmlvKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3N0YXRlKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgubmV4dF9wcmlvKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3N0YXRlKTsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzEpOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmcyKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCB0cmFjZV9lbXB0eShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlpbnQgY3B1OworCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCisJCWlmIChoZWFkX3BhZ2UoZGF0YSkgJiYgZGF0YS0+dHJhY2VfaWR4ICYmCisJCSAgICAoZGF0YS0+dHJhY2VfdGFpbCAhPSBkYXRhLT50cmFjZV9oZWFkIHx8CisJCSAgICAgZGF0YS0+dHJhY2VfdGFpbF9pZHggIT0gZGF0YS0+dHJhY2VfaGVhZF9pZHgpKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IHByaW50X3RyYWNlX2xpbmUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCWlmIChpdGVyLT50cmFjZSAmJiBpdGVyLT50cmFjZS0+cHJpbnRfbGluZSkKKwkJcmV0dXJuIGl0ZXItPnRyYWNlLT5wcmludF9saW5lKGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9CSU4pCisJCXJldHVybiBwcmludF9iaW5fZm10KGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9IRVgpCisJCXJldHVybiBwcmludF9oZXhfZm10KGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9SQVcpCisJCXJldHVybiBwcmludF9yYXdfZm10KGl0ZXIpOworCisJaWYgKGl0ZXItPml0ZXJfZmxhZ3MgJiBUUkFDRV9GSUxFX0xBVF9GTVQpCisJCXJldHVybiBwcmludF9sYXRfZm10KGl0ZXIsIGl0ZXItPmlkeCwgaXRlci0+Y3B1KTsKKworCXJldHVybiBwcmludF90cmFjZV9mbXQoaXRlcik7Cit9CisKK3N0YXRpYyBpbnQgc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSB2OworCisJaWYgKGl0ZXItPmVudCA9PSBOVUxMKSB7CisJCWlmIChpdGVyLT50cikgeworCQkJc2VxX3ByaW50ZihtLCAiIyB0cmFjZXI6ICVzXG4iLCBpdGVyLT50cmFjZS0+bmFtZSk7CisJCQlzZXFfcHV0cyhtLCAiI1xuIik7CisJCX0KKwkJaWYgKGl0ZXItPml0ZXJfZmxhZ3MgJiBUUkFDRV9GSUxFX0xBVF9GTVQpIHsKKwkJCS8qIHByaW50IG5vdGhpbmcgaWYgdGhlIGJ1ZmZlcnMgYXJlIGVtcHR5ICovCisJCQlpZiAodHJhY2VfZW1wdHkoaXRlcikpCisJCQkJcmV0dXJuIDA7CisJCQlwcmludF90cmFjZV9oZWFkZXIobSwgaXRlcik7CisJCQlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfVkVSQk9TRSkpCisJCQkJcHJpbnRfbGF0X2hlbHBfaGVhZGVyKG0pOworCQl9IGVsc2UgeworCQkJaWYgKCEodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1ZFUkJPU0UpKQorCQkJCXByaW50X2Z1bmNfaGVscF9oZWFkZXIobSk7CisJCX0KKwl9IGVsc2UgeworCQlwcmludF90cmFjZV9saW5lKGl0ZXIpOworCQl0cmFjZV9wcmludF9zZXEobSwgJml0ZXItPnNlcSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgdHJhY2VyX3NlcV9vcHMgPSB7CisJLnN0YXJ0CQk9IHNfc3RhcnQsCisJLm5leHQJCT0gc19uZXh0LAorCS5zdG9wCQk9IHNfc3RvcCwKKwkuc2hvdwkJPSBzX3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IHRyYWNlX2l0ZXJhdG9yICoKK19fdHJhY2luZ19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgKnJldCkKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisKKwlpZiAodHJhY2luZ19kaXNhYmxlZCkgeworCQkqcmV0ID0gLUVOT0RFVjsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCppdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpdGVyKSB7CisJCSpyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlLT5wcmludF9tYXgpCisJCWl0ZXItPnRyID0gJm1heF90cjsKKwllbHNlCisJCWl0ZXItPnRyID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwlpdGVyLT50cmFjZSA9IGN1cnJlbnRfdHJhY2U7CisJaXRlci0+cG9zID0gLTE7CisKKwkvKiBUT0RPIHN0b3AgdHJhY2VyICovCisJKnJldCA9IHNlcV9vcGVuKGZpbGUsICZ0cmFjZXJfc2VxX29wcyk7CisJaWYgKCEqcmV0KSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJbS0+cHJpdmF0ZSA9IGl0ZXI7CisKKwkJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCQlpZiAoaXRlci0+dHItPmN0cmwpIHsKKwkJCXRyYWNlcl9lbmFibGVkID0gMDsKKwkJCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMDsKKwkJfQorCisJCWlmIChpdGVyLT50cmFjZSAmJiBpdGVyLT50cmFjZS0+b3BlbikKKwkJCWl0ZXItPnRyYWNlLT5vcGVuKGl0ZXIpOworCX0gZWxzZSB7CisJCWtmcmVlKGl0ZXIpOworCQlpdGVyID0gTlVMTDsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworIG91dDoKKwlyZXR1cm4gaXRlcjsKK30KKworaW50IHRyYWNpbmdfb3Blbl9nZW5lcmljKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWZpbHAtPnByaXZhdGVfZGF0YSA9IGlub2RlLT5pX3ByaXZhdGU7CisJcmV0dXJuIDA7Cit9CisKK2ludCB0cmFjaW5nX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHNlcV9maWxlICptID0gKHN0cnVjdCBzZXFfZmlsZSAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5jbG9zZSkKKwkJaXRlci0+dHJhY2UtPmNsb3NlKGl0ZXIpOworCisJLyogcmVlbmFibGUgdHJhY2luZyBpZiBpdCB3YXMgcHJldmlvdXNseSBlbmFibGVkICovCisJaWYgKGl0ZXItPnRyLT5jdHJsKSB7CisJCXRyYWNlcl9lbmFibGVkID0gMTsKKwkJLyoKKwkJICogSXQgaXMgc2FmZSB0byBlbmFibGUgZnVuY3Rpb24gdHJhY2luZyBldmVuIGlmIGl0CisJCSAqIGlzbid0IHVzZWQKKwkJICovCisJCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXNlcV9yZWxlYXNlKGlub2RlLCBmaWxlKTsKKwlrZnJlZShpdGVyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0cmFjaW5nX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJaW50IHJldDsKKworCV9fdHJhY2luZ19vcGVuKGlub2RlLCBmaWxlLCAmcmV0KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdHJhY2luZ19sdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcjsKKwlpbnQgcmV0OworCisJaXRlciA9IF9fdHJhY2luZ19vcGVuKGlub2RlLCBmaWxlLCAmcmV0KTsKKworCWlmICghcmV0KQorCQlpdGVyLT5pdGVyX2ZsYWdzIHw9IFRSQUNFX0ZJTEVfTEFUX0ZNVDsKKworCXJldHVybiByZXQ7Cit9CisKKworc3RhdGljIHZvaWQgKgordF9uZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IG0tPnByaXZhdGU7CisKKwkoKnBvcykrKzsKKworCWlmICh0KQorCQl0ID0gdC0+bmV4dDsKKworCW0tPnByaXZhdGUgPSB0OworCisJcmV0dXJuIHQ7Cit9CisKK3N0YXRpYyB2b2lkICp0X3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqbSwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IG0tPnByaXZhdGU7CisJbG9mZl90IGwgPSAwOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJZm9yICg7IHQgJiYgbCA8ICpwb3M7IHQgPSB0X25leHQobSwgdCwgJmwpKQorCQk7CisKKwlyZXR1cm4gdDsKK30KKworc3RhdGljIHZvaWQgdF9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqcCkKK3sKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworfQorCitzdGF0aWMgaW50IHRfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IHY7CisKKwlpZiAoIXQpCisJCXJldHVybiAwOworCisJc2VxX3ByaW50ZihtLCAiJXMiLCB0LT5uYW1lKTsKKwlpZiAodC0+bmV4dCkKKwkJc2VxX3B1dGMobSwgJyAnKTsKKwllbHNlCisJCXNlcV9wdXRjKG0sICdcbicpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgc2hvd190cmFjZXNfc2VxX29wcyA9IHsKKwkuc3RhcnQJCT0gdF9zdGFydCwKKwkubmV4dAkJPSB0X25leHQsCisJLnN0b3AJCT0gdF9zdG9wLAorCS5zaG93CQk9IHRfc2hvdywKK307CisKK3N0YXRpYyBpbnQgc2hvd190cmFjZXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlpbnQgcmV0OworCisJaWYgKHRyYWNpbmdfZGlzYWJsZWQpCisJCXJldHVybiAtRU5PREVWOworCisJcmV0ID0gc2VxX29wZW4oZmlsZSwgJnNob3dfdHJhY2VzX3NlcV9vcHMpOworCWlmICghcmV0KSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJbS0+cHJpdmF0ZSA9IHRyYWNlX3R5cGVzOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSB0cmFjaW5nX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX2x0X2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19sdF9vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gdHJhY2luZ19yZWxlYXNlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc2hvd190cmFjZXNfZm9wcyA9IHsKKwkub3BlbgkJPSBzaG93X3RyYWNlc19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5yZWxlYXNlCT0gc2VxX3JlbGVhc2UsCit9OworCisvKgorICogT25seSB0cmFjZSBvbiBhIENQVSBpZiB0aGUgYml0bWFzayBpcyBzZXQ6CisgKi8KK3N0YXRpYyBjcHVtYXNrX3QgdHJhY2luZ19jcHVtYXNrID0gQ1BVX01BU0tfQUxMOworCisvKgorICogV2hlbiB0cmFjaW5nL3RyYWNpbmdfY3B1X21hc2sgaXMgbW9kaWZpZWQgdGhlbiB0aGlzIGhvbGRzCisgKiB0aGUgbmV3IGJpdG1hc2sgd2UgYXJlIGFib3V0IHRvIGluc3RhbGw6CisgKi8KK3N0YXRpYyBjcHVtYXNrX3QgdHJhY2luZ19jcHVtYXNrX25ldzsKKworLyoKKyAqIFRoZSB0cmFjZXIgaXRzZWxmIHdpbGwgbm90IHRha2UgdGhpcyBsb2NrLCBidXQgc3RpbGwgd2Ugd2FudAorICogdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgY3B1bWFzayB0byB1c2VyLXNwYWNlOgorICovCitzdGF0aWMgREVGSU5FX01VVEVYKHRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisKKy8qCisgKiBUZW1wb3Jhcnkgc3RvcmFnZSBmb3IgdGhlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAqIENQVSBiaXRtYXNrIChhbmQgb25lIG1vcmUgYnl0ZSBmb3IgdGhlIG5ld2xpbmUpOgorICovCitzdGF0aWMgY2hhciBtYXNrX3N0cltOUl9DUFVTICsgMV07CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2NwdW1hc2tfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJaW50IGxlbjsKKworCW11dGV4X2xvY2soJnRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisKKwlsZW4gPSBjcHVtYXNrX3NjbnByaW50ZihtYXNrX3N0ciwgY291bnQsIHRyYWNpbmdfY3B1bWFzayk7CisJaWYgKGNvdW50IC0gbGVuIDwgMikgeworCQljb3VudCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0X2VycjsKKwl9CisJbGVuICs9IHNwcmludGYobWFza19zdHIgKyBsZW4sICJcbiIpOworCWNvdW50ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY291bnQsIHBwb3MsIG1hc2tfc3RyLCBOUl9DUFVTKzEpOworCitvdXRfZXJyOgorCW11dGV4X3VubG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3B1bWFza193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCWludCBlcnIsIGNwdTsKKworCW11dGV4X2xvY2soJnRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisJZXJyID0gY3B1bWFza19wYXJzZV91c2VyKHVidWYsIGNvdW50LCB0cmFjaW5nX2NwdW1hc2tfbmV3KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl91bmxvY2s7CisKKwlyYXdfbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCS8qCisJCSAqIEluY3JlYXNlL2RlY3JlYXNlIHRoZSBkaXNhYmxlZCBjb3VudGVyIGlmIHdlIGFyZQorCQkgKiBhYm91dCB0byBmbGlwIGEgYml0IGluIHRoZSBjcHVtYXNrOgorCQkgKi8KKwkJaWYgKGNwdV9pc3NldChjcHUsIHRyYWNpbmdfY3B1bWFzaykgJiYKKwkJCQkhY3B1X2lzc2V0KGNwdSwgdHJhY2luZ19jcHVtYXNrX25ldykpIHsKKwkJCWF0b21pY19pbmMoJmdsb2JhbF90cmFjZS5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwkJfQorCQlpZiAoIWNwdV9pc3NldChjcHUsIHRyYWNpbmdfY3B1bWFzaykgJiYKKwkJCQljcHVfaXNzZXQoY3B1LCB0cmFjaW5nX2NwdW1hc2tfbmV3KSkgeworCQkJYXRvbWljX2RlYygmZ2xvYmFsX3RyYWNlLmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworCQl9CisJfQorCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworCXJhd19sb2NhbF9pcnFfZW5hYmxlKCk7CisKKwl0cmFjaW5nX2NwdW1hc2sgPSB0cmFjaW5nX2NwdW1hc2tfbmV3OworCisJbXV0ZXhfdW5sb2NrKCZ0cmFjaW5nX2NwdW1hc2tfdXBkYXRlX2xvY2spOworCisJcmV0dXJuIGNvdW50OworCitlcnJfdW5sb2NrOgorCW11dGV4X3VubG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfY3B1bWFza19mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfY3B1bWFza19yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX2NwdW1hc2tfd3JpdGUsCit9OworCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19pdGVyX2N0cmxfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciAqYnVmOworCWludCByID0gMDsKKwlpbnQgbGVuID0gMDsKKwlpbnQgaTsKKworCS8qIGNhbHVsYXRlIG1heCBzaXplICovCisJZm9yIChpID0gMDsgdHJhY2Vfb3B0aW9uc1tpXTsgaSsrKSB7CisJCWxlbiArPSBzdHJsZW4odHJhY2Vfb3B0aW9uc1tpXSk7CisJCWxlbiArPSAzOyAvKiAibm8iIGFuZCBzcGFjZSAqLworCX0KKworCS8qICsyIGZvciBcbiBhbmQgXDAgKi8KKwlidWYgPSBrbWFsbG9jKGxlbiArIDIsIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IHRyYWNlX29wdGlvbnNbaV07IGkrKykgeworCQlpZiAodHJhY2VfZmxhZ3MgJiAoMSA8PCBpKSkKKwkJCXIgKz0gc3ByaW50ZihidWYgKyByLCAiJXMgIiwgdHJhY2Vfb3B0aW9uc1tpXSk7CisJCWVsc2UKKwkJCXIgKz0gc3ByaW50ZihidWYgKyByLCAibm8lcyAiLCB0cmFjZV9vcHRpb25zW2ldKTsKKwl9CisKKwlyICs9IHNwcmludGYoYnVmICsgciwgIlxuIik7CisJV0FSTl9PTihyID49IGxlbiArIDIpOworCisJciA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKKworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfaXRlcl9jdHJsX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJCXNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyIGJ1Zls2NF07CisJY2hhciAqY21wID0gYnVmOworCWludCBuZWcgPSAwOworCWludCBpOworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlpZiAoc3RybmNtcChidWYsICJubyIsIDIpID09IDApIHsKKwkJbmVnID0gMTsKKwkJY21wICs9IDI7CisJfQorCisJZm9yIChpID0gMDsgdHJhY2Vfb3B0aW9uc1tpXTsgaSsrKSB7CisJCWludCBsZW4gPSBzdHJsZW4odHJhY2Vfb3B0aW9uc1tpXSk7CisKKwkJaWYgKHN0cm5jbXAoY21wLCB0cmFjZV9vcHRpb25zW2ldLCBsZW4pID09IDApIHsKKwkJCWlmIChuZWcpCisJCQkJdHJhY2VfZmxhZ3MgJj0gfigxIDw8IGkpOworCQkJZWxzZQorCQkJCXRyYWNlX2ZsYWdzIHw9ICgxIDw8IGkpOworCQkJYnJlYWs7CisJCX0KKwl9CisJLyoKKwkgKiBJZiBubyBvcHRpb24gY291bGQgYmUgc2V0LCByZXR1cm4gYW4gZXJyb3I6CisJICovCisJaWYgKCF0cmFjZV9vcHRpb25zW2ldKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfaXRlcl9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfaXRlcl9jdHJsX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfaXRlcl9jdHJsX3dyaXRlLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgcmVhZG1lX21zZ1tdID0KKwkidHJhY2luZyBtaW5pLUhPV1RPOlxuXG4iCisJIiMgbWtkaXIgL2RlYnVnXG4iCisJIiMgbW91bnQgLXQgZGVidWdmcyBub2RldiAvZGVidWdcblxuIgorCSIjIGNhdCAvZGVidWcvdHJhY2luZy9hdmFpbGFibGVfdHJhY2Vyc1xuIgorCSJ3YWtldXAgcHJlZW1wdGlycXNvZmYgcHJlZW1wdG9mZiBpcnFzb2ZmIGZ0cmFjZSBzY2hlZF9zd2l0Y2ggbm9uZVxuXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJIm5vbmVcbiIKKwkiIyBlY2hvIHNjaGVkX3N3aXRjaCA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJInNjaGVkX3N3aXRjaFxuIgorCSIjIGNhdCAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmxcbiIKKwkibm9wcmludC1wYXJlbnQgbm9zeW0tb2Zmc2V0IG5vc3ltLWFkZHIgbm92ZXJib3NlXG4iCisJIiMgZWNobyBwcmludC1wYXJlbnQgPiAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmxcbiIKKwkiIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWRcbiIKKwkiIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UgPiAvdG1wL3RyYWNlLnR4dFxuIgorCSJlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWRcbiIKKzsKKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfcmVhZG1lX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsCisJCQkJCXJlYWRtZV9tc2csIHN0cmxlbihyZWFkbWVfbXNnKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfcmVhZG1lX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19yZWFkbWVfcmVhZCwKK307CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2N0cmxfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJY2hhciBidWZbNjRdOworCWludCByOworCisJciA9IHNwcmludGYoYnVmLCAiJWxkXG4iLCB0ci0+Y3RybCk7CisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3RybF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlsb25nIHZhbDsKKwlpbnQgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXZhbCA9ICEhdmFsOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKHRyLT5jdHJsIF4gdmFsKSB7CisJCWlmICh2YWwpCisJCQl0cmFjZXJfZW5hYmxlZCA9IDE7CisJCWVsc2UKKwkJCXRyYWNlcl9lbmFibGVkID0gMDsKKworCQl0ci0+Y3RybCA9IHZhbDsKKworCQlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlLT5jdHJsX3VwZGF0ZSkKKwkJCWN1cnJlbnRfdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3NldF90cmFjZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyIGJ1ZlttYXhfdHJhY2VyX3R5cGVfbGVuKzJdOworCWludCByOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKGN1cnJlbnRfdHJhY2UpCisJCXIgPSBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCBjdXJyZW50X3RyYWNlLT5uYW1lKTsKKwllbHNlCisJCXIgPSBzcHJpbnRmKGJ1ZiwgIlxuIik7CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3NldF90cmFjZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCQlzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlciAqdDsKKwljaGFyIGJ1ZlttYXhfdHJhY2VyX3R5cGVfbGVuKzFdOworCWludCBpOworCisJaWYgKGNudCA+IG1heF90cmFjZXJfdHlwZV9sZW4pCisJCWNudCA9IG1heF90cmFjZXJfdHlwZV9sZW47CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwkvKiBzdHJpcCBlbmRpbmcgd2hpdGVzcGFjZS4gKi8KKwlmb3IgKGkgPSBjbnQgLSAxOyBpID4gMCAmJiBpc3NwYWNlKGJ1ZltpXSk7IGktLSkKKwkJYnVmW2ldID0gMDsKKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWZvciAodCA9IHRyYWNlX3R5cGVzOyB0OyB0ID0gdC0+bmV4dCkgeworCQlpZiAoc3RyY21wKHQtPm5hbWUsIGJ1ZikgPT0gMCkKKwkJCWJyZWFrOworCX0KKwlpZiAoIXQgfHwgdCA9PSBjdXJyZW50X3RyYWNlKQorCQlnb3RvIG91dDsKKworCWlmIChjdXJyZW50X3RyYWNlICYmIGN1cnJlbnRfdHJhY2UtPnJlc2V0KQorCQljdXJyZW50X3RyYWNlLT5yZXNldCh0cik7CisKKwljdXJyZW50X3RyYWNlID0gdDsKKwlpZiAodC0+aW5pdCkKKwkJdC0+aW5pdCh0cik7CisKKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX21heF9sYXRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXVuc2lnbmVkIGxvbmcgKnB0ciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwljaGFyIGJ1Zls2NF07CisJaW50IHI7CisKKwlyID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZFxuIiwKKwkJICAgICAqcHRyID09ICh1bnNpZ25lZCBsb25nKS0xID8gLTEgOiBuc2Vjc190b191c2VjcygqcHRyKSk7CisJaWYgKHIgPiBzaXplb2YoYnVmKSkKKwkJciA9IHNpemVvZihidWYpOworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX21heF9sYXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJbG9uZyAqcHRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlsb25nIHZhbDsKKwlpbnQgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCSpwdHIgPSB2YWwgKiAxMDAwOworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIGF0b21pY190IHRyYWNpbmdfcmVhZGVyOworCitzdGF0aWMgaW50IHRyYWNpbmdfb3Blbl9waXBlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcjsKKworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIFdlIG9ubHkgYWxsb3cgZm9yIHJlYWRlciBvZiB0aGUgcGlwZSAqLworCWlmIChhdG9taWNfaW5jX3JldHVybigmdHJhY2luZ19yZWFkZXIpICE9IDEpIHsKKwkJYXRvbWljX2RlYygmdHJhY2luZ19yZWFkZXIpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKworCS8qIGNyZWF0ZSBhIGJ1ZmZlciB0byBzdG9yZSB0aGUgaW5mb3JtYXRpb24gdG8gcGFzcyB0byB1c2Vyc3BhY2UgKi8KKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaXRlci0+dHIgPSAmZ2xvYmFsX3RyYWNlOworCWl0ZXItPnRyYWNlID0gY3VycmVudF90cmFjZTsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBpdGVyOworCisJaWYgKGl0ZXItPnRyYWNlLT5waXBlX29wZW4pCisJCWl0ZXItPnRyYWNlLT5waXBlX29wZW4oaXRlcik7CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRyYWNpbmdfcmVsZWFzZV9waXBlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCWtmcmVlKGl0ZXIpOworCWF0b21pY19kZWMoJnRyYWNpbmdfcmVhZGVyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50Cit0cmFjaW5nX3BvbGxfcGlwZShzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqcG9sbF90YWJsZSkKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisKKwlpZiAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX0JMT0NLKSB7CisJCS8qCisJCSAqIEFsd2F5cyBzZWxlY3QgYXMgcmVhZGFibGUgd2hlbiBpbiBibG9ja2luZyBtb2RlCisJCSAqLworCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsKKwl9IGVsc2UgeworCQlpZiAoIXRyYWNlX2VtcHR5KGl0ZXIpKQorCQkJcmV0dXJuIFBPTExJTiB8IFBPTExSRE5PUk07CisJCXBvbGxfd2FpdChmaWxwLCAmdHJhY2Vfd2FpdCwgcG9sbF90YWJsZSk7CisJCWlmICghdHJhY2VfZW1wdHkoaXRlcikpCisJCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsKKworCQlyZXR1cm4gMDsKKwl9Cit9CisKKy8qCisgKiBDb25zdW1lciByZWFkZXIuCisgKi8KK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3JlYWRfcGlwZShzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0YXRpYyBjcHVtYXNrX3QgbWFzazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworI2lmZGVmIENPTkZJR19GVFJBQ0UKKwlpbnQgZnRyYWNlX3NhdmU7CisjZW5kaWYKKwlpbnQgY3B1OworCXNzaXplX3Qgc3JldDsKKworCS8qIHJldHVybiBhbnkgbGVmdG92ZXIgZGF0YSAqLworCXNyZXQgPSB0cmFjZV9zZXFfdG9fdXNlcigmaXRlci0+c2VxLCB1YnVmLCBjbnQpOworCWlmIChzcmV0ICE9IC1FQlVTWSkKKwkJcmV0dXJuIHNyZXQ7CisJc3JldCA9IDA7CisKKwl0cmFjZV9zZXFfcmVzZXQoJml0ZXItPnNlcSk7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoaXRlci0+dHJhY2UtPnJlYWQpIHsKKwkJc3JldCA9IGl0ZXItPnRyYWNlLT5yZWFkKGl0ZXIsIGZpbHAsIHVidWYsIGNudCwgcHBvcyk7CisJCWlmIChzcmV0KQorCQkJZ290byBvdXQ7CisJfQorCisJd2hpbGUgKHRyYWNlX2VtcHR5KGl0ZXIpKSB7CisKKwkJaWYgKChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykpIHsKKwkJCXNyZXQgPSAtRUFHQUlOOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKgorCQkgKiBUaGlzIGlzIGEgbWFrZS1zaGlmdCB3YWl0cXVldWUuIFRoZSByZWFzb24gd2UgZG9uJ3QgdXNlCisJCSAqIGFuIGFjdHVhbCB3YWl0IHF1ZXVlIGlzIGJlY2F1c2U6CisJCSAqICAxKSB3ZSBvbmx5IGV2ZXIgaGF2ZSBvbmUgd2FpdGVyCisJCSAqICAyKSB0aGUgdHJhY2luZywgdHJhY2VzIGFsbCBmdW5jdGlvbnMsIHdlIGRvbid0IHdhbnQKKwkJICogICAgIHRoZSBvdmVyaGVhZCBvZiBjYWxsaW5nIHdha2VfdXAgYW5kIGZyaWVuZHMKKwkJICogICAgIChhbmQgdHJhY2luZyB0aGVtIHRvbykKKwkJICogICAgIEFueXdheSwgdGhpcyBpcyByZWFsbHkgdmVyeSBwcmltaXRpdmUgd2FrZXVwLgorCQkgKi8KKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJaXRlci0+dHItPndhaXRlciA9IGN1cnJlbnQ7CisKKwkJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCQkvKiBzbGVlcCBmb3IgMTAwIG1zZWNzLCBhbmQgdHJ5IGFnYWluLiAqLworCQlzY2hlZHVsZV90aW1lb3V0KEhaLzEwKTsKKworCQltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCQlpdGVyLT50ci0+d2FpdGVyID0gTlVMTDsKKworCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKKwkJCXNyZXQgPSAtRUlOVFI7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmIChpdGVyLT50cmFjZSAhPSBjdXJyZW50X3RyYWNlKQorCQkJZ290byBvdXQ7CisKKwkJLyoKKwkJICogV2UgYmxvY2sgdW50aWwgd2UgcmVhZCBzb21ldGhpbmcgYW5kIHRyYWNpbmcgaXMgZGlzYWJsZWQuCisJCSAqIFdlIHN0aWxsIGJsb2NrIGlmIHRyYWNpbmcgaXMgZGlzYWJsZWQsIGJ1dCB3ZSBoYXZlIG5ldmVyCisJCSAqIHJlYWQgYW55dGhpbmcuIFRoaXMgYWxsb3dzIGEgdXNlciB0byBjYXQgdGhpcyBmaWxlLCBhbmQKKwkJICogdGhlbiBlbmFibGUgdHJhY2luZy4gQnV0IGFmdGVyIHdlIGhhdmUgcmVhZCBzb21ldGhpbmcsCisJCSAqIHdlIGdpdmUgYW4gRU9GIHdoZW4gdHJhY2luZyBpcyBhZ2FpbiBkaXNhYmxlZC4KKwkJICoKKwkJICogaXRlci0+cG9zIHdpbGwgYmUgMCBpZiB3ZSBoYXZlbid0IHJlYWQgYW55dGhpbmcuCisJCSAqLworCQlpZiAoIXRyYWNlcl9lbmFibGVkICYmIGl0ZXItPnBvcykKKwkJCWJyZWFrOworCisJCWNvbnRpbnVlOworCX0KKworCS8qIHN0b3Agd2hlbiB0cmFjaW5nIGlzIGZpbmlzaGVkICovCisJaWYgKHRyYWNlX2VtcHR5KGl0ZXIpKQorCQlnb3RvIG91dDsKKworCWlmIChjbnQgPj0gUEFHRV9TSVpFKQorCQljbnQgPSBQQUdFX1NJWkUgLSAxOworCisJLyogcmVzZXQgYWxsIGJ1dCB0ciwgdHJhY2UsIGFuZCBvdmVycnVucyAqLworCW1lbXNldCgmaXRlci0+c2VxLCAwLAorCSAgICAgICBzaXplb2Yoc3RydWN0IHRyYWNlX2l0ZXJhdG9yKSAtCisJICAgICAgIG9mZnNldG9mKHN0cnVjdCB0cmFjZV9pdGVyYXRvciwgc2VxKSk7CisJaXRlci0+cG9zID0gLTE7CisKKwkvKgorCSAqIFdlIG5lZWQgdG8gc3RvcCBhbGwgdHJhY2luZyBvbiBhbGwgQ1BVUyB0byByZWFkIHRoZQorCSAqIHRoZSBuZXh0IGJ1ZmZlci4gVGhpcyBpcyBhIGJpdCBleHBlbnNpdmUsIGJ1dCBpcworCSAqIG5vdCBkb25lIG9mdGVuLiBXZSBmaWxsIGFsbCB3aGF0IHdlIGNhbiByZWFkLAorCSAqIGFuZCB0aGVuIHJlbGVhc2UgdGhlIGxvY2tzIGFnYWluLgorCSAqLworCisJY3B1c19jbGVhcihtYXNrKTsKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCWZ0cmFjZV9zYXZlID0gZnRyYWNlX2VuYWJsZWQ7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2VuZGlmCisJc21wX3dtYigpOworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGNwdSkgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKworCQlpZiAoIWhlYWRfcGFnZShkYXRhKSB8fCAhZGF0YS0+dHJhY2VfaWR4KQorCQkJY29udGludWU7CisKKwkJYXRvbWljX2luYygmZGF0YS0+ZGlzYWJsZWQpOworCQljcHVfc2V0KGNwdSwgbWFzayk7CisJfQorCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBtYXNrKSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCQlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCisJCWlmIChkYXRhLT5vdmVycnVuID4gaXRlci0+bGFzdF9vdmVycnVuW2NwdV0pCisJCQlpdGVyLT5vdmVycnVuW2NwdV0gKz0KKwkJCQlkYXRhLT5vdmVycnVuIC0gaXRlci0+bGFzdF9vdmVycnVuW2NwdV07CisJCWl0ZXItPmxhc3Rfb3ZlcnJ1bltjcHVdID0gZGF0YS0+b3ZlcnJ1bjsKKwl9CisKKwl3aGlsZSAoZmluZF9uZXh0X2VudHJ5X2luYyhpdGVyKSAhPSBOVUxMKSB7CisJCWludCByZXQ7CisJCWludCBsZW4gPSBpdGVyLT5zZXEubGVuOworCisJCXJldCA9IHByaW50X3RyYWNlX2xpbmUoaXRlcik7CisJCWlmICghcmV0KSB7CisJCQkvKiBkb24ndCBwcmludCBwYXJ0aWFsIGxpbmVzICovCisJCQlpdGVyLT5zZXEubGVuID0gbGVuOworCQkJYnJlYWs7CisJCX0KKworCQl0cmFjZV9jb25zdW1lKGl0ZXIpOworCisJCWlmIChpdGVyLT5zZXEubGVuID49IGNudCkKKwkJCWJyZWFrOworCX0KKworCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgbWFzaykgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKwkJX19yYXdfc3Bpbl91bmxvY2soJmRhdGEtPmxvY2spOworCX0KKworCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgbWFzaykgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKwkJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCX0KKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2Vfc2F2ZTsKKyNlbmRpZgorCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCS8qIE5vdyBjb3B5IHdoYXQgd2UgaGF2ZSB0byB0aGUgdXNlciAqLworCXNyZXQgPSB0cmFjZV9zZXFfdG9fdXNlcigmaXRlci0+c2VxLCB1YnVmLCBjbnQpOworCWlmIChpdGVyLT5zZXEucmVhZHBvcyA+PSBpdGVyLT5zZXEubGVuKQorCQl0cmFjZV9zZXFfcmVzZXQoJml0ZXItPnNlcSk7CisJaWYgKHNyZXQgPT0gLUVCVVNZKQorCQlzcmV0ID0gMDsKKworb3V0OgorCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlyZXR1cm4gc3JldDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfZW50cmllc19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwljaGFyIGJ1Zls2NF07CisJaW50IHI7CisKKwlyID0gc3ByaW50ZihidWYsICIlbHVcbiIsIHRyLT5lbnRyaWVzKTsKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19lbnRyaWVzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXVuc2lnbmVkIGxvbmcgdmFsOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgaSwgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIG11c3QgaGF2ZSBhdCBsZWFzdCAxIGVudHJ5ICovCisJaWYgKCF2YWwpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlpZiAoY3VycmVudF90cmFjZSAhPSAmbm9fdHJhY2VyKSB7CisJCWNudCA9IC1FQlVTWTsKKwkJcHJfaW5mbygiZnRyYWNlOiBzZXQgY3VycmVudF90cmFjZXIgdG8gbm9uZSIKKwkJCSIgYmVmb3JlIG1vZGlmeWluZyBidWZmZXIgc2l6ZVxuIik7CisJCWdvdG8gb3V0OworCX0KKworCWlmICh2YWwgPiBnbG9iYWxfdHJhY2UuZW50cmllcykgeworCQlsb25nIHBhZ2VzX3JlcXVlc3RlZDsKKwkJdW5zaWduZWQgbG9uZyBmcmVlYWJsZV9wYWdlczsKKworCQkvKiBtYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggbWVtb3J5IGJlZm9yZSBtYXBwaW5nICovCisJCXBhZ2VzX3JlcXVlc3RlZCA9CisJCQkodmFsICsgKEVOVFJJRVNfUEVSX1BBR0UtMSkpIC8gRU5UUklFU19QRVJfUEFHRTsKKworCQkvKiBhY2NvdW50IGZvciBlYWNoIGJ1ZmZlciAoYW5kIG1heF90cikgKi8KKwkJcGFnZXNfcmVxdWVzdGVkICo9IHRyYWNpbmdfbnJfYnVmZmVycyAqIDI7CisKKwkJLyogQ2hlY2sgZm9yIG92ZXJmbG93ICovCisJCWlmIChwYWdlc19yZXF1ZXN0ZWQgPCAwKSB7CisJCQljbnQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKworCQlmcmVlYWJsZV9wYWdlcyA9IGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5KCk7CisKKwkJLyogd2Ugb25seSBhbGxvdyB0byByZXF1ZXN0IDEvNCBvZiB1c2VhYmxlIG1lbW9yeSAqLworCQlpZiAocGFnZXNfcmVxdWVzdGVkID4KKwkJICAgICgoZnJlZWFibGVfcGFnZXMgKyB0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZCkgLyA0KSkgeworCQkJY250ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJd2hpbGUgKGdsb2JhbF90cmFjZS5lbnRyaWVzIDwgdmFsKSB7CisJCQlpZiAodHJhY2VfYWxsb2NfcGFnZSgpKSB7CisJCQkJY250ID0gLUVOT01FTTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJCS8qIGRvdWJsZSBjaGVjayB0aGF0IHdlIGRvbid0IGdvIG92ZXIgdGhlIGtub3duIHBhZ2VzICovCisJCQlpZiAodHJhY2luZ19wYWdlc19hbGxvY2F0ZWQgPiBwYWdlc19yZXF1ZXN0ZWQpCisJCQkJYnJlYWs7CisJCX0KKworCX0gZWxzZSB7CisJCS8qIGluY2x1ZGUgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHZhbCAoaW5jIG9mIHBhZ2UgZW50cmllcykgKi8KKwkJd2hpbGUgKGdsb2JhbF90cmFjZS5lbnRyaWVzID4gdmFsICsgKEVOVFJJRVNfUEVSX1BBR0UgLSAxKSkKKwkJCXRyYWNlX2ZyZWVfcGFnZSgpOworCX0KKworCS8qIGNoZWNrIGludGVncml0eSAqLworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpCisJCWNoZWNrX3BhZ2VzKGdsb2JhbF90cmFjZS5kYXRhW2ldKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCS8qIElmIGNoZWNrIHBhZ2VzIGZhaWxlZCwgcmV0dXJuIEVOT01FTSAqLworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQljbnQgPSAtRU5PTUVNOworIG91dDoKKwltYXhfdHIuZW50cmllcyA9IGdsb2JhbF90cmFjZS5lbnRyaWVzOworCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX21heF9sYXRfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX21heF9sYXRfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19tYXhfbGF0X3dyaXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19jdHJsX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19jdHJsX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfY3RybF93cml0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNldF90cmFjZXJfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX3NldF90cmFjZV9yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX3NldF90cmFjZV93cml0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfcGlwZV9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9waXBlLAorCS5wb2xsCQk9IHRyYWNpbmdfcG9sbF9waXBlLAorCS5yZWFkCQk9IHRyYWNpbmdfcmVhZF9waXBlLAorCS5yZWxlYXNlCT0gdHJhY2luZ19yZWxlYXNlX3BpcGUsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX2VudHJpZXNfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX2VudHJpZXNfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19lbnRyaWVzX3dyaXRlLAorfTsKKworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19yZWFkX2xvbmcoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwl1bnNpZ25lZCBsb25nICpwID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgcjsKKworCXIgPSBzcHJpbnRmKGJ1ZiwgIiVsZFxuIiwgKnApOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19yZWFkX2xvbmdfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX3JlYWRfbG9uZywKK307CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBkZW50cnkgKmRfdHJhY2VyOworCitzdHJ1Y3QgZGVudHJ5ICp0cmFjaW5nX2luaXRfZGVudHJ5KHZvaWQpCit7CisJc3RhdGljIGludCBvbmNlOworCisJaWYgKGRfdHJhY2VyKQorCQlyZXR1cm4gZF90cmFjZXI7CisKKwlkX3RyYWNlciA9IGRlYnVnZnNfY3JlYXRlX2RpcigidHJhY2luZyIsIE5VTEwpOworCisJaWYgKCFkX3RyYWNlciAmJiAhb25jZSkgeworCQlvbmNlID0gMTsKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzIGRpcmVjdG9yeSAndHJhY2luZydcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gZF90cmFjZXI7Cit9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisvKiBMZXQgc2VsZnRlc3QgaGF2ZSBhY2Nlc3MgdG8gc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgKi8KKyNpbmNsdWRlICJ0cmFjZV9zZWxmdGVzdC5jIgorI2VuZGlmCisKK3N0YXRpYyBfX2luaXQgdm9pZCB0cmFjZXJfaW5pdF9kZWJ1Z2ZzKHZvaWQpCit7CisJc3RydWN0IGRlbnRyeSAqZF90cmFjZXI7CisJc3RydWN0IGRlbnRyeSAqZW50cnk7CisKKwlkX3RyYWNlciA9IHRyYWNpbmdfaW5pdF9kZW50cnkoKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2luZ19lbmFibGVkIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZ0cmFjaW5nX2N0cmxfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjaW5nX2VuYWJsZWQnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiaXRlcl9jdHJsIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZ0cmFjaW5nX2l0ZXJfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdpdGVyX2N0cmwnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2luZ19jcHVtYXNrIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZ0cmFjaW5nX2NwdW1hc2tfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjaW5nX2NwdW1hc2snIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgibGF0ZW5jeV90cmFjZSIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19sdF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ2xhdGVuY3lfdHJhY2UnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2UiLCAwNDQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJmdsb2JhbF90cmFjZSwgJnRyYWNpbmdfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhdmFpbGFibGVfdHJhY2VycyIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmc2hvd190cmFjZXNfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJjdXJyZW50X3RyYWNlciIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmc2V0X3RyYWNlcl9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNlJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRyYWNpbmdfbWF4X2xhdGVuY3kiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJnRyYWNpbmdfbWF4X2xhdGVuY3ksCisJCQkJICAgICZ0cmFjaW5nX21heF9sYXRfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICIndHJhY2luZ19tYXhfbGF0ZW5jeScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjaW5nX3RocmVzaCIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmdHJhY2luZ190aHJlc2gsICZ0cmFjaW5nX21heF9sYXRfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICIndHJhY2luZ190aHJlYXNoJyBlbnRyeVxuIik7CisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJSRUFETUUiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfcmVhZG1lX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAnUkVBRE1FJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRyYWNlX3BpcGUiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfcGlwZV9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIid0cmFjaW5nX3RocmVhc2gnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2VfZW50cmllcyIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19lbnRyaWVzX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ3RyYWNpbmdfdGhyZWFzaCcgZW50cnlcbiIpOworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJkeW5fZnRyYWNlX3RvdGFsX2luZm8iLCAwNDQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJmZ0cmFjZV91cGRhdGVfdG90X2NudCwKKwkJCQkgICAgJnRyYWNpbmdfcmVhZF9sb25nX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ2R5bl9mdHJhY2VfdG90YWxfaW5mbycgZW50cnlcbiIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1NZU1BST0ZfVFJBQ0VSCisJaW5pdF90cmFjZXJfc3lzcHJvZl9kZWJ1Z2ZzKGRfdHJhY2VyKTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IHRyYWNlX2FsbG9jX3BhZ2Uodm9pZCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOworCUxJU1RfSEVBRChwYWdlcyk7CisJdm9pZCAqYXJyYXk7CisJdW5zaWduZWQgcGFnZXNfYWxsb2NhdGVkID0gMDsKKwlpbnQgaTsKKworCS8qIGZpcnN0IGFsbG9jYXRlIGEgcGFnZSBmb3IgZWFjaCBDUFUgKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWFycmF5ID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmIChhcnJheSA9PSBOVUxMKSB7CisJCQlwcmludGsoS0VSTl9FUlIgInRyYWNlcjogZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2UiCisJCQkgICAgICAgImZvciB0cmFjZSBidWZmZXIhXG4iKTsKKwkJCWdvdG8gZnJlZV9wYWdlczsKKwkJfQorCisJCXBhZ2VzX2FsbG9jYXRlZCsrOworCQlwYWdlID0gdmlydF90b19wYWdlKGFycmF5KTsKKwkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJnBhZ2VzKTsKKworLyogT25seSBhbGxvY2F0ZSBpZiB3ZSBhcmUgYWN0dWFsbHkgdXNpbmcgdGhlIG1heCB0cmFjZSAqLworI2lmZGVmIENPTkZJR19UUkFDRVJfTUFYX1RSQUNFCisJCWFycmF5ID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmIChhcnJheSA9PSBOVUxMKSB7CisJCQlwcmludGsoS0VSTl9FUlIgInRyYWNlcjogZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2UiCisJCQkgICAgICAgImZvciB0cmFjZSBidWZmZXIhXG4iKTsKKwkJCWdvdG8gZnJlZV9wYWdlczsKKwkJfQorCQlwYWdlc19hbGxvY2F0ZWQrKzsKKwkJcGFnZSA9IHZpcnRfdG9fcGFnZShhcnJheSk7CisJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZwYWdlcyk7CisjZW5kaWYKKwl9CisKKwkvKiBOb3cgdGhhdCB3ZSBzdWNjZXNzZnVsbHkgYWxsb2NhdGUgYSBwYWdlIHBlciBDUFUsIGFkZCB0aGVtICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV07CisJCXBhZ2UgPSBsaXN0X2VudHJ5KHBhZ2VzLm5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCQlsaXN0X2RlbF9pbml0KCZwYWdlLT5scnUpOworCQlsaXN0X2FkZF90YWlsKCZwYWdlLT5scnUsICZkYXRhLT50cmFjZV9wYWdlcyk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKworI2lmZGVmIENPTkZJR19UUkFDRVJfTUFYX1RSQUNFCisJCWRhdGEgPSBtYXhfdHIuZGF0YVtpXTsKKwkJcGFnZSA9IGxpc3RfZW50cnkocGFnZXMubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKwkJU2V0UGFnZUxSVShwYWdlKTsKKyNlbmRpZgorCX0KKwl0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZCArPSBwYWdlc19hbGxvY2F0ZWQ7CisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgKz0gRU5UUklFU19QRVJfUEFHRTsKKworCXJldHVybiAwOworCisgZnJlZV9wYWdlczoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLCAmcGFnZXMsIGxydSkgeworCQlsaXN0X2RlbF9pbml0KCZwYWdlLT5scnUpOworCQlfX2ZyZWVfcGFnZShwYWdlKTsKKwl9CisJcmV0dXJuIC1FTk9NRU07Cit9CisKK3N0YXRpYyBpbnQgdHJhY2VfZnJlZV9wYWdlKHZvaWQpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwOworCWludCBpOworCWludCByZXQgPSAwOworCisJLyogZnJlZSBvbmUgcGFnZSBmcm9tIGVhY2ggYnVmZmVyICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV07CisJCXAgPSBkYXRhLT50cmFjZV9wYWdlcy5uZXh0OworCQlpZiAocCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KKwkJCVdBUk5fT04oMSk7CisJCQl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwkJCXJldCA9IC0xOworCQkJYnJlYWs7CisJCX0KKwkJcGFnZSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKwkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7CisJCXRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkLS07CisJCXRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkLS07CisJCV9fZnJlZV9wYWdlKHBhZ2UpOworCisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisKKyNpZmRlZiBDT05GSUdfVFJBQ0VSX01BWF9UUkFDRQorCQlkYXRhID0gbWF4X3RyLmRhdGFbaV07CisJCXAgPSBkYXRhLT50cmFjZV9wYWdlcy5uZXh0OworCQlpZiAocCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KKwkJCVdBUk5fT04oMSk7CisJCQl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwkJCXJldCA9IC0xOworCQkJYnJlYWs7CisJCX0KKwkJcGFnZSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKwkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7CisJCV9fZnJlZV9wYWdlKHBhZ2UpOworCisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisjZW5kaWYKKwl9CisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgLT0gRU5UUklFU19QRVJfUEFHRTsKKworCXJldHVybiByZXQ7Cit9CisKK19faW5pdCBzdGF0aWMgaW50IHRyYWNlcl9hbGxvY19idWZmZXJzKHZvaWQpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl2b2lkICphcnJheTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlpbnQgcGFnZXMgPSAwOworCWludCByZXQgPSAtRU5PTUVNOworCWludCBpOworCisJLyogVE9ETzogbWFrZSB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaG90IHBsdWdnYWJsZSB3aXRoIENQVVMgKi8KKwl0cmFjaW5nX25yX2J1ZmZlcnMgPSBudW1fcG9zc2libGVfY3B1cygpOworCXRyYWNpbmdfYnVmZmVyX21hc2sgPSBjcHVfcG9zc2libGVfbWFwOworCisJLyogQWxsb2NhdGUgdGhlIGZpcnN0IHBhZ2UgZm9yIGFsbCBidWZmZXJzICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV0gPSAmcGVyX2NwdShnbG9iYWxfdHJhY2VfY3B1LCBpKTsKKwkJbWF4X3RyLmRhdGFbaV0gPSAmcGVyX2NwdShtYXhfZGF0YSwgaSk7CisKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX2J1ZmZlcnM7CisJCX0KKworCQkvKiBzZXQgdGhlIGFycmF5IHRvIHRoZSBsaXN0ICovCisJCUlOSVRfTElTVF9IRUFEKCZkYXRhLT50cmFjZV9wYWdlcyk7CisJCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoYXJyYXkpOworCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmZGF0YS0+dHJhY2VfcGFnZXMpOworCQkvKiB1c2UgdGhlIExSVSBmbGFnIHRvIGRpZmZlcmVudGlhdGUgdGhlIHR3byBidWZmZXJzICovCisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKworCQlkYXRhLT5sb2NrID0gKHJhd19zcGlubG9ja190KV9fUkFXX1NQSU5fTE9DS19VTkxPQ0tFRDsKKwkJbWF4X3RyLmRhdGFbaV0tPmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOworCisvKiBPbmx5IGFsbG9jYXRlIGlmIHdlIGFyZSBhY3R1YWxseSB1c2luZyB0aGUgbWF4IHRyYWNlICovCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX2J1ZmZlcnM7CisJCX0KKworCQlJTklUX0xJU1RfSEVBRCgmbWF4X3RyLmRhdGFbaV0tPnRyYWNlX3BhZ2VzKTsKKwkJcGFnZSA9IHZpcnRfdG9fcGFnZShhcnJheSk7CisJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZtYXhfdHIuZGF0YVtpXS0+dHJhY2VfcGFnZXMpOworCQlTZXRQYWdlTFJVKHBhZ2UpOworI2VuZGlmCisJfQorCisJLyoKKwkgKiBTaW5jZSB3ZSBhbGxvY2F0ZSBieSBvcmRlcnMgb2YgcGFnZXMsIHdlIG1heSBiZSBhYmxlIHRvCisJICogcm91bmQgdXAgYSBiaXQuCisJICovCisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgPSBFTlRSSUVTX1BFUl9QQUdFOworCXBhZ2VzKys7CisKKwl3aGlsZSAoZ2xvYmFsX3RyYWNlLmVudHJpZXMgPCB0cmFjZV9ucl9lbnRyaWVzKSB7CisJCWlmICh0cmFjZV9hbGxvY19wYWdlKCkpCisJCQlicmVhazsKKwkJcGFnZXMrKzsKKwl9CisJbWF4X3RyLmVudHJpZXMgPSBnbG9iYWxfdHJhY2UuZW50cmllczsKKworCXByX2luZm8oInRyYWNlcjogJWQgcGFnZXMgYWxsb2NhdGVkIGZvciAlbGQgZW50cmllcyBvZiAlbGQgYnl0ZXNcbiIsCisJCXBhZ2VzLCB0cmFjZV9ucl9lbnRyaWVzLCAobG9uZylUUkFDRV9FTlRSWV9TSVpFKTsKKwlwcl9pbmZvKCIgICBhY3R1YWwgZW50cmllcyAlbGRcbiIsIGdsb2JhbF90cmFjZS5lbnRyaWVzKTsKKworCXRyYWNlcl9pbml0X2RlYnVnZnMoKTsKKworCXRyYWNlX2luaXRfY21kbGluZXMoKTsKKworCXJlZ2lzdGVyX3RyYWNlcigmbm9fdHJhY2VyKTsKKwljdXJyZW50X3RyYWNlID0gJm5vX3RyYWNlcjsKKworCS8qIEFsbCBzZWVtcyBPSywgZW5hYmxlIHRyYWNpbmcgKi8KKwlnbG9iYWxfdHJhY2UuY3RybCA9IHRyYWNlcl9lbmFibGVkOworCXRyYWNpbmdfZGlzYWJsZWQgPSAwOworCisJcmV0dXJuIDA7CisKKyBmcmVlX2J1ZmZlcnM6CisJZm9yIChpLS0gOyBpID49IDA7IGktLSkgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgKnRtcDsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IGdsb2JhbF90cmFjZS5kYXRhW2ldOworCisJCWlmIChkYXRhKSB7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLAorCQkJCQkJICZkYXRhLT50cmFjZV9wYWdlcywgbHJ1KSB7CisJCQkJbGlzdF9kZWxfaW5pdCgmcGFnZS0+bHJ1KTsKKwkJCQlfX2ZyZWVfcGFnZShwYWdlKTsKKwkJCX0KKwkJfQorCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJZGF0YSA9IG1heF90ci5kYXRhW2ldOworCQlpZiAoZGF0YSkgeworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIHRtcCwKKwkJCQkJCSAmZGF0YS0+dHJhY2VfcGFnZXMsIGxydSkgeworCQkJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCQkJX19mcmVlX3BhZ2UocGFnZSk7CisJCQl9CisJCX0KKyNlbmRpZgorCX0KKwlyZXR1cm4gcmV0OworfQorZnNfaW5pdGNhbGwodHJhY2VyX2FsbG9jX2J1ZmZlcnMpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmggYi9rZXJuZWwvdHJhY2UvdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjlmODY3Ci0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlLmgKQEAgLTAsMCArMSwzMzkgQEAKKyNpZm5kZWYgX0xJTlVYX0tFUk5FTF9UUkFDRV9ICisjZGVmaW5lIF9MSU5VWF9LRVJORUxfVFJBQ0VfSAorCisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21taW90cmFjZS5oPgorCitlbnVtIHRyYWNlX3R5cGUgeworCV9fVFJBQ0VfRklSU1RfVFlQRSA9IDAsCisKKwlUUkFDRV9GTiwKKwlUUkFDRV9DVFgsCisJVFJBQ0VfV0FLRSwKKwlUUkFDRV9TVEFDSywKKwlUUkFDRV9TUEVDSUFMLAorCVRSQUNFX01NSU9fUlcsCisJVFJBQ0VfTU1JT19NQVAsCisKKwlfX1RSQUNFX0xBU1RfVFlQRQorfTsKKworLyoKKyAqIEZ1bmN0aW9uIHRyYWNlIGVudHJ5IC0gZnVuY3Rpb24gYWRkcmVzcyBhbmQgcGFyZW50IGZ1bmN0aW9uIGFkZHJlczoKKyAqLworc3RydWN0IGZ0cmFjZV9lbnRyeSB7CisJdW5zaWduZWQgbG9uZwkJaXA7CisJdW5zaWduZWQgbG9uZwkJcGFyZW50X2lwOworfTsKKworLyoKKyAqIENvbnRleHQgc3dpdGNoIHRyYWNlIGVudHJ5IC0gd2hpY2ggdGFzayAoYW5kIHByaW8pIHdlIHN3aXRjaGVkIGZyb20vdG86CisgKi8KK3N0cnVjdCBjdHhfc3dpdGNoX2VudHJ5IHsKKwl1bnNpZ25lZCBpbnQJCXByZXZfcGlkOworCXVuc2lnbmVkIGNoYXIJCXByZXZfcHJpbzsKKwl1bnNpZ25lZCBjaGFyCQlwcmV2X3N0YXRlOworCXVuc2lnbmVkIGludAkJbmV4dF9waWQ7CisJdW5zaWduZWQgY2hhcgkJbmV4dF9wcmlvOworCXVuc2lnbmVkIGNoYXIJCW5leHRfc3RhdGU7Cit9OworCisvKgorICogU3BlY2lhbCAoZnJlZS1mb3JtKSB0cmFjZSBlbnRyeToKKyAqLworc3RydWN0IHNwZWNpYWxfZW50cnkgeworCXVuc2lnbmVkIGxvbmcJCWFyZzE7CisJdW5zaWduZWQgbG9uZwkJYXJnMjsKKwl1bnNpZ25lZCBsb25nCQlhcmczOworfTsKKworLyoKKyAqIFN0YWNrLXRyYWNlIGVudHJ5OgorICovCisKKyNkZWZpbmUgRlRSQUNFX1NUQUNLX0VOVFJJRVMJOAorCitzdHJ1Y3Qgc3RhY2tfZW50cnkgeworCXVuc2lnbmVkIGxvbmcJCWNhbGxlcltGVFJBQ0VfU1RBQ0tfRU5UUklFU107Cit9OworCisvKgorICogVGhlIHRyYWNlIGVudHJ5IC0gdGhlIG1vc3QgYmFzaWMgdW5pdCBvZiB0cmFjaW5nLiBUaGlzIGlzIHdoYXQKKyAqIGlzIHByaW50ZWQgaW4gdGhlIGVuZCBhcyBhIHNpbmdsZSBsaW5lIGluIHRoZSB0cmFjZSBvdXRwdXQsIHN1Y2ggYXM6CisgKgorICogICAgIGJhc2gtMTU4MTYgWzAxXSAgIDIzNS4xOTc1ODU6IGlkbGVfY3B1IDwtIGlycV9lbnRlcgorICovCitzdHJ1Y3QgdHJhY2VfZW50cnkgeworCWNoYXIJCQl0eXBlOworCWNoYXIJCQljcHU7CisJY2hhcgkJCWZsYWdzOworCWNoYXIJCQlwcmVlbXB0X2NvdW50OworCWludAkJCXBpZDsKKwljeWNsZV90CQkJdDsKKwl1bmlvbiB7CisJCXN0cnVjdCBmdHJhY2VfZW50cnkJCWZuOworCQlzdHJ1Y3QgY3R4X3N3aXRjaF9lbnRyeQkJY3R4OworCQlzdHJ1Y3Qgc3BlY2lhbF9lbnRyeQkJc3BlY2lhbDsKKwkJc3RydWN0IHN0YWNrX2VudHJ5CQlzdGFjazsKKwkJc3RydWN0IG1taW90cmFjZV9ydwkJbW1pb3J3OworCQlzdHJ1Y3QgbW1pb3RyYWNlX21hcAkJbW1pb21hcDsKKwl9OworfTsKKworI2RlZmluZSBUUkFDRV9FTlRSWV9TSVpFCXNpemVvZihzdHJ1Y3QgdHJhY2VfZW50cnkpCisKKy8qCisgKiBUaGUgQ1BVIHRyYWNlIGFycmF5IC0gaXQgY29uc2lzdHMgb2YgdGhvdXNhbmRzIG9mIHRyYWNlIGVudHJpZXMKKyAqIHBsdXMgc29tZSBvdGhlciBkZXNjcmlwdG9yIGRhdGE6IChmb3IgZXhhbXBsZSB3aGljaCB0YXNrIHN0YXJ0ZWQKKyAqIHRoZSB0cmFjZSwgZXRjLikKKyAqLworc3RydWN0IHRyYWNlX2FycmF5X2NwdSB7CisJc3RydWN0IGxpc3RfaGVhZAl0cmFjZV9wYWdlczsKKwlhdG9taWNfdAkJZGlzYWJsZWQ7CisJcmF3X3NwaW5sb2NrX3QJCWxvY2s7CisJc3RydWN0IGxvY2tfY2xhc3Nfa2V5CWxvY2tfa2V5OworCisJLyogdGhlc2UgZmllbGRzIGdldCBjb3BpZWQgaW50byBtYXgtdHJhY2U6ICovCisJdW5zaWduZWQJCXRyYWNlX2hlYWRfaWR4OworCXVuc2lnbmVkCQl0cmFjZV90YWlsX2lkeDsKKwl2b2lkCQkJKnRyYWNlX2hlYWQ7IC8qIHByb2R1Y2VyICovCisJdm9pZAkJCSp0cmFjZV90YWlsOyAvKiBjb25zdW1lciAqLworCXVuc2lnbmVkIGxvbmcJCXRyYWNlX2lkeDsKKwl1bnNpZ25lZCBsb25nCQlvdmVycnVuOworCXVuc2lnbmVkIGxvbmcJCXNhdmVkX2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZwkJY3JpdGljYWxfc3RhcnQ7CisJdW5zaWduZWQgbG9uZwkJY3JpdGljYWxfZW5kOworCXVuc2lnbmVkIGxvbmcJCWNyaXRpY2FsX3NlcXVlbmNlOworCXVuc2lnbmVkIGxvbmcJCW5pY2U7CisJdW5zaWduZWQgbG9uZwkJcG9saWN5OworCXVuc2lnbmVkIGxvbmcJCXJ0X3ByaW9yaXR5OworCWN5Y2xlX3QJCQlwcmVlbXB0X3RpbWVzdGFtcDsKKwlwaWRfdAkJCXBpZDsKKwl1aWRfdAkJCXVpZDsKKwljaGFyCQkJY29tbVtUQVNLX0NPTU1fTEVOXTsKK307CisKK3N0cnVjdCB0cmFjZV9pdGVyYXRvcjsKKworLyoKKyAqIFRoZSB0cmFjZSBhcnJheSAtIGFuIGFycmF5IG9mIHBlci1DUFUgdHJhY2UgYXJyYXlzLiBUaGlzIGlzIHRoZQorICogaGlnaGVzdCBsZXZlbCBkYXRhIHN0cnVjdHVyZSB0aGF0IGluZGl2aWR1YWwgdHJhY2VycyBkZWFsIHdpdGguCisgKiBUaGV5IGhhdmUgb24vb2ZmIHN0YXRlIGFzIHdlbGw6CisgKi8KK3N0cnVjdCB0cmFjZV9hcnJheSB7CisJdW5zaWduZWQgbG9uZwkJZW50cmllczsKKwlsb25nCQkJY3RybDsKKwlpbnQJCQljcHU7CisJY3ljbGVfdAkJCXRpbWVfc3RhcnQ7CisJc3RydWN0IHRhc2tfc3RydWN0CSp3YWl0ZXI7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdQkqZGF0YVtOUl9DUFVTXTsKK307CisKKy8qCisgKiBBIHNwZWNpZmljIHRyYWNlciwgcmVwcmVzZW50ZWQgYnkgbWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYSB0cmFjZSBhcnJheToKKyAqLworc3RydWN0IHRyYWNlciB7CisJY29uc3QgY2hhcgkJKm5hbWU7CisJdm9pZAkJCSgqaW5pdCkoc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisJdm9pZAkJCSgqcmVzZXQpKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworCXZvaWQJCQkoKm9wZW4pKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJdm9pZAkJCSgqcGlwZV9vcGVuKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKmNsb3NlKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKnN0YXJ0KShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKnN0b3ApKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJc3NpemVfdAkJCSgqcmVhZCkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLAorCQkJCQlzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCQkJCXNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcyk7CisJdm9pZAkJCSgqY3RybF91cGRhdGUpKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2lmZGVmIENPTkZJR19GVFJBQ0VfU1RBUlRVUF9URVNUCisJaW50CQkJKCpzZWxmdGVzdCkoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorCWludAkJCSgqcHJpbnRfbGluZSkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKTsKKwlzdHJ1Y3QgdHJhY2VyCQkqbmV4dDsKKwlpbnQJCQlwcmludF9tYXg7Cit9OworCitzdHJ1Y3QgdHJhY2Vfc2VxIHsKKwl1bnNpZ25lZCBjaGFyCQlidWZmZXJbUEFHRV9TSVpFXTsKKwl1bnNpZ25lZCBpbnQJCWxlbjsKKwl1bnNpZ25lZCBpbnQJCXJlYWRwb3M7Cit9OworCisvKgorICogVHJhY2UgaXRlcmF0b3IgLSB1c2VkIGJ5IHByaW50b3V0IHJvdXRpbmVzIHdobyBwcmVzZW50IHRyYWNlCisgKiByZXN1bHRzIHRvIHVzZXJzIGFuZCB3aGljaCByb3V0aW5lcyBtaWdodCBzbGVlcCwgZXRjOgorICovCitzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgeworCXN0cnVjdCB0cmFjZV9hcnJheQkqdHI7CisJc3RydWN0IHRyYWNlcgkJKnRyYWNlOworCXZvaWQJCQkqcHJpdmF0ZTsKKwlsb25nCQkJbGFzdF9vdmVycnVuW05SX0NQVVNdOworCWxvbmcJCQlvdmVycnVuW05SX0NQVVNdOworCisJLyogVGhlIGJlbG93IGlzIHplcm9lZCBvdXQgaW4gcGlwZV9yZWFkICovCisJc3RydWN0IHRyYWNlX3NlcQlzZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5CSplbnQ7CisJaW50CQkJY3B1OworCisJc3RydWN0IHRyYWNlX2VudHJ5CSpwcmV2X2VudDsKKwlpbnQJCQlwcmV2X2NwdTsKKworCXVuc2lnbmVkIGxvbmcJCWl0ZXJfZmxhZ3M7CisJbG9mZl90CQkJcG9zOworCXVuc2lnbmVkIGxvbmcJCW5leHRfaWR4W05SX0NQVVNdOworCXN0cnVjdCBsaXN0X2hlYWQJKm5leHRfcGFnZVtOUl9DUFVTXTsKKwl1bnNpZ25lZAkJbmV4dF9wYWdlX2lkeFtOUl9DUFVTXTsKKwlsb25nCQkJaWR4OworfTsKKwordm9pZCB0cmFjaW5nX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpOworaW50IHRyYWNpbmdfb3Blbl9nZW5lcmljKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0cnVjdCBkZW50cnkgKnRyYWNpbmdfaW5pdF9kZW50cnkodm9pZCk7Cit2b2lkIGluaXRfdHJhY2VyX3N5c3Byb2ZfZGVidWdmcyhzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcik7CisKK3ZvaWQgZnRyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCSAgICB1bnNpZ25lZCBsb25nIGlwLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwordm9pZCB0cmFjaW5nX3NjaGVkX3N3aXRjaF90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCwKKwkJCQl1bnNpZ25lZCBsb25nIGZsYWdzKTsKK3ZvaWQgdHJhY2luZ19yZWNvcmRfY21kbGluZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CisKK3ZvaWQgdHJhY2luZ19zY2hlZF93YWtldXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqd2FrZWUsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpjdXIsCisJCQkJdW5zaWduZWQgbG9uZyBmbGFncyk7Cit2b2lkIHRyYWNlX3NwZWNpYWwoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJICAgdW5zaWduZWQgbG9uZyBhcmcxLAorCQkgICB1bnNpZ25lZCBsb25nIGFyZzIsCisJCSAgIHVuc2lnbmVkIGxvbmcgYXJnMyk7Cit2b2lkIHRyYWNlX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCSAgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkgICAgdW5zaWduZWQgbG9uZyBpcCwKKwkJICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLAorCQkgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CisKK3ZvaWQgdHJhY2luZ19zdGFydF9jbWRsaW5lX3JlY29yZCh2b2lkKTsKK3ZvaWQgdHJhY2luZ19zdG9wX2NtZGxpbmVfcmVjb3JkKHZvaWQpOworaW50IHJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKTsKK3ZvaWQgdW5yZWdpc3Rlcl90cmFjZXIoc3RydWN0IHRyYWNlciAqdHlwZSk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIG5zZWNzX3RvX3VzZWNzKHVuc2lnbmVkIGxvbmcgbnNlY3MpOworCitleHRlcm4gdW5zaWduZWQgbG9uZyB0cmFjaW5nX21heF9sYXRlbmN5OworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdHJhY2luZ190aHJlc2g7CisKK3ZvaWQgdXBkYXRlX21heF90cihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSk7Cit2b2lkIHVwZGF0ZV9tYXhfdHJfc2luZ2xlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY3B1KTsKKworZXh0ZXJuIGN5Y2xlX3QgZnRyYWNlX25vdyhpbnQgY3B1KTsKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKK3ZvaWQgdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSh2b2lkKTsKK3ZvaWQgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKHZvaWQpOworI2Vsc2UKKyMgZGVmaW5lIHRyYWNpbmdfc3RhcnRfZnVuY3Rpb25fdHJhY2UoKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKCkJCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUgordHlwZWRlZiB2b2lkCisoKnRyYWNlcl9zd2l0Y2hfZnVuY190KSh2b2lkICpwcml2YXRlLAorCQkJdm9pZCAqX19ycSwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCk7CisKK3N0cnVjdCB0cmFjZXJfc3dpdGNoX29wcyB7CisJdHJhY2VyX3N3aXRjaF9mdW5jX3QJCWZ1bmM7CisJdm9pZAkJCQkqcHJpdmF0ZTsKKwlzdHJ1Y3QgdHJhY2VyX3N3aXRjaF9vcHMJKm5leHQ7Cit9OworCisjZW5kaWYgLyogQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitleHRlcm4gdW5zaWduZWQgbG9uZyBmdHJhY2VfdXBkYXRlX3RvdF9jbnQ7CisjZGVmaW5lIERZTl9GVFJBQ0VfVEVTVF9OQU1FIHRyYWNlX3NlbGZ0ZXN0X2R5bmFtaWNfdGVzdF9mdW5jCitleHRlcm4gaW50IERZTl9GVFJBQ0VfVEVTVF9OQU1FKHZvaWQpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFCitleHRlcm4gdm9pZCBfX3RyYWNlX21taW90cmFjZV9ydyhzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJc3RydWN0IG1taW90cmFjZV9ydyAqcncpOworZXh0ZXJuIHZvaWQgX190cmFjZV9tbWlvdHJhY2VfbWFwKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQlzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqbWFwKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZnVuY3Rpb24oc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfaXJxc29mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19QUkVFTVBUX1RSQUNFUgorZXh0ZXJuIGludCB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19JUlFTT0ZGX1RSQUNFUikgJiYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfcHJlZW1wdGlycXNvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCQkgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU0NIRURfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfd2FrZXVwKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfc2NoZWRfc3dpdGNoKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU1lTUFJPRl9UUkFDRVIKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zeXNwcm9mKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVCAqLworCitleHRlcm4gdm9pZCAqaGVhZF9wYWdlKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpOworZXh0ZXJuIGludCB0cmFjZV9zZXFfcHJpbnRmKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK2V4dGVybiBzc2l6ZV90IHRyYWNlX3NlcV90b191c2VyKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNoYXIgX191c2VyICp1YnVmLAorCQkJCSBzaXplX3QgY250KTsKK2V4dGVybiBsb25nIG5zMnVzZWNzKGN5Y2xlX3QgbnNlYyk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIHRyYWNlX2ZsYWdzOworCisvKgorICogdHJhY2VfaXRlcmF0b3JfZmxhZ3MgaXMgYW4gZW51bWVyYXRpb24gdGhhdCBkZWZpbmVzIGJpdAorICogcG9zaXRpb25zIGludG8gdHJhY2VfZmxhZ3MgdGhhdCBjb250cm9scyB0aGUgb3V0cHV0LgorICoKKyAqIE5PVEU6IFRoZXNlIGJpdHMgbXVzdCBtYXRjaCB0aGUgdHJhY2Vfb3B0aW9ucyBhcnJheSBpbgorICogICAgICAgdHJhY2UuYy4KKyAqLworZW51bSB0cmFjZV9pdGVyYXRvcl9mbGFncyB7CisJVFJBQ0VfSVRFUl9QUklOVF9QQVJFTlQJCT0gMHgwMSwKKwlUUkFDRV9JVEVSX1NZTV9PRkZTRVQJCT0gMHgwMiwKKwlUUkFDRV9JVEVSX1NZTV9BRERSCQk9IDB4MDQsCisJVFJBQ0VfSVRFUl9WRVJCT1NFCQk9IDB4MDgsCisJVFJBQ0VfSVRFUl9SQVcJCQk9IDB4MTAsCisJVFJBQ0VfSVRFUl9IRVgJCQk9IDB4MjAsCisJVFJBQ0VfSVRFUl9CSU4JCQk9IDB4NDAsCisJVFJBQ0VfSVRFUl9CTE9DSwkJPSAweDgwLAorCVRSQUNFX0lURVJfU1RBQ0tUUkFDRQkJPSAweDEwMCwKKwlUUkFDRV9JVEVSX1NDSEVEX1RSRUUJCT0gMHgyMDAsCit9OworCisjZW5kaWYgLyogX0xJTlVYX0tFUk5FTF9UUkFDRV9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfZnVuY3Rpb25zLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2VfZnVuY3Rpb25zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEyMTQ0OAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9mdW5jdGlvbnMuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogcmluZyBidWZmZXIgYmFzZWQgZnVuY3Rpb24gdHJhY2VyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogQmFzZWQgb24gY29kZSBmcm9tIHRoZSBsYXRlbmN5X3RyYWNlciwgdGhhdCBpczoKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW5nbyBNb2xuYXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgV2lsbGlhbSBMZWUgSXJ3aW4gSUlJCisgKi8KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitzdGF0aWMgdm9pZCBmdW5jdGlvbl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfZnVuY3Rpb25fdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0ci0+Y3B1ID0gZ2V0X2NwdSgpOworCWZ1bmN0aW9uX3Jlc2V0KHRyKTsKKwlwdXRfY3B1KCk7CisKKwl0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKCk7CisJdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSgpOworfQorCitzdGF0aWMgdm9pZCBzdG9wX2Z1bmN0aW9uX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKCk7CisJdHJhY2luZ19zdG9wX2NtZGxpbmVfcmVjb3JkKCk7Cit9CisKK3N0YXRpYyB2b2lkIGZ1bmN0aW9uX3RyYWNlX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X2Z1bmN0aW9uX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHZvaWQgZnVuY3Rpb25fdHJhY2VfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0b3BfZnVuY3Rpb25fdHJhY2UodHIpOworfQorCitzdGF0aWMgdm9pZCBmdW5jdGlvbl90cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfZnVuY3Rpb25fdHJhY2UodHIpOworCWVsc2UKKwkJc3RvcF9mdW5jdGlvbl90cmFjZSh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIGZ1bmN0aW9uX3RyYWNlIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCSAgICAgPSAiZnRyYWNlIiwKKwkuaW5pdAkgICAgID0gZnVuY3Rpb25fdHJhY2VfaW5pdCwKKwkucmVzZXQJICAgICA9IGZ1bmN0aW9uX3RyYWNlX3Jlc2V0LAorCS5jdHJsX3VwZGF0ZSA9IGZ1bmN0aW9uX3RyYWNlX2N0cmxfdXBkYXRlLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2Z1bmN0aW9uLAorI2VuZGlmCit9OworCitzdGF0aWMgX19pbml0IGludCBpbml0X2Z1bmN0aW9uX3RyYWNlKHZvaWQpCit7CisJcmV0dXJuIHJlZ2lzdGVyX3RyYWNlcigmZnVuY3Rpb25fdHJhY2UpOworfQorCitkZXZpY2VfaW5pdGNhbGwoaW5pdF9mdW5jdGlvbl90cmFjZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfaXJxc29mZi5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjFkNmZlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpAQCAtMCwwICsxLDQ4NiBAQAorLyoKKyAqIHRyYWNlIGlycXMgb2ZmIGNyaXRpY2FsbCB0aW1pbmdzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogRnJvbSBjb2RlIGluIHRoZSBsYXRlbmN5X3RyYWNlciwgdGhhdCBpczoKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW5nbyBNb2xuYXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgV2lsbGlhbSBMZWUgSXJ3aW4gSUlJCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJCSppcnFzb2ZmX3RyYWNlIF9fcmVhZF9tb3N0bHk7CitzdGF0aWMgaW50CQkJCXRyYWNlcl9lbmFibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIHRyYWNpbmdfY3B1KTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhtYXhfdHJhY2VfbG9jayk7CisKK2VudW0geworCVRSQUNFUl9JUlFTX09GRgkJPSAoMSA8PCAxKSwKKwlUUkFDRVJfUFJFRU1QVF9PRkYJPSAoMSA8PCAyKSwKK307CisKK3N0YXRpYyBpbnQgdHJhY2VfdHlwZSBfX3JlYWRfbW9zdGx5OworCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitzdGF0aWMgaW5saW5lIGludAorcHJlZW1wdF90cmFjZSh2b2lkKQoreworCXJldHVybiAoKHRyYWNlX3R5cGUgJiBUUkFDRVJfUFJFRU1QVF9PRkYpICYmIHByZWVtcHRfY291bnQoKSk7Cit9CisjZWxzZQorIyBkZWZpbmUgcHJlZW1wdF90cmFjZSgpICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfSVJRU09GRl9UUkFDRVIKK3N0YXRpYyBpbmxpbmUgaW50CitpcnFfdHJhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKCh0cmFjZV90eXBlICYgVFJBQ0VSX0lSUVNfT0ZGKSAmJgorCQlpcnFzX2Rpc2FibGVkKCkpOworfQorI2Vsc2UKKyMgZGVmaW5lIGlycV90cmFjZSgpICgwKQorI2VuZGlmCisKKy8qCisgKiBTZXF1ZW5jZSBjb3VudCAtIHdlIHJlY29yZCBpdCB3aGVuIHN0YXJ0aW5nIGEgbWVhc3VyZW1lbnQgYW5kCisgKiBza2lwIHRoZSBsYXRlbmN5IGlmIHRoZSBzZXF1ZW5jZSBoYXMgY2hhbmdlZCAtIHNvbWUgb3RoZXIgc2VjdGlvbgorICogZGlkIGEgbWF4aW11bSBhbmQgY291bGQgZGlzdHVyYiBvdXIgbWVhc3VyZW1lbnQgd2l0aCBzZXJpYWwgY29uc29sZQorICogcHJpbnRvdXRzLCBldGMuIFRydWx5IGNvaW5jaWRpbmcgbWF4aW11bSBsYXRlbmNpZXMgc2hvdWxkIGJlIHJhcmUKKyAqIGFuZCB3aGF0IGhhcHBlbnMgdG9nZXRoZXIgaGFwcGVucyBzZXBhcmF0ZWx5IGFzIHdlbGwsIHNvIHRoaXMgZG9lc250CisgKiBkZWNyZWFzZSB0aGUgdmFsaWRpdHkgb2YgdGhlIG1heGltdW0gZm91bmQ6CisgKi8KK3N0YXRpYyBfX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcAl1bnNpZ25lZCBsb25nIG1heF9zZXF1ZW5jZTsKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKy8qCisgKiBpcnFzb2ZmIHVzZXMgaXRzIG93biB0cmFjZXIgZnVuY3Rpb24gdG8ga2VlcCB0aGUgb3ZlcmhlYWQgZG93bjoKKyAqLworc3RhdGljIHZvaWQKK2lycXNvZmZfdHJhY2VyX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCS8qCisJICogRG9lcyBub3QgbWF0dGVyIGlmIHdlIHByZWVtcHQuIFdlIHRlc3QgdGhlIGZsYWdzCisJICogYWZ0ZXJ3YXJkLCB0byBzZWUgaWYgaXJxcyBhcmUgZGlzYWJsZWQgb3Igbm90LgorCSAqIElmIHdlIHByZWVtcHQgYW5kIGdldCBhIGZhbHNlIHBvc2l0aXZlLCB0aGUgZmxhZ3MKKwkgKiB0ZXN0IHdpbGwgZmFpbC4KKwkgKi8KKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWlmIChsaWtlbHkoIXBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkpKQorCQlyZXR1cm47CisKKwlsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsKKwkvKiBzbGlnaHQgY2hhbmNlIHRvIGdldCBhIGZhbHNlIHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1ICovCisJaWYgKCFpcnFzX2Rpc2FibGVkX2ZsYWdzKGZsYWdzKSkKKwkJcmV0dXJuOworCisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCisJaWYgKGxpa2VseShkaXNhYmxlZCA9PSAxKSkKKwkJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKK30KKworc3RhdGljIHN0cnVjdCBmdHJhY2Vfb3BzIHRyYWNlX29wcyBfX3JlYWRfbW9zdGx5ID0KK3sKKwkuZnVuYyA9IGlycXNvZmZfdHJhY2VyX2NhbGwsCit9OworI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworLyoKKyAqIFNob3VsZCB0aGlzIG5ldyBsYXRlbmN5IGJlIHJlcG9ydGVkL3JlY29yZGVkPworICovCitzdGF0aWMgaW50IHJlcG9ydF9sYXRlbmN5KGN5Y2xlX3QgZGVsdGEpCit7CisJaWYgKHRyYWNpbmdfdGhyZXNoKSB7CisJCWlmIChkZWx0YSA8IHRyYWNpbmdfdGhyZXNoKQorCQkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJaWYgKGRlbHRhIDw9IHRyYWNpbmdfbWF4X2xhdGVuY3kpCisJCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19jcml0aWNhbF90aW1pbmcoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJICAgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsCisJCSAgICAgIGludCBjcHUpCit7CisJdW5zaWduZWQgbG9uZyBsYXRlbmN5LCB0MCwgdDE7CisJY3ljbGVfdCBUMCwgVDEsIGRlbHRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkvKgorCSAqIHVzZWNzIGNvbnZlcnNpb24gaXMgc2xvdyBzbyB3ZSB0cnkgdG8gZGVsYXkgdGhlIGNvbnZlcnNpb24KKwkgKiBhcyBsb25nIGFzIHBvc3NpYmxlOgorCSAqLworCVQwID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisJVDEgPSBmdHJhY2Vfbm93KGNwdSk7CisJZGVsdGEgPSBUMS1UMDsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJaWYgKCFyZXBvcnRfbGF0ZW5jeShkZWx0YSkpCisJCWdvdG8gb3V0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJm1heF90cmFjZV9sb2NrLCBmbGFncyk7CisKKwkvKiBjaGVjayBpZiB3ZSBhcmUgc3RpbGwgdGhlIG1heCBsYXRlbmN5ICovCisJaWYgKCFyZXBvcnRfbGF0ZW5jeShkZWx0YSkpCisJCWdvdG8gb3V0X3VubG9jazsKKworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBDQUxMRVJfQUREUjAsIHBhcmVudF9pcCwgZmxhZ3MpOworCisJbGF0ZW5jeSA9IG5zZWNzX3RvX3VzZWNzKGRlbHRhKTsKKworCWlmIChkYXRhLT5jcml0aWNhbF9zZXF1ZW5jZSAhPSBtYXhfc2VxdWVuY2UpCisJCWdvdG8gb3V0X3VubG9jazsKKworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSBkZWx0YTsKKwl0MCA9IG5zZWNzX3RvX3VzZWNzKFQwKTsKKwl0MSA9IG5zZWNzX3RvX3VzZWNzKFQxKTsKKworCWRhdGEtPmNyaXRpY2FsX2VuZCA9IHBhcmVudF9pcDsKKworCXVwZGF0ZV9tYXhfdHJfc2luZ2xlKHRyLCBjdXJyZW50LCBjcHUpOworCisJbWF4X3NlcXVlbmNlKys7CisKK291dF91bmxvY2s6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWF4X3RyYWNlX2xvY2ssIGZsYWdzKTsKKworb3V0OgorCWRhdGEtPmNyaXRpY2FsX3NlcXVlbmNlID0gbWF4X3NlcXVlbmNlOworCWRhdGEtPnByZWVtcHRfdGltZXN0YW1wID0gZnRyYWNlX25vdyhjcHUpOworCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIENBTExFUl9BRERSMCwgcGFyZW50X2lwLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RhcnRfY3JpdGljYWxfdGltaW5nKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCWludCBjcHU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaWYgKGxpa2VseSghdHJhY2VyX2VuYWJsZWQpKQorCQlyZXR1cm47CisKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJaWYgKHBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkpCisJCXJldHVybjsKKworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCisJaWYgKHVubGlrZWx5KCFkYXRhKSB8fCBhdG9taWNfcmVhZCgmZGF0YS0+ZGlzYWJsZWQpKQorCQlyZXR1cm47CisKKwlhdG9taWNfaW5jKCZkYXRhLT5kaXNhYmxlZCk7CisKKwlkYXRhLT5jcml0aWNhbF9zZXF1ZW5jZSA9IG1heF9zZXF1ZW5jZTsKKwlkYXRhLT5wcmVlbXB0X3RpbWVzdGFtcCA9IGZ0cmFjZV9ub3coY3B1KTsKKwlkYXRhLT5jcml0aWNhbF9zdGFydCA9IHBhcmVudF9pcCA/IDogaXA7CisJdHJhY2luZ19yZXNldChkYXRhKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworCXBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkgPSAxOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3N0b3BfY3JpdGljYWxfdGltaW5nKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCWludCBjcHU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwkvKiBBbHdheXMgY2xlYXIgdGhlIHRyYWNpbmcgY3B1IG9uIHN0b3BwaW5nIHRoZSB0cmFjZSAqLworCWlmICh1bmxpa2VseShwZXJfY3B1KHRyYWNpbmdfY3B1LCBjcHUpKSkKKwkJcGVyX2NwdSh0cmFjaW5nX2NwdSwgY3B1KSA9IDA7CisJZWxzZQorCQlyZXR1cm47CisKKwlpZiAoIXRyYWNlcl9lbmFibGVkKQorCQlyZXR1cm47CisKKwlkYXRhID0gdHItPmRhdGFbY3B1XTsKKworCWlmICh1bmxpa2VseSghZGF0YSkgfHwgdW5saWtlbHkoIWhlYWRfcGFnZShkYXRhKSkgfHwKKwkgICAgIWRhdGEtPmNyaXRpY2FsX3N0YXJ0IHx8IGF0b21pY19yZWFkKCZkYXRhLT5kaXNhYmxlZCkpCisJCXJldHVybjsKKworCWF0b21pY19pbmMoJmRhdGEtPmRpc2FibGVkKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisJY2hlY2tfY3JpdGljYWxfdGltaW5nKHRyLCBkYXRhLCBwYXJlbnRfaXAgPyA6IGlwLCBjcHUpOworCWRhdGEtPmNyaXRpY2FsX3N0YXJ0ID0gMDsKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7Cit9CisKKy8qIHN0YXJ0IGFuZCBzdG9wIGNyaXRpY2FsIHRpbWluZ3MgdXNlZCB0byBmb3Igc3RvcHBhZ2UgKGluIGlkbGUpICovCit2b2lkIHN0YXJ0X2NyaXRpY2FsX3RpbWluZ3Modm9pZCkKK3sKKwlpZiAocHJlZW1wdF90cmFjZSgpIHx8IGlycV90cmFjZSgpKQorCQlzdGFydF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBDQUxMRVJfQUREUjEpOworfQorCit2b2lkIHN0b3BfY3JpdGljYWxfdGltaW5ncyh2b2lkKQoreworCWlmIChwcmVlbXB0X3RyYWNlKCkgfHwgaXJxX3RyYWNlKCkpCisJCXN0b3BfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgQ0FMTEVSX0FERFIxKTsKK30KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorI2lmZGVmIENPTkZJR19QUk9WRV9MT0NLSU5HCit2b2lkIHRpbWVfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSkKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoYTAsIGExKTsKK30KKwordm9pZCB0aW1lX2hhcmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKQoreworCWlmICghcHJlZW1wdF90cmFjZSgpICYmIGlycV90cmFjZSgpKQorCQlzdGFydF9jcml0aWNhbF90aW1pbmcoYTAsIGExKTsKK30KKworI2Vsc2UgLyogIUNPTkZJR19QUk9WRV9MT0NLSU5HICovCisKKy8qCisgKiBTdHViczoKKyAqLworCit2b2lkIGVhcmx5X2Jvb3RfaXJxc19vZmYodm9pZCkKK3sKK30KKwordm9pZCBlYXJseV9ib290X2lycXNfb24odm9pZCkKK3sKK30KKwordm9pZCB0cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKQoreworfQorCit2b2lkIHRyYWNlX3NvZnRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKQoreworfQorCitpbmxpbmUgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQoreworfQorCisvKgorICogV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBoYXJkaXJxIG9uL29mZiBldmVudHM6CisgKi8KK3ZvaWQgdHJhY2VfaGFyZGlycXNfb24odm9pZCkKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBDQUxMRVJfQUREUjEpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbik7CisKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmKHZvaWQpCit7CisJaWYgKCFwcmVlbXB0X3RyYWNlKCkgJiYgaXJxX3RyYWNlKCkpCisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZyhDQUxMRVJfQUREUjAsIENBTExFUl9BRERSMSk7Cit9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZik7CisKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKHVuc2lnbmVkIGxvbmcgY2FsbGVyX2FkZHIpCit7CisJaWYgKCFwcmVlbXB0X3RyYWNlKCkgJiYgaXJxX3RyYWNlKCkpCisJCXN0b3BfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgY2FsbGVyX2FkZHIpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIpOworCit2b2lkIHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIodW5zaWduZWQgbG9uZyBjYWxsZXJfYWRkcikKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RhcnRfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgY2FsbGVyX2FkZHIpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKTsKKworI2VuZGlmIC8qIENPTkZJR19QUk9WRV9MT0NLSU5HICovCisjZW5kaWYgLyogIENPTkZJR19JUlFTT0ZGX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCit2b2lkIHRyYWNlX3ByZWVtcHRfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSkKK3sKKwlzdG9wX2NyaXRpY2FsX3RpbWluZyhhMCwgYTEpOworfQorCit2b2lkIHRyYWNlX3ByZWVtcHRfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpCit7CisJc3RhcnRfY3JpdGljYWxfdGltaW5nKGEwLCBhMSk7Cit9CisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfVFJBQ0VSICovCisKK3N0YXRpYyB2b2lkIHN0YXJ0X2lycXNvZmZfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCXRyYWNlcl9lbmFibGVkID0gMTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9pcnFzb2ZmX3RyYWNlcihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXRyYWNlcl9lbmFibGVkID0gMDsKKwl1bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbigmdHJhY2Vfb3BzKTsKK30KKworc3RhdGljIHZvaWQgX19pcnFzb2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaXJxc29mZl90cmFjZSA9IHRyOworCS8qIG1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFjZXIgaXMgdmlzaWJsZSAqLworCXNtcF93bWIoKTsKKworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfaXJxc29mZl90cmFjZXIodHIpOworfQorCitzdGF0aWMgdm9pZCBpcnFzb2ZmX3RyYWNlcl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9pcnFzb2ZmX3RyYWNlcih0cik7Cit9CisKK3N0YXRpYyB2b2lkIGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9pcnFzb2ZmX3RyYWNlcih0cik7CisJZWxzZQorCQlzdG9wX2lycXNvZmZfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfb3BlbihzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RvcF9pcnFzb2ZmX3RyYWNlcihpdGVyLT50cik7Cit9CisKK3N0YXRpYyB2b2lkIGlycXNvZmZfdHJhY2VyX2Nsb3NlKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpZiAoaXRlci0+dHItPmN0cmwpCisJCXN0YXJ0X2lycXNvZmZfdHJhY2VyKGl0ZXItPnRyKTsKK30KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXRyYWNlX3R5cGUgPSBUUkFDRVJfSVJRU19PRkY7CisKKwlfX2lycXNvZmZfdHJhY2VyX2luaXQodHIpOworfQorc3RhdGljIHN0cnVjdCB0cmFjZXIgaXJxc29mZl90cmFjZXIgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gImlycXNvZmYiLAorCS5pbml0CQk9IGlycXNvZmZfdHJhY2VyX2luaXQsCisJLnJlc2V0CQk9IGlycXNvZmZfdHJhY2VyX3Jlc2V0LAorCS5vcGVuCQk9IGlycXNvZmZfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IGlycXNvZmZfdHJhY2VyX2Nsb3NlLAorCS5jdHJsX3VwZGF0ZQk9IGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlLAorCS5wcmludF9tYXgJPSAxLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2lycXNvZmYsCisjZW5kaWYKK307CisjIGRlZmluZSByZWdpc3Rlcl9pcnFzb2ZmKHRyYWNlKSByZWdpc3Rlcl90cmFjZXIoJnRyYWNlKQorI2Vsc2UKKyMgZGVmaW5lIHJlZ2lzdGVyX2lycXNvZmYodHJhY2UpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitzdGF0aWMgdm9pZCBwcmVlbXB0b2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VfdHlwZSA9IFRSQUNFUl9QUkVFTVBUX09GRjsKKworCV9faXJxc29mZl90cmFjZXJfaW5pdCh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHByZWVtcHRvZmZfdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJwcmVlbXB0b2ZmIiwKKwkuaW5pdAkJPSBwcmVlbXB0b2ZmX3RyYWNlcl9pbml0LAorCS5yZXNldAkJPSBpcnFzb2ZmX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSBpcnFzb2ZmX3RyYWNlcl9vcGVuLAorCS5jbG9zZQkJPSBpcnFzb2ZmX3RyYWNlcl9jbG9zZSwKKwkuY3RybF91cGRhdGUJPSBpcnFzb2ZmX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9wcmVlbXB0b2ZmLAorI2VuZGlmCit9OworIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdG9mZih0cmFjZSkgcmVnaXN0ZXJfdHJhY2VyKCZ0cmFjZSkKKyNlbHNlCisjIGRlZmluZSByZWdpc3Rlcl9wcmVlbXB0b2ZmKHRyYWNlKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0lSUVNPRkZfVFJBQ0VSKSAmJiBcCisJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCisKK3N0YXRpYyB2b2lkIHByZWVtcHRpcnFzb2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VfdHlwZSA9IFRSQUNFUl9JUlFTX09GRiB8IFRSQUNFUl9QUkVFTVBUX09GRjsKKworCV9faXJxc29mZl90cmFjZXJfaW5pdCh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHByZWVtcHRpcnFzb2ZmX3RyYWNlciBfX3JlYWRfbW9zdGx5ID0KK3sKKwkubmFtZQkJPSAicHJlZW1wdGlycXNvZmYiLAorCS5pbml0CQk9IHByZWVtcHRpcnFzb2ZmX3RyYWNlcl9pbml0LAorCS5yZXNldAkJPSBpcnFzb2ZmX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSBpcnFzb2ZmX3RyYWNlcl9vcGVuLAorCS5jbG9zZQkJPSBpcnFzb2ZmX3RyYWNlcl9jbG9zZSwKKwkuY3RybF91cGRhdGUJPSBpcnFzb2ZmX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9wcmVlbXB0aXJxc29mZiwKKyNlbmRpZgorfTsKKworIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYodHJhY2UpIHJlZ2lzdGVyX3RyYWNlcigmdHJhY2UpCisjZWxzZQorIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYodHJhY2UpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCitfX2luaXQgc3RhdGljIGludCBpbml0X2lycXNvZmZfdHJhY2VyKHZvaWQpCit7CisJcmVnaXN0ZXJfaXJxc29mZihpcnFzb2ZmX3RyYWNlcik7CisJcmVnaXN0ZXJfcHJlZW1wdG9mZihwcmVlbXB0b2ZmX3RyYWNlcik7CisJcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYocHJlZW1wdGlycXNvZmZfdHJhY2VyKTsKKworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKGluaXRfaXJxc29mZl90cmFjZXIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX21taW90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlX21taW90cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxM2RjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2VfbW1pb3RyYWNlLmMKQEAgLTAsMCArMSwyOTUgQEAKKy8qCisgKiBNZW1vcnkgbWFwcGVkIEkvTyB0cmFjaW5nCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFBla2thIFBhYWxhbmVuIDxwcUBpa2kuZmk+CisgKi8KKworI2RlZmluZSBERUJVRyAxCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0cnVjdCBoZWFkZXJfaXRlciB7CisJc3RydWN0IHBjaV9kZXYgKmRldjsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkgKm1taW9fdHJhY2VfYXJyYXk7CitzdGF0aWMgYm9vbCBvdmVycnVuX2RldGVjdGVkOworCitzdGF0aWMgdm9pZCBtbWlvX3Jlc2V0X2RhdGEoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpbnQgY3B1OworCisJb3ZlcnJ1bl9kZXRlY3RlZCA9IGZhbHNlOworCXRyLT50aW1lX3N0YXJ0ID0gZnRyYWNlX25vdyh0ci0+Y3B1KTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworfQorCitzdGF0aWMgdm9pZCBtbWlvX3RyYWNlX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlwcl9kZWJ1ZygiaW4gJXNcbiIsIF9fZnVuY19fKTsKKwltbWlvX3RyYWNlX2FycmF5ID0gdHI7CisJaWYgKHRyLT5jdHJsKSB7CisJCW1taW9fcmVzZXRfZGF0YSh0cik7CisJCWVuYWJsZV9tbWlvdHJhY2UoKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIG1taW9fdHJhY2VfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlwcl9kZWJ1ZygiaW4gJXNcbiIsIF9fZnVuY19fKTsKKwlpZiAodHItPmN0cmwpCisJCWRpc2FibGVfbW1pb3RyYWNlKCk7CisJbW1pb19yZXNldF9kYXRhKHRyKTsKKwltbWlvX3RyYWNlX2FycmF5ID0gTlVMTDsKK30KKworc3RhdGljIHZvaWQgbW1pb190cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXByX2RlYnVnKCJpbiAlc1xuIiwgX19mdW5jX18pOworCWlmICh0ci0+Y3RybCkgeworCQltbWlvX3Jlc2V0X2RhdGEodHIpOworCQllbmFibGVfbW1pb3RyYWNlKCk7CisJfSBlbHNlIHsKKwkJZGlzYWJsZV9tbWlvdHJhY2UoKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgbW1pb19wcmludF9wY2lkZXYoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlpbnQgcmV0ID0gMDsKKwlpbnQgaTsKKwlyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIGVuZDsKKwljb25zdCBzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2ID0gcGNpX2Rldl9kcml2ZXIoZGV2KTsKKworCS8qIFhYWDogaW5jb21wbGV0ZSBjaGVja3MgZm9yIHRyYWNlX3NlcV9wcmludGYoKSByZXR1cm4gdmFsdWUgKi8KKwlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiUENJREVWICUwMnglMDJ4ICUwNHglMDR4ICV4IiwKKwkJCQlkZXYtPmJ1cy0+bnVtYmVyLCBkZXYtPmRldmZuLAorCQkJCWRldi0+dmVuZG9yLCBkZXYtPmRldmljZSwgZGV2LT5pcnEpOworCS8qCisJICogWFhYOiBpcyBwY2lfcmVzb3VyY2VfdG9fdXNlcigpIGFwcHJvcHJpYXRlLCBzaW5jZSB3ZSBhcmUKKwkgKiBzdXBwb3NlZCB0byBpbnRlcnByZXQgdGhlIF9faW9yZW1hcCgpIHBoeXNfYWRkciBhcmd1bWVudCBiYXNlZCBvbgorCSAqIHRoZXNlIHByaW50ZWQgdmFsdWVzPworCSAqLworCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKKwkJcGNpX3Jlc291cmNlX3RvX3VzZXIoZGV2LCBpLCAmZGV2LT5yZXNvdXJjZVtpXSwgJnN0YXJ0LCAmZW5kKTsKKwkJcmV0ICs9IHRyYWNlX3NlcV9wcmludGYocywgIiAlbGx4IiwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpKHN0YXJ0IHwKKwkJCShkZXYtPnJlc291cmNlW2ldLmZsYWdzICYgUENJX1JFR0lPTl9GTEFHX01BU0spKSk7CisJfQorCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKKwkJcGNpX3Jlc291cmNlX3RvX3VzZXIoZGV2LCBpLCAmZGV2LT5yZXNvdXJjZVtpXSwgJnN0YXJ0LCAmZW5kKTsKKwkJcmV0ICs9IHRyYWNlX3NlcV9wcmludGYocywgIiAlbGx4IiwKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPCBkZXYtPnJlc291cmNlW2ldLmVuZCA/CisJCQkodW5zaWduZWQgbG9uZyBsb25nKShlbmQgLSBzdGFydCkgKyAxIDogMCk7CisJfQorCWlmIChkcnYpCisJCXJldCArPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIgJXNcbiIsIGRydi0+bmFtZSk7CisJZWxzZQorCQlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIFxuIik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgZGVzdHJveV9oZWFkZXJfaXRlcihzdHJ1Y3QgaGVhZGVyX2l0ZXIgKmhpdGVyKQoreworCWlmICghaGl0ZXIpCisJCXJldHVybjsKKwlwY2lfZGV2X3B1dChoaXRlci0+ZGV2KTsKKwlrZnJlZShoaXRlcik7Cit9CisKK3N0YXRpYyB2b2lkIG1taW9fcGlwZV9vcGVuKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgaGVhZGVyX2l0ZXIgKmhpdGVyOworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiVkVSU0lPTiAyMDA3MDgyNFxuIik7CisKKwloaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCpoaXRlciksIEdGUF9LRVJORUwpOworCWlmICghaGl0ZXIpCisJCXJldHVybjsKKworCWhpdGVyLT5kZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBOVUxMKTsKKwlpdGVyLT5wcml2YXRlID0gaGl0ZXI7Cit9CisKKy8qIFhYWDogVGhpcyBpcyBub3QgY2FsbGVkIHdoZW4gdGhlIHBpcGUgaXMgY2xvc2VkISAqLworc3RhdGljIHZvaWQgbW1pb19jbG9zZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IGhlYWRlcl9pdGVyICpoaXRlciA9IGl0ZXItPnByaXZhdGU7CisJZGVzdHJveV9oZWFkZXJfaXRlcihoaXRlcik7CisJaXRlci0+cHJpdmF0ZSA9IE5VTEw7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNvdW50X292ZXJydW5zKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpbnQgY3B1OworCXVuc2lnbmVkIGxvbmcgY250ID0gMDsKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgeworCQljbnQgKz0gaXRlci0+b3ZlcnJ1bltjcHVdOworCQlpdGVyLT5vdmVycnVuW2NwdV0gPSAwOworCX0KKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgc3NpemVfdCBtbWlvX3JlYWQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQljaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXNzaXplX3QgcmV0OworCXN0cnVjdCBoZWFkZXJfaXRlciAqaGl0ZXIgPSBpdGVyLT5wcml2YXRlOworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGxvbmcgbjsKKworCW4gPSBjb3VudF9vdmVycnVucyhpdGVyKTsKKwlpZiAobikgeworCQkvKiBYWFg6IFRoaXMgaXMgbGF0ZXIgdGhhbiB3aGVyZSBldmVudHMgd2VyZSBsb3N0LiAqLworCQl0cmFjZV9zZXFfcHJpbnRmKHMsICJNQVJLIDAuMDAwMDAwIExvc3QgJWx1IGV2ZW50cy5cbiIsIG4pOworCQlpZiAoIW92ZXJydW5fZGV0ZWN0ZWQpCisJCQlwcl93YXJuaW5nKCJtbWlvdHJhY2UgaGFzIGxvc3QgZXZlbnRzLlxuIik7CisJCW92ZXJydW5fZGV0ZWN0ZWQgPSB0cnVlOworCQlnb3RvIHByaW50X291dDsKKwl9CisKKwlpZiAoIWhpdGVyKQorCQlyZXR1cm4gMDsKKworCW1taW9fcHJpbnRfcGNpZGV2KHMsIGhpdGVyLT5kZXYpOworCWhpdGVyLT5kZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBoaXRlci0+ZGV2KTsKKworCWlmICghaGl0ZXItPmRldikgeworCQlkZXN0cm95X2hlYWRlcl9pdGVyKGhpdGVyKTsKKwkJaXRlci0+cHJpdmF0ZSA9IE5VTEw7CisJfQorCitwcmludF9vdXQ6CisJcmV0ID0gdHJhY2Vfc2VxX3RvX3VzZXIocywgdWJ1ZiwgY250KTsKKwlyZXR1cm4gKHJldCA9PSAtRUJVU1kpID8gMCA6IHJldDsKK30KKworc3RhdGljIGludCBtbWlvX3ByaW50X3J3KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5ID0gaXRlci0+ZW50OworCXN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3CT0gJmVudHJ5LT5tbWlvcnc7CisJc3RydWN0IHRyYWNlX3NlcSAqcwk9ICZpdGVyLT5zZXE7CisJdW5zaWduZWQgbG9uZyBsb25nIHQJPSBuczJ1c2VjcyhlbnRyeS0+dCk7CisJdW5zaWduZWQgbG9uZyB1c2VjX3JlbQk9IGRvX2Rpdih0LCAxMDAwMDAwVUxMKTsKKwl1bnNpZ25lZCBzZWNzCQk9ICh1bnNpZ25lZCBsb25nKXQ7CisJaW50IHJldCA9IDE7CisKKwlzd2l0Y2ggKGVudHJ5LT5tbWlvcncub3Bjb2RlKSB7CisJY2FzZSBNTUlPX1JFQUQ6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJSICVkICVsdS4lMDZsdSAlZCAweCVsbHggMHglbHggMHglbHggJWRcbiIsCisJCQlydy0+d2lkdGgsIHNlY3MsIHVzZWNfcmVtLCBydy0+bWFwX2lkLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylydy0+cGh5cywKKwkJCXJ3LT52YWx1ZSwgcnctPnBjLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBNTUlPX1dSSVRFOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVyAlZCAlbHUuJTA2bHUgJWQgMHglbGx4IDB4JWx4IDB4JWx4ICVkXG4iLAorCQkJcnctPndpZHRoLCBzZWNzLCB1c2VjX3JlbSwgcnctPm1hcF9pZCwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcnctPnBoeXMsCisJCQlydy0+dmFsdWUsIHJ3LT5wYywgMCk7CisJCWJyZWFrOworCWNhc2UgTU1JT19VTktOT1dOX09QOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVU5LTk9XTiAlbHUuJTA2bHUgJWQgMHglbGx4ICUwMngsJTAyeCwlMDJ4IDB4JWx4ICVkXG4iLAorCQkJc2VjcywgdXNlY19yZW0sIHJ3LT5tYXBfaWQsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKXJ3LT5waHlzLAorCQkJKHJ3LT52YWx1ZSA+PiAxNikgJiAweGZmLCAocnctPnZhbHVlID4+IDgpICYgMHhmZiwKKwkJCShydy0+dmFsdWUgPj4gMCkgJiAweGZmLCBydy0+cGMsIDApOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICJydyB3aGF0P1xuIik7CisJCWJyZWFrOworCX0KKwlpZiAocmV0KQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtbWlvX3ByaW50X21hcChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSA9IGl0ZXItPmVudDsKKwlzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqbQk9ICZlbnRyeS0+bW1pb21hcDsKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzCT0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdAk9IG5zMnVzZWNzKGVudHJ5LT50KTsKKwl1bnNpZ25lZCBsb25nIHVzZWNfcmVtCT0gZG9fZGl2KHQsIDEwMDAwMDBVTEwpOworCXVuc2lnbmVkIHNlY3MJCT0gKHVuc2lnbmVkIGxvbmcpdDsKKwlpbnQgcmV0ID0gMTsKKworCXN3aXRjaCAoZW50cnktPm1taW9ydy5vcGNvZGUpIHsKKwljYXNlIE1NSU9fUFJPQkU6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJNQVAgJWx1LiUwNmx1ICVkIDB4JWxseCAweCVseCAweCVseCAweCVseCAlZFxuIiwKKwkJCXNlY3MsIHVzZWNfcmVtLCBtLT5tYXBfaWQsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKW0tPnBoeXMsIG0tPnZpcnQsIG0tPmxlbiwKKwkJCTBVTCwgMCk7CisJCWJyZWFrOworCWNhc2UgTU1JT19VTlBST0JFOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVU5NQVAgJWx1LiUwNmx1ICVkIDB4JWx4ICVkXG4iLAorCQkJc2VjcywgdXNlY19yZW0sIG0tPm1hcF9pZCwgMFVMLCAwKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAibWFwIHdoYXQ/XG4iKTsKKwkJYnJlYWs7CisJfQorCWlmIChyZXQpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCisvKiByZXR1cm4gMCB0byBhYm9ydCBwcmludGluZyB3aXRob3V0IGNvbnN1bWluZyBjdXJyZW50IGVudHJ5IGluIHBpcGUgbW9kZSAqLworc3RhdGljIGludCBtbWlvX3ByaW50X2xpbmUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN3aXRjaCAoaXRlci0+ZW50LT50eXBlKSB7CisJY2FzZSBUUkFDRV9NTUlPX1JXOgorCQlyZXR1cm4gbW1pb19wcmludF9ydyhpdGVyKTsKKwljYXNlIFRSQUNFX01NSU9fTUFQOgorCQlyZXR1cm4gbW1pb19wcmludF9tYXAoaXRlcik7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDE7IC8qIGlnbm9yZSB1bmtub3duIGVudHJpZXMgKi8KKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIG1taW9fdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJtbWlvdHJhY2UiLAorCS5pbml0CQk9IG1taW9fdHJhY2VfaW5pdCwKKwkucmVzZXQJCT0gbW1pb190cmFjZV9yZXNldCwKKwkucGlwZV9vcGVuCT0gbW1pb19waXBlX29wZW4sCisJLmNsb3NlCQk9IG1taW9fY2xvc2UsCisJLnJlYWQJCT0gbW1pb19yZWFkLAorCS5jdHJsX3VwZGF0ZQk9IG1taW9fdHJhY2VfY3RybF91cGRhdGUsCisJLnByaW50X2xpbmUJPSBtbWlvX3ByaW50X2xpbmUsCit9OworCitfX2luaXQgc3RhdGljIGludCBpbml0X21taW9fdHJhY2Uodm9pZCkKK3sKKwlyZXR1cm4gcmVnaXN0ZXJfdHJhY2VyKCZtbWlvX3RyYWNlcik7Cit9CitkZXZpY2VfaW5pdGNhbGwoaW5pdF9tbWlvX3RyYWNlKTsKKwordm9pZCBtbWlvX3RyYWNlX3J3KHN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3KQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBtbWlvX3RyYWNlX2FycmF5OworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSB0ci0+ZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOworCV9fdHJhY2VfbW1pb3RyYWNlX3J3KHRyLCBkYXRhLCBydyk7Cit9CisKK3ZvaWQgbW1pb190cmFjZV9tYXBwaW5nKHN0cnVjdCBtbWlvdHJhY2VfbWFwICptYXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IG1taW9fdHJhY2VfYXJyYXk7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKworCXByZWVtcHRfZGlzYWJsZSgpOworCWRhdGEgPSB0ci0+ZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOworCV9fdHJhY2VfbW1pb3RyYWNlX21hcCh0ciwgZGF0YSwgbWFwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworfQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3NjaGVkX3N3aXRjaC5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3NjaGVkX3N3aXRjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODE3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfc3dpdGNoLmMKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKiB0cmFjZSBjb250ZXh0IHN3aXRjaAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXJrZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJKmN0eF90cmFjZTsKK3N0YXRpYyBpbnQgX19yZWFkX21vc3RseQl0cmFjZXJfZW5hYmxlZDsKK3N0YXRpYyBhdG9taWNfdAkJCXNjaGVkX3JlZjsKKworc3RhdGljIHZvaWQKK3NjaGVkX3N3aXRjaF9mdW5jKHZvaWQgKnByaXZhdGUsIHZvaWQgKl9fcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKipwdHIgPSBwcml2YXRlOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSAqcHRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlsb25nIGRpc2FibGVkOworCWludCBjcHU7CisKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKHByZXYpOworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUobmV4dCk7CisKKwlpZiAoIXRyYWNlcl9lbmFibGVkKQorCQlyZXR1cm47CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlkYXRhID0gdHItPmRhdGFbY3B1XTsKKwlkaXNhYmxlZCA9IGF0b21pY19pbmNfcmV0dXJuKCZkYXRhLT5kaXNhYmxlZCk7CisKKwlpZiAobGlrZWx5KGRpc2FibGVkID09IDEpKQorCQl0cmFjaW5nX3NjaGVkX3N3aXRjaF90cmFjZSh0ciwgZGF0YSwgcHJldiwgbmV4dCwgZmxhZ3MpOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAorc2NoZWRfc3dpdGNoX2NhbGxiYWNrKHZvaWQgKnByb2JlX2RhdGEsIHZvaWQgKmNhbGxfZGF0YSwKKwkJICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQ7CisJc3RydWN0IHJxICpfX3JxOworCisJaWYgKCFhdG9taWNfcmVhZCgmc2NoZWRfcmVmKSkKKwkJcmV0dXJuOworCisJLyogc2tpcCBwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGludCk7CisJKHZvaWQpdmFfYXJnKCphcmdzLCBsb25nKTsKKwlfX3JxID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoX19ycSkpOworCXByZXYgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihwcmV2KSk7CisJbmV4dCA9IHZhX2FyZygqYXJncywgdHlwZW9mKG5leHQpKTsKKworCS8qCisJICogSWYgdHJhY2VyX3N3aXRjaF9mdW5jIG9ubHkgcG9pbnRzIHRvIHRoZSBsb2NhbAorCSAqIHN3aXRjaCBmdW5jLCBpdCBzdGlsbCBuZWVkcyB0aGUgcHRyIHBhc3NlZCB0byBpdC4KKwkgKi8KKwlzY2hlZF9zd2l0Y2hfZnVuYyhwcm9iZV9kYXRhLCBfX3JxLCBwcmV2LCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQKK3dha2V1cF9mdW5jKHZvaWQgKnByaXZhdGUsIHZvaWQgKl9fcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqd2FrZWUsIHN0cnVjdAorCQkJdGFza19zdHJ1Y3QgKmN1cnIpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICoqcHRyID0gcHJpdmF0ZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gKnB0cjsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKCF0cmFjZXJfZW5hYmxlZCkKKwkJcmV0dXJuOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZShjdXJyKTsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCXRyYWNpbmdfc2NoZWRfd2FrZXVwX3RyYWNlKHRyLCBkYXRhLCB3YWtlZSwgY3VyciwgZmxhZ3MpOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAord2FrZV91cF9jYWxsYmFjayh2b2lkICpwcm9iZV9kYXRhLCB2b2lkICpjYWxsX2RhdGEsCisJCSBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgKmFyZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwlpZiAobGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qIFNraXAgcGlkICVkIHN0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCS8qIG5vdyBnZXQgdGhlIG1lYXQ6ICJycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiAqLworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJdGFzayA9IHZhX2FyZygqYXJncywgdHlwZW9mKHRhc2spKTsKKwljdXJyID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoY3VycikpOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZSh0YXNrKTsKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnIpOworCisJd2FrZXVwX2Z1bmMocHJvYmVfZGF0YSwgX19ycSwgdGFzaywgY3Vycik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIGludCB0cmFjaW5nX3NjaGVkX3JlZ2lzdGVyKHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IG1hcmtlcl9wcm9iZV9yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmY3R4X3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cFxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gbWFya2VyX3Byb2JlX3JlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmY3R4X3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cF9uZXdcbiIpOworCQlnb3RvIGZhaWxfZGVwcm9iZTsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlzY2hlZF9zd2l0Y2hfY2FsbGJhY2ssCisJCSZjdHhfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygic2NoZWQgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF9zY2hlZHVsZVxuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlX3dha2VfbmV3OworCX0KKworCXJldHVybiByZXQ7CitmYWlsX2RlcHJvYmVfd2FrZV9uZXc6CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXBfbmV3IiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZjdHhfdHJhY2UpOworZmFpbF9kZXByb2JlOgorCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwIiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZjdHhfdHJhY2UpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNpbmdfc2NoZWRfdW5yZWdpc3Rlcih2b2lkKQoreworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfc2NoZWR1bGUiLAorCQkJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJCQkmY3R4X3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cF9uZXciLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNpbmdfc3RhcnRfc2NoZWRfc3dpdGNoKHZvaWQpCit7CisJbG9uZyByZWY7CisKKwlyZWYgPSBhdG9taWNfaW5jX3JldHVybigmc2NoZWRfcmVmKTsKKwlpZiAocmVmID09IDEpCisJCXRyYWNpbmdfc2NoZWRfcmVnaXN0ZXIoKTsKK30KKworc3RhdGljIHZvaWQgdHJhY2luZ19zdG9wX3NjaGVkX3N3aXRjaCh2b2lkKQoreworCWxvbmcgcmVmOworCisJcmVmID0gYXRvbWljX2RlY19hbmRfdGVzdCgmc2NoZWRfcmVmKTsKKwlpZiAocmVmKQorCQl0cmFjaW5nX3NjaGVkX3VucmVnaXN0ZXIoKTsKK30KKwordm9pZCB0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKHZvaWQpCit7CisJdHJhY2luZ19zdGFydF9zY2hlZF9zd2l0Y2goKTsKK30KKwordm9pZCB0cmFjaW5nX3N0b3BfY21kbGluZV9yZWNvcmQodm9pZCkKK3sKKwl0cmFjaW5nX3N0b3Bfc2NoZWRfc3dpdGNoKCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0X3NjaGVkX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJc2NoZWRfc3dpdGNoX3Jlc2V0KHRyKTsKKwl0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKCk7CisJdHJhY2VyX2VuYWJsZWQgPSAxOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3NjaGVkX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCXRyYWNpbmdfc3RvcF9jbWRsaW5lX3JlY29yZCgpOworfQorCitzdGF0aWMgdm9pZCBzY2hlZF9zd2l0Y2hfdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWN0eF90cmFjZSA9IHRyOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9zY2hlZF90cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF90cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9zY2hlZF90cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF90cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCS8qIFdoZW4gc3RhcnRpbmcgYSBuZXcgdHJhY2UsIHJlc2V0IHRoZSBidWZmZXJzICovCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9zY2hlZF90cmFjZSh0cik7CisJZWxzZQorCQlzdG9wX3NjaGVkX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgc2NoZWRfc3dpdGNoX3RyYWNlIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJzY2hlZF9zd2l0Y2giLAorCS5pbml0CQk9IHNjaGVkX3N3aXRjaF90cmFjZV9pbml0LAorCS5yZXNldAkJPSBzY2hlZF9zd2l0Y2hfdHJhY2VfcmVzZXQsCisJLmN0cmxfdXBkYXRlCT0gc2NoZWRfc3dpdGNoX3RyYWNlX2N0cmxfdXBkYXRlLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3NjaGVkX3N3aXRjaCwKKyNlbmRpZgorfTsKKworX19pbml0IHN0YXRpYyBpbnQgaW5pdF9zY2hlZF9zd2l0Y2hfdHJhY2Uodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmIChhdG9taWNfcmVhZCgmc2NoZWRfcmVmKSkKKwkJcmV0ID0gdHJhY2luZ19zY2hlZF9yZWdpc3RlcigpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygiZXJyb3IgcmVnaXN0ZXJpbmcgc2NoZWR1bGVyIHRyYWNlXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0dXJuIHJlZ2lzdGVyX3RyYWNlcigmc2NoZWRfc3dpdGNoX3RyYWNlKTsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3NjaGVkX3N3aXRjaF90cmFjZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfd2FrZXVwLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfd2FrZXVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M4ZDYxZAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zY2hlZF93YWtldXAuYwpAQCAtMCwwICsxLDQ0OCBAQAorLyoKKyAqIHRyYWNlIHRhc2sgd2FrZXVwIHRpbWluZ3MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21hcmtlci5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheQkqd2FrZXVwX3RyYWNlOworc3RhdGljIGludCBfX3JlYWRfbW9zdGx5CXRyYWNlcl9lbmFibGVkOworCitzdGF0aWMgc3RydWN0IHRhc2tfc3RydWN0CSp3YWtldXBfdGFzazsKK3N0YXRpYyBpbnQJCQl3YWtldXBfY3B1Oworc3RhdGljIHVuc2lnbmVkCQkJd2FrZXVwX3ByaW8gPSAtMTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyh3YWtldXBfbG9jayk7CisKK3N0YXRpYyB2b2lkIF9fd2FrZXVwX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyoKKyAqIGlycXNvZmYgdXNlcyBpdHMgb3duIHRyYWNlciBmdW5jdGlvbiB0byBrZWVwIHRoZSBvdmVyaGVhZCBkb3duOgorICovCitzdGF0aWMgdm9pZAord2FrZXVwX3RyYWNlcl9jYWxsKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSB3YWtldXBfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IHJlc2NoZWQ7CisJaW50IGNwdTsKKworCWlmIChsaWtlbHkoIXdha2V1cF90YXNrKSkKKwkJcmV0dXJuOworCisJcmVzY2hlZCA9IG5lZWRfcmVzY2hlZCgpOworCXByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCk7CisKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKwlpZiAodW5saWtlbHkoZGlzYWJsZWQgIT0gMSkpCisJCWdvdG8gb3V0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJndha2V1cF9sb2NrLCBmbGFncyk7CisKKwlpZiAodW5saWtlbHkoIXdha2V1cF90YXNrKSkKKwkJZ290byB1bmxvY2s7CisKKwkvKgorCSAqIFRoZSB0YXNrIGNhbid0IGRpc2FwcGVhciBiZWNhdXNlIGl0IG5lZWRzIHRvCisJICogd2FrZSB1cCBmaXJzdCwgYW5kIHdlIGhhdmUgdGhlIHdha2V1cF9sb2NrLgorCSAqLworCWlmICh0YXNrX2NwdSh3YWtldXBfdGFzaykgIT0gY3B1KQorCQlnb3RvIHVubG9jazsKKworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisKKyB1bmxvY2s6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKKworIG91dDoKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisKKwkvKgorCSAqIFRvIHByZXZlbnQgcmVjdXJzaW9uIGZyb20gdGhlIHNjaGVkdWxlciwgaWYgdGhlCisJICogcmVzY2hlZCBmbGFnIHdhcyBzZXQgYmVmb3JlIHdlIGVudGVyZWQsIHRoZW4KKwkgKiBkb24ndCByZXNjaGVkdWxlLgorCSAqLworCWlmIChyZXNjaGVkKQorCQlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkX25vdHJhY2UoKTsKKwllbHNlCisJCXByZWVtcHRfZW5hYmxlX25vdHJhY2UoKTsKK30KKworc3RhdGljIHN0cnVjdCBmdHJhY2Vfb3BzIHRyYWNlX29wcyBfX3JlYWRfbW9zdGx5ID0KK3sKKwkuZnVuYyA9IHdha2V1cF90cmFjZXJfY2FsbCwKK307CisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisvKgorICogU2hvdWxkIHRoaXMgbmV3IGxhdGVuY3kgYmUgcmVwb3J0ZWQvcmVjb3JkZWQ/CisgKi8KK3N0YXRpYyBpbnQgcmVwb3J0X2xhdGVuY3koY3ljbGVfdCBkZWx0YSkKK3sKKwlpZiAodHJhY2luZ190aHJlc2gpIHsKKwkJaWYgKGRlbHRhIDwgdHJhY2luZ190aHJlc2gpCisJCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlpZiAoZGVsdGEgPD0gdHJhY2luZ19tYXhfbGF0ZW5jeSkKKwkJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQgbm90cmFjZQord2FrZXVwX3NjaGVkX3N3aXRjaCh2b2lkICpwcml2YXRlLCB2b2lkICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCkKK3sKKwl1bnNpZ25lZCBsb25nIGxhdGVuY3kgPSAwLCB0MCA9IDAsIHQxID0gMDsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKipwdHIgPSBwcml2YXRlOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSAqcHRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJY3ljbGVfdCBUMCwgVDEsIGRlbHRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKHVubGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qCisJICogV2hlbiB3ZSBzdGFydCBhIG5ldyB0cmFjZSwgd2Ugc2V0IHdha2V1cF90YXNrIHRvIE5VTEwKKwkgKiBhbmQgdGhlbiBzZXQgdHJhY2VyX2VuYWJsZWQgPSAxLiBXZSB3YW50IHRvIG1ha2Ugc3VyZQorCSAqIHRoYXQgYW5vdGhlciBDUFUgZG9lcyBub3Qgc2VlIHRoZSB0cmFjZXJfZW5hYmxlZCA9IDEKKwkgKiBhbmQgdGhlIHdha2V1cF90YXNrIHdpdGggYW4gb2xkZXIgdGFzaywgdGhhdCBtaWdodAorCSAqIGFjdHVhbGx5IGJlIHRoZSBzYW1lIGFzIG5leHQuCisJICovCisJc21wX3JtYigpOworCisJaWYgKG5leHQgIT0gd2FrZXVwX3Rhc2spCisJCXJldHVybjsKKworCS8qIFRoZSB0YXNrIHdlIGFyZSB3YWl0aW5nIGZvciBpcyB3YWtpbmcgdXAgKi8KKwlkYXRhID0gdHItPmRhdGFbd2FrZXVwX2NwdV07CisKKwkvKiBkaXNhYmxlIGxvY2FsIGRhdGEsIG5vdCB3YWtldXBfY3B1IGRhdGEgKi8KKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwlpZiAobGlrZWx5KGRpc2FibGVkICE9IDEpKQorCQlnb3RvIG91dDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworCisJLyogV2UgY291bGQgcmFjZSB3aXRoIGdyYWJiaW5nIHdha2V1cF9sb2NrICovCisJaWYgKHVubGlrZWx5KCF0cmFjZXJfZW5hYmxlZCB8fCBuZXh0ICE9IHdha2V1cF90YXNrKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIENBTExFUl9BRERSMSwgQ0FMTEVSX0FERFIyLCBmbGFncyk7CisKKwkvKgorCSAqIHVzZWNzIGNvbnZlcnNpb24gaXMgc2xvdyBzbyB3ZSB0cnkgdG8gZGVsYXkgdGhlIGNvbnZlcnNpb24KKwkgKiBhcyBsb25nIGFzIHBvc3NpYmxlOgorCSAqLworCVQwID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisJVDEgPSBmdHJhY2Vfbm93KGNwdSk7CisJZGVsdGEgPSBUMS1UMDsKKworCWlmICghcmVwb3J0X2xhdGVuY3koZGVsdGEpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlsYXRlbmN5ID0gbnNlY3NfdG9fdXNlY3MoZGVsdGEpOworCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IGRlbHRhOworCXQwID0gbnNlY3NfdG9fdXNlY3MoVDApOworCXQxID0gbnNlY3NfdG9fdXNlY3MoVDEpOworCisJdXBkYXRlX21heF90cih0ciwgd2FrZXVwX3Rhc2ssIHdha2V1cF9jcHUpOworCitvdXRfdW5sb2NrOgorCV9fd2FrZXVwX3Jlc2V0KHRyKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworb3V0OgorCWF0b21pY19kZWMoJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAorc2NoZWRfc3dpdGNoX2NhbGxiYWNrKHZvaWQgKnByb2JlX2RhdGEsIHZvaWQgKmNhbGxfZGF0YSwKKwkJICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQ7CisJc3RydWN0IHJxICpfX3JxOworCisJLyogc2tpcCBwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGludCk7CisJKHZvaWQpdmFfYXJnKCphcmdzLCBsb25nKTsKKwlfX3JxID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoX19ycSkpOworCXByZXYgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihwcmV2KSk7CisJbmV4dCA9IHZhX2FyZygqYXJncywgdHlwZW9mKG5leHQpKTsKKworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUocHJldik7CisKKwkvKgorCSAqIElmIHRyYWNlcl9zd2l0Y2hfZnVuYyBvbmx5IHBvaW50cyB0byB0aGUgbG9jYWwKKwkgKiBzd2l0Y2ggZnVuYywgaXQgc3RpbGwgbmVlZHMgdGhlIHB0ciBwYXNzZWQgdG8gaXQuCisJICovCisJd2FrZXVwX3NjaGVkX3N3aXRjaChwcm9iZV9kYXRhLCBfX3JxLCBwcmV2LCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQgX193YWtldXBfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCWludCBjcHU7CisKKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJndha2V1cF9sb2NrKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKwkJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJfQorCisJd2FrZXVwX2NwdSA9IC0xOworCXdha2V1cF9wcmlvID0gLTE7CisKKwlpZiAod2FrZXVwX3Rhc2spCisJCXB1dF90YXNrX3N0cnVjdCh3YWtldXBfdGFzayk7CisKKwl3YWtldXBfdGFzayA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKKwlfX3dha2V1cF9yZXNldCh0cik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQKK3dha2V1cF9jaGVja19zdGFydChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCisJCSAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY3VycikKK3sKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKworCWlmIChsaWtlbHkoIXJ0X3Rhc2socCkpIHx8CisJCQlwLT5wcmlvID49IHdha2V1cF9wcmlvIHx8CisJCQlwLT5wcmlvID49IGN1cnItPnByaW8pCisJCXJldHVybjsKKworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwlpZiAodW5saWtlbHkoZGlzYWJsZWQgIT0gMSkpCisJCWdvdG8gb3V0OworCisJLyogaW50ZXJydXB0cyBzaG91bGQgYmUgb2ZmIGZyb20gdHJ5X3RvX3dha2VfdXAgKi8KKwlzcGluX2xvY2soJndha2V1cF9sb2NrKTsKKworCS8qIGNoZWNrIGZvciByYWNlcy4gKi8KKwlpZiAoIXRyYWNlcl9lbmFibGVkIHx8IHAtPnByaW8gPj0gd2FrZXVwX3ByaW8pCisJCWdvdG8gb3V0X2xvY2tlZDsKKworCS8qIHJlc2V0IHRoZSB0cmFjZSAqLworCV9fd2FrZXVwX3Jlc2V0KHRyKTsKKworCXdha2V1cF9jcHUgPSB0YXNrX2NwdShwKTsKKwl3YWtldXBfcHJpbyA9IHAtPnByaW87CisKKwl3YWtldXBfdGFzayA9IHA7CisJZ2V0X3Rhc2tfc3RydWN0KHdha2V1cF90YXNrKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJdHItPmRhdGFbd2FrZXVwX2NwdV0tPnByZWVtcHRfdGltZXN0YW1wID0gZnRyYWNlX25vdyhjcHUpOworCXRyYWNlX2Z1bmN0aW9uKHRyLCB0ci0+ZGF0YVt3YWtldXBfY3B1XSwKKwkJICAgICAgIENBTExFUl9BRERSMSwgQ0FMTEVSX0FERFIyLCBmbGFncyk7CisKK291dF9sb2NrZWQ6CisJc3Bpbl91bmxvY2soJndha2V1cF9sb2NrKTsKK291dDoKKwlhdG9taWNfZGVjKCZ0ci0+ZGF0YVtjcHVdLT5kaXNhYmxlZCk7Cit9CisKK3N0YXRpYyBub3RyYWNlIHZvaWQKK3dha2VfdXBfY2FsbGJhY2sodm9pZCAqcHJvYmVfZGF0YSwgdm9pZCAqY2FsbF9kYXRhLAorCQkgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqKnB0ciA9IHByb2JlX2RhdGE7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICpwdHI7CisJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwlpZiAobGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qIFNraXAgcGlkICVkIHN0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCS8qIG5vdyBnZXQgdGhlIG1lYXQ6ICJycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiAqLworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJdGFzayA9IHZhX2FyZygqYXJncywgdHlwZW9mKHRhc2spKTsKKwljdXJyID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoY3VycikpOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZSh0YXNrKTsKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnIpOworCisJd2FrZXVwX2NoZWNrX3N0YXJ0KHRyLCB0YXNrLCBjdXJyKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfd2FrZXVwX3RyYWNlcihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCByZXQ7CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJInBpZCAlZCBzdGF0ZSAlbGQgIyMgcnEgJXAgdGFzayAlcCBycS0+Y3VyciAlcCIsCisJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJJndha2V1cF90cmFjZSk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCJ3YWtldXAgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF93YWtldXBcbiIpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0gbWFya2VyX3Byb2JlX3JlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmd2FrZXVwX3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cF9uZXdcbiIpOworCQlnb3RvIGZhaWxfZGVwcm9iZTsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlzY2hlZF9zd2l0Y2hfY2FsbGJhY2ssCisJCSZ3YWtldXBfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygic2NoZWQgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF9zY2hlZHVsZVxuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlX3dha2VfbmV3OworCX0KKworCXdha2V1cF9yZXNldCh0cik7CisKKwkvKgorCSAqIERvbid0IGxldCB0aGUgdHJhY2VyX2VuYWJsZWQgPSAxIHNob3cgdXAgYmVmb3JlCisJICogdGhlIHdha2V1cF90YXNrIGlzIHJlc2V0LiBUaGlzIG1heSBiZSBvdmVya2lsbCBzaW5jZQorCSAqIHdha2V1cF9yZXNldCBkb2VzIGEgc3Bpbl91bmxvY2sgYWZ0ZXIgc2V0dGluZyB0aGUKKwkgKiB3YWtldXBfdGFzayB0byBOVUxMLCBidXQgSSB3YW50IHRvIGJlIHNhZmUuCisJICogVGhpcyBpcyBhIHNsb3cgcGF0aCBhbnl3YXkuCisJICovCisJc21wX3dtYigpOworCisJcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCisJdHJhY2VyX2VuYWJsZWQgPSAxOworCisJcmV0dXJuOworZmFpbF9kZXByb2JlX3dha2VfbmV3OgorCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKK2ZhaWxfZGVwcm9iZToKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF93YWtldXBfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCXVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfc2NoZWR1bGUiLAorCQkJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cF9uZXciLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJndha2V1cF90cmFjZSk7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJndha2V1cF90cmFjZSk7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF90cmFjZXJfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXdha2V1cF90cmFjZSA9IHRyOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF93YWtldXBfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkgeworCQlzdG9wX3dha2V1cF90cmFjZXIodHIpOworCQkvKiBtYWtlIHN1cmUgd2UgcHV0IGJhY2sgYW55IHRhc2tzIHdlIGFyZSB0cmFjaW5nICovCisJCXdha2V1cF9yZXNldCh0cik7CisJfQorfQorCitzdGF0aWMgdm9pZCB3YWtldXBfdHJhY2VyX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF93YWtldXBfdHJhY2VyKHRyKTsKKwllbHNlCisJCXN0b3Bfd2FrZXVwX3RyYWNlcih0cik7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF90cmFjZXJfb3BlbihzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RvcF93YWtldXBfdHJhY2VyKGl0ZXItPnRyKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9jbG9zZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogZm9yZ2V0IGFib3V0IGFueSBwcm9jZXNzZXMgd2Ugd2VyZSByZWNvcmRpbmcgKi8KKwlpZiAoaXRlci0+dHItPmN0cmwpCisJCXN0YXJ0X3dha2V1cF90cmFjZXIoaXRlci0+dHIpOworfQorCitzdGF0aWMgc3RydWN0IHRyYWNlciB3YWtldXBfdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJ3YWtldXAiLAorCS5pbml0CQk9IHdha2V1cF90cmFjZXJfaW5pdCwKKwkucmVzZXQJCT0gd2FrZXVwX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSB3YWtldXBfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IHdha2V1cF90cmFjZXJfY2xvc2UsCisJLmN0cmxfdXBkYXRlCT0gd2FrZXVwX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF93YWtldXAsCisjZW5kaWYKK307CisKK19faW5pdCBzdGF0aWMgaW50IGluaXRfd2FrZXVwX3RyYWNlcih2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSByZWdpc3Rlcl90cmFjZXIoJndha2V1cF90cmFjZXIpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3dha2V1cF90cmFjZXIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTExYjdlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMKQEAgLTAsMCArMSw1NjMgQEAKKy8qIEluY2x1ZGUgaW4gdHJhY2UuYyAqLworCisjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKK3N0YXRpYyBpbmxpbmUgaW50IHRyYWNlX3ZhbGlkX2VudHJ5KHN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnkpCit7CisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCWNhc2UgVFJBQ0VfU1RBQ0s6CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3RyYWNlX3Rlc3RfYnVmZmVyX2NwdShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cmllczsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlpbnQgaWR4ID0gMDsKKwlpbnQgaTsKKworCUJVR19PTihsaXN0X2VtcHR5KCZkYXRhLT50cmFjZV9wYWdlcykpOworCXBhZ2UgPSBsaXN0X2VudHJ5KGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCWVudHJpZXMgPSBwYWdlX2FkZHJlc3MocGFnZSk7CisKKwljaGVja19wYWdlcyhkYXRhKTsKKwlpZiAoaGVhZF9wYWdlKGRhdGEpICE9IGVudHJpZXMpCisJCWdvdG8gZmFpbGVkOworCisJLyoKKwkgKiBUaGUgc3RhcnRpbmcgdHJhY2UgYnVmZmVyIGFsd2F5cyBoYXMgdmFsaWQgZWxlbWVudHMsCisJICogaWYgYW55IGVsZW1lbnQgZXhpc3RzLgorCSAqLworCWVudHJpZXMgPSBoZWFkX3BhZ2UoZGF0YSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdHItPmVudHJpZXM7IGkrKykgeworCisJCWlmIChpIDwgZGF0YS0+dHJhY2VfaWR4ICYmICF0cmFjZV92YWxpZF9lbnRyeSgmZW50cmllc1tpZHhdKSkgeworCQkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gaW52YWxpZCBlbnRyeSAlZCAiLAorCQkJCWVudHJpZXNbaWR4XS50eXBlKTsKKwkJCWdvdG8gZmFpbGVkOworCQl9CisKKwkJaWR4Kys7CisJCWlmIChpZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQkJcGFnZSA9IHZpcnRfdG9fcGFnZShlbnRyaWVzKTsKKwkJCWlmIChwYWdlLT5scnUubmV4dCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCQlpZiAoaSAhPSB0ci0+ZW50cmllcyAtIDEpIHsKKwkJCQkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gZW50cmllcyBidWZmZXIgbWlzbWF0Y2giKTsKKwkJCQkJZ290byBmYWlsZWQ7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlwYWdlID0gbGlzdF9lbnRyeShwYWdlLT5scnUubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCQkJZW50cmllcyA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKKwkJCX0KKwkJCWlkeCA9IDA7CisJCX0KKwl9CisKKwlwYWdlID0gdmlydF90b19wYWdlKGVudHJpZXMpOworCWlmIChwYWdlLT5scnUubmV4dCAhPSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gdG9vIG1hbnkgZW50cmllcyIpOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlyZXR1cm4gMDsKKworIGZhaWxlZDoKKwkvKiBkaXNhYmxlIHRyYWNpbmcgKi8KKwl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwlwcmludGsoS0VSTl9DT05UICIuLiBjb3JydXB0ZWQgdHJhY2UgYnVmZmVyIC4uICIpOworCXJldHVybiAtMTsKK30KKworLyoKKyAqIFRlc3QgdGhlIHRyYWNlIGJ1ZmZlciB0byBzZWUgaWYgYWxsIHRoZSBlbGVtZW50cworICogYXJlIHN0aWxsIHNhbmUuCisgKi8KK3N0YXRpYyBpbnQgdHJhY2VfdGVzdF9idWZmZXIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgdW5zaWduZWQgbG9uZyAqY291bnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFncywgY250ID0gMDsKKwlpbnQgY3B1LCByZXQgPSAwOworCisJLyogRG9uJ3QgYWxsb3cgZmxpcHBpbmcgb2YgbWF4IHRyYWNlcyBub3cgKi8KKwlyYXdfbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCV9fcmF3X3NwaW5fbG9jaygmZnRyYWNlX21heF9sb2NrKTsKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7CisJCWlmICghaGVhZF9wYWdlKHRyLT5kYXRhW2NwdV0pKQorCQkJY29udGludWU7CisKKwkJY250ICs9IHRyLT5kYXRhW2NwdV0tPnRyYWNlX2lkeDsKKworCQlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcl9jcHUodHIsIHRyLT5kYXRhW2NwdV0pOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlpZiAoY291bnQpCisJCSpjb3VudCA9IGNudDsKKworCXJldHVybiByZXQ7Cit9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKworI2RlZmluZSBfX1NUUih4KSAjeAorI2RlZmluZSBTVFIoeCkgX19TVFIoeCkKKworLyogVGVzdCBkeW5hbWljIGNvZGUgbW9kaWZpY2F0aW9uIGFuZCBmdHJhY2UgZmlsdGVycyAqLworaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZHluYW1pY190cmFjaW5nKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCQkgICBpbnQgKCpmdW5jKSh2b2lkKSkKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisJaW50IHNhdmVfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZDsKKwlpbnQgc2F2ZV90cmFjZXJfZW5hYmxlZCA9IHRyYWNlcl9lbmFibGVkOworCWNoYXIgKmZ1bmNfbmFtZTsKKworCS8qIFRoZSBmdHJhY2UgdGVzdCBQQVNTRUQgKi8KKwlwcmludGsoS0VSTl9DT05UICJQQVNTRURcbiIpOworCXByX2luZm8oIlRlc3RpbmcgZHluYW1pYyBmdHJhY2U6ICIpOworCisJLyogZW5hYmxlIHRyYWNpbmcsIGFuZCByZWNvcmQgdGhlIGZpbHRlciBmdW5jdGlvbiAqLworCWZ0cmFjZV9lbmFibGVkID0gMTsKKwl0cmFjZXJfZW5hYmxlZCA9IDE7CisKKwkvKiBwYXNzZWQgaW4gYnkgcGFyYW1ldGVyIHRvIGZvb2wgZ2NjIGZyb20gb3B0aW1pemluZyAqLworCWZ1bmMoKTsKKworCS8qIHVwZGF0ZSB0aGUgcmVjb3JkcyAqLworCXJldCA9IGZ0cmFjZV9mb3JjZV91cGRhdGUoKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIGZ0cmFjZWQgZmFpbGVkIC4uICIpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qCisJICogU29tZSBhcmNocyAqY291Z2gqUG93ZXJQQypjb3VnaCogYWRkIGNoYXJhY2h0ZXJzIHRvIHRoZQorCSAqIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBuYW1lcy4gV2Ugc2ltcGx5IHB1dCBhICcqJyB0bworCSAqIGFjY29tb2RhdGUgdGhlbS4KKwkgKi8KKwlmdW5jX25hbWUgPSAiKiIgU1RSKERZTl9GVFJBQ0VfVEVTVF9OQU1FKTsKKworCS8qIGZpbHRlciBvbmx5IG9uIG91ciBmdW5jdGlvbiAqLworCWZ0cmFjZV9zZXRfZmlsdGVyKGZ1bmNfbmFtZSwgc3RybGVuKGZ1bmNfbmFtZSksIDEpOworCisJLyogZW5hYmxlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKworCS8qIHdlIHNob3VsZCBoYXZlIG5vdGhpbmcgaW4gdGhlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKGNvdW50KSB7CisJCXJldCA9IC0xOworCQlwcmludGsoS0VSTl9DT05UICIuLiBmaWx0ZXIgZGlkIG5vdCBmaWx0ZXIgLi4gIik7CisJCWdvdG8gb3V0OworCX0KKworCS8qIGNhbGwgb3VyIGZ1bmN0aW9uIGFnYWluICovCisJZnVuYygpOworCisJLyogc2xlZXAgYWdhaW4gKi8KKwltc2xlZXAoMTAwKTsKKworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworCisJLyogY2hlY2sgdGhlIHRyYWNlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwkvKiB3ZSBzaG91bGQgb25seSBoYXZlIG9uZSBpdGVtICovCisJaWYgKCFyZXQgJiYgY291bnQgIT0gMSkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBmaWx0ZXIgZmFpbGVkIGNvdW50PSVsZCAuLiIsIGNvdW50KTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKyBvdXQ6CisJZnRyYWNlX2VuYWJsZWQgPSBzYXZlX2Z0cmFjZV9lbmFibGVkOworCXRyYWNlcl9lbmFibGVkID0gc2F2ZV90cmFjZXJfZW5hYmxlZDsKKworCS8qIEVuYWJsZSB0cmFjaW5nIG9uIGFsbCBmdW5jdGlvbnMgYWdhaW4gKi8KKwlmdHJhY2Vfc2V0X2ZpbHRlcihOVUxMLCAwLCAxKTsKKworCXJldHVybiByZXQ7Cit9CisjZWxzZQorIyBkZWZpbmUgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9keW5hbWljX3RyYWNpbmcodHJhY2UsIHRyLCBmdW5jKSAoeyAwOyB9KQorI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworLyoKKyAqIFNpbXBsZSB2ZXJpZmljYXRpb24gdGVzdCBvZiBmdHJhY2UgZnVuY3Rpb24gdHJhY2VyLgorICogRW5hYmxlIGZ0cmFjZSwgc2xlZXAgMS8xMCBzZWNvbmQsIGFuZCB0aGVuIHJlYWQgdGhlIHRyYWNlCisgKiBidWZmZXIgdG8gc2VlIGlmIGFsbCBpcyBpbiBvcmRlci4KKyAqLworaW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKwlpbnQgc2F2ZV9mdHJhY2VfZW5hYmxlZCA9IGZ0cmFjZV9lbmFibGVkOworCWludCBzYXZlX3RyYWNlcl9lbmFibGVkID0gdHJhY2VyX2VuYWJsZWQ7CisKKwkvKiBtYWtlIHN1cmUgbXNsZWVwIGhhcyBiZWVuIHJlY29yZGVkICovCisJbXNsZWVwKDEpOworCisJLyogZm9yY2UgdGhlIHJlY29yZGVkIGZ1bmN0aW9ucyB0byBiZSB0cmFjZWQgKi8KKwlyZXQgPSBmdHJhY2VfZm9yY2VfdXBkYXRlKCk7CisJaWYgKHJldCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBmdHJhY2VkIGZhaWxlZCAuLiAiKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwkvKiBzdGFydCB0aGUgdHJhY2luZyAqLworCWZ0cmFjZV9lbmFibGVkID0gMTsKKwl0cmFjZXJfZW5hYmxlZCA9IDE7CisKKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCWZ0cmFjZV9lbmFibGVkID0gMDsKKworCS8qIGNoZWNrIHRoZSB0cmFjZSBidWZmZXIgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZHluYW1pY190cmFjaW5nKHRyYWNlLCB0ciwKKwkJCQkJCSAgICAgRFlOX0ZUUkFDRV9URVNUX05BTUUpOworCisgb3V0OgorCWZ0cmFjZV9lbmFibGVkID0gc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwl0cmFjZXJfZW5hYmxlZCA9IHNhdmVfdHJhY2VyX2VuYWJsZWQ7CisKKwkvKiBraWxsIGZ0cmFjZSB0b3RhbGx5IGlmIHdlIGZhaWxlZCAqLworCWlmIChyZXQpCisJCWZ0cmFjZV9raWxsKCk7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2lycXNvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCS8qIGRpc2FibGUgaW50ZXJydXB0cyBmb3IgYSBiaXQgKi8KKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCXVkZWxheSgxMDApOworCWxvY2FsX2lycV9lbmFibGUoKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIGJvdGggdHJhY2UgYnVmZmVycyAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCBOVUxMKTsKKwlpZiAoIXJldCkKKwkJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJfQorCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IHNhdmVfbWF4OworCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfSVJRU09GRl9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19QUkVFTVBUX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCS8qIGRpc2FibGUgcHJlZW1wdGlvbiBmb3IgYSBiaXQgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwl1ZGVsYXkoMTAwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmICghcmV0KQorCQlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcigmbWF4X3RyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19QUkVFTVBUX1RSQUNFUiAqLworCisjaWYgZGVmaW5lZChDT05GSUdfSVJRU09GRl9UUkFDRVIpICYmIGRlZmluZWQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKQoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRpcnFzb2ZmKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgc2F2ZV9tYXggPSB0cmFjaW5nX21heF9sYXRlbmN5OworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCisJLyogZGlzYWJsZSBwcmVlbXB0aW9uIGFuZCBpbnRlcnJ1cHRzIGZvciBhIGJpdCAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJdWRlbGF5KDEwMCk7CisJcHJlZW1wdF9lbmFibGUoKTsKKwkvKiByZXZlcnNlIHRoZSBvcmRlciBvZiBwcmVlbXB0IHZzIGlycXMgKi8KKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIGJvdGggdHJhY2UgYnVmZmVycyAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCBOVUxMKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKCZtYXhfdHIsICZjb3VudCk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogZG8gdGhlIHRlc3QgYnkgZGlzYWJsaW5nIGludGVycnVwdHMgZmlyc3QgdGhpcyB0aW1lICovCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IDA7CisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwl1ZGVsYXkoMTAwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCS8qIHJldmVyc2UgdGhlIG9yZGVyIG9mIHByZWVtcHQgdnMgaXJxcyAqLworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKworCWlmICghcmV0ICYmICFjb3VudCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBubyBlbnRyaWVzIGZvdW5kIC4uIik7CisJCXJldCA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKyBvdXQ6CisJdHJhY2UtPnJlc2V0KHRyKTsKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19JUlFTT0ZGX1RSQUNFUiAmJiBDT05GSUdfUFJFRU1QVF9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19TQ0hFRF9UUkFDRVIKK3N0YXRpYyBpbnQgdHJhY2Vfd2FrZXVwX3Rlc3RfdGhyZWFkKHZvaWQgKmRhdGEpCit7CisJLyogTWFrZSB0aGlzIGEgUlQgdGhyZWFkLCBkb2Vzbid0IG5lZWQgdG8gYmUgdG9vIGhpZ2ggKi8KKwlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7IC5zY2hlZF9wcmlvcml0eSA9IDUgfTsKKwlzdHJ1Y3QgY29tcGxldGlvbiAqeCA9IGRhdGE7CisKKwlzY2hlZF9zZXRzY2hlZHVsZXIoY3VycmVudCwgU0NIRURfRklGTywgJnBhcmFtKTsKKworCS8qIE1ha2UgaXQga25vdyB3ZSBoYXZlIGEgbmV3IHByaW8gKi8KKwljb21wbGV0ZSh4KTsKKworCS8qIG5vdyBnbyB0byBzbGVlcCBhbmQgbGV0IHRoZSB0ZXN0IHdha2UgdXMgdXAgKi8KKwlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOworCXNjaGVkdWxlKCk7CisKKwkvKiB3ZSBhcmUgYXdha2UsIG5vdyB3YWl0IHRvIGRpc2FwcGVhciAqLworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CisJCS8qCisJCSAqIFRoaXMgaXMgYW4gUlQgdGFzaywgZG8gc2hvcnQgc2xlZXBzIHRvIGxldAorCQkgKiBvdGhlcnMgcnVuLgorCQkgKi8KKwkJbXNsZWVwKDEwMCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF93YWtldXAoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwOworCXN0cnVjdCBjb21wbGV0aW9uIGlzcnQ7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJaW5pdF9jb21wbGV0aW9uKCZpc3J0KTsKKworCS8qIGNyZWF0ZSBhIGhpZ2ggcHJpbyB0aHJlYWQgKi8KKwlwID0ga3RocmVhZF9ydW4odHJhY2Vfd2FrZXVwX3Rlc3RfdGhyZWFkLCAmaXNydCwgImZ0cmFjZS10ZXN0Iik7CisJaWYgKElTX0VSUihwKSkgeworCQlwcmludGsoS0VSTl9DT05UICJGYWlsZWQgdG8gY3JlYXRlIGZ0cmFjZSB3YWtldXAgdGVzdCB0aHJlYWQgIik7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBtYWtlIHN1cmUgdGhlIHRocmVhZCBpcyBydW5uaW5nIGF0IGFuIFJUIHByaW8gKi8KKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZpc3J0KTsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKwkvKiByZXNldCB0aGUgbWF4IGxhdGVuY3kgKi8KKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gMDsKKworCS8qIHNsZWVwIHRvIGxldCB0aGUgUlQgdGhyZWFkIHNsZWVwIHRvbyAqLworCW1zbGVlcCgxMDApOworCisJLyoKKwkgKiBZZXMgdGhpcyBpcyBzbGlnaHRseSByYWN5LiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZvciBzb21lCisJICogc3RyYW5nZSByZWFzb24gdGhhdCB0aGUgUlQgdGhyZWFkIHdlIGNyZWF0ZWQsIGRpZCBub3QKKwkgKiBjYWxsIHNjaGVkdWxlIGZvciAxMDBtcyBhZnRlciBkb2luZyB0aGUgY29tcGxldGlvbiwKKwkgKiBhbmQgd2UgZG8gYSB3YWtldXAgb24gYSB0YXNrIHRoYXQgYWxyZWFkeSBpcyBhd2FrZS4KKwkgKiBCdXQgdGhhdCBpcyBleHRyZW1lbHkgdW5saWtlbHksIGFuZCB0aGUgd29yc3QgdGhpbmcgdGhhdAorCSAqIGhhcHBlbnMgaW4gc3VjaCBhIGNhc2UsIGlzIHRoYXQgd2UgZGlzYWJsZSB0cmFjaW5nLgorCSAqIEhvbmVzdGx5LCBpZiB0aGlzIHJhY2UgZG9lcyBoYXBwZW4gc29tZXRoaW5nIGlzIGhvcnJpYmxlCisJICogd3Jvbmcgd2l0aCB0aGUgc3lzdGVtLgorCSAqLworCisJd2FrZV91cF9wcm9jZXNzKHApOworCisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayBib3RoIHRyYWNlIGJ1ZmZlcnMgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgTlVMTCk7CisJaWYgKCFyZXQpCisJCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKCZtYXhfdHIsICZjb3VudCk7CisKKworCXRyYWNlLT5yZXNldCh0cik7CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwkvKiBraWxsIHRoZSB0aHJlYWQgKi8KKwlrdGhyZWFkX3N0b3AocCk7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVIKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zY2hlZF9zd2l0Y2goc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIHRoZSB0cmFjZSBidWZmZXIgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJfQorCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSICovCisKKyNpZmRlZiBDT05GSUdfU1lTUFJPRl9UUkFDRVIKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zeXNwcm9mKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKwkvKiBTbGVlcCBmb3IgYSAxLzEwIG9mIGEgc2Vjb25kICovCisJbXNsZWVwKDEwMCk7CisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayB0aGUgdHJhY2UgYnVmZmVyICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsICZjb3VudCk7CisJdHJhY2UtPnJlc2V0KHRyKTsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX1NZU1BST0ZfVFJBQ0VSICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0X2R5bmFtaWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGRkNzdjCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0X2R5bmFtaWMuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitpbnQgRFlOX0ZUUkFDRV9URVNUX05BTUUodm9pZCkKK3sKKwkvKiB1c2VkIHRvIGNhbGwgbWNvdW50ICovCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzcHJvZi5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c3Byb2YuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzAxZTFlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c3Byb2YuYwpAQCAtMCwwICsxLDM2MyBAQAorLyoKKyAqIHRyYWNlIHN0YWNrIHRyYWNlcworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4LCBTb2VyZW4gU2FuZG1hbm4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitzdGF0aWMgc3RydWN0IHRyYWNlX2FycmF5CSpzeXNwcm9mX3RyYWNlOworc3RhdGljIGludCBfX3JlYWRfbW9zdGx5CXRyYWNlcl9lbmFibGVkOworCisvKgorICogMSBtc2VjIHNhbXBsZSBpbnRlcnZhbCBieSBkZWZhdWx0OgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBzYW1wbGVfcGVyaW9kID0gMTAwMDAwMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc2FtcGxlX21heF9kZXB0aCA9IDUxMjsKKworc3RhdGljIERFRklORV9NVVRFWChzYW1wbGVfdGltZXJfbG9jayk7CisvKgorICogUGVyIENQVSBocnRpbWVycyB0aGF0IGRvIHRoZSBwcm9maWxpbmc6CisgKi8KK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgaHJ0aW1lciwgc3RhY2tfdHJhY2VfaHJ0aW1lcik7CisKK3N0cnVjdCBzdGFja19mcmFtZSB7CisJY29uc3Qgdm9pZCBfX3VzZXIJKm5leHRfZnA7CisJdW5zaWduZWQgbG9uZwkJcmV0dXJuX2FkZHJlc3M7Cit9OworCitzdGF0aWMgaW50IGNvcHlfc3RhY2tfZnJhbWUoY29uc3Qgdm9pZCBfX3VzZXIgKmZwLCBzdHJ1Y3Qgc3RhY2tfZnJhbWUgKmZyYW1lKQoreworCWludCByZXQ7CisKKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgZnAsIHNpemVvZigqZnJhbWUpKSkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSAxOworCXBhZ2VmYXVsdF9kaXNhYmxlKCk7CisJaWYgKF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMoZnJhbWUsIGZwLCBzaXplb2YoKmZyYW1lKSkpCisJCXJldCA9IDA7CisJcGFnZWZhdWx0X2VuYWJsZSgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RydWN0IGJhY2t0cmFjZV9pbmZvIHsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1CSpkYXRhOworCXN0cnVjdCB0cmFjZV9hcnJheQkqdHI7CisJaW50CQkJcG9zOworfTsKKworc3RhdGljIHZvaWQKK2JhY2t0cmFjZV93YXJuaW5nX3N5bWJvbCh2b2lkICpkYXRhLCBjaGFyICptc2csIHVuc2lnbmVkIGxvbmcgc3ltYm9sKQoreworCS8qIElnbm9yZSB3YXJuaW5ncyAqLworfQorCitzdGF0aWMgdm9pZCBiYWNrdHJhY2Vfd2FybmluZyh2b2lkICpkYXRhLCBjaGFyICptc2cpCit7CisJLyogSWdub3JlIHdhcm5pbmdzICovCit9CisKK3N0YXRpYyBpbnQgYmFja3RyYWNlX3N0YWNrKHZvaWQgKmRhdGEsIGNoYXIgKm5hbWUpCit7CisJLyogRG9uJ3QgYm90aGVyIHdpdGggSVJRIHN0YWNrcyBmb3Igbm93ICovCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfYWRkcmVzcyh2b2lkICpkYXRhLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCByZWxpYWJsZSkKK3sKKwlzdHJ1Y3QgYmFja3RyYWNlX2luZm8gKmluZm8gPSBkYXRhOworCisJaWYgKGluZm8tPnBvcyA8IHNhbXBsZV9tYXhfZGVwdGggJiYgcmVsaWFibGUpIHsKKwkJX190cmFjZV9zcGVjaWFsKGluZm8tPnRyLCBpbmZvLT5kYXRhLCAxLCBhZGRyLCAwKTsKKworCQlpbmZvLT5wb3MrKzsKKwl9Cit9CisKK2NvbnN0IHN0YXRpYyBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgYmFja3RyYWNlX29wcyA9IHsKKwkud2FybmluZwkJPSBiYWNrdHJhY2Vfd2FybmluZywKKwkud2FybmluZ19zeW1ib2wJCT0gYmFja3RyYWNlX3dhcm5pbmdfc3ltYm9sLAorCS5zdGFjawkJCT0gYmFja3RyYWNlX3N0YWNrLAorCS5hZGRyZXNzCQk9IGJhY2t0cmFjZV9hZGRyZXNzLAorfTsKKworc3RhdGljIGludAordHJhY2Vfa2VybmVsKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCSAgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSkKK3sKKwlzdHJ1Y3QgYmFja3RyYWNlX2luZm8gaW5mbzsKKwl1bnNpZ25lZCBsb25nIGJwOworCWNoYXIgKnN0YWNrOworCisJaW5mby50ciA9IHRyOworCWluZm8uZGF0YSA9IGRhdGE7CisJaW5mby5wb3MgPSAxOworCisJX190cmFjZV9zcGVjaWFsKGluZm8udHIsIGluZm8uZGF0YSwgMSwgcmVncy0+aXAsIDApOworCisJc3RhY2sgPSAoKGNoYXIgKilyZWdzICsgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSk7CisjaWZkZWYgQ09ORklHX0ZSQU1FX1BPSU5URVIKKwlicCA9IHJlZ3MtPmJwOworI2Vsc2UKKwlicCA9IDA7CisjZW5kaWYKKworCWR1bXBfdHJhY2UoTlVMTCwgcmVncywgKHZvaWQgKilzdGFjaywgYnAsICZiYWNrdHJhY2Vfb3BzLCAmaW5mbyk7CisKKwlyZXR1cm4gaW5mby5wb3M7Cit9CisKK3N0YXRpYyB2b2lkIHRpbWVyX25vdGlmeShzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0cnVjdCBzdGFja19mcmFtZSBmcmFtZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyOworCWNvbnN0IHZvaWQgX191c2VyICpmcDsKKwlpbnQgaXNfdXNlcjsKKwlpbnQgaTsKKworCWlmICghcmVncykKKwkJcmV0dXJuOworCisJdHIgPSBzeXNwcm9mX3RyYWNlOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWlzX3VzZXIgPSB1c2VyX21vZGUocmVncyk7CisKKwlpZiAoIWN1cnJlbnQgfHwgY3VycmVudC0+cGlkID09IDApCisJCXJldHVybjsKKworCWlmIChpc191c2VyICYmIGN1cnJlbnQtPnN0YXRlICE9IFRBU0tfUlVOTklORykKKwkJcmV0dXJuOworCisJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAwLCAwLCBjdXJyZW50LT5waWQpOworCisJaWYgKCFpc191c2VyKQorCQlpID0gdHJhY2Vfa2VybmVsKHJlZ3MsIHRyLCBkYXRhKTsKKwllbHNlCisJCWkgPSAwOworCisJLyoKKwkgKiBUcmFjZSB1c2VyIHN0YWNrIGlmIHdlIGFyZSBub3QgYSBrZXJuZWwgdGhyZWFkCisJICovCisJaWYgKGN1cnJlbnQtPm1tICYmIGkgPCBzYW1wbGVfbWF4X2RlcHRoKSB7CisJCXJlZ3MgPSAoc3RydWN0IHB0X3JlZ3MgKiljdXJyZW50LT50aHJlYWQuc3AwIC0gMTsKKworCQlmcCA9ICh2b2lkIF9fdXNlciAqKXJlZ3MtPmJwOworCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgMiwgcmVncy0+aXAsIDApOworCisJCXdoaWxlIChpIDwgc2FtcGxlX21heF9kZXB0aCkgeworCQkJZnJhbWUubmV4dF9mcCA9IDA7CisJCQlmcmFtZS5yZXR1cm5fYWRkcmVzcyA9IDA7CisJCQlpZiAoIWNvcHlfc3RhY2tfZnJhbWUoZnAsICZmcmFtZSkpCisJCQkJYnJlYWs7CisJCQlpZiAoKHVuc2lnbmVkIGxvbmcpZnAgPCByZWdzLT5zcCkKKwkJCQlicmVhazsKKworCQkJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAyLCBmcmFtZS5yZXR1cm5fYWRkcmVzcywKKwkJCQkJKHVuc2lnbmVkIGxvbmcpZnApOworCQkJZnAgPSBmcmFtZS5uZXh0X2ZwOworCisJCQlpKys7CisJCX0KKworCX0KKworCS8qCisJICogU3BlY2lhbCB0cmFjZSBlbnRyeSBpZiB3ZSBvdmVyZmxvdyB0aGUgbWF4IGRlcHRoOgorCSAqLworCWlmIChpID09IHNhbXBsZV9tYXhfZGVwdGgpCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgLTEsIC0xLCAtMSk7CisKKwlfX3RyYWNlX3NwZWNpYWwodHIsIGRhdGEsIDMsIGN1cnJlbnQtPnBpZCwgaSk7Cit9CisKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBzdGFja190cmFjZV90aW1lcl9mbihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikKK3sKKwkvKiB0cmFjZSBoZXJlICovCisJdGltZXJfbm90aWZ5KGdldF9pcnFfcmVncygpLCBzbXBfcHJvY2Vzc29yX2lkKCkpOworCisJaHJ0aW1lcl9mb3J3YXJkX25vdyhocnRpbWVyLCBuc190b19rdGltZShzYW1wbGVfcGVyaW9kKSk7CisKKwlyZXR1cm4gSFJUSU1FUl9SRVNUQVJUOworfQorCitzdGF0aWMgdm9pZCBzdGFydF9zdGFja190aW1lcihpbnQgY3B1KQoreworCXN0cnVjdCBocnRpbWVyICpocnRpbWVyID0gJnBlcl9jcHUoc3RhY2tfdHJhY2VfaHJ0aW1lciwgY3B1KTsKKworCWhydGltZXJfaW5pdChocnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOworCWhydGltZXItPmZ1bmN0aW9uID0gc3RhY2tfdHJhY2VfdGltZXJfZm47CisJaHJ0aW1lci0+Y2JfbW9kZSA9IEhSVElNRVJfQ0JfSVJRU0FGRV9OT19TT0ZUSVJROworCisJaHJ0aW1lcl9zdGFydChocnRpbWVyLCBuc190b19rdGltZShzYW1wbGVfcGVyaW9kKSwgSFJUSU1FUl9NT0RFX1JFTCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0X3N0YWNrX3RpbWVycyh2b2lkKQoreworCWNwdW1hc2tfdCBzYXZlZF9tYXNrID0gY3VycmVudC0+Y3B1c19hbGxvd2VkOworCWludCBjcHU7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgeworCQlzZXRfY3B1c19hbGxvd2VkX3B0cihjdXJyZW50LCAmY3B1bWFza19vZl9jcHUoY3B1KSk7CisJCXN0YXJ0X3N0YWNrX3RpbWVyKGNwdSk7CisJfQorCXNldF9jcHVzX2FsbG93ZWRfcHRyKGN1cnJlbnQsICZzYXZlZF9tYXNrKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9zdGFja190aW1lcihpbnQgY3B1KQoreworCXN0cnVjdCBocnRpbWVyICpocnRpbWVyID0gJnBlcl9jcHUoc3RhY2tfdHJhY2VfaHJ0aW1lciwgY3B1KTsKKworCWhydGltZXJfY2FuY2VsKGhydGltZXIpOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3N0YWNrX3RpbWVycyh2b2lkKQoreworCWludCBjcHU7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJc3RvcF9zdGFja190aW1lcihjcHUpOworfQorCitzdGF0aWMgdm9pZCBzdGFja19yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfc3RhY2tfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwltdXRleF9sb2NrKCZzYW1wbGVfdGltZXJfbG9jayk7CisJc3RhY2tfcmVzZXQodHIpOworCXN0YXJ0X3N0YWNrX3RpbWVycygpOworCXRyYWNlcl9lbmFibGVkID0gMTsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9zdGFja190cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCW11dGV4X2xvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKwlzdG9wX3N0YWNrX3RpbWVycygpOworCXRyYWNlcl9lbmFibGVkID0gMDsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgc3RhY2tfdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXN5c3Byb2ZfdHJhY2UgPSB0cjsKKworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfc3RhY2tfdHJhY2UodHIpOworfQorCitzdGF0aWMgdm9pZCBzdGFja190cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9zdGFja190cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHN0YWNrX3RyYWNlX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJLyogV2hlbiBzdGFydGluZyBhIG5ldyB0cmFjZSwgcmVzZXQgdGhlIGJ1ZmZlcnMgKi8KKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3N0YWNrX3RyYWNlKHRyKTsKKwllbHNlCisJCXN0b3Bfc3RhY2tfdHJhY2UodHIpOworfQorCitzdGF0aWMgc3RydWN0IHRyYWNlciBzdGFja190cmFjZSBfX3JlYWRfbW9zdGx5ID0KK3sKKwkubmFtZQkJPSAic3lzcHJvZiIsCisJLmluaXQJCT0gc3RhY2tfdHJhY2VfaW5pdCwKKwkucmVzZXQJCT0gc3RhY2tfdHJhY2VfcmVzZXQsCisJLmN0cmxfdXBkYXRlCT0gc3RhY2tfdHJhY2VfY3RybF91cGRhdGUsCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TRUxGVEVTVAorCS5zZWxmdGVzdCAgICA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfc3lzcHJvZiwKKyNlbmRpZgorfTsKKworX19pbml0IHN0YXRpYyBpbnQgaW5pdF9zdGFja190cmFjZSh2b2lkKQoreworCXJldHVybiByZWdpc3Rlcl90cmFjZXIoJnN0YWNrX3RyYWNlKTsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3N0YWNrX3RyYWNlKTsKKworI2RlZmluZSBNQVhfTE9OR19ESUdJVFMgMjIKKworc3RhdGljIHNzaXplX3QKK3N5c3Byb2Zfc2FtcGxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmW01BWF9MT05HX0RJR0lUU107CisJaW50IHI7CisKKwlyID0gc3ByaW50ZihidWYsICIlbGRcbiIsIG5zZWNzX3RvX3VzZWNzKHNhbXBsZV9wZXJpb2QpKTsKKworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzeXNwcm9mX3NhbXBsZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmW01BWF9MT05HX0RJR0lUU107CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwlpZiAoY250ID4gTUFYX0xPTkdfRElHSVRTLTEpCisJCWNudCA9IE1BWF9MT05HX0RJR0lUUy0xOworCisJaWYgKGNvcHlfZnJvbV91c2VyKCZidWYsIHVidWYsIGNudCkpCisJCXJldHVybiAtRUZBVUxUOworCisJYnVmW2NudF0gPSAwOworCisJdmFsID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAxMCk7CisJLyoKKwkgKiBFbmZvcmNlIGEgbWluaW11bSBzYW1wbGUgcGVyaW9kIG9mIDEwMCB1c2VjczoKKwkgKi8KKwlpZiAodmFsIDwgMTAwKQorCQl2YWwgPSAxMDA7CisKKwltdXRleF9sb2NrKCZzYW1wbGVfdGltZXJfbG9jayk7CisJc3RvcF9zdGFja190aW1lcnMoKTsKKwlzYW1wbGVfcGVyaW9kID0gdmFsICogMTAwMDsKKwlzdGFydF9zdGFja190aW1lcnMoKTsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHN5c3Byb2Zfc2FtcGxlX2ZvcHMgPSB7CisJLnJlYWQJCT0gc3lzcHJvZl9zYW1wbGVfcmVhZCwKKwkud3JpdGUJCT0gc3lzcHJvZl9zYW1wbGVfd3JpdGUsCit9OworCit2b2lkIGluaXRfdHJhY2VyX3N5c3Byb2ZfZGVidWdmcyhzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcikKK3sKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic3lzcHJvZl9zYW1wbGVfcGVyaW9kIiwgMDY0NCwKKwkJCWRfdHJhY2VyLCBOVUxMLCAmc3lzcHJvZl9zYW1wbGVfZm9wcyk7CisJaWYgKGVudHJ5KQorCQlyZXR1cm47CisJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdkeW5fZnRyYWNlX3RvdGFsX2luZm8nIGVudHJ5XG4iKTsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC93b3JrcXVldWUuYyBiL2tlcm5lbC93b3JrcXVldWUuYwppbmRleCAyOWZjMzlmLi5jZTc3OTk1IDEwMDY0NAotLS0gYS9rZXJuZWwvd29ya3F1ZXVlLmMKKysrIGIva2VybmVsL3dvcmtxdWV1ZS5jCkBAIC0xMyw3ICsxMyw3IEBACiAgKiAgIEthaSBQZXR6a2UgPHdwcEBtYXJpZS5waHlzaWsudHUtYmVybGluLmRlPgogICogICBUaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PgogICoKLSAqIE1hZGUgdG8gdXNlIGFsbG9jX3BlcmNwdSBieSBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4uCisgKiBNYWRlIHRvIHVzZSBhbGxvY19wZXJjcHUgYnkgQ2hyaXN0b3BoIExhbWV0ZXIuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1ZwppbmRleCBkMjA5OWY0Li5jNDU5ZTg1IDEwMDY0NAotLS0gYS9saWIvS2NvbmZpZy5kZWJ1ZworKysgYi9saWIvS2NvbmZpZy5kZWJ1ZwpAQCAtNDE5LDcgKzQxOSw2IEBACiAKIGNvbmZpZyBTVEFDS1RSQUNFCiAJYm9vbAotCWRlcGVuZHMgb24gREVCVUdfS0VSTkVMCiAJZGVwZW5kcyBvbiBTVEFDS1RSQUNFX1NVUFBPUlQKIAogY29uZmlnIERFQlVHX0tPQkpFQ1QKQEAgLTU2Myw2ICs1NjIsOSBAQAogCSAgZm9yIGRpc3RyaWJ1dGlvbnMgb3IgZ2VuZXJhbCBrZXJuZWxzLCBidXQgb25seSBmb3Iga2VybmVsCiAJICBkZXZlbG9wZXJzIHdvcmtpbmcgb24gYXJjaGl0ZWN0dXJlIGNvZGUuCiAKKwkgIE5vdGUgdGhhdCBpZiB5b3Ugd2FudCB0byBhbHNvIHRlc3Qgc2F2ZWQgYmFja3RyYWNlcywgeW91IHdpbGwKKwkgIGhhdmUgdG8gZW5hYmxlIFNUQUNLVFJBQ0UgYXMgd2VsbC4KKwogCSAgU2F5IE4gaWYgeW91IGFyZSB1bnN1cmUuCiAKIGNvbmZpZyBMS0RUTQpAQCAtNjM0LDYgKzYzNiw4IEBACiAJICBFbmFibGUgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBMYXRlbmN5VE9QIHRvb2wKIAkgIHRvIGZpbmQgb3V0IHdoaWNoIHVzZXJzcGFjZSBpcyBibG9ja2luZyBvbiB3aGF0IGtlcm5lbCBvcGVyYXRpb25zLgogCitzb3VyY2Uga2VybmVsL3RyYWNlL0tjb25maWcKKwogY29uZmlnIFBST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKIAlib29sICJSZW1vdGUgZGVidWdnaW5nIG92ZXIgRmlyZVdpcmUgZWFybHkgb24gYm9vdCIKIAlkZXBlbmRzIG9uIFBDSSAmJiBYODYKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQppbmRleCA3NGIwY2ZiLi40YjgzNmE1IDEwMDY0NAotLS0gYS9saWIvTWFrZWZpbGUKKysrIGIvbGliL01ha2VmaWxlCkBAIC04LDYgKzgsMTUgQEAKIAkgc2hhMS5vIGlycV9yZWdzLm8gcmVjaXByb2NhbF9kaXYubyBhcmd2X3NwbGl0Lm8gXAogCSBwcm9wb3J0aW9ucy5vIHByaW9faGVhcC5vIHJhdGVsaW1pdC5vCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHByb2ZpbGUgc3RyaW5nLm8sIHNpbmNlIGl0IG1heSBiZSB1c2VkIGluIGVhcmx5IGJvb3Qgb3IgdmRzbworQ0ZMQUdTX1JFTU9WRV9zdHJpbmcubyA9IC1wZworIyBBbHNvIGRvIG5vdCBwcm9maWxlIGFueSBkZWJ1ZyB1dGlsaXRpZXMKK0NGTEFHU19SRU1PVkVfc3BpbmxvY2tfZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9saXN0X2RlYnVnLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfZGVidWdvYmplY3RzLm8gPSAtcGcKK2VuZGlmCisKIGxpYi0kKENPTkZJR19NTVUpICs9IGlvcmVtYXAubwogbGliLSQoQ09ORklHX1NNUCkgKz0gY3B1bWFzay5vCiAKZGlmZiAtLWdpdCBhL2xpYi9idWcuYyBiL2xpYi9idWcuYwppbmRleCA1MzBmMzhmLi5iZmVhZmQ2IDEwMDY0NAotLS0gYS9saWIvYnVnLmMKKysrIGIvbGliL2J1Zy5jCkBAIC0zNyw2ICszNyw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KIApAQCAtMTQ5LDYgKzE1MCw3IEBACiAJCQkgICAgICAgKHZvaWQgKilidWdhZGRyKTsKIAogCQlzaG93X3JlZ3MocmVncyk7CisJCWFkZF90YWludChUQUlOVF9XQVJOKTsKIAkJcmV0dXJuIEJVR19UUkFQX1RZUEVfV0FSTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9kZWJ1Z29iamVjdHMuYyBiL2xpYi9kZWJ1Z29iamVjdHMuYwppbmRleCBhNzZhNWUxLi44NWIxOGQ3IDEwMDY0NAotLS0gYS9saWIvZGVidWdvYmplY3RzLmMKKysrIGIvbGliL2RlYnVnb2JqZWN0cy5jCkBAIC02OCw2ICs2OCw3IEBACiB7CiAJZ2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PUkVUUlkgfCBfX0dGUF9OT1dBUk47CiAJc3RydWN0IGRlYnVnX29iaiAqbmV3OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAobGlrZWx5KG9ial9wb29sX2ZyZWUgPj0gT0RFQlVHX1BPT0xfTUlOX0xFVkVMKSkKIAkJcmV0dXJuIG9ial9wb29sX2ZyZWU7CkBAIC04MSwxMCArODIsMTAgQEAKIAkJaWYgKCFuZXcpCiAJCQlyZXR1cm4gb2JqX3Bvb2xfZnJlZTsKIAotCQlzcGluX2xvY2soJnBvb2xfbG9jayk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb29sX2xvY2ssIGZsYWdzKTsKIAkJaGxpc3RfYWRkX2hlYWQoJm5ldy0+bm9kZSwgJm9ial9wb29sKTsKIAkJb2JqX3Bvb2xfZnJlZSsrOwotCQlzcGluX3VubG9jaygmcG9vbF9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbF9sb2NrLCBmbGFncyk7CiAJfQogCXJldHVybiBvYmpfcG9vbF9mcmVlOwogfQpAQCAtMTEwLDE2ICsxMTEsMTMgQEAKIH0KIAogLyoKLSAqIEFsbG9jYXRlIGEgbmV3IG9iamVjdC4gSWYgdGhlIHBvb2wgaXMgZW1wdHkgYW5kIG5vIHJlZmlsbCBwb3NzaWJsZSwKLSAqIHN3aXRjaCBvZmYgdGhlIGRlYnVnZ2VyLgorICogQWxsb2NhdGUgYSBuZXcgb2JqZWN0LiBJZiB0aGUgcG9vbCBpcyBlbXB0eSwgc3dpdGNoIG9mZiB0aGUgZGVidWdnZXIuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVidWdfb2JqICoKIGFsbG9jX29iamVjdCh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfYnVja2V0ICpiLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2NyICpkZXNjcikKIHsKIAlzdHJ1Y3QgZGVidWdfb2JqICpvYmogPSBOVUxMOwotCWludCByZXRyeSA9IDA7CiAKLXJlcGVhdDoKIAlzcGluX2xvY2soJnBvb2xfbG9jayk7CiAJaWYgKG9ial9wb29sLmZpcnN0KSB7CiAJCW9iagkgICAgPSBobGlzdF9lbnRyeShvYmpfcG9vbC5maXJzdCwgdHlwZW9mKCpvYmopLCBub2RlKTsKQEAgLTE0MSw5ICsxMzksNiBAQAogCX0KIAlzcGluX3VubG9jaygmcG9vbF9sb2NrKTsKIAotCWlmIChmaWxsX3Bvb2woKSAmJiAhb2JqICYmICFyZXRyeSsrKQotCQlnb3RvIHJlcGVhdDsKLQogCXJldHVybiBvYmo7CiB9CiAKQEAgLTI2MSw2ICsyNTYsOCBAQAogCXN0cnVjdCBkZWJ1Z19vYmogKm9iajsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCisJZmlsbF9wb29sKCk7CisKIAlkYiA9IGdldF9idWNrZXQoKHVuc2lnbmVkIGxvbmcpIGFkZHIpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRiLT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9saWIvZGl2NjQuYyBiL2xpYi9kaXY2NC5jCmluZGV4IGJiNWJkMGMuLmExMTFlYjggMTAwNjQ0Ci0tLSBhL2xpYi9kaXY2NC5jCisrKyBiL2xpYi9kaXY2NC5jCkBAIC05OCwzICs5OCwxMyBAQAogI2VuZGlmCiAKICNlbmRpZiAvKiBCSVRTX1BFUl9MT05HID09IDMyICovCisKKy8qCisgKiBJdGVyYXRpdmUgZGl2L21vZCBmb3IgdXNlIHdoZW4gZGl2aWRlbmQgaXMgbm90IGV4cGVjdGVkIHRvIGJlIG11Y2gKKyAqIGJpZ2dlciB0aGFuIGRpdmlzb3IuCisgKi8KK3UzMiBpdGVyX2Rpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRpdmlzb3IsIHU2NCAqcmVtYWluZGVyKQoreworCXJldHVybiBfX2l0ZXJfZGl2X3U2NF9yZW0oZGl2aWRlbmQsIGRpdmlzb3IsIHJlbWFpbmRlcik7Cit9CitFWFBPUlRfU1lNQk9MKGl0ZXJfZGl2X3U2NF9yZW0pOwpkaWZmIC0tZ2l0IGEvbGliL3BlcmNwdV9jb3VudGVyLmMgYi9saWIvcGVyY3B1X2NvdW50ZXIuYwppbmRleCAxMTkxNzQ0Li40YThiYTRiIDEwMDY0NAotLS0gYS9saWIvcGVyY3B1X2NvdW50ZXIuYworKysgYi9saWIvcGVyY3B1X2NvdW50ZXIuYwpAQCAtNTIsNyArNTIsNyBAQAogICogQWRkIHVwIGFsbCB0aGUgcGVyLWNwdSBjb3VudHMsIHJldHVybiB0aGUgcmVzdWx0LiAgVGhpcyBpcyBhIG1vcmUgYWNjdXJhdGUKICAqIGJ1dCBtdWNoIHNsb3dlciB2ZXJzaW9uIG9mIHBlcmNwdV9jb3VudGVyX3JlYWRfcG9zaXRpdmUoKQogICovCi1zNjQgX19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCitzNjQgX19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIGludCBzZXQpCiB7CiAJczY0IHJldDsKIAlpbnQgY3B1OwpAQCAtNjIsNyArNjIsMTIgQEAKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewogCQlzMzIgKnBjb3VudCA9IHBlcl9jcHVfcHRyKGZiYy0+Y291bnRlcnMsIGNwdSk7CiAJCXJldCArPSAqcGNvdW50OworCQlpZiAoc2V0KQorCQkJKnBjb3VudCA9IDA7CiAJfQorCWlmIChzZXQpCisJCWZiYy0+Y291bnQgPSByZXQ7CisKIAlzcGluX3VubG9jaygmZmJjLT5sb2NrKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvbGliL3JhZGl4LXRyZWUuYyBiL2xpYi9yYWRpeC10cmVlLmMKaW5kZXggYmQ1MjE3MS4uNTZlYzIxYSAxMDA2NDQKLS0tIGEvbGliL3JhZGl4LXRyZWUuYworKysgYi9saWIvcmFkaXgtdHJlZS5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMSBNb21jaGlsIFZlbGlrb3YKICAqIFBvcnRpb25zIENvcHlyaWdodCAoQykgMjAwMSBDaHJpc3RvcGggSGVsbHdpZwotICogQ29weXJpZ2h0IChDKSAyMDA1IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgU0dJLCBDaHJpc3RvcGggTGFtZXRlcgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pY2sgUGlnZ2luCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtODgsNiArODgsNTcgQEAKIAlyZXR1cm4gcm9vdC0+Z2ZwX21hc2sgJiBfX0dGUF9CSVRTX01BU0s7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB0YWdfc2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCisJCWludCBvZmZzZXQpCit7CisJX19zZXRfYml0KG9mZnNldCwgbm9kZS0+dGFnc1t0YWddKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHRhZ19jbGVhcihzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgdGFnLAorCQlpbnQgb2Zmc2V0KQoreworCV9fY2xlYXJfYml0KG9mZnNldCwgbm9kZS0+dGFnc1t0YWddKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgdGFnX2dldChzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgdGFnLAorCQlpbnQgb2Zmc2V0KQoreworCXJldHVybiB0ZXN0X2JpdChvZmZzZXQsIG5vZGUtPnRhZ3NbdGFnXSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByb290X3RhZ19zZXQoc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqcm9vdCwgdW5zaWduZWQgaW50IHRhZykKK3sKKwlyb290LT5nZnBfbWFzayB8PSAoX19mb3JjZSBnZnBfdCkoMSA8PCAodGFnICsgX19HRlBfQklUU19TSElGVCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcm9vdF90YWdfY2xlYXIoc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqcm9vdCwgdW5zaWduZWQgaW50IHRhZykKK3sKKwlyb290LT5nZnBfbWFzayAmPSAoX19mb3JjZSBnZnBfdCl+KDEgPDwgKHRhZyArIF9fR0ZQX0JJVFNfU0hJRlQpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJvb3RfdGFnX2NsZWFyX2FsbChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290KQoreworCXJvb3QtPmdmcF9tYXNrICY9IF9fR0ZQX0JJVFNfTUFTSzsKK30KKworc3RhdGljIGlubGluZSBpbnQgcm9vdF90YWdfZ2V0KHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QsIHVuc2lnbmVkIGludCB0YWcpCit7CisJcmV0dXJuIChfX2ZvcmNlIHVuc2lnbmVkKXJvb3QtPmdmcF9tYXNrICYgKDEgPDwgKHRhZyArIF9fR0ZQX0JJVFNfU0hJRlQpKTsKK30KKworLyoKKyAqIFJldHVybnMgMSBpZiBhbnkgc2xvdCBpbiB0aGUgbm9kZSBoYXMgdGhpcyB0YWcgc2V0LgorICogT3RoZXJ3aXNlIHJldHVybnMgMC4KKyAqLworc3RhdGljIGlubGluZSBpbnQgYW55X3RhZ19zZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZykKK3sKKwlpbnQgaWR4OworCWZvciAoaWR4ID0gMDsgaWR4IDwgUkFESVhfVFJFRV9UQUdfTE9OR1M7IGlkeCsrKSB7CisJCWlmIChub2RlLT50YWdzW3RhZ11baWR4XSkKKwkJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KIC8qCiAgKiBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgY2FsbGVyIGhhcyBwZXJmb3JtZWQgYXBwcm9wcmlhdGUgcHJlYWxsb2NhdGlvbiwgYW5kCiAgKiB0aGF0IHRoZSBjYWxsZXIgaGFzIHBpbm5lZCB0aGlzIHRocmVhZCBvZiBjb250cm9sIHRvIHRoZSBjdXJyZW50IENQVS4KQEAgLTEyNCw2ICsxNzUsMTcgQEAKIHsKIAlzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlID0KIAkJCWNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlLCByY3VfaGVhZCk7CisKKwkvKgorCSAqIG11c3Qgb25seSBmcmVlIHplcm9lZCBub2RlcyBpbnRvIHRoZSBzbGFiLiByYWRpeF90cmVlX3NocmluaworCSAqIGNhbiBsZWF2ZSB1cyB3aXRoIGEgbm9uLU5VTEwgZW50cnkgaW4gdGhlIGZpcnN0IHNsb3QsIHNvIGNsZWFyCisJICogdGhhdCBoZXJlIHRvIG1ha2Ugc3VyZS4KKwkgKi8KKwl0YWdfY2xlYXIobm9kZSwgMCwgMCk7CisJdGFnX2NsZWFyKG5vZGUsIDEsIDApOworCW5vZGUtPnNsb3RzWzBdID0gTlVMTDsKKwlub2RlLT5jb3VudCA9IDA7CisKIAlrbWVtX2NhY2hlX2ZyZWUocmFkaXhfdHJlZV9ub2RlX2NhY2hlcCwgbm9kZSk7CiB9CiAKQEAgLTE2NSw1OSArMjI3LDYgQEAKIH0KIEVYUE9SVF9TWU1CT0wocmFkaXhfdHJlZV9wcmVsb2FkKTsKIAotc3RhdGljIGlubGluZSB2b2lkIHRhZ19zZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKLQkJaW50IG9mZnNldCkKLXsKLQlfX3NldF9iaXQob2Zmc2V0LCBub2RlLT50YWdzW3RhZ10pOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgdGFnX2NsZWFyKHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0JCWludCBvZmZzZXQpCi17Ci0JX19jbGVhcl9iaXQob2Zmc2V0LCBub2RlLT50YWdzW3RhZ10pOwotfQotCi1zdGF0aWMgaW5saW5lIGludCB0YWdfZ2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0JCWludCBvZmZzZXQpCi17Ci0JcmV0dXJuIHRlc3RfYml0KG9mZnNldCwgbm9kZS0+dGFnc1t0YWddKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHJvb3RfdGFnX3NldChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290LCB1bnNpZ25lZCBpbnQgdGFnKQotewotCXJvb3QtPmdmcF9tYXNrIHw9IChfX2ZvcmNlIGdmcF90KSgxIDw8ICh0YWcgKyBfX0dGUF9CSVRTX1NISUZUKSk7Ci19Ci0KLQotc3RhdGljIGlubGluZSB2b2lkIHJvb3RfdGFnX2NsZWFyKHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QsIHVuc2lnbmVkIGludCB0YWcpCi17Ci0Jcm9vdC0+Z2ZwX21hc2sgJj0gKF9fZm9yY2UgZ2ZwX3QpfigxIDw8ICh0YWcgKyBfX0dGUF9CSVRTX1NISUZUKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCByb290X3RhZ19jbGVhcl9hbGwoc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqcm9vdCkKLXsKLQlyb290LT5nZnBfbWFzayAmPSBfX0dGUF9CSVRTX01BU0s7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJvb3RfdGFnX2dldChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290LCB1bnNpZ25lZCBpbnQgdGFnKQotewotCXJldHVybiAoX19mb3JjZSB1bnNpZ25lZClyb290LT5nZnBfbWFzayAmICgxIDw8ICh0YWcgKyBfX0dGUF9CSVRTX1NISUZUKSk7Ci19Ci0KLS8qCi0gKiBSZXR1cm5zIDEgaWYgYW55IHNsb3QgaW4gdGhlIG5vZGUgaGFzIHRoaXMgdGFnIHNldC4KLSAqIE90aGVyd2lzZSByZXR1cm5zIDAuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGFueV90YWdfc2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcpCi17Ci0JaW50IGlkeDsKLQlmb3IgKGlkeCA9IDA7IGlkeCA8IFJBRElYX1RSRUVfVEFHX0xPTkdTOyBpZHgrKykgewotCQlpZiAobm9kZS0+dGFnc1t0YWddW2lkeF0pCi0JCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KIC8qCiAgKglSZXR1cm4gdGhlIG1heGltdW0ga2V5IHdoaWNoIGNhbiBiZSBzdG9yZSBpbnRvIGEKICAqCXJhZGl4IHRyZWUgd2l0aCBoZWlnaHQgSEVJR0hULgpAQCAtOTMwLDExICs5MzksNiBAQAogCQkJbmV3cHRyID0gcmFkaXhfdHJlZV9wdHJfdG9faW5kaXJlY3QobmV3cHRyKTsKIAkJcm9vdC0+cm5vZGUgPSBuZXdwdHI7CiAJCXJvb3QtPmhlaWdodC0tOwotCQkvKiBtdXN0IG9ubHkgZnJlZSB6ZXJvZWQgbm9kZXMgaW50byB0aGUgc2xhYiAqLwotCQl0YWdfY2xlYXIodG9fZnJlZSwgMCwgMCk7Ci0JCXRhZ19jbGVhcih0b19mcmVlLCAxLCAwKTsKLQkJdG9fZnJlZS0+c2xvdHNbMF0gPSBOVUxMOwotCQl0b19mcmVlLT5jb3VudCA9IDA7CiAJCXJhZGl4X3RyZWVfbm9kZV9mcmVlKHRvX2ZyZWUpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2xpYi9zbXBfcHJvY2Vzc29yX2lkLmMgYi9saWIvc21wX3Byb2Nlc3Nvcl9pZC5jCmluZGV4IDZjOTBmYjkuLjNiNGRjMDkgMTAwNjQ0Ci0tLSBhL2xpYi9zbXBfcHJvY2Vzc29yX2lkLmMKKysrIGIvbGliL3NtcF9wcm9jZXNzb3JfaWQuYwpAQCAtNyw3ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKLXVuc2lnbmVkIGludCBkZWJ1Z19zbXBfcHJvY2Vzc29yX2lkKHZvaWQpCitub3RyYWNlIHVuc2lnbmVkIGludCBkZWJ1Z19zbXBfcHJvY2Vzc29yX2lkKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBwcmVlbXB0X2NvdW50ID0gcHJlZW1wdF9jb3VudCgpOwogCWludCB0aGlzX2NwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CkBAIC0zNyw3ICszNyw3IEBACiAJLyoKIAkgKiBBdm9pZCByZWN1cnNpb246CiAJICovCi0JcHJlZW1wdF9kaXNhYmxlKCk7CisJcHJlZW1wdF9kaXNhYmxlX25vdHJhY2UoKTsKIAogCWlmICghcHJpbnRrX3JhdGVsaW1pdCgpKQogCQlnb3RvIG91dF9lbmFibGU7CkBAIC00OSw3ICs0OSw3IEBACiAJZHVtcF9zdGFjaygpOwogCiBvdXRfZW5hYmxlOgotCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKKwlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkX25vdHJhY2UoKTsKIG91dDoKIAlyZXR1cm4gdGhpc19jcHU7CiB9CmRpZmYgLS1naXQgYS9saWIvdHNfYm0uYyBiL2xpYi90c19ibS5jCmluZGV4IGQ5MDgyMmMuLjRhN2ZjZTcgMTAwNjQ0Ci0tLSBhL2xpYi90c19ibS5jCisrKyBiL2xpYi90c19ibS5jCkBAIC02Myw3ICs2Myw3IEBACiAJc3RydWN0IHRzX2JtICpibSA9IHRzX2NvbmZpZ19wcml2KGNvbmYpOwogCXVuc2lnbmVkIGludCBpLCB0ZXh0X2xlbiwgY29uc3VtZWQgPSBzdGF0ZS0+b2Zmc2V0OwogCWNvbnN0IHU4ICp0ZXh0OwotCWludCBzaGlmdCA9IGJtLT5wYXRsZW4sIGJzOworCWludCBzaGlmdCA9IGJtLT5wYXRsZW4gLSAxLCBiczsKIAogCWZvciAoOzspIHsKIAkJdGV4dF9sZW4gPSBjb25mLT5nZXRfbmV4dF9ibG9jayhjb25zdW1lZCwgJnRleHQsIGNvbmYsIHN0YXRlKTsKZGlmZiAtLWdpdCBhL2xpYi92c3ByaW50Zi5jIGIvbGliL3ZzcHJpbnRmLmMKaW5kZXggNjAyMTc1Ny4uMWRjMmQxZCAxMDA2NDQKLS0tIGEvbGliL3ZzcHJpbnRmLmMKKysrIGIvbGliL3ZzcHJpbnRmLmMKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4JCS8qIGZvciBQQUdFX1NJWkUgKi8KICNpbmNsdWRlIDxhc20vZGl2NjQuaD4KQEAgLTQ4Miw2ICs0ODQsODkgQEAKIAlyZXR1cm4gYnVmOwogfQogCitzdGF0aWMgY2hhciAqc3RyaW5nKGNoYXIgKmJ1ZiwgY2hhciAqZW5kLCBjaGFyICpzLCBpbnQgZmllbGRfd2lkdGgsIGludCBwcmVjaXNpb24sIGludCBmbGFncykKK3sKKwlpbnQgbGVuLCBpOworCisJaWYgKCh1bnNpZ25lZCBsb25nKXMgPCBQQUdFX1NJWkUpCisJCXMgPSAiPE5VTEw+IjsKKworCWxlbiA9IHN0cm5sZW4ocywgcHJlY2lzaW9uKTsKKworCWlmICghKGZsYWdzICYgTEVGVCkpIHsKKwkJd2hpbGUgKGxlbiA8IGZpZWxkX3dpZHRoLS0pIHsKKwkJCWlmIChidWYgPCBlbmQpCisJCQkJKmJ1ZiA9ICcgJzsKKwkJCSsrYnVmOworCQl9CisJfQorCWZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgeworCQlpZiAoYnVmIDwgZW5kKQorCQkJKmJ1ZiA9ICpzOworCQkrK2J1ZjsgKytzOworCX0KKwl3aGlsZSAobGVuIDwgZmllbGRfd2lkdGgtLSkgeworCQlpZiAoYnVmIDwgZW5kKQorCQkJKmJ1ZiA9ICcgJzsKKwkJKytidWY7CisJfQorCXJldHVybiBidWY7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqZGVyZWZlcmVuY2VfZnVuY3Rpb25fZGVzY3JpcHRvcih2b2lkICpwdHIpCit7CisjaWYgZGVmaW5lZChDT05GSUdfSUE2NCkgfHwgZGVmaW5lZChDT05GSUdfUFBDNjQpCisJdm9pZCAqcDsKKwlpZiAoIXByb2JlX2tlcm5lbF9hZGRyZXNzKHB0ciwgcCkpCisJCXB0ciA9IHA7CisjZW5kaWYKKwlyZXR1cm4gcHRyOworfQorCitzdGF0aWMgY2hhciAqc3ltYm9sX3N0cmluZyhjaGFyICpidWYsIGNoYXIgKmVuZCwgdm9pZCAqcHRyLCBpbnQgZmllbGRfd2lkdGgsIGludCBwcmVjaXNpb24sIGludCBmbGFncykKK3sKKwl1bnNpZ25lZCBsb25nIHZhbHVlID0gKHVuc2lnbmVkIGxvbmcpIHB0cjsKKyNpZmRlZiBDT05GSUdfS0FMTFNZTVMKKwljaGFyIHN5bVtLU1lNX1NZTUJPTF9MRU5dOworCXNwcmludF9zeW1ib2woc3ltLCB2YWx1ZSk7CisJcmV0dXJuIHN0cmluZyhidWYsIGVuZCwgc3ltLCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CisjZWxzZQorCWZpZWxkX3dpZHRoID0gMipzaXplb2Yodm9pZCAqKTsKKwlmbGFncyB8PSBTUEVDSUFMIHwgU01BTEwgfCBaRVJPUEFEOworCXJldHVybiBudW1iZXIoYnVmLCBlbmQsIHZhbHVlLCAxNiwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworI2VuZGlmCit9CisKKy8qCisgKiBTaG93IGEgJyVwJyB0aGluZy4gIEEga2VybmVsIGV4dGVuc2lvbiBpcyB0aGF0IHRoZSAnJXAnIGlzIGZvbGxvd2VkCisgKiBieSBhbiBleHRyYSBzZXQgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgdGhhdCBhcmUgZXh0ZW5kZWQgZm9ybWF0CisgKiBzcGVjaWZpZXJzLgorICoKKyAqIFJpZ2h0IG5vdyB3ZSBqdXN0IGhhbmRsZSAnRicgKGZvciBzeW1ib2xpYyBGdW5jdGlvbiBkZXNjcmlwdG9yIHBvaW50ZXJzKQorICogYW5kICdTJyAoZm9yIFN5bWJvbGljIGRpcmVjdCBwb2ludGVycyksIGJ1dCB0aGlzIGNhbiBlYXNpbHkgYmUKKyAqIGV4dGVuZGVkIGluIHRoZSBmdXR1cmUgKG5ldHdvcmsgYWRkcmVzcyB0eXBlcyBldGMpLgorICoKKyAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gJ1MnIGFuZCAnRicgaXMgdGhhdCBvbiBpYTY0IGFuZCBwcGM2NCBmdW5jdGlvbgorICogcG9pbnRlcnMgYXJlIHJlYWxseSBmdW5jdGlvbiBkZXNjcmlwdG9ycywgd2hpY2ggY29udGFpbiBhIHBvaW50ZXIgdGhlCisgKiByZWFsIGFkZHJlc3MuIAorICovCitzdGF0aWMgY2hhciAqcG9pbnRlcihjb25zdCBjaGFyICpmbXQsIGNoYXIgKmJ1ZiwgY2hhciAqZW5kLCB2b2lkICpwdHIsIGludCBmaWVsZF93aWR0aCwgaW50IHByZWNpc2lvbiwgaW50IGZsYWdzKQoreworCXN3aXRjaCAoKmZtdCkgeworCWNhc2UgJ0YnOgorCQlwdHIgPSBkZXJlZmVyZW5jZV9mdW5jdGlvbl9kZXNjcmlwdG9yKHB0cik7CisJCS8qIEZhbGx0aHJvdWdoICovCisJY2FzZSAnUyc6CisJCXJldHVybiBzeW1ib2xfc3RyaW5nKGJ1ZiwgZW5kLCBwdHIsIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKKwl9CisJZmxhZ3MgfD0gU01BTEw7CisJaWYgKGZpZWxkX3dpZHRoID09IC0xKSB7CisJCWZpZWxkX3dpZHRoID0gMipzaXplb2Yodm9pZCAqKTsKKwkJZmxhZ3MgfD0gWkVST1BBRDsKKwl9CisJcmV0dXJuIG51bWJlcihidWYsIGVuZCwgKHVuc2lnbmVkIGxvbmcpIHB0ciwgMTYsIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKK30KKwogLyoqCiAgKiB2c25wcmludGYgLSBGb3JtYXQgYSBzdHJpbmcgYW5kIHBsYWNlIGl0IGluIGEgYnVmZmVyCiAgKiBAYnVmOiBUaGUgYnVmZmVyIHRvIHBsYWNlIHRoZSByZXN1bHQgaW50bwpAQCAtNTAyLDExICs1ODcsOSBAQAogICovCiBpbnQgdnNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogewotCWludCBsZW47CiAJdW5zaWduZWQgbG9uZyBsb25nIG51bTsKLQlpbnQgaSwgYmFzZTsKKwlpbnQgYmFzZTsKIAljaGFyICpzdHIsICplbmQsIGM7Ci0JY29uc3QgY2hhciAqczsKIAogCWludCBmbGFnczsJCS8qIGZsYWdzIHRvIG51bWJlcigpICovCiAKQEAgLTYyMiw0MyArNzA1LDE4IEBACiAJCQkJY29udGludWU7CiAKIAkJCWNhc2UgJ3MnOgotCQkJCXMgPSB2YV9hcmcoYXJncywgY2hhciAqKTsKLQkJCQlpZiAoKHVuc2lnbmVkIGxvbmcpcyA8IFBBR0VfU0laRSkKLQkJCQkJcyA9ICI8TlVMTD4iOwotCi0JCQkJbGVuID0gc3RybmxlbihzLCBwcmVjaXNpb24pOwotCi0JCQkJaWYgKCEoZmxhZ3MgJiBMRUZUKSkgewotCQkJCQl3aGlsZSAobGVuIDwgZmllbGRfd2lkdGgtLSkgewotCQkJCQkJaWYgKHN0ciA8IGVuZCkKLQkJCQkJCQkqc3RyID0gJyAnOwotCQkJCQkJKytzdHI7Ci0JCQkJCX0KLQkJCQl9Ci0JCQkJZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0JCQkJCWlmIChzdHIgPCBlbmQpCi0JCQkJCQkqc3RyID0gKnM7Ci0JCQkJCSsrc3RyOyArK3M7Ci0JCQkJfQotCQkJCXdoaWxlIChsZW4gPCBmaWVsZF93aWR0aC0tKSB7Ci0JCQkJCWlmIChzdHIgPCBlbmQpCi0JCQkJCQkqc3RyID0gJyAnOwotCQkJCQkrK3N0cjsKLQkJCQl9CisJCQkJc3RyID0gc3RyaW5nKHN0ciwgZW5kLCB2YV9hcmcoYXJncywgY2hhciAqKSwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOwogCQkJCWNvbnRpbnVlOwogCiAJCQljYXNlICdwJzoKLQkJCQlmbGFncyB8PSBTTUFMTDsKLQkJCQlpZiAoZmllbGRfd2lkdGggPT0gLTEpIHsKLQkJCQkJZmllbGRfd2lkdGggPSAyKnNpemVvZih2b2lkICopOwotCQkJCQlmbGFncyB8PSBaRVJPUEFEOwotCQkJCX0KLQkJCQlzdHIgPSBudW1iZXIoc3RyLCBlbmQsCi0JCQkJCQkodW5zaWduZWQgbG9uZykgdmFfYXJnKGFyZ3MsIHZvaWQgKiksCi0JCQkJCQkxNiwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworCQkJCXN0ciA9IHBvaW50ZXIoZm10KzEsIHN0ciwgZW5kLAorCQkJCQkJdmFfYXJnKGFyZ3MsIHZvaWQgKiksCisJCQkJCQlmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CisJCQkJLyogU2tpcCBhbGwgYWxwaGFudW1lcmljIHBvaW50ZXIgc3VmZml4ZXMgKi8KKwkJCQl3aGlsZSAoaXNhbG51bShmbXRbMV0pKQorCQkJCQlmbXQrKzsKIAkJCQljb250aW51ZTsKIAotCiAJCQljYXNlICduJzoKIAkJCQkvKiBGSVhNRToKIAkJCQkqIFdoYXQgZG9lcyBDOTkgc2F5IGFib3V0IHRoZSBvdmVyZmxvdyBjYXNlIGhlcmU/ICovCmRpZmYgLS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwppbmRleCAzYWE4MTlkLi5jNGRlODUyIDEwMDY0NAotLS0gYS9tbS9LY29uZmlnCisrKyBiL21tL0tjb25maWcKQEAgLTEyOSw3ICsxMjksNyBAQAogCWJvb2wgIkFsbG93IGZvciBtZW1vcnkgaG90LWFkZCIKIAlkZXBlbmRzIG9uIFNQQVJTRU1FTSB8fCBYODZfNjRfQUNQSV9OVU1BCiAJZGVwZW5kcyBvbiBIT1RQTFVHICYmICFISUJFUk5BVElPTiAmJiBBUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRwotCWRlcGVuZHMgb24gKElBNjQgfHwgWDg2IHx8IFBQQzY0IHx8IFNVUEVSSCkKKwlkZXBlbmRzIG9uIChJQTY0IHx8IFg4NiB8fCBQUEM2NCB8fCBTVVBFUkggfHwgUzM5MCkKIAogY29tbWVudCAiTWVtb3J5IGhvdHBsdWcgaXMgY3VycmVudGx5IGluY29tcGF0aWJsZSB3aXRoIFNvZnR3YXJlIFN1c3BlbmQiCiAJZGVwZW5kcyBvbiBTUEFSU0VNRU0gJiYgSE9UUExVRyAmJiBISUJFUk5BVElPTgpAQCAtMTk5LDcgKzE5OSw3IEBACiBjb25maWcgTlJfUVVJQ0sKIAlpbnQKIAlkZXBlbmRzIG9uIFFVSUNLTElTVAotCWRlZmF1bHQgIjIiIGlmIFNVUEVSSAorCWRlZmF1bHQgIjIiIGlmIFNVUEVSSCB8fCBBVlIzMgogCWRlZmF1bHQgIjEiCiAKIGNvbmZpZyBWSVJUX1RPX0JVUwpkaWZmIC0tZ2l0IGEvbW0vYWxsb2NwZXJjcHUuYyBiL21tL2FsbG9jcGVyY3B1LmMKaW5kZXggZjQwMjZiYS4uMDVmMmI0MCAxMDA2NDQKLS0tIGEvbW0vYWxsb2NwZXJjcHUuYworKysgYi9tbS9hbGxvY3BlcmNwdS5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIGxpbnV4L21tL2FsbG9jcGVyY3B1LmMKICAqCi0gKiBTZXBhcmF0ZWQgZnJvbSBzbGFiLmMgQXVndXN0IDExLCAyMDA2IENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogU2VwYXJhdGVkIGZyb20gc2xhYi5jIEF1Z3VzdCAxMSwgMjAwNiBDaHJpc3RvcGggTGFtZXRlcgogICovCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL21tL2Jvb3RtZW0uYyBiL21tL2Jvb3RtZW0uYwppbmRleCBlOGZiOTI3Li44ZDlmNjBlIDEwMDY0NAotLS0gYS9tbS9ib290bWVtLmMKKysrIGIvbW0vYm9vdG1lbS5jCkBAIC00NDIsMTUgKzQ0MiwxNyBAQAogCXJldHVybiBpbml0X2Jvb3RtZW1fY29yZShwZ2RhdCwgZnJlZXBmbiwgc3RhcnRwZm4sIGVuZHBmbik7CiB9CiAKLXZvaWQgX19pbml0IHJlc2VydmVfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQsIHVuc2lnbmVkIGxvbmcgcGh5c2FkZHIsCitpbnQgX19pbml0IHJlc2VydmVfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQsIHVuc2lnbmVkIGxvbmcgcGh5c2FkZHIsCiAJCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IGZsYWdzKQogewogCWludCByZXQ7CiAKIAlyZXQgPSBjYW5fcmVzZXJ2ZV9ib290bWVtX2NvcmUocGdkYXQtPmJkYXRhLCBwaHlzYWRkciwgc2l6ZSwgZmxhZ3MpOwogCWlmIChyZXQgPCAwKQotCQlyZXR1cm47CisJCXJldHVybiAtRU5PTUVNOwogCXJlc2VydmVfYm9vdG1lbV9jb3JlKHBnZGF0LT5iZGF0YSwgcGh5c2FkZHIsIHNpemUsIGZsYWdzKTsKKworCXJldHVybiAwOwogfQogCiB2b2lkIF9faW5pdCBmcmVlX2Jvb3RtZW1fbm9kZShwZ19kYXRhX3QgKnBnZGF0LCB1bnNpZ25lZCBsb25nIHBoeXNhZGRyLApkaWZmIC0tZ2l0IGEvbW0vZmlsZW1hcC5jIGIvbW0vZmlsZW1hcC5jCmluZGV4IDFlNmE3ZDMuLjY1ZDlkOWUgMTAwNjQ0Ci0tLSBhL21tL2ZpbGVtYXAuYworKysgYi9tbS9maWxlbWFwLmMKQEAgLTIzNiwxMSArMjM2LDEyIEBACiB9CiBFWFBPUlRfU1lNQk9MKGZpbGVtYXBfZmRhdGF3cml0ZSk7CiAKLXN0YXRpYyBpbnQgZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3Qgc3RhcnQsCitpbnQgZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3Qgc3RhcnQsCiAJCQkJbG9mZl90IGVuZCkKIHsKIAlyZXR1cm4gX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2UobWFwcGluZywgc3RhcnQsIGVuZCwgV0JfU1lOQ19BTEwpOwogfQorRVhQT1JUX1NZTUJPTChmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2UpOwogCiAvKioKICAqIGZpbGVtYXBfZmx1c2ggLSBtb3N0bHkgYSBub24tYmxvY2tpbmcgZmx1c2gKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggMTllMGFlOS4uMjMwMmQyMiAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTk5OSwxNyArOTk5LDE1IEBACiAJCWdvdG8gbm9fcGFnZV90YWJsZTsKIAogCXB0ZXAgPSBwdGVfb2Zmc2V0X21hcF9sb2NrKG1tLCBwbWQsIGFkZHJlc3MsICZwdGwpOwotCWlmICghcHRlcCkKLQkJZ290byBvdXQ7CiAKIAlwdGUgPSAqcHRlcDsKIAlpZiAoIXB0ZV9wcmVzZW50KHB0ZSkpCi0JCWdvdG8gdW5sb2NrOworCQlnb3RvIG5vX3BhZ2U7CiAJaWYgKChmbGFncyAmIEZPTExfV1JJVEUpICYmICFwdGVfd3JpdGUocHRlKSkKIAkJZ290byB1bmxvY2s7CiAJcGFnZSA9IHZtX25vcm1hbF9wYWdlKHZtYSwgYWRkcmVzcywgcHRlKTsKIAlpZiAodW5saWtlbHkoIXBhZ2UpKQotCQlnb3RvIHVubG9jazsKKwkJZ290byBiYWRfcGFnZTsKIAogCWlmIChmbGFncyAmIEZPTExfR0VUKQogCQlnZXRfcGFnZShwYWdlKTsKQEAgLTEwMjQsNiArMTAyMiwxNSBAQAogb3V0OgogCXJldHVybiBwYWdlOwogCitiYWRfcGFnZToKKwlwdGVfdW5tYXBfdW5sb2NrKHB0ZXAsIHB0bCk7CisJcmV0dXJuIEVSUl9QVFIoLUVGQVVMVCk7CisKK25vX3BhZ2U6CisJcHRlX3VubWFwX3VubG9jayhwdGVwLCBwdGwpOworCWlmICghcHRlX25vbmUocHRlKSkKKwkJcmV0dXJuIHBhZ2U7CisJLyogRmFsbCB0aHJvdWdoIHRvIFpFUk9fUEFHRSBoYW5kbGluZyAqLwogbm9fcGFnZV90YWJsZToKIAkvKgogCSAqIFdoZW4gY29yZSBkdW1waW5nIGFuIGVub3Jtb3VzIGFub255bW91cyBhcmVhIHRoYXQgbm9ib2R5CkBAIC0xMDM4LDYgKzEwNDUsMjYgQEAKIAlyZXR1cm4gcGFnZTsKIH0KIAorLyogQ2FuIHdlIGRvIHRoZSBGT0xMX0FOT04gb3B0aW1pemF0aW9uPyAqLworc3RhdGljIGlubGluZSBpbnQgdXNlX3plcm9fcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwkvKgorCSAqIFdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUgRk9MTF9BTk9OIGZvciBtYWtlX3BhZ2VzX3ByZXNlbnQoKQorCSAqIHdoZW4gaXQgdHJpZXMgdG8gcGFnZSBpbiBhIFZNX0xPQ0tFRCByZWdpb24uIEFzIHRvIFZNX1NIQVJFRCwKKwkgKiB3ZSB3YW50IHRvIGdldCB0aGUgcGFnZSBmcm9tIHRoZSBwYWdlIHRhYmxlcyB0byBtYWtlIHN1cmUKKwkgKiB0aGF0IHdlIHNlcmlhbGl6ZSBhbmQgdXBkYXRlIHdpdGggYW55IG90aGVyIHVzZXIgb2YgdGhhdAorCSAqIG1hcHBpbmcuCisJICovCisJaWYgKHZtYS0+dm1fZmxhZ3MgJiAoVk1fTE9DS0VEIHwgVk1fU0hBUkVEKSkKKwkJcmV0dXJuIDA7CisJLyoKKwkgKiBBbmQgaWYgd2UgaGF2ZSBhIGZhdWx0IG9yIGEgbm9wZm4gcm91dGluZSwgaXQncyBub3QgYW4KKwkgKiBhbm9ueW1vdXMgcmVnaW9uLgorCSAqLworCXJldHVybiAhdm1hLT52bV9vcHMgfHwKKwkJKCF2bWEtPnZtX29wcy0+ZmF1bHQgJiYgIXZtYS0+dm1fb3BzLT5ub3Bmbik7Cit9CisKIGludCBnZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBsZW4sIGludCB3cml0ZSwgaW50IGZvcmNlLAogCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKip2bWFzKQpAQCAtMTExMiw4ICsxMTM5LDcgQEAKIAkJZm9sbF9mbGFncyA9IEZPTExfVE9VQ0g7CiAJCWlmIChwYWdlcykKIAkJCWZvbGxfZmxhZ3MgfD0gRk9MTF9HRVQ7Ci0JCWlmICghd3JpdGUgJiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fTE9DS0VEKSAmJgotCQkgICAgKCF2bWEtPnZtX29wcyB8fCAhdm1hLT52bV9vcHMtPmZhdWx0KSkKKwkJaWYgKCF3cml0ZSAmJiB1c2VfemVyb19wYWdlKHZtYSkpCiAJCQlmb2xsX2ZsYWdzIHw9IEZPTExfQU5PTjsKIAogCQlkbyB7CkBAIC0xMTI1LDcgKzExNTEsNyBAQAogCQkJICogYmUgcHJvY2Vzc2VkIHVudGlsIHJldHVybmluZyB0byB1c2VyIHNwYWNlLgogCQkJICovCiAJCQlpZiAodW5saWtlbHkodGVzdF90c2tfdGhyZWFkX2ZsYWcodHNrLCBUSUZfTUVNRElFKSkpCi0JCQkJcmV0dXJuIC1FTk9NRU07CisJCQkJcmV0dXJuIGkgPyBpIDogLUVOT01FTTsKIAogCQkJaWYgKHdyaXRlKQogCQkJCWZvbGxfZmxhZ3MgfD0gRk9MTF9XUklURTsKQEAgLTExNTksNiArMTE4NSw4IEBACiAKIAkJCQljb25kX3Jlc2NoZWQoKTsKIAkJCX0KKwkJCWlmIChJU19FUlIocGFnZSkpCisJCQkJcmV0dXJuIGkgPyBpIDogUFRSX0VSUihwYWdlKTsKIAkJCWlmIChwYWdlcykgewogCQkJCXBhZ2VzW2ldID0gcGFnZTsKIApAQCAtMTY2OSw4ICsxNjk3LDE5IEBACiAJc3RydWN0IHBhZ2UgKmRpcnR5X3BhZ2UgPSBOVUxMOwogCiAJb2xkX3BhZ2UgPSB2bV9ub3JtYWxfcGFnZSh2bWEsIGFkZHJlc3MsIG9yaWdfcHRlKTsKLQlpZiAoIW9sZF9wYWdlKQorCWlmICghb2xkX3BhZ2UpIHsKKwkJLyoKKwkJICogVk1fTUlYRURNQVAgIXBmbl92YWxpZCgpIGNhc2UKKwkJICoKKwkJICogV2Ugc2hvdWxkIG5vdCBjb3cgcGFnZXMgaW4gYSBzaGFyZWQgd3JpdGVhYmxlIG1hcHBpbmcuCisJCSAqIEp1c3QgbWFyayB0aGUgcGFnZXMgd3JpdGFibGUgYXMgd2UgY2FuJ3QgZG8gYW55IGRpcnR5CisJCSAqIGFjY291bnRpbmcgb24gcmF3IHBmbiBtYXBzLgorCQkgKi8KKwkJaWYgKCh2bWEtPnZtX2ZsYWdzICYgKFZNX1dSSVRFfFZNX1NIQVJFRCkpID09CisJCQkJICAgICAoVk1fV1JJVEV8Vk1fU0hBUkVEKSkKKwkJCWdvdG8gcmV1c2U7CiAJCWdvdG8gZ290dGVuOworCX0KIAogCS8qCiAJICogVGFrZSBvdXQgYW5vbnltb3VzIHBhZ2VzIGZpcnN0LCBhbm9ueW1vdXMgc2hhcmVkIHZtYXMgYXJlCkBAIC0xNzIzLDYgKzE3NjIsNyBAQAogCX0KIAogCWlmIChyZXVzZSkgeworcmV1c2U6CiAJCWZsdXNoX2NhY2hlX3BhZ2Uodm1hLCBhZGRyZXNzLCBwdGVfcGZuKG9yaWdfcHRlKSk7CiAJCWVudHJ5ID0gcHRlX21reW91bmcob3JpZ19wdGUpOwogCQllbnRyeSA9IG1heWJlX21rd3JpdGUocHRlX21rZGlydHkoZW50cnkpLCB2bWEpOwpAQCAtMTc1Nyw3ICsxNzk3LDYgQEAKIAlwYWdlX3RhYmxlID0gcHRlX29mZnNldF9tYXBfbG9jayhtbSwgcG1kLCBhZGRyZXNzLCAmcHRsKTsKIAlpZiAobGlrZWx5KHB0ZV9zYW1lKCpwYWdlX3RhYmxlLCBvcmlnX3B0ZSkpKSB7CiAJCWlmIChvbGRfcGFnZSkgewotCQkJcGFnZV9yZW1vdmVfcm1hcChvbGRfcGFnZSwgdm1hKTsKIAkJCWlmICghUGFnZUFub24ob2xkX3BhZ2UpKSB7CiAJCQkJZGVjX21tX2NvdW50ZXIobW0sIGZpbGVfcnNzKTsKIAkJCQlpbmNfbW1fY291bnRlcihtbSwgYW5vbl9yc3MpOwpAQCAtMTc3OSw2ICsxODE4LDMyIEBACiAJCWxydV9jYWNoZV9hZGRfYWN0aXZlKG5ld19wYWdlKTsKIAkJcGFnZV9hZGRfbmV3X2Fub25fcm1hcChuZXdfcGFnZSwgdm1hLCBhZGRyZXNzKTsKIAorCQlpZiAob2xkX3BhZ2UpIHsKKwkJCS8qCisJCQkgKiBPbmx5IGFmdGVyIHN3aXRjaGluZyB0aGUgcHRlIHRvIHRoZSBuZXcgcGFnZSBtYXkKKwkJCSAqIHdlIHJlbW92ZSB0aGUgbWFwY291bnQgaGVyZS4gT3RoZXJ3aXNlIGFub3RoZXIKKwkJCSAqIHByb2Nlc3MgbWF5IGNvbWUgYW5kIGZpbmQgdGhlIHJtYXAgY291bnQgZGVjcmVtZW50ZWQKKwkJCSAqIGJlZm9yZSB0aGUgcHRlIGlzIHN3aXRjaGVkIHRvIHRoZSBuZXcgcGFnZSwgYW5kCisJCQkgKiAicmV1c2UiIHRoZSBvbGQgcGFnZSB3cml0aW5nIGludG8gaXQgd2hpbGUgb3VyIHB0ZQorCQkJICogaGVyZSBzdGlsbCBwb2ludHMgaW50byBpdCBhbmQgY2FuIGJlIHJlYWQgYnkgb3RoZXIKKwkJCSAqIHRocmVhZHMuCisJCQkgKgorCQkJICogVGhlIGNyaXRpY2FsIGlzc3VlIGlzIHRvIG9yZGVyIHRoaXMKKwkJCSAqIHBhZ2VfcmVtb3ZlX3JtYXAgd2l0aCB0aGUgcHRwX2NsZWFyX2ZsdXNoIGFib3ZlLgorCQkJICogVGhvc2Ugc3RvcmVzIGFyZSBvcmRlcmVkIGJ5IChpZiBub3RoaW5nIGVsc2UsKQorCQkJICogdGhlIGJhcnJpZXIgcHJlc2VudCBpbiB0aGUgYXRvbWljX2FkZF9uZWdhdGl2ZQorCQkJICogaW4gcGFnZV9yZW1vdmVfcm1hcC4KKwkJCSAqCisJCQkgKiBUaGVuIHRoZSBUTEIgZmx1c2ggaW4gcHRlcF9jbGVhcl9mbHVzaCBlbnN1cmVzIHRoYXQKKwkJCSAqIG5vIHByb2Nlc3MgY2FuIGFjY2VzcyB0aGUgb2xkIHBhZ2UgYmVmb3JlIHRoZQorCQkJICogZGVjcmVtZW50ZWQgbWFwY291bnQgaXMgdmlzaWJsZS4gQW5kIHRoZSBvbGQgcGFnZQorCQkJICogY2Fubm90IGJlIHJldXNlZCB1bnRpbCBhZnRlciB0aGUgZGVjcmVtZW50ZWQKKwkJCSAqIG1hcGNvdW50IGlzIHZpc2libGUuIFNvIHRyYW5zaXRpdmVseSwgVExCcyB0bworCQkJICogb2xkIHBhZ2Ugd2lsbCBiZSBmbHVzaGVkIGJlZm9yZSBpdCBjYW4gYmUgcmV1c2VkLgorCQkJICovCisJCQlwYWdlX3JlbW92ZV9ybWFwKG9sZF9wYWdlLCB2bWEpOworCQl9CisKIAkJLyogRnJlZSB0aGUgb2xkIHBhZ2UuLiAqLwogCQluZXdfcGFnZSA9IG9sZF9wYWdlOwogCQlyZXQgfD0gVk1fRkFVTFRfV1JJVEU7CmRpZmYgLS1naXQgYS9tbS9tZW1wb2xpY3kuYyBiL21tL21lbXBvbGljeS5jCmluZGV4IGEzN2E1MDMuLmM5NGU1OGIgMTAwNjQ0Ci0tLSBhL21tL21lbXBvbGljeS5jCisrKyBiL21tL21lbXBvbGljeS5jCkBAIC03MjksNyArNzI5LDExIEBACiAJfSBlbHNlIHsKIAkJKnBvbGljeSA9IHBvbCA9PSAmZGVmYXVsdF9wb2xpY3kgPyBNUE9MX0RFRkFVTFQgOgogCQkJCQkJcG9sLT5tb2RlOwotCQkqcG9saWN5IHw9IHBvbC0+ZmxhZ3M7CisJCS8qCisJCSAqIEludGVybmFsIG1lbXBvbGljeSBmbGFncyBtdXN0IGJlIG1hc2tlZCBvZmYgYmVmb3JlIGV4cG9zaW5nCisJCSAqIHRoZSBwb2xpY3kgdG8gdXNlcnNwYWNlLgorCQkgKi8KKwkJKnBvbGljeSB8PSAocG9sLT5mbGFncyAmIE1QT0xfTU9ERV9GTEFHUyk7CiAJfQogCiAJaWYgKHZtYSkgewpkaWZmIC0tZ2l0IGEvbW0vbWlncmF0ZS5jIGIvbW0vbWlncmF0ZS5jCmluZGV4IDQ0OWQ3N2QuLjU1YmQzNTUgMTAwNjQ0Ci0tLSBhL21tL21pZ3JhdGUuYworKysgYi9tbS9taWdyYXRlLmMKQEAgLTksNyArOSw3IEBACiAgKiBJV0FNT1RPIFRvc2hpaGlybyA8aXdhbW90b0B2YWxpbnV4LmNvLmpwPgogICogSGlyb2thenUgVGFrYWhhc2hpIDx0YWthQHZhbGludXguY28uanA+CiAgKiBEYXZlIEhhbnNlbiA8aGF2ZWJsdWVAdXMuaWJtLmNvbT4KLSAqIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbWlncmF0ZS5oPgpAQCAtODY1LDYgKzg2NSwxMSBAQAogCQkJZ290byBzZXRfc3RhdHVzOwogCiAJCXBhZ2UgPSBmb2xsb3dfcGFnZSh2bWEsIHBwLT5hZGRyLCBGT0xMX0dFVCk7CisKKwkJZXJyID0gUFRSX0VSUihwYWdlKTsKKwkJaWYgKElTX0VSUihwYWdlKSkKKwkJCWdvdG8gc2V0X3N0YXR1czsKKwogCQllcnIgPSAtRU5PRU5UOwogCQlpZiAoIXBhZ2UpCiAJCQlnb3RvIHNldF9zdGF0dXM7CkBAIC05MjgsNiArOTMzLDExIEBACiAJCQlnb3RvIHNldF9zdGF0dXM7CiAKIAkJcGFnZSA9IGZvbGxvd19wYWdlKHZtYSwgcG0tPmFkZHIsIDApOworCisJCWVyciA9IFBUUl9FUlIocGFnZSk7CisJCWlmIChJU19FUlIocGFnZSkpCisJCQlnb3RvIHNldF9zdGF0dXM7CisKIAkJZXJyID0gLUVOT0VOVDsKIAkJLyogVXNlIFBhZ2VSZXNlcnZlZCB0byBjaGVjayBmb3IgemVybyBwYWdlICovCiAJCWlmICghcGFnZSB8fCBQYWdlUmVzZXJ2ZWQocGFnZSkpCmRpZmYgLS1naXQgYS9tbS9tcHJvdGVjdC5jIGIvbW0vbXByb3RlY3QuYwppbmRleCBhNWJmMzFjLi5hY2ZlN2M4IDEwMDY0NAotLS0gYS9tbS9tcHJvdGVjdC5jCisrKyBiL21tL21wcm90ZWN0LmMKQEAgLTQ3LDE5ICs0NywxNyBAQAogCQlpZiAocHRlX3ByZXNlbnQob2xkcHRlKSkgewogCQkJcHRlX3QgcHRlbnQ7CiAKLQkJCS8qIEF2b2lkIGFuIFNNUCByYWNlIHdpdGggaGFyZHdhcmUgdXBkYXRlZCBkaXJ0eS9jbGVhbgotCQkJICogYml0cyBieSB3aXBpbmcgdGhlIHB0ZSBhbmQgdGhlbiBzZXR0aW5nIHRoZSBuZXcgcHRlCi0JCQkgKiBpbnRvIHBsYWNlLgotCQkJICovCi0JCQlwdGVudCA9IHB0ZXBfZ2V0X2FuZF9jbGVhcihtbSwgYWRkciwgcHRlKTsKKwkJCXB0ZW50ID0gcHRlcF9tb2RpZnlfcHJvdF9zdGFydChtbSwgYWRkciwgcHRlKTsKIAkJCXB0ZW50ID0gcHRlX21vZGlmeShwdGVudCwgbmV3cHJvdCk7CisKIAkJCS8qCiAJCQkgKiBBdm9pZCB0YWtpbmcgd3JpdGUgZmF1bHRzIGZvciBwYWdlcyB3ZSBrbm93IHRvIGJlCiAJCQkgKiBkaXJ0eS4KIAkJCSAqLwogCQkJaWYgKGRpcnR5X2FjY291bnRhYmxlICYmIHB0ZV9kaXJ0eShwdGVudCkpCiAJCQkJcHRlbnQgPSBwdGVfbWt3cml0ZShwdGVudCk7Ci0JCQlzZXRfcHRlX2F0KG1tLCBhZGRyLCBwdGUsIHB0ZW50KTsKKworCQkJcHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZSwgcHRlbnQpOwogI2lmZGVmIENPTkZJR19NSUdSQVRJT04KIAkJfSBlbHNlIGlmICghcHRlX2ZpbGUob2xkcHRlKSkgewogCQkJc3dwX2VudHJ5X3QgZW50cnkgPSBwdGVfdG9fc3dwX2VudHJ5KG9sZHB0ZSk7CmRpZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYwppbmRleCAzYWJkMDg0Li40NDYyYjZhIDEwMDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTEwNCwyMSArMTA0LDE1IEBACiB1bnNpZ25lZCBpbnQga29ianNpemUoY29uc3Qgdm9pZCAqb2JqcCkKIHsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKLQlpbnQgb3JkZXIgPSAwOwogCiAJLyoKIAkgKiBJZiB0aGUgb2JqZWN0IHdlIGhhdmUgc2hvdWxkIG5vdCBoYXZlIGtzaXplIHBlcmZvcm1lZCBvbiBpdCwKIAkgKiByZXR1cm4gc2l6ZSBvZiAwCiAJICovCi0JaWYgKCFvYmpwKQotCQlyZXR1cm4gMDsKLQotCWlmICgodW5zaWduZWQgbG9uZylvYmpwID49IG1lbW9yeV9lbmQpCisJaWYgKCFvYmpwIHx8ICF2aXJ0X2FkZHJfdmFsaWQob2JqcCkpCiAJCXJldHVybiAwOwogCiAJcGFnZSA9IHZpcnRfdG9faGVhZF9wYWdlKG9ianApOwotCWlmICghcGFnZSkKLQkJcmV0dXJuIDA7CiAKIAkvKgogCSAqIElmIHRoZSBhbGxvY2F0b3Igc2V0cyBQYWdlU2xhYiwgd2Uga25vdyB0aGUgcG9pbnRlciBjYW1lIGZyb20KQEAgLTEyOSwxOCArMTIzLDkgQEAKIAogCS8qCiAJICogVGhlIGtzaXplKCkgZnVuY3Rpb24gaXMgb25seSBndWFyYW50ZWVkIHRvIHdvcmsgZm9yIHBvaW50ZXJzCi0JICogcmV0dXJuZWQgYnkga21hbGxvYygpLiBTbyBoYW5kbGUgYXJiaXRyYXJ5IHBvaW50ZXJzLCB0aGF0IHdlIGV4cGVjdAotCSAqIGFsd2F5cyB0byBiZSBjb21wb3VuZCBwYWdlcywgaGVyZS4KKwkgKiByZXR1cm5lZCBieSBrbWFsbG9jKCkuIFNvIGhhbmRsZSBhcmJpdHJhcnkgcG9pbnRlcnMgaGVyZS4KIAkgKi8KLQlpZiAoUGFnZUNvbXBvdW5kKHBhZ2UpKQotCQlvcmRlciA9IGNvbXBvdW5kX29yZGVyKHBhZ2UpOwotCi0JLyoKLQkgKiBGaW5hbGx5LCBoYW5kbGUgYXJiaXRyYXJ5IHBvaW50ZXJzIHRoYXQgZG9uJ3Qgc2V0IFBhZ2VTbGFiLgotCSAqIERlZmF1bHQgdG8gMC1vcmRlciBpbiB0aGUgY2FzZSB3aGVuIHdlJ3JlIHVuYWJsZSB0byBrc2l6ZSgpCi0JICogdGhlIG9iamVjdC4KLQkgKi8KLQlyZXR1cm4gUEFHRV9TSVpFIDw8IG9yZGVyOworCXJldHVybiBQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9tbS9wYWdlLXdyaXRlYmFjay5jIGIvbW0vcGFnZS13cml0ZWJhY2suYwppbmRleCA3ODliNmFkLi45NGM2ZDg5IDEwMDY0NAotLS0gYS9tbS9wYWdlLXdyaXRlYmFjay5jCisrKyBiL21tL3BhZ2Utd3JpdGViYWNrLmMKQEAgLTEyNiw4ICsxMjYsNiBAQAogc3RhdGljIHN0cnVjdCBwcm9wX2Rlc2NyaXB0b3Igdm1fY29tcGxldGlvbnM7CiBzdGF0aWMgc3RydWN0IHByb3BfZGVzY3JpcHRvciB2bV9kaXJ0aWVzOwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSh2b2lkKTsKLQogLyoKICAqIGNvdXBsZSB0aGUgcGVyaW9kIHRvIHRoZSBkaXJ0eV9yYXRpbzoKICAqCkBAIC0zNDcsNyArMzQ1LDEzIEBACiAjZW5kaWYKIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkodm9pZCkKKy8qKgorICogZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkgLSBhbW91bnQgb2YgbWVtb3J5IHRoYXQgbWF5IGJlIHVzZWQKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1lYnIgb2YgcGFnZXMgdGhhdCBjYW4gY3VycmVudGx5IGJlIGZyZWVkIGFuZCB1c2VkCisgKiBieSB0aGUga2VybmVsIGZvciBkaXJlY3QgbWFwcGluZ3MuCisgKi8KK3Vuc2lnbmVkIGxvbmcgZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHg7CiAKQEAgLTk1Niw2ICs5NjAsOSBAQAogCX0KIAlpZiAod2JjLT5yYW5nZV9jeWNsaWMgfHwgKHJhbmdlX3dob2xlICYmIHdiYy0+bnJfdG9fd3JpdGUgPiAwKSkKIAkJbWFwcGluZy0+d3JpdGViYWNrX2luZGV4ID0gaW5kZXg7CisKKwlpZiAod2JjLT5yYW5nZV9jb250KQorCQl3YmMtPnJhbmdlX3N0YXJ0ID0gaW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVDsKIAlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTCh3cml0ZV9jYWNoZV9wYWdlcyk7CmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmMKaW5kZXggOGU4M2YwMi4uZjAyNGI5YiAxMDA2NDQKLS0tIGEvbW0vcGFnZV9hbGxvYy5jCisrKyBiL21tL3BhZ2VfYWxsb2MuYwpAQCAtMjM3LDE2ICsyMzcsNyBAQAogCXByaW50ayhLRVJOX0VNRVJHICJUcnlpbmcgdG8gZml4IGl0IHVwLCBidXQgYSByZWJvb3QgaXMgbmVlZGVkXG4iCiAJCUtFUk5fRU1FUkcgIkJhY2t0cmFjZTpcbiIpOwogCWR1bXBfc3RhY2soKTsKLQlwYWdlLT5mbGFncyAmPSB+KDEgPDwgUEdfbHJ1CXwKLQkJCTEgPDwgUEdfcHJpdmF0ZSB8Ci0JCQkxIDw8IFBHX2xvY2tlZAl8Ci0JCQkxIDw8IFBHX2FjdGl2ZQl8Ci0JCQkxIDw8IFBHX2RpcnR5CXwKLQkJCTEgPDwgUEdfcmVjbGFpbSB8Ci0JCQkxIDw8IFBHX3NsYWIgICAgfAotCQkJMSA8PCBQR19zd2FwY2FjaGUgfAotCQkJMSA8PCBQR193cml0ZWJhY2sgfAotCQkJMSA8PCBQR19idWRkeSApOworCXBhZ2UtPmZsYWdzICY9IH5QQUdFX0ZMQUdTX0NMRUFSX1dIRU5fQkFEOwogCXNldF9wYWdlX2NvdW50KHBhZ2UsIDApOwogCXJlc2V0X3BhZ2VfbWFwY291bnQocGFnZSk7CiAJcGFnZS0+bWFwcGluZyA9IE5VTEw7CkBAIC00NjMsMTYgKzQ1NCw3IEBACiAJCShwYWdlLT5tYXBwaW5nICE9IE5VTEwpICB8CiAJCShwYWdlX2dldF9wYWdlX2Nncm91cChwYWdlKSAhPSBOVUxMKSB8CiAJCShwYWdlX2NvdW50KHBhZ2UpICE9IDApICB8Ci0JCShwYWdlLT5mbGFncyAmICgKLQkJCTEgPDwgUEdfbHJ1CXwKLQkJCTEgPDwgUEdfcHJpdmF0ZSB8Ci0JCQkxIDw8IFBHX2xvY2tlZAl8Ci0JCQkxIDw8IFBHX2FjdGl2ZQl8Ci0JCQkxIDw8IFBHX3NsYWIJfAotCQkJMSA8PCBQR19zd2FwY2FjaGUgfAotCQkJMSA8PCBQR193cml0ZWJhY2sgfAotCQkJMSA8PCBQR19yZXNlcnZlZCB8Ci0JCQkxIDw8IFBHX2J1ZGR5ICkpKSkKKwkJKHBhZ2UtPmZsYWdzICYgUEFHRV9GTEFHU19DSEVDS19BVF9GUkVFKSkpCiAJCWJhZF9wYWdlKHBhZ2UpOwogCWlmIChQYWdlRGlydHkocGFnZSkpCiAJCV9fQ2xlYXJQYWdlRGlydHkocGFnZSk7CkBAIC02MTYsMTcgKzU5OCw3IEBACiAJCShwYWdlLT5tYXBwaW5nICE9IE5VTEwpICB8CiAJCShwYWdlX2dldF9wYWdlX2Nncm91cChwYWdlKSAhPSBOVUxMKSB8CiAJCShwYWdlX2NvdW50KHBhZ2UpICE9IDApICB8Ci0JCShwYWdlLT5mbGFncyAmICgKLQkJCTEgPDwgUEdfbHJ1CXwKLQkJCTEgPDwgUEdfcHJpdmF0ZQl8Ci0JCQkxIDw8IFBHX2xvY2tlZAl8Ci0JCQkxIDw8IFBHX2FjdGl2ZQl8Ci0JCQkxIDw8IFBHX2RpcnR5CXwKLQkJCTEgPDwgUEdfc2xhYiAgICB8Ci0JCQkxIDw8IFBHX3N3YXBjYWNoZSB8Ci0JCQkxIDw8IFBHX3dyaXRlYmFjayB8Ci0JCQkxIDw8IFBHX3Jlc2VydmVkIHwKLQkJCTEgPDwgUEdfYnVkZHkgKSkpKQorCQkocGFnZS0+ZmxhZ3MgJiBQQUdFX0ZMQUdTX0NIRUNLX0FUX1BSRVApKSkKIAkJYmFkX3BhZ2UocGFnZSk7CiAKIAkvKgpAQCAtMjM1Niw3ICsyMzI4LDYgQEAKIHN0YXRpYyB2b2lkIGJ1aWxkX3pvbmVsaXN0X2NhY2hlKHBnX2RhdGFfdCAqcGdkYXQpCiB7CiAJcGdkYXQtPm5vZGVfem9uZWxpc3RzWzBdLnpsY2FjaGVfcHRyID0gTlVMTDsKLQlwZ2RhdC0+bm9kZV96b25lbGlzdHNbMV0uemxjYWNoZV9wdHIgPSBOVUxMOwogfQogCiAjZW5kaWYJLyogQ09ORklHX05VTUEgKi8KQEAgLTI5NTgsNiArMjkyOSwxOCBAQAogCX0KIH0KIAordm9pZCBfX2luaXQgd29ya193aXRoX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHdvcmtfZm5fdCB3b3JrX2ZuLCB2b2lkICpkYXRhKQoreworCWludCBpOworCWludCByZXQ7CisKKwlmb3JfZWFjaF9hY3RpdmVfcmFuZ2VfaW5kZXhfaW5fbmlkKGksIG5pZCkgeworCQlyZXQgPSB3b3JrX2ZuKGVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiwKKwkJCSAgICAgIGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4sIGRhdGEpOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorfQogLyoqCiAgKiBzcGFyc2VfbWVtb3J5X3ByZXNlbnRfd2l0aF9hY3RpdmVfcmVnaW9ucyAtIENhbGwgbWVtb3J5X3ByZXNlbnQgZm9yIGVhY2ggYWN0aXZlIHJhbmdlCiAgKiBAbmlkOiBUaGUgbm9kZSB0byBjYWxsIG1lbW9yeV9wcmVzZW50IGZvci4gSWYgTUFYX05VTU5PREVTLCBhbGwgbm9kZXMgd2lsbCBiZSB1c2VkLgpAQCAtMzQ5MCw2ICszNDczLDExIEBACiAJY2FsY3VsYXRlX25vZGVfdG90YWxwYWdlcyhwZ2RhdCwgem9uZXNfc2l6ZSwgemhvbGVzX3NpemUpOwogCiAJYWxsb2Nfbm9kZV9tZW1fbWFwKHBnZGF0KTsKKyNpZmRlZiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVAKKwlwcmludGsoS0VSTl9ERUJVRyAiZnJlZV9hcmVhX2luaXRfbm9kZTogbm9kZSAlZCwgcGdkYXQgJTA4bHgsIG5vZGVfbWVtX21hcCAlMDhseFxuIiwKKwkJbmlkLCAodW5zaWduZWQgbG9uZylwZ2RhdCwKKwkJKHVuc2lnbmVkIGxvbmcpcGdkYXQtPm5vZGVfbWVtX21hcCk7CisjZW5kaWYKIAogCWZyZWVfYXJlYV9pbml0X2NvcmUocGdkYXQsIHpvbmVzX3NpemUsIHpob2xlc19zaXplKTsKIH0KQEAgLTM1MzIsNyArMzUyMCw3IEBACiB7CiAJaW50IGk7CiAKLQlwcmludGsoS0VSTl9ERUJVRyAiRW50ZXJpbmcgYWRkX2FjdGl2ZV9yYW5nZSglZCwgJWx1LCAlbHUpICIKKwlwcmludGsoS0VSTl9ERUJVRyAiRW50ZXJpbmcgYWRkX2FjdGl2ZV9yYW5nZSglZCwgJSNseCwgJSNseCkgIgogCQkJICAiJWQgZW50cmllcyBvZiAlZCB1c2VkXG4iLAogCQkJICBuaWQsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKIAkJCSAgbnJfbm9kZW1hcF9lbnRyaWVzLCBNQVhfQUNUSVZFX1JFR0lPTlMpOwpAQCAtMzU3NiwyNyArMzU2NCw2OCBAQAogfQogCiAvKioKLSAqIHNocmlua19hY3RpdmVfcmFuZ2UgLSBTaHJpbmsgYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZCByYW5nZSBvZiBQRk5zCisgKiByZW1vdmVfYWN0aXZlX3JhbmdlIC0gU2hyaW5rIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWQgcmFuZ2Ugb2YgUEZOcwogICogQG5pZDogVGhlIG5vZGUgaWQgdGhlIHJhbmdlIGlzIG9uIHRoYXQgc2hvdWxkIGJlIHNocnVuawotICogQG9sZF9lbmRfcGZuOiBUaGUgb2xkIGVuZCBQRk4gb2YgdGhlIHJhbmdlCi0gKiBAbmV3X2VuZF9wZm46IFRoZSBuZXcgUEZOIG9mIHRoZSByYW5nZQorICogQHN0YXJ0X3BmbjogVGhlIG5ldyBQRk4gb2YgdGhlIHJhbmdlCisgKiBAZW5kX3BmbjogVGhlIG5ldyBQRk4gb2YgdGhlIHJhbmdlCiAgKgogICogaTM4NiB3aXRoIE5VTUEgdXNlIGFsbG9jX3JlbWFwKCkgdG8gc3RvcmUgYSBub2RlX21lbV9tYXAgb24gYSBsb2NhbCBub2RlLgotICogVGhlIG1hcCBpcyBrZXB0IGF0IHRoZSBlbmQgcGh5c2ljYWwgcGFnZSByYW5nZSB0aGF0IGhhcyBhbHJlYWR5IGJlZW4KLSAqIHJlZ2lzdGVyZWQgd2l0aCBhZGRfYWN0aXZlX3JhbmdlKCkuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGFuIGFyY2ggdG8gc2hyaW5rCi0gKiBhbiBleGlzdGluZyByZWdpc3RlcmVkIHJhbmdlLgorICogVGhlIG1hcCBpcyBrZXB0IG5lYXIgdGhlIGVuZCBwaHlzaWNhbCBwYWdlIHJhbmdlIHRoYXQgaGFzIGFscmVhZHkgYmVlbgorICogcmVnaXN0ZXJlZC4gVGhpcyBmdW5jdGlvbiBhbGxvd3MgYW4gYXJjaCB0byBzaHJpbmsgYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZAorICogcmFuZ2UuCiAgKi8KLXZvaWQgX19pbml0IHNocmlua19hY3RpdmVfcmFuZ2UodW5zaWduZWQgaW50IG5pZCwgdW5zaWduZWQgbG9uZyBvbGRfZW5kX3BmbiwKLQkJCQkJCXVuc2lnbmVkIGxvbmcgbmV3X2VuZF9wZm4pCit2b2lkIF9faW5pdCByZW1vdmVfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3BmbikKIHsKLQlpbnQgaTsKKwlpbnQgaSwgajsKKwlpbnQgcmVtb3ZlZCA9IDA7CisKKwlwcmludGsoS0VSTl9ERUJVRyAicmVtb3ZlX2FjdGl2ZV9yYW5nZSAoJWQsICVsdSwgJWx1KVxuIiwKKwkJCSAgbmlkLCBzdGFydF9wZm4sIGVuZF9wZm4pOwogCiAJLyogRmluZCB0aGUgb2xkIGFjdGl2ZSByZWdpb24gZW5kIGFuZCBzaHJpbmsgKi8KLQlmb3JfZWFjaF9hY3RpdmVfcmFuZ2VfaW5kZXhfaW5fbmlkKGksIG5pZCkKLQkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPT0gb2xkX2VuZF9wZm4pIHsKLQkJCWVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPSBuZXdfZW5kX3BmbjsKLQkJCWJyZWFrOworCWZvcl9lYWNoX2FjdGl2ZV9yYW5nZV9pbmRleF9pbl9uaWQoaSwgbmlkKSB7CisJCWlmIChlYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPj0gc3RhcnRfcGZuICYmCisJCSAgICBlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuIDw9IGVuZF9wZm4pIHsKKwkJCS8qIGNsZWFyIGl0ICovCisJCQllYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPSAwOworCQkJZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA9IDA7CisJCQlyZW1vdmVkID0gMTsKKwkJCWNvbnRpbnVlOwogCQl9CisJCWlmIChlYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPCBzdGFydF9wZm4gJiYKKwkJICAgIGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPiBzdGFydF9wZm4pIHsKKwkJCXVuc2lnbmVkIGxvbmcgdGVtcF9lbmRfcGZuID0gZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbjsKKwkJCWVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPSBzdGFydF9wZm47CisJCQlpZiAodGVtcF9lbmRfcGZuID4gZW5kX3BmbikKKwkJCQlhZGRfYWN0aXZlX3JhbmdlKG5pZCwgZW5kX3BmbiwgdGVtcF9lbmRfcGZuKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmIChlYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPj0gc3RhcnRfcGZuICYmCisJCSAgICBlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID4gZW5kX3BmbiAmJgorCQkgICAgZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuIDwgZW5kX3BmbikgeworCQkJZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuID0gZW5kX3BmbjsKKwkJCWNvbnRpbnVlOworCQl9CisJfQorCisJaWYgKCFyZW1vdmVkKQorCQlyZXR1cm47CisKKwkvKiByZW1vdmUgdGhlIGJsYW5rIG9uZXMgKi8KKwlmb3IgKGkgPSBucl9ub2RlbWFwX2VudHJpZXMgLSAxOyBpID4gMDsgaS0tKSB7CisJCWlmIChlYXJseV9ub2RlX21hcFtpXS5uaWQgIT0gbmlkKQorCQkJY29udGludWU7CisJCWlmIChlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuKQorCQkJY29udGludWU7CisJCS8qIHdlIGZvdW5kIGl0LCBnZXQgcmlkIG9mIGl0ICovCisJCWZvciAoaiA9IGk7IGogPCBucl9ub2RlbWFwX2VudHJpZXMgLSAxOyBqKyspCisJCQltZW1jcHkoJmVhcmx5X25vZGVfbWFwW2pdLCAmZWFybHlfbm9kZV9tYXBbaisxXSwKKwkJCQlzaXplb2YoZWFybHlfbm9kZV9tYXBbal0pKTsKKwkJaiA9IG5yX25vZGVtYXBfZW50cmllcyAtIDE7CisJCW1lbXNldCgmZWFybHlfbm9kZV9tYXBbal0sIDAsIHNpemVvZihlYXJseV9ub2RlX21hcFtqXSkpOworCQlucl9ub2RlbWFwX2VudHJpZXMtLTsKKwl9CiB9CiAKIC8qKgpAQCAtMzY0MCw3ICszNjY5LDcgQEAKIH0KIAogLyogRmluZCB0aGUgbG93ZXN0IHBmbiBmb3IgYSBub2RlICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBmaW5kX21pbl9wZm5fZm9yX25vZGUodW5zaWduZWQgbG9uZyBuaWQpCit1bnNpZ25lZCBsb25nIF9faW5pdCBmaW5kX21pbl9wZm5fZm9yX25vZGUoaW50IG5pZCkKIHsKIAlpbnQgaTsKIAl1bnNpZ25lZCBsb25nIG1pbl9wZm4gPSBVTE9OR19NQVg7CkBAIC0zNjUxLDcgKzM2ODAsNyBAQAogCiAJaWYgKG1pbl9wZm4gPT0gVUxPTkdfTUFYKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcKLQkJCSJDb3VsZCBub3QgZmluZCBzdGFydF9wZm4gZm9yIG5vZGUgJWx1XG4iLCBuaWQpOworCQkJIkNvdWxkIG5vdCBmaW5kIHN0YXJ0X3BmbiBmb3Igbm9kZSAlZFxuIiwgbmlkKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0zOTA3LDcgKzM5MzYsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfWk9ORVM7IGkrKykgewogCQlpZiAoaSA9PSBaT05FX01PVkFCTEUpCiAJCQljb250aW51ZTsKLQkJcHJpbnRrKCIgICUtOHMgJThsdSAtPiAlOGx1XG4iLAorCQlwcmludGsoIiAgJS04cyAlMCMxMGx4IC0+ICUwIzEwbHhcbiIsCiAJCQkJem9uZV9uYW1lc1tpXSwKIAkJCQlhcmNoX3pvbmVfbG93ZXN0X3Bvc3NpYmxlX3BmbltpXSwKIAkJCQlhcmNoX3pvbmVfaGlnaGVzdF9wb3NzaWJsZV9wZm5baV0pOwpAQCAtMzkyMyw3ICszOTUyLDcgQEAKIAkvKiBQcmludCBvdXQgdGhlIGVhcmx5X25vZGVfbWFwW10gKi8KIAlwcmludGsoImVhcmx5X25vZGVfbWFwWyVkXSBhY3RpdmUgUEZOIHJhbmdlc1xuIiwgbnJfbm9kZW1hcF9lbnRyaWVzKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfbm9kZW1hcF9lbnRyaWVzOyBpKyspCi0JCXByaW50aygiICAlM2Q6ICU4bHUgLT4gJThsdVxuIiwgZWFybHlfbm9kZV9tYXBbaV0ubmlkLAorCQlwcmludGsoIiAgJTNkOiAlMCMxMGx4IC0+ICUwIzEwbHhcbiIsIGVhcmx5X25vZGVfbWFwW2ldLm5pZCwKIAkJCQkJCWVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiwKIAkJCQkJCWVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4pOwogCmRpZmYgLS1naXQgYS9tbS9wYWdld2Fsay5jIGIvbW0vcGFnZXdhbGsuYwppbmRleCAwYWZkMjM4Li5kNTg3OGJlIDEwMDY0NAotLS0gYS9tbS9wYWdld2Fsay5jCisrKyBiL21tL3BhZ2V3YWxrLmMKQEAgLTMsMTQgKzMsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogCiBzdGF0aWMgaW50IHdhbGtfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgIGNvbnN0IHN0cnVjdCBtbV93YWxrICp3YWxrLCB2b2lkICpwcml2YXRlKQorCQkJICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKIAlwdGVfdCAqcHRlOwogCWludCBlcnIgPSAwOwogCiAJcHRlID0gcHRlX29mZnNldF9tYXAocG1kLCBhZGRyKTsKIAlmb3IgKDs7KSB7Ci0JCWVyciA9IHdhbGstPnB0ZV9lbnRyeShwdGUsIGFkZHIsIGFkZHIgKyBQQUdFX1NJWkUsIHByaXZhdGUpOworCQllcnIgPSB3YWxrLT5wdGVfZW50cnkocHRlLCBhZGRyLCBhZGRyICsgUEFHRV9TSVpFLCB3YWxrKTsKIAkJaWYgKGVycikKIAkJICAgICAgIGJyZWFrOwogCQlhZGRyICs9IFBBR0VfU0laRTsKQEAgLTI0LDcgKzI0LDcgQEAKIH0KIAogc3RhdGljIGludCB3YWxrX3BtZF9yYW5nZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICBjb25zdCBzdHJ1Y3QgbW1fd2FsayAqd2Fsaywgdm9pZCAqcHJpdmF0ZSkKKwkJCSAgc3RydWN0IG1tX3dhbGsgKndhbGspCiB7CiAJcG1kX3QgKnBtZDsKIAl1bnNpZ25lZCBsb25nIG5leHQ7CkBAIC0zNSwxNSArMzUsMTUgQEAKIAkJbmV4dCA9IHBtZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocG1kX25vbmVfb3JfY2xlYXJfYmFkKHBtZCkpIHsKIAkJCWlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCBwcml2YXRlKTsKKwkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCQljb250aW51ZTsKIAkJfQogCQlpZiAod2Fsay0+cG1kX2VudHJ5KQotCQkJZXJyID0gd2Fsay0+cG1kX2VudHJ5KHBtZCwgYWRkciwgbmV4dCwgcHJpdmF0ZSk7CisJCQllcnIgPSB3YWxrLT5wbWRfZW50cnkocG1kLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKCFlcnIgJiYgd2Fsay0+cHRlX2VudHJ5KQotCQkJZXJyID0gd2Fsa19wdGVfcmFuZ2UocG1kLCBhZGRyLCBuZXh0LCB3YWxrLCBwcml2YXRlKTsKKwkJCWVyciA9IHdhbGtfcHRlX3JhbmdlKHBtZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9IHdoaWxlIChwbWQrKywgYWRkciA9IG5leHQsIGFkZHIgIT0gZW5kKTsKQEAgLTUyLDcgKzUyLDcgQEAKIH0KIAogc3RhdGljIGludCB3YWxrX3B1ZF9yYW5nZShwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICBjb25zdCBzdHJ1Y3QgbW1fd2FsayAqd2Fsaywgdm9pZCAqcHJpdmF0ZSkKKwkJCSAgc3RydWN0IG1tX3dhbGsgKndhbGspCiB7CiAJcHVkX3QgKnB1ZDsKIAl1bnNpZ25lZCBsb25nIG5leHQ7CkBAIC02MywxNSArNjMsMTUgQEAKIAkJbmV4dCA9IHB1ZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocHVkX25vbmVfb3JfY2xlYXJfYmFkKHB1ZCkpIHsKIAkJCWlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCBwcml2YXRlKTsKKwkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCQljb250aW51ZTsKIAkJfQogCQlpZiAod2Fsay0+cHVkX2VudHJ5KQotCQkJZXJyID0gd2Fsay0+cHVkX2VudHJ5KHB1ZCwgYWRkciwgbmV4dCwgcHJpdmF0ZSk7CisJCQllcnIgPSB3YWxrLT5wdWRfZW50cnkocHVkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKCFlcnIgJiYgKHdhbGstPnBtZF9lbnRyeSB8fCB3YWxrLT5wdGVfZW50cnkpKQotCQkJZXJyID0gd2Fsa19wbWRfcmFuZ2UocHVkLCBhZGRyLCBuZXh0LCB3YWxrLCBwcml2YXRlKTsKKwkJCWVyciA9IHdhbGtfcG1kX3JhbmdlKHB1ZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9IHdoaWxlIChwdWQrKywgYWRkciA9IG5leHQsIGFkZHIgIT0gZW5kKTsKQEAgLTg1LDE1ICs4NSwxNSBAQAogICogQGFkZHI6IHN0YXJ0aW5nIGFkZHJlc3MKICAqIEBlbmQ6IGVuZGluZyBhZGRyZXNzCiAgKiBAd2Fsazogc2V0IG9mIGNhbGxiYWNrcyB0byBpbnZva2UgZm9yIGVhY2ggbGV2ZWwgb2YgdGhlIHRyZWUKLSAqIEBwcml2YXRlOiBwcml2YXRlIGRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbgogICoKICAqIFJlY3Vyc2l2ZWx5IHdhbGsgdGhlIHBhZ2UgdGFibGUgZm9yIHRoZSBtZW1vcnkgYXJlYSBpbiBhIFZNQSwKICAqIGNhbGxpbmcgc3VwcGxpZWQgY2FsbGJhY2tzLiBDYWxsYmFja3MgYXJlIGNhbGxlZCBpbi1vcmRlciAoZmlyc3QKICAqIFBHRCwgZmlyc3QgUFVELCBmaXJzdCBQTUQsIGZpcnN0IFBURSwgc2Vjb25kIFBURS4uLiBzZWNvbmQgUE1ELAogICogZXRjLikuIElmIGxvd2VyLWxldmVsIGNhbGxiYWNrcyBhcmUgb21pdHRlZCwgd2Fsa2luZyBkZXB0aCBpcyByZWR1Y2VkLgogICoKLSAqIEVhY2ggY2FsbGJhY2sgcmVjZWl2ZXMgYW4gZW50cnkgcG9pbnRlciwgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlCi0gKiBhc3NvY2lhdGVkIHJhbmdlLCBhbmQgYSBjYWxsZXItc3VwcGxpZWQgcHJpdmF0ZSBkYXRhIHBvaW50ZXIuCisgKiBFYWNoIGNhbGxiYWNrIHJlY2VpdmVzIGFuIGVudHJ5IHBvaW50ZXIgYW5kIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZQorICogYXNzb2NpYXRlZCByYW5nZSwgYW5kIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgbW1fd2FsayBmb3IgYWNjZXNzIHRvCisgKiB0aGUgLT5wcml2YXRlIG9yIC0+bW0gZmllbGRzLgogICoKICAqIE5vIGxvY2tzIGFyZSB0YWtlbiwgYnV0IHRoZSBib3R0b20gbGV2ZWwgaXRlcmF0b3Igd2lsbCBtYXAgUFRFCiAgKiBkaXJlY3RvcmllcyBmcm9tIGhpZ2htZW0gaWYgbmVjZXNzYXJ5LgpAQCAtMTAxLDkgKzEwMSw4IEBACiAgKiBJZiBhbnkgY2FsbGJhY2sgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlLCB0aGUgd2FsayBpcyBhYm9ydGVkIGFuZAogICogdGhlIHJldHVybiB2YWx1ZSBpcyBwcm9wYWdhdGVkIGJhY2sgdG8gdGhlIGNhbGxlci4gT3RoZXJ3aXNlIDAgaXMgcmV0dXJuZWQuCiAgKi8KLWludCB3YWxrX3BhZ2VfcmFuZ2UoY29uc3Qgc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCSAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkgICAgY29uc3Qgc3RydWN0IG1tX3dhbGsgKndhbGssIHZvaWQgKnByaXZhdGUpCitpbnQgd2Fsa19wYWdlX3JhbmdlKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCSAgICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKIAlwZ2RfdCAqcGdkOwogCXVuc2lnbmVkIGxvbmcgbmV4dDsKQEAgLTExMiwyMSArMTExLDI0IEBACiAJaWYgKGFkZHIgPj0gZW5kKQogCQlyZXR1cm4gZXJyOwogCi0JcGdkID0gcGdkX29mZnNldChtbSwgYWRkcik7CisJaWYgKCF3YWxrLT5tbSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwZ2QgPSBwZ2Rfb2Zmc2V0KHdhbGstPm1tLCBhZGRyKTsKIAlkbyB7CiAJCW5leHQgPSBwZ2RfYWRkcl9lbmQoYWRkciwgZW5kKTsKIAkJaWYgKHBnZF9ub25lX29yX2NsZWFyX2JhZChwZ2QpKSB7CiAJCQlpZiAod2Fsay0+cHRlX2hvbGUpCi0JCQkJZXJyID0gd2Fsay0+cHRlX2hvbGUoYWRkciwgbmV4dCwgcHJpdmF0ZSk7CisJCQkJZXJyID0gd2Fsay0+cHRlX2hvbGUoYWRkciwgbmV4dCwgd2Fsayk7CiAJCQlpZiAoZXJyKQogCQkJCWJyZWFrOwogCQkJY29udGludWU7CiAJCX0KIAkJaWYgKHdhbGstPnBnZF9lbnRyeSkKLQkJCWVyciA9IHdhbGstPnBnZF9lbnRyeShwZ2QsIGFkZHIsIG5leHQsIHByaXZhdGUpOworCQkJZXJyID0gd2Fsay0+cGdkX2VudHJ5KHBnZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmICghZXJyICYmCiAJCSAgICAod2Fsay0+cHVkX2VudHJ5IHx8IHdhbGstPnBtZF9lbnRyeSB8fCB3YWxrLT5wdGVfZW50cnkpKQotCQkJZXJyID0gd2Fsa19wdWRfcmFuZ2UocGdkLCBhZGRyLCBuZXh0LCB3YWxrLCBwcml2YXRlKTsKKwkJCWVyciA9IHdhbGtfcHVkX3JhbmdlKHBnZCwgYWRkciwgbmV4dCwgd2Fsayk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9IHdoaWxlIChwZ2QrKywgYWRkciA9IG5leHQsIGFkZHIgIT0gZW5kKTsKZGlmZiAtLWdpdCBhL21tL3NsYWIuYyBiL21tL3NsYWIuYwppbmRleCAwNjIzNmU0Li4wNDY2MDdmIDEwMDY0NAotLS0gYS9tbS9zbGFiLmMKKysrIGIvbW0vc2xhYi5jCkBAIC0zMjYzLDkgKzMyNjMsMTIgQEAKIAogCQlpZiAoY3B1c2V0X3pvbmVfYWxsb3dlZF9oYXJkd2FsbCh6b25lLCBmbGFncykgJiYKIAkJCWNhY2hlLT5ub2RlbGlzdHNbbmlkXSAmJgotCQkJY2FjaGUtPm5vZGVsaXN0c1tuaWRdLT5mcmVlX29iamVjdHMpCisJCQljYWNoZS0+bm9kZWxpc3RzW25pZF0tPmZyZWVfb2JqZWN0cykgewogCQkJCW9iaiA9IF9fX19jYWNoZV9hbGxvY19ub2RlKGNhY2hlLAogCQkJCQlmbGFncyB8IEdGUF9USElTTk9ERSwgbmlkKTsKKwkJCQlpZiAob2JqKQorCQkJCQlicmVhazsKKwkJfQogCX0KIAogCWlmICghb2JqKSB7CmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmMKaW5kZXggMDk4N2QxYy4uNWY2ZTJjNCAxMDA2NDQKLS0tIGEvbW0vc2x1Yi5jCisrKyBiL21tL3NsdWIuYwpAQCAtNSw3ICs1LDcgQEAKICAqIFRoZSBhbGxvY2F0b3Igc3luY2hyb25pemVzIHVzaW5nIHBlciBzbGFiIGxvY2tzIGFuZCBvbmx5CiAgKiB1c2VzIGEgY2VudHJhbGl6ZWQgbG9jayB0byBtYW5hZ2UgYSBwb29sIG9mIHBhcnRpYWwgc2xhYnMuCiAgKgotICogKEMpIDIwMDcgU0dJLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIChDKSAyMDA3IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTQzMSw5ICs0MzEsOCBAQAogCWlmICghdC0+YWRkcikKIAkJcmV0dXJuOwogCi0JcHJpbnRrKEtFUk5fRVJSICJJTkZPOiAlcyBpbiAiLCBzKTsKLQlfX3ByaW50X3N5bWJvbCgiJXMiLCAodW5zaWduZWQgbG9uZyl0LT5hZGRyKTsKLQlwcmludGsoIiBhZ2U9JWx1IGNwdT0ldSBwaWQ9JWRcbiIsIGppZmZpZXMgLSB0LT53aGVuLCB0LT5jcHUsIHQtPnBpZCk7CisJcHJpbnRrKEtFUk5fRVJSICJJTkZPOiAlcyBpbiAlcFMgYWdlPSVsdSBjcHU9JXUgcGlkPSVkXG4iLAorCQlzLCB0LT5hZGRyLCBqaWZmaWVzIC0gdC0+d2hlbiwgdC0+Y3B1LCB0LT5waWQpOwogfQogCiBzdGF0aWMgdm9pZCBwcmludF90cmFja2luZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgdm9pZCAqb2JqZWN0KQpAQCAtMTYyOCw5ICsxNjI3LDExIEBACiAJdm9pZCAqKm9iamVjdDsKIAlzdHJ1Y3Qga21lbV9jYWNoZV9jcHUgKmM7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgb2Jqc2l6ZTsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAljID0gZ2V0X2NwdV9zbGFiKHMsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJb2Jqc2l6ZSA9IGMtPm9ianNpemU7CiAJaWYgKHVubGlrZWx5KCFjLT5mcmVlbGlzdCB8fCAhbm9kZV9tYXRjaChjLCBub2RlKSkpCiAKIAkJb2JqZWN0ID0gX19zbGFiX2FsbG9jKHMsIGdmcGZsYWdzLCBub2RlLCBhZGRyLCBjKTsKQEAgLTE2NDMsNyArMTY0NCw3IEBACiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCiAJaWYgKHVubGlrZWx5KChnZnBmbGFncyAmIF9fR0ZQX1pFUk8pICYmIG9iamVjdCkpCi0JCW1lbXNldChvYmplY3QsIDAsIGMtPm9ianNpemUpOworCQltZW1zZXQob2JqZWN0LCAwLCBvYmpzaXplKTsKIAogCXJldHVybiBvYmplY3Q7CiB9CkBAIC0yOTk1LDggKzI5OTYsNiBAQAogCQljcmVhdGVfa21hbGxvY19jYWNoZSgma21hbGxvY19jYWNoZXNbMV0sCiAJCQkJImttYWxsb2MtOTYiLCA5NiwgR0ZQX0tFUk5FTCk7CiAJCWNhY2hlcysrOwotCX0KLQlpZiAoS01BTExPQ19NSU5fU0laRSA8PSAxMjgpIHsKIAkJY3JlYXRlX2ttYWxsb2NfY2FjaGUoJmttYWxsb2NfY2FjaGVzWzJdLAogCQkJCSJrbWFsbG9jLTE5MiIsIDE5MiwgR0ZQX0tFUk5FTCk7CiAJCWNhY2hlcysrOwpAQCAtMzAyNiw2ICszMDI1LDE2IEBACiAJZm9yIChpID0gODsgaSA8IEtNQUxMT0NfTUlOX1NJWkU7IGkgKz0gOCkKIAkJc2l6ZV9pbmRleFsoaSAtIDEpIC8gOF0gPSBLTUFMTE9DX1NISUZUX0xPVzsKIAorCWlmIChLTUFMTE9DX01JTl9TSVpFID09IDEyOCkgeworCQkvKgorCQkgKiBUaGUgMTkyIGJ5dGUgc2l6ZWQgY2FjaGUgaXMgbm90IHVzZWQgaWYgdGhlIGFsaWdubWVudAorCQkgKiBpcyAxMjggYnl0ZS4gUmVkaXJlY3Qga21hbGxvYyB0byB1c2UgdGhlIDI1NiBieXRlIGNhY2hlCisJCSAqIGluc3RlYWQuCisJCSAqLworCQlmb3IgKGkgPSAxMjggKyA4OyBpIDw9IDE5MjsgaSArPSA4KQorCQkJc2l6ZV9pbmRleFsoaSAtIDEpIC8gOF0gPSA4OworCX0KKwogCXNsYWJfc3RhdGUgPSBVUDsKIAogCS8qIFByb3ZpZGUgdGhlIGNvcnJlY3Qga21hbGxvYyBuYW1lcyBub3cgdGhhdCB0aGUgY2FjaGVzIGFyZSB1cCAqLwpkaWZmIC0tZ2l0IGEvbW0vc3BhcnNlLXZtZW1tYXAuYyBiL21tL3NwYXJzZS12bWVtbWFwLmMKaW5kZXggOTljNGYzNi4uYTkxYjVmOCAxMDA2NDQKLS0tIGEvbW0vc3BhcnNlLXZtZW1tYXAuYworKysgYi9tbS9zcGFyc2Utdm1lbW1hcC5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFZpcnR1YWwgTWVtb3J5IE1hcCBzdXBwb3J0CiAgKgotICogKEMpIDIwMDcgc2dpLiBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4uCisgKiAoQykgMjAwNyBzZ2kuIENocmlzdG9waCBMYW1ldGVyLgogICoKICAqIFZpcnR1YWwgbWVtb3J5IG1hcHMgYWxsb3cgVk0gcHJpbWl0aXZlcyBwZm5fdG9fcGFnZSwgcGFnZV90b19wZm4sCiAgKiB2aXJ0X3RvX3BhZ2UsIHBhZ2VfYWRkcmVzcygpIHRvIGJlIGltcGxlbWVudGVkIGFzIGEgYmFzZSBvZmZzZXQKZGlmZiAtLWdpdCBhL21tL3Ztc2Nhbi5jIGIvbW0vdm1zY2FuLmMKaW5kZXggOWEyOTkwMS4uOTY3ZDMwYyAxMDA2NDQKLS0tIGEvbW0vdm1zY2FuLmMKKysrIGIvbW0vdm1zY2FuLmMKQEAgLTEzMDcsNyArMTMwNyw3IEBACiAJCQkJCXN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjKQogewogCWludCBwcmlvcml0eTsKLQlpbnQgcmV0ID0gMDsKKwl1bnNpZ25lZCBsb25nIHJldCA9IDA7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9zY2FubmVkID0gMDsKIAl1bnNpZ25lZCBsb25nIG5yX3JlY2xhaW1lZCA9IDA7CiAJc3RydWN0IHJlY2xhaW1fc3RhdGUgKnJlY2xhaW1fc3RhdGUgPSBjdXJyZW50LT5yZWNsYWltX3N0YXRlOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9icjI2ODQuYyBiL25ldC9hdG0vYnIyNjg0LmMKaW5kZXggOWQ1MmViZi4uMDVmYWZkYyAxMDA2NDQKLS0tIGEvbmV0L2F0bS9icjI2ODQuYworKysgYi9uZXQvYXRtL2JyMjY4NC5jCkBAIC0xODgsMTAgKzE4OCwxMyBAQAogCQkJCXJldHVybiAwOwogCQkJfQogCQl9Ci0JfSBlbHNlIHsKLQkJc2tiX3B1c2goc2tiLCAyKTsKLQkJaWYgKGJyZGV2LT5wYXlsb2FkID09IHBfYnJpZGdlZCkKKwl9IGVsc2UgeyAvKiBlX3ZjICovCisJCWlmIChicmRldi0+cGF5bG9hZCA9PSBwX2JyaWRnZWQpIHsKKwkJCXNrYl9wdXNoKHNrYiwgMik7CiAJCQltZW1zZXQoc2tiLT5kYXRhLCAwLCAyKTsKKwkJfSBlbHNlIHsgLyogcF9yb3V0ZWQgKi8KKwkJCXNrYl9wdWxsKHNrYiwgRVRIX0hMRU4pOworCQl9CiAJfQogCXNrYl9kZWJ1Zyhza2IpOwogCkBAIC0zNzcsMTEgKzM4MCw4IEBACiAJCQkJIChza2ItPmRhdGEgKyA2LCBldGhlcnR5cGVfaXB2NCwKIAkJCQkgIHNpemVvZihldGhlcnR5cGVfaXB2NCkpID09IDApCiAJCQkJc2tiLT5wcm90b2NvbCA9IF9fY29uc3RhbnRfaHRvbnMoRVRIX1BfSVApOwotCQkJZWxzZSB7Ci0JCQkJYnJkZXYtPnN0YXRzLnJ4X2Vycm9ycysrOwotCQkJCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJCQlyZXR1cm47Ci0JCQl9CisJCQllbHNlCisJCQkJZ290byBlcnJvcjsKIAkJCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKGxsY19vdWlfaXB2NCkpOwogCQkJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAJCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX0hPU1Q7CkBAIC0zOTQsNDQgKzM5NCw1NiBAQAogCQkJICAgKG1lbWNtcChza2ItPmRhdGEsIGxsY19vdWlfcGlkX3BhZCwgNykgPT0gMCkpIHsKIAkJCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKGxsY19vdWlfcGlkX3BhZCkpOwogCQkJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgbmV0X2Rldik7Ci0JCX0gZWxzZSB7Ci0JCQlicmRldi0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCQlyZXR1cm47Ci0JCX0KKwkJfSBlbHNlCisJCQlnb3RvIGVycm9yOwogCi0JfSBlbHNlIHsKLQkJLyogZmlyc3QgMiBjaGFycyBzaG91bGQgYmUgMCAqLwotCQlpZiAoKigodTE2ICopIChza2ItPmRhdGEpKSAhPSAwKSB7Ci0JCQlicmRldi0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCQlyZXR1cm47CisJfSBlbHNlIHsgLyogZV92YyAqLworCQlpZiAoYnJkZXYtPnBheWxvYWQgPT0gcF9yb3V0ZWQpIHsKKwkJCXN0cnVjdCBpcGhkciAqaXBoOworCisJCQlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwkJCWlwaCA9IGlwX2hkcihza2IpOworCQkJaWYgKGlwaC0+dmVyc2lvbiA9PSA0KQorCQkJCXNrYi0+cHJvdG9jb2wgPSBfX2NvbnN0YW50X2h0b25zKEVUSF9QX0lQKTsKKwkJCWVsc2UgaWYgKGlwaC0+dmVyc2lvbiA9PSA2KQorCQkJCXNrYi0+cHJvdG9jb2wgPSBfX2NvbnN0YW50X2h0b25zKEVUSF9QX0lQVjYpOworCQkJZWxzZQorCQkJCWdvdG8gZXJyb3I7CisJCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX0hPU1Q7CisJCX0gZWxzZSB7IC8qIHBfYnJpZGdlZCAqLworCQkJLyogZmlyc3QgMiBjaGFycyBzaG91bGQgYmUgMCAqLworCQkJaWYgKCooKHUxNiAqKSAoc2tiLT5kYXRhKSkgIT0gMCkKKwkJCQlnb3RvIGVycm9yOworCQkJc2tiX3B1bGwoc2tiLCBCUjI2ODRfUEFEX0xFTik7CisJCQlza2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBuZXRfZGV2KTsKIAkJfQotCQlza2JfcHVsbChza2IsIEJSMjY4NF9QQURfTEVOICsgRVRIX0hMRU4pOwkvKiBwYWQsIGRzdG1hYywgc3JjbWFjLCBldGh0eXBlICovCi0JCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIG5ldF9kZXYpOwogCX0KIAogI2lmZGVmIENPTkZJR19BVE1fQlIyNjg0X0lQRklMVEVSCi0JaWYgKHVubGlrZWx5KHBhY2tldF9mYWlsc19maWx0ZXIoc2tiLT5wcm90b2NvbCwgYnJ2Y2MsIHNrYikpKSB7Ci0JCWJyZGV2LT5zdGF0cy5yeF9kcm9wcGVkKys7Ci0JCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAodW5saWtlbHkocGFja2V0X2ZhaWxzX2ZpbHRlcihza2ItPnByb3RvY29sLCBicnZjYywgc2tiKSkpCisJCWdvdG8gZHJvcHBlZDsKICNlbmRpZiAvKiBDT05GSUdfQVRNX0JSMjY4NF9JUEZJTFRFUiAqLwogCXNrYi0+ZGV2ID0gbmV0X2RldjsKIAlBVE1fU0tCKHNrYiktPnZjYyA9IGF0bXZjYzsJLyogbmVlZGVkID8gKi8KIAlwcl9kZWJ1ZygicmVjZWl2ZWQgcGFja2V0J3MgcHJvdG9jb2w6ICV4XG4iLCBudG9ocyhza2ItPnByb3RvY29sKSk7CiAJc2tiX2RlYnVnKHNrYik7Ci0JaWYgKHVubGlrZWx5KCEobmV0X2Rldi0+ZmxhZ3MgJiBJRkZfVVApKSkgewotCQkvKiBzaWdoLCBpbnRlcmZhY2UgaXMgZG93biAqLwotCQlicmRldi0+c3RhdHMucnhfZHJvcHBlZCsrOwotCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCXJldHVybjsKLQl9CisJLyogc2lnaCwgaW50ZXJmYWNlIGlzIGRvd24/ICovCisJaWYgKHVubGlrZWx5KCEobmV0X2Rldi0+ZmxhZ3MgJiBJRkZfVVApKSkKKwkJZ290byBkcm9wcGVkOwogCWJyZGV2LT5zdGF0cy5yeF9wYWNrZXRzKys7CiAJYnJkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHNrYi0+bGVuOwogCW1lbXNldChBVE1fU0tCKHNrYiksIDAsIHNpemVvZihzdHJ1Y3QgYXRtX3NrYl9kYXRhKSk7CiAJbmV0aWZfcngoc2tiKTsKKwlyZXR1cm47CisKK2Ryb3BwZWQ6CisJYnJkZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKKwlnb3RvIGZyZWVfc2tiOworZXJyb3I6CisJYnJkZXYtPnN0YXRzLnJ4X2Vycm9ycysrOworZnJlZV9za2I6CisJZGV2X2tmcmVlX3NrYihza2IpOworCXJldHVybjsKIH0KIAogLyoKQEAgLTUxOCw5ICs1MzAsOSBAQAogCQlzdHJ1Y3Qgc2tfYnVmZiAqbmV4dCA9IHNrYi0+bmV4dDsKIAogCQlza2ItPm5leHQgPSBza2ItPnByZXYgPSBOVUxMOworCQlicjI2ODRfcHVzaChhdG12Y2MsIHNrYik7CiAJCUJSUFJJVihza2ItPmRldiktPnN0YXRzLnJ4X2J5dGVzIC09IHNrYi0+bGVuOwogCQlCUlBSSVYoc2tiLT5kZXYpLT5zdGF0cy5yeF9wYWNrZXRzLS07Ci0JCWJyMjY4NF9wdXNoKGF0bXZjYywgc2tiKTsKIAogCQlza2IgPSBuZXh0OwogCX0KZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfaWYuYyBiL25ldC9icmlkZ2UvYnJfaWYuYwppbmRleCBjMjM5N2Y1Li5mMzhjYzUzIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lmLmMKKysrIGIvbmV0L2JyaWRnZS9icl9pZi5jCkBAIC00NDIsMTIgKzQ0MiwxNiBAQAogCiB2b2lkIF9fZXhpdCBicl9jbGVhbnVwX2JyaWRnZXModm9pZCkKIHsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCAqbnh0OworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAKIAlydG5sX2xvY2soKTsKLQlmb3JfZWFjaF9uZXRkZXZfc2FmZSgmaW5pdF9uZXQsIGRldiwgbnh0KQotCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpCityZXN0YXJ0OgorCWZvcl9lYWNoX25ldGRldigmaW5pdF9uZXQsIGRldikgeworCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpIHsKIAkJCWRlbF9icihkZXYtPnByaXYpOworCQkJZ290byByZXN0YXJ0OworCQl9CisJfQogCXJ0bmxfdW5sb2NrKCk7CiAKIH0KZGlmZiAtLWdpdCBhL25ldC9jYW4vYWZfY2FuLmMgYi9uZXQvY2FuL2FmX2Nhbi5jCmluZGV4IDdlOGNhMjguLjQ4NGJiZjYgMTAwNjQ0Ci0tLSBhL25ldC9jYW4vYWZfY2FuLmMKKysrIGIvbmV0L2Nhbi9hZl9jYW4uYwpAQCAtMjA1LDEyICsyMDUsMTkgQEAKICAqICAtRU5PQlVGUyBvbiBmdWxsIGRyaXZlciBxdWV1ZSAoc2VlIG5ldF94bWl0X2Vycm5vKCkpCiAgKiAgLUVOT01FTSB3aGVuIGxvY2FsIGxvb3BiYWNrIGZhaWxlZCBhdCBjYWxsaW5nIHNrYl9jbG9uZSgpCiAgKiAgLUVQRVJNIHdoZW4gdHJ5aW5nIHRvIHNlbmQgb24gYSBub24tQ0FOIGludGVyZmFjZQorICogIC1FSU5WQUwgd2hlbiB0aGUgc2tiLT5kYXRhIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBDQU4gZnJhbWUKICAqLwogaW50IGNhbl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIGludCBsb29wKQogewogCXN0cnVjdCBza19idWZmICpuZXdza2IgPSBOVUxMOworCXN0cnVjdCBjYW5fZnJhbWUgKmNmID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2ItPmRhdGE7CiAJaW50IGVycjsKIAorCWlmIChza2ItPmxlbiAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkgfHwgY2YtPmNhbl9kbGMgPiA4KSB7CisJCWtmcmVlX3NrYihza2IpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlpZiAoc2tiLT5kZXYtPnR5cGUgIT0gQVJQSFJEX0NBTikgewogCQlrZnJlZV9za2Ioc2tiKTsKIAkJcmV0dXJuIC1FUEVSTTsKQEAgLTYwNSw2ICs2MTIsNyBAQAogCQkgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpCiB7CiAJc3RydWN0IGRldl9yY3ZfbGlzdHMgKmQ7CisJc3RydWN0IGNhbl9mcmFtZSAqY2YgPSAoc3RydWN0IGNhbl9mcmFtZSAqKXNrYi0+ZGF0YTsKIAlpbnQgbWF0Y2hlczsKIAogCWlmIChkZXYtPnR5cGUgIT0gQVJQSFJEX0NBTiB8fCBkZXZfbmV0KGRldikgIT0gJmluaXRfbmV0KSB7CkBAIC02MTIsNiArNjIwLDggQEAKIAkJcmV0dXJuIDA7CiAJfQogCisJQlVHX09OKHNrYi0+bGVuICE9IHNpemVvZihzdHJ1Y3QgY2FuX2ZyYW1lKSB8fCBjZi0+Y2FuX2RsYyA+IDgpOworCiAJLyogdXBkYXRlIHN0YXRpc3RpY3MgKi8KIAljYW5fc3RhdHMucnhfZnJhbWVzKys7CiAJY2FuX3N0YXRzLnJ4X2ZyYW1lc19kZWx0YSsrOwpkaWZmIC0tZ2l0IGEvbmV0L2Nhbi9iY20uYyBiL25ldC9jYW4vYmNtLmMKaW5kZXggZDlhM2E5ZC4uNzJjMmNlOSAxMDA2NDQKLS0tIGEvbmV0L2Nhbi9iY20uYworKysgYi9uZXQvY2FuL2JjbS5jCkBAIC0yOTgsNyArMjk4LDcgQEAKIAogCWlmIChoZWFkLT5uZnJhbWVzKSB7CiAJCS8qIGNhbl9mcmFtZXMgc3RhcnRpbmcgaGVyZSAqLwotCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKikgc2tiX3RhaWxfcG9pbnRlcihza2IpOworCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2JfdGFpbF9wb2ludGVyKHNrYik7CiAKIAkJbWVtY3B5KHNrYl9wdXQoc2tiLCBkYXRhbGVuKSwgZnJhbWVzLCBkYXRhbGVuKTsKIApAQCAtODI2LDYgKzgyNiwxMCBAQAogCQlmb3IgKGkgPSAwOyBpIDwgbXNnX2hlYWQtPm5mcmFtZXM7IGkrKykgewogCQkJZXJyID0gbWVtY3B5X2Zyb21pb3ZlYygodTggKikmb3AtPmZyYW1lc1tpXSwKIAkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgQ0ZTSVopOworCisJCQlpZiAob3AtPmZyYW1lc1tpXS5jYW5fZGxjID4gOCkKKwkJCQllcnIgPSAtRUlOVkFMOworCiAJCQlpZiAoZXJyIDwgMCkKIAkJCQlyZXR1cm4gZXJyOwogCkBAIC04NTgsNiArODYyLDEwIEBACiAJCWZvciAoaSA9IDA7IGkgPCBtc2dfaGVhZC0+bmZyYW1lczsgaSsrKSB7CiAJCQllcnIgPSBtZW1jcHlfZnJvbWlvdmVjKCh1OCAqKSZvcC0+ZnJhbWVzW2ldLAogCQkJCQkgICAgICAgbXNnLT5tc2dfaW92LCBDRlNJWik7CisKKwkJCWlmIChvcC0+ZnJhbWVzW2ldLmNhbl9kbGMgPiA4KQorCQkJCWVyciA9IC1FSU5WQUw7CisKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJaWYgKG9wLT5mcmFtZXMgIT0gJm9wLT5zZnJhbWUpCiAJCQkJCWtmcmVlKG9wLT5mcmFtZXMpOwpAQCAtMTE2NCw5ICsxMTcyLDEyIEBACiAKIAlza2ItPmRldiA9IGRldjsKIAlza2ItPnNrICA9IHNrOwotCWNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLworCWVyciA9IGNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLwogCWRldl9wdXQoZGV2KTsKIAorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlyZXR1cm4gQ0ZTSVogKyBNSFNJWjsKIH0KIApAQCAtMTE4NSw2ICsxMTk2LDEwIEBACiAJaWYgKCFiby0+Ym91bmQpCiAJCXJldHVybiAtRU5PVENPTk47CiAKKwkvKiBjaGVjayBmb3IgdmFsaWQgbWVzc2FnZSBsZW5ndGggZnJvbSB1c2Vyc3BhY2UgKi8KKwlpZiAoc2l6ZSA8IE1IU0laIHx8IChzaXplIC0gTUhTSVopICUgQ0ZTSVopCisJCXJldHVybiAtRUlOVkFMOworCiAJLyogY2hlY2sgZm9yIGFsdGVybmF0aXZlIGlmaW5kZXggZm9yIHRoaXMgYmNtX29wICovCiAKIAlpZiAoIWlmaW5kZXggJiYgbXNnLT5tc2dfbmFtZSkgewpAQCAtMTI1OSw4ICsxMjc0LDggQEAKIAkJYnJlYWs7CiAKIAljYXNlIFRYX1NFTkQ6Ci0JCS8qIHdlIG5lZWQgYXQgbGVhc3Qgb25lIGNhbl9mcmFtZSAqLwotCQlpZiAobXNnX2hlYWQubmZyYW1lcyA8IDEpCisJCS8qIHdlIG5lZWQgZXhhY3RseSBvbmUgY2FuX2ZyYW1lIGJlaGluZCB0aGUgbXNnIGhlYWQgKi8KKwkJaWYgKChtc2dfaGVhZC5uZnJhbWVzICE9IDEpIHx8IChzaXplICE9IENGU0laICsgTUhTSVopKQogCQkJcmV0ID0gLUVJTlZBTDsKIAkJZWxzZQogCQkJcmV0ID0gYmNtX3R4X3NlbmQobXNnLCBpZmluZGV4LCBzayk7CmRpZmYgLS1naXQgYS9uZXQvY2FuL3Jhdy5jIGIvbmV0L2Nhbi9yYXcuYwppbmRleCA2OTg3N2I4Li4zZTQ2ZWUzIDEwMDY0NAotLS0gYS9uZXQvY2FuL3Jhdy5jCisrKyBiL25ldC9jYW4vcmF3LmMKQEAgLTYzMiw2ICs2MzIsOSBAQAogCX0gZWxzZQogCQlpZmluZGV4ID0gcm8tPmlmaW5kZXg7CiAKKwlpZiAoc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkpCisJCXJldHVybiAtRUlOVkFMOworCiAJZGV2ID0gZGV2X2dldF9ieV9pbmRleCgmaW5pdF9uZXQsIGlmaW5kZXgpOwogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOWElPOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA1ODI5NjMwLi44MjFjYjE2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMTE5LDYgKzExOSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9pZl9hcnAuaD4KKyNpbmNsdWRlIDxsaW51eC9pZl92bGFuLmg+CiAKICNpbmNsdWRlICJuZXQtc3lzZnMuaCIKIApAQCAtNDUzLDcgKzQ1NCw3IEBACiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gPT0gJ1wwJyB8fCBzW2ldLm5hbWVbMF0gPT0gJyAnKSB7CiAJCQltZW1zZXQoc1tpXS5uYW1lLCAwLCBzaXplb2Yoc1tpXS5uYW1lKSk7Ci0JCQlzdHJjcHkoc1tpXS5uYW1lLCBuYW1lKTsKKwkJCXN0cmxjcHkoc1tpXS5uYW1lLCBuYW1lLCBJRk5BTVNJWik7CiAJCQltZW1jcHkoJnNbaV0ubWFwLCBtYXAsIHNpemVvZihzW2ldLm1hcCkpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ3OCw3ICs0NzksNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gIT0gJ1wwJyAmJiBzW2ldLm5hbWVbMF0gIT0gJyAnICYmCi0JCSAgICAhc3RybmNtcChkZXYtPm5hbWUsIHNbaV0ubmFtZSwgc3RybGVuKHNbaV0ubmFtZSkpKSB7CisJCSAgICAhc3RyY21wKGRldi0+bmFtZSwgc1tpXS5uYW1lKSkgewogCQkJZGV2LT5pcnEgCT0gc1tpXS5tYXAuaXJxOwogCQkJZGV2LT5iYXNlX2FkZHIgCT0gc1tpXS5tYXAuYmFzZV9hZGRyOwogCQkJZGV2LT5tZW1fc3RhcnQgCT0gc1tpXS5tYXAubWVtX3N0YXJ0OwpAQCAtMTM2Miw2ICsxMzYzLDI5IEBACiB9CiBFWFBPUlRfU1lNQk9MKG5ldGlmX2RldmljZV9hdHRhY2gpOwogCitzdGF0aWMgYm9vbCBjYW5fY2hlY2tzdW1fcHJvdG9jb2wodW5zaWduZWQgbG9uZyBmZWF0dXJlcywgX19iZTE2IHByb3RvY29sKQoreworCXJldHVybiAoKGZlYXR1cmVzICYgTkVUSUZfRl9HRU5fQ1NVTSkgfHwKKwkJKChmZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSkgJiYKKwkJIHByb3RvY29sID09IGh0b25zKEVUSF9QX0lQKSkgfHwKKwkJKChmZWF0dXJlcyAmIE5FVElGX0ZfSVBWNl9DU1VNKSAmJgorCQkgcHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpKTsKK30KKworc3RhdGljIGJvb2wgZGV2X2Nhbl9jaGVja3N1bShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCWlmIChjYW5fY2hlY2tzdW1fcHJvdG9jb2woZGV2LT5mZWF0dXJlcywgc2tiLT5wcm90b2NvbCkpCisJCXJldHVybiB0cnVlOworCisJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMVEpKSB7CisJCXN0cnVjdCB2bGFuX2V0aGhkciAqdmVoID0gKHN0cnVjdCB2bGFuX2V0aGhkciAqKXNrYi0+ZGF0YTsKKwkJaWYgKGNhbl9jaGVja3N1bV9wcm90b2NvbChkZXYtPmZlYXR1cmVzICYgZGV2LT52bGFuX2ZlYXR1cmVzLAorCQkJCQkgIHZlaC0+aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bykpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CiAKIC8qCiAgKiBJbnZhbGlkYXRlIGhhcmR3YXJlIGNoZWNrc3VtIHdoZW4gcGFja2V0IGlzIHRvIGJlIG1hbmdsZWQsIGFuZApAQCAtMTY0MCwxNCArMTY2NCw4IEBACiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwpIHsKIAkJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgc2tiLT5jc3VtX3N0YXJ0IC0KIAkJCQkJICAgICAgc2tiX2hlYWRyb29tKHNrYikpOwotCi0JCWlmICghKGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX0dFTl9DU1VNKSAmJgotCQkgICAgISgoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSkgJiYKLQkJICAgICAgc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpICYmCi0JCSAgICAhKChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9JUFY2X0NTVU0pICYmCi0JCSAgICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpKQotCQkJaWYgKHNrYl9jaGVja3N1bV9oZWxwKHNrYikpCi0JCQkJZ290byBvdXRfa2ZyZWVfc2tiOworCQlpZiAoIWRldl9jYW5fY2hlY2tzdW0oZGV2LCBza2IpICYmIHNrYl9jaGVja3N1bV9oZWxwKHNrYikpCisJCQlnb3RvIG91dF9rZnJlZV9za2I7CiAJfQogCiBnc286CkBAIC0yMDU5LDYgKzIwNzcsMTAgQEAKIAogCXJjdV9yZWFkX2xvY2soKTsKIAorCS8qIERvbid0IHJlY2VpdmUgcGFja2V0cyBpbiBhbiBleGl0aW5nIG5ldHdvcmsgbmFtZXNwYWNlICovCisJaWYgKCFuZXRfYWxpdmUoZGV2X25ldChza2ItPmRldikpKQorCQlnb3RvIG91dDsKKwogI2lmZGVmIENPTkZJR19ORVRfQ0xTX0FDVAogCWlmIChza2ItPnRjX3ZlcmQgJiBUQ19OQ0xTKSB7CiAJCXNrYi0+dGNfdmVyZCA9IENMUl9UQ19OQ0xTKHNrYi0+dGNfdmVyZCk7CkBAIC0yOTUxLDcgKzI5NzMsNyBAQAogLyoqCiAgKglkZXZfdW5pY2FzdF9hZGQJCS0gYWRkIGEgc2Vjb25kYXJ5IHVuaWNhc3QgYWRkcmVzcwogICoJQGRldjogZGV2aWNlCi0gKglAYWRkcjogYWRkcmVzcyB0byBkZWxldGUKKyAqCUBhZGRyOiBhZGRyZXNzIHRvIGFkZAogICoJQGFsZW46IGxlbmd0aCBvZiBAYWRkcgogICoKICAqCUFkZCBhIHNlY29uZGFyeSB1bmljYXN0IGFkZHJlc3MgdG8gdGhlIGRldmljZSBvciBpbmNyZWFzZQpAQCAtNDU2Myw4ICs0NTg1LDggQEAKIAogCWRldl9ib290X3BoYXNlID0gMDsKIAotCW9wZW5fc29mdGlycShORVRfVFhfU09GVElSUSwgbmV0X3R4X2FjdGlvbiwgTlVMTCk7Ci0Jb3Blbl9zb2Z0aXJxKE5FVF9SWF9TT0ZUSVJRLCBuZXRfcnhfYWN0aW9uLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoTkVUX1RYX1NPRlRJUlEsIG5ldF90eF9hY3Rpb24pOworCW9wZW5fc29mdGlycShORVRfUlhfU09GVElSUSwgbmV0X3J4X2FjdGlvbik7CiAKIAlob3RjcHVfbm90aWZpZXIoZGV2X2NwdV9jYWxsYmFjaywgMCk7CiAJZHN0X2luaXQoKTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKaW5kZXggZTNlOWFiMC4uMjc3YTIzMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmliX3J1bGVzLmMKKysrIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKQEAgLTIyNiw3ICsyMjYsNyBAQAogCiAJb3BzID0gbG9va3VwX3J1bGVzX29wcyhuZXQsIGZyaC0+ZmFtaWx5KTsKIAlpZiAob3BzID09IE5VTEwpIHsKLQkJZXJyID0gRUFGTk9TVVBQT1JUOworCQllcnIgPSAtRUFGTk9TVVBQT1JUOwogCQlnb3RvIGVycm91dDsKIAl9CiAKQEAgLTM2NSw3ICszNjUsNyBAQAogCiAJb3BzID0gbG9va3VwX3J1bGVzX29wcyhuZXQsIGZyaC0+ZmFtaWx5KTsKIAlpZiAob3BzID09IE5VTEwpIHsKLQkJZXJyID0gRUFGTk9TVVBQT1JUOworCQllcnIgPSAtRUFGTk9TVVBQT1JUOwogCQlnb3RvIGVycm91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRlci5jIGIvbmV0L2NvcmUvZmlsdGVyLmMKaW5kZXggNGY4MzY5Ny4uZGYzNzQ0MyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTY4LDcgKzY4LDYgQEAKICAqCXNrX2ZpbHRlciAtIHJ1biBhIHBhY2tldCB0aHJvdWdoIGEgc29ja2V0IGZpbHRlcgogICoJQHNrOiBzb2NrIGFzc29jaWF0ZWQgd2l0aCAmc2tfYnVmZgogICoJQHNrYjogYnVmZmVyIHRvIGZpbHRlcgotICoJQG5lZWRsb2NrOiBzZXQgdG8gMSBpZiB0aGUgc29jayBpcyBub3QgbG9ja2VkIGJ5IGNhbGxlci4KICAqCiAgKiBSdW4gdGhlIGZpbHRlciBjb2RlIGFuZCB0aGVuIGN1dCBza2ItPmRhdGEgdG8gY29ycmVjdCBzaXplIHJldHVybmVkIGJ5CiAgKiBza19ydW5fZmlsdGVyLiBJZiBwa3RfbGVuIGlzIDAgd2UgdG9zcyBwYWNrZXQuIElmIHNrYi0+bGVuIGlzIHNtYWxsZXIKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwppbmRleCA3MmI0YzE4Li43YzUyZmUyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMKKysrIGIvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCkBAIC0xNDAsNiArMTQwLDkgQEAKIAlzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgKm9wczsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CiAKKwkvKiBCZSB2ZXJ5IGNlcnRhaW4gaW5jb21pbmcgbmV0d29yayBwYWNrZXRzIHdpbGwgbm90IGZpbmQgdXMgKi8KKwlyY3VfYmFycmllcigpOworCiAJbmV0ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZXQsIHdvcmspOwogCiAJbXV0ZXhfbG9jaygmbmV0X211dGV4KTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggMWU1NTZkMy4uMzY2NjIxNiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTEyOTIsMTIgKzEyOTIsMTQgQEAKIHsKIAl1bnNpZ25lZCBpbnQgbnJfcGFnZXMgPSBzcGQtPm5yX3BhZ2VzOwogCXVuc2lnbmVkIGludCBwb2ZmLCBwbGVuLCBsZW4sIHRvZmYsIHRsZW47Ci0JaW50IGhlYWRsZW4sIHNlZzsKKwlpbnQgaGVhZGxlbiwgc2VnLCBlcnJvciA9IDA7CiAKIAl0b2ZmID0gKm9mZnNldDsKIAl0bGVuID0gKnRvdGFsX2xlbjsKLQlpZiAoIXRsZW4pCisJaWYgKCF0bGVuKSB7CisJCWVycm9yID0gMTsKIAkJZ290byBlcnI7CisJfQogCiAJLyoKIAkgKiBpZiB0aGUgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGluZWFyIHBhcnQsIGdvIGRpcmVjdGx5IHRvCkBAIC0xMzM5LDcgKzEzNDEsOCBAQAogCQkgKiBqdXN0IGp1bXAgZGlyZWN0bHkgdG8gdXBkYXRlIGFuZCByZXR1cm4sIG5vIHBvaW50CiAJCSAqIGluIGdvaW5nIG92ZXIgZnJhZ21lbnRzIHdoZW4gdGhlIG91dHB1dCBpcyBmdWxsLgogCQkgKi8KLQkJaWYgKHNwZF9maWxsX3BhZ2Uoc3BkLCB2aXJ0X3RvX3BhZ2UocCksIHBsZW4sIHBvZmYsIHNrYikpCisJCWVycm9yID0gc3BkX2ZpbGxfcGFnZShzcGQsIHZpcnRfdG9fcGFnZShwKSwgcGxlbiwgcG9mZiwgc2tiKTsKKwkJaWYgKGVycm9yKQogCQkJZ290byBkb25lOwogCiAJCXRsZW4gLT0gcGxlbjsKQEAgLTEzNjksNyArMTM3Miw4IEBACiAJCWlmICghcGxlbikKIAkJCWJyZWFrOwogCi0JCWlmIChzcGRfZmlsbF9wYWdlKHNwZCwgZi0+cGFnZSwgcGxlbiwgcG9mZiwgc2tiKSkKKwkJZXJyb3IgPSBzcGRfZmlsbF9wYWdlKHNwZCwgZi0+cGFnZSwgcGxlbiwgcG9mZiwgc2tiKTsKKwkJaWYgKGVycm9yKQogCQkJYnJlYWs7CiAKIAkJdGxlbiAtPSBwbGVuOwpAQCAtMTM4Miw3ICsxMzg2LDEwIEBACiAJCXJldHVybiAwOwogCX0KIGVycjoKLQlyZXR1cm4gMTsKKwkvKiB1cGRhdGUgdGhlIG9mZnNldCB0byByZWZsZWN0IHRoZSBsaW5lYXIgcGFydCBza2lwLCBpZiBhbnkgKi8KKwlpZiAoIWVycm9yKQorCQkqb2Zmc2V0ID0gdG9mZjsKKwlyZXR1cm4gZXJyb3I7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9hY2t2ZWMuYyBiL25ldC9kY2NwL2Fja3ZlYy5jCmluZGV4IDZkZTRiZDEuLjFlOGJlMjQgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2Fja3ZlYy5jCisrKyBiL25ldC9kY2NwL2Fja3ZlYy5jCkBAIC0yOTAsMTIgKzI5MCwxMiBAQAogCiAJCXdoaWxlICgxKSB7CiAJCQljb25zdCB1OCBsZW4gPSBkY2NwX2Fja3ZlY19sZW4oYXYsIGluZGV4KTsKLQkJCWNvbnN0IHU4IHN0YXRlID0gZGNjcF9hY2t2ZWNfc3RhdGUoYXYsIGluZGV4KTsKKwkJCWNvbnN0IHU4IGF2X3N0YXRlID0gZGNjcF9hY2t2ZWNfc3RhdGUoYXYsIGluZGV4KTsKIAkJCS8qCiAJCQkgKiB2YWxpZCBwYWNrZXRzIG5vdCB5ZXQgaW4gYXZfYnVmIGhhdmUgYSByZXNlcnZlZAogCQkJICogZW50cnksIHdpdGggYSBsZW4gZXF1YWwgdG8gMC4KIAkJCSAqLwotCQkJaWYgKHN0YXRlID09IERDQ1BfQUNLVkVDX1NUQVRFX05PVF9SRUNFSVZFRCAmJgorCQkJaWYgKGF2X3N0YXRlID09IERDQ1BfQUNLVkVDX1NUQVRFX05PVF9SRUNFSVZFRCAmJgogCQkJICAgIGxlbiA9PSAwICYmIGRlbHRhID09IDApIHsgLyogRm91bmQgb3VyCiAJCQkJCQkJIHJlc2VydmVkIHNlYXQhICovCiAJCQkJZGNjcF9wcl9kZWJ1ZygiRm91bmQgJWxsdSByZXNlcnZlZCBzZWF0IVxuIiwKQEAgLTMyNSwzMSArMzI1LDYgQEAKIAlyZXR1cm4gLUVJTFNFUTsKIH0KIAotI2lmZGVmIENPTkZJR19JUF9EQ0NQX0RFQlVHCi12b2lkIGRjY3BfYWNrdmVjdG9yX3ByaW50KGNvbnN0IHU2NCBhY2tubywgY29uc3QgdW5zaWduZWQgY2hhciAqdmVjdG9yLCBpbnQgbGVuKQotewotCWRjY3BfcHJfZGVidWdfY2F0KCJBQ0sgdmVjdG9yIGxlbj0lZCwgYWNrbm89JWxsdSB8IiwgbGVuLAotCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpYWNrbm8pOwotCi0Jd2hpbGUgKGxlbi0tKSB7Ci0JCWNvbnN0IHU4IHN0YXRlID0gKCp2ZWN0b3IgJiBEQ0NQX0FDS1ZFQ19TVEFURV9NQVNLKSA+PiA2OwotCQljb25zdCB1OCBybCA9ICp2ZWN0b3IgJiBEQ0NQX0FDS1ZFQ19MRU5fTUFTSzsKLQotCQlkY2NwX3ByX2RlYnVnX2NhdCgiJWQsJWR8Iiwgc3RhdGUsIHJsKTsKLQkJKyt2ZWN0b3I7Ci0JfQotCi0JZGNjcF9wcl9kZWJ1Z19jYXQoIlxuIik7Ci19Ci0KLXZvaWQgZGNjcF9hY2t2ZWNfcHJpbnQoY29uc3Qgc3RydWN0IGRjY3BfYWNrdmVjICphdikKLXsKLQlkY2NwX2Fja3ZlY3Rvcl9wcmludChhdi0+YXZfYnVmX2Fja25vLAotCQkJICAgICBhdi0+YXZfYnVmICsgYXYtPmF2X2J1Zl9oZWFkLAotCQkJICAgICBhdi0+YXZfdmVjX2xlbik7Ci19Ci0jZW5kaWYKLQogc3RhdGljIHZvaWQgZGNjcF9hY2t2ZWNfdGhyb3dfcmVjb3JkKHN0cnVjdCBkY2NwX2Fja3ZlYyAqYXYsCiAJCQkJICAgICBzdHJ1Y3QgZGNjcF9hY2t2ZWNfcmVjb3JkICphdnIpCiB7CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jIGIvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYwppbmRleCBmODEzMDc3Li5hMTkyOWYzIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jCisrKyBiL25ldC9kY2NwL2NjaWRzL2NjaWQzLmMKQEAgLTE1OSw4ICsxNTksOCBAQAogCX0gZWxzZSBpZiAoa3RpbWVfdXNfZGVsdGEobm93LCBoY3R4LT5jY2lkM2hjdHhfdF9sZCkKIAkJCQktIChzNjQpaGN0eC0+Y2NpZDNoY3R4X3J0dCA+PSAwKSB7CiAKLQkJaGN0eC0+Y2NpZDNoY3R4X3ggPQotCQkJbWF4KG1pbigyICogaGN0eC0+Y2NpZDNoY3R4X3gsIG1pbl9yYXRlKSwKKwkJaGN0eC0+Y2NpZDNoY3R4X3ggPSBtaW4oMiAqIGhjdHgtPmNjaWQzaGN0eF94LCBtaW5fcmF0ZSk7CisJCWhjdHgtPmNjaWQzaGN0eF94ID0gbWF4KGhjdHgtPmNjaWQzaGN0eF94LAogCQkJICAgIHNjYWxlZF9kaXYoKChfX3U2NCloY3R4LT5jY2lkM2hjdHhfcykgPDwgNiwKIAkJCQkgICAgICAgaGN0eC0+Y2NpZDNoY3R4X3J0dCkpOwogCQloY3R4LT5jY2lkM2hjdHhfdF9sZCA9IG5vdzsKQEAgLTMyOSw4ICszMjksMTQgQEAKIAkJCWhjdHgtPmNjaWQzaGN0eF94ICAgID0gcmZjMzM5MF9pbml0aWFsX3JhdGUoc2spOwogCQkJaGN0eC0+Y2NpZDNoY3R4X3RfbGQgPSBub3c7CiAJCX0gZWxzZSB7Ci0JCQkvKiBTZW5kZXIgZG9lcyBub3QgaGF2ZSBSVFQgc2FtcGxlOiBYX3BwcyA9IDEgcGt0L3NlYyAqLwotCQkJaGN0eC0+Y2NpZDNoY3R4X3ggPSBoY3R4LT5jY2lkM2hjdHhfczsKKwkJCS8qCisJCQkgKiBTZW5kZXIgZG9lcyBub3QgaGF2ZSBSVFQgc2FtcGxlOgorCQkJICogLSBzZXQgZmFsbGJhY2sgUlRUIChSRkMgNDM0MCwgMy40KSBzaW5jZSBhIFJUVCB2YWx1ZQorCQkJICogICBpcyBuZWVkZWQgaW4gc2V2ZXJhbCBwYXJ0cyAoZS5nLiAgd2luZG93IGNvdW50ZXIpOworCQkJICogLSBzZXQgc2VuZGluZyByYXRlIFhfcHBzID0gMXBwcyBhcyBwZXIgUkZDIDM0NDgsIDQuMi4KKwkJCSAqLworCQkJaGN0eC0+Y2NpZDNoY3R4X3J0dCA9IERDQ1BfRkFMTEJBQ0tfUlRUOworCQkJaGN0eC0+Y2NpZDNoY3R4X3ggICA9IGhjdHgtPmNjaWQzaGN0eF9zOwogCQkJaGN0eC0+Y2NpZDNoY3R4X3ggPDw9IDY7CiAJCX0KIAkJY2NpZDNfdXBkYXRlX3NlbmRfaW50ZXJ2YWwoaGN0eCk7CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5jIGIvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmMuYwppbmRleCBkMWRmYmI4Li45N2VjZWMwIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5jCisrKyBiL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjLmMKQEAgLTE0LDE0ICsxNCw2IEBACiBNT0RVTEVfUEFSTV9ERVNDKHRmcmNfZGVidWcsICJFbmFibGUgZGVidWcgbWVzc2FnZXMiKTsKICNlbmRpZgogCi1leHRlcm4gaW50ICB0ZnJjX3R4X3BhY2tldF9oaXN0b3J5X2luaXQodm9pZCk7Ci1leHRlcm4gdm9pZCB0ZnJjX3R4X3BhY2tldF9oaXN0b3J5X2V4aXQodm9pZCk7Ci1leHRlcm4gaW50ICB0ZnJjX3J4X3BhY2tldF9oaXN0b3J5X2luaXQodm9pZCk7Ci1leHRlcm4gdm9pZCB0ZnJjX3J4X3BhY2tldF9oaXN0b3J5X2V4aXQodm9pZCk7Ci0KLWV4dGVybiBpbnQgIHRmcmNfbGlfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIHRmcmNfbGlfZXhpdCh2b2lkKTsKLQogc3RhdGljIGludCBfX2luaXQgdGZyY19tb2R1bGVfaW5pdCh2b2lkKQogewogCWludCByYyA9IHRmcmNfbGlfaW5pdCgpOwpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmMuaCBiL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjLmgKaW5kZXggMWZiMTE4Ny4uZWQ5ODU3NSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmMuaAorKysgYi9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5oCkBAIC0xNSw3ICsxNSw3IEBACiAgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAjaW5jbHVkZSAiLi4vLi4vZGNjcC5oIgogLyogaW50ZXJuYWwgaW5jbHVkZXMgdGhhdCB0aGlzIG1vZHVsZSBleHBvcnRzOiAqLwogI2luY2x1ZGUgImxvc3NfaW50ZXJ2YWwuaCIKQEAgLTI5LDIxICsyOSwxOSBAQAogI2VuZGlmCiAKIC8qIGludGVnZXItYXJpdGhtZXRpYyBkaXZpc2lvbnMgb2YgdHlwZSAoYSAqIDEwMDAwMDApL2IgKi8KLXN0YXRpYyBpbmxpbmUgdTY0IHNjYWxlZF9kaXYodTY0IGEsIHUzMiBiKQorc3RhdGljIGlubGluZSB1NjQgc2NhbGVkX2Rpdih1NjQgYSwgdTY0IGIpCiB7CiAJQlVHX09OKGI9PTApOwotCWEgKj0gMTAwMDAwMDsKLQlkb19kaXYoYSwgYik7Ci0JcmV0dXJuIGE7CisJcmV0dXJuIGRpdjY0X3U2NChhICogMTAwMDAwMCwgYik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIHNjYWxlZF9kaXYzMih1NjQgYSwgdTMyIGIpCitzdGF0aWMgaW5saW5lIHUzMiBzY2FsZWRfZGl2MzIodTY0IGEsIHU2NCBiKQogewogCXU2NCByZXN1bHQgPSBzY2FsZWRfZGl2KGEsIGIpOwogCiAJaWYgKHJlc3VsdCA+IFVJTlRfTUFYKSB7Ci0JCURDQ1BfQ1JJVCgiT3ZlcmZsb3c6IGEoJWxsdSkvYigldSkgPiB+MFUiLAotCQkJICAodW5zaWduZWQgbG9uZyBsb25nKWEsIGIpOworCQlEQ0NQX0NSSVQoIk92ZXJmbG93OiAlbGx1LyVsbHUgPiBVSU5UX01BWCIsCisJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpYSwgKHVuc2lnbmVkIGxvbmcgbG9uZyliKTsKIAkJcmV0dXJuIFVJTlRfTUFYOwogCX0KIAlyZXR1cm4gcmVzdWx0OwpAQCAtNTgsNyArNTYsMTQgQEAKIAlyZXR1cm4gYXZnID8gKHdlaWdodCAqIGF2ZyArICgxMCAtIHdlaWdodCkgKiBuZXd2YWwpIC8gMTAgOiBuZXd2YWw7CiB9CiAKLWV4dGVybiB1MzIgdGZyY19jYWxjX3godTE2IHMsIHUzMiBSLCB1MzIgcCk7Ci1leHRlcm4gdTMyIHRmcmNfY2FsY194X3JldmVyc2VfbG9va3VwKHUzMiBmdmFsdWUpOworZXh0ZXJuIHUzMiAgdGZyY19jYWxjX3godTE2IHMsIHUzMiBSLCB1MzIgcCk7CitleHRlcm4gdTMyICB0ZnJjX2NhbGNfeF9yZXZlcnNlX2xvb2t1cCh1MzIgZnZhbHVlKTsKIAorZXh0ZXJuIGludCAgdGZyY190eF9wYWNrZXRfaGlzdG9yeV9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgdGZyY190eF9wYWNrZXRfaGlzdG9yeV9leGl0KHZvaWQpOworZXh0ZXJuIGludCAgdGZyY19yeF9wYWNrZXRfaGlzdG9yeV9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgdGZyY19yeF9wYWNrZXRfaGlzdG9yeV9leGl0KHZvaWQpOworCitleHRlcm4gaW50ICB0ZnJjX2xpX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCB0ZnJjX2xpX2V4aXQodm9pZCk7CiAjZW5kaWYgLyogX1RGUkNfSF8gKi8KZGlmZiAtLWdpdCBhL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjX2VxdWF0aW9uLmMgYi9uZXQvZGNjcC9jY2lkcy9saWIvdGZyY19lcXVhdGlvbi5jCmluZGV4IGU0ZTY0YjcuLjJmMjBhMjkgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjX2VxdWF0aW9uLmMKKysrIGIvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmNfZXF1YXRpb24uYwpAQCAtNjYxLDcgKzY2MSw3IEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKHRmcmNfY2FsY194KTsKIAotLyoKKy8qKgogICogIHRmcmNfY2FsY194X3JldmVyc2VfbG9va3VwICAtICB0cnkgdG8gZmluZCBwIGdpdmVuIGYocCkKICAqCiAgKiAgQGZ2YWx1ZTogZnVuY3Rpb24gdmFsdWUgdG8gbWF0Y2gsIHNjYWxlZCBieSAxMDAwMDAwCkBAIC02NzYsMTEgKzY3NiwxMSBAQAogCiAJLyogRXJyb3IgY2FzZXMuICovCiAJaWYgKGZ2YWx1ZSA8IHRmcmNfY2FsY194X2xvb2t1cFswXVsxXSkgewotCQlEQ0NQX1dBUk4oImZ2YWx1ZSAlZCBzbWFsbGVyIHRoYW4gcmVzb2x1dGlvblxuIiwgZnZhbHVlKTsKLQkJcmV0dXJuIHRmcmNfY2FsY194X2xvb2t1cFswXVsxXTsKKwkJRENDUF9XQVJOKCJmdmFsdWUgJXUgc21hbGxlciB0aGFuIHJlc29sdXRpb25cbiIsIGZ2YWx1ZSk7CisJCXJldHVybiBURlJDX1NNQUxMRVNUX1A7CiAJfQogCWlmIChmdmFsdWUgPiB0ZnJjX2NhbGNfeF9sb29rdXBbVEZSQ19DQUxDX1hfQVJSU0laRSAtIDFdWzBdKSB7Ci0JCURDQ1BfV0FSTigiZnZhbHVlICVkIGV4Y2VlZHMgYm91bmRzIVxuIiwgZnZhbHVlKTsKKwkJRENDUF9XQVJOKCJmdmFsdWUgJXUgZXhjZWVkcyBib3VuZHMhXG4iLCBmdmFsdWUpOwogCQlyZXR1cm4gMTAwMDAwMDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjQuYyBiL25ldC9kY2NwL2lwdjQuYwppbmRleCBjMjJhMzc4Li4zN2QyN2JjIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY0LmMKKysrIGIvbmV0L2RjY3AvaXB2NC5jCkBAIC01ODksNyArNTg5LDcgQEAKIAlpZiAoc2tfYWNjZXB0cV9pc19mdWxsKHNrKSAmJiBpbmV0X2Nza19yZXFza19xdWV1ZV95b3VuZyhzaykgPiAxKQogCQlnb3RvIGRyb3A7CiAKLQlyZXEgPSByZXFza19hbGxvYygmZGNjcF9yZXF1ZXN0X3NvY2tfb3BzKTsKKwlyZXEgPSBpbmV0X3JlcXNrX2FsbG9jKCZkY2NwX3JlcXVlc3Rfc29ja19vcHMpOwogCWlmIChyZXEgPT0gTlVMTCkKIAkJZ290byBkcm9wOwogCkBAIC02MDUsNyArNjA1LDYgQEAKIAlpcmVxID0gaW5ldF9yc2socmVxKTsKIAlpcmVxLT5sb2NfYWRkciA9IGlwX2hkcihza2IpLT5kYWRkcjsKIAlpcmVxLT5ybXRfYWRkciA9IGlwX2hkcihza2IpLT5zYWRkcjsKLQlpcmVxLT5vcHQJPSBOVUxMOwogCiAJLyoKIAkgKiBTdGVwIDM6IFByb2Nlc3MgTElTVEVOIHN0YXRlCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXggOWIxMTI5Yi4uZjdmZTJhNSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2Ni5jCisrKyBiL25ldC9kY2NwL2lwdjYuYwpAQCAtNDIxLDcgKzQyMSw2IEBACiAJaXJlcTYgPSBpbmV0Nl9yc2socmVxKTsKIAlpcHY2X2FkZHJfY29weSgmaXJlcTYtPnJtdF9hZGRyLCAmaXB2Nl9oZHIoc2tiKS0+c2FkZHIpOwogCWlwdjZfYWRkcl9jb3B5KCZpcmVxNi0+bG9jX2FkZHIsICZpcHY2X2hkcihza2IpLT5kYWRkcik7Ci0JaXJlcTYtPnBrdG9wdHMJPSBOVUxMOwogCiAJaWYgKGlwdjZfb3B0X2FjY2VwdGVkKHNrLCBza2IpIHx8CiAJICAgIG5wLT5yeG9wdC5iaXRzLnJ4aW5mbyB8fCBucC0+cnhvcHQuYml0cy5yeG9pbmZvIHx8CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9taW5pc29ja3MuYyBiL25ldC9kY2NwL21pbmlzb2Nrcy5jCmluZGV4IDMzYWQ0ODMuLjY2ZGNhNWIgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL21pbmlzb2Nrcy5jCisrKyBiL25ldC9kY2NwL21pbmlzb2Nrcy5jCkBAIC0xNjUsMTIgKzE2NSwxMiBAQAogCQkvKiBTZWUgZGNjcF92NF9jb25uX3JlcXVlc3QgKi8KIAkJbmV3ZG1zay0+ZGNjcG1zX3NlcXVlbmNlX3dpbmRvdyA9IHJlcS0+cmN2X3duZDsKIAotCQluZXdkcC0+ZGNjcHNfZ2FyID0gbmV3ZHAtPmRjY3BzX2lzciA9IGRyZXEtPmRyZXFfaXNyOwotCQlkY2NwX3VwZGF0ZV9nc3IobmV3c2ssIGRyZXEtPmRyZXFfaXNyKTsKLQotCQluZXdkcC0+ZGNjcHNfaXNzID0gZHJlcS0+ZHJlcV9pc3M7CisJCW5ld2RwLT5kY2Nwc19nYXIgPSBuZXdkcC0+ZGNjcHNfaXNzID0gZHJlcS0+ZHJlcV9pc3M7CiAJCWRjY3BfdXBkYXRlX2dzcyhuZXdzaywgZHJlcS0+ZHJlcV9pc3MpOwogCisJCW5ld2RwLT5kY2Nwc19pc3IgPSBkcmVxLT5kcmVxX2lzcjsKKwkJZGNjcF91cGRhdGVfZ3NyKG5ld3NrLCBkcmVxLT5kcmVxX2lzcik7CisKIAkJLyoKIAkJICogU1dMIGFuZCBBV0wgYXJlIGluaXRpYWxseSBhZGp1c3RlZCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBsZXNzIHRoYW4KIAkJICogdGhlIGluaXRpYWwgU2VxdWVuY2UgTnVtYmVycyByZWNlaXZlZCBhbmQgc2VudCwgcmVzcGVjdGl2ZWx5OgpkaWZmIC0tZ2l0IGEvbmV0L2RjY3Avb3B0aW9ucy5jIGIvbmV0L2RjY3Avb3B0aW9ucy5jCmluZGV4IGQyYTg0YTIuLjQzYmMyNGUgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL29wdGlvbnMuYworKysgYi9uZXQvZGNjcC9vcHRpb25zLmMKQEAgLTEwNyw5ICsxMDcsMTEgQEAKIAkJICoKIAkJICogQ0NJRC1zcGVjaWZpYyBvcHRpb25zIGFyZSBpZ25vcmVkIGR1cmluZyBjb25uZWN0aW9uIHNldHVwLCBhcwogCQkgKiBuZWdvdGlhdGlvbiBtYXkgc3RpbGwgYmUgaW4gcHJvZ3Jlc3MgKHNlZSBSRkMgNDM0MCwgMTAuMykuCisJCSAqIFRoZSBzYW1lIGFwcGxpZXMgdG8gQWNrIFZlY3RvcnMsIGFzIHRoZXNlIGRlcGVuZCBvbiB0aGUgQ0NJRC4KIAkJICoKIAkJICovCi0JCWlmIChkcmVxICE9IE5VTEwgJiYgb3B0ID49IDEyOCkKKwkJaWYgKGRyZXEgIT0gTlVMTCAmJiAob3B0ID49IDEyOCB8fAorCQkgICAgb3B0ID09IERDQ1BPX0FDS19WRUNUT1JfMCB8fCBvcHQgPT0gRENDUE9fQUNLX1ZFQ1RPUl8xKSkKIAkJCWdvdG8gaWdub3JlX29wdGlvbjsKIAogCQlzd2l0Y2ggKG9wdCkgewpkaWZmIC0tZ2l0IGEvbmV0L2RjY3Avb3V0cHV0LmMgYi9uZXQvZGNjcC9vdXRwdXQuYwppbmRleCAxZjhhOWI2Li5mZTIwMDY4IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9vdXRwdXQuYworKysgYi9uZXQvZGNjcC9vdXRwdXQuYwpAQCAtNTA4LDYgKzUwOCw3IEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGRjY3Bfc2VuZF9hY2spOwogCisjaWYgMAogLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5ICgxMS4zKSAtIGN1cnJlbnRseSBub3doZXJlIHVzZWQgYnkgRENDUC4gKi8KIHZvaWQgZGNjcF9zZW5kX2RlbGF5ZWRfYWNrKHN0cnVjdCBzb2NrICpzaykKIHsKQEAgLTUzOCw2ICs1MzksNyBAQAogCWljc2stPmljc2tfYWNrLnRpbWVvdXQgPSB0aW1lb3V0OwogCXNrX3Jlc2V0X3RpbWVyKHNrLCAmaWNzay0+aWNza19kZWxhY2tfdGltZXIsIHRpbWVvdXQpOwogfQorI2VuZGlmCiAKIHZvaWQgZGNjcF9zZW5kX3N5bmMoc3RydWN0IHNvY2sgKnNrLCBjb25zdCB1NjQgYWNrbm8sCiAJCSAgICBjb25zdCBlbnVtIGRjY3BfcGt0X3R5cGUgcGt0X3R5cGUpCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9wcm9iZS5jIGIvbmV0L2RjY3AvcHJvYmUuYwppbmRleCAwYmNkYzkyLi44MTM2OGE3IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9wcm9iZS5jCisrKyBiL25ldC9kY2NwL3Byb2JlLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgcHJvY25hbWVbXSA9ICJkY2NwcHJvYmUiOwogCi1zdHJ1Y3Qgeworc3RhdGljIHN0cnVjdCB7CiAJc3RydWN0IGtmaWZvCSAgKmZpZm87CiAJc3BpbmxvY2tfdAkgIGxvY2s7CiAJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYyBiL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwppbmRleCAzYjgzYzM0Li4wZDRkNzI4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKKysrIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCkBAIC05NjAsNyArOTYwLDEwIEBACiAJcnRtLT5ydG1fZHN0X2xlbiA9IGRzdF9sZW47CiAJcnRtLT5ydG1fc3JjX2xlbiA9IDA7CiAJcnRtLT5ydG1fdG9zID0gdG9zOwotCXJ0bS0+cnRtX3RhYmxlID0gdGJfaWQ7CisJaWYgKHRiX2lkIDwgMjU2KQorCQlydG0tPnJ0bV90YWJsZSA9IHRiX2lkOworCWVsc2UKKwkJcnRtLT5ydG1fdGFibGUgPSBSVF9UQUJMRV9DT01QQVQ7CiAJTkxBX1BVVF9VMzIoc2tiLCBSVEFfVEFCTEUsIHRiX2lkKTsKIAlydG0tPnJ0bV90eXBlID0gdHlwZTsKIAlydG0tPnJ0bV9mbGFncyA9IGZpLT5maWJfZmxhZ3M7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfdHJpZS5jIGIvbmV0L2lwdjQvZmliX3RyaWUuYwppbmRleCA0YjAyZDE0Li5lMTYwMGFkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfdHJpZS5jCisrKyBiL25ldC9pcHY0L2ZpYl90cmllLmMKQEAgLTEzNTksMTcgKzEzNTksMTcgQEAKIAkJCXQtPnN0YXRzLnNlbWFudGljX21hdGNoX21pc3MrKzsKICNlbmRpZgogCQlpZiAoZXJyIDw9IDApCi0JCQlyZXR1cm4gcGxlbjsKKwkJCXJldHVybiBlcnI7CiAJfQogCi0JcmV0dXJuIC0xOworCXJldHVybiAxOwogfQogCiBzdGF0aWMgaW50IGZuX3RyaWVfbG9va3VwKHN0cnVjdCBmaWJfdGFibGUgKnRiLCBjb25zdCBzdHJ1Y3QgZmxvd2kgKmZscCwKIAkJCSAgc3RydWN0IGZpYl9yZXN1bHQgKnJlcykKIHsKIAlzdHJ1Y3QgdHJpZSAqdCA9IChzdHJ1Y3QgdHJpZSAqKSB0Yi0+dGJfZGF0YTsKLQlpbnQgcGxlbiwgcmV0ID0gMDsKKwlpbnQgcmV0OwogCXN0cnVjdCBub2RlICpuOwogCXN0cnVjdCB0bm9kZSAqcG47CiAJaW50IHBvcywgYml0czsKQEAgLTEzOTMsMTAgKzEzOTMsNyBAQAogCiAJLyogSnVzdCBhIGxlYWY/ICovCiAJaWYgKElTX0xFQUYobikpIHsKLQkJcGxlbiA9IGNoZWNrX2xlYWYodCwgKHN0cnVjdCBsZWFmICopbiwga2V5LCBmbHAsIHJlcyk7Ci0JCWlmIChwbGVuIDwgMCkKLQkJCWdvdG8gZmFpbGVkOwotCQlyZXQgPSAwOworCQlyZXQgPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOwogCQlnb3RvIGZvdW5kOwogCX0KIApAQCAtMTQyMSwxMSArMTQxOCw5IEBACiAJCX0KIAogCQlpZiAoSVNfTEVBRihuKSkgewotCQkJcGxlbiA9IGNoZWNrX2xlYWYodCwgKHN0cnVjdCBsZWFmICopbiwga2V5LCBmbHAsIHJlcyk7Ci0JCQlpZiAocGxlbiA8IDApCisJCQlyZXQgPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOworCQkJaWYgKHJldCA+IDApCiAJCQkJZ290byBiYWNrdHJhY2U7Ci0KLQkJCXJldCA9IDA7CiAJCQlnb3RvIGZvdW5kOwogCQl9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDgyOGVhMjEuLmVjODM0NDggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtNDE5LDcgKzQxOSw4IEBACiAJc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2socGFyZW50KTsKIAlzdHJ1Y3QgcmVxdWVzdF9zb2NrX3F1ZXVlICpxdWV1ZSA9ICZpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZTsKIAlzdHJ1Y3QgbGlzdGVuX3NvY2sgKmxvcHQgPSBxdWV1ZS0+bGlzdGVuX29wdDsKLQlpbnQgdGhyZXNoID0gaWNzay0+aWNza19zeW5fcmV0cmllcyA/IDogc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllczsKKwlpbnQgbWF4X3JldHJpZXMgPSBpY3NrLT5pY3NrX3N5bl9yZXRyaWVzID8gOiBzeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzOworCWludCB0aHJlc2ggPSBtYXhfcmV0cmllczsKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7CiAJc3RydWN0IHJlcXVlc3Rfc29jayAqKnJlcXAsICpyZXE7CiAJaW50IGksIGJ1ZGdldDsKQEAgLTQ1NSw2ICs0NTYsOSBAQAogCQl9CiAJfQogCisJaWYgKHF1ZXVlLT5yc2txX2RlZmVyX2FjY2VwdCkKKwkJbWF4X3JldHJpZXMgPSBxdWV1ZS0+cnNrcV9kZWZlcl9hY2NlcHQ7CisKIAlidWRnZXQgPSAyICogKGxvcHQtPm5yX3RhYmxlX2VudHJpZXMgLyAodGltZW91dCAvIGludGVydmFsKSk7CiAJaSA9IGxvcHQtPmNsb2NrX2hhbmQ7CiAKQEAgLTQ2Miw4ICs0NjYsOSBAQAogCQlyZXFwPSZsb3B0LT5zeW5fdGFibGVbaV07CiAJCXdoaWxlICgocmVxID0gKnJlcXApICE9IE5VTEwpIHsKIAkJCWlmICh0aW1lX2FmdGVyX2VxKG5vdywgcmVxLT5leHBpcmVzKSkgewotCQkJCWlmIChyZXEtPnJldHJhbnMgPCB0aHJlc2ggJiYKLQkJCQkgICAgIXJlcS0+cnNrX29wcy0+cnR4X3N5bl9hY2socGFyZW50LCByZXEpKSB7CisJCQkJaWYgKChyZXEtPnJldHJhbnMgPCB0aHJlc2ggfHwKKwkJCQkgICAgIChpbmV0X3JzayhyZXEpLT5hY2tlZCAmJiByZXEtPnJldHJhbnMgPCBtYXhfcmV0cmllcykpCisJCQkJICAgICYmICFyZXEtPnJza19vcHMtPnJ0eF9zeW5fYWNrKHBhcmVudCwgcmVxKSkgewogCQkJCQl1bnNpZ25lZCBsb25nIHRpbWVvOwogCiAJCQkJCWlmIChyZXEtPnJldHJhbnMrKyA9PSAwKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCmluZGV4IDRlZDQyOWIuLjA1NDZhMGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKQEAgLTE5MiwxNCArMTkyLDIxIEBACiAKIHN0YXRpYyBzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICppbmV0X2ZyYWdfaW50ZXJuKHN0cnVjdCBuZXRuc19mcmFncyAqbmYsCiAJCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnFwX2luLCBzdHJ1Y3QgaW5ldF9mcmFncyAqZiwKLQkJdW5zaWduZWQgaW50IGhhc2gsIHZvaWQgKmFyZykKKwkJdm9pZCAqYXJnKQogewogCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnFwOwogI2lmZGVmIENPTkZJR19TTVAKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsKICNlbmRpZgorCXVuc2lnbmVkIGludCBoYXNoOwogCiAJd3JpdGVfbG9jaygmZi0+bG9jayk7CisJLyoKKwkgKiBXaGlsZSB3ZSBzdGF5ZWQgdy9vIHRoZSBsb2NrIG90aGVyIENQVSBjb3VsZCB1cGRhdGUKKwkgKiB0aGUgcm5kIHNlZWQsIHNvIHdlIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZSBoYXNoCisJICogY2hhaW4uIEZvcnR1bmF0ZWxseSB0aGUgcXBfaW4gY2FuIGJlIHVzZWQgdG8gZ2V0IG9uZS4KKwkgKi8KKwloYXNoID0gZi0+aGFzaGZuKHFwX2luKTsKICNpZmRlZiBDT05GSUdfU01QCiAJLyogV2l0aCBTTVAgcmFjZSB3ZSBoYXZlIHRvIHJlY2hlY2sgaGFzaCB0YWJsZSwgYmVjYXVzZQogCSAqIHN1Y2ggZW50cnkgY291bGQgYmUgY3JlYXRlZCBvbiBvdGhlciBjcHUsIHdoaWxlIHdlCkBAIC0yNDcsNyArMjU0LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKmluZXRfZnJhZ19jcmVhdGUoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKLQkJc3RydWN0IGluZXRfZnJhZ3MgKmYsIHZvaWQgKmFyZywgdW5zaWduZWQgaW50IGhhc2gpCisJCXN0cnVjdCBpbmV0X2ZyYWdzICpmLCB2b2lkICphcmcpCiB7CiAJc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcTsKIApAQCAtMjU1LDcgKzI2Miw3IEBACiAJaWYgKHEgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZXR1cm4gaW5ldF9mcmFnX2ludGVybihuZiwgcSwgZiwgaGFzaCwgYXJnKTsKKwlyZXR1cm4gaW5ldF9mcmFnX2ludGVybihuZiwgcSwgZiwgYXJnKTsKIH0KIAogc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2ZpbmQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKQEAgLTI2NCw3ICsyNzEsNiBAQAogCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnE7CiAJc3RydWN0IGhsaXN0X25vZGUgKm47CiAKLQlyZWFkX2xvY2soJmYtPmxvY2spOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHEsIG4sICZmLT5oYXNoW2hhc2hdLCBsaXN0KSB7CiAJCWlmIChxLT5uZXQgPT0gbmYgJiYgZi0+bWF0Y2gocSwga2V5KSkgewogCQkJYXRvbWljX2luYygmcS0+cmVmY250KTsKQEAgLTI3NCw2ICsyODAsNiBAQAogCX0KIAlyZWFkX3VubG9jaygmZi0+bG9jayk7CiAKLQlyZXR1cm4gaW5ldF9mcmFnX2NyZWF0ZShuZiwgZiwga2V5LCBoYXNoKTsKKwlyZXR1cm4gaW5ldF9mcmFnX2NyZWF0ZShuZiwgZiwga2V5KTsKIH0KIEVYUE9SVF9TWU1CT0woaW5ldF9mcmFnX2ZpbmQpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9scm8uYyBiL25ldC9pcHY0L2luZXRfbHJvLmMKaW5kZXggNGE0ZDQ5Zi4uY2ZkMDM0YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9scm8uYworKysgYi9uZXQvaXB2NC9pbmV0X2xyby5jCkBAIC0zODMsOCArMzgzLDcgQEAKIG91dDI6IC8qIHNlbmQgYWdncmVnYXRlZCBTS0JzIHRvIHN0YWNrICovCiAJbHJvX2ZsdXNoKGxyb19tZ3IsIGxyb19kZXNjKTsKIAotb3V0OiAgLyogT3JpZ2luYWwgU0tCIGhhcyB0byBiZSBwb3N0ZWQgdG8gc3RhY2sgKi8KLQlza2ItPmlwX3N1bW1lZCA9IGxyb19tZ3ItPmlwX3N1bW1lZDsKK291dDoKIAlyZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKaW5kZXggY2Q2Y2U2YS4uMzcyMjFmNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCkBAIC0yMjksNiArMjI5LDggQEAKIAogCWFyZy5pcGggPSBpcGg7CiAJYXJnLnVzZXIgPSB1c2VyOworCisJcmVhZF9sb2NrKCZpcDRfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwcWhhc2hmbihpcGgtPmlkLCBpcGgtPnNhZGRyLCBpcGgtPmRhZGRyLCBpcGgtPnByb3RvY29sKTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmV0LT5pcHY0LmZyYWdzLCAmaXA0X2ZyYWdzLCAmYXJnLCBoYXNoKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfY29yZS5jIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKaW5kZXggMDQ1Nzg1OS4uZDJhODg3ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKQEAgLTU1Niw3ICs1NTYsNiBAQAogCiAJc3Bpbl9sb2NrX2JoKCZuZl9uYXRfbG9jayk7CiAJaGxpc3RfZGVsX3JjdSgmbmF0LT5ieXNvdXJjZSk7Ci0JbmF0LT5jdCA9IE5VTEw7CiAJc3Bpbl91bmxvY2tfYmgoJm5mX25hdF9sb2NrKTsKIH0KIApAQCAtNTcwLDggKzU2OSw4IEBACiAJCXJldHVybjsKIAogCXNwaW5fbG9ja19iaCgmbmZfbmF0X2xvY2spOwotCWhsaXN0X3JlcGxhY2VfcmN1KCZvbGRfbmF0LT5ieXNvdXJjZSwgJm5ld19uYXQtPmJ5c291cmNlKTsKIAluZXdfbmF0LT5jdCA9IGN0OworCWhsaXN0X3JlcGxhY2VfcmN1KCZvbGRfbmF0LT5ieXNvdXJjZSwgJm5ld19uYXQtPmJ5c291cmNlKTsKIAlzcGluX3VubG9ja19iaCgmbmZfbmF0X2xvY2spOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3NubXBfYmFzaWMuYyBiL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCmluZGV4IDc3NTBjOTcuLmZmZWFmZmMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCkBAIC00MzksOCArNDM5LDggQEAKIAkJCQkgICAgIHVuc2lnbmVkIGludCAqbGVuKQogewogCXVuc2lnbmVkIGxvbmcgc3ViaWQ7Ci0JdW5zaWduZWQgaW50ICBzaXplOwogCXVuc2lnbmVkIGxvbmcgKm9wdHI7CisJc2l6ZV90IHNpemU7CiAKIAlzaXplID0gZW9jIC0gY3R4LT5wb2ludGVyICsgMTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcmF3LmMgYi9uZXQvaXB2NC9yYXcuYwppbmRleCBlN2UwOTFkLi4zN2ExZWNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yYXcuYworKysgYi9uZXQvaXB2NC9yYXcuYwpAQCAtOTM0LDcgKzkzNCw3IEBACiAJICAgICAgc3JjcCAgPSBpbmV0LT5udW07CiAKIAlzZXFfcHJpbnRmKHNlcSwgIiU0ZDogJTA4WDolMDRYICUwOFg6JTA0WCIKLQkJIiAlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTVkICU4ZCAlbHUgJWQgJXAgJWQiLAorCQkiICUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlZFxuIiwKIAkJaSwgc3JjLCBzcmNwLCBkZXN0LCBkZXN0cCwgc3AtPnNrX3N0YXRlLAogCQlhdG9taWNfcmVhZCgmc3AtPnNrX3dtZW1fYWxsb2MpLAogCQlhdG9taWNfcmVhZCgmc3AtPnNrX3JtZW1fYWxsb2MpLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvc3luY29va2llcy5jIGIvbmV0L2lwdjQvc3luY29va2llcy5jCmluZGV4IDczYmE5ODkuLmQxODJhMmEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3N5bmNvb2tpZXMuYworKysgYi9uZXQvaXB2NC9zeW5jb29raWVzLmMKQEAgLTI4NSw3ICsyODUsNyBAQAogCQljb29raWVfY2hlY2tfdGltZXN0YW1wKCZ0Y3Bfb3B0KTsKIAogCXJldCA9IE5VTEw7Ci0JcmVxID0gcmVxc2tfYWxsb2MoJnRjcF9yZXF1ZXN0X3NvY2tfb3BzKTsgLyogZm9yIHNhZmV0eSAqLworCXJlcSA9IGluZXRfcmVxc2tfYWxsb2MoJnRjcF9yZXF1ZXN0X3NvY2tfb3BzKTsgLyogZm9yIHNhZmV0eSAqLwogCWlmICghcmVxKQogCQlnb3RvIG91dDsKIApAQCAtMzAxLDcgKzMwMSw2IEBACiAJaXJlcS0+cm10X3BvcnQJCT0gdGgtPnNvdXJjZTsKIAlpcmVxLT5sb2NfYWRkcgkJPSBpcF9oZHIoc2tiKS0+ZGFkZHI7CiAJaXJlcS0+cm10X2FkZHIJCT0gaXBfaGRyKHNrYiktPnNhZGRyOwotCWlyZXEtPm9wdAkJPSBOVUxMOwogCWlyZXEtPnNuZF93c2NhbGUJPSB0Y3Bfb3B0LnNuZF93c2NhbGU7CiAJaXJlcS0+cmN2X3dzY2FsZQk9IHRjcF9vcHQucmN2X3dzY2FsZTsKIAlpcmVxLT5zYWNrX29rCQk9IHRjcF9vcHQuc2Fja19vazsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggYWI2NjY4My4uMWQ3MjNkZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTI1NSwxMSArMjU1LDE0IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9zcGxpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9uZXQuaD4KICNpbmNsdWRlIDxsaW51eC9zb2NrZXQuaD4KICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC9jYWNoZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgpAQCAtMTIwNiw3ICsxMjA5LDggQEAKIAkJcmV0dXJuIC1FTk9UQ09OTjsKIAl3aGlsZSAoKHNrYiA9IHRjcF9yZWN2X3NrYihzaywgc2VxLCAmb2Zmc2V0KSkgIT0gTlVMTCkgewogCQlpZiAob2Zmc2V0IDwgc2tiLT5sZW4pIHsKLQkJCXNpemVfdCB1c2VkLCBsZW47CisJCQlpbnQgdXNlZDsKKwkJCXNpemVfdCBsZW47CiAKIAkJCWxlbiA9IHNrYi0+bGVuIC0gb2Zmc2V0OwogCQkJLyogU3RvcCByZWFkaW5nIGlmIHdlIGhpdCBhIHBhdGNoIG9mIHVyZ2VudCBkYXRhICovCkBAIC0yMTEyLDEyICsyMTE2LDE1IEBACiAJCWJyZWFrOwogCiAJY2FzZSBUQ1BfREVGRVJfQUNDRVBUOgotCQlpZiAodmFsIDwgMCkgewotCQkJZXJyID0gLUVJTlZBTDsKLQkJfSBlbHNlIHsKLQkJCWlmICh2YWwgPiBNQVhfVENQX0FDQ0VQVF9ERUZFUlJFRCkKLQkJCQl2YWwgPSBNQVhfVENQX0FDQ0VQVF9ERUZFUlJFRDsKLQkJCWljc2stPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ID0gdmFsOworCQlpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCA9IDA7CisJCWlmICh2YWwgPiAwKSB7CisJCQkvKiBUcmFuc2xhdGUgdmFsdWUgaW4gc2Vjb25kcyB0byBudW1iZXIgb2YKKwkJCSAqIHJldHJhbnNtaXRzICovCisJCQl3aGlsZSAoaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQgPCAzMiAmJgorCQkJICAgICAgIHZhbCA+ICgoVENQX1RJTUVPVVRfSU5JVCAvIEhaKSA8PAorCQkJCSAgICAgICBpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCkpCisJCQkJaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQrKzsKKwkJCWljc2stPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0Kys7CiAJCX0KIAkJYnJlYWs7CiAKQEAgLTIyOTksNyArMjMwNiw4IEBACiAJCQl2YWwgPSAodmFsID8gOiBzeXNjdGxfdGNwX2Zpbl90aW1lb3V0KSAvIEhaOwogCQlicmVhazsKIAljYXNlIFRDUF9ERUZFUl9BQ0NFUFQ6Ci0JCXZhbCA9IGljc2stPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0OworCQl2YWwgPSAhaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQgPyAwIDoKKwkJCSgoVENQX1RJTUVPVVRfSU5JVCAvIEhaKSA8PCAoaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQgLSAxKSk7CiAJCWJyZWFrOwogCWNhc2UgVENQX1dJTkRPV19DTEFNUDoKIAkJdmFsID0gdHAtPndpbmRvd19jbGFtcDsKQEAgLTI2MTYsNyArMjYyNCw3IEBACiB2b2lkIF9faW5pdCB0Y3BfaW5pdCh2b2lkKQogewogCXN0cnVjdCBza19idWZmICpza2IgPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcgbGltaXQ7CisJdW5zaWduZWQgbG9uZyBucl9wYWdlcywgbGltaXQ7CiAJaW50IG9yZGVyLCBpLCBtYXhfc2hhcmU7CiAKIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCB0Y3Bfc2tiX2NiKSA+IHNpemVvZihza2ItPmNiKSk7CkBAIC0yNjg1LDggKzI2OTMsOSBAQAogCSAqIGlzIHVwIHRvIDEvMiBhdCAyNTYgTUIsIGRlY3JlYXNpbmcgdG93YXJkIHplcm8gd2l0aCB0aGUgYW1vdW50IG9mCiAJICogbWVtb3J5LCB3aXRoIGEgZmxvb3Igb2YgMTI4IHBhZ2VzLgogCSAqLwotCWxpbWl0ID0gbWluKG5yX2FsbF9wYWdlcywgMVVMPDwoMjgtUEFHRV9TSElGVCkpID4+ICgyMC1QQUdFX1NISUZUKTsKLQlsaW1pdCA9IChsaW1pdCAqIChucl9hbGxfcGFnZXMgPj4gKDIwLVBBR0VfU0hJRlQpKSkgPj4gKFBBR0VfU0hJRlQtMTEpOworCW5yX3BhZ2VzID0gdG90YWxyYW1fcGFnZXMgLSB0b3RhbGhpZ2hfcGFnZXM7CisJbGltaXQgPSBtaW4obnJfcGFnZXMsIDFVTDw8KDI4LVBBR0VfU0hJRlQpKSA+PiAoMjAtUEFHRV9TSElGVCk7CisJbGltaXQgPSAobGltaXQgKiAobnJfcGFnZXMgPj4gKDIwLVBBR0VfU0hJRlQpKSkgPj4gKFBBR0VfU0hJRlQtMTEpOwogCWxpbWl0ID0gbWF4KGxpbWl0LCAxMjhVTCk7CiAJc3lzY3RsX3RjcF9tZW1bMF0gPSBsaW1pdCAvIDQgKiAzOwogCXN5c2N0bF90Y3BfbWVtWzFdID0gbGltaXQ7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IGViYTg3M2U5Li5jYWQ3M2I3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtNDU0MSw0OSArNDU0MSw2IEBACiAJfQogfQogCi1zdGF0aWMgaW50IHRjcF9kZWZlcl9hY2NlcHRfY2hlY2soc3RydWN0IHNvY2sgKnNrKQotewotCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwotCi0JaWYgKHRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QpIHsKLQkJaW50IHF1ZXVlZF9kYXRhID0gIHRwLT5yY3Zfbnh0IC0gdHAtPmNvcGllZF9zZXE7Ci0JCWludCBoYXNmaW4gPSAgIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpID8KLQkJCXRjcF9oZHIoKHN0cnVjdCBza19idWZmICopCi0JCQkJc2stPnNrX3JlY2VpdmVfcXVldWUucHJldiktPmZpbiA6IDA7Ci0KLQkJaWYgKHF1ZXVlZF9kYXRhICYmIGhhc2ZpbikKLQkJCXF1ZXVlZF9kYXRhLS07Ci0KLQkJaWYgKHF1ZXVlZF9kYXRhICYmCi0JCSAgICB0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pIHsKLQkJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfS0VFUE9QRU4pKSB7Ci0JCQkJaW5ldF9jc2tfcmVzZXRfa2VlcGFsaXZlX3RpbWVyKHNrLAotCQkJCQkJCSAgICAgICBrZWVwYWxpdmVfdGltZV93aGVuKHRwKSk7Ci0JCQl9IGVsc2UgewotCQkJCWluZXRfY3NrX2RlbGV0ZV9rZWVwYWxpdmVfdGltZXIoc2spOwotCQkJfQotCi0JCQlpbmV0X2Nza19yZXFza19xdWV1ZV9hZGQoCi0JCQkJdHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrLAotCQkJCXRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QsCi0JCQkJc2spOwotCi0JCQl0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2stPnNrX2RhdGFfcmVhZHkoCi0JCQkJdHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrLCAwKTsKLQotCQkJc29ja19wdXQodHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrKTsKLQkJCXNvY2tfcHV0KHNrKTsKLQkJCXRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zayA9IE5VTEw7Ci0JCQl0cC0+ZGVmZXJfdGNwX2FjY2VwdC5yZXF1ZXN0ID0gTlVMTDsKLQkJfSBlbHNlIGlmIChoYXNmaW4gfHwKLQkJCSAgIHRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zay0+c2tfc3RhdGUgIT0gVENQX0xJU1RFTikgewotCQkJdGNwX3Jlc2V0KHNrKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCB0Y3BfY29weV90b19pb3ZlYyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBobGVuKQogewogCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwpAQCAtNDk0NCw4ICs0OTAxLDYgQEAKIAogCXRjcF9kYXRhX3NuZF9jaGVjayhzayk7CiAJdGNwX2Fja19zbmRfY2hlY2soc2spOwotCi0JdGNwX2RlZmVyX2FjY2VwdF9jaGVjayhzayk7CiAJcmV0dXJuIDA7CiAKIGNzdW1fZXJyb3I6CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBjZDYwMWE4Li5mZmU4NjlhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTg1LDEwICs4NSw2IEBACiBpbnQgc3lzY3RsX3RjcF90d19yZXVzZSBfX3JlYWRfbW9zdGx5OwogaW50IHN5c2N0bF90Y3BfbG93X2xhdGVuY3kgX19yZWFkX21vc3RseTsKIAotLyogQ2hlY2sgVENQIHNlcXVlbmNlIG51bWJlcnMgaW4gSUNNUCBwYWNrZXRzLiAqLwotI2RlZmluZSBJQ01QX01JTl9MRU5HVEggOAotCi12b2lkIHRjcF92NF9zZW5kX2NoZWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKICNpZmRlZiBDT05GSUdfVENQX01ENVNJRwogc3RhdGljIHN0cnVjdCB0Y3BfbWQ1c2lnX2tleSAqdGNwX3Y0X21kNV9kb19sb29rdXAoc3RydWN0IHNvY2sgKnNrLApAQCAtMTI4NSw3ICsxMjgxLDcgQEAKIAlpZiAoc2tfYWNjZXB0cV9pc19mdWxsKHNrKSAmJiBpbmV0X2Nza19yZXFza19xdWV1ZV95b3VuZyhzaykgPiAxKQogCQlnb3RvIGRyb3A7CiAKLQlyZXEgPSByZXFza19hbGxvYygmdGNwX3JlcXVlc3Rfc29ja19vcHMpOworCXJlcSA9IGluZXRfcmVxc2tfYWxsb2MoJnRjcF9yZXF1ZXN0X3NvY2tfb3BzKTsKIAlpZiAoIXJlcSkKIAkJZ290byBkcm9wOwogCkBAIC0xOTE4LDE0ICsxOTE0LDYgQEAKIAkJc2stPnNrX3NuZG1zZ19wYWdlID0gTlVMTDsKIAl9CiAKLQlpZiAodHAtPmRlZmVyX3RjcF9hY2NlcHQucmVxdWVzdCkgewotCQlyZXFza19mcmVlKHRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QpOwotCQlzb2NrX3B1dCh0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2spOwotCQlzb2NrX3B1dChzayk7Ci0JCXRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zayA9IE5VTEw7Ci0JCXRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QgPSBOVUxMOwotCX0KLQogCWF0b21pY19kZWMoJnRjcF9zb2NrZXRzX2FsbG9jYXRlZCk7CiAKIAlyZXR1cm4gMDsKQEAgLTIzMDMsNyArMjI5MSw3IEBACiAJfQogCiAJc2VxX3ByaW50ZihmLCAiJTRkOiAlMDhYOiUwNFggJTA4WDolMDRYICUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggIgotCQkJIiUwOFggJTVkICU4ZCAlbHUgJWQgJXAgJXUgJXUgJXUgJXUgJWQlbiIsCisJCQkiJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlbHUgJWx1ICV1ICV1ICVkJW4iLAogCQlpLCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwLCBzay0+c2tfc3RhdGUsCiAJCXRwLT53cml0ZV9zZXEgLSB0cC0+c25kX3VuYSwKIAkJc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4gPyBzay0+c2tfYWNrX2JhY2tsb2cgOgpAQCAtMjMxNSw4ICsyMzAzLDggQEAKIAkJaWNzay0+aWNza19wcm9iZXNfb3V0LAogCQlzb2NrX2lfaW5vKHNrKSwKIAkJYXRvbWljX3JlYWQoJnNrLT5za19yZWZjbnQpLCBzaywKLQkJaWNzay0+aWNza19ydG8sCi0JCWljc2stPmljc2tfYWNrLmF0bywKKwkJamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfcnRvKSwKKwkJamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfYWNrLmF0byksCiAJCShpY3NrLT5pY3NrX2Fjay5xdWljayA8PCAxKSB8IGljc2stPmljc2tfYWNrLnBpbmdwb25nLAogCQl0cC0+c25kX2N3bmQsCiAJCXRwLT5zbmRfc3N0aHJlc2ggPj0gMHhGRkZGID8gLTEgOiB0cC0+c25kX3NzdGhyZXNoLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jIGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCmluZGV4IDAxOWM4YzEuLjgyNDUyNDcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYworKysgYi9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKQEAgLTU3MSw4ICs1NzEsMTAgQEAKIAkgICBkb2VzIHNlcXVlbmNlIHRlc3QsIFNZTiBpcyB0cnVuY2F0ZWQsIGFuZCB0aHVzIHdlIGNvbnNpZGVyCiAJICAgaXQgYSBiYXJlIEFDSy4KIAotCSAgIEJvdGggZW5kcyAobGlzdGVuaW5nIHNvY2tldHMpIGFjY2VwdCB0aGUgbmV3IGluY29taW5nCi0JICAgY29ubmVjdGlvbiBhbmQgdHJ5IHRvIHRhbGsgdG8gZWFjaCBvdGhlci4gOC0pCisJICAgSWYgaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQsIHdlIHNpbGVudGx5IGRyb3AgdGhpcworCSAgIGJhcmUgQUNLLiAgT3RoZXJ3aXNlLCB3ZSBjcmVhdGUgYW4gZXN0YWJsaXNoZWQgY29ubmVjdGlvbi4gIEJvdGgKKwkgICBlbmRzIChsaXN0ZW5pbmcgc29ja2V0cykgYWNjZXB0IHRoZSBuZXcgaW5jb21pbmcgY29ubmVjdGlvbiBhbmQgdHJ5CisJICAgdG8gdGFsayB0byBlYWNoIG90aGVyLiA4LSkKIAogCSAgIE5vdGU6IFRoaXMgY2FzZSBpcyBib3RoIGhhcm1sZXNzLCBhbmQgcmFyZS4gIFBvc3NpYmlsaXR5IGlzIGFib3V0IHRoZQogCSAgIHNhbWUgYXMgdXMgZGlzY292ZXJpbmcgaW50ZWxsaWdlbnQgbGlmZSBvbiBhbm90aGVyIHBsYW50IHRvbW9ycm93LgpAQCAtNjQwLDYgKzY0MiwxMyBAQAogCQlpZiAoIShmbGcgJiBUQ1BfRkxBR19BQ0spKQogCQkJcmV0dXJuIE5VTEw7CiAKKwkJLyogSWYgVENQX0RFRkVSX0FDQ0VQVCBpcyBzZXQsIGRyb3AgYmFyZSBBQ0suICovCisJCWlmIChpbmV0X2NzayhzayktPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ICYmCisJCSAgICBUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEgPT0gdGNwX3JzayhyZXEpLT5yY3ZfaXNuICsgMSkgeworCQkJaW5ldF9yc2socmVxKS0+YWNrZWQgPSAxOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwogCQkvKiBPSywgQUNLIGlzIHZhbGlkLCBjcmVhdGUgYmlnIHNvY2tldCBhbmQKIAkJICogZmVlZCB0aGlzIHNlZ21lbnQgdG8gaXQuIEl0IHdpbGwgcmVwZWF0IGFsbAogCQkgKiB0aGUgdGVzdHMuIFRISVMgU0VHTUVOVCBNVVNUIE1PVkUgU09DS0VUIFRPCkBAIC02NzgsMjQgKzY4Nyw3IEBACiAJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX3VubGluayhzaywgcmVxLCBwcmV2KTsKIAkJaW5ldF9jc2tfcmVxc2tfcXVldWVfcmVtb3ZlZChzaywgcmVxKTsKIAotCQlpZiAoaW5ldF9jc2soc2spLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCAmJgotCQkgICAgVENQX1NLQl9DQihza2IpLT5lbmRfc2VxID09IHRjcF9yc2socmVxKS0+cmN2X2lzbiArIDEpIHsKLQotCQkJLyogdGhlIGFjY2VwdCBxdWV1ZSBoYW5kbGluZyBpcyBkb25lIGlzIGVzdCByZWN2IHNsb3cKLQkJCSAqIHBhdGggc28gbGV0cyBtYWtlIHN1cmUgdG8gc3RhcnQgdGhlcmUKLQkJCSAqLwotCQkJdGNwX3NrKGNoaWxkKS0+cHJlZF9mbGFncyA9IDA7Ci0JCQlzb2NrX2hvbGQoc2spOwotCQkJc29ja19ob2xkKGNoaWxkKTsKLQkJCXRjcF9zayhjaGlsZCktPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrID0gc2s7Ci0JCQl0Y3Bfc2soY2hpbGQpLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QgPSByZXE7Ci0KLQkJCWluZXRfY3NrX3Jlc2V0X2tlZXBhbGl2ZV90aW1lcihjaGlsZCwKLQkJCQkJCSAgICAgICBpbmV0X2NzayhzayktPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ICogSFopOwotCQl9IGVsc2UgewotCQkJaW5ldF9jc2tfcmVxc2tfcXVldWVfYWRkKHNrLCByZXEsIGNoaWxkKTsKLQkJfQotCisJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2FkZChzaywgcmVxLCBjaGlsZCk7CiAJCXJldHVybiBjaGlsZDsKIAogCWxpc3Rlbl9vdmVyZmxvdzoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9wcm9iZS5jIGIvbmV0L2lwdjQvdGNwX3Byb2JlLmMKaW5kZXggNWZmMGNlNi4uN2RkYzMwZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3Byb2JlLmMKKysrIGIvbmV0L2lwdjQvdGNwX3Byb2JlLmMKQEAgLTIyNCw3ICsyMjQsNyBAQAogCWlmIChidWZzaXplIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQl0Y3BfcHJvYmUubG9nID0ga2NhbGxvYyhzaXplb2Yoc3RydWN0IHRjcF9sb2cpLCBidWZzaXplLCBHRlBfS0VSTkVMKTsKKwl0Y3BfcHJvYmUubG9nID0ga2NhbGxvYyhidWZzaXplLCBzaXplb2Yoc3RydWN0IHRjcF9sb2cpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXRjcF9wcm9iZS5sb2cpCiAJCWdvdG8gZXJyMDsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMgYi9uZXQvaXB2NC90Y3BfdGltZXIuYwppbmRleCA0ZGU2OGNmLi42M2VkOWQ2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfdGltZXIuYworKysgYi9uZXQvaXB2NC90Y3BfdGltZXIuYwpAQCAtNDg5LDExICs0ODksNiBAQAogCQlnb3RvIGRlYXRoOwogCX0KIAotCWlmICh0cC0+ZGVmZXJfdGNwX2FjY2VwdC5yZXF1ZXN0ICYmIHNrLT5za19zdGF0ZSA9PSBUQ1BfRVNUQUJMSVNIRUQpIHsKLQkJdGNwX3NlbmRfYWN0aXZlX3Jlc2V0KHNrLCBHRlBfQVRPTUlDKTsKLQkJZ290byBkZWF0aDsKLQl9Ci0KIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19LRUVQT1BFTikgfHwgc2stPnNrX3N0YXRlID09IFRDUF9DTE9TRSkKIAkJZ290byBvdXQ7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3hmcm00X21vZGVfdHVubmVsLmMgYi9uZXQvaXB2NC94ZnJtNF9tb2RlX3R1bm5lbC5jCmluZGV4IDU4NGU2ZDcuLjcxMzUyNzkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3hmcm00X21vZGVfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQveGZybTRfbW9kZV90dW5uZWwuYwpAQCAtNTIsNyArNTIsNyBAQAogCQlJUF9FQ05fY2xlYXIodG9wX2lwaCk7CiAKIAl0b3BfaXBoLT5mcmFnX29mZiA9IChmbGFncyAmIFhGUk1fU1RBVEVfTk9QTVRVRElTQykgPwotCQkJICAgIDAgOiBYRlJNX01PREVfU0tCX0NCKHNrYiktPmZyYWdfb2ZmOworCQkwIDogKFhGUk1fTU9ERV9TS0JfQ0Ioc2tiKS0+ZnJhZ19vZmYgJiBodG9ucyhJUF9ERikpOwogCWlwX3NlbGVjdF9pZGVudCh0b3BfaXBoLCBkc3QtPmNoaWxkLCBOVUxMKTsKIAogCXRvcF9pcGgtPnR0bCA9IGRzdF9tZXRyaWMoZHN0LT5jaGlsZCwgUlRBWF9IT1BMSU1JVCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAxNDc1ODhmLi5mZjYxYTVjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTc0OSwxMiArNzQ5LDEyIEBACiAJfQogCXdyaXRlX3VubG9ja19iaCgmaWRldi0+bG9jayk7CiAKKwlhZGRyY29uZl9kZWxfdGltZXIoaWZwKTsKKwogCWlwdjZfaWZhX25vdGlmeShSVE1fREVMQUREUiwgaWZwKTsKIAogCWF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCZpbmV0NmFkZHJfY2hhaW4sIE5FVERFVl9ET1dOLCBpZnApOwogCi0JYWRkcmNvbmZfZGVsX3RpbWVyKGlmcCk7Ci0KIAkvKgogCSAqIFB1cmdlIG9yIHVwZGF0ZSBjb3JyZXNwb25kaW5nIHByZWZpeAogCSAqCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwppbmRleCAzYzZhYWZiLi5lODRiM2ZkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTE5MSw3ICsxOTEsNyBAQAogCW5wLT5tY2FzdF9ob3BzCT0gLTE7CiAJbnAtPm1jX2xvb3AJPSAxOwogCW5wLT5wbXR1ZGlzYwk9IElQVjZfUE1UVURJU0NfV0FOVDsKLQlucC0+aXB2Nm9ubHkJPSBpbml0X25ldC5pcHY2LnN5c2N0bC5iaW5kdjZvbmx5OworCW5wLT5pcHY2b25seQk9IG5ldC0+aXB2Ni5zeXNjdGwuYmluZHY2b25seTsKIAogCS8qIEluaXQgdGhlIGlwdjQgcGFydCBvZiB0aGUgc29ja2V0IHNpbmNlIHdlIGNhbiBoYXZlIHNvY2tldHMKIAkgKiB1c2luZyB2NiBBUEkgZm9yIGlwdjQuCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCBiOWMyZGU4Li4wZjBmOTRhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTcwNSw2ICs3MDUsMTEgQEAKIAkJCX0KIAogCQkJKmhsaW1pdCA9ICooaW50ICopQ01TR19EQVRBKGNtc2cpOworCQkJaWYgKCpobGltaXQgPCAtMSB8fCAqaGxpbWl0ID4gMHhmZikgeworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBleGl0X2Y7CisJCQl9CisKIAkJCWJyZWFrOwogCiAJCWNhc2UgSVBWNl9UQ0xBU1M6CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9leHRoZHJzLmMgYi9uZXQvaXB2Ni9leHRoZHJzLmMKaW5kZXggM2NkMWM5OS4uZGNmOTRmZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZXh0aGRycy5jCisrKyBiL25ldC9pcHY2L2V4dGhkcnMuYwpAQCAtNDQ1LDcgKzQ0NSw3IEBACiAJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVybiAtMTsKIAkJfQotCQlpZiAoIWlwdjZfY2hrX2hvbWVfYWRkcigmaW5pdF9uZXQsIGFkZHIpKSB7CisJCWlmICghaXB2Nl9jaGtfaG9tZV9hZGRyKGRldl9uZXQoc2tiLT5kc3QtPmRldiksIGFkZHIpKSB7CiAJCQlJUDZfSU5DX1NUQVRTX0JIKGlwNl9kc3RfaWRldihza2ItPmRzdCksCiAJCQkJCSBJUFNUQVRTX01JQl9JTkFERFJFUlJPUlMpOwogCQkJa2ZyZWVfc2tiKHNrYik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfaW5wdXQuYyBiL25ldC9pcHY2L2lwNl9pbnB1dC5jCmluZGV4IDRlNWM4NjEuLjE3ZWI0OGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9pbnB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9pbnB1dC5jCkBAIC0xMDIsNiArMTAyLDE1IEBACiAJaWYgKGhkci0+dmVyc2lvbiAhPSA2KQogCQlnb3RvIGVycjsKIAorCS8qCisJICogUkZDNDI5MSAyLjUuMworCSAqIEEgcGFja2V0IHJlY2VpdmVkIG9uIGFuIGludGVyZmFjZSB3aXRoIGEgZGVzdGluYXRpb24gYWRkcmVzcworCSAqIG9mIGxvb3BiYWNrIG11c3QgYmUgZHJvcHBlZC4KKwkgKi8KKwlpZiAoIShkZXYtPmZsYWdzICYgSUZGX0xPT1BCQUNLKSAmJgorCSAgICBpcHY2X2FkZHJfbG9vcGJhY2soJmhkci0+ZGFkZHIpKQorCQlnb3RvIGVycjsKKwogCXNrYi0+dHJhbnNwb3J0X2hlYWRlciA9IHNrYi0+bmV0d29ya19oZWFkZXIgKyBzaXplb2YoKmhkcik7CiAJSVA2Q0Ioc2tiKS0+bmhvZmYgPSBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwdjZfc29ja2dsdWUuYyBiL25ldC9pcHY2L2lwdjZfc29ja2dsdWUuYwppbmRleCAyNmI4M2U1Li44NmUyOGE3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jCkBAIC02Nyw3ICs2Nyw3IEBACiAKIAkvKiBSQSBwYWNrZXQgbWF5IGJlIGRlbGl2ZXJlZCBPTkxZIHRvIElQUFJPVE9fUkFXIHNvY2tldCAqLwogCWlmIChzay0+c2tfdHlwZSAhPSBTT0NLX1JBVyB8fCBpbmV0X3NrKHNrKS0+bnVtICE9IElQUFJPVE9fUkFXKQotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmV0dXJuIC1FTk9QUk9UT09QVDsKIAogCW5ld19yYSA9IChzZWw+PTApID8ga21hbGxvYyhzaXplb2YoKm5ld19yYSksIEdGUF9LRVJORUwpIDogTlVMTDsKIApAQCAtMzQ1LDE4ICszNDUsMjEgQEAKIAljYXNlIElQVjZfRFNUT1BUUzoKIAl7CiAJCXN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0OworCisJCS8qIHJlbW92ZSBhbnkgc3RpY2t5IG9wdGlvbnMgaGVhZGVyIHdpdGggYSB6ZXJvIG9wdGlvbgorCQkgKiBsZW5ndGgsIHBlciBSRkMzNTQyLgorCQkgKi8KIAkJaWYgKG9wdGxlbiA9PSAwKQogCQkJb3B0dmFsID0gTlVMTDsKKwkJZWxzZSBpZiAob3B0bGVuIDwgc2l6ZW9mKHN0cnVjdCBpcHY2X29wdF9oZHIpIHx8CisJCQkgb3B0bGVuICYgMHg3IHx8IG9wdGxlbiA+IDggKiAyNTUpCisJCQlnb3RvIGVfaW52YWw7CiAKIAkJLyogaG9wLWJ5LWhvcCAvIGRlc3RpbmF0aW9uIG9wdGlvbnMgYXJlIHByaXZpbGVnZWQgb3B0aW9uICovCiAJCXJldHYgPSAtRVBFUk07CiAJCWlmIChvcHRuYW1lICE9IElQVjZfUlRIRFIgJiYgIWNhcGFibGUoQ0FQX05FVF9SQVcpKQogCQkJYnJlYWs7CiAKLQkJaWYgKG9wdGxlbiA8IHNpemVvZihzdHJ1Y3QgaXB2Nl9vcHRfaGRyKSB8fAotCQkgICAgb3B0bGVuICYgMHg3IHx8IG9wdGxlbiA+IDggKiAyNTUpCi0JCQlnb3RvIGVfaW52YWw7Ci0KIAkJb3B0ID0gaXB2Nl9yZW5ld19vcHRpb25zKHNrLCBucC0+b3B0LCBvcHRuYW1lLAogCQkJCQkgKHN0cnVjdCBpcHY2X29wdF9oZHIgX191c2VyICopb3B0dmFsLAogCQkJCQkgb3B0bGVuKTsKQEAgLTQ0Niw3ICs0NDksNyBAQAogCiAJY2FzZSBJUFY2X01VTFRJQ0FTVF9IT1BTOgogCQlpZiAoc2stPnNrX3R5cGUgPT0gU09DS19TVFJFQU0pCi0JCQlnb3RvIGVfaW52YWw7CisJCQlicmVhazsKIAkJaWYgKG9wdGxlbiA8IHNpemVvZihpbnQpKQogCQkJZ290byBlX2ludmFsOwogCQlpZiAodmFsID4gMjU1IHx8IHZhbCA8IC0xKQpAQCAtNDU4LDEzICs0NjEsMTUgQEAKIAljYXNlIElQVjZfTVVMVElDQVNUX0xPT1A6CiAJCWlmIChvcHRsZW4gPCBzaXplb2YoaW50KSkKIAkJCWdvdG8gZV9pbnZhbDsKKwkJaWYgKHZhbCAhPSB2YWxib29sKQorCQkJZ290byBlX2ludmFsOwogCQlucC0+bWNfbG9vcCA9IHZhbGJvb2w7CiAJCXJldHYgPSAwOwogCQlicmVhazsKIAogCWNhc2UgSVBWNl9NVUxUSUNBU1RfSUY6CiAJCWlmIChzay0+c2tfdHlwZSA9PSBTT0NLX1NUUkVBTSkKLQkJCWdvdG8gZV9pbnZhbDsKKwkJCWJyZWFrOwogCQlpZiAob3B0bGVuIDwgc2l6ZW9mKGludCkpCiAJCQlnb3RvIGVfaW52YWw7CiAKQEAgLTg2MCw3ICs4NjUsNyBAQAogCQlpZiAoc2stPnNrX3Byb3RvY29sICE9IElQUFJPVE9fVURQICYmCiAJCSAgICBzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19VRFBMSVRFICYmCiAJCSAgICBzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19UQ1ApCi0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJCXJldHVybiAtRU5PUFJPVE9PUFQ7CiAJCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKQogCQkJcmV0dXJuIC1FTk9UQ09OTjsKIAkJdmFsID0gc2stPnNrX2ZhbWlseTsKQEAgLTg3NCw2ICs4NzksOCBAQAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmZ3NmLCBvcHR2YWwsIEdST1VQX0ZJTFRFUl9TSVpFKDApKSkKIAkJCXJldHVybiAtRUZBVUxUOworCQlpZiAoZ3NmLmdmX2dyb3VwLnNzX2ZhbWlseSAhPSBBRl9JTkVUNikKKwkJCXJldHVybiAtRUFERFJOT1RBVkFJTDsKIAkJbG9ja19zb2NrKHNrKTsKIAkJZXJyID0gaXA2X21jX21zZmdldChzaywgJmdzZiwKIAkJCShzdHJ1Y3QgZ3JvdXBfZmlsdGVyIF9fdXNlciAqKW9wdHZhbCwgb3B0bGVuKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9pcDZ0YWJsZV9tYW5nbGUuYyBiL25ldC9pcHY2L25ldGZpbHRlci9pcDZ0YWJsZV9tYW5nbGUuYwppbmRleCAyN2E1ZThiLi5mNDA1Y2VhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2dGFibGVfbWFuZ2xlLmMKKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNnRhYmxlX21hbmdsZS5jCkBAIC0xMjksNyArMTI5LDcgQEAKIAkJLnByaW9yaXR5CT0gTkZfSVA2X1BSSV9NQU5HTEUsCiAJfSwKIAl7Ci0JCS5ob29rCQk9IGlwNnRfbG9jYWxfaG9vaywKKwkJLmhvb2sJCT0gaXA2dF9yb3V0ZV9ob29rLAogCQkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJCS5wZgkJPSBQRl9JTkVUNiwKIAkJLmhvb2tudW0JPSBORl9JTkVUX0xPQ0FMX0lOLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCmluZGV4IGU2NWUyNmUuLmNmMjBiYzQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYworKysgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTIwNyw5ICsyMDcsMTAgQEAKIAlhcmcuaWQgPSBpZDsKIAlhcmcuc3JjID0gc3JjOwogCWFyZy5kc3QgPSBkc3Q7CisKKwlyZWFkX2xvY2tfYmgoJm5mX2ZyYWdzLmxvY2spOwogCWhhc2ggPSBpcDZxaGFzaGZuKGlkLCBzcmMsIGRzdCk7CiAKLQlsb2NhbF9iaF9kaXNhYmxlKCk7CiAJcSA9IGluZXRfZnJhZ19maW5kKCZuZl9pbml0X2ZyYWdzLCAmbmZfZnJhZ3MsICZhcmcsIGhhc2gpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwogCWlmIChxID09IE5VTEwpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25ldC9pcHY2L3Jhdy5jCmluZGV4IDhmZWU5YTEuLjNhZWUxMjMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Jhdy5jCisrKyBiL25ldC9pcHY2L3Jhdy5jCkBAIC0xMTY5LDcgKzExNjksOCBAQAogCWxvY2tfc29jayhzayk7CiAJaXA2X2ZsdXNoX3BlbmRpbmdfZnJhbWVzKHNrKTsKIAlyZWxlYXNlX3NvY2soc2spOwotCXJldHVybiAwOworCisJcmV0dXJuIGluZXQ2X2Rlc3Ryb3lfc29jayhzayk7CiB9CiAKIHN0YXRpYyBpbnQgcmF3djZfaW5pdF9zayhzdHJ1Y3Qgc29jayAqc2spCkBAIC0xMjAwLDcgKzEyMDEsNiBAQAogCS5kaXNjb25uZWN0CSAgID0gdWRwX2Rpc2Nvbm5lY3QsCiAJLmlvY3RsCQkgICA9IHJhd3Y2X2lvY3RsLAogCS5pbml0CQkgICA9IHJhd3Y2X2luaXRfc2ssCi0JLmRlc3Ryb3kJICAgPSBpbmV0Nl9kZXN0cm95X3NvY2ssCiAJLnNldHNvY2tvcHQJICAgPSByYXd2Nl9zZXRzb2Nrb3B0LAogCS5nZXRzb2Nrb3B0CSAgID0gcmF3djZfZ2V0c29ja29wdCwKIAkuc2VuZG1zZwkgICA9IHJhd3Y2X3NlbmRtc2csCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKaW5kZXggNzk4Y2FiYy4uYTYwZDdkMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYwpAQCAtMjQ3LDYgKzI0Nyw4IEBACiAJYXJnLmlkID0gaWQ7CiAJYXJnLnNyYyA9IHNyYzsKIAlhcmcuZHN0ID0gZHN0OworCisJcmVhZF9sb2NrKCZpcDZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwNnFoYXNoZm4oaWQsIHNyYywgZHN0KTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmV0LT5pcHY2LmZyYWdzLCAmaXA2X2ZyYWdzLCAmYXJnLCBoYXNoKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDIyMGNmZmUuLjdmZjY4NzAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMjQwLDcgKzI0MCw3IEBACiBzdGF0aWMgaW5saW5lIHN0cnVjdCBydDZfaW5mbyAqcnQ2X2RldmljZV9tYXRjaChzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkJCQkgICAgc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCQkJCSAgICBpbnQgb2lmLAotCQkJCQkJICAgIGludCBzdHJpY3QpCisJCQkJCQkgICAgaW50IGZsYWdzKQogewogCXN0cnVjdCBydDZfaW5mbyAqbG9jYWwgPSBOVUxMOwogCXN0cnVjdCBydDZfaW5mbyAqc3BydDsKQEAgLTI1Myw3ICsyNTMsNyBAQAogCQkJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfTE9PUEJBQ0spIHsKIAkJCQlpZiAoc3BydC0+cnQ2aV9pZGV2ID09IE5VTEwgfHwKIAkJCQkgICAgc3BydC0+cnQ2aV9pZGV2LT5kZXYtPmlmaW5kZXggIT0gb2lmKSB7Ci0JCQkJCWlmIChzdHJpY3QgJiYgb2lmKQorCQkJCQlpZiAoZmxhZ3MgJiBSVDZfTE9PS1VQX0ZfSUZBQ0UgJiYgb2lmKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlmIChsb2NhbCAmJiAoIW9pZiB8fAogCQkJCQkJICAgICAgbG9jYWwtPnJ0NmlfaWRldi0+ZGV2LT5pZmluZGV4ID09IG9pZikpCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkJaWYgKGxvY2FsKQogCQkJcmV0dXJuIGxvY2FsOwogCi0JCWlmIChzdHJpY3QpCisJCWlmIChmbGFncyAmIFJUNl9MT09LVVBfRl9JRkFDRSkKIAkJCXJldHVybiBuZXQtPmlwdjYuaXA2X251bGxfZW50cnk7CiAJfQogCXJldHVybiBydDsKQEAgLTIxOTYsOCArMjE5NiwxMiBAQAogCiAJTkxBX1BVVF9VMzIoc2tiLCBSVEFfUFJJT1JJVFksIHJ0LT5ydDZpX21ldHJpYyk7CiAKLQlleHBpcmVzID0gKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0VYUElSRVMpID8KLQkJCXJ0LT5ydDZpX2V4cGlyZXMgLSBqaWZmaWVzIDogMDsKKwlpZiAoIShydC0+cnQ2aV9mbGFncyAmIFJURl9FWFBJUkVTKSkKKwkJZXhwaXJlcyA9IDA7CisJZWxzZSBpZiAocnQtPnJ0NmlfZXhwaXJlcyAtIGppZmZpZXMgPCBJTlRfTUFYKQorCQlleHBpcmVzID0gcnQtPnJ0NmlfZXhwaXJlcyAtIGppZmZpZXM7CisJZWxzZQorCQlleHBpcmVzID0gSU5UX01BWDsKIAogCWlmIChydG5sX3B1dF9jYWNoZWluZm8oc2tiLCAmcnQtPnUuZHN0LCAwLCAwLCAwLAogCQkJICAgICAgIGV4cGlyZXMsIHJ0LT51LmRzdC5lcnJvcikgPCAwKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQvaXB2Ni9zaXQuYwppbmRleCAzZGU2ZmZkLi4zMmU4NzFhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zaXQuYworKysgYi9uZXQvaXB2Ni9zaXQuYwpAQCAtMjIyLDE1ICsyMjIsMTggQEAKIAogfQogCi1zdGF0aWMgaW50IGlwaXA2X3R1bm5lbF9nZXRfcHJsKHN0cnVjdCBpcF90dW5uZWwgKnQsIHN0cnVjdCBpcF90dW5uZWxfcHJsICphKQorc3RhdGljIGludCBpcGlwNl90dW5uZWxfZ2V0X3BybChzdHJ1Y3QgaXBfdHVubmVsICp0LAorCQkJCXN0cnVjdCBpcF90dW5uZWxfcHJsIF9fdXNlciAqYSkKIHsKLQlzdHJ1Y3QgaXBfdHVubmVsX3BybCAqa3A7CisJc3RydWN0IGlwX3R1bm5lbF9wcmwga3BybCwgKmtwOwogCXN0cnVjdCBpcF90dW5uZWxfcHJsX2VudHJ5ICpwcmw7CiAJdW5zaWduZWQgaW50IGNtYXgsIGMgPSAwLCBjYSwgbGVuOwogCWludCByZXQgPSAwOwogCi0JY21heCA9IGEtPmRhdGFsZW4gLyBzaXplb2YoKmEpOwotCWlmIChjbWF4ID4gMSAmJiBhLT5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpKQorCWlmIChjb3B5X2Zyb21fdXNlcigma3BybCwgYSwgc2l6ZW9mKGtwcmwpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJY21heCA9IGtwcmwuZGF0YWxlbiAvIHNpemVvZihrcHJsKTsKKwlpZiAoY21heCA+IDEgJiYga3BybC5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpKQogCQljbWF4ID0gMTsKIAogCS8qIEZvciBzaW1wbGUgR0VUIG9yIGZvciByb290IHVzZXJzLApAQCAtMjYxLDI2ICsyNjQsMjUgQEAKIAlmb3IgKHBybCA9IHQtPnBybDsgcHJsOyBwcmwgPSBwcmwtPm5leHQpIHsKIAkJaWYgKGMgPiBjbWF4KQogCQkJYnJlYWs7Ci0JCWlmIChhLT5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpICYmIHBybC0+YWRkciAhPSBhLT5hZGRyKQorCQlpZiAoa3BybC5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpICYmIHBybC0+YWRkciAhPSBrcHJsLmFkZHIpCiAJCQljb250aW51ZTsKIAkJa3BbY10uYWRkciA9IHBybC0+YWRkcjsKIAkJa3BbY10uZmxhZ3MgPSBwcmwtPmZsYWdzOwogCQljKys7Ci0JCWlmIChhLT5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpKQorCQlpZiAoa3BybC5hZGRyICE9IGh0b25sKElOQUREUl9BTlkpKQogCQkJYnJlYWs7CiAJfQogb3V0OgogCXJlYWRfdW5sb2NrKCZpcGlwNl9sb2NrKTsKIAogCWxlbiA9IHNpemVvZigqa3ApICogYzsKLQlyZXQgPSBsZW4gPyBjb3B5X3RvX3VzZXIoYS0+ZGF0YSwga3AsIGxlbikgOiAwOworCXJldCA9IDA7CisJaWYgKChsZW4gJiYgY29weV90b191c2VyKGEgKyAxLCBrcCwgbGVuKSkgfHwgcHV0X3VzZXIobGVuLCAmYS0+ZGF0YWxlbikpCisJCXJldCA9IC1FRkFVTFQ7CiAKIAlrZnJlZShrcCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQlhLT5kYXRhbGVuID0gbGVuOwotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTg3MywxMSArODc1LDIwIEBACiAJCWJyZWFrOwogCiAJY2FzZSBTSU9DR0VUUFJMOgorCQllcnIgPSAtRUlOVkFMOworCQlpZiAoZGV2ID09IHNpdG4tPmZiX3R1bm5lbF9kZXYpCisJCQlnb3RvIGRvbmU7CisJCWVyciA9IC1FTk9FTlQ7CisJCWlmICghKHQgPSBuZXRkZXZfcHJpdihkZXYpKSkKKwkJCWdvdG8gZG9uZTsKKwkJZXJyID0gaXBpcDZfdHVubmVsX2dldF9wcmwodCwgaWZyLT5pZnJfaWZydS5pZnJ1X2RhdGEpOworCQlicmVhazsKKwogCWNhc2UgU0lPQ0FERFBSTDoKIAljYXNlIFNJT0NERUxQUkw6CiAJY2FzZSBTSU9DQ0hHUFJMOgogCQllcnIgPSAtRVBFUk07Ci0JCWlmIChjbWQgIT0gU0lPQ0dFVFBSTCAmJiAhY2FwYWJsZShDQVBfTkVUX0FETUlOKSkKKwkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURNSU4pKQogCQkJZ290byBkb25lOwogCQllcnIgPSAtRUlOVkFMOwogCQlpZiAoZGV2ID09IHNpdG4tPmZiX3R1bm5lbF9kZXYpCkBAIC04OTAsMTIgKzkwMSw2IEBACiAJCQlnb3RvIGRvbmU7CiAKIAkJc3dpdGNoIChjbWQpIHsKLQkJY2FzZSBTSU9DR0VUUFJMOgotCQkJZXJyID0gaXBpcDZfdHVubmVsX2dldF9wcmwodCwgJnBybCk7Ci0JCQlpZiAoIWVyciAmJiBjb3B5X3RvX3VzZXIoaWZyLT5pZnJfaWZydS5pZnJ1X2RhdGEsCi0JCQkJCQkgJnBybCwgc2l6ZW9mKHBybCkpKQotCQkJCWVyciA9IC1FRkFVTFQ7Ci0JCQlicmVhazsKIAkJY2FzZSBTSU9DREVMUFJMOgogCQkJZXJyID0gaXBpcDZfdHVubmVsX2RlbF9wcmwodCwgJnBybCk7CiAJCQlicmVhazsKQEAgLTkwNCw4ICs5MDksNyBAQAogCQkJZXJyID0gaXBpcDZfdHVubmVsX2FkZF9wcmwodCwgJnBybCwgY21kID09IFNJT0NDSEdQUkwpOwogCQkJYnJlYWs7CiAJCX0KLQkJaWYgKGNtZCAhPSBTSU9DR0VUUFJMKQotCQkJbmV0ZGV2X3N0YXRlX2NoYW5nZShkZXYpOworCQluZXRkZXZfc3RhdGVfY2hhbmdlKGRldik7CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3N5bmNvb2tpZXMuYyBiL25ldC9pcHY2L3N5bmNvb2tpZXMuYwppbmRleCA5MzhjZTRlLi4zZWNjMTE1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zeW5jb29raWVzLmMKKysrIGIvbmV0L2lwdjYvc3luY29va2llcy5jCkBAIC0xOTgsNyArMTk4LDYgQEAKIAlpcmVxID0gaW5ldF9yc2socmVxKTsKIAlpcmVxNiA9IGluZXQ2X3JzayhyZXEpOwogCXRyZXEgPSB0Y3BfcnNrKHJlcSk7Ci0JaXJlcTYtPnBrdG9wdHMgPSBOVUxMOwogCiAJaWYgKHNlY3VyaXR5X2luZXRfY29ubl9yZXF1ZXN0KHNrLCBza2IsIHJlcSkpIHsKIAkJcmVxc2tfZnJlZShyZXEpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggNzE1OTY1Zi4uNDBlYTljMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lwdjYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC0xMjk5LDcgKzEyOTksNiBAQAogCXRyZXEgPSBpbmV0Nl9yc2socmVxKTsKIAlpcHY2X2FkZHJfY29weSgmdHJlcS0+cm10X2FkZHIsICZpcHY2X2hkcihza2IpLT5zYWRkcik7CiAJaXB2Nl9hZGRyX2NvcHkoJnRyZXEtPmxvY19hZGRyLCAmaXB2Nl9oZHIoc2tiKS0+ZGFkZHIpOwotCXRyZXEtPnBrdG9wdHMgPSBOVUxMOwogCWlmICghd2FudF9jb29raWUpCiAJCVRDUF9FQ05fY3JlYXRlX3JlcXVlc3QocmVxLCB0Y3BfaGRyKHNrYikpOwogCkBAIC0yMDM3LDcgKzIwMzYsNyBAQAogCiAJc2VxX3ByaW50ZihzZXEsCiAJCSAgICIlNGQ6ICUwOFglMDhYJTA4WCUwOFg6JTA0WCAlMDhYJTA4WCUwOFglMDhYOiUwNFggIgotCQkgICAiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWx1ICVkICVwICV1ICV1ICV1ICV1ICVkXG4iLAorCQkgICAiJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWx1ICVkICVwICVsdSAlbHUgJXUgJXUgJWRcbiIsCiAJCSAgIGksCiAJCSAgIHNyYy0+czZfYWRkcjMyWzBdLCBzcmMtPnM2X2FkZHIzMlsxXSwKIAkJICAgc3JjLT5zNl9hZGRyMzJbMl0sIHNyYy0+czZfYWRkcjMyWzNdLCBzcmNwLApAQCAtMjA1Myw4ICsyMDUyLDggQEAKIAkJICAgaWNzay0+aWNza19wcm9iZXNfb3V0LAogCQkgICBzb2NrX2lfaW5vKHNwKSwKIAkJICAgYXRvbWljX3JlYWQoJnNwLT5za19yZWZjbnQpLCBzcCwKLQkJICAgaWNzay0+aWNza19ydG8sCi0JCSAgIGljc2stPmljc2tfYWNrLmF0bywKKwkJICAgamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfcnRvKSwKKwkJICAgamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfYWNrLmF0byksCiAJCSAgIChpY3NrLT5pY3NrX2Fjay5xdWljayA8PCAxICkgfCBpY3NrLT5pY3NrX2Fjay5waW5ncG9uZywKIAkJICAgdHAtPnNuZF9jd25kLCB0cC0+c25kX3NzdGhyZXNoPj0weEZGRkY/LTE6dHAtPnNuZF9zc3RocmVzaAogCQkgICApOwpkaWZmIC0tZ2l0IGEvbmV0L2lyZGEvaXJuZXQvaXJuZXQuaCBiL25ldC9pcmRhL2lybmV0L2lybmV0LmgKaW5kZXggYjAwMWMzNi4uYmNjZjRkMCAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJuZXQvaXJuZXQuaAorKysgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldC5oCkBAIC0yNDEsNiArMjQxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgpkaWZmIC0tZ2l0IGEvbmV0L2lyZGEvaXJuZXQvaXJuZXRfcHBwLmMgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYwppbmRleCBlMGVhYjU5Li5lODRhNzBkIDEwMDY0NAotLS0gYS9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYworKysgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYwpAQCAtNDc5LDYgKzQ3OSw3IEBACiAgIGFwID0ga3phbGxvYyhzaXplb2YoKmFwKSwgR0ZQX0tFUk5FTCk7CiAgIERBQk9SVChhcCA9PSBOVUxMLCAtRU5PTUVNLCBGU19FUlJPUiwgIkNhbid0IGFsbG9jYXRlIHN0cnVjdCBpcm5ldC4uLlxuIik7CiAKKyAgbG9ja19rZXJuZWwoKTsKICAgLyogaW5pdGlhbGl6ZSB0aGUgaXJuZXQgc3RydWN0dXJlICovCiAgIGFwLT5maWxlID0gZmlsZTsKIApAQCAtNTAwLDYgKzUwMSw3IEBACiAgICAgewogICAgICAgREVSUk9SKEZTX0VSUk9SLCAiQ2FuJ3Qgc2V0dXAgSXJEQSBsaW5rLi4uXG4iKTsKICAgICAgIGtmcmVlKGFwKTsKKyAgICAgIHVubG9ja19rZXJuZWwoKTsKICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCkBAIC01MTAsNiArNTEyLDcgQEAKICAgZmlsZS0+cHJpdmF0ZV9kYXRhID0gYXA7CiAKICAgREVYSVQoRlNfVFJBQ0UsICIgLSBhcD0weCVwXG4iLCBhcCk7CisgIHVubG9ja19rZXJuZWwoKTsKICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9pcmRhL2lybmV0bGluay5jIGIvbmV0L2lyZGEvaXJuZXRsaW5rLmMKaW5kZXggOWUxZmI4Mi4uMmYwNWVjMSAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJuZXRsaW5rLmMKKysrIGIvbmV0L2lyZGEvaXJuZXRsaW5rLmMKQEAgLTEwMSw4ICsxMDEsOCBAQAogCiAJaGRyID0gZ2VubG1zZ19wdXQobXNnLCBpbmZvLT5zbmRfcGlkLCBpbmZvLT5zbmRfc2VxLAogCQkJICAmaXJkYV9ubF9mYW1pbHksIDAsICBJUkRBX05MX0NNRF9HRVRfTU9ERSk7Ci0JaWYgKElTX0VSUihoZHIpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGRyKTsKKwlpZiAoaGRyID09IE5VTEwpIHsKKwkJcmV0ID0gLUVNU0dTSVpFOwogCQlnb3RvIGVycl9vdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvaXVjdi9hZl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9pdWN2LmMKaW5kZXggN2IwMDM4Zi4uYmRhNzEwMSAxMDA2NDQKLS0tIGEvbmV0L2l1Y3YvYWZfaXVjdi5jCisrKyBiL25ldC9pdWN2L2FmX2l1Y3YuYwpAQCAtMTEzNSw4ICsxMTM1LDcgQEAKIAkJaWYgKHRoaXMpCiAJCQlrZnJlZV9za2IodGhpcyk7CiAJfQotCWlmICghdGhpcykKLQkJcHJpbnRrKEtFUk5fRVJSICJBRl9JVUNWIG1zZyB0YWcgJXUgbm90IGZvdW5kXG4iLCBtc2ctPnRhZyk7CisJQlVHX09OKCF0aGlzKTsKIAogCWlmIChzay0+c2tfc3RhdGUgPT0gSVVDVl9DTE9TSU5HKSB7CiAJCWlmIChza2JfcXVldWVfZW1wdHkoJml1Y3Zfc2soc2spLT5zZW5kX3NrYl9xKSkgewpAQCAtMTE5Niw3ICsxMTk1LDcgQEAKIAl9CiAJY3BjbWQoIlFVRVJZIFVTRVJJRCIsIGl1Y3ZfdXNlcmlkLCBzaXplb2YoaXVjdl91c2VyaWQpLCAmZXJyKTsKIAlpZiAodW5saWtlbHkoZXJyKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkFGX0lVQ1YgbmVlZHMgdGhlIFZNIHVzZXJpZFxuIik7CisJCVdBUk5fT04oZXJyKTsKIAkJZXJyID0gLUVQUk9UT05PU1VQUE9SVDsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTIxMCw3ICsxMjA5LDYgQEAKIAllcnIgPSBzb2NrX3JlZ2lzdGVyKCZpdWN2X3NvY2tfZmFtaWx5X29wcyk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfcHJvdG87Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQUZfSVVDViBsb3dsZXZlbCBkcml2ZXIgaW5pdGlhbGl6ZWRcbiIpOwogCXJldHVybiAwOwogCiBvdXRfcHJvdG86CkBAIC0xMjI2LDggKzEyMjQsNiBAQAogCXNvY2tfdW5yZWdpc3RlcihQRl9JVUNWKTsKIAlwcm90b191bnJlZ2lzdGVyKCZpdWN2X3Byb3RvKTsKIAlpdWN2X3VucmVnaXN0ZXIoJmFmX2l1Y3ZfaGFuZGxlciwgMCk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJBRl9JVUNWIGxvd2xldmVsIGRyaXZlciB1bmxvYWRlZFxuIik7CiB9CiAKIG1vZHVsZV9pbml0KGFmaXVjdl9pbml0KTsKZGlmZiAtLWdpdCBhL25ldC9pdWN2L2l1Y3YuYyBiL25ldC9pdWN2L2l1Y3YuYwppbmRleCA5MTg5NzA3Li43ZjgyYjc2IDEwMDY0NAotLS0gYS9uZXQvaXVjdi9pdWN2LmMKKysrIGIvbmV0L2l1Y3YvaXVjdi5jCkBAIC0xNTU5LDE2ICsxNTU5LDExIEBACiAKIAlwID0gaXVjdl9pcnFfZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOwogCWlmIChwLT5pcHBhdGhpZCA+PSBpdWN2X21heF9wYXRoaWQpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiaXVjdl9kb19pbnQ6IEdvdCBpbnRlcnJ1cHQgd2l0aCAiCi0JCSAgICAgICAicGF0aGlkICVkID4gbWF4X2Nvbm5lY3Rpb25zICglbGQpXG4iLAotCQkgICAgICAgcC0+aXBwYXRoaWQsIGl1Y3ZfbWF4X3BhdGhpZCAtIDEpOworCQlXQVJOX09OKHAtPmlwcGF0aGlkID49IGl1Y3ZfbWF4X3BhdGhpZCk7CiAJCWl1Y3Zfc2V2ZXJfcGF0aGlkKHAtPmlwcGF0aGlkLCBpdWN2X2Vycm9yX25vX2xpc3RlbmVyKTsKIAkJcmV0dXJuOwogCX0KLQlpZiAocC0+aXB0eXBlICA8IDB4MDEgfHwgcC0+aXB0eXBlID4gMHgwOSkgewotCQlwcmludGsoS0VSTl9FUlIgIml1Y3ZfZG9faW50OiB1bmtub3duIGl1Y3YgaW50ZXJydXB0XG4iKTsKLQkJcmV0dXJuOwotCX0KKwlCVUdfT04ocC0+aXB0eXBlICA8IDB4MDEgfHwgcC0+aXB0eXBlID4gMHgwOSk7CiAJd29yayA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpdWN2X2lycV9saXN0KSwgR0ZQX0FUT01JQyk7CiAJaWYgKCF3b3JrKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIml1Y3ZfZXh0ZXJuYWxfaW50ZXJydXB0OiBvdXQgb2YgbWVtb3J5XG4iKTsKZGlmZiAtLWdpdCBhL25ldC9rZXkvYWZfa2V5LmMgYi9uZXQva2V5L2FmX2tleS5jCmluZGV4IDliYmE3YWMuLjc0NzBlMzYgMTAwNjQ0Ci0tLSBhL25ldC9rZXkvYWZfa2V5LmMKKysrIGIvbmV0L2tleS9hZl9rZXkuYwpAQCAtMzAzMCw2ICszMDMwLDkgQEAKIAogc3RhdGljIGludCBwZmtleV9zZW5kX25vdGlmeShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IGttX2V2ZW50ICpjKQogeworCWlmIChhdG9taWNfcmVhZCgmcGZrZXlfc29ja3NfbnIpID09IDApCisJCXJldHVybiAwOworCiAJc3dpdGNoIChjLT5ldmVudCkgewogCWNhc2UgWEZSTV9NU0dfRVhQSVJFOgogCQlyZXR1cm4ga2V5X25vdGlmeV9zYV9leHBpcmUoeCwgYyk7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaCBiL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCmluZGV4IGM3MzE0YmYuLjAwNjQ4NmIgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCisrKyBiL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCkBAIC04OTksNyArODk5LDcgQEAKIAogCiAvKiBpZWVlODAyMTFfaW9jdGwuYyAqLwotaW50IGllZWU4MDIxMV9zZXRfZnJlcShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IGZyZXEpOworaW50IGllZWU4MDIxMV9zZXRfZnJlcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgZnJlcSk7CiAvKiBpZWVlODAyMTFfc3RhLmMgKi8KIHZvaWQgaWVlZTgwMjExX3N0YV90aW1lcih1bnNpZ25lZCBsb25nIGRhdGEpOwogdm9pZCBpZWVlODAyMTFfc3RhX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9rZXkuYyBiL25ldC9tYWM4MDIxMS9rZXkuYwppbmRleCAxNTBkNjZkLi4yMjBlODNiIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEva2V5LmMKKysrIGIvbmV0L21hYzgwMjExL2tleS5jCkBAIC0zODAsNiArMzgwLDE1IEBACiAJaWYgKCFrZXkpCiAJCXJldHVybjsKIAorCWlmICgha2V5LT5zZGF0YSkgeworCQkvKiBUaGUga2V5IGhhcyBub3QgYmVlbiBsaW5rZWQgeWV0LCBzaW1wbHkgZnJlZSBpdAorCQkgKiBhbmQgZG9uJ3QgT29wcyAqLworCQlpZiAoa2V5LT5jb25mLmFsZyA9PSBBTEdfQ0NNUCkKKwkJCWllZWU4MDIxMV9hZXNfa2V5X2ZyZWUoa2V5LT51LmNjbXAudGZtKTsKKwkJa2ZyZWUoa2V5KTsKKwkJcmV0dXJuOworCX0KKwogCXNwaW5fbG9ja19pcnFzYXZlKCZrZXktPnNkYXRhLT5sb2NhbC0+a2V5X2xvY2ssIGZsYWdzKTsKIAlfX2llZWU4MDIxMV9rZXlfZnJlZShrZXkpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmtleS0+c2RhdGEtPmxvY2FsLT5rZXlfbG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21haW4uYyBiL25ldC9tYWM4MDIxMS9tYWluLmMKaW5kZXggNWM4NzY0NS4uZGYwODM2ZiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL21haW4uYworKysgYi9uZXQvbWFjODAyMTEvbWFpbi5jCkBAIC01MTEsNiArNTExLDcgQEAKIAljYXNlIElFRUU4MDIxMV9JRl9UWVBFX1NUQToKIAljYXNlIElFRUU4MDIxMV9JRl9UWVBFX0lCU1M6CiAJCXNkYXRhLT51LnN0YS5zdGF0ZSA9IElFRUU4MDIxMV9ESVNBQkxFRDsKKwkJbWVtc2V0KHNkYXRhLT51LnN0YS5ic3NpZCwgMCwgRVRIX0FMRU4pOwogCQlkZWxfdGltZXJfc3luYygmc2RhdGEtPnUuc3RhLnRpbWVyKTsKIAkJLyoKIAkJICogV2hlbiB3ZSBnZXQgaGVyZSwgdGhlIGludGVyZmFjZSBpcyBtYXJrZWQgZG93bi4KQEAgLTUyOSw4ICs1MzAsNiBAQAogCQkJCWxvY2FsLT5zdGFfaHdfc2Nhbm5pbmcgPSAwOwogCQl9CiAKLQkJZmx1c2hfd29ya3F1ZXVlKGxvY2FsLT5ody53b3JrcXVldWUpOwotCiAJCXNkYXRhLT51LnN0YS5mbGFncyAmPSB+SUVFRTgwMjExX1NUQV9QUklWQUNZX0lOVk9LRUQ7CiAJCWtmcmVlKHNkYXRhLT51LnN0YS5leHRyYV9pZSk7CiAJCXNkYXRhLT51LnN0YS5leHRyYV9pZSA9IE5VTEw7CkBAIC01NTQsNiArNTUzLDggQEAKIAogCQlpZWVlODAyMTFfbGVkX3JhZGlvKGxvY2FsLCAwKTsKIAorCQlmbHVzaF93b3JrcXVldWUobG9jYWwtPmh3LndvcmtxdWV1ZSk7CisKIAkJdGFza2xldF9kaXNhYmxlKCZsb2NhbC0+dHhfcGVuZGluZ190YXNrbGV0KTsKIAkJdGFza2xldF9kaXNhYmxlKCZsb2NhbC0+dGFza2xldCk7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKaW5kZXggODQxMjc4Zi4uYjQwNDUzNyAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL21sbWUuYworKysgYi9uZXQvbWFjODAyMTEvbWxtZS5jCkBAIC00NCw3ICs0NCw3IEBACiAjZGVmaW5lIElFRUU4MDIxMV9SRVRSWV9BVVRIX0lOVEVSVkFMICgxICogSFopCiAjZGVmaW5lIElFRUU4MDIxMV9TQ0FOX0lOVEVSVkFMICgyICogSFopCiAjZGVmaW5lIElFRUU4MDIxMV9TQ0FOX0lOVEVSVkFMX1NMT1cgKDE1ICogSFopCi0jZGVmaW5lIElFRUU4MDIxMV9JQlNTX0pPSU5fVElNRU9VVCAoMjAgKiBIWikKKyNkZWZpbmUgSUVFRTgwMjExX0lCU1NfSk9JTl9USU1FT1VUICg3ICogSFopCiAKICNkZWZpbmUgSUVFRTgwMjExX1BST0JFX0RFTEFZIChIWiAvIDMzKQogI2RlZmluZSBJRUVFODAyMTFfQ0hBTk5FTF9USU1FIChIWiAvIDMzKQpAQCAtNTQ3LDE1ICs1NDcsMTQgQEAKIAkJCXNkYXRhLT5ic3NfY29uZi5odF9ic3NfY29uZiA9ICZjb25mLT5odF9ic3NfY29uZjsKIAkJfQogCi0JCW5ldGlmX2NhcnJpZXJfb24oZGV2KTsKIAkJaWZzdGEtPmZsYWdzIHw9IElFRUU4MDIxMV9TVEFfUFJFVl9CU1NJRF9TRVQ7CiAJCW1lbWNweShpZnN0YS0+cHJldl9ic3NpZCwgc2RhdGEtPnUuc3RhLmJzc2lkLCBFVEhfQUxFTik7CiAJCW1lbWNweSh3cnF1LmFwX2FkZHIuc2FfZGF0YSwgc2RhdGEtPnUuc3RhLmJzc2lkLCBFVEhfQUxFTik7CiAJCWllZWU4MDIxMV9zdGFfc2VuZF9hc3NvY2luZm8oZGV2LCBpZnN0YSk7CiAJfSBlbHNlIHsKKwkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAkJaWVlZTgwMjExX3N0YV90ZWFyX2Rvd25fQkFfc2Vzc2lvbnMoZGV2LCBpZnN0YS0+YnNzaWQpOwogCQlpZnN0YS0+ZmxhZ3MgJj0gfklFRUU4MDIxMV9TVEFfQVNTT0NJQVRFRDsKLQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAkJaWVlZTgwMjExX3Jlc2V0X2VycF9pbmZvKGRldik7CiAKIAkJc2RhdGEtPmJzc19jb25mLmFzc29jX2h0ID0gMDsKQEAgLTU2OSw2ICs1NjgsMTAgQEAKIAogCXNkYXRhLT5ic3NfY29uZi5hc3NvYyA9IGFzc29jOwogCWllZWU4MDIxMV9ic3NfaW5mb19jaGFuZ2Vfbm90aWZ5KHNkYXRhLCBjaGFuZ2VkKTsKKworCWlmIChhc3NvYykKKwkJbmV0aWZfY2Fycmllcl9vbihkZXYpOworCiAJd3JxdS5hcF9hZGRyLnNhX2ZhbWlseSA9IEFSUEhSRF9FVEhFUjsKIAl3aXJlbGVzc19zZW5kX2V2ZW50KGRldiwgU0lPQ0dJV0FQLCAmd3JxdSwgTlVMTCk7CiB9CkBAIC0yMzM2LDYgKzIzMzksNyBAQAogCXU4ICpwb3M7CiAJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGE7CiAJc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQ7CisJdW5pb24gaXdyZXFfZGF0YSB3cnF1OwogCiAJc2JhbmQgPSBsb2NhbC0+aHcud2lwaHktPmJhbmRzW2xvY2FsLT5ody5jb25mLmNoYW5uZWwtPmJhbmRdOwogCkBAIC0yMzU4LDEzICsyMzYyLDEwIEBACiAJc2RhdGEtPmRyb3BfdW5lbmNyeXB0ZWQgPSBic3MtPmNhcGFiaWxpdHkgJgogCQlXTEFOX0NBUEFCSUxJVFlfUFJJVkFDWSA/IDEgOiAwOwogCi0JcmVzID0gaWVlZTgwMjExX3NldF9mcmVxKGxvY2FsLCBic3MtPmZyZXEpOworCXJlcyA9IGllZWU4MDIxMV9zZXRfZnJlcShkZXYsIGJzcy0+ZnJlcSk7CiAKLQlpZiAobG9jYWwtPm9wZXJfY2hhbm5lbC0+ZmxhZ3MgJiBJRUVFODAyMTFfQ0hBTl9OT19JQlNTKSB7Ci0JCXByaW50ayhLRVJOX0RFQlVHICIlczogSUJTUyBub3QgYWxsb3dlZCBvbiBmcmVxdWVuY3kgIgotCQkgICAgICAgIiVkIE1IelxuIiwgZGV2LT5uYW1lLCBsb2NhbC0+b3Blcl9jaGFubmVsLT5jZW50ZXJfZnJlcSk7Ci0JCXJldHVybiAtMTsKLQl9CisJaWYgKHJlcykKKwkJcmV0dXJuIHJlczsKIAogCS8qIFNldCBiZWFjb24gdGVtcGxhdGUgKi8KIAlza2IgPSBkZXZfYWxsb2Nfc2tiKGxvY2FsLT5ody5leHRyYV90eF9oZWFkcm9vbSArIDQwMCk7CkBAIC0yNDc5LDYgKzI0ODAsMTAgQEAKIAlpZnN0YS0+c3RhdGUgPSBJRUVFODAyMTFfSUJTU19KT0lORUQ7CiAJbW9kX3RpbWVyKCZpZnN0YS0+dGltZXIsIGppZmZpZXMgKyBJRUVFODAyMTFfSUJTU19NRVJHRV9JTlRFUlZBTCk7CiAKKwltZW1zZXQoJndycXUsIDAsIHNpemVvZih3cnF1KSk7CisJbWVtY3B5KHdycXUuYXBfYWRkci5zYV9kYXRhLCBic3MtPmJzc2lkLCBFVEhfQUxFTik7CisJd2lyZWxlc3Nfc2VuZF9ldmVudChkZXYsIFNJT0NHSVdBUCwgJndycXUsIE5VTEwpOworCiAJcmV0dXJuIHJlczsKIH0KIApAQCAtMzQ4Niw3ICszNDkxLDcgQEAKIAlzcGluX3VubG9ja19iaCgmbG9jYWwtPnN0YV9ic3NfbG9jayk7CiAKIAlpZiAoc2VsZWN0ZWQpIHsKLQkJaWVlZTgwMjExX3NldF9mcmVxKGxvY2FsLCBzZWxlY3RlZC0+ZnJlcSk7CisJCWllZWU4MDIxMV9zZXRfZnJlcShkZXYsIHNlbGVjdGVkLT5mcmVxKTsKIAkJaWYgKCEoaWZzdGEtPmZsYWdzICYgSUVFRTgwMjExX1NUQV9TU0lEX1NFVCkpCiAJCQlpZWVlODAyMTFfc3RhX3NldF9zc2lkKGRldiwgc2VsZWN0ZWQtPnNzaWQsCiAJCQkJCSAgICAgICBzZWxlY3RlZC0+c3NpZF9sZW4pOwpAQCAtMzYwOSw4ICszNjE0LDEwIEBACiAJc3Bpbl91bmxvY2tfYmgoJmxvY2FsLT5zdGFfYnNzX2xvY2spOwogCiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0lCU1NfREVCVUcKLQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCi0JICAgICAgICIlc1xuIiwgcHJpbnRfbWFjKG1hYywgYnNzaWQpLCBwcmludF9tYWMobWFjMiwgaWZzdGEtPmJzc2lkKSk7CisJaWYgKGZvdW5kKQorCQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCisJCSAgICAgICAiJXNcbiIsIHByaW50X21hYyhtYWMsIGJzc2lkKSwKKwkJICAgICAgIHByaW50X21hYyhtYWMyLCBpZnN0YS0+YnNzaWQpKTsKICNlbmRpZiAvKiBDT05GSUdfTUFDODAyMTFfSUJTU19ERUJVRyAqLwogCWlmIChmb3VuZCAmJiBtZW1jbXAoaWZzdGEtPmJzc2lkLCBic3NpZCwgRVRIX0FMRU4pICE9IDAgJiYKIAkgICAgKGJzcyA9IGllZWU4MDIxMV9yeF9ic3NfZ2V0KGRldiwgYnNzaWQsCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWQuaCBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCmluZGV4IDA0YWZjMTMuLjRlYTdiOTcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCisrKyBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCkBAIC0xNDEsNyArMTQxLDYgQEAKICAqCXJhdGUgYmVoYXZpb3VyIHZhbHVlcyAobG93ZXIgbWVhbnMgd2Ugc2hvdWxkIHRydXN0IG1vcmUgd2hhdCB3ZSBsZWFybnQKICAqCWFib3V0IGJlaGF2aW91ciBvZiByYXRlcywgaGlnaGVyIG1lYW5zIHdlIHNob3VsZCB0cnVzdCBtb3JlIHRoZSBuYXR1cmFsCiAgKglvcmRlcmluZyBvZiByYXRlcykKLSAqIEBmYXN0X3N0YXJ0OiBpZiBZLCBwdXNoIGhpZ2ggcmF0ZXMgcmlnaHQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24KICAqLwogc3RydWN0IHJjX3BpZF9kZWJ1Z2ZzX2VudHJpZXMgewogCXN0cnVjdCBkZW50cnkgKmRpcjsKQEAgLTE1NCw3ICsxNTMsNiBAQAogCXN0cnVjdCBkZW50cnkgKnNoYXJwZW5fZmFjdG9yOwogCXN0cnVjdCBkZW50cnkgKnNoYXJwZW5fZHVyYXRpb247CiAJc3RydWN0IGRlbnRyeSAqbm9ybV9vZmZzZXQ7Ci0Jc3RydWN0IGRlbnRyeSAqZmFzdF9zdGFydDsKIH07CiAKIHZvaWQgcmF0ZV9jb250cm9sX3BpZF9ldmVudF90eF9zdGF0dXMoc3RydWN0IHJjX3BpZF9ldmVudF9idWZmZXIgKmJ1ZiwKQEAgLTI2Nyw5ICsyNjUsNiBAQAogCS8qIE5vcm1hbGl6YXRpb24gb2Zmc2V0LiAqLwogCXVuc2lnbmVkIGludCBub3JtX29mZnNldDsKIAotCS8qIEZhc3Qgc3RhcnN0IHBhcmFtZXRlci4gKi8KLQl1bnNpZ25lZCBpbnQgZmFzdF9zdGFydDsKLQogCS8qIFJhdGVzIGluZm9ybWF0aW9uLiAqLwogCXN0cnVjdCByY19waWRfcmF0ZWluZm8gKnJpbmZvOwogCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWRfYWxnby5jIGIvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkX2FsZ28uYwppbmRleCBhODQ5Yjc0Li5iY2QyN2MxIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWRfYWxnby5jCisrKyBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZF9hbGdvLmMKQEAgLTM5OCwxMyArMzk4LDI1IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAorCXBpbmZvLT50YXJnZXQgPSBSQ19QSURfVEFSR0VUX1BGOworCXBpbmZvLT5zYW1wbGluZ19wZXJpb2QgPSBSQ19QSURfSU5URVJWQUw7CisJcGluZm8tPmNvZWZmX3AgPSBSQ19QSURfQ09FRkZfUDsKKwlwaW5mby0+Y29lZmZfaSA9IFJDX1BJRF9DT0VGRl9JOworCXBpbmZvLT5jb2VmZl9kID0gUkNfUElEX0NPRUZGX0Q7CisJcGluZm8tPnNtb290aGluZ19zaGlmdCA9IFJDX1BJRF9TTU9PVEhJTkdfU0hJRlQ7CisJcGluZm8tPnNoYXJwZW5fZmFjdG9yID0gUkNfUElEX1NIQVJQRU5JTkdfRkFDVE9SOworCXBpbmZvLT5zaGFycGVuX2R1cmF0aW9uID0gUkNfUElEX1NIQVJQRU5JTkdfRFVSQVRJT047CisJcGluZm8tPm5vcm1fb2Zmc2V0ID0gUkNfUElEX05PUk1fT0ZGU0VUOworCXBpbmZvLT5yaW5mbyA9IHJpbmZvOworCXBpbmZvLT5vbGRyYXRlID0gMDsKKwogCS8qIFNvcnQgdGhlIHJhdGVzLiBUaGlzIGlzIG9wdGltaXplZCBmb3IgdGhlIG1vc3QgY29tbW9uIGNhc2UgKGkuZS4KIAkgKiBhbG1vc3Qtc29ydGVkIENDSytPRkRNIHJhdGVzKS4gS2luZCBvZiBidWJibGUtc29ydCB3aXRoIHJldmVyc2VkCiAJICogbWFwcGluZyB0b28uICovCiAJZm9yIChpID0gMDsgaSA8IHNiYW5kLT5uX2JpdHJhdGVzOyBpKyspIHsKIAkJcmluZm9baV0uaW5kZXggPSBpOwogCQlyaW5mb1tpXS5yZXZfaW5kZXggPSBpOwotCQlpZiAocGluZm8tPmZhc3Rfc3RhcnQpCisJCWlmIChSQ19QSURfRkFTVF9TVEFSVCkKIAkJCXJpbmZvW2ldLmRpZmYgPSAwOwogCQllbHNlCiAJCQlyaW5mb1tpXS5kaWZmID0gaSAqIHBpbmZvLT5ub3JtX29mZnNldDsKQEAgLTQyNSwxOSArNDM3LDYgQEAKIAkJCWJyZWFrOwogCX0KIAotCXBpbmZvLT50YXJnZXQgPSBSQ19QSURfVEFSR0VUX1BGOwotCXBpbmZvLT5zYW1wbGluZ19wZXJpb2QgPSBSQ19QSURfSU5URVJWQUw7Ci0JcGluZm8tPmNvZWZmX3AgPSBSQ19QSURfQ09FRkZfUDsKLQlwaW5mby0+Y29lZmZfaSA9IFJDX1BJRF9DT0VGRl9JOwotCXBpbmZvLT5jb2VmZl9kID0gUkNfUElEX0NPRUZGX0Q7Ci0JcGluZm8tPnNtb290aGluZ19zaGlmdCA9IFJDX1BJRF9TTU9PVEhJTkdfU0hJRlQ7Ci0JcGluZm8tPnNoYXJwZW5fZmFjdG9yID0gUkNfUElEX1NIQVJQRU5JTkdfRkFDVE9SOwotCXBpbmZvLT5zaGFycGVuX2R1cmF0aW9uID0gUkNfUElEX1NIQVJQRU5JTkdfRFVSQVRJT047Ci0JcGluZm8tPm5vcm1fb2Zmc2V0ID0gUkNfUElEX05PUk1fT0ZGU0VUOwotCXBpbmZvLT5mYXN0X3N0YXJ0ID0gUkNfUElEX0ZBU1RfU1RBUlQ7Ci0JcGluZm8tPnJpbmZvID0gcmluZm87Ci0JcGluZm8tPm9sZHJhdGUgPSAwOwotCiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlMKIAlkZSA9ICZwaW5mby0+ZGVudHJpZXM7CiAJZGUtPmRpciA9IGRlYnVnZnNfY3JlYXRlX2RpcigicmM4MDIxMV9waWQiLApAQCAtNDY1LDkgKzQ2NCw2IEBACiAJZGUtPm5vcm1fb2Zmc2V0ID0gZGVidWdmc19jcmVhdGVfdTMyKCJub3JtX29mZnNldCIsCiAJCQkJCSAgICAgU19JUlVTUiB8IFNfSVdVU1IsIGRlLT5kaXIsCiAJCQkJCSAgICAgJnBpbmZvLT5ub3JtX29mZnNldCk7Ci0JZGUtPmZhc3Rfc3RhcnQgPSBkZWJ1Z2ZzX2NyZWF0ZV9ib29sKCJmYXN0X3N0YXJ0IiwKLQkJCQkJICAgICBTX0lSVVNSIHwgU19JV1VTUiwgZGUtPmRpciwKLQkJCQkJICAgICAmcGluZm8tPmZhc3Rfc3RhcnQpOwogI2VuZGlmCiAKIAlyZXR1cm4gcGluZm87CkBAIC00NzksNyArNDc1LDYgQEAKICNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGUwogCXN0cnVjdCByY19waWRfZGVidWdmc19lbnRyaWVzICpkZSA9ICZwaW5mby0+ZGVudHJpZXM7CiAKLQlkZWJ1Z2ZzX3JlbW92ZShkZS0+ZmFzdF9zdGFydCk7CiAJZGVidWdmc19yZW1vdmUoZGUtPm5vcm1fb2Zmc2V0KTsKIAlkZWJ1Z2ZzX3JlbW92ZShkZS0+c2hhcnBlbl9kdXJhdGlvbik7CiAJZGVidWdmc19yZW1vdmUoZGUtPnNoYXJwZW5fZmFjdG9yKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90eC5jIGIvbmV0L21hYzgwMjExL3R4LmMKaW5kZXggMWQ3ZGQ1NC4uYzgwZDU4OSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3R4LmMKKysrIGIvbmV0L21hYzgwMjExL3R4LmMKQEAgLTExMzIsNyArMTEzMiw3IEBACiAJaWVlZTgwMjExX3R4X2hhbmRsZXIgKmhhbmRsZXI7CiAJc3RydWN0IGllZWU4MDIxMV90eF9kYXRhIHR4OwogCWllZWU4MDIxMV90eF9yZXN1bHQgcmVzID0gVFhfRFJPUCwgcmVzX3ByZXBhcmU7Ci0JaW50IHJldCwgaTsKKwlpbnQgcmV0LCBpLCByZXRyaWVzID0gMDsKIAogCVdBUk5fT04oX19pZWVlODAyMTFfcXVldWVfcGVuZGluZyhsb2NhbCwgY29udHJvbC0+cXVldWUpKTsKIApAQCAtMTIxNiw2ICsxMjE2LDEzIEBACiAJCWlmICghX19pZWVlODAyMTFfcXVldWVfc3RvcHBlZChsb2NhbCwgY29udHJvbC0+cXVldWUpKSB7CiAJCQljbGVhcl9iaXQoSUVFRTgwMjExX0xJTktfU1RBVEVfUEVORElORywKIAkJCQkgICZsb2NhbC0+c3RhdGVbY29udHJvbC0+cXVldWVdKTsKKwkJCXJldHJpZXMrKzsKKwkJCS8qCisJCQkgKiBEcml2ZXIgYnVnLCBpdCdzIHJlamVjdGluZyBwYWNrZXRzIGJ1dAorCQkJICogbm90IHN0b3BwaW5nIHF1ZXVlcy4KKwkJCSAqLworCQkJaWYgKFdBUk5fT05fT05DRShyZXRyaWVzID4gNSkpCisJCQkJZ290byBkcm9wOwogCQkJZ290byByZXRyeTsKIAkJfQogCQltZW1jcHkoJnN0b3JlLT5jb250cm9sLCBjb250cm9sLApAQCAtMTU2MiwxMyArMTU2OSwxMyBAQAogCSAqIGJlIGNsb25lZC4gVGhpcyBjb3VsZCBoYXBwZW4sIGUuZy4sIHdpdGggTGludXggYnJpZGdlIGNvZGUgcGFzc2luZwogCSAqIHVzIGJyb2FkY2FzdCBmcmFtZXMuICovCiAKLQlpZiAoaGVhZF9uZWVkID4gMCB8fCBza2JfaGVhZGVyX2Nsb25lZChza2IpKSB7CisJaWYgKGhlYWRfbmVlZCA+IDAgfHwgc2tiX2Nsb25lZChza2IpKSB7CiAjaWYgMAogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IG5lZWQgdG8gcmVhbGxvY2F0ZSBidWZmZXIgZm9yICVkIGJ5dGVzICIKIAkJICAgICAgICJvZiBoZWFkcm9vbVxuIiwgZGV2LT5uYW1lLCBoZWFkX25lZWQpOwogI2VuZGlmCiAKLQkJaWYgKHNrYl9oZWFkZXJfY2xvbmVkKHNrYikpCisJCWlmIChza2JfY2xvbmVkKHNrYikpCiAJCQlJODAyX0RFQlVHX0lOQyhsb2NhbC0+dHhfZXhwYW5kX3NrYl9oZWFkX2Nsb25lZCk7CiAJCWVsc2UKIAkJCUk4MDJfREVCVUdfSU5DKGxvY2FsLT50eF9leHBhbmRfc2tiX2hlYWQpOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3dleHQuYyBiL25ldC9tYWM4MDIxMS93ZXh0LmMKaW5kZXggODMxMWJiMi4uZTg0MDQyMSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3dleHQuYworKysgYi9uZXQvbWFjODAyMTEvd2V4dC5jCkBAIC05NSw2ICs5NSwxMyBAQAogCQkJfQogCQl9CiAKKwkJaWYgKGFsZyA9PSBBTEdfV0VQICYmCisJCQlrZXlfbGVuICE9IExFTl9XRVA0MCAmJiBrZXlfbGVuICE9IExFTl9XRVAxMDQpIHsKKwkJCWllZWU4MDIxMV9rZXlfZnJlZShrZXkpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0X3VubG9jazsKKwkJfQorCiAJCWllZWU4MDIxMV9rZXlfbGluayhrZXksIHNkYXRhLCBzdGEpOwogCiAJCWlmIChzZXRfdHhfa2V5IHx8ICghc3RhICYmICFzZGF0YS0+ZGVmYXVsdF9rZXkgJiYga2V5KSkKQEAgLTI5MCwxNCArMjk3LDIyIEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBpZWVlODAyMTFfc2V0X2ZyZXEoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBmcmVxTUh6KQoraW50IGllZWU4MDIxMV9zZXRfZnJlcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgZnJlcU1IeikKIHsKIAlpbnQgcmV0ID0gLUVJTlZBTDsKIAlzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW47CisJc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSB3ZGV2X3ByaXYoZGV2LT5pZWVlODAyMTFfcHRyKTsKKwlzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IElFRUU4MDIxMV9ERVZfVE9fU1VCX0lGKGRldik7CiAKIAljaGFuID0gaWVlZTgwMjExX2dldF9jaGFubmVsKGxvY2FsLT5ody53aXBoeSwgZnJlcU1Ieik7CiAKIAlpZiAoY2hhbiAmJiAhKGNoYW4tPmZsYWdzICYgSUVFRTgwMjExX0NIQU5fRElTQUJMRUQpKSB7CisJCWlmIChzZGF0YS0+dmlmLnR5cGUgPT0gSUVFRTgwMjExX0lGX1RZUEVfSUJTUyAmJgorCQkgICAgY2hhbi0+ZmxhZ3MgJiBJRUVFODAyMTFfQ0hBTl9OT19JQlNTKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IElCU1Mgbm90IGFsbG93ZWQgb24gZnJlcXVlbmN5ICIKKwkJCQkiJWQgTUh6XG4iLCBkZXYtPm5hbWUsIGNoYW4tPmNlbnRlcl9mcmVxKTsKKwkJCXJldHVybiByZXQ7CisJCX0KIAkJbG9jYWwtPm9wZXJfY2hhbm5lbCA9IGNoYW47CiAKIAkJaWYgKGxvY2FsLT5zdGFfc3dfc2Nhbm5pbmcgfHwgbG9jYWwtPnN0YV9od19zY2FubmluZykKQEAgLTMxNSw3ICszMzAsNiBAQAogCQkJCSAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sCiAJCQkJICAgc3RydWN0IGl3X2ZyZXEgKmZyZXEsIGNoYXIgKmV4dHJhKQogewotCXN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gd2Rldl9wcml2KGRldi0+aWVlZTgwMjExX3B0cik7CiAJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBJRUVFODAyMTFfREVWX1RPX1NVQl9JRihkZXYpOwogCiAJaWYgKHNkYXRhLT52aWYudHlwZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9TVEEpCkBAIC0zMjksMTQgKzM0MywxNCBAQAogCQkJCQlJRUVFODAyMTFfU1RBX0FVVE9fQ0hBTk5FTF9TRUw7CiAJCQlyZXR1cm4gMDsKIAkJfSBlbHNlCi0JCQlyZXR1cm4gaWVlZTgwMjExX3NldF9mcmVxKGxvY2FsLAorCQkJcmV0dXJuIGllZWU4MDIxMV9zZXRfZnJlcShkZXYsCiAJCQkJaWVlZTgwMjExX2NoYW5uZWxfdG9fZnJlcXVlbmN5KGZyZXEtPm0pKTsKIAl9IGVsc2UgewogCQlpbnQgaSwgZGl2ID0gMTAwMDAwMDsKIAkJZm9yIChpID0gMDsgaSA8IGZyZXEtPmU7IGkrKykKIAkJCWRpdiAvPSAxMDsKIAkJaWYgKGRpdiA+IDApCi0JCQlyZXR1cm4gaWVlZTgwMjExX3NldF9mcmVxKGxvY2FsLCBmcmVxLT5tIC8gZGl2KTsKKwkJCXJldHVybiBpZWVlODAyMTFfc2V0X2ZyZXEoZGV2LCBmcmVxLT5tIC8gZGl2KTsKIAkJZWxzZQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNDg5LDcgKzUwMyw4IEBACiAJc2RhdGEgPSBJRUVFODAyMTFfREVWX1RPX1NVQl9JRihkZXYpOwogCWlmIChzZGF0YS0+dmlmLnR5cGUgPT0gSUVFRTgwMjExX0lGX1RZUEVfU1RBIHx8CiAJICAgIHNkYXRhLT52aWYudHlwZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9JQlNTKSB7Ci0JCWlmIChzZGF0YS0+dS5zdGEuc3RhdGUgPT0gSUVFRTgwMjExX0FTU09DSUFURUQpIHsKKwkJaWYgKHNkYXRhLT51LnN0YS5zdGF0ZSA9PSBJRUVFODAyMTFfQVNTT0NJQVRFRCB8fAorCQkgICAgc2RhdGEtPnUuc3RhLnN0YXRlID09IElFRUU4MDIxMV9JQlNTX0pPSU5FRCkgewogCQkJYXBfYWRkci0+c2FfZmFtaWx5ID0gQVJQSFJEX0VUSEVSOwogCQkJbWVtY3B5KCZhcF9hZGRyLT5zYV9kYXRhLCBzZGF0YS0+dS5zdGEuYnNzaWQsIEVUSF9BTEVOKTsKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3dtZS5jIGIvbmV0L21hYzgwMjExL3dtZS5jCmluZGV4IGRjMTU5OGIuLjVkMDllODYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS93bWUuYworKysgYi9uZXQvbWFjODAyMTEvd21lLmMKQEAgLTMyMyw4ICszMjMsNyBAQAogCXN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gJmxvY2FsLT5odzsKIAlpbnQgcXVldWU7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihxLT5maWx0ZXJfbGlzdCk7Ci0JcS0+ZmlsdGVyX2xpc3QgPSBOVUxMOworCXRjZl9kZXN0cm95X2NoYWluKCZxLT5maWx0ZXJfbGlzdCk7CiAKIAlmb3IgKHF1ZXVlPTA7IHF1ZXVlIDwgaHctPnF1ZXVlczsgcXVldWUrKykgewogCQlza2JfcXVldWVfcHVyZ2UoJnEtPnJlcXVldWVkW3F1ZXVlXSk7CkBAIC02NzMsNyArNjcyLDcgQEAKICNpZmRlZiBDT05GSUdfTUFDODAyMTFfSFRfREVCVUcKIAkJCWlmIChuZXRfcmF0ZWxpbWl0KCkpCiAJCQkJcHJpbnRrKEtFUk5fREVCVUcgImFsbG9jYXRlZCBhZ2dyZWdhdGlvbiBxdWV1ZSIKLQkJCQkJIiAlZCB0aWQgJWQgYWRkciAlcyBwb29sPTB4JWxYIiwKKwkJCQkJIiAlZCB0aWQgJWQgYWRkciAlcyBwb29sPTB4JWxYXG4iLAogCQkJCQlpLCB0aWQsIHByaW50X21hYyhtYWMsIHN0YS0+YWRkciksCiAJCQkJCXEtPnFkaXNjX3Bvb2xbMF0pOwogI2VuZGlmIC8qIENPTkZJR19NQUM4MDIxMV9IVF9ERUJVRyAqLwpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jCmluZGV4IGM0YjE3OTkuLjY2MmMxY2MgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmMKQEAgLTE5Niw4ICsxOTYsNiBAQAogCWlmIChsNHByb3RvICYmIGw0cHJvdG8tPmRlc3Ryb3kpCiAJCWw0cHJvdG8tPmRlc3Ryb3koY3QpOwogCi0JbmZfY3RfZXh0X2Rlc3Ryb3koY3QpOwotCiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlzcGluX2xvY2tfYmgoJm5mX2Nvbm50cmFja19sb2NrKTsKQEAgLTUyMCw2ICs1MTgsNyBAQAogCiB2b2lkIG5mX2Nvbm50cmFja19mcmVlKHN0cnVjdCBuZl9jb25uICpjdCkKIHsKKwluZl9jdF9leHRfZGVzdHJveShjdCk7CiAJY2FsbF9yY3UoJmN0LT5yY3UsIG5mX2Nvbm50cmFja19mcmVlX3JjdSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChuZl9jb25udHJhY2tfZnJlZSk7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQuYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5jCmluZGV4IGJjYzE5ZmEuLjhhM2Y4YjMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5jCkBAIC01OSwxMiArNTksMTkgQEAKIAlpZiAoISpleHQpCiAJCXJldHVybiBOVUxMOwogCisJSU5JVF9SQ1VfSEVBRCgmKCpleHQpLT5yY3UpOwogCSgqZXh0KS0+b2Zmc2V0W2lkXSA9IG9mZjsKIAkoKmV4dCktPmxlbiA9IGxlbjsKIAogCXJldHVybiAodm9pZCAqKSgqZXh0KSArIG9mZjsKIH0KIAorc3RhdGljIHZvaWQgX19uZl9jdF9leHRfZnJlZV9yY3Uoc3RydWN0IHJjdV9oZWFkICpoZWFkKQoreworCXN0cnVjdCBuZl9jdF9leHQgKmV4dCA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3QgbmZfY3RfZXh0LCByY3UpOworCWtmcmVlKGV4dCk7Cit9CisKIHZvaWQgKl9fbmZfY3RfZXh0X2FkZChzdHJ1Y3QgbmZfY29ubiAqY3QsIGVudW0gbmZfY3RfZXh0X2lkIGlkLCBnZnBfdCBnZnApCiB7CiAJc3RydWN0IG5mX2N0X2V4dCAqbmV3OwpAQCAtMTA2LDcgKzExMyw3IEBACiAJCQkJCSh2b2lkICopY3QtPmV4dCArIGN0LT5leHQtPm9mZnNldFtpXSk7CiAJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJfQotCQlrZnJlZShjdC0+ZXh0KTsKKwkJY2FsbF9yY3UoJmN0LT5leHQtPnJjdSwgX19uZl9jdF9leHRfZnJlZV9yY3UpOwogCQljdC0+ZXh0ID0gbmV3OwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfaDMyM19tYWluLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19oMzIzX21haW4uYwppbmRleCA5NWRhMWEyLi4yZjgzYzE1IDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19oMzIzX21haW4uYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19oMzIzX21haW4uYwpAQCAtNjE5LDYgKzYxOSw3IEBACiBzdGF0aWMgc3RydWN0IG5mX2Nvbm50cmFja19oZWxwZXIgbmZfY29ubnRyYWNrX2hlbHBlcl9oMjQ1IF9fcmVhZF9tb3N0bHkgPSB7CiAJLm5hbWUJCQk9ICJILjI0NSIsCiAJLm1lCQkJPSBUSElTX01PRFVMRSwKKwkudHVwbGUuc3JjLmwzbnVtCT0gQUZfVU5TUEVDLAogCS50dXBsZS5kc3QucHJvdG9udW0JPSBJUFBST1RPX1VEUCwKIAkuaGVscAkJCT0gaDI0NV9oZWxwLAogCS5leHBlY3RfcG9saWN5CQk9ICZoMjQ1X2V4cF9wb2xpY3ksCkBAIC0xNzY1LDYgKzE3NjYsNyBAQAogCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9yYXNbMF0pOwogCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzFdKTsKIAluZl9jb25udHJhY2tfaGVscGVyX3VucmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVswXSk7CisJbmZfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX2gyNDUpOwogCWtmcmVlKGgzMjNfYnVmZmVyKTsKIAlwcl9kZWJ1ZygibmZfY3RfaDMyMzogZmluaVxuIik7CiB9CkBAIC0xNzc3LDI4ICsxNzc5LDM0IEBACiAJaDMyM19idWZmZXIgPSBrbWFsbG9jKDY1NTM2LCBHRlBfS0VSTkVMKTsKIAlpZiAoIWgzMjNfYnVmZmVyKQogCQlyZXR1cm4gLUVOT01FTTsKLQlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3E5MzFbMF0pOworCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfaDI0NSk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyMTsKLQlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3E5MzFbMV0pOworCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVswXSk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyMjsKLQlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3Jhc1swXSk7CisJcmV0ID0gbmZfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzFdKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnIzOwotCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcmFzWzFdKTsKKwlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3Jhc1swXSk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyNDsKKwlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3Jhc1sxXSk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZXJyNTsKIAlwcl9kZWJ1ZygibmZfY3RfaDMyMzogaW5pdCBzdWNjZXNzXG4iKTsKIAlyZXR1cm4gMDsKIAotZXJyNDoKK2VycjU6CiAJbmZfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3Jhc1swXSk7Ci1lcnIzOgorZXJyNDoKIAluZl9jb25udHJhY2tfaGVscGVyX3VucmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVsxXSk7Ci1lcnIyOgorZXJyMzoKIAluZl9jb25udHJhY2tfaGVscGVyX3VucmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVswXSk7CitlcnIyOgorCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9oMjQ1KTsKIGVycjE6CisJa2ZyZWUoaDMyM19idWZmZXIpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMKaW5kZXggYmE5NDAwNC4uZGQyOGZiMiAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMKKysrIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMKQEAgLTMzMSwxMiArMzMxLDEzIEBACiAKICAgIEkuICAgVXBwZXIgYm91bmQgZm9yIHZhbGlkIGRhdGE6CXNlcSA8PSBzZW5kZXIudGRfbWF4ZW5kCiAgICBJSS4gIExvd2VyIGJvdW5kIGZvciB2YWxpZCBkYXRhOglzZXEgKyBsZW4gPj0gc2VuZGVyLnRkX2VuZCAtIHJlY2VpdmVyLnRkX21heHdpbgotICAgSUlJLglVcHBlciBib3VuZCBmb3IgdmFsaWQgYWNrOiAgICAgIHNhY2sgPD0gcmVjZWl2ZXIudGRfZW5kCi0gICBJVi4JTG93ZXIgYm91bmQgZm9yIHZhbGlkIGFjazoJYWNrID49IHJlY2VpdmVyLnRkX2VuZCAtIE1BWEFDS1dJTkRPVworICAgSUlJLglVcHBlciBib3VuZCBmb3IgdmFsaWQgKHMpYWNrOiAgIHNhY2sgPD0gcmVjZWl2ZXIudGRfZW5kCisgICBJVi4JTG93ZXIgYm91bmQgZm9yIHZhbGlkIChzKWFjazoJc2FjayA+PSByZWNlaXZlci50ZF9lbmQgLSBNQVhBQ0tXSU5ET1cKIAotICAgd2hlcmUgc2FjayBpcyB0aGUgaGlnaGVzdCByaWdodCBlZGdlIG9mIHNhY2sgYmxvY2sgZm91bmQgaW4gdGhlIHBhY2tldC4KKyAgIHdoZXJlIHNhY2sgaXMgdGhlIGhpZ2hlc3QgcmlnaHQgZWRnZSBvZiBzYWNrIGJsb2NrIGZvdW5kIGluIHRoZSBwYWNrZXQKKyAgIG9yIGFjayBpbiB0aGUgY2FzZSBvZiBwYWNrZXQgd2l0aG91dCBTQUNLIG9wdGlvbi4KIAotICAgVGhlIHVwcGVyIGJvdW5kIGxpbWl0IGZvciBhIHZhbGlkIGFjayBpcyBub3QgaWdub3JlZCAtCisgICBUaGUgdXBwZXIgYm91bmQgbGltaXQgZm9yIGEgdmFsaWQgKHMpYWNrIGlzIG5vdCBpZ25vcmVkIC0KICAgIHdlIGRvZXNuJ3QgaGF2ZSB0byBkZWFsIHdpdGggZnJhZ21lbnRzLgogKi8KIApAQCAtNjA2LDEyICs2MDcsMTIgQEAKIAkJIGJlZm9yZShzZXEsIHNlbmRlci0+dGRfbWF4ZW5kICsgMSksCiAJCSBhZnRlcihlbmQsIHNlbmRlci0+dGRfZW5kIC0gcmVjZWl2ZXItPnRkX21heHdpbiAtIDEpLAogCQkgYmVmb3JlKHNhY2ssIHJlY2VpdmVyLT50ZF9lbmQgKyAxKSwKLQkJIGFmdGVyKGFjaywgcmVjZWl2ZXItPnRkX2VuZCAtIE1BWEFDS1dJTkRPVyhzZW5kZXIpKSk7CisJCSBhZnRlcihzYWNrLCByZWNlaXZlci0+dGRfZW5kIC0gTUFYQUNLV0lORE9XKHNlbmRlcikgLSAxKSk7CiAKIAlpZiAoYmVmb3JlKHNlcSwgc2VuZGVyLT50ZF9tYXhlbmQgKyAxKSAmJgogCSAgICBhZnRlcihlbmQsIHNlbmRlci0+dGRfZW5kIC0gcmVjZWl2ZXItPnRkX21heHdpbiAtIDEpICYmCiAJICAgIGJlZm9yZShzYWNrLCByZWNlaXZlci0+dGRfZW5kICsgMSkgJiYKLQkgICAgYWZ0ZXIoYWNrLCByZWNlaXZlci0+dGRfZW5kIC0gTUFYQUNLV0lORE9XKHNlbmRlcikpKSB7CisJICAgIGFmdGVyKHNhY2ssIHJlY2VpdmVyLT50ZF9lbmQgLSBNQVhBQ0tXSU5ET1coc2VuZGVyKSAtIDEpKSB7CiAJCS8qCiAJCSAqIFRha2UgaW50byBhY2NvdW50IHdpbmRvdyBzY2FsaW5nIChSRkMgMTMyMykuCiAJCSAqLwpAQCAtODQzLDkgKzg0NCwxNSBAQAogCQkJLyogQXR0ZW1wdCB0byByZW9wZW4gYSBjbG9zZWQvYWJvcnRlZCBjb25uZWN0aW9uLgogCQkJICogRGVsZXRlIHRoaXMgY29ubmVjdGlvbiBhbmQgbG9vayB1cCBhZ2Fpbi4gKi8KIAkJCXdyaXRlX3VubG9ja19iaCgmdGNwX2xvY2spOwotCQkJaWYgKGRlbF90aW1lcigmY3QtPnRpbWVvdXQpKQorCQkJLyogT25seSByZXBlYXQgaWYgd2UgY2FuIGFjdHVhbGx5IHJlbW92ZSB0aGUgdGltZXIuCisJCQkgKiBEZXN0cnVjdGlvbiBtYXkgYWxyZWFkeSBiZSBpbiBwcm9ncmVzcyBpbiBwcm9jZXNzCisJCQkgKiBjb250ZXh0IGFuZCB3ZSBtdXN0IGdpdmUgaXQgYSBjaGFuY2UgdG8gdGVybWluYXRlLgorCQkJICovCisJCQlpZiAoZGVsX3RpbWVyKCZjdC0+dGltZW91dCkpIHsKIAkJCQljdC0+dGltZW91dC5mdW5jdGlvbigodW5zaWduZWQgbG9uZyljdCk7Ci0JCQlyZXR1cm4gLU5GX1JFUEVBVDsKKwkJCQlyZXR1cm4gLU5GX1JFUEVBVDsKKwkJCX0KKwkJCXJldHVybiAtTkZfRFJPUDsKIAkJfQogCQkvKiBGYWxsIHRocm91Z2ggKi8KIAljYXNlIFRDUF9DT05OVFJBQ0tfSUdOT1JFOgpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9sb2cuYyBiL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMKaW5kZXggYmMxMWQ3MC4uOWZkYTZlZSAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9sb2cuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2xvZy5jCkBAIC05MiwxMCArOTIsNiBAQAogCQl2c25wcmludGYocHJlZml4LCBzaXplb2YocHJlZml4KSwgZm10LCBhcmdzKTsKIAkJdmFfZW5kKGFyZ3MpOwogCQlsb2dnZXItPmxvZ2ZuKHBmLCBob29rbnVtLCBza2IsIGluLCBvdXQsIGxvZ2luZm8sIHByZWZpeCk7Ci0JfSBlbHNlIGlmIChuZXRfcmF0ZWxpbWl0KCkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAibmZfbG9nX3BhY2tldDogY2FuXCd0IGxvZyBzaW5jZSAiCi0JCSAgICAgICAibm8gYmFja2VuZCBsb2dnaW5nIG1vZHVsZSBsb2FkZWQgaW4hIFBsZWFzZSBlaXRoZXIgIgotCQkgICAgICAgImxvYWQgb25lLCBvciBkaXNhYmxlIGxvZ2dpbmcgZXhwbGljaXRseVxuIik7CiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogfQpkaWZmIC0tZ2l0IGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX2NpcHNvX3Y0LmMgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfY2lwc29fdjQuYwppbmRleCBmZGMxNGEwLi45MDgwYzYxIDEwMDY0NAotLS0gYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfY2lwc29fdjQuYworKysgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfY2lwc29fdjQuYwpAQCAtNTg0LDEyICs1ODQsNyBAQAogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJZ2VubG1zZ19lbmQoYW5zX3NrYiwgZGF0YSk7Ci0KLQlyZXRfdmFsID0gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKLQlpZiAocmV0X3ZhbCAhPSAwKQotCQlnb3RvIGxpc3RfZmFpbHVyZTsKLQotCXJldHVybiAwOworCXJldHVybiBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwogCiBsaXN0X3JldHJ5OgogCS8qIFhYWCAtIHRoaXMgbGltaXQgaXMgYSBndWVzc3RpbWF0ZSAqLwpkaWZmIC0tZ2l0IGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX21nbXQuYyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9tZ210LmMKaW5kZXggMjJjMTkxMi4uNDRiZTVkNSAxMDA2NDQKLS0tIGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX21nbXQuYworKysgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfbWdtdC5jCkBAIC0zODYsMTEgKzM4Niw3IEBACiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlnZW5sbXNnX2VuZChhbnNfc2tiLCBkYXRhKTsKLQotCXJldF92YWwgPSBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwotCWlmIChyZXRfdmFsICE9IDApCi0JCWdvdG8gbGlzdGRlZl9mYWlsdXJlOwotCXJldHVybiAwOworCXJldHVybiBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwogCiBsaXN0ZGVmX2ZhaWx1cmVfbG9jazoKIAlyY3VfcmVhZF91bmxvY2soKTsKQEAgLTUwMSwxMSArNDk3LDcgQEAKIAkJZ290byB2ZXJzaW9uX2ZhaWx1cmU7CiAKIAlnZW5sbXNnX2VuZChhbnNfc2tiLCBkYXRhKTsKLQotCXJldF92YWwgPSBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwotCWlmIChyZXRfdmFsICE9IDApCi0JCWdvdG8gdmVyc2lvbl9mYWlsdXJlOwotCXJldHVybiAwOworCXJldHVybiBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwogCiB2ZXJzaW9uX2ZhaWx1cmU6CiAJa2ZyZWVfc2tiKGFuc19za2IpOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX3VubGFiZWxlZC5jIGIvbmV0L25ldGxhYmVsL25ldGxhYmVsX3VubGFiZWxlZC5jCmluZGV4IDAwOTlkYTUuLjU2ZjgwODcgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuYworKysgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfdW5sYWJlbGVkLmMKQEAgLTExMDcsMTEgKzExMDcsNyBAQAogCQlnb3RvIGxpc3RfZmFpbHVyZTsKIAogCWdlbmxtc2dfZW5kKGFuc19za2IsIGRhdGEpOwotCi0JcmV0X3ZhbCA9IGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7Ci0JaWYgKHJldF92YWwgIT0gMCkKLQkJZ290byBsaXN0X2ZhaWx1cmU7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7CiAKIGxpc3RfZmFpbHVyZToKIAlrZnJlZV9za2IoYW5zX3NrYik7CkBAIC0xNTM0LDcgKzE1MzAsNyBAQAogCQl9CiAJfQogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGFkZHI2LCAmaWZhY2UtPmFkZHI2X2xpc3QsIGxpc3QpIHsKLQkJaWYgKGFkZHI2LT52YWxpZCB8fCBpdGVyX2FkZHI2KysgPCBza2lwX2FkZHI2KQorCQlpZiAoIWFkZHI2LT52YWxpZCB8fCBpdGVyX2FkZHI2KysgPCBza2lwX2FkZHI2KQogCQkJY29udGludWU7CiAJCWlmIChuZXRsYmxfdW5sYWJlbF9zdGF0aWNsaXN0X2dlbihOTEJMX1VOTEFCRUxfQ19TVEFUSUNMSVNUREVGLAogCQkJCQkgICBpZmFjZSwKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCA5Yjk3ZjgwLi4zNDlhYmExIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC04ODYsNyArODg2LDcgQEAKIAkJcmV0dXJuIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwoc2ssIHNrYik7CiAKIAlpZiAoc2tfZmlsdGVyKHNrLCBza2IpKSB7Ci0JCWludCBlcnIgPSBza2ItPmxlbjsKKwkJZXJyID0gc2tiLT5sZW47CiAJCWtmcmVlX3NrYihza2IpOwogCQlzb2NrX3B1dChzayk7CiAJCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hdHRyLmMgYi9uZXQvbmV0bGluay9hdHRyLmMKaW5kZXggNDdiYmY0NS4uMmQxMDZjZiAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYXR0ci5jCisrKyBiL25ldC9uZXRsaW5rL2F0dHIuYwpAQCAtMTMyLDYgKzEzMiw3IEBACiAgKiBAbWF4dHlwZTogbWF4aW11bSBhdHRyaWJ1dGUgdHlwZSB0byBiZSBleHBlY3RlZAogICogQGhlYWQ6IGhlYWQgb2YgYXR0cmlidXRlIHN0cmVhbQogICogQGxlbjogbGVuZ3RoIG9mIGF0dHJpYnV0ZSBzdHJlYW0KKyAqIEBwb2xpY3k6IHZhbGlkYXRpb24gcG9saWN5CiAgKgogICogUGFyc2VzIGEgc3RyZWFtIG9mIGF0dHJpYnV0ZXMgYW5kIHN0b3JlcyBhIHBvaW50ZXIgdG8gZWFjaCBhdHRyaWJ1dGUgaW4KICAqIHRoZSB0YiBhcnJheSBhY2Nlc3NhYmxlIHZpYSB0aGUgYXR0cmlidXRlIHR5cGUuIEF0dHJpYnV0ZXMgd2l0aCBhIHR5cGUKQEAgLTE5NCw3ICsxOTUsNyBAQAogLyoqCiAgKiBubGFfc3RybGNweSAtIENvcHkgc3RyaW5nIGF0dHJpYnV0ZSBwYXlsb2FkIGludG8gYSBzaXplZCBidWZmZXIKICAqIEBkc3Q6IHdoZXJlIHRvIGNvcHkgdGhlIHN0cmluZyB0bwotICogQHNyYzogYXR0cmlidXRlIHRvIGNvcHkgdGhlIHN0cmluZyBmcm9tCisgKiBAbmxhOiBhdHRyaWJ1dGUgdG8gY29weSB0aGUgc3RyaW5nIGZyb20KICAqIEBkc3RzaXplOiBzaXplIG9mIGRlc3RpbmF0aW9uIGJ1ZmZlcgogICoKICAqIENvcGllcyBhdCBtb3N0IGRzdHNpemUgLSAxIGJ5dGVzIGludG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4KQEAgLTM0MCw5ICszNDEsOSBAQAogfQogCiAvKioKLSAqIG5sYV9yZXNlcnZlIC0gcmVzZXJ2ZSByb29tIGZvciBhdHRyaWJ1dGUgd2l0aG91dCBoZWFkZXIKKyAqIG5sYV9yZXNlcnZlX25vaGRyIC0gcmVzZXJ2ZSByb29tIGZvciBhdHRyaWJ1dGUgd2l0aG91dCBoZWFkZXIKICAqIEBza2I6IHNvY2tldCBidWZmZXIgdG8gcmVzZXJ2ZSByb29tIG9uCi0gKiBAbGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHBheWxvYWQKKyAqIEBhdHRybGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHBheWxvYWQKICAqCiAgKiBSZXNlcnZlcyByb29tIGZvciBhdHRyaWJ1dGUgcGF5bG9hZCB3aXRob3V0IGEgaGVhZGVyLgogICoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2dlbmV0bGluay5jIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKaW5kZXggZjVhYTIzYy4uM2UxMTkxYyAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKQEAgLTQ0NCw4ICs0NDQsMTEgQEAKIAkJaWYgKG9wcy0+ZHVtcGl0ID09IE5VTEwpCiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQkJcmV0dXJuIG5ldGxpbmtfZHVtcF9zdGFydChnZW5sX3NvY2ssIHNrYiwgbmxoLAotCQkJCQkgIG9wcy0+ZHVtcGl0LCBvcHMtPmRvbmUpOworCQlnZW5sX3VubG9jaygpOworCQllcnIgPSBuZXRsaW5rX2R1bXBfc3RhcnQoZ2VubF9zb2NrLCBza2IsIG5saCwKKwkJCQkJIG9wcy0+ZHVtcGl0LCBvcHMtPmRvbmUpOworCQlnZW5sX2xvY2soKTsKKwkJcmV0dXJuIGVycjsKIAl9CiAKIAlpZiAob3BzLT5kb2l0ID09IE5VTEwpCkBAIC02MDMsOSArNjA2LDYgQEAKIAlpbnQgY2hhaW5zX3RvX3NraXAgPSBjYi0+YXJnc1swXTsKIAlpbnQgZmFtc190b19za2lwID0gY2ItPmFyZ3NbMV07CiAKLQlpZiAoY2hhaW5zX3RvX3NraXAgIT0gMCkKLQkJZ2VubF9sb2NrKCk7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgR0VOTF9GQU1fVEFCX1NJWkU7IGkrKykgewogCQlpZiAoaSA8IGNoYWluc190b19za2lwKQogCQkJY29udGludWU7CkBAIC02MjMsOSArNjIzLDYgQEAKIAl9CiAKIGVycm91dDoKLQlpZiAoY2hhaW5zX3RvX3NraXAgIT0gMCkKLQkJZ2VubF91bmxvY2soKTsKLQogCWNiLT5hcmdzWzBdID0gaTsKIAljYi0+YXJnc1sxXSA9IG47CiAKQEAgLTc3MCw3ICs3NjcsNyBAQAogCiAJLyogd2UnbGwgYnVtcCB0aGUgZ3JvdXAgbnVtYmVyIHJpZ2h0IGFmdGVyd2FyZHMgKi8KIAlnZW5sX3NvY2sgPSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUoJmluaXRfbmV0LCBORVRMSU5LX0dFTkVSSUMsIDAsCi0JCQkJCSAgZ2VubF9yY3YsIE5VTEwsIFRISVNfTU9EVUxFKTsKKwkJCQkJICBnZW5sX3JjdiwgJmdlbmxfbXV0ZXgsIFRISVNfTU9EVUxFKTsKIAlpZiAoZ2VubF9zb2NrID09IE5VTEwpCiAJCXBhbmljKCJHRU5MOiBDYW5ub3QgaW5pdGlhbGl6ZSBnZW5lcmljIG5ldGxpbmtcbiIpOwogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvS2NvbmZpZyBiL25ldC9zY2hlZC9LY29uZmlnCmluZGV4IDgyYWRmZTYuLjk0MzdiMjcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9LY29uZmlnCisrKyBiL25ldC9zY2hlZC9LY29uZmlnCkBAIC0xMDYsMTcgKzEwNiw2IEBACiAJICBUbyBjb21waWxlIHRoaXMgY29kZSBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc2NoX3ByaW8uCiAKLWNvbmZpZyBORVRfU0NIX1JSCi0JdHJpc3RhdGUgIk11bHRpIEJhbmQgUm91bmQgUm9iaW4gUXVldWluZyAoUlIpIgotCXNlbGVjdCBORVRfU0NIX1BSSU8KLQktLS1oZWxwLS0tCi0JICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhbiBuLWJhbmQgcm91bmQgcm9iaW4gcGFja2V0Ci0JICBzY2hlZHVsZXIuCi0KLQkgIFRoZSBtb2R1bGUgdXNlcyBzY2hfcHJpbyBmb3IgaXRzIGZyYW1ld29yayBhbmQgaXMgYWxpYXNlZCBhcwotCSAgc2NoX3JyLCBzbyBpdCB3aWxsIGxvYWQgc2NoX3ByaW8sIGFsdGhvdWdoIGl0IGlzIHJlZmVycmVkCi0JICB0byB1c2luZyBzY2hfcnIuCi0KIGNvbmZpZyBORVRfU0NIX1JFRAogCXRyaXN0YXRlICJSYW5kb20gRWFybHkgRGV0ZWN0aW9uIChSRUQpIgogCS0tLWhlbHAtLS0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXBpLmMgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCmluZGV4IGM0MDc3M2MuLjEwZjAxYWQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXBpLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwpAQCAtMTI1MiwxMiArMTI1MiwxMiBAQAogCWtmcmVlKHRwKTsKIH0KIAotdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICpmbCkKK3ZvaWQgdGNmX2Rlc3Ryb3lfY2hhaW4oc3RydWN0IHRjZl9wcm90byAqKmZsKQogewogCXN0cnVjdCB0Y2ZfcHJvdG8gKnRwOwogCi0Jd2hpbGUgKCh0cCA9IGZsKSAhPSBOVUxMKSB7Ci0JCWZsID0gdHAtPm5leHQ7CisJd2hpbGUgKCh0cCA9ICpmbCkgIT0gTlVMTCkgeworCQkqZmwgPSB0cC0+bmV4dDsKIAkJdGNmX2Rlc3Ryb3kodHApOwogCX0KIH0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXRtLmMgYi9uZXQvc2NoZWQvc2NoX2F0bS5jCmluZGV4IDMzNTI3MzQuLmRiMGUyM2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXRtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9hdG0uYwpAQCAtMTYwLDcgKzE2MCw3IEBACiAJKnByZXYgPSBmbG93LT5uZXh0OwogCXByX2RlYnVnKCJhdG1fdGNfcHV0OiBxZGlzYyAlcFxuIiwgZmxvdy0+cSk7CiAJcWRpc2NfZGVzdHJveShmbG93LT5xKTsKLQl0Y2ZfZGVzdHJveV9jaGFpbihmbG93LT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJmZsb3ctPmZpbHRlcl9saXN0KTsKIAlpZiAoZmxvdy0+c29jaykgewogCQlwcl9kZWJ1ZygiYXRtX3RjX3B1dDogZl9jb3VudCAlZFxuIiwKIAkJCWZpbGVfY291bnQoZmxvdy0+c29jay0+ZmlsZSkpOwpAQCAtNTg2LDEwICs1ODYsMTEgQEAKIAlzdHJ1Y3QgYXRtX2Zsb3dfZGF0YSAqZmxvdzsKIAogCXByX2RlYnVnKCJhdG1fdGNfZGVzdHJveShzY2ggJXAsW3FkaXNjICVwXSlcbiIsIHNjaCwgcCk7CisJZm9yIChmbG93ID0gcC0+Zmxvd3M7IGZsb3c7IGZsb3cgPSBmbG93LT5uZXh0KQorCQl0Y2ZfZGVzdHJveV9jaGFpbigmZmxvdy0+ZmlsdGVyX2xpc3QpOworCiAJLyogcmFjZXMgPyAqLwogCXdoaWxlICgoZmxvdyA9IHAtPmZsb3dzKSkgewotCQl0Y2ZfZGVzdHJveV9jaGFpbihmbG93LT5maWx0ZXJfbGlzdCk7Ci0JCWZsb3ctPmZpbHRlcl9saXN0ID0gTlVMTDsKIAkJaWYgKGZsb3ctPnJlZiA+IDEpCiAJCQlwcmludGsoS0VSTl9FUlIgImF0bV9kZXN0cm95OiAlcC0+cmVmID0gJWRcbiIsIGZsb3csCiAJCQkgICAgICAgZmxvdy0+cmVmKTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2NicS5jCmluZGV4IDA5OTY5YzEuLjJhM2M5N2YgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2JxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTcwNCw3ICsxNzA0LDcgQEAKIAogCUJVR19UUkFQKCFjbC0+ZmlsdGVycyk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihjbC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOwogCXFkaXNjX2Rlc3Ryb3koY2wtPnEpOwogCXFkaXNjX3B1dF9ydGFiKGNsLT5SX3RhYik7CiAJZ2VuX2tpbGxfZXN0aW1hdG9yKCZjbC0+YnN0YXRzLCAmY2wtPnJhdGVfZXN0KTsKQEAgLTE3MjgsMTAgKzE3MjgsOCBAQAogCSAqIGJlIGJvdW5kIHRvIGNsYXNzZXMgd2hpY2ggaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbHJlYWR5LiAtLVRHUiAnMDQKIAkgKi8KIAlmb3IgKGggPSAwOyBoIDwgMTY7IGgrKykgewotCQlmb3IgKGNsID0gcS0+Y2xhc3Nlc1toXTsgY2w7IGNsID0gY2wtPm5leHQpIHsKLQkJCXRjZl9kZXN0cm95X2NoYWluKGNsLT5maWx0ZXJfbGlzdCk7Ci0JCQljbC0+ZmlsdGVyX2xpc3QgPSBOVUxMOwotCQl9CisJCWZvciAoY2wgPSBxLT5jbGFzc2VzW2hdOyBjbDsgY2wgPSBjbC0+bmV4dCkKKwkJCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOwogCX0KIAlmb3IgKGggPSAwOyBoIDwgMTY7IGgrKykgewogCQlzdHJ1Y3QgY2JxX2NsYXNzICpuZXh0OwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9kc21hcmsuYyBiL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKaW5kZXggNjQ0NjViYS4uYzRjMTMxNyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9kc21hcmsuYworKysgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCkBAIC00MTYsNyArNDE2LDcgQEAKIAogCXByX2RlYnVnKCJkc21hcmtfZGVzdHJveShzY2ggJXAsW3FkaXNjICVwXSlcbiIsIHNjaCwgcCk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihwLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnAtPmZpbHRlcl9saXN0KTsKIAlxZGlzY19kZXN0cm95KHAtPnEpOwogCWtmcmVlKHAtPm1hc2spOwogfQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwppbmRleCBkMzU1ZTVlLi4xM2FmYTcyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYworKysgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwpAQCAtNDY4LDcgKzQ2OCw3IEBACiAKIAlyZXR1cm4gc2NoOwogZXJyb3V0OgotCXJldHVybiBFUlJfUFRSKC1lcnIpOworCXJldHVybiBFUlJfUFRSKGVycik7CiB9CiAKIHN0cnVjdCBRZGlzYyAqIHFkaXNjX2NyZWF0ZV9kZmx0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBRZGlzY19vcHMgKm9wcywKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaGZzYy5jIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKaW5kZXggZmRmYWEzZi4uZTgxN2FhMCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9oZnNjLmMKQEAgLTExMjMsNyArMTEyMyw3IEBACiB7CiAJc3RydWN0IGhmc2Nfc2NoZWQgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihjbC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOwogCXFkaXNjX2Rlc3Ryb3koY2wtPnFkaXNjKTsKIAlnZW5fa2lsbF9lc3RpbWF0b3IoJmNsLT5ic3RhdHMsICZjbC0+cmF0ZV9lc3QpOwogCWlmIChjbCAhPSAmcS0+cm9vdCkKQEAgLTE1NDEsNiArMTU0MSwxMCBAQAogCXVuc2lnbmVkIGludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IEhGU0NfSFNJWkU7IGkrKykgeworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNsLCAmcS0+Y2xoYXNoW2ldLCBobGlzdCkKKwkJCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgSEZTQ19IU0laRTsgaSsrKSB7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbCwgbmV4dCwgJnEtPmNsaGFzaFtpXSwgaGxpc3QpCiAJCQloZnNjX2Rlc3Ryb3lfY2xhc3Moc2NoLCBjbCk7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9odGIuYyBiL25ldC9zY2hlZC9zY2hfaHRiLmMKaW5kZXggNWJjMWVkNC4uM2ZiNThmNCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9odGIuYworKysgYi9uZXQvc2NoZWQvc2NoX2h0Yi5jCkBAIC0yOCw2ICsyOCw3IEBACiAgKiAkSWQ6IHNjaF9odGIuYyx2IDEuMjUgMjAwMy8xMi8wNyAxMTowODoyNSBkZXZpayBFeHAgZGV2aWsgJAogICovCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpAQCAtNTMsMTMgKzU0LDE3IEBACiAqLwogCiAjZGVmaW5lIEhUQl9IU0laRSAxNgkJLyogY2xhc3NpZCBoYXNoIHNpemUgKi8KLSNkZWZpbmUgSFRCX0hZU1RFUkVTSVMgMQkvKiB3aGV0aGVyIHRvIHVzZSBtb2RlIGh5c3RlcmVzaXMgZm9yIHNwZWVkdXAgKi8KK3N0YXRpYyBpbnQgaHRiX2h5c3RlcmVzaXMgX19yZWFkX21vc3RseSA9IDA7IC8qIHdoZXRoZXIgdG8gdXNlIG1vZGUgaHlzdGVyZXNpcyBmb3Igc3BlZWR1cCAqLwogI2RlZmluZSBIVEJfVkVSIDB4MzAwMTEJCS8qIG1ham9yIG11c3QgYmUgbWF0Y2hlZCB3aXRoIG51bWJlciBzdXBsaWVkIGJ5IFRDIGFzIHZlcnNpb24gKi8KIAogI2lmIEhUQl9WRVIgPj4gMTYgIT0gVENfSFRCX1BST1RPVkVSCiAjZXJyb3IgIk1pc21hdGNoZWQgc2NoX2h0Yi5jIGFuZCBwa3Rfc2NoLmgiCiAjZW5kaWYKIAorLyogTW9kdWxlIHBhcmFtZXRlciBhbmQgc3lzZnMgZXhwb3J0ICovCittb2R1bGVfcGFyYW0gICAgKGh0Yl9oeXN0ZXJlc2lzLCBpbnQsIDA2NDApOworTU9EVUxFX1BBUk1fREVTQyhodGJfaHlzdGVyZXNpcywgIkh5c3RlcmVzaXMgbW9kZSwgbGVzcyBDUFUgbG9hZCwgbGVzcyBhY2N1cmF0ZSIpOworCiAvKiB1c2VkIGludGVybmFseSB0byBrZWVwIHN0YXR1cyBvZiBzaW5nbGUgY2xhc3MgKi8KIGVudW0gaHRiX2Ntb2RlIHsKIAlIVEJfQ0FOVF9TRU5ELAkJLyogY2xhc3MgY2FuJ3Qgc2VuZCBhbmQgY2FuJ3QgYm9ycm93ICovCkBAIC00NjIsMTkgKzQ2NywyMSBAQAogCQlodGJfcmVtb3ZlX2NsYXNzX2Zyb21fcm93KHEsIGNsLCBtYXNrKTsKIH0KIAotI2lmIEhUQl9IWVNURVJFU0lTCiBzdGF0aWMgaW5saW5lIGxvbmcgaHRiX2xvd2F0ZXIoY29uc3Qgc3RydWN0IGh0Yl9jbGFzcyAqY2wpCiB7Ci0JcmV0dXJuIGNsLT5jbW9kZSAhPSBIVEJfQ0FOVF9TRU5EID8gLWNsLT5jYnVmZmVyIDogMDsKKwlpZiAoaHRiX2h5c3RlcmVzaXMpCisJCXJldHVybiBjbC0+Y21vZGUgIT0gSFRCX0NBTlRfU0VORCA/IC1jbC0+Y2J1ZmZlciA6IDA7CisJZWxzZQorCQlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgbG9uZyBodGJfaGl3YXRlcihjb25zdCBzdHJ1Y3QgaHRiX2NsYXNzICpjbCkKIHsKLQlyZXR1cm4gY2wtPmNtb2RlID09IEhUQl9DQU5fU0VORCA/IC1jbC0+YnVmZmVyIDogMDsKKwlpZiAoaHRiX2h5c3RlcmVzaXMpCisJCXJldHVybiBjbC0+Y21vZGUgPT0gSFRCX0NBTl9TRU5EID8gLWNsLT5idWZmZXIgOiAwOworCWVsc2UKKwkJcmV0dXJuIDA7CiB9Ci0jZWxzZQotI2RlZmluZSBodGJfbG93YXRlcihjbCkJKDApCi0jZGVmaW5lIGh0Yl9oaXdhdGVyKGNsKQkoMCkKLSNlbmRpZgorCiAKIC8qKgogICogaHRiX2NsYXNzX21vZGUgLSBjb21wdXRlcyBhbmQgcmV0dXJucyBjdXJyZW50IGNsYXNzIG1vZGUKQEAgLTEyMzEsNyArMTIzOCw3IEBACiAJcWRpc2NfcHV0X3J0YWIoY2wtPnJhdGUpOwogCXFkaXNjX3B1dF9ydGFiKGNsLT5jZWlsKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKGNsLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJmNsLT5maWx0ZXJfbGlzdCk7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmNsLT5jaGlsZHJlbikpCiAJCWh0Yl9kZXN0cm95X2NsYXNzKHNjaCwgbGlzdF9lbnRyeShjbC0+Y2hpbGRyZW4ubmV4dCwKQEAgLTEyNjAsNyArMTI2Nyw3IEBACiAJICAgYW5kIHN1cnByaXNpbmdseSBpdCB3b3JrZWQgaW4gMi40LiBCdXQgaXQgbXVzdCBwcmVjZWRlIGl0CiAJICAgYmVjYXVzZSBmaWx0ZXIgbmVlZCBpdHMgdGFyZ2V0IGNsYXNzIGFsaXZlIHRvIGJlIGFibGUgdG8gY2FsbAogCSAgIHVuYmluZF9maWx0ZXIgb24gaXQgKHdpdGhvdXQgT29wcykuICovCi0JdGNmX2Rlc3Ryb3lfY2hhaW4ocS0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZxLT5maWx0ZXJfbGlzdCk7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnEtPnJvb3QpKQogCQlodGJfZGVzdHJveV9jbGFzcyhzY2gsIGxpc3RfZW50cnkocS0+cm9vdC5uZXh0LApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9pbmdyZXNzLmMgYi9uZXQvc2NoZWQvc2NoX2luZ3Jlc3MuYwppbmRleCAyNzRiMWRkLi45NTZjODBhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2luZ3Jlc3MuYworKysgYi9uZXQvc2NoZWQvc2NoX2luZ3Jlc3MuYwpAQCAtMTA0LDcgKzEwNCw3IEBACiB7CiAJc3RydWN0IGluZ3Jlc3NfcWRpc2NfZGF0YSAqcCA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHAtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmcC0+ZmlsdGVyX2xpc3QpOwogfQogCiBzdGF0aWMgaW50IGluZ3Jlc3NfZHVtcChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcHJpby5jIGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKaW5kZXggNGFhMmI0NS4uNTUzMmYxMCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9wcmlvLmMKQEAgLTIxOSw3ICsyMTksNyBAQAogCWludCBwcmlvOwogCXN0cnVjdCBwcmlvX3NjaGVkX2RhdGEgKnEgPSBxZGlzY19wcml2KHNjaCk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihxLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnEtPmZpbHRlcl9saXN0KTsKIAlmb3IgKHByaW89MDsgcHJpbzxxLT5iYW5kczsgcHJpbysrKQogCQlxZGlzY19kZXN0cm95KHEtPnF1ZXVlc1twcmlvXSk7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3NmcS5jIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwppbmRleCBmMDQ2M2Q3Li42YTk3YWZiIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3NmcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKQEAgLTUyMCw3ICs1MjAsNyBAQAogewogCXN0cnVjdCBzZnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHEtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmcS0+ZmlsdGVyX2xpc3QpOwogCXEtPnBlcnR1cmJfcGVyaW9kID0gMDsKIAlkZWxfdGltZXJfc3luYygmcS0+cGVydHVyYl90aW1lcik7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCmluZGV4IDUzMjYzNDguLjAyNGMzZWIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC00NzQsNiArNDc0LDE1IEBACiB2b2lkIHNjdHBfYXNzb2Nfc2V0X3ByaW1hcnkoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkgICAgc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQpCiB7CisJaW50IGNoYW5nZW92ZXIgPSAwOworCisJLyogaXQncyBhIGNoYW5nZW92ZXIgb25seSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBwcmltYXJ5IHBhdGgKKwkgKiB0aGF0IHdlIGFyZSBjaGFuZ2luZworCSAqLworCWlmIChhc29jLT5wZWVyLnByaW1hcnlfcGF0aCAhPSBOVUxMICYmCisJICAgIGFzb2MtPnBlZXIucHJpbWFyeV9wYXRoICE9IHRyYW5zcG9ydCkKKwkJY2hhbmdlb3ZlciA9IDEgOworCiAJYXNvYy0+cGVlci5wcmltYXJ5X3BhdGggPSB0cmFuc3BvcnQ7CiAKIAkvKiBTZXQgYSBkZWZhdWx0IG1zZ19uYW1lIGZvciBldmVudHMuICovCkBAIC00OTksMTIgKzUwOCwxMiBAQAogCSAqIGRvdWJsZSBzd2l0Y2ggdG8gdGhlIHNhbWUgZGVzdGluYXRpb24gYWRkcmVzcy4KIAkgKi8KIAlpZiAodHJhbnNwb3J0LT5jYWNjLmNoYW5nZW92ZXJfYWN0aXZlKQotCQl0cmFuc3BvcnQtPmNhY2MuY3ljbGluZ19jaGFuZ2VvdmVyID0gMTsKKwkJdHJhbnNwb3J0LT5jYWNjLmN5Y2xpbmdfY2hhbmdlb3ZlciA9IGNoYW5nZW92ZXI7CiAKIAkvKiAyKSBUaGUgc2VuZGVyIE1VU1Qgc2V0IENIQU5HRU9WRVJfQUNUSVZFIHRvIGluZGljYXRlIHRoYXQKIAkgKiBhIGNoYW5nZW92ZXIgaGFzIG9jY3VycmVkLgogCSAqLwotCXRyYW5zcG9ydC0+Y2FjYy5jaGFuZ2VvdmVyX2FjdGl2ZSA9IDE7CisJdHJhbnNwb3J0LT5jYWNjLmNoYW5nZW92ZXJfYWN0aXZlID0gY2hhbmdlb3ZlcjsKIAogCS8qIDMpIFRoZSBzZW5kZXIgTVVTVCBzdG9yZSB0aGUgbmV4dCBUU04gdG8gYmUgc2VudCBpbgogCSAqIG5leHRfdHNuX2F0X2NoYW5nZS4KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb3RvY29sLmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IGI0MzVhMTkuLjkyNThkZmUgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwpAQCAtMTA4LDE0ICsxMDgsMjMgQEAKIAl9CiAKIAlpZiAoc2N0cF9zbm1wX3Byb2NfaW5pdCgpKQotCQlnb3RvIG91dF9ub21lbTsKKwkJZ290byBvdXRfc25tcF9wcm9jX2luaXQ7CiAJaWYgKHNjdHBfZXBzX3Byb2NfaW5pdCgpKQotCQlnb3RvIG91dF9ub21lbTsKKwkJZ290byBvdXRfZXBzX3Byb2NfaW5pdDsKIAlpZiAoc2N0cF9hc3NvY3NfcHJvY19pbml0KCkpCi0JCWdvdG8gb3V0X25vbWVtOworCQlnb3RvIG91dF9hc3NvY3NfcHJvY19pbml0OwogCiAJcmV0dXJuIDA7CiAKK291dF9hc3NvY3NfcHJvY19pbml0OgorCXNjdHBfZXBzX3Byb2NfZXhpdCgpOworb3V0X2Vwc19wcm9jX2luaXQ6CisJc2N0cF9zbm1wX3Byb2NfZXhpdCgpOworb3V0X3NubXBfcHJvY19pbml0OgorCWlmIChwcm9jX25ldF9zY3RwKSB7CisJCXByb2NfbmV0X3NjdHAgPSBOVUxMOworCQlyZW1vdmVfcHJvY19lbnRyeSgic2N0cCIsIGluaXRfbmV0LnByb2NfbmV0KTsKKwl9CiBvdXRfbm9tZW06CiAJcmV0dXJuIC1FTk9NRU07CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCmluZGV4IDBjOWQ1YTYuLmZjZGI0NWQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCisrKyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCkBAIC01ODk5LDEyICs1ODk5LDYgQEAKIAkJcmV0dXJuIFNDVFBfSUVSUk9SX05PX0RBVEE7CiAJfQogCi0JLyogSWYgZGVmaW5hdGVseSBhY2NlcHRpbmcgdGhlIERBVEEgY2h1bmssIHJlY29yZCBpdHMgVFNOLCBvdGhlcndpc2UKLQkgKiB3YWl0IGZvciByZW5lZ2UgcHJvY2Vzc2luZy4KLQkgKi8KLQlpZiAoU0NUUF9DTURfQ0hVTktfVUxQID09IGRlbGl2ZXIpCi0JCXNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfUkVQT1JUX1RTTiwgU0NUUF9VMzIodHNuKSk7Ci0KIAljaHVuay0+ZGF0YV9hY2NlcHRlZCA9IDE7CiAKIAkvKiBOb3RlOiBTb21lIGNodW5rcyBtYXkgZ2V0IG92ZXJjb3VudGVkIChpZiB3ZSBkcm9wKSBvciBvdmVyY291bnRlZApAQCAtNTkyNCw2ICs1OTE4LDkgQEAKIAkgKiBhbmQgZGlzY2FyZCB0aGUgREFUQSBjaHVuay4KIAkgKi8KIAlpZiAobnRvaHMoZGF0YV9oZHItPnN0cmVhbSkgPj0gYXNvYy0+Yy5zaW5pdF9tYXhfaW5zdHJlYW1zKSB7CisJCS8qIE1hcmsgdHNuIGFzIHJlY2VpdmVkIGV2ZW4gdGhvdWdoIHdlIGRyb3AgaXQgKi8KKwkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9SRVBPUlRfVFNOLCBTQ1RQX1UzMih0c24pKTsKKwogCQllcnIgPSBzY3RwX21ha2Vfb3BfZXJyb3IoYXNvYywgY2h1bmssIFNDVFBfRVJST1JfSU5WX1NUUk0sCiAJCQkJCSAmZGF0YV9oZHItPnN0cmVhbSwKIAkJCQkJIHNpemVvZihkYXRhX2hkci0+c3RyZWFtKSk7CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IGU3ZTNiYWYuLjBkYmNkZTYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC00NDAxLDcgKzQ0MDEsOSBAQAogCWlmIChjb3B5X2Zyb21fdXNlcigmZ2V0YWRkcnMsIG9wdHZhbCwgbGVuKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKLQlpZiAoZ2V0YWRkcnMuYWRkcl9udW0gPD0gMCkgcmV0dXJuIC1FSU5WQUw7CisJaWYgKGdldGFkZHJzLmFkZHJfbnVtIDw9IDAgfHwKKwkgICAgZ2V0YWRkcnMuYWRkcl9udW0gPj0gKElOVF9NQVggLyBzaXplb2YodW5pb24gc2N0cF9hZGRyKSkpCisJCXJldHVybiAtRUlOVkFMOwogCS8qCiAJICogIEZvciBVRFAtc3R5bGUgc29ja2V0cywgaWQgc3BlY2lmaWVzIHRoZSBhc3NvY2lhdGlvbiB0byBxdWVyeS4KIAkgKiAgSWYgdGhlIGlkIGZpZWxkIGlzIHNldCB0byB0aGUgdmFsdWUgJzAnIHRoZW4gdGhlIGxvY2FsbHkgYm91bmQKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3VscGV2ZW50LmMgYi9uZXQvc2N0cC91bHBldmVudC5jCmluZGV4IGNlNmNkYTYuLmExZjY1NGEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3VscGV2ZW50LmMKKysrIGIvbmV0L3NjdHAvdWxwZXZlbnQuYwpAQCAtNzEwLDYgKzcxMCwxMSBAQAogCWlmICghc2tiKQogCQlnb3RvIGZhaWw7CiAKKwkvKiBOb3cgdGhhdCBhbGwgbWVtb3J5IGFsbG9jYXRpb25zIGZvciB0aGlzIGNodW5rIHN1Y2NlZWRlZCwgd2UKKwkgKiBjYW4gbWFyayBpdCBhcyByZWNlaXZlZCBzbyB0aGUgdHNuX21hcCBpcyB1cGRhdGVkIGNvcnJlY3RseS4KKwkgKi8KKwlzY3RwX3Rzbm1hcF9tYXJrKCZhc29jLT5wZWVyLnRzbl9tYXAsIG50b2hsKGNodW5rLT5zdWJoLmRhdGFfaGRyLT50c24pKTsKKwogCS8qIEZpcnN0IGNhbGN1bGF0ZSB0aGUgcGFkZGluZywgc28gd2UgZG9uJ3QgaW5hZHZlcnRlbnRseQogCSAqIHBhc3MgdXAgdGhlIHdyb25nIGxlbmd0aCB0byB0aGUgdXNlci4KIAkgKgpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jCmluZGV4IDU5MDVkNTYuLjgxYWUzZDYgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvYXV0aF9nc3Mvc3ZjYXV0aF9nc3MuYworKysgYi9uZXQvc3VucnBjL2F1dGhfZ3NzL3N2Y2F1dGhfZ3NzLmMKQEAgLTExNDQsMjAgKzExNDQsMjAgQEAKIAkJY2FzZSBSUENfR1NTX1NWQ19OT05FOgogCQkJYnJlYWs7CiAJCWNhc2UgUlBDX0dTU19TVkNfSU5URUdSSVRZOgorCQkJLyogcGxhY2Vob2xkZXJzIGZvciBsZW5ndGggYW5kIHNlcS4gbnVtYmVyOiAqLworCQkJc3ZjX3B1dG5sKHJlc3YsIDApOworCQkJc3ZjX3B1dG5sKHJlc3YsIDApOwogCQkJaWYgKHVud3JhcF9pbnRlZ19kYXRhKCZycXN0cC0+cnFfYXJnLAogCQkJCQlnYy0+Z2Nfc2VxLCByc2NpLT5tZWNoY3R4KSkKIAkJCQlnb3RvIGdhcmJhZ2VfYXJnczsKKwkJCWJyZWFrOworCQljYXNlIFJQQ19HU1NfU1ZDX1BSSVZBQ1k6CiAJCQkvKiBwbGFjZWhvbGRlcnMgZm9yIGxlbmd0aCBhbmQgc2VxLiBudW1iZXI6ICovCiAJCQlzdmNfcHV0bmwocmVzdiwgMCk7CiAJCQlzdmNfcHV0bmwocmVzdiwgMCk7Ci0JCQlicmVhazsKLQkJY2FzZSBSUENfR1NTX1NWQ19QUklWQUNZOgogCQkJaWYgKHVud3JhcF9wcml2X2RhdGEocnFzdHAsICZycXN0cC0+cnFfYXJnLAogCQkJCQlnYy0+Z2Nfc2VxLCByc2NpLT5tZWNoY3R4KSkKIAkJCQlnb3RvIGdhcmJhZ2VfYXJnczsKLQkJCS8qIHBsYWNlaG9sZGVycyBmb3IgbGVuZ3RoIGFuZCBzZXEuIG51bWJlcjogKi8KLQkJCXN2Y19wdXRubChyZXN2LCAwKTsKLQkJCXN2Y19wdXRubChyZXN2LCAwKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZ290byBhdXRoX2VycjsKQEAgLTExNzAsOCArMTE3MCw2IEBACiAJCWdvdG8gb3V0OwogCX0KIGdhcmJhZ2VfYXJnczoKLQkvKiBSZXN0b3JlIHdyaXRlIHBvaW50ZXIgdG8gaXRzIG9yaWdpbmFsIHZhbHVlOiAqLwotCXhkcl9yZXNzaXplX2NoZWNrKHJxc3RwLCByZWplY3Rfc3RhdCk7CiAJcmV0ID0gU1ZDX0dBUkJBR0U7CiAJZ290byBvdXQ7CiBhdXRoX2VycjoKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvcnBjYl9jbG50LmMgYi9uZXQvc3VucnBjL3JwY2JfY2xudC5jCmluZGV4IDA1MTc5NjcuLmU2ZmIyMWIgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvcnBjYl9jbG50LmMKKysrIGIvbmV0L3N1bnJwYy9ycGNiX2NsbnQuYwpAQCAtMjQzLDEwICsyNDMsMTAgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHJwY2JfZ2V0cG9ydF9zeW5jKTsKIAotc3RhdGljIHN0cnVjdCBycGNfdGFzayAqcnBjYl9jYWxsX2FzeW5jKHN0cnVjdCBycGNfY2xudCAqcnBjYl9jbG50LCBzdHJ1Y3QgcnBjYmluZF9hcmdzICptYXAsIGludCB2ZXJzaW9uKQorc3RhdGljIHN0cnVjdCBycGNfdGFzayAqcnBjYl9jYWxsX2FzeW5jKHN0cnVjdCBycGNfY2xudCAqcnBjYl9jbG50LCBzdHJ1Y3QgcnBjYmluZF9hcmdzICptYXAsIHN0cnVjdCBycGNfcHJvY2luZm8gKnByb2MpCiB7CiAJc3RydWN0IHJwY19tZXNzYWdlIG1zZyA9IHsKLQkJLnJwY19wcm9jID0gcnBjYl9uZXh0X3ZlcnNpb25bdmVyc2lvbl0ucnBjX3Byb2MsCisJCS5ycGNfcHJvYyA9IHByb2MsCiAJCS5ycGNfYXJncCA9IG1hcCwKIAkJLnJwY19yZXNwID0gJm1hcC0+cl9wb3J0LAogCX07CkBAIC0yNzEsNiArMjcxLDcgQEAKIHZvaWQgcnBjYl9nZXRwb3J0X2FzeW5jKHN0cnVjdCBycGNfdGFzayAqdGFzaykKIHsKIAlzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQgPSB0YXNrLT50a19jbGllbnQ7CisJc3RydWN0IHJwY19wcm9jaW5mbyAqcHJvYzsKIAl1MzIgYmluZF92ZXJzaW9uOwogCXN0cnVjdCBycGNfeHBydCAqeHBydCA9IHRhc2stPnRrX3hwcnQ7CiAJc3RydWN0IHJwY19jbG50CSpycGNiX2NsbnQ7CkBAIC0yODAsNyArMjgxLDYgQEAKIAlzdHJ1Y3Qgc29ja2FkZHIgKnNhcCA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkcjsKIAlzaXplX3Qgc2FsZW47CiAJaW50IHN0YXR1czsKLQlzdHJ1Y3QgcnBjYl9pbmZvICppbmZvOwogCiAJZHByaW50aygiUlBDOiAlNXUgJXMoJXMsICV1LCAldSwgJWQpXG4iLAogCQl0YXNrLT50a19waWQsIF9fZnVuY19fLApAQCAtMzEzLDEwICszMTMsMTIgQEAKIAkvKiBEb24ndCBldmVyIHVzZSBycGNiaW5kIHYyIGZvciBBRl9JTkVUNiByZXF1ZXN0cyAqLwogCXN3aXRjaCAoc2FwLT5zYV9mYW1pbHkpIHsKIAljYXNlIEFGX0lORVQ6Ci0JCWluZm8gPSBycGNiX25leHRfdmVyc2lvbjsKKwkJcHJvYyA9IHJwY2JfbmV4dF92ZXJzaW9uW3hwcnQtPmJpbmRfaW5kZXhdLnJwY19wcm9jOworCQliaW5kX3ZlcnNpb24gPSBycGNiX25leHRfdmVyc2lvblt4cHJ0LT5iaW5kX2luZGV4XS5ycGNfdmVyczsKIAkJYnJlYWs7CiAJY2FzZSBBRl9JTkVUNjoKLQkJaW5mbyA9IHJwY2JfbmV4dF92ZXJzaW9uNjsKKwkJcHJvYyA9IHJwY2JfbmV4dF92ZXJzaW9uNlt4cHJ0LT5iaW5kX2luZGV4XS5ycGNfcHJvYzsKKwkJYmluZF92ZXJzaW9uID0gcnBjYl9uZXh0X3ZlcnNpb242W3hwcnQtPmJpbmRfaW5kZXhdLnJwY192ZXJzOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlzdGF0dXMgPSAtRUFGTk9TVVBQT1JUOwpAQCAtMzI0LDE0ICszMjYsMTMgQEAKIAkJCQl0YXNrLT50a19waWQsIF9fZnVuY19fKTsKIAkJZ290byBiYWlsb3V0X25vZnJlZTsKIAl9Ci0JaWYgKGluZm9beHBydC0+YmluZF9pbmRleF0ucnBjX3Byb2MgPT0gTlVMTCkgeworCWlmIChwcm9jID09IE5VTEwpIHsKIAkJeHBydC0+YmluZF9pbmRleCA9IDA7CiAJCXN0YXR1cyA9IC1FUEZOT1NVUFBPUlQ7CiAJCWRwcmludGsoIlJQQzogJTV1ICVzOiBubyBtb3JlIGdldHBvcnQgdmVyc2lvbnMgYXZhaWxhYmxlXG4iLAogCQkJdGFzay0+dGtfcGlkLCBfX2Z1bmNfXyk7CiAJCWdvdG8gYmFpbG91dF9ub2ZyZWU7CiAJfQotCWJpbmRfdmVyc2lvbiA9IGluZm9beHBydC0+YmluZF9pbmRleF0ucnBjX3ZlcnM7CiAKIAlkcHJpbnRrKCJSUEM6ICU1dSAlczogdHJ5aW5nIHJwY2JpbmQgdmVyc2lvbiAldVxuIiwKIAkJdGFzay0+dGtfcGlkLCBfX2Z1bmNfXywgYmluZF92ZXJzaW9uKTsKQEAgLTM2MSwyMiArMzYyLDIwIEBACiAJbWFwLT5yX2FkZHIgPSBycGNfcGVlcmFkZHIyc3RyKHJwY2JfY2xudCwgUlBDX0RJU1BMQVlfVU5JVkVSU0FMX0FERFIpOwogCW1hcC0+cl9vd25lciA9IFJQQ0JfT1dORVJfU1RSSU5HOwkvKiBpZ25vcmVkIGZvciBHRVRBRERSICovCiAKLQljaGlsZCA9IHJwY2JfY2FsbF9hc3luYyhycGNiX2NsbnQsIG1hcCwgeHBydC0+YmluZF9pbmRleCk7CisJY2hpbGQgPSBycGNiX2NhbGxfYXN5bmMocnBjYl9jbG50LCBtYXAsIHByb2MpOwogCXJwY19yZWxlYXNlX2NsaWVudChycGNiX2NsbnQpOwogCWlmIChJU19FUlIoY2hpbGQpKSB7CiAJCXN0YXR1cyA9IC1FSU87CisJCS8qIHJwY2JfbWFwX3JlbGVhc2UoKSBoYXMgZnJlZWQgdGhlIGFyZ3VtZW50cyAqLwogCQlkcHJpbnRrKCJSUEM6ICU1dSAlczogcnBjX3J1bl90YXNrIGZhaWxlZFxuIiwKIAkJCXRhc2stPnRrX3BpZCwgX19mdW5jX18pOwotCQlnb3RvIGJhaWxvdXQ7CisJCWdvdG8gYmFpbG91dF9ub2ZyZWU7CiAJfQogCXJwY19wdXRfdGFzayhjaGlsZCk7CiAKIAl0YXNrLT50a194cHJ0LT5zdGF0LmJpbmRfY291bnQrKzsKIAlyZXR1cm47CiAKLWJhaWxvdXQ6Ci0Ja2ZyZWUobWFwKTsKLQl4cHJ0X3B1dCh4cHJ0KTsKIGJhaWxvdXRfbm9mcmVlOgogCXJwY2Jfd2FrZV9ycGNiaW5kX3dhaXRlcnMoeHBydCwgc3RhdHVzKTsKIGJhaWxvdXRfbm93YWtlOgpkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZfdW5peC5jCmluZGV4IGUxOGNkMzYuLjc4MzMxN2QgMTAwNjQ0Ci0tLSBhL25ldC91bml4L2FmX3VuaXguYworKysgYi9uZXQvdW5peC9hZl91bml4LmMKQEAgLTE2OSw2ICsxNjksMTEgQEAKIAlyZXR1cm4gKHVuaXhfcGVlcihvc2spID09IE5VTEwgfHwgdW5peF9vdXJfcGVlcihzaywgb3NrKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHVuaXhfcmVjdnFfZnVsbChzdHJ1Y3Qgc29jayBjb25zdCAqc2spCit7CisJcmV0dXJuIHNrYl9xdWV1ZV9sZW4oJnNrLT5za19yZWNlaXZlX3F1ZXVlKSA+IHNrLT5za19tYXhfYWNrX2JhY2tsb2c7Cit9CisKIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdW5peF9wZWVyX2dldChzdHJ1Y3Qgc29jayAqcykKIHsKIAlzdHJ1Y3Qgc29jayAqcGVlcjsKQEAgLTQ4Miw2ICs0ODcsOCBAQAogc3RhdGljIGludCB1bml4X2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICosIHN0cnVjdCBzb2NrZXQgKiwgaW50KTsKIHN0YXRpYyBpbnQgdW5peF9nZXRuYW1lKHN0cnVjdCBzb2NrZXQgKiwgc3RydWN0IHNvY2thZGRyICosIGludCAqLCBpbnQpOwogc3RhdGljIHVuc2lnbmVkIGludCB1bml4X3BvbGwoc3RydWN0IGZpbGUgKiwgc3RydWN0IHNvY2tldCAqLCBwb2xsX3RhYmxlICopOworc3RhdGljIHVuc2lnbmVkIGludCB1bml4X2RncmFtX3BvbGwoc3RydWN0IGZpbGUgKiwgc3RydWN0IHNvY2tldCAqLAorCQkJCSAgICBwb2xsX3RhYmxlICopOwogc3RhdGljIGludCB1bml4X2lvY3RsKHN0cnVjdCBzb2NrZXQgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKIHN0YXRpYyBpbnQgdW5peF9zaHV0ZG93bihzdHJ1Y3Qgc29ja2V0ICosIGludCk7CiBzdGF0aWMgaW50IHVuaXhfc3RyZWFtX3NlbmRtc2coc3RydWN0IGtpb2NiICosIHN0cnVjdCBzb2NrZXQgKiwKQEAgLTUyNyw3ICs1MzQsNyBAQAogCS5zb2NrZXRwYWlyID0JdW5peF9zb2NrZXRwYWlyLAogCS5hY2NlcHQgPQlzb2NrX25vX2FjY2VwdCwKIAkuZ2V0bmFtZSA9CXVuaXhfZ2V0bmFtZSwKLQkucG9sbCA9CQlkYXRhZ3JhbV9wb2xsLAorCS5wb2xsID0JCXVuaXhfZGdyYW1fcG9sbCwKIAkuaW9jdGwgPQl1bml4X2lvY3RsLAogCS5saXN0ZW4gPQlzb2NrX25vX2xpc3RlbiwKIAkuc2h1dGRvd24gPQl1bml4X3NodXRkb3duLApAQCAtNTQ4LDcgKzU1NSw3IEBACiAJLnNvY2tldHBhaXIgPQl1bml4X3NvY2tldHBhaXIsCiAJLmFjY2VwdCA9CXVuaXhfYWNjZXB0LAogCS5nZXRuYW1lID0JdW5peF9nZXRuYW1lLAotCS5wb2xsID0JCWRhdGFncmFtX3BvbGwsCisJLnBvbGwgPQkJdW5peF9kZ3JhbV9wb2xsLAogCS5pb2N0bCA9CXVuaXhfaW9jdGwsCiAJLmxpc3RlbiA9CXVuaXhfbGlzdGVuLAogCS5zaHV0ZG93biA9CXVuaXhfc2h1dGRvd24sCkBAIC05ODMsOCArOTkwLDcgQEAKIAogCXNjaGVkID0gIXNvY2tfZmxhZyhvdGhlciwgU09DS19ERUFEKSAmJgogCQkhKG90aGVyLT5za19zaHV0ZG93biAmIFJDVl9TSFVURE9XTikgJiYKLQkJKHNrYl9xdWV1ZV9sZW4oJm90aGVyLT5za19yZWNlaXZlX3F1ZXVlKSA+Ci0JCSBvdGhlci0+c2tfbWF4X2Fja19iYWNrbG9nKTsKKwkJdW5peF9yZWN2cV9mdWxsKG90aGVyKTsKIAogCXVuaXhfc3RhdGVfdW5sb2NrKG90aGVyKTsKIApAQCAtMTA1OCw4ICsxMDY0LDcgQEAKIAlpZiAob3RoZXItPnNrX3N0YXRlICE9IFRDUF9MSVNURU4pCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWlmIChza2JfcXVldWVfbGVuKCZvdGhlci0+c2tfcmVjZWl2ZV9xdWV1ZSkgPgotCSAgICBvdGhlci0+c2tfbWF4X2Fja19iYWNrbG9nKSB7CisJaWYgKHVuaXhfcmVjdnFfZnVsbChvdGhlcikpIHsKIAkJZXJyID0gLUVBR0FJTjsKIAkJaWYgKCF0aW1lbykKIAkJCWdvdG8gb3V0X3VubG9jazsKQEAgLTE0MjgsOSArMTQzMyw3IEBACiAJCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCi0JaWYgKHVuaXhfcGVlcihvdGhlcikgIT0gc2sgJiYKLQkgICAgKHNrYl9xdWV1ZV9sZW4oJm90aGVyLT5za19yZWNlaXZlX3F1ZXVlKSA+Ci0JICAgICBvdGhlci0+c2tfbWF4X2Fja19iYWNrbG9nKSkgeworCWlmICh1bml4X3BlZXIob3RoZXIpICE9IHNrICYmIHVuaXhfcmVjdnFfZnVsbChvdGhlcikpIHsKIAkJaWYgKCF0aW1lbykgewogCQkJZXJyID0gLUVBR0FJTjsKIAkJCWdvdG8gb3V0X3VubG9jazsKQEAgLTE5OTEsNiArMTk5NCw2MCBAQAogCXJldHVybiBtYXNrOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IHVuaXhfZGdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkgICAgcG9sbF90YWJsZSAqd2FpdCkKK3sKKwlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zaywgKm90aGVyOworCXVuc2lnbmVkIGludCBtYXNrLCB3cml0YWJsZTsKKworCXBvbGxfd2FpdChmaWxlLCBzay0+c2tfc2xlZXAsIHdhaXQpOworCW1hc2sgPSAwOworCisJLyogZXhjZXB0aW9uYWwgZXZlbnRzPyAqLworCWlmIChzay0+c2tfZXJyIHx8ICFza2JfcXVldWVfZW1wdHkoJnNrLT5za19lcnJvcl9xdWV1ZSkpCisJCW1hc2sgfD0gUE9MTEVSUjsKKwlpZiAoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRET1dOKQorCQltYXNrIHw9IFBPTExSREhVUDsKKwlpZiAoc2stPnNrX3NodXRkb3duID09IFNIVVRET1dOX01BU0spCisJCW1hc2sgfD0gUE9MTEhVUDsKKworCS8qIHJlYWRhYmxlPyAqLworCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSkgfHwKKwkgICAgKHNrLT5za19zaHV0ZG93biAmIFJDVl9TSFVURE9XTikpCisJCW1hc2sgfD0gUE9MTElOIHwgUE9MTFJETk9STTsKKworCS8qIENvbm5lY3Rpb24tYmFzZWQgbmVlZCB0byBjaGVjayBmb3IgdGVybWluYXRpb24gYW5kIHN0YXJ0dXAgKi8KKwlpZiAoc2stPnNrX3R5cGUgPT0gU09DS19TRVFQQUNLRVQpIHsKKwkJaWYgKHNrLT5za19zdGF0ZSA9PSBUQ1BfQ0xPU0UpCisJCQltYXNrIHw9IFBPTExIVVA7CisJCS8qIGNvbm5lY3Rpb24gaGFzbid0IHN0YXJ0ZWQgeWV0PyAqLworCQlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9TWU5fU0VOVCkKKwkJCXJldHVybiBtYXNrOworCX0KKworCS8qIHdyaXRhYmxlPyAqLworCXdyaXRhYmxlID0gdW5peF93cml0YWJsZShzayk7CisJaWYgKHdyaXRhYmxlKSB7CisJCW90aGVyID0gdW5peF9wZWVyX2dldChzayk7CisJCWlmIChvdGhlcikgeworCQkJaWYgKHVuaXhfcGVlcihvdGhlcikgIT0gc2spIHsKKwkJCQlwb2xsX3dhaXQoZmlsZSwgJnVuaXhfc2sob3RoZXIpLT5wZWVyX3dhaXQsCisJCQkJCSAgd2FpdCk7CisJCQkJaWYgKHVuaXhfcmVjdnFfZnVsbChvdGhlcikpCisJCQkJCXdyaXRhYmxlID0gMDsKKwkJCX0KKworCQkJc29ja19wdXQob3RoZXIpOworCQl9CisJfQorCisJaWYgKHdyaXRhYmxlKQorCQltYXNrIHw9IFBPTExPVVQgfCBQT0xMV1JOT1JNIHwgUE9MTFdSQkFORDsKKwllbHNlCisJCXNldF9iaXQoU09DS19BU1lOQ19OT1NQQUNFLCAmc2stPnNrX3NvY2tldC0+ZmxhZ3MpOworCisJcmV0dXJuIG1hc2s7Cit9CiAKICNpZmRlZiBDT05GSUdfUFJPQ19GUwogc3RhdGljIHN0cnVjdCBzb2NrICpmaXJzdF91bml4X3NvY2tldChpbnQgKmkpCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvcmVnLmMgYi9uZXQvd2lyZWxlc3MvcmVnLmMKaW5kZXggMTg1NDg4ZC4uODU1YmZmNCAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL3JlZy5jCisrKyBiL25ldC93aXJlbGVzcy9yZWcuYwpAQCAtODAsNiArODAsMjMgQEAKIAkJCQkgICAgIElFRUU4MDIxMV9DSEFOX1JBREFSKSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWxfcmFuZ2UgaWVlZTgwMjExX0VVX2NoYW5uZWxzW10gPSB7CisJLyogSUVFRSA4MDIuMTFiL2csIGNoYW5uZWxzIDEuLjEzICovCisJUkFOR0VfUFdSKDI0MTIsIDI0NzIsIDIwLCA2LCAwKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgMzYqLworCVJBTkdFX1BXUig1MTgwLCA1MTgwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgNDAqLworCVJBTkdFX1BXUig1MjAwLCA1MjAwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgNDQqLworCVJBTkdFX1BXUig1MjIwLCA1MjIwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWxzIDQ4Li42NCAqLworCVJBTkdFX1BXUig1MjQwLCA1MzIwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fTk9fSUJTUyB8CisJCQkJICAgICBJRUVFODAyMTFfQ0hBTl9SQURBUiksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVscyAxMDAuLjE0MCAqLworCVJBTkdFX1BXUig1NTAwLCA1NzAwLCAzMCwgNiwgSUVFRTgwMjExX0NIQU5fTk9fSUJTUyB8CisJCQkJICAgICBJRUVFODAyMTFfQ0hBTl9SQURBUiksCit9OworCiAjZGVmaW5lIFJFR0RPTShfY29kZSkJCQkJCQkJXAogCXsJCQkJCQkJCVwKIAkJLmNvZGUgPSBfX3N0cmluZ2lmeShfY29kZSksCQkJCVwKQEAgLTkwLDYgKzEwNyw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yZWdkb21haW4gaWVlZTgwMjExX3JlZ2RvbXNbXSA9IHsKIAlSRUdET00oVVMpLAogCVJFR0RPTShKUCksCisJUkVHRE9NKEVVKSwKIH07CiAKIApkaWZmIC0tZ2l0IGEvbmV0L3hmcm0veGZybV91c2VyLmMgYi9uZXQveGZybS94ZnJtX3VzZXIuYwppbmRleCBiOTc2ZDllLi4wNGM0MTUwIDEwMDY0NAotLS0gYS9uZXQveGZybS94ZnJtX3VzZXIuYworKysgYi9uZXQveGZybS94ZnJtX3VzZXIuYwpAQCAtMjc3LDkgKzI3Nyw4IEBACiAJbWVtY3B5KCZ4LT5wcm9wcy5zYWRkciwgJnAtPnNhZGRyLCBzaXplb2YoeC0+cHJvcHMuc2FkZHIpKTsKIAl4LT5wcm9wcy5mbGFncyA9IHAtPmZsYWdzOwogCi0JaWYgKCF4LT5zZWwuZmFtaWx5KQorCWlmICgheC0+c2VsLmZhbWlseSAmJiAhKHAtPmZsYWdzICYgWEZSTV9TVEFURV9BRl9VTlNQRUMpKQogCQl4LT5zZWwuZmFtaWx5ID0gcC0+ZmFtaWx5OwotCiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdCBiL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMmY0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdApAQCAtMCwwICsxLDQ1IEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEluc3RhbGxpbmcgZmlybXdhcmUKKyMKKyMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgLmNvbmZpZywgc28gYWxsIGZpcm13YXJlIGZpbGVzIGFyZSBpbiAkKGZ3LXNoaXBwZWQtKQorIyByYXRoZXIgdGhhbiBpbiAkKGZ3LXNoaXBwZWQteSkgb3IgJChmdy1zaGlwcGVkLW4pLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJTlNUQUxMIDo9IGluc3RhbGwKK3NyYyA6PSAkKG9iaikKKworIyBGb3IgbW9kdWxlc19pbnN0YWxsIGluc3RhbGxpbmcgZmlybXdhcmUsIHdlIHdhbnQgdG8gc2VlIC5jb25maWcKKyMgQnV0IGZvciBmaXJtd2FyZV9pbnN0YWxsLCB3ZSBkb24ndCBjYXJlLCBidXQgZG9uJ3Qgd2FudCB0byByZXF1aXJlIGl0LgorLWluY2x1ZGUgJChvYmp0cmVlKS8uY29uZmlnCisKK2luY2x1ZGUgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQoraW5jbHVkZSAkKHNyY3RyZWUpLyQob2JqKS9NYWtlZmlsZQorCitpbmNsdWRlIHNjcmlwdHMvTWFrZWZpbGUuaG9zdAorCittb2QtZncgOj0gJChhZGRwcmVmaXggJChJTlNUQUxMX0ZXX1BBVEgpLywkKGZ3LXNoaXBwZWQtbSkpCisKKyMgSWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTCBpc24ndCBzZXQsIHRoZW4gaW5zdGFsbCB0aGUgCisjIGZpcm13YXJlIGZvciBpbi1rZXJuZWwgZHJpdmVycyB0b28uCitpZm5kZWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTAorbW9kLWZ3ICs9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLXkpKQorZW5kaWYKKworaW5zdGFsbGVkLWZ3IDo9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLWFsbCkpCitpbnN0YWxsZWQtZnctZGlycyA6PSAkKHNvcnQgJChkaXIgJChpbnN0YWxsZWQtZncpKSkgJChJTlNUQUxMX0ZXX1BBVEgpLy4KKworcXVpZXRfY21kX2luc3RhbGwgPSBJTlNUQUxMICQoc3Vic3QgJChzcmN0cmVlKS8sLCRAKQorICAgICAgY21kX2luc3RhbGwgPSAkKElOU1RBTEwpIC1tMDY0NCAkPCAkQAorCiskKGluc3RhbGxlZC1mdy1kaXJzKToKKwkkKGNhbGwgY21kLG1rZGlyKQorCiskKGluc3RhbGxlZC1mdyk6ICQoSU5TVEFMTF9GV19QQVRIKS8lOiAkKG9iaikvJSB8ICQoSU5TVEFMTF9GV19QQVRIKS8kJChkaXIgJSkvCisJJChjYWxsIGNtZCxpbnN0YWxsKQorCisuUEhPTlk6IF9fZndfaW5zdGFsbCBfX2Z3X21vZGluc3QgRk9SQ0UKKworX19md19pbnN0YWxsOiAkKGluc3RhbGxlZC1mdykKK19fZndfbW9kaW5zdDogJChtb2QtZncpCisKK0ZPUkNFOgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5saWIgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgppbmRleCA4ZTQ0MDIzLi5lYTQ4YjgyIDEwMDY0NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmxpYgorKysgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgpAQCAtOTYsNyArOTYsOCBAQAogbW9kbmFtZV9mbGFncyAgPSAkKGlmICQoZmlsdGVyIDEsJCh3b3JkcyAkKG1vZG5hbWUpKSksXAogICAgICAgICAgICAgICAgICAtRCJLQlVJTERfTU9ETkFNRT1LQlVJTERfU1RSKCQoY2FsbCBuYW1lLWZpeCwkKG1vZG5hbWUpKSkiKQogCi1fY19mbGFncyAgICAgICA9ICQoS0JVSUxEX0NGTEFHUykgJChjY2ZsYWdzLXkpICQoQ0ZMQUdTXyQoYmFzZXRhcmdldCkubykKK29yaWdfY19mbGFncyAgID0gJChLQlVJTERfQ0ZMQUdTKSAkKGNjZmxhZ3MteSkgJChDRkxBR1NfJChiYXNldGFyZ2V0KS5vKQorX2NfZmxhZ3MgICAgICAgPSAkKGZpbHRlci1vdXQgJChDRkxBR1NfUkVNT1ZFXyQoYmFzZXRhcmdldCkubyksICQob3JpZ19jX2ZsYWdzKSkKIF9hX2ZsYWdzICAgICAgID0gJChLQlVJTERfQUZMQUdTKSAkKGFzZmxhZ3MteSkgJChBRkxBR1NfJChiYXNldGFyZ2V0KS5vKQogX2NwcF9mbGFncyAgICAgPSAkKEtCVUlMRF9DUFBGTEFHUykgJChjcHBmbGFncy15KSAkKENQUEZMQUdTXyQoQEYpKQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMKaW5kZXggY2VhNGE3OS4uMzdkNWMzNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jCisrKyBiL3NjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYwpAQCAtMzA0LDYgKzMwNCwxNCBAQAogCXJldHVybiAxOwogfQogCisvKiBsb29rcyBsaWtlOiAiY3NzOnROIiAqLworc3RhdGljIGludCBkb19jc3NfZW50cnkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQlzdHJ1Y3QgY3NzX2RldmljZV9pZCAqaWQsIGNoYXIgKmFsaWFzKQoreworCXNwcmludGYoYWxpYXMsICJjc3M6dCUwMVgiLCBpZC0+dHlwZSk7CisJcmV0dXJuIDE7Cit9CisKIC8qIExvb2tzIGxpa2U6ICJzZXJpbzp0eU5wck5pZE5leE4iICovCiBzdGF0aWMgaW50IGRvX3NlcmlvX2VudHJ5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJICBzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkICppZCwgY2hhciAqYWxpYXMpCkBAIC02ODAsNiArNjg4LDEwIEBACiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3QgYXBfZGV2aWNlX2lkKSwgImFwIiwKIAkJCSBkb19hcF9lbnRyeSwgbW9kKTsKKwllbHNlIGlmIChzeW1faXMoc3ltbmFtZSwgIl9fbW9kX2Nzc19kZXZpY2VfdGFibGUiKSkKKwkJZG9fdGFibGUoc3ltdmFsLCBzeW0tPnN0X3NpemUsCisJCQkgc2l6ZW9mKHN0cnVjdCBjc3NfZGV2aWNlX2lkKSwgImNzcyIsCisJCQkgZG9fY3NzX2VudHJ5LCBtb2QpOwogCWVsc2UgaWYgKHN5bV9pcyhzeW1uYW1lLCAiX19tb2Rfc2VyaW9fZGV2aWNlX3RhYmxlIikpCiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkKSwgInNlcmlvIiwKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbW9kL21vZHBvc3QuYyBiL3NjcmlwdHMvbW9kL21vZHBvc3QuYwppbmRleCA1MDhjNTg5Li5hMDdmOTFhIDEwMDY0NAotLS0gYS9zY3JpcHRzL21vZC9tb2Rwb3N0LmMKKysrIGIvc2NyaXB0cy9tb2QvbW9kcG9zdC5jCkBAIC00NjcsNiArNDY3LDI1IEBACiAJcmVsZWFzZV9maWxlKGluZm8tPmhkciwgaW5mby0+c2l6ZSk7CiB9CiAKK3N0YXRpYyBpbnQgaWdub3JlX3VuZGVmX3N5bWJvbChzdHJ1Y3QgZWxmX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKnN5bW5hbWUpCit7CisJLyogaWdub3JlIF9fdGhpc19tb2R1bGUsIGl0IHdpbGwgYmUgcmVzb2x2ZWQgc2hvcnRseSAqLworCWlmIChzdHJjbXAoc3ltbmFtZSwgTU9EVUxFX1NZTUJPTF9QUkVGSVggIl9fdGhpc19tb2R1bGUiKSA9PSAwKQorCQlyZXR1cm4gMTsKKwkvKiBpZ25vcmUgZ2xvYmFsIG9mZnNldCB0YWJsZSAqLworCWlmIChzdHJjbXAoc3ltbmFtZSwgIl9HTE9CQUxfT0ZGU0VUX1RBQkxFXyIpID09IDApCisJCXJldHVybiAxOworCWlmIChpbmZvLT5oZHItPmVfbWFjaGluZSA9PSBFTV9QUEMpCisJCS8qIFNwZWNpYWwgcmVnaXN0ZXIgZnVuY3Rpb24gbGlua2VkIG9uIGFsbCBtb2R1bGVzIGR1cmluZyBmaW5hbCBsaW5rIG9mIC5rbyAqLworCQlpZiAoc3RybmNtcChzeW1uYW1lLCAiX3Jlc3RncHJfIiwgc2l6ZW9mKCJfcmVzdGdwcl8iKSAtIDEpID09IDAgfHwKKwkJICAgIHN0cm5jbXAoc3ltbmFtZSwgIl9zYXZlZ3ByXyIsIHNpemVvZigiX3NhdmVncHJfIikgLSAxKSA9PSAwIHx8CisJCSAgICBzdHJuY21wKHN5bW5hbWUsICJfcmVzdDMyZ3ByXyIsIHNpemVvZigiX3Jlc3QzMmdwcl8iKSAtIDEpID09IDAgfHwKKwkJICAgIHN0cm5jbXAoc3ltbmFtZSwgIl9zYXZlMzJncHJfIiwgc2l6ZW9mKCJfc2F2ZTMyZ3ByXyIpIC0gMSkgPT0gMCkKKwkJCXJldHVybiAxOworCS8qIERvIG5vdCBpZ25vcmUgdGhpcyBzeW1ib2wgKi8KKwlyZXR1cm4gMDsKK30KKwogI2RlZmluZSBDUkNfUEZYICAgICBNT0RVTEVfU1lNQk9MX1BSRUZJWCAiX19jcmNfIgogI2RlZmluZSBLU1lNVEFCX1BGWCBNT0RVTEVfU1lNQk9MX1BSRUZJWCAiX19rc3ltdGFiXyIKIApAQCAtNDkzLDExICs1MTIsNyBAQAogCQlpZiAoRUxGX1NUX0JJTkQoc3ltLT5zdF9pbmZvKSAhPSBTVEJfR0xPQkFMICYmCiAJCSAgICBFTEZfU1RfQklORChzeW0tPnN0X2luZm8pICE9IFNUQl9XRUFLKQogCQkJYnJlYWs7Ci0JCS8qIGlnbm9yZSBnbG9iYWwgb2Zmc2V0IHRhYmxlICovCi0JCWlmIChzdHJjbXAoc3ltbmFtZSwgIl9HTE9CQUxfT0ZGU0VUX1RBQkxFXyIpID09IDApCi0JCQlicmVhazsKLQkJLyogaWdub3JlIF9fdGhpc19tb2R1bGUsIGl0IHdpbGwgYmUgcmVzb2x2ZWQgc2hvcnRseSAqLwotCQlpZiAoc3RyY21wKHN5bW5hbWUsIE1PRFVMRV9TWU1CT0xfUFJFRklYICJfX3RoaXNfbW9kdWxlIikgPT0gMCkKKwkJaWYgKGlnbm9yZV91bmRlZl9zeW1ib2woaW5mbywgc3ltbmFtZSkpCiAJCQlicmVhazsKIC8qIGNvcGUgd2l0aCBuZXdlciBnbGliYyAoMi4zLjQgb3IgaGlnaGVyKSBTVFRfIGRlZmluaXRpb24gaW4gZWxmLmggKi8KICNpZiBkZWZpbmVkKFNUVF9SRUdJU1RFUikgfHwgZGVmaW5lZChTVFRfU1BBUkNfUkVHSVNURVIpCmRpZmYgLS1naXQgYS9zZWN1cml0eS9LY29uZmlnIGIvc2VjdXJpdHkvS2NvbmZpZwppbmRleCA0OWI1MWY5Li42MmVkNDcxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9LY29uZmlnCisrKyBiL3NlY3VyaXR5L0tjb25maWcKQEAgLTczLDE3ICs3Myw5IEBACiAJICBJUFNlYy4KIAkgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uCiAKLWNvbmZpZyBTRUNVUklUWV9DQVBBQklMSVRJRVMKLQlib29sICJEZWZhdWx0IExpbnV4IENhcGFiaWxpdGllcyIKLQlkZXBlbmRzIG9uIFNFQ1VSSVRZCi0JZGVmYXVsdCB5Ci0JaGVscAotCSAgVGhpcyBlbmFibGVzIHRoZSAiZGVmYXVsdCIgTGludXggY2FwYWJpbGl0aWVzIGZ1bmN0aW9uYWxpdHkuCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBZLgotCiBjb25maWcgU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMKIAlib29sICJGaWxlIFBPU0lYIENhcGFiaWxpdGllcyAoRVhQRVJJTUVOVEFMKSIKLQlkZXBlbmRzIG9uIChTRUNVUklUWT1uIHx8IFNFQ1VSSVRZX0NBUEFCSUxJVElFUyE9bikgJiYgRVhQRVJJTUVOVEFMCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKIAlkZWZhdWx0IG4KIAloZWxwCiAJICBUaGlzIGVuYWJsZXMgZmlsZXN5c3RlbSBjYXBhYmlsaXRpZXMsIGFsbG93aW5nIHlvdSB0byBnaXZlCmRpZmYgLS1naXQgYS9zZWN1cml0eS9NYWtlZmlsZSBiL3NlY3VyaXR5L01ha2VmaWxlCmluZGV4IDdlZjExMDcuLmY2NTQyNjAgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L01ha2VmaWxlCisrKyBiL3NlY3VyaXR5L01ha2VmaWxlCkBAIC02LDE2ICs2LDEzIEBACiBzdWJkaXItJChDT05GSUdfU0VDVVJJVFlfU0VMSU5VWCkJKz0gc2VsaW51eAogc3ViZGlyLSQoQ09ORklHX1NFQ1VSSVRZX1NNQUNLKQkJKz0gc21hY2sKIAotIyBpZiB3ZSBkb24ndCBzZWxlY3QgYSBzZWN1cml0eSBtb2RlbCwgdXNlIHRoZSBkZWZhdWx0IGNhcGFiaWxpdGllcwotaWZuZXEgKCQoQ09ORklHX1NFQ1VSSVRZKSx5KQorIyBhbHdheXMgZW5hYmxlIGRlZmF1bHQgY2FwYWJpbGl0aWVzCiBvYmoteQkJKz0gY29tbW9uY2FwLm8KLWVuZGlmCiAKICMgT2JqZWN0IGZpbGUgbGlzdHMKLW9iai0kKENPTkZJR19TRUNVUklUWSkJCQkrPSBzZWN1cml0eS5vIGR1bW15Lm8gaW5vZGUubworb2JqLSQoQ09ORklHX1NFQ1VSSVRZKQkJCSs9IHNlY3VyaXR5Lm8gY2FwYWJpbGl0eS5vIGlub2RlLm8KICMgTXVzdCBwcmVjZWRlIGNhcGFiaWxpdHkubyBpbiBvcmRlciB0byBzdGFjayBwcm9wZXJseS4KIG9iai0kKENPTkZJR19TRUNVUklUWV9TRUxJTlVYKQkJKz0gc2VsaW51eC9idWlsdC1pbi5vCi1vYmotJChDT05GSUdfU0VDVVJJVFlfU01BQ0spCQkrPSBjb21tb25jYXAubyBzbWFjay9idWlsdC1pbi5vCi1vYmotJChDT05GSUdfU0VDVVJJVFlfQ0FQQUJJTElUSUVTKQkrPSBjb21tb25jYXAubyBjYXBhYmlsaXR5Lm8KLW9iai0kKENPTkZJR19TRUNVUklUWV9ST09UUExVRykJCSs9IGNvbW1vbmNhcC5vIHJvb3RfcGx1Zy5vCitvYmotJChDT05GSUdfU0VDVVJJVFlfU01BQ0spCQkrPSBzbWFjay9idWlsdC1pbi5vCitvYmotJChDT05GSUdfU0VDVVJJVFlfUk9PVFBMVUcpCQkrPSByb290X3BsdWcubwogb2JqLSQoQ09ORklHX0NHUk9VUF9ERVZJQ0UpCQkrPSBkZXZpY2VfY2dyb3VwLm8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2NhcGFiaWxpdHkuYyBiL3NlY3VyaXR5L2NhcGFiaWxpdHkuYwppbmRleCAzOGFjNTRlLi41YjAxYzBiIDEwMDY0NAotLS0gYS9zZWN1cml0eS9jYXBhYmlsaXR5LmMKKysrIGIvc2VjdXJpdHkvY2FwYWJpbGl0eS5jCkBAIC0xLDYgKzEsOCBAQAogLyoKICAqICBDYXBhYmlsaXRpZXMgTGludXggU2VjdXJpdHkgTW9kdWxlCiAgKgorICogIFRoaXMgaXMgdGhlIGRlZmF1bHQgc2VjdXJpdHkgbW9kdWxlIGluIGNhc2Ugbm8gb3RoZXIgbW9kdWxlIGlzIGxvYWRlZC4KKyAqCiAgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCkBAIC04LDc1ICsxMCw5ODggQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvc3dhcC5oPgotI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgY2FwYWJpbGl0eV9vcHMgPSB7Ci0JLnB0cmFjZSA9CQkJY2FwX3B0cmFjZSwKLQkuY2FwZ2V0ID0JCQljYXBfY2FwZ2V0LAotCS5jYXBzZXRfY2hlY2sgPQkJCWNhcF9jYXBzZXRfY2hlY2ssCi0JLmNhcHNldF9zZXQgPQkJCWNhcF9jYXBzZXRfc2V0LAotCS5jYXBhYmxlID0JCQljYXBfY2FwYWJsZSwKLQkuc2V0dGltZSA9CQkJY2FwX3NldHRpbWUsCi0JLm5ldGxpbmtfc2VuZCA9CQkJY2FwX25ldGxpbmtfc2VuZCwKLQkubmV0bGlua19yZWN2ID0JCQljYXBfbmV0bGlua19yZWN2LAotCi0JLmJwcm1fYXBwbHlfY3JlZHMgPQkJY2FwX2Jwcm1fYXBwbHlfY3JlZHMsCi0JLmJwcm1fc2V0X3NlY3VyaXR5ID0JCWNhcF9icHJtX3NldF9zZWN1cml0eSwKLQkuYnBybV9zZWN1cmVleGVjID0JCWNhcF9icHJtX3NlY3VyZWV4ZWMsCi0KLQkuaW5vZGVfc2V0eGF0dHIgPQkJY2FwX2lub2RlX3NldHhhdHRyLAotCS5pbm9kZV9yZW1vdmV4YXR0ciA9CQljYXBfaW5vZGVfcmVtb3ZleGF0dHIsCi0JLmlub2RlX25lZWRfa2lsbHByaXYgPQkJY2FwX2lub2RlX25lZWRfa2lsbHByaXYsCi0JLmlub2RlX2tpbGxwcml2ID0JCWNhcF9pbm9kZV9raWxscHJpdiwKLQotCS50YXNrX3NldHNjaGVkdWxlciA9CQljYXBfdGFza19zZXRzY2hlZHVsZXIsCi0JLnRhc2tfc2V0aW9wcmlvID0JCWNhcF90YXNrX3NldGlvcHJpbywKLQkudGFza19zZXRuaWNlID0JCQljYXBfdGFza19zZXRuaWNlLAotCS50YXNrX3Bvc3Rfc2V0dWlkID0JCWNhcF90YXNrX3Bvc3Rfc2V0dWlkLAotCS50YXNrX3ByY3RsID0gICAgICAgICAgICAgICAgICAgY2FwX3Rhc2tfcHJjdGwsCi0JLnRhc2tfcmVwYXJlbnRfdG9faW5pdCA9CWNhcF90YXNrX3JlcGFyZW50X3RvX2luaXQsCi0KLQkuc3lzbG9nID0gICAgICAgICAgICAgICAgICAgICAgIGNhcF9zeXNsb2csCi0KLQkudm1fZW5vdWdoX21lbW9yeSA9ICAgICAgICAgICAgIGNhcF92bV9lbm91Z2hfbWVtb3J5LAotfTsKLQotLyogZmxhZyB0byBrZWVwIHRyYWNrIG9mIGhvdyB3ZSB3ZXJlIHJlZ2lzdGVyZWQgKi8KLXN0YXRpYyBpbnQgc2Vjb25kYXJ5OwotCi1zdGF0aWMgaW50IGNhcGFiaWxpdHlfZGlzYWJsZTsKLW1vZHVsZV9wYXJhbV9uYW1lZChkaXNhYmxlLCBjYXBhYmlsaXR5X2Rpc2FibGUsIGludCwgMCk7Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNhcGFiaWxpdHlfaW5pdCAodm9pZCkKK3N0YXRpYyBpbnQgY2FwX2FjY3Qoc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGNhcGFiaWxpdHlfZGlzYWJsZSkgewotCQlwcmludGsoS0VSTl9JTkZPICJDYXBhYmlsaXRpZXMgZGlzYWJsZWQgYXQgaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JLyogcmVnaXN0ZXIgb3Vyc2VsdmVzIHdpdGggdGhlIHNlY3VyaXR5IGZyYW1ld29yayAqLwotCWlmIChyZWdpc3Rlcl9zZWN1cml0eSAoJmNhcGFiaWxpdHlfb3BzKSkgewotCQkvKiB0cnkgcmVnaXN0ZXJpbmcgd2l0aCBwcmltYXJ5IG1vZHVsZSAqLwotCQlpZiAobW9kX3JlZ19zZWN1cml0eSAoS0JVSUxEX01PRE5BTUUsICZjYXBhYmlsaXR5X29wcykpIHsKLQkJCXByaW50ayAoS0VSTl9JTkZPICJGYWlsdXJlIHJlZ2lzdGVyaW5nIGNhcGFiaWxpdGllcyAiCi0JCQkJIndpdGggcHJpbWFyeSBzZWN1cml0eSBtb2R1bGUuXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCXNlY29uZGFyeSA9IDE7Ci0JfQotCXByaW50ayAoS0VSTl9JTkZPICJDYXBhYmlsaXR5IExTTSBpbml0aWFsaXplZCVzXG4iLAotCQlzZWNvbmRhcnkgPyAiIGFzIHNlY29uZGFyeSIgOiAiIik7CiAJcmV0dXJuIDA7CiB9CiAKLXNlY3VyaXR5X2luaXRjYWxsIChjYXBhYmlsaXR5X2luaXQpOworc3RhdGljIGludCBjYXBfc3lzY3RsKGN0bF90YWJsZSAqdGFibGUsIGludCBvcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfcXVvdGFjdGwoaW50IGNtZHMsIGludCB0eXBlLCBpbnQgaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3F1b3RhX29uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfYnBybV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfYnBybV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9icHJtX3Bvc3RfYXBwbHlfY3JlZHMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKK3sKK30KKworc3RhdGljIGludCBjYXBfYnBybV9jaGVja19zZWN1cml0eShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9jb3B5X2RhdGEoY2hhciAqb3JpZywgY2hhciAqY29weSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2Jfa2Vybl9tb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9tb3VudChjaGFyICpkZXZfbmFtZSwgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnR5cGUsCisJCQl1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9jaGVja19zYihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX3Vtb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgaW50IGZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfdW1vdW50X2Nsb3NlKHN0cnVjdCB2ZnNtb3VudCAqbW50KQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfdW1vdW50X2J1c3koc3RydWN0IHZmc21vdW50ICptbnQpCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9wb3N0X3JlbW91bnQoc3RydWN0IHZmc21vdW50ICptbnQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCQkJdm9pZCAqZGF0YSkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NiX3Bvc3RfYWRkbW91bnQoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBwYXRoICpwYXRoKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9waXZvdHJvb3Qoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9wb3N0X3Bpdm90cm9vdChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKK3sKK30KKworc3RhdGljIGludCBjYXBfc2Jfc2V0X21udF9vcHRzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCQkgICAgICAgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQoreworCWlmICh1bmxpa2VseShvcHRzLT5udW1fbW50X29wdHMpKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9jbG9uZV9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm9sZHNiLAorCQkJCSAgc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYikKK3sKK30KKworc3RhdGljIGludCBjYXBfc2JfcGFyc2Vfb3B0c19zdHIoY2hhciAqb3B0aW9ucywgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9pbml0X3NlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqZGlyLAorCQkJCSAgIGNoYXIgKipuYW1lLCB2b2lkICoqdmFsdWUsIHNpemVfdCAqbGVuKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfY3JlYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCSAgICBpbnQgbWFzaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJICBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV91bmxpbmsoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zeW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCSAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbWtkaXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgaW50IG1hc2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3JtZGlyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbWtub2Qoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgaW50IG1vZGUsIGRldl90IGRldikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAorCQkJICAgIHN0cnVjdCBpbm9kZSAqbmV3X2lub2RlLCBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2ZvbGxvd19saW5rKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCQkgc3RydWN0IG5hbWVpZGF0YSAqbmFtZWlkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrLAorCQkJCXN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICppYXR0cikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfZ2V0YXR0cihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfZGVsZXRlKHN0cnVjdCBpbm9kZSAqaW5vKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfcG9zdF9zZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQoreworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2xpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2dldHNlY3VyaXR5KGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJIHZvaWQgKipidWZmZXIsIGJvb2wgYWxsb2MpCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zZXRzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCSBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncykKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2xpc3RzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpidWZmZXIsCisJCQkJICBzaXplX3QgYnVmZmVyX3NpemUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbm9kZV9nZXRzZWNpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKnNlY2lkKQoreworCSpzZWNpZCA9IDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfcGVybWlzc2lvbihzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1hc2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9maWxlX2ZyZWVfc2VjdXJpdHkoc3RydWN0IGZpbGUgKmZpbGUpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjb21tYW5kLAorCQkJICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIHJlcXByb3QsCisJCQkgdW5zaWduZWQgbG9uZyBwcm90LCB1bnNpZ25lZCBsb25nIGZsYWdzLAorCQkJIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBhZGRyX29ubHkpCit7CisJaWYgKChhZGRyIDwgbW1hcF9taW5fYWRkcikgJiYgIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCXJldHVybiAtRUFDQ0VTOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX21wcm90ZWN0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHJlcXByb3QsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgcHJvdCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9sb2NrKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX2ZjbnRsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9zZXRfZm93bmVyKHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX3NlbmRfc2lnaW90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAorCQkJCSAgIHN0cnVjdCBmb3duX3N0cnVjdCAqZm93biwgaW50IHNpZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9yZWNlaXZlKHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9kZW50cnlfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19jcmVhdGUodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19hbGxvY19zZWN1cml0eShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF90YXNrX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3NldHVpZCh1aWRfdCBpZDAsIHVpZF90IGlkMSwgdWlkX3QgaWQyLCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfc2V0Z2lkKGdpZF90IGlkMCwgZ2lkX3QgaWQxLCBnaWRfdCBpZDIsIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRwZ2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgcGlkX3QgcGdpZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRwZ2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRzaWQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfdGFza19nZXRzZWNpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHUzMiAqc2VjaWQpCit7CisJKnNlY2lkID0gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRncm91cHMoc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm8pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfZ2V0aW9wcmlvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRybGltaXQodW5zaWduZWQgaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpuZXdfcmxpbSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX21vdmVtZW1vcnkoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3dhaXQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qgc2lnaW5mbyAqaW5mbywKKwkJCSBpbnQgc2lnLCB1MzIgc2VjaWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF90YXNrX3RvX2lub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKK30KKworc3RhdGljIGludCBjYXBfaXBjX3Blcm1pc3Npb24oc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHNob3J0IGZsYWcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pcGNfZ2V0c2VjaWQoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHUzMiAqc2VjaWQpCit7CisJKnNlY2lkID0gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX21zZ19hbGxvY19zZWN1cml0eShzdHJ1Y3QgbXNnX21zZyAqbXNnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfbXNnX21zZ19mcmVlX3NlY3VyaXR5KHN0cnVjdCBtc2dfbXNnICptc2cpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX21zZ19xdWV1ZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9tc2dfcXVldWVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX21zZ19xdWV1ZV9hc3NvY2lhdGUoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBpbnQgbXNxZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9tc2dfcXVldWVfbXNnY3RsKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgaW50IGNtZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX21zZ3NuZChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCisJCQkJaW50IG1zZ2ZsZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX21zZ3JjdihzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGxvbmcgdHlwZSwgaW50IG1vZGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NobV9hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zaG1fZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NobV9hc3NvY2lhdGUoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBpbnQgc2htZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zaG1fc2htY3RsKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgaW50IGNtZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2htX3NobWF0KHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgY2hhciBfX3VzZXIgKnNobWFkZHIsCisJCQkgaW50IHNobWZsZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2VtX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3NlbV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKK3sKK30KKworc3RhdGljIGludCBjYXBfc2VtX2Fzc29jaWF0ZShzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIGludCBzZW1mbGcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlbV9zZW1jdGwoc3RydWN0IHNlbV9hcnJheSAqc21hLCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zZW1fc2Vtb3Aoc3RydWN0IHNlbV9hcnJheSAqc21hLCBzdHJ1Y3Qgc2VtYnVmICpzb3BzLAorCQkJIHVuc2lnbmVkIG5zb3BzLCBpbnQgYWx0ZXIpCit7CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSworc3RhdGljIGludCBjYXBfdW5peF9zdHJlYW1fY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpvdGhlciwKKwkJCQkgICBzdHJ1Y3Qgc29jayAqbmV3c2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3VuaXhfbWF5X3NlbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqb3RoZXIpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9jcmVhdGUoaW50IGZhbWlseSwgaW50IHR5cGUsIGludCBwcm90b2NvbCwgaW50IGtlcm4pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9wb3N0X2NyZWF0ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmFtaWx5LCBpbnQgdHlwZSwKKwkJCQkgIGludCBwcm90b2NvbCwgaW50IGtlcm4pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKKwkJCSAgIGludCBhZGRybGVuKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsCisJCQkgICAgICBpbnQgYWRkcmxlbikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IHNpemUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKKwkJCSAgICAgIGludCBzaXplLCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9nZXRzb2NrbmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0cGVlcm5hbWUoc3RydWN0IHNvY2tldCAqc29jaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2dldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NodXRkb3duKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBob3cpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9zb2NrX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0cGVlcnNlY19zdHJlYW0oc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkJY2hhciBfX3VzZXIgKm9wdHZhbCwKKwkJCQkJaW50IF9fdXNlciAqb3B0bGVuLCB1bnNpZ25lZCBsZW4pCit7CisJcmV0dXJuIC1FTk9QUk9UT09QVDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2dldHBlZXJzZWNfZGdyYW0oc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICpzZWNpZCkKK3sKKwlyZXR1cm4gLUVOT1BST1RPT1BUOworfQorCitzdGF0aWMgaW50IGNhcF9za19hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc29jayAqc2ssIGludCBmYW1pbHksIGdmcF90IHByaW9yaXR5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2tfZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc29jayAqc2spCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9za19jbG9uZV9zZWN1cml0eShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaykKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NrX2dldHNlY2lkKHN0cnVjdCBzb2NrICpzaywgdTMyICpzZWNpZCkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NvY2tfZ3JhZnQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2V0ICpwYXJlbnQpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2luZXRfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5ldF9jc2tfY2xvbmUoc3RydWN0IHNvY2sgKm5ld3NrLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX2luZXRfY29ubl9lc3RhYmxpc2hlZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9yZXFfY2xhc3NpZnlfZmxvdyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCisJCQkJICBzdHJ1Y3QgZmxvd2kgKmZsKQoreworfQorI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLICovCisKKyNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNCitzdGF0aWMgaW50IGNhcF94ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICoqY3R4cCwKKwkJCQkJICBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2Nsb25lX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKm9sZF9jdHgsCisJCQkJCSAgc3RydWN0IHhmcm1fc2VjX2N0eCAqKm5ld19jdHhwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfeGZybV9wb2xpY3lfZnJlZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngsCisJCQkJCSBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgsCisJCQkJCSB1MzIgc2VjaWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF94ZnJtX3N0YXRlX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfZGVsZXRlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3N0YXRlICp4KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF94ZnJtX3BvbGljeV9sb29rdXAoc3RydWN0IHhmcm1fc2VjX2N0eCAqY3R4LCB1MzIgc2tfc2lkLCB1OCBkaXIpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfcG9sX2Zsb3dfbWF0Y2goc3RydWN0IHhmcm1fc3RhdGUgKngsCisJCQkJCSBzdHJ1Y3QgeGZybV9wb2xpY3kgKnhwLAorCQkJCQkgc3RydWN0IGZsb3dpICpmbCkKK3sKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBjYXBfeGZybV9kZWNvZGVfc2Vzc2lvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmZsLCBpbnQgY2thbGwpCit7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCitzdGF0aWMgdm9pZCBjYXBfZF9pbnN0YW50aWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2dldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgY2hhciAqKnZhbHVlKQoreworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IGNhcF9zZXRwcm9jYXR0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNoYXIgKm5hbWUsIHZvaWQgKnZhbHVlLAorCQkJICAgc2l6ZV90IHNpemUpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlY2lkX3RvX3NlY2N0eCh1MzIgc2VjaWQsIGNoYXIgKipzZWNkYXRhLCB1MzIgKnNlY2xlbikKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlY2N0eF90b19zZWNpZChjb25zdCBjaGFyICpzZWNkYXRhLCB1MzIgc2VjbGVuLCB1MzIgKnNlY2lkKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIHZvaWQgY2FwX3JlbGVhc2Vfc2VjY3R4KGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4pCit7Cit9CisKKyNpZmRlZiBDT05GSUdfS0VZUworc3RhdGljIGludCBjYXBfa2V5X2FsbG9jKHN0cnVjdCBrZXkgKmtleSwgc3RydWN0IHRhc2tfc3RydWN0ICpjdHgsCisJCQkgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2tleV9mcmVlKHN0cnVjdCBrZXkgKmtleSkKK3sKK30KKworc3RhdGljIGludCBjYXBfa2V5X3Blcm1pc3Npb24oa2V5X3JlZl90IGtleV9yZWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY29udGV4dCwKKwkJCSAgICAgIGtleV9wZXJtX3QgcGVybSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfa2V5X2dldHNlY3VyaXR5KHN0cnVjdCBrZXkgKmtleSwgY2hhciAqKl9idWZmZXIpCit7CisJKl9idWZmZXIgPSBOVUxMOworCXJldHVybiAwOworfQorCisjZW5kaWYgLyogQ09ORklHX0tFWVMgKi8KKworI2lmZGVmIENPTkZJR19BVURJVAorc3RhdGljIGludCBjYXBfYXVkaXRfcnVsZV9pbml0KHUzMiBmaWVsZCwgdTMyIG9wLCBjaGFyICpydWxlc3RyLCB2b2lkICoqbHNtcnVsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfYXVkaXRfcnVsZV9rbm93bihzdHJ1Y3QgYXVkaXRfa3J1bGUgKmtydWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9hdWRpdF9ydWxlX21hdGNoKHUzMiBzZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKmxzbXJ1bGUsCisJCQkJc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9hdWRpdF9ydWxlX2ZyZWUodm9pZCAqbHNtcnVsZSkKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfQVVESVQgKi8KKworc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZGVmYXVsdF9zZWN1cml0eV9vcHMgPSB7CisJLm5hbWUJPSAiZGVmYXVsdCIsCit9OworCisjZGVmaW5lIHNldF90b19jYXBfaWZfbnVsbChvcHMsIGZ1bmN0aW9uKQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlpZiAoIW9wcy0+ZnVuY3Rpb24pIHsJCQkJCVwKKwkJCW9wcy0+ZnVuY3Rpb24gPSBjYXBfIyNmdW5jdGlvbjsJCQlcCisJCQlwcl9kZWJ1ZygiSGFkIHRvIG92ZXJyaWRlIHRoZSAiICNmdW5jdGlvbglcCisJCQkJICIgc2VjdXJpdHkgb3BlcmF0aW9uIHdpdGggdGhlIGRlZmF1bHQuXG4iKTtcCisJCQl9CQkJCQkJXAorCX0gd2hpbGUgKDApCisKK3ZvaWQgc2VjdXJpdHlfZml4dXBfb3BzKHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCit7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcHRyYWNlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBjYXBnZXQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGNhcHNldF9jaGVjayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgY2Fwc2V0X3NldCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYWNjdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgY2FwYWJsZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcXVvdGFjdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHF1b3RhX29uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzeXNjdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHN5c2xvZyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2V0dGltZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdm1fZW5vdWdoX21lbW9yeSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYnBybV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYnBybV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2FwcGx5X2NyZWRzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX3Bvc3RfYXBwbHlfY3JlZHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fc2V0X3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2NoZWNrX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX3NlY3VyZWV4ZWMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9jb3B5X2RhdGEpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2tlcm5fbW91bnQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Nob3dfb3B0aW9ucyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2Jfc3RhdGZzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9tb3VudCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfY2hlY2tfc2IpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Vtb3VudCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfdW1vdW50X2Nsb3NlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl91bW91bnRfYnVzeSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfcG9zdF9yZW1vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9wb3N0X2FkZG1vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9waXZvdHJvb3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Bvc3RfcGl2b3Ryb290KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9zZXRfbW50X29wdHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2Nsb25lX21udF9vcHRzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9wYXJzZV9vcHRzX3N0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2luaXRfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2NyZWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbGluayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfdW5saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zeW1saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9ta2Rpcik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcm1kaXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX21rbm9kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9yZW5hbWUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX3JlYWRsaW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9mb2xsb3dfbGluayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfc2V0YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZGVsZXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zZXR4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcG9zdF9zZXR4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0eGF0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2xpc3R4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcmVtb3ZleGF0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX25lZWRfa2lsbHByaXYpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2tpbGxwcml2KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9nZXRzZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfc2V0c2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2xpc3RzZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0c2VjaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX2lvY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX21tYXApOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfbXByb3RlY3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfbG9jayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9mY250bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9zZXRfZm93bmVyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX3NlbmRfc2lnaW90YXNrKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX3JlY2VpdmUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGRlbnRyeV9vcGVuKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2NyZWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldHVpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19wb3N0X3NldHVpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRnaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0cGdpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRwZ2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2dldHNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRncm91cHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0bmljZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRpb3ByaW8pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfZ2V0aW9wcmlvKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldHJsaW1pdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRzY2hlZHVsZXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2NoZWR1bGVyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX21vdmVtZW1vcnkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfd2FpdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19raWxsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3ByY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3JlcGFyZW50X3RvX2luaXQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfdG9faW5vZGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlwY19wZXJtaXNzaW9uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpcGNfZ2V0c2VjaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG1zZ19tc2dfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG1zZ19tc2dfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2Fzc29jaWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ2N0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3NuZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3Jjdik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX2Fzc29jaWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX3NobWN0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX3NobWF0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fYXNzb2NpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fc2VtY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fc2Vtb3ApOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG5ldGxpbmtfc2VuZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbmV0bGlua19yZWN2KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBkX2luc3RhbnRpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBnZXRwcm9jYXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2V0cHJvY2F0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlY2lkX3RvX3NlY2N0eCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2VjY3R4X3RvX3NlY2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCByZWxlYXNlX3NlY2N0eCk7CisjaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUksKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB1bml4X3N0cmVhbV9jb25uZWN0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB1bml4X21heV9zZW5kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfY3JlYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9jcmVhdGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9iaW5kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfY29ubmVjdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2xpc3Rlbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2FjY2VwdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3Bvc3RfYWNjZXB0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfc2VuZG1zZyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3JlY3Ztc2cpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRzb2NrbmFtZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJuYW1lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfc2V0c29ja29wdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHNvY2tvcHQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9zaHV0ZG93bik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3NvY2tfcmN2X3NrYik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJzZWNfc3RyZWFtKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcnNlY19kZ3JhbSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2tfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNrX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNrX2Nsb25lX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBza19nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja19ncmFmdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5ldF9jb25uX3JlcXVlc3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGluZXRfY3NrX2Nsb25lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbmV0X2Nvbm5fZXN0YWJsaXNoZWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHJlcV9jbGFzc2lmeV9mbG93KTsKKyNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSyAqLworI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0KKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfY2xvbmVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2RlbGV0ZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfbG9va3VwKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX3BvbF9mbG93X21hdGNoKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX2RlY29kZV9zZXNzaW9uKTsKKyNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCisjaWZkZWYgQ09ORklHX0tFWVMKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBrZXlfYWxsb2MpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGtleV9mcmVlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBrZXlfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywga2V5X2dldHNlY3VyaXR5KTsKKyNlbmRpZgkvKiBDT05GSUdfS0VZUyAqLworI2lmZGVmIENPTkZJR19BVURJVAorCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfaW5pdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9rbm93bik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9tYXRjaCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9mcmVlKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY29tbW9uY2FwLmMgYi9zZWN1cml0eS9jb21tb25jYXAuYwppbmRleCA1ZWRhYmM3Li4wYjY1MzdhIDEwMDY0NAotLS0gYS9zZWN1cml0eS9jb21tb25jYXAuYworKysgYi9zZWN1cml0eS9jb21tb25jYXAuYwpAQCAtNjMsNyArNjMsOCBAQAogCXJldHVybiAwOwogfQogCi1pbnQgY2FwX3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCitpbnQgY2FwX3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCXVuc2lnbmVkIGludCBtb2RlKQogewogCS8qIERlcml2ZWQgZnJvbSBhcmNoL2kzODYva2VybmVsL3B0cmFjZS5jOnN5c19wdHJhY2UuICovCiAJaWYgKCFjYXBfaXNzdWJzZXQoY2hpbGQtPmNhcF9wZXJtaXR0ZWQsIHBhcmVudC0+Y2FwX3Blcm1pdHRlZCkgJiYKQEAgLTEwMywxMCArMTA0LDE2IEBACiAJcmV0dXJuIChjYXBfY2FwYWJsZShjdXJyZW50LCBDQVBfU0VUUENBUCkgIT0gMCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGNhcF9saW1pdF9wdHJhY2VkX3RhcmdldCh2b2lkKSB7IHJldHVybiAxOyB9CisKICNlbHNlIC8qIGllLiwgbmRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgKi8KIAogc3RhdGljIGlubGluZSBpbnQgY2FwX2Jsb2NrX3NldHBjYXAoc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBjYXBfaW5oX2lzX2NhcHBlZCh2b2lkKSB7IHJldHVybiAxOyB9CitzdGF0aWMgaW5saW5lIGludCBjYXBfbGltaXRfcHRyYWNlZF90YXJnZXQodm9pZCkKK3sKKwlyZXR1cm4gIWNhcGFibGUoQ0FQX1NFVFBDQVApOworfQogCiAjZW5kaWYgLyogZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyAqLwogCkBAIC0zNDIsOSArMzQ5LDEwIEBACiAJCQkJYnBybS0+ZV91aWQgPSBjdXJyZW50LT51aWQ7CiAJCQkJYnBybS0+ZV9naWQgPSBjdXJyZW50LT5naWQ7CiAJCQl9Ci0JCQlpZiAoIWNhcGFibGUgKENBUF9TRVRQQ0FQKSkgewotCQkJCW5ld19wZXJtaXR0ZWQgPSBjYXBfaW50ZXJzZWN0IChuZXdfcGVybWl0dGVkLAotCQkJCQkJCWN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOworCQkJaWYgKGNhcF9saW1pdF9wdHJhY2VkX3RhcmdldCgpKSB7CisJCQkJbmV3X3Blcm1pdHRlZCA9CisJCQkJCWNhcF9pbnRlcnNlY3QobmV3X3Blcm1pdHRlZCwKKwkJCQkJCSAgICAgIGN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOwogCQkJfQogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jIGIvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jCmluZGV4IGJhZjM0ODguLmRkZDkyY2UgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYworKysgYi9zZWN1cml0eS9kZXZpY2VfY2dyb3VwLmMKQEAgLTIyMiw3ICsyMjIsNyBAQAogI2RlZmluZSBERVZDR19ERU5ZIDIKICNkZWZpbmUgREVWQ0dfTElTVCAzCiAKLSNkZWZpbmUgTUFKTUlOTEVOIDEwCisjZGVmaW5lIE1BSk1JTkxFTiAxMwogI2RlZmluZSBBQ0NMRU4gNAogCiBzdGF0aWMgdm9pZCBzZXRfYWNjZXNzKGNoYXIgKmFjYywgc2hvcnQgYWNjZXNzKQpAQCAtMjU0LDcgKzI1NCw3IEBACiAJaWYgKG0gPT0gfjApCiAJCXNwcmludGYoc3RyLCAiKiIpOwogCWVsc2UKLQkJc25wcmludGYoc3RyLCBNQUpNSU5MRU4sICIlZCIsIG0pOworCQlzbnByaW50ZihzdHIsIE1BSk1JTkxFTiwgIiV1IiwgbSk7CiB9CiAKIHN0YXRpYyBpbnQgZGV2Y2dyb3VwX3NlcV9yZWFkKHN0cnVjdCBjZ3JvdXAgKmNncm91cCwgc3RydWN0IGNmdHlwZSAqY2Z0LApAQCAtMzAwLDcgKzMwMCw3IEBACiAJCQljb250aW51ZTsKIAkJaWYgKHdoaXRlbS0+bWlub3IgIT0gfjAgJiYgd2hpdGVtLT5taW5vciAhPSByZWZ3aC0+bWlub3IpCiAJCQljb250aW51ZTsKLQkJaWYgKHJlZndoLT5hY2Nlc3MgJiAofih3aGl0ZW0tPmFjY2VzcyB8IEFDQ19NQVNLKSkpCisJCWlmIChyZWZ3aC0+YWNjZXNzICYgKH53aGl0ZW0tPmFjY2VzcykpCiAJCQljb250aW51ZTsKIAkJcmV0dXJuIDE7CiAJfQpAQCAtMzgyLDYgKzM4Miw4IEBACiAJY2FzZSAnYSc6CiAJCXdoLnR5cGUgPSBERVZfQUxMOwogCQl3aC5hY2Nlc3MgPSBBQ0NfTUFTSzsKKwkJd2gubWFqb3IgPSB+MDsKKwkJd2gubWlub3IgPSB+MDsKIAkJZ290byBoYW5kbGU7CiAJY2FzZSAnYic6CiAJCXdoLnR5cGUgPSBERVZfQkxPQ0s7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9kdW1teS5jIGIvc2VjdXJpdHkvZHVtbXkuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUwYzZjMy4uMDAwMDAwMAotLS0gYS9zZWN1cml0eS9kdW1teS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTIyOSArMCwwIEBACi0vKgotICogU3R1YiBmdW5jdGlvbnMgZm9yIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGZ1bmN0aW9uIHBvaW50ZXJzIGluIGNhc2Ugbm8KLSAqIHNlY3VyaXR5IG1vZGVsIGlzIGxvYWRlZC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgV2lyZVggQ29tbXVuaWNhdGlvbnMsIEluYyA8Y2hyaXNAd2lyZXguY29tPgotICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIgIEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgTmV0d29ya3MgQXNzb2NpYXRlcyBUZWNobm9sb2d5LCBJbmMgPHNzbWFsbGV5QG5haS5jb20+Ci0gKgotICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqLwotCi0jdW5kZWYgREVCVUcKLQotI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tbWFuLmg+Ci0jaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgotI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KLSNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgotI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxuZXQvc29jay5oPgotI2luY2x1ZGUgPGxpbnV4L3hhdHRyLmg+Ci0jaW5jbHVkZSA8bGludXgvaHVnZXRsYi5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KLQotc3RhdGljIGludCBkdW1teV9wdHJhY2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2NhcGdldCAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGtlcm5lbF9jYXBfdCAqIGVmZmVjdGl2ZSwKLQkJCSBrZXJuZWxfY2FwX3QgKiBpbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICogcGVybWl0dGVkKQotewotCWlmICh0YXJnZXQtPmV1aWQgPT0gMCkgewotCQljYXBfc2V0X2Z1bGwoKnBlcm1pdHRlZCk7Ci0JCWNhcF9zZXRfaW5pdF9lZmYoKmVmZmVjdGl2ZSk7Ci0JfSBlbHNlIHsKLQkJY2FwX2NsZWFyKCpwZXJtaXR0ZWQpOwotCQljYXBfY2xlYXIoKmVmZmVjdGl2ZSk7Ci0JfQotCi0JY2FwX2NsZWFyKCppbmhlcml0YWJsZSk7Ci0KLQlpZiAodGFyZ2V0LT5mc3VpZCAhPSAwKSB7Ci0JCSpwZXJtaXR0ZWQgPSBjYXBfZHJvcF9mc19zZXQoKnBlcm1pdHRlZCk7Ci0JCSplZmZlY3RpdmUgPSBjYXBfZHJvcF9mc19zZXQoKmVmZmVjdGl2ZSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2NhcHNldF9jaGVjayAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCi0JCQkgICAgICAga2VybmVsX2NhcF90ICogZWZmZWN0aXZlLAotCQkJICAgICAgIGtlcm5lbF9jYXBfdCAqIGluaGVyaXRhYmxlLAotCQkJICAgICAgIGtlcm5lbF9jYXBfdCAqIHBlcm1pdHRlZCkKLXsKLQlyZXR1cm4gLUVQRVJNOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9jYXBzZXRfc2V0IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKLQkJCSAgICAgIGtlcm5lbF9jYXBfdCAqIGVmZmVjdGl2ZSwKLQkJCSAgICAgIGtlcm5lbF9jYXBfdCAqIGluaGVyaXRhYmxlLAotCQkJICAgICAga2VybmVsX2NhcF90ICogcGVybWl0dGVkKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9hY2N0IChzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9jYXBhYmxlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNhcCkKLXsKLQlpZiAoY2FwX3JhaXNlZCAodHNrLT5jYXBfZWZmZWN0aXZlLCBjYXApKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gLUVQRVJNOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3N5c2N0bCAoY3RsX3RhYmxlICogdGFibGUsIGludCBvcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9xdW90YWN0bCAoaW50IGNtZHMsIGludCB0eXBlLCBpbnQgaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfcXVvdGFfb24gKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zeXNsb2cgKGludCB0eXBlKQotewotCWlmICgodHlwZSAhPSAzICYmIHR5cGUgIT0gMTApICYmIGN1cnJlbnQtPmV1aWQpCi0JCXJldHVybiAtRVBFUk07Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2V0dGltZShzdHJ1Y3QgdGltZXNwZWMgKnRzLCBzdHJ1Y3QgdGltZXpvbmUgKnR6KQotewotCWlmICghY2FwYWJsZShDQVBfU1lTX1RJTUUpKQotCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3ZtX2Vub3VnaF9tZW1vcnkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIGxvbmcgcGFnZXMpCi17Ci0JaW50IGNhcF9zeXNfYWRtaW4gPSAwOwotCi0JaWYgKGR1bW15X2NhcGFibGUoY3VycmVudCwgQ0FQX1NZU19BRE1JTikgPT0gMCkKLQkJY2FwX3N5c19hZG1pbiA9IDE7Ci0JcmV0dXJuIF9fdm1fZW5vdWdoX21lbW9yeShtbSwgcGFnZXMsIGNhcF9zeXNfYWRtaW4pOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2Jwcm1fYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2Jwcm1fZnJlZV9zZWN1cml0eSAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2Jwcm1fYXBwbHlfY3JlZHMgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sIGludCB1bnNhZmUpCi17Ci0JaWYgKGJwcm0tPmVfdWlkICE9IGN1cnJlbnQtPnVpZCB8fCBicHJtLT5lX2dpZCAhPSBjdXJyZW50LT5naWQpIHsKLQkJc2V0X2R1bXBhYmxlKGN1cnJlbnQtPm1tLCBzdWlkX2R1bXBhYmxlKTsKLQotCQlpZiAoKHVuc2FmZSAmIH5MU01fVU5TQUZFX1BUUkFDRV9DQVApICYmICFjYXBhYmxlKENBUF9TRVRVSUQpKSB7Ci0JCQlicHJtLT5lX3VpZCA9IGN1cnJlbnQtPnVpZDsKLQkJCWJwcm0tPmVfZ2lkID0gY3VycmVudC0+Z2lkOwotCQl9Ci0JfQotCi0JY3VycmVudC0+c3VpZCA9IGN1cnJlbnQtPmV1aWQgPSBjdXJyZW50LT5mc3VpZCA9IGJwcm0tPmVfdWlkOwotCWN1cnJlbnQtPnNnaWQgPSBjdXJyZW50LT5lZ2lkID0gY3VycmVudC0+ZnNnaWQgPSBicHJtLT5lX2dpZDsKLQotCWR1bW15X2NhcGdldChjdXJyZW50LCAmY3VycmVudC0+Y2FwX2VmZmVjdGl2ZSwgJmN1cnJlbnQtPmNhcF9pbmhlcml0YWJsZSwgJmN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9icHJtX3Bvc3RfYXBwbHlfY3JlZHMgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2Jwcm1fc2V0X3NlY3VyaXR5IChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2Jwcm1fY2hlY2tfc2VjdXJpdHkgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9zZWN1cmVleGVjIChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQotewotCS8qIFRoZSBuZXcgdXNlcmxhbmQgd2lsbCBzaW1wbHkgdXNlIHRoZSB2YWx1ZSBwcm92aWRlZAotCSAgIGluIHRoZSBBVF9TRUNVUkUgZmllbGQgdG8gZGVjaWRlIHdoZXRoZXIgc2VjdXJlIG1vZGUKLQkgICBpcyByZXF1aXJlZC4gIEhlbmNlLCB0aGlzIGxvZ2ljIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlCi0JICAgdGhlIGxlZ2FjeSBkZWNpc2lvbiBhbGdvcml0aG0gdXNlZCBieSB0aGUgb2xkIHVzZXJsYW5kLiAqLwotCXJldHVybiAoY3VycmVudC0+ZXVpZCAhPSBjdXJyZW50LT51aWQgfHwKLQkJY3VycmVudC0+ZWdpZCAhPSBjdXJyZW50LT5naWQpOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl9mcmVlX3NlY3VyaXR5IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9jb3B5X2RhdGEgKGNoYXIgKm9yaWcsIGNoYXIgKmNvcHkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2Jfa2Vybl9tb3VudCAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9zdGF0ZnMgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9tb3VudCAoY2hhciAqZGV2X25hbWUsIHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp0eXBlLAotCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncywgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9jaGVja19zYiAoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBwYXRoICpwYXRoKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3Vtb3VudCAoc3RydWN0IHZmc21vdW50ICptbnQsIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfdW1vdW50X2Nsb3NlIChzdHJ1Y3QgdmZzbW91bnQgKm1udCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX3Vtb3VudF9idXN5IChzdHJ1Y3QgdmZzbW91bnQgKm1udCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX3Bvc3RfcmVtb3VudCAoc3RydWN0IHZmc21vdW50ICptbnQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0JCQkJICAgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm47Ci19Ci0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfcG9zdF9hZGRtb3VudCAoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBwYXRoICpwYXRoKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9waXZvdHJvb3QgKHN0cnVjdCBwYXRoICpvbGRfcGF0aCwgc3RydWN0IHBhdGggKm5ld19wYXRoKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl9wb3N0X3Bpdm90cm9vdCAoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2dldF9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCSBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCi17Ci0Jc2VjdXJpdHlfaW5pdF9tbnRfb3B0cyhvcHRzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9zZXRfbW50X29wdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQkgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQotewotCWlmICh1bmxpa2VseShvcHRzLT5udW1fbW50X29wdHMpKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX2Nsb25lX21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCi0JCQkJICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqbmV3c2IpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3BhcnNlX29wdHNfc3RyKGNoYXIgKm9wdGlvbnMsIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9hbGxvY19zZWN1cml0eSAoc3RydWN0IGlub2RlICppbm9kZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfaW5vZGVfZnJlZV9zZWN1cml0eSAoc3RydWN0IGlub2RlICppbm9kZSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfaW5pdF9zZWN1cml0eSAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpkaXIsCi0JCQkJICAgICAgY2hhciAqKm5hbWUsIHZvaWQgKip2YWx1ZSwgc2l6ZV90ICpsZW4pCi17Ci0JcmV0dXJuIC1FT1BOT1RTVVBQOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2NyZWF0ZSAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJICAgICAgIGludCBtYXNrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2xpbmsgKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsCi0JCQkgICAgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfdW5saW5rIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfc3ltbGluayAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJCWNvbnN0IGNoYXIgKm5hbWUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbWtkaXIgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJCSAgICAgIGludCBtYXNrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3JtZGlyIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbWtub2QgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJCSAgICAgIGludCBtb2RlLCBkZXZfdCBkZXYpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKm9sZF9pbm9kZSwKLQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAotCQkJICAgICAgIHN0cnVjdCBpbm9kZSAqbmV3X2lub2RlLAotCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfcmVhZGxpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJCSAgICBzdHJ1Y3QgbmFtZWlkYXRhICpuYW1laWRhdGEpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfcGVybWlzc2lvbiAoc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2ssIHN0cnVjdCBuYW1laWRhdGEgKm5kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICppYXR0cikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9nZXRhdHRyIChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pbm9kZV9kZWxldGUgKHN0cnVjdCBpbm9kZSAqaW5vKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9zZXR4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAotCQkJCSBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncykKLXsKLQlpZiAoIXN0cm5jbXAobmFtZSwgWEFUVFJfU0VDVVJJVFlfUFJFRklYLAotCQkgICAgIHNpemVvZihYQVRUUl9TRUNVUklUWV9QUkVGSVgpIC0gMSkgJiYKLQkgICAgIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCi0JCXJldHVybiAtRVBFUk07Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2lub2RlX3Bvc3Rfc2V0eGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSwKLQkJCQkgICAgICAgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLAotCQkJCSAgICAgICBpbnQgZmxhZ3MpCi17Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfZ2V0eGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9saXN0eGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9yZW1vdmV4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQotewotCWlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TRUNVUklUWV9QUkVGSVgsCi0JCSAgICAgc2l6ZW9mKFhBVFRSX1NFQ1VSSVRZX1BSRUZJWCkgLSAxKSAmJgotCSAgICAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9uZWVkX2tpbGxwcml2KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9raWxscHJpdihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfZ2V0c2VjdXJpdHkoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKmJ1ZmZlciwgYm9vbCBhbGxvYykKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfc2V0c2VjdXJpdHkoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIC1FT1BOT1RTVVBQOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2xpc3RzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZmZXJfc2l6ZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfaW5vZGVfZ2V0c2VjaWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgdTMyICpzZWNpZCkKLXsKLQkqc2VjaWQgPSAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfcGVybWlzc2lvbiAoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtYXNrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9maWxlX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX2lvY3RsIChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNvbW1hbmQsCi0JCQkgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfbW1hcCAoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcmVxcHJvdCwKLQkJCSAgICB1bnNpZ25lZCBsb25nIHByb3QsCi0JCQkgICAgdW5zaWduZWQgbG9uZyBmbGFncywKLQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCQkgICAgdW5zaWduZWQgbG9uZyBhZGRyX29ubHkpCi17Ci0JaWYgKChhZGRyIDwgbW1hcF9taW5fYWRkcikgJiYgIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCi0JCXJldHVybiAtRUFDQ0VTOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfbXByb3RlY3QgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkJCXVuc2lnbmVkIGxvbmcgcmVxcHJvdCwKLQkJCQl1bnNpZ25lZCBsb25nIHByb3QpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9sb2NrIChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX2ZjbnRsIChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9zZXRfZm93bmVyIChzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX3NlbmRfc2lnaW90YXNrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKLQkJCQkgICAgICBzdHJ1Y3QgZm93bl9zdHJ1Y3QgKmZvd24sIGludCBzaWcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9yZWNlaXZlIChzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9kZW50cnlfb3BlbiAoc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19jcmVhdGUgKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19hbGxvY19zZWN1cml0eSAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV90YXNrX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19zZXR1aWQgKHVpZF90IGlkMCwgdWlkX3QgaWQxLCB1aWRfdCBpZDIsIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3Bvc3Rfc2V0dWlkICh1aWRfdCBpZDAsIHVpZF90IGlkMSwgdWlkX3QgaWQyLCBpbnQgZmxhZ3MpCi17Ci0JZHVtbXlfY2FwZ2V0KGN1cnJlbnQsICZjdXJyZW50LT5jYXBfZWZmZWN0aXZlLCAmY3VycmVudC0+Y2FwX2luaGVyaXRhYmxlLCAmY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19zZXRnaWQgKGdpZF90IGlkMCwgZ2lkX3QgaWQxLCBnaWRfdCBpZDIsIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldHBnaWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgcGlkX3QgcGdpZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2dldHBnaWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2dldHNpZCAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV90YXNrX2dldHNlY2lkIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHUzMiAqc2VjaWQpCi17Ci0JKnNlY2lkID0gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldGdyb3VwcyAoc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm8pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19zZXRuaWNlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBuaWNlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0aW9wcmlvIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBpb3ByaW8pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19nZXRpb3ByaW8gKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldHJsaW1pdCAodW5zaWduZWQgaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpuZXdfcmxpbSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldHNjaGVkdWxlciAoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAotCQkJCSAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKmxwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfZ2V0c2NoZWR1bGVyIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19tb3ZlbWVtb3J5IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza193YWl0IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19raWxsIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBzaWdpbmZvICppbmZvLAotCQkJICAgIGludCBzaWcsIHUzMiBzZWNpZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3ByY3RsIChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUsIGxvbmcgKnJjX3ApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfcmVwYXJlbnRfdG9faW5pdCAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXAtPmV1aWQgPSBwLT5mc3VpZCA9IDA7Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV90YXNrX3RvX2lub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IGlub2RlICppbm9kZSkKLXsgfQotCi1zdGF0aWMgaW50IGR1bW15X2lwY19wZXJtaXNzaW9uIChzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgc2hvcnQgZmxhZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfaXBjX2dldHNlY2lkKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwLCB1MzIgKnNlY2lkKQotewotCSpzZWNpZCA9IDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX21zZ19hbGxvY19zZWN1cml0eSAoc3RydWN0IG1zZ19tc2cgKm1zZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfbXNnX21zZ19mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgbXNnX21zZyAqbXNnKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfcXVldWVfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfbXNnX3F1ZXVlX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX3F1ZXVlX2Fzc29jaWF0ZSAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCAKLQkJCQkgICAgICBpbnQgbXNxZmxnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19xdWV1ZV9tc2djdGwgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgaW50IGNtZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfcXVldWVfbXNnc25kIChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCi0JCQkJICAgaW50IG1zZ2ZsZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfcXVldWVfbXNncmN2IChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCi0JCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGxvbmcgdHlwZSwKLQkJCQkgICBpbnQgbW9kZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zaG1fYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2htX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2htX2Fzc29jaWF0ZSAoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBpbnQgc2htZmxnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NobV9zaG1jdGwgKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgaW50IGNtZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zaG1fc2htYXQgKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgY2hhciBfX3VzZXIgKnNobWFkZHIsCi0JCQkgICAgaW50IHNobWZsZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZW1fYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2VtX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VtX2Fzc29jaWF0ZSAoc3RydWN0IHNlbV9hcnJheSAqc21hLCBpbnQgc2VtZmxnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlbV9zZW1jdGwgKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSwgaW50IGNtZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZW1fc2Vtb3AgKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSwgCi0JCQkgICAgc3RydWN0IHNlbWJ1ZiAqc29wcywgdW5zaWduZWQgbnNvcHMsIGludCBhbHRlcikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9uZXRsaW5rX3NlbmQgKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQlORVRMSU5LX0NCKHNrYikuZWZmX2NhcCA9IGN1cnJlbnQtPmNhcF9lZmZlY3RpdmU7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbmV0bGlua19yZWN2IChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY2FwKQotewotCWlmICghY2FwX3JhaXNlZCAoTkVUTElOS19DQiAoc2tiKS5lZmZfY2FwLCBjYXApKQotCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiAwOwotfQotCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUksKLXN0YXRpYyBpbnQgZHVtbXlfdW5peF9zdHJlYW1fY29ubmVjdCAoc3RydWN0IHNvY2tldCAqc29jaywKLQkJCQkgICAgICBzdHJ1Y3Qgc29ja2V0ICpvdGhlciwKLQkJCQkgICAgICBzdHJ1Y3Qgc29jayAqbmV3c2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdW5peF9tYXlfc2VuZCAoc3RydWN0IHNvY2tldCAqc29jaywKLQkJCQlzdHJ1Y3Qgc29ja2V0ICpvdGhlcikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfY3JlYXRlIChpbnQgZmFtaWx5LCBpbnQgdHlwZSwKLQkJCQlpbnQgcHJvdG9jb2wsIGludCBrZXJuKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9wb3N0X2NyZWF0ZSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGZhbWlseSwgaW50IHR5cGUsCi0JCQkJICAgICBpbnQgcHJvdG9jb2wsIGludCBrZXJuKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9iaW5kIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsCi0JCQkgICAgICBpbnQgYWRkcmxlbikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfY29ubmVjdCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyZXNzLAotCQkJCSBpbnQgYWRkcmxlbikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfbGlzdGVuIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfYWNjZXB0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zb2NrZXRfcG9zdF9hY2NlcHQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIAotCQkJCSAgICAgIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9zZW5kbXNnIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csCi0JCQkJIGludCBzaXplKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9yZWN2bXNnIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csCi0JCQkJIGludCBzaXplLCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2dldHNvY2tuYW1lIChzdHJ1Y3Qgc29ja2V0ICpzb2NrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRwZWVybmFtZSAoc3RydWN0IHNvY2tldCAqc29jaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfc2V0c29ja29wdCAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfZ2V0c29ja29wdCAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfc2h1dGRvd24gKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBob3cpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3NvY2tfcmN2X3NrYiAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRwZWVyc2VjX3N0cmVhbShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAotCQkJCQkgIGludCBfX3VzZXIgKm9wdGxlbiwgdW5zaWduZWQgbGVuKQotewotCXJldHVybiAtRU5PUFJPVE9PUFQ7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2dldHBlZXJzZWNfZGdyYW0oc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICpzZWNpZCkKLXsKLQlyZXR1cm4gLUVOT1BST1RPT1BUOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9za19hbGxvY19zZWN1cml0eSAoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmFtaWx5LCBnZnBfdCBwcmlvcml0eSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X3NrX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBzb2NrICpzaykKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X3NrX2Nsb25lX3NlY3VyaXR5IChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaykKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X3NrX2dldHNlY2lkKHN0cnVjdCBzb2NrICpzaywgdTMyICpzZWNpZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X3NvY2tfZ3JhZnQoc3RydWN0IHNvY2sqIHNrLCBzdHJ1Y3Qgc29ja2V0ICpwYXJlbnQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2luZXRfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywKLQkJCXN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X2luZXRfY3NrX2Nsb25lKHN0cnVjdCBzb2NrICpuZXdzaywKLQkJCWNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X2luZXRfY29ubl9lc3RhYmxpc2hlZChzdHJ1Y3Qgc29jayAqc2ssCi0JCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfcmVxX2NsYXNzaWZ5X2Zsb3coY29uc3Qgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLAotCQkJc3RydWN0IGZsb3dpICpmbCkKLXsKLX0KLSNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSyAqLwotCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTQotc3RhdGljIGludCBkdW1teV94ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICoqY3R4cCwKLQkJCQkJICAgIHN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eCAqc2VjX2N0eCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfeGZybV9wb2xpY3lfY2xvbmVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc2VjX2N0eCAqb2xkX2N0eCwKLQkJCQkJICAgc3RydWN0IHhmcm1fc2VjX2N0eCAqKm5ld19jdHhwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV94ZnJtX3BvbGljeV9mcmVlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKmN0eCkKLXsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX3BvbGljeV9kZWxldGVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc2VjX2N0eCAqY3R4KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fc3RhdGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngsCi0Jc3RydWN0IHhmcm1fdXNlcl9zZWNfY3R4ICpzZWNfY3R4LCB1MzIgc2VjaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3hmcm1fc3RhdGVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCkKLXsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX3N0YXRlX2RlbGV0ZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX3BvbGljeV9sb29rdXAoc3RydWN0IHhmcm1fc2VjX2N0eCAqY3R4LAotCQkJCSAgICB1MzIgc2tfc2lkLCB1OCBkaXIpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9zdGF0ZV9wb2xfZmxvd19tYXRjaChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwKLQkJCQlzdHJ1Y3QgeGZybV9wb2xpY3kgKnhwLCBzdHJ1Y3QgZmxvd2kgKmZsKQotewotCXJldHVybiAxOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fZGVjb2RlX3Nlc3Npb24oc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICpmbCwgaW50IGNrYWxsKQotewotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTSAqLwotc3RhdGljIGludCBkdW1teV9yZWdpc3Rlcl9zZWN1cml0eSAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKLXsKLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfZF9pbnN0YW50aWF0ZSAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9nZXRwcm9jYXR0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSkKLXsKLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZXRwcm9jYXR0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNoYXIgKm5hbWUsIHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSkKLXsKLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZWNpZF90b19zZWNjdHgodTMyIHNlY2lkLCBjaGFyICoqc2VjZGF0YSwgdTMyICpzZWNsZW4pCi17Ci0JcmV0dXJuIC1FT1BOT1RTVVBQOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlY2N0eF90b19zZWNpZChjb25zdCBjaGFyICpzZWNkYXRhLCB1MzIgc2VjbGVuLCB1MzIgKnNlY2lkKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfcmVsZWFzZV9zZWNjdHgoY2hhciAqc2VjZGF0YSwgdTMyIHNlY2xlbikKLXsKLX0KLQotI2lmZGVmIENPTkZJR19LRVlTCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9rZXlfYWxsb2Moc3RydWN0IGtleSAqa2V5LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN0eCwKLQkJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9rZXlfZnJlZShzdHJ1Y3Qga2V5ICprZXkpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2tleV9wZXJtaXNzaW9uKGtleV9yZWZfdCBrZXlfcmVmLAotCQkJCSAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvbnRleHQsCi0JCQkJICAgICAgIGtleV9wZXJtX3QgcGVybSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9rZXlfZ2V0c2VjdXJpdHkoc3RydWN0IGtleSAqa2V5LCBjaGFyICoqX2J1ZmZlcikKLXsKLQkqX2J1ZmZlciA9IE5VTEw7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfS0VZUyAqLwotCi0jaWZkZWYgQ09ORklHX0FVRElUCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9hdWRpdF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsCi0JCQkJCXZvaWQgKipsc21ydWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9hdWRpdF9ydWxlX2tub3duKHN0cnVjdCBhdWRpdF9rcnVsZSAqa3J1bGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQsIHUzMiBvcCwKLQkJCQkJIHZvaWQgKmxzbXJ1bGUsCi0JCQkJCSBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X2F1ZGl0X3J1bGVfZnJlZSh2b2lkICpsc21ydWxlKQoteyB9Ci0KLSNlbmRpZiAvKiBDT05GSUdfQVVESVQgKi8KLQotc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZHVtbXlfc2VjdXJpdHlfb3BzID0gewotCS5uYW1lID0gImR1bW15IiwKLX07Ci0KLSNkZWZpbmUgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmdW5jdGlvbikJCQkJXAotCWRvIHsJCQkJCQkJCVwKLQkJaWYgKCFvcHMtPmZ1bmN0aW9uKSB7CQkJCQlcCi0JCQlvcHMtPmZ1bmN0aW9uID0gZHVtbXlfIyNmdW5jdGlvbjsJCVwKLQkJCXByX2RlYnVnKCJIYWQgdG8gb3ZlcnJpZGUgdGhlICIgI2Z1bmN0aW9uCVwKLQkJCQkgIiBzZWN1cml0eSBvcGVyYXRpb24gd2l0aCB0aGUgZHVtbXkgb25lLlxuIik7XAotCQkJfQkJCQkJCVwKLQl9IHdoaWxlICgwKQotCi12b2lkIHNlY3VyaXR5X2ZpeHVwX29wcyAoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKLXsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHB0cmFjZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBjYXBnZXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgY2Fwc2V0X2NoZWNrKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGNhcHNldF9zZXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYWNjdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBjYXBhYmxlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHF1b3RhY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHF1b3RhX29uKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHN5c2N0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzeXNsb2cpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2V0dGltZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB2bV9lbm91Z2hfbWVtb3J5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fYXBwbHlfY3JlZHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9wb3N0X2FwcGx5X2NyZWRzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fc2V0X3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fY2hlY2tfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9zZWN1cmVleGVjKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfY29weV9kYXRhKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2tlcm5fbW91bnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2Jfc3RhdGZzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX21vdW50KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2NoZWNrX3NiKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Vtb3VudCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl91bW91bnRfY2xvc2UpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfdW1vdW50X2J1c3kpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfcG9zdF9yZW1vdW50KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Bvc3RfYWRkbW91bnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfcGl2b3Ryb290KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Bvc3RfcGl2b3Ryb290KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2dldF9tbnRfb3B0cyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9zZXRfbW50X29wdHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfY2xvbmVfbW50X29wdHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfcGFyc2Vfb3B0c19zdHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9pbml0X3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2NyZWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9saW5rKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3VubGluayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9zeW1saW5rKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX21rZGlyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3JtZGlyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX21rbm9kKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3JlbmFtZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9yZWFkbGluayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9mb2xsb3dfbGluayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9wZXJtaXNzaW9uKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3NldGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZ2V0YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9kZWxldGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfc2V0eGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcG9zdF9zZXR4YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9nZXR4YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9saXN0eGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcmVtb3ZleGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbmVlZF9raWxscHJpdik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9raWxscHJpdik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9nZXRzZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9zZXRzZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9saXN0c2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZ2V0c2VjaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9wZXJtaXNzaW9uKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfaW9jdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9tbWFwKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfbXByb3RlY3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9sb2NrKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfZmNudGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9zZXRfZm93bmVyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfc2VuZF9zaWdpb3Rhc2spOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9yZWNlaXZlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRlbnRyeV9vcGVuKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfY3JlYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0dWlkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfcG9zdF9zZXR1aWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRnaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRwZ2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZ2V0cGdpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2dldHNpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2dldHNlY2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0Z3JvdXBzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0bmljZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldGlvcHJpbyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2dldGlvcHJpbyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldHJsaW1pdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldHNjaGVkdWxlcik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2dldHNjaGVkdWxlcik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX21vdmVtZW1vcnkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza193YWl0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfa2lsbCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3ByY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfcmVwYXJlbnRfdG9faW5pdCk7Ci0gCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza190b19pbm9kZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpcGNfcGVybWlzc2lvbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpcGNfZ2V0c2VjaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX21zZ19hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfbXNnX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9hc3NvY2lhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ2N0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNnc25kKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9tc2dyY3YpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2htX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNobV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNobV9hc3NvY2lhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2htX3NobWN0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaG1fc2htYXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VtX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlbV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlbV9hc3NvY2lhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VtX3NlbWN0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZW1fc2Vtb3ApOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbmV0bGlua19zZW5kKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG5ldGxpbmtfcmVjdik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCByZWdpc3Rlcl9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkX2luc3RhbnRpYXRlKTsKLSAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBnZXRwcm9jYXR0cik7Ci0gCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2V0cHJvY2F0dHIpOwotIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlY2lkX3RvX3NlY2N0eCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZWNjdHhfdG9fc2VjaWQpOwotIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHJlbGVhc2Vfc2VjY3R4KTsKLSNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdW5peF9zdHJlYW1fY29ubmVjdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB1bml4X21heV9zZW5kKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9jcmVhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3Bvc3RfY3JlYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9iaW5kKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9jb25uZWN0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9saXN0ZW4pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2FjY2VwdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9hY2NlcHQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3NlbmRtc2cpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3JlY3Ztc2cpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dldHNvY2tuYW1lKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRwZWVybmFtZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfc2V0c29ja29wdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0c29ja29wdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfc2h1dGRvd24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3NvY2tfcmN2X3NrYik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcnNlY19zdHJlYW0pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJzZWNfZGdyYW0pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2tfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2tfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBza19jbG9uZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBza19nZXRzZWNpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrX2dyYWZ0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGluZXRfY29ubl9yZXF1ZXN0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGluZXRfY3NrX2Nsb25lKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGluZXRfY29ubl9lc3RhYmxpc2hlZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCByZXFfY2xhc3NpZnlfZmxvdyk7Ci0gI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLICovCi0jaWZkZWYgIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0KLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2Nsb25lX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfZGVsZXRlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfZGVsZXRlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2xvb2t1cCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX3BvbF9mbG93X21hdGNoKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fZGVjb2RlX3Nlc3Npb24pOwotI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gKi8KLSNpZmRlZiBDT05GSUdfS0VZUwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywga2V5X2FsbG9jKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGtleV9mcmVlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGtleV9wZXJtaXNzaW9uKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGtleV9nZXRzZWN1cml0eSk7Ci0jZW5kaWYJLyogQ09ORklHX0tFWVMgKi8KLSNpZmRlZiBDT05GSUdfQVVESVQKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfaW5pdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhdWRpdF9ydWxlX2tub3duKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfbWF0Y2gpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9mcmVlKTsKLSNlbmRpZgotfQotCmRpZmYgLS1naXQgYS9zZWN1cml0eS9yb290X3BsdWcuYyBiL3NlY3VyaXR5L3Jvb3RfcGx1Zy5jCmluZGV4IGE0MWNmNDIuLmJlMGViZWMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3Jvb3RfcGx1Zy5jCisrKyBiL3NlY3VyaXR5L3Jvb3RfcGx1Zy5jCkBAIC0yOCw5ICsyOCw2IEBACiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KIAotLyogZmxhZyB0byBrZWVwIHRyYWNrIG9mIGhvdyB3ZSB3ZXJlIHJlZ2lzdGVyZWQgKi8KLXN0YXRpYyBpbnQgc2Vjb25kYXJ5OwotCiAvKiBkZWZhdWx0IGlzIGEgZ2VuZXJpYyB0eXBlIG9mIHVzYiB0byBzZXJpYWwgY29udmVydGVyICovCiBzdGF0aWMgaW50IHZlbmRvcl9pZCA9IDB4MDU1NzsKIHN0YXRpYyBpbnQgcHJvZHVjdF9pZCA9IDB4MjAwODsKQEAgLTk3LDEzICs5NCw3IEBACiAJaWYgKHJlZ2lzdGVyX3NlY3VyaXR5ICgmcm9vdHBsdWdfc2VjdXJpdHlfb3BzKSkgewogCQlwcmludGsgKEtFUk5fSU5GTyAKIAkJCSJGYWlsdXJlIHJlZ2lzdGVyaW5nIFJvb3QgUGx1ZyBtb2R1bGUgd2l0aCB0aGUga2VybmVsXG4iKTsKLQkJLyogdHJ5IHJlZ2lzdGVyaW5nIHdpdGggcHJpbWFyeSBtb2R1bGUgKi8KLQkJaWYgKG1vZF9yZWdfc2VjdXJpdHkgKE1ZX05BTUUsICZyb290cGx1Z19zZWN1cml0eV9vcHMpKSB7Ci0JCQlwcmludGsgKEtFUk5fSU5GTyAiRmFpbHVyZSByZWdpc3RlcmluZyBSb290IFBsdWcgIgotCQkJCSIgbW9kdWxlIHdpdGggcHJpbWFyeSBzZWN1cml0eSBtb2R1bGUuXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCXNlY29uZGFyeSA9IDE7CiAJfQogCXByaW50ayAoS0VSTl9JTkZPICJSb290IFBsdWcgbW9kdWxlIGluaXRpYWxpemVkLCAiCiAJCSJ2ZW5kb3JfaWQgPSAlNC40eCwgcHJvZHVjdCBpZCA9ICU0LjR4XG4iLCB2ZW5kb3JfaWQsIHByb2R1Y3RfaWQpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VjdXJpdHkuYyBiL3NlY3VyaXR5L3NlY3VyaXR5LmMKaW5kZXggNTk4MzhhOS4uNTlmMjNiNSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VjdXJpdHkuYworKysgYi9zZWN1cml0eS9zZWN1cml0eS5jCkBAIC0yMCw4ICsyMCw4IEBACiAvKiBCb290LXRpbWUgTFNNIHVzZXIgY2hvaWNlICovCiBzdGF0aWMgX19pbml0ZGF0YSBjaGFyIGNob3Nlbl9sc21bU0VDVVJJVFlfTkFNRV9NQVggKyAxXTsKIAotLyogdGhpbmdzIHRoYXQgbGl2ZSBpbiBkdW1teS5jICovCi1leHRlcm4gc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZHVtbXlfc2VjdXJpdHlfb3BzOworLyogdGhpbmdzIHRoYXQgbGl2ZSBpbiBjYXBhYmlsaXR5LmMgKi8KK2V4dGVybiBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBkZWZhdWx0X3NlY3VyaXR5X29wczsKIGV4dGVybiB2b2lkIHNlY3VyaXR5X2ZpeHVwX29wcyhzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKTsKIAogc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKnNlY3VyaXR5X29wczsJLyogSW5pdGlhbGl6ZWQgdG8gTlVMTCAqLwpAQCAtNTcsMTMgKzU3LDggQEAKIHsKIAlwcmludGsoS0VSTl9JTkZPICJTZWN1cml0eSBGcmFtZXdvcmsgaW5pdGlhbGl6ZWRcbiIpOwogCi0JaWYgKHZlcmlmeSgmZHVtbXlfc2VjdXJpdHlfb3BzKSkgewotCQlwcmludGsoS0VSTl9FUlIgIiVzIGNvdWxkIG5vdCB2ZXJpZnkgIgotCQkgICAgICAgImR1bW15X3NlY3VyaXR5X29wcyBzdHJ1Y3R1cmUuXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCXNlY3VyaXR5X29wcyA9ICZkdW1teV9zZWN1cml0eV9vcHM7CisJc2VjdXJpdHlfZml4dXBfb3BzKCZkZWZhdWx0X3NlY3VyaXR5X29wcyk7CisJc2VjdXJpdHlfb3BzID0gJmRlZmF1bHRfc2VjdXJpdHlfb3BzOwogCWRvX3NlY3VyaXR5X2luaXRjYWxscygpOwogCiAJcmV0dXJuIDA7CkBAIC0xMjIsNyArMTE3LDcgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKHNlY3VyaXR5X29wcyAhPSAmZHVtbXlfc2VjdXJpdHlfb3BzKQorCWlmIChzZWN1cml0eV9vcHMgIT0gJmRlZmF1bHRfc2VjdXJpdHlfb3BzKQogCQlyZXR1cm4gLUVBR0FJTjsKIAogCXNlY3VyaXR5X29wcyA9IG9wczsKQEAgLTEzMCw0MCArMTI1LDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qKgotICogbW9kX3JlZ19zZWN1cml0eSAtIGFsbG93cyBzZWN1cml0eSBtb2R1bGVzIHRvIGJlICJzdGFja2VkIgotICogQG5hbWU6IGEgcG9pbnRlciB0byBhIHN0cmluZyB3aXRoIHRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eV9vcHRpb25zIHRvIGJlIHJlZ2lzdGVyZWQKLSAqIEBvcHM6IGEgcG9pbnRlciB0byB0aGUgc3RydWN0IHNlY3VyaXR5X29wdGlvbnMgdGhhdCBpcyB0byBiZSByZWdpc3RlcmVkCi0gKgotICogVGhpcyBmdW5jdGlvbiBhbGxvd3Mgc2VjdXJpdHkgbW9kdWxlcyB0byBiZSBzdGFja2VkIGlmIHRoZSBjdXJyZW50bHkgbG9hZGVkCi0gKiBzZWN1cml0eSBtb2R1bGUgYWxsb3dzIHRoaXMgdG8gaGFwcGVuLiAgSXQgcGFzc2VzIHRoZSBAbmFtZSBhbmQgQG9wcyB0byB0aGUKLSAqIHJlZ2lzdGVyX3NlY3VyaXR5IGZ1bmN0aW9uIG9mIHRoZSBjdXJyZW50bHkgbG9hZGVkIHNlY3VyaXR5IG1vZHVsZS4KLSAqCi0gKiBUaGUgcmV0dXJuIHZhbHVlIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSBsb2FkZWQgc2VjdXJpdHkgbW9kdWxlLCB3aXRoIDAgYXMKLSAqIHN1Y2Nlc3MuCi0gKi8KLWludCBtb2RfcmVnX3NlY3VyaXR5KGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCi17Ci0JaWYgKHZlcmlmeShvcHMpKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIiVzIGNvdWxkIG5vdCB2ZXJpZnkgIgotCQkgICAgICAgInNlY3VyaXR5IG9wZXJhdGlvbnMuXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChvcHMgPT0gc2VjdXJpdHlfb3BzKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIiVzIHNlY3VyaXR5IG9wZXJhdGlvbnMgIgotCQkgICAgICAgImFscmVhZHkgcmVnaXN0ZXJlZC5cbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIHNlY3VyaXR5X29wcy0+cmVnaXN0ZXJfc2VjdXJpdHkobmFtZSwgb3BzKTsKLX0KLQogLyogU2VjdXJpdHkgb3BlcmF0aW9ucyAqLwogCi1pbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQoraW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJICAgIHVuc2lnbmVkIGludCBtb2RlKQogewotCXJldHVybiBzZWN1cml0eV9vcHMtPnB0cmFjZShwYXJlbnQsIGNoaWxkKTsKKwlyZXR1cm4gc2VjdXJpdHlfb3BzLT5wdHJhY2UocGFyZW50LCBjaGlsZCwgbW9kZSk7CiB9CiAKIGludCBzZWN1cml0eV9jYXBnZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCkBAIC0yOTEsNiArMjU4LDExIEBACiAJcmV0dXJuIHNlY3VyaXR5X29wcy0+c2Jfa2Vybl9tb3VudChzYiwgZGF0YSk7CiB9CiAKK2ludCBzZWN1cml0eV9zYl9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXJldHVybiBzZWN1cml0eV9vcHMtPnNiX3Nob3dfb3B0aW9ucyhtLCBzYik7Cit9CisKIGludCBzZWN1cml0eV9zYl9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewogCXJldHVybiBzZWN1cml0eV9vcHMtPnNiX3N0YXRmcyhkZW50cnkpOwpAQCAtMzQyLDEyICszMTQsNiBAQAogCXNlY3VyaXR5X29wcy0+c2JfcG9zdF9waXZvdHJvb3Qob2xkX3BhdGgsIG5ld19wYXRoKTsKIH0KIAotaW50IHNlY3VyaXR5X3NiX2dldF9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKLXsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zYl9nZXRfbW50X29wdHMoc2IsIG9wdHMpOwotfQotCiBpbnQgc2VjdXJpdHlfc2Jfc2V0X21udF9vcHRzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQogewpAQCAtODk0LDcgKzg2MCw3IEBACiAKIHZvaWQgc2VjdXJpdHlfcmVsZWFzZV9zZWNjdHgoY2hhciAqc2VjZGF0YSwgdTMyIHNlY2xlbikKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5yZWxlYXNlX3NlY2N0eChzZWNkYXRhLCBzZWNsZW4pOworCXNlY3VyaXR5X29wcy0+cmVsZWFzZV9zZWNjdHgoc2VjZGF0YSwgc2VjbGVuKTsKIH0KIEVYUE9SVF9TWU1CT0woc2VjdXJpdHlfcmVsZWFzZV9zZWNjdHgpOwogCkBAIC0xMDExLDEyICs5NzcsMTIgQEAKIAogdm9pZCBzZWN1cml0eV9za19mcmVlKHN0cnVjdCBzb2NrICpzaykKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5za19mcmVlX3NlY3VyaXR5KHNrKTsKKwlzZWN1cml0eV9vcHMtPnNrX2ZyZWVfc2VjdXJpdHkoc2spOwogfQogCiB2b2lkIHNlY3VyaXR5X3NrX2Nsb25lKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm5ld3NrKQogewotCXJldHVybiBzZWN1cml0eV9vcHMtPnNrX2Nsb25lX3NlY3VyaXR5KHNrLCBuZXdzayk7CisJc2VjdXJpdHlfb3BzLT5za19jbG9uZV9zZWN1cml0eShzaywgbmV3c2spOwogfQogCiB2b2lkIHNlY3VyaXR5X3NrX2NsYXNzaWZ5X2Zsb3coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZmxvd2kgKmZsKQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCmluZGV4IDFjODY0YzAuLjYzZjEzMWYgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKQEAgLTksNyArOSw4IEBACiAgKgkgICAgICBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KICAqCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxLDIwMDIgTmV0d29ya3MgQXNzb2NpYXRlcyBUZWNobm9sb2d5LCBJbmMuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIFJlZCBIYXQsIEluYy4sIEphbWVzIE1vcnJpcyA8am1vcnJpc0ByZWRoYXQuY29tPgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDA4IFJlZCBIYXQsIEluYy4sIEphbWVzIE1vcnJpcyA8am1vcnJpc0ByZWRoYXQuY29tPgorICoJCQkJCSAgIEVyaWMgUGFyaXMgPGVwYXJpc0ByZWRoYXQuY29tPgogICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA1IFRydXN0ZWQgQ29tcHV0ZXIgU29sdXRpb25zLCBJbmMuCiAgKgkJCSAgICA8ZGdvZWRkZWxAdHJ1c3RlZGNzLmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgSGV3bGV0dC1QYWNrYXJkIERldmVsb3BtZW50IENvbXBhbnksIEwuUC4KQEAgLTQyLDkgKzQzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgotI2luY2x1ZGUgPGxpbnV4L2V4dDJfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgva2QuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2NC5oPgogI2luY2x1ZGUgPGxpbnV4L25ldGZpbHRlcl9pcHY2Lmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CkBAIC01Myw3ICs1Miw3IEBACiAjaW5jbHVkZSA8bmV0L3RjcC5oPgkJLyogc3RydWN0IG9yX2NhbGxhYmxlIHVzZWQgaW4gc29ja19yY3Zfc2tiICovCiAjaW5jbHVkZSA8bmV0L25ldF9uYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxuZXQvbmV0bGFiZWwuaD4KLSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW9jdGxzLmg+CiAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgpAQCAtMTA0LDcgKzEwMyw5IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGVuZm9yY2luZ19zZXR1cChjaGFyICpzdHIpCiB7Ci0Jc2VsaW51eF9lbmZvcmNpbmcgPSBzaW1wbGVfc3RydG9sKHN0ciwgTlVMTCwgMCk7CisJdW5zaWduZWQgbG9uZyBlbmZvcmNpbmc7CisJaWYgKCFzdHJpY3Rfc3RydG91bChzdHIsIDAsICZlbmZvcmNpbmcpKQorCQlzZWxpbnV4X2VuZm9yY2luZyA9IGVuZm9yY2luZyA/IDEgOiAwOwogCXJldHVybiAxOwogfQogX19zZXR1cCgiZW5mb3JjaW5nPSIsIGVuZm9yY2luZ19zZXR1cCk7CkBAIC0xMTUsNyArMTE2LDkgQEAKIAogc3RhdGljIGludCBfX2luaXQgc2VsaW51eF9lbmFibGVkX3NldHVwKGNoYXIgKnN0cikKIHsKLQlzZWxpbnV4X2VuYWJsZWQgPSBzaW1wbGVfc3RydG9sKHN0ciwgTlVMTCwgMCk7CisJdW5zaWduZWQgbG9uZyBlbmFibGVkOworCWlmICghc3RyaWN0X3N0cnRvdWwoc3RyLCAwLCAmZW5hYmxlZCkpCisJCXNlbGludXhfZW5hYmxlZCA9IGVuYWJsZWQgPyAxIDogMDsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoInNlbGludXg9Iiwgc2VsaW51eF9lbmFibGVkX3NldHVwKTsKQEAgLTEyMywxMyArMTI2LDExIEBACiBpbnQgc2VsaW51eF9lbmFibGVkID0gMTsKICNlbmRpZgogCi0vKiBPcmlnaW5hbCAoZHVtbXkpIHNlY3VyaXR5IG1vZHVsZS4gKi8KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3JpZ2luYWxfb3BzOwogCi0vKiBNaW5pbWFsIHN1cHBvcnQgZm9yIGEgc2Vjb25kYXJ5IHNlY3VyaXR5IG1vZHVsZSwKLSAgIGp1c3QgdG8gYWxsb3cgdGhlIHVzZSBvZiB0aGUgZHVtbXkgb3IgY2FwYWJpbGl0eSBtb2R1bGVzLgotICAgVGhlIG93bHNtIG1vZHVsZSBjYW4gYWx0ZXJuYXRpdmVseSBiZSB1c2VkIGFzIGEgc2Vjb25kYXJ5Ci0gICBtb2R1bGUgYXMgbG9uZyBhcyBDT05GSUdfT1dMU01fRkQgaXMgbm90IGVuYWJsZWQuICovCisvKgorICogTWluaW1hbCBzdXBwb3J0IGZvciBhIHNlY29uZGFyeSBzZWN1cml0eSBtb2R1bGUsCisgKiBqdXN0IHRvIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGNhcGFiaWxpdHkgbW9kdWxlLgorICovCiBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKnNlY29uZGFyeV9vcHM7CiAKIC8qIExpc3RzIG9mIGlub2RlIGFuZCBzdXBlcmJsb2NrIHNlY3VyaXR5IHN0cnVjdHVyZXMgaW5pdGlhbGl6ZWQKQEAgLTU5NCw3ICs1OTUsNyBAQAogCSAqLwogCWlmIChzYnNlYy0+aW5pdGlhbGl6ZWQgJiYgKHNiLT5zX3R5cGUtPmZzX2ZsYWdzICYgRlNfQklOQVJZX01PVU5UREFUQSkKIAkgICAgJiYgKG51bV9vcHRzID09IDApKQotCSAgICAgICAgZ290byBvdXQ7CisJCWdvdG8gb3V0OwogCiAJLyoKIAkgKiBwYXJzZSB0aGUgbW91bnQgb3B0aW9ucywgY2hlY2sgaWYgdGhleSBhcmUgdmFsaWQgc2lkcy4KQEAgLTk1Niw2ICs5NTcsNTcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKK3ZvaWQgc2VsaW51eF93cml0ZV9vcHRzKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQoreworCWludCBpOworCWNoYXIgKnByZWZpeDsKKworCWZvciAoaSA9IDA7IGkgPCBvcHRzLT5udW1fbW50X29wdHM7IGkrKykgeworCQljaGFyICpoYXNfY29tbWEgPSBzdHJjaHIob3B0cy0+bW50X29wdHNbaV0sICcsJyk7CisKKwkJc3dpdGNoIChvcHRzLT5tbnRfb3B0c19mbGFnc1tpXSkgeworCQljYXNlIENPTlRFWFRfTU5UOgorCQkJcHJlZml4ID0gQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJY2FzZSBGU0NPTlRFWFRfTU5UOgorCQkJcHJlZml4ID0gRlNDT05URVhUX1NUUjsKKwkJCWJyZWFrOworCQljYXNlIFJPT1RDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IFJPT1RDT05URVhUX1NUUjsKKwkJCWJyZWFrOworCQljYXNlIERFRkNPTlRFWFRfTU5UOgorCQkJcHJlZml4ID0gREVGQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCUJVRygpOworCQl9OworCQkvKiB3ZSBuZWVkIGEgY29tbWEgYmVmb3JlIGVhY2ggb3B0aW9uICovCisJCXNlcV9wdXRjKG0sICcsJyk7CisJCXNlcV9wdXRzKG0sIHByZWZpeCk7CisJCWlmIChoYXNfY29tbWEpCisJCQlzZXFfcHV0YyhtLCAnXCInKTsKKwkJc2VxX3B1dHMobSwgb3B0cy0+bW50X29wdHNbaV0pOworCQlpZiAoaGFzX2NvbW1hKQorCQkJc2VxX3B1dGMobSwgJ1wiJyk7CisJfQorfQorCitzdGF0aWMgaW50IHNlbGludXhfc2Jfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgb3B0czsKKwlpbnQgcmM7CisKKwlyYyA9IHNlbGludXhfZ2V0X21udF9vcHRzKHNiLCAmb3B0cyk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlzZWxpbnV4X3dyaXRlX29wdHMobSwgJm9wdHMpOworCisJc2VjdXJpdHlfZnJlZV9tbnRfb3B0cygmb3B0cyk7CisKKwlyZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbmxpbmUgdTE2IGlub2RlX21vZGVfdG9fc2VjdXJpdHlfY2xhc3ModW1vZGVfdCBtb2RlKQogewogCXN3aXRjaCAobW9kZSAmIFNfSUZNVCkgewpAQCAtMTY4MiwxNCArMTczNCwyMyBAQAogCiAvKiBIb29rIGZ1bmN0aW9ucyBiZWdpbiBoZXJlLiAqLwogCi1zdGF0aWMgaW50IHNlbGludXhfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQorc3RhdGljIGludCBzZWxpbnV4X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwKKwkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJCSAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJaW50IHJjOwogCi0JcmMgPSBzZWNvbmRhcnlfb3BzLT5wdHJhY2UocGFyZW50LCBjaGlsZCk7CisJcmMgPSBzZWNvbmRhcnlfb3BzLT5wdHJhY2UocGFyZW50LCBjaGlsZCwgbW9kZSk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKKwlpZiAobW9kZSA9PSBQVFJBQ0VfTU9ERV9SRUFEKSB7CisJCXN0cnVjdCB0YXNrX3NlY3VyaXR5X3N0cnVjdCAqdHNlYyA9IHBhcmVudC0+c2VjdXJpdHk7CisJCXN0cnVjdCB0YXNrX3NlY3VyaXR5X3N0cnVjdCAqY3NlYyA9IGNoaWxkLT5zZWN1cml0eTsKKwkJcmV0dXJuIGF2Y19oYXNfcGVybSh0c2VjLT5zaWQsIGNzZWMtPnNpZCwKKwkJCQkgICAgU0VDQ0xBU1NfRklMRSwgRklMRV9fUkVBRCwgTlVMTCk7CisJfQorCiAJcmV0dXJuIHRhc2tfaGFzX3Blcm0ocGFyZW50LCBjaGlsZCwgUFJPQ0VTU19fUFRSQUNFKTsKIH0KIApAQCAtMjQ5NSw3ICsyNTU2LDcgQEAKIAl9CiAKIAlpZiAodmFsdWUgJiYgbGVuKSB7Ci0JCXJjID0gc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQobmV3c2lkLCAmY29udGV4dCwgJmNsZW4pOworCQlyYyA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2ZvcmNlKG5ld3NpZCwgJmNvbnRleHQsICZjbGVuKTsKIAkJaWYgKHJjKSB7CiAJCQlrZnJlZShuYW1lcCk7CiAJCQlyZXR1cm4gcmM7CkBAIC0yNjY5LDYgKzI3MzAsMTEgQEAKIAkJcmV0dXJuIHJjOwogCiAJcmMgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZCh2YWx1ZSwgc2l6ZSwgJm5ld3NpZCk7CisJaWYgKHJjID09IC1FSU5WQUwpIHsKKwkJaWYgKCFjYXBhYmxlKENBUF9NQUNfQURNSU4pKQorCQkJcmV0dXJuIHJjOworCQlyYyA9IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2ZvcmNlKHZhbHVlLCBzaXplLCAmbmV3c2lkKTsKKwl9CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKQEAgLTI2OTAsNyArMjc1Niw3IEBACiB9CiAKIHN0YXRpYyB2b2lkIHNlbGludXhfaW5vZGVfcG9zdF9zZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLAorCQkJCQljb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsCiAJCQkJCWludCBmbGFncykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwpAQCAtMjcwMywxMCArMjc2OSwxMSBAQAogCQlyZXR1cm47CiAJfQogCi0JcmMgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZCh2YWx1ZSwgc2l6ZSwgJm5ld3NpZCk7CisJcmMgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZSh2YWx1ZSwgc2l6ZSwgJm5ld3NpZCk7CiAJaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiAgdW5hYmxlIHRvIG9idGFpbiBTSUQgZm9yIGNvbnRleHQgIgotCQkgICAgICAgIiVzLCByYz0lZFxuIiwgX19mdW5jX18sIChjaGFyICopdmFsdWUsIC1yYyk7CisJCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogIHVuYWJsZSB0byBtYXAgY29udGV4dCB0byBTSUQiCisJCSAgICAgICAiZm9yICglcywgJWx1KSwgcmM9JWRcbiIsCisJCSAgICAgICBpbm9kZS0+aV9zYi0+c19pZCwgaW5vZGUtPmlfaW5vLCAtcmMpOwogCQlyZXR1cm47CiAJfQogCkBAIC0yNzM1LDkgKzI4MDIsNyBAQAogfQogCiAvKgotICogQ29weSB0aGUgaW4tY29yZSBpbm9kZSBzZWN1cml0eSBjb250ZXh0IHZhbHVlIHRvIHRoZSB1c2VyLiAgSWYgdGhlCi0gKiBnZXR4YXR0cigpIHByaW9yIHRvIHRoaXMgc3VjY2VlZGVkLCBjaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0bwotICogY2Fub25pY2FsaXplIHRoZSB2YWx1ZSB0byBiZSBmaW5hbGx5IHJldHVybmVkIHRvIHRoZSB1c2VyLgorICogQ29weSB0aGUgaW5vZGUgc2VjdXJpdHkgY29udGV4dCB2YWx1ZSB0byB0aGUgdXNlci4KICAqCiAgKiBQZXJtaXNzaW9uIGNoZWNrIGlzIGhhbmRsZWQgYnkgc2VsaW51eF9pbm9kZV9nZXR4YXR0ciBob29rLgogICovCkBAIC0yNzQ2LDEyICsyODExLDMzIEBACiAJdTMyIHNpemU7CiAJaW50IGVycm9yOwogCWNoYXIgKmNvbnRleHQgPSBOVUxMOworCXN0cnVjdCB0YXNrX3NlY3VyaXR5X3N0cnVjdCAqdHNlYyA9IGN1cnJlbnQtPnNlY3VyaXR5OwogCXN0cnVjdCBpbm9kZV9zZWN1cml0eV9zdHJ1Y3QgKmlzZWMgPSBpbm9kZS0+aV9zZWN1cml0eTsKIAogCWlmIChzdHJjbXAobmFtZSwgWEFUVFJfU0VMSU5VWF9TVUZGSVgpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQllcnJvciA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KGlzZWMtPnNpZCwgJmNvbnRleHQsICZzaXplKTsKKwkvKgorCSAqIElmIHRoZSBjYWxsZXIgaGFzIENBUF9NQUNfQURNSU4sIHRoZW4gZ2V0IHRoZSByYXcgY29udGV4dAorCSAqIHZhbHVlIGV2ZW4gaWYgaXQgaXMgbm90IGRlZmluZWQgYnkgY3VycmVudCBwb2xpY3k7IG90aGVyd2lzZSwKKwkgKiB1c2UgdGhlIGluLWNvcmUgdmFsdWUgdW5kZXIgY3VycmVudCBwb2xpY3kuCisJICogVXNlIHRoZSBub24tYXVkaXRpbmcgZm9ybXMgb2YgdGhlIHBlcm1pc3Npb24gY2hlY2tzIHNpbmNlCisJICogZ2V0eGF0dHIgbWF5IGJlIGNhbGxlZCBieSB1bnByaXZpbGVnZWQgcHJvY2Vzc2VzIGNvbW1vbmx5CisJICogYW5kIGxhY2sgb2YgcGVybWlzc2lvbiBqdXN0IG1lYW5zIHRoYXQgd2UgZmFsbCBiYWNrIHRvIHRoZQorCSAqIGluLWNvcmUgY29udGV4dCB2YWx1ZSwgbm90IGEgZGVuaWFsLgorCSAqLworCWVycm9yID0gc2Vjb25kYXJ5X29wcy0+Y2FwYWJsZShjdXJyZW50LCBDQVBfTUFDX0FETUlOKTsKKwlpZiAoIWVycm9yKQorCQllcnJvciA9IGF2Y19oYXNfcGVybV9ub2F1ZGl0KHRzZWMtPnNpZCwgdHNlYy0+c2lkLAorCQkJCQkgICAgIFNFQ0NMQVNTX0NBUEFCSUxJVFkyLAorCQkJCQkgICAgIENBUEFCSUxJVFkyX19NQUNfQURNSU4sCisJCQkJCSAgICAgMCwKKwkJCQkJICAgICBOVUxMKTsKKwlpZiAoIWVycm9yKQorCQllcnJvciA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2ZvcmNlKGlzZWMtPnNpZCwgJmNvbnRleHQsCisJCQkJCQkgICAgICAmc2l6ZSk7CisJZWxzZQorCQllcnJvciA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KGlzZWMtPnNpZCwgJmNvbnRleHQsICZzaXplKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAllcnJvciA9IHNpemU7CkBAIC0yODY1LDQ2ICsyOTUxLDE2IEBACiBzdGF0aWMgaW50IHNlbGludXhfZmlsZV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQogewotCWludCBlcnJvciA9IDA7CisJdTMyIGF2ID0gMDsKIAotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBGSU9OUkVBRDoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEZJQk1BUDoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEZJR0VUQlNaOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRVhUMl9JT0NfR0VURkxBR1M6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBFWFQyX0lPQ19HRVRWRVJTSU9OOgotCQllcnJvciA9IGZpbGVfaGFzX3Blcm0oY3VycmVudCwgZmlsZSwgRklMRV9fR0VUQVRUUik7Ci0JCWJyZWFrOworCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19XUklURSkKKwkJYXYgfD0gRklMRV9fV1JJVEU7CisJaWYgKF9JT0NfRElSKGNtZCkgJiBfSU9DX1JFQUQpCisJCWF2IHw9IEZJTEVfX1JFQUQ7CisJaWYgKCFhdikKKwkJYXYgPSBGSUxFX19JT0NUTDsKIAotCWNhc2UgRVhUMl9JT0NfU0VURkxBR1M6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBFWFQyX0lPQ19TRVRWRVJTSU9OOgotCQllcnJvciA9IGZpbGVfaGFzX3Blcm0oY3VycmVudCwgZmlsZSwgRklMRV9fU0VUQVRUUik7Ci0JCWJyZWFrOwotCi0JLyogc3lzX2lvY3RsKCkgY2hlY2tzICovCi0JY2FzZSBGSU9OQklPOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRklPQVNZTkM6Ci0JCWVycm9yID0gZmlsZV9oYXNfcGVybShjdXJyZW50LCBmaWxlLCAwKTsKLQkJYnJlYWs7Ci0KLQljYXNlIEtEU0tCRU5UOgotCWNhc2UgS0RTS0JTRU5UOgotCQllcnJvciA9IHRhc2tfaGFzX2NhcGFiaWxpdHkoY3VycmVudCwgQ0FQX1NZU19UVFlfQ09ORklHKTsKLQkJYnJlYWs7Ci0KLQkvKiBkZWZhdWx0IGNhc2UgYXNzdW1lcyB0aGF0IHRoZSBjb21tYW5kIHdpbGwgZ28KLQkgKiB0byB0aGUgZmlsZSdzIGlvY3RsKCkgZnVuY3Rpb24uCi0JICovCi0JZGVmYXVsdDoKLQkJZXJyb3IgPSBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIEZJTEVfX0lPQ1RMKTsKLQl9Ci0JcmV0dXJuIGVycm9yOworCXJldHVybiBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIGF2KTsKIH0KIAogc3RhdGljIGludCBmaWxlX21hcF9wcm90X2NoZWNrKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIHByb3QsIGludCBzaGFyZWQpCkBAIC0zNjYzLDcgKzM3MTksNyBAQAogCQlzdHJ1Y3Qgc29ja2FkZHJfaW42ICphZGRyNiA9IE5VTEw7CiAJCXVuc2lnbmVkIHNob3J0IHNudW07CiAJCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOwotCQl1MzIgc2lkLCBub2RlX3Blcm0sIGFkZHJsZW47CisJCXUzMiBzaWQsIG5vZGVfcGVybTsKIAogCQl0c2VjID0gY3VycmVudC0+c2VjdXJpdHk7CiAJCWlzZWMgPSBTT0NLX0lOT0RFKHNvY2spLT5pX3NlY3VyaXR5OwpAQCAtMzY3MSwxMiArMzcyNywxMCBAQAogCQlpZiAoZmFtaWx5ID09IFBGX0lORVQpIHsKIAkJCWFkZHI0ID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFkZHJlc3M7CiAJCQlzbnVtID0gbnRvaHMoYWRkcjQtPnNpbl9wb3J0KTsKLQkJCWFkZHJsZW4gPSBzaXplb2YoYWRkcjQtPnNpbl9hZGRyLnNfYWRkcik7CiAJCQlhZGRycCA9IChjaGFyICopJmFkZHI0LT5zaW5fYWRkci5zX2FkZHI7CiAJCX0gZWxzZSB7CiAJCQlhZGRyNiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopYWRkcmVzczsKIAkJCXNudW0gPSBudG9ocyhhZGRyNi0+c2luNl9wb3J0KTsKLQkJCWFkZHJsZW4gPSBzaXplb2YoYWRkcjYtPnNpbjZfYWRkci5zNl9hZGRyKTsKIAkJCWFkZHJwID0gKGNoYXIgKikmYWRkcjYtPnNpbjZfYWRkci5zNl9hZGRyOwogCQl9CiAKQEAgLTUwNDcsMjQgKzUxMDEsNiBAQAogCSpzZWNpZCA9IGlzZWMtPnNpZDsKIH0KIAotLyogbW9kdWxlIHN0YWNraW5nIG9wZXJhdGlvbnMgKi8KLXN0YXRpYyBpbnQgc2VsaW51eF9yZWdpc3Rlcl9zZWN1cml0eShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCWlmIChzZWNvbmRhcnlfb3BzICE9IG9yaWdpbmFsX29wcykgewotCQlwcmludGsoS0VSTl9FUlIgIiVzOiAgVGhlcmUgaXMgYWxyZWFkeSBhIHNlY29uZGFyeSBzZWN1cml0eSAiCi0JCSAgICAgICAibW9kdWxlIHJlZ2lzdGVyZWQuXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXNlY29uZGFyeV9vcHMgPSBvcHM7Ci0KLQlwcmludGsoS0VSTl9JTkZPICIlczogIFJlZ2lzdGVyaW5nIHNlY29uZGFyeSBtb2R1bGUgJXNcbiIsCi0JICAgICAgIF9fZnVuY19fLAotCSAgICAgICBuYW1lKTsKLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBzZWxpbnV4X2RfaW5zdGFudGlhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCWlmIChpbm9kZSkKQEAgLTUxNTMsNiArNTE4OSwxMiBAQAogCQkJc2l6ZS0tOwogCQl9CiAJCWVycm9yID0gc2VjdXJpdHlfY29udGV4dF90b19zaWQodmFsdWUsIHNpemUsICZzaWQpOworCQlpZiAoZXJyb3IgPT0gLUVJTlZBTCAmJiAhc3RyY21wKG5hbWUsICJmc2NyZWF0ZSIpKSB7CisJCQlpZiAoIWNhcGFibGUoQ0FQX01BQ19BRE1JTikpCisJCQkJcmV0dXJuIGVycm9yOworCQkJZXJyb3IgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZSh2YWx1ZSwgc2l6ZSwKKwkJCQkJCQkgICAgICAmc2lkKTsKKwkJfQogCQlpZiAoZXJyb3IpCiAJCQlyZXR1cm4gZXJyb3I7CiAJfQpAQCAtNTE4NiwxMiArNTIyOCwxMiBAQAogCQkJc3RydWN0IHRhc2tfc3RydWN0ICpnLCAqdDsKIAkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gcC0+bW07CiAJCQlyZWFkX2xvY2soJnRhc2tsaXN0X2xvY2spOwotCQkJZG9fZWFjaF90aHJlYWQoZywgdCkKKwkJCWRvX2VhY2hfdGhyZWFkKGcsIHQpIHsKIAkJCQlpZiAodC0+bW0gPT0gbW0gJiYgdCAhPSBwKSB7CiAJCQkJCXJlYWRfdW5sb2NrKCZ0YXNrbGlzdF9sb2NrKTsKIAkJCQkJcmV0dXJuIC1FUEVSTTsKIAkJCQl9Ci0JCQl3aGlsZV9lYWNoX3RocmVhZChnLCB0KTsKKwkJCX0gd2hpbGVfZWFjaF90aHJlYWQoZywgdCk7CiAJCQlyZWFkX3VubG9jaygmdGFza2xpc3RfbG9jayk7CiAJCX0KIApAQCAtNTM0MywxMCArNTM4NSwxMCBAQAogCS5zYl9mcmVlX3NlY3VyaXR5ID0JCXNlbGludXhfc2JfZnJlZV9zZWN1cml0eSwKIAkuc2JfY29weV9kYXRhID0JCQlzZWxpbnV4X3NiX2NvcHlfZGF0YSwKIAkuc2Jfa2Vybl9tb3VudCA9CQlzZWxpbnV4X3NiX2tlcm5fbW91bnQsCisJLnNiX3Nob3dfb3B0aW9ucyA9CQlzZWxpbnV4X3NiX3Nob3dfb3B0aW9ucywKIAkuc2Jfc3RhdGZzID0JCQlzZWxpbnV4X3NiX3N0YXRmcywKIAkuc2JfbW91bnQgPQkJCXNlbGludXhfbW91bnQsCiAJLnNiX3Vtb3VudCA9CQkJc2VsaW51eF91bW91bnQsCi0JLnNiX2dldF9tbnRfb3B0cyA9CQlzZWxpbnV4X2dldF9tbnRfb3B0cywKIAkuc2Jfc2V0X21udF9vcHRzID0JCXNlbGludXhfc2V0X21udF9vcHRzLAogCS5zYl9jbG9uZV9tbnRfb3B0cyA9CQlzZWxpbnV4X3NiX2Nsb25lX21udF9vcHRzLAogCS5zYl9wYXJzZV9vcHRzX3N0ciA9IAkJc2VsaW51eF9wYXJzZV9vcHRzX3N0ciwKQEAgLTUzNzgsNyArNTQyMCw3IEBACiAJLmlub2RlX2xpc3RzZWN1cml0eSA9CQlzZWxpbnV4X2lub2RlX2xpc3RzZWN1cml0eSwKIAkuaW5vZGVfbmVlZF9raWxscHJpdiA9CQlzZWxpbnV4X2lub2RlX25lZWRfa2lsbHByaXYsCiAJLmlub2RlX2tpbGxwcml2ID0JCXNlbGludXhfaW5vZGVfa2lsbHByaXYsCi0JLmlub2RlX2dldHNlY2lkID0gICAgICAgICAgICAgICBzZWxpbnV4X2lub2RlX2dldHNlY2lkLAorCS5pbm9kZV9nZXRzZWNpZCA9CQlzZWxpbnV4X2lub2RlX2dldHNlY2lkLAogCiAJLmZpbGVfcGVybWlzc2lvbiA9CQlzZWxpbnV4X2ZpbGVfcGVybWlzc2lvbiwKIAkuZmlsZV9hbGxvY19zZWN1cml0eSA9CQlzZWxpbnV4X2ZpbGVfYWxsb2Nfc2VjdXJpdHksCkBAIC01NDE5LDcgKzU0NjEsNyBAQAogCS50YXNrX3RvX2lub2RlID0JCXNlbGludXhfdGFza190b19pbm9kZSwKIAogCS5pcGNfcGVybWlzc2lvbiA9CQlzZWxpbnV4X2lwY19wZXJtaXNzaW9uLAotCS5pcGNfZ2V0c2VjaWQgPSAgICAgICAgICAgICAgICAgc2VsaW51eF9pcGNfZ2V0c2VjaWQsCisJLmlwY19nZXRzZWNpZCA9CQkJc2VsaW51eF9pcGNfZ2V0c2VjaWQsCiAKIAkubXNnX21zZ19hbGxvY19zZWN1cml0eSA9CXNlbGludXhfbXNnX21zZ19hbGxvY19zZWN1cml0eSwKIAkubXNnX21zZ19mcmVlX3NlY3VyaXR5ID0Jc2VsaW51eF9tc2dfbXNnX2ZyZWVfc2VjdXJpdHksCkBAIC01NDQzLDggKzU0ODUsNiBAQAogCS5zZW1fc2VtY3RsID0JCQlzZWxpbnV4X3NlbV9zZW1jdGwsCiAJLnNlbV9zZW1vcCA9CQkJc2VsaW51eF9zZW1fc2Vtb3AsCiAKLQkucmVnaXN0ZXJfc2VjdXJpdHkgPQkJc2VsaW51eF9yZWdpc3Rlcl9zZWN1cml0eSwKLQogCS5kX2luc3RhbnRpYXRlID0JCXNlbGludXhfZF9pbnN0YW50aWF0ZSwKIAogCS5nZXRwcm9jYXR0ciA9CQkJc2VsaW51eF9nZXRwcm9jYXR0ciwKQEAgLTU1MzgsNyArNTU3OCw3IEBACiAJCQkJCSAgICAwLCBTTEFCX1BBTklDLCBOVUxMKTsKIAlhdmNfaW5pdCgpOwogCi0Jb3JpZ2luYWxfb3BzID0gc2Vjb25kYXJ5X29wcyA9IHNlY3VyaXR5X29wczsKKwlzZWNvbmRhcnlfb3BzID0gc2VjdXJpdHlfb3BzOwogCWlmICghc2Vjb25kYXJ5X29wcykKIAkJcGFuaWMoIlNFTGludXg6IE5vIGluaXRpYWwgc2VjdXJpdHkgb3BlcmF0aW9uc1xuIik7CiAJaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZzZWxpbnV4X29wcykpCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaCBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdWRpdC5oCmluZGV4IDZjOGI5ZWYuLjFiZGY5NzMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdWRpdC5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdWRpdC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFNFTGludXggc3VwcG9ydCBmb3IgdGhlIEF1ZGl0IExTTSBob29rcwogICoKLSAqIE1vc3Qgb2YgYmVsb3cgaGVhZGVyIHdhcyBtb3ZlZCBmcm9tIGluY2x1ZGUvbGludXgvc2VsaW51eC5oIHdoaWNoIAorICogTW9zdCBvZiBiZWxvdyBoZWFkZXIgd2FzIG1vdmVkIGZyb20gaW5jbHVkZS9saW51eC9zZWxpbnV4Lmggd2hpY2gKICAqIGlzIHJlbGVhc2VkIHVuZGVyIGJlbG93IGNvcHlyaWdodHM6CiAgKgogICogQXV0aG9yOiBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KQEAgLTUyLDcgKzUyLDcgQEAKICAqCS1lcnJubyBvbiBmYWlsdXJlLgogICovCiBpbnQgc2VsaW51eF9hdWRpdF9ydWxlX21hdGNoKHUzMiBzaWQsIHUzMiBmaWVsZCwgdTMyIG9wLCB2b2lkICpydWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCk7CisJCQkgICAgIHN0cnVjdCBhdWRpdF9jb250ZXh0ICphY3R4KTsKIAogLyoqCiAgKglzZWxpbnV4X2F1ZGl0X3J1bGVfa25vd24gLSBjaGVjayB0byBzZWUgaWYgcnVsZSBjb250YWlucyBzZWxpbnV4IGZpZWxkcy4KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdmMuaCBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdmMuaAppbmRleCA4ZTIzZDdhLi43Yjk3NjlmIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXZjLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2F2Yy5oCkBAIC03NSwxMyArNzUsMTIgQEAKIAogLyogSW5pdGlhbGl6ZSBhbiBBVkMgYXVkaXQgZGF0YSBzdHJ1Y3R1cmUuICovCiAjZGVmaW5lIEFWQ19BVURJVF9EQVRBX0lOSVQoX2QsX3QpIFwKLSAgICAgICAgeyBtZW1zZXQoKF9kKSwgMCwgc2l6ZW9mKHN0cnVjdCBhdmNfYXVkaXRfZGF0YSkpOyAoX2QpLT50eXBlID0gQVZDX0FVRElUX0RBVEFfIyNfdDsgfQorCXsgbWVtc2V0KChfZCksIDAsIHNpemVvZihzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEpKTsgKF9kKS0+dHlwZSA9IEFWQ19BVURJVF9EQVRBXyMjX3Q7IH0KIAogLyoKICAqIEFWQyBzdGF0aXN0aWNzCiAgKi8KLXN0cnVjdCBhdmNfY2FjaGVfc3RhdHMKLXsKK3N0cnVjdCBhdmNfY2FjaGVfc3RhdHMgewogCXVuc2lnbmVkIGludCBsb29rdXBzOwogCXVuc2lnbmVkIGludCBoaXRzOwogCXVuc2lnbmVkIGludCBtaXNzZXM7CkBAIC05Nyw4ICs5Niw4IEBACiB2b2lkIF9faW5pdCBhdmNfaW5pdCh2b2lkKTsKIAogdm9pZCBhdmNfYXVkaXQodTMyIHNzaWQsIHUzMiB0c2lkLAotICAgICAgICAgICAgICAgdTE2IHRjbGFzcywgdTMyIHJlcXVlc3RlZCwKLSAgICAgICAgICAgICAgIHN0cnVjdCBhdl9kZWNpc2lvbiAqYXZkLCBpbnQgcmVzdWx0LCBzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEgKmF1ZGl0ZGF0YSk7CisJICAgICAgIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCisJICAgICAgIHN0cnVjdCBhdl9kZWNpc2lvbiAqYXZkLCBpbnQgcmVzdWx0LCBzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEgKmF1ZGl0ZGF0YSk7CiAKICNkZWZpbmUgQVZDX1NUUklDVCAxIC8qIElnbm9yZSBwZXJtaXNzaXZlIG1vZGUuICovCiBpbnQgYXZjX2hhc19wZXJtX25vYXVkaXQodTMyIHNzaWQsIHUzMiB0c2lkLApAQCAtMTA3LDggKzEwNiw4IEBACiAJCQkgc3RydWN0IGF2X2RlY2lzaW9uICphdmQpOwogCiBpbnQgYXZjX2hhc19wZXJtKHUzMiBzc2lkLCB1MzIgdHNpZCwKLSAgICAgICAgICAgICAgICAgdTE2IHRjbGFzcywgdTMyIHJlcXVlc3RlZCwKLSAgICAgICAgICAgICAgICAgc3RydWN0IGF2Y19hdWRpdF9kYXRhICphdWRpdGRhdGEpOworCQkgdTE2IHRjbGFzcywgdTMyIHJlcXVlc3RlZCwKKwkJIHN0cnVjdCBhdmNfYXVkaXRfZGF0YSAqYXVkaXRkYXRhKTsKIAogdTMyIGF2Y19wb2xpY3lfc2Vxbm8odm9pZCk7CiAKQEAgLTEyMiw3ICsxMjEsNyBAQAogI2RlZmluZSBBVkNfQ0FMTEJBQ0tfQVVESVRERU5ZX0RJU0FCTEUJMTI4CiAKIGludCBhdmNfYWRkX2NhbGxiYWNrKGludCAoKmNhbGxiYWNrKSh1MzIgZXZlbnQsIHUzMiBzc2lkLCB1MzIgdHNpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgdGNsYXNzLCB1MzIgcGVybXMsCisJCQkJICAgICB1MTYgdGNsYXNzLCB1MzIgcGVybXMsCiAJCQkJICAgICB1MzIgKm91dF9yZXRhaW5lZCksCiAJCSAgICAgdTMyIGV2ZW50cywgdTMyIHNzaWQsIHUzMiB0c2lkLAogCQkgICAgIHUxNiB0Y2xhc3MsIHUzMiBwZXJtcyk7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmgKaW5kZXggMDMyYzIzNS4uOTEwNzBhYiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9vYmpzZWMuaApAQCAtNDQsNyArNDQsNiBAQAogCXUxNiBzY2xhc3M7CQkvKiBzZWN1cml0eSBjbGFzcyBvZiB0aGlzIG9iamVjdCAqLwogCXVuc2lnbmVkIGNoYXIgaW5pdGlhbGl6ZWQ7CS8qIGluaXRpYWxpemF0aW9uIGZsYWcgKi8KIAlzdHJ1Y3QgbXV0ZXggbG9jazsKLQl1bnNpZ25lZCBjaGFyIGluaGVyaXQ7CS8qIGluaGVyaXQgU0lEIGZyb20gcGFyZW50IGVudHJ5ICovCiB9OwogCiBzdHJ1Y3QgZmlsZV9zZWN1cml0eV9zdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvc2VjdXJpdHkuaAppbmRleCBhZDMwYWM0Li43YzU0MzAwIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvc2VjdXJpdHkuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvc2VjdXJpdHkuaApAQCAtOTMsMTIgKzkzLDE3IEBACiBpbnQgc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQodTMyIHNpZCwgY2hhciAqKnNjb250ZXh0LAogCXUzMiAqc2NvbnRleHRfbGVuKTsKIAoraW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2ZvcmNlKHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwgdTMyICpzY29udGV4dF9sZW4pOworCiBpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWQoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCiAJdTMyICpvdXRfc2lkKTsKIAogaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2RlZmF1bHQoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCiAJCQkJICAgIHUzMiAqb3V0X3NpZCwgdTMyIGRlZl9zaWQsIGdmcF90IGdmcF9mbGFncyk7CiAKK2ludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZShjb25zdCBjaGFyICpzY29udGV4dCwgdTMyIHNjb250ZXh0X2xlbiwKKwkJCQkgIHUzMiAqc2lkKTsKKwogaW50IHNlY3VyaXR5X2dldF91c2VyX3NpZHModTMyIGNhbGxzaWQsIGNoYXIgKnVzZXJuYW1lLAogCQkJICAgdTMyICoqc2lkcywgdTMyICpuZWwpOwogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYyBiL3NlY3VyaXR5L3NlbGludXgvbmV0bm9kZS5jCmluZGV4IGI2Y2NkMDkuLjcxMDAwNzIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvbmV0bm9kZS5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvbmV0bm9kZS5jCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSA8bGludXgvaXB2Ni5oPgogI2luY2x1ZGUgPG5ldC9pcC5oPgogI2luY2x1ZGUgPG5ldC9pcHY2Lmg+Ci0jaW5jbHVkZSA8YXNtL2J1Zy5oPgogCiAjaW5jbHVkZSAibmV0bm9kZS5oIgogI2luY2x1ZGUgIm9ianNlYy5oIgpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9uZXRwb3J0LmMgYi9zZWN1cml0eS9zZWxpbnV4L25ldHBvcnQuYwppbmRleCA5MGI0Y2ZmLi5mZTdmYmE2IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L25ldHBvcnQuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L25ldHBvcnQuYwpAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4KICNpbmNsdWRlIDxuZXQvaXAuaD4KICNpbmNsdWRlIDxuZXQvaXB2Ni5oPgotI2luY2x1ZGUgPGFzbS9idWcuaD4KIAogI2luY2x1ZGUgIm5ldHBvcnQuaCIKICNpbmNsdWRlICJvYmpzZWMuaCIKQEAgLTI3Miw3ICsyNzEsNyBAQAogCX0KIAogCXJldCA9IGF2Y19hZGRfY2FsbGJhY2soc2VsX25ldHBvcnRfYXZjX2NhbGxiYWNrLCBBVkNfQ0FMTEJBQ0tfUkVTRVQsCi0JICAgICAgICAgICAgICAgICAgICAgICBTRUNTSURfTlVMTCwgU0VDU0lEX05VTEwsIFNFQ0NMQVNTX05VTEwsIDApOworCQkJICAgICAgIFNFQ1NJRF9OVUxMLCBTRUNTSURfTlVMTCwgU0VDQ0xBU1NfTlVMTCwgMCk7CiAJaWYgKHJldCAhPSAwKQogCQlwYW5pYygiYXZjX2FkZF9jYWxsYmFjaygpIGZhaWxlZCwgZXJyb3IgJWRcbiIsIHJldCk7CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NlbGludXhmcy5jCmluZGV4IGFjMWNjYzEuLjY5YzlkY2MgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4ZnMuYwpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KLSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogLyogc2VsaW51eGZzIHBzZXVkbyBmaWxlc3lzdGVtIGZvciBleHBvcnRpbmcgdGhlIHNlY3VyaXR5IHBvbGljeSBBUEkuCiAgICBCYXNlZCBvbiB0aGUgcHJvYyBjb2RlIGFuZCB0aGUgZnMvbmZzZC9uZnNjdGwuYyBjb2RlLiAqLwpAQCAtNTcsMTQgKzU3LDE4IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGNoZWNrcmVxcHJvdF9zZXR1cChjaGFyICpzdHIpCiB7Ci0Jc2VsaW51eF9jaGVja3JlcXByb3QgPSBzaW1wbGVfc3RydG91bChzdHIsIE5VTEwsIDApID8gMSA6IDA7CisJdW5zaWduZWQgbG9uZyBjaGVja3JlcXByb3Q7CisJaWYgKCFzdHJpY3Rfc3RydG91bChzdHIsIDAsICZjaGVja3JlcXByb3QpKQorCQlzZWxpbnV4X2NoZWNrcmVxcHJvdCA9IGNoZWNrcmVxcHJvdCA/IDEgOiAwOwogCXJldHVybiAxOwogfQogX19zZXR1cCgiY2hlY2tyZXFwcm90PSIsIGNoZWNrcmVxcHJvdF9zZXR1cCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IHNlbGludXhfY29tcGF0X25ldF9zZXR1cChjaGFyICpzdHIpCiB7Ci0Jc2VsaW51eF9jb21wYXRfbmV0ID0gc2ltcGxlX3N0cnRvdWwoc3RyLCBOVUxMLCAwKSA/IDEgOiAwOworCXVuc2lnbmVkIGxvbmcgY29tcGF0X25ldDsKKwlpZiAoIXN0cmljdF9zdHJ0b3VsKHN0ciwgMCwgJmNvbXBhdF9uZXQpKQorCQlzZWxpbnV4X2NvbXBhdF9uZXQgPSBjb21wYXRfbmV0ID8gMSA6IDA7CiAJcmV0dXJuIDE7CiB9CiBfX3NldHVwKCJzZWxpbnV4X2NvbXBhdF9uZXQ9Iiwgc2VsaW51eF9jb21wYXRfbmV0X3NldHVwKTsKQEAgLTM1MiwxMSArMzU2LDYgQEAKIAkJbGVuZ3RoID0gY291bnQ7CiAKIG91dDE6Ci0KLQlwcmludGsoS0VSTl9JTkZPICJTRUxpbnV4OiBwb2xpY3kgbG9hZGVkIHdpdGggaGFuZGxlX3Vua25vd249JXNcbiIsCi0JICAgICAgIChzZWN1cml0eV9nZXRfcmVqZWN0X3Vua25vd24oKSA/ICJyZWplY3QiIDoKLQkJKHNlY3VyaXR5X2dldF9hbGxvd191bmtub3duKCkgPyAiYWxsb3ciIDogImRlbnkiKSkpOwotCiAJYXVkaXRfbG9nKGN1cnJlbnQtPmF1ZGl0X2NvbnRleHQsIEdGUF9LRVJORUwsIEFVRElUX01BQ19QT0xJQ1lfTE9BRCwKIAkJInBvbGljeSBsb2FkZWQgYXVpZD0ldSBzZXM9JXUiLAogCQlhdWRpdF9nZXRfbG9naW51aWQoY3VycmVudCksCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL2F2dGFiLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL2F2dGFiLmMKaW5kZXggOWU2NjI2My4uYTFiZTk3ZiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9hdnRhYi5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3MvYXZ0YWIuYwpAQCAtMzExLDcgKzMxMSw3IEBACiAJfQogCiAJcHJpbnRrKEtFUk5fREVCVUcgIlNFTGludXg6ICVzOiAgJWQgZW50cmllcyBhbmQgJWQvJWQgYnVja2V0cyB1c2VkLCAiCi0JICAgICAgICJsb25nZXN0IGNoYWluIGxlbmd0aCAlZCBzdW0gb2YgY2hhaW4gbGVuZ3RoXjIgJUx1XG4iLAorCSAgICAgICAibG9uZ2VzdCBjaGFpbiBsZW5ndGggJWQgc3VtIG9mIGNoYWluIGxlbmd0aF4yICVsbHVcbiIsCiAJICAgICAgIHRhZywgaC0+bmVsLCBzbG90c191c2VkLCBoLT5uc2xvdCwgbWF4X2NoYWluX2xlbiwKIAkgICAgICAgY2hhaW4yX2xlbl9zdW0pOwogfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9jb250ZXh0LmggYi9zZWN1cml0eS9zZWxpbnV4L3NzL2NvbnRleHQuaAppbmRleCBiOWE2ZjdmLi42NThjMmJkIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL2NvbnRleHQuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL2NvbnRleHQuaApAQCAtMjgsNiArMjgsOCBAQAogCXUzMiByb2xlOwogCXUzMiB0eXBlOwogCXN0cnVjdCBtbHNfcmFuZ2UgcmFuZ2U7CisJY2hhciAqc3RyOwkvKiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaWYgY29udGV4dCBjYW5ub3QgYmUgbWFwcGVkLiAqLworCXUzMiBsZW47ICAgICAgICAvKiBsZW5ndGggb2Ygc3RyaW5nIGluIGJ5dGVzICovCiB9OwogCiBzdGF0aWMgaW5saW5lIHZvaWQgbWxzX2NvbnRleHRfaW5pdChzdHJ1Y3QgY29udGV4dCAqYykKQEAgLTEwNiwyMCArMTA4LDQzIEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IGNvbnRleHRfY3B5KHN0cnVjdCBjb250ZXh0ICpkc3QsIHN0cnVjdCBjb250ZXh0ICpzcmMpCiB7CisJaW50IHJjOworCiAJZHN0LT51c2VyID0gc3JjLT51c2VyOwogCWRzdC0+cm9sZSA9IHNyYy0+cm9sZTsKIAlkc3QtPnR5cGUgPSBzcmMtPnR5cGU7Ci0JcmV0dXJuIG1sc19jb250ZXh0X2NweShkc3QsIHNyYyk7CisJaWYgKHNyYy0+c3RyKSB7CisJCWRzdC0+c3RyID0ga3N0cmR1cChzcmMtPnN0ciwgR0ZQX0FUT01JQyk7CisJCWlmICghZHN0LT5zdHIpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJZHN0LT5sZW4gPSBzcmMtPmxlbjsKKwl9IGVsc2UgeworCQlkc3QtPnN0ciA9IE5VTEw7CisJCWRzdC0+bGVuID0gMDsKKwl9CisJcmMgPSBtbHNfY29udGV4dF9jcHkoZHN0LCBzcmMpOworCWlmIChyYykgeworCQlrZnJlZShkc3QtPnN0cik7CisJCXJldHVybiByYzsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb250ZXh0X2Rlc3Ryb3koc3RydWN0IGNvbnRleHQgKmMpCiB7CiAJYy0+dXNlciA9IGMtPnJvbGUgPSBjLT50eXBlID0gMDsKKwlrZnJlZShjLT5zdHIpOworCWMtPnN0ciA9IE5VTEw7CisJYy0+bGVuID0gMDsKIAltbHNfY29udGV4dF9kZXN0cm95KGMpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBjb250ZXh0X2NtcChzdHJ1Y3QgY29udGV4dCAqYzEsIHN0cnVjdCBjb250ZXh0ICpjMikKIHsKKwlpZiAoYzEtPmxlbiAmJiBjMi0+bGVuKQorCQlyZXR1cm4gKGMxLT5sZW4gPT0gYzItPmxlbiAmJiAhc3RyY21wKGMxLT5zdHIsIGMyLT5zdHIpKTsKKwlpZiAoYzEtPmxlbiB8fCBjMi0+bGVuKQorCQlyZXR1cm4gMDsKIAlyZXR1cm4gKChjMS0+dXNlciA9PSBjMi0+dXNlcikgJiYKIAkJKGMxLT5yb2xlID09IGMyLT5yb2xlKSAmJgogCQkoYzEtPnR5cGUgPT0gYzItPnR5cGUpICYmCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuYwppbmRleCA4YjE3MDZiLi43N2Q3NDVkIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmMKQEAgLTIzOSw3ICsyMzksOCBAQAogICogUG9saWN5IHJlYWQtbG9jayBtdXN0IGJlIGhlbGQgZm9yIHNpZHRhYiBsb29rdXAuCiAgKgogICovCi1pbnQgbWxzX2NvbnRleHRfdG9fc2lkKGNoYXIgb2xkYywKK2ludCBtbHNfY29udGV4dF90b19zaWQoc3RydWN0IHBvbGljeWRiICpwb2wsCisJCSAgICAgICBjaGFyIG9sZGMsCiAJCSAgICAgICBjaGFyICoqc2NvbnRleHQsCiAJCSAgICAgICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKIAkJICAgICAgIHN0cnVjdCBzaWR0YWIgKnMsCkBAIC0yODYsNyArMjg3LDcgQEAKIAkJKnArKyA9IDA7CiAKIAlmb3IgKGwgPSAwOyBsIDwgMjsgbCsrKSB7Ci0JCWxldmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF9sZXZlbHMudGFibGUsIHNjb250ZXh0cCk7CisJCWxldmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX2xldmVscy50YWJsZSwgc2NvbnRleHRwKTsKIAkJaWYgKCFsZXZkYXR1bSkgewogCQkJcmMgPSAtRUlOVkFMOwogCQkJZ290byBvdXQ7CkBAIC0zMTEsNyArMzEyLDcgQEAKIAkJCQkJKnJuZ3B0cisrID0gMDsKIAkJCQl9CiAKLQkJCQljYXRkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfY2F0cy50YWJsZSwKKwkJCQljYXRkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF9jYXRzLnRhYmxlLAogCQkJCQkJCSAgc2NvbnRleHRwKTsKIAkJCQlpZiAoIWNhdGRhdHVtKSB7CiAJCQkJCXJjID0gLUVJTlZBTDsKQEAgLTMyNyw3ICszMjgsNyBAQAogCQkJCWlmIChybmdwdHIpIHsKIAkJCQkJaW50IGk7CiAKLQkJCQkJcm5nZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX2NhdHMudGFibGUsIHJuZ3B0cik7CisJCQkJCXJuZ2RhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX2NhdHMudGFibGUsIHJuZ3B0cik7CiAJCQkJCWlmICghcm5nZGF0dW0pIHsKIAkJCQkJCXJjID0gLUVJTlZBTDsKIAkJCQkJCWdvdG8gb3V0OwpAQCAtMzk1LDcgKzM5Niw3IEBACiAJaWYgKCF0bXBzdHIpIHsKIAkJcmMgPSAtRU5PTUVNOwogCX0gZWxzZSB7Ci0JCXJjID0gbWxzX2NvbnRleHRfdG9fc2lkKCc6JywgJnRtcHN0ciwgY29udGV4dCwKKwkJcmMgPSBtbHNfY29udGV4dF90b19zaWQoJnBvbGljeWRiLCAnOicsICZ0bXBzdHIsIGNvbnRleHQsCiAJCQkJCU5VTEwsIFNFQ1NJRF9OVUxMKTsKIAkJa2ZyZWUoZnJlZXN0cik7CiAJfQpAQCAtNDM2LDEzICs0MzcsMTMgQEAKIAkJc3RydWN0IG1sc19sZXZlbCAqdXNlcmNvbl9jbHIgPSAmKHVzZXJjb24tPnJhbmdlLmxldmVsWzFdKTsKIAogCQkvKiBIb25vciB0aGUgdXNlcidzIGRlZmF1bHQgbGV2ZWwgaWYgd2UgY2FuICovCi0JCWlmIChtbHNfbGV2ZWxfYmV0d2Vlbih1c2VyX2RlZiwgZnJvbWNvbl9zZW4sIGZyb21jb25fY2xyKSkgeworCQlpZiAobWxzX2xldmVsX2JldHdlZW4odXNlcl9kZWYsIGZyb21jb25fc2VuLCBmcm9tY29uX2NscikpCiAJCQkqdXNlcmNvbl9zZW4gPSAqdXNlcl9kZWY7Ci0JCX0gZWxzZSBpZiAobWxzX2xldmVsX2JldHdlZW4oZnJvbWNvbl9zZW4sIHVzZXJfZGVmLCB1c2VyX2NscikpIHsKKwkJZWxzZSBpZiAobWxzX2xldmVsX2JldHdlZW4oZnJvbWNvbl9zZW4sIHVzZXJfZGVmLCB1c2VyX2NscikpCiAJCQkqdXNlcmNvbl9zZW4gPSAqZnJvbWNvbl9zZW47Ci0JCX0gZWxzZSBpZiAobWxzX2xldmVsX2JldHdlZW4oZnJvbWNvbl9jbHIsIHVzZXJfbG93LCB1c2VyX2RlZikpIHsKKwkJZWxzZSBpZiAobWxzX2xldmVsX2JldHdlZW4oZnJvbWNvbl9jbHIsIHVzZXJfbG93LCB1c2VyX2RlZikpCiAJCQkqdXNlcmNvbl9zZW4gPSAqdXNlcl9sb3c7Ci0JCX0gZWxzZQorCQllbHNlCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkvKiBMb3dlciB0aGUgY2xlYXJhbmNlIG9mIGF2YWlsYWJsZSBjb250ZXh0cwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuaCBiL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmgKaW5kZXggMGZkZjYyNS4uMTI3NjcxNSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5oCkBAIC0zMCw3ICszMCw4IEBACiBpbnQgbWxzX3JhbmdlX2lzdmFsaWQoc3RydWN0IHBvbGljeWRiICpwLCBzdHJ1Y3QgbWxzX3JhbmdlICpyKTsKIGludCBtbHNfbGV2ZWxfaXN2YWxpZChzdHJ1Y3QgcG9saWN5ZGIgKnAsIHN0cnVjdCBtbHNfbGV2ZWwgKmwpOwogCi1pbnQgbWxzX2NvbnRleHRfdG9fc2lkKGNoYXIgb2xkYywKK2ludCBtbHNfY29udGV4dF90b19zaWQoc3RydWN0IHBvbGljeWRiICpwLAorCQkgICAgICAgY2hhciBvbGRjLAogCQkgICAgICAgY2hhciAqKnNjb250ZXh0LAogCQkgICAgICAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCiAJCSAgICAgICBzdHJ1Y3Qgc2lkdGFiICpzLApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jCmluZGV4IDg0ZjhjYzcuLjIzOTE3NjEgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmMKQEAgLTE0NzgsNyArMTQ3OCw4IEBACiAJc3RydWN0IG9jb250ZXh0ICpsLCAqYywgKm5ld2M7CiAJc3RydWN0IGdlbmZzICpnZW5mc19wLCAqZ2VuZnMsICpuZXdnZW5mczsKIAlpbnQgaSwgaiwgcmM7Ci0JX19sZTMyIGJ1Zls4XTsKKwlfX2xlMzIgYnVmWzRdOworCXUzMiBub2RlYnVmWzhdOwogCXUzMiBsZW4sIGxlbjIsIGNvbmZpZywgbnByaW0sIG5lbCwgbmVsMjsKIAljaGFyICpwb2xpY3lkYl9zdHI7CiAJc3RydWN0IHBvbGljeWRiX2NvbXBhdF9pbmZvICppbmZvOwpAQCAtMTc0OSwxMSArMTc1MCwxMSBAQAogCQkJCQlnb3RvIGJhZDsKIAkJCQlicmVhazsKIAkJCWNhc2UgT0NPTl9OT0RFOgotCQkJCXJjID0gbmV4dF9lbnRyeShidWYsIGZwLCBzaXplb2YodTMyKSAqIDIpOworCQkJCXJjID0gbmV4dF9lbnRyeShub2RlYnVmLCBmcCwgc2l6ZW9mKHUzMikgKiAyKTsKIAkJCQlpZiAocmMgPCAwKQogCQkJCQlnb3RvIGJhZDsKLQkJCQljLT51Lm5vZGUuYWRkciA9IGxlMzJfdG9fY3B1KGJ1ZlswXSk7Ci0JCQkJYy0+dS5ub2RlLm1hc2sgPSBsZTMyX3RvX2NwdShidWZbMV0pOworCQkJCWMtPnUubm9kZS5hZGRyID0gbm9kZWJ1ZlswXTsgLyogbmV0d29yayBvcmRlciAqLworCQkJCWMtPnUubm9kZS5tYXNrID0gbm9kZWJ1ZlsxXTsgLyogbmV0d29yayBvcmRlciAqLwogCQkJCXJjID0gY29udGV4dF9yZWFkX2FuZF92YWxpZGF0ZSgmYy0+Y29udGV4dFswXSwgcCwgZnApOwogCQkJCWlmIChyYykKIAkJCQkJZ290byBiYWQ7CkBAIC0xNzgyLDEzICsxNzgzLDEzIEBACiAJCQljYXNlIE9DT05fTk9ERTY6IHsKIAkJCQlpbnQgazsKIAotCQkJCXJjID0gbmV4dF9lbnRyeShidWYsIGZwLCBzaXplb2YodTMyKSAqIDgpOworCQkJCXJjID0gbmV4dF9lbnRyeShub2RlYnVmLCBmcCwgc2l6ZW9mKHUzMikgKiA4KTsKIAkJCQlpZiAocmMgPCAwKQogCQkJCQlnb3RvIGJhZDsKIAkJCQlmb3IgKGsgPSAwOyBrIDwgNDsgaysrKQotCQkJCQljLT51Lm5vZGU2LmFkZHJba10gPSBsZTMyX3RvX2NwdShidWZba10pOworCQkJCQljLT51Lm5vZGU2LmFkZHJba10gPSBub2RlYnVmW2tdOwogCQkJCWZvciAoayA9IDA7IGsgPCA0OyBrKyspCi0JCQkJCWMtPnUubm9kZTYubWFza1trXSA9IGxlMzJfdG9fY3B1KGJ1ZltrKzRdKTsKKwkJCQkJYy0+dS5ub2RlNi5tYXNrW2tdID0gbm9kZWJ1ZltrKzRdOwogCQkJCWlmIChjb250ZXh0X3JlYWRfYW5kX3ZhbGlkYXRlKCZjLT5jb250ZXh0WzBdLCBwLCBmcCkpCiAJCQkJCWdvdG8gYmFkOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jCmluZGV4IGRjYzJlMWMuLmI1MmY5MjMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2VydmljZXMuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMKQEAgLTcxLDE0ICs3MSw2IEBACiBleHRlcm4gY29uc3Qgc3RydWN0IHNlbGludXhfY2xhc3NfcGVybSBzZWxpbnV4X2NsYXNzX3Blcm07CiAKIHN0YXRpYyBERUZJTkVfUldMT0NLKHBvbGljeV9yd2xvY2spOwotI2RlZmluZSBQT0xJQ1lfUkRMT0NLIHJlYWRfbG9jaygmcG9saWN5X3J3bG9jaykKLSNkZWZpbmUgUE9MSUNZX1dSTE9DSyB3cml0ZV9sb2NrX2lycSgmcG9saWN5X3J3bG9jaykKLSNkZWZpbmUgUE9MSUNZX1JEVU5MT0NLIHJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKQotI2RlZmluZSBQT0xJQ1lfV1JVTkxPQ0sgd3JpdGVfdW5sb2NrX2lycSgmcG9saWN5X3J3bG9jaykKLQotc3RhdGljIERFRklORV9NVVRFWChsb2FkX211dGV4KTsKLSNkZWZpbmUgTE9BRF9MT0NLIG11dGV4X2xvY2soJmxvYWRfbXV0ZXgpCi0jZGVmaW5lIExPQURfVU5MT0NLIG11dGV4X3VubG9jaygmbG9hZF9tdXRleCkKIAogc3RhdGljIHN0cnVjdCBzaWR0YWIgc2lkdGFiOwogc3RydWN0IHBvbGljeWRiIHBvbGljeWRiOwpAQCAtMzMyLDcgKzMyNCw3IEBACiAJCWdvdG8gaW52YWxfY2xhc3M7CiAJaWYgKHVubGlrZWx5KHRjbGFzcyA+IHBvbGljeWRiLnBfY2xhc3Nlcy5ucHJpbSkpCiAJCWlmICh0Y2xhc3MgPiBrZGVmcy0+Y3RzX2xlbiB8fAotCQkgICAgIWtkZWZzLT5jbGFzc190b19zdHJpbmdbdGNsYXNzIC0gMV0gfHwKKwkJICAgICFrZGVmcy0+Y2xhc3NfdG9fc3RyaW5nW3RjbGFzc10gfHwKIAkJICAgICFwb2xpY3lkYi5hbGxvd191bmtub3duKQogCQkJZ290byBpbnZhbF9jbGFzczsKIApAQCAtNDE1LDkgKzQwNywxOSBAQAogCXJldHVybiAwOwogCiBpbnZhbF9jbGFzczoKLQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICVzOiAgdW5yZWNvZ25pemVkIGNsYXNzICVkXG4iLCBfX2Z1bmNfXywKLQkJdGNsYXNzKTsKLQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIXRjbGFzcyB8fCB0Y2xhc3MgPiBrZGVmcy0+Y3RzX2xlbiB8fAorCSAgICAha2RlZnMtPmNsYXNzX3RvX3N0cmluZ1t0Y2xhc3NdKSB7CisJCWlmIChwcmludGtfcmF0ZWxpbWl0KCkpCisJCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICVzOiAgdW5yZWNvZ25pemVkIGNsYXNzICVkXG4iLAorCQkJICAgICAgIF9fZnVuY19fLCB0Y2xhc3MpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKgorCSAqIEtub3duIHRvIHRoZSBrZXJuZWwsIGJ1dCBub3QgdG8gdGhlIHBvbGljeS4KKwkgKiBIYW5kbGUgYXMgYSBkZW5pYWwgKGFsbG93ZWQgaXMgMCkuCisJICovCisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC00MjksNyArNDMxLDcgQEAKIAl1MzIgdHlwZTsKIAlpbnQgcmM7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAljb250ZXh0ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzaWQpOwogCUJVR19PTighY29udGV4dCk7CkBAIC00NDEsNyArNDQzLDcgQEAKIAkgKi8KIAlyYyA9IGViaXRtYXBfZ2V0X2JpdCgmcG9saWN5ZGIucGVybWlzc2l2ZV9tYXAsIHR5cGUpOwogCi0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTQ4Niw3ICs0ODgsNyBAQAogCWlmICghc3NfaW5pdGlhbGl6ZWQpCiAJCXJldHVybiAwOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJLyoKIAkgKiBSZW1hcCBleHRlbmRlZCBOZXRsaW5rIGNsYXNzZXMgZm9yIG9sZCBwb2xpY3kgdmVyc2lvbnMuCkBAIC01NDMsNyArNTQ1LDcgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtNTc4LDcgKzU4MCw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXNjb250ZXh0ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzc2lkKTsKIAlpZiAoIXNjb250ZXh0KSB7CkBAIC01OTgsNyArNjAwLDcgQEAKIAlyYyA9IGNvbnRleHRfc3RydWN0X2NvbXB1dGVfYXYoc2NvbnRleHQsIHRjb250ZXh0LCB0Y2xhc3MsCiAJCQkJICAgICAgIHJlcXVlc3RlZCwgYXZkKTsKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtNjE2LDYgKzYxOCwxNCBAQAogCSpzY29udGV4dCA9IE5VTEw7CiAJKnNjb250ZXh0X2xlbiA9IDA7CiAKKwlpZiAoY29udGV4dC0+bGVuKSB7CisJCSpzY29udGV4dF9sZW4gPSBjb250ZXh0LT5sZW47CisJCSpzY29udGV4dCA9IGtzdHJkdXAoY29udGV4dC0+c3RyLCBHRlBfQVRPTUlDKTsKKwkJaWYgKCEoKnNjb250ZXh0KSkKKwkJCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gMDsKKwl9CisKIAkvKiBDb21wdXRlIHRoZSBzaXplIG9mIHRoZSBjb250ZXh0LiAqLwogCSpzY29udGV4dF9sZW4gKz0gc3RybGVuKHBvbGljeWRiLnBfdXNlcl92YWxfdG9fbmFtZVtjb250ZXh0LT51c2VyIC0gMV0pICsgMTsKIAkqc2NvbnRleHRfbGVuICs9IHN0cmxlbihwb2xpY3lkYi5wX3JvbGVfdmFsX3RvX25hbWVbY29udGV4dC0+cm9sZSAtIDFdKSArIDE7CkBAIC02NTUsMTcgKzY2NSw4IEBACiAJcmV0dXJuIGluaXRpYWxfc2lkX3RvX3N0cmluZ1tzaWRdOwogfQogCi0vKioKLSAqIHNlY3VyaXR5X3NpZF90b19jb250ZXh0IC0gT2J0YWluIGEgY29udGV4dCBmb3IgYSBnaXZlbiBTSUQuCi0gKiBAc2lkOiBzZWN1cml0eSBpZGVudGlmaWVyLCBTSUQKLSAqIEBzY29udGV4dDogc2VjdXJpdHkgY29udGV4dAotICogQHNjb250ZXh0X2xlbjogbGVuZ3RoIGluIGJ5dGVzCi0gKgotICogV3JpdGUgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggQHNpZAotICogaW50byBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBzdHJpbmcgb2YgdGhlIGNvcnJlY3Qgc2l6ZS4gIFNldCBAc2NvbnRleHQKLSAqIHRvIHBvaW50IHRvIHRoaXMgc3RyaW5nIGFuZCBzZXQgQHNjb250ZXh0X2xlbiB0byB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCi0gKi8KLWludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dCh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsIHUzMiAqc2NvbnRleHRfbGVuKQorc3RhdGljIGludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9jb3JlKHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwKKwkJCQkJdTMyICpzY29udGV4dF9sZW4sIGludCBmb3JjZSkKIHsKIAlzdHJ1Y3QgY29udGV4dCAqY29udGV4dDsKIAlpbnQgcmMgPSAwOwpAQCAtNjkyLDggKzY5MywxMSBAQAogCQlyYyA9IC1FSU5WQUw7CiAJCWdvdG8gb3V0OwogCX0KLQlQT0xJQ1lfUkRMT0NLOwotCWNvbnRleHQgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNpZCk7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKKwlpZiAoZm9yY2UpCisJCWNvbnRleHQgPSBzaWR0YWJfc2VhcmNoX2ZvcmNlKCZzaWR0YWIsIHNpZCk7CisJZWxzZQorCQljb250ZXh0ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzaWQpOwogCWlmICghY29udGV4dCkgewogCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICVzOiAgdW5yZWNvZ25pemVkIFNJRCAlZFxuIiwKIAkJCV9fZnVuY19fLCBzaWQpOwpAQCAtNzAyLDU5ICs3MDYsNTQgQEAKIAl9CiAJcmMgPSBjb250ZXh0X3N0cnVjdF90b19zdHJpbmcoY29udGV4dCwgc2NvbnRleHQsIHNjb250ZXh0X2xlbik7CiBvdXRfdW5sb2NrOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiBvdXQ6CiAJcmV0dXJuIHJjOwogCiB9CiAKLXN0YXRpYyBpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWRfY29yZShjb25zdCBjaGFyICpzY29udGV4dCwgdTMyIHNjb250ZXh0X2xlbiwKLQkJCQkJdTMyICpzaWQsIHUzMiBkZWZfc2lkLCBnZnBfdCBnZnBfZmxhZ3MpCisvKioKKyAqIHNlY3VyaXR5X3NpZF90b19jb250ZXh0IC0gT2J0YWluIGEgY29udGV4dCBmb3IgYSBnaXZlbiBTSUQuCisgKiBAc2lkOiBzZWN1cml0eSBpZGVudGlmaWVyLCBTSUQKKyAqIEBzY29udGV4dDogc2VjdXJpdHkgY29udGV4dAorICogQHNjb250ZXh0X2xlbjogbGVuZ3RoIGluIGJ5dGVzCisgKgorICogV3JpdGUgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggQHNpZAorICogaW50byBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBzdHJpbmcgb2YgdGhlIGNvcnJlY3Qgc2l6ZS4gIFNldCBAc2NvbnRleHQKKyAqIHRvIHBvaW50IHRvIHRoaXMgc3RyaW5nIGFuZCBzZXQgQHNjb250ZXh0X2xlbiB0byB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKi8KK2ludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dCh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsIHUzMiAqc2NvbnRleHRfbGVuKQogewotCWNoYXIgKnNjb250ZXh0MjsKLQlzdHJ1Y3QgY29udGV4dCBjb250ZXh0OworCXJldHVybiBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9jb3JlKHNpZCwgc2NvbnRleHQsIHNjb250ZXh0X2xlbiwgMCk7Cit9CisKK2ludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZSh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsIHUzMiAqc2NvbnRleHRfbGVuKQoreworCXJldHVybiBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9jb3JlKHNpZCwgc2NvbnRleHQsIHNjb250ZXh0X2xlbiwgMSk7Cit9CisKKy8qCisgKiBDYXZlYXQ6ICBNdXRhdGVzIHNjb250ZXh0LgorICovCitzdGF0aWMgaW50IHN0cmluZ190b19jb250ZXh0X3N0cnVjdChzdHJ1Y3QgcG9saWN5ZGIgKnBvbCwKKwkJCQkgICAgc3RydWN0IHNpZHRhYiAqc2lkdGFicCwKKwkJCQkgICAgY2hhciAqc2NvbnRleHQsCisJCQkJICAgIHUzMiBzY29udGV4dF9sZW4sCisJCQkJICAgIHN0cnVjdCBjb250ZXh0ICpjdHgsCisJCQkJICAgIHUzMiBkZWZfc2lkKQorewogCXN0cnVjdCByb2xlX2RhdHVtICpyb2xlOwogCXN0cnVjdCB0eXBlX2RhdHVtICp0eXBkYXR1bTsKIAlzdHJ1Y3QgdXNlcl9kYXR1bSAqdXNyZGF0dW07CiAJY2hhciAqc2NvbnRleHRwLCAqcCwgb2xkYzsKIAlpbnQgcmMgPSAwOwogCi0JaWYgKCFzc19pbml0aWFsaXplZCkgewotCQlpbnQgaTsKLQotCQlmb3IgKGkgPSAxOyBpIDwgU0VDSU5JVFNJRF9OVU07IGkrKykgewotCQkJaWYgKCFzdHJjbXAoaW5pdGlhbF9zaWRfdG9fc3RyaW5nW2ldLCBzY29udGV4dCkpIHsKLQkJCQkqc2lkID0gaTsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQkJfQotCQkqc2lkID0gU0VDSU5JVFNJRF9LRVJORUw7Ci0JCWdvdG8gb3V0OwotCX0KLQkqc2lkID0gU0VDU0lEX05VTEw7Ci0KLQkvKiBDb3B5IHRoZSBzdHJpbmcgc28gdGhhdCB3ZSBjYW4gbW9kaWZ5IHRoZSBjb3B5IGFzIHdlIHBhcnNlIGl0LgotCSAgIFRoZSBzdHJpbmcgc2hvdWxkIGFscmVhZHkgYnkgbnVsbCB0ZXJtaW5hdGVkLCBidXQgd2UgYXBwZW5kIGEKLQkgICBudWxsIHN1ZmZpeCB0byB0aGUgY29weSB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIHRoZSBleGlzdGluZwotCSAgIGF0dHIgcGFja2FnZSwgd2hpY2ggZG9lc24ndCB2aWV3IHRoZSBudWxsIHRlcm1pbmF0b3IgYXMgcGFydAotCSAgIG9mIHRoZSBhdHRyaWJ1dGUgdmFsdWUuICovCi0Jc2NvbnRleHQyID0ga21hbGxvYyhzY29udGV4dF9sZW4rMSwgZ2ZwX2ZsYWdzKTsKLQlpZiAoIXNjb250ZXh0MikgewotCQlyYyA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0OwotCX0KLQltZW1jcHkoc2NvbnRleHQyLCBzY29udGV4dCwgc2NvbnRleHRfbGVuKTsKLQlzY29udGV4dDJbc2NvbnRleHRfbGVuXSA9IDA7Ci0KLQljb250ZXh0X2luaXQoJmNvbnRleHQpOwotCSpzaWQgPSBTRUNTSURfTlVMTDsKLQotCVBPTElDWV9SRExPQ0s7CisJY29udGV4dF9pbml0KGN0eCk7CiAKIAkvKiBQYXJzZSB0aGUgc2VjdXJpdHkgY29udGV4dC4gKi8KIAogCXJjID0gLUVJTlZBTDsKLQlzY29udGV4dHAgPSAoY2hhciAqKSBzY29udGV4dDI7CisJc2NvbnRleHRwID0gKGNoYXIgKikgc2NvbnRleHQ7CiAKIAkvKiBFeHRyYWN0IHRoZSB1c2VyLiAqLwogCXAgPSBzY29udGV4dHA7CkBAIC03NjIsMTUgKzc2MSwxNSBAQAogCQlwKys7CiAKIAlpZiAoKnAgPT0gMCkKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAogCSpwKysgPSAwOwogCi0JdXNyZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX3VzZXJzLnRhYmxlLCBzY29udGV4dHApOworCXVzcmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX3VzZXJzLnRhYmxlLCBzY29udGV4dHApOwogCWlmICghdXNyZGF0dW0pCi0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAKLQljb250ZXh0LnVzZXIgPSB1c3JkYXR1bS0+dmFsdWU7CisJY3R4LT51c2VyID0gdXNyZGF0dW0tPnZhbHVlOwogCiAJLyogRXh0cmFjdCByb2xlLiAqLwogCXNjb250ZXh0cCA9IHA7CkBAIC03NzgsMTQgKzc3NywxNCBAQAogCQlwKys7CiAKIAlpZiAoKnAgPT0gMCkKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAogCSpwKysgPSAwOwogCi0Jcm9sZSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfcm9sZXMudGFibGUsIHNjb250ZXh0cCk7CisJcm9sZSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF9yb2xlcy50YWJsZSwgc2NvbnRleHRwKTsKIAlpZiAoIXJvbGUpCi0JCWdvdG8gb3V0X3VubG9jazsKLQljb250ZXh0LnJvbGUgPSByb2xlLT52YWx1ZTsKKwkJZ290byBvdXQ7CisJY3R4LT5yb2xlID0gcm9sZS0+dmFsdWU7CiAKIAkvKiBFeHRyYWN0IHR5cGUuICovCiAJc2NvbnRleHRwID0gcDsKQEAgLTc5NCwzNiArNzkzLDkwIEBACiAJb2xkYyA9ICpwOwogCSpwKysgPSAwOwogCi0JdHlwZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX3R5cGVzLnRhYmxlLCBzY29udGV4dHApOworCXR5cGRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX3R5cGVzLnRhYmxlLCBzY29udGV4dHApOwogCWlmICghdHlwZGF0dW0pCi0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAKLQljb250ZXh0LnR5cGUgPSB0eXBkYXR1bS0+dmFsdWU7CisJY3R4LT50eXBlID0gdHlwZGF0dW0tPnZhbHVlOwogCi0JcmMgPSBtbHNfY29udGV4dF90b19zaWQob2xkYywgJnAsICZjb250ZXh0LCAmc2lkdGFiLCBkZWZfc2lkKTsKKwlyYyA9IG1sc19jb250ZXh0X3RvX3NpZChwb2wsIG9sZGMsICZwLCBjdHgsIHNpZHRhYnAsIGRlZl9zaWQpOwogCWlmIChyYykKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAotCWlmICgocCAtIHNjb250ZXh0MikgPCBzY29udGV4dF9sZW4pIHsKKwlpZiAoKHAgLSBzY29udGV4dCkgPCBzY29udGV4dF9sZW4pIHsKIAkJcmMgPSAtRUlOVkFMOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qIENoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgbmV3IGNvbnRleHQuICovCi0JaWYgKCFwb2xpY3lkYl9jb250ZXh0X2lzdmFsaWQoJnBvbGljeWRiLCAmY29udGV4dCkpIHsKKwlpZiAoIXBvbGljeWRiX2NvbnRleHRfaXN2YWxpZChwb2wsIGN0eCkpIHsKIAkJcmMgPSAtRUlOVkFMOwotCQlnb3RvIG91dF91bmxvY2s7CisJCWNvbnRleHRfZGVzdHJveShjdHgpOworCQlnb3RvIG91dDsKIAl9Ci0JLyogT2J0YWluIHRoZSBuZXcgc2lkLiAqLwotCXJjID0gc2lkdGFiX2NvbnRleHRfdG9fc2lkKCZzaWR0YWIsICZjb250ZXh0LCBzaWQpOwotb3V0X3VubG9jazoKLQlQT0xJQ1lfUkRVTkxPQ0s7Ci0JY29udGV4dF9kZXN0cm95KCZjb250ZXh0KTsKLQlrZnJlZShzY29udGV4dDIpOworCXJjID0gMDsKIG91dDoKIAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWRfY29yZShjb25zdCBjaGFyICpzY29udGV4dCwgdTMyIHNjb250ZXh0X2xlbiwKKwkJCQkJdTMyICpzaWQsIHUzMiBkZWZfc2lkLCBnZnBfdCBnZnBfZmxhZ3MsCisJCQkJCWludCBmb3JjZSkKK3sKKwljaGFyICpzY29udGV4dDIsICpzdHIgPSBOVUxMOworCXN0cnVjdCBjb250ZXh0IGNvbnRleHQ7CisJaW50IHJjID0gMDsKKworCWlmICghc3NfaW5pdGlhbGl6ZWQpIHsKKwkJaW50IGk7CisKKwkJZm9yIChpID0gMTsgaSA8IFNFQ0lOSVRTSURfTlVNOyBpKyspIHsKKwkJCWlmICghc3RyY21wKGluaXRpYWxfc2lkX3RvX3N0cmluZ1tpXSwgc2NvbnRleHQpKSB7CisJCQkJKnNpZCA9IGk7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCX0KKwkJKnNpZCA9IFNFQ0lOSVRTSURfS0VSTkVMOworCQlyZXR1cm4gMDsKKwl9CisJKnNpZCA9IFNFQ1NJRF9OVUxMOworCisJLyogQ29weSB0aGUgc3RyaW5nIHNvIHRoYXQgd2UgY2FuIG1vZGlmeSB0aGUgY29weSBhcyB3ZSBwYXJzZSBpdC4gKi8KKwlzY29udGV4dDIgPSBrbWFsbG9jKHNjb250ZXh0X2xlbisxLCBnZnBfZmxhZ3MpOworCWlmICghc2NvbnRleHQyKQorCQlyZXR1cm4gLUVOT01FTTsKKwltZW1jcHkoc2NvbnRleHQyLCBzY29udGV4dCwgc2NvbnRleHRfbGVuKTsKKwlzY29udGV4dDJbc2NvbnRleHRfbGVuXSA9IDA7CisKKwlpZiAoZm9yY2UpIHsKKwkJLyogU2F2ZSBhbm90aGVyIGNvcHkgZm9yIHN0b3JpbmcgaW4gdW5pbnRlcnByZXRlZCBmb3JtICovCisJCXN0ciA9IGtzdHJkdXAoc2NvbnRleHQyLCBnZnBfZmxhZ3MpOworCQlpZiAoIXN0cikgeworCQkJa2ZyZWUoc2NvbnRleHQyKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJfQorCisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKKwlyYyA9IHN0cmluZ190b19jb250ZXh0X3N0cnVjdCgmcG9saWN5ZGIsICZzaWR0YWIsCisJCQkJICAgICAgc2NvbnRleHQyLCBzY29udGV4dF9sZW4sCisJCQkJICAgICAgJmNvbnRleHQsIGRlZl9zaWQpOworCWlmIChyYyA9PSAtRUlOVkFMICYmIGZvcmNlKSB7CisJCWNvbnRleHQuc3RyID0gc3RyOworCQljb250ZXh0LmxlbiA9IHNjb250ZXh0X2xlbjsKKwkJc3RyID0gTlVMTDsKKwl9IGVsc2UgaWYgKHJjKQorCQlnb3RvIG91dDsKKwlyYyA9IHNpZHRhYl9jb250ZXh0X3RvX3NpZCgmc2lkdGFiLCAmY29udGV4dCwgc2lkKTsKKwlpZiAocmMpCisJCWNvbnRleHRfZGVzdHJveSgmY29udGV4dCk7CitvdXQ6CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOworCWtmcmVlKHNjb250ZXh0Mik7CisJa2ZyZWUoc3RyKTsKKwlyZXR1cm4gcmM7Cit9CisKIC8qKgogICogc2VjdXJpdHlfY29udGV4dF90b19zaWQgLSBPYnRhaW4gYSBTSUQgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgY29udGV4dC4KICAqIEBzY29udGV4dDogc2VjdXJpdHkgY29udGV4dApAQCAtODM4LDcgKzg5MSw3IEBACiBpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWQoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sIHUzMiAqc2lkKQogewogCXJldHVybiBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9jb3JlKHNjb250ZXh0LCBzY29udGV4dF9sZW4sCi0JCQkJCSAgICBzaWQsIFNFQ1NJRF9OVUxMLCBHRlBfS0VSTkVMKTsKKwkJCQkJICAgIHNpZCwgU0VDU0lEX05VTEwsIEdGUF9LRVJORUwsIDApOwogfQogCiAvKioKQEAgLTg1NSw2ICs5MDgsNyBAQAogICogVGhlIGRlZmF1bHQgU0lEIGlzIHBhc3NlZCB0byB0aGUgTUxTIGxheWVyIHRvIGJlIHVzZWQgdG8gYWxsb3cKICAqIGtlcm5lbCBsYWJlbGluZyBvZiB0aGUgTUxTIGZpZWxkIGlmIHRoZSBNTFMgZmllbGQgaXMgbm90IHByZXNlbnQKICAqIChmb3IgdXBncmFkaW5nIHRvIE1MUyB3aXRob3V0IGZ1bGwgcmVsYWJlbCkuCisgKiBJbXBsaWNpdGx5IGZvcmNlcyBhZGRpbmcgb2YgdGhlIGNvbnRleHQgZXZlbiBpZiBpdCBjYW5ub3QgYmUgbWFwcGVkIHlldC4KICAqIFJldHVybnMgLSVFSU5WQUwgaWYgdGhlIGNvbnRleHQgaXMgaW52YWxpZCwgLSVFTk9NRU0gaWYgaW5zdWZmaWNpZW50CiAgKiBtZW1vcnkgaXMgYXZhaWxhYmxlLCBvciAwIG9uIHN1Y2Nlc3MuCiAgKi8KQEAgLTg2Miw3ICs5MTYsMTQgQEAKIAkJCQkgICAgdTMyICpzaWQsIHUzMiBkZWZfc2lkLCBnZnBfdCBnZnBfZmxhZ3MpCiB7CiAJcmV0dXJuIHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2NvcmUoc2NvbnRleHQsIHNjb250ZXh0X2xlbiwKLQkJCQkJICAgIHNpZCwgZGVmX3NpZCwgZ2ZwX2ZsYWdzKTsKKwkJCQkJICAgIHNpZCwgZGVmX3NpZCwgZ2ZwX2ZsYWdzLCAxKTsKK30KKworaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2ZvcmNlKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAorCQkJCSAgdTMyICpzaWQpCit7CisJcmV0dXJuIHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2NvcmUoc2NvbnRleHQsIHNjb250ZXh0X2xlbiwKKwkJCQkJICAgIHNpZCwgU0VDU0lEX05VTEwsIEdGUF9LRVJORUwsIDEpOwogfQogCiBzdGF0aWMgaW50IGNvbXB1dGVfc2lkX2hhbmRsZV9pbnZhbGlkX2NvbnRleHQoCkBAIC05MjIsNyArOTgzLDcgQEAKIAogCWNvbnRleHRfaW5pdCgmbmV3Y29udGV4dCk7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlzY29udGV4dCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc3NpZCk7CiAJaWYgKCFzY29udGV4dCkgewpAQCAtMTAyNyw3ICsxMDg4LDcgQEAKIAkvKiBPYnRhaW4gdGhlIHNpZCBmb3IgdGhlIGNvbnRleHQuICovCiAJcmMgPSBzaWR0YWJfY29udGV4dF90b19zaWQoJnNpZHRhYiwgJm5ld2NvbnRleHQsIG91dF9zaWQpOwogb3V0X3VubG9jazoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCWNvbnRleHRfZGVzdHJveSgmbmV3Y29udGV4dCk7CiBvdXQ6CiAJcmV0dXJuIHJjOwpAQCAtMTExMCw2ICsxMTcxLDcgQEAKIAljb25zdCBzdHJ1Y3Qgc2VsaW51eF9jbGFzc19wZXJtICprZGVmcyA9ICZzZWxpbnV4X2NsYXNzX3Blcm07CiAJY29uc3QgY2hhciAqZGVmX2NsYXNzLCAqZGVmX3Blcm0sICpwb2xfY2xhc3M7CiAJc3RydWN0IHN5bXRhYiAqcGVybXM7CisJYm9vbCBwcmludF91bmtub3duX2hhbmRsZSA9IDA7CiAKIAlpZiAocC0+YWxsb3dfdW5rbm93bikgewogCQl1MzIgbnVtX2NsYXNzZXMgPSBrZGVmcy0+Y3RzX2xlbjsKQEAgLTExMzAsNiArMTE5Miw3IEBACiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlpZiAocC0+YWxsb3dfdW5rbm93bikKIAkJCQlwLT51bmRlZmluZWRfcGVybXNbaS0xXSA9IH4wVTsKKwkJCXByaW50X3Vua25vd25faGFuZGxlID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXBvbF9jbGFzcyA9IHAtPnBfY2xhc3NfdmFsX3RvX25hbWVbaS0xXTsKQEAgLTExNTksNiArMTIyMiw3IEBACiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlpZiAocC0+YWxsb3dfdW5rbm93bikKIAkJCQlwLT51bmRlZmluZWRfcGVybXNbY2xhc3NfdmFsLTFdIHw9IHBlcm1fdmFsOworCQkJcHJpbnRfdW5rbm93bl9oYW5kbGUgPSAxOwogCQkJY29udGludWU7CiAJCX0KIAkJcGVyZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwZXJtcy0+dGFibGUsIGRlZl9wZXJtKTsKQEAgLTEyMDYsNiArMTI3MCw3IEBACiAJCQkJCXJldHVybiAtRUlOVkFMOwogCQkJCWlmIChwLT5hbGxvd191bmtub3duKQogCQkJCQlwLT51bmRlZmluZWRfcGVybXNbY2xhc3NfdmFsLTFdIHw9ICgxIDw8IGopOworCQkJCXByaW50X3Vua25vd25faGFuZGxlID0gMTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJCXBlcmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocGVybXMtPnRhYmxlLCBkZWZfcGVybSk7CkBAIC0xMjIzLDYgKzEyODgsOSBAQAogCQkJfQogCQl9CiAJfQorCWlmIChwcmludF91bmtub3duX2hhbmRsZSkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiU0VMaW51eDogdGhlIGFib3ZlIHVua25vd24gY2xhc3NlcyBhbmQgcGVybWlzc2lvbnMgd2lsbCBiZSAlc1xuIiwKKwkJCShzZWN1cml0eV9nZXRfYWxsb3dfdW5rbm93bigpID8gImFsbG93ZWQiIDogImRlbmllZCIpKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTI0Niw5ICsxMzE0LDEyIEBACiAJCWNoYXIgKnM7CiAJCXUzMiBsZW47CiAKLQkJY29udGV4dF9zdHJ1Y3RfdG9fc3RyaW5nKGNvbnRleHQsICZzLCAmbGVuKTsKLQkJcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAgY29udGV4dCAlcyBpcyBpbnZhbGlkXG4iLCBzKTsKLQkJa2ZyZWUocyk7CisJCWlmICghY29udGV4dF9zdHJ1Y3RfdG9fc3RyaW5nKGNvbnRleHQsICZzLCAmbGVuKSkgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkgICAgICAgIlNFTGludXg6ICBDb250ZXh0ICVzIHdvdWxkIGJlIGludmFsaWQgaWYgZW5mb3JjaW5nXG4iLAorCQkJICAgICAgIHMpOworCQkJa2ZyZWUocyk7CisJCX0KIAl9CiAJcmV0dXJuIHJjOwogfQpAQCAtMTI4MCw2ICsxMzUxLDM3IEBACiAKIAlhcmdzID0gcDsKIAorCWlmIChjLT5zdHIpIHsKKwkJc3RydWN0IGNvbnRleHQgY3R4OworCQlzID0ga3N0cmR1cChjLT5zdHIsIEdGUF9LRVJORUwpOworCQlpZiAoIXMpIHsKKwkJCXJjID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0OworCQl9CisJCXJjID0gc3RyaW5nX3RvX2NvbnRleHRfc3RydWN0KGFyZ3MtPm5ld3AsIE5VTEwsIHMsCisJCQkJCSAgICAgIGMtPmxlbiwgJmN0eCwgU0VDU0lEX05VTEwpOworCQlrZnJlZShzKTsKKwkJaWYgKCFyYykgeworCQkJcHJpbnRrKEtFUk5fSU5GTworCQkgICAgICAgIlNFTGludXg6ICBDb250ZXh0ICVzIGJlY2FtZSB2YWxpZCAobWFwcGVkKS5cbiIsCisJCQkgICAgICAgYy0+c3RyKTsKKwkJCS8qIFJlcGxhY2Ugc3RyaW5nIHdpdGggbWFwcGVkIHJlcHJlc2VudGF0aW9uLiAqLworCQkJa2ZyZWUoYy0+c3RyKTsKKwkJCW1lbWNweShjLCAmY3R4LCBzaXplb2YoKmMpKTsKKwkJCWdvdG8gb3V0OworCQl9IGVsc2UgaWYgKHJjID09IC1FSU5WQUwpIHsKKwkJCS8qIFJldGFpbiBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIGxhdGVyIG1hcHBpbmcuICovCisJCQlyYyA9IDA7CisJCQlnb3RvIG91dDsKKwkJfSBlbHNlIHsKKwkJCS8qIE90aGVyIGVycm9yIGNvbmRpdGlvbiwgZS5nLiBFTk9NRU0uICovCisJCQlwcmludGsoS0VSTl9FUlIKKwkJICAgICAgICJTRUxpbnV4OiAgIFVuYWJsZSB0byBtYXAgY29udGV4dCAlcywgcmMgPSAlZC5cbiIsCisJCQkgICAgICAgYy0+c3RyLCAtcmMpOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKIAlyYyA9IGNvbnRleHRfY3B5KCZvbGRjLCBjKTsKIAlpZiAocmMpCiAJCWdvdG8gb3V0OwpAQCAtMTMxOSwxMyArMTQyMSwyMSBAQAogCX0KIAogCWNvbnRleHRfZGVzdHJveSgmb2xkYyk7CisJcmMgPSAwOwogb3V0OgogCXJldHVybiByYzsKIGJhZDoKLQljb250ZXh0X3N0cnVjdF90b19zdHJpbmcoJm9sZGMsICZzLCAmbGVuKTsKKwkvKiBNYXAgb2xkIHJlcHJlc2VudGF0aW9uIHRvIHN0cmluZyBhbmQgc2F2ZSBpdC4gKi8KKwlpZiAoY29udGV4dF9zdHJ1Y3RfdG9fc3RyaW5nKCZvbGRjLCAmcywgJmxlbikpCisJCXJldHVybiAtRU5PTUVNOwogCWNvbnRleHRfZGVzdHJveSgmb2xkYyk7Ci0JcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAgaW52YWxpZGF0aW5nIGNvbnRleHQgJXNcbiIsIHMpOwotCWtmcmVlKHMpOworCWNvbnRleHRfZGVzdHJveShjKTsKKwljLT5zdHIgPSBzOworCWMtPmxlbiA9IGxlbjsKKwlwcmludGsoS0VSTl9JTkZPCisJICAgICAgICJTRUxpbnV4OiAgQ29udGV4dCAlcyBiZWNhbWUgaW52YWxpZCAodW5tYXBwZWQpLlxuIiwKKwkgICAgICAgYy0+c3RyKTsKKwlyYyA9IDA7CiAJZ290byBvdXQ7CiB9CiAKQEAgLTEzNTksMTcgKzE0NjksMTMgQEAKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBwb2xpY3lfZmlsZSBmaWxlID0geyBkYXRhLCBsZW4gfSwgKmZwID0gJmZpbGU7CiAKLQlMT0FEX0xPQ0s7Ci0KIAlpZiAoIXNzX2luaXRpYWxpemVkKSB7CiAJCWF2dGFiX2NhY2hlX2luaXQoKTsKIAkJaWYgKHBvbGljeWRiX3JlYWQoJnBvbGljeWRiLCBmcCkpIHsKLQkJCUxPQURfVU5MT0NLOwogCQkJYXZ0YWJfY2FjaGVfZGVzdHJveSgpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJaWYgKHBvbGljeWRiX2xvYWRfaXNpZHMoJnBvbGljeWRiLCAmc2lkdGFiKSkgewotCQkJTE9BRF9VTkxPQ0s7CiAJCQlwb2xpY3lkYl9kZXN0cm95KCZwb2xpY3lkYik7CiAJCQlhdnRhYl9jYWNoZV9kZXN0cm95KCk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTEzNzgsNyArMTQ4NCw2IEBACiAJCWlmICh2YWxpZGF0ZV9jbGFzc2VzKCZwb2xpY3lkYikpIHsKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAgICAgICJTRUxpbnV4OiAgdGhlIGRlZmluaXRpb24gb2YgYSBjbGFzcyBpcyBpbmNvcnJlY3RcbiIpOwotCQkJTE9BRF9VTkxPQ0s7CiAJCQlzaWR0YWJfZGVzdHJveSgmc2lkdGFiKTsKIAkJCXBvbGljeWRiX2Rlc3Ryb3koJnBvbGljeWRiKTsKIAkJCWF2dGFiX2NhY2hlX2Rlc3Ryb3koKTsKQEAgLTEzODgsNyArMTQ5Myw2IEBACiAJCXBvbGljeWRiX2xvYWRlZF92ZXJzaW9uID0gcG9saWN5ZGIucG9saWN5dmVyczsKIAkJc3NfaW5pdGlhbGl6ZWQgPSAxOwogCQlzZXFubyA9ICsrbGF0ZXN0X2dyYW50aW5nOwotCQlMT0FEX1VOTE9DSzsKIAkJc2VsaW51eF9jb21wbGV0ZV9pbml0KCk7CiAJCWF2Y19zc19yZXNldChzZXFubyk7CiAJCXNlbG5sX25vdGlmeV9wb2xpY3lsb2FkKHNlcW5vKTsKQEAgLTE0MDEsMTIgKzE1MDUsMTMgQEAKIAlzaWR0YWJfaGFzaF9ldmFsKCZzaWR0YWIsICJzaWRzIik7CiAjZW5kaWYKIAotCWlmIChwb2xpY3lkYl9yZWFkKCZuZXdwb2xpY3lkYiwgZnApKSB7Ci0JCUxPQURfVU5MT0NLOworCWlmIChwb2xpY3lkYl9yZWFkKCZuZXdwb2xpY3lkYiwgZnApKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKLQlzaWR0YWJfaW5pdCgmbmV3c2lkdGFiKTsKKwlpZiAoc2lkdGFiX2luaXQoJm5ld3NpZHRhYikpIHsKKwkJcG9saWN5ZGJfZGVzdHJveSgmbmV3cG9saWN5ZGIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAKIAkvKiBWZXJpZnkgdGhhdCB0aGUga2VybmVsIGRlZmluZWQgY2xhc3NlcyBhcmUgY29ycmVjdC4gKi8KIAlpZiAodmFsaWRhdGVfY2xhc3NlcygmbmV3cG9saWN5ZGIpKSB7CkBAIC0xNDI5LDI1ICsxNTM0LDI4IEBACiAJCWdvdG8gZXJyOwogCX0KIAotCS8qIENvbnZlcnQgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9ucyBvZiBjb250ZXh0cwotCSAgIGluIHRoZSBuZXcgU0lEIHRhYmxlIGFuZCByZW1vdmUgaW52YWxpZCBTSURzLiAqLworCS8qCisJICogQ29udmVydCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zIG9mIGNvbnRleHRzCisJICogaW4gdGhlIG5ldyBTSUQgdGFibGUuCisJICovCiAJYXJncy5vbGRwID0gJnBvbGljeWRiOwogCWFyZ3MubmV3cCA9ICZuZXdwb2xpY3lkYjsKLQlzaWR0YWJfbWFwX3JlbW92ZV9vbl9lcnJvcigmbmV3c2lkdGFiLCBjb252ZXJ0X2NvbnRleHQsICZhcmdzKTsKKwlyYyA9IHNpZHRhYl9tYXAoJm5ld3NpZHRhYiwgY29udmVydF9jb250ZXh0LCAmYXJncyk7CisJaWYgKHJjKQorCQlnb3RvIGVycjsKIAogCS8qIFNhdmUgdGhlIG9sZCBwb2xpY3lkYiBhbmQgU0lEIHRhYmxlIHRvIGZyZWUgbGF0ZXIuICovCiAJbWVtY3B5KCZvbGRwb2xpY3lkYiwgJnBvbGljeWRiLCBzaXplb2YgcG9saWN5ZGIpOwogCXNpZHRhYl9zZXQoJm9sZHNpZHRhYiwgJnNpZHRhYik7CiAKIAkvKiBJbnN0YWxsIHRoZSBuZXcgcG9saWN5ZGIgYW5kIFNJRCB0YWJsZS4gKi8KLQlQT0xJQ1lfV1JMT0NLOworCXdyaXRlX2xvY2tfaXJxKCZwb2xpY3lfcndsb2NrKTsKIAltZW1jcHkoJnBvbGljeWRiLCAmbmV3cG9saWN5ZGIsIHNpemVvZiBwb2xpY3lkYik7CiAJc2lkdGFiX3NldCgmc2lkdGFiLCAmbmV3c2lkdGFiKTsKIAlzZWN1cml0eV9sb2FkX3BvbGljeWNhcHMoKTsKIAlzZXFubyA9ICsrbGF0ZXN0X2dyYW50aW5nOwogCXBvbGljeWRiX2xvYWRlZF92ZXJzaW9uID0gcG9saWN5ZGIucG9saWN5dmVyczsKLQlQT0xJQ1lfV1JVTkxPQ0s7Ci0JTE9BRF9VTkxPQ0s7CisJd3JpdGVfdW5sb2NrX2lycSgmcG9saWN5X3J3bG9jayk7CiAKIAkvKiBGcmVlIHRoZSBvbGQgcG9saWN5ZGIgYW5kIFNJRCB0YWJsZS4gKi8KIAlwb2xpY3lkYl9kZXN0cm95KCZvbGRwb2xpY3lkYik7CkBAIC0xNDYxLDcgKzE1NjksNiBAQAogCXJldHVybiAwOwogCiBlcnI6Ci0JTE9BRF9VTkxPQ0s7CiAJc2lkdGFiX2Rlc3Ryb3koJm5ld3NpZHRhYik7CiAJcG9saWN5ZGJfZGVzdHJveSgmbmV3cG9saWN5ZGIpOwogCXJldHVybiByYzsKQEAgLTE0NzksNyArMTU4Niw3IEBACiAJc3RydWN0IG9jb250ZXh0ICpjOwogCWludCByYyA9IDA7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAljID0gcG9saWN5ZGIub2NvbnRleHRzW09DT05fUE9SVF07CiAJd2hpbGUgKGMpIHsKQEAgLTE1MDQsNyArMTYxMSw3IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTE1MTgsNyArMTYyNSw3IEBACiAJaW50IHJjID0gMDsKIAlzdHJ1Y3Qgb2NvbnRleHQgKmM7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAljID0gcG9saWN5ZGIub2NvbnRleHRzW09DT05fTkVUSUZdOwogCXdoaWxlIChjKSB7CkBAIC0xNTQ1LDcgKzE2NTIsNyBAQAogCQkqaWZfc2lkID0gU0VDSU5JVFNJRF9ORVRJRjsKIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xNTc3LDcgKzE2ODQsNyBAQAogCWludCByYyA9IDA7CiAJc3RydWN0IG9jb250ZXh0ICpjOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJc3dpdGNoIChkb21haW4pIHsKIAljYXNlIEFGX0lORVQ6IHsKQEAgLTE2MzIsNyArMTczOSw3IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTE2NzEsNyArMTc3OCw5IEBACiAJaWYgKCFzc19pbml0aWFsaXplZCkKIAkJZ290byBvdXQ7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CisKKwljb250ZXh0X2luaXQoJnVzZXJjb24pOwogCiAJZnJvbWNvbiA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgZnJvbXNpZCk7CiAJaWYgKCFmcm9tY29uKSB7CkBAIC0xNzIyLDcgKzE4MzEsNyBAQAogCX0KIAogb3V0X3VubG9jazoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCWlmIChyYyB8fCAhbXluZWwpIHsKIAkJa2ZyZWUobXlzaWRzKTsKIAkJZ290byBvdXQ7CkBAIC0xNzc1LDcgKzE4ODQsNyBAQAogCXdoaWxlIChwYXRoWzBdID09ICcvJyAmJiBwYXRoWzFdID09ICcvJykKIAkJcGF0aCsrOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJZm9yIChnZW5mcyA9IHBvbGljeWRiLmdlbmZzOyBnZW5mczsgZ2VuZnMgPSBnZW5mcy0+bmV4dCkgewogCQljbXAgPSBzdHJjbXAoZnN0eXBlLCBnZW5mcy0+ZnN0eXBlKTsKQEAgLTE4MTIsNyArMTkyMSw3IEBACiAKIAkqc2lkID0gYy0+c2lkWzBdOwogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xODMwLDcgKzE5MzksNyBAQAogCWludCByYyA9IDA7CiAJc3RydWN0IG9jb250ZXh0ICpjOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJYyA9IHBvbGljeWRiLm9jb250ZXh0c1tPQ09OX0ZTVVNFXTsKIAl3aGlsZSAoYykgewpAQCAtMTg2MCw3ICsxOTY5LDcgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMTg2OCw3ICsxOTc3LDcgQEAKIHsKIAlpbnQgaSwgcmMgPSAtRU5PTUVNOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCSpuYW1lcyA9IE5VTEw7CiAJKnZhbHVlcyA9IE5VTEw7CiAKQEAgLTE4OTgsNyArMjAwNyw3IEBACiAJfQogCXJjID0gMDsKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIGVycjoKIAlpZiAoKm5hbWVzKSB7CkBAIC0xOTE2LDcgKzIwMjUsNyBAQAogCWludCBsZW5wLCBzZXFubyA9IDA7CiAJc3RydWN0IGNvbmRfbm9kZSAqY3VyOwogCi0JUE9MSUNZX1dSTE9DSzsKKwl3cml0ZV9sb2NrX2lycSgmcG9saWN5X3J3bG9jayk7CiAKIAlsZW5wID0gcG9saWN5ZGIucF9ib29scy5ucHJpbTsKIAlpZiAobGVuICE9IGxlbnApIHsKQEAgLTE5NTAsNyArMjA1OSw3IEBACiAJc2Vxbm8gPSArK2xhdGVzdF9ncmFudGluZzsKIAogb3V0OgotCVBPTElDWV9XUlVOTE9DSzsKKwl3cml0ZV91bmxvY2tfaXJxKCZwb2xpY3lfcndsb2NrKTsKIAlpZiAoIXJjKSB7CiAJCWF2Y19zc19yZXNldChzZXFubyk7CiAJCXNlbG5sX25vdGlmeV9wb2xpY3lsb2FkKHNlcW5vKTsKQEAgLTE5NjQsNyArMjA3Myw3IEBACiAJaW50IHJjID0gMDsKIAlpbnQgbGVuOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJbGVuID0gcG9saWN5ZGIucF9ib29scy5ucHJpbTsKIAlpZiAoYm9vbCA+PSBsZW4pIHsKQEAgLTE5NzQsNyArMjA4Myw3IEBACiAKIAlyYyA9IHBvbGljeWRiLmJvb2xfdmFsX3RvX3N0cnVjdFtib29sXS0+c3RhdGU7CiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTIwMjksNyArMjEzOCw3IEBACiAKIAljb250ZXh0X2luaXQoJm5ld2Nvbik7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAJY29udGV4dDEgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNpZCk7CiAJaWYgKCFjb250ZXh0MSkgewogCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICVzOiAgdW5yZWNvZ25pemVkIFNJRCAlZFxuIiwKQEAgLTIwNzEsNyArMjE4MCw3IEBACiAJfQogCiBvdXRfdW5sb2NrOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJY29udGV4dF9kZXN0cm95KCZuZXdjb24pOwogb3V0OgogCXJldHVybiByYzsKQEAgLTIxMjgsNyArMjIzNyw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCW5sYmxfY3R4ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBubGJsX3NpZCk7CiAJaWYgKCFubGJsX2N0eCkgewpAQCAtMjE0Nyw3ICsyMjU2LDcgQEAKIAlyYyA9IChtbHNfY29udGV4dF9jbXAobmxibF9jdHgsIHhmcm1fY3R4KSA/IDAgOiAtRUFDQ0VTKTsKIAogb3V0X3Nsb3dwYXRoOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJaWYgKHJjID09IDApCiAJCS8qIGF0IHByZXNlbnQgTmV0TGFiZWwgU0lEcy9sYWJlbHMgcmVhbGx5IG9ubHkgY2FycnkgTUxTCiAJCSAqIGluZm9ybWF0aW9uIHNvIGlmIHRoZSBNTFMgcG9ydGlvbiBvZiB0aGUgTmV0TGFiZWwgU0lECkBAIC0yMTc3LDcgKzIyODYsNyBAQAogewogCWludCByYyA9IC1FTk9NRU07CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAkqbmNsYXNzZXMgPSBwb2xpY3lkYi5wX2NsYXNzZXMubnByaW07CiAJKmNsYXNzZXMgPSBrY2FsbG9jKCpuY2xhc3Nlcywgc2l6ZW9mKCpjbGFzc2VzKSwgR0ZQX0FUT01JQyk7CkBAIC0yMTk0LDcgKzIzMDMsNyBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0yMjE2LDcgKzIzMjUsNyBAQAogCWludCByYyA9IC1FTk9NRU0sIGk7CiAJc3RydWN0IGNsYXNzX2RhdHVtICptYXRjaDsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCW1hdGNoID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF9jbGFzc2VzLnRhYmxlLCBjbGFzcyk7CiAJaWYgKCFtYXRjaCkgewpAQCAtMjI0NCwxMSArMjM1MywxMSBAQAogCQlnb3RvIGVycjsKIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogCiBlcnI6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlmb3IgKGkgPSAwOyBpIDwgKm5wZXJtczsgaSsrKQogCQlrZnJlZSgoKnBlcm1zKVtpXSk7CiAJa2ZyZWUoKnBlcm1zKTsKQEAgLTIyNzksOSArMjM4OCw5IEBACiB7CiAJaW50IHJjOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCXJjID0gZWJpdG1hcF9nZXRfYml0KCZwb2xpY3lkYi5wb2xpY3ljYXBzLCByZXFfY2FwKTsKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCiAJcmV0dXJuIHJjOwogfQpAQCAtMjM0NSw3ICsyNDU0LDcgQEAKIAogCWNvbnRleHRfaW5pdCgmdG1wcnVsZS0+YXVfY3R4dCk7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAl0bXBydWxlLT5hdV9zZXFubyA9IGxhdGVzdF9ncmFudGluZzsKIApAQCAtMjM4Miw3ICsyNDkxLDcgQEAKIAkJYnJlYWs7CiAJfQogCi0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWlmIChyYykgewogCQlzZWxpbnV4X2F1ZGl0X3J1bGVfZnJlZSh0bXBydWxlKTsKQEAgLTI0MjAsNyArMjUyOSw3IEBACiB9CiAKIGludCBzZWxpbnV4X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKnZydWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCkKKwkJCSAgICAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpCiB7CiAJc3RydWN0IGNvbnRleHQgKmN0eHQ7CiAJc3RydWN0IG1sc19sZXZlbCAqbGV2ZWw7CkBAIC0yNDMzLDcgKzI1NDIsNyBAQAogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlpZiAocnVsZS0+YXVfc2Vxbm8gPCBsYXRlc3RfZ3JhbnRpbmcpIHsKIAkJYXVkaXRfbG9nKGFjdHgsIEdGUF9BVE9NSUMsIEFVRElUX1NFTElOVVhfRVJSLApAQCAtMjUyNywxNCArMjYzNiwxNCBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIG1hdGNoOwogfQogCiBzdGF0aWMgaW50ICgqYXVydWxlX2NhbGxiYWNrKSh2b2lkKSA9IGF1ZGl0X3VwZGF0ZV9sc21fcnVsZXM7CiAKIHN0YXRpYyBpbnQgYXVydWxlX2F2Y19jYWxsYmFjayh1MzIgZXZlbnQsIHUzMiBzc2lkLCB1MzIgdHNpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgY2xhc3MsIHUzMiBwZXJtcywgdTMyICpyZXRhaW5lZCkKKwkJCSAgICAgICB1MTYgY2xhc3MsIHUzMiBwZXJtcywgdTMyICpyZXRhaW5lZCkKIHsKIAlpbnQgZXJyID0gMDsKIApAQCAtMjYxNSw3ICsyNzI0LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJaWYgKHNlY2F0dHItPmZsYWdzICYgTkVUTEJMX1NFQ0FUVFJfQ0FDSEUpIHsKIAkJKnNpZCA9ICoodTMyICopc2VjYXR0ci0+Y2FjaGUtPmRhdGE7CkBAIC0yNjYwLDcgKzI3NjksNyBAQAogCX0KIAogbmV0bGJsX3NlY2F0dHJfdG9fc2lkX3JldHVybjoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIG5ldGxibF9zZWNhdHRyX3RvX3NpZF9yZXR1cm5fY2xlYW51cDoKIAllYml0bWFwX2Rlc3Ryb3koJmN0eF9uZXcucmFuZ2UubGV2ZWxbMF0uY2F0KTsKQEAgLTI2ODUsNyArMjc5NCw3IEBACiAJaWYgKCFzc19pbml0aWFsaXplZCkKIAkJcmV0dXJuIDA7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAJY3R4ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzaWQpOwogCWlmIChjdHggPT0gTlVMTCkKIAkJZ290byBuZXRsYmxfc2lkX3RvX3NlY2F0dHJfZmFpbHVyZTsKQEAgLTI2OTYsMTIgKzI4MDUsMTIgQEAKIAlyYyA9IG1sc19leHBvcnRfbmV0bGJsX2NhdChjdHgsIHNlY2F0dHIpOwogCWlmIChyYyAhPSAwKQogCQlnb3RvIG5ldGxibF9zaWRfdG9fc2VjYXR0cl9mYWlsdXJlOwotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlyZXR1cm4gMDsKIAogbmV0bGJsX3NpZF90b19zZWNhdHRyX2ZhaWx1cmU6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAjZW5kaWYgLyogQ09ORklHX05FVExBQkVMICovCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuYwppbmRleCA0YTUxNmZmLi5hODFkZWQxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMKQEAgLTE0LDEwICsxNCw2IEBACiAjZGVmaW5lIFNJRFRBQl9IQVNIKHNpZCkgXAogKHNpZCAmIFNJRFRBQl9IQVNIX01BU0spCiAKLSNkZWZpbmUgSU5JVF9TSURUQUJfTE9DSyhzKSBzcGluX2xvY2tfaW5pdCgmcy0+bG9jaykKLSNkZWZpbmUgU0lEVEFCX0xPQ0socywgeCkgc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIHgpCi0jZGVmaW5lIFNJRFRBQl9VTkxPQ0socywgeCkgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgeCkKLQogaW50IHNpZHRhYl9pbml0KHN0cnVjdCBzaWR0YWIgKnMpCiB7CiAJaW50IGk7CkBAIC0zMCw3ICsyNiw3IEBACiAJcy0+bmVsID0gMDsKIAlzLT5uZXh0X3NpZCA9IDE7CiAJcy0+c2h1dGRvd24gPSAwOwotCUlOSVRfU0lEVEFCX0xPQ0socyk7CisJc3Bpbl9sb2NrX2luaXQoJnMtPmxvY2spOwogCXJldHVybiAwOwogfQogCkBAIC04Niw3ICs4Miw3IEBACiAJcmV0dXJuIHJjOwogfQogCi1zdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkKQorc3RhdGljIHN0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoX2NvcmUoc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCwgaW50IGZvcmNlKQogewogCWludCBodmFsdWU7CiAJc3RydWN0IHNpZHRhYl9ub2RlICpjdXI7CkBAIC05OSw3ICs5NSwxMCBAQAogCXdoaWxlIChjdXIgIT0gTlVMTCAmJiBzaWQgPiBjdXItPnNpZCkKIAkJY3VyID0gY3VyLT5uZXh0OwogCi0JaWYgKGN1ciA9PSBOVUxMIHx8IHNpZCAhPSBjdXItPnNpZCkgeworCWlmIChmb3JjZSAmJiBjdXIgJiYgc2lkID09IGN1ci0+c2lkICYmIGN1ci0+Y29udGV4dC5sZW4pCisJCXJldHVybiAmY3VyLT5jb250ZXh0OworCisJaWYgKGN1ciA9PSBOVUxMIHx8IHNpZCAhPSBjdXItPnNpZCB8fCBjdXItPmNvbnRleHQubGVuKSB7CiAJCS8qIFJlbWFwIGludmFsaWQgU0lEcyB0byB0aGUgdW5sYWJlbGVkIFNJRC4gKi8KIAkJc2lkID0gU0VDSU5JVFNJRF9VTkxBQkVMRUQ7CiAJCWh2YWx1ZSA9IFNJRFRBQl9IQVNIKHNpZCk7CkBAIC0xMTMsNiArMTEyLDE2IEBACiAJcmV0dXJuICZjdXItPmNvbnRleHQ7CiB9CiAKK3N0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQpCit7CisJcmV0dXJuIHNpZHRhYl9zZWFyY2hfY29yZShzLCBzaWQsIDApOworfQorCitzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaF9mb3JjZShzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkKQoreworCXJldHVybiBzaWR0YWJfc2VhcmNoX2NvcmUocywgc2lkLCAxKTsKK30KKwogaW50IHNpZHRhYl9tYXAoc3RydWN0IHNpZHRhYiAqcywKIAkgICAgICAgaW50ICgqYXBwbHkpICh1MzIgc2lkLAogCQkJICAgICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKQEAgLTEzOCw0MyArMTQ3LDYgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLXZvaWQgc2lkdGFiX21hcF9yZW1vdmVfb25fZXJyb3Ioc3RydWN0IHNpZHRhYiAqcywKLQkJCQlpbnQgKCphcHBseSkgKHUzMiBzaWQsCi0JCQkJCSAgICAgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAotCQkJCQkgICAgICB2b2lkICphcmdzKSwKLQkJCQl2b2lkICphcmdzKQotewotCWludCBpLCByZXQ7Ci0Jc3RydWN0IHNpZHRhYl9ub2RlICpsYXN0LCAqY3VyLCAqdGVtcDsKLQotCWlmICghcykKLQkJcmV0dXJuOwotCi0JZm9yIChpID0gMDsgaSA8IFNJRFRBQl9TSVpFOyBpKyspIHsKLQkJbGFzdCA9IE5VTEw7Ci0JCWN1ciA9IHMtPmh0YWJsZVtpXTsKLQkJd2hpbGUgKGN1ciAhPSBOVUxMKSB7Ci0JCQlyZXQgPSBhcHBseShjdXItPnNpZCwgJmN1ci0+Y29udGV4dCwgYXJncyk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJaWYgKGxhc3QpCi0JCQkJCWxhc3QtPm5leHQgPSBjdXItPm5leHQ7Ci0JCQkJZWxzZQotCQkJCQlzLT5odGFibGVbaV0gPSBjdXItPm5leHQ7Ci0JCQkJdGVtcCA9IGN1cjsKLQkJCQljdXIgPSBjdXItPm5leHQ7Ci0JCQkJY29udGV4dF9kZXN0cm95KCZ0ZW1wLT5jb250ZXh0KTsKLQkJCQlrZnJlZSh0ZW1wKTsKLQkJCQlzLT5uZWwtLTsKLQkJCX0gZWxzZSB7Ci0JCQkJbGFzdCA9IGN1cjsKLQkJCQljdXIgPSBjdXItPm5leHQ7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlyZXR1cm47Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdTMyIHNpZHRhYl9zZWFyY2hfY29udGV4dChzdHJ1Y3Qgc2lkdGFiICpzLAogCQkJCQkJICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCkKIHsKQEAgLTIwNCw3ICsxNzYsNyBAQAogCiAJc2lkID0gc2lkdGFiX3NlYXJjaF9jb250ZXh0KHMsIGNvbnRleHQpOwogCWlmICghc2lkKSB7Ci0JCVNJRFRBQl9MT0NLKHMsIGZsYWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKIAkJLyogUmVzY2FuIG5vdyB0aGF0IHdlIGhvbGQgdGhlIGxvY2suICovCiAJCXNpZCA9IHNpZHRhYl9zZWFyY2hfY29udGV4dChzLCBjb250ZXh0KTsKIAkJaWYgKHNpZCkKQEAgLTIxNSwxMSArMTg3LDE1IEBACiAJCQlnb3RvIHVubG9ja19vdXQ7CiAJCX0KIAkJc2lkID0gcy0+bmV4dF9zaWQrKzsKKwkJaWYgKGNvbnRleHQtPmxlbikKKwkJCXByaW50ayhLRVJOX0lORk8KKwkJICAgICAgICJTRUxpbnV4OiAgQ29udGV4dCAlcyBpcyBub3QgdmFsaWQgKGxlZnQgdW5tYXBwZWQpLlxuIiwKKwkJCSAgICAgICBjb250ZXh0LT5zdHIpOwogCQlyZXQgPSBzaWR0YWJfaW5zZXJ0KHMsIHNpZCwgY29udGV4dCk7CiAJCWlmIChyZXQpCiAJCQlzLT5uZXh0X3NpZC0tOwogdW5sb2NrX291dDoKLQkJU0lEVEFCX1VOTE9DSyhzLCBmbGFncyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKIAl9CiAKIAlpZiAocmV0KQpAQCAtMjg0LDE5ICsyNjAsMTkgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JU0lEVEFCX0xPQ0soc3JjLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnNyYy0+bG9jaywgZmxhZ3MpOwogCWRzdC0+aHRhYmxlID0gc3JjLT5odGFibGU7CiAJZHN0LT5uZWwgPSBzcmMtPm5lbDsKIAlkc3QtPm5leHRfc2lkID0gc3JjLT5uZXh0X3NpZDsKIAlkc3QtPnNodXRkb3duID0gMDsKLQlTSURUQUJfVU5MT0NLKHNyYywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNyYy0+bG9jaywgZmxhZ3MpOwogfQogCiB2b2lkIHNpZHRhYl9zaHV0ZG93bihzdHJ1Y3Qgc2lkdGFiICpzKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlTSURUQUJfTE9DSyhzLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKIAlzLT5zaHV0ZG93biA9IDE7Ci0JU0lEVEFCX1VOTE9DSyhzLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaCBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmgKaW5kZXggMmZlOWRmYS4uNjRlYTViMSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5oCkBAIC0zMiw2ICszMiw3IEBACiBpbnQgc2lkdGFiX2luaXQoc3RydWN0IHNpZHRhYiAqcyk7CiBpbnQgc2lkdGFiX2luc2VydChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkLCBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCk7CiBzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkKTsKK3N0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoX2ZvcmNlKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQpOwogCiBpbnQgc2lkdGFiX21hcChzdHJ1Y3Qgc2lkdGFiICpzLAogCSAgICAgICBpbnQgKCphcHBseSkgKHUzMiBzaWQsCkBAIC0zOSwxMiArNDAsNiBAQAogCQkJICAgICB2b2lkICphcmdzKSwKIAkgICAgICAgdm9pZCAqYXJncyk7CiAKLXZvaWQgc2lkdGFiX21hcF9yZW1vdmVfb25fZXJyb3Ioc3RydWN0IHNpZHRhYiAqcywKLQkJCQlpbnQgKCphcHBseSkgKHUzMiBzaWQsCi0JCQkJCSAgICAgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAotCQkJCQkgICAgICB2b2lkICphcmdzKSwKLQkJCQl2b2lkICphcmdzKTsKLQogaW50IHNpZHRhYl9jb250ZXh0X3RvX3NpZChzdHJ1Y3Qgc2lkdGFiICpzLAogCQkJICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKIAkJCSAgdTMyICpzaWQpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwppbmRleCA0YTA5MjkzLi5lZTVhNTFjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYworKysgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwpAQCAtOTUsMTEgKzk1LDEyIEBACiAgKgogICogRG8gdGhlIGNhcGFiaWxpdHkgY2hlY2tzLCBhbmQgcmVxdWlyZSByZWFkIGFuZCB3cml0ZS4KICAqLwotc3RhdGljIGludCBzbWFja19wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwdHAsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY3RwKQorc3RhdGljIGludCBzbWFja19wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwdHAsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY3RwLAorCQkJdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJaW50IHJjOwogCi0JcmMgPSBjYXBfcHRyYWNlKHB0cCwgY3RwKTsKKwlyYyA9IGNhcF9wdHJhY2UocHRwLCBjdHAsIG1vZGUpOwogCWlmIChyYyAhPSAwKQogCQlyZXR1cm4gcmM7CiAKQEAgLTE4MjEsMjcgKzE4MjIsNiBAQAogCSpzZWNpZCA9IHNtYWNrX3RvX3NlY2lkKHNtYWNrKTsKIH0KIAotLyogbW9kdWxlIHN0YWNraW5nIG9wZXJhdGlvbnMgKi8KLQotLyoqCi0gKiBzbWFja19yZWdpc3Rlcl9zZWN1cml0eSAtIHN0YWNrIGNhcGFiaWxpdHkgbW9kdWxlCi0gKiBAbmFtZTogbW9kdWxlIG5hbWUKLSAqIEBvcHM6IG1vZHVsZSBvcGVyYXRpb25zIC0gaWdub3JlZAotICoKLSAqIEFsbG93IHRoZSBjYXBhYmlsaXR5IG1vZHVsZSB0byByZWdpc3Rlci4KLSAqLwotc3RhdGljIGludCBzbWFja19yZWdpc3Rlcl9zZWN1cml0eShjb25zdCBjaGFyICpuYW1lLAotCQkJCSAgIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCi17Ci0JaWYgKHN0cmNtcChuYW1lLCAiY2FwYWJpbGl0eSIpICE9IDApCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiJXM6ICBSZWdpc3RlcmluZyBzZWNvbmRhcnkgbW9kdWxlICVzXG4iLAotCSAgICAgICBfX2Z1bmNfXywgbmFtZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogLyoqCiAgKiBzbWFja19kX2luc3RhbnRpYXRlIC0gTWFrZSBzdXJlIHRoZSBibG9iIGlzIGNvcnJlY3Qgb24gYW4gaW5vZGUKICAqIEBvcHRfZGVudHJ5OiB1bnVzZWQKQEAgLTI2NzIsOCArMjY1Miw2IEBACiAJLm5ldGxpbmtfc2VuZCA9CQkJY2FwX25ldGxpbmtfc2VuZCwKIAkubmV0bGlua19yZWN2ID0gCQljYXBfbmV0bGlua19yZWN2LAogCi0JLnJlZ2lzdGVyX3NlY3VyaXR5ID0gCQlzbWFja19yZWdpc3Rlcl9zZWN1cml0eSwKLQogCS5kX2luc3RhbnRpYXRlID0gCQlzbWFja19kX2luc3RhbnRpYXRlLAogCiAJLmdldHByb2NhdHRyID0gCQkJc21hY2tfZ2V0cHJvY2F0dHIsCmRpZmYgLS1naXQgYS9zb3VuZC9LY29uZmlnIGIvc291bmQvS2NvbmZpZwppbmRleCA0MjQ3NDA2Li5hMzdiZWUwIDEwMDY0NAotLS0gYS9zb3VuZC9LY29uZmlnCisrKyBiL3NvdW5kL0tjb25maWcKQEAgLTEsMTEgKzEsOSBAQAogIyBzb3VuZC9Db25maWcuaW4KICMKIAotbWVudSAiU291bmQiCi0JZGVwZW5kcyBvbiBIQVNfSU9NRU0KLQotY29uZmlnIFNPVU5ECittZW51Y29uZmlnIFNPVU5ECiAJdHJpc3RhdGUgIlNvdW5kIGNhcmQgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEhBU19JT01FTQogCWhlbHAKIAkgIElmIHlvdSBoYXZlIGEgc291bmQgY2FyZCBpbiB5b3VyIGNvbXB1dGVyLCBpLmUuIGlmIGl0IGNhbiBzYXkgbW9yZQogCSAgdGhhbiBhbiBvY2Nhc2lvbmFsIGJlZXAsIHNheSBZLiAgQmUgc3VyZSB0byBoYXZlIGFsbCB0aGUgaW5mb3JtYXRpb24KQEAgLTI4LDIyICsyNiwyMiBAQAogCSAgYW5kIHJlYWQgPGZpbGU6RG9jdW1lbnRhdGlvbi9zb3VuZC9vc3MvUkVBRE1FLm1vZHVsZXM+OyB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzb3VuZGNvcmUuCiAKK2lmIFNPVU5ECisKIHNvdXJjZSAic291bmQvb3NzL2RtYXNvdW5kL0tjb25maWciCiAKIGlmICFNNjhLCiAKLW1lbnUgIkFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZSIKLQlkZXBlbmRzIG9uIFNPVU5EIT1uCi0KLWNvbmZpZyBTTkQKK21lbnVjb25maWcgU05ECiAJdHJpc3RhdGUgIkFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZSIKLQlkZXBlbmRzIG9uIFNPVU5ECiAJaGVscAogCSAgU2F5ICdZJyBvciAnTScgdG8gZW5hYmxlIEFMU0EgKEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZSksCiAJICB0aGUgbmV3IGJhc2Ugc291bmQgc3lzdGVtLgogCiAJICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxodHRwOi8vd3d3LmFsc2EtcHJvamVjdC5vcmcvPgogCitpZiBTTkQKKwogc291cmNlICJzb3VuZC9jb3JlL0tjb25maWciCiAKIHNvdXJjZSAic291bmQvZHJpdmVycy9LY29uZmlnIgpAQCAtNTgsOSArNTYsNyBAQAogCiBzb3VyY2UgInNvdW5kL2FybS9LY29uZmlnIgogCi1pZiBTUEkKIHNvdXJjZSAic291bmQvc3BpL0tjb25maWciCi1lbmRpZgogCiBzb3VyY2UgInNvdW5kL21pcHMvS2NvbmZpZyIKIApAQCAtODAsMjIgKzc2LDIwIEBACiAKIHNvdXJjZSAic291bmQvc29jL0tjb25maWciCiAKLWVuZG1lbnUKK2VuZGlmICMgU05ECiAKLW1lbnUgIk9wZW4gU291bmQgU3lzdGVtIgotCWRlcGVuZHMgb24gU09VTkQhPW4KLQotY29uZmlnIFNPVU5EX1BSSU1FCittZW51Y29uZmlnIFNPVU5EX1BSSU1FCiAJdHJpc3RhdGUgIk9wZW4gU291bmQgU3lzdGVtIChERVBSRUNBVEVEKSIKLQlkZXBlbmRzIG9uIFNPVU5ECiAJaGVscAogCSAgU2F5ICdZJyBvciAnTScgdG8gZW5hYmxlIE9wZW4gU291bmQgU3lzdGVtIGRyaXZlcnMuCiAKK2lmIFNPVU5EX1BSSU1FCisKIHNvdXJjZSAic291bmQvb3NzL0tjb25maWciCiAKLWVuZG1lbnUKK2VuZGlmICMgU09VTkRfUFJJTUUKIAotZW5kaWYKK2VuZGlmICMgIU02OEsKIAogY29uZmlnIEFDOTdfQlVTCiAJdHJpc3RhdGUKQEAgLTEwNSw0ICs5OSw0IEBACiAJICBzb3VuZCBhbHRob3VnaCB0aGV5J3JlIHNoYXJpbmcgdGhlIEFDOTcgYnVzLiBDb25jZXJuZWQgZHJpdmVycwogCSAgc2hvdWxkICJzZWxlY3QiIHRoaXMuCiAKLWVuZG1lbnUKK2VuZGlmICMgU09VTkQKZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9LY29uZmlnIGIvc291bmQvYW9hL0tjb25maWcKaW5kZXggNWQ1ODEzYy4uYzA4MWUxOCAxMDA2NDQKLS0tIGEvc291bmQvYW9hL0tjb25maWcKKysrIGIvc291bmQvYW9hL0tjb25maWcKQEAgLTEsMTggKzEsMTcgQEAKLW1lbnUgIkFwcGxlIE9uYm9hcmQgQXVkaW8gZHJpdmVyIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFBQQ19QTUFDCi0KLWNvbmZpZyBTTkRfQU9BCittZW51Y29uZmlnIFNORF9BT0EKIAl0cmlzdGF0ZSAiQXBwbGUgT25ib2FyZCBBdWRpbyBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKKwlkZXBlbmRzIG9uIFBQQ19QTUFDCiAJc2VsZWN0IFNORF9QQ00KIAktLS1oZWxwLS0tCiAJVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgbmV3IGRyaXZlciBmb3IgdGhlIHZhcmlvdXMKIAlBcHBsZSBPbmJvYXJkIEF1ZGlvIGNvbXBvbmVudHMuCiAKK2lmIFNORF9BT0EKKwogc291cmNlICJzb3VuZC9hb2EvZmFicmljcy9LY29uZmlnIgogCiBzb3VyY2UgInNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZyIKIAogc291cmNlICJzb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYJIyBTTkRfQU9BCmRpZmYgLS1naXQgYS9zb3VuZC9hb2EvY29kZWNzL0tjb25maWcgYi9zb3VuZC9hb2EvY29kZWNzL0tjb25maWcKaW5kZXggZDVmYmQ2MC4uODA4ZWIxMSAxMDA2NDQKLS0tIGEvc291bmQvYW9hL2NvZGVjcy9LY29uZmlnCisrKyBiL3NvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZwpAQCAtMSw2ICsxLDUgQEAKIGNvbmZpZyBTTkRfQU9BX09OWVgKIAl0cmlzdGF0ZSAic3VwcG9ydCBPbnl4IGNoaXAiCi0JZGVwZW5kcyBvbiBTTkRfQU9BCiAJc2VsZWN0IEkyQwogCXNlbGVjdCBJMkNfUE9XRVJNQUMKIAktLS1oZWxwLS0tCkBAIC0xMCw3ICs5LDYgQEAKIAogI2NvbmZpZyBTTkRfQU9BX1RPUEFaCiAjCXRyaXN0YXRlICJzdXBwb3J0IFRvcGF6IGNoaXBzIgotIwlkZXBlbmRzIG9uIFNORF9BT0EKICMJLS0taGVscC0tLQogIwlUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBUb3BheiAoQ1M4NHh4KQogIwljb2RlYyBjaGlwcyBmb3VuZCBpbiB0aGUgbGF0ZXN0IEFwcGxlIG1hY2hpbmVzLApAQCAtMTksNyArMTcsNiBAQAogCiBjb25maWcgU05EX0FPQV9UQVMKIAl0cmlzdGF0ZSAic3VwcG9ydCBUQVMgY2hpcHMiCi0JZGVwZW5kcyBvbiBTTkRfQU9BCiAJc2VsZWN0IEkyQwogCXNlbGVjdCBJMkNfUE9XRVJNQUMKIAktLS1oZWxwLS0tCkBAIC0yOSw3ICsyNiw2IEBACiAKIGNvbmZpZyBTTkRfQU9BX1RPT05JRQogCXRyaXN0YXRlICJzdXBwb3J0IFRvb25pZSBjaGlwIgotCWRlcGVuZHMgb24gU05EX0FPQQogCS0tLWhlbHAtLS0KIAlUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSB0b29uaWUgY29kZWMKIAlmb3VuZCBpbiB0aGUgTWFjIE1pbmkuIElmIHlvdSBoYXZlIGEgTWFjIE1pbmkgYW5kCmRpZmYgLS1naXQgYS9zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnIGIvc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZwppbmRleCA1MGQ3MDIxLi4zY2E0NzVhIDEwMDY0NAotLS0gYS9zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnCisrKyBiL3NvdW5kL2FvYS9mYWJyaWNzL0tjb25maWcKQEAgLTEsNiArMSw1IEBACiBjb25maWcgU05EX0FPQV9GQUJSSUNfTEFZT1VUCiAJdHJpc3RhdGUgImxheW91dC1pZCBmYWJyaWMiCi0JZGVwZW5kcyBvbiBTTkRfQU9BCiAJc2VsZWN0IFNORF9BT0FfU09VTkRCVVMKIAlzZWxlY3QgU05EX0FPQV9TT1VOREJVU19JMlMKIAktLS1oZWxwLS0tCmRpZmYgLS1naXQgYS9zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZyBiL3NvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnCmluZGV4IDczNjhiN2QuLjgzOWQxMTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnCisrKyBiL3NvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnCkBAIC0xLDYgKzEsNSBAQAogY29uZmlnIFNORF9BT0FfU09VTkRCVVMKIAl0cmlzdGF0ZSAiQXBwbGUgU291bmRidXMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5ECiAJc2VsZWN0IFNORF9QQ00KIAktLS1oZWxwLS0tCiAJVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgZ2VuZXJpYyBkcml2ZXIgZm9yIHRoZSBzb3VuZGJ1cwpkaWZmIC0tZ2l0IGEvc291bmQvYXJtL0tjb25maWcgYi9zb3VuZC9hcm0vS2NvbmZpZwppbmRleCAyZTRhNWUwLi4zNTFlMTllIDEwMDY0NAotLS0gYS9zb3VuZC9hcm0vS2NvbmZpZworKysgYi9zb3VuZC9hcm0vS2NvbmZpZwpAQCAtMSwxMSArMSwxOSBAQAogIyBBTFNBIEFSTSBkcml2ZXJzCiAKLW1lbnUgIkFMU0EgQVJNIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgQVJNCittZW51Y29uZmlnIFNORF9BUk0KKwlib29sICJBUk0gc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIEFSTQorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gQVJNIGFyY2hpdGVjdHVyZXMuCisJICBEcml2ZXJzIHRoYXQgYXJlIGltcGxlbWVudGVkIG9uIEFTb0MgY2FuIGJlIGZvdW5kIGluCisJICAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQiIHNlY3Rpb24uCisKK2lmIFNORF9BUk0KIAogY29uZmlnIFNORF9TQTExWFhfVURBMTM0MQogCXRyaXN0YXRlICJTQTExeHggVURBMTM0MVRTIGRyaXZlciAoaVBhcSBIMzYwMCkiCi0JZGVwZW5kcyBvbiBBUkNIX1NBMTEwMCAmJiBTTkQgJiYgTDMKKwlkZXBlbmRzIG9uIEFSQ0hfU0ExMTAwICYmIEwzCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIGlmIHlvdSBoYXZlIGEgQ29tcGFxIGlQYXEgSDN4MDAgaGFuZGhlbGQgY29tcHV0ZXIKQEAgLTE2LDcgKzI0LDcgQEAKIAogY29uZmlnIFNORF9BUk1BQUNJCiAJdHJpc3RhdGUgIkFSTSBQcmltZUNlbGwgUEwwNDEgQUMgTGluayBzdXBwb3J0IgotCWRlcGVuZHMgb24gU05EICYmIEFSTV9BTUJBCisJZGVwZW5kcyBvbiBBUk1fQU1CQQogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAKQEAgLTI2LDExICszNCwxMiBAQAogCiBjb25maWcgU05EX1BYQTJYWF9BQzk3CiAJdHJpc3RhdGUgIkFDOTcgZHJpdmVyIGZvciB0aGUgSW50ZWwgUFhBMnh4IGNoaXAiCi0JZGVwZW5kcyBvbiBBUkNIX1BYQSAmJiBTTkQKKwlkZXBlbmRzIG9uIEFSQ0hfUFhBCiAJc2VsZWN0IFNORF9QWEEyWFhfUENNCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IGFueSBBQzk3IGNvZGVjIGF0dGFjaGVkIHRvCiAJICB0aGUgUFhBMnh4IEFDOTcgaW50ZXJmYWNlLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9BUk0KKwpkaWZmIC0tZ2l0IGEvc291bmQvYXJtL3NhMTF4eC11ZGExMzQxLmMgYi9zb3VuZC9hcm0vc2ExMXh4LXVkYTEzNDEuYwppbmRleCAwZWZmMzNjLi5mYWVkZGYzIDEwMDY0NAotLS0gYS9zb3VuZC9hcm0vc2ExMXh4LXVkYTEzNDEuYworKysgYi9zb3VuZC9hcm0vc2ExMXh4LXVkYTEzNDEuYwpAQCAtMjEsOCArMjEsNiBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWQgSEFMIGxheWVyIChwYXRjaGVzIGZyb20gQnJpYW4pCiAgKi8KIAotLyogJElkOiBzYTExeHgtdWRhMTM0MS5jLHYgMS4yNyAyMDA1LzEyLzA3IDA5OjEzOjQyIGNsYWRpc2NoIEV4cCAkICovCi0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKICogVG8gdW5kZXJzdGFuZCB3aGF0IEFsc2EgRHJpdmVycyBzaG91bGQgYmUgZG9pbmcgbG9vayBhdCAiV3JpdGluZyBhbiBBbHNhIERyaXZlciIgYnkgVGFrYXNoaSBJd2FpCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL0tjb25maWcgYi9zb3VuZC9jb3JlL0tjb25maWcKaW5kZXggYThkNzFjNi4uMzM1ZDQ1ZSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9LY29uZmlnCisrKyBiL3NvdW5kL2NvcmUvS2NvbmZpZwpAQCAtMSwyNCArMSwxOSBAQAogIyBBTFNBIHNvdW5kY2FyZC1jb25maWd1cmF0aW9uCiBjb25maWcgU05EX1RJTUVSCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORAogCiBjb25maWcgU05EX1BDTQogCXRyaXN0YXRlCiAJc2VsZWN0IFNORF9USU1FUgotCWRlcGVuZHMgb24gU05ECiAKIGNvbmZpZyBTTkRfSFdERVAKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05ECiAKIGNvbmZpZyBTTkRfUkFXTUlESQogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9TRVFVRU5DRVIKIAl0cmlzdGF0ZSAiU2VxdWVuY2VyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1RJTUVSCiAJaGVscAogCSAgU2F5IFkgb3IgTSB0byBlbmFibGUgTUlESSBzZXF1ZW5jZXIgYW5kIHJvdXRlciBzdXBwb3J0LiAgVGhpcwpAQCAtNDQsMTEgKzM5LDkgQEAKIAogY29uZmlnIFNORF9PU1NFTVVMCiAJYm9vbAotCWRlcGVuZHMgb24gU05ECiAKIGNvbmZpZyBTTkRfTUlYRVJfT1NTCiAJdHJpc3RhdGUgIk9TUyBNaXhlciBBUEkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09TU0VNVUwKIAloZWxwCiAJICBUbyBlbmFibGUgT1NTIG1peGVyIEFQSSBlbXVsYXRpb24gKC9kZXYvbWl4ZXIqKSwgc2F5IFkgaGVyZQpAQCAtNjEsNyArNTQsNiBAQAogCiBjb25maWcgU05EX1BDTV9PU1MKIAl0cmlzdGF0ZSAiT1NTIFBDTSAoZGlnaXRhbCBhdWRpbykgQVBJIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PU1NFTVVMCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC04NCw3ICs3Niw3IEBACiAKIGNvbmZpZyBTTkRfU0VRVUVOQ0VSX09TUwogCWJvb2wgIk9TUyBTZXF1ZW5jZXIgQVBJIgotCWRlcGVuZHMgb24gU05EICYmIFNORF9TRVFVRU5DRVIKKwlkZXBlbmRzIG9uIFNORF9TRVFVRU5DRVIKIAlzZWxlY3QgU05EX09TU0VNVUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBPU1Mgc2VxdWVuY2VyIGVtdWxhdGlvbiAoYm90aApAQCAtOTgsNyArOTAsNyBAQAogCiBjb25maWcgU05EX1JUQ1RJTUVSCiAJdHJpc3RhdGUgIlJUQyBUaW1lciBzdXBwb3J0IgotCWRlcGVuZHMgb24gU05EICYmIFJUQworCWRlcGVuZHMgb24gUlRDCiAJc2VsZWN0IFNORF9USU1FUgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIFJUQyB0aW1lciBzdXBwb3J0IGZvciBBTFNBLiAgQUxTQSB1c2VzCkBAIC0xMjMsNyArMTE1LDYgQEAKIAogY29uZmlnIFNORF9EWU5BTUlDX01JTk9SUwogCWJvb2wgIkR5bmFtaWMgZGV2aWNlIGZpbGUgbWlub3IgbnVtYmVycyIKLQlkZXBlbmRzIG9uIFNORAogCWhlbHAKIAkgIElmIHlvdSBzYXkgWSBoZXJlLCB0aGUgbWlub3IgbnVtYmVycyBvZiBBTFNBIGRldmljZSBmaWxlcyBpbgogCSAgL2Rldi9zbmQvIGFyZSBhbGxvY2F0ZWQgZHluYW1pY2FsbHkuICBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQpAQCAtMTM0LDcgKzEyNSw2IEBACiAKIGNvbmZpZyBTTkRfU1VQUE9SVF9PTERfQVBJCiAJYm9vbCAiU3VwcG9ydCBvbGQgQUxTQSBBUEkiCi0JZGVwZW5kcyBvbiBTTkQKIAlkZWZhdWx0IHkKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIHN1cHBvcnQgdGhlIG9ic29sZXRlIEFMU0EgUENNIEFQSSAodmVyLjAuOS4wIHJjMwpAQCAtMTQyLDcgKzEzMiw3IEBACiAKIGNvbmZpZyBTTkRfVkVSQk9TRV9QUk9DRlMKIAlib29sICJWZXJib3NlIHByb2NmcyBjb250ZW50cyIKLQlkZXBlbmRzIG9uIFNORCAmJiBQUk9DX0ZTCisJZGVwZW5kcyBvbiBQUk9DX0ZTCiAJZGVmYXVsdCB5CiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGNvZGUgZm9yIHZlcmJvc2UgcHJvY2ZzIGNvbnRlbnRzIChwcm92aWRlcwpAQCAtMTUxLDcgKzE0MSw2IEBACiAKIGNvbmZpZyBTTkRfVkVSQk9TRV9QUklOVEsKIAlib29sICJWZXJib3NlIHByaW50ayIKLQlkZXBlbmRzIG9uIFNORAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHZlcmJvc2UgbG9nIG1lc3NhZ2VzLiAgVGhlc2UgbWVzc2FnZXMKIAkgIHdpbGwgaGVscCB0byBpZGVudGlmeSBzb3VyY2UgZmlsZSBhbmQgcG9zaXRpb24gY29udGFpbmluZwpAQCAtMTYxLDE2ICsxNTAsMTcgQEAKIAogY29uZmlnIFNORF9ERUJVRwogCWJvb2wgIkRlYnVnIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgQUxTQSBkZWJ1ZyBjb2RlLgogCi1jb25maWcgU05EX0RFQlVHX0RFVEVDVAotCWJvb2wgIkRlYnVnIGRldGVjdGlvbiIKK2NvbmZpZyBTTkRfREVCVUdfVkVSQk9TRQorCWJvb2wgIk1vcmUgdmVyYm9zZSBkZWJ1ZyIKIAlkZXBlbmRzIG9uIFNORF9ERUJVRwogCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIGV4dHJhLXZlcmJvc2UgbG9nIG1lc3NhZ2VzIHByaW50ZWQgd2hlbgotCSAgZGV0ZWN0aW5nIGRldmljZXMuCisJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBleHRyYS12ZXJib3NlIGRlYnVnZ2luZyBtZXNzYWdlcy4KKwkgIAorCSAgTGV0IG1lIHJlcGVhdDogaXQgZW5hYmxlcyBFWFRSQS1WRVJCT1NFIERFQlVHR0lORyBtZXNzYWdlcy4KKwkgIFNvLCBzYXkgWSBvbmx5IGlmIHlvdSBhcmUgcmVhZHkgdG8gYmUgYW5ub3llZC4KIAogY29uZmlnIFNORF9QQ01fWFJVTl9ERUJVRwogCWJvb2wgIkVuYWJsZSBQQ00gcmluZyBidWZmZXIgb3ZlcnJ1bi91bmRlcnJ1biBkZWJ1Z2dpbmciCkBAIC0xODQsNCArMTc0LDMgQEAKIAogY29uZmlnIFNORF9WTUFTVEVSCiAJYm9vbAotCWRlcGVuZHMgb24gU05ECmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL2NvbnRyb2wuYyBiL3NvdW5kL2NvcmUvY29udHJvbC5jCmluZGV4IDAxYTFhNWEuLjI4MWIyZTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvY29udHJvbC5jCisrKyBiL3NvdW5kL2NvcmUvY29udHJvbC5jCkBAIC02ODQsNyArNjg0LDggQEAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1pbnQgc25kX2N0bF9lbGVtX3JlYWQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKQorc3RhdGljIGludCBzbmRfY3RsX2VsZW1fcmVhZChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCisJCQkgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpCiB7CiAJc3RydWN0IHNuZF9rY29udHJvbCAqa2N0bDsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sX3ZvbGF0aWxlICp2ZDsKQEAgLTczNCw4ICs3MzUsOCBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLWludCBzbmRfY3RsX2VsZW1fd3JpdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9maWxlICpmaWxlLAotCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqY29udHJvbCkKK3N0YXRpYyBpbnQgc25kX2N0bF9lbGVtX3dyaXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9jdGxfZmlsZSAqZmlsZSwKKwkJCSAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpCiB7CiAJc3RydWN0IHNuZF9rY29udHJvbCAqa2N0bDsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sX3ZvbGF0aWxlICp2ZDsKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvaW5pdC5jIGIvc291bmQvY29yZS9pbml0LmMKaW5kZXggYWMwNTczNC4uNWMyNTRkNCAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9pbml0LmMKKysrIGIvc291bmQvY29yZS9pbml0LmMKQEAgLTQ2LDE3ICs0NiwyNCBAQAogbW9kdWxlX3BhcmFtX2FycmF5KHNsb3RzLCBjaGFycCwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNsb3RzLCAiTW9kdWxlIG5hbWVzIGFzc2lnbmVkIHRvIHRoZSBzbG90cy4iKTsKIAotLyogcmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBnaXZlbiBpbmRleCBpcyBhbHJlYWR5IHJlc2VydmVkIGZvciBhbm90aGVyCisvKiByZXR1cm4gbm9uLXplcm8gaWYgdGhlIGdpdmVuIGluZGV4IGlzIHJlc2VydmVkIGZvciB0aGUgZ2l2ZW4KICAqIG1vZHVsZSB2aWEgc2xvdHMgb3B0aW9uCiAgKi8KLXN0YXRpYyBpbnQgbW9kdWxlX3Nsb3RfbWlzbWF0Y2goc3RydWN0IG1vZHVsZSAqbW9kdWxlLCBpbnQgaWR4KQorc3RhdGljIGludCBtb2R1bGVfc2xvdF9tYXRjaChzdHJ1Y3QgbW9kdWxlICptb2R1bGUsIGludCBpZHgpCiB7CisJaW50IG1hdGNoID0gMTsKICNpZmRlZiBNT0RVTEUKLQljaGFyICpzMSwgKnMyOworCWNvbnN0IGNoYXIgKnMxLCAqczI7CisKIAlpZiAoIW1vZHVsZSB8fCAhbW9kdWxlLT5uYW1lIHx8ICFzbG90c1tpZHhdKQogCQlyZXR1cm4gMDsKLQlzMSA9IHNsb3RzW2lkeF07Ci0JczIgPSBtb2R1bGUtPm5hbWU7CisKKwlzMSA9IG1vZHVsZS0+bmFtZTsKKwlzMiA9IHNsb3RzW2lkeF07CisJaWYgKCpzMiA9PSAnIScpIHsKKwkJbWF0Y2ggPSAwOyAvKiBuZWdhdGl2ZSBtYXRjaCAqLworCQlzMisrOworCX0KIAkvKiBjb21wYXJlIG1vZHVsZSBuYW1lIHN0cmluZ3MKIAkgKiBoeXBoZW5zIGFyZSBoYW5kbGVkIGFzIGVxdWl2YWxlbnQgd2l0aCB1bmRlcnNjb3JlCiAJICovCkBAIC02OCwxMiArNzUsMTIgQEAKIAkJaWYgKGMyID09ICctJykKIAkJCWMyID0gJ18nOwogCQlpZiAoYzEgIT0gYzIpCi0JCQlyZXR1cm4gMTsKKwkJCXJldHVybiAhbWF0Y2g7CiAJCWlmICghYzEpCiAJCQlicmVhazsKIAl9Ci0jZW5kaWYKLQlyZXR1cm4gMDsKKyNlbmRpZiAvKiBNT0RVTEUgKi8KKwlyZXR1cm4gbWF0Y2g7CiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19TTkRfTUlYRVJfT1NTKSB8fCBkZWZpbmVkKENPTkZJR19TTkRfTUlYRVJfT1NTX01PRFVMRSkKQEAgLTEyOSw3ICsxMzYsNyBAQAogCQkJIHN0cnVjdCBtb2R1bGUgKm1vZHVsZSwgaW50IGV4dHJhX3NpemUpCiB7CiAJc3RydWN0IHNuZF9jYXJkICpjYXJkOwotCWludCBlcnI7CisJaW50IGVyciwgaWR4MjsKIAogCWlmIChleHRyYV9zaXplIDwgMCkKIAkJZXh0cmFfc2l6ZSA9IDA7CkBAIC0xNDQsMzUgKzE1MSw0MSBAQAogCWVyciA9IDA7CiAJbXV0ZXhfbG9jaygmc25kX2NhcmRfbXV0ZXgpOwogCWlmIChpZHggPCAwKSB7Ci0JCWludCBpZHgyOwogCQlmb3IgKGlkeDIgPSAwOyBpZHgyIDwgU05EUlZfQ0FSRFM7IGlkeDIrKykKIAkJCS8qIGlkeCA9PSAtMSA9PSAweGZmZmYgbWVhbnM6IHRha2UgYW55IGZyZWUgc2xvdCAqLwogCQkJaWYgKH5zbmRfY2FyZHNfbG9jayAmIGlkeCAmIDE8PGlkeDIpIHsKLQkJCQlpZiAobW9kdWxlX3Nsb3RfbWlzbWF0Y2gobW9kdWxlLCBpZHgyKSkKLQkJCQkJY29udGludWU7Ci0JCQkJaWR4ID0gaWR4MjsKLQkJCQlpZiAoaWR4ID49IHNuZF9lY2FyZHNfbGltaXQpCi0JCQkJCXNuZF9lY2FyZHNfbGltaXQgPSBpZHggKyAxOwotCQkJCWJyZWFrOworCQkJCWlmIChtb2R1bGVfc2xvdF9tYXRjaChtb2R1bGUsIGlkeDIpKSB7CisJCQkJCWlkeCA9IGlkeDI7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJCX0KLQl9IGVsc2UgewotCQkgaWYgKGlkeCA8IHNuZF9lY2FyZHNfbGltaXQpIHsKLQkJCWlmIChzbmRfY2FyZHNfbG9jayAmICgxIDw8IGlkeCkpCi0JCQkJZXJyID0gLUVCVVNZOwkvKiBpbnZhbGlkICovCi0JCX0gZWxzZSB7Ci0JCQlpZiAoaWR4IDwgU05EUlZfQ0FSRFMpCi0JCQkJc25kX2VjYXJkc19saW1pdCA9IGlkeCArIDE7IC8qIGluY3JlYXNlIHRoZSBsaW1pdCAqLwotCQkJZWxzZQotCQkJCWVyciA9IC1FTk9ERVY7Ci0JCX0KIAl9Ci0JaWYgKGlkeCA8IDAgfHwgZXJyIDwgMCkgeworCWlmIChpZHggPCAwKSB7CisJCWZvciAoaWR4MiA9IDA7IGlkeDIgPCBTTkRSVl9DQVJEUzsgaWR4MisrKQorCQkJLyogaWR4ID09IC0xID09IDB4ZmZmZiBtZWFuczogdGFrZSBhbnkgZnJlZSBzbG90ICovCisJCQlpZiAofnNuZF9jYXJkc19sb2NrICYgaWR4ICYgMTw8aWR4MikgeworCQkJCWlmICghc2xvdHNbaWR4Ml0gfHwgISpzbG90c1tpZHgyXSkgeworCQkJCQlpZHggPSBpZHgyOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJfQorCWlmIChpZHggPCAwKQorCQllcnIgPSAtRU5PREVWOworCWVsc2UgaWYgKGlkeCA8IHNuZF9lY2FyZHNfbGltaXQpIHsKKwkJaWYgKHNuZF9jYXJkc19sb2NrICYgKDEgPDwgaWR4KSkKKwkJCWVyciA9IC1FQlVTWTsJLyogaW52YWxpZCAqLworCX0gZWxzZSBpZiAoaWR4ID49IFNORFJWX0NBUkRTKQorCQllcnIgPSAtRU5PREVWOworCWlmIChlcnIgPCAwKSB7CiAJCW11dGV4X3VubG9jaygmc25kX2NhcmRfbXV0ZXgpOwogCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgZmluZCB0aGUgc2xvdCBmb3IgaW5kZXggJWQgKHJhbmdlIDAtJWkpLCBlcnJvcjogJWRcbiIsCiAJCQkgaWR4LCBzbmRfZWNhcmRzX2xpbWl0IC0gMSwgZXJyKTsKIAkJZ290byBfX2Vycm9yOwogCX0KIAlzbmRfY2FyZHNfbG9jayB8PSAxIDw8IGlkeDsJCS8qIGxvY2sgaXQgKi8KKwlpZiAoaWR4ID49IHNuZF9lY2FyZHNfbGltaXQpCisJCXNuZF9lY2FyZHNfbGltaXQgPSBpZHggKyAxOyAvKiBpbmNyZWFzZSB0aGUgbGltaXQgKi8KIAltdXRleF91bmxvY2soJnNuZF9jYXJkX211dGV4KTsKIAljYXJkLT5udW1iZXIgPSBpZHg7CiAJY2FyZC0+bW9kdWxlID0gbW9kdWxlOwpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9tZW1hbGxvYy5jIGIvc291bmQvY29yZS9tZW1hbGxvYy5jCmluZGV4IDIzYjdiYzAuLmY1ZDZkOGQgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvbWVtYWxsb2MuYworKysgYi9zb3VuZC9jb3JlL21lbWFsbG9jLmMKQEAgLTgwLDY4ICs4MCw2IEBACiAjZW5kaWYKIAogLyoKLSAqICBIYWNrcwotICovCi0KLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotLyoKLSAqIEEgaGFjayB0byBhbGxvY2F0ZSBsYXJnZSBidWZmZXJzIHZpYSBkbWFfYWxsb2NfY29oZXJlbnQoKQotICoKLSAqIHNpbmNlIGRtYV9hbGxvY19jb2hlcmVudCBhbHdheXMgdHJpZXMgR0ZQX0RNQSB3aGVuIHRoZSByZXF1ZXN0ZWQKLSAqIHBjaSBtZW1vcnkgcmVnaW9uIGlzIGJlbG93IDMyYml0LCBpdCBoYXBwZW5zIHF1aXRlIG9mdGVuIHRoYXQgZXZlbgotICogMiBvcmRlciBvZiBwYWdlcyBjYW5ub3QgYmUgYWxsb2NhdGVkLgotICoKLSAqIHNvIGluIHRoZSBmb2xsb3dpbmcsIHdlIGFsbG9jYXRlIGF0IGZpcnN0IHdpdGhvdXQgZG1hX21hc2ssIHNvIHRoYXQKLSAqIGFsbG9jYXRpb24gd2lsbCBiZSBkb25lIHdpdGhvdXQgR0ZQX0RNQS4gIGlmIHRoZSBhcmVhIGRvZXNuJ3QgbWF0Y2gKLSAqIHdpdGggdGhlIHJlcXVlc3RlZCByZWdpb24sIHRoZW4gcmVhbGxvYXRlIHdpdGggdGhlIG9yaWdpbmFsIGRtYV9tYXNrCi0gKiBhZ2Fpbi4KLSAqCi0gKiBSZWFsbHksIHdlIHdhbnQgdG8gbW92ZSB0aGlzIHR5cGUgb2YgdGhpbmcgaW50byBkbWFfYWxsb2NfY29oZXJlbnQoKQotICogc28gZG1hX21hc2sgZG9lc24ndCBoYXZlIHRvIGJlIG1lc3NlZCB3aXRoLgotICovCi0KLXN0YXRpYyB2b2lkICpzbmRfZG1hX2hhY2tfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKLQkJCQkJIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCi0JCQkJCSBnZnBfdCBmbGFncykKLXsKLQl2b2lkICpyZXQ7Ci0JdTY0IGRtYV9tYXNrLCBjb2hlcmVudF9kbWFfbWFzazsKLQotCWlmIChkZXYgPT0gTlVMTCB8fCAhZGV2LT5kbWFfbWFzaykKLQkJcmV0dXJuIGRtYV9hbGxvY19jb2hlcmVudChkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGZsYWdzKTsKLQlkbWFfbWFzayA9ICpkZXYtPmRtYV9tYXNrOwotCWNvaGVyZW50X2RtYV9tYXNrID0gZGV2LT5jb2hlcmVudF9kbWFfbWFzazsKLQkqZGV2LT5kbWFfbWFzayA9IDB4ZmZmZmZmZmY7IAkvKiBkbyB3aXRob3V0IG1hc2tpbmcgKi8KLQlkZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gMHhmZmZmZmZmZjsgCS8qIGRvIHdpdGhvdXQgbWFza2luZyAqLwotCXJldCA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGZsYWdzKTsKLQkqZGV2LT5kbWFfbWFzayA9IGRtYV9tYXNrOwkvKiByZXN0b3JlICovCi0JZGV2LT5jb2hlcmVudF9kbWFfbWFzayA9IGNvaGVyZW50X2RtYV9tYXNrOwkvKiByZXN0b3JlICovCi0JaWYgKHJldCkgewotCQkvKiBvYnRhaW5lZCBhZGRyZXNzIGlzIG91dCBvZiByYW5nZT8gKi8KLQkJaWYgKCgodW5zaWduZWQgbG9uZykqZG1hX2hhbmRsZSArIHNpemUgLSAxKSAmIH5kbWFfbWFzaykgewotCQkJLyogcmVhbGxvY2F0ZSB3aXRoIHRoZSBwcm9wZXIgbWFzayAqLwotCQkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBzaXplLCByZXQsICpkbWFfaGFuZGxlKTsKLQkJCXJldCA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGZsYWdzKTsKLQkJfQotCX0gZWxzZSB7Ci0JCS8qIHdpc2ggdG8gc3VjY2VzcyBub3cgd2l0aCB0aGUgcHJvcGVyIG1hc2suLi4gKi8KLQkJaWYgKGRtYV9tYXNrICE9IDB4ZmZmZmZmZmZVTCkgewotCQkJLyogYWxsb2NhdGlvbiB3aXRoIEdGUF9BVE9NSUMgdG8gYXZvaWQgdGhlIGxvbmcgc3RhbGwgKi8KLQkJCWZsYWdzICY9IH5HRlBfS0VSTkVMOwotCQkJZmxhZ3MgfD0gR0ZQX0FUT01JQzsKLQkJCXJldCA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGZsYWdzKTsKLQkJfQotCX0KLQlyZXR1cm4gcmV0OwotfQotCi0vKiByZWRlZmluZSBkbWFfYWxsb2NfY29oZXJlbnQgZm9yIHNvbWUgYXJjaGl0ZWN0dXJlcyAqLwotI3VuZGVmIGRtYV9hbGxvY19jb2hlcmVudAotI2RlZmluZSBkbWFfYWxsb2NfY29oZXJlbnQgc25kX2RtYV9oYWNrX2FsbG9jX2NvaGVyZW50Ci0KLSNlbmRpZiAvKiBhcmNoICovCi0KLS8qCiAgKgogICogIEdlbmVyaWMgbWVtb3J5IGFsbG9jYXRvcnMKICAqCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3BjbV9uYXRpdmUuYyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCmluZGV4IDYxZjVkNDIuLmM0OWI5ZDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCisrKyBiL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3Fvc19wYXJhbXMuaD4KICNpbmNsdWRlIDxsaW51eC91aW8uaD4KQEAgLTMyNDksMTQgKzMyNTAsMTcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9maWxlICogcGNtX2ZpbGU7CiAJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZTsKLQlpbnQgZXJyOworCWludCBlcnIgPSAtRU5YSU87CiAKKwlsb2NrX2tlcm5lbCgpOwogCXBjbV9maWxlID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN1YnN0cmVhbSA9IHBjbV9maWxlLT5zdWJzdHJlYW07Ci0Jc25kX2Fzc2VydChzdWJzdHJlYW0gIT0gTlVMTCwgcmV0dXJuIC1FTlhJTyk7CisJc25kX2Fzc2VydChzdWJzdHJlYW0gIT0gTlVMTCwgZ290byBvdXQpOwogCXJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAKIAllcnIgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxlLCBvbiwgJnJ1bnRpbWUtPmZhc3luYyk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9zZXEvc2VxX2NsaWVudG1nci5jIGIvc291bmQvY29yZS9zZXEvc2VxX2NsaWVudG1nci5jCmluZGV4IDQ3Y2ZhNTEuLjdhMTU0NWQgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvc2VxL3NlcV9jbGllbnRtZ3IuYworKysgYi9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMKQEAgLTE0OCw3ICsxNDgsNyBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2xpZW50c19sb2NrLCBmbGFncyk7Ci0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogCWlmICghaW5faW50ZXJydXB0KCkpIHsKIAkJc3RhdGljIGNoYXIgY2xpZW50X3JlcXVlc3RlZFtTTkRSVl9TRVFfR0xPQkFMX0NMSUVOVFNdOwogCQlzdGF0aWMgY2hhciBjYXJkX3JlcXVlc3RlZFtTTkRSVl9DQVJEU107CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfZGV2aWNlLmMgYi9zb3VuZC9jb3JlL3NlcS9zZXFfZGV2aWNlLmMKaW5kZXggMmYwMGFkMi4uMDU0MTBlNSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9zZXEvc2VxX2RldmljZS5jCisrKyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9kZXZpY2UuYwpAQCAtMTI0LDcgKzEyNCw3IEBACiAgKiBsb2FkIGFsbCByZWdpc3RlcmVkIGRyaXZlcnMgKGNhbGxlZCBmcm9tIHNlcV9jbGllbnRtZ3IuYykKICAqLwogCi0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogLyogYXZvaWQgYXV0by1sb2FkaW5nIGR1cmluZyBtb2R1bGVfaW5pdCgpICovCiBzdGF0aWMgaW50IHNuZF9zZXFfaW5faW5pdDsKIHZvaWQgc25kX3NlcV9hdXRvbG9hZF9sb2NrKHZvaWQpCkBAIC0xNDAsNyArMTQwLDcgQEAKIAogdm9pZCBzbmRfc2VxX2RldmljZV9sb2FkX2RyaXZlcnModm9pZCkKIHsKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAJc3RydWN0IG9wc19saXN0ICpvcHM7CiAKIAkvKiBDYWxsaW5nIHJlcXVlc3RfbW9kdWxlIGR1cmluZyBtb2R1bGVfaW5pdCgpCkBAIC01NjYsNyArNTY2LDUgQEAKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9kZXZpY2VfbmV3KTsKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9kZXZpY2VfcmVnaXN0ZXJfZHJpdmVyKTsKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9kZXZpY2VfdW5yZWdpc3Rlcl9kcml2ZXIpOwotI2lmZGVmIENPTkZJR19LTU9ECiBFWFBPUlRfU1lNQk9MKHNuZF9zZXFfYXV0b2xvYWRfbG9jayk7CiBFWFBPUlRfU1lNQk9MKHNuZF9zZXFfYXV0b2xvYWRfdW5sb2NrKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9zb3VuZC5jIGIvc291bmQvY29yZS9zb3VuZC5jCmluZGV4IDZjOGFiNDguLjEwMDNhZTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvc291bmQuYworKysgYi9zb3VuZC9jb3JlL3NvdW5kLmMKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KQEAgLTYwLDE0ICs2MSwxNCBAQAogc3RhdGljIHN0cnVjdCBzbmRfbWlub3IgKnNuZF9taW5vcnNbU05EUlZfT1NfTUlOT1JTXTsKIHN0YXRpYyBERUZJTkVfTVVURVgoc291bmRfbXV0ZXgpOwogCi0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogCiAvKioKICAqIHNuZF9yZXF1ZXN0X2NhcmQgLSB0cnkgdG8gbG9hZCB0aGUgY2FyZCBtb2R1bGUKICAqIEBjYXJkOiB0aGUgY2FyZCBudW1iZXIKICAqCiAgKiBUcmllcyB0byBsb2FkIHRoZSBtb2R1bGUgInNuZC1jYXJkLVgiIGZvciB0aGUgZ2l2ZW4gY2FyZCBudW1iZXIKLSAqIHZpYSBLTU9ELiAgUmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbHJlYWR5IGxvYWRlZC4KKyAqIHZpYSByZXF1ZXN0X21vZHVsZS4gIFJldHVybnMgaW1tZWRpYXRlbHkgaWYgYWxyZWFkeSBsb2FkZWQuCiAgKi8KIHZvaWQgc25kX3JlcXVlc3RfY2FyZChpbnQgY2FyZCkKIHsKQEAgLTkyLDcgKzkzLDcgQEAKIAlyZXF1ZXN0X21vZHVsZShzdHIpOwogfQogCi0jZW5kaWYJCQkJLyogcmVxdWVzdF9tb2R1bGUgc3VwcG9ydCAqLworI2VuZGlmCS8qIG1vZHVsYXIga2VybmVsICovCiAKIC8qKgogICogc25kX2xvb2t1cF9taW5vcl9kYXRhIC0gZ2V0IHVzZXIgZGF0YSBvZiBhIHJlZ2lzdGVyZWQgZGV2aWNlCkBAIC0xMjEsNyArMTIyLDcgQEAKIAogRVhQT1JUX1NZTUJPTChzbmRfbG9va3VwX21pbm9yX2RhdGEpOwogCi1zdGF0aWMgaW50IHNuZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQorc3RhdGljIGludCBfX3NuZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAJc3RydWN0IHNuZF9taW5vciAqbXB0ciA9IE5VTEw7CkBAIC0xMzIsNyArMTMzLDcgQEAKIAkJcmV0dXJuIC1FTk9ERVY7CiAJbXB0ciA9IHNuZF9taW5vcnNbbWlub3JdOwogCWlmIChtcHRyID09IE5VTEwpIHsKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAJCWludCBkZXYgPSBTTkRSVl9NSU5PUl9ERVZJQ0UobWlub3IpOwogCQlpZiAoZGV2ID09IFNORFJWX01JTk9SX0NPTlRST0wpIHsKIAkJCS8qIC9kZXYvYWxvYWRDPyAqLwpAQCAtMTYzLDYgKzE2NCwxOCBAQAogCXJldHVybiBlcnI7CiB9CiAKKworLyogQktMIHB1c2hkb3duOiBuYXN0eSAjaWZkZWYgYXZvaWRhbmNlIHdyYXBwZXIgKi8KK3N0YXRpYyBpbnQgc25kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gX19zbmRfb3Blbihpbm9kZSwgZmlsZSk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNuZF9mb3BzID0KIHsKIAkub3duZXIgPQlUSElTX01PRFVMRSwKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvdGltZXIuYyBiL3NvdW5kL2NvcmUvdGltZXIuYwppbmRleCA5ZDgxODRhLi4wYWYzMzdlIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3RpbWVyLmMKKysrIGIvc291bmQvY29yZS90aW1lci5jCkBAIC0xNDYsNyArMTQ2LDcgQEAKIAlyZXR1cm4gTlVMTDsKIH0KIAotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIAogc3RhdGljIHZvaWQgc25kX3RpbWVyX3JlcXVlc3Qoc3RydWN0IHNuZF90aW1lcl9pZCAqdGlkKQogewpAQCAtMjU5LDggKzI1OSw4IEBACiAJLyogb3BlbiBhIG1hc3RlciBpbnN0YW5jZSAqLwogCW11dGV4X2xvY2soJnJlZ2lzdGVyX211dGV4KTsKIAl0aW1lciA9IHNuZF90aW1lcl9maW5kKHRpZCk7Ci0jaWZkZWYgQ09ORklHX0tNT0QKLQlpZiAodGltZXIgPT0gTlVMTCkgeworI2lmZGVmIENPTkZJR19NT0RVTEVTCisJaWYgKCF0aW1lcikgewogCQltdXRleF91bmxvY2soJnJlZ2lzdGVyX211dGV4KTsKIAkJc25kX3RpbWVyX3JlcXVlc3QodGlkKTsKIAkJbXV0ZXhfbG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvc291bmQvZHJpdmVycy9LY29uZmlnIGIvc291bmQvZHJpdmVycy9LY29uZmlnCmluZGV4IDYwMmI1OGUuLjI1NWZkMTggMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvS2NvbmZpZworKysgYi9zb3VuZC9kcml2ZXJzL0tjb25maWcKQEAgLTEsMTUgKzEsNDEgQEAKLSMgQUxTQSBnZW5lcmljIGRyaXZlcnMKK2NvbmZpZyBTTkRfTVBVNDAxX1VBUlQKKyAgICAgICAgdHJpc3RhdGUKKyAgICAgICAgc2VsZWN0IFNORF9SQVdNSURJCiAKLW1lbnUgIkdlbmVyaWMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9bgorY29uZmlnIFNORF9PUEwzX0xJQgorCXRyaXN0YXRlCisJc2VsZWN0IFNORF9USU1FUgorCXNlbGVjdCBTTkRfSFdERVAKIAorY29uZmlnIFNORF9PUEw0X0xJQgorCXRyaXN0YXRlCisJc2VsZWN0IFNORF9USU1FUgorCXNlbGVjdCBTTkRfSFdERVAKKworY29uZmlnIFNORF9WWF9MSUIKKwl0cmlzdGF0ZQorCXNlbGVjdCBTTkRfSFdERVAKKwlzZWxlY3QgU05EX1BDTQorCitjb25maWcgU05EX0FDOTdfQ09ERUMKKwl0cmlzdGF0ZQorCXNlbGVjdCBTTkRfUENNCisJc2VsZWN0IEFDOTdfQlVTCisJc2VsZWN0IFNORF9WTUFTVEVSCisKK21lbnVjb25maWcgU05EX0RSSVZFUlMKKwlib29sICJHZW5lcmljIHNvdW5kIGRldmljZXMiCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3IgZ2VuZXJpYyBzb3VuZCBkZXZpY2VzLgorICAKK2lmIFNORF9EUklWRVJTCiAKIGNvbmZpZyBTTkRfUENTUAogCXRyaXN0YXRlICJQQy1TcGVha2VyIHN1cHBvcnQgKFJFQUQgSEVMUCEpIgogCWRlcGVuZHMgb24gUENTUEtSX1BMQVRGT1JNICYmIFg4Nl9QQyAmJiBISUdIX1JFU19USU1FUlMKIAlkZXBlbmRzIG9uIElOUFVUCiAJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgSWYgeW91IGRvbid0IGhhdmUgYSBzb3VuZCBjYXJkIGluIHlvdXIgY29tcHV0ZXIsIHlvdSBjYW4gaW5jbHVkZSBhCkBAIC0zNSwzMyArNjEsOCBAQAogCSAgU2F5IE0gaWYgeW91IGRvbid0LgogCSAgU2F5IFkgb25seSBpZiB5b3UgcmVhbGx5IGtub3cgd2hhdCB5b3UgZG8uCiAKLWNvbmZpZyBTTkRfTVBVNDAxX1VBUlQKLSAgICAgICAgdHJpc3RhdGUKLSAgICAgICAgc2VsZWN0IFNORF9SQVdNSURJCi0KLWNvbmZpZyBTTkRfT1BMM19MSUIKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfVElNRVIKLQlzZWxlY3QgU05EX0hXREVQCi0KLWNvbmZpZyBTTkRfT1BMNF9MSUIKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfVElNRVIKLQlzZWxlY3QgU05EX0hXREVQCi0KLWNvbmZpZyBTTkRfVlhfTElCCi0JdHJpc3RhdGUKLQlzZWxlY3QgU05EX0hXREVQCi0Jc2VsZWN0IFNORF9QQ00KLQotY29uZmlnIFNORF9BQzk3X0NPREVDCi0JdHJpc3RhdGUKLQlzZWxlY3QgU05EX1BDTQotCXNlbGVjdCBBQzk3X0JVUwotCiBjb25maWcgU05EX0RVTU1ZCiAJdHJpc3RhdGUgIkR1bW15ICgvZGV2L251bGwpIHNvdW5kY2FyZCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBkdW1teSBkcml2ZXIuICBUaGlzIGRyaXZlciBkb2VzCkBAIC05MCw3ICs5MSw2IEBACiAKIGNvbmZpZyBTTkRfTVRQQVYKIAl0cmlzdGF0ZSAiTU9UVSBNaWRpVGltZVBpZWNlIEFWIG11bHRpcG9ydCBNSURJIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJaGVscAogCSAgVG8gdXNlIGEgTU9UVSBNaWRpVGltZVBpZWNlIEFWIG11bHRpcG9ydCBNSURJIGFkYXB0ZXIKQEAgLTEwMiw3ICsxMDIsNyBAQAogCiBjb25maWcgU05EX01UUzY0CiAJdHJpc3RhdGUgIkVTSSBNaWRpdGVybWluYWwgNDE0MCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUEFSUE9SVAorCWRlcGVuZHMgb24gUEFSUE9SVAogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKIAkgIFRoZSBFU0kgTWlkaXRlcm1pbmFsIDQxNDAgaXMgYSA0IEluIDQgT3V0IE1JREkgSW50ZXJmYWNlIHdpdGggCkBAIC0xMTUsNyArMTE1LDYgQEAKIAogY29uZmlnIFNORF9TRVJJQUxfVTE2NTUwCiAJdHJpc3RhdGUgIlVBUlQxNjU1MCBzZXJpYWwgTUlESSBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAloZWxwCiAJICBUbyBpbmNsdWRlIHN1cHBvcnQgZm9yIE1JREkgc2VyaWFsIHBvcnQgaW50ZXJmYWNlcywgc2F5IFkgaGVyZQpAQCAtMTMxLDcgKzEzMCw2IEBACiAKIGNvbmZpZyBTTkRfTVBVNDAxCiAJdHJpc3RhdGUgIkdlbmVyaWMgTVBVLTQwMSBVQVJUIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTUlESSBwb3J0cyBjb21wYXRpYmxlIHdpdGgKQEAgLTE0Miw3ICsxNDAsNyBAQAogCiBjb25maWcgU05EX1BPUlRNQU4yWDQKIAl0cmlzdGF0ZSAiUG9ydG1hbiAyeDQgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EICYmIFBBUlBPUlQKKwlkZXBlbmRzIG9uIFBBUlBPUlQKIAlzZWxlY3QgU05EX1JBV01JREkKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTWlkaW1hbiBQb3J0bWFuIDJ4NCBwYXJhbGxlbApAQCAtMTUzLDcgKzE1MSw3IEBACiAKIGNvbmZpZyBTTkRfTUw0MDNfQUM5N0NSCiAJdHJpc3RhdGUgIlhpbGlueCBNTDQwMyBBQzk3IENvbnRyb2xsZXIgUmVmZXJlbmNlIgotCWRlcGVuZHMgb24gU05EICYmIFhJTElOWF9WSVJURVgKKwlkZXBlbmRzIG9uIFhJTElOWF9WSVJURVgKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlCkBAIC0xNjMsNCArMTYxLDI1IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtbWw0MDNfYWM5N2NyLgogCi1lbmRtZW51Citjb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRQorCWJvb2wgIkFDOTcgUG93ZXItU2F2aW5nIE1vZGUiCisJZGVwZW5kcyBvbiBTTkRfQUM5N19DT0RFQyAmJiBFWFBFUklNRU5UQUwKKwlkZWZhdWx0IG4KKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgYWdncmVzc2l2ZSBwb3dlci1zYXZpbmcgc3VwcG9ydCBvZgorCSAgQUM5NyBjb2RlY3MuICBJbiB0aGlzIG1vZGUsIHRoZSBwb3dlci1tb2RlIGlzIGR5bmFtaWNhbGx5CisJICBjb250cm9sbGVkIGF0IGVhY2ggb3Blbi9jbG9zZS4KKworCSAgVGhlIG1vZGUgaXMgYWN0aXZhdGVkIGJ5IHBhc3NpbmcgcG93ZXJfc2F2ZT0xIG9wdGlvbiB0bworCSAgc25kLWFjOTctY29kZWMgZHJpdmVyLiAgWW91IGNhbiB0b2dnbGUgaXQgZHluYW1pY2FsbHkgb3ZlcgorCSAgc3lzZnMsIHRvby4KKworY29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkVfREVGQVVMVAorCWludCAiRGVmYXVsdCB0aW1lLW91dCBmb3IgQUM5NyBwb3dlci1zYXZlIG1vZGUiCisJZGVwZW5kcyBvbiBTTkRfQUM5N19QT1dFUl9TQVZFCisJZGVmYXVsdCAwCisJaGVscAorCSAgVGhlIGRlZmF1bHQgdGltZS1vdXQgdmFsdWUgaW4gc2Vjb25kcyBmb3IgQUM5NyBhdXRvbWF0aWMKKwkgIHBvd2VyLXNhdmUgbW9kZS4gIDAgbWVhbnMgdG8gZGlzYWJsZSB0aGUgcG93ZXItc2F2ZSBtb2RlLgorCitlbmRpZgkjIFNORF9EUklWRVJTCmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2NvcmUuYyBiL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCmluZGV4IDk5NTM4ODYuLjU4NWFmMmUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCisrKyBiL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCkBAIC00NTMsNyArNDUzLDcgQEAKIAkJCXZ4X291dGIoY2hpcCwgVFhNLCAwKTsKIAkJCXZ4X291dGIoY2hpcCwgVFhMLCAwKTsKIAkJfSBlbHNlIHsKLQkJCXVuc2lnbmVkIGNoYXIgKmltYWdlID0gYm9vdC0+ZGF0YSArIGk7CisJCQljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZSA9IGJvb3QtPmRhdGEgKyBpOwogCQkJaWYgKHZ4X3dhaXRfaXNyX2JpdChjaGlwLCBJU1JfVFhfRU1QVFkpIDwgMCkgewogCQkJCXNuZF9wcmludGsoS0VSTl9FUlIgImRzcCBib290IGZhaWxlZCBhdCAlZFxuIiwgaSk7CiAJCQkJcmV0dXJuIC1FSU87CkBAIC02NzEsNyArNjcxLDcgQEAKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGludCBjc3VtID0gMDsKLQl1bnNpZ25lZCBjaGFyICppbWFnZSwgKmNwdHI7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW1hZ2UsICpjcHRyOwogCiAJc25kX2Fzc2VydChkc3AtPnNpemUgJSAzID09IDAsIHJldHVybiAtRUlOVkFMKTsKIApkaWZmIC0tZ2l0IGEvc291bmQvZHJpdmVycy92eC92eF9od2RlcC5jIGIvc291bmQvZHJpdmVycy92eC92eF9od2RlcC5jCmluZGV4IDFkZmU2OTQuLmVmZDIyZTkgMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvdngvdnhfaHdkZXAuYworKysgYi9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2h3ZGVwLmMKQEAgLTE4Myw3ICsxODMsNyBAQAogCQlrZnJlZShmdyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlpZiAoY29weV9mcm9tX3VzZXIoZnctPmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgeworCWlmIChjb3B5X2Zyb21fdXNlcigodm9pZCAqKWZ3LT5kYXRhLCBkc3AtPmltYWdlLCBkc3AtPmxlbmd0aCkpIHsKIAkJZnJlZV9mdyhmdyk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KZGlmZiAtLWdpdCBhL3NvdW5kL2kyYy9jczg0MjcuYyBiL3NvdW5kL2kyYy9jczg0MjcuYwppbmRleCBlNTdlOWNiLi45YzNkMzYxIDEwMDY0NAotLS0gYS9zb3VuZC9pMmMvY3M4NDI3LmMKKysrIGIvc291bmQvaTJjL2NzODQyNy5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgpAQCAtMjY0LDEwICsyNjUsNyBAQAogCQlnb3RvIF9fZmFpbDsKIAl9CiAJLyogd3JpdGUgZGVmYXVsdCBjaGFubmVsIHN0YXR1cyBieXRlcyAqLwotCWJ1ZlswXSA9ICgodW5zaWduZWQgY2hhcikoU05EUlZfUENNX0RFRkFVTFRfQ09OX1NQRElGID4+IDApKTsKLQlidWZbMV0gPSAoKHVuc2lnbmVkIGNoYXIpKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiA+PiA4KSk7Ci0JYnVmWzJdID0gKCh1bnNpZ25lZCBjaGFyKShTTkRSVl9QQ01fREVGQVVMVF9DT05fU1BESUYgPj4gMTYpKTsKLQlidWZbM10gPSAoKHVuc2lnbmVkIGNoYXIpKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiA+PiAyNCkpOworCXB1dF91bmFsaWduZWRfbGUzMihTTkRSVl9QQ01fREVGQVVMVF9DT05fU1BESUYsIGJ1Zik7CiAJbWVtc2V0KGJ1ZiArIDQsIDAsIDI0IC0gNCk7CiAJaWYgKHNuZF9jczg0Mjdfc2VuZF9jb3J1ZGF0YShkZXZpY2UsIDAsIGJ1ZiwgMjQpIDwgMCkKIAkJZ290byBfX2ZhaWw7CmRpZmYgLS1naXQgYS9zb3VuZC9pMmMvbDMvdWRhMTM0MS5jIGIvc291bmQvaTJjL2wzL3VkYTEzNDEuYwppbmRleCBiZmE1ZDJjLi4xZjQ5NDJlIDEwMDY0NAotLS0gYS9zb3VuZC9pMmMvbDMvdWRhMTM0MS5jCisrKyBiL3NvdW5kL2kyYy9sMy91ZGExMzQxLmMKQEAgLTE3LDggKzE3LDYgQEAKICAqIDIwMDItMDUtMTIgICBUb21hcyBLYXNwYXJlayAgYW5vdGhlciBjb2RlIGNsZWFudXAKICAqLwogCi0vKiAkSWQ6IHVkYTEzNDEuYyx2IDEuMTggMjAwNS8xMS8xNyAxNDoxNzoyMSB0aXdhaSBFeHAgJCAqLwotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9pc2EvS2NvbmZpZyBiL3NvdW5kL2lzYS9LY29uZmlnCmluZGV4IDI2MzlhNmEuLjU3NjlhMTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9LY29uZmlnCisrKyBiL3NvdW5kL2lzYS9LY29uZmlnCkBAIC0yMSwxMiArMjEsMTcgQEAKICAgICAgICAgc2VsZWN0IFNORF9QQ00KICAgICAgICAgc2VsZWN0IFNORF9TQl9DT01NT04KIAotbWVudSAiSVNBIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgSVNBICYmIElTQV9ETUFfQVBJCittZW51Y29uZmlnIFNORF9JU0EKKwlib29sICJJU0Egc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIElTQSAmJiBJU0FfRE1BX0FQSQorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgSVNBIGJ1cy4KKworaWYgU05EX0lTQQogCiBjb25maWcgU05EX0FETElCCiAJdHJpc3RhdGUgIkFkTGliIEZNIGNhcmQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEFkTGliIEZNIGNhcmRzLgpAQCAtMzYsNyArNDEsNyBAQAogCiBjb25maWcgU05EX0FEMTgxNkEKIAl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgU291bmRQb3J0IEFEMTgxNkEiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC01MCw3ICs1NSw2IEBACiAKIGNvbmZpZyBTTkRfQUQxODQ4CiAJdHJpc3RhdGUgIkdlbmVyaWMgQUQxODQ4L0NTNDI0OCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FEMTg0OF9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQUQxODQ4IChBbmFsb2cgRGV2aWNlcykgb3IKQEAgLTY0LDcgKzY4LDcgQEAKIAogY29uZmlnIFNORF9BTFMxMDAKIAl0cmlzdGF0ZSAiQXZhbmNlIExvZ2ljIEFMUzEwMC9BTFMxMjAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC03OCw3ICs4Miw3IEBACiAKIGNvbmZpZyBTTkRfQVpUMjMyMAogCXRyaXN0YXRlICJBenRlY2ggU3lzdGVtcyBBWlQyMzIwIgotCWRlcGVuZHMgb24gU05EICYmIFBOUCAmJiBJU0EKKwlkZXBlbmRzIG9uIFBOUAogCXNlbGVjdCBJU0FQTlAKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtOTIsNyArOTYsNiBAQAogCiBjb25maWcgU05EX0NNSTgzMzAKIAl0cmlzdGF0ZSAiQy1NZWRpYSBDTUk4MzMwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BRDE4NDhfTElCCiAJc2VsZWN0IFNORF9TQjE2X0RTUAogCWhlbHAKQEAgLTEwNCw3ICsxMDcsNiBAQAogCiBjb25maWcgU05EX0NTNDIzMQogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzEgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgogCWhlbHAKQEAgLTExNiw3ICsxMTgsNiBAQAogCiBjb25maWcgU05EX0NTNDIzMgogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzIgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTEyOSw3ICsxMzAsNiBAQAogCiBjb25maWcgU05EX0NTNDIzNgogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzYrIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCkBAIC0xNDIsNyArMTQyLDcgQEAKIAogY29uZmlnIFNORF9EVDAxOVgKIAl0cmlzdGF0ZSAiRGlhbW9uZCBUZWNobm9sb2dpZXMgRFQtMDE5WCwgQXZhbmNlIExvZ2ljIEFMUy0wMDciCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogY29uZmlnIFNORF9FUzk2OAogCXRyaXN0YXRlICJHZW5lcmljIEVTUyBFUzk2OCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCOF9EU1AKQEAgLTE2OCw3ICsxNjgsNiBAQAogCiBjb25maWcgU05EX0VTMTY4OAogCXRyaXN0YXRlICJHZW5lcmljIEVTUyBFUzY4OC9FUzE2ODggZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTgxLDcgKzE4MCw2IEBACiAKIGNvbmZpZyBTTkRfRVMxOFhYCiAJdHJpc3RhdGUgIkdlbmVyaWMgRVNTIEVTMTh4eCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC0xOTMsNyArMTkxLDcgQEAKIAogY29uZmlnIFNORF9TQzYwMDAKIAl0cmlzdGF0ZSAiR2FsbGFudCBTQy02MDAwLCBBdWRpbyBFeGNlbCBEU1AgMTYiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSEFTX0lPUE9SVAorCWRlcGVuZHMgb24gSEFTX0lPUE9SVAogCXNlbGVjdCBTTkRfQUQxODQ4X0xJQgogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0yMDQsMTUgKzIwMiwxMCBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgc25kLXNjNjAwMC4KIAotY29uZmlnIFNORF9HVVNfU1lOVEgKLQl0cmlzdGF0ZQotCiBjb25maWcgU05EX0dVU0NMQVNTSUMKIAl0cmlzdGF0ZSAiR3JhdmlzIFVsdHJhU291bmQgQ2xhc3NpYyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgQ2xhc3NpYwogCSAgc291bmRjYXJkcy4KQEAgLTIyMiwxMSArMjE1LDkgQEAKIAogY29uZmlnIFNORF9HVVNFWFRSRU1FCiAJdHJpc3RhdGUgIkdyYXZpcyBVbHRyYVNvdW5kIEV4dHJlbWUiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgRXh0cmVtZQogCSAgc291bmRjYXJkcy4KQEAgLTIzNiwxMCArMjI3LDggQEAKIAogY29uZmlnIFNORF9HVVNNQVgKIAl0cmlzdGF0ZSAiR3JhdmlzIFVsdHJhU291bmQgTUFYIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgTUFYCiAJICBzb3VuZGNhcmRzLgpAQCAtMjQ5LDEwICsyMzgsOSBAQAogCiBjb25maWcgU05EX0lOVEVSV0FWRQogCXRyaXN0YXRlICJBTUQgSW50ZXJXYXZlLCBHcmF2aXMgVWx0cmFTb3VuZCBQblAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQU1EIEludGVyV2F2ZSBiYXNlZAogCSAgc291bmRjYXJkcyAoR3JhdmlzIFVsdHJhU291bmQgUGx1ZyAmIFBsYXksIFNUQiBTb3VuZFJhZ2UzMiwKQEAgLTI2MywxMCArMjUxLDkgQEAKIAogY29uZmlnIFNORF9JTlRFUldBVkVfU1RCCiAJdHJpc3RhdGUgIkFNRCBJbnRlcldhdmUgKyBURUE2MzMwVCAoVWx0cmFTb3VuZCAzMi1Qcm8pIgotCWRlcGVuZHMgb24gU05EICYmIFBOUCAmJiBJU0EKKwlkZXBlbmRzIG9uIFBOUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgotCXNlbGVjdCBTTkRfR1VTX1NZTlRICiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEFNRCBJbnRlcldhdmUgYmFzZWQKIAkgIHNvdW5kY2FyZHMgd2l0aCBhIFRFQTYzMzBUIGJhc3MgYW5kIHRyZWJsZSByZWd1bGF0b3IKQEAgLTI3Nyw3ICsyNjQsNiBAQAogCiBjb25maWcgU05EX09QTDNTQTIKIAl0cmlzdGF0ZSAiWWFtYWhhIE9QTDMtU0EyL1NBMyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCkBAIC0yOTAsNyArMjc2LDYgQEAKIAogY29uZmlnIFNORF9PUFRJOTJYX0FEMTg0OAogCXRyaXN0YXRlICJPUFRpIDgyQzkyeCAtIEFEMTg0OCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX09QTDRfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtMzA0LDcgKzI4OSw2IEBACiAKIGNvbmZpZyBTTkRfT1BUSTkyWF9DUzQyMzEKIAl0cmlzdGF0ZSAiT1BUaSA4MkM5MnggLSBDUzQyMzEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9PUEw0X0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTMxOCwxMCArMzAyLDkgQEAKIAogY29uZmlnIFNORF9PUFRJOTNYCiAJdHJpc3RhdGUgIk9QVGkgODJDOTN4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKLQlzZWxlY3QgU05EX1BDTQorCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBzb3VuZGNhcmRzIGJhc2VkIG9uIE9wdGkKIAkgIDgyQzkzeCBjaGlwcy4KQEAgLTMzMSw3ICszMTQsNiBAQAogCiBjb25maWcgU05EX01JUk8KIAl0cmlzdGF0ZSAiTWlybyBtaXJvU09VTkQgUENNMXByby9QQ00xMi9QQ00yMHJhZGlvIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMNF9MSUIKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0zNDUsNyArMzI3LDYgQEAKIAogY29uZmlnIFNORF9TQjgKIAl0cmlzdGF0ZSAiU291bmQgQmxhc3RlciAxLjAvMi4wL1BybyAoOC1iaXQpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfU0I4X0RTUApAQCAtMzU4LDcgKzMzOSw2IEBACiAKIGNvbmZpZyBTTkRfU0IxNgogCXRyaXN0YXRlICJTb3VuZCBCbGFzdGVyIDE2IChQblApIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCMTZfRFNQCkBAIC0zNzEsNyArMzUxLDYgQEAKIAogY29uZmlnIFNORF9TQkFXRQogCXRyaXN0YXRlICJTb3VuZCBCbGFzdGVyIEFXRSAoMzIsNjQpIChQblApIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCMTZfRFNQCkBAIC0zOTEsMTggKzM3MCw4IEBACiAJICBjb3Byb2Nlc3NvciBjYW4gZG8gdmFyaWFibGUgdGFza3MgbGlrZSB2YXJpb3VzIGNvbXByZXNzaW9uIGFuZAogCSAgZGVjb21wcmVzc2lvbiBhbGdvcml0aG1zLgogCi1jb25maWcgU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWJvb2wgIkluLWtlcm5lbCBmaXJtd2FyZSBmb3IgU0IxNiBDU1AiCi0JZGVwZW5kcyBvbiBTTkRfU0IxNl9DU1AKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIHN0YXRpYyBmaXJtd2FyZSBidWlsdCBpbiB0aGUga2VybmVsCi0JICBmb3IgdGhlIFNCMTYgQ1NQIGNvbnRyb2xsZXIuICBJZiB5b3UgY2hvb3NlIE4gaGVyZSwgeW91IG5lZWQKLQkgIHRvIGluc3RhbGwgdGhlIGZpcm13YXJlIGZpbGVzIGZyb20gdGhlIGFsc2EtZmlybXdhcmUgcGFja2FnZS4KLQogY29uZmlnIFNORF9TR0FMQVhZCiAJdHJpc3RhdGUgIkF6dGVjaCBTb3VuZCBHYWxheHkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FEMTg0OF9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQXp0ZWNoIFNvdW5kIEdhbGF4eQpAQCAtNDEzLDcgKzM4Miw2IEBACiAKIGNvbmZpZyBTTkRfU1NDQVBFCiAJdHJpc3RhdGUgIkVuc29uaXEgU291bmRTY2FwZSBQblAgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTQyNiw3ICszOTQsNiBAQAogCiBjb25maWcgU05EX1dBVkVGUk9OVAogCXRyaXN0YXRlICJUdXJ0bGUgQmVhY2ggTWF1aSxUcm9wZXosVHJvcGV6KyAoV2F2ZWZyb250KSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtNDQ4LDQgKzQxNSw1IEBACiAJICB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZQogCSAgYWxzYS1maXJtd2FyZSBwYWNrYWdlLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9JU0EKKwpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL2NzNDIzeC9jczQyMzFfbGliLmMgYi9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYwppbmRleCAwYWE4NjQ5Li41MjFkYjcwIDEwMDY0NAotLS0gYS9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYworKysgYi9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYwpAQCAtMTE5LDYgKzExOSw0MiBAQAogCTB4MDAsCQkJLyogMWYvMzEgLSBjYnJsICovCiB9OwogCitzdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZVszMl0gPQoreworCTB4MDAsCQkvKiAwMC8wMCAtIGxfbWl4b3V0X291dGN0cmwgKi8KKwkweDAwLAkJLyogMDEvMDEgLSByX21peG91dF9vdXRjdHJsICovCisJMHg4OCwJCS8qIDAyLzAyIC0gbF9jZF9pbmN0cmwgKi8KKwkweDg4LAkJLyogMDMvMDMgLSByX2NkX2luY3RybCAqLworCTB4ODgsCQkvKiAwNC8wNCAtIGxfYTEvZm1faW5jdHJsICovCisJMHg4OCwJCS8qIDA1LzA1IC0gcl9hMS9mbV9pbmN0cmwgKi8KKwkweDgwLAkJLyogMDYvMDYgLSBsX2RhY19pbmN0cmwgKi8KKwkweDgwLAkJLyogMDcvMDcgLSByX2RhY19pbmN0cmwgKi8KKwkweDAwLAkJLyogMDgvMDggLSBwbHlfZGF0YWZvcm1fcmVnICovCisJMHgwMCwJCS8qIDA5LzA5IC0gaWZfY29uZiAqLworCTB4MDAsCQkvKiAwYS8xMCAtIHBpbl9jdHJsICovCisJMHgwMCwJCS8qIDBiLzExIC0gZXJyX2luaXRfcmVnICovCisJMHgwYSwJCS8qIDBjLzEyIC0gaWRfcmVnICovCisJMHgwMCwJCS8qIDBkLzEzIC0gcmVzZXJ2ZWQgKi8KKwkweDAwLAkJLyogMGUvMTQgLSBwbHlfdXBjb3VudF9yZWcgKi8KKwkweDAwLAkJLyogMGYvMTUgLSBwbHlfbG93Y291bnRfcmVnICovCisJMHg4OCwJCS8qIDEwLzE2IC0gcmVzZXJ2ZWQvbF9hMV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMTEvMTcgLSByZXNlcnZlZC9yX2ExX2luY3RybCAqLworCTB4ODgsCQkvKiAxMi8xOCAtIGxfbGluZV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMTMvMTkgLSByX2xpbmVfaW5jdHJsICovCisJMHg4OCwJCS8qIDE0LzIwIC0gbF9taWNfaW5jdHJsICovCisJMHg4OCwJCS8qIDE1LzIxIC0gcl9taWNfaW5jdHJsICovCisJMHg4MCwJCS8qIDE2LzIyIC0gbF9vdXRfb3V0Y3RybCAqLworCTB4ODAsCQkvKiAxNy8yMyAtIHJfb3V0X291dGN0cmwgKi8KKwkweDAwLAkJLyogMTgvMjQgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxOS8yNSAtIHJlc2VydmVkICovCisJMHgwMCwJCS8qIDFhLzI2IC0gcmVzZXJ2ZWQgKi8KKwkweDAwLAkJLyogMWIvMjcgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxYy8yOCAtIGNhcF9kYXRhZm9ybV9yZWcgKi8KKwkweDAwLAkJLyogMWQvMjkgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxZS8zMCAtIGNhcF91cGNvdW50X3JlZyAqLworCTB4MDAJCS8qIDFmLzMxIC0gY2FwX2xvd2NvdW50X3JlZyAqLworfTsKKwogLyoKICAqICBCYXNpYyBJL08gZnVuY3Rpb25zCiAgKi8KQEAgLTg5NSw3ICs5MzEsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBzbmRfY3M0MjMxX292ZXJyYW5nZShzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCkKK3ZvaWQgc25kX2NzNDIzMV9vdmVycmFuZ2Uoc3RydWN0IHNuZF9jczQyMzEgKmNoaXApCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBjaGFyIHJlczsKQEAgLTEwNTQsOCArMTA5MCwxMSBAQAogCWNoaXAtPmltYWdlW0NTNDIzMV9JRkFDRV9DVFJMXSA9CiAJICAgIChjaGlwLT5pbWFnZVtDUzQyMzFfSUZBQ0VfQ1RSTF0gJiB+Q1M0MjMxX1NJTkdMRV9ETUEpIHwKIAkgICAgKGNoaXAtPnNpbmdsZV9kbWEgPyBDUzQyMzFfU0lOR0xFX0RNQSA6IDApOwotCWNoaXAtPmltYWdlW0NTNDIzMV9BTFRfRkVBVFVSRV8xXSA9IDB4ODA7Ci0JY2hpcC0+aW1hZ2VbQ1M0MjMxX0FMVF9GRUFUVVJFXzJdID0gY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX0lOVEVSV0FWRSA/IDB4YzIgOiAweDAxOworCWlmIChjaGlwLT5oYXJkd2FyZSAhPSBDUzQyMzFfSFdfT1BUSTkzWCkgeworCQljaGlwLT5pbWFnZVtDUzQyMzFfQUxUX0ZFQVRVUkVfMV0gPSAweDgwOworCQljaGlwLT5pbWFnZVtDUzQyMzFfQUxUX0ZFQVRVUkVfMl0gPQorCQkJY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX0lOVEVSV0FWRSA/IDB4YzIgOiAweDAxOworCX0KIAlwdHIgPSAodW5zaWduZWQgY2hhciAqKSAmY2hpcC0+aW1hZ2U7CiAJc25kX2NzNDIzMV9tY2VfZG93bihjaGlwKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKQEAgLTEzNzYsNiArMTQxNSw3IEBACiAJY2FzZSBDUzQyMzFfSFdfSU5URVJXQVZFOiByZXR1cm4gIkFNRCBJbnRlcldhdmUiOwogCWNhc2UgQ1M0MjMxX0hXX09QTDNTQTI6IHJldHVybiBjaGlwLT5jYXJkLT5zaG9ydG5hbWU7CiAJY2FzZSBDUzQyMzFfSFdfQUQxODQ1OiByZXR1cm4gIkFEMTg0NSI7CisJY2FzZSBDUzQyMzFfSFdfT1BUSTkzWDogcmV0dXJuICJPUFRpIDkzeCI7CiAJZGVmYXVsdDogcmV0dXJuICI/Pz8iOwogCX0KIH0KQEAgLTE0MDEsOCArMTQ0MSwxMyBAQAogCWNoaXAtPnJhdGVfY29uc3RyYWludCA9IHNuZF9jczQyMzFfeHJhdGU7CiAJY2hpcC0+c2V0X3BsYXliYWNrX2Zvcm1hdCA9IHNuZF9jczQyMzFfcGxheWJhY2tfZm9ybWF0OwogCWNoaXAtPnNldF9jYXB0dXJlX2Zvcm1hdCA9IHNuZF9jczQyMzFfY2FwdHVyZV9mb3JtYXQ7Ci0gICAgICAgIG1lbWNweSgmY2hpcC0+aW1hZ2UsICZzbmRfY3M0MjMxX29yaWdpbmFsX2ltYWdlLCBzaXplb2Yoc25kX2NzNDIzMV9vcmlnaW5hbF9pbWFnZSkpOwotICAgICAgICAKKwlpZiAoY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX09QVEk5M1gpCisJCW1lbWNweSgmY2hpcC0+aW1hZ2UsICZzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZSwKKwkJICAgICAgIHNpemVvZihzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZSkpOworCWVsc2UKKwkJbWVtY3B5KCZjaGlwLT5pbWFnZSwgJnNuZF9jczQyMzFfb3JpZ2luYWxfaW1hZ2UsCisJCSAgICAgICBzaXplb2Yoc25kX2NzNDIzMV9vcmlnaW5hbF9pbWFnZSkpOworCiAgICAgICAgICpyY2hpcCA9IGNoaXA7CiAgICAgICAgIHJldHVybiAwOwogfQpAQCAtMTc5MCw2ICsxODM1LDQ4IEBACiBDUzQyMzFfU0lOR0xFKCJMb29wYmFjayBDYXB0dXJlIFZvbHVtZSIsIDAsIENTNDIzMV9MT09QQkFDSywgMiwgNjMsIDEpCiB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9vcHRpOTN4X2NvbnRyb2xzW10gPSB7CitDUzQyMzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgMSwgMSwgMzEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfT1VUUFVULCBDUzQyMzFfUklHSFRfT1VUUFVULCA3LCA3LCAxLCAxKSwKK0NTNDIzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX09VVFBVVCwgQ1M0MjMxX1JJR0hUX09VVFBVVCwgMCwgMCwgMzEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiRk0gUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBDUzQyMzFfQVVYMl9MRUZUX0lOUFVULCBDUzQyMzFfQVVYMl9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJGTSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9BVVgyX0xFRlRfSU5QVVQsIENTNDIzMV9BVVgyX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfTElORV9JTiwgQ1M0MjMxX1JJR0hUX0xJTkVfSU4sIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiTGluZSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX0xJTkVfSU4sIENTNDIzMV9SSUdIVF9MSU5FX0lOLCAwLCAwLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLAorQ1M0MjMxX0RPVUJMRSgiTWljIEJvb3N0IiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9JTlBVVCwgQ1M0MjMxX1JJR0hUX0lOUFVULCA1LCA1LCAxLCAwKSwKK0NTNDIzMV9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0FVWDFfTEVGVF9JTlBVVCwgQ1M0MjMxX0FVWDFfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQ0QgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBDUzQyMzFfQVVYMV9MRUZUX0lOUFVULCBDUzQyMzFfQVVYMV9SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFZvbHVtZSIsIDAsCisJICAgICAgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwKK0NTNDIzMV9ET1VCTEUoIkNhcHR1cmUgVm9sdW1lIiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9JTlBVVCwgQ1M0MjMxX1JJR0hUX0lOUFVULCAwLCAwLCAxNSwgMCksCit7CisJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgPSAiQ2FwdHVyZSBTb3VyY2UiLAorCS5pbmZvID0gc25kX2NzNDIzMV9pbmZvX211eCwKKwkuZ2V0ID0gc25kX2NzNDIzMV9nZXRfbXV4LAorCS5wdXQgPSBzbmRfY3M0MjMxX3B1dF9tdXgsCit9Cit9OworCiBpbnQgc25kX2NzNDIzMV9taXhlcihzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCkKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CkBAIC0xODAyLDEwICsxODg5LDIyIEBACiAKIAlzdHJjcHkoY2FyZC0+bWl4ZXJuYW1lLCBjaGlwLT5wY20tPm5hbWUpOwogCi0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9jczQyMzFfY29udHJvbHMpOyBpZHgrKykgewotCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNhcmQsIHNuZF9jdGxfbmV3MSgmc25kX2NzNDIzMV9jb250cm9sc1tpZHhdLCBjaGlwKSkpIDwgMCkKLQkJCXJldHVybiBlcnI7Ci0JfQorCWlmIChjaGlwLT5oYXJkd2FyZSA9PSBDUzQyMzFfSFdfT1BUSTkzWCkKKwkJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9vcHRpOTN4X2NvbnRyb2xzKTsgaWR4KyspIHsKKwkJCWVyciA9IHNuZF9jdGxfYWRkKGNhcmQsCisJCQkJCXNuZF9jdGxfbmV3MSgmc25kX29wdGk5M3hfY29udHJvbHNbaWR4XSwKKwkJCQkJCSAgICAgY2hpcCkpOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJuIGVycjsKKwkJfQorCWVsc2UKKwkJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9jczQyMzFfY29udHJvbHMpOyBpZHgrKykgeworCQkJZXJyID0gc25kX2N0bF9hZGQoY2FyZCwKKwkJCQkJc25kX2N0bF9uZXcxKCZzbmRfY3M0MjMxX2NvbnRyb2xzW2lkeF0sCisJCQkJCQkgICAgIGNoaXApKTsKKwkJCWlmIChlcnIgPCAwKQorCQkJCXJldHVybiBlcnI7CisJCX0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMTgxNSw2ICsxOTE0LDcgQEAKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzNl9leHRfaW4pOwogRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX21jZV91cCk7CiBFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfbWNlX2Rvd24pOworRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX292ZXJyYW5nZSk7CiBFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfaW50ZXJydXB0KTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9jaGlwX2lkKTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9jcmVhdGUpOwpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYyBiL3NvdW5kL2lzYS9vcHRpOXh4L29wdGk5MngtYWQxODQ4LmMKaW5kZXggZmUxYWZjMS4uNDFjMDQ3ZSAxMDA2NDQKLS0tIGEvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYworKysgYi9zb3VuZC9pc2Evb3B0aTl4eC9vcHRpOTJ4LWFkMTg0OC5jCkBAIC0zMywxNSArMzMsMTAgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgotI2lmZGVmIENTNDIzMQorI2lmIGRlZmluZWQoQ1M0MjMxKSB8fCBkZWZpbmVkKE9QVGk5M1gpCiAjaW5jbHVkZSA8c291bmQvY3M0MjMxLmg+CiAjZWxzZQotI2lmbmRlZiBPUFRpOTNYCiAjaW5jbHVkZSA8c291bmQvYWQxODQ4Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHNvdW5kL2NvbnRyb2wuaD4KLSNpbmNsdWRlIDxzb3VuZC9wY20uaD4KLSNlbmRpZgkvKiBPUFRpOTNYICovCiAjZW5kaWYJLyogQ1M0MjMxICovCiAjaW5jbHVkZSA8c291bmQvbXB1NDAxLmg+CiAjaW5jbHVkZSA8c291bmQvb3BsMy5oPgpAQCAtMTA5LDcgKzEwNCw2IEBACiBNT0RVTEVfUEFSTV9ERVNDKGRtYTIsICIybmQgZG1hICMgZm9yIG9wdGk5eHggZHJpdmVyLiIpOwogI2VuZGlmCS8qIENTNDIzMSB8fCBPUFRpOTNYICovCiAKLSNkZWZpbmUgT1BUaTlYWF9IV19ERVRFQ1QJMAogI2RlZmluZSBPUFRpOVhYX0hXXzgyQzkyOAkxCiAjZGVmaW5lIE9QVGk5WFhfSFdfODJDOTI5CTIKICNkZWZpbmUgT1BUaTlYWF9IV184MkM5MjQJMwpAQCAtMTIzLDEwNSArMTE3LDEyIEBACiAKICNpZmRlZiBPUFRpOTNYCiAKLSNkZWZpbmUgT1BUaTkzWF9JTkRFWAkJCTB4MDAKLSNkZWZpbmUgT1BUaTkzWF9EQVRBCQkJMHgwMQogI2RlZmluZSBPUFRpOTNYX1NUQVRVUwkJCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9EREFUQQkJCTB4MDMKICNkZWZpbmUgT1BUaTkzWF9QT1JUKGNoaXAsIHIpCQkoKGNoaXApLT5wb3J0ICsgT1BUaTkzWF8jI3IpCiAKLSNkZWZpbmUgT1BUaTkzWF9NSVhPVVRfTEVGVAkJMHgwMAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9SSUdIVAkJMHgwMQotI2RlZmluZSBPUFRpOTNYX0NEX0xFRlRfSU5QVVQJCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9DRF9SSUdIVF9JTlBVVAkJMHgwMwotI2RlZmluZSBPUFRpOTMwX0FVWF9MRUZUX0lOUFVUCQkweDA0Ci0jZGVmaW5lIE9QVGk5MzBfQVVYX1JJR0hUX0lOUFVUCQkweDA1Ci0jZGVmaW5lIE9QVGk5MzFfRk1fTEVGVF9JTlBVVAkJMHgwNAotI2RlZmluZSBPUFRpOTMxX0ZNX1JJR0hUX0lOUFVUCQkweDA1Ci0jZGVmaW5lIE9QVGk5M1hfREFDX0xFRlQJCTB4MDYKLSNkZWZpbmUgT1BUaTkzWF9EQUNfUklHSFQJCTB4MDcKLSNkZWZpbmUgT1BUaTkzWF9QTEFZX0ZPUk1BVAkJMHgwOAotI2RlZmluZSBPUFRpOTNYX0lGQUNFX0NPTkYJCTB4MDkKLSNkZWZpbmUgT1BUaTkzWF9QSU5fQ1RSTAkJMHgwYQotI2RlZmluZSBPUFRpOTNYX0VSUl9JTklUCQkweDBiCi0jZGVmaW5lIE9QVGk5M1hfSUQJCQkweDBjCi0jZGVmaW5lIE9QVGk5M1hfUExBWV9VUFJfQ05UCQkweDBlCi0jZGVmaW5lIE9QVGk5M1hfUExBWV9MV1JfQ05UCQkweDBmCi0jZGVmaW5lIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQJCTB4MTAKLSNkZWZpbmUgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQJCTB4MTEKLSNkZWZpbmUgT1BUaTkzWF9MSU5FX0xFRlRfSU5QVVQJCTB4MTIKLSNkZWZpbmUgT1BUaTkzWF9MSU5FX1JJR0hUX0lOUFVUCTB4MTMKLSNkZWZpbmUgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVAkJMHgxNAotI2RlZmluZSBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVAkJMHgxNQotI2RlZmluZSBPUFRpOTNYX09VVF9MRUZUCQkweDE2Ci0jZGVmaW5lIE9QVGk5M1hfT1VUX1JJR0hUCQkweDE3Ci0jZGVmaW5lIE9QVGk5M1hfQ0FQVF9GT1JNQVQJCTB4MWMKLSNkZWZpbmUgT1BUaTkzWF9DQVBUX1VQUl9DTlQJCTB4MWUKLSNkZWZpbmUgT1BUaTkzWF9DQVBUX0xXUl9DTlQJCTB4MWYKLQotI2RlZmluZSBPUFRpOTNYX1RSRAkJCTB4MjAKLSNkZWZpbmUgT1BUaTkzWF9NQ0UJCQkweDQwCi0jZGVmaW5lIE9QVGk5M1hfSU5JVAkJCTB4ODAKLQotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9NSUNfR0FJTgkJMHgyMAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9MSU5FCQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX0NECQkweDQwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX01JQwkJMHg4MAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9NSVhFUgkJMHhjMAotCi0jZGVmaW5lIE9QVGk5M1hfU1RFUkVPCQkJMHgxMAotI2RlZmluZSBPUFRpOTNYX0xJTkVBUl84CQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfVUxBV184CQkJMHgyMAotI2RlZmluZSBPUFRpOTNYX0xJTkVBUl8xNl9MSVQJCTB4NDAKLSNkZWZpbmUgT1BUaTkzWF9BTEFXXzgJCQkweDYwCi0jZGVmaW5lIE9QVGk5M1hfQURQQ01fMTYJCTB4YTAKLSNkZWZpbmUgT1BUaTkzWF9MSU5FQVJfMTZfQklHCQkweGMwCi0KLSNkZWZpbmUgT1BUaTkzWF9DQVBUVVJFX1BJTwkJMHg4MAotI2RlZmluZSBPUFRpOTNYX1BMQVlCQUNLX1BJTwkJMHg0MAotI2RlZmluZSBPUFRpOTNYX0FVVE9DQUxJQgkJMHgwOAotI2RlZmluZSBPUFRpOTNYX1NJTkdMRV9ETUEJCTB4MDQKLSNkZWZpbmUgT1BUaTkzWF9DQVBUVVJFX0VOQUJMRQkJMHgwMgotI2RlZmluZSBPUFRpOTNYX1BMQVlCQUNLX0VOQUJMRQkJMHgwMQotCi0jZGVmaW5lIE9QVGk5M1hfSVJRX0VOQUJMRQkJMHgwMgotCi0jZGVmaW5lIE9QVGk5M1hfRE1BX1JFUVVFU1QJCTB4MTAKLSNkZWZpbmUgT1BUaTkzWF9DQUxJQl9JTl9QUk9HUkVTUwkweDIwCi0KICNkZWZpbmUgT1BUaTkzWF9JUlFfUExBWUJBQ0sJCTB4MDQKICNkZWZpbmUgT1BUaTkzWF9JUlFfQ0FQVFVSRQkJMHgwOAogCi0KLXN0cnVjdCBzbmRfb3B0aTkzeCB7Ci0JdW5zaWduZWQgbG9uZyBwb3J0OwotCXN0cnVjdCByZXNvdXJjZSAqcmVzX3BvcnQ7Ci0JaW50IGlycTsKLQlpbnQgZG1hMTsKLQlpbnQgZG1hMjsKLQotCXN0cnVjdCBzbmRfb3B0aTl4eCAqY2hpcDsKLQl1bnNpZ25lZCBzaG9ydCBoYXJkd2FyZTsKLQl1bnNpZ25lZCBjaGFyIGltYWdlWzMyXTsKLQotCXVuc2lnbmVkIGNoYXIgbWNlX2JpdDsKLQl1bnNpZ25lZCBzaG9ydCBtb2RlOwotCWludCBtdXRlOwotCi0Jc3BpbmxvY2tfdCBsb2NrOwotCi0Jc3RydWN0IHNuZF9jYXJkICpjYXJkOwotCXN0cnVjdCBzbmRfcGNtICpwY207Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpwbGF5YmFja19zdWJzdHJlYW07Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpjYXB0dXJlX3N1YnN0cmVhbTsKLQl1bnNpZ25lZCBpbnQgcF9kbWFfc2l6ZTsKLQl1bnNpZ25lZCBpbnQgY19kbWFfc2l6ZTsKLX07Ci0KLSNkZWZpbmUgT1BUaTkzWF9NT0RFX05PTkUJMHgwMAotI2RlZmluZSBPUFRpOTNYX01PREVfUExBWQkweDAxCi0jZGVmaW5lIE9QVGk5M1hfTU9ERV9DQVBUVVJFCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9NT0RFX09QRU4JKE9QVGk5M1hfTU9ERV9QTEFZIHwgT1BUaTkzWF9NT0RFX0NBUFRVUkUpCi0KICNlbmRpZiAvKiBPUFRpOTNYICovCiAKIHN0cnVjdCBzbmRfb3B0aTl4eCB7CkBAIC0yMzQsNiArMTM1LDcgQEAKIAl1bnNpZ25lZCBsb25nIG1jX2Jhc2Vfc2l6ZTsKICNpZmRlZiBPUFRpOTNYCiAJdW5zaWduZWQgbG9uZyBtY19pbmRpcl9pbmRleDsKKwlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWM7CiAjZW5kaWYJLyogT1BUaTkzWCAqLwogCXVuc2lnbmVkIGxvbmcgcHdkX3JlZzsKIApAQCAtNDkxLDE2ICszOTMsOSBAQAogCQlicmVhazsKIAogI2Vsc2UJLyogT1BUaTkzWCAqLwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzA6CiAJY2FzZSBPUFRpOVhYX0hXXzgyQzkzMToKIAljYXNlIE9QVGk5WFhfSFdfODJDOTMzOgotCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDYpLCAweDAyLCAweDAzKTsKLQkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygzKSwgMHgwMCwgMHhmZik7Ci0JCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNCksIDB4MTAgfAotCQkJKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwID8gMHgwMCA6IDB4MDQpLAotCQkJMHgzNCk7Ci0JCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNSksIDB4MjAsIDB4YmYpOwotCQkvKiAKKwkJLyoKIAkJICogVGhlIEJUQyAxODE3RFcgaGFzIFFTMTAwMCB3YXZldGFibGUgd2hpY2ggaXMgY29ubmVjdGVkCiAJCSAqIHRvIHRoZSBzZXJpYWwgZGlnaXRhbCBpbnB1dCBvZiB0aGUgT1BUSTkzMS4KIAkJICovCkBAIC01MTAsNiArNDA1LDEzIEBACiAJCSAqIG9yIGRpZ2l0YWwgaW5wdXQgc2lnbmFsLgogCQkgKi8KIAkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygyNiksIDB4MDEsIDB4MDEpOworCWNhc2UgT1BUaTlYWF9IV184MkM5MzA6IC8qIEZBTEwgVEhST1VHSCAqLworCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDYpLCAweDAyLCAweDAzKTsKKwkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygzKSwgMHgwMCwgMHhmZik7CisJCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNCksIDB4MTAgfAorCQkJKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwID8gMHgwMCA6IDB4MDQpLAorCQkJMHgzNCk7CisJCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNSksIDB4MjAsIDB4YmYpOwogCQlicmVhazsKICNlbmRpZgkvKiBPUFRpOTNYICovCiAKQEAgLTY1NCw5NzkgKzU1NiwyMyBAQAogCiAjaWZkZWYgT1BUaTkzWAogCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9kZWZhdWx0X2ltYWdlWzMyXSA9Ci17Ci0JMHgwMCwJCS8qIDAwLzAwIC0gbF9taXhvdXRfb3V0Y3RybCAqLwotCTB4MDAsCQkvKiAwMS8wMSAtIHJfbWl4b3V0X291dGN0cmwgKi8KLQkweDg4LAkJLyogMDIvMDIgLSBsX2NkX2luY3RybCAqLwotCTB4ODgsCQkvKiAwMy8wMyAtIHJfY2RfaW5jdHJsICovCi0JMHg4OCwJCS8qIDA0LzA0IC0gbF9hMS9mbV9pbmN0cmwgKi8KLQkweDg4LAkJLyogMDUvMDUgLSByX2ExL2ZtX2luY3RybCAqLwotCTB4ODAsCQkvKiAwNi8wNiAtIGxfZGFjX2luY3RybCAqLwotCTB4ODAsCQkvKiAwNy8wNyAtIHJfZGFjX2luY3RybCAqLwotCTB4MDAsCQkvKiAwOC8wOCAtIHBseV9kYXRhZm9ybV9yZWcgKi8KLQkweDAwLAkJLyogMDkvMDkgLSBpZl9jb25mICovCi0JMHgwMCwJCS8qIDBhLzEwIC0gcGluX2N0cmwgKi8KLQkweDAwLAkJLyogMGIvMTEgLSBlcnJfaW5pdF9yZWcgKi8KLQkweDBhLAkJLyogMGMvMTIgLSBpZF9yZWcgKi8KLQkweDAwLAkJLyogMGQvMTMgLSByZXNlcnZlZCAqLwotCTB4MDAsCQkvKiAwZS8xNCAtIHBseV91cGNvdW50X3JlZyAqLwotCTB4MDAsCQkvKiAwZi8xNSAtIHBseV9sb3djb3VudF9yZWcgKi8KLQkweDg4LAkJLyogMTAvMTYgLSByZXNlcnZlZC9sX2ExX2luY3RybCAqLwotCTB4ODgsCQkvKiAxMS8xNyAtIHJlc2VydmVkL3JfYTFfaW5jdHJsICovCi0JMHg4OCwJCS8qIDEyLzE4IC0gbF9saW5lX2luY3RybCAqLwotCTB4ODgsCQkvKiAxMy8xOSAtIHJfbGluZV9pbmN0cmwgKi8KLQkweDg4LAkJLyogMTQvMjAgLSBsX21pY19pbmN0cmwgKi8KLQkweDg4LAkJLyogMTUvMjEgLSByX21pY19pbmN0cmwgKi8KLQkweDgwLAkJLyogMTYvMjIgLSBsX291dF9vdXRjdHJsICovCi0JMHg4MCwJCS8qIDE3LzIzIC0gcl9vdXRfb3V0Y3RybCAqLwotCTB4MDAsCQkvKiAxOC8yNCAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDE5LzI1IC0gcmVzZXJ2ZWQgKi8KLQkweDAwLAkJLyogMWEvMjYgLSByZXNlcnZlZCAqLwotCTB4MDAsCQkvKiAxYi8yNyAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDFjLzI4IC0gY2FwX2RhdGFmb3JtX3JlZyAqLwotCTB4MDAsCQkvKiAxZC8yOSAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDFlLzMwIC0gY2FwX3VwY291bnRfcmVnICovCi0JMHgwMAkJLyogMWYvMzEgLSBjYXBfbG93Y291bnRfcmVnICovCi19OwotCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfYnVzeV93YWl0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlpbnQgdGltZW91dDsKLQotCWZvciAodGltZW91dCA9IDI1MDsgdGltZW91dC0tID4gMDsgdWRlbGF5KDEwKSkKLQkJaWYgKCEoaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBJTkRFWCkpICYgT1BUaTkzWF9JTklUKSkKLQkJCXJldHVybiAwOwotCi0Jc25kX3ByaW50aygiY2hpcCBzdGlsbCBidXN5LlxuIik7Ci0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX29wdGk5M3hfaW4oc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBjaGFyIHJlZykKLXsKLQlzbmRfb3B0aTkzeF9idXN5X3dhaXQoY2hpcCk7Ci0Jb3V0YihjaGlwLT5tY2VfYml0IHwgKHJlZyAmIDB4MWYpLCBPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKTsKLQlyZXR1cm4gaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBEQVRBKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X291dChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGNoYXIgcmVnLAotCQkJICAgIHVuc2lnbmVkIGNoYXIgdmFsdWUpCi17Ci0Jc25kX29wdGk5M3hfYnVzeV93YWl0KGNoaXApOwotCW91dGIoY2hpcC0+bWNlX2JpdCB8IChyZWcgJiAweDFmKSwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci0Jb3V0Yih2YWx1ZSwgT1BUaTkzWF9QT1JUKGNoaXAsIERBVEEpKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3V0X2ltYWdlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciByZWcsCi0JCQkJICB1bnNpZ25lZCBjaGFyIHZhbHVlKQotewotCXNuZF9vcHRpOTN4X291dChjaGlwLCByZWcsIGNoaXAtPmltYWdlW3JlZ10gPSB2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X291dF9tYXNrKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciByZWcsCi0JCQkJIHVuc2lnbmVkIGNoYXIgbWFzaywgdW5zaWduZWQgY2hhciB2YWx1ZSkKLXsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgcmVnLAotCQkoY2hpcC0+aW1hZ2VbcmVnXSAmIH5tYXNrKSB8ICh2YWx1ZSAmIG1hc2spKTsKLX0KLQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9tY2VfdXAoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXNuZF9vcHRpOTN4X2J1c3lfd2FpdChjaGlwKTsKLQotCWNoaXAtPm1jZV9iaXQgPSBPUFRpOTNYX01DRTsKLQlpZiAoIShpbmIoT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSkgJiBPUFRpOTNYX01DRSkpCi0JCW91dGIoY2hpcC0+bWNlX2JpdCwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X21jZV9kb3duKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlzbmRfb3B0aTkzeF9idXN5X3dhaXQoY2hpcCk7Ci0KLQljaGlwLT5tY2VfYml0ID0gMDsKLQlpZiAoaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBJTkRFWCkpICYgT1BUaTkzWF9NQ0UpCi0JCW91dGIoY2hpcC0+bWNlX2JpdCwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci19Ci0KLSNkZWZpbmUgc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgcmVnLCBtdXRlKQlcCi0Jc25kX29wdGk5M3hfb3V0KGNoaXAsIHJlZywgbXV0ZSA/IDB4ODAgOiBjaGlwLT5pbWFnZVtyZWddKTsKLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfbXV0ZShzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIGludCBtdXRlKQotewotCW11dGUgPSBtdXRlID8gMSA6IDA7Ci0JaWYgKGNoaXAtPm11dGUgPT0gbXV0ZSkKLQkJcmV0dXJuOwotCi0JY2hpcC0+bXV0ZSA9IG11dGU7Ci0KLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0NEX0xFRlRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfQ0RfUklHSFRfSU5QVVQsIG11dGUpOwotCXN3aXRjaCAoY2hpcC0+aGFyZHdhcmUpIHsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMwOgotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMwX0FVWF9MRUZUX0lOUFVULCBtdXRlKTsKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMF9BVVhfUklHSFRfSU5QVVQsIG11dGUpOwotCQlicmVhazsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMxOgotCWNhc2UgT1BUaTlYWF9IV184MkM5MzM6Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzFfRk1fTEVGVF9JTlBVVCwgbXV0ZSk7Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzFfRk1fUklHSFRfSU5QVVQsIG11dGUpOwotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMxX0FVWF9MRUZUX0lOUFVULCBtdXRlKTsKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIG11dGUpOwotCX0KLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0RBQ19MRUZULCBtdXRlKTsKLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0RBQ19SSUdIVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9MSU5FX0xFRlRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfTElORV9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfT1VUX0xFRlQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfT1VUX1JJR0hULCBtdXRlKTsKLX0KLQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHNuZF9vcHRpOTN4X2dldF9jb3VudCh1bnNpZ25lZCBjaGFyIGZvcm1hdCwKLQkJCQkJICB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzd2l0Y2ggKGZvcm1hdCAmIDB4ZTApIHsKLQljYXNlIE9QVGk5M1hfTElORUFSXzE2X0xJVDoKLQljYXNlIE9QVGk5M1hfTElORUFSXzE2X0JJRzoKLQkJc2l6ZSA+Pj0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBPUFRpOTNYX0FEUENNXzE2OgotCQlyZXR1cm4gc2l6ZSA+PiAyOwotCX0KLQlyZXR1cm4gKGZvcm1hdCAmIE9QVGk5M1hfU1RFUkVPKSA/IChzaXplID4+IDEpIDogc2l6ZTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGludCByYXRlc1tdID0geyAgNTUxMiwgIDY2MTUsICA4MDAwLCAgOTYwMCwgMTEwMjUsIDE2MDAwLCAKLQkJCQkxODkwMCwgMjIwNTAsIDI3NDI4LCAzMjAwMCwgMzMwNzUsIDM3ODAwLAotCQkJCTQ0MTAwLCA0ODAwMCB9OwotI2RlZmluZSBSQVRFUyBBUlJBWV9TSVpFKHJhdGVzKQotCi1zdGF0aWMgc3RydWN0IHNuZF9wY21faHdfY29uc3RyYWludF9saXN0IGh3X2NvbnN0cmFpbnRzX3JhdGVzID0gewotCS5jb3VudCA9IFJBVEVTLAotCS5saXN0ID0gcmF0ZXMsCi0JLm1hc2sgPSAwLAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYml0c1tdID0geyAgMHgwMSwgIDB4MGYsICAweDAwLCAgMHgwZSwgIDB4MDMsICAweDAyLAotCQkJCSAweDA1LCAgMHgwNywgIDB4MDQsICAweDA2LCAgMHgwZCwgIDB4MDksCi0JCQkJIDB4MGIsICAweDBjfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX29wdGk5M3hfZ2V0X2ZyZXEodW5zaWduZWQgaW50IHJhdGUpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgUkFURVM7IGkrKykgewotCQlpZiAocmF0ZSA9PSByYXRlc1tpXSkKLQkJCXJldHVybiBiaXRzW2ldOwotCX0KLQlzbmRfQlVHKCk7Ci0JcmV0dXJuIGJpdHNbUkFURVMtMV07Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNuZF9vcHRpOTN4X2dldF9mb3JtYXQoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLAotCQkJCQkgICAgdW5zaWduZWQgaW50IGZvcm1hdCwgaW50IGNoYW5uZWxzKQotewotCXVuc2lnbmVkIGNoYXIgcmV0dmFsID0gT1BUaTkzWF9MSU5FQVJfODsKLQotCXN3aXRjaCAoZm9ybWF0KSB7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoKLQkJcmV0dmFsID0gT1BUaTkzWF9VTEFXXzg7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9BX0xBVzoKLQkJcmV0dmFsID0gT1BUaTkzWF9BTEFXXzg7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6Ci0JCXJldHZhbCA9IE9QVGk5M1hfTElORUFSXzE2X0xJVDsKLQkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9CRToKLQkJcmV0dmFsID0gT1BUaTkzWF9MSU5FQVJfMTZfQklHOwotCQlicmVhazsKLQljYXNlIFNORFJWX1BDTV9GT1JNQVRfSU1BX0FEUENNOgotCQlyZXR2YWwgPSBPUFRpOTNYX0FEUENNXzE2OwotCX0KLQlyZXR1cm4gKGNoYW5uZWxzID4gMSkgPyAocmV0dmFsIHwgT1BUaTkzWF9TVEVSRU8pIDogcmV0dmFsOwotfQotCi0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X3BsYXliYWNrX2Zvcm1hdChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGNoYXIgZm10KQotewotCXVuc2lnbmVkIGNoYXIgbWFzazsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMSk7Ci0KLQlzbmRfb3B0aTkzeF9tY2VfdXAoY2hpcCk7Ci0JbWFzayA9IChjaGlwLT5tb2RlICYgT1BUaTkzWF9NT0RFX0NBUFRVUkUpID8gMHhmMCA6IDB4ZmY7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9QTEFZX0ZPUk1BVCwgbWFzaywgZm10KTsKLQlzbmRfb3B0aTkzeF9tY2VfZG93bihjaGlwKTsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X2NhcHR1cmVfZm9ybWF0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciBmbXQpCi17Ci0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAxKTsKLQotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQlpZiAoIShjaGlwLT5tb2RlICYgT1BUaTkzWF9NT0RFX1BMQVkpKQotCQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX1BMQVlfRk9STUFULCAweDBmLCBmbXQpOwotCWVsc2UKLQkJZm10ID0gY2hpcC0+aW1hZ2VbT1BUaTkzWF9QTEFZX0ZPUk1BVF0gJiAweGYwOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX0NBUFRfRk9STUFULCBmbXQpOwotCXNuZF9vcHRpOTN4X21jZV9kb3duKGNoaXApOwotCi0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAwKTsKLX0KLQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X29wZW4oc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBpbnQgbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWlmIChjaGlwLT5tb2RlICYgbW9kZSkgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAtRUFHQUlOOwotCX0KLQotCWlmICghKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfT1BFTikpIHsKLQkJb3V0YigweDAwLCBPUFRpOTNYX1BPUlQoY2hpcCwgU1RBVFVTKSk7Ci0JCXNuZF9vcHRpOTN4X291dF9tYXNrKGNoaXAsIE9QVGk5M1hfUElOX0NUUkwsCi0JCQlPUFRpOTNYX0lSUV9FTkFCTEUsIE9QVGk5M1hfSVJRX0VOQUJMRSk7Ci0JCWNoaXAtPm1vZGUgPSBtb2RlOwotCX0KLQllbHNlCi0JCWNoaXAtPm1vZGUgfD0gbW9kZTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfY2xvc2Uoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBpbnQgbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWNoaXAtPm1vZGUgJj0gfm1vZGU7Ci0JaWYgKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfT1BFTikgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlzbmRfb3B0aTkzeF9tdXRlKGNoaXAsIDEpOwotCi0Jb3V0YigwLCBPUFRpOTNYX1BPUlQoY2hpcCwgU1RBVFVTKSk7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9QSU5fQ1RSTCwgT1BUaTkzWF9JUlFfRU5BQkxFLAotCQl+T1BUaTkzWF9JUlFfRU5BQkxFKTsKLQotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLCAweDAwKTsKLQlzbmRfb3B0aTkzeF9tY2VfZG93bihjaGlwKTsKLQljaGlwLT5tb2RlID0gMDsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIAotCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgd2hhdCwgaW50IGNtZCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6Ci0JY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgotCXsKLQkJdW5zaWduZWQgaW50IHdoYXQgPSAwOwotCQlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnM7Ci0JCXNuZF9wY21fZ3JvdXBfZm9yX2VhY2hfZW50cnkocywgc3Vic3RyZWFtKSB7Ci0JCQlpZiAocyA9PSBjaGlwLT5wbGF5YmFja19zdWJzdHJlYW0pIHsKLQkJCQl3aGF0IHw9IE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFOwotCQkJCXNuZF9wY21fdHJpZ2dlcl9kb25lKHMsIHN1YnN0cmVhbSk7Ci0JCQl9IGVsc2UgaWYgKHMgPT0gY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0pIHsKLQkJCQl3aGF0IHw9IE9QVGk5M1hfQ0FQVFVSRV9FTkFCTEU7Ci0JCQkJc25kX3BjbV90cmlnZ2VyX2RvbmUocywgc3Vic3RyZWFtKTsKLQkJCX0KLQkJfQotCQlzcGluX2xvY2soJmNoaXAtPmxvY2spOwotCQlpZiAoY21kID09IFNORFJWX1BDTV9UUklHR0VSX1NUQVJUKSB7Ci0JCQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsIHdoYXQsIHdoYXQpOwotCQkJaWYgKHdoYXQgJiBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFKQotCQkJCXVkZWxheSg1MCk7Ci0JCX0gZWxzZQotCQkJc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLCB3aGF0LCAweDAwKTsKLQkJc3Bpbl91bmxvY2soJmNoaXAtPmxvY2spOwotCQlicmVhazsKLQl9Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCi17Ci0JcmV0dXJuIHNuZF9vcHRpOTN4X3RyaWdnZXIoc3Vic3RyZWFtLAotCQkJCSAgIE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFLCBjbWQpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKLXsKLQlyZXR1cm4gc25kX29wdGk5M3hfdHJpZ2dlcihzdWJzdHJlYW0sCi0JCQkJICAgT1BUaTkzWF9DQVBUVVJFX0VOQUJMRSwgY21kKTsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCi0JCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqaHdfcGFyYW1zKQotewotCXJldHVybiBzbmRfcGNtX2xpYl9tYWxsb2NfcGFnZXMoc3Vic3RyZWFtLCBwYXJhbXNfYnVmZmVyX2J5dGVzKGh3X3BhcmFtcykpOwotfQotCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzbmRfcGNtX2xpYl9mcmVlX3BhZ2VzKHN1YnN0cmVhbSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wbGF5YmFja19wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgY2hhciBmb3JtYXQ7Ci0JdW5zaWduZWQgaW50IGNvdW50ID0gc25kX3BjbV9saWJfcGVyaW9kX2J5dGVzKHN1YnN0cmVhbSk7Ci0JdW5zaWduZWQgaW50IHNpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0KLQljaGlwLT5wX2RtYV9zaXplID0gc2l6ZTsKLQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsCi0JCU9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFIHwgT1BUaTkzWF9QTEFZQkFDS19QSU8sCi0JCX4oT1BUaTkzWF9QTEFZQkFDS19FTkFCTEUgfCBPUFRpOTNYX1BMQVlCQUNLX1BJTykpOwotCi0Jc25kX2RtYV9wcm9ncmFtKGNoaXAtPmRtYTEsIHJ1bnRpbWUtPmRtYV9hZGRyLCBzaXplLAotCQlETUFfTU9ERV9XUklURSB8IERNQV9BVVRPSU5JVCk7Ci0KLQlmb3JtYXQgPSBzbmRfb3B0aTkzeF9nZXRfZnJlcShydW50aW1lLT5yYXRlKTsKLQlmb3JtYXQgfD0gc25kX29wdGk5M3hfZ2V0X2Zvcm1hdChjaGlwLCBydW50aW1lLT5mb3JtYXQsCi0JCXJ1bnRpbWUtPmNoYW5uZWxzKTsKLQlzbmRfb3B0aTkzeF9wbGF5YmFja19mb3JtYXQoY2hpcCwgZm9ybWF0KTsKLQlmb3JtYXQgPSBjaGlwLT5pbWFnZVtPUFRpOTNYX1BMQVlfRk9STUFUXTsKLQotCWNvdW50ID0gc25kX29wdGk5M3hfZ2V0X2NvdW50KGZvcm1hdCwgY291bnQpIC0gMTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9QTEFZX0xXUl9DTlQsIGNvdW50KTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9QTEFZX1VQUl9DTlQsIGNvdW50ID4+IDgpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGNoYXIgZm9ybWF0OwotCXVuc2lnbmVkIGludCBjb3VudCA9IHNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pOwotCXVuc2lnbmVkIGludCBzaXplID0gc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JY2hpcC0+Y19kbWFfc2l6ZSA9IHNpemU7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLAotCQlPUFRpOTNYX0NBUFRVUkVfRU5BQkxFIHwgT1BUaTkzWF9DQVBUVVJFX1BJTywgMCk7Ci0KLQlzbmRfZG1hX3Byb2dyYW0oY2hpcC0+ZG1hMiwgcnVudGltZS0+ZG1hX2FkZHIsIHNpemUsCi0JCURNQV9NT0RFX1JFQUQgfCBETUFfQVVUT0lOSVQpOwotCi0JZm9ybWF0ID0gc25kX29wdGk5M3hfZ2V0X2ZyZXEocnVudGltZS0+cmF0ZSk7Ci0JZm9ybWF0IHw9IHNuZF9vcHRpOTN4X2dldF9mb3JtYXQoY2hpcCwgcnVudGltZS0+Zm9ybWF0LAotCQlydW50aW1lLT5jaGFubmVscyk7Ci0Jc25kX29wdGk5M3hfY2FwdHVyZV9mb3JtYXQoY2hpcCwgZm9ybWF0KTsKLQlmb3JtYXQgPSBjaGlwLT5pbWFnZVtPUFRpOTNYX0NBUFRfRk9STUFUXTsKLQotCWNvdW50ID0gc25kX29wdGk5M3hfZ2V0X2NvdW50KGZvcm1hdCwgY291bnQpIC0gMTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9DQVBUX0xXUl9DTlQsIGNvdW50KTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9DQVBUX1VQUl9DTlQsIGNvdW50ID4+IDgpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc25kX3BjbV91ZnJhbWVzX3Qgc25kX29wdGk5M3hfcGxheWJhY2tfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc2l6ZV90IHB0cjsKLQotCWlmICghKGNoaXAtPmltYWdlW09QVGk5M1hfSUZBQ0VfQ09ORl0gJiBPUFRpOTNYX1BMQVlCQUNLX0VOQUJMRSkpCi0JCXJldHVybiAwOwotCi0JcHRyID0gc25kX2RtYV9wb2ludGVyKGNoaXAtPmRtYTEsIGNoaXAtPnBfZG1hX3NpemUpOwotCXJldHVybiBieXRlc190b19mcmFtZXMoc3Vic3RyZWFtLT5ydW50aW1lLCBwdHIpOwotfQotCi1zdGF0aWMgc25kX3BjbV91ZnJhbWVzX3Qgc25kX29wdGk5M3hfY2FwdHVyZV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzaXplX3QgcHRyOwotCQotCWlmICghKGNoaXAtPmltYWdlW09QVGk5M1hfSUZBQ0VfQ09ORl0gJiBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFKSkKLQkJcmV0dXJuIDA7Ci0KLQlwdHIgPSBzbmRfZG1hX3BvaW50ZXIoY2hpcC0+ZG1hMiwgY2hpcC0+Y19kbWFfc2l6ZSk7Ci0JcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHB0cik7Ci19Ci0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3ZlcnJhbmdlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWlmIChzbmRfb3B0aTkzeF9pbihjaGlwLCBPUFRpOTNYX0VSUl9JTklUKSAmICgweDA4IHwgMHgwMikpCi0JCWNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtLT5ydW50aW1lLT5vdmVycmFuZ2UrKzsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLX0KLQogc3RhdGljIGlycXJldHVybl90IHNuZF9vcHRpOTN4X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjb2RlYyA9IGRldl9pZDsKKwlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWMgPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY29kZWMtPmNhcmQtPnByaXZhdGVfZGF0YTsKIAl1bnNpZ25lZCBjaGFyIHN0YXR1czsKIAotCXN0YXR1cyA9IHNuZF9vcHRpOXh4X3JlYWQoY29kZWMtPmNoaXAsIE9QVGk5WFhfTUNfUkVHKDExKSk7CisJc3RhdHVzID0gc25kX29wdGk5eHhfcmVhZChjaGlwLCBPUFRpOVhYX01DX1JFRygxMSkpOwogCWlmICgoc3RhdHVzICYgT1BUaTkzWF9JUlFfUExBWUJBQ0spICYmIGNvZGVjLT5wbGF5YmFja19zdWJzdHJlYW0pCiAJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoY29kZWMtPnBsYXliYWNrX3N1YnN0cmVhbSk7CiAJaWYgKChzdGF0dXMgJiBPUFRpOTNYX0lSUV9DQVBUVVJFKSAmJiBjb2RlYy0+Y2FwdHVyZV9zdWJzdHJlYW0pIHsKLQkJc25kX29wdGk5M3hfb3ZlcnJhbmdlKGNvZGVjKTsKKwkJc25kX2NzNDIzMV9vdmVycmFuZ2UoY29kZWMpOwogCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNvZGVjLT5jYXB0dXJlX3N1YnN0cmVhbSk7CiAJfQogCW91dGIoMHgwMCwgT1BUaTkzWF9QT1JUKGNvZGVjLCBTVEFUVVMpKTsKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLQotc3RhdGljIHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIHNuZF9vcHRpOTN4X3BsYXliYWNrID0gewotCS5pbmZvID0JCQkoU05EUlZfUENNX0lORk9fTU1BUCB8IFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKLQkJCQkgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8IFNORFJWX1BDTV9JTkZPX1NZTkNfU1RBUlQpLAotCS5mb3JtYXRzID0JCShTTkRSVl9QQ01fRk1UQklUX01VX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfQV9MQVcgfCBTTkRSVl9QQ01fRk1UQklUX0lNQV9BRFBDTSB8Ci0JCQkJIFNORFJWX1BDTV9GTVRCSVRfVTggfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFKSwKLQkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfS05PVCB8IFNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAsCi0JLnJhdGVfbWluID0JCTU1MTIsCi0JLnJhdGVfbWF4ID0JCTQ4MDAwLAotCS5jaGFubmVsc19taW4gPQkJMSwKLQkuY2hhbm5lbHNfbWF4ID0JCTIsCi0JLmJ1ZmZlcl9ieXRlc19tYXggPQkoMTI4KjEwMjQpLAotCS5wZXJpb2RfYnl0ZXNfbWluID0JNjQsCi0JLnBlcmlvZF9ieXRlc19tYXggPQkoMTI4KjEwMjQpLAotCS5wZXJpb2RzX21pbiA9CQkxLAotCS5wZXJpb2RzX21heCA9CQkxMDI0LAotCS5maWZvX3NpemUgPQkJMCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBzbmRfb3B0aTkzeF9jYXB0dXJlID0gewotCS5pbmZvID0JCQkoU05EUlZfUENNX0lORk9fTU1BUCB8IFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKLQkJCQkgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8IFNORFJWX1BDTV9JTkZPX1NZTkNfU1RBUlQpLAotCS5mb3JtYXRzID0JCShTTkRSVl9QQ01fRk1UQklUX01VX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfQV9MQVcgfCBTTkRSVl9QQ01fRk1UQklUX0lNQV9BRFBDTSB8Ci0JCQkJIFNORFJWX1BDTV9GTVRCSVRfVTggfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFKSwKLQkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKLQkucmF0ZV9taW4gPQkJNTUxMiwKLQkucmF0ZV9tYXggPQkJNDgwMDAsCi0JLmNoYW5uZWxzX21pbiA9CQkxLAotCS5jaGFubmVsc19tYXggPQkJMiwKLQkuYnVmZmVyX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZF9ieXRlc19taW4gPQk2NCwKLQkucGVyaW9kX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZHNfbWluID0JCTEsCi0JLnBlcmlvZHNfbWF4ID0JCTEwMjQsCi0JLmZpZm9fc2l6ZSA9CQkwLAotfTsKLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wbGF5YmFja19vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9vcGVuKGNoaXAsIE9QVGk5M1hfTU9ERV9QTEFZKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0Jc25kX3BjbV9zZXRfc3luYyhzdWJzdHJlYW0pOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKLQlydW50aW1lLT5odyA9IHNuZF9vcHRpOTN4X3BsYXliYWNrOwotCXNuZF9wY21fbGltaXRfaXNhX2RtYV9zaXplKGNoaXAtPmRtYTEsICZydW50aW1lLT5ody5idWZmZXJfYnl0ZXNfbWF4KTsKLQlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwgJmh3X2NvbnN0cmFpbnRzX3JhdGVzKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9vcGVuKGNoaXAsIE9QVGk5M1hfTU9ERV9DQVBUVVJFKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0JcnVudGltZS0+aHcgPSBzbmRfb3B0aTkzeF9jYXB0dXJlOwotCXNuZF9wY21fc2V0X3N5bmMoc3Vic3RyZWFtKTsKLQljaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKLQlzbmRfcGNtX2xpbWl0X2lzYV9kbWFfc2l6ZShjaGlwLT5kbWEyLCAmcnVudGltZS0+aHcuYnVmZmVyX2J5dGVzX21heCk7Ci0Jc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QocnVudGltZSwgMCwgU05EUlZfUENNX0hXX1BBUkFNX1JBVEUsICZod19jb25zdHJhaW50c19yYXRlcyk7Ci0JcmV0dXJuIGVycm9yOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IE5VTEw7Ci0Jc25kX29wdGk5M3hfY2xvc2UoY2hpcCwgT1BUaTkzWF9NT0RFX1BMQVkpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCi0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBOVUxMOwotCXNuZF9vcHRpOTN4X2Nsb3NlKGNoaXAsIE9QVGk5M1hfTU9ERV9DQVBUVVJFKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9pbml0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBpOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlzbmRfb3B0aTkzeF9tY2VfdXAoY2hpcCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykKLQkJc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIGksIHNuZF9vcHRpOTN4X2RlZmF1bHRfaW1hZ2VbaV0pOwotCi0Jc25kX29wdGk5M3hfbWNlX2Rvd24oY2hpcCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3Byb2JlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGNoYXIgdmFsOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwgPSBzbmRfb3B0aTkzeF9pbihjaGlwLCBPUFRpOTNYX0lEKSAmIDB4MGY7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuICh2YWwgPT0gMHgwYSkgPyAwIDogLUVOT0RFVjsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9mcmVlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlyZWxlYXNlX2FuZF9mcmVlX3Jlc291cmNlKGNoaXAtPnJlc19wb3J0KTsKLQlpZiAoY2hpcC0+ZG1hMSA+PSAwKSB7Ci0JCWRpc2FibGVfZG1hKGNoaXAtPmRtYTEpOwotCQlmcmVlX2RtYShjaGlwLT5kbWExKTsKLQl9Ci0JaWYgKGNoaXAtPmRtYTIgPj0gMCkgewotCQlkaXNhYmxlX2RtYShjaGlwLT5kbWEyKTsKLQkJZnJlZV9kbWEoY2hpcC0+ZG1hMik7Ci0JfQotCWlmIChjaGlwLT5pcnEgPj0gMCkgewotCSAgZnJlZV9pcnEoY2hpcC0+aXJxLCBjaGlwKTsKLQl9Ci0Ja2ZyZWUoY2hpcCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBkZXZpY2UtPmRldmljZV9kYXRhOwotCXJldHVybiBzbmRfb3B0aTkzeF9mcmVlKGNoaXApOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqc25kX29wdGk5M3hfY2hpcF9pZChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjKQotewotCXN3aXRjaCAoY29kZWMtPmhhcmR3YXJlKSB7Ci0JY2FzZSBPUFRpOVhYX0hXXzgyQzkzMDogcmV0dXJuICI4MkM5MzAiOwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzE6IHJldHVybiAiODJDOTMxIjsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMzOiByZXR1cm4gIjgyQzkzMyI7Ci0JZGVmYXVsdDoJCXJldHVybiAiPz8/IjsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwLAotCQkJICAgICAgaW50IGRtYTEsIGludCBkbWEyLAotCQkJICAgICAgc3RydWN0IHNuZF9vcHRpOTN4ICoqcmNvZGVjKQotewotCXN0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgb3BzID0gewotCQkuZGV2X2ZyZWUgPQlzbmRfb3B0aTkzeF9kZXZfZnJlZSwKLQl9OwotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjOwotCi0JKnJjb2RlYyA9IE5VTEw7Ci0JY29kZWMgPSBremFsbG9jKHNpemVvZigqY29kZWMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoY29kZWMgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0JY29kZWMtPmlycSA9IC0xOwotCWNvZGVjLT5kbWExID0gLTE7Ci0JY29kZWMtPmRtYTIgPSAtMTsKLQotCWlmICgoY29kZWMtPnJlc19wb3J0ID0gcmVxdWVzdF9yZWdpb24oY2hpcC0+d3NzX2Jhc2UgKyA0LCA0LCAiT1BUSTkzeCBDT0RFQyIpKSA9PSBOVUxMKSB7Ci0JCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgcG9ydCAweCVseFxuIiwgY2hpcC0+d3NzX2Jhc2UgKyA0KTsKLQkJc25kX29wdGk5M3hfZnJlZShjb2RlYyk7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCWlmIChyZXF1ZXN0X2RtYShkbWExLCAiT1BUSTkzeCAtIDEiKSkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJvcHRpOXh4OiBjYW4ndCBncmFiIERNQTEgJWRcbiIsIGRtYTEpOwotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0JY29kZWMtPmRtYTEgPSBjaGlwLT5kbWExOwotCWlmIChyZXF1ZXN0X2RtYShkbWEyLCAiT1BUSTkzeCAtIDIiKSkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJvcHRpOXh4OiBjYW4ndCBncmFiIERNQTIgJWRcbiIsIGRtYTIpOwotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0JY29kZWMtPmRtYTIgPSBjaGlwLT5kbWEyOwotCi0JaWYgKHJlcXVlc3RfaXJxKGNoaXAtPmlycSwgc25kX29wdGk5M3hfaW50ZXJydXB0LCBJUlFGX0RJU0FCTEVELCBERVZfTkFNRSIgLSBXU1MiLCBjb2RlYykpIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAib3B0aTl4eDogY2FuJ3QgZ3JhYiBJUlEgJWRcbiIsIGNoaXAtPmlycSk7Ci0JCXNuZF9vcHRpOTN4X2ZyZWUoY29kZWMpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCWNvZGVjLT5jYXJkID0gY2FyZDsKLQljb2RlYy0+cG9ydCA9IGNoaXAtPndzc19iYXNlICsgNDsKLQljb2RlYy0+aXJxID0gY2hpcC0+aXJxOwotCi0Jc3Bpbl9sb2NrX2luaXQoJmNvZGVjLT5sb2NrKTsKLQljb2RlYy0+aGFyZHdhcmUgPSBjaGlwLT5oYXJkd2FyZTsKLQljb2RlYy0+Y2hpcCA9IGNoaXA7Ci0KLQlpZiAoKGVycm9yID0gc25kX29wdGk5M3hfcHJvYmUoY29kZWMpKSkgewotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KLQotCXNuZF9vcHRpOTN4X2luaXQoY29kZWMpOwotCi0JLyogUmVnaXN0ZXIgZGV2aWNlICovCi0JaWYgKChlcnJvciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY29kZWMsICZvcHMpKSA8IDApIHsKLQkJc25kX29wdGk5M3hfZnJlZShjb2RlYyk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KLQkqcmNvZGVjID0gY29kZWM7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX29wdGk5M3hfcGxheWJhY2tfb3BzID0gewotCS5vcGVuID0JCXNuZF9vcHRpOTN4X3BsYXliYWNrX29wZW4sCi0JLmNsb3NlID0Jc25kX29wdGk5M3hfcGxheWJhY2tfY2xvc2UsCi0JLmlvY3RsID0Jc25kX3BjbV9saWJfaW9jdGwsCi0JLmh3X3BhcmFtcyA9CXNuZF9vcHRpOTN4X2h3X3BhcmFtcywKLQkuaHdfZnJlZSA9CXNuZF9vcHRpOTN4X2h3X2ZyZWUsCi0JLnByZXBhcmUgPQlzbmRfb3B0aTkzeF9wbGF5YmFja19wcmVwYXJlLAotCS50cmlnZ2VyID0Jc25kX29wdGk5M3hfcGxheWJhY2tfdHJpZ2dlciwKLQkucG9pbnRlciA9CXNuZF9vcHRpOTN4X3BsYXliYWNrX3BvaW50ZXIsCi19OwotCi1zdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIHNuZF9vcHRpOTN4X2NhcHR1cmVfb3BzID0gewotCS5vcGVuID0JCXNuZF9vcHRpOTN4X2NhcHR1cmVfb3BlbiwKLQkuY2xvc2UgPQlzbmRfb3B0aTkzeF9jYXB0dXJlX2Nsb3NlLAotCS5pb2N0bCA9CXNuZF9wY21fbGliX2lvY3RsLAotCS5od19wYXJhbXMgPQlzbmRfb3B0aTkzeF9od19wYXJhbXMsCi0JLmh3X2ZyZWUgPQlzbmRfb3B0aTkzeF9od19mcmVlLAotCS5wcmVwYXJlID0Jc25kX29wdGk5M3hfY2FwdHVyZV9wcmVwYXJlLAotCS50cmlnZ2VyID0Jc25kX29wdGk5M3hfY2FwdHVyZV90cmlnZ2VyLAotCS5wb2ludGVyID0Jc25kX29wdGk5M3hfY2FwdHVyZV9wb2ludGVyLAotfTsKLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wY20oc3RydWN0IHNuZF9vcHRpOTN4ICpjb2RlYywgaW50IGRldmljZSwgc3RydWN0IHNuZF9wY20gKipycGNtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX3BjbSAqcGNtOwotCi0JaWYgKChlcnJvciA9IHNuZF9wY21fbmV3KGNvZGVjLT5jYXJkLCAiT1BUaSA4MkM5M1giLCBkZXZpY2UsIDEsIDEsICZwY20pKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLQotCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0ssICZzbmRfb3B0aTkzeF9wbGF5YmFja19vcHMpOwotCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRSwgJnNuZF9vcHRpOTN4X2NhcHR1cmVfb3BzKTsKLQotCXBjbS0+cHJpdmF0ZV9kYXRhID0gY29kZWM7Ci0JcGNtLT5pbmZvX2ZsYWdzID0gU05EUlZfUENNX0lORk9fSk9JTlRfRFVQTEVYOwotCi0Jc3RyY3B5KHBjbS0+bmFtZSwgc25kX29wdGk5M3hfY2hpcF9pZChjb2RlYykpOwotCi0Jc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKLQkJCQkJICAgICAgc25kX2RtYV9pc2FfZGF0YSgpLAotCQkJCQkgICAgICA2NCoxMDI0LCBjb2RlYy0+ZG1hMSA+IDMgfHwgY29kZWMtPmRtYTIgPiAzID8gMTI4KjEwMjQgOiA2NCoxMDI0KTsKLQotCWNvZGVjLT5wY20gPSBwY207Ci0JaWYgKHJwY20pCi0JCSpycGNtID0gcGNtOwotCXJldHVybiAwOwotfQotCi0vKgotICogIE1JWEVSIHBhcnQKLSAqLwotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2luZm9fbXV4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCXN0YXRpYyBjaGFyICp0ZXh0c1s0XSA9IHsKLQkJIkxpbmUxIiwgIkF1eCIsICJNaWMiLCAiTWl4IgotCX07Ci0KLQl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfRU5VTUVSQVRFRDsKLQl1aW5mby0+Y291bnQgPSAyOwotCXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1zID0gNDsKLQlpZiAodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA+IDMpCi0JCXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0gPSAzOwotCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0c1t1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfZ2V0X211eChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gKGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX0xFRlRdICYgT1BUaTkzWF9NSVhPVVRfTUlYRVIpID4+IDY7Ci0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsxXSA9IChjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9SSUdIVF0gJiBPUFRpOTNYX01JWE9VVF9NSVhFUikgPj4gNjsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcHV0X211eChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgc2hvcnQgbGVmdCwgcmlnaHQ7Ci0JaW50IGNoYW5nZTsKLQkKLQlpZiAodWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA+IDMgfHwKLQkgICAgdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsxXSA+IDMpCi0JCXJldHVybiAtRUlOVkFMOwotCWxlZnQgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdIDw8IDY7Ci0JcmlnaHQgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzFdIDw8IDY7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlsZWZ0ID0gKGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX0xFRlRdICYgfk9QVGk5M1hfTUlYT1VUX01JWEVSKSB8IGxlZnQ7Ci0JcmlnaHQgPSAoY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfUklHSFRdICYgfk9QVGk5M1hfTUlYT1VUX01JWEVSKSB8IHJpZ2h0OwotCWNoYW5nZSA9IGxlZnQgIT0gY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfTEVGVF0gfHwKLQkgICAgICAgICByaWdodCAhPSBjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9SSUdIVF07Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIE9QVGk5M1hfTUlYT1VUX0xFRlQsIGxlZnQpOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX01JWE9VVF9SSUdIVCwgcmlnaHQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi0jaWYgMAotCi0jZGVmaW5lIE9QVGk5M1hfU0lOR0xFKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX29wdGk5M3hfaW5mb19zaW5nbGUsIFwKLSAgLmdldCA9IHNuZF9vcHRpOTN4X2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfb3B0aTkzeF9wdXRfc2luZ2xlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDgpIHwgKG1hc2sgPDwgMTYpIHwgKGludmVydCA8PCAyNCkgfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2luZm9fc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4ZmY7Ci0KLQl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKLQl1aW5mby0+Y291bnQgPSAxOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9nZXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChjaGlwLT5pbWFnZVtyZWddID4+IHNoaWZ0KSAmIG1hc2s7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCWlmIChpbnZlcnQpCi0JCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gbWFzayAtIHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3B1dF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgY2hhbmdlOwotCXVuc2lnbmVkIHNob3J0IHZhbDsKLQkKLQl2YWwgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrKTsKLQlpZiAoaW52ZXJ0KQotCQl2YWwgPSBtYXNrIC0gdmFsOwotCXZhbCA8PD0gc2hpZnQ7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwgPSAoY2hpcC0+aW1hZ2VbcmVnXSAmIH4obWFzayA8PCBzaGlmdCkpIHwgdmFsOwotCWNoYW5nZSA9IHZhbCAhPSBjaGlwLT5pbWFnZVtyZWddOwotCXNuZF9vcHRpOTN4X291dChjaGlwLCByZWcsIHZhbCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLSNlbmRpZiAvKiBzaW5nbGUgKi8KLQotI2RlZmluZSBPUFRpOTNYX0RPVUJMRSh4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBzaGlmdF9sZWZ0LCBzaGlmdF9yaWdodCwgbWFzaywgaW52ZXJ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfb3B0aTkzeF9pbmZvX2RvdWJsZSwgXAotICAuZ2V0ID0gc25kX29wdGk5M3hfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9vcHRpOTN4X3B1dF9kb3VibGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAoc2hpZnRfbGVmdCA8PCAxNikgfCAoc2hpZnRfcmlnaHQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQotCi0jZGVmaW5lIE9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoeGN0bCkgXAotCWRvIHsgeGN0bC5wcml2YXRlX3ZhbHVlIF49IDIyOyB9IHdoaWxlICgwKQotI2RlZmluZSBPUFRpOTNYX0RPVUJMRV9DSEFOR0VfUkVHUyh4Y3RsLCBsZWZ0X3JlZywgcmlnaHRfcmVnKSBcCi0JZG8geyB4Y3RsLnByaXZhdGVfdmFsdWUgJj0gfjB4MDAwMGZmZmY7IFwKLQkgICAgIHhjdGwucHJpdmF0ZV92YWx1ZSB8PSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCk7IH0gd2hpbGUgKDApCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaW5mb19kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQotCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOwotCXVpbmZvLT5jb3VudCA9IDI7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2dldF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgc2hpZnRfbGVmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCBzaGlmdF9yaWdodCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAoY2hpcC0+aW1hZ2VbbGVmdF9yZWddID4+IHNoaWZ0X2xlZnQpICYgbWFzazsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IChjaGlwLT5pbWFnZVtyaWdodF9yZWddID4+IHNoaWZ0X3JpZ2h0KSAmIG1hc2s7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCWlmIChpbnZlcnQpIHsKLQkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBtYXNrIC0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07Ci0JCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gbWFzayAtIHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wdXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IHNoaWZ0X2xlZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgc2hpZnRfcmlnaHQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgY2hhbmdlOwotCXVuc2lnbmVkIHNob3J0IHZhbDEsIHZhbDI7Ci0JCi0JdmFsMSA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKLQl2YWwyID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiBtYXNrOwotCWlmIChpbnZlcnQpIHsKLQkJdmFsMSA9IG1hc2sgLSB2YWwxOwotCQl2YWwyID0gbWFzayAtIHZhbDI7Ci0JfQotCXZhbDEgPDw9IHNoaWZ0X2xlZnQ7Ci0JdmFsMiA8PD0gc2hpZnRfcmlnaHQ7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwxID0gKGNoaXAtPmltYWdlW2xlZnRfcmVnXSAmIH4obWFzayA8PCBzaGlmdF9sZWZ0KSkgfCB2YWwxOwotCXZhbDIgPSAoY2hpcC0+aW1hZ2VbcmlnaHRfcmVnXSAmIH4obWFzayA8PCBzaGlmdF9yaWdodCkpIHwgdmFsMjsKLQljaGFuZ2UgPSB2YWwxICE9IGNoaXAtPmltYWdlW2xlZnRfcmVnXSB8fCB2YWwyICE9IGNoaXAtPmltYWdlW3JpZ2h0X3JlZ107Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIGxlZnRfcmVnLCB2YWwxKTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgcmlnaHRfcmVnLCB2YWwyKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9vcHRpOTN4X2NvbnRyb2xzW10gX19kZXZpbml0ZGF0YSA9IHsKLU9QVGk5M1hfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9PVVRfTEVGVCwgT1BUaTkzWF9PVVRfUklHSFQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgMSwgMSwgMzEsIDEpLCAKLU9QVGk5M1hfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9EQUNfTEVGVCwgT1BUaTkzWF9EQUNfUklHSFQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIlBDTSBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX0RBQ19MRUZULCBPUFRpOTNYX0RBQ19SSUdIVCwgMCwgMCwgMzEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkZNIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5MzFfRk1fTEVGVF9JTlBVVCwgT1BUaTkzMV9GTV9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiRk0gUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzMV9GTV9MRUZUX0lOUFVULCBPUFRpOTMxX0ZNX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAwLCBPUFRpOTNYX0xJTkVfTEVGVF9JTlBVVCwgT1BUaTkzWF9MSU5FX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFZvbHVtZSIsIDAsIE9QVGk5M1hfTElORV9MRUZUX0lOUFVULCBPUFRpOTNYX0xJTkVfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5M1hfTUlDX0xFRlRfSU5QVVQsIE9QVGk5M1hfTUlDX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVCwgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiTWljIEJvb3N0IiwgMCwgT1BUaTkzWF9NSVhPVVRfTEVGVCwgT1BUaTkzWF9NSVhPVVRfUklHSFQsIDUsIDUsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5M1hfQ0RfTEVGVF9JTlBVVCwgT1BUaTkzWF9DRF9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiQ0QgUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzWF9DRF9MRUZUX0lOUFVULCBPUFRpOTNYX0NEX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQsIE9QVGk5MzFfQVVYX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJBdXggUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiQ2FwdHVyZSBWb2x1bWUiLCAwLCBPUFRpOTNYX01JWE9VVF9MRUZULCBPUFRpOTNYX01JWE9VVF9SSUdIVCwgMCwgMCwgMTUsIDApLAotewotCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAotCS5uYW1lID0gIkNhcHR1cmUgU291cmNlIiwKLQkuaW5mbyA9IHNuZF9vcHRpOTN4X2luZm9fbXV4LAotCS5nZXQgPSBzbmRfb3B0aTkzeF9nZXRfbXV4LAotCS5wdXQgPSBzbmRfb3B0aTkzeF9wdXRfbXV4LAotfQotfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLXN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9vcHRpOTN4X21peGVyKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7Ci0Jc3RydWN0IHNuZF9rY29udHJvbF9uZXcga25ldzsKLQlpbnQgZXJyOwotCXVuc2lnbmVkIGludCBpZHg7Ci0KLQlzbmRfYXNzZXJ0KGNoaXAgIT0gTlVMTCAmJiBjaGlwLT5jYXJkICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKLQotCWNhcmQgPSBjaGlwLT5jYXJkOwotCi0Jc3RyY3B5KGNhcmQtPm1peGVybmFtZSwgc25kX29wdGk5M3hfY2hpcF9pZChjaGlwKSk7Ci0KLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX29wdGk5M3hfY29udHJvbHMpOyBpZHgrKykgewotCQlrbmV3ID0gc25kX29wdGk5M3hfY29udHJvbHNbaWR4XTsKLQkJaWYgKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwKSB7Ci0JCQlpZiAoc3Ryc3RyKGtuZXcubmFtZSwgIkZNIikpCS8qIHNraXAgRk0gY29udHJvbHMgKi8KLQkJCQljb250aW51ZTsKLQkJCWVsc2UgaWYgKHN0cmNtcChrbmV3Lm5hbWUsICJNaWMgUGxheWJhY2sgVm9sdW1lIikpCi0JCQkJT1BUaTkzWF9ET1VCTEVfSU5WRVJUX0lOVkVSVChrbmV3KTsKLQkJCWVsc2UgaWYgKHN0cnN0cihrbmV3Lm5hbWUsICJBdXgiKSkKLQkJCQlPUFRpOTNYX0RPVUJMRV9DSEFOR0VfUkVHUyhrbmV3LCBPUFRpOTMwX0FVWF9MRUZUX0lOUFVULCBPUFRpOTMwX0FVWF9SSUdIVF9JTlBVVCk7Ci0JCQllbHNlIGlmIChzdHJjbXAoa25ldy5uYW1lLCAiUENNIFBsYXliYWNrIFZvbHVtZSIpKQotCQkJCU9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoa25ldyk7Ci0JCQllbHNlIGlmIChzdHJjbXAoa25ldy5uYW1lLCAiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIpKQotCQkJCU9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoa25ldyk7Ci0JCX0KLQkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjYXJkLCBzbmRfY3RsX25ldzEoJnNuZF9vcHRpOTN4X2NvbnRyb2xzW2lkeF0sIGNoaXApKSkgPCAwKQotCQkJcmV0dXJuIGVycjsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KICNlbmRpZiAvKiBPUFRpOTNYICovCiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9jYXJkX29wdGk5eHhfZGV0ZWN0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKQEAgLTE3MzksOCArNjg1LDE2IEBACiB7CiAJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOwogICAgICAgICAKLQlpZiAoY2hpcCkKKwlpZiAoY2hpcCkgeworI2lmZGVmIE9QVGk5M1gKKwkJc3RydWN0IHNuZF9jczQyMzEgKmNvZGVjID0gY2hpcC0+Y29kZWM7CisJCWlmIChjb2RlYy0+aXJxID4gMCkgeworCQkJZGlzYWJsZV9pcnEoY29kZWMtPmlycSk7CisJCQlmcmVlX2lycShjb2RlYy0+aXJxLCBjb2RlYyk7CisJCX0KKyNlbmRpZgogCQlyZWxlYXNlX2FuZF9mcmVlX3Jlc291cmNlKGNoaXAtPnJlc19tY19iYXNlKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9vcHRpOXh4X3Byb2JlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKQEAgLTE3NDgsMTEgKzcwMiwxMSBAQAogCXN0YXRpYyBsb25nIHBvc3NpYmxlX3BvcnRzW10gPSB7MHg1MzAsIDB4ZTgwLCAweGY0MCwgMHg2MDQsIC0xfTsKIAlpbnQgZXJyb3I7CiAJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOwotI2lmIGRlZmluZWQoT1BUaTkzWCkKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjOwotI2VsaWYgZGVmaW5lZChDUzQyMzEpCisjaWYgZGVmaW5lZChDUzQyMzEpIHx8IGRlZmluZWQoT1BUaTkzWCkKIAlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWM7CisjaWZkZWYgQ1M0MjMxCiAJc3RydWN0IHNuZF90aW1lciAqdGltZXI7CisjZW5kaWYKICNlbHNlCiAJc3RydWN0IHNuZF9hZDE4NDggKmNvZGVjOwogI2VuZGlmCkBAIC0xNzg0LDI2ICs3MzgsMzQgQEAKIAlpZiAoKGVycm9yID0gc25kX29wdGk5eHhfY29uZmlndXJlKGNoaXApKSkKIAkJcmV0dXJuIGVycm9yOwogCi0jaWYgZGVmaW5lZChPUFRpOTNYKQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9jcmVhdGUoY2FyZCwgY2hpcCwgY2hpcC0+ZG1hMSwgY2hpcC0+ZG1hMiwgJmNvZGVjKSkpCi0JCXJldHVybiBlcnJvcjsKLQlpZiAoKGVycm9yID0gc25kX29wdGk5M3hfcGNtKGNvZGVjLCAwLCAmcGNtKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0JaWYgKChlcnJvciA9IHNuZF9vcHRpOTN4X21peGVyKGNvZGVjKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0jZWxpZiBkZWZpbmVkKENTNDIzMSkKKyNpZiBkZWZpbmVkKENTNDIzMSkgfHwgZGVmaW5lZChPUFRpOTNYKQogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX2NyZWF0ZShjYXJkLCBjaGlwLT53c3NfYmFzZSArIDQsIC0xLAogCQkJCSAgICAgICBjaGlwLT5pcnEsIGNoaXAtPmRtYTEsIGNoaXAtPmRtYTIsCi0JCQkJICAgICAgIENTNDIzMV9IV19ERVRFQ1QsCi0JCQkJICAgICAgIDAsCisjaWZkZWYgQ1M0MjMxCisJCQkJICAgICAgIENTNDIzMV9IV19ERVRFQ1QsIDAsCisjZWxzZSAvKiBPUFRpOTN4ICovCisJCQkJICAgICAgIENTNDIzMV9IV19PUFRJOTNYLCBDUzQyMzFfSFdTSEFSRV9JUlEsCisjZW5kaWYKIAkJCQkgICAgICAgJmNvZGVjKSkgPCAwKQogCQlyZXR1cm4gZXJyb3I7CisjaWZkZWYgT1BUaTkzWAorCWNoaXAtPmNvZGVjID0gY29kZWM7CisjZW5kaWYKIAlpZiAoKGVycm9yID0gc25kX2NzNDIzMV9wY20oY29kZWMsIDAsICZwY20pKSA8IDApCiAJCXJldHVybiBlcnJvcjsKIAlpZiAoKGVycm9yID0gc25kX2NzNDIzMV9taXhlcihjb2RlYykpIDwgMCkKIAkJcmV0dXJuIGVycm9yOworI2lmZGVmIENTNDIzMQogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX3RpbWVyKGNvZGVjLCAwLCAmdGltZXIpKSA8IDApCiAJCXJldHVybiBlcnJvcjsKKyNlbHNlIC8qIE9QVEk5M1ggKi8KKwllcnJvciA9IHJlcXVlc3RfaXJxKGNoaXAtPmlycSwgc25kX29wdGk5M3hfaW50ZXJydXB0LAorCQkJICAgIElSUUZfRElTQUJMRUQsIERFVl9OQU1FIiAtIFdTUyIsIGNvZGVjKTsKKwlpZiAoZXJyb3IgPCAwKSB7CisJCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgSVJRICVkXG4iLCBjaGlwLT5pcnEpOworCQlyZXR1cm4gZXJyb3I7CisJfQorI2VuZGlmCiAjZWxzZQogCWlmICgoZXJyb3IgPSBzbmRfYWQxODQ4X2NyZWF0ZShjYXJkLCBjaGlwLT53c3NfYmFzZSArIDQsCiAJCQkJICAgICAgIGNoaXAtPmlycSwgY2hpcC0+ZG1hMSwKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9NYWtlZmlsZSBiL3NvdW5kL2lzYS9zYi9NYWtlZmlsZQppbmRleCBjOWQxYzk4Li4xMDk4YTU2IDEwMDY0NAotLS0gYS9zb3VuZC9pc2Evc2IvTWFrZWZpbGUKKysrIGIvc291bmQvaXNhL3NiL01ha2VmaWxlCkBAIC0zNCw1ICszNCwzIEBACiAgIG9iai0kKENPTkZJR19TTkRfU0JBV0UpICs9IHNuZC1zYjE2LWNzcC5vCiBlbmRpZgogb2JqLSQoY2FsbCBzZXF1ZW5jZXIsJChDT05GSUdfU05EX1NCQVdFKSkgKz0gc25kLWVtdTgwMDAtc3ludGgubwotCi1vYmotbSA6PSAkKHNvcnQgJChvYmotbSkpCmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evc2Ivc2IxNl9jc3AuYyBiL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCmluZGV4IGYzZmQ3YjQuLjM1ZjNkN2IgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCisrKyBiL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCkBAIC0zNSwxMyArMzUsMTEgQEAKIE1PRFVMRV9BVVRIT1IoIlVyb3MgQml6amFrIDx1cm9zQGtzcy1sb2thLnNpPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIGRyaXZlciBmb3IgU0IxNiBDcmVhdGl2ZSBTaWduYWwgUHJvY2Vzc29yIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0jaWZuZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCiBNT0RVTEVfRklSTVdBUkUoInNiMTYvbXVsYXdfbWFpbi5jc3AiKTsKIE1PRFVMRV9GSVJNV0FSRSgic2IxNi9hbGF3X21haW4uY3NwIik7CiBNT0RVTEVfRklSTVdBUkUoInNiMTYvaW1hX2FkcGNtX2luaXQuY3NwIik7CiBNT0RVTEVfRklSTVdBUkUoInNiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcCIpOwogTU9EVUxFX0ZJUk1XQVJFKCJzYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcCIpOwotI2VuZGlmCiAKICNpZmRlZiBTTkRSVl9MSVRUTEVfRU5ESUFOCiAjZGVmaW5lIENTUF9IRFJfVkFMVUUoYSxiLGMsZCkJKChhKSB8ICgoYik8PDgpIHwgKChjKTw8MTYpIHwgKChkKTw8MjQpKQpAQCAtMTY4LDE3ICsxNjYsMTMgQEAKICAqLwogc3RhdGljIHZvaWQgc25kX3NiX2NzcF9mcmVlKHN0cnVjdCBzbmRfaHdkZXAgKmh3ZGVwKQogewotI2lmbmRlZiBDT05GSUdfU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAogCWludCBpOwotI2VuZGlmCiAJc3RydWN0IHNuZF9zYl9jc3AgKnAgPSBod2RlcC0+cHJpdmF0ZV9kYXRhOwogCWlmIChwKSB7CiAJCWlmIChwLT5ydW5uaW5nICYgU05EUlZfU0JfQ1NQX1NUX1JVTk5JTkcpCiAJCQlzbmRfc2JfY3NwX3N0b3AocCk7Ci0jaWZuZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCiAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHAtPmNzcF9wcm9ncmFtcyk7ICsraSkKIAkJCXJlbGVhc2VfZmlybXdhcmUocC0+Y3NwX3Byb2dyYW1zW2ldKTsKLSNlbmRpZgogCQlrZnJlZShwKTsKIAl9CiB9CkBAIC03MDEsMTggKzY5NSw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotI2lmZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCi0jaW5jbHVkZSAic2IxNl9jc3BfY29kZWNzLmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgc25kX3NiX2NzcF9zdGF0aWNfcHJvZ3JhbXNbXSA9IHsKLQl7IC5kYXRhID0gbXVsYXdfbWFpbiwgLnNpemUgPSBzaXplb2YgbXVsYXdfbWFpbiB9LAotCXsgLmRhdGEgPSBhbGF3X21haW4sIC5zaXplID0gc2l6ZW9mIGFsYXdfbWFpbiB9LAotCXsgLmRhdGEgPSBpbWFfYWRwY21faW5pdCwgLnNpemUgPSBzaXplb2YgaW1hX2FkcGNtX2luaXQgfSwKLQl7IC5kYXRhID0gaW1hX2FkcGNtX3BsYXliYWNrLCAuc2l6ZSA9IHNpemVvZiBpbWFfYWRwY21fcGxheWJhY2sgfSwKLQl7IC5kYXRhID0gaW1hX2FkcGNtX2NhcHR1cmUsIC5zaXplID0gc2l6ZW9mIGltYV9hZHBjbV9jYXB0dXJlIH0sCi19OwotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc25kX3NiX2NzcF9maXJtd2FyZV9sb2FkKHN0cnVjdCBzbmRfc2JfY3NwICpwLCBpbnQgaW5kZXgsIGludCBmbGFncykKIHsKIAlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsKQEAgLTcyNywxNCArNzA5LDEwIEBACiAJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUobmFtZXMpICE9IENTUF9QUk9HUkFNX0NPVU5UKTsKIAlwcm9ncmFtID0gcC0+Y3NwX3Byb2dyYW1zW2luZGV4XTsKIAlpZiAoIXByb2dyYW0pIHsKLSNpZmRlZiBDT05GSUdfU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAotCQlwcm9ncmFtID0gJnNuZF9zYl9jc3Bfc3RhdGljX3Byb2dyYW1zW2luZGV4XTsKLSNlbHNlCiAJCWludCBlcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZwcm9ncmFtLCBuYW1lc1tpbmRleF0sCiAJCQkJICAgICAgIHAtPmNoaXAtPmNhcmQtPmRldik7CiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsKLSNlbmRpZgogCQlwLT5jc3BfcHJvZ3JhbXNbaW5kZXhdID0gcHJvZ3JhbTsKIAl9CiAJcmV0dXJuIHNuZF9zYl9jc3BfbG9hZChwLCBwcm9ncmFtLT5kYXRhLCBwcm9ncmFtLT5zaXplLCBmbGFncyk7CmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evc2Ivc2IxNl9jc3BfY29kZWNzLmggYi9zb3VuZC9pc2Evc2Ivc2IxNl9jc3BfY29kZWNzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZThiMGQuLjAwMDAwMDAKLS0tIGEvc291bmQvaXNhL3NiL3NiMTZfY3NwX2NvZGVjcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTQ5ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgotICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCi0gKgotICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQotICoKLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBtdWxhd19tYWluW10gPSB7Ci0JMHgwMCwgMHgxMCwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGIxLCAweDAwLCAweDQ0LCAweDAwLCAweDYxLCAweDAwLCAweDQ0LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4NjEsIDB4YTgsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDIwLCAweDAxLCAweDA5LCAweDBlLCAweDIwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YTgsIDB4MDEsIDB4YTgsIDB4ODAsIDB4ODgsIDB4MDEsIDB4YTgsIDB4ODAsCi0JMHhhOCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhkMiwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweDg4LCAweDAwLCAweGE4LCAweDgwLCAweGE4LCAweDA0LCAweGIzLCAweDgwLAotCTB4MjAsIDB4MDcsIDB4YjMsIDB4ODAsIDB4ODgsIDB4MDMsIDB4YjEsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwOSwgMHg1YywgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGExLCAweDAwLCAweDcxLCAweDhiLCAweGNkLCAweDAwLCAweDA0LCAweDE5LAotCTB4YTIsIDB4MjAsIDB4NzEsIDB4OGIsIDB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDQwLCAweDAwLCAweDE0LCAweDA4LCAweDQwLCAweDA0LCAweDI0LAotCTB4MDAsIDB4MDAsIDB4MzQsIDB4NDksIDB4MGMsIDB4NDAsIDB4MDAsIDB4NDQsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDMyLCAweDAwLCAweDA5LCAweDVjLCAweDAwLCAweDAwLCAweDBjLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4NDAsIDB4NDAsIDB4MDksIDB4ZWYsCi0JMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHg2MywgMHhhMSwKLQkweDUwLCAweDAzLCAweDMzLCAweDgwLCAweDAwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MDAsIDB4ZDAsIDB4MDQsIDB4NTQsCi0JMHgwNCwgMHhlMCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMywgMHg4MCwgMHhjMCwKLQkweDMwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDdhLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGZmLCAweGMyLCAweDhiLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsIDB4MDgsIDB4MzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDFlLCAweDQyLCAweDhiLCAweDBjLCAweGIyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwgMHgwOCwgMHg1MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweGJlLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsIDB4MDQsIDB4NzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwgMHgwMCwgMHhkMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDU1LCAweDQyLCAweDhiLCAweDAwLCAweDYwLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MjAsIDB4MDEsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHgzMCwgMHg0MiwgMHg4YiwgMHgwOCwgMHg4MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDcxLCAweDhiLAotCTB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHgwMCwgMHhiMiwgMHgwMCwgMHhjNCwKLQkweDBmLCAweGYyLCAweGE4LCAweGE4LCAweDIwLCAweDAwLCAweGIxLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NDEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHhjMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDBkLCAweGYyLCAweGEzLCAweGE4LCAweDRkLCAweGYyLCAweDAwLCAweDM5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgxMCwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDYwLCAweDAwLCAweDQ0LCAweGZmLCAweDIwLCAweGUyLCAweGFiLAotCTB4NjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDAwLCAweGUyLCAweDAwLCAweDg0LAotCTB4MDMsIDB4MDMsIDB4MDQsIDB4NDksIDB4MDgsIDB4YzIsIDB4MDAsIDB4NTQsCi0JMHgwMCwgMHg2MCwgMHgwNCwgMHg2NCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAwLCAweDIwLCAweGUyLCAweDhiLCAweDBjLCAweGYyLCAweDAwLCAweDg0LAotCTB4M2UsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwOCwgMHgwMSwgMHgwMCwgMHg0NCwgMHg2YywgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMwLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAyLCAweGUyLCAweDhiLAotCTB4MDQsIDB4MjEsIDB4MDAsIDB4ODQsIDB4ZmQsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMiwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgxMSwgMHgwMCwgMHg0NCwKLQkweGZlLCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4ZTUsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweGMxLCAweDIwLCAweDA0LCAweDE5LAotCTB4YzMsIDB4MjAsIDB4MDQsIDB4MTksIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjNywgMHgyMCwgMHgwNCwgMHgxOSwgMHg1ZSwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNmLCAweDAwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzYsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjYSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDIwLCAweDAwLCAweDcxLCAweDhiLCAweGNjLCAweDIwLCAweDA0LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgwOSwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBiLCAweDA0LCAweDYxLCAweGE4LCAweGNhLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4NjAsIDB4MDAsIDB4ZDQsIDB4MGQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDBmLCAweDAwLCAweDYxLCAweDBhLCAweDAwLCAweDQwLCAweDA5LCAweDhmLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4ODIsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwgMHgwMiwgMHgwMCwgMHg2MSwgMHgyMiwKLQkweDQzLCAweDI1LCAweDYxLCAweDIyLCAweDQwLCAweDMzLCAweDAwLCAweDgwLAotCTB4MDgsIDB4YTgsIDB4MDAsIDB4NDQsIDB4MjAsIDB4MzEsIDB4NDksIDB4NWMsCi0JMHg5MiwgMHgwMCwgMHgwOSwgMHg0ZSwgMHgwMiwgMHgwMywgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAwLCAweGEzLCAweDAyLCAweGMwLCAweDAwLCAweDcxLCAweGMwLAotCTB4MjAsIDB4MDAsIDB4ZWIsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHg4MCwgMHgwMCwgMHgwNCwgMHg3YSwgMHgwMiwKLQkweGNiLCAweDAwLCAweGE4LCAweDU4LCAweGIwLCAweDA1LCAweGYzLCAweDgwLAotCTB4MjAsIDB4MDQsIDB4YTgsIDB4MTAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MzksCi0JMHhiMCwgMHgwMCwgMHhlMCwgMHg4YiwgMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDYzLCAweGNiLCAweDAwLCAweDAwLCAweDdhLCAweDAyLAotCTB4NDAsIDB4MDAsIDB4MDEsIDB4NWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg0YSwgMHhjYiwgMHgyMCwgMHgwMCwgMHgxMywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweGUwLCAweDIxLCAweDAwLCAweGMwLAotCTB4MDgsIDB4MDAsIDB4MDgsIDB4NDksIDB4MTAsIDB4NDEsIDB4MDksIDB4OGUsCi0JMHhmZiwgMHhmZiwgMHg2MiwgMHg4YiwgMHgwMCwgMHgwNCwgMHg2MSwgMHgyMiwKLQkweDAwLCAweDAzLCAweDAwLCAweDQ1LCAweDIyLCAweDAxLCAweDMzLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4YTMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2EsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg4MiwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDA4LCAweDgzLCAweDAwLCAweDg0LCAweDQwLCAweDIxLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDUsIDB4OTMsIDB4MTAsIDB4YzcsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDBjLCAweGEzLCAweDAwLCAweDg0LCAweDA4LCAweDAwLCAweDAwLCAweDgyLAotCTB4MGMsIDB4MjQsIDB4NjEsIDB4NTAsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHhjNywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDA0LCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4NDIsIDB4MDEsIDB4MDksIDB4MGUsIDB4MDIsIDB4MjAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHgwYywgMHgyMCwgMHg2MCwgMHgwYSwKLQkweDAwLCAweDczLCAweDAwLCAweDg0LCAweDAwLCAweDA0LCAweGIxLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MzksIDB4MGMsIDB4NjEsIDB4MDQsIDB4ZDQsCi0JMHgwMCwgMHgyNCwgMHg3MSwgMHhjMCwgMHgyMCwgMHgzMywgMHgzMywgMHhjMCwKLQkweGUwLCAweDAxLCAweGEzLCAweDgyLCAweDIyLCAweDAzLCAweDdhLCAweDAyLAotCTB4YzMsIDB4MDEsIDB4YTMsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHhjMiwgMHgwMSwgMHhiMywgMHg1MCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweDcxLCAweDgwLAotCTB4MDAsIDB4ZjMsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MjAsIDB4NjAsIDB4MGEsCi0JMHgwMCwgMHhkMywgMHgwMCwgMHg4NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDM5LCAweDBjLCAweDYxLCAweDA0LCAweGQ0LAotCTB4MDAsIDB4MDAsIDB4YjMsIDB4MTAsIDB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhjMCwgMHgwMCwgMHhmMywgMHgwMCwgMHg0NCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDIwLCAweDcxLCAweGMwLAotCTB4MDAsIDB4MzAsIDB4NzEsIDB4YzAsIDB4MDAsIDB4ZjMsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHhmZiwgMHhmZiwgMHg2MiwgMHg4YiwKLQkweDIwLCAweDAxLCAweDMzLCAweDgwLCAweDAwLCAweDAwLCAweDgzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4MjAsIDB4ZTEsIDB4MDksIDB4NWMsCi0JMHg4MiwgMHgwMCwgMHgwOSwgMHgyZiwgMHg4MCwgMHg0YSwgMHgwOSwgMHg4ZSwKLQkweGUwLCAweDAxLCAweGIzLCAweDgyLCAweDIwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4Y2IsIDB4MDMsIDB4MDAsIDB4YTgsIDB4MTgsCi0JMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwgMHgwOCwgMHgwNCwgMHhlYSwgMHgxMCwKLQkweDA4LCAweDA0LCAweDdhLCAweDEwLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDAsIDB4MjEsIDB4Y2IsIDB4MGMsIDB4MDAsIDB4ZTgsIDB4MTAsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHgwYywgMHgwMCwgMHhlYiwgMHgxMCwKLQkweGYyLCAweDAxLCAweDAwLCAweDgyLCAweDQwLCAweDIxLCAweDMzLCAweDAyLAotCTB4MDgsIDB4MjAsIDB4NjEsIDB4MGEsIDB4YzQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHhjNywgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweGU4LCAweDA0LCAweDE0LCAweDAxLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4YjgsIDB4MDQsIDB4NTQsCi0JMHhjMywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhiOCwgMHgwMCwgMHg0NCwKLQkweDA4LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGI4LCAweDA0LCAweDU0LAotCTB4YzgsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwOSwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHg2OCwgMHgwNCwgMHg1NCwKLQkweGM5LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDY4LCAweDAwLCAweDQ0LAotCTB4MGIsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4NjgsIDB4MDQsIDB4NTQsCi0JMHhjYiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA2LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweDc4LCAweDA0LCAweDU0LAotCTB4YzYsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4NzgsIDB4MDAsIDB4NDQsCi0JMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHg3OCwgMHgwNCwgMHg1NCwKLQkweGM1LCAweDAwLCAweDA0LCAweDE5LCAweDA3LCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4ZTgsIDB4MDQsIDB4NTQsCi0JMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhlOCwgMHgwMCwgMHg0NCwKLQkweDBlLCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGU4LCAweDA0LCAweDU0LAotCTB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgyMCwgMHgxMCwgMHg3MSwgMHg4YiwgMHgwOSwgMHgzZiwgMHgwNywgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYWxhd19tYWluW10gPSB7Ci0JMHgwMCwgMHgxMCwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGIxLCAweDAwLCAweDQ0LCAweDAwLCAweDYxLCAweDAwLCAweDQ0LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4NjEsIDB4YTgsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDIwLCAweDAxLCAweDA5LCAweDBlLCAweDIwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YTgsIDB4MDEsIDB4YTgsIDB4ODAsIDB4ODgsIDB4MDEsIDB4YTgsIDB4ODAsCi0JMHhhOCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhkMiwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweDg4LCAweDAwLCAweGE4LCAweDgwLCAweGE4LCAweDA0LCAweGIzLCAweDgwLAotCTB4MjAsIDB4MDcsIDB4YjMsIDB4ODAsIDB4ODgsIDB4MDMsIDB4YjEsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwOSwgMHg1YywgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGExLCAweDAwLCAweDcxLCAweDhiLCAweGNkLCAweDAwLCAweDA0LCAweDE5LAotCTB4MjEsIDB4MjAsIDB4NzEsIDB4OGIsIDB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDQwLCAweDAwLCAweDE0LCAweDA4LCAweDQwLCAweDA0LCAweDI0LAotCTB4MDAsIDB4MDAsIDB4MzQsIDB4NDksIDB4MGMsIDB4NDAsIDB4MDAsIDB4NDQsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDMyLCAweDAwLCAweDA5LCAweDVjLCAweDAwLCAweDAwLCAweDBjLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4NDAsIDB4NDAsIDB4MDksIDB4ZWYsCi0JMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHg2MywgMHhhMSwKLQkweDUwLCAweDAzLCAweDMzLCAweDgwLCAweDAwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MDAsIDB4ZDAsIDB4MDQsIDB4NTQsCi0JMHgwNCwgMHhlMCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMywgMHg4MCwgMHhjMCwKLQkweDMwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDdhLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGZmLCAweGMyLCAweDhiLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsIDB4MDgsIDB4MzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDFlLCAweDQyLCAweDhiLCAweDBjLCAweGIyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwgMHgwOCwgMHg1MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweGJlLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsIDB4MDQsIDB4NzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwgMHgwMCwgMHhkMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDU1LCAweDQyLCAweDhiLCAweDAwLCAweDYwLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MjAsIDB4MDEsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHgzMCwgMHg0MiwgMHg4YiwgMHgwOCwgMHg4MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDcxLCAweDhiLAotCTB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHgwMCwgMHhiMiwgMHgwMCwgMHhjNCwKLQkweDBmLCAweGYyLCAweGE4LCAweGE4LCAweDIwLCAweDAwLCAweGIxLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NDEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHhjMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDBkLCAweGYyLCAweGEzLCAweGE4LCAweDRkLCAweGYyLCAweDAwLCAweDM5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgxMCwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDYwLCAweDAwLCAweDQ0LCAweGZmLCAweDIwLCAweGUyLCAweGFiLAotCTB4NjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDAwLCAweGUyLCAweDAwLCAweDg0LAotCTB4MDMsIDB4MDMsIDB4MDQsIDB4NDksIDB4MDQsIDB4YzIsIDB4MDAsIDB4NTQsCi0JMHgwMCwgMHg2MCwgMHgwNCwgMHg2NCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAwLCAweDIwLCAweGUyLCAweDhiLCAweDBjLCAweGYyLCAweDAwLCAweDg0LAotCTB4YmUsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwOCwgMHgwMSwgMHgwMCwgMHg0NCwgMHhlYywgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMwLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAyLCAweGUyLCAweDhiLAotCTB4MDQsIDB4MjEsIDB4MDAsIDB4ODQsIDB4M2YsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMiwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgxMSwgMHgwMCwgMHg0NCwKLQkweDNkLCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4ZTUsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweGMxLCAweDIwLCAweDA0LCAweDE5LAotCTB4YzMsIDB4MjAsIDB4MDQsIDB4MTksIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjNywgMHgyMCwgMHgwNCwgMHgxOSwgMHhkZSwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGNmLCAweDAwLCAweDAwLCAweDM5LCAweDAwLCAweDAxLCAweGIxLCAweDgwLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzYsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjYSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDIwLCAweDAwLCAweDcxLCAweDhiLCAweGNjLCAweDIwLCAweDA0LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgwOSwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBiLCAweDA0LCAweDYxLCAweGE4LCAweGNhLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4NjAsIDB4MDAsIDB4ZDQsIDB4MGQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDBmLCAweDAwLCAweDYxLCAweDBhLCAweDAwLCAweDQwLCAweDA5LCAweDhmLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4ODIsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwgMHgwMiwgMHgwMCwgMHg2MSwgMHgyMiwKLQkweDQzLCAweDI1LCAweDYxLCAweDIyLCAweDQwLCAweDMzLCAweDAwLCAweDgwLAotCTB4MDgsIDB4NDgsIDB4MDAsIDB4NDQsIDB4MjAsIDB4YjEsIDB4NDksIDB4NWMsCi0JMHg5MiwgMHgwMCwgMHgwOSwgMHg0ZSwgMHgwMiwgMHgwMywgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAwLCAweGEzLCAweDAyLCAweGMwLCAweDAwLCAweDcxLCAweGMwLAotCTB4MjAsIDB4MDAsIDB4ZWIsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHg4MCwgMHgwMCwgMHgwNCwgMHg3YSwgMHgwMiwKLQkweGMwLCAweDAwLCAweDAwLCAweDgyLCAweDBjLCAweGMzLCAweDA4LCAweDQ5LAotCTB4YjAsIDB4MDEsIDB4ZjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MzksCi0JMHgyMCwgMHgwMCwgMHgwYywgMHg4OSwgMHgwYywgMHg4OCwgMHgwOCwgMHg0OSwKLQkweDAzLCAweDAwLCAweGE4LCAweDE4LCAweDAwLCAweDAwLCAweDEwLCAweDM5LAotCTB4YmQsIDB4ZmYsIDB4NjIsIDB4OGIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MywgMHhjYiwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMiwKLQkweDQwLCAweDAwLCAweDAxLCAweDViLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NGEsIDB4Y2IsIDB4MjAsIDB4MDAsIDB4MTMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHhlMCwgMHgyMSwgMHgwMCwgMHhjMCwKLQkweDA4LCAweDAwLCAweDA4LCAweDQ5LCAweDEwLCAweDQxLCAweDA5LCAweDhlLAotCTB4YWUsIDB4YWUsIDB4NjIsIDB4OGIsIDB4MDAsIDB4MDQsIDB4NjEsIDB4MjIsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHg0NSwgMHgyMiwgMHgwMSwgMHgzMywgMHg4MCwKLQkweDIwLCAweDAxLCAweGEzLCAweDAyLCAweDAwLCAweDAwLCAweDdhLCAweDgwLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MDcsIDB4MjAsIDB4NDAsIDB4MGEsCi0JMHgwOCwgMHhhMywgMHgwMCwgMHg4NCwgMHg0MCwgMHgyMSwgMHgwMCwgMHg4MCwKLQkweDQwLCAweDA1LCAweDkzLCAweDEwLCAweGM3LCAweDIwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDcsIDB4MjAsIDB4NDAsIDB4MGEsCi0JMHgwYywgMHg5MywgMHgwMCwgMHg4NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDBjLCAweDI0LCAweDYxLCAweDUwLCAweDQwLCAweDAxLCAweDAwLCAweDgwLAotCTB4YzcsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDQyLCAweDAxLCAweDA5LCAweDBlLCAweDAyLCAweDIwLCAweDYxLCAweDBhLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4MGMsIDB4MjAsIDB4NjAsIDB4MGEsCi0JMHgwMCwgMHhjMywgMHgwMCwgMHg4NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDM5LCAweDBjLCAweDYxLCAweDA0LCAweGQ0LAotCTB4MDAsIDB4MjQsIDB4NzEsIDB4YzAsIDB4MjAsIDB4MzMsIDB4MzMsIDB4YzAsCi0JMHhlMCwgMHgwMSwgMHhhMywgMHg4MiwgMHgyMiwgMHgwMywgMHg3YSwgMHgwMiwKLQkweGMzLCAweDAxLCAweGEzLCAweDgyLCAweDIwLCAweDAxLCAweDMzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4YzIsIDB4MDEsIDB4YjMsIDB4NTAsCi0JMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg3MSwgMHg4MCwKLQkweDAwLCAweDA4LCAweDAwLCAweDQ0LCAweDBjLCAweDIwLCAweDYwLCAweDBhLAotCTB4MDAsIDB4ZjMsIDB4MDAsIDB4ODQsIDB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwgMHgwYywgMHg2MSwgMHgwNCwgMHhkNCwKLQkweDAwLCAweDAwLCAweDcxLCAweGMwLCAweDAwLCAweDAwLCAweDkzLCAweDEwLAotCTB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDgsIDB4MDAsIDB4NDQsCi0JMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgyMCwgMHgwMCwgMHhjMCwKLQkweDAwLCAweDMwLCAweDcxLCAweGMwLCAweDAwLCAweDA4LCAweDAwLCAweDQ0LAotCTB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4YWUsIDB4YWUsIDB4NjIsIDB4OGIsCi0JMHgyMCwgMHgwMSwgMHgzMywgMHg4MCwgMHgwMCwgMHgwMCwgMHg4MywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweDIwLCAweGExLCAweDQ5LCAweDVjLAotCTB4ODIsIDB4MDAsIDB4MDksIDB4NmUsIDB4ODAsIDB4NGEsIDB4MDksIDB4OGUsCi0JMHhlMCwgMHgwMSwgMHhiMywgMHg4MiwgMHgyMCwgMHgwNCwgMHhhMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDdhLCAweGNiLCAweDI4LCAweDA0LCAweGVhLCAweDEwLAotCTB4MGMsIDB4MDQsIDB4N2EsIDB4MTAsIDB4NzAsIDB4MDAsIDB4YzAsIDB4OGIsCi0JMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwgMHg5MCwgMHgwMywgMHgwMCwgMHg4MCwKLQkweDQwLCAweDAwLCAweDIxLCAweDViLCAweDkwLCAweDAwLCAweDYxLCAweDgwLAotCTB4MGMsIDB4OGEsIDB4MDgsIDB4NDksIDB4MDAsIDB4MDAsIDB4MWMsIDB4MTksCi0JMHg0MCwgMHgwMCwgMHgwOCwgMHg1YiwgMHgwOCwgMHgwMCwgMHgwOCwgMHg0OSwKLQkweDIwLCAweDAyLCAweDAwLCAweDgwLCAweDAzLCAweDAwLCAweGE4LCAweDE4LAotCTB4MDAsIDB4MDAsIDB4MTQsIDB4MTksIDB4NDAsIDB4MDAsIDB4MjEsIDB4Y2IsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHgwMCwgMHgwMCwgMHhlYiwgMHg4MCwKLQkweGYyLCAweDAxLCAweDAwLCAweDgyLCAweDQwLCAweDIxLCAweDMzLCAweDAyLAotCTB4MDgsIDB4MjAsIDB4NjEsIDB4MGEsIDB4YzQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHhjNywgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweDBhLCAweDA0LCAweDE0LCAweDAxLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4NTgsIDB4MDQsIDB4NTQsCi0JMHhjMywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHg1OCwgMHgwMCwgMHg0NCwKLQkweDA4LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweDU4LCAweDA0LCAweDU0LAotCTB4YzgsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwOSwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhjOCwgMHgwNCwgMHg1NCwKLQkweGM5LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGM4LCAweDAwLCAweDQ0LAotCTB4MGIsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4YzgsIDB4MDQsIDB4NTQsCi0JMHhjYiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA2LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGQ4LCAweDA0LCAweDU0LAotCTB4YzYsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4ZDgsIDB4MDAsIDB4NDQsCi0JMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhkOCwgMHgwNCwgMHg1NCwKLQkweGM1LCAweDAwLCAweDA0LCAweDE5LCAweDA3LCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4MGEsIDB4MDQsIDB4NTQsCi0JMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHgwYSwgMHgwMCwgMHg0NCwKLQkweDBlLCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweDBhLCAweDA0LCAweDU0LAotCTB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgyMCwgMHgxMCwgMHg3MSwgMHg4YiwgMHgwOCwgMHg0MiwgMHgwNiwgMHgwMAotfTsKLQotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbWFfYWRwY21faW5pdFtdID0gewotCTB4MDAsIDB4MTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweGFhLCAweGFhLCAweDcxLCAweDhiLAotCTB4NDQsIDB4MDQsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHhmZiwgMHg2ZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4YjEsIDB4ODAsIDB4NjIsIDB4MDAsIDB4MTksIDB4MGUsCi0JMHgyMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg2MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDUwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGUwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDIyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MzIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhhMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NjIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGYyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhhMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDYxLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxMywgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIzLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzMsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxOCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDY4LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MGEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg0YSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDI5LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzksIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5YiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE0LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZjQsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlNiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGU1LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZDcsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyZSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDlkLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZWYsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhiMiwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDMzLCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MmEsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgzYiwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDQ2LCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MmMsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkZCwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAxLCAweDEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OWEsIDB4MTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxNiwgMHgxMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDhlLCAweDEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzIsIDB4MzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjOSwgMHgzMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDNjLCAweDMwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ODEsIDB4ODAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkNCwgMHg4MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDEwLCAweGEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MzQsIDB4YTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMiwgMHg5MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDc1LCAweDkwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OWEsIDB4YjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxMiwgMHg0MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDBkLCAweDQwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4M2MsIDB4NjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlNywgMHg1MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDBlLCAweDcwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZmYsIDB4YzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjOCwgMHhkMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDU3LCAweGYwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzgsIDB4MjIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhiMCwgMHgzMiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGRkLCAweDgyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OTAsIDB4YjIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg4YSwgMHg2MiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGNlLCAweDcyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YTUsIDB4ZDIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5NywgMHgyMSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGEyLCAweGExLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NWMsIDB4NDEsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmZSwgMHhjMSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDdhLCAweDIzLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzgsIDB4OTMsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg2NywgMHg3MywgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE3LCAweDI4LCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ODgsIDB4NDgsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkYiwgMHhmOCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDJiLCAweGJhLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZjEsIDB4MDksIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkYywgMHg2OSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE5LCAweDhiLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZmYsIDB4ZmIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDUyLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4ZmYsIDB4ZmYsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweDEwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHg5MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweDQwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4ZmYsIDB4ZmYsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDkwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4NDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhmZiwgMHhmYiwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDA0LCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4NGEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgxMCwgMHgwMCwgMHgwOSwgMHg0ZiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDEwLCAweDcxLCAweDhiLCAweGMxLCAweDMwLCAweDA0LCAweDE5LAotCTB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsIDB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwgMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwKLQkweDAwLCAweDA4LCAweDAwLCAweDQ0LCAweGM4LCAweDU0LCAweDExLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbWFfYWRwY21fcGxheWJhY2tbXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MGMsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NDQsCi0JMHgwNCwgMHg3MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZCwgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsCi0JMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwgMHg1MSwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNkLCAweDAwLCAweDA0LCAweDE5LCAweGU0LCAweDIwLCAweDcxLCAweDhiLAotCTB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksIDB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjYiwgMHgyMCwgMHgwNCwgMHgxOSwgMHgxMCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGM0LCAweDIwLCAweDA0LCAweDE5LCAweDY1LCAweDAwLCAweDUxLCAweDhiLAotCTB4YzIsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsCi0JMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwKLQkweGMxLCAweGEwLCAweDA0LCAweDE5LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgwNCwgMHg0MCwgMHgwMCwgMHgxNCwgMHgwYywgMHg0MCwgMHgwMCwgMHgxNCwKLQkweDAwLCAweDA0LCAweDYxLCAweGE4LCAweDAyLCAweDA0LCAweDYxLCAweGE4LAotCTB4MDQsIDB4NjAsIDB4MDQsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MzQsIDB4NDksCi0JMHgwMCwgMHg1MCwgMHgwMCwgMHg0NCwgMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsCi0JMHg0MCwgMHg0MCwgMHgwOSwgMHhlZiwgMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwKLQkweDAwLCAweDA0LCAweDYzLCAweGExLCAweDUwLCAweDAzLCAweDMzLCAweDgwLAotCTB4MDAsIDB4MDQsIDB4YTMsIDB4ODAsIDB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsCi0JMHgwOCwgMHhmMCwgMHgwNCwgMHg1NCwgMHgwYywgMHhkMCwgMHgwMCwgMHhjNCwKLQkweDIwLCAweDAzLCAweDgwLCAweGMwLCAweDMwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsIDB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweDAwLCAweGZmLCAweGMyLCAweDhiLAotCTB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwKLQkweDBjLCAweDkyLCAweDAwLCAweGM0LCAweDAwLCAweDFlLCAweDQyLCAweDhiLAotCTB4MDQsIDB4NjIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsCi0JMHgwYywgMHg1MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwKLQkweDAwLCAweGMyLCAweDAwLCAweGM0LCAweDAwLCAweGJlLCAweDQyLCAweDhiLAotCTB4MDAsIDB4YzIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhmMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwKLQkweDAwLCAweDkxLCAweDAwLCAweGM0LCAweDAwLCAweDU1LCAweDQyLCAweDhiLAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4YzQsIDB4MDAsIDB4M2YsIDB4NDIsIDB4OGIsCi0JMHgwOCwgMHhlMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDIwLCAweDAxLCAweDc5LCAweDgwLCAweDAwLCAweDMwLCAweDQyLCAweDhiLAotCTB4MDAsIDB4OTIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweGZmLCAweDAwLCAweGUyLCAweGFiLAotCTB4MGMsIDB4NDIsIDB4MDAsIDB4YzQsIDB4MGYsIDB4ZjIsIDB4YTgsIDB4YTgsCi0JMHgyMCwgMHgwMCwgMHhiMSwgMHg4OCwgMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDAwLCAweDM5LCAweGMwLCAweDAxLCAweDAwLCAweDgyLAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4YTMsIDB4YTgsCi0JMHg0ZCwgMHhmMiwgMHgwMCwgMHgzOSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDAwLCAweGUyLCAweGFiLCAweDIwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwKLQkweGEwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDYxLCAweDEwLAotCTB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgyMCwgMHhlMiwgMHhhYiwgMHg2MCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDcxLCAweGMwLCAweDRkLCAweGYyLCAweDA0LCAweDE5LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsCi0JMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMSwgMHhhMCwgMHg0MSwgMHgwYSwKLQkweDA0LCAweGQyLCAweDAwLCAweGM0LCAweDIwLCAweDAxLCAweGYwLCAweDgwLAotCTB4YzEsIDB4MzAsIDB4MDQsIDB4MTksIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwMCwgMHg3OSwgMHg4MCwgMHgwMCwgMHhhMSwgMHgwMCwgMHg4NCwKLQkweGI1LCAweDAwLCAweDUxLCAweDhiLCAweGNmLCAweDAwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4ODgsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4YSwgMHgwMCwgMHgwNCwgMHgxOSwgMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNhLCAweDIwLCAweDA0LCAweDE5LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHhiMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDhlLCAweDAwLCAweDA0LCAweDE5LCAweDEwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDAzLCAweDAzLCAweDA0LCAweDQ5LCAweDA0LCAweDgxLCAweDAwLCAweDU0LAotCTB4MDgsIDB4NTAsIDB4MDQsIDB4NjQsIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAzLCAweDAwLCAweDA0LCAweDQ5LCAweDA4LCAweDUwLCAweDAwLCAweDQ0LAotCTB4MjAsIDB4MDEsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MTksCi0JMHgwMCwgMHgwMiwgMHhlMiwgMHg4YiwgMHgwOCwgMHg0MSwgMHgwMCwgMHg4NCwKLQkweDY1LCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsIDB4YzEsIDB4YTAsIDB4MDQsIDB4MTksCi0JMHgwOCwgMHg2MSwgMHgwMCwgMHg0NCwgMHgyZCwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMyLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzEsIDB4YTAsIDB4MDQsIDB4MTksIDB4MDMsIDB4MDAsIDB4MDQsIDB4NDksCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMiwgMHgyMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDAxLCAweDAwLCAweDQ1LCAweDAyLCAweDMwLCAweDYxLCAweDBhLAotCTB4MDQsIDB4MDMsIDB4MDAsIDB4YzQsIDB4MDUsIDB4YjAsIDB4YzgsIDB4MTgsCi0JMHgwNCwgMHg3MSwgMHgwMCwgMHhjNCwgMHgwMCwgMHgxMywgMHgwMCwgMHg0NCwKLQkweDAwLCAweDc5LCAweDA4LCAweDQ0LCAweDAwLCAweDA0LCAweDc5LCAweDgwLAotCTB4MDAsIDB4NDksIDB4MDAsIDB4YzQsIDB4Y2EsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHg0YSwgMHgwNCwgMHgwNCwgMHgxOSwgMHhmZiwgMHgwMCwgMHhlMiwgMHg4YiwKLQkweDBjLCAweGY5LCAweDA4LCAweDQ0LCAweGNmLCAweDEwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4MmIsIDB4MDgsIDB4NDQsIDB4OGUsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMywgMHgzMCwgMHg2MSwgMHgwYSwgMHhjOCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDQ4LCAweDA0LCAweDAwLCAweDM5LCAweDBhLCAweDMwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4ZjksIDB4MDgsIDB4NDQsIDB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHgyYiwgMHgwOCwgMHg0NCwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwKLQkweGNhLCAweDMwLCAweDAwLCAweDk5LCAweDBjLCAweGQ5LCAweDA4LCAweDQ0LAotCTB4NDIsIDB4MGEsIDB4MDksIDB4MGUsIDB4MDAsIDB4MDEsIDB4MzMsIDB4MTEsCi0JMHg4YywgMHgwMSwgMHhhMywgMHg4MCwgMHgwMCwgMHgwMSwgMHg3YSwgMHgxMCwKLQkweDgwLCAweDA1LCAweGIxLCAweDgwLCAweDA1LCAweGIwLCAweGUwLCAweDE4LAotCTB4MDAsIDB4OTMsIDB4MDAsIDB4ODQsIDB4MDAsIDB4NzksIDB4MDgsIDB4NDQsCi0JMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwgMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwKLQkweDBjLCAweDFiLCAweDA4LCAweDQ0LCAweDg4LCAweDAwLCAweDA0LCAweDE5LAotCTB4OGEsIDB4MDAsIDB4MDAsIDB4OTksIDB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsCi0JMHg0MiwgMHgwYSwgMHgwOSwgMHgwZSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDA0LCAweGIxLCAweDgyLCAweDEwLCAweDAwLCAweGUwLCAweDBiLAotCTB4MDAsIDB4NDMsIDB4MDAsIDB4ODQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwMCwgMHg0MywgMHgwMCwgMHg4NCwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4YTgsIDB4MDAsIDB4NDQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHhkMywgMHgwMCwgMHhjNCwgMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwKLQkweDA0LCAweDYzLCAweDAwLCAweGM0LCAweDA4LCAweGYzLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGZmLCAweDAwLCAweGUyLCAweDhiLCAweDBjLCAweGY5LCAweDA4LCAweDQ0LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHgyYiwgMHgwOCwgMHg0NCwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDhlLCAweDAwLCAweDA0LCAweDE5LCAweDAzLCAweDMwLCAweDYxLCAweDBhLAotCTB4YzgsIDB4MjAsIDB4MDAsIDB4MzksIDB4Y2EsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHg0OCwgMHgwNCwgMHgwMCwgMHgzOSwgMHg0YSwgMHgwNCwgMHgwMCwgMHgzOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDQyLCAweDBhLCAweDA5LCAweDBlLAotCTB4MDUsIDB4YjAsIDB4ZTAsIDB4MTgsIDB4MDAsIDB4MTgsIDB4MDAsIDB4ODQsCi0JMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDQ5LCAweDAwLCAweGM0LCAweDBjLCAweDFiLCAweDA4LCAweDQ0LAotCTB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsCi0JMHg0MiwgMHgwYSwgMHgwOSwgMHgwZSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDA0LCAweGIxLCAweDgyLCAweDEwLCAweDAwLCAweGUwLCAweDBiLAotCTB4MDAsIDB4ODgsIDB4MDAsIDB4ODQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwMCwgMHg4OCwgMHgwMCwgMHg4NCwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4MDAsIDB4MGYsIDB4ZTIsIDB4OGIsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHhjYiwgMHg4YywgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDQ4LCAweGNiLCAweDIwLCAweDAwLCAweDdhLCAweDgwLAotCTB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4ODIsIDB4MGMsIDB4MDksIDB4NmUsCi0JMHgwMywgMHgwOCwgMHgwOSwgMHgwZSwgMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwKLQkweDAwLCAweDAxLCAweDcxLCAweGMyLCAweDAwLCAweDA4LCAweGMyLCAweDFiLAotCTB4MDQsIDB4YjgsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsCi0JMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhjMiwgMHgxYiwKLQkweDA0LCAweDQ4LCAweDAwLCAweGM0LCAweDIwLCAweDA1LCAweGE4LCAweDgwLAotCTB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDAsIDB4MDIsIDB4YzIsIDB4MWIsCi0JMHgwNCwgMHg2OCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDIwLCAweDAzLCAweGE4LCAweDgwLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgwOCwgMHg3OCwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweDAwLCAweDAwLCAweDRhLCAweGNiLAotCTB4MjAsIDB4MDAsIDB4YTgsIDB4MjIsIDB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHhjNCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGIwLCAweDAwLCAweGUyLCAweDhiLCAweDA2LCAweDIwLCAweGE4LCAweDBhLAotCTB4MmQsIDB4MTAsIDB4NjEsIDB4MGEsIDB4ZDEsIDB4MDgsIDB4MDksIDB4MmUsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgwMiwgMHgwYywgMHhmOSwgMHgwOCwgMHg0NCwKLQkweGNkLCAweDEwLCAweDA0LCAweDE5LCAweDBjLCAweDJiLCAweDA4LCAweDQ0LAotCTB4MDMsIDB4MDgsIDB4MDksIDB4MGUsIDB4OWEsIDB4MjUsIDB4YjEsIDB4NjAsCi0JMHhhMiwgMHgwZSwgMHgwOSwgMHg2ZSwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZiwKLQkweDAwLCAweDAxLCAweDcxLCAweDgyLCAweDIwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4Y2IsIDB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMywgMHgwMCwgMHgwOSwgMHgwZiwgMHgwMCwgMHgwMSwgMHg3MSwgMHhjMiwKLQkweDAwLCAweDA4LCAweGMyLCAweDFiLCAweDBjLCAweDJhLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgwMCwgMHgwMSwgMHhjMiwgMHgxYiwgMHgwYywgMHgxYSwgMHgwMCwgMHhjNCwKLQkweDIwLCAweDA1LCAweGE4LCAweDgwLCAweDIwLCAweDAxLCAweGYwLCAweDgwLAotCTB4MDAsIDB4MDIsIDB4YzIsIDB4MWIsIDB4MGMsIDB4M2EsIDB4MDAsIDB4YzQsCi0JMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwgMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAzLCAweGE4LCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDExLAotCTB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsIDB4MDQsIDB4YWEsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwgMHgwNSwgMHhiMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAwLCAweDRhLCAweGNiLCAweDIwLCAweDAwLCAweGE4LCAweDIyLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHhjNywgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMCwgMHgwMCwgMHhlMiwgMHg4YiwKLQkweDA2LCAweDIwLCAweGE4LCAweDBhLCAweDJmLCAweDEwLCAweDYxLCAweDBhLAotCTB4ZjEsIDB4MDgsIDB4MDksIDB4MmUsIDB4MDAsIDB4MDEsIDB4YTgsIDB4MDIsCi0JMHgwYywgMHhmOSwgMHgwOCwgMHg0NCwgMHhjZiwgMHgxMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweDJiLCAweDA4LCAweDQ0LCAweDlmLCAweDM1LCAweGIxLCAweDYwLAotCTB4MDMsIDB4MDgsIDB4MDksIDB4MGUsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwKLQkweDgwLCAweDAxLCAweDAwLCAweDgwLCAweGU0LCAweDIwLCAweDcxLCAweDhiLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4OTAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgwMCwgMHgwNSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDA4LCAweDE5LCAweDA0LCAweGQ0LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsIDB4MGQsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAyLCAweDA0LCAweDYxLCAweGE4LCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDIsCi0JMHgwMiwgMHgwMCwgMHgwMCwgMHgwMiwgMHhjMCwgMHg4MCwgMHgwMCwgMHgwOSwKLQkweDIwLCAweDAwLCAweDA5LCAweDQ5LCAweDBmLCAweDMwLCAweDYxLCAweDBhLAotCTB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsIDB4MDAsIDB4MjksIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg4MCwgMHhjOCwgMHgwYSwgMHgwMCwgMHgyOSwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDA0LCAweGIxLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4YzksIDB4MjAsIDB4MDQsIDB4MzksIDB4MDAsIDB4MzksIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDAwLCAweDA0LCAweGIxLCAweDgwLCAweGM5LCAweDIwLCAweDA0LCAweDM5LAotCTB4MDAsIDB4MzksIDB4MDAsIDB4NDQsIDB4MDksIDB4MjAsIDB4MjMsIDB4MGEsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAyLCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4YjksIDB4MDQsIDB4MTQsIDB4MDQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwNiwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhhOSwgMHgwNCwgMHg1NCwKLQkweGM2LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGE5LCAweDAwLCAweDQ0LAotCTB4MDUsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4YTksIDB4MDQsIDB4NTQsCi0JMHhjNSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNywgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGI5LCAweDA0LCAweDU0LAotCTB4Y2MsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YjksIDB4MDAsIDB4NDQsCi0JMHgwZSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhiOSwgMHgwNCwgMHg1NCwKLQkweGNlLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4ODIsIDB4MGQsIDB4MDksIDB4MmUsIDB4ODAsIDB4NDAsIDB4MDksIDB4Y2YsCi0JMHgwMCwgMHhkZiwgMHg3MSwgMHg4YiwgMHg4MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAyLCAweGMxLCAweDAwLCAweDIyLCAweDAzLCAweGMxLCAweDAwLCAweDIyLAotCTB4MDAsIDB4MDEsIDB4NjUsIDB4ODAsIDB4ZDIsIDB4MDUsIDB4NjUsIDB4ODIsCi0JMHg0MCwgMHgyMSwgMHgwMCwgMHg4MCwgMHhkMywgMHgwMywgMHgwMCwgMHg4MiwKLQkweDQwLCAweDMzLCAweDAwLCAweDgwLCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsCi0JMHgwOCwgMHhkOSwgMHgwMCwgMHhjNCwgMHg5MywgMHgwMCwgMHgwMSwgMHg0ZiwKLQkweGU3LCAweDAwLCAweDAxLCAweDZmLCAweDBmLCAweDMwLCAweDYxLCAweDBhLAotCTB4MjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDIsIDB4MDAsIDB4NjEsIDB4MDIsCi0JMHgwMiwgMHgwMCwgMHgwMCwgMHgwMywgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDIwLCAweDAwLCAweDA5LCAweDQ5LCAweDAwLCAweDA0LCAweDYzLCAweDgwLAotCTB4MDQsIDB4ZDksIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4MGUsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHgwYiwgMHgwNCwgMHgxNCwgMHgwZSwgMHgxMCwgMHg2MSwgMHgwYSwKLQkweDA0LCAweDJiLCAweDAwLCAweDQ0LCAweDBjLCAweDEwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4MmIsIDB4MDQsIDB4NTQsIDB4MGMsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMCwgMHgxMCwgMHhhOCwgMHgxOCwKLQkweGEwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAxLCAweDcxLCAweDgyLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4MDAsIDB4MDQsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg4MywgMHg4MCwgMHgyMCwgMHgwNCwgMHg3YSwgMHg4MCwKLQkweDIwLCAweDAxLCAweDMzLCAweDgwLCAweDAwLCAweDAwLCAweDgzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4MjAsIDB4MDMsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgxNiwgMHhjZSwgMHgxMSwgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgaW1hX2FkcGNtX2NhcHR1cmVbXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzAsIDB4MDAsIDB4NDQsIDB4MDgsIDB4ZDAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHhmMCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwYywgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwgMHhjMCwgMHhhMCwgMHgwNCwgMHgxOSwKLQkweGMyLCAweGEwLCAweDA0LCAweDE5LCAweDg5LCAweDAwLCAweDcxLCAweDhiLAotCTB4YzgsIDB4MzAsIDB4MDQsIDB4MTksIDB4NzEsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjZCwgMHgwMCwgMHgwNCwgMHgxOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDgwLCAweDAwLCAweDcxLCAweDhiLCAweGNiLCAweDIwLCAweDA0LCAweDE5LAotCTB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzQsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHg0NywgMHgwMCwgMHg1MSwgMHg4YiwgMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweGMxLCAweGEwLCAweDA0LCAweDE5LAotCTB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsIDB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwgMHgwYywgMHg0MCwgMHgwMCwgMHgxNCwKLQkweDAwLCAweDYwLCAweDAwLCAweDE0LCAweDAwLCAweDA0LCAweDYxLCAweGE4LAotCTB4MDIsIDB4MDQsIDB4NjEsIDB4YTgsIDB4MGMsIDB4NjAsIDB4MDQsIDB4MjQsCi0JMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDM5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDgsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MDUsIDB4YjAsIDB4ZTgsIDB4MTgsCi0JMHgwYywgMHhjMCwgMHgwNCwgMHg1NCwgMHhjOCwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDA5LCAweDA0LCAweDAwLCAweGE4LCAweDBiLCAweDA0LCAweDAwLCAweGE4LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDksIDB4MDQsIDB4NjEsIDB4YTgsCi0JMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg2MSwgMHhhOCwKLQkweGNhLCAweDAwLCAweDA0LCAweDE5LCAweDBkLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDQwLCAweDQwLCAweDA5LCAweGVmLCAweGZmLCAweDIwLCAweDA5LCAweGNmLAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4YTEsIDB4NTAsIDB4MDMsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwNCwgMHhhMywgMHg4MCwgMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwKLQkweDBjLCAweDEyLCAweDA0LCAweDU0LCAweDA4LCAweDEyLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDMsIDB4ODAsIDB4YzAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweGMwLCAweDAwLCAweDAwLCAweDk5LAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwZCwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDQyLCAweDAwLCAweGM0LCAweDAwLCAweDBlLCAweDQyLCAweDhiLAotCTB4MDgsIDB4NTIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MWUsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhlMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHg4ZSwgMHg0MiwgMHg4YiwKLQkweDA4LCAweGQyLCAweDAwLCAweGM0LCAweDAwLCAweDllLCAweDQyLCAweDhiLAotCTB4MDQsIDB4ZjIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4YmUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHhmMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwNCwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDExLCAweDAwLCAweGM0LCAweDAwLCAweDI0LCAweDQyLCAweDhiLAotCTB4MGMsIDB4NjEsIDB4MDAsIDB4YzQsIDB4MDAsIDB4NTUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHhjNCwgMHgwMCwgMHgzZiwgMHg0MiwgMHg4YiwKLQkweDBjLCAweDAxLCAweDAwLCAweGM0LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MjAsIDB4MDEsIDB4NzksIDB4ODAsIDB4MDAsIDB4MzAsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHg2MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweDQwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgwOCwgMHhjMiwgMHgwMCwgMHhjNCwgMHgwZiwgMHhmMiwgMHhhOCwgMHhhOCwKLQkweDIwLCAweDAwLCAweGIxLCAweDg4LCAweDAwLCAweDAwLCAweDQxLCAweDAyLAotCTB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksIDB4YzAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHhhMywgMHhhOCwKLQkweDRkLCAweGYyLCAweDAwLCAweDM5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweGZmLCAweDAwLCAweGUyLCAweGFiLAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NjEsIDB4MTAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDIwLCAweGUyLCAweGFiLCAweDYwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsIDB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDAxLCAweGEwLCAweDQxLCAweDBhLAotCTB4MDAsIDB4MTEsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHhjMSwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDBjLCAweDQxLCAweDAwLCAweDg0LAotCTB4ODksIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzgsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHg5NywgMHgwMCwgMHg3MSwgMHg4YiwgMHhjZCwgMHgwMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAxLCAweGIxLCAweDgwLCAweDgwLCAweDAwLCAweDA0LCAweDE5LAotCTB4ODIsIDB4MDAsIDB4MDQsIDB4MTksIDB4YzEsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjMywgMHgyMCwgMHgwNCwgMHgxOSwgMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweGNkLCAweDEwLCAweDA0LCAweDE5LCAweGNmLCAweDEwLCAweDA0LCAweDE5LAotCTB4YjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4NiwgMHgwMCwgMHgwNCwgMHgxOSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgwMywgMHgwMiwgMHgwNCwgMHg0OSwgMHgwOCwgMHg0MSwgMHgwMCwgMHgxNCwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweDAwLCAweDAwLCAweDYzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MTksIDB4MDMsIDB4MDAsIDB4MDQsIDB4NDksCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDE5LCAweDAwLCAweDIwLCAweGUyLCAweDhiLAotCTB4MDAsIDB4YzEsIDB4MDAsIDB4ODQsIDB4NDcsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwKLQkweGMxLCAweGEwLCAweDA0LCAweDE5LCAweDAwLCAweGUxLCAweDAwLCAweDQ0LAotCTB4YmQsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMSwgMHhhMCwgMHgwNCwgMHgxOSwKLQkweDAzLCAweDAwLCAweDA0LCAweDQ5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MjAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsCi0JMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwYywgMHg4MywgMHgwMCwgMHhjNCwKLQkweDBjLCAweDc4LCAweDA4LCAweDQ0LCAweDA0LCAweDVhLCAweDA4LCAweDQ0LAotCTB4YjIsIDB4MDAsIDB4MDksIDB4NGYsIDB4MTAsIDB4NDIsIDB4MDksIDB4OGUsCi0JMHgwNSwgMHhiMCwgMHhlMCwgMHgxOCwgMHgwNCwgMHgyMywgMHgwMCwgMHg4NCwKLQkweDBjLCAweDAxLCAweDAwLCAweDExLCAweDA4LCAweDA1LCAweDYxLCAweDEwLAotCTB4MDAsIDB4NDksIDB4MDgsIDB4NDQsIDB4MDAsIDB4NDgsIDB4MDgsIDB4NDQsCi0JMHhiMiwgMHgwMCwgMHgwOSwgMHg0ZiwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDAwLCAweDAwLCAweDgyLCAweDBjLCAweDAxLCAweDMzLCAweDEwLAotCTB4MjgsIDB4MDEsIDB4YTMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4N2EsIDB4ODAsCi0JMHg4YywgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDIwLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDgzLCAweDAwLCAweGM0LAotCTB4MDUsIDB4YjAsIDB4YzgsIDB4MTgsIDB4MDgsIDB4NDMsIDB4MDAsIDB4YzQsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwYywgMHgzOCwgMHgwMCwgMHhjNCwKLQkweDA4LCAweDg4LCAweDAwLCAweDQ0LCAweDBjLCAweDc4LCAweDA4LCAweDQ0LAotCTB4MDQsIDB4NWEsIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDAsIDB4YTMsIDB4MTgsCi0JMHg4MCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg2MSwgMHhhOCwKLQkweGMzLCAweDIwLCAweDAwLCAweDM5LCAweGMzLCAweDMwLCAweDA0LCAweDE5LAotCTB4MGYsIDB4MTAsIDB4NjEsIDB4MGEsIDB4Y2EsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwOSwgMHgwNCwgMHg0MSwgMHhhOCwgMHhlMSwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweGQxLCAweDAwLCAweDA5LCAweDRmLCAweDAwLCAweDA0LCAweDYxLCAweDAyLAotCTB4MDgsIDB4NjMsIDB4MDAsIDB4NDQsIDB4MDMsIDB4MzAsIDB4NDEsIDB4MGEsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHgzOSwgMHhhMywgMHgwMCwgMHgwOSwgMHg0ZiwKLQkweDAwLCAweDA0LCAweDYxLCAweDAyLCAweDAwLCAweDQ4LCAweDA4LCAweDQ0LAotCTB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHhjNCwgMHgwYywgMHg3OCwgMHgwOCwgMHg0NCwKLQkweDA0LCAweDVhLCAweDA4LCAweDQ0LCAweGIyLCAweDAwLCAweDA5LCAweDBmLAotCTB4MTAsIDB4NDAsIDB4MDksIDB4OGUsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NWIsCi0JMHgyMCwgMHgwNCwgMHhiMSwgMHg4MCwgMHgwMiwgMHgwMCwgMHg2MSwgMHg1YiwKLQkweDg4LCAweDAzLCAweDdhLCAweDgwLCAweGFjLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDUsIDB4YjAsIDB4ZTAsIDB4MTgsIDB4MDAsIDB4ZDMsIDB4MDAsIDB4ODQsCi0JMHgwMCwgMHg0OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHg0OCwgMHgwOCwgMHg0NCwKLQkweGIyLCAweDAwLCAweDA5LCAweDBmLCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHhjNCwgMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwKLQkweDBjLCAweDE4LCAweDAwLCAweGM0LCAweDAxLCAweDMwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4MzgsIDB4MDAsIDB4YzQsIDB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsCi0JMHgwYywgMHg3OCwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgxOCwKLQkweDIwLCAweDA1LCAweGIxLCAweDgwLCAweDAwLCAweDAwLCAweDY4LCAweGNiLAotCTB4ODAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGQsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg0MSwgMHhhOCwKLQkweDA5LCAweDA0LCAweDQxLCAweGE4LCAweGUxLCAweDIwLCAweDAwLCAweDM5LAotCTB4MDgsIDB4MzgsIDB4MDAsIDB4NDQsIDB4MDMsIDB4MzAsIDB4NDEsIDB4MGEsCi0JMHgyMCwgMHgwNCwgMHhiMSwgMHg4MCwgMHgwMCwgMHg0OCwgMHgwOCwgMHg0NCwKLQkweDA4LCAweDg4LCAweDAwLCAweDQ0LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzIsIDB4MzAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YjgsIDB4MDAsIDB4ZDQsCi0JMHgwZiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwZCwgMHgzMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweGI4LCAweDAwLCAweGM0LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsIDB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDQxLCAweDA0LCAweDA0LCAweDE5LCAweDAyLCAweDA0LCAweDYxLCAweDAyLAotCTB4NDMsIDB4MDQsIDB4MDQsIDB4MzksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgyMCwgMHgwMCwgMHgwOSwgMHg0OSwgMHgwMCwgMHg1OSwgMHgwMCwgMHg0NCwKLQkweDkzLCAweDAwLCAweDAxLCAweDRmLCAweGU3LCAweDAwLCAweDAxLCAweDZmLAotCTB4MGQsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MjAsIDB4MDAsIDB4NjEsIDB4ODgsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMywgMHgwMCwgMHg4MiwKLQkweGNkLCAweDMwLCAweDAwLCAweDA5LCAweDIwLCAweDAwLCAweDA5LCAweDQ5LAotCTB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHg1OCwgMHgwMCwgMHg4NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4OTAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgxMiwgMHgwNCwgMHgwOSwgMHg2ZSwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZSwKLQkweDAwLCAweDAxLCAweDcxLCAweDgyLCAweDIwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4Y2IsIDB4ODAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMSwgMHhlMCwgMHg2MCwgMHgwYywgMHhkOCwgMHgwNCwgMHgxNCwKLQkweDAwLCAweDAxLCAweGViLCAweDgwLCAweDQwLCAweDAwLCAweDUyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4NzksIDB4ODAsIDB4YzAsIDB4MDEsIDB4NzEsIDB4YzIsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwOCwgMHgwYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDgwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwYywgMHgyYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDEwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwOCwgMHgzYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDIwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4YzAsIDB4MDMsIDB4ZjAsIDB4ODIsCi0JMHgyMCwgMHgwMCwgMHhhMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgxMSwKLQkweDQwLCAweDAwLCAweGMyLCAweDhiLCAweDAwLCAweGFhLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4ZTksIDB4ODAsIDB4MDUsIDB4YjAsIDB4YTgsIDB4MTgsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgyMiwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGYwLCAweDAwLCAweGUyLCAweDFiLCAweDA2LCAweDIwLCAweGE4LCAweDBhLAotCTB4MmQsIDB4MTAsIDB4NjEsIDB4MGEsIDB4ZDEsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgwMiwgMHgwZSwgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweGJhLCAweDA0LCAweDE0LCAweDBlLCAweDEwLCAweDYxLCAweDBhLAotCTB4MDQsIDB4NGEsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHg0YSwgMHgwNCwgMHg1NCwgMHgwYywgMHgxMCwgMHg2MSwgMHgwYSwKLQkweGQwLCAweDAxLCAweDAwLCAweDgyLCAweDAwLCAweDEwLCAweGE4LCAweDE4LAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsCi0JMHgwMywgMHgwMCwgMHgwOSwgMHgwZSwgMHg5YSwgMHgwMSwgMHgwMCwgMHg2MCwKLQkweDMyLCAweDAwLCAweDA5LCAweDJlLCAweDAwLCAweDAwLCAweDAwLCAweDQ2LAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwgMHg4MCwgMHgyNCwgMHhiMSwgMHhjMCwKLQkweDAwLCAweDMxLCAweGUwLCAweDYwLCAweDBjLCAweGNhLCAweDA0LCAweDE0LAotCTB4MDAsIDB4MDEsIDB4ZWIsIDB4ODAsIDB4NDAsIDB4MDAsIDB4NTIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHg3OSwgMHg4MCwgMHhjMCwgMHgwMSwgMHg3MSwgMHhjMiwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweGRhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4ODAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDBjLCAweGZhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MTAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweDI5LCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MjAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwgMHgwMywgMHhmMCwgMHg4MiwKLQkweDIwLCAweDAwLCAweGEwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDExLAotCTB4NDAsIDB4MDAsIDB4YzIsIDB4OGIsIDB4MDAsIDB4MzksIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwgMHgwNSwgMHhiMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAxLCAweGE4LCAweDIyLCAweGQwLCAweDAxLCAweDAwLCAweDgyLAotCTB4YjAsIDB4MDAsIDB4ZTIsIDB4MWIsIDB4MDYsIDB4MjAsIDB4YTgsIDB4MGEsCi0JMHgyZiwgMHgxMCwgMHg2MSwgMHgwYSwgMHhmMSwgMHgwMCwgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAxLCAweGE4LCAweDAyLCAweDBlLCAweDEwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4YTksIDB4MDQsIDB4MTQsIDB4MGUsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHgwNCwgMHg5OSwgMHgwMCwgMHg0NCwgMHgwYywgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDk5LCAweDA0LCAweDU0LCAweDBjLCAweDEwLCAweDYxLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4MTAsIDB4YTgsIDB4MTgsCi0JMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMSwgMHg3MSwgMHg4MiwKLQkweDlmLCAweDAxLCAweDAwLCAweDYwLCAweDAwLCAweDAwLCAweDAwLCAweDQ2LAotCTB4MDAsIDB4MDAsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4ODMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHgyMCwgMHgwNywgMHgzMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDgzLCAweDgwLCAweDIwLCAweDA0LCAweDdhLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsCi0JMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwNCwgMHgxYiwgMHgwNCwgMHgxNCwKLQkweDAxLCAweDAwLCAweDYxLCAweDBhLCAweDAzLCAweDAwLCAweDQ4LCAweDBhLAotCTB4MGMsIDB4NzksIDB4MDQsIDB4NTQsIDB4YzMsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHhjOSwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweGM5LCAweDA0LCAweDU0LCAweGM4LCAweDAwLCAweDA0LCAweDE5LAotCTB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDksIDB4MDAsIDB4NDgsIDB4MGEsCi0JMHgwYywgMHhlOSwgMHgwNCwgMHg1NCwgMHhjOSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA0LCAweGQ5LCAweDAwLCAweDQ0LCAweDBiLCAweDAwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4ZDksIDB4MDQsIDB4NTQsIDB4Y2IsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwNiwgMHgwMCwgMHg0OCwgMHgwYSwKLQkweDBjLCAweGY5LCAweDA0LCAweDU0LCAweGM2LCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4MGIsIDB4MDAsIDB4NDQsIDB4MDUsIDB4MDAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHgwYiwgMHgwNCwgMHg1NCwgMHhjNSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA3LCAweDAwLCAweDYxLCAweDBhLCAweDBjLCAweDAwLCAweDQ4LCAweDBhLAotCTB4MGMsIDB4MmIsIDB4MDQsIDB4NTQsIDB4Y2MsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHgxYiwgMHgwMCwgMHg0NCwgMHgwZSwgMHgwMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDFiLCAweDA0LCAweDU0LCAweGNlLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4OTIsIDB4MjAsIDB4NzEsIDB4OGIsCi0JMHhhNiwgMHhjNSwgMHgxMSwgMHgwMAotfTsKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9zYl9taXhlci5jIGIvc291bmQvaXNhL3NiL3NiX21peGVyLmMKaW5kZXggOTFkMTQyMi4uNzNkNDU3MiAxMDA2NDQKLS0tIGEvc291bmQvaXNhL3NiL3NiX21peGVyLmMKKysrIGIvc291bmQvaXNhL3NiL3NiX21peGVyLmMKQEAgLTkyNSw3ICs5MjUsNyBAQAogc3RhdGljIHZvaWQgc2F2ZV9taXhlcihzdHJ1Y3Qgc25kX3NiICpjaGlwLCB1bnNpZ25lZCBjaGFyICpyZWdzLCBpbnQgbnVtX3JlZ3MpCiB7CiAJdW5zaWduZWQgY2hhciAqdmFsID0gY2hpcC0+c2F2ZWRfcmVnczsKLQlzbmRfYXNzZXJ0KG51bV9yZWdzID4gQVJSQVlfU0laRShjaGlwLT5zYXZlZF9yZWdzKSwgcmV0dXJuKTsKKwlzbmRfYXNzZXJ0KG51bV9yZWdzIDw9IEFSUkFZX1NJWkUoY2hpcC0+c2F2ZWRfcmVncyksIHJldHVybik7CiAJZm9yICg7IG51bV9yZWdzOyBudW1fcmVncy0tKQogCQkqdmFsKysgPSBzbmRfc2JtaXhlcl9yZWFkKGNoaXAsICpyZWdzKyspOwogfQpAQCAtOTMzLDcgKzkzMyw3IEBACiBzdGF0aWMgdm9pZCByZXN0b3JlX21peGVyKHN0cnVjdCBzbmRfc2IgKmNoaXAsIHVuc2lnbmVkIGNoYXIgKnJlZ3MsIGludCBudW1fcmVncykKIHsKIAl1bnNpZ25lZCBjaGFyICp2YWwgPSBjaGlwLT5zYXZlZF9yZWdzOwotCXNuZF9hc3NlcnQobnVtX3JlZ3MgPiBBUlJBWV9TSVpFKGNoaXAtPnNhdmVkX3JlZ3MpLCByZXR1cm4pOworCXNuZF9hc3NlcnQobnVtX3JlZ3MgPD0gQVJSQVlfU0laRShjaGlwLT5zYXZlZF9yZWdzKSwgcmV0dXJuKTsKIAlmb3IgKDsgbnVtX3JlZ3M7IG51bV9yZWdzLS0pCiAJCXNuZF9zYm1peGVyX3dyaXRlKGNoaXAsICpyZWdzKyssICp2YWwrKyk7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evd2F2ZWZyb250L3dhdmVmcm9udF9zeW50aC5jIGIvc291bmQvaXNhL3dhdmVmcm9udC93YXZlZnJvbnRfc3ludGguYwppbmRleCA5NWVlY2ExLi4wYmI5YjkyIDEwMDY0NAotLS0gYS9zb3VuZC9pc2Evd2F2ZWZyb250L3dhdmVmcm9udF9zeW50aC5jCisrKyBiL3NvdW5kL2lzYS93YXZlZnJvbnQvd2F2ZWZyb250X3N5bnRoLmMKQEAgLTE5MzksNyArMTkzOSw3IEBACiB3YXZlZnJvbnRfZG93bmxvYWRfZmlybXdhcmUgKHNuZF93YXZlZnJvbnRfdCAqZGV2LCBjaGFyICpwYXRoKQogCiB7Ci0JdW5zaWduZWQgY2hhciAqYnVmOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZjsKIAlpbnQgbGVuLCBlcnI7CiAJaW50IHNlY3Rpb25fY250X2Rvd25sb2FkZWQgPSAwOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZmlybXdhcmU7CmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL0tjb25maWcgYi9zb3VuZC9taXBzL0tjb25maWcKaW5kZXggNTMxZjhiYS4uYTk4MjNmYSAxMDA2NDQKLS0tIGEvc291bmQvbWlwcy9LY29uZmlnCisrKyBiL3NvdW5kL21pcHMvS2NvbmZpZwpAQCAtMSwxNSArMSwzNCBAQAogIyBBTFNBIE1JUFMgZHJpdmVycwogCi1tZW51ICJBTFNBIE1JUFMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBNSVBTCittZW51Y29uZmlnIFNORF9NSVBTCisJYm9vbCAiTUlQUyBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gTUlQUworCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgb2YgTUlQUyBhcmNoaXRlY3R1cmVzLgorCitpZiBTTkRfTUlQUworCitjb25maWcgU05EX1NHSV9PMgorCXRyaXN0YXRlICJTR0kgTzIgQXVkaW8iCisJZGVwZW5kcyBvbiBTR0lfSVAzMgorICAgICAgICBoZWxwCisgICAgICAgICAgICAgICAgU291bmQgc3VwcG9ydCBmb3IgdGhlIFNHSSBPMiBXb3Jrc3RhdGlvbi4gCisKK2NvbmZpZyBTTkRfU0dJX0hBTDIKKyAgICAgICAgdHJpc3RhdGUgIlNHSSBIQUwyIEF1ZGlvIgorICAgICAgICBkZXBlbmRzIG9uIFNHSV9IQVNfSEFMMgorICAgICAgICBoZWxwCisgICAgICAgICAgICAgICAgU291bmQgc3VwcG9ydCBmb3IgdGhlIFNHSSBJbmR5IGFuZCBJbmRpZ28yIFdvcmtzdGF0aW9uLgorCiAKIGNvbmZpZyBTTkRfQVUxWDAwCiAJdHJpc3RhdGUgIkF1MXgwMCBBQzk3IFBvcnQgRHJpdmVyIgotCWRlcGVuZHMgb24gKFNPQ19BVTEwMDAgfHwgU09DX0FVMTEwMCB8fCBTT0NfQVUxNTAwKSAmJiBTTkQKKwlkZXBlbmRzIG9uIFNPQ19BVTEwMDAgfHwgU09DX0FVMTEwMCB8fCBTT0NfQVUxNTAwCiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBBTFNBIFNvdW5kIGRyaXZlciBmb3IgdGhlIEF1MXgwMCdzIEFDOTcgcG9ydC4KIAotZW5kbWVudQorZW5kaWYJIyBTTkRfTUlQUwogCmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL01ha2VmaWxlIGIvc291bmQvbWlwcy9NYWtlZmlsZQppbmRleCA0N2FmZWQ5Li44NjFlYzBhIDEwMDY0NAotLS0gYS9zb3VuZC9taXBzL01ha2VmaWxlCisrKyBiL3NvdW5kL21pcHMvTWFrZWZpbGUKQEAgLTMsNiArMywxMCBAQAogIwogCiBzbmQtYXUxeDAwLW9ianMgOj0gYXUxeDAwLm8KK3NuZC1zZ2ktbzItb2JqcyA6PSBzZ2lvMmF1ZGlvLm8gYWQxODQzLm8KK3NuZC1zZ2ktaGFsMi1vYmpzIDo9IGhhbDIubwogCiAjIFRvcGxldmVsIE1vZHVsZSBEZXBlbmRlbmN5CiBvYmotJChDT05GSUdfU05EX0FVMVgwMCkgKz0gc25kLWF1MXgwMC5vCitvYmotJChDT05GSUdfU05EX1NHSV9PMikgKz0gc25kLXNnaS1vMi5vCitvYmotJChDT05GSUdfU05EX1NHSV9IQUwyKSArPSBzbmQtc2dpLWhhbDIubwpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9hZDE4NDMuYyBiL3NvdW5kL21pcHMvYWQxODQzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYyNDUxMAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL21pcHMvYWQxODQzLmMKQEAgLTAsMCArMSw1NjEgQEAKKy8qCisgKiAgIEFEMTg0MyBsb3cgbGV2ZWwgZHJpdmVyCisgKgorICogICBDb3B5cmlnaHQgMjAwMyBWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgtbWlwcy5vcmc+CisgKiAgIENvcHlyaWdodCAyMDA4IFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGFscGhhLmZyYW5rZW4uZGU+CisgKgorICogICBpbnNwaXJlZCBmcm9tIHZ3c25kLmMgKFNHSSBWVyBhdWRpbyBkcml2ZXIpCisgKiAgICAgQ29weXJpZ2h0IDE5OTkgU2lsaWNvbiBHcmFwaGljcywgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9hZDE4NDMuaD4KKworLyoKKyAqIEFEMTg0MyBiaXRmaWVsZCBkZWZpbml0aW9ucy4gIEFsbCBhcmUgbmFtZWQgYXMgaW4gdGhlIEFEMTg0MyBkYXRhCisgKiBzaGVldCwgd2l0aCBhZDE4NDNfIHByZXBlbmRlZCBhbmQgaW5kaXZpZHVhbCBiaXQgbnVtYmVycyByZW1vdmVkLgorICoKKyAqIEUuZy4sIGJpdHMgTFNTMCB0aHJvdWdoIExTUzIgYmVjb21lIGFkMTg0M19MU1MuCisgKgorICogT25seSB0aGUgYml0ZmllbGRzIHdlIG5lZWQgYXJlIGRlZmluZWQuCisgKi8KKworc3RydWN0IGFkMTg0M19iaXRmaWVsZCB7CisJY2hhciByZWc7CisJY2hhciBsb19iaXQ7CisJY2hhciBuYml0czsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkCisJYWQxODQzX1BETk8gICA9IHsgIDAsIDE0LCAgMSB9LAkvKiBDb252ZXJ0ZXIgUG93ZXItRG93biBGbGFnICovCisJYWQxODQzX0lOSVQgICA9IHsgIDAsIDE1LCAgMSB9LAkvKiBDbG9jayBJbml0aWFsaXphdGlvbiBGbGFnICovCisJYWQxODQzX1JJRyAgICA9IHsgIDIsICAwLCAgNCB9LAkvKiBSaWdodCBBREMgSW5wdXQgR2FpbiAqLworCWFkMTg0M19STUdFICAgPSB7ICAyLCAgNCwgIDEgfSwJLyogUmlnaHQgQURDIE1pYyBHYWluIEVuYWJsZSAqLworCWFkMTg0M19SU1MgICAgPSB7ICAyLCAgNSwgIDMgfSwJLyogUmlnaHQgQURDIFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfTElHICAgID0geyAgMiwgIDgsICA0IH0sCS8qIExlZnQgQURDIElucHV0IEdhaW4gKi8KKwlhZDE4NDNfTE1HRSAgID0geyAgMiwgMTIsICAxIH0sCS8qIExlZnQgQURDIE1pYyBHYWluIEVuYWJsZSAqLworCWFkMTg0M19MU1MgICAgPSB7ICAyLCAxMywgIDMgfSwJLyogTGVmdCBBREMgU291cmNlIFNlbGVjdCAqLworCWFkMTg0M19SRDJNICAgPSB7ICAzLCAgMCwgIDUgfSwJLyogUmlnaHQgREFDIDIgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfUkQyTU0gID0geyAgMywgIDcsICAxIH0sCS8qIFJpZ2h0IERBQyAyIE1peCBNdXRlICovCisJYWQxODQzX0xEMk0gICA9IHsgIDMsICA4LCAgNSB9LAkvKiBMZWZ0IERBQyAyIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX0xEMk1NICA9IHsgIDMsIDE1LCAgMSB9LAkvKiBMZWZ0IERBQyAyIE1peCBNdXRlICovCisJYWQxODQzX1JYMU0gICA9IHsgIDQsICAwLCAgNSB9LAkvKiBSaWdodCBBdXggMSBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19SWDFNTSAgPSB7ICA0LCAgNywgIDEgfSwJLyogUmlnaHQgQXV4IDEgTWl4IE11dGUgKi8KKwlhZDE4NDNfTFgxTSAgID0geyAgNCwgIDgsICA1IH0sCS8qIExlZnQgQXV4IDEgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfTFgxTU0gID0geyAgNCwgMTUsICAxIH0sCS8qIExlZnQgQXV4IDEgTWl4IE11dGUgKi8KKwlhZDE4NDNfUlgyTSAgID0geyAgNSwgIDAsICA1IH0sCS8qIFJpZ2h0IEF1eCAyIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX1JYMk1NICA9IHsgIDUsICA3LCAgMSB9LAkvKiBSaWdodCBBdXggMiBNaXggTXV0ZSAqLworCWFkMTg0M19MWDJNICAgPSB7ICA1LCAgOCwgIDUgfSwJLyogTGVmdCBBdXggMiBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19MWDJNTSAgPSB7ICA1LCAxNSwgIDEgfSwJLyogTGVmdCBBdXggMiBNaXggTXV0ZSAqLworCWFkMTg0M19STUNNICAgPSB7ICA3LCAgMCwgIDUgfSwJLyogUmlnaHQgTWljIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX1JNQ01NICA9IHsgIDcsICA3LCAgMSB9LAkvKiBSaWdodCBNaWMgTWl4IE11dGUgKi8KKwlhZDE4NDNfTE1DTSAgID0geyAgNywgIDgsICA1IH0sCS8qIExlZnQgTWljIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX0xNQ01NICA9IHsgIDcsIDE1LCAgMSB9LAkvKiBMZWZ0IE1pYyBNaXggTXV0ZSAqLworCWFkMTg0M19IUE9TICAgPSB7ICA4LCAgNCwgIDEgfSwJLyogSGVhZHBob25lIE91dHB1dCBWb2x0YWdlIFN3aW5nICovCisJYWQxODQzX0hQT00gICA9IHsgIDgsICA1LCAgMSB9LAkvKiBIZWFkcGhvbmUgT3V0cHV0IE11dGUgKi8KKwlhZDE4NDNfTVBPTSAgID0geyAgOCwgIDYsICAxIH0sCS8qIE1vbm8gT3V0cHV0IE11dGUgKi8KKwlhZDE4NDNfUkRBMUcgID0geyAgOSwgIDAsICA2IH0sCS8qIFJpZ2h0IERBQzEgQW5hbG9nL0RpZ2l0YWwgR2FpbiAqLworCWFkMTg0M19SREExR00gPSB7ICA5LCAgNywgIDEgfSwJLyogUmlnaHQgREFDMSBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19MREExRyAgPSB7ICA5LCAgOCwgIDYgfSwJLyogTGVmdCBEQUMxIEFuYWxvZy9EaWdpdGFsIEdhaW4gKi8KKwlhZDE4NDNfTERBMUdNID0geyAgOSwgMTUsICAxIH0sCS8qIExlZnQgREFDMSBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19SREEyRyAgPSB7IDEwLCAgMCwgIDYgfSwJLyogUmlnaHQgREFDMiBBbmFsb2cvRGlnaXRhbCBHYWluICovCisJYWQxODQzX1JEQTJHTSA9IHsgMTAsICA3LCAgMSB9LAkvKiBSaWdodCBEQUMyIEFuYWxvZyBNdXRlICovCisJYWQxODQzX0xEQTJHICA9IHsgMTAsICA4LCAgNiB9LAkvKiBMZWZ0IERBQzIgQW5hbG9nL0RpZ2l0YWwgR2FpbiAqLworCWFkMTg0M19MREEyR00gPSB7IDEwLCAxNSwgIDEgfSwJLyogTGVmdCBEQUMyIEFuYWxvZyBNdXRlICovCisJYWQxODQzX1JEQTFBTSA9IHsgMTEsICA3LCAgMSB9LAkvKiBSaWdodCBEQUMxIERpZ2l0YWwgTXV0ZSAqLworCWFkMTg0M19MREExQU0gPSB7IDExLCAxNSwgIDEgfSwJLyogTGVmdCBEQUMxIERpZ2l0YWwgTXV0ZSAqLworCWFkMTg0M19SREEyQU0gPSB7IDEyLCAgNywgIDEgfSwJLyogUmlnaHQgREFDMiBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfTERBMkFNID0geyAxMiwgMTUsICAxIH0sCS8qIExlZnQgREFDMiBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfQURMQyAgID0geyAxNSwgIDAsICAyIH0sCS8qIEFEQyBMZWZ0IFNhbXBsZSBSYXRlIFNvdXJjZSAqLworCWFkMTg0M19BRFJDICAgPSB7IDE1LCAgMiwgIDIgfSwJLyogQURDIFJpZ2h0IFNhbXBsZSBSYXRlIFNvdXJjZSAqLworCWFkMTg0M19EQTFDICAgPSB7IDE1LCAgOCwgIDIgfSwJLyogREFDMSBTYW1wbGUgUmF0ZSBTb3VyY2UgKi8KKwlhZDE4NDNfREEyQyAgID0geyAxNSwgMTAsICAyIH0sCS8qIERBQzIgU2FtcGxlIFJhdGUgU291cmNlICovCisJYWQxODQzX0MxQyAgICA9IHsgMTcsICAwLCAxNiB9LAkvKiBDbG9jayAxIFNhbXBsZSBSYXRlIFNlbGVjdCAqLworCWFkMTg0M19DMkMgICAgPSB7IDIwLCAgMCwgMTYgfSwJLyogQ2xvY2sgMiBTYW1wbGUgUmF0ZSBTZWxlY3QgKi8KKwlhZDE4NDNfQzNDICAgID0geyAyMywgIDAsIDE2IH0sCS8qIENsb2NrIDMgU2FtcGxlIFJhdGUgU2VsZWN0ICovCisJYWQxODQzX0RBQURMICA9IHsgMjUsICA0LCAgMiB9LAkvKiBEaWdpdGFsIEFEQyBMZWZ0IFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfREFBRFIgID0geyAyNSwgIDYsICAyIH0sCS8qIERpZ2l0YWwgQURDIFJpZ2h0IFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfREFNSVggID0geyAyNSwgMTQsICAxIH0sCS8qIERBQyBEaWdpdGFsIE1peCBFbmFibGUgKi8KKwlhZDE4NDNfRFJTRkxUID0geyAyNSwgMTUsICAxIH0sCS8qIERpZ2l0YWwgUmVhbXBsZXIgRmlsdGVyIE1vZGUgKi8KKwlhZDE4NDNfQURMRiAgID0geyAyNiwgIDAsICAyIH0sIC8qIEFEQyBMZWZ0IENoYW5uZWwgRGF0YSBGb3JtYXQgKi8KKwlhZDE4NDNfQURSRiAgID0geyAyNiwgIDIsICAyIH0sIC8qIEFEQyBSaWdodCBDaGFubmVsIERhdGEgRm9ybWF0ICovCisJYWQxODQzX0FEVExLICA9IHsgMjYsICA0LCAgMSB9LAkvKiBBREMgVHJhbnNtaXQgTG9jayBNb2RlIFNlbGVjdCAqLworCWFkMTg0M19TQ0YgICAgPSB7IDI2LCAgNywgIDEgfSwJLyogU0NMSyBGcmVxdWVuY3kgU2VsZWN0ICovCisJYWQxODQzX0RBMUYgICA9IHsgMjYsICA4LCAgMiB9LAkvKiBEQUMxIERhdGEgRm9ybWF0IFNlbGVjdCAqLworCWFkMTg0M19EQTJGICAgPSB7IDI2LCAxMCwgIDIgfSwJLyogREFDMiBEYXRhIEZvcm1hdCBTZWxlY3QgKi8KKwlhZDE4NDNfREExU00gID0geyAyNiwgMTQsICAxIH0sCS8qIERBQzEgU3RlcmVvL01vbm8gTW9kZSBTZWxlY3QgKi8KKwlhZDE4NDNfREEyU00gID0geyAyNiwgMTUsICAxIH0sCS8qIERBQzIgU3RlcmVvL01vbm8gTW9kZSBTZWxlY3QgKi8KKwlhZDE4NDNfQURMRU4gID0geyAyNywgIDAsICAxIH0sCS8qIEFEQyBMZWZ0IENoYW5uZWwgRW5hYmxlICovCisJYWQxODQzX0FEUkVOICA9IHsgMjcsICAxLCAgMSB9LAkvKiBBREMgUmlnaHQgQ2hhbm5lbCBFbmFibGUgKi8KKwlhZDE4NDNfQUFNRU4gID0geyAyNywgIDQsICAxIH0sCS8qIEFuYWxvZyB0byBBbmFsb2cgTWl4IEVuYWJsZSAqLworCWFkMTg0M19BTkFFTiAgPSB7IDI3LCAgNywgIDEgfSwJLyogQW5hbG9nIENoYW5uZWwgRW5hYmxlICovCisJYWQxODQzX0RBMUVOICA9IHsgMjcsICA4LCAgMSB9LAkvKiBEQUMxIEVuYWJsZSAqLworCWFkMTg0M19EQTJFTiAgPSB7IDI3LCAgOSwgIDEgfSwJLyogREFDMiBFbmFibGUgKi8KKwlhZDE4NDNfRERNRU4gID0geyAyNywgMTIsICAxIH0sCS8qIERBQzIgdG8gREFDMSBNaXggIEVuYWJsZSAqLworCWFkMTg0M19DMUVOICAgPSB7IDI4LCAxMSwgIDEgfSwJLyogQ2xvY2sgR2VuZXJhdG9yIDEgRW5hYmxlICovCisJYWQxODQzX0MyRU4gICA9IHsgMjgsIDEyLCAgMSB9LAkvKiBDbG9jayBHZW5lcmF0b3IgMiBFbmFibGUgKi8KKwlhZDE4NDNfQzNFTiAgID0geyAyOCwgMTMsICAxIH0sCS8qIENsb2NrIEdlbmVyYXRvciAzIEVuYWJsZSAqLworCWFkMTg0M19QRE5JICAgPSB7IDI4LCAxNSwgIDEgfTsJLyogQ29udmVydGVyIFBvd2VyIERvd24gKi8KKworLyoKKyAqIFRoZSB2YXJpb3VzIHJlZ2lzdGVycyBvZiB0aGUgQUQxODQzIHVzZSB0aHJlZSBkaWZmZXJlbnQgZm9ybWF0cyBmb3IKKyAqIHNwZWNpZnlpbmcgZ2Fpbi4gIFRoZSBhZDE4NDNfZ2FpbiBzdHJ1Y3R1cmUgcGFyYW1ldGVyaXplcyB0aGUKKyAqIGZvcm1hdHMuCisgKi8KKworc3RydWN0IGFkMTg0M19nYWluIHsKKwlpbnQJbmVnYXRpdmU7CQkvKiBub256ZXJvIGlmIGdhaW4gaXMgbmVnYXRpdmUuICovCisJY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqbGZpZWxkOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKnJmaWVsZDsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpsbXV0ZTsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpybXV0ZTsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fUkVDTEVWID0geworCS5uZWdhdGl2ZSA9IDAsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MSUcsCisJLnJmaWVsZCAgID0gJmFkMTg0M19SSUcKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX0xJTkUgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xYMU0sCisJLnJmaWVsZCAgID0gJmFkMTg0M19SWDFNLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTFgxTU0sCisJLnJtdXRlICAgID0gJmFkMTg0M19SWDFNTQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fTElORV8yID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MREEyRywKKwkucmZpZWxkICAgPSAmYWQxODQzX1JEQTJHLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTERBMkdNLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUkRBMkdNCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiBhZDE4NDNfZ2Fpbl9NSUMgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xNQ00sCisJLnJmaWVsZCAgID0gJmFkMTg0M19STUNNLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTE1DTU0sCisJLnJtdXRlICAgID0gJmFkMTg0M19STUNNTQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fUENNXzAgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xEQTFHLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUkRBMUcsCisJLmxtdXRlICAgID0gJmFkMTg0M19MREExR00sCisJLnJtdXRlICAgID0gJmFkMTg0M19SREExR00KK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX1BDTV8xID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MRDJNLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUkQyTSwKKwkubG11dGUgICAgPSAmYWQxODQzX0xEMk1NLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUkQyTU0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmFkMTg0M19nYWluW0FEMTg0M19HQUlOX1NJWkVdID0KK3sKKwkmYWQxODQzX2dhaW5fUkVDTEVWLAorCSZhZDE4NDNfZ2Fpbl9MSU5FLAorCSZhZDE4NDNfZ2Fpbl9MSU5FXzIsCisJJmFkMTg0M19nYWluX01JQywKKwkmYWQxODQzX2dhaW5fUENNXzAsCisJJmFkMTg0M19nYWluX1BDTV8xLAorfTsKKworLyogcmVhZCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhbiBBRDE4NDMgYml0ZmllbGQuICovCisKK3N0YXRpYyBpbnQgYWQxODQzX3JlYWRfYml0cyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkJICAgIGNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZpZWxkKQoreworCWludCB3OworCisJdyA9IGFkMTg0My0+cmVhZChhZDE4NDMtPmNoaXAsIGZpZWxkLT5yZWcpOworCXJldHVybiB3ID4+IGZpZWxkLT5sb19iaXQgJiAoKDEgPDwgZmllbGQtPm5iaXRzKSAtIDEpOworfQorCisvKgorICogd3JpdGUgYSBuZXcgdmFsdWUgdG8gYW4gQUQxODQzIGJpdGZpZWxkIGFuZCByZXR1cm4gdGhlIG9sZCB2YWx1ZS4KKyAqLworCitzdGF0aWMgaW50IGFkMTg0M193cml0ZV9iaXRzKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZpZWxkLAorCQkJICAgICBpbnQgbmV3dmFsKQoreworCWludCB3LCBtYXNrLCBvbGR2YWwsIG5ld2JpdHM7CisKKwl3ID0gYWQxODQzLT5yZWFkKGFkMTg0My0+Y2hpcCwgZmllbGQtPnJlZyk7CisJbWFzayA9ICgoMSA8PCBmaWVsZC0+bmJpdHMpIC0gMSkgPDwgZmllbGQtPmxvX2JpdDsKKwlvbGR2YWwgPSAodyAmIG1hc2spID4+IGZpZWxkLT5sb19iaXQ7CisJbmV3Yml0cyA9IChuZXd2YWwgPDwgZmllbGQtPmxvX2JpdCkgJiBtYXNrOworCXcgPSAodyAmIH5tYXNrKSB8IG5ld2JpdHM7CisJYWQxODQzLT53cml0ZShhZDE4NDMtPmNoaXAsIGZpZWxkLT5yZWcsIHcpOworCisJcmV0dXJuIG9sZHZhbDsKK30KKworLyoKKyAqIGFkMTg0M19yZWFkX211bHRpIHJlYWRzIG11bHRpcGxlIGJpdGZpZWxkcyBmcm9tIHRoZSBzYW1lIEFEMTg0MworICogcmVnaXN0ZXIuICBJdCB1c2VzIGEgc2luZ2xlIHJlYWQgY3ljbGUgdG8gZG8gaXQuICAoUmVhZGluZyB0aGUKKyAqIGFkMTg0MyByZXF1aXJlcyAyNTYgYml0IHRpbWVzIGF0IDEyLjI4OCBNSHosIG9yIG5lYXJseSAyMAorICogbWljcm9zZWNvbmRzLikKKyAqCisgKiBDYWxsZWQgbGlrZSB0aGlzLgorICoKKyAqICBhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIG5maWVsZHMsCisgKgkJICAgICAgJmFkMTg0M19GSUVMRDEsICZ2YWwxLAorICoJCSAgICAgICZhZDE4NDNfRklFTEQyLCAmdmFsMiwgLi4uKTsKKyAqLworCitzdGF0aWMgdm9pZCBhZDE4NDNfcmVhZF9tdWx0aShzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgYXJnY291bnQsIC4uLikKK3sKKwl2YV9saXN0IGFwOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZwOworCWludCB3ID0gMCwgbWFzaywgKnZhbHVlLCByZWcgPSAtMTsKKworCXZhX3N0YXJ0KGFwLCBhcmdjb3VudCk7CisJd2hpbGUgKC0tYXJnY291bnQgPj0gMCkgeworCQlmcCA9IHZhX2FyZyhhcCwgY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqKTsKKwkJdmFsdWUgPSB2YV9hcmcoYXAsIGludCAqKTsKKwkJaWYgKHJlZyA9PSAtMSkgeworCQkJcmVnID0gZnAtPnJlZzsKKwkJCXcgPSBhZDE4NDMtPnJlYWQoYWQxODQzLT5jaGlwLCByZWcpOworCQl9CisKKwkJbWFzayA9ICgxIDw8IGZwLT5uYml0cykgLSAxOworCQkqdmFsdWUgPSB3ID4+IGZwLT5sb19iaXQgJiBtYXNrOworCX0KKwl2YV9lbmQoYXApOworfQorCisvKgorICogYWQxODQzX3dyaXRlX211bHRpIHN0b3JlcyBtdWx0aXBsZSBiaXRmaWVsZHMgaW50byB0aGUgc2FtZSBBRDE4NDMKKyAqIHJlZ2lzdGVyLiAgSXQgdXNlcyBvbmUgcmVhZCBhbmQgb25lIHdyaXRlIGN5Y2xlIHRvIGRvIGl0LgorICoKKyAqIENhbGxlZCBsaWtlIHRoaXMuCisgKgorICogIGFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIG5maWVsZHMsCisgKgkJICAgICAgICZhZDE4NDNfRklFTEQxLCB2YWwxLAorICoJCSAgICAgICAmYWQxODQzX0ZJRUxGMiwgdmFsMiwgLi4uKTsKKyAqLworCitzdGF0aWMgdm9pZCBhZDE4NDNfd3JpdGVfbXVsdGkoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGFyZ2NvdW50LCAuLi4pCit7CisJdmFfbGlzdCBhcDsKKwlpbnQgcmVnOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZwOworCWludCB2YWx1ZTsKKwlpbnQgdywgbSwgbWFzaywgYml0czsKKworCW1hc2sgPSAwOworCWJpdHMgPSAwOworCXJlZyA9IC0xOworCisJdmFfc3RhcnQoYXAsIGFyZ2NvdW50KTsKKwl3aGlsZSAoLS1hcmdjb3VudCA+PSAwKSB7CisJCWZwID0gdmFfYXJnKGFwLCBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICopOworCQl2YWx1ZSA9IHZhX2FyZyhhcCwgaW50KTsKKwkJaWYgKHJlZyA9PSAtMSkKKwkJCXJlZyA9IGZwLT5yZWc7CisJCWVsc2UKKwkJCUJVR19PTihyZWcgIT0gZnAtPnJlZyk7CisJCW0gPSAoKDEgPDwgZnAtPm5iaXRzKSAtIDEpIDw8IGZwLT5sb19iaXQ7CisJCW1hc2sgfD0gbTsKKwkJYml0cyB8PSAodmFsdWUgPDwgZnAtPmxvX2JpdCkgJiBtOworCX0KKwl2YV9lbmQoYXApOworCisJaWYgKH5tYXNrICYgMHhGRkZGKQorCQl3ID0gYWQxODQzLT5yZWFkKGFkMTg0My0+Y2hpcCwgcmVnKTsKKwllbHNlCisJCXcgPSAwOworCXcgPSAodyAmIH5tYXNrKSB8IGJpdHM7CisJYWQxODQzLT53cml0ZShhZDE4NDMtPmNoaXAsIHJlZywgdyk7Cit9CisKK2ludCBhZDE4NDNfZ2V0X2dhaW5fbWF4KHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBpZCkKK3sKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmdwID0gYWQxODQzX2dhaW5baWRdOworCWludCByZXQ7CisKKwlyZXQgPSAoMSA8PCBncC0+bGZpZWxkLT5uYml0cyk7CisJaWYgKCFncC0+bG11dGUpCisJCXJldCAtPSAxOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBhZDE4NDNfZ2V0X2dhaW4gcmVhZHMgdGhlIHNwZWNpZmllZCByZWdpc3RlciBhbmQgZXh0cmFjdHMgdGhlIGdhaW4gdmFsdWUKKyAqIHVzaW5nIHRoZSBzdXBwbGllZCBnYWluIHR5cGUuCisgKi8KKworaW50IGFkMTg0M19nZXRfZ2FpbihzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQpCit7CisJaW50IGxnLCByZywgbG0sIHJtOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiAqZ3AgPSBhZDE4NDNfZ2FpbltpZF07CisJdW5zaWduZWQgc2hvcnQgbWFzayA9ICgxIDw8IGdwLT5sZmllbGQtPm5iaXRzKSAtIDE7CisKKwlhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIDIsIGdwLT5sZmllbGQsICZsZywgZ3AtPnJmaWVsZCwgJnJnKTsKKwlpZiAoZ3AtPm5lZ2F0aXZlKSB7CisJCWxnID0gbWFzayAtIGxnOworCQlyZyA9IG1hc2sgLSByZzsKKwl9CisJaWYgKGdwLT5sbXV0ZSkgeworCQlhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIDIsIGdwLT5sbXV0ZSwgJmxtLCBncC0+cm11dGUsICZybSk7CisJCWlmIChsbSkKKwkJCWxnID0gMDsKKwkJaWYgKHJtKQorCQkJcmcgPSAwOworCX0KKwlyZXR1cm4gbGcgPDwgMCB8IHJnIDw8IDg7Cit9CisKKy8qCisgKiBTZXQgYW4gYXVkaW8gY2hhbm5lbCdzIGdhaW4uCisgKgorICogUmV0dXJucyB0aGUgbmV3IGdhaW4sIHdoaWNoIG1heSBiZSBsb3dlciB0aGFuIHRoZSBvbGQgZ2Fpbi4KKyAqLworCitpbnQgYWQxODQzX3NldF9nYWluKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBpZCwgaW50IG5ld3ZhbCkKK3sKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmdwID0gYWQxODQzX2dhaW5baWRdOworCXVuc2lnbmVkIHNob3J0IG1hc2sgPSAoMSA8PCBncC0+bGZpZWxkLT5uYml0cykgLSAxOworCisJaW50IGxnID0gKG5ld3ZhbCA+PiAwKSAmIG1hc2s7CisJaW50IHJnID0gKG5ld3ZhbCA+PiA4KSAmIG1hc2s7CisJaW50IGxtID0gKGxnID09IDApID8gMSA6IDA7CisJaW50IHJtID0gKHJnID09IDApID8gMSA6IDA7CisKKwlpZiAoZ3AtPm5lZ2F0aXZlKSB7CisJCWxnID0gbWFzayAtIGxnOworCQlyZyA9IG1hc2sgLSByZzsKKwl9CisJaWYgKGdwLT5sbXV0ZSkKKwkJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgZ3AtPmxtdXRlLCBsbSwgZ3AtPnJtdXRlLCBybSk7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgZ3AtPmxmaWVsZCwgbGcsIGdwLT5yZmllbGQsIHJnKTsKKwlyZXR1cm4gYWQxODQzX2dldF9nYWluKGFkMTg0MywgaWQpOworfQorCisvKiBSZXR1cm5zIHRoZSBjdXJyZW50IHJlY29yZGluZyBzb3VyY2UgKi8KKworaW50IGFkMTg0M19nZXRfcmVjc3JjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJaW50IHZhbCA9IGFkMTg0M19yZWFkX2JpdHMoYWQxODQzLCAmYWQxODQzX0xTUyk7CisKKwlpZiAodmFsIDwgMCB8fCB2YWwgPiAyKSB7CisJCXZhbCA9IDI7CisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsCisJCQkJICAgJmFkMTg0M19MU1MsIHZhbCwgJmFkMTg0M19SU1MsIHZhbCk7CisJfQorCXJldHVybiB2YWw7Cit9CisKKy8qCisgKiBTZXQgcmVjb3JkaW5nIHNvdXJjZS4KKyAqCisgKiBSZXR1cm5zIG5ld3NyYyBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4KKyAqLworCitpbnQgYWQxODQzX3NldF9yZWNzcmMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IG5ld3NyYykKK3sKKwlpZiAobmV3c3JjIDwgMCB8fCBuZXdzcmMgPiAyKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsICZhZDE4NDNfTFNTLCBuZXdzcmMsICZhZDE4NDNfUlNTLCBuZXdzcmMpOworCXJldHVybiBuZXdzcmM7Cit9CisKKy8qIFNldHVwIGFkMTg0MyBmb3IgRC9BIGNvbnZlcnNpb24uICovCisKK3ZvaWQgYWQxODQzX3NldHVwX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgaWQsCisJCSAgICAgIHVuc2lnbmVkIGludCBmcmFtZXJhdGUsCisJCSAgICAgIHNuZF9wY21fZm9ybWF0X3QgZm10LAorCQkgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMpCit7CisJaW50IGFkX2ZtdCA9IDAsIGFkX21vZGUgPSAwOworCisJc3dpdGNoIChmbXQpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzg6CisJCWFkX2ZtdCA9IDA7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9VODoKKwkJYWRfZm10ID0gMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKKwkJYWRfZm10ID0gMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoKKwkJYWRfZm10ID0gMjsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX0FfTEFXOgorCQlhZF9mbXQgPSAzOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlzd2l0Y2ggKGNoYW5uZWxzKSB7CisJY2FzZSAyOgorCQlhZF9tb2RlID0gMDsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQlhZF9tb2RlID0gMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJaWYgKGlkKSB7CisJCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19DMkMsIGZyYW1lcmF0ZSk7CisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsCisJCQkJICAgJmFkMTg0M19EQTJTTSwgYWRfbW9kZSwKKwkJCQkgICAmYWQxODQzX0RBMkYsIGFkX2ZtdCk7CisJfSBlbHNlIHsKKwkJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0MxQywgZnJhbWVyYXRlKTsKKwkJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwKKwkJCQkgICAmYWQxODQzX0RBMVNNLCBhZF9tb2RlLAorCQkJCSAgICZhZDE4NDNfREExRiwgYWRfZm10KTsKKwl9Cit9CisKK3ZvaWQgYWQxODQzX3NodXRkb3duX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCB1bnNpZ25lZCBpbnQgaWQpCit7CisJaWYgKGlkKQorCQlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfREEyRiwgMSk7CisJZWxzZQorCQlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfREExRiwgMSk7Cit9CisKK3ZvaWQgYWQxODQzX3NldHVwX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJhbWVyYXRlLAorCQkgICAgICBzbmRfcGNtX2Zvcm1hdF90IGZtdCwKKwkJICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzKQoreworCWludCBkYV9mbXQgPSAwOworCisJc3dpdGNoIChmbXQpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzg6CWRhX2ZtdCA9IDA7IGJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9VODoJZGFfZm10ID0gMDsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToJZGFfZm10ID0gMTsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoJZGFfZm10ID0gMjsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX0FfTEFXOglkYV9mbXQgPSAzOyBicmVhazsKKwlkZWZhdWx0OgkJYnJlYWs7CisJfQorCisJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0MzQywgZnJhbWVyYXRlKTsKKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAyLAorCQkJICAgJmFkMTg0M19BRExGLCBkYV9mbXQsICZhZDE4NDNfQURSRiwgZGFfZm10KTsKK30KKwordm9pZCBhZDE4NDNfc2h1dGRvd25fYWRjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJLyogbm90aGluZyB0byBkbyAqLworfQorCisvKgorICogRnVsbHkgaW5pdGlhbGl6ZSB0aGUgYWQxODQzLiAgQXMgZGVzY3JpYmVkIGluIHRoZSBBRDE4NDMgZGF0YQorICogc2hlZXQsIHNlY3Rpb24gIlNUQVJULVVQIFNFUVVFTkNFIi4gIFRoZSBudW1iZXJlZCBjb21tZW50cyBhcmUKKyAqIHN1YnNlY3Rpb24gaGVhZGluZ3MgZnJvbSB0aGUgZGF0YSBzaGVldC4gIFNlZSB0aGUgZGF0YSBzaGVldCwgcGFnZXMKKyAqIDUyLTU0LCBmb3IgbW9yZSBpbmZvLgorICoKKyAqIHJldHVybiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLiAgKi8KKworaW50IGFkMTg0M19pbml0KHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJdW5zaWduZWQgbG9uZyBsYXRlcjsKKworCWlmIChhZDE4NDNfcmVhZF9iaXRzKGFkMTg0MywgJmFkMTg0M19JTklUKSAhPSAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYWQxODQzOiBBRDE4NDMgd29uJ3QgaW5pdGlhbGl6ZVxuIik7CisJCXJldHVybiAtRUlPOworCX0KKworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19TQ0YsIDEpOworCisJLyogNC4gUHV0IHRoZSBjb252ZXJzaW9uIHJlc291cmNlcyBpbnRvIHN0YW5kYnkuICovCisJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX1BETkksIDApOworCWxhdGVyID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoNTAwKTsKKworCXdoaWxlIChhZDE4NDNfcmVhZF9iaXRzKGFkMTg0MywgJmFkMTg0M19QRE5PKSkgeworCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBsYXRlcikpIHsKKwkJCXByaW50ayhLRVJOX0VSUgorCQkJICAgICAgICJhZDE4NDM6IEFEMTg0MyB3b24ndCBwb3dlciB1cFxuIik7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCQlzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUoNSk7CisJfQorCisJLyogNS4gUG93ZXIgdXAgdGhlIGNsb2NrIGdlbmVyYXRvcnMgYW5kIGVuYWJsZSBjbG9jayBvdXRwdXQgcGlucy4gKi8KKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAzLAorCQkJICAgJmFkMTg0M19DMUVOLCAxLAorCQkJICAgJmFkMTg0M19DMkVOLCAxLAorCQkJICAgJmFkMTg0M19DM0VOLCAxKTsKKworCS8qIDYuIENvbmZpZ3VyZSBjb252ZXJzaW9uIHJlc291cmNlcyB3aGlsZSB0aGV5IGFyZSBpbiBzdGFuZGJ5LiAqLworCisJLyogREFDMS8yIHVzZSBjbG9jayAxLzIgYXMgc291cmNlLCBBREMgdXNlcyBjbG9jayAzLiAgQWx3YXlzLiAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDQsCisJCQkgICAmYWQxODQzX0RBMUMsIDEsCisJCQkgICAmYWQxODQzX0RBMkMsIDIsCisJCQkgICAmYWQxODQzX0FETEMsIDMsCisJCQkgICAmYWQxODQzX0FEUkMsIDMpOworCisJLyogNy4gRW5hYmxlIGNvbnZlcnNpb24gcmVzb3VyY2VzLiAqLworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19BRFRMSywgMSk7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgNywKKwkJCSAgICZhZDE4NDNfQU5BRU4sIDEsCisJCQkgICAmYWQxODQzX0FBTUVOLCAxLAorCQkJICAgJmFkMTg0M19EQTFFTiwgMSwKKwkJCSAgICZhZDE4NDNfREEyRU4sIDEsCisJCQkgICAmYWQxODQzX0RETUVOLCAxLAorCQkJICAgJmFkMTg0M19BRExFTiwgMSwKKwkJCSAgICZhZDE4NDNfQURSRU4sIDEpOworCisJLyogOC4gQ29uZmlndXJlIGNvbnZlcnNpb24gcmVzb3VyY2VzIHdoaWxlIHRoZXkgYXJlIGVuYWJsZWQuICovCisKKwkvKiBzZXQgZ2FpbiB0byAwIGZvciBhbGwgY2hhbm5lbHMgKi8KKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9SRUNMRVYsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX0xJTkUsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX0xJTkVfMiwgMCk7CisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fTUlDLCAwKTsKKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9QQ01fMCwgMCk7CisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fUENNXzEsIDApOworCisJLyogVW5tdXRlIGFsbCBjaGFubmVscy4gKi8KKwkvKiBEQUMxICovCisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MREExR00sIDAsICZhZDE4NDNfUkRBMUdNLCAwKTsKKwkvKiBEQUMyICovCisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MREEyR00sIDAsICZhZDE4NDNfUkRBMkdNLCAwKTsKKworCS8qIFNldCBkZWZhdWx0IHJlY29yZGluZyBzb3VyY2UgdG8gTGluZSBJbiBhbmQgc2V0CisJICogbWljIGdhaW4gdG8gKzIwIGRCLgorCSAqLworCWFkMTg0M19zZXRfcmVjc3JjKGFkMTg0MywgMik7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MTUdFLCAxLCAmYWQxODQzX1JNR0UsIDEpOworCisJLyogU2V0IFNwZWFrZXIgT3V0IGxldmVsIHRvICsvLSA0ViBhbmQgdW5tdXRlIGl0LiAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDMsCisJCQkgICAmYWQxODQzX0hQT1MsIDEsCisJCQkgICAmYWQxODQzX0hQT00sIDAsCisJCQkgICAmYWQxODQzX01QT00sIDApOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL2hhbDIuYyBiL3NvdW5kL21pcHMvaGFsMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDk1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9taXBzL2hhbDIuYwpAQCAtMCwwICsxLDk0NyBAQAorLyoKKyAqICBEcml2ZXIgZm9yIEEyIGF1ZGlvIHN5c3RlbSB1c2VkIGluIFNHSSBtYWNoaW5lcworICogIENvcHlyaWdodCAoYykgMjAwOCBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBhbHBoYS5mYW5rZW4uZGU+CisgKgorICogIEJhc2VkIG9uIE9TUyBjb2RlIGZyb20gTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPiwgd2hpY2gKKyAqICB3YXMgYmFzZWQgb24gY29kZSBmcm9tIFVsZiBDYXJsc3NvbgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL3NnaS9ocGMzLmg+CisjaW5jbHVkZSA8YXNtL3NnaS9pcDIyLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS1pbmRpcmVjdC5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKworI2luY2x1ZGUgImhhbDIuaCIKKworc3RhdGljIGludCBpbmRleCA9IFNORFJWX0RFRkFVTFRfSURYMTsgIC8qIEluZGV4IDAtTUFYICovCitzdGF0aWMgY2hhciAqaWQgPSBTTkRSVl9ERUZBVUxUX1NUUjE7ICAgLyogSUQgZm9yIHRoaXMgY2FyZCAqLworCittb2R1bGVfcGFyYW0oaW5kZXgsIGludCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGluZGV4LCAiSW5kZXggdmFsdWUgZm9yIFNHSSBIQUwyIHNvdW5kY2FyZC4iKTsKK21vZHVsZV9wYXJhbShpZCwgY2hhcnAsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpZCwgIklEIHN0cmluZyBmb3IgU0dJIEhBTDIgc291bmRjYXJkLiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIGRyaXZlciBmb3IgU0dJIEhBTDIgYXVkaW8iKTsKK01PRFVMRV9BVVRIT1IoIlRob21hcyBCb2dlbmRvZXJmZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworCisjZGVmaW5lIEgyX0JMT0NLX1NJWkUJMTAyNAorI2RlZmluZSBIMl9CVUZfU0laRQkxNjM4NAorCitzdHJ1Y3QgaGFsMl9wYnVzIHsKKwlzdHJ1Y3QgaHBjM19wYnVzX2RtYWNyZWdzICpwYnVzOworCWludCBwYnVzbnI7CisJdW5zaWduZWQgaW50IGN0cmw7CQkvKiBDdXJyZW50IHN0YXRlIG9mIHBidXMtPnBiZG1hX2N0cmwgKi8KK307CisKK3N0cnVjdCBoYWwyX2Rlc2MgeworCXN0cnVjdCBocGNfZG1hX2Rlc2MgZGVzYzsKKwl1MzIgcGFkOwkJCS8qIHBhZGRpbmcgKi8KK307CisKK3N0cnVjdCBoYWwyX2NvZGVjIHsKKwlzdHJ1Y3Qgc25kX3BjbV9pbmRpcmVjdCBwY21faW5kaXJlY3Q7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisKKwl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJZG1hX2FkZHJfdCBidWZmZXJfZG1hOworCXN0cnVjdCBoYWwyX2Rlc2MgKmRlc2M7CisJZG1hX2FkZHJfdCBkZXNjX2RtYTsKKwlpbnQgZGVzY19jb3VudDsKKwlzdHJ1Y3QgaGFsMl9wYnVzIHBidXM7CisJaW50IHZvaWNlczsJCQkvKiBtb25vL3N0ZXJlbyAqLworCXVuc2lnbmVkIGludCBzYW1wbGVfcmF0ZTsKKwl1bnNpZ25lZCBpbnQgbWFzdGVyOwkJLyogTWFzdGVyIGZyZXF1ZW5jeSAqLworCXVuc2lnbmVkIHNob3J0IG1vZDsJCS8qIE1PRCB2YWx1ZSAqLworCXVuc2lnbmVkIHNob3J0IGluYzsJCS8qIElOQyB2YWx1ZSAqLworfTsKKworI2RlZmluZSBIMl9NSVhfT1VUUFVUX0FUVAkwCisjZGVmaW5lIEgyX01JWF9JTlBVVF9HQUlOCTEKKworc3RydWN0IHNuZF9oYWwyIHsKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CisKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqY3RsX3JlZ3M7CS8qIEhBTDIgY3RsIHJlZ2lzdGVycyAqLworCXN0cnVjdCBoYWwyX2Flc19yZWdzICphZXNfcmVnczsJLyogSEFMMiBhZXMgcmVnaXN0ZXJzICovCisJc3RydWN0IGhhbDJfdm9sX3JlZ3MgKnZvbF9yZWdzOwkvKiBIQUwyIHZvbCByZWdpc3RlcnMgKi8KKwlzdHJ1Y3QgaGFsMl9zeW5fcmVncyAqc3luX3JlZ3M7CS8qIEhBTDIgc3luIHJlZ2lzdGVycyAqLworCisJc3RydWN0IGhhbDJfY29kZWMgZGFjOworCXN0cnVjdCBoYWwyX2NvZGVjIGFkYzsKK307CisKKyNkZWZpbmUgSDJfSU5ESVJFQ1RfV0FJVChyZWdzKQl3aGlsZSAoaGFsMl9yZWFkKCZyZWdzLT5pc3IpICYgSDJfSVNSX1RTVEFUVVMpOworCisjZGVmaW5lIEgyX1JFQURfQUREUihhZGRyKQkoYWRkciB8ICgxPDw3KSkKKyNkZWZpbmUgSDJfV1JJVEVfQUREUihhZGRyKQkoYWRkcikKKworc3RhdGljIGlubGluZSB1MzIgaGFsMl9yZWFkKHUzMiAqcmVnKQoreworCXJldHVybiBfX3Jhd19yZWFkbChyZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaGFsMl93cml0ZSh1MzIgdmFsLCB1MzIgKnJlZykKK3sKKwlfX3Jhd193cml0ZWwodmFsLCByZWcpOworfQorCisKK3N0YXRpYyB1MzIgaGFsMl9pX3JlYWQzMihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyKQoreworCXUzMiByZXQ7CisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKnJlZ3MgPSBoYWwyLT5jdGxfcmVnczsKKworCWhhbDJfd3JpdGUoSDJfUkVBRF9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworCXJldCA9IGhhbDJfcmVhZCgmcmVncy0+aWRyMCkgJiAweGZmZmY7CisJaGFsMl93cml0ZShIMl9SRUFEX0FERFIoYWRkcikgfCAweDEsICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7CisJcmV0IHw9IChoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmKSA8PCAxNjsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBoYWwyX2lfd3JpdGUxNihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyLCB1MTYgdmFsKQoreworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKHZhbCwgJnJlZ3MtPmlkcjApOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjEpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjIpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjMpOworCWhhbDJfd3JpdGUoSDJfV1JJVEVfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX3dyaXRlMzIoc3RydWN0IHNuZF9oYWwyICpoYWwyLCB1MTYgYWRkciwgdTMyIHZhbCkKK3sKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqcmVncyA9IGhhbDItPmN0bF9yZWdzOworCisJaGFsMl93cml0ZSh2YWwgJiAweGZmZmYsICZyZWdzLT5pZHIwKTsKKwloYWwyX3dyaXRlKHZhbCA+PiAxNiwgJnJlZ3MtPmlkcjEpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjIpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjMpOworCWhhbDJfd3JpdGUoSDJfV1JJVEVfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX3NldGJpdDE2KHN0cnVjdCBzbmRfaGFsMiAqaGFsMiwgdTE2IGFkZHIsIHUxNiBiaXQpCit7CisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKnJlZ3MgPSBoYWwyLT5jdGxfcmVnczsKKworCWhhbDJfd3JpdGUoSDJfUkVBRF9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworCWhhbDJfd3JpdGUoKGhhbDJfcmVhZCgmcmVncy0+aWRyMCkgJiAweGZmZmYpIHwgYml0LCAmcmVncy0+aWRyMCk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMSk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMik7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMyk7CisJaGFsMl93cml0ZShIMl9XUklURV9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworfQorCitzdGF0aWMgdm9pZCBoYWwyX2lfY2xlYXJiaXQxNihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyLCB1MTYgYml0KQoreworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKEgyX1JFQURfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKKwloYWwyX3dyaXRlKChoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmKSAmIH5iaXQsICZyZWdzLT5pZHIwKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIxKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIyKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIzKTsKKwloYWwyX3dyaXRlKEgyX1dSSVRFX0FERFIoYWRkciksICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAyOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJc3dpdGNoICgoaW50KWtjb250cm9sLT5wcml2YXRlX3ZhbHVlKSB7CisJY2FzZSBIMl9NSVhfT1VUUFVUX0FUVDoKKwkJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gMzE7CisJCWJyZWFrOworCWNhc2UgSDJfTUlYX0lOUFVUX0dBSU46CisJCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IDE1OworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX2dldChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJdTMyIHRtcDsKKwlpbnQgbCwgcjsKKworCXN3aXRjaCAoKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSkgeworCWNhc2UgSDJfTUlYX09VVFBVVF9BVFQ6CisJCXRtcCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0RBQ19DMik7CisJCWlmICh0bXAgJiBIMklfQzJfTVVURSkgeworCQkJbCA9IDA7CisJCQlyID0gMDsKKwkJfSBlbHNlIHsKKwkJCWwgPSAzMSAtICgodG1wID4+IEgySV9DMl9MX0FUVF9TSElGVCkgJiAzMSk7CisJCQlyID0gMzEgLSAoKHRtcCA+PiBIMklfQzJfUl9BVFRfU0hJRlQpICYgMzEpOworCQl9CisJCWJyZWFrOworCWNhc2UgSDJfTUlYX0lOUFVUX0dBSU46CisJCXRtcCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0FEQ19DMik7CisJCWwgPSAodG1wID4+IEgySV9DMl9MX0dBSU5fU0hJRlQpICYgMTU7CisJCXIgPSAodG1wID4+IEgySV9DMl9SX0dBSU5fU0hJRlQpICYgMTU7CisJCWJyZWFrOworCX0KKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IGw7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSByOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJdTMyIG9sZCwgbmV3OworCWludCBsLCByOworCisJbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOworCXIgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXTsKKworCXN3aXRjaCAoKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSkgeworCWNhc2UgSDJfTUlYX09VVFBVVF9BVFQ6CisJCW9sZCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0RBQ19DMik7CisJCW5ldyA9IG9sZCAmIH4oSDJJX0MyX0xfQVRUX00gfCBIMklfQzJfUl9BVFRfTSB8IEgySV9DMl9NVVRFKTsKKwkJaWYgKGwgfCByKSB7CisJCQlsID0gMzEgLSBsOworCQkJciA9IDMxIC0gcjsKKwkJCW5ldyB8PSAobCA8PCBIMklfQzJfTF9BVFRfU0hJRlQpOworCQkJbmV3IHw9IChyIDw8IEgySV9DMl9SX0FUVF9TSElGVCk7CisJCX0gZWxzZQorCQkJbmV3IHw9IEgySV9DMl9MX0FUVF9NIHwgSDJJX0MyX1JfQVRUX00gfCBIMklfQzJfTVVURTsKKwkJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0RBQ19DMiwgbmV3KTsKKwkJYnJlYWs7CisJY2FzZSBIMl9NSVhfSU5QVVRfR0FJTjoKKwkJb2xkID0gaGFsMl9pX3JlYWQzMihoYWwyLCBIMklfQURDX0MyKTsKKwkJbmV3ID0gb2xkICYgfihIMklfQzJfTF9HQUlOX00gfCBIMklfQzJfUl9HQUlOX00pOworCQluZXcgfD0gKGwgPDwgSDJJX0MyX0xfR0FJTl9TSElGVCk7CisJCW5ldyB8PSAociA8PCBIMklfQzJfUl9HQUlOX1NISUZUKTsKKwkJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0FEQ19DMiwgbmV3KTsKKwkJYnJlYWs7CisJfQorCXJldHVybiBvbGQgIT0gbmV3OworfQorCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgaGFsMl9jdHJsX2hlYWRwaG9uZSBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJIZWFkcGhvbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEgyX01JWF9PVVRQVVRfQVRULAorCS5pbmZvICAgICAgICAgICA9IGhhbDJfZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IGhhbDJfZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gaGFsMl9nYWluX3B1dCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBoYWwyX2N0cmxfbWljIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIk1pYyBDYXB0dXJlIFZvbHVtZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBIMl9NSVhfSU5QVVRfR0FJTiwKKwkuaW5mbyAgICAgICAgICAgPSBoYWwyX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBoYWwyX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IGhhbDJfZ2Fpbl9wdXQsCit9OworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBoYWwyX21peGVyX2NyZWF0ZShzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJaW50IGVycjsKKworCS8qIG11dGUgREFDICovCisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0RBQ19DMiwKKwkJICAgICAgIEgySV9DMl9MX0FUVF9NIHwgSDJJX0MyX1JfQVRUX00gfCBIMklfQzJfTVVURSk7CisJLyogbXV0ZSBBREMgKi8KKwloYWwyX2lfd3JpdGUzMihoYWwyLCBIMklfQURDX0MyLCAwKTsKKworCWVyciA9IHNuZF9jdGxfYWRkKGhhbDItPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmaGFsMl9jdHJsX2hlYWRwaG9uZSwgaGFsMikpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoaGFsMi0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZoYWwyX2N0cmxfbWljLCBoYWwyKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlycXJldHVybl90IGhhbDJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBkZXZfaWQ7CisJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CisKKwkvKiBkZWNpZGUgd2hhdCBjYXVzZWQgdGhpcyBpbnRlcnJ1cHQgKi8KKwlpZiAoaGFsMi0+ZGFjLnBidXMucGJ1cy0+cGJkbWFfY3RybCAmIEhQQzNfUERNQUNUUkxfSU5UKSB7CisJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoaGFsMi0+ZGFjLnN1YnN0cmVhbSk7CisJCXJldCA9IElSUV9IQU5ETEVEOworCX0KKwlpZiAoaGFsMi0+YWRjLnBidXMucGJ1cy0+cGJkbWFfY3RybCAmIEhQQzNfUERNQUNUUkxfSU5UKSB7CisJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoaGFsMi0+YWRjLnN1YnN0cmVhbSk7CisJCXJldCA9IElSUV9IQU5ETEVEOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGhhbDJfY29tcHV0ZV9yYXRlKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJhdGUpCit7CisJdW5zaWduZWQgc2hvcnQgbW9kOworCisJaWYgKDQ0MTAwICUgcmF0ZSA8IDQ4MDAwICUgcmF0ZSkgeworCQltb2QgPSA0ICogNDQxMDAgLyByYXRlOworCQljb2RlYy0+bWFzdGVyID0gNDQxMDA7CisJfSBlbHNlIHsKKwkJbW9kID0gNCAqIDQ4MDAwIC8gcmF0ZTsKKwkJY29kZWMtPm1hc3RlciA9IDQ4MDAwOworCX0KKworCWNvZGVjLT5pbmMgPSA0OworCWNvZGVjLT5tb2QgPSBtb2Q7CisJcmF0ZSA9IDQgKiBjb2RlYy0+bWFzdGVyIC8gbW9kOworCisJcmV0dXJuIHJhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0X2RhY19yYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgbWFzdGVyID0gaGFsMi0+ZGFjLm1hc3RlcjsKKwlpbnQgaW5jID0gaGFsMi0+ZGFjLmluYzsKKwlpbnQgbW9kID0gaGFsMi0+ZGFjLm1vZDsKKworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9CUkVTMV9DMSwgKG1hc3RlciA9PSA0NDEwMCkgPyAxIDogMCk7CisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0JSRVMxX0MyLAorCQkgICAgICAgKCgweGZmZmYgJiAoaW5jIC0gbW9kIC0gMSkpIDw8IDE2KSB8IGluYyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0X2FkY19yYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgbWFzdGVyID0gaGFsMi0+YWRjLm1hc3RlcjsKKwlpbnQgaW5jID0gaGFsMi0+YWRjLmluYzsKKwlpbnQgbW9kID0gaGFsMi0+YWRjLm1vZDsKKworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9CUkVTMl9DMSwgKG1hc3RlciA9PSA0NDEwMCkgPyAxIDogMCk7CisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0JSRVMyX0MyLAorCQkgICAgICAgKCgweGZmZmYgJiAoaW5jIC0gbW9kIC0gMSkpIDw8IDE2KSB8IGluYyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0dXBfZGFjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgZmlmb2JlZywgZmlmb2VuZCwgaGlnaHdhdGVyLCBzYW1wbGVfc2l6ZTsKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmRhYy5wYnVzOworCisJLyogTm93IHdlIHNldCB1cCBzb21lIFBCVVMgaW5mb3JtYXRpb24uIFRoZSBQQlVTIG5lZWRzIGluZm9ybWF0aW9uIGFib3V0CisJICogd2hhdCBwb3J0aW9uIG9mIHRoZSBmaWZvIGl0IHdpbGwgdXNlLiBJZiBpdCdzIHJlY2VpdmluZyBvcgorCSAqIHRyYW5zbWl0dGluZywgYW5kIGZpbmFsbHkgd2hldGhlciB0aGUgc3RyZWFtIGlzIGxpdHRsZSBlbmRpYW4gb3IgYmlnCisJICogZW5kaWFuLiBUaGUgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiBsYXRlciwgb24gdGhlIHN0YXJ0IGNhbGwuCisJICovCisJc2FtcGxlX3NpemUgPSAyICogaGFsMi0+ZGFjLnZvaWNlczsKKwkvKiBGaWZvIHNob3VsZCBiZSBzZXQgdG8gaG9sZCBleGFjdGx5IGZvdXIgc2FtcGxlcy4gSGlnaHdhdGVyIG1hcmsKKwkgKiBzaG91bGQgYmUgc2V0IHRvIHR3byBzYW1wbGVzLiAqLworCWhpZ2h3YXRlciA9IChzYW1wbGVfc2l6ZSAqIDIpID4+IDE7CS8qIGhhbGZ3b3JkcyAqLworCWZpZm9iZWcgPSAwOwkJCQkvKiBwbGF5YmFjayBpcyBmaXJzdCAqLworCWZpZm9lbmQgPSAoc2FtcGxlX3NpemUgKiA0KSA+PiAzOwkvKiBkb3VibGV3b3JkcyAqLworCXBidXMtPmN0cmwgPSBIUEMzX1BETUFDVFJMX1JUIHwgSFBDM19QRE1BQ1RSTF9MRCB8CisJCSAgICAgKGhpZ2h3YXRlciA8PCA4KSB8IChmaWZvYmVnIDw8IDE2KSB8IChmaWZvZW5kIDw8IDI0KTsKKwkvKiBXZSBkaXNhYmxlIGV2ZXJ5dGhpbmcgYmVmb3JlIHdlIGRvIGFueXRoaW5nIGF0IGFsbCAqLworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworCWhhbDJfaV9jbGVhcmJpdDE2KGhhbDIsIEgySV9ETUFfUE9SVF9FTiwgSDJJX0RNQV9QT1JUX0VOX0NPREVDVFgpOworCS8qIFNldHVwIHRoZSBIQUwyIGZvciBwbGF5YmFjayAqLworCWhhbDJfc2V0X2RhY19yYXRlKGhhbDIpOworCS8qIFNldCBlbmRpYW5lc3MgKi8KKwloYWwyX2lfY2xlYXJiaXQxNihoYWwyLCBIMklfRE1BX0VORCwgSDJJX0RNQV9FTkRfQ09ERUNUWCk7CisJLyogU2V0IERNQSBidXMgKi8KKwloYWwyX2lfc2V0Yml0MTYoaGFsMiwgSDJJX0RNQV9EUlYsICgxIDw8IHBidXMtPnBidXNucikpOworCS8qIFdlIGFyZSB1c2luZyAxc3QgQnJlc2VuaGFtIGNsb2NrIGdlbmVyYXRvciBmb3IgcGxheWJhY2sgKi8KKwloYWwyX2lfd3JpdGUxNihoYWwyLCBIMklfREFDX0MxLCAocGJ1cy0+cGJ1c25yIDw8IEgySV9DMV9ETUFfU0hJRlQpCisJCQl8ICgxIDw8IEgySV9DMV9DTEtJRF9TSElGVCkKKwkJCXwgKGhhbDItPmRhYy52b2ljZXMgPDwgSDJJX0MxX0RBVEFUX1NISUZUKSk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0dXBfYWRjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgZmlmb2JlZywgZmlmb2VuZCwgaGlnaHdhdGVyLCBzYW1wbGVfc2l6ZTsKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmFkYy5wYnVzOworCisJc2FtcGxlX3NpemUgPSAyICogaGFsMi0+YWRjLnZvaWNlczsKKwloaWdod2F0ZXIgPSAoc2FtcGxlX3NpemUgKiAyKSA+PiAxOwkJLyogaGFsZndvcmRzICovCisJZmlmb2JlZyA9ICg0ICogNCkgPj4gMzsJCQkJLyogcmVjb3JkIGlzIHNlY29uZCAqLworCWZpZm9lbmQgPSAoNCAqIDQgKyBzYW1wbGVfc2l6ZSAqIDQpID4+IDM7CS8qIGRvdWJsZXdvcmRzICovCisJcGJ1cy0+Y3RybCA9IEhQQzNfUERNQUNUUkxfUlQgfCBIUEMzX1BETUFDVFJMX1JDViB8IEhQQzNfUERNQUNUUkxfTEQgfAorCQkgICAgIChoaWdod2F0ZXIgPDwgOCkgfCAoZmlmb2JlZyA8PCAxNikgfCAoZmlmb2VuZCA8PCAyNCk7CisJcGJ1cy0+cGJ1cy0+cGJkbWFfY3RybCA9IEhQQzNfUERNQUNUUkxfTEQ7CisJaGFsMl9pX2NsZWFyYml0MTYoaGFsMiwgSDJJX0RNQV9QT1JUX0VOLCBIMklfRE1BX1BPUlRfRU5fQ09ERUNSKTsKKwkvKiBTZXR1cCB0aGUgSEFMMiBmb3IgcmVjb3JkICovCisJaGFsMl9zZXRfYWRjX3JhdGUoaGFsMik7CisJLyogU2V0IGVuZGlhbmVzcyAqLworCWhhbDJfaV9jbGVhcmJpdDE2KGhhbDIsIEgySV9ETUFfRU5ELCBIMklfRE1BX0VORF9DT0RFQ1IpOworCS8qIFNldCBETUEgYnVzICovCisJaGFsMl9pX3NldGJpdDE2KGhhbDIsIEgySV9ETUFfRFJWLCAoMSA8PCBwYnVzLT5wYnVzbnIpKTsKKwkvKiBXZSBhcmUgdXNpbmcgMm5kIEJyZXNlbmhhbSBjbG9jayBnZW5lcmF0b3IgZm9yIHJlY29yZCAqLworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9BRENfQzEsIChwYnVzLT5wYnVzbnIgPDwgSDJJX0MxX0RNQV9TSElGVCkKKwkJCXwgKDIgPDwgSDJJX0MxX0NMS0lEX1NISUZUKQorCQkJfCAoaGFsMi0+YWRjLnZvaWNlcyA8PCBIMklfQzFfREFUQVRfU0hJRlQpKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9zdGFydF9kYWMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXN0cnVjdCBoYWwyX3BidXMgKnBidXMgPSAmaGFsMi0+ZGFjLnBidXM7CisKKwlwYnVzLT5wYnVzLT5wYmRtYV9kcHRyID0gaGFsMi0+ZGFjLmRlc2NfZG1hOworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBwYnVzLT5jdHJsIHwgSFBDM19QRE1BQ1RSTF9BQ1Q7CisJLyogZW5hYmxlIERBQyAqLworCWhhbDJfaV9zZXRiaXQxNihoYWwyLCBIMklfRE1BX1BPUlRfRU4sIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1RYKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9zdGFydF9hZGMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXN0cnVjdCBoYWwyX3BidXMgKnBidXMgPSAmaGFsMi0+YWRjLnBidXM7CisKKwlwYnVzLT5wYnVzLT5wYmRtYV9kcHRyID0gaGFsMi0+YWRjLmRlc2NfZG1hOworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBwYnVzLT5jdHJsIHwgSFBDM19QRE1BQ1RSTF9BQ1Q7CisJLyogZW5hYmxlIEFEQyAqLworCWhhbDJfaV9zZXRiaXQxNihoYWwyLCBIMklfRE1BX1BPUlRfRU4sIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1IpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaGFsMl9zdG9wX2RhYyhzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJaGFsMi0+ZGFjLnBidXMucGJ1cy0+cGJkbWFfY3RybCA9IEhQQzNfUERNQUNUUkxfTEQ7CisJLyogVGhlIEhBTDIgaXRzZWxmIG1heSByZW1haW4gZW5hYmxlZCBzYWZlbHkgKi8KK30KKworc3RhdGljIGlubGluZSB2b2lkIGhhbDJfc3RvcF9hZGMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCWhhbDItPmFkYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworfQorCitzdGF0aWMgaW50IGhhbDJfYWxsb2NfZG1hYnVmKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYykKK3sKKwlzdHJ1Y3QgaGFsMl9kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgZGVzY19kbWEsIGJ1ZmZlcl9kbWE7CisJaW50IGNvdW50ID0gSDJfQlVGX1NJWkUgLyBIMl9CTE9DS19TSVpFOworCWludCBpOworCisJY29kZWMtPmJ1ZmZlciA9IGRtYV9hbGxvY19ub25jb2hlcmVudChOVUxMLCBIMl9CVUZfU0laRSwKKwkJCQkJICAgICAgJmJ1ZmZlcl9kbWEsIEdGUF9LRVJORUwpOworCWlmICghY29kZWMtPmJ1ZmZlcikKKwkJcmV0dXJuIC1FTk9NRU07CisJZGVzYyA9IGRtYV9hbGxvY19ub25jb2hlcmVudChOVUxMLCBjb3VudCAqIHNpemVvZihzdHJ1Y3QgaGFsMl9kZXNjKSwKKwkJCQkgICAgICZkZXNjX2RtYSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkZXNjKSB7CisJCWRtYV9mcmVlX25vbmNvaGVyZW50KE5VTEwsIEgyX0JVRl9TSVpFLAorCQkJCSAgICAgY29kZWMtPmJ1ZmZlciwgYnVmZmVyX2RtYSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwljb2RlYy0+YnVmZmVyX2RtYSA9IGJ1ZmZlcl9kbWE7CisJY29kZWMtPmRlc2NfZG1hID0gZGVzY19kbWE7CisJY29kZWMtPmRlc2MgPSBkZXNjOworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCWRlc2MtPmRlc2MucGJ1ZiA9IGJ1ZmZlcl9kbWEgKyBpICogSDJfQkxPQ0tfU0laRTsKKwkJZGVzYy0+ZGVzYy5jbnRpbmZvID0gSFBDRE1BX1hJRSB8IEgyX0JMT0NLX1NJWkU7CisJCWRlc2MtPmRlc2MucG5leHQgPSAoaSA9PSBjb3VudCAtIDEpID8KKwkJICAgICAgZGVzY19kbWEgOiBkZXNjX2RtYSArIChpICsgMSkgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyk7CisJCWRlc2MrKzsKKwl9CisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgY29kZWMtPmRlc2MsIGNvdW50ICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rlc2MpLAorCQkgICAgICAgRE1BX1RPX0RFVklDRSk7CisJY29kZWMtPmRlc2NfY291bnQgPSBjb3VudDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaGFsMl9mcmVlX2RtYWJ1ZihzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMpCit7CisJZG1hX2ZyZWVfbm9uY29oZXJlbnQoTlVMTCwgY29kZWMtPmRlc2NfY291bnQgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyksCisJCQkgICAgIGNvZGVjLT5kZXNjLCBjb2RlYy0+ZGVzY19kbWEpOworCWRtYV9mcmVlX25vbmNvaGVyZW50KE5VTEwsIEgyX0JVRl9TSVpFLCBjb2RlYy0+YnVmZmVyLAorCQkJICAgICBjb2RlYy0+YnVmZmVyX2RtYSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBoYWwyX3BjbV9odyA9IHsKKwkuaW5mbyA9IChTTkRSVl9QQ01fSU5GT19NTUFQIHwKKwkJIFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfAorCQkgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAorCQkgU05EUlZfUENNX0lORk9fQkxPQ0tfVFJBTlNGRVIpLAorCS5mb3JtYXRzID0gICAgICAgICAgU05EUlZfUENNX0ZNVEJJVF9TMTZfQkUsCisJLnJhdGVzID0gICAgICAgICAgICBTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwLAorCS5yYXRlX21pbiA9ICAgICAgICAgODAwMCwKKwkucmF0ZV9tYXggPSAgICAgICAgIDQ4MDAwLAorCS5jaGFubmVsc19taW4gPSAgICAgMiwKKwkuY2hhbm5lbHNfbWF4ID0gICAgIDIsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSA2NTUzNiwKKwkucGVyaW9kX2J5dGVzX21pbiA9IDEwMjQsCisJLnBlcmlvZF9ieXRlc19tYXggPSA2NTUzNiwKKwkucGVyaW9kc19taW4gPSAgICAgIDIsCisJLnBlcmlvZHNfbWF4ID0gICAgICAxMDI0LAorfTsKKworc3RhdGljIGludCBoYWwyX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlpbnQgZXJyOworCisJZXJyID0gc25kX3BjbV9saWJfbWFsbG9jX3BhZ2VzKHN1YnN0cmVhbSwgcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJcmV0dXJuIHNuZF9wY21fbGliX2ZyZWVfcGFnZXMoc3Vic3RyZWFtKTsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJaW50IGVycjsKKworCXJ1bnRpbWUtPmh3ID0gaGFsMl9wY21faHc7CisKKwllcnIgPSBoYWwyX2FsbG9jX2RtYWJ1ZigmaGFsMi0+ZGFjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfcGxheWJhY2tfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJaGFsMl9mcmVlX2RtYWJ1ZigmaGFsMi0+ZGFjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlkYWMtPnZvaWNlcyA9IHJ1bnRpbWUtPmNoYW5uZWxzOworCWRhYy0+c2FtcGxlX3JhdGUgPSBoYWwyX2NvbXB1dGVfcmF0ZShkYWMsIHJ1bnRpbWUtPnJhdGUpOworCW1lbXNldCgmZGFjLT5wY21faW5kaXJlY3QsIDAsIHNpemVvZihkYWMtPnBjbV9pbmRpcmVjdCkpOworCWRhYy0+cGNtX2luZGlyZWN0Lmh3X2J1ZmZlcl9zaXplID0gSDJfQlVGX1NJWkU7CisJZGFjLT5wY21faW5kaXJlY3Quc3dfYnVmZmVyX3NpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKKwlkYWMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwloYWwyX3NldHVwX2RhYyhoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorCQloYWwyLT5kYWMucGNtX2luZGlyZWN0Lmh3X2lvID0gaGFsMi0+ZGFjLmJ1ZmZlcl9kbWE7CisJCWhhbDItPmRhYy5wY21faW5kaXJlY3QuaHdfZGF0YSA9IDA7CisJCXN1YnN0cmVhbS0+b3BzLT5hY2soc3Vic3RyZWFtKTsKKwkJaGFsMl9zdGFydF9kYWMoaGFsMik7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwkJaGFsMl9zdG9wX2RhYyhoYWwyKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2hhbDJfcGxheWJhY2tfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlyZXR1cm4gc25kX3BjbV9pbmRpcmVjdF9wbGF5YmFja19wb2ludGVyKHN1YnN0cmVhbSwgJmRhYy0+cGNtX2luZGlyZWN0LAorCQkJCQkJIGRhYy0+cGJ1cy5wYnVzLT5wYmRtYV9icHRyKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9wbGF5YmFja190cmFuc2ZlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICBzdHJ1Y3Qgc25kX3BjbV9pbmRpcmVjdCAqcmVjLCBzaXplX3QgYnl0ZXMpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IGhhbDItPmRhYy5idWZmZXIgKyByZWMtPmh3X2RhdGE7CisKKwltZW1jcHkoYnVmLCBzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhICsgcmVjLT5zd19kYXRhLCBieXRlcyk7CisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgYnVmLCBieXRlcywgRE1BX1RPX0RFVklDRSk7CisKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX2FjayhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlkYWMtPnBjbV9pbmRpcmVjdC5od19xdWV1ZV9zaXplID0gSDJfQlVGX1NJWkUgLyAyOworCXNuZF9wY21faW5kaXJlY3RfcGxheWJhY2tfdHJhbnNmZXIoc3Vic3RyZWFtLAorCQkJCQkgICAmZGFjLT5wY21faW5kaXJlY3QsCisJCQkJCSAgIGhhbDJfcGxheWJhY2tfdHJhbnNmZXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBoYWwyX2NvZGVjICphZGMgPSAmaGFsMi0+YWRjOworCWludCBlcnI7CisKKwlydW50aW1lLT5odyA9IGhhbDJfcGNtX2h3OworCisJZXJyID0gaGFsMl9hbGxvY19kbWFidWYoYWRjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisKKwloYWwyX2ZyZWVfZG1hYnVmKCZoYWwyLT5hZGMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBoYWwyX2NvZGVjICphZGMgPSAmaGFsMi0+YWRjOworCisJYWRjLT52b2ljZXMgPSBydW50aW1lLT5jaGFubmVsczsKKwlhZGMtPnNhbXBsZV9yYXRlID0gaGFsMl9jb21wdXRlX3JhdGUoYWRjLCBydW50aW1lLT5yYXRlKTsKKwltZW1zZXQoJmFkYy0+cGNtX2luZGlyZWN0LCAwLCBzaXplb2YoYWRjLT5wY21faW5kaXJlY3QpKTsKKwlhZGMtPnBjbV9pbmRpcmVjdC5od19idWZmZXJfc2l6ZSA9IEgyX0JVRl9TSVpFOworCWFkYy0+cGNtX2luZGlyZWN0Lmh3X3F1ZXVlX3NpemUgPSBIMl9CVUZfU0laRSAvIDI7CisJYWRjLT5wY21faW5kaXJlY3Quc3dfYnVmZmVyX3NpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKKwlhZGMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwloYWwyX3NldHVwX2FkYyhoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NhcHR1cmVfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJCWhhbDItPmFkYy5wY21faW5kaXJlY3QuaHdfaW8gPSBoYWwyLT5hZGMuYnVmZmVyX2RtYTsKKwkJaGFsMi0+YWRjLnBjbV9pbmRpcmVjdC5od19kYXRhID0gMDsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1ZmZlcl9kbWEgJXhcbiIsIGhhbDItPmFkYy5idWZmZXJfZG1hKTsKKwkJaGFsMl9zdGFydF9hZGMoaGFsMik7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwkJaGFsMl9zdG9wX2FkYyhoYWwyKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2hhbDJfY2FwdHVyZV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3QgaGFsMl9jb2RlYyAqYWRjID0gJmhhbDItPmFkYzsKKworCXJldHVybiBzbmRfcGNtX2luZGlyZWN0X2NhcHR1cmVfcG9pbnRlcihzdWJzdHJlYW0sICZhZGMtPnBjbV9pbmRpcmVjdCwKKwkJCQkJCWFkYy0+cGJ1cy5wYnVzLT5wYmRtYV9icHRyKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9jYXB0dXJlX3RyYW5zZmVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgc3RydWN0IHNuZF9wY21faW5kaXJlY3QgKnJlYywgc2l6ZV90IGJ5dGVzKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBoYWwyLT5hZGMuYnVmZmVyICsgcmVjLT5od19kYXRhOworCisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgYnVmLCBieXRlcywgRE1BX0ZST01fREVWSUNFKTsKKwltZW1jcHkoc3Vic3RyZWFtLT5ydW50aW1lLT5kbWFfYXJlYSArIHJlYy0+c3dfZGF0YSwgYnVmLCBieXRlcyk7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9jYXB0dXJlX2FjayhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmFkYyA9ICZoYWwyLT5hZGM7CisKKwlzbmRfcGNtX2luZGlyZWN0X2NhcHR1cmVfdHJhbnNmZXIoc3Vic3RyZWFtLAorCQkJCQkgICZhZGMtPnBjbV9pbmRpcmVjdCwKKwkJCQkJICBoYWwyX2NhcHR1cmVfdHJhbnNmZXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIGhhbDJfcGxheWJhY2tfb3BzID0geworCS5vcGVuID0gICAgICAgIGhhbDJfcGxheWJhY2tfb3BlbiwKKwkuY2xvc2UgPSAgICAgICBoYWwyX3BsYXliYWNrX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIGhhbDJfcGNtX2h3X3BhcmFtcywKKwkuaHdfZnJlZSA9ICAgICBoYWwyX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gICAgIGhhbDJfcGxheWJhY2tfcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBoYWwyX3BsYXliYWNrX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgaGFsMl9wbGF5YmFja19wb2ludGVyLAorCS5hY2sgPSAgICAgICAgIGhhbDJfcGxheWJhY2tfYWNrLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBoYWwyX2NhcHR1cmVfb3BzID0geworCS5vcGVuID0gICAgICAgIGhhbDJfY2FwdHVyZV9vcGVuLAorCS5jbG9zZSA9ICAgICAgIGhhbDJfY2FwdHVyZV9jbG9zZSwKKwkuaW9jdGwgPSAgICAgICBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gICBoYWwyX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgaGFsMl9wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9ICAgICBoYWwyX2NhcHR1cmVfcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBoYWwyX2NhcHR1cmVfdHJpZ2dlciwKKwkucG9pbnRlciA9ICAgICBoYWwyX2NhcHR1cmVfcG9pbnRlciwKKwkuYWNrID0gICAgICAgICBoYWwyX2NhcHR1cmVfYWNrLAorfTsKKworc3RhdGljIGludCBfX2RldmluaXQgaGFsMl9wY21fY3JlYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwlzdHJ1Y3Qgc25kX3BjbSAqcGNtOworCWludCBlcnI7CisKKwkvKiBjcmVhdGUgZmlyc3QgcGNtIGRldmljZSB3aXRoIG9uZSBvdXRwdXRzIGFuZCBvbmUgaW5wdXQgKi8KKwllcnIgPSBzbmRfcGNtX25ldyhoYWwyLT5jYXJkLCAiU0dJIEhBTDIgQXVkaW8iLCAwLCAxLCAxLCAmcGNtKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXBjbS0+cHJpdmF0ZV9kYXRhID0gaGFsMjsKKwlzdHJjcHkocGNtLT5uYW1lLCAiU0dJIEhBTDIiKTsKKworCS8qIHNldCBvcGVyYXRvcnMgKi8KKwlzbmRfcGNtX3NldF9vcHMocGNtLCBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLLAorCQkJJmhhbDJfcGxheWJhY2tfb3BzKTsKKwlzbmRfcGNtX3NldF9vcHMocGNtLCBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUsCisJCQkmaGFsMl9jYXB0dXJlX29wcyk7CisJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0NPTlRJTlVPVVMsCisJCQkJCSAgIHNuZF9kbWFfY29udGludW91c19kYXRhKEdGUF9LRVJORUwpLAorCQkJCQkgICAwLCAxMDI0ICogMTAyNCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2Rldl9mcmVlKHN0cnVjdCBzbmRfZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gZGV2aWNlLT5kZXZpY2VfZGF0YTsKKworCWZyZWVfaXJxKFNHSV9IUENETUFfSVJRLCBoYWwyKTsKKwlrZnJlZShoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBoYWwyX29wcyA9IHsKKwkuZGV2X2ZyZWUgPSBoYWwyX2Rldl9mcmVlLAorfTsKKworc3RhdGljIHZvaWQgaGFsMl9pbml0X2NvZGVjKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYywgc3RydWN0IGhwYzNfcmVncyAqaHBjMywKKwkJCSAgICBpbnQgaW5kZXgpCit7CisJY29kZWMtPnBidXMucGJ1c25yID0gaW5kZXg7CisJY29kZWMtPnBidXMucGJ1cyA9ICZocGMzLT5wYmRtYVtpbmRleF07Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9kZXRlY3Qoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXVuc2lnbmVkIHNob3J0IGJvYXJkLCBtYWpvciwgbWlub3I7CisJdW5zaWduZWQgc2hvcnQgcmV2OworCisJLyogcmVzZXQgSEFMMiAqLworCWhhbDJfd3JpdGUoMCwgJmhhbDItPmN0bF9yZWdzLT5pc3IpOworCisJLyogcmVsZWFzZSByZXNldCAqLworCWhhbDJfd3JpdGUoSDJfSVNSX0dMT0JBTF9SRVNFVF9OIHwgSDJfSVNSX0NPREVDX1JFU0VUX04sCisJCSAgICZoYWwyLT5jdGxfcmVncy0+aXNyKTsKKworCisJaGFsMl9pX3dyaXRlMTYoaGFsMiwgSDJJX1JFTEFZX0MsIEgySV9SRUxBWV9DX1NUQVRFKTsKKwlyZXYgPSBoYWwyX3JlYWQoJmhhbDItPmN0bF9yZWdzLT5yZXYpOworCWlmIChyZXYgJiBIMl9SRVZfQVVESU9fUFJFU0VOVCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlib2FyZCA9IChyZXYgJiBIMl9SRVZfQk9BUkRfTSkgPj4gMTI7CisJbWFqb3IgPSAocmV2ICYgSDJfUkVWX01BSk9SX0NISVBfTSkgPj4gNDsKKwltaW5vciA9IChyZXYgJiBIMl9SRVZfTUlOT1JfQ0hJUF9NKTsKKworCXByaW50ayhLRVJOX0lORk8gIlNHSSBIQUwyIHJldmlzaW9uICVpLiVpLiVpXG4iLAorCSAgICAgICBib2FyZCwgbWFqb3IsIG1pbm9yKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9oYWwyICoqcmNoaXApCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyOworCXN0cnVjdCBocGMzX3JlZ3MgKmhwYzMgPSBocGMzYzA7CisJaW50IGVycjsKKworCWhhbDIgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX2hhbDIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWhhbDIpCisJCXJldHVybiAtRU5PTUVNOworCisJaGFsMi0+Y2FyZCA9IGNhcmQ7CisKKwlpZiAocmVxdWVzdF9pcnEoU0dJX0hQQ0RNQV9JUlEsIGhhbDJfaW50ZXJydXB0LCBJUlFGX1NIQVJFRCwKKwkJCSJTR0kgSEFMMiIsIGhhbDIpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiSEFMMjogQ2FuJ3QgZ2V0IGlycSAlZFxuIiwgU0dJX0hQQ0RNQV9JUlEpOworCQlrZnJlZShoYWwyKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJaGFsMi0+Y3RsX3JlZ3MgPSAoc3RydWN0IGhhbDJfY3RsX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMF07CisJaGFsMi0+YWVzX3JlZ3MgPSAoc3RydWN0IGhhbDJfYWVzX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMV07CisJaGFsMi0+dm9sX3JlZ3MgPSAoc3RydWN0IGhhbDJfdm9sX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMl07CisJaGFsMi0+c3luX3JlZ3MgPSAoc3RydWN0IGhhbDJfc3luX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbM107CisKKwlpZiAoaGFsMl9kZXRlY3QoaGFsMikgPCAwKSB7CisJCWtmcmVlKGhhbDIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwloYWwyX2luaXRfY29kZWMoJmhhbDItPmRhYywgaHBjMywgMCk7CisJaGFsMl9pbml0X2NvZGVjKCZoYWwyLT5hZGMsIGhwYzMsIDEpOworCisJLyoKKwkgKiBBbGwgRE1BIGNoYW5uZWwgaW50ZXJmYWNlcyBpbiBIQUwyIGFyZSBkZXNpZ25lZCB0byBvcGVyYXRlIHdpdGgKKwkgKiBQQlVTIHByb2dyYW1tZWQgZm9yIDIgY3ljbGVzIGluIEQzLCAyIGN5Y2xlcyBpbiBENCBhbmQgMiBjeWNsZXMKKwkgKiBpbiBENS4gSEFMMiBpcyBhIDE2LWJpdCBkZXZpY2Ugd2hpY2ggY2FuIGFjY2VwdCBib3RoIGJpZyBhbmQgbGl0dGxlCisJICogZW5kaWFuIGZvcm1hdC4gSXQgYXNzdW1lcyB0aGF0IGV2ZW4gYWRkcmVzcyBieXRlcyBhcmUgb24gaGlnaAorCSAqIHBvcnRpb24gb2YgUEJVUyAoMTU6OCkgYW5kIGFzc3VtZXMgdGhhdCBIUEMzIGlzIHByb2dyYW1tZWQgdG8KKwkgKiBhY2NlcHQgYSBsaXZlICh1bnN5bmNocm9uaXplZCkgdmVyc2lvbiBvZiBQX0RSRVFfTiBmcm9tIEhBTDIuCisJICovCisjZGVmaW5lIEhBTDJfUEJVU19ETUFDRkcgKCgwIDw8IEhQQzNfRE1BQ0ZHX0QzUl9TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q0Ul9TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q1Ul9TSElGVCkgfCBcCisJCQkgICgwIDw8IEhQQzNfRE1BQ0ZHX0QzV19TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q0V19TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q1V19TSElGVCkgfCBcCisJCQkJSFBDM19ETUFDRkdfRFMxNiB8IFwKKwkJCQlIUEMzX0RNQUNGR19FVkVOSEkgfCBcCisJCQkJSFBDM19ETUFDRkdfUlRJTUUgfCBcCisJCQkgICg4IDw8IEhQQzNfRE1BQ0ZHX0JVUlNUX1NISUZUKSB8IFwKKwkJCQlIUEMzX0RNQUNGR19EUlFMSVZFKQorCS8qCisJICogSWdub3JlIHdoYXQncyBtZW50aW9uZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gYW5kIHdyaXRlIHZhbHVlIHdoaWNoCisJICogd29ya3MgaW4gVGhlIFJlYWwgV29ybGQgKFRNKQorCSAqLworCWhwYzMtPnBidXNfZG1hY2ZnW2hhbDItPmRhYy5wYnVzLnBidXNucl1bMF0gPSAweDgyMDg4NDQ7CisJaHBjMy0+cGJ1c19kbWFjZmdbaGFsMi0+YWRjLnBidXMucGJ1c25yXVswXSA9IDB4ODIwODg0NDsKKworCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgaGFsMiwgJmhhbDJfb3BzKTsKKwlpZiAoZXJyIDwgMCkgeworCQlmcmVlX2lycShTR0lfSFBDRE1BX0lSUSwgaGFsMik7CisJCWtmcmVlKGhhbDIpOworCQlyZXR1cm4gZXJyOworCX0KKwkqcmNoaXAgPSBoYWwyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBoYWwyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkOworCXN0cnVjdCBzbmRfaGFsMiAqY2hpcDsKKwlpbnQgZXJyOworCisJY2FyZCA9IHNuZF9jYXJkX25ldyhpbmRleCwgaWQsIFRISVNfTU9EVUxFLCAwKTsKKwlpZiAoY2FyZCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWVyciA9IGhhbDJfY3JlYXRlKGNhcmQsICZjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwlzbmRfY2FyZF9zZXRfZGV2KGNhcmQsICZwZGV2LT5kZXYpOworCisJZXJyID0gaGFsMl9wY21fY3JlYXRlKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCWVyciA9IGhhbDJfbWl4ZXJfY3JlYXRlKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCisJc3RyY3B5KGNhcmQtPmRyaXZlciwgIlNHSSBIQUwyIEF1ZGlvIik7CisJc3RyY3B5KGNhcmQtPnNob3J0bmFtZSwgIlNHSSBIQUwyIEF1ZGlvIik7CisJc3ByaW50ZihjYXJkLT5sb25nbmFtZSwgIiVzIGlycSAlaSIsCisJCWNhcmQtPnNob3J0bmFtZSwKKwkJU0dJX0hQQ0RNQV9JUlEpOworCisJZXJyID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCk7CisJaWYgKGVyciA8IDApIHsKKwkJc25kX2NhcmRfZnJlZShjYXJkKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2FyZCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19leGl0IGhhbDJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlzbmRfY2FyZF9mcmVlKGNhcmQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBoYWwyX2RyaXZlciA9IHsKKwkucHJvYmUJPSBoYWwyX3Byb2JlLAorCS5yZW1vdmUJPSBfX2RldmV4aXRfcChoYWwyX3JlbW92ZSksCisJLmRyaXZlciA9IHsKKwkJLm5hbWUJPSAic2dpaGFsMiIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF9oYWwyX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZoYWwyX2RyaXZlcik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhbHNhX2NhcmRfaGFsMl9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmhhbDJfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoYWxzYV9jYXJkX2hhbDJfaW5pdCk7Cittb2R1bGVfZXhpdChhbHNhX2NhcmRfaGFsMl9leGl0KTsKZGlmZiAtLWdpdCBhL3NvdW5kL21pcHMvaGFsMi5oIGIvc291bmQvbWlwcy9oYWwyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE5ODI4YgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL21pcHMvaGFsMi5oCkBAIC0wLDAgKzEsMjQ1IEBACisjaWZuZGVmIF9fSEFMMl9ICisjZGVmaW5lIF9fSEFMMl9ICisKKy8qCisgKiAgRHJpdmVyIGZvciBIQUwyIHNvdW5kIHByb2Nlc3NvcnMKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTkgVWxmIENhcmxzc29uIDx1bGZjQGJ1bi5mYWxrZW5iZXJnLnNlPgorICogIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyogSW5kaXJlY3Qgc3RhdHVzIHJlZ2lzdGVyICovCisKKyNkZWZpbmUgSDJfSVNSX1RTVEFUVVMJCTB4MDEJLyogUk86IHRyYW5zYWN0aW9uIHN0YXR1cyAxPWJ1c3kgKi8KKyNkZWZpbmUgSDJfSVNSX1VTVEFUVVMJCTB4MDIJLyogUk86IHV0aW1lIHN0YXR1cyBiaXQgMT1hcm1lZCAqLworI2RlZmluZSBIMl9JU1JfUVVBRF9NT0RFCTB4MDQJLyogY29kZWMgbW9kZSAwPWluZGlnbyAxPXF1YWQgKi8KKyNkZWZpbmUgSDJfSVNSX0dMT0JBTF9SRVNFVF9OCTB4MDgJLyogY2hpcCBnbG9iYWwgcmVzZXQgMD1yZXNldCAqLworI2RlZmluZSBIMl9JU1JfQ09ERUNfUkVTRVRfTgkweDEwCS8qIGNvZGVjL3N5bnRoIHJlc2V0IDA9cmVzZXQgICovCisKKy8qIFJldmlzaW9uIHJlZ2lzdGVyICovCisKKyNkZWZpbmUgSDJfUkVWX0FVRElPX1BSRVNFTlQJMHg4MDAwCS8qIFJPOiBhdWRpbyBwcmVzZW50IDA9cHJlc2VudCAqLworI2RlZmluZSBIMl9SRVZfQk9BUkRfTQkJMHg3MDAwCS8qIFJPOiBiaXRzIDE0OjEyLCBib2FyZCByZXZpc2lvbiAqLworI2RlZmluZSBIMl9SRVZfTUFKT1JfQ0hJUF9NCTB4MDBGMAkvKiBSTzogYml0cyA3OjQsIG1ham9yIGNoaXAgcmV2aXNpb24gKi8KKyNkZWZpbmUgSDJfUkVWX01JTk9SX0NISVBfTQkweDAwMEYJLyogUk86IGJpdHMgMzowLCBtaW5vciBjaGlwIHJldmlzaW9uICovCisKKy8qIEluZGlyZWN0IGFkZHJlc3MgcmVnaXN0ZXIgKi8KKworLyoKKyAqIEFkZHJlc3Mgb2YgaW5kaXJlY3QgaW50ZXJuYWwgcmVnaXN0ZXIgdG8gYmUgYWNjZXNzZWQuIEEgd3JpdGUgdG8gdGhpcworICogcmVnaXN0ZXIgaW5pdGlhdGVzIHJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHRoZSBpbmRpcmVjdCByZWdpc3RlcnMgaW4gdGhlCisgKiBIQUwyLiBOb3RlIHRoYXQgdGhlcmUgYWYgZm91ciBpbmRpcmVjdCBkYXRhIHJlZ2lzdGVycyBmb3Igd3JpdGUgYWNjZXNzIHRvCisgKiByZWdpc3RlcnMgbGFyZ2VyIHRoYW4gMTYgYnl0ZS4KKyAqLworCisjZGVmaW5lIEgyX0lBUl9UWVBFX00JCTB4RjAwMAkvKiBiaXRzIDE1OjEyLCB0eXBlIG9mIGZ1bmN0aW9uYWwgKi8KKwkJCQkJLyogYmxvY2sgdGhlIHJlZ2lzdGVyIHJlc2lkZXMgaW4gKi8KKwkJCQkJLyogMT1ETUEgUG9ydCAqLworCQkJCQkvKiA5PUdsb2JhbCBETUEgQ29udHJvbCAqLworCQkJCQkvKiAyPUJyZXNlbmhhbSAqLworCQkJCQkvKiAzPVVuaXggVGltZXIgKi8KKyNkZWZpbmUgSDJfSUFSX05VTV9NCQkweDBGMDAJLyogYml0cyAxMTo4IGluc3RhbmNlIG9mIHRoZSAqLworCQkJCQkvKiBibG9ja2luIHdoaWNoIHRoZSBpbmRpcmVjdCAqLworCQkJCQkvKiByZWdpc3RlciByZXNpZGVzICovCisJCQkJCS8qIElmIElBUl9UWVBFX009RE1BIFBvcnQ6ICovCisJCQkJCS8qIDE9U3ludGggSW4gKi8KKwkJCQkJLyogMj1BRVMgSW4gKi8KKwkJCQkJLyogMz1BRVMgT3V0ICovCisJCQkJCS8qIDQ9REFDIE91dCAqLworCQkJCQkvKiA1PUFEQyBPdXQgKi8KKwkJCQkJLyogNj1TeW50aCBDb250cm9sICovCisJCQkJCS8qIElmIElBUl9UWVBFX009R2xvYmFsIERNQSBDb250cm9sOiAqLworCQkJCQkvKiAxPUNvbnRyb2wgKi8KKwkJCQkJLyogSWYgSUFSX1RZUEVfTT1CcmVzZW5oYW06ICovCisJCQkJCS8qIDE9QnJlc2VuaGFtIENsb2NrIEdlbiAxICovCisJCQkJCS8qIDI9QnJlc2VuaGFtIENsb2NrIEdlbiAyICovCisJCQkJCS8qIDM9QnJlc2VuaGFtIENsb2NrIEdlbiAzICovCisJCQkJCS8qIElmIElBUl9UWVBFX009VW5peCBUaW1lcjogKi8KKwkJCQkJLyogMT1Vbml4IFRpbWVyICovCisjZGVmaW5lIEgyX0lBUl9BQ0NFU1NfU0VMRUNUCTB4MDA4MAkvKiAxPXJlYWQgMD13cml0ZSAqLworI2RlZmluZSBIMl9JQVJfUEFSQU0JCTB4MDAwQwkvKiBQYXJhbWV0ZXIgU2VsZWN0ICovCisjZGVmaW5lIEgyX0lBUl9SQl9JTkRFWF9NCTB4MDAwMwkvKiBSZWFkIEJhY2sgSW5kZXggKi8KKwkJCQkJLyogMDA6d29yZDAgKi8KKwkJCQkJLyogMDE6d29yZDEgKi8KKwkJCQkJLyogMTA6d29yZDIgKi8KKwkJCQkJLyogMTE6d29yZDMgKi8KKy8qCisgKiBIQUwyIGludGVybmFsIGFkZHJlc3NpbmcKKyAqCisgKiBUaGUgSEFMMiBoYXMgImluZGlyZWN0IHJlZ2lzdGVycyIgKGlkcikgd2hpY2ggYXJlIGFjY2Vzc2VkIGJ5IHdyaXRpbmcgdG8gdGhlCisgKiBJbmRpcmVjdCBEYXRhIHJlZ2lzdGVycy4gV3JpdGUgdGhlIGFkZHJlc3MgdG8gdGhlIEluZGlyZWN0IEFkZHJlc3MgcmVnaXN0ZXIKKyAqIHRvIHRyYW5zZmVyIHRoZSBkYXRhLgorICoKKyAqIFdlIGRlZmluZSB0aGUgSDJJUl8qIHRvIHRoZSByZWFkIGFkZHJlc3MgYW5kIEgySVdfKiB0byB0aGUgd3JpdGUgYWRkcmVzcyBhbmQKKyAqIEgySV8qIHRvIGJlIGZpZWxkcyBpbiB3aGF0ZXZlciByZWdpc3RlciBpcyByZWZlcnJlZCB0by4KKyAqCisgKiBXaGVuIHdlIHdyaXRlIHRvIGluZGlyZWN0IHJlZ2lzdGVycyB3aGljaCBhcmUgbGFyZ2VyIHRoYW4gb25lIHdvcmQgKDE2IGJpdCkKKyAqIHdlIGhhdmUgdG8gZmlsbCBtb3JlIHRoYW4gb25lIGluZGlyZWN0IHJlZ2lzdGVyIGJlZm9yZSB3cml0aW5nLiBXaGVuIHdlIHJlYWQKKyAqIGJhY2sgaG93ZXZlciB3ZSBoYXZlIHRvIHJlYWQgc2V2ZXJhbCB0aW1lcywgZWFjaCB0aW1lIHdpdGggZGlmZmVyZW50IFJlYWQKKyAqIEJhY2sgSW5kZXhlcyAodGhlcmUgYXJlIGRlZnMgZm9yIGRvaW5nIHRoaXMgZWFzaWx5KS4KKyAqLworCisvKgorICogUmVsYXkgQ29udHJvbAorICovCisjZGVmaW5lIEgySV9SRUxBWV9DCQkweDkxMDAKKyNkZWZpbmUgSDJJX1JFTEFZX0NfU1RBVEUJMHgwMQkJLyogc3RhdGUgb2YgUkVMQVkgcGluIHNpZ25hbCAqLworCisvKiBETUEgcG9ydCBlbmFibGUgKi8KKworI2RlZmluZSBIMklfRE1BX1BPUlRfRU4JCTB4OTEwNAorI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fU1lfSU4JMHgwMQkJLyogU3ludGhfaW4gRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9QT1JUX0VOX0FFU1JYCTB4MDIJCS8qIEFFUyByZWNlaXZlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fQUVTVFgJMHgwNAkJLyogQUVTIHRyYW5zbWl0dGVyIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1RYCTB4MDgJCS8qIENPREVDIHRyYW5zbWl0IERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1IJMHgxMAkJLyogQ09ERUMgcmVjZWl2ZSBETUEgcG9ydCAqLworCisjZGVmaW5lIEgySV9ETUFfRU5ECQkweDkxMDggCQkvKiBnbG9iYWwgZG1hIGVuZGlhbiBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0RNQV9FTkRfU1lfSU4JMHgwMQkJLyogU3ludGhfaW4gRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9FTkRfQUVTUlgJMHgwMgkJLyogQUVTIHJlY2VpdmVyIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX0FFU1RYCTB4MDQJCS8qIEFFUyB0cmFuc21pdHRlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX0VORF9DT0RFQ1RYCTB4MDgJCS8qIENPREVDIHRyYW5zbWl0IERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX0NPREVDUgkweDEwCQkvKiBDT0RFQyByZWNlaXZlIERNQSBwb3J0ICovCisJCQkJCQkvKiAwPWJfZW5kIDE9bF9lbmQgKi8KKworI2RlZmluZSBIMklfRE1BX0RSVgkJMHg5MTBDICAJLyogZ2xvYmFsIFBCVVMgRE1BIGVuYWJsZSAqLworCisjZGVmaW5lIEgySV9TWU5USF9DCQkweDExMDQJCS8qIFN5bnRoIERNQSBjb250cm9sICovCisKKyNkZWZpbmUgSDJJX0FFU1JYX0MJCTB4MTIwNAkgCS8qIEFFUyBSWCBkbWEgY29udHJvbCAqLworCisjZGVmaW5lIEgySV9DX1RTX0VOCQkweDIwCQkvKiBUaW1lc3RhbXAgZW5hYmxlICovCisjZGVmaW5lIEgySV9DX1RTX0ZSTVQJCTB4NDAJCS8qIFRpbWVzdGFtcCBmb3JtYXQgKi8KKyNkZWZpbmUgSDJJX0NfTkFVRElPCQkweDgwCQkvKiBTaWduIGV4dGVuZCAqLworCisvKiBBRVNSWCBDVEwsIDE2IGJpdCAqLworCisjZGVmaW5lIEgySV9BRVNUWF9DCQkweDEzMDQJCS8qIEFFUyBUWCBETUEgY29udHJvbCAqLworI2RlZmluZSBIMklfQUVTVFhfQ19DTEtJRF9TSElGVAkzCQkvKiBCcmVzZW5oYW0gQ2xvY2sgR2VuIDEtMyAqLworI2RlZmluZSBIMklfQUVTVFhfQ19DTEtJRF9NCTB4MTgKKyNkZWZpbmUgSDJJX0FFU1RYX0NfREFUQVRfU0hJRlQJOAkJLyogMT1tb25vIDI9c3RlcmVvICgzPXF1YWQpICovCisjZGVmaW5lIEgySV9BRVNUWF9DX0RBVEFUX00JMHgzMDAKKworLyogQ09ERUMgcmVnaXN0ZXJzICovCisKKyNkZWZpbmUgSDJJX0RBQ19DMQkJMHgxNDA0IAkJLyogREFDIERNQSBjb250cm9sLCAxNiBiaXQgKi8KKyNkZWZpbmUgSDJJX0RBQ19DMgkJMHgxNDA4CQkvKiBEQUMgRE1BIGNvbnRyb2wsIDMyIGJpdCAqLworI2RlZmluZSBIMklfQURDX0MxCQkweDE1MDQgCQkvKiBBREMgRE1BIGNvbnRyb2wsIDE2IGJpdCAqLworI2RlZmluZSBIMklfQURDX0MyCQkweDE1MDgJCS8qIEFEQyBETUEgY29udHJvbCwgMzIgYml0ICovCisKKy8qIEJpdHMgaW4gQ1RMMSByZWdpc3RlciAqLworCisjZGVmaW5lIEgySV9DMV9ETUFfU0hJRlQJMAkJLyogRE1BIGNoYW5uZWwgKi8KKyNkZWZpbmUgSDJJX0MxX0RNQV9NCQkweDcKKyNkZWZpbmUgSDJJX0MxX0NMS0lEX1NISUZUCTMJCS8qIEJyZXNlbmhhbSBDbG9jayBHZW4gMS0zICovCisjZGVmaW5lIEgySV9DMV9DTEtJRF9NCQkweDE4CisjZGVmaW5lIEgySV9DMV9EQVRBVF9TSElGVAk4CQkvKiAxPW1vbm8gMj1zdGVyZW8gKDM9cXVhZCkgKi8KKyNkZWZpbmUgSDJJX0MxX0RBVEFUX00JCTB4MzAwCisKKy8qIEJpdHMgaW4gQ1RMMiByZWdpc3RlciAqLworCisjZGVmaW5lIEgySV9DMl9SX0dBSU5fU0hJRlQJMAkJLyogcmlnaHQgYS9kIGlucHV0IGdhaW4gKi8KKyNkZWZpbmUgSDJJX0MyX1JfR0FJTl9NCQkweGYKKyNkZWZpbmUgSDJJX0MyX0xfR0FJTl9TSElGVAk0CQkvKiBsZWZ0IGEvZCBpbnB1dCBnYWluICovCisjZGVmaW5lIEgySV9DMl9MX0dBSU5fTQkJMHhmMAorI2RlZmluZSBIMklfQzJfUl9TRUwJCTB4MTAwCQkvKiByaWdodCBpbnB1dCBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0MyX0xfU0VMCQkweDIwMAkJLyogbGVmdCBpbnB1dCBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0MyX01VVEUJCTB4NDAwCQkvKiBtdXRlICovCisjZGVmaW5lIEgySV9DMl9ETzEJCTB4MDAwMTAwMDAJLyogZGlnaXRhbCBvdXRwdXQgcG9ydCBiaXQgMCAqLworI2RlZmluZSBIMklfQzJfRE8yCQkweDAwMDIwMDAwCS8qIGRpZ2l0YWwgb3V0cHV0IHBvcnQgYml0IDEgKi8KKyNkZWZpbmUgSDJJX0MyX1JfQVRUX1NISUZUCTE4CQkvKiByaWdodCBkL2Egb3V0cHV0IC0gKi8KKyNkZWZpbmUgSDJJX0MyX1JfQVRUX00JCTB4MDA3YzAwMDAJLyogYXR0ZW51YXRpb24gKi8KKyNkZWZpbmUgSDJJX0MyX0xfQVRUX1NISUZUCTIzCQkvKiBsZWZ0IGQvYSBvdXRwdXQgLSAqLworI2RlZmluZSBIMklfQzJfTF9BVFRfTQkJMHgwZjgwMDAwMAkvKiBhdHRlbnVhdGlvbiAqLworCisjZGVmaW5lIEgySV9TWU5USF9NQVBfQwkJMHgxMTA0CQkvKiBzeW50aCBkbWEgaGFuZHNoYWtlIGN0cmwgKi8KKworLyogQ2xvY2sgZ2VuZXJhdG9yIENUTCAxLCAxNiBiaXQgKi8KKworI2RlZmluZSBIMklfQlJFUzFfQzEJCTB4MjEwNAorI2RlZmluZSBIMklfQlJFUzJfQzEJCTB4MjIwNAorI2RlZmluZSBIMklfQlJFUzNfQzEJCTB4MjMwNAorCisjZGVmaW5lIEgySV9CUkVTX0MxX1NISUZUCTAJCS8qIDA9NDguMCAxPTQ0LjEgMj1hZXNfcnggKi8KKyNkZWZpbmUgSDJJX0JSRVNfQzFfTQkJMHgwMworCisvKiBDbG9jayBnZW5lcmF0b3IgQ1RMIDIsIDMyIGJpdCAqLworCisjZGVmaW5lIEgySV9CUkVTMV9DMgkJMHgyMTA4CisjZGVmaW5lIEgySV9CUkVTMl9DMgkJMHgyMjA4CisjZGVmaW5lIEgySV9CUkVTM19DMgkJMHgyMzA4CisKKyNkZWZpbmUgSDJJX0JSRVNfQzJfSU5DX1NISUZUCTAJCS8qIGluY3JlbWVudCB2YWx1ZSAqLworI2RlZmluZSBIMklfQlJFU19DMl9JTkNfTQkweGZmZmYKKyNkZWZpbmUgSDJJX0JSRVNfQzJfTU9EX1NISUZUCTE2CQkvKiBtb2Rjb250cm9sIHZhbHVlICovCisjZGVmaW5lIEgySV9CUkVTX0MyX01PRF9NCTB4ZmZmZjAwMDAJLyogbW9kY3RybD0weGZmZmYmKG1vZGluYy0xKSAqLworCisvKiBVbml4IHRpbWVyLCA2NCBiaXQgKi8KKworI2RlZmluZSBIMklfVVRJTUUJCTB4MzEwNAorI2RlZmluZSBIMklfVVRJTUVfMF9MRAkJMHhmZmZmCQkvKiBtaWNyb3NlY29uZHMsIExTQidzICovCisjZGVmaW5lIEgySV9VVElNRV8xX0xEMAkJMHgwZgkJLyogbWljcm9zZWNvbmRzLCBNU0IncyAqLworI2RlZmluZSBIMklfVVRJTUVfMV9MRDEJCTB4ZjAJCS8qIHRlbnRocyBvZiBtaWNyb3NlY29uZHMgKi8KKyNkZWZpbmUgSDJJX1VUSU1FXzJfTEQJCTB4ZmZmZgkJLyogc2Vjb25kcywgTFNCJ3MgKi8KKyNkZWZpbmUgSDJJX1VUSU1FXzNfTEQJCTB4ZmZmZgkJLyogc2Vjb25kcywgTVNCJ3MgKi8KKworc3RydWN0IGhhbDJfY3RsX3JlZ3MgeworCXUzMiBfdW51c2VkMFs0XTsKKwl1MzIgaXNyOwkJLyogMHgxMCBTdGF0dXMgUmVnaXN0ZXIgKi8KKwl1MzIgX3VudXNlZDFbM107CisJdTMyIHJldjsJCS8qIDB4MjAgUmV2aXNpb24gUmVnaXN0ZXIgKi8KKwl1MzIgX3VudXNlZDJbM107CisJdTMyIGlhcjsJCS8qIDB4MzAgSW5kaXJlY3QgQWRkcmVzcyBSZWdpc3RlciAqLworCXUzMiBfdW51c2VkM1szXTsKKwl1MzIgaWRyMDsJCS8qIDB4NDAgSW5kaXJlY3QgRGF0YSBSZWdpc3RlciAwICovCisJdTMyIF91bnVzZWQ0WzNdOworCXUzMiBpZHIxOwkJLyogMHg1MCBJbmRpcmVjdCBEYXRhIFJlZ2lzdGVyIDEgKi8KKwl1MzIgX3VudXNlZDVbM107CisJdTMyIGlkcjI7CQkvKiAweDYwIEluZGlyZWN0IERhdGEgUmVnaXN0ZXIgMiAqLworCXUzMiBfdW51c2VkNlszXTsKKwl1MzIgaWRyMzsJCS8qIDB4NzAgSW5kaXJlY3QgRGF0YSBSZWdpc3RlciAzICovCit9OworCitzdHJ1Y3QgaGFsMl9hZXNfcmVncyB7CisJdTMyIHJ4X3N0YXRbMl07CS8qIFN0YXR1cyByZWdpc3RlcnMgKi8KKwl1MzIgcnhfY3JbMl07CQkvKiBDb250cm9sIHJlZ2lzdGVycyAqLworCXUzMiByeF91ZFs0XTsJCS8qIFVzZXIgZGF0YSB3aW5kb3cgKi8KKwl1MzIgcnhfc3RbMjRdOwkJLyogQ2hhbm5lbCBzdGF0dXMgZGF0YSAqLworCisJdTMyIHR4X3N0YXRbMV07CS8qIFN0YXR1cyByZWdpc3RlciAqLworCXUzMiB0eF9jclszXTsJCS8qIENvbnRyb2wgcmVnaXN0ZXJzICovCisJdTMyIHR4X3VkWzRdOwkJLyogVXNlciBkYXRhIHdpbmRvdyAqLworCXUzMiB0eF9zdFsyNF07CQkvKiBDaGFubmVsIHN0YXR1cyBkYXRhICovCit9OworCitzdHJ1Y3QgaGFsMl92b2xfcmVncyB7CisJdTMyIHJpZ2h0OwkJLyogUmlnaHQgdm9sdW1lICovCisJdTMyIGxlZnQ7CQkvKiBMZWZ0IHZvbHVtZSAqLworfTsKKworc3RydWN0IGhhbDJfc3luX3JlZ3MgeworCXUzMiBfdW51c2VkMFsyXTsKKwl1MzIgcGFnZTsJCS8qIERPQyBQYWdlIHJlZ2lzdGVyICovCisJdTMyIHJlZ3NlbDsJCS8qIERPQyBSZWdpc3RlciBzZWxlY3Rpb24gKi8KKwl1MzIgZGxvdzsJCS8qIERPQyBEYXRhIGxvdyAqLworCXUzMiBkaGlnaDsJCS8qIERPQyBEYXRhIGhpZ2ggKi8KKwl1MzIgaXJxOwkJLyogSVJRIFN0YXR1cyAqLworCXUzMiBkcmFtOwkJLyogRFJBTSBBY2Nlc3MgKi8KK307CisKKyNlbmRpZgkvKiBfX0hBTDJfSCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9zZ2lvMmF1ZGlvLmMgYi9zb3VuZC9taXBzL3NnaW8yYXVkaW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzYzNTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvbWlwcy9zZ2lvMmF1ZGlvLmMKQEAgLTAsMCArMSwxMDA2IEBACisvKgorICogICBTb3VuZCBkcml2ZXIgZm9yIFNpbGljb24gR3JhcGhpY3MgTzIgV29ya3N0YXRpb25zIEEvViBib2FyZCBhdWRpby4KKyAqCisgKiAgIENvcHlyaWdodCAyMDAzIFZpdmllbiBDaGFwcGVsaWVyIDx2aXZpZW4uY2hhcHBlbGllckBsaW51eC1taXBzLm9yZz4KKyAqICAgQ29weXJpZ2h0IDIwMDggVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYWxwaGEuZnJhbmtlbi5kZT4KKyAqICAgTXhpZXIgcGFydCB0YWtlbiBmcm9tIG1hY2VfYXVkaW8uYzoKKyAqICAgQ29weXJpZ2h0IDIwMDcgVGhvcmJlbiBKw6RuZGxpbmcgPHRqLnRyZXZlbHlhbkBnbWFpbC5jb20+CisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2lwMzIvaXAzMl9pbnRzLmg+CisjaW5jbHVkZSA8YXNtL2lwMzIvbWFjZS5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL2NvbnRyb2wuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNkZWZpbmUgU05EUlZfR0VUX0lECisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL2FkMTg0My5oPgorCisKK01PRFVMRV9BVVRIT1IoIlZpdmllbiBDaGFwcGVsaWVyIDx2aXZpZW4uY2hhcHBlbGllckBsaW51eC1taXBzLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiU0dJIE8yIEF1ZGlvIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tTaWxpY29uIEdyYXBoaWNzLCBPMiBBdWRpb319Iik7CisKK3N0YXRpYyBpbnQgaW5kZXggPSBTTkRSVl9ERUZBVUxUX0lEWDE7ICAvKiBJbmRleCAwLU1BWCAqLworc3RhdGljIGNoYXIgKmlkID0gU05EUlZfREVGQVVMVF9TVFIxOyAgIC8qIElEIGZvciB0aGlzIGNhcmQgKi8KKworbW9kdWxlX3BhcmFtKGluZGV4LCBpbnQsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpbmRleCwgIkluZGV4IHZhbHVlIGZvciBTR0kgTzIgc291bmRjYXJkLiIpOworbW9kdWxlX3BhcmFtKGlkLCBjaGFycCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGlkLCAiSUQgc3RyaW5nIGZvciBTR0kgTzIgc291bmRjYXJkLiIpOworCisKKyNkZWZpbmUgQVVESU9fQ09OVFJPTF9SRVNFVCAgICAgICAgICAgICAgQklUKDApIC8qIDE6IHJlc2V0IGF1ZGlvIGludGVyZmFjZSAqLworI2RlZmluZSBBVURJT19DT05UUk9MX0NPREVDX1BSRVNFTlQgICAgICBCSVQoMSkgLyogMTogY29kZWMgZGV0ZWN0ZWQgKi8KKworI2RlZmluZSBDT0RFQ19DT05UUk9MX1dPUkRfU0hJRlQgICAgICAgIDAKKyNkZWZpbmUgQ09ERUNfQ09OVFJPTF9SRUFEICAgICAgICAgICAgICBCSVQoMTYpCisjZGVmaW5lIENPREVDX0NPTlRST0xfQUREUkVTU19TSElGVCAgICAgMTcKKworI2RlZmluZSBDSEFOTkVMX0NPTlRST0xfUkVTRVQgICAgICAgICAgIEJJVCgxMCkgLyogMTogcmVzZXQgY2hhbm5lbCAqLworI2RlZmluZSBDSEFOTkVMX0RNQV9FTkFCTEUgICAgICAgICAgICAgIEJJVCg5KSAgLyogMTogZW5hYmxlIERNQSB0cmFuc2ZlciAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRElTQUJMRUQgICgwIDw8IDUpIC8qIGludGVycnVwdCBkaXNhYmxlZCAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfMjUgICAgICAgICgxIDw8IDUpIC8qIGludCBvbiBidWZmZXIgPjI1JSBmdWxsICovCisjZGVmaW5lIENIQU5ORUxfSU5UX1RIUkVTSE9MRF81MCAgICAgICAgKDIgPDwgNSkgLyogaW50IG9uIGJ1ZmZlciA+NTAlIGZ1bGwgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEXzc1ICAgICAgICAoMyA8PCA1KSAvKiBpbnQgb24gYnVmZmVyID43NSUgZnVsbCAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRU1QVFkgICAgICg0IDw8IDUpIC8qIGludCBvbiBidWZmZXIgZW1wdHkgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX05PVF9FTVBUWSAoNSA8PCA1KSAvKiBpbnQgb24gYnVmZmVyICFlbXB0eSAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRlVMTCAgICAgICg2IDw8IDUpIC8qIGludCBvbiBidWZmZXIgZW1wdHkgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX05PVF9GVUxMICAoNyA8PCA1KSAvKiBpbnQgb24gYnVmZmVyICFlbXB0eSAqLworCisjZGVmaW5lIENIQU5ORUxfUklOR19TSElGVCAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgQ0hBTk5FTF9SSU5HX1NJWkUgICAgICAgICAgICAgICAoMSA8PCBDSEFOTkVMX1JJTkdfU0hJRlQpCisjZGVmaW5lIENIQU5ORUxfUklOR19NQVNLICAgICAgICAgICAgICAgKENIQU5ORUxfUklOR19TSVpFIC0gMSkKKworI2RlZmluZSBDSEFOTkVMX0xFRlRfU0hJRlQgNDAKKyNkZWZpbmUgQ0hBTk5FTF9SSUdIVF9TSElGVCA4CisKK3N0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuIHsKKwlpbnQgaWR4OworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCWludCBwb3M7CisJc25kX3BjbV91ZnJhbWVzX3Qgc2l6ZTsKKwlzcGlubG9ja190IGxvY2s7Cit9OworCisvKiBkZWZpbml0aW9uIG9mIHRoZSBjaGlwLXNwZWNpZmljIHJlY29yZCAqLworc3RydWN0IHNuZF9zZ2lvMmF1ZGlvIHsKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CisKKwkvKiBjb2RlYyAqLworCXN0cnVjdCBzbmRfYWQxODQzIGFkMTg0MzsKKwlzcGlubG9ja190IGFkMTg0M19sb2NrOworCisJLyogY2hhbm5lbHMgKi8KKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW9fY2hhbiBjaGFubmVsWzNdOworCisJLyogcmVzb3VyY2VzICovCisJdm9pZCAqcmluZ19iYXNlOworCWRtYV9hZGRyX3QgcmluZ19iYXNlX2RtYTsKK307CisKKy8qIEFEMTg0MyBhY2Nlc3MgKi8KKworLyoKKyAqIHJlYWRfYWQxODQzX3JlZyByZXR1cm5zIHRoZSBjdXJyZW50IGNvbnRlbnRzIG9mIGEgMTYgYml0IEFEMTg0MyByZWdpc3Rlci4KKyAqCisgKiBSZXR1cm5zIHVuc2lnbmVkIHJlZ2lzdGVyIHZhbHVlIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IHJlYWRfYWQxODQzX3JlZyh2b2lkICpwcml2LCBpbnQgcmVnKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHByaXY7CisJaW50IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisKKwl3cml0ZXEoKHJlZyA8PCBDT0RFQ19DT05UUk9MX0FERFJFU1NfU0hJRlQpIHwKKwkgICAgICAgQ09ERUNfQ09OVFJPTF9SRUFELCAmbWFjZS0+cGVyaWYuYXVkaW8uY29kZWNfY29udHJvbCk7CisJd21iKCk7CisJdmFsID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOyAvKiBmbHVzaCBidXMgKi8KKwl1ZGVsYXkoMjAwKTsKKworCXZhbCA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jb2RlY19yZWFkKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisJcmV0dXJuIHZhbDsKK30KKworLyoKKyAqIHdyaXRlX2FkMTg0M19yZWcgd3JpdGVzIHRoZSBzcGVjaWZpZWQgdmFsdWUgdG8gYSAxNiBiaXQgQUQxODQzIHJlZ2lzdGVyLgorICovCitzdGF0aWMgaW50IHdyaXRlX2FkMTg0M19yZWcodm9pZCAqcHJpdiwgaW50IHJlZywgaW50IHdvcmQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gcHJpdjsKKwlpbnQgdmFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+YWQxODQzX2xvY2ssIGZsYWdzKTsKKworCXdyaXRlcSgocmVnIDw8IENPREVDX0NPTlRST0xfQUREUkVTU19TSElGVCkgfAorCSAgICAgICAod29yZCA8PCBDT0RFQ19DT05UUk9MX1dPUkRfU0hJRlQpLAorCSAgICAgICAmbWFjZS0+cGVyaWYuYXVkaW8uY29kZWNfY29udHJvbCk7CisJd21iKCk7CisJdmFsID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOyAvKiBmbHVzaCBidXMgKi8KKwl1ZGVsYXkoMjAwKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2dpbzJhdWRpb19nYWluX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisKKwl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAyOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gYWQxODQzX2dldF9nYWluX21heCgmY2hpcC0+YWQxODQzLAorCQkJCQkgICAgIChpbnQpa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fZ2Fpbl9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCB2b2w7CisKKwl2b2wgPSBhZDE4NDNfZ2V0X2dhaW4oJmNoaXAtPmFkMTg0MywgKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7CisKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9ICh2b2wgPj4gOCkgJiAweEZGOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gdm9sICYgMHhGRjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fZ2Fpbl9wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IG5ld3ZvbCwgb2xkdm9sOworCisJb2xkdm9sID0gYWQxODQzX2dldF9nYWluKCZjaGlwLT5hZDE4NDMsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKKwluZXd2b2wgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPDwgOCkgfAorCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXTsKKworCW5ld3ZvbCA9IGFkMTg0M19zZXRfZ2FpbigmY2hpcC0+YWQxODQzLCBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSwKKwkJbmV3dm9sKTsKKworCXJldHVybiBuZXd2b2wgIT0gb2xkdm9sOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fc291cmNlX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqdGV4dHNbM10gPSB7CisJCSJDYW0gTWljIiwgIk1pYyIsICJMaW5lIgorCX07CisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0VOVU1FUkFURUQ7CisJdWluZm8tPmNvdW50ID0gMTsKKwl1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtcyA9IDM7CisJaWYgKHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0gPj0gMykKKwkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IDE7CisJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsCisJICAgICAgIHRleHRzW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX3NvdXJjZV9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCisJdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IGFkMTg0M19nZXRfcmVjc3JjKCZjaGlwLT5hZDE4NDMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fc291cmNlX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgbmV3c3JjLCBvbGRzcmM7CisKKwlvbGRzcmMgPSBhZDE4NDNfZ2V0X3JlY3NyYygmY2hpcC0+YWQxODQzKTsKKwluZXdzcmMgPSBhZDE4NDNfc2V0X3JlY3NyYygmY2hpcC0+YWQxODQzLAorCQkJCSAgIHVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0pOworCisJcmV0dXJuIG5ld3NyYyAhPSBvbGRzcmM7Cit9CisKKy8qIGRhYzEvcGNtMCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3BjbTAgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiUENNIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMCwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1BDTV8wLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIGRhYzIvcGNtMSBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3BjbTEgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiUENNIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMSwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1BDTV8xLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIHJlY29yZCBsZXZlbCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3JlY2xldmVsIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkNhcHR1cmUgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1JFQ0xFViwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiByZWNvcmQgbGV2ZWwgc291cmNlIGNvbnRyb2wgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzZ2lvMmF1ZGlvX2N0cmxfcmVjc291cmNlIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkNhcHR1cmUgU291cmNlIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fc291cmNlX2luZm8sCisJLmdldCAgICAgICAgICAgID0gc2dpbzJhdWRpb19zb3VyY2VfZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fc291cmNlX3B1dCwKK307CisKKy8qIGxpbmUgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9saW5lIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuaW5kZXggICAgICAgICAgPSAwLAorCS5hY2Nlc3MgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsCisJLnByaXZhdGVfdmFsdWUgID0gQUQxODQzX0dBSU5fTElORSwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiBjZCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX2NkIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuaW5kZXggICAgICAgICAgPSAxLAorCS5hY2Nlc3MgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsCisJLnByaXZhdGVfdmFsdWUgID0gQUQxODQzX0dBSU5fTElORV8yLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIG1pYyBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX21pYyBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJNaWMgUGxheWJhY2sgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX01JQywKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisKK3N0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9zZ2lvMmF1ZGlvX25ld19taXhlcihzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXApCit7CisJaW50IGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3BjbTAsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3BjbTEsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3JlY2xldmVsLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9yZWNzb3VyY2UsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9saW5lLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9jZCwgY2hpcCkpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoY2hpcC0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZzZ2lvMmF1ZGlvX2N0cmxfbWljLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworLyogbG93LWxldmVsIGF1ZGlvIGludGVyZmFjZSBETUEgKi8KKworLyogZ2V0IGRhdGEgb3V0IG9mIGJvdW5jZSBidWZmZXIsIGNvdW50IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMiAqLworLyogcmV0dXJucyAxIGlmIGEgcGVyaW9kIGhhcyBlbGFwc2VkICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2RtYV9wdWxsX2ZyYWcoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwLAorCQkJCQl1bnNpZ25lZCBpbnQgY2gsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIGxvbmcgc3JjX2Jhc2UsIHNyY19wb3MsIGRzdF9tYXNrOworCXVuc2lnbmVkIGNoYXIgKmRzdF9iYXNlOworCWludCBkc3RfcG9zOworCXU2NCAqc3JjOworCXMxNiAqZHN0OworCXU2NCB4OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGNoaXAtPmNoYW5uZWxbY2hdLnN1YnN0cmVhbS0+cnVudGltZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5jaGFubmVsW2NoXS5sb2NrLCBmbGFncyk7CisKKwlzcmNfYmFzZSA9ICh1bnNpZ25lZCBsb25nKSBjaGlwLT5yaW5nX2Jhc2UgfCAoY2ggPDwgQ0hBTk5FTF9SSU5HX1NISUZUKTsKKwlzcmNfcG9zID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLnJlYWRfcHRyKTsKKwlkc3RfYmFzZSA9IHJ1bnRpbWUtPmRtYV9hcmVhOworCWRzdF9wb3MgPSBjaGlwLT5jaGFubmVsW2NoXS5wb3M7CisJZHN0X21hc2sgPSBmcmFtZXNfdG9fYnl0ZXMocnVudGltZSwgcnVudGltZS0+YnVmZmVyX3NpemUpIC0gMTsKKworCS8qIGNoZWNrIGlmIGEgcGVyaW9kIGhhcyBlbGFwc2VkICovCisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSArPSAoY291bnQgPj4gMyk7IC8qIGluIGZyYW1lcyAqLworCXJldCA9IGNoaXAtPmNoYW5uZWxbY2hdLnNpemUgPj0gcnVudGltZS0+cGVyaW9kX3NpemU7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSAlPSBydW50aW1lLT5wZXJpb2Rfc2l6ZTsKKworCXdoaWxlIChjb3VudCkgeworCQlzcmMgPSAodTY0ICopKHNyY19iYXNlICsgc3JjX3Bvcyk7CisJCWRzdCA9IChzMTYgKikoZHN0X2Jhc2UgKyBkc3RfcG9zKTsKKworCQl4ID0gKnNyYzsKKwkJZHN0WzBdID0gKHggPj4gQ0hBTk5FTF9MRUZUX1NISUZUKSAmIDB4ZmZmZjsKKwkJZHN0WzFdID0gKHggPj4gQ0hBTk5FTF9SSUdIVF9TSElGVCkgJiAweGZmZmY7CisKKwkJc3JjX3BvcyA9IChzcmNfcG9zICsgc2l6ZW9mKHU2NCkpICYgQ0hBTk5FTF9SSU5HX01BU0s7CisJCWRzdF9wb3MgPSAoZHN0X3BvcyArIDIgKiBzaXplb2YoczE2KSkgJiBkc3RfbWFzazsKKwkJY291bnQgLT0gc2l6ZW9mKHU2NCk7CisJfQorCisJd3JpdGVxKHNyY19wb3MsICZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5yZWFkX3B0cik7IC8qIGluIGJ5dGVzICovCisJY2hpcC0+Y2hhbm5lbFtjaF0ucG9zID0gZHN0X3BvczsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBwdXQgc29tZSBETUEgZGF0YSBpbiBib3VuY2UgYnVmZmVyLCBjb3VudCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzIgKi8KKy8qIHJldHVybnMgMSBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kbWFfcHVzaF9mcmFnKHN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCwKKwkJCQkJdW5zaWduZWQgaW50IGNoLCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJaW50IHJldDsKKwlzNjQgbCwgcjsKKwl1bnNpZ25lZCBsb25nIGRzdF9iYXNlLCBkc3RfcG9zLCBzcmNfbWFzazsKKwl1bnNpZ25lZCBjaGFyICpzcmNfYmFzZTsKKwlpbnQgc3JjX3BvczsKKwl1NjQgKmRzdDsKKwlzMTYgKnNyYzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBjaGlwLT5jaGFubmVsW2NoXS5zdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCisJZHN0X2Jhc2UgPSAodW5zaWduZWQgbG9uZyljaGlwLT5yaW5nX2Jhc2UgfCAoY2ggPDwgQ0hBTk5FTF9SSU5HX1NISUZUKTsKKwlkc3RfcG9zID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLndyaXRlX3B0cik7CisJc3JjX2Jhc2UgPSBydW50aW1lLT5kbWFfYXJlYTsKKwlzcmNfcG9zID0gY2hpcC0+Y2hhbm5lbFtjaF0ucG9zOworCXNyY19tYXNrID0gZnJhbWVzX3RvX2J5dGVzKHJ1bnRpbWUsIHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKSAtIDE7CisKKwkvKiBjaGVjayBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgKz0gKGNvdW50ID4+IDMpOyAvKiBpbiBmcmFtZXMgKi8KKwlyZXQgPSBjaGlwLT5jaGFubmVsW2NoXS5zaXplID49IHJ1bnRpbWUtPnBlcmlvZF9zaXplOworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgJT0gcnVudGltZS0+cGVyaW9kX3NpemU7CisKKwl3aGlsZSAoY291bnQpIHsKKwkJc3JjID0gKHMxNiAqKShzcmNfYmFzZSArIHNyY19wb3MpOworCQlkc3QgPSAodTY0ICopKGRzdF9iYXNlICsgZHN0X3Bvcyk7CisKKwkJbCA9IHNyY1swXTsgLyogc2lnbiBleHRlbmQgKi8KKwkJciA9IHNyY1sxXTsgLyogc2lnbiBleHRlbmQgKi8KKworCQkqZHN0ID0gKChsICYgMHgwMGZmZmZmZikgPDwgQ0hBTk5FTF9MRUZUX1NISUZUKSB8CisJCQkoKHIgJiAweDAwZmZmZmZmKSA8PCBDSEFOTkVMX1JJR0hUX1NISUZUKTsKKworCQlkc3RfcG9zID0gKGRzdF9wb3MgKyBzaXplb2YodTY0KSkgJiBDSEFOTkVMX1JJTkdfTUFTSzsKKwkJc3JjX3BvcyA9IChzcmNfcG9zICsgMiAqIHNpemVvZihzMTYpKSAmIHNyY19tYXNrOworCQljb3VudCAtPSBzaXplb2YodTY0KTsKKwl9CisKKwl3cml0ZXEoZHN0X3BvcywgJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLndyaXRlX3B0cik7IC8qIGluIGJ5dGVzICovCisJY2hpcC0+Y2hhbm5lbFtjaF0ucG9zID0gc3JjX3BvczsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2RtYV9zdGFydChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlpbnQgY2ggPSBjaGFuLT5pZHg7CisKKwkvKiByZXNldCBETUEgY2hhbm5lbCAqLworCXdyaXRlcShDSEFOTkVMX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5jb250cm9sKTsKKwl1ZGVsYXkoMTApOworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uY29udHJvbCk7CisKKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgeworCQkvKiBwdXNoIGEgZnVsbCBidWZmZXIgKi8KKwkJc25kX3NnaW8yYXVkaW9fZG1hX3B1c2hfZnJhZyhjaGlwLCBjaCwgQ0hBTk5FTF9SSU5HX1NJWkUgLSAzMik7CisJfQorCS8qIHNldCBETUEgdG8gd2FrZSBvbiA1MCUgZW1wdHkgYW5kIGVuYWJsZSBpbnRlcnJ1cHQgKi8KKwl3cml0ZXEoQ0hBTk5FTF9ETUFfRU5BQkxFIHwgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEXzUwLAorCSAgICAgICAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uY29udHJvbCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fZG1hX3N0b3Aoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaGFuLT5pZHhdLmNvbnRyb2wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3Qgc25kX3NnaW8yYXVkaW9fZG1hX2luX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBjb3VudCwgY2g7CisKKwlzdWJzdHJlYW0gPSBjaGFuLT5zdWJzdHJlYW07CisJY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwljaCA9IGNoYW4tPmlkeDsKKworCS8qIGVtcHR5IHRoZSByaW5nICovCisJY291bnQgPSBDSEFOTkVMX1JJTkdfU0laRSAtCisJCXJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5kZXB0aCkgLSAzMjsKKwlpZiAoc25kX3NnaW8yYXVkaW9fZG1hX3B1bGxfZnJhZyhjaGlwLCBjaCwgY291bnQpKQorCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKHN1YnN0cmVhbSk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzbmRfc2dpbzJhdWRpb19kbWFfb3V0X2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBjb3VudCwgY2g7CisKKwlzdWJzdHJlYW0gPSBjaGFuLT5zdWJzdHJlYW07CisJY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwljaCA9IGNoYW4tPmlkeDsKKwkvKiBmaWxsIHRoZSByaW5nICovCisJY291bnQgPSBDSEFOTkVMX1JJTkdfU0laRSAtCisJCXJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5kZXB0aCkgLSAzMjsKKwlpZiAoc25kX3NnaW8yYXVkaW9fZG1hX3B1c2hfZnJhZyhjaGlwLCBjaCwgY291bnQpKQorCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKHN1YnN0cmVhbSk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzbmRfc2dpbzJhdWRpb19lcnJvcl9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gZGV2X2lkOworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCisJc3Vic3RyZWFtID0gY2hhbi0+c3Vic3RyZWFtOworCXNuZF9zZ2lvMmF1ZGlvX2RtYV9zdG9wKHN1YnN0cmVhbSk7CisJc25kX3NnaW8yYXVkaW9fZG1hX3N0YXJ0KHN1YnN0cmVhbSk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisvKiBQQ00gcGFydCAqLworLyogUENNIGhhcmR3YXJlIGRlZmluaXRpb24gKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBzbmRfc2dpbzJhdWRpb19wY21faHcgPSB7CisJLmluZm8gPSAoU05EUlZfUENNX0lORk9fTU1BUCB8CisJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0JMT0NLX1RSQU5TRkVSKSwKKwkuZm9ybWF0cyA9ICAgICAgICAgIFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFLAorCS5yYXRlcyA9ICAgICAgICAgICAgU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKKwkucmF0ZV9taW4gPSAgICAgICAgIDgwMDAsCisJLnJhdGVfbWF4ID0gICAgICAgICA0ODAwMCwKKwkuY2hhbm5lbHNfbWluID0gICAgIDIsCisJLmNoYW5uZWxzX21heCA9ICAgICAyLAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gNjU1MzYsCisJLnBlcmlvZF9ieXRlc19taW4gPSAzMjc2OCwKKwkucGVyaW9kX2J5dGVzX21heCA9IDY1NTM2LAorCS5wZXJpb2RzX21pbiA9ICAgICAgMSwKKwkucGVyaW9kc19tYXggPSAgICAgIDEwMjQsCit9OworCisvKiBQQ00gcGxheWJhY2sgb3BlbiBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazFfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPmh3ID0gc25kX3NnaW8yYXVkaW9fcGNtX2h3OworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9ICZjaGlwLT5jaGFubmVsWzFdOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMl9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCisJcnVudGltZS0+aHcgPSBzbmRfc2dpbzJhdWRpb19wY21faHc7CisJcnVudGltZS0+cHJpdmF0ZV9kYXRhID0gJmNoaXAtPmNoYW5uZWxbMl07CisJcmV0dXJuIDA7Cit9CisKKy8qIFBDTSBjYXB0dXJlIG9wZW4gY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCisJcnVudGltZS0+aHcgPSBzbmRfc2dpbzJhdWRpb19wY21faHc7CisJcnVudGltZS0+cHJpdmF0ZV9kYXRhID0gJmNoaXAtPmNoYW5uZWxbMF07CisJcmV0dXJuIDA7Cit9CisKKy8qIFBDTSBjbG9zZSBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKworLyogaHdfcGFyYW1zIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqaHdfcGFyYW1zKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJaW50IHNpemUgPSBwYXJhbXNfYnVmZmVyX2J5dGVzKGh3X3BhcmFtcyk7CisKKwkvKiBhbGxvYyB2aXJ0dWFsICdkbWEnIGFyZWEgKi8KKwlpZiAocnVudGltZS0+ZG1hX2FyZWEpCisJCXZmcmVlKHJ1bnRpbWUtPmRtYV9hcmVhKTsKKwlydW50aW1lLT5kbWFfYXJlYSA9IHZtYWxsb2Moc2l6ZSk7CisJaWYgKHJ1bnRpbWUtPmRtYV9hcmVhID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCXJ1bnRpbWUtPmRtYV9ieXRlcyA9IHNpemU7CisJcmV0dXJuIDA7Cit9CisKKy8qIGh3X2ZyZWUgY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJaWYgKHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEpCisJCXZmcmVlKHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEpOworCXN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEgPSBOVUxMOworCXJldHVybiAwOworfQorCisvKiBwcmVwYXJlIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisJaW50IGNoID0gY2hhbi0+aWR4OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCisJLyogU2V0dXAgdGhlIHBzZXVkby1kbWEgdHJhbnNmZXIgcG9pbnRlcnMuICAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnBvcyA9IDA7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSA9IDA7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc3Vic3RyZWFtID0gc3Vic3RyZWFtOworCisJLyogc2V0IEFEMTg0MyBmb3JtYXQgKi8KKwkvKiBoYXJkd2FyZSBmb3JtYXQgaXMgYWx3YXlzIFMxNl9MRSAqLworCXN3aXRjaCAoc3Vic3RyZWFtLT5zdHJlYW0pIHsKKwljYXNlIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0s6CisJCWFkMTg0M19zZXR1cF9kYWMoJmNoaXAtPmFkMTg0MywKKwkJCQkgY2ggLSAxLAorCQkJCSBydW50aW1lLT5yYXRlLAorCQkJCSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRSwKKwkJCQkgcnVudGltZS0+Y2hhbm5lbHMpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRToKKwkJYWQxODQzX3NldHVwX2FkYygmY2hpcC0+YWQxODQzLAorCQkJCSBydW50aW1lLT5yYXRlLAorCQkJCSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRSwKKwkJCQkgcnVudGltZS0+Y2hhbm5lbHMpOworCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCXJldHVybiAwOworfQorCisvKiB0cmlnZ2VyIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgICAgIGludCBjbWQpCit7CisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorCQkvKiBzdGFydCB0aGUgUENNIGVuZ2luZSAqLworCQlzbmRfc2dpbzJhdWRpb19kbWFfc3RhcnQoc3Vic3RyZWFtKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCQkvKiBzdG9wIHRoZSBQQ00gZW5naW5lICovCisJCXNuZF9zZ2lvMmF1ZGlvX2RtYV9zdG9wKHN1YnN0cmVhbSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworLyogcG9pbnRlciBjYWxsYmFjayAqLworc3RhdGljIHNuZF9wY21fdWZyYW1lc190CitzbmRfc2dpbzJhdWRpb19wY21fcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCS8qIGdldCB0aGUgY3VycmVudCBoYXJkd2FyZSBwb2ludGVyICovCisJcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsCisJCQkgICAgICAgY2hpcC0+Y2hhbm5lbFtjaGFuLT5pZHhdLnBvcyk7Cit9CisKKy8qIGdldCB0aGUgcGh5c2ljYWwgcGFnZSBwb2ludGVyIG9uIHRoZSBnaXZlbiBvZmZzZXQgKi8KK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqc25kX3NnaW8yYXVkaW9fcGFnZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJcmV0dXJuIHZtYWxsb2NfdG9fcGFnZShzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhICsgb2Zmc2V0KTsKK30KKworLyogb3BlcmF0b3JzICovCitzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMV9vcHMgPSB7CisJLm9wZW4gPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGxheWJhY2sxX29wZW4sCisJLmNsb3NlID0gICAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIsCisJLnBhZ2UgPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGFnZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX3NnaW8yYXVkaW9fcGxheWJhY2syX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazJfb3BlbiwKKwkuY2xvc2UgPSAgICAgICBzbmRfc2dpbzJhdWRpb19wY21fY2xvc2UsCisJLmlvY3RsID0gICAgICAgc25kX3BjbV9saWJfaW9jdGwsCisJLmh3X3BhcmFtcyA9ICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X3BhcmFtcywKKwkuaHdfZnJlZSA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fdHJpZ2dlciwKKwkucG9pbnRlciA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fcG9pbnRlciwKKwkucGFnZSA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19wYWdlLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBzbmRfc2dpbzJhdWRpb19jYXB0dXJlX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19jYXB0dXJlX29wZW4sCisJLmNsb3NlID0gICAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIsCisJLnBhZ2UgPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGFnZSwKK307CisKKy8qCisgKiAgZGVmaW5pdGlvbnMgb2YgY2FwdHVyZSBhcmUgb21pdHRlZCBoZXJlLi4uCisgKi8KKworLyogY3JlYXRlIGEgcGNtIGRldmljZSAqLworc3RhdGljIGludCBfX2RldmluaXQgc25kX3NnaW8yYXVkaW9fbmV3X3BjbShzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXApCit7CisJc3RydWN0IHNuZF9wY20gKnBjbTsKKwlpbnQgZXJyOworCisJLyogY3JlYXRlIGZpcnN0IHBjbSBkZXZpY2Ugd2l0aCBvbmUgb3V0cHV0cyBhbmQgb25lIGlucHV0ICovCisJZXJyID0gc25kX3BjbV9uZXcoY2hpcC0+Y2FyZCwgIlNHSSBPMiBBdWRpbyIsIDAsIDEsIDEsICZwY20pOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcGNtLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXN0cmNweShwY20tPm5hbWUsICJTR0kgTzIgREFDMSIpOworCisJLyogc2V0IG9wZXJhdG9ycyAqLworCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0ssCisJCQkmc25kX3NnaW8yYXVkaW9fcGxheWJhY2sxX29wcyk7CisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFLAorCQkJJnNuZF9zZ2lvMmF1ZGlvX2NhcHR1cmVfb3BzKTsKKworCS8qIGNyZWF0ZSBzZWNvbmQgIHBjbSBkZXZpY2Ugd2l0aCBvbmUgb3V0cHV0cyBhbmQgbm8gaW5wdXQgKi8KKwllcnIgPSBzbmRfcGNtX25ldyhjaGlwLT5jYXJkLCAiU0dJIE8yIEF1ZGlvIiwgMSwgMSwgMCwgJnBjbSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlwY20tPnByaXZhdGVfZGF0YSA9IGNoaXA7CisJc3RyY3B5KHBjbS0+bmFtZSwgIlNHSSBPMiBEQUMyIik7CisKKwkvKiBzZXQgb3BlcmF0b3JzICovCisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSywKKwkJCSZzbmRfc2dpbzJhdWRpb19wbGF5YmFjazJfb3BzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHsKKwlpbnQgaWR4OworCWludCBpcnE7CisJaXJxcmV0dXJuX3QgKCppc3IpKGludCwgdm9pZCAqKTsKKwljb25zdCBjaGFyICpkZXNjOworfSBzbmRfc2dpbzJfaXNyX3RhYmxlW10gPSB7CisJeworCQkuaWR4ID0gMCwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8xX0RNQVRfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZG1hX2luX2lzciwKKwkJLmRlc2MgPSAiQ2FwdHVyZSBETUEgQ2hhbm5lbCAwIgorCX0sIHsKKwkJLmlkeCA9IDAsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPMV9PRl9JUlEsCisJCS5pc3IgPSBzbmRfc2dpbzJhdWRpb19lcnJvcl9pc3IsCisJCS5kZXNjID0gIkNhcHR1cmUgT3ZlcmZsb3ciCisJfSwgeworCQkuaWR4ID0gMSwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8yX0RNQVRfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZG1hX291dF9pc3IsCisJCS5kZXNjID0gIlBsYXliYWNrIERNQSBDaGFubmVsIDEiCisJfSwgeworCQkuaWR4ID0gMSwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8yX01FUlJfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZXJyb3JfaXNyLAorCQkuZGVzYyA9ICJNZW1vcnkgRXJyb3IgQ2hhbm5lbCAxIgorCX0sIHsKKwkJLmlkeCA9IDIsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPM19ETUFUX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2RtYV9vdXRfaXNyLAorCQkuZGVzYyA9ICJQbGF5YmFjayBETUEgQ2hhbm5lbCAyIgorCX0sIHsKKwkJLmlkeCA9IDIsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPM19NRVJSX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2Vycm9yX2lzciwKKwkJLmRlc2MgPSAiTWVtb3J5IEVycm9yIENoYW5uZWwgMiIKKwl9Cit9OworCisvKiBBTFNBIGRyaXZlciAqLworCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2ZyZWUoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwKQoreworCWludCBpOworCisJLyogcmVzZXQgaW50ZXJmYWNlICovCisJd3JpdGVxKEFVRElPX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwl1ZGVsYXkoMSk7CisJd3JpdGVxKDAsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKworCS8qIHJlbGVhc2UgSVJRJ3MgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzbmRfc2dpbzJfaXNyX3RhYmxlKTsgaSsrKQorCQlmcmVlX2lycShzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlycSwKKwkJCSAmY2hpcC0+Y2hhbm5lbFtzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlkeF0pOworCisJZG1hX2ZyZWVfY29oZXJlbnQoTlVMTCwgTUFDRUlTQV9SSU5HQlVGRkVSU19TSVpFLAorCQkJICBjaGlwLT5yaW5nX2Jhc2UsIGNoaXAtPnJpbmdfYmFzZV9kbWEpOworCisJLyogcmVsZWFzZSBjYXJkIGRhdGEgKi8KKwlrZnJlZShjaGlwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisKKwlyZXR1cm4gc25kX3NnaW8yYXVkaW9fZnJlZShjaGlwKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBvcHMgPSB7CisJLmRldl9mcmVlID0gc25kX3NnaW8yYXVkaW9fZGV2X2ZyZWUsCit9OworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc2dpbzJhdWRpb19jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLAorCQkJCQkgICBzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKipyY2hpcCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXA7CisJaW50IGksIGVycjsKKworCSpyY2hpcCA9IE5VTEw7CisKKwkvKiBjaGVjayBpZiBhIGNvZGVjIGlzIGF0dGFjaGVkIHRvIHRoZSBpbnRlcmZhY2UgKi8KKwkvKiAoQXVkaW8gb3IgQXVkaW8vVmlkZW8gYm9hcmQgcHJlc2VudCkgKi8KKwlpZiAoIShyZWFkcSgmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCkgJiBBVURJT19DT05UUk9MX0NPREVDX1BSRVNFTlQpKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCWNoaXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoY2hpcCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWNoaXAtPmNhcmQgPSBjYXJkOworCisJY2hpcC0+cmluZ19iYXNlID0gZG1hX2FsbG9jX2NvaGVyZW50KE5VTEwsIE1BQ0VJU0FfUklOR0JVRkZFUlNfU0laRSwKKwkJCQkJICAgICAmY2hpcC0+cmluZ19iYXNlX2RtYSwgR0ZQX1VTRVIpOworCWlmIChjaGlwLT5yaW5nX2Jhc2UgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9FUlIKKwkJICAgICAgICJzZ2lvMmF1ZGlvOiBjb3VsZCBub3QgYWxsb2NhdGUgcmluZyBidWZmZXJzXG4iKTsKKwkJa2ZyZWUoY2hpcCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXNwaW5fbG9ja19pbml0KCZjaGlwLT5hZDE4NDNfbG9jayk7CisKKwkvKiBpbml0aWFsaXplIGNoYW5uZWxzICovCisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQlzcGluX2xvY2tfaW5pdCgmY2hpcC0+Y2hhbm5lbFtpXS5sb2NrKTsKKwkJY2hpcC0+Y2hhbm5lbFtpXS5pZHggPSBpOworCX0KKworCS8qIGFsbG9jYXRlIElSUXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzbmRfc2dpbzJfaXNyX3RhYmxlKTsgaSsrKSB7CisJCWlmIChyZXF1ZXN0X2lycShzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlycSwKKwkJCQlzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlzciwKKwkJCQkwLAorCQkJCXNuZF9zZ2lvMl9pc3JfdGFibGVbaV0uZGVzYywKKwkJCQkmY2hpcC0+Y2hhbm5lbFtzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlkeF0pKSB7CisJCQlzbmRfc2dpbzJhdWRpb19mcmVlKGNoaXApOworCQkJcHJpbnRrKEtFUk5fRVJSICJzZ2lvMmF1ZGlvOiBjYW5ub3QgYWxsb2NhdGUgaXJxICVkXG4iLAorCQkJICAgICAgIHNuZF9zZ2lvMl9pc3JfdGFibGVbaV0uaXJxKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwl9CisKKwkvKiByZXNldCB0aGUgaW50ZXJmYWNlICovCisJd3JpdGVxKEFVRElPX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwl1ZGVsYXkoMSk7CisJd3JpdGVxKDAsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwltc2xlZXBfaW50ZXJydXB0aWJsZSgxKTsgLyogZ2l2ZSB0aW1lIHRvIHJlY292ZXIgKi8KKworCS8qIHNldCByaW5nIGJhc2UgKi8KKwl3cml0ZXEoY2hpcC0+cmluZ19iYXNlX2RtYSwgJm1hY2UtPnBlcmlmLmN0cmwucmluZ2Jhc2UpOworCisJLyogYXR0YWNoIHRoZSBBRDE4NDMgY29kZWMgKi8KKwljaGlwLT5hZDE4NDMucmVhZCA9IHJlYWRfYWQxODQzX3JlZzsKKwljaGlwLT5hZDE4NDMud3JpdGUgPSB3cml0ZV9hZDE4NDNfcmVnOworCWNoaXAtPmFkMTg0My5jaGlwID0gY2hpcDsKKworCS8qIGluaXRpYWxpemUgdGhlIEFEMTg0MyBjb2RlYyAqLworCWVyciA9IGFkMTg0M19pbml0KCZjaGlwLT5hZDE4NDMpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9zZ2lvMmF1ZGlvX2ZyZWUoY2hpcCk7CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0xPV0xFVkVMLCBjaGlwLCAmb3BzKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfc2dpbzJhdWRpb19mcmVlKGNoaXApOworCQlyZXR1cm4gZXJyOworCX0KKwkqcmNoaXAgPSBjaGlwOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc2dpbzJhdWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXA7CisJaW50IGVycjsKKworCWNhcmQgPSBzbmRfY2FyZF9uZXcoaW5kZXgsIGlkLCBUSElTX01PRFVMRSwgMCk7CisJaWYgKGNhcmQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSBzbmRfc2dpbzJhdWRpb19jcmVhdGUoY2FyZCwgJmNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCXNuZF9jYXJkX3NldF9kZXYoY2FyZCwgJnBkZXYtPmRldik7CisKKwllcnIgPSBzbmRfc2dpbzJhdWRpb19uZXdfcGNtKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCWVyciA9IHNuZF9zZ2lvMmF1ZGlvX25ld19taXhlcihjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKworCXN0cmNweShjYXJkLT5kcml2ZXIsICJTR0kgTzIgQXVkaW8iKTsKKwlzdHJjcHkoY2FyZC0+c2hvcnRuYW1lLCAiU0dJIE8yIEF1ZGlvIik7CisJc3ByaW50ZihjYXJkLT5sb25nbmFtZSwgIiVzIGlycSAlaS0laSIsCisJCWNhcmQtPnNob3J0bmFtZSwKKwkJTUFDRUlTQV9BVURJTzFfRE1BVF9JUlEsCisJCU1BQ0VJU0FfQVVESU8zX01FUlJfSVJRKTsKKworCWVyciA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNhcmQpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNhcmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZXhpdCBzbmRfc2dpbzJhdWRpb19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNnaW8yYXVkaW9fZHJpdmVyID0geworCS5wcm9iZQk9IHNuZF9zZ2lvMmF1ZGlvX3Byb2JlLAorCS5yZW1vdmUJPSBfX2RldmV4aXRfcChzbmRfc2dpbzJhdWRpb19yZW1vdmUpLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInNnaW8yYXVkaW8iLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfc2dpbzJhdWRpb19pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3Rlcigmc2dpbzJhdWRpb19kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYWxzYV9jYXJkX3NnaW8yYXVkaW9fZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzZ2lvMmF1ZGlvX2RyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KGFsc2FfY2FyZF9zZ2lvMmF1ZGlvX2luaXQpCittb2R1bGVfZXhpdChhbHNhX2NhcmRfc2dpbzJhdWRpb19leGl0KQpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL0tjb25maWcgYi9zb3VuZC9vc3MvS2NvbmZpZwppbmRleCAzYmUyZGMxLi4zMzk0MDEzIDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvS2NvbmZpZworKysgYi9zb3VuZC9vc3MvS2NvbmZpZwpAQCAtNyw3ICs3LDcgQEAKIAogY29uZmlnIFNPVU5EX0JDTV9DUzQyOTdBCiAJdHJpc3RhdGUgIkNyeXN0YWwgU291bmQgQ1M0Mjk3YSAoZm9yIFN3YXJtKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNJQllURV9TV0FSTQorCWRlcGVuZHMgb24gU0lCWVRFX1NXQVJNCiAJaGVscAogCSAgVGhlIEJDTTkxMjUwQSBoYXMgYSBDcnlzdGFsIENTNDI5N2Egb24gc3luY2hyb25vdXMgc2VyaWFsCiAJICBwb3J0IEIgKGluIGFkZGl0aW9uIHRvIHRoZSBEQi05IHNlcmlhbCBwb3J0KS4gIFNheSBZIG9yIE0KQEAgLTE3LDcgKzE3LDcgQEAKIAogY29uZmlnIFNPVU5EX1ZXU05ECiAJdHJpc3RhdGUgIlNHSSBWaXN1YWwgV29ya3N0YXRpb24gU291bmQiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl9WSVNXUwogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IGhhdmUgYW4gU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBhbmQgeW91IHdhbnQgdG8gYmUKIAkgIGFibGUgdG8gdXNlIGl0cyBvbi1ib2FyZCBhdWRpby4gIFJlYWQKQEAgLTI2LDE5ICsyNiwxOCBAQAogCiBjb25maWcgU09VTkRfSEFMMgogCXRyaXN0YXRlICJTR0kgSEFMMiBzb3VuZCAoRVhQRVJJTUVOVEFMKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNHSV9JUDIyICYmIEVYUEVSSU1FTlRBTAorCWRlcGVuZHMgb24gU0dJX0lQMjIgJiYgRVhQRVJJTUVOVEFMCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3UgaGF2ZSBhbiBTR0kgSW5keSBvciBJbmRpZ28yIHN5c3RlbSBhbmQgd2FudCB0byBiZSBhYmxlIHRvCiAJICB1c2UgaXRzIG9uLWJvYXJkIEEyIGF1ZGlvIHN5c3RlbS4KIAogY29uZmlnIFNPVU5EX0FVMTU1MF9BQzk3CiAJdHJpc3RhdGUgIkF1MTU1MC9BdTEyMDAgQUM5NyBTb3VuZCIKLQlzZWxlY3QgU05EX0FDOTdfQ09ERUMKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIChTT0NfQVUxNTUwIHx8IFNPQ19BVTEyMDApCisJZGVwZW5kcyBvbiBTT0NfQVUxNTUwIHx8IFNPQ19BVTEyMDAKIAogY29uZmlnIFNPVU5EX1RSSURFTlQKIAl0cmlzdGF0ZSAiVHJpZGVudCA0RFdhdmUgRFgvTlgsIFNpUyA3MDE4IG9yIEFMaSA1NDUxIFBDSSBBdWRpbyBDb3JlIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgUENJCisJZGVwZW5kcyBvbiBQQ0kKIAktLS1oZWxwLS0tCiAJICBTYXkgWSBvciBNIGlmIHlvdSBoYXZlIGEgUENJIHNvdW5kIGNhcmQgdXRpbGl6aW5nIHRoZSBUcmlkZW50CiAJICA0RFdhdmUtRFgvTlggY2hpcHNldCBvciB5b3VyIG1vdGhlciBib2FyZCBjaGlwc2V0IGhhcyBTaVMgNzAxOApAQCAtNzksNyArNzgsNyBAQAogCiBjb25maWcgU09VTkRfTVNORENMQVMKIAl0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgVHVydGxlIEJlYWNoIE11bHRpU291bmQgQ2xhc3NpYywgVGFoaXRpLCBNb250ZXJleSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIChtIHx8ICFTVEFOREFMT05FKSAmJiBJU0EKKwlkZXBlbmRzIG9uIChtIHx8ICFTVEFOREFMT05FKSAmJiBJU0EKIAloZWxwCiAJICBTYXkgTSBoZXJlIGlmIHlvdSBoYXZlIGEgVHVydGxlIEJlYWNoIE11bHRpU291bmQgQ2xhc3NpYywgVGFoaXRpIG9yCiAJICBNb250ZXJleSAobm90IGZvciB0aGUgUGlubmFjbGUgb3IgRmlqaSkuCkBAIC0xNDMsNyArMTQyLDcgQEAKIAogY29uZmlnIFNPVU5EX01TTkRQSU4KIAl0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgVHVydGxlIEJlYWNoIE11bHRpU291bmQgUGlubmFjbGUsIEZpamkiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCisJZGVwZW5kcyBvbiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCiAJaGVscAogCSAgU2F5IE0gaGVyZSBpZiB5b3UgaGF2ZSBhIFR1cnRsZSBCZWFjaCBNdWx0aVNvdW5kIFBpbm5hY2xlIG9yIEZpamkuCiAJICBTZWUgPGZpbGU6RG9jdW1lbnRhdGlvbi9zb3VuZC9vc3MvTXVsdGlTb3VuZD4gZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvbgpAQCAtMjI5LDcgKzIyOCw3IEBACiAJICBjb25maWd1cmUgdGhlIGNhcmQncyByZXNvdXJjZXMuCiAKIGNvbW1lbnQgIk1TTkQgUGlubmFjbGUgRFNQIHNlY3Rpb24gd2lsbCBiZSBjb25maWd1cmVkIHRvIGFib3ZlIHBhcmFtZXRlcnMuIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCisJZGVwZW5kcyBvbiBTT1VORF9NU05EUElOPXkgJiYgTVNORFBJTl9OT05QTlAKIAogY29uZmlnIE1TTkRQSU5fQ0ZHCiAJaGV4ICJNU05EIFBpbm5hY2xlIGNvbmZpZyBwb3J0IDI1MCwyNjAsMjcwIgpAQCAtMjQyLDcgKzI0MSw3IEBACiAJICBNb2RlIi4KIAogY29tbWVudCAiUGlubmFjbGUtc3BlY2lmaWMgRGV2aWNlIENvbmZpZ3VyYXRpb24gKDAgZGlzYWJsZXMpIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCisJZGVwZW5kcyBvbiBTT1VORF9NU05EUElOPXkgJiYgTVNORFBJTl9OT05QTlAKIAogY29uZmlnIE1TTkRQSU5fTVBVX0lPCiAJaGV4ICJNU05EIFBpbm5hY2xlIE1QVSBJL08gKGUuZy4gMzMwKSIKQEAgLTI5NCw3ICsyOTMsNyBAQAogCiBjb25maWcgTVNORF9GSUZPU0laRQogCWludCAiTVNORCBidWZmZXIgc2l6ZSAoa0IpIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgKFNPVU5EX01TTkRQSU49eSB8fCBTT1VORF9NU05EQ0xBUz15KQorCWRlcGVuZHMgb24gU09VTkRfTVNORFBJTj15IHx8IFNPVU5EX01TTkRDTEFTPXkKIAlkZWZhdWx0ICIxMjgiCiAJaGVscAogCSAgQ29uZmlndXJlcyB0aGUgc2l6ZSBvZiBlYWNoIGF1ZGlvIGJ1ZmZlciwgaW4ga2lsb2J5dGVzLCBmb3IKQEAgLTMwMiw5ICszMDEsOSBAQAogCSAgYW5kIFBpbm5hY2xlKS4gTGFyZ2VyIHZhbHVlcyByZWR1Y2UgdGhlIGNoYW5jZSBvZiBkYXRhIG92ZXJydW5zIGF0CiAJICB0aGUgZXhwZW5zZSBvZiBvdmVyYWxsIGxhdGVuY3kuIElmIHVuc3VyZSwgdXNlIHRoZSBkZWZhdWx0LgogCi1jb25maWcgU09VTkRfT1NTCittZW51Y29uZmlnIFNPVU5EX09TUwogCXRyaXN0YXRlICJPU1Mgc291bmQgbW9kdWxlcyIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIElTQV9ETUFfQVBJICYmIFZJUlRfVE9fQlVTCisJZGVwZW5kcyBvbiBJU0FfRE1BX0FQSSAmJiBWSVJUX1RPX0JVUwogCWhlbHAKIAkgIE9TUyBpcyB0aGUgT3BlbiBTb3VuZCBTeXN0ZW0gc3VpdGUgb2Ygc291bmQgY2FyZCBkcml2ZXJzLiAgVGhleSBtYWtlCiAJICBzb3VuZCBwcm9ncmFtbWluZyBlYXNpZXIgc2luY2UgdGhleSBwcm92aWRlIGEgY29tbW9uIEFQSS4gIFNheSBZIG9yCkBAIC0zMTIsMTYgKzMxMSwxNiBAQAogCSAgZHJpdmVyIGZvciB5b3VyIHNvdW5kIGNhcmQgYWJvdmUsIHRoZW4gcGljayB5b3VyIGRyaXZlciBmcm9tIHRoZQogCSAgbGlzdCBiZWxvdy4KIAoraWYgU09VTkRfT1NTCisKIGNvbmZpZyBTT1VORF9UUkFDRUlOSVQKIAlib29sICJWZXJib3NlIGluaXRpYWxpc2F0aW9uIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgVmVyYm9zZSBzb3VuZGNhcmQgaW5pdGlhbGl6YXRpb24gLS0gYWZmZWN0cyB0aGUgZm9ybWF0IG9mIGF1dG9wcm9iZQogCSAgYW5kIGluaXRpYWxpemF0aW9uIG1lc3NhZ2VzIGF0IGJvb3QgdGltZS4KIAogY29uZmlnIFNPVU5EX0RNQVAKIAlib29sICJQZXJzaXN0ZW50IERNQSBidWZmZXJzIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgTGludXggY2FuIG9mdGVuIGhhdmUgcHJvYmxlbXMgYWxsb2NhdGluZyBETUEgYnVmZmVycyBmb3IgSVNBIHNvdW5kCiAJICBjYXJkcyBvbiBtYWNoaW5lcyB3aXRoIG1vcmUgdGhhbiAxNk1CIG9mIFJBTS4gVGhpcyBpcyBiZWNhdXNlIElTQQpAQCAtMzM4LDggKzMzNyw2IEBACiAKIGNvbmZpZyBTT1VORF9TU0NBUEUKIAl0cmlzdGF0ZSAiRW5zb25pcSBTb3VuZFNjYXBlIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKLQlkZXBlbmRzIG9uIFZJUlRfVE9fQlVTCiAJaGVscAogCSAgQW5zd2VyIFkgaWYgeW91IGhhdmUgYSBzb3VuZCBjYXJkIGJhc2VkIG9uIHRoZSBFbnNvbmlxIFNvdW5kU2NhcGUKIAkgIGNoaXBzZXQuIFN1Y2ggY2FyZHMgYXJlIGJlaW5nIG1hbnVmYWN0dXJlZCBhdCBsZWFzdCBieSBFbnNvbmlxLCBTcGVhCkBAIC0zNTIsMTMgKzM0OSwxMSBAQAogCiBjb25maWcgU09VTkRfVk1JREkKIAl0cmlzdGF0ZSAiTG9vcGJhY2sgTUlESSBkZXZpY2Ugc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIE1JREkgbG9vcGJhY2sgb24gcG9ydCAxIG9yIDIuCiAKIGNvbmZpZyBTT1VORF9UUklYCiAJdHJpc3RhdGUgIk1lZGlhVHJpeCBBdWRpb1RyaXggUHJvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAloZWxwCiAJICBBbnN3ZXIgWSBpZiB5b3UgaGF2ZSB0aGUgQXVkaW9UcmlYIFBybyBzb3VuZCBjYXJkIG1hbnVmYWN0dXJlZAogCSAgYnkgTWVkaWFUcml4LgpAQCAtMzgyLDcgKzM3Nyw2IEBACiAKIGNvbmZpZyBTT1VORF9NU1MKIAl0cmlzdGF0ZSAiTWljcm9zb2Z0IFNvdW5kIFN5c3RlbSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQWdhaW4gdGhpbmsgY2FyZWZ1bGx5IGJlZm9yZSBhbnN3ZXJpbmcgWSB0byB0aGlzIHF1ZXN0aW9uLiAgSXQncwogCSAgc2FmZSB0byBhbnN3ZXIgWSBpZiB5b3UgaGF2ZSB0aGUgb3JpZ2luYWwgV2luZG93cyBTb3VuZCBTeXN0ZW0gY2FyZApAQCAtNDE0LDcgKzQwOCw2IEBACiAKIGNvbmZpZyBTT1VORF9NUFU0MDEKIAl0cmlzdGF0ZSAiTVBVLTQwMSBzdXBwb3J0IChOT1QgZm9yIFNCMTYpIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQmUgY2FyZWZ1bCB3aXRoIHRoaXMgcXVlc3Rpb24uICBUaGUgTVBVNDAxIGludGVyZmFjZSBpcyBzdXBwb3J0ZWQgYnkKIAkgIGFsbCBzb3VuZCBjYXJkcy4gIEhvd2V2ZXIsIHNvbWUgbmF0aXZlbHkgc3VwcG9ydGVkIGNhcmRzIGhhdmUgdGhlaXIKQEAgLTQzMCw3ICs0MjMsNiBAQAogCiBjb25maWcgU09VTkRfUEFTCiAJdHJpc3RhdGUgIlByb0F1ZGlvU3BlY3RydW0gMTYgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFuc3dlciBZIG9ubHkgaWYgeW91IGhhdmUgYSBQcm8gQXVkaW8gU3BlY3RydW0gMTYsIFByb0F1ZGlvIFN0dWRpbwogCSAgMTYgb3IgTG9naXRlY2ggU291bmRNYW4gMTYgc291bmQgY2FyZC4gQW5zd2VyIE4gaWYgeW91IGhhdmUgc29tZQpAQCAtNDUyLDcgKzQ0NCw2IEBACiAKIGNvbmZpZyBTT1VORF9QU1MKIAl0cmlzdGF0ZSAiUFNTIChBRDE4NDgsIEFEU1AtMjExNSwgRVNDNjE0KSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgQW5zd2VyIFkgb3IgTSBpZiB5b3UgaGF2ZSBhbiBPcmNoaWQgU1czMiwgQ2FyZGluYWwgRFNQMTYsIEJlZXRob3ZlbgogCSAgQURTUC0xNiBvciBzb21lIG90aGVyIGNhcmQgYmFzZWQgb24gdGhlIFBTUyBjaGlwc2V0IChBRDE4NDggY29kZWMgKwpAQCAtNDk1LDcgKzQ4Niw2IEBACiAKIGNvbmZpZyBTT1VORF9TQgogCXRyaXN0YXRlICIxMDAlIFNvdW5kIEJsYXN0ZXIgY29tcGF0aWJsZXMgKFNCMTYvMzIvNjQsIEVTUywgSmF6ejE2KSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQW5zd2VyIFkgaWYgeW91IGhhdmUgYW4gb3JpZ2luYWwgU291bmQgQmxhc3RlciBjYXJkIG1hZGUgYnkgQ3JlYXRpdmUKIAkgIExhYnMgb3IgYSAxMDAlIGhhcmR3YXJlIGNvbXBhdGlibGUgY2xvbmUgKGxpa2UgdGhlIFRodW5kZXJib2FyZCBvcgpAQCAtNTIyLDcgKzUxMiw2IEBACiAKIGNvbmZpZyBTT1VORF9ZTTM4MTIKIAl0cmlzdGF0ZSAiWWFtYWhhIEZNIHN5bnRoZXNpemVyIChZTTM4MTIvT1BMLTMpIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAktLS1oZWxwLS0tCiAJICBBbnN3ZXIgWSBpZiB5b3VyIGNhcmQgaGFzIGEgRk0gY2hpcCBtYWRlIGJ5IFlhbWFoYSAoT1BMMi9PUEwzL09QTDQpLgogCSAgQW5zd2VyaW5nIFkgaXMgdXN1YWxseSBhIHNhZmUgYW5kIHJlY29tbWVuZGVkIGNob2ljZSwgaG93ZXZlciBzb21lCkBAIC01MzgsNyArNTI3LDYgQEAKIAogY29uZmlnIFNPVU5EX1VBUlQ2ODUwCiAJdHJpc3RhdGUgIjY4NTAgVUFSVCBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBNSURJIGludGVyZmFjZXMgYmFzZWQgb24gdGhlIDY4NTAKIAkgIFVBUlQgY2hpcC4gVGhpcyBpbnRlcmZhY2UgaXMgcmFyZWx5IGZvdW5kIG9uIHNvdW5kIGNhcmRzLiBJdCdzIHNhZmUKQEAgLTU0OSw3ICs1MzcsNiBAQAogCiBjb25maWcgU09VTkRfQUVEU1AxNgogCXRyaXN0YXRlICJHYWxsYW50IEF1ZGlvIENhcmRzIChTQy02MDAwIGFuZCBTQy02NjAwIGJhc2VkKSIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFuc3dlciBZIGlmIHlvdSBoYXZlIGEgR2FsbGFudCdzIEF1ZGlvIEV4Y2VsIERTUCAxNiBjYXJkLiBUaGlzCiAJICBkcml2ZXIgc3VwcG9ydHMgQXVkaW8gRXhjZWwgRFNQIDE2IGJ1dCBub3QgdGhlIElJSSBub3IgUG5QIHZlcnNpb25zCkBAIC02MzAsMTQgKzYxNywxNCBAQAogCiBjb25maWcgU09VTkRfVklEQwogCXRyaXN0YXRlICJWSURDIDE2LWJpdCBzb3VuZCIKLQlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9BQ09STiB8fCBBUkNIX0NMUFM3NTAwKSAmJiBTT1VORF9PU1MKKwlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9BQ09STiB8fCBBUkNIX0NMUFM3NTAwKQogCWhlbHAKIAkgIDE2LWJpdCBzdXBwb3J0IGZvciB0aGUgVklEQyBvbmJvYXJkIHNvdW5kIGhhcmR3YXJlIGZvdW5kIG9uIEFjb3JuCiAJICBtYWNoaW5lcy4KIAogY29uZmlnIFNPVU5EX1dBVkVBUlRJU1QKIAl0cmlzdGF0ZSAiTmV0d2luZGVyIFdhdmVBcnRpc3QiCi0JZGVwZW5kcyBvbiBBUk0gJiYgU09VTkRfT1NTICYmIEFSQ0hfTkVUV0lOREVSCisJZGVwZW5kcyBvbiBBUk0gJiYgQVJDSF9ORVRXSU5ERVIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFJvY2t3ZWxsIFdhdmVBcnRpc3Qgc291bmQKIAkgIHN5c3RlbS4gIFRoaXMgZHJpdmVyIGlzIG1haW5seSBmb3IgdGhlIE5ldFdpbmRlci4KQEAgLTY0Niw5ICs2MzMsMTEgQEAKIAl0cmlzdGF0ZSAiWHByZXNzQXVkaW8gU291bmQgQmxhc3RlciBlbXVsYXRpb24iCiAJZGVwZW5kcyBvbiBTT1VORF9TQgogCitlbmRpZgkjIFNPVU5EX09TUworCiBjb25maWcgU09VTkRfU0hfREFDX0FVRElPCiAJdHJpc3RhdGUgIlN1cGVySCBEQUMgYXVkaW8gc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIENQVV9TSDMKKwlkZXBlbmRzIG9uIENQVV9TSDMKIAogY29uZmlnIFNPVU5EX1NIX0RBQ19BVURJT19DSEFOTkVMCiAJaW50ICJEQUMgY2hhbm5lbCIKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9jb3JlLmMgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfY29yZS5jCmluZGV4IGEwMDNjMGUuLjk1ZmM1YzYgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9jb3JlLmMKKysrIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX2NvcmUuYwpAQCAtMjExLDEwICsyMTEsNiBAQAogc3RhdGljIGludCBpcnFfaW5zdGFsbGVkOwogI2VuZGlmIC8qIE1PRFVMRSAqLwogCi0vKiBzb2Z0d2FyZSBpbXBsZW1lbnRlZCByZWNvcmRpbmcgdm9sdW1lISAqLwotdWludCBzb2Z0d2FyZV9pbnB1dF92b2x1bWUgPSBTV19JTlBVVF9WT0xVTUVfU0NBTEUgKiBTV19JTlBVVF9WT0xVTUVfREVGQVVMVDsKLUVYUE9SVF9TWU1CT0woc29mdHdhcmVfaW5wdXRfdm9sdW1lKTsKLQogLyogY29udHJvbCBvdmVyIHdobyBjYW4gbW9kaWZ5IHJlc291cmNlcyBzaGFyZWQgYmV0d2VlbiBwbGF5L3JlY29yZCAqLwogc3RhdGljIG1vZGVfdCBzaGFyZWRfcmVzb3VyY2Vfb3duZXI7CiBzdGF0aWMgaW50IHNoYXJlZF9yZXNvdXJjZXNfaW5pdGlhbGlzZWQ7CkBAIC0xMTg4LDcgKzExODQsNyBAQAogCiAvKiBwdWJsaXNoIHRoaXMgZnVuY3Rpb24gZm9yIHVzZSBieSBsb3ctbGV2ZWwgY29kZSwgaWYgcmVxdWlyZWQgKi8KIAotY2hhciAqZ2V0X2FmbXRfc3RyaW5nKGludCBhZm10KQorc3RhdGljIGNoYXIgKmdldF9hZm10X3N0cmluZyhpbnQgYWZtdCkKIHsKICAgICAgICAgc3dpdGNoKGFmbXQpIHsKICAgICAgICAgICAgIGNhc2UgQUZNVF9NVV9MQVc6CkBAIC0xNTUxLDQgKzE1NDcsMyBAQAogRVhQT1JUX1NZTUJPTChkbWFzb3VuZF91bGF3MmRtYTgpOwogRVhQT1JUX1NZTUJPTChkbWFzb3VuZF9hbGF3MmRtYTgpOwogI2VuZGlmCi1FWFBPUlRfU1lNQk9MKGdldF9hZm10X3N0cmluZykgOwpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3BhdWxhLmMgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYwppbmRleCAyMDJlODEwLi4wNmU5ZTg4IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYworKysgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYwpAQCAtNzEwLDcgKzcxMCw3IEBACiAvKioqIENvbmZpZyAmIFNldHVwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIAotaW50IF9faW5pdCBkbWFzb3VuZF9wYXVsYV9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBkbWFzb3VuZF9wYXVsYV9pbml0KHZvaWQpCiB7CiAJaW50IGVycjsKIApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3E0MC5jIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3E0MC5jCmluZGV4IGIzMzc5ZGQuLjE4NTViMTQgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9xNDAuYworKysgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcTQwLmMKQEAgLTYxMSw3ICs2MTEsNyBAQAogLyoqKiBDb25maWcgJiBTZXR1cCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAKLWludCBfX2luaXQgZG1hc291bmRfcTQwX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGRtYXNvdW5kX3E0MF9pbml0KHZvaWQpCiB7CiAJaWYgKE1BQ0hfSVNfUTQwKSB7CiAJICAgIGRtYXNvdW5kLm1hY2ggPSBtYWNoUTQwOwpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmQuYyBiL3NvdW5kL29zcy9tc25kLmMKaW5kZXggYmEzOGQ2Mi4uZTQyODJkOSAxMDA2NDQKLS0tIGEvc291bmQvb3NzL21zbmQuYworKysgYi9zb3VuZC9vc3MvbXNuZC5jCkBAIC0yMCw4ICsyMCw2IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKgotICogJElkOiBtc25kLmMsdiAxLjE3IDE5OTkvMDMvMjEgMTY6NTA6MDkgYW5kcmV3dHYgRXhwICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kLmggYi9zb3VuZC9vc3MvbXNuZC5oCmluZGV4IGQwY2E1ODIuLjYxYjM5NTUgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kLmgKKysrIGIvc291bmQvb3NzL21zbmQuaApAQCAtMjQsOCArMjQsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZC5oLHYgMS4zNiAxOTk5LzAzLzIxIDE3OjA1OjQyIGFuZHJld3R2IEV4cCAkCi0gKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmbmRlZiBfX01TTkRfSAogI2RlZmluZSBfX01TTkRfSApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmRfY2xhc3NpYy5oIGIvc291bmQvb3NzL21zbmRfY2xhc3NpYy5oCmluZGV4IDdmZmVhNTIuLjFhMTdkZGUgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kX2NsYXNzaWMuaAorKysgYi9zb3VuZC9vc3MvbXNuZF9jbGFzc2ljLmgKQEAgLTI0LDggKzI0LDYgQEAKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KICAqIAotICogJElkOiBtc25kX2NsYXNzaWMuaCx2IDEuMTAgMTk5OS8wMy8yMSAxNzozNjowOSBhbmRyZXd0diBFeHAgJAotICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpZm5kZWYgX19NU05EX0NMQVNTSUNfSAogI2RlZmluZSBfX01TTkRfQ0xBU1NJQ19ICmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5jIGIvc291bmQvb3NzL21zbmRfcGlubmFjbGUuYwppbmRleCBmMWY0OWViLi5iZjI3ZTAwIDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5jCisrKyBiL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmMKQEAgLTI5LDEzICsyOSw4IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKgotICogJElkOiBtc25kX3Bpbm5hY2xlLmMsdiAxLjggMjAwMC8xMi8zMCAwMDozMzoyMSBzeWNhbW9yZSBFeHAgJAotICoKICAqIDEyLTMtMjAwMCAgTW9kaWZpZWQgSU8gcG9ydCB2YWxpZGF0aW9uICBTdGV2ZSBTeWNhbW9yZQogICoKLSAqCi0gKiAkJCQ6IG1zbmRfcGlubmFjbGUuYyx2IDEuNzUgMTk5OS8wMy8yMSAxNjo1MDowOSBhbmRyZXd0diAkJCQgJAotICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuaCBiL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmgKaW5kZXggY2NlOTExNC4uYzE4ZDY2YyAxMDA2NDQKLS0tIGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuaAorKysgYi9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5oCkBAIC0yNCw4ICsyNCw2IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKgotICogJElkOiBtc25kX3Bpbm5hY2xlLmgsdiAxLjExIDE5OTkvMDMvMjEgMTc6MzY6MDkgYW5kcmV3dHYgRXhwICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjaWZuZGVmIF9fTVNORF9QSU5OQUNMRV9ICiAjZGVmaW5lIF9fTVNORF9QSU5OQUNMRV9ICmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvdndzbmQuYyBiL3NvdW5kL29zcy92d3NuZC5jCmluZGV4IDJjNWFhYTUuLmRjYmIzZjcgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy92d3NuZC5jCisrKyBiL3NvdW5kL29zcy92d3NuZC5jCkBAIC0xNTAsNyArMTUwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCi0jaW5jbHVkZSA8YXNtL21hY2gtdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2NvYmFsdC5oPgogCiAjaW5jbHVkZSAic291bmRfY29uZmlnLmgiCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BhcmlzYy9LY29uZmlnIGIvc291bmQvcGFyaXNjL0tjb25maWcKaW5kZXggYTVhN2Y5ZC4uOWI2MWQ5NSAxMDA2NDQKLS0tIGEvc291bmQvcGFyaXNjL0tjb25maWcKKysrIGIvc291bmQvcGFyaXNjL0tjb25maWcKQEAgLTEsMTUgKzEsMjAgQEAKICMgQUxTQSBQQS1SSVNDIGRyaXZlcnMKIAotbWVudSAiR1NDIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgR1NDCittZW51Y29uZmlnIFNORF9HU0MKKwlib29sICJHU0Mgc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIEdTQworCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIEdTQyBzb3VuZCBkZXZpY2VzIG9uIFBBLVJJU0MgYXJjaGl0ZWN0dXJlcy4KKworaWYgU05EX0dTQwogCiBjb25maWcgU05EX0hBUk1PTlkKIAl0cmlzdGF0ZSAiSGFybW9ueS9WaXZhY2Ugc291bmQgY2hpcCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5ICdZJyBvciAnTScgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgSGFybW9ueS9WaXZhY2Ugc291bmQKIAkgIGNoaXAgZm91bmQgaW4gbW9zdCBHU0MtYmFzZWQgUEEtUklTQyB3b3Jrc3RhdGlvbnMuICBJdCdzIGZyZXF1ZW50bHkKIAkgIHByb3ZpZGVkIGFzIHBhcnQgb2YgdGhlIExhc2kgbXVsdGktZnVuY3Rpb24gSUMuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX0dTQwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL0tjb25maWcgYi9zb3VuZC9wY2kvS2NvbmZpZwppbmRleCA3ZTQ3NDIxLi5mN2Q5NWIyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvS2NvbmZpZworKysgYi9zb3VuZC9wY2kvS2NvbmZpZwpAQCAtMSwxMSArMSwxNiBAQAogIyBBTFNBIFBDSSBkcml2ZXJzCiAKLW1lbnUgIlBDSSBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFBDSQorbWVudWNvbmZpZyBTTkRfUENJCisJYm9vbCAiUENJIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBQQ0kKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIGNvbm5lY3RlZCB2aWEgdGhlIFBDSSBidXMuCisKK2lmIFNORF9QQ0kKIAogY29uZmlnIFNORF9BRDE4ODkKIAl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQUQxODg5IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIEFDOTcgc291bmQKQEAgLTE3LDcgKzIyLDYgQEAKIAogY29uZmlnIFNORF9BTFMzMDAKIAl0cmlzdGF0ZSAiQXZhbmNlIExvZ2ljIEFMUzMwMC9BTFMzMDArIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAlzZWxlY3QgU05EX09QTDNfTElCCkBAIC0yOSw3ICszMyw3IEBACiAKIGNvbmZpZyBTTkRfQUxTNDAwMAogCXRyaXN0YXRlICJBdmFuY2UgTG9naWMgQUxTNDAwMCIKLQlkZXBlbmRzIG9uIFNORCAmJiBJU0FfRE1BX0FQSQorCWRlcGVuZHMgb24gSVNBX0RNQV9BUEkKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC00Myw3ICs0Nyw2IEBACiAKIGNvbmZpZyBTTkRfQUxJNTQ1MQogCXRyaXN0YXRlICJBTGkgTTU0NTEgUENJIEF1ZGlvIENvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtNTcsNyArNjAsNiBAQAogCiBjb25maWcgU05EX0FUSUlYUAogCXRyaXN0YXRlICJBVEkgSVhQIEFDOTcgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBBQzk3IHNvdW5kCkBAIC02OSw3ICs3MSw2IEBACiAKIGNvbmZpZyBTTkRfQVRJSVhQX01PREVNCiAJdHJpc3RhdGUgIkFUSSBJWFAgTW9kZW0iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgTUM5NyBtb2RlbSBvbgpAQCAtODAsNyArODEsNiBAQAogCiBjb25maWcgU05EX0FVODgxMAogCXRyaXN0YXRlICJBdXJlYWwgQWR2YW50YWdlIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTk1LDcgKzk1LDYgQEAKIAogY29uZmlnIFNORF9BVTg4MjAKIAl0cmlzdGF0ZSAiQXVyZWFsIFZvcnRleCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC0xMDksNyArMTA4LDYgQEAKIAogY29uZmlnIFNORF9BVTg4MzAKIAl0cmlzdGF0ZSAiQXVyZWFsIFZvcnRleCAyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTEyNCw3ICsxMjIsNiBAQAogCiBjb25maWcgU05EX0FXMgogCXRyaXN0YXRlICJFbWFnaWMgQXVkaW93ZXJrIDIiCi0JZGVwZW5kcyBvbiBTTkQKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgRW1hZ2ljIEF1ZGlvd2VyayAyIHNvdW5kY2FyZHMuCiAKQEAgLTEzOSw3ICsxMzYsNyBAQAogCiBjb25maWcgU05EX0FaVDMzMjgKIAl0cmlzdGF0ZSAiQXp0ZWNoIEFaRjMzMjggLyBQQ0kxNjggKEVYUEVSSU1FTlRBTCkiCi0JZGVwZW5kcyBvbiBTTkQgJiYgRVhQRVJJTUVOVEFMCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC0xNTIsNyArMTQ5LDYgQEAKIAogY29uZmlnIFNORF9CVDg3WAogCXRyaXN0YXRlICJCdDg3eCBBdWRpbyBDYXB0dXJlIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBJZiB5b3Ugd2FudCB0byByZWNvcmQgYXVkaW8gZnJvbSBUViBjYXJkcyBiYXNlZCBvbgpAQCAtMTc0LDcgKzE3MCw2IEBACiAKIGNvbmZpZyBTTkRfQ0EwMTA2CiAJdHJpc3RhdGUgIlNCIEF1ZGlneSBMUyAvIExpdmUgMjRiaXQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1ZNQVNURVIKQEAgLTE4Nyw3ICsxODIsNiBAQAogCiBjb25maWcgU05EX0NNSVBDSQogCXRyaXN0YXRlICJDLU1lZGlhIDgzMzgsIDg3MzgsIDg3NjgsIDg3NzAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC0yMDEsMTMgKzE5NSwxMSBAQAogCiBjb25maWcgU05EX09YWUdFTl9MSUIKICAgICAgICAgdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCiBjb25maWcgU05EX09YWUdFTgogCXRyaXN0YXRlICJDLU1lZGlhIDg3ODggKE94eWdlbikiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09YWUdFTl9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3Igc291bmQgY2FyZHMgYmFzZWQgb24gdGhlCkBAIC0yMjUsNyArMjE3LDYgQEAKIAogY29uZmlnIFNORF9DUzQyODEKIAl0cmlzdGF0ZSAiQ2lycnVzIExvZ2ljIChTb3VuZCBGdXNpb24pIENTNDI4MSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKQEAgLTIzNyw3ICsyMjgsNiBAQAogCiBjb25maWcgU05EX0NTNDZYWAogCXRyaXN0YXRlICJDaXJydXMgTG9naWMgKFNvdW5kIEZ1c2lvbikgQ1M0MjgwL0NTNDYxeC9DUzQ2MngvQ1M0NjN4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtMjU4LDcgKzI0OCw3IEBACiAKIGNvbmZpZyBTTkRfQ1M1NTMwCiAJdHJpc3RhdGUgIkNTNTUzMCBBdWRpbyIKLQlkZXBlbmRzIG9uIFNORCAmJiBJU0FfRE1BX0FQSQorCWRlcGVuZHMgb24gSVNBX0RNQV9BUEkKIAlzZWxlY3QgU05EX1NCMTZfRFNQCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIGF1ZGlvIG9uIEN5cml4L05hdFNlbWkgQ1M1NTMwIGNoaXBzLgpAQCAtMjY4LDcgKzI1OCw3IEBACiAKIGNvbmZpZyBTTkRfQ1M1NTM1QVVESU8KIAl0cmlzdGF0ZSAiQ1M1NTM1L0NTNTUzNiBBdWRpbyIKLQlkZXBlbmRzIG9uIFNORCAmJiBYODYgJiYgIVg4Nl82NAorCWRlcGVuZHMgb24gWDg2ICYmICFYODZfNjQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTI4Niw3ICsyNzYsNiBAQAogCiBjb25maWcgU05EX0RBUkxBMjAKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgRGFybGEyMCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTI5Nyw3ICsyODYsNiBAQAogCiBjb25maWcgU05EX0dJTkEyMAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBHaW5hMjAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0zMDgsNyArMjk2LDYgQEAKIAogY29uZmlnIFNORF9MQVlMQTIwCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIExheWxhMjAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTMyMCw3ICszMDcsNiBAQAogCiBjb25maWcgU05EX0RBUkxBMjQKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgRGFybGEyNCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTMzMSw3ICszMTcsNiBAQAogCiBjb25maWcgU05EX0dJTkEyNAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBHaW5hMjQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0zNDIsNyArMzI3LDYgQEAKIAogY29uZmlnIFNORF9MQVlMQTI0CiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIExheWxhMjQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTM1NCw3ICszMzgsNiBAQAogCiBjb25maWcgU05EX01PTkEKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgTW9uYSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMzY2LDcgKzM0OSw2IEBACiAKIGNvbmZpZyBTTkRfTUlBCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIE1pYSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMzc4LDcgKzM2MCw2IEBACiAKIGNvbmZpZyBTTkRfRUNITzNHCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIDNHIGNhcmRzIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0zOTAsNyArMzcxLDYgQEAKIAogY29uZmlnIFNORF9JTkRJR08KIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgSW5kaWdvIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtNDAxLDcgKzM4MSw2IEBACiAKIGNvbmZpZyBTTkRfSU5ESUdPSU8KIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgSW5kaWdvIElPIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtNDEyLDcgKzM5MSw2IEBACiAKIGNvbmZpZyBTTkRfSU5ESUdPREoKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgSW5kaWdvIERKIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtNDIzLDcgKzQwMSw2IEBACiAKIGNvbmZpZyBTTkRfRU1VMTBLMQogCXRyaXN0YXRlICJFbXUxMGsxIChTQiBMaXZlISwgQXVkaWd5LCBFLW11IEFQUykiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQpAQCAtNDQxLDcgKzQxOCw2IEBACiAKIGNvbmZpZyBTTkRfRU1VMTBLMVgKIAl0cmlzdGF0ZSAiRW11MTBrMVggKERlbGwgT0VNIFZlcnNpb24pIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJaGVscApAQCAtNDUzLDcgKzQyOSw2IEBACiAKIGNvbmZpZyBTTkRfRU5TMTM3MAogCXRyaXN0YXRlICIoQ3JlYXRpdmUpIEVuc29uaXEgQXVkaW9QQ0kgMTM3MCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtNDY0LDcgKzQzOSw2IEBACiAKIGNvbmZpZyBTTkRfRU5TMTM3MQogCXRyaXN0YXRlICIoQ3JlYXRpdmUpIEVuc29uaXEgQXVkaW9QQ0kgMTM3MS8xMzczIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtNDc2LDcgKzQ1MCw2IEBACiAKIGNvbmZpZyBTTkRfRVMxOTM4CiAJdHJpc3RhdGUgIkVTUyBFUzE5MzgvMTk0Ni8xOTY5IChTb2xvLTEpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKQEAgLTQ4OSw3ICs0NjIsNiBAQAogCiBjb25maWcgU05EX0VTMTk2OAogCXRyaXN0YXRlICJFU1MgRVMxOTY4LzE5NzggKE1hZXN0cm8tMS8yLzJFKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC01MDEsNyArNDczLDYgQEAKIAogY29uZmlnIFNORF9GTTgwMQogCXRyaXN0YXRlICJGb3J0ZU1lZGlhIEZNODAxIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKQEAgLTUyOCw3ICs0OTksNiBAQAogCiBjb25maWcgU05EX0hEQV9JTlRFTAogCXRyaXN0YXRlICJJbnRlbCBIRCBBdWRpbyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9WTUFTVEVSCiAJaGVscApAQCAtNjM3LDcgKzYwNyw2IEBACiAKIGNvbmZpZyBTTkRfSERTUAogCXRyaXN0YXRlICJSTUUgSGFtbWVyZmFsbCBEU1AgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTY1MCw3ICs2MTksNiBAQAogCiBjb25maWcgU05EX0hEU1BNCiAJdHJpc3RhdGUgIlJNRSBIYW1tZXJmYWxsIERTUCBNQURJIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC02NjMsNyArNjMxLDYgQEAKIAogY29uZmlnIFNORF9ISUZJRVIKIAl0cmlzdGF0ZSAiVGVtcG9UZWMgSGlGaWVyIEZhbnRhc2lhIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PWFlHRU5fTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBNZWRpYVRlay9UZW1wb1RlYyBIaUZpZXIKQEAgLTY3NCw3ICs2NDEsNiBAQAogCiBjb25maWcgU05EX0lDRTE3MTIKIAl0cmlzdGF0ZSAiSUNFbnNlbWJsZSBJQ0UxNzEyIChFbnZ5MjQpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTY5MSw4ICs2NTcsNyBAQAogCiBjb25maWcgU05EX0lDRTE3MjQKIAl0cmlzdGF0ZSAiSUNFL1ZUMTcyNC8xNzIwIChFbnZ5MjRIVC9QVCkiCi0JZGVwZW5kcyBvbiBTTkQKLQlzZWxlY3QgU05EX01QVTQwMV9VQVJUCisJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9WTUFTVEVSCiAJaGVscApAQCAtNzA5LDcgKzY3NCw2IEBACiAKIGNvbmZpZyBTTkRfSU5URUw4WDAKIAl0cmlzdGF0ZSAiSW50ZWwvU2lTL25WaWRpYS9BTUQvQUxpIEFDOTcgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBBQzk3IHNvdW5kCkBAIC03MjIsNyArNjg2LDYgQEAKIAogY29uZmlnIFNORF9JTlRFTDhYME0KIAl0cmlzdGF0ZSAiSW50ZWwvU2lTL25WaWRpYS9BTUQgTUM5NyBNb2RlbSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBNQzk3IG1vZGVtIG9uCkBAIC03MzMsOCArNjk2LDYgQEAKIAogY29uZmlnIFNORF9LT1JHMTIxMgogCXRyaXN0YXRlICJLb3JnIDEyMTIgSU8iCi0JZGVwZW5kcyBvbiBTTkQKLQlzZWxlY3QgRldfTE9BREVSIGlmICFTTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgS29yZyAxMjEySU8gc291bmRjYXJkcy4KQEAgLTc0MiwxOSArNzAzLDggQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1rb3JnMTIxMi4KIAotY29uZmlnIFNORF9LT1JHMTIxMl9GSVJNV0FSRV9JTl9LRVJORUwKLQlib29sICJJbi1rZXJuZWwgZmlybXdhcmUgZm9yIEtvcmcxMjEyIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORF9LT1JHMTIxMgotCWRlZmF1bHQgeQotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgc3RhdGljIGZpcm13YXJlIGJ1aWx0IGluIHRoZSBrZXJuZWwKLQkgIGZvciB0aGUgS29yZzEyMTIgZHJpdmVyLiAgSWYgeW91IGNob29zZSBOIGhlcmUsIHlvdSBuZWVkIHRvCi0JICBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZSBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCi0KIGNvbmZpZyBTTkRfTUFFU1RSTzMKIAl0cmlzdGF0ZSAiRVNTIEFsbGVncm8vTWFlc3RybzMiCi0JZGVwZW5kcyBvbiBTTkQKLQlzZWxlY3QgRldfTE9BREVSIGlmICFTTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kY2FyZHMgYmFzZWQgb24gRVNTIE1hZXN0cm8gMwpAQCAtNzYzLDE4ICs3MTMsOCBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgc25kLW1hZXN0cm8zLgogCi1jb25maWcgU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWJvb2wgIkluLWtlcm5lbCBmaXJtd2FyZSBmb3IgTWFlc3RybzMgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EX01BRVNUUk8zCi0JZGVmYXVsdCB5Ci0JaGVscAotCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBzdGF0aWMgZmlybXdhcmUgYnVpbHQgaW4gdGhlIGtlcm5lbAotCSAgZm9yIHRoZSBNYWVzdHJvMyBkcml2ZXIuICBJZiB5b3UgY2hvb3NlIE4gaGVyZSwgeW91IG5lZWQgdG8KLQkgIGluc3RhbGwgdGhlIGZpcm13YXJlIGZpbGVzIGZyb20gdGhlIGFsc2EtZmlybXdhcmUgcGFja2FnZS4KLQogY29uZmlnIFNORF9NSVhBUlQKIAl0cmlzdGF0ZSAiRGlnaWdyYW0gbWlYYXJ0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtNzg2LDcgKzcyNiw2IEBACiAKIGNvbmZpZyBTTkRfTk0yNTYKIAl0cmlzdGF0ZSAiTmVvTWFnaWMgTk0yNTZBVi9aWCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBOZW9NYWdpYyBOTTI1NkFWL1pYIGNoaXBzLgpAQCAtNzk2LDcgKzczNSw2IEBACiAKIGNvbmZpZyBTTkRfUENYSFIKIAl0cmlzdGF0ZSAiRGlnaWdyYW0gUENYSFIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfSFdERVAKIAloZWxwCkBAIC04MDcsNyArNzQ1LDYgQEAKIAogY29uZmlnIFNORF9SSVBUSURFCiAJdHJpc3RhdGUgIkNvbmV4YW50IFJpcHRpZGUiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTgyMCw3ICs3NTcsNiBAQAogCiBjb25maWcgU05EX1JNRTMyCiAJdHJpc3RhdGUgIlJNRSBEaWdpMzIsIDMyLzgsIDMyIFBSTyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBSTUUgRGlnaTMyLCBEaWdpMzIgUFJPIGFuZApAQCAtODMyLDcgKzc2OCw2IEBACiAKIGNvbmZpZyBTTkRfUk1FOTYKIAl0cmlzdGF0ZSAiUk1FIERpZ2k5NiwgOTYvOCwgOTYvOCBQUk8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBSTUUgRGlnaTk2LCBEaWdpOTYvOCBhbmQKQEAgLTg0Myw3ICs3NzgsNiBAQAogCiBjb25maWcgU05EX1JNRTk2NTIKIAl0cmlzdGF0ZSAiUk1FIERpZ2k5NjUyIChIYW1tZXJmYWxsKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIFJNRSBIYW1tZXJmYWxsIChSTUUKQEAgLTg1NCw3ICs3ODgsNyBAQAogCiBjb25maWcgU05EX1NJUzcwMTkKIAl0cmlzdGF0ZSAiU2lTIDcwMTkgQXVkaW8gQWNjZWxlcmF0b3IiCi0JZGVwZW5kcyBvbiBTTkQgJiYgWDg2ICYmICFYODZfNjQKKwlkZXBlbmRzIG9uIFg4NiAmJiAhWDg2XzY0CiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBTaVMgNzAxOSBBdWRpbyBBY2NlbGVyYXRvci4KQEAgLTg2NCw3ICs3OTgsNiBAQAogCiBjb25maWcgU05EX1NPTklDVklCRVMKIAl0cmlzdGF0ZSAiUzMgU29uaWNWaWJlcyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC04NzcsNyArODEwLDYgQEAKIAogY29uZmlnIFNORF9UUklERU5UCiAJdHJpc3RhdGUgIlRyaWRlbnQgNEQtV2F2ZSBEWC9OWDsgU2lTIDcwMTgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtODg5LDcgKzgyMSw2IEBACiAKIGNvbmZpZyBTTkRfVklBODJYWAogCXRyaXN0YXRlICJWSUEgODJDNjg2QS9CLCA4MjMzLzgyMzUgQUM5NyBDb250cm9sbGVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTkwMSw3ICs4MzIsNiBAQAogCiBjb25maWcgU05EX1ZJQTgyWFhfTU9ERU0KIAl0cmlzdGF0ZSAiVklBIDgyQzY4NkEvQiwgODIzMyBiYXNlZCBNb2RlbXMiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgTUM5NyBtb2RlbSBvbgpAQCAtOTEyLDcgKzg0Miw2IEBACiAKIGNvbmZpZyBTTkRfVklSVFVPU08KIAl0cmlzdGF0ZSAiQXN1cyBWaXJ0dW9zbyAxMDAvMjAwIChYb25hcikiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09YWUdFTl9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3Igc291bmQgY2FyZHMgYmFzZWQgb24gdGhlCkBAIC05MjMsNyArODUyLDYgQEAKIAogY29uZmlnIFNORF9WWDIyMgogCXRyaXN0YXRlICJEaWdpZ3JhbSBWWDIyMiIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfVlhfTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIERpZ2lncmFtIFZYMjIyIHNvdW5kY2FyZHMuCkBAIC05MzMsOCArODYxLDYgQEAKIAogY29uZmlnIFNORF9ZTUZQQ0kKIAl0cmlzdGF0ZSAiWWFtYWhhIFlNRjcyNC83NDAvNzQ0Lzc1NCIKLQlkZXBlbmRzIG9uIFNORAotCXNlbGVjdCBGV19MT0FERVIgaWYgIVNORF9ZTUZQQ0lfRklSTVdBUkVfSU5fS0VSTkVMCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKQEAgLTk0NSwzNCArODcxLDQgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC15bWZwY2kuCiAKLWNvbmZpZyBTTkRfWU1GUENJX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWJvb2wgIkluLWtlcm5lbCBmaXJtd2FyZSBmb3IgWU1GUENJIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORF9ZTUZQQ0kKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIHN0YXRpYyBmaXJtd2FyZSBidWlsdCBpbiB0aGUga2VybmVsCi0JICBmb3IgdGhlIFlNRlBDSSBkcml2ZXIuICBJZiB5b3UgY2hvb3NlIE4gaGVyZSwgeW91IG5lZWQgdG8KLQkgIGluc3RhbGwgdGhlIGZpcm13YXJlIGZpbGVzIGZyb20gdGhlIGFsc2EtZmlybXdhcmUgcGFja2FnZS4KLQotY29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkUKLQlib29sICJBQzk3IFBvd2VyLVNhdmluZyBNb2RlIgotCWRlcGVuZHMgb24gU05EX0FDOTdfQ09ERUMgJiYgRVhQRVJJTUVOVEFMCi0JZGVmYXVsdCBuCi0JaGVscAotCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgdGhlIGFnZ3Jlc3NpdmUgcG93ZXItc2F2aW5nIHN1cHBvcnQgb2YKLQkgIEFDOTcgY29kZWNzLiAgSW4gdGhpcyBtb2RlLCB0aGUgcG93ZXItbW9kZSBpcyBkeW5hbWljYWxseQotCSAgY29udHJvbGxlZCBhdCBlYWNoIG9wZW4vY2xvc2UuCi0KLQkgIFRoZSBtb2RlIGlzIGFjdGl2YXRlZCBieSBwYXNzaW5nIHBvd2VyX3NhdmU9MSBvcHRpb24gdG8KLQkgIHNuZC1hYzk3LWNvZGVjIGRyaXZlci4gIFlvdSBjYW4gdG9nZ2xlIGl0IGR5bmFtaWNhbGx5IG92ZXIKLQkgIHN5c2ZzLCB0b28uCi0KLWNvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFQKLQlpbnQgIkRlZmF1bHQgdGltZS1vdXQgZm9yIEFDOTcgcG93ZXItc2F2ZSBtb2RlIgotCWRlcGVuZHMgb24gU05EX0FDOTdfUE9XRVJfU0FWRQotCWRlZmF1bHQgMAotCWhlbHAKLQkgIFRoZSBkZWZhdWx0IHRpbWUtb3V0IHZhbHVlIGluIHNlY29uZHMgZm9yIEFDOTcgYXV0b21hdGljCi0JICBwb3dlci1zYXZlIG1vZGUuICAwIG1lYW5zIHRvIGRpc2FibGUgdGhlIHBvd2VyLXNhdmUgbW9kZS4KLQotZW5kbWVudQorZW5kaWYJIyBTTkRfUENJCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvTWFrZWZpbGUgYi9zb3VuZC9wY2kvTWFrZWZpbGUKaW5kZXggODVlZjE0Yi4uNjViMjVkMiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL01ha2VmaWxlCisrKyBiL3NvdW5kL3BjaS9NYWtlZmlsZQpAQCAtMTMsNyArMTMsNyBAQAogc25kLWNtaXBjaS1vYmpzIDo9IGNtaXBjaS5vCiBzbmQtY3M0MjgxLW9ianMgOj0gY3M0MjgxLm8KIHNuZC1jczU1MzAtb2JqcyA6PSBjczU1MzAubwotc25kLWVuczEzNzAtb2JqcyA6PSBlbnMxMzcwLm8KK3NuZC1lbnMxMzcwLW9ianMgOj0gZW5zMTM3MC5vIGFrNDUzMV9jb2RlYy5vCiBzbmQtZW5zMTM3MS1vYmpzIDo9IGVuczEzNzEubwogc25kLWVzMTkzOC1vYmpzIDo9IGVzMTkzOC5vCiBzbmQtZXMxOTY4LW9ianMgOj0gZXMxOTY4Lm8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlIGIvc291bmQvcGNpL2FjOTcvTWFrZWZpbGUKaW5kZXggMGJlNDhiMS4uNDFmYTMyMiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2FjOTcvTWFrZWZpbGUKKysrIGIvc291bmQvcGNpL2FjOTcvTWFrZWZpbGUKQEAgLTMsMTYgKzMsOCBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDEgYnkgSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4KICMKIAotc25kLWFjOTctY29kZWMtb2JqcyA6PSBhYzk3X2NvZGVjLm8gYWM5N19wY20ubwotCi1pZm5lcSAoJChDT05GSUdfUFJPQ19GUyksKQotc25kLWFjOTctY29kZWMtb2JqcyArPSBhYzk3X3Byb2MubwotZW5kaWYKLQotc25kLWFrNDUzMS1jb2RlYy1vYmpzIDo9IGFrNDUzMV9jb2RlYy5vCitzbmQtYWM5Ny1jb2RlYy15IDo9IGFjOTdfY29kZWMubyBhYzk3X3BjbS5vCitzbmQtYWM5Ny1jb2RlYy0kKENPTkZJR19QUk9DX0ZTKSArPSBhYzk3X3Byb2MubwogCiAjIFRvcGxldmVsIE1vZHVsZSBEZXBlbmRlbmN5CiBvYmotJChDT05GSUdfU05EX0FDOTdfQ09ERUMpICs9IHNuZC1hYzk3LWNvZGVjLm8KLW9iai0kKENPTkZJR19TTkRfRU5TMTM3MCkgKz0gc25kLWFrNDUzMS1jb2RlYy5vCi0KLW9iai1tIDo9ICQoc29ydCAkKG9iai1tKSkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hYzk3L2FjOTdfY29kZWMuYyBiL3NvdW5kL3BjaS9hYzk3L2FjOTdfY29kZWMuYwppbmRleCA0NWZkMjkwLi4wNzM2NGMwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvYWM5Ny9hYzk3X2NvZGVjLmMKKysrIGIvc291bmQvcGNpL2FjOTcvYWM5N19jb2RlYy5jCkBAIC00OSw4ICs0OSw5IEBACiAKICNpZmRlZiBDT05GSUdfU05EX0FDOTdfUE9XRVJfU0FWRQogc3RhdGljIGludCBwb3dlcl9zYXZlID0gQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkVfREVGQVVMVDsKLW1vZHVsZV9wYXJhbShwb3dlcl9zYXZlLCBib29sLCAwNjQ0KTsKLU1PRFVMRV9QQVJNX0RFU0MocG93ZXJfc2F2ZSwgIkVuYWJsZSBBQzk3IHBvd2VyLXNhdmluZyBjb250cm9sIik7Cittb2R1bGVfcGFyYW0ocG93ZXJfc2F2ZSwgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MocG93ZXJfc2F2ZSwgIkF1dG9tYXRpYyBwb3dlci1zYXZpbmcgdGltZW91dCAiCisJCSAiKGluIHNlY29uZCwgMCA9IGRpc2FibGUpLiIpOwogI2VuZGlmCiAvKgogCkBAIC0yMjk0LDkgKzIyOTUsMTEgQEAKIAlwb3dlciB8PSBBQzk3X1BEX1BSMCB8IEFDOTdfUERfUFIxOwkvKiBBREMgJiBEQUMgcG93ZXJkb3duICovCiAJc25kX2FjOTdfd3JpdGUoYWM5NywgQUM5N19QT1dFUkRPV04sIHBvd2VyKTsKIAl1ZGVsYXkoMTAwKTsKLQlwb3dlciB8PSBBQzk3X1BEX1BSMiB8IEFDOTdfUERfUFIzOwkvKiBBbmFsb2cgTWl4ZXIgcG93ZXJkb3duICovCisJcG93ZXIgfD0gQUM5N19QRF9QUjI7CS8qIEFuYWxvZyBNaXhlciBwb3dlcmRvd24gKFZyZWYgb24pICovCiAJc25kX2FjOTdfd3JpdGUoYWM5NywgQUM5N19QT1dFUkRPV04sIHBvd2VyKTsKIAlpZiAoYWM5N19pc19wb3dlcl9zYXZlX21vZGUoYWM5NykpIHsKKwkJcG93ZXIgfD0gQUM5N19QRF9QUjM7CS8qIEFuYWxvZyBNaXhlciBwb3dlcmRvd24gKi8KKwkJc25kX2FjOTdfd3JpdGUoYWM5NywgQUM5N19QT1dFUkRPV04sIHBvd2VyKTsKIAkJdWRlbGF5KDEwMCk7CiAJCS8qIEFDLWxpbmsgcG93ZXJkb3duLCBpbnRlcm5hbCBDbGsgZGlzYWJsZSAqLwogCQkvKiBGSVhNRTogdGhpcyBtYXkgY2F1c2UgY2xpY2sgbm9pc2VzIG9uIHNvbWUgYm9hcmRzICovCkBAIC0yMzYyLDcgKzIzNjUsNyBAQAogCQkgKiAgdGhhdCBvcGVuL2Nsb3NlIGZyZXF1ZW50bHkpCiAJCSAqLwogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFjOTctPnBvd2VyX3dvcmssCi0JCQkJICAgICAgbXNlY3NfdG9famlmZmllcygyMDAwKSk7CisJCQkJICAgICAgbXNlY3NfdG9famlmZmllcyhwb3dlcl9zYXZlICogMTAwMCkpOwogCWVsc2UgewogCQljYW5jZWxfZGVsYXllZF93b3JrKCZhYzk3LT5wb3dlcl93b3JrKTsKIAkJdXBkYXRlX3Bvd2VyX3JlZ3MoYWM5Nyk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9hYzk3X3BhdGNoLmMgYi9zb3VuZC9wY2kvYWM5Ny9hYzk3X3BhdGNoLmMKaW5kZXggMTI5MmRjZS4uMDc0NmU5YyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2FjOTcvYWM5N19wYXRjaC5jCisrKyBiL3NvdW5kL3BjaS9hYzk3L2FjOTdfcGF0Y2guYwpAQCAtNjY5LDYgKzY2OSw3IEBACiBBQzk3X1NJTkdMRSgiTWljIDIgVm9sdW1lIiwgQUM5N19NSUMsIDAsIDMxLCAxKSwKIEFDOTdfU0lOR0xFKCJNaWMgMjBkQiBCb29zdCBTd2l0Y2giLCBBQzk3X01JQywgNywgMSwgMCksCiAKK0FDOTdfU0lOR0xFKCJNYXN0ZXIgTGVmdCBJbnYgU3dpdGNoIiwgQUM5N19NQVNURVIsIDYsIDEsIDApLAogQUM5N19TSU5HTEUoIk1hc3RlciBaQyBTd2l0Y2giLCBBQzk3X01BU1RFUiwgNywgMSwgMCksCiBBQzk3X1NJTkdMRSgiSGVhZHBob25lIFpDIFN3aXRjaCIsIEFDOTdfSEVBRFBIT05FLCA3LCAxLCAwKSwKIEFDOTdfU0lOR0xFKCJNb25vIFpDIFN3aXRjaCIsIEFDOTdfTUFTVEVSX01PTk8sIDcsIDEsIDApLApAQCAtMzM1Miw4ICszMzUzLDY2IEBACiBBQzk3X1NJTkdMRSgiRG93bm1peCBTdXJyb3VuZCB0byBGcm9udCIsIDB4NWEsIDExLCAxLCAwKSwKIH07CiAKK3N0YXRpYyBjb25zdCBjaGFyICpzbGF2ZV92b2xzX3Z0MTYxNltdID0geworCSJGcm9udCBQbGF5YmFjayBWb2x1bWUiLAorCSJTdXJyb3VuZCBQbGF5YmFjayBWb2x1bWUiLAorCSJDZW50ZXIgUGxheWJhY2sgVm9sdW1lIiwKKwkiTEZFIFBsYXliYWNrIFZvbHVtZSIsCisJTlVMTAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKnNsYXZlX3N3c192dDE2MTZbXSA9IHsKKwkiRnJvbnQgUGxheWJhY2sgU3dpdGNoIiwKKwkiU3Vycm91bmQgUGxheWJhY2sgU3dpdGNoIiwKKwkiQ2VudGVyIFBsYXliYWNrIFN3aXRjaCIsCisJIkxGRSBQbGF5YmFjayBTd2l0Y2giLAorCU5VTEwKK307CisKKy8qIGZpbmQgYSBtaXhlciBjb250cm9sIGVsZW1lbnQgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2wgKnNuZF9hYzk3X2ZpbmRfbWl4ZXJfY3RsKHN0cnVjdCBzbmRfYWM5NyAqYWM5NywKKwkJCQkJCSAgICBjb25zdCBjaGFyICpuYW1lKQoreworCXN0cnVjdCBzbmRfY3RsX2VsZW1faWQgaWQ7CisJbWVtc2V0KCZpZCwgMCwgc2l6ZW9mKGlkKSk7CisJaWQuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUjsKKwlzdHJjcHkoaWQubmFtZSwgbmFtZSk7CisJcmV0dXJuIHNuZF9jdGxfZmluZF9pZChhYzk3LT5idXMtPmNhcmQsICZpZCk7Cit9CisKKy8qIGNyZWF0ZSBhIHZpcnR1YWwgbWFzdGVyIGNvbnRyb2wgYW5kIGFkZCBzbGF2ZXMgKi8KK2ludCBzbmRfYWM5N19hZGRfdm1hc3RlcihzdHJ1Y3Qgc25kX2FjOTcgKmFjOTcsIGNoYXIgKm5hbWUsCisJCQkgY29uc3QgdW5zaWduZWQgaW50ICp0bHYsIGNvbnN0IGNoYXIgKipzbGF2ZXMpCit7CisJc3RydWN0IHNuZF9rY29udHJvbCAqa2N0bDsKKwljb25zdCBjaGFyICoqczsKKwlpbnQgZXJyOworCisJa2N0bCA9IHNuZF9jdGxfbWFrZV92aXJ0dWFsX21hc3RlcihuYW1lLCB0bHYpOworCWlmICgha2N0bCkKKwkJcmV0dXJuIC1FTk9NRU07CisJZXJyID0gc25kX2N0bF9hZGQoYWM5Ny0+YnVzLT5jYXJkLCBrY3RsKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWZvciAocyA9IHNsYXZlczsgKnM7IHMrKykgeworCQlzdHJ1Y3Qgc25kX2tjb250cm9sICpzY3RsOworCisJCXNjdGwgPSBzbmRfYWM5N19maW5kX21peGVyX2N0bChhYzk3LCAqcyk7CisJCWlmICghc2N0bCkgeworCQkJc25kX3ByaW50ZGQoIkNhbm5vdCBmaW5kIHNsYXZlICVzLCBza2lwcGVkXG4iLCAqcyk7CisJCQljb250aW51ZTsKKwkJfQorCQllcnIgPSBzbmRfY3RsX2FkZF9zbGF2ZShrY3RsLCBzY3RsKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBwYXRjaF92dDE2MTZfc3BlY2lmaWMoc3RydWN0IHNuZF9hYzk3ICogYWM5NykKIHsKKwlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOwogCWludCBlcnI7CiAKIAlpZiAoc25kX2FjOTdfdHJ5X2JpdChhYzk3LCAweDVhLCA5KSkKQEAgLTMzNjEsNiArMzQyMCwyNCBAQAogCQkJcmV0dXJuIGVycjsKIAlpZiAoKGVyciA9IHBhdGNoX2J1aWxkX2NvbnRyb2xzKGFjOTcsICZzbmRfYWM5N19jb250cm9sc192dDE2MTZbMV0sIEFSUkFZX1NJWkUoc25kX2FjOTdfY29udHJvbHNfdnQxNjE2KSAtIDEpKSA8IDApCiAJCXJldHVybiBlcnI7CisKKwkvKiBUaGVyZSBpcyBhbHJlYWR5IGEgbWlzbmFtZWQgbWFzdGVyIHN3aXRjaC4gIFJlbmFtZSBpdC4gICovCisJa2N0bCA9IHNuZF9hYzk3X2ZpbmRfbWl4ZXJfY3RsKGFjOTcsICJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIik7CisJaWYgKCFrY3RsKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXNuZF9hYzk3X3JlbmFtZV92b2xfY3RsKGFjOTcsICJNYXN0ZXIgUGxheWJhY2siLCAiRnJvbnQgUGxheWJhY2siKTsKKworCWVyciA9IHNuZF9hYzk3X2FkZF92bWFzdGVyKGFjOTcsICJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwKKwkJCQkgICBrY3RsLT50bHYucCwgc2xhdmVfdm9sc192dDE2MTYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2FjOTdfYWRkX3ZtYXN0ZXIoYWM5NywgIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLAorCQkJCSAgIE5VTEwsIHNsYXZlX3N3c192dDE2MTYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM2MzMsNyArMzcxMCw3IEBACiB7CiAJYWM5Ny0+YnVpbGRfb3BzID0gJnBhdGNoX3VjYjE0MDBfb3BzOwogCS8qIGVuYWJsZSBoZWFkcGhvbmUgZHJpdmVyIGFuZCBzbWFydCBsb3cgcG93ZXIgbW9kZSBieSBkZWZhdWx0ICovCi0Jc25kX2FjOTdfd3JpdGUoYWM5NywgMHg2YSwgMHgwMDUwKTsKLQlzbmRfYWM5N193cml0ZShhYzk3LCAweDZjLCAweDAwMzApOworCXNuZF9hYzk3X3dyaXRlX2NhY2hlKGFjOTcsIDB4NmEsIDB4MDA1MCk7CisJc25kX2FjOTdfd3JpdGVfY2FjaGUoYWM5NywgMHg2YywgMHgwMDMwKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hYzk3L2FrNDUzMV9jb2RlYy5jIGIvc291bmQvcGNpL2FjOTcvYWs0NTMxX2NvZGVjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwYzE2MzM5Li4wMDAwMDAwCi0tLSBhL3NvdW5kL3BjaS9hYzk3L2FrNDUzMV9jb2RlYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNTA4ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChjKSBieSBKYXJvc2xhdiBLeXNlbGEgPHBlcmV4QHBlcmV4LmN6PgotICogIFVuaXZlcnNhbCByb3V0aW5lcyBmb3IgQUs0NTMxIGNvZGVjCi0gKgotICoKLSAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKLSAqCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotCi0jaW5jbHVkZSA8c291bmQvY29yZS5oPgotI2luY2x1ZGUgPHNvdW5kL2FrNDUzMV9jb2RlYy5oPgotI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPgotCi1NT0RVTEVfQVVUSE9SKCJKYXJvc2xhdiBLeXNlbGEgPHBlcmV4QHBlcmV4LmN6PiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJVbml2ZXJzYWwgcm91dGluZXMgZm9yIEFLNDUzMSBjb2RlYyIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi0jaWZkZWYgQ09ORklHX1BST0NfRlMKLXN0YXRpYyB2b2lkIHNuZF9hazQ1MzFfcHJvY19pbml0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSk7Ci0jZWxzZQotI2RlZmluZSBzbmRfYWs0NTMxX3Byb2NfaW5pdChjYXJkLGFrKQotI2VuZGlmCi0KLS8qCi0gKgotICovCi0gCi0jaWYgMAotCi1zdGF0aWMgdm9pZCBzbmRfYWs0NTMxX2R1bXAoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKLXsKLQlpbnQgaWR4OwotCQotCWZvciAoaWR4ID0gMDsgaWR4IDwgMHgxOTsgaWR4KyspCi0JCXByaW50aygiYWs0NTMxIDB4JXg6IDB4JXhcbiIsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0pOwotfQotCi0jZW5kaWYKLQotLyoKLSAqCi0gKi8KLQotI2RlZmluZSBBSzQ1MzFfU0lOR0xFKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX3NpbmdsZSwgXAotICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfc2luZ2xlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfc2luZ2xlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDE2KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpIH0KLSNkZWZpbmUgQUs0NTMxX1NJTkdMRV9UTFYoeG5hbWUsIHhpbmRleCwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0LCB4dGx2KSAgICBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCBcCi0gIC5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFIHwgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFELCBcCi0gIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUsIFwKLSAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X3NpbmdsZSwgXAotICAucHJpdmF0ZV92YWx1ZSA9IHJlZyB8IChzaGlmdCA8PCAxNikgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSwgXAotICAudGx2ID0geyAucCA9ICh4dGx2KSB9IH0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9fc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0KLQl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKLQl1aW5mby0+Y291bnQgPSAxOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKLQlyZXR1cm4gMDsKLX0KLSAKLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7Ci0JaW50IHZhbDsKLQotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQl2YWwgPSAoYWs0NTMxLT5yZWdzW3JlZ10gPj4gc2hpZnQpICYgbWFzazsKLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlpZiAoaW52ZXJ0KSB7Ci0JCXZhbCA9IG1hc2sgLSB2YWw7Ci0JfQotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gdmFsOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCWludCBjaGFuZ2U7Ci0JaW50IHZhbDsKLQotCXZhbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKLQlpZiAoaW52ZXJ0KSB7Ci0JCXZhbCA9IG1hc2sgLSB2YWw7Ci0JfQotCXZhbCA8PD0gc2hpZnQ7Ci0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXZhbCA9IChhazQ1MzEtPnJlZ3NbcmVnXSAmIH4obWFzayA8PCBzaGlmdCkpIHwgdmFsOwotCWNoYW5nZSA9IHZhbCAhPSBhazQ1MzEtPnJlZ3NbcmVnXTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnLCBhazQ1MzEtPnJlZ3NbcmVnXSA9IHZhbCk7Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotI2RlZmluZSBBSzQ1MzFfRE9VQkxFKHhuYW1lLCB4aW5kZXgsIGxlZnRfcmVnLCByaWdodF9yZWcsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0LCBtYXNrLCBpbnZlcnQpIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19kb3VibGUsIFwKLSAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2RvdWJsZSwgXAotICAucHJpdmF0ZV92YWx1ZSA9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAxOSkgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSB9Ci0jZGVmaW5lIEFLNDUzMV9ET1VCTEVfVExWKHhuYW1lLCB4aW5kZXgsIGxlZnRfcmVnLCByaWdodF9yZWcsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0LCBtYXNrLCBpbnZlcnQsIHh0bHYpIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIFwKLSAgLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUgfCBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQsIFwKLSAgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2RvdWJsZSwgXAotICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfZG91YmxlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfZG91YmxlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gbGVmdF9yZWcgfCAocmlnaHRfcmVnIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDE5KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpLCBcCi0gIC50bHYgPSB7IC5wID0gKHh0bHYpIH0gfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQotCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOwotCXVpbmZvLT5jb3VudCA9IDI7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOwotCXJldHVybiAwOwotfQotIAotc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IGxlZnRfcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCByaWdodF9yZWcgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7Ci0JaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE5KSAmIDB4MDc7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7Ci0JaW50IGxlZnQsIHJpZ2h0OwotCi0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA+PiBsZWZ0X3NoaWZ0KSAmIG1hc2s7Ci0JcmlnaHQgPSAoYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gPj4gcmlnaHRfc2hpZnQpICYgbWFzazsKLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlpZiAoaW52ZXJ0KSB7Ci0JCWxlZnQgPSBtYXNrIC0gbGVmdDsKLQkJcmlnaHQgPSBtYXNrIC0gcmlnaHQ7Ci0JfQotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gbGVmdDsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IHJpZ2h0OwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgY2hhbmdlOwotCWludCBsZWZ0LCByaWdodDsKLQotCWxlZnQgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIG1hc2s7Ci0JcmlnaHQgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSAmIG1hc2s7Ci0JaWYgKGludmVydCkgewotCQlsZWZ0ID0gbWFzayAtIGxlZnQ7Ci0JCXJpZ2h0ID0gbWFzayAtIHJpZ2h0OwotCX0KLQlsZWZ0IDw8PSBsZWZ0X3NoaWZ0OwotCXJpZ2h0IDw8PSByaWdodF9zaGlmdDsKLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JaWYgKGxlZnRfcmVnID09IHJpZ2h0X3JlZykgewotCQlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gJiB+KChtYXNrIDw8IGxlZnRfc2hpZnQpIHwgKG1hc2sgPDwgcmlnaHRfc2hpZnQpKSkgfCBsZWZ0IHwgcmlnaHQ7Ci0JCWNoYW5nZSA9IGxlZnQgIT0gYWs0NTMxLT5yZWdzW2xlZnRfcmVnXTsKLQkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGxlZnRfcmVnLCBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID0gbGVmdCk7Ci0JfSBlbHNlIHsKLQkJbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddICYgfihtYXNrIDw8IGxlZnRfc2hpZnQpKSB8IGxlZnQ7Ci0JCXJpZ2h0ID0gKGFrNDUzMS0+cmVnc1tyaWdodF9yZWddICYgfihtYXNrIDw8IHJpZ2h0X3NoaWZ0KSkgfCByaWdodDsKLQkJY2hhbmdlID0gbGVmdCAhPSBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddIHx8IHJpZ2h0ICE9IGFrNDUzMS0+cmVnc1tyaWdodF9yZWddOwotCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgbGVmdF9yZWcsIGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPSBsZWZ0KTsKLQkJYWs0NTMxLT53cml0ZShhazQ1MzEsIHJpZ2h0X3JlZywgYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gPSByaWdodCk7Ci0JfQotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLSNkZWZpbmUgQUs0NTMxX0lOUFVUX1NXKHhuYW1lLCB4aW5kZXgsIHJlZzEsIHJlZzIsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9faW5wdXRfc3csIFwKLSAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2lucHV0X3N3LCAucHV0ID0gc25kX2FrNDUzMV9wdXRfaW5wdXRfc3csIFwKLSAgLnByaXZhdGVfdmFsdWUgPSByZWcxIHwgKHJlZzIgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMjQpIH0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9faW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU47Ci0JdWluZm8tPmNvdW50ID0gNDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IDE7Ci0JcmV0dXJuIDA7Ci19Ci0gCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCByZWcxID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCByZWcyID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDBmOwotCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweDBmOwotCi0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gKGFrNDUzMS0+cmVnc1tyZWcxXSA+PiBsZWZ0X3NoaWZ0KSAmIDE7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSAoYWs0NTMxLT5yZWdzW3JlZzJdID4+IGxlZnRfc2hpZnQpICYgMTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsyXSA9IChhazQ1MzEtPnJlZ3NbcmVnMV0gPj4gcmlnaHRfc2hpZnQpICYgMTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVszXSA9IChhazQ1MzEtPnJlZ3NbcmVnMl0gPj4gcmlnaHRfc2hpZnQpICYgMTsKLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgcmVnMSA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmVnMiA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwZjsKLQlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHgwZjsKLQlpbnQgY2hhbmdlOwotCWludCB2YWwxLCB2YWwyOwotCi0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXZhbDEgPSBhazQ1MzEtPnJlZ3NbcmVnMV0gJiB+KCgxIDw8IGxlZnRfc2hpZnQpIHwgKDEgPDwgcmlnaHRfc2hpZnQpKTsKLQl2YWwyID0gYWs0NTMxLT5yZWdzW3JlZzJdICYgfigoMSA8PCBsZWZ0X3NoaWZ0KSB8ICgxIDw8IHJpZ2h0X3NoaWZ0KSk7Ci0JdmFsMSB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiAxKSA8PCBsZWZ0X3NoaWZ0OwotCXZhbDIgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdICYgMSkgPDwgbGVmdF9zaGlmdDsKLQl2YWwxIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsyXSAmIDEpIDw8IHJpZ2h0X3NoaWZ0OwotCXZhbDIgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzNdICYgMSkgPDwgcmlnaHRfc2hpZnQ7Ci0JY2hhbmdlID0gdmFsMSAhPSBhazQ1MzEtPnJlZ3NbcmVnMV0gfHwgdmFsMiAhPSBhazQ1MzEtPnJlZ3NbcmVnMl07Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZzEsIGFrNDUzMS0+cmVnc1tyZWcxXSA9IHZhbDEpOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcyLCBhazQ1MzEtPnJlZ3NbcmVnMl0gPSB2YWwyKTsKLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi1zdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfbWFzdGVyLCAtNjIwMCwgMjAwLCAwKTsKLXN0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9tb25vLCAtMjgwMCwgNDAwLCAwKTsKLXN0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9pbnB1dCwgLTUwMDAsIDIwMCwgMCk7Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzbmRfYWs0NTMxX2NvbnRyb2xzW10gPSB7Ci0KLUFLNDUzMV9ET1VCTEVfVExWKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwKLQkJICBBSzQ1MzFfTE1BU1RFUiwgQUs0NTMxX1JNQVNURVIsIDcsIDcsIDEsIDEsCi0JCSAgZGJfc2NhbGVfbWFzdGVyKSwKLUFLNDUzMV9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCAwLCBBSzQ1MzFfTE1BU1RFUiwgQUs0NTMxX1JNQVNURVIsIDAsIDAsIDB4MWYsIDEpLAotCi1BSzQ1MzFfU0lOR0xFX1RMVigiTWFzdGVyIE1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX01PTk9fT1VULCA3LCAxLCAxLAotCQkgIGRiX3NjYWxlX21vbm8pLAotQUs0NTMxX1NJTkdMRSgiTWFzdGVyIE1vbm8gUGxheWJhY2sgVm9sdW1lIiwgMCwgQUs0NTMxX01PTk9fT1VULCAwLCAweDA3LCAxKSwKLQotQUs0NTMxX0RPVUJMRSgiUENNIFN3aXRjaCIsIDAsIEFLNDUzMV9MVk9JQ0UsIEFLNDUzMV9SVk9JQ0UsIDcsIDcsIDEsIDEpLAotQUs0NTMxX0RPVUJMRV9UTFYoIlBDTSBWb2x1bWUiLCAwLCBBSzQ1MzFfTFZPSUNFLCBBSzQ1MzFfUlZPSUNFLCAwLCAwLCAweDFmLCAxLAotCQkgIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgQUs0NTMxX09VVF9TVzIsIDMsIDIsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiUENNIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAyLCAyLCAxLCAwKSwKLQotQUs0NTMxX0RPVUJMRSgiUENNIFN3aXRjaCIsIDEsIEFLNDUzMV9MRk0sIEFLNDUzMV9SRk0sIDcsIDcsIDEsIDEpLAotQUs0NTMxX0RPVUJMRV9UTFYoIlBDTSBWb2x1bWUiLCAxLCBBSzQ1MzFfTEZNLCBBSzQ1MzFfUkZNLCAwLCAwLCAweDFmLCAxLAotCQkgIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAxLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDYsIDUsIDEsIDApLAotQUs0NTMxX0lOUFVUX1NXKCJQQ00gQ2FwdHVyZSBSb3V0ZSIsIDEsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgNiwgNSksCi0KLUFLNDUzMV9ET1VCTEUoIkNEIFN3aXRjaCIsIDAsIEFLNDUzMV9MQ0QsIEFLNDUzMV9SQ0QsIDcsIDcsIDEsIDEpLAotQUs0NTMxX0RPVUJMRV9UTFYoIkNEIFZvbHVtZSIsIDAsIEFLNDUzMV9MQ0QsIEFLNDUzMV9SQ0QsIDAsIDAsIDB4MWYsIDEsCi0JCSAgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX0RPVUJMRSgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCAyLCAxLCAxLCAwKSwKLUFLNDUzMV9JTlBVVF9TVygiQ0QgQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgMiwgMSksCi0KLUFLNDUzMV9ET1VCTEUoIkxpbmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xMSU5FLCBBSzQ1MzFfUkxJTkUsIDcsIDcsIDEsIDEpLAotQUs0NTMxX0RPVUJMRV9UTFYoIkxpbmUgVm9sdW1lIiwgMCwgQUs0NTMxX0xMSU5FLCBBSzQ1MzFfUkxJTkUsIDAsIDAsIDB4MWYsIDEsCi0JCSAgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX0RPVUJMRSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDQsIDMsIDEsIDApLAotQUs0NTMxX0lOUFVUX1NXKCJMaW5lIENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDQsIDMpLAotCi1BSzQ1MzFfRE9VQkxFKCJBdXggU3dpdGNoIiwgMCwgQUs0NTMxX0xBVVhBLCBBSzQ1MzFfUkFVWEEsIDcsIDcsIDEsIDEpLAotQUs0NTMxX0RPVUJMRV9UTFYoIkF1eCBWb2x1bWUiLCAwLCBBSzQ1MzFfTEFVWEEsIEFLNDUzMV9SQVVYQSwgMCwgMCwgMHgxZiwgMSwKLQkJICBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfRE9VQkxFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIEFLNDUzMV9PVVRfU1cyLCA1LCA0LCAxLCAwKSwKLUFLNDUzMV9JTlBVVF9TVygiQXV4IENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDQsIDMpLAotCi1BSzQ1MzFfU0lOR0xFKCJNb25vIFN3aXRjaCIsIDAsIEFLNDUzMV9NT05PMSwgNywgMSwgMSksCi1BSzQ1MzFfU0lOR0xFX1RMVigiTW9ubyBWb2x1bWUiLCAwLCBBSzQ1MzFfTU9OTzEsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIDAsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiTW9ubyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMCwgMCwgMSwgMCksCi0KLUFLNDUzMV9TSU5HTEUoIk1vbm8gU3dpdGNoIiwgMSwgQUs0NTMxX01PTk8yLCA3LCAxLCAxKSwKLUFLNDUzMV9TSU5HTEVfVExWKCJNb25vIFZvbHVtZSIsIDEsIEFLNDUzMV9NT05PMiwgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAxLCBBSzQ1MzFfT1VUX1NXMiwgMSwgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJNb25vIENhcHR1cmUgU3dpdGNoIiwgMSwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAxLCAxLCAxLCAwKSwKLQotQUs0NTMxX1NJTkdMRV9UTFYoIk1pYyBWb2x1bWUiLCAwLCBBSzQ1MzFfTUlDLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfU0lOR0xFKCJNaWMgU3dpdGNoIiwgMCwgQUs0NTMxX01JQywgNywgMSwgMSksCi1BSzQ1MzFfU0lOR0xFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIDAsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiTWljIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCAwLCAwLCAxLCAwKSwKLQotQUs0NTMxX0RPVUJMRSgiTWljIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNywgNywgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJNb25vMSBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDYsIDYsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiTW9ubzIgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA1LCA1LCAxLCAwKSwKLQotQUs0NTMxX1NJTkdMRSgiQUQgSW5wdXQgU2VsZWN0IiwgMCwgQUs0NTMxX0FEX0lOLCAwLCAxLCAwKSwKLUFLNDUzMV9TSU5HTEUoIk1pYyBCb29zdCAoKzMwZEIpIiwgMCwgQUs0NTMxX01JQ19HQUlOLCAwLCAxLCAwKQotfTsKLQotc3RhdGljIGludCBzbmRfYWs0NTMxX2ZyZWUoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKLXsKLQlpZiAoYWs0NTMxKSB7Ci0JCWlmIChhazQ1MzEtPnByaXZhdGVfZnJlZSkKLQkJCWFrNDUzMS0+cHJpdmF0ZV9mcmVlKGFrNDUzMSk7Ci0JCWtmcmVlKGFrNDUzMSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gZGV2aWNlLT5kZXZpY2VfZGF0YTsKLQlyZXR1cm4gc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7Ci19Ci0KLXN0YXRpYyB1OCBzbmRfYWs0NTMxX2luaXRpYWxfbWFwWzB4MTkgKyAxXSA9IHsKLQkweDlmLAkJLyogMDA6IE1hc3RlciBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDAxOiBNYXN0ZXIgVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwMjogVm9pY2UgVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwMzogVm9pY2UgVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwNDogRk0gVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwNTogRk0gVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwNjogQ0QgQXVkaW8gVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwNzogQ0QgQXVkaW8gVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwODogTGluZSBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDA5OiBMaW5lIFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMGE6IEF1eCBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDBiOiBBdXggVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwYzogTW9ubzEgVm9sdW1lICovCi0JMHg5ZiwJCS8qIDBkOiBNb25vMiBWb2x1bWUgKi8KLQkweDlmLAkJLyogMGU6IE1pYyBWb2x1bWUgKi8KLQkweDg3LAkJLyogMGY6IE1vbm8tb3V0IFZvbHVtZSAqLwotCTB4MDAsCQkvKiAxMDogT3V0cHV0IE1peGVyIFNXMSAqLwotCTB4MDAsCQkvKiAxMTogT3V0cHV0IE1peGVyIFNXMiAqLwotCTB4MDAsCQkvKiAxMjogTGNoIElucHV0IE1peGVyIFNXMSAqLwotCTB4MDAsCQkvKiAxMzogUmNoIElucHV0IE1peGVyIFNXMSAqLwotCTB4MDAsCQkvKiAxNDogTGNoIElucHV0IE1peGVyIFNXMiAqLwotCTB4MDAsCQkvKiAxNTogUmNoIElucHV0IE1peGVyIFNXMiAqLwotCTB4MDAsCQkvKiAxNjogUmVzZXQgJiBQb3dlciBEb3duICovCi0JMHgwMCwJCS8qIDE3OiBDbG9jayBTZWxlY3QgKi8KLQkweDAwLAkJLyogMTg6IEFEIElucHV0IFNlbGVjdCAqLwotCTB4MDEJCS8qIDE5OiBNaWMgQW1wIFNldHVwICovCi19OwotCi1pbnQgc25kX2FrNDUzMV9taXhlcihzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfYWs0NTMxICpfYWs0NTMxLAotCQkgICAgIHN0cnVjdCBzbmRfYWs0NTMxICoqcmFrNDUzMSkKLXsKLQl1bnNpZ25lZCBpbnQgaWR4OwotCWludCBlcnI7Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMTsKLQlzdGF0aWMgc3RydWN0IHNuZF9kZXZpY2Vfb3BzIG9wcyA9IHsKLQkJLmRldl9mcmVlID0Jc25kX2FrNDUzMV9kZXZfZnJlZSwKLQl9OwotCi0Jc25kX2Fzc2VydChyYWs0NTMxICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKLQkqcmFrNDUzMSA9IE5VTEw7Ci0Jc25kX2Fzc2VydChjYXJkICE9IE5VTEwgJiYgX2FrNDUzMSAhPSBOVUxMLCByZXR1cm4gLUVJTlZBTCk7Ci0JYWs0NTMxID0ga3phbGxvYyhzaXplb2YoKmFrNDUzMSksIEdGUF9LRVJORUwpOwotCWlmIChhazQ1MzEgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0JKmFrNDUzMSA9ICpfYWs0NTMxOwotCW11dGV4X2luaXQoJmFrNDUzMS0+cmVnX211dGV4KTsKLQlpZiAoKGVyciA9IHNuZF9jb21wb25lbnRfYWRkKGNhcmQsICJBSzQ1MzEiKSkgPCAwKSB7Ci0JCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOwotCQlyZXR1cm4gZXJyOwotCX0KLQlzdHJjcHkoY2FyZC0+bWl4ZXJuYW1lLCAiQXNhaGkgS2FzZWkgQUs0NTMxIik7Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMyk7CS8qIG5vIFJTVCwgUEQgKi8KLQl1ZGVsYXkoMTAwKTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0NMT0NLLCAweDAwKTsJLyogQ09ERUMgQURDIGFuZCBDT0RFQyBEQUMgdXNlIHtMUixCfUNMSzIgYW5kIHJ1biBvZmYgTFJDTEsyIFBMTCAqLwotCWZvciAoaWR4ID0gMDsgaWR4IDw9IDB4MTk7IGlkeCsrKSB7Ci0JCWlmIChpZHggPT0gQUs0NTMxX1JFU0VUIHx8IGlkeCA9PSBBSzQ1MzFfQ0xPQ0spCi0JCQljb250aW51ZTsKLQkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0gPSBzbmRfYWs0NTMxX2luaXRpYWxfbWFwW2lkeF0pOwkvKiByZWNvcmRpbmcgc291cmNlIGlzIG1peGVyICovCi0JfQotCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfYWs0NTMxX2NvbnRyb2xzKTsgaWR4KyspIHsKLQkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjYXJkLCBzbmRfY3RsX25ldzEoJnNuZF9hazQ1MzFfY29udHJvbHNbaWR4XSwgYWs0NTMxKSkpIDwgMCkgewotCQkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCXNuZF9hazQ1MzFfcHJvY19pbml0KGNhcmQsIGFrNDUzMSk7Ci0JaWYgKChlcnIgPSBzbmRfZGV2aWNlX25ldyhjYXJkLCBTTkRSVl9ERVZfQ09ERUMsIGFrNDUzMSwgJm9wcykpIDwgMCkgewotCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0KLSNpZiAwCi0Jc25kX2FrNDUzMV9kdW1wKGFrNDUzMSk7Ci0jZW5kaWYKLQkqcmFrNDUzMSA9IGFrNDUzMTsKLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIHBvd2VyIG1hbmFnZW1lbnQKLSAqLwotI2lmZGVmIENPTkZJR19QTQotdm9pZCBzbmRfYWs0NTMxX3N1c3BlbmQoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKLXsKLQkvKiBtdXRlICovCi0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9MTUFTVEVSLCAweDlmKTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JNQVNURVIsIDB4OWYpOwotCS8qIHBvd2VyZG93biAqLwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDEpOwotfQotCi12b2lkIHNuZF9hazQ1MzFfcmVzdW1lKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCi17Ci0JaW50IGlkeDsKLQotCS8qIGluaXRpYWxpemUgKi8KLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAzKTsKLQl1ZGVsYXkoMTAwKTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0NMT0NLLCAweDAwKTsKLQkvKiByZXN0b3JlIG1peGVyIHJlZ2lzdGVycyAqLwotCWZvciAoaWR4ID0gMDsgaWR4IDw9IDB4MTk7IGlkeCsrKSB7Ci0JCWlmIChpZHggPT0gQUs0NTMxX1JFU0VUIHx8IGlkeCA9PSBBSzQ1MzFfQ0xPQ0spCi0JCQljb250aW51ZTsKLQkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0pOwotCX0KLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1BST0NfRlMKLS8qCi0gKiAvcHJvYyBpbnRlcmZhY2UKLSAqLwotCi1zdGF0aWMgdm9pZCBzbmRfYWs0NTMxX3Byb2NfcmVhZChzdHJ1Y3Qgc25kX2luZm9fZW50cnkgKmVudHJ5LCAKLQkJCQkgc3RydWN0IHNuZF9pbmZvX2J1ZmZlciAqYnVmZmVyKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBlbnRyeS0+cHJpdmF0ZV9kYXRhOwotCi0Jc25kX2lwcmludGYoYnVmZmVyLCAiQXNhaGkgS2FzZWkgQUs0NTMxXG5cbiIpOwotCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIlJlY29yZGluZyBzb3VyY2UgICA6ICVzXG4iCi0JCSAgICAiTUlDIGdhaW4gICAgICAgICAgIDogJXNcbiIsCi0JCSAgICBhazQ1MzEtPnJlZ3NbQUs0NTMxX0FEX0lOXSAmIDEgPyAiZXh0ZXJuYWwiIDogIm1peGVyIiwKLQkJICAgIGFrNDUzMS0+cmVnc1tBSzQ1MzFfTUlDX0dBSU5dICYgMSA/ICIrMzBkQiIgOiAiKzBkQiIpOwotfQotCi1zdGF0aWMgdm9pZCBzbmRfYWs0NTMxX3Byb2NfaW5pdChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCi17Ci0Jc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeTsKLQotCWlmICghIHNuZF9jYXJkX3Byb2NfbmV3KGNhcmQsICJhazQ1MzEiLCAmZW50cnkpKQotCQlzbmRfaW5mb19zZXRfdGV4dF9vcHMoZW50cnksIGFrNDUzMSwgc25kX2FrNDUzMV9wcm9jX3JlYWQpOwotfQotI2VuZGlmCi0KLUVYUE9SVF9TWU1CT0woc25kX2FrNDUzMV9taXhlcik7Ci0jaWZkZWYgQ09ORklHX1BNCi1FWFBPUlRfU1lNQk9MKHNuZF9hazQ1MzFfc3VzcGVuZCk7Ci1FWFBPUlRfU1lNQk9MKHNuZF9hazQ1MzFfcmVzdW1lKTsKLSNlbmRpZgotCi0vKgotICogIElOSVQgcGFydAotICovCi0KLXN0YXRpYyBpbnQgX19pbml0IGFsc2FfYWs0NTMxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGFsc2FfYWs0NTMxX2V4aXQodm9pZCkKLXsKLX0KLQotbW9kdWxlX2luaXQoYWxzYV9hazQ1MzFfaW5pdCkKLW1vZHVsZV9leGl0KGFsc2FfYWs0NTMxX2V4aXQpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWs0NTMxX2NvZGVjLmMgYi9zb3VuZC9wY2kvYWs0NTMxX2NvZGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkMzdiMQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3BjaS9hazQ1MzFfY29kZWMuYwpAQCAtMCwwICsxLDQ5MCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIGJ5IEphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+CisgKiAgVW5pdmVyc2FsIHJvdXRpbmVzIGZvciBBSzQ1MzEgY29kZWMKKyAqCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvYWs0NTMxX2NvZGVjLmg+CisjaW5jbHVkZSA8c291bmQvdGx2Lmg+CisKKy8qCitNT0RVTEVfQVVUSE9SKCJKYXJvc2xhdiBLeXNlbGEgPHBlcmV4QHBlcmV4LmN6PiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJVbml2ZXJzYWwgcm91dGluZXMgZm9yIEFLNDUzMSBjb2RlYyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworKi8KKworI2lmZGVmIENPTkZJR19QUk9DX0ZTCitzdGF0aWMgdm9pZCBzbmRfYWs0NTMxX3Byb2NfaW5pdChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpOworI2Vsc2UKKyNkZWZpbmUgc25kX2FrNDUzMV9wcm9jX2luaXQoY2FyZCxhaykKKyNlbmRpZgorCisvKgorICoKKyAqLworIAorI2lmIDAKKworc3RhdGljIHZvaWQgc25kX2FrNDUzMV9kdW1wKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCit7CisJaW50IGlkeDsKKwkKKwlmb3IgKGlkeCA9IDA7IGlkeCA8IDB4MTk7IGlkeCsrKQorCQlwcmludGsoImFrNDUzMSAweCV4OiAweCV4XG4iLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdKTsKK30KKworI2VuZGlmCisKKy8qCisgKgorICovCisKKyNkZWZpbmUgQUs0NTMxX1NJTkdMRSh4bmFtZSwgeGluZGV4LCByZWcsIHNoaWZ0LCBtYXNrLCBpbnZlcnQpIFwKK3sgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAorICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUsIFwKKyAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X3NpbmdsZSwgXAorICAucHJpdmF0ZV92YWx1ZSA9IHJlZyB8IChzaGlmdCA8PCAxNikgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSB9CisjZGVmaW5lIEFLNDUzMV9TSU5HTEVfVExWKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCwgeHRsdikgICAgXAoreyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgXAorICAuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSB8IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCwgXAorICAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKKyAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fc2luZ2xlLCBcCisgIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9zaW5nbGUsIFwKKyAgLnByaXZhdGVfdmFsdWUgPSByZWcgfCAoc2hpZnQgPDwgMTYpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMiksIFwKKyAgLnRsdiA9IHsgLnAgPSAoeHRsdikgfSB9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCisJdWluZm8tPnR5cGUgPSBtYXNrID09IDEgPyBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7CisJdWluZm8tPmNvdW50ID0gMTsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1hc2s7CisJcmV0dXJuIDA7Cit9CisgCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisJaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOworCWludCB2YWw7CisKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJdmFsID0gKGFrNDUzMS0+cmVnc1tyZWddID4+IHNoaWZ0KSAmIG1hc2s7CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJaWYgKGludmVydCkgeworCQl2YWwgPSBtYXNrIC0gdmFsOworCX0KKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IHZhbDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKKwlpbnQgY2hhbmdlOworCWludCB2YWw7CisKKwl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIG1hc2s7CisJaWYgKGludmVydCkgeworCQl2YWwgPSBtYXNrIC0gdmFsOworCX0KKwl2YWwgPDw9IHNoaWZ0OworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwl2YWwgPSAoYWs0NTMxLT5yZWdzW3JlZ10gJiB+KG1hc2sgPDwgc2hpZnQpKSB8IHZhbDsKKwljaGFuZ2UgPSB2YWwgIT0gYWs0NTMxLT5yZWdzW3JlZ107CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZywgYWs0NTMxLT5yZWdzW3JlZ10gPSB2YWwpOworCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXJldHVybiBjaGFuZ2U7Cit9CisKKyNkZWZpbmUgQUs0NTMxX0RPVUJMRSh4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCwgbWFzaywgaW52ZXJ0KSBcCit7IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKKyAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fZG91YmxlLCBcCisgIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9kb3VibGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9kb3VibGUsIFwKKyAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQorI2RlZmluZSBBSzQ1MzFfRE9VQkxFX1RMVih4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCwgbWFzaywgaW52ZXJ0LCB4dGx2KSBcCit7IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCBcCisgIC5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFIHwgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFELCBcCisgIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAorICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19kb3VibGUsIFwKKyAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2RvdWJsZSwgXAorICAucHJpdmF0ZV92YWx1ZSA9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAxOSkgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSwgXAorICAudGx2ID0geyAucCA9ICh4dGx2KSB9IH0KKworc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9fZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQoreworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisKKwl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAyOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKKwlyZXR1cm4gMDsKK30KKyAKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKKwlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OworCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisJaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOworCWludCBsZWZ0LCByaWdodDsKKworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPj4gbGVmdF9zaGlmdCkgJiBtYXNrOworCXJpZ2h0ID0gKGFrNDUzMS0+cmVnc1tyaWdodF9yZWddID4+IHJpZ2h0X3NoaWZ0KSAmIG1hc2s7CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJaWYgKGludmVydCkgeworCQlsZWZ0ID0gbWFzayAtIGxlZnQ7CisJCXJpZ2h0ID0gbWFzayAtIHJpZ2h0OworCX0KKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IGxlZnQ7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSByaWdodDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IGxlZnRfcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByaWdodF9yZWcgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOworCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7CisJaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE5KSAmIDB4MDc7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKwlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7CisJaW50IGNoYW5nZTsKKwlpbnQgbGVmdCwgcmlnaHQ7CisKKwlsZWZ0ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrOworCXJpZ2h0ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiBtYXNrOworCWlmIChpbnZlcnQpIHsKKwkJbGVmdCA9IG1hc2sgLSBsZWZ0OworCQlyaWdodCA9IG1hc2sgLSByaWdodDsKKwl9CisJbGVmdCA8PD0gbGVmdF9zaGlmdDsKKwlyaWdodCA8PD0gcmlnaHRfc2hpZnQ7CisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCWlmIChsZWZ0X3JlZyA9PSByaWdodF9yZWcpIHsKKwkJbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddICYgfigobWFzayA8PCBsZWZ0X3NoaWZ0KSB8IChtYXNrIDw8IHJpZ2h0X3NoaWZ0KSkpIHwgbGVmdCB8IHJpZ2h0OworCQljaGFuZ2UgPSBsZWZ0ICE9IGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ107CisJCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBsZWZ0X3JlZywgYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA9IGxlZnQpOworCX0gZWxzZSB7CisJCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSAmIH4obWFzayA8PCBsZWZ0X3NoaWZ0KSkgfCBsZWZ0OworCQlyaWdodCA9IChhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSAmIH4obWFzayA8PCByaWdodF9zaGlmdCkpIHwgcmlnaHQ7CisJCWNoYW5nZSA9IGxlZnQgIT0gYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSB8fCByaWdodCAhPSBhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXTsKKwkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGxlZnRfcmVnLCBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID0gbGVmdCk7CisJCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByaWdodF9yZWcsIGFrNDUzMS0+cmVnc1tyaWdodF9yZWddID0gcmlnaHQpOworCX0KKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlyZXR1cm4gY2hhbmdlOworfQorCisjZGVmaW5lIEFLNDUzMV9JTlBVVF9TVyh4bmFtZSwgeGluZGV4LCByZWcxLCByZWcyLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCkgXAoreyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCisgIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2lucHV0X3N3LCBcCisgIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9pbnB1dF9zdywgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2lucHV0X3N3LCBcCisgIC5wcml2YXRlX3ZhbHVlID0gcmVnMSB8IChyZWcyIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDI0KSB9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQoreworCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOOworCXVpbmZvLT5jb3VudCA9IDQ7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSAxOworCXJldHVybiAwOworfQorIAorc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnMSA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgcmVnMiA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7CisJaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwZjsKKwlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHgwZjsKKworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChhazQ1MzEtPnJlZ3NbcmVnMV0gPj4gbGVmdF9zaGlmdCkgJiAxOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gKGFrNDUzMS0+cmVnc1tyZWcyXSA+PiBsZWZ0X3NoaWZ0KSAmIDE7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMl0gPSAoYWs0NTMxLT5yZWdzW3JlZzFdID4+IHJpZ2h0X3NoaWZ0KSAmIDE7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbM10gPSAoYWs0NTMxLT5yZWdzW3JlZzJdID4+IHJpZ2h0X3NoaWZ0KSAmIDE7CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfaW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IHJlZzEgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHJlZzIgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOworCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MGY7CisJaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4MGY7CisJaW50IGNoYW5nZTsKKwlpbnQgdmFsMSwgdmFsMjsKKworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwl2YWwxID0gYWs0NTMxLT5yZWdzW3JlZzFdICYgfigoMSA8PCBsZWZ0X3NoaWZ0KSB8ICgxIDw8IHJpZ2h0X3NoaWZ0KSk7CisJdmFsMiA9IGFrNDUzMS0+cmVnc1tyZWcyXSAmIH4oKDEgPDwgbGVmdF9zaGlmdCkgfCAoMSA8PCByaWdodF9zaGlmdCkpOworCXZhbDEgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgMSkgPDwgbGVmdF9zaGlmdDsKKwl2YWwyIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSAmIDEpIDw8IGxlZnRfc2hpZnQ7CisJdmFsMSB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMl0gJiAxKSA8PCByaWdodF9zaGlmdDsKKwl2YWwyIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVszXSAmIDEpIDw8IHJpZ2h0X3NoaWZ0OworCWNoYW5nZSA9IHZhbDEgIT0gYWs0NTMxLT5yZWdzW3JlZzFdIHx8IHZhbDIgIT0gYWs0NTMxLT5yZWdzW3JlZzJdOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcxLCBhazQ1MzEtPnJlZ3NbcmVnMV0gPSB2YWwxKTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnMiwgYWs0NTMxLT5yZWdzW3JlZzJdID0gdmFsMik7CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJcmV0dXJuIGNoYW5nZTsKK30KKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX21hc3RlciwgLTYyMDAsIDIwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfbW9ubywgLTI4MDAsIDQwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfaW5wdXQsIC01MDAwLCAyMDAsIDApOworCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX2FrNDUzMV9jb250cm9sc1tdIF9fZGV2aW5pdGRhdGEgPSB7CisKK0FLNDUzMV9ET1VCTEVfVExWKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkJICBBSzQ1MzFfTE1BU1RFUiwgQUs0NTMxX1JNQVNURVIsIDcsIDcsIDEsIDEsCisJCSAgZGJfc2NhbGVfbWFzdGVyKSwKK0FLNDUzMV9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCAwLCBBSzQ1MzFfTE1BU1RFUiwgQUs0NTMxX1JNQVNURVIsIDAsIDAsIDB4MWYsIDEpLAorCitBSzQ1MzFfU0lOR0xFX1RMVigiTWFzdGVyIE1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX01PTk9fT1VULCA3LCAxLCAxLAorCQkgIGRiX3NjYWxlX21vbm8pLAorQUs0NTMxX1NJTkdMRSgiTWFzdGVyIE1vbm8gUGxheWJhY2sgVm9sdW1lIiwgMCwgQUs0NTMxX01PTk9fT1VULCAwLCAweDA3LCAxKSwKKworQUs0NTMxX0RPVUJMRSgiUENNIFN3aXRjaCIsIDAsIEFLNDUzMV9MVk9JQ0UsIEFLNDUzMV9SVk9JQ0UsIDcsIDcsIDEsIDEpLAorQUs0NTMxX0RPVUJMRV9UTFYoIlBDTSBWb2x1bWUiLCAwLCBBSzQ1MzFfTFZPSUNFLCBBSzQ1MzFfUlZPSUNFLCAwLCAwLCAweDFmLCAxLAorCQkgIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgQUs0NTMxX09VVF9TVzIsIDMsIDIsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiUENNIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAyLCAyLCAxLCAwKSwKKworQUs0NTMxX0RPVUJMRSgiUENNIFN3aXRjaCIsIDEsIEFLNDUzMV9MRk0sIEFLNDUzMV9SRk0sIDcsIDcsIDEsIDEpLAorQUs0NTMxX0RPVUJMRV9UTFYoIlBDTSBWb2x1bWUiLCAxLCBBSzQ1MzFfTEZNLCBBSzQ1MzFfUkZNLCAwLCAwLCAweDFmLCAxLAorCQkgIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAxLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDYsIDUsIDEsIDApLAorQUs0NTMxX0lOUFVUX1NXKCJQQ00gQ2FwdHVyZSBSb3V0ZSIsIDEsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgNiwgNSksCisKK0FLNDUzMV9ET1VCTEUoIkNEIFN3aXRjaCIsIDAsIEFLNDUzMV9MQ0QsIEFLNDUzMV9SQ0QsIDcsIDcsIDEsIDEpLAorQUs0NTMxX0RPVUJMRV9UTFYoIkNEIFZvbHVtZSIsIDAsIEFLNDUzMV9MQ0QsIEFLNDUzMV9SQ0QsIDAsIDAsIDB4MWYsIDEsCisJCSAgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX0RPVUJMRSgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCAyLCAxLCAxLCAwKSwKK0FLNDUzMV9JTlBVVF9TVygiQ0QgQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgMiwgMSksCisKK0FLNDUzMV9ET1VCTEUoIkxpbmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xMSU5FLCBBSzQ1MzFfUkxJTkUsIDcsIDcsIDEsIDEpLAorQUs0NTMxX0RPVUJMRV9UTFYoIkxpbmUgVm9sdW1lIiwgMCwgQUs0NTMxX0xMSU5FLCBBSzQ1MzFfUkxJTkUsIDAsIDAsIDB4MWYsIDEsCisJCSAgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX0RPVUJMRSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDQsIDMsIDEsIDApLAorQUs0NTMxX0lOUFVUX1NXKCJMaW5lIENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDQsIDMpLAorCitBSzQ1MzFfRE9VQkxFKCJBdXggU3dpdGNoIiwgMCwgQUs0NTMxX0xBVVhBLCBBSzQ1MzFfUkFVWEEsIDcsIDcsIDEsIDEpLAorQUs0NTMxX0RPVUJMRV9UTFYoIkF1eCBWb2x1bWUiLCAwLCBBSzQ1MzFfTEFVWEEsIEFLNDUzMV9SQVVYQSwgMCwgMCwgMHgxZiwgMSwKKwkJICBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfRE9VQkxFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIEFLNDUzMV9PVVRfU1cyLCA1LCA0LCAxLCAwKSwKK0FLNDUzMV9JTlBVVF9TVygiQXV4IENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDQsIDMpLAorCitBSzQ1MzFfU0lOR0xFKCJNb25vIFN3aXRjaCIsIDAsIEFLNDUzMV9NT05PMSwgNywgMSwgMSksCitBSzQ1MzFfU0lOR0xFX1RMVigiTW9ubyBWb2x1bWUiLCAwLCBBSzQ1MzFfTU9OTzEsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIDAsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiTW9ubyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMCwgMCwgMSwgMCksCisKK0FLNDUzMV9TSU5HTEUoIk1vbm8gU3dpdGNoIiwgMSwgQUs0NTMxX01PTk8yLCA3LCAxLCAxKSwKK0FLNDUzMV9TSU5HTEVfVExWKCJNb25vIFZvbHVtZSIsIDEsIEFLNDUzMV9NT05PMiwgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAxLCBBSzQ1MzFfT1VUX1NXMiwgMSwgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJNb25vIENhcHR1cmUgU3dpdGNoIiwgMSwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAxLCAxLCAxLCAwKSwKKworQUs0NTMxX1NJTkdMRV9UTFYoIk1pYyBWb2x1bWUiLCAwLCBBSzQ1MzFfTUlDLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfU0lOR0xFKCJNaWMgU3dpdGNoIiwgMCwgQUs0NTMxX01JQywgNywgMSwgMSksCitBSzQ1MzFfU0lOR0xFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIDAsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiTWljIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCAwLCAwLCAxLCAwKSwKKworQUs0NTMxX0RPVUJMRSgiTWljIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNywgNywgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJNb25vMSBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDYsIDYsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiTW9ubzIgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA1LCA1LCAxLCAwKSwKKworQUs0NTMxX1NJTkdMRSgiQUQgSW5wdXQgU2VsZWN0IiwgMCwgQUs0NTMxX0FEX0lOLCAwLCAxLCAwKSwKK0FLNDUzMV9TSU5HTEUoIk1pYyBCb29zdCAoKzMwZEIpIiwgMCwgQUs0NTMxX01JQ19HQUlOLCAwLCAxLCAwKQorfTsKKworc3RhdGljIGludCBzbmRfYWs0NTMxX2ZyZWUoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKK3sKKwlpZiAoYWs0NTMxKSB7CisJCWlmIChhazQ1MzEtPnByaXZhdGVfZnJlZSkKKwkJCWFrNDUzMS0+cHJpdmF0ZV9mcmVlKGFrNDUzMSk7CisJCWtmcmVlKGFrNDUzMSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gZGV2aWNlLT5kZXZpY2VfZGF0YTsKKwlyZXR1cm4gc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7Cit9CisKK3N0YXRpYyB1OCBzbmRfYWs0NTMxX2luaXRpYWxfbWFwWzB4MTkgKyAxXSA9IHsKKwkweDlmLAkJLyogMDA6IE1hc3RlciBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDAxOiBNYXN0ZXIgVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwMjogVm9pY2UgVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwMzogVm9pY2UgVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwNDogRk0gVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwNTogRk0gVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwNjogQ0QgQXVkaW8gVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwNzogQ0QgQXVkaW8gVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwODogTGluZSBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDA5OiBMaW5lIFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMGE6IEF1eCBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDBiOiBBdXggVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwYzogTW9ubzEgVm9sdW1lICovCisJMHg5ZiwJCS8qIDBkOiBNb25vMiBWb2x1bWUgKi8KKwkweDlmLAkJLyogMGU6IE1pYyBWb2x1bWUgKi8KKwkweDg3LAkJLyogMGY6IE1vbm8tb3V0IFZvbHVtZSAqLworCTB4MDAsCQkvKiAxMDogT3V0cHV0IE1peGVyIFNXMSAqLworCTB4MDAsCQkvKiAxMTogT3V0cHV0IE1peGVyIFNXMiAqLworCTB4MDAsCQkvKiAxMjogTGNoIElucHV0IE1peGVyIFNXMSAqLworCTB4MDAsCQkvKiAxMzogUmNoIElucHV0IE1peGVyIFNXMSAqLworCTB4MDAsCQkvKiAxNDogTGNoIElucHV0IE1peGVyIFNXMiAqLworCTB4MDAsCQkvKiAxNTogUmNoIElucHV0IE1peGVyIFNXMiAqLworCTB4MDAsCQkvKiAxNjogUmVzZXQgJiBQb3dlciBEb3duICovCisJMHgwMCwJCS8qIDE3OiBDbG9jayBTZWxlY3QgKi8KKwkweDAwLAkJLyogMTg6IEFEIElucHV0IFNlbGVjdCAqLworCTB4MDEJCS8qIDE5OiBNaWMgQW1wIFNldHVwICovCit9OworCitpbnQgX19kZXZpbml0IHNuZF9hazQ1MzFfbWl4ZXIoc3RydWN0IHNuZF9jYXJkICpjYXJkLAorCQkJICAgICAgIHN0cnVjdCBzbmRfYWs0NTMxICpfYWs0NTMxLAorCQkJICAgICAgIHN0cnVjdCBzbmRfYWs0NTMxICoqcmFrNDUzMSkKK3sKKwl1bnNpZ25lZCBpbnQgaWR4OworCWludCBlcnI7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMTsKKwlzdGF0aWMgc3RydWN0IHNuZF9kZXZpY2Vfb3BzIG9wcyA9IHsKKwkJLmRldl9mcmVlID0Jc25kX2FrNDUzMV9kZXZfZnJlZSwKKwl9OworCisJc25kX2Fzc2VydChyYWs0NTMxICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKKwkqcmFrNDUzMSA9IE5VTEw7CisJc25kX2Fzc2VydChjYXJkICE9IE5VTEwgJiYgX2FrNDUzMSAhPSBOVUxMLCByZXR1cm4gLUVJTlZBTCk7CisJYWs0NTMxID0ga3phbGxvYyhzaXplb2YoKmFrNDUzMSksIEdGUF9LRVJORUwpOworCWlmIChhazQ1MzEgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisJKmFrNDUzMSA9ICpfYWs0NTMxOworCW11dGV4X2luaXQoJmFrNDUzMS0+cmVnX211dGV4KTsKKwlpZiAoKGVyciA9IHNuZF9jb21wb25lbnRfYWRkKGNhcmQsICJBSzQ1MzEiKSkgPCAwKSB7CisJCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOworCQlyZXR1cm4gZXJyOworCX0KKwlzdHJjcHkoY2FyZC0+bWl4ZXJuYW1lLCAiQXNhaGkgS2FzZWkgQUs0NTMxIik7CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMyk7CS8qIG5vIFJTVCwgUEQgKi8KKwl1ZGVsYXkoMTAwKTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0NMT0NLLCAweDAwKTsJLyogQ09ERUMgQURDIGFuZCBDT0RFQyBEQUMgdXNlIHtMUixCfUNMSzIgYW5kIHJ1biBvZmYgTFJDTEsyIFBMTCAqLworCWZvciAoaWR4ID0gMDsgaWR4IDw9IDB4MTk7IGlkeCsrKSB7CisJCWlmIChpZHggPT0gQUs0NTMxX1JFU0VUIHx8IGlkeCA9PSBBSzQ1MzFfQ0xPQ0spCisJCQljb250aW51ZTsKKwkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0gPSBzbmRfYWs0NTMxX2luaXRpYWxfbWFwW2lkeF0pOwkvKiByZWNvcmRpbmcgc291cmNlIGlzIG1peGVyICovCisJfQorCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfYWs0NTMxX2NvbnRyb2xzKTsgaWR4KyspIHsKKwkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjYXJkLCBzbmRfY3RsX25ldzEoJnNuZF9hazQ1MzFfY29udHJvbHNbaWR4XSwgYWs0NTMxKSkpIDwgMCkgeworCQkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCXNuZF9hazQ1MzFfcHJvY19pbml0KGNhcmQsIGFrNDUzMSk7CisJaWYgKChlcnIgPSBzbmRfZGV2aWNlX25ldyhjYXJkLCBTTkRSVl9ERVZfQ09ERUMsIGFrNDUzMSwgJm9wcykpIDwgMCkgeworCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKyNpZiAwCisJc25kX2FrNDUzMV9kdW1wKGFrNDUzMSk7CisjZW5kaWYKKwkqcmFrNDUzMSA9IGFrNDUzMTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIHBvd2VyIG1hbmFnZW1lbnQKKyAqLworI2lmZGVmIENPTkZJR19QTQordm9pZCBzbmRfYWs0NTMxX3N1c3BlbmQoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKK3sKKwkvKiBtdXRlICovCisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9MTUFTVEVSLCAweDlmKTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JNQVNURVIsIDB4OWYpOworCS8qIHBvd2VyZG93biAqLworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDEpOworfQorCit2b2lkIHNuZF9hazQ1MzFfcmVzdW1lKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCit7CisJaW50IGlkeDsKKworCS8qIGluaXRpYWxpemUgKi8KKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAzKTsKKwl1ZGVsYXkoMTAwKTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0NMT0NLLCAweDAwKTsKKwkvKiByZXN0b3JlIG1peGVyIHJlZ2lzdGVycyAqLworCWZvciAoaWR4ID0gMDsgaWR4IDw9IDB4MTk7IGlkeCsrKSB7CisJCWlmIChpZHggPT0gQUs0NTMxX1JFU0VUIHx8IGlkeCA9PSBBSzQ1MzFfQ0xPQ0spCisJCQljb250aW51ZTsKKwkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0pOworCX0KK30KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1BST0NfRlMKKy8qCisgKiAvcHJvYyBpbnRlcmZhY2UKKyAqLworCitzdGF0aWMgdm9pZCBzbmRfYWs0NTMxX3Byb2NfcmVhZChzdHJ1Y3Qgc25kX2luZm9fZW50cnkgKmVudHJ5LCAKKwkJCQkgc3RydWN0IHNuZF9pbmZvX2J1ZmZlciAqYnVmZmVyKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBlbnRyeS0+cHJpdmF0ZV9kYXRhOworCisJc25kX2lwcmludGYoYnVmZmVyLCAiQXNhaGkgS2FzZWkgQUs0NTMxXG5cbiIpOworCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIlJlY29yZGluZyBzb3VyY2UgICA6ICVzXG4iCisJCSAgICAiTUlDIGdhaW4gICAgICAgICAgIDogJXNcbiIsCisJCSAgICBhazQ1MzEtPnJlZ3NbQUs0NTMxX0FEX0lOXSAmIDEgPyAiZXh0ZXJuYWwiIDogIm1peGVyIiwKKwkJICAgIGFrNDUzMS0+cmVnc1tBSzQ1MzFfTUlDX0dBSU5dICYgMSA/ICIrMzBkQiIgOiAiKzBkQiIpOworfQorCitzdGF0aWMgdm9pZCBfX2RldmluaXQKK3NuZF9hazQ1MzFfcHJvY19pbml0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKK3sKKwlzdHJ1Y3Qgc25kX2luZm9fZW50cnkgKmVudHJ5OworCisJaWYgKCEgc25kX2NhcmRfcHJvY19uZXcoY2FyZCwgImFrNDUzMSIsICZlbnRyeSkpCisJCXNuZF9pbmZvX3NldF90ZXh0X29wcyhlbnRyeSwgYWs0NTMxLCBzbmRfYWs0NTMxX3Byb2NfcmVhZCk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hdTg4eDAvYXU4OHgwX2dhbWUuYyBiL3NvdW5kL3BjaS9hdTg4eDAvYXU4OHgwX2dhbWUuYwppbmRleCBiYzIxMmY0Li5lMjkxYWE1IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvYXU4OHgwL2F1ODh4MF9nYW1lLmMKKysrIGIvc291bmQvcGNpL2F1ODh4MC9hdTg4eDBfZ2FtZS5jCkBAIC0xLDYgKzEsNCBAQAogLyoKLSAqICRJZDogYXU4OHgwX2dhbWUuYyx2IDEuOSAyMDAzLzA5LzIyIDAzOjUxOjI4IG1qYW5kZXIgRXhwICQKLSAqCiAgKiAgTWFudWVsIEphbmRlci4KICAqCiAgKiAgQmFzZWQgb24gdGhlIHdvcmsgb2Y6CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYXcyL2F3Mi1hbHNhLmMgYi9zb3VuZC9wY2kvYXcyL2F3Mi1hbHNhLmMKaW5kZXggNTZmODdjZC4uM2YwMGRkZiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F3Mi9hdzItYWxzYS5jCisrKyBiL3NvdW5kL3BjaS9hdzIvYXcyLWFsc2EuYwpAQCAtMzE2LDYgKzMxNiw4IEBACiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAorCS8qICgyKSBpbml0aWFsaXphdGlvbiBvZiB0aGUgY2hpcCBoYXJkd2FyZSAqLworCXNuZF9hdzJfc2FhNzE0Nl9zZXR1cCgmY2hpcC0+c2FhNzE0NiwgY2hpcC0+aW9iYXNlX3ZpcnQpOwogCiAJaWYgKHJlcXVlc3RfaXJxKHBjaS0+aXJxLCBzbmRfYXcyX3NhYTcxNDZfaW50ZXJydXB0LAogCQkJSVJRRl9TSEFSRUQsICJBdWRpb3dlcmsyIiwgY2hpcCkpIHsKQEAgLTMyOSw4ICszMzEsNiBAQAogCX0KIAljaGlwLT5pcnEgPSBwY2ktPmlycTsKIAotCS8qICgyKSBpbml0aWFsaXphdGlvbiBvZiB0aGUgY2hpcCBoYXJkd2FyZSAqLwotCXNuZF9hdzJfc2FhNzE0Nl9zZXR1cCgmY2hpcC0+c2FhNzE0NiwgY2hpcC0+aW9iYXNlX3ZpcnQpOwogCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY2hpcCwgJm9wcyk7CiAJaWYgKGVyciA8IDApIHsKIAkJZnJlZV9pcnEoY2hpcC0+aXJxLCAodm9pZCAqKWNoaXApOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2F6dDMzMjguYyBiL3NvdW5kL3BjaS9henQzMzI4LmMKaW5kZXggNWY2M2FmNi4uMjJmMThmMyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F6dDMzMjguYworKysgYi9zb3VuZC9wY2kvYXp0MzMyOC5jCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBhenQzMzI4LmMgLSBkcml2ZXIgZm9yIEF6dGVjaCBBWkYzMzI4IGJhc2VkIHNvdW5kY2FyZHMgKGUuZy4gUENJMTY4KS4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcgYnkgQW5kcmVhcyBNb2hyIDxhbmRpIEFUIGxpc2FzLmRlPgorICogIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSAtIDIwMDggYnkgQW5kcmVhcyBNb2hyIDxhbmRpIEFUIGxpc2FzLmRlPgogICoKICAqICBGcmFtZXdvcmsgYm9ycm93ZWQgZnJvbSBCYXJ0IEhhcnRnZXJzJ3MgYWxzNDAwMC5jLgogICogIERyaXZlciBkZXZlbG9wZWQgb24gUENJMTY4IEFQKFcpIHZlcnNpb24gKFBDSSByZXYuIDEwLCBzdWJzeXN0ZW0gSUQgMTgwMSksCkBAIC0zNSw5ICszNSwyMCBAQAogICogICgzIHdlZWtzJyB3b3J0aCBvZiBldmVuaW5ncyBmaWxsZWQgd2l0aCBkcml2ZXIgd29yaykuCiAgKiAgKGFuZCBubywgSSBkaWQgTk9UIGdvIHRoZSBlYXN5IHdheTogdG8gcGljayB1cCBhIFNCIFBDSTEyOCBmb3IgOSBFdXJvcykKICAqCi0gKiAgVGhlIEFaRjMzMjggY2hpcCAobm90ZTogQVpGMzMyOCwgKm5vdCogQVpUMzMyOCwgdGhhdCdzIGp1c3QgdGhlIGRyaXZlciBuYW1lCi0gKiAgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucykgaGFzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6CisgKiAgSXQgaXMgcXVpdGUgbGlrZWx5IHRoYXQgdGhlIEFaRjMzMjggY2hpcCBpcyB0aGUgUENJIGNvdXNpbiBvZiB0aGUKKyAqICBBWkYzMzE4ICgiYXp0MTAyMCBwbnAiLCAiTU0gUHJvIDE2IikgSVNBIGNoaXAsIGdpdmVuIHZlcnkgc2ltaWxhciBzcGVjcy4KICAqCisgKiAgVGhlIEFaRjMzMjggY2hpcCAobm90ZTogQVpGMzMyOCwgKm5vdCogQVpUMzMyOCwgdGhhdCdzIGp1c3QgdGhlIGRyaXZlciBuYW1lCisgKiAgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucykgZnJvbSBBemZpbiAoam9pbnQtdmVudHVyZSBvZiBBenRlY2ggYW5kIEZpbmNpdGVjLAorICogIEZpbmNpdGVjIGFjcXVpcmVkIGJ5IE5hdGlvbmFsIFNlbWljb25kdWN0b3IgaW4gMjAwMiwgdG9nZXRoZXIgd2l0aCB0aGUKKyAqICBGaW5jaXRlYy1yZWxhdGVkIGNvbXBhbnkgQVJTbWlrcm8pIGhhcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgorICoKKyAqICAtIGNvbXBhdGliaWxpdHkgJiBjb21wbGlhbmNlOgorICogICAgLSBNaWNyb3NvZnQgUEMgOTcgKCJQQyA5NyBIYXJkd2FyZSBEZXNpZ24gR3VpZGUiLAorICogICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aGRjL2FyY2hpdmUvcGNndWlkZXMubXNweCkKKyAqICAgIC0gTWljcm9zb2Z0IFBDIDk4IEJhc2VsaW5lIEF1ZGlvCisgKiAgICAtIE1QVTQwMSBVQVJUCisgKiAgICAtIFNvdW5kIEJsYXN0ZXIgRW11bGF0aW9uIChET1MgQm94KQogICogIC0gYnVpbHRpbiBBQzk3IGNvbmZvcm1hbnQgY29kZWMgKFNOUiBvdmVyIDgwZEIpCiAgKiAgICBOb3RlIHRoYXQgImNvbmZvcm1hbnQiICE9ICJjb21wbGlhbnQiISEgdGhpcyBjaGlwJ3MgbWl4ZXIgcmVnaXN0ZXIgbGF5b3V0CiAgKiAgICAqZGlmZmVycyogZnJvbSB0aGUgc3RhbmRhcmQgQUM5NyBsYXlvdXQ6CkBAIC00OCwyMSArNTksMjggQEAKICAqICAgIGFkZHJlc3NlcyBpbGxlZ2FsbHkuIFNvIGZhciB1bmZvcnR1bmF0ZWx5IGl0IGxvb2tzIGxpa2UgdGhlIHZlcnkgZmxleGlibGUKICAqICAgIEFMU0EgQUM5NyBzdXBwb3J0IGlzIHN0aWxsIG5vdCBlbm91Z2ggdG8gZWFzaWx5IGNvbXBlbnNhdGUgZm9yIHN1Y2ggYQogICogICAgZ3JhdmUgbGF5b3V0IHZpb2xhdGlvbiBkZXNwaXRlIGFsbCB0d2Vha3MgYW5kIHF1aXJrcyBtZWNoYW5pc21zIGl0IG9mZmVycy4KLSAqICAtIGJ1aWx0aW4gZ2VudWluZSBPUEwzCisgKiAgLSBidWlsdGluIGdlbnVpbmUgT1BMMyAtIHZlcmlmaWVkIHRvIHdvcmsgZmluZSwgMjAwODA1MDYKICAqICAtIGZ1bGwgZHVwbGV4IDE2Yml0IHBsYXliYWNrL3JlY29yZCBhdCBpbmRlcGVuZGVudCBzYW1wbGluZyByYXRlCi0gKiAgLSBNUFU0MDEgKCsgbGVnYWN5IGFkZHJlc3Mgc3VwcG9ydCkgRklYTUU6IGhvdyB0byBlbmFibGUgbGVnYWN5IGFkZHI/PworICogIC0gTVBVNDAxICgrIGxlZ2FjeSBhZGRyZXNzIHN1cHBvcnQsIGNsYWltZWQgYnkgb25lIG9mZmljaWFsIHNwZWMgc2hlZXQpCisgKiAgICBGSVhNRTogaG93IHRvIGVuYWJsZSBsZWdhY3kgYWRkcj8/CiAgKiAgLSBnYW1lIHBvcnQgKGxlZ2FjeSBhZGRyZXNzIHN1cHBvcnQpCi0gKiAgLSBidWlsdGluIDNEIGVuaGFuY2VtZW50IChzYWlkIHRvIGJlIFlBTUFIQSBZbWVyc2lvbikKICAqICAtIGJ1aWx0aW4gRGlyZWN0SW5wdXQgc3VwcG9ydCwgaGVscHMgcmVkdWNlIENQVSBvdmVyaGVhZCAoaW50ZXJydXB0LWRyaXZlbgotICogICAgZmVhdHVyZXMgc3VwcG9ydGVkKQorICogICAgZmVhdHVyZXMgc3VwcG9ydGVkKS4gLSBTZWUgY29tbW9uIHRlcm0gIkRpZ2l0YWwgRW5oYW5jZWQgR2FtZSBQb3J0Ii4uLgorICogICAgKHByb2JhYmx5IERpcmVjdElucHV0IDMuMCBzcGVjIC0gY29uZmlybSkKKyAqICAtIGJ1aWx0aW4gM0QgZW5oYW5jZW1lbnQgKHNhaWQgdG8gYmUgWUFNQUhBIFltZXJzaW9uKQogICogIC0gYnVpbHQtaW4gR2VuZXJhbCBEaXJlY3RYIHRpbWVyIGhhdmluZyBhIDIwIGJpdHMgY291bnRlcgogICogICAgd2l0aCAxdXMgcmVzb2x1dGlvbiAoc2VlIGJlbG93ISkKLSAqICAtIEkyUyBzZXJpYWwgcG9ydCBmb3IgZXh0ZXJuYWwgREFDCisgKiAgLSBJMlMgc2VyaWFsIG91dHB1dCBwb3J0IGZvciBleHRlcm5hbCBEQUMKICAqICAtIHN1cHBvcnRzIDMzTUh6IFBDSSBzcGVjIDIuMSwgUENJIHBvd2VyIG1hbmFnZW1lbnQgMS4wLCBjb21wbGlhbnQgd2l0aCBBQ1BJCiAgKiAgLSBzdXBwb3J0cyBoYXJkd2FyZSB2b2x1bWUgY29udHJvbAogICogIC0gc2luZ2xlIGNoaXAgbG93IGNvc3Qgc29sdXRpb24gKDEyOCBwaW4gUUZQKQogICogIC0gc3VwcG9ydHMgcHJvZ3JhbW1hYmxlIFN1Yi12ZW5kb3IgYW5kIFN1Yi1zeXN0ZW0gSUQKICAqICAgIHJlcXVpcmVkIGZvciBNaWNyb3NvZnQncyBsb2dvIGNvbXBsaWFuY2UgKEZJWE1FOiB3aGVyZT8pCisgKiAgICBBdCBsZWFzdCB0aGUgVHJpZGVudCA0RCBXYXZlIERYIGhhcyBvbmUgYml0IHNvbWV3aGVyZQorICogICAgdG8gZW5hYmxlIHdyaXRlcyB0byBQQ0kgc3Vic3lzdGVtIFZJRCByZWdpc3RlcnMsIHRoYXQgc2hvdWxkIGJlIGl0LgorICogICAgVGhpcyBtaWdodCBlYXNpbHkgYmUgaW4gZXh0ZW5kZWQgUENJIHJlZyBzcGFjZSwgc2luY2UgUENJMTY4IGFsc28gaGFzCisgKiAgICBzb21lIGN1c3RvbSBkYXRhIHN0YXJ0aW5nIGF0IDB4ODAuIFdoYXQga2luZCBvZiBjb25maWcgc2V0dGluZ3MKKyAqICAgIGFyZSBsb2NhdGVkIGluIG91ciBleHRlbmRlZCBQQ0kgc3BhY2UgYW55d2F5Pz8KICAqICAtIFBDSTE2OCBBUChXKSBjYXJkOiBwb3dlciBhbXBsaWZpZXIgd2l0aCA0IFdhdHRzL2NoYW5uZWwgYXQgNCBPaG1zCiAgKgogICogIE5vdGUgdGhhdCB0aGlzIGRyaXZlciBub3cgaXMgYWN0dWFsbHkgKmJldHRlciogdGhhbiB0aGUgV2luZG93cyBkcml2ZXIsCkBAIC03NCw2ICs5MiwyNCBAQAogICogIC0gInRpbWlkaXR5IC1pQXYgLUIyLDggLU9zIC1FRnJldmVyYj0wIgogICogIC0gInBtaWRpIC1wIDEyODowIGphenoubWlkIgogICoKKyAqICBPUEwzIGhhcmR3YXJlIHBsYXliYWNrIHRlc3RpbmcsIHRyeSBzb21ldGhpbmcgbGlrZToKKyAqICBjYXQgL3Byb2MvYXNvdW5kL2h3ZGVwCisgKiAgYW5kCisgKiAgYWNvbm5lY3QgLW8KKyAqICBUaGVuIHVzZQorICogIHNiaWxvYWQgLURodzp4LHkgLS1vcGwzIC91c3Ivc2hhcmUvc291bmRzL29wbDMvc3RkLm8zIC4uLi4uLi4vZHJ1bXMubzMKKyAqICB3aGVyZSB4LHkgaXMgdGhlIHh4LXl5IG51bWJlciBhcyBnaXZlbiBpbiBod2RlcC4KKyAqICBUaGVuIHRyeQorICogIHBtaWRpIC1wIGE6YiBqYXp6Lm1pZAorICogIHdoZXJlIGE6YiBpcyB0aGUgY2xpZW50IG51bWJlciBwbHVzIDAgdXN1YWxseSwgYXMgZ2l2ZW4gYnkgYWNvbm5lY3QgYWJvdmUuCisgKiAgT2gsIGFuZCBtYWtlIHN1cmUgdG8gdW5tdXRlIHRoZSBGTSBtaXhlciBjb250cm9sIChkb2ghKQorICogIE5PVEU6IHBvd2VyIHVzZSBkdXJpbmcgT1BMMyBwbGF5YmFjayBpcyBfVkVSWV8gaGlnaCAoNzBXIC0tPiA5MFchKQorICogIGRlc3BpdGUgbm8gQ1BVIGFjdGl2aXR5LCBwb3NzaWJseSBkdWUgdG8gaGluZGVyaW5nIEFDUEkgaWRsaW5nIHNvbWVob3cuCisgKiAgU2hvdWxkbid0IGJlIGEgcHJvYmxlbSBvZiB0aGUgQVpGMzMyOCBjaGlwIGl0c2VsZiwgSSdkIGhvcGUuCisgKiAgSGlnaGVyIFBDTSAvIEZNIG1peGVyIGxldmVscyBzZWVtIHRvIGNvbmZsaWN0IChjYXVzZXMgY3JhY2tsaW5nKSwKKyAqICBhdCBsZWFzdCBzb21ldGltZXMuICAgTWF5YmUgZXZlbiB1c2Ugd2l0aCBoYXJkd2FyZSBzZXF1ZW5jZXIgdGltZXIgYWJvdmUgOikKKyAqICBhZHBsYXkvYWRwbHVnLXV0aWxzIG1pZ2h0IHNvb24gb2ZmZXIgaGFyZHdhcmUtYmFzZWQgT1BMMyBwbGF5YmFjaywgdG9vLgorICoKICAqICBDZXJ0YWluIFBDSSB2ZXJzaW9ucyBvZiB0aGlzIGNhcmQgYXJlIHN1c2NlcHRpYmxlIHRvIERNQSB0cmFmZmljIHVuZGVycnVucwogICogIGluIHNvbWUgc3lzdGVtcyAocmVzdWx0aW5nIGluIHNvdW5kIGNyYWNrbGluZy9jbGlja2luZy9wb3BwaW5nKSwKICAqICBwcm9iYWJseSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSBhIERNQSBGSUZPIGJ1ZmZlciBvciBzby4KQEAgLTg3LDYgKzEyMyw4IEBACiAgKiAgYmV0dGVyIHRoYW4gYSBWSUEsIHlldCBpcm9uaWNhbGx5IEkgc3RpbGwgZ2V0IGNyYWNrbGluZywgbGlrZSBtYW55IG90aGVyCiAgKiAgcGVvcGxlIHdpdGggdGhlIHNhbWUgY2hpcHNldC4KICAqICBQb3NzaWJsZSByZW1lZGllczoKKyAqICAtIHVzZSBzcGVha2VyIChhbXBsaWZpZXIpIG91dHB1dCBpbnN0ZWFkIG9mIGhlYWRwaG9uZSBvdXRwdXQKKyAqICAgIChpbiBjYXNlIGNyYWNrbGluZyBpcyBkdWUgdG8gb3ZlcmxvYWRlZCBvdXRwdXQgY2xpcHBpbmcpCiAgKiAgLSBwbHVnIGNhcmQgaW50byBhIGRpZmZlcmVudCBQQ0kgc2xvdCwgcHJlZmVycmFibHkgb25lIHRoYXQgaXNuJ3Qgc2hhcmVkCiAgKiAgICB0b28gbXVjaCAodGhpcyBoZWxwcyBhIGxvdCwgYnV0IG5vdCBjb21wbGV0ZWx5ISkKICAqICAtIGdldCByaWQgb2YgUENJIFZHQSBjYXJkLCB1c2UgQUdQIGluc3RlYWQKQEAgLTk0LDE4ICsxMzIsMjMgQEAKICAqICAtIGZpZGRsZSB3aXRoIFBDSSBsYXRlbmN5IHNldHRpbmdzIChzZXRwY2kgLXYgLXMgQlVTSUQgbGF0ZW5jeV90aW1lcj1YWCkKICAqICAgIE5vdCB0b28gaGVscGZ1bC4KICAqICAtIERpc2FibGUgQUNQSS9wb3dlciBtYW5hZ2VtZW50LyJBdXRvIERldGVjdCBSQU0vUENJIENsayIgaW4gQklPUwotICogCisgKgogICogQlVHUwotICogIC0gZnVsbC1kdXBsZXggbWlnaHQgKnN0aWxsKiBiZSBwcm9ibGVtYXRpYywgbm90IGZ1bGx5IHRlc3RlZCByZWNlbnRseQorICogIC0gZnVsbC1kdXBsZXggbWlnaHQgKnN0aWxsKiBiZSBwcm9ibGVtYXRpYywgaG93ZXZlciBhIHJlY2VudCB0ZXN0IHdhcyBmaW5lCiAgKiAgLSAobm9uLWJ1ZykgIkJhc3MvVHJlYmxlIG9yIDNEIHNldHRpbmdzIGRvbid0IHdvcmsiIC0gdGhleSBkbyBnZXQgZXZhbHVhdGVkCiAgKiAgICBpZiB5b3Ugc2V0IFBDTSBvdXRwdXQgc3dpdGNoIHRvICJwcmUgM0QiIGluc3RlYWQgb2YgInBvc3QgM0QiLgogICogICAgSWYgdGhpcyBjYW4ndCBiZSBzZXQsIHRoZW4gZ2V0IGEgbWl4ZXIgYXBwbGljYXRpb24gdGhhdCBJc24ndCBTdHVwaWQgKHRtKQogICogICAgKGUuZy4ga21peCwgZ2FtaXgpIC0gdW5mb3J0dW5hdGVseSBzZXZlcmFsIGFyZSEhCi0gKiAKKyAqICAtIGxvY2tpbmcgaXMgbm90IGVudGlyZWx5IGNsZWFuLCBlc3BlY2lhbGx5IHRoZSBhdWRpbyBzdHJlYW0gYWN0aXZpdHkKKyAqICAgIGludHMgLS0+IG1heSBiZSByYWN5CisgKiAgLSBhbiBfdW5jb25uZWN0ZWRfIHNlY29uZGFyeSBqb3lzdGljayBhdCB0aGUgZ2FtZXBvcnQgd2lsbCBiZSByZXBvcnRlZAorICogICAgdG8gYmUgImFjdGl2ZSIgKGZsb2F0aW5nIHZhbHVlcywgbm90IHByZWNpc2VseSAtMSkgZHVlIHRvIHRoZSB3YXkgd2UgbmVlZAorICogICAgdG8gcmVhZCB0aGUgRGlnaXRhbCBFbmhhbmNlZCBHYW1lIFBvcnQuIE5vdCBzdXJlIHdoZXRoZXIgaXQgaXMgZml4YWJsZS4KKyAqCiAgKiBUT0RPCiAgKiAgLSB0ZXN0IE1QVTQwMSBNSURJIHBsYXliYWNrIGV0Yy4KLSAqICAtIGFkZCBzb21lIHBvd2VyIG1pY3JvLW1hbmFnZW1lbnQgKGRpc2FibGUgdmFyaW91cyB1bml0cyBvZiB0aGUgY2FyZAotICogICAgYXMgbG9uZyBhcyB0aGV5J3JlIHVudXNlZCkuIEhvd2V2ZXIgdGhpcyByZXF1aXJlcyBJL08gcG9ydHMgd2hpY2ggSQorICogIC0gYWRkIG1vcmUgcG93ZXIgbWljcm8tbWFuYWdlbWVudCAoZGlzYWJsZSB2YXJpb3VzIHVuaXRzIG9mIHRoZSBjYXJkCisgKiAgICBhcyBsb25nIGFzIHRoZXkncmUgdW51c2VkKS4gSG93ZXZlciB0aGlzIHJlcXVpcmVzIG1vcmUgSS9PIHBvcnRzIHdoaWNoIEkKICAqICAgIGhhdmVuJ3QgZmlndXJlZCBvdXQgeWV0IGFuZCB3aGljaCB0aHVzIG1pZ2h0IG5vdCBldmVuIGV4aXN0Li4uCiAgKiAgICBUaGUgc3RhbmRhcmQgc3VzcGVuZC9yZXN1bWUgZnVuY3Rpb25hbGl0eSBjb3VsZCBwcm9iYWJseSBtYWtlIHVzZSBvZgogICogICAgc29tZSBpbXByb3ZlbWVudCwgdG9vLi4uCkBAIC0xMTMsNiArMTU2LDcgQEAKICAqICAtIGZpZ3VyZSBvdXQgc29tZSBjbGV2ZXJseSBldmlsIHNjaGVtZSB0byBwb3NzaWJseSBtYWtlIEFMU0EgQUM5NyBjb2RlCiAgKiAgICBmdWxseSBhY2NlcHQgb3VyIHF1aXRlIGluY29tcGF0aWJsZSAiIkFDOTciIiBtaXhlciBhbmQgdGh1cyBzYXZlIHNvbWUKICAqICAgIGNvZGUgKGJ1dCBJJ20gbm90IHRvbyBvcHRpbWlzdGljIHRoYXQgZG9pbmcgdGhpcyBpcyBwb3NzaWJsZSBhdCBhbGwpCisgKiAgLSB1c2UgTU1JTyAobWVtb3J5LW1hcHBlZCBJL08pPyBTbGlnaHRseSBmYXN0ZXIgYWNjZXNzLCBlLmcuIGZvciBnYW1lcG9ydC4KICAqLwogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0xMzgsNyArMTgyLDcgQEAKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0F6dGVjaCxBWkYzMzI4fX0iKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0dBTUVQT1JUKSB8fCAoZGVmaW5lZChNT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX0dBTUVQT1JUX01PRFVMRSkpCi0jZGVmaW5lIFNVUFBPUlRfSk9ZU1RJQ0sgMQorI2RlZmluZSBTVVBQT1JUX0dBTUVQT1JUIDEKICNlbmRpZgogCiAjZGVmaW5lIERFQlVHX01JU0MJMApAQCAtMTQ3LDEzICsxOTEsMTQgQEAKICNkZWZpbmUgREVCVUdfUExBWV9SRUMJMAogI2RlZmluZSBERUJVR19JTwkwCiAjZGVmaW5lIERFQlVHX1RJTUVSCTAKKyNkZWZpbmUgREVCVUdfR0FNRQkwCiAjZGVmaW5lIE1JWEVSX1RFU1RJTkcJMAogCiAjaWYgREVCVUdfTUlTQwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdtaXNjKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKEtFUk5fRVJSIGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnbWlzYyhmb3JtYXQsIGFyZ3MuLi4pCi0jZW5kaWYJCQorI2VuZGlmCiAKICNpZiBERUJVR19DQUxMUwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdjYWxscyhmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhmb3JtYXQsICMjYXJncykKQEAgLTE2MywyNSArMjA4LDMxIEBACiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ2NhbGxzKGZvcm1hdCwgYXJncy4uLikKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCkKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCkKLSNlbmRpZgkJCisjZW5kaWYKIAogI2lmIERFQlVHX01JWEVSCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ21peGVyKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnbWl4ZXIoZm9ybWF0LCBhcmdzLi4uKQotI2VuZGlmCQkKKyNlbmRpZgogCiAjaWYgREVCVUdfUExBWV9SRUMKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJncGxheShmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKICNlbHNlCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ3BsYXkoZm9ybWF0LCBhcmdzLi4uKQotI2VuZGlmCQkKKyNlbmRpZgogCiAjaWYgREVCVUdfTUlTQwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmd0aW1lcihmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKICNlbHNlCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ3RpbWVyKGZvcm1hdCwgYXJncy4uLikKLSNlbmRpZgkJCisjZW5kaWYKKworI2lmIERFQlVHX0dBTUUKKyNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnZ2FtZShmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKKyNlbHNlCisjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ2dhbWUoZm9ybWF0LCBhcmdzLi4uKQorI2VuZGlmCiAKIHN0YXRpYyBpbnQgaW5kZXhbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9JRFg7CS8qIEluZGV4IDAtTUFYICovCiBtb2R1bGVfcGFyYW1fYXJyYXkoaW5kZXgsIGludCwgTlVMTCwgMDQ0NCk7CkBAIC0xOTUsNTEgKzI0Niw2MiBAQAogbW9kdWxlX3BhcmFtX2FycmF5KGVuYWJsZSwgYm9vbCwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZSwgIkVuYWJsZSBBWkYzMzI4IHNvdW5kY2FyZC4iKTsKIAotI2lmZGVmIFNVUFBPUlRfSk9ZU1RJQ0sKLXN0YXRpYyBpbnQgam95c3RpY2tbU05EUlZfQ0FSRFNdOwotbW9kdWxlX3BhcmFtX2FycmF5KGpveXN0aWNrLCBib29sLCBOVUxMLCAwNDQ0KTsKLU1PRFVMRV9QQVJNX0RFU0Moam95c3RpY2ssICJFbmFibGUgam95c3RpY2sgZm9yIEFaRjMzMjggc291bmRjYXJkLiIpOwotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc2VxdGltZXJfc2NhbGluZyA9IDEyODsKIG1vZHVsZV9wYXJhbShzZXF0aW1lcl9zY2FsaW5nLCBpbnQsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhzZXF0aW1lcl9zY2FsaW5nLCAiU2V0IDEwMjQwMDBIeiBzZXF1ZW5jZXIgdGltZXIgc2NhbGUgZmFjdG9yIChsb2NrdXAgZGFuZ2VyISkuIERlZmF1bHQgMTI4LiIpOwogCitzdHJ1Y3Qgc25kX2F6ZjMzMjhfYXVkaW9fc3RyZWFtIHsKKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKwlpbnQgZW5hYmxlZDsKKwlpbnQgcnVubmluZzsKKwl1bnNpZ25lZCBsb25nIHBvcnRiYXNlOworfTsKKworZW51bSBzbmRfYXpmMzMyOF9zdHJlYW1faW5kZXggeworICBBWkZfUExBWUJBQ0sgPSAwLAorICBBWkZfQ0FQVFVSRSA9IDEsCit9OworCiBzdHJ1Y3Qgc25kX2F6ZjMzMjggewogCS8qIG9mdGVuLXVzZWQgZmllbGRzIHRvd2FyZHMgYmVnaW5uaW5nLCB0aGVuIGdyb3VwZWQgKi8KLQl1bnNpZ25lZCBsb25nIGNvZGVjX3BvcnQ7Ci0JdW5zaWduZWQgbG9uZyBpbzJfcG9ydDsKLQl1bnNpZ25lZCBsb25nIG1wdV9wb3J0OwotCXVuc2lnbmVkIGxvbmcgc3ludGhfcG9ydDsKLQl1bnNpZ25lZCBsb25nIG1peGVyX3BvcnQ7CisKKwl1bnNpZ25lZCBsb25nIGNvZGVjX2lvOyAvKiB1c3VhbGx5IDB4YjAwMCwgc2l6ZSAxMjggKi8KKwl1bnNpZ25lZCBsb25nIGdhbWVfaW87ICAvKiB1c3VhbGx5IDB4YjQwMCwgc2l6ZSA4ICovCisJdW5zaWduZWQgbG9uZyBtcHVfaW87ICAgLyogdXN1YWxseSAweGI4MDAsIHNpemUgNCAqLworCXVuc2lnbmVkIGxvbmcgb3BsM19pbzsgLyogdXN1YWxseSAweGJjMDAsIHNpemUgOCAqLworCXVuc2lnbmVkIGxvbmcgbWl4ZXJfaW87IC8qIHVzdWFsbHkgMHhjMDAwLCBzaXplIDY0ICovCiAKIAlzcGlubG9ja190IHJlZ19sb2NrOwogCiAJc3RydWN0IHNuZF90aW1lciAqdGltZXI7Ci0JCisKIAlzdHJ1Y3Qgc25kX3BjbSAqcGNtOwotCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqcGxheWJhY2tfc3Vic3RyZWFtOwotCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqY2FwdHVyZV9zdWJzdHJlYW07Ci0JdW5zaWduZWQgaW50IGlzX3BsYXlpbmc7Ci0JdW5zaWduZWQgaW50IGlzX3JlY29yZGluZzsKKwlzdHJ1Y3Qgc25kX2F6ZjMzMjhfYXVkaW9fc3RyZWFtIGF1ZGlvX3N0cmVhbVsyXTsKIAogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKIAlzdHJ1Y3Qgc25kX3Jhd21pZGkgKnJtaWRpOwogCi0jaWZkZWYgU1VQUE9SVF9KT1lTVElDSworI2lmZGVmIFNVUFBPUlRfR0FNRVBPUlQKIAlzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0OworCWludCBheGVzWzRdOwogI2VuZGlmCiAKIAlzdHJ1Y3QgcGNpX2RldiAqcGNpOwogCWludCBpcnE7CiAKKwkvKiByZWdpc3RlciAweDZhIGlzIHdyaXRlLW9ubHksIHRodXMgbmVlZCB0byByZW1lbWJlciBzZXR0aW5nLgorCSAqIElmIHdlIG5lZWQgdG8gYWRkIG1vcmUgcmVnaXN0ZXJzIGhlcmUsIHRoZW4gd2UgbWlnaHQgdHJ5IHRvIGZvbGQgdGhpcworCSAqIGludG8gc29tZSB0cmFuc3BhcmVudCBjb21iaW5lZCBzaGFkb3cgcmVnaXN0ZXIgaGFuZGxpbmcgd2l0aAorCSAqIENPTkZJR19QTSByZWdpc3RlciBzdG9yYWdlIGJlbG93LCBidXQgdGhhdCdzIHNsaWdodGx5IGRpZmZpY3VsdC4gKi8KKwl1MTYgc2hhZG93X3JlZ19jb2RlY182QUg7CisKICNpZmRlZiBDT05GSUdfUE0KIAkvKiByZWdpc3RlciB2YWx1ZSBjb250YWluZXJzIGZvciBwb3dlciBtYW5hZ2VtZW50CiAJICogTm90ZTogbm90IGFsd2F5cyBmdWxsIEkvTyByYW5nZSBwcmVzZXJ2ZWQgKGp1c3QgbGlrZSBXaW4gZHJpdmVyISkgKi8KLQl1MTYgc2F2ZWRfcmVnc19jb2RlYyBbQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyXTsKLQl1MTYgc2F2ZWRfcmVnc19pbzIgICBbQVpGX0lPX1NJWkVfSU8yX1BNIC8gMl07Ci0JdTE2IHNhdmVkX3JlZ3NfbXB1ICAgW0FaRl9JT19TSVpFX01QVV9QTSAvIDJdOwotCXUxNiBzYXZlZF9yZWdzX3N5bnRoW0FaRl9JT19TSVpFX1NZTlRIX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3NfY29kZWNbQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyXTsKKwl1MTYgc2F2ZWRfcmVnc19nYW1lIFtBWkZfSU9fU0laRV9HQU1FX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3NfbXB1ICBbQVpGX0lPX1NJWkVfTVBVX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3Nfb3BsMyBbQVpGX0lPX1NJWkVfT1BMM19QTSAvIDJdOwogCXUxNiBzYXZlZF9yZWdzX21peGVyW0FaRl9JT19TSVpFX01JWEVSX1BNIC8gMl07CiAjZW5kaWYKIH07CkBAIC0yNTIsMTI2ICszMTQsMTY2IEBACiAKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzbmRfYXpmMzMyOF9pZHMpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X2NvZGVjX291dGIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1OCB2YWx1ZSkKKworc3RhdGljIGludAorc25kX2F6ZjMzMjhfaW9fcmVnX3NldGIodW5zaWduZWQgcmVnLCB1OCBtYXNrLCBpbnQgZG9fc2V0KQogewotCW91dGIodmFsdWUsIGNoaXAtPmNvZGVjX3BvcnQgKyByZWcpOworCXU4IHByZXYgPSBpbmIocmVnKSwgbmV3OworCisJbmV3ID0gKGRvX3NldCkgPyAocHJldnxtYXNrKSA6IChwcmV2ICYgfm1hc2spOworCS8qIHdlIG5lZWQgdG8gYWx3YXlzIHdyaXRlIHRoZSBuZXcgdmFsdWUgbm8gbWF0dGVyIHdoZXRoZXIgaXQgZGlmZmVycworCSAqIG9yIG5vdCwgc2luY2Ugc29tZSByZWdpc3RlciBiaXRzIGRvbid0IGluZGljYXRlIHRoZWlyIHNldHRpbmcgKi8KKwlvdXRiKG5ldywgcmVnKTsKKwlpZiAobmV3ICE9IHByZXYpCisJCXJldHVybiAxOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTggdmFsdWUpCit7CisJb3V0Yih2YWx1ZSwgY2hpcC0+Y29kZWNfaW8gKyByZWcpOwogfQogCiBzdGF0aWMgaW5saW5lIHU4Ci1zbmRfYXpmMzMyOF9jb2RlY19pbmIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnKQorc25kX2F6ZjMzMjhfY29kZWNfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbmIoY2hpcC0+Y29kZWNfcG9ydCArIHJlZyk7CisJcmV0dXJuIGluYihjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHUxNiB2YWx1ZSkKK3NuZF9hemYzMzI4X2NvZGVjX291dHcoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcsIHUxNiB2YWx1ZSkKIHsKLQlvdXR3KHZhbHVlLCBjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlvdXR3KHZhbHVlLCBjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTE2Ci1zbmRfYXpmMzMyOF9jb2RlY19pbncoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnKQorc25kX2F6ZjMzMjhfY29kZWNfaW53KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbncoY2hpcC0+Y29kZWNfcG9ydCArIHJlZyk7CisJcmV0dXJuIGludyhjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfY29kZWNfb3V0bChjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHUzMiB2YWx1ZSkKK3NuZF9hemYzMzI4X2NvZGVjX291dGwoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcsIHUzMiB2YWx1ZSkKIHsKLQlvdXRsKHZhbHVlLCBjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlvdXRsKHZhbHVlLCBjaGlwLT5jb2RlY19pbyArIHJlZyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyCitzbmRfYXpmMzMyOF9jb2RlY19pbmwoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcpCit7CisJcmV0dXJuIGlubChjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfaW8yX291dGIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1OCB2YWx1ZSkKK3NuZF9hemYzMzI4X2dhbWVfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTggdmFsdWUpCiB7Ci0Jb3V0Yih2YWx1ZSwgY2hpcC0+aW8yX3BvcnQgKyByZWcpOworCW91dGIodmFsdWUsIGNoaXAtPmdhbWVfaW8gKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTE2IHZhbHVlKQoreworCW91dHcodmFsdWUsIGNoaXAtPmdhbWVfaW8gKyByZWcpOwogfQogCiBzdGF0aWMgaW5saW5lIHU4Ci1zbmRfYXpmMzMyOF9pbzJfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZykKK3NuZF9hemYzMzI4X2dhbWVfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbmIoY2hpcC0+aW8yX3BvcnQgKyByZWcpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X21peGVyX291dHcoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1MTYgdmFsdWUpCi17Ci0Jb3V0dyh2YWx1ZSwgY2hpcC0+bWl4ZXJfcG9ydCArIHJlZyk7CisJcmV0dXJuIGluYihjaGlwLT5nYW1lX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB1MTYKLXNuZF9hemYzMzI4X21peGVyX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcpCitzbmRfYXpmMzMyOF9nYW1lX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZykKIHsKLQlyZXR1cm4gaW53KGNoaXAtPm1peGVyX3BvcnQgKyByZWcpOworCXJldHVybiBpbncoY2hpcC0+Z2FtZV9pbyArIHJlZyk7CiB9CiAKLXN0YXRpYyB2b2lkCi1zbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIGludCBkb19tdXRlKQorc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnLCB1MTYgdmFsdWUpCiB7Ci0JdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX3BvcnQgKyByZWcgKyAxOwotCXVuc2lnbmVkIGNoYXIgb2xkdmFsOworCW91dHcodmFsdWUsIGNoaXAtPm1peGVyX2lvICsgcmVnKTsKK30KKworc3RhdGljIGlubGluZSB1MTYKK3NuZF9hemYzMzI4X21peGVyX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZykKK3sKKwlyZXR1cm4gaW53KGNoaXAtPm1peGVyX2lvICsgcmVnKTsKK30KKworI2RlZmluZSBBWkZfTVVURV9CSVQgMHg4MAorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkgICB1bnNpZ25lZCByZWcsIGludCBkb19tdXRlCispCit7CisJdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX2lvICsgcmVnICsgMTsKKwlpbnQgdXBkYXRlZDsKIAogCS8qIHRoZSBtdXRlIGJpdCBpcyBvbiB0aGUgKnNlY29uZCogKGkuZS4gcmlnaHQpIHJlZ2lzdGVyIG9mIGEKIAkgKiBsZWZ0L3JpZ2h0IGNoYW5uZWwgc2V0dGluZyAqLwotCW9sZHZhbCA9IGluYihwb3J0YmFzZSk7Ci0JaWYgKGRvX211dGUpCi0JCW9sZHZhbCB8PSAweDgwOwotCWVsc2UKLQkJb2xkdmFsICY9IH4weDgwOwotCW91dGIob2xkdmFsLCBwb3J0YmFzZSk7CisJdXBkYXRlZCA9IHNuZF9hemYzMzI4X2lvX3JlZ19zZXRiKHBvcnRiYXNlLCBBWkZfTVVURV9CSVQsIGRvX211dGUpOworCisJLyogaW5kaWNhdGUgd2hldGhlciBpdCB3YXMgbXV0ZWQgYmVmb3JlICovCisJcmV0dXJuIChkb19tdXRlKSA/ICF1cGRhdGVkIDogdXBkYXRlZDsKIH0KIAogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X21peGVyX3dyaXRlX3ZvbHVtZV9ncmFkdWFsbHkoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1bnNpZ25lZCBjaGFyIGRzdF92b2xfbGVmdCwgdW5zaWduZWQgY2hhciBkc3Rfdm9sX3JpZ2h0LCBpbnQgY2hhbl9zZWwsIGludCBkZWxheSkKK3NuZF9hemYzMzI4X21peGVyX3dyaXRlX3ZvbHVtZV9ncmFkdWFsbHkoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJCQkgdW5zaWduZWQgcmVnLAorCQkJCQkgdW5zaWduZWQgY2hhciBkc3Rfdm9sX2xlZnQsCisJCQkJCSB1bnNpZ25lZCBjaGFyIGRzdF92b2xfcmlnaHQsCisJCQkJCSBpbnQgY2hhbl9zZWwsIGludCBkZWxheQorKQogewotCXVuc2lnbmVkIGxvbmcgcG9ydGJhc2UgPSBjaGlwLT5taXhlcl9wb3J0ICsgcmVnOworCXVuc2lnbmVkIGxvbmcgcG9ydGJhc2UgPSBjaGlwLT5taXhlcl9pbyArIHJlZzsKIAl1bnNpZ25lZCBjaGFyIGN1cnJfdm9sX2xlZnQgPSAwLCBjdXJyX3ZvbF9yaWdodCA9IDA7Ci0JaW50IGxlZnRfZG9uZSA9IDAsIHJpZ2h0X2RvbmUgPSAwOwotCQorCWludCBsZWZ0X2NoYW5nZSA9IDAsIHJpZ2h0X2NoYW5nZSA9IDA7CisKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKLQlpZiAoY2hhbl9zZWwgJiBTRVRfQ0hBTl9MRUZUKQorCisJaWYgKGNoYW5fc2VsICYgU0VUX0NIQU5fTEVGVCkgewogCQljdXJyX3ZvbF9sZWZ0ICA9IGluYihwb3J0YmFzZSArIDEpOwotCWVsc2UKLQkJbGVmdF9kb25lID0gMTsKLQlpZiAoY2hhbl9zZWwgJiBTRVRfQ0hBTl9SSUdIVCkKKworCQkvKiB0YWtlIGNhcmUgb2YgbXV0aW5nIGZsYWcgY29udGFpbmVkIGluIGxlZnQgY2hhbm5lbCAqLworCQlpZiAoY3Vycl92b2xfbGVmdCAmIEFaRl9NVVRFX0JJVCkKKwkJCWRzdF92b2xfbGVmdCB8PSBBWkZfTVVURV9CSVQ7CisJCWVsc2UKKwkJCWRzdF92b2xfbGVmdCAmPSB+QVpGX01VVEVfQklUOworCisJCWxlZnRfY2hhbmdlID0gKGN1cnJfdm9sX2xlZnQgPiBkc3Rfdm9sX2xlZnQpID8gLTEgOiAxOworCX0KKworCWlmIChjaGFuX3NlbCAmIFNFVF9DSEFOX1JJR0hUKSB7CiAJCWN1cnJfdm9sX3JpZ2h0ID0gaW5iKHBvcnRiYXNlICsgMCk7Ci0JZWxzZQotCQlyaWdodF9kb25lID0gMTsKLQkKLQkvKiB0YWtlIGNhcmUgb2YgbXV0aW5nIGZsYWcgKDB4ODApIGNvbnRhaW5lZCBpbiBsZWZ0IGNoYW5uZWwgKi8KLQlpZiAoY3Vycl92b2xfbGVmdCAmIDB4ODApCi0JCWRzdF92b2xfbGVmdCB8PSAweDgwOwotCWVsc2UKLQkJZHN0X3ZvbF9sZWZ0ICY9IH4weDgwOworCisJCXJpZ2h0X2NoYW5nZSA9IChjdXJyX3ZvbF9yaWdodCA+IGRzdF92b2xfcmlnaHQpID8gLTEgOiAxOworCX0KIAogCWRvIHsKLQkJaWYgKCFsZWZ0X2RvbmUpIHsKLQkJCWlmIChjdXJyX3ZvbF9sZWZ0ID4gZHN0X3ZvbF9sZWZ0KQotCQkJCWN1cnJfdm9sX2xlZnQtLTsKLQkJCWVsc2UKLQkJCWlmIChjdXJyX3ZvbF9sZWZ0IDwgZHN0X3ZvbF9sZWZ0KQotCQkJCWN1cnJfdm9sX2xlZnQrKzsKLQkJCWVsc2UKLQkJCSAgICBsZWZ0X2RvbmUgPSAxOwotCQkJb3V0YihjdXJyX3ZvbF9sZWZ0LCBwb3J0YmFzZSArIDEpOworCQlpZiAobGVmdF9jaGFuZ2UpIHsKKwkJCWlmIChjdXJyX3ZvbF9sZWZ0ICE9IGRzdF92b2xfbGVmdCkgeworCQkJCWN1cnJfdm9sX2xlZnQgKz0gbGVmdF9jaGFuZ2U7CisJCQkJb3V0YihjdXJyX3ZvbF9sZWZ0LCBwb3J0YmFzZSArIDEpOworCQkJfSBlbHNlCisJCQkgICAgbGVmdF9jaGFuZ2UgPSAwOwogCQl9Ci0JCWlmICghcmlnaHRfZG9uZSkgewotCQkJaWYgKGN1cnJfdm9sX3JpZ2h0ID4gZHN0X3ZvbF9yaWdodCkKLQkJCQljdXJyX3ZvbF9yaWdodC0tOwotCQkJZWxzZQotCQkJaWYgKGN1cnJfdm9sX3JpZ2h0IDwgZHN0X3ZvbF9yaWdodCkKLQkJCQljdXJyX3ZvbF9yaWdodCsrOwotCQkJZWxzZQotCQkJICAgIHJpZ2h0X2RvbmUgPSAxOworCQlpZiAocmlnaHRfY2hhbmdlKSB7CisJCQlpZiAoY3Vycl92b2xfcmlnaHQgIT0gZHN0X3ZvbF9yaWdodCkgeworCQkJCWN1cnJfdm9sX3JpZ2h0ICs9IHJpZ2h0X2NoYW5nZTsKKwogCQkJLyogZHVyaW5nIHZvbHVtZSBjaGFuZ2UsIHRoZSByaWdodCBjaGFubmVsIGlzIGNyYWNrbGluZwogCQkJICogc29tZXdoYXQgbW9yZSB0aGFuIHRoZSBsZWZ0IGNoYW5uZWwsIHVuZm9ydHVuYXRlbHkuCiAJCQkgKiBUaGlzIHNlZW1zIHRvIGJlIGEgaGFyZHdhcmUgaXNzdWUuICovCi0JCQlvdXRiKGN1cnJfdm9sX3JpZ2h0LCBwb3J0YmFzZSArIDApOworCQkJCW91dGIoY3Vycl92b2xfcmlnaHQsIHBvcnRiYXNlICsgMCk7CisJCQl9IGVsc2UKKwkJCSAgICByaWdodF9jaGFuZ2UgPSAwOwogCQl9CiAJCWlmIChkZWxheSkKIAkJCW1kZWxheShkZWxheSk7Ci0JfSB3aGlsZSAoKCFsZWZ0X2RvbmUpIHx8ICghcmlnaHRfZG9uZSkpOworCX0gd2hpbGUgKChsZWZ0X2NoYW5nZSkgfHwgKHJpZ2h0X2NoYW5nZSkpOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogfQogCkBAIC0zNzksNyArNDgxLDcgQEAKICAqIGdlbmVyYWwgbWl4ZXIgZWxlbWVudAogICovCiBzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgewotCXVuc2lnbmVkIGludCByZWc7CisJdW5zaWduZWQgcmVnOwogCXVuc2lnbmVkIGludCBsY2hhbl9zaGlmdCwgcmNoYW5fc2hpZnQ7CiAJdW5zaWduZWQgaW50IG1hc2s7CiAJdW5zaWduZWQgaW50IGludmVydDogMTsKQEAgLTU0NCwxMyArNjQ2LDE0IEBACiAJCSJNaXgiLCAiTWljIgogCX07CiAJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXh0czNbXSA9IHsKLSAgICAgICAgICAgICAgICAiTWljIiwgIkNEIiwgIlZpZGVvIiwgIkF1eCIsCisJCSJNaWMiLCAiQ0QiLCAiVmlkZW8iLCAiQXV4IiwKIAkJIkxpbmUiLCAiTWl4IiwgIk1peCBNb25vIiwgIlBob25lIgogICAgICAgICB9OwogCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGV4dHM0W10gPSB7CiAJCSJwcmUgM0QiLCAicG9zdCAzRCIKICAgICAgICAgfTsKIAlzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgcmVnOworCWNvbnN0IGNoYXIgKiBjb25zdCAqcCA9IE5VTEw7CiAKIAlzbmRfYXpmMzMyOF9taXhlcl9yZWdfZGVjb2RlKCZyZWcsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKICAgICAgICAgdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0VOVU1FUkFURUQ7CkBAIC01NjEsMTggKzY2NCwyMCBAQAogCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9BRFZDVEwyKSB7CiAJCXN3aXRjaChyZWcubGNoYW5fc2hpZnQpIHsKIAkJY2FzZSA4OiAvKiBtb2RlbSBvdXQgc2VsICovCi0JCQlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgdGV4dHMxW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dKTsKKwkJCXAgPSB0ZXh0czE7CiAJCQlicmVhazsKIAkJY2FzZSA5OiAvKiBtb25vIHNlbCBzb3VyY2UgKi8KLQkJCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czJbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOworCQkJcCA9IHRleHRzMjsKIAkJCWJyZWFrOwogCQljYXNlIDE1OiAvKiBQQ00gT3V0IFBhdGggKi8KLQkJCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czRbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOworCQkJcCA9IHRleHRzNDsKIAkJCWJyZWFrOwogCQl9CiAJfSBlbHNlCi0gICAgICAgIAlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgdGV4dHMzW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dCi0pOworCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9SRUNfU0VMRUNUKQorCQlwID0gdGV4dHMzOworCisJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsIHBbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOwogICAgICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTgzLDcgKzY4OCw3IEBACiAgICAgICAgIHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgcmVnOwogICAgICAgICB1bnNpZ25lZCBzaG9ydCB2YWw7Ci0gICAgICAgIAorCiAJc25kX2F6ZjMzMjhfbWl4ZXJfcmVnX2RlY29kZSgmcmVnLCBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7CiAJdmFsID0gc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHJlZy5yZWcpOwogCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9SRUNfU0VMRUNUKSB7CkBAIC02MDUsNyArNzEwLDcgQEAKICAgICAgICAgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCBhemYzMzI4X21peGVyX3JlZyByZWc7CiAJdW5zaWduZWQgaW50IG9yZWcsIG5yZWcsIHZhbDsKLSAgICAgICAgCisKIAlzbmRfYXpmMzMyOF9taXhlcl9yZWdfZGVjb2RlKCZyZWcsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKIAlvcmVnID0gc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHJlZy5yZWcpOwogCXZhbCA9IG9yZWc7CkBAIC02MzEsOSArNzM2LDExIEBACiBzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHNbXSBfX2RldmluaXRkYXRhID0gewogCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAxNSwgMSksCiAJQVpGMzMyOF9NSVhFUl9WT0xfU1RFUkVPKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAweDFmLCAxKSwKLQlBWkYzMzI4X01JWEVSX1NXSVRDSCgiV2F2ZSBQbGF5YmFjayBTd2l0Y2giLCBJRFhfTUlYRVJfV0FWRU9VVCwgMTUsIDEpLAotCUFaRjMzMjhfTUlYRVJfVk9MX1NURVJFTygiV2F2ZSBQbGF5YmFjayBWb2x1bWUiLCBJRFhfTUlYRVJfV0FWRU9VVCwgMHgxZiwgMSksCi0JQVpGMzMyOF9NSVhFUl9TV0lUQ0goIldhdmUgM0QgQnlwYXNzIFBsYXliYWNrIFN3aXRjaCIsIElEWF9NSVhFUl9BRFZDVEwyLCA3LCAxKSwKKwlBWkYzMzI4X01JWEVSX1NXSVRDSCgiUENNIFBsYXliYWNrIFN3aXRjaCIsIElEWF9NSVhFUl9XQVZFT1VULCAxNSwgMSksCisJQVpGMzMyOF9NSVhFUl9WT0xfU1RFUkVPKCJQQ00gUGxheWJhY2sgVm9sdW1lIiwKKwkJCQkJSURYX01JWEVSX1dBVkVPVVQsIDB4MWYsIDEpLAorCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJQQ00gM0QgQnlwYXNzIFBsYXliYWNrIFN3aXRjaCIsCisJCQkJCUlEWF9NSVhFUl9BRFZDVEwyLCA3LCAxKSwKIAlBWkYzMzI4X01JWEVSX1NXSVRDSCgiRk0gUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX0ZNU1lOVEgsIDE1LCAxKSwKIAlBWkYzMzI4X01JWEVSX1ZPTF9TVEVSRU8oIkZNIFBsYXliYWNrIFZvbHVtZSIsIElEWF9NSVhFUl9GTVNZTlRILCAweDFmLCAxKSwKIAlBWkYzMzI4X01JWEVSX1NXSVRDSCgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX0NEQVVESU8sIDE1LCAxKSwKQEAgLTcxNywxNSArODI0LDE2IEBACiAJc25kX2F6ZjMzMjhfbWl4ZXJfb3V0dyhjaGlwLCBJRFhfTUlYRVJfUkVTRVQsIDB4MDAwMCk7CiAKIAkvKiBtdXRlIGFuZCB6ZXJvIHZvbHVtZSBjaGFubmVscyAqLwotCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfYXpmMzMyOF9pbml0X3ZhbHVlcyk7IGlkeCsrKSB7CisJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X2luaXRfdmFsdWVzKTsgKytpZHgpIHsKIAkJc25kX2F6ZjMzMjhfbWl4ZXJfb3V0dyhjaGlwLAogCQkJc25kX2F6ZjMzMjhfaW5pdF92YWx1ZXNbaWR4XVswXSwKIAkJCXNuZF9hemYzMzI4X2luaXRfdmFsdWVzW2lkeF1bMV0pOwogCX0KLQkKKwogCS8qIGFkZCBtaXhlciBjb250cm9scyAqLwogCXN3ID0gc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHM7Ci0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X21peGVyX2NvbnRyb2xzKTsgaWR4KyssIHN3KyspIHsKKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHMpOworCQkJKytpZHgsICsrc3cpIHsKIAkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLCBzbmRfY3RsX25ldzEoc3csIGNoaXApKSkgPCAwKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC03NTcsOSArODY1LDkgQEAKIH0KIAogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X3NldGZtdChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCi0JCQkgICAgICAgdW5zaWduZWQgaW50IHJlZywKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgYml0cmF0ZSwKK3NuZF9hemYzMzI4X2NvZGVjX3NldGZtdChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkgICAgICAgdW5zaWduZWQgcmVnLAorCQkJICAgICAgIGVudW0gYXpmX2ZyZXFfdCBiaXRyYXRlLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBmb3JtYXRfd2lkdGgsCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzCiApCkBAIC03NjksMjQgKzg3NywyNSBAQAogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7CiAJc3dpdGNoIChiaXRyYXRlKSB7Ci0JY2FzZSAgNDAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQwMDA7IGJyZWFrOwotCWNhc2UgIDQ4MDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80ODAwOyBicmVhazsKLQljYXNlICA1NTEyOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV81NTEwOyBicmVhazsgLyogdGhlIEFaRjMzMjggbmFtZXMgaXQgIjU1MTAiIGZvciBzb21lIHN0cmFuZ2UgcmVhc29uICovCi0JY2FzZSAgNjYyMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNjYyMDsgYnJlYWs7Ci0JY2FzZSAgODAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfODAwMDsgYnJlYWs7Ci0JY2FzZSAgOTYwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfOTYwMDsgYnJlYWs7Ci0JY2FzZSAxMTAyNTogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTEwMjU7IGJyZWFrOwotCWNhc2UgMTMyNDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF8xMzI0MDsgYnJlYWs7Ci0JY2FzZSAxNjAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTYwMDA7IGJyZWFrOwotCWNhc2UgMjIwNTA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzIyMDUwOyBicmVhazsKLQljYXNlIDMyMDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8zMjAwMDsgYnJlYWs7Ci0JY2FzZSA0NDEwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNDQxMDA7IGJyZWFrOwotCWNhc2UgNDgwMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ4MDAwOyBicmVhazsKLQljYXNlIDY2MjAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNjYyMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfNDAwMDogIHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80MDAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzQ4MDA6ICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNDgwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV81NTEyOgorCQkvKiB0aGUgQVpGMzMyOCBuYW1lcyBpdCAiNTUxMCIgZm9yIHNvbWUgc3RyYW5nZSByZWFzb24gKi8KKwkJCSAgICAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNTUxMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV82NjIwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNjYyMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV84MDAwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfODAwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV85NjAwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfOTYwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8xMTAyNTogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTEwMjU7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfMTMyNDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF8xMzI0MDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8xNjAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTYwMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfMjIwNTA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzIyMDUwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzMyMDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8zMjAwMDsgYnJlYWs7CiAJZGVmYXVsdDoKIAkJc25kX3ByaW50ayhLRVJOX1dBUk5JTkcgInVua25vd24gYml0cmF0ZSAlZCwgYXNzdW1pbmcgNDQuMWtIeiFcbiIsIGJpdHJhdGUpOwotCQl2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV80NDEwMDsKLQkJYnJlYWs7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2UgQVpGX0ZSRVFfNDQxMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ0MTAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzQ4MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV80ODAwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV82NjIwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzY2MjAwOyBicmVhazsKIAl9CiAJLyogdmFsID0gMHhmZjA3OyAzbTI3Ljk5M3MgKDY1MzAxSHo7IC0+IDY0MDAwSHo/Pz8pIGhtbSwgNjYxMjAsIDY1OTY3LCA2NjEyMyAqLwogCS8qIHZhbCA9IDB4ZmYwOTsgMTdtMTUuMDk4cyAoMTMxMjMsNDc4SHo7IC0+IDEyMDAwSHo/Pz8pIGhtbSwgMTMyMzcuMkh6PyAqLwpAQCAtODA1LDEwICs5MTQsMTAgQEAKIAkJdmFsIHw9IFNPVU5ERk9STUFUX0ZMQUdfMTZCSVQ7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKLQkKKwogCS8qIHNldCBiaXRyYXRlL2Zvcm1hdCAqLwogCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgcmVnLCB2YWwpOwotCQorCiAJLyogY2hhbmdpbmcgdGhlIGJpdHJhdGUvZm9ybWF0IHNldHRpbmdzIHN3aXRjaGVzIG9mZiB0aGUKIAkgKiBhdWRpbyBvdXRwdXQgd2l0aCBhbiBhbm5veWluZyBjbGljayBpbiBjYXNlIG9mIDgvMTZiaXQgZm9ybWF0IGNoYW5nZQogCSAqIChtYXliZSBzaHV0dGluZyBkb3duIERBQy9BREM/KSwgdGh1cyBpbW1lZGlhdGVseQpAQCAtODMwLDMxICs5MzksOTUgQEAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXRfbG93cG93ZXIoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJICAgIHVuc2lnbmVkIHJlZworKQoreworCS8qIGNob29zZSBsb3dlc3QgZnJlcXVlbmN5IGZvciBsb3cgcG93ZXIgY29uc3VtcHRpb24uCisJICogV2hpbGUgdGhpcyB3aWxsIGNhdXNlIGxvdWRlciBub2lzZSBkdWUgdG8gcmF0aGVyIGNvYXJzZSBmcmVxdWVuY3ksCisJICogaXQgc2hvdWxkIG5ldmVyIG1hdHRlciBzaW5jZSBvdXRwdXQgc2hvdWxkIGFsd2F5cworCSAqIGdldCBkaXNhYmxlZCBwcm9wZXJseSB3aGVuIGlkbGUgYW55d2F5LiAqLworCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdChjaGlwLCByZWcsIEFaRl9GUkVRXzQwMDAsIDgsIDEpOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfcmVnXzZBSF91cGRhdGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJCQl1bnNpZ25lZCBiaXRtYXNrLAorCQkJCQlpbnQgZW5hYmxlCispCit7CisJaWYgKGVuYWJsZSkKKwkJY2hpcC0+c2hhZG93X3JlZ19jb2RlY182QUggJj0gfmJpdG1hc2s7CisJZWxzZQorCQljaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCB8PSBiaXRtYXNrOworCXNuZF9hemYzMzI4X2RiZ3BsYXkoIjZBSF91cGRhdGUgbWFzayAweCUwNHggZW5hYmxlICVkOiB2YWwgMHglMDR4XG4iLAorCQkJYml0bWFzaywgZW5hYmxlLCBjaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCk7CisJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fNkFILCBjaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfZW5hYmxlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGVuYWJsZSkKK3sKKwlzbmRfYXpmMzMyOF9kYmdwbGF5KCJjb2RlY19lbmFibGUgJWRcbiIsIGVuYWJsZSk7CisJLyogbm8gaWRlYSB3aGF0IGV4YWN0bHkgaXMgYmVpbmcgZG9uZSBoZXJlLCBidXQgSSBzdHJvbmdseSBhc3N1bWUgaXQncworCSAqIFBNIHJlbGF0ZWQgKi8KKwlzbmRfYXpmMzMyOF9jb2RlY19yZWdfNkFIX3VwZGF0ZSgKKwkJY2hpcCwgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOCwgZW5hYmxlCisJKTsKK30KKworc3RhdGljIHZvaWQKK3NuZF9hemYzMzI4X2NvZGVjX2FjdGl2aXR5KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwKKwkJCQllbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCBzdHJlYW1fdHlwZSwKKwkJCQlpbnQgZW5hYmxlCispCit7CisJaW50IG5lZWRfY2hhbmdlID0gKGNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucnVubmluZyAhPSBlbmFibGUpOworCisJc25kX2F6ZjMzMjhfZGJncGxheSgKKwkJImNvZGVjX2FjdGl2aXR5OiB0eXBlICVkLCBlbmFibGUgJWQsIG5lZWRfY2hhbmdlICVkXG4iLAorCQkJCXN0cmVhbV90eXBlLCBlbmFibGUsIG5lZWRfY2hhbmdlCisJKTsKKwlpZiAobmVlZF9jaGFuZ2UpIHsKKwkJZW51bSBzbmRfYXpmMzMyOF9zdHJlYW1faW5kZXggb3RoZXIgPQorCQkJKHN0cmVhbV90eXBlID09IEFaRl9QTEFZQkFDSykgPworCQkJCUFaRl9DQVBUVVJFIDogQVpGX1BMQVlCQUNLOworCQkvKiBzbWFsbCBjaGVjayB0byBwcmV2ZW50IHNodXR0aW5nIGRvd24gdGhlIG90aGVyIHBhcnR5CisJCSAqIGluIGNhc2UgaXQncyBhY3RpdmUgKi8KKwkJaWYgKChlbmFibGUpIHx8ICEoY2hpcC0+YXVkaW9fc3RyZWFtW290aGVyXS5ydW5uaW5nKSkKKwkJCXNuZF9hemYzMzI4X2NvZGVjX2VuYWJsZShjaGlwLCBlbmFibGUpOworCisJCS8qIC4uLmFuZCBhZGp1c3QgY2xvY2ssIHRvbworCQkgKiAocmVkdWNlIG5vaXNlIGFuZCBwb3dlciBjb25zdW1wdGlvbikgKi8KKwkJaWYgKCFlbmFibGUpCisJCQlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXRfbG93cG93ZXIoCisJCQkJY2hpcCwKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bc3RyZWFtX3R5cGVdLnBvcnRiYXNlCisJCQkJCSsgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQKKwkJCSk7CisJfQorCWNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucnVubmluZyA9IGVuYWJsZTsKK30KKwogc3RhdGljIHZvaWQKIHNuZF9hemYzMzI4X3NldGRtYWEoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAogCQkJCWxvbmcgdW5zaWduZWQgaW50IGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNpemUsCi0JCQkJaW50IGRvX3JlY29yZGluZykKKwkJCQllbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCBzdHJlYW1fdHlwZQorKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHBvcnRiYXNlOwotCXVuc2lnbmVkIGludCBpc19ydW5uaW5nOwotCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JaWYgKGRvX3JlY29yZGluZykgewotCQkvKiBhY2Nlc3MgY2FwdHVyZSByZWdpc3RlcnMsIGkuZS4gc2tpcCBwbGF5YmFjayByZWcgc2VjdGlvbiAqLwotCQlwb3J0YmFzZSA9IGNoaXAtPmNvZGVjX3BvcnQgKyAweDIwOwotCQlpc19ydW5uaW5nID0gY2hpcC0+aXNfcmVjb3JkaW5nOwotCX0gZWxzZSB7Ci0JCS8qIGFjY2VzcyB0aGUgcGxheWJhY2sgcmVnaXN0ZXIgc2VjdGlvbiAqLwotCQlwb3J0YmFzZSA9IGNoaXAtPmNvZGVjX3BvcnQgKyAweDAwOwotCQlpc19ydW5uaW5nID0gY2hpcC0+aXNfcGxheWluZzsKLQl9CisJaWYgKCFjaGlwLT5hdWRpb19zdHJlYW1bc3RyZWFtX3R5cGVdLnJ1bm5pbmcpIHsKKwkJLyogQVpGMzMyOCB1c2VzIGEgdHdvIGJ1ZmZlciBwb2ludGVyIERNQSBwbGF5YmFjayBhcHByb2FjaCAqLwogCi0JLyogQVpGMzMyOCB1c2VzIGEgdHdvIGJ1ZmZlciBwb2ludGVyIERNQSBwbGF5YmFjayBhcHByb2FjaCAqLwotCWlmICghaXNfcnVubmluZykgewotCQl1bnNpZ25lZCBsb25nIGFkZHJfYXJlYTI7Ci0JCXVuc2lnbmVkIGxvbmcgY291bnRfYXJlYXMsIGNvdW50X3RtcDsgLyogd2lkdGggMzJiaXQgLS0gb3ZlcmZsb3chISAqLworCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBwb3J0YmFzZSwgYWRkcl9hcmVhMjsKKworCQkvKiB3aWR0aCAzMmJpdCAocHJldmVudCBvdmVyZmxvdyk6ICovCisJCXVuc2lnbmVkIGxvbmcgY291bnRfYXJlYXMsIGNvdW50X3RtcDsKKworCQlwb3J0YmFzZSA9IGNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucG9ydGJhc2U7CiAJCWNvdW50X2FyZWFzID0gc2l6ZS8yOwogCQlhZGRyX2FyZWEyID0gYWRkcitjb3VudF9hcmVhczsKIAkJY291bnRfYXJlYXMtLTsgLyogbWF4LiBpbmRleCAqLwpAQCAtODg0LDExICsxMDU3LDExIEBACiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKICNpZiAwCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULAorCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdChjaGlwLCBJRFhfSU9fUExBWV9TT1VOREZPUk1BVCwKIAkJcnVudGltZS0+cmF0ZSwKIAkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJcnVudGltZS0+Y2hhbm5lbHMpOwotCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsIGNvdW50LCBzaXplLCAwKTsKKwlzbmRfYXpmMzMyOF9zZXRkbWFhKGNoaXAsIHJ1bnRpbWUtPmRtYV9hZGRyLCBjb3VudCwgc2l6ZSwgQVpGX1BMQVlCQUNLKTsKICNlbmRpZgogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwpAQCAtOTA2LDExICsxMDc5LDExIEBACiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKICNpZiAwCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCisJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCiAJCXJ1bnRpbWUtPnJhdGUsCiAJCXNuZF9wY21fZm9ybWF0X3dpZHRoKHJ1bnRpbWUtPmZvcm1hdCksCiAJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKLQlzbmRfYXpmMzMyOF9zZXRkbWFhKGNoaXAsIHJ1bnRpbWUtPmRtYV9hZGRyLCBjb3VudCwgc2l6ZSwgMSk7CisJc25kX2F6ZjMzMjhfc2V0ZG1hYShjaGlwLCBydW50aW1lLT5kbWFfYWRkciwgY291bnQsIHNpemUsIEFaRl9DQVBUVVJFKTsKICNlbmRpZgogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwpAQCAtOTIzLDYgKzEwOTYsNyBAQAogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJaW50IHJlc3VsdCA9IDA7CiAJdW5zaWduZWQgaW50IHN0YXR1czE7CisJaW50IHByZXZpb3VzbHlfbXV0ZWQ7CiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxscygic25kX2F6ZjMzMjhfcGxheWJhY2tfdHJpZ2dlciBjbWQgJWRcbiIsIGNtZCk7CiAKQEAgLTkzMCwyMCArMTEwNCwyMyBAQAogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJUIFBMQVlCQUNLXG4iKTsKIAotCQkvKiBtdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDEpOworCQkvKiBtdXRlIFdhdmVPdXQgKGF2b2lkIGNsaWNraW5nIGR1cmluZyBzZXR1cCkgKi8KKwkJcHJldmlvdXNseV9tdXRlZCA9CisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CiAKLQkJc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULAorCQlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXQoY2hpcCwgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQsCiAJCQlydW50aW1lLT5yYXRlLAogCQkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCBwbGF5YmFjayAqLworCQkvKiBmaXJzdCwgcmVtZW1iZXIgY3VycmVudCB2YWx1ZTogKi8KIAkJc3RhdHVzMSA9IHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUyk7CisKKwkJLyogc3RvcCBwbGF5YmFjayAqLwogCQlzdGF0dXMxICY9IH5ETUFfUkVTVU1FOwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCBzdGF0dXMxKTsKLQkgICAgCisKIAkJLyogRklYTUU6IGNsZWFyIGludGVycnVwdHMgb3Igd2hhdD8/PyAqLwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0lSUVRZUEUsIDB4ZmZmZik7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CkBAIC05NTEsNyArMTEyOCw3IEBACiAJCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsCiAJCQlzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKSwKIAkJCXNuZF9wY21fbGliX2J1ZmZlcl9ieXRlcyhzdWJzdHJlYW0pLAotCQkJMCk7CisJCQlBWkZfUExBWUJBQ0spOwogCiAJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwogI2lmZGVmIFdJTjlYCkBAIC05NzgsMzAgKzExNTUsMzUgQEAKIAkJCURNQV9TT01FVEhJTkdfRUxTRSk7CiAjZW5kaWYKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoY2hpcCwgQVpGX1BMQVlCQUNLLCAxKTsKIAogCQkvKiBub3cgdW5tdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDApOworCQlpZiAoIXByZXZpb3VzbHlfbXV0ZWQpCisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7CiAKLQkJY2hpcC0+aXNfcGxheWluZyA9IDE7CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJURUQgUExBWUJBQ0tcbiIpOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiUkVTVU1FIFBMQVlCQUNLXG4iKTsKIAkJLyogcmVzdW1lIHBsYXliYWNrIGlmIHdlIHdlcmUgYWN0aXZlICovCi0JCWlmIChjaGlwLT5pc19wbGF5aW5nKQorCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJaWYgKGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnJ1bm5pbmcpCiAJCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLAogCQkJCXNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUykgfCBETUFfUkVTVU1FKTsKKwkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVE9QIFBMQVlCQUNLXG4iKTsKIAotCQkvKiBtdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDEpOworCQkvKiBtdXRlIFdhdmVPdXQgKGF2b2lkIGNsaWNraW5nIGR1cmluZyBzZXR1cCkgKi8KKwkJcHJldmlvdXNseV9tdXRlZCA9CisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JCS8qIHN0b3AgcGxheWJhY2sgKi8KKwkJLyogZmlyc3QsIHJlbWVtYmVyIGN1cnJlbnQgdmFsdWU6ICovCiAJCXN0YXR1czEgPSBzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpOwogCisJCS8qIHN0b3AgcGxheWJhY2sgKi8KIAkJc3RhdHVzMSAmPSB+RE1BX1JFU1VNRTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUywgc3RhdHVzMSk7CiAKQEAgLTEwMTMsMTAgKzExOTUsMTIgQEAKIAkJc3RhdHVzMSAmPSB+RE1BX1BMQVlfU09NRVRISU5HMTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUywgc3RhdHVzMSk7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JICAgIAorCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfUExBWUJBQ0ssIDApOworCiAJCS8qIG5vdyB1bm11dGUgV2F2ZU91dCAqLwotCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7Ci0JCWNoaXAtPmlzX3BsYXlpbmcgPSAwOworCQlpZiAoIXByZXZpb3VzbHlfbXV0ZWQpCisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7CisKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RPUFBFRCBQTEFZQkFDS1xuIik7CiAJCWJyZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKQEAgLTEwMzUsNyArMTIxOSw3IEBACiAJCXByaW50ayhLRVJOX0VSUiAiRklYTUU6IHVua25vd24gdHJpZ2dlciBtb2RlIVxuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAJfQotCQorCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEwNTcsMTcgKzEyNDEsMTkgQEAKIAogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVEFSVCBDQVBUVVJFXG4iKTsKIAotCQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1JFQ19TT1VOREZPUk1BVCwKKwkJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCiAJCQlydW50aW1lLT5yYXRlLAogCQkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCByZWNvcmRpbmcgKi8KKwkJLyogZmlyc3QsIHJlbWVtYmVyIGN1cnJlbnQgdmFsdWU6ICovCiAJCXN0YXR1czEgPSBzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1JFQ19GTEFHUyk7CisKKwkJLyogc3RvcCByZWNvcmRpbmcgKi8KIAkJc3RhdHVzMSAmPSB+RE1BX1JFU1VNRTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTLCBzdGF0dXMxKTsKLQkgICAgCisKIAkJLyogRklYTUU6IGNsZWFyIGludGVycnVwdHMgb3Igd2hhdD8/PyAqLwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19SRUNfSVJRVFlQRSwgMHhmZmZmKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKQEAgLTEwNzUsNyArMTI2MSw3IEBACiAJCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsCiAJCQlzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKSwKIAkJCXNuZF9wY21fbGliX2J1ZmZlcl9ieXRlcyhzdWJzdHJlYW0pLAotCQkJMSk7CisJCQlBWkZfQ0FQVFVSRSk7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAjaWZkZWYgV0lOOVgKQEAgLTExMDIsMjQgKzEyODgsMjcgQEAKIAkJCURNQV9TT01FVEhJTkdfRUxTRSk7CiAjZW5kaWYKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoY2hpcCwgQVpGX0NBUFRVUkUsIDEpOwogCi0JCWNoaXAtPmlzX3JlY29yZGluZyA9IDE7CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJURUQgQ0FQVFVSRVxuIik7CiAJCWJyZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1FOgogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJSRVNVTUUgQ0FQVFVSRVxuIik7CiAJCS8qIHJlc3VtZSByZWNvcmRpbmcgaWYgd2Ugd2VyZSBhY3RpdmUgKi8KLQkJaWYgKGNoaXAtPmlzX3JlY29yZGluZykKKwkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CisJCWlmIChjaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnJ1bm5pbmcpCiAJCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19SRUNfRkxBR1MsCiAJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19SRUNfRkxBR1MpIHwgRE1BX1JFU1VNRSk7CisJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAJCWJyZWFrOwogICAgICAgICBjYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUT1AgQ0FQVFVSRVxuIik7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JCS8qIHN0b3AgcmVjb3JkaW5nICovCisJCS8qIGZpcnN0LCByZW1lbWJlciBjdXJyZW50IHZhbHVlOiAqLwogCQlzdGF0dXMxID0gc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19SRUNfRkxBR1MpOwogCisJCS8qIHN0b3AgcmVjb3JkaW5nICovCiAJCXN0YXR1czEgJj0gfkRNQV9SRVNVTUU7CiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgc3RhdHVzMSk7CiAKQEAgLTExMjksOCArMTMxOCw4IEBACiAJCXN0YXR1czEgJj0gfkRNQV9QTEFZX1NPTUVUSElORzE7CiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgc3RhdHVzMSk7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JICAgIAotCQljaGlwLT5pc19yZWNvcmRpbmcgPSAwOworCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfQ0FQVFVSRSwgMCk7CisKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RPUFBFRCBDQVBUVVJFXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgpAQCAtMTE0OSw3ICsxMzM4LDcgQEAKIAkJcHJpbnRrKEtFUk5fRVJSICJGSVhNRTogdW5rbm93biB0cmlnZ2VyIG1vZGUhXG4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAl9Ci0JCisKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTE2MiwxMSArMTM1MSwxMSBAQAogCXNuZF9wY21fdWZyYW1lc190IGZybXJlczsKIAogI2lmZGVmIFFVRVJZX0hBUkRXQVJFCi0JYnVmcHRyID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1BMQVlfRE1BX1NUQVJUXzEpOworCWJ1ZnB0ciA9IHNuZF9hemYzMzI4X2NvZGVjX2lubChjaGlwLCBJRFhfSU9fUExBWV9ETUFfU1RBUlRfMSk7CiAjZWxzZQogCWJ1ZnB0ciA9IHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FkZHI7CiAjZW5kaWYKLQlyZXN1bHQgPSBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUExBWV9ETUFfQ1VSUlBPUyk7CisJcmVzdWx0ID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19QTEFZX0RNQV9DVVJSUE9TKTsKIAogCS8qIGNhbGN1bGF0ZSBvZmZzZXQgKi8KIAlyZXN1bHQgLT0gYnVmcHRyOwpAQCAtMTE4MywxMSArMTM3MiwxMSBAQAogCXNuZF9wY21fdWZyYW1lc190IGZybXJlczsKIAogI2lmZGVmIFFVRVJZX0hBUkRXQVJFCi0JYnVmcHRyID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfU1RBUlRfMSk7CisJYnVmcHRyID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19SRUNfRE1BX1NUQVJUXzEpOwogI2Vsc2UKIAlidWZwdHIgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hZGRyOwogI2VuZGlmCi0JcmVzdWx0ID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfQ1VSUlBPUyk7CisJcmVzdWx0ID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19SRUNfRE1BX0NVUlJQT1MpOwogCiAJLyogY2FsY3VsYXRlIG9mZnNldCAqLwogCXJlc3VsdCAtPSBidWZwdHI7CkBAIC0xMTk2LDI3ICsxMzg1LDI0MSBAQAogCXJldHVybiBmcm1yZXM7CiB9CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBTVVBQT1JUX0dBTUVQT1JUCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X2lycV9lbmFibGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZW5hYmxlKQoreworCXNuZF9hemYzMzI4X2lvX3JlZ19zZXRiKAorCQljaGlwLT5nYW1lX2lvK0lEWF9HQU1FX0hXQ09ORklHLAorCQlHQU1FX0hXQ0ZHX0lSUV9FTkFCTEUsCisJCWVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfbGVnYWN5X2FkZHJlc3NfZW5hYmxlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGVuYWJsZSkKK3sKKwlzbmRfYXpmMzMyOF9pb19yZWdfc2V0YigKKwkJY2hpcC0+Z2FtZV9pbytJRFhfR0FNRV9IV0NPTkZJRywKKwkJR0FNRV9IV0NGR19MRUdBQ1lfQUREUkVTU19FTkFCTEUsCisJCWVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfYXhpc19jaXJjdWl0X2VuYWJsZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBlbmFibGUpCit7CisJc25kX2F6ZjMzMjhfY29kZWNfcmVnXzZBSF91cGRhdGUoCisJCWNoaXAsIElPXzZBX1NPTUVUSElORzJfR0FNRVBPUlQsIGVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaW50ZXJydXB0KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwkvKgorCSAqIHNrZWxldG9uIGhhbmRsZXIgb25seQorCSAqICh3ZSBkbyBub3Qgd2FudCBheGlzIHJlYWRpbmcgaW4gaW50ZXJydXB0IGhhbmRsZXIgLSB0b28gbXVjaCBsb2FkISkKKwkgKi8KKwlzbmRfYXpmMzMyOF9kYmdnYW1lKCJnYW1lcG9ydCBpcnFcbiIpOworCisJIC8qIHRoaXMgc2hvdWxkIEFDSyB0aGUgZ2FtZXBvcnQgSVJRIHByb3Blcmx5LCBob3BlZnVsbHkuICovCisJc25kX2F6ZjMzMjhfZ2FtZV9pbncoY2hpcCwgSURYX0dBTUVfQVhJU19WQUxVRSk7Cit9CisKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X29wZW4oc3RydWN0IGdhbWVwb3J0ICpnYW1lcG9ydCwgaW50IG1vZGUpCit7CisJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gZ2FtZXBvcnRfZ2V0X3BvcnRfZGF0YShnYW1lcG9ydCk7CisJaW50IHJlczsKKworCXNuZF9hemYzMzI4X2RiZ2dhbWUoImdhbWVwb3J0X29wZW4sIG1vZGUgJWRcbiIsIG1vZGUpOworCXN3aXRjaCAobW9kZSkgeworCWNhc2UgR0FNRVBPUlRfTU9ERV9DT09LRUQ6CisJY2FzZSBHQU1FUE9SVF9NT0RFX1JBVzoKKwkJcmVzID0gMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmVzID0gLTE7CisJCWJyZWFrOworCX0KKworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2F4aXNfY2lyY3VpdF9lbmFibGUoY2hpcCwgKHJlcyA9PSAwKSk7CisKKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfY2xvc2Uoc3RydWN0IGdhbWVwb3J0ICpnYW1lcG9ydCkKK3sKKwlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBnYW1lcG9ydF9nZXRfcG9ydF9kYXRhKGdhbWVwb3J0KTsKKworCXNuZF9hemYzMzI4X2RiZ2dhbWUoImdhbWVwb3J0X2Nsb3NlXG4iKTsKKwlzbmRfYXpmMzMyOF9nYW1lcG9ydF9heGlzX2NpcmN1aXRfZW5hYmxlKGNoaXAsIDApOworfQorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9nYW1lcG9ydF9jb29rZWRfcmVhZChzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0LAorCQkJCSBpbnQgKmF4ZXMsCisJCQkJIGludCAqYnV0dG9ucworKQoreworCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGdhbWVwb3J0X2dldF9wb3J0X2RhdGEoZ2FtZXBvcnQpOworCWludCBpOworCXU4IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc25kX2Fzc2VydChjaGlwLCByZXR1cm4gMCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKKwl2YWwgPSBzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCBJRFhfR0FNRV9MRUdBQ1lfQ09NUEFUSUJMRSk7CisJKmJ1dHRvbnMgPSAofih2YWwpID4+IDQpICYgMHhmOworCisJLyogb2ssIHRoaXMgb25lIGlzIGEgYml0IGRpcnR5OiBjb29rZWRfcmVhZCBpcyBiZWluZyBwb2xsZWQgYnkgYSB0aW1lciwKKwkgKiB0aHVzIHdlJ3JlIGF0b21pYyBhbmQgY2Fubm90IGFjdGl2ZWx5IHdhaXQgaW4gaGVyZQorCSAqICh3aGljaCB3b3VsZCBiZSB1c2VmdWwgZm9yIHVzIHNpbmNlIGl0IHByb2JhYmx5IHdvdWxkIGJlIGJldHRlcgorCSAqIHRvIHRyaWdnZXIgYSBtZWFzdXJlbWVudCBpbiBoZXJlLCB0aGVuIHdhaXQgYSBzaG9ydCBhbW91bnQgb2YKKwkgKiB0aW1lIHVudGlsIGl0J3MgZmluaXNoZWQsIHRoZW4gcmVhZCB2YWx1ZXMgb2YgX3RoaXNfIG1lYXN1cmVtZW50KS4KKwkgKgorCSAqIFRodXMgd2Ugc2ltcGx5IHJlc29ydCB0byByZWFkaW5nIHZhbHVlcyBpZiB0aGV5J3JlIGF2YWlsYWJsZSBhbHJlYWR5CisJICogYW5kIHRyaWdnZXIgdGhlIG5leHQgbWVhc3VyZW1lbnQuCisJICovCisKKwl2YWwgPSBzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCBJRFhfR0FNRV9BWEVTX0NPTkZJRyk7CisJaWYgKHZhbCAmIEdBTUVfQVhFU19TQU1QTElOR19SRUFEWSkgeworCQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisJCQkvKiBjb25maWd1cmUgdGhlIGF4aXMgdG8gcmVhZCAqLworCQkJdmFsID0gKGkgPDwgNCkgfCAweDBmOworCQkJc25kX2F6ZjMzMjhfZ2FtZV9vdXRiKGNoaXAsIElEWF9HQU1FX0FYRVNfQ09ORklHLCB2YWwpOworCisJCQljaGlwLT5heGVzW2ldID0gc25kX2F6ZjMzMjhfZ2FtZV9pbncoCisJCQkJCQljaGlwLCBJRFhfR0FNRV9BWElTX1ZBTFVFCisJCQkJCSk7CisJCX0KKwl9CisKKwkvKiB0cmlnZ2VyIG5leHQgYXhlcyBzYW1wbGluZywgdG8gYmUgZXZhbHVhdGVkIHRoZSBuZXh0IHRpbWUgd2UKKwkgKiBlbnRlciB0aGlzIGZ1bmN0aW9uICovCisKKwkvKiBmb3Igc29tZSB2ZXJ5LCB2ZXJ5IHN0cmFuZ2UgcmVhc29uIHdlIGNhbm5vdCBlbmFibGUKKwkgKiBNZWFzdXJlbWVudCBSZWFkeSBtb25pdG9yaW5nIGZvciBhbGwgYXhlcyBoZXJlLAorCSAqIGF0IGxlYXN0IG5vdCB3aGVuIG9ubHkgb25lIGpveXN0aWNrIGNvbm5lY3RlZCAqLworCXZhbCA9IDB4MDM7IC8qIHdlJ3JlIGFibGUgdG8gbW9uaXRvciBheGVzIDEgYW5kIDIgb25seSAqLworCXNuZF9hemYzMzI4X2dhbWVfb3V0YihjaGlwLCBJRFhfR0FNRV9BWEVTX0NPTkZJRywgdmFsKTsKKworCXNuZF9hemYzMzI4X2dhbWVfb3V0dyhjaGlwLCBJRFhfR0FNRV9BWElTX1ZBTFVFLCAweGZmZmYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPnJlZ19sb2NrLCBmbGFncyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWF4ZXNbaV0gPSBjaGlwLT5heGVzW2ldOworCQlpZiAoYXhlc1tpXSA9PSAweGZmZmYpCisJCQlheGVzW2ldID0gLTE7CisJfQorCisJc25kX2F6ZjMzMjhfZGJnZ2FtZSgiY29va2VkX3JlYWQ6IGF4ZXMgJWQgJWQgJWQgJWQgYnV0dG9ucyAlZFxuIiwKKwkJYXhlc1swXSwgYXhlc1sxXSwgYXhlc1syXSwgYXhlc1szXSwgKmJ1dHRvbnMKKwkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZpbml0CitzbmRfYXpmMzMyOF9nYW1lcG9ydChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBkZXYpCit7CisJc3RydWN0IGdhbWVwb3J0ICpncDsKKworCWNoaXAtPmdhbWVwb3J0ID0gZ3AgPSBnYW1lcG9ydF9hbGxvY2F0ZV9wb3J0KCk7CisJaWYgKCFncCkgeworCQlwcmludGsoS0VSTl9FUlIgImF6dDMzMjg6IGNhbm5vdCBhbGxvYyBtZW1vcnkgZm9yIGdhbWVwb3J0XG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJZ2FtZXBvcnRfc2V0X25hbWUoZ3AsICJBWkYzMzI4IEdhbWVwb3J0Iik7CisJZ2FtZXBvcnRfc2V0X3BoeXMoZ3AsICJwY2klcy9nYW1lcG9ydDAiLCBwY2lfbmFtZShjaGlwLT5wY2kpKTsKKwlnYW1lcG9ydF9zZXRfZGV2X3BhcmVudChncCwgJmNoaXAtPnBjaS0+ZGV2KTsKKwlncC0+aW8gPSBjaGlwLT5nYW1lX2lvOworCWdhbWVwb3J0X3NldF9wb3J0X2RhdGEoZ3AsIGNoaXApOworCisJZ3AtPm9wZW4gPSBzbmRfYXpmMzMyOF9nYW1lcG9ydF9vcGVuOworCWdwLT5jbG9zZSA9IHNuZF9hemYzMzI4X2dhbWVwb3J0X2Nsb3NlOworCWdwLT5mdXp6ID0gMTY7IC8qIHNlZW1zIG9rICovCisJZ3AtPmNvb2tlZF9yZWFkID0gc25kX2F6ZjMzMjhfZ2FtZXBvcnRfY29va2VkX3JlYWQ7CisKKwkvKiBESVNBQkxFIGxlZ2FjeSBhZGRyZXNzOiB3ZSBkb24ndCBuZWVkIGl0ISAqLworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2xlZ2FjeV9hZGRyZXNzX2VuYWJsZShjaGlwLCAwKTsKKworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2F4aXNfY2lyY3VpdF9lbmFibGUoY2hpcCwgMCk7CisKKwlnYW1lcG9ydF9yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfZnJlZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApCit7CisJaWYgKGNoaXAtPmdhbWVwb3J0KSB7CisJCWdhbWVwb3J0X3VucmVnaXN0ZXJfcG9ydChjaGlwLT5nYW1lcG9ydCk7CisJCWNoaXAtPmdhbWVwb3J0ID0gTlVMTDsKKwl9CisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaXJxX2VuYWJsZShjaGlwLCAwKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludAorc25kX2F6ZjMzMjhfZ2FtZXBvcnQoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KSB7IHJldHVybiAtRU5PU1lTOyB9CitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X2ZyZWUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaW50ZXJydXB0KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICJodWgsIGdhbWUgcG9ydCBJUlEgb2NjdXJyZWQhP1xuIik7Cit9CisjZW5kaWYgLyogU1VQUE9SVF9HQU1FUE9SVCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2lycV9sb2dfdW5rbm93bl90eXBlKHU4IHdoaWNoKQoreworCXNuZF9hemYzMzI4X2RiZ3BsYXkoCisJImF6dDMzMjg6IHVua25vd24gSVJRIHR5cGUgKCV4KSBvY2N1cnJlZCwgcGxlYXNlIHJlcG9ydCFcbiIsCisJCXdoaWNoCisJKTsKK30KKwogc3RhdGljIGlycXJldHVybl90CiBzbmRfYXpmMzMyOF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGRldl9pZDsKIAl1OCBzdGF0dXMsIHdoaWNoOworI2lmIERFQlVHX1BMQVlfUkVDCiAJc3RhdGljIHVuc2lnbmVkIGxvbmcgaXJxX2NvdW50OworI2VuZGlmCiAKIAlzdGF0dXMgPSBzbmRfYXpmMzMyOF9jb2RlY19pbmIoY2hpcCwgSURYX0lPX0lSUVNUQVRVUyk7CiAKICAgICAgICAgLyogZmFzdCBwYXRoIG91dCwgdG8gZWFzZSBpbnRlcnJ1cHQgc2hhcmluZyAqLwotCWlmICghKHN0YXR1cyAmIChJUlFfUExBWUJBQ0t8SVJRX1JFQ09SRElOR3xJUlFfTVBVNDAxfElSUV9USU1FUikpKQorCWlmICghKHN0YXR1cyAmCisJCShJUlFfUExBWUJBQ0t8SVJRX1JFQ09SRElOR3xJUlFfR0FNRVBPUlR8SVJRX01QVTQwMXxJUlFfVElNRVIpCisJKSkKIAkJcmV0dXJuIElSUV9OT05FOyAvKiBtdXN0IGJlIGludGVycnVwdCBmb3IgYW5vdGhlciBkZXZpY2UgKi8KIAotCXNuZF9hemYzMzI4X2RiZ3BsYXkoIkludGVycnVwdCAlbGQhXG5JRFhfSU9fUExBWV9GTEFHUyAlMDR4LCBJRFhfSU9fUExBWV9JUlFUWVBFICUwNHgsIElEWF9JT19JUlFTVEFUVVMgJTA0eFxuIiwKLQkJaXJxX2NvdW50LAotCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpLAotCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfSVJRVFlQRSksCi0JCXN0YXR1cyk7Ci0JCQorCXNuZF9hemYzMzI4X2RiZ3BsYXkoCisJCSJpcnFfY291bnQgJWxkISBJRFhfSU9fUExBWV9GTEFHUyAlMDR4LCAiCisJCSJJRFhfSU9fUExBWV9JUlFUWVBFICUwNHgsIElEWF9JT19JUlFTVEFUVVMgJTA0eFxuIiwKKwkJCWlycV9jb3VudCsrIC8qIGRlYnVnLW9ubHkgKi8sCisJCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpLAorCQkJc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19QTEFZX0lSUVRZUEUpLAorCQkJc3RhdHVzCisJKTsKKwogCWlmIChzdGF0dXMgJiBJUlFfVElNRVIpIHsKLQkJLyogc25kX2F6ZjMzMjhfZGJncGxheSgidGltZXIgJWxkXG4iLCBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fVElNRVJfVkFMVUUpICYgVElNRVJfVkFMVUVfTUFTSyk7ICovCisJCS8qIHNuZF9hemYzMzI4X2RiZ3BsYXkoInRpbWVyICVsZFxuIiwKKwkJCXNuZF9hemYzMzI4X2NvZGVjX2lubChjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUpCisJCQkJJiBUSU1FUl9WQUxVRV9NQVNLCisJCSk7ICovCiAJCWlmIChjaGlwLT50aW1lcikKIAkJCXNuZF90aW1lcl9pbnRlcnJ1cHQoY2hpcC0+dGltZXIsIGNoaXAtPnRpbWVyLT5zdGlja3MpOwogCQkvKiBBQ0sgdGltZXIgKi8KQEAgLTEyMzIsMTUgKzE2MzUsMjAgQEAKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fUExBWV9JUlFUWVBFLCB3aGljaCk7CiAgICAgICAgICAgICAgICAJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAotCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSkgewotCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjaGlwLT5wbGF5YmFja19zdWJzdHJlYW0pOworCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnN1YnN0cmVhbSkgeworCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZCgKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5zdWJzdHJlYW0KKwkJCSk7CiAJCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJQTEFZIHBlcmlvZCBkb25lICgjJXgpLCBAICV4XG4iLAogCQkJCXdoaWNoLAotCQkJCWlubChjaGlwLT5jb2RlY19wb3J0K0lEWF9JT19QTEFZX0RNQV9DVVJSUE9TKSk7CisJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW5sKAorCQkJCQljaGlwLCBJRFhfSU9fUExBWV9ETUFfQ1VSUlBPUworCQkJCSkKKwkJCSk7CiAJCX0gZWxzZQotCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogb3VjaCwgaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOwogCQlpZiAod2hpY2ggJiBJUlFfUExBWV9TT01FVEhJTkcpCi0JCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJhenQzMzI4OiB1bmtub3duIHBsYXkgSVJRIHR5cGUgb2NjdXJyZWQsIHBsZWFzZSByZXBvcnQhXG4iKTsKKwkJCXNuZF9hemYzMzI4X2lycV9sb2dfdW5rbm93bl90eXBlKHdoaWNoKTsKIAl9CiAJaWYgKHN0YXR1cyAmIElSUV9SRUNPUkRJTkcpIHsKICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKQEAgLTEyNDksMTYgKzE2NTcsMjMgQEAKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fUkVDX0lSUVRZUEUsIHdoaWNoKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAotCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtKSB7Ci0JCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtKTsKKwkJaWYgKGNoaXAtPnBjbSAmJiBjaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnN1YnN0cmVhbSkgeworCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZCgKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnN1YnN0cmVhbQorCQkJKTsKIAkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlJFQyAgcGVyaW9kIGRvbmUgKCMleCksIEAgJXhcbiIsCiAJCQkJd2hpY2gsCi0JCQkJaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfQ1VSUlBPUykpOworCQkJCXNuZF9hemYzMzI4X2NvZGVjX2lubCgKKwkJCQkJY2hpcCwgSURYX0lPX1JFQ19ETUFfQ1VSUlBPUworCQkJCSkKKwkJCSk7CiAJCX0gZWxzZQotCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogb3VjaCwgaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOwogCQlpZiAod2hpY2ggJiBJUlFfUkVDX1NPTUVUSElORykKLQkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoImF6dDMzMjg6IHVua25vd24gcmVjIElSUSB0eXBlIG9jY3VycmVkLCBwbGVhc2UgcmVwb3J0IVxuIik7CisJCQlzbmRfYXpmMzMyOF9pcnFfbG9nX3Vua25vd25fdHlwZSh3aGljaCk7CiAJfQorCWlmIChzdGF0dXMgJiBJUlFfR0FNRVBPUlQpCisJCXNuZF9hemYzMzI4X2dhbWVwb3J0X2ludGVycnVwdChjaGlwKTsKIAkvKiBNUFU0MDEgaGFzIGxlc3MgY3JpdGljYWwgSVJRIHJlcXVpcmVtZW50cwogCSAqIHRoYW4gdGltZXIgYW5kIHBsYXliYWNrL3JlY29yZGluZywgcmlnaHQ/ICovCiAJaWYgKHN0YXR1cyAmIElSUV9NUFU0MDEpIHsKQEAgLTEyNjgsNyArMTY4Myw2IEBACiAJCSAqIElmIHNvLCB0aGVuIEkgZG9uJ3Qga25vdyBob3cuLi4gKi8KIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogTVBVNDAxIElSUVxuIik7CiAJfQotCWlycV9jb3VudCsrOwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTI4Nyw4ICsxNzAxLDggQEAKIAkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfNTUxMiB8CiAJCQkJU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCB8CiAJCQkJU05EUlZfUENNX1JBVEVfS05PVCwKLQkucmF0ZV9taW4gPQkJNDAwMCwKLQkucmF0ZV9tYXggPQkJNjYyMDAsCisJLnJhdGVfbWluID0JCUFaRl9GUkVRXzQwMDAsCisJLnJhdGVfbWF4ID0JCUFaRl9GUkVRXzY2MjAwLAogCS5jaGFubmVsc19taW4gPQkJMSwKIAkuY2hhbm5lbHNfbWF4ID0JCTIsCiAJLmJ1ZmZlcl9ieXRlc19tYXggPQk2NTUzNiwKQEAgLTEzMTUsOCArMTcyOSw4IEBACiAJLnJhdGVzID0JCVNORFJWX1BDTV9SQVRFXzU1MTIgfAogCQkJCVNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAgfAogCQkJCVNORFJWX1BDTV9SQVRFX0tOT1QsCi0JLnJhdGVfbWluID0JCTQwMDAsCi0JLnJhdGVfbWF4ID0JCTY2MjAwLAorCS5yYXRlX21pbiA9CQlBWkZfRlJFUV80MDAwLAorCS5yYXRlX21heCA9CQlBWkZfRlJFUV82NjIwMCwKIAkuY2hhbm5lbHNfbWluID0JCTEsCiAJLmNoYW5uZWxzX21heCA9CQkyLAogCS5idWZmZXJfYnl0ZXNfbWF4ID0JNjU1MzYsCkBAIC0xMzI5LDEwICsxNzQzLDI0IEBACiAKIAogc3RhdGljIHVuc2lnbmVkIGludCBzbmRfYXpmMzMyOF9maXhlZF9yYXRlc1tdID0gewotCTQwMDAsIDQ4MDAsIDU1MTIsIDY2MjAsIDgwMDAsIDk2MDAsIDExMDI1LCAxMzI0MCwgMTYwMDAsIDIyMDUwLCAzMjAwMCwKLQk0NDEwMCwgNDgwMDAsIDY2MjAwIH07CisJQVpGX0ZSRVFfNDAwMCwKKwlBWkZfRlJFUV80ODAwLAorCUFaRl9GUkVRXzU1MTIsCisJQVpGX0ZSRVFfNjYyMCwKKwlBWkZfRlJFUV84MDAwLAorCUFaRl9GUkVRXzk2MDAsCisJQVpGX0ZSRVFfMTEwMjUsCisJQVpGX0ZSRVFfMTMyNDAsCisJQVpGX0ZSRVFfMTYwMDAsCisJQVpGX0ZSRVFfMjIwNTAsCisJQVpGX0ZSRVFfMzIwMDAsCisJQVpGX0ZSRVFfNDQxMDAsCisJQVpGX0ZSRVFfNDgwMDAsCisJQVpGX0ZSRVFfNjYyMDAKK307CisKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9od19jb25zdHJhaW50X2xpc3Qgc25kX2F6ZjMzMjhfaHdfY29uc3RyYWludHNfcmF0ZXMgPSB7Ci0JLmNvdW50ID0gQVJSQVlfU0laRShzbmRfYXpmMzMyOF9maXhlZF9yYXRlcyksIAorCS5jb3VudCA9IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfZml4ZWRfcmF0ZXMpLAogCS5saXN0ID0gc25kX2F6ZjMzMjhfZml4ZWRfcmF0ZXMsCiAJLm1hc2sgPSAwLAogfTsKQEAgLTEzNDYsNyArMTc3NCw3IEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CiAJcnVudGltZS0+aHcgPSBzbmRfYXpmMzMyOF9wbGF5YmFjazsKIAlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwKIAkJCQkgICAmc25kX2F6ZjMzMjhfaHdfY29uc3RyYWludHNfcmF0ZXMpOwpAQCAtMTM2MSw3ICsxNzg5LDcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9DQVBUVVJFXS5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CiAJcnVudGltZS0+aHcgPSBzbmRfYXpmMzMyOF9jYXB0dXJlOwogCXNuZF9wY21faHdfY29uc3RyYWludF9saXN0KHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9SQVRFLAogCQkJCSAgICZzbmRfYXpmMzMyOF9od19jb25zdHJhaW50c19yYXRlcyk7CkBAIC0xMzc1LDcgKzE4MDMsNyBAQAogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IE5VTEw7CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9QTEFZQkFDS10uc3Vic3RyZWFtID0gTlVMTDsKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTEzODYsNyArMTgxNCw3IEBACiAJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBOVUxMOworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0uc3Vic3RyZWFtID0gTlVMTDsKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NDEsMTAyICsxODY5LDggQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2lmZGVmIFNVUFBPUlRfSk9ZU1RJQ0sKLXN0YXRpYyBpbnQgX19kZXZpbml0Ci1zbmRfYXpmMzMyOF9jb25maWdfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KQotewotCXN0cnVjdCBnYW1lcG9ydCAqZ3A7Ci0Jc3RydWN0IHJlc291cmNlICpyOwotCi0JaWYgKCFqb3lzdGlja1tkZXZdKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCWlmICghKHIgPSByZXF1ZXN0X3JlZ2lvbigweDIwMCwgOCwgIkFaRjMzMjggZ2FtZXBvcnQiKSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogY2Fubm90IHJlc2VydmUgam95c3RpY2sgcG9ydHNcbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCWNoaXAtPmdhbWVwb3J0ID0gZ3AgPSBnYW1lcG9ydF9hbGxvY2F0ZV9wb3J0KCk7Ci0JaWYgKCFncCkgewotCQlwcmludGsoS0VSTl9FUlIgImF6dDMzMjg6IGNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGdhbWVwb3J0XG4iKTsKLQkJcmVsZWFzZV9hbmRfZnJlZV9yZXNvdXJjZShyKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCi0JZ2FtZXBvcnRfc2V0X25hbWUoZ3AsICJBWkYzMzI4IEdhbWVwb3J0Iik7Ci0JZ2FtZXBvcnRfc2V0X3BoeXMoZ3AsICJwY2klcy9nYW1lcG9ydDAiLCBwY2lfbmFtZShjaGlwLT5wY2kpKTsKLQlnYW1lcG9ydF9zZXRfZGV2X3BhcmVudChncCwgJmNoaXAtPnBjaS0+ZGV2KTsKLQlncC0+aW8gPSAweDIwMDsKLQlnYW1lcG9ydF9zZXRfcG9ydF9kYXRhKGdwLCByKTsKLQotCXNuZF9hemYzMzI4X2lvMl9vdXRiKGNoaXAsIElEWF9JTzJfTEVHQUNZX0FERFIsCi0JCQkgICAgICBzbmRfYXpmMzMyOF9pbzJfaW5iKGNoaXAsIElEWF9JTzJfTEVHQUNZX0FERFIpIHwgTEVHQUNZX0pPWSk7Ci0KLQlnYW1lcG9ydF9yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotc25kX2F6ZjMzMjhfZnJlZV9qb3lzdGljayhzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApCi17Ci0JaWYgKGNoaXAtPmdhbWVwb3J0KSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqciA9IGdhbWVwb3J0X2dldF9wb3J0X2RhdGEoY2hpcC0+Z2FtZXBvcnQpOwotCi0JCWdhbWVwb3J0X3VucmVnaXN0ZXJfcG9ydChjaGlwLT5nYW1lcG9ydCk7Ci0JCWNoaXAtPmdhbWVwb3J0ID0gTlVMTDsKLQkJLyogZGlzYWJsZSBnYW1lcG9ydCAqLwotCQlzbmRfYXpmMzMyOF9pbzJfb3V0YihjaGlwLCBJRFhfSU8yX0xFR0FDWV9BRERSLAotCQkJCSAgICAgIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUikgJiB+TEVHQUNZX0pPWSk7Ci0JCXJlbGVhc2VfYW5kX2ZyZWVfcmVzb3VyY2Uocik7Ci0JfQotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50Ci1zbmRfYXpmMzMyOF9jb25maWdfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KSB7IHJldHVybiAtRU5PU1lTOyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X2ZyZWVfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKSB7IH0KLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgaW50Ci1zbmRfYXpmMzMyOF9mcmVlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKLXsKLSAgICAgICAgaWYgKGNoaXAtPmlycSA8IDApCi0gICAgICAgICAgICAgICAgZ290byBfX2VuZF9odzsKLQotCS8qIHJlc2V0IChjbG9zZSkgbWl4ZXIgKi8KLQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDEpOyAvKiBmaXJzdCBtdXRlIG1hc3RlciB2b2x1bWUgKi8KLQlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsIElEWF9NSVhFUl9SRVNFVCwgMHgwMDAwKTsKLQotICAgICAgICAvKiBpbnRlcnJ1cHQgc2V0dXAgLSBtYXNrIGV2ZXJ5dGhpbmcgKEZJWE1FISkgKi8KLQkvKiB3ZWxsLCBhdCBsZWFzdCB3ZSBrbm93IGhvdyB0byBkaXNhYmxlIHRoZSB0aW1lciBJUlEgKi8KLQlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19USU1FUl9WQUxVRSArIDMsIDB4MDApOwotCi0JaWYgKGNoaXAtPmlycSA+PSAwKQotICAgICAgICAJc3luY2hyb25pemVfaXJxKGNoaXAtPmlycSk7Ci1fX2VuZF9odzoKLQlzbmRfYXpmMzMyOF9mcmVlX2pveXN0aWNrKGNoaXApOwotICAgICAgICBpZiAoY2hpcC0+aXJxID49IDApCi0JCWZyZWVfaXJxKGNoaXAtPmlycSwgY2hpcCk7Ci0JcGNpX3JlbGVhc2VfcmVnaW9ucyhjaGlwLT5wY2kpOwotCXBjaV9kaXNhYmxlX2RldmljZShjaGlwLT5wY2kpOwotCi0gICAgICAgIGtmcmVlKGNoaXApOwotICAgICAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotc25kX2F6ZjMzMjhfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBkZXZpY2UtPmRldmljZV9kYXRhOwotCXJldHVybiBzbmRfYXpmMzMyOF9mcmVlKGNoaXApOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKioqIE5PVEU6IHRoZSBwaHlzaWNhbCB0aW1lciByZXNvbHV0aW9uIGFjdHVhbGx5IGlzIDEwMjQwMDAgdGlja3MgcGVyIHNlY29uZCwKKy8qKiogTk9URTogdGhlIHBoeXNpY2FsIHRpbWVyIHJlc29sdXRpb24gYWN0dWFsbHkgaXMgMTAyNDAwMCB0aWNrcyBwZXIgc2Vjb25kCisgKioqIChwcm9iYWJseSBkZXJpdmVkIGZyb20gbWFpbiBjcnlzdGFsIHZpYSBhIGRpdmlkZXIgb2YgMjQpLAogICoqKiBidXQgYW5ub3VuY2luZyB0aG9zZSBhdHRyaWJ1dGVzIHRvIHVzZXItc3BhY2Ugd291bGQgbWFrZSBwcm9ncmFtcwogICoqKiBjb25maWd1cmUgdGhlIHRpbWVyIHRvIGEgMSB0aWNrIHZhbHVlLCByZXN1bHRpbmcgaW4gYW4gYWJzb2x1dGVseSBmYXRhbAogICoqKiB0aW1lciBJUlEgc3Rvcm0uCkBAIC0xNTY0LDcgKzE4OTgsNyBAQAogCQlkZWxheSA9IDQ5OyAvKiBtaW5pbXVtIHRpbWUgaXMgNDkgdGlja3MgKi8KIAl9CiAJc25kX2F6ZjMzMjhfZGJndGltZXIoInNldHRpbmcgdGltZXIgY291bnRkb3duIHZhbHVlICVkLCBhZGQgQ09VTlRET1dOfElSUVxuIiwgZGVsYXkpOwotCWRlbGF5IHw9IFRJTUVSX0VOQUJMRV9DT1VOVERPV04gfCBUSU1FUl9FTkFCTEVfSVJROworCWRlbGF5IHw9IFRJTUVSX0NPVU5URE9XTl9FTkFCTEUgfCBUSU1FUl9JUlFfRU5BQkxFOwogCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGwoY2hpcCwgSURYX0lPX1RJTUVSX1ZBTFVFLCBkZWxheSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKQEAgLTE1ODIsNyArMTkxNiw3IEBACiAJY2hpcCA9IHNuZF90aW1lcl9jaGlwKHRpbWVyKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKIAkvKiBkaXNhYmxlIHRpbWVyIGNvdW50ZG93biBhbmQgaW50ZXJydXB0ICovCi0JLyogRklYTUU6IHNob3VsZCB3ZSB3cml0ZSBUSU1FUl9BQ0tfSVJRIGhlcmU/ICovCisJLyogRklYTUU6IHNob3VsZCB3ZSB3cml0ZSBUSU1FUl9JUlFfQUNLIGhlcmU/ICovCiAJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUgKyAzLCAwKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwpAQCAtMTYyNiw5ICsxOTYwLDEwIEBACiAKIAlzbmRfYXpmMzMyOF90aW1lcl9ody5yZXNvbHV0aW9uICo9IHNlcXRpbWVyX3NjYWxpbmc7CiAJc25kX2F6ZjMzMjhfdGltZXJfaHcudGlja3MgLz0gc2VxdGltZXJfc2NhbGluZzsKLQlpZiAoKGVyciA9IHNuZF90aW1lcl9uZXcoY2hpcC0+Y2FyZCwgIkFaRjMzMjgiLCAmdGlkLCAmdGltZXIpKSA8IDApIHsKKworCWVyciA9IHNuZF90aW1lcl9uZXcoY2hpcC0+Y2FyZCwgIkFaRjMzMjgiLCAmdGlkLCAmdGltZXIpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dDsKLQl9CiAKIAlzdHJjcHkodGltZXItPm5hbWUsICJBWkYzMzI4IHRpbWVyIik7CiAJdGltZXItPnByaXZhdGVfZGF0YSA9IGNoaXA7CkBAIC0xNjM2LDYgKzE5NzEsOCBAQAogCiAJY2hpcC0+dGltZXIgPSB0aW1lcjsKIAorCXNuZF9hemYzMzI4X3RpbWVyX3N0b3AodGltZXIpOworCiAJZXJyID0gMDsKIAogb3V0OgpAQCAtMTY0NSwxMCArMTk4Miw0NCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9mcmVlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwlpZiAoY2hpcC0+aXJxIDwgMCkKKwkJZ290byBfX2VuZF9odzsKKworCS8qIHJlc2V0IChjbG9zZSkgbWl4ZXI6CisJICogZmlyc3QgbXV0ZSBtYXN0ZXIgdm9sdW1lLCB0aGVuIHJlc2V0CisJICovCisJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAxKTsKKwlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsIElEWF9NSVhFUl9SRVNFVCwgMHgwMDAwKTsKKworCXNuZF9hemYzMzI4X3RpbWVyX3N0b3AoY2hpcC0+dGltZXIpOworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2ZyZWUoY2hpcCk7CisKKwlpZiAoY2hpcC0+aXJxID49IDApCisJCXN5bmNocm9uaXplX2lycShjaGlwLT5pcnEpOworX19lbmRfaHc6CisJaWYgKGNoaXAtPmlycSA+PSAwKQorCQlmcmVlX2lycShjaGlwLT5pcnEsIGNoaXApOworCXBjaV9yZWxlYXNlX3JlZ2lvbnMoY2hpcC0+cGNpKTsKKwlwY2lfZGlzYWJsZV9kZXZpY2UoY2hpcC0+cGNpKTsKKworCWtmcmVlKGNoaXApOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisJcmV0dXJuIHNuZF9hemYzMzI4X2ZyZWUoY2hpcCk7Cit9CisKICNpZiAwCiAvKiBjaGVjayB3aGV0aGVyIGEgYml0IGNhbiBiZSBtb2RpZmllZCAqLwogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X3Rlc3RfYml0KHVuc2lnbmVkIGludCByZWcsIGludCBiaXQpCitzbmRfYXpmMzMyOF90ZXN0X2JpdCh1bnNpZ25lZCB1bnNpZ25lZCByZWcsIGludCBiaXQpCiB7CiAJdW5zaWduZWQgY2hhciB2YWwsIHZhbG9mZiwgdmFsb247CiAKQEAgLTE2NTksNDIgKzIwMzAsNzQgQEAKIAogCW91dGIodmFsfCgxIDw8IGJpdCksIHJlZyk7CiAJdmFsb24gPSBpbmIocmVnKTsKLQkKKwogCW91dGIodmFsLCByZWcpOwogCi0JcHJpbnRrKEtFUk5fRVJSICJyZWcgJTA0eCBiaXQgJWQ6ICUwMnggJTAyeCAlMDJ4XG4iLCByZWcsIGJpdCwgdmFsLCB2YWxvZmYsIHZhbG9uKTsKKwlwcmludGsoS0VSTl9FUlIgInJlZyAlMDR4IGJpdCAlZDogJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQkJcmVnLCBiaXQsIHZhbCwgdmFsb2ZmLCB2YWxvbgorCSk7CiB9CiAjZW5kaWYKIAotI2lmIERFQlVHX01JU0MKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQKIHNuZF9hemYzMzI4X2RlYnVnX3Nob3dfcG9ydHMoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQogeworI2lmIERFQlVHX01JU0MKIAl1MTYgdG1wOwogCi0Jc25kX2F6ZjMzMjhfZGJnbWlzYygiY29kZWNfcG9ydCAweCVseCwgaW8yX3BvcnQgMHglbHgsIG1wdV9wb3J0IDB4JWx4LCBzeW50aF9wb3J0IDB4JWx4LCBtaXhlcl9wb3J0IDB4JWx4LCBpcnEgJWRcbiIsIGNoaXAtPmNvZGVjX3BvcnQsIGNoaXAtPmlvMl9wb3J0LCBjaGlwLT5tcHVfcG9ydCwgY2hpcC0+c3ludGhfcG9ydCwgY2hpcC0+bWl4ZXJfcG9ydCwgY2hpcC0+aXJxKTsKKwlzbmRfYXpmMzMyOF9kYmdtaXNjKAorCQkiY29kZWNfaW8gMHglbHgsIGdhbWVfaW8gMHglbHgsIG1wdV9pbyAweCVseCwgIgorCQkib3BsM19pbyAweCVseCwgbWl4ZXJfaW8gMHglbHgsIGlycSAlZFxuIiwKKwkJY2hpcC0+Y29kZWNfaW8sIGNoaXAtPmdhbWVfaW8sIGNoaXAtPm1wdV9pbywKKwkJY2hpcC0+b3BsM19pbywgY2hpcC0+bWl4ZXJfaW8sIGNoaXAtPmlycQorCSk7CiAKLQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJpbzIgJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMCksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMSksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMiksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMyksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgNCksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgNSkpOworCXNuZF9hemYzMzI4X2RiZ21pc2MoImdhbWUgJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDApLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCAxKSwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgMiksCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDMpLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCA0KSwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgNSkKKwkpOwogCi0JZm9yICh0bXA9MDsgdG1wIDw9IDB4MDE7IHRtcCArPSAxKQotCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCIweCUwMng6IG9wbCAweCUwNHgsIG1wdTMwMCAweCUwNHgsIG1wdTMxMCAweCUwNHgsIG1wdTMyMCAweCUwNHgsIG1wdTMzMCAweCUwNHhcbiIsIHRtcCwgaW5iKDB4Mzg4ICsgdG1wKSwgaW5iKDB4MzAwICsgdG1wKSwgaW5iKDB4MzEwICsgdG1wKSwgaW5iKDB4MzIwICsgdG1wKSwgaW5iKDB4MzMwICsgdG1wKSk7CisJZm9yICh0bXAgPSAwOyB0bXAgPCAweDA3OyB0bXAgKz0gMSkKKwkJc25kX2F6ZjMzMjhfZGJnbWlzYygibXB1X2lvIDB4JTA0eFxuIiwgaW5iKGNoaXAtPm1wdV9pbyArIHRtcCkpOworCisJZm9yICh0bXAgPSAwOyB0bXAgPD0gMHgwNzsgdG1wICs9IDEpCisJCXNuZF9hemYzMzI4X2RiZ21pc2MoIjB4JTAyeDogZ2FtZTIwMCAweCUwNHgsIGdhbWUyMDggMHglMDR4XG4iLAorCQkJdG1wLCBpbmIoMHgyMDAgKyB0bXApLCBpbmIoMHgyMDggKyB0bXApKTsKKworCWZvciAodG1wID0gMDsgdG1wIDw9IDB4MDE7IHRtcCArPSAxKQorCQlzbmRfYXpmMzMyOF9kYmdtaXNjKAorCQkJIjB4JTAyeDogbXB1MzAwIDB4JTA0eCwgbXB1MzEwIDB4JTA0eCwgbXB1MzIwIDB4JTA0eCwgIgorCQkJIm1wdTMzMCAweCUwNHggb3BsMzg4IDB4JTA0eCBvcGwzOGMgMHglMDR4XG4iLAorCQkJCXRtcCwKKwkJCQlpbmIoMHgzMDAgKyB0bXApLAorCQkJCWluYigweDMxMCArIHRtcCksCisJCQkJaW5iKDB4MzIwICsgdG1wKSwKKwkJCQlpbmIoMHgzMzAgKyB0bXApLAorCQkJCWluYigweDM4OCArIHRtcCksCisJCQkJaW5iKDB4MzhjICsgdG1wKQorCQkpOwogCiAJZm9yICh0bXAgPSAwOyB0bXAgPCBBWkZfSU9fU0laRV9DT0RFQzsgdG1wICs9IDIpCi0JCXNuZF9hemYzMzI4X2RiZ21pc2MoImNvZGVjIDB4JTAyeDogMHglMDR4XG4iLCB0bXAsIHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCB0bXApKTsKKwkJc25kX2F6ZjMzMjhfZGJnbWlzYygiY29kZWMgMHglMDJ4OiAweCUwNHhcbiIsCisJCQl0bXAsIHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCB0bXApCisJCSk7CiAKIAlmb3IgKHRtcCA9IDA7IHRtcCA8IEFaRl9JT19TSVpFX01JWEVSOyB0bXAgKz0gMikKLQkJc25kX2F6ZjMzMjhfZGJnbWlzYygibWl4ZXIgMHglMDJ4OiAweCUwNHhcbiIsIHRtcCwgc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHRtcCkpOworCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJtaXhlciAweCUwMng6IDB4JTA0eFxuIiwKKwkJCXRtcCwgc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHRtcCkKKwkJKTsKKyNlbmRpZiAvKiBERUJVR19NSVNDICovCiB9Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkCi1zbmRfYXpmMzMyOF9kZWJ1Z19zaG93X3BvcnRzKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkge30KLSNlbmRpZgogCiBzdGF0aWMgaW50IF9fZGV2aW5pdAogc25kX2F6ZjMzMjhfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBjaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkZXZpY2VfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNuZF9hemYzMzI4ICoqIHJjaGlwKQorCQkgICBzdHJ1Y3QgcGNpX2RldiAqcGNpLAorCQkgICB1bnNpZ25lZCBsb25nIGRldmljZV90eXBlLAorCQkgICBzdHJ1Y3Qgc25kX2F6ZjMzMjggKipyY2hpcCkKIHsKIAlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXA7CiAJaW50IGVycjsKQEAgLTE3MDUsNyArMjEwOCw4IEBACiAKIAkqcmNoaXAgPSBOVUxMOwogCi0JaWYgKChlcnIgPSBwY2lfZW5hYmxlX2RldmljZShwY2kpKSA8IDApCisJZXJyID0gcGNpX2VuYWJsZV9kZXZpY2UocGNpKTsKKwlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKIAogCWNoaXAgPSBremFsbG9jKHNpemVvZigqY2hpcCksIEdGUF9LRVJORUwpOwpAQCAtMTcyMSwyMCArMjEyNSwyNSBAQAogCS8qIGNoZWNrIGlmIHdlIGNhbiByZXN0cmljdCBQQ0kgRE1BIHRyYW5zZmVycyB0byAyNCBiaXRzICovCiAJaWYgKHBjaV9zZXRfZG1hX21hc2socGNpLCBETUFfMjRCSVRfTUFTSykgPCAwIHx8CiAJICAgIHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhwY2ksIERNQV8yNEJJVF9NQVNLKSA8IDApIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXJjaGl0ZWN0dXJlIGRvZXMgbm90IHN1cHBvcnQgMjRiaXQgUENJIGJ1c21hc3RlciBETUFcbiIpOworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhcmNoaXRlY3R1cmUgZG9lcyBub3Qgc3VwcG9ydCAiCisJCQkJCSIyNGJpdCBQQ0kgYnVzbWFzdGVyIERNQVxuIgorCQkpOwogCQllcnIgPSAtRU5YSU87CiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQlpZiAoKGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGNpLCAiQXp0ZWNoIEFaRjMzMjgiKSkgPCAwKSB7CisJZXJyID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwY2ksICJBenRlY2ggQVpGMzMyOCIpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCi0JY2hpcC0+Y29kZWNfcG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDApOwotCWNoaXAtPmlvMl9wb3J0ICAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAxKTsKLQljaGlwLT5tcHVfcG9ydCAgID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMik7Ci0JY2hpcC0+c3ludGhfcG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDMpOwotCWNoaXAtPm1peGVyX3BvcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCA0KTsKKwljaGlwLT5jb2RlY19pbyA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDApOworCWNoaXAtPmdhbWVfaW8gID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMSk7CisJY2hpcC0+bXB1X2lvICAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAyKTsKKwljaGlwLT5vcGwzX2lvID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMyk7CisJY2hpcC0+bWl4ZXJfaW8gPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCA0KTsKKworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnBvcnRiYXNlID0gY2hpcC0+Y29kZWNfaW8gKyAweDAwOworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0ucG9ydGJhc2UgICA9IGNoaXAtPmNvZGVjX2lvICsgMHgyMDsKIAogCWlmIChyZXF1ZXN0X2lycShwY2ktPmlycSwgc25kX2F6ZjMzMjhfaW50ZXJydXB0LAogCQkJSVJRRl9TSEFSRUQsIGNhcmQtPnNob3J0bmFtZSwgY2hpcCkpIHsKQEAgLTE3NDcsMjkgKzIxNTYsMjkgQEAKIAlzeW5jaHJvbml6ZV9pcnEoY2hpcC0+aXJxKTsKIAogCXNuZF9hemYzMzI4X2RlYnVnX3Nob3dfcG9ydHMoY2hpcCk7Ci0JCi0JaWYgKChlcnIgPSBzbmRfZGV2aWNlX25ldyhjYXJkLCBTTkRSVl9ERVZfTE9XTEVWRUwsIGNoaXAsICZvcHMpKSA8IDApIHsKKworCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY2hpcCwgJm9wcyk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKIAkvKiBjcmVhdGUgbWl4ZXIgaW50ZXJmYWNlICYgc3dpdGNoZXMgKi8KLQlpZiAoKGVyciA9IHNuZF9hemYzMzI4X21peGVyX25ldyhjaGlwKSkgPCAwKQorCWVyciA9IHNuZF9hemYzMzI4X21peGVyX25ldyhjaGlwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwogCi0jaWYgMAotCS8qIHNldCB2ZXJ5IGxvdyBiaXRyYXRlIHRvIHJlZHVjZSBub2lzZSBhbmQgcG93ZXIgY29uc3VtcHRpb24/ICovCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULCA1NTEyLCA4LCAxKTsKLSNlbmRpZgorCS8qIHNodXRkb3duIGNvZGVjcyB0byBzYXZlIHBvd2VyICovCisJCS8qIGhhdmUgc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoKSBhY3QgcHJvcGVybHkgKi8KKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5ydW5uaW5nID0gMTsKKwlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfUExBWUJBQ0ssIDApOwogCiAJLyogc3RhbmRhcmQgY2hpcCBpbml0IHN0dWZmICovCi0JLyogZGVmYXVsdCBJUlEgaW5pdCB2YWx1ZSAqLworCQkvKiBkZWZhdWx0IElSUSBpbml0IHZhbHVlICovCiAJdG1wID0gRE1BX1BMQVlfU09NRVRISU5HMnxETUFfRVBJTE9HVUVfU09NRVRISU5HfERNQV9TT01FVEhJTkdfRUxTRTsKIAogCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKIAlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCB0bXApOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGIoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgdG1wKTsKIAlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19TT01FVEhJTkdfRkxBR1MsIHRtcCk7Ci0Jc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUgKyAzLCAweDAwKTsgLyogZGlzYWJsZSB0aW1lciAqLwogCXNwaW5fdW5sb2NrX2lycSgmY2hpcC0+cmVnX2xvY2spOwogCiAJc25kX2NhcmRfc2V0X2RldihjYXJkLCAmcGNpLT5kZXYpOwpAQCAtMTgwNSw1MiArMjIxNCw2MSBAQAogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAKLQljYXJkID0gc25kX2NhcmRfbmV3KGluZGV4W2Rldl0sIGlkW2Rldl0sIFRISVNfTU9EVUxFLCAwICk7CisJY2FyZCA9IHNuZF9jYXJkX25ldyhpbmRleFtkZXZdLCBpZFtkZXZdLCBUSElTX01PRFVMRSwgMCk7CiAJaWYgKGNhcmQgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlzdHJjcHkoY2FyZC0+ZHJpdmVyLCAiQVpGMzMyOCIpOwogCXN0cmNweShjYXJkLT5zaG9ydG5hbWUsICJBenRlY2ggQVpGMzMyOCAoUENJMTY4KSIpOwogCi0gICAgICAgIGlmICgoZXJyID0gc25kX2F6ZjMzMjhfY3JlYXRlKGNhcmQsIHBjaSwgcGNpX2lkLT5kcml2ZXJfZGF0YSwgJmNoaXApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF9jcmVhdGUoY2FyZCwgcGNpLCBwY2lfaWQtPmRyaXZlcl9kYXRhLCAmY2hpcCk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKIAljYXJkLT5wcml2YXRlX2RhdGEgPSBjaGlwOwogCi0JaWYgKChlcnIgPSBzbmRfbXB1NDAxX3VhcnRfbmV3KCBjYXJkLCAwLCBNUFU0MDFfSFdfTVBVNDAxLAotCQkJCSAgICAgICAgY2hpcC0+bXB1X3BvcnQsIE1QVTQwMV9JTkZPX0lOVEVHUkFURUQsCi0JCQkJCXBjaS0+aXJxLCAwLCAmY2hpcC0+cm1pZGkpKSA8IDApIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXpmMzMyODogbm8gTVBVLTQwMSBkZXZpY2UgYXQgMHglbHg/XG4iLCBjaGlwLT5tcHVfcG9ydCk7CisJZXJyID0gc25kX21wdTQwMV91YXJ0X25ldygKKwkJY2FyZCwgMCwgTVBVNDAxX0hXX01QVTQwMSwgY2hpcC0+bXB1X2lvLCBNUFU0MDFfSU5GT19JTlRFR1JBVEVELAorCQlwY2ktPmlycSwgMCwgJmNoaXAtPnJtaWRpCisJKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBubyBNUFUtNDAxIGRldmljZSBhdCAweCVseD9cbiIsCisJCQkJY2hpcC0+bXB1X2lvCisJCSk7CiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQlpZiAoKGVyciA9IHNuZF9hemYzMzI4X3RpbWVyKGNoaXAsIDApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF90aW1lcihjaGlwLCAwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwotCX0KIAotCWlmICgoZXJyID0gc25kX2F6ZjMzMjhfcGNtKGNoaXAsIDApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF9wY20oY2hpcCwgMCk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKLQlpZiAoc25kX29wbDNfY3JlYXRlKGNhcmQsIGNoaXAtPnN5bnRoX3BvcnQsIGNoaXAtPnN5bnRoX3BvcnQrMiwKKwlpZiAoc25kX29wbDNfY3JlYXRlKGNhcmQsIGNoaXAtPm9wbDNfaW8sIGNoaXAtPm9wbDNfaW8rMiwKIAkJCSAgICBPUEwzX0hXX0FVVE8sIDEsICZvcGwzKSA8IDApIHsKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXpmMzMyODogbm8gT1BMMyBkZXZpY2UgYXQgMHglbHgtMHglbHg/XG4iLAotCQkJICAgY2hpcC0+c3ludGhfcG9ydCwgY2hpcC0+c3ludGhfcG9ydCsyICk7CisJCQkgICBjaGlwLT5vcGwzX2lvLCBjaGlwLT5vcGwzX2lvKzIKKwkJKTsKIAl9IGVsc2UgewotCQlpZiAoKGVyciA9IHNuZF9vcGwzX2h3ZGVwX25ldyhvcGwzLCAwLCAxLCBOVUxMKSkgPCAwKSB7CisJCS8qIG5lZWQgdG8gdXNlIElEcyAxLCAyIHNpbmNlIElEIDAgaXMgc25kX2F6ZjMzMjhfdGltZXIgYWJvdmUgKi8KKwkJZXJyID0gc25kX29wbDNfdGltZXJfbmV3KG9wbDMsIDEsIDIpOworCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8gb3V0X2VycjsKLQkJfQorCQllcnIgPSBzbmRfb3BsM19od2RlcF9uZXcob3BsMywgMCwgMSwgTlVMTCk7CisJCWlmIChlcnIgPCAwKQorCQkJZ290byBvdXRfZXJyOwogCX0KIAogCW9wbDMtPnByaXZhdGVfZGF0YSA9IGNoaXA7CiAKIAlzcHJpbnRmKGNhcmQtPmxvbmduYW1lLCAiJXMgYXQgMHglbHgsIGlycSAlaSIsCi0JCWNhcmQtPnNob3J0bmFtZSwgY2hpcC0+Y29kZWNfcG9ydCwgY2hpcC0+aXJxKTsKKwkJY2FyZC0+c2hvcnRuYW1lLCBjaGlwLT5jb2RlY19pbywgY2hpcC0+aXJxKTsKIAotCWlmICgoZXJyID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCkpIDwgMCkgeworCWVyciA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNhcmQpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCiAjaWZkZWYgTU9EVUxFCiAJcHJpbnRrKApAQCAtMTg2MSwxOSArMjI3OSwxOCBAQAogCTEwMjQwMDAgLyBzZXF0aW1lcl9zY2FsaW5nLCBzZXF0aW1lcl9zY2FsaW5nKTsKICNlbmRpZgogCi0JaWYgKHNuZF9hemYzMzI4X2NvbmZpZ19qb3lzdGljayhjaGlwLCBkZXYpIDwgMCkKLQkJc25kX2F6ZjMzMjhfaW8yX291dGIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUiwKLQkJCSAgICAgIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUikgJiB+TEVHQUNZX0pPWSk7CisJc25kX2F6ZjMzMjhfZ2FtZXBvcnQoY2hpcCwgZGV2KTsKIAogCXBjaV9zZXRfZHJ2ZGF0YShwY2ksIGNhcmQpOwogCWRldisrOwogCiAJZXJyID0gMDsKIAlnb3RvIG91dDsKLQkKKwogb3V0X2VycjoKKwlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBzb21ldGhpbmcgZmFpbGVkLCBleGl0aW5nXG4iKTsKIAlzbmRfY2FyZF9mcmVlKGNhcmQpOwotCQorCiBvdXQ6CiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIGVycjsKQEAgLTE4OTQsMjcgKzIzMTEsMzEgQEAKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQgPSBwY2lfZ2V0X2RydmRhdGEocGNpKTsKIAlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7Ci0JaW50IHJlZzsKKwl1bnNpZ25lZCByZWc7CiAKIAlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7Ci0JCisKIAlzbmRfcGNtX3N1c3BlbmRfYWxsKGNoaXAtPnBjbSk7CiAKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01JWEVSX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfbWl4ZXJbcmVnXSA9IGludyhjaGlwLT5taXhlcl9wb3J0ICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NSVhFUl9QTSAvIDI7ICsrcmVnKQorCQljaGlwLT5zYXZlZF9yZWdzX21peGVyW3JlZ10gPSBpbncoY2hpcC0+bWl4ZXJfaW8gKyByZWcgKiAyKTsKIAogCS8qIG1ha2Ugc3VyZSB0byBkaXNhYmxlIG1hc3RlciB2b2x1bWUgZXRjLiB0byBwcmV2ZW50IGxvb3Bpbmcgc291bmQgKi8KIAlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDEpOwogCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAxKTsKLQkKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSA9IGludyhjaGlwLT5jb2RlY19wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9JTzJfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19pbzJbcmVnXSA9IGludyhjaGlwLT5pbzJfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTVBVX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10gPSBpbncoY2hpcC0+bXB1X3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX1NZTlRIX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3Nfc3ludGhbcmVnXSA9IGludyhjaGlwLT5zeW50aF9wb3J0ICsgcmVnICogMik7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSA9IGludyhjaGlwLT5jb2RlY19pbyArIHJlZyAqIDIpOworCisJLyogbWFudWFsbHkgc3RvcmUgdGhlIG9uZSBjdXJyZW50bHkgcmVsZXZhbnQgd3JpdGUtb25seSByZWcsIHRvbyAqLworCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbSURYX0lPXzZBSCAvIDJdID0gY2hpcC0+c2hhZG93X3JlZ19jb2RlY182QUg7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0dBTUVfUE0gLyAyOyArK3JlZykKKwkJY2hpcC0+c2F2ZWRfcmVnc19nYW1lW3JlZ10gPSBpbncoY2hpcC0+Z2FtZV9pbyArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTVBVX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10gPSBpbncoY2hpcC0+bXB1X2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9PUEwzX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3Nfb3BsM1tyZWddID0gaW53KGNoaXAtPm9wbDNfaW8gKyByZWcgKiAyKTsKIAogCXBjaV9kaXNhYmxlX2RldmljZShwY2kpOwogCXBjaV9zYXZlX3N0YXRlKHBjaSk7CkBAIC0xOTI3LDcgKzIzNDgsNyBAQAogewogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOwogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKLQlpbnQgcmVnOworCXVuc2lnbmVkIHJlZzsKIAogCXBjaV9zZXRfcG93ZXJfc3RhdGUocGNpLCBQQ0lfRDApOwogCXBjaV9yZXN0b3JlX3N0YXRlKHBjaSk7CkBAIC0xOTM5LDIzICsyMzYwLDIxIEBACiAJfQogCXBjaV9zZXRfbWFzdGVyKHBjaSk7CiAKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0lPMl9QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfaW8yW3JlZ10sIGNoaXAtPmlvMl9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyByZWcrKykKLQkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21wdVtyZWddLCBjaGlwLT5tcHVfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfU1lOVEhfUE0gLyAyOyByZWcrKykKLQkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX3N5bnRoW3JlZ10sIGNoaXAtPnN5bnRoX3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01JWEVSX1BNIC8gMjsgcmVnKyspCi0JCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19taXhlcltyZWddLCBjaGlwLT5taXhlcl9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSwgY2hpcC0+Y29kZWNfcG9ydCArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfR0FNRV9QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfZ2FtZVtyZWddLCBjaGlwLT5nYW1lX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21wdVtyZWddLCBjaGlwLT5tcHVfaW8gKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX09QTDNfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX29wbDNbcmVnXSwgY2hpcC0+b3BsM19pbyArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTUlYRVJfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21peGVyW3JlZ10sIGNoaXAtPm1peGVyX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSwgY2hpcC0+Y29kZWNfaW8gKyByZWcgKiAyKTsKIAogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgotCi0KKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KIAogCiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2F6dDMzMjguaCBiL3NvdW5kL3BjaS9henQzMzI4LmgKaW5kZXggNjc5ZmE5OS4uN2UzZTg5NCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F6dDMzMjguaAorKysgYi9zb3VuZC9wY2kvYXp0MzMyOC5oCkBAIC0xLDcgKzEsOCBAQAogI2lmbmRlZiBfX1NPVU5EX0FaVDMzMjhfSAogI2RlZmluZSBfX1NPVU5EX0FaVDMzMjhfSAogCi0vKiAiUFUiID09ICJwb3dlci11cCB2YWx1ZSIsIGFzIHRlc3RlZCBvbiBQQ0kxNjggUENJIHJldi4gMTAgKi8KKy8qICJQVSIgPT0gInBvd2VyLXVwIHZhbHVlIiwgYXMgdGVzdGVkIG9uIFBDSTE2OCBQQ0kgcmV2LiAxMAorICogIldSSVRFX09OTFkiICA9PSByZWdpc3RlciBkb2VzIG5vdCBpbmRpY2F0ZSBhY3R1YWwgYml0IHZhbHVlcyAqLwogCiAvKioqIG1haW4gSS9PIGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KIC8qIChvbmx5IDB4NzAgb2YgMHg4MCBieXRlcyBzYXZlZC9yZXN0b3JlZCBieSBXaW5kb3dzIGRyaXZlcikgKi8KQEAgLTU0LDcgKzU1LDEwIEBACiAgICNkZWZpbmUgU09VTkRGT1JNQVRfWFRBTDEJCTB4MDAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9YVEFMMgkJMHgwMQogICAgIC8qIGFsbCBfU1VTUEVDVEVEXyB2YWx1ZXMgYXJlIG5vdCB1c2VkIGJ5IFdpbmRvd3MgZHJpdmVycywgc28gd2UgZG9uJ3QKLSAgICAgKiBoYXZlIGFueSBoYXJkIGZhY3RzLCBvbmx5IHJvdWdoIG1lYXN1cmVtZW50cyAqLworICAgICAqIGhhdmUgYW55IGhhcmQgZmFjdHMsIG9ubHkgcm91Z2ggbWVhc3VyZW1lbnRzLgorICAgICAqIEFsbCB3ZSBrbm93IGlzIHRoYXQgdGhlIGNyeXN0YWwgdXNlZCBvbiB0aGUgYm9hcmQgaGFzIDI0LjU3Nk1IeiwKKyAgICAgKiBsaWtlIG1hbnkgc291bmRjYXJkcyAod2hpY2ggcmVzdWx0cyBpbiB0aGUgZnJlcXVlbmNpZXMgYmVsb3cgd2hlbgorICAgICAqIHVzaW5nIGNlcnRhaW4gZGl2aWRlciB2YWx1ZXMgc2VsZWN0ZWQgYnkgdGhlIHZhbHVlcyBiZWxvdykgKi8KICAgICAjZGVmaW5lIFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQwMDAJMHgwYyB8IFNPVU5ERk9STUFUX1hUQUwxCiAgICAgI2RlZmluZSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80ODAwCTB4MGEgfCBTT1VOREZPUk1BVF9YVEFMMQogICAgICNkZWZpbmUgU09VTkRGT1JNQVRfRlJFUV81NTEwCQkweDBjIHwgU09VTkRGT1JNQVRfWFRBTDIKQEAgLTcyLDYgKzc2LDI2IEBACiAgICNkZWZpbmUgU09VTkRGT1JNQVRfRkxBR18xNkJJVAkweDAwMTAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9GTEFHXzJDSEFOTkVMUwkweDAwMjAKIAorLyogZGVmaW5lIGZyZXF1ZW5jeSBoZWxwZXJzLCBmb3IgbWF4aW11bSB2YWx1ZSBzYWZldHkgKi8KK2VudW0gYXpmX2ZyZXFfdCB7CisjZGVmaW5lIEFaRl9GUkVRKHJhdGUpIEFaRl9GUkVRXyMjcmF0ZSA9IHJhdGUKKyAgQVpGX0ZSRVEoNDAwMCksCisgIEFaRl9GUkVRKDQ4MDApLAorICBBWkZfRlJFUSg1NTEyKSwKKyAgQVpGX0ZSRVEoNjYyMCksCisgIEFaRl9GUkVRKDgwMDApLAorICBBWkZfRlJFUSg5NjAwKSwKKyAgQVpGX0ZSRVEoMTEwMjUpLAorICBBWkZfRlJFUSgxMzI0MCksCisgIEFaRl9GUkVRKDE2MDAwKSwKKyAgQVpGX0ZSRVEoMjIwNTApLAorICBBWkZfRlJFUSgzMjAwMCksCisgIEFaRl9GUkVRKDQ0MTAwKSwKKyAgQVpGX0ZSRVEoNDgwMDApLAorICBBWkZfRlJFUSg2NjIwMCksCisjdW5kZWYgQVpGX0ZSRVEKK30gQVpGX0ZSRVFVRU5DSUVTOworCiAvKiogcmVjb3JkaW5nIGFyZWEgKHNlZSBhbHNvOiBwbGF5YmFjayBiaXQgZmxhZyBkZWZpbml0aW9ucykgKiovCiAjZGVmaW5lIElEWF9JT19SRUNfRkxBR1MJMHgyMCAvKiA/PywgUFU6MHgwMDAwICovCiAjZGVmaW5lIElEWF9JT19SRUNfSVJRVFlQRQkweDIyIC8qID8/LCBQVToweDAwMDAgKi8KQEAgLTk3LDQwICsxMjEsMTcxIEBACiAKIC8qKiBEaXJlY3RYIHRpbWVyLCBtYWluIGludGVycnVwdCBhcmVhIChGSVhNRTogYW5kIHNvbWV0aGluZyBlbHNlPykgKiovIAogI2RlZmluZSBJRFhfSU9fVElNRVJfVkFMVUUJMHg2MCAvKiBmb3VuZCB0aGlzIHRpbWVyIGFyZWEgYnkgcHVyZSBsdWNrIDotKSAqLwotICAjZGVmaW5lIFRJTUVSX1ZBTFVFX01BU0sJCTB4MDAwZmZmZmZVTCAvKiB0aW1lciBjb3VudGRvd24gdmFsdWU7IHRyaWdnZXJzIElSUSB3aGVuIHRpbWVyIGlzIGZpbmlzaGVkICovCi0gICNkZWZpbmUgVElNRVJfRU5BQkxFX0NPVU5URE9XTgkweDAxMDAwMDAwVUwgLyogYWN0aXZhdGUgdGhlIHRpbWVyIGNvdW50ZG93biAqLwotICAjZGVmaW5lIFRJTUVSX0VOQUJMRV9JUlEJCTB4MDIwMDAwMDBVTCAvKiB0cmlnZ2VyIHRpbWVyIElSUSBvbiB6ZXJvIHRyYW5zaXRpb24gKi8KLSAgI2RlZmluZSBUSU1FUl9BQ0tfSVJRCQkJMHgwNDAwMDAwMFVMIC8qIGJlaW5nIHNldCBpbiBJUlEgaGFuZGxlciBpbiBjYXNlIHBvcnQgMHgwMCAoaG1tLCBub3QgcG9ydCAweDY0IT8hPykgaGFkIDB4MDAyMCBzZXQgdXBvbiBJUlEgaGFuZGxlciAqLworICAvKiB0aW1lciBjb3VudGRvd24gdmFsdWU7IHRyaWdnZXJzIElSUSB3aGVuIHRpbWVyIGlzIGZpbmlzaGVkICovCisgICNkZWZpbmUgVElNRVJfVkFMVUVfTUFTSwkJMHgwMDBmZmZmZlVMCisgIC8qIGFjdGl2YXRlIHRpbWVyIGNvdW50ZG93biAqLworICAjZGVmaW5lIFRJTUVSX0NPVU5URE9XTl9FTkFCTEUJMHgwMTAwMDAwMFVMCisgIC8qIHRyaWdnZXIgdGltZXIgSVJRIG9uIHplcm8gdHJhbnNpdGlvbiAqLworICAjZGVmaW5lIFRJTUVSX0lSUV9FTkFCTEUJCTB4MDIwMDAwMDBVTAorICAvKiBiZWluZyBzZXQgaW4gSVJRIGhhbmRsZXIgaW4gY2FzZSBwb3J0IDB4MDAgKGhtbSwgbm90IHBvcnQgMHg2NCE/IT8pCisgICAqIGhhZCAweDAwMjAgc2V0IHVwb24gSVJRIGhhbmRsZXIgKi8KKyAgI2RlZmluZSBUSU1FUl9JUlFfQUNLCQkJMHgwNDAwMDAwMFVMCiAjZGVmaW5lIElEWF9JT19JUlFTVEFUVVMgICAgICAgIDB4NjQKLSAgI2RlZmluZSBJUlFfUExBWUJBQ0sJCQkweDAwMDEKLSAgI2RlZmluZSBJUlFfUkVDT1JESU5HCQkJMHgwMDAyCi0gICNkZWZpbmUgSVJRX01QVTQwMQkJCTB4MDAxMAotICAjZGVmaW5lIElSUV9USU1FUgkJCTB4MDAyMCAvKiBEaXJlY3RYIHRpbWVyICovCi0gICNkZWZpbmUgSVJRX1VOS05PV04xCQkJMHgwMDQwIC8qIHByb2JhYmx5IHVudXNlZCwgb3IgcG9zc2libHkgSTJTIHBvcnQ/IG9yIGdhbWVwb3J0IElSUT8gKi8KLSAgI2RlZmluZSBJUlFfVU5LTk9XTjIJCQkweDAwODAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gb3IgZ2FtZXBvcnQgSVJRPyAqLworICAvKiBzb21lIElSUSBiaXQgaW4gaGVyZSBtaWdodCBhbHNvIGJlIHVzZWQgdG8gc2lnbmFsIGEgcG93ZXItbWFuYWdlbWVudCB0aW1lcgorICAgKiB0aW1lb3V0LCB0byByZXF1ZXN0IHNodXRkb3duIG9mIHRoZSBjaGlwIChlLmcuIEFEMTgxNUpTIGhhcyBzdWNoIGEgdGhpbmcpLgorICAgKiBTb21lIE9QTDMgaGFyZHdhcmUgKGUuZy4gaW4gTE00NTYwKSBoYXMgc29tZSBzcGVjaWFsIHRpbWVyIGhhcmR3YXJlIHdoaWNoCisgICAqIGNhbiB0cmlnZ2VyIGFuIE9QTDMgdGltZXIgSVJRLCBzbyBtYXliZSB0aGVyZSdzIHN1Y2ggYSB0aGluZyBhcyB3ZWxsLi4uICovCisKKyAgI2RlZmluZSBJUlFfUExBWUJBQ0sJMHgwMDAxCisgICNkZWZpbmUgSVJRX1JFQ09SRElORwkweDAwMDIKKyAgI2RlZmluZSBJUlFfVU5LTk9XTjEJMHgwMDA0IC8qIG1vc3QgcHJvYmFibHkgSTJTIHBvcnQgKi8KKyAgI2RlZmluZSBJUlFfR0FNRVBPUlQJMHgwMDA4IC8qIEludGVycnVwdCBvZiBEaWdpdGFsKGx5KSBFbmhhbmNlZCBHYW1lIFBvcnQgKi8KKyAgI2RlZmluZSBJUlFfTVBVNDAxCTB4MDAxMAorICAjZGVmaW5lIElSUV9USU1FUgkweDAwMjAgLyogRGlyZWN0WCB0aW1lciAqLworICAjZGVmaW5lIElSUV9VTktOT1dOMgkweDAwNDAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gKi8KKyAgI2RlZmluZSBJUlFfVU5LTk9XTjMJMHgwMDgwIC8qIHByb2JhYmx5IHVudXNlZCwgb3IgcG9zc2libHkgSTJTIHBvcnQ/ICovCiAjZGVmaW5lIElEWF9JT182NkgJCTB4NjYgICAgLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDAwMDAgKi8KLSNkZWZpbmUgSURYX0lPX1NPTUVfVkFMVUUJMHg2OAkvKiB0aGlzIGlzIHNldCB0byBlLmcuIDB4M2ZmIG9yIDB4MzAwLCBhbmQgd3JpdGFibGU7IG1heWJlIHNvbWUgYnVmZmVyIGxpbWl0LCBidXQgSSBjb3VsZG4ndCBmaW5kIG91dCBtb3JlLCBQVToweDAwZmYgKi8KLSNkZWZpbmUgSURYX0lPXzZBSAkJMHg2QQkvKiB0aGlzIFdPUkQgY2FuIGJlIHNldCB0byBoYXZlIGJpdHMgMHgwMDI4IGFjdGl2YXRlZCAoRklYTUU6IGNvcnJlY3Q/Pyk7IGFjdHVhbGx5IGluaGliaXRzIFBDTSBwbGF5YmFjayEhISBtYXliZSBwb3dlciBtYW5hZ2VtZW50Pz8gKi8KLSAgI2RlZmluZSBJT182QV9QQVVTRV9QTEFZQkFDSwkJMHgwMjAwIC8qIGJpdCA5OyBzdXJlLCB0aGlzIHBhdXNlcyBwbGF5YmFjaywgYnV0IHdoYXQgdGhlIGhlY2sgaXMgdGhpcyByZWFsbHkgYWJvdXQ/PyAqLwotI2RlZmluZSBJRFhfSU9fNkNICQkweDZDCi0jZGVmaW5lIElEWF9JT182RUgJCTB4NkUJLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDgzZmUgKi8KLS8qIGZ1cnRoZXIgSS9PIGluZGljZXMgbm90IHNhdmVkL3Jlc3RvcmVkLCBzbyBwcm9iYWJseSBub3QgdXNlZCAqLworICAvKiB0aGlzIGlzIHNldCB0byBlLmcuIDB4M2ZmIG9yIDB4MzAwLCBhbmQgd3JpdGFibGU7CisgICAqIG1heWJlIHNvbWUgYnVmZmVyIGxpbWl0LCBidXQgSSBjb3VsZG4ndCBmaW5kIG91dCBtb3JlLCBQVToweDAwZmY6ICovCisjZGVmaW5lIElEWF9JT19TT01FX1ZBTFVFCTB4NjgKKyAgI2RlZmluZSBJT182OF9SQU5ET01fVE9HR0xFMQkweDAxMDAJLyogdG9nZ2xlcyByYW5kb21seSAqLworICAjZGVmaW5lIElPXzY4X1JBTkRPTV9UT0dHTEUyCTB4MDIwMAkvKiB0b2dnbGVzIHJhbmRvbWx5ICovCisgIC8qIHVtbSwgbm9wZSwgYmVoYXZpb3VyIG9mIHRoZXNlIGJpdHMgY2hhbmdlcyBkZXBlbmRpbmcgb24gd2hhdCB3ZSB3cm90ZQorICAgKiB0byAweDZiISEKKyAgICogQW5kIHRoZXkgY2hhbmdlIHVwb24gcGxheWJhY2svc3RvcCwgdG9vOgorICAgKiBXcml0aW5nIGEgdmFsdWUgdG8gMHg2OCB3aWxsIGRpc3BsYXkgdGhpcyBleGFjdCB2YWx1ZSBkdXJpbmcgcGxheWJhY2ssCisgICAqIHRvbyBidXQgd2hlbiBzdG9wcGVkIGl0IGNhbiBmYWxsIGJhY2sgdG8gYSByYXRoZXIgZGlmZmVyZW50CisgICAqIHNlZW1pbmdseSByYW5kb20gdmFsdWUpLiBIbW0sIHBvc3NpYmx5IHRoaXMgaXMgYSByZWdpc3RlciB3aGljaAorICAgKiBoYXMgYSByZW1vdGUgc2hhZG93IHdoaWNoIG5lZWRzIHByb3BlciBkZXZpY2Ugc3VwcGx5IHdoaWNoIG9ubHkgZXhpc3RzCisgICAqIGluIGNhc2UgcGxheWJhY2sgaXMgYWN0aXZlPyBPciBpcyB0aGlzIGRyaXZlci1pbmR1Y2VkPworICAgKi8KKworLyogdGhpcyBXT1JEIGNhbiBiZSBzZXQgdG8gaGF2ZSBiaXRzIDB4MDAyOCBhY3RpdmF0ZWQgKEZJWE1FOiBjb3JyZWN0Pz8pOworICogYWN0dWFsbHkgaW5oaWJpdHMgUENNIHBsYXliYWNrISEhIG1heWJlIHBvd2VyIG1hbmFnZW1lbnQ/PzogKi8KKyNkZWZpbmUgSURYX0lPXzZBSAkJMHg2QSAvKiBXUklURV9PTkxZISAqLworICAvKiBiaXQgNTogZW5hYmxpbmcgdGhpcyB3aWxsIGFjdGl2YXRlIHBlcm1hbmVudCBjb3VudGluZyBvZiBieXRlcyAyLzMKKyAgICogYXQgZ2FtZXBvcnQgSS9PICgweGI0MDIvMykgKGVxdWFsIHZhbHVlcyBlYWNoKSBhbmQgY2F1c2UKKyAgICogZ2FtZXBvcnQgbGVnYWN5IEkvTyBhdCAweDAyMDAgdG8gYmUgX0RJU0FCTEVEXyEKKyAgICogSXMgdGhpcyBEaWdpdGFsIEVuaGFuY2VkIEdhbWUgUG9ydCBFbmFibGU/Pz8gT3IgbWF5YmUgaXQncyBUZXN0bW9kZQorICAgKiBmb3IgRW5oYW5jZWQgRGlnaXRhbCBHYW1lcG9ydCAoc2VlIDREIFdhdmUgRFggY2FyZCk6ICovCisgICNkZWZpbmUgSU9fNkFfU09NRVRISU5HMV9HQU1FUE9SVAkweDAwMjAKKyAgLyogYml0IDg7IHN1cmUsIHRoaXMgX3BhdXNlc18gcGxheWJhY2sgKGxhdGVyIHJlc3VtZXMgYXQgc2FtZSBzcG90ISksCisgICAqIGJ1dCB3aGF0IHRoZSBoZWNrIGlzIHRoaXMgcmVhbGx5IGFib3V0Pz86ICovCisgICNkZWZpbmUgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOAkweDAxMDAKKyAgLyogYml0IDk7IHN1cmUsIHRoaXMgX3BhdXNlc18gcGxheWJhY2sgKGxhdGVyIHJlc3VtZXMgYXQgc2FtZSBzcG90ISksCisgICAqIGJ1dCB3aGF0IHRoZSBoZWNrIGlzIHRoaXMgcmVhbGx5IGFib3V0Pz86ICovCisgICNkZWZpbmUgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOQkweDAyMDAKKwkvKiBCSVQ4IGFuZCBCSVQ5IGFyZSBfTk9UXyBhYmxlIHRvIGFmZmVjdCBPUEwzIE1JREkgcGxheWJhY2ssCisJICogdGh1cyBpdCBzdWdnZXN0cyBpbmZsdWVuY2Ugb24gUENNIG9ubHkhIQorCSAqIEhvd2V2ZXIgT1RPSCB0aGVyZSBzZWVtcyB0byBiZSBubyBiaXQgYW55d2hlcmUgYXJvdW5kIGhlcmUKKwkgKiB3aGljaCBpcyBhYmxlIHRvIGRpc2FibGUgT1BMMy4uLiAqLworICAvKiBiaXQgMTA6IGVuYWJsaW5nIHRoaXMgYWN0dWFsbHkgY2hhbmdlcyB2YWx1ZXMgYXQgbGVnYWN5IGdhbWVwb3J0CisgICAqIEkvTyBhZGRyZXNzICgweDIwMCk7IGlzIHRoaXMgZW5hYmxpbmcgb2YgdGhlIERpZ2l0YWwgRW5oYW5jZWQgR2FtZSBQb3J0Pz8/CisgICAqIE9yIG1heWJlIHRoaXMgc2ltcGx5IHN3aXRjaGVzIG9mZiB0aGUgTkU1NTggY2lyY3VpdCwgc2luY2UgZW5hYmxpbmcgdGhpcworICAgKiBzdGlsbCBsZXRzIHVzIGV2YWx1YXRlIGJ1dHRvbiBzdGF0ZXMsIGJ1dCBub3QgYXhpcyBzdGF0ZXMgKi8KKyAgI2RlZmluZSBJT182QV9TT01FVEhJTkcyX0dBTUVQT1JUICAgICAgMHgwNDAwCisJLyogd3JpdGluZyAweDAzMDA6IGNhdXNlcyBxdWl0ZSBzb21lIGNyYWNrbGluZyBkdXJpbmcKKwkgKiBQQyBhY3Rpdml0eSBzdWNoIGFzIHN3aXRjaGluZyB3aW5kb3dzIChQQ0kgdHJhZmZpYz8/CisJICogLS0+IEZJRk8vdGltaW5nIHNldHRpbmdzPz8/KSAqLworCS8qIHdyaXRpbmcgMHgwMTAwIHBsdXMvb3IgMHgwMjAwIGluaGliaXRzIHBsYXliYWNrICovCisJLyogc2luY2UgdGhlIFdpbmRvd3MgLklORiBmaWxlIGhhcyBGbGFnX0VuYWJsZV9Kb3lTdGljayBhbmQKKwkgKiBGbGFnX0VuYWJsZV9TQl9ET1NfRW11bGF0aW9uIGRpcmVjdGx5IHRvZ2V0aGVyLCBpdCBzdGFuZHMgdG8gcmVhc29uCisJICogdGhhdCBzb21lIG90aGVyIGJpdCBpbiB0aGlzIHNhbWUgcmVnaXN0ZXIgbWlnaHQgYmUgcmVzcG9uc2libGUKKwkgKiBmb3IgU0IgRE9TIEVtdWxhdGlvbiBhY3RpdmF0aW9uIChub3RlIHRoYXQgdGhlIGZpbGUgZGlkIE5PVCBkZWZpbmUKKwkgKiBhIHN3aXRjaCBmb3IgT1BMMyEpICovCisjZGVmaW5lIElEWF9JT182Q0gJCTB4NkMJLyogdW5rbm93bjsgZnVsbHkgcmVhZC13cml0YWJsZSAqLworI2RlZmluZSBJRFhfSU9fNkVICQkweDZFCisJLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDgzZmUgKG9yIDB4MDNmZSBvbmx5KS4KKwkgKiB3cml0aW5nIDB4ODMgKGFuZCBvbmx5IDB4ODMhISkgdG8gMHg2ZiB3aWxsIGNhdXNlIDB4NmMgdG8gc3dpdGNoCisJICogZnJvbSAwMDAwIHRvIGZmZmYuICovCisKKy8qIGZ1cnRoZXIgSS9PIGluZGljZXMgbm90IHNhdmVkL3Jlc3RvcmVkIGFuZCBub3QgcmVhZGFibGUgYWZ0ZXIgd3JpdGluZywKKyAqIHNvIHByb2JhYmx5IG5vdCB1c2VkICovCiAKIAotLyoqKiBJL08gMiBhcmVhIHBvcnQgaW5kaWNlcyAqKiovCisvKioqIEdhbWVwb3J0IGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KIC8qIChvbmx5IDB4MDYgb2YgMHgwOCBieXRlcyBzYXZlZC9yZXN0b3JlZCBieSBXaW5kb3dzIGRyaXZlcikgKi8gCi0jZGVmaW5lIEFaRl9JT19TSVpFX0lPMgkJMHgwOAotI2RlZmluZSBBWkZfSU9fU0laRV9JTzJfUE0JMHgwNgorI2RlZmluZSBBWkZfSU9fU0laRV9HQU1FCQkweDA4CisjZGVmaW5lIEFaRl9JT19TSVpFX0dBTUVfUE0JMHgwNgogCi0jZGVmaW5lIElEWF9JTzJfTEVHQUNZX0FERFIJMHgwNAotICAjZGVmaW5lIExFR0FDWV9TT01FVEhJTkcJCTB4MDEgLyogT1BMMz8/ICovCi0gICNkZWZpbmUgTEVHQUNZX0pPWQkJCTB4MDgKK2VudW0geworCUFaRl9HQU1FX0xFR0FDWV9JT19QT1JUID0gMHgyMDAKK30gQVpGX0dBTUVfQ09ORklHUzsKIAorI2RlZmluZSBJRFhfR0FNRV9MRUdBQ1lfQ09NUEFUSUJMRQkweDAwCisJLyogaW4gc29tZSBvcGVyYXRpb24gbW9kZSwgd3JpdGluZyBhbnl0aGluZyB0byB0aGlzIHBvcnQKKwkgKiB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQ6CisJICogeXVwLCB0aGF0J3MgaW4gY2FzZSBJRFhfR0FNRV8wMUggaGFzIG9uZSBvZiB0aGUKKwkgKiBheGlzIG1lYXN1cmVtZW50IGJpdHMgZW5hYmxlZAorCSAqIChhbmQgb2YgY291cnNlIG9uZSBuZWVkcyB0byBoYXZlIEdBTUVfSFdDRkdfSVJRX0VOQUJMRSwgdG9vKSAqLworCisjZGVmaW5lIElEWF9HQU1FX0FYRVNfQ09ORklHICAgICAgICAgICAgMHgwMQorCS8qIE5PVEU6IGxheW91dCBvZiB0aGlzIHJlZ2lzdGVyIGF3ZnVsbHkgc2ltaWxhciAocmVhZDogImlkZW50aWNhbD8/IikKKwkgKiB0byBBRDE4MTVKUy5wZGYgKHAuMjkpICovCisKKyAgLyogZW5hYmxlcyBheGlzIDEgKFggYXhpcykgbWVhc3VyZW1lbnQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0VOQUJMRV8xCQkweDAxCisgIC8qIGVuYWJsZXMgYXhpcyAyIChZIGF4aXMpIG1lYXN1cmVtZW50OiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19FTkFCTEVfMgkJMHgwMgorICAvKiBlbmFibGVzIGF4aXMgMyAoWCBheGlzKSBtZWFzdXJlbWVudDogKi8KKyAgI2RlZmluZSBHQU1FX0FYRVNfRU5BQkxFXzMJCTB4MDQKKyAgLyogZW5hYmxlcyBheGlzIDQgKFkgYXhpcykgbWVhc3VyZW1lbnQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0VOQUJMRV80CQkweDA4CisgIC8qIHNlbGVjdHMgdGhlIGN1cnJlbnQgYXhpcyB0byByZWFkIHRoZSBtZWFzdXJlZCB2YWx1ZSBvZgorICAgKiAoYXQgSURYX0dBTUVfQVhJU19WQUxVRSk6CisgICAqIDAwID0gYXhpcyAxLCAwMSA9IGF4aXMgMiwgMTAgPSBheGlzIDMsIDExID0gYXhpcyA0OiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19SRUFEX01BU0sJCTB4MzAKKyAgLyogZW5hYmxlIHRvIGhhdmUgdGhlIGxhdGNoIGNvbnRpbnVvdXNseSBhY2NlcHQgQURDIHZhbHVlcworICAgKiAoYW5kIGNvbnRpbnVvdXNseSBjYXVzZSBpbnRlcnJ1cHRzIGluIGNhc2UgaW50ZXJydXB0cyBhcmUgZW5hYmxlZCk7CisgICAqIEFEMTgxNUpTLnBkZiBzYXlzIGl0J3MgfjE2bXMgaW50ZXJ2YWwgdGhlcmU6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0xBVENIX0VOQUJMRQkweDQwCisgIC8qIGpveXN0aWNrIGRhdGEgKG1lYXN1cmVkIGF4ZXMpIHJlYWR5IGZvciByZWFkaW5nOiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19TQU1QTElOR19SRUFEWQkweDgwCisKKyAgLyogTk9URTogb3RoZXIgY2FyZCBzcGVjcyAoU2lTOTYwIGFuZCBvdGhlcnMhKSBzdGF0ZSB0aGF0IHRoZQorICAgKiBnYW1lIHBvc2l0aW9uIGxhdGNoZXMgc2hvdWxkIGJlIGZyb3plbiB3aGVuIHJlYWRpbmcgYW5kIGJlIGZyZWVkCisgICAqICg9PSByZXNldD8pIGFmdGVyIHJlYWRpbmchISEKKyAgICogRnJlZXppbmcgbW9zdCBsaWtlbHkgbWVhbnMgZGlzYWJsaW5nIDB4NDAgKEdBTUVfQVhFU19MQVRDSF9FTkFCTEUpLAorICAgKiAgYnV0IGhvdyB0byBmcmVlIHRoZSB2YWx1ZT8gKi8KKyAgLyogQW4gaW50ZXJuZXQgc2VhcmNoIGZvciAiZ2FtZXBvcnQgbGF0Y2ggQURDIiBzaG91bGQgcHJvdmlkZSBzb21lIGluc2lnaHQKKyAgICogaW50byBob3cgdG8gcHJvZ3JhbSBzdWNoIGEgZ2FtZXBvcnQgc3lzdGVtLiAqLworCisgIC8qIHdyaXRpbmcgMHhmMCB0byAwMUggb25jZSByZXNldCBib3RoIGNvdW50ZXJzIHRvIDAsIGluIHNvbWUgc3BlY2lhbCBtb2RlIT8KKyAgICogeXVwLCBpbiBjYXNlIDZBSCAweDIwIGlzIG5vdCBlbmFibGVkCisgICAqIChhbmQgMHg0MCBpcyBzdWZmaWNpZW50LCAweGYwIGlzIG5vdCBuZWVkZWQpICovCisKKyNkZWZpbmUgSURYX0dBTUVfQVhJU19WQUxVRQkweDAyCisJLyogUjogdmFsdWUgb2YgY3VycmVudGx5IGNvbmZpZ3VyZWQgYXhpcyAod29yZCB2YWx1ZSEpOworCSAqIFc6IHRyaWdnZXIgYXhpcyBtZWFzdXJlbWVudCAqLworCisjZGVmaW5lIElEWF9HQU1FX0hXQ09ORklHCTB4MDQKKwkvKiBub3RlOiBiaXRzIDQgdG8gNyBhcmUgbmV2ZXIgc2V0ICg9PSAwKSB3aGVuIHJlYWRpbmchCisJICogLS0+IHJlc2VydmVkIGJpdHM/ICovCisgIC8qIGVuYWJsZXMgSVJRIG5vdGlmaWNhdGlvbiB1cG9uIGF4ZXMgbWVhc3VyZW1lbnQgcmVhZHk6ICovCisgICNkZWZpbmUgR0FNRV9IV0NGR19JUlFfRU5BQkxFCQkJMHgwMQorICAvKiB0aGVzZSBiaXRzIGNob29zZSBhIGRpZmZlcmVudCBmcmVxdWVuY3kgZm9yIHRoZQorICAgKiAgaW50ZXJuYWwgQURDIGNvdW50ZXIgaW5jcmVtZW50LgorICAgKiBobW0sIHNlZW1zIHRvIGJlIGEgY29tYm8gb2YgYml0czoKKyAgICogMDAgLS0+IHN0YW5kYXJkIGZyZXF1ZW5jeQorICAgKiAxMCAtLT4gMS8yCisgICAqIDAxIC0tPiAxLzIwCisgICAqIDExIC0tPiAxLzIwMDogKi8KKyAgI2RlZmluZSBHQU1FX0hXQ0ZHX0FEQ19DT1VOVEVSX0ZSRVFfTUFTSwkweDA2CisKKyAgLyogZW5hYmxlIGdhbWVwb3J0IGxlZ2FjeSBJL08gYWRkcmVzcyAoMHgyMDApCisgICAqIEkgd2FzIHVuYWJsZSB0byBsb2NhdGUgYW55IGNvbmZpZ3VyYWJpbGl0eSBmb3IgYSBkaWZmZXJlbnQgYWRkcmVzczogKi8KKyAgI2RlZmluZSBHQU1FX0hXQ0ZHX0xFR0FDWV9BRERSRVNTX0VOQUJMRQkweDA4CisKKy8qKiogTVBVNDAxICoqKi8KICNkZWZpbmUgQVpGX0lPX1NJWkVfTVBVCQkweDA0CiAjZGVmaW5lIEFaRl9JT19TSVpFX01QVV9QTQkweDA0CiAKLSNkZWZpbmUgQVpGX0lPX1NJWkVfU1lOVEgJMHgwOAotI2RlZmluZSBBWkZfSU9fU0laRV9TWU5USF9QTQkweDA2CisvKioqIE9QTDMgc3ludGggKioqLworI2RlZmluZSBBWkZfSU9fU0laRV9PUEwzCTB4MDgKKyNkZWZpbmUgQVpGX0lPX1NJWkVfT1BMM19QTQkweDA2CisvKiBobW0sIGdpdmVuIHRoYXQgYSBzdGFuZGFyZCBPUEwzIGhhcyA0IHJlZ2lzdGVycyBvbmx5LAorICogdGhlcmUgbWlnaHQgYmUgc29tZSBlbmhhbmNlZCBmdW5jdGlvbmFsaXR5IGx1cmtpbmcgYXQgdGhlIGVuZAorICogKGVzcGVjaWFsbHkgc2luY2UgcmVnaXN0ZXIgMHgwNCBoYXMgYSAibm9uLWVtcHR5IiB2YWx1ZSAweGZlKSAqLwogCiAvKioqIG1peGVyIEkvTyBhcmVhIHBvcnQgaW5kaWNlcyAqKiovCiAvKiAob25seSAweDIyIG9mIDB4NDAgYnl0ZXMgc2F2ZWQvcmVzdG9yZWQgYnkgV2luZG93cyBkcml2ZXIpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvY2EwMTA2L2NhMDEwNl9tYWluLmMgYi9zb3VuZC9wY2kvY2EwMTA2L2NhMDEwNl9tYWluLmMKaW5kZXggZWNiZTc5Yi4uMmY4YjI4YSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2NhMDEwNi9jYTAxMDZfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS9jYTAxMDYvY2EwMTA2X21haW4uYwpAQCAtMjQ5LDYgKzI0OSwxMSBAQAogCSAgIC5uYW1lICAgPSAiTVNJIEs4TiBEaWFtb25kIE1CIFtTQjA0MzhdIiwKIAkgICAuZ3Bpb190eXBlID0gMiwKIAkgICAuaTJjX2FkYyA9IDEgfSAsCisJIC8qIEFub3RoZXIgTVNJIEs4TiBEaWFtb25kIE1CLCB3aGljaCBoYXMgYXBwcmVudGx5IGEgZGlmZmVyZW50IFNTSUQgKi8KKwkgeyAuc2VyaWFsID0gMHgxMDA5MTEwMiwKKwkgICAubmFtZSAgID0gIk1TSSBLOE4gRGlhbW9uZCBNQiIsCisJICAgLmdwaW9fdHlwZSA9IDIsCisJICAgLmkyY19hZGMgPSAxIH0gLAogCSAvKiBTaHV0dGxlIFhQQyBTRDMxUCB3aGljaCBoYXMgYW4gb25ib2FyZCBDcmVhdGl2ZSBMYWJzCiAJICAqIFNvdW5kIEJsYXN0ZXIgTGl2ZSEgMjQtYml0IEVBWAogCSAgKiBoaWdoLWRlZmluaXRpb24gNy4xIGF1ZGlvIHByb2Nlc3NvciIuCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvZW11MTBrMS9lbXUxMGsxX21haW4uYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCmluZGV4IDU0OGM5Y2MuLjJmMjgzZWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCkBAIC0xNTI4LDYgKzE1MjgsNyBAQAogCSAuY2EwMTUxX2NoaXAgPSAxLAogCSAuc3BrNzEgPSAxLAogCSAuc3BkaWZfYnVnID0gMSwKKwkgLmludmVydF9zaGFyZWRfc3BkaWYgPSAxLAkvKiBkaWdpdGFsL2FuYWxvZyBzd2l0Y2ggc3dhcHBlZCAqLwogCSAuYWRjXzEzNjF0ID0gMSwgIC8qIDI0IGJpdCBjYXB0dXJlIGluc3RlYWQgb2YgMTZiaXQuIEZpeGVzIEFMU0EgYnVnIzMyNCAqLwogCSAuYWM5N19jaGlwID0gMX0gLAogCXsudmVuZG9yID0gMHgxMTAyLCAuZGV2aWNlID0gMHgwMDA0LCAucmV2aXNpb24gPSAweDA0LApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvZW11bWl4ZXIuYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdW1peGVyLmMKaW5kZXggZmQyMjEyMC4uZjM0YmJmYiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2VtdTEwazEvZW11bWl4ZXIuYworKysgYi9zb3VuZC9wY2kvZW11MTBrMS9lbXVtaXhlci5jCkBAIC0xNTc4LDYgKzE1NzgsMTAgQEAKIAkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBpbmwoZW11LT5wb3J0ICsgQV9JT0NGRykgJiBBX0lPQ0ZHX0dQT1VUMCA/IDEgOiAwOwogCWVsc2UKIAkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBpbmwoZW11LT5wb3J0ICsgSENGRykgJiBIQ0ZHX0dQT1VUMCA/IDEgOiAwOworCWlmIChlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5pbnZlcnRfc2hhcmVkX3NwZGlmKQorCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9CisJCQkhdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJCQogCXJldHVybiAwOwogfQogCkBAIC0xNTg2LDE1ICsxNTkwLDE4IEBACiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBpbnQgcmVnLCB2YWw7CisJdW5zaWduZWQgaW50IHJlZywgdmFsLCBzdzsKIAlpbnQgY2hhbmdlID0gMDsKIAorCXN3ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJaWYgKGVtdS0+Y2FyZF9jYXBhYmlsaXRpZXMtPmludmVydF9zaGFyZWRfc3BkaWYpCisJCXN3ID0gIXN3OwogCXNwaW5fbG9ja19pcnFzYXZlKCZlbXUtPnJlZ19sb2NrLCBmbGFncyk7CiAJaWYgKCBlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5pMmNfYWRjKSB7CiAJCS8qIERvIG5vdGhpbmcgZm9yIEF1ZGlneSAyIFpTIE5vdGVib29rICovCiAJfSBlbHNlIGlmIChlbXUtPmF1ZGlneSkgewogCQlyZWcgPSBpbmwoZW11LT5wb3J0ICsgQV9JT0NGRyk7Ci0JCXZhbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID8gQV9JT0NGR19HUE9VVDAgOiAwOworCQl2YWwgPSBzdyA/IEFfSU9DRkdfR1BPVVQwIDogMDsKIAkJY2hhbmdlID0gKHJlZyAmIEFfSU9DRkdfR1BPVVQwKSAhPSB2YWw7CiAJCWlmIChjaGFuZ2UpIHsKIAkJCXJlZyAmPSB+QV9JT0NGR19HUE9VVDA7CkBAIC0xNjAzLDcgKzE2MTAsNyBAQAogCQl9CiAJfQogCXJlZyA9IGlubChlbXUtPnBvcnQgKyBIQ0ZHKTsKLQl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA/IEhDRkdfR1BPVVQwIDogMDsKKwl2YWwgPSBzdyA/IEhDRkdfR1BPVVQwIDogMDsKIAljaGFuZ2UgfD0gKHJlZyAmIEhDRkdfR1BPVVQwKSAhPSB2YWw7CiAJaWYgKGNoYW5nZSkgewogCQlyZWcgJj0gfkhDRkdfR1BPVVQwOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvbWVtb3J5LmMgYi9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYwppbmRleCA5MTZjMWRiLi43ZDM3OWY1IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYworKysgYi9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYwpAQCAtNDM3LDQzICs0MzcsNDkgQEAKIAkqbGFzdF9wYWdlX3JldCA9IGxhc3RfcGFnZTsKIH0KIAorLyogcmVsZWFzZSBhbGxvY2F0ZWQgcGFnZXMgKi8KK3N0YXRpYyB2b2lkIF9fc3ludGhfZnJlZV9wYWdlcyhzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSwgaW50IGZpcnN0X3BhZ2UsCisJCQkgICAgICAgaW50IGxhc3RfcGFnZSkKK3sKKwlpbnQgcGFnZTsKKworCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKKwkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0pOworCQllbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXSA9IDA7CisJCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBOVUxMOworCX0KK30KKwogLyoKICAqIGFsbG9jYXRlIGtlcm5lbCBwYWdlcwogICovCiBzdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfZW11MTBrMSAqZW11LCBzdHJ1Y3Qgc25kX2VtdTEwazFfbWVtYmxrICpibGspCiB7CiAJaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKIAogCWVtdTEwazFfbWVtYmxrX2luaXQoYmxrKTsKIAlnZXRfc2luZ2xlX3BhZ2VfcmFuZ2UoZW11LT5tZW1oZHIsIGJsaywgJmZpcnN0X3BhZ2UsICZsYXN0X3BhZ2UpOwogCS8qIGFsbG9jYXRlIGtlcm5lbCBwYWdlcyAqLwogCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKLQkJaWYgKHNuZF9kbWFfYWxsb2NfcGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKGVtdS0+cGNpKSwKLQkJCQkJUEFHRV9TSVpFLCAmZG1hYikgPCAwKQotCQkJZ290byBfX2ZhaWw7Ci0JCWlmICghIGlzX3ZhbGlkX3BhZ2UoZW11LCBkbWFiLmFkZHIpKSB7Ci0JCQlzbmRfZG1hX2ZyZWVfcGFnZXMoJmRtYWIpOwotCQkJZ290byBfX2ZhaWw7CisJCS8qIGZpcnN0IHRyeSB0byBhbGxvY2F0ZSBmcm9tIDw0R0Igem9uZSAqLworCQlzdHJ1Y3QgcGFnZSAqcCA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEzMiB8CisJCQkJCSAgICBfX0dGUF9OT1dBUk4pOworCQlpZiAoIXAgfHwgKHBhZ2VfdG9fcGZuKHApICYgfihlbXUtPmRtYV9tYXNrID4+IFBBR0VfU0hJRlQpKSkgeworCQkJaWYgKHApCisJCQkJX19mcmVlX3BhZ2UocCk7CisJCQkvKiB0cnkgdG8gYWxsb2NhdGUgZnJvbSA8MTZNQiB6b25lICovCisJCQlwID0gYWxsb2NfcGFnZShHRlBfQVRPTUlDIHwgR0ZQX0RNQSB8CisJCQkJICAgICAgIF9fR0ZQX05PUkVUUlkgfCAvKiBubyBPT00ta2lsbGVyICovCisJCQkJICAgICAgIF9fR0ZQX05PV0FSTik7CiAJCX0KLQkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSBkbWFiLmFkZHI7Ci0JCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBkbWFiLmFyZWE7CisJCWlmICghcCkgeworCQkJX19zeW50aF9mcmVlX3BhZ2VzKGVtdSwgZmlyc3RfcGFnZSwgcGFnZSAtIDEpOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSBwYWdlX3RvX3BoeXMocCk7CisJCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBwYWdlX2FkZHJlc3MocCk7CiAJfQogCXJldHVybiAwOwotCi1fX2ZhaWw6Ci0JLyogcmVsZWFzZSBhbGxvY2F0ZWQgcGFnZXMgKi8KLQlsYXN0X3BhZ2UgPSBwYWdlIC0gMTsKLQlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKSB7Ci0JCWRtYWIuYXJlYSA9IGVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV07Ci0JCWRtYWIuYWRkciA9IGVtdS0+cGFnZV9hZGRyX3RhYmxlW3BhZ2VdOwotCQlkbWFiLmJ5dGVzID0gUEFHRV9TSVpFOwotCQlzbmRfZG1hX2ZyZWVfcGFnZXMoJmRtYWIpOwotCQllbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXSA9IDA7Ci0JCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBOVUxMOwotCX0KLQotCXJldHVybiAtRU5PTUVNOwogfQogCiAvKgpAQCAtNDgxLDIzICs0ODcsMTAgQEAKICAqLwogc3RhdGljIGludCBzeW50aF9mcmVlX3BhZ2VzKHN0cnVjdCBzbmRfZW11MTBrMSAqZW11LCBzdHJ1Y3Qgc25kX2VtdTEwazFfbWVtYmxrICpibGspCiB7Ci0JaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKKwlpbnQgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwogCiAJZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKGVtdS0+bWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQlkbWFiLmRldi50eXBlID0gU05EUlZfRE1BX1RZUEVfREVWOwotCWRtYWIuZGV2LmRldiA9IHNuZF9kbWFfcGNpX2RhdGEoZW11LT5wY2kpOwotCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKLQkJaWYgKGVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPT0gTlVMTCkKLQkJCWNvbnRpbnVlOwotCQlkbWFiLmFyZWEgPSBlbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdOwotCQlkbWFiLmFkZHIgPSBlbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXTsKLQkJZG1hYi5ieXRlcyA9IFBBR0VfU0laRTsKLQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSAwOwotCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gTlVMTDsKLQl9Ci0KKwlfX3N5bnRoX2ZyZWVfcGFnZXMoZW11LCBmaXJzdF9wYWdlLCBsYXN0X3BhZ2UpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jIGIvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYwppbmRleCBhNmJlNmUzLi5kMmUxMDkzIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmMKQEAgLTIzMzUsNyArMjMzNSw3IEBACiAJaWYgKCF0YmwpCiAJCXJldHVybiAtMTsKIAlpZiAodGJsLT52YWx1ZSA+PSAwICYmIHRibC0+dmFsdWUgPCBudW1fY29uZmlncykgewotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJCWNoYXIgdG1wWzEwXTsKIAkJY29uc3QgY2hhciAqbW9kZWwgPSBOVUxMOwogCQlpZiAobW9kZWxzKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuaCBiL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmgKaW5kZXggZGNkMzkwYi4uZWZjNjgyOCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuaAorKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5oCkBAIC03OCw3ICs3OCw3IEBACiAjZGVmaW5lIEFDX1ZFUkJfR0VUX0JFRVBfQ09OVFJPTAkJMHgwZjBhCiAjZGVmaW5lIEFDX1ZFUkJfR0VUX0VBUERfQlRMRU5BQkxFCQkweDBmMGMKICNkZWZpbmUgQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzEJCTB4MGYwZAotI2RlZmluZSBBQ19WRVJCX0dFVF9ESUdJX0NPTlZFUlRfMgkJMHgwZjBlCisjZGVmaW5lIEFDX1ZFUkJfR0VUX0RJR0lfQ09OVkVSVF8yCQkweDBmMGUgLyogdW51c2VkICovCiAjZGVmaW5lIEFDX1ZFUkJfR0VUX1ZPTFVNRV9LTk9CX0NPTlRST0wJCTB4MGYwZgogLyogZjEwLWYxYTogR1BJTyAqLwogI2RlZmluZSBBQ19WRVJCX0dFVF9HUElPX0RBVEEJCQkweDBmMTUKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2h3ZGVwLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9od2RlcC5jCmluZGV4IDIxNzdkOWEuLjZlMThhNDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2h3ZGVwLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfaHdkZXAuYwpAQCAtODgsNyArODgsNyBAQAogCiBzdGF0aWMgaW50IGhkYV9od2RlcF9vcGVuKHN0cnVjdCBzbmRfaHdkZXAgKmh3LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLSNpZm5kZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZm5kZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQogCQlyZXR1cm4gLUVBQ0NFUzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYyBiL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMKaW5kZXggYjNhNjE4ZS4uMTY3MTVhNiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCkBAIC01NSw2ICs1NSw3IEBACiBzdGF0aWMgaW50IGVuYWJsZVtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0VOQUJMRV9QTlA7CiBzdGF0aWMgY2hhciAqbW9kZWxbU05EUlZfQ0FSRFNdOwogc3RhdGljIGludCBwb3NpdGlvbl9maXhbU05EUlZfQ0FSRFNdOworc3RhdGljIGludCBiZGxfcG9zX2FkaltTTkRSVl9DQVJEU10gPSB7WzAgLi4uIChTTkRSVl9DQVJEUy0xKV0gPSAtMX07CiBzdGF0aWMgaW50IHByb2JlX21hc2tbU05EUlZfQ0FSRFNdID0ge1swIC4uLiAoU05EUlZfQ0FSRFMtMSldID0gLTF9Owogc3RhdGljIGludCBzaW5nbGVfY21kOwogc3RhdGljIGludCBlbmFibGVfbXNpOwpAQCAtNjksNyArNzAsOSBAQAogTU9EVUxFX1BBUk1fREVTQyhtb2RlbCwgIlVzZSB0aGUgZ2l2ZW4gYm9hcmQgbW9kZWwuIik7CiBtb2R1bGVfcGFyYW1fYXJyYXkocG9zaXRpb25fZml4LCBpbnQsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwb3NpdGlvbl9maXgsICJGaXggRE1BIHBvaW50ZXIgIgotCQkgIigwID0gYXV0bywgMSA9IG5vbmUsIDIgPSBQT1NCVUYsIDMgPSBGSUZPIHNpemUpLiIpOworCQkgIigwID0gYXV0bywgMSA9IG5vbmUsIDIgPSBQT1NCVUYpLiIpOworbW9kdWxlX3BhcmFtX2FycmF5KGJkbF9wb3NfYWRqLCBpbnQsIE5VTEwsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhiZGxfcG9zX2FkaiwgIkJETCBwb3NpdGlvbiBhZGp1c3RtZW50IG9mZnNldC4iKTsKIG1vZHVsZV9wYXJhbV9hcnJheShwcm9iZV9tYXNrLCBpbnQsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwcm9iZV9tYXNrLCAiQml0bWFzayB0byBwcm9iZSBjb2RlY3MgKGRlZmF1bHQgPSAtMSkuIik7CiBtb2R1bGVfcGFyYW0oc2luZ2xlX2NtZCwgYm9vbCwgMDQ0NCk7CkBAIC0xOTcsNiArMjAwLDEwIEBACiAjZGVmaW5lIEFUSUhETUlfTlVNX0NBUFRVUkUJMAogI2RlZmluZSBBVElIRE1JX05VTV9QTEFZQkFDSwkxCiAKKy8qIFRFUkEgaGFzIDQgcGxheWJhY2sgYW5kIDMgY2FwdHVyZSAqLworI2RlZmluZSBURVJBX05VTV9DQVBUVVJFCTMKKyNkZWZpbmUgVEVSQV9OVU1fUExBWUJBQ0sJNAorCiAvKiB0aGlzIG51bWJlciBpcyBzdGF0aWNhbGx5IGRlZmluZWQgZm9yIHNpbXBsaWNpdHkgKi8KICNkZWZpbmUgTUFYX0FaWF9ERVYJCTE2CiAKQEAgLTI1OSw5ICsyNjYsOCBAQAogLyogcG9zaXRpb24gZml4IG1vZGUgKi8KIGVudW0gewogCVBPU19GSVhfQVVUTywKLQlQT1NfRklYX05PTkUsCisJUE9TX0ZJWF9MUElCLAogCVBPU19GSVhfUE9TQlVGLAotCVBPU19GSVhfRklGTywKIH07CiAKIC8qIERlZmluZXMgZm9yIEFUSSBIRCBBdWRpbyBzdXBwb3J0IGluIFNCNDUwIHNvdXRoIGJyaWRnZSAqLwpAQCAtMjg1LDYgKzI5MSw3IEBACiAJdTMyICpwb3NidWY7CQkvKiBwb3NpdGlvbiBidWZmZXIgcG9pbnRlciAqLwogCiAJdW5zaWduZWQgaW50IGJ1ZnNpemU7CS8qIHNpemUgb2YgdGhlIHBsYXkgYnVmZmVyIGluIGJ5dGVzICovCisJdW5zaWduZWQgaW50IHBlcmlvZF9ieXRlczsgLyogc2l6ZSBvZiB0aGUgcGVyaW9kIGluIGJ5dGVzICovCiAJdW5zaWduZWQgaW50IGZyYWdzOwkvKiBudW1iZXIgZm9yIHBlcmlvZCBpbiB0aGUgcGxheSBidWZmZXIgKi8KIAl1bnNpZ25lZCBpbnQgZmlmb19zaXplOwkvKiBGSUZPIHNpemUgKi8KIApAQCAtMzAxLDExICszMDgsMTEgQEAKIAkJCQkJICovCiAJdW5zaWduZWQgY2hhciBzdHJlYW1fdGFnOwkvKiBhc3NpZ25lZCBzdHJlYW0gKi8KIAl1bnNpZ25lZCBjaGFyIGluZGV4OwkJLyogc3RyZWFtIGluZGV4ICovCi0JLyogZm9yIHNhbml0eSBjaGVjayBvZiBwb3NpdGlvbiBidWZmZXIgKi8KLQl1bnNpZ25lZCBpbnQgcGVyaW9kX2ludHI7CiAKIAl1bnNpZ25lZCBpbnQgb3BlbmVkIDoxOwogCXVuc2lnbmVkIGludCBydW5uaW5nIDoxOworCXVuc2lnbmVkIGludCBpcnFfcGVuZGluZyA6MTsKKwl1bnNpZ25lZCBpbnQgaXJxX2lnbm9yZSA6MTsKIH07CiAKIC8qIENPUkIvUklSQiAqLwpAQCAtMzIzLDYgKzMzMCw3IEBACiBzdHJ1Y3QgYXp4IHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CiAJc3RydWN0IHBjaV9kZXYgKnBjaTsKKwlpbnQgZGV2X2luZGV4OwogCiAJLyogY2hpcCB0eXBlIHNwZWNpZmljICovCiAJaW50IGRyaXZlcl90eXBlOwpAQCAtMzY2LDkgKzM3NCwxMyBAQAogCXVuc2lnbmVkIGludCBzaW5nbGVfY21kIDoxOwogCXVuc2lnbmVkIGludCBwb2xsaW5nX21vZGUgOjE7CiAJdW5zaWduZWQgaW50IG1zaSA6MTsKKwl1bnNpZ25lZCBpbnQgaXJxX3BlbmRpbmdfd2FybmVkIDoxOwogCiAJLyogZm9yIGRlYnVnZ2luZyAqLwogCXVuc2lnbmVkIGludCBsYXN0X2NtZDsJLyogbGFzdCBpc3N1ZWQgY29tbWFuZCAodG8gc3luYykgKi8KKworCS8qIGZvciBwZW5kaW5nIGlycXMgKi8KKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXJxX3BlbmRpbmdfd29yazsKIH07CiAKIC8qIGRyaXZlciB0eXBlcyAqLwpAQCAtMzgxLDYgKzM5Myw3IEBACiAJQVpYX0RSSVZFUl9TSVMsCiAJQVpYX0RSSVZFUl9VTEksCiAJQVpYX0RSSVZFUl9OVklESUEsCisJQVpYX0RSSVZFUl9URVJBLAogfTsKIAogc3RhdGljIGNoYXIgKmRyaXZlcl9zaG9ydF9uYW1lc1tdIF9fZGV2aW5pdGRhdGEgPSB7CkBAIC0zOTIsNiArNDA1LDcgQEAKIAlbQVpYX0RSSVZFUl9TSVNdID0gIkhEQSBTSVM5NjYiLAogCVtBWlhfRFJJVkVSX1VMSV0gPSAiSERBIFVMSSBNNTQ2MSIsCiAJW0FaWF9EUklWRVJfTlZJRElBXSA9ICJIREEgTlZpZGlhIiwKKwlbQVpYX0RSSVZFUl9URVJBXSA9ICJIREEgVGVyYWRpY2kiLCAKIH07CiAKIC8qCkBAIC00MjYsMTEgKzQ0MCw2IEBACiAvKiBmb3IgcGNtIHN1cHBvcnQgKi8KICNkZWZpbmUgZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKSAoc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGEpCiAKLS8qIEdldCB0aGUgdXBwZXIgMzJiaXQgb2YgdGhlIGdpdmVuIGRtYV9hZGRyX3QKLSAqIENvbXBpbGVyIHNob3VsZCBvcHRpbWl6ZSBhbmQgZWxpbWluYXRlIHRoZSBjb2RlIGlmIGRtYV9hZGRyX3QgaXMgMzJiaXQKLSAqLwotI2RlZmluZSB1cHBlcl8zMmJpdChhZGRyKSAoc2l6ZW9mKGFkZHIpID4gNCA/ICh1MzIpKChhZGRyKSA+PiAzMikgOiAodTMyKTApCi0KIHN0YXRpYyBpbnQgYXp4X2FjcXVpcmVfaXJxKHN0cnVjdCBhenggKmNoaXAsIGludCBkb19kaXNjb25uZWN0KTsKIAogLyoKQEAgLTQ2MSw3ICs0NzAsNyBAQAogCWNoaXAtPmNvcmIuYWRkciA9IGNoaXAtPnJiLmFkZHI7CiAJY2hpcC0+Y29yYi5idWYgPSAodTMyICopY2hpcC0+cmIuYXJlYTsKIAlhenhfd3JpdGVsKGNoaXAsIENPUkJMQkFTRSwgKHUzMiljaGlwLT5jb3JiLmFkZHIpOwotCWF6eF93cml0ZWwoY2hpcCwgQ09SQlVCQVNFLCB1cHBlcl8zMmJpdChjaGlwLT5jb3JiLmFkZHIpKTsKKwlhenhfd3JpdGVsKGNoaXAsIENPUkJVQkFTRSwgdXBwZXJfMzJfYml0cyhjaGlwLT5jb3JiLmFkZHIpKTsKIAogCS8qIHNldCB0aGUgY29yYiBzaXplIHRvIDI1NiBlbnRyaWVzIChVTEkgcmVxdWlyZXMgZXhwbGljaXRseSkgKi8KIAlhenhfd3JpdGViKGNoaXAsIENPUkJTSVpFLCAweDAyKTsKQEAgLTQ3Niw3ICs0ODUsNyBAQAogCWNoaXAtPnJpcmIuYWRkciA9IGNoaXAtPnJiLmFkZHIgKyAyMDQ4OwogCWNoaXAtPnJpcmIuYnVmID0gKHUzMiAqKShjaGlwLT5yYi5hcmVhICsgMjA0OCk7CiAJYXp4X3dyaXRlbChjaGlwLCBSSVJCTEJBU0UsICh1MzIpY2hpcC0+cmlyYi5hZGRyKTsKLQlhenhfd3JpdGVsKGNoaXAsIFJJUkJVQkFTRSwgdXBwZXJfMzJiaXQoY2hpcC0+cmlyYi5hZGRyKSk7CisJYXp4X3dyaXRlbChjaGlwLCBSSVJCVUJBU0UsIHVwcGVyXzMyX2JpdHMoY2hpcC0+cmlyYi5hZGRyKSk7CiAKIAkvKiBzZXQgdGhlIHJpcmIgc2l6ZSB0byAyNTYgZW50cmllcyAoVUxJIHJlcXVpcmVzIGV4cGxpY2l0bHkpICovCiAJYXp4X3dyaXRlYihjaGlwLCBSSVJCU0laRSwgMHgwMik7CkBAIC04NDcsNyArODU2LDcgQEAKIAogCS8qIHByb2dyYW0gdGhlIHBvc2l0aW9uIGJ1ZmZlciAqLwogCWF6eF93cml0ZWwoY2hpcCwgRFBMQkFTRSwgKHUzMiljaGlwLT5wb3NidWYuYWRkcik7Ci0JYXp4X3dyaXRlbChjaGlwLCBEUFVCQVNFLCB1cHBlcl8zMmJpdChjaGlwLT5wb3NidWYuYWRkcikpOworCWF6eF93cml0ZWwoY2hpcCwgRFBVQkFTRSwgdXBwZXJfMzJfYml0cyhjaGlwLT5wb3NidWYuYWRkcikpOwogCiAJY2hpcC0+aW5pdGlhbGl6ZWQgPSAxOwogfQpAQCAtOTA4LDYgKzkxNyw4IEBACiB9CiAKIAorc3RhdGljIGludCBhenhfcG9zaXRpb25fb2soc3RydWN0IGF6eCAqY2hpcCwgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYpOworCiAvKgogICogaW50ZXJydXB0IGhhbmRsZXIKICAqLwpAQCAtOTMwLDExICs5NDEsMjMgQEAKIAkJYXp4X2RldiA9ICZjaGlwLT5henhfZGV2W2ldOwogCQlpZiAoc3RhdHVzICYgYXp4X2Rldi0+c2RfaW50X3N0YV9tYXNrKSB7CiAJCQlhenhfc2Rfd3JpdGViKGF6eF9kZXYsIFNEX1NUUywgU0RfSU5UX01BU0spOwotCQkJaWYgKGF6eF9kZXYtPnN1YnN0cmVhbSAmJiBhenhfZGV2LT5ydW5uaW5nKSB7Ci0JCQkJYXp4X2Rldi0+cGVyaW9kX2ludHIrKzsKKwkJCWlmICghYXp4X2Rldi0+c3Vic3RyZWFtIHx8ICFhenhfZGV2LT5ydW5uaW5nKQorCQkJCWNvbnRpbnVlOworCQkJLyogaWdub3JlIHRoZSBmaXJzdCBkdW1teSBJUlEgKGR1ZSB0byBwb3NfYWRqKSAqLworCQkJaWYgKGF6eF9kZXYtPmlycV9pZ25vcmUpIHsKKwkJCQlhenhfZGV2LT5pcnFfaWdub3JlID0gMDsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCS8qIGNoZWNrIHdoZXRoZXIgdGhpcyBJUlEgaXMgcmVhbGx5IGFjY2VwdGFibGUgKi8KKwkJCWlmIChhenhfcG9zaXRpb25fb2soY2hpcCwgYXp4X2RldikpIHsKKwkJCQlhenhfZGV2LT5pcnFfcGVuZGluZyA9IDA7CiAJCQkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAkJCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGF6eF9kZXYtPnN1YnN0cmVhbSk7CiAJCQkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CisJCQl9IGVsc2UgeworCQkJCS8qIGJvZ3VzIElSUSwgcHJvY2VzcyBpdCBsYXRlciAqLworCQkJCWF6eF9kZXYtPmlycV9wZW5kaW5nID0gMTsKKwkJCQlzY2hlZHVsZV93b3JrKCZjaGlwLT5pcnFfcGVuZGluZ193b3JrKTsKIAkJCX0KIAkJfQogCX0KQEAgLTk1OSw1OSArOTgyLDEwNyBAQAogCiAKIC8qCi0gKiBzZXQgdXAgQkRMIGVudHJpZXMKKyAqIHNldCB1cCBhIEJETCBlbnRyeQogICovCi1zdGF0aWMgaW50IGF6eF9zZXR1cF9wZXJpb2RzKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAotCQkJICAgICBzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldikKK3N0YXRpYyBpbnQgc2V0dXBfYmRsZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJICAgICAgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYsIHUzMiAqKmJkbHAsCisJCSAgICAgIGludCBvZnMsIGludCBzaXplLCBpbnQgd2l0aF9pb2MpCiB7CiAJc3RydWN0IHNuZF9zZ19idWYgKnNnYnVmID0gc25kX3BjbV9zdWJzdHJlYW1fc2didWYoc3Vic3RyZWFtKTsKKwl1MzIgKmJkbCA9ICpiZGxwOworCisJd2hpbGUgKHNpemUgPiAwKSB7CisJCWRtYV9hZGRyX3QgYWRkcjsKKwkJaW50IGNodW5rOworCisJCWlmIChhenhfZGV2LT5mcmFncyA+PSBBWlhfTUFYX0JETF9FTlRSSUVTKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJYWRkciA9IHNuZF9wY21fc2didWZfZ2V0X2FkZHIoc2didWYsIG9mcyk7CisJCS8qIHByb2dyYW0gdGhlIGFkZHJlc3MgZmllbGQgb2YgdGhlIEJETCBlbnRyeSAqLworCQliZGxbMF0gPSBjcHVfdG9fbGUzMigodTMyKWFkZHIpOworCQliZGxbMV0gPSBjcHVfdG9fbGUzMih1cHBlcl8zMl9iaXRzKGFkZHIpKTsKKwkJLyogcHJvZ3JhbSB0aGUgc2l6ZSBmaWVsZCBvZiB0aGUgQkRMIGVudHJ5ICovCisJCWNodW5rID0gUEFHRV9TSVpFIC0gKG9mcyAlIFBBR0VfU0laRSk7CisJCWlmIChzaXplIDwgY2h1bmspCisJCQljaHVuayA9IHNpemU7CisJCWJkbFsyXSA9IGNwdV90b19sZTMyKGNodW5rKTsKKwkJLyogcHJvZ3JhbSB0aGUgSU9DIHRvIGVuYWJsZSBpbnRlcnJ1cHQKKwkJICogb25seSB3aGVuIHRoZSB3aG9sZSBmcmFnbWVudCBpcyBwcm9jZXNzZWQKKwkJICovCisJCXNpemUgLT0gY2h1bms7CisJCWJkbFszXSA9IChzaXplIHx8ICF3aXRoX2lvYykgPyAwIDogY3B1X3RvX2xlMzIoMHgwMSk7CisJCWJkbCArPSA0OworCQlhenhfZGV2LT5mcmFncysrOworCQlvZnMgKz0gY2h1bms7CisJfQorCSpiZGxwID0gYmRsOworCXJldHVybiBvZnM7Cit9CisKKy8qCisgKiBzZXQgdXAgQkRMIGVudHJpZXMKKyAqLworc3RhdGljIGludCBhenhfc2V0dXBfcGVyaW9kcyhzdHJ1Y3QgYXp4ICpjaGlwLAorCQkJICAgICBzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSAgICAgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYpCit7CiAJdTMyICpiZGw7CiAJaW50IGksIG9mcywgcGVyaW9kcywgcGVyaW9kX2J5dGVzOworCWludCBwb3NfYWRqOwogCiAJLyogcmVzZXQgQkRMIGFkZHJlc3MgKi8KIAlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBMLCAwKTsKIAlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCAwKTsKIAogCXBlcmlvZF9ieXRlcyA9IHNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pOworCWF6eF9kZXYtPnBlcmlvZF9ieXRlcyA9IHBlcmlvZF9ieXRlczsKIAlwZXJpb2RzID0gYXp4X2Rldi0+YnVmc2l6ZSAvIHBlcmlvZF9ieXRlczsKIAogCS8qIHByb2dyYW0gdGhlIGluaXRpYWwgQkRMIGVudHJpZXMgKi8KIAliZGwgPSAodTMyICopYXp4X2Rldi0+YmRsLmFyZWE7CiAJb2ZzID0gMDsKIAlhenhfZGV2LT5mcmFncyA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IHBlcmlvZHM7IGkrKykgewotCQlpbnQgc2l6ZSwgcmVzdDsKLQkJaWYgKGkgPj0gQVpYX01BWF9CRExfRU5UUklFUykgewotCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiVG9vIG1hbnkgQkRMIGVudHJpZXM6ICIKLQkJCQkgICAiYnVmZmVyPSVkLCBwZXJpb2Q9JWRcbiIsCi0JCQkJICAgYXp4X2Rldi0+YnVmc2l6ZSwgcGVyaW9kX2J5dGVzKTsKLQkJCS8qIHJlc2V0ICovCi0JCQlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBMLCAwKTsKLQkJCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUFUsIDApOwotCQkJcmV0dXJuIC1FSU5WQUw7CisJYXp4X2Rldi0+aXJxX2lnbm9yZSA9IDA7CisJcG9zX2FkaiA9IGJkbF9wb3NfYWRqW2NoaXAtPmRldl9pbmRleF07CisJaWYgKHBvc19hZGogPiAwKSB7CisJCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJCXBvc19hZGogPSAocG9zX2FkaiAqIHJ1bnRpbWUtPnJhdGUgKyA0Nzk5OSkgLyA0ODAwMDsKKwkJaWYgKCFwb3NfYWRqKQorCQkJcG9zX2FkaiA9IDE7CisJCXBvc19hZGogPSBmcmFtZXNfdG9fYnl0ZXMocnVudGltZSwgcG9zX2Fkaik7CisJCWlmIChwb3NfYWRqID49IHBlcmlvZF9ieXRlcykgeworCQkJc25kX3ByaW50ayhLRVJOX1dBUk5JTkcgIlRvbyBiaWcgYWRqdXN0bWVudCAlZFxuIiwKKwkJCQkgICBiZGxfcG9zX2FkaltjaGlwLT5kZXZfaW5kZXhdKTsKKwkJCXBvc19hZGogPSAwOworCQl9IGVsc2UgeworCQkJb2ZzID0gc2V0dXBfYmRsZShzdWJzdHJlYW0sIGF6eF9kZXYsCisJCQkJCSAmYmRsLCBvZnMsIHBvc19hZGosIDEpOworCQkJaWYgKG9mcyA8IDApCisJCQkJZ290byBlcnJvcjsKKwkJCWF6eF9kZXYtPmlycV9pZ25vcmUgPSAxOwogCQl9Ci0JCXJlc3QgPSBwZXJpb2RfYnl0ZXM7Ci0JCWRvIHsKLQkJCWRtYV9hZGRyX3QgYWRkciA9IHNuZF9wY21fc2didWZfZ2V0X2FkZHIoc2didWYsIG9mcyk7Ci0JCQkvKiBwcm9ncmFtIHRoZSBhZGRyZXNzIGZpZWxkIG9mIHRoZSBCREwgZW50cnkgKi8KLQkJCWJkbFswXSA9IGNwdV90b19sZTMyKCh1MzIpYWRkcik7Ci0JCQliZGxbMV0gPSBjcHVfdG9fbGUzMih1cHBlcl8zMmJpdChhZGRyKSk7Ci0JCQkvKiBwcm9ncmFtIHRoZSBzaXplIGZpZWxkIG9mIHRoZSBCREwgZW50cnkgKi8KLQkJCXNpemUgPSBQQUdFX1NJWkUgLSAob2ZzICUgUEFHRV9TSVpFKTsKLQkJCWlmIChyZXN0IDwgc2l6ZSkKLQkJCQlzaXplID0gcmVzdDsKLQkJCWJkbFsyXSA9IGNwdV90b19sZTMyKHNpemUpOwotCQkJLyogcHJvZ3JhbSB0aGUgSU9DIHRvIGVuYWJsZSBpbnRlcnJ1cHQKLQkJCSAqIG9ubHkgd2hlbiB0aGUgd2hvbGUgZnJhZ21lbnQgaXMgcHJvY2Vzc2VkCi0JCQkgKi8KLQkJCXJlc3QgLT0gc2l6ZTsKLQkJCWJkbFszXSA9IHJlc3QgPyAwIDogY3B1X3RvX2xlMzIoMHgwMSk7Ci0JCQliZGwgKz0gNDsKLQkJCWF6eF9kZXYtPmZyYWdzKys7Ci0JCQlvZnMgKz0gc2l6ZTsKLQkJfSB3aGlsZSAocmVzdCA+IDApOworCX0gZWxzZQorCQlwb3NfYWRqID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgcGVyaW9kczsgaSsrKSB7CisJCWlmIChpID09IHBlcmlvZHMgLSAxICYmIHBvc19hZGopCisJCQlvZnMgPSBzZXR1cF9iZGxlKHN1YnN0cmVhbSwgYXp4X2RldiwgJmJkbCwgb2ZzLAorCQkJCQkgcGVyaW9kX2J5dGVzIC0gcG9zX2FkaiwgMCk7CisJCWVsc2UKKwkJCW9mcyA9IHNldHVwX2JkbGUoc3Vic3RyZWFtLCBhenhfZGV2LCAmYmRsLCBvZnMsCisJCQkJCSBwZXJpb2RfYnl0ZXMsIDEpOworCQlpZiAob2ZzIDwgMCkKKwkJCWdvdG8gZXJyb3I7CiAJfQogCXJldHVybiAwOworCisgZXJyb3I6CisJc25kX3ByaW50ayhLRVJOX0VSUiAiVG9vIG1hbnkgQkRMIGVudHJpZXM6IGJ1ZmZlcj0lZCwgcGVyaW9kPSVkXG4iLAorCQkgICBhenhfZGV2LT5idWZzaXplLCBwZXJpb2RfYnl0ZXMpOworCS8qIHJlc2V0ICovCisJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgMCk7CisJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQVSwgMCk7CisJcmV0dXJuIC1FSU5WQUw7CiB9CiAKIC8qCkBAIC0xMDYyLDcgKzExMzMsNyBAQAogCS8qIGxvd2VyIEJETCBhZGRyZXNzICovCiAJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgKHUzMilhenhfZGV2LT5iZGwuYWRkcik7CiAJLyogdXBwZXIgQkRMIGFkZHJlc3MgKi8KLQlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCB1cHBlcl8zMmJpdChhenhfZGV2LT5iZGwuYWRkcikpOworCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUFUsIHVwcGVyXzMyX2JpdHMoYXp4X2Rldi0+YmRsLmFkZHIpKTsKIAogCS8qIGVuYWJsZSB0aGUgcG9zaXRpb24gYnVmZmVyICovCiAJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX1BPU0JVRiB8fApAQCAtMTA4NSw3ICsxMTU2LDcgQEAKICAqLwogCiBzdGF0aWMgdW5zaWduZWQgaW50IGF6eF9tYXhfY29kZWNzW10gX19kZXZpbml0ZGF0YSA9IHsKLQlbQVpYX0RSSVZFUl9JQ0hdID0gMywKKwlbQVpYX0RSSVZFUl9JQ0hdID0gNCwJCS8qIFNvbWUgSUNIOSBib2FyZHMgdXNlIFNEMyAqLwogCVtBWlhfRFJJVkVSX1NDSF0gPSAzLAogCVtBWlhfRFJJVkVSX0FUSV0gPSA0LAogCVtBWlhfRFJJVkVSX0FUSUhETUldID0gNCwKQEAgLTEwOTMsNiArMTE2NCw3IEBACiAJW0FaWF9EUklWRVJfU0lTXSA9IDMsCQkvKiBGSVhNRTogY29ycmVjdD8gKi8KIAlbQVpYX0RSSVZFUl9VTEldID0gMywJCS8qIEZJWE1FOiBjb3JyZWN0PyAqLwogCVtBWlhfRFJJVkVSX05WSURJQV0gPSAzLAkvKiBGSVhNRTogY29ycmVjdD8gKi8KKwlbQVpYX0RSSVZFUl9URVJBXSA9IDEsCiB9OwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBhenhfY29kZWNfY3JlYXRlKHN0cnVjdCBhenggKmNoaXAsIGNvbnN0IGNoYXIgKm1vZGVsLApAQCAtMTMxNiw3ICsxMzg4LDcgQEAKIAogCXNuZF9wcmludGRkKCJhenhfcGNtX3ByZXBhcmU6IGJ1ZnNpemU9MHgleCwgZm9ybWF0PTB4JXhcbiIsCiAJCSAgICBhenhfZGV2LT5idWZzaXplLCBhenhfZGV2LT5mb3JtYXRfdmFsKTsKLQlpZiAoYXp4X3NldHVwX3BlcmlvZHMoc3Vic3RyZWFtLCBhenhfZGV2KSA8IDApCisJaWYgKGF6eF9zZXR1cF9wZXJpb2RzKGNoaXAsIHN1YnN0cmVhbSwgYXp4X2RldikgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlhenhfc2V0dXBfY29udHJvbGxlcihjaGlwLCBhenhfZGV2KTsKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKQEAgLTE0MjEsMzUgKzE0OTMsMTEzIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBhenhfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCitzdGF0aWMgdW5zaWduZWQgaW50IGF6eF9nZXRfcG9zaXRpb24oc3RydWN0IGF6eCAqY2hpcCwKKwkJCQkgICAgIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KQogewotCXN0cnVjdCBhenhfcGNtICphcGNtID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCXN0cnVjdCBhenggKmNoaXAgPSBhcGNtLT5jaGlwOwotCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKTsKIAl1bnNpZ25lZCBpbnQgcG9zOwogCiAJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX1BPU0JVRiB8fAogCSAgICBjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9BVVRPKSB7CiAJCS8qIHVzZSB0aGUgcG9zaXRpb24gYnVmZmVyICovCiAJCXBvcyA9IGxlMzJfdG9fY3B1KCphenhfZGV2LT5wb3NidWYpOwotCQlpZiAoY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfQVVUTyAmJgotCQkgICAgYXp4X2Rldi0+cGVyaW9kX2ludHIgPT0gMSAmJiAhcG9zKSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkgICAgICAgImhkYS1pbnRlbDogSW52YWxpZCBwb3NpdGlvbiBidWZmZXIsICIKLQkJCSAgICAgICAidXNpbmcgTFBJQiByZWFkIG1ldGhvZCBpbnN0ZWFkLlxuIik7Ci0JCQljaGlwLT5wb3NpdGlvbl9maXggPSBQT1NfRklYX05PTkU7Ci0JCQlnb3RvIHJlYWRfbHBpYjsKLQkJfQogCX0gZWxzZSB7Ci0JcmVhZF9scGliOgogCQkvKiByZWFkIExQSUIgKi8KIAkJcG9zID0gYXp4X3NkX3JlYWRsKGF6eF9kZXYsIFNEX0xQSUIpOwotCQlpZiAoY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfRklGTykKLQkJCXBvcyArPSBhenhfZGV2LT5maWZvX3NpemU7CiAJfQogCWlmIChwb3MgPj0gYXp4X2Rldi0+YnVmc2l6ZSkKIAkJcG9zID0gMDsKLQlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwgcG9zKTsKKwlyZXR1cm4gcG9zOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QgYXp4X3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBhenhfcGNtICphcGNtID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBhenggKmNoaXAgPSBhcGNtLT5jaGlwOworCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKTsKKwlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwKKwkJCSAgICAgICBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpKTsKK30KKworLyoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgRE1BIHBvc2l0aW9uIGlzIGFjY2VwdGFibGUgZm9yIHVwZGF0aW5nCisgKiBwZXJpb2RzLiAgUmV0dXJucyBub24temVybyBpZiBpdCdzIE9LLgorICoKKyAqIE1hbnkgSEQtYXVkaW8gY29udHJvbGxlcnMgYXBwZWFyIHByZXR0eSBpbmFjY3VyYXRlIGFib3V0CisgKiB0aGUgdXBkYXRlLUlSUSB0aW1pbmcuICBUaGUgSVJRIGlzIGlzc3VlZCBiZWZvcmUgYWN0dWFsbHkgdGhlCisgKiBkYXRhIGlzIHByb2Nlc3NlZC4gIFNvLCB3ZSBuZWVkIHRvIHByb2Nlc3MgaXQgYWZ0ZXJ3b3JkcyBpbiBhCisgKiB3b3JrcXVldWUuCisgKi8KK3N0YXRpYyBpbnQgYXp4X3Bvc2l0aW9uX29rKHN0cnVjdCBhenggKmNoaXAsIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KQoreworCXVuc2lnbmVkIGludCBwb3M7CisKKwlwb3MgPSBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpOworCWlmIChjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9BVVRPKSB7CisJCWlmICghcG9zKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkgICAgICAgImhkYS1pbnRlbDogSW52YWxpZCBwb3NpdGlvbiBidWZmZXIsICIKKwkJCSAgICAgICAidXNpbmcgTFBJQiByZWFkIG1ldGhvZCBpbnN0ZWFkLlxuIik7CisJCQljaGlwLT5wb3NpdGlvbl9maXggPSBQT1NfRklYX0xQSUI7CisJCQlwb3MgPSBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpOworCQl9IGVsc2UKKwkJCWNoaXAtPnBvc2l0aW9uX2ZpeCA9IFBPU19GSVhfUE9TQlVGOworCX0KKworCWlmIChwb3MgJSBhenhfZGV2LT5wZXJpb2RfYnl0ZXMgPiBhenhfZGV2LT5wZXJpb2RfYnl0ZXMgLyAyKQorCQlyZXR1cm4gMDsgLyogTkcgLSBpdCdzIGJlbG93IHRoZSBwZXJpb2QgYm91bmRhcnkgKi8KKwlyZXR1cm4gMTsgLyogT0ssIGl0J3MgZmluZSAqLworfQorCisvKgorICogVGhlIHdvcmsgZm9yIHBlbmRpbmcgUENNIHBlcmlvZCB1cGRhdGVzLgorICovCitzdGF0aWMgdm9pZCBhenhfaXJxX3BlbmRpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGF6eCAqY2hpcCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgYXp4LCBpcnFfcGVuZGluZ193b3JrKTsKKwlpbnQgaSwgcGVuZGluZzsKKworCWlmICghY2hpcC0+aXJxX3BlbmRpbmdfd2FybmVkKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJICAgICAgICJoZGEtaW50ZWw6IElSUSB0aW1pbmcgd29ya2Fyb3VuZCBpcyBhY3RpdmF0ZWQgIgorCQkgICAgICAgImZvciBjYXJkICMlZC4gU3VnZ2VzdCBhIGJpZ2dlciBiZGxfcG9zX2Fkai5cbiIsCisJCSAgICAgICBjaGlwLT5jYXJkLT5udW1iZXIpOworCQljaGlwLT5pcnFfcGVuZGluZ193YXJuZWQgPSAxOworCX0KKworCWZvciAoOzspIHsKKwkJcGVuZGluZyA9IDA7CisJCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwkJZm9yIChpID0gMDsgaSA8IGNoaXAtPm51bV9zdHJlYW1zOyBpKyspIHsKKwkJCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gJmNoaXAtPmF6eF9kZXZbaV07CisJCQlpZiAoIWF6eF9kZXYtPmlycV9wZW5kaW5nIHx8CisJCQkgICAgIWF6eF9kZXYtPnN1YnN0cmVhbSB8fAorCQkJICAgICFhenhfZGV2LT5ydW5uaW5nKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGF6eF9wb3NpdGlvbl9vayhjaGlwLCBhenhfZGV2KSkgeworCQkJCWF6eF9kZXYtPmlycV9wZW5kaW5nID0gMDsKKwkJCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOworCQkJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoYXp4X2Rldi0+c3Vic3RyZWFtKTsKKwkJCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJCX0gZWxzZQorCQkJCXBlbmRpbmcrKzsKKwkJfQorCQlzcGluX3VubG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwkJaWYgKCFwZW5kaW5nKQorCQkJcmV0dXJuOworCQljb25kX3Jlc2NoZWQoKTsKKwl9Cit9CisKKy8qIGNsZWFyIGlycV9wZW5kaW5nIGZsYWdzIGFuZCBhc3N1cmUgbm8gb24tZ29pbmcgd29ya3EgKi8KK3N0YXRpYyB2b2lkIGF6eF9jbGVhcl9pcnFfcGVuZGluZyhzdHJ1Y3QgYXp4ICpjaGlwKQoreworCWludCBpOworCisJc3Bpbl9sb2NrX2lycSgmY2hpcC0+cmVnX2xvY2spOworCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5udW1fc3RyZWFtczsgaSsrKQorCQljaGlwLT5henhfZGV2W2ldLmlycV9wZW5kaW5nID0gMDsKKwlzcGluX3VubG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwlmbHVzaF9zY2hlZHVsZWRfd29yaygpOwogfQogCiBzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIGF6eF9wY21fb3BzID0gewpAQCAtMTY3Niw2ICsxODI2LDcgQEAKIAlpbnQgaTsKIAogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwlhenhfY2xlYXJfaXJxX3BlbmRpbmcoY2hpcCk7CiAJZm9yIChpID0gMDsgaSA8IEFaWF9NQVhfUENNUzsgaSsrKQogCQlzbmRfcGNtX3N1c3BlbmRfYWxsKGNoaXAtPnBjbVtpXSk7CiAJaWYgKGNoaXAtPmluaXRpYWxpemVkKQpAQCAtMTczMiw2ICsxODgzLDcgQEAKIAlpbnQgaTsKIAogCWlmIChjaGlwLT5pbml0aWFsaXplZCkgeworCQlhenhfY2xlYXJfaXJxX3BlbmRpbmcoY2hpcCk7CiAJCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5udW1fc3RyZWFtczsgaSsrKQogCQkJYXp4X3N0cmVhbV9zdG9wKGNoaXAsICZjaGlwLT5henhfZGV2W2ldKTsKIAkJYXp4X3N0b3BfY2hpcChjaGlwKTsKQEAgLTE3NzAsOSArMTkyMiw5IEBACiAgKiB3aGl0ZS9ibGFjay1saXN0aW5nIGZvciBwb3NpdGlvbl9maXgKICAqLwogc3RhdGljIHN0cnVjdCBzbmRfcGNpX3F1aXJrIHBvc2l0aW9uX2ZpeF9saXN0W10gX19kZXZpbml0ZGF0YSA9IHsKLQlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMWNjLCAiRGVsbCBEODIwIiwgUE9TX0ZJWF9OT05FKSwKLQlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMWRlLCAiRGVsbCBQcmVjaXNpb24gMzkwIiwgUE9TX0ZJWF9OT05FKSwKLQlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHg4MTNkLCAiQVNVUyBQNUFEMiIsIFBPU19GSVhfTk9ORSksCisJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFjYywgIkRlbGwgRDgyMCIsIFBPU19GSVhfTFBJQiksCisJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFkZSwgIkRlbGwgUHJlY2lzaW9uIDM5MCIsIFBPU19GSVhfTFBJQiksCisJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODEzZCwgIkFTVVMgUDVBRDIiLCBQT1NfRklYX0xQSUIpLAogCXt9CiB9OwogCkBAIC0xODU3LDEyICsyMDA5LDI1IEBACiAJY2hpcC0+aXJxID0gLTE7CiAJY2hpcC0+ZHJpdmVyX3R5cGUgPSBkcml2ZXJfdHlwZTsKIAljaGlwLT5tc2kgPSBlbmFibGVfbXNpOworCWNoaXAtPmRldl9pbmRleCA9IGRldjsKKwlJTklUX1dPUksoJmNoaXAtPmlycV9wZW5kaW5nX3dvcmssIGF6eF9pcnFfcGVuZGluZ193b3JrKTsKIAogCWNoaXAtPnBvc2l0aW9uX2ZpeCA9IGNoZWNrX3Bvc2l0aW9uX2ZpeChjaGlwLCBwb3NpdGlvbl9maXhbZGV2XSk7CiAJY2hlY2tfcHJvYmVfbWFzayhjaGlwLCBkZXYpOwogCiAJY2hpcC0+c2luZ2xlX2NtZCA9IHNpbmdsZV9jbWQ7CiAKKwlpZiAoYmRsX3Bvc19hZGpbZGV2XSA8IDApIHsKKwkJc3dpdGNoIChjaGlwLT5kcml2ZXJfdHlwZSkgeworCQljYXNlIEFaWF9EUklWRVJfSUNIOgorCQkJYmRsX3Bvc19hZGpbZGV2XSA9IDE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJkbF9wb3NfYWRqW2Rldl0gPSAzMjsKKwkJCWJyZWFrOworCQl9CisJfQorCiAjaWYgQklUU19QRVJfTE9ORyAhPSA2NAogCS8qIEZpeCB1cCBiYXNlIGFkZHJlc3Mgb24gVUxJIE01NDYxICovCiAJaWYgKGNoaXAtPmRyaXZlcl90eXBlID09IEFaWF9EUklWRVJfVUxJKSB7CkBAIC0yMDg5LDYgKzIyNTQsNyBAQAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjdkOCksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyNjlhKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI4NGIpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAorCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjkxMSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyOTNlKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI5M2YpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4M2EzZSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCkBAIC0yMTQxLDYgKzIzMDcsOCBAQAogCXsgUENJX0RFVklDRSgweDEwZGUsIDB4MGJkNSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfTlZJRElBIH0sCiAJeyBQQ0lfREVWSUNFKDB4MTBkZSwgMHgwYmQ2KSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9OVklESUEgfSwKIAl7IFBDSV9ERVZJQ0UoMHgxMGRlLCAweDBiZDcpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX05WSURJQSB9LAorCS8qIFRlcmFkaWNpICovCisJeyBQQ0lfREVWSUNFKDB4NjU0OSwgMHgxMjAwKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9URVJBIH0sCiAJeyAwLCB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGF6eF9pZHMpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfcHJvYy5jIGIvc291bmQvcGNpL2hkYS9oZGFfcHJvYy5jCmluZGV4IDU2MzNmNzcuLjFlNWFmZjUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX3Byb2MuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9wcm9jLmMKQEAgLTM2Niw4ICszNjYsNiBAQAogewogCXVuc2lnbmVkIGludCBkaWdpMSA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgbmlkLCAwLAogCQkJCQkJQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzEsIDApOwotCXVuc2lnbmVkIGludCBkaWdpMiA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgbmlkLCAwLAotCQkJCQkJQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzIsIDApOwogCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAgRGlnaXRhbDoiKTsKIAlpZiAoZGlnaTEgJiBBQ19ESUcxX0VOQUJMRSkKIAkJc25kX2lwcmludGYoYnVmZmVyLCAiIEVuYWJsZWQiKTsKQEAgLTM4Niw3ICszODQsOCBAQAogCWlmIChkaWdpMSAmIEFDX0RJRzFfTEVWRUwpCiAJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiBHZW5MZXZlbCIpOwogCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIlxuIik7Ci0Jc25kX2lwcmludGYoYnVmZmVyLCAiICBEaWdpdGFsIGNhdGVnb3J5OiAweCV4XG4iLCBkaWdpMiAmIEFDX0RJRzJfQ0MpOworCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAgRGlnaXRhbCBjYXRlZ29yeTogMHgleFxuIiwKKwkJICAgIChkaWdpMSA+PiA4KSAmIEFDX0RJRzJfQ0MpOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X3B3cl9zdGF0ZSh1MzIgc3RhdGUpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYwppbmRleCBhOTllODZkLi5lODAwM2Q5IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgogI2luY2x1ZGUgImhkYV9jb2RlYy5oIgpAQCAtNjQsNyArNjMsNiBAQAogCS8qIFBDTSBpbmZvcm1hdGlvbiAqLwogCXN0cnVjdCBoZGFfcGNtIHBjbV9yZWNbM107CS8qIHVzZWQgaW4gYWxjX2J1aWxkX3BjbXMoKSAqLwogCi0Jc3RydWN0IG11dGV4IGFtcF9tdXRleDsJLyogUENNIHZvbHVtZS9tdXRlIGNvbnRyb2wgbXV0ZXggKi8KIAl1bnNpZ25lZCBpbnQgc3BkaWZfcm91dGU7CiAKIAkvKiBkeW5hbWljIGNvbnRyb2xzLCBpbml0X3ZlcmJzIGFuZCBpbnB1dF9tdXggKi8KQEAgLTE2MTgsNiArMTYxNiw3IEBACiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhZDE5ODFfY2ZnX3RibFtdID0gewogCVNORF9QQ0lfUVVJUksoMHgxMDE0LCAweDA1OTcsICJMZW5vdm8gWjYwIiwgQUQxOTgxX1RISU5LUEFEKSwKKwlTTkRfUENJX1FVSVJLKDB4MTAxNCwgMHgwNWI3LCAiTGVub3ZvIFo2MG0iLCBBRDE5ODFfVEhJTktQQUQpLAogCS8qIEFsbCBIUCBtb2RlbHMgKi8KIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMCwgIkhQIG54IiwgQUQxOTgxX0hQKSwKIAlTTkRfUENJX1FVSVJLKDB4MTE3OSwgMHgwMDAxLCAiVG9zaGliYSBVMjA1IiwgQUQxOTgxX1RPU0hJQkEpLApAQCAtMjYyMyw3ICsyNjIyLDcgQEAKIHsKIAlzdHJ1Y3QgYWQxOTh4X3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKIAloZGFfbmlkX3QgbmlkOwotCWludCBpZHgsIGVycjsKKwlpbnQgaSwgaWR4LCBlcnI7CiAJY2hhciBuYW1lWzMyXTsKIAogCWlmICghIHBpbikKQEAgLTI2MzEsMTYgKzI2MzAsMjYgQEAKIAogCWlkeCA9IGFkMTk4OF9waW5faWR4KHBpbik7CiAJbmlkID0gYWQxOTg4X2lkeF90b19kYWMoY29kZWMsIGlkeCk7Ci0JLyogc3BlY2lmeSB0aGUgREFDIGFzIHRoZSBleHRyYSBvdXRwdXQgKi8KLQlpZiAoISBzcGVjLT5tdWx0aW91dC5ocF9uaWQpCi0JCXNwZWMtPm11bHRpb3V0LmhwX25pZCA9IG5pZDsKLQllbHNlCi0JCXNwZWMtPm11bHRpb3V0LmV4dHJhX291dF9uaWRbMF0gPSBuaWQ7Ci0JLyogY29udHJvbCBIUCB2b2x1bWUvc3dpdGNoIG9uIHRoZSBvdXRwdXQgbWl4ZXIgYW1wICovCi0Jc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgVm9sdW1lIiwgcGZ4KTsKLQlpZiAoKGVyciA9IGFkZF9jb250cm9sKHNwZWMsIEFEX0NUTF9XSURHRVRfVk9MLCBuYW1lLAotCQkJICAgICAgIEhEQV9DT01QT1NFX0FNUF9WQUwobmlkLCAzLCAwLCBIREFfT1VUUFVUKSkpIDwgMCkKLQkJcmV0dXJuIGVycjsKKwkvKiBjaGVjayB3aGV0aGVyIHRoZSBjb3JyZXNwb25kaW5nIERBQyB3YXMgYWxyZWFkeSB0YWtlbiAqLworCWZvciAoaSA9IDA7IGkgPCBzcGVjLT5hdXRvY2ZnLmxpbmVfb3V0czsgaSsrKSB7CisJCWhkYV9uaWRfdCBwaW4gPSBzcGVjLT5hdXRvY2ZnLmxpbmVfb3V0X3BpbnNbaV07CisJCWhkYV9uaWRfdCBkYWMgPSBhZDE5ODhfaWR4X3RvX2RhYyhjb2RlYywgYWQxOTg4X3Bpbl9pZHgocGluKSk7CisJCWlmIChkYWMgPT0gbmlkKQorCQkJYnJlYWs7CisJfQorCWlmIChpID49IHNwZWMtPmF1dG9jZmcubGluZV9vdXRzKSB7CisJCS8qIHNwZWNpZnkgdGhlIERBQyBhcyB0aGUgZXh0cmEgb3V0cHV0ICovCisJCWlmICghc3BlYy0+bXVsdGlvdXQuaHBfbmlkKQorCQkJc3BlYy0+bXVsdGlvdXQuaHBfbmlkID0gbmlkOworCQllbHNlCisJCQlzcGVjLT5tdWx0aW91dC5leHRyYV9vdXRfbmlkWzBdID0gbmlkOworCQkvKiBjb250cm9sIEhQIHZvbHVtZS9zd2l0Y2ggb24gdGhlIG91dHB1dCBtaXhlciBhbXAgKi8KKwkJc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgVm9sdW1lIiwgcGZ4KTsKKwkJZXJyID0gYWRkX2NvbnRyb2woc3BlYywgQURfQ1RMX1dJREdFVF9WT0wsIG5hbWUsCisJCQkJICBIREFfQ09NUE9TRV9BTVBfVkFMKG5pZCwgMywgMCwgSERBX09VVFBVVCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQogCW5pZCA9IGFkMTk4OF9taXhlcl9uaWRzW2lkeF07CiAJc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgU3dpdGNoIiwgcGZ4KTsKIAlpZiAoKGVyciA9IGFkZF9jb250cm9sKHNwZWMsIEFEX0NUTF9CSU5EX01VVEUsIG5hbWUsCkBAIC0zMTc3LDcgKzMxODYsNiBAQAogCWlmIChzcGVjID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtMzg0Nyw3ICszODU1LDYgQEAKIAlpZiAoc3BlYyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW11dGV4X2luaXQoJnNwZWMtPmFtcF9tdXRleCk7CiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCiAJc3BlYy0+bXVsdGlvdXQubWF4X2NoYW5uZWxzID0gMjsKQEAgLTQxNTIsNyArNDE1OSw2IEBACiAJaWYgKHNwZWMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDY7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMKaW5kZXggMzZmZDg1Mi4uN2MxZWIyMyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYwpAQCAtODIsNyArODIsNiBAQAogCS8qIFBDTSBpbmZvcm1hdGlvbiAqLwogCXN0cnVjdCBoZGFfcGNtIHBjbV9yZWNbMl07CS8qIHVzZWQgaW4gYnVpbGRfcGNtcygpICovCiAKLQlzdHJ1Y3QgbXV0ZXggYW1wX211dGV4OwkvKiBQQ00gdm9sdW1lL211dGUgY29udHJvbCBtdXRleCAqLwogCXVuc2lnbmVkIGludCBzcGRpZl9yb3V0ZTsKIAogCS8qIGR5bmFtaWMgY29udHJvbHMsIGluaXRfdmVyYnMgYW5kIGlucHV0X211eCAqLwpAQCAtNjg3LDcgKzY4Niw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgY3h0NTA0NV9pbml0X3ZlcmJzW10gPSB7CiAJLyogTGluZSBpbiwgTWljICovCi0JezB4MTIsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOIH0sCisJezB4MTIsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOfEFDX1BJTkNUTF9WUkVGXzgwIH0sCiAJezB4MTQsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOfEFDX1BJTkNUTF9WUkVGXzgwIH0sCiAJLyogSFAsIEFtcCAgKi8KIAl7MHgxMCwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUfSwKQEAgLTkwNywxMCArOTA2LDEyIEBACiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzBjZiwgIkhQIERWOTUzM0VHIiwgQ1hUNTA0NV9MQVBUT1BfSFBTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzBkNSwgIkhQIDUzMCIsIENYVDUwNDVfTEFQVE9QX0hQNTMwKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMGQ5LCAiSFAgU3BhcnRhbiIsIENYVDUwNDVfTEFQVE9QX0hQU0VOU0UpLAorCVNORF9QQ0lfUVVJUksoMHgxMTc5LCAweGZmMzEsICJUb3NoaWJhIFAxMDUiLCBDWFQ1MDQ1X0xBUFRPUF9NSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE1MmQsIDB4MDc1MywgIkJlbnEgUjU1RSIsIENYVDUwNDVfQkVOUSksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBhZCwgIkZ1aml0c3UgU2kxNTIwIiwgQ1hUNTA0NV9MQVBUT1BfTUlDU0VOU0UpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwY2IsICJGdWppdHN1IFNpMzUxNSIsIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLAotCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDExMGUsICJGdWppdHN1IFY1NTA1IiwgQ1hUNTA0NV9MQVBUT1BfSFBTRU5TRSksCisJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTEwZSwgIkZ1aml0c3UgVjU1MDUiLAorCQkgICAgICBDWFQ1MDQ1X0xBUFRPUF9IUE1JQ1NFTlNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTUwOSwgMHgxZTQwLCAiRklDIiwgQ1hUNTA0NV9MQVBUT1BfSFBNSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE1MDksIDB4MmYwNSwgIkZJQyIsIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLAogCVNORF9QQ0lfUVVJUksoMHgxNTA5LCAweDJmMDYsICJGSUMiLCBDWFQ1MDQ1X0xBUFRPUF9IUE1JQ1NFTlNFKSwKQEAgLTkyOCw3ICs5MjksNiBAQAogCXNwZWMgPSBremFsbG9jKHNpemVvZigqc3BlYyksIEdGUF9LRVJORUwpOwogCWlmICghc3BlYykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtOTYzLDYgKzk2Myw3IEBACiAJCWNvZGVjLT5wYXRjaF9vcHMuaW5pdCA9IGN4dDUwNDVfaW5pdDsKIAkJYnJlYWs7CiAJY2FzZSBDWFQ1MDQ1X0xBUFRPUF9NSUNTRU5TRToKKwkJY29kZWMtPnBhdGNoX29wcy51bnNvbF9ldmVudCA9IGN4dDUwNDVfaHBfdW5zb2xfZXZlbnQ7CiAJCXNwZWMtPmlucHV0X211eCA9ICZjeHQ1MDQ1X2NhcHR1cmVfc291cmNlOwogCQlzcGVjLT5udW1faW5pdF92ZXJicyA9IDI7CiAJCXNwZWMtPmluaXRfdmVyYnNbMV0gPSBjeHQ1MDQ1X21pY19zZW5zZV9pbml0X3ZlcmJzOwpAQCAtMTAwNywxNSArMTAwOCwxOSBAQAogI2VuZGlmCQogCX0KIAotCS8qCi0JICogRml4IG1heCBQQ00gbGV2ZWwgdG8gMCBkQgotCSAqIChvcmlnaW5hbGwgaXQgaGFzIDB4MmIgc3RlcHMgd2l0aCAwZEIgb2Zmc2V0IDB4MTQpCi0JICovCi0Jc25kX2hkYV9vdmVycmlkZV9hbXBfY2Fwcyhjb2RlYywgMHgxNywgSERBX0lOUFVULAotCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX09GRlNFVF9TSElGVCkgfAotCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX05VTV9TVEVQU19TSElGVCkgfAotCQkJCSAgKDB4MDUgPDwgQUNfQU1QQ0FQX1NURVBfU0laRV9TSElGVCkgfAotCQkJCSAgKDEgPDwgQUNfQU1QQ0FQX01VVEVfU0hJRlQpKTsKKwlzd2l0Y2ggKGNvZGVjLT5zdWJzeXN0ZW1faWQgPj4gMTYpIHsKKwljYXNlIDB4MTAzYzoKKwkJLyogSFAgbGFwdG9wIGhhcyBhIHJlYWxseSBiYWQgc291bmQgb3ZlciAwZEIgb24gTklEIDB4MTcuCisJCSAqIEZpeCBtYXggUENNIGxldmVsIHRvIDAgZEIKKwkJICogKG9yaWdpbmFsbCBpdCBoYXMgMHgyYiBzdGVwcyB3aXRoIDBkQiBvZmZzZXQgMHgxNCkKKwkJICovCisJCXNuZF9oZGFfb3ZlcnJpZGVfYW1wX2NhcHMoY29kZWMsIDB4MTcsIEhEQV9JTlBVVCwKKwkJCQkJICAoMHgxNCA8PCBBQ19BTVBDQVBfT0ZGU0VUX1NISUZUKSB8CisJCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX05VTV9TVEVQU19TSElGVCkgfAorCQkJCQkgICgweDA1IDw8IEFDX0FNUENBUF9TVEVQX1NJWkVfU0hJRlQpIHwKKwkJCQkJICAoMSA8PCBBQ19BTVBDQVBfTVVURV9TSElGVCkpOworCQlicmVhazsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NzcsNyArMTQ4Miw2IEBACiAJc3BlYyA9IGt6YWxsb2Moc2l6ZW9mKCpzcGVjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzcGVjKQogCQlyZXR1cm4gLUVOT01FTTsKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDI7CkBAIC0xNzM2LDcgKzE3NDAsNiBAQAogCXNwZWMgPSBremFsbG9jKHNpemVvZigqc3BlYyksIEdGUF9LRVJORUwpOwogCWlmICghc3BlYykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAljb2RlYy0+cGF0Y2hfb3BzID0gY29uZXhhbnRfcGF0Y2hfb3BzOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwppbmRleCA1MThiN2NhLi4yODA3YmM4IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwpAQCAtMTYzLDYgKzE2MywxMCBAQAogCUFMQzY2Ml9MRU5PVk9fMTAxRSwKIAlBTEM2NjJfQVNVU19FRUVQQ19QNzAxLAogCUFMQzY2Ml9BU1VTX0VFRVBDX0VQMjAsCisJQUxDNjYzX0FTVVNfTTUxVkEsCisJQUxDNjYzX0FTVVNfRzcxViwKKwlBTEM2NjNfQVNVU19IMTMsCisJQUxDNjYzX0FTVVNfRzUwViwKIAlBTEM2NjJfQVVUTywKIAlBTEM2NjJfTU9ERUxfTEFTVCwKIH07CkBAIC0yMDUsNiArMjA5LDcgQEAKIAlBTEM4ODNfTUlUQUMsCiAJQUxDODgzX0NMRVZPX003MjAsCiAJQUxDODgzX0ZVSklUU1VfUEkyNTE1LAorCUFMQzg4M18zU1RfNmNoX0lOVEVMLAogCUFMQzg4M19BVVRPLAogCUFMQzg4M19NT0RFTF9MQVNULAogfTsKQEAgLTI4MCw2ICsyODUsMTAgQEAKICNpZmRlZiBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFCiAJc3RydWN0IGhkYV9sb29wYmFja19jaGVjayBsb29wYmFjazsKICNlbmRpZgorCisJLyogZm9yIFBMTCBmaXggKi8KKwloZGFfbmlkX3QgcGxsX25pZDsKKwl1bnNpZ25lZCBpbnQgcGxsX2NvZWZfaWR4LCBwbGxfY29lZl9iaXQ7CiB9OwogCiAvKgpAQCAtNzQ3LDYgKzc1NiwzOCBAQAogCXsgfQogfTsKIAorLyoKKyAqIEZpeCBoYXJkd2FyZSBQTEwgaXNzdWUKKyAqIE9uIHNvbWUgY29kZWNzLCB0aGUgYW5hbG9nIFBMTCBnYXRpbmcgY29udHJvbCBtdXN0IGJlIG9mZiB3aGlsZQorICogdGhlIGRlZmF1bHQgdmFsdWUgaXMgMS4KKyAqLworc3RhdGljIHZvaWQgYWxjX2ZpeF9wbGwoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJdW5zaWduZWQgaW50IHZhbDsKKworCWlmICghc3BlYy0+cGxsX25pZCkKKwkJcmV0dXJuOworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsCisJCQkgICAgc3BlYy0+cGxsX2NvZWZfaWR4KTsKKwl2YWwgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsCisJCQkJIEFDX1ZFUkJfR0VUX1BST0NfQ09FRiwgMCk7CisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgc3BlYy0+cGxsX25pZCwgMCwgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwKKwkJCSAgICBzcGVjLT5wbGxfY29lZl9pZHgpOworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwKKwkJCSAgICB2YWwgJiB+KDEgPDwgc3BlYy0+cGxsX2NvZWZfYml0KSk7Cit9CisKK3N0YXRpYyB2b2lkIGFsY19maXhfcGxsX2luaXQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCisJCQkgICAgIHVuc2lnbmVkIGludCBjb2VmX2lkeCwgdW5zaWduZWQgaW50IGNvZWZfYml0KQoreworCXN0cnVjdCBhbGNfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOworCXNwZWMtPnBsbF9uaWQgPSBuaWQ7CisJc3BlYy0+cGxsX2NvZWZfaWR4ID0gY29lZl9pZHg7CisJc3BlYy0+cGxsX2NvZWZfYml0ID0gY29lZl9iaXQ7CisJYWxjX2ZpeF9wbGwoY29kZWMpOworfQorCiBzdGF0aWMgdm9pZCBhbGNfc2t1X2F1dG9tdXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQogewogCXN0cnVjdCBhbGNfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOwpAQCAtNzc2LDYgKzgxNywyNCBAQAogCWFsY19za3VfYXV0b211dGUoY29kZWMpOwogfQogCisvKiBhZGRpdGlvbmFsIGluaXRpYWxpemF0aW9uIGZvciBBTEM4ODggdmFyaWFudHMgKi8KK3N0YXRpYyB2b2lkIGFsYzg4OF9jb2VmX2luaXQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHRtcDsKKworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MjAsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsIDApOworCXRtcCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMCwgMCwgQUNfVkVSQl9HRVRfUFJPQ19DT0VGLCAwKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLCBBQ19WRVJCX1NFVF9DT0VGX0lOREVYLCA3KTsKKwlpZiAoKHRtcCAmIDB4ZjApID09IDIpCisJCS8qIGFsYzg4OFMtVkMgKi8KKwkJc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIwLCAwLAorCQkJCSAgIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwgMHg4MzApOworCSBlbHNlCisJCSAvKiBhbGM4ODgtVkIgKi8KKwkJIHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMCwgMCwKKwkJCQkgICAgQUNfVkVSQl9TRVRfUFJPQ19DT0VGLCAweDMwMzApOworfQorCiAvKiAzMi1iaXQgc3Vic3lzdGVtIElEIGZvciBCSU9TIGxvYWRpbmcgaW4gSEQgQXVkaW8gY29kZWMuCiAgKgkzMSB+IDE2IDoJTWFudWZhY3R1cmUgSUQKICAqCTE1IH4gOAk6CVNLVSBJRApAQCAtODUxLDggKzkxMCwxMCBAQAogCQljYXNlIDB4MTBlYzAyNjc6CiAJCWNhc2UgMHgxMGVjMDI2ODoKIAkJY2FzZSAweDEwZWMwMjY5OgorCQljYXNlIDB4MTBlYzA2NjA6CisJCWNhc2UgMHgxMGVjMDY2MjoKKwkJY2FzZSAweDEwZWMwNjYzOgogCQljYXNlIDB4MTBlYzA4NjI6Ci0JCWNhc2UgMHgxMGVjMDY2MjoJCiAJCWNhc2UgMHgxMGVjMDg4OToKIAkJCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MTQsIDAsCiAJCQkJCSAgICBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMik7CkBAIC04NzcsNyArOTM4LDYgQEAKIAkJY2FzZSAweDEwZWMwODgyOgogCQljYXNlIDB4MTBlYzA4ODM6CiAJCWNhc2UgMHgxMGVjMDg4NToKLQkJY2FzZSAweDEwZWMwODg4OgogCQljYXNlIDB4MTBlYzA4ODk6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLAogCQkJCQkgICAgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwgNyk7CkBAIC04ODksNiArOTQ5LDkgQEAKIAkJCQkJICAgIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwKIAkJCQkJICAgIHRtcCB8IDB4MjAxMCk7CiAJCQlicmVhazsKKwkJY2FzZSAweDEwZWMwODg4OgorCQkJYWxjODg4X2NvZWZfaW5pdChjb2RlYyk7CisJCQlicmVhazsKIAkJY2FzZSAweDEwZWMwMjY3OgogCQljYXNlIDB4MTBlYzAyNjg6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLApAQCAtMjM3Myw2ICsyNDM2LDggQEAKIAlzdHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKIAl1bnNpZ25lZCBpbnQgaTsKIAorCWFsY19maXhfcGxsKGNvZGVjKTsKKwogCWZvciAoaSA9IDA7IGkgPCBzcGVjLT5udW1faW5pdF92ZXJiczsgaSsrKQogCQlzbmRfaGRhX3NlcXVlbmNlX3dyaXRlKGNvZGVjLCBzcGVjLT5pbml0X3ZlcmJzW2ldKTsKIApAQCAtMzAwOSw2ICszMDc0LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDBkLCAiRVBvWCIsIEFMQzg4MF81U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDEyLCAiRVBveCBFUC01TERBIiwgQUxDODgwXzVTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwN2MsICJGU0MgRjE3MzQiLCBBTEM4ODBfRjE3MzQpLAorCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwOTQsICJGU0MgQW1pbG8gTTE0NTFHIiwgQUxDODgwX0ZVSklUU1UpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwYWMsICJGU0MiLCBBTEM4ODBfVU5JV0lMTCksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBiMCwgIkZ1aml0c3UiLCBBTEM4ODBfRlVKSVRTVSksCiAJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MDAxOCwgIkxHIExXMjAiLCBBTEM4ODBfTEdfTFcpLApAQCAtNTEwMSw3ICs1MTY3LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgyODA4LCAiSFAgZDU3MDAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MjgwYSwgIkhQIGQ1NzUwIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTAsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKLQlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDExLCAiSFAiLCBBTEMyNjBfSFApLAorCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTEsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDEyLCAiSFAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzAxMywgIkhQIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTQsICJIUCIsIEFMQzI2MF9IUCksCkBAIC02MTI3LDYgKzYxOTMsNyBAQAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxN2YsICJBc3VzIFA1TEQyIiwgQUxDODgyXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxZDgsICJBc3VzIFA1V0QiLCBBTEM4ODJfNlNUX0RJRyksCiAJU05EX1BDSV9RVUlSSygweDEwNWIsIDB4NjY2OCwgIkZveGNvbm4iLCBBTEM4ODJfNlNUX0RJRyksCisJU05EX1BDSV9RVUlSSygweDEwNmIsIDB4MDBhMCwgIkFwcGxlIGlNYWMgMjQnJyIsIEFMQzg4NV9JTUFDMjQpLAogCVNORF9QQ0lfUVVJUksoMHgxNDU4LCAweGEwMDIsICJHaWdhYnl0ZSBQMzUgRFMzUiIsIEFMQzg4Ml82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHgyOGZiLCAiVGFyZ2EgVDgiLCBBTEM4ODJfVEFSR0EpLCAvKiBNU0ktMTA0OSBUOCAgKi8KIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHg2NjY4LCAiTVNJIiwgQUxDODgyXzZTVF9ESUcpLApAQCAtNjM1Myw3ICs2NDIwLDkgQEAKIAkJCWNvbnRpbnVlOwogCQl2cmVmID0gUElOX0lOOwogCQlpZiAoMSAvKmkgPD0gQVVUT19QSU5fRlJPTlRfTUlDKi8pIHsKLQkJCWlmIChzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApICYKKwkJCXVuc2lnbmVkIGludCBwaW5jYXA7CisJCQlwaW5jYXAgPSBzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApOworCQkJaWYgKChwaW5jYXAgPj4gQUNfUElOQ0FQX1ZSRUZfU0hJRlQpICYKIAkJCSAgICBBQ19QSU5DQVBfVlJFRl84MCkKIAkJCQl2cmVmID0gUElOX1ZSRUY4MDsKIAkJfQpAQCAtNjQ1MCw4ICs2NTE5LDkgQEAKIAkJY2FzZSAweDEwNmIxMDAwOiAvKiBpTWFjIDI0ICovCiAJCQlib2FyZF9jb25maWcgPSBBTEM4ODVfSU1BQzI0OwogCQkJYnJlYWs7Ci0JCWNhc2UgMHgxMDZiMDBhMTogLyogTWFjYm9vayAqLworCQljYXNlIDB4MTA2YjAwYTE6IC8qIE1hY2Jvb2sgKG1pZ2h0IGJlIHdyb25nIC0gUENJIFNTSUQ/KSAqLwogCQljYXNlIDB4MTA2YjJjMDA6IC8qIE1hY2Jvb2sgUHJvIHJldjMgKi8KKwkJY2FzZSAweDEwNmIzNjAwOiAvKiBNYWNib29rIDMuMSAqLwogCQkJYm9hcmRfY29uZmlnID0gQUxDODg1X01CUDM7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTY0ODUsMTQgKzY1NTUsMjAgQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzg4Ml9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzg4Ml9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MiBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzA4ODUpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4NSBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4NSBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDODgyIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDODgyIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODgyX3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzg4Ml9wY21fYW5hbG9nX2NhcHR1cmU7CiAJLyogRklYTUU6IHNldHVwIERBQzUgKi8KIAkvKnNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X3BsYXliYWNrID0gJmFsYzg4MF9wY21fYW5hbG9nX2FsdF9wbGF5YmFjazsqLwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X2NhcHR1cmUgPSAmYWxjODgwX3BjbV9hbmFsb2dfYWx0X2NhcHR1cmU7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MiBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfY2FwdHVyZSA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfY2FwdHVyZTsKIApAQCAtNjU2OSw2ICs2NjQ1LDE2IEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM4ODNfM3N0YWNrXzZjaF9pbnRlbCA9IHsKKwkubnVtX2l0ZW1zID0gNCwKKwkuaXRlbXMgPSB7CisJCXsgIk1pYyIsIDB4MSB9LAorCQl7ICJGcm9udCBNaWMiLCAweDAgfSwKKwkJeyAiTGluZSIsIDB4MiB9LAorCQl7ICJDRCIsIDB4NCB9LAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IGhkYV9pbnB1dF9tdXggYWxjODgzX2xlbm92b18xMDFlX2NhcHR1cmVfc291cmNlID0gewogCS5udW1faXRlbXMgPSAyLAogCS5pdGVtcyA9IHsKQEAgLTY2NTAsNiArNjczNiw0OCBAQAogfTsKIAogLyoKKyAqIDJjaCBtb2RlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjODgzXzNTVF9jaDJfaW50ZWxfaW5pdFtdID0geworCXsgMHgxOSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fVlJFRjgwIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IDB4MWEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNGNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9WUkVGODAgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNmNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVQgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMiB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCitzdGF0aWMgc3RydWN0IGhkYV9jaGFubmVsX21vZGUgYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXNbM10gPSB7CisJeyAyLCBhbGM4ODNfM1NUX2NoMl9pbnRlbF9pbml0IH0sCisJeyA0LCBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0IH0sCisJeyA2LCBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0IH0sCit9OworCisvKgogICogNmNoIG1vZGUKICAqLwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfc2l4c3RhY2tfY2g2X2luaXRbXSA9IHsKQEAgLTY4ODEsMTUgKzcwMDksNTQgQEAKIAl7IH0gLyogZW5kICovCiB9OwogCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWxjODgzXzNTVF82Y2hfaW50ZWxfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwKKwkJCSAgICAgIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiTEZFIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0JJTkRfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgwZSwgMSwgMiwgSERBX0lOUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkxGRSBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAyLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJDRCBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJDRCBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwMiwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIEJvb3N0IiwgMHgxOSwgMCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkZyb250IE1pYyBCb29zdCIsIDB4MTgsIDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkZyb250IE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiUEMgU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA1LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDUsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiQ2FwdHVyZSBWb2x1bWUiLCAweDA4LCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkNhcHR1cmUgU3dpdGNoIiwgMHgwOCwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfSURYKCJDYXB0dXJlIFZvbHVtZSIsIDEsIDB4MDksIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURV9JRFgoIkNhcHR1cmUgU3dpdGNoIiwgMSwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLAorCXsKKwkJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJCS8qIC5uYW1lID0gIkNhcHR1cmUgU291cmNlIiwgKi8KKwkJLm5hbWUgPSAiSW5wdXQgU291cmNlIiwKKwkJLmNvdW50ID0gMiwKKwkJLmluZm8gPSBhbGM4ODNfbXV4X2VudW1faW5mbywKKwkJLmdldCA9IGFsYzg4M19tdXhfZW51bV9nZXQsCisJCS5wdXQgPSBhbGM4ODNfbXV4X2VudW1fcHV0LAorCX0sCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzg4M19maXZlc3RhY2tfbWl4ZXJbXSA9IHsKIAlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAotCUhEQV9DT0RFQ19NVVRFKCJGcm9udCBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURSgiU3Vycm91bmQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAogCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9NT05PKCJMRkUgUGxheWJhY2sgVm9sdW1lIiwgMHgwZSwgMiwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMSwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJMRkUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkNlbnRlciBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAxLCAyLCBIREFfSU5QVVQpLAorCUhEQV9CSU5EX01VVEVfTU9OTygiTEZFIFBsYXliYWNrIFN3aXRjaCIsIDB4MGUsIDIsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkhlYWRwaG9uZSBQbGF5YmFjayBTd2l0Y2giLCAweDFiLCAweDAsIEhEQV9PVVRQVVQpLAogCUhEQV9DT0RFQ19WT0xVTUUoIkNEIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCkBAIC03NzI5LDYgKzc4OTYsNyBAQAogCVtBTEM4ODNfTUlUQUNdCQk9ICJtaXRhYyIsCiAJW0FMQzg4M19DTEVWT19NNzIwXQk9ICJjbGV2by1tNzIwIiwKIAlbQUxDODgzX0ZVSklUU1VfUEkyNTE1XSA9ICJmdWppdHN1LXBpMjUxNSIsCisJW0FMQzg4M18zU1RfNmNoX0lOVEVMXQk9ICIzc3RhY2stNmNoLWludGVsIiwKIAlbQUxDODgzX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKQEAgLTc3ODYsNiArNzk1NCw4IEBACiAJU05EX1BDSV9RVUlSSygweDE3YzAsIDB4NDA3MSwgIk1FRElPTiBNRDIiLCBBTEM4ODNfTUVESU9OX01EMiksCiAJU05EX1BDSV9RVUlSSygweDE3ZjIsIDB4NTAwMCwgIkFsYmF0cm9uIEtJNjkwLUFNMiIsIEFMQzg4M182U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTk5MSwgMHg1NjI1LCAiSGFpZXIgVzY2IiwgQUxDODgzX0hBSUVSX1c2NiksCisJU05EX1BDSV9RVUlSSygweDgwODYsIDB4MDAwMSwgIkRHMzNCVUMiLCBBTEM4ODNfM1NUXzZjaF9JTlRFTCksCisJU05EX1BDSV9RVUlSSygweDgwODYsIDB4MDAwMiwgIkRHMzNGQkMiLCBBTEM4ODNfM1NUXzZjaF9JTlRFTCksCiAJU05EX1BDSV9RVUlSSygweDgwODYsIDB4ZDYwMSwgIkQxMDJHR0MiLCBBTEM4ODNfM1NUXzZjaCksCiAJe30KIH07CkBAIC03ODI0LDYgKzc5OTQsMTggQEAKIAkJLm5lZWRfZGFjX2ZpeCA9IDEsCiAJCS5pbnB1dF9tdXggPSAmYWxjODgzX2NhcHR1cmVfc291cmNlLAogCX0sCisJW0FMQzg4M18zU1RfNmNoX0lOVEVMXSA9IHsKKwkJLm1peGVycyA9IHsgYWxjODgzXzNTVF82Y2hfaW50ZWxfbWl4ZXIsIGFsYzg4M19jaG1vZGVfbWl4ZXIgfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzg4M19pbml0X3ZlcmJzIH0sCisJCS5udW1fZGFjcyA9IEFSUkFZX1NJWkUoYWxjODgzX2RhY19uaWRzKSwKKwkJLmRhY19uaWRzID0gYWxjODgzX2RhY19uaWRzLAorCQkuZGlnX291dF9uaWQgPSBBTEM4ODNfRElHT1VUX05JRCwKKwkJLmRpZ19pbl9uaWQgPSBBTEM4ODNfRElHSU5fTklELAorCQkubnVtX2NoYW5uZWxfbW9kZSA9IEFSUkFZX1NJWkUoYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXMpLAorCQkuY2hhbm5lbF9tb2RlID0gYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXMsCisJCS5uZWVkX2RhY19maXggPSAxLAorCQkuaW5wdXRfbXV4ID0gJmFsYzg4M18zc3RhY2tfNmNoX2ludGVsLAorCX0sCiAJW0FMQzg4M182U1RfRElHXSA9IHsKIAkJLm1peGVycyA9IHsgYWxjODgzX2Jhc2VfbWl4ZXIsIGFsYzg4M19jaG1vZGVfbWl4ZXIgfSwKIAkJLmluaXRfdmVyYnMgPSB7IGFsYzg4M19pbml0X3ZlcmJzIH0sCkBAIC04MTQ1LDYgKzgzMjcsOCBAQAogCiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCisJYWxjX2ZpeF9wbGxfaW5pdChjb2RlYywgMHgyMCwgMHgwYSwgMTApOworCiAJYm9hcmRfY29uZmlnID0gc25kX2hkYV9jaGVja19ib2FyZF9jb25maWcoY29kZWMsIEFMQzg4M19NT0RFTF9MQVNULAogCQkJCQkJICBhbGM4ODNfbW9kZWxzLAogCQkJCQkJICBhbGM4ODNfY2ZnX3RibCk7CkBAIC04MTcxLDEyICs4MzU1LDI1IEBACiAJaWYgKGJvYXJkX2NvbmZpZyAhPSBBTEM4ODNfQVVUTykKIAkJc2V0dXBfcHJlc2V0KHNwZWMsICZhbGM4ODNfcHJlc2V0c1tib2FyZF9jb25maWddKTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4ODMgQW5hbG9nIjsKKwlzd2l0Y2ggKGNvZGVjLT52ZW5kb3JfaWQpIHsKKwljYXNlIDB4MTBlYzA4ODg6CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4ODggQW5hbG9nIjsKKwkJc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4ODggRGlnaXRhbCI7CisJCWJyZWFrOworCWNhc2UgMHgxMGVjMDg4OToKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4OSBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4OSBEaWdpdGFsIjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MyBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MyBEaWdpdGFsIjsKKwkJYnJlYWs7CisJfQorCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZhbGM4ODNfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjODgzX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2FsdF9jYXB0dXJlID0gJmFsYzg4M19wY21fYW5hbG9nX2FsdF9jYXB0dXJlOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4ODMgRGlnaXRhbCI7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfcGxheWJhY2sgPSAmYWxjODgzX3BjbV9kaWdpdGFsX3BsYXliYWNrOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX2NhcHR1cmUgPSAmYWxjODgzX3BjbV9kaWdpdGFsX2NhcHR1cmU7CiAKQEAgLTgxODksNiArODM4Niw5IEBACiAJY29kZWMtPnBhdGNoX29wcyA9IGFsY19wYXRjaF9vcHM7CiAJaWYgKGJvYXJkX2NvbmZpZyA9PSBBTEM4ODNfQVVUTykKIAkJc3BlYy0+aW5pdF9ob29rID0gYWxjODgzX2F1dG9faW5pdDsKKwllbHNlIGlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzA4ODgpCisJCXNwZWMtPmluaXRfaG9vayA9IGFsYzg4OF9jb2VmX2luaXQ7CisKICNpZmRlZiBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFCiAJaWYgKCFzcGVjLT5sb29wYmFjay5hbXBsaXN0KQogCQlzcGVjLT5sb29wYmFjay5hbXBsaXN0ID0gYWxjODgzX2xvb3BiYWNrczsKQEAgLTg2NDIsNiArODg0Miw3IEBACiAKIAl7MHgxNSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCiAJezB4MTUsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7fQogfTsKIAogLyogbXV0ZS91bm11dGUgaW50ZXJuYWwgc3BlYWtlciBhY2NvcmRpbmcgdG8gdGhlIGhwIGphY2sgYW5kIG11dGUgc3RhdGUgKi8KQEAgLTk1MjEsNiArOTcyMiw4IEBACiAJU05EX1BDSV9RVUlSSygweDEwNGQsIDB4ODIwZiwgIlNvbnkgQVNTQU1EIiwgQUxDMjYyX1NPTllfQVNTQU1EKSwKIAlTTkRfUENJX1FVSVJLKDB4MTA0ZCwgMHg5MDBlLCAiU29ueSBBU1NBTUQiLCBBTEMyNjJfU09OWV9BU1NBTUQpLAogCVNORF9QQ0lfUVVJUksoMHgxMDRkLCAweDkwMTUsICJTb255IDB4OTAxNSIsIEFMQzI2Ml9TT05ZX0FTU0FNRCksCisJU05EX1BDSV9RVUlSSygweDExNzksIDB4MDAwMSwgIlRvc2hpYmEgZHluYWJvb2sgU1MgUlgxIiwKKwkJICAgICAgQUxDMjYyX1NPTllfQVNTQU1EKSwKIAlTTkRfUENJX1FVSVJLKDB4MTBjZiwgMHgxMzk3LCAiRnVqaXRzdSIsIEFMQzI2Ml9GVUpJVFNVKSwKIAlTTkRfUENJX1FVSVJLKDB4MTBjZiwgMHgxNDJkLCAiRnVqaXRzdSBMaWZlYm9vayBFODQxMCIsIEFMQzI2Ml9GVUpJVFNVKSwKIAlTTkRfUENJX1FVSVJLKDB4MTQ0ZCwgMHhjMDMyLCAiU2Ftc3VuZyBRMSBVbHRyYSIsIEFMQzI2Ml9VTFRSQSksCkBAIC05NzI4LDYgKzk5MzEsOCBAQAogCX0KICNlbmRpZgogCisJYWxjX2ZpeF9wbGxfaW5pdChjb2RlYywgMHgyMCwgMHgwYSwgMTApOworCiAJYm9hcmRfY29uZmlnID0gc25kX2hkYV9jaGVja19ib2FyZF9jb25maWcoY29kZWMsIEFMQzI2Ml9NT0RFTF9MQVNULAogCQkJCQkJICBhbGMyNjJfbW9kZWxzLAogCQkJCQkJICBhbGMyNjJfY2ZnX3RibCk7CkBAIC0xMDY3MywxMiArMTA4NzgsMTggQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzI2OF9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzI2OF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2OCBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzAyNjcpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2NyBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzI2NyBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDMjY4IEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjMjY4X3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzI2OF9wY21fYW5hbG9nX2NhcHR1cmU7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19hbHRfY2FwdHVyZSA9ICZhbGMyNjhfcGNtX2FuYWxvZ19hbHRfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzI2OF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAogCWlmICghcXVlcnlfYW1wX2NhcHMoY29kZWMsIDB4MWQsIEhEQV9JTlBVVCkpCkBAIC0xMTAzMiw2ICsxMTI0Myw4IEBACiAKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKKwlhbGNfZml4X3BsbF9pbml0KGNvZGVjLCAweDIwLCAweDA0LCAxNSk7CisKIAlib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywgQUxDMjY5X01PREVMX0xBU1QsCiAJCQkJCQkgIGFsYzI2OV9tb2RlbHMsCiAJCQkJCQkgIGFsYzI2OV9jZmdfdGJsKTsKQEAgLTEyNjMwLDYgKzEyODQzLDEyIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2MHZkX2VhcGRfdmVyYnNbXSA9IHsKKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisJeyB9Cit9OworCiBzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzg2MXZkX2xlbm92b191bnNvbF92ZXJic1tdID0gewogCXsweDBjLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7MHgwYywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCkBAIC0xMjc4NSw2ICsxMzAwNCw3IEBACiAJU05EX1BDSV9RVUlSSygweDE1NjUsIDB4ODIwZCwgIkJpb3N0YXIgTkY2MVMgU0UiLCBBTEM4NjFWRF82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgyMDY2LCAiTGVub3ZvIiwgQUxDODYxVkRfTEVOT1ZPKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgzODAyLCAiTGVub3ZvIDMwMDAgQzIwMCIsIEFMQzg2MVZEX0xFTk9WTyksCisJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4Mzg0ZSwgIkxlbm92byAzMDAwIE4yMDAiLCBBTEM4NjFWRF9MRU5PVk8pLAogCVNORF9QQ0lfUVVJUksoMHgxODQ5LCAweDA4NjIsICJBU1JvY2sgSzhORjZHLVZTVEEiLCBBTEM4NjFWRF82U1RfRElHKSwKIAl7fQogfTsKQEAgLTEzMTY3LDExICsxMzM4NywxOSBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDODYxVkRfQVVUTykKIAkJc2V0dXBfcHJlc2V0KHNwZWMsICZhbGM4NjF2ZF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg2MVZEIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MCkgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYwLVZEIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYwLVZEIERpZ2l0YWwiOworCQkvKiBhbHdheXMgdHVybiBvbiBFQVBEICovCisJCXNwZWMtPmluaXRfdmVyYnNbc3BlYy0+bnVtX2luaXRfdmVyYnMrK10gPSBhbGM2NjB2ZF9lYXBkX3ZlcmJzOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4NjFWRCBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg2MVZEIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19jYXB0dXJlOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4NjFWRCBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4NjF2ZF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzg2MXZkX3BjbV9kaWdpdGFsX2NhcHR1cmU7CiAKQEAgLTEzMjUwLDYgKzEzNDc4LDIzIEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM2NjNfY2FwdHVyZV9zb3VyY2UgPSB7CisJLm51bV9pdGVtcyA9IDMsCisJLml0ZW1zID0geworCQl7ICJNaWMiLCAweDAgfSwKKwkJeyAiRnJvbnQgTWljIiwgMHgxIH0sCisJCXsgIkxpbmUiLCAweDIgfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfaW5wdXRfbXV4IGFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSA9IHsKKwkubnVtX2l0ZW1zID0gMiwKKwkuaXRlbXMgPSB7CisJCXsgIkV4dC1NaWMiLCAweDAgfSwKKwkJeyAiRC1NaWMiLCAweDkgfSwKKwl9LAorfTsKKwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1faW5mbyBhbGNfbXV4X2VudW1faW5mbwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1fZ2V0IGFsY19tdXhfZW51bV9nZXQKICNkZWZpbmUgYWxjNjYyX211eF9lbnVtX3B1dCBhbGM4ODJfbXV4X2VudW1fcHV0CkBAIC0xMzQzMCw2ICsxMzY3NSw0NCBAQAogCXsgfSAvKiBlbmQgKi8KIH07CiAKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfbTUxdmFfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJTcGVha2VyIFBsYXliYWNrIFZvbHVtZSIsIDB4MDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX01VVEUoIlNwZWFrZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDIzLCAweDksIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2M19nNzF2X21peGVyW10gPSB7CisJSERBX0NPREVDX1ZPTFVNRSgiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDAyLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MTQsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiRnJvbnQgUGxheWJhY2sgVm9sdW1lIiwgMHgwMywgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRnJvbnQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisKKwlIREFfQ09ERUNfVk9MVU1FKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoImktTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiaS1NaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCXsgfSAvKiBlbmQgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfZzUwdl9taXhlcltdID0geworCUhEQV9DT0RFQ19WT0xVTUUoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgMHgwMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiU3BlYWtlciBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgyMSwgMHgwLCBIREFfT1VUUFVUKSwKKworCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiaS1NaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJpLU1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTGluZSBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDIsIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2Ml9jaG1vZGVfbWl4ZXJbXSA9IHsKIAl7CiAJCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLApAQCAtMTM1MDAsNiArMTM3ODMsMTEgQEAKIAl7MHgyMywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCiAJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMil9LAogCXsweDIzLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDQpfSwKKworCS8qIGFsd2F5cyB0cnVuIG9uIEVBUEQgKi8KKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisKIAl7IH0KIH07CiAKQEAgLTEzNTcwLDYgKzEzODU4LDQzIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2M19tNTF2YV9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoOSl9LAorCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjNjYzX2c3MXZfaW5pdF92ZXJic1tdID0geworCXsweDE1LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJLyogezB4MTUsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwgKi8KKwkvKiB7MHgxNSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDF9LCAqLyAvKiBIZWFkcGhvbmUgKi8KKworCXsweDIxLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDB9LAkvKiBIZWFkcGhvbmUgKi8KKworCXsweDE1LCBBQ19WRVJCX1NFVF9VTlNPTElDSVRFRF9FTkFCTEUsIEFDX1VTUlNQX0VOfEFMQzg4MF9GUk9OVF9FVkVOVH0sCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX01JQ19FVkVOVH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX0hQX0VWRU5UfSwKKwl7fQorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM2NjNfZzUwdl9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKIC8qIGNhcHR1cmUgbWl4ZXIgZWxlbWVudHMgKi8KIHN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjJfY2FwdHVyZV9taXhlcltdID0gewogCUhEQV9DT0RFQ19WT0xVTUUoIkNhcHR1cmUgVm9sdW1lIiwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLApAQCAtMTM2OTEsNiArMTQwMTYsMTI1IEBACiAJYWxjNjYyX2VlZXBjX2VwMjBfYXV0b211dGUoY29kZWMpOwogfQogCitzdGF0aWMgdm9pZCBhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgcHJlc2VudDsKKwl1bnNpZ25lZCBjaGFyIGJpdHM7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIxLCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCWJpdHMgPSBwcmVzZW50ID8gSERBX0FNUF9NVVRFIDogMDsKKwlzbmRfaGRhX2NvZGVjX2FtcF9zdGVyZW8oY29kZWMsIDB4MTQsIEhEQV9PVVRQVVQsIDAsCisJCQkJIEhEQV9BTVBfTVVURSwgYml0cyk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV9taWNfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDE4LCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjIsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDAgPDwgOCkgfCAocHJlc2VudCA/IDAgOiAweDgwKSk7CisJc25kX2hkYV9jb2RlY193cml0ZV9jYWNoZShjb2RlYywgMHgyMywgMCwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwKKwkJCSAgICAweDcwMDAgfCAoMHgwMCA8PCA4KSB8IChwcmVzZW50ID8gMCA6IDB4ODApKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlX2NhY2hlKGNvZGVjLCAweDIyLCAwLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLAorCQkJICAgIDB4NzAwMCB8ICgweDA5IDw8IDgpIHwgKHByZXNlbnQgPyAweDgwIDogMCkpOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjMsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDkgPDwgOCkgfCAocHJlc2VudCA/IDB4ODAgOiAwKSk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYzX201MXZhX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX201MXZhX2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjNfbTUxdmFfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaHBfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE1LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworCXNuZF9oZGFfY29kZWNfYW1wX3N0ZXJlbyhjb2RlYywgMHgxNCwgSERBX09VVFBVVCwgMCwKKwkJCQkgSERBX0FNUF9NVVRFLCBiaXRzKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgxNSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE0LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworfQorCitzdGF0aWMgdm9pZCBhbGM2NjNfZzcxdl91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9ocF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX0ZST05UX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9mcm9udF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYyX2VlZXBjX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaW5pdGhvb2soc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoY29kZWMpOworCWFsYzY2M19nNzF2X2hwX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c1MHZfdW5zb2xfZXZlbnQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCisJCQkJCSAgIHVuc2lnbmVkIGludCByZXMpCit7CisJc3dpdGNoIChyZXMgPj4gMjYpIHsKKwljYXNlIEFMQzg4MF9IUF9FVkVOVDoKKwkJYWxjNjYzX201MXZhX3NwZWFrZXJfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwljYXNlIEFMQzg4MF9NSUNfRVZFTlQ6CisJCWFsYzY2Ml9lZWVwY19taWNfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19nNTB2X2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKwogI2lmZGVmIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUKICNkZWZpbmUgYWxjNjYyX2xvb3BiYWNrcwlhbGM4ODBfbG9vcGJhY2tzCiAjZW5kaWYKQEAgLTEzNzEzLDE0ICsxNDE1NywyNCBAQAogCVtBTEM2NjJfTEVOT1ZPXzEwMUVdCT0gImxlbm92by0xMDFlIiwKIAlbQUxDNjYyX0FTVVNfRUVFUENfUDcwMV0gPSAiZWVlcGMtcDcwMSIsCiAJW0FMQzY2Ml9BU1VTX0VFRVBDX0VQMjBdID0gImVlZXBjLWVwMjAiLAorCVtBTEM2NjNfQVNVU19NNTFWQV0gPSAibTUxdmEiLAorCVtBTEM2NjNfQVNVU19HNzFWXSA9ICJnNzF2IiwKKwlbQUxDNjYzX0FTVVNfSDEzXSA9ICJoMTMiLAorCVtBTEM2NjNfQVNVU19HNTBWXSA9ICJnNTB2IiwKIAlbQUxDNjYyX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGM2NjJfY2ZnX3RibFtdID0geworCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDExYzMsICJBU1VTIEc3MVYiLCBBTEM2NjNfQVNVU19HNzFWKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxODc4LCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX001MVZBKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxOWEzLCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX0c1MFYpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyOTAsICJBU1VTIFA1R0MtTVgiLCBBTEM2NjJfM1NUXzZjaF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyYTEsICJBU1VTIEVlZXBjIiwgQUxDNjYyX0FTVVNfRUVFUENfUDcwMSksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODJkMSwgIkFTVVMgRWVlcGMgRVAyMCIsIEFMQzY2Ml9BU1VTX0VFRVBDX0VQMjApLAogCVNORF9QQ0lfUVVJUksoMHgxN2FhLCAweDEwMWUsICJMZW5vdm8iLCBBTEM2NjJfTEVOT1ZPXzEwMUUpLAorCVNORF9QQ0lfUVVJUksoMHgxODU0LCAweDIwMDAsICJBU1VTIEgxMy0yMDAwIiwgQUxDNjYzX0FTVVNfSDEzKSwKKwlTTkRfUENJX1FVSVJLKDB4MTg1NCwgMHgyMDAxLCAiQVNVUyBIMTMtMjAwMSIsIEFMQzY2M19BU1VTX0gxMyksCisJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MjAwMiwgIkFTVVMgSDEzLTIwMDIiLCBBTEM2NjNfQVNVU19IMTMpLAogCXt9CiB9OwogCkBAIC0xMzgwOCw3ICsxNDI2Miw1MyBAQAogCQkudW5zb2xfZXZlbnQgPSBhbGM2NjJfZWVlcGNfZXAyMF91bnNvbF9ldmVudCwKIAkJLmluaXRfaG9vayA9IGFsYzY2Ml9lZWVwY19lcDIwX2luaXRob29rLAogCX0sCi0KKwlbQUxDNjYzX0FTVVNfTTUxVkFdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLmRpZ19vdXRfbmlkID0gQUxDNjYyX0RJR09VVF9OSUQsCisJCS5udW1fY2hhbm5lbF9tb2RlID0gQVJSQVlfU0laRShhbGM2NjJfM1NUXzJjaF9tb2RlcyksCisJCS5jaGFubmVsX21vZGUgPSBhbGM2NjJfM1NUXzJjaF9tb2RlcywKKwkJLmlucHV0X211eCA9ICZhbGM2NjNfbTUxdmFfY2FwdHVyZV9zb3VyY2UsCisJCS51bnNvbF9ldmVudCA9IGFsYzY2M19tNTF2YV91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19tNTF2YV9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19HNzFWXSA9IHsKKwkJLm1peGVycyA9IHsgYWxjNjYzX2c3MXZfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfZzcxdl9pbml0X3ZlcmJzIH0sCisJCS5udW1fZGFjcyA9IEFSUkFZX1NJWkUoYWxjNjYyX2RhY19uaWRzKSwKKwkJLmRhY19uaWRzID0gYWxjNjYyX2RhY19uaWRzLAorCQkuZGlnX291dF9uaWQgPSBBTEM2NjJfRElHT1VUX05JRCwKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2Ml9lZWVwY19jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX2c3MXZfdW5zb2xfZXZlbnQsCisJCS5pbml0X2hvb2sgPSBhbGM2NjNfZzcxdl9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19IMTNdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX201MXZhX3Vuc29sX2V2ZW50LAorCQkuaW5pdF9ob29rID0gYWxjNjYzX201MXZhX2luaXRob29rLAorCX0sCisJW0FMQzY2M19BU1VTX0c1MFZdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfZzUwdl9taXhlciwgYWxjNjYyX2NhcHR1cmVfbWl4ZXJ9LAorCQkuaW5pdF92ZXJicyA9IHsgYWxjNjYyX2luaXRfdmVyYnMsIGFsYzY2M19nNTB2X2luaXRfdmVyYnMgfSwKKwkJLm51bV9kYWNzID0gQVJSQVlfU0laRShhbGM2NjJfZGFjX25pZHMpLAorCQkuZGFjX25pZHMgPSBhbGM2NjJfZGFjX25pZHMsCisJCS5kaWdfb3V0X25pZCA9IEFMQzY2Ml9ESUdPVVRfTklELAorCQkubnVtX2NoYW5uZWxfbW9kZSA9IEFSUkFZX1NJWkUoYWxjNjYyXzNTVF82Y2hfbW9kZXMpLAorCQkuY2hhbm5lbF9tb2RlID0gYWxjNjYyXzNTVF82Y2hfbW9kZXMsCisJCS5pbnB1dF9tdXggPSAmYWxjNjYzX2NhcHR1cmVfc291cmNlLAorCQkudW5zb2xfZXZlbnQgPSBhbGM2NjNfZzUwdl91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19nNTB2X2luaXRob29rLAorCX0sCiB9OwogCiAKQEAgLTE0MDgxLDYgKzE0NTgxLDggQEAKIAogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAorCWFsY19maXhfcGxsX2luaXQoY29kZWMsIDB4MjAsIDB4MDQsIDE1KTsKKwogCWJvYXJkX2NvbmZpZyA9IHNuZF9oZGFfY2hlY2tfYm9hcmRfY29uZmlnKGNvZGVjLCBBTEM2NjJfTU9ERUxfTEFTVCwKIAkJCQkJCSAgYWxjNjYyX21vZGVscywKIAkJCSAgCSAgICAgICAgICAgICAgICAgIGFsYzY2Ml9jZmdfdGJsKTsKQEAgLTE0MTA3LDExICsxNDYwOSwxNyBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDNjYyX0FVVE8pCiAJCXNldHVwX3ByZXNldChzcGVjLCAmYWxjNjYyX3ByZXNldHNbYm9hcmRfY29uZmlnXSk7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYyIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MykgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYzIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYzIERpZ2l0YWwiOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM2NjIgQW5hbG9nIjsKKwkJc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM2NjIgRGlnaXRhbCI7CisJfQorCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZhbGM2NjJfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjNjYyX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYyIERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9jYXB0dXJlOwogCkBAIC0xNDE1MCw2ICsxNDY1OCw3IEBACiAJICAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKIAl7IC5pZCA9IDB4MTBlYzA2NjIsIC5yZXYgPSAweDEwMDEwMSwgLm5hbWUgPSAiQUxDNjYyIHJldjEiLAogCSAgLnBhdGNoID0gcGF0Y2hfYWxjNjYyIH0sCisJeyAuaWQgPSAweDEwZWMwNjYzLCAubmFtZSA9ICJBTEM2NjMiLCAucGF0Y2ggPSBwYXRjaF9hbGM2NjIgfSwKIAl7IC5pZCA9IDB4MTBlYzA4ODAsIC5uYW1lID0gIkFMQzg4MCIsIC5wYXRjaCA9IHBhdGNoX2FsYzg4MCB9LAogCXsgLmlkID0gMHgxMGVjMDg4MiwgLm5hbWUgPSAiQUxDODgyIiwgLnBhdGNoID0gcGF0Y2hfYWxjODgyIH0sCiAJeyAuaWQgPSAweDEwZWMwODgzLCAubmFtZSA9ICJBTEM4ODMiLCAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYwppbmRleCBhNGY0NGEwLi4wOGNiNzdmIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRlbC5jCkBAIC02MzYsMjEgKzYzNiwyOCBAQAogCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiB9OwogCisjZGVmaW5lIEhEX0RJU0FCTEVfUE9SVEYgMwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBzdGFjOTJoZDcxYnh4X2FuYWxvZ19jb3JlX2luaXRbXSA9IHsKKwkvKiBzdGFydCBvZiBjb25maWcgIzEgKi8KKworCS8qIGNvbm5lY3QgcG9ydCAwZiB0byBhdWRpbyBtaXhlciAqLworCXsgMHgwZiwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCisJeyAweDBmLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVR9LCAvKiBTcGVha2VyICovCisJLyogdW5tdXRlIHJpZ2h0IGFuZCBsZWZ0IGNoYW5uZWxzIGZvciBub2RlIDB4MGYgKi8KKwl7IDB4MGYsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAorCS8qIHN0YXJ0IG9mIGNvbmZpZyAjMiAqLworCiAJLyogc2V0IG1hc3RlciB2b2x1bWUgYW5kIGRpcmVjdCBjb250cm9sICovCiAJeyAweDI4LCBBQ19WRVJCX1NFVF9WT0xVTUVfS05PQl9DT05UUk9MLCAweGZmfSwKIAkvKiBjb25uZWN0IGhlYWRwaG9uZSBqYWNrIHRvIGRhYzEgKi8KIAl7IDB4MGEsIEFDX1ZFUkJfU0VUX0NPTk5FQ1RfU0VMLCAweDAxfSwKLQkvKiBjb25uZWN0IHBvcnRzIDBkIGFuZCAwZiB0byBhdWRpbyBtaXhlciAqLworCS8qIGNvbm5lY3QgcG9ydCAwZCB0byBhdWRpbyBtaXhlciAqLwogCXsgMHgwZCwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCi0JeyAweDBmLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgyfSwKLQl7IDB4MGYsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX09VVH0sIC8qIFNwZWFrZXIgKi8KIAkvKiB1bm11dGUgZGFjMCBpbnB1dCBpbiBhdWRpbyBtaXhlciAqLwogCXsgMHgxNywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgMHg3MDFmfSwKLQkvKiB1bm11dGUgcmlnaHQgYW5kIGxlZnQgY2hhbm5lbHMgZm9yIG5vZGVzIDB4MGEsIDB4ZCwgMHgwZiAqLworCS8qIHVubXV0ZSByaWdodCBhbmQgbGVmdCBjaGFubmVscyBmb3Igbm9kZXMgMHgwYSwgMHhkICovCiAJeyAweDBhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7IDB4MGQsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAotCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiAJe30KIH07CiAKQEAgLTgxOCw2ICs4MjUsOSBAQAogCUhEQV9DT0RFQ19NVVRFX0lEWCgiQ2FwdHVyZSBTd2l0Y2giLCAweDEsIDB4MWQsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9JRFgoIkNhcHR1cmUgTXV4IFZvbHVtZSIsIDB4MSwgMHgxYiwgMHgwLCBIREFfT1VUUFVUKSwKIAorCUhEQV9DT0RFQ19WT0xVTUUoIlBDIEJlZXAgVm9sdW1lIiwgMHgxNywgMHgyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBCZWVwIFN3aXRjaCIsIDB4MTcsIDB4MiwgSERBX0lOUFVUKSwKKwogCUhEQV9DT0RFQ19NVVRFKCJBbmFsb2cgTG9vcGJhY2sgMSIsIDB4MTcsIDB4MywgSERBX0lOUFVUKSwKIAlIREFfQ09ERUNfTVVURSgiQW5hbG9nIExvb3BiYWNrIDIiLCAweDE3LCAweDQsIEhEQV9JTlBVVCksCiAJeyB9IC8qIGVuZCAqLwpAQCAtMTMxNywxMyArMTMyNywxMyBAQAogCTB4OTBhMDAwZjAsIDB4MDE0NTIwNTAsCiB9OwogCi1zdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMV9waW5fY29uZmlnc1sxM10gPSB7CitzdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMV9waW5fY29uZmlnc1sxMF0gPSB7CiAJMHgwNDIxMTAxZiwgMHgwNGExMTIyMSwgMHg0MGYwMDBmMCwgMHg5MDE3MDExMCwKIAkweDIzYTE5MDJlLCAweDIzMDE0MjUwLCAweDQwZjAwMGYwLCAweDkwYTAwMGYwLAogCTB4NDBmMDAwZjAsIDB4NGYwMDAwZjAsCiB9OwogCi1zdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMl9waW5fY29uZmlnc1sxM10gPSB7CitzdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMl9waW5fY29uZmlnc1sxMF0gPSB7CiAJMHgwNDIxMTAxZiwgMHgwNGExMTIyMSwgMHg5MGE3MDMzMCwgMHg5MDE3MDExMCwKIAkweDIzYTE5MDJlLCAweDIzMDE0MjUwLCAweDQwZjAwMGYwLCAweDQwZjAwMGYwLAogCTB4NDBmMDAwZjAsIDB4MDQ0NDEzYjAsCkBAIC0xNzU0LDEyICsxNzY0LDggQEAKIAkJICAgICAgInVua25vd24gRGVsbCIsIFNUQUNfOTIwNV9ERUxMX000MiksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmOCwKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFjLAotCQkJICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZjksCiAJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIxYiwKLQkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWZhLAogCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZmMsCkBAIC0xNzcwLDE4ICsxNzc2LDE0IEBACiAJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmZiwKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIE00MzAwIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA2LAotCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZjEsCi0JCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWYyLAotCQkgICAgICAiRGVsbCBJbnNwaXJvbiIsIFNUQUNfOTIwNV9ERUxMX000NCksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmYywKLQkJICAgICAgIkRlbGwgSW5zcGlyb24iLCBTVEFDXzkyMDVfREVMTF9NNDQpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZmQsCi0JCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA0LAogCQkgICAgICAidW5rbm93biBEZWxsIiwgU1RBQ185MjA1X0RFTExfTTQyKSwKKwlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA2LAorCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAorCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMWIsCisJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCisJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIxYywKKwkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFmLAogCQkgICAgICAiRGVsbCBJbnNwaXJvbiIsIFNUQUNfOTIwNV9ERUxMX000NCksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIyOCwKQEAgLTMxMDMsMTMgKzMxMDUsMTYgQEAKIAkJCQkJMCwgQUNfVkVSQl9HRVRfUElOX1dJREdFVF9DT05UUk9MLCAwKTsKIAkJaW50IGRlZl9jb25mID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCBzcGVjLT5wd3Jfbmlkc1tpXSwKIAkJCQkJMCwgQUNfVkVSQl9HRVRfQ09ORklHX0RFRkFVTFQsIDApOworCQlkZWZfY29uZiA9IGdldF9kZWZjZmdfY29ubmVjdChkZWZfY29uZik7CiAJCS8qIG91dHB1dHMgYXJlIG9ubHkgcG9ydHMgY2FwYWJsZSBvZiBwb3dlciBtYW5hZ2VtZW50CiAJCSAqIGFueSBhdHRlbXB0cyBvbiBwb3dlcmluZyBkb3duIGEgaW5wdXQgcG9ydCBjYXVzZSB0aGUKIAkJICogcmVmZXJlbmNlZCBWUkVGIHRvIGFjdCBxdWlya3kuCiAJCSAqLwogCQlpZiAocGluY3RsICYgQUNfUElOQ1RMX0lOX0VOKQogCQkJY29udGludWU7Ci0JCWlmIChnZXRfZGVmY2ZnX2Nvbm5lY3QoZGVmX2NvbmYpICE9IEFDX0pBQ0tfUE9SVF9GSVhFRCkKKwkJLyogc2tpcCBhbnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIGphY2tzIHNpbmNlIHByZXNlbmNlCisgCQkgKiBkZXRlY3Rpb24gaXMgdXNlbGVzcyAqLworCQlpZiAoZGVmX2NvbmYgJiYgZGVmX2NvbmYgIT0gQUNfSkFDS19QT1JUX0ZJWEVEKQogCQkJY29udGludWU7CiAJCWVuYWJsZV9waW5fZGV0ZWN0KGNvZGVjLCBzcGVjLT5wd3Jfbmlkc1tpXSwgZXZlbnQgfCBpKTsKIAkJY29kZWMtPnBhdGNoX29wcy51bnNvbF9ldmVudChjb2RlYywgKGV2ZW50IHwgaSkgPDwgMjYpOwpAQCAtMzYxNCw2ICszNjE5LDcgQEAKIAogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAlzcGVjLT5udW1fcGlucyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9waW5fbmlkcyk7CisJc3BlYy0+bnVtX3B3cnMgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfcHdyX25pZHMpOwogCXNwZWMtPnBpbl9uaWRzID0gc3RhYzkyaGQ3MWJ4eF9waW5fbmlkczsKIAlzcGVjLT5ib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywKIAkJCQkJCQlTVEFDXzkySEQ3MUJYWF9NT0RFTFMsCkBAIC0zNjQyLDYgKzM2NDgsMTkgQEAKIAkJc3BlYy0+bWl4ZXIgPSBzdGFjOTJoZDcxYnh4X21peGVyOwogCQlzcGVjLT5pbml0ID0gc3RhYzkyaGQ3MWJ4eF9jb3JlX2luaXQ7CiAJCWJyZWFrOworCWNhc2UgMHgxMTFkNzYwODogLyogNSBQb3J0IHdpdGggQW5hbG9nIE1peGVyICovCisJCS8qIG5vIG91dHB1dCBhbXBzICovCisJCXNwZWMtPm51bV9wd3JzID0gMDsKKwkJc3BlYy0+bWl4ZXIgPSBzdGFjOTJoZDcxYnh4X2FuYWxvZ19taXhlcjsKKworCQkvKiBkaXNhYmxlIFZTVyAqLworCQlzcGVjLT5pbml0ID0gJnN0YWM5MmhkNzFieHhfYW5hbG9nX2NvcmVfaW5pdFtIRF9ESVNBQkxFX1BPUlRGXTsKKwkJc3RhYzkyeHhfc2V0X2NvbmZpZ19yZWcoY29kZWMsIDB4ZiwgMHg0MGYwMDBmMCk7CisJCWJyZWFrOworCWNhc2UgMHgxMTFkNzYwMzogLyogNiBQb3J0IHdpdGggQW5hbG9nIE1peGVyICovCisJCS8qIG5vIG91dHB1dCBhbXBzICovCisJCXNwZWMtPm51bV9wd3JzID0gMDsKKwkJLyogZmFsbHRocnUgKi8KIAlkZWZhdWx0OgogCQlzcGVjLT5taXhlciA9IHN0YWM5MmhkNzFieHhfYW5hbG9nX21peGVyOwogCQlzcGVjLT5pbml0ID0gc3RhYzkyaGQ3MWJ4eF9hbmFsb2dfY29yZV9pbml0OwpAQCAtMzY1MywyMiArMzY3MiwxOSBAQAogCS8qIEdQSU8wIEhpZ2ggPSBFQVBEICovCiAJc3BlYy0+Z3Bpb19tYXNrID0gMHgwMTsKIAlzcGVjLT5ncGlvX2RpciA9IDB4MDE7Ci0Jc3BlYy0+Z3Bpb19tYXNrID0gMHgwMTsKIAlzcGVjLT5ncGlvX2RhdGEgPSAweDAxOwogCiAJc3BlYy0+bXV4X25pZHMgPSBzdGFjOTJoZDcxYnh4X211eF9uaWRzOwogCXNwZWMtPmFkY19uaWRzID0gc3RhYzkyaGQ3MWJ4eF9hZGNfbmlkczsKIAlzcGVjLT5kbWljX25pZHMgPSBzdGFjOTJoZDcxYnh4X2RtaWNfbmlkczsKIAlzcGVjLT5kbXV4X25pZHMgPSBzdGFjOTJoZDcxYnh4X2RtdXhfbmlkczsKKwlzcGVjLT5wd3JfbmlkcyA9IHN0YWM5MmhkNzFieHhfcHdyX25pZHM7CiAKIAlzcGVjLT5udW1fbXV4ZXMgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfbXV4X25pZHMpOwogCXNwZWMtPm51bV9hZGNzID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X2FkY19uaWRzKTsKIAlzcGVjLT5udW1fZG1pY3MgPSBTVEFDOTJIRDcxQlhYX05VTV9ETUlDUzsKIAlzcGVjLT5udW1fZG11eGVzID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X2RtdXhfbmlkcyk7CiAKLQlzcGVjLT5udW1fcHdycyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9wd3Jfbmlkcyk7Ci0Jc3BlYy0+cHdyX25pZHMgPSBzdGFjOTJoZDcxYnh4X3B3cl9uaWRzOwotCiAJc3BlYy0+bXVsdGlvdXQubnVtX2RhY3MgPSAxOwogCXNwZWMtPm11bHRpb3V0LmhwX25pZCA9IDB4MTE7CiAJc3BlYy0+bXVsdGlvdXQuZGFjX25pZHMgPSBzdGFjOTJoZDcxYnh4X2RhY19uaWRzOwpAQCAtNDMwNiwxMCArNDMyMiwxMSBAQAogIAl7IC5pZCA9IDB4ODM4NDc2YTUsIC5uYW1lID0gIlNUQUM5MjU1RCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MjA1IH0sCiAgCXsgLmlkID0gMHg4Mzg0NzZhNiwgLm5hbWUgPSAiU1RBQzkyNTQiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTIwNSB9LAogIAl7IC5pZCA9IDB4ODM4NDc2YTcsIC5uYW1lID0gIlNUQUM5MjU0RCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MjA1IH0sCisJeyAuaWQgPSAweDExMWQ3NjAzLCAubmFtZSA9ICI5MkhENzVCM1g1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3MWJ4eH0sCisJeyAuaWQgPSAweDExMWQ3NjA4LCAubmFtZSA9ICI5MkhENzVCMlg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3MWJ4eH0sCiAJeyAuaWQgPSAweDExMWQ3Njc0LCAubmFtZSA9ICI5MkhENzNEMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCiAJeyAuaWQgPSAweDExMWQ3Njc1LCAubmFtZSA9ICI5MkhENzNDMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCiAJeyAuaWQgPSAweDExMWQ3Njc2LCAubmFtZSA9ICI5MkhENzNFMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCi0JeyAuaWQgPSAweDExMWQ3NjA4LCAubmFtZSA9ICI5MkhENzFCWFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIwLCAubmFtZSA9ICI5MkhENzFCOFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIxLCAubmFtZSA9ICI5MkhENzFCOFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIyLCAubmFtZSA9ICI5MkhENzFCN1giLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaWNlMTcxMi9lbnZ5MjRodC5oIGIvc291bmQvcGNpL2ljZTE3MTIvZW52eTI0aHQuaAppbmRleCA0M2I5ZTNlLi5hMGM1ZTAwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9lbnZ5MjRodC5oCisrKyBiL3NvdW5kL3BjaS9pY2UxNzEyL2VudnkyNGh0LmgKQEAgLTkzLDkgKzkzLDEzIEBACiAjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX1RYRklGTwkJMHgwYQkvKmJ5dGUgcm8uIG51bWJlciBvZiBieXRlcyBpbiBUWCBmaWZvKi8KICNkZWZpbmUgVlQxNzI0X1JFR19NUFVfUlhGSUZPCQkweDBiCS8qYnl0ZSByby4gbnVtYmVyIG9mIGJ5dGVzIGluIFJYIGZpZm8qLwogCi0vL2FyZSB0aGVzZSAyIHRoZSB3cm9uZyB3YXkgYXJvdW5kPyB0aGV5IGRvbid0IHNlZW0gdG8gYmUgdXNlZCB5ZXQgYW55d2F5Ci0jZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0NUUkwJCTB4MGMJLyogYnl0ZSAqLwotI2RlZmluZSBWVDE3MjRfUkVHX01QVV9EQVRBCQkweDBkCS8qIGJ5dGUgKi8KKyNkZWZpbmUgVlQxNzI0X1JFR19NUFVfREFUQQkJMHgwYwkvKiBieXRlICovCisjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0NUUkwJCTB4MGQJLyogYnl0ZSAqLworI2RlZmluZSAgIFZUMTcyNF9NUFVfVUFSVAkweDAxCisjZGVmaW5lICAgVlQxNzI0X01QVV9UWF9FTVBUWQkweDAyCisjZGVmaW5lICAgVlQxNzI0X01QVV9UWF9GVUxMCTB4MDQKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1JYX0VNUFRZCTB4MDgKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1JYX0ZVTEwJMHgxMAogCiAjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0ZJRk9fV00JMHgwZQkvKmJ5dGUgc2V0IHRoZSBoaWdoL2xvdyB3YXRlcm1hcmtzIGZvciBSWC9UWCBmaWZvcyovCiAjZGVmaW5lICAgVlQxNzI0X01QVV9SWF9GSUZPCTB4MjAJLy8xPXJ4IGZpZm8gd2F0ZXJtYXJrIDA9dHggZmlmbyB3YXRlcm1hcmsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIuaCBiL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIuaAppbmRleCAzMjA4OTAxLi43NjJmYmQ3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzEyLmgKKysrIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcxMi5oCkBAIC0zMzMsNiArMzMzLDggQEAKIAl1bnNpZ25lZCBpbnQgaGFzX3NwZGlmOiAxOwkvKiBWVDE3MjAvNCAtIGhhcyBTUERJRiBJL08gKi8KIAl1bnNpZ25lZCBpbnQgZm9yY2VfcGRtYTQ6IDE7CS8qIFZUMTcyMC80IC0gUERNQTQgYXMgbm9uLXNwZGlmICovCiAJdW5zaWduZWQgaW50IGZvcmNlX3JkbWExOiAxOwkvKiBWVDE3MjAvNCAtIFJETUExIGFzIG5vbi1zcGRpZiAqLworCXVuc2lnbmVkIGludCBtaWRpX291dHB1dDogMTsJLyogVlQxNzIwLzQ6IE1JREkgb3V0cHV0IHRyaWdnZXJlZCAqLworCXVuc2lnbmVkIGludCBtaWRpX2lucHV0OiAxOwkvKiBWVDE3MjAvNDogTUlESSBpbnB1dCB0cmlnZ2VyZWQgKi8KIAl1bnNpZ25lZCBpbnQgbnVtX3RvdGFsX2RhY3M7CS8qIHRvdGFsIERBQ3MgKi8KIAl1bnNpZ25lZCBpbnQgbnVtX3RvdGFsX2FkY3M7CS8qIHRvdGFsIEFEQ3MgKi8KIAl1bnNpZ25lZCBpbnQgY3VyX3JhdGU7CQkvKiBjdXJyZW50IHJhdGUgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MjQuYyBiL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MjQuYwppbmRleCA2NzM1MDkwLi5lNTk2ZDc3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzI0LmMKKysrIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcyNC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvaW5mby5oPgotI2luY2x1ZGUgPHNvdW5kL21wdTQwMS5oPgorI2luY2x1ZGUgPHNvdW5kL3Jhd21pZGkuaD4KICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAKICNpbmNsdWRlIDxzb3VuZC9hc291bmRlZi5oPgpAQCAtMjIzLDMwICsyMjMsMTUzIEBACiB9CiAKIC8qCi0gKiBNUFU0MDEgYWNjZXNzb3IKKyAqIE1JREkKICAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX3Z0MTcyNF9tcHU0MDFfcmVhZChzdHJ1Y3Qgc25kX21wdTQwMSAqbXB1LAotCQkJCQkgICAgdW5zaWduZWQgbG9uZyBhZGRyKQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9jbGVhcl9yeChzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSkKIHsKLQkvKiBmaXggc3RhdHVzIGJpdHMgdG8gdGhlIHN0YW5kYXJkIHBvc2l0aW9uICovCi0JLyogb25seSBSWF9FTVBUWSBhbmQgVFhfRlVMTCBhcmUgY2hlY2tlZCAqLwotCWlmIChhZGRyID09IE1QVTQwMUMobXB1KSkKLQkJcmV0dXJuIChpbmIoYWRkcikgJiAweDBjKSA8PCA0OwotCWVsc2UKLQkJcmV0dXJuIGluYihhZGRyKTsKKwl1bnNpZ25lZCBpbnQgY291bnQ7CisKKwlmb3IgKGNvdW50ID0gaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfUlhGSUZPKSk7IGNvdW50ID4gMDsgLS1jb3VudCkKKwkJaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfREFUQSkpOwogfQogCi1zdGF0aWMgdm9pZCBzbmRfdnQxNzI0X21wdTQwMV93cml0ZShzdHJ1Y3Qgc25kX21wdTQwMSAqbXB1LAotCQkJCSAgICB1bnNpZ25lZCBjaGFyIGRhdGEsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqCitnZXRfcmF3bWlkaV9zdWJzdHJlYW0oc3RydWN0IHNuZF9pY2UxNzEyICppY2UsIHVuc2lnbmVkIGludCBzdHJlYW0pCiB7Ci0JaWYgKGFkZHIgPT0gTVBVNDAxQyhtcHUpKSB7Ci0JCWlmIChkYXRhID09IE1QVTQwMV9FTlRFUl9VQVJUKQotCQkJb3V0YigweDAxLCBhZGRyKTsKLQkJLyogd2hhdCBlbHNlPyAqLwotCX0gZWxzZQotCQlvdXRiKGRhdGEsIGFkZHIpOworCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5KCZpY2UtPnJtaWRpWzBdLT5zdHJlYW1zW3N0cmVhbV0uc3Vic3RyZWFtcywKKwkJCQlzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtLCBsaXN0KTsKIH0KIAorc3RhdGljIHZvaWQgdnQxNzI0X21pZGlfd3JpdGUoc3RydWN0IHNuZF9pY2UxNzEyICppY2UpCit7CisJc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqczsKKwlpbnQgY291bnQsIGk7CisJdTggYnVmZmVyWzMyXTsKKworCXMgPSBnZXRfcmF3bWlkaV9zdWJzdHJlYW0oaWNlLCBTTkRSVl9SQVdNSURJX1NUUkVBTV9PVVRQVVQpOworCWNvdW50ID0gMzEgLSBpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9UWEZJRk8pKTsKKwlpZiAoY291bnQgPiAwKSB7CisJCWNvdW50ID0gc25kX3Jhd21pZGlfdHJhbnNtaXQocywgYnVmZmVyLCBjb3VudCk7CisJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQorCQkJb3V0YihidWZmZXJbaV0sIElDRVJFRzE3MjQoaWNlLCBNUFVfREFUQSkpOworCX0KK30KKworc3RhdGljIHZvaWQgdnQxNzI0X21pZGlfcmVhZChzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSkKK3sKKwlzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzOworCWludCBjb3VudCwgaTsKKwl1OCBidWZmZXJbMzJdOworCisJcyA9IGdldF9yYXdtaWRpX3N1YnN0cmVhbShpY2UsIFNORFJWX1JBV01JRElfU1RSRUFNX0lOUFVUKTsKKwljb3VudCA9IGluYihJQ0VSRUcxNzI0KGljZSwgTVBVX1JYRklGTykpOworCWlmIChjb3VudCA+IDApIHsKKwkJY291bnQgPSBtaW4oY291bnQsIDMyKTsKKwkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCisJCQlidWZmZXJbaV0gPSBpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9EQVRBKSk7CisJCXNuZF9yYXdtaWRpX3JlY2VpdmUocywgYnVmZmVyLCBjb3VudCk7CisJfQorfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfZW5hYmxlX21pZGlfaXJxKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICB1OCBmbGFnLCBpbnQgZW5hYmxlKQoreworCXN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlID0gc3Vic3RyZWFtLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOworCXU4IG1hc2s7CisKKwlzcGluX2xvY2tfaXJxKCZpY2UtPnJlZ19sb2NrKTsKKwltYXNrID0gaW5iKElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJaWYgKGVuYWJsZSkKKwkJbWFzayAmPSB+ZmxhZzsKKwllbHNlCisJCW1hc2sgfD0gZmxhZzsKKwlvdXRiKG1hc2ssIElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJc3Bpbl91bmxvY2tfaXJxKCZpY2UtPnJlZ19sb2NrKTsKK30KKworc3RhdGljIGludCB2dDE3MjRfbWlkaV9vdXRwdXRfb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfVFgsIDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ0MTcyNF9taWRpX291dHB1dF9jbG9zZShzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfVFgsIDApOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9vdXRwdXRfdHJpZ2dlcihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzLCBpbnQgdXApCit7CisJc3RydWN0IHNuZF9pY2UxNzEyICppY2UgPSBzLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworCWlmICh1cCkgeworCQlpY2UtPm1pZGlfb3V0cHV0ID0gMTsKKwkJdnQxNzI0X21pZGlfd3JpdGUoaWNlKTsKKwl9IGVsc2UgeworCQlpY2UtPm1pZGlfb3V0cHV0ID0gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9vdXRwdXRfZHJhaW4oc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqcykKK3sKKwlzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSA9IHMtPnJtaWRpLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCisJLyogMzIgYnl0ZXMgc2hvdWxkIGJlIHRyYW5zbWl0dGVkIGluIGxlc3MgdGhhbiBhYm91dCAxMiBtcyAqLworCXRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxNSk7CisJZG8geworCQlpZiAoaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfQ1RSTCkpICYgVlQxNzI0X01QVV9UWF9FTVBUWSkKKwkJCWJyZWFrOworCQlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZSgxKTsKKwl9IHdoaWxlICh0aW1lX2FmdGVyKHRpbWVvdXQsIGppZmZpZXMpKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfcmF3bWlkaV9vcHMgdnQxNzI0X21pZGlfb3V0cHV0X29wcyA9IHsKKwkub3BlbiA9IHZ0MTcyNF9taWRpX291dHB1dF9vcGVuLAorCS5jbG9zZSA9IHZ0MTcyNF9taWRpX291dHB1dF9jbG9zZSwKKwkudHJpZ2dlciA9IHZ0MTcyNF9taWRpX291dHB1dF90cmlnZ2VyLAorCS5kcmFpbiA9IHZ0MTcyNF9taWRpX291dHB1dF9kcmFpbiwKK307CisKK3N0YXRpYyBpbnQgdnQxNzI0X21pZGlfaW5wdXRfb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9taWRpX2NsZWFyX3J4KHMtPnJtaWRpLT5wcml2YXRlX2RhdGEpOworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfUlgsIDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ0MTcyNF9taWRpX2lucHV0X2Nsb3NlKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMpCit7CisJdnQxNzI0X2VuYWJsZV9taWRpX2lycShzLCBWVDE3MjRfSVJRX01QVV9SWCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9taWRpX2lucHV0X3RyaWdnZXIoc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqcywgaW50IHVwKQoreworCXN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlID0gcy0+cm1pZGktPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmljZS0+cmVnX2xvY2ssIGZsYWdzKTsKKwlpZiAodXApIHsKKwkJaWNlLT5taWRpX2lucHV0ID0gMTsKKwkJdnQxNzI0X21pZGlfcmVhZChpY2UpOworCX0gZWxzZSB7CisJCWljZS0+bWlkaV9pbnB1dCA9IDA7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmljZS0+cmVnX2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfcmF3bWlkaV9vcHMgdnQxNzI0X21pZGlfaW5wdXRfb3BzID0geworCS5vcGVuID0gdnQxNzI0X21pZGlfaW5wdXRfb3BlbiwKKwkuY2xvc2UgPSB2dDE3MjRfbWlkaV9pbnB1dF9jbG9zZSwKKwkudHJpZ2dlciA9IHZ0MTcyNF9taWRpX2lucHV0X3RyaWdnZXIsCit9OworCiAKIC8qCiAgKiAgSW50ZXJydXB0IGhhbmRsZXIKQEAgLTI3OCwxMyArNDAxLDEwIEBACiAjZW5kaWYKIAkJaGFuZGxlZCA9IDE7CQkKIAkJaWYgKHN0YXR1cyAmIFZUMTcyNF9JUlFfTVBVX1RYKSB7Ci0JCQlpZiAoaWNlLT5ybWlkaVswXSkKLQkJCQlzbmRfbXB1NDAxX3VhcnRfaW50ZXJydXB0X3R4KGlycSwKLQkJCQkJaWNlLT5ybWlkaVswXS0+cHJpdmF0ZV9kYXRhKTsKLQkJCWVsc2UgLyogZGlzYWJsZSBUWCB0byBiZSBzdXJlICovCi0JCQkJb3V0YihpbmIoSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKSB8Ci0JCQkJICAgICBWVDE3MjRfSVJRX01QVV9UWCwKLQkJCQkgICAgIElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJCQlzcGluX2xvY2soJmljZS0+cmVnX2xvY2spOworCQkJaWYgKGljZS0+bWlkaV9vdXRwdXQpCisJCQkJdnQxNzI0X21pZGlfd3JpdGUoaWNlKTsKKwkJCXNwaW5fdW5sb2NrKCZpY2UtPnJlZ19sb2NrKTsKIAkJCS8qIER1ZSB0byBteXN0ZXJpY2FsIHJlYXNvbnMsIE1QVV9UWCBpcyBhbHdheXMKIAkJCSAqIGdlbmVyYXRlZCAoYW5kIGNhbid0IGJlIGNsZWFyZWQpIHdoZW4gYSBQQ00KIAkJCSAqIHBsYXliYWNrIGlzIGdvaW5nLiAgU28gbGV0J3MgaWdub3JlIGF0IHRoZQpAQCAtMjkzLDEzICs0MTMsMTIgQEAKIAkJCXN0YXR1c19tYXNrICY9IH5WVDE3MjRfSVJRX01QVV9UWDsKIAkJfQogCQlpZiAoc3RhdHVzICYgVlQxNzI0X0lSUV9NUFVfUlgpIHsKLQkJCWlmIChpY2UtPnJtaWRpWzBdKQotCQkJCXNuZF9tcHU0MDFfdWFydF9pbnRlcnJ1cHQoaXJxLAotCQkJCQlpY2UtPnJtaWRpWzBdLT5wcml2YXRlX2RhdGEpOwotCQkJZWxzZSAvKiBkaXNhYmxlIFJYIHRvIGJlIHN1cmUgKi8KLQkJCQlvdXRiKGluYihJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpIHwKLQkJCQkgICAgIFZUMTcyNF9JUlFfTVBVX1JYLAotCQkJCSAgICAgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwkJCXNwaW5fbG9jaygmaWNlLT5yZWdfbG9jayk7CisJCQlpZiAoaWNlLT5taWRpX2lucHV0KQorCQkJCXZ0MTcyNF9taWRpX3JlYWQoaWNlKTsKKwkJCWVsc2UKKwkJCQl2dDE3MjRfbWlkaV9jbGVhcl9yeChpY2UpOworCQkJc3Bpbl91bmxvY2soJmljZS0+cmVnX2xvY2spOwogCQl9CiAJCS8qIGFjayBNUFUgaXJxICovCiAJCW91dGIoc3RhdHVzLCBJQ0VSRUcxNzI0KGljZSwgSVJRU1RBVCkpOwpAQCAtMjQyNSwyOCArMjU0NCwzMCBAQAogCiAJaWYgKCEgYy0+bm9fbXB1NDAxKSB7CiAJCWlmIChpY2UtPmVlcHJvbS5kYXRhW0lDRV9FRVAyX1NZU0NPTkZdICYgVlQxNzI0X0NGR19NUFU0MDEpIHsKLQkJCXN0cnVjdCBzbmRfbXB1NDAxICptcHU7Ci0JCQlpZiAoKGVyciA9IHNuZF9tcHU0MDFfdWFydF9uZXcoY2FyZCwgMCwgTVBVNDAxX0hXX0lDRTE3MTIsCi0JCQkJCQkgICAgICAgSUNFUkVHMTcyNChpY2UsIE1QVV9DVFJMKSwKLQkJCQkJCSAgICAgICAoTVBVNDAxX0lORk9fSU5URUdSQVRFRCB8Ci0JCQkJCQkJTVBVNDAxX0lORk9fTk9fQUNLIHwKLQkJCQkJCQlNUFU0MDFfSU5GT19UWF9JUlEpLAotCQkJCQkJICAgICAgIGljZS0+aXJxLCAwLAotCQkJCQkJICAgICAgICZpY2UtPnJtaWRpWzBdKSkgPCAwKSB7CisJCQlzdHJ1Y3Qgc25kX3Jhd21pZGkgKnJtaWRpOworCisJCQllcnIgPSBzbmRfcmF3bWlkaV9uZXcoY2FyZCwgIk1JREkiLCAwLCAxLCAxLCAmcm1pZGkpOworCQkJaWYgKGVyciA8IDApIHsKIAkJCQlzbmRfY2FyZF9mcmVlKGNhcmQpOwogCQkJCXJldHVybiBlcnI7CiAJCQl9Ci0JCQltcHUgPSBpY2UtPnJtaWRpWzBdLT5wcml2YXRlX2RhdGE7Ci0JCQltcHUtPnJlYWQgPSBzbmRfdnQxNzI0X21wdTQwMV9yZWFkOwotCQkJbXB1LT53cml0ZSA9IHNuZF92dDE3MjRfbXB1NDAxX3dyaXRlOwotCQkJLyogdW5tYXNrIE1QVSBSWC9UWCBpcnFzICovCi0JCQlvdXRiKGluYihJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpICYKLQkJCSAgICAgfihWVDE3MjRfSVJRX01QVV9SWCB8IFZUMTcyNF9JUlFfTVBVX1RYKSwKLQkJCSAgICAgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwkJCWljZS0+cm1pZGlbMF0gPSBybWlkaTsKKwkJCXJtaWRpLT5wcml2YXRlX2RhdGEgPSBpY2U7CisJCQlzdHJjcHkocm1pZGktPm5hbWUsICJJQ0UxNzI0IE1JREkiKTsKKwkJCXJtaWRpLT5pbmZvX2ZsYWdzID0gU05EUlZfUkFXTUlESV9JTkZPX09VVFBVVCB8CisJCQkJCSAgICBTTkRSVl9SQVdNSURJX0lORk9fSU5QVVQgfAorCQkJCQkgICAgU05EUlZfUkFXTUlESV9JTkZPX0RVUExFWDsKKwkJCXNuZF9yYXdtaWRpX3NldF9vcHMocm1pZGksIFNORFJWX1JBV01JRElfU1RSRUFNX09VVFBVVCwKKwkJCQkJICAgICZ2dDE3MjRfbWlkaV9vdXRwdXRfb3BzKTsKKwkJCXNuZF9yYXdtaWRpX3NldF9vcHMocm1pZGksIFNORFJWX1JBV01JRElfU1RSRUFNX0lOUFVULAorCQkJCQkgICAgJnZ0MTcyNF9taWRpX2lucHV0X29wcyk7CisKIAkJCS8qIHNldCB3YXRlcm1hcmtzICovCiAJCQlvdXRiKFZUMTcyNF9NUFVfUlhfRklGTyB8IDB4MSwKIAkJCSAgICAgSUNFUkVHMTcyNChpY2UsIE1QVV9GSUZPX1dNKSk7CiAJCQlvdXRiKDB4MSwgSUNFUkVHMTcyNChpY2UsIE1QVV9GSUZPX1dNKSk7CisJCQkvKiBzZXQgVUFSVCBtb2RlICovCisJCQlvdXRiKFZUMTcyNF9NUFVfVUFSVCwgSUNFUkVHMTcyNChpY2UsIE1QVV9DVFJMKSk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi1maXJtd2FyZS5oIGIvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLWZpcm13YXJlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZjViOTEuLjAwMDAwMDAKLS0tIGEvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLWZpcm13YXJlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5ODcgKzAsMCBAQAotc3RhdGljIGNoYXIgZHNwQ29kZSBbXSA9IHsKLTB4MDEsMHhmZiwweDE4LDB4ZmYsMHhmNSwweGZmLDB4Y2YsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgyNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGRmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMywweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLDB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDBjLDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4NDcsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MGEsMHhmZiwKLTB4ODIsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDdhLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NzIsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NWYsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMiwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHgwMiwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHhmZiwweGZmLDB4NDcsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MTcsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsCi0weDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHg4NCwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4MDIsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4MDEsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MmIsMHhmZiwweDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDJiLDB4ZmYsCi0weDgwLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4MiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4MSwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODQsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDg1LDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg4MiwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHg4MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4ODgsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4YywweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODMsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDhhLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4OGUsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHgyMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHg4MCwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YjYsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDYyLDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGE2LDB4ZmYsMHg2MiwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLDB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4NDAsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGI2LDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2MiwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLDB4NjIsMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTYsMHhmZiwweDA1LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhiYiwweGZmLAotMHgwMiwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHg4MiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4Y2IsMHhmZiwweDA1LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkYiwweGZmLAotMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDAwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4MiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg5YiwweGZmLDB4MDMsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGEyLDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGJiLDB4ZmYsMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDQsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDIxLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg0MCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMiwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4ODUsMHhmZiwweDBhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGFlLDB4ZmYsCi0weDAwLDB4ZmYsMHhhMCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwKLTB4MGEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZmUsMHhmZiwweDAwLDB4ZmYsMHhhMCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAzLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MGIsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDc4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDVmLDB4ZmYsMHgwMywweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg3OCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg1ZiwweGZmLDB4NWIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDgwLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHhkZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHhmZSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4ODAsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweGMxLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMywweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4MDIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MjMsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDU5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGRmLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MGMsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weDAwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDEwLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDIyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDBjLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDZmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NzYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwKLTB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDg2LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDY0LDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg4MSwweGZmLAotMHgwMCwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4NjEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YWYsMHhmZiwweDc3LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGFmLDB4ZmYsCi0weDYzLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHgwNSwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5MiwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDY1LDB4ZmYsCi0weDBmLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDZlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDA1LDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwKLTB4MTAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MGUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4NzksMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBlLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4NzUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgxNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MGUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NzUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwweDgwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0MCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MTEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg3LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHg5MCwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDg2LDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDAzLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHg2MywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg4MywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4ODMsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODcsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDZhLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHg4MCwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDdlLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg1NSwweGZmLDB4MTMsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YmUsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwNSwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5MiwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTEsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLAotMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4ZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUzLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weDcyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLDB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsCi0weDM4LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHg0OCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDMwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MWUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MjAsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4Y2YsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NmEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwKLTB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwweDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsCi0weDY3LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgwOCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDY5LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDVkLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLAotMHg3OSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVkLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1ZCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgyZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NjYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxOSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDA0LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NDYsMHhmZiwKLTB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsCi0weDgzLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLAotMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4NmUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwKLTB4ODcsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDkyLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHgyMywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODMsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsCi0weDZjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4NDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsCi0weDFiLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGNlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDhiLDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0MCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NTUsMHhmZiwweDFkLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDNlLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4YiwweGZmLDB4OTcsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDUxLDB4ZmYsCi0weDc5LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhiNCwweGZmLAotMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MWUsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZDUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHgwNCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDA4LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTEsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NDYsMHhmZiwweDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLDB4ODcsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4NmUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwweDg3LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDkyLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg3ZiwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgyMywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODMsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsCi0weDZjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4ZCwweGZmLDB4OGYsMHhmZiwweGZmLDB4ZmYsMHhjNSwweGZmLDB4MjAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YWUsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDg0LDB4ZmYsMHgwMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4YSwweGZmLDB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsMHgyMSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg1ZSwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg3OCwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg0OCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHhiMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwYywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHgwYywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg2ZiwweGZmLDB4MjAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwKLTB4OTgsMHhmZiwweGNjLDB4ZmYsMHhmZiwweGZmLDB4MzcsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGE1LDB4ZmYsCi0weDI0LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGZlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLAotMHgwOCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwweDY5LDB4ZmYsMHhjYywweGZmLDB4ZmYsMHhmZiwweDM3LDB4ZmYsCi0weDAwLDB4ZmYsMHgwNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzIsMHhmZiwKLTB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwweDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDY5LDB4ZmYsMHhjYywweGZmLDB4ZmYsMHhmZiwweDM3LDB4ZmYsMHgwMCwweGZmLDB4MDUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwweDA4LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsMHg2OSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MDUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwKLTB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHg0NywweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg1OCwweGZmLAotMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4NjYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MjYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OTQsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg4MCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4MTYsMHhmZiwweDBmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4NjYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NywweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLAotMHg4MiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4N2EsMHhmZiwKLTB4N2EsMHhmZiwweDI2LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsMHgyNywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDI5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkyLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MTIsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHg5MCwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDIsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLDB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDE4LDB4ZmYsMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1ZSwweGZmLDB4YWYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHhmZSwweGZmLAotMHg4NywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmZSwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MmUsMHhmZiwKLTB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGExLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgyOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgzOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWUsMHhmZiwKLTB4YWYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NDIsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0NCwweGZmLAotMHgwOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4OGEsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM1LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQyLDB4ZmYsCi0weDAwLDB4ZmYsMHg0YywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDBhLDB4ZmYsMHg3YSwweGZmLDB4MjYsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBkLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4ZmYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDkwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzNywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MiwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzOSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgyMiwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0MiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZDQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ3LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDRhLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDg0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0ZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDRmLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBlLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ1LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwYSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4M2QsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzZiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDNmLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwYSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgzNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4M2YsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ0LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MjEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MjUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweGU5LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weGVkLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmMSwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4NDYsMHhmZiwweDg0LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODQsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgyMiwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDg4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NDYsMHhmZiwweDg4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDIzLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsCi0weGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweGZmLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhmMiwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhlMywweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4NCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MjIsMHhmZiwKLTB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjIsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODQsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgzMiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzIsMHhmZiwKLTB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjcsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MDMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGM3LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2NywweGZmLAotMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlNywweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDY3LDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NTEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ODEsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE2LDB4ZmYsMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg5MCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg3MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwKLTB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDg4LDB4ZmYsMHg2MywweGZmLDB4ZmYsMHhmZiwweDI3LDB4ZmYsMHhlOCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg2MiwweGZmLDB4NjEsMHhmZiwweGZmLDB4ZmYsMHgyNywweGZmLDB4ODgsMHhmZiwweDJiLDB4ZmYsMHhmZiwweGZmLDB4OGIsMHhmZiwKLTB4ZTgsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDYyLDB4ZmYsMHg2MSwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsCi0weDg4LDB4ZmYsMHgyZiwweGZmLDB4ZmYsMHhmZiwweGZiLDB4ZmYsMHg4OSwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ZWEsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YWIsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGI4LDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGNmLDB4ZmYsMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NjIsMHhmZiwweDIxLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1MSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlYiwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmMsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUxLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGFjLDB4ZmYsMHg4MiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHg1NCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwKLTB4NTQsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MWUsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg1MSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYywweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUzLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGIzLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YmEsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZiLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHgxOCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1NSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyMSwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlNCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlZSwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmEsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDMxLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhjOSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLAotMHg1NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkNSwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDgyLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYxLDB4ZmYsMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHhjOSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLDB4NTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwKLTB4NTQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDU3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDkxLDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNiwweGZmLAotMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4OTAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg4OCwweGZmLDB4NjMsMHhmZiwweGZmLDB4ZmYsMHgyNywweGZmLAotMHhlOCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4NjIsMHhmZiwweDYxLDB4ZmYsMHhmZiwweGZmLDB4MjcsMHhmZiwKLTB4ODgsMHhmZiwweDJiLDB4ZmYsMHhmZiwweGZmLDB4OGIsMHhmZiwweGU4LDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDYyLDB4ZmYsMHg2MSwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsMHg4OCwweGZmLDB4MmYsMHhmZiwweGZmLDB4ZmYsMHhmYiwweGZmLAotMHg4OSwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ZWEsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGFiLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGI4LDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhjZiwweGZmLAotMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjIsMHhmZiwweDIxLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1NywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZWIsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmMsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1NywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhhYywweGZmLDB4ODIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NDUsMHhmZiwKLTB4NWEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDVhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDNlLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NTcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGMsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGE0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1OSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMywweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGJhLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmIsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwweDE4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDViLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg2MCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDJhLDB4ZmYsMHhmZiwweGZmLDB4ZWEsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGVlLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsMHg1ZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1YiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBkLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYxLDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZWUsMHhmZiwKLTB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlZSwweGZmLDB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDVlLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDVmLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDU0LDB4ZmYsCi0weDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHhhOCwweGZmLAotMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4ODgsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweGI2LDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsMHhmMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4ZTIsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDM4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMiwweGZmLAotMHg4OCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweGU4LDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGFjLDB4ZmYsMHhmMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLDB4MDEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4ZTIsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDM4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGQ0LDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLAotMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLDB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YjgsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YTgsMHhmZiwKLTB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsCi0weGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAyLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDgsMHhmZiwKLTB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsCi0weGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhjOCwweGZmLDB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4MDEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDMwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAxLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAwLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwNywweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHgwMywweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MDIsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDA4LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAzLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMSwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDQsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDA0LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg2MiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDAxLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg2MiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDA1LDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg5MiwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwweDY1LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDllLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDEsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4ODEsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MjEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ5LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsCi0weDEwLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg2NiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg1NCwweGZmLDB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4NDksMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCi0weDg2LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4OGEsMHhmZiwKLTB4NjcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDc1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDg5LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1NSwweGZmLAotMHg2MCwweGZmLDB4MjYsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDEwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MzUsMHhmZiwweDYwLDB4ZmYsMHgyNiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ5LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgxMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMSwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDg3LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDg4LDB4ZmYsMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg3LDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMSwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4NmEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OWUsMHhmZiwKLTB4NjcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4M2YsMHhmZiwweDY5LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDY2LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2YSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4MiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NmEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4NywweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDY0LDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgzNSwweGZmLAotMHgwMSwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg5NiwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwweDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDk2LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0OSwweGZmLAotMHgwMiwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg0OSwweGZmLDB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDI1LDB4ZmYsMHg2ZCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhiZSwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDg4LDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weDgzLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwweDg4LDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsCi0weDgzLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDg4LDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weDgzLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgyNSwweGZmLDB4NmUsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OGUsMHhmZiwKLTB4OTgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwweDg4LDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsCi0weDgzLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHg4OCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLDB4MjAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGU5LDB4ZmYsCi0weDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDI4LDB4ZmYsMHgwMSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgyOSwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg2NiwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NzUsMHhmZiwweDEwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5OCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MjUsMHhmZiwKLTB4NzAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MmUsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQyLDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0MSwweGZmLDB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ODAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ2LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLDB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQyLDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0MSwweGZmLAotMHg2MywweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ODAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHhmMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MDAsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwweDgwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDg4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhlYSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg3NCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwKLTB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwKLTB4ODAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDg4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weGVhLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDcyLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MGUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MTAsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDEwLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MTAsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwweGIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHgzMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4NzgsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NDgsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDQwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgxOCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MTgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDE4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MGIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MjIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MjIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhiMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHg4NCwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwYiwweGZmLDB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwweDBjLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsCi0weDg4LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4YywweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTEsMHhmZiwKLTB4ODIsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHg3NiwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhkZSwweGZmLDB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODQsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAyLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsMHg3NywweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLAotMHgwMCwweGZmLDB4YTAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsCi0weDc3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDhlLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweDM4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDc3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwKLTB4MzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc4LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODUsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDU2LDB4ZmYsCi0weDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsMHgyMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjMSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDE1LDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODYsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGM4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweGM4LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg2LDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHgwNSwweGZmLDB4ODEsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MjEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA5LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg3ZSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YjEsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsCi0weDdhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGJlLDB4ZmYsMHgwMCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg0NiwweGZmLAotMHhlMSwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4N2EsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCi0weGZmLDB4ZmYsMHhmZiwweGZmIH07CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kva29yZzEyMTIva29yZzEyMTIuYyBiL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCmluZGV4IGY0Yzg1YjUuLjRhNDRjMGYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCisrKyBiL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCkBAIC0yNjAsMTQgKzI2MCw2IEBACiAjZGVmaW5lIENPTU1BTkRfQUNLX0RFTEFZICAgMTMgICAgICAgICAvLyBudW1iZXIgb2YgUlRDIHRpY2tzIHRvIHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgZnJvbSB0aGUgY2FyZCBhZnRlciBzZW5kaW5nIGEgY29tbWFuZC4KIAotI2lmZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0jaW5jbHVkZSAia29yZzEyMTItZmlybXdhcmUuaCIKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgc3RhdGljX2RzcF9jb2RlID0gewotCS5kYXRhID0gKHU4ICopZHNwQ29kZSwKLQkuc2l6ZSA9IHNpemVvZiBkc3BDb2RlCi19OwotI2VuZGlmCi0KIGVudW0gQ2xvY2tTb3VyY2VJbmRleCB7CiAgICBLMTIxMl9DTEtJRFhfQWRhdEF0NDRfMUsgPSAwLCAgICAvLyBzZWxlY3RzIHNvdXJjZSBhcyBBREFUIGF0IDQ0LjEga0h6CiAgICBLMTIxMl9DTEtJRFhfQWRhdEF0NDhLLCAgICAgICAgICAvLyBzZWxlY3RzIHNvdXJjZSBhcyBBREFUIGF0IDQ4IGtIegpAQCAtNDEyLDkgKzQwNCw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oImtvcmcxMjEyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tLT1JHLGtvcmcxMjEyfX0iKTsKLSNpZm5kZWYgQ09ORklHX1NORF9LT1JHMTIxMl9GSVJNV0FSRV9JTl9LRVJORUwKIE1PRFVMRV9GSVJNV0FSRSgia29yZy9rMTIxMi5kc3AiKTsKLSNlbmRpZgogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOyAgICAgLyogSW5kZXggMC1NQVggKi8KIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsJICAgLyogSUQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMjM0OCw5ICsyMzM4LDYgQEAKICAgICAgICAga29yZzEyMTItPkFkYXRUaW1lQ29kZVBoeSA9IGtvcmcxMjEyLT5zaGFyZWRCdWZmZXJQaHkgKwogCQlvZmZzZXRvZihzdHJ1Y3QgS29yZ1NoYXJlZEJ1ZmZlciwgQWRhdFRpbWVDb2RlKTsKIAotI2lmZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0JZHNwX2NvZGUgPSAmc3RhdGljX2RzcF9jb2RlOwotI2Vsc2UKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZkc3BfY29kZSwgImtvcmcvazEyMTIuZHNwIiwgJnBjaS0+ZGV2KTsKIAlpZiAoZXJyIDwgMCkgewogCQlyZWxlYXNlX2Zpcm13YXJlKGRzcF9jb2RlKTsKQEAgLTIzNTgsMTUgKzIzNDUsMTIgQEAKIAkJc25kX2tvcmcxMjEyX2ZyZWUoa29yZzEyMTIpOwogCQlyZXR1cm4gZXJyOwogCX0KLSNlbmRpZgogCiAJaWYgKHNuZF9kbWFfYWxsb2NfcGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKHBjaSksCiAJCQkJZHNwX2NvZGUtPnNpemUsICZrb3JnMTIxMi0+ZG1hX2RzcCkgPCAwKSB7CiAJCXNuZF9wcmludGsoS0VSTl9FUlIgImtvcmcxMjEyOiBjYW5ub3QgYWxsb2NhdGUgZHNwIGNvZGUgbWVtb3J5ICglemQgYnl0ZXMpXG4iLCBkc3BfY29kZS0+c2l6ZSk7CiAgICAgICAgICAgICAgICAgc25kX2tvcmcxMjEyX2ZyZWUoa29yZzEyMTIpOwotI2lmbmRlZiBDT05GSUdfU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCQlyZWxlYXNlX2Zpcm13YXJlKGRzcF9jb2RlKTsKLSNlbmRpZgogICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgICAgICB9CiAKQEAgLTIzNzYsOSArMjM2MCw3IEBACiAKIAltZW1jcHkoa29yZzEyMTItPmRtYV9kc3AuYXJlYSwgZHNwX2NvZGUtPmRhdGEsIGRzcF9jb2RlLT5zaXplKTsKIAotI2lmbmRlZiBDT05GSUdfU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXJlbGVhc2VfZmlybXdhcmUoZHNwX2NvZGUpOwotI2VuZGlmCiAKIAlyYyA9IHNuZF9rb3JnMTIxMl9TZW5kMTIxMkNvbW1hbmQoa29yZzEyMTIsIEsxMjEyX0RCX1JlYm9vdENhcmQsIDAsIDAsIDAsIDApOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvbWFlc3RybzMuYyBiL3NvdW5kL3BjaS9tYWVzdHJvMy5jCmluZGV4IGE1MzZjNTkuLjAwMzdiZTcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9tYWVzdHJvMy5jCisrKyBiL3NvdW5kL3BjaS9tYWVzdHJvMy5jCkBAIC01OCwxMCArNTgsOCBAQAogCQkie0VTUyxBbGxlZ3JvIFBDSX0sIgogCQkie0VTUyxBbGxlZ3JvLTEgUENJfSwiCiAJICAgICAgICAie0VTUyxDYW55b24zRC0yL0xFIFBDSX19Iik7Ci0jaWZuZGVmIENPTkZJR19TTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMCiBNT0RVTEVfRklSTVdBUkUoImVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdyIpOwogTU9EVUxFX0ZJUk1XQVJFKCJlc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3Iik7Ci0jZW5kaWYKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsJLyogSW5kZXggMC1NQVggKi8KIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsJLyogSUQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMjEwMSwxNjMgKzIwOTksNiBAQAogfQogCiAKLSNpZmRlZiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAotCi0vKgotICogRFNQIENvZGUgaW1hZ2VzCi0gKi8KLQotc3RhdGljIGNvbnN0IHUxNiBhc3NwX2tlcm5lbF9pbWFnZVtdID0gewotICAgIDB4Nzk4MCwgMHgwMDMwLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwMEZCLCAweDc5ODAsIDB4MDBERCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwMzMyLCAweDc5ODAsIDB4MDI4NywgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwMzFBLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAyMkYsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAwNjMsIDB4Nzk4MCwgMHgwMDZCLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4QkY4MCwgMHgyQzdDLCAweDg4MDYsIDB4ODgwNCwgMHhCRTQwLCAweEJDMjAsIDB4QUUwOSwgMHgxMDAwLCAweEFFMEEsIDB4MDAwMSwgMHg2OTM4LCAweEVCMDgsIAotICAgIDB4MDA1MywgMHg2OTVBLCAweEVCMDgsIDB4MDBENiwgMHgwMDA5LCAweDhCODgsIDB4Njk4MCwgMHhFMzg4LCAweDAwMzYsIDB4QkUzMCwgMHhCQzIwLCAweDY5MDksIAotICAgIDB4QjgwMSwgMHg5MDA5LCAweEJFNDEsIDB4QkU0MSwgMHg2OTI4LCAweEVCODgsIDB4MDA3OCwgMHhCRTQxLCAweEJFNDAsIDB4Nzk4MCwgMHgwMDM4LCAweEJFNDEsIAotICAgIDB4QkU0MSwgMHg5MDNBLCAweDY5MzgsIDB4RTMwOCwgMHgwMDU2LCAweDkwM0EsIDB4QkU0MSwgMHhCRTQwLCAweEVGMDAsIDB4OTAzQSwgMHg2OTM5LCAweEUzMDgsIAotICAgIDB4MDA1RSwgMHg5MDNBLCAweEVGMDAsIDB4NjkwQiwgMHg2NjBDLCAweEVGOEMsIDB4NjkwQSwgMHg2NjBDLCAweDYyMEIsIDB4NjYwOSwgMHhFRjAwLCAweDY5MTAsIAotICAgIDB4NjYwRiwgMHhFRjA0LCAweEUzODgsIDB4MDA3NSwgMHg2OTBFLCAweDY2MEYsIDB4NjIxMCwgMHg2NjBELCAweEVGMDAsIDB4NjkwRSwgMHg2NjBELCAweEVGMDAsIAotICAgIDB4QUU3MCwgMHgwMDAxLCAweEJDMjAsIDB4QUUyNywgMHgwMDAxLCAweDY5MzksIDB4RUIwOCwgMHgwMDVELCAweDY5MjYsIDB4QjgwMSwgMHg5MDI2LCAweDAwMjYsIAotICAgIDB4OEI4OCwgMHg2OTgwLCAweEUzODgsIDB4MDBDQiwgMHg5MDI4LCAweDBEMjgsIDB4NDIxMSwgMHhFMTAwLCAweDAwN0EsIDB4NDcxMSwgMHhFMTAwLCAweDAwQTAsIAotICAgIDB4N0E4MCwgMHgwMDYzLCAweEI4MTEsIDB4NjYwQSwgMHg2MjA5LCAweEUzMDQsIDB4MDA3QSwgMHgwQzBCLCAweDQwMDUsIDB4MTAwQSwgMHhCQTAxLCAweDkwMTIsIAotICAgIDB4MEMxMiwgMHg0MDAyLCAweDc5ODAsIDB4MDBBRiwgMHg3QTgwLCAweDAwNkIsIDB4QkUwMiwgMHg2MjBFLCAweDY2MEQsIDB4QkExMCwgMHhFMzQ0LCAweDAwN0EsIAotICAgIDB4MEMxMCwgMHg0MDA1LCAweDEwMEUsIDB4QkEwMSwgMHg5MDEyLCAweDBDMTIsIDB4NDAwMiwgMHgxMDAzLCAweEJBMDIsIDB4OTAxMiwgMHgwQzEyLCAweDQwMDAsIAotICAgIDB4MTAwMywgMHhFMzg4LCAweDAwQkEsIDB4MTAwNCwgMHg3OTgwLCAweDAwQkMsIDB4MTAwNCwgMHhCQTAxLCAweDkwMTIsIDB4MEMxMiwgMHg0MDAxLCAweDBDMDUsIAotICAgIDB4NDAwMywgMHgwQzA2LCAweDQwMDQsIDB4MTAxMSwgMHhCRkIwLCAweDAxRkYsIDB4OTAxMiwgMHgwQzEyLCAweDQwMDYsIDB4QkMyMCwgMHhFRjAwLCAweEFFMjYsIAotICAgIDB4MTAyOCwgMHg2OTcwLCAweEJGRDAsIDB4MDAwMSwgMHg5MDcwLCAweEUzODgsIDB4MDA3QSwgMHhBRTI4LCAweDAwMDAsIDB4RUYwMCwgMHhBRTcwLCAweDAzMDAsIAotICAgIDB4MEM3MCwgMHhCMDBDLCAweEFFNUEsIDB4MDAwMCwgMHhFRjAwLCAweDdBODAsIDB4MDM4QSwgMHg2OTdGLCAweEI4MDEsIDB4OTA3RiwgMHgwMDU2LCAweDhCODgsIAotICAgIDB4MENBMCwgMHhCMDA4LCAweEFGNzEsIDB4QjAwMCwgMHg0RTcxLCAweEUyMDAsIDB4MDBGMywgMHhBRTU2LCAweDEwNTcsIDB4MDA1NiwgMHgwQ0EwLCAweEIwMDgsIAotICAgIDB4ODA1NiwgMHg3OTgwLCAweDAzQTEsIDB4MDgxMCwgMHhCRkEwLCAweDEwNTksIDB4RTMwNCwgMHgwM0ExLCAweDgwNTYsIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIAotICAgIDB4MDM4QSwgMHhCRjAxLCAweEJFNDMsIDB4QkU1OSwgMHg5MDdDLCAweDY5MzcsIDB4RTM4OCwgMHgwMTBELCAweEJBMDEsIDB4RTMwOCwgMHgwMTBDLCAweEFFNzEsIAotICAgIDB4MDAwNCwgMHgwQzcxLCAweDUwMDAsIDB4NjkzNiwgMHg5MDM3LCAweEJGMEEsIDB4MTA5RSwgMHg4QjhBLCAweEFGODAsIDB4ODAxNCwgMHg0QzgwLCAweEJGMEEsIAotICAgIDB4MDU2MCwgMHhGNTAwLCAweEJGMEEsIDB4MDUyMCwgMHhCOTAwLCAweEJCMTcsIDB4OTBBMCwgMHg2OTE3LCAweEUzODgsIDB4MDE0OCwgMHgwRDE3LCAweEUxMDAsIAotICAgIDB4MDEyNywgMHhCRjBDLCAweDA1NzgsIDB4QkYwRCwgMHgwNTdDLCAweDc5ODAsIDB4MDEyQiwgMHhCRjBDLCAweDA1MzgsIDB4QkYwRCwgMHgwNTNDLCAweDY5MDAsIAotICAgIDB4RTMwOCwgMHgwMTM1LCAweDhCOEMsIDB4QkU1OSwgMHhCQjA3LCAweDkwQTAsIDB4QkMyMCwgMHg3OTgwLCAweDAxNTcsIDB4MDMwQywgMHg4QjhCLCAweEI5MDMsIAotICAgIDB4ODgwOSwgMHhCRUM2LCAweDAxM0UsIDB4NjlBQywgMHg5MEFCLCAweDY5QUQsIDB4OTBBQiwgMHgwODEzLCAweDY2MEEsIDB4RTM0NCwgMHgwMTQ0LCAweDAzMDksIAotICAgIDB4ODMwQywgMHhCQzIwLCAweDc5ODAsIDB4MDE1NywgMHg2OTU1LCAweEUzODgsIDB4MDE1NywgMHg3QzM4LCAweEJGMEIsIDB4MDU3OCwgMHhGNTAwLCAweEJGMEIsIAotICAgIDB4MDUzOCwgMHhCOTA3LCAweDg4MDksIDB4QkVDNiwgMHgwMTU2LCAweDEwQUIsIDB4OTBBQSwgMHg2OTc0LCAweEUzODgsIDB4MDE2MywgMHhBRTcyLCAweDA1NDAsIAotICAgIDB4RjUwMCwgMHhBRTcyLCAweDA1MDAsIDB4QUU2MSwgMHgxMDNCLCAweDdBODAsIDB4MDJGNiwgMHg2OTc4LCAweEUzODgsIDB4MDE4MiwgMHg4QjhDLCAweEJGMEMsIAotICAgIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIDB4MDgxNCwgMHhCQTIwLCAweDg4MTIsIDB4NzMzRCwgMHg3QTgwLCAweDAzODAsIDB4NzMzRSwgMHg3QTgwLCAweDAzODAsIAotICAgIDB4OEI4QywgMHhCRjBDLCAweDA1NkMsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkEyQywgMHg4ODEyLCAweDczM0YsIDB4N0E4MCwgMHgwMzgwLCAweDczNDAsIAotICAgIDB4N0E4MCwgMHgwMzgwLCAweDY5NzUsIDB4RTM4OCwgMHgwMThFLCAweEFFNzIsIDB4MDU0OCwgMHhGNTAwLCAweEFFNzIsIDB4MDUwOCwgMHhBRTYxLCAweDEwNDEsIAotICAgIDB4N0E4MCwgMHgwMkY2LCAweDY5NzksIDB4RTM4OCwgMHgwMUFELCAweDhCOEMsIDB4QkYwQywgMHgwNTYwLCAweEU1MDAsIDB4N0M0MCwgMHgwODE0LCAweEJBMTgsIAotICAgIDB4ODgxMiwgMHg3MzQzLCAweDdBODAsIDB4MDM4MCwgMHg3MzQ0LCAweDdBODAsIDB4MDM4MCwgMHg4QjhDLCAweEJGMEMsIDB4MDU2QywgMHhFNTAwLCAweDdDNDAsIAotICAgIDB4MDgxNCwgMHhCQTI0LCAweDg4MTIsIDB4NzM0NSwgMHg3QTgwLCAweDAzODAsIDB4NzM0NiwgMHg3QTgwLCAweDAzODAsIDB4Njk3NiwgMHhFMzg4LCAweDAxQjksIAotICAgIDB4QUU3MiwgMHgwNTU4LCAweEY1MDAsIDB4QUU3MiwgMHgwNTE4LCAweEFFNjEsIDB4MTA0NywgMHg3QTgwLCAweDAyRjYsIDB4Njk3QSwgMHhFMzg4LCAweDAxRDgsIAotICAgIDB4OEI4QywgMHhCRjBDLCAweDA1NjAsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkEwOCwgMHg4ODEyLCAweDczNDksIDB4N0E4MCwgMHgwMzgwLCAweDczNEEsIAotICAgIDB4N0E4MCwgMHgwMzgwLCAweDhCOEMsIDB4QkYwQywgMHgwNTZDLCAweEU1MDAsIDB4N0M0MCwgMHgwODE0LCAweEJBMTQsIDB4ODgxMiwgMHg3MzRCLCAweDdBODAsIAotICAgIDB4MDM4MCwgMHg3MzRDLCAweDdBODAsIDB4MDM4MCwgMHhCQzIxLCAweEFFMUMsIDB4MTA5MCwgMHg4QjhBLCAweEJGMEEsIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIAotICAgIDB4MDgxMiwgMHhCODA0LCAweDg4MTMsIDB4OEI4RCwgMHhCRjBELCAweDA1NkMsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTUsIDB4QjgwNCwgMHg4ODExLCAweDdBODAsIAotICAgIDB4MDM0QSwgMHg4QjhBLCAweEJGMEEsIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIDB4NzMxRiwgMHhCOTAzLCAweDg4MDksIDB4QkVDNiwgMHgwMUY5LCAweDU0OEEsIAotICAgIDB4QkUwMywgMHg5OEEwLCAweDczMjAsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDIwMSwgMHg1NDhBLCAweEJFMDMsIDB4OThBMCwgMHgxRjIwLCAweDJGMUYsIAotICAgIDB4OTgyNiwgMHhCQzIwLCAweDY5MzUsIDB4RTM4OCwgMHgwM0ExLCAweDY5MzMsIDB4QjgwMSwgMHg5MDMzLCAweEJGQTAsIDB4MDJFRSwgMHhFMzA4LCAweDAzQTEsIAotICAgIDB4OTAzMywgMHhCRjAwLCAweDY5NTEsIDB4RTM4OCwgMHgwMjFGLCAweDczMzQsIDB4QkU4MCwgMHg1NzYwLCAweEJFMDMsIDB4OUY3RSwgMHhCRTU5LCAweDkwMzQsIAotICAgIDB4Njk3RSwgMHgwRDUxLCAweDkwMTMsIDB4QkMyMCwgMHg2OTVDLCAweEUzODgsIDB4MDNBMSwgMHg3MzVFLCAweEJFODAsIDB4NTc2MCwgMHhCRTAzLCAweDlGN0UsIAotICAgIDB4QkU1OSwgMHg5MDVFLCAweDY5N0UsIDB4MEQ1QywgMHg5MDEzLCAweDc5ODAsIDB4MDNBMSwgMHg3QTgwLCAweDAzOEEsIDB4QkYwMSwgMHhCRTQzLCAweDY5NzcsIAotICAgIDB4RTM4OCwgMHgwMjRFLCAweEFFNjEsIDB4MTA0RCwgMHgwMDYxLCAweDhCODgsIDB4Njk4MCwgMHhFMzg4LCAweDAyNEUsIDB4OTA3MSwgMHgwRDcxLCAweDAwMEIsIAotICAgIDB4QUZBMCwgMHg4MDEwLCAweEFGQTAsIDB4ODAxMCwgMHgwODEwLCAweDY2MEEsIDB4RTMwOCwgMHgwMjQ5LCAweDAwMDksIDB4MDgxMCwgMHg2NjBDLCAweEUzODgsIAotICAgIDB4MDI0RSwgMHg4MDBCLCAweEJDMjAsIDB4Njk3QiwgMHhFMzg4LCAweDAzQTEsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIDB4QUY4MCwgMHg4MDE0LCAweDRDODAsIAotICAgIDB4RTEwMCwgMHgwMjY2LCAweDY5N0MsIDB4QkY5MCwgMHgwNTYwLCAweDkwNzIsIDB4MDM3MiwgMHg2OTdDLCAweEJGOTAsIDB4MDU2NCwgMHg5MDczLCAweDA0NzMsIAotICAgIDB4Nzk4MCwgMHgwMjcwLCAweDY5N0MsIDB4QkY5MCwgMHgwNTIwLCAweDkwNzIsIDB4MDM3MiwgMHg2OTdDLCAweEJGOTAsIDB4MDUyNCwgMHg5MDczLCAweDA0NzMsIAotICAgIDB4Njk3QywgMHhCODAxLCAweDkwN0MsIDB4QkYwQSwgMHgxMEZELCAweDhCOEEsIDB4QUY4MCwgMHg4MDEwLCAweDczNEYsIDB4NTQ4QSwgMHhCRTAzLCAweDk4ODAsIAotICAgIDB4QkMyMSwgMHg3MzI2LCAweDU0OEIsIDB4QkUwMywgMHg2MThCLCAweDk4OEMsIDB4QkUwMywgMHg2MTgwLCAweDk4ODAsIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIAotICAgIDB4MDM4QSwgMHgwRDI4LCAweDQ3MTEsIDB4RTEwMCwgMHgwMkJFLCAweEFGMTIsIDB4NDAwNiwgMHg2OTEyLCAweEJGQjAsIDB4MEMwMCwgMHhFMzg4LCAweDAyQjYsIAotICAgIDB4QkZBMCwgMHgwODAwLCAweEUzODgsIDB4MDJCMiwgMHg2OTEyLCAweEJGQjAsIDB4MEMwMCwgMHhCRkEwLCAweDA0MDAsIDB4RTM4OCwgMHgwMkEzLCAweDY5MDksIAotICAgIDB4OTAwQiwgMHg3OTgwLCAweDAyQTUsIDB4QUYwQiwgMHg0MDA1LCAweDY5MDEsIDB4OTAwNSwgMHg2OTAyLCAweDkwMDYsIDB4NDMxMSwgMHhFMTAwLCAweDAyRUQsIAotICAgIDB4NjkxMSwgMHhCRkMwLCAweDIwMDAsIDB4OTAxMSwgMHg3OTgwLCAweDAyRUQsIDB4NjkwOSwgMHg5MDBCLCAweDc5ODAsIDB4MDJCOCwgMHhBRjBCLCAweDQwMDUsIAotICAgIDB4QUYwNSwgMHg0MDAzLCAweEFGMDYsIDB4NDAwNCwgMHg3OTgwLCAweDAyRUQsIDB4QUYxMiwgMHg0MDA2LCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEUzODgsIAotICAgIDB4MDJFNywgMHhCRkEwLCAweDA4MDAsIDB4RTM4OCwgMHgwMkUzLCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEJGQTAsIDB4MDQwMCwgMHhFMzg4LCAweDAyRDQsIAotICAgIDB4NjkwRCwgMHg5MDEwLCAweDc5ODAsIDB4MDJENiwgMHhBRjEwLCAweDQwMDUsIDB4NjkwMSwgMHg5MDA1LCAweDY5MDIsIDB4OTAwNiwgMHg0MzExLCAweEUxMDAsIAotICAgIDB4MDJFRCwgMHg2OTExLCAweEJGQzAsIDB4MjAwMCwgMHg5MDExLCAweDc5ODAsIDB4MDJFRCwgMHg2OTBELCAweDkwMTAsIDB4Nzk4MCwgMHgwMkU5LCAweEFGMTAsIAotICAgIDB4NDAwNSwgMHhBRjA1LCAweDQwMDMsIDB4QUYwNiwgMHg0MDA0LCAweEJDMjAsIDB4Njk3MCwgMHg5MDcxLCAweDdBODAsIDB4MDA3OCwgMHg2OTcxLCAweDkwNzAsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweEJDMjAsIDB4MDM2MSwgMHg4QjhCLCAweDY5ODAsIDB4RUY4OCwgMHgwMjcyLCAweDAzNzIsIDB4NzgwNCwgMHg5MDcxLCAweDBENzEsIAotICAgIDB4OEI4QSwgMHgwMDBCLCAweEI5MDMsIDB4ODgwOSwgMHhCRUM2LCAweDAzMDksIDB4NjlBOCwgMHg5MEFCLCAweDY5QTgsIDB4OTBBQSwgMHgwODEwLCAweDY2MEEsIAotICAgIDB4RTM0NCwgMHgwMzBGLCAweDAwMDksIDB4MDgxMCwgMHg2NjBDLCAweEUzODgsIDB4MDMxNCwgMHg4MDBCLCAweEJDMjAsIDB4Njk2MSwgMHhCODAxLCAweDkwNjEsIAotICAgIDB4Nzk4MCwgMHgwMkY3LCAweDdBODAsIDB4MDM4QSwgMHg1RDM1LCAweDAwMDEsIDB4NjkzNCwgMHhCODAxLCAweDkwMzQsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIAotICAgIDB4QUY4MCwgMHg4MDE0LCAweDQ4ODAsIDB4QUU3MiwgMHgwNTUwLCAweEY1MDAsIDB4QUU3MiwgMHgwNTEwLCAweEFFNjEsIDB4MTA1MSwgMHg3QTgwLCAweDAyRjYsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIDB4MDM4QSwgMHg1RDM1LCAweDAwMDIsIDB4Njk1RSwgMHhCODAxLCAweDkwNUUsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIAotICAgIDB4QUY4MCwgMHg4MDE0LCAweDQ3ODAsIDB4QUU3MiwgMHgwNTU4LCAweEY1MDAsIDB4QUU3MiwgMHgwNTE4LCAweEFFNjEsIDB4MTA1QywgMHg3QTgwLCAweDAyRjYsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweDAwMUMsIDB4OEI4OCwgMHg2OTgwLCAweEVGODgsIDB4OTAxRCwgMHgwRDFELCAweDEwMEYsIDB4NjYxMCwgMHhFMzhDLCAweDAzNTgsIAotICAgIDB4NjkwRSwgMHg2NjEwLCAweDYyMEYsIDB4NjYwRCwgMHhCQTBGLCAweEUzMDEsIDB4MDM3QSwgMHgwNDEwLCAweDhCOEEsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIAotICAgIDB4MDM2QywgMHg2QThDLCAweDYxQUEsIDB4OThBQiwgMHg2QThDLCAweDYxQUIsIDB4OThBRCwgMHg2QThDLCAweDYxQUQsIDB4OThBOSwgMHg2QThDLCAweDYxQTksIAotICAgIDB4OThBQSwgMHg3QzA0LCAweDhCOEIsIDB4N0MwNCwgMHg4QjhELCAweDdDMDQsIDB4OEI4OSwgMHg3QzA0LCAweDA4MTQsIDB4NjYwRSwgMHhFMzA4LCAweDAzNzksIAotICAgIDB4MDQwRCwgMHg4NDEwLCAweEJDMjEsIDB4NjkxQywgMHhCODAxLCAweDkwMUMsIDB4Nzk4MCwgMHgwMzRBLCAweEI5MDMsIDB4ODgwOSwgMHg4QjhBLCAweEJFQzYsIAotICAgIDB4MDM4OCwgMHg1NEFDLCAweEJFMDMsIDB4NjE4QywgMHg5OEFBLCAweEVGMDAsIDB4QkMyMCwgMHhCRTQ2LCAweDA4MDksIDB4OTA2QiwgMHgwODBBLCAweDkwNkMsIAotICAgIDB4MDgwQiwgMHg5MDZELCAweDA4MUEsIDB4OTA2MiwgMHgwODFCLCAweDkwNjMsIDB4MDgxRSwgMHg5MDY0LCAweEJFNTksIDB4ODgxRSwgMHg4MDY1LCAweDgxNjYsIAotICAgIDB4ODI2NywgMHg4MzY4LCAweDg0NjksIDB4ODU2QSwgMHhFRjAwLCAweEJDMjAsIDB4Njk2QiwgMHg4ODA5LCAweDY5NkMsIDB4ODgwQSwgMHg2OTZELCAweDg4MEIsIAotICAgIDB4Njk2MiwgMHg4ODFBLCAweDY5NjMsIDB4ODgxQiwgMHg2OTY0LCAweDg4MUUsIDB4MDA2NSwgMHgwMTY2LCAweDAyNjcsIDB4MDM2OCwgMHgwNDY5LCAweDA1NkEsIAotICAgIDB4QkUzQSwgCi19OwotCi0vKgotICogTWluaSBzYW1wbGUgcmF0ZSBjb252ZXJ0ZXIgY29kZSBpbWFnZQotICogdGhhdCBpcyB0byBiZSBsb2FkZWQgYXQgMHg0MDAgb24gdGhlIERTUC4KLSAqLwotc3RhdGljIGNvbnN0IHUxNiBhc3NwX21pbmlzcmNfaW1hZ2VbXSA9IHsKLQotICAgIDB4QkY4MCwgMHgxMDFFLCAweDkwNkUsIDB4MDA2RSwgMHg4Qjg4LCAweDY5ODAsIDB4RUY4OCwgMHg5MDZGLCAweDBENkYsIDB4NjkwMCwgMHhFQjA4LCAweDA0MTIsIAotICAgIDB4QkMyMCwgMHg2OTZFLCAweEI4MDEsIDB4OTA2RSwgMHg3OTgwLCAweDA0MDMsIDB4QjkwRSwgMHg4ODA3LCAweEJFNDMsIDB4QkYwMSwgMHhCRTQ3LCAweEJFNDEsIAotICAgIDB4N0E4MCwgMHgwMDJBLCAweEJFNDAsIDB4MzAyOSwgMHhFRkNDLCAweEJFNDEsIDB4N0E4MCwgMHgwMDI4LCAweEJFNDAsIDB4MzAyOCwgMHhFRkNDLCAweDY5MDcsIAotICAgIDB4RTMwOCwgMHgwNDJBLCAweDY5MDksIDB4OTAyQywgMHg3OTgwLCAweDA0MkMsIDB4NjkwRCwgMHg5MDJDLCAweDEwMDksIDB4ODgxQSwgMHgxMDBBLCAweEJBMDEsIAotICAgIDB4ODgxQiwgMHgxMDBELCAweDg4MUMsIDB4MTAwRSwgMHhCQTAxLCAweDg4MUQsIDB4QkY4MCwgMHgwMEVELCAweDg4MUUsIDB4MDUwQywgMHgwMTI0LCAweEI5MDQsIAotICAgIDB4OTAyNywgMHg2OTE4LCAweEUzMDgsIDB4MDRCMywgMHg5MDJELCAweDY5MTMsIDB4QkZBMCwgMHg3NTk4LCAweEY3MDQsIDB4QUUyRCwgMHgwMEZGLCAweDhCOEQsIAotICAgIDB4NjkxOSwgMHhFMzA4LCAweDA0NjMsIDB4NjkxQSwgMHhFMzA4LCAweDA0NTYsIDB4QjkwNywgMHg4ODA5LCAweEJFQzYsIDB4MDQ1MywgMHgxMEE5LCAweDkwQUQsIAotICAgIDB4Nzk4MCwgMHgwNDdDLCAweEI5MDMsIDB4ODgwOSwgMHhCRUM2LCAweDA0NjAsIDB4MTg4OSwgMHg2QzIyLCAweDkwQUQsIDB4MTBBOSwgMHg2RTIzLCAweDZDMjIsIAotICAgIDB4OTBBRCwgMHg3OTgwLCAweDA0N0MsIDB4MTAxQSwgMHhFMzA4LCAweDA0NkYsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDQ2QywgMHgxMEE5LCAweDkwQTAsIAotICAgIDB4OTBBRCwgMHg3OTgwLCAweDA0N0MsIDB4QjkwMSwgMHg4ODA5LCAweEJFQzYsIDB4MDQ3QiwgMHgxODg5LCAweDZDMjIsIDB4OTBBMCwgMHg5MEFELCAweDEwQTksIAotICAgIDB4NkUyMywgMHg2QzIyLCAweDkwQTAsIDB4OTBBRCwgMHg2OTJELCAweEUzMDgsIDB4MDQ5QywgMHgwMTI0LCAweEI3MDMsIDB4QjkwMiwgMHg4ODE4LCAweDhCODksIAotICAgIDB4MDIyQywgMHgxMDhBLCAweDdDMDQsIDB4OTBBMCwgMHg2OTJCLCAweDg4MUYsIDB4N0U4MCwgMHgwNTVCLCAweDY5MkEsIDB4ODgwOSwgMHg4Qjg5LCAweDk5QTAsIAotICAgIDB4MTA4QSwgMHg5MEEwLCAweDY5MkIsIDB4ODgxRiwgMHg3RTgwLCAweDA1NUIsIDB4NjkyQSwgMHg4ODA5LCAweDhCODksIDB4OTlBRiwgMHg3Qjk5LCAweDA0ODQsIAotICAgIDB4MDEyNCwgMHgwNjBGLCAweDEwMUIsIDB4MjAxMywgMHg5MDFCLCAweEJGQTAsIDB4N0ZGRiwgMHhFMzQ0LCAweDA0QUMsIDB4OTAxQiwgMHg4Qjg5LCAweDdBODAsIAotICAgIDB4MDUxQSwgMHg2OTI3LCAweEJBMDEsIDB4OTAyNywgMHg3QTgwLCAweDA1MjMsIDB4NjkyNywgMHhFMzA4LCAweDA0OUUsIDB4Nzk4MCwgMHgwNTBGLCAweDA2MjQsIAotICAgIDB4MTAyNiwgMHgyMDEzLCAweDkwMjYsIDB4QkZBMCwgMHg3RkZGLCAweEUzMDQsIDB4MDRDMCwgMHg4QjhELCAweDdBODAsIDB4MDUxQSwgMHg3OTgwLCAweDA0QjQsIAotICAgIDB4OTAyNiwgMHgxMDEzLCAweDMwMjYsIDB4OTAxQiwgMHg4QjhELCAweDdBODAsIDB4MDUxQSwgMHg3QTgwLCAweDA1MjMsIDB4MTAyNywgMHhCQTAxLCAweDkwMjcsIAotICAgIDB4RTMwOCwgMHgwNEI0LCAweDAxMjQsIDB4MDYwRiwgMHg4Qjg5LCAweDY5MUEsIDB4RTMwOCwgMHgwNEVBLCAweDY5MTksIDB4RTM4OCwgMHgwNEUwLCAweEI5MDMsIAotICAgIDB4ODgwOSwgMHhCRUM2LCAweDA0REQsIDB4MUZBMCwgMHgyRkFFLCAweDk4QTksIDB4Nzk4MCwgMHgwNTBGLCAweEI5MDEsIDB4ODgxOCwgMHhCOTA3LCAweDg4MDksIAotICAgIDB4QkVDNiwgMHgwNEU3LCAweDEwRUUsIDB4OTBBOSwgMHg3OTgwLCAweDA1MEYsIDB4NjkxOSwgMHhFMzA4LCAweDA0RkUsIDB4QjkwMywgMHg4ODA5LCAweEJFNDYsIAotICAgIDB4QkVDNiwgMHgwNEZBLCAweDE3QTAsIDB4QkUxRSwgMHgxRkFFLCAweEJGQkYsIDB4RkYwMCwgMHhCRTEzLCAweEJGREYsIDB4ODA4MCwgMHg5OUE5LCAweEJFNDcsIAotICAgIDB4Nzk4MCwgMHgwNTBGLCAweEI5MDEsIDB4ODgwOSwgMHhCRUM2LCAweDA1MEUsIDB4MTZBMCwgMHgyNkEwLCAweEJGQjcsIDB4RkYwMCwgMHhCRTFFLCAweDFFQTAsIAotICAgIDB4MkVBRSwgMHhCRkJGLCAweEZGMDAsIDB4QkUxMywgMHhCRkRGLCAweDgwODAsIDB4OTlBOSwgMHg4NTBDLCAweDg2MEYsIDB4NjkwNywgMHhFMzg4LCAweDA1MTYsIAotICAgIDB4MEQwNywgMHg4NTEwLCAweEJFNTksIDB4ODgxRSwgMHhCRTRBLCAweEVGMDAsIDB4MTAxRSwgMHg5MDFDLCAweDEwMUYsIDB4OTAxRCwgMHgxMEEwLCAweDkwMUUsIAotICAgIDB4MTBBMCwgMHg5MDFGLCAweEVGMDAsIDB4MTAxRSwgMHgzMDFDLCAweDkwMjAsIDB4NzMxQiwgMHg1NDIwLCAweEJFMDMsIDB4OTgyNSwgMHgxMDI1LCAweDIwMUMsIAotICAgIDB4OTAyNSwgMHg3MzI1LCAweDU0MTQsIDB4QkUwMywgMHg4QjhFLCAweDk4ODAsIDB4NjkyRiwgMHhFMzg4LCAweDA1MzksIDB4QkU1OSwgMHhCQjA3LCAweDYxODAsIAotICAgIDB4OTg4MCwgMHg4QkEwLCAweDEwMUYsIDB4MzAxRCwgMHg5MDIxLCAweDczMUIsIDB4NTQyMSwgMHhCRTAzLCAweDk4MkUsIDB4MTAyRSwgMHgyMDFELCAweDkwMkUsIAotICAgIDB4NzMyRSwgMHg1NDE1LCAweEJFMDMsIDB4OTg4MCwgMHg2OTJGLCAweEUzODgsIDB4MDU0RiwgMHhCRTU5LCAweEJCMDcsIDB4NjE4MCwgMHg5ODgwLCAweDhCQTAsIAotICAgIDB4NjkxOCwgMHhFRjA4LCAweDczMjUsIDB4NTQxNiwgMHhCRTAzLCAweDk4QTAsIDB4NzMyRSwgMHg1NDE3LCAweEJFMDMsIDB4OThBMCwgMHhFRjAwLCAweDhCQTAsIAotICAgIDB4QkVDNiwgMHgwNTZCLCAweEJFNTksIDB4QkIwNCwgMHhBQTkwLCAweEJFMDQsIDB4QkUxRSwgMHg5OUUwLCAweDhCRTAsIDB4NjlBMCwgMHg5MEQwLCAweDY5QTAsIAotICAgIDB4OTBEMCwgMHgwODFGLCAweEI4MDUsIDB4ODgxRiwgMHg4QjkwLCAweDY5QTAsIDB4OTBEMCwgMHg2OUEwLCAweDkwOTAsIDB4OEJEMCwgMHg4QkQ4LCAweEJFMUYsIAotICAgIDB4RUYwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAotICAgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBhc3NwX2tlcm5lbCA9IHsKLQkuZGF0YSA9ICh1OCAqKWFzc3Bfa2VybmVsX2ltYWdlLAotCS5zaXplID0gc2l6ZW9mIGFzc3Bfa2VybmVsX2ltYWdlCi19Owotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBhc3NwX21pbmlzcmMgPSB7Ci0JLmRhdGEgPSAodTggKilhc3NwX21pbmlzcmNfaW1hZ2UsCi0JLnNpemUgPSBzaXplb2YgYXNzcF9taW5pc3JjX2ltYWdlCi19OwotCi0jZWxzZSAvKiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTCAqLwotCi0jaWZkZWYgX19MSVRUTEVfRU5ESUFOCi1zdGF0aWMgaW5saW5lIHZvaWQgc25kX20zX2NvbnZlcnRfZnJvbV9sZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KSB7IH0KLSNlbHNlCi1zdGF0aWMgdm9pZCBzbmRfbTNfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCi17Ci0JaW50IGk7Ci0JdTE2ICpkYXRhID0gKHUxNiAqKWZ3LT5kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplIC8gMjsgKytpKQotCQlsZTE2X3RvX2NwdXMoJmRhdGFbaV0pOwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTCAqLwotCi0KIC8qCiAgKiBpbml0aWFsaXplIEFTU1AKICAqLwpAQCAtMjI3MSw3ICsyMTEyLDcgQEAKIHN0YXRpYyB2b2lkIHNuZF9tM19hc3NwX2luaXQoc3RydWN0IHNuZF9tMyAqY2hpcCkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQl1MTYgKmRhdGE7CisJY29uc3QgdTE2ICpkYXRhOwogCiAJLyogemVybyBrZXJuZWwgZGF0YSAqLwogCWZvciAoaSA9IDA7IGkgPCAoUkVWX0JfREFUQV9NRU1PUllfVU5JVF9MRU5HVEggKiBOVU1fVU5JVFNfS0VSTkVMX0RBVEEpIC8gMjsgaSsrKQpAQCAtMjI4OSwxMCArMjEzMCwxMSBAQAogCQkJICBLREFUQV9ETUFfWEZFUjApOwogCiAJLyogd3JpdGUga2VybmVsIGludG8gY29kZSBtZW1vcnkuLiAqLwotCWRhdGEgPSAodTE2ICopY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UtPmRhdGE7CisJZGF0YSA9IChjb25zdCB1MTYgKiljaGlwLT5hc3NwX2tlcm5lbF9pbWFnZS0+ZGF0YTsKIAlmb3IgKGkgPSAwIDsgaSAqIDIgPCBjaGlwLT5hc3NwX2tlcm5lbF9pbWFnZS0+c2l6ZTsgaSsrKSB7CiAJCXNuZF9tM19hc3NwX3dyaXRlKGNoaXAsIE1FTVRZUEVfSU5URVJOQUxfQ09ERSwgCi0JCQkJICBSRVZfQl9DT0RFX01FTU9SWV9CRUdJTiArIGksIGRhdGFbaV0pOworCQkJCSAgUkVWX0JfQ09ERV9NRU1PUllfQkVHSU4gKyBpLAorCQkJCSAgbGUxNl90b19jcHUoZGF0YVtpXSkpOwogCX0KIAogCS8qCkBAIC0yMzAxLDEwICsyMTQzLDEwIEBACiAJICogZHJvcCBpdCB0aGVyZS4gIEl0IHNlZW1zIHRoYXQgdGhlIG1pbmlzcmMgZG9lc24ndAogCSAqIG5lZWQgdmVjdG9ycywgc28gd2Ugd29uJ3QgYm90aGVyIHdpdGggdGhlbS4uCiAJICovCi0JZGF0YSA9ICh1MTYgKiljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPmRhdGE7CisJZGF0YSA9IChjb25zdCB1MTYgKiljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPmRhdGE7CiAJZm9yIChpID0gMDsgaSAqIDIgPCBjaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPnNpemU7IGkrKykgewogCQlzbmRfbTNfYXNzcF93cml0ZShjaGlwLCBNRU1UWVBFX0lOVEVSTkFMX0NPREUsIAotCQkJCSAgMHg0MDAgKyBpLCBkYXRhW2ldKTsKKwkJCQkgIDB4NDAwICsgaSwgbGUxNl90b19jcHUoZGF0YVtpXSkpOwogCX0KIAogCS8qCkBAIC0yNDI3LDYgKzIyNjksMjkgQEAKIAlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOwogfQogCitzdGF0aWMgdm9pZAorc25kX20zX2h2X2luaXQoc3RydWN0IHNuZF9tMyAqY2hpcCkKK3sKKwl1bnNpZ25lZCBsb25nIGlvID0gY2hpcC0+aW9iYXNlOworCXUxNiB2YWwgPSBHUElfVk9MX0RPV04gfCBHUElfVk9MX1VQOworCisJaWYgKCFjaGlwLT5pc19vbW5pYm9vaykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBWb2x1bWUgYnV0dG9ucyBvbiBzb21lIEhQIE9tbmlCb29rIGxhcHRvcHMKKwkgKiByZXF1aXJlIHNvbWUgR1BJTyBtYWdpYyB0byB3b3JrIGNvcnJlY3RseS4KKwkgKi8KKwlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOworCW91dHcoMHgwMDAwLCBpbyArIEdQSU9fREFUQSk7CisKKwlvdXR3KH52YWwsIGlvICsgR1BJT19NQVNLKTsKKwlvdXR3KGludyhpbyArIEdQSU9fRElSRUNUSU9OKSAmIH52YWwsIGlvICsgR1BJT19ESVJFQ1RJT04pOworCW91dHcodmFsLCBpbyArIEdQSU9fTUFTSyk7CisKKwlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOworfQorCiBzdGF0aWMgaW50CiBzbmRfbTNfY2hpcF9pbml0KHN0cnVjdCBzbmRfbTMgKmNoaXApCiB7CkBAIC0yNDQyLDIxICsyMzA3LDYgQEAKIAkgICAgICAgRElTQUJMRV9MRUdBQ1kpOwogCXBjaV93cml0ZV9jb25maWdfd29yZChwY2lkZXYsIFBDSV9MRUdBQ1lfQVVESU9fQ1RSTCwgdyk7CiAKLQlpZiAoY2hpcC0+aXNfb21uaWJvb2spIHsKLQkJLyoKLQkJICogVm9sdW1lIGJ1dHRvbnMgb24gc29tZSBIUCBPbW5pQm9vayBsYXB0b3BzIGRvbid0IHdvcmsKLQkJICogY29ycmVjdGx5LiBUaGlzIG1ha2VzIHRoZW0gd29yayBmb3IgdGhlIG1vc3QgcGFydC4KLQkJICoKLQkJICogVm9sdW1lIHVwIGFuZCBkb3duIGJ1dHRvbnMgb24gdGhlIGxhcHRvcCBzaWRlIHdvcmsuCi0JCSAqIEZuK2N1cnNvcl91cCAodm9sbWUgdXApIHdvcmtzLgotCQkgKiBGbitjdXJzb3JfZG93biAodm9sdW1lIGRvd24pIGRvZXNuJ3Qgd29yay4KLQkJICogRm4rRjcgKG11dGUpIHdvcmtzIGFjdHMgYXMgdm9sdW1lIHVwLgotCQkgKi8KLQkJb3V0dyh+KEdQSV9WT0xfRE9XTnxHUElfVk9MX1VQKSwgaW8gKyBHUElPX01BU0spOwotCQlvdXR3KGludyhpbyArIEdQSU9fRElSRUNUSU9OKSAmIH4oR1BJX1ZPTF9ET1dOfEdQSV9WT0xfVVApLCBpbyArIEdQSU9fRElSRUNUSU9OKTsKLQkJb3V0dygoR1BJX1ZPTF9ET1dOfEdQSV9WT0xfVVApLCBpbyArIEdQSU9fREFUQSk7Ci0JCW91dHcoMHhmZmZmLCBpbyArIEdQSU9fTUFTSyk7Ci0JfQogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwY2lkZXYsIFBDSV9BTExFR1JPX0NPTkZJRywgJm4pOwogCW4gJj0gfihIVl9DVFJMX0VOQUJMRSB8IFJFRFVDRURfREVCT1VOQ0UgfCBIVl9CVVRUT05fRlJPTV9HRCk7CiAJbiB8PSBjaGlwLT5odl9jb25maWc7CkBAIC0yNTQ4LDEwICsyMzk4LDggQEAKIAlpZiAoY2hpcC0+aW9iYXNlKQogCQlwY2lfcmVsZWFzZV9yZWdpb25zKGNoaXAtPnBjaSk7CiAKLSNpZm5kZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmFzc3Bfa2VybmVsX2ltYWdlKTsKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSk7Ci0jZW5kaWYKIAogCXBjaV9kaXNhYmxlX2RldmljZShjaGlwLT5wY2kpOwogCWtmcmVlKGNoaXApOwpAQCAtMjY0Miw2ICsyNDkwLDggQEAKIAlzbmRfbTNfZW5hYmxlX2ludHMoY2hpcCk7CiAJc25kX20zX2FtcF9lbmFibGUoY2hpcCwgMSk7CiAKKwlzbmRfbTNfaHZfaW5pdChjaGlwKTsKKwogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTI3NDEsMjkgKzI1OTEsMTkgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0jaWZkZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQljaGlwLT5hc3NwX2tlcm5lbF9pbWFnZSA9ICZhc3NwX2tlcm5lbDsKLSNlbHNlCiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UsCiAJCQkgICAgICAgImVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdyIsICZwY2ktPmRldik7CiAJaWYgKGVyciA8IDApIHsKIAkJc25kX20zX2ZyZWUoY2hpcCk7CiAJCXJldHVybiBlcnI7Ci0JfSBlbHNlCi0JCXNuZF9tM19jb252ZXJ0X2Zyb21fbGUoY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UpOwotI2VuZGlmCisJfQogCi0jaWZkZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UgPSAmYXNzcF9taW5pc3JjOwotI2Vsc2UKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZjaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UsCiAJCQkgICAgICAgImVzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZnciLCAmcGNpLT5kZXYpOwogCWlmIChlcnIgPCAwKSB7CiAJCXNuZF9tM19mcmVlKGNoaXApOwogCQlyZXR1cm4gZXJyOwotCX0gZWxzZQotCQlzbmRfbTNfY29udmVydF9mcm9tX2xlKGNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSk7Ci0jZW5kaWYKKwl9CiAKIAlpZiAoKGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGNpLCBjYXJkLT5kcml2ZXIpKSA8IDApIHsKIAkJc25kX20zX2ZyZWUoY2hpcCk7CkBAIC0yNzgxLDYgKzI2MjEsOCBAQAogCiAJc25kX20zX2FtcF9lbmFibGUoY2hpcCwgMSk7CiAKKwlzbmRfbTNfaHZfaW5pdChjaGlwKTsKKwogCXRhc2tsZXRfaW5pdCgmY2hpcC0+aHd2b2xfdHEsIHNuZF9tM191cGRhdGVfaHdfdm9sdW1lLCAodW5zaWduZWQgbG9uZyljaGlwKTsKIAogCWlmIChyZXF1ZXN0X2lycShwY2ktPmlycSwgc25kX20zX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvbWl4YXJ0L21peGFydF9od2RlcC5jIGIvc291bmQvcGNpL21peGFydC9taXhhcnRfaHdkZXAuYwppbmRleCAxMjJjMjhlLi5mOTg2MDMxIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvbWl4YXJ0L21peGFydF9od2RlcC5jCisrKyBiL3NvdW5kL3BjaS9taXhhcnQvbWl4YXJ0X2h3ZGVwLmMKQEAgLTYxMyw3ICs2MTMsNyBAQAogCQkJICAgKGludClkc3AtPmxlbmd0aCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlpZiAoY29weV9mcm9tX3VzZXIoZncuZGF0YSwgZHNwLT5pbWFnZSwgZHNwLT5sZW5ndGgpKSB7CisJaWYgKGNvcHlfZnJvbV91c2VyKCh2b2lkICopIGZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgewogCQl2ZnJlZShmdy5kYXRhKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL25tMjU2L25tMjU2LmMgYi9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYwppbmRleCA3ZWZiODM4Li4wNmQxM2U3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYworKysgYi9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYwpAQCAtMTMwMiw4ICsxMzAyLDggQEAKIAkJLnJlYWQgPSBzbmRfbm0yNTZfYWM5N19yZWFkLAogCX07CiAKLQljaGlwLT5hYzk3X3JlZ3MgPSBrY2FsbG9jKHNpemVvZihzaG9ydCksCi0JCQkJICBBUlJBWV9TSVpFKG5tMjU2X2FjOTdfaW5pdF92YWwpLCBHRlBfS0VSTkVMKTsKKwljaGlwLT5hYzk3X3JlZ3MgPSBrY2FsbG9jKEFSUkFZX1NJWkUobm0yNTZfYWM5N19pbml0X3ZhbCksCisJCQkJICBzaXplb2Yoc2hvcnQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoISBjaGlwLT5hYzk3X3JlZ3MpCiAJCXJldHVybiAtRU5PTUVNOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL2hpZmllci5jIGIvc291bmQvcGNpL294eWdlbi9oaWZpZXIuYwppbmRleCAwOTBkZDQzLi43NDQyNDYwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvb3h5Z2VuL2hpZmllci5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vaGlmaWVyLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRlbXBvVGVjIEhpRmllciBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsKIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsKQEAgLTYyLDE2ICs2MiwyOCBAQAogCQkJIEFLNDM5Nl9XUklURSB8IChyZWcgPDwgOCkgfCB2YWx1ZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9MQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lWzBdKTsKKwlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X1JDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbMV0pOworfQorCitzdGF0aWMgdm9pZCBoaWZpZXJfcmVnaXN0ZXJzX2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgaGlmaWVyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzEsIEFLNDM5Nl9ESUZfMjRfTVNCIHwgQUs0Mzk2X1JTVE4pOworCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8yLCBkYXRhLT5hazQzOTZfY3RsMik7CisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOworCXVwZGF0ZV9hazQzOTZfdm9sdW1lKGNoaXApOworfQorCiBzdGF0aWMgdm9pZCBoaWZpZXJfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCBoaWZpZXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CiAKIAlkYXRhLT5hazQzOTZfY3RsMiA9IEFLNDM5Nl9TTVVURSB8IEFLNDM5Nl9ERU1fT0ZGIHwgQUs0Mzk2X0RGU19OT1JNQUw7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzEsIEFLNDM5Nl9ESUZfMjRfTVNCIHwgQUs0Mzk2X1JTVE4pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8yLCBkYXRhLT5hazQzOTZfY3RsMik7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfTENIX0FUVCwgMCk7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9SQ0hfQVRULCAwKTsKKwloaWZpZXJfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CiAKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQUs0Mzk2Iik7CiAJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNTM0MCIpOwpAQCAtMTAwLDEyICsxMTIsNiBAQAogCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8xLCBBSzQzOTZfRElGXzI0X01TQiB8IEFLNDM5Nl9SU1ROKTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbMF0pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfUkNIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVsxXSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCBoaWZpZXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CkBAIC0xNDAsNiArMTQ2LDcgQEAKIAkuaW5pdCA9IGhpZmllcl9pbml0LAogCS5jb250cm9sX2ZpbHRlciA9IGhpZmllcl9jb250cm9sX2ZpbHRlciwKIAkuY2xlYW51cCA9IGhpZmllcl9jbGVhbnVwLAorCS5yZXN1bWUgPSBoaWZpZXJfcmVnaXN0ZXJzX2luaXQsCiAJLnNldF9kYWNfcGFyYW1zID0gc2V0X2FrNDM5Nl9wYXJhbXMsCiAJLnNldF9hZGNfcGFyYW1zID0gc2V0X2NzNTM0MF9wYXJhbXMsCiAJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX2FrNDM5Nl92b2x1bWUsCkBAIC0xODAsNiArMTg3LDEwIEBACiAJLmlkX3RhYmxlID0gaGlmaWVyX2lkcywKIAkucHJvYmUgPSBoaWZpZXJfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKG94eWdlbl9wY2lfcmVtb3ZlKSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZCA9IG94eWdlbl9wY2lfc3VzcGVuZCwKKwkucmVzdW1lID0gb3h5Z2VuX3BjaV9yZXN1bWUsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF9oaWZpZXJfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uYyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmMKaW5kZXggNjNmMTg1Yy4uN2M4YWUzMSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5jCkBAIC00Myw3ICs0Myw3IEBACiAKIE1PRFVMRV9BVVRIT1IoIkNsZW1lbnMgTGFkaXNjaCA8Y2xlbWVuc0BsYWRpc2NoLmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJDLU1lZGlhIENNSTg3ODggZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tDLU1lZGlhLENNSTg3ODh9fSIpOwogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOwpAQCAtODAsNiArODAsNyBAQAogCiBzdHJ1Y3QgZ2VuZXJpY19kYXRhIHsKIAl1OCBhazQzOTZfY3RsMjsKKwl1MTYgc2F2ZWRfd204Nzg1X3JlZ2lzdGVyc1syXTsKIH07CiAKIHN0YXRpYyB2b2lkIGFrNDM5Nl93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgY29kZWMsCkBAIC05OSwyMCArMTAwLDM1IEBACiAKIHN0YXRpYyB2b2lkIHdtODc4NV93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1OCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKIHsKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKwogCW94eWdlbl93cml0ZV9zcGkoY2hpcCwgT1hZR0VOX1NQSV9UUklHR0VSIHwKIAkJCSBPWFlHRU5fU1BJX0RBVEFfTEVOR1RIXzIgfAogCQkJIE9YWUdFTl9TUElfQ0xPQ0tfMTYwIHwKIAkJCSAoMyA8PCBPWFlHRU5fU1BJX0NPREVDX1NISUZUKSB8CiAJCQkgT1hZR0VOX1NQSV9DRU5fTEFUQ0hfQ0xPQ0tfTE8sCiAJCQkgKHJlZyA8PCA5KSB8IHZhbHVlKTsKKwlpZiAocmVnIDwgQVJSQVlfU0laRShkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzKSkKKwkJZGF0YS0+c2F2ZWRfd204Nzg1X3JlZ2lzdGVyc1tyZWddID0gdmFsdWU7CiB9CiAKLXN0YXRpYyB2b2lkIGFrNDM5Nl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCitzdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X3ZvbHVtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKKwkJCSAgICAgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKKwkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCisJCQkgICAgIEFLNDM5Nl9SQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOworCX0KK30KKworc3RhdGljIHZvaWQgYWs0Mzk2X3JlZ2lzdGVyc19pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlkYXRhLT5hazQzOTZfY3RsMiA9IEFLNDM5Nl9TTVVURSB8IEFLNDM5Nl9ERU1fT0ZGIHwgQUs0Mzk2X0RGU19OT1JNQUw7CiAJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewogCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKIAkJCSAgICAgQUs0Mzk2X0NPTlRST0xfMSwgQUs0Mzk2X0RJRl8yNF9NU0IgfCBBSzQzOTZfUlNUTik7CkBAIC0xMjAsOSArMTM2LDE2IEBACiAJCQkgICAgIEFLNDM5Nl9DT05UUk9MXzIsIGRhdGEtPmFrNDM5Nl9jdGwyKTsKIAkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCiAJCQkgICAgIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOwotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwgQUs0Mzk2X0xDSF9BVFQsIDApOwotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwgQUs0Mzk2X1JDSF9BVFQsIDApOwogCX0KKwl1cGRhdGVfYWs0Mzk2X3ZvbHVtZShjaGlwKTsKK30KKworc3RhdGljIHZvaWQgYWs0Mzk2X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPmFrNDM5Nl9jdGwyID0gQUs0Mzk2X1NNVVRFIHwgQUs0Mzk2X0RFTV9PRkYgfCBBSzQzOTZfREZTX05PUk1BTDsKKwlhazQzOTZfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CiAJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkFLNDM5NiIpOwogfQogCkBAIC0xMzMsMTIgKzE1NiwyMyBAQAogCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJBSzUzODUiKTsKIH0KIAorc3RhdGljIHZvaWQgd204Nzg1X3JlZ2lzdGVyc19pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1I3LCAwKTsKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IwLCBkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzBdKTsKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IxLCBkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzFdKTsKK30KKwogc3RhdGljIHZvaWQgd204Nzg1X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKLQl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1I3LCAwKTsKLQl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IwLCBXTTg3ODVfTUNSX1NMQVZFIHwKLQkJICAgICBXTTg3ODVfT1NSX1NJTkdMRSB8IFdNODc4NV9GT1JNQVRfTEpVU1QpOwotCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjEsIFdNODc4NV9XTF8yNCk7CisJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzBdID0gV004Nzg1X01DUl9TTEFWRSB8CisJCVdNODc4NV9PU1JfU0lOR0xFIHwgV004Nzg1X0ZPUk1BVF9MSlVTVDsKKwlkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzFdID0gV004Nzg1X1dMXzI0OworCXdtODc4NV9yZWdpc3RlcnNfaW5pdChjaGlwKTsKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiV004Nzg1Iik7CiB9CiAKQEAgLTE1OCw2ICsxOTIsMTIgQEAKIHsKIH0KIAorc3RhdGljIHZvaWQgZ2VuZXJpY19yZXN1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlhazQzOTZfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CisJd204Nzg1X3JlZ2lzdGVyc19pbml0KGNoaXApOworfQorCiBzdGF0aWMgdm9pZCBzZXRfYWs0Mzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAogCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CkBAIC0xODMsMTggKzIyMyw2IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X3ZvbHVtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCXVuc2lnbmVkIGludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKLQkJCSAgICAgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKLQkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCi0JCQkgICAgIEFLNDM5Nl9SQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOwotCX0KLX0KLQogc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl9tdXRlKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CkBAIC0yNTYsNiArMjg0LDcgQEAKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuaW5pdCA9IGdlbmVyaWNfaW5pdCwKIAkuY2xlYW51cCA9IGdlbmVyaWNfY2xlYW51cCwKKwkucmVzdW1lID0gZ2VuZXJpY19yZXN1bWUsCiAJLnNldF9kYWNfcGFyYW1zID0gc2V0X2FrNDM5Nl9wYXJhbXMsCiAJLnNldF9hZGNfcGFyYW1zID0gc2V0X3dtODc4NV9wYXJhbXMsCiAJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX2FrNDM5Nl92b2x1bWUsCkBAIC0yODMsNiArMzEyLDcgQEAKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuaW5pdCA9IG1lcmlkaWFuX2luaXQsCiAJLmNsZWFudXAgPSBnZW5lcmljX2NsZWFudXAsCisJLnJlc3VtZSA9IGFrNDM5Nl9yZWdpc3RlcnNfaW5pdCwKIAkuc2V0X2RhY19wYXJhbXMgPSBzZXRfYWs0Mzk2X3BhcmFtcywKIAkuc2V0X2FkY19wYXJhbXMgPSBzZXRfYWs1Mzg1X3BhcmFtcywKIAkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfYWs0Mzk2X3ZvbHVtZSwKQEAgLTMzMSw2ICszNjEsMTAgQEAKIAkuaWRfdGFibGUgPSBveHlnZW5faWRzLAogCS5wcm9iZSA9IGdlbmVyaWNfb3h5Z2VuX3Byb2JlLAogCS5yZW1vdmUgPSBfX2RldmV4aXRfcChveHlnZW5fcGNpX3JlbW92ZSksCisjaWZkZWYgQ09ORklHX1BNCisJLnN1c3BlbmQgPSBveHlnZW5fcGNpX3N1c3BlbmQsCisJLnJlc3VtZSA9IG94eWdlbl9wY2lfcmVzdW1lLAorI2VuZGlmCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfb3h5Z2VuX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmggYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5oCmluZGV4IGE3MWM2ZTAuLjc0YTY0NDggMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmgKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW4uaApAQCAtMTYsNiArMTYsOCBAQAogI2RlZmluZSBQQ01fQUM5Nwk1CiAjZGVmaW5lIFBDTV9DT1VOVAk2CiAKKyNkZWZpbmUgT1hZR0VOX0lPX1NJWkUJMHgxMDAKKwogLyogbW9kZWwtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvZiBvdXRwdXRzL2lucHV0cyAqLwogI2RlZmluZSBQTEFZQkFDS18wX1RPX0kyUwkweDAwMQogI2RlZmluZSBQTEFZQkFDS18xX1RPX1NQRElGCTB4MDA0CkBAIC03OCw2ICs4MCwxMiBAQAogCXN0cnVjdCB3b3JrX3N0cnVjdCBzcGRpZl9pbnB1dF9iaXRzX3dvcms7CiAJc3RydWN0IHdvcmtfc3RydWN0IGdwaW9fd29yazsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBhYzk3X3dhaXRxdWV1ZTsKKwl1bmlvbiB7CisJCXU4IF84W09YWUdFTl9JT19TSVpFXTsKKwkJX19sZTE2IF8xNltPWFlHRU5fSU9fU0laRSAvIDJdOworCQlfX2xlMzIgXzMyW09YWUdFTl9JT19TSVpFIC8gNF07CisJfSBzYXZlZF9yZWdpc3RlcnM7CisJdTE2IHNhdmVkX2FjOTdfcmVnaXN0ZXJzWzJdWzB4NDBdOwogfTsKIAogc3RydWN0IG94eWdlbl9tb2RlbCB7CkBAIC04OSw2ICs5Nyw4IEBACiAJaW50ICgqY29udHJvbF9maWx0ZXIpKHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3ICp0ZW1wbGF0ZSk7CiAJaW50ICgqbWl4ZXJfaW5pdCkoc3RydWN0IG94eWdlbiAqY2hpcCk7CiAJdm9pZCAoKmNsZWFudXApKHN0cnVjdCBveHlnZW4gKmNoaXApOworCXZvaWQgKCpzdXNwZW5kKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKTsKKwl2b2lkICgqcmVzdW1lKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKTsKIAl2b2lkICgqcGNtX2hhcmR3YXJlX2ZpbHRlcikodW5zaWduZWQgaW50IGNoYW5uZWwsCiAJCQkJICAgIHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlICpoYXJkd2FyZSk7CiAJdm9pZCAoKnNldF9kYWNfcGFyYW1zKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLApAQCAtMTE3LDYgKzEyNywxMCBAQAogaW50IG94eWdlbl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBjaSwgaW50IGluZGV4LCBjaGFyICppZCwKIAkJICAgICBjb25zdCBzdHJ1Y3Qgb3h5Z2VuX21vZGVsICptb2RlbCk7CiB2b2lkIG94eWdlbl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpOworI2lmZGVmIENPTkZJR19QTQoraW50IG94eWdlbl9wY2lfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGNpLCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworaW50IG94eWdlbl9wY2lfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwY2kpOworI2VuZGlmCiAKIC8qIG94eWdlbl9taXhlci5jICovCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2lvLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9pby5jCmluZGV4IDU1Njk2MDYuLjgzZjEzNWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2lvLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5faW8uYwpAQCAtNDQsMTggKzQ0LDIxIEBACiB2b2lkIG94eWdlbl93cml0ZTgoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IHJlZywgdTggdmFsdWUpCiB7CiAJb3V0Yih2YWx1ZSwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl84W3JlZ10gPSB2YWx1ZTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlOCk7CiAKIHZvaWQgb3h5Z2VuX3dyaXRlMTYoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IHJlZywgdTE2IHZhbHVlKQogewogCW91dHcodmFsdWUsIGNoaXAtPmFkZHIgKyByZWcpOworCWNoaXAtPnNhdmVkX3JlZ2lzdGVycy5fMTZbcmVnIC8gMl0gPSBjcHVfdG9fbGUxNih2YWx1ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKG94eWdlbl93cml0ZTE2KTsKIAogdm9pZCBveHlnZW5fd3JpdGUzMihzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgcmVnLCB1MzIgdmFsdWUpCiB7CiAJb3V0bCh2YWx1ZSwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl8zMltyZWcgLyA0XSA9IGNwdV90b19sZTMyKHZhbHVlKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMzIpOwogCkBAIC02Myw3ICs2NiwxMCBAQAogCQkJICB1OCB2YWx1ZSwgdTggbWFzaykKIHsKIAl1OCB0bXAgPSBpbmIoY2hpcC0+YWRkciArIHJlZyk7Ci0Jb3V0YigodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayksIGNoaXAtPmFkZHIgKyByZWcpOworCXRtcCAmPSB+bWFzazsKKwl0bXAgfD0gdmFsdWUgJiBtYXNrOworCW91dGIodG1wLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzhbcmVnXSA9IHRtcDsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlOF9tYXNrZWQpOwogCkBAIC03MSw3ICs3NywxMCBAQAogCQkJICAgdTE2IHZhbHVlLCB1MTYgbWFzaykKIHsKIAl1MTYgdG1wID0gaW53KGNoaXAtPmFkZHIgKyByZWcpOwotCW91dHcoKHRtcCAmIH5tYXNrKSB8ICh2YWx1ZSAmIG1hc2spLCBjaGlwLT5hZGRyICsgcmVnKTsKKwl0bXAgJj0gfm1hc2s7CisJdG1wIHw9IHZhbHVlICYgbWFzazsKKwlvdXR3KHRtcCwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl8xNltyZWcgLyAyXSA9IGNwdV90b19sZTE2KHRtcCk7CiB9CiBFWFBPUlRfU1lNQk9MKG94eWdlbl93cml0ZTE2X21hc2tlZCk7CiAKQEAgLTc5LDcgKzg4LDEwIEBACiAJCQkgICB1MzIgdmFsdWUsIHUzMiBtYXNrKQogewogCXUzMiB0bXAgPSBpbmwoY2hpcC0+YWRkciArIHJlZyk7Ci0Jb3V0bCgodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayksIGNoaXAtPmFkZHIgKyByZWcpOworCXRtcCAmPSB+bWFzazsKKwl0bXAgfD0gdmFsdWUgJiBtYXNrOworCW91dGwodG1wLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzMyW3JlZyAvIDRdID0gY3B1X3RvX2xlMzIodG1wKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMzJfbWFza2VkKTsKIApAQCAtMTI4LDggKzE0MCwxMCBAQAogCQlveHlnZW5fd3JpdGUzMihjaGlwLCBPWFlHRU5fQUM5N19SRUdTLCByZWcpOwogCQkvKiByZXF1aXJlIHR3byAiY29tcGxldGVkIiB3cml0ZXMsIGp1c3QgdG8gYmUgc3VyZSAqLwogCQlpZiAob3h5Z2VuX2FjOTdfd2FpdChjaGlwLCBPWFlHRU5fQUM5N19JTlRfV1JJVEVfRE9ORSkgPj0gMCAmJgotCQkgICAgKytzdWNjZWVkZWQgPj0gMikKKwkJICAgICsrc3VjY2VlZGVkID49IDIpIHsKKwkJCWNoaXAtPnNhdmVkX2FjOTdfcmVnaXN0ZXJzW2NvZGVjXVtpbmRleCAvIDJdID0gZGF0YTsKIAkJCXJldHVybjsKKwkJfQogCX0KIAlzbmRfcHJpbnRrKEtFUk5fRVJSICJBQyc5NyB3cml0ZSB0aW1lb3V0XG4iKTsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2xpYi5jIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKaW5kZXggODk3Njk3ZC4uMjJmMzc4NSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkMtTWVkaWEgQ01JODc4OCBoZWxwZXIgbGlicmFyeSIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogCiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBveHlnZW5faW50ZXJydXB0KGludCBkdW1teSwgdm9pZCAqZGV2X2lkKQpAQCAtMTczLDcgKzE3Myw3IEBACiAJaW50IGksIGo7CiAKIAlzbmRfaXByaW50ZihidWZmZXIsICJDTUk4Nzg4XG5cbiIpOwotCWZvciAoaSA9IDA7IGkgPCAweDEwMDsgaSArPSAweDEwKSB7CisJZm9yIChpID0gMDsgaSA8IE9YWUdFTl9JT19TSVpFOyBpICs9IDB4MTApIHsKIAkJc25kX2lwcmludGYoYnVmZmVyLCAiJTAyeDoiLCBpKTsKIAkJZm9yIChqID0gMDsgaiA8IDB4MTA7ICsraikKIAkJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAlMDJ4Iiwgb3h5Z2VuX3JlYWQ4KGNoaXAsIGkgKyBqKSk7CkBAIC0zMTQsNiArMzE0LDEwIEBACiAJCQkJICAgIE9YWUdFTl9TUERJRl9MT0NLX01BU0sgfAogCQkJCSAgICBPWFlHRU5fU1BESUZfUkFURV9NQVNLKTsKIAlveHlnZW5fd3JpdGUzMihjaGlwLCBPWFlHRU5fU1BESUZfT1VUUFVUX0JJVFMsIGNoaXAtPnNwZGlmX2JpdHMpOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAorCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8CisJCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfU1RBTkRBUkQpOwogCW94eWdlbl9jbGVhcl9iaXRzOChjaGlwLCBPWFlHRU5fTVBVNDAxX0NPTlRST0wsIE9YWUdFTl9NUFU0MDFfTE9PUEJBQ0spOwogCW94eWdlbl93cml0ZTgoY2hpcCwgT1hZR0VOX0dQSV9JTlRFUlJVUFRfTUFTSywgMCk7CiAJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0dQSU9fSU5URVJSVVBUX01BU0ssIDApOwpAQCAtNDU1LDcgKzQ1OSw3IEBACiAJfQogCiAJaWYgKCEocGNpX3Jlc291cmNlX2ZsYWdzKHBjaSwgMCkgJiBJT1JFU09VUkNFX0lPKSB8fAotCSAgICBwY2lfcmVzb3VyY2VfbGVuKHBjaSwgMCkgPCAweDEwMCkgeworCSAgICBwY2lfcmVzb3VyY2VfbGVuKHBjaSwgMCkgPCBPWFlHRU5fSU9fU0laRSkgewogCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJpbnZhbGlkIFBDSSBJL08gcmFuZ2VcbiIpOwogCQllcnIgPSAtRU5YSU87CiAJCWdvdG8gZXJyX3BjaV9yZWdpb25zOwpAQCAtNTM0LDMgKzUzOCw5OSBAQAogCXBjaV9zZXRfZHJ2ZGF0YShwY2ksIE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fcGNpX3JlbW92ZSk7CisKKyNpZmRlZiBDT05GSUdfUE0KK2ludCBveHlnZW5fcGNpX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBjaSwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOworCXN0cnVjdCBveHlnZW4gKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgaW50IGksIHNhdmVkX2ludGVycnVwdF9tYXNrOworCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjYXJkLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCisJZm9yIChpID0gMDsgaSA8IFBDTV9DT1VOVDsgKytpKQorCQlpZiAoY2hpcC0+c3RyZWFtc1tpXSkKKwkJCXNuZF9wY21fc3VzcGVuZChjaGlwLT5zdHJlYW1zW2ldKTsKKworCWlmIChjaGlwLT5tb2RlbC0+c3VzcGVuZCkKKwkJY2hpcC0+bW9kZWwtPnN1c3BlbmQoY2hpcCk7CisKKwlzcGluX2xvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisJc2F2ZWRfaW50ZXJydXB0X21hc2sgPSBjaGlwLT5pbnRlcnJ1cHRfbWFzazsKKwljaGlwLT5pbnRlcnJ1cHRfbWFzayA9IDA7CisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0RNQV9TVEFUVVMsIDApOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl9JTlRFUlJVUFRfTUFTSywgMCk7CisJc3Bpbl91bmxvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisKKwlzeW5jaHJvbml6ZV9pcnEoY2hpcC0+aXJxKTsKKwlmbHVzaF9zY2hlZHVsZWRfd29yaygpOworCWNoaXAtPmludGVycnVwdF9tYXNrID0gc2F2ZWRfaW50ZXJydXB0X21hc2s7CisKKwlwY2lfZGlzYWJsZV9kZXZpY2UocGNpKTsKKwlwY2lfc2F2ZV9zdGF0ZShwY2kpOworCXBjaV9zZXRfcG93ZXJfc3RhdGUocGNpLCBwY2lfY2hvb3NlX3N0YXRlKHBjaSwgc3RhdGUpKTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wob3h5Z2VuX3BjaV9zdXNwZW5kKTsKKworc3RhdGljIGNvbnN0IHUzMiByZWdpc3RlcnNfdG9fcmVzdG9yZVtPWFlHRU5fSU9fU0laRSAvIDMyXSA9IHsKKwkweGZmZmZmZmZmLCAweDAwZmYwNzdmLCAweDAwMDExZDA4LCAweDAwN2YwMGZmLAorCTB4MDAzMDAwMDAsIDB4MDAwMDBmZTQsIDB4MGZmNzAwMWYsIDB4MDAwMDAwMDAKK307CitzdGF0aWMgY29uc3QgdTMyIGFjOTdfcmVnaXN0ZXJzX3RvX3Jlc3RvcmVbMl1bMHg0MCAvIDMyXSA9IHsKKwl7IDB4MTgyODRmYTIsIDB4MDMwNjAwMDAgfSwKKwl7IDB4MDAwMDdmYTYsIDB4MDAyMDAwMDAgfQorfTsKKworc3RhdGljIGlubGluZSBpbnQgaXNfYml0X3NldChjb25zdCB1MzIgKmJpdG1hcCwgdW5zaWduZWQgaW50IGJpdCkKK3sKKwlyZXR1cm4gYml0bWFwW2JpdCAvIDMyXSAmICgxIDw8IChiaXQgJiAzMSkpOworfQorCitzdGF0aWMgdm9pZCBveHlnZW5fcmVzdG9yZV9hYzk3KHN0cnVjdCBveHlnZW4gKmNoaXAsIHVuc2lnbmVkIGludCBjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCW94eWdlbl93cml0ZV9hYzk3KGNoaXAsIGNvZGVjLCBBQzk3X1JFU0VULCAwKTsKKwltc2xlZXAoMSk7CisJZm9yIChpID0gMTsgaSA8IDB4NDA7ICsraSkKKwkJaWYgKGlzX2JpdF9zZXQoYWM5N19yZWdpc3RlcnNfdG9fcmVzdG9yZVtjb2RlY10sIGkpKQorCQkJb3h5Z2VuX3dyaXRlX2FjOTcoY2hpcCwgY29kZWMsIGkgKiAyLAorCQkJCQkgIGNoaXAtPnNhdmVkX2FjOTdfcmVnaXN0ZXJzW2NvZGVjXVtpXSk7Cit9CisKK2ludCBveHlnZW5fcGNpX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGNpKQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOworCXN0cnVjdCBveHlnZW4gKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgaW50IGk7CisKKwlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBjaSwgUENJX0QwKTsKKwlwY2lfcmVzdG9yZV9zdGF0ZShwY2kpOworCWlmIChwY2lfZW5hYmxlX2RldmljZShwY2kpIDwgMCkgeworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgcmVlbmFibGUgZGV2aWNlIik7CisJCXNuZF9jYXJkX2Rpc2Nvbm5lY3QoY2FyZCk7CisJCXJldHVybiAtRUlPOworCX0KKwlwY2lfc2V0X21hc3RlcihwY2kpOworCisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0RNQV9TVEFUVVMsIDApOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl9JTlRFUlJVUFRfTUFTSywgMCk7CisJZm9yIChpID0gMDsgaSA8IE9YWUdFTl9JT19TSVpFOyArK2kpCisJCWlmIChpc19iaXRfc2V0KHJlZ2lzdGVyc190b19yZXN0b3JlLCBpKSkKKwkJCW94eWdlbl93cml0ZTgoY2hpcCwgaSwgY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl84W2ldKTsKKwlpZiAoY2hpcC0+aGFzX2FjOTdfMCkKKwkJb3h5Z2VuX3Jlc3RvcmVfYWM5NyhjaGlwLCAwKTsKKwlpZiAoY2hpcC0+aGFzX2FjOTdfMSkKKwkJb3h5Z2VuX3Jlc3RvcmVfYWM5NyhjaGlwLCAxKTsKKworCWlmIChjaGlwLT5tb2RlbC0+cmVzdW1lKQorCQljaGlwLT5tb2RlbC0+cmVzdW1lKGNoaXApOworCisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0lOVEVSUlVQVF9NQVNLLCBjaGlwLT5pbnRlcnJ1cHRfbWFzayk7CisKKwlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EMCk7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG94eWdlbl9wY2lfcmVzdW1lKTsKKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX21peGVyLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9taXhlci5jCmluZGV4IGNjMGNkZGEuLjZmYWNhYzUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX21peGVyLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fbWl4ZXIuYwpAQCAtOTM2LDExICs5MzYsMTMgQEAKIAogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAJCXRlbXBsYXRlID0gY29udHJvbHNbaV07Ci0JCWVyciA9IGNoaXAtPm1vZGVsLT5jb250cm9sX2ZpbHRlcigmdGVtcGxhdGUpOwotCQlpZiAoZXJyIDwgMCkKLQkJCXJldHVybiBlcnI7Ci0JCWlmIChlcnIgPT0gMSkKLQkJCWNvbnRpbnVlOworCQlpZiAoY2hpcC0+bW9kZWwtPmNvbnRyb2xfZmlsdGVyKSB7CisJCQllcnIgPSBjaGlwLT5tb2RlbC0+Y29udHJvbF9maWx0ZXIoJnRlbXBsYXRlKTsKKwkJCWlmIChlcnIgPCAwKQorCQkJCXJldHVybiBlcnI7CisJCQlpZiAoZXJyID09IDEpCisJCQkJY29udGludWU7CisJCX0KIAkJaWYgKCFzdHJjbXAodGVtcGxhdGUubmFtZSwgIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiKSAmJgogCQkgICAgY2hpcC0+bW9kZWwtPmRhY190bHYpIHsKIAkJCXRlbXBsYXRlLnRsdi5wID0gY2hpcC0+bW9kZWwtPmRhY190bHY7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9wY20uYyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX3BjbS5jCmluZGV4IGIxN2M0MDUuLmM0YWQ2NWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX3BjbS5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX3BjbS5jCkBAIC0yNCw2ICsyNCwxNiBAQAogI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KICNpbmNsdWRlICJveHlnZW4uaCIKIAorLyogbW9zdCBETUEgY2hhbm5lbHMgaGF2ZSBhIDE2LWJpdCBjb3VudGVyIGZvciAzMi1iaXQgd29yZHMgKi8KKyNkZWZpbmUgQlVGRkVSX0JZVEVTX01BWAkJKCgxIDw8IDE2KSAqIDQpCisvKiB0aGUgbXVsdGljaGFubmVsIERNQSBjaGFubmVsIGhhcyBhIDI0LWJpdCBjb3VudGVyICovCisjZGVmaW5lIEJVRkZFUl9CWVRFU19NQVhfTVVMVElDSAkoKDEgPDwgMjQpICogNCkKKworI2RlZmluZSBQRVJJT0RfQllURVNfTUlOCQk2NAorCisjZGVmaW5lIERFRkFVTFRfQlVGRkVSX0JZVEVTCQkoQlVGRkVSX0JZVEVTX01BWCAvIDIpCisjZGVmaW5lIERFRkFVTFRfQlVGRkVSX0JZVEVTX01VTFRJQ0gJKDEwMjQgKiAxMDI0KQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgb3h5Z2VuX3N0ZXJlb19oYXJkd2FyZSA9IHsKIAkuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfAogCQlTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwKQEAgLTQ0LDExICs1NCwxMSBAQAogCS5yYXRlX21heCA9IDE5MjAwMCwKIAkuY2hhbm5lbHNfbWluID0gMiwKIAkuY2hhbm5lbHNfbWF4ID0gMiwKLQkuYnVmZmVyX2J5dGVzX21heCA9IDI1NiAqIDEwMjQsCi0JLnBlcmlvZF9ieXRlc19taW4gPSAxMjgsCi0JLnBlcmlvZF9ieXRlc19tYXggPSAxMjggKiAxMDI0LAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWCwKKwkucGVyaW9kX2J5dGVzX21pbiA9IFBFUklPRF9CWVRFU19NSU4sCisJLnBlcmlvZF9ieXRlc19tYXggPSBCVUZGRVJfQllURVNfTUFYIC8gMiwKIAkucGVyaW9kc19taW4gPSAyLAotCS5wZXJpb2RzX21heCA9IDIwNDgsCisJLnBlcmlvZHNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWCAvIFBFUklPRF9CWVRFU19NSU4sCiB9Owogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIG94eWdlbl9tdWx0aWNoYW5uZWxfaGFyZHdhcmUgPSB7CiAJLmluZm8gPSBTTkRSVl9QQ01fSU5GT19NTUFQIHwKQEAgLTcwLDExICs4MCwxMSBAQAogCS5yYXRlX21heCA9IDE5MjAwMCwKIAkuY2hhbm5lbHNfbWluID0gMiwKIAkuY2hhbm5lbHNfbWF4ID0gOCwKLQkuYnVmZmVyX2J5dGVzX21heCA9IDIwNDggKiAxMDI0LAotCS5wZXJpb2RfYnl0ZXNfbWluID0gMTI4LAotCS5wZXJpb2RfYnl0ZXNfbWF4ID0gMjU2ICogMTAyNCwKKwkuYnVmZmVyX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVhfTVVMVElDSCwKKwkucGVyaW9kX2J5dGVzX21pbiA9IFBFUklPRF9CWVRFU19NSU4sCisJLnBlcmlvZF9ieXRlc19tYXggPSBCVUZGRVJfQllURVNfTUFYX01VTFRJQ0ggLyAyLAogCS5wZXJpb2RzX21pbiA9IDIsCi0JLnBlcmlvZHNfbWF4ID0gMTYzODQsCisJLnBlcmlvZHNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNIIC8gUEVSSU9EX0JZVEVTX01JTiwKIH07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgb3h5Z2VuX2FjOTdfaGFyZHdhcmUgPSB7CiAJLmluZm8gPSBTTkRSVl9QQ01fSU5GT19NTUFQIHwKQEAgLTg4LDExICs5OCwxMSBAQAogCS5yYXRlX21heCA9IDQ4MDAwLAogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSAyLAotCS5idWZmZXJfYnl0ZXNfbWF4ID0gMjU2ICogMTAyNCwKLQkucGVyaW9kX2J5dGVzX21pbiA9IDEyOCwKLQkucGVyaW9kX2J5dGVzX21heCA9IDEyOCAqIDEwMjQsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSBCVUZGRVJfQllURVNfTUFYLAorCS5wZXJpb2RfYnl0ZXNfbWluID0gUEVSSU9EX0JZVEVTX01JTiwKKwkucGVyaW9kX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVggLyAyLAogCS5wZXJpb2RzX21pbiA9IDIsCi0JLnBlcmlvZHNfbWF4ID0gMjA0OCwKKwkucGVyaW9kc19tYXggPSBCVUZGRVJfQllURVNfTUFYIC8gUEVSSU9EX0JZVEVTX01JTiwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSAqY29uc3Qgb3h5Z2VuX2hhcmR3YXJlW1BDTV9DT1VOVF0gPSB7CkBAIC0xNTUsNiArMTY1LDEyIEBACiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsKIAl9CisJaWYgKGNoYW5uZWwgPT0gUENNX01VTFRJQ0gpIHsKKwkJZXJyID0gc25kX3BjbV9od19jb25zdHJhaW50X21pbm1heAorCQkJKHJ1bnRpbWUsIFNORFJWX1BDTV9IV19QQVJBTV9QRVJJT0RfVElNRSwgMCwgODE5MjAwMCk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CiAJc25kX3BjbV9zZXRfc3luYyhzdWJzdHJlYW0pOwogCWNoaXAtPnN0cmVhbXNbY2hhbm5lbF0gPSBzdWJzdHJlYW07CiAKQEAgLTUxNyw2ICs1MzMsNyBAQAogCXN3aXRjaCAoY21kKSB7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgogCQlwYXVzaW5nID0gMDsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgpAQCAtNjYzLDEyICs2ODAsMTQgQEAKIAkJCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX3BhZ2VzKHBjbS0+c3RyZWFtc1tTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLXS5zdWJzdHJlYW0sCiAJCQkJCQkgICAgICBTTkRSVl9ETUFfVFlQRV9ERVYsCiAJCQkJCQkgICAgICBzbmRfZG1hX3BjaV9kYXRhKGNoaXAtPnBjaSksCi0JCQkJCQkgICAgICA1MTIgKiAxMDI0LCAyMDQ4ICogMTAyNCk7CisJCQkJCQkgICAgICBERUZBVUxUX0JVRkZFUl9CWVRFU19NVUxUSUNILAorCQkJCQkJICAgICAgQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNIKTsKIAkJaWYgKGlucykKIAkJCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX3BhZ2VzKHBjbS0+c3RyZWFtc1tTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkVdLnN1YnN0cmVhbSwKIAkJCQkJCSAgICAgIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDEyOCAqIDEwMjQsIDI1NiAqIDEwMjQpOworCQkJCQkJICAgICAgREVGQVVMVF9CVUZGRVJfQllURVMsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYKTsKIAl9CiAKIAlvdXRzID0gISEoY2hpcC0+bW9kZWwtPnBjbV9kZXZfY2ZnICYgUExBWUJBQ0tfMV9UT19TUERJRik7CkBAIC02ODgsNyArNzA3LDggQEAKIAkJc3RyY3B5KHBjbS0+bmFtZSwgIkRpZ2l0YWwiKTsKIAkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDEyOCAqIDEwMjQsIDI1NiAqIDEwMjQpOworCQkJCQkJICAgICAgREVGQVVMVF9CVUZGRVJfQllURVMsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYKTsKIAl9CiAKIAlpZiAoY2hpcC0+aGFzX2FjOTdfMSkgewpAQCAtNzE4LDcgKzczOCw4IEBACiAJCXN0cmNweShwY20tPm5hbWUsIG91dHMgPyAiRnJvbnQgUGFuZWwiIDogIkFuYWxvZyAyIik7CiAJCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX3BhZ2VzX2Zvcl9hbGwocGNtLCBTTkRSVl9ETUFfVFlQRV9ERVYsCiAJCQkJCQkgICAgICBzbmRfZG1hX3BjaV9kYXRhKGNoaXAtPnBjaSksCi0JCQkJCQkgICAgICAxMjggKiAxMDI0LCAyNTYgKiAxMDI0KTsKKwkJCQkJCSAgICAgIERFRkFVTFRfQlVGRkVSX0JZVEVTLAorCQkJCQkJICAgICAgQlVGRkVSX0JZVEVTX01BWCk7CiAJfQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi92aXJ0dW9zby5jIGIvc291bmQvcGNpL294eWdlbi92aXJ0dW9zby5jCmluZGV4IDdmODRmYTUuLjlhMmMxNmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vdmlydHVvc28uYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMKQEAgLTc5LDcgKzc5LDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFzdXMgQVZ4MDAgZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tBc3VzLEFWMTAwfSx7QXN1cyxBVjIwMH19Iik7CiAKIHN0YXRpYyBpbnQgaW5kZXhbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9JRFg7CkBAIC0xMzIsNiArMTMyLDkgQEAKIAl1OCBleHRfcG93ZXJfaW50X3JlZzsKIAl1OCBleHRfcG93ZXJfYml0OwogCXU4IGhhc19wb3dlcjsKKwl1OCBwY20xNzk2X292ZXJzYW1wbGluZzsKKwl1OCBjczQzOThfZm07CisJdTggY3M0MzYyYV9mbTsKIH07CiAKIHN0YXRpYyB2b2lkIHBjbTE3OTZfd3JpdGUoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IGNvZGVjLApAQCAtMTU5LDYgKzE2MiwxNCBAQAogCW94eWdlbl93cml0ZV9pMmMoY2hpcCwgSTJDX0RFVklDRV9DUzQzNjJBLCByZWcsIHZhbHVlKTsKIH0KIAorc3RhdGljIHZvaWQgeG9uYXJfZW5hYmxlX291dHB1dChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCW1zbGVlcChkYXRhLT5hbnRpX3BvcF9kZWxheSk7CisJb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwgZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQpOworfQorCiBzdGF0aWMgdm9pZCB4b25hcl9jb21tb25faW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKQEAgLTE3MCwzMiArMTgxLDU5IEBACiAJCWRhdGEtPmhhc19wb3dlciA9ICEhKG94eWdlbl9yZWFkOChjaGlwLCBkYXRhLT5leHRfcG93ZXJfcmVnKQogCQkJCSAgICAgJiBkYXRhLT5leHRfcG93ZXJfYml0KTsKIAl9Ci0Jb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fQ09OVFJPTCwgR1BJT19DUzUzeDFfTV9NQVNLKTsKKwlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLAorCQkJICBHUElPX0NTNTN4MV9NX01BU0sgfCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7CiAJb3h5Z2VuX3dyaXRlMTZfbWFza2VkKGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsCiAJCQkgICAgICBHUElPX0NTNTN4MV9NX1NJTkdMRSwgR1BJT19DUzUzeDFfTV9NQVNLKTsKIAlveHlnZW5fYWM5N19zZXRfYml0cyhjaGlwLCAwLCBDTTk3ODBfSkFDSywgQ005NzgwX0ZNSUMyTUlDKTsKLQltc2xlZXAoZGF0YS0+YW50aV9wb3BfZGVsYXkpOwotCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0NPTlRST0wsIGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKLQlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7CisJeG9uYXJfZW5hYmxlX291dHB1dChjaGlwKTsKK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTYsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKKwkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNywgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMiArIDFdKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9wY20xNzk2X211dGUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwl1OCB2YWx1ZTsKKworCXZhbHVlID0gUENNMTc5Nl9ETUZfRElTQUJMRUQgfCBQQ00xNzk2X0ZNVF8yNF9MSlVTVCB8IFBDTTE3OTZfQVRMRDsKKwlpZiAoY2hpcC0+ZGFjX211dGUpCisJCXZhbHVlIHw9IFBDTTE3OTZfTVVURTsKKwlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKQorCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE4LCB2YWx1ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHBjbTE3OTZfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKwkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxOSwgUENNMTc5Nl9GTFRfU0hBUlAgfCBQQ00xNzk2X0FUU18xKTsKKwkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMCwgZGF0YS0+cGNtMTc5Nl9vdmVyc2FtcGxpbmcpOworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIxLCAwKTsKKwl9CisJdXBkYXRlX3BjbTE3OTZfbXV0ZShjaGlwKTsgLyogc2V0IEFUTEQgYmVmb3JlIEFUTC9BVFIgKi8KKwl1cGRhdGVfcGNtMTc5Nl92b2x1bWUoY2hpcCk7CiB9CiAKIHN0YXRpYyB2b2lkIHhvbmFyX2QyX2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKIAlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7Ci0JdW5zaWduZWQgaW50IGk7CiAKIAlkYXRhLT5hbnRpX3BvcF9kZWxheSA9IDMwMDsKIAlkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCA9IEdQSU9fRDJfT1VUUFVUX0VOQUJMRTsKKwlkYXRhLT5wY20xNzk2X292ZXJzYW1wbGluZyA9IFBDTTE3OTZfT1NfNjQ7CiAKLQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7Ci0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTgsIFBDTTE3OTZfTVVURSB8IFBDTTE3OTZfRE1GX0RJU0FCTEVEIHwKLQkJCSAgICAgIFBDTTE3OTZfRk1UXzI0X0xKVVNUIHwgUENNMTc5Nl9BVExEKTsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxOSwgUENNMTc5Nl9GTFRfU0hBUlAgfCBQQ00xNzk2X0FUU18xKTsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMCwgUENNMTc5Nl9PU182NCk7Ci0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjEsIDApOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE2LCAweDBmKTsgLyogc2V0IEFUTC9BVFIgYWZ0ZXIgQVRMRCAqLwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE3LCAweDBmKTsKLQl9CisJcGNtMTc5Nl9pbml0KGNoaXApOwogCiAJb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fQ09OVFJPTCwgR1BJT19EMl9BTFQpOwogCW94eWdlbl9jbGVhcl9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwgR1BJT19EMl9BTFQpOwpAQCAtMjE3LDE1MSArMjU1LDYgQEAKIAl4b25hcl9kMl9pbml0KGNoaXApOwogfQogCi1zdGF0aWMgdm9pZCB4b25hcl9keF9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0Jc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwotCi0JZGF0YS0+YW50aV9wb3BfZGVsYXkgPSA4MDA7Ci0JZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQgPSBHUElPX0RYX09VVFBVVF9FTkFCTEU7Ci0JZGF0YS0+ZXh0X3Bvd2VyX3JlZyA9IE9YWUdFTl9HUElfREFUQTsKLQlkYXRhLT5leHRfcG93ZXJfaW50X3JlZyA9IE9YWUdFTl9HUElfSU5URVJSVVBUX01BU0s7Ci0JZGF0YS0+ZXh0X3Bvd2VyX2JpdCA9IEdQSV9EWF9FWFRfUE9XRVI7Ci0KLQlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fMldJUkVfQlVTX1NUQVRVUywKLQkJICAgICAgIE9YWUdFTl8yV0lSRV9MRU5HVEhfOCB8Ci0JCSAgICAgICBPWFlHRU5fMldJUkVfSU5URVJSVVBUX01BU0sgfAotCQkgICAgICAgT1hZR0VOXzJXSVJFX1NQRUVEX0ZBU1QpOwotCi0JLyogc2V0IENQRU4gKGNvbnRyb2wgcG9ydCBtb2RlKSBhbmQgcG93ZXIgZG93biAqLwotCWNzNDM5OF93cml0ZShjaGlwLCA4LCBDUzQzOThfQ1BFTiB8IENTNDM5OF9QRE4pOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwMSwgQ1M0MzYyQV9QRE4gfCBDUzQzNjJBX0NQRU4pOwotCS8qIGNvbmZpZ3VyZSAqLwotCWNzNDM5OF93cml0ZShjaGlwLCAyLCBDUzQzOThfRk1fU0lOR0xFIHwKLQkJICAgICBDUzQzOThfREVNX05PTkUgfCBDUzQzOThfRElGX0xKVVNUKTsKLQljczQzOThfd3JpdGUoY2hpcCwgMywgQ1M0Mzk4X0FUQVBJX0JfUiB8IENTNDM5OF9BVEFQSV9BX0wpOwotCWNzNDM5OF93cml0ZShjaGlwLCA0LCBDUzQzOThfTVVURVBfTE9XIHwgQ1M0Mzk4X1BBTVVURSk7Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDUsIDB4ZmUpOwotCWNzNDM5OF93cml0ZShjaGlwLCA2LCAweGZlKTsKLQljczQzOThfd3JpdGUoY2hpcCwgNywgQ1M0Mzk4X1JNUF9ETiB8IENTNDM5OF9STVBfVVAgfAotCQkgICAgIENTNDM5OF9aRVJPX0NST1NTIHwgQ1M0Mzk4X1NPRlRfUkFNUCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDAyLCBDUzQzNjJBX0RJRl9MSlVTVCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDAzLCBDUzQzNjJBX01VVEVDXzYgfCBDUzQzNjJBX0FNVVRFIHwKLQkJICAgICAgQ1M0MzYyQV9STVBfVVAgfCBDUzQzNjJBX1pFUk9fQ1JPU1MgfCBDUzQzNjJBX1NPRlRfUkFNUCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA0LCBDUzQzNjJBX1JNUF9ETiB8IENTNDM2MkFfREVNX05PTkUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwNSwgMCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA2LCBDUzQzNjJBX0ZNX1NJTkdMRSB8Ci0JCSAgICAgIENTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0wpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwNywgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA4LCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDksIENTNDM2MkFfRk1fU0lOR0xFIHwKLQkJICAgICAgQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDBhLCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MGIsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYywgQ1M0MzYyQV9GTV9TSU5HTEUgfAotCQkgICAgICBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MGQsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwZSwgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JLyogY2xlYXIgcG93ZXIgZG93biAqLwotCWNzNDM5OF93cml0ZShjaGlwLCA4LCBDUzQzOThfQ1BFTik7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX0NQRU4pOwotCi0Jb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fQ09OVFJPTCwKLQkJCSAgR1BJT19EWF9GUk9OVF9QQU5FTCB8IEdQSU9fRFhfSU5QVVRfUk9VVEUpOwotCW94eWdlbl9jbGVhcl9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwKLQkJCSAgICBHUElPX0RYX0ZST05UX1BBTkVMIHwgR1BJT19EWF9JTlBVVF9ST1VURSk7Ci0KLQl4b25hcl9jb21tb25faW5pdChjaGlwKTsKLQotCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJDUzQzOTgiKTsKLQlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M0MzYyQSIpOwotCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJDUzUzNjEiKTsKLX0KLQotc3RhdGljIHZvaWQgeG9uYXJfY2xlYW51cChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKLQotCW94eWdlbl9jbGVhcl9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwgZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQpOwotfQotCi1zdGF0aWMgdm9pZCB4b25hcl9keF9jbGVhbnVwKHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0JeG9uYXJfY2xlYW51cChjaGlwKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDEsIENTNDM2MkFfUEROIHwgQ1M0MzYyQV9DUEVOKTsKLQlveHlnZW5fY2xlYXJfYml0czgoY2hpcCwgT1hZR0VOX0ZVTkNUSU9OLCBPWFlHRU5fRlVOQ1RJT05fUkVTRVRfQ09ERUMpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfcGNtMTc5Nl9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKLQkJCSAgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQl1OCB2YWx1ZTsKLQotCXZhbHVlID0gcGFyYW1zX3JhdGUocGFyYW1zKSA+PSA5NjAwMCA/IFBDTTE3OTZfT1NfMzIgOiBQQ00xNzk2X09TXzY0OwotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCi0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjAsIHZhbHVlKTsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7Ci0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTYsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNywgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMiArIDFdKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHVwZGF0ZV9wY20xNzk2X211dGUoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQl1OCB2YWx1ZTsKLQotCXZhbHVlID0gUENNMTc5Nl9GTVRfMjRfTEpVU1QgfCBQQ00xNzk2X0FUTEQ7Ci0JaWYgKGNoaXAtPmRhY19tdXRlKQotCQl2YWx1ZSB8PSBQQ00xNzk2X01VVEU7Ci0JZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxOCwgdmFsdWUpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfY3M1M3gxX3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAotCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCi17Ci0JdW5zaWduZWQgaW50IHZhbHVlOwotCi0JaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gNTQwMDApCi0JCXZhbHVlID0gR1BJT19DUzUzeDFfTV9TSU5HTEU7Ci0JZWxzZSBpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSAxMDgwMDApCi0JCXZhbHVlID0gR1BJT19DUzUzeDFfTV9ET1VCTEU7Ci0JZWxzZQotCQl2YWx1ZSA9IEdQSU9fQ1M1M3gxX01fUVVBRDsKLQlveHlnZW5fd3JpdGUxNl9tYXNrZWQoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwKLQkJCSAgICAgIHZhbHVlLCBHUElPX0NTNTN4MV9NX01BU0spOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfY3M0M3h4X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAotCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCi17Ci0JdTggZm1fY3M0Mzk4LCBmbV9jczQzNjJhOwotCi0JZm1fY3M0Mzk4ID0gQ1M0Mzk4X0RFTV9OT05FIHwgQ1M0Mzk4X0RJRl9MSlVTVDsKLQlmbV9jczQzNjJhID0gQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTDsKLQlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSA1MDAwMCkgewotCQlmbV9jczQzOTggfD0gQ1M0Mzk4X0ZNX1NJTkdMRTsKLQkJZm1fY3M0MzYyYSB8PSBDUzQzNjJBX0ZNX1NJTkdMRTsKLQl9IGVsc2UgaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gMTAwMDAwKSB7Ci0JCWZtX2NzNDM5OCB8PSBDUzQzOThfRk1fRE9VQkxFOwotCQlmbV9jczQzNjJhIHw9IENTNDM2MkFfRk1fRE9VQkxFOwotCX0gZWxzZSB7Ci0JCWZtX2NzNDM5OCB8PSBDUzQzOThfRk1fUVVBRDsKLQkJZm1fY3M0MzYyYSB8PSBDUzQzNjJBX0ZNX1FVQUQ7Ci0JfQotCWNzNDM5OF93cml0ZShjaGlwLCAyLCBmbV9jczQzOTgpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwNiwgZm1fY3M0MzYyYSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA5LCBmbV9jczQzNjJhKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MGMsIGZtX2NzNDM2MmEpOwotfQotCiBzdGF0aWMgdm9pZCB1cGRhdGVfY3M0MzYyYV92b2x1bWVzKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJdTggbXV0ZTsKQEAgLTM5Myw2ICsyODYsMTQxIEBACiAJdXBkYXRlX2NzNDM2MmFfdm9sdW1lcyhjaGlwKTsKIH0KIAorc3RhdGljIHZvaWQgY3M0M3h4X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwkvKiBzZXQgQ1BFTiAoY29udHJvbCBwb3J0IG1vZGUpIGFuZCBwb3dlciBkb3duICovCisJY3M0Mzk4X3dyaXRlKGNoaXAsIDgsIENTNDM5OF9DUEVOIHwgQ1M0Mzk4X1BETik7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX1BETiB8IENTNDM2MkFfQ1BFTik7CisJLyogY29uZmlndXJlICovCisJY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIGRhdGEtPmNzNDM5OF9mbSk7CisJY3M0Mzk4X3dyaXRlKGNoaXAsIDMsIENTNDM5OF9BVEFQSV9CX1IgfCBDUzQzOThfQVRBUElfQV9MKTsKKwljczQzOThfd3JpdGUoY2hpcCwgNywgQ1M0Mzk4X1JNUF9ETiB8IENTNDM5OF9STVBfVVAgfAorCQkgICAgIENTNDM5OF9aRVJPX0NST1NTIHwgQ1M0Mzk4X1NPRlRfUkFNUCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAyLCBDUzQzNjJBX0RJRl9MSlVTVCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAzLCBDUzQzNjJBX01VVEVDXzYgfCBDUzQzNjJBX0FNVVRFIHwKKwkJICAgICAgQ1M0MzYyQV9STVBfVVAgfCBDUzQzNjJBX1pFUk9fQ1JPU1MgfCBDUzQzNjJBX1NPRlRfUkFNUCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDA0LCBDUzQzNjJBX1JNUF9ETiB8IENTNDM2MkFfREVNX05PTkUpOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwNSwgMCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDA2LCBkYXRhLT5jczQzNjJhX2ZtKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDksIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYywgZGF0YS0+Y3M0MzYyYV9mbSk7CisJdXBkYXRlX2NzNDN4eF92b2x1bWUoY2hpcCk7CisJdXBkYXRlX2NzNDN4eF9tdXRlKGNoaXApOworCS8qIGNsZWFyIHBvd2VyIGRvd24gKi8KKwljczQzOThfd3JpdGUoY2hpcCwgOCwgQ1M0Mzk4X0NQRU4pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwMSwgQ1M0MzYyQV9DUEVOKTsKK30KKworc3RhdGljIHZvaWQgeG9uYXJfZHhfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPmFudGlfcG9wX2RlbGF5ID0gODAwOworCWRhdGEtPm91dHB1dF9lbmFibGVfYml0ID0gR1BJT19EWF9PVVRQVVRfRU5BQkxFOworCWRhdGEtPmV4dF9wb3dlcl9yZWcgPSBPWFlHRU5fR1BJX0RBVEE7CisJZGF0YS0+ZXh0X3Bvd2VyX2ludF9yZWcgPSBPWFlHRU5fR1BJX0lOVEVSUlVQVF9NQVNLOworCWRhdGEtPmV4dF9wb3dlcl9iaXQgPSBHUElfRFhfRVhUX1BPV0VSOworCWRhdGEtPmNzNDM5OF9mbSA9IENTNDM5OF9GTV9TSU5HTEUgfCBDUzQzOThfREVNX05PTkUgfCBDUzQzOThfRElGX0xKVVNUOworCWRhdGEtPmNzNDM2MmFfZm0gPSBDUzQzNjJBX0ZNX1NJTkdMRSB8CisJCUNTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0w7CisKKwlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fMldJUkVfQlVTX1NUQVRVUywKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9MRU5HVEhfOCB8CisJCSAgICAgICBPWFlHRU5fMldJUkVfSU5URVJSVVBUX01BU0sgfAorCQkgICAgICAgT1hZR0VOXzJXSVJFX1NQRUVEX0ZBU1QpOworCisJY3M0M3h4X2luaXQoY2hpcCk7CisKKwlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLAorCQkJICBHUElPX0RYX0ZST05UX1BBTkVMIHwgR1BJT19EWF9JTlBVVF9ST1VURSk7CisJb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAorCQkJICAgIEdQSU9fRFhfRlJPTlRfUEFORUwgfCBHUElPX0RYX0lOUFVUX1JPVVRFKTsKKworCXhvbmFyX2NvbW1vbl9pbml0KGNoaXApOworCisJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNDM5OCIpOworCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJDUzQzNjJBIik7CisJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNTM2MSIpOworfQorCitzdGF0aWMgdm9pZCB4b25hcl9jbGVhbnVwKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2R4X2NsZWFudXAoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwl4b25hcl9jbGVhbnVwKGNoaXApOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwMSwgQ1M0MzYyQV9QRE4gfCBDUzQzNjJBX0NQRU4pOworCW94eWdlbl9jbGVhcl9iaXRzOChjaGlwLCBPWFlHRU5fRlVOQ1RJT04sIE9YWUdFTl9GVU5DVElPTl9SRVNFVF9DT0RFQyk7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2QyX3Jlc3VtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXBjbTE3OTZfaW5pdChjaGlwKTsKKwl4b25hcl9lbmFibGVfb3V0cHV0KGNoaXApOworfQorCitzdGF0aWMgdm9pZCB4b25hcl9keF9yZXN1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwljczQzeHhfaW5pdChjaGlwKTsKKwl4b25hcl9lbmFibGVfb3V0cHV0KGNoaXApOworfQorCitzdGF0aWMgdm9pZCBzZXRfcGNtMTc5Nl9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisJdW5zaWduZWQgaW50IGk7CisKKwlkYXRhLT5wY20xNzk2X292ZXJzYW1wbGluZyA9CisJCXBhcmFtc19yYXRlKHBhcmFtcykgPj0gOTYwMDAgPyBQQ00xNzk2X09TXzMyIDogUENNMTc5Nl9PU182NDsKKwlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKQorCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIwLCBkYXRhLT5wY20xNzk2X292ZXJzYW1wbGluZyk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9jczUzeDFfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwl1bnNpZ25lZCBpbnQgdmFsdWU7CisKKwlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSA1NDAwMCkKKwkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX1NJTkdMRTsKKwllbHNlIGlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDEwODAwMCkKKwkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX0RPVUJMRTsKKwllbHNlCisJCXZhbHVlID0gR1BJT19DUzUzeDFfTV9RVUFEOworCW94eWdlbl93cml0ZTE2X21hc2tlZChjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAorCQkJICAgICAgdmFsdWUsIEdQSU9fQ1M1M3gxX01fTUFTSyk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9jczQzeHhfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlkYXRhLT5jczQzOThfZm0gPSBDUzQzOThfREVNX05PTkUgfCBDUzQzOThfRElGX0xKVVNUOworCWRhdGEtPmNzNDM2MmFfZm0gPSBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MOworCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDUwMDAwKSB7CisJCWRhdGEtPmNzNDM5OF9mbSB8PSBDUzQzOThfRk1fU0lOR0xFOworCQlkYXRhLT5jczQzNjJhX2ZtIHw9IENTNDM2MkFfRk1fU0lOR0xFOworCX0gZWxzZSBpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSAxMDAwMDApIHsKKwkJZGF0YS0+Y3M0Mzk4X2ZtIHw9IENTNDM5OF9GTV9ET1VCTEU7CisJCWRhdGEtPmNzNDM2MmFfZm0gfD0gQ1M0MzYyQV9GTV9ET1VCTEU7CisJfSBlbHNlIHsKKwkJZGF0YS0+Y3M0Mzk4X2ZtIHw9IENTNDM5OF9GTV9RVUFEOworCQlkYXRhLT5jczQzNjJhX2ZtIHw9IENTNDM2MkFfRk1fUVVBRDsKKwl9CisJY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIGRhdGEtPmNzNDM5OF9mbSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDA2LCBkYXRhLT5jczQzNjJhX2ZtKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDksIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYywgZGF0YS0+Y3M0MzYyYV9mbSk7Cit9CisKIHN0YXRpYyB2b2lkIHhvbmFyX2dwaW9fY2hhbmdlZChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKQEAgLTUzNSw2ICs1NjMsOCBAQAogCQkuY29udHJvbF9maWx0ZXIgPSB4b25hcl9kMl9jb250cm9sX2ZpbHRlciwKIAkJLm1peGVyX2luaXQgPSB4b25hcl9taXhlcl9pbml0LAogCQkuY2xlYW51cCA9IHhvbmFyX2NsZWFudXAsCisJCS5zdXNwZW5kID0geG9uYXJfY2xlYW51cCwKKwkJLnJlc3VtZSA9IHhvbmFyX2QyX3Jlc3VtZSwKIAkJLnNldF9kYWNfcGFyYW1zID0gc2V0X3BjbTE3OTZfcGFyYW1zLAogCQkuc2V0X2FkY19wYXJhbXMgPSBzZXRfY3M1M3gxX3BhcmFtcywKIAkJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX3BjbTE3OTZfdm9sdW1lLApAQCAtNTYzLDYgKzU5Myw4IEBACiAJCS5jb250cm9sX2ZpbHRlciA9IHhvbmFyX2QyX2NvbnRyb2xfZmlsdGVyLAogCQkubWl4ZXJfaW5pdCA9IHhvbmFyX21peGVyX2luaXQsCiAJCS5jbGVhbnVwID0geG9uYXJfY2xlYW51cCwKKwkJLnN1c3BlbmQgPSB4b25hcl9jbGVhbnVwLAorCQkucmVzdW1lID0geG9uYXJfZDJfcmVzdW1lLAogCQkuc2V0X2RhY19wYXJhbXMgPSBzZXRfcGNtMTc5Nl9wYXJhbXMsCiAJCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9jczUzeDFfcGFyYW1zLAogCQkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfcGNtMTc5Nl92b2x1bWUsCkBAIC01OTIsNiArNjI0LDggQEAKIAkJLmNvbnRyb2xfZmlsdGVyID0geG9uYXJfZHhfY29udHJvbF9maWx0ZXIsCiAJCS5taXhlcl9pbml0ID0geG9uYXJfZHhfbWl4ZXJfaW5pdCwKIAkJLmNsZWFudXAgPSB4b25hcl9keF9jbGVhbnVwLAorCQkuc3VzcGVuZCA9IHhvbmFyX2R4X2NsZWFudXAsCisJCS5yZXN1bWUgPSB4b25hcl9keF9yZXN1bWUsCiAJCS5zZXRfZGFjX3BhcmFtcyA9IHNldF9jczQzeHhfcGFyYW1zLAogCQkuc2V0X2FkY19wYXJhbXMgPSBzZXRfY3M1M3gxX3BhcmFtcywKIAkJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX2NzNDN4eF92b2x1bWUsCkBAIC02MzYsNiArNjcwLDEwIEBACiAJLmlkX3RhYmxlID0geG9uYXJfaWRzLAogCS5wcm9iZSA9IHhvbmFyX3Byb2JlLAogCS5yZW1vdmUgPSBfX2RldmV4aXRfcChveHlnZW5fcGNpX3JlbW92ZSksCisjaWZkZWYgQ09ORklHX1BNCisJLnN1c3BlbmQgPSBveHlnZW5fcGNpX3N1c3BlbmQsCisJLnJlc3VtZSA9IG94eWdlbl9wY2lfcmVzdW1lLAorI2VuZGlmCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfeG9uYXJfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3BjeGhyL3BjeGhyLmMgYi9zb3VuZC9wY2kvcGN4aHIvcGN4aHIuYwppbmRleCA3ZmRjZGM4Li4yYzdlMjUzIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHIuYworKysgYi9zb3VuZC9wY2kvcGN4aHIvcGN4aHIuYwpAQCAtNTE2LDcgKzUxNiw3IEBACiAJaW50IGNhcHR1cmVfbWFzayA9IDA7CiAJaW50IHBsYXliYWNrX21hc2sgPSAwOwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlzdHJ1Y3QgdGltZXZhbCBteV90djEsIG15X3R2MjsKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2MSk7CiAjZW5kaWYKQEAgLTYyMyw3ICs2MjMsNyBAQAogCiAJbXV0ZXhfdW5sb2NrKCZtZ3ItPnNldHVwX211dGV4KTsKIAotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJZG9fZ2V0dGltZW9mZGF5KCZteV90djIpOwogCXNuZF9wcmludGRkKCIqKipUUklHR0VSIFRBU0tMRVQqKiogVElNRSA9ICVsZCAoZXJyID0gJXgpXG4iLAogCQkgICAgKGxvbmcpKG15X3R2Mi50dl91c2VjIC0gbXlfdHYxLnR2X3VzZWMpLCBlcnIpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3BjeGhyL3BjeGhyX2NvcmUuYyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9jb3JlLmMKaW5kZXggNzhhYTgxZi4uMDAwZTZmZSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL3BjeGhyL3BjeGhyX2NvcmUuYworKysgYi9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfY29yZS5jCkBAIC0yNjksNyArMjY5LDcgQEAKIAl1bnNpZ25lZCBpbnQgY2hpcHNjOwogCXVuc2lnbmVkIGNoYXIgZGF0YTsKIAl1bnNpZ25lZCBjaGFyIG1hc2s7Ci0JdW5zaWduZWQgY2hhciAqaW1hZ2U7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW1hZ2U7CiAKIAkvKiB0ZXN0IGZpcnN0IHhpbGlueCAqLwogCWNoaXBzYyA9IFBDWEhSX0lOUEwobWdyLCBQQ1hIUl9QTFhfQ0hJUFNDKTsKQEAgLTMxNiw3ICszMTYsNyBAQAogCWludCBlcnI7CiAJdW5zaWduZWQgaW50IGk7CiAJdW5zaWduZWQgaW50IGxlbjsKLQl1bnNpZ25lZCBjaGFyICpkYXRhOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGE7CiAJdW5zaWduZWQgY2hhciBkdW1teTsKIAkvKiBjaGVjayB0aGUgbGVuZ3RoIG9mIGJvb3QgaW1hZ2UgKi8KIAlzbmRfYXNzZXJ0KGRzcC0+c2l6ZSA+IDAsIHJldHVybiAtRUlOVkFMKTsKQEAgLTQ3Myw3ICs0NzMsNyBAQAogW0NNRF9BVURJT19MRVZFTF9BREpVU1RdID0JCXsgMHhjMjIwMDAsIDAsIFJNSF9TU0laRV9GSVhFRCB9LAogfTsKIAotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiBzdGF0aWMgY2hhciogY21kX25hbWVzW10gPSB7CiBbQ01EX1ZFUlNJT05dID0JCQkJIkNNRF9WRVJTSU9OIiwKIFtDTURfU1VQUE9SVEVEXSA9CQkJIkNNRF9TVVBQT1JURUQiLApAQCAtNTQ5LDcgKzU0OSw3IEBACiAJCQkJfQogCQkJfQogCQl9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAkJaWYgKHJtaC0+Y21kX2lkeCA8IENNRF9MQVNUX0lOREVYKQogCQkJc25kX3ByaW50ZGQoIiAgICBzdGF0WyVkXT0leFxuIiwgaSwgZGF0YSk7CiAjZW5kaWYKQEAgLTU5Nyw3ICs1OTcsNyBAQAogCQlkYXRhIHw9IDB4MDA4MDAwOwkvKiBNQVNLX01PUkVfVEhBTl8xX1dPUkRfQ09NTUFORCAqLwogCWVsc2UKIAkJZGF0YSAmPSAweGZmN2ZmZjsJLyogTUFTS18xX1dPUkRfQ09NTUFORCAqLwotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJaWYgKHJtaC0+Y21kX2lkeCA8IENNRF9MQVNUX0lOREVYKQogCQlzbmRfcHJpbnRkZCgiTVNHIGNtZFswXT0leCAoJXMpXG4iLCBkYXRhLCBjbWRfbmFtZXNbcm1oLT5jbWRfaWR4XSk7CiAjZW5kaWYKQEAgLTYyNCw3ICs2MjQsNyBAQAogCQlmb3IgKGk9MTsgaSA8IHJtaC0+Y21kX2xlbjsgaSsrKSB7CiAJCQkvKiBzZW5kIG90aGVyIHdvcmRzICovCiAJCQlkYXRhID0gcm1oLT5jbWRbaV07Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAkJCWlmIChybWgtPmNtZF9pZHggPCBDTURfTEFTVF9JTkRFWCkKIAkJCQlzbmRfcHJpbnRkZCgiICAgIGNtZFslZF09JXhcbiIsIGksIGRhdGEpOwogI2VuZGlmCkBAIC04NDcsNyArODQ3LDcgQEAKIAlpbnQgc3RhdGUsIGksIGVycjsKIAlpbnQgYXVkaW9fbWFzazsKIAotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJc3RydWN0IHRpbWV2YWwgbXlfdHYxLCBteV90djI7CiAJZG9fZ2V0dGltZW9mZGF5KCZteV90djEpOwogI2VuZGlmCkBAIC04OTQsNyArODk0LDcgQEAKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJZG9fZ2V0dGltZW9mZGF5KCZteV90djIpOwogCXNuZF9wcmludGRkKCIqKipTRVQgUElQRSBTVEFURSoqKiBUSU1FID0gJWxkIChlcnIgPSAleClcbiIsCiAJCSAgICAobG9uZykobXlfdHYyLnR2X3VzZWMgLSBteV90djEudHZfdXNlYyksIGVycik7CkBAIC05NTEsNyArOTUxLDcgQEAKIAkJCQkgIGVudW0gcGN4aHJfYXN5bmNfZXJyX3NyYyBlcnJfc3JjLCBpbnQgcGlwZSwKIAkJCQkgIGludCBpc19jYXB0dXJlKQogewotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJc3RhdGljIGNoYXIqIGVycl9zcmNfbmFtZVtdID0gewogCQlbUENYSFJfRVJSX1BJUEVdCT0gIlBpcGUiLAogCQlbUENYSFJfRVJSX1NUUkVBTV0JPSAiU3RyZWFtIiwKQEAgLTExNjksNyArMTE2OSw3IEBACiAJCQkJICAgIG1nci0+ZHNwX3RpbWVfbGFzdCwgZHNwX3RpbWVfbmV3KTsKIAkJCW1nci0+ZHNwX3RpbWVfZXJyKys7CiAJCX0KLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQlpZiAoZHNwX3RpbWVfZGlmZiA9PSAwKQogCQkJc25kX3ByaW50ZGQoIkVSUk9SIERTUCBUSU1FIE5PIERJRkYgdGltZSglZClcbiIsIGRzcF90aW1lX25ldyk7CiAJCWVsc2UgaWYgKGRzcF90aW1lX2RpZmYgPj0gKDIqUENYSFJfR1JBTlVMQVJJVFkpKQpAQCAtMTIwOCw3ICsxMjA4LDcgQEAKIAkJbWdyLT5zcmNfaXRfZHNwID0gcmVnOwogCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZtZ3ItPm1zZ190YXNrcSk7CiAJfQotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJaWYgKHJlZyAmIFBDWEhSX0ZBVEFMX0RTUF9FUlIpCiAJCXNuZF9wcmludGRkKCJGQVRBTCBEU1AgRVJST1IgOiAleFxuIiwgcmVnKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3BjeGhyL3BjeGhyX2h3ZGVwLmMgYi9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfaHdkZXAuYwppbmRleCBlNmE0YmZiLi5kMmYwNDMyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfaHdkZXAuYworKysgYi9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfaHdkZXAuYwpAQCAtMzk0LDcgKzM5NCw3IEBACiAJCQkgICAodW5zaWduZWQgbG9uZylmdy5zaXplKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWlmIChjb3B5X2Zyb21fdXNlcihmdy5kYXRhLCBkc3AtPmltYWdlLCBkc3AtPmxlbmd0aCkpIHsKKwlpZiAoY29weV9mcm9tX3VzZXIoKHZvaWQgKilmdy5kYXRhLCBkc3AtPmltYWdlLCBkc3AtPmxlbmd0aCkpIHsKIAkJdmZyZWUoZncuZGF0YSk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9yaXB0aWRlL3JpcHRpZGUuYyBiL3NvdW5kL3BjaS9yaXB0aWRlL3JpcHRpZGUuYwppbmRleCA5NzlmN2RhLi42YTM1OTYyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcmlwdGlkZS9yaXB0aWRlLmMKKysrIGIvc291bmQvcGNpL3JpcHRpZGUvcmlwdGlkZS5jCkBAIC02ODIsNyArNjgyLDcgQEAKIAl9LAogfTsKIAotc3RhdGljIHUzMiBhdG9oKHVuc2lnbmVkIGNoYXIgKmluLCB1bnNpZ25lZCBpbnQgbGVuKQorc3RhdGljIHUzMiBhdG9oKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCB1bnNpZ25lZCBpbnQgbGVuKQogewogCXUzMiBzdW0gPSAwOwogCXVuc2lnbmVkIGludCBtdWx0ID0gMTsKQEAgLTcwMiwxMiArNzAyLDEyIEBACiAJcmV0dXJuIHN1bTsKIH0KIAotc3RhdGljIGludCBzZW5kZGF0YShzdHJ1Y3QgY21kaWYgKmNpZiwgdW5zaWduZWQgY2hhciAqaW4sIHUzMiBvZmZzZXQpCitzdGF0aWMgaW50IHNlbmRkYXRhKHN0cnVjdCBjbWRpZiAqY2lmLCBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgdTMyIG9mZnNldCkKIHsKIAl1MzIgYWRkcjsKIAl1MzIgZGF0YTsKIAl1MzIgaTsKLQl1bnNpZ25lZCBjaGFyICpwOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CiAKIAlpID0gYXRvaCgmaW5bMV0sIDIpOwogCWFkZHIgPSBvZmZzZXQgKyBhdG9oKCZpblszXSwgNCk7CkBAIC03MjYsMTAgKzcyNiwxMCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGxvYWRmaXJtd2FyZShzdHJ1Y3QgY21kaWYgKmNpZiwgdW5zaWduZWQgY2hhciAqaW1nLAorc3RhdGljIGludCBsb2FkZmlybXdhcmUoc3RydWN0IGNtZGlmICpjaWYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmltZywKIAkJCXVuc2lnbmVkIGludCBzaXplKQogewotCXVuc2lnbmVkIGNoYXIgKmluOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmluOwogCXUzMiBsYWRkciwgc2FkZHIsIHQsIHZhbDsKIAlpbnQgZXJyID0gMDsKIApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3RyaWRlbnQvdHJpZGVudF9tYWluLmMgYi9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21haW4uYwppbmRleCBiYmNlZTJjLi5hNjliNDIwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21haW4uYworKysgYi9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21haW4uYwpAQCAtMTU5MCw3ICsxNTkwLDEwIEBACiAJaWYgKHNwZGlmX2ZsYWcpIHsKIAkJaWYgKHRyaWRlbnQtPmRldmljZSAhPSBUUklERU5UX0RFVklDRV9JRF9TSTcwMTgpIHsKIAkJCW91dGwodHJpZGVudC0+c3BkaWZfcGNtX2JpdHMsIFRSSURfUkVHKHRyaWRlbnQsIE5YX1NQQ1NUQVRVUykpOwotCQkJb3V0Yih0cmlkZW50LT5zcGRpZl9wY21fY3RybCwgVFJJRF9SRUcodHJpZGVudCwgTlhfU1BDVFJMX1NQQ1NPICsgMykpOworCQkJdmFsID0gdHJpZGVudC0+c3BkaWZfcGNtX2N0cmw7CisJCQlpZiAoIWdvKQorCQkJCXZhbCAmPSB+KDB4MjgpOworCQkJb3V0Yih2YWwsIFRSSURfUkVHKHRyaWRlbnQsIE5YX1NQQ1RSTF9TUENTTyArIDMpKTsKIAkJfSBlbHNlIHsKIAkJCW91dGwodHJpZGVudC0+c3BkaWZfcGNtX2JpdHMsIFRSSURfUkVHKHRyaWRlbnQsIFNJX1NQRElGX0NTKSk7CiAJCQl2YWwgPSBpbmwoVFJJRF9SRUcodHJpZGVudCwgU0lfU0VSSUFMX0lOVEZfQ1RSTCkpIHwgU1BESUZfRU47CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21lbW9yeS5jIGIvc291bmQvcGNpL3RyaWRlbnQvdHJpZGVudF9tZW1vcnkuYwppbmRleCBkZjliNDg3Li4zZmQ3ZjFiIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21lbW9yeS5jCisrKyBiL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWVtb3J5LmMKQEAgLTMxMCwxODEgKzMxMCwzIEBACiAJbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKIAlyZXR1cm4gMDsKIH0KLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIG1lbW9yeSBhbGxvY2F0aW9uIHVzaW5nIG11bHRpcGxlIHBhZ2VzIChmb3Igc3ludGgpCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIFVubGlrZSB0aGUgRE1BIGFsbG9jYXRpb24gYWJvdmUsIG5vbi1jb250aWd1b3VzIHBhZ2VzIGFyZQotICogYXNzaWduZWQgdG8gVExCLgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyoKLSAqLwotc3RhdGljIGludCBzeW50aF9hbGxvY19wYWdlcyhzdHJ1Y3Qgc25kX3RyaWRlbnQgKmh3LCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGspOwotc3RhdGljIGludCBzeW50aF9mcmVlX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsayk7Ci0KLS8qCi0gKiBhbGxvY2F0ZSBhIHN5bnRoIHNhbXBsZSBhcmVhCi0gKi8KLXN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKgotc25kX3RyaWRlbnRfc3ludGhfYWxsb2Moc3RydWN0IHNuZF90cmlkZW50ICpodywgdW5zaWduZWQgaW50IHNpemUpCi17Ci0Jc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrOwotCXN0cnVjdCBzbmRfdXRpbF9tZW1oZHIgKmhkciA9IGh3LT50bGIubWVtaGRyOyAKLQotCW11dGV4X2xvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwotCWJsayA9IF9fc25kX3V0aWxfbWVtX2FsbG9jKGhkciwgc2l6ZSk7Ci0JaWYgKGJsayA9PSBOVUxMKSB7Ci0JCW11dGV4X3VubG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQlpZiAoc3ludGhfYWxsb2NfcGFnZXMoaHcsIGJsaykpIHsKLQkJX19zbmRfdXRpbF9tZW1fZnJlZShoZHIsIGJsayk7Ci0JCW11dGV4X3VubG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQltdXRleF91bmxvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwotCXJldHVybiBibGs7Ci19Ci0KLUVYUE9SVF9TWU1CT0woc25kX3RyaWRlbnRfc3ludGhfYWxsb2MpOwotCi0vKgotICogZnJlZSBhIHN5bnRoIHNhbXBsZSBhcmVhCi0gKi8KLWludAotc25kX3RyaWRlbnRfc3ludGhfZnJlZShzdHJ1Y3Qgc25kX3RyaWRlbnQgKmh3LCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGspCi17Ci0Jc3RydWN0IHNuZF91dGlsX21lbWhkciAqaGRyID0gaHctPnRsYi5tZW1oZHI7IAotCi0JbXV0ZXhfbG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0Jc3ludGhfZnJlZV9wYWdlcyhodywgYmxrKTsKLQkgX19zbmRfdXRpbF9tZW1fZnJlZShoZHIsIGJsayk7Ci0JbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQlyZXR1cm4gMDsKLX0KLQotRVhQT1JUX1NZTUJPTChzbmRfdHJpZGVudF9zeW50aF9mcmVlKTsKLQotLyoKLSAqIHJlc2V0IFRMQiBlbnRyeSBhbmQgZnJlZSBrZXJuZWwgcGFnZQotICovCi1zdGF0aWMgdm9pZCBjbGVhcl90bGIoc3RydWN0IHNuZF90cmlkZW50ICp0cmlkZW50LCBpbnQgcGFnZSkKLXsKLQl2b2lkICpwdHIgPSBwYWdlX3RvX3B0cih0cmlkZW50LCBwYWdlKTsKLQlkbWFfYWRkcl90IGFkZHIgPSBwYWdlX3RvX2FkZHIodHJpZGVudCwgcGFnZSk7Ci0Jc2V0X3NpbGVudF90bGIodHJpZGVudCwgcGFnZSk7Ci0JaWYgKHB0cikgewotCQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKLQkJZG1hYi5kZXYudHlwZSA9IFNORFJWX0RNQV9UWVBFX0RFVjsKLQkJZG1hYi5kZXYuZGV2ID0gc25kX2RtYV9wY2lfZGF0YSh0cmlkZW50LT5wY2kpOwotCQlkbWFiLmFyZWEgPSBwdHI7Ci0JCWRtYWIuYWRkciA9IGFkZHI7Ci0JCWRtYWIuYnl0ZXMgPSBBTElHTl9QQUdFX1NJWkU7Ci0JCXNuZF9kbWFfZnJlZV9wYWdlcygmZG1hYik7Ci0JfQotfQotCi0vKiBjaGVjayBuZXcgYWxsb2NhdGlvbiByYW5nZSAqLwotc3RhdGljIHZvaWQgZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKHN0cnVjdCBzbmRfdXRpbF9tZW1oZHIgKmhkciwKLQkJCQkgIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaywKLQkJCQkgIGludCAqZmlyc3RfcGFnZV9yZXQsIGludCAqbGFzdF9wYWdlX3JldCkKLXsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpwOwotCXN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKnE7Ci0JaW50IGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlmaXJzdF9wYWdlID0gZmlyc3RwZyhibGspOwotCWlmICgocCA9IGJsay0+bGlzdC5wcmV2KSAhPSAmaGRyLT5ibG9jaykgewotCQlxID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrLCBsaXN0KTsKLQkJaWYgKGxhc3RwZyhxKSA9PSBmaXJzdF9wYWdlKQotCQkJZmlyc3RfcGFnZSsrOyAgLyogZmlyc3QgcGFnZSB3YXMgYWxyZWFkeSBhbGxvY2F0ZWQgKi8KLQl9Ci0JbGFzdF9wYWdlID0gbGFzdHBnKGJsayk7Ci0JaWYgKChwID0gYmxrLT5saXN0Lm5leHQpICE9ICZoZHItPmJsb2NrKSB7Ci0JCXEgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGssIGxpc3QpOwotCQlpZiAoZmlyc3RwZyhxKSA9PSBsYXN0X3BhZ2UpCi0JCQlsYXN0X3BhZ2UtLTsgLyogbGFzdCBwYWdlIHdhcyBhbHJlYWR5IGFsbG9jYXRlZCAqLwotCX0KLQkqZmlyc3RfcGFnZV9yZXQgPSBmaXJzdF9wYWdlOwotCSpsYXN0X3BhZ2VfcmV0ID0gbGFzdF9wYWdlOwotfQotCi0vKgotICogYWxsb2NhdGUga2VybmVsIHBhZ2VzIGFuZCBhc3NpZ24gdGhlbSB0byBUTEIKLSAqLwotc3RhdGljIGludCBzeW50aF9hbGxvY19wYWdlcyhzdHJ1Y3Qgc25kX3RyaWRlbnQgKmh3LCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGspCi17Ci0JaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKLQotCWZpcnN0cGcoYmxrKSA9IGdldF9hbGlnbmVkX3BhZ2UoYmxrLT5vZmZzZXQpOwotCWxhc3RwZyhibGspID0gZ2V0X2FsaWduZWRfcGFnZShibGstPm9mZnNldCArIGJsay0+c2l6ZSAtIDEpOwotCWdldF9zaW5nbGVfcGFnZV9yYW5nZShody0+dGxiLm1lbWhkciwgYmxrLCAmZmlyc3RfcGFnZSwgJmxhc3RfcGFnZSk7Ci0KLQkvKiBhbGxvY2F0ZSBhIGtlcm5lbCBwYWdlIGZvciBlYWNoIFRyaWRlbnQgcGFnZSAtCi0JICogZm9ydHVuYXRlbHkgVHJpZGVudCBwYWdlIHNpemUgYW5kIGtlcm5lbCBQQUdFX1NJWkUgaXMgaWRlbnRpY2FsIQotCSAqLwotCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKLQkJaWYgKHNuZF9kbWFfYWxsb2NfcGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKGh3LT5wY2kpLAotCQkJCQlBTElHTl9QQUdFX1NJWkUsICZkbWFiKSA8IDApCi0JCQlnb3RvIF9fZmFpbDsKLQkJaWYgKCEgaXNfdmFsaWRfcGFnZShkbWFiLmFkZHIpKSB7Ci0JCQlzbmRfZG1hX2ZyZWVfcGFnZXMoJmRtYWIpOwotCQkJZ290byBfX2ZhaWw7Ci0JCX0KLQkJc2V0X3RsYl9idXMoaHcsIHBhZ2UsICh1bnNpZ25lZCBsb25nKWRtYWIuYXJlYSwgZG1hYi5hZGRyKTsKLQl9Ci0JcmV0dXJuIDA7Ci0KLV9fZmFpbDoKLQkvKiByZWxlYXNlIGFsbG9jYXRlZCBwYWdlcyAqLwotCWxhc3RfcGFnZSA9IHBhZ2UgLSAxOwotCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspCi0JCWNsZWFyX3RsYihodywgcGFnZSk7Ci0KLQlyZXR1cm4gLUVOT01FTTsKLX0KLQotLyoKLSAqIGZyZWUgcGFnZXMKLSAqLwotc3RhdGljIGludCBzeW50aF9mcmVlX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqdHJpZGVudCwgc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrKQotewotCWludCBwYWdlLCBmaXJzdF9wYWdlLCBsYXN0X3BhZ2U7Ci0KLQlnZXRfc2luZ2xlX3BhZ2VfcmFuZ2UodHJpZGVudC0+dGxiLm1lbWhkciwgYmxrLCAmZmlyc3RfcGFnZSwgJmxhc3RfcGFnZSk7Ci0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykKLQkJY2xlYXJfdGxiKHRyaWRlbnQsIHBhZ2UpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBjb3B5X2Zyb21fdXNlcihibGsgKyBvZmZzZXQsIGRhdGEsIHNpemUpCi0gKi8KLWludCBzbmRfdHJpZGVudF9zeW50aF9jb3B5X2Zyb21fdXNlcihzdHJ1Y3Qgc25kX3RyaWRlbnQgKnRyaWRlbnQsCi0JCQkJICAgICBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGssCi0JCQkJICAgICBpbnQgb2Zmc2V0LCBjb25zdCBjaGFyIF9fdXNlciAqZGF0YSwgaW50IHNpemUpCi17Ci0JaW50IHBhZ2UsIG5leHRvZnMsIGVuZF9vZmZzZXQsIHRlbXAsIHRlbXAxOwotCi0Jb2Zmc2V0ICs9IGJsay0+b2Zmc2V0OwotCWVuZF9vZmZzZXQgPSBvZmZzZXQgKyBzaXplOwotCXBhZ2UgPSBnZXRfYWxpZ25lZF9wYWdlKG9mZnNldCkgKyAxOwotCWRvIHsKLQkJbmV4dG9mcyA9IGFsaWduZWRfcGFnZV9vZmZzZXQocGFnZSk7Ci0JCXRlbXAgPSBuZXh0b2ZzIC0gb2Zmc2V0OwotCQl0ZW1wMSA9IGVuZF9vZmZzZXQgLSBvZmZzZXQ7Ci0JCWlmICh0ZW1wMSA8IHRlbXApCi0JCQl0ZW1wID0gdGVtcDE7Ci0JCWlmIChjb3B5X2Zyb21fdXNlcihvZmZzZXRfcHRyKHRyaWRlbnQsIG9mZnNldCksIGRhdGEsIHRlbXApKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCW9mZnNldCA9IG5leHRvZnM7Ci0JCWRhdGEgKz0gdGVtcDsKLQkJcGFnZSsrOwotCX0gd2hpbGUgKG9mZnNldCA8IGVuZF9vZmZzZXQpOwotCXJldHVybiAwOwotfQotCi1FWFBPUlRfU1lNQk9MKHNuZF90cmlkZW50X3N5bnRoX2NvcHlfZnJvbV91c2VyKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS92aWE4Mnh4LmMgYi9zb3VuZC9wY2kvdmlhODJ4eC5jCmluZGV4IGI1ODVjYzMuLjY3ODFiZTkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS92aWE4Mnh4LmMKKysrIGIvc291bmQvcGNpL3ZpYTgyeHguYwpAQCAtMTc1Nyw2ICsxNzU3LDEyIEBACiAJCS50eXBlID0gQUM5N19UVU5FX0hQX09OTFkKIAl9LAogCXsKKwkJLnN1YnZlbmRvciA9IDB4MTAxOSwKKwkJLnN1YmRldmljZSA9IDB4MTg0MSwKKwkJLm5hbWUgPSAiRUNTIEs3VlRBMyIsCisJCS50eXBlID0gQUM5N19UVU5FX0hQX09OTFkKKwl9LAorCXsKIAkJLnN1YnZlbmRvciA9IDB4MTg0OSwKIAkJLnN1YmRldmljZSA9IDB4MzA1OSwKIAkJLm5hbWUgPSAiQVNSb2NrIEs3Vk0yIiwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS92eDIyMi92eDIyMl9vcHMuYyBiL3NvdW5kL3BjaS92eDIyMi92eDIyMl9vcHMuYwppbmRleCBiNGJmYzFhLi42MzFmM2E2IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvdngyMjIvdngyMjJfb3BzLmMKKysrIGIvc291bmQvcGNpL3Z4MjIyL3Z4MjIyX29wcy5jCkBAIC0zNTksNyArMzU5LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1bnNpZ25lZCBpbnQgcG9ydDsKLQl1bnNpZ25lZCBjaGFyICppbWFnZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZTsKIAogCS8qIFhJTElOWCByZXNldCAod2FpdCBhdCBsZWFzdCAxIG1pbGlzZWNvbmQgYmV0d2VlbiByZXNldCBvbiBhbmQgb2ZmKS4gKi8KIAl2eF9vdXRsKGNoaXAsIENOVFJMLCBWWF9DTlRSTF9SRUdJU1RFUl9WQUxVRSB8IFZYX1hJTElOWF9SRVNFVF9NQVNLKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX2ltYWdlLmggYi9zb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9pbWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTJmMmZmLi4wMDAwMDAwCi0tLSBhL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX2ltYWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTY1ICswLDAgQEAKLSNpZm5kZWYgX0hXTUNPREVfCi0jZGVmaW5lIF9IV01DT0RFXwotCi1zdGF0aWMgdTMyIERzcEluc3RbWURTWEdfRFNQTEVOR1RIIC8gNF0gPSB7Ci0JMHgwMDAwMDA4MSwgMHgwMDAwMDFhNCwgMHgwMDAwMDAwYSwgMHgwMDAwMDAyZiwKLQkweDAwMDgwMjUzLCAweDAxODAwMzE3LCAweDAwMDA0MDdiLCAweDAwMDA4NDNmLAotCTB4MDAwMTQ4M2MsIDB4MDAwMTk0M2MsIDB4MDAwNWQ4M2MsIDB4MDAwMDFjM2MsCi0JMHgwMDAwYzA3YiwgMHgwMDA1MGMzZiwgMHgwMTIxNTAzYywgMHgwMDAwMDAwMCwKLQkweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCi0JMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKLQkweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwCi19OwotCi1zdGF0aWMgdTMyIENudHJsSW5zdFtZRFNYR19DVFJMTEVOR1RIIC8gNF0gPSB7Ci0JMHgwMDAwMDcsIDB4MjQwMDA3LCAweDBDMDAwNywgMHgxQzAwMDcsCi0JMHgwNjAwMDcsIDB4NzAwMDAyLCAweDAwMDAyMCwgMHgwMzAwNDAsCi0JMHgwMDcxMDQsIDB4MDA0Mjg2LCAweDAzMDA0MCwgMHgwMDBGMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMDI4MiwgMHgwMDAyMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMTI4MiwgMHgyMDBFODIsCi0JMHgwMDFBODIsIDB4MDMyRDBELCAweDAwMDgxMCwgMHgxMDA0M0EsCi0JMHgwMkQzOEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwMDAxMEQsCi0JMHgwMjAwMTUsIDB4MDAwMEZELCAweDAwMDAyMCwgMHgwMzg4NjAsCi0JMHgwMzkwNjAsIDB4MDM4MDYwLCAweDAzODA0MCwgMHgwMzgwNDAsCi0JMHgwMzgwNDAsIDB4MDE4MDQwLCAweDAwMEE3RCwgMHgwMzgwNDAsCi0JMHgwMzgwNDAsIDB4MDE4MDQwLCAweDIwMDQwMiwgMHgwMDA4ODIsCi0JMHgwODAwMUEsIDB4MDAwOTA0LCAweDAxNTk4NiwgMHgwMDAwMDcsCi0JMHgyNjAwMDcsIDB4MDAwMDA3LCAweDAwMDAwNywgMHgwMThBMDYsCi0JMHgwMDAwMDcsIDB4MDMwQzhELCAweDAwMDgxMCwgMHgxODA0M0EsCi0JMHgyNjAwMDcsIDB4MDAwODdELCAweDAxODA0MiwgMHgwMDE2MEEsCi0JMHgwNEEyMDYsIDB4MDAwMDA3LCAweDAwMjE4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MjFDMjA2LCAweDAwMDAwNywgMHgwMDA3RkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgwMjkzODYsCi0JMHgwMDAxOTUsIDB4MDkwRDA0LCAweDAwMDAwNywgMHgwMDA4MjAsCi0JMHgwMDAwRjUsIDB4MDAwQjdELCAweDAxRjA2MCwgMHgwMDAwRkQsCi0JMHgwMzIyMDYsIDB4MDE4MDQwLCAweDAwMEE3RCwgMHgwMzgwNDIsCi0JMHgxMzgwNEEsIDB4MTgwMDBBLCAweDAwMTgyMCwgMHgwNTkwNjAsCi0JMHgwNTg4NjAsIDB4MDE4MDQwLCAweDAwMDBGRCwgMHgwMTgwNDIsCi0JMHg3MDAwMEEsIDB4MDAwMTE1LCAweDA3MTE0NCwgMHgwMzIzODYsCi0JMHgwMzAwMDAsIDB4MDA3MDIwLCAweDAzNEEwNiwgMHgwMTgwNDAsCi0JMHgwMDM0OEQsIDB4MDAwODEwLCAweDA4MDQzQSwgMHgyMUVBMDYsCi0JMHgwMDAwMDcsIDB4MDJEMzhELCAweDAwMDgxMCwgMHgxODA0M0EsCi0JMHgwMTgyMDYsIDB4MDAwMDA3LCAweDI0MDAwNywgMHgwMDBGOEQsCi0JMHgwMDA4MTAsIDB4MDAxNjNBLCAweDAwMjQwMiwgMHgwMDVDMDIsCi0JMHgwMDI4RkQsIDB4MDAwMDIwLCAweDAxODA0MCwgMHgwODAwMEQsCi0JMHgwMDA4MTUsIDB4NTEwOTg0LCAweDAwMDAwNywgMHgwMDAwNEQsCi0JMHgwMDBFNUQsIDB4MDAwRTAyLCAweDAwNDE4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkM4QTA2LCAweDAwMDAwNywgMHgwMDAwOEQsCi0JMHgwMDA5MjQsIDB4MDAwRjAyLCAweDAwNDU4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkM4QTA2LCAweDAwMDAwNywgMHgwMDM4N0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMTAxNSwgMHgwMTA5ODQsCi0JMHgwMTgzODYsIDB4MDAwMDA3LCAweDAxQUEwNiwgMHgwMDAwMDcsCi0JMHgwMDA4RkQsIDB4MDE4MDQyLCAweDE4MDAwQSwgMHgwMDE5MDQsCi0JMHgyMTgwODYsIDB4MjgwMDA3LCAweDAwMTgxMCwgMHgyODA0M0EsCi0JMHgyODBDMDIsIDB4MDAwMDBELCAweDAwMDgxMCwgMHgyODE0M0EsCi0JMHgwODgwOEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAwMjBELCAweDE4OTkwNCwgMHgwMDAwMDcsCi0JMHgwMDQwMkQsIDB4MDAwMEJELCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA1NUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDAwQTIwLCAweDAwMDQ3RCwgMHgwMTgwNDAsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAwMzAxNSwgMHgwMTIxNDQsCi0JMHgwMzQ5ODYsIDB4MDAwMDA3LCAweDAwMjEwNCwgMHgwMzQ5ODYsCi0JMHgwMDAwMDcsIDB4MDAwRjhELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMjM5NDQsIDB4MDZDOTg2LCAweDAwMDAwNywgMHgwMDE4MTAsCi0JMHgyODA0M0EsIDB4MDg4MTBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwMjgxMCwgMHg3ODAwM0EsCi0JMHgwMDY4OEQsIDB4MDAwODEwLCAweDA4MDQzQSwgMHgyODhBMDYsCi0JMHgwMDAwMDcsIDB4MDA0MDBELCAweDAwMTAxNSwgMHgxODk5MDQsCi0JMHgyOTI5MDQsIDB4MzkzOTA0LCAweDAwMDAwNywgMHgwNjAyMDYsCi0JMHgwMDAwMDcsIDB4MDAwNEY1LCAweDAwMDA3RCwgMHgwMDAwMjAsCi0JMHgwMDAwOEQsIDB4MDEwODYwLCAweDAxODA0MCwgMHgwMDA0N0QsCi0JMHgwMzgwNDIsIDB4MjE4MDRBLCAweDE4MDAwQSwgMHgwMjE5NDQsCi0JMHgyMTU4ODYsIDB4MDAwMDA3LCAweDAwNDA3NSwgMHg3MUYxMDQsCi0JMHgwMDAwMDcsIDB4MDEwMDQyLCAweDI4MDAwQSwgMHgwMDI5MDQsCi0JMHgyMTIwODYsIDB4MDAwMDA3LCAweDAwM0MwRCwgMHgzMEE5MDQsCi0JMHgwMDAwMDcsIDB4MDAwNzdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MDdEQTg2LCAweDAwMDU3RCwgMHgwMDI4MjAsCi0JMHgwM0IwNjAsIDB4MDdGMjA2LCAweDAxODA0MCwgMHgwMDMwMjAsCi0JMHgwM0E4NjAsIDB4MDE4MDQwLCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA3RkE4NiwgMHgwMDAwMDcsCi0JMHgwMDA1N0QsIDB4MDE4MDQyLCAweDI4MDQwQSwgMHgwMDBFOEQsCi0JMHgwMDA4MTAsIDB4MjgwQzNBLCAweDAwMDAwRCwgMHgwMDA4MTAsCi0JMHgyODE0M0EsIDB4MDkwMDBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwM0RGRCwgMHgwMDAwMjAsCi0JMHgwMTgwNDAsIDB4MDAxMDdELCAweDAwOEQ4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4Mjg4QTA2LCAweDAwMDAwNywgMHgwMDA4MTUsCi0JMHgwODAwMUEsIDB4MDEwOTg0LCAweDA5NTE4NiwgMHgwMDEzN0QsCi0JMHgyMDA1MDAsIDB4MjgwRjIwLCAweDMzOEY2MCwgMHgzQjhGNjAsCi0JMHg0MzhGNjAsIDB4NEI4RjYwLCAweDUzOEY2MCwgMHg1QjhGNjAsCi0JMHgwMzhBNjAsIDB4MDE4MDQwLCAweDAwN0ZCRCwgMHgzODNEQzQsCi0JMHgwMDAwMDcsIDB4MDAxQTdELCAweDAwMTM3NSwgMHgwMTgwNDIsCi0JMHgwOTAwNEEsIDB4MTAwMDBBLCAweDBCOEQwNCwgMHgxMzk1MDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxOTA2MCwgMHgwMDExMDQsCi0JMHgyMTIwODYsIDB4MDEwMDQwLCAweDAwMTdGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDIxMjI4NiwgMHgwMDAwMDcsCi0JMHgwMDE5N0QsIDB4MDM4MDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMDA5MjQsIDB4MDAxNjY0LCAweDAwMTFGRCwgMHgwMzgwNDIsCi0JMHgyQjgwNEEsIDB4MTk4MDRBLCAweDAwMDA4RCwgMHgyMTg5NDQsCi0JMHgwMDAwMDcsIDB4MDAyMjQ0LCAweDBBRTE4NiwgMHgwMDAwMDcsCi0JMHgwMDFBNjQsIDB4MDAyQTI0LCAweDAwMTk3RCwgMHgwODAxMDIsCi0JMHgxMDAxMjIsIDB4MDAwODIwLCAweDAzOTA2MCwgMHgwMTgwNDAsCi0JMHgwMDNERkQsIDB4MDAwMDhELCAweDAwMDgyMCwgMHgwMTgwNDAsCi0JMHgwMDEzNzUsIDB4MDAxQTdELCAweDAxMDA0MiwgMHgwOTgwNEEsCi0JMHgxMDAwMEEsIDB4MDAwMjFELCAweDAxODlFNCwgMHgyOTkyRTQsCi0JMHgzMDkxNDQsIDB4MDAwMDA3LCAweDAwMDYwRCwgMHgwMDBBMTUsCi0JMHgwMDBDMUQsIDB4MDAxMDI1LCAweDAwQTlFNCwgMHgwMTJCRTQsCi0JMHgwMDA0NjQsIDB4MDFCM0U0LCAweDAyMzJFNCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDQ2NCwgMHgwMDA0MEQsCi0JMHgwOEIxQzQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMDBCRjUsCi0JMHgwMzAwNDAsIDB4MDAxOTdELCAweDAzODA0MiwgMHgwOTgwNEEsCi0JMHgwMDBBMjQsIDB4MDgwMDBBLCAweDA4MEU2NCwgMHgwMDAwMDcsCi0JMHgxMDAxMjIsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMTAwNDAsCi0JMHgwMDY0QUMsIDB4MDAwMjdELCAweDAwMDAyMCwgMHgwMTgwNDAsCi0JMHgwMDEwN0QsIDB4MDE4MDQyLCAweDAwMTFGRCwgMHgzQjgwNEEsCi0JMHgwOTgwNEEsIDB4MjAwMDBBLCAweDAwMDA5NSwgMHgxQTExNDQsCi0JMHgwMEExNDQsIDB4MEQyMDg2LCAweDAwMDQwRCwgMHgwMEI5ODQsCi0JMHgwRDIxODYsIDB4MDAxOEZELCAweDAxODA0MiwgMHgwMDEwRkQsCi0JMHgwOTgwNEEsIDB4MjgwMDBBLCAweDAwMDA5NSwgMHgwMTA5MjQsCi0JMHgwMDJBNjQsIDB4MEQxMTg2LCAweDAwMDAwNywgMHgwMDI5MDQsCi0JMHgwRDIyODYsIDB4MDAwMDA3LCAweDBEMkEwNiwgMHgwODAwMDIsCi0JMHgwMDAwOEQsIDB4MDAzODdELCAweDAwMDgyMCwgMHgwMTgwNDAsCi0JMHgwMDEyN0QsIDB4MDE4MDQyLCAweDEwMDAwQSwgMHgwMDM5MDQsCi0JMHgwREQxODYsIDB4MDAwODBELCAweDdGRkZCNSwgMHgwMEI5ODQsCi0JMHgwREExODYsIDB4MDAwMDI1LCAweDBFN0EwNiwgMHgwMDAwMkQsCi0JMHgwMDAwMTUsIDB4MDAwODJELCAweDAyQzc4RCwgMHgwMDA4MjAsCi0JMHgwRUMyMDYsIDB4MDAwMDBELCAweDdGODAzNSwgMHgwMEI5ODQsCi0JMHgwRTcxODYsIDB4NDAwMDI1LCAweDAwMDA4RCwgMHgxMTA5NDQsCi0JMHgwMDAwMDcsIDB4MDAwMThELCAweDEwOTUwNCwgMHgwMDAwMDcsCi0JMHgwMDkxNjQsIDB4MDAwNDI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgxMDAxMDIsIDB4MjgwMDAyLCAweDAyQzY4RCwgMHgwMDA4MjAsCi0JMHgwRUMyMDYsIDB4MDAwMThELCAweDAwMDQyRCwgMHgwMDAwOEQsCi0JMHgxMDk1MDQsIDB4MDAwMDA3LCAweDAwMDIwRCwgMHgxMDkxODQsCi0JMHgwMDAwMDcsIDB4MDJDNzBELCAweDAwMDgyMCwgMHgwMDAwOEQsCi0JMHgwMDM4RkQsIDB4MDE4MDQwLCAweDAwM0JGRCwgMHgwMDEwMjAsCi0JMHgwM0E4NjAsIDB4MDAwODE1LCAweDMxMzE4NCwgMHgyMTIxODQsCi0JMHgwMDAwMDcsIDB4MDNCMDYwLCAweDAzQTA2MCwgMHgwMTgwNDAsCi0JMHgwMDIyRkQsIDB4MDAwMDk1LCAweDAxMDkyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAxMjY0LCAweDEwMDEwMiwgMHgwMDA4MjAsCi0JMHgwMzkwNjAsIDB4MDE4MDQwLCAweDAwMTkyNCwgMHgwMEZCOEQsCi0JMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsCi0JMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAxMTdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDBBMjQsIDB4MjgwNTAyLCAweDI4MEMwMiwgMHgwOTgwMEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyMDAwMDcsCi0JMHgwMDIyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDAwOTUsCi0JMHgyODBEQzQsIDB4MDExOTI0LCAweDAwMTk3RCwgMHgwMTgwNDIsCi0JMHgwMDExRkQsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDAwQjUsCi0JMHgxMTMxNDQsIDB4MEE4RDA0LCAweDAwMDAwNywgMHgwODBBNDQsCi0JMHgxMjk1MDQsIDB4MDAwMDA3LCAweDAwMjNGRCwgMHgwMDEwMjAsCi0JMHgwMzgwNDAsIDB4MTAxMjQ0LCAweDAwMDAwNywgMHgwMDA4MjAsCi0JMHgwMzkwNjAsIDB4MDE4MDQwLCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDEwRkE4NiwgMHgwMDAwMDcsCi0JMHgwMDNCRkQsIDB4MDAwMTAwLCAweDAwMEExMCwgMHgwQjgwN0EsCi0JMHgxMzgwNEEsIDB4MDkwOTg0LCAweDAwMDAwNywgMHgwMDAwOTUsCi0JMHgwMTNEMDQsIDB4MTE4MDg2LCAweDEwMDAwQSwgMHgxMDAwMDIsCi0JMHgwOTA5ODQsIDB4MDAwMDA3LCAweDAzODA0MiwgMHgxMTgwNEEsCi0JMHgwOTBEMDQsIDB4MDAwMDA3LCAweDEwMDAwQSwgMHgwOTBEODQsCi0JMHgwMDAwMDcsIDB4MDAyNTdELCAweDAwMDgyMCwgMHgwMTgwNDAsCi0JMHgwMDAxMEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgwMDEyN0QsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAwMTk3RCwgMHgwMTgwNDIsCi0JMHgwMDExN0QsIDB4MzE4MDRBLCAweDEwMDAwQSwgMHgwMDMxMjQsCi0JMHgwMTI4MEQsIDB4MDAzOTdELCAweDAwMDgyMCwgMHgwNTgwNDAsCi0JMHgwMzgwNDIsIDB4MDk4NDRBLCAweDAwMDYwNiwgMHgwODA0MEEsCi0JMHgzMDAxMDIsIDB4MDAzMTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDEyMjQsIDB4MjgwNTAyLCAweDAwMUE0QywgMHgxMzAxODYsCi0JMHg3MDAwMDIsIDB4MDAwMDJELCAweDAzMDAwMCwgMHgwMDM4N0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDEzMkEwNiwgMHgwMDIxMjQsCi0JMHgwMDAwQUQsIDB4MTAwMDAyLCAweDAwMDEwRCwgMHgwMDA5MjQsCi0JMHgwMDZCMjQsIDB4MDEzNjhELCAweDAwMzk3RCwgMHgwMDA4MjAsCi0JMHgwNTgwNDAsIDB4MDM4MDQyLCAweDA5ODQ0QSwgMHgwMDA2MDYsCi0JMHgwODA0MEEsIDB4MDAzMjY0LCAweDAwMDA4RCwgMHgwMDBBMjQsCi0JMHgwMDEwMjAsIDB4MDAyMjdELCAweDAxODA0MCwgMHgwMTNDMEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDI5RDIwNiwgMHgwMDAwMDcsCi0JMHgwMDI4MjAsIDB4MDAyMDdELCAweDAxODA0MCwgMHgwMDExN0QsCi0JMHgwMzgwNDIsIDB4MTM4MDRBLCAweDMzODAwQSwgMHgwMDM4N0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgxNjNBODYsCi0JMHgwMDAwMDcsIDB4MDAwMDhELCAweDAzMDk2NCwgMHgwMTQ3OEQsCi0JMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsCi0JMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwgMHgzODAxMDIsCi0JMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMTIyNCwgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgxNEEyODYsCi0JMHgwMDAwMDcsIDB4MjgwNTAyLCAweDAwMUE0QywgMHgxNjM5ODYsCi0JMHgwMDAwMDcsIDB4MDMyMTY0LCAweDAwNjMyQywgMHgwMDNERkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDA5NSwgMHgwOTA5MDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAwMUE0QywgMHgxNTYxODYsCi0JMHgwMTgwNDAsIDB4MDMwMDAwLCAweDE1N0EwNiwgMHgwMDIxMjQsCi0JMHgwMDAxMEQsIDB4MDAwOTI0LCAweDAwNkIyNCwgMHgwMTVCOEQsCi0JMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsCi0JMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwgMHgwMDNBNjQsCi0JMHgwMDAwOTUsIDB4MDAxMjI0LCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE1REE4NiwgMHgwMDAwMDcsCi0JMHgwMTYyOEQsIDB4MDAwODEwLCAweDA4MDQzQSwgMHgyOUQyMDYsCi0JMHgwMDAwMDcsIDB4MTREMjA2LCAweDAwMDAwNywgMHgwMDcwMjAsCi0JMHgwODAxMEEsIDB4MTAwMTJBLCAweDAwMjBGRCwgMHgwMzg4NjAsCi0JMHgwMzkwNjAsIDB4MDE4MDQwLCAweDAwMjI3RCwgMHgwMTgwNDIsCi0JMHgwMDNERkQsIDB4MDgwMDBBLCAweDMxODQ0QSwgMHgwMDA5MDQsCi0JMHgxNkQ4ODYsIDB4MTgwMDhCLCAweDAwMDA4RCwgMHgxODk5MDQsCi0JMHgwMDMxMkMsIDB4MTdBQTA2LCAweDAwMDAwNywgMHgwMDMyNEMsCi0JMHgxNzMzODYsIDB4MDAwMDA3LCAweDAwMTkwNCwgMHgxNzMwODYsCi0JMHgwMDAwMDcsIDB4MDAwMDk1LCAweDE5OTE0NCwgMHgwMDIyMkMsCi0JMHgwMDMxMjQsIDB4MDA2MzZDLCAweDAwMEUzRCwgMHgwMDEzNzUsCi0JMHgwMDBCRkQsIDB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMzhBRUMsIDB4MDM5M0VDLCAweDAwMjI0QywgMHgxN0E5ODYsCi0JMHgwMDAwMDcsIDB4MDAwMDhELCAweDE4OTkwNCwgMHgwMDIyNkMsCi0JMHgwMDMyMkMsIDB4MzAwNTBBLCAweDMwMURBQiwgMHgwMDIwODMsCi0JMHgwMDE4RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMTg5MjQsCi0JMHgzMDA1MDIsIDB4MDAxMDgzLCAweDAwMTg3NSwgMHgwMTAwNDIsCi0JMHgxMDAwMEEsIDB4MDAwMDhELCAweDAxMDkyNCwgMHgwMDEzNzUsCi0JMHgzMzA1NDIsIDB4MzMwQ0NCLCAweDMzMkNDQiwgMHgzMzM0Q0IsCi0JMHgzMzNDQ0IsIDB4MzM0NENCLCAweDMzNENDQiwgMHgzMzU0Q0IsCi0JMHgzMDVDOEIsIDB4MDA2MDgzLCAweDAwMDJGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE4N0E4NiwgMHgwMDAwMDcsCi0JMHgwMDFFMkQsIDB4MDAwNUZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMjg5MjQsIDB4MjgwNTAyLCAweDAwMDYwRCwgMHgwMDA4MTAsCi0JMHgyODBDM0EsIDB4MDAwMDhELCAweDAwMDgxMCwgMHgyODE0M0EsCi0JMHgwQTgwOEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgyMjAwMDcsIDB4MDAxMjc1LCAweDAzMDA0MiwgMHgyMTAwNEEsCi0JMHgwMDAwOEQsIDB4MUEwOTQ0LCAweDAwMDAwNywgMHgwMTk4MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDJCMjIwNiwgMHgwMDAwMDcsCi0JMHgwMDAxRjUsIDB4MDMwMDQyLCAweDBEMDA0QSwgMHgxMDAwMEEsCi0JMHgwODkxNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMTAwNDAsCi0JMHgwMDI1RjUsIDB4MEEzMTQ0LCAweDAwMDAwNywgMHgwMDA4MjAsCi0JMHgwMzI4NjAsIDB4MDMwMDQwLCAweDAwMjE3RCwgMHgwMzgwNDIsCi0JMHgwQjgwNEEsIDB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsCi0JMHgwMzAwNDAsIDB4MDAwMDhELCAweDAwMDEyNCwgMHgwMDAxMkMsCi0JMHgwMDBFNjQsIDB4MDAxQTY0LCAweDAwNjM2QywgMHgwODAxMEEsCi0JMHgxMDAxMkEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMDIwRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDIyN0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsCi0JMHgwMzAwNDAsIDB4MDAxOTdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDIyRkQsIDB4MDM4MDQyLCAweDEwMDAwQSwgMHgwMDA4MjAsCi0JMHgwMzEwNjAsIDB4MDMwMDQwLCAweDA5MEQwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDMwMDQwLCAweDAzODA0MiwgMHgwQjgwNEEsCi0JMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMzgwNDIsIDB4MTM4MDRBLCAweDE5ODA0QSwgMHgxMTBEMDQsCi0JMHgxOThEMDQsIDB4MDAwMDA3LCAweDA4MDAwQSwgMHgwMDEwMjAsCi0JMHgwMzE4NjAsIDB4MDMwODYwLCAweDAzMDA0MCwgMHgwMDAwOEQsCi0JMHgwQjA5NDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMTAwNDAsCi0JMHgwMDA1RjUsIDB4MDMwMDQyLCAweDA4MDAwQSwgMHgwMDA4MjAsCi0JMHgwMTAwNDAsIDB4MDAwMEY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MUM2MDg2LCAweDAwMUU3NSwgMHgwMzAwNDIsCi0JMHgwMTA0NEEsIDB4MDAwQzBBLCAweDFDNzIwNiwgMHgwMDAwMDcsCi0JMHgwMDA0MDIsIDB4MDAwQzAyLCAweDAwMTc3RCwgMHgwMDFBRjUsCi0JMHgwMTgwNDIsIDB4MDMxNDRBLCAweDAzMUM0QSwgMHgwMzI0NEEsCi0JMHgwMzJDNEEsIDB4MDMzNDRBLCAweDAzM0M0QSwgMHgwMzQ0NEEsCi0JMHgwMDRDMEEsIDB4MDAwNDNELCAweDAwMTNGNSwgMHgwMDFBRkQsCi0JMHgwMzAwNDIsIDB4MEIwMDRBLCAweDFCODA0QSwgMHgxMzgwNEEsCi0JMHgyMDAwMEEsIDB4MDg5MTQ0LCAweDE5QTE0NCwgMHgwMzg5RTQsCi0JMHgwMzk5RUMsIDB4MDA1NTAyLCAweDAwNUQwQSwgMHgwMzAwNDIsCi0JMHgwQjAwNEEsIDB4MUI4MDRBLCAweDEzODA0QSwgMHgyMDAwMEEsCi0JMHgwODkxNDQsIDB4MTlBMTQ0LCAweDAzODlFNCwgMHgwMzk5RUMsCi0JMHgwMDY1MDIsIDB4MDA2RDBBLCAweDAzMDA0MiwgMHgwQjAwNEEsCi0JMHgxOTAwNEEsIDB4MkI4MDRBLCAweDEzODA0QSwgMHgyMTgwNEEsCi0JMHgzMDAwMEEsIDB4MDg5MTQ0LCAweDE5QTE0NCwgMHgyQUIxNDQsCi0JMHgwMzg5RTQsIDB4MDM5OUVDLCAweDAwNzUwMiwgMHgwMDdEMEEsCi0JMHgwM0E5RTQsIDB4MDAwNzAyLCAweDAwMTA3RCwgMHgwMDA0MTUsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAxMDlFNCwgMHgwMDBGMDIsCi0JMHgwMDJBRjUsIDB4MDAxOUZELCAweDAxMDA0MiwgMHgwOTgwNEEsCi0JMHgxMDAwMEEsIDB4MDAwOTM0LCAweDAwMTY3NCwgMHgwMDI5RjUsCi0JMHgwMTAwNDIsIDB4MTAwMDBBLCAweDAwOTE3QywgMHgwMDIwNzUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgxRUQyODYsCi0JMHgwMDI2RjUsIDB4MDAyN0Y1LCAweDAzMDA0MiwgMHgwOTAwNEEsCi0JMHgxMDAwMEEsIDB4MDAwQTNDLCAweDAwMTY3QywgMHgwMDFBNzUsCi0JMHgwMDBCRkQsIDB4MDEwMDQyLCAweDUxODA0QSwgMHg0ODAwMEEsCi0JMHgxNjAwMDcsIDB4MDAxMDc1LCAweDAxMDA0MiwgMHgyODJDMEEsCi0JMHgyODFEMTIsIDB4MjgyNTEyLCAweDAwMUYzMiwgMHgxRTAwMDcsCi0JMHgwRTAwMDcsIDB4MDAxOTc1LCAweDAxMDA0MiwgMHgwMDJERjUsCi0JMHgwRDAwNEEsIDB4MTAwMDBBLCAweDAwOTE0NCwgMHgxRkIyODYsCi0JMHgwMTAwNDIsIDB4MjgzNDBBLCAweDAwMEU1RCwgMHgwMDAwOEQsCi0JMHgwMDAzNzUsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwNUQyRjQsCi0JMHg1NEQxMDQsIDB4MDA3MzVDLCAweDIwNTM4NiwgMHgwMDAwMDcsCi0JMHgwQzAwMDcsIDB4MDgwMDA3LCAweDBBMDAwNywgMHgwMjA0MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDMzMjIwNiwgMHgwMDAwMDcsCi0JMHgyMDVBMDYsIDB4MDAwMDA3LCAweDA4MDAwNywgMHgwMDIyNzUsCi0JMHgwMTAwNDIsIDB4MjAwMDBBLCAweDAwMjEwNCwgMHgyMTIwODYsCi0JMHgwMDFFMkQsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MjA5Mjg2LCAweDAwMDAwNywgMHgwMDIwMTAsCi0JMHgzMDA0M0EsIDB4MDAwNTdELCAweDAxODBDMywgMHgwODAwMEEsCi0JMHgwMjg5MjQsIDB4MjgwNTAyLCAweDI4MEMwMiwgMHgwQTgxMEQsCi0JMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwgMHgyMjAwMDcsCi0JMHgwMDA0RkQsIDB4MDE4MDQyLCAweDcwMDAwQSwgMHgwMzAwMDAsCi0JMHgwMDcwMjAsIDB4MDZGQTA2LCAweDAxODA0MCwgMHgwMjE4MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDJCMjIwNiwgMHgwMDAwMDcsCi0JMHgwMDAyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyMThBODYsIDB4MDAwMDA3LCAweDAxRjIwNiwgMHgwMDAwMDcsCi0JMHgwMDA4NzUsIDB4MDAwOUZELCAweDAwMDEwRCwgMHgyMjBBMDYsCi0JMHgwMDAyOTUsIDB4MDAwQjc1LCAweDAwMDk3RCwgMHgwMDAwMEQsCi0JMHgwMDA1MTUsIDB4MDEwMDQyLCAweDE4MDAwQSwgMHgwMDE5MDQsCi0JMHgyODc4ODYsIDB4MDAwNkY1LCAweDAwMTAyMCwgMHgwMTAwNDAsCi0JMHgwMDA0RjUsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDA3NzUsCi0JMHgwMTAwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDExMjQsCi0JMHgwMDA5MDQsIDB4MjJCQTg2LCAweDAwMDgxNSwgMHgwODAxMDIsCi0JMHgxMDEyMDQsIDB4MjJEQTA2LCAweDAwMDU3NSwgMHgwODEyMDQsCi0JMHgwMDAwMDcsIDB4MTAwMTAyLCAweDAwMDU3NSwgMHgwMDA0MjUsCi0JMHgwMjExMjQsIDB4MTAwMTAyLCAweDAwMDgyMCwgMHgwMzEwNjAsCi0JMHgwMTAwNDAsIDB4MDAxOTI0LCAweDI4Nzg4NiwgMHgwMDAwOEQsCi0JMHgwMDA0NjQsIDB4MDA5RDA0LCAweDI3ODg4NiwgMHgxODAxMDIsCi0JMHgwMDA1NzUsIDB4MDEwMDQyLCAweDI4MDQwQSwgMHgwMDAxOEQsCi0JMHgwMDA5MjQsIDB4MjgwRDAyLCAweDAwMDAwRCwgMHgwMDA5MjQsCi0JMHgyODE1MDIsIDB4MTAwMDBELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjAwMDA3LCAweDAwMTE3NSwgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyM0MyODYsCi0JMHgwMDAwMDcsIDB4MDAwMTAwLCAweDA4MEIyMCwgMHgxMzBCNjAsCi0JMHgxQjBCNjAsIDB4MDMwQTYwLCAweDAxMDA0MCwgMHgwNTAwNDIsCi0JMHgzRDAwNEEsIDB4MzUwMDRBLCAweDJEMDA0QSwgMHgyMDAwMEEsCi0JMHgwMDA2RjUsIDB4MDEwMDQyLCAweDI4MTQwQSwgMHgwMDA0RjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDMxNSwgMHgwMTBEMDQsCi0JMHgyNENBODYsIDB4MDA0MDE1LCAweDAwMDA5NSwgMHgwMTBEMDQsCi0JMHgyNEI4ODYsIDB4MTAwMDIyLCAweDEwMDAyQSwgMHgyNEUyMDYsCi0JMHgwMDAwMDcsIDB4MzMzMTA0LCAweDJBQTkwNCwgMHgwMDAwMDcsCi0JMHgwMzIxMjQsIDB4MjgwNTAyLCAweDAwMTEyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAzMjI0LCAweDAwMjkyQywgMHgwMDYzNkMsCi0JMHgyNUYzODYsIDB4MDAwMDA3LCAweDAyQjE2NCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDAwMDhELCAweDAwMEE2NCwgMHgyODBEMDIsCi0JMHgxMDAwOEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgyMjAwMDcsIDB4MDAwMDhELCAweDM4QjkwNCwgMHgwMDAwMDcsCi0JMHgwMzI5NkMsIDB4MzAwMTBBLCAweDAwMDJGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDI1QkE4NiwgMHgwMDAwMDcsCi0JMHgwMjMxMkMsIDB4MjgwNTBBLCAweDAwMDA4RCwgMHgwMTA5NkMsCi0JMHgyODBEMEEsIDB4MTAwMTBELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwMTEyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAzMjI0LCAweDMwMDEwMiwgMHgwMzI5NDQsCi0JMHgyNjdBODYsIDB4MDAwMDA3LCAweDMwMDAwMiwgMHgwMDA0RjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDMxNSwgMHgwMTBEMDQsCi0JMHgyNkMwODYsIDB4MDAzMTI0LCAweDAwMDQ2NCwgMHgzMDAxMDIsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyNkNBODYsIDB4MDAwMDA3LCAweDAwMzEyNCwgMHgzMDA1MDIsCi0JMHgwMDM5MjQsIDB4MzAwNTgzLCAweDAwMDg4MywgMHgwMDA1RjUsCi0JMHgwMTAwNDIsIDB4MjgwNDBBLCAweDAwMDA4RCwgMHgwMDgxMjQsCi0JMHgyODBEMDIsIDB4MDAwMDhELCAweDAwODEyNCwgMHgyODE1MDIsCi0JMHgxMDAxOEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgyMjAwMDcsIDB4MDAxMDI1LCAweDAwMDU3NSwgMHgwMzAwNDIsCi0JMHgwOTAwNEEsIDB4MTAwMDBBLCAweDBBMDkwNCwgMHgxMjExMDQsCi0JMHgwMDAwMDcsIDB4MDAxMDIwLCAweDA1MDg2MCwgMHgwNTAwNDAsCi0JMHgwMDA2RkQsIDB4MDE4MDQyLCAweDA5MDA0QSwgMHgxMDAwMEEsCi0JMHgwMDAwQTUsIDB4MEEwOTA0LCAweDEyMTEwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDE5MDYwLCAweDAxMDA0MCwgMHgwMDAyRjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyODQyODYsCi0JMHgwMDAwMDcsIDB4MjMwQTA2LCAweDAwMDAwNywgMHgwMDA2MDYsCi0JMHgwMDAwMDcsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4Mjg5Mjg2LCAweDAwMDAwNywgMHgwMDAxMDAsCi0JMHgwODBCMjAsIDB4MTM4QjYwLCAweDFCOEI2MCwgMHgyMzhCNjAsCi0JMHgyQjhCNjAsIDB4MzM4QjYwLCAweDNCOEI2MCwgMHg0MzhCNjAsCi0JMHg0QjhCNjAsIDB4NTM4QjYwLCAweDVCOEI2MCwgMHg2MzhCNjAsCi0JMHg2QjhCNjAsIDB4NzM4QjYwLCAweDdCOEI2MCwgMHgwMzhGNjAsCi0JMHgwQjhGNjAsIDB4MTM4RjYwLCAweDFCOEY2MCwgMHgyMzhGNjAsCi0JMHgyQjhGNjAsIDB4MzM4RjYwLCAweDNCOEY2MCwgMHg0MzhGNjAsCi0JMHg0QjhGNjAsIDB4NTM4RjYwLCAweDVCOEY2MCwgMHg2MzhGNjAsCi0JMHg2QjhGNjAsIDB4NzM4RjYwLCAweDdCOEY2MCwgMHgwMzhBNjAsCi0JMHgwMDA2MDYsIDB4MDE4MDQwLCAweDAwMDA4RCwgMHgwMDBBNjQsCi0JMHgyODBEMDIsIDB4MDAwQTI0LCAweDAwMDI3RCwgMHgwMTgwNDIsCi0JMHgxMDAwMEEsIDB4MDAxMjI0LCAweDAwMDNGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDJBODI4NiwgMHgwMDAwMDcsCi0JMHgwMDAxOEQsIDB4MDAwQTI0LCAweDAwMDQ2NCwgMHgwMDA0NjQsCi0JMHgwODAxMDIsIDB4MDAwOTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgxMDAxMDIsIDB4MDIwMDBELCAweDAwOTE0NCwgMHgyQUQ5ODYsCi0JMHgwMDAwMDcsIDB4MDAwMUZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDBBNDQsIDB4MkFCQjg2LCAweDAxODA0MiwgMHgwQTAwMEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyMDAwMDcsCi0JMHgwMDAyN0QsIDB4MDAxMDIwLCAweDAwMDYwNiwgMHgwMTgwNDAsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyQjJBODYsIDB4MDAwMDA3LCAweDAwMDM3RCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDJCNUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAwNzUsIDB4MDAyRTdELCAweDAxMDA0MiwgMHgwQjgwNEEsCi0JMHgwMDAwMjAsIDB4MDAwOTA0LCAweDAwMDY4NiwgMHgwMTAwNDAsCi0JMHgzMTg0NEEsIDB4MzAwNDhCLCAweDAwMDg4MywgMHgwMDAwOEQsCi0JMHgwMDA4MTAsIDB4MjgxNDNBLCAweDAwMDA4RCwgMHgwMDA4MTAsCi0JMHgyODBDM0EsIDB4MDAwNjc1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDM4MTUsIDB4MDEwOTI0LCAweDI4MDUwMiwgMHgwQjAwMEQsCi0JMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwgMHgwMDA2MDYsCi0JMHgyMjAwMDcsIDB4MDAwNDY0LCAweDAwMDQ2NCwgMHgwMDA2MDYsCi0JMHgwMDAwMDcsIDB4MDAwMTM0LCAweDAwN0Y4RCwgMHgwMDA5M0MsCi0JMHgyODFEMTIsIDB4MjgyNTEyLCAweDAwMUYzMiwgMHgwRTAwMDcsCi0JMHgwMDAxMEQsIDB4MDAwMzdELCAweDAwMDgyMCwgMHgwMTgwNDAsCi0JMHgwNUQyRjQsIDB4MDAwMDA3LCAweDA4MDAwNywgMHgwMDAzN0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyRDAyODYsCi0JMHgwMDAwMDcsIDB4MDAwNjA2LCAweDAwMDAwNywgMHgwMDAwMDcsCi0JMHgwMDAwMTIsIDB4MTAwMDA3LCAweDMyMDAwNywgMHg2MDAwMDcsCi0JMHgxMDAwODAsIDB4NDgwMDFBLCAweDAwNDkwNCwgMHgyRDYxODYsCi0JMHgwMDAwMDcsIDB4MDAxMjEwLCAweDU4MDAzQSwgMHgwMDAxNDUsCi0JMHg1QzVEMDQsIDB4MDAwMDA3LCAweDAwMDA4MCwgMHg0ODAwMUEsCi0JMHgwMDQ5MDQsIDB4MkRCMTg2LCAweDAwMDAwNywgMHgwMDEyMTAsCi0JMHg1MDAwM0EsIDB4MDA1OTA0LCAweDJFMDg4NiwgMHgwMDAwNDUsCi0JMHgwMDAwQzUsIDB4N0ZGRkY1LCAweDdGRkY3RCwgMHgwN0Q1MjQsCi0JMHgwMDQyMjQsIDB4NTAwMTAyLCAweDIwMDUwMiwgMHgwMDAwODIsCi0JMHg0MDAwMUEsIDB4MDA0MTA0LCAweDJFMzk4NiwgMHgwMDAwMDcsCi0JMHgwMDM4NjUsIDB4NDAwMDFBLCAweDAwNDAyMCwgMHgwMDEwNEQsCi0JMHgwNEMxODQsIDB4MzAxQjg2LCAweDAwMDA0MCwgMHgwNDAwMDcsCi0JMHgwMDAxNjUsIDB4MDAwMTQ1LCAweDAwNDAyMCwgMHgwMDAwNDAsCi0JMHgwMDA3NjUsIDB4MDgwMDgwLCAweDQwMDAxQSwgMHgwMDQxMDQsCi0JMHgyRUM5ODYsIDB4MDAwMDA3LCAweDAwMTIxMCwgMHg0MDAwM0EsCi0JMHgwMDQxMDQsIDB4MkYyMjg2LCAweDAwMDA0RCwgMHgwMDAwQ0QsCi0JMHgwMDQ4MTAsIDB4MjAwNDNBLCAweDAwMDg4MiwgMHg0MDAwMUEsCi0JMHgwMDQxMDQsIDB4MkYzMTg2LCAweDAwMDAwNywgMHgwMDQ4MjAsCi0JMHgwMDU5MDQsIDB4MzAwODg2LCAweDAwMDA0MCwgMHgwMDA3RTUsCi0JMHgyMDA0ODAsIDB4MjgxNkEwLCAweDMyMTZFMCwgMHgzQTE2RTAsCi0JMHg0MjE2RTAsIDB4MDIxMjYwLCAweDAwMDA0MCwgMHgwMDAwMzIsCi0JMHg0MDAwNzUsIDB4MDAwMDdELCAweDA3RDU3NCwgMHgyMDA1MTIsCi0JMHgwMDAwODIsIDB4NDAwMDFBLCAweDAwNDEwNCwgMHgyRkUxODYsCi0JMHgwMDAwMDcsIDB4MDM3MjA2LCAweDY0MDAwNywgMHgwNjAwMDcsCi0JMHgwMDAwRTUsIDB4MDAwMDIwLCAweDAwMDA0MCwgMHgwMDBBNjUsCi0JMHgwMDAwMjAsIDB4MDIwMDQwLCAweDAyMDA0MCwgMHgwMDAwNDAsCi0JMHgwMDAxNjUsIDB4MDAwMDQyLCAweDcwMDAwQSwgMHgwMDcxMDQsCi0JMHgzMEEyODYsIDB4MDAwMDA3LCAweDAxODIwNiwgMHg2NDAwMDcsCi0JMHgwNTAwMDAsIDB4MDA3MDIwLCAweDAwMDA0MCwgMHgwMzcyMDYsCi0JMHg2NDAwMDcsIDB4MDAwMDA3LCAweDAwMzA2RCwgMHgwMjg4NjAsCi0JMHgwMjkwNjAsIDB4MDgwMDBBLCAweDAyODg2MCwgMHgwMDgwNDAsCi0JMHgxMDAwMTIsIDB4MDAxMDBELCAweDAwOTE4NCwgMHgzMTQxODYsCi0JMHgwMDBFMEQsIDB4MDA5MTg0LCAweDMyNTE4NiwgMHgwMDAwMDcsCi0JMHgzMDAwMDcsIDB4MDAxMDIwLCAweDAwM0I2RCwgMHgwMDgwNDAsCi0JMHgwMDAwODAsIDB4MDgwMDFBLCAweDAwMDkwNCwgMHgzMTYxODYsCi0JMHgwMDAwMDcsIDB4MDAxMjIwLCAweDAwMERFRCwgMHgwMDgwNDAsCi0JMHgwMDgwNDIsIDB4MTAwMDBBLCAweDQwMDAwRCwgMHgxMDk1NDQsCi0JMHgwMDAwMDcsIDB4MDAxMDIwLCAweDAwMERFRCwgMHgwMDgwNDAsCi0JMHgwMDgwNDIsIDB4MjAwNDBBLCAweDAwMDA4MiwgMHgwODAwMUEsCi0JMHgwMDA5MDQsIDB4MzFGMTg2LCAweDAwMDAwNywgMHgwMDNCNkQsCi0JMHgwMDgwNDIsIDB4MDgwMDBBLCAweDAwMEUxNSwgMHgwMTA5ODQsCi0JMHgzMjlCODYsIDB4NjAwMDA3LCAweDA4MDAxQSwgMHgwMDBDMTUsCi0JMHgwMTA5ODQsIDB4MzI4Mzg2LCAweDAwMDAyMCwgMHgxQTAwMDcsCi0JMHgwMDAyRUQsIDB4MDA4MDQwLCAweDYyMDAwNywgMHgwMDMwNkQsCi0JMHgwMjgwNDIsIDB4MEE4MDRBLCAweDAwMDgyMCwgMHgwQTgwNEEsCi0JMHgwMDA2MDYsIDB4MTA4MDRBLCAweDAwMDAwNywgMHgyODI1MTIsCi0JMHgwMDFGMzIsIDB4MDVEMkY0LCAweDU0RDEwNCwgMHgwMDczNUMsCi0JMHgwMDA3ODYsIDB4MDAwMDA3LCAweDBDMDAwNywgMHgwQTAwMDcsCi0JMHgxQzAwMDcsIDB4MDAzNDY1LCAweDAyMDA0MCwgMHgwMDQ4MjAsCi0JMHgwMjUwNjAsIDB4NDAwMDBBLCAweDAyNDA2MCwgMHgwMDAwNDAsCi0JMHg0NTQ5NDQsIDB4MDAwMDA3LCAweDAwNDAyMCwgMHgwMDNBRTUsCi0JMHgwMDAwNDAsIDB4MDAyOEU1LCAweDAwMDA0MiwgMHg0ODAwMEEsCi0JMHgwMDQ5MDQsIDB4Mzg2ODg2LCAweDAwMkM2NSwgMHgwMDAwNDIsCi0JMHg0MDAwMEEsIDB4MDAwMEQ1LCAweDQ1NDEwNCwgMHgwMDAwMDcsCi0JMHgwMDA2NTUsIDB4MDU0NTA0LCAweDM0RjI4NiwgMHgwMDAxRDUsCi0JMHgwNTQ1MDQsIDB4MzRGMDg2LCAweDAwMkI2NSwgMHgwMDAwNDIsCi0JMHgwMDNBRTUsIDB4NTAwMDRBLCAweDQwMDAwQSwgMHg0NUMzRDQsCi0JMHgwMDAwMDcsIDB4NDU0NTA0LCAweDAwMDAwNywgMHgwMDAwQ0QsCi0JMHg0NDQ5NDQsIDB4MDAwMDA3LCAweDQ1NDUwNCwgMHgwMDAwMDcsCi0JMHgwMDAxNEQsIDB4NTU0OTQ0LCAweDAwMDAwNywgMHgwNDUxNDQsCi0JMHgzNEU5ODYsIDB4MDAyQzY1LCAweDAwMDA0MiwgMHg0ODAwMEEsCi0JMHg0Q0QxMDQsIDB4MDAwMDA3LCAweDA0QzE0NCwgMHgzNEYzODYsCi0JMHgwMDAwMDcsIDB4MTYwMDA3LCAweDAwMkNFNSwgMHgwNDAwNDIsCi0JMHg0MDAwMEEsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDI5NjUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDEwNCwgMHgzNTYwODYsCi0JMHgwMDAwMDcsIDB4MDAyNDAyLCAweDM2QTIwNiwgMHgwMDVDMDIsCi0JMHgwMDI1RTUsIDB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDQyNzQsCi0JMHgwMDJBRTUsIDB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDQyNzQsCi0JMHg1MDAxMTIsIDB4MDAyOUU1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHgwMDQyMzQsIDB4NDU0MTA0LCAweDAwMDAwNywgMHgwMDQwMjAsCi0JMHgwMDAwNDAsIDB4MDAzRUU1LCAweDAwMDAyMCwgMHgwMDAwNDAsCi0JMHgwMDJERTUsIDB4NDAwMTUyLCAweDUwMDAwQSwgMHgwNDUxNDQsCi0JMHgzNjRBODYsIDB4MDAwMEM1LCAweDAwM0VFNSwgMHgwMDQwMjAsCi0JMHgwMDAwNDAsIDB4MDAyQkU1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHg0MDQyNTQsIDB4MDAwMDA3LCAweDAwMkFFNSwgMHgwMDQwMjAsCi0JMHgwMDAwNDAsIDB4NTAwMTMyLCAweDA0MDEzNCwgMHgwMDU2NzQsCi0JMHgwMDI5RTUsIDB4MDIwMDQyLCAweDQyMDAwQSwgMHgwMDAwNDIsCi0JMHg1MDAwMEEsIDB4MDU0MTdDLCAweDAwMjhFNSwgMHgwMDAwNDIsCi0JMHg0ODAwMEEsIDB4MDAwMEM1LCAweDRDQzE0NCwgMHgzNzEwODYsCi0JMHgwMDI2RTUsIDB4MDAyN0U1LCAweDAyMDA0MiwgMHg0MDAwNEEsCi0JMHg1MDAwMEEsIDB4MDA0MjNDLCAweDAwNTY3QywgMHgwMDI4RTUsCi0JMHgwMDQ4MjAsIDB4MDAwMDQwLCAweDI4MUQxMiwgMHgyODI1MTIsCi0JMHgwMDFGNzIsIDB4MDAyOTY1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHgwMDQxMDQsIDB4MzdBQTg2LCAweDBFMDAwNywgMHgxNjAwMDcsCi0JMHgxRTAwMDcsIDB4MDAzRUU1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHgwMDQxMDQsIDB4MzdFODg2LCAweDAwMkQ2NSwgMHgwMDAwNDIsCi0JMHgyODM0MEEsIDB4MDAzNDY1LCAweDAyMDA0MiwgMHg0MjAwNEEsCi0JMHgwMDQwMjAsIDB4NEEwMDRBLCAweDUwMDA0QSwgMHgwNUQyRjQsCi0JMHg1NEQxMDQsIDB4MDA3MzVDLCAweDM4NTE4NiwgMHgwMDAwMDcsCi0JMHgwMDA2MDYsIDB4MDgwMDA3LCAweDBDMDAwNywgMHgwODAwMDcsCi0JMHgwQTAwMDcsIDB4MDAwMUU1LCAweDAyMDA0NSwgMHgwMDQwMjAsCi0JMHgwMDAwNjAsIDB4MDAwMzY1LCAweDAwMDA0MCwgMHgwMDJFNjUsCi0JMHgwMDFBMjAsIDB4MEExQTYwLCAweDAwMDA0MCwgMHgwMDM0NjUsCi0JMHgwMjAwNDIsIDB4NDIwMDRBLCAweDAwNDAyMCwgMHg0QTAwNEEsCi0JMHgwMDA2MDYsIDB4NTAwMDRBLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAKLX07Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyAgRFMtMUUgQ29udHJvbGxlciBJbnN0cnVjdGlvblJBTSBDb2RlCi0vLwkxOTk5LzA2LzIxCi0vLwlCdWY0NDEgc2xvdCBpcyBFbmFibGVkLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIDA0LzA5ICBjcmVhdAotLy8gMDQvMTIgIHN0b3AgbmlzZSBmaXgKLS8vIDA2LzIxICBXb3JraW5nT2ZmIHRpbW1pbmcKLXN0YXRpYyB1MzIgQ250cmxJbnN0MUVbWURTWEdfQ1RSTExFTkdUSCAvIDRdID0gewotCTB4MDAwMDA3LCAweDI0MDAwNywgMHgwQzAwMDcsIDB4MUMwMDA3LAotCTB4MDYwMDA3LCAweDcwMDAwMiwgMHgwMDAwMjAsIDB4MDMwMDQwLAotCTB4MDA3MTA0LCAweDAwNDI4NiwgMHgwMzAwNDAsIDB4MDAwRjBELAotCTB4MDAwODEwLCAweDIwMDQzQSwgMHgwMDAyODIsIDB4MDAwMjBELAotCTB4MDAwODEwLCAweDIwMDQzQSwgMHgwMDEyODIsIDB4MjAwRTgyLAotCTB4MDA4MDBELCAweDAwMDgxMCwgMHgyMDA0M0EsIDB4MDAxQTgyLAotCTB4MDM0NjBELCAweDAwMDgxMCwgMHgxMDA0M0EsIDB4MDJFQzBELAotCTB4MDAwODEwLCAweDE4MDQzQSwgMHgwMDAxMEQsIDB4MDIwMDE1LAotCTB4MDAwMEZELCAweDAwMDAyMCwgMHgwMzg4NjAsIDB4MDM5MDYwLAotCTB4MDM4MDYwLCAweDAzODA0MCwgMHgwMzgwNDAsIDB4MDM4MDQwLAotCTB4MDE4MDQwLCAweDAwMEE3RCwgMHgwMzgwNDAsIDB4MDM4MDQwLAotCTB4MDE4MDQwLCAweDIwMDQwMiwgMHgwMDA4ODIsIDB4MDgwMDFBLAotCTB4MDAwOTA0LCAweDAxNzE4NiwgMHgwMDAwMDcsIDB4MjYwMDA3LAotCTB4NDAwMDA3LCAweDAwMDAwNywgMHgwMzI1OEQsIDB4MDAwODEwLAotCTB4MTgwNDNBLCAweDI2MDAwNywgMHgyODQ0MDIsIDB4MDAwODdELAotCTB4MDE4MDQyLCAweDAwMTYwQSwgMHgwNUEyMDYsIDB4MDAwMDA3LAotCTB4NDQwMDA3LCAweDAwMjMwRCwgMHgwMDA4MTAsIDB4MDgwNDNBLAotCTB4MjJGQTA2LCAweDAwMDAwNywgMHgwMDA3RkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgwMkFCODYsIDB4MDAwMTk1LAotCTB4MDkwRDA0LCAweDAwMDAwNywgMHgwMDA4MjAsIDB4MDAwMEY1LAotCTB4MDAwQjdELCAweDAxRjA2MCwgMHgwMDAwRkQsIDB4MDMzQTA2LAotCTB4MDE4MDQwLCAweDAwMEE3RCwgMHgwMzgwNDIsIDB4MTM4MDRBLAotCTB4MTgwMDBBLCAweDAwMTgyMCwgMHgwNTkwNjAsIDB4MDU4ODYwLAotCTB4MDE4MDQwLCAweDAwMDBGRCwgMHgwMTgwNDIsIDB4NzAwMDBBLAotCTB4MDAwMTE1LCAweDA3MTE0NCwgMHgwMzNCODYsIDB4MDMwMDAwLAotCTB4MDA3MDIwLCAweDAzNjIwNiwgMHgwMTgwNDAsIDB4MDAzNjBELAotCTB4MDAwODEwLCAweDA4MDQzQSwgMHgyMzIyMDYsIDB4MDAwMDA3LAotCTB4MDJFQzBELCAweDAwMDgxMCwgMHgxODA0M0EsIDB4MDE5QTA2LAotCTB4MDAwMDA3LCAweDI0MDAwNywgMHgwMDBGOEQsIDB4MDAwODEwLAotCTB4MDAxNjNBLCAweDAwMjQwMiwgMHgwMDVDMDIsIDB4MDAyOEZELAotCTB4MDAwMDIwLCAweDAxODA0MCwgMHgwODAwMEQsIDB4MDAwODE1LAotCTB4NTEwOTg0LCAweDAwMDAwNywgMHgwMDAwNEQsIDB4MDAwRTVELAotCTB4MDAwRTAyLCAweDAwNDMwRCwgMHgwMDA4MTAsIDB4MDgwNDNBLAotCTB4MkUxMjA2LCAweDAwMDAwNywgMHgwMDAwOEQsIDB4MDAwOTI0LAotCTB4MDAwRjAyLCAweDAwNDcwRCwgMHgwMDA4MTAsIDB4MDgwNDNBLAotCTB4MkUxMjA2LCAweDAwMDAwNywgMHg0ODA0ODAsIDB4MDAxMjEwLAotCTB4MjgwNDNBLCAweDAwNzc4RCwgMHgwMDA4MTAsIDB4MjgwQzNBLAotCTB4MDAwNjhELCAweDAwMDgxMCwgMHgyODE0M0EsIDB4Mjg0NDAyLAotCTB4MDMyNThELCAweDAwMDgxMCwgMHgxODA0M0EsIDB4MDdGRjhELAotCTB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsIDB4MjYwMDA3LAotCTB4MjAwMDA3LCAweDAwMDJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDA1MTI4NiwgMHgwMDAwMDcsIDB4MjQwMDA3LAotCTB4MDJFQzBELCAweDAwMDgxMCwgMHgxODA0M0EsIDB4MDAzODdELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDEwMTUsIDB4MDEwOTg0LAotCTB4MDE5Qjg2LCAweDAwMDAwNywgMHgwMUIyMDYsIDB4MDAwMDA3LAotCTB4MDAwOEZELCAweDAxODA0MiwgMHgxODAwMEEsIDB4MDAxOTA0LAotCTB4MjJCODg2LCAweDI4MDAwNywgMHgwMDE4MTAsIDB4MjgwNDNBLAotCTB4MjgwQzAyLCAweDAwMDAwRCwgMHgwMDA4MTAsIDB4MjgxNDNBLAotCTB4MDg4MDhELCAweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLAotCTB4MjAwMDA3LCAweDAwMDIwRCwgMHgxODk5MDQsIDB4MDAwMDA3LAotCTB4MDA0MDJELCAweDAwMDBCRCwgMHgwMDAyRkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgwNjVBODYsIDB4MDAwMDA3LAotCTB4MDAwMTAwLCAweDAwMEEyMCwgMHgwMDA0N0QsIDB4MDE4MDQwLAotCTB4MDE4MDQyLCAweDIwMDAwQSwgMHgwMDMwMTUsIDB4MDEyMTQ0LAotCTB4MDM2MTg2LCAweDAwMDAwNywgMHgwMDIxMDQsIDB4MDM2MTg2LAotCTB4MDAwMDA3LCAweDAwMEY4RCwgMHgwMDA4MTAsIDB4MjgwQzNBLAotCTB4MDIzOTQ0LCAweDA3Qzk4NiwgMHgwMDAwMDcsIDB4MDAxODEwLAotCTB4MjgwNDNBLCAweDA4ODEwRCwgMHgwMDA4MjAsIDB4MDAwMkZELAotCTB4MDE4MDQwLCAweDIwMDAwNywgMHgwMDI4MTAsIDB4NzgwMDNBLAotCTB4MDA3ODhELCAweDAwMDgxMCwgMHgwODA0M0EsIDB4MkExMjA2LAotCTB4MDAwMDA3LCAweDAwNDAwRCwgMHgwMDEwMTUsIDB4MTg5OTA0LAotCTB4MjkyOTA0LCAweDM5MzkwNCwgMHgwMDAwMDcsIDB4MDcwMjA2LAotCTB4MDAwMDA3LCAweDAwMDRGNSwgMHgwMDAwN0QsIDB4MDAwMDIwLAotCTB4MDAwMDhELCAweDAxMDg2MCwgMHgwMTgwNDAsIDB4MDAwNDdELAotCTB4MDM4MDQyLCAweDIxODA0QSwgMHgxODAwMEEsIDB4MDIxOTQ0LAotCTB4MjI5MDg2LCAweDAwMDAwNywgMHgwMDQwNzUsIDB4NzFGMTA0LAotCTB4MDAwMDA3LCAweDAxMDA0MiwgMHgyODAwMEEsIDB4MDAyOTA0LAotCTB4MjI1ODg2LCAweDAwMDAwNywgMHgwMDNDMEQsIDB4MzBBOTA0LAotCTB4MDAwMDA3LCAweDAwMDc3RCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDA4REE4NiwgMHgwMDA1N0QsIDB4MDAyODIwLAotCTB4MDNCMDYwLCAweDA4RjIwNiwgMHgwMTgwNDAsIDB4MDAzMDIwLAotCTB4MDNBODYwLCAweDAxODA0MCwgMHgwMDAyRkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgwOEZBODYsIDB4MDAwMDA3LAotCTB4MDAwNTdELCAweDAxODA0MiwgMHgyODA0MEEsIDB4MDAwRThELAotCTB4MDAwODEwLCAweDI4MEMzQSwgMHgwMDAwMEQsIDB4MDAwODEwLAotCTB4MjgxNDNBLCAweDA5MDAwRCwgMHgwMDA4MjAsIDB4MDAwMkZELAotCTB4MDE4MDQwLCAweDIwMDAwNywgMHgwMDNERkQsIDB4MDAwMDIwLAotCTB4MDE4MDQwLCAweDAwMTA3RCwgMHgwMDlEOEQsIDB4MDAwODEwLAotCTB4MDgwNDNBLCAweDJBMTIwNiwgMHgwMDAwMDcsIDB4MDAwODE1LAotCTB4MDgwMDFBLCAweDAxMDk4NCwgMHgwQTUxODYsIDB4MDAxMzdELAotCTB4MjAwNTAwLCAweDI4MEYyMCwgMHgzMzhGNjAsIDB4M0I4RjYwLAotCTB4NDM4RjYwLCAweDRCOEY2MCwgMHg1MzhGNjAsIDB4NUI4RjYwLAotCTB4MDM4QTYwLCAweDAxODA0MCwgMHgwMDEwN0QsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDIxNSwgMHgwMTA5ODQsIDB4M0E4MTg2LAotCTB4MDAwMDA3LCAweDAwN0ZCRCwgMHgzODNEQzQsIDB4MDAwMDA3LAotCTB4MDAxQTdELCAweDAwMTM3NSwgMHgwMTgwNDIsIDB4MDkwMDRBLAotCTB4MTAwMDBBLCAweDBCOEQwNCwgMHgxMzk1MDQsIDB4MDAwMDA3LAotCTB4MDAwODIwLCAweDAxOTA2MCwgMHgwMDExMDQsIDB4MjI1ODg2LAotCTB4MDEwMDQwLCAweDAwMTdGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDIyNUE4NiwgMHgwMDAwMDcsIDB4MDAxOTdELAotCTB4MDM4MDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsIDB4MDAwOTI0LAotCTB4MDAxNjY0LCAweDAwMTFGRCwgMHgwMzgwNDIsIDB4MkI4MDRBLAotCTB4MTk4MDRBLCAweDAwMDA4RCwgMHgyMTg5NDQsIDB4MDAwMDA3LAotCTB4MDAyMjQ0LCAweDBDMTk4NiwgMHgwMDAwMDcsIDB4MDAxQTY0LAotCTB4MDAyQTI0LCAweDAwMTk3RCwgMHgwODAxMDIsIDB4MTAwMTIyLAotCTB4MDAwODIwLCAweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAzREZELAotCTB4MDAwMDhELCAweDAwMDgyMCwgMHgwMTgwNDAsIDB4MDAxMzc1LAotCTB4MDAxQTdELCAweDAxMDA0MiwgMHgwOTgwNEEsIDB4MTAwMDBBLAotCTB4MDAwMjFELCAweDAxODlFNCwgMHgyOTkyRTQsIDB4MzA5MTQ0LAotCTB4MDAwMDA3LCAweDAwMDYwRCwgMHgwMDBBMTUsIDB4MDAwQzFELAotCTB4MDAxMDI1LCAweDAwQTlFNCwgMHgwMTJCRTQsIDB4MDAwNDY0LAotCTB4MDFCM0U0LCAweDAyMzJFNCwgMHgwMDA0NjQsIDB4MDAwNDY0LAotCTB4MDAwNDY0LCAweDAwMDQ2NCwgMHgwMDA0MEQsIDB4MDhCMUM0LAotCTB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMDBCRjUsIDB4MDMwMDQwLAotCTB4MDAxOTdELCAweDAzODA0MiwgMHgwOTgwNEEsIDB4MDAwQTI0LAotCTB4MDgwMDBBLCAweDA4MEU2NCwgMHgwMDAwMDcsIDB4MTAwMTIyLAotCTB4MDAwODIwLCAweDAzMTA2MCwgMHgwMTAwNDAsIDB4MDA2NEFDLAotCTB4MDAwMjdELCAweDAwMDAyMCwgMHgwMTgwNDAsIDB4MDAxMDdELAotCTB4MDE4MDQyLCAweDAwMTFGRCwgMHgzQjgwNEEsIDB4MDk4MDRBLAotCTB4MjAwMDBBLCAweDAwMDA5NSwgMHgxQTExNDQsIDB4MDBBMTQ0LAotCTB4MEU1ODg2LCAweDAwMDQwRCwgMHgwMEI5ODQsIDB4MEU1OTg2LAotCTB4MDAxOEZELCAweDAxODA0MiwgMHgwMDEwRkQsIDB4MDk4MDRBLAotCTB4MjgwMDBBLCAweDAwMDA5NSwgMHgwMTA5MjQsIDB4MDAyQTY0LAotCTB4MEU0OTg2LCAweDAwMDAwNywgMHgwMDI5MDQsIDB4MEU1QTg2LAotCTB4MDAwMDA3LCAweDBFNjIwNiwgMHgwODAwMDIsIDB4MDAwMDhELAotCTB4MDAzODdELCAweDAwMDgyMCwgMHgwMTgwNDAsIDB4MDAxMjdELAotCTB4MDE4MDQyLCAweDEwMDAwQSwgMHgwMDM5MDQsIDB4MEYwOTg2LAotCTB4MDAwODBELCAweDdGRkZCNSwgMHgwMEI5ODQsIDB4MEVEOTg2LAotCTB4MDAwMDI1LCAweDBGQjIwNiwgMHgwMDAwMkQsIDB4MDAwMDE1LAotCTB4MDAwODJELCAweDAyRTAwRCwgMHgwMDA4MjAsIDB4MEZGQTA2LAotCTB4MDAwMDBELCAweDdGODAzNSwgMHgwMEI5ODQsIDB4MEZBOTg2LAotCTB4NDAwMDI1LCAweDAwMDA4RCwgMHgxMTA5NDQsIDB4MDAwMDA3LAotCTB4MDAwMThELCAweDEwOTUwNCwgMHgwMDAwMDcsIDB4MDA5MTY0LAotCTB4MDAwNDI0LCAweDAwMDQyNCwgMHgwMDA0MjQsIDB4MTAwMTAyLAotCTB4MjgwMDAyLCAweDAyREYwRCwgMHgwMDA4MjAsIDB4MEZGQTA2LAotCTB4MDAwMThELCAweDAwMDQyRCwgMHgwMDAwOEQsIDB4MTA5NTA0LAotCTB4MDAwMDA3LCAweDAwMDIwRCwgMHgxMDkxODQsIDB4MDAwMDA3LAotCTB4MDJERjhELCAweDAwMDgyMCwgMHgwMDAwOEQsIDB4MDAzOEZELAotCTB4MDE4MDQwLCAweDAwM0JGRCwgMHgwMDEwMjAsIDB4MDNBODYwLAotCTB4MDAwODE1LCAweDMxMzE4NCwgMHgyMTIxODQsIDB4MDAwMDA3LAotCTB4MDNCMDYwLCAweDAzQTA2MCwgMHgwMTgwNDAsIDB4MDAyMkZELAotCTB4MDAwMDk1LCAweDAxMDkyNCwgMHgwMDA0MjQsIDB4MDAwNDI0LAotCTB4MDAxMjY0LCAweDEwMDEwMiwgMHgwMDA4MjAsIDB4MDM5MDYwLAotCTB4MDE4MDQwLCAweDAwMTkyNCwgMHgwMTBGMEQsIDB4MDAzOTdELAotCTB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsIDB4MDk4NDRBLAotCTB4MDAwNjA2LCAweDA4MDQwQSwgMHgwMDA0MjQsIDB4MDAwNDI0LAotCTB4MDAxMTdELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwQTI0LAotCTB4MjgwNTAyLCAweDI4MEMwMiwgMHgwOTgwMEQsIDB4MDAwODIwLAotCTB4MDAwMkZELCAweDAxODA0MCwgMHgyMDAwMDcsIDB4MDAyMkZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDAwOTUsIDB4MjgwREM0LAotCTB4MDExOTI0LCAweDAwMTk3RCwgMHgwMTgwNDIsIDB4MDAxMUZELAotCTB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDAwQjUsIDB4MTEzMTQ0LAotCTB4MEE4RDA0LCAweDAwMDAwNywgMHgwODBBNDQsIDB4MTI5NTA0LAotCTB4MDAwMDA3LCAweDAwMjNGRCwgMHgwMDEwMjAsIDB4MDM4MDQwLAotCTB4MTAxMjQ0LCAweDAwMDAwNywgMHgwMDA4MjAsIDB4MDM5MDYwLAotCTB4MDE4MDQwLCAweDAwMDJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDEyMzI4NiwgMHgwMDAwMDcsIDB4MDAzQkZELAotCTB4MDAwMTAwLCAweDAwMEExMCwgMHgwQjgwN0EsIDB4MTM4MDRBLAotCTB4MDkwOTg0LCAweDAwMDAwNywgMHgwMDAwOTUsIDB4MDEzRDA0LAotCTB4MTJCODg2LCAweDEwMDAwQSwgMHgxMDAwMDIsIDB4MDkwOTg0LAotCTB4MDAwMDA3LCAweDAzODA0MiwgMHgxMTgwNEEsIDB4MDkwRDA0LAotCTB4MDAwMDA3LCAweDEwMDAwQSwgMHgwOTBEODQsIDB4MDAwMDA3LAotCTB4MDAyNTdELCAweDAwMDgyMCwgMHgwMTgwNDAsIDB4MDAwMTBELAotCTB4MDAwODEwLCAweDI4MTQzQSwgMHgwMDEyN0QsIDB4MDE4MDQyLAotCTB4MjAwMDBBLCAweDAwMTk3RCwgMHgwMTgwNDIsIDB4MDAxMTdELAotCTB4MzE4MDRBLCAweDEwMDAwQSwgMHgwMDMxMjQsIDB4MDEzQjhELAotCTB4MDAzOTdELCAweDAwMDgyMCwgMHgwNTgwNDAsIDB4MDM4MDQyLAotCTB4MDk4NDRBLCAweDAwMDYwNiwgMHgwODA0MEEsIDB4MzAwMTAyLAotCTB4MDAzMTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsIDB4MDAxMjI0LAotCTB4MjgwNTAyLCAweDAwMUE0QywgMHgxNDM5ODYsIDB4NzAwMDAyLAotCTB4MDAwMDJELCAweDAzMDAwMCwgMHgwMDM4N0QsIDB4MDE4MDQyLAotCTB4MTAwMDBBLCAweDE0NjIwNiwgMHgwMDIxMjQsIDB4MDAwMEFELAotCTB4MTAwMDAyLCAweDAwMDEwRCwgMHgwMDA5MjQsIDB4MDA2QjI0LAotCTB4MDE0QTBELCAweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLAotCTB4MDM4MDQyLCAweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLAotCTB4MDAzMjY0LCAweDAwMDA4RCwgMHgwMDBBMjQsIDB4MDAxMDIwLAotCTB4MDAyMjdELCAweDAxODA0MCwgMHgwMTRGOEQsIDB4MDAwODEwLAotCTB4MDgwNDNBLCAweDJCNUEwNiwgMHgwMDAwMDcsIDB4MDAyODIwLAotCTB4MDAyMDdELCAweDAxODA0MCwgMHgwMDExN0QsIDB4MDM4MDQyLAotCTB4MTM4MDRBLCAweDMzODAwQSwgMHgwMDM4N0QsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgxNzcyODYsIDB4MDAwMDA3LAotCTB4MDAwMDhELCAweDAzMDk2NCwgMHgwMTVCMEQsIDB4MDAzOTdELAotCTB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsIDB4MDk4NDRBLAotCTB4MDAwNjA2LCAweDA4MDQwQSwgMHgzODAxMDIsIDB4MDAwNDI0LAotCTB4MDAwNDI0LCAweDAwMTIyNCwgMHgwMDAyRkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgxNURBODYsIDB4MDAwMDA3LAotCTB4MjgwNTAyLCAweDAwMUE0QywgMHgxNzcxODYsIDB4MDAwMDA3LAotCTB4MDMyMTY0LCAweDAwNjMyQywgMHgwMDNERkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDA5NSwgMHgwOTA5MDQsIDB4MDAwMDA3LAotCTB4MDAwODIwLCAweDAwMUE0QywgMHgxNjk5ODYsIDB4MDE4MDQwLAotCTB4MDMwMDAwLCAweDE2QjIwNiwgMHgwMDIxMjQsIDB4MDAwMTBELAotCTB4MDAwOTI0LCAweDAwNkIyNCwgMHgwMTZGMEQsIDB4MDAzOTdELAotCTB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsIDB4MDk4NDRBLAotCTB4MDAwNjA2LCAweDA4MDQwQSwgMHgwMDNBNjQsIDB4MDAwMDk1LAotCTB4MDAxMjI0LCAweDAwMDJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDE3MTI4NiwgMHgwMDAwMDcsIDB4MDE3NjBELAotCTB4MDAwODEwLCAweDA4MDQzQSwgMHgyQjVBMDYsIDB4MDAwMDA3LAotCTB4MTYwQTA2LCAweDAwMDAwNywgMHgwMDcwMjAsIDB4MDgwMTBBLAotCTB4MTAwMTJBLCAweDAwMjBGRCwgMHgwMzg4NjAsIDB4MDM5MDYwLAotCTB4MDE4MDQwLCAweDAwMjI3RCwgMHgwMTgwNDIsIDB4MDAzREZELAotCTB4MDgwMDBBLCAweDMxODQ0QSwgMHgwMDA5MDQsIDB4MTgxMDg2LAotCTB4MTgwMDhCLCAweDAwMDA4RCwgMHgxODk5MDQsIDB4MDAzMTJDLAotCTB4MThFMjA2LCAweDAwMDAwNywgMHgwMDMyNEMsIDB4MTg2Qjg2LAotCTB4MDAwMDA3LCAweDAwMTkwNCwgMHgxODY4ODYsIDB4MDAwMDA3LAotCTB4MDAwMDk1LCAweDE5OTE0NCwgMHgwMDIyMkMsIDB4MDAzMTI0LAotCTB4MDA2MzZDLCAweDAwMEUzRCwgMHgwMDEzNzUsIDB4MDAwQkZELAotCTB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsIDB4MDM4QUVDLAotCTB4MDM5M0VDLCAweDAwMjI0QywgMHgxOEUxODYsIDB4MDAwMDA3LAotCTB4MDAwMDhELCAweDE4OTkwNCwgMHgwMDIyNkMsIDB4MDAzMjJDLAotCTB4MzAwNTBBLCAweDMwMURBQiwgMHgwMDIwODMsIDB4MDAxOEZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMTg5MjQsIDB4MzAwNTAyLAotCTB4MDAxMDgzLCAweDAwMTg3NSwgMHgwMTAwNDIsIDB4MTAwMDBBLAotCTB4MDAwMDhELCAweDAxMDkyNCwgMHgwMDEzNzUsIDB4MzMwNTQyLAotCTB4MzMwQ0NCLCAweDMzMkNDQiwgMHgzMzM0Q0IsIDB4MzMzQ0NCLAotCTB4MzM0NENCLCAweDMzNENDQiwgMHgzMzU0Q0IsIDB4MzA1QzhCLAotCTB4MDA2MDgzLCAweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDE5QjI4NiwgMHgwMDAwMDcsIDB4MDAxRTJELAotCTB4MDAwNUZELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDI4OTI0LAotCTB4MjgwNTAyLCAweDAwMDYwRCwgMHgwMDA4MTAsIDB4MjgwQzNBLAotCTB4MDAwMDhELCAweDAwMDgxMCwgMHgyODE0M0EsIDB4MEE4MDhELAotCTB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsIDB4MjIwMDA3LAotCTB4MDAxMjc1LCAweDAzMDA0MiwgMHgyMTAwNEEsIDB4MDAwMDhELAotCTB4MUEwOTQ0LCAweDAwMDAwNywgMHgwMUFCOEQsIDB4MDAwODEwLAotCTB4MDgwNDNBLCAweDJDQUEwNiwgMHgwMDAwMDcsIDB4MDAwMUY1LAotCTB4MDMwMDQyLCAweDBEMDA0QSwgMHgxMDAwMEEsIDB4MDg5MTQ0LAotCTB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMTAwNDAsIDB4MDAyNUY1LAotCTB4MEEzMTQ0LCAweDAwMDAwNywgMHgwMDA4MjAsIDB4MDMyODYwLAotCTB4MDMwMDQwLCAweDAwMjE3RCwgMHgwMzgwNDIsIDB4MEI4MDRBLAotCTB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsIDB4MDMwMDQwLAotCTB4MDAwMDhELCAweDAwMDEyNCwgMHgwMDAxMkMsIDB4MDAwRTY0LAotCTB4MDAxQTY0LCAweDAwNjM2QywgMHgwODAxMEEsIDB4MTAwMTJBLAotCTB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsIDB4MDAyMEZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDIyN0QsIDB4MDE4MDQyLAotCTB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsIDB4MDMwMDQwLAotCTB4MDAxOTdELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAyMkZELAotCTB4MDM4MDQyLCAweDEwMDAwQSwgMHgwMDA4MjAsIDB4MDMxMDYwLAotCTB4MDMwMDQwLCAweDA5MEQwNCwgMHgwMDAwMDcsIDB4MDAwODIwLAotCTB4MDMwMDQwLCAweDAzODA0MiwgMHgwQjgwNEEsIDB4MTAwMDBBLAotCTB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsIDB4MDM4MDQyLAotCTB4MTM4MDRBLCAweDE5ODA0QSwgMHgxMTBEMDQsIDB4MTk4RDA0LAotCTB4MDAwMDA3LCAweDA4MDAwQSwgMHgwMDEwMjAsIDB4MDMxODYwLAotCTB4MDMwODYwLCAweDAzMDA0MCwgMHgwMDAwOEQsIDB4MEIwOTQ0LAotCTB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMTAwNDAsIDB4MDAwNUY1LAotCTB4MDMwMDQyLCAweDA4MDAwQSwgMHgwMDA4MjAsIDB4MDEwMDQwLAotCTB4MDAwMEY1LCAweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4MUQ5ODg2LCAweDAwMUU3NSwgMHgwMzAwNDIsIDB4MDEwNDRBLAotCTB4MDAwQzBBLCAweDFEQUEwNiwgMHgwMDAwMDcsIDB4MDAwNDAyLAotCTB4MDAwQzAyLCAweDAwMTc3RCwgMHgwMDFBRjUsIDB4MDE4MDQyLAotCTB4MDMxNDRBLCAweDAzMUM0QSwgMHgwMzI0NEEsIDB4MDMyQzRBLAotCTB4MDMzNDRBLCAweDAzM0M0QSwgMHgwMzQ0NEEsIDB4MDA0QzBBLAotCTB4MDAwNDNELCAweDAwMTNGNSwgMHgwMDFBRkQsIDB4MDMwMDQyLAotCTB4MEIwMDRBLCAweDFCODA0QSwgMHgxMzgwNEEsIDB4MjAwMDBBLAotCTB4MDg5MTQ0LCAweDE5QTE0NCwgMHgwMzg5RTQsIDB4MDM5OUVDLAotCTB4MDA1NTAyLCAweDAwNUQwQSwgMHgwMzAwNDIsIDB4MEIwMDRBLAotCTB4MUI4MDRBLCAweDEzODA0QSwgMHgyMDAwMEEsIDB4MDg5MTQ0LAotCTB4MTlBMTQ0LCAweDAzODlFNCwgMHgwMzk5RUMsIDB4MDA2NTAyLAotCTB4MDA2RDBBLCAweDAzMDA0MiwgMHgwQjAwNEEsIDB4MTkwMDRBLAotCTB4MkI4MDRBLCAweDEzODA0QSwgMHgyMTgwNEEsIDB4MzAwMDBBLAotCTB4MDg5MTQ0LCAweDE5QTE0NCwgMHgyQUIxNDQsIDB4MDM4OUU0LAotCTB4MDM5OUVDLCAweDAwNzUwMiwgMHgwMDdEMEEsIDB4MDNBOUU0LAotCTB4MDAwNzAyLCAweDAwMTA3RCwgMHgwMDA0MTUsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAxMDlFNCwgMHgwMDBGMDIsIDB4MDAyQUY1LAotCTB4MDAxOUZELCAweDAxMDA0MiwgMHgwOTgwNEEsIDB4MTAwMDBBLAotCTB4MDAwOTM0LCAweDAwMTY3NCwgMHgwMDI5RjUsIDB4MDEwMDQyLAotCTB4MTAwMDBBLCAweDAwOTE3QywgMHgwMDIwNzUsIDB4MDEwMDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgyMDBBODYsIDB4MDAyNkY1LAotCTB4MDAyN0Y1LCAweDAzMDA0MiwgMHgwOTAwNEEsIDB4MTAwMDBBLAotCTB4MDAwQTNDLCAweDAwMTY3QywgMHgwMDFBNzUsIDB4MDAwQkZELAotCTB4MDEwMDQyLCAweDUxODA0QSwgMHg0ODAwMEEsIDB4MTYwMDA3LAotCTB4MDAxMDc1LCAweDAxMDA0MiwgMHgyODJDMEEsIDB4MjgxRDEyLAotCTB4MjgyNTEyLCAweDAwMUYzMiwgMHgxRTAwMDcsIDB4MEUwMDA3LAotCTB4MDAxOTc1LCAweDAxMDA0MiwgMHgwMDJERjUsIDB4MEQwMDRBLAotCTB4MTAwMDBBLCAweDAwOTE0NCwgMHgyMEVBODYsIDB4MDEwMDQyLAotCTB4MjgzNDBBLCAweDAwMEU1RCwgMHgwMDAwOEQsIDB4MDAwMzc1LAotCTB4MDAwODIwLCAweDAxMDA0MCwgMHgwNUQyRjQsIDB4NTREMTA0LAotCTB4MDA3MzVDLCAweDIxOEI4NiwgMHgwMDAwMDcsIDB4MEMwMDA3LAotCTB4MDgwMDA3LCAweDBBMDAwNywgMHgwMjE3OEQsIDB4MDAwODEwLAotCTB4MDgwNDNBLCAweDM0QjIwNiwgMHgwMDAwMDcsIDB4MjE5MjA2LAotCTB4MDAwMDA3LCAweDA4MDAwNywgMHgwMDIyNzUsIDB4MDEwMDQyLAotCTB4MjAwMDBBLCAweDAwMjEwNCwgMHgyMjU4ODYsIDB4MDAxRTJELAotCTB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4MjFDQTg2LCAweDAwMDAwNywgMHgwMDIwMTAsIDB4MzAwNDNBLAotCTB4MDAwNTdELCAweDAxODBDMywgMHgwODAwMEEsIDB4MDI4OTI0LAotCTB4MjgwNTAyLCAweDI4MEMwMiwgMHgwQTgxMEQsIDB4MDAwODIwLAotCTB4MDAwMkY1LCAweDAxMDA0MCwgMHgyMjAwMDcsIDB4MDAwNEZELAotCTB4MDE4MDQyLCAweDcwMDAwQSwgMHgwMzAwMDAsIDB4MDA3MDIwLAotCTB4MDdGQTA2LCAweDAxODA0MCwgMHgwMjJCOEQsIDB4MDAwODEwLAotCTB4MDgwNDNBLCAweDJDQUEwNiwgMHgwMDAwMDcsIDB4MDAwMkZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjJDMjg2LAotCTB4MDAwMDA3LCAweDAyMDIwNiwgMHgwMDAwMDcsIDB4MDAwODc1LAotCTB4MDAwOUZELCAweDAwMDEwRCwgMHgyMzQyMDYsIDB4MDAwMjk1LAotCTB4MDAwQjc1LCAweDAwMDk3RCwgMHgwMDAwMEQsIDB4MDAwNTE1LAotCTB4MDEwMDQyLCAweDE4MDAwQSwgMHgwMDE5MDQsIDB4MkEwMDg2LAotCTB4MDAwNkY1LCAweDAwMTAyMCwgMHgwMTAwNDAsIDB4MDAwNEY1LAotCTB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDA3NzUsIDB4MDEwMDQyLAotCTB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDExMjQsIDB4MDAwOTA0LAotCTB4MjNGMjg2LCAweDAwMDgxNSwgMHgwODAxMDIsIDB4MTAxMjA0LAotCTB4MjQxMjA2LCAweDAwMDU3NSwgMHgwODEyMDQsIDB4MDAwMDA3LAotCTB4MTAwMTAyLCAweDAwMDU3NSwgMHgwMDA0MjUsIDB4MDIxMTI0LAotCTB4MTAwMTAyLCAweDAwMDgyMCwgMHgwMzEwNjAsIDB4MDEwMDQwLAotCTB4MDAxOTI0LCAweDJBMDA4NiwgMHgwMDAwOEQsIDB4MDAwNDY0LAotCTB4MDA5RDA0LCAweDI5MTA4NiwgMHgxODAxMDIsIDB4MDAwNTc1LAotCTB4MDEwMDQyLCAweDI4MDQwQSwgMHgwMDAxOEQsIDB4MDAwOTI0LAotCTB4MjgwRDAyLCAweDAwMDAwRCwgMHgwMDA5MjQsIDB4MjgxNTAyLAotCTB4MTAwMDBELCAweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLAotCTB4MjAwMDA3LCAweDAwMTE3NSwgMHgwMDAyRkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgyNEZBODYsIDB4MDAwMDA3LAotCTB4MDAwMTAwLCAweDA4MEIyMCwgMHgxMzBCNjAsIDB4MUIwQjYwLAotCTB4MDMwQTYwLCAweDAxMDA0MCwgMHgwNTAwNDIsIDB4M0QwMDRBLAotCTB4MzUwMDRBLCAweDJEMDA0QSwgMHgyMDAwMEEsIDB4MDAwNkY1LAotCTB4MDEwMDQyLCAweDI4MTQwQSwgMHgwMDA0RjUsIDB4MDEwMDQyLAotCTB4MDgwMDBBLCAweDAwMDMxNSwgMHgwMTBEMDQsIDB4MjYwMjg2LAotCTB4MDA0MDE1LCAweDAwMDA5NSwgMHgwMTBEMDQsIDB4MjVGMDg2LAotCTB4MTAwMDIyLCAweDEwMDAyQSwgMHgyNjFBMDYsIDB4MDAwMDA3LAotCTB4MzMzMTA0LCAweDJBQTkwNCwgMHgwMDAwMDcsIDB4MDMyMTI0LAotCTB4MjgwNTAyLCAweDI4NDQwMiwgMHgwMDExMjQsIDB4NDAwMTAyLAotCTB4MDAwNDI0LCAweDAwMDQyNCwgMHgwMDMyMjQsIDB4MDAyOTJDLAotCTB4MDA2MzZDLCAweDI3NzM4NiwgMHgwMDAwMDcsIDB4MDJCMTY0LAotCTB4MDAwNDY0LCAweDAwMDQ2NCwgMHgwMDAwOEQsIDB4MDAwQTY0LAotCTB4MjgwRDAyLCAweDEwMDA4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LAotCTB4MDEwMDQwLCAweDIyMDAwNywgMHgwMDAwOEQsIDB4MzhCOTA0LAotCTB4MDAwMDA3LCAweDAzMjk2QywgMHgzMDAxMEEsIDB4MDAwMkY1LAotCTB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjcwMjg2LAotCTB4MDAwMDA3LCAweDAwMjEyQywgMHgyODA1MEEsIDB4MDAzMTZDLAotCTB4MDAwNDZDLCAweDAwMDQ2QywgMHgyODQ1MEEsIDB4MDAxMTI0LAotCTB4MDA2QjY0LCAweDEwMDEwMiwgMHgwMDAwOEQsIDB4MDEwOTZDLAotCTB4MjgwRDBBLCAweDEwMDEwRCwgMHgwMDA4MjAsIDB4MDAwMkY1LAotCTB4MDEwMDQwLCAweDIyMDAwNywgMHgwMDQxMjQsIDB4MDAwNDI0LAotCTB4MDAwNDI0LCAweDAwMzIyNCwgMHgzMDAxMDIsIDB4MDMyOTQ0LAotCTB4MjdGQTg2LCAweDAwMDAwNywgMHgzMDAwMDIsIDB4MDAwNEY1LAotCTB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDAzMTUsIDB4MDEwRDA0LAotCTB4Mjg0MDg2LCAweDAwMzEyNCwgMHgwMDA0NjQsIDB4MzAwMTAyLAotCTB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4Mjg0QTg2LCAweDAwMDAwNywgMHgyODQ0MDIsIDB4MDAzMTI0LAotCTB4MzAwNTAyLCAweDAwMzkyNCwgMHgzMDA1ODMsIDB4MDAwODgzLAotCTB4MDAwNUY1LCAweDAxMDA0MiwgMHgyODA0MEEsIDB4MDAwMDhELAotCTB4MDA4MTI0LCAweDI4MEQwMiwgMHgwMDAwOEQsIDB4MDA4MTI0LAotCTB4MjgxNTAyLCAweDEwMDE4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LAotCTB4MDEwMDQwLCAweDIyMDAwNywgMHgwMDEwMjUsIDB4MDAwNTc1LAotCTB4MDMwMDQyLCAweDA5MDA0QSwgMHgxMDAwMEEsIDB4MEEwOTA0LAotCTB4MTIxMTA0LCAweDAwMDAwNywgMHgwMDEwMjAsIDB4MDUwODYwLAotCTB4MDUwMDQwLCAweDAwMDZGRCwgMHgwMTgwNDIsIDB4MDkwMDRBLAotCTB4MTAwMDBBLCAweDAwMDBBNSwgMHgwQTA5MDQsIDB4MTIxMTA0LAotCTB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMTkwNjAsIDB4MDEwMDQwLAotCTB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4MjlDQTg2LCAweDAwMDAwNywgMHgyNDQyMDYsIDB4MDAwMDA3LAotCTB4MDAwNjA2LCAweDAwMDAwNywgMHgwMDAyRjUsIDB4MDEwMDQyLAotCTB4MDgwMDBBLCAweDAwMDkwNCwgMHgyQTFBODYsIDB4MDAwMDA3LAotCTB4MDAwMTAwLCAweDA4MEIyMCwgMHgxMzhCNjAsIDB4MUI4QjYwLAotCTB4MjM4QjYwLCAweDJCOEI2MCwgMHgzMzhCNjAsIDB4M0I4QjYwLAotCTB4NDM4QjYwLCAweDRCOEI2MCwgMHg1MzhCNjAsIDB4NUI4QjYwLAotCTB4NjM4QjYwLCAweDZCOEI2MCwgMHg3MzhCNjAsIDB4N0I4QjYwLAotCTB4MDM4RjYwLCAweDBCOEY2MCwgMHgxMzhGNjAsIDB4MUI4RjYwLAotCTB4MjM4RjYwLCAweDJCOEY2MCwgMHgzMzhGNjAsIDB4M0I4RjYwLAotCTB4NDM4RjYwLCAweDRCOEY2MCwgMHg1MzhGNjAsIDB4NUI4RjYwLAotCTB4NjM4RjYwLCAweDZCOEY2MCwgMHg3MzhGNjAsIDB4N0I4RjYwLAotCTB4MDM4QTYwLCAweDAwMDYwNiwgMHgwMTgwNDAsIDB4MDAwMDhELAotCTB4MDAwQTY0LCAweDI4MEQwMiwgMHgwMDBBMjQsIDB4MDAwMjdELAotCTB4MDE4MDQyLCAweDEwMDAwQSwgMHgwMDEyMjQsIDB4MDAwM0ZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkMwQTg2LAotCTB4MDAwMDA3LCAweDAwMDE4RCwgMHgwMDBBMjQsIDB4MDAwNDY0LAotCTB4MDAwNDY0LCAweDA4MDEwMiwgMHgwMDA5MjQsIDB4MDAwNDI0LAotCTB4MDAwNDI0LCAweDEwMDEwMiwgMHgwMjAwMEQsIDB4MDA5MTQ0LAotCTB4MkM2MTg2LCAweDAwMDAwNywgMHgwMDAxRkQsIDB4MDE4MDQyLAotCTB4MDgwMDBBLCAweDAwMEE0NCwgMHgyQzQzODYsIDB4MDE4MDQyLAotCTB4MEEwMDBELCAweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLAotCTB4MjAwMDA3LCAweDAwMDI3RCwgMHgwMDEwMjAsIDB4MDAwNjA2LAotCTB4MDE4MDQwLCAweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDJDQjI4NiwgMHgwMDAwMDcsIDB4MDAwMzdELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkNFMjg2LAotCTB4MDAwMDA3LCAweDAwMDA3NSwgMHgwMDJFN0QsIDB4MDEwMDQyLAotCTB4MEI4MDRBLCAweDAwMDAyMCwgMHgwMDA5MDQsIDB4MDAwNjg2LAotCTB4MDEwMDQwLCAweDMxODQ0QSwgMHgzMDA0OEIsIDB4MDAwODgzLAotCTB4MDAwMDhELCAweDAwMDgxMCwgMHgyODE0M0EsIDB4MDAwMDhELAotCTB4MDAwODEwLCAweDI4MEMzQSwgMHgwMDA2NzUsIDB4MDEwMDQyLAotCTB4MDgwMDBBLCAweDAwMzgxNSwgMHgwMTA5MjQsIDB4MjgwNTAyLAotCTB4MEIwMDBELCAweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLAotCTB4MDAwNjA2LCAweDIyMDAwNywgMHgwMDA0NjQsIDB4MDAwNDY0LAotCTB4MDAwNjA2LCAweDAwMDAwNywgMHgwMDAxMzQsIDB4MDA3RjhELAotCTB4MDAwOTNDLCAweDI4MUQxMiwgMHgyODI1MTIsIDB4MDAxRjMyLAotCTB4MEUwMDA3LCAweDAwMDEwRCwgMHgwMDAzN0QsIDB4MDAwODIwLAotCTB4MDE4MDQwLCAweDA1RDJGNCwgMHgwMDAwMDcsIDB4MDgwMDA3LAotCTB4MDAwMzdELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4MkU4QTg2LCAweDAwMDAwNywgMHgwMDA2MDYsIDB4MDAwMDA3LAotCTB4MDAwMDA3LCAweDAwMDAxMiwgMHgxMDAwMDcsIDB4MzIwMDA3LAotCTB4NjAwMDA3LCAweDQ2MDAwNywgMHgxMDAwODAsIDB4NDgwMDFBLAotCTB4MDA0OTA0LCAweDJFRjE4NiwgMHgwMDAwMDcsIDB4MDAxMjEwLAotCTB4NTgwMDNBLCAweDAwMDE0NSwgMHg1QzVEMDQsIDB4MDAwMDA3LAotCTB4MDAwMDgwLCAweDQ4MDAxQSwgMHgwMDQ5MDQsIDB4MkY0MTg2LAotCTB4MDAwMDA3LCAweDAwMTIxMCwgMHg1MDAwM0EsIDB4MDA1OTA0LAotCTB4MkY5ODg2LCAweDAwMDA0NSwgMHgwMDAwQzUsIDB4N0ZGRkY1LAotCTB4N0ZGRjdELCAweDA3RDUyNCwgMHgwMDQyMjQsIDB4NTAwMTAyLAotCTB4MjAwNTAyLCAweDAwMDA4MiwgMHg0MDAwMUEsIDB4MDA0MTA0LAotCTB4MkZDOTg2LCAweDAwMDAwNywgMHgwMDM4NjUsIDB4NDAwMDFBLAotCTB4MDA0MDIwLCAweDAwMTA0RCwgMHgwNEMxODQsIDB4MzFBQjg2LAotCTB4MDAwMDQwLCAweDA0MDAwNywgMHgwMDAxNjUsIDB4MDAwMTQ1LAotCTB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDA3NjUsIDB4MDgwMDgwLAotCTB4NDAwMDFBLCAweDAwNDEwNCwgMHgzMDU5ODYsIDB4MDAwMDA3LAotCTB4MDAxMjEwLCAweDQwMDAzQSwgMHgwMDQxMDQsIDB4MzBCMjg2LAotCTB4MDAwMDRELCAweDAwMDBDRCwgMHgwMDQ4MTAsIDB4MjAwNDNBLAotCTB4MDAwODgyLCAweDQwMDAxQSwgMHgwMDQxMDQsIDB4MzBDMTg2LAotCTB4MDAwMDA3LCAweDAwNDgyMCwgMHgwMDU5MDQsIDB4MzE5ODg2LAotCTB4MDAwMDQwLCAweDAwMDdFNSwgMHgyMDA0ODAsIDB4MjgxNkEwLAotCTB4MzIxNkUwLCAweDNBMTZFMCwgMHg0MjE2RTAsIDB4MDIxMjYwLAotCTB4MDAwMDQwLCAweDAwMDAzMiwgMHg0MDAwNzUsIDB4MDAwMDdELAotCTB4MDdENTc0LCAweDIwMDUxMiwgMHgwMDAwODIsIDB4NDAwMDFBLAotCTB4MDA0MTA0LCAweDMxNzE4NiwgMHgwMDAwMDcsIDB4MDM4QTA2LAotCTB4NjQwMDA3LCAweDAwMDBFNSwgMHgwMDAwMjAsIDB4MDAwMDQwLAotCTB4MDAwQTY1LCAweDAwMDAyMCwgMHgwMjAwNDAsIDB4MDIwMDQwLAotCTB4MDAwMDQwLCAweDAwMDE2NSwgMHgwMDAwNDIsIDB4NzAwMDBBLAotCTB4MDA3MTA0LCAweDMyMzI4NiwgMHgwMDAwMDcsIDB4MDYwMDA3LAotCTB4MDE5QTA2LCAweDY0MDAwNywgMHgwNTAwMDAsIDB4MDA3MDIwLAotCTB4MDAwMDQwLCAweDAzOEEwNiwgMHg2NDAwMDcsIDB4MDAwMDA3LAotCTB4MDAzMDZELCAweDAyODg2MCwgMHgwMjkwNjAsIDB4MDgwMDBBLAotCTB4MDI4ODYwLCAweDAwODA0MCwgMHgxMDAwMTIsIDB4MDAxMDBELAotCTB4MDA5MTg0LCAweDMyRDE4NiwgMHgwMDBFMEQsIDB4MDA5MTg0LAotCTB4MzNFMTg2LCAweDAwMDAwNywgMHgzMDAwMDcsIDB4MDAxMDIwLAotCTB4MDAzQjZELCAweDAwODA0MCwgMHgwMDAwODAsIDB4MDgwMDFBLAotCTB4MDAwOTA0LCAweDMyRjE4NiwgMHgwMDAwMDcsIDB4MDAxMjIwLAotCTB4MDAwREVELCAweDAwODA0MCwgMHgwMDgwNDIsIDB4MTAwMDBBLAotCTB4NDAwMDBELCAweDEwOTU0NCwgMHgwMDAwMDcsIDB4MDAxMDIwLAotCTB4MDAwREVELCAweDAwODA0MCwgMHgwMDgwNDIsIDB4MjAwNDBBLAotCTB4MDAwMDgyLCAweDA4MDAxQSwgMHgwMDA5MDQsIDB4MzM4MTg2LAotCTB4MDAwMDA3LCAweDAwM0I2RCwgMHgwMDgwNDIsIDB4MDgwMDBBLAotCTB4MDAwRTE1LCAweDAxMDk4NCwgMHgzNDJCODYsIDB4NjAwMDA3LAotCTB4MDgwMDFBLCAweDAwMEMxNSwgMHgwMTA5ODQsIDB4MzQxMzg2LAotCTB4MDAwMDIwLCAweDFBMDAwNywgMHgwMDAyRUQsIDB4MDA4MDQwLAotCTB4NjIwMDA3LCAweDAwMzA2RCwgMHgwMjgwNDIsIDB4MEE4MDRBLAotCTB4MDAwODIwLCAweDBBODA0QSwgMHgwMDA2MDYsIDB4MTA4MDRBLAotCTB4MDAwMDA3LCAweDI4MjUxMiwgMHgwMDFGMzIsIDB4MDVEMkY0LAotCTB4NTREMTA0LCAweDAwNzM1QywgMHgwMDA3ODYsIDB4MDAwMDA3LAotCTB4MEMwMDA3LCAweDBBMDAwNywgMHgxQzAwMDcsIDB4MDAzNDY1LAotCTB4MDIwMDQwLCAweDAwNDgyMCwgMHgwMjUwNjAsIDB4NDAwMDBBLAotCTB4MDI0MDYwLCAweDAwMDA0MCwgMHg0NTQ5NDQsIDB4MDAwMDA3LAotCTB4MDA0MDIwLCAweDAwM0FFNSwgMHgwMDAwNDAsIDB4MDAyOEU1LAotCTB4MDAwMDQyLCAweDQ4MDAwQSwgMHgwMDQ5MDQsIDB4MzlGODg2LAotCTB4MDAyQzY1LCAweDAwMDA0MiwgMHg0MDAwMEEsIDB4MDAwMEQ1LAotCTB4NDU0MTA0LCAweDAwMDAwNywgMHgwMDA2NTUsIDB4MDU0NTA0LAotCTB4MzY4Mjg2LCAweDAwMDFENSwgMHgwNTQ1MDQsIDB4MzY4MDg2LAotCTB4MDAyQjY1LCAweDAwMDA0MiwgMHgwMDNBRTUsIDB4NTAwMDRBLAotCTB4NDAwMDBBLCAweDQ1QzNENCwgMHgwMDAwMDcsIDB4NDU0NTA0LAotCTB4MDAwMDA3LCAweDAwMDBDRCwgMHg0NDQ5NDQsIDB4MDAwMDA3LAotCTB4NDU0NTA0LCAweDAwMDAwNywgMHgwMDAxNEQsIDB4NTU0OTQ0LAotCTB4MDAwMDA3LCAweDA0NTE0NCwgMHgzNjc5ODYsIDB4MDAyQzY1LAotCTB4MDAwMDQyLCAweDQ4MDAwQSwgMHg0Q0QxMDQsIDB4MDAwMDA3LAotCTB4MDRDMTQ0LCAweDM2ODM4NiwgMHgwMDAwMDcsIDB4MTYwMDA3LAotCTB4MDAyQ0U1LCAweDA0MDA0MiwgMHg0MDAwMEEsIDB4MDA0MDIwLAotCTB4MDAwMDQwLCAweDAwMjk2NSwgMHgwMDAwNDIsIDB4NDAwMDBBLAotCTB4MDA0MTA0LCAweDM2RjA4NiwgMHgwMDAwMDcsIDB4MDAyNDAyLAotCTB4MzgzMjA2LCAweDAwNUMwMiwgMHgwMDI1RTUsIDB4MDAwMDQyLAotCTB4NDAwMDBBLCAweDAwNDI3NCwgMHgwMDJBRTUsIDB4MDAwMDQyLAotCTB4NDAwMDBBLCAweDAwNDI3NCwgMHg1MDAxMTIsIDB4MDAyOUU1LAotCTB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDQyMzQsIDB4NDU0MTA0LAotCTB4MDAwMDA3LCAweDAwNDAyMCwgMHgwMDAwNDAsIDB4MDAzRUU1LAotCTB4MDAwMDIwLCAweDAwMDA0MCwgMHgwMDJERTUsIDB4NDAwMTUyLAotCTB4NTAwMDBBLCAweDA0NTE0NCwgMHgzN0RBODYsIDB4MDAwMEM1LAotCTB4MDAzRUU1LCAweDAwNDAyMCwgMHgwMDAwNDAsIDB4MDAyQkU1LAotCTB4MDAwMDQyLCAweDQwMDAwQSwgMHg0MDQyNTQsIDB4MDAwMDA3LAotCTB4MDAyQUU1LCAweDAwNDAyMCwgMHgwMDAwNDAsIDB4NTAwMTMyLAotCTB4MDQwMTM0LCAweDAwNTY3NCwgMHgwMDI5RTUsIDB4MDIwMDQyLAotCTB4NDIwMDBBLCAweDAwMDA0MiwgMHg1MDAwMEEsIDB4MDU0MTdDLAotCTB4MDAyOEU1LCAweDAwMDA0MiwgMHg0ODAwMEEsIDB4MDAwMEM1LAotCTB4NENDMTQ0LCAweDM4QTA4NiwgMHgwMDI2RTUsIDB4MDAyN0U1LAotCTB4MDIwMDQyLCAweDQwMDA0QSwgMHg1MDAwMEEsIDB4MDA0MjNDLAotCTB4MDA1NjdDLCAweDAwMjhFNSwgMHgwMDQ4MjAsIDB4MDAwMDQwLAotCTB4MjgxRDEyLCAweDI4MjUxMiwgMHgwMDFGNzIsIDB4MDAyOTY1LAotCTB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDQxMDQsIDB4MzkzQTg2LAotCTB4MEUwMDA3LCAweDE2MDAwNywgMHgxRTAwMDcsIDB4MDAzRUU1LAotCTB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDQxMDQsIDB4Mzk3ODg2LAotCTB4MDAyRDY1LCAweDAwMDA0MiwgMHgyODM0MEEsIDB4MDAzNDY1LAotCTB4MDIwMDQyLCAweDQyMDA0QSwgMHgwMDQwMjAsIDB4NEEwMDRBLAotCTB4NTAwMDRBLCAweDA1RDJGNCwgMHg1NEQxMDQsIDB4MDA3MzVDLAotCTB4MzlFMTg2LCAweDAwMDAwNywgMHgwMDA2MDYsIDB4MDgwMDA3LAotCTB4MEMwMDA3LCAweDA4MDAwNywgMHgwQTAwMDcsIDB4MDAwMUU1LAotCTB4MDIwMDQ1LCAweDAwNDAyMCwgMHgwMDAwNjAsIDB4MDAwMzY1LAotCTB4MDAwMDQwLCAweDAwMkU2NSwgMHgwMDFBMjAsIDB4MEExQTYwLAotCTB4MDAwMDQwLCAweDAwMzQ2NSwgMHgwMjAwNDIsIDB4NDIwMDRBLAotCTB4MDA0MDIwLCAweDRBMDA0QSwgMHgwMDA2MDYsIDB4NTAwMDRBLAotCTB4MDAxN0ZELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4MjI1QTg2LCAweDAwMDAwNywgMHgwMDEwN0QsIDB4MDE4MDQyLAotCTB4MDAxMUZELCAweDMzODA0QSwgMHgxOTgwNEEsIDB4MjAwMDBBLAotCTB4MDAwMDk1LCAweDJBMTE0NCwgMHgwMUExNDQsIDB4M0I5MDg2LAotCTB4MDAwNDBELCAweDAwQjE4NCwgMHgzQjkxODYsIDB4MDAxOEZELAotCTB4MDE4MDQyLCAweDAwMTBGRCwgMHgwOTgwNEEsIDB4MzgwMDBBLAotCTB4MDAwMDk1LCAweDAxMDkyNCwgMHgwMDNBNjQsIDB4M0I4MTg2LAotCTB4MDAwMDA3LCAweDAwMzkwNCwgMHgzQjkyODYsIDB4MDAwMDA3LAotCTB4M0I5QTA2LCAweDAwMDAwRCwgMHgwMDAwOEQsIDB4MDAwODIwLAotCTB4MDAzODdELCAweDAxODA0MCwgMHg3MDAwMDIsIDB4MDAxMTdELAotCTB4MDE4MDQyLCAweDAwMTk3RCwgMHgyOTgwNEEsIDB4MzAwMDBBLAotCTB4MzgwMDAyLCAweDAwMzEyNCwgMHgwMDA0MjQsIDB4MDAwNDI0LAotCTB4MDAyQTI0LCAweDI4MDUwMiwgMHgwMDA2OEQsIDB4MDAwODEwLAotCTB4MjgxNDNBLCAweDAwNzUwRCwgMHgwMEIxMjQsIDB4MDAyMjY0LAotCTB4M0QwMzg2LCAweDI4NDQwMiwgMHgwMDA4MTAsIDB4MjgwQzNBLAotCTB4MEI4MDBELCAweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLAotCTB4MjAwMDA3LCAweDAwNzU4RCwgMHgwMEIxMjQsIDB4MTAwMTAyLAotCTB4MDEyMTQ0LCAweDNFNDk4NiwgMHgwMDE4MTAsIDB4MTAwMDNBLAotCTB4MDAzODdELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4M0U0ODg2LCAweDAzMDAwMCwgMHgzRTRBMDYsIDB4MDAwMEJELAotCTB4MDAwMDhELCAweDAyMzE2NCwgMHgwMDBBNjQsIDB4MjgwRDAyLAotCTB4MEI4MDhELCAweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLAotCTB4MjAwMDA3LCAweDAwMzg3RCwgMHgwMTgwNDIsIDB4MDgwMDBBLAotCTB4MDAwOTA0LCAweDNFMzI4NiwgMHgwMzAwMDAsIDB4MDAwMkZELAotCTB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsIDB4M0Q4Mjg2LAotCTB4MDAwMDA3LCAweDAwMjgxMCwgMHgyODA0M0EsIDB4MDA3NTBELAotCTB4MDMwOTI0LCAweDAwMjI2NCwgMHgyODBEMDIsIDB4MDIzMTZDLAotCTB4Mjg0NTBBLCAweDBCODEwRCwgMHgwMDA4MjAsIDB4MDAwMkZELAotCTB4MDE4MDQwLCAweDIwMDAwNywgMHgwMDAwOEQsIDB4MDAwQTI0LAotCTB4M0U0QTA2LCAweDEwMDEwMiwgMHgwMDE4MTAsIDB4MTAwMDNBLAotCTB4MDAwMEJELCAweDAwMzgxMCwgMHgzMDA0M0EsIDB4MDAxODdELAotCTB4MDE4MDQyLCAweDAwMThGRCwgMHgwOTgwNEEsIDB4MjAwMDBBLAotCTB4MDAwMEFELCAweDAyODkyNCwgMHgwNzIxMkMsIDB4MDAxMDEwLAotCTB4MzAwNTgzLCAweDMwMEQ4QiwgMHgzMDE0QkIsIDB4MzAxQzgzLAotCTB4MDAyMDgzLCAweDAwMTM3RCwgMHgwMzgwNDIsIDB4MzM4NDRBLAotCTB4MzNBQ0NCLCAweDMzQjRDQiwgMHgzM0JDQ0IsIDB4MzNDNENCLAotCTB4MzNDQ0NCLCAweDMzRDRDQiwgMHgzMDVDOEIsIDB4MDA2MDgzLAotCTB4MDAxRTBELCAweDAwMDVGRCwgMHgwMTgwNDIsIDB4MjAwMDBBLAotCTB4MDIwOTI0LCAweDAwMDY4RCwgMHgwMEE5NkMsIDB4MDAwMDlELAotCTB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4M0Y2QTg2LCAweDAwMDAwNywgMHgyODA1MDIsIDB4MjgwRDBBLAotCTB4Mjg0NDAyLCAweDAwMTgxMCwgMHgyODE0M0EsIDB4MEMwMDhELAotCTB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsIDB4MjIwMDA3LAotCTB4MDAzOTA0LCAweDIyNTg4NiwgMHgwMDFFMEQsIDB4MDAwNTdELAotCTB4MDE4MDQyLCAweDIwMDAwQSwgMHgwMjA5MjQsIDB4MDAwMEE1LAotCTB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LAotCTB4NDAyQTg2LCAweDAwMDAwNywgMHgyODA1MDIsIDB4MjgwQzAyLAotCTB4MDAyMDEwLCAweDI4MTQzQSwgMHgwQzAxMEQsIDB4MDAwODIwLAotCTB4MDAwMkZELCAweDAxODA0MCwgMHgyMjVBMDYsIDB4MjIwMDA3LAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLAotCTB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwCi19OwotCi0jZW5kaWYJLy9fSFdNQ09ERV8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX21haW4uYyBiL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX21haW4uYwppbmRleCAyOWIzMDU2Li45MmQ0OWFhIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9tYWluLmMKKysrIGIvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAKICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgpAQCAtMTk5Myw1NSArMTk5NCw2IEBACiAJfQogfQogCi0jaWZkZWYgQ09ORklHX1NORF9ZTUZQQ0lfRklSTVdBUkVfSU5fS0VSTkVMCi0KLSNpbmNsdWRlICJ5bWZwY2lfaW1hZ2UuaCIKLQotc3RhdGljIHN0cnVjdCBmaXJtd2FyZSBzbmRfeW1mcGNpX2RzcF9taWNyb2NvZGUgPSB7Ci0JLnNpemUgPSBZRFNYR19EU1BMRU5HVEgsCi0JLmRhdGEgPSAodTggKilEc3BJbnN0LAotfTsKLXN0YXRpYyBzdHJ1Y3QgZmlybXdhcmUgc25kX3ltZnBjaV9jb250cm9sbGVyX21pY3JvY29kZSA9IHsKLQkuc2l6ZSA9IFlEU1hHX0NUUkxMRU5HVEgsCi0JLmRhdGEgPSAodTggKilDbnRybEluc3QsCi19Owotc3RhdGljIHN0cnVjdCBmaXJtd2FyZSBzbmRfeW1mcGNpX2NvbnRyb2xsZXJfMWVfbWljcm9jb2RlID0gewotCS5zaXplID0gWURTWEdfQ1RSTExFTkdUSCwKLQkuZGF0YSA9ICh1OCAqKUNudHJsSW5zdDFFLAotfTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NORF9ZTUZQQ0lfRklSTVdBUkVfSU5fS0VSTkVMCi1zdGF0aWMgaW50IHNuZF95bWZwY2lfcmVxdWVzdF9maXJtd2FyZShzdHJ1Y3Qgc25kX3ltZnBjaSAqY2hpcCkKLXsKLQljaGlwLT5kc3BfbWljcm9jb2RlID0gJnNuZF95bWZwY2lfZHNwX21pY3JvY29kZTsKLQlpZiAoY2hpcC0+ZGV2aWNlX2lkID09IFBDSV9ERVZJQ0VfSURfWUFNQUhBXzcyNEYgfHwKLQkgICAgY2hpcC0+ZGV2aWNlX2lkID09IFBDSV9ERVZJQ0VfSURfWUFNQUhBXzc0MEMgfHwKLQkgICAgY2hpcC0+ZGV2aWNlX2lkID09IFBDSV9ERVZJQ0VfSURfWUFNQUhBXzc0NCB8fAotCSAgICBjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzU0KQotCQljaGlwLT5jb250cm9sbGVyX21pY3JvY29kZSA9Ci0JCQkmc25kX3ltZnBjaV9jb250cm9sbGVyXzFlX21pY3JvY29kZTsKLQllbHNlCi0JCWNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlID0KLQkJCSZzbmRfeW1mcGNpX2NvbnRyb2xsZXJfbWljcm9jb2RlOwotCXJldHVybiAwOwotfQotCi0jZWxzZSAvKiB1c2UgZndfbG9hZGVyICovCi0KLSNpZmRlZiBfX0xJVFRMRV9FTkRJQU4KLXN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfeW1mcGNpX2NvbnZlcnRfZnJvbV9sZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KSB7IH0KLSNlbHNlCi1zdGF0aWMgdm9pZCBzbmRfeW1mcGNpX2NvbnZlcnRfZnJvbV9sZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQotewotCWludCBpOwotCXUzMiAqZGF0YSA9ICh1MzIgKilmdy0+ZGF0YTsKLQotCWZvciAoaSA9IDA7IGkgPCBmdy0+c2l6ZSAvIDQ7ICsraSkKLQkJbGUzMl90b19jcHVzKCZkYXRhW2ldKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgaW50IHNuZF95bWZwY2lfcmVxdWVzdF9maXJtd2FyZShzdHJ1Y3Qgc25kX3ltZnBjaSAqY2hpcCkKIHsKIAlpbnQgZXJyLCBpc18xZTsKQEAgLTIwNTAsOSArMjAwMiw3IEBACiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmY2hpcC0+ZHNwX21pY3JvY29kZSwgInlhbWFoYS9kczFfZHNwLmZ3IiwKIAkJCSAgICAgICAmY2hpcC0+cGNpLT5kZXYpOwogCWlmIChlcnIgPj0gMCkgewotCQlpZiAoY2hpcC0+ZHNwX21pY3JvY29kZS0+c2l6ZSA9PSBZRFNYR19EU1BMRU5HVEgpCi0JCQlzbmRfeW1mcGNpX2NvbnZlcnRfZnJvbV9sZShjaGlwLT5kc3BfbWljcm9jb2RlKTsKLQkJZWxzZSB7CisJCWlmIChjaGlwLT5kc3BfbWljcm9jb2RlLT5zaXplICE9IFlEU1hHX0RTUExFTkdUSCkgewogCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiRFNQIG1pY3JvY29kZSBoYXMgd3Jvbmcgc2l6ZVxuIik7CiAJCQllcnIgPSAtRUlOVkFMOwogCQl9CkBAIC0yMDY3LDkgKzIwMTcsNyBAQAogCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLCBuYW1lLAogCQkJICAgICAgICZjaGlwLT5wY2ktPmRldik7CiAJaWYgKGVyciA+PSAwKSB7Ci0JCWlmIChjaGlwLT5jb250cm9sbGVyX21pY3JvY29kZS0+c2l6ZSA9PSBZRFNYR19DVFJMTEVOR1RIKQotCQkJc25kX3ltZnBjaV9jb252ZXJ0X2Zyb21fbGUoY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUpOwotCQllbHNlIHsKKwkJaWYgKGNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLT5zaXplICE9IFlEU1hHX0NUUkxMRU5HVEgpIHsKIAkJCXNuZF9wcmludGsoS0VSTl9FUlIgImNvbnRyb2xsZXIgbWljcm9jb2RlIgogCQkJCSAgICIgaGFzIHdyb25nIHNpemVcbiIpOwogCQkJZXJyID0gLUVJTlZBTDsKQEAgLTIwODQsMTMgKzIwMzIsMTEgQEAKIE1PRFVMRV9GSVJNV0FSRSgieWFtYWhhL2RzMV9jdHJsLmZ3Iik7CiBNT0RVTEVfRklSTVdBUkUoInlhbWFoYS9kczFlX2N0cmwuZnciKTsKIAotI2VuZGlmCi0KIHN0YXRpYyB2b2lkIHNuZF95bWZwY2lfZG93bmxvYWRfaW1hZ2Uoc3RydWN0IHNuZF95bWZwY2kgKmNoaXApCiB7CiAJaW50IGk7CiAJdTE2IGN0cmw7Ci0JdTMyICppbnN0OworCWNvbnN0IF9fbGUzMiAqaW5zdDsKIAogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9OQVRJVkVEQUNPVVRWT0wsIDB4MDAwMDAwMDApOwogCXNuZF95bWZwY2lfZGlzYWJsZV9kc3AoY2hpcCk7CkBAIC0yMTA1LDE0ICsyMDUxLDE2IEBACiAJc25kX3ltZnBjaV93cml0ZXcoY2hpcCwgWURTWEdSX0dMT0JBTENUUkwsIGN0cmwgJiB+MHgwMDA3KTsKIAogCS8qIHNldHVwIERTUCBpbnN0cnVjdGlvbiBjb2RlICovCi0JaW5zdCA9ICh1MzIgKiljaGlwLT5kc3BfbWljcm9jb2RlLT5kYXRhOworCWluc3QgPSAoY29uc3QgX19sZTMyICopY2hpcC0+ZHNwX21pY3JvY29kZS0+ZGF0YTsKIAlmb3IgKGkgPSAwOyBpIDwgWURTWEdfRFNQTEVOR1RIIC8gNDsgaSsrKQotCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfRFNQSU5TVFJBTSArIChpIDw8IDIpLCBpbnN0W2ldKTsKKwkJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX0RTUElOU1RSQU0gKyAoaSA8PCAyKSwKKwkJCQkgIGxlMzJfdG9fY3B1KGluc3RbaV0pKTsKIAogCS8qIHNldHVwIGNvbnRyb2wgaW5zdHJ1Y3Rpb24gY29kZSAqLwotCWluc3QgPSAodTMyICopY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUtPmRhdGE7CisJaW5zdCA9IChjb25zdCBfX2xlMzIgKiljaGlwLT5jb250cm9sbGVyX21pY3JvY29kZS0+ZGF0YTsKIAlmb3IgKGkgPSAwOyBpIDwgWURTWEdfQ1RSTExFTkdUSCAvIDQ7IGkrKykKLQkJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX0NUUkxJTlNUUkFNICsgKGkgPDwgMiksIGluc3RbaV0pOworCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQ1RSTElOU1RSQU0gKyAoaSA8PCAyKSwKKwkJCQkgIGxlMzJfdG9fY3B1KGluc3RbaV0pKTsKIAogCXNuZF95bWZwY2lfZW5hYmxlX2RzcChjaGlwKTsKIH0KQEAgLTIyMDUsNiArMjE1Myw3IEBACiAJZm9yIChyZWcgPSAweDgwOyByZWcgPCAweGMwOyByZWcgKz0gNCkKIAkJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgcmVnLCAwKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfTkFUSVZFREFDT1VUVk9MLCAweDNmZmYzZmZmKTsKKwlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQlVGNDQxT1VUVk9MLCAweDNmZmYzZmZmKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfWlZPVVRWT0wsIDB4M2ZmZjNmZmYpOwogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9TUERJRk9VVFZPTCwgMHgzZmZmM2ZmZik7CiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX05BVElWRUFEQ0lOVk9MLCAweDNmZmYzZmZmKTsKQEAgLTIyNjQsMTAgKzIyMTMsOCBAQAogCXBjaV93cml0ZV9jb25maWdfd29yZChjaGlwLT5wY2ksIDB4NDAsIGNoaXAtPm9sZF9sZWdhY3lfY3RybCk7CiAJCiAJcGNpX2Rpc2FibGVfZGV2aWNlKGNoaXAtPnBjaSk7Ci0jaWZuZGVmIENPTkZJR19TTkRfWU1GUENJX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXJlbGVhc2VfZmlybXdhcmUoY2hpcC0+ZHNwX21pY3JvY29kZSk7CiAJcmVsZWFzZV9maXJtd2FyZShjaGlwLT5jb250cm9sbGVyX21pY3JvY29kZSk7Ci0jZW5kaWYKIAlrZnJlZShjaGlwKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTIzMjQsNiArMjI3MSw3IEBACiAJCWNoaXAtPnNhdmVkX3JlZ3NbaV0gPSBzbmRfeW1mcGNpX3JlYWRsKGNoaXAsIHNhdmVkX3JlZ3NfaW5kZXhbaV0pOwogCWNoaXAtPnNhdmVkX3lkc3hncl9tb2RlID0gc25kX3ltZnBjaV9yZWFkbChjaGlwLCBZRFNYR1JfTU9ERSk7CiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX05BVElWRURBQ09VVFZPTCwgMCk7CisJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX0JVRjQ0MU9VVFZPTCwgMCk7CiAJc25kX3ltZnBjaV9kaXNhYmxlX2RzcChjaGlwKTsKIAlwY2lfZGlzYWJsZV9kZXZpY2UocGNpKTsKIAlwY2lfc2F2ZV9zdGF0ZShwY2kpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNtY2lhL0tjb25maWcgYi9zb3VuZC9wY21jaWEvS2NvbmZpZwppbmRleCBjOWZhMWEyLi43ZmJiMTkwIDEwMDY0NAotLS0gYS9zb3VuZC9wY21jaWEvS2NvbmZpZworKysgYi9zb3VuZC9wY21jaWEvS2NvbmZpZwpAQCAtMSwxMSArMSwxNiBAQAogIyBBTFNBIFBDTUNJQSBkcml2ZXJzCiAKLW1lbnUgIlBDTUNJQSBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFBDTUNJQQorbWVudWNvbmZpZyBTTkRfUENNQ0lBCisJYm9vbCAiUENNQ0lBIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBQQ01DSUEKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIGNvbm5lY3RlZCB2aWEgdGhlIFBDTUNJQSBidXMuCisKK2lmIFNORF9QQ01DSUEgJiYgUENNQ0lBCiAKIGNvbmZpZyBTTkRfVlhQT0NLRVQKIAl0cmlzdGF0ZSAiRGlnaWdyYW0gVlhwb2NrZXQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUENNQ0lBCiAJc2VsZWN0IFNORF9WWF9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgRGlnaWdyYW0gVlhwb2NrZXQgYW5kCkBAIC0xNiw3ICsyMSw2IEBACiAKIGNvbmZpZyBTTkRfUERBVURJT0NGCiAJdHJpc3RhdGUgIlNvdW5kIENvcmUgUERBdWRpb0NGIgotCWRlcGVuZHMgb24gU05EICYmIFBDTUNJQQogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIFNvdW5kIENvcmUgUERBdWRpb0NGCkBAIC0yNSw0ICsyOSw1IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtcGRhdWRpb2NmLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9QQ01DSUEKKwpkaWZmIC0tZ2l0IGEvc291bmQvcGNtY2lhL3Z4L3Z4cF9vcHMuYyBiL3NvdW5kL3BjbWNpYS92eC92eHBfb3BzLmMKaW5kZXggMTU3YjBiNS4uOTliZjJhNiAxMDA2NDQKLS0tIGEvc291bmQvcGNtY2lhL3Z4L3Z4cF9vcHMuYworKysgYi9zb3VuZC9wY21jaWEvdngvdnhwX29wcy5jCkBAIC0xNTEsNyArMTUxLDcgQEAKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgYzsKIAlpbnQgcmVnQ1NVRVIsIHJlZ1JVRVI7Ci0JdW5zaWduZWQgY2hhciAqaW1hZ2U7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW1hZ2U7CiAJdW5zaWduZWQgY2hhciBkYXRhOwogCiAJLyogU3dpdGNoIHRvIHByb2dyYW1tYXRpb24gbW9kZSAqLwpkaWZmIC0tZ2l0IGEvc291bmQvcHBjL0tjb25maWcgYi9zb3VuZC9wcGMvS2NvbmZpZwppbmRleCBjYWNiMGIxLi43NzdkZTJiIDEwMDY0NAotLS0gYS9zb3VuZC9wcGMvS2NvbmZpZworKysgYi9zb3VuZC9wcGMvS2NvbmZpZwpAQCAtMSwxNyArMSwxNyBAQAogIyBBTFNBIFBvd2VyTWFjIGRyaXZlcnMKIAotbWVudSAiQUxTQSBQb3dlck1hYyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFBQQworbWVudWNvbmZpZyBTTkRfUFBDCisJYm9vbCAiUG93ZXJQQyBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gUFBDNjQgfHwgUFBDMzIKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIHNwZWNpZmljIHRvIFBvd2VyUEMgYXJjaGl0ZWN0dXJlcy4KIAotY29tbWVudCAiQUxTQSBQb3dlck1hYyByZXF1aXJlcyBJMkMiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSTJDPW4KLQotY29tbWVudCAiQUxTQSBQb3dlck1hYyByZXF1aXJlcyBJTlBVVCIKLQlkZXBlbmRzIG9uIFNORCAmJiBJTlBVVD1uCitpZiBTTkRfUFBDCiAKIGNvbmZpZyBTTkRfUE9XRVJNQUMKIAl0cmlzdGF0ZSAiUG93ZXJNYWMgKEFXQUNTLCBEQUNBLCBCdXJndW5keSwgVHVtYmxlciwgS2V5d2VzdCkiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSTJDICYmIElOUFVUICYmIFBQQ19QTUFDCisJZGVwZW5kcyBvbiBJMkMgJiYgSU5QVVQgJiYgUFBDX1BNQUMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBzb3VuZCBkZXZpY2UuCkBAIC0zMiwxNCArMzIsOSBAQAogCSAgTm90ZSB0aGF0IHlvdSBjYW4gdHVybiBvbi9vZmYgRFJDIG1hbnVhbGx5IGV2ZW4gd2l0aG91dCB0aGlzCiAJICBvcHRpb24uCiAKLWVuZG1lbnUKLQotbWVudSAiQUxTQSBQb3dlclBDIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgKCBQUEM2NCB8fCBQUEMzMiApCi0KIGNvbmZpZyBTTkRfUFMzCiAJdHJpc3RhdGUgIlBTMyBBdWRpbyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU05EICYmIFBTM19QUzNBVgorCWRlcGVuZHMgb24gUFMzX1BTM0FWCiAJc2VsZWN0IFNORF9QQ00KIAlkZWZhdWx0IG0KIAloZWxwCkBAIC01Miw0ICs0Nyw1IEBACiAJaW50ICJTdGFydHVwIGRlbGF5IHRpbWUgaW4gbXMiCiAJZGVwZW5kcyBvbiBTTkRfUFMzCiAJZGVmYXVsdCAiMjAwMCIKLWVuZG1lbnUKKworZW5kaWYJIyBTTkRfUFBDCmRpZmYgLS1naXQgYS9zb3VuZC9wcGMvZGFjYS5jIGIvc291bmQvcHBjL2RhY2EuYwppbmRleCBjYTk0NTI5Li44YTViMjkwIDEwMDY0NAotLS0gYS9zb3VuZC9wcGMvZGFjYS5jCisrKyBiL3NvdW5kL3BwYy9kYWNhLmMKQEAgLTI0OSw5ICsyNDksNyBAQAogCWludCBpLCBlcnI7CiAJc3RydWN0IHBtYWNfZGFjYSAqbWl4OwogCi0jaWZkZWYgQ09ORklHX0tNT0QKIAlyZXF1ZXN0X21vZHVsZSgiaTJjLXBvd2VybWFjIik7Ci0jZW5kaWYgLyogQ09ORklHX0tNT0QgKi8KIAogCW1peCA9IGt6YWxsb2Moc2l6ZW9mKCptaXgpLCBHRlBfS0VSTkVMKTsKIAlpZiAoISBtaXgpCmRpZmYgLS1naXQgYS9zb3VuZC9wcGMvdHVtYmxlci5jIGIvc291bmQvcHBjL3R1bWJsZXIuYwppbmRleCAzZjhkNzE2Li4wMDlkZjhkIDEwMDY0NAotLS0gYS9zb3VuZC9wcGMvdHVtYmxlci5jCisrKyBiL3NvdW5kL3BwYy90dW1ibGVyLmMKQEAgLTEzNTAsOSArMTM1MCw3IEBACiAJc3RydWN0IGRldmljZV9ub2RlICp0YXNfbm9kZSwgKm5wOwogCWNoYXIgKmNoaXBuYW1lOwogCi0jaWZkZWYgQ09ORklHX0tNT0QKIAlyZXF1ZXN0X21vZHVsZSgiaTJjLXBvd2VybWFjIik7Ci0jZW5kaWYgLyogQ09ORklHX0tNT0QgKi8KIAogCW1peCA9IGt6YWxsb2Moc2l6ZW9mKCptaXgpLCBHRlBfS0VSTkVMKTsKIAlpZiAoISBtaXgpCmRpZmYgLS1naXQgYS9zb3VuZC9zaC9LY29uZmlnIGIvc291bmQvc2gvS2NvbmZpZwppbmRleCBiN2UwOGVmLi5jZmMxNDM5IDEwMDY0NAotLS0gYS9zb3VuZC9zaC9LY29uZmlnCisrKyBiL3NvdW5kL3NoL0tjb25maWcKQEAgLTEsMTQgKzEsMjIgQEAKICMgQUxTQSBTSCBkcml2ZXJzCiAKLW1lbnUgIlNVUEVSSCBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFNVUEVSSAorbWVudWNvbmZpZyBTTkRfU1VQRVJICisJYm9vbCAiU1VQRVJIIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBTVVBFUkgKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIHNwZWNpZmljIHRvIFNVUEVSSCBhcmNoaXRlY3R1cmVzLgorCSAgRHJpdmVycyB0aGF0IGFyZSBpbXBsZW1lbnRlZCBvbiBBU29DIGNhbiBiZSBmb3VuZCBpbgorCSAgIkFMU0EgZm9yIFNvQyBhdWRpbyBzdXBwb3J0IiBzZWN0aW9uLgorCitpZiBTTkRfU1VQRVJICiAKIGNvbmZpZyBTTkRfQUlDQQogCXRyaXN0YXRlICJEcmVhbWNhc3QgWWFtYWhhIEFJQ0Egc291bmQiCi0JZGVwZW5kcyBvbiBTSF9EUkVBTUNBU1QgJiYgU05ECisJZGVwZW5kcyBvbiBTSF9EUkVBTUNBU1QKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIEFMU0EgU291bmQgZHJpdmVyIGZvciB0aGUgU0VHQSBEcmVhbWNhc3QgY29uc29sZS4KIAotZW5kbWVudQorZW5kaWYJIyBTTkRfU1VQRVJICiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9LY29uZmlnIGIvc291bmQvc29jL0tjb25maWcKaW5kZXggMThmMjhhYy4uZjc0MzUzMCAxMDA2NDQKLS0tIGEvc291bmQvc29jL0tjb25maWcKKysrIGIvc291bmQvc29jL0tjb25maWcKQEAgLTIsMTUgKzIsOCBAQAogIyBTb0MgYXVkaW8gY29uZmlndXJhdGlvbgogIwogCi1tZW51ICJTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU05EIT1uCi0KLWNvbmZpZyBTTkRfU09DX0FDOTdfQlVTCi0JYm9vbAotCi1jb25maWcgU05EX1NPQworbWVudWNvbmZpZyBTTkRfU09DCiAJdHJpc3RhdGUgIkFMU0EgZm9yIFNvQyBhdWRpbyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAktLS1oZWxwLS0tCiAKQEAgLTIzLDggKzE2LDE1IEBACiAJICBUaGlzIEFTb0MgYXVkaW8gc3VwcG9ydCBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtc29jLWNvcmUuCiAKK2lmIFNORF9TT0MKKworY29uZmlnIFNORF9TT0NfQUM5N19CVVMKKwlib29sCisKICMgQWxsIHRoZSBzdXBwb3J0ZWQgU29jJ3MKK3NvdXJjZSAic291bmQvc29jL2F0MzIvS2NvbmZpZyIKIHNvdXJjZSAic291bmQvc29jL2F0OTEvS2NvbmZpZyIKK3NvdXJjZSAic291bmQvc29jL2F1MXgvS2NvbmZpZyIKIHNvdXJjZSAic291bmQvc29jL3B4YS9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2MvczNjMjR4eC9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2Mvc2gvS2NvbmZpZyIKQEAgLTM1LDQgKzM1LDUgQEAKICMgU3VwcG9ydGVkIGNvZGVjcwogc291cmNlICJzb3VuZC9zb2MvY29kZWNzL0tjb25maWciCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1NPQworCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvTWFrZWZpbGUgYi9zb3VuZC9zb2MvTWFrZWZpbGUKaW5kZXggNzgyZGIyMS4uOTMzYTY2ZCAxMDA2NDQKLS0tIGEvc291bmQvc29jL01ha2VmaWxlCisrKyBiL3NvdW5kL3NvYy9NYWtlZmlsZQpAQCAtMSw0ICsxLDUgQEAKIHNuZC1zb2MtY29yZS1vYmpzIDo9IHNvYy1jb3JlLm8gc29jLWRhcG0ubwogCiBvYmotJChDT05GSUdfU05EX1NPQykJKz0gc25kLXNvYy1jb3JlLm8KLW9iai0kKENPTkZJR19TTkRfU09DKQkrPSBjb2RlY3MvIGF0OTEvIHB4YS8gczNjMjR4eC8gc2gvIGZzbC8gZGF2aW5jaS8gb21hcC8KK29iai0kKENPTkZJR19TTkRfU09DKQkrPSBjb2RlY3MvIGF0MzIvIGF0OTEvIHB4YS8gczNjMjR4eC8gc2gvIGZzbC8gZGF2aW5jaS8KK29iai0kKENPTkZJR19TTkRfU09DKQkrPSBvbWFwLyBhdTF4LwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0MzIvS2NvbmZpZyBiL3NvdW5kL3NvYy9hdDMyL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA3NjVlOAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL0tjb25maWcKQEAgLTAsMCArMSwzNCBAQAorY29uZmlnIFNORF9BVDMyX1NPQworICAgICAgICB0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgQXRtZWwgQVQzMiBTeXN0ZW0tb24tYS1DaGlwIgorICAgICAgICBkZXBlbmRzIG9uIEFWUjMyICYmIFNORF9TT0MKKyAgICAgICAgaGVscAorICAgICAgICAgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0byAKKyAgICAgICAgICB0aGUgQVQzMiBTU0MgaW50ZXJmYWNlLiAgWW91IHdpbGwgYWxzbyBuZWVkIHRvCisgICAgICAgICAgdG8gc2VsZWN0IHRoZSBhdWRpbyBpbnRlcmZhY2VzIHRvIHN1cHBvcnQgYmVsb3cuCisKKworY29uZmlnIFNORF9BVDMyX1NPQ19TU0MKKyAgICAgICAgdHJpc3RhdGUKKworCisKK2NvbmZpZyBTTkRfQVQzMl9TT0NfUExBWVBBUQorICAgICAgICB0cmlzdGF0ZSAiU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFBsYXlQYXEgd2l0aCBXTTg1MTAiCisgICAgICAgIGRlcGVuZHMgb24gU05EX0FUMzJfU09DICYmIEJPQVJEX1BMQVlQQVEKKyAgICAgICAgc2VsZWN0IFNORF9BVDMyX1NPQ19TU0MKKyAgICAgICAgc2VsZWN0IFNORF9TT0NfV004NTEwCisgICAgICAgIGhlbHAKKyAgICAgICAgICBTYXkgWSBvciBNIGhlcmUgaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFNvQyBhdWRpbworICAgICAgICAgIG9uIHRoZSBMUlMgUGxheVBhcS4KKworCisKK2NvbmZpZyBTTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRQorICAgICAgICBib29sICJSdW4gQ09ERUMgb24gUGxheVBhcSBpbiBzbGF2ZSBtb2RlIgorICAgICAgICBkZXBlbmRzIG9uIFNORF9BVDMyX1NPQ19QTEFZUEFRCisgICAgICAgIGRlZmF1bHQgbgorICAgICAgICBoZWxwCisgICAgICAgICAgU2F5IFkgaWYgeW91IHdhbnQgdG8gcnVuIHdpdGggdGhlIEFUMzIgU1NDIGdlbmVyYXRpbmcgdGhlIEJDTEsKKyAgICAgICAgICBhbmQgRlJBTUUgc2lnbmFscyBvbiB0aGUgUGxheVBhcS4gIFVubGVzcyB5b3Ugd2FudCB0byBwbGF5CisgICAgICAgICAgd2l0aCB0aGUgQVQzMiBhcyB0aGUgU1NDIG1hc3RlciwgeW91IHByb2JhYmx5IHdhbnQgdG8gc2F5IE4gaGVyZSwKKyAgICAgICAgICBhcyB0aGlzIHdpbGwgZ2l2ZSB5b3UgYmV0dGVyIHNvdW5kIHF1YWxpdHkuCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9NYWtlZmlsZSBiL3NvdW5kL3NvYy9hdDMyL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwM2U1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9NYWtlZmlsZQpAQCAtMCwwICsxLDExIEBACisjIEFUMzIgUGxhdGZvcm0gU3VwcG9ydAorc25kLXNvYy1hdDMyLW9ianMgOj0gYXQzMi1wY20ubworc25kLXNvYy1hdDMyLXNzYy1vYmpzIDo9IGF0MzItc3NjLm8KKworb2JqLSQoQ09ORklHX1NORF9BVDMyX1NPQykgKz0gc25kLXNvYy1hdDMyLm8KK29iai0kKENPTkZJR19TTkRfQVQzMl9TT0NfU1NDKSArPSBzbmQtc29jLWF0MzItc3NjLm8KKworIyBBVDMyIE1hY2hpbmUgU3VwcG9ydAorc25kLXNvYy1wbGF5cGFxLW9ianMgOj0gcGxheXBhcV93bTg1MTAubworCitvYmotJChDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVEpICs9IHNuZC1zb2MtcGxheXBhcS5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jIGIvc291bmQvc29jL2F0MzIvYXQzMi1wY20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzVmMWRhCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvYXQzMi1wY20uYwpAQCAtMCwwICsxLDQ5MSBAQAorLyogc291bmQvc29jL2F0MzIvYXQzMi1wY20uYworICogQVNvQyBQQ00gaW50ZXJmYWNlIGZvciBBdG1lbCBBVDMyIFNvQworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaXMgYmFzaWNhbGx5IGEgcG9ydCBvZiB0aGUgc291bmQvc29jL2F0OTEtcGNtLmMgdG8KKyAqIHRoZSBBVlIzMiBrZXJuZWwuICBUaGFua3MgdG8gRnJhbmsgTWFuZGFyaW5vIGZvciB0aGF0IGNvZGUuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbF9wZGMuaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisKKyNpbmNsdWRlICJhdDMyLXBjbS5oIgorCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBIYXJkd2FyZSBkZWZpbml0aW9uCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFRPRE86IFRoZXNlIHZhbHVlcyB3ZXJlIHRha2VuIGZyb20gdGhlIEFUOTEgcGxhdGZvcm0gZHJpdmVyLCBjaGVjaworICoJIHRoZW0gYWdhaW5zdCByZWFsIHZhbHVlcyBmb3IgQVQzMgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgYXQzMl9wY21faGFyZHdhcmUgPSB7CisJLmluZm8gPSAoU05EUlZfUENNX0lORk9fTU1BUCB8CisJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0JMT0NLX1RSQU5TRkVSIHwKKwkJIFNORFJWX1BDTV9JTkZPX1BBVVNFKSwKKworCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTYsCisJLnBlcmlvZF9ieXRlc19taW4gPSAzMiwKKwkucGVyaW9kX2J5dGVzX21heCA9IDgxOTIsCS8qIDUxMiBmcmFtZXMgKiAxNiBieXRlcyAvIGZyYW1lICovCisJLnBlcmlvZHNfbWluID0gMiwKKwkucGVyaW9kc19tYXggPSAxMDI0LAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gMzIgKiAxMDI0LAorfTsKKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogRGF0YSB0eXBlcworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgeworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXM7CisJZG1hX2FkZHJfdCBkbWFfYnVmZmVyOwkvKiBwaHlzaWNhbCBhZGRyZXNzIG9mIERNQSBidWZmZXIgKi8KKwlkbWFfYWRkcl90IGRtYV9idWZmZXJfZW5kOyAvKiBmaXJzdCBhZGRyZXNzIGJleW9uZCBETUEgYnVmZmVyICovCisJc2l6ZV90IHBlcmlvZF9zaXplOworCisJZG1hX2FkZHJfdCBwZXJpb2RfcHRyOwkvKiBwaHlzaWNhbCBhZGRyZXNzIG9mIG5leHQgcGVyaW9kICovCisJaW50IHBlcmlvZHM7CQkvKiBwZXJpb2QgaW5kZXggb2YgcGVyaW9kX3B0ciAqLworCisJLyogU2F2ZSBQREMgcmVnaXN0ZXJzIChmb3IgcG93ZXIgbWFuYWdlbWVudCkgKi8KKwl1MzIgcGRjX3hwcl9zYXZlOworCXUzMiBwZGNfeGNyX3NhdmU7CisJdTMyIHBkY194bnByX3NhdmU7CisJdTMyIHBkY194bmNyX3NhdmU7Cit9OworCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBIZWxwZXIgZnVuY3Rpb25zCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBpbnQgYXQzMl9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcihzdHJ1Y3Qgc25kX3BjbSAqcGNtLCBpbnQgc3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtID0gcGNtLT5zdHJlYW1zW3N0cmVhbV0uc3Vic3RyZWFtOworCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciAqZG1hYnVmID0gJnN1YnN0cmVhbS0+ZG1hX2J1ZmZlcjsKKwlzaXplX3Qgc2l6ZSA9IGF0MzJfcGNtX2hhcmR3YXJlLmJ1ZmZlcl9ieXRlc19tYXg7CisKKwlkbWFidWYtPmRldi50eXBlID0gU05EUlZfRE1BX1RZUEVfREVWOworCWRtYWJ1Zi0+ZGV2LmRldiA9IHBjbS0+Y2FyZC0+ZGV2OworCWRtYWJ1Zi0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKKwlkbWFidWYtPmFyZWEgPSBkbWFfYWxsb2NfY29oZXJlbnQocGNtLT5jYXJkLT5kZXYsIHNpemUsCisJCQkJCSAgJmRtYWJ1Zi0+YWRkciwgR0ZQX0tFUk5FTCk7CisJcHJfZGVidWcoImF0MzJfcGNtOiBwcmVhbGxvY2F0ZV9kbWFfYnVmZmVyOiAiCisJCSAiYXJlYT0lcCwgYWRkcj0lcCwgc2l6ZT0lbGRcbiIsCisJCSAodm9pZCAqKWRtYWJ1Zi0+YXJlYSwgKHZvaWQgKilkbWFidWYtPmFkZHIsIHNpemUpOworCisJaWYgKCFkbWFidWYtPmFyZWEpCisJCXJldHVybiAtRU5PTUVNOworCisJZG1hYnVmLT5ieXRlcyA9IHNpemU7CisJcmV0dXJuIDA7Cit9CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIElTUgorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZCBhdDMyX3BjbV9kbWFfaXJxKHUzMiBzc2Nfc3IsIHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBydGQtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqcGFyYW1zID0gcHJ0ZC0+cGFyYW1zOworCXN0YXRpYyBpbnQgY291bnQ7CisKKwljb3VudCsrOworCWlmIChzc2Nfc3IgJiBwYXJhbXMtPm1hc2stPnNzY19lbmRidWYpIHsKKwkJcHJfd2FybmluZygiYXQzMi1wY206IGJ1ZmZlciAlcyBvbiAlcyAoU1NDX1NSPSUjeCwgY291bnQ9JWQpXG4iLAorCQkJICAgc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSyA/CisJCQkgICAidW5kZXJydW4iIDogIm92ZXJydW4iLCBwYXJhbXMtPm5hbWUsIHNzY19zciwgY291bnQpOworCisJCS8qIHJlLXN0YXJ0IHRoZSBQREMgKi8KKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgQVRNRUxfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19kaXNhYmxlKTsKKwkJcHJ0ZC0+cGVyaW9kX3B0ciArPSBwcnRkLT5wZXJpb2Rfc2l6ZTsKKwkJaWYgKHBydGQtPnBlcmlvZF9wdHIgPj0gcHJ0ZC0+ZG1hX2J1ZmZlcl9lbmQpCisJCQlwcnRkLT5wZXJpb2RfcHRyID0gcHJ0ZC0+ZG1hX2J1ZmZlcjsKKworCisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIsCisJCQkgICBwcnRkLT5wZXJpb2RfcHRyKTsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhjciwKKwkJCSAgIHBydGQtPnBlcmlvZF9zaXplIC8gcGFyYW1zLT5wZGNfeGZlcl9zaXplKTsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgQVRNRUxfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19lbmFibGUpOworCX0KKworCisJaWYgKHNzY19zciAmIHBhcmFtcy0+bWFzay0+c3NjX2VuZHgpIHsKKwkJLyogTG9hZCB0aGUgUERDIG5leHQgcG9pbnRlciBhbmQgY291bnRlciByZWdpc3RlcnMgKi8KKwkJcHJ0ZC0+cGVyaW9kX3B0ciArPSBwcnRkLT5wZXJpb2Rfc2l6ZTsKKwkJaWYgKHBydGQtPnBlcmlvZF9wdHIgPj0gcHJ0ZC0+ZG1hX2J1ZmZlcl9lbmQpCisJCQlwcnRkLT5wZXJpb2RfcHRyID0gcHJ0ZC0+ZG1hX2J1ZmZlcjsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhucHIsCisJCQkgICBwcnRkLT5wZXJpb2RfcHRyKTsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhuY3IsCisJCQkgICBwcnRkLT5wZXJpb2Rfc2l6ZSAvIHBhcmFtcy0+cGRjX3hmZXJfc2l6ZSk7CisJfQorCisKKwlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKHN1YnN0cmVhbSk7Cit9CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIFBDTSBvcGVyYXRpb25zCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBpbnQgYXQzMl9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCisJLyogdGhpcyBtYXkgZ2V0IGNhbGxlZCBzZXZlcmFsIHRpbWVzIGJ5IG9zcyBlbXVsYXRpb24KKwkgKiB3aXRoIGRpZmZlcmVudCBwYXJhbXMKKwkgKi8KKwlzbmRfcGNtX3NldF9ydW50aW1lX2J1ZmZlcihzdWJzdHJlYW0sICZzdWJzdHJlYW0tPmRtYV9idWZmZXIpOworCXJ1bnRpbWUtPmRtYV9ieXRlcyA9IHBhcmFtc19idWZmZXJfYnl0ZXMocGFyYW1zKTsKKworCXBydGQtPnBhcmFtcyA9IHJ0ZC0+ZGFpLT5jcHVfZGFpLT5kbWFfZGF0YTsKKwlwcnRkLT5wYXJhbXMtPmRtYV9pbnRyX2hhbmRsZXIgPSBhdDMyX3BjbV9kbWFfaXJxOworCisJcHJ0ZC0+ZG1hX2J1ZmZlciA9IHJ1bnRpbWUtPmRtYV9hZGRyOworCXBydGQtPmRtYV9idWZmZXJfZW5kID0gcnVudGltZS0+ZG1hX2FkZHIgKyBydW50aW1lLT5kbWFfYnl0ZXM7CisJcHJ0ZC0+cGVyaW9kX3NpemUgPSBwYXJhbXNfcGVyaW9kX2J5dGVzKHBhcmFtcyk7CisKKwlwcl9kZWJ1ZygiaHdfcGFyYW1zOiBETUEgZm9yICVzIGluaXRpYWxpemVkICIKKwkJICIoZG1hX2J5dGVzPSVsZCwgcGVyaW9kX3NpemU9JWxkKVxuIiwKKwkJIHBydGQtPnBhcmFtcy0+bmFtZSwgcnVudGltZS0+ZG1hX2J5dGVzLCBwcnRkLT5wZXJpb2Rfc2l6ZSk7CisKKwlyZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBpbnQgYXQzMl9wY21faHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqcGFyYW1zID0gcHJ0ZC0+cGFyYW1zOworCisJaWYgKHBhcmFtcyAhPSBOVUxMKSB7CisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCQlwcnRkLT5wYXJhbXMtPmRtYV9pbnRyX2hhbmRsZXIgPSBOVUxMOworCX0KKworCXJldHVybiAwOworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisKKwlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBTU0NfSURSLAorCQkgICBwYXJhbXMtPm1hc2stPnNzY19lbmR4IHwgcGFyYW1zLT5tYXNrLT5zc2NfZW5kYnVmKTsKKwlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJICAgcGFyYW1zLT5tYXNrLT5wZGNfZGlzYWJsZSk7CisKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IGF0MzJfcGNtX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHJ0ZC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisJaW50IHJldCA9IDA7CisKKwlwcl9kZWJ1ZygiYXQzMl9wY21fdHJpZ2dlcjogYnVmZmVyX3NpemUgPSAlbGQsICIKKwkJICJkbWFfYXJlYSA9ICVwLCBkbWFfYnl0ZXMgPSAlbGRcbiIsCisJCSBydGQtPmJ1ZmZlcl9zaXplLCBydGQtPmRtYV9hcmVhLCBydGQtPmRtYV9ieXRlcyk7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJCXBydGQtPnBlcmlvZF9wdHIgPSBwcnRkLT5kbWFfYnVmZmVyOworCisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIsCisJCQkgICBwcnRkLT5wZXJpb2RfcHRyKTsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhjciwKKwkJCSAgIHBydGQtPnBlcmlvZF9zaXplIC8gcGFyYW1zLT5wZGNfeGZlcl9zaXplKTsKKworCQlwcnRkLT5wZXJpb2RfcHRyICs9IHBydGQtPnBlcmlvZF9zaXplOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jciwKKwkJCSAgIHBydGQtPnBlcmlvZF9zaXplIC8gcGFyYW1zLT5wZGNfeGZlcl9zaXplKTsKKworCQlwcl9kZWJ1ZygidHJpZ2dlcjogcGVyaW9kX3B0cj0lbHgsIHhwcj0leCwgIgorCQkJICJ4Y3I9JWQsIHhucHI9JXgsIHhuY3I9JWRcbiIsCisJCQkgKHVuc2lnbmVkIGxvbmcpcHJ0ZC0+cGVyaW9kX3B0ciwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIpLAorCQkJIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhjciksCisJCQkgc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciksCisJCQkgc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jcikpOworCisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19JRVIsCisJCQkgICBwYXJhbXMtPm1hc2stPnNzY19lbmR4IHwgcGFyYW1zLT5tYXNrLT5zc2NfZW5kYnVmKTsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgU1NDX1BEQ19QVENSLAorCQkJICAgcGFyYW1zLT5tYXNrLT5wZGNfZW5hYmxlKTsKKworCQlwcl9kZWJ1Zygic3I9JXgsIGltcj0leFxuIiwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19TUiksCisJCQkgc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBTU0NfSUVSKSk7CisJCWJyZWFrOwkJLyogU05EUlZfUENNX1RSSUdHRVJfU1RBUlQgKi8KKworCisKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUFVTSDoKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgQVRNRUxfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19kaXNhYmxlKTsKKwkJYnJlYWs7CisKKworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1FOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUkVMRUFTRToKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgQVRNRUxfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19lbmFibGUpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXJldCA9IC1FSU5WQUw7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCisKK3N0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBhdDMyX3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gcnVudGltZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisJZG1hX2FkZHJfdCBwdHI7CisJc25kX3BjbV91ZnJhbWVzX3QgeDsKKworCXB0ciA9IChkbWFfYWRkcl90KSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIpOworCXggPSBieXRlc190b19mcmFtZXMocnVudGltZSwgcHRyIC0gcHJ0ZC0+ZG1hX2J1ZmZlcik7CisKKwlpZiAoeCA9PSBydW50aW1lLT5idWZmZXJfc2l6ZSkKKwkJeCA9IDA7CisKKwlyZXR1cm4geDsKK30KKworCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZDsKKwlpbnQgcmV0ID0gMDsKKworCXNuZF9zb2Nfc2V0X3J1bnRpbWVfaHdwYXJhbXMoc3Vic3RyZWFtLCAmYXQzMl9wY21faGFyZHdhcmUpOworCisJLyogZW5zdXJlIHRoYXQgYnVmZmVyIHNpemUgaXMgYSBtdWx0aXBsZSBvZiBwZXJpb2Qgc2l6ZSAqLworCXJldCA9IHNuZF9wY21faHdfY29uc3RyYWludF9pbnRlZ2VyKHJ1bnRpbWUsCisJCQkJCSAgICBTTkRSVl9QQ01fSFdfUEFSQU1fUEVSSU9EUyk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJcHJ0ZCA9IGt6YWxsb2Moc2l6ZW9mKCpwcnRkKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBydGQgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CisJcnVudGltZS0+cHJpdmF0ZV9kYXRhID0gcHJ0ZDsKKworCitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisKKwlrZnJlZShwcnRkKTsKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IGF0MzJfcGNtX21tYXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJcmV0dXJuIHJlbWFwX3Bmbl9yYW5nZSh2bWEsIHZtYS0+dm1fc3RhcnQsCisJCQkgICAgICAgc3Vic3RyZWFtLT5kbWFfYnVmZmVyLmFkZHIgPj4gUEFHRV9TSElGVCwKKwkJCSAgICAgICB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fcGFnZV9wcm90KTsKK30KKworCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgYXQzMl9wY21fb3BzID0geworCS5vcGVuID0gYXQzMl9wY21fb3BlbiwKKwkuY2xvc2UgPSBhdDMyX3BjbV9jbG9zZSwKKwkuaW9jdGwgPSBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gYXQzMl9wY21faHdfcGFyYW1zLAorCS5od19mcmVlID0gYXQzMl9wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9IGF0MzJfcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSBhdDMyX3BjbV90cmlnZ2VyLAorCS5wb2ludGVyID0gYXQzMl9wY21fcG9pbnRlciwKKwkubW1hcCA9IGF0MzJfcGNtX21tYXAsCit9OworCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBBU29DIHBsYXRmb3JtIGRyaXZlcgorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdTY0IGF0MzJfcGNtX2RtYW1hc2sgPSAweGZmZmZmZmZmOworCitzdGF0aWMgaW50IGF0MzJfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCisJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwkJCXN0cnVjdCBzbmRfcGNtICpwY20pCit7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIWNhcmQtPmRldi0+ZG1hX21hc2spCisJCWNhcmQtPmRldi0+ZG1hX21hc2sgPSAmYXQzMl9wY21fZG1hbWFzazsKKwlpZiAoIWNhcmQtPmRldi0+Y29oZXJlbnRfZG1hX21hc2spCisJCWNhcmQtPmRldi0+Y29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmOworCisJaWYgKGRhaS0+cGxheWJhY2suY2hhbm5lbHNfbWluKSB7CisJCXJldCA9IGF0MzJfcGNtX3ByZWFsbG9jYXRlX2RtYV9idWZmZXIoCisJCQkgIHBjbSwgU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSyk7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoZGFpLT5jYXB0dXJlLmNoYW5uZWxzX21pbikgeworCQlwcl9kZWJ1ZygiYXQzMi1wY206IEFsbG9jYXRpbmcgUENNIGNhcHR1cmUgRE1BIGJ1ZmZlclxuIik7CisJCXJldCA9IGF0MzJfcGNtX3ByZWFsbG9jYXRlX2RtYV9idWZmZXIoCisJCQkgIHBjbSwgU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKworCitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworCisKK3N0YXRpYyB2b2lkIGF0MzJfcGNtX2ZyZWVfZG1hX2J1ZmZlcnMoc3RydWN0IHNuZF9wY20gKnBjbSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKwlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgKmJ1ZjsKKwlpbnQgc3RyZWFtOworCisJZm9yIChzdHJlYW0gPSAwOyBzdHJlYW0gPCAyOyBzdHJlYW0rKykgeworCQlzdWJzdHJlYW0gPSBwY20tPnN0cmVhbXNbc3RyZWFtXS5zdWJzdHJlYW07CisJCWlmIChzdWJzdHJlYW0gPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCWJ1ZiA9ICZzdWJzdHJlYW0tPmRtYV9idWZmZXI7CisJCWlmICghYnVmLT5hcmVhKQorCQkJY29udGludWU7CisJCWRtYV9mcmVlX2NvaGVyZW50KHBjbS0+Y2FyZC0+ZGV2LCBidWYtPmJ5dGVzLAorCQkJCSAgYnVmLT5hcmVhLCBidWYtPmFkZHIpOworCQlidWYtPmFyZWEgPSBOVUxMOworCX0KK30KKworCisKKyNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBpbnQgYXQzMl9wY21fc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBkYWktPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXM7CisKKwlpZiAocnVudGltZSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKwlwcnRkID0gcnVudGltZS0+cHJpdmF0ZV9kYXRhOworCXBhcmFtcyA9IHBydGQtPnBhcmFtczsKKworCS8qIERpc2FibGUgdGhlIFBEQyBhbmQgc2F2ZSB0aGUgUERDIHJlZ2lzdGVycyAqLworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFBEQ19QVENSLCBwYXJhbXMtPm1hc2stPnBkY19kaXNhYmxlKTsKKworCXBydGQtPnBkY194cHJfc2F2ZSA9IHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwcik7CisJcHJ0ZC0+cGRjX3hjcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyKTsKKwlwcnRkLT5wZGNfeG5wcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wcik7CisJcHJ0ZC0+cGRjX3huY3Jfc2F2ZSA9IHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhuY3IpOworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfcGNtX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQ7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtczsKKworCWlmIChydW50aW1lID09IE5VTEwpCisJCXJldHVybiAwOworCXBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJcGFyYW1zID0gcHJ0ZC0+cGFyYW1zOworCisJLyogUmVzdG9yZSB0aGUgUERDIHJlZ2lzdGVycyBhbmQgZW5hYmxlIHRoZSBQREMgKi8KKwlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eHByLCBwcnRkLT5wZGNfeHByX3NhdmUpOworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54Y3IsIHBydGQtPnBkY194Y3Jfc2F2ZSk7CisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhucHIsIHBydGQtPnBkY194bnByX3NhdmUpOworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bmNyLCBwcnRkLT5wZGNfeG5jcl9zYXZlKTsKKworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFBEQ19QVENSLCBwYXJhbXMtPm1hc2stPnBkY19lbmFibGUpOworCXJldHVybiAwOworfQorI2Vsc2UgLyogQ09ORklHX1BNICovCisjICBkZWZpbmUgYXQzMl9wY21fc3VzcGVuZAlOVUxMCisjICBkZWZpbmUgYXQzMl9wY21fcmVzdW1lCU5VTEwKKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KKworCisKK3N0cnVjdCBzbmRfc29jX3BsYXRmb3JtIGF0MzJfc29jX3BsYXRmb3JtID0geworCS5uYW1lID0gImF0MzItYXVkaW8iLAorCS5wY21fb3BzID0gJmF0MzJfcGNtX29wcywKKwkucGNtX25ldyA9IGF0MzJfcGNtX25ldywKKwkucGNtX2ZyZWUgPSBhdDMyX3BjbV9mcmVlX2RtYV9idWZmZXJzLAorCS5zdXNwZW5kID0gYXQzMl9wY21fc3VzcGVuZCwKKwkucmVzdW1lID0gYXQzMl9wY21fcmVzdW1lLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGF0MzJfc29jX3BsYXRmb3JtKTsKKworCisKK01PRFVMRV9BVVRIT1IoIkdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBdG1lbCBBVDMyIFBDTSBtb2R1bGUiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmggYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTI0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qIHNvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmgKKyAqIEFTb0MgUENNIGludGVyZmFjZSBmb3IgQXRtZWwgQVQzMiBTb0MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTG9uZyBSYW5nZSBTeXN0ZW1zCisgKiAgICBHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19TT1VORF9TT0NfQVQzMl9BVDMyX1BDTV9ICisjZGVmaW5lIF9fU09VTkRfU09DX0FUMzJfQVQzMl9QQ01fSCBfX0ZJTEVfXworCisjaW5jbHVkZSA8bGludXgvYXRtZWwtc3NjLmg+CisKKworLyoKKyAqIFJlZ2lzdGVycyBhbmQgc3RhdHVzIGJpdHMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgdGhlIFBDTSBkcml2ZXIKKyAqIFRPRE86IElzIHB0Y3IgcmVhbGx5IHVzZWQ/CisgKi8KK3N0cnVjdCBhdDMyX3BkY19yZWdzIHsKKwl1MzIgeHByOwkJLyogUERDIFJYL1RYIHBvaW50ZXIgKi8KKwl1MzIgeGNyOwkJLyogUERDIFJYL1RYIGNvdW50ZXIgKi8KKwl1MzIgeG5wcjsJCS8qIFBEQyBuZXh0IFJYL1RYIHBvaW50ZXIgKi8KKwl1MzIgeG5jcjsJCS8qIFBEQyBuZXh0IFJYL1RYIGNvdW50ZXIgKi8KKwl1MzIgcHRjcjsJCS8qIFBEQyB0cmFuc2ZlciBjb250cm9sICovCit9OworCisKKworLyoKKyAqIFNTQyBtYXNrIGluZm8KKyAqLworc3RydWN0IGF0MzJfc3NjX21hc2sgeworCXUzMiBzc2NfZW5hYmxlOwkJLyogU1NDIFJYL1RYIGVuYWJsZSAqLworCXUzMiBzc2NfZGlzYWJsZTsJLyogU1NDIFJYL1RYIGRpc2FibGUgKi8KKwl1MzIgc3NjX2VuZHg7CQkvKiBTU0MgRU5EVFggb3IgRU5EUlggKi8KKwl1MzIgc3NjX2VuZGJ1ZjsJCS8qIFNTQyBUWEJVRkYgb3IgUlhCVUZGICovCisJdTMyIHBkY19lbmFibGU7CQkvKiBQREMgUlgvVFggZW5hYmxlICovCisJdTMyIHBkY19kaXNhYmxlOwkvKiBQREMgUlgvVFggZGlzYWJsZSAqLworfTsKKworCisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSwgc2hhcmVkIGJldHdlZW4gdGhlIFBDTSBkcml2ZXIgYW5kIHRoZSBpbnRlcmZhY2UsCisgKiBjb250YWlucyBhbGwgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgdGhlIFBDTSBkcml2ZXIgdG8gcGVyZm9ybSB0aGUKKyAqIFBEQyBETUEgb3BlcmF0aW9uLiAgQWxsIGZpZWxkcyBleGNlcHQgZG1hX2ludHJfaGFuZGxlcigpIGFyZSBpbml0aWFsaXplZAorICogYnkgdGhlIGludGVyZmFjZS4gIFRoZSBkbXNfaW50cl9oYW5kbGVyKCkgcG9pbnRlciBpcyBzZXQgYnkgdGhlIFBDTQorICogZHJpdmVyIGFuZCBjYWxsZWQgYnkgdGhlIGludGVyZmFjZSBTU0MgaW50ZXJydXB0IGhhbmRsZXIgaWYgaXQgaXMKKyAqIG5vbi1OVUxMLgorICovCitzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyB7CisJY2hhciAqbmFtZTsJCS8qIHN0cmVhbSBpZGVudGlmaWVyICovCisJaW50IHBkY194ZmVyX3NpemU7CS8qIFBEQyBjb3VudGVyIGluY3JlbWVudCBpbiBieXRlcyAqLworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2M7CS8qIFNTQyBkZXZpY2UgZm9yIHN0cmVhbSAqLworCXN0cnVjdCBhdDMyX3BkY19yZWdzICpwZGM7CS8qIFBEQyByZWdpc3RlciBpbmZvICovCisJc3RydWN0IGF0MzJfc3NjX21hc2sgKm1hc2s7CS8qIFNTQyBtYXNrIGluZm8gKi8KKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKwl2b2lkICgqZG1hX2ludHJfaGFuZGxlcikgKHUzMiwgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICopOworfTsKKworCisKKy8qCisgKiBUaGUgQVQzMiBBU29DIHBsYXRmb3JtIGRyaXZlcgorICovCitleHRlcm4gc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gYXQzMl9zb2NfcGxhdGZvcm07CisKKworCisvKgorICogU1NDIHJlZ2lzdGVyIGFjY2VzcyAoc2luY2Ugc3NjX3dyaXRlbCgpIC8gc3NjX3JlYWRsKCkgcmVxdWlyZSBsaXRlcmFsIG5hbWUpCisgKi8KKyNkZWZpbmUgc3NjX3JlYWR4KGJhc2UsIHJlZykgICAgICAgICAgICAoX19yYXdfcmVhZGwoKGJhc2UpICsgKHJlZykpKQorI2RlZmluZSBzc2Nfd3JpdGV4KGJhc2UsIHJlZywgdmFsdWUpICAgIF9fcmF3X3dyaXRlbCgodmFsdWUpLCAoYmFzZSkgKyAocmVnKSkKKworI2VuZGlmIC8qIF9fU09VTkRfU09DX0FUMzJfQVQzMl9QQ01fSCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYyBiL3NvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVmNjQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmMKQEAgLTAsMCArMSw4NDkgQEAKKy8qIHNvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmMKKyAqIEFTb0MgcGxhdGZvcm0gZHJpdmVyIGZvciBBVDMyIHVzaW5nIFNTQyBhcyBEQUkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTG9uZyBSYW5nZSBTeXN0ZW1zCisgKiAgICBHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIE5vdGUgdGhhdCB0aGlzIGlzIGJhc2ljYWxseSBhIHBvcnQgb2YgdGhlIHNvdW5kL3NvYy9hdDkxLXNzYy5jIHRvCisgKiB0aGUgQVZSMzIga2VybmVsLiAgVGhhbmtzIHRvIEZyYW5rIE1hbmRhcmlubyBmb3IgdGhhdCBjb2RlLgorICovCisKKy8qICNkZWZpbmUgREVCVUcgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvYXRtZWxfcGRjLmg+CisjaW5jbHVkZSA8bGludXgvYXRtZWwtc3NjLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKworI2luY2x1ZGUgImF0MzItcGNtLmgiCisjaW5jbHVkZSAiYXQzMi1zc2MuaCIKKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBDb25zdGFudHMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjZGVmaW5lIE5VTV9TU0NfREVWSUNFUwkJMworCisvKgorICogU1NDIGRpcmVjdGlvbiBtYXNrcworICovCisjZGVmaW5lIFNTQ19ESVJfTUFTS19VTlVTRUQJMAorI2RlZmluZSBTU0NfRElSX01BU0tfUExBWUJBQ0sJMQorI2RlZmluZSBTU0NfRElSX01BU0tfQ0FQVFVSRQkyCisKKy8qCisgKiBTU0MgcmVnaXN0ZXIgdmFsdWVzIHRoYXQgQXRtZWwgbGVmdCBvdXQgb2YgPGxpbnV4L2F0bWVsLXNzYy5oPi4gIFRoZXNlCisgKiBhcmUgZXhwZWN0ZWQgdG8gYmUgdXNlZCB3aXRoIFNTQ19CRgorICovCisvKiBTVEFSVCBiaXQgZmllbGQgdmFsdWVzICovCisjZGVmaW5lIFNTQ19TVEFSVF9DT05USU5VT1VTCTAKKyNkZWZpbmUgU1NDX1NUQVJUX1RYX1JYCQkxCisjZGVmaW5lIFNTQ19TVEFSVF9MT1dfUkYJMgorI2RlZmluZSBTU0NfU1RBUlRfSElHSF9SRgkzCisjZGVmaW5lIFNTQ19TVEFSVF9GQUxMSU5HX1JGCTQKKyNkZWZpbmUgU1NDX1NUQVJUX1JJU0lOR19SRgk1CisjZGVmaW5lIFNTQ19TVEFSVF9MRVZFTF9SRgk2CisjZGVmaW5lIFNTQ19TVEFSVF9FREdFX1JGCTcKKyNkZWZpbmUgU1NTX1NUQVJUX0NPTVBBUkVfMAk4CisKKy8qIENLSSBiaXQgZmllbGQgdmFsdWVzICovCisjZGVmaW5lIFNTQ19DS0lfRkFMTElORwkJMAorI2RlZmluZSBTU0NfQ0tJX1JJU0lORwkJMQorCisvKiBDS08gYml0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBTU0NfQ0tPX05PTkUJCTAKKyNkZWZpbmUgU1NDX0NLT19DT05USU5VT1VTCTEKKyNkZWZpbmUgU1NDX0NLT19UUkFOU0ZFUgkyCisKKy8qIENLUyBiaXQgZmllbGQgdmFsdWVzICovCisjZGVmaW5lIFNTQ19DS1NfRElWCQkwCisjZGVmaW5lIFNTQ19DS1NfQ0xPQ0sJCTEKKyNkZWZpbmUgU1NDX0NLU19QSU4JCTIKKworLyogRlNFREdFIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0ZTRURHRV9QT1NJVElWRQkwCisjZGVmaW5lIFNTQ19GU0VER0VfTkVHQVRJVkUJMQorCisvKiBGU09TIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0ZTT1NfTk9ORQkJMAorI2RlZmluZSBTU0NfRlNPU19ORUdBVElWRQkxCisjZGVmaW5lIFNTQ19GU09TX1BPU0lUSVZFCTIKKyNkZWZpbmUgU1NDX0ZTT1NfTE9XCQkzCisjZGVmaW5lIFNTQ19GU09TX0hJR0gJCTQKKyNkZWZpbmUgU1NDX0ZTT1NfVE9HR0xFCQk1CisKKyNkZWZpbmUgU1RBUlRfREVMQVkJCTEKKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBNb2R1bGUgZGF0YQorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiBTU0MgUERDIHJlZ2lzdGVyZWQgcmVxdWlyZWQgYnkgdGhlIFBDTSBETUEgZW5naW5lCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQzMl9wZGNfcmVncyBwZGNfdHhfcmVnID0geworCS54cHIgPSBTU0NfUERDX1RQUiwKKwkueGNyID0gU1NDX1BEQ19UQ1IsCisJLnhucHIgPSBTU0NfUERDX1ROUFIsCisJLnhuY3IgPSBTU0NfUERDX1ROQ1IsCit9OworCisKKworc3RhdGljIHN0cnVjdCBhdDMyX3BkY19yZWdzIHBkY19yeF9yZWcgPSB7CisJLnhwciA9IFNTQ19QRENfUlBSLAorCS54Y3IgPSBTU0NfUERDX1JDUiwKKwkueG5wciA9IFNTQ19QRENfUk5QUiwKKwkueG5jciA9IFNTQ19QRENfUk5DUiwKK307CisKKworCisvKgorICogU1NDIGFuZCBQREMgc3RhdHVzIGJpdHMgZm9yIHRyYW5zbWl0IGFuZCByZWNlaXZlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQzMl9zc2NfbWFzayBzc2NfdHhfbWFzayA9IHsKKwkuc3NjX2VuYWJsZSA9IFNTQ19CSVQoQ1JfVFhFTiksCisJLnNzY19kaXNhYmxlID0gU1NDX0JJVChDUl9UWERJUyksCisJLnNzY19lbmR4ID0gU1NDX0JJVChTUl9FTkRUWCksCisJLnNzY19lbmRidWYgPSBTU0NfQklUKFNSX1RYQlVGRSksCisJLnBkY19lbmFibGUgPSBTU0NfQklUKFBEQ19QVENSX1RYVEVOKSwKKwkucGRjX2Rpc2FibGUgPSBTU0NfQklUKFBEQ19QVENSX1RYVERJUyksCit9OworCisKKworc3RhdGljIHN0cnVjdCBhdDMyX3NzY19tYXNrIHNzY19yeF9tYXNrID0geworCS5zc2NfZW5hYmxlID0gU1NDX0JJVChDUl9SWEVOKSwKKwkuc3NjX2Rpc2FibGUgPSBTU0NfQklUKENSX1JYRElTKSwKKwkuc3NjX2VuZHggPSBTU0NfQklUKFNSX0VORFJYKSwKKwkuc3NjX2VuZGJ1ZiA9IFNTQ19CSVQoU1JfUlhCVUZGKSwKKwkucGRjX2VuYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfUlhURU4pLAorCS5wZGNfZGlzYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfUlhURElTKSwKK307CisKKworCisvKgorICogRE1BIHBhcmFtZXRlcnMgZm9yIGVhY2ggU1NDCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyBzc2NfZG1hX3BhcmFtc1tOVU1fU1NDX0RFVklDRVNdWzJdID0geworCXsKKwkgeworCSAgLm5hbWUgPSAiU1NDMCBQQ00gb3V0IiwKKwkgIC5wZGMgPSAmcGRjX3R4X3JlZywKKwkgIC5tYXNrID0gJnNzY190eF9tYXNrLAorCSAgfSwKKwkgeworCSAgLm5hbWUgPSAiU1NDMCBQQ00gaW4iLAorCSAgLnBkYyA9ICZwZGNfcnhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3J4X21hc2ssCisJICB9LAorCSB9LAorCXsKKwkgeworCSAgLm5hbWUgPSAiU1NDMSBQQ00gb3V0IiwKKwkgIC5wZGMgPSAmcGRjX3R4X3JlZywKKwkgIC5tYXNrID0gJnNzY190eF9tYXNrLAorCSAgfSwKKwkgeworCSAgLm5hbWUgPSAiU1NDMSBQQ00gaW4iLAorCSAgLnBkYyA9ICZwZGNfcnhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3J4X21hc2ssCisJICB9LAorCSB9LAorCXsKKwkgeworCSAgLm5hbWUgPSAiU1NDMiBQQ00gb3V0IiwKKwkgIC5wZGMgPSAmcGRjX3R4X3JlZywKKwkgIC5tYXNrID0gJnNzY190eF9tYXNrLAorCSAgfSwKKwkgeworCSAgLm5hbWUgPSAiU1NDMiBQQ00gaW4iLAorCSAgLnBkYyA9ICZwZGNfcnhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3J4X21hc2ssCisJICB9LAorCSB9LAorfTsKKworCisKK3N0YXRpYyBzdHJ1Y3QgYXQzMl9zc2NfaW5mbyBzc2NfaW5mb1tOVU1fU1NDX0RFVklDRVNdID0geworCXsKKwkgLm5hbWUgPSAic3NjMCIsCisJIC5sb2NrID0gX19TUElOX0xPQ0tfVU5MT0NLRUQoc3NjX2luZm9bMF0ubG9jayksCisJIC5kaXJfbWFzayA9IFNTQ19ESVJfTUFTS19VTlVTRUQsCisJIC5pbml0aWFsaXplZCA9IDAsCisJIH0sCisJeworCSAubmFtZSA9ICJzc2MxIiwKKwkgLmxvY2sgPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzc2NfaW5mb1sxXS5sb2NrKSwKKwkgLmRpcl9tYXNrID0gU1NDX0RJUl9NQVNLX1VOVVNFRCwKKwkgLmluaXRpYWxpemVkID0gMCwKKwkgfSwKKwl7CisJIC5uYW1lID0gInNzYzIiLAorCSAubG9jayA9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHNzY19pbmZvWzJdLmxvY2spLAorCSAuZGlyX21hc2sgPSBTU0NfRElSX01BU0tfVU5VU0VELAorCSAuaW5pdGlhbGl6ZWQgPSAwLAorCSB9LAorfTsKKworCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIElTUgorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiBTU0MgaW50ZXJydXB0IGhhbmRsZXIuICBQYXNzZXMgUERDIGludGVycnVwdHMgdG8gdGhlIERNQSBpbnRlcnJ1cHQKKyAqIGhhbmRsZXIgaW4gdGhlIFBDTSBkcml2ZXIuCisgKi8KK3N0YXRpYyBpcnFyZXR1cm5fdCBhdDMyX3NzY19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9IGRldl9pZDsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKwl1MzIgc3NjX3NyOworCXUzMiBzc2Nfc3Vic3RyZWFtX21hc2s7CisJaW50IGk7CisKKwlzc2Nfc3IgPSAoc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFNSKSAmCisJCSAgc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIElNUikpOworCisJLyoKKwkgKiBMb29wIHRocm91Z2ggc3Vic3RyZWFtcyBhdHRhY2hlZCB0byB0aGlzIFNTQy4gIElmIGEgRE1BLXJlbGF0ZWQKKwkgKiBpbnRlcnJ1cHQgb2NjdXJlZCBvbiB0aGF0IHN1YnN0cmVhbSwgY2FsbCB0aGUgRE1BIGludGVycnVwdAorCSAqIGhhbmRsZXIgZnVuY3Rpb24sIGlmIG9uZSBoYXMgYmVlbiByZWdpc3RlcmVkIGluIHRoZSBkbWFfcGFyYW0KKwkgKiBzdHJ1Y3R1cmUgYnkgdGhlIFBDTSBkcml2ZXIuCisJICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3NjX3AtPmRtYV9wYXJhbXMpOyBpKyspIHsKKwkJZG1hX3BhcmFtcyA9IHNzY19wLT5kbWFfcGFyYW1zW2ldOworCisJCWlmICgoZG1hX3BhcmFtcyAhPSBOVUxMKSAmJgorCQkgICAgKGRtYV9wYXJhbXMtPmRtYV9pbnRyX2hhbmRsZXIgIT0gTlVMTCkpIHsKKwkJCXNzY19zdWJzdHJlYW1fbWFzayA9IChkbWFfcGFyYW1zLT5tYXNrLT5zc2NfZW5keCB8CisJCQkJCSAgICAgIGRtYV9wYXJhbXMtPm1hc2stPnNzY19lbmRidWYpOworCQkJaWYgKHNzY19zciAmIHNzY19zdWJzdHJlYW1fbWFzaykgeworCQkJCWRtYV9wYXJhbXMtPmRtYV9pbnRyX2hhbmRsZXIoc3NjX3NyLAorCQkJCQkJCSAgICAgZG1hX3BhcmFtcy0+CisJCQkJCQkJICAgICBzdWJzdHJlYW0pOworCQkJfQorCQl9CisJfQorCisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBEQUkgZnVuY3Rpb25zCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIFN0YXJ0dXAuICBPbmx5IHRoYXQgb25lIHN1YnN0cmVhbSBhbGxvd2VkIGluIGVhY2ggZGlyZWN0aW9uLgorICovCitzdGF0aWMgaW50IGF0MzJfc3NjX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tydGQtPmRhaS0+Y3B1X2RhaS0+aWRdOworCWludCBkaXJfbWFzazsKKworCWRpcl9tYXNrID0gKChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSA/CisJCSAgICBTU0NfRElSX01BU0tfUExBWUJBQ0sgOiBTU0NfRElSX01BU0tfQ0FQVFVSRSk7CisKKwlzcGluX2xvY2tfaXJxKCZzc2NfcC0+bG9jayk7CisJaWYgKHNzY19wLT5kaXJfbWFzayAmIGRpcl9tYXNrKSB7CisJCXNwaW5fdW5sb2NrX2lycSgmc3NjX3AtPmxvY2spOworCQlyZXR1cm4gLUVCVVNZOworCX0KKwlzc2NfcC0+ZGlyX21hc2sgfD0gZGlyX21hc2s7CisJc3Bpbl91bmxvY2tfaXJxKCZzc2NfcC0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworCisKKy8qCisgKiBTaHV0ZG93bi4gIENsZWFyIERNQSBwYXJhbWV0ZXJzIGFuZCBzaHV0ZG93biB0aGUgU1NDIGlmIHRoZXJlCisgKiBhcmUgbm8gb3RoZXIgc3Vic3RyZWFtcyBvcGVuLgorICovCitzdGF0aWMgdm9pZCBhdDMyX3NzY19zaHV0ZG93bihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW3J0ZC0+ZGFpLT5jcHVfZGFpLT5pZF07CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKmRtYV9wYXJhbXM7CisJaW50IGRpcl9tYXNrOworCisJZG1hX3BhcmFtcyA9IHNzY19wLT5kbWFfcGFyYW1zW3N1YnN0cmVhbS0+c3RyZWFtXTsKKworCWlmIChkbWFfcGFyYW1zICE9IE5VTEwpIHsKKwkJc3NjX3dyaXRlbChkbWFfcGFyYW1zLT5zc2MtPnJlZ3MsIENSLAorCQkJICAgZG1hX3BhcmFtcy0+bWFzay0+c3NjX2Rpc2FibGUpOworCQlwcl9kZWJ1ZygiJXMgZGlzYWJsZWQgU1NDX1NSPTB4JTA4eFxuIiwKKwkJCSAoc3Vic3RyZWFtLT5zdHJlYW0gPyAicmVjZWl2ZXIiIDogInRyYW5zbWl0IiksCisJCQkgc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFNSKSk7CisKKwkJZG1hX3BhcmFtcy0+c3NjID0gTlVMTDsKKwkJZG1hX3BhcmFtcy0+c3Vic3RyZWFtID0gTlVMTDsKKwkJc3NjX3AtPmRtYV9wYXJhbXNbc3Vic3RyZWFtLT5zdHJlYW1dID0gTlVMTDsKKwl9CisKKworCWRpcl9tYXNrID0gMSA8PCBzdWJzdHJlYW0tPnN0cmVhbTsKKwlzcGluX2xvY2tfaXJxKCZzc2NfcC0+bG9jayk7CisJc3NjX3AtPmRpcl9tYXNrICY9IH5kaXJfbWFzazsKKwlpZiAoIXNzY19wLT5kaXJfbWFzaykgeworCQkvKiBTaHV0ZG93biB0aGUgU1NDIGNsb2NrICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU3RvcHBpbmcgdXNlciAlZCBjbG9ja1xuIiwKKwkJCSBzc2NfcC0+c3NjLT51c2VyKTsKKwkJY2xrX2Rpc2FibGUoc3NjX3AtPnNzYy0+Y2xrKTsKKworCQlpZiAoc3NjX3AtPmluaXRpYWxpemVkKSB7CisJCQlmcmVlX2lycShzc2NfcC0+c3NjLT5pcnEsIHNzY19wKTsKKwkJCXNzY19wLT5pbml0aWFsaXplZCA9IDA7CisJCX0KKworCQkvKiBSZXNldCB0aGUgU1NDICovCisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgQ1IsIFNTQ19CSVQoQ1JfU1dSU1QpKTsKKworCQkvKiBjbGVhciB0aGUgU1NDIGRpdmlkZXJzICovCisJCXNzY19wLT5jbXJfZGl2ID0gMDsKKwkJc3NjX3AtPnRjbXJfcGVyaW9kID0gMDsKKwkJc3NjX3AtPnJjbXJfcGVyaW9kID0gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxKCZzc2NfcC0+bG9jayk7Cit9CisKKworCisvKgorICogU2V0IHRoZSBTU0Mgc3lzdGVtIGNsb2NrIHJhdGUKKyAqLworc3RhdGljIGludCBhdDMyX3NzY19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCisJCQkJICAgaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJLyogVE9ETzogV2hhdCB0aGUgaGVjayBkbyBJIGRvIGhlcmU/ICovCisJcmV0dXJuIDA7Cit9CisKKworCisvKgorICogUmVjb3JkIERBSSBmb3JtYXQgZm9yIHVzZSBieSBod19wYXJhbXMoKQorICovCitzdGF0aWMgaW50IGF0MzJfc3NjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKKwkJCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwlzc2NfcC0+ZGFpZm10ID0gZm10OworCXJldHVybiAwOworfQorCisKKworLyoKKyAqIFJlY29yZCBTU0MgY2xvY2sgZGl2aWRlcnMgZm9yIHVzZSBpbiBod19wYXJhbXMoKQorICovCitzdGF0aWMgaW50IGF0MzJfc3NjX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKKwkJCQkgICBpbnQgZGl2X2lkLCBpbnQgZGl2KQoreworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwlzd2l0Y2ggKGRpdl9pZCkgeworCWNhc2UgQVQzMl9TU0NfQ01SX0RJVjoKKwkJLyoKKwkJICogVGhlIHNhbWUgbWFzdGVyIGNsb2NrIGRpdmlkZXIgaXMgdXNlZCBmb3IgYm90aAorCQkgKiB0cmFuc21pdCBhbmQgcmVjZWl2ZSwgc28gaWYgYSB2YWx1ZSBoYXMgYWxyZWFkeQorCQkgKiBiZWVuIHNldCwgaXQgbXVzdCBtYXRjaCB0aGlzIHZhbHVlCisJCSAqLworCQlpZiAoc3NjX3AtPmNtcl9kaXYgPT0gMCkKKwkJCXNzY19wLT5jbXJfZGl2ID0gZGl2OworCQllbHNlIGlmIChkaXYgIT0gc3NjX3AtPmNtcl9kaXYpCisJCQlyZXR1cm4gLUVCVVNZOworCQlicmVhazsKKworCWNhc2UgQVQzMl9TU0NfVENNUl9QRVJJT0Q6CisJCXNzY19wLT50Y21yX3BlcmlvZCA9IGRpdjsKKwkJYnJlYWs7CisKKwljYXNlIEFUMzJfU1NDX1JDTVJfUEVSSU9EOgorCQlzc2NfcC0+cmNtcl9wZXJpb2QgPSBkaXY7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworCisvKgorICogQ29uZmlndXJlIHRoZSBTU0MKKyAqLworc3RhdGljIGludCBhdDMyX3NzY19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJaW50IGlkID0gcnRkLT5kYWktPmNwdV9kYWktPmlkOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tpZF07CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKmRtYV9wYXJhbXM7CisJaW50IGNoYW5uZWxzLCBiaXRzOworCXUzMiB0Zm1yLCByZm1yLCB0Y21yLCByY21yOworCWludCBzdGFydF9ldmVudDsKKwlpbnQgcmV0OworCisKKwkvKgorCSAqIEN1cnJlbnRseSwgdGhlcmUgaXMgb25seSBvbmUgc2V0IG9mIGRtYV9wYXJhbXMgZm9yIGVhY2ggZGlyZWN0aW9uLgorCSAqIElmIG1vcmUgYXJlIGFkZGVkLCB0aGlzIGNvZGUgd2lsbCBoYXZlIHRvIGJlIGNoYW5nZWQgdG8gc2VsZWN0CisJICogdGhlIHByb3BlciBzZXQKKwkgKi8KKwlkbWFfcGFyYW1zID0gJnNzY19kbWFfcGFyYW1zW2lkXVtzdWJzdHJlYW0tPnN0cmVhbV07CisJZG1hX3BhcmFtcy0+c3NjID0gc3NjX3AtPnNzYzsKKwlkbWFfcGFyYW1zLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisKKwlzc2NfcC0+ZG1hX3BhcmFtc1tzdWJzdHJlYW0tPnN0cmVhbV0gPSBkbWFfcGFyYW1zOworCisKKwkvKgorCSAqIFRoZSBjcHVfZGFpLT5kbWFfZGF0YSBmaWVsZCBpcyBvbmx5IHVzZWQgdG8gY29tbXVuaWNhdGUgdGhlCisJICogYXBwcm9wcmlhdGUgRE1BIHBhcmFtZXRlcnMgdG8gdGhlIFBDTSBkcml2ZXIncyBod19wYXJhbXMoKQorCSAqIGZ1bmN0aW9uLiAgSXQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBhcyBpdAorCSAqIGlzIGNvbW1vbiB0byBhbGwgc3Vic3RyZWFtcy4KKwkgKi8KKwlydGQtPmRhaS0+Y3B1X2RhaS0+ZG1hX2RhdGEgPSBkbWFfcGFyYW1zOworCisJY2hhbm5lbHMgPSBwYXJhbXNfY2hhbm5lbHMocGFyYW1zKTsKKworCisJLyoKKwkgKiBEZXRlcm1pbmUgc2FtcGxlIHNpemUgaW4gYml0cyBhbmQgdGhlIFBEQyBpbmNyZW1lbnQKKwkgKi8KKwlzd2l0Y2ggKHBhcmFtc19mb3JtYXQocGFyYW1zKSkgeworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TODoKKwkJYml0cyA9IDg7CisJCWRtYV9wYXJhbXMtPnBkY194ZmVyX3NpemUgPSAxOworCQlicmVhazsKKworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTY6CisJCWJpdHMgPSAxNjsKKwkJZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSA9IDI7CisJCWJyZWFrOworCisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MyNDoKKwkJYml0cyA9IDI0OworCQlkbWFfcGFyYW1zLT5wZGNfeGZlcl9zaXplID0gNDsKKwkJYnJlYWs7CisKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzMyOgorCQliaXRzID0gMzI7CisJCWRtYV9wYXJhbXMtPnBkY194ZmVyX3NpemUgPSA0OworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXByX3dhcm5pbmcoImF0MzItc3NjOiBVbnN1cHBvcnRlZCBQQ00gZm9ybWF0ICVkIiwKKwkJCSAgIHBhcmFtc19mb3JtYXQocGFyYW1zKSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlwcl9kZWJ1ZygiYXQzMi1zc2M6IGJpdHMgPSAlZCwgcGRjX3hmZXJfc2l6ZSA9ICVkLCBjaGFubmVscyA9ICVkXG4iLAorCQkgYml0cywgZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSwgY2hhbm5lbHMpOworCisKKwkvKgorCSAqIFRoZSBTU0Mgb25seSBzdXBwb3J0cyB1cCB0byAxNi1iaXQgc2FtcGxlcyBpbiBJMlMgZm9ybWF0LCBkdWUKKwkgKiB0byB0aGUgc2l6ZSBvZiB0aGUgRnJhbWUgTW9kZSBSZWdpc3RlciBGU0xFTiBmaWVsZC4KKwkgKi8KKwlpZiAoKHNzY19wLT5kYWlmbXQgJiBTTkRfU09DX0RBSUZNVF9GT1JNQVRfTUFTSykgPT0gU05EX1NPQ19EQUlGTVRfSTJTKQorCQlpZiAoYml0cyA+IDE2KSB7CisJCQlwcl93YXJuaW5nKCJhdDMyLXNzYzogIgorCQkJCSAgICJzYW1wbGUgc2l6ZSAlZCBpcyB0b28gbGFyZ2UgZm9yIEkyU1xuIiwKKwkJCQkgICBiaXRzKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKworCS8qCisJICogQ29tcHV0ZSB0aGUgU1NDIHJlZ2lzdGVyIHNldHRpbmdzCisJICovCisJc3dpdGNoIChzc2NfcC0+ZGFpZm10ICYgKFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLIHwKKwkJCQkgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgorCQkvKgorCQkgKiBJMlMgZm9ybWF0LCBTU0MgcHJvdmlkZXMgQkNMSyBhbmQgTFJTIGNsb2Nrcy4KKwkJICoKKwkJICogVGhlIFNTQyB0cmFuc21pdCBhbmQgcmVjZWl2ZSBjbG9ja3MgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZQorCQkgKiBNQ0sgZGl2aWRlciwgYW5kIHRoZSBCQ0xLIHNpZ25hbCBpcyBvdXRwdXQgb24gdGhlIFNTQyBUSyBsaW5lCisJCSAqLworCQlwcl9kZWJ1ZygiYXQzMi1zc2M6IFNTQyBtb2RlIGlzIEkyUyBCQ0xLIC8gRlJBTUUgbWFzdGVyXG4iKTsKKwkJcmNtciA9IChTU0NfQkYoUkNNUl9QRVJJT0QsIHNzY19wLT5yY21yX3BlcmlvZCkgfAorCQkJU1NDX0JGKFJDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkgfAorCQkJU1NDX0JGKFJDTVJfU1RBUlQsIFNTQ19TVEFSVF9GQUxMSU5HX1JGKSB8CisJCQlTU0NfQkYoUkNNUl9DS0ksIFNTQ19DS0lfUklTSU5HKSB8CisJCQlTU0NfQkYoUkNNUl9DS08sIFNTQ19DS09fTk9ORSkgfAorCQkJU1NDX0JGKFJDTVJfQ0tTLCBTU0NfQ0tTX0RJVikpOworCisJCXJmbXIgPSAoU1NDX0JGKFJGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoUkZNUl9GU09TLCBTU0NfRlNPU19ORUdBVElWRSkgfAorCQkJU1NDX0JGKFJGTVJfRlNMRU4sIGJpdHMgLSAxKSB8CisJCQlTU0NfQkYoUkZNUl9EQVROQiwgY2hhbm5lbHMgLSAxKSB8CisJCQlTU0NfQklUKFJGTVJfTVNCRikgfCBTU0NfQkYoUkZNUl9EQVRMRU4sIGJpdHMgLSAxKSk7CisKKwkJdGNtciA9IChTU0NfQkYoVENNUl9QRVJJT0QsIHNzY19wLT50Y21yX3BlcmlvZCkgfAorCQkJU1NDX0JGKFRDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkgfAorCQkJU1NDX0JGKFRDTVJfU1RBUlQsIFNTQ19TVEFSVF9GQUxMSU5HX1JGKSB8CisJCQlTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfRkFMTElORykgfAorCQkJU1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX0NPTlRJTlVPVVMpIHwKKwkJCVNTQ19CRihUQ01SX0NLUywgU1NDX0NLU19ESVYpKTsKKworCQl0Zm1yID0gKFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNPUywgU1NDX0ZTT1NfTkVHQVRJVkUpIHwKKwkJCVNTQ19CRihURk1SX0ZTTEVOLCBiaXRzIC0gMSkgfAorCQkJU1NDX0JGKFRGTVJfREFUTkIsIGNoYW5uZWxzIC0gMSkgfCBTU0NfQklUKFRGTVJfTVNCRikgfAorCQkJU1NDX0JGKFRGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCQlicmVhazsKKworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNOgorCQkvKgorCQkgKiBJMlMgZm9ybWF0LCBDT0RFQyBzdXBwbGllcyBCQ0xLIGFuZCBMUkMgY2xvY2suCisJCSAqCisJCSAqIFRoZSBTU0MgdHJhbnNtaXQgY2xvY2sgaXMgb2J0YWluZWQgZnJvbSB0aGUgQkNMSyBzaWduYWwKKwkJICogb24gdGhlIFRLIGxpbmUsIGFuZCB0aGUgU1NDIHJlY2VpdmUgY2xvY2sgaXMgZ2VuZXJhdGVkIGZyb20KKwkJICogdGhlIHRyYW5zbWl0IGNsb2NrLgorCQkgKgorCQkgKiBGb3Igc2luZ2xlIGNoYW5uZWwgZGF0YSwgb25lIHNhbXBsZSBpcyB0cmFuc2ZlcnJlZCBvbiB0aGUKKwkJICogZmFsbGluZyBlZGdlIG9mIHRoZSBMUkMgY2xvY2suICBGb3IgdHdvIGNoYW5uZWwgZGF0YSwgb25lCisJCSAqIHNhbXBsZSBpcyB0cmFuc2ZlcnJlZCBvbiBib3RoIGVkZ2VzIG9mIHRoZSBMUkMgY2xvY2suCisJCSAqLworCQlwcl9kZWJ1ZygiYXQzMi1zc2M6IFNTQyBtb2RlIGlzIEkyUyBCQ0xLIC8gRlJBTUUgc2xhdmVcbiIpOworCQlzdGFydF9ldmVudCA9ICgoY2hhbm5lbHMgPT0gMSkgPworCQkJICAgICAgIFNTQ19TVEFSVF9GQUxMSU5HX1JGIDogU1NDX1NUQVJUX0VER0VfUkYpOworCisJCXJjbXIgPSAoU1NDX0JGKFJDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkgfAorCQkJU1NDX0JGKFJDTVJfU1RBUlQsIHN0YXJ0X2V2ZW50KSB8CisJCQlTU0NfQkYoUkNNUl9DS0ksIFNTQ19DS0lfUklTSU5HKSB8CisJCQlTU0NfQkYoUkNNUl9DS08sIFNTQ19DS09fTk9ORSkgfAorCQkJU1NDX0JGKFJDTVJfQ0tTLCBTU0NfQ0tTX0NMT0NLKSk7CisKKwkJcmZtciA9IChTU0NfQkYoUkZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0ZTT1MsIFNTQ19GU09TX05PTkUpIHwKKwkJCVNTQ19CSVQoUkZNUl9NU0JGKSB8IFNTQ19CRihSRk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKworCQl0Y21yID0gKFNTQ19CRihUQ01SX1NUVERMWSwgU1RBUlRfREVMQVkpIHwKKwkJCVNTQ19CRihUQ01SX1NUQVJULCBzdGFydF9ldmVudCkgfAorCQkJU1NDX0JGKFRDTVJfQ0tJLCBTU0NfQ0tJX0ZBTExJTkcpIHwKKwkJCVNTQ19CRihUQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoVENNUl9DS1MsIFNTQ19DS1NfUElOKSk7CisKKwkJdGZtciA9IChTU0NfQkYoVEZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihURk1SX0ZTT1MsIFNTQ19GU09TX05PTkUpIHwKKwkJCVNTQ19CSVQoVEZNUl9NU0JGKSB8IFNTQ19CRihURk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKwkJYnJlYWs7CisKKworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0EgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgorCQkvKgorCQkgKiBEU1AvUENNIE1vZGUgQSBmb3JtYXQsIFNTQyBwcm92aWRlcyBCQ0xLIGFuZCBMUkMgY2xvY2tzLgorCQkgKgorCQkgKiBUaGUgU1NDIHRyYW5zbWl0IGFuZCByZWNlaXZlIGNsb2NrcyBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlCisJCSAqIE1DSyBkaXZpZGVyLCBhbmQgdGhlIEJDTEsgc2lnbmFsIGlzIG91dHB1dCBvbiB0aGUgU1NDIFRLIGxpbmUKKwkJICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU1NDIG1vZGUgaXMgRFNQIEEgQkNMSyAvIEZSQU1FIG1hc3RlclxuIik7CisJCXJjbXIgPSAoU1NDX0JGKFJDTVJfUEVSSU9ELCBzc2NfcC0+cmNtcl9wZXJpb2QpIHwKKwkJCVNTQ19CRihSQ01SX1NUVERMWSwgMSkgfAorCQkJU1NDX0JGKFJDTVJfU1RBUlQsIFNTQ19TVEFSVF9SSVNJTkdfUkYpIHwKKwkJCVNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpIHwKKwkJCVNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoUkNNUl9DS1MsIFNTQ19DS1NfRElWKSk7CisKKwkJcmZtciA9IChTU0NfQkYoUkZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0ZTT1MsIFNTQ19GU09TX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoUkZNUl9EQVROQiwgY2hhbm5lbHMgLSAxKSB8CisJCQlTU0NfQklUKFJGTVJfTVNCRikgfCBTU0NfQkYoUkZNUl9EQVRMRU4sIGJpdHMgLSAxKSk7CisKKwkJdGNtciA9IChTU0NfQkYoVENNUl9QRVJJT0QsIHNzY19wLT50Y21yX3BlcmlvZCkgfAorCQkJU1NDX0JGKFRDTVJfU1RURExZLCAxKSB8CisJCQlTU0NfQkYoVENNUl9TVEFSVCwgU1NDX1NUQVJUX1JJU0lOR19SRikgfAorCQkJU1NDX0JGKFRDTVJfQ0tJLCBTU0NfQ0tJX1JJU0lORykgfAorCQkJU1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX0NPTlRJTlVPVVMpIHwKKwkJCVNTQ19CRihUQ01SX0NLUywgU1NDX0NLU19ESVYpKTsKKworCQl0Zm1yID0gKFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNPUywgU1NDX0ZTT1NfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihURk1SX0RBVE5CLCBjaGFubmVscyAtIDEpIHwKKwkJCVNTQ19CSVQoVEZNUl9NU0JGKSB8IFNTQ19CRihURk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKwkJYnJlYWs7CisKKworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0EgfCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNOgorCWRlZmF1bHQ6CisJCXByX3dhcm5pbmcoImF0MzItc3NjOiB1bnN1cHBvcnRlZCBEQUkgZm9ybWF0IDB4JXhcbiIsCisJCQkgICBzc2NfcC0+ZGFpZm10KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJCWJyZWFrOworCX0KKwlwcl9kZWJ1ZygiYXQzMi1zc2M6IFJDTVI9JTA4eCBSRk1SPSUwOHggVENNUj0lMDh4IFRGTVI9JTA4eFxuIiwKKwkJIHJjbXIsIHJmbXIsIHRjbXIsIHRmbXIpOworCisKKwlpZiAoIXNzY19wLT5pbml0aWFsaXplZCkgeworCQkvKiBlbmFibGUgcGVyaXBoZXJhbCBjbG9jayAqLworCQlwcl9kZWJ1ZygiYXQzMi1zc2M6IFN0YXJ0aW5nIGNsb2NrXG4iKTsKKwkJY2xrX2VuYWJsZShzc2NfcC0+c3NjLT5jbGspOworCisJCS8qIFJlc2V0IHRoZSBTU0MgYW5kIGl0cyBQREMgcmVnaXN0ZXJzICovCisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgQ1IsIFNTQ19CSVQoQ1JfU1dSU1QpKTsKKworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19SUFIsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19SQ1IsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19STlBSLCAwKTsKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfUk5DUiwgMCk7CisKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfVFBSLCAwKTsKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfVENSLCAwKTsKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfVE5QUiwgMCk7CisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1ROQ1IsIDApOworCisJCXJldCA9IHJlcXVlc3RfaXJxKHNzY19wLT5zc2MtPmlycSwgYXQzMl9zc2NfaW50ZXJydXB0LCAwLAorCQkJCSAgc3NjX3AtPm5hbWUsIHNzY19wKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByX3dhcm5pbmcoImF0MzItc3NjOiByZXF1ZXN0IGlycSBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKKwkJCXByX2RlYnVnKCJhdDMyLXNzYzogU3RvcHBpbmcgY2xvY2tcbiIpOworCQkJY2xrX2Rpc2FibGUoc3NjX3AtPnNzYy0+Y2xrKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKworCQlzc2NfcC0+aW5pdGlhbGl6ZWQgPSAxOworCX0KKworCS8qIFNldCBTU0MgY2xvY2sgbW9kZSByZWdpc3RlciAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgQ01SLCBzc2NfcC0+Y21yX2Rpdik7CisKKwkvKiBzZXQgcmVjZWl2ZSBjbG9jayBtb2RlIGFuZCBmb3JtYXQgKi8KKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFJDTVIsIHJjbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUkZNUiwgcmZtcik7CisKKwkvKiBzZXQgdHJhbnNtaXQgY2xvY2sgbW9kZSBhbmQgZm9ybWF0ICovCisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBUQ01SLCB0Y21yKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFRGTVIsIHRmbXIpOworCisJcHJfZGVidWcoImF0MzItc3NjOiBTU0MgaW5pdGlhbGl6ZWRcbiIpOworCXJldHVybiAwOworfQorCisKKworc3RhdGljIGludCBhdDMyX3NzY19wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bcnRkLT5kYWktPmNwdV9kYWktPmlkXTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKworCWRtYV9wYXJhbXMgPSBzc2NfcC0+ZG1hX3BhcmFtc1tzdWJzdHJlYW0tPnN0cmVhbV07CisKKwlzc2Nfd3JpdGVsKGRtYV9wYXJhbXMtPnNzYy0+cmVncywgQ1IsIGRtYV9wYXJhbXMtPm1hc2stPnNzY19lbmFibGUpOworCisJcmV0dXJuIDA7Cit9CisKKworCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IGF0MzJfc3NjX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wOworCisJaWYgKCFjcHVfZGFpLT5hY3RpdmUpCisJCXJldHVybiAwOworCisJc3NjX3AgPSAmc3NjX2luZm9bY3B1X2RhaS0+aWRdOworCisJLyogU2F2ZSB0aGUgc3RhdHVzIHJlZ2lzdGVyIGJlZm9yZSBkaXNhYmxpbmcgdHJhbnNtaXQgYW5kIHJlY2VpdmUgKi8KKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19zciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBTUik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgU1NDX0JJVChDUl9UWERJUykgfCBTU0NfQklUKENSX1JYRElTKSk7CisKKwkvKiBTYXZlIHRoZSBjdXJyZW50IGludGVycnVwdCBtYXNrLCB0aGVuIGRpc2FibGUgdW5tYXNrZWQgaW50ZXJydXB0cyAqLworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX2ltciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBJTVIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgSURSLCBzc2NfcC0+c3NjX3N0YXRlLnNzY19pbXIpOworCisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfY21yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIENNUik7CisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfcmNtciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBSQ01SKTsKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19yZm1yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFJGTVIpOworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX3RjbXIgPSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgVENNUik7CisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGZtciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBURk1SKTsKKworCXJldHVybiAwOworfQorCisKKworc3RhdGljIGludCBhdDMyX3NzY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3A7CisJdTMyIGNyOworCisJaWYgKCFjcHVfZGFpLT5hY3RpdmUpCisJCXJldHVybiAwOworCisJc3NjX3AgPSAmc3NjX2luZm9bY3B1X2RhaS0+aWRdOworCisJLyogcmVzdG9yZSBTU0MgcmVnaXN0ZXIgc2V0dGluZ3MgKi8KKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFRGTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX3RmbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgVENNUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGNtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBSRk1SLCBzc2NfcC0+c3NjX3N0YXRlLnNzY19yZm1yKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFJDTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX3JjbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgQ01SLCBzc2NfcC0+c3NjX3N0YXRlLnNzY19jbXIpOworCisJLyogcmUtZW5hYmxlIGludGVycnVwdHMgKi8KKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIElFUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfaW1yKTsKKworCS8qIFJlLWVuYWJsZSByZWNpZXZlIGFuZCB0cmFuc21pdCBhcyBhcHByb3ByaWF0ZSAqLworCWNyID0gMDsKKwljciB8PQorCSAgICAoc3NjX3AtPnNzY19zdGF0ZS5zc2Nfc3IgJiBTU0NfQklUKFNSX1JYRU4pKSA/IFNTQ19CSVQoQ1JfUlhFTikgOiAwOworCWNyIHw9CisJICAgIChzc2NfcC0+c3NjX3N0YXRlLnNzY19zciAmIFNTQ19CSVQoU1JfVFhFTikpID8gU1NDX0JJVChDUl9UWEVOKSA6IDA7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgY3IpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZSAvKiBDT05GSUdfUE0gKi8KKyMgIGRlZmluZSBhdDMyX3NzY19zdXNwZW5kCU5VTEwKKyMgIGRlZmluZSBhdDMyX3NzY19yZXN1bWUJTlVMTAorI2VuZGlmIC8qIENPTkZJR19QTSAqLworCisKKyNkZWZpbmUgQVQzMl9TU0NfUkFURVMgXAorICAgIChTTkRSVl9QQ01fUkFURV84MDAwICB8IFNORFJWX1BDTV9SQVRFXzExMDI1IHwgU05EUlZfUENNX1JBVEVfMTYwMDAgfCBcCisgICAgIFNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfMzIwMDAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8IFwKKyAgICAgU05EUlZfUENNX1JBVEVfNDgwMDAgfCBTTkRSVl9QQ01fUkFURV84ODIwMCB8IFNORFJWX1BDTV9SQVRFXzk2MDAwKQorCisKKyNkZWZpbmUgQVQzMl9TU0NfRk9STUFUUyBcCisgICAgKFNORFJWX1BDTV9GTVRCSVRfUzggIHwgU05EUlZfUENNX0ZNVEJJVF9TMTYgfCBcCisgICAgIFNORFJWX1BDTV9GTVRCSVRfUzI0IHwgU05EUlZfUENNX0ZNVEJJVF9TMzIpCisKKworc3RydWN0IHNuZF9zb2NfZGFpIGF0MzJfc3NjX2RhaVtOVU1fU1NDX0RFVklDRVNdID0geworCXsKKwkgLm5hbWUgPSAiYXQzMi1zc2MwIiwKKwkgLmlkID0gMCwKKwkgLnR5cGUgPSBTTkRfU09DX0RBSV9QQ00sCisJIC5zdXNwZW5kID0gYXQzMl9zc2Nfc3VzcGVuZCwKKwkgLnJlc3VtZSA9IGF0MzJfc3NjX3Jlc3VtZSwKKwkgLnBsYXliYWNrID0geworCQkgICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgIH0sCisJIC5jYXB0dXJlID0geworCQkgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICB9LAorCSAub3BzID0geworCQkgLnN0YXJ0dXAgPSBhdDMyX3NzY19zdGFydHVwLAorCQkgLnNodXRkb3duID0gYXQzMl9zc2Nfc2h1dGRvd24sCisJCSAucHJlcGFyZSA9IGF0MzJfc3NjX3ByZXBhcmUsCisJCSAuaHdfcGFyYW1zID0gYXQzMl9zc2NfaHdfcGFyYW1zLAorCQkgfSwKKwkgLmRhaV9vcHMgPSB7CisJCSAgICAgLnNldF9zeXNjbGsgPSBhdDMyX3NzY19zZXRfZGFpX3N5c2NsaywKKwkJICAgICAuc2V0X2ZtdCA9IGF0MzJfc3NjX3NldF9kYWlfZm10LAorCQkgICAgIC5zZXRfY2xrZGl2ID0gYXQzMl9zc2Nfc2V0X2RhaV9jbGtkaXYsCisJCSAgICAgfSwKKwkgLnByaXZhdGVfZGF0YSA9ICZzc2NfaW5mb1swXSwKKwkgfSwKKwl7CisJIC5uYW1lID0gImF0MzItc3NjMSIsCisJIC5pZCA9IDEsCisJIC50eXBlID0gU05EX1NPQ19EQUlfUENNLAorCSAuc3VzcGVuZCA9IGF0MzJfc3NjX3N1c3BlbmQsCisJIC5yZXN1bWUgPSBhdDMyX3NzY19yZXN1bWUsCisJIC5wbGF5YmFjayA9IHsKKwkJICAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgICB9LAorCSAuY2FwdHVyZSA9IHsKKwkJICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgfSwKKwkgLm9wcyA9IHsKKwkJIC5zdGFydHVwID0gYXQzMl9zc2Nfc3RhcnR1cCwKKwkJIC5zaHV0ZG93biA9IGF0MzJfc3NjX3NodXRkb3duLAorCQkgLnByZXBhcmUgPSBhdDMyX3NzY19wcmVwYXJlLAorCQkgLmh3X3BhcmFtcyA9IGF0MzJfc3NjX2h3X3BhcmFtcywKKwkJIH0sCisJIC5kYWlfb3BzID0geworCQkgICAgIC5zZXRfc3lzY2xrID0gYXQzMl9zc2Nfc2V0X2RhaV9zeXNjbGssCisJCSAgICAgLnNldF9mbXQgPSBhdDMyX3NzY19zZXRfZGFpX2ZtdCwKKwkJICAgICAuc2V0X2Nsa2RpdiA9IGF0MzJfc3NjX3NldF9kYWlfY2xrZGl2LAorCQkgICAgIH0sCisJIC5wcml2YXRlX2RhdGEgPSAmc3NjX2luZm9bMV0sCisJIH0sCisJeworCSAubmFtZSA9ICJhdDMyLXNzYzIiLAorCSAuaWQgPSAyLAorCSAudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKKwkgLnN1c3BlbmQgPSBhdDMyX3NzY19zdXNwZW5kLAorCSAucmVzdW1lID0gYXQzMl9zc2NfcmVzdW1lLAorCSAucGxheWJhY2sgPSB7CisJCSAgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICAgfSwKKwkgLmNhcHR1cmUgPSB7CisJCSAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgIH0sCisJIC5vcHMgPSB7CisJCSAuc3RhcnR1cCA9IGF0MzJfc3NjX3N0YXJ0dXAsCisJCSAuc2h1dGRvd24gPSBhdDMyX3NzY19zaHV0ZG93biwKKwkJIC5wcmVwYXJlID0gYXQzMl9zc2NfcHJlcGFyZSwKKwkJIC5od19wYXJhbXMgPSBhdDMyX3NzY19od19wYXJhbXMsCisJCSB9LAorCSAuZGFpX29wcyA9IHsKKwkJICAgICAuc2V0X3N5c2NsayA9IGF0MzJfc3NjX3NldF9kYWlfc3lzY2xrLAorCQkgICAgIC5zZXRfZm10ID0gYXQzMl9zc2Nfc2V0X2RhaV9mbXQsCisJCSAgICAgLnNldF9jbGtkaXYgPSBhdDMyX3NzY19zZXRfZGFpX2Nsa2RpdiwKKwkJICAgICB9LAorCSAucHJpdmF0ZV9kYXRhID0gJnNzY19pbmZvWzJdLAorCSB9LAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGF0MzJfc3NjX2RhaSk7CisKKworTU9EVUxFX0FVVEhPUigiR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFUMzIgU1NDIEFTb0MgSW50ZXJmYWNlIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzA1MmRiCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuaApAQCAtMCwwICsxLDU5IEBACisvKiBzb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oCisgKiBBU29DIFNTQyBpbnRlcmZhY2UgZm9yIEF0bWVsIEFUMzIgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IExvbmcgUmFuZ2UgU3lzdGVtcworICogICAgR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fU09VTkRfU09DX0FUMzJfQVQzMl9TU0NfSAorI2RlZmluZSBfX1NPVU5EX1NPQ19BVDMyX0FUMzJfU1NDX0ggX19GSUxFX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvYXRtZWwtc3NjLmg+CisKKyNpbmNsdWRlICJhdDMyLXBjbS5oIgorCisKKworc3RydWN0IGF0MzJfc3NjX3N0YXRlIHsKKwl1MzIgc3NjX2NtcjsKKwl1MzIgc3NjX3JjbXI7CisJdTMyIHNzY19yZm1yOworCXUzMiBzc2NfdGNtcjsKKwl1MzIgc3NjX3RmbXI7CisJdTMyIHNzY19zcjsKKwl1MzIgc3NjX2ltcjsKK307CisKKworCitzdHJ1Y3QgYXQzMl9zc2NfaW5mbyB7CisJY2hhciAqbmFtZTsKKwlzdHJ1Y3Qgc3NjX2RldmljZSAqc3NjOworCXNwaW5sb2NrX3QgbG9jazsJLyogbG9jayBmb3IgZGlyX21hc2sgKi8KKwl1bnNpZ25lZCBzaG9ydCBkaXJfbWFzazsJLyogMD11bnVzZWQsIDE9cGxheWJhY2ssIDI9Y2FwdHVyZSAqLworCXVuc2lnbmVkIHNob3J0IGluaXRpYWxpemVkOwkvKiB0cnVlIGlmIFNTQyBoYXMgYmVlbiBpbml0aWFsaXplZCAqLworCXVuc2lnbmVkIHNob3J0IGRhaWZtdDsKKwl1bnNpZ25lZCBzaG9ydCBjbXJfZGl2OworCXVuc2lnbmVkIHNob3J0IHRjbXJfcGVyaW9kOworCXVuc2lnbmVkIHNob3J0IHJjbXJfcGVyaW9kOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpkbWFfcGFyYW1zWzJdOworCXN0cnVjdCBhdDMyX3NzY19zdGF0ZSBzc2Nfc3RhdGU7Cit9OworCisKKy8qIFNTQyBkaXZpZGVyIGlkcyAqLworI2RlZmluZSBBVDMyX1NTQ19DTVJfRElWICAgICAgICAwCS8qIE1DSyBkaXZpZGVyIGZvciBCQ0xLICovCisjZGVmaW5lIEFUMzJfU1NDX1RDTVJfUEVSSU9EICAgIDEJLyogQkNMSyBkaXZpZGVyIGZvciB0cmFuc21pdCBGUyAqLworI2RlZmluZSBBVDMyX1NTQ19SQ01SX1BFUklPRCAgICAyCS8qIEJDTEsgZGl2aWRlciBmb3IgcmVjZWl2ZSBGUyAqLworCisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYXQzMl9zc2NfZGFpW107CisKKworCisjZW5kaWYgLyogX19TT1VORF9TT0NfQVQzMl9BVDMyX1NTQ19IICovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jIGIvc291bmQvc29jL2F0MzIvcGxheXBhcV93bTg1MTAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWU1ZjhlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvcGxheXBhcV93bTg1MTAuYwpAQCAtMCwwICsxLDUyMiBAQAorLyogc291bmQvc29jL2F0MzIvcGxheXBhcV93bTg1MTAuYworICogQVNvQyBtYWNoaW5lIGRyaXZlciBmb3IgUGxheVBhcSB1c2luZyBXTTg1MTAgY29kZWMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTG9uZyBSYW5nZSBTeXN0ZW1zCisgKiAgICBHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgY29kZSBpcyBsYXJnZWx5IGluc3BpcmVkIGJ5IHNvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYworICoKKyAqIE5PVEU6IElmIHlvdSBkb24ndCBoYXZlIHRoZSBBVDMyIGVuaGFuY2VkIHBvcnRtdXggY29uZmlndXJlZCAod2hpY2gKKyAqIGlzbid0IGN1cnJlbnRseSBpbiB0aGUgbWFpbmxpbmUgb3IgQXRtZWwgcGF0Y2hlZCBrZXJuZWwpLCB5b3Ugd2lsbAorICogbmVlZCB0byBzZXQgdGhlIE1DTEsgcGluIChQQTMwKSB0byBwZXJpcGhlcmFsIEEgaW4geW91ciBib2FyZCBpbml0aWFsaXphdGlvbgorICogY29kZS4gIFNvbWV0aGluZyBsaWtlOgorICoJYXQzMl9zZWxlY3RfcGVyaXBoKEdQSU9fUElOX1BBKDMwKSwgR1BJT19QRVJJUEhfQSwgMCk7CisgKgorICovCisKKy8qICNkZWZpbmUgREVCVUcgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2F0MzJhcDcwMHguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9wb3J0bXV4Lmg+CisKKyNpbmNsdWRlICIuLi9jb2RlY3Mvd204NTEwLmgiCisjaW5jbHVkZSAiYXQzMi1wY20uaCIKKyNpbmNsdWRlICJhdDMyLXNzYy5oIgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBjb25zdGFudHMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjZGVmaW5lIE1DTEtfUElOCQlHUElPX1BJTl9QQSgzMCkKKyNkZWZpbmUgTUNMS19QRVJJUEgJCUdQSU9fUEVSSVBIX0EKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogZGF0YSB0eXBlcworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFNTQyBjbG9ja2luZyBkYXRhICovCitzdHJ1Y3Qgc3NjX2Nsb2NrX2RhdGEgeworCS8qIENNUiBkaXYgKi8KKwl1bnNpZ25lZCBpbnQgY21yX2RpdjsKKworCS8qIEZyYW1lIHBlcmlvZCAoYXMgbmVlZGVkIGJ5IHhDTVIuUEVSSU9EKSAqLworCXVuc2lnbmVkIGludCBwZXJpb2Q7CisKKwkvKiBUaGUgU1NDIGNsb2NrIHJhdGUgdGhlc2Ugc2V0dGluZ3Mgd2hlcmUgY2FsY3VsYXRlZCBmb3IgKi8KKwl1bnNpZ25lZCBsb25nIHNzY19yYXRlOworfTsKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogbW9kdWxlIGRhdGEKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgc3RydWN0IGNsayAqX2djbGswOworc3RhdGljIHN0cnVjdCBjbGsgKl9wbGwwOworCisjZGVmaW5lIENPREVDX0NMSyAoX2djbGswKQorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBTb3VuZCBTT0Mgb3BlcmF0aW9ucworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZiBkZWZpbmVkIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRQorc3RhdGljIHN0cnVjdCBzc2NfY2xvY2tfZGF0YSBwbGF5cGFxX3dtODUxMF9jYWxjX3NzY19jbG9jaygKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcywKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2MgPSBzc2NfcC0+c3NjOworCXN0cnVjdCBzc2NfY2xvY2tfZGF0YSBjZDsKKwl1bnNpZ25lZCBpbnQgcmF0ZSwgd2lkdGhfYml0cywgY2hhbm5lbHM7CisJdW5zaWduZWQgaW50IGJpdHJhdGUsIHNzY19kaXY7CisJdW5zaWduZWQgYWN0dWFsX3JhdGU7CisKKworCS8qCisJICogRmlndXJlIG91dCByZXF1aXJlZCBiaXRyYXRlCisJICovCisJcmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7CisJY2hhbm5lbHMgPSBwYXJhbXNfY2hhbm5lbHMocGFyYW1zKTsKKwl3aWR0aF9iaXRzID0gc25kX3BjbV9mb3JtYXRfcGh5c2ljYWxfd2lkdGgocGFyYW1zX2Zvcm1hdChwYXJhbXMpKTsKKwliaXRyYXRlID0gcmF0ZSAqIHdpZHRoX2JpdHMgKiBjaGFubmVsczsKKworCisJLyoKKwkgKiBGaWd1cmUgb3V0IHJlcXVpcmVkIFNTQyBkaXZpZGVyIGFuZCBwZXJpb2QgZm9yIHJlcXVpcmVkIGJpdHJhdGUKKwkgKi8KKwljZC5zc2NfcmF0ZSA9IGNsa19nZXRfcmF0ZShzc2MtPmNsayk7CisJc3NjX2RpdiA9IGNkLnNzY19yYXRlIC8gYml0cmF0ZTsKKwljZC5jbXJfZGl2ID0gc3NjX2RpdiAvIDI7CisJaWYgKHNzY19kaXYgJiAxKSB7CisJCS8qIHJvdW5kIGNtcl9kaXYgdXAgKi8KKwkJY2QuY21yX2RpdisrOworCX0KKwljZC5wZXJpb2QgPSB3aWR0aF9iaXRzIC0gMTsKKworCisJLyoKKwkgKiBGaW5kIGFjdHVhbCByYXRlLCBjb21wYXJlIHRvIHJlcXVlc3RlZCByYXRlCisJICovCisJYWN0dWFsX3JhdGUgPSAoY2Quc3NjX3JhdGUgLyAoY2QuY21yX2RpdiAqIDIpKSAvICgyICogKGNkLnBlcmlvZCArIDEpKTsKKwlwcl9kZWJ1ZygicGxheXBhcV93bTg1MTA6IFJlcXVlc3QgcmF0ZSA9ICVkLCBhY3R1YWwgcmF0ZSA9ICVkXG4iLAorCQkgcmF0ZSwgYWN0dWFsX3JhdGUpOworCisKKwlyZXR1cm4gY2Q7Cit9CisjZW5kaWYgLyogQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFICovCisKKworCitzdGF0aWMgaW50IHBsYXlwYXFfd204NTEwX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNzY19kZXZpY2UgKnNzYyA9IHNzY19wLT5zc2M7CisJdW5zaWduZWQgaW50IHBsbF9vdXQgPSAwLCBiY2xrID0gMCwgbWNsa19kaXYgPSAwOworCWludCByZXQ7CisKKworCS8qIER1ZSB0byBkaWZmaWN1bHRpZXMgd2l0aCBnZXR0aW5nIHRoZSBjb3JyZWN0IGNsb2NrcyBmcm9tIHRoZSBBVDMyJ3MKKwkgKiBQTEwwLCB3ZSdyZSBnb2luZyB0byBsZXQgdGhlIENPREVDIGJlIGluIGNoYXJnZSBvZiBhbGwgdGhlIGNsb2NrcworCSAqLworI2lmICFkZWZpbmVkIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRQorCWNvbnN0IHVuc2lnbmVkIGludCBmbXQgPSAoU05EX1NPQ19EQUlGTVRfSTJTIHwKKwkJCQkgIFNORF9TT0NfREFJRk1UX05CX05GIHwKKwkJCQkgIFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOworI2Vsc2UKKwlzdHJ1Y3Qgc3NjX2Nsb2NrX2RhdGEgY2Q7CisJY29uc3QgdW5zaWduZWQgaW50IGZtdCA9IChTTkRfU09DX0RBSUZNVF9JMlMgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CisjZW5kaWYKKworCWlmIChzc2MgPT0gTlVMTCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMF9od19wYXJhbXM6IHNzYyBpcyBOVUxMIVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCisJLyoKKwkgKiBGaWd1cmUgb3V0IFBMTCBhbmQgQkNMSyBkaXZpZGVycyBmb3IgV004NTEwCisJICovCisJc3dpdGNoIChwYXJhbXNfcmF0ZShwYXJhbXMpKSB7CisJY2FzZSA0ODAwMDoKKwkJcGxsX291dCA9IDEyMjg4MDAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzE7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgNDQxMDA6CisJCXBsbF9vdXQgPSAxMTI4OTYwMDsKKwkJbWNsa19kaXYgPSBXTTg1MTBfTUNMS0RJVl8xOworCQliY2xrID0gV004NTEwX0JDTEtESVZfODsKKwkJYnJlYWs7CisKKwljYXNlIDIyMDUwOgorCQlwbGxfb3V0ID0gMTEyODk2MDA7CisJCW1jbGtfZGl2ID0gV004NTEwX01DTEtESVZfMjsKKwkJYmNsayA9IFdNODUxMF9CQ0xLRElWXzg7CisJCWJyZWFrOworCisJY2FzZSAxNjAwMDoKKwkJcGxsX291dCA9IDEyMjg4MDAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzM7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgMTEwMjU6CisJCXBsbF9vdXQgPSAxMTI4OTYwMDsKKwkJbWNsa19kaXYgPSBXTTg1MTBfTUNMS0RJVl80OworCQliY2xrID0gV004NTEwX0JDTEtESVZfODsKKwkJYnJlYWs7CisKKwljYXNlIDgwMDA6CisJCXBsbF9vdXQgPSAxMjI4ODAwMDsKKwkJbWNsa19kaXYgPSBXTTg1MTBfTUNMS0RJVl82OworCQliY2xrID0gV004NTEwX0JDTEtESVZfODsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogVW5zdXBwb3J0ZWQgc2FtcGxlIHJhdGUgJWRcbiIsCisJCQkgICBwYXJhbXNfcmF0ZShwYXJhbXMpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisKKwkvKgorCSAqIHNldCBDUFUgYW5kIENPREVDIERBSSBjb25maWd1cmF0aW9uCisJICovCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIGZtdCk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfd2FybmluZygicGxheXBhcV93bTg1MTA6ICIKKwkJCSAgICJGYWlsZWQgdG8gc2V0IENPREVDIERBSSBmb3JtYXQgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgZm10KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogIgorCQkJICAgIkZhaWxlZCB0byBzZXQgQ1BVIERBSSBmb3JtYXQgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisKKwkvKgorCSAqIFNldCBDUFUgY2xvY2sgY29uZmlndXJhdGlvbgorCSAqLworI2lmIGRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisJY2QgPSBwbGF5cGFxX3dtODUxMF9jYWxjX3NzY19jbG9jayhwYXJhbXMsIGNwdV9kYWkpOworCXByX2RlYnVnKCJwbGF5cGFxX3dtODUxMDogY21yX2RpdiA9ICVkLCBwZXJpb2QgPSAlZFxuIiwKKwkJIGNkLmNtcl9kaXYsIGNkLnBlcmlvZCk7CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLCBBVDMyX1NTQ19DTVJfRElWLCBjZC5jbXJfZGl2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogRmFpbGVkIHRvIHNldCBDUFUgQ01SX0RJViAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLCBBVDMyX1NTQ19UQ01SX1BFUklPRCwKKwkJCQkJICBjZC5wZXJpb2QpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiAiCisJCQkgICAiRmFpbGVkIHRvIHNldCBDUFUgdHJhbnNtaXQgcGVyaW9kICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKyNlbmRpZiAvKiBDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVFfU0xBVkUgKi8KKworCisJLyoKKwkgKiBTZXQgQ09ERUMgY2xvY2sgY29uZmlndXJhdGlvbgorCSAqLworCXByX2RlYnVnKCJwbGF5cGFxX3dtODUxMDogIgorCQkgInBsbF9pbiA9ICVsZCwgcGxsX291dCA9ICV1LCBiY2xrID0gJXgsIG1jbGsgPSAleFxuIiwKKwkJIGNsa19nZXRfcmF0ZShDT0RFQ19DTEspLCBwbGxfb3V0LCBiY2xrLCBtY2xrX2Rpdik7CisKKworI2lmICFkZWZpbmVkIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRQorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg1MTBfQkNMS0RJViwgYmNsayk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfd2FybmluZworCQkgICAgKCJwbGF5cGFxX3dtODUxMDogRmFpbGVkIHRvIHNldCBDT0RFQyBEQUkgQkNMS0RJViAoJWQpXG4iLAorCQkgICAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorI2VuZGlmIC8qIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRSAqLworCisKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfcGxsKGNvZGVjX2RhaSwgMCwKKwkJCQkJIGNsa19nZXRfcmF0ZShDT0RFQ19DTEspLCBwbGxfb3V0KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogRmFpbGVkIHRvIHNldCBDT0RFQyBEQUkgUExMICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODUxMF9NQ0xLRElWLCBtY2xrX2Rpdik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfd2FybmluZygicGxheXBhcV93bTg1MTA6IEZhaWxlZCB0byBzZXQgQ09ERUMgTUNMS0RJViAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKworCXJldHVybiAwOworfQorCisKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX29wcyBwbGF5cGFxX3dtODUxMF9vcHMgPSB7CisJLmh3X3BhcmFtcyA9IHBsYXlwYXFfd204NTEwX2h3X3BhcmFtcywKK307CisKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgcGxheXBhcV9kYXBtX3dpZGdldHNbXSA9IHsKKwlTTkRfU09DX0RBUE1fTUlDKCJJbnQgTWljIiwgTlVMTCksCisJU05EX1NPQ19EQVBNX1NQSygiRXh0IFNwayIsIE5VTEwpLAorfTsKKworCisKK3N0YXRpYyBjb25zdCBjaGFyICppbnRlcmNvbltdWzNdID0geworCS8qIHNwZWFrZXIgY29ubmVjdGVkIHRvIFNQS09VVCAqLworCXsiRXh0IFNwayIsIE5VTEwsICJTUEtPVVRQIn0sCisJeyJFeHQgU3BrIiwgTlVMTCwgIlNQS09VVE4ifSwKKworCXsiTWljIEJpYXMiLCBOVUxMLCAiSW50IE1pYyJ9LAorCXsiTUlDTiIsIE5VTEwsICJNaWMgQmlhcyJ9LAorCXsiTUlDUCIsIE5VTEwsICJNaWMgQmlhcyJ9LAorCisJLyogVGVybWluYXRvciAqLworCXtOVUxMLCBOVUxMLCBOVUxMfSwKK307CisKKworCitzdGF0aWMgaW50IHBsYXlwYXFfd204NTEwX2luaXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCWludCBpOworCisJLyoKKwkgKiBBZGQgREFQTSB3aWRnZXRzCisJICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGxheXBhcV9kYXBtX3dpZGdldHMpOyBpKyspCisJCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJnBsYXlwYXFfZGFwbV93aWRnZXRzW2ldKTsKKworCisKKwkvKgorCSAqIFNldHVwIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cworCSAqLworCWZvciAoaSA9IDA7IGludGVyY29uW2ldWzBdICE9IE5VTEw7IGkrKykgeworCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywKKwkJCQkJICAgaW50ZXJjb25baV1bMF0sCisJCQkJCSAgIGludGVyY29uW2ldWzFdLCBpbnRlcmNvbltpXVsyXSk7CisJfQorCisKKwkvKiBhbHdheXMgY29ubmVjdGVkIHBpbnMgKi8KKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkludCBNaWMiKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CisKKworCisJLyogTWFrZSBDU0Igc2hvdyBQTEwgcmF0ZSAqLworCXNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY29kZWMtPmRhaSwgV004NTEwX09QQ0xLRElWLAorCQkJCSAgICAgICBXTTg1MTBfT1BDTEtESVZfMSB8IDQpOworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgcGxheXBhcV93bTg1MTBfZGFpID0geworCS5uYW1lID0gIldNODUxMCIsCisJLnN0cmVhbV9uYW1lID0gIldNODUxMCBQQ00iLAorCS5jcHVfZGFpID0gJmF0MzJfc3NjX2RhaVswXSwKKwkuY29kZWNfZGFpID0gJndtODUxMF9kYWksCisJLmluaXQgPSBwbGF5cGFxX3dtODUxMF9pbml0LAorCS5vcHMgPSAmcGxheXBhcV93bTg1MTBfb3BzLAorfTsKKworCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lIHNuZF9zb2NfbWFjaGluZV9wbGF5cGFxID0geworCS5uYW1lID0gIkxSU19QbGF5UGFxX1dNODUxMCIsCisJLmRhaV9saW5rID0gJnBsYXlwYXFfd204NTEwX2RhaSwKKwkubnVtX2xpbmtzID0gMSwKK307CisKKworCitzdGF0aWMgc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhIHBsYXlwYXFfd204NTEwX3NldHVwID0geworCS5pMmNfYWRkcmVzcyA9IDB4MWEsCit9OworCisKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSBwbGF5cGFxX3dtODUxMF9zbmRfZGV2ZGF0YSA9IHsKKwkubWFjaGluZSA9ICZzbmRfc29jX21hY2hpbmVfcGxheXBhcSwKKwkucGxhdGZvcm0gPSAmYXQzMl9zb2NfcGxhdGZvcm0sCisJLmNvZGVjX2RldiA9ICZzb2NfY29kZWNfZGV2X3dtODUxMCwKKwkuY29kZWNfZGF0YSA9ICZwbGF5cGFxX3dtODUxMF9zZXR1cCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF5cGFxX3NuZF9kZXZpY2U7CisKKworc3RhdGljIGludCBfX2luaXQgcGxheXBhcV9hc29jX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBwbGF5cGFxX3dtODUxMF9kYWkuY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2MgPSBOVUxMOworCisKKwkvKgorCSAqIFJlcXVlc3QgU1NDIGRldmljZQorCSAqLworCXNzYyA9IHNzY19yZXF1ZXN0KDApOworCWlmIChJU19FUlIoc3NjKSkgeworCQlyZXQgPSBQVFJfRVJSKHNzYyk7CisJCXNzYyA9IE5VTEw7CisJCWdvdG8gZXJyX3NzYzsKKwl9CisJc3NjX3AtPnNzYyA9IHNzYzsKKworCisJLyoKKwkgKiBDb25maWd1cmUgTUNMSyBmb3IgV004NTEwCisJICovCisJX2djbGswID0gY2xrX2dldChOVUxMLCAiZ2NsazAiKTsKKwlpZiAoSVNfRVJSKF9nY2xrMCkpIHsKKwkJX2djbGswID0gTlVMTDsKKwkJZ290byBlcnJfZ2NsazA7CisJfQorCV9wbGwwID0gY2xrX2dldChOVUxMLCAicGxsMCIpOworCWlmIChJU19FUlIoX3BsbDApKSB7CisJCV9wbGwwID0gTlVMTDsKKwkJZ290byBlcnJfcGxsMDsKKwl9CisJaWYgKGNsa19zZXRfcGFyZW50KF9nY2xrMCwgX3BsbDApKSB7CisJCXByX3dhcm5pbmcoInNuZC1zb2MtcGxheXBhcTogIgorCQkJICAgIkZhaWxlZCB0byBzZXQgUExMMCBhcyBwYXJlbnQgZm9yIERBQyBjbG9ja1xuIik7CisJCWdvdG8gZXJyX3NldF9jbGs7CisJfQorCWNsa19zZXRfcmF0ZShDT0RFQ19DTEssIDEyMDAwMDAwKTsKKwljbGtfZW5hYmxlKENPREVDX0NMSyk7CisKKyNpZiBkZWZpbmVkIENPTkZJR19BVDMyX0VOSEFOQ0VEX1BPUlRNVVgKKwlhdDMyX3NlbGVjdF9wZXJpcGgoTUNMS19QSU4sIE1DTEtfUEVSSVBILCAwKTsKKyNlbmRpZgorCisKKwkvKgorCSAqIENyZWF0ZSBhbmQgcmVnaXN0ZXIgcGxhdGZvcm0gZGV2aWNlCisJICovCisJcGxheXBhcV9zbmRfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJzb2MtYXVkaW8iLCAwKTsKKwlpZiAocGxheXBhcV9zbmRfZGV2aWNlID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfZGV2aWNlX2FsbG9jOworCX0KKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBsYXlwYXFfc25kX2RldmljZSwgJnBsYXlwYXFfd204NTEwX3NuZF9kZXZkYXRhKTsKKwlwbGF5cGFxX3dtODUxMF9zbmRfZGV2ZGF0YS5kZXYgPSAmcGxheXBhcV9zbmRfZGV2aWNlLT5kZXY7CisKKwlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBsYXlwYXFfc25kX2RldmljZSk7CisJaWYgKHJldCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogcGxhdGZvcm1fZGV2aWNlX2FkZCBmYWlsZWQgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCWdvdG8gZXJyX2RldmljZV9hZGQ7CisJfQorCisJcmV0dXJuIDA7CisKKworZXJyX2RldmljZV9hZGQ6CisJaWYgKHBsYXlwYXFfc25kX2RldmljZSAhPSBOVUxMKSB7CisJCXBsYXRmb3JtX2RldmljZV9wdXQocGxheXBhcV9zbmRfZGV2aWNlKTsKKwkJcGxheXBhcV9zbmRfZGV2aWNlID0gTlVMTDsKKwl9CitlcnJfZGV2aWNlX2FsbG9jOgorZXJyX3NldF9jbGs6CisJaWYgKF9wbGwwICE9IE5VTEwpIHsKKwkJY2xrX3B1dChfcGxsMCk7CisJCV9wbGwwID0gTlVMTDsKKwl9CitlcnJfcGxsMDoKKwlpZiAoX2djbGswICE9IE5VTEwpIHsKKwkJY2xrX3B1dChfZ2NsazApOworCQlfZ2NsazAgPSBOVUxMOworCX0KK2Vycl9nY2xrMDoKKwlpZiAoc3NjICE9IE5VTEwpIHsKKwkJc3NjX2ZyZWUoc3NjKTsKKwkJc3NjID0gTlVMTDsKKwl9CitlcnJfc3NjOgorCXJldHVybiByZXQ7Cit9CisKKworc3RhdGljIHZvaWQgX19leGl0IHBsYXlwYXFfYXNvY19leGl0KHZvaWQpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gcGxheXBhcV93bTg1MTBfZGFpLmNwdV9kYWktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc3NjX2RldmljZSAqc3NjOworCisJaWYgKHNzY19wICE9IE5VTEwpIHsKKwkJc3NjID0gc3NjX3AtPnNzYzsKKwkJaWYgKHNzYyAhPSBOVUxMKQorCQkJc3NjX2ZyZWUoc3NjKTsKKwkJc3NjX3AtPnNzYyA9IE5VTEw7CisJfQorCisJaWYgKF9nY2xrMCAhPSBOVUxMKSB7CisJCWNsa19wdXQoX2djbGswKTsKKwkJX2djbGswID0gTlVMTDsKKwl9CisJaWYgKF9wbGwwICE9IE5VTEwpIHsKKwkJY2xrX3B1dChfcGxsMCk7CisJCV9wbGwwID0gTlVMTDsKKwl9CisKKyNpZiBkZWZpbmVkIENPTkZJR19BVDMyX0VOSEFOQ0VEX1BPUlRNVVgKKwlhdDMyX2ZyZWVfcGluKE1DTEtfUElOKTsKKyNlbmRpZgorCisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocGxheXBhcV9zbmRfZGV2aWNlKTsKKwlwbGF5cGFxX3NuZF9kZXZpY2UgPSBOVUxMOworfQorCittb2R1bGVfaW5pdChwbGF5cGFxX2Fzb2NfaW5pdCk7Cittb2R1bGVfZXhpdChwbGF5cGFxX2Fzb2NfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIkdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBU29DIG1hY2hpbmUgZHJpdmVyIGZvciBMUlMgUGxheVBhcSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0OTEvS2NvbmZpZyBiL3NvdW5kL3NvYy9hdDkxL0tjb25maWcKaW5kZXggNWNiOTNmZC4uOTA1MTg2NSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2F0OTEvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvYXQ5MS9LY29uZmlnCkBAIC0xLDYgKzEsNiBAQAogY29uZmlnIFNORF9BVDkxX1NPQwogCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBBdG1lbCBBVDkxIFN5c3RlbS1vbi1DaGlwIgotCWRlcGVuZHMgb24gQVJDSF9BVDkxICYmIFNORF9TT0MKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MQogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwogCSAgdGhlIEFUOTEgU1NDIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXBjbS5jIGIvc291bmQvc29jL2F0OTEvYXQ5MS1wY20uYwppbmRleCBjY2FjNmJkLi5kNDc0OTJiIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXBjbS5jCisrKyBiL3NvdW5kL3NvYy9hdDkxL2F0OTEtcGNtLmMKQEAgLTMxOCw3ICszMTgsNyBAQAogc3RhdGljIHU2NCBhdDkxX3BjbV9kbWFtYXNrID0gMHhmZmZmZmZmZjsKIAogc3RhdGljIGludCBhdDkxX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLCBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCWludCByZXQgPSAwOwogCkBAIC0zNjcsNyArMzY3LDcgQEAKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCBhdDkxX3BjbV9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBkYWktPnJ1bnRpbWU7CiAJc3RydWN0IGF0OTFfcnVudGltZV9kYXRhICpwcnRkOwpAQCAtMzkyLDcgKzM5Miw3IEBACiB9CiAKIHN0YXRpYyBpbnQgYXQ5MV9wY21fcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBkYWktPnJ1bnRpbWU7CiAJc3RydWN0IGF0OTFfcnVudGltZV9kYXRhICpwcnRkOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuYyBiL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmMKaW5kZXggYmMzNWQwMC4uMDkwZTYwNyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuYworKysgYi9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5jCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lCURCRyh4Li4uKQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKQorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjApCiAjZGVmaW5lIE5VTV9TU0NfREVWSUNFUwkJMQogI2Vsc2UKICNkZWZpbmUgTlVNX1NTQ19ERVZJQ0VTCQkzCkBAIC0yODEsNyArMjgxLDcgQEAKIC8qCiAgKiBSZWNvcmQgdGhlIFNTQyBzeXN0ZW0gY2xvY2sgcmF0ZS4KICAqLwotc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCWludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCS8qCkBAIC0zMDMsNyArMzAzLDcgQEAKIC8qCiAgKiBSZWNvcmQgdGhlIERBSSBmb3JtYXQgZm9yIHVzZSBpbiBod19wYXJhbXMoKS4KICAqLwotc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IGF0OTFfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2NwdV9kYWktPmlkXTsKQEAgLTMxNSw3ICszMTUsNyBAQAogLyoKICAqIFJlY29yZCBTU0MgY2xvY2sgZGl2aWRlcnMgZm9yIHVzZSBpbiBod19wYXJhbXMoKS4KICAqLwotc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBhdDkxX3NzY19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3QgYXQ5MV9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bY3B1X2RhaS0+aWRdOwpAQCAtNjM0LDcgKzYzNCw3IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgYXQ5MV9zc2Nfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpKQogewogCXN0cnVjdCBhdDkxX3NzY19pbmZvICpzc2NfcDsKIApAQCAtNjYyLDcgKzY2Miw3IEBACiB9CiAKIHN0YXRpYyBpbnQgYXQ5MV9zc2NfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJc3RydWN0IGF0OTFfc3NjX2luZm8gKnNzY19wOwogCkBAIC03MDAsNyArNzAwLDcgQEAKICNkZWZpbmUgQVQ5MV9TU0NfRk9STUFUUyAoU05EUlZfUENNX0ZNVEJJVF9TOCAgICAgfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8XAogCQkJICBTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGF0OTFfc3NjX2RhaVtOVU1fU1NDX0RFVklDRVNdID0geworc3RydWN0IHNuZF9zb2NfZGFpIGF0OTFfc3NjX2RhaVtOVU1fU1NDX0RFVklDRVNdID0gewogCXsJLm5hbWUgPSAiYXQ5MS1zc2MwIiwKIAkJLmlkID0gMCwKIAkJLnR5cGUgPSBTTkRfU09DX0RBSV9QQ00sCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5oIGIvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuaAppbmRleCBiMTg4Zjk3Li42YjdiZjM4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5oCisrKyBiL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNkZWZpbmUgQVQ5MVNTQ19UQ01SX1BFUklPRAkxIC8qIEJDTEsgZGl2aWRlciBmb3IgdHJhbnNtaXQgRlMgKi8KICNkZWZpbmUgQVQ5MVNTQ19SQ01SX1BFUklPRAkyIC8qIEJDTEsgZGl2aWRlciBmb3IgcmVjZWl2ZSBGUyAqLwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBhdDkxX3NzY19kYWlbXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYXQ5MV9zc2NfZGFpW107CiAKICNlbmRpZiAvKiBfQVQ5MV9TU0NfSCAqLwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9ldGlfYjFfd204NzMxLmMgYi9zb3VuZC9zb2MvYXQ5MS9ldGlfYjFfd204NzMxLmMKaW5kZXggMTM0N2RjZi4uZDUzMmRlOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2F0OTEvZXRpX2IxX3dtODczMS5jCisrKyBiL3NvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYwpAQCAtNTMsMTggKzUzLDE4IEBACiBzdGF0aWMgaW50IGV0aV9iMV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlpbnQgcmV0OwogCiAJLyogY3B1IGNsb2NrIGlzIHRoZSBBVDkxIG1hc3RlciBjbG9jayBzZW50IHRvIHRoZSBTU0MgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgQVQ5MV9TWVNDTEtfTUNLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgQVQ5MV9TWVNDTEtfTUNLLAogCQk2MDAwMDAwMCwgU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBjb2RlYyBzeXN0ZW0gY2xvY2sgaXMgc3VwcGxpZWQgYnkgUENLMSwgc2V0IHRvIDEyTUh6ICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLAogCQkxMjAwMDAwMCwgU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC04Nyw4ICs4Nyw4IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCByZXQ7CiAKICNpZmRlZiBDT05GSUdfU05EX0FUOTFfU09DX0VUSV9TTEFWRQpAQCAtOTYsMTMgKzk2LDEzIEBACiAJaW50IGNtcl9kaXYsIHBlcmlvZDsKIAogCS8qIHNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjcHUgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0xNDEsMTcgKzE0MSwxNyBAQAogCX0KIAogCS8qIHNldCB0aGUgTUNLIGRpdmlkZXIgZm9yIEJDTEsgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY3B1X2RhaSwgQVQ5MVNTQ19DTVJfRElWLCBjbXJfZGl2KTsKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksIEFUOTFTU0NfQ01SX0RJViwgY21yX2Rpdik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgewogCQkvKiBzZXQgdGhlIEJDTEsgZGl2aWRlciBmb3IgREFDTFJDICovCi0JCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLAorCQlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksCiAJCQkJCQlBVDkxU1NDX1RDTVJfUEVSSU9ELCBwZXJpb2QpOwogCX0gZWxzZSB7CiAJCS8qIHNldCB0aGUgQkNMSyBkaXZpZGVyIGZvciBBRENMUkMgKi8KLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KGNwdV9kYWksCisJCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwKIAkJCQkJCUFUOTFTU0NfUkNNUl9QRVJJT0QsIHBlcmlvZCk7CiAJfQogCWlmIChyZXQgPCAwKQpAQCAtMTYzLDEzICsxNjMsMTMgQEAKIAkgKi8KIAogCS8qIHNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjcHUgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0xOTEsNyArMTkxLDcgQEAKIAlTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgTlVMTCksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqaW50ZXJjb25bXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGludGVyY29uW10gPSB7CiAKIAkvKiBzcGVha2VyIGNvbm5lY3RlZCB0byBMSFBPVVQgKi8KIAl7IkV4dCBTcGsiLCBOVUxMLCAiTEhQT1VUIn0sCkBAIC0xOTksOSArMTk5LDYgQEAKIAkvKiBtaWMgaXMgY29ubmVjdGVkIHRvIE1pYyBKYWNrLCB3aXRoIFdNODczMSBNaWMgQmlhcyAqLwogCXsiTUlDSU4iLCBOVUxMLCAiTWljIEJpYXMifSwKIAl7Ik1pYyBCaWFzIiwgTlVMTCwgIkludCBNaWMifSwKLQotCS8qIHRlcm1pbmF0b3IgKi8KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiAvKgpAQCAtMjA5LDMwICsyMDYsMjQgQEAKICAqLwogc3RhdGljIGludCBldGlfYjFfd204NzMxX2luaXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOwotCiAJREJHKCJldGlfYjFfd204NzMxX2luaXQoKSBjYWxsZWRcbiIpOwogCiAJLyogQWRkIHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGV0aV9iMV9kYXBtX3dpZGdldHMpOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmZXRpX2IxX2RhcG1fd2lkZ2V0c1tpXSk7Ci0JfQorCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIGV0aV9iMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGV0aV9iMV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBzcGVjaWZpYyBhdWRpbyBwYXRoIGludGVyY29ubmVjdHMgKi8KLQlmb3IoaSA9IDA7IGludGVyY29uW2ldWzBdICE9IE5VTEw7IGkrKykgewotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgaW50ZXJjb25baV1bMF0sCi0JCQlpbnRlcmNvbltpXVsxXSwgaW50ZXJjb25baV1bMl0pOwotCX0KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlKGNvZGVjLCBpbnRlcmNvbiwgQVJSQVlfU0laRShpbnRlcmNvbikpOwogCiAJLyogbm90IGNvbm5lY3RlZCAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSTElORUlOIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxMSU5FSU4iLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJSTElORUlOIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTExJTkVJTiIpOwogCiAJLyogYWx3YXlzIGNvbm5lY3RlZCAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJJbnQgTWljIiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCAxKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkludCBNaWMiKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9LY29uZmlnIGIvc291bmQvc29jL2F1MXgvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTBhODkzCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F1MXgvS2NvbmZpZwpAQCAtMCwwICsxLDMyIEBACisjIworIyMgQXUxMjAwL0F1MTU1MCBQU0MgKyBEQkRNQQorIyMKK2NvbmZpZyBTTkRfU09DX0FVMVhQU0MKKwl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciBBdTEyMDAvQXUxMjUwL0F1MTU1MCIKKwlkZXBlbmRzIG9uIFNPQ19BVTEyMDAgfHwgU09DX0FVMTU1MAorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFByb2dyYW1tYWJsZSBTZXJpYWwKKwkgIENvbnRyb2xsZXJzIGluIEFDOTcgYW5kIEkyUyBtb2RlLCBhbmQgdGhlIERlc2NyaXB0b3ItQmFzZWQgRE1BCisJICBDb250cm9sbGVyIChEQkRNQSkgYXMgZm91bmQgb24gdGhlIEF1MTIwMC9BdTEyNTAvQXUxNTUwIFNvQy4KKworY29uZmlnIFNORF9TT0NfQVUxWFBTQ19JMlMKKwl0cmlzdGF0ZQorCitjb25maWcgU05EX1NPQ19BVTFYUFNDX0FDOTcKKwl0cmlzdGF0ZQorCXNlbGVjdCBBQzk3X0JVUworCXNlbGVjdCBTTkRfQUM5N19DT0RFQworCXNlbGVjdCBTTkRfU09DX0FDOTdfQlVTCisKKworIyMKKyMjIEJvYXJkcworIyMKK2NvbmZpZyBTTkRfU09DX1NBTVBMRV9QU0NfQUM5NworCXRyaXN0YXRlICJTYW1wbGUgQXUxMngwL0F1MTU1MCBQU0MgQUM5NyBzb3VuZCBtYWNoaW5lIgorCWRlcGVuZHMgb24gU05EX1NPQ19BVTFYUFNDCisJc2VsZWN0IFNORF9TT0NfQVUxWFBTQ19BQzk3CisJc2VsZWN0IFNORF9TT0NfQUM5N19DT0RFQworCWhlbHAKKwkgIFRoaXMgaXMgYSBzYW1wbGUgQUM5NyBzb3VuZCBtYWNoaW5lIGZvciB1c2UgaW4gQXUxMngwL0F1MTU1MAorCSAgYmFzZWQgc3lzdGVtcyB3aGljaCBoYXZlIGF1ZGlvIG9uIFBTQzEgKGUuZy4gRGIxMjAwIGRlbW9ib2FyZCkuCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9NYWtlZmlsZSBiL3NvdW5kL3NvYy9hdTF4L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjk1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9NYWtlZmlsZQpAQCAtMCwwICsxLDEzIEBACisjIEF1MTIwMC9BdTE1NTAgUFNDIGF1ZGlvCitzbmQtc29jLWF1MXhwc2MtZGJkbWEtb2JqcyA6PSBkYmRtYTIubworc25kLXNvYy1hdTF4cHNjLWkycy1vYmpzIDo9IHBzYy1pMnMubworc25kLXNvYy1hdTF4cHNjLWFjOTctb2JqcyA6PSBwc2MtYWM5Ny5vCisKK29iai0kKENPTkZJR19TTkRfU09DX0FVMVhQU0MpICs9IHNuZC1zb2MtYXUxeHBzYy1kYmRtYS5vCitvYmotJChDT05GSUdfU05EX1NPQ19BVTFYUFNDX0kyUykgKz0gc25kLXNvYy1hdTF4cHNjLWkycy5vCitvYmotJChDT05GSUdfU05EX1NPQ19BVTFYUFNDX0FDOTcpICs9IHNuZC1zb2MtYXUxeHBzYy1hYzk3Lm8KKworIyBCb2FyZHMKK3NuZC1zb2Mtc2FtcGxlLWFjOTctb2JqcyA6PSBzYW1wbGUtYWM5Ny5vCisKK29iai0kKENPTkZJR19TTkRfU09DX1NBTVBMRV9QU0NfQUM5NykgKz0gc25kLXNvYy1zYW1wbGUtYWM5Ny5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9kYmRtYTIuYyBiL3NvdW5kL3NvYy9hdTF4L2RiZG1hMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NjZkOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9kYmRtYTIuYwpAQCAtMCwwICsxLDQyMSBAQAorLyoKKyAqIEF1MTJ4MC9BdTE1NTAgUFNDIEFMU0EgQVNvQyBhdWRpbyBzdXBwb3J0LgorICoKKyAqIChjKSAyMDA3LTIwMDggTVNDIFZlcnRyaWVic2dlcy5tLmIuSC4sCisgKglNYW51ZWwgTGF1c3MgPG1hbm9Acm9hcmluZWxrLmhvbWVsaW51eC5uZXQ+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBETUEgZ2x1ZSBmb3IgQXUxeC1QU0MgYXVkaW8uCisgKgorICogTk9URTogYWxsIG9mIHRoZXNlIGRyaXZlcnMgY2FuIG9ubHkgd29yayB3aXRoIGEgU0lOR0xFIGluc3RhbmNlCisgKgkgb2YgYSBQU0MuIE11bHRpcGxlIGluZGVwZW5kZW50IGF1ZGlvIGRldmljZXMgYXJlIGltcG9zc2libGUKKyAqCSB3aXRoIEFTb0MgdjEuCisgKi8KKworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTEwMDAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxeHh4X2RiZG1hLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKworI2luY2x1ZGUgInBzYy5oIgorCisvKiNkZWZpbmUgUENNX0RFQlVHKi8KKworI2RlZmluZSBNU0coeC4uLikJcHJpbnRrKEtFUk5fSU5GTyAiYXUxeHBzY19wY206ICIgeCkKKyNpZmRlZiBQQ01fREVCVUcKKyNkZWZpbmUgREJHCQlNU0cKKyNlbHNlCisjZGVmaW5lIERCRyh4Li4uKQlkbyB7fSB3aGlsZSAoMCkKKyNlbmRpZgorCitzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhIHsKKwkvKiBERE1BIGNvbnRyb2wgZGF0YSAqLworCXVuc2lnbmVkIGludCBkZG1hX2lkOwkJLyogRERNQSBkaXJlY3Rpb24gSUQgZm9yIHRoaXMgUFNDICovCisJdTMyIGRkbWFfY2hhbjsJCQkvKiBERE1BIGNvbnRleHQgKi8KKworCS8qIFBDTSBjb250ZXh0IChmb3IgaXJxIGhhbmRsZXJzKSAqLworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXVuc2lnbmVkIGxvbmcgY3Vycl9wZXJpb2Q7CS8qIGN1cnJlbnQgc2VnbWVudCBERE1BIGlzIHdvcmtpbmcgb24gKi8KKwl1bnNpZ25lZCBsb25nIHFfcGVyaW9kOwkJLyogcXVldWUgcGVyaW9kKHMpICovCisJdW5zaWduZWQgbG9uZyBkbWFfYXJlYTsJCS8qIGFkZHJlc3Mgb2YgcXVldWVkIERNQSBhcmVhICovCisJdW5zaWduZWQgbG9uZyBkbWFfYXJlYV9zOwkvKiBzdGFydCBhZGRyZXNzIG9mIERNQSBhcmVhICovCisJdW5zaWduZWQgbG9uZyBwb3M7CQkvKiBjdXJyZW50IGJ5dGUgcG9zaXRpb24gYmVpbmcgcGxheWVkICovCisJdW5zaWduZWQgbG9uZyBwZXJpb2RzOwkJLyogbnVtYmVyIG9mIFNHIHNlZ21lbnRzIGluIHRvdGFsICovCisJdW5zaWduZWQgbG9uZyBwZXJpb2RfYnl0ZXM7CS8qIHNpemUgaW4gYnl0ZXMgb2Ygb25lIFNHIHNlZ21lbnQgKi8KKworCS8qIHJ1bnRpbWUgZGF0YSAqLworCWludCBtc2JpdHM7Cit9OworCisvKiBpbnN0YW5jZSBkYXRhLiBUaGVyZSBjYW4gYmUgb25seSBvbmUsIE1hY0xlb2QhISEhICovCitzdGF0aWMgc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqYXUxeHBzY19hdWRpb19wY21kbWFbMl07CisKKy8qCisgKiBUaGVzZSBzZXR0aW5ncyBhcmUgc29tZXdoYXQgb2theSwgYXQgbGVhc3Qgb24gbXkgbWFjaGluZSBhdWRpbyBwbGF5cworICogYWxtb3N0IHNraXAtZnJlZS4gRXNwZWNpYWxseSB0aGUgNjRrQiBidWZmZXIgc2VlbXMgdG8gaGVscCBhIExPVC4KKyAqLworI2RlZmluZSBBVTFYUFNDX1BFUklPRF9NSU5fQllURVMJMTAyNAorI2RlZmluZSBBVTFYUFNDX0JVRkZFUl9NSU5fQllURVMJNjU1MzYKKworI2RlZmluZSBBVTFYUFNDX1BDTV9GTVRTCQkJCQlcCisJKFNORFJWX1BDTV9GTVRCSVRfUzggICAgIHwgU05EUlZfUENNX0ZNVEJJVF9VOCB8CVwKKwkgU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9CRSB8CVwKKwkgU05EUlZfUENNX0ZNVEJJVF9VMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1UxNl9CRSB8CVwKKwkgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9CRSB8CVwKKwkgU05EUlZfUENNX0ZNVEJJVF9VMzJfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1UzMl9CRSB8CVwKKwkgMCkKKworLyogUENNIGhhcmR3YXJlIERNQSBjYXBhYmlsaXRpZXMgLSBwbGF0Zm9ybSBzcGVjaWZpYyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIGF1MXhwc2NfcGNtX2hhcmR3YXJlID0geworCS5pbmZvCQkgID0gU05EUlZfUENNX0lORk9fTU1BUCB8IFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfAorCQkJICAgIFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVELAorCS5mb3JtYXRzCSAgPSBBVTFYUFNDX1BDTV9GTVRTLAorCS5wZXJpb2RfYnl0ZXNfbWluID0gQVUxWFBTQ19QRVJJT0RfTUlOX0JZVEVTLAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gNDA5NiAqIDEwMjQgLSAxLAorCS5wZXJpb2RzX21pbgkgID0gMiwKKwkucGVyaW9kc19tYXgJICA9IDQwOTYsCS8qIDIgdG8gYXMtbXVjaC1hcy15b3UtbGlrZSAqLworCS5idWZmZXJfYnl0ZXNfbWF4ID0gNDA5NiAqIDEwMjQgLSAxLAorCS5maWZvX3NpemUJICA9IDE2LAkJLyogZmlmbyBlbnRyaWVzIG9mIEFDOTcvSTJTIFBTQyAqLworfTsKKworc3RhdGljIHZvaWQgYXUxeF9wY21fcXVldWVfdHgoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqY2QpCit7CisJYXUxeHh4X2RiZG1hX3B1dF9zb3VyY2VfZmxhZ3MoY2QtPmRkbWFfY2hhbiwKKwkJCQkodm9pZCAqKXBoeXNfdG9fdmlydChjZC0+ZG1hX2FyZWEpLAorCQkJCWNkLT5wZXJpb2RfYnl0ZXMsIERETUFfRkxBR1NfSUUpOworCisJLyogdXBkYXRlIG5leHQtdG8tcXVldWUgcGVyaW9kICovCisJKytjZC0+cV9wZXJpb2Q7CisJY2QtPmRtYV9hcmVhICs9IGNkLT5wZXJpb2RfYnl0ZXM7CisJaWYgKGNkLT5xX3BlcmlvZCA+PSBjZC0+cGVyaW9kcykgeworCQljZC0+cV9wZXJpb2QgPSAwOworCQljZC0+ZG1hX2FyZWEgPSBjZC0+ZG1hX2FyZWFfczsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhfcGNtX3F1ZXVlX3J4KHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKmNkKQoreworCWF1MXh4eF9kYmRtYV9wdXRfZGVzdF9mbGFncyhjZC0+ZGRtYV9jaGFuLAorCQkJCSh2b2lkICopcGh5c190b192aXJ0KGNkLT5kbWFfYXJlYSksCisJCQkJY2QtPnBlcmlvZF9ieXRlcywgRERNQV9GTEFHU19JRSk7CisKKwkvKiB1cGRhdGUgbmV4dC10by1xdWV1ZSBwZXJpb2QgKi8KKwkrK2NkLT5xX3BlcmlvZDsKKwljZC0+ZG1hX2FyZWEgKz0gY2QtPnBlcmlvZF9ieXRlczsKKwlpZiAoY2QtPnFfcGVyaW9kID49IGNkLT5wZXJpb2RzKSB7CisJCWNkLT5xX3BlcmlvZCA9IDA7CisJCWNkLT5kbWFfYXJlYSA9IGNkLT5kbWFfYXJlYV9zOworCX0KK30KKworc3RhdGljIHZvaWQgYXUxeF9wY21fZG1hdHhfY2IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKmNkID0gZGV2X2lkOworCisJY2QtPnBvcyArPSBjZC0+cGVyaW9kX2J5dGVzOworCWlmICgrK2NkLT5jdXJyX3BlcmlvZCA+PSBjZC0+cGVyaW9kcykgeworCQljZC0+cG9zID0gMDsKKwkJY2QtPmN1cnJfcGVyaW9kID0gMDsKKwl9CisJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjZC0+c3Vic3RyZWFtKTsKKwlhdTF4X3BjbV9xdWV1ZV90eChjZCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhfcGNtX2RtYXJ4X2NiKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpjZCA9IGRldl9pZDsKKworCWNkLT5wb3MgKz0gY2QtPnBlcmlvZF9ieXRlczsKKwlpZiAoKytjZC0+Y3Vycl9wZXJpb2QgPj0gY2QtPnBlcmlvZHMpIHsKKwkJY2QtPnBvcyA9IDA7CisJCWNkLT5jdXJyX3BlcmlvZCA9IDA7CisJfQorCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoY2QtPnN1YnN0cmVhbSk7CisJYXUxeF9wY21fcXVldWVfcngoY2QpOworfQorCitzdGF0aWMgdm9pZCBhdTF4X3BjbV9kYmRtYV9mcmVlKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKnBjZCkKK3sKKwlpZiAocGNkLT5kZG1hX2NoYW4pIHsKKwkJYXUxeHh4X2RiZG1hX3N0b3AocGNkLT5kZG1hX2NoYW4pOworCQlhdTF4eHhfZGJkbWFfcmVzZXQocGNkLT5kZG1hX2NoYW4pOworCQlhdTF4eHhfZGJkbWFfY2hhbl9mcmVlKHBjZC0+ZGRtYV9jaGFuKTsKKwkJcGNkLT5kZG1hX2NoYW4gPSAwOworCQlwY2QtPm1zYml0cyA9IDA7CisJfQorfQorCisvKiBpbiBjYXNlIG9mIG1pc3NpbmcgRE1BIHJpbmcgb3IgY2hhbmdlZCBUWC1zb3VyY2UgLyBSWC1kZXN0IGJpdCB3aWR0aHMsCisgKiBhbGxvY2F0ZSAob3IgcmVhbGxvY2F0ZSkgYSAyLWRlc2NyaXB0b3IgRE1BIHJpbmcgd2l0aCBiaXQgZGVwdGggYWNjb3JkaW5nCisgKiB0byBBTFNBLXN1cHBsaWVkIHNhbXBsZSBkZXB0aC4gIFRoaXMgaXMgZHVlIHRvIGxpbWl0YXRpb25zIGluIHRoZSBkYmRtYSBhcGkKKyAqIChjYW5ub3QgYWRqdXN0IHNvdXJjZS9kZXN0IHdpZHRocyBvZiBhbHJlYWR5IGFsbG9jYXRlZCBkZXNjcmlwdG9yIHJpbmcpLgorICovCitzdGF0aWMgaW50IGF1MXhfcGNtX2RiZG1hX3JlYWxsb2Moc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkLAorCQkJCSBpbnQgc3R5cGUsIGludCBtc2JpdHMpCit7CisJLyogRE1BIG9ubHkgaW4gOC8xNi8zMiBiaXQgd2lkdGhzICovCisJaWYgKG1zYml0cyA9PSAyNCkKKwkJbXNiaXRzID0gMzI7CisKKwkvKiBjaGVjayBjdXJyZW50IGNvbmZpZzogY29ycmVjdCBiaXRzIGFuZCBkZXNjcmlwdG9ycyBhbGxvY2F0ZWQ/ICovCisJaWYgKChwY2QtPmRkbWFfY2hhbikgJiYgKG1zYml0cyA9PSBwY2QtPm1zYml0cykpCisJCWdvdG8gb3V0OwkvKiBhbGwgb2shICovCisKKwlhdTF4X3BjbV9kYmRtYV9mcmVlKHBjZCk7CisKKwlpZiAoc3R5cGUgPT0gUENNX1JYKQorCQlwY2QtPmRkbWFfY2hhbiA9IGF1MXh4eF9kYmRtYV9jaGFuX2FsbG9jKHBjZC0+ZGRtYV9pZCwKKwkJCQkJRFNDUl9DTUQwX0FMV0FZUywKKwkJCQkJYXUxeF9wY21fZG1hcnhfY2IsICh2b2lkICopcGNkKTsKKwllbHNlCisJCXBjZC0+ZGRtYV9jaGFuID0gYXUxeHh4X2RiZG1hX2NoYW5fYWxsb2MoRFNDUl9DTUQwX0FMV0FZUywKKwkJCQkJcGNkLT5kZG1hX2lkLAorCQkJCQlhdTF4X3BjbV9kbWF0eF9jYiwgKHZvaWQgKilwY2QpOworCisJaWYgKCFwY2QtPmRkbWFfY2hhbikKKwkJcmV0dXJuIC1FTk9NRU07OworCisJYXUxeHh4X2RiZG1hX3NldF9kZXZ3aWR0aChwY2QtPmRkbWFfY2hhbiwgbXNiaXRzKTsKKwlhdTF4eHhfZGJkbWFfcmluZ19hbGxvYyhwY2QtPmRkbWFfY2hhbiwgMik7CisKKwlwY2QtPm1zYml0cyA9IG1zYml0czsKKworCWF1MXh4eF9kYmRtYV9zdG9wKHBjZC0+ZGRtYV9jaGFuKTsKKwlhdTF4eHhfZGJkbWFfcmVzZXQocGNkLT5kZG1hX2NoYW4pOworCitvdXQ6CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKnBjZDsKKwlpbnQgc3R5cGUsIHJldDsKKworCXJldCA9IHNuZF9wY21fbGliX21hbGxvY19wYWdlcyhzdWJzdHJlYW0sIHBhcmFtc19idWZmZXJfYnl0ZXMocGFyYW1zKSk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gb3V0OworCisJc3R5cGUgPSBTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pOworCXBjZCA9IGF1MXhwc2NfYXVkaW9fcGNtZG1hW3N0eXBlXTsKKworCURCRygicnVudGltZS0+ZG1hX2FyZWEgPSAweCUwOGx4IGRtYV9hZGRyX3QgPSAweCUwOGx4IGRtYV9zaXplID0gJWQgIgorCSAgICAicnVudGltZS0+bWluX2FsaWduICVkXG4iLAorCQkodW5zaWduZWQgbG9uZylydW50aW1lLT5kbWFfYXJlYSwKKwkJKHVuc2lnbmVkIGxvbmcpcnVudGltZS0+ZG1hX2FkZHIsIHJ1bnRpbWUtPmRtYV9ieXRlcywKKwkJcnVudGltZS0+bWluX2FsaWduKTsKKworCURCRygiYml0cyAlZCAgZnJhZ3MgJWQgIGZyYWdfYnl0ZXMgJWQgIGlzX3J4ICVkXG4iLCBwYXJhbXMtPm1zYml0cywKKwkJcGFyYW1zX3BlcmlvZHMocGFyYW1zKSwgcGFyYW1zX3BlcmlvZF9ieXRlcyhwYXJhbXMpLCBzdHlwZSk7CisKKwlyZXQgPSBhdTF4X3BjbV9kYmRtYV9yZWFsbG9jKHBjZCwgc3R5cGUsIHBhcmFtcy0+bXNiaXRzKTsKKwlpZiAocmV0KSB7CisJCU1TRygiRERNQSBjaGFubmVsIChyZSlhbGxvYyBmYWlsZWQhXG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJcGNkLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisJcGNkLT5wZXJpb2RfYnl0ZXMgPSBwYXJhbXNfcGVyaW9kX2J5dGVzKHBhcmFtcyk7CisJcGNkLT5wZXJpb2RzID0gcGFyYW1zX3BlcmlvZHMocGFyYW1zKTsKKwlwY2QtPmRtYV9hcmVhX3MgPSBwY2QtPmRtYV9hcmVhID0gKHVuc2lnbmVkIGxvbmcpcnVudGltZS0+ZG1hX2FkZHI7CisJcGNkLT5xX3BlcmlvZCA9IDA7CisJcGNkLT5jdXJyX3BlcmlvZCA9IDA7CisJcGNkLT5wb3MgPSAwOworCisJcmV0ID0gMDsKK291dDoKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc25kX3BjbV9saWJfZnJlZV9wYWdlcyhzdWJzdHJlYW0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkID0KKwkJCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1NVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSldOworCisJYXUxeHh4X2RiZG1hX3Jlc2V0KHBjZC0+ZGRtYV9jaGFuKTsKKworCWlmIChTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pID09IFBDTV9SWCkgeworCQlhdTF4X3BjbV9xdWV1ZV9yeChwY2QpOworCQlhdTF4X3BjbV9xdWV1ZV9yeChwY2QpOworCX0gZWxzZSB7CisJCWF1MXhfcGNtX3F1ZXVlX3R4KHBjZCk7CisJCWF1MXhfcGNtX3F1ZXVlX3R4KHBjZCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21fdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKK3sKKwl1MzIgYyA9IGF1MXhwc2NfYXVkaW9fcGNtZG1hW1NVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSldLT5kZG1hX2NoYW47CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJCWF1MXh4eF9kYmRtYV9zdGFydChjKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKwkJYXUxeHh4X2RiZG1hX3N0b3AoYyk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190CithdTF4cHNjX3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXJldHVybiBieXRlc190b19mcmFtZXMoc3Vic3RyZWFtLT5ydW50aW1lLAorCQlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pXS0+cG9zKTsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXNuZF9zb2Nfc2V0X3J1bnRpbWVfaHdwYXJhbXMoc3Vic3RyZWFtLCAmYXUxeHBzY19wY21faGFyZHdhcmUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCWF1MXhfcGNtX2RiZG1hX2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKV0pOworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3BjbV9vcHMgYXUxeHBzY19wY21fb3BzID0geworCS5vcGVuCQk9IGF1MXhwc2NfcGNtX29wZW4sCisJLmNsb3NlCQk9IGF1MXhwc2NfcGNtX2Nsb3NlLAorCS5pb2N0bAkJPSBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zCT0gYXUxeHBzY19wY21faHdfcGFyYW1zLAorCS5od19mcmVlCT0gYXUxeHBzY19wY21faHdfZnJlZSwKKwkucHJlcGFyZQk9IGF1MXhwc2NfcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIJPSBhdTF4cHNjX3BjbV90cmlnZ2VyLAorCS5wb2ludGVyCT0gYXUxeHBzY19wY21fcG9pbnRlciwKK307CisKK3N0YXRpYyB2b2lkIGF1MXhwc2NfcGNtX2ZyZWVfZG1hX2J1ZmZlcnMoc3RydWN0IHNuZF9wY20gKnBjbSkKK3sKKwlzbmRfcGNtX2xpYl9wcmVhbGxvY2F0ZV9mcmVlX2Zvcl9hbGwocGNtKTsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJCQkgICBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQoreworCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX3BhZ2VzX2Zvcl9hbGwocGNtLCBTTkRSVl9ETUFfVFlQRV9ERVYsCisJCWNhcmQtPmRldiwgQVUxWFBTQ19CVUZGRVJfTUlOX0JZVEVTLCAoNDA5NiAqIDEwMjQpIC0gMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCByZXNvdXJjZSAqcjsKKwlpbnQgcmV0OworCisJaWYgKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0gfHwgYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCS8qIFRYIERNQSAqLworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0KKwkJPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9ETUEsIDApOworCWlmICghcikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDE7CisJfQorCShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdKS0+ZGRtYV9pZCA9IHItPnN0YXJ0OworCisJLyogUlggRE1BICovCisJYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXQorCQk9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0pCisJCXJldHVybiAtRU5PTUVNOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX0RNQSwgMSk7CisJaWYgKCFyKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0MjsKKwl9CisJKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0pLT5kZG1hX2lkID0gci0+c3RhcnQ7CisKKwlyZXR1cm4gMDsKKworb3V0MjoKKwlrZnJlZShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdKTsKKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdID0gTlVMTDsKK291dDE6CisJa2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXSk7CisJYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXSA9IE5VTEw7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKKwkJaWYgKGF1MXhwc2NfYXVkaW9fcGNtZG1hW2ldKSB7CisJCQlhdTF4X3BjbV9kYmRtYV9mcmVlKGF1MXhwc2NfYXVkaW9fcGNtZG1hW2ldKTsKKwkJCWtmcmVlKGF1MXhwc2NfYXVkaW9fcGNtZG1hW2ldKTsKKwkJCWF1MXhwc2NfYXVkaW9fcGNtZG1hW2ldID0gTlVMTDsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCisvKiBhdTF4cHNjIGF1ZGlvIHBsYXRmb3JtICovCitzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBhdTF4cHNjX3NvY19wbGF0Zm9ybSA9IHsKKwkubmFtZQkJPSAiYXUxeHBzYy1wY20tZGJkbWEiLAorCS5wcm9iZQkJPSBhdTF4cHNjX3BjbV9wcm9iZSwKKwkucmVtb3ZlCQk9IGF1MXhwc2NfcGNtX3JlbW92ZSwKKwkucGNtX29wcyAJPSAmYXUxeHBzY19wY21fb3BzLAorCS5wY21fbmV3CT0gYXUxeHBzY19wY21fbmV3LAorCS5wY21fZnJlZQk9IGF1MXhwc2NfcGNtX2ZyZWVfZG1hX2J1ZmZlcnMsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXUxeHBzY19zb2NfcGxhdGZvcm0pOworCitzdGF0aWMgaW50IF9faW5pdCBhdTF4cHNjX2F1ZGlvX2RiZG1hX2luaXQodm9pZCkKK3sKKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdID0gTlVMTDsKKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGF1MXhwc2NfYXVkaW9fZGJkbWFfZXhpdCh2b2lkKQoreworfQorCittb2R1bGVfaW5pdChhdTF4cHNjX2F1ZGlvX2RiZG1hX2luaXQpOworbW9kdWxlX2V4aXQoYXUxeHBzY19hdWRpb19kYmRtYV9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBdTEyeDAvQXUxNTUwIFBTQyBBdWRpbyBETUEgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJNYW51ZWwgTGF1c3MgPG1hbm9Acm9hcmluZWxrLmhvbWVsaW51eC5uZXQ+Iik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9wc2MtYWM5Ny5jIGIvc291bmQvc29jL2F1MXgvcHNjLWFjOTcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2ZhY2JhCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F1MXgvcHNjLWFjOTcuYwpAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIEF1MTJ4MC9BdTE1NTAgUFNDIEFMU0EgQVNvQyBhdWRpbyBzdXBwb3J0LgorICoKKyAqIChjKSAyMDA3LTIwMDggTVNDIFZlcnRyaWVic2dlcy5tLmIuSC4sCisgKglNYW51ZWwgTGF1c3MgPG1hbm9Acm9hcmluZWxrLmhvbWVsaW51eC5uZXQ+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBBdTF4eHgtUFNDIEFDOTcgZ2x1ZS4KKyAqCisgKiBOT1RFOiBhbGwgb2YgdGhlc2UgZHJpdmVycyBjYW4gb25seSB3b3JrIHdpdGggYSBTSU5HTEUgaW5zdGFuY2UKKyAqCSBvZiBhIFBTQy4gTXVsdGlwbGUgaW5kZXBlbmRlbnQgYXVkaW8gZGV2aWNlcyBhcmUgaW1wb3NzaWJsZQorICoJIHdpdGggQVNvQyB2MS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmg+CisKKyNpbmNsdWRlICJwc2MuaCIKKworI2RlZmluZSBBQzk3X0RJUglcCisJKFNORF9TT0NfREFJRElSX1BMQVlCQUNLIHwgU05EX1NPQ19EQUlESVJfQ0FQVFVSRSkKKworI2RlZmluZSBBQzk3X1JBVEVTCVwKKwlTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwCisKKyNkZWZpbmUgQUM5N19GTVRTCVwKKwkoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyMF8zQkUpCisKKyNkZWZpbmUgQUM5N1BDUl9TVEFSVChzdHlwZSkJXAorCSgoc3R5cGUpID09IFBDTV9UWCA/IFBTQ19BQzk3UENSX1RTIDogUFNDX0FDOTdQQ1JfUlMpCisjZGVmaW5lIEFDOTdQQ1JfU1RPUChzdHlwZSkJXAorCSgoc3R5cGUpID09IFBDTV9UWCA/IFBTQ19BQzk3UENSX1RQIDogUFNDX0FDOTdQQ1JfUlApCisjZGVmaW5lIEFDOTdQQ1JfQ0xSRklGTyhzdHlwZSkJXAorCSgoc3R5cGUpID09IFBDTV9UWCA/IFBTQ19BQzk3UENSX1RDIDogUFNDX0FDOTdQQ1JfUkMpCisKKy8qIGluc3RhbmNlIGRhdGEuIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSwgTWFjTGVvZCEhISEgKi8KK3N0YXRpYyBzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICphdTF4cHNjX2FjOTdfd29ya2RhdGE7CisKKy8qIEFDOTcgY29udHJvbGxlciByZWFkcyBjb2RlYyByZWdpc3RlciAqLworc3RhdGljIHVuc2lnbmVkIHNob3J0IGF1MXhwc2NfYWM5N19yZWFkKHN0cnVjdCBzbmRfYWM5NyAqYWM5NywKKwkJCQkJdW5zaWduZWQgc2hvcnQgcmVnKQoreworCS8qIEZJWE1FICovCisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSA9IGF1MXhwc2NfYWM5N193b3JrZGF0YTsKKwl1bnNpZ25lZCBzaG9ydCBkYXRhLCB0bW87CisKKwlhdV93cml0ZWwoUFNDX0FDOTdDRENfUkQgfCBQU0NfQUM5N0NEQ19JTkRYKHJlZyksIEFDOTdfQ0RDKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwl0bW8gPSAxMDAwOworCXdoaWxlICgoIShhdV9yZWFkbChBQzk3X0VWTlQocHNjZGF0YSkpICYgUFNDX0FDOTdFVk5UX0NEKSkgJiYgLS10bW8pCisJCXVkZWxheSgyKTsKKworCWlmICghdG1vKQorCQlkYXRhID0gMHhmZmZmOworCWVsc2UKKwkJZGF0YSA9IGF1X3JlYWRsKEFDOTdfQ0RDKHBzY2RhdGEpKSAmIDB4ZmZmZjsKKworCWF1X3dyaXRlbChQU0NfQUM5N0VWTlRfQ0QsIEFDOTdfRVZOVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJcmV0dXJuIGRhdGE7Cit9CisKKy8qIEFDOTcgY29udHJvbGxlciB3cml0ZXMgdG8gY29kZWMgcmVnaXN0ZXIgKi8KK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N193cml0ZShzdHJ1Y3Qgc25kX2FjOTcgKmFjOTcsIHVuc2lnbmVkIHNob3J0IHJlZywKKwkJCQl1bnNpZ25lZCBzaG9ydCB2YWwpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCXVuc2lnbmVkIGludCB0bW87CisKKwlhdV93cml0ZWwoUFNDX0FDOTdDRENfSU5EWChyZWcpIHwgKHZhbCAmIDB4ZmZmZiksIEFDOTdfQ0RDKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJdG1vID0gMTAwMDsKKwl3aGlsZSAoKCEoYXVfcmVhZGwoQUM5N19FVk5UKHBzY2RhdGEpKSAmIFBTQ19BQzk3RVZOVF9DRCkpICYmIC0tdG1vKQorCQlhdV9zeW5jKCk7CisKKwlhdV93cml0ZWwoUFNDX0FDOTdFVk5UX0NELCBBQzk3X0VWTlQocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKK30KKworLyogQUM5NyBjb250cm9sbGVyIGFzc2VydHMgYSB3YXJtIHJlc2V0ICovCitzdGF0aWMgdm9pZCBhdTF4cHNjX2FjOTdfd2FybV9yZXNldChzdHJ1Y3Qgc25kX2FjOTcgKmFjOTcpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCisJYXVfd3JpdGVsKFBTQ19BQzk3UlNUX1NOQywgQUM5N19SU1QocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwltc2xlZXAoMTApOworCWF1X3dyaXRlbCgwLCBBQzk3X1JTVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworfQorCitzdGF0aWMgdm9pZCBhdTF4cHNjX2FjOTdfY29sZF9yZXNldChzdHJ1Y3Qgc25kX2FjOTcgKmFjOTcpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCWludCBpOworCisJLyogZGlzYWJsZSBQU0MgZHVyaW5nIGNvbGQgcmVzZXQgKi8KKwlhdV93cml0ZWwoMCwgQUM5N19DRkcoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogaXNzdWUgY29sZCByZXNldCAqLworCWF1X3dyaXRlbChQU0NfQUM5N1JTVF9SU1QsIEFDOTdfUlNUKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJbXNsZWVwKDUwMCk7CisJYXVfd3JpdGVsKDAsIEFDOTdfUlNUKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBlbmFibGUgUFNDICovCisJYXVfd3JpdGVsKFBTQ19DVFJMX0VOQUJMRSwgUFNDX0NUUkwocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIHdhaXQgZm9yIFBTQyB0byBpbmRpY2F0ZSBpdCdzIHJlYWR5ICovCisJaSA9IDEwMDAwMDsKKwl3aGlsZSAoISgoYXVfcmVhZGwoQUM5N19TVEFUKHBzY2RhdGEpKSAmIFBTQ19BQzk3U1RBVF9TUikpICYmICgtLWkpKQorCQlhdV9zeW5jKCk7CisKKwlpZiAoaSA9PSAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYXUxeHBzYy1hYzk3OiBQU0Mgbm90IHJlYWR5IVxuIik7CisJCXJldHVybjsKKwl9CisKKwkvKiBlbmFibGUgdGhlIGFjOTcgZnVuY3Rpb24gKi8KKwlhdV93cml0ZWwocHNjZGF0YS0+Y2ZnIHwgUFNDX0FDOTdDRkdfREVfRU5BQkxFLCBBQzk3X0NGRyhwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3IgQUM5NyBjb3JlIHRvIGJlY29tZSByZWFkeSAqLworCWkgPSAxMDAwMDA7CisJd2hpbGUgKCEoKGF1X3JlYWRsKEFDOTdfU1RBVChwc2NkYXRhKSkgJiBQU0NfQUM5N1NUQVRfRFIpKSAmJiAoLS1pKSkKKwkJYXVfc3luYygpOworCWlmIChpID09IDApCisJCXByaW50ayhLRVJOX0VSUiAiYXUxeHBzYy1hYzk3OiBBQzk3IGN0cmwgbm90IHJlYWR5XG4iKTsKK30KKworLyogQUM5NyBjb250cm9sbGVyIG9wZXJhdGlvbnMgKi8KK3N0cnVjdCBzbmRfYWM5N19idXNfb3BzIHNvY19hYzk3X29wcyA9IHsKKwkucmVhZAkJPSBhdTF4cHNjX2FjOTdfcmVhZCwKKwkud3JpdGUJCT0gYXUxeHBzY19hYzk3X3dyaXRlLAorCS5yZXNldAkJPSBhdTF4cHNjX2FjOTdfY29sZF9yZXNldCwKKwkud2FybV9yZXNldAk9IGF1MXhwc2NfYWM5N193YXJtX3Jlc2V0LAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKHNvY19hYzk3X29wcyk7CisKK3N0YXRpYyBpbnQgYXUxeHBzY19hYzk3X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCS8qIEZJWE1FICovCisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSA9IGF1MXhwc2NfYWM5N193b3JrZGF0YTsKKwl1bnNpZ25lZCBsb25nIHIsIHN0YXQ7CisJaW50IGNoYW5zLCBzdHlwZSA9IFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSk7CisKKwljaGFucyA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpOworCisJciA9IGF1X3JlYWRsKEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwlzdGF0ID0gYXVfcmVhZGwoQUM5N19TVEFUKHBzY2RhdGEpKTsKKworCS8qIGFscmVhZHkgYWN0aXZlPyAqLworCWlmIChzdGF0ICYgKFBTQ19BQzk3U1RBVF9UQiB8IFBTQ19BQzk3U1RBVF9SQikpIHsKKwkJLyogcmVqZWN0IHBhcmFtZXRlcnMgbm90IGN1cnJlbnRseSBzZXQgdXAgKi8KKwkJaWYgKChQU0NfQUM5N0NGR19HRVRfTEVOKHIpICE9IHBhcmFtcy0+bXNiaXRzKSB8fAorCQkgICAgKHBzY2RhdGEtPnJhdGUgIT0gcGFyYW1zX3JhdGUocGFyYW1zKSkpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9IGVsc2UgeworCQkvKiBkaXNhYmxlIEFDOTcgZGV2aWNlIGNvbnRyb2xsZXIgZmlyc3QgKi8KKwkJYXVfd3JpdGVsKHIgJiB+UFNDX0FDOTdDRkdfREVfRU5BQkxFLCBBQzk3X0NGRyhwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKworCQkvKiBzZXQgc2FtcGxlIGJpdGRlcHRoOiBSRUdbMjQ6MjFdPShCSVRTLTIpLzIgKi8KKwkJciAmPSB+UFNDX0FDOTdDRkdfTEVOX01BU0s7CisJCXIgfD0gUFNDX0FDOTdDRkdfU0VUX0xFTihwYXJhbXMtPm1zYml0cyk7CisKKwkJLyogY2hhbm5lbHM6IGVuYWJsZSBzbG90cyBmb3IgZnJvbnQgTC9SIGNoYW5uZWwgKi8KKwkJaWYgKHN0eXBlID09IFBDTV9UWCkgeworCQkJciAmPSB+UFNDX0FDOTdDRkdfVFhTTE9UX01BU0s7CisJCQlyIHw9IFBTQ19BQzk3Q0ZHX1RYU0xPVF9FTkEoMyk7CisJCQlyIHw9IFBTQ19BQzk3Q0ZHX1RYU0xPVF9FTkEoNCk7CisJCX0gZWxzZSB7CisJCQlyICY9IH5QU0NfQUM5N0NGR19SWFNMT1RfTUFTSzsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfUlhTTE9UX0VOQSgzKTsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfUlhTTE9UX0VOQSg0KTsKKwkJfQorCisJCS8qIGZpbmFsbHkgZW5hYmxlIHRoZSBBQzk3IGNvbnRyb2xsZXIgYWdhaW4gKi8KKwkJYXVfd3JpdGVsKHIgfCBQU0NfQUM5N0NGR19ERV9FTkFCTEUsIEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCisJCXBzY2RhdGEtPmNmZyA9IHI7CisJCXBzY2RhdGEtPnJhdGUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfYWM5N190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCWludCBjbWQpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCWludCByZXQsIHN0eXBlID0gU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKTsKKworCXJldCA9IDA7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJCWF1X3dyaXRlbChBQzk3UENSX1NUQVJUKHN0eXBlKSwgQUM5N19QQ1IocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CisJCWF1X3dyaXRlbChBQzk3UENSX1NUT1Aoc3R5cGUpLCBBQzk3X1BDUihwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCWludCByZXQ7CisJc3RydWN0IHJlc291cmNlICpyOworCXVuc2lnbmVkIGxvbmcgc2VsOworCisJaWYgKGF1MXhwc2NfYWM5N193b3JrZGF0YSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCWF1MXhwc2NfYWM5N193b3JrZGF0YSA9CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWF1MXhwc2NfYWM5N193b3JrZGF0YSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAoIXIpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQwOworCX0KKworCXJldCA9IC1FQlVTWTsKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSA9CisJCXJlcXVlc3RfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxLAorCQkJCQkiYXUxeHBzY19hYzk3Iik7CisJaWYgKCFhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSkKKwkJZ290byBvdXQwOworCisJYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5tbWlvID0gaW9yZW1hcChyLT5zdGFydCwgMHhmZmZmKTsKKwlpZiAoIWF1MXhwc2NfYWM5N193b3JrZGF0YS0+bW1pbykKKwkJZ290byBvdXQxOworCisJLyogY29uZmlndXJhdGlvbjogbWF4IGRtYSB0cmlnZ2VyIHRocmVzaG9sZCwgZW5hYmxlIGFjOTcgKi8KKwkgYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5jZmcgPSBQU0NfQUM5N0NGR19SVF9GSUZPOCB8CisJCQkJICAgICAgUFNDX0FDOTdDRkdfVFRfRklGTzggfAorCQkJCSAgICAgIFBTQ19BQzk3Q0ZHX0RFX0VOQUJMRTsKKworCS8qIHByZXNlcnZlIFBTQyBjbG9jayBzb3VyY2Ugc2V0IHVwIGJ5IHBsYXRmb3JtIChkZXYucGxhdGZvcm1fZGF0YQorCSAqIGlzIGFscmVhZHkgb2NjdXBpZWQgYnkgc29jIGxheWVyKQorCSAqLworCXNlbCA9IGF1X3JlYWRsKFBTQ19TRUwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSkgJiBQU0NfU0VMX0NMS19NQVNLOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKDAsIFBTQ19TRUwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfU0VMX1BTX0FDOTdNT0RFIHwgc2VsLCBQU0NfU0VMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwkvKiBuZXh0IHVwOiBjb2xkIHJlc2V0LiAgRG9udCBjaGVjayBmb3IgUFNDLXJlYWR5IG5vdyBzaW5jZQorCSAqIHRoZXJlIG1heSBub3QgYmUgYW55IGNvZGVjIGNsb2NrIHlldC4KKwkgKi8KKworCXJldHVybiAwOworCitvdXQxOgorCXJlbGVhc2VfcmVzb3VyY2UoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhKTsKK291dDA6CisJa2ZyZWUoYXUxeHBzY19hYzk3X3dvcmtkYXRhKTsKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEgPSBOVUxMOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwkvKiBkaXNhYmxlIFBTQyBjb21wbGV0ZWx5ICovCisJYXVfd3JpdGVsKDAsIEFDOTdfQ0ZHKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX0NUUkxfRElTQUJMRSwgUFNDX0NUUkwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCisJaW91bm1hcChhdTF4cHNjX2FjOTdfd29ya2RhdGEtPm1taW8pOworCXJlbGVhc2VfcmVzb3VyY2UoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhKTsKKwlrZnJlZShhdTF4cHNjX2FjOTdfd29ya2RhdGEpOworCWF1MXhwc2NfYWM5N193b3JrZGF0YSA9IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19hYzk3X3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwkvKiBzYXZlIGludGVyZXN0aW5nIHJlZ2lzdGVycyBhbmQgZGlzYWJsZSBQU0MgKi8KKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEtPnBtWzBdID0KKwkJCWF1X3JlYWRsKFBTQ19TRUwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisKKwlhdV93cml0ZWwoMCwgQUM5N19DRkcoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJLyogcmVzdG9yZSBQU0MgY2xvY2sgY29uZmlnICovCisJYXVfd3JpdGVsKGF1MXhwc2NfYWM5N193b3JrZGF0YS0+cG1bMF0gfCBQU0NfU0VMX1BTX0FDOTdNT0RFLAorCQkJUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBhZnRlciB0aGlzIHBvaW50IHRoZSBhYzk3IGNvcmUgd2lsbCBjb2xkLXJlc2V0IHRoZSBjb2RlYy4KKwkgKiBEdXJpbmcgY29sZC1yZXNldCB0aGUgUFNDIGlzIHJlaW5pdGlhbGl6ZWQgYW5kIHRoZSBsYXN0CisJICogY29uZmlndXJhdGlvbiBzZXQgdXAgaW4gaHdfcGFyYW1zKCkgaXMgcmVzdG9yZWQuCisJICovCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2FjOTdfZGFpID0geworCS5uYW1lCQkJPSAiYXUxeHBzY19hYzk3IiwKKwkudHlwZQkJCT0gU05EX1NPQ19EQUlfQUM5NywKKwkucHJvYmUJCQk9IGF1MXhwc2NfYWM5N19wcm9iZSwKKwkucmVtb3ZlCQkJPSBhdTF4cHNjX2FjOTdfcmVtb3ZlLAorCS5zdXNwZW5kCQk9IGF1MXhwc2NfYWM5N19zdXNwZW5kLAorCS5yZXN1bWUJCQk9IGF1MXhwc2NfYWM5N19yZXN1bWUsCisJLnBsYXliYWNrID0geworCQkucmF0ZXMJCT0gQUM5N19SQVRFUywKKwkJLmZvcm1hdHMJPSBBQzk3X0ZNVFMsCisJCS5jaGFubmVsc19taW4JPSAyLAorCQkuY2hhbm5lbHNfbWF4CT0gMiwKKwl9LAorCS5jYXB0dXJlID0geworCQkucmF0ZXMJCT0gQUM5N19SQVRFUywKKwkJLmZvcm1hdHMJPSBBQzk3X0ZNVFMsCisJCS5jaGFubmVsc19taW4JPSAyLAorCQkuY2hhbm5lbHNfbWF4CT0gMiwKKwl9LAorCS5vcHMgPSB7CisJCS50cmlnZ2VyCT0gYXUxeHBzY19hYzk3X3RyaWdnZXIsCisJCS5od19wYXJhbXMJPSBhdTF4cHNjX2FjOTdfaHdfcGFyYW1zLAorCX0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXUxeHBzY19hYzk3X2RhaSk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF1MXhwc2NfYWM5N19pbml0KHZvaWQpCit7CisJYXUxeHBzY19hYzk3X3dvcmtkYXRhID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGF1MXhwc2NfYWM5N19leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2NfYWM5N19pbml0KTsKK21vZHVsZV9leGl0KGF1MXhwc2NfYWM5N19leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBdTEyeDAvQXUxNTUwIFBTQyBBQzk3IEFMU0EgQVNvQyBhdWRpbyBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4iKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L3BzYy1pMnMuYyBiL3NvdW5kL3NvYy9hdTF4L3BzYy1pMnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTRiNWMxCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F1MXgvcHNjLWkycy5jCkBAIC0wLDAgKzEsNDE0IEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIEF1MXh4eC1QU0MgSTJTIGdsdWUuCisgKgorICogTk9URTogYWxsIG9mIHRoZXNlIGRyaXZlcnMgY2FuIG9ubHkgd29yayB3aXRoIGEgU0lOR0xFIGluc3RhbmNlCisgKgkgb2YgYSBQU0MuIE11bHRpcGxlIGluZGVwZW5kZW50IGF1ZGlvIGRldmljZXMgYXJlIGltcG9zc2libGUKKyAqCSB3aXRoIEFTb0MgdjEuCisgKiBOT1RFOiBzbyBmYXIgb25seSBQU0Mgc2xhdmUgbW9kZSAoYml0LSBhbmQgZnJhbWVjbG9jaykgaXMgc3VwcG9ydGVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmg+CisKKyNpbmNsdWRlICJwc2MuaCIKKworLyogc3VwcG9ydGVkIEkyUyBEQUkgaGFyZHdhcmUgZm9ybWF0cyAqLworI2RlZmluZSBBVTFYUFNDX0kyU19EQUlGTVQgXAorCShTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9MRUZUX0ogfAlcCisJIFNORF9TT0NfREFJRk1UX05CX05GKQorCisvKiBzdXBwb3J0ZWQgSTJTIGRpcmVjdGlvbiAqLworI2RlZmluZSBBVTFYUFNDX0kyU19ESVIgXAorCShTTkRfU09DX0RBSURJUl9QTEFZQkFDSyB8IFNORF9TT0NfREFJRElSX0NBUFRVUkUpCisKKyNkZWZpbmUgQVUxWFBTQ19JMlNfUkFURVMgXAorCVNORFJWX1BDTV9SQVRFXzgwMDBfMTkyMDAwCisKKyNkZWZpbmUgQVUxWFBTQ19JMlNfRk1UUyBcCisJKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUpCisKKyNkZWZpbmUgSTJTU1RBVF9CVVNZKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0kyU1NUQVRfVEIgOiBQU0NfSTJTU1RBVF9SQikKKyNkZWZpbmUgSTJTUENSX1NUQVJUKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0kyU1BDUl9UUyA6IFBTQ19JMlNQQ1JfUlMpCisjZGVmaW5lIEkyU1BDUl9TVE9QKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0kyU1BDUl9UUCA6IFBTQ19JMlNQQ1JfUlApCisjZGVmaW5lIEkyU1BDUl9DTFJGSUZPKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0kyU1BDUl9UQyA6IFBTQ19JMlNQQ1JfUkMpCisKKworLyogaW5zdGFuY2UgZGF0YS4gVGhlcmUgY2FuIGJlIG9ubHkgb25lLCBNYWNMZW9kISEhISAqLworc3RhdGljIHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKmF1MXhwc2NfaTJzX3dvcmtkYXRhOworCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSA9IGF1MXhwc2NfaTJzX3dvcmtkYXRhOworCXVuc2lnbmVkIGxvbmcgY3Q7CisJaW50IHJldDsKKworCXJldCA9IC1FSU5WQUw7CisKKwljdCA9IHBzY2RhdGEtPmNmZzsKKworCWN0ICY9IH4oUFNDX0kyU0NGR19YTSB8IFBTQ19JMlNDRkdfTUxKKTsJLyogbGVmdC1qdXN0aWZpZWQgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWN0IHw9IFBTQ19JMlNDRkdfWE07CS8qIGVuYWJsZSBJMlMgbW9kZSAqLworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX01TQjoKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9MU0I6CisJCWN0IHw9IFBTQ19JMlNDRkdfTUxKOwkvKiBMU0IgKHJpZ2h0LSkganVzdGlmaWVkICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gb3V0OworCX0KKworCWN0ICY9IH4oUFNDX0kyU0NGR19CSSB8IFBTQ19JMlNDRkdfV0kpOwkJLyogSUItSUYgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0lOVl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9ORjoKKwkJY3QgfD0gUFNDX0kyU0NGR19CSSB8IFBTQ19JMlNDRkdfV0k7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfSUY6CisJCWN0IHw9IFBTQ19JMlNDRkdfQkk7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfSUJfTkY6CisJCWN0IHw9IFBTQ19JMlNDRkdfV0k7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfSUJfSUY6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gb3V0OworCX0KKworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06CS8qIENPREVDIG1hc3RlciAqLworCQljdCB8PSBQU0NfSTJTQ0ZHX01TOwkvKiBQU0MgSTJTIHNsYXZlIG1vZGUgKi8KKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgkvKiBDT0RFQyBzbGF2ZSAqLworCQljdCAmPSB+UFNDX0kyU0NGR19NUzsJLyogUFNDIEkyUyBNYXN0ZXIgbW9kZSAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQlnb3RvIG91dDsKKwl9CisKKwlwc2NkYXRhLT5jZmcgPSBjdDsKKwlyZXQgPSAwOworb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19pMnNfd29ya2RhdGE7CisKKwlpbnQgY2ZnYml0czsKKwl1bnNpZ25lZCBsb25nIHN0YXQ7CisKKwkvKiBjaGVjayBpZiB0aGUgUFNDIGlzIGFscmVhZHkgc3RyZWFtaW5nIGRhdGEgKi8KKwlzdGF0ID0gYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpOworCWlmIChzdGF0ICYgKFBTQ19JMlNTVEFUX1RCIHwgUFNDX0kyU1NUQVRfUkIpKSB7CisJCS8qIHJlamVjdCBwYXJhbWV0ZXJzIG5vdCBjdXJyZW50bHkgc2V0IHVwIGluIGhhcmR3YXJlICovCisJCWNmZ2JpdHMgPSBhdV9yZWFkbChJMlNfQ0ZHKHBzY2RhdGEpKTsKKwkJaWYgKChQU0NfSTJTQ0ZHX0dFVF9MRU4oY2ZnYml0cykgIT0gcGFyYW1zLT5tc2JpdHMpIHx8CisJCSAgICAocGFyYW1zX3JhdGUocGFyYW1zKSAhPSBwc2NkYXRhLT5yYXRlKSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0gZWxzZSB7CisJCS8qIHNldCBzYW1wbGUgYml0ZGVwdGggKi8KKwkJcHNjZGF0YS0+Y2ZnICY9IH4oMHgxZiA8PCA0KTsKKwkJcHNjZGF0YS0+Y2ZnIHw9IFBTQ19JMlNDRkdfU0VUX0xFTihwYXJhbXMtPm1zYml0cyk7CisJCS8qIHJlbWVtYmVyIGN1cnJlbnQgcmF0ZSBmb3Igb3RoZXIgc3RyZWFtICovCisJCXBzY2RhdGEtPnJhdGUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpOworCX0KKwlyZXR1cm4gMDsKK30KKworLyogQ29uZmlndXJlIFBTQyBsYXRlOiAgb24gbXkgZGV2ZWwgc3lzdGVtcyB0aGUgY29kZWMgIGlzIEkyUyBtYXN0ZXIgYW5kCisgKiBzdXBwbGllcyB0aGUgaTJzYml0Y2xvY2sgX19BTkRfXyBpMnNNY2xrICghKSB0byB0aGUgUFNDIHVuaXQuICBBU29DCisgKiB1c2VzIGFnZ3Jlc3NpdmUgUE0gYW5kICBzd2l0Y2hlcyB0aGUgY29kZWMgb2ZmICB3aGVuIGl0IGlzIG5vdCBpbiB1c2UKKyAqIHdoaWNoIGFsc28gbWVhbnMgdGhlIFBTQyB1bml0IGRvZXNuJ3QgZ2V0IGFueSBjbG9ja3MgYW5kIGlzIHRoZXJlZm9yZQorICogZGVhZC4gVGhhdCdzIHdoeSB0aGlzIGNodW5rIGhlcmUgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgdHJpZ2dlciBjYWxsYmFjaworICogYmVjYXVzZSBJIGNhbiBiZSByZWFzb25hYmx5IGNlcnRhaW4gdGhlIGNvZGVjIGlzIGRyaXZpbmcgdGhlIGNsb2Nrcy4KKyAqLworc3RhdGljIGludCBhdTF4cHNjX2kyc19jb25maWd1cmUoc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIHRtbzsKKworCS8qIGJyaW5nIFBTQyBvdXQgb2Ygc2xlZXAsIGFuZCBjb25maWd1cmUgSTJTIHVuaXQgKi8KKwlhdV93cml0ZWwoUFNDX0NUUkxfRU5BQkxFLCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoIShhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSkgJiBQU0NfSTJTU1RBVF9TUikgJiYgdG1vKQorCQl0bW8tLTsKKworCWlmICghdG1vKQorCQlnb3RvIHBzY19lcnI7CisKKwlhdV93cml0ZWwoMCwgSTJTX0NGRyhwc2NkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChwc2NkYXRhLT5jZmcgfCBQU0NfSTJTQ0ZHX0RFX0VOQUJMRSwgSTJTX0NGRyhwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3IgSTJTIGNvbnRyb2xsZXIgdG8gYmVjb21lIHJlYWR5ICovCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoIShhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSkgJiBQU0NfSTJTU1RBVF9EUikgJiYgdG1vKQorCQl0bW8tLTsKKworCWlmICh0bW8pCisJCXJldHVybiAwOworCitwc2NfZXJyOgorCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwlhdV93cml0ZWwoUFNDX0NUUkxfU1VTUEVORCwgUFNDX0NUUkwocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwlyZXR1cm4gLUVUSU1FRE9VVDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19zdGFydChzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhLCBpbnQgc3R5cGUpCit7CisJdW5zaWduZWQgbG9uZyB0bW8sIHN0YXQ7CisJaW50IHJldDsKKworCXJldCA9IDA7CisKKwkvKiBpZiBib3RoIFRYIGFuZCBSWCBhcmUgaWRsZSwgY29uZmlndXJlIHRoZSBQU0MgICovCisJc3RhdCA9IGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKTsKKwlpZiAoIShzdGF0ICYgKFBTQ19JMlNTVEFUX1RCIHwgUFNDX0kyU1NUQVRfUkIpKSkgeworCQlyZXQgPSBhdTF4cHNjX2kyc19jb25maWd1cmUocHNjZGF0YSk7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKKwl9CisKKwlhdV93cml0ZWwoSTJTUENSX0NMUkZJRk8oc3R5cGUpLCBJMlNfUENSKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKEkyU1BDUl9TVEFSVChzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIHdhaXQgZm9yIHN0YXJ0IGNvbmZpcm1hdGlvbiAqLworCXRtbyA9IDEwMDAwMDA7CisJd2hpbGUgKCEoYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpICYgSTJTU1RBVF9CVVNZKHN0eXBlKSkgJiYgdG1vKQorCQl0bW8tLTsKKworCWlmICghdG1vKSB7CisJCWF1X3dyaXRlbChJMlNQQ1JfU1RPUChzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisJCXJldCA9IC1FVElNRURPVVQ7CisJfQorb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfc3RvcChzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhLCBpbnQgc3R5cGUpCit7CisJdW5zaWduZWQgbG9uZyB0bW8sIHN0YXQ7CisKKwlhdV93cml0ZWwoSTJTUENSX1NUT1Aoc3R5cGUpLCBJMlNfUENSKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiB3YWl0IGZvciBzdG9wIGNvbmZpcm1hdGlvbiAqLworCXRtbyA9IDEwMDAwMDA7CisJd2hpbGUgKChhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSkgJiBJMlNTVEFUX0JVU1koc3R5cGUpKSAmJiB0bW8pCisJCXRtby0tOworCisJLyogaWYgYm90aCBUWCBhbmQgUlggYXJlIGlkbGUsIGRpc2FibGUgUFNDICovCisJc3RhdCA9IGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKTsKKwlpZiAoIShzdGF0ICYgKFBTQ19JMlNTVEFUX1JCIHwgUFNDX0kyU1NUQVRfUkIpKSkgeworCQlhdV93cml0ZWwoMCwgSTJTX0NGRyhwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJYXVfd3JpdGVsKFBTQ19DVFJMX1NVU1BFTkQsIFBTQ19DVFJMKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2kyc193b3JrZGF0YTsKKwlpbnQgcmV0LCBzdHlwZSA9IFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSk7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJCXJldCA9IGF1MXhwc2NfaTJzX3N0YXJ0KHBzY2RhdGEsIHN0eXBlKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKwkJcmV0ID0gYXUxeHBzY19pMnNfc3RvcChwc2NkYXRhLCBzdHlwZSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldCA9IC1FSU5WQUw7CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHJlc291cmNlICpyOworCXVuc2lnbmVkIGxvbmcgc2VsOworCWludCByZXQ7CisKKwlpZiAoYXUxeHBzY19pMnNfd29ya2RhdGEpCisJCXJldHVybiAtRUJVU1k7CisKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWF1MXhwc2NfaTJzX3dvcmtkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmICghcikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDA7CisJfQorCisJcmV0ID0gLUVCVVNZOworCWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEgPQorCQlyZXF1ZXN0X21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSwKKwkJCQkJImF1MXhwc2NfaTJzIik7CisJaWYgKCFhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKQorCQlnb3RvIG91dDA7CisKKwlhdTF4cHNjX2kyc193b3JrZGF0YS0+bW1pbyA9IGlvcmVtYXAoci0+c3RhcnQsIDB4ZmZmZik7CisJaWYgKCFhdTF4cHNjX2kyc193b3JrZGF0YS0+bW1pbykKKwkJZ290byBvdXQxOworCisJLyogcHJlc2VydmUgUFNDIGNsb2NrIHNvdXJjZSBzZXQgdXAgYnkgcGxhdGZvcm0gKGRldi5wbGF0Zm9ybV9kYXRhCisJICogaXMgYWxyZWFkeSBvY2N1cGllZCBieSBzb2MgbGF5ZXIpCisJICovCisJc2VsID0gYXVfcmVhZGwoUFNDX1NFTChhdTF4cHNjX2kyc193b3JrZGF0YSkpICYgUFNDX1NFTF9DTEtfTUFTSzsKKwlhdV93cml0ZWwoUFNDX0NUUkxfRElTQUJMRSwgUFNDX0NUUkwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19TRUxfUFNfSTJTTU9ERSB8IHNlbCwgUFNDX1NFTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogcHJlY29uZmlndXJlOiBzZXQgbWF4IHJ4L3R4IGZpZm8gZGVwdGhzICovCisJYXUxeHBzY19pMnNfd29ya2RhdGEtPmNmZyB8PQorCQkJUFNDX0kyU0NGR19SVF9GSUZPOCB8IFBTQ19JMlNDRkdfVFRfRklGTzg7CisKKwkvKiBkb24ndCB3YWl0IGZvciBJMlMgY29yZSB0byBiZWNvbWUgcmVhZHkgbm93OyBjbG9ja3MgbWF5IG5vdAorCSAqIGJlIHJ1bm5pbmcgeWV0OyBkZXBlbmRpbmcgb24gY2xvY2sgaW5wdXQgZm9yIFBTQyBhIHdhaXQgbWlnaHQKKwkgKiB0aW1lIG91dC4KKwkgKi8KKworCXJldHVybiAwOworCitvdXQxOgorCXJlbGVhc2VfcmVzb3VyY2UoYXUxeHBzY19pMnNfd29ya2RhdGEtPmlvYXJlYSk7CisJa2ZyZWUoYXUxeHBzY19pMnNfd29ya2RhdGEtPmlvYXJlYSk7CitvdXQwOgorCWtmcmVlKGF1MXhwc2NfaTJzX3dvcmtkYXRhKTsKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9IE5VTEw7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgYXUxeHBzY19pMnNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJYXVfd3JpdGVsKDAsIEkyU19DRkcoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCisJaW91bm1hcChhdTF4cHNjX2kyc193b3JrZGF0YS0+bW1pbyk7CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKKwlrZnJlZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKKwlrZnJlZShhdTF4cHNjX2kyc193b3JrZGF0YSk7CisJYXUxeHBzY19pMnNfd29ya2RhdGEgPSBOVUxMOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCit7CisJLyogc2F2ZSBpbnRlcmVzdGluZyByZWdpc3RlciBhbmQgZGlzYWJsZSBQU0MgKi8KKwlhdTF4cHNjX2kyc193b3JrZGF0YS0+cG1bMF0gPQorCQlhdV9yZWFkbChQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisKKwlhdV93cml0ZWwoMCwgSTJTX0NGRyhhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX0NUUkxfRElTQUJMRSwgUFNDX0NUUkwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwkvKiBzZWxlY3QgSTJTIG1vZGUgYW5kIFBTQyBjbG9jayAqLworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoMCwgUFNDX1NFTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoYXUxeHBzY19pMnNfd29ya2RhdGEtPnBtWzBdLAorCQkJUFNDX1NFTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19kYWkgYXUxeHBzY19pMnNfZGFpID0geworCS5uYW1lCQkJPSAiYXUxeHBzY19pMnMiLAorCS50eXBlCQkJPSBTTkRfU09DX0RBSV9JMlMsCisJLnByb2JlCQkJPSBhdTF4cHNjX2kyc19wcm9iZSwKKwkucmVtb3ZlCQkJPSBhdTF4cHNjX2kyc19yZW1vdmUsCisJLnN1c3BlbmQJCT0gYXUxeHBzY19pMnNfc3VzcGVuZCwKKwkucmVzdW1lCQkJPSBhdTF4cHNjX2kyc19yZXN1bWUsCisJLnBsYXliYWNrID0geworCQkucmF0ZXMJCT0gQVUxWFBTQ19JMlNfUkFURVMsCisJCS5mb3JtYXRzCT0gQVUxWFBTQ19JMlNfRk1UUywKKwkJLmNoYW5uZWxzX21pbgk9IDIsCisJCS5jaGFubmVsc19tYXgJPSA4LAkvKiAyIHdpdGhvdXQgZXh0ZXJuYWwgaGVscCAqLworCX0sCisJLmNhcHR1cmUgPSB7CisJCS5yYXRlcwkJPSBBVTFYUFNDX0kyU19SQVRFUywKKwkJLmZvcm1hdHMJPSBBVTFYUFNDX0kyU19GTVRTLAorCQkuY2hhbm5lbHNfbWluCT0gMiwKKwkJLmNoYW5uZWxzX21heAk9IDgsCS8qIDIgd2l0aG91dCBleHRlcm5hbCBoZWxwICovCisJfSwKKwkub3BzID0geworCQkudHJpZ2dlcgk9IGF1MXhwc2NfaTJzX3RyaWdnZXIsCisJCS5od19wYXJhbXMJPSBhdTF4cHNjX2kyc19od19wYXJhbXMsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLnNldF9mbXQJPSBhdTF4cHNjX2kyc19zZXRfZm10LAorCX0sCit9OworRVhQT1JUX1NZTUJPTChhdTF4cHNjX2kyc19kYWkpOworCitzdGF0aWMgaW50IF9faW5pdCBhdTF4cHNjX2kyc19pbml0KHZvaWQpCit7CisJYXUxeHBzY19pMnNfd29ya2RhdGEgPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYXUxeHBzY19pMnNfZXhpdCh2b2lkKQoreworfQorCittb2R1bGVfaW5pdChhdTF4cHNjX2kyc19pbml0KTsKK21vZHVsZV9leGl0KGF1MXhwc2NfaTJzX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MTJ4MC9BdTE1NTAgUFNDIEkyUyBBTFNBIEFTb0MgYXVkaW8gZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJNYW51ZWwgTGF1c3MgPG1hbm9Acm9hcmluZWxrLmhvbWVsaW51eC5uZXQ+Iik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9wc2MuaCBiL3NvdW5kL3NvYy9hdTF4L3BzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZGIxYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIE5PVEU6IGFsbCBvZiB0aGVzZSBkcml2ZXJzIGNhbiBvbmx5IHdvcmsgd2l0aCBhIFNJTkdMRSBpbnN0YW5jZQorICoJIG9mIGEgUFNDLiBNdWx0aXBsZSBpbmRlcGVuZGVudCBhdWRpbyBkZXZpY2VzIGFyZSBpbXBvc3NpYmxlCisgKgkgd2l0aCBBU29DIHYxLgorICovCisKKyNpZm5kZWYgX0FVMVhfUENNX0gKKyNkZWZpbmUgX0FVMVhfUENNX0gKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2FjOTdfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gYXUxeHBzY19zb2NfcGxhdGZvcm07CitleHRlcm4gc3RydWN0IHNuZF9hYzk3X2J1c19vcHMgc29jX2FjOTdfb3BzOworCitzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhIHsKKwl2b2lkIF9faW9tZW0gKm1taW87CisKKwl1bnNpZ25lZCBsb25nIGNmZzsKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisKKwl1bnNpZ25lZCBsb25nIHBtWzJdOworCXN0cnVjdCByZXNvdXJjZSAqaW9hcmVhOworfTsKKworI2RlZmluZSBQQ01fVFgJMAorI2RlZmluZSBQQ01fUlgJMQorCisjZGVmaW5lIFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSkgXAorCSgoc3Vic3RyZWFtKS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0sgPyBQQ01fVFggOiBQQ01fUlgpCisKKy8qIGVhc3kgYWNjZXNzIG1hY3JvcyAqLworI2RlZmluZSBQU0NfQ1RSTCh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQ1RSTF9PRkZTRVQpCisjZGVmaW5lIFBTQ19TRUwoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX1NFTF9PRkZTRVQpCisjZGVmaW5lIEkyU19TVEFUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19JMlNTVEFUX09GRlNFVCkKKyNkZWZpbmUgSTJTX0NGRyh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfSTJTQ0ZHX09GRlNFVCkKKyNkZWZpbmUgSTJTX1BDUih4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfSTJTUENSX09GRlNFVCkKKyNkZWZpbmUgQUM5N19DRkcoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX0FDOTdDRkdfT0ZGU0VUKQorI2RlZmluZSBBQzk3X0NEQyh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N0NEQ19PRkZTRVQpCisjZGVmaW5lIEFDOTdfRVZOVCh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N0VWTlRfT0ZGU0VUKQorI2RlZmluZSBBQzk3X1BDUih4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N1BDUl9PRkZTRVQpCisjZGVmaW5lIEFDOTdfUlNUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3UlNUX09GRlNFVCkKKyNkZWZpbmUgQUM5N19TVEFUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3U1RBVF9PRkZTRVQpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F1MXgvc2FtcGxlLWFjOTcuYyBiL3NvdW5kL3NvYy9hdTF4L3NhbXBsZS1hYzk3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc1YWU3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L3NhbXBsZS1hYzk3LmMKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBTYW1wbGUgQXUxMngwL0F1MTU1MCBQU0MgQUM5NyBzb3VuZCBtYWNoaW5lLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDA4IE1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb3V0bGluZWQgaW4gdGhlIGZpbGUgQ09QWUlORyBhdCB0aGUgcm9vdCBvZiB0aGlzCisgKiAgc291cmNlIGFyY2hpdmUuCisgKgorICogVGhpcyBpcyBhIHZlcnkgZ2VuZXJpYyBBQzk3IHNvdW5kIG1hY2hpbmUgZHJpdmVyIGZvciBib2FyZHMgd2hpY2gKKyAqIGhhdmUgKEFDOTcpIGF1ZGlvIGF0IFBTQzEgKGUuZy4gREIxMjAwIGRlbW9ib2FyZHMpLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9kYmRtYS5oPgorCisjaW5jbHVkZSAiLi4vY29kZWNzL2FjOTcuaCIKKyNpbmNsdWRlICJwc2MuaCIKKworc3RhdGljIGludCBhdTF4cHNjX3NhbXBsZV9hYzk3X2luaXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9saW5rIGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGFpID0geworCS5uYW1lCQk9ICJBQzk3IiwKKwkuc3RyZWFtX25hbWUJPSAiQUM5NyBIaUZpIiwKKwkuY3B1X2RhaQk9ICZhdTF4cHNjX2FjOTdfZGFpLAkvKiBzZWUgcHNjLWFjOTcuYyAqLworCS5jb2RlY19kYWkJPSAmYWM5N19kYWksCQkvKiBzZWUgY29kZWNzL2FjOTcuYyAqLworCS5pbml0CQk9IGF1MXhwc2Nfc2FtcGxlX2FjOTdfaW5pdCwKKwkub3BzCQk9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfbWFjaGluZSBhdTF4cHNjX3NhbXBsZV9hYzk3X21hY2hpbmUgPSB7CisJLm5hbWUJCT0gIkF1MXh4eCBQU0MgQUM5NyBBdWRpbyIsCisJLmRhaV9saW5rCT0gJmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGFpLAorCS5udW1fbGlua3MJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSBhdTF4cHNjX3NhbXBsZV9hYzk3X2RldmRhdGEgPSB7CisJLm1hY2hpbmUJPSAmYXUxeHBzY19zYW1wbGVfYWM5N19tYWNoaW5lLAorCS5wbGF0Zm9ybQk9ICZhdTF4cHNjX3NvY19wbGF0Zm9ybSwgLyogc2VlIGRiZG1hMi5jICovCisJLmNvZGVjX2Rldgk9ICZzb2NfY29kZWNfZGV2X2FjOTcsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGF1MXhwc2NfcHNjMV9yZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IENQSFlTQUREUihQU0MxX0JBU0VfQUREUiksCisJCS5lbmQJPSBDUEhZU0FERFIoUFNDMV9CQVNFX0FERFIpICsgMHgwMDBmZmZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisjaWZkZWYgQ09ORklHX1NPQ19BVTEyMDAKKwkJLnN0YXJ0CT0gQVUxMjAwX1BTQzFfSU5ULAorCQkuZW5kCT0gQVUxMjAwX1BTQzFfSU5ULAorI2VsaWYgZGVmaW5lZChDT05GSUdfU09DX0FVMTU1MCkKKwkJLnN0YXJ0CT0gQVUxNTUwX1BTQzFfSU5ULAorCQkuZW5kCT0gQVUxNTUwX1BTQzFfSU5ULAorI2VuZGlmCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBEU0NSX0NNRDBfUFNDMV9UWCwKKwkJLmVuZAk9IERTQ1JfQ01EMF9QU0MxX1RYLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0RNQSwKKwl9LAorCVszXSA9IHsKKwkJLnN0YXJ0CT0gRFNDUl9DTUQwX1BTQzFfUlgsCisJCS5lbmQJPSBEU0NSX0NNRDBfUFNDMV9SWCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9ETUEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdTF4cHNjX3NhbXBsZV9hYzk3X2RldjsKKworc3RhdGljIGludCBfX2luaXQgYXUxeHBzY19zYW1wbGVfYWM5N19sb2FkKHZvaWQpCit7CisJaW50IHJldDsKKworI2lmZGVmIENPTkZJR19TT0NfQVUxMjAwCisJdW5zaWduZWQgbG9uZyBpbzsKKworCS8qIG1vZGlmeSBzeXNfcGluZnVuYyBmb3IgQUM5NyBvbiBQU0MxICovCisJaW8gPSBhdV9yZWFkbChTWVNfUElORlVOQyk7CisJaW8gfD0gU1lTX1BJTkZVTkNfUDFDOworCWlvICY9IH4oU1lTX1BJTkZVTkNfUDFBIHwgU1lTX1BJTkZVTkNfUDFCKTsKKwlhdV93cml0ZWwoaW8sIFNZU19QSU5GVU5DKTsKKwlhdV9zeW5jKCk7CisjZW5kaWYKKworCXJldCA9IC1FTk9NRU07CisKKwkvKiBzZXR1cCBQU0MgY2xvY2sgc291cmNlIGZvciBBQzk3IHBhcnQ6IGV4dGVybmFsIGNsb2NrIHByb3ZpZGVkCisJICogYnkgY29kZWMuICBUaGUgcHNjLWFjOTcuYyBkcml2ZXIgZGVwZW5kcyBvbiB0aGlzIHNldHRpbmchCisJICovCisJYXVfd3JpdGVsKFBTQ19TRUxfQ0xLX1NFUkNMSywgUFNDMV9CQVNFX0FERFIgKyBQU0NfU0VMX09GRlNFVCk7CisJYXVfc3luYygpOworCisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKKwlpZiAoIWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2KQorCQlnb3RvIG91dDsKKworCWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LT5yZXNvdXJjZSA9CisJCWttZW1kdXAoYXUxeHBzY19wc2MxX3Jlcywgc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKgorCQkJQVJSQVlfU0laRShhdTF4cHNjX3BzYzFfcmVzKSwgR0ZQX0tFUk5FTCk7CisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYtPm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGF1MXhwc2NfcHNjMV9yZXMpOworCWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LT5pZCA9IDE7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShhdTF4cHNjX3NhbXBsZV9hYzk3X2RldiwKKwkJCSAgICAgJmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2ZGF0YSk7CisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXZkYXRhLmRldiA9ICZhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldi0+ZGV2OworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoYXUxeHBzY19zYW1wbGVfYWM5N19kZXYpOworCisJaWYgKHJldCkgeworCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2KTsKKwkJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYgPSBOVUxMOworCX0KKworb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhdTF4cHNjX3NhbXBsZV9hYzk3X2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldik7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2Nfc2FtcGxlX2FjOTdfbG9hZCk7Cittb2R1bGVfZXhpdChhdTF4cHNjX3NhbXBsZV9hYzk3X2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MXh4eCBQU0Mgc2FtcGxlIEFDOTcgbWFjaGluZSIpOworTU9EVUxFX0FVVEhPUigiTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PiIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnIGIvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCmluZGV4IDM5MDNhYjcuLjFkYjA0YTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKQEAgLTEsMzEgKzEsMzcgQEAKIGNvbmZpZyBTTkRfU09DX0FDOTdfQ09ERUMKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05EX1NPQworCXNlbGVjdCBTTkRfQUM5N19DT0RFQworCitjb25maWcgU05EX1NPQ19BSzQ1MzUKKwl0cmlzdGF0ZQorCitjb25maWcgU05EX1NPQ19VREExMzgwCisgICAgICAgIHRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX1dNODUxMAorCXRyaXN0YXRlCiAKIGNvbmZpZyBTTkRfU09DX1dNODczMQogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNODc1MAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNODc1MwogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCisKK2NvbmZpZyBTTkRfU09DX1dNODk5MAorCXRyaXN0YXRlCiAKIGNvbmZpZyBTTkRfU09DX1dNOTcxMgogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNOTcxMwogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKICMgQ2lycnVzIExvZ2ljIENTNDI3MCBDb2RlYwogY29uZmlnIFNORF9TT0NfQ1M0MjcwCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogIyBDaXJydXMgTG9naWMgQ1M0MjcwIENvZGVjIEhhcmR3YXJlIE11dGUgU3VwcG9ydAogIyBTZWxlY3QgaWYgeW91IGhhdmUgZXh0ZXJuYWwgbXV0aW5nIGNpcmN1aXRyeSBhdHRhY2hlZCB0byB5b3VyIENTNDI3MC4KQEAgLTQzLDQgKzQ5LDQgQEAKIAogY29uZmlnIFNORF9TT0NfVExWMzIwQUlDM1gKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05EX1NPQyAmJiBJMkMKKwlkZXBlbmRzIG9uIEkyQwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKaW5kZXggNGUxMzE0Yy4uZDdiOTdhYiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCkBAIC0xLDE2ICsxLDI0IEBACiBzbmQtc29jLWFjOTctb2JqcyA6PSBhYzk3Lm8KK3NuZC1zb2MtYWs0NTM1LW9ianMgOj0gYWs0NTM1Lm8KK3NuZC1zb2MtdWRhMTM4MC1vYmpzIDo9IHVkYTEzODAubworc25kLXNvYy13bTg1MTAtb2JqcyA6PSB3bTg1MTAubwogc25kLXNvYy13bTg3MzEtb2JqcyA6PSB3bTg3MzEubwogc25kLXNvYy13bTg3NTAtb2JqcyA6PSB3bTg3NTAubwogc25kLXNvYy13bTg3NTMtb2JqcyA6PSB3bTg3NTMubworc25kLXNvYy13bTg5OTAtb2JqcyA6PSB3bTg5OTAubwogc25kLXNvYy13bTk3MTItb2JqcyA6PSB3bTk3MTIubwogc25kLXNvYy13bTk3MTMtb2JqcyA6PSB3bTk3MTMubwogc25kLXNvYy1jczQyNzAtb2JqcyA6PSBjczQyNzAubwogc25kLXNvYy10bHYzMjBhaWMzeC1vYmpzIDo9IHRsdjMyMGFpYzN4Lm8KIAogb2JqLSQoQ09ORklHX1NORF9TT0NfQUM5N19DT0RFQykJKz0gc25kLXNvYy1hYzk3Lm8KK29iai0kKENPTkZJR19TTkRfU09DX0FLNDUzNSkJKz0gc25kLXNvYy1hazQ1MzUubworb2JqLSQoQ09ORklHX1NORF9TT0NfVURBMTM4MCkJKz0gc25kLXNvYy11ZGExMzgwLm8KK29iai0kKENPTkZJR19TTkRfU09DX1dNODUxMCkJKz0gc25kLXNvYy13bTg1MTAubwogb2JqLSQoQ09ORklHX1NORF9TT0NfV004NzMxKQkrPSBzbmQtc29jLXdtODczMS5vCiBvYmotJChDT05GSUdfU05EX1NPQ19XTTg3NTApCSs9IHNuZC1zb2Mtd204NzUwLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNODc1MykJKz0gc25kLXNvYy13bTg3NTMubworb2JqLSQoQ09ORklHX1NORF9TT0NfV004OTkwKQkrPSBzbmQtc29jLXdtODk5MC5vCiBvYmotJChDT05GSUdfU05EX1NPQ19XTTk3MTIpCSs9IHNuZC1zb2Mtd205NzEyLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNOTcxMykJKz0gc25kLXNvYy13bTk3MTMubwogb2JqLSQoQ09ORklHX1NORF9TT0NfQ1M0MjcwKQkrPSBzbmQtc29jLWNzNDI3MC5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FjOTcuYyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCmluZGV4IDJhMWZmZTMuLjYxZmQ5NmMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTd0aCBPY3QgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKiBHZW5lcmljIEFDOTcgc3VwcG9ydC4KICAqLwogCkBAIC0yNCw2ICsyMSw3IEBACiAjaW5jbHVkZSA8c291bmQvYWM5N19jb2RlYy5oPgogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KICNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlICJhYzk3LmgiCiAKICNkZWZpbmUgQUM5N19WRVJTSU9OICIwLjYiCiAKQEAgLTQzLDcgKzQxLDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8XAogCQlTTkRSVl9QQ01fUkFURV80ODAwMCkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGFjOTdfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGFjOTdfZGFpID0gewogCS5uYW1lID0gIkFDOTcgSGlGaSIsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9BQzk3LAogCS5wbGF5YmFjayA9IHsKQEAgLTE0Niw5ICsxNDQsMzQgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBhYzk3X3NvY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBtc2cpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXNuZF9hYzk3X3N1c3BlbmQoc29jZGV2LT5jb2RlYy0+YWM5Nyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhYzk3X3NvY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJc25kX2FjOTdfcmVzdW1lKHNvY2Rldi0+Y29kZWMtPmFjOTcpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBhYzk3X3NvY19zdXNwZW5kIE5VTEwKKyNkZWZpbmUgYWM5N19zb2NfcmVzdW1lIE5VTEwKKyNlbmRpZgorCiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hYzk3ID0gewogCS5wcm9iZSA9IAlhYzk3X3NvY19wcm9iZSwKIAkucmVtb3ZlID0gCWFjOTdfc29jX3JlbW92ZSwKKwkuc3VzcGVuZCA9CWFjOTdfc29jX3N1c3BlbmQsCisJLnJlc3VtZSA9CWFjOTdfc29jX3Jlc3VtZSwKIH07CiBFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X2FjOTcpOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FjOTcuaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCmluZGV4IDJiZjZkNjkuLjI4MWFhNDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCkBAIC0xNCw2ICsxNCw2IEBACiAjZGVmaW5lIF9fTElOVVhfU05EX1NPQ19BQzk3X0gKIAogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FjOTc7Ci1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGFjOTdfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhYzk3X2RhaTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FrNDUzNS5jIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjYwMDNjCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuYwpAQCAtMCwwICsxLDY5NiBAQAorLyoKKyAqIGFrNDUzNS5jICAtLSAgQUs0NTM1IEFMU0EgU29jIEF1ZGlvIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAyMDA1IE9wZW5lZGhhbmQgTHRkLgorICoKKyAqIEF1dGhvcjogUmljaGFyZCBQdXJkaWUgPHJpY2hhcmRAb3BlbmVkaGFuZC5jb20+CisgKgorICogQmFzZWQgb24gd204NzUzLmMgYnkgTGlhbSBHaXJkd29vZAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorCisjaW5jbHVkZSAiYWs0NTM1LmgiCisKKyNkZWZpbmUgQVVESU9fTkFNRSAiYWs0NTM1IgorI2RlZmluZSBBSzQ1MzVfVkVSU0lPTiAiMC4zIgorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hazQ1MzU7CisKKy8qIGNvZGVjIHByaXZhdGUgZGF0YSAqLworc3RydWN0IGFrNDUzNV9wcml2IHsKKwl1bnNpZ25lZCBpbnQgc3lzY2xrOworfTsKKworLyoKKyAqIGFrNDUzNSByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgY29uc3QgdTE2IGFrNDUzNV9yZWdbQUs0NTM1X0NBQ0hFUkVHTlVNXSA9IHsKKyAgICAweDAwMDAsIDB4MDA4MCwgMHgwMDAwLCAweDAwMDMsCisgICAgMHgwMDAyLCAweDAwMDAsIDB4MDAxMSwgMHgwMDAxLAorICAgIDB4MDAwMCwgMHgwMDQwLCAweDAwMzYsIDB4MDAxMCwKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDU3LCAweDAwMDAsCit9OworCisvKgorICogcmVhZCBhazQ1MzUgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYWs0NTM1X3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPj0gQUs0NTM1X0NBQ0hFUkVHTlVNKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIGNhY2hlW3JlZ107Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGFrNDUzNV9yZWFkKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXU4IGRhdGE7CisJZGF0YSA9IHJlZzsKKworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgJmRhdGEsIDEpICE9IDEpCisJCXJldHVybiAtRUlPOworCisJaWYgKGNvZGVjLT5od19yZWFkKGNvZGVjLT5jb250cm9sX2RhdGEsICZkYXRhLCAxKSAhPSAxKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiBkYXRhOworfTsKKworLyoKKyAqIHdyaXRlIGFrNDUzNSByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgYWs0NTM1X3dyaXRlX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdTE2IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPj0gQUs0NTM1X0NBQ0hFUkVHTlVNKQorCQlyZXR1cm47CisJY2FjaGVbcmVnXSA9IHZhbHVlOworfQorCisvKgorICogd3JpdGUgdG8gdGhlIEFLNDUzNSByZWdpc3RlciBzcGFjZQorICovCitzdGF0aWMgaW50IGFrNDUzNV93cml0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZWcsCisJdW5zaWduZWQgaW50IHZhbHVlKQoreworCXU4IGRhdGFbMl07CisKKwkvKiBkYXRhIGlzCisJICogICBEMTUuLkQ4IEFLNDUzNSByZWdpc3RlciBvZmZzZXQKKwkgKiAgIEQ3Li4uRDAgcmVnaXN0ZXIgZGF0YQorCSAqLworCWRhdGFbMF0gPSByZWcgJiAweGZmOworCWRhdGFbMV0gPSB2YWx1ZSAmIDB4ZmY7CisKKwlhazQ1MzVfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKwlpZiAoY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpID09IDIpCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X3N5bmMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWludCBpLCByID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBBSzQ1MzVfQ0FDSEVSRUdOVU07IGkrKykKKwkJciB8PSBhazQ1MzVfd3JpdGUoY29kZWMsIGksIGNhY2hlW2ldKTsKKworCXJldHVybiByOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9tb25vX2dhaW5bXSA9IHsiKzZkQiIsICItMTdkQiJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9tb25vX291dFtdID0geyIoTCArIFIpLzIiLCAiSGktWiJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9ocF9vdXRbXSA9IHsiU3RlcmVvIiwgIk1vbm8ifTsKK3N0YXRpYyBjb25zdCBjaGFyICphazQ1MzVfZGVlbXBbXSA9IHsiNDQuMWtIeiIsICJPZmYiLCAiNDhrSHoiLCAiMzJrSHoifTsKK3N0YXRpYyBjb25zdCBjaGFyICphazQ1MzVfbWljX3NlbGVjdFtdID0geyJJbnRlcm5hbCIsICJFeHRlcm5hbCJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIGFrNDUzNV9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9TSUcxLCA3LCAyLCBhazQ1MzVfbW9ub19nYWluKSwKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X1NJRzEsIDYsIDIsIGFrNDUzNV9tb25vX291dCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9NT0RFMiwgMiwgMiwgYWs0NTM1X2hwX291dCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9EQUMsIDAsIDQsIGFrNDUzNV9kZWVtcCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9NSUMsIDEsIDIsIGFrNDUzNV9taWNfc2VsZWN0KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfc25kX2NvbnRyb2xzW10gPSB7CisJU09DX1NJTkdMRSgiQUxDMiBTd2l0Y2giLCBBSzQ1MzVfU0lHMSwgMSwgMSwgMCksCisJU09DX0VOVU0oIk1vbm8gMSBPdXRwdXQiLCBhazQ1MzVfZW51bVsxXSksCisJU09DX0VOVU0oIk1vbm8gMSBHYWluIiwgYWs0NTM1X2VudW1bMF0pLAorCVNPQ19FTlVNKCJIZWFkcGhvbmUgT3V0cHV0IiwgYWs0NTM1X2VudW1bMl0pLAorCVNPQ19FTlVNKCJQbGF5YmFjayBEZWVtcGhhc2lzIiwgYWs0NTM1X2VudW1bM10pLAorCVNPQ19TSU5HTEUoIkJhc3MgVm9sdW1lIiwgQUs0NTM1X0RBQywgMiwgMywgMCksCisJU09DX1NJTkdMRSgiTWljIEJvb3N0ICgrMjBkQikgU3dpdGNoIiwgQUs0NTM1X01JQywgMCwgMSwgMCksCisJU09DX0VOVU0oIk1pYyBTZWxlY3QiLCBhazQ1MzVfZW51bVs0XSksCisJU09DX1NJTkdMRSgiQUxDIE9wZXJhdGlvbiBUaW1lIiwgQUs0NTM1X1RJTUVSLCAwLCAzLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgUmVjb3ZlcnkgVGltZSIsIEFLNDUzNV9USU1FUiwgMiwgMywgMCksCisJU09DX1NJTkdMRSgiQUxDIFpDIFRpbWUiLCBBSzQ1MzVfVElNRVIsIDQsIDMsIDApLAorCVNPQ19TSU5HTEUoIkFMQyAxIFN3aXRjaCIsIEFLNDUzNV9BTEMxLCA1LCAxLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgMiBTd2l0Y2giLCBBSzQ1MzVfQUxDMSwgNiwgMSwgMCksCisJU09DX1NJTkdMRSgiQUxDIFZvbHVtZSIsIEFLNDUzNV9BTEMyLCAwLCAxMjcsIDApLAorCVNPQ19TSU5HTEUoIkNhcHR1cmUgVm9sdW1lIiwgQUs0NTM1X1BHQSwgMCwgMTI3LCAwKSwKKwlTT0NfU0lOR0xFKCJMZWZ0IFBsYXliYWNrIFZvbHVtZSIsIEFLNDUzNV9MQVRULCAwLCAxMjcsIDEpLAorCVNPQ19TSU5HTEUoIlJpZ2h0IFBsYXliYWNrIFZvbHVtZSIsIEFLNDUzNV9SQVRULCAwLCAxMjcsIDEpLAorCVNPQ19TSU5HTEUoIkFVWCBCeXBhc3MgVm9sdW1lIiwgQUs0NTM1X1ZPTCwgMCwgMTUsIDApLAorCVNPQ19TSU5HTEUoIk1pYyBTaWRldG9uZSBWb2x1bWUiLCBBSzQ1MzVfVk9MLCA0LCA3LCAwKSwKK307CisKKy8qIGFkZCBub24gZGFwbSBjb250cm9scyAqLworc3RhdGljIGludCBhazQ1MzVfYWRkX2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlpbnQgZXJyLCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWs0NTM1X3NuZF9jb250cm9scyk7IGkrKykgeworCQllcnIgPSBzbmRfY3RsX2FkZChjb2RlYy0+Y2FyZCwKKwkJCXNuZF9zb2NfY25ldygmYWs0NTM1X3NuZF9jb250cm9sc1tpXSwgY29kZWMsIE5VTEwpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCisvKiBNb25vIDEgTWl4ZXIgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfbW9ubzFfbWl4ZXJfY29udHJvbHNbXSA9IHsKKwlTT0NfREFQTV9TSU5HTEUoIk1pYyBTaWRldG9uZSBTd2l0Y2giLCBBSzQ1MzVfU0lHMSwgNCwgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIEFLNDUzNV9TSUcxLCA1LCAxLCAwKSwKK307CisKKy8qIFN0ZXJlbyBNaXhlciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9zdGVyZW9fbWl4ZXJfY29udHJvbHNbXSA9IHsKKwlTT0NfREFQTV9TSU5HTEUoIk1pYyBTaWRldG9uZSBTd2l0Y2giLCBBSzQ1MzVfU0lHMiwgNCwgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJQbGF5YmFjayBTd2l0Y2giLCBBSzQ1MzVfU0lHMiwgNywgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJBdXggQnlwYXNzIFN3aXRjaCIsIEFLNDUzNV9TSUcyLCA1LCAxLCAwKSwKK307CisKKy8qIElucHV0IE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2lucHV0X21peGVyX2NvbnRyb2xzW10gPSB7CisJU09DX0RBUE1fU0lOR0xFKCJNaWMgQ2FwdHVyZSBTd2l0Y2giLCBBSzQ1MzVfTUlDLCAyLCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIkF1eCBDYXB0dXJlIFN3aXRjaCIsIEFLNDUzNV9NSUMsIDUsIDEsIDApLAorfTsKKworLyogSW5wdXQgbXV4ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2lucHV0X211eF9jb250cm9sID0KKwlTT0NfREFQTV9FTlVNKCJJbnB1dCBTZWxlY3QiLCBhazQ1MzVfZW51bVs0XSk7CisKKy8qIEhQIEwgc3dpdGNoICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2hwbF9jb250cm9sID0KKwlTT0NfREFQTV9TSU5HTEUoIlN3aXRjaCIsIEFLNDUzNV9TSUcyLCAxLCAxLCAxKTsKKworLyogSFAgUiBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfaHByX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzIsIDAsIDEsIDEpOworCisvKiBtb25vIDIgc3dpdGNoICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X21vbm8yX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzEsIDAsIDEsIDApOworCisvKiBMaW5lIG91dCBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfbGluZV9jb250cm9sID0KKwlTT0NfREFQTV9TSU5HTEUoIlN3aXRjaCIsIEFLNDUzNV9TSUcyLCA2LCAxLCAwKTsKKworLyogYWs0NTM1IGRhcG0gd2lkZ2V0cyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IGFrNDUzNV9kYXBtX3dpZGdldHNbXSA9IHsKKwlTTkRfU09DX0RBUE1fTUlYRVIoIlN0ZXJlbyBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9zdGVyZW9fbWl4ZXJfY29udHJvbHNbMF0sCisJCUFSUkFZX1NJWkUoYWs0NTM1X3N0ZXJlb19taXhlcl9jb250cm9scykpLAorCVNORF9TT0NfREFQTV9NSVhFUigiTW9ubzEgTWl4ZXIiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfbW9ubzFfbWl4ZXJfY29udHJvbHNbMF0sCisJCUFSUkFZX1NJWkUoYWs0NTM1X21vbm8xX21peGVyX2NvbnRyb2xzKSksCisJU05EX1NPQ19EQVBNX01JWEVSKCJJbnB1dCBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9pbnB1dF9taXhlcl9jb250cm9sc1swXSwKKwkJQVJSQVlfU0laRShhazQ1MzVfaW5wdXRfbWl4ZXJfY29udHJvbHMpKSwKKwlTTkRfU09DX0RBUE1fTVVYKCJJbnB1dCBNdXgiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfaW5wdXRfbXV4X2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9EQUMoIkRBQyIsICJQbGF5YmFjayIsIEFLNDUzNV9QTTIsIDAsIDApLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIk1vbm8gMiBFbmFibGUiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfbW9ubzJfY29udHJvbCksCisJLyogc3BlYWtlciBwb3dlcnNhdmUgYml0ICovCisJU05EX1NPQ19EQVBNX1BHQSgiU3BlYWtlciBFbmFibGUiLCBBSzQ1MzVfTU9ERTIsIDAsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIkxpbmUgT3V0IEVuYWJsZSIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9saW5lX2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIkxlZnQgSFAgRW5hYmxlIiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmYWs0NTM1X2hwbF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fU1dJVENIKCJSaWdodCBIUCBFbmFibGUiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfaHByX2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIkxPVVQiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJIUEwiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJST1VUIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiSFBSIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiU1BQIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiU1BOIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiTU9VVDEiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJNT1VUMiIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIk1JQ09VVCIpLAorCVNORF9TT0NfREFQTV9BREMoIkFEQyIsICJDYXB0dXJlIiwgQUs0NTM1X1BNMSwgMCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiU3BrIEFtcCIsIEFLNDUzNV9QTTIsIDMsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIkhQIFIgQW1wIiwgQUs0NTM1X1BNMiwgMSwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiSFAgTCBBbXAiLCBBSzQ1MzVfUE0yLCAyLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJNaWMiLCBBSzQ1MzVfUE0xLCAxLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJMaW5lIE91dCIsIEFLNDUzNV9QTTEsIDQsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIk1vbm8gT3V0IiwgQUs0NTM1X1BNMSwgMywgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiQVVYIEluIiwgQUs0NTM1X1BNMSwgMiwgMCwgTlVMTCwgMCksCisKKwlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEludCBCaWFzIiwgQUs0NTM1X01JQywgMywgMCksCisJU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBFeHQgQmlhcyIsIEFLNDUzNV9NSUMsIDQsIDApLAorCVNORF9TT0NfREFQTV9JTlBVVCgiTUlDSU4iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIk1JQ0VYVCIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiQVVYIiksCisJU05EX1NPQ19EQVBNX0lOUFVUKCJNSU4iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIkFJTiIpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisJLypzdGVyZW8gbWl4ZXIgKi8KKwl7IlN0ZXJlbyBNaXhlciIsICJQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisJeyJTdGVyZW8gTWl4ZXIiLCAiTWljIFNpZGV0b25lIFN3aXRjaCIsICJNaWMifSwKKwl7IlN0ZXJlbyBNaXhlciIsICJBdXggQnlwYXNzIFN3aXRjaCIsICJBVVggSW4ifSwKKworCS8qIG1vbm8xIG1peGVyICovCisJeyJNb25vMSBNaXhlciIsICJNaWMgU2lkZXRvbmUgU3dpdGNoIiwgIk1pYyJ9LAorCXsiTW9ubzEgTWl4ZXIiLCAiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisKKwkvKiBNaWMgKi8KKwl7Ik1pYyIsIE5VTEwsICJBSU4ifSwKKwl7IklucHV0IE11eCIsICJJbnRlcm5hbCIsICJNaWMgSW50IEJpYXMifSwKKwl7IklucHV0IE11eCIsICJFeHRlcm5hbCIsICJNaWMgRXh0IEJpYXMifSwKKwl7Ik1pYyBJbnQgQmlhcyIsIE5VTEwsICJNSUNJTiJ9LAorCXsiTWljIEV4dCBCaWFzIiwgTlVMTCwgIk1JQ0VYVCJ9LAorCXsiTUlDT1VUIiwgTlVMTCwgIklucHV0IE11eCJ9LAorCisJLyogbGluZSBvdXQgKi8KKwl7IkxPVVQiLCBOVUxMLCAiTGluZSBPdXQgRW5hYmxlIn0sCisJeyJST1VUIiwgTlVMTCwgIkxpbmUgT3V0IEVuYWJsZSJ9LAorCXsiTGluZSBPdXQgRW5hYmxlIiwgIlN3aXRjaCIsICJMaW5lIE91dCJ9LAorCXsiTGluZSBPdXQiLCBOVUxMLCAiU3RlcmVvIE1peGVyIn0sCisKKwkvKiBtb25vMSBvdXQgKi8KKwl7Ik1PVVQxIiwgTlVMTCwgIk1vbm8gT3V0In0sCisJeyJNb25vIE91dCIsIE5VTEwsICJNb25vMSBNaXhlciJ9LAorCisJLyogbGVmdCBIUCAqLworCXsiSFBMIiwgTlVMTCwgIkxlZnQgSFAgRW5hYmxlIn0sCisJeyJMZWZ0IEhQIEVuYWJsZSIsICJTd2l0Y2giLCAiSFAgTCBBbXAifSwKKwl7IkhQIEwgQW1wIiwgTlVMTCwgIlN0ZXJlbyBNaXhlciJ9LAorCisJLyogcmlnaHQgSFAgKi8KKwl7IkhQUiIsIE5VTEwsICJSaWdodCBIUCBFbmFibGUifSwKKwl7IlJpZ2h0IEhQIEVuYWJsZSIsICJTd2l0Y2giLCAiSFAgUiBBbXAifSwKKwl7IkhQIFIgQW1wIiwgTlVMTCwgIlN0ZXJlbyBNaXhlciJ9LAorCisJLyogc3BlYWtlciAqLworCXsiU1BQIiwgTlVMTCwgIlNwZWFrZXIgRW5hYmxlIn0sCisJeyJTUE4iLCBOVUxMLCAiU3BlYWtlciBFbmFibGUifSwKKwl7IlNwZWFrZXIgRW5hYmxlIiwgIlN3aXRjaCIsICJTcGsgQW1wIn0sCisJeyJTcGsgQW1wIiwgTlVMTCwgIk1JTiJ9LAorCisJLyogbW9ubyAyICovCisJeyJNT1VUMiIsIE5VTEwsICJNb25vIDIgRW5hYmxlIn0sCisJeyJNb25vIDIgRW5hYmxlIiwgIlN3aXRjaCIsICJTdGVyZW8gTWl4ZXIifSwKKworCS8qIEF1eCBJbiAqLworCXsiQXV4IEluIiwgTlVMTCwgIkFVWCJ9LAorCisJLyogQURDICovCisJeyJBREMiLCBOVUxMLCAiSW5wdXQgTWl4ZXIifSwKKwl7IklucHV0IE1peGVyIiwgIk1pYyBDYXB0dXJlIFN3aXRjaCIsICJNaWMifSwKKwl7IklucHV0IE1peGVyIiwgIkF1eCBDYXB0dXJlIFN3aXRjaCIsICJBdXggSW4ifSwKK307CisKK3N0YXRpYyBpbnQgYWs0NTM1X2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhazQ1MzVfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhazQ1MzVfZGFwbV93aWRnZXRzKSk7CisKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3QgYWs0NTM1X3ByaXYgKmFrNDUzNSA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CisKKwlhazQ1MzUtPnN5c2NsayA9IGZyZXE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBhazQ1MzVfcHJpdiAqYWs0NTM1ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKKwl1OCBtb2RlMiA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X01PREUyKSAmIH4oMHgzIDw8IDUpOworCWludCByYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKSwgZnMgPSAyNTY7CisKKwlpZiAocmF0ZSkKKwkJZnMgPSBhazQ1MzUtPnN5c2NsayAvIHJhdGU7CisKKwkvKiBzZXQgZnMgKi8KKwlzd2l0Y2ggKGZzKSB7CisJY2FzZSAxMDI0OgorCQltb2RlMiB8PSAoMHgyIDw8IDUpOworCQlicmVhazsKKwljYXNlIDUxMjoKKwkJbW9kZTIgfD0gKDB4MSA8PCA1KTsKKwkJYnJlYWs7CisJY2FzZSAyNTY6CisJCWJyZWFrOworCX0KKworCS8qIHNldCByYXRlICovCisJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfTU9ERTIsIG1vZGUyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1OCBtb2RlMSA9IDA7CisKKwkvKiBpbnRlcmZhY2UgZm9ybWF0ICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9GT1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOgorCQltb2RlMSA9IDB4MDAwMjsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9MRUZUX0o6CisJCW1vZGUxID0gMHgwMDAxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiB1c2UgMzIgZnMgZm9yIEJDTEsgdG8gc2F2ZSBwb3dlciAqLworCW1vZGUxIHw9IDB4NDsKKworCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X01PREUxLCBtb2RlMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IG11dGVfcmVnID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfREFDKSAmIDB4ZmZkZjsKKwlpZiAoIW11dGUpCisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X0RBQywgbXV0ZV9yZWcpOworCWVsc2UKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfREFDLCBtdXRlX3JlZyB8IDB4MjApOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCit7CisJdTE2IGk7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJCWFrNDUzNV9tdXRlKGNvZGVjLT5kYWksIDApOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgorCQlhazQ1MzVfbXV0ZShjb2RlYy0+ZGFpLCAxKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJaSA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X1BNMSk7CisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X1BNMSwgaSB8IDB4ODApOworCQlpID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfUE0yKTsKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfUE0yLCBpICYgKH4weDgwKSk7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJaSA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X1BNMSk7CisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X1BNMSwgaSAmICh+MHg4MCkpOworCQlicmVhazsKKwl9CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBBSzQ1MzVfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAorCQlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHxcCisJCVNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCisKK3N0cnVjdCBzbmRfc29jX2RhaSBhazQ1MzVfZGFpID0geworCS5uYW1lID0gIkFLNDUzNSIsCisJLnBsYXliYWNrID0geworCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IEFLNDUzNV9SQVRFUywKKwkJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSx9LAorCS5jYXB0dXJlID0geworCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZSIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gQUs0NTM1X1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IGFrNDUzNV9od19wYXJhbXMsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLnNldF9mbXQgPSBhazQ1MzVfc2V0X2RhaV9mbXQsCisJCS5kaWdpdGFsX211dGUgPSBhazQ1MzVfbXV0ZSwKKwkJLnNldF9zeXNjbGsgPSBhazQ1MzVfc2V0X2RhaV9zeXNjbGssCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChhazQ1MzVfZGFpKTsKKworc3RhdGljIGludCBhazQ1MzVfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCisJYWs0NTM1X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWFrNDUzNV9zeW5jKGNvZGVjKTsKKwlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOworCXJldHVybiAwOworfQorCisvKgorICogaW5pdGlhbGlzZSB0aGUgQUs0NTM1IGRyaXZlcgorICogcmVnaXN0ZXIgdGhlIG1peGVyIGFuZCBkc3AgaW50ZXJmYWNlcyB3aXRoIHRoZSBrZXJuZWwKKyAqLworc3RhdGljIGludCBhazQ1MzVfaW5pdChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiQUs0NTM1IjsKKwljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwljb2RlYy0+cmVhZCA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZTsKKwljb2RlYy0+d3JpdGUgPSBhazQ1MzVfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gYWs0NTM1X3NldF9iaWFzX2xldmVsOworCWNvZGVjLT5kYWkgPSAmYWs0NTM1X2RhaTsKKwljb2RlYy0+bnVtX2RhaSA9IDE7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRShhazQ1MzVfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cChhazQ1MzVfcmVnLCBzaXplb2YoYWs0NTM1X3JlZyksIEdGUF9LRVJORUwpOworCisJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKiByZWdpc3RlciBwY21zICovCisJcmV0ID0gc25kX3NvY19uZXdfcGNtcyhzb2NkZXYsIFNORFJWX0RFRkFVTFRfSURYMSwgU05EUlZfREVGQVVMVF9TVFIxKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFrNDUzNTogZmFpbGVkIHRvIGNyZWF0ZSBwY21zXG4iKTsKKwkJZ290byBwY21fZXJyOworCX0KKworCS8qIHBvd2VyIG9uIGRldmljZSAqLworCWFrNDUzNV9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCisJYWs0NTM1X2FkZF9jb250cm9scyhjb2RlYyk7CisJYWs0NTM1X2FkZF93aWRnZXRzKGNvZGVjKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFrNDUzNTogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKworCXJldHVybiByZXQ7CisKK2NhcmRfZXJyOgorCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKK3BjbV9lcnI6CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlICphazQ1MzVfc29jZGV2OworCisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCisjZGVmaW5lIEkyQ19EUklWRVJJRF9BSzQ1MzUgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBhazQ1MzVfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworc3RhdGljIGludCBhazQ1MzVfY29kZWNfcHJvYmUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCBpbnQgYWRkciwgaW50IGtpbmQpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBhazQ1MzVfc29jZGV2OworCXN0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjOworCWludCByZXQ7CisKKwlpZiAoYWRkciAhPSBzZXR1cC0+aTJjX2FkZHJlc3MpCisJCXJldHVybiAtRU5PREVWOworCisJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOworCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKKworCWkyYyA9IGttZW1kdXAoJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKGNsaWVudF90ZW1wbGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChpMmMgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlpMmNfc2V0X2NsaWVudGRhdGEoaTJjLCBjb2RlYyk7CisJY29kZWMtPmNvbnRyb2xfZGF0YSA9IGkyYzsKKworCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQgPSBhazQ1MzVfaW5pdChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGluaXRpYWxpc2UgQUs0NTM1XG4iKTsKKwkJZ290byBlcnI7CisJfQorCXJldHVybiByZXQ7CisKK2VycjoKKwlrZnJlZShjb2RlYyk7CisJa2ZyZWUoaTJjKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFrNDUzNV9pMmNfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisJaTJjX2RldGFjaF9jbGllbnQoY2xpZW50KTsKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlrZnJlZShjbGllbnQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9pMmNfYXR0YWNoKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKK3sKKwlyZXR1cm4gaTJjX3Byb2JlKGFkYXAsICZhZGRyX2RhdGEsIGFrNDUzNV9jb2RlY19wcm9iZSk7Cit9CisKKy8qIGNvcmdpIGkyYyBjb2RlYyBjb250cm9sIGxheWVyICovCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgYWs0NTM1X2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiQUs0NTM1IEkyQyBDb2RlYyIsCisJCS5vd25lciA9IFRISVNfTU9EVUxFLAorCX0sCisJLmlkID0gICAgICAgICAgICAgSTJDX0RSSVZFUklEX0FLNDUzNSwKKwkuYXR0YWNoX2FkYXB0ZXIgPSBhazQ1MzVfaTJjX2F0dGFjaCwKKwkuZGV0YWNoX2NsaWVudCA9ICBhazQ1MzVfaTJjX2RldGFjaCwKKwkuY29tbWFuZCA9ICAgICAgICBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0ZSA9IHsKKwkubmFtZSA9ICAgIkFLNDUzNSIsCisJLmRyaXZlciA9ICZhazQ1MzVfaTJjX2RyaXZlciwKK307CisjZW5kaWYKKworc3RhdGljIGludCBhazQ1MzVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSAqc2V0dXA7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjOworCXN0cnVjdCBhazQ1MzVfcHJpdiAqYWs0NTM1OworCWludCByZXQgPSAwOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQUs0NTM1IEF1ZGlvIENvZGVjICVzIiwgQUs0NTM1X1ZFUlNJT04pOworCisJc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOworCWlmIChjb2RlYyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFrNDUzNSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhazQ1MzVfcHJpdiksIEdGUF9LRVJORUwpOworCWlmIChhazQ1MzUgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWNvZGVjLT5wcml2YXRlX2RhdGEgPSBhazQ1MzU7CisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwlhazQ1MzVfc29jZGV2ID0gc29jZGV2OworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJY29kZWMtPmh3X3JlYWQgPSAoaHdfcmVhZF90KWkyY19tYXN0ZXJfcmVjdjsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJmFrNDUzNV9pMmNfZHJpdmVyKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOworCX0KKyNlbHNlCisJLyogQWRkIG90aGVyIGludGVyZmFjZXMgaGVyZSAqLworI2VuZGlmCisJcmV0dXJuIHJldDsKK30KKworLyogcG93ZXIgZG93biBjaGlwICovCitzdGF0aWMgaW50IGFrNDUzNV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJYWs0NTM1X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJmFrNDUzNV9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjLT5wcml2YXRlX2RhdGEpOworCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hazQ1MzUgPSB7CisJLnByb2JlID0gCWFrNDUzNV9wcm9iZSwKKwkucmVtb3ZlID0gCWFrNDUzNV9yZW1vdmUsCisJLnN1c3BlbmQgPSAJYWs0NTM1X3N1c3BlbmQsCisJLnJlc3VtZSA9CWFrNDUzNV9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl9hazQ1MzUpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNvYyBBSzQ1MzUgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJSaWNoYXJkIFB1cmRpZSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0NTM1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlmZTMwZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0NTM1LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIGFrNDUzNS5oICAtLSAgQUs0NTM1IFNvYyBBdWRpbyBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMjAwNSBPcGVuZWRoYW5kIEx0ZC4KKyAqCisgKiBBdXRob3I6IFJpY2hhcmQgUHVyZGllIDxyaWNoYXJkQG9wZW5lZGhhbmQuY29tPgorICoKKyAqIEJhc2VkIG9uIHdtODc1My5oCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9BSzQ1MzVfSAorI2RlZmluZSBfQUs0NTM1X0gKKworLyogQUs0NTM1IHJlZ2lzdGVyIHNwYWNlICovCisKKyNkZWZpbmUgQUs0NTM1X1BNMQkJMHgwCisjZGVmaW5lIEFLNDUzNV9QTTIJCTB4MQorI2RlZmluZSBBSzQ1MzVfU0lHMQkJMHgyCisjZGVmaW5lIEFLNDUzNV9TSUcyCQkweDMKKyNkZWZpbmUgQUs0NTM1X01PREUxCQkweDQKKyNkZWZpbmUgQUs0NTM1X01PREUyCQkweDUKKyNkZWZpbmUgQUs0NTM1X0RBQwkJMHg2CisjZGVmaW5lIEFLNDUzNV9NSUMJCTB4NworI2RlZmluZSBBSzQ1MzVfVElNRVIJCTB4OAorI2RlZmluZSBBSzQ1MzVfQUxDMQkJMHg5CisjZGVmaW5lIEFLNDUzNV9BTEMyCQkweGEKKyNkZWZpbmUgQUs0NTM1X1BHQQkJMHhiCisjZGVmaW5lIEFLNDUzNV9MQVRUCQkweGMKKyNkZWZpbmUgQUs0NTM1X1JBVFQJCTB4ZAorI2RlZmluZSBBSzQ1MzVfVk9MCQkweGUKKyNkZWZpbmUgQUs0NTM1X1NUQVRVUwkJMHhmCisKKyNkZWZpbmUgQUs0NTM1X0NBQ0hFUkVHTlVNIAkweDEwCisKK3N0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7Cit9OworCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGFrNDUzNV9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfYWs0NTM1OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmMgYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5jCmluZGV4IGU3M2ZjZmQuLjlkZWI4YzcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9jczQyNzAuYwpAQCAtMjAxLDcgKzIwMSw3IEBACiAgKiBkcml2ZXIgd2hhdCB0aGUgaW5wdXQgc2V0dGluZ3MgY2FuIGJlLiAgVGhpcyB3b3VsZCBuZWVkIHRvIGJlIGltcGxlbWVudGVkCiAgKiBmb3Igc3RhbmQtYWxvbmUgbW9kZSB0byB3b3JrLgogICovCi1zdGF0aWMgaW50IGNzNDI3MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgY3M0MjcwX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQkJCSBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMjUxLDcgKzI1MSw3IEBACiAgKiBkYXRhIGZvciBwbGF5YmFjayBvbmx5LCBidXQgQVNvQyBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9ydCBkaWZmZXJlbnQKICAqIGZvcm1hdHMgZm9yIHBsYXliYWNrIHZzLiByZWNvcmQuCiAgKi8KLXN0YXRpYyBpbnQgY3M0MjcwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBjczQyNzBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC00NzEsNyArNDcxLDcgQEAKICAqIGJvYXJkIGRvZXMgbm90IGhhdmUgdGhlIE1VVEVBIG9yIE1VVEVCIHBpbnMgY29ubmVjdGVkIHRvIHN1Y2ggY2lyY3VpdHJ5LAogICogdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZG8gbm90aGluZy4KICAqLwotc3RhdGljIGludCBjczQyNzBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IGNzNDI3MF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCWludCByZWc2OwpAQCAtNjY3LDcgKzY2Nyw3IEBACiAKICNlbmRpZiAvKiBVU0VfSTJDKi8KIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGNzNDI3MF9kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgY3M0MjcwX2RhaSA9IHsKIAkubmFtZSA9ICJDUzQyNzAiLAogCS5wbGF5YmFjayA9IHsKIAkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmggYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5oCmluZGV4IDBjZWQ0OWIuLmFkYzZjZDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmgKKysrIGIvc291bmQvc29jL2NvZGVjcy9jczQyNzAuaApAQCAtMTYsNyArMTYsNyBAQAogICogVGhlIEFTb0MgY29kZWMgREFJIHN0cnVjdHVyZSBmb3IgdGhlIENTNDI3MC4gIEFzc2lnbiB0aGlzIHN0cnVjdHVyZSB0bwogICogdGhlIC5jb2RlY19kYWkgZmllbGQgb2YgeW91ciBtYWNoaW5lIGRyaXZlcidzIHNuZF9zb2NfZGFpX2xpbmsgc3RydWN0dXJlLgogICovCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGNzNDI3MF9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGNzNDI3MF9kYWk7CiAKIC8qCiAgKiBUaGUgQVNvQyBjb2RlYyBkZXZpY2Ugc3RydWN0dXJlIGZvciB0aGUgQ1M0MjcwLiAgQXNzaWduIHRoaXMgc3RydWN0dXJlCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmMgYi9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmMKaW5kZXggMDliMTY2MS4uYjFkY2U1ZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guYwpAQCAtMjksNyArMjksNyBAQAogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqICBIZW5jZSB0aGUgbWFjaGluZSBsYXllciBzaG91bGQgZGlzYWJsZSB1bnN1cHBvcnRlZCBpbnB1dHMvb3V0cHV0cyBieQotICogIHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PX0xPVVQiLCAwKSwgZXRjLgorICogIHNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9fTE9VVCIpLCBldGMuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNDksNyArNDksNyBAQAogI2luY2x1ZGUgInRsdjMyMGFpYzN4LmgiCiAKICNkZWZpbmUgQVVESU9fTkFNRSAiYWljM3giCi0jZGVmaW5lIEFJQzNYX1ZFUlNJT04gIjAuMSIKKyNkZWZpbmUgQUlDM1hfVkVSU0lPTiAiMC4yIgogCiAvKiBjb2RlYyBwcml2YXRlIGRhdGEgKi8KIHN0cnVjdCBhaWMzeF9wcml2IHsKQEAgLTEzOCw2ICsxMzgsMjAgQEAKIAkJcmV0dXJuIC1FSU87CiB9CiAKKy8qCisgKiByZWFkIGZyb20gdGhlIGFpYzN4IHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgYWljM3hfcmVhZChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZWcsCisJCSAgICAgIHU4ICp2YWx1ZSkKK3sKKwkqdmFsdWUgPSByZWcgJiAweGZmOworCWlmIChjb2RlYy0+aHdfcmVhZChjb2RlYy0+Y29udHJvbF9kYXRhLCB2YWx1ZSwgMSkgIT0gMSkKKwkJcmV0dXJuIC1FSU87CisKKwlhaWMzeF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgKnZhbHVlKTsKKwlyZXR1cm4gMDsKK30KKwogI2RlZmluZSBTT0NfREFQTV9TSU5HTEVfQUlDM1goeG5hbWUsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAogewkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgXAogCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCkBAIC0xOTIsNyArMjA2LDcgQEAKIAkJfQogCiAJCWlmIChmb3VuZCkKLQkJCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyh3aWRnZXQtPmNvZGVjKTsKKwkJCXNuZF9zb2NfZGFwbV9zeW5jKHdpZGdldC0+Y29kZWMpOwogCX0KIAogCXJldCA9IHNuZF9zb2NfdXBkYXRlX2JpdHMod2lkZ2V0LT5jb2RlYywgcmVnLCB2YWxfbWFzaywgdmFsKTsKQEAgLTIwOSw2ICsyMjMsOCBAQAogICAgIHsgImRpZmZlcmVudGlhbCBvZiBIUFJPVVQiLCAiY29uc3RhbnQgVkNNIiwgInNpbmdsZS1lbmRlZCIsCiAgICAgICAiZGlmZmVyZW50aWFsIG9mIEhQTENPTSIsICJleHRlcm5hbCBmZWVkYmFjayIgfTsKIHN0YXRpYyBjb25zdCBjaGFyICphaWMzeF9saW5laW5fbW9kZV9tdXhbXSA9IHsgInNpbmdsZS1lbmRlZCIsICJkaWZmZXJlbnRpYWwiIH07CitzdGF0aWMgY29uc3QgY2hhciAqYWljM3hfYWRjX2hwZltdID0KKyAgICB7ICJEaXNhYmxlZCIsICIwLjAwNDV4RnMiLCAiMC4wMTI1eEZzIiwgIjAuMDI1eEZzIiB9OwogCiAjZGVmaW5lIExEQUNfRU5VTQkwCiAjZGVmaW5lIFJEQUNfRU5VTQkxCkBAIC0yMTgsNiArMjM0LDcgQEAKICNkZWZpbmUgTElORTFSX0VOVU0JNQogI2RlZmluZSBMSU5FMkxfRU5VTQk2CiAjZGVmaW5lIExJTkUyUl9FTlVNCTcKKyNkZWZpbmUgQURDX0hQRl9FTlVNCTgKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBhaWMzeF9lbnVtW10gPSB7CiAJU09DX0VOVU1fU0lOR0xFKERBQ19MSU5FX01VWCwgNiwgMywgYWljM3hfbGVmdF9kYWNfbXV4KSwKQEAgLTIyOCw2ICsyNDUsNyBAQAogCVNPQ19FTlVNX1NJTkdMRShMSU5FMVJfMl9SQURDX0NUUkwsIDcsIDIsIGFpYzN4X2xpbmVpbl9tb2RlX211eCksCiAJU09DX0VOVU1fU0lOR0xFKExJTkUyTF8yX0xBRENfQ1RSTCwgNywgMiwgYWljM3hfbGluZWluX21vZGVfbXV4KSwKIAlTT0NfRU5VTV9TSU5HTEUoTElORTJSXzJfUkFEQ19DVFJMLCA3LCAyLCBhaWMzeF9saW5laW5fbW9kZV9tdXgpLAorCVNPQ19FTlVNX0RPVUJMRShBSUMzWF9DT0RFQ19ERklMVF9DVFJMLCA2LCA0LCA0LCBhaWMzeF9hZGNfaHBmKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhaWMzeF9zbmRfY29udHJvbHNbXSA9IHsKQEAgLTI3OCw2ICsyOTYsOCBAQAogCS8qIElucHV0ICovCiAJU09DX0RPVUJMRV9SKCJQR0EgQ2FwdHVyZSBWb2x1bWUiLCBMQURDX1ZPTCwgUkFEQ19WT0wsIDAsIDB4N2YsIDApLAogCVNPQ19ET1VCTEVfUigiUEdBIENhcHR1cmUgU3dpdGNoIiwgTEFEQ19WT0wsIFJBRENfVk9MLCA3LCAweDAxLCAxKSwKKworCVNPQ19FTlVNKCJBREMgSFBGIEN1dC1vZmYiLCBhaWMzeF9lbnVtW0FEQ19IUEZfRU5VTV0pLAogfTsKIAogLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCkBAIC00NDEsMTEgKzQ2MSwzNCBAQAogCVNORF9TT0NfREFQTV9NVVgoIlJpZ2h0IExpbmUyUiBNdXgiLCBTTkRfU09DX05PUE0sIDAsIDAsCiAJCQkgJmFpYzN4X3JpZ2h0X2xpbmUyX211eF9jb250cm9scyksCiAKKwkvKgorCSAqIE5vdCBhIHJlYWwgbWljIGJpYXMgd2lkZ2V0IGJ1dCBzaW1pbGFyIGZ1bmN0aW9uLiBUaGlzIGlzIGZvciBkeW5hbWljCisJICogY29udHJvbCBvZiBHUElPMSBkaWdpdGFsIG1pYyBtb2R1bGF0b3IgY2xvY2sgb3V0cHV0IGZ1bmN0aW9uIHdoZW4KKwkgKiB1c2luZyBkaWdpdGFsIG1pYy4KKwkgKi8KKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiR1BJTzEgZG1pYyBtb2RjbGsiLAorCQkJIEFJQzNYX0dQSU8xX1JFRywgNCwgMHhmLAorCQkJIEFJQzNYX0dQSU8xX0ZVTkNfRElHSVRBTF9NSUNfTU9EQ0xLLAorCQkJIEFJQzNYX0dQSU8xX0ZVTkNfRElTQUJMRUQpLAorCisJLyoKKwkgKiBBbHNvIHNpbWlsYXIgZnVuY3Rpb24gbGlrZSBtaWMgYmlhcy4gU2VsZWN0cyBkaWdpdGFsIG1pYyB3aXRoCisJICogY29uZmlndXJhYmxlIG92ZXJzYW1wbGluZyByYXRlIGluc3RlYWQgb2YgQURDIGNvbnZlcnRlci4KKwkgKi8KKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiRE1pYyBSYXRlIDEyOCIsCisJCQkgQUlDM1hfQVNEX0lOVEZfQ1RSTEEsIDAsIDMsIDEsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJETWljIFJhdGUgNjQiLAorCQkJIEFJQzNYX0FTRF9JTlRGX0NUUkxBLCAwLCAzLCAyLCAwKSwKKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiRE1pYyBSYXRlIDMyIiwKKwkJCSBBSUMzWF9BU0RfSU5URl9DVFJMQSwgMCwgMywgMywgMCksCisKIAkvKiBNaWMgQmlhcyAqLwotCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyAyViIsIE1JQ0JJQVNfQ1RSTCwgNiwgMCksCi0JU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBCaWFzIDIuNVYiLCBNSUNCSUFTX0NUUkwsIDcsIDApLAotCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyBBVkREIiwgTUlDQklBU19DVFJMLCA2LCAwKSwKLQlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEJpYXMgQVZERCIsIE1JQ0JJQVNfQ1RSTCwgNywgMCksCisJU05EX1NPQ19EQVBNX1JFRyhzbmRfc29jX2RhcG1fbWljYmlhcywgIk1pYyBCaWFzIDJWIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDEsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJNaWMgQmlhcyAyLjVWIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDIsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJNaWMgQmlhcyBBVkREIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDMsIDApLAogCiAJLyogTGVmdCBQR0EgdG8gTGVmdCBPdXRwdXQgYnlwYXNzICovCiAJU05EX1NPQ19EQVBNX01JWEVSKCJMZWZ0IFBHQSBCeXBhc3MgTWl4ZXIiLCBTTkRfU09DX05PUE0sIDAsIDAsCkBAIC00ODMsNyArNTI2LDcgQEAKIAlTTkRfU09DX0RBUE1fSU5QVVQoIkxJTkUyUiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBpbnRlcmNvbltdID0gewogCS8qIExlZnQgT3V0cHV0ICovCiAJeyJMZWZ0IERBQyBNdXgiLCAiREFDX0wxIiwgIkxlZnQgREFDIn0sCiAJeyJMZWZ0IERBQyBNdXgiLCAiREFDX0wyIiwgIkxlZnQgREFDIn0sCkBAIC01NTQsNiArNTk3LDcgQEAKIAl7IkxlZnQgUEdBIE1peGVyIiwgIk1pYzNMIFN3aXRjaCIsICJNSUMzTCJ9LAogCiAJeyJMZWZ0IEFEQyIsIE5VTEwsICJMZWZ0IFBHQSBNaXhlciJ9LAorCXsiTGVmdCBBREMiLCBOVUxMLCAiR1BJTzEgZG1pYyBtb2RjbGsifSwKIAogCS8qIFJpZ2h0IElucHV0ICovCiAJeyJSaWdodCBMaW5lMVIgTXV4IiwgInNpbmdsZS1lbmRlZCIsICJMSU5FMVIifSwKQEAgLTU2Nyw2ICs2MTEsNyBAQAogCXsiUmlnaHQgUEdBIE1peGVyIiwgIk1pYzNSIFN3aXRjaCIsICJNSUMzUiJ9LAogCiAJeyJSaWdodCBBREMiLCBOVUxMLCAiUmlnaHQgUEdBIE1peGVyIn0sCisJeyJSaWdodCBBREMiLCBOVUxMLCAiR1BJTzEgZG1pYyBtb2RjbGsifSwKIAogCS8qIExlZnQgUEdBIEJ5cGFzcyAqLwogCXsiTGVmdCBQR0EgQnlwYXNzIE1peGVyIiwgIkxpbmUgU3dpdGNoIiwgIkxlZnQgUEdBIE1peGVyIn0sCkBAIC02MjgsMTAxICs2NzMsMjcgQEAKIAl7Ik1vbm8gT3V0IiwgTlVMTCwgIlJpZ2h0IExpbmUyIEJ5cGFzcyBNaXhlciJ9LAogCXsiUmlnaHQgSFAgT3V0IiwgTlVMTCwgIlJpZ2h0IExpbmUyIEJ5cGFzcyBNaXhlciJ9LAogCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKKwkvKgorCSAqIExvZ2ljYWwgcGF0aCBiZXR3ZWVuIGRpZ2l0YWwgbWljIGVuYWJsZSBhbmQgR1BJTzEgbW9kdWxhdG9yIGNsb2NrCisJICogb3V0cHV0IGZ1bmN0aW9uCisJICovCisJeyJHUElPMSBkbWljIG1vZGNsayIsIE5VTEwsICJETWljIFJhdGUgMTI4In0sCisJeyJHUElPMSBkbWljIG1vZGNsayIsIE5VTEwsICJETWljIFJhdGUgNjQifSwKKwl7IkdQSU8xIGRtaWMgbW9kY2xrIiwgTlVMTCwgIkRNaWMgUmF0ZSAzMiJ9LAogfTsKIAogc3RhdGljIGludCBhaWMzeF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzeF9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJmFpYzN4X2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgYWljM3hfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhaWMzeF9kYXBtX3dpZGdldHMpKTsKIAogCS8qIHNldCB1cCBhdWRpbyBwYXRoIGludGVyY29ubmVjdHMgKi8KLQlmb3IgKGkgPSAwOyBpbnRlcmNvbltpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBpbnRlcmNvbltpXVswXSwKLQkJCQkJICAgaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgaW50ZXJjb24sIEFSUkFZX1NJWkUoaW50ZXJjb24pKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBhaWMzeF9yYXRlX2RpdnMgewotCXUzMiBtY2xrOwotCXUzMiByYXRlOwotCXUzMiBmc3JlZl9yZWc7Ci0JdTggc3JfcmVnOjQ7Ci0JdTggcGxsal9yZWc7Ci0JdTE2IHBsbGRfcmVnOwotfTsKLQotLyogQUlDM1ggY29kZWMgbWNsayBjbG9jayBkaXZpZGVyIGNvZWZmaWNpZW50cyAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBhaWMzeF9yYXRlX2RpdnMgYWljM3hfZGl2c1tdID0gewotCS8qIDhrICovCi0JezEyMDAwMDAwLCA4MDAwLCA0ODAwMCwgMHhhLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA4MDAwLCA0ODAwMCwgMHhhLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA4MDAwLCA0ODAwMCwgMHhhLCA4LCA3MDc1fSwKLQl7MzM4Njg4MDAsIDgwMDAsIDQ4MDAwLCAweGEsIDUsIDgwNDl9LAotCS8qIDExLjAyNWsgKi8KLQl7MTIwMDAwMDAsIDExMDI1LCA0NDEwMCwgMHg2LCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDExMDI1LCA0NDEwMCwgMHg2LCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDExMDI1LCA0NDEwMCwgMHg2LCA4LCAwfSwKLQl7MzM4Njg4MDAsIDExMDI1LCA0NDEwMCwgMHg2LCA1LCAzMzMzfSwKLQkvKiAxNmsgKi8KLQl7MTIwMDAwMDAsIDE2MDAwLCA0ODAwMCwgMHg0LCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCAxNjAwMCwgNDgwMDAsIDB4NCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgMTYwMDAsIDQ4MDAwLCAweDQsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgMTYwMDAsIDQ4MDAwLCAweDQsIDUsIDgwNDl9LAotCS8qIDIyLjA1ayAqLwotCXsxMjAwMDAwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDE1LCA1Mjh9LAotCXsxOTIwMDAwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDksIDQwODB9LAotCXsyMjU3OTIwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDgsIDB9LAotCXszMzg2ODgwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDUsIDMzMzN9LAotCS8qIDMyayAqLwotCXsxMjAwMDAwMCwgMzIwMDAsIDQ4MDAwLCAweDEsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDMyMDAwLCA0ODAwMCwgMHgxLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCAzMjAwMCwgNDgwMDAsIDB4MSwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCAzMjAwMCwgNDgwMDAsIDB4MSwgNSwgODA0OX0sCi0JLyogNDQuMWsgKi8KLQl7MTIwMDAwMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA4LCAwfSwKLQl7MzM4Njg4MDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA1LCAzMzMzfSwKLQkvKiA0OGsgKi8KLQl7MTIwMDAwMDAsIDQ4MDAwLCA0ODAwMCwgMHgwLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA0ODAwMCwgNDgwMDAsIDB4MCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgNDgwMDAsIDQ4MDAwLCAweDAsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgNDgwMDAsIDQ4MDAwLCAweDAsIDUsIDgwNDl9LAotCS8qIDY0ayAqLwotCXsxMjAwMDAwMCwgNjQwMDAsIDk2MDAwLCAweDEsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDY0MDAwLCA5NjAwMCwgMHgxLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA2NDAwMCwgOTYwMDAsIDB4MSwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCA2NDAwMCwgOTYwMDAsIDB4MSwgNSwgODA0OX0sCi0JLyogODguMmsgKi8KLQl7MTIwMDAwMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA4LCAwfSwKLQl7MzM4Njg4MDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA1LCAzMzMzfSwKLQkvKiA5NmsgKi8KLQl7MTIwMDAwMDAsIDk2MDAwLCA5NjAwMCwgMHgwLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA5NjAwMCwgOTYwMDAsIDB4MCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgOTYwMDAsIDk2MDAwLCAweDAsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgOTYwMDAsIDk2MDAwLCAweDAsIDUsIDgwNDl9LAotfTsKLQotc3RhdGljIGlubGluZSBpbnQgYWljM3hfZ2V0X2RpdnMoaW50IG1jbGssIGludCByYXRlKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWljM3hfZGl2cyk7IGkrKykgewotCQlpZiAoYWljM3hfZGl2c1tpXS5yYXRlID09IHJhdGUgJiYgYWljM3hfZGl2c1tpXS5tY2xrID09IG1jbGspCi0JCQlyZXR1cm4gaTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBhaWMzeF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJCQkgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKQEAgLTczMCw1NyArNzAxLDkgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAJc3RydWN0IGFpYzN4X3ByaXYgKmFpYzN4ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKLQlpbnQgaTsKLQl1OCBkYXRhLCBwbGxfcCwgcGxsX3IsIHBsbF9qOwotCXUxNiBwbGxfZDsKLQotCWkgPSBhaWMzeF9nZXRfZGl2cyhhaWMzeC0+c3lzY2xrLCBwYXJhbXNfcmF0ZShwYXJhbXMpKTsKLQotCS8qIFJvdXRlIExlZnQgREFDIHRvIGxlZnQgY2hhbm5lbCBpbnB1dCBhbmQKLQkgKiByaWdodCBEQUMgdG8gcmlnaHQgY2hhbm5lbCBpbnB1dCAqLwotCWRhdGEgPSAoTERBQzJMQ0ggfCBSREFDMlJDSCk7Ci0Jc3dpdGNoIChhaWMzeF9kaXZzW2ldLmZzcmVmX3JlZykgewotCWNhc2UgNDQxMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDQxMDA7Ci0JCWJyZWFrOwotCWNhc2UgNDgwMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDgwMDA7Ci0JCWJyZWFrOwotCWNhc2UgODgyMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDQxMDAgfCBEVUFMX1JBVEVfTU9ERTsKLQkJYnJlYWs7Ci0JY2FzZSA5NjAwMDoKLQkJZGF0YSB8PSBGU1JFRl80ODAwMCB8IERVQUxfUkFURV9NT0RFOwotCQlicmVhazsKLQl9Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0NPREVDX0RBVEFQQVRIX1JFRywgZGF0YSk7Ci0KLQkvKiBjb2RlYyBzYW1wbGUgcmF0ZSBzZWxlY3QgKi8KLQlkYXRhID0gYWljM3hfZGl2c1tpXS5zcl9yZWc7Ci0JZGF0YSB8PSAoZGF0YSA8PCA0KTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfU0FNUExFX1JBVEVfU0VMX1JFRywgZGF0YSk7Ci0KLQkvKiBVc2UgUExMIGZvciBnZW5lcmF0aW9uIEZzcmVmIGJ5IGVxdWF0aW9uOgotCSAqIEZzcmVmID0gKE1DTEsgKiBLICogUikvKDIwNDggKiBQKTsKLQkgKiBGaXggUCA9IDIgYW5kIFIgPSAxIGFuZCBjYWxjdWxhdGUgSywgaWYKLQkgKiBLID0gSi5ELCBpLmUuIEogLSBhbiBpbnRlcmdlciBwb3J0aW9uIG9mIEsgYW5kIEQgaXMgdGhlIGZyYWN0aW9uYWwKLQkgKiBvbmUgd2l0aCA0IGRpZ2l0cyBvZiBwcmVjaXNpb247Ci0JICogRXhhbXBsZToKLQkgKiBGb3IgTUNMSyA9IDIyLjU3OTIgTUh6IGFuZCBGc3JlZiA9IDQ4a0h6OgotCSAqIFNlbGVjdCBQID0gMiwgUj0gMSwgSyA9IDguNzA3NCwgd2hpY2ggcmVzdWx0cyBpbiBKID0gOCwgRCA9IDcwNzQKLQkgKi8KLQlwbGxfcCA9IDI7Ci0JcGxsX3IgPSAxOwotCXBsbF9qID0gYWljM3hfZGl2c1tpXS5wbGxqX3JlZzsKLQlwbGxfZCA9IGFpYzN4X2RpdnNbaV0ucGxsZF9yZWc7Ci0KLQlkYXRhID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQV9SRUcpOwotCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0FfUkVHLCBkYXRhIHwgKHBsbF9wIDw8IFBMTFBfU0hJRlQpKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfT1ZSRl9TVEFUVVNfQU5EX1BMTFJfUkVHLCBwbGxfciA8PCBQTExSX1NISUZUKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dCX1JFRywgcGxsX2ogPDwgUExMSl9TSElGVCk7Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQ19SRUcsIChwbGxfZCA+PiA2KSA8PCBQTExEX01TQl9TSElGVCk7Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HRF9SRUcsCi0JCSAgICAocGxsX2QgJiAweDNGKSA8PCBQTExEX0xTQl9TSElGVCk7CisJaW50IGNvZGVjX2NsayA9IDAsIGJ5cGFzc19wbGwgPSAwLCBmc3JlZiwgbGFzdF9jbGsgPSAwOworCXU4IGRhdGEsIHIsIHAsIHBsbF9xLCBwbGxfcCA9IDEsIHBsbF9yID0gMSwgcGxsX2ogPSAxOworCXUxNiBwbGxfZCA9IDE7CiAKIAkvKiBzZWxlY3QgZGF0YSB3b3JkIGxlbmd0aCAqLwogCWRhdGEgPQpAQCAtODAwLDEwICs3MjMsOTggQEAKIAl9CiAJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0FTRF9JTlRGX0NUUkxCLCBkYXRhKTsKIAorCS8qIEZzcmVmIGNhbiBiZSA0NDEwMCBvciA0ODAwMCAqLworCWZzcmVmID0gKHBhcmFtc19yYXRlKHBhcmFtcykgJSAxMTAyNSA9PSAwKSA/IDQ0MTAwIDogNDgwMDA7CisKKwkvKiBUcnkgdG8gZmluZCBhIHZhbHVlIGZvciBRIHdoaWNoIGFsbG93cyB1cyB0byBieXBhc3MgdGhlIFBMTCBhbmQKKwkgKiBnZW5lcmF0ZSBDT0RFQ19DTEsgZGlyZWN0bHkuICovCisJZm9yIChwbGxfcSA9IDI7IHBsbF9xIDwgMTg7IHBsbF9xKyspCisJCWlmIChhaWMzeC0+c3lzY2xrIC8gKDEyOCAqIHBsbF9xKSA9PSBmc3JlZikgeworCQkJYnlwYXNzX3BsbCA9IDE7CisJCQlicmVhazsKKwkJfQorCisJaWYgKGJ5cGFzc19wbGwpIHsKKwkJcGxsX3EgJj0gMHhmOworCQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRywgcGxsX3EgPDwgUExMUV9TSElGVCk7CisJCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPQl9SRUcsIENPREVDX0NMS0lOX0NMS0RJVik7CisJfSBlbHNlCisJCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPQl9SRUcsIENPREVDX0NMS0lOX1BMTERJVik7CisKKwkvKiBSb3V0ZSBMZWZ0IERBQyB0byBsZWZ0IGNoYW5uZWwgaW5wdXQgYW5kCisJICogcmlnaHQgREFDIHRvIHJpZ2h0IGNoYW5uZWwgaW5wdXQgKi8KKwlkYXRhID0gKExEQUMyTENIIHwgUkRBQzJSQ0gpOworCWRhdGEgfD0gKGZzcmVmID09IDQ0MTAwKSA/IEZTUkVGXzQ0MTAwIDogRlNSRUZfNDgwMDA7CisJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPj0gNjQwMDApCisJCWRhdGEgfD0gRFVBTF9SQVRFX01PREU7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0NPREVDX0RBVEFQQVRIX1JFRywgZGF0YSk7CisKKwkvKiBjb2RlYyBzYW1wbGUgcmF0ZSBzZWxlY3QgKi8KKwlkYXRhID0gKGZzcmVmICogMjApIC8gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8IDY0MDAwKQorCQlkYXRhIC89IDI7CisJZGF0YSAvPSA1OworCWRhdGEgLT0gMjsKKwlkYXRhIHw9IChkYXRhIDw8IDQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9TQU1QTEVfUkFURV9TRUxfUkVHLCBkYXRhKTsKKworCWlmIChieXBhc3NfcGxsKQorCQlyZXR1cm4gMDsKKworCS8qIFVzZSBQTEwKKwkgKiBmaW5kIGFuIGFwcm9wcmlhdGUgc2V0dXAgZm9yIGosIGQsIHIgYW5kIHAgYnkgaXRlcmF0aW5nIG92ZXIKKwkgKiBwIGFuZCByIC0gaiBhbmQgZCBhcmUgY2FsY3VsYXRlZCBmb3IgZWFjaCBmcmFjdGlvbi4KKwkgKiBVcCB0byAxMjggdmFsdWVzIGFyZSBwcm9iZWQsIHRoZSBjbG9zZXN0IG9uZSB3aW5zIHRoZSBnYW1lLgorCSAqIFRoZSBzeXNjbGsgaXMgZGl2aWRlZCBieSAxMDAwIHRvIHByZXZlbnQgaW50ZWdlciBvdmVyZmxvd3MuCisJICovCisJY29kZWNfY2xrID0gKDIwNDggKiBmc3JlZikgLyAoYWljM3gtPnN5c2NsayAvIDEwMDApOworCisJZm9yIChyID0gMTsgciA8PSAxNjsgcisrKQorCQlmb3IgKHAgPSAxOyBwIDw9IDg7IHArKykgeworCQkJaW50IGNsaywgdG1wID0gKGNvZGVjX2NsayAqIHBsbF9yICogMTApIC8gcGxsX3A7CisJCQl1OCBqID0gdG1wIC8gMTAwMDA7CisJCQl1MTYgZCA9IHRtcCAlIDEwMDAwOworCisJCQlpZiAoaiA+IDYzKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoZCAhPSAwICYmIGFpYzN4LT5zeXNjbGsgPCAxMDAwMDAwMCkKKwkJCQljb250aW51ZTsKKworCQkJLyogVGhpcyBpcyBhY3R1YWxseSAxMDAwICogKChqICsgKGQvMTAwMDApKSAqIHIpIC8gcAorCQkJICogVGhlIHRlcm0gaGFkIHRvIGJlIGNvbnZlcnRlZCB0byBnZXQgcmlkIG9mIHRoZQorCQkJICogZGl2aXNpb24gYnkgMTAwMDAgKi8KKwkJCWNsayA9ICgoMTAwMDAgKiBqICogcikgKyAoZCAqIHIpKSAvICgxMCAqIHApOworCisJCQkvKiBjaGVjayB3aGV0aGVyIHRoaXMgdmFsdWVzIGdldCBjbG9zZXIgdGhhbiB0aGUgYmVzdAorCQkJICogb25lcyB3ZSBoYWQgYmVmb3JlICovCisJCQlpZiAoYWJzKGNvZGVjX2NsayAtIGNsaykgPCBhYnMoY29kZWNfY2xrIC0gbGFzdF9jbGspKSB7CisJCQkJcGxsX2ogPSBqOyBwbGxfZCA9IGQ7IHBsbF9yID0gcjsgcGxsX3AgPSBwOworCQkJCWxhc3RfY2xrID0gY2xrOworCQkJfQorCisJCQkvKiBFYXJseSBleGl0IGZvciBleGFjdCBtYXRjaGVzICovCisJCQlpZiAoY2xrID09IGNvZGVjX2NsaykKKwkJCQlicmVhazsKKwkJfQorCisJaWYgKGxhc3RfY2xrID09IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlcygpOiB1bmFibGUgdG8gc2V0dXAgUExMXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRhdGEgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRyk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQV9SRUcsIGRhdGEgfCAocGxsX3AgPDwgUExMUF9TSElGVCkpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9PVlJGX1NUQVRVU19BTkRfUExMUl9SRUcsIHBsbF9yIDw8IFBMTFJfU0hJRlQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0JfUkVHLCBwbGxfaiA8PCBQTExKX1NISUZUKTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dDX1JFRywgKHBsbF9kID4+IDYpIDw8IFBMTERfTVNCX1NISUZUKTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dEX1JFRywKKwkJICAgIChwbGxfZCAmIDB4M0YpIDw8IFBMTERfTFNCX1NISUZUKTsKKwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFpYzN4X211dGUoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIGludCBtdXRlKQorc3RhdGljIGludCBhaWMzeF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXU4IGxkYWNfcmVnID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIExEQUNfVk9MKSAmIH5NVVRFX09OOwpAQCAtODIwLDMxICs4MzEsMjUgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBhaWMzeF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgYWljM3hfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCQkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKIAlzdHJ1Y3QgYWljM3hfcHJpdiAqYWljM3ggPSBjb2RlYy0+cHJpdmF0ZV9kYXRhOwogCi0Jc3dpdGNoIChmcmVxKSB7Ci0JY2FzZSAxMjAwMDAwMDoKLQljYXNlIDE5MjAwMDAwOgotCWNhc2UgMjI1NzkyMDA6Ci0JY2FzZSAzMzg2ODgwMDoKLQkJYWljM3gtPnN5c2NsayA9IGZyZXE7Ci0JCXJldHVybiAwOwotCX0KLQotCXJldHVybiAtRUlOVkFMOworCWFpYzN4LT5zeXNjbGsgPSBmcmVxOworCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFpYzN4X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBhaWMzeF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJCSAgICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwogCXN0cnVjdCBhaWMzeF9wcml2ICphaWMzeCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7Ci0JdTggaWZhY2VfYXJlZyA9IDA7Ci0JdTggaWZhY2VfYnJlZyA9IDA7CisJdTggaWZhY2VfYXJlZywgaWZhY2VfYnJlZzsKKworCWlmYWNlX2FyZWcgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfQVNEX0lOVEZfQ1RSTEEpICYgMHgzZjsKKwlpZmFjZV9icmVnID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFJQzNYX0FTRF9JTlRGX0NUUkxCKSAmIDB4M2Y7CiAKIAkvKiBzZXQgbWFzdGVyL3NsYXZlIGF1ZGlvIGludGVyZmFjZSAqLwogCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spIHsKQEAgLTg4MywxMyArODg4LDE0IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWljM3hfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgYWljM3hfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXN0cnVjdCBhaWMzeF9wcml2ICphaWMzeCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CiAJdTggcmVnOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOgorCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogYWxsIHBvd2VyIGlzIGRyaXZlbiBieSBEQVBNIHN5c3RlbSAqLwogCQlpZiAoYWljM3gtPm1hc3RlcikgewogCQkJLyogZW5hYmxlIHBsbCAqLwpAQCAtODk4LDEwICs5MDQsOSBAQAogCQkJCSAgICByZWcgfCBQTExfRU5BQkxFKTsKIAkJfQogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMToKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjoKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDoKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgogCQkvKgogCQkgKiBhbGwgcG93ZXIgaXMgZHJpdmVuIGJ5IERBUE0gc3lzdGVtLAogCQkgKiBzbyBvdXRwdXQgcG93ZXIgaXMgc2FmZSBpZiBieXBhc3Mgd2FzIHNldApAQCAtOTEzLDcgKzkxOCw3IEBACiAJCQkJICAgIHJlZyAmIH5QTExfRU5BQkxFKTsKIAkJfQogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6CisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQkvKiBmb3JjZSBhbGwgcG93ZXIgb2ZmICovCiAJCXJlZyA9IGFpYzN4X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBMSU5FMUxfMl9MQURDX0NUUkwpOwogCQlhaWMzeF93cml0ZShjb2RlYywgTElORTFMXzJfTEFEQ19DVFJMLCByZWcgJiB+TEFEQ19QV1JfT04pOwpAQCAtOTQ5LDE2ICs5NTQsNDMgQEAKIAkJfQogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCiAJcmV0dXJuIDA7CiB9CiAKK3ZvaWQgYWljM3hfc2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3BpbywgaW50IHN0YXRlKQoreworCXU4IHJlZyA9IGdwaW8gPyBBSUMzWF9HUElPMl9SRUcgOiBBSUMzWF9HUElPMV9SRUc7CisJdTggYml0ID0gZ3BpbyA/IDM6IDA7CisJdTggdmFsID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZykgJiB+KDEgPDwgYml0KTsKKwlhaWMzeF93cml0ZShjb2RlYywgcmVnLCB2YWwgfCAoISFzdGF0ZSA8PCBiaXQpKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFpYzN4X3NldF9ncGlvKTsKKworaW50IGFpYzN4X2dldF9ncGlvKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGdwaW8pCit7CisJdTggcmVnID0gZ3BpbyA/IEFJQzNYX0dQSU8yX1JFRyA6IEFJQzNYX0dQSU8xX1JFRzsKKwl1OCB2YWwsIGJpdCA9IGdwaW8gPyAyOiAxOworCisJYWljM3hfcmVhZChjb2RlYywgcmVnLCAmdmFsKTsKKwlyZXR1cm4gKHZhbCA+PiBiaXQpICYgMTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFpYzN4X2dldF9ncGlvKTsKKworaW50IGFpYzN4X2hlYWRzZXRfZGV0ZWN0ZWQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXU4IHZhbDsKKwlhaWMzeF9yZWFkKGNvZGVjLCBBSUMzWF9SVF9JUlFfRkxBR1NfUkVHLCAmdmFsKTsKKwlyZXR1cm4gKHZhbCA+PiAyKSAmIDE7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChhaWMzeF9oZWFkc2V0X2RldGVjdGVkKTsKKwogI2RlZmluZSBBSUMzWF9SQVRFUwlTTkRSVl9QQ01fUkFURV84MDAwXzk2MDAwCiAjZGVmaW5lIEFJQzNYX0ZPUk1BVFMJKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHwgXAogCQkJIFNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgYWljM3hfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGFpYzN4X2RhaSA9IHsKIAkubmFtZSA9ICJhaWMzeCIsCiAJLnBsYXliYWNrID0gewogCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLApAQCAtOTg4LDcgKzEwMjAsNyBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCWFpYzN4X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTAwOCw3ICsxMDQwLDcgQEAKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KIAotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2RhcG1fc3RhdGUpOworCWFpYzN4X3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTAyMCwxNiArMTA1MiwxNyBAQAogc3RhdGljIGludCBhaWMzeF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGFpYzN4X3NldHVwX2RhdGEgKnNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOwogCWludCByZWcsIHJldCA9IDA7CiAKIAljb2RlYy0+bmFtZSA9ICJhaWMzeCI7CiAJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJY29kZWMtPnJlYWQgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSBhaWMzeF93cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IGFpYzN4X2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gYWljM3hfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZhaWMzeF9kYWk7CiAJY29kZWMtPm51bV9kYWkgPSAxOwotCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IHNpemVvZihhaWMzeF9yZWcpOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUoYWljM3hfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cChhaWMzeF9yZWcsIHNpemVvZihhaWMzeF9yZWcpLCBHRlBfS0VSTkVMKTsKIAlpZiAoY29kZWMtPnJlZ19jYWNoZSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTExMDgsNyArMTE0MSwxMSBAQAogCWFpYzN4X3dyaXRlKGNvZGVjLCBMSU5FMlJfMl9NT05PTE9QTV9WT0wsIERFRkFVTFRfVk9MKTsKIAogCS8qIG9mZiwgd2l0aCBwb3dlciBvbiAqLwotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKworCS8qIHNldHVwIEdQSU8gZnVuY3Rpb25zICovCisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0dQSU8xX1JFRywgKHNldHVwLT5ncGlvX2Z1bmNbMF0gJiAweGYpIDw8IDQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPMl9SRUcsIChzZXR1cC0+Z3Bpb19mdW5jWzFdICYgMHhmKSA8PCA0KTsKIAogCWFpYzN4X2FkZF9jb250cm9scyhjb2RlYyk7CiAJYWljM3hfYWRkX3dpZGdldHMoY29kZWMpOwpAQCAtMTIxNyw2ICsxMjU0LDEyIEBACiAJLm5hbWUgPSAiQUlDM1giLAogCS5kcml2ZXIgPSAmYWljM3hfaTJjX2RyaXZlciwKIH07CisKK3N0YXRpYyBpbnQgYWljM3hfaTJjX3JlYWQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggKnZhbHVlLCBpbnQgbGVuKQoreworCXZhbHVlWzBdID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgdmFsdWVbMF0pOworCXJldHVybiAobGVuID09IDEpOworfQogI2VuZGlmCiAKIHN0YXRpYyBpbnQgYWljM3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKQEAgLTEyNTEsNiArMTI5NCw3IEBACiAJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgewogCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOwogCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdCkgaTJjX21hc3Rlcl9zZW5kOworCQljb2RlYy0+aHdfcmVhZCA9IChod19yZWFkX3QpIGFpYzN4X2kyY19yZWFkOwogCQlyZXQgPSBpMmNfYWRkX2RyaXZlcigmYWljM3hfaTJjX2RyaXZlcik7CiAJCWlmIChyZXQgIT0gMCkKIAkJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgYWRkIGkyYyBkcml2ZXIiKTsKQEAgLTEyNjgsNyArMTMxMiw3IEBACiAKIAkvKiBwb3dlciBkb3duIGNoaXAgKi8KIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJYWljM3hfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzKTsKKwkJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCiAJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKIAlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5oIGIvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5oCmluZGV4IGQwY2RlZWIuLmQ3NmMwNzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmgKQEAgLTM3LDYgKzM3LDggQEAKICNkZWZpbmUgQUlDM1hfQVNEX0lOVEZfQ1RSTEIJCTkKIC8qIEF1ZGlvIG92ZXJmbG93IHN0YXR1cyBhbmQgUExMIFIgdmFsdWUgcHJvZ3JhbW1pbmcgcmVnaXN0ZXIgKi8KICNkZWZpbmUgQUlDM1hfT1ZSRl9TVEFUVVNfQU5EX1BMTFJfUkVHCTExCisvKiBBdWRpbyBjb2RlYyBkaWdpdGFsIGZpbHRlciBjb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIEFJQzNYX0NPREVDX0RGSUxUX0NUUkwJCTEyCiAKIC8qIEFEQyBQR0EgR2FpbiBjb250cm9sIHJlZ2lzdGVycyAqLwogI2RlZmluZSBMQURDX1ZPTAkJCTE1CkBAIC0xMDgsNiArMTEwLDEzIEBACiAjZGVmaW5lIERBQ1IxXzJfUkxPUE1fVk9MCQk5MgogI2RlZmluZSBMTE9QTV9DVFJMCQkJODYKICNkZWZpbmUgUkxPUE1fQ1RSTAkJCTkzCisvKiBHUElPL0lSUSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQUlDM1hfU1RJQ0tZX0lSUV9GTEFHU19SRUcJOTYKKyNkZWZpbmUgQUlDM1hfUlRfSVJRX0ZMQUdTX1JFRwkJOTcKKyNkZWZpbmUgQUlDM1hfR1BJTzFfUkVHCQkJOTgKKyNkZWZpbmUgQUlDM1hfR1BJTzJfUkVHCQkJOTkKKyNkZWZpbmUgQUlDM1hfR1BJT0FfUkVHCQkJMTAwCisjZGVmaW5lIEFJQzNYX0dQSU9CX1JFRwkJCTEwMQogLyogQ2xvY2sgZ2VuZXJhdGlvbiBjb250cm9sIHJlZ2lzdGVyICovCiAjZGVmaW5lIEFJQzNYX0NMS0dFTl9DVFJMX1JFRwkJMTAyCiAKQEAgLTEyOCwxMiArMTM3LDE1IEBACiAKIC8qIFBMTCByZWdpc3RlcnMgYml0ZmllbGRzICovCiAjZGVmaW5lIFBMTFBfU0hJRlQJCTAKKyNkZWZpbmUgUExMUV9TSElGVAkJMwogI2RlZmluZSBQTExSX1NISUZUCQkwCiAjZGVmaW5lIFBMTEpfU0hJRlQJCTIKICNkZWZpbmUgUExMRF9NU0JfU0hJRlQJCTAKICNkZWZpbmUgUExMRF9MU0JfU0hJRlQJCTIKIAogLyogQ2xvY2sgZ2VuZXJhdGlvbiByZWdpc3RlciBiaXRzICovCisjZGVmaW5lIENPREVDX0NMS0lOX1BMTERJVgkwCisjZGVmaW5lIENPREVDX0NMS0lOX0NMS0RJVgkxCiAjZGVmaW5lIFBMTF9DTEtJTl9TSElGVAkJNAogI2RlZmluZSBNQ0xLX1NPVVJDRQkJMHgwCiAjZGVmaW5lIFBMTF9DTEtESVZfU0hJRlQJMApAQCAtMTcxLDExICsxODMsNTIgQEAKIC8qIERlZmF1bHQgaW5wdXQgdm9sdW1lICovCiAjZGVmaW5lIERFRkFVTFRfR0FJTiAgICAweDIwCiAKLXN0cnVjdCBhaWMzeF9zZXR1cF9kYXRhIHsKLQl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKKy8qIEdQSU8gQVBJICovCitlbnVtIHsKKwlBSUMzWF9HUElPMV9GVU5DX0RJU0FCTEVECQk9IDAsCisJQUlDM1hfR1BJTzFfRlVOQ19BVURJT19XT1JEQ0xLX0FEQwk9IDEsCisJQUlDM1hfR1BJTzFfRlVOQ19DTE9DS19NVVgJCT0gMiwKKwlBSUMzWF9HUElPMV9GVU5DX0NMT0NLX01VWF9ESVYyCQk9IDMsCisJQUlDM1hfR1BJTzFfRlVOQ19DTE9DS19NVVhfRElWNAkJPSA0LAorCUFJQzNYX0dQSU8xX0ZVTkNfQ0xPQ0tfTVVYX0RJVjgJCT0gNSwKKwlBSUMzWF9HUElPMV9GVU5DX1NIT1JUX0NJUkNVSVRfSVJRCT0gNiwKKwlBSUMzWF9HUElPMV9GVU5DX0FHQ19OT0lTRV9JUlEJCT0gNywKKwlBSUMzWF9HUElPMV9GVU5DX0lOUFVUCQkJPSA4LAorCUFJQzNYX0dQSU8xX0ZVTkNfT1VUUFVUCQkJPSA5LAorCUFJQzNYX0dQSU8xX0ZVTkNfRElHSVRBTF9NSUNfTU9EQ0xLCT0gMTAsCisJQUlDM1hfR1BJTzFfRlVOQ19BVURJT19XT1JEQ0xLCQk9IDExLAorCUFJQzNYX0dQSU8xX0ZVTkNfQlVUVE9OX0lSUQkJPSAxMiwKKwlBSUMzWF9HUElPMV9GVU5DX0hFQURTRVRfREVURUNUX0lSUQk9IDEzLAorCUFJQzNYX0dQSU8xX0ZVTkNfSEVBRFNFVF9ERVRFQ1RfT1JfQlVUVE9OX0lSUQk9IDE0LAorCUFJQzNYX0dQSU8xX0ZVTkNfQUxMX0lSUQkJPSAxNgogfTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSBhaWMzeF9kYWk7CitlbnVtIHsKKwlBSUMzWF9HUElPMl9GVU5DX0RJU0FCTEVECQk9IDAsCisJQUlDM1hfR1BJTzJfRlVOQ19IRUFEU0VUX0RFVEVDVF9JUlEJPSAyLAorCUFJQzNYX0dQSU8yX0ZVTkNfSU5QVVQJCQk9IDMsCisJQUlDM1hfR1BJTzJfRlVOQ19PVVRQVVQJCQk9IDQsCisJQUlDM1hfR1BJTzJfRlVOQ19ESUdJVEFMX01JQ19JTlBVVAk9IDUsCisJQUlDM1hfR1BJTzJfRlVOQ19BVURJT19CSVRDTEsJCT0gOCwKKwlBSUMzWF9HUElPMl9GVU5DX0hFQURTRVRfREVURUNUX09SX0JVVFRPTl9JUlEgPSA5LAorCUFJQzNYX0dQSU8yX0ZVTkNfQUxMX0lSUQkJPSAxMCwKKwlBSUMzWF9HUElPMl9GVU5DX1NIT1JUX0NJUkNVSVRfT1JfQUdDX0lSUSA9IDExLAorCUFJQzNYX0dQSU8yX0ZVTkNfSEVBRFNFVF9PUl9CVVRUT05fUFJFU1NfT1JfU0hPUlRfQ0lSQ1VJVF9JUlEgPSAxMiwKKwlBSUMzWF9HUElPMl9GVU5DX1NIT1JUX0NJUkNVSVRfSVJRCT0gMTMsCisJQUlDM1hfR1BJTzJfRlVOQ19BR0NfTk9JU0VfSVJRCQk9IDE0LAorCUFJQzNYX0dQSU8yX0ZVTkNfQlVUVE9OX1BSRVNTX0lSUQk9IDE1Cit9OworCit2b2lkIGFpYzN4X3NldF9ncGlvKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGdwaW8sIGludCBzdGF0ZSk7CitpbnQgYWljM3hfZ2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3Bpbyk7CitpbnQgYWljM3hfaGVhZHNldF9kZXRlY3RlZChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpOworCitzdHJ1Y3QgYWljM3hfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7CisJdW5zaWduZWQgaW50IGdwaW9fZnVuY1syXTsKK307CisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYWljM3hfZGFpOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FpYzN4OwogCiAjZW5kaWYgLyogX0FJQzNYX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvdWRhMTM4MC5jIGIvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUyZDZkOQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvdWRhMTM4MC5jCkBAIC0wLDAgKzEsODUyIEBACisvKgorICogdWRhMTM4MC5jIC0gUGhpbGlwcyBVREExMzgwIEFMU0EgU29DIGF1ZGlvIGRyaXZlcgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3IFBoaWxpcHAgWmFiZWwgPHBoaWxpcHAuemFiZWxAZ21haWwuY29tPgorICogSW1wcm92ZWQgc3VwcG9ydCBmb3IgREFQTSBhbmQgYXVkaW8gcm91dGluZy9taXhpbmcgY2FwYWJpbGl0aWVzLAorICogYWRkZWQgVExWIHN1cHBvcnQuCisgKgorICogTW9kaWZpZWQgYnkgUmljaGFyZCBQdXJkaWUgPHJpY2hhcmRAb3BlbmVkaGFuZC5jb20+IHRvIGZpdCBpbnRvIFNvQworICogY29kZWMgbW9kZWwuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1IEdpb3JnaW8gUGFkcmluIDxnaW9yZ2lvQG1hbmRhcmlubG9naXEub3JnPgorICogQ29weXJpZ2h0IDIwMDUgT3BlbmVkaGFuZCBMdGQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9pbmZvLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KKworI2luY2x1ZGUgInVkYTEzODAuaCIKKworI2RlZmluZSBVREExMzgwX1ZFUlNJT04gIjAuNiIKKyNkZWZpbmUgQVVESU9fTkFNRSAidWRhMTM4MCIKKworLyoKKyAqIHVkYTEzODAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGNvbnN0IHUxNiB1ZGExMzgwX3JlZ1tVREExMzgwX0NBQ0hFUkVHTlVNXSA9IHsKKwkweDA1MDIsIDB4MDAwMCwgMHgwMDAwLCAweDNmM2YsCisJMHgwMjAyLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweGZmMDAsIDB4MDAwMCwgMHg0ODAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHg4MDAwLCAweDAwMDIsIDB4MDAwMCwKK307CisKKy8qCisgKiByZWFkIHVkYTEzODAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdW5zaWduZWQgaW50IHJlZykKK3sKKwl1MTYgKmNhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsKKwlpZiAocmVnID09IFVEQTEzODBfUkVTRVQpCisJCXJldHVybiAwOworCWlmIChyZWcgPj0gVURBMTM4MF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuIC0xOworCXJldHVybiBjYWNoZVtyZWddOworfQorCisvKgorICogd3JpdGUgdWRhMTM4MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdWRhMTM4MF93cml0ZV9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXUxNiByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1MTYgKmNhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsKKwlpZiAocmVnID49IFVEQTEzODBfQ0FDSEVSRUdOVU0pCisJCXJldHVybjsKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgVURBMTM4MCByZWdpc3RlciBzcGFjZQorICovCitzdGF0aWMgaW50IHVkYTEzODBfd3JpdGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgcmVnLAorCXVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1OCBkYXRhWzNdOworCisJLyogZGF0YSBpcworCSAqICAgZGF0YVswXSBpcyByZWdpc3RlciBvZmZzZXQKKwkgKiAgIGRhdGFbMV0gaXMgTVMgYnl0ZQorCSAqICAgZGF0YVsyXSBpcyBMUyBieXRlCisJICovCisJZGF0YVswXSA9IHJlZzsKKwlkYXRhWzFdID0gKHZhbHVlICYgMHhmZjAwKSA+PiA4OworCWRhdGFbMl0gPSB2YWx1ZSAmIDB4MDBmZjsKKworCXVkYTEzODBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKworCS8qIHRoZSBpbnRlcnBvbGF0b3IgJiBkZWNpbWF0b3IgcmVncyBtdXN0IG9ubHkgYmUgd3JpdHRlbiB3aGVuIHRoZQorCSAqIGNvZGVjIERBSSBpcyBhY3RpdmUuCisJICovCisJaWYgKCFjb2RlYy0+YWN0aXZlICYmIChyZWcgPj0gVURBMTM4MF9NVk9MKSkKKwkJcmV0dXJuIDA7CisJcHJfZGVidWcoInVkYTEzODA6IGh3IHdyaXRlICV4IHZhbCAleFxuIiwgcmVnLCB2YWx1ZSk7CisJaWYgKGNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAzKSA9PSAzKSB7CisJCXVuc2lnbmVkIGludCB2YWw7CisJCWkyY19tYXN0ZXJfc2VuZChjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAxKTsKKwkJaTJjX21hc3Rlcl9yZWN2KGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOworCQl2YWwgPSAoZGF0YVswXTw8OCkgfCBkYXRhWzFdOworCQlpZiAodmFsICE9IHZhbHVlKSB7CisJCQlwcl9kZWJ1ZygidWRhMTM4MDogUkVBRCBCQUNLIFZBTCAleFxuIiwKKwkJCQkJKGRhdGFbMF08PDgpIHwgZGF0YVsxXSk7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCQlyZXR1cm4gMDsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKKyNkZWZpbmUgdWRhMTM4MF9yZXNldChjKQl1ZGExMzgwX3dyaXRlKGMsIFVEQTEzODBfUkVTRVQsIDApCisKKy8qIGRlY2xhcmF0aW9ucyBvZiBBTFNBIHJlZ19lbGVtX1JFQUwgY29udHJvbHMgKi8KK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX2RlZW1wW10gPSB7CisJIk5vbmUiLAorCSIzMmtIeiIsCisJIjQ0LjFrSHoiLAorCSI0OGtIeiIsCisJIjk2a0h6IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9pbnB1dF9zZWxbXSA9IHsKKwkiTGluZSIsCisJIk1pYyArIExpbmUgUiIsCisJIkxpbmUgTCIsCisJIk1pYyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfb3V0cHV0X3NlbFtdID0geworCSJEQUMiLAorCSJBbmFsb2cgTWl4ZXIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX3NwZl9tb2RlW10gPSB7CisJIkZsYXQiLAorCSJNaW5pbXVtMSIsCisJIk1pbmltdW0yIiwKKwkiTWF4aW11bSIKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9jYXB0dXJlX3NlbFtdID0geworCSJBREMiLAorCSJEaWdpdGFsIE1peGVyIgorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX3NlbF9uc1tdID0geworCSIzcmQtb3JkZXIiLAorCSI1dGgtb3JkZXIiCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfbWl4X2NvbnRyb2xbXSA9IHsKKwkib2ZmIiwKKwkiUENNIG9ubHkiLAorCSJiZWZvcmUgc291bmQgcHJvY2Vzc2luZyIsCisJImFmdGVyIHNvdW5kIHByb2Nlc3NpbmciCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfc2RldF9zZXR0aW5nW10gPSB7CisJIjMyMDAiLAorCSI0ODAwIiwKKwkiOTYwMCIsCisJIjE5MjAwIgorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX29zX3NldHRpbmdbXSA9IHsKKwkic2luZ2xlLXNwZWVkIiwKKwkiZG91YmxlLXNwZWVkIChubyBtaXhpbmcpIiwKKwkicXVhZC1zcGVlZCAobm8gbWl4aW5nKSIKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9kZWVtcF9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfREVFTVAsIDgsIDUsIHVkYTEzODBfZGVlbXApLAorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX0RFRU1QLCAwLCA1LCB1ZGExMzgwX2RlZW1wKSwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfaW5wdXRfc2VsX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX0FEQywgMiwgNCwgdWRhMTM4MF9pbnB1dF9zZWwpOwkJLyogU0VMX01JQywgU0VMX0xOQSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX291dHB1dF9zZWxfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfUE0sIDcsIDIsIHVkYTEzODBfb3V0cHV0X3NlbCk7CQkvKiBSMDJfRU5fQVZDICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfc3BmX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX01PREUsIDE0LCA0LCB1ZGExMzgwX3NwZl9tb2RlKTsJCS8qIE0gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9jYXB0dXJlX3NlbF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9JRkFDRSwgNiwgMiwgdWRhMTM4MF9jYXB0dXJlX3NlbCk7CS8qIFNFTF9TT1VSQ0UgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9zZWxfbnNfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTUlYRVIsIDE0LCAyLCB1ZGExMzgwX3NlbF9ucyk7CQkvKiBTRUxfTlMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9taXhfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTUlYRVIsIDEyLCA0LCB1ZGExMzgwX21peF9jb250cm9sKTsJLyogTUlYLCBNSVhfUE9TICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfc2RldF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9NSVhFUiwgNCwgNCwgdWRhMTM4MF9zZGV0X3NldHRpbmcpOwkvKiBTRF9WQUxVRSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX29zX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX01JWEVSLCAwLCAzLCB1ZGExMzgwX29zX3NldHRpbmcpOwkvKiBPUyAqLworCisvKgorICogZnJvbSAtNDggZEIgaW4gMS41IGRCIHN0ZXBzIChtdXRlIGluc3RlYWQgb2YgLTQ5LjUgZEIpCisgKi8KK3N0YXRpYyBERUNMQVJFX1RMVl9EQl9TQ0FMRShhbWl4X3RsdiwgLTQ5NTAsIDE1MCwgMSk7CisKKy8qCisgKiBmcm9tIC03OCBkQiBpbiAxIGRCIHN0ZXBzICgzIGRCIHN0ZXBzLCByZWFsbHkuIExTQiBhcmUgaWdub3JlZCksCisgKiBmcm9tIC02NiBkQiBpbiAwLjUgZEIgc3RlcHMgKDIgZEIgc3RlcHMsIHJlYWxseSkgYW5kCisgKiBmcm9tIC01MiBkQiBpbiAwLjI1IGRCIHN0ZXBzCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXZvbF90bHZbXSA9IHsKKwlUTFZfREJfUkFOR0VfSEVBRCgzKSwKKwkwLCAxNSwgVExWX0RCX1NDQUxFX0lURU0oLTgyMDAsIDEwMCwgMSksCisJMTYsIDQzLCBUTFZfREJfU0NBTEVfSVRFTSgtNjYwMCwgNTAsIDApLAorCTQ0LCAyNTIsIFRMVl9EQl9TQ0FMRV9JVEVNKC01MjAwLCAyNSwgMCksCit9OworCisvKgorICogZnJvbSAtNzIgZEIgaW4gMS41IGRCIHN0ZXBzICg2IGRCIHN0ZXBzIHJlYWxseSksCisgKiBmcm9tIC02NiBkQiBpbiAwLjc1IGRCIHN0ZXBzICgzIGRCIHN0ZXBzIHJlYWxseSksCisgKiBmcm9tIC02MCBkQiBpbiAwLjUgZEIgc3RlcHMgKDIgZEIgc3RlcHMgcmVhbGx5KSBhbmQKKyAqIGZyb20gLTQ2IGRCIGluIDAuMjUgZEIgc3RlcHMKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB2Y190bHZbXSA9IHsKKwlUTFZfREJfUkFOR0VfSEVBRCg0KSwKKwkwLCA3LCBUTFZfREJfU0NBTEVfSVRFTSgtNzgwMCwgMTUwLCAxKSwKKwk4LCAxNSwgVExWX0RCX1NDQUxFX0lURU0oLTY2MDAsIDc1LCAwKSwKKwkxNiwgNDMsIFRMVl9EQl9TQ0FMRV9JVEVNKC02MDAwLCA1MCwgMCksCisJNDQsIDIyOCwgVExWX0RCX1NDQUxFX0lURU0oLTQ2MDAsIDI1LCAwKSwKK307CisKKy8qIGZyb20gMCB0byA2IGRCIGluIDIgZEIgc3RlcHMgaWYgU1BGIG1vZGUgIT0gZmxhdCAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKHRyX3RsdiwgMCwgMjAwLCAwKTsKKworLyogZnJvbSAwIHRvIDI0IGRCIGluIDIgZEIgc3RlcHMsIGlmIFNQRiBtb2RlID09IG1heGltdW0sIG90aGVyd2lzZSBjdXRzCisgKiBvZmYgYXQgMTggZEIgbWF4KSAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKGJiX3RsdiwgMCwgMjAwLCAwKTsKKworLyogZnJvbSAtNjMgdG8gMjQgZEIgaW4gMC41IGRCIHN0ZXBzICgtMTI4Li4uNDgpICovCitzdGF0aWMgREVDTEFSRV9UTFZfREJfU0NBTEUoZGVjX3RsdiwgLTY0MDAsIDUwLCAxKTsKKworLyogZnJvbSAwIHRvIDI0IGRCIGluIDMgZEIgc3RlcHMgKi8KK3N0YXRpYyBERUNMQVJFX1RMVl9EQl9TQ0FMRShwZ2FfdGx2LCAwLCAzMDAsIDApOworCisvKiBmcm9tIDAgdG8gMzAgZEIgaW4gMiBkQiBzdGVwcyAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKHZnYV90bHYsIDAsIDIwMCwgMCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB1ZGExMzgwX3NuZF9jb250cm9sc1tdID0geworCVNPQ19ET1VCTEVfVExWKCJBbmFsb2cgTWl4ZXIgVm9sdW1lIiwgVURBMTM4MF9BTUlYLCAwLCA4LCA0NCwgMSwgYW1peF90bHYpLAkvKiBBVkNSLCBBVkNMICovCisJU09DX0RPVUJMRV9UTFYoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCBVREExMzgwX01WT0wsIDAsIDgsIDI1MiwgMSwgbXZvbF90bHYpLAkvKiBNVkNMLCBNVkNSICovCisJU09DX1NJTkdMRV9UTFYoIkFEQyBQbGF5YmFjayBWb2x1bWUiLCBVREExMzgwX01JWFZPTCwgOCwgMjI4LCAxLCB2Y190bHYpLAkvKiBWQzIgKi8KKwlTT0NfU0lOR0xFX1RMVigiUENNIFBsYXliYWNrIFZvbHVtZSIsIFVEQTEzODBfTUlYVk9MLCAwLCAyMjgsIDEsIHZjX3RsdiksCS8qIFZDMSAqLworCVNPQ19FTlVNKCJTb3VuZCBQcm9jZXNzaW5nIEZpbHRlciIsIHVkYTEzODBfc3BmX2VudW0pLAkJCQkvKiBNICovCisJU09DX0RPVUJMRV9UTFYoIlRvbmUgQ29udHJvbCAtIFRyZWJsZSIsIFVEQTEzODBfTU9ERSwgNCwgMTIsIDMsIDAsIHRyX3RsdiksIAkvKiBUUkwsIFRSUiAqLworCVNPQ19ET1VCTEVfVExWKCJUb25lIENvbnRyb2wgLSBCYXNzIiwgVURBMTM4MF9NT0RFLCAwLCA4LCAxNSwgMCwgYmJfdGx2KSwJLyogQkJMLCBCQlIgKi8KKy8qKi8JU09DX1NJTkdMRSgiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsIFVEQTEzODBfREVFTVAsIDE0LCAxLCAxKSwJCS8qIE1UTSAqLworCVNPQ19TSU5HTEUoIkFEQyBQbGF5YmFjayBTd2l0Y2giLCBVREExMzgwX0RFRU1QLCAxMSwgMSwgMSksCQkvKiBNVDIgZnJvbSBkZWNpbWF0aW9uIGZpbHRlciAqLworCVNPQ19FTlVNKCJBREMgUGxheWJhY2sgRGUtZW1waGFzaXMiLCB1ZGExMzgwX2RlZW1wX2VudW1bMF0pLAkJLyogREUyICovCisJU09DX1NJTkdMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIFVEQTEzODBfREVFTVAsIDMsIDEsIDEpLAkJLyogTVQxLCBmcm9tIGRpZ2l0YWwgZGF0YSBpbnB1dCAqLworCVNPQ19FTlVNKCJQQ00gUGxheWJhY2sgRGUtZW1waGFzaXMiLCB1ZGExMzgwX2RlZW1wX2VudW1bMV0pLAkJLyogREUxICovCisJU09DX1NJTkdMRSgiREFDIFBvbGFyaXR5IGludmVydGluZyBTd2l0Y2giLCBVREExMzgwX01JWEVSLCAxNSwgMSwgMCksCS8qIERBX1BPTF9JTlYgKi8KKwlTT0NfRU5VTSgiTm9pc2UgU2hhcGVyIiwgdWRhMTM4MF9zZWxfbnNfZW51bSksCQkJCS8qIFNFTF9OUyAqLworCVNPQ19FTlVNKCJEaWdpdGFsIE1peGVyIFNpZ25hbCBDb250cm9sIiwgdWRhMTM4MF9taXhfZW51bSksCQkvKiBNSVhfUE9TLCBNSVggKi8KKwlTT0NfU0lOR0xFKCJTaWxlbmNlIFN3aXRjaCIsIFVEQTEzODBfTUlYRVIsIDcsIDEsIDApLAkJCS8qIFNJTEVOQ0UsIGZvcmNlIERBQyBvdXRwdXQgdG8gc2lsZW5jZSAqLworCVNPQ19TSU5HTEUoIlNpbGVuY2UgRGV0ZWN0b3IgU3dpdGNoIiwgVURBMTM4MF9NSVhFUiwgNiwgMSwgMCksCQkvKiBTREVUX09OICovCisJU09DX0VOVU0oIlNpbGVuY2UgRGV0ZWN0b3IgU2V0dGluZyIsIHVkYTEzODBfc2RldF9lbnVtKSwJCS8qIFNEX1ZBTFVFICovCisJU09DX0VOVU0oIk92ZXJzYW1wbGluZyBJbnB1dCIsIHVkYTEzODBfb3NfZW51bSksCQkJLyogT1MgKi8KKwlTT0NfRE9VQkxFX1M4X1RMVigiQURDIENhcHR1cmUgVm9sdW1lIiwgVURBMTM4MF9ERUMsIC0xMjgsIDQ4LCBkZWNfdGx2KSwJLyogTUxfREVDLCBNUl9ERUMgKi8KKy8qKi8JU09DX1NJTkdMRSgiQURDIENhcHR1cmUgU3dpdGNoIiwgVURBMTM4MF9QR0EsIDE1LCAxLCAxKSwJCS8qIE1UX0FEQyAqLworCVNPQ19ET1VCTEVfVExWKCJMaW5lIENhcHR1cmUgVm9sdW1lIiwgVURBMTM4MF9QR0EsIDAsIDgsIDgsIDAsIHBnYV90bHYpLCAvKiBQR0FfR0FJTkNUUkxMLCBQR0FfR0FJTkNUUkxSICovCisJU09DX1NJTkdMRSgiQURDIFBvbGFyaXR5IGludmVydGluZyBTd2l0Y2giLCBVREExMzgwX0FEQywgMTIsIDEsIDApLAkvKiBBRENQT0xfSU5WICovCisJU09DX1NJTkdMRV9UTFYoIk1pYyBDYXB0dXJlIFZvbHVtZSIsIFVEQTEzODBfQURDLCA4LCAxNSwgMCwgdmdhX3RsdiksCS8qIFZHQV9DVFJMICovCisJU09DX1NJTkdMRSgiREMgRmlsdGVyIEJ5cGFzcyBTd2l0Y2giLCBVREExMzgwX0FEQywgMSwgMSwgMCksCQkvKiBTS0lQX0RDRklMIChiZWZvcmUgZGVjaW1hdG9yKSAqLworCVNPQ19TSU5HTEUoIkRDIEZpbHRlciBFbmFibGUgU3dpdGNoIiwgVURBMTM4MF9BREMsIDAsIDEsIDApLAkJLyogRU5fRENGSUwgKGF0IG91dHB1dCBvZiBkZWNpbWF0b3IpICovCisJU09DX1NJTkdMRSgiQUdDIFRpbWluZyIsIFVEQTEzODBfQUdDLCA4LCA3LCAwKSwJCQkvKiBUT0RPOiBlbnVtLCBzZWUgdGFibGUgNjIgKi8KKwlTT0NfU0lOR0xFKCJBR0MgVGFyZ2V0IGxldmVsIiwgVURBMTM4MF9BR0MsIDIsIDMsIDEpLAkJCS8qIEFHQ19MRVZFTCAqLworCS8qIC01LjUsIC04LCAtMTEuNSwgLTE0IGRCRlMgKi8KKwlTT0NfU0lOR0xFKCJBR0MgU3dpdGNoIiwgVURBMTM4MF9BR0MsIDAsIDEsIDApLAorfTsKKworLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCitzdGF0aWMgaW50IHVkYTEzODBfYWRkX2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlpbnQgZXJyLCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodWRhMTM4MF9zbmRfY29udHJvbHMpOyBpKyspIHsKKwkJZXJyID0gc25kX2N0bF9hZGQoY29kZWMtPmNhcmQsCisJCQlzbmRfc29jX2NuZXcoJnVkYTEzODBfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywgTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIElucHV0IG11eCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHVkYTEzODBfaW5wdXRfbXV4X2NvbnRyb2wgPQorCVNPQ19EQVBNX0VOVU0oIlJvdXRlIiwgdWRhMTM4MF9pbnB1dF9zZWxfZW51bSk7CisKKy8qIE91dHB1dCBtdXggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB1ZGExMzgwX291dHB1dF9tdXhfY29udHJvbCA9CisJU09DX0RBUE1fRU5VTSgiUm91dGUiLCB1ZGExMzgwX291dHB1dF9zZWxfZW51bSk7CisKKy8qIENhcHR1cmUgbXV4ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgdWRhMTM4MF9jYXB0dXJlX211eF9jb250cm9sID0KKwlTT0NfREFQTV9FTlVNKCJSb3V0ZSIsIHVkYTEzODBfY2FwdHVyZV9zZWxfZW51bSk7CisKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHVkYTEzODBfZGFwbV93aWRnZXRzW10gPSB7CisJU05EX1NPQ19EQVBNX01VWCgiSW5wdXQgTXV4IiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmdWRhMTM4MF9pbnB1dF9tdXhfY29udHJvbCksCisJU05EX1NPQ19EQVBNX01VWCgiT3V0cHV0IE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJnVkYTEzODBfb3V0cHV0X211eF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fTVVYKCJDYXB0dXJlIE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJnVkYTEzODBfY2FwdHVyZV9tdXhfY29udHJvbCksCisJU05EX1NPQ19EQVBNX1BHQSgiTGVmdCBQR0EiLCBVREExMzgwX1BNLCAzLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJSaWdodCBQR0EiLCBVREExMzgwX1BNLCAxLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJNaWMgTE5BIiwgVURBMTM4MF9QTSwgNCwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX0FEQygiTGVmdCBBREMiLCAiTGVmdCBDYXB0dXJlIiwgVURBMTM4MF9QTSwgMiwgMCksCisJU05EX1NPQ19EQVBNX0FEQygiUmlnaHQgQURDIiwgIlJpZ2h0IENhcHR1cmUiLCBVREExMzgwX1BNLCAwLCAwKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTk0iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTkwiKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTlIiKSwKKwlTTkRfU09DX0RBUE1fTUlYRVIoIkFuYWxvZyBNaXhlciIsIFVEQTEzODBfUE0sIDYsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIlZPVVRMSFAiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJWT1VUUkhQIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiVk9VVEwiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJWT1VUUiIpLAorCVNORF9TT0NfREFQTV9EQUMoIkRBQyIsICJQbGF5YmFjayIsIFVEQTEzODBfUE0sIDEwLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJIZWFkUGhvbmUgRHJpdmVyIiwgVURBMTM4MF9QTSwgMTMsIDAsIE5VTEwsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisKKwkvKiBvdXRwdXQgbXV4ICovCisJeyJIZWFkUGhvbmUgRHJpdmVyIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKwl7IlZPVVRSIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKwl7IlZPVVRMIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKworCXsiQW5hbG9nIE1peGVyIiwgTlVMTCwgIlZJTlIifSwKKwl7IkFuYWxvZyBNaXhlciIsIE5VTEwsICJWSU5MIn0sCisJeyJBbmFsb2cgTWl4ZXIiLCBOVUxMLCAiREFDIn0sCisKKwl7Ik91dHB1dCBNdXgiLCAiREFDIiwgIkRBQyJ9LAorCXsiT3V0cHV0IE11eCIsICJBbmFsb2cgTWl4ZXIiLCAiQW5hbG9nIE1peGVyIn0sCisKKwkvKiB7IkRBQyIsICJEaWdpdGFsIE1peGVyIiwgIkkyUyIgfSAqLworCisJLyogaGVhZHBob25lIGRyaXZlciAqLworCXsiVk9VVExIUCIsIE5VTEwsICJIZWFkUGhvbmUgRHJpdmVyIn0sCisJeyJWT1VUUkhQIiwgTlVMTCwgIkhlYWRQaG9uZSBEcml2ZXIifSwKKworCS8qIGlucHV0IG11eCAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiSW5wdXQgTXV4In0sCisJeyJJbnB1dCBNdXgiLCAiTWljIiwgIk1pYyBMTkEifSwKKwl7IklucHV0IE11eCIsICJNaWMgKyBMaW5lIFIiLCAiTWljIExOQSJ9LAorCXsiSW5wdXQgTXV4IiwgIkxpbmUgTCIsICJMZWZ0IFBHQSJ9LAorCXsiSW5wdXQgTXV4IiwgIkxpbmUiLCAiTGVmdCBQR0EifSwKKworCS8qIHJpZ2h0IGlucHV0ICovCisJeyJSaWdodCBBREMiLCAiTWljICsgTGluZSBSIiwgIlJpZ2h0IFBHQSJ9LAorCXsiUmlnaHQgQURDIiwgIkxpbmUiLCAiUmlnaHQgUEdBIn0sCisKKwkvKiBpbnB1dHMgKi8KKwl7Ik1pYyBMTkEiLCBOVUxMLCAiVklOTSJ9LAorCXsiTGVmdCBQR0EiLCBOVUxMLCAiVklOTCJ9LAorCXsiUmlnaHQgUEdBIiwgTlVMTCwgIlZJTlIifSwKK307CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgdWRhMTM4MF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHVkYTEzODBfZGFwbV93aWRnZXRzKSk7CisKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJaW50IGlmYWNlOworCisJLyogc2V0IHVwIERBSSBiYXNlZCB1cG9uIGZtdCAqLworCWlmYWNlID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9JRkFDRSk7CisJaWZhY2UgJj0gfihSMDFfU0ZPUklfTUFTSyB8IFIwMV9TSU0gfCBSMDFfU0ZPUk9fTUFTSyk7CisKKwkvKiBGSVhNRTogaG93IHRvIHNlbGVjdCBJMlMgZm9yIERBVEFPIGFuZCBNU0IgZm9yIERBVEFJIGNvcnJlY3RseT8gKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWlmYWNlIHw9IFIwMV9TRk9SSV9JMlMgfCBSMDFfU0ZPUk9fSTJTOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xTQjoKKwkJaWZhY2UgfD0gUjAxX1NGT1JJX0xTQjE2IHwgUjAxX1NGT1JPX0kyUzsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9NU0I6CisJCWlmYWNlIHw9IFIwMV9TRk9SSV9NU0IgfCBSMDFfU0ZPUk9fSTJTOworCX0KKworCWlmICgoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spID09IFNORF9TT0NfREFJRk1UX0NCTV9DRk0pCisJCWlmYWNlIHw9IFIwMV9TSU07CisKKwl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0lGQUNFLCBpZmFjZSk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEZsdXNoIHJlZyBjYWNoZQorICogV2UgY2FuIG9ubHkgd3JpdGUgdGhlIGludGVycG9sYXRvciBhbmQgZGVjaW1hdG9yIHJlZ2lzdGVycworICogd2hlbiB0aGUgREFJIGlzIGJlaW5nIGNsb2NrZWQgYnkgdGhlIENQVSBEQUkuIEl0J3MgdXAgdG8gdGhlCisgKiBtYWNoaW5lIGFuZCBjcHUgREFJIGRyaXZlciB0byBkbyB0aGlzIGJlZm9yZSB3ZSBhcmUgY2FsbGVkLgorICovCitzdGF0aWMgaW50IHVkYTEzODBfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgcmVnLCByZWdfc3RhcnQsIHJlZ19lbmQsIGNsazsKKworCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CisJCXJlZ19zdGFydCA9IFVEQTEzODBfTVZPTDsKKwkJcmVnX2VuZCA9IFVEQTEzODBfTUlYRVI7CisJfSBlbHNlIHsKKwkJcmVnX3N0YXJ0ID0gVURBMTM4MF9ERUM7CisJCXJlZ19lbmQgPSBVREExMzgwX0FHQzsKKwl9CisKKwkvKiBGSVhNRSBkaXNhYmxlIERBQ19DTEsgKi8KKwljbGsgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0NMSyk7CisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIGNsayAmIH5SMDBfREFDX0NMSyk7CisKKwlmb3IgKHJlZyA9IHJlZ19zdGFydDsgcmVnIDw9IHJlZ19lbmQ7IHJlZysrKSB7CisJCXByX2RlYnVnKCJ1ZGExMzgwOiBmbHVzaCByZWcgJXggdmFsICV4OiIsIHJlZywKKwkJCQl1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCByZWcpKTsKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgcmVnLCB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCByZWcpKTsKKwl9CisKKwkvKiBGSVhNRSBlbmFibGUgREFDX0NMSyAqLworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGsgfCBSMDBfREFDX0NMSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCisJLyogc2V0IFdTUExMIHBvd2VyIGFuZCBkaXZpZGVyIGlmIHJ1bm5pbmcgZnJvbSB0aGlzIGNsb2NrICovCisJaWYgKGNsayAmIFIwMF9EQUNfQ0xLKSB7CisJCWludCByYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwkJdTE2IHBtID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9QTSk7CisJCWNsayAmPSB+MHgzOyAvKiBjbGVhciBTRUxfTE9PUF9ESVYgKi8KKwkJc3dpdGNoIChyYXRlKSB7CisJCWNhc2UgNjI1MCAuLi4gMTI1MDA6CisJCQljbGsgfD0gMHgwOworCQkJYnJlYWs7CisJCWNhc2UgMTI1MDEgLi4uIDI1MDAwOgorCQkJY2xrIHw9IDB4MTsKKwkJCWJyZWFrOworCQljYXNlIDI1MDAxIC4uLiA1MDAwMDoKKwkJCWNsayB8PSAweDI7CisJCQlicmVhazsKKwkJY2FzZSA1MDAwMSAuLi4gMTAwMDAwOgorCQkJY2xrIHw9IDB4MzsKKwkJCWJyZWFrOworCQl9CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIFIwMl9QT05fUExMIHwgcG0pOworCX0KKworCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQorCQljbGsgfD0gUjAwX0VOX0RBQyB8IFIwMF9FTl9JTlQ7CisJZWxzZQorCQljbGsgfD0gUjAwX0VOX0FEQyB8IFIwMF9FTl9ERUM7CisKKwl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0NMSywgY2xrKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdWRhMTM4MF9wY21fc2h1dGRvd24oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCisJLyogc2h1dCBkb3duIFdTUExMIHBvd2VyIGlmIHJ1bm5pbmcgZnJvbSB0aGlzIGNsb2NrICovCisJaWYgKGNsayAmIFIwMF9EQUNfQ0xLKSB7CisJCXUxNiBwbSA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfUE0pOworCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX1BNLCB+UjAyX1BPTl9QTEwgJiBwbSk7CisJfQorCisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisJCWNsayAmPSB+KFIwMF9FTl9EQUMgfCBSMDBfRU5fSU5UKTsKKwllbHNlCisJCWNsayAmPSB+KFIwMF9FTl9BREMgfCBSMDBfRU5fREVDKTsKKworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGspOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwgaW50IG11dGUpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgbXV0ZV9yZWcgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0RFRU1QKSAmIH5SMTNfTVRNOworCisJLyogRklYTUU6IG11dGUoY29kZWMsMCkgaXMgY2FsbGVkIHdoZW4gdGhlIG1hZ2ljaWFuIGNsb2NrIGlzIGFscmVhZHkKKwkgKiBzZXQgdG8gV1NQTEwsIGJ1dCBmb3Igc29tZSB1bmtub3duIHJlYXNvbiB3cml0aW5nIHRvIGludGVycG9sYXRvcgorCSAqIHJlZ2lzdGVycyB3b3JrcyBvbmx5IHdoZW4gY2xvY2tlZCBieSBTWVNDTEsgKi8KKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCB+UjAwX0RBQ19DTEsgJiBjbGspOworCWlmIChtdXRlKQorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0RFRU1QLCBtdXRlX3JlZyB8IFIxM19NVE0pOworCWVsc2UKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9ERUVNUCwgbXV0ZV9yZWcpOworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGspOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCWludCBwbSA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfUE0pOworCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIFIwMl9QT05fQklBUyB8IHBtKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9QTSwgUjAyX1BPTl9CSUFTKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX1BNLCAweDApOworCQlicmVhazsKKwl9CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBVREExMzgwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwkJICAgICAgIFNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfFwKKwkJICAgICAgIFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCisKK3N0cnVjdCBzbmRfc29jX2RhaSB1ZGExMzgwX2RhaVtdID0geworeworCS5uYW1lID0gIlVEQTEzODAiLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IHVkYTEzODBfcGNtX2h3X3BhcmFtcywKKwkJLnNodXRkb3duID0gdWRhMTM4MF9wY21fc2h1dGRvd24sCisJCS5wcmVwYXJlID0gdWRhMTM4MF9wY21fcHJlcGFyZSwKKwl9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gdWRhMTM4MF9tdXRlLAorCQkuc2V0X2ZtdCA9IHVkYTEzODBfc2V0X2RhaV9mbXQsCisJfSwKK30sCit7IC8qIHBsYXliYWNrIG9ubHkgLSBkdWFsIGludGVyZmFjZSAqLworCS5uYW1lID0gIlVEQTEzODAiLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLAorCX0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IHVkYTEzODBfcGNtX2h3X3BhcmFtcywKKwkJLnNodXRkb3duID0gdWRhMTM4MF9wY21fc2h1dGRvd24sCisJCS5wcmVwYXJlID0gdWRhMTM4MF9wY21fcHJlcGFyZSwKKwl9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gdWRhMTM4MF9tdXRlLAorCQkuc2V0X2ZtdCA9IHVkYTEzODBfc2V0X2RhaV9mbXQsCisJfSwKK30sCit7IC8qIGNhcHR1cmUgb25seSAtIGR1YWwgaW50ZXJmYWNlKi8KKwkubmFtZSA9ICJVREExMzgwIiwKKwkuY2FwdHVyZSA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIkNhcHR1cmUiLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFVEQTEzODBfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsCisJfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gdWRhMTM4MF9wY21faHdfcGFyYW1zLAorCQkuc2h1dGRvd24gPSB1ZGExMzgwX3BjbV9zaHV0ZG93biwKKwkJLnByZXBhcmUgPSB1ZGExMzgwX3BjbV9wcmVwYXJlLAorCX0sCisJLmRhaV9vcHMgPSB7CisJCS5zZXRfZm10ID0gdWRhMTM4MF9zZXRfZGFpX2ZtdCwKKwl9LAorfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTCh1ZGExMzgwX2RhaSk7CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh1ZGExMzgwX3JlZyk7IGkrKykgeworCQlkYXRhWzBdID0gKGkgPDwgMSkgfCAoKGNhY2hlW2ldID4+IDgpICYgMHgwMDAxKTsKKwkJZGF0YVsxXSA9IGNhY2hlW2ldICYgMHgwMGZmOworCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CisJfQorCXVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGluaXRpYWxpc2UgdGhlIFVEQTEzODAgZHJpdmVyCisgKiByZWdpc3RlciBtaXhlciBhbmQgZHNwIGludGVyZmFjZXMgd2l0aCB0aGUga2VybmVsCisgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2LCBpbnQgZGFjX2NsaykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiVURBMTM4MCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlOworCWNvZGVjLT53cml0ZSA9IHVkYTEzODBfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gdWRhMTM4MF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gdWRhMTM4MF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSBBUlJBWV9TSVpFKHVkYTEzODBfZGFpKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh1ZGExMzgwX3JlZywgc2l6ZW9mKHVkYTEzODBfcmVnKSwKKwkJCQkgICBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMtPnJlZ19jYWNoZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKwljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBBUlJBWV9TSVpFKHVkYTEzODBfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlX3N0ZXAgPSAxOworCXVkYTEzODBfcmVzZXQoY29kZWMpOworCisJLyogcmVnaXN0ZXIgcGNtcyAqLworCXJldCA9IHNuZF9zb2NfbmV3X3BjbXMoc29jZGV2LCBTTkRSVl9ERUZBVUxUX0lEWDEsIFNORFJWX0RFRkFVTFRfU1RSMSk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogcG93ZXIgb24gZGV2aWNlICovCisJdWRhMTM4MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCS8qIHNldCBjbG9jayBpbnB1dCAqLworCXN3aXRjaCAoZGFjX2NsaykgeworCWNhc2UgVURBMTM4MF9EQUNfQ0xLX1NZU0NMSzoKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIDApOworCQlicmVhazsKKwljYXNlIFVEQTEzODBfREFDX0NMS19XU1BMTDoKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIFIwMF9EQUNfQ0xLKTsKKwkJYnJlYWs7CisJfQorCisJLyogdWRhMTM4MCBpbml0ICovCisJdWRhMTM4MF9hZGRfY29udHJvbHMoY29kZWMpOworCXVkYTEzODBfYWRkX3dpZGdldHMoY29kZWMpOworCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByX2VycigidWRhMTM4MDogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKworCXJldHVybiByZXQ7CisKK2NhcmRfZXJyOgorCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKK3BjbV9lcnI6CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSAqdWRhMTM4MF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKyNkZWZpbmUgSTJDX0RSSVZFUklEX1VEQTEzODAgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB1ZGExMzgwX2kyY19kcml2ZXI7CitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlOworCisvKiBJZiB0aGUgaTJjIGxheWVyIHdlcmVuJ3Qgc28gYnJva2VuLCB3ZSBjb3VsZCBwYXNzIHRoaXMga2luZCBvZiBkYXRhCisgICBhcm91bmQgKi8KKworc3RhdGljIGludCB1ZGExMzgwX2NvZGVjX3Byb2JlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgaW50IGFkZHIsIGludCBraW5kKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gdWRhMTM4MF9zb2NkZXY7CisJc3RydWN0IHVkYTEzODBfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjOworCWludCByZXQ7CisKKwlpZiAoYWRkciAhPSBzZXR1cC0+aTJjX2FkZHJlc3MpCisJCXJldHVybiAtRU5PREVWOworCisJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOworCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKKworCWkyYyA9IGttZW1kdXAoJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKGNsaWVudF90ZW1wbGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChpMmMgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlpMmNfc2V0X2NsaWVudGRhdGEoaTJjLCBjb2RlYyk7CisJY29kZWMtPmNvbnRyb2xfZGF0YSA9IGkyYzsKKworCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQgPSB1ZGExMzgwX2luaXQoc29jZGV2LCBzZXR1cC0+ZGFjX2Nsayk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gaW5pdGlhbGlzZSBVREExMzgwXG4iKTsKKwkJZ290byBlcnI7CisJfQorCXJldHVybiByZXQ7CisKK2VycjoKKwlrZnJlZShjb2RlYyk7CisJa2ZyZWUoaTJjKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHVkYTEzODBfaTJjX2RldGFjaChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCWkyY19kZXRhY2hfY2xpZW50KGNsaWVudCk7CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJa2ZyZWUoY2xpZW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgdWRhMTM4MF9jb2RlY19wcm9iZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB1ZGExMzgwX2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAgIlVEQTEzODAgSTJDIENvZGVjIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkuaWQgPSAgICAgICAgICAgICBJMkNfRFJJVkVSSURfVURBMTM4MCwKKwkuYXR0YWNoX2FkYXB0ZXIgPSB1ZGExMzgwX2kyY19hdHRhY2gsCisJLmRldGFjaF9jbGllbnQgPSAgdWRhMTM4MF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiVURBMTM4MCIsCisJLmRyaXZlciA9ICZ1ZGExMzgwX2kyY19kcml2ZXIsCit9OworI2VuZGlmCisKK3N0YXRpYyBpbnQgdWRhMTM4MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHVkYTEzODBfc2V0dXBfZGF0YSAqc2V0dXA7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjOworCWludCByZXQgPSAwOworCisJcHJfaW5mbygiVURBMTM4MCBBdWRpbyBDb2RlYyAlcyIsIFVEQTEzODBfVkVSU0lPTik7CisKKwlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNvZGVjID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwl1ZGExMzgwX3NvY2RldiA9IHNvY2RldjsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgeworCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOworCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdClpMmNfbWFzdGVyX3NlbmQ7CisJCXJldCA9IGkyY19hZGRfZHJpdmVyKCZ1ZGExMzgwX2kyY19kcml2ZXIpOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGsoS0VSTl9FUlIgImNhbid0IGFkZCBpMmMgZHJpdmVyIik7CisJfQorI2Vsc2UKKwkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJdWRhMTM4MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisKKwlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOworCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCWkyY19kZWxfZHJpdmVyKCZ1ZGExMzgwX2kyY19kcml2ZXIpOworI2VuZGlmCisJa2ZyZWUoY29kZWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3VkYTEzODAgPSB7CisJLnByb2JlID0gCXVkYTEzODBfcHJvYmUsCisJLnJlbW92ZSA9IAl1ZGExMzgwX3JlbW92ZSwKKwkuc3VzcGVuZCA9IAl1ZGExMzgwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXVkYTEzODBfcmVzdW1lLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKHNvY19jb2RlY19kZXZfdWRhMTM4MCk7CisKK01PRFVMRV9BVVRIT1IoIkdpb3JnaW8gUGFkcmluIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1ZGlvIHN1cHBvcnQgZm9yIGNvZGVjIFBoaWxpcHMgVURBMTM4MCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmggYi9zb3VuZC9zb2MvY29kZWNzL3VkYTEzODAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGM2MDNlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIEF1ZGlvIHN1cHBvcnQgZm9yIFBoaWxpcHMgVURBMTM4MAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1IEdpb3JnaW8gUGFkcmluIDxnaW9yZ2lvQG1hbmRhcmlubG9naXEub3JnPgorICovCisKKyNpZm5kZWYgX1VEQTEzODBfSAorI2RlZmluZSBfVURBMTM4MF9ICisKKyNkZWZpbmUgVURBMTM4MF9DTEsJMHgwMAorI2RlZmluZSBVREExMzgwX0lGQUNFCTB4MDEKKyNkZWZpbmUgVURBMTM4MF9QTQkweDAyCisjZGVmaW5lIFVEQTEzODBfQU1JWAkweDAzCisjZGVmaW5lIFVEQTEzODBfSFAJMHgwNAorI2RlZmluZSBVREExMzgwX01WT0wJMHgxMAorI2RlZmluZSBVREExMzgwX01JWFZPTAkweDExCisjZGVmaW5lIFVEQTEzODBfTU9ERQkweDEyCisjZGVmaW5lIFVEQTEzODBfREVFTVAJMHgxMworI2RlZmluZSBVREExMzgwX01JWEVSCTB4MTQKKyNkZWZpbmUgVURBMTM4MF9JTlRTVEFUCTB4MTgKKyNkZWZpbmUgVURBMTM4MF9ERUMJMHgyMAorI2RlZmluZSBVREExMzgwX1BHQQkweDIxCisjZGVmaW5lIFVEQTEzODBfQURDCTB4MjIKKyNkZWZpbmUgVURBMTM4MF9BR0MJMHgyMworI2RlZmluZSBVREExMzgwX0RFQ1NUQVQJMHgyOAorI2RlZmluZSBVREExMzgwX1JFU0VUCTB4N2YKKworI2RlZmluZSBVREExMzgwX0NBQ0hFUkVHTlVNIDB4MjQKKworLyogUmVnaXN0ZXIgZmxhZ3MgKi8KKyNkZWZpbmUgUjAwX0VOX0FEQwkweDA4MDAKKyNkZWZpbmUgUjAwX0VOX0RFQwkweDA0MDAKKyNkZWZpbmUgUjAwX0VOX0RBQwkweDAyMDAKKyNkZWZpbmUgUjAwX0VOX0lOVAkweDAxMDAKKyNkZWZpbmUgUjAwX0RBQ19DTEsJMHgwMDEwCisjZGVmaW5lIFIwMV9TRk9SSV9JMlMgICAweDAwMDAKKyNkZWZpbmUgUjAxX1NGT1JJX0xTQjE2IDB4MDEwMAorI2RlZmluZSBSMDFfU0ZPUklfTFNCMTggMHgwMjAwCisjZGVmaW5lIFIwMV9TRk9SSV9MU0IyMCAweDAzMDAKKyNkZWZpbmUgUjAxX1NGT1JJX01TQiAgIDB4MDUwMAorI2RlZmluZSBSMDFfU0ZPUklfTUFTSyAgMHgwNzAwCisjZGVmaW5lIFIwMV9TRk9ST19JMlMgICAweDAwMDAKKyNkZWZpbmUgUjAxX1NGT1JPX0xTQjE2IDB4MDAwMQorI2RlZmluZSBSMDFfU0ZPUk9fTFNCMTggMHgwMDAyCisjZGVmaW5lIFIwMV9TRk9ST19MU0IyMCAweDAwMDMKKyNkZWZpbmUgUjAxX1NGT1JPX0xTQjI0IDB4MDAwNAorI2RlZmluZSBSMDFfU0ZPUk9fTVNCICAgMHgwMDA1CisjZGVmaW5lIFIwMV9TRk9ST19NQVNLICAweDAwMDcKKyNkZWZpbmUgUjAxX1NFTF9TT1VSQ0UgIDB4MDA0MAorI2RlZmluZSBSMDFfU0lNCQkweDAwMTAKKyNkZWZpbmUgUjAyX1BPTl9QTEwJMHg4MDAwCisjZGVmaW5lIFIwMl9QT05fSFAJMHgyMDAwCisjZGVmaW5lIFIwMl9QT05fREFDCTB4MDQwMAorI2RlZmluZSBSMDJfUE9OX0JJQVMJMHgwMTAwCisjZGVmaW5lIFIwMl9FTl9BVkMJMHgwMDgwCisjZGVmaW5lIFIwMl9QT05fQVZDCTB4MDA0MAorI2RlZmluZSBSMDJfUE9OX0xOQQkweDAwMTAKKyNkZWZpbmUgUjAyX1BPTl9QR0FMCTB4MDAwOAorI2RlZmluZSBSMDJfUE9OX0FEQ0wJMHgwMDA0CisjZGVmaW5lIFIwMl9QT05fUEdBUgkweDAwMDIKKyNkZWZpbmUgUjAyX1BPTl9BRENSCTB4MDAwMQorI2RlZmluZSBSMTNfTVRNCQkweDQwMDAKKyNkZWZpbmUgUjE0X1NJTEVOQ0UJMHgwMDgwCisjZGVmaW5lIFIxNF9TREVUX09OCTB4MDA0MAorI2RlZmluZSBSMjFfTVRfQURDCTB4ODAwMAorI2RlZmluZSBSMjJfU0VMX0xOQQkweDAwMDgKKyNkZWZpbmUgUjIyX1NFTF9NSUMJMHgwMDA0CisjZGVmaW5lIFIyMl9TS0lQX0RDRklMCTB4MDAwMgorI2RlZmluZSBSMjNfQUdDX0VOCTB4MDAwMQorCitzdHJ1Y3QgdWRhMTM4MF9zZXR1cF9kYXRhIHsKKwl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKKwlpbnQgICAgICAgICAgICBkYWNfY2xrOworI2RlZmluZSBVREExMzgwX0RBQ19DTEtfU1lTQ0xLIDAKKyNkZWZpbmUgVURBMTM4MF9EQUNfQ0xLX1dTUExMICAxCit9OworCisjZGVmaW5lIFVEQTEzODBfREFJX0RVUExFWAkwIC8qIHBsYXliYWNrIGFuZCBjYXB0dXJlIG9uIHNpbmdsZSBEQUkgKi8KKyNkZWZpbmUgVURBMTM4MF9EQUlfUExBWUJBQ0sJMSAvKiBwbGF5YmFjayBEQUkgKi8KKyNkZWZpbmUgVURBMTM4MF9EQUlfQ0FQVFVSRQkyIC8qIGNhcHR1cmUgREFJICovCisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgdWRhMTM4MF9kYWlbM107CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfdWRhMTM4MDsKKworI2VuZGlmIC8qIF9VREExMzgwX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODUxMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MzI1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODUxMC5jCkBAIC0wLDAgKzEsODE3IEBACisvKgorICogd204NTEwLmMgIC0tICBXTTg1MTAgQUxTQSBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMDYgV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqCisgKiBBdXRob3I6IExpYW0gR2lyZHdvb2QgPGxpYW0uZ2lyZHdvb2RAd29sZnNvbm1pY3JvLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKworI2luY2x1ZGUgIndtODUxMC5oIgorCisjZGVmaW5lIEFVRElPX05BTUUgIndtODUxMCIKKyNkZWZpbmUgV004NTEwX1ZFUlNJT04gIjAuNiIKKworc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NTEwOworCisvKgorICogd204NTEwIHJlZ2lzdGVyIGNhY2hlCisgKiBXZSBjYW4ndCByZWFkIHRoZSBXTTg1MTAgcmVnaXN0ZXIgc3BhY2Ugd2hlbiB3ZSBhcmUKKyAqIHVzaW5nIDIgd2lyZSBmb3IgZGV2aWNlIGNvbnRyb2wsIHNvIHdlIGNhY2hlIHRoZW0gaW5zdGVhZC4KKyAqLworc3RhdGljIGNvbnN0IHUxNiB3bTg1MTBfcmVnW1dNODUxMF9DQUNIRVJFR05VTV0gPSB7CisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDA1MCwgMHgwMDAwLCAweDAxNDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwZmYsCisJMHgwMDAwLCAweDAwMDAsIDB4MDEwMCwgMHgwMGZmLAorCTB4MDAwMCwgMHgwMDAwLCAweDAxMmMsIDB4MDAyYywKKwkweDAwMmMsIDB4MDAyYywgMHgwMDJjLCAweDAwMDAsCisJMHgwMDMyLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMzgsIDB4MDAwYiwgMHgwMDMyLCAweDAwMDAsCisJMHgwMDA4LCAweDAwMGMsIDB4MDA5MywgMHgwMGU5LAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDMsIDB4MDAxMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDIsIDB4MDAwMSwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMzksIDB4MDAwMCwKKwkweDAwMDEsCit9OworCisvKgorICogcmVhZCB3bTg1MTAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgd204NTEwX3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPT0gV004NTEwX1JFU0VUKQorCQlyZXR1cm4gMDsKKwlpZiAocmVnID49IFdNODUxMF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuIC0xOworCXJldHVybiBjYWNoZVtyZWddOworfQorCisvKgorICogd3JpdGUgd204NTEwIHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB3bTg1MTBfd3JpdGVfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1MTYgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaWYgKHJlZyA+PSBXTTg1MTBfQ0FDSEVSRUdOVU0pCisJCXJldHVybjsKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgV004NTEwIHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX3dyaXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwl1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTggZGF0YVsyXTsKKworCS8qIGRhdGEgaXMKKwkgKiAgIEQxNS4uRDkgV004NTEwIHJlZ2lzdGVyIG9mZnNldAorCSAqICAgRDguLi5EMCByZWdpc3RlciBkYXRhCisJICovCisJZGF0YVswXSA9IChyZWcgPDwgMSkgfCAoKHZhbHVlID4+IDgpICYgMHgwMDAxKTsKKwlkYXRhWzFdID0gdmFsdWUgJiAweDAwZmY7CisKKwl3bTg1MTBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKwlpZiAoY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpID09IDIpCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKKyNkZWZpbmUgd204NTEwX3Jlc2V0KGMpCXdtODUxMF93cml0ZShjLCBXTTg1MTBfUkVTRVQsIDApCisKK3N0YXRpYyBjb25zdCBjaGFyICp3bTg1MTBfY29tcGFuZGluZ1tdID0geyAiT2ZmIiwgIk5DIiwgInUtbGF3IiwgIkEtbGF3IiB9Oworc3RhdGljIGNvbnN0IGNoYXIgKndtODUxMF9kZWVtcFtdID0geyAiTm9uZSIsICIzMmtIeiIsICI0NC4xa0h6IiwgIjQ4a0h6IiB9Oworc3RhdGljIGNvbnN0IGNoYXIgKndtODUxMF9hbGNbXSA9IHsgIkFMQyIsICJMaW1pdGVyIiB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODUxMF9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKFdNODUxMF9DT01QLCAxLCA0LCB3bTg1MTBfY29tcGFuZGluZyksIC8qIGFkYyAqLworCVNPQ19FTlVNX1NJTkdMRShXTTg1MTBfQ09NUCwgMywgNCwgd204NTEwX2NvbXBhbmRpbmcpLCAvKiBkYWMgKi8KKwlTT0NfRU5VTV9TSU5HTEUoV004NTEwX0RBQywgIDQsIDQsIHdtODUxMF9kZWVtcCksCisJU09DX0VOVU1fU0lOR0xFKFdNODUxMF9BTEMzLCAgOCwgMiwgd204NTEwX2FsYyksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX3NuZF9jb250cm9sc1tdID0geworCitTT0NfU0lOR0xFKCJEaWdpdGFsIExvb3BiYWNrIFN3aXRjaCIsIFdNODUxMF9DT01QLCAwLCAxLCAwKSwKKworU09DX0VOVU0oIkRBQyBDb21wYW5kaW5nIiwgd204NTEwX2VudW1bMV0pLAorU09DX0VOVU0oIkFEQyBDb21wYW5kaW5nIiwgd204NTEwX2VudW1bMF0pLAorCitTT0NfRU5VTSgiUGxheWJhY2sgRGUtZW1waGFzaXMiLCB3bTg1MTBfZW51bVsyXSksCitTT0NfU0lOR0xFKCJEQUMgSW52ZXJzaW9uIFN3aXRjaCIsIFdNODUxMF9EQUMsIDAsIDEsIDApLAorCitTT0NfU0lOR0xFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NTEwX0RBQ1ZPTCwgMCwgMTI3LCAwKSwKKworU09DX1NJTkdMRSgiSGlnaCBQYXNzIEZpbHRlciBTd2l0Y2giLCBXTTg1MTBfQURDLCA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkhpZ2ggUGFzcyBDdXQgT2ZmIiwgV004NTEwX0FEQywgNCwgNywgMCksCitTT0NfU0lOR0xFKCJBREMgSW52ZXJzaW9uIFN3aXRjaCIsIFdNODUxMF9DT01QLCAwLCAxLCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBWb2x1bWUiLCBXTTg1MTBfQURDVk9MLCAgMCwgMTI3LCAwKSwKKworU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgU3dpdGNoIiwgV004NTEwX0RBQ0xJTTEsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkRBQyBQbGF5YmFjayBMaW1pdGVyIERlY2F5IiwgV004NTEwX0RBQ0xJTTEsICA0LCAxNSwgMCksCitTT0NfU0lOR0xFKCJEQUMgUGxheWJhY2sgTGltaXRlciBBdHRhY2siLCBXTTg1MTBfREFDTElNMSwgIDAsIDE1LCAwKSwKKworU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgVGhyZXNob2xkIiwgV004NTEwX0RBQ0xJTTIsICA0LCA3LCAwKSwKK1NPQ19TSU5HTEUoIkRBQyBQbGF5YmFjayBMaW1pdGVyIEJvb3N0IiwgV004NTEwX0RBQ0xJTTIsICAwLCAxNSwgMCksCisKK1NPQ19TSU5HTEUoIkFMQyBFbmFibGUgU3dpdGNoIiwgV004NTEwX0FMQzEsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIE1heCBHYWluIiwgV004NTEwX0FMQzEsICAzLCA3LCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIE1pbiBHYWluIiwgV004NTEwX0FMQzEsICAwLCA3LCAwKSwKKworU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgWkMgU3dpdGNoIiwgV004NTEwX0FMQzIsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIEhvbGQiLCBXTTg1MTBfQUxDMiwgIDQsIDcsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgVGFyZ2V0IiwgV004NTEwX0FMQzIsICAwLCAxNSwgMCksCisKK1NPQ19FTlVNKCJBTEMgQ2FwdHVyZSBNb2RlIiwgd204NTEwX2VudW1bM10pLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgRGVjYXkiLCBXTTg1MTBfQUxDMywgIDQsIDE1LCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIEF0dGFjayIsIFdNODUxMF9BTEMzLCAgMCwgMTUsIDApLAorCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBOb2lzZSBHYXRlIFN3aXRjaCIsIFdNODUxMF9OR0FURSwgIDMsIDEsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgTm9pc2UgR2F0ZSBUaHJlc2hvbGQiLCBXTTg1MTBfTkdBVEUsICAwLCA3LCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBQR0EgWkMgU3dpdGNoIiwgV004NTEwX0lOUFBHQSwgIDcsIDEsIDApLAorU09DX1NJTkdMRSgiQ2FwdHVyZSBQR0EgVm9sdW1lIiwgV004NTEwX0lOUFBHQSwgIDAsIDYzLCAwKSwKKworU09DX1NJTkdMRSgiU3BlYWtlciBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg1MTBfU1BLVk9MLCAgNywgMSwgMCksCitTT0NfU0lOR0xFKCJTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIFdNODUxMF9TUEtWT0wsICA2LCAxLCAxKSwKK1NPQ19TSU5HTEUoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NTEwX1NQS1ZPTCwgIDAsIDYzLCAwKSwKK1NPQ19TSU5HTEUoIlNwZWFrZXIgQm9vc3QiLCBXTTg1MTBfT1VUUFVULCAyLCAxLCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBCb29zdCgrMjBkQikiLCBXTTg1MTBfQURDQk9PU1QsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDYsIDEsIDEpLAorfTsKKworLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCitzdGF0aWMgaW50IHdtODUxMF9hZGRfY29udHJvbHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCWludCBlcnIsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg1MTBfc25kX2NvbnRyb2xzKTsgaSsrKSB7CisJCWVyciA9IHNuZF9jdGxfYWRkKGNvZGVjLT5jYXJkLAorCQkJCXNuZF9zb2NfY25ldygmd204NTEwX3NuZF9jb250cm9sc1tpXSwgY29kZWMsCisJCQkJCU5VTEwpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCisvKiBTcGVha2VyIE91dHB1dCBNaXhlciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9zcGVha2VyX21peGVyX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxpbmUgQnlwYXNzIFN3aXRjaCIsIFdNODUxMF9TUEtNSVgsIDEsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX1NQS01JWCwgNSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfU1BLTUlYLCAwLCAxLCAwKSwKK307CisKKy8qIE1vbm8gT3V0cHV0IE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX21vbm9fbWl4ZXJfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTGluZSBCeXBhc3MgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDEsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDIsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDAsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9ib29zdF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJNaWMgUEdBIFN3aXRjaCIsIFdNODUxMF9JTlBQR0EsICA2LCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiQXV4IFZvbHVtZSIsIFdNODUxMF9BRENCT09TVCwgMCwgNywgMCksCitTT0NfREFQTV9TSU5HTEUoIk1pYyBWb2x1bWUiLCBXTTg1MTBfQURDQk9PU1QsIDQsIDcsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9taWNwZ2FfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTUlDUCBTd2l0Y2giLCBXTTg1MTBfSU5QVVQsIDAsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJNSUNOIFN3aXRjaCIsIFdNODUxMF9JTlBVVCwgMSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkFVWCBTd2l0Y2giLCBXTTg1MTBfSU5QVVQsIDIsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHdtODUxMF9kYXBtX3dpZGdldHNbXSA9IHsKK1NORF9TT0NfREFQTV9NSVhFUigiU3BlYWtlciBNaXhlciIsIFdNODUxMF9QT1dFUjMsIDIsIDAsCisJJndtODUxMF9zcGVha2VyX21peGVyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204NTEwX3NwZWFrZXJfbWl4ZXJfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9NSVhFUigiTW9ubyBNaXhlciIsIFdNODUxMF9QT1dFUjMsIDMsIDAsCisJJndtODUxMF9tb25vX21peGVyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204NTEwX21vbm9fbWl4ZXJfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9EQUMoIkRBQyIsICJIaUZpIFBsYXliYWNrIiwgV004NTEwX1BPV0VSMywgMCwgMCksCitTTkRfU09DX0RBUE1fQURDKCJBREMiLCAiSGlGaSBDYXB0dXJlIiwgV004NTEwX1BPV0VSMiwgMCwgMCksCitTTkRfU09DX0RBUE1fUEdBKCJBdXggSW5wdXQiLCBXTTg1MTBfUE9XRVIxLCA2LCAwLCBOVUxMLCAwKSwKK1NORF9TT0NfREFQTV9QR0EoIlNwa04gT3V0IiwgV004NTEwX1BPV0VSMywgNSwgMCwgTlVMTCwgMCksCitTTkRfU09DX0RBUE1fUEdBKCJTcGtQIE91dCIsIFdNODUxMF9QT1dFUjMsIDYsIDAsIE5VTEwsIDApLAorU05EX1NPQ19EQVBNX1BHQSgiTW9ubyBPdXQiLCBXTTg1MTBfUE9XRVIzLCA3LCAwLCBOVUxMLCAwKSwKKworU05EX1NPQ19EQVBNX1BHQSgiTWljIFBHQSIsIFdNODUxMF9QT1dFUjIsIDIsIDAsCisJCSAmd204NTEwX21pY3BnYV9jb250cm9sc1swXSwKKwkJIEFSUkFZX1NJWkUod204NTEwX21pY3BnYV9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJCb29zdCBNaXhlciIsIFdNODUxMF9QT1dFUjIsIDQsIDAsCisJJndtODUxMF9ib29zdF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODUxMF9ib29zdF9jb250cm9scykpLAorCitTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEJpYXMiLCBXTTg1MTBfUE9XRVIxLCA0LCAwKSwKKworU05EX1NPQ19EQVBNX0lOUFVUKCJNSUNOIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIk1JQ1AiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiQVVYIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJNT05PT1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtPVVRQIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtPVVROIiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKKwkvKiBNb25vIG91dHB1dCBtaXhlciAqLworCXsiTW9ubyBNaXhlciIsICJQQ00gUGxheWJhY2sgU3dpdGNoIiwgIkRBQyJ9LAorCXsiTW9ubyBNaXhlciIsICJBdXggUGxheWJhY2sgU3dpdGNoIiwgIkF1eCBJbnB1dCJ9LAorCXsiTW9ubyBNaXhlciIsICJMaW5lIEJ5cGFzcyBTd2l0Y2giLCAiQm9vc3QgTWl4ZXIifSwKKworCS8qIFNwZWFrZXIgb3V0cHV0IG1peGVyICovCisJeyJTcGVha2VyIE1peGVyIiwgIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisJeyJTcGVha2VyIE1peGVyIiwgIkF1eCBQbGF5YmFjayBTd2l0Y2giLCAiQXV4IElucHV0In0sCisJeyJTcGVha2VyIE1peGVyIiwgIkxpbmUgQnlwYXNzIFN3aXRjaCIsICJCb29zdCBNaXhlciJ9LAorCisJLyogT3V0cHV0cyAqLworCXsiTW9ubyBPdXQiLCBOVUxMLCAiTW9ubyBNaXhlciJ9LAorCXsiTU9OT09VVCIsIE5VTEwsICJNb25vIE91dCJ9LAorCXsiU3BrTiBPdXQiLCBOVUxMLCAiU3BlYWtlciBNaXhlciJ9LAorCXsiU3BrUCBPdXQiLCBOVUxMLCAiU3BlYWtlciBNaXhlciJ9LAorCXsiU1BLT1VUTiIsIE5VTEwsICJTcGtOIE91dCJ9LAorCXsiU1BLT1VUUCIsIE5VTEwsICJTcGtQIE91dCJ9LAorCisJLyogTWljcm9waG9uZSBQR0EgKi8KKwl7Ik1pYyBQR0EiLCAiTUlDTiBTd2l0Y2giLCAiTUlDTiJ9LAorCXsiTWljIFBHQSIsICJNSUNQIFN3aXRjaCIsICJNSUNQIn0sCisJeyAiTWljIFBHQSIsICJBVVggU3dpdGNoIiwgIkF1eCBJbnB1dCIgfSwKKworCS8qIEJvb3N0IE1peGVyICovCisJeyJCb29zdCBNaXhlciIsICJNaWMgUEdBIFN3aXRjaCIsICJNaWMgUEdBIn0sCisJeyJCb29zdCBNaXhlciIsICJNaWMgVm9sdW1lIiwgIk1JQ1AifSwKKwl7IkJvb3N0IE1peGVyIiwgIkF1eCBWb2x1bWUiLCAiQXV4IElucHV0In0sCisKKwl7IkFEQyIsIE5VTEwsICJCb29zdCBNaXhlciJ9LAorfTsKKworc3RhdGljIGludCB3bTg1MTBfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODUxMF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODUxMF9kYXBtX3dpZGdldHMpKTsKKworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOworCXJldHVybiAwOworfQorCitzdHJ1Y3QgcGxsXyB7CisJdW5zaWduZWQgaW50IHByZV9kaXY6NDsgLyogcHJlc2NhbGUgLSAxICovCisJdW5zaWduZWQgaW50IG46NDsKKwl1bnNpZ25lZCBpbnQgazsKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxsXyBwbGxfZGl2OworCisvKiBUaGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSBwbGwgZGl2aWRlIG11bHRpcGxpZWQgYnkgMTAKKyAqIHRvIGFsbG93IHJvdW5kaW5nIGxhdGVyICovCisjZGVmaW5lIEZJWEVEX1BMTF9TSVpFICgoMSA8PCAyNCkgKiAxMCkKKworc3RhdGljIHZvaWQgcGxsX2ZhY3RvcnModW5zaWduZWQgaW50IHRhcmdldCwgdW5zaWduZWQgaW50IHNvdXJjZSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgS3BhcnQ7CisJdW5zaWduZWQgaW50IEssIE5kaXYsIE5tb2Q7CisKKwlOZGl2ID0gdGFyZ2V0IC8gc291cmNlOworCWlmIChOZGl2IDwgNikgeworCQlzb3VyY2UgPj49IDE7CisJCXBsbF9kaXYucHJlX2RpdiA9IDE7CisJCU5kaXYgPSB0YXJnZXQgLyBzb3VyY2U7CisJfSBlbHNlCisJCXBsbF9kaXYucHJlX2RpdiA9IDA7CisKKwlpZiAoKE5kaXYgPCA2KSB8fCAoTmRpdiA+IDEyKSkKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIldNODUxMCBOIHZhbHVlICVkIG91dHdpdGggcmVjb21tZW5kZWQgcmFuZ2UhZFxuIiwKKwkJCU5kaXYpOworCisJcGxsX2Rpdi5uID0gTmRpdjsKKwlObW9kID0gdGFyZ2V0ICUgc291cmNlOworCUtwYXJ0ID0gRklYRURfUExMX1NJWkUgKiAobG9uZyBsb25nKU5tb2Q7CisKKwlkb19kaXYoS3BhcnQsIHNvdXJjZSk7CisKKwlLID0gS3BhcnQgJiAweEZGRkZGRkZGOworCisJLyogQ2hlY2sgaWYgd2UgbmVlZCB0byByb3VuZCAqLworCWlmICgoSyAlIDEwKSA+PSA1KQorCQlLICs9IDU7CisKKwkvKiBNb3ZlIGRvd24gdG8gcHJvcGVyIHJhbmdlIG5vdyByb3VuZGluZyBpcyBkb25lICovCisJSyAvPSAxMDsKKworCXBsbF9kaXYuayA9IEs7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCWlmIChmcmVxX2luID09IDAgfHwgZnJlcV9vdXQgPT0gMCkgeworCQkvKiBDbG9jayBDT0RFQyBkaXJlY3RseSBmcm9tIE1DTEsgKi8KKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9DTE9DSywgcmVnICYgMHgwZmYpOworCisJCS8qIFR1cm4gb2ZmIFBMTCAqLworCQlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9QT1dFUjEpOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjEsIHJlZyAmIDB4MWRmKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcGxsX2ZhY3RvcnMoZnJlcV9vdXQqOCwgZnJlcV9pbik7CisKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExOLCAocGxsX2Rpdi5wcmVfZGl2IDw8IDQpIHwgcGxsX2Rpdi5uKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMSwgcGxsX2Rpdi5rID4+IDE4KTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMiwgKHBsbF9kaXYuayA+PiA5KSAmIDB4MWZmKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMywgcGxsX2Rpdi5rICYgMHgxZmYpOworCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX1BPV0VSMSk7CisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCByZWcgfCAweDAyMCk7CisKKwkvKiBSdW4gQ09ERUMgZnJvbSBQTEwgaW5zdGVhZCBvZiBNQ0xLICovCisJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCByZWcgfCAweDEwMCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENvbmZpZ3VyZSBXTTg1MTAgY2xvY2sgZGl2aWRlcnMuCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgZGl2X2lkLCBpbnQgZGl2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBXTTg1MTBfT1BDTEtESVY6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0dQSU8pICYgMHgxY2Y7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0dQSU8sIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004NTEwX01DTEtESVY6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0NMT0NLKSAmIDB4MWY7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9BRENDTEs6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0FEQykgJiAweDFmNzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQURDLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9EQUNDTEs6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0RBQykgJiAweDFmNzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfREFDLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9CQ0xLRElWOgorCQlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9DTE9DSykgJiAweDFlMzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQ0xPQ0ssIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdtODUxMF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwkJdW5zaWduZWQgaW50IGZtdCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXUxNiBpZmFjZSA9IDA7CisJdTE2IGNsayA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0NMT0NLKSAmIDB4MWZlOworCisJLyogc2V0IG1hc3Rlci9zbGF2ZSBhdWRpbyBpbnRlcmZhY2UgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX01BU1RFUl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNOgorCQljbGsgfD0gMHgwMDAxOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGludGVyZmFjZSBmb3JtYXQgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWlmYWNlIHw9IDB4MDAxMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9SSUdIVF9KOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xFRlRfSjoKKwkJaWZhY2UgfD0gMHgwMDA4OworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0RTUF9BOgorCQlpZmFjZSB8PSAweDAwMDE4OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBjbG9jayBpbnZlcnNpb24gKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0lOVl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9ORjoKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9JRjoKKwkJaWZhY2UgfD0gMHgwMTgwOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0lCX05GOgorCQlpZmFjZSB8PSAweDAxMDA7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfSUY6CisJCWlmYWNlIHw9IDB4MDA4MDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfSUZBQ0UsIGlmYWNlKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9DTE9DSywgY2xrKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg1MTBfcGNtX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXUxNiBpZmFjZSA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0lGQUNFKSAmIDB4MTlmOworCXUxNiBhZG4gPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9BREQpICYgMHgxZjE7CisKKwkvKiBiaXQgc2l6ZSAqLworCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJhbXMpKSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MyMF8zTEU6CisJCWlmYWNlIHw9IDB4MDAyMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MyNF9MRToKKwkJaWZhY2UgfD0gMHgwMDQwOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzMyX0xFOgorCQlpZmFjZSB8PSAweDAwNjA7CisJCWJyZWFrOworCX0KKworCS8qIGZpbHRlciBjb2VmZmljaWVudCAqLworCXN3aXRjaCAocGFyYW1zX3JhdGUocGFyYW1zKSkgeworCWNhc2UgU05EUlZfUENNX1JBVEVfODAwMDoKKwkJYWRuIHw9IDB4NSA8PCAxOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9SQVRFXzExMDI1OgorCQlhZG4gfD0gMHg0IDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfMTYwMDA6CisJCWFkbiB8PSAweDMgPDwgMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fUkFURV8yMjA1MDoKKwkJYWRuIHw9IDB4MiA8PCAxOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9SQVRFXzMyMDAwOgorCQlhZG4gfD0gMHgxIDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfNDQxMDA6CisJY2FzZSBTTkRSVl9QQ01fUkFURV80ODAwMDoKKwkJYnJlYWs7CisJfQorCisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfSUZBQ0UsIGlmYWNlKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9BREQsIGFkbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IG11dGVfcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfREFDKSAmIDB4ZmZiZjsKKworCWlmIChtdXRlKQorCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9EQUMsIG11dGVfcmVnIHwgMHg0MCk7CisJZWxzZQorCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9EQUMsIG11dGVfcmVnKTsKKwlyZXR1cm4gMDsKK30KKworLyogbGlhbSBuZWVkIHRvIG1ha2UgdGhpcyBsb3dlciBwb3dlciB3aXRoIGRhcG0gKi8KK3N0YXRpYyBpbnQgd204NTEwX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKK3sKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCAweDFmZik7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMiwgMHgxZmYpOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjMsIDB4MWZmKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCS8qIGV2ZXJ5dGhpbmcgb2ZmLCBkYWMgbXV0ZSwgaW5hY3RpdmUgKi8KKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCAweDApOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjIsIDB4MCk7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMywgMHgwKTsKKwkJYnJlYWs7CisJfQorCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgV004NTEwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwkJU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8XAorCQlTTkRSVl9QQ01fUkFURV80NDEwMCB8IFNORFJWX1BDTV9SQVRFXzQ4MDAwKQorCisjZGVmaW5lIFdNODUxMF9GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8XAorCVNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpCisKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg1MTBfZGFpID0geworCS5uYW1lID0gIldNODUxMCBIaUZpIiwKKwkucGxheWJhY2sgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCisJCS5jaGFubmVsc19taW4gPSAyLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gV004NTEwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFdNODUxMF9GT1JNQVRTLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDIsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg1MTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004NTEwX0ZPUk1BVFMsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gd204NTEwX3BjbV9od19wYXJhbXMsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLmRpZ2l0YWxfbXV0ZSA9IHdtODUxMF9tdXRlLAorCQkuc2V0X2ZtdCA9IHdtODUxMF9zZXRfZGFpX2ZtdCwKKwkJLnNldF9jbGtkaXYgPSB3bTg1MTBfc2V0X2RhaV9jbGtkaXYsCisJCS5zZXRfcGxsID0gd204NTEwX3NldF9kYWlfcGxsLAorCX0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwod204NTEwX2RhaSk7CisKK3N0YXRpYyBpbnQgd204NTEwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCXdtODUxMF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg1MTBfcmVnKTsgaSsrKSB7CisJCWRhdGFbMF0gPSAoaSA8PCAxKSB8ICgoY2FjaGVbaV0gPj4gOCkgJiAweDAwMDEpOworCQlkYXRhWzFdID0gY2FjaGVbaV0gJiAweDAwZmY7CisJCWNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAyKTsKKwl9CisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGluaXRpYWxpc2UgdGhlIFdNODUxMCBkcml2ZXIKKyAqIHJlZ2lzdGVyIHRoZSBtaXhlciBhbmQgZHNwIGludGVyZmFjZXMgd2l0aCB0aGUga2VybmVsCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX2luaXQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgcmV0ID0gMDsKKworCWNvZGVjLT5uYW1lID0gIldNODUxMCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGU7CisJY29kZWMtPndyaXRlID0gd204NTEwX3dyaXRlOworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODUxMF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gJndtODUxMF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSAxOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204NTEwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204NTEwX3JlZywgc2l6ZW9mKHdtODUxMF9yZWcpLCBHRlBfS0VSTkVMKTsKKworCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJd204NTEwX3Jlc2V0KGNvZGVjKTsKKworCS8qIHJlZ2lzdGVyIHBjbXMgKi8KKwlyZXQgPSBzbmRfc29jX25ld19wY21zKHNvY2RldiwgU05EUlZfREVGQVVMVF9JRFgxLCBTTkRSVl9ERUZBVUxUX1NUUjEpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAid204NTEwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogcG93ZXIgb24gZGV2aWNlICovCisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NTEwX2FkZF9jb250cm9scyhjb2RlYyk7CisJd204NTEwX2FkZF93aWRnZXRzKGNvZGVjKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgIndtODUxMDogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKwlyZXR1cm4gcmV0OworCitjYXJkX2VycjoKKwlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOworCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CitwY21fZXJyOgorCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKndtODUxMF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKy8qCisgKiBXTTg1MTAgMiB3aXJlIGFkZHJlc3MgaXMgMHgxYQorICovCisjZGVmaW5lIEkyQ19EUklWRVJJRF9XTTg1MTAgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg1MTBfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworCitzdGF0aWMgaW50IHdtODUxMF9jb2RlY19wcm9iZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIGludCBhZGRyLCBpbnQga2luZCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHdtODUxMF9zb2NkZXY7CisJc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhICpzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBpMmNfY2xpZW50ICppMmM7CisJaW50IHJldDsKKworCWlmIChhZGRyICE9IHNldHVwLT5pMmNfYWRkcmVzcykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljbGllbnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXA7CisJY2xpZW50X3RlbXBsYXRlLmFkZHIgPSBhZGRyOworCisJaTJjID0ga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHdtODUxMF9pbml0KHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg1MTBcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOworCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCWtmcmVlKGNsaWVudCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgd204NTEwX2NvZGVjX3Byb2JlKTsKK30KKworLyogY29yZ2kgaTJjIGNvZGVjIGNvbnRyb2wgbGF5ZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg1MTBfaTJjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJXTTg1MTAgSTJDIENvZGVjIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkuaWQgPSAgICAgICAgICAgICBJMkNfRFJJVkVSSURfV004NTEwLAorCS5hdHRhY2hfYWRhcHRlciA9IHdtODUxMF9pMmNfYXR0YWNoLAorCS5kZXRhY2hfY2xpZW50ID0gIHdtODUxMF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiV004NTEwIiwKKwkuZHJpdmVyID0gJndtODUxMF9pMmNfZHJpdmVyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgaW50IHdtODUxMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJaW50IHJldCA9IDA7CisKKwlwcl9pbmZvKCJXTTg1MTAgQXVkaW8gQ29kZWMgJXMiLCBXTTg1MTBfVkVSU0lPTik7CisKKwlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNvZGVjID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwl3bTg1MTBfc29jZGV2ID0gc29jZGV2OworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJndtODUxMF9pMmNfZHJpdmVyKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOworCX0KKyNlbHNlCisJLyogQWRkIG90aGVyIGludGVyZmFjZXMgaGVyZSAqLworI2VuZGlmCisJcmV0dXJuIHJldDsKK30KKworLyogcG93ZXIgZG93biBjaGlwICovCitzdGF0aWMgaW50IHdtODUxMF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJndtODUxMF9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg1MTAgPSB7CisJLnByb2JlID0gCXdtODUxMF9wcm9iZSwKKwkucmVtb3ZlID0gCXdtODUxMF9yZW1vdmUsCisJLnN1c3BlbmQgPSAJd204NTEwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXdtODUxMF9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl93bTg1MTApOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgV004NTEwIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTGlhbSBHaXJkd29vZCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg1MTAuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVkMmU0MgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiB3bTg1MTAuaCAgLS0gIFdNODUxMCBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9XTTg1MTBfSAorI2RlZmluZSBfV004NTEwX0gKKworLyogV004NTEwIHJlZ2lzdGVyIHNwYWNlICovCisKKyNkZWZpbmUgV004NTEwX1JFU0VUCQkweDAKKyNkZWZpbmUgV004NTEwX1BPV0VSMQkJMHgxCisjZGVmaW5lIFdNODUxMF9QT1dFUjIJCTB4MgorI2RlZmluZSBXTTg1MTBfUE9XRVIzCQkweDMKKyNkZWZpbmUgV004NTEwX0lGQUNFCQkweDQKKyNkZWZpbmUgV004NTEwX0NPTVAJCQkweDUKKyNkZWZpbmUgV004NTEwX0NMT0NLCQkweDYKKyNkZWZpbmUgV004NTEwX0FERAkJCTB4NworI2RlZmluZSBXTTg1MTBfR1BJTwkJCTB4OAorI2RlZmluZSBXTTg1MTBfREFDCQkJMHhhCisjZGVmaW5lIFdNODUxMF9EQUNWT0wJCTB4YgorI2RlZmluZSBXTTg1MTBfQURDCQkJMHhlCisjZGVmaW5lIFdNODUxMF9BRENWT0wJCTB4ZgorI2RlZmluZSBXTTg1MTBfRVExCQkJMHgxMgorI2RlZmluZSBXTTg1MTBfRVEyCQkJMHgxMworI2RlZmluZSBXTTg1MTBfRVEzCQkJMHgxNAorI2RlZmluZSBXTTg1MTBfRVE0CQkJMHgxNQorI2RlZmluZSBXTTg1MTBfRVE1CQkJMHgxNgorI2RlZmluZSBXTTg1MTBfREFDTElNMQkJMHgxOAorI2RlZmluZSBXTTg1MTBfREFDTElNMgkJMHgxOQorI2RlZmluZSBXTTg1MTBfTk9UQ0gxCQkweDFiCisjZGVmaW5lIFdNODUxMF9OT1RDSDIJCTB4MWMKKyNkZWZpbmUgV004NTEwX05PVENIMwkJMHgxZAorI2RlZmluZSBXTTg1MTBfTk9UQ0g0CQkweDFlCisjZGVmaW5lIFdNODUxMF9BTEMxCQkJMHgyMAorI2RlZmluZSBXTTg1MTBfQUxDMgkJCTB4MjEKKyNkZWZpbmUgV004NTEwX0FMQzMJCQkweDIyCisjZGVmaW5lIFdNODUxMF9OR0FURQkJMHgyMworI2RlZmluZSBXTTg1MTBfUExMTgkJCTB4MjQKKyNkZWZpbmUgV004NTEwX1BMTEsxCQkweDI1CisjZGVmaW5lIFdNODUxMF9QTExLMgkJMHgyNgorI2RlZmluZSBXTTg1MTBfUExMSzMJCTB4MjcKKyNkZWZpbmUgV004NTEwX0FUVEVOCQkweDI4CisjZGVmaW5lIFdNODUxMF9JTlBVVAkJMHgyYworI2RlZmluZSBXTTg1MTBfSU5QUEdBCQkweDJkCisjZGVmaW5lIFdNODUxMF9BRENCT09TVAkJMHgyZgorI2RlZmluZSBXTTg1MTBfT1VUUFVUCQkweDMxCisjZGVmaW5lIFdNODUxMF9TUEtNSVgJCTB4MzIKKyNkZWZpbmUgV004NTEwX1NQS1ZPTAkJMHgzNgorI2RlZmluZSBXTTg1MTBfTU9OT01JWAkJMHgzOAorCisjZGVmaW5lIFdNODUxMF9DQUNIRVJFR05VTSAJNTcKKworLyogQ2xvY2sgZGl2aWRlciBJZCdzICovCisjZGVmaW5lIFdNODUxMF9PUENMS0RJVgkJMAorI2RlZmluZSBXTTg1MTBfTUNMS0RJVgkJMQorI2RlZmluZSBXTTg1MTBfQURDQ0xLCQkyCisjZGVmaW5lIFdNODUxMF9EQUNDTEsJCTMKKyNkZWZpbmUgV004NTEwX0JDTEtESVYJCTQKKworLyogREFDIGNsb2NrIGRpdmlkZXJzICovCisjZGVmaW5lIFdNODUxMF9EQUNDTEtfRjIJKDEgPDwgMykKKyNkZWZpbmUgV004NTEwX0RBQ0NMS19GNAkoMCA8PCAzKQorCisvKiBBREMgY2xvY2sgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX0FEQ0NMS19GMgkoMSA8PCAzKQorI2RlZmluZSBXTTg1MTBfQURDQ0xLX0Y0CSgwIDw8IDMpCisKKy8qIFBMTCBPdXQgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzEJKDAgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzIJKDEgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzMJKDIgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzQJKDMgPDwgNCkKKworLyogQkNMSyBjbG9jayBkaXZpZGVycyAqLworI2RlZmluZSBXTTg1MTBfQkNMS0RJVl8xCSgwIDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzIJKDEgPDwgMikKKyNkZWZpbmUgV004NTEwX0JDTEtESVZfNAkoMiA8PCAyKQorI2RlZmluZSBXTTg1MTBfQkNMS0RJVl84CSgzIDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzE2CSg0IDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzMyCSg1IDw8IDIpCisKKy8qIE1DTEsgY2xvY2sgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX01DTEtESVZfMQkoMCA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8xXzUJKDEgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfMgkoMiA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8zCSgzIDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzQJKDQgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfNgkoNSA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl84CSg2IDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzEyCSg3IDw8IDUpCisKK3N0cnVjdCB3bTg1MTBfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7Cit9OworCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtODUxMF9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NTEwOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5jCmluZGV4IDBjZjkyNjUuLjM2OWQzOWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3MzEuYwpAQCAtMzEsMjUgKzMxLDYgQEAKICNkZWZpbmUgQVVESU9fTkFNRSAid204NzMxIgogI2RlZmluZSBXTTg3MzFfVkVSU0lPTiAiMC4xMyIKIAotLyoKLSAqIERlYnVnCi0gKi8KLQotI2RlZmluZSBXTTg3MzFfREVCVUcgMAotCi0jaWZkZWYgV004NzMxX0RFQlVHCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0RFQlVHIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNlbHNlCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLSNkZWZpbmUgZXJyKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fRVJSIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNkZWZpbmUgaW5mbyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0lORk8gQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSB3YXJuKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fV0FSTklORyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0KIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODczMTsKIAogLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCkBAIC0xOTMsNyArMTc0LDcgQEAKIFNORF9TT0NfREFQTV9JTlBVVCgiTExJTkVJTiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBpbnRlcmNvbltdID0gewogCS8qIG91dHB1dCBtaXhlciAqLwogCXsiT3V0cHV0IE1peGVyIiwgIkxpbmUgQnlwYXNzIFN3aXRjaCIsICJMaW5lIElucHV0In0sCiAJeyJPdXRwdXQgTWl4ZXIiLCAiSGlGaSBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCkBAIC0yMTQsMjIgKzE5NSwxNCBAQAogCXsiTGluZSBJbnB1dCIsIE5VTEwsICJMTElORUlOIn0sCiAJeyJMaW5lIElucHV0IiwgTlVMTCwgIlJMSU5FSU4ifSwKIAl7Ik1pYyBCaWFzIiwgTlVMTCwgIk1JQ0lOIn0sCi0KLQkvKiB0ZXJtaW5hdG9yICovCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTg3MzFfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cyAqLwotCWZvciAoaSA9IDA7IGludGVyY29uW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGludGVyY29uW2ldWzBdLAotCQkJaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgaW50ZXJjb24sIEFSUkFZX1NJWkUoaW50ZXJjb24pKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC0zNDUsNyArMzE4LDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgd204NzMxX211dGUoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIGludCBtdXRlKQorc3RhdGljIGludCB3bTg3MzFfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKIAl1MTYgbXV0ZV9yZWcgPSB3bTg3MzFfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODczMV9BUERJR0kpICYgMHhmZmY3OwpAQCAtMzU3LDcgKzMzMCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzMxX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3MzFfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0zNzYsNyArMzQ5LDcgQEAKIH0KIAogCi1zdGF0aWMgaW50IHdtODczMV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzMxX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC00MzUsMjkgKzQwOCwyOSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODczMV9kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCB3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCSBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAl1MTYgcmVnID0gd204NzMxX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3MzFfUFdSKSAmIDB4ZmY3ZjsKIAotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogdnJlZi9taWQsIG9zYyBvbiwgZGFjIHVubXV0ZSAqLwogCQl3bTg3MzFfd3JpdGUoY29kZWMsIFdNODczMV9QV1IsIHJlZyk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDogLyogT2ZmLCB3aXRoIHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKIAkJLyogZXZlcnl0aGluZyBvZmYgZXhjZXB0IHZyZWYvdm1pZCwgKi8KIAkJd204NzMxX3dyaXRlKGNvZGVjLCBXTTg3MzFfUFdSLCByZWcgfCAweDAwNDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZXZlcnl0aGluZyBvZmYsIGRhYyBtdXRlLCBpbmFjdGl2ZSAqLwogCQl3bTg3MzFfd3JpdGUoY29kZWMsIFdNODczMV9BQ1RJVkUsIDB4MCk7CiAJCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX1BXUiwgMHhmZmZmKTsKIAkJYnJlYWs7CiAJfQotCWNvZGVjLT5kYXBtX3N0YXRlID0gZXZlbnQ7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDcwLDcgKzQ0Myw3IEBACiAjZGVmaW5lIFdNODczMV9GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8XAogCVNORFJWX1BDTV9GTVRCSVRfUzI0X0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzMxX2RhaSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg3MzFfZGFpID0gewogCS5uYW1lID0gIldNODczMSIsCiAJLnBsYXliYWNrID0gewogCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLApAQCAtNTAzLDcgKzQ3Niw3IEBACiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAogCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX0FDVElWRSwgMHgwKTsKLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTIxLDggKzQ5NCw4IEBACiAJCWRhdGFbMV0gPSBjYWNoZVtpXSAmIDB4MDBmZjsKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTM5LDEwICs1MTIsMTAgQEAKIAljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKIAljb2RlYy0+cmVhZCA9IHdtODczMV9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSB3bTg3MzFfd3JpdGU7Ci0JY29kZWMtPmRhcG1fZXZlbnQgPSB3bTg3MzFfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB3bTg3MzFfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZ3bTg3MzFfZGFpOwogCWNvZGVjLT5udW1fZGFpID0gMTsKLQljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBzaXplb2Yod204NzMxX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg3MzFfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg3MzFfcmVnLCBzaXplb2Yod204NzMxX3JlZyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNTU3LDcgKzUzMCw3IEBACiAJfQogCiAJLyogcG93ZXIgb24gZGV2aWNlICovCi0Jd204NzMxX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBzZXQgdGhlIHVwZGF0ZSBiaXRzICovCiAJcmVnID0gd204NzMxX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3MzFfTE9VVDFWKTsKQEAgLTYzMiwxMyArNjA1LDEzIEBACiAKIAlyZXQgPSBpMmNfYXR0YWNoX2NsaWVudChpMmMpOwogCWlmIChyZXQgPCAwKSB7Ci0JCWVycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOwogCQlnb3RvIGVycjsKIAl9CiAKIAlyZXQgPSB3bTg3MzFfaW5pdChzb2NkZXYpOwogCWlmIChyZXQgPCAwKSB7Ci0JCWVycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzMxXG4iKTsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3MzFcbiIpOwogCQlnb3RvIGVycjsKIAl9CiAJcmV0dXJuIHJldDsKQEAgLTY4OSw3ICs2NjIsNyBAQAogCXN0cnVjdCB3bTg3MzFfcHJpdiAqd204NzMxOwogCWludCByZXQgPSAwOwogCi0JaW5mbygiV004NzMxIEF1ZGlvIENvZGVjICVzIiwgV004NzMxX1ZFUlNJT04pOworCXByX2luZm8oIldNODczMSBBdWRpbyBDb2RlYyAlcyIsIFdNODczMV9WRVJTSU9OKTsKIAogCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOwogCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKQEAgLTczMCw3ICs3MDMsNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJd204NzMxX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCQl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCiAJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKIAlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmgKaW5kZXggNWJjYWI2YS4uOTlmMmUzYyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5oCkBAIC0zOCw3ICszOCw3IEBACiAJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7CiB9OwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtODczMV9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtODczMV9kYWk7CiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NzMxOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5jCmluZGV4IDE2Y2Q1ZDQuLmUyM2NiMDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTAuYwpAQCAtMzEsMjUgKzMxLDYgQEAKICNkZWZpbmUgQVVESU9fTkFNRSAiV004NzUwIgogI2RlZmluZSBXTTg3NTBfVkVSU0lPTiAiMC4xMiIKIAotLyoKLSAqIERlYnVnCi0gKi8KLQotI2RlZmluZSBXTTg3NTBfREVCVUcgMAotCi0jaWZkZWYgV004NzUwX0RFQlVHCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0RFQlVHIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNlbHNlCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLSNkZWZpbmUgZXJyKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fRVJSIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNkZWZpbmUgaW5mbyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0lORk8gQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSB3YXJuKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fV0FSTklORyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0KIC8qIGNvZGVjIHByaXZhdGUgZGF0YSAqLwogc3RydWN0IHdtODc1MF9wcml2IHsKIAl1bnNpZ25lZCBpbnQgc3lzY2xrOwpAQCAtMzc4LDcgKzM1OSw3IEBACiAJU05EX1NPQ19EQVBNX0lOUFVUKCJSSU5QVVQzIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IG1peGVyICovCiAJeyJMZWZ0IE1peGVyIiwgIlBsYXliYWNrIFN3aXRjaCIsICJMZWZ0IERBQyJ9LAogCXsiTGVmdCBNaXhlciIsICJMZWZ0IEJ5cGFzcyBTd2l0Y2giLCAiTGVmdCBMaW5lIE11eCJ9LApAQCAtNDcwLDIyICs0NTEsMTQgQEAKIAkvKiBBREMgKi8KIAl7IkxlZnQgQURDIiwgTlVMTCwgIkxlZnQgQURDIE11eCJ9LAogCXsiUmlnaHQgQURDIiwgTlVMTCwgIlJpZ2h0IEFEQyBNdXgifSwKLQotCS8qIHRlcm1pbmF0b3IgKi8KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgaW50IHdtODc1MF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzUwX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzUwX2RhcG1fd2lkZ2V0cykpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzUwX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzUwX2RhcG1fd2lkZ2V0c1tpXSk7Ci0KLQkvKiBzZXQgdXAgYXVkaW8gcGF0aCBhdWRpb19tYXBuZWN0cyAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC01NjMsNyArNTM2LDcgQEAKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIGludCB3bTg3NTBfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTU4MSw3ICs1NTQsNyBAQAogCXJldHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC02NzQsNyArNjQ3LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTg3NTBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IHdtODc1MF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXUxNiBtdXRlX3JlZyA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUwX0FEQ0RBQykgJiAweGZmZjc7CkBAIC02ODYsMjkgKzY1OSwyOSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCB3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCSBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAl1MTYgcHdyX3JlZyA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUwX1BXUjEpICYgMHhmZTNlOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOiAvKiBmdWxsIE9uICovCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgogCQkvKiBzZXQgdm1pZCB0byA1MGsgYW5kIHVubXV0ZSBkYWMgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDBjMCk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQkvKiBzZXQgdm1pZCB0byA1ayBmb3IgcXVpY2sgcG93ZXIgdXAgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDFjMSk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OiAvKiBPZmYsIHdpdGggcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgogCQkvKiBtdXRlIGRhYyBhbmQgc2V0IHZtaWQgdG8gNTAwaywgZW5hYmxlIFZSRUYgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDE0MSk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDogLyogT2ZmLCB3aXRob3V0IHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQl3bTg3NTBfd3JpdGUoY29kZWMsIFdNODc1MF9QV1IxLCAweDAwMDEpOwogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCXJldHVybiAwOwogfQogCkBAIC03MTksNyArNjkyLDcgQEAKICNkZWZpbmUgV004NzUwX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCiAJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTBfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHdtODc1MF9kYWkgPSB7CiAJLm5hbWUgPSAiV004NzUwIiwKIAkucGxheWJhY2sgPSB7CiAJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCkBAIC03NDgsNyArNzIxLDcgQEAKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHNuZF9zb2NfY29kZWMsIGRlbGF5ZWRfd29yay53b3JrKTsKLQl3bTg3NTBfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPmRhcG1fc3RhdGUpOworCXdtODc1MF9zZXRfYmlhc19sZXZlbChjb2RlYywgY29kZWMtPmJpYXNfbGV2ZWwpOwogfQogCiBzdGF0aWMgaW50IHdtODc1MF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKQEAgLTc1Niw3ICs3MjksNyBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAotCXdtODc1MF9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJldHVybiAwOwogfQogCkBAIC03NzcsMTIgKzc1MCwxMiBAQAogCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CiAJfQogCi0Jd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBjaGFyZ2Ugd204NzUwIGNhcHMgKi8KLQlpZiAoY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9PSBTTkRSVl9DVExfUE9XRVJfRDApIHsKLQkJd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JCWNvZGVjLT5kYXBtX3N0YXRlID0gU05EUlZfQ1RMX1BPV0VSX0QwOworCWlmIChjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PTikgeworCQl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19QUkVQQVJFKTsKKwkJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfT047CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29kZWMtPmRlbGF5ZWRfd29yaywKIAkJCQkJbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAJfQpAQCAtODAzLDEwICs3NzYsMTAgQEAKIAljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKIAljb2RlYy0+cmVhZCA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSB3bTg3NTBfd3JpdGU7Ci0JY29kZWMtPmRhcG1fZXZlbnQgPSB3bTg3NTBfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB3bTg3NTBfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZ3bTg3NTBfZGFpOwogCWNvZGVjLT5udW1fZGFpID0gMTsKLQljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBzaXplb2Yod204NzUwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg3NTBfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg3NTBfcmVnLCBzaXplb2Yod204NzUwX3JlZyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtODIxLDggKzc5NCw4IEBACiAJfQogCiAJLyogY2hhcmdlIG91dHB1dCBjYXBzICovCi0Jd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBTTkRSVl9DVExfUE9XRVJfRDNob3Q7CisJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfUFJFUEFSRSk7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfU1RBTkRCWTsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmssIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwogCiAJLyogc2V0IHRoZSB1cGRhdGUgYml0cyAqLwpAQCAtOTA0LDEzICs4NzcsMTMgQEAKIAogCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CiAJCWdvdG8gZXJyOwogCX0KIAogCXJldCA9IHdtODc1MF9pbml0KHNvY2Rldik7CiAJaWYgKHJldCA8IDApIHsKLQllcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODc1MFxuIik7CisJCXByX2VycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzUwXG4iKTsKIAkJZ290byBlcnI7CiAJfQogCXJldHVybiByZXQ7CkBAIC05NjEsNyArOTM0LDcgQEAKIAlzdHJ1Y3Qgd204NzUwX3ByaXYgKndtODc1MDsKIAlpbnQgcmV0ID0gMDsKIAotCWluZm8oIldNODc1MCBBdWRpbyBDb2RlYyAlcyIsIFdNODc1MF9WRVJTSU9OKTsKKwlwcl9pbmZvKCJXTTg3NTAgQXVkaW8gQ29kZWMgJXMiLCBXTTg3NTBfVkVSU0lPTik7CiAJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTEwMjEsNyArOTk0LDcgQEAKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJaWYgKGNvZGVjLT5jb250cm9sX2RhdGEpCi0JCXdtODc1MF9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwkJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlydW5fZGVsYXllZF93b3JrKCZjb2RlYy0+ZGVsYXllZF93b3JrKTsKIAlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOwogCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5oIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTAuaAppbmRleCBhOTdhNTRhLi44ZWYzMGU2IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmgKQEAgLTYxLDcgKzYxLDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKIH07CiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUwX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzUwX2RhaTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg3NTA7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmMKaW5kZXggZmI0MTgyNi4uODYwNDgwOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5jCkBAIC01NSwyNSArNTUsNiBAQAogI2RlZmluZSBBVURJT19OQU1FICJ3bTg3NTMiCiAjZGVmaW5lIFdNODc1M19WRVJTSU9OICIwLjE2IgogCi0vKgotICogRGVidWcKLSAqLwotCi0jZGVmaW5lIFdNODc1M19ERUJVRyAwCi0KLSNpZmRlZiBXTTg3NTNfREVCVUcKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2Vsc2UKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBkbyB7fSB3aGlsZSAoMCkKLSNlbmRpZgotI2RlZmluZSBlcnIoZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9FUlIgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fSU5GTyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZGVmaW5lIHdhcm4oZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLQogc3RhdGljIGludCBjYXBzX2NoYXJnZSA9IDIwMDA7CiBtb2R1bGVfcGFyYW0oY2Fwc19jaGFyZ2UsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGNhcHNfY2hhcmdlLCAiV004NzUzIGNhcCBjaGFyZ2UgdGltZSAobXNlY3MpIik7CkBAIC0yNjAsMjggKzI0MSw1MCBAQAogCXJldHVybiAxOwogfQogCi1zdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKHJlY19taXhfdGx2LCAtMTUwMCwgNjAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShyZWNfbWl4X3RsdiwgLTE1MDAsIDMwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUobWljX3ByZWFtcF90bHYsIDEyMDAsIDYwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoYWRjX3RsdiwgLTk3NTAsIDUwLCAxKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYWNfdGx2LCAtMTI3NTAsIDUwLCAxKTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgb3V0X3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDIpLAorCS8qIDAwMDAwMDAgLSAwMTAxMTExID0gIkFuYWxvZ3VlIG11dGUiICovCisJMCwgNDgsIFRMVl9EQl9TQ0FMRV9JVEVNKC0yNTUwMCwgMCwgMCksCisJNDgsIDEyNywgVExWX0RCX1NDQUxFX0lURU0oLTczMDAsIDEwMCwgMCksCit9Oworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKG1peF90bHYsIC0xNTAwLCAzMDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKHZvaWNlX21peF90bHYsIC0xMjAwLCAzMDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKHBnYV90bHYsIC0xNzI1LCA3NSwgMCk7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg3NTNfc25kX2NvbnRyb2xzW10gPSB7Ci1TT0NfRE9VQkxFX1IoIlBDTSBWb2x1bWUiLCBXTTg3NTNfTERBQywgV004NzUzX1JEQUMsIDAsIDI1NSwgMCksCitTT0NfRE9VQkxFX1JfVExWKCJQQ00gVm9sdW1lIiwgV004NzUzX0xEQUMsIFdNODc1M19SREFDLCAwLCAyNTUsIDAsIGRhY190bHYpLAogCi1TT0NfRE9VQkxFX1IoIkFEQyBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MQURDLCBXTTg3NTNfUkFEQywgMCwgMjU1LCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkFEQyBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MQURDLCBXTTg3NTNfUkFEQywgMCwgMjU1LCAwLAorCQkgYWRjX3RsdiksCiAKLVNPQ19ET1VCTEVfUigiSGVhZHBob25lIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUMVYsIFdNODc1M19ST1VUMVYsIDAsIDEyNywgMCksCi1TT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgMCwgMTI3LCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkhlYWRwaG9uZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVDFWLCBXTTg3NTNfUk9VVDFWLAorCQkgMCwgMTI3LCAwLCBvdXRfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgMCwKKwkJIDEyNywgMCwgb3V0X3RsdiksCiAKLVNPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRWLCAwLCAxMjcsIDApLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRWLCAwLCAxMjcsIDAsIG91dF90bHYpLAogCi1TT0NfRE9VQkxFX1IoIkJ5cGFzcyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVE0xLCBXTTg3NTNfUk9VVE0xLCA0LCA3LCAxKSwKLVNPQ19ET1VCTEVfUigiU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMiwgV004NzUzX1JPVVRNMiwgNCwgNywgMSksCi1TT0NfRE9VQkxFX1IoIlZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDAsIDcsIDEpLAorU09DX0RPVUJMRV9SX1RMVigiQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTEsIFdNODc1M19ST1VUTTEsIDQsIDcsCisJCSAxLCBtaXhfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlNpZGV0b25lIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDQsCisJCSA3LCAxLCBtaXhfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDAsIDcsCisJCSAxLCB2b2ljZV9taXhfdGx2KSwKIAotU09DX0RPVUJMRV9SKCJIZWFkcGhvbmUgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQxViwgV004NzUzX1JPVVQxViwgNywgMSwgMCksCi1TT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgNywgMSwgMCksCitTT0NfRE9VQkxFX1IoIkhlYWRwaG9uZSBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTE9VVDFWLCBXTTg3NTNfUk9VVDFWLCA3LAorCSAgICAgMSwgMCksCitTT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgNywKKwkgICAgIDEsIDApLAogCi1TT0NfU0lOR0xFKCJNb25vIEJ5cGFzcyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0xLCA0LCA3LCAxKSwKLVNPQ19TSU5HTEUoIk1vbm8gU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMiwgNCwgNywgMSksCi1TT0NfU0lOR0xFKCJNb25vIFZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTIsIDAsIDcsIDEpLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTEsIDQsIDcsIDEsIG1peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMiwgNCwgNywgMSwKKwkgICAgICAgbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTW9ubyBWb2ljZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0yLCAwLCA3LCAxLAorCSAgICAgICB2b2ljZV9taXhfdGx2KSwKIFNPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX01PVVRWLCA3LCAxLCAwKSwKIAogU09DX0VOVU0oIkJhc3MgQm9vc3QiLCB3bTg3NTNfZW51bVswXSksCkBAIC0yOTEsMTAgKzI5NCwxMyBAQAogU09DX1NJTkdMRSgiVHJlYmxlIFZvbHVtZSIsIFdNODc1M19UUkVCTEUsIDAsIDE1LCAxKSwKIFNPQ19FTlVNKCJUcmVibGUgQ3V0LW9mZiIsIHdtODc1M19lbnVtWzJdKSwKIAotU09DX0RPVUJMRV9UTFYoIlNpZGV0b25lIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX1JFQ01JWDEsIDAsIDQsIDcsIDEsIHJlY19taXhfdGx2KSwKLVNPQ19TSU5HTEVfVExWKCJWb2ljZSBTaWRldG9uZSBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19SRUNNSVgyLCAwLCA3LCAxLCByZWNfbWl4X3RsdiksCitTT0NfRE9VQkxFX1RMVigiU2lkZXRvbmUgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfUkVDTUlYMSwgMCwgNCwgNywgMSwKKwkgICAgICAgcmVjX21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlZvaWNlIFNpZGV0b25lIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX1JFQ01JWDIsIDAsIDcsIDEsCisJICAgICAgIHJlY19taXhfdGx2KSwKIAotU09DX0RPVUJMRV9SKCJDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MSU5WT0wsIFdNODc1M19SSU5WT0wsIDAsIDYzLCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkNhcHR1cmUgVm9sdW1lIiwgV004NzUzX0xJTlZPTCwgV004NzUzX1JJTlZPTCwgMCwgNjMsIDAsCisJCSBwZ2FfdGx2KSwKIFNPQ19ET1VCTEVfUigiQ2FwdHVyZSBaQyBTd2l0Y2giLCBXTTg3NTNfTElOVk9MLCBXTTg3NTNfUklOVk9MLCA2LCAxLCAwKSwKIFNPQ19ET1VCTEVfUigiQ2FwdHVyZSBTd2l0Y2giLCBXTTg3NTNfTElOVk9MLCBXTTg3NTNfUklOVk9MLCA3LCAxLCAxKSwKIApAQCAtMzI2LDggKzMzMiw4IEBACiBTT0NfRU5VTSgiUGxheWJhY2sgTW9ubyBNaXgiLCB3bTg3NTNfZW51bVs5XSksCiBTT0NfRU5VTSgiUGxheWJhY2sgUGhhc2UiLCB3bTg3NTNfZW51bVsxMF0pLAogCi1TT0NfU0lOR0xFKCJNaWMyIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNywgMywgMCksCi1TT0NfU0lOR0xFKCJNaWMxIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNSwgMywgMCksCitTT0NfU0lOR0xFX1RMVigiTWljMiBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19JTkNUTDEsIDcsIDMsIDAsIG1pY19wcmVhbXBfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJNaWMxIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNSwgMywgMCwgbWljX3ByZWFtcF90bHYpLAogCiBTT0NfRU5VTV9FWFQoIkRBSSBNb2RlIiwgd204NzUzX2VudW1bMjZdLCB3bTg3NTNfZ2V0X2RhaSwgd204NzUzX3NldF9kYWkpLAogCkBAIC01MjMsNyArNTI5LDcgQEAKIFNORF9TT0NfREFQTV9WTUlEKCJWUkVGIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IG1peGVyICovCiAJeyJMZWZ0IE1peGVyIiwgIkxlZnQgUGxheWJhY2sgU3dpdGNoIiwgIkxlZnQgREFDIn0sCiAJeyJMZWZ0IE1peGVyIiwgIlZvaWNlIFBsYXliYWNrIFN3aXRjaCIsICJWb2ljZSBEQUMifSwKQEAgLTY3NCwyMyArNjgwLDE0IEBACiAKIAkvKiBBQ09QICovCiAJeyJBQ09QIiwgTlVMTCwgIkFMQyBNaXhlciJ9LAotCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBpbnQgd204NzUzX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTNfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTNfZGFwbV93aWRnZXRzW2ldKTsKLQotCS8qIHNldCB1cCB0aGUgV004NzUzIGF1ZGlvIG1hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKLQl9CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC03NDMsNyArNzQwLDcgQEAKIAlwbGxfZGl2LT5rID0gSzsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19zZXRfZGFpX3BsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IHBsbF9pZCwgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291dCkKIHsKIAl1MTYgcmVnLCBlbmFibGU7CkBAIC04NjYsNyArODYzLDcgQEAKIC8qCiAgKiBDbG9jayBhZnRlciBQTEwgYW5kIGRpdmlkZXJzCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC04OTMsNyArODkwLDcgQEAKIC8qCiAgKiBTZXQncyBBREMgYW5kIFZvaWNlIERBQyBmb3JtYXQuCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX3ZkYWNfYWRjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfdmRhY19hZGNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTk2Myw3ICs5NjAsNyBAQAogLyoKICAqIFNldCdzIFBDTSBkYWkgZm10IGFuZCBCQ0xLLgogICovCi1zdGF0aWMgaW50IHdtODc1M19wY21fc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19wY21fc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEwMjksNyArMTAyNiw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBkaXZfaWQsIGludCBkaXYpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEwNTcsNyArMTA1NCw3IEBACiAvKgogICogU2V0J3MgSGlGaSBEQUMgZm9ybWF0LgogICovCi1zdGF0aWMgaW50IHdtODc1M19oZGFjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfaGRhY19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTA5MCw3ICsxMDg3LDcgQEAKIC8qCiAgKiBTZXQncyBJMlMgREFJIGZvcm1hdC4KICAqLwotc3RhdGljIGludCB3bTg3NTNfaTJzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfaTJzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMTk4LDcgKzExOTUsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tb2RlMXZfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMXZfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEyMTMsNyArMTIxMCw3IEBACiAJcmV0dXJuIHdtODc1M19wY21fc2V0X2RhaV9mbXQoY29kZWNfZGFpLCBmbXQpOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tb2RlMWhfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMWhfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJaWYgKHdtODc1M19oZGFjX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KSA8IDApCkBAIC0xMjIxLDcgKzEyMTgsNyBAQAogCXJldHVybiB3bTg3NTNfaTJzX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KTsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfbW9kZTJfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMl9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTIzNiw3ICsxMjMzLDcgQEAKIAlyZXR1cm4gd204NzUzX2kyc19zZXRfZGFpX2ZtdChjb2RlY19kYWksIGZtdCk7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX21vZGUzXzRfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlM180X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMjUzLDcgKzEyNTAsNyBAQAogCXJldHVybiB3bTg3NTNfaTJzX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KTsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IHdtODc1M19tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXUxNiBtdXRlX3JlZyA9IHdtODc1M19yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUzX0RBQykgJiAweGZmZjc7CkBAIC0xMjc0LDI5ICsxMjcxLDI5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtODc1M19zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXUxNiBwd3JfcmVnID0gd204NzUzX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3NTNfUFdSMSkgJiAweGZlM2U7CiAKLQlzd2l0Y2ggKGV2ZW50KSB7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDA6IC8qIGZ1bGwgT24gKi8KKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CiAJCS8qIHNldCB2bWlkIHRvIDUwayBhbmQgdW5tdXRlIGRhYyAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMGMwKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6IC8qIHBhcnRpYWwgT24gKi8KLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjogLyogcGFydGlhbCBPbiAqLworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CiAJCS8qIHNldCB2bWlkIHRvIDVrIGZvciBxdWljayBwb3dlciB1cCAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMWMxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qIG11dGUgZGFjIGFuZCBzZXQgdm1pZCB0byA1MDBrLCBlbmFibGUgVlJFRiAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMTQxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNjb2xkOiAvKiBPZmYsIHdpdGhvdXQgcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19PRkY6CiAJCXdtODc1M193cml0ZShjb2RlYywgV004NzUzX1BXUjEsIDB4MDAwMSk7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzMTksNyArMTMxNiw3IEBACiAgKiAzLiBWb2ljZSBkaXNhYmxlZCAtIEhJRkkgb3ZlciBISUZJCiAgKiA0LiBWb2ljZSBkaXNhYmxlZCAtIEhJRkkgb3ZlciBISUZJLCB1c2VzIHZvaWNlIERBSSBMUkMgZm9yIGNhcHR1cmUKICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTNfYWxsX2RhaVtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTNfYWxsX2RhaVtdID0gewogLyogREFJIEhpRmkgbW9kZSAxICovCiB7CS5uYW1lID0gIldNODc1MyBIaUZpIiwKIAkuaWQgPSAxLApAQCAtMTQ1OSw3ICsxNDU2LDcgQEAKIH0sCiB9OwogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUzX2RhaVsyXTsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTNfZGFpWzJdOwogRVhQT1JUX1NZTUJPTF9HUEwod204NzUzX2RhaSk7CiAKIHN0YXRpYyB2b2lkIHdtODc1M19zZXRfZGFpX21vZGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgbW9kZSkKQEAgLTE1MDAsNyArMTQ5Nyw3IEBACiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzbmRfc29jX2NvZGVjLCBkZWxheWVkX3dvcmsud29yayk7Ci0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIGNvZGVjLT5kYXBtX3N0YXRlKTsKKwl3bTg3NTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5iaWFzX2xldmVsKTsKIH0KIAogc3RhdGljIGludCB3bTg3NTNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCkBAIC0xNTEyLDcgKzE1MDksNyBAQAogCWlmICghY29kZWMtPmNhcmQpCiAJCXJldHVybiAwOwogCi0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE1MzcsMTIgKzE1MzQsMTIgQEAKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KIAotCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCiAJLyogY2hhcmdlIHdtODc1MyBjYXBzICovCi0JaWYgKGNvZGVjLT5zdXNwZW5kX2RhcG1fc3RhdGUgPT0gU05EUlZfQ1RMX1BPV0VSX0QwKSB7Ci0JCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDIpOwotCQljb2RlYy0+ZGFwbV9zdGF0ZSA9IFNORFJWX0NUTF9QT1dFUl9EMDsKKwlpZiAoY29kZWMtPnN1c3BlbmRfYmlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfT04pIHsKKwkJd204NzUzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfUFJFUEFSRSk7CisJCWNvZGVjLT5iaWFzX2xldmVsID0gU05EX1NPQ19CSUFTX09OOwogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmssCiAJCQltc2Vjc190b19qaWZmaWVzKGNhcHNfY2hhcmdlKSk7CiAJfQpAQCAtMTU2MywxMCArMTU2MCwxMCBAQAogCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOwogCWNvZGVjLT5yZWFkID0gd204NzUzX3JlYWRfcmVnX2NhY2hlOwogCWNvZGVjLT53cml0ZSA9IHdtODc1M193cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtODc1M19kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODc1M19zZXRfYmlhc19sZXZlbDsKIAljb2RlYy0+ZGFpID0gd204NzUzX2RhaTsKIAljb2RlYy0+bnVtX2RhaSA9IDI7Ci0JY29kZWMtPnJlZ19jYWNoZV9zaXplID0gc2l6ZW9mKHdtODc1M19yZWcpOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204NzUzX3JlZyk7CiAJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204NzUzX3JlZywgc2l6ZW9mKHdtODc1M19yZWcpLCBHRlBfS0VSTkVMKTsKIAogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCkBAIC0xNTg0LDggKzE1ODEsOCBAQAogCX0KIAogCS8qIGNoYXJnZSBvdXRwdXQgY2FwcyAqLwotCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDIpOwotCWNvZGVjLT5kYXBtX3N0YXRlID0gU05EUlZfQ1RMX1BPV0VSX0QzaG90OworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1BSRVBBUkUpOworCWNvZGVjLT5iaWFzX2xldmVsID0gU05EX1NPQ19CSUFTX1NUQU5EQlk7CiAJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZjb2RlYy0+ZGVsYXllZF93b3JrLAogCQltc2Vjc190b19qaWZmaWVzKGNhcHNfY2hhcmdlKSk7CiAKQEAgLTE2NzMsMTMgKzE2NzAsMTMgQEAKIAogCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CiAJCWdvdG8gZXJyOwogCX0KIAogCXJldCA9IHdtODc1M19pbml0KHNvY2Rldik7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3NTNcbiIpOworCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODc1M1xuIik7CiAJCWdvdG8gZXJyOwogCX0KIApAQCAtMTczMSw3ICsxNzI4LDcgQEAKIAlzdHJ1Y3Qgd204NzUzX3ByaXYgKndtODc1MzsKIAlpbnQgcmV0ID0gMDsKIAotCWluZm8oIldNODc1MyBBdWRpbyBDb2RlYyAlcyIsIFdNODc1M19WRVJTSU9OKTsKKwlwcl9pbmZvKCJXTTg3NTMgQXVkaW8gQ29kZWMgJXMiLCBXTTg3NTNfVkVSU0lPTik7CiAKIAlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKIAljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNzkyLDcgKzE3ODksNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCQl3bTg3NTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJ1bl9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmspOwogCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CiAJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmggYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5oCmluZGV4IDk1ZTJhMWYuLjQ0ZjVmMWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmgKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTMuaApAQCAtMTIwLDcgKzEyMCw3IEBACiAjZGVmaW5lIFdNODc1M19EQUlfSElGSQkJMAogI2RlZmluZSBXTTg3NTNfREFJX1ZPSUNFCQkxCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUzX2RhaVsyXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzUzX2RhaVsyXTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg3NTM7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5OTAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VjY2U1MQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmMKQEAgLTAsMCArMSwxNjI2IEBACisvKgorICogd204OTkwLmMgIC0tICBXTTg5OTAgQUxTQSBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMDggV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqIEF1dGhvcjogTGlhbSBHaXJkd29vZAorICogICAgICAgICBsZ0BvcGVuc291cmNlLndvbGZzb25taWNyby5jb20gb3IgbGludXhAd29sZnNvbm1pY3JvLmNvbQorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKworI2luY2x1ZGUgIndtODk5MC5oIgorCisjZGVmaW5lIEFVRElPX05BTUUgIndtODk5MCIKKyNkZWZpbmUgV004OTkwX1ZFUlNJT04gIjAuMiIKKworLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCitzdHJ1Y3Qgd204OTkwX3ByaXYgeworCXVuc2lnbmVkIGludCBzeXNjbGs7CisJdW5zaWduZWQgaW50IHBjbWNsazsKK307CisKKy8qCisgKiB3bTg5OTAgcmVnaXN0ZXIgY2FjaGUuICBOb3RlIHRoYXQgcmVnaXN0ZXIgMCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlCisgKiBjYWNoZS4KKyAqLworc3RhdGljIGNvbnN0IHUxNiB3bTg5OTBfcmVnW10gPSB7CisJMHg4OTkwLCAgICAgLyogUjAgIC0gUmVzZXQgKi8KKwkweDAwMDAsICAgICAvKiBSMSAgLSBQb3dlciBNYW5hZ2VtZW50ICgxKSAqLworCTB4NjAwMCwgICAgIC8qIFIyICAtIFBvd2VyIE1hbmFnZW1lbnQgKDIpICovCisJMHgwMDAwLCAgICAgLyogUjMgIC0gUG93ZXIgTWFuYWdlbWVudCAoMykgKi8KKwkweDQwNTAsICAgICAvKiBSNCAgLSBBdWRpbyBJbnRlcmZhY2UgKDEpICovCisJMHg0MDAwLCAgICAgLyogUjUgIC0gQXVkaW8gSW50ZXJmYWNlICgyKSAqLworCTB4MDFDOCwgICAgIC8qIFI2ICAtIENsb2NraW5nICgxKSAqLworCTB4MDAwMCwgICAgIC8qIFI3ICAtIENsb2NraW5nICgyKSAqLworCTB4MDA0MCwgICAgIC8qIFI4ICAtIEF1ZGlvIEludGVyZmFjZSAoMykgKi8KKwkweDAwNDAsICAgICAvKiBSOSAgLSBBdWRpbyBJbnRlcmZhY2UgKDQpICovCisJMHgwMDA0LCAgICAgLyogUjEwIC0gREFDIENUUkwgKi8KKwkweDAwQzAsICAgICAvKiBSMTEgLSBMZWZ0IERBQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDBDMCwgICAgIC8qIFIxMiAtIFJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIxMyAtIERpZ2l0YWwgU2lkZSBUb25lICovCisJMHgwMTAwLCAgICAgLyogUjE0IC0gQURDIENUUkwgKi8KKwkweDAwQzAsICAgICAvKiBSMTUgLSBMZWZ0IEFEQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDBDMCwgICAgIC8qIFIxNiAtIFJpZ2h0IEFEQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIxNyAqLworCTB4MDAwMCwgICAgIC8qIFIxOCAtIEdQSU8gQ1RSTCAxICovCisJMHgxMDAwLCAgICAgLyogUjE5IC0gR1BJTzEgJiBHUElPMiAqLworCTB4MTAxMCwgICAgIC8qIFIyMCAtIEdQSU8zICYgR1BJTzQgKi8KKwkweDEwMTAsICAgICAvKiBSMjEgLSBHUElPNSAmIEdQSU82ICovCisJMHg4MDAwLCAgICAgLyogUjIyIC0gR1BJT0NUUkwgMiAqLworCTB4MDgwMCwgICAgIC8qIFIyMyAtIEdQSU9fUE9MICovCisJMHgwMDhCLCAgICAgLyogUjI0IC0gTGVmdCBMaW5lIElucHV0IDEmMiBWb2x1bWUgKi8KKwkweDAwOEIsICAgICAvKiBSMjUgLSBMZWZ0IExpbmUgSW5wdXQgMyY0IFZvbHVtZSAqLworCTB4MDA4QiwgICAgIC8qIFIyNiAtIFJpZ2h0IExpbmUgSW5wdXQgMSYyIFZvbHVtZSAqLworCTB4MDA4QiwgICAgIC8qIFIyNyAtIFJpZ2h0IExpbmUgSW5wdXQgMyY0IFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIyOCAtIExlZnQgT3V0cHV0IFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIyOSAtIFJpZ2h0IE91dHB1dCBWb2x1bWUgKi8KKwkweDAwNjYsICAgICAvKiBSMzAgLSBMaW5lIE91dHB1dHMgVm9sdW1lICovCisJMHgwMDIyLCAgICAgLyogUjMxIC0gT3V0My80IFZvbHVtZSAqLworCTB4MDA3OSwgICAgIC8qIFIzMiAtIExlZnQgT1BHQSBWb2x1bWUgKi8KKwkweDAwNzksICAgICAvKiBSMzMgLSBSaWdodCBPUEdBIFZvbHVtZSAqLworCTB4MDAwMywgICAgIC8qIFIzNCAtIFNwZWFrZXIgVm9sdW1lICovCisJMHgwMDAzLCAgICAgLyogUjM1IC0gQ2xhc3NEMSAqLworCTB4MDAwMCwgICAgIC8qIFIzNiAqLworCTB4MDEwMCwgICAgIC8qIFIzNyAtIENsYXNzRDMgKi8KKwkweDAwMDAsICAgICAvKiBSMzggKi8KKwkweDAwMDAsICAgICAvKiBSMzkgLSBJbnB1dCBNaXhlcjEgKi8KKwkweDAwMDAsICAgICAvKiBSNDAgLSBJbnB1dCBNaXhlcjIgKi8KKwkweDAwMDAsICAgICAvKiBSNDEgLSBJbnB1dCBNaXhlcjMgKi8KKwkweDAwMDAsICAgICAvKiBSNDIgLSBJbnB1dCBNaXhlcjQgKi8KKwkweDAwMDAsICAgICAvKiBSNDMgLSBJbnB1dCBNaXhlcjUgKi8KKwkweDAwMDAsICAgICAvKiBSNDQgLSBJbnB1dCBNaXhlcjYgKi8KKwkweDAwMDAsICAgICAvKiBSNDUgLSBPdXRwdXQgTWl4ZXIxICovCisJMHgwMDAwLCAgICAgLyogUjQ2IC0gT3V0cHV0IE1peGVyMiAqLworCTB4MDAwMCwgICAgIC8qIFI0NyAtIE91dHB1dCBNaXhlcjMgKi8KKwkweDAwMDAsICAgICAvKiBSNDggLSBPdXRwdXQgTWl4ZXI0ICovCisJMHgwMDAwLCAgICAgLyogUjQ5IC0gT3V0cHV0IE1peGVyNSAqLworCTB4MDAwMCwgICAgIC8qIFI1MCAtIE91dHB1dCBNaXhlcjYgKi8KKwkweDAxODAsICAgICAvKiBSNTEgLSBPdXQzLzQgTWl4ZXIgKi8KKwkweDAwMDAsICAgICAvKiBSNTIgLSBMaW5lIE1peGVyMSAqLworCTB4MDAwMCwgICAgIC8qIFI1MyAtIExpbmUgTWl4ZXIyICovCisJMHgwMDAwLCAgICAgLyogUjU0IC0gU3BlYWtlciBNaXhlciAqLworCTB4MDAwMCwgICAgIC8qIFI1NSAtIEFkZGl0aW9uYWwgQ29udHJvbCAqLworCTB4MDAwMCwgICAgIC8qIFI1NiAtIEFudGlQT1AxICovCisJMHgwMDAwLCAgICAgLyogUjU3IC0gQW50aVBPUDIgKi8KKwkweDAwMDAsICAgICAvKiBSNTggLSBNSUNCSUFTICovCisJMHgwMDAwLCAgICAgLyogUjU5ICovCisJMHgwMDA4LCAgICAgLyogUjYwIC0gUExMMSAqLworCTB4MDAzMSwgICAgIC8qIFI2MSAtIFBMTDIgKi8KKwkweDAwMjYsICAgICAvKiBSNjIgLSBQTEwzICovCit9OworCisvKgorICogcmVhZCB3bTg5OTAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgd204OTkwX3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCUJVR19PTihyZWcgPiAoQVJSQVlfU0laRSh3bTg5OTBfcmVnKSkgLSAxKTsKKwlyZXR1cm4gY2FjaGVbcmVnXTsKK30KKworLyoKKyAqIHdyaXRlIHdtODk5MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgd204OTkwX3dyaXRlX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCUJVR19PTihyZWcgPiAoQVJSQVlfU0laRSh3bTg5OTBfcmVnKSkgLSAxKTsKKworCS8qIFJlc2V0IHJlZ2lzdGVyIGlzIHVuY2FjaGVkICovCisJaWYgKHJlZyA9PSAwKQorCQlyZXR1cm47CisKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgd204OTkwIHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX3dyaXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwl1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTggZGF0YVszXTsKKworCWRhdGFbMF0gPSByZWcgJiAweEZGOworCWRhdGFbMV0gPSAodmFsdWUgPj4gOCkgJiAweEZGOworCWRhdGFbMl0gPSB2YWx1ZSAmIDB4RkY7CisKKwl3bTg5OTBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMykgPT0gMikKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTzsKK30KKworI2RlZmluZSB3bTg5OTBfcmVzZXQoYykgd204OTkwX3dyaXRlKGMsIFdNODk5MF9SRVNFVCwgMCkKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihyZWNfbWl4X3RsdiwgLTE1MDAsIDYwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIoaW5fcGdhX3RsdiwgLTE2NTAsIDMwMDApOworCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKG91dF9taXhfdGx2LCAwLCAtMjEwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X3BnYV90bHYsIC03MzAwLCA2MDApOworCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKG91dF9vbWl4X3RsdiwgLTYwMCwgMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X2RhY190bHYsIC03MTYzLCAwKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihpbl9hZGNfdGx2LCAtNzE2MywgMTc2Myk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X3NpZGV0b25lX3RsdiwgLTM2MDAsIDApOworCitzdGF0aWMgaW50IHdtODk5eF9vdXRwZ2FfcHV0X3ZvbHN3X3Z1KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByZXQ7CisJdTE2IHZhbDsKKworCXJldCA9IHNuZF9zb2NfcHV0X3ZvbHN3KGtjb250cm9sLCB1Y29udHJvbCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKiBub3cgaGl0IHRoZSB2b2x1bWUgdXBkYXRlIGJpdHMgKGFsd2F5cyBiaXQgOCkgKi8KKwl2YWwgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZyk7CisJcmV0dXJuIHdtODk5MF93cml0ZShjb2RlYywgcmVnLCB2YWwgfCAweDAxMDApOworfQorCisjZGVmaW5lIFNPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVih4bmFtZSwgcmVnLCBzaGlmdCwgbWF4LCBpbnZlcnQsXAorCSB0bHZfYXJyYXkpIHtcCisJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0gKHhuYW1lKSwgXAorCS5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQgfFwKKwkJICBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLFwKKwkudGx2LnAgPSAodGx2X2FycmF5KSwgXAorCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCisJLmdldCA9IHNuZF9zb2NfZ2V0X3ZvbHN3LCAucHV0ID0gd204OTl4X291dHBnYV9wdXRfdm9sc3dfdnUsIFwKKwkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUocmVnLCBzaGlmdCwgbWF4LCBpbnZlcnQpIH0KKworCitzdGF0aWMgY29uc3QgY2hhciAqd204OTkwX2RpZ2l0YWxfc2lkZXRvbmVbXSA9CisJeyJOb25lIiwgIkxlZnQgQURDIiwgIlJpZ2h0IEFEQyIsICJSZXNlcnZlZCJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODk5MF9sZWZ0X2RpZ2l0YWxfc2lkZXRvbmVfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0RJR0lUQUxfU0lERV9UT05FLAorCVdNODk5MF9BRENfVE9fREFDTF9TSElGVCwKKwlXTTg5OTBfQURDX1RPX0RBQ0xfTUFTSywKKwl3bTg5OTBfZGlnaXRhbF9zaWRldG9uZSk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204OTkwX3JpZ2h0X2RpZ2l0YWxfc2lkZXRvbmVfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0RJR0lUQUxfU0lERV9UT05FLAorCVdNODk5MF9BRENfVE9fREFDUl9TSElGVCwKKwlXTTg5OTBfQURDX1RPX0RBQ1JfTUFTSywKKwl3bTg5OTBfZGlnaXRhbF9zaWRldG9uZSk7CisKK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfYWRjbW9kZVtdID0KKwl7IkhpLWZpIG1vZGUiLCAiVm9pY2UgbW9kZSAxIiwgIlZvaWNlIG1vZGUgMiIsICJWb2ljZSBtb2RlIDMifTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfcmlnaHRfYWRjbW9kZV9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfQURDX0NUUkwsCisJV004OTkwX0FEQ19IUEZfQ1VUX1NISUZULAorCVdNODk5MF9BRENfSFBGX0NVVF9NQVNLLAorCXdtODk5MF9hZGNtb2RlKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9zbmRfY29udHJvbHNbXSA9IHsKKy8qIElOTUlYTCAqLworU09DX1NJTkdMRSgiTElOMTIgUEdBIEJvb3N0IiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX0wxMk1OQlNUX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJMSU4zNCBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CU1RfQklULCAxLCAwKSwKKy8qIElOTUlYUiAqLworU09DX1NJTkdMRSgiUklOMTIgUEdBIEJvb3N0IiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX1IxMk1OQlNUX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJSSU4zNCBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfUjM0TU5CU1RfQklULCAxLCAwKSwKKworLyogTE9NSVggKi8KK1NPQ19TSU5HTEVfVExWKCJMT01JWCBMSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSMywKKwlXTTg5OTBfTExJM0xPVk9MX1NISUZULCBXTTg5OTBfTExJM0xPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJMT01JWCBSSU4xMiBQR0EgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVIzLAorCVdNODk5MF9MUjEyTE9WT0xfU0hJRlQsIFdNODk5MF9MUjEyTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIkxPTUlYIExJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjMsCisJV004OTkwX0xMMTJMT1ZPTF9TSElGVCwgV004OTkwX0xMMTJMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggUklOMyBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjUsCisJV004OTkwX0xSSTNMT1ZPTF9TSElGVCwgV004OTkwX0xSSTNMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggQUlOUk1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjUsCisJV004OTkwX0xSQkxPVk9MX1NISUZULCBXTTg5OTBfTFJCTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIkxPTUlYIEFJTkxNVVggQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI1LAorCVdNODk5MF9MUkJMT1ZPTF9TSElGVCwgV004OTkwX0xSQkxPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKKworLyogUk9NSVggKi8KK1NPQ19TSU5HTEVfVExWKCJST01JWCBSSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNCwKKwlXTTg5OTBfUlJJM1JPVk9MX1NISUZULCBXTTg5OTBfUlJJM1JPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJST01JWCBMSU4xMiBQR0EgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI0LAorCVdNODk5MF9STDEyUk9WT0xfU0hJRlQsIFdNODk5MF9STDEyUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjQsCisJV004OTkwX1JSMTJST1ZPTF9TSElGVCwgV004OTkwX1JSMTJST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggTElOMyBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjYsCisJV004OTkwX1JMSTNST1ZPTF9TSElGVCwgV004OTkwX1JMSTNST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggQUlOTE1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjYsCisJV004OTkwX1JMQlJPVk9MX1NISUZULCBXTTg5OTBfUkxCUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlJPTUlYIEFJTlJNVVggQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI2LAorCVdNODk5MF9SUkJST1ZPTF9TSElGVCwgV004OTkwX1JSQlJPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKKworLyogTE9VVCAqLworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJMT1VUIFZvbHVtZSIsIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUsCisJV004OTkwX0xPVVRWT0xfU0hJRlQsIFdNODk5MF9MT1VUVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIkxPVVQgWkMiLCBXTTg5OTBfTEVGVF9PVVRQVVRfVk9MVU1FLCBXTTg5OTBfTE9aQ19CSVQsIDEsIDApLAorCisvKiBST1VUICovCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJPVVQgVm9sdW1lIiwgV004OTkwX1JJR0hUX09VVFBVVF9WT0xVTUUsCisJV004OTkwX1JPVVRWT0xfU0hJRlQsIFdNODk5MF9ST1VUVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIlJPVVQgWkMiLCBXTTg5OTBfUklHSFRfT1VUUFVUX1ZPTFVNRSwgV004OTkwX1JPWkNfQklULCAxLCAwKSwKKworLyogTE9QR0EgKi8KK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTE9QR0EgVm9sdW1lIiwgV004OTkwX0xFRlRfT1BHQV9WT0xVTUUsCisJV004OTkwX0xPUEdBVk9MX1NISUZULCBXTTg5OTBfTE9QR0FWT0xfTUFTSywgMCwgb3V0X3BnYV90bHYpLAorU09DX1NJTkdMRSgiTE9QR0EgWkMgU3dpdGNoIiwgV004OTkwX0xFRlRfT1BHQV9WT0xVTUUsCisJV004OTkwX0xPUEdBWkNfQklULCAxLCAwKSwKKworLyogUk9QR0EgKi8KK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUk9QR0EgVm9sdW1lIiwgV004OTkwX1JJR0hUX09QR0FfVk9MVU1FLAorCVdNODk5MF9ST1BHQVZPTF9TSElGVCwgV004OTkwX1JPUEdBVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIlJPUEdBIFpDIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9PUEdBX1ZPTFVNRSwKKwlXTTg5OTBfUk9QR0FaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJMT04gTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfTE9OTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiTE9QIE11dGUgU3dpdGNoIiwgV004OTkwX0xJTkVfT1VUUFVUU19WT0xVTUUsCisJV004OTkwX0xPUE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIkxPUCBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfTE9BVFROX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJST04gTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfUk9OTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiUk9QIE11dGUgU3dpdGNoIiwgV004OTkwX0xJTkVfT1VUUFVUU19WT0xVTUUsCisJV004OTkwX1JPUE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIlJPUCBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfUk9BVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIk9VVDMgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUM01VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIk9VVDMgQXR0ZW51YXRpb24gU3dpdGNoIiwgV004OTkwX09VVDNfNF9WT0xVTUUsCisJV004OTkwX09VVDNBVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIk9VVDQgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUNE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIk9VVDQgQXR0ZW51YXRpb24gU3dpdGNoIiwgV004OTkwX09VVDNfNF9WT0xVTUUsCisJV004OTkwX09VVDRBVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIlNwZWFrZXIgTW9kZSBTd2l0Y2giLCBXTTg5OTBfQ0xBU1NEMSwKKwlXTTg5OTBfQ0RNT0RFX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIlNwZWFrZXIgT3V0cHV0IEF0dGVudWF0aW9uIFZvbHVtZSIsIFdNODk5MF9TUEVBS0VSX1ZPTFVNRSwKKwlXTTg5OTBfU1BLVk9MX1NISUZULCBXTTg5OTBfU1BLVk9MX01BU0ssIDApLAorU09DX1NJTkdMRSgiU3BlYWtlciBEQyBCb29zdCBWb2x1bWUiLCBXTTg5OTBfQ0xBU1NEMywKKwlXTTg5OTBfRENHQUlOX1NISUZULCBXTTg5OTBfRENHQUlOX01BU0ssIDApLAorU09DX1NJTkdMRSgiU3BlYWtlciBBQyBCb29zdCBWb2x1bWUiLCBXTTg5OTBfQ0xBU1NEMywKKwlXTTg5OTBfQUNHQUlOX1NISUZULCBXTTg5OTBfQUNHQUlOX01BU0ssIDApLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIkxlZnQgREFDIERpZ2l0YWwgVm9sdW1lIiwKKwlXTTg5OTBfTEVGVF9EQUNfRElHSVRBTF9WT0xVTUUsCisJV004OTkwX0RBQ0xfVk9MX1NISUZULAorCVdNODk5MF9EQUNMX1ZPTF9NQVNLLAorCTAsCisJb3V0X2RhY190bHYpLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZSIsCisJV004OTkwX1JJR0hUX0RBQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfREFDUl9WT0xfU0hJRlQsCisJV004OTkwX0RBQ1JfVk9MX01BU0ssCisJMCwKKwlvdXRfZGFjX3RsdiksCisKK1NPQ19FTlVNKCJMZWZ0IERpZ2l0YWwgU2lkZXRvbmUiLCB3bTg5OTBfbGVmdF9kaWdpdGFsX3NpZGV0b25lX2VudW0pLAorU09DX0VOVU0oIlJpZ2h0IERpZ2l0YWwgU2lkZXRvbmUiLCB3bTg5OTBfcmlnaHRfZGlnaXRhbF9zaWRldG9uZV9lbnVtKSwKKworU09DX1NJTkdMRV9UTFYoIkxlZnQgRGlnaXRhbCBTaWRldG9uZSBWb2x1bWUiLCBXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ0xfREFDX1NWT0xfU0hJRlQsIFdNODk5MF9BRENMX0RBQ19TVk9MX01BU0ssIDAsCisJb3V0X3NpZGV0b25lX3RsdiksCitTT0NfU0lOR0xFX1RMVigiUmlnaHQgRGlnaXRhbCBTaWRldG9uZSBWb2x1bWUiLCBXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ1JfREFDX1NWT0xfU0hJRlQsIFdNODk5MF9BRENSX0RBQ19TVk9MX01BU0ssIDAsCisJb3V0X3NpZGV0b25lX3RsdiksCisKK1NPQ19TSU5HTEUoIkFEQyBEaWdpdGFsIEhpZ2ggUGFzcyBGaWx0ZXIgU3dpdGNoIiwgV004OTkwX0FEQ19DVFJMLAorCVdNODk5MF9BRENfSFBGX0VOQV9CSVQsIDEsIDApLAorCitTT0NfRU5VTSgiQURDIEhQRiBNb2RlIiwgd204OTkwX3JpZ2h0X2FkY21vZGVfZW51bSksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTGVmdCBBREMgRGlnaXRhbCBWb2x1bWUiLAorCVdNODk5MF9MRUZUX0FEQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfQURDTF9WT0xfU0hJRlQsCisJV004OTkwX0FEQ0xfVk9MX01BU0ssCisJMCwKKwlpbl9hZGNfdGx2KSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJSaWdodCBBREMgRGlnaXRhbCBWb2x1bWUiLAorCVdNODk5MF9SSUdIVF9BRENfRElHSVRBTF9WT0xVTUUsCisJV004OTkwX0FEQ1JfVk9MX1NISUZULAorCVdNODk5MF9BRENSX1ZPTF9NQVNLLAorCTAsCisJaW5fYWRjX3RsdiksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTElOMTIgVm9sdW1lIiwKKwlXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX0xJTjEyVk9MX1NISUZULAorCVdNODk5MF9MSU4xMlZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIkxJTjEyIFpDIFN3aXRjaCIsIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfTEkxMlpDX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIkxJTjEyIE11dGUgU3dpdGNoIiwgV004OTkwX0xFRlRfTElORV9JTlBVVF8xXzJfVk9MVU1FLAorCVdNODk5MF9MSTEyTVVURV9CSVQsIDEsIDApLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIkxJTjM0IFZvbHVtZSIsCisJV004OTkwX0xFRlRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9MSU4zNFZPTF9TSElGVCwKKwlXTTg5OTBfTElOMzRWT0xfTUFTSywKKwkwLAorCWluX3BnYV90bHYpLAorCitTT0NfU0lOR0xFKCJMSU4zNCBaQyBTd2l0Y2giLCBXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX0xJMzRaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJMSU4zNCBNdXRlIFN3aXRjaCIsIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSwKKwlXTTg5OTBfTEkzNE1VVEVfQklULCAxLCAwKSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJSSU4xMiBWb2x1bWUiLAorCVdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJTjEyVk9MX1NISUZULAorCVdNODk5MF9SSU4xMlZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIlJJTjEyIFpDIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJMTJaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJSSU4xMiBNdXRlIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJMTJNVVRFX0JJVCwgMSwgMCksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUklOMzQgVm9sdW1lIiwKKwlXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSU4zNFZPTF9TSElGVCwKKwlXTTg5OTBfUklOMzRWT0xfTUFTSywKKwkwLAorCWluX3BnYV90bHYpLAorCitTT0NfU0lOR0xFKCJSSU4zNCBaQyBTd2l0Y2giLCBXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSTM0WkNfQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiUklOMzQgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSTM0TVVURV9CSVQsIDEsIDApLAorCit9OworCisvKiBhZGQgbm9uIGRhcG0gY29udHJvbHMgKi8KK3N0YXRpYyBpbnQgd204OTkwX2FkZF9jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJaW50IGVyciwgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5MF9zbmRfY29udHJvbHMpOyBpKyspIHsKKwkJZXJyID0gc25kX2N0bF9hZGQoY29kZWMtPmNhcmQsCisJCQkJc25kX3NvY19jbmV3KCZ3bTg5OTBfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywKKwkJCQkJTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogX0RBUE1fIENvbnRyb2xzCisgKi8KKworc3RhdGljIGludCBpbm1peGVyX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAorCXN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBpbnQgZXZlbnQpCit7CisJdTE2IHJlZywgZmFrZXBvd2VyOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKHctPmNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yKTsKKwlmYWtlcG93ZXIgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9JTlREUklWQklUUyk7CisKKwlpZiAoZmFrZXBvd2VyICYgKCgxIDw8IFdNODk5MF9JTk1JWExfUFdSX0JJVCkgfAorCQkoMSA8PCBXTTg5OTBfQUlOTE1VWF9QV1JfQklUKSkpIHsKKwkJcmVnIHw9IFdNODk5MF9BSU5MX0VOQTsKKwl9IGVsc2UgeworCQlyZWcgJj0gfldNODk5MF9BSU5MX0VOQTsKKwl9CisKKwlpZiAoZmFrZXBvd2VyICYgKCgxIDw8IFdNODk5MF9JTk1JWFJfUFdSX0JJVCkgfAorCQkoMSA8PCBXTTg5OTBfQUlOUk1VWF9QV1JfQklUKSkpIHsKKwkJcmVnIHw9IFdNODk5MF9BSU5SX0VOQTsKKwl9IGVsc2UgeworCQlyZWcgJj0gfldNODk5MF9BSU5MX0VOQTsKKwl9CisJd204OTkwX3dyaXRlKHctPmNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCByZWcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgb3V0bWl4ZXJfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncsCisJc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIGludCBldmVudCkKK3sKKwl1MzIgcmVnX3NoaWZ0ID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmZjsKKwlpbnQgcmV0ID0gMDsKKwl1MTYgcmVnOworCisJc3dpdGNoIChyZWdfc2hpZnQpIHsKKwljYXNlIFdNODk5MF9TUEVBS0VSX01JWEVSIHwgKFdNODk5MF9MRFNQS19CSVQgPDwgOCkgOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9PVVRQVVRfTUlYRVIxKTsKKwkJaWYgKHJlZyAmIFdNODk5MF9MRExPKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiQ2Fubm90IHNldCBhcyBPdXRwdXQgTWl4ZXIgMSBMRExPIFNldFxuIik7CisJCQlyZXQgPSAtMTsKKwkJfQorCQlicmVhazsKKwljYXNlIFdNODk5MF9TUEVBS0VSX01JWEVSIHwgKFdNODk5MF9SRFNQS19CSVQgPDwgOCk6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX09VVFBVVF9NSVhFUjIpOworCQlpZiAocmVnICYgV004OTkwX1JEUk8pIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJDYW5ub3Qgc2V0IGFzIE91dHB1dCBNaXhlciAyIFJEUk8gU2V0XG4iKTsKKwkJCXJldCA9IC0xOworCQl9CisJCWJyZWFrOworCWNhc2UgV004OTkwX09VVFBVVF9NSVhFUjEgfCAoV004OTkwX0xETE9fQklUIDw8IDgpOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9TUEVBS0VSX01JWEVSKTsKKwkJaWYgKHJlZyAmIFdNODk5MF9MRFNQSykgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIkNhbm5vdCBzZXQgYXMgU3BlYWtlciBNaXhlciBMRFNQSyBTZXRcbiIpOworCQkJcmV0ID0gLTE7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfT1VUUFVUX01JWEVSMiB8IChXTTg5OTBfUkRST19CSVQgPDwgOCk6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX1NQRUFLRVJfTUlYRVIpOworCQlpZiAocmVnICYgV004OTkwX1JEU1BLKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiQ2Fubm90IHNldCBhcyBTcGVha2VyIE1peGVyIFJEU1BLIFNldFxuIik7CisJCQlyZXQgPSAtMTsKKwkJfQorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisvKiBJTk1JWCBkQiB2YWx1ZXMgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgaW5fbWl4X3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDEpLAorCTAsIDcsIFRMVl9EQl9MSU5FQVJfSVRFTSgtMTIwMCwgNjAwKSwKK307CisKKy8qIExlZnQgSW4gUEdBIENvbm5lY3Rpb25zICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxJTjEgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX0xNTjFfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTElOMiBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfTE1QMl9CSVQsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xpbjM0X3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMSU4zIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9MTU4zX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxJTjQgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX0xNUDRfQklULCAxLCAwKSwKK307CisKKy8qIFJpZ2h0IEluIFBHQSBDb25uZWN0aW9ucyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJSSU4xIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9STU4xX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJJTjIgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX1JNUDJfQklULCAxLCAwKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yaW4zNF9wZ2FfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiUklOMyBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfUk1OM19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJSSU40IFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9STVA0X0JJVCwgMSwgMCksCit9OworCisvKiBJTk1JWEwgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIlJlY29yZCBMZWZ0IFZvbHVtZSIsIFdNODk5MF9JTlBVVF9NSVhFUjMsCisJV004OTkwX0xEQlZPTF9TSElGVCwgV004OTkwX0xEQlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIkxJTjIgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSNSwgV004OTkwX0xJMkJWT0xfU0hJRlQsCisJNywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEUoIkxJTlBHQTEyIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMTJNTkJfQklULAorCTEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMSU5QR0EzNCBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CX0JJVCwKKwkxLCAwKSwKK307CisKKy8qIElOTUlYUiAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2lubWl4cl9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFX1RMVigiUmVjb3JkIFJpZ2h0IFZvbHVtZSIsIFdNODk5MF9JTlBVVF9NSVhFUjQsCisJV004OTkwX1JEQlZPTF9TSElGVCwgV004OTkwX1JEQlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIlJJTjIgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSNiwgV004OTkwX1JJMkJWT0xfU0hJRlQsCisJNywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEUoIlJJTlBHQTEyIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMTJNTkJfQklULAorCTEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJSSU5QR0EzNCBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CX0JJVCwKKwkxLCAwKSwKK307CisKKy8qIEFJTkxNVVggKi8KK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfYWlubG11eFtdID0KKwl7IklOTUlYTCBNaXgiLCAiUlhWT0lDRSBNaXgiLCAiRElGRklOTCBNaXgifTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfYWlubG11eF9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfSU5QVVRfTUlYRVIxLCBXTTg5OTBfQUlOTE1PREVfU0hJRlQsCisJQVJSQVlfU0laRSh3bTg5OTBfYWlubG11eCksIHdtODk5MF9haW5sbXV4KTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2FpbmxtdXhfY29udHJvbHMgPQorU09DX0RBUE1fRU5VTSgiUm91dGUiLCB3bTg5OTBfYWlubG11eF9lbnVtKTsKKworLyogRElGRklOTCAqLworCisvKiBBSU5STVVYICovCitzdGF0aWMgY29uc3QgY2hhciAqd204OTkwX2FpbnJtdXhbXSA9CisJeyJJTk1JWFIgTWl4IiwgIlJYVk9JQ0UgTWl4IiwgIkRJRkZJTlIgTWl4In07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204OTkwX2FpbnJtdXhfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0lOUFVUX01JWEVSMSwgV004OTkwX0FJTlJNT0RFX1NISUZULAorCUFSUkFZX1NJWkUod204OTkwX2FpbnJtdXgpLCB3bTg5OTBfYWlucm11eCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9haW5ybXV4X2NvbnRyb2xzID0KK1NPQ19EQVBNX0VOVU0oIlJvdXRlIiwgd204OTkwX2FpbnJtdXhfZW51bSk7CisKKy8qIFJYVk9JQ0UgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yeHZvaWNlX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEVfVExWKCJMSU40L1JYTiIsIFdNODk5MF9JTlBVVF9NSVhFUjUsIFdNODk5MF9MUjRCVk9MX1NISUZULAorCQkJV004OTkwX0xSNEJWT0xfTUFTSywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEVfVExWKCJSSU40L1JYUCIsIFdNODk5MF9JTlBVVF9NSVhFUjYsIFdNODk5MF9STDRCVk9MX1NISUZULAorCQkJV004OTkwX1JMNEJWT0xfTUFTSywgMCwgaW5fbWl4X3RsdiksCit9OworCisvKiBMT01JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xvbWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIFJpZ2h0IEFEQyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSQkxPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIExlZnQgQURDIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTExCTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSSTNMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTExJM0xPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSMTJMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIxLAorCVdNODk5MF9MTDEyTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggTGVmdCBEQUMgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xETE9fQklULCAxLCAwKSwKK307CisKKy8qIFJPTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcm9taXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9STEJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBSaWdodCBBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9SUkJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUkxJM1JPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJJTjMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9SUkkzUk9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggTElOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUkwxMlJPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JSMTJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBSaWdodCBEQUMgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JEUk9fQklULCAxLCAwKSwKK307CisKKy8qIExPTk1JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xvbm1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMT05NSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MTE9QR0FMT05fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9OTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xST1BHQUxPTl9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT05NSVggSW52ZXJ0ZWQgTE9QIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMSwKKwlXTTg5OTBfTE9QTE9OX0JJVCwgMSwgMCksCit9OworCisvKiBMT1BNSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9sb3BtaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTE9QTUlYIFJpZ2h0IE1pYyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MUjEyTE9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MTDEyTE9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPUE1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xMT1BHQUxPUF9CSVQsIDEsIDApLAorfTsKKworLyogUk9OTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIlJPTk1JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9SUk9QR0FST05fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9OTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUkxPUEdBUk9OX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTk1JWCBJbnZlcnRlZCBST1AgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9ST1BST05fQklULCAxLCAwKSwKK307CisKKy8qIFJPUE1JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3JvcG1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJST1BNSVggTGVmdCBNaWMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUkwxMlJPUF9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JSMTJST1BfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9QTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JST1BHQVJPUF9CSVQsIDEsIDApLAorfTsKKworLyogT1VUM01JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX291dDNtaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiT1VUM01JWCBMSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfTEk0TzNfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiT1VUM01JWCBMZWZ0IE91dCBQR0EgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfTFBHQU8zX0JJVCwgMSwgMCksCit9OworCisvKiBPVVQ0TUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fb3V0NG1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJPVVQ0TUlYIFJpZ2h0IE91dCBQR0EgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfUlBHQU80X0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIk9VVDRNSVggUklONC9SWFAgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVQzXzRfTUlYRVIsCisJV004OTkwX1JJNE80X0JJVCwgMSwgMCksCit9OworCisvKiBTUEtNSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9zcGttaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExJTjIgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MSTJTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MQjJTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MT1BHQVNQS19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggTGVmdCBEQUMgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX0xEU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSaWdodCBEQUMgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JEU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JPUEdBU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSQURDIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfUkwxMlJPUF9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggUklOMiBCeXBhc3MgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JJMlNQS19CSVQsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHdtODk5MF9kYXBtX3dpZGdldHNbXSA9IHsKKy8qIElucHV0IFNpZGUgKi8KKy8qIElucHV0IExpbmVzICovCitTTkRfU09DX0RBUE1fSU5QVVQoIkxJTjEiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiTElOMiIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJMSU4zIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIkxJTjQvUlhOIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIlJJTjMiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiUklONC9SWFAiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiUklOMSIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJSSU4yIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIkludGVybmFsIEFEQyBTb3VyY2UiKSwKKworLyogREFDcyAqLworU05EX1NPQ19EQVBNX0FEQygiTGVmdCBBREMiLCAiTGVmdCBDYXB0dXJlIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwKKwlXTTg5OTBfQURDTF9FTkFfQklULCAwKSwKK1NORF9TT0NfREFQTV9BREMoIlJpZ2h0IEFEQyIsICJSaWdodCBDYXB0dXJlIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwKKwlXTTg5OTBfQURDUl9FTkFfQklULCAwKSwKKworLyogSW5wdXQgUEdBcyAqLworU05EX1NPQ19EQVBNX01JWEVSKCJMSU4xMiBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCBXTTg5OTBfTElOMTJfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzKSksCitTTkRfU09DX0RBUE1fTUlYRVIoIkxJTjM0IFBHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIFdNODk5MF9MSU4zNF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9saW4zNF9wZ2FfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9saW4zNF9wZ2FfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9NSVhFUigiUklOMTIgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwgV004OTkwX1JJTjEyX0VOQV9CSVQsCisJMCwgJndtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJSSU4zNCBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCBXTTg5OTBfUklOMzRfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fcmluMzRfcGdhX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fcmluMzRfcGdhX2NvbnRyb2xzKSksCisKKy8qIElOTUlYTCAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIklOTUlYTCIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0lOTUlYTF9QV1JfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHMpLAorCWlubWl4ZXJfZXZlbnQsIFNORF9TT0NfREFQTV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksCisKKy8qIEFJTkxNVVggKi8KK1NORF9TT0NfREFQTV9NVVhfRSgiQUlMTk1VWCIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0FJTkxNVVhfUFdSX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fYWlubG11eF9jb250cm9scywgaW5taXhlcl9ldmVudCwKKwlTTkRfU09DX0RBUE1fUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLAorCisvKiBJTk1JWFIgKi8KK1NORF9TT0NfREFQTV9NSVhFUl9FKCJJTk1JWFIiLCBXTTg5OTBfSU5URFJJVkJJVFMsIFdNODk5MF9JTk1JWFJfUFdSX0JJVCwgMCwKKwkmd204OTkwX2RhcG1faW5taXhyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1faW5taXhyX2NvbnRyb2xzKSwKKwlpbm1peGVyX2V2ZW50LCBTTkRfU09DX0RBUE1fUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLAorCisvKiBBSU5STVVYICovCitTTkRfU09DX0RBUE1fTVVYX0UoIkFJUk5NVVgiLCBXTTg5OTBfSU5URFJJVkJJVFMsIFdNODk5MF9BSU5STVVYX1BXUl9CSVQsIDAsCisJJndtODk5MF9kYXBtX2FpbnJtdXhfY29udHJvbHMsIGlubWl4ZXJfZXZlbnQsCisJU05EX1NPQ19EQVBNX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwKKworLyogT3V0cHV0IFNpZGUgKi8KKy8qIERBQ3MgKi8KK1NORF9TT0NfREFQTV9EQUMoIkxlZnQgREFDIiwgIkxlZnQgUGxheWJhY2siLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLAorCVdNODk5MF9EQUNMX0VOQV9CSVQsIDApLAorU05EX1NPQ19EQVBNX0RBQygiUmlnaHQgREFDIiwgIlJpZ2h0IFBsYXliYWNrIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywKKwlXTTg5OTBfREFDUl9FTkFfQklULCAwKSwKKworLyogTE9NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUl9FKCJMT01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9MT01JWF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9sb21peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX2xvbWl4X2NvbnRyb2xzKSwKKwlvdXRtaXhlcl9ldmVudCwgU05EX1NPQ19EQVBNX1BSRV9SRUcpLAorCisvKiBMT05NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiTE9OTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPTl9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9sb25taXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9sb25taXhfY29udHJvbHMpKSwKKworLyogTE9QTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIkxPUE1JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9MT1BfRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fbG9wbWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fbG9wbWl4X2NvbnRyb2xzKSksCisKKy8qIE9VVDNNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiT1VUM01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIFdNODk5MF9PVVQzX0VOQV9CSVQsIDAsCisJJndtODk5MF9kYXBtX291dDNtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9vdXQzbWl4X2NvbnRyb2xzKSksCisKKy8qIFNQS01JWCAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIlNQS01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIFdNODk5MF9TUEtfRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fc3BrbWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fc3BrbWl4X2NvbnRyb2xzKSwgb3V0bWl4ZXJfZXZlbnQsCisJU05EX1NPQ19EQVBNX1BSRV9SRUcpLAorCisvKiBPVVQ0TUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIk9VVDRNSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCBXTTg5OTBfT1VUNF9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9vdXQ0bWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fb3V0NG1peF9jb250cm9scykpLAorCisvKiBST1BNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiUk9QTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX1JPUF9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9yb3BtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yb3BtaXhfY29udHJvbHMpKSwKKworLyogUk9OTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIlJPTk1JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9ST05fRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzKSksCisKKy8qIFJPTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVJfRSgiUk9NSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLCBXTTg5OTBfUk9NSVhfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fcm9taXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yb21peF9jb250cm9scyksCisJb3V0bWl4ZXJfZXZlbnQsIFNORF9TT0NfREFQTV9QUkVfUkVHKSwKKworLyogTE9VVCBQR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIkxPVVQgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX0xPVVRfRU5BX0JJVCwgMCwKKwlOVUxMLCAwKSwKKworLyogUk9VVCBQR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIlJPVVQgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX1JPVVRfRU5BX0JJVCwgMCwKKwlOVUxMLCAwKSwKKworLyogTE9QR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIkxPUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPUEdBX0VOQV9CSVQsIDAsCisJTlVMTCwgMCksCisKKy8qIFJPUEdBICovCitTTkRfU09DX0RBUE1fUEdBKCJST1BHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9ST1BHQV9FTkFfQklULCAwLAorCU5VTEwsIDApLAorCisvKiBNSUNCSUFTICovCitTTkRfU09DX0RBUE1fTUlDQklBUygiTUlDQklBUyIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsCisJV004OTkwX01JQ0JJQVNfRU5BX0JJVCwgMCksCisKK1NORF9TT0NfREFQTV9PVVRQVVQoIkxPTiIpLAorU05EX1NPQ19EQVBNX09VVFBVVCgiTE9QIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJPVVQzIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJMT1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtOIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtQIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJST1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJPVVQ0IiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJST1AiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlJPTiIpLAorCitTTkRfU09DX0RBUE1fT1VUUFVUKCJJbnRlcm5hbCBEQUMgU2luayIpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisJLyogTWFrZSBEQUNzIHR1cm4gb24gd2hlbiBwbGF5aW5nIGV2ZW4gaWYgbm90IG1peGVkIGludG8gYW55IG91dHB1dHMgKi8KKwl7IkludGVybmFsIERBQyBTaW5rIiwgTlVMTCwgIkxlZnQgREFDIn0sCisJeyJJbnRlcm5hbCBEQUMgU2luayIsIE5VTEwsICJSaWdodCBEQUMifSwKKworCS8qIE1ha2UgQURDcyB0dXJuIG9uIHdoZW4gcmVjb3JkaW5nIGV2ZW4gaWYgbm90IG1peGVkIGZyb20gYW55IGlucHV0cyAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiSW50ZXJuYWwgQURDIFNvdXJjZSJ9LAorCXsiUmlnaHQgQURDIiwgTlVMTCwgIkludGVybmFsIEFEQyBTb3VyY2UifSwKKworCS8qIElucHV0IFNpZGUgKi8KKwkvKiBMSU4xMiBQR0EgKi8KKwl7IkxJTjEyIFBHQSIsICJMSU4xIFN3aXRjaCIsICJMSU4xIn0sCisJeyJMSU4xMiBQR0EiLCAiTElOMiBTd2l0Y2giLCAiTElOMiJ9LAorCS8qIExJTjM0IFBHQSAqLworCXsiTElOMzQgUEdBIiwgIkxJTjMgU3dpdGNoIiwgIkxJTjMifSwKKwl7IkxJTjM0IFBHQSIsICJMSU40IFN3aXRjaCIsICJMSU40In0sCisJLyogSU5NSVhMICovCisJeyJJTk1JWEwiLCAiUmVjb3JkIExlZnQgVm9sdW1lIiwgIkxPTUlYIn0sCisJeyJJTk1JWEwiLCAiTElOMiBWb2x1bWUiLCAiTElOMiJ9LAorCXsiSU5NSVhMIiwgIkxJTlBHQTEyIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IklOTUlYTCIsICJMSU5QR0EzNCBTd2l0Y2giLCAiTElOMzQgUEdBIn0sCisJLyogQUlMTk1VWCAqLworCXsiQUlMTk1VWCIsICJJTk1JWEwgTWl4IiwgIklOTUlYTCJ9LAorCXsiQUlMTk1VWCIsICJESUZGSU5MIE1peCIsICJMSU4xMlBHQSJ9LAorCXsiQUlMTk1VWCIsICJESUZGSU5MIE1peCIsICJMSU4zNFBHQSJ9LAorCXsiQUlMTk1VWCIsICJSWFZPSUNFIE1peCIsICJMSU40L1JYTiJ9LAorCXsiQUlMTk1VWCIsICJSWFZPSUNFIE1peCIsICJSSU40L1JYUCJ9LAorCS8qIEFEQyAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiQUlMTk1VWCJ9LAorCisJLyogUklOMTIgUEdBICovCisJeyJSSU4xMiBQR0EiLCAiUklOMSBTd2l0Y2giLCAiUklOMSJ9LAorCXsiUklOMTIgUEdBIiwgIlJJTjIgU3dpdGNoIiwgIlJJTjIifSwKKwkvKiBSSU4zNCBQR0EgKi8KKwl7IlJJTjM0IFBHQSIsICJSSU4zIFN3aXRjaCIsICJSSU4zIn0sCisJeyJSSU4zNCBQR0EiLCAiUklONCBTd2l0Y2giLCAiUklONCJ9LAorCS8qIElOTUlYTCAqLworCXsiSU5NSVhSIiwgIlJlY29yZCBSaWdodCBWb2x1bWUiLCAiUk9NSVgifSwKKwl7IklOTUlYUiIsICJSSU4yIFZvbHVtZSIsICJSSU4yIn0sCisJeyJJTk1JWFIiLCAiUklOUEdBMTIgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiSU5NSVhSIiwgIlJJTlBHQTM0IFN3aXRjaCIsICJSSU4zNCBQR0EifSwKKwkvKiBBSVJOTVVYICovCisJeyJBSVJOTVVYIiwgIklOTUlYUiBNaXgiLCAiSU5NSVhSIn0sCisJeyJBSVJOTVVYIiwgIkRJRkZJTlIgTWl4IiwgIlJJTjEyUEdBIn0sCisJeyJBSVJOTVVYIiwgIkRJRkZJTlIgTWl4IiwgIlJJTjM0UEdBIn0sCisJeyJBSVJOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIlJJTjQvUlhOIn0sCisJeyJBSVJOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIlJJTjQvUlhQIn0sCisJLyogQURDICovCisJeyJSaWdodCBBREMiLCBOVUxMLCAiQUlSTk1VWCJ9LAorCisJLyogTE9NSVggKi8KKwl7IkxPTUlYIiwgIkxPTUlYIFJJTjMgQnlwYXNzIFN3aXRjaCIsICJSSU4zIn0sCisJeyJMT01JWCIsICJMT01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCAiTElOMyJ9LAorCXsiTE9NSVgiLCAiTE9NSVggTElOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCAiTElOMTIgUEdBIn0sCisJeyJMT01JWCIsICJMT01JWCBSSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsICJSSU4xMiBQR0EifSwKKwl7IkxPTUlYIiwgIkxPTUlYIFJpZ2h0IEFEQyBCeXBhc3MgU3dpdGNoIiwgIkFJTlJNVVgifSwKKwl7IkxPTUlYIiwgIkxPTUlYIExlZnQgQURDIEJ5cGFzcyBTd2l0Y2giLCAiQUlOTE1VWCJ9LAorCXsiTE9NSVgiLCAiTE9NSVggTGVmdCBEQUMgU3dpdGNoIiwgIkxlZnQgREFDIn0sCisKKwkvKiBST01JWCAqLworCXsiUk9NSVgiLCAiUk9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgIlJJTjMifSwKKwl7IlJPTUlYIiwgIlJPTUlYIExJTjMgQnlwYXNzIFN3aXRjaCIsICJMSU4zIn0sCisJeyJST01JWCIsICJST01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IlJPTUlYIiwgIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiUk9NSVgiLCAiUk9NSVggUmlnaHQgQURDIEJ5cGFzcyBTd2l0Y2giLCAiQUlOUk1VWCJ9LAorCXsiUk9NSVgiLCAiUk9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5MTVVYIn0sCisJeyJST01JWCIsICJST01JWCBSaWdodCBEQUMgU3dpdGNoIiwgIlJpZ2h0IERBQyJ9LAorCisJLyogU1BLTUlYICovCisJeyJTUEtNSVgiLCAiU1BLTUlYIExJTjIgQnlwYXNzIFN3aXRjaCIsICJMSU4yIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJJTjIgQnlwYXNzIFN3aXRjaCIsICJSSU4yIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5MTVVYIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5STVVYIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCXsiU1BLTUlYIiwgIlNQS01JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgIlJPUEdBIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJpZ2h0IERBQyBTd2l0Y2giLCAiUmlnaHQgREFDIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExlZnQgREFDIFN3aXRjaCIsICJSaWdodCBEQUMifSwKKworCS8qIExPTk1JWCAqLworCXsiTE9OTUlYIiwgIkxPTk1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCAiTE9QR0EifSwKKwl7IkxPTk1JWCIsICJMT05NSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsICJST1BHQSJ9LAorCXsiTE9OTUlYIiwgIkxPTk1JWCBJbnZlcnRlZCBMT1AgU3dpdGNoIiwgIkxPUE1JWCJ9LAorCisJLyogTE9QTUlYICovCisJeyJMT1BNSVgiLCAiTE9QTUlYIFJpZ2h0IE1pYyBCeXBhc3MgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiTE9QTUlYIiwgIkxPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgIkxJTjEyIFBHQSJ9LAorCXsiTE9QTUlYIiwgIkxPUE1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCAiTE9QR0EifSwKKworCS8qIE9VVDNNSVggKi8KKwl7Ik9VVDNNSVgiLCAiT1VUM01JWCBMSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgIkxJTjQvUlhQIn0sCisJeyJPVVQzTUlYIiwgIk9VVDNNSVggTGVmdCBPdXQgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCisJLyogT1VUNE1JWCAqLworCXsiT1VUNE1JWCIsICJPVVQ0TUlYIFJpZ2h0IE91dCBQR0EgU3dpdGNoIiwgIlJPUEdBIn0sCisJeyJPVVQ0TUlYIiwgIk9VVDRNSVggUklONC9SWFAgQnlwYXNzIFN3aXRjaCIsICJSSU40L1JYUCJ9LAorCisJLyogUk9OTUlYICovCisJeyJST05NSVgiLCAiUk9OTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKwl7IlJPTk1JWCIsICJST05NSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgIkxPUEdBIn0sCisJeyJST05NSVgiLCAiUk9OTUlYIEludmVydGVkIFJPUCBTd2l0Y2giLCAiUk9QTUlYIn0sCisKKwkvKiBST1BNSVggKi8KKwl7IlJPUE1JWCIsICJST1BNSVggTGVmdCBNaWMgQnlwYXNzIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IlJPUE1JWCIsICJST1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCAiUklOMTIgUEdBIn0sCisJeyJST1BNSVgiLCAiUk9QTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKworCS8qIE91dCBNaXhlciBQR0FzICovCisJeyJMT1BHQSIsIE5VTEwsICJMT01JWCJ9LAorCXsiUk9QR0EiLCBOVUxMLCAiUk9NSVgifSwKKworCXsiTE9VVCBQR0EiLCBOVUxMLCAiTE9NSVgifSwKKwl7IlJPVVQgUEdBIiwgTlVMTCwgIlJPTUlYIn0sCisKKwkvKiBPdXRwdXQgUGlucyAqLworCXsiTE9OIiwgTlVMTCwgIkxPTk1JWCJ9LAorCXsiTE9QIiwgTlVMTCwgIkxPUE1JWCJ9LAorCXsiT1VUIiwgTlVMTCwgIk9VVDNNSVgifSwKKwl7IkxPVVQiLCBOVUxMLCAiTE9VVCBQR0EifSwKKwl7IlNQS04iLCBOVUxMLCAiU1BLTUlYIn0sCisJeyJST1VUIiwgTlVMTCwgIlJPVVQgUEdBIn0sCisJeyJPVVQ0IiwgTlVMTCwgIk9VVDRNSVgifSwKKwl7IlJPUCIsIE5VTEwsICJST1BNSVgifSwKKwl7IlJPTiIsIE5VTEwsICJST05NSVgifSwKK307CisKK3N0YXRpYyBpbnQgd204OTkwX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg5OTBfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg5OTBfZGFwbV93aWRnZXRzKSk7CisKKwkvKiBzZXQgdXAgdGhlIFdNODk5MCBhdWRpbyBtYXAgKi8KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworLyogUExMIGRpdmlzb3JzICovCitzdHJ1Y3QgX3BsbF9kaXYgeworCXUzMiBkaXYyOworCXUzMiBuOworCXUzMiBrOworfTsKKworLyogVGhlIHNpemUgaW4gYml0cyBvZiB0aGUgcGxsIGRpdmlkZSBtdWx0aXBsaWVkIGJ5IDEwCisgKiB0byBhbGxvdyByb3VuZGluZyBsYXRlciAqLworI2RlZmluZSBGSVhFRF9QTExfU0laRSAoKDEgPDwgMTYpICogMTApCisKK3N0YXRpYyB2b2lkIHBsbF9mYWN0b3JzKHN0cnVjdCBfcGxsX2RpdiAqcGxsX2RpdiwgdW5zaWduZWQgaW50IHRhcmdldCwKKwl1bnNpZ25lZCBpbnQgc291cmNlKQoreworCXU2NCBLcGFydDsKKwl1bnNpZ25lZCBpbnQgSywgTmRpdiwgTm1vZDsKKworCisJTmRpdiA9IHRhcmdldCAvIHNvdXJjZTsKKwlpZiAoTmRpdiA8IDYpIHsKKwkJc291cmNlID4+PSAxOworCQlwbGxfZGl2LT5kaXYyID0gMTsKKwkJTmRpdiA9IHRhcmdldCAvIHNvdXJjZTsKKwl9IGVsc2UKKwkJcGxsX2Rpdi0+ZGl2MiA9IDA7CisKKwlpZiAoKE5kaXYgPCA2KSB8fCAoTmRpdiA+IDEyKSkKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkiV004OTkwIE4gdmFsdWUgb3V0d2l0aCByZWNvbW1lbmRlZCByYW5nZSEgTiA9ICVkXG4iLCBOZGl2KTsKKworCXBsbF9kaXYtPm4gPSBOZGl2OworCU5tb2QgPSB0YXJnZXQgJSBzb3VyY2U7CisJS3BhcnQgPSBGSVhFRF9QTExfU0laRSAqIChsb25nIGxvbmcpTm1vZDsKKworCWRvX2RpdihLcGFydCwgc291cmNlKTsKKworCUsgPSBLcGFydCAmIDB4RkZGRkZGRkY7CisKKwkvKiBDaGVjayBpZiB3ZSBuZWVkIHRvIHJvdW5kICovCisJaWYgKChLICUgMTApID49IDUpCisJCUsgKz0gNTsKKworCS8qIE1vdmUgZG93biB0byBwcm9wZXIgcmFuZ2Ugbm93IHJvdW5kaW5nIGlzIGRvbmUgKi8KKwlLIC89IDEwOworCisJcGxsX2Rpdi0+ayA9IEs7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCXUxNiByZWc7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3QgX3BsbF9kaXYgcGxsX2RpdjsKKworCWlmIChmcmVxX2luICYmIGZyZXFfb3V0KSB7CisJCXBsbF9mYWN0b3JzKCZwbGxfZGl2LCBmcmVxX291dCAqIDQsIGZyZXFfaW4pOworCisJCS8qIFR1cm4gb24gUExMICovCisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMik7CisJCXJlZyB8PSBXTTg5OTBfUExMX0VOQTsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCByZWcpOworCisJCS8qIHN5c2NsayBjb21lcyBmcm9tIFBMTCAqLworCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yKTsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMiwgcmVnIHwgV004OTkwX1NZU0NMS19TUkMpOworCisJCS8qIHNldCB1cCBOICwgZnJhY3Rpb25hbCBtb2RlIGFuZCBwcmUtZGl2aXNvciBpZiBuZWNjZXNzYXJ5ICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BMTDEsIHBsbF9kaXYubiB8IFdNODk5MF9TRE0gfAorCQkJKHBsbF9kaXYuZGl2Mj9XTTg5OTBfUFJFU0NBTEU6MCkpOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QTEwyLCAodTgpKHBsbF9kaXYuaz4+OCkpOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QTEwzLCAodTgpKHBsbF9kaXYuayAmIDB4RkYpKTsKKwl9IGVsc2UgeworCQkvKiBUdXJuIG9uIFBMTCAqLworCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIpOworCQlyZWcgJj0gfldNODk5MF9QTExfRU5BOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyk7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogQ2xvY2sgYWZ0ZXIgUExMIGFuZCBkaXZpZGVycworICovCitzdGF0aWMgaW50IHdtODk5MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3Qgd204OTkwX3ByaXYgKndtODk5MCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CisKKwl3bTg5OTAtPnN5c2NsayA9IGZyZXE7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBTZXQncyBBREMgYW5kIFZvaWNlIERBQyBmb3JtYXQuCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IGF1ZGlvMSwgYXVkaW8zOworCisJYXVkaW8xID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEpOworCWF1ZGlvMyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV8zKTsKKworCS8qIHNldCBtYXN0ZXIvc2xhdmUgYXVkaW8gaW50ZXJmYWNlICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzoKKwkJYXVkaW8zICY9IH5XTTg5OTBfQUlGX01TVFIxOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJCWF1ZGlvMyB8PSBXTTg5OTBfQUlGX01TVFIxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlhdWRpbzEgJj0gfldNODk5MF9BSUZfRk1UX01BU0s7CisKKwkvKiBpbnRlcmZhY2UgZm9ybWF0ICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9GT1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9UTUZfSTJTOworCQlhdWRpbzEgJj0gfldNODk5MF9BSUZfTFJDTEtfSU5WOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX1JJR0hUX0o6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9SSUdIVEo7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTEVGVF9KOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9UTUZfTEVGVEo7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0E6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9EU1A7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0I6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9EU1AgfCBXTTg5OTBfQUlGX0xSQ0xLX0lOVjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEsIGF1ZGlvMSk7CisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzMsIGF1ZGlvMyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgZGl2X2lkLCBpbnQgZGl2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBXTTg5OTBfTUNMS19ESVY6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIpICYKKwkJCX5XTTg5OTBfTUNMS19ESVZfTUFTSzsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMiwgcmVnIHwgZGl2KTsKKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfREFDQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMikgJgorCQkJfldNODk5MF9EQUNfQ0xLRElWX01BU0s7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004OTkwX0FEQ0NMS19ESVY6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIpICYKKwkJCX5XTTg5OTBfQURDX0NMS0RJVl9NQVNLOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODk5MF9CQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMSkgJgorCQkJfldNODk5MF9CQ0xLX0RJVl9NQVNLOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18xLCByZWcgfCBkaXYpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNldCBQQ00gREFJIGJpdCBzaXplIGFuZCBzYW1wbGUgcmF0ZS4KKyAqLworc3RhdGljIGludCB3bTg5OTBfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJdTE2IGF1ZGlvMSA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV8xKTsKKworCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9XTF9NQVNLOworCS8qIGJpdCBzaXplICovCisJc3dpdGNoIChwYXJhbXNfZm9ybWF0KHBhcmFtcykpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzE2X0xFOgorCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzIwXzNMRToKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfV0xfMjBCSVRTOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzI0X0xFOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9XTF8yNEJJVFM7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMzJfTEU6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1dMXzMyQklUUzsKKwkJYnJlYWs7CisJfQorCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEsIGF1ZGlvMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IHZhbDsKKworCXZhbCAgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9EQUNfQ1RSTCkgJiB+V004OTkwX0RBQ19NVVRFOworCisJaWYgKG11dGUpCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0RBQ19DVFJMLCB2YWwgfCBXTTg5OTBfREFDX01VVEUpOworCWVsc2UKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfREFDX0NUUkwsIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCXUxNiB2YWw7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CisJCWlmIChjb2RlYy0+Ymlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfT0ZGKSB7CisJCQkvKiBFbmFibGUgYWxsIG91dHB1dCBkaXNjaGFyZ2UgYml0cyAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDEsIFdNODk5MF9ESVNfTExJTkUgfAorCQkJCVdNODk5MF9ESVNfUkxJTkUgfCBXTTg5OTBfRElTX09VVDMgfAorCQkJCVdNODk5MF9ESVNfT1VUNCB8IFdNODk5MF9ESVNfTE9VVCB8CisJCQkJV004OTkwX0RJU19ST1VUKTsKKworCQkJLyogRW5hYmxlIFBPQkNUUkwsIFNPRlRfU1QsIFZNSURUT0cgYW5kIEJVRkRDT1BFTiAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJCSAgICAgV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCQkgICAgIFdNODk5MF9WTUlEVE9HKTsKKworCQkJLyogRGVsYXkgdG8gYWxsb3cgb3V0cHV0IGNhcHMgdG8gZGlzY2hhcmdlICovCisJCQltc2xlZXAobXNlY3NfdG9famlmZmllcygzMDApKTsKKworCQkJLyogRGlzYWJsZSBWTUlEVE9HICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX1NPRlRTVCB8CisJCQkJICAgICBXTTg5OTBfQlVGRENPUEVOIHwgV004OTkwX1BPQkNUUkwpOworCisJCQkvKiBkaXNhYmxlIGFsbCBvdXRwdXQgZGlzY2hhcmdlIGJpdHMgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AxLCAwKTsKKworCQkJLyogRW5hYmxlIG91dHB1dHMgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxYjAwKTsKKworCQkJbXNsZWVwKG1zZWNzX3RvX2ppZmZpZXMoNTApKTsKKworCQkJLyogRW5hYmxlIFZNSUQgYXQgMng1MGsgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAyKTsKKworCQkJbXNsZWVwKG1zZWNzX3RvX2ppZmZpZXMoMTAwKSk7CisKKwkJCS8qIEVuYWJsZSBWUkVGICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MWYwMyk7CisKKwkJCW1zbGVlcChtc2Vjc190b19qaWZmaWVzKDYwMCkpOworCisJCQkvKiBFbmFibGUgQlVGSU9FTiAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJCSAgICAgV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCQkgICAgIFdNODk5MF9CVUZJT0VOKTsKKworCQkJLyogRGlzYWJsZSBvdXRwdXRzICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4Myk7CisKKwkJCS8qIGRpc2FibGUgUE9CQ1RSTCwgU09GVF9TVCBhbmQgQlVGRENPUEVOICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX0JVRklPRU4pOworCQl9IGVsc2UgeworCQkJLyogT04gLT4gc3RhbmRieSAqLworCisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCS8qIEVuYWJsZSBQT0JDVFJMIGFuZCBTT0ZUX1NUICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AyLCBXTTg5OTBfU09GVFNUIHwKKwkJCVdNODk5MF9QT0JDVFJMIHwgV004OTkwX0JVRklPRU4pOworCisJCS8qIEVuYWJsZSBQT0JDVFJMLCBTT0ZUX1NUIGFuZCBCVUZEQ09QRU4gKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCVdNODk5MF9CVUZJT0VOKTsKKworCQkvKiBtdXRlIERBQyAqLworCQl2YWwgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9EQUNfQ1RSTCk7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0RBQ19DVFJMLCB2YWwgfCBXTTg5OTBfREFDX01VVEUpOworCisJCS8qIEVuYWJsZSBhbnkgZGlzYWJsZWQgb3V0cHV0cyAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MWYwMyk7CisKKwkJLyogRGlzYWJsZSBWTUlEICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAxKTsKKworCQltc2xlZXAobXNlY3NfdG9famlmZmllcygzMDApKTsKKworCQkvKiBFbmFibGUgYWxsIG91dHB1dCBkaXNjaGFyZ2UgYml0cyAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMSwgV004OTkwX0RJU19MTElORSB8CisJCQlXTTg5OTBfRElTX1JMSU5FIHwgV004OTkwX0RJU19PVVQzIHwKKwkJCVdNODk5MF9ESVNfT1VUNCB8IFdNODk5MF9ESVNfTE9VVCB8CisJCQlXTTg5OTBfRElTX1JPVVQpOworCisJCS8qIERpc2FibGUgVlJFRiAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MCk7CisKKwkJLyogZGlzYWJsZSBQT0JDVFJMLCBTT0ZUX1NUIGFuZCBCVUZEQ09QRU4gKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIDB4MCk7CisJCWJyZWFrOworCX0KKworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgV004OTkwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBcCisJU05EUlZfUENNX1JBVEVfNDgwMDApCisKKyNkZWZpbmUgV004OTkwX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCisJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkKKworLyoKKyAqIFRoZSBXTTg5OTAgc3VwcG9ydHMgMiBkaWZmZXJlbnQgYW5kIG11dHVhbGx5IGV4Y2x1c2l2ZSBEQUkKKyAqIGNvbmZpZ3VyYXRpb25zLgorICoKKyAqIDEuIEFEQy9EQUMgb24gUHJpbWFyeSBJbnRlcmZhY2UKKyAqIDIuIEFEQyBvbiBQcmltYXJ5IEludGVyZmFjZS9EQUMgb24gc2Vjb25kYXJ5CisgKi8KK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg5OTBfZGFpID0geworLyogQURDL0RBQyBvbiBwcmltYXJ5ICovCisJLm5hbWUgPSAiV004OTkwIEFEQy9EQUMgUHJpbWFyeSIsCisJLmlkID0gMSwKKwkucGxheWJhY2sgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gV004OTkwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFdNODk5MF9GT1JNQVRTLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg5OTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004OTkwX0ZPUk1BVFMsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gd204OTkwX2h3X3BhcmFtcyx9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gd204OTkwX211dGUsCisJCS5zZXRfZm10ID0gd204OTkwX3NldF9kYWlfZm10LAorCQkuc2V0X2Nsa2RpdiA9IHdtODk5MF9zZXRfZGFpX2Nsa2RpdiwKKwkJLnNldF9wbGwgPSB3bTg5OTBfc2V0X2RhaV9wbGwsCisJCS5zZXRfc3lzY2xrID0gd204OTkwX3NldF9kYWlfc3lzY2xrLAorCX0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwod204OTkwX2RhaSk7CisKK3N0YXRpYyBpbnQgd204OTkwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCS8qIHdlIG9ubHkgbmVlZCB0byBzdXNwZW5kIGlmIHdlIGFyZSBhIHZhbGlkIGNhcmQgKi8KKwlpZiAoIWNvZGVjLT5jYXJkKQorCQlyZXR1cm4gMDsKKworCXdtODk5MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogd2Ugb25seSBuZWVkIHRvIHJlc3VtZSBpZiB3ZSBhcmUgYSB2YWxpZCBjYXJkICovCisJaWYgKCFjb2RlYy0+Y2FyZCkKKwkJcmV0dXJuIDA7CisKKwkvKiBTeW5jIHJlZ19jYWNoZSB3aXRoIHRoZSBoYXJkd2FyZSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5MF9yZWcpOyBpKyspIHsKKwkJaWYgKGkgKyAxID09IFdNODk5MF9SRVNFVCkKKwkJCWNvbnRpbnVlOworCQlkYXRhWzBdID0gKChpICsgMSkgPDwgMSkgfCAoKGNhY2hlW2ldID4+IDgpICYgMHgwMDAxKTsKKwkJZGF0YVsxXSA9IGNhY2hlW2ldICYgMHgwMGZmOworCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CisJfQorCisJd204OTkwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBpbml0aWFsaXNlIHRoZSBXTTg5OTAgZHJpdmVyCisgKiByZWdpc3RlciB0aGUgbWl4ZXIgYW5kIGRzcCBpbnRlcmZhY2VzIHdpdGggdGhlIGtlcm5lbAorICovCitzdGF0aWMgaW50IHdtODk5MF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJdTE2IHJlZzsKKwlpbnQgcmV0ID0gMDsKKworCWNvZGVjLT5uYW1lID0gIldNODk5MCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGU7CisJY29kZWMtPndyaXRlID0gd204OTkwX3dyaXRlOworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODk5MF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gJndtODk5MF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSAyOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204OTkwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204OTkwX3JlZywgc2l6ZW9mKHdtODk5MF9yZWcpLCBHRlBfS0VSTkVMKTsKKworCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJd204OTkwX3Jlc2V0KGNvZGVjKTsKKworCS8qIHJlZ2lzdGVyIHBjbXMgKi8KKwlyZXQgPSBzbmRfc29jX25ld19wY21zKHNvY2RldiwgU05EUlZfREVGQVVMVF9JRFgxLCBTTkRSVl9ERUZBVUxUX1NUUjEpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAid204OTkwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogY2hhcmdlIG91dHB1dCBjYXBzICovCisJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfT0ZGOworCXdtODk5MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzQpOworCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV80LCByZWcgfCBXTTg5OTBfQUxSQ0dQSU8xKTsKKworCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0dQSU8xX0dQSU8yKSAmCisJCX5XTTg5OTBfR1BJTzFfU0VMX01BU0s7CisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfR1BJTzFfR1BJTzIsIHJlZyB8IDEpOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yKTsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyB8IFdNODk5MF9PUENMS19FTkEpOworCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfTEVGVF9PVVRQVVRfVk9MVU1FLCAweDUwIHwgKDE8PDgpKTsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9SSUdIVF9PVVRQVVRfVk9MVU1FLCAweDUwIHwgKDE8PDgpKTsKKworCXdtODk5MF9hZGRfY29udHJvbHMoY29kZWMpOworCXdtODk5MF9hZGRfd2lkZ2V0cyhjb2RlYyk7CisJcmV0ID0gc25kX3NvY19yZWdpc3Rlcl9jYXJkKHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ3bTg5OTA6IGZhaWxlZCB0byByZWdpc3RlciBjYXJkXG4iKTsKKwkJZ290byBjYXJkX2VycjsKKwl9CisJcmV0dXJuIHJldDsKKworY2FyZF9lcnI6CisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworcGNtX2VycjoKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBJZiB0aGUgaTJjIGxheWVyIHdlcmVuJ3Qgc28gYnJva2VuLCB3ZSBjb3VsZCBwYXNzIHRoaXMga2luZCBvZiBkYXRhCisgICBhcm91bmQgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKndtODk5MF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKy8qCisgKiBXTTg5MSAyIHdpcmUgYWRkcmVzcyBpcyBkZXRlcm1pbmVkIGJ5IEdQSU81CisgKiBzdGF0ZSBkdXJpbmcgcG93ZXJ1cC4KKyAqICAgIGxvdyAgPSAweDM0CisgKiAgICBoaWdoID0gMHgzNgorICovCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg5OTBfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKK3N0YXRpYyBpbnQgd204OTkwX2NvZGVjX3Byb2JlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgaW50IGFkZHIsIGludCBraW5kKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gd204OTkwX3NvY2RldjsKKwlzdHJ1Y3Qgd204OTkwX3NldHVwX2RhdGEgKnNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGkyY19jbGllbnQgKmkyYzsKKwlpbnQgcmV0OworCisJaWYgKGFkZHIgIT0gc2V0dXAtPmkyY19hZGRyZXNzKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNsaWVudF90ZW1wbGF0ZS5hZGFwdGVyID0gYWRhcDsKKwljbGllbnRfdGVtcGxhdGUuYWRkciA9IGFkZHI7CisKKwlpMmMgPSAga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHdtODk5MF9pbml0KHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg5OTBcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOworCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCWtmcmVlKGNsaWVudCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgd204OTkwX2NvZGVjX3Byb2JlKTsKK30KKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHdtODk5MF9pMmNfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gIldNODk5MCBJMkMgQ29kZWMiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwl9LAorCS5hdHRhY2hfYWRhcHRlciA9IHdtODk5MF9pMmNfYXR0YWNoLAorCS5kZXRhY2hfY2xpZW50ID0gIHdtODk5MF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiV004OTkwIiwKKwkuZHJpdmVyID0gJndtODk5MF9pMmNfZHJpdmVyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgaW50IHdtODk5MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHdtODk5MF9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJc3RydWN0IHdtODk5MF9wcml2ICp3bTg5OTA7CisJaW50IHJldCA9IDA7CisKKwlwcl9pbmZvKCJXTTg5OTAgQXVkaW8gQ29kZWMgJXNcbiIsIFdNODk5MF9WRVJTSU9OKTsKKworCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl3bTg5OTAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgd204OTkwX3ByaXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAod204OTkwID09IE5VTEwpIHsKKwkJa2ZyZWUoY29kZWMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwljb2RlYy0+cHJpdmF0ZV9kYXRhID0gd204OTkwOworCXNvY2Rldi0+Y29kZWMgPSBjb2RlYzsKKwltdXRleF9pbml0KCZjb2RlYy0+bXV0ZXgpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKKwlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0aHMpOworCXdtODk5MF9zb2NkZXYgPSBzb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgeworCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOworCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdClpMmNfbWFzdGVyX3NlbmQ7CisJCXJldCA9IGkyY19hZGRfZHJpdmVyKCZ3bTg5OTBfaTJjX2RyaXZlcik7CisJCWlmIChyZXQgIT0gMCkKKwkJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgYWRkIGkyYyBkcml2ZXIiKTsKKwl9CisjZWxzZQorCQkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgd204OTkwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQorCQl3bTg5OTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJndtODk5MF9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjLT5wcml2YXRlX2RhdGEpOworCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg5OTAgPSB7CisJLnByb2JlID0Jd204OTkwX3Byb2JlLAorCS5yZW1vdmUgPQl3bTg5OTBfcmVtb3ZlLAorCS5zdXNwZW5kID0Jd204OTkwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXdtODk5MF9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl93bTg5OTApOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgV004OTkwIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTGlhbSBHaXJkd29vZCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5OTAuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJlYTU3NAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmgKQEAgLTAsMCArMSw4MzIgQEAKKy8qCisgKiB3bTg5OTAuaCAgLS0gIGF1ZGlvIGRyaXZlciBmb3IgV004OTkwCisgKgorICogQ29weXJpZ2h0IDIwMDcgV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqIEF1dGhvcjogR3JhZW1lIEdyZWdvcnkKKyAqICAgICAgICAgZ3JhZW1lLmdyZWdvcnlAd29sZnNvbm1pY3JvLmNvbSBvciBsaW51eEB3b2xmc29ubWljcm8uY29tCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX19XTTg5OTBSRUdJU1RFUkRFRlNfSF9fCisjZGVmaW5lIF9fV004OTkwUkVHSVNURVJERUZTX0hfXworCisvKgorICogUmVnaXN0ZXIgdmFsdWVzLgorICovCisjZGVmaW5lIFdNODk5MF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMgICAgICAgICAgICAgICAweDAzCisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMSAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMiAgICAgICAgICAgICAgICAweDA1CisjZGVmaW5lIFdNODk5MF9DTE9DS0lOR18xICAgICAgICAgICAgICAgICAgICAgICAweDA2CisjZGVmaW5lIFdNODk5MF9DTE9DS0lOR18yICAgICAgICAgICAgICAgICAgICAgICAweDA3CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMyAgICAgICAgICAgICAgICAweDA4CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfNCAgICAgICAgICAgICAgICAweDA5CisjZGVmaW5lIFdNODk5MF9EQUNfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAweDBBCisjZGVmaW5lIFdNODk5MF9MRUZUX0RBQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgICAweDBCCisjZGVmaW5lIFdNODk5MF9SSUdIVF9EQUNfRElHSVRBTF9WT0xVTUUgICAgICAgICAweDBDCisjZGVmaW5lIFdNODk5MF9ESUdJVEFMX1NJREVfVE9ORSAgICAgICAgICAgICAgICAweDBECisjZGVmaW5lIFdNODk5MF9BRENfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAweDBFCisjZGVmaW5lIFdNODk5MF9MRUZUX0FEQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgICAweDBGCisjZGVmaW5lIFdNODk5MF9SSUdIVF9BRENfRElHSVRBTF9WT0xVTUUgICAgICAgICAweDEwCisjZGVmaW5lIFdNODk5MF9HUElPX0NUUkxfMSAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFdNODk5MF9HUElPMV9HUElPMiAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFdNODk5MF9HUElPM19HUElPNCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFdNODk5MF9HUElPNV9HUElPNiAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFdNODk5MF9HUElPQ1RSTF8yICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFdNODk5MF9HUElPX1BPTCAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSAgICAgICAweDE4CisjZGVmaW5lIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSAgICAgICAweDE5CisjZGVmaW5lIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUgICAgICAweDFBCisjZGVmaW5lIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUgICAgICAweDFCCisjZGVmaW5lIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUgICAgICAgICAgICAgICAweDFDCisjZGVmaW5lIFdNODk5MF9SSUdIVF9PVVRQVVRfVk9MVU1FICAgICAgICAgICAgICAweDFECisjZGVmaW5lIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FICAgICAgICAgICAgICAweDFFCisjZGVmaW5lIFdNODk5MF9PVVQzXzRfVk9MVU1FICAgICAgICAgICAgICAgICAgICAweDFGCisjZGVmaW5lIFdNODk5MF9MRUZUX09QR0FfVk9MVU1FICAgICAgICAgICAgICAgICAweDIwCisjZGVmaW5lIFdNODk5MF9SSUdIVF9PUEdBX1ZPTFVNRSAgICAgICAgICAgICAgICAweDIxCisjZGVmaW5lIFdNODk5MF9TUEVBS0VSX1ZPTFVNRSAgICAgICAgICAgICAgICAgICAweDIyCisjZGVmaW5lIFdNODk5MF9DTEFTU0QxICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzCisjZGVmaW5lIFdNODk5MF9DTEFTU0QzICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjEgICAgICAgICAgICAgICAgICAgICAweDI3CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjIgICAgICAgICAgICAgICAgICAgICAweDI4CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjMgICAgICAgICAgICAgICAgICAgICAweDI5CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjQgICAgICAgICAgICAgICAgICAgICAweDJBCisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjUgICAgICAgICAgICAgICAgICAgICAweDJCCisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjYgICAgICAgICAgICAgICAgICAgICAweDJDCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIxICAgICAgICAgICAgICAgICAgICAweDJECisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIyICAgICAgICAgICAgICAgICAgICAweDJFCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIzICAgICAgICAgICAgICAgICAgICAweDJGCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI0ICAgICAgICAgICAgICAgICAgICAweDMwCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI1ICAgICAgICAgICAgICAgICAgICAweDMxCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI2ICAgICAgICAgICAgICAgICAgICAweDMyCisjZGVmaW5lIFdNODk5MF9PVVQzXzRfTUlYRVIgICAgICAgICAgICAgICAgICAgICAweDMzCisjZGVmaW5lIFdNODk5MF9MSU5FX01JWEVSMSAgICAgICAgICAgICAgICAgICAgICAweDM0CisjZGVmaW5lIFdNODk5MF9MSU5FX01JWEVSMiAgICAgICAgICAgICAgICAgICAgICAweDM1CisjZGVmaW5lIFdNODk5MF9TUEVBS0VSX01JWEVSICAgICAgICAgICAgICAgICAgICAweDM2CisjZGVmaW5lIFdNODk5MF9BRERJVElPTkFMX0NPTlRST0wgICAgICAgICAgICAgICAweDM3CisjZGVmaW5lIFdNODk5MF9BTlRJUE9QMSAgICAgICAgICAgICAgICAgICAgICAgICAweDM4CisjZGVmaW5lIFdNODk5MF9BTlRJUE9QMiAgICAgICAgICAgICAgICAgICAgICAgICAweDM5CisjZGVmaW5lIFdNODk5MF9NSUNCSUFTICAgICAgICAgICAgICAgICAgICAgICAgICAweDNBCisjZGVmaW5lIFdNODk5MF9QTEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNDCisjZGVmaW5lIFdNODk5MF9QTEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNECisjZGVmaW5lIFdNODk5MF9QTEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFCisjZGVmaW5lIFdNODk5MF9JTlREUklWQklUUwkJCTB4M0YKKworI2RlZmluZSBXTTg5OTBfUkVHSVNURVJfQ09VTlQgICAgICAgICAgICAgICAgICAgNjAKKyNkZWZpbmUgV004OTkwX01BWF9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgIDB4M0YKKworLyoKKyAqIEZpZWxkIERlZmluaXRpb25zLgorICovCisKKy8qCisgKiBSMCAoMHgwMCkgLSBSZXNldAorICovCisjZGVmaW5lIFdNODk5MF9TV19SRVNFVF9DSElQX0lEX01BU0sgICAgICAgICAgICAweEZGRkYgIC8qIFNXX1JFU0VUX0NISVBfSUQgKi8KKworLyoKKyAqIFIxICgweDAxKSAtIFBvd2VyIE1hbmFnZW1lbnQgKDEpCisgKi8KKyNkZWZpbmUgV004OTkwX1NQS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogU1BLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfU1BLX0VOQV9CSVQJCQkxMgorI2RlZmluZSBXTTg5OTBfT1VUM19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBPVVQzX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1VUM19FTkFfQklUCQkJMTEKKyNkZWZpbmUgV004OTkwX09VVDRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogT1VUNF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX09VVDRfRU5BX0JJVAkJCTEwCisjZGVmaW5lIFdNODk5MF9MT1VUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIExPVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT1VUX0VOQV9CSVQJCQk5CisjZGVmaW5lIFdNODk5MF9ST1VUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFJPVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9ST1VUX0VOQV9CSVQJCQk4CisjZGVmaW5lIFdNODk5MF9NSUNCSUFTX0VOQSAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIE1JQ0JJQVNfRU5BICovCisjZGVmaW5lIFdNODk5MF9NSUNCSUFTX0VOQV9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9WTUlEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDYgIC8qIFZNSURfTU9ERSAtIFsyOjFdICovCisjZGVmaW5lIFdNODk5MF9WUkVGX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFZSRUZfRU5BICovCisjZGVmaW5lIFdNODk5MF9WUkVGX0VOQV9CSVQJCQkwCisKKy8qCisgKiBSMiAoMHgwMikgLSBQb3dlciBNYW5hZ2VtZW50ICgyKQorICovCisjZGVmaW5lIFdNODk5MF9QTExfRU5BICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIFBMTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9FTkFfQklUCQkJMTUKKyNkZWZpbmUgV004OTkwX1RTSFVUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogVFNIVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9UU0hVVF9FTkFfQklUCQkJMTQKKyNkZWZpbmUgV004OTkwX1RTSFVUX09QRElTICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogVFNIVVRfT1BESVMgKi8KKyNkZWZpbmUgV004OTkwX1RTSFVUX09QRElTX0JJVAkJCTEzCisjZGVmaW5lIFdNODk5MF9PUENMS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIE9QQ0xLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1BDTEtfRU5BX0JJVAkJCTExCisjZGVmaW5lIFdNODk5MF9BSU5MX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIEFJTkxfRU5BICovCisjZGVmaW5lIFdNODk5MF9BSU5MX0VOQV9CSVQJCQk5CisjZGVmaW5lIFdNODk5MF9BSU5SX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFJTlJfRU5BICovCisjZGVmaW5lIFdNODk5MF9BSU5SX0VOQV9CSVQJCQk4CisjZGVmaW5lIFdNODk5MF9MSU4zNF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExJTjM0X0VOQSAqLworI2RlZmluZSBXTTg5OTBfTElOMzRfRU5BX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xJTjEyX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTElOMTJfRU5BICovCisjZGVmaW5lIFdNODk5MF9MSU4xMl9FTkFfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUklOMzRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBSSU4zNF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JJTjM0X0VOQV9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9SSU4xMl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJJTjEyX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUklOMTJfRU5BX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0FEQ0xfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xfRU5BX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0FEQ1JfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogQURDUl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfRU5BX0JJVAkJCTAKKworLyoKKyAqIFIzICgweDAzKSAtIFBvd2VyIE1hbmFnZW1lbnQgKDMpCisgKi8KKyNkZWZpbmUgV004OTkwX0xPTl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogTE9OX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTE9OX0VOQV9CSVQJCQkxMworI2RlZmluZSBXTTg5OTBfTE9QX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBMT1BfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT1BfRU5BX0JJVAkJCTEyCisjZGVmaW5lIFdNODk5MF9ST05fRU5BICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIFJPTl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JPTl9FTkFfQklUCQkJMTEKKyNkZWZpbmUgV004OTkwX1JPUF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogUk9QX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9QX0VOQV9CSVQJCQkxMAorI2RlZmluZSBXTTg5OTBfTE9QR0FfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMT1BHQV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xPUEdBX0VOQV9CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9ST1BHQV9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFJPUEdBX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9QR0FfRU5BX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xPTUlYX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTE9NSVhfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT01JWF9FTkFfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfUk9NSVhfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBST01JWF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JPTUlYX0VOQV9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9EQUNMX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERBQ0xfRU5BICovCisjZGVmaW5lIFdNODk5MF9EQUNMX0VOQV9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9EQUNSX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERBQ1JfRU5BICovCisjZGVmaW5lIFdNODk5MF9EQUNSX0VOQV9CSVQJCQkwCisKKy8qCisgKiBSNCAoMHgwNCkgLSBBdWRpbyBJbnRlcmZhY2UgKDEpCisgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ0xfU1JDICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogQUlGQURDTF9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ1JfU1JDICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogQUlGQURDUl9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ19URE0gICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQUlGQURDX1RETSAqLworI2RlZmluZSBXTTg5OTBfQUlGQURDX1RETV9DSEFOICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBBSUZBRENfVERNX0NIQU4gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9CQ0xLX0lOViAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogQUlGX0JDTEtfSU5WICovCisjZGVmaW5lIFdNODk5MF9BSUZfTFJDTEtfSU5WICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEFJRl9MUkNMS19JTlYgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9XTF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MCAgLyogQUlGX1dMIC0gWzY6NV0gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9XTF8xNkJJVFMJCQkoMCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQUlGX1dMXzIwQklUUwkJCSgxIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BSUZfV0xfMjRCSVRTCQkJKDIgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FJRl9XTF8zMkJJVFMJCQkoMyA8PCA1KQorI2RlZmluZSBXTTg5OTBfQUlGX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDE4ICAvKiBBSUZfRk1UIC0gWzQ6M10gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9UTUZfUklHSFRKCQkJKDAgPDwgMykKKyNkZWZpbmUgV004OTkwX0FJRl9UTUZfTEVGVEoJCQkoMSA8PCAzKQorI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9JMlMJCQkoMiA8PCAzKQorI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9EU1AJCQkoMyA8PCAzKQorCisvKgorICogUjUgKDB4MDUpIC0gQXVkaW8gSW50ZXJmYWNlICgyKQorICovCisjZGVmaW5lIFdNODk5MF9EQUNMX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIERBQ0xfU1JDICovCisjZGVmaW5lIFdNODk5MF9EQUNSX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIERBQ1JfU1JDICovCisjZGVmaW5lIFdNODk5MF9BSUZEQUNfVERNICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRkRBQ19URE0gKi8KKyNkZWZpbmUgV004OTkwX0FJRkRBQ19URE1fQ0hBTiAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogQUlGREFDX1RETV9DSEFOICovCisjZGVmaW5lIFdNODk5MF9EQUNfQk9PU1RfTUFTSyAgICAgICAgICAgICAgICAgICAweDBDMDAgIC8qIERBQ19CT09TVCAqLworI2RlZmluZSBXTTg5OTBfREFDX0NPTVAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBEQUNfQ09NUCAqLworI2RlZmluZSBXTTg5OTBfREFDX0NPTVBNT0RFICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBEQUNfQ09NUE1PREUgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19DT01QICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogQURDX0NPTVAgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19DT01QTU9ERSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDX0NPTVBNT0RFICovCisjZGVmaW5lIFdNODk5MF9MT09QQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIExPT1BCQUNLICovCisKKy8qCisgKiBSNiAoMHgwNikgLSBDbG9ja2luZyAoMSkKKyAqLworI2RlZmluZSBXTTg5OTBfVE9DTEtfUkFURSAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBUT0NMS19SQVRFICovCisjZGVmaW5lIFdNODk5MF9UT0NMS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIFRPQ0xLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1BDTEtESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgxRTAwICAvKiBPUENMS0RJViAtIFsxMjo5XSAqLworI2RlZmluZSBXTTg5OTBfRENMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMUMwICAvKiBEQ0xLRElWIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0JDTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAxRSAgLyogQkNMS19ESVYgLSBbNDoxXSAqLworI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMQkJCSgweDAgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzFfNQkJCSgweDEgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzIJCQkoMHgyIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8zCQkJKDB4MyA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNAkJCSgweDQgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzVfNQkJCSgweDUgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzYJCQkoMHg2IDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl84CQkJKDB4NyA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMTEJCQkoMHg4IDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8xMgkJCSgweDkgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzE2CQkJKDB4QSA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMjIJCQkoMHhCIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8yNAkJCSgweEMgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzMyCQkJKDB4RCA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNDQJCQkoMHhFIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl80OAkJCSgweEYgPDwgMSkKKworLyoKKyAqIFI3ICgweDA3KSAtIENsb2NraW5nICgyKQorICovCisjZGVmaW5lIFdNODk5MF9NQ0xLX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIE1DTEtfU1JDICovCisjZGVmaW5lIFdNODk5MF9TWVNDTEtfU1JDICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIFNZU0NMS19TUkMgKi8KKyNkZWZpbmUgV004OTkwX0NMS19GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQ0xLX0ZPUkNFICovCisjZGVmaW5lIFdNODk5MF9NQ0xLX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAweDE4MDAgIC8qIE1DTEtfRElWIC0gWzEyOjExXSAqLworI2RlZmluZSBXTTg5OTBfTUNMS19ESVZfMQkJCSgwIDw8IDExKQorI2RlZmluZSBXTTg5OTBfTUNMS19ESVZfMgkJCSgyIDw8IDExKQorI2RlZmluZSBXTTg5OTBfTUNMS19JTlYgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBNQ0xLX0lOViAqLworI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEUwICAvKiBBRENfQ0xLRElWICovCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzEJCQkoMCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl8xXzUJCQkoMSA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl8yCQkJKDIgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FEQ19DTEtESVZfMwkJCSgzIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzQJCQkoNCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl81XzUJCQkoNSA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl82CQkJKDYgPDwgNSkKKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAxQyAgLyogREFDX0NMS0RJViAtIFs0OjJdICovCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzEJCQkoMCA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl8xXzUJCQkoMSA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl8yCQkJKDIgPDwgMikKKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfMwkJCSgzIDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzQJCQkoNCA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl81XzUJCQkoNSA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl82CQkJKDYgPDwgMikKKworLyoKKyAqIFI4ICgweDA4KSAtIEF1ZGlvIEludGVyZmFjZSAoMykKKyAqLworI2RlZmluZSBXTTg5OTBfQUlGX01TVFIxICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBBSUZfTVNUUjEgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9NU1RSMiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogQUlGX01TVFIyICovCisjZGVmaW5lIFdNODk5MF9BSUZfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRl9TRUwgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xSQ19ESVIgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogQURDTFJDX0RJUiAqLworI2RlZmluZSBXTTg5OTBfQURDTFJDX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwN0ZGICAvKiBBRENMUkNfUkFURSAqLworCisvKgorICogUjkgKDB4MDkpIC0gQXVkaW8gSW50ZXJmYWNlICg0KQorICovCisjZGVmaW5lIFdNODk5MF9BTFJDR1BJTzEgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIEFMUkNHUElPMSAqLworI2RlZmluZSBXTTg5OTBfQUxSQ0JHUElPNiAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBBTFJDQkdQSU82ICovCisjZGVmaW5lIFdNODk5MF9BSUZfVFJJUyAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRl9UUklTICovCisjZGVmaW5lIFdNODk5MF9EQUNMUkNfRElSICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIERBQ0xSQ19ESVIgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xSQ19SQVRFX01BU0sgICAgICAgICAgICAgICAgIDB4MDdGRiAgLyogREFDTFJDX1JBVEUgKi8KKworLyoKKyAqIFIxMCAoMHgwQSkgLSBEQUMgQ1RSTAorICovCisjZGVmaW5lIFdNODk5MF9BSUZfTFJDTEtSQVRFICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIEFJRl9MUkNMS1JBVEUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NT05PICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogREFDX01PTk8gKi8KKyNkZWZpbmUgV004OTkwX0RBQ19TQl9GSUxUICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogREFDX1NCX0ZJTFQgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NVVRFUkFURSAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogREFDX01VVEVSQVRFICovCisjZGVmaW5lIFdNODk5MF9EQUNfTVVURU1PREUgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIERBQ19NVVRFTU9ERSAqLworI2RlZmluZSBXTTg5OTBfREVFTVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwICAvKiBERUVNUCAtIFs1OjRdICovCisjZGVmaW5lIFdNODk5MF9EQUNfTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIERBQ19NVVRFICovCisjZGVmaW5lIFdNODk5MF9EQUNMX0RBVElOViAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERBQ0xfREFUSU5WICovCisjZGVmaW5lIFdNODk5MF9EQUNSX0RBVElOViAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERBQ1JfREFUSU5WICovCisKKy8qCisgKiBSMTEgKDB4MEIpIC0gTGVmdCBEQUMgRGlnaXRhbCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfREFDX1ZVICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBEQUNfVlUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xfVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDBGRiAgLyogREFDTF9WT0wgLSBbNzowXSAqLworI2RlZmluZSBXTTg5OTBfREFDTF9WT0xfU0hJRlQJCQkwCisvKgorICogUjEyICgweDBDKSAtIFJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9EQUNfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIERBQ19WVSAqLworI2RlZmluZSBXTTg5OTBfREFDUl9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBEQUNSX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9EQUNSX1ZPTF9TSElGVAkJCTAKKy8qCisgKiBSMTMgKDB4MEQpIC0gRGlnaXRhbCBTaWRlIFRvbmUKKyAqLworI2RlZmluZSBXTTg5OTBfQURDTF9EQUNfU1ZPTF9NQVNLICAgICAgICAgICAgICAgMHgwRiAgLyogQURDTF9EQUNfU1ZPTCAqLworI2RlZmluZSBXTTg5OTBfQURDTF9EQUNfU1ZPTF9TSElGVAkJOQorI2RlZmluZSBXTTg5OTBfQURDUl9EQUNfU1ZPTF9NQVNLICAgICAgICAgICAgICAgMHgwRiAgLyogQURDUl9EQUNfU1ZPTCAqLworI2RlZmluZSBXTTg5OTBfQURDUl9EQUNfU1ZPTF9TSElGVAkJNQorI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ0xfTUFTSyAgICAgICAgICAgICAgICAgMHgwMyAgLyogQURDX1RPX0RBQ0wgLSBbMzoyXSAqLworI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ0xfU0hJRlQJCTIKKyNkZWZpbmUgV004OTkwX0FEQ19UT19EQUNSX01BU0sgICAgICAgICAgICAgICAgIDB4MDMgIC8qIEFEQ19UT19EQUNSIC0gWzE6MF0gKi8KKyNkZWZpbmUgV004OTkwX0FEQ19UT19EQUNSX1NISUZUCQkwCisKKy8qCisgKiBSMTQgKDB4MEUpIC0gQURDIENUUkwKKyAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9FTkEgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBBRENfSFBGX0VOQSAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9FTkFfQklUCQkJOAorI2RlZmluZSBXTTg5OTBfQURDX0hQRl9DVVRfTUFTSyAgICAgICAgICAgICAgICAgMHgwMyAgLyogQURDX0hQRl9DVVQgLSBbNjo1XSAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9DVVRfU0hJRlQJCTUKKyNkZWZpbmUgV004OTkwX0FEQ0xfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDTF9EQVRJTlYgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xfREFUSU5WX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0FEQ1JfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogQURDUl9EQVRJTlYgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfREFUSU5WX0JJVAkJCTAKKworLyoKKyAqIFIxNSAoMHgwRikgLSBMZWZ0IEFEQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9BRENfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFEQ19WVSAqLworI2RlZmluZSBXTTg5OTBfQURDTF9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBBRENMX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9BRENMX1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIxNiAoMHgxMCkgLSBSaWdodCBBREMgRGlnaXRhbCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfQURDX1ZVICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBBRENfVlUgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDBGRiAgLyogQURDUl9WT0wgLSBbNzowXSAqLworI2RlZmluZSBXTTg5OTBfQURDUl9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMTggKDB4MTIpIC0gR1BJTyBDVFJMIDEKKyAqLworI2RlZmluZSBXTTg5OTBfSVJRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBJUlEgKi8KKyNkZWZpbmUgV004OTkwX1RFTVBPSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogVEVNUE9LICovCisjZGVmaW5lIFdNODk5MF9NSUNTSFJUICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1JQ1NIUlQgKi8KKyNkZWZpbmUgV004OTkwX01JQ0RFVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTUlDREVUICovCisjZGVmaW5lIFdNODk5MF9QTExfTENLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFBMTF9MQ0sgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogR1BJOF9TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJN19TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzZfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIEdQSU81X1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBHUElPNF9TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogR1BJTzNfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIEdQSU8yX1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUElPMV9TVEFUVVMgKi8KKworLyoKKyAqIFIxOSAoMHgxMykgLSBHUElPMSAmIEdQSU8yCisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzJfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzJfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPMl9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU8yX1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU8yX1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU8yX1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPMV9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPMV9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU8xX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzFfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzFfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzFfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMCAoMHgxNCkgLSBHUElPMyAmIEdQSU80CisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU80X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzRfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPNF9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU80X1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU80X1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU80X1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPM19ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPM19JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU8zX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzNfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzNfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzNfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMSAoMHgxNSkgLSBHUElPNSAmIEdQSU82CisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzZfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzZfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPNl9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU82X1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU82X1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU82X1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzVfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPNV9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU81X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzVfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzVfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzVfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMiAoMHgxNikgLSBHUElPQ1RSTCAyCisgKi8KKyNkZWZpbmUgV004OTkwX1JEXzNXX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogUkRfM1dfRU5BICovCisjZGVmaW5lIFdNODk5MF9NT0RFXzNXNFcgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIE1PREVfM1c0VyAqLworI2RlZmluZSBXTTg5OTBfVEVNUE9LX0lSUV9FTkEgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBURU1QT0tfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTUlDU0hSVF9JUlFfRU5BICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBNSUNTSFJUX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX01JQ0RFVF9JUlFfRU5BICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTUlDREVUX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9MQ0tfSVJRX0VOQSAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUExMX0xDS19JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk4X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEdQSThfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJOF9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBHUEk4X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJOF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogR1BJN19ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk3X0lSUV9FTkEgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIEdQSTdfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJN19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUEk3X0VOQSAqLworCisvKgorICogUjIzICgweDE3KSAtIEdQSU9fUE9MCisgKi8KKyNkZWZpbmUgV004OTkwX0lSUV9JTlYgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogSVJRX0lOViAqLworI2RlZmluZSBXTTg5OTBfVEVNUE9LX1BPTCAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBURU1QT0tfUE9MICovCisjZGVmaW5lIFdNODk5MF9NSUNTSFJUX1BPTCAgICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1JQ1NIUlRfUE9MICovCisjZGVmaW5lIFdNODk5MF9NSUNERVRfUE9MICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIE1JQ0RFVF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9MQ0tfUE9MICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUExMX0xDS19QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfUE9MICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogR1BJOF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfUE9MICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJN19QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzZfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIEdQSU81X1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBHUElPNF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogR1BJTzNfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIEdQSU8yX1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUElPMV9QT0wgKi8KKworLyoKKyAqIFIyNCAoMHgxOCkgLSBMZWZ0IExpbmUgSW5wdXQgMSYyIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9JUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIElQVlUgKi8KKyNkZWZpbmUgV004OTkwX0xJMTJNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTEkxMk1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xJMTJNVVRFX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xJMTJaQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTEkxMlpDICovCisjZGVmaW5lIFdNODk5MF9MSTEyWkNfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTElOMTJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFGICAvKiBMSU4xMlZPTCAtIFs0OjBdICovCisjZGVmaW5lIFdNODk5MF9MSU4xMlZPTF9TSElGVAkJCTAKKy8qCisgKiBSMjUgKDB4MTkpIC0gTGVmdCBMaW5lIElucHV0IDMmNCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfSVBWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBJUFZVICovCisjZGVmaW5lIFdNODk5MF9MSTM0TVVURSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExJMzRNVVRFICovCisjZGVmaW5lIFdNODk5MF9MSTM0TVVURV9CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9MSTM0WkMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExJMzRaQyAqLworI2RlZmluZSBXTTg5OTBfTEkzNFpDX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xJTjM0Vk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAxRiAgLyogTElOMzRWT0wgLSBbNDowXSAqLworI2RlZmluZSBXTTg5OTBfTElOMzRWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMjYgKDB4MUEpIC0gUmlnaHQgTGluZSBJbnB1dCAxJjIgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0lQVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogSVBWVSAqLworI2RlZmluZSBXTTg5OTBfUkkxMk1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBSSTEyTVVURSAqLworI2RlZmluZSBXTTg5OTBfUkkxMk1VVEVfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUkkxMlpDICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBSSTEyWkMgKi8KKyNkZWZpbmUgV004OTkwX1JJMTJaQ19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9SSU4xMlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMUYgIC8qIFJJTjEyVk9MIC0gWzQ6MF0gKi8KKyNkZWZpbmUgV004OTkwX1JJTjEyVk9MX1NISUZUCQkJMAorCisvKgorICogUjI3ICgweDFCKSAtIFJpZ2h0IExpbmUgSW5wdXQgMyY0IFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9JUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIElQVlUgKi8KKyNkZWZpbmUgV004OTkwX1JJMzRNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUkkzNE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX1JJMzRNVVRFX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JJMzRaQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUkkzNFpDICovCisjZGVmaW5lIFdNODk5MF9SSTM0WkNfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUklOMzRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFGICAvKiBSSU4zNFZPTCAtIFs0OjBdICovCisjZGVmaW5lIFdNODk5MF9SSU4zNFZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIyOCAoMHgxQykgLSBMZWZ0IE91dHB1dCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9MT1pDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExPWkMgKi8KKyNkZWZpbmUgV004OTkwX0xPWkNfQklUCQkJCTcKKyNkZWZpbmUgV004OTkwX0xPVVRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDA3RiAgLyogTE9VVFZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9MT1VUVk9MX1NISUZUCQkJMAorLyoKKyAqIFIyOSAoMHgxRCkgLSBSaWdodCBPdXRwdXQgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09QVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogT1BWVSAqLworI2RlZmluZSBXTTg5OTBfUk9aQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBST1pDICovCisjZGVmaW5lIFdNODk5MF9ST1pDX0JJVAkJCQk3CisjZGVmaW5lIFdNODk5MF9ST1VUVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwN0YgIC8qIFJPVVRWT0wgLSBbNjowXSAqLworI2RlZmluZSBXTTg5OTBfUk9VVFZPTF9TSElGVAkJCTAKKy8qCisgKiBSMzAgKDB4MUUpIC0gTGluZSBPdXRwdXRzIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9MT05NVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExPTk1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xPTk1VVEVfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTE9QTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMT1BNVVRFICovCisjZGVmaW5lIFdNODk5MF9MT1BNVVRFX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX0xPQVRUTiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTE9BVFROICovCisjZGVmaW5lIFdNODk5MF9MT0FUVE5fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUk9OTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBST05NVVRFICovCisjZGVmaW5lIFdNODk5MF9ST05NVVRFX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX1JPUE1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUk9QTVVURSAqLworI2RlZmluZSBXTTg5OTBfUk9QTVVURV9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9ST0FUVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJPQVRUTiAqLworI2RlZmluZSBXTTg5OTBfUk9BVFROX0JJVAkJCTAKKworLyoKKyAqIFIzMSAoMHgxRikgLSBPdXQzLzQgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09VVDNNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogT1VUM01VVEUgKi8KKyNkZWZpbmUgV004OTkwX09VVDNNVVRFX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX09VVDNBVFROICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogT1VUM0FUVE4gKi8KKyNkZWZpbmUgV004OTkwX09VVDNBVFROX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX09VVDRNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogT1VUNE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX09VVDRNVVRFX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX09VVDRBVFROICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogT1VUNEFUVE4gKi8KKyNkZWZpbmUgV004OTkwX09VVDRBVFROX0JJVAkJCTAKKworLyoKKyAqIFIzMiAoMHgyMCkgLSBMZWZ0IE9QR0EgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09QVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogT1BWVSAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FaQyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMT1BHQVpDICovCisjZGVmaW5lIFdNODk5MF9MT1BHQVpDX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xPUEdBVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDA3RiAgLyogTE9QR0FWT0wgLSBbNjowXSAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMzMgKDB4MjEpIC0gUmlnaHQgT1BHQSBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9ST1BHQVpDICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJPUEdBWkMgKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBWkNfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUk9QR0FWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDdGICAvKiBST1BHQVZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9ST1BHQVZPTF9TSElGVAkJCTAKKy8qCisgKiBSMzQgKDB4MjIpIC0gU3BlYWtlciBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfU1BLVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzICAvKiBTUEtWT0wgLSBbMTowXSAqLworI2RlZmluZSBXTTg5OTBfU1BLVk9MX1NISUZUCQkJMAorCisvKgorICogUjM1ICgweDIzKSAtIENsYXNzRDEKKyAqLworI2RlZmluZSBXTTg5OTBfQ0RNT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBDRE1PREUgKi8KKyNkZWZpbmUgV004OTkwX0NETU9ERV9CSVQJCQk4CisKKy8qCisgKiBSMzcgKDB4MjUpIC0gQ2xhc3NEMworICovCisjZGVmaW5lIFdNODk5MF9EQ0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIERDR0FJTiAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9EQ0dBSU5fU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9BQ0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIEFDR0FJTiAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9BQ0dBSU5fU0hJRlQJCQkwCisvKgorICogUjM5ICgweDI3KSAtIElucHV0IE1peGVyMQorICovCisjZGVmaW5lIFdNODk5MF9BSU5MTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMEMgIC8qIEFJTkxNT0RFIC0gWzM6Ml0gKi8KKyNkZWZpbmUgV004OTkwX0FJTkxNT0RFX1NISUZUCQkJMgorI2RlZmluZSBXTTg5OTBfQUlOUk1PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAzICAvKiBBSU5STU9ERSAtIFsxOjBdICovCisjZGVmaW5lIFdNODk5MF9BSU5STU9ERV9TSElGVAkJCTAKKworLyoKKyAqIFI0MCAoMHgyOCkgLSBJbnB1dCBNaXhlcjIKKyAqLworI2RlZmluZSBXTTg5OTBfTE1QNAkJCQkweDAwODAJLyogTE1QNCAqLworI2RlZmluZSBXTTg5OTBfTE1QNF9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgNwkvKiBMTVA0ICovCisjZGVmaW5lIFdNODk5MF9MTU4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExNTjMgKi8KKyNkZWZpbmUgV004OTkwX0xNTjNfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDYgICAgICAgLyogTE1OMyAqLworI2RlZmluZSBXTTg5OTBfTE1QMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMTVAyICovCisjZGVmaW5lIFdNODk5MF9MTVAyX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICA1ICAgICAgIC8qIExNUDIgKi8KKyNkZWZpbmUgV004OTkwX0xNTjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTE1OMSAqLworI2RlZmluZSBXTTg5OTBfTE1OMV9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgNCAgICAgICAvKiBMTU4xICovCisjZGVmaW5lIFdNODk5MF9STVA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIFJNUDQgKi8KKyNkZWZpbmUgV004OTkwX1JNUDRfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDMgICAgICAgLyogUk1QNCAqLworI2RlZmluZSBXTTg5OTBfUk1OMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBSTU4zICovCisjZGVmaW5lIFdNODk5MF9STU4zX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAyICAgICAgIC8qIFJNTjMgKi8KKyNkZWZpbmUgV004OTkwX1JNUDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUk1QMiAqLworI2RlZmluZSBXTTg5OTBfUk1QMl9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAvKiBSTVAyICovCisjZGVmaW5lIFdNODk5MF9STU4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJNTjEgKi8KKyNkZWZpbmUgV004OTkwX1JNTjFfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgICAgLyogUk1OMSAqLworCisvKgorICogUjQxICgweDI5KSAtIElucHV0IE1peGVyMworICovCisjZGVmaW5lIFdNODk5MF9MMzRNTkIgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEwzNE1OQiAqLworI2RlZmluZSBXTTg5OTBfTDM0TU5CX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX0wzNE1OQlNUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTDM0TU5CU1QgKi8KKyNkZWZpbmUgV004OTkwX0wzNE1OQlNUX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0wxMk1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTDEyTU5CICovCisjZGVmaW5lIFdNODk5MF9MMTJNTkJfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTDEyTU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMMTJNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfTDEyTU5CU1RfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfTERCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3ICAvKiBMREJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTERCVk9MX1NISUZUCQkJMAorCisvKgorICogUjQyICgweDJBKSAtIElucHV0IE1peGVyNAorICovCisjZGVmaW5lIFdNODk5MF9SMzRNTkIgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFIzNE1OQiAqLworI2RlZmluZSBXTTg5OTBfUjM0TU5CX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX1IzNE1OQlNUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUjM0TU5CU1QgKi8KKyNkZWZpbmUgV004OTkwX1IzNE1OQlNUX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1IxMk1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogUjEyTU5CICovCisjZGVmaW5lIFdNODk5MF9SMTJNTkJfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfUjEyTU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBSMTJNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfUjEyTU5CU1RfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3ICAvKiBSREJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUkRCVk9MX1NISUZUCQkJMAorCisvKgorICogUjQzICgweDJCKSAtIElucHV0IE1peGVyNQorICovCisjZGVmaW5lIFdNODk5MF9MSTJCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMSTJCVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xJMkJWT0xfU0hJRlQJCQk2CisjZGVmaW5lIFdNODk5MF9MUjRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMUjRCVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0xSNEJWT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9MTDRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTDRCVk9MIC0gWzI6MF0gKi8KKyNkZWZpbmUgV004OTkwX0xMNEJWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDQgKDB4MkMpIC0gSW5wdXQgTWl4ZXI2CisgKi8KKyNkZWZpbmUgV004OTkwX1JJMkJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJJMkJWT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfUkkyQlZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX1JMNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJMNEJWT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfUkw0QlZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX1JSNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJSNEJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUlI0QlZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI0NSAoMHgyRCkgLSBPdXRwdXQgTWl4ZXIxCisgKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTFJCTE8gKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xMQkxPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTExCTE8gKi8KKyNkZWZpbmUgV004OTkwX0xMQkxPX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSSTNMTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTFJJM0xPICovCisjZGVmaW5lIFdNODk5MF9MUkkzTE9fQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTExJM0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMTEkzTE8gKi8KKyNkZWZpbmUgV004OTkwX0xMSTNMT19CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9MUjEyTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIExSMTJMTyAqLworI2RlZmluZSBXTTg5OTBfTFIxMkxPX0JJVAkJCTMKKyNkZWZpbmUgV004OTkwX0xMMTJMTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogTEwxMkxPICovCisjZGVmaW5lIFdNODk5MF9MTDEyTE9fQklUCQkJMgorI2RlZmluZSBXTTg5OTBfTERMTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBMRExPICovCisjZGVmaW5lIFdNODk5MF9MRExPX0JJVAkJCQkwCisKKy8qCisgKiBSNDYgKDB4MkUpIC0gT3V0cHV0IE1peGVyMgorICovCisjZGVmaW5lIFdNODk5MF9STEJSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJMQlJPICovCisjZGVmaW5lIFdNODk5MF9STEJST19CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9SUkJSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFJSQlJPICovCisjZGVmaW5lIFdNODk5MF9SUkJST19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9STEkzUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIFJMSTNSTyAqLworI2RlZmluZSBXTTg5OTBfUkxJM1JPX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX1JSSTNSTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogUlJJM1JPICovCisjZGVmaW5lIFdNODk5MF9SUkkzUk9fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkwxMlJPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBSTDEyUk8gKi8KKyNkZWZpbmUgV004OTkwX1JMMTJST19CSVQJCQkzCisjZGVmaW5lIFdNODk5MF9SUjEyUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIFJSMTJSTyAqLworI2RlZmluZSBXTTg5OTBfUlIxMlJPX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX1JEUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUkRSTyAqLworI2RlZmluZSBXTTg5OTBfUkRST19CSVQJCQkJMAorCisvKgorICogUjQ3ICgweDJGKSAtIE91dHB1dCBNaXhlcjMKKyAqLworI2RlZmluZSBXTTg5OTBfTExJM0xPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTExJM0xPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xMSTNMT1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSMTJMT1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExSMTJMT1ZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9MUjEyTE9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9MTDEyTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTDEyTE9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTEwxMkxPVk9MX1NISUZUCQkJMAorCisvKgorICogUjQ4ICgweDMwKSAtIE91dHB1dCBNaXhlcjQKKyAqLworI2RlZmluZSBXTTg5OTBfUlJJM1JPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUlJJM1JPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX1JSSTNST1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX1JMMTJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJMMTJST1ZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9STDEyUk9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9SUjEyUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSUjEyUk9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUlIxMlJPVk9MX1NISUZUCQkJMAorCisvKgorICogUjQ5ICgweDMxKSAtIE91dHB1dCBNaXhlcjUKKyAqLworI2RlZmluZSBXTTg5OTBfTFJJM0xPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTFJJM0xPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xSSTNMT1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSQkxPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExSQkxPVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPVk9MX1NISUZUCQkJMworI2RlZmluZSBXTTg5OTBfTExCTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTExCTE9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTExCTE9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNTAgKDB4MzIpIC0gT3V0cHV0IE1peGVyNgorICovCisjZGVmaW5lIFdNODk5MF9STEkzUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSTEkzUk9WT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfUkxJM1JPVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfUkxCUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUkxCUk9WT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfUkxCUk9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9SUkJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSUkJST1ZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9SUkJST1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI1MSAoMHgzMykgLSBPdXQzLzQgTWl4ZXIKKyAqLworI2RlZmluZSBXTTg5OTBfVlNFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgwICAvKiBWU0VMIC0gWzg6N10gKi8KKyNkZWZpbmUgV004OTkwX0xJNE8zICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTEk0TzMgKi8KKyNkZWZpbmUgV004OTkwX0xJNE8zX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX0xQR0FPMyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTFBHQU8zICovCisjZGVmaW5lIFdNODk5MF9MUEdBTzNfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkk0TzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBSSTRPNCAqLworI2RlZmluZSBXTTg5OTBfUkk0TzRfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfUlBHQU80ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSUEdBTzQgKi8KKyNkZWZpbmUgV004OTkwX1JQR0FPNF9CSVQJCQkwCisvKgorICogUjUyICgweDM0KSAtIExpbmUgTWl4ZXIxCisgKi8KKyNkZWZpbmUgV004OTkwX0xMT1BHQUxPTiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTExPUEdBTE9OICovCisjZGVmaW5lIFdNODk5MF9MTE9QR0FMT05fQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTFJPUEdBTE9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMUk9QR0FMT04gKi8KKyNkZWZpbmUgV004OTkwX0xST1BHQUxPTl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9MT1BMT04gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIExPUExPTiAqLworI2RlZmluZSBXTTg5OTBfTE9QTE9OX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0xSMTJMT1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogTFIxMkxPUCAqLworI2RlZmluZSBXTTg5OTBfTFIxMkxPUF9CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9MTDEyTE9QICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIExMMTJMT1AgKi8KKyNkZWZpbmUgV004OTkwX0xMMTJMT1BfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfTExPUEdBTE9QICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBMTE9QR0FMT1AgKi8KKyNkZWZpbmUgV004OTkwX0xMT1BHQUxPUF9CSVQJCQkwCisvKgorICogUjUzICgweDM1KSAtIExpbmUgTWl4ZXIyCisgKi8KKyNkZWZpbmUgV004OTkwX1JST1BHQVJPTiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUlJPUEdBUk9OICovCisjZGVmaW5lIFdNODk5MF9SUk9QR0FST05fQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUkxPUEdBUk9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBSTE9QR0FST04gKi8KKyNkZWZpbmUgV004OTkwX1JMT1BHQVJPTl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9ST1BST04gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJPUFJPTiAqLworI2RlZmluZSBXTTg5OTBfUk9QUk9OX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX1JMMTJST1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogUkwxMlJPUCAqLworI2RlZmluZSBXTTg5OTBfUkwxMlJPUF9CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9SUjEyUk9QICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIFJSMTJST1AgKi8KKyNkZWZpbmUgV004OTkwX1JSMTJST1BfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfUlJPUEdBUk9QICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSUk9QR0FST1AgKi8KKyNkZWZpbmUgV004OTkwX1JST1BHQVJPUF9CSVQJCQkwCisKKy8qCisgKiBSNTQgKDB4MzYpIC0gU3BlYWtlciBNaXhlcgorICovCisjZGVmaW5lIFdNODk5MF9MQjJTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExCMlNQSyAqLworI2RlZmluZSBXTTg5OTBfTEIyU1BLX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JCMlNQSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUkIyU1BLICovCisjZGVmaW5lIFdNODk5MF9SQjJTUEtfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTEkyU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMSTJTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xJMlNQS19CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9SSTJTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJJMlNQSyAqLworI2RlZmluZSBXTTg5OTBfUkkyU1BLX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0xPUEdBU1BLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogTE9QR0FTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xPUEdBU1BLX0JJVAkJCTMKKyNkZWZpbmUgV004OTkwX1JPUEdBU1BLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogUk9QR0FTUEsgKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBU1BLX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX0xEU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogTERTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xEU1BLX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX1JEU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUkRTUEsgKi8KKyNkZWZpbmUgV004OTkwX1JEU1BLX0JJVAkJCTAKKworLyoKKyAqIFI1NSAoMHgzNykgLSBBZGRpdGlvbmFsIENvbnRyb2wKKyAqLworI2RlZmluZSBXTTg5OTBfVlJPSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBWUk9JICovCisKKy8qCisgKiBSNTYgKDB4MzgpIC0gQW50aVBPUDEKKyAqLworI2RlZmluZSBXTTg5OTBfRElTX0xMSU5FICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBESVNfTExJTkUgKi8KKyNkZWZpbmUgV004OTkwX0RJU19STElORSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogRElTX1JMSU5FICovCisjZGVmaW5lIFdNODk5MF9ESVNfT1VUMyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIERJU19PVVQzICovCisjZGVmaW5lIFdNODk5MF9ESVNfT1VUNCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIERJU19PVVQ0ICovCisjZGVmaW5lIFdNODk5MF9ESVNfTE9VVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERJU19MT1VUICovCisjZGVmaW5lIFdNODk5MF9ESVNfUk9VVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERJU19ST1VUICovCisKKy8qCisgKiBSNTcgKDB4MzkpIC0gQW50aVBPUDIKKyAqLworI2RlZmluZSBXTTg5OTBfU09GVFNUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBTT0ZUU1QgKi8KKyNkZWZpbmUgV004OTkwX0JVRklPRU4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogQlVGSU9FTiAqLworI2RlZmluZSBXTTg5OTBfQlVGRENPUEVOICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBCVUZEQ09QRU4gKi8KKyNkZWZpbmUgV004OTkwX1BPQkNUUkwgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUE9CQ1RSTCAqLworI2RlZmluZSBXTTg5OTBfVk1JRFRPRyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBWTUlEVE9HICovCisKKy8qCisgKiBSNTggKDB4M0EpIC0gTUlDQklBUworICovCisjZGVmaW5lIFdNODk5MF9NQ0RTQ1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwQzAgIC8qIE1DRFNDVEggLSBbNzo2XSAqLworI2RlZmluZSBXTTg5OTBfTUNEVEhSX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4ICAvKiBNQ0RUSFIgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfTUNEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBNQ0QgKi8KKyNkZWZpbmUgV004OTkwX01CU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogTUJTRUwgKi8KKworLyoKKyAqIFI2MCAoMHgzQykgLSBQTEwxCisgKi8KKyNkZWZpbmUgV004OTkwX1NETSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogU0RNICovCisjZGVmaW5lIFdNODk5MF9QUkVTQ0FMRSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFBSRVNDQUxFICovCisjZGVmaW5lIFdNODk5MF9QTExOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYgIC8qIFBMTE4gLSBbMzowXSAqLworCisvKgorICogUjYxICgweDNEKSAtIFBMTDIKKyAqLworI2RlZmluZSBXTTg5OTBfUExMSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBQTExLMSAtIFs3OjBdICovCisKKy8qCisgKiBSNjIgKDB4M0UpIC0gUExMMworICovCisjZGVmaW5lIFdNODk5MF9QTExLMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYgIC8qIFBMTEsyIC0gWzc6MF0gKi8KKworLyoKKyAqIFI2MyAoMHgzRikgLSBJbnRlcm5hbCBEcml2ZXIgQml0cworICovCisjZGVmaW5lIFdNODk5MF9JTk1JWExfUFdSX0JJVAkJCTAKKyNkZWZpbmUgV004OTkwX0FJTkxNVVhfUFdSX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0lOTUlYUl9QV1JfQklUCQkJMgorI2RlZmluZSBXTTg5OTBfQUlOUk1VWF9QV1JfQklUCQkJMworCitzdHJ1Y3Qgd204OTkwX3NldHVwX2RhdGEgeworCXVuc2lnbmVkIHNob3J0IGkyY19hZGRyZXNzOworfTsKKworI2RlZmluZSBXTTg5OTBfTUNMS19ESVYgMAorI2RlZmluZSBXTTg5OTBfREFDQ0xLX0RJViAxCisjZGVmaW5lIFdNODk5MF9BRENDTEtfRElWIDIKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWIDMKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTg5OTBfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODk5MDsKKworI2VuZGlmCS8qIF9fV004OTkwUkVHSVNURVJERUZTX0hfXyAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EIE9GIEZJTEUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5jCmluZGV4IDc2YzFlMmQuLjlmYzhlZGQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTIuYwpAQCAtOSw5ICs5LDYgQEAKICAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICA0dGggRmViIDIwMDYgICBJbml0aWFsIHZlcnNpb24uCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTI1LDYgKzIyLDcgQEAKICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlICJ3bTk3MTIuaCIKIAogI2RlZmluZSBXTTk3MTJfVkVSU0lPTiAiMC40IgogCkBAIC0zNTEsNyArMzQ5LDcgQEAKIFNORF9TT0NfREFQTV9JTlBVVCgiTUlDMiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAJLyogdmlydHVhbCBtaXhlciAtIG1peGVzIGxlZnQgJiByaWdodCBjaGFubmVscyBmb3Igc3BrIGFuZCBtb25vICovCiAJeyJBQzk3IE1peGVyIiwgTlVMTCwgIkxlZnQgREFDIn0sCiAJeyJBQzk3IE1peGVyIiwgTlVMTCwgIlJpZ2h0IERBQyJ9LApAQCAtNDQ2LDIxICs0NDQsMTQgQEAKIAl7IlNwZWFrZXIgUEdBIiwgTlVMTCwgIlNwZWFrZXIgTXV4In0sCiAJeyJMT1VUMiIsIE5VTEwsICJTcGVha2VyIFBHQSJ9LAogCXsiUk9VVDIiLCBOVUxMLCAiU3BlYWtlciBQR0EifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBpbnQgd205NzEyX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTk3MTJfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTk3MTJfZGFwbV93aWRnZXRzKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTk3MTJfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTk3MTJfZGFwbV93aWRnZXRzW2ldKTsKLQotCS8qIHNldCB1cCBhdWRpbyBwYXRoIGNvbm5lY3RzICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCQkJICAgYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOwogCXJldHVybiAwOwpAQCAtNTQxLDcgKzUzMiw3IEBACiAJCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfFwKIAkJU05EUlZfUENNX1JBVEVfNDgwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTk3MTJfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgd205NzEyX2RhaVtdID0gewogewogCS5uYW1lID0gIkFDOTcgSGlGaSIsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9BQzk3X0JVUywKQEAgLTU3NCwyMyArNTY1LDIzIEBACiB9OwogRVhQT1JUX1NZTUJPTF9HUEwod205NzEyX2RhaSk7CiAKLXN0YXRpYyBpbnQgd205NzEyX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtOTcxMl9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweDAwMDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZGlzYWJsZSBldmVyeXRoaW5nIGluY2x1ZGluZyBBQyBsaW5rICovCiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTVNUQVRVUywgMHhmZmZmKTsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19QT1dFUkRPV04sIDB4ZmZmZik7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU5OCwxMiArNTg5LDEyIEBACiB7CiAJaWYgKHRyeV93YXJtICYmIHNvY19hYzk3X29wcy53YXJtX3Jlc2V0KSB7CiAJCXNvY19hYzk3X29wcy53YXJtX3Jlc2V0KGNvZGVjLT5hYzk3KTsKLQkJaWYgKCEoYWM5N19yZWFkKGNvZGVjLCAwKSAmIDB4ODAwMCkpCisJCWlmIChhYzk3X3JlYWQoY29kZWMsIDApID09IHdtOTcxMl9yZWdbMF0pCiAJCQlyZXR1cm4gMTsKIAl9CiAKIAlzb2NfYWM5N19vcHMucmVzZXQoY29kZWMtPmFjOTcpOwotCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKQorCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICE9IHdtOTcxMl9yZWdbMF0pCiAJCWdvdG8gZXJyOwogCXJldHVybiAwOwogCkBAIC02MTgsNyArNjA5LDcgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKLQl3bTk3MTJfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjM1LDcgKzYyNiw3IEBACiAJCXJldHVybiByZXQ7CiAJfQogCi0Jd205NzEyX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAlpZiAocmV0ID09IDApIHsKIAkJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgYWZ0ZXIgY29sZCByZXNldCAqLwpAQCAtNjQ3LDggKzYzOCw4IEBACiAJCX0KIAl9CiAKLQlpZiAoY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9PSBTTkRSVl9DVExfUE9XRVJfRDApCi0JCXdtOTcxMl9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDApOworCWlmIChjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PTikKKwkJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT04pOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTY4Miw3ICs2NzMsNyBAQAogCWNvZGVjLT5udW1fZGFpID0gQVJSQVlfU0laRSh3bTk3MTJfZGFpKTsKIAljb2RlYy0+d3JpdGUgPSBhYzk3X3dyaXRlOwogCWNvZGVjLT5yZWFkID0gYWM5N19yZWFkOwotCWNvZGVjLT5kYXBtX2V2ZW50ID0gd205NzEyX2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd205NzEyX3NldF9iaWFzX2xldmVsOwogCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKIAlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0aHMpOwogCkBAIC03MDYsNyArNjk3LDcgQEAKIAkvKiBzZXQgYWxjIG11eCB0byBub25lICovCiAJYWM5N193cml0ZShjb2RlYywgQUM5N19WSURFTywgYWM5N19yZWFkKGNvZGVjLCBBQzk3X1ZJREVPKSB8IDB4MzAwMCk7CiAKLQl3bTk3MTJfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTk3MTJfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAl3bTk3MTJfYWRkX2NvbnRyb2xzKGNvZGVjKTsKIAl3bTk3MTJfYWRkX3dpZGdldHMoY29kZWMpOwogCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmgKaW5kZXggNzE5MTA1ZC4uZDI5ZThhMSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5oCkBAIC04LDcgKzgsNyBAQAogI2RlZmluZSBXTTk3MTJfREFJX0FDOTdfSElGSQkwCiAjZGVmaW5lIFdNOTcxMl9EQUlfQUM5N19BVVgJCTEKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTk3MTJfZGFpWzJdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTJfZGFpWzJdOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtOTcxMjsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5jIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTMuYwppbmRleCAxZjI0MTE2Li4zOGQxZmUwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmMKQEAgLTEwLDkgKzEwLDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICA0dGggRmViIDIwMDYgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICogIEZlYXR1cmVzOi0KICAqCiAgKiAgIG8gU3VwcG9ydCBmb3IgQUM5NyBDb2RlYywgVm9pY2UgREFDIGFuZCBBdXggREFDCkBAIC00NTYsNyArNDUzLDcgQEAKIFNORF9TT0NfREFQTV9WTUlEKCJWTUlEIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IEhQIG1peGVyICovCiAJeyJMZWZ0IEhQIE1peGVyIiwgIlBDIEJlZXAgUGxheWJhY2sgU3dpdGNoIiwgIlBDQkVFUCJ9LAogCXsiTGVmdCBIUCBNaXhlciIsICJWb2ljZSBQbGF5YmFjayBTd2l0Y2giLCAgICJWb2ljZSBEQUMifSwKQEAgLTYwNywyMSArNjA0LDE0IEBACiAJeyJDYXB0dXJlIE1vbm8gTXV4IiwgIlN0ZXJlbyIsICJDYXB0dXJlIE1peGVyIn0sCiAJeyJDYXB0dXJlIE1vbm8gTXV4IiwgIkxlZnQiLCAiTGVmdCBDYXB0dXJlIFNvdXJjZSJ9LAogCXsiQ2FwdHVyZSBNb25vIE11eCIsICJSaWdodCIsICJSaWdodCBDYXB0dXJlIFNvdXJjZSJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTk3MTNfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtOTcxM19kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtOTcxM19kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtOTcxM19kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtOTcxM19kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIGF1ZGlvIHBhdGggYXVkaW9fbWFwbmVjdHMgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOwogCXJldHVybiAwOwpAQCAtNzk5LDcgKzc4OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTgxMCw3ICs4MDAsNyBAQAogICogVHJpc3RhdGUgdGhlIFBDTSBEQUkgbGluZXMsIHRyaXN0YXRlIGNhbiBiZSBkaXNhYmxlZCBieSBjYWxsaW5nCiAgKiB3bTk3MTNfc2V0X2RhaV9mbXQoKQogICovCi1zdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX3RyaXN0YXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV90cmlzdGF0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAlpbnQgdHJpc3RhdGUpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTgyNiw3ICs4MTYsNyBAQAogICogQ29uZmlndXJlIFdNOTcxMyBjbG9jayBkaXZpZGVycy4KICAqIFZvaWNlIERBQyBuZWVkcyAyNTYgRlMKICAqLwotc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtODY4LDcgKzg1OCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTg4Niw3ICs4NzYsNyBAQAogCQlncGlvIHw9IDB4MDAxODsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgotCQlyZWcgfD0gMHgwMjAwOworCQlyZWcgfD0gMHgyMDAwOwogCQlncGlvIHw9IDB4MDAxYTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZNOgpAQCAtMTAxMSwxNSArMTAwMSwyNCBAQAogCXJldHVybiBhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X1BDTV9TVVJSX0RBQ19SQVRFLCBydW50aW1lLT5yYXRlKTsKIH0KIAotI2RlZmluZSBXTTk3MTNfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAotCQlTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHxcCi0JCVNORFJWX1BDTV9SQVRFXzQ4MDAwKQorI2RlZmluZSBXTTk3MTNfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgIHwJXAorCQkgICAgICBTTkRSVl9QQ01fUkFURV8xMTAyNSB8CVwKKwkJICAgICAgU05EUlZfUENNX1JBVEVfMjIwNTAgfAlcCisJCSAgICAgIFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwJXAorCQkgICAgICBTTkRSVl9QQ01fUkFURV80ODAwMCkKKworI2RlZmluZSBXTTk3MTNfUENNX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwICB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfMTEwMjUgfAlcCisJCQkgIFNORFJWX1BDTV9SQVRFXzE2MDAwIHwJXAorCQkJICBTTkRSVl9QQ01fUkFURV8yMjA1MCB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfNDQxMDAgfAlcCisJCQkgIFNORFJWX1BDTV9SQVRFXzQ4MDAwKQogCiAjZGVmaW5lIFdNOTcxM19QQ01fRk9STUFUUyBcCiAJKFNORFJWX1BDTV9GT1JNQVRfUzE2X0xFIHwgU05EUlZfUENNX0ZPUk1BVF9TMjBfM0xFIHwgXAogCSBTTkRSVl9QQ01fRk9STUFUX1MyNF9MRSkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtOTcxM19kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTNfZGFpW10gPSB7CiB7CiAJLm5hbWUgPSAiQUM5NyBIaUZpIiwKIAkudHlwZSA9IFNORF9TT0NfREFJX0FDOTdfQlVTLApAQCAtMTA2MSwxMyArMTA2MCwxMyBAQAogCQkuc3RyZWFtX25hbWUgPSAiVm9pY2UgUGxheWJhY2siLAogCQkuY2hhbm5lbHNfbWluID0gMSwKIAkJLmNoYW5uZWxzX21heCA9IDEsCi0JCS5yYXRlcyA9IFdNOTcxM19SQVRFUywKKwkJLnJhdGVzID0gV005NzEzX1BDTV9SQVRFUywKIAkJLmZvcm1hdHMgPSBXTTk3MTNfUENNX0ZPUk1BVFMsfSwKIAkuY2FwdHVyZSA9IHsKIAkJLnN0cmVhbV9uYW1lID0gIlZvaWNlIENhcHR1cmUiLAogCQkuY2hhbm5lbHNfbWluID0gMSwKIAkJLmNoYW5uZWxzX21heCA9IDIsCi0JCS5yYXRlcyA9IFdNOTcxM19SQVRFUywKKwkJLnJhdGVzID0gV005NzEzX1BDTV9SQVRFUywKIAkJLmZvcm1hdHMgPSBXTTk3MTNfUENNX0ZPUk1BVFMsfSwKIAkub3BzID0gewogCQkuaHdfcGFyYW1zID0gd205NzEzX3BjbV9od19wYXJhbXMsCkBAIC0xMDg2LDQ0ICsxMDg1LDQ0IEBACiB7CiAJaWYgKHRyeV93YXJtICYmIHNvY19hYzk3X29wcy53YXJtX3Jlc2V0KSB7CiAJCXNvY19hYzk3X29wcy53YXJtX3Jlc2V0KGNvZGVjLT5hYzk3KTsKLQkJaWYgKCEoYWM5N19yZWFkKGNvZGVjLCAwKSAmIDB4ODAwMCkpCisJCWlmIChhYzk3X3JlYWQoY29kZWMsIDApID09IHdtOTcxM19yZWdbMF0pCiAJCQlyZXR1cm4gMTsKIAl9CiAKIAlzb2NfYWM5N19vcHMucmVzZXQoY29kZWMtPmFjOTcpOwotCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKQorCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICE9IHdtOTcxM19yZWdbMF0pCiAJCXJldHVybiAtRUlPOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwod205NzEzX3Jlc2V0KTsKIAotc3RhdGljIGludCB3bTk3MTNfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgd205NzEzX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCQkgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJdTE2IHJlZzsKIAotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogZW5hYmxlIHRoZXJtYWwgc2h1dGRvd24gKi8KIAkJcmVnID0gYWM5N19yZWFkKGNvZGVjLCBBQzk3X0VYVEVOREVEX01JRCkgJiAweDFiZmY7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTUlELCByZWcpOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMTogLyogcGFydGlhbCBPbiAqLwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOiAvKiBwYXJ0aWFsIE9uICovCisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qIGVuYWJsZSBtYXN0ZXIgYmlhcyBhbmQgdm1pZCAqLwogCQlyZWcgPSBhYzk3X3JlYWQoY29kZWMsIEFDOTdfRVhURU5ERURfTUlEKSAmIDB4M2JmZjsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19FWFRFTkRFRF9NSUQsIHJlZyk7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweDAwMDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZGlzYWJsZSBldmVyeXRoaW5nIGluY2x1ZGluZyBBQyBsaW5rICovCiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTUlELCAweGZmZmYpOwogCQlhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X0VYVEVOREVEX01TVEFUVVMsIDB4ZmZmZik7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweGZmZmYpOwogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCXJldHVybiAwOwogfQogCkBAIC0xMTYwLDcgKzExNTksNyBAQAogCQlyZXR1cm4gcmV0OwogCX0KIAotCXdtOTcxM19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCXdtOTcxM19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCiAJLyogZG8gd2UgbmVlZCB0byByZS1zdGFydCB0aGUgUExMID8gKi8KIAlpZiAod205NzEzLT5wbGxfb3V0KQpAQCAtMTE3Niw4ICsxMTc1LDggQEAKIAkJfQogCX0KIAotCWlmIChjb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlID09IFNORFJWX0NUTF9QT1dFUl9EMCkKLQkJd205NzEzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMCk7CisJaWYgKGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPT0gU05EX1NPQ19CSUFTX09OKQorCQl3bTk3MTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PTik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTIxNiw3ICsxMjE1LDcgQEAKIAljb2RlYy0+bnVtX2RhaSA9IEFSUkFZX1NJWkUod205NzEzX2RhaSk7CiAJY29kZWMtPndyaXRlID0gYWM5N193cml0ZTsKIAljb2RlYy0+cmVhZCA9IGFjOTdfcmVhZDsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtOTcxM19kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtOTcxM19zZXRfYmlhc19sZXZlbDsKIAlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fd2lkZ2V0cyk7CiAJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3BhdGhzKTsKIApAQCAtMTIzOCw3ICsxMjM3LDcgQEAKIAkJZ290byByZXNldF9lcnI7CiAJfQogCi0Jd205NzEzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd205NzEzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiB1bm11dGUgdGhlIGFkYyAtIG1vdmUgdG8ga2NvbnRyb2wgKi8KIAlyZWcgPSBhYzk3X3JlYWQoY29kZWMsIEFDOTdfQ0QpICYgMHg3ZmZmOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTk3MTMuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmgKaW5kZXggZDM1N2I2Yy4uNjNiOGQ4MSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTk3MTMuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5oCkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5lIFdNOTcxM19EQUlfUENNX1ZPSUNFCTIKIAogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtOTcxMzsKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd205NzEzX2RhaVszXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd205NzEzX2RhaVszXTsKIAogaW50IHdtOTcxM19yZXNldChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsICBpbnQgdHJ5X3dhcm0pOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9LY29uZmlnIGIvc291bmQvc29jL2RhdmluY2kvS2NvbmZpZwppbmRleCAyMDY4MGM1Li44ZjdlMzM4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX0RBVklOQ0lfU09DCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBmb3IgdGhlIFRJIERBVklOQ0kgY2hpcCIKLQlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSSAmJiBTTkRfU09DCisJZGVwZW5kcyBvbiBBUkNIX0RBVklOQ0kKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8KIAkgIHRoZSBEQVZJTkNJIEFDOTcgb3IgSTJTIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWV2bS5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1ldm0uYwppbmRleCBmY2QxNjUyLi41ZTJjMzA2IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWV2bS5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktZXZtLmMKQEAgLTMzLDI0ICszMywyNCBAQAogCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlpbnQgcmV0ID0gMDsKIAogCS8qIHNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJCQkJIFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0NCTV9DRk0gfAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9JQl9ORik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIGNvZGVjIHN5c3RlbSBjbG9jayAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwgRVZNX0NPREVDX0NMT0NLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCAwLCBFVk1fQ09ERUNfQ0xPQ0ssCiAJCQkJCSAgICBTTkRfU09DX0NMT0NLX09VVCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC03MSw3ICs3MSw3IEBACiB9OwogCiAvKiBkYXZpbmNpLWV2bSBtYWNoaW5lIGF1ZGlvX21hcG5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBIZWFkcGhvbmUgY29ubmVjdGVkIHRvIEhQTE9VVCwgSFBST1VUICovCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUExPVVQifSwKIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQUk9VVCJ9LApAQCAtOTAsMzYgKzkwLDMwIEBACiAJeyJMSU5FMkwiLCBOVUxMLCAiTGluZSBJbiJ9LAogCXsiTElORTFSIiwgTlVMTCwgIkxpbmUgSW4ifSwKIAl7IkxJTkUyUiIsIE5VTEwsICJMaW5lIEluIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiAvKiBMb2dpYyBmb3IgYSBhaWMzeCBhcyBjb25uZWN0ZWQgb24gYSBkYXZpbmNpLWV2bSAqLwogc3RhdGljIGludCBldm1fYWljM3hfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KIAkvKiBBZGQgZGF2aW5jaS1ldm0gc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmYWljM3hfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhaWMzeF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIGRhdmluY2ktZXZtIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCQkJICAgYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAkvKiBub3QgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk9fTE9VVCIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIUExDT00iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSFBSQ09NIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTU9OT19MT1VUIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBMQ09NIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBSQ09NIik7CiAKIAkvKiBhbHdheXMgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgT3V0IiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSW4iLCAxKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJMaW5lIE91dCIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkxpbmUgSW4iKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuYwppbmRleCBjNDIxNzc0Li41ZWJmMWZmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQAogc3RhdGljIGludCBkYXZpbmNpX2kyc19zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IGRhdmluY2lfbWNic3BfZGV2ICpkZXYgPSBydGQtPmRhaS0+Y3B1X2RhaS0+cHJpdmF0ZV9kYXRhOwogCiAJY3B1X2RhaS0+ZG1hX2RhdGEgPSBkZXYtPmRtYV9wYXJhbXNbc3Vic3RyZWFtLT5zdHJlYW1dOwpAQCAtMTU1LDcgKzE1NSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGF2aW5jaV9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgZGF2aW5jaV9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IGRhdmluY2lfbWNic3BfZGV2ICpkZXYgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CkBAIC0yOTUsMTEgKzI5NSwxMiBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGF2aW5jaV9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgZGF2aW5jaV9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1twZGV2LT5pZF0uY3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1twZGV2LT5pZF0uY3B1X2RhaTsKIAlzdHJ1Y3QgZGF2aW5jaV9tY2JzcF9kZXYgKmRldjsKIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbSwgKmlvYXJlYTsKIAlzdHJ1Y3QgZXZtX3NuZF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKQEAgLTM1NiwxMSArMzU3LDEyIEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgZGF2aW5jaV9pMnNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgdm9pZCBkYXZpbmNpX2kyc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOwogCXN0cnVjdCBkYXZpbmNpX21jYnNwX2RldiAqZGV2ID0gY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCByZXNvdXJjZSAqbWVtOwogCkBAIC0zNzYsNyArMzc4LDcgQEAKIAogI2RlZmluZSBEQVZJTkNJX0kyU19SQVRFUwlTTkRSVl9QQ01fUkFURV84MDAwXzk2MDAwCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgZGF2aW5jaV9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGRhdmluY2lfaTJzX2RhaSA9IHsKIAkubmFtZSA9ICJkYXZpbmNpLWkycyIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmggYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5oCmluZGV4IDk1OTJkMTcuLmM1YjA5MTggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmgKKysrIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuaApAQCAtMTIsNiArMTIsNiBAQAogI2lmbmRlZiBfREFWSU5DSV9JMlNfSAogI2RlZmluZSBfREFWSU5DSV9JMlNfSAogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBkYXZpbmNpX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGRhdmluY2lfaTJzX2RhaTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLXBjbS5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1wY20uYwppbmRleCA2YTc2OTI3Li42YTVlNTZhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLXBjbS5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktcGNtLmMKQEAgLTM1MCw3ICszNTAsNyBAQAogc3RhdGljIHU2NCBkYXZpbmNpX3BjbV9kbWFtYXNrID0gMHhmZmZmZmZmZjsKIAogc3RhdGljIGludCBkYXZpbmNpX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotCQkJICAgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKIHsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL0tjb25maWcgYi9zb3VuZC9zb2MvZnNsL0tjb25maWcKaW5kZXggMjU3MTAxZi4uMzM2OGFjZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9mc2wvS2NvbmZpZwpAQCAtMSw4ICsxLDYgQEAKLW1lbnUgIkFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcyIKLQogY29uZmlnIFNORF9TT0NfTVBDODYxMAogCWJvb2wgIkFMU0EgU29DIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjEwIFNPQyIKLQlkZXBlbmRzIG9uIFNORF9TT0MgJiYgTVBDODYxMF9IUENECisJZGVwZW5kcyBvbiBNUEM4NjEwX0hQQ0QKIAlkZWZhdWx0IHkgaWYgTVBDODYxMAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8gdGhlIFNTSQpAQCAtMTYsNSArMTQsMyBAQAogCWRlZmF1bHQgeSBpZiBNUEM4NjEwX0hQQ0QKIAloZWxwCiAJICBTYXkgWSBpZiB5b3Ugd2FudCB0byBlbmFibGUgYXVkaW8gb24gdGhlIEZyZWVzY2FsZSBNUEM4NjEwIEhQQ0QuCi0KLWVuZG1lbnUKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvZnNsX2RtYS5jIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKaW5kZXggNzhkZTcxNi4uZGEyYmM1OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKKysrIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKQEAgLTI4Miw3ICsyODIsNyBAQAogICogb25jZSBmb3IgZWFjaCAuZGFpX2xpbmsgaW4gdGhlIG1hY2hpbmUgZHJpdmVyJ3Mgc25kX3NvY19tYWNoaW5lCiAgKiBzdHJ1Y3R1cmUuCiAgKi8KLXN0YXRpYyBpbnQgZnNsX2RtYV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwKK3N0YXRpYyBpbnQgZnNsX2RtYV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAlzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCXN0YXRpYyB1NjQgZnNsX2RtYV9kbWFtYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvZnNsX2RtYS5oIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKaW5kZXggNDMwYTZjZS4uMzg1ZDRhNCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKKysrIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKQEAgLTEyNiw3ICsxMjYsNyBAQAogCXU4IHJlc1s0XTsgICAgICAvKiBSZXNlcnZlZCAqLwogfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCgzMiksIHBhY2tlZCkpOwogCi0vKiBETUEgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaSBvYmplY3QKKy8qIERNQSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gY3JlYXRlIGEgc25kX3NvY19kYWkgb2JqZWN0CiAgKgogICogc3NpX3N0eF9waHlzOiBidXMgYWRkcmVzcyBvZiBTU0kgU1RYIHJlZ2lzdGVyIHRvIHVzZQogICogc3NpX3NyeF9waHlzOiBidXMgYWRkcmVzcyBvZiBTU0kgU1JYIHJlZ2lzdGVyIHRvIHVzZQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfc3NpLmMgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYwppbmRleCBmNTg4NTQ1Li43MWJmZjMzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYworKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYwpAQCAtODIsNyArODIsNyBAQAogCXN0cnVjdCBkZXZpY2UgKmRldjsKIAl1bnNpZ25lZCBpbnQgcGxheWJhY2s7CiAJdW5zaWduZWQgaW50IGNhcHR1cmU7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBjcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSBjcHVfZGFpOwogCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyOwogCiAJc3RydWN0IHsKQEAgLTQ3OSw3ICs0NzksNyBAQAogICogQGZyZXE6IHRoZSBmcmVxdWVuY3kgb2YgdGhlIGdpdmVuIGNsb2NrIElELCBjdXJyZW50bHkgaWdub3JlZAogICogQGRpcjogU05EX1NPQ19DTE9DS19JTiAoY2xvY2sgc2xhdmUpIG9yIFNORF9TT0NfQ0xPQ0tfT1VUIChjbG9jayBtYXN0ZXIpCiAgKi8KLXN0YXRpYyBpbnQgZnNsX3NzaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGZzbF9zc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkgICAgICBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIApAQCAtNDk3LDcgKzQ5Nyw3IEBACiAgKgogICogQGZvcm1hdDogb25lIG9mIFNORF9TT0NfREFJRk1UX3h4eAogICovCi1zdGF0aWMgaW50IGZzbF9zc2lfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLCB1bnNpZ25lZCBpbnQgZm9ybWF0KQorc3RhdGljIGludCBmc2xfc3NpX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLCB1bnNpZ25lZCBpbnQgZm9ybWF0KQogewogCXJldHVybiAoZm9ybWF0ID09IFNORF9TT0NfREFJRk1UX0kyUykgPyAwIDogLUVJTlZBTDsKIH0KQEAgLTUwNSw3ICs1MDUsNyBAQAogLyoqCiAgKiBmc2xfc3NpX2RhaV90ZW1wbGF0ZTogdGVtcGxhdGUgQ1BVIERBSSBmb3IgdGhlIFNTSQogICovCi1zdGF0aWMgc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBmc2xfc3NpX2RhaV90ZW1wbGF0ZSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWkgZnNsX3NzaV9kYWlfdGVtcGxhdGUgPSB7CiAJLnBsYXliYWNrID0gewogCQkvKiBUaGUgU1NJIGRvZXMgbm90IHN1cHBvcnQgbW9uYXVyYWwgYXVkaW8uICovCiAJCS5jaGFubmVsc19taW4gPSAyLApAQCAtNTY5LDE1ICs1NjksMTUgQEAKIH0KIAogLyoqCi0gKiBmc2xfc3NpX2NyZWF0ZV9kYWk6IGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaSBzdHJ1Y3R1cmUKKyAqIGZzbF9zc2lfY3JlYXRlX2RhaTogY3JlYXRlIGEgc25kX3NvY19kYWkgc3RydWN0dXJlCiAgKgotICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIG1hY2hpbmUgZHJpdmVyIHRvIGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaQorICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIG1hY2hpbmUgZHJpdmVyIHRvIGNyZWF0ZSBhIHNuZF9zb2NfZGFpCiAgKiBzdHJ1Y3R1cmUuICBUaGUgZnVuY3Rpb24gY3JlYXRlcyBhbiBzc2lfcHJpdmF0ZSBvYmplY3QsIHdoaWNoIGNvbnRhaW5zCi0gKiB0aGUgc25kX3NvY19jcHVfZGFpLiAgSXQgYWxzbyBjcmVhdGVzIHRoZSBzeXNmcyBzdGF0aXN0aWNzIGRldmljZS4KKyAqIHRoZSBzbmRfc29jX2RhaS4gIEl0IGFsc28gY3JlYXRlcyB0aGUgc3lzZnMgc3RhdGlzdGljcyBkZXZpY2UuCiAgKi8KLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfY3JlYXRlX2RhaShzdHJ1Y3QgZnNsX3NzaV9pbmZvICpzc2lfaW5mbykKK3N0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKQogewotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9kYWk7CiAJc3RydWN0IGZzbF9zc2lfcHJpdmF0ZSAqc3NpX3ByaXZhdGU7CiAJaW50IHJldCA9IDA7CiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldl9hdHRyOwpAQCAtNTg4LDcgKzU4OCw3IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAltZW1jcHkoJnNzaV9wcml2YXRlLT5jcHVfZGFpLCAmZnNsX3NzaV9kYWlfdGVtcGxhdGUsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpKSk7CisJICAgICAgIHNpemVvZihzdHJ1Y3Qgc25kX3NvY19kYWkpKTsKIAogCWZzbF9zc2lfZGFpID0gJnNzaV9wcml2YXRlLT5jcHVfZGFpOwogCWRldl9hdHRyID0gJnNzaV9wcml2YXRlLT5kZXZfYXR0cjsKQEAgLTYyMywxMSArNjIzLDExIEBACiBFWFBPUlRfU1lNQk9MX0dQTChmc2xfc3NpX2NyZWF0ZV9kYWkpOwogCiAvKioKLSAqIGZzbF9zc2lfZGVzdHJveV9kYWk6IGRlc3Ryb3kgdGhlIHNuZF9zb2NfY3B1X2RhaSBvYmplY3QKKyAqIGZzbF9zc2lfZGVzdHJveV9kYWk6IGRlc3Ryb3kgdGhlIHNuZF9zb2NfZGFpIG9iamVjdAogICoKICAqIFRoaXMgZnVuY3Rpb24gdW5kb2VzIHRoZSBvcGVyYXRpb25zIG9mIGZzbF9zc2lfY3JlYXRlX2RhaSgpCiAgKi8KLXZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpmc2xfc3NpX2RhaSkKK3ZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19kYWkgKmZzbF9zc2lfZGFpKQogewogCXN0cnVjdCBmc2xfc3NpX3ByaXZhdGUgKnNzaV9wcml2YXRlID0KIAljb250YWluZXJfb2YoZnNsX3NzaV9kYWksIHN0cnVjdCBmc2xfc3NpX3ByaXZhdGUsIGNwdV9kYWkpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfc3NpLmggYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaAppbmRleCBjNWNlODhlLi44M2I0NGQ3IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaAorKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaApAQCAtMjE3LDggKzIxNyw4IEBACiAJc3RydWN0IGRldmljZSAqZGV2OwogfTsKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKTsKLXZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpmc2xfc3NpX2RhaSk7CitzdHJ1Y3Qgc25kX3NvY19kYWkgKmZzbF9zc2lfY3JlYXRlX2RhaShzdHJ1Y3QgZnNsX3NzaV9pbmZvICpzc2lfaW5mbyk7Cit2b2lkIGZzbF9zc2lfZGVzdHJveV9kYWkoc3RydWN0IHNuZF9zb2NfZGFpICpmc2xfc3NpX2RhaSk7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL21wYzg2MTBfaHBjZC5jIGIvc291bmQvc29jL2ZzbC9tcGM4NjEwX2hwY2QuYwppbmRleCBhMDBhYWM3Li40YmRjOWQ4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL21wYzg2MTBfaHBjZC5jCisrKyBiL3NvdW5kL3NvYy9mc2wvbXBjODYxMF9ocGNkLmMKQEAgLTU4LDkgKzU4LDkgQEAKIAkJc291bmRfZGV2aWNlLT5kZXYucGxhdGZvcm1fZGF0YTsKIAogCS8qIFByb2dyYW0gdGhlIHNpZ25hbCByb3V0aW5nIGJldHdlZW4gdGhlIFNTSSBhbmQgdGhlIERNQSAqLwotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMF0sIENDU1JfR1VUU19ETUFDUl9ERVZfU1NJKTsKLQlndXRzX3NldF9kbWFjcihtYWNoaW5lX2RhdGEtPmd1dHMsIG1hY2hpbmVfZGF0YS0+ZG1hX2lkICsgMSwKKwlndXRzX3NldF9kbWFjcihtYWNoaW5lX2RhdGEtPmd1dHMsIG1hY2hpbmVfZGF0YS0+ZG1hX2lkLAogCQltYWNoaW5lX2RhdGEtPmRtYV9jaGFubmVsX2lkWzFdLCBDQ1NSX0dVVFNfRE1BQ1JfREVWX1NTSSk7CiAKIAlndXRzX3NldF9wbXV4Y3JfZG1hKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCkBAIC05Niw2MiArOTYsNTIgQEAKIHN0YXRpYyBpbnQgbXBjODYxMF9ocGNkX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXN0cnVjdCBtcGM4NjEwX2hwY2RfZGF0YSAqbWFjaGluZV9kYXRhID0KIAkJcnRkLT5zb2NkZXYtPmRldi0+cGxhdGZvcm1fZGF0YTsKIAlpbnQgcmV0ID0gMDsKIAogCS8qIFRlbGwgdGhlIENQVSBkcml2ZXIgd2hhdCB0aGUgc2VyaWFsIHByb3RvY29sIGlzLiAqLwotCWlmIChjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQpIHsKLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksCi0JCQltYWNoaW5lX2RhdGEtPmRhaV9mb3JtYXQpOwotCQlpZiAocmV0IDwgMCkgewotCQkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAotCQkJCSJjb3VsZCBub3Qgc2V0IENQVSBkcml2ZXIgYXVkaW8gZm9ybWF0XG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIG1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAorCQkJImNvdWxkIG5vdCBzZXQgQ1BVIGRyaXZlciBhdWRpbyBmb3JtYXRcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qIFRlbGwgdGhlIGNvZGVjIGRyaXZlciB3aGF0IHRoZSBzZXJpYWwgcHJvdG9jb2wgaXMuICovCi0JaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KSB7Ci0JCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwKLQkJCW1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCi0JCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGF1ZGlvIGZvcm1hdFxuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIG1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAorCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGF1ZGlvIGZvcm1hdFxuIik7CisJCXJldHVybiByZXQ7CiAJfQogCiAJLyoKIAkgKiBUZWxsIHRoZSBDUFUgZHJpdmVyIHdoYXQgdGhlIGNsb2NrIGZyZXF1ZW5jeSBpcywgYW5kIHdoZXRoZXIgaXQncyBhCiAJICogc2xhdmUgb3IgbWFzdGVyLgogCSAqLwotCWlmIChjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspIHsKLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIDAsCi0JCQltYWNoaW5lX2RhdGEtPmNsa19mcmVxdWVuY3ksCi0JCQltYWNoaW5lX2RhdGEtPmNwdV9jbGtfZGlyZWN0aW9uKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKLQkJCQkiY291bGQgbm90IHNldCBDUFUgZHJpdmVyIGNsb2NrIHBhcmFtZXRlcnNcbiIpOwotCQkJcmV0dXJuIHJldDsKLQkJfQorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgMCwKKwkJCQkJbWFjaGluZV9kYXRhLT5jbGtfZnJlcXVlbmN5LAorCQkJCQltYWNoaW5lX2RhdGEtPmNwdV9jbGtfZGlyZWN0aW9uKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBDUFUgZHJpdmVyIGNsb2NrIHBhcmFtZXRlcnNcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qCiAJICogVGVsbCB0aGUgY29kZWMgZHJpdmVyIHdoYXQgdGhlIE1DTEsgZnJlcXVlbmN5IGlzLCBhbmQgd2hldGhlciBpdCdzCiAJICogYSBzbGF2ZSBvciBtYXN0ZXIuCiAJICovCi0JaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKSB7Ci0JCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwKLQkJCW1hY2hpbmVfZGF0YS0+Y2xrX2ZyZXF1ZW5jeSwKLQkJCW1hY2hpbmVfZGF0YS0+Y29kZWNfY2xrX2RpcmVjdGlvbik7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCi0JCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGNsb2NrIHBhcmFtc1xuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsCisJCQkJCW1hY2hpbmVfZGF0YS0+Y2xrX2ZyZXF1ZW5jeSwKKwkJCQkJbWFjaGluZV9kYXRhLT5jb2RlY19jbGtfZGlyZWN0aW9uKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBjb2RlYyBkcml2ZXIgY2xvY2sgcGFyYW1zXG4iKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE3MCw5ICsxNjAsOSBAQAogCiAJLyogUmVzdG9yZSB0aGUgc2lnbmFsIHJvdXRpbmcgKi8KIAotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMF0sIDApOwotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMV0sIDApOwogCiAJc3dpdGNoIChtYWNoaW5lX2RhdGEtPnNzaV9pZCkgewpAQCAtMTgyLDcgKzE3Miw3IEBACiAJCWJyZWFrOwogCWNhc2UgMToKIAkJY2xyc2V0Yml0c19iZTMyKCZtYWNoaW5lX2RhdGEtPmd1dHMtPnBtdXhjciwKLQkJCUNDU1JfR1VUU19QTVVYQ1JfU1NJMl9NQVNLLCBDQ1NSX0dVVFNfUE1VWENSX1NTSTFfTEEpOworCQkJQ0NTUl9HVVRTX1BNVVhDUl9TU0kyX01BU0ssIENDU1JfR1VUU19QTVVYQ1JfU1NJMl9MQSk7CiAJCWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvS2NvbmZpZyBiL3NvdW5kL3NvYy9vbWFwL0tjb25maWcKaW5kZXggMDIzMGQ4My4uYWVhMjdlNyAxMDA2NDQKLS0tIGEvc291bmQvc29jL29tYXAvS2NvbmZpZworKysgYi9zb3VuZC9zb2Mvb21hcC9LY29uZmlnCkBAIC0xLDUgKzEsMyBAQAotbWVudSAiU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUCIKLQogY29uZmlnIFNORF9PTUFQX1NPQwogCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQIGNoaXBzIgogCWRlcGVuZHMgb24gQVJDSF9PTUFQICYmIFNORF9TT0MKQEAgLTE1LDUgKzEzLDMgQEAKIAlzZWxlY3QgU05EX1NPQ19UTFYzMjBBSUMzWAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8gb24gTm9raWEgTjgxMC4KLQotZW5kbWVudQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvbjgxMC5jIGIvc291bmQvc29jL29tYXAvbjgxMC5jCmluZGV4IDY1MzM1NjMuLjAyY2VjOTY4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvb21hcC9uODEwLmMKKysrIGIvc291bmQvc29jL29tYXAvbjgxMC5jCkBAIC0zMCwxNSArMzAsMTUgQEAKIAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CiAKICNpbmNsdWRlICJvbWFwLW1jYnNwLmgiCiAjaW5jbHVkZSAib21hcC1wY20uaCIKICNpbmNsdWRlICIuLi9jb2RlY3MvdGx2MzIwYWljM3guaCIKIAotI2RlZmluZSBSWDQ0X0hFQURTRVRfQU1QX0dQSU8JMTAKLSNkZWZpbmUgUlg0NF9TUEVBS0VSX0FNUF9HUElPCTEwMQorI2RlZmluZSBOODEwX0hFQURTRVRfQU1QX0dQSU8JMTAKKyNkZWZpbmUgTjgxMF9TUEVBS0VSX0FNUF9HUElPCTEwMQogCiBzdGF0aWMgc3RydWN0IGNsayAqc3lzX2Nsa291dDI7CiBzdGF0aWMgc3RydWN0IGNsayAqc3lzX2Nsa291dDJfc3JjOwpAQCAtNDYsMTMgKzQ2LDI2IEBACiAKIHN0YXRpYyBpbnQgbjgxMF9zcGtfZnVuYzsKIHN0YXRpYyBpbnQgbjgxMF9qYWNrX2Z1bmM7CitzdGF0aWMgaW50IG44MTBfZG1pY19mdW5jOwogCiBzdGF0aWMgdm9pZCBuODEwX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIG44MTBfc3BrX2Z1bmMpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIG44MTBfamFja19mdW5jKTsKKwlpZiAobjgxMF9zcGtfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCWlmIChuODEwX2phY2tfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCWVsc2UKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKworCWlmIChuODEwX2RtaWNfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJETWljIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJETWljIik7CisKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgbjgxMF9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQpAQCAtNzMsMTIgKzg2LDEyIEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCBlcnI7CiAKIAkvKiBTZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQllcnIgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksCisJZXJyID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksCiAJCQkJCSBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQkJCQkgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAogCQkJCQkgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CkBAIC04Niw3ICs5OSw3IEBACiAJCXJldHVybiBlcnI7CiAKIAkvKiBTZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JZXJyID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksCisJZXJyID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCQkJICAgICAgIFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwpAQCAtOTQsNyArMTA3LDcgQEAKIAkJcmV0dXJuIGVycjsKIAogCS8qIFNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCWVyciA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwgMTIwMDAwMDAsCisJZXJyID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsIDEyMDAwMDAwLAogCQkJCQkgICAgU05EX1NPQ19DTE9DS19JTik7CiAKIAlyZXR1cm4gZXJyOwpAQCAtMTUwLDEzICsxNjMsMzUgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBuODEwX2dldF9pbnB1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBuODEwX2RtaWNfZnVuYzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG44MTBfc2V0X2lucHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSAgc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCisJaWYgKG44MTBfZG1pY19mdW5jID09IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdKQorCQlyZXR1cm4gMDsKKworCW44MTBfZG1pY19mdW5jID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJbjgxMF9leHRfY29udHJvbChjb2RlYyk7CisKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBuODEwX3Nwa19ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywKIAkJCSAgc3RydWN0IHNuZF9rY29udHJvbCAqaywgaW50IGV2ZW50KQogewogCWlmIChTTkRfU09DX0RBUE1fRVZFTlRfT04oZXZlbnQpKQotCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoUlg0NF9TUEVBS0VSX0FNUF9HUElPLCAxKTsKKwkJZ3Bpb19zZXRfdmFsdWUoTjgxMF9TUEVBS0VSX0FNUF9HUElPLCAxKTsKIAllbHNlCi0JCW9tYXBfc2V0X2dwaW9fZGF0YW91dChSWDQ0X1NQRUFLRVJfQU1QX0dQSU8sIDApOworCQlncGlvX3NldF92YWx1ZShOODEwX1NQRUFLRVJfQU1QX0dQSU8sIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNjUsOSArMjAwLDkgQEAKIAkJCSAgIHN0cnVjdCBzbmRfa2NvbnRyb2wgKmssIGludCBldmVudCkKIHsKIAlpZiAoU05EX1NPQ19EQVBNX0VWRU5UX09OKGV2ZW50KSkKLQkJb21hcF9zZXRfZ3Bpb19kYXRhb3V0KFJYNDRfSEVBRFNFVF9BTVBfR1BJTywgMSk7CisJCWdwaW9fc2V0X3ZhbHVlKE44MTBfSEVBRFNFVF9BTVBfR1BJTywgMSk7CiAJZWxzZQotCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoUlg0NF9IRUFEU0VUX0FNUF9HUElPLCAwKTsKKwkJZ3Bpb19zZXRfdmFsdWUoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAwKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTc1LDIxICsyMTAsMjcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCBhaWMzM19kYXBtX3dpZGdldHNbXSA9IHsKIAlTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgbjgxMF9zcGtfZXZlbnQpLAogCVNORF9TT0NfREFQTV9IUCgiSGVhZHBob25lIEphY2siLCBuODEwX2phY2tfZXZlbnQpLAorCVNORF9TT0NfREFQTV9NSUMoIkRNaWMiLCBOVUxMKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiSFBMT1VUIn0sCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUFJPVVQifSwKIAogCXsiRXh0IFNwayIsIE5VTEwsICJMTE9VVCJ9LAogCXsiRXh0IFNwayIsIE5VTEwsICJSTE9VVCJ9LAorCisJeyJETWljIFJhdGUgNjQiLCBOVUxMLCAiTWljIEJpYXMgMlYifSwKKwl7Ik1pYyBCaWFzIDJWIiwgTlVMTCwgIkRNaWMifSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpzcGtfZnVuY3Rpb25bXSA9IHsiT2ZmIiwgIk9uIn07CiBzdGF0aWMgY29uc3QgY2hhciAqamFja19mdW5jdGlvbltdID0geyJPZmYiLCAiSGVhZHBob25lIn07CitzdGF0aWMgY29uc3QgY2hhciAqaW5wdXRfZnVuY3Rpb25bXSA9IHsiQURDIiwgIkRpZ2l0YWwgTWljIn07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIG44MTBfZW51bVtdID0gewogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShzcGtfZnVuY3Rpb24pLCBzcGtfZnVuY3Rpb24pLAogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShqYWNrX2Z1bmN0aW9uKSwgamFja19mdW5jdGlvbiksCisJU09DX0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKGlucHV0X2Z1bmN0aW9uKSwgaW5wdXRfZnVuY3Rpb24pLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFpYzMzX244MTBfY29udHJvbHNbXSA9IHsKQEAgLTE5Nyw2ICsyMzgsOCBAQAogCQkgICAgIG44MTBfZ2V0X3NwaywgbjgxMF9zZXRfc3BrKSwKIAlTT0NfRU5VTV9FWFQoIkphY2sgRnVuY3Rpb24iLCBuODEwX2VudW1bMV0sCiAJCSAgICAgbjgxMF9nZXRfamFjaywgbjgxMF9zZXRfamFjayksCisJU09DX0VOVU1fRVhUKCJJbnB1dCBTZWxlY3QiLCAgbjgxMF9lbnVtWzJdLAorCQkgICAgIG44MTBfZ2V0X2lucHV0LCBuODEwX3NldF9pbnB1dCksCiB9OwogCiBzdGF0aWMgaW50IG44MTBfYWljMzNfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCkBAIC0yMDQsOSArMjQ3LDkgQEAKIAlpbnQgaSwgZXJyOwogCiAJLyogTm90IGNvbm5lY3RlZCAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PX0xPVVQiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSFBMQ09NIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhQUkNPTSIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9fTE9VVCIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhQTENPTSIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhQUkNPTSIpOwogCiAJLyogQWRkIE44MTAgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzM19uODEwX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0yMTcsMTUgKzI2MCwxMyBAQAogCX0KIAogCS8qIEFkZCBOODEwIHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzM19kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJmFpYzMzX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgYWljMzNfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhaWMzM19kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBOODEwIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkaW9fbWFwKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjUwLDYgKzI5MSw4IEBACiAvKiBBdWRpbyBwcml2YXRlIGRhdGEgKi8KIHN0YXRpYyBzdHJ1Y3QgYWljM3hfc2V0dXBfZGF0YSBuODEwX2FpYzMzX3NldHVwID0gewogCS5pMmNfYWRkcmVzcyA9IDB4MTgsCisJLmdwaW9fZnVuY1swXSA9IEFJQzNYX0dQSU8xX0ZVTkNfRElTQUJMRUQsCisJLmdwaW9fZnVuY1sxXSA9IEFJQzNYX0dQSU8yX0ZVTkNfRElHSVRBTF9NSUNfSU5QVVQsCiB9OwogCiAvKiBBdWRpbyBzdWJzeXN0ZW0gKi8KQEAgLTI2Nyw3ICszMTAsNyBAQAogCWludCBlcnI7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCi0JaWYgKCFtYWNoaW5lX2lzX25va2lhX244MTAoKSkKKwlpZiAoIShtYWNoaW5lX2lzX25va2lhX244MTAoKSB8fCBtYWNoaW5lX2lzX25va2lhX244MTBfd2ltYXgoKSkpCiAJCXJldHVybiAtRU5PREVWOwogCiAJbjgxMF9zbmRfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJzb2MtYXVkaW8iLCAtMSk7CkBAIC0zMDUsMTIgKzM0OCwxMiBAQAogCWNsa19zZXRfcGFyZW50KHN5c19jbGtvdXQyX3NyYywgZnVuYzk2bV9jbGspOwogCWNsa19zZXRfcmF0ZShzeXNfY2xrb3V0MiwgMTIwMDAwMDApOwogCi0JaWYgKG9tYXBfcmVxdWVzdF9ncGlvKFJYNDRfSEVBRFNFVF9BTVBfR1BJTykgPCAwKQorCWlmIChncGlvX3JlcXVlc3QoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAiaHNfYW1wIikgPCAwKQogCQlCVUcoKTsKLQlpZiAob21hcF9yZXF1ZXN0X2dwaW8oUlg0NF9TUEVBS0VSX0FNUF9HUElPKSA8IDApCisJaWYgKGdwaW9fcmVxdWVzdChOODEwX1NQRUFLRVJfQU1QX0dQSU8sICJzcGtfYW1wIikgPCAwKQogCQlCVUcoKTsKLQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbihSWDQ0X0hFQURTRVRfQU1QX0dQSU8sIDApOwotCW9tYXBfc2V0X2dwaW9fZGlyZWN0aW9uKFJYNDRfU1BFQUtFUl9BTVBfR1BJTywgMCk7CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KE44MTBfSEVBRFNFVF9BTVBfR1BJTywgMCk7CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KE44MTBfU1BFQUtFUl9BTVBfR1BJTywgMCk7CiAKIAlyZXR1cm4gMDsKIGVycjI6CkBAIC0zMjUsNiArMzY4LDkgQEAKIAogc3RhdGljIHZvaWQgX19leGl0IG44MTBfc29jX2V4aXQodm9pZCkKIHsKKwlncGlvX2ZyZWUoTjgxMF9TUEVBS0VSX0FNUF9HUElPKTsKKwlncGlvX2ZyZWUoTjgxMF9IRUFEU0VUX0FNUF9HUElPKTsKKwogCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKG44MTBfc25kX2RldmljZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuYyBiL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuYwppbmRleCA0MGQ4N2U2Li4wMGIwYzlkIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmMKKysrIGIvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5jCkBAIC0xMDMsNyArMTAzLDcgQEAKIHN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXN0cnVjdCBvbWFwX21jYnNwX2RhdGEgKm1jYnNwX2RhdGEgPSB0b19tY2JzcChjcHVfZGFpLT5wcml2YXRlX2RhdGEpOwogCWludCBlcnIgPSAwOwogCkBAIC0xMTYsNyArMTE2LDcgQEAKIHN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZGFpX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CiAKIAlpZiAoIWNwdV9kYWktPmFjdGl2ZSkgewpAQCAtMTI4LDcgKzEyOCw3IEBACiBzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKIAlpbnQgZXJyID0gMDsKIApAQCAtMTU3LDcgKzE1Nyw3IEBACiAJCQkJICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CiAJc3RydWN0IG9tYXBfbWNic3BfcmVnX2NmZyAqcmVncyA9ICZtY2JzcF9kYXRhLT5yZWdzOwogCWludCBkbWEsIGJ1c19pZCA9IG1jYnNwX2RhdGEtPmJ1c19pZCwgaWQgPSBjcHVfZGFpLT5pZDsKQEAgLTIyMyw3ICsyMjMsNyBAQAogICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgX3NldF9jbGtkaXYgYW5kIF9zZXRfc3lzY2xrIHNpbmNlIE1jQlNQIHJlZ2lzdGVyCiAgKiBjYWNoZSBpcyBpbml0aWFsaXplZCBoZXJlCiAgKi8KLXN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgICAgIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CkBAIC0yOTIsNyArMjkyLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBvbWFwX21jYnNwX2RhaV9zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgICAgaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKQEAgLTM0Nyw3ICszNDcsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCQkJIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLAogCQkJCQkgaW50IGRpcikKIHsKQEAgLTM3Niw3ICszNzYsNyBAQAogCXJldHVybiBlcnI7CiB9CiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgb21hcF9tY2JzcF9kYWlbTlVNX0xJTktTXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdID0gewogewogCS5uYW1lID0gIm9tYXAtbWNic3AtZGFpIiwKIAkuaWQgPSAwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5oIGIvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5oCmluZGV4IDk5NjVmZDQuLmVkOGFmYjUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuaAorKysgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmgKQEAgLTQ0LDYgKzQ0LDYgQEAKICAqLwogI2RlZmluZSBOVU1fTElOS1MJMQogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLXBjbS5jCmluZGV4IDYyMzcwMjAuLmUwOTJmM2QgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMKKysrIGIvc291bmQvc29jL29tYXAvb21hcC1wY20uYwpAQCAtMzE2LDcgKzMxNiw3IEBACiAJfQogfQogCi1pbnQgb21hcF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksCitpbnQgb21hcF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCSBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCWludCByZXQgPSAwOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9LY29uZmlnIGIvc291bmQvc29jL3B4YS9LY29uZmlnCmluZGV4IDQ4NGY4ODMuLjEyZjZhYzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvcHhhL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX1BYQTJYWF9TT0MKIAl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgSW50ZWwgUFhBMnh4IGNoaXAiCi0JZGVwZW5kcyBvbiBBUkNIX1BYQSAmJiBTTkRfU09DCisJZGVwZW5kcyBvbiBBUkNIX1BYQQogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwogCSAgdGhlIFBYQTJ4eCBBQzk3LCBJMlMgb3IgU1NQIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCkBAIC02MiwzICs2MiwxMiBAQAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8gb24gdGhlCiAJICBUb3NoaWJhIGU4MDAgUERBCisKK2NvbmZpZyBTTkRfUFhBMlhYX1NPQ19FTV9YMjcwCisJdHJpc3RhdGUgIlNvQyBBdWRpbyBzdXBwb3J0IGZvciBDb21wdUxhYiBFTS14MjcwIgorCWRlcGVuZHMgb24gU05EX1BYQTJYWF9TT0MgJiYgTUFDSF9FTV9YMjcwCisJc2VsZWN0IFNORF9QWEEyWFhfU09DX0FDOTcKKwlzZWxlY3QgU05EX1NPQ19XTTk3MTIKKwloZWxwCisJICBTYXkgWSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgU29DIGF1ZGlvIG9uCisJICBDb21wdUxhYiBFTS14MjcwLgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9NYWtlZmlsZSBiL3NvdW5kL3NvYy9weGEvTWFrZWZpbGUKaW5kZXggMDRlNTY0Ni4uNWJjOGVkZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvcHhhL01ha2VmaWxlCkBAIC0xMywxMCArMTMsMTEgQEAKIHNuZC1zb2MtdG9zYS1vYmpzIDo9IHRvc2Eubwogc25kLXNvYy1lODAwLW9ianMgOj0gZTgwMF93bTk3MTIubwogc25kLXNvYy1zcGl0ei1vYmpzIDo9IHNwaXR6Lm8KK3NuZC1zb2MtZW0teDI3MC1vYmpzIDo9IGVtLXgyNzAubwogCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfQ09SR0kpICs9IHNuZC1zb2MtY29yZ2kubwogb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX1BPT0RMRSkgKz0gc25kLXNvYy1wb29kbGUubwogb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX1RPU0EpICs9IHNuZC1zb2MtdG9zYS5vCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfRTgwMCkgKz0gc25kLXNvYy1lODAwLm8KIG9iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19TUElUWikgKz0gc25kLXNvYy1zcGl0ei5vCi0KK29iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19FTV9YMjcwKSArPSBzbmQtc29jLWVtLXgyNzAubwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9jb3JnaS5jIGIvc291bmQvc29jL3B4YS9jb3JnaS5jCmluZGV4IDdmMzJhMTEuLmMwMjk0NDYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvY29yZ2kuYworKysgYi9zb3VuZC9zb2MvcHhhL2NvcmdpLmMKQEAgLTExLDEwICsxMSw2IEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMzB0aCBOb3YgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNTQsNDcgKzUwLDUxIEBACiAKIHN0YXRpYyB2b2lkIGNvcmdpX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgc3BrID0gMCwgbWljID0gMCwgbGluZSA9IDAsIGhwID0gMCwgaHMgPSAwOwotCiAJLyogc2V0IHVwIGphY2sgY29ubmVjdGlvbiAqLwogCXN3aXRjaCAoY29yZ2lfamFja19mdW5jKSB7CiAJY2FzZSBDT1JHSV9IUDoKLQkJaHAgPSAxOwogCQkvKiBzZXQgPSB1bm11dGUgaGVhZHBob25lICovCiAJCXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX0wpOwogCQlzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTVVURV9SKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgQ09SR0lfTUlDOgotCQltaWMgPSAxOwogCQkvKiByZXNldCA9IG11dGUgaGVhZHBob25lICovCiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfUik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAljYXNlIENPUkdJX0xJTkU6Ci0JCWxpbmUgPSAxOwogCQlyZXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX0wpOwogCQlyZXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX1IpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJYnJlYWs7CiAJY2FzZSBDT1JHSV9IRUFEU0VUOgotCQlocyA9IDE7Ci0JCW1pYyA9IDE7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX1IpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAl9CiAKIAlpZiAoY29yZ2lfc3BrX2Z1bmMgPT0gQ09SR0lfU1BLX09OKQotCQlzcGsgPSAxOwotCi0JLyogc2V0IHRoZSBlbnBvaW50cyB0byB0aGVpciBuZXcgY29ubmV0aW9uIHN0YXRlcyAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJFeHQgU3BrIiwgc3BrKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCBtaWMpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCBsaW5lKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCBocCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgSmFjayIsIGhzKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKIAkvKiBzaWduYWwgYSBEQVBNIGV2ZW50ICovCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgY29yZ2lfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKQEAgLTEyMyw4ICsxMjMsOCBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAl1bnNpZ25lZCBpbnQgY2xrID0gMDsKIAlpbnQgcmV0ID0gMDsKIApAQCAtMTQzLDI1ICsxNDMsMjUgQEAKIAl9CiAKIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLCBjbGssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssIGNsaywKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIEkyUyBzeXN0ZW0gY2xvY2sgYXMgaW5wdXQgKHVudXNlZCkgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBQWEEyWFhfSTJTX1NZU0NMSywgMCwKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yNDcsNyArMjQ3LDcgQEAKIH07CiAKIC8qIENvcmdpIG1hY2hpbmUgYXVkaW8gbWFwIChjb25uZWN0aW9ucyB0byB0aGUgY29kZWMgcGlucykgKi8KLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCiAJLyogaGVhZHNldCBKYWNrICAtIGluID0gbWljaW4sIG91dCA9IExIUE9VVCovCiAJeyJIZWFkc2V0IEphY2siLCBOVUxMLCAiTEhQT1VUIn0sCkBAIC0yNjUsOCArMjY1LDYgQEAKIAogCS8qIFNhbWUgYXMgdGhlIGFib3ZlIGJ1dCBubyBtaWMgYmlhcyBmb3IgbGluZSBzaWduYWxzICovCiAJeyJNSUNJTiIsIE5VTEwsICJMaW5lIEphY2sifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7IkhlYWRwaG9uZSIsICJNaWMiLCAiTGluZSIsICJIZWFkc2V0IiwKQEAgLTI5MSw4ICsyODksOCBAQAogewogCWludCBpLCBlcnI7CiAKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTExJTkVJTiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSTElORUlOIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTExJTkVJTiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJMSU5FSU4iKTsKIAogCS8qIEFkZCBjb3JnaSBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9jb3JnaV9jb250cm9scyk7IGkrKykgewpAQCAtMzAzLDE1ICszMDEsMTMgQEAKIAl9CiAKIAkvKiBBZGQgY29yZ2kgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBjb3JnaSBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1ZGlvX21hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL2VtLXgyNzAuYyBiL3NvdW5kL3NvYy9weGEvZW0teDI3MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyZGNhYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvcHhhL2VtLXgyNzAuYwpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIGVtLXgyNzAuYyAgLS0gIFNvQyBhdWRpbyBmb3IgRU0tWDI3MAorICoKKyAqIENvcHlyaWdodCAyMDA3IENvbXB1TGFiLCBMdGQuCisgKgorICogQXV0aG9yOiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgorICoKKyAqIENvcGllZCBmcm9tIHRvc2EuYzoKKyAqIENvcHlyaWdodCAyMDA1IFdvbGZzb24gTWljcm9lbGVjdHJvbmljcyBQTEMuCisgKiBDb3B5cmlnaHQgMjAwNSBPcGVuZWRoYW5kIEx0ZC4KKyAqCisgKiBBdXRob3JzOiBMaWFtIEdpcmR3b29kIDxsaWFtLmdpcmR3b29kQHdvbGZzb25taWNyby5jb20+CisgKiAgICAgICAgICBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZEBvcGVuZWRoYW5kLmNvbT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlICBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCisgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9kcml2ZXIuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CisKKyNpbmNsdWRlICIuLi9jb2RlY3Mvd205NzEyLmgiCisjaW5jbHVkZSAicHhhMnh4LXBjbS5oIgorI2luY2x1ZGUgInB4YTJ4eC1hYzk3LmgiCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBlbV94MjcwX2RhaVtdID0geworCXsKKwkJLm5hbWUgPSAiQUM5NyIsCisJCS5zdHJlYW1fbmFtZSA9ICJBQzk3IEhpRmkiLAorCQkuY3B1X2RhaSA9ICZweGFfYWM5N19kYWlbUFhBMlhYX0RBSV9BQzk3X0hJRkldLAorCQkuY29kZWNfZGFpID0gJndtOTcxMl9kYWlbV005NzEyX0RBSV9BQzk3X0hJRkldLAorCX0sCisJeworCQkubmFtZSA9ICJBQzk3IEF1eCIsCisJCS5zdHJlYW1fbmFtZSA9ICJBQzk3IEF1eCIsCisJCS5jcHVfZGFpID0gJnB4YV9hYzk3X2RhaVtQWEEyWFhfREFJX0FDOTdfQVVYXSwKKwkJLmNvZGVjX2RhaSA9ICZ3bTk3MTJfZGFpW1dNOTcxMl9EQUlfQUM5N19BVVhdLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfbWFjaGluZSBlbV94MjcwID0geworCS5uYW1lID0gIkVNLVgyNzAiLAorCS5kYWlfbGluayA9IGVtX3gyNzBfZGFpLAorCS5udW1fbGlua3MgPSBBUlJBWV9TSVpFKGVtX3gyNzBfZGFpKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgZW1feDI3MF9zbmRfZGV2ZGF0YSA9IHsKKwkubWFjaGluZSA9ICZlbV94MjcwLAorCS5wbGF0Zm9ybSA9ICZweGEyeHhfc29jX3BsYXRmb3JtLAorCS5jb2RlY19kZXYgPSAmc29jX2NvZGVjX2Rldl93bTk3MTIsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZW1feDI3MF9zbmRfZGV2aWNlOworCitzdGF0aWMgaW50IF9faW5pdCBlbV94MjcwX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJaWYgKCFtYWNoaW5lX2lzX2VtX3gyNzAoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwllbV94MjcwX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKKwlpZiAoIWVtX3gyNzBfc25kX2RldmljZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShlbV94MjcwX3NuZF9kZXZpY2UsICZlbV94MjcwX3NuZF9kZXZkYXRhKTsKKwllbV94MjcwX3NuZF9kZXZkYXRhLmRldiA9ICZlbV94MjcwX3NuZF9kZXZpY2UtPmRldjsKKwlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKGVtX3gyNzBfc25kX2RldmljZSk7CisKKwlpZiAocmV0KQorCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KGVtX3gyNzBfc25kX2RldmljZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgZW1feDI3MF9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoZW1feDI3MF9zbmRfZGV2aWNlKTsKK30KKworbW9kdWxlX2luaXQoZW1feDI3MF9pbml0KTsKK21vZHVsZV9leGl0KGVtX3gyNzBfZXhpdCk7CisKKy8qIE1vZHVsZSBpbmZvcm1hdGlvbiAqLworTU9EVUxFX0FVVEhPUigiTWlrZSBSYXBvcG9ydCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIFNvQyBFTS1YMjcwIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3Bvb2RsZS5jIGIvc291bmQvc29jL3B4YS9wb29kbGUuYwppbmRleCA3ZTgzMGIyLi42NWE0ZTlhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3Bvb2RsZS5jCisrKyBiL3NvdW5kL3NvYy9weGEvcG9vZGxlLmMKQEAgLTQ4LDggKzQ4LDYgQEAKIAogc3RhdGljIHZvaWQgcG9vZGxlX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgc3BrID0gMDsKLQogCS8qIHNldCB1cCBqYWNrIGNvbm5lY3Rpb24gKi8KIAlpZiAocG9vZGxlX2phY2tfZnVuYyA9PSBQT09ETEVfSFApIHsKIAkJLyogc2V0ID0gdW5tdXRlIGhlYWRwaG9uZSAqLwpAQCAtNTcsMjMgKzU1LDIzIEBACiAJCQlQT09ETEVfTE9DT01PX0dQSU9fTVVURV9MLCAxKTsKIAkJbG9jb21vX2dwaW9fd3JpdGUoJnBvb2RsZV9sb2NvbW9fZGV2aWNlLmRldiwKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX1IsIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOwogCX0gZWxzZSB7CiAJCWxvY29tb19ncGlvX3dyaXRlKCZwb29kbGVfbG9jb21vX2RldmljZS5kZXYsCiAJCQlQT09ETEVfTE9DT01PX0dQSU9fTVVURV9MLCAwKTsKIAkJbG9jb21vX2dwaW9fd3JpdGUoJnBvb2RsZV9sb2NvbW9fZGV2aWNlLmRldiwKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX1IsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKIAl9CiAKLQlpZiAocG9vZGxlX3Nwa19mdW5jID09IFBPT0RMRV9TUEtfT04pCi0JCXNwayA9IDE7Ci0KIAkvKiBzZXQgdGhlIGVucG9pbnRzIHRvIHRoZWlyIG5ldyBjb25uZXRpb24gc3RhdGVzICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCBzcGspOworCWlmIChwb29kbGVfc3BrX2Z1bmMgPT0gUE9PRExFX1NQS19PTikKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKIAkvKiBzaWduYWwgYSBEQVBNIGV2ZW50ICovCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgcG9vZGxlX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xMDQsOCArMTAyLDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJdW5zaWduZWQgaW50IGNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTEyNCwyNSArMTIyLDI1IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzMxX1NZU0NMSywgY2xrLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLCBjbGssCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBJMlMgc3lzdGVtIGNsb2NrIGFzIGlucHV0ICh1bnVzZWQpICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIFBYQTJYWF9JMlNfU1lTQ0xLLCAwLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMjE1LDggKzIxMyw4IEBACiBTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgcG9vZGxlX2FtcF9ldmVudCksCiB9OwogCi0vKiBDb3JnaSBtYWNoaW5lIGF1ZGlvX21hcG5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CisvKiBDb3JnaSBtYWNoaW5lIGNvbm5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAogCS8qIGhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gTEhQT1VUMSwgUkhQT1VUMSAqLwogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiTEhQT1VUIn0sCkBAIC0yMjUsOCArMjIzLDYgQEAKIAkvKiBzcGVha2VyIGNvbm5lY3RlZCB0byBMT1VULCBST1VUICovCiAJeyJFeHQgU3BrIiwgTlVMTCwgIlJPVVQifSwKIAl7IkV4dCBTcGsiLCBOVUxMLCAiTE9VVCJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmphY2tfZnVuY3Rpb25bXSA9IHsiT2ZmIiwgIkhlYWRwaG9uZSJ9OwpAQCAtMjUwLDkgKzI0Niw5IEBACiB7CiAJaW50IGksIGVycjsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMTElORUlOIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJMSU5FSU4iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTUlDSU4iLCAxKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMTElORUlOIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUkxJTkVJTiIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTUlDSU4iKTsKIAogCS8qIEFkZCBwb29kbGUgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3MzFfcG9vZGxlX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0yNjMsMTUgKzI1OSwxMyBAQAogCX0KIAogCS8qIEFkZCBwb29kbGUgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBwb29kbGUgc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5jIGIvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5jCmluZGV4IDk3ZWMyZDkuLjA1OWFmODEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuYworKysgYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmMKQEAgLTI4Myw3ICsyODMsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHB4YTJ4eF9hYzk3X3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJR0NSIHw9IEdDUl9BQ0xJTktfT0ZGOwogCWNsa19kaXNhYmxlKGFjOTdfY2xrKTsKQEAgLTI5MSw3ICsyOTEsNyBAQAogfQogCiBzdGF0aWMgaW50IHB4YTJ4eF9hYzk3X3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlweGFfZ3Bpb19tb2RlKEdQSU8zMV9TWU5DX0FDOTdfTUQpOwogCXB4YV9ncGlvX21vZGUoR1BJTzMwX1NEQVRBX09VVF9BQzk3X01EKTsKQEAgLTMxMCw3ICszMTAsOCBAQAogI2RlZmluZSBweGEyeHhfYWM5N19yZXN1bWUJTlVMTAogI2VuZGlmCiAKLXN0YXRpYyBpbnQgcHhhMnh4X2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgcHhhMnh4X2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaW50IHJldDsKIApAQCAtMzU1LDcgKzM1Niw4IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgcHhhMnh4X2FjOTdfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgdm9pZCBweGEyeHhfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlHQ1IgfD0gR0NSX0FDTElOS19PRkY7CiAJZnJlZV9pcnEoSVJRX0FDOTcsIE5VTEwpOwpAQCAtMzcyLDcgKzM3NCw3IEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQljcHVfZGFpLT5kbWFfZGF0YSA9ICZweGEyeHhfYWM5N19wY21fc3RlcmVvX291dDsKQEAgLTM4Niw3ICszODgsNyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJY3B1X2RhaS0+ZG1hX2RhdGEgPSAmcHhhMnh4X2FjOTdfcGNtX2F1eF9tb25vX291dDsKQEAgLTQwMCw3ICs0MDIsNyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJcmV0dXJuIC1FTk9ERVY7CkBAIC00MTgsNyArNDIwLDcgQEAKICAqIFRoZXJlIGlzIG9ubHkgMSBwaHlzaWNhbCBBQzk3IGludGVyZmFjZSBmb3IgcHhhMnh4LCBidXQgaXQKICAqIGhhcyBleHRyYSBmaWZvJ3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYXV4IERBQ3MgYW5kIEFEQ3MuCiAgKi8KLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2FjOTdfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgcHhhX2FjOTdfZGFpW10gPSB7CiB7CiAJLm5hbWUgPSAicHhhMnh4LWFjOTciLAogCS5pZCA9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmggYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmgKaW5kZXggYjhjY2ZlZS4uZTM5MGRlOCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuaApAQCAtMTQsNyArMTQsNyBAQAogI2RlZmluZSBQWEEyWFhfREFJX0FDOTdfQVVYCQkxCiAjZGVmaW5lIFBYQTJYWF9EQUlfQUM5N19NSUMJCTIKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2FjOTdfZGFpWzNdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBweGFfYWM5N19kYWlbM107CiAKIC8qIHBsYXRmb3JtIGRhdGEgKi8KIGV4dGVybiBzdHJ1Y3Qgc25kX2FjOTdfYnVzX29wcyBweGEyeHhfYWM5N19vcHM7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1pMnMuYyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCmluZGV4IDQyNTA3MTAuLjhmOTZkODcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCkBAIC05LDE1ICs5LDEzIEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTJ0aCBBdWcgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KQEAgLTQwLDYgKzM4LDcgQEAKIAl1MzIgZm10OwogfTsKIHN0YXRpYyBzdHJ1Y3QgcHhhX2kyc19wb3J0IHB4YV9pMnM7CitzdGF0aWMgc3RydWN0IGNsayAqY2xrX2kyczsKIAogc3RhdGljIHN0cnVjdCBweGEyeHhfcGNtX2RtYV9wYXJhbXMgcHhhMnh4X2kyc19wY21fc3RlcmVvX291dCA9IHsKIAkubmFtZQkJCT0gIkkyUyBQQ00gU3RlcmVvIG91dCIsCkBAIC04MCw3ICs3OSwxMSBAQAogc3RhdGljIGludCBweGEyeHhfaTJzX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKworCWNsa19pMnMgPSBjbGtfZ2V0KE5VTEwsICJJMlNDTEsiKTsKKwlpZiAoSVNfRVJSKGNsa19pMnMpKQorCQlyZXR1cm4gUFRSX0VSUihjbGtfaTJzKTsKIAogCWlmICghY3B1X2RhaS0+YWN0aXZlKSB7CiAJCVNBQ1IwIHw9IFNBQ1IwX1JTVDsKQEAgLTEwMSw3ICsxMDQsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHB4YTJ4eF9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgcHhhMnh4X2kyc19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJLyogaW50ZXJmYWNlIGZvcm1hdCAqLwpAQCAtMTI3LDcgKzEzMCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcHhhMnh4X2kyc19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBweGEyeHhfaTJzX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJaWYgKGNsa19pZCAhPSBQWEEyWFhfSTJTX1NZU0NMSykKQEAgLTE0MywxMyArMTQ2LDEzIEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCXB4YV9ncGlvX21vZGUoZ3Bpb19idXNbcHhhX2kycy5tYXN0ZXJdLnJ4KTsKIAlweGFfZ3Bpb19tb2RlKGdwaW9fYnVzW3B4YV9pMnMubWFzdGVyXS50eCk7CiAJcHhhX2dwaW9fbW9kZShncGlvX2J1c1tweGFfaTJzLm1hc3Rlcl0uZnJtKTsKIAlweGFfZ3Bpb19tb2RlKGdwaW9fYnVzW3B4YV9pMnMubWFzdGVyXS5jbGspOwotCXB4YV9zZXRfY2tlbihDS0VOX0kyUywgMSk7CisJY2xrX2VuYWJsZShjbGtfaTJzKTsKIAlweGFfaTJzX3dhaXQoKTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQpAQCAtMjM0LDEzICsyMzcsMTUgQEAKIAlpZiAoU0FDUjEgJiAoU0FDUjFfRFJFQyB8IFNBQ1IxX0RSUEwpKSB7CiAJCVNBQ1IwICY9IH5TQUNSMF9FTkI7CiAJCXB4YV9pMnNfd2FpdCgpOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9JMlMsIDApOworCQljbGtfZGlzYWJsZShjbGtfaTJzKTsKIAl9CisKKwljbGtfcHV0KGNsa19pMnMpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHB4YTJ4eF9pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCWlmICghZGFpLT5hY3RpdmUpCiAJCXJldHVybiAwOwpAQCAtMjU4LDcgKzI2Myw3IEBACiB9CiAKIHN0YXRpYyBpbnQgcHhhMnh4X2kyc19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaWYgKCFkYWktPmFjdGl2ZSkKIAkJcmV0dXJuIDA7CkBAIC0yODMsNyArMjg4LDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgXAogCQlTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzk2MDAwKQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHB4YV9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHB4YV9pMnNfZGFpID0gewogCS5uYW1lID0gInB4YTJ4eC1pMnMiLAogCS5pZCA9IDAsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9JMlMsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1pMnMuaCBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCmluZGV4IDQ0MzViZDkuLmUyZGVmNDQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCkBAIC0xNSw2ICsxNSw2IEBACiAvKiBJMlMgY2xvY2sgKi8KICNkZWZpbmUgUFhBMlhYX0kyU19TWVNDTEsJCTAKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHB4YV9pMnNfZGFpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LXBjbS5jIGIvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKaW5kZXggMDFhZDdiZi4uMmRmMDNlZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKKysrIGIvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKQEAgLTMzMCw3ICszMzAsNyBAQAogCiBzdGF0aWMgdTY0IHB4YTJ4eF9wY21fZG1hbWFzayA9IERNQV8zMkJJVF9NQVNLOwogCi1pbnQgcHhhMnh4X3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwKK2ludCBweGEyeHhfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCXN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3NwaXR6LmMgYi9zb3VuZC9zb2MvcHhhL3NwaXR6LmMKaW5kZXggZDhiODM3Mi4uNjQzODU3OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9zcGl0ei5jCisrKyBiL3NvdW5kL3NvYy9weGEvc3BpdHouYwpAQCAtMTIsOSArMTIsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDMwdGggTm92IDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTU0LDYwICs1MSw2MCBAQAogc3RhdGljIHZvaWQgc3BpdHpfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewogCWlmIChzcGl0el9zcGtfZnVuYyA9PSBTUElUWl9TUEtfT04pCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJFeHQgU3BrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCWVsc2UKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCiAJLyogc2V0IHVwIGphY2sgY29ubmVjdGlvbiAqLwogCXN3aXRjaCAoc3BpdHpfamFja19mdW5jKSB7CiAJY2FzZSBTUElUWl9IUDoKIAkJLyogZW5hYmxlIGFuZCB1bm11dGUgaHAgamFjaywgZGlzYWJsZSBtaWMgYmlhcyAqLwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDEpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKIAkJc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX01JQzoKIAkJLyogZW5hYmxlIG1pYyBqYWNrIGFuZCBiaWFzLCBtdXRlIGhwICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX0wpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX0xJTkU6CiAJCS8qIGVuYWJsZSBsaW5lIGphY2ssIGRpc2FibGUgbWljIGJpYXMgYW5kIG11dGUgaHAgKi8KLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfUik7CiAJCWJyZWFrOwogCWNhc2UgU1BJVFpfSEVBRFNFVDoKIAkJLyogZW5hYmxlIGFuZCB1bm11dGUgaGVhZHNldCBqYWNrIGVuYWJsZSBtaWMgYmlhcywgbXV0ZSBMIGhwICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX0hQX09GRjoKIAogCQkvKiBqYWNrIHJlbW92ZWQsIGV2ZXJ5dGhpbmcgb2ZmICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBKYWNrIiwgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9MKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9SKTsKIAkJYnJlYWs7CiAJfQotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogfQogCiBzdGF0aWMgaW50IHNwaXR6X3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xMjQsOCArMTIxLDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJdW5zaWduZWQgaW50IGNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTE0NCwyNSArMTQxLDI1IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUwX1NZU0NMSywgY2xrLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3NTBfU1lTQ0xLLCBjbGssCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBJMlMgc3lzdGVtIGNsb2NrIGFzIGlucHV0ICh1bnVzZWQpICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIFBYQTJYWF9JMlNfU1lTQ0xLLCAwLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMjUwLDcgKzI0Nyw3IEBACiB9OwogCiAvKiBTcGl0eiBtYWNoaW5lIGF1ZGlvX21hcCAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAKIAkvKiBoZWFkcGhvbmUgY29ubmVjdGVkIHRvIExPVVQxLCBST1VUMSAqLwogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiTE9VVDEifSwKQEAgLTI2OSw4ICsyNjYsNiBAQAogCiAJLyogbGluZSBpcyBjb25uZWN0ZWQgdG8gaW5wdXQgMSAtIG5vIGJpYXMgKi8KIAl7IkxJTlBVVDEiLCBOVUxMLCAiTGluZSBKYWNrIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqamFja19mdW5jdGlvbltdID0geyJIZWFkcGhvbmUiLCAiTWljIiwgIkxpbmUiLCAiSGVhZHNldCIsCkBAIC0yOTYsMTMgKzI5MSwxMyBAQAogCWludCBpLCBlcnI7CiAKIAkvKiBOQyBjb2RlYyBwaW5zICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJJTlBVVDEiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElOUFVUMiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSSU5QVVQyIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxJTlBVVDMiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUklOUFVUMyIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJPVVQzIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk8iLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJSSU5QVVQxIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTElOUFVUMiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJJTlBVVDIiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMSU5QVVQzIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUklOUFVUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk9VVDMiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNT05PIik7CiAKIAkvKiBBZGQgc3BpdHogc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTBfc3BpdHpfY29udHJvbHMpOyBpKyspIHsKQEAgLTMxMywxNSArMzA4LDEzIEBACiAJfQogCiAJLyogQWRkIHNwaXR6IHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTBfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTBfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKSk7CiAKLQkvKiBTZXQgdXAgc3BpdHogc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCS8qIFNldCB1cCBzcGl0eiBzcGVjaWZpYyBhdWRpbyBwYXRocyAqLworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS90b3NhLmMgYi9zb3VuZC9zb2MvcHhhL3Rvc2EuYwppbmRleCA3MzQ2ZDdlLi5iNmVkYjYxIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3Rvc2EuYworKysgYi9zb3VuZC9zb2MvcHhhL3Rvc2EuYwpAQCAtMTIsOSArMTIsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDMwdGggTm92IDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICogR1BJTydzCiAgKiAgMSAtIEphY2sgSW5zZXJ0aW9uCiAgKiAgNSAtIEhvb2tzd2l0Y2ggKGhlYWRzZXQgYW5zd2VyL2hhbmcgdXAgc3dpdGNoKQpAQCAtNTUsMjkgKzUyLDMxIEBACiAKIHN0YXRpYyB2b2lkIHRvc2FfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBzcGsgPSAwLCBtaWNfaW50ID0gMCwgaHAgPSAwLCBocyA9IDA7Ci0KIAkvKiBzZXQgdXAgamFjayBjb25uZWN0aW9uICovCiAJc3dpdGNoICh0b3NhX2phY2tfZnVuYykgewogCWNhc2UgVE9TQV9IUDoKLQkJaHAgPSAxOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgKEludGVybmFsKSIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAljYXNlIFRPU0FfTUlDX0lOVDoKLQkJbWljX2ludCA9IDE7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIChJbnRlcm5hbCkiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgVE9TQV9IRUFEU0VUOgotCQlocyA9IDE7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyAoSW50ZXJuYWwpIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCX0KIAogCWlmICh0b3NhX3Nwa19mdW5jID09IFRPU0FfU1BLX09OKQotCQlzcGsgPSAxOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIlNwZWFrZXIiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlNwZWFrZXIiKTsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJTcGVha2VyIiwgc3BrKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIChJbnRlcm5hbCkiLCBtaWNfaW50KTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCBocCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgSmFjayIsIGhzKTsKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIH0KIAogc3RhdGljIGludCB0b3NhX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xNTQsNyArMTUzLDcgQEAKIH07CiAKIC8qIHRvc2EgYXVkaW8gbWFwICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAogCS8qIGhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gSFBPVVRMLCBIUE9VVFIgKi8KIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQT1VUTCJ9LApAQCAtMTczLDggKzE3Miw2IEBACiAJeyJIZWFkc2V0IEphY2siLCBOVUxMLCAiSFBPVVRSIn0sCiAJeyJMSU5FSU5SIiwgTlVMTCwgIk1pYyBCaWFzIn0sCiAJeyJNaWMgQmlhcyIsIE5VTEwsICJIZWFkc2V0IEphY2sifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7IkhlYWRwaG9uZSIsICJNaWMiLCAiTGluZSIsICJIZWFkc2V0IiwKQEAgLTE5Niw4ICsxOTMsOCBAQAogewogCWludCBpLCBlcnI7CiAKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUMyIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PT1VUIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9PVVQiKTsKIAogCS8qIGFkZCB0b3NhIHNwZWNpZmljIGNvbnRyb2xzICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9zYV9jb250cm9scyk7IGkrKykgewpAQCAtMjA4LDE3ICsyMDUsMTMgQEAKIAl9CiAKIAkvKiBhZGQgdG9zYSBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9zYV9kYXBtX3dpZGdldHMpOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmdG9zYV9kYXBtX3dpZGdldHNbaV0pOwotCX0KKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB0b3NhX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUodG9zYV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIHNldCB1cCB0b3NhIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykgewotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOwotCX0KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L0tjb25maWcgYi9zb3VuZC9zb2MvczNjMjR4eC9LY29uZmlnCmluZGV4IDFmNmRiZmMuLmI5ZjIzNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L0tjb25maWcKKysrIGIvc291bmQvc29jL3MzYzI0eHgvS2NvbmZpZwpAQCAtMSw3ICsxLDYgQEAKIGNvbmZpZyBTTkRfUzNDMjRYWF9TT0MKIAl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgU2Ftc3VuZyBTM0MyNFhYIGNoaXBzIgotCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwICYmIFNORF9TT0MKLQlzZWxlY3QgU05EX1BDTQorCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvCiAJICB0aGUgUzNDMjRYWCBBQzk3LCBJMlMgb3IgU1NQIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCkBAIC0xNiw3ICsxNSw2IEBACiBjb25maWcgU05EX1MzQzI0NDNfU09DX0FDOTcKIAl0cmlzdGF0ZQogCXNlbGVjdCBBQzk3X0JVUwotCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfU09DX0FDOTdfQlVTCiAJCiBjb25maWcgU05EX1MzQzI0WFhfU09DX05FTzE5NzNfV004NzUzCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9uZW8xOTczX3dtODc1My5jIGIvc291bmQvc29jL3MzYzI0eHgvbmVvMTk3M193bTg3NTMuYwppbmRleCAwZTlkMWM1Li40ZDdhOWFhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9uZW8xOTczX3dtODc1My5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L25lbzE5NzNfd204NzUzLmMKQEAgLTEwLDEwICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMjB0aCBKYW4gMjAwNyAgIEluaXRpYWwgdmVyc2lvbi4KLSAqICAgIDA1dGggRmViIDIwMDcgICBSZW5hbWUgYWxsIHRvIE5lbzE5NzMKLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMjYsNiArMjIsNyBAQAogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgogI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgogI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvdGx2Lmg+CiAKICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9zY29vcC5oPgpAQCAtNDMsNiArNDAsMTQgQEAKICNpbmNsdWRlICJzM2MyNHh4LXBjbS5oIgogI2luY2x1ZGUgInMzYzI0eHgtaTJzLmgiCiAKKy8qIERlYnVnZ2luZyBzdHVmZiAqLworI2RlZmluZSBTM0MyNFhYX1NPQ19ORU8xOTczX1dNODc1M19ERUJVRyAwCisjaWYgUzNDMjRYWF9TT0NfTkVPMTk3M19XTTg3NTNfREVCVUcKKyNkZWZpbmUgREJHKHguLi4pIHByaW50ayhLRVJOX0RFQlVHICJzM2MyNHh4LXNvYy1uZW8xOTczLXdtODc1MzogIiB4KQorI2Vsc2UKKyNkZWZpbmUgREJHKHguLi4pCisjZW5kaWYKKwogLyogZGVmaW5lIHRoZSBzY2VuYXJpb3MgKi8KICNkZWZpbmUgTkVPX0FVRElPX09GRgkJCTAKICNkZWZpbmUgTkVPX0dTTV9DQUxMX0FVRElPX0hBTkRTRVQJMQpAQCAtNjEsMTIgKzY2LDE0IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXVuc2lnbmVkIGludCBwbGxfb3V0ID0gMCwgYmNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAJdW5zaWduZWQgbG9uZyBpaXNfY2xrcmF0ZTsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWlzX2Nsa3JhdGUgPSBzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKCk7CiAKIAlzd2l0Y2ggKHBhcmFtc19yYXRlKHBhcmFtcykpIHsKQEAgLTEwMSw0NCArMTA4LDQ0IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLAogCQlTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCVNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwKIAkJU05EX1NPQ19EQUlGTVRfSTJTIHwgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAogCQlTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX01DTEssIHBsbF9vdXQsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODc1M19NQ0xLLCBwbGxfb3V0LAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBNQ0xLIGRpdmlzaW9uIGZvciBzYW1wbGUgcmF0ZSAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLCBTM0MyNFhYX0RJVl9NQ0xLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfTUNMSywKIAkJUzNDMjQxMF9JSVNNT0RfMzJGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY29kZWMgQkNMSyBkaXZpc2lvbiBmb3Igc2FtcGxlIHJhdGUgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODc1M19CQ0xLRElWLCBiY2xrKTsKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNvZGVjX2RhaSwgV004NzUzX0JDTEtESVYsIGJjbGspOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHByZXNjYWxlciBkaXZpc2lvbiBmb3Igc2FtcGxlIHJhdGUgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfUFJFU0NBTEVSLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfUFJFU0NBTEVSLAogCQlTM0MyNFhYX1BSRVNDQUxFKDQsIDQpKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNvZGVjIFBMTCBpbnB1dCBpcyBQQ0xLLzQgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwxLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwKIAkJaWlzX2Nsa3JhdGUgLyA0LCBwbGxfb3V0KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE0OSwxMCArMTU2LDEyIEBACiBzdGF0aWMgaW50IG5lbzE5NzNfaGlmaV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKIAkvKiBkaXNhYmxlIHRoZSBQTEwgKi8KLQlyZXR1cm4gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwgMCwgMCk7CisJcmV0dXJuIHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwgMCwgMCk7CiB9CiAKIC8qCkBAIC0xNjcsMTEgKzE3NiwxMyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwogCXVuc2lnbmVkIGludCBwY21kaXYgPSAwOwogCWludCByZXQgPSAwOwogCXVuc2lnbmVkIGxvbmcgaWlzX2Nsa3JhdGU7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlpc19jbGtyYXRlID0gczNjMjR4eF9pMnNfZ2V0X2Nsb2NrcmF0ZSgpOwogCiAJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgIT0gODAwMCkKQEAgLTE4MywyNCArMTk0LDI0IEBACiAKIAkvKiB0b2RvOiBnZyBjaGVjayBtb2RlIChEU1BfQikgYWdhaW5zdCBDU1IgZGF0YXNoZWV0ICovCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9EU1BfQiB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0RTUF9CIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX1BDTUNMSywgMTIyODgwMDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODc1M19QQ01DTEssIDEyMjg4MDAwLAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjb2RlYyBQQ00gZGl2aXNpb24gZm9yIHNhbXBsZSByYXRlICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg3NTNfUENNRElWLCBwY21kaXYpOworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg3NTNfUENNRElWLCBwY21kaXYpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogY29uZmlndWUgYW5kIGVuYWJsZSBQTEwgZm9yIDEyLjI4OE1IeiBvdXRwdXQgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMiwKIAkJaWlzX2Nsa3JhdGUgLyA0LCAxMjI4ODAwMCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yMTEsMTAgKzIyMiwxMiBAQAogc3RhdGljIGludCBuZW8xOTczX3ZvaWNlX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIAogCS8qIGRpc2FibGUgdGhlIFBMTCAqLwotCXJldHVybiBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLCAwLCAwKTsKKwlyZXR1cm4gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLCAwLCAwKTsKIH0KIAogc3RhdGljIHN0cnVjdCBzbmRfc29jX29wcyBuZW8xOTczX3ZvaWNlX29wcyA9IHsKQEAgLTIzMyw3OSArMjQ2LDgxIEBACiAKIHN0YXRpYyBpbnQgc2V0X3NjZW5hcmlvX2VuZHBvaW50cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBzY2VuYXJpbykKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCXN3aXRjaCAobmVvMTk3M19zY2VuYXJpbykgewogCWNhc2UgTkVPX0FVRElPX09GRjoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fR1NNX0NBTExfQVVESU9fSEFORFNFVDoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMSk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19HU01fQ0FMTF9BVURJT19IRUFEU0VUOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0dTTV9DQUxMX0FVRElPX0JMVUVUT09USDoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX1NURVJFT19UT19TUEVBS0VSUzoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19TVEVSRU9fVE9fSEVBRFBIT05FUzoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19DQVBUVVJFX0hBTkRTRVQ6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDEpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fQ0FQVFVSRV9IRUFEU0VUOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0NBUFRVUkVfQkxVRVRPT1RIOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCX0KIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMTUsNiArMzMwLDggQEAKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmIChuZW8xOTczX3NjZW5hcmlvID09IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdKQogCQlyZXR1cm4gMDsKIApAQCAtMzI3LDYgKzM0NCw4IEBACiAKIHN0YXRpYyB2b2lkIGxtNDg1N193cml0ZV9yZWdzKHZvaWQpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpZiAoaTJjX21hc3Rlcl9zZW5kKGkyYywgbG00ODU3X3JlZ3MsIDQpICE9IDQpCiAJCXByaW50ayhLRVJOX0VSUiAibG00ODU3OiBpMmMgd3JpdGUgZmFpbGVkXG4iKTsKIH0KQEAgLTMzOCw2ICszNTcsOCBAQAogCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4MEY7CiAJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhGRjsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAobG00ODU3X3JlZ3NbcmVnXSA+PiBzaGlmdCkgJiBtYXNrOwogCXJldHVybiAwOwogfQpAQCAtMzY0LDYgKzM4NSw4IEBACiB7CiAJdTggdmFsdWUgPSBsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gJiAweDBGOwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpZiAodmFsdWUpCiAJCXZhbHVlIC09IDU7CiAKQEAgLTM3Niw2ICszOTksOCBAQAogewogCXU4IHZhbHVlID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmICh2YWx1ZSkKIAkJdmFsdWUgKz0gNTsKIApAQCAtMzk3LDggKzQyMiw3IEBACiB9OwogCiAKLS8qIGV4YW1wbGUgbWFjaGluZSBhdWRpb19tYXBuZWN0aW9ucyAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgZGFwbV9yb3V0ZXNbXSA9IHsKIAogCS8qIENvbm5lY3Rpb25zIHRvIHRoZSBsbTQ4NTcgYW1wICovCiAJeyJBdWRpbyBPdXQiLCBOVUxMLCAiTE9VVDEifSwKQEAgLTQyMSw4ICs0NDUsNiBAQAogCiAJLyogQ29ubmVjdCB0aGUgQUxDIHBpbnMgKi8KIAl7IkFDSU4iLCBOVUxMLCAiQUNPUCJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmxtNDg1N19tb2RlW10gPSB7CkBAIC00NTMsMTMgKzQ3NSwxNiBAQAogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShuZW9fc2NlbmFyaW9zKSwgbmVvX3NjZW5hcmlvcyksCiB9OwogCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoc3RlcmVvX3RsdiwgLTQwNTAsIDE1MCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUobW9ub190bHYsIC0zNDUwLCAxNTAsIDApOworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NzUzX25lbzE5NzNfY29udHJvbHNbXSA9IHsKLQlTT0NfU0lOR0xFX0VYVCgiQW1wIExlZnQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X0xWT0wsIDAsIDMxLCAwLAotCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcpLAotCVNPQ19TSU5HTEVfRVhUKCJBbXAgUmlnaHQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X1JWT0wsIDAsIDMxLCAwLAotCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcpLAotCVNPQ19TSU5HTEVfRVhUKCJBbXAgTW9ubyBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTVZPTCwgMCwgMzEsIDAsCi0JCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZyksCisJU09DX1NJTkdMRV9FWFRfVExWKCJBbXAgTGVmdCBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTFZPTCwgMCwgMzEsIDAsCisJCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZywgc3RlcmVvX3RsdiksCisJU09DX1NJTkdMRV9FWFRfVExWKCJBbXAgUmlnaHQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X1JWT0wsIDAsIDMxLCAwLAorCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcsIHN0ZXJlb190bHYpLAorCVNPQ19TSU5HTEVfRVhUX1RMVigiQW1wIE1vbm8gUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X01WT0wsIDAsIDMxLCAwLAorCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcsIG1vbm9fdGx2KSwKIAlTT0NfRU5VTV9FWFQoIkFtcCBNb2RlIiwgbG00ODU3X21vZGVfZW51bVswXSwKIAkJbG00ODU3X2dldF9tb2RlLCBsbTQ4NTdfc2V0X21vZGUpLAogCVNPQ19FTlVNX0VYVCgiTmVvIE1vZGUiLCBuZW9fc2NlbmFyaW9fZW51bVswXSwKQEAgLTQ4MywyMSArNTA4LDIzIEBACiB7CiAJaW50IGksIGVycjsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJLyogc2V0IHVwIE5DIGNvZGVjIHBpbnMgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTE9VVDIiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUk9VVDIiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUMyIsICAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUNCIsICAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElORTEiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElORTIiLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMT1VUMiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJPVVQyIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk9VVDQiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMSU5FMSIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxJTkUyIik7CiAKIAogCS8qIHNldCBlbmRwb2ludHMgdG8gZGVmYXVsdCBtb2RlICovCiAJc2V0X3NjZW5hcmlvX2VuZHBvaW50cyhjb2RlYywgTkVPX0FVRElPX09GRik7CiAKIAkvKiBBZGQgbmVvMTk3MyBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzUzX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzUzX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzUzX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzUzX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogYWRkIG5lbzE5NzMgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTNfbmVvMTk3M19jb250cm9scyk7IGkrKykgewpAQCAtNTA4LDIwICs1MzUsMTggQEAKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JLyogc2V0IHVwIG5lbzE5NzMgc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXBuZWN0cyAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKLQl9CisJLyogc2V0IHVwIG5lbzE5NzMgc3BlY2lmaWMgYXVkaW8gcm91dGVzICovCisJZXJyID0gc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGRhcG1fcm91dGVzLAorCQkJCSAgICAgIEFSUkFZX1NJWkUoZGFwbV9yb3V0ZXMpKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCiAvKgogICogQlQgQ29kZWMgREFJCiAgKi8KLXN0YXRpYyBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGJ0X2RhaSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWkgYnRfZGFpID0gewogCS5uYW1lID0gIkJsdWV0b290aCIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKQEAgLTU4Myw2ICs2MDgsOCBAQAogewogCWludCByZXQ7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWNsaWVudF90ZW1wbGF0ZS5hZGFwdGVyID0gYWRhcDsKIAljbGllbnRfdGVtcGxhdGUuYWRkciA9IGFkZHI7CiAKQEAgLTYwNiw2ICs2MzMsOCBAQAogCiBzdGF0aWMgaW50IGxtNDg1N19pMmNfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogCWtmcmVlKGNsaWVudCk7CiAJcmV0dXJuIDA7CkBAIC02MTMsNiArNjQyLDggQEAKIAogc3RhdGljIGludCBsbTQ4NTdfaTJjX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlyZXR1cm4gaTJjX3Byb2JlKGFkYXAsICZhZGRyX2RhdGEsIGxtNDg1N19hbXBfcHJvYmUpOwogfQogCkBAIC02MjAsNiArNjUxLDggQEAKIAogc3RhdGljIGludCBsbTQ4NTdfc3VzcGVuZChzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlkZXZfZGJnKCZkZXYtPmRldiwgImxtNDg1N19zdXNwZW5kXG4iKTsKIAlsbTQ4NTdfc3RhdGUgPSBsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gJiAweGY7CiAJaWYgKGxtNDg1N19zdGF0ZSkgewpAQCAtNjMxLDYgKzY2NCw4IEBACiAKIHN0YXRpYyBpbnQgbG00ODU3X3Jlc3VtZShzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2KQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWYgKGxtNDg1N19zdGF0ZSkgewogCQlsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gfD0gKGxtNDg1N19zdGF0ZSAmIDB4MGYpOwogCQlsbTQ4NTdfd3JpdGVfcmVncygpOwpAQCAtNjQwLDYgKzY3NSw4IEBACiAKIHN0YXRpYyB2b2lkIGxtNDg1N19zaHV0ZG93bihzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2KQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJZGV2X2RiZygmZGV2LT5kZXYsICJsbTQ4NTdfc2h1dGRvd25cbiIpOwogCWxtNDg1N19yZWdzW0xNNDg1N19DVFJMXSAmPSAweGYwOwogCWxtNDg1N193cml0ZV9yZWdzKCk7CkBAIC02NzEsNiArNzA4LDggQEAKIHsKIAlpbnQgcmV0OwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAluZW8xOTczX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKIAlpZiAoIW5lbzE5NzNfc25kX2RldmljZSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC02OTEsNiArNzMwLDggQEAKIAogc3RhdGljIHZvaWQgX19leGl0IG5lbzE5NzNfZXhpdCh2b2lkKQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaTJjX2RlbF9kcml2ZXIoJmxtNDg1N19pMmNfZHJpdmVyKTsKIAlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihuZW8xOTczX3NuZF9kZXZpY2UpOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuYyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmMKaW5kZXggYzRhNDZkZC4uZWU0Njc2ZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5jCkBAIC0yOTUsNyArMjk1LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjQxMiBJMlMgREFJIGZvcm1hdAogICovCi1zdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAl1MzIgaWlzbW9kOwpAQCAtNTAwLDcgKzUwMCw3IEBACiAvKgogICogU2V0IFMzQzI0MTIgQ2xvY2sgc291cmNlCiAgKi8KLXN0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCQkgIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXUzMiBpaXNtb2QgPSByZWFkbChzM2MyNDEyX2kycy5yZWdzICsgUzNDMjQxMl9JSVNNT0QpOwpAQCAtNTI4LDcgKzUyOCw3IEBACiAvKgogICogU2V0IFMzQzI0MTIgQ2xvY2sgZGl2aWRlcnMKICAqLwotc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3QgczNjMjQxMl9pMnNfaW5mbyAqaTJzID0gJnMzYzI0MTJfaTJzOwpAQCAtNjAxLDcgKzYwMSw4IEBACiBFWFBPUlRfU1lNQk9MX0dQTChzM2MyNDEyX2dldF9paXNjbGspOwogCiAKLXN0YXRpYyBpbnQgczNjMjQxMl9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgczNjMjQxMl9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTY0Nyw3ICs2NDgsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHMzYzI0MTJfaTJzX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LAotCQkJICAgICAgc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHMzYzI0MTJfaTJzX2luZm8gKmkycyA9ICZzM2MyNDEyX2kyczsKIAl1MzIgaWlzbW9kOwpAQCAtNjc1LDcgKzY3Niw3IEBACiB9CiAKIHN0YXRpYyBpbnQgczNjMjQxMl9pMnNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3QgczNjMjQxMl9pMnNfaW5mbyAqaTJzID0gJnMzYzI0MTJfaTJzOwogCkBAIC03MDcsNyArNzA4LDcgQEAKIAlTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzMyMDAwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBcCiAJU05EUlZfUENNX1JBVEVfNDgwMDAgfCBTTkRSVl9QQ01fUkFURV84ODIwMCB8IFNORFJWX1BDTV9SQVRFXzk2MDAwKQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHMzYzI0MTJfaTJzX2RhaSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBzM2MyNDEyX2kyc19kYWkgPSB7CiAJLm5hbWUJPSAiczNjMjQxMi1pMnMiLAogCS5pZAk9IDAsCiAJLnR5cGUJPSBTTkRfU09DX0RBSV9JMlMsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5oIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuaAppbmRleCAyN2Y0OGUxLi5hYWMwOGEyIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5oCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmgKQEAgLTI0LDcgKzI0LDcgQEAKIAogZXh0ZXJuIHN0cnVjdCBjbGsgKnMzYzI0MTJfZ2V0X2lpc2Nsayh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQxMl9pMnNfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzM2MyNDEyX2kyc19kYWk7CiAKIHN0cnVjdCBzM2MyNDEyX3JhdGVfY2FsYyB7CiAJdW5zaWduZWQgaW50CWNsa19kaXY7CS8qIGZvciBwcmVzY2FsZXIgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0NDMtYWM5Ny5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKaW5kZXggZTgxZDlhNi4uNzgzMzQ5YiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKQEAgLTEwLDkgKzEwLDYgQEAKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqCTIxc3QgTWFyIDIwMDcgICBJbml0aWFsIFZlcnNpb24KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMjEyLDcgKzIwOSw4IEBACiAJLmRtYV9zaXplCT0gNCwKIH07CiAKLXN0YXRpYyBpbnQgczNjMjQ0M19hYzk3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IHMzYzI0NDNfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaW50IHJldDsKIAl1MzIgYWNfZ2xiY3RybDsKQEAgLTI2Myw3ICsyNjEsOCBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHMzYzI0NDNfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyB2b2lkIHMzYzI0NDNfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlmcmVlX2lycShJUlFfUzNDMjQ0eF9BQzk3LCBOVUxMKTsKIAljbGtfZGlzYWJsZShzM2MyNHh4X2FjOTcuYWM5N19jbGspOwpAQCAtMjc1LDcgKzI3NCw3IEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQljcHVfZGFpLT5kbWFfZGF0YSA9ICZzM2MyNDQzX2FjOTdfcGNtX3N0ZXJlb19vdXQ7CkBAIC0zMTcsNyArMzE2LDcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMzUzLDcgKzM1Miw3IEBACiAJCVNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfCBcCiAJCVNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQ0M19hYzk3X2RhaVtdID0geworc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0NDNfYWM5N19kYWlbXSA9IHsKIHsKIAkubmFtZSA9ICJzM2MyNDQzLWFjOTciLAogCS5pZCA9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWFjOTcuaCBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCmluZGV4IGJmMDNlOGUuLmE5NmRjYWQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCkBAIC0yNiw2ICsyNiw2IEBACiAjZGVmaW5lIElSUV9TM0MyNDR4X0FDOTcgSVJRX1MzQzI0NDNfQUM5NwogI2VuZGlmCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHMzYzI0NDNfYWM5N19kYWlbXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgczNjMjQ0M19hYzk3X2RhaVtdOwogCiAjZW5kaWYgLypTM0MyNFhYQUM5N19IXyovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuYwppbmRleCAxZWQ2YWZkLi4zOTc1MjQyIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmMKQEAgLTEyLDExICsxMiw2IEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDExdGggRGVjIDIwMDYgICBNZXJnZWQgd2l0aCBTaW10ZWMgZHJpdmVyCi0gKiAgICAxMHRoIE5vdiAyMDA2ICAgSW5pdGlhbCB2ZXJzaW9uLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0xODAsNyArMTc1LDcgQEAKIHN0YXRpYyBpbnQgczNjMjR4eF9zbmRfbHJzeW5jKHZvaWQpCiB7CiAJdTMyIGlpc2NvbjsKLQl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyg1KTsKKwlpbnQgdGltZW91dCA9IDUwOyAvKiA1bXMgKi8KIAogCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOwogCkBAIC0xODksOCArMTg0LDkgQEAKIAkJaWYgKGlpc2NvbiAmIFMzQzI0MTBfSUlTQ09OX0xSSU5ERVgpCiAJCQlicmVhazsKIAotCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkKKwkJaWYgKCF0aW1lb3V0LS0pCiAJCQlyZXR1cm4gLUVUSU1FRE9VVDsKKwkJdWRlbGF5KDEwMCk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yMDksNyArMjA1LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjR4eCBJMlMgREFJIGZvcm1hdAogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJdTMyIGlpc21vZDsKQEAgLTMxNyw3ICszMTMsNyBAQAogLyoKICAqIFNldCBTM0MyNHh4IENsb2NrIHNvdXJjZQogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJdTMyIGlpc21vZCA9IHJlYWRsKHMzYzI0eHhfaTJzLnJlZ3MgKyBTM0MyNDEwX0lJU01PRCk7CkBAIC0zNDMsNyArMzM5LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjR4eCBDbG9jayBkaXZpZGVycwogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAl1MzIgcmVnOwpAQCAtMzgxLDcgKzM3Nyw4IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKTsKIAotc3RhdGljIGludCBzM2MyNHh4X2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBzM2MyNHh4X2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtNDE0LDcgKzQxMSw3IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgczNjMjR4eF9pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTQyOSw3ICs0MjYsNyBAQAogfQogCiBzdGF0aWMgaW50IHMzYzI0eHhfaTJzX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAJY2xrX2VuYWJsZShzM2MyNHh4X2kycy5paXNfY2xrKTsKQEAgLTQ1Miw3ICs0NDksNyBAQAogCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfMzIwMDAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8IFwKIAlTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzg4MjAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjR4eF9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0eHhfaTJzX2RhaSA9IHsKIAkubmFtZSA9ICJzM2MyNHh4LWkycyIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmggYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5oCmluZGV4IDUzN2I0ZWMuLjcyNmQ5MWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmgKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuaApAQCAtMzIsNiArMzIsNiBAQAogCiB1MzIgczNjMjR4eF9pMnNfZ2V0X2Nsb2NrcmF0ZSh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjR4eF9pMnNfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzM2MyNHh4X2kyc19kYWk7CiAKICNlbmRpZiAvKlMzQzI0WFhJMlNfSF8qLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1wY20uYyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtcGNtLmMKaW5kZXggNzgwNmFlNi4uY2VmNzliMyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1wY20uYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LXBjbS5jCkBAIC0xMiwxMCArMTIsNiBAQAogICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDExdGggRGVjIDIwMDYgICBNZXJnZWQgd2l0aCBTaW10ZWMgZHJpdmVyCi0gKiAgICAxMHRoIE5vdiAyMDA2ICAgSW5pdGlhbCB2ZXJzaW9uLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTQzMyw3ICs0MjksNyBAQAogc3RhdGljIHU2NCBzM2MyNHh4X3BjbV9kbWFtYXNrID0gRE1BXzMyQklUX01BU0s7CiAKIHN0YXRpYyBpbnQgczNjMjR4eF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKIHsKIAlpbnQgcmV0ID0gMDsKIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvc21kazI0NDNfd205NzEwLmMgYi9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYwppbmRleCBiNGE1NjMwLi44NTE1ZDZmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYwpAQCAtMTAsOSArMTAsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDh0aCBNYXIgMjAwNyAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL0tjb25maWcgYi9zb3VuZC9zb2Mvc2gvS2NvbmZpZwppbmRleCA0YzFlMDEzLi41NGJkNjA0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvS2NvbmZpZworKysgYi9zb3VuZC9zb2Mvc2gvS2NvbmZpZwpAQCAtMyw3ICszLDcgQEAKIAogY29uZmlnIFNORF9TT0NfUENNX1NINzc2MAogCXRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3IgUmVuZXNhcyBTSDc3NjAiCi0JZGVwZW5kcyBvbiBDUFVfU1VCVFlQRV9TSDc3NjAgJiYgU05EX1NPQyAmJiBTSF9ETUFCUkcKKwlkZXBlbmRzIG9uIENQVV9TVUJUWVBFX1NINzc2MCAmJiBTSF9ETUFCUkcKIAloZWxwCiAJICBFbmFibGUgdGhpcyBvcHRpb24gZm9yIFNINzc2MCBBQzk3L0kyUyBhdWRpbyBzdXBwb3J0LgogCkBAIC0xMywxMCArMTMsOSBAQAogIyMKIAogY29uZmlnIFNORF9TT0NfU0g0X0hBQworCXRyaXN0YXRlCiAJc2VsZWN0IEFDOTdfQlVTCiAJc2VsZWN0IFNORF9TT0NfQUM5N19CVVMKLQlzZWxlY3QgU05EX0FDOTdfQ09ERUMKLQl0cmlzdGF0ZQogCiBjb25maWcgU05EX1NPQ19TSDRfU1NJCiAJdHJpc3RhdGUKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9kbWEtc2g3NzYwLmMgYi9zb3VuZC9zb2Mvc2gvZG1hLXNoNzc2MC5jCmluZGV4IDdhM2NlODAuLjlmYWExMjYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9kbWEtc2g3NzYwLmMKKysrIGIvc291bmQvc29jL3NoL2RtYS1zaDc3NjAuYwpAQCAtMzI2LDcgKzMyNiw3IEBACiB9CiAKIHN0YXRpYyBpbnQgY2FtZWxvdF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLQkJCSAgIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCQkgICBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCS8qIGRvbnQgdXNlIFNORFJWX0RNQV9UWVBFX0RFViwgc2luY2UgaXQgd2lsbCBvb3BzIHRoZSBTSCBrZXJuZWwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9oYWMuYyBiL3NvdW5kL3NvYy9zaC9oYWMuYwppbmRleCBiN2I2NzZiLi5kZjdiYzM0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvaGFjLmMKKysrIGIvc291bmQvc29jL3NoL2hhYy5jCkBAIC0yNjYsNyArMjY2LDcgQEAKICNkZWZpbmUgQUM5N19GTVRTCVwKIAlTTkRSVl9QQ01fRk1UQklUX1MxNl9MRQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHNoNF9oYWNfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgc2g0X2hhY19kYWlbXSA9IHsKIHsKIAkubmFtZQkJCT0gIkhBQzAiLAogCS5pZAkJCT0gMCwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9zaDc3NjAtYWM5Ny5jIGIvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKaW5kZXggMmY5MWRlOC4uOTJiZmFmNCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKKysrIGIvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKQEAgLTIwLDEyICsyMCwxMiBAQAogI2RlZmluZSBJUFNFTCAweEZFNDAwMDM0CiAKIC8qIHBsYXRmb3JtIHNwZWNpZmljIHN0cnVjdHMgY2FuIGJlIGRlY2xhcmVkIGhlcmUgKi8KLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHNoNF9oYWNfZGFpWzJdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzaDRfaGFjX2RhaVsyXTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBzaDc3NjBfc29jX3BsYXRmb3JtOwogCiBzdGF0aWMgaW50IG1hY2hpbmVfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9zc2kuYyBiL3NvdW5kL3NvYy9zaC9zc2kuYwppbmRleCAzMzg4YmMzLi41NWMzNDY0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvc3NpLmMKKysrIGIvc291bmQvc29jL3NoL3NzaS5jCkBAIC0yMDgsNyArMjA4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLCBpbnQgY2xrX2lkLAorc3RhdGljIGludCBzc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksIGludCBjbGtfaWQsCiAJCQkgIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzc2lfcHJpdiAqc3NpID0gJnNzaV9jcHVfZGF0YVtjcHVfZGFpLT5pZF07CkBAIC0yMjIsNyArMjIyLDcgQEAKICAqIFRoaXMgZGl2aWRlciBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBTU0lfU0NLIChJMlMgYml0Y2xvY2spIGZyb20gdGhlCiAgKiBjbG9jayBhdCB0aGUgSEFDX0JJVF9DTEsgKCJvdmVyc2FtcGxpbmcgY2xvY2siKSBwaW4uCiAgKi8KLXN0YXRpYyBpbnQgc3NpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpLCBpbnQgZGlkLCBpbnQgZGl2KQorc3RhdGljIGludCBzc2lfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IGRpZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgc3NpX3ByaXYgKnNzaSA9ICZzc2lfY3B1X2RhdGFbZGFpLT5pZF07CiAJdW5zaWduZWQgbG9uZyBzc2ljcjsKQEAgLTI0NSw3ICsyNDUsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNzaV9zZXRfZm10KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCkKK3N0YXRpYyBpbnQgc3NpX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNzaV9wcml2ICpzc2kgPSAmc3NpX2NwdV9kYXRhW2RhaS0+aWRdOwogCXVuc2lnbmVkIGxvbmcgc3NpY3IgPSBTU0lSRUcoU1NJQ1IpOwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJIFNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSB8IFNORFJWX1BDTV9GTVRCSVRfVTI0XzNMRSB8CVwKIAkgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUgIHwgU05EUlZfUENNX0ZNVEJJVF9VMzJfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgc2g0X3NzaV9kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBzaDRfc3NpX2RhaVtdID0gewogewogCS5uYW1lCQkJPSAiU1NJMCIsCiAJLmlkCQkJPSAwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NvYy1jb3JlLmMgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwppbmRleCBlMTQ4ZGI5Li44M2YxMTkwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc29jLWNvcmUuYworKysgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwpAQCAtMTQsMTAgKzE0LDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAxMnRoIEF1ZyAyMDA1ICAgSW5pdGlhbCB2ZXJzaW9uLgotICogICAgMjV0aCBPY3QgMjAwNSAgIFdvcmtpbmcgQ29kZWMsIEludGVyZmFjZSBhbmQgUGxhdGZvcm0gcmVnaXN0cmF0aW9uLgotICoKICAqICBUT0RPOgogICogICBvIEFkZCBodyBydWxlcyB0byBlbmZvcmNlIHJhdGVzLCBldGMuCiAgKiAgIG8gTW9yZSB0ZXN0aW5nIHdpdGggb3RoZXIgY29kZWNzL21hY2hpbmVzLgpAQCAtMTEyLDkgKzEwOCw5IEBACiB9CiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBnZXRfZGFpX25hbWUoaW50IHR5cGUpCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmdldF9kYWlfbmFtZShpbnQgdHlwZSkKIHsKLQlzd2l0Y2godHlwZSkgeworCXN3aXRjaCAodHlwZSkgewogCWNhc2UgU05EX1NPQ19EQUlfQUM5N19CVVM6CiAJY2FzZSBTTkRfU09DX0RBSV9BQzk3OgogCQlyZXR1cm4gIkFDOTciOwpAQCAtMTM4LDggKzEzNCw4IEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlpbnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJnBjbV9tdXRleCk7CkBAIC0xODIsOSArMTc4LDExIEBACiAJLyogQ2hlY2sgdGhhdCB0aGUgY29kZWMgYW5kIGNwdSBEQUkncyBhcmUgY29tcGF0aWJsZSAqLwogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWluID0KLQkJCW1heChjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWluLCBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21pbik7CisJCQltYXgoY29kZWNfZGFpLT5wbGF5YmFjay5yYXRlX21pbiwKKwkJCSAgICBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21pbik7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWF4ID0KLQkJCW1pbihjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWF4LCBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21heCk7CisJCQltaW4oY29kZWNfZGFpLT5wbGF5YmFjay5yYXRlX21heCwKKwkJCSAgICBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21heCk7CiAJCXJ1bnRpbWUtPmh3LmNoYW5uZWxzX21pbiA9CiAJCQltYXgoY29kZWNfZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4sCiAJCQkJY3B1X2RhaS0+cGxheWJhY2suY2hhbm5lbHNfbWluKTsKQEAgLTE5Nyw5ICsxOTUsMTEgQEAKIAkJCWNvZGVjX2RhaS0+cGxheWJhY2sucmF0ZXMgJiBjcHVfZGFpLT5wbGF5YmFjay5yYXRlczsKIAl9IGVsc2UgewogCQlydW50aW1lLT5ody5yYXRlX21pbiA9Ci0JCQltYXgoY29kZWNfZGFpLT5jYXB0dXJlLnJhdGVfbWluLCBjcHVfZGFpLT5jYXB0dXJlLnJhdGVfbWluKTsKKwkJCW1heChjb2RlY19kYWktPmNhcHR1cmUucmF0ZV9taW4sCisJCQkgICAgY3B1X2RhaS0+Y2FwdHVyZS5yYXRlX21pbik7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWF4ID0KLQkJCW1pbihjb2RlY19kYWktPmNhcHR1cmUucmF0ZV9tYXgsIGNwdV9kYWktPmNhcHR1cmUucmF0ZV9tYXgpOworCQkJbWluKGNvZGVjX2RhaS0+Y2FwdHVyZS5yYXRlX21heCwKKwkJCSAgICBjcHVfZGFpLT5jYXB0dXJlLnJhdGVfbWF4KTsKIAkJcnVudGltZS0+aHcuY2hhbm5lbHNfbWluID0KIAkJCW1heChjb2RlY19kYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluLAogCQkJCWNwdV9kYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluKTsKQEAgLTIyOSw3ICsyMjksNyBAQAogCQlnb3RvIG1hY2hpbmVfZXJyOwogCX0KIAotCWRiZygiYXNvYzogJXMgPC0+ICVzIGluZm86XG4iLGNvZGVjX2RhaS0+bmFtZSwgY3B1X2RhaS0+bmFtZSk7CisJZGJnKCJhc29jOiAlcyA8LT4gJXMgaW5mbzpcbiIsIGNvZGVjX2RhaS0+bmFtZSwgY3B1X2RhaS0+bmFtZSk7CiAJZGJnKCJhc29jOiByYXRlIG1hc2sgMHgleFxuIiwgcnVudGltZS0+aHcucmF0ZXMpOwogCWRiZygiYXNvYzogbWluIGNoICVkIG1heCBjaCAlZFxuIiwgcnVudGltZS0+aHcuY2hhbm5lbHNfbWluLAogCQlydW50aW1lLT5ody5jaGFubmVsc19tYXgpOwpAQCAtMjcyLDExICsyNzIsMTEgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UsIGRlbGF5ZWRfd29yay53b3JrKTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpOwogCWludCBpOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKLQlmb3IoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKIAkJY29kZWNfZGFpID0gJmNvZGVjLT5kYWlbaV07CiAKIAkJZGJnKCJwb3Agd3EgY2hlY2tpbmc6ICVzIHN0YXR1czogJXMgd2FpdGluZzogJXNcbiIsCkBAIC0yODcsMTIgKzI4NywxMiBAQAogCQkvKiBhcmUgd2Ugd2FpdGluZyBvbiB0aGlzIGNvZGVjIERBSSBzdHJlYW0gKi8KIAkJaWYgKGNvZGVjX2RhaS0+cG9wX3dhaXQgPT0gMSkgewogCi0JCQkvKiBwb3dlciBkb3duIHRoZSBjb2RlYyB0byBEMSBpZiBubyBsb25nZXIgYWN0aXZlICovCisJCQkvKiBSZWR1Y2UgcG93ZXIgaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLwogCQkJaWYgKGNvZGVjLT5hY3RpdmUgPT0gMCkgewogCQkJCWRiZygicG9wIHdxIEQxICVzICVzXG4iLCBjb2RlYy0+bmFtZSwKIAkJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSk7Ci0JCQkJc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzb2NkZXYsCi0JCQkJCVNORFJWX0NUTF9QT1dFUl9EMSk7CisJCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwKKwkJCQkJU05EX1NPQ19CSUFTX1BSRVBBUkUpOwogCQkJfQogCiAJCQljb2RlY19kYWktPnBvcF93YWl0ID0gMDsKQEAgLTMwMCwxMiArMzAwLDEyIEBACiAJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSwKIAkJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1NUT1ApOwogCi0JCQkvKiBwb3dlciBkb3duIHRoZSBjb2RlYyBwb3dlciBkb21haW4gaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLworCQkJLyogRmFsbCBpbnRvIHN0YW5kYnkgaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLwogCQkJaWYgKGNvZGVjLT5hY3RpdmUgPT0gMCkgewogCQkJCWRiZygicG9wIHdxIEQzICVzICVzXG4iLCBjb2RlYy0+bmFtZSwKIAkJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSk7Ci0JCQkJc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzb2NkZXYsCi0JCQkJCVNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwKKwkJCQkJU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCQkJfQogCQl9CiAJfQpAQCAtMzIzLDggKzMyMyw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKQEAgLTM2NSw4ICszNjUsOCBAQAogCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9TVE9QKTsKIAogCQlpZiAoY29kZWMtPmFjdGl2ZSA9PSAwICYmIGNvZGVjX2RhaS0+cG9wX3dhaXQgPT0gMCkKLQkJCXNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc29jZGV2LAotCQkJCQkJU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwkJCXNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzb2NkZXYsCisJCQkJCQlTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZwY21fbXV0ZXgpOwpAQCAtMzg0LDggKzM4NCw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCWludCByZXQgPSAwOwogCkBAIC00MzQsMTQgKzQzNCwxNCBAQAogCQllbHNlIHsKIAkJCWNvZGVjX2RhaS0+cG9wX3dhaXQgPSAwOwogCQkJY2FuY2VsX2RlbGF5ZWRfd29yaygmc29jZGV2LT5kZWxheWVkX3dvcmspOwotCQkJaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUpCi0JCQkJY29kZWNfZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDApOworCQkJc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMCk7CiAJCX0KIAl9IGVsc2UgewogCQkvKiBubyBkZWxheWVkIHdvcmsgLSBkbyB3ZSBuZWVkIHRvIHBvd2VyIHVwIGNvZGVjICovCi0JCWlmIChjb2RlYy0+ZGFwbV9zdGF0ZSAhPSBTTkRSVl9DVExfUE9XRVJfRDApIHsKKwkJaWYgKGNvZGVjLT5iaWFzX2xldmVsICE9IFNORF9TT0NfQklBU19PTikgewogCi0JCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwgIFNORFJWX0NUTF9QT1dFUl9EMSk7CisJCQlzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc29jZGV2LAorCQkJCQkJICAgIFNORF9TT0NfQklBU19QUkVQQVJFKTsKIAogCQkJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywKQEAgLTQ1Miw5ICs0NTIsOCBAQAogCQkJCQljb2RlY19kYWktPmNhcHR1cmUuc3RyZWFtX25hbWUsCiAJCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fU1RBUlQpOwogCi0JCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKLQkJCWlmIChjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQkJCWNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKKwkJCXNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzb2NkZXYsIFNORF9TT0NfQklBU19PTik7CisJCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKIAogCQl9IGVsc2UgewogCQkJLyogY29kZWMgYWxyZWFkeSBwb3dlcmVkIC0gcG93ZXIgb24gd2lkZ2V0cyAqLwpAQCAtNDY2LDggKzQ2NSw4IEBACiAJCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywKIAkJCQkJY29kZWNfZGFpLT5jYXB0dXJlLnN0cmVhbV9uYW1lLAogCQkJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1NUQVJUKTsKLQkJCWlmIChjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQkJCWNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKKworCQkJc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMCk7CiAJCX0KIAl9CiAKQEAgLTQ4OCw4ICs0ODcsOCBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CiAJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKm1hY2hpbmUgPSBydGQtPmRhaTsKIAlzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSAqcGxhdGZvcm0gPSBzb2NkZXYtPnBsYXRmb3JtOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CiAJaW50IHJldCA9IDA7CiAKIAltdXRleF9sb2NrKCZwY21fbXV0ZXgpOwpAQCAtNTE0LDcgKzUxMyw3IEBACiAJaWYgKGNwdV9kYWktPm9wcy5od19wYXJhbXMpIHsKIAkJcmV0ID0gY3B1X2RhaS0+b3BzLmh3X3BhcmFtcyhzdWJzdHJlYW0sIHBhcmFtcyk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IHNldCBpbnRlcmZhY2UgJXMgaHcgcGFyYW1zXG4iLAorCQkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBpbnRlcmZhY2UgJXMgaHcgcGFyYW1zIGZhaWxlZFxuIiwKIAkJCQljcHVfZGFpLT5uYW1lKTsKIAkJCWdvdG8gaW50ZXJmYWNlX2VycjsKIAkJfQpAQCAtNTIzLDcgKzUyMiw3IEBACiAJaWYgKHBsYXRmb3JtLT5wY21fb3BzLT5od19wYXJhbXMpIHsKIAkJcmV0ID0gcGxhdGZvcm0tPnBjbV9vcHMtPmh3X3BhcmFtcyhzdWJzdHJlYW0sIHBhcmFtcyk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IHNldCBwbGF0Zm9ybSAlcyBodyBwYXJhbXNcbiIsCisJCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IHBsYXRmb3JtICVzIGh3IHBhcmFtcyBmYWlsZWRcbiIsCiAJCQkJcGxhdGZvcm0tPm5hbWUpOwogCQkJZ290byBwbGF0Zm9ybV9lcnI7CiAJCX0KQEAgLTU0Miw3ICs1NDEsNyBAQAogCQljb2RlY19kYWktPm9wcy5od19mcmVlKHN1YnN0cmVhbSk7CiAKIGNvZGVjX2VycjoKLQlpZihtYWNoaW5lLT5vcHMgJiYgbWFjaGluZS0+b3BzLT5od19mcmVlKQorCWlmIChtYWNoaW5lLT5vcHMgJiYgbWFjaGluZS0+b3BzLT5od19mcmVlKQogCQltYWNoaW5lLT5vcHMtPmh3X2ZyZWUoc3Vic3RyZWFtKTsKIAogCW11dGV4X3VubG9jaygmcGNtX211dGV4KTsKQEAgLTU1OCwxNSArNTU3LDE1IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKIAogCS8qIGFwcGx5IGNvZGVjIGRpZ2l0YWwgbXV0ZSAqLwotCWlmICghY29kZWMtPmFjdGl2ZSAmJiBjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQljb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMSk7CisJaWYgKCFjb2RlYy0+YWN0aXZlKQorCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAxKTsKIAogCS8qIGZyZWUgYW55IG1hY2hpbmUgaHcgcGFyYW1zICovCiAJaWYgKG1hY2hpbmUtPm9wcyAmJiBtYWNoaW5lLT5vcHMtPmh3X2ZyZWUpCkBAIC01OTMsOCArNTkyLDggQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCWludCByZXQ7CiAKIAlpZiAoY29kZWNfZGFpLT5vcHMudHJpZ2dlcikgewpAQCAtNjMxLDE2ICs2MzAsMjYgQEAKIC8qIHBvd2VycyBkb3duIGF1ZGlvIHN1YnN5c3RlbSBmb3Igc3VzcGVuZCAqLwogc3RhdGljIGludCBzb2Nfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7Ci0gCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0gCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7Ci0gCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0gCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSAqY29kZWNfZGV2ID0gc29jZGV2LT5jb2RlY19kZXY7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07CisJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCWludCBpOwogCisJLyogRHVlIHRvIHRoZSByZXN1bWUgYmVpbmcgc2NoZWR1bGVkIGludG8gYSB3b3JrcXVldWUgd2UgY291bGQKKwkqIHN1c3BlbmQgYmVmb3JlIHRoYXQncyBmaW5pc2hlZCAtIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLgorCSAqLworCXNuZF9wb3dlcl9sb2NrKGNvZGVjLT5jYXJkKTsKKwlzbmRfcG93ZXJfd2FpdChjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKKwlzbmRfcG93ZXJfdW5sb2NrKGNvZGVjLT5jYXJkKTsKKworCS8qIHdlJ3JlIGdvaW5nIHRvIGJsb2NrIHVzZXJzcGFjZSB0b3VjaGluZyB1cyB1bnRpbCByZXN1bWUgY29tcGxldGVzICovCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwogCS8qIG11dGUgYW55IGFjdGl2ZSBEQUMncyAqLwotCWZvcihpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpOworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaTsKIAkJaWYgKGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUgJiYgZGFpLT5wbGF5YmFjay5hY3RpdmUpCiAJCQlkYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGRhaSwgMSk7CiAJfQpAQCAtNjUyLDggKzY2MSw4IEBACiAJaWYgKG1hY2hpbmUtPnN1c3BlbmRfcHJlKQogCQltYWNoaW5lLT5zdXNwZW5kX3ByZShwZGV2LCBzdGF0ZSk7CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOwogCQlpZiAoY3B1X2RhaS0+c3VzcGVuZCAmJiBjcHVfZGFpLT50eXBlICE9IFNORF9TT0NfREFJX0FDOTcpCiAJCQljcHVfZGFpLT5zdXNwZW5kKHBkZXYsIGNwdV9kYWkpOwogCQlpZiAocGxhdGZvcm0tPnN1c3BlbmQpCkBAIC02NjIsOSArNjcxLDkgQEAKIAogCS8qIGNsb3NlIGFueSB3YWl0aW5nIHN0cmVhbXMgYW5kIHNhdmUgc3RhdGUgKi8KIAlydW5fZGVsYXllZF93b3JrKCZzb2NkZXYtPmRlbGF5ZWRfd29yayk7Ci0JY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9IGNvZGVjLT5kYXBtX3N0YXRlOworCWNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPSBjb2RlYy0+Ymlhc19sZXZlbDsKIAotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgewogCQljaGFyICpzdHJlYW0gPSBjb2RlYy0+ZGFpW2ldLnBsYXliYWNrLnN0cmVhbV9uYW1lOwogCQlpZiAoc3RyZWFtICE9IE5VTEwpCiAJCQlzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KGNvZGVjLCBzdHJlYW0sCkBAIC02NzgsOCArNjg3LDggQEAKIAlpZiAoY29kZWNfZGV2LT5zdXNwZW5kKQogCQljb2RlY19kZXYtPnN1c3BlbmQocGRldiwgc3RhdGUpOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5zdXNwZW5kICYmIGNwdV9kYWktPnR5cGUgPT0gU05EX1NPQ19EQUlfQUM5NykKIAkJCWNwdV9kYWktPnN1c3BlbmQocGRldiwgY3B1X2RhaSk7CiAJfQpAQCAtNjkwLDIxICs2OTksMzIgQEAKIAlyZXR1cm4gMDsKIH0KIAotLyogcG93ZXJzIHVwIGF1ZGlvIHN1YnN5c3RlbSBhZnRlciBhIHN1c3BlbmQgKi8KLXN0YXRpYyBpbnQgc29jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorLyogZGVmZXJyZWQgcmVzdW1lIHdvcmssIHNvIHJlc3VtZSBjYW4gY29tcGxldGUgYmVmb3JlIHdlIGZpbmlzaGVkCisgKiBzZXR0aW5nIG91ciBjb2RlYyBiYWNrIHVwLCB3aGljaCBjYW4gYmUgdmVyeSBzbG93IG9uIEkyQworICovCitzdGF0aWMgdm9pZCBzb2NfcmVzdW1lX2RlZmVycmVkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLSAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLSAJc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqbWFjaGluZSA9IHNvY2Rldi0+bWFjaGluZTsKLSAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLSAJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IGNvbnRhaW5lcl9vZih3b3JrLAorCQkJCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UsCisJCQkJCQkgICAgIGRlZmVycmVkX3Jlc3VtZV93b3JrKTsKKwlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07CisJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2Uoc29jZGV2LT5kZXYpOwogCWludCBpOwogCisJLyogb3VyIHBvd2VyIHN0YXRlIGlzIHN0aWxsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCBmcm9tIHN1c3BlbmQgdGltZSwKKwkgKiBzbyB1c2Vyc3BhY2UgYXBwcyBhcmUgYmxvY2tlZCBmcm9tIHRvdWNoaW5nIHVzCisJICovCisKKwlkZXZfaW5mbyhzb2NkZXYtPmRldiwgInN0YXJ0aW5nIHJlc3VtZSB3b3JrXG4iKTsKKwogCWlmIChtYWNoaW5lLT5yZXN1bWVfcHJlKQogCQltYWNoaW5lLT5yZXN1bWVfcHJlKHBkZXYpOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZXN1bWUgJiYgY3B1X2RhaS0+dHlwZSA9PSBTTkRfU09DX0RBSV9BQzk3KQogCQkJY3B1X2RhaS0+cmVzdW1lKHBkZXYsIGNwdV9kYWkpOwogCX0KQEAgLTcxMiw4ICs3MzIsOCBAQAogCWlmIChjb2RlY19kZXYtPnJlc3VtZSkKIAkJY29kZWNfZGV2LT5yZXN1bWUocGRldik7CiAKLQlmb3IoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7Ci0JCWNoYXIqIHN0cmVhbSA9IGNvZGVjLT5kYWlbaV0ucGxheWJhY2suc3RyZWFtX25hbWU7CisJZm9yIChpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwkJY2hhciAqc3RyZWFtID0gY29kZWMtPmRhaVtpXS5wbGF5YmFjay5zdHJlYW1fbmFtZTsKIAkJaWYgKHN0cmVhbSAhPSBOVUxMKQogCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywgc3RyZWFtLAogCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fUkVTVU1FKTsKQEAgLTcyMywxNSArNzQzLDE1IEBACiAJCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9SRVNVTUUpOwogCX0KIAotCS8qIHVubXV0ZSBhbnkgYWN0aXZlIERBQydzICovCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jb2RlY19kYWk7CisJLyogdW5tdXRlIGFueSBhY3RpdmUgREFDcyAqLworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaTsKIAkJaWYgKGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUgJiYgZGFpLT5wbGF5YmFjay5hY3RpdmUpCiAJCQlkYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGRhaSwgMCk7CiAJfQogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZXN1bWUgJiYgY3B1X2RhaS0+dHlwZSAhPSBTTkRfU09DX0RBSV9BQzk3KQogCQkJY3B1X2RhaS0+cmVzdW1lKHBkZXYsIGNwdV9kYWkpOwogCQlpZiAocGxhdGZvcm0tPnJlc3VtZSkKQEAgLTc0MSw2ICs3NjEsMjIgQEAKIAlpZiAobWFjaGluZS0+cmVzdW1lX3Bvc3QpCiAJCW1hY2hpbmUtPnJlc3VtZV9wb3N0KHBkZXYpOwogCisJZGV2X2luZm8oc29jZGV2LT5kZXYsICJyZXN1bWUgd29yayBjb21wbGV0ZWRcbiIpOworCisJLyogdXNlcnNwYWNlIGNhbiBhY2Nlc3MgdXMgbm93IHdlIGFyZSBiYWNrIGFzIHdlIHdlcmUgYmVmb3JlICovCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKK30KKworLyogcG93ZXJzIHVwIGF1ZGlvIHN1YnN5c3RlbSBhZnRlciBhIHN1c3BlbmQgKi8KK3N0YXRpYyBpbnQgc29jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlkZXZfaW5mbyhzb2NkZXYtPmRldiwgInNjaGVkdWxpbmcgcmVzdW1lIHdvcmtcbiIpOworCisJaWYgKCFzY2hlZHVsZV93b3JrKCZzb2NkZXYtPmRlZmVycmVkX3Jlc3VtZV93b3JrKSkKKwkJZGV2X2Vycihzb2NkZXYtPmRldiwgIndvcmsgaXRlbSBtYXkgYmUgbG9zdFxuIik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzYwLDMzICs3OTYsMzggQEAKIAogCWlmIChtYWNoaW5lLT5wcm9iZSkgewogCQlyZXQgPSBtYWNoaW5lLT5wcm9iZShwZGV2KTsKLQkJaWYocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnByb2JlKSB7Ci0JCQlyZXQgPSBjcHVfZGFpLT5wcm9iZShwZGV2KTsKLQkJCWlmKHJldCA8IDApCisJCQlyZXQgPSBjcHVfZGFpLT5wcm9iZShwZGV2LCBjcHVfZGFpKTsKKwkJCWlmIChyZXQgPCAwKQogCQkJCWdvdG8gY3B1X2RhaV9lcnI7CiAJCX0KIAl9CiAKIAlpZiAoY29kZWNfZGV2LT5wcm9iZSkgewogCQlyZXQgPSBjb2RlY19kZXYtPnByb2JlKHBkZXYpOwotCQlpZihyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gY3B1X2RhaV9lcnI7CiAJfQogCiAJaWYgKHBsYXRmb3JtLT5wcm9iZSkgewogCQlyZXQgPSBwbGF0Zm9ybS0+cHJvYmUocGRldik7Ci0JCWlmKHJldCA8IDApCisJCWlmIChyZXQgPCAwKQogCQkJZ290byBwbGF0Zm9ybV9lcnI7CiAJfQogCiAJLyogREFQTSBzdHJlYW0gd29yayAqLwogCUlOSVRfREVMQVlFRF9XT1JLKCZzb2NkZXYtPmRlbGF5ZWRfd29yaywgY2xvc2VfZGVsYXllZF93b3JrKTsKKyNpZmRlZiBDT05GSUdfUE0KKwkvKiBkZWZlcnJlZCByZXN1bWUgd29yayAqLworCUlOSVRfV09SSygmc29jZGV2LT5kZWZlcnJlZF9yZXN1bWVfd29yaywgc29jX3Jlc3VtZV9kZWZlcnJlZCk7CisjZW5kaWYKKwogCXJldHVybiAwOwogCiBwbGF0Zm9ybV9lcnI6CkBAIC03OTUsOSArODM2LDkgQEAKIAogY3B1X2RhaV9lcnI6CiAJZm9yIChpLS07IGkgPj0gMDsgaS0tKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOwogCQlpZiAoY3B1X2RhaS0+cmVtb3ZlKQotCQkJY3B1X2RhaS0+cmVtb3ZlKHBkZXYpOworCQkJY3B1X2RhaS0+cmVtb3ZlKHBkZXYsIGNwdV9kYWkpOwogCX0KIAogCWlmIChtYWNoaW5lLT5yZW1vdmUpCkBAIC04MjQsOSArODY1LDkgQEAKIAkJY29kZWNfZGV2LT5yZW1vdmUocGRldik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZW1vdmUpCi0JCQljcHVfZGFpLT5yZW1vdmUocGRldik7CisJCQljcHVfZGFpLT5yZW1vdmUocGRldiwgY3B1X2RhaSk7CiAJfQogCiAJaWYgKG1hY2hpbmUtPnJlbW92ZSkKQEAgLTg1Miw4ICs4OTMsOCBAQAogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluaywgaW50IG51bSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gZGFpX2xpbmstPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gZGFpX2xpbmstPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBkYWlfbGluay0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IGRhaV9saW5rLT5jcHVfZGFpOwogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQ7CiAJc3RydWN0IHNuZF9wY20gKnBjbTsKIAljaGFyIG5ld19uYW1lWzY0XTsKQEAgLTg2OCw3ICs5MDksNyBAQAogCWNvZGVjX2RhaS0+Y29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJLyogY2hlY2sgY2xpZW50IGFuZCBpbnRlcmZhY2UgaHcgY2FwYWJpbGl0aWVzICovCi0Jc3ByaW50ZihuZXdfbmFtZSwgIiVzICVzLSVzLSVkIixkYWlfbGluay0+c3RyZWFtX25hbWUsIGNvZGVjX2RhaS0+bmFtZSwKKwlzcHJpbnRmKG5ld19uYW1lLCAiJXMgJXMtJXMtJWQiLCBkYWlfbGluay0+c3RyZWFtX25hbWUsIGNvZGVjX2RhaS0+bmFtZSwKIAkJZ2V0X2RhaV9uYW1lKGNwdV9kYWktPnR5cGUpLCBudW0pOwogCiAJaWYgKGNvZGVjX2RhaS0+cGxheWJhY2suY2hhbm5lbHNfbWluKQpAQCAtODc5LDcgKzkyMCw4IEBACiAJcmV0ID0gc25kX3BjbV9uZXcoY29kZWMtPmNhcmQsIG5ld19uYW1lLCBjb2RlYy0+cGNtX2RldnMrKywgcGxheWJhY2ssCiAJCWNhcHR1cmUsICZwY20pOwogCWlmIChyZXQgPCAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiYXNvYzogY2FuJ3QgY3JlYXRlIHBjbSBmb3IgY29kZWMgJXNcbiIsIGNvZGVjLT5uYW1lKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBjYW4ndCBjcmVhdGUgcGNtIGZvciBjb2RlYyAlc1xuIiwKKwkJCWNvZGVjLT5uYW1lKTsKIAkJa2ZyZWUocnRkKTsKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC05MjgsOCArOTcwLDkgQEAKIAkJc3RlcCA9IGNvZGVjLT5yZWdfY2FjaGVfc3RlcDsKIAogCWNvdW50ICs9IHNwcmludGYoYnVmLCAiJXMgcmVnaXN0ZXJzXG4iLCBjb2RlYy0+bmFtZSk7Ci0JZm9yKGkgPSAwOyBpIDwgY29kZWMtPnJlZ19jYWNoZV9zaXplOyBpICs9IHN0ZXApCi0JCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICIlMng6ICU0eFxuIiwgaSwgY29kZWMtPnJlYWQoY29kZWMsIGkpKTsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPnJlZ19jYWNoZV9zaXplOyBpICs9IHN0ZXApCisJCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICIlMng6ICU0eFxuIiwgaSwKKwkJCWNvZGVjLT5yZWFkKGNvZGVjLCBpKSk7CiAKIAlyZXR1cm4gY291bnQ7CiB9CkBAIC0xMDcyLDcgKzExMTUsNyBAQAogCXN0cm5jcHkoY29kZWMtPmNhcmQtPmRyaXZlciwgY29kZWMtPm5hbWUsIHNpemVvZihjb2RlYy0+Y2FyZC0+ZHJpdmVyKSk7CiAKIAkvKiBjcmVhdGUgdGhlIHBjbXMgKi8KLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewogCQlyZXQgPSBzb2NfbmV3X3BjbShzb2NkZXYsICZtYWNoaW5lLT5kYWlfbGlua1tpXSwgaSk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IGNyZWF0ZSBwY20gJXNcbiIsCkBAIC0xMTAyLDcgKzExNDUsNyBAQAogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7CiAJaW50IHJldCA9IDAsIGksIGFjOTcgPSAwLCBlcnIgPSAwOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKIAkJaWYgKHNvY2Rldi0+bWFjaGluZS0+ZGFpX2xpbmtbaV0uaW5pdCkgewogCQkJZXJyID0gc29jZGV2LT5tYWNoaW5lLT5kYWlfbGlua1tpXS5pbml0KGNvZGVjKTsKIAkJCWlmIChlcnIgPCAwKSB7CkBAIC0xMTExLDcgKzExNTQsNyBAQAogCQkJCWNvbnRpbnVlOwogCQkJfQogCQl9Ci0JCWlmIChzb2NkZXYtPm1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaS0+dHlwZSA9PSAKKwkJaWYgKHNvY2Rldi0+bWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpLT50eXBlID09CiAJCQlTTkRfU09DX0RBSV9BQzk3X0JVUykKIAkJCWFjOTcgPSAxOwogCX0KQEAgLTExMjIsNyArMTE2NSw3IEBACiAKIAlyZXQgPSBzbmRfY2FyZF9yZWdpc3Rlcihjb2RlYy0+Y2FyZCk7CiAJaWYgKHJldCA8IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBmYWlsZWQgdG8gcmVnaXN0ZXIgc291bmRjYXJkIGZvciBjb2RlYyAlc1xuIiwKKwkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBmYWlsZWQgdG8gcmVnaXN0ZXIgc291bmRjYXJkIGZvciAlc1xuIiwKIAkJCQljb2RlYy0+bmFtZSk7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTExNDYsNyArMTE4OSw3IEBACiAKIAllcnIgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoc29jZGV2LT5kZXYsICZkZXZfYXR0cl9jb2RlY19yZWcpOwogCWlmIChlcnIgPCAwKQotCQlwcmludGsoS0VSTl9XQVJOSU5HICJhc29jOiBmYWlsZWQgdG8gYWRkIGNvZGVjIHN5c2ZzIGVudHJpZXNcbiIpOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJhc29jOiBmYWlsZWQgdG8gYWRkIGNvZGVjIHN5c2ZzIGZpbGVzXG4iKTsKIAogCW11dGV4X3VubG9jaygmY29kZWMtPm11dGV4KTsKIApAQCAtMTE2NiwxMyArMTIwOSwxMyBAQAogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAjaWZkZWYgQ09ORklHX1NORF9TT0NfQUM5N19CVVMKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaTsKIAlpbnQgaTsKICNlbmRpZgogCiAJbXV0ZXhfbG9jaygmY29kZWMtPm11dGV4KTsKICNpZmRlZiBDT05GSUdfU05EX1NPQ19BQzk3X0JVUwotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgewogCQljb2RlY19kYWkgPSAmY29kZWMtPmRhaVtpXTsKIAkJaWYgKGNvZGVjX2RhaS0+dHlwZSA9PSBTTkRfU09DX0RBSV9BQzk3X0JVUyAmJiBjb2RlYy0+YWM5NykgewogCQkJc29jX2FjOTdfZGV2X3VucmVnaXN0ZXIoY29kZWMpOwpAQCAtMTI4Miw3ICsxMzI1LDggQEAKIAlmb3IgKGJpdG1hc2sgPSAxOyBiaXRtYXNrIDwgZS0+bWFzazsgYml0bWFzayA8PD0gMSkKIAkJOwogCXZhbCA9IHNuZF9zb2NfcmVhZChjb2RlYywgZS0+cmVnKTsKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gKHZhbCA+PiBlLT5zaGlmdF9sKSAmIChiaXRtYXNrIC0gMSk7CisJdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXQorCQk9ICh2YWwgPj4gZS0+c2hpZnRfbCkgJiAoYml0bWFzayAtIDEpOwogCWlmIChlLT5zaGlmdF9sICE9IGUtPnNoaWZ0X3IpCiAJCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMV0gPQogCQkJKHZhbCA+PiBlLT5zaGlmdF9yKSAmIChiaXRtYXNrIC0gMSk7CkBAIC0xNTc2LDcgKzE2MjAsOCBAQAogCXZhbCA9IHZhbCA8PCBzaGlmdDsKIAl2YWwyID0gdmFsMiA8PCBzaGlmdDsKIAotCWlmICgoZXJyID0gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgcmVnLCB2YWxfbWFzaywgdmFsKSkgPCAwKQorCWVyciA9IHNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIHJlZywgdmFsX21hc2ssIHZhbCk7CisJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CiAKIAllcnIgPSBzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCByZWcyLCB2YWxfbWFzaywgdmFsMik7CkBAIC0xNTg0LDYgKzE2MjksMjA0IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX3B1dF92b2xzd18ycik7CiAKKy8qKgorICogc25kX3NvY19pbmZvX3ZvbHN3X3M4IC0gc2lnbmVkIG1peGVyIGluZm8gY2FsbGJhY2sKKyAqIEBrY29udHJvbDogbWl4ZXIgY29udHJvbAorICogQHVpbmZvOiBjb250cm9sIGVsZW1lbnQgaW5mb3JtYXRpb24KKyAqCisgKiBDYWxsYmFjayB0byBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IGEgc2lnbmVkIG1peGVyIGNvbnRyb2wuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgorICovCitpbnQgc25kX3NvY19pbmZvX3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJaW50IG1heCA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4ZmYpOworCWludCBtaW4gPSAoc2lnbmVkIGNoYXIpKChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmKTsKKworCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOworCXVpbmZvLT5jb3VudCA9IDI7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXgtbWluOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19pbmZvX3ZvbHN3X3M4KTsKKworLyoqCisgKiBzbmRfc29jX2dldF92b2xzd19zOCAtIHNpZ25lZCBtaXhlciBnZXQgY2FsbGJhY2sKKyAqIEBrY29udHJvbDogbWl4ZXIgY29udHJvbAorICogQHVpbmZvOiBjb250cm9sIGVsZW1lbnQgaW5mb3JtYXRpb24KKyAqCisgKiBDYWxsYmFjayB0byBnZXQgdGhlIHZhbHVlIG9mIGEgc2lnbmVkIG1peGVyIGNvbnRyb2wuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgorICovCitpbnQgc25kX3NvY19nZXRfdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IG1pbiA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmYpOworCWludCB2YWwgPSBzbmRfc29jX3JlYWQoY29kZWMsIHJlZyk7CisKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9CisJCSgoc2lnbmVkIGNoYXIpKHZhbCAmIDB4ZmYpKS1taW47CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPQorCQkoKHNpZ25lZCBjaGFyKSgodmFsID4+IDgpICYgMHhmZikpLW1pbjsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZ2V0X3ZvbHN3X3M4KTsKKworLyoqCisgKiBzbmRfc29jX3B1dF92b2xzd19zZ24gLSBzaWduZWQgbWl4ZXIgcHV0IGNhbGxiYWNrCisgKiBAa2NvbnRyb2w6IG1peGVyIGNvbnRyb2wKKyAqIEB1aW5mbzogY29udHJvbCBlbGVtZW50IGluZm9ybWF0aW9uCisgKgorICogQ2FsbGJhY2sgdG8gc2V0IHRoZSB2YWx1ZSBvZiBhIHNpZ25lZCBtaXhlciBjb250cm9sLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2Vzcy4KKyAqLworaW50IHNuZF9zb2NfcHV0X3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCBtaW4gPSAoc2lnbmVkIGNoYXIpKChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmKTsKKwl1bnNpZ25lZCBzaG9ydCB2YWw7CisKKwl2YWwgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0rbWluKSAmIDB4ZmY7CisJdmFsIHw9ICgodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0rbWluKSAmIDB4ZmYpIDw8IDg7CisKKwlyZXR1cm4gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgcmVnLCAweGZmZmYsIHZhbCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX3B1dF92b2xzd19zOCk7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X3N5c2NsayAtIGNvbmZpZ3VyZSBEQUkgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIElECisgKiBAZnJlcTogbmV3IGNsb2NrIGZyZXF1ZW5jeSBpbiBIegorICogQGRpcjogbmV3IGNsb2NrIGRpcmVjdGlvbiAtIGlucHV0L291dHB1dC4KKyAqCisgKiBDb25maWd1cmVzIHRoZSBEQUkgbWFzdGVyIChNQ0xLKSBvciBzeXN0ZW0gKFNZU0NMSykgY2xvY2tpbmcuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgY2xrX2lkLAorCXVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X3N5c2NsaykKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGRhaSwgY2xrX2lkLCBmcmVxLCBkaXIpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9zZXRfc3lzY2xrKTsKKworLyoqCisgKiBzbmRfc29jX2RhaV9zZXRfY2xrZGl2IC0gY29uZmlndXJlIERBSSBjbG9jayBkaXZpZGVycy4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIGRpdmlkZXIgSUQKKyAqIEBkaXY6IG5ldyBjbG9jayBkaXZpc29yLgorICoKKyAqIENvbmZpZ3VyZXMgdGhlIGNsb2NrIGRpdmlkZXJzLiBUaGlzIGlzIHVzZWQgdG8gZGVyaXZlIHRoZSBiZXN0IERBSSBiaXQgYW5kCisgKiBmcmFtZSBjbG9ja3MgZnJvbSB0aGUgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4gSXQncyBiZXN0IHRvIHNldCB0aGUgREFJIGJpdAorICogYW5kIGZyYW1lIGNsb2NrcyBhcyBsb3cgYXMgcG9zc2libGUgdG8gc2F2ZSBzeXN0ZW0gcG93ZXIuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCWludCBkaXZfaWQsIGludCBkaXYpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoZGFpLCBkaXZfaWQsIGRpdik7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9jbGtkaXYpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF9wbGwgLSBjb25maWd1cmUgREFJIFBMTC4KKyAqIEBkYWk6IERBSQorICogQHBsbF9pZDogREFJIHNwZWNpZmljIFBMTCBJRAorICogQGZyZXFfaW46IFBMTCBpbnB1dCBjbG9jayBmcmVxdWVuY3kgaW4gSHoKKyAqIEBmcmVxX291dDogcmVxdWVzdGVkIFBMTCBvdXRwdXQgY2xvY2sgZnJlcXVlbmN5IGluIEh6CisgKgorICogQ29uZmlndXJlcyBhbmQgZW5hYmxlcyBQTEwgdG8gZ2VuZXJhdGUgb3V0cHV0IGNsb2NrIGJhc2VkIG9uIGlucHV0IGNsb2NrLgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X3BsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X3BsbCkKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfcGxsKGRhaSwgcGxsX2lkLCBmcmVxX2luLCBmcmVxX291dCk7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9wbGwpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF9mbXQgLSBjb25maWd1cmUgREFJIGhhcmR3YXJlIGF1ZGlvIGZvcm1hdC4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIElECisgKiBAZm10OiBTTkRfU09DX0RBSUZNVF8gZm9ybWF0IHZhbHVlLgorICoKKyAqIENvbmZpZ3VyZXMgdGhlIERBSSBoYXJkd2FyZSBmb3JtYXQgYW5kIGNsb2NraW5nLgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCkKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9mbXQpCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X2ZtdChkYWksIGZtdCk7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9mbXQpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF90ZG1fc2xvdCAtIGNvbmZpZ3VyZSBEQUkgVERNLgorICogQGRhaTogREFJCisgKiBAbWFzazogREFJIHNwZWNpZmljIG1hc2sgcmVwcmVzZW50aW5nIHVzZWQgc2xvdHMuCisgKiBAc2xvdHM6IE51bWJlciBvZiBzbG90cyBpbiB1c2UuCisgKgorICogQ29uZmlndXJlcyBhIERBSSBmb3IgVERNIG9wZXJhdGlvbi4gQm90aCBtYXNrIGFuZCBzbG90cyBhcmUgY29kZWMgYW5kIERBSQorICogc3BlY2lmaWMuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cykKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X3RkbV9zbG90KGRhaSwgbWFzaywgc2xvdHMpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3QpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF90cmlzdGF0ZSAtIGNvbmZpZ3VyZSBEQUkgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4KKyAqIEBkYWk6IERBSQorICogQHRyaXN0YXRlOiB0cmlzdGF0ZSBlbmFibGUKKyAqCisgKiBUcmlzdGF0ZXMgdGhlIERBSSBzbyB0aGF0IG90aGVycyBjYW4gdXNlIGl0LgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X3RyaXN0YXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgdHJpc3RhdGUpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF90cmlzdGF0ZShkYWksIHRyaXN0YXRlKTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfc2V0X3RyaXN0YXRlKTsKKworLyoqCisgKiBzbmRfc29jX2RhaV9kaWdpdGFsX211dGUgLSBjb25maWd1cmUgREFJIHN5c3RlbSBvciBtYXN0ZXIgY2xvY2suCisgKiBAZGFpOiBEQUkKKyAqIEBtdXRlOiBtdXRlIGVuYWJsZQorICoKKyAqIE11dGVzIHRoZSBEQUkgREFDLgorICovCitpbnQgc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZSkKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoZGFpLCBtdXRlKTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKTsKKwogc3RhdGljIGludCBfX2RldmluaXQgc25kX3NvY19pbml0KHZvaWQpCiB7CiAJcHJpbnRrKEtFUk5fSU5GTyAiQVNvQyB2ZXJzaW9uICVzXG4iLCBTTkRfU09DX1ZFUlNJT04pOwpAQCAtMTU5Miw3ICsxODM1LDcgQEAKIAogc3RhdGljIHZvaWQgc25kX3NvY19leGl0KHZvaWQpCiB7Ci0gCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzb2NfZHJpdmVyKTsKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3Rlcigmc29jX2RyaXZlcik7CiB9CiAKIG1vZHVsZV9pbml0KHNuZF9zb2NfaW5pdCk7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc29jLWRhcG0uYyBiL3NvdW5kL3NvYy9zb2MtZGFwbS5jCmluZGV4IGFmMzMyNmMuLjJjODcwNjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zb2MtZGFwbS5jCisrKyBiL3NvdW5kL3NvYy9zb2MtZGFwbS5jCkBAIC0xMCwxMSArMTAsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDEydGggQXVnIDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKiAgICAyNXRoIE9jdCAyMDA1ICAgSW1wbGVtZW50ZWQgcGF0aCBwb3dlciBkb21haW4uCi0gKiAgICAxOHRoIERlYyAyMDA1ICAgSW1wbGVtZW50ZWQgbWFjaGluZSBhbmQgc3RyZWFtIGxldmVsIHBvd2VyIGRvbWFpbi4KLSAqCiAgKiAgRmVhdHVyZXM6CiAgKiAgICBvIENoYW5nZXMgcG93ZXIgc3RhdHVzIG9mIGludGVybmFsIGNvZGVjIGJsb2NrcyBkZXBlbmRpbmcgb24gdGhlCiAgKiAgICAgIGR5bmFtaWMgY29uZmlndXJhdGlvbiBvZiBjb2RlYyBpbnRlcm5hbCBhdWRpbyBwYXRocyBhbmQgYWN0aXZlCkBAIC01MCwyMyArNDUsMTAgQEAKICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAKIC8qIGRlYnVnICovCi0jZGVmaW5lIERBUE1fREVCVUcgMAotI2lmIERBUE1fREVCVUcKKyNpZmRlZiBERUJVRwogI2RlZmluZSBkdW1wX2RhcG0oY29kZWMsIGFjdGlvbikgZGJnX2R1bXBfZGFwbShjb2RlYywgYWN0aW9uKQotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIHByaW50ayhmb3JtYXQsICMjIGFyZykKICNlbHNlCiAjZGVmaW5lIGR1bXBfZGFwbShjb2RlYywgYWN0aW9uKQotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pCi0jZW5kaWYKLQotI2RlZmluZSBQT1BfREVCVUcgMAotI2lmIFBPUF9ERUJVRwotI2RlZmluZSBQT1BfVElNRSA1MDAgLyogNTAwIG1zZWNzIC0gY2hhbmdlIGlmIHBvcCBkZWJ1ZyBpcyB0b28gZmFzdCAqLwotI2RlZmluZSBwb3Bfd2FpdCh0aW1lKSBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHRpbWUpKQotI2RlZmluZSBwb3BfZGJnKGZvcm1hdCwgYXJnLi4uKSBwcmludGsoZm9ybWF0LCAjIyBhcmcpOyBwb3Bfd2FpdChQT1BfVElNRSkKLSNlbHNlCi0jZGVmaW5lIHBvcF9kYmcoZm9ybWF0LCBhcmcuLi4pCi0jZGVmaW5lIHBvcF93YWl0KHRpbWUpCiAjZW5kaWYKIAogLyogZGFwbSBwb3dlciBzZXF1ZW5jZXMgLSBtYWtlIHRoaXMgcGVyIGNvZGVjIGluIHRoZSBmdXR1cmUgKi8KQEAgLTg1LDYgKzY3LDI4IEBACiBtb2R1bGVfcGFyYW0oZGFwbV9zdGF0dXMsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRhcG1fc3RhdHVzLCAiZW5hYmxlIERQTSBzeXNmcyBlbnRyaWVzIik7CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcG9wX3RpbWU7CisKK3N0YXRpYyB2b2lkIHBvcF93YWl0KHZvaWQpCit7CisJaWYgKHBvcF90aW1lKQorCQlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHBvcF90aW1lKSk7Cit9CisKK3N0YXRpYyB2b2lkIHBvcF9kYmcoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJdmFfbGlzdCBhcmdzOworCisJdmFfc3RhcnQoYXJncywgZm10KTsKKworCWlmIChwb3BfdGltZSkgeworCQl2cHJpbnRrKGZtdCwgYXJncyk7CisJCXBvcF93YWl0KCk7CisJfQorCisJdmFfZW5kKGFyZ3MpOworfQorCiAvKiBjcmVhdGUgYSBuZXcgZGFwbSB3aWRnZXQgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKmRhcG1fY25ld193aWRnZXQoCiAJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKl93aWRnZXQpCkBAIC0yMjIsMTEgKzIyNiwxMiBAQAogCWNoYW5nZSA9IG9sZCAhPSBuZXc7CiAJaWYgKGNoYW5nZSkgewogCQlwb3BfZGJnKCJwb3AgdGVzdCAlcyA6ICVzIGluICVkIG1zXG4iLCB3aWRnZXQtPm5hbWUsCi0JCQl3aWRnZXQtPnBvd2VyID8gIm9uIiA6ICJvZmYiLCBQT1BfVElNRSk7CisJCQl3aWRnZXQtPnBvd2VyID8gIm9uIiA6ICJvZmYiLCBwb3BfdGltZSk7CiAJCXNuZF9zb2Nfd3JpdGUoY29kZWMsIHdpZGdldC0+cmVnLCBuZXcpOwotCQlwb3Bfd2FpdChQT1BfVElNRSk7CisJCXBvcF93YWl0KCk7CiAJfQotCWRiZygicmVnICV4IG9sZCAleCBuZXcgJXggY2hhbmdlICVkXG4iLCB3aWRnZXQtPnJlZywgb2xkLCBuZXcsIGNoYW5nZSk7CisJcHJfZGVidWcoInJlZyAleCBvbGQgJXggbmV3ICV4IGNoYW5nZSAlZFxuIiwgd2lkZ2V0LT5yZWcsCisJCSBvbGQsIG5ldywgY2hhbmdlKTsKIAlyZXR1cm4gY2hhbmdlOwogfQogCkBAIC00NDgsNiArNDUzLDI1IEBACiB9CiAKIC8qCisgKiBIYW5kbGVyIGZvciBnZW5lcmljIHJlZ2lzdGVyIG1vZGlmaWVyIHdpZGdldC4KKyAqLworaW50IGRhcG1fcmVnX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAorCQkgICBzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQoreworCXVuc2lnbmVkIGludCB2YWw7CisKKwlpZiAoU05EX1NPQ19EQVBNX0VWRU5UX09OKGV2ZW50KSkKKwkJdmFsID0gdy0+b25fdmFsOworCWVsc2UKKwkJdmFsID0gdy0+b2ZmX3ZhbDsKKworCXNuZF9zb2NfdXBkYXRlX2JpdHMody0+Y29kZWMsIC0ody0+cmVnICsgMSksCisJCQkgICAgdy0+bWFzayA8PCB3LT5zaGlmdCwgdmFsIDw8IHctPnNoaWZ0KTsKKworCXJldHVybiAwOworfQorCisvKgogICogU2NhbiBlYWNoIGRhcG0gd2lkZ2V0IGZvciBjb21wbGV0ZSBhdWRpbyBwYXRoLgogICogQSBjb21wbGV0ZSBwYXRoIGlzIGEgcm91dGUgdGhhdCBoYXMgdmFsaWQgZW5kcG9pbnRzIGkuZS46LQogICoKQEAgLTU2NSw4ICs1ODksOCBAQAogCQkJLyogY2FsbCBhbnkgcG93ZXIgY2hhbmdlIGV2ZW50IGhhbmRsZXJzICovCiAJCQlpZiAocG93ZXJfY2hhbmdlKSB7CiAJCQkJaWYgKHctPmV2ZW50KSB7Ci0JCQkJCWRiZygicG93ZXIgJXMgZXZlbnQgZm9yICVzIGZsYWdzICV4XG4iLAotCQkJCQkJdy0+cG93ZXIgPyAib24iIDogIm9mZiIsIHctPm5hbWUsIHctPmV2ZW50X2ZsYWdzKTsKKwkJCQkJcHJfZGVidWcoInBvd2VyICVzIGV2ZW50IGZvciAlcyBmbGFncyAleFxuIiwKKwkJCQkJCSB3LT5wb3dlciA/ICJvbiIgOiAib2ZmIiwgdy0+bmFtZSwgdy0+ZXZlbnRfZmxhZ3MpOwogCQkJCQlpZiAocG93ZXIpIHsKIAkJCQkJCS8qIHBvd2VyIHVwIGV2ZW50ICovCiAJCQkJCQlpZiAody0+ZXZlbnRfZmxhZ3MgJiBTTkRfU09DX0RBUE1fUFJFX1BNVSkgewpAQCAtNjA4LDcgKzYzMiw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2lmIERBUE1fREVCVUcKKyNpZmRlZiBERUJVRwogc3RhdGljIHZvaWQgZGJnX2R1bXBfZGFwbShzdHJ1Y3Qgc25kX3NvY19jb2RlYyogY29kZWMsIGNvbnN0IGNoYXIgKmFjdGlvbikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdzsKQEAgLTY5Myw4ICs3MTcsMTAgQEAKIAkJCXBhdGgtPmNvbm5lY3QgPSAwOyAvKiBvbGQgY29ubmVjdGlvbiBtdXN0IGJlIHBvd2VyZWQgZG93biAqLwogCX0KIAotCWlmIChmb3VuZCkKKwlpZiAoZm91bmQpIHsKIAkJZGFwbV9wb3dlcl93aWRnZXRzKHdpZGdldC0+Y29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwkJZHVtcF9kYXBtKHdpZGdldC0+Y29kZWMsICJtdXggcG93ZXIgdXBkYXRlIik7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC03MzAsOCArNzU2LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChmb3VuZCkKKwlpZiAoZm91bmQpIHsKIAkJZGFwbV9wb3dlcl93aWRnZXRzKHdpZGdldC0+Y29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwkJZHVtcF9kYXBtKHdpZGdldC0+Y29kZWMsICJtaXhlciBwb3dlciB1cGRhdGUiKTsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTc2OCwyMSArNzk2LDE4IEBACiAJCX0KIAl9CiAKLQlzd2l0Y2goY29kZWMtPmRhcG1fc3RhdGUpewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOgotCQlzdGF0ZSA9ICJEMCI7CisJc3dpdGNoIChjb2RlYy0+Ymlhc19sZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCQlzdGF0ZSA9ICJPbiI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOgotCQlzdGF0ZSA9ICJEMSI7CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwkJc3RhdGUgPSAiUHJlcGFyZSI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOgotCQlzdGF0ZSA9ICJEMiI7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJc3RhdGUgPSAiU3RhbmRieSI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OgotCQlzdGF0ZSA9ICJEM2hvdCI7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDoKLQkJc3RhdGUgPSAiRDNjb2xkIjsKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCXN0YXRlID0gIk9mZiI7CiAJCWJyZWFrOwogCX0KIAljb3VudCArPSBzcHJpbnRmKGJ1ZiArIGNvdW50LCAiUE0gU3RhdGU6ICVzXG4iLCBzdGF0ZSk7CkBAIC03OTIsMjAgKzgxNyw1MSBAQAogCiBzdGF0aWMgREVWSUNFX0FUVFIoZGFwbV93aWRnZXQsIDA0NDQsIGRhcG1fd2lkZ2V0X3Nob3csIE5VTEwpOwogCisvKiBwb3AvY2xpY2sgZGVsYXkgdGltZXMgKi8KK3N0YXRpYyBzc2l6ZV90IGRhcG1fcG9wX3RpbWVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgcG9wX3RpbWUpOworfQorCitzdGF0aWMgc3NpemVfdCBkYXBtX3BvcF90aW1lX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKKworeworCXVuc2lnbmVkIGxvbmcgdmFsOworCisJaWYgKHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpID49IDApCisJCXBvcF90aW1lID0gdmFsOworCWVsc2UKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcGFyc2UgcG9wX3RpbWUgc2V0dGluZ1xuIik7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUihkYXBtX3BvcF90aW1lLCAwNzQ0LCBkYXBtX3BvcF90aW1lX3Nob3csCisJCSAgIGRhcG1fcG9wX3RpbWVfc3RvcmUpOworCiBpbnQgc25kX3NvY19kYXBtX3N5c19hZGQoc3RydWN0IGRldmljZSAqZGV2KQogewogCWludCByZXQgPSAwOwogCi0JaWYgKGRhcG1fc3RhdHVzKQorCWlmIChkYXBtX3N0YXR1cykgewogCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGV2LCAmZGV2X2F0dHJfZGFwbV93aWRnZXQpOwogCisJCWlmIChyZXQgPT0gMCkKKwkJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3BvcF90aW1lKTsKKwl9CisKIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBzbmRfc29jX2RhcG1fc3lzX3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0JaWYgKGRhcG1fc3RhdHVzKQorCWlmIChkYXBtX3N0YXR1cykgeworCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmZGV2X2F0dHJfZGFwbV9wb3BfdGltZSk7CiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3dpZGdldCk7CisJfQogfQogCiAvKiBmcmVlIGFsbCBkYXBtIHdpZGdldHMgYW5kIHJlc291cmNlcyAqLwpAQCAtODI2LDggKzg4MiwyNSBAQAogCX0KIH0KIAorc3RhdGljIGludCBzbmRfc29jX2RhcG1fc2V0X3BpbihzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY2hhciAqcGluLCBpbnQgc3RhdHVzKQoreworCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh3LCAmY29kZWMtPmRhcG1fd2lkZ2V0cywgbGlzdCkgeworCQlpZiAoIXN0cmNtcCh3LT5uYW1lLCBwaW4pKSB7CisJCQlwcl9kZWJ1ZygiZGFwbTogJXM6IHBpbiAlc1xuIiwgY29kZWMtPm5hbWUsIHBpbik7CisJCQl3LT5jb25uZWN0ZWQgPSBzdGF0dXM7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXByX2VycigiZGFwbTogJXM6IGNvbmZpZ3VyaW5nIHVua25vd24gcGluICVzXG4iLCBjb2RlYy0+bmFtZSwgcGluKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKwogLyoqCi0gKiBzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMgLSBzY2FuIGFuZCBwb3dlciBkYXBtIHBhdGhzCisgKiBzbmRfc29jX2RhcG1fc3luYyAtIHNjYW4gYW5kIHBvd2VyIGRhcG0gcGF0aHMKICAqIEBjb2RlYzogYXVkaW8gY29kZWMKICAqCiAgKiBXYWxrcyBhbGwgZGFwbSBhdWRpbyBwYXRocyBhbmQgcG93ZXJzIHdpZGdldHMgYWNjb3JkaW5nIHRvIHRoZWlyCkBAIC04MzUsMjcgKzkwOCwxNiBAQAogICoKICAqIFJldHVybnMgMCBmb3Igc3VjY2Vzcy4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCitpbnQgc25kX3NvY19kYXBtX3N5bmMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCXJldHVybiBkYXBtX3Bvd2VyX3dpZGdldHMoY29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwlpbnQgcmV0ID0gZGFwbV9wb3dlcl93aWRnZXRzKGNvZGVjLCBTTkRfU09DX0RBUE1fU1RSRUFNX05PUCk7CisJZHVtcF9kYXBtKGNvZGVjLCAic3luYyIpOworCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMpOworRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX3N5bmMpOwogCi0vKioKLSAqIHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0IC0gY29ubmVjdCBkYXBtIHdpZGdldHMKLSAqIEBjb2RlYzogYXVkaW8gY29kZWMKLSAqIEBzaW5rOiBuYW1lIG9mIHRhcmdldCB3aWRnZXQKLSAqIEBjb250cm9sOiBtaXhlciBjb250cm9sIG5hbWUKLSAqIEBzb3VyY2U6IG5hbWUgb2Ygc291cmNlIG5hbWUKLSAqCi0gKiBDb25uZWN0cyAyIGRhcG0gd2lkZ2V0cyB0b2dldGhlciB2aWEgYSBuYW1lZCBhdWRpbyBwYXRoLiBUaGUgc2luayBpcwotICogdGhlIHdpZGdldCByZWNlaXZpbmcgdGhlIGF1ZGlvIHNpZ25hbCwgd2hpbHN0IHRoZSBzb3VyY2UgaXMgdGhlIHNlbmRlcgotICogb2YgdGhlIGF1ZGlvIHNpZ25hbC4KLSAqCi0gKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KLSAqLwotaW50IHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY29uc3QgY2hhciAqc2luaywKLQljb25zdCBjaGFyICogY29udHJvbCwgY29uc3QgY2hhciAqc291cmNlKQorc3RhdGljIGludCBzbmRfc29jX2RhcG1fYWRkX3JvdXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwljb25zdCBjaGFyICpzaW5rLCBjb25zdCBjaGFyICpjb250cm9sLCBjb25zdCBjaGFyICpzb3VyY2UpCiB7CiAJc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoICpwYXRoOwogCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3c291cmNlID0gTlVMTCwgKndzaW5rID0gTlVMTCwgKnc7CkBAIC05NTcsOSArMTAxOSw2NCBAQAogCWtmcmVlKHBhdGgpOwogCXJldHVybiByZXQ7CiB9CisKKy8qKgorICogc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQgLSBjb25uZWN0IGRhcG0gd2lkZ2V0cworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHNpbms6IG5hbWUgb2YgdGFyZ2V0IHdpZGdldAorICogQGNvbnRyb2w6IG1peGVyIGNvbnRyb2wgbmFtZQorICogQHNvdXJjZTogbmFtZSBvZiBzb3VyY2UgbmFtZQorICoKKyAqIENvbm5lY3RzIDIgZGFwbSB3aWRnZXRzIHRvZ2V0aGVyIHZpYSBhIG5hbWVkIGF1ZGlvIHBhdGguIFRoZSBzaW5rIGlzCisgKiB0aGUgd2lkZ2V0IHJlY2VpdmluZyB0aGUgYXVkaW8gc2lnbmFsLCB3aGlsc3QgdGhlIHNvdXJjZSBpcyB0aGUgc2VuZGVyCisgKiBvZiB0aGUgYXVkaW8gc2lnbmFsLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2Ygc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoKS4KKyAqCisgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KKyAqLworaW50IHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY29uc3QgY2hhciAqc2luaywKKwljb25zdCBjaGFyICpjb250cm9sLCBjb25zdCBjaGFyICpzb3VyY2UpCit7CisJcmV0dXJuIHNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIHNpbmssIGNvbnRyb2wsIHNvdXJjZSk7Cit9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dCk7CiAKIC8qKgorICogc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMgLSBBZGQgcm91dGVzIGJldHdlZW4gREFQTSB3aWRnZXRzCisgKiBAY29kZWM6IGNvZGVjCisgKiBAcm91dGU6IGF1ZGlvIHJvdXRlcworICogQG51bTogbnVtYmVyIG9mIHJvdXRlcworICoKKyAqIENvbm5lY3RzIDIgZGFwbSB3aWRnZXRzIHRvZ2V0aGVyIHZpYSBhIG5hbWVkIGF1ZGlvIHBhdGguIFRoZSBzaW5rIGlzCisgKiB0aGUgd2lkZ2V0IHJlY2VpdmluZyB0aGUgYXVkaW8gc2lnbmFsLCB3aGlsc3QgdGhlIHNvdXJjZSBpcyB0aGUgc2VuZGVyCisgKiBvZiB0aGUgYXVkaW8gc2lnbmFsLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLiBPbiBlcnJvciBhbGwgcmVzb3VyY2VzIGNhbiBiZSBmcmVlZAorICogd2l0aCBhIGNhbGwgdG8gc25kX3NvY19jYXJkX2ZyZWUoKS4KKyAqLworaW50IHNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCSAgICBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlICpyb3V0ZSwgaW50IG51bSkKK3sKKwlpbnQgaSwgcmV0OworCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCXJldCA9IHNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIHJvdXRlLT5zaW5rLAorCQkJCQkgICAgIHJvdXRlLT5jb250cm9sLCByb3V0ZS0+c291cmNlKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGFkZCByb3V0ZSAlcy0+JXNcbiIsCisJCQkgICAgICAgcm91dGUtPnNvdXJjZSwKKwkJCSAgICAgICByb3V0ZS0+c2luayk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJCXJvdXRlKys7CisJfQorCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyk7CisKKy8qKgogICogc25kX3NvY19kYXBtX25ld193aWRnZXRzIC0gYWRkIG5ldyBkYXBtIHdpZGdldHMKICAqIEBjb2RlYzogYXVkaW8gY29kZWMKICAqCkBAIC0xMjM0LDYgKzEzNTEsMzMgQEAKIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbCk7CiAKIC8qKgorICogc25kX3NvY19kYXBtX25ld19jb250cm9scyAtIGNyZWF0ZSBuZXcgZGFwbSBjb250cm9scworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHdpZGdldDogd2lkZ2V0IGFycmF5CisgKiBAbnVtOiBudW1iZXIgb2Ygd2lkZ2V0cworICoKKyAqIENyZWF0ZXMgbmV3IERBUE0gY29udHJvbHMgYmFzZWQgdXBvbiB0aGUgdGVtcGxhdGVzLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgorICovCitpbnQgc25kX3NvY19kYXBtX25ld19jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCwKKwlpbnQgbnVtKQoreworCWludCBpLCByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJcmV0ID0gc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCB3aWRnZXQpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXdpZGdldCsrOworCX0KKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMpOworCisKKy8qKgogICogc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudCAtIHNlbmQgYSBzdHJlYW0gZXZlbnQgdG8gdGhlIGRhcG0gY29yZQogICogQGNvZGVjOiBhdWRpbyBjb2RlYwogICogQHN0cmVhbTogc3RyZWFtIG5hbWUKQEAgLTEyNTcsOCArMTQwMSw4IEBACiAJewogCQlpZiAoIXctPnNuYW1lKQogCQkJY29udGludWU7Ci0JCWRiZygid2lkZ2V0ICVzXG4gJXMgc3RyZWFtICVzIGV2ZW50ICVkXG4iLCB3LT5uYW1lLCB3LT5zbmFtZSwKLQkJCXN0cmVhbSwgZXZlbnQpOworCQlwcl9kZWJ1Zygid2lkZ2V0ICVzXG4gJXMgc3RyZWFtICVzIGV2ZW50ICVkXG4iLAorCQkJIHctPm5hbWUsIHctPnNuYW1lLCBzdHJlYW0sIGV2ZW50KTsKIAkJaWYgKHN0cnN0cih3LT5zbmFtZSwgc3RyZWFtKSkgewogCQkJc3dpdGNoKGV2ZW50KSB7CiAJCQljYXNlIFNORF9TT0NfREFQTV9TVFJFQU1fU1RBUlQ6CkBAIC0xMjk0LDUzICsxNDM4LDgxIEBACiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KTsKIAogLyoqCi0gKiBzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50IC0gc2VuZCBhIGRldmljZSBldmVudCB0byB0aGUgZGFwbSBjb3JlCisgKiBzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwgLSBzZXQgdGhlIGJpYXMgbGV2ZWwgZm9yIHRoZSBzeXN0ZW0KICAqIEBzb2NkZXY6IGF1ZGlvIGRldmljZQotICogQGV2ZW50OiBkZXZpY2UgZXZlbnQKKyAqIEBsZXZlbDogbGV2ZWwgdG8gY29uZmlndXJlCiAgKgotICogU2VuZHMgYSBkZXZpY2UgZXZlbnQgdG8gdGhlIGRhcG0gY29yZS4gVGhlIGNvcmUgdGhlbiBtYWtlcyBhbnkKLSAqIG5lY2Vzc2FyeSBtYWNoaW5lIG9yIGNvZGVjIHBvd2VyIGNoYW5nZXMuLgorICogQ29uZmlndXJlIHRoZSBiaWFzIChwb3dlcikgbGV2ZWxzIGZvciB0aGUgU29DIGF1ZGlvIGRldmljZS4KICAqCiAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsIGludCBldmVudCkKK2ludCBzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsCisJCQkJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCWludCByZXQgPSAwOwogCi0JaWYgKG1hY2hpbmUtPmRhcG1fZXZlbnQpCi0JCW1hY2hpbmUtPmRhcG1fZXZlbnQobWFjaGluZSwgZXZlbnQpOwotCWlmIChjb2RlYy0+ZGFwbV9ldmVudCkKLQkJY29kZWMtPmRhcG1fZXZlbnQoY29kZWMsIGV2ZW50KTsKLQlyZXR1cm4gMDsKKwlpZiAobWFjaGluZS0+c2V0X2JpYXNfbGV2ZWwpCisJCXJldCA9IG1hY2hpbmUtPnNldF9iaWFzX2xldmVsKG1hY2hpbmUsIGxldmVsKTsKKwlpZiAocmV0ID09IDAgJiYgY29kZWMtPnNldF9iaWFzX2xldmVsKQorCQlyZXQgPSBjb2RlYy0+c2V0X2JpYXNfbGV2ZWwoY29kZWMsIGxldmVsKTsKKworCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KTsKIAogLyoqCi0gKiBzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50IC0gc2V0IGF1ZGlvIGVuZHBvaW50IHN0YXR1cwotICogQGNvZGVjOiBhdWRpbyBjb2RlYwotICogQGVuZHBvaW50OiBhdWRpbyBzaWduYWwgZW5kcG9pbnQgKG9yIHN0YXJ0IHBvaW50KQotICogQHN0YXR1czogcG9pbnQgc3RhdHVzCisgKiBzbmRfc29jX2RhcG1fZW5hYmxlX3BpbiAtIGVuYWJsZSBwaW4uCisgKiBAc25kX3NvY19jb2RlYzogU29DIGNvZGVjCisgKiBAcGluOiBwaW4gbmFtZQogICoKLSAqIFNldCBhdWRpbyBlbmRwb2ludCBzdGF0dXMgLSBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLgotICoKLSAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgorICogRW5hYmxlcyBpbnB1dC9vdXRwdXQgcGluIGFuZCBpdCdzIHBhcmVudHMgb3IgY2hpbGRyZW4gd2lkZ2V0cyBpZmYgdGhlcmUgaXMKKyAqIGEgdmFsaWQgYXVkaW8gcm91dGUgYW5kIGFjdGl2ZSBhdWRpbyBzdHJlYW0uCisgKiBOT1RFOiBzbmRfc29jX2RhcG1fc3luYygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciB0aGlzIGZvciBEQVBNIHRvCisgKiBkbyBhbnkgd2lkZ2V0IHBvd2VyIHN3aXRjaGluZy4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAotCWNoYXIgKmVuZHBvaW50LCBpbnQgc3RhdHVzKQoraW50IHNuZF9zb2NfZGFwbV9lbmFibGVfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKQoreworCXJldHVybiBzbmRfc29jX2RhcG1fc2V0X3Bpbihjb2RlYywgcGluLCAxKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9lbmFibGVfcGluKTsKKworLyoqCisgKiBzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4gLSBkaXNhYmxlIHBpbi4KKyAqIEBjb2RlYzogU29DIGNvZGVjCisgKiBAcGluOiBwaW4gbmFtZQorICoKKyAqIERpc2FibGVzIGlucHV0L291dHB1dCBwaW4gYW5kIGl0J3MgcGFyZW50cyBvciBjaGlsZHJlbiB3aWRnZXRzLgorICogTk9URTogc25kX3NvY19kYXBtX3N5bmMoKSBuZWVkcyB0byBiZSBjYWxsZWQgYWZ0ZXIgdGhpcyBmb3IgREFQTSB0bworICogZG8gYW55IHdpZGdldCBwb3dlciBzd2l0Y2hpbmcuCisgKi8KK2ludCBzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pCit7CisJcmV0dXJuIHNuZF9zb2NfZGFwbV9zZXRfcGluKGNvZGVjLCBwaW4sIDApOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKTsKKworLyoqCisgKiBzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMgLSBnZXQgYXVkaW8gcGluIHN0YXR1cworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHBpbjogYXVkaW8gc2lnbmFsIHBpbiBlbmRwb2ludCAob3Igc3RhcnQgcG9pbnQpCisgKgorICogR2V0IGF1ZGlvIHBpbiBzdGF0dXMgLSBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLgorICoKKyAqIFJldHVybnMgMSBmb3IgY29ubmVjdGVkIG90aGVyd2lzZSAwLgorICovCitpbnQgc25kX3NvY19kYXBtX2dldF9waW5fc3RhdHVzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKQogewogCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3OwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh3LCAmY29kZWMtPmRhcG1fd2lkZ2V0cywgbGlzdCkgewotCQlpZiAoIXN0cmNtcCh3LT5uYW1lLCBlbmRwb2ludCkpIHsKLQkJCXctPmNvbm5lY3RlZCA9IHN0YXR1czsKLQkJCXJldHVybiAwOwotCQl9CisJCWlmICghc3RyY21wKHctPm5hbWUsIHBpbikpCisJCQlyZXR1cm4gdy0+Y29ubmVjdGVkOwogCX0KIAotCXJldHVybiAtRU5PREVWOworCXJldHVybiAwOwogfQotRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX3NldF9lbmRwb2ludCk7CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMpOwogCiAvKioKICAqIHNuZF9zb2NfZGFwbV9mcmVlIC0gZnJlZSBkYXBtIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvc291bmQvc291bmRfY29yZS5jIGIvc291bmQvc291bmRfY29yZS5jCmluZGV4IDQ2ZGFjYTEuLmRjZmMxZDUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvdW5kX2NvcmUuYworKysgYi9zb3VuZC9zb3VuZF9jb3JlLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNDY0LDYgKzQ2NSw4IEBACiAJc3RydWN0IHNvdW5kX3VuaXQgKnM7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqbmV3X2ZvcHMgPSBOVUxMOwogCisJbG9ja19rZXJuZWwgKCk7CisKIAljaGFpbj11bml0JjB4MEY7CiAJaWYoY2hhaW49PTQgfHwgY2hhaW49PTUpCS8qIGRzcC9hdWRpby9kc3AxNiAqLwogCXsKQEAgLTUxMSw5ICs1MTQsMTEgQEAKIAkJCWZpbGUtPmZfb3AgPSBmb3BzX2dldChvbGRfZm9wcyk7CiAJCX0KIAkJZm9wc19wdXQob2xkX2ZvcHMpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiBlcnI7CiAJfQogCXNwaW5fdW5sb2NrKCZzb3VuZF9sb2FkZXJfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zcGFyYy9LY29uZmlnIGIvc291bmQvc3BhcmMvS2NvbmZpZwppbmRleCAwNzllMjJhLi5kNzVkZWJhIDEwMDY0NAotLS0gYS9zb3VuZC9zcGFyYy9LY29uZmlnCisrKyBiL3NvdW5kL3NwYXJjL0tjb25maWcKQEAgLTEsMTEgKzEsMTcgQEAKICMgQUxTQSBTcGFyYyBkcml2ZXJzCiAKLW1lbnUgIkFMU0EgU3BhcmMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBTUEFSQworbWVudWNvbmZpZyBTTkRfU1BBUkMKKwlib29sICJTcGFyYyBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gU1BBUkMKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIHNwZWNpZmljIHRvIFN1biBTUEFSQyBhcmNoaXRlY3R1cmVzLgorCitpZiBTTkRfU1BBUkMKIAogY29uZmlnIFNORF9TVU5fQU1ENzkzMAogCXRyaXN0YXRlICJTdW4gQU1ENzkzMCIKLQlkZXBlbmRzIG9uIFNCVVMgJiYgU05ECisJZGVwZW5kcyBvbiBTQlVTCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQU1ENzkzMCBzb3VuZCBkZXZpY2Ugb24gU3VuLgpAQCAtMTUsNyArMjEsNiBAQAogCiBjb25maWcgU05EX1NVTl9DUzQyMzEKIAl0cmlzdGF0ZSAiU3VuIENTNDIzMSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIENTNDIzMSBzb3VuZCBkZXZpY2Ugb24gU3VuLgpAQCAtMjUsNyArMzAsNyBAQAogCiBjb25maWcgU05EX1NVTl9EQlJJCiAJdHJpc3RhdGUgIlN1biBEQlJJIgotCWRlcGVuZHMgb24gU05EICYmIFNCVVMKKwlkZXBlbmRzIG9uIFNCVVMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEQlJJIHNvdW5kIGRldmljZSBvbiBTdW4uCkBAIC0zMyw0ICszOCw0IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtc3VuLWRicmkuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1NQQVJDCmRpZmYgLS1naXQgYS9zb3VuZC9zcGFyYy9kYnJpLmMgYi9zb3VuZC9zcGFyYy9kYnJpLmMKaW5kZXggM2QwMGUwNy4uZWUyZTFiNCAxMDA2NDQKLS0tIGEvc291bmQvc3BhcmMvZGJyaS5jCisrKyBiL3NvdW5kL3NwYXJjL2RicmkuYwpAQCAtMjQ5MCw3ICsyNDkwLDcgQEAKIH0KICNlbmRpZgogCi12b2lkIF9fZGV2aW5pdCBzbmRfZGJyaV9wcm9jKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKK3N0YXRpYyB2b2lkIF9fZGV2aW5pdCBzbmRfZGJyaV9wcm9jKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKIHsKIAlzdHJ1Y3Qgc25kX2RicmkgKmRicmkgPSBjYXJkLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NwaS9LY29uZmlnIGIvc291bmQvc3BpL0tjb25maWcKaW5kZXggMGQwOGMyOS4uZTY0ODViZSAxMDA2NDQKLS0tIGEvc291bmQvc3BpL0tjb25maWcKKysrIGIvc291bmQvc3BpL0tjb25maWcKQEAgLTEsNyArMSwxMyBAQAogI1NQSSBkcml2ZXJzCiAKLW1lbnUgIlNQSSBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EICE9IG4KK21lbnVjb25maWcgU05EX1NQSQorCWJvb2wgIlNQSSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gU1BJCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBTUEkgYnVzLgorCitpZiBTTkRfU1BJCiAKIGNvbmZpZyBTTkRfQVQ3M0MyMTMKIAl0cmlzdGF0ZSAiQXRtZWwgQVQ3M0MyMTMgREFDIGRyaXZlciIKQEAgLTI4LDQgKzM0LDUgQEAKIAogCSAgU2V0IHRvIDQ4MDAwIEh6IGJ5IGRlZmF1bHQuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1NQSQorCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvS2NvbmZpZyBiL3NvdW5kL3VzYi9LY29uZmlnCmluZGV4IDkzNTFiOGEuLmZmY2RjOGYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9LY29uZmlnCisrKyBiL3NvdW5kL3VzYi9LY29uZmlnCkBAIC0xLDExICsxLDE2IEBACiAjIEFMU0EgVVNCIGRyaXZlcnMKIAotbWVudSAiVVNCIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgVVNCIT1uCittZW51Y29uZmlnIFNORF9VU0IKKwlib29sICJVU0Igc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFVTQgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgVVNCIGJ1cy4KKworaWYgU05EX1VTQiAmJiBVU0IKIAogY29uZmlnIFNORF9VU0JfQVVESU8KIAl0cmlzdGF0ZSAiVVNCIEF1ZGlvL01JREkgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EICYmIFVTQgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTgsNyArMjMsNyBAQAogCiBjb25maWcgU05EX1VTQl9VU1gyWQogCXRyaXN0YXRlICJUYXNjYW0gVVMtMTIyLCBVUy0yMjQgYW5kIFVTLTQyOCBVU0IgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EICYmIFVTQiAmJiAoWDg2IHx8IFBQQyB8fCBBTFBIQSkKKwlkZXBlbmRzIG9uIFg4NiB8fCBQUEMgfHwgQUxQSEEKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTMxLDcgKzM2LDYgQEAKIAogY29uZmlnIFNORF9VU0JfQ0FJQVEKIAl0cmlzdGF0ZSAiTmF0aXZlIEluc3RydW1lbnRzIFVTQiBhdWRpbyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EICYmIFVTQgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtNjMsNSArNjcsNSBAQAogCSAgICogTmF0aXZlIEluc3RydW1lbnRzIEtvcmUgQ29udHJvbGxlciAyCiAJICAgKiBOYXRpdmUgSW5zdHJ1bWVudHMgQXVkaW8gS29udHJvbCAxCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1VTQgogCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtYXVkaW8uYyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCmluZGV4IDI0OTcwYTUuLmIzYTYwMzMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCisrKyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCkBAIC02MzcsNiArNjM3LDcgQEAKIAlzd2l0Y2ggKGRldi0+Y2hpcC51c2JfaWQpIHsKIAljYXNlIFVTQl9JRChVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLCBVU0JfUElEX0FLMSk6CiAJY2FzZSBVU0JfSUQoVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywgVVNCX1BJRF9SSUdLT05UUk9MMyk6CisJY2FzZSBVU0JfSUQoVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywgVVNCX1BJRF9TRVNTSU9OSU8pOgogCQlkZXYtPnNhbXBsZXJhdGVzIHw9IFNORFJWX1BDTV9SQVRFXzg4MjAwOwogCQlkZXYtPnNhbXBsZXJhdGVzIHw9IFNORFJWX1BDTV9SQVRFXzE5MjAwMDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmMgYi9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmMKaW5kZXggYTk3MmY3Ny4uODMxNzUwOCAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5jCisrKyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuYwpAQCAtNDIsMTQgKzQyLDE1IEBACiAjZW5kaWYKIAogTU9EVUxFX0FVVEhPUigiRGFuaWVsIE1hY2sgPGRhbmllbEBjYWlhcS5kZT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiY2FpYXEgVVNCIGF1ZGlvLCB2ZXJzaW9uIDEuMy42Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oImNhaWFxIFVTQiBhdWRpbywgdmVyc2lvbiAxLjMuOCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoInt7TmF0aXZlIEluc3RydW1lbnRzLCBSaWdLb250cm9sMn0sIgogCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBSaWdLb250cm9sM30sIgogCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBLb3JlIENvbnRyb2xsZXJ9LCIKIAkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgS29yZSBDb250cm9sbGVyIDJ9LCIKLQkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgQXVkaW8gS29udHJvbCAxfSIKLQkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgQXVkaW8gOCBESn19Iik7CisJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIEF1ZGlvIEtvbnRyb2wgMX0sIgorCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBBdWRpbyA4IERKfSwiCisJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIFNlc3Npb24gSS9PfX0iKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsgLyogSW5kZXggMC1tYXggKi8KIHN0YXRpYyBjaGFyKiBpZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsgLyogSWQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMTEwLDYgKzExMSwxMSBAQAogCQkuaWRWZW5kb3IgPSAgICAgVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywKIAkJLmlkUHJvZHVjdCA9ICAgIFVTQl9QSURfQVVESU84REoKIAl9LAorCXsKKwkJLm1hdGNoX2ZsYWdzID0gIFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFLAorCQkuaWRWZW5kb3IgPSAgICAgVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywKKwkJLmlkUHJvZHVjdCA9ICAgIFVTQl9QSURfU0VTU0lPTklPCisJfSwKIAl7IC8qIHRlcm1pbmF0b3IgKi8gfQogfTsKIApkaWZmIC0tZ2l0IGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oCmluZGV4IDk2YTQ5MTMuLmY5ZmJkYmEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuaAorKysgYi9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmgKQEAgLTExLDYgKzExLDcgQEAKICNkZWZpbmUgVVNCX1BJRF9LT1JFQ09OVFJPTExFUjIJMHg0NzEyCiAjZGVmaW5lIFVTQl9QSURfQUsxCQkweDA4MTUKICNkZWZpbmUgVVNCX1BJRF9BVURJTzhESgkweDE5NzgKKyNkZWZpbmUgVVNCX1BJRF9TRVNTSU9OSU8JMHgxOTE1CiAKICNkZWZpbmUgRVAxX0JVRlNJWkUgNjQKICNkZWZpbmUgQ0FJQVFfVVNCX1NUUl9MRU4gMHhmZgpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3VzYmF1ZGlvLmMgYi9zb3VuZC91c2IvdXNiYXVkaW8uYwppbmRleCA0MTBiZTRhLi5iOGNmYjdjIDEwMDY0NAotLS0gYS9zb3VuZC91c2IvdXNiYXVkaW8uYworKysgYi9zb3VuZC91c2IvdXNiYXVkaW8uYwpAQCAtODE5LDEwICs4MTksNiBAQAogCQlyZXR1cm4gImRldmljZSBkaXNhYmxlZCI7CiAJY2FzZSAtRUhPU1RVTlJFQUNIOgogCQlyZXR1cm4gImRldmljZSBzdXNwZW5kZWQiOwotI2lmbmRlZiBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPCi0JY2FzZSAtRU5PU1lTOgotCQlyZXR1cm4gImVuYWJsZSBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPIHRvIHBsYXkgdGhyb3VnaCBhIGh1YiI7Ci0jZW5kaWYKIAljYXNlIC1FSU5WQUw6CiAJY2FzZSAtRUFHQUlOOgogCWNhc2UgLUVGQklHOgpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3VzYnF1aXJrcy5oIGIvc291bmQvdXNiL3VzYnF1aXJrcy5oCmluZGV4IDgyYThkMTQuLjllYTcyNmMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi91c2JxdWlya3MuaAorKysgYi9zb3VuZC91c2IvdXNicXVpcmtzLmgKQEAgLTIxMCw2ICsyMTAsMTEgQEAKIFlBTUFIQV9ERVZJQ0UoMHgxMDQzLCBOVUxMKSwKIFlBTUFIQV9ERVZJQ0UoMHgxMDQ0LCBOVUxMKSwKIFlBTUFIQV9ERVZJQ0UoMHgxMDQ1LCBOVUxMKSwKK1lBTUFIQV9JTlRFUkZBQ0UoMHgxMDRlLCAwLCBOVUxMKSwKK1lBTUFIQV9ERVZJQ0UoMHgxMDRmLCBOVUxMKSwKK1lBTUFIQV9ERVZJQ0UoMHgxMDUwLCBOVUxMKSwKK1lBTUFIQV9ERVZJQ0UoMHgxMDUxLCBOVUxMKSwKK1lBTUFIQV9ERVZJQ0UoMHgxMDUyLCBOVUxMKSwKIFlBTUFIQV9ERVZJQ0UoMHgyMDAwLCAiREdQLTciKSwKIFlBTUFIQV9ERVZJQ0UoMHgyMDAxLCAiREdQLTUiKSwKIFlBTUFIQV9ERVZJQ0UoMHgyMDAyLCBOVUxMKSwKQEAgLTEzNzksNiArMTM4NCwzOSBAQAogCX0KIH0sCiAKK3sKKwkvKiBSb2xhbmQgU29uaWNDZWxsICovCisJVVNCX0RFVklDRSgweDA1ODIsIDB4MDBjMiksCisJLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcpICYgKGNvbnN0IHN0cnVjdCBzbmRfdXNiX2F1ZGlvX3F1aXJrKSB7CisJCS52ZW5kb3JfbmFtZSA9ICJSb2xhbmQiLAorCQkucHJvZHVjdF9uYW1lID0gIlNvbmljQ2VsbCIsCisJCS5pZm51bSA9IFFVSVJLX0FOWV9JTlRFUkZBQ0UsCisJCS50eXBlID0gUVVJUktfQ09NUE9TSVRFLAorCQkuZGF0YSA9IChjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlya1tdKSB7CisJCQl7CisJCQkJLmlmbnVtID0gMCwKKwkJCQkudHlwZSA9IFFVSVJLX0FVRElPX1NUQU5EQVJEX0lOVEVSRkFDRQorCQkJfSwKKwkJCXsKKwkJCQkuaWZudW0gPSAxLAorCQkJCS50eXBlID0gUVVJUktfQVVESU9fU1RBTkRBUkRfSU5URVJGQUNFCisJCQl9LAorCQkJeworCQkJCS5pZm51bSA9IDIsCisJCQkJLnR5cGUgPSBRVUlSS19NSURJX0ZJWEVEX0VORFBPSU5ULAorCQkJCS5kYXRhID0gJiAoY29uc3Qgc3RydWN0IHNuZF91c2JfbWlkaV9lbmRwb2ludF9pbmZvKSB7CisJCQkJCS5vdXRfY2FibGVzID0gMHgwMDAxLAorCQkJCQkuaW5fY2FibGVzICA9IDB4MDAwMQorCQkJCX0KKwkJCX0sCisJCQl7CisJCQkJLmlmbnVtID0gLTEKKwkJCX0KKwkJfQorCX0KK30sCisKKwogLyogR3VpbGxlbW90IGRldmljZXMgKi8KIHsKIAkvKgpkaWZmIC0tZ2l0IGEvdmlydC9rdm0vaW9hcGljLmMgYi92aXJ0L2t2bS9pb2FwaWMuYwppbmRleCA0MjMyZmQ3Li40NDU4OTA4IDEwMDY0NAotLS0gYS92aXJ0L2t2bS9pb2FwaWMuYworKysgYi92aXJ0L2t2bS9pb2FwaWMuYwpAQCAtNDUsNyArNDUsNyBAQAogI2Vsc2UKICNkZWZpbmUgaW9hcGljX2RlYnVnKGZtdCwgYXJnLi4uKQogI2VuZGlmCi1zdGF0aWMgdm9pZCBpb2FwaWNfZGVsaXZlcihzdHJ1Y3Qga3ZtX2lvYXBpYyAqdmlvYXBpYywgaW50IGlycSk7CitzdGF0aWMgaW50IGlvYXBpY19kZWxpdmVyKHN0cnVjdCBrdm1faW9hcGljICp2aW9hcGljLCBpbnQgaXJxKTsKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgaW9hcGljX3JlYWRfaW5kaXJlY3Qoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywKIAkJCQkJICB1bnNpZ25lZCBsb25nIGFkZHIsCkBAIC04OSw4ICs4OSw4IEBACiAJcGVudCA9ICZpb2FwaWMtPnJlZGlydGJsW2lkeF07CiAKIAlpZiAoIXBlbnQtPmZpZWxkcy5tYXNrKSB7Ci0JCWlvYXBpY19kZWxpdmVyKGlvYXBpYywgaWR4KTsKLQkJaWYgKHBlbnQtPmZpZWxkcy50cmlnX21vZGUgPT0gSU9BUElDX0xFVkVMX1RSSUcpCisJCWludCBpbmplY3RlZCA9IGlvYXBpY19kZWxpdmVyKGlvYXBpYywgaWR4KTsKKwkJaWYgKGluamVjdGVkICYmIHBlbnQtPmZpZWxkcy50cmlnX21vZGUgPT0gSU9BUElDX0xFVkVMX1RSSUcpCiAJCQlwZW50LT5maWVsZHMucmVtb3RlX2lyciA9IDE7CiAJfQogCWlmICghcGVudC0+ZmllbGRzLnRyaWdfbW9kZSkKQEAgLTEzMyw3ICsxMzMsNyBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgaW9hcGljX2lual9pcnEoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywKK3N0YXRpYyBpbnQgaW9hcGljX2lual9pcnEoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywKIAkJCSAgIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCSAgIHU4IHZlY3RvciwgdTggdHJpZ19tb2RlLCB1OCBkZWxpdmVyeV9tb2RlKQogewpAQCAtMTQzLDcgKzE0Myw3IEBACiAJQVNTRVJUKChkZWxpdmVyeV9tb2RlID09IElPQVBJQ19GSVhFRCkgfHwKIAkgICAgICAgKGRlbGl2ZXJ5X21vZGUgPT0gSU9BUElDX0xPV0VTVF9QUklPUklUWSkpOwogCi0Ja3ZtX2FwaWNfc2V0X2lycSh2Y3B1LCB2ZWN0b3IsIHRyaWdfbW9kZSk7CisJcmV0dXJuIGt2bV9hcGljX3NldF9pcnEodmNwdSwgdmVjdG9yLCB0cmlnX21vZGUpOwogfQogCiBzdGF0aWMgdTMyIGlvYXBpY19nZXRfZGVsaXZlcnlfYml0bWFzayhzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljLCB1OCBkZXN0LApAQCAtMTg2LDcgKzE4Niw3IEBACiAJcmV0dXJuIG1hc2s7CiB9CiAKLXN0YXRpYyB2b2lkIGlvYXBpY19kZWxpdmVyKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludCBpcnEpCitzdGF0aWMgaW50IGlvYXBpY19kZWxpdmVyKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludCBpcnEpCiB7CiAJdTggZGVzdCA9IGlvYXBpYy0+cmVkaXJ0YmxbaXJxXS5maWVsZHMuZGVzdF9pZDsKIAl1OCBkZXN0X21vZGUgPSBpb2FwaWMtPnJlZGlydGJsW2lycV0uZmllbGRzLmRlc3RfbW9kZTsKQEAgLTE5NSw3ICsxOTUsNyBAQAogCXU4IHRyaWdfbW9kZSA9IGlvYXBpYy0+cmVkaXJ0YmxbaXJxXS5maWVsZHMudHJpZ19tb2RlOwogCXUzMiBkZWxpdmVyX2JpdG1hc2s7CiAJc3RydWN0IGt2bV92Y3B1ICp2Y3B1OwotCWludCB2Y3B1X2lkOworCWludCB2Y3B1X2lkLCByID0gMDsKIAogCWlvYXBpY19kZWJ1ZygiZGVzdD0leCBkZXN0X21vZGU9JXggZGVsaXZlcnlfbW9kZT0leCAiCiAJCSAgICAgInZlY3Rvcj0leCB0cmlnX21vZGU9JXhcbiIsCkBAIC0yMDQsNyArMjA0LDcgQEAKIAlkZWxpdmVyX2JpdG1hc2sgPSBpb2FwaWNfZ2V0X2RlbGl2ZXJ5X2JpdG1hc2soaW9hcGljLCBkZXN0LCBkZXN0X21vZGUpOwogCWlmICghZGVsaXZlcl9iaXRtYXNrKSB7CiAJCWlvYXBpY19kZWJ1Zygibm8gdGFyZ2V0IG9uIGRlc3RpbmF0aW9uXG4iKTsKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAl9CiAKIAlzd2l0Y2ggKGRlbGl2ZXJ5X21vZGUpIHsKQEAgLTIxNiw3ICsyMTYsNyBAQAogCQkJdmNwdSA9IGlvYXBpYy0+a3ZtLT52Y3B1c1swXTsKICNlbmRpZgogCQlpZiAodmNwdSAhPSBOVUxMKQotCQkJaW9hcGljX2lual9pcnEoaW9hcGljLCB2Y3B1LCB2ZWN0b3IsCisJCQlyID0gaW9hcGljX2lual9pcnEoaW9hcGljLCB2Y3B1LCB2ZWN0b3IsCiAJCQkJICAgICAgIHRyaWdfbW9kZSwgZGVsaXZlcnlfbW9kZSk7CiAJCWVsc2UKIAkJCWlvYXBpY19kZWJ1ZygibnVsbCBsb3dlc3QgcHJpbyB2Y3B1OiAiCkBAIC0yMzQsNyArMjM0LDcgQEAKIAkJCWRlbGl2ZXJfYml0bWFzayAmPSB+KDEgPDwgdmNwdV9pZCk7CiAJCQl2Y3B1ID0gaW9hcGljLT5rdm0tPnZjcHVzW3ZjcHVfaWRdOwogCQkJaWYgKHZjcHUpIHsKLQkJCQlpb2FwaWNfaW5qX2lycShpb2FwaWMsIHZjcHUsIHZlY3RvciwKKwkJCQlyID0gaW9hcGljX2lual9pcnEoaW9hcGljLCB2Y3B1LCB2ZWN0b3IsCiAJCQkJCSAgICAgICB0cmlnX21vZGUsIGRlbGl2ZXJ5X21vZGUpOwogCQkJfQogCQl9CkBAIC0yNDYsNiArMjQ2LDcgQEAKIAkJICAgICAgIGRlbGl2ZXJ5X21vZGUpOwogCQlicmVhazsKIAl9CisJcmV0dXJuIHI7CiB9CiAKIHZvaWQga3ZtX2lvYXBpY19zZXRfaXJxKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludCBpcnEsIGludCBsZXZlbCkKQEAgLTI2OCwzNSArMjY5LDI2IEBACiAJfQogfQogCi1zdGF0aWMgaW50IGdldF9lb2lfZ3NpKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludCB2ZWN0b3IpCitzdGF0aWMgdm9pZCBfX2t2bV9pb2FwaWNfdXBkYXRlX2VvaShzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljLCBpbnQgZ3NpKQogewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsgaSsrKQotCQlpZiAoaW9hcGljLT5yZWRpcnRibFtpXS5maWVsZHMudmVjdG9yID09IHZlY3RvcikKLQkJCXJldHVybiBpOwotCXJldHVybiAtMTsKLX0KLQotdm9pZCBrdm1faW9hcGljX3VwZGF0ZV9lb2koc3RydWN0IGt2bSAqa3ZtLCBpbnQgdmVjdG9yKQotewotCXN0cnVjdCBrdm1faW9hcGljICppb2FwaWMgPSBrdm0tPmFyY2gudmlvYXBpYzsKIAl1bmlvbiBpb2FwaWNfcmVkaXJfZW50cnkgKmVudDsKLQlpbnQgZ3NpOwotCi0JZ3NpID0gZ2V0X2VvaV9nc2koaW9hcGljLCB2ZWN0b3IpOwotCWlmIChnc2kgPT0gLTEpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ2FuJ3QgZmluZCByZWRpciBpdGVtIGZvciAlZCBFT0lcbiIsCi0JCSAgICAgICB2ZWN0b3IpOwotCQlyZXR1cm47Ci0JfQogCiAJZW50ID0gJmlvYXBpYy0+cmVkaXJ0YmxbZ3NpXTsKIAlBU1NFUlQoZW50LT5maWVsZHMudHJpZ19tb2RlID09IElPQVBJQ19MRVZFTF9UUklHKTsKIAogCWVudC0+ZmllbGRzLnJlbW90ZV9pcnIgPSAwOwogCWlmICghZW50LT5maWVsZHMubWFzayAmJiAoaW9hcGljLT5pcnIgJiAoMSA8PCBnc2kpKSkKLQkJaW9hcGljX2RlbGl2ZXIoaW9hcGljLCBnc2kpOworCQlpb2FwaWNfc2VydmljZShpb2FwaWMsIGdzaSk7Cit9CisKK3ZvaWQga3ZtX2lvYXBpY191cGRhdGVfZW9pKHN0cnVjdCBrdm0gKmt2bSwgaW50IHZlY3RvcikKK3sKKwlzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljID0ga3ZtLT5hcmNoLnZpb2FwaWM7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgSU9BUElDX05VTV9QSU5TOyBpKyspCisJCWlmIChpb2FwaWMtPnJlZGlydGJsW2ldLmZpZWxkcy52ZWN0b3IgPT0gdmVjdG9yKQorCQkJX19rdm1faW9hcGljX3VwZGF0ZV9lb2koaW9hcGljLCBpKTsKIH0KIAogc3RhdGljIGludCBpb2FwaWNfaW5fcmFuZ2Uoc3RydWN0IGt2bV9pb19kZXZpY2UgKnRoaXMsIGdwYV90IGFkZHIpCg==